From c4b392a179048f936c062f5ffccc2bc25627e500 Mon Sep 17 00:00:00 2001 From: polwex Date: Mon, 6 Oct 2025 01:01:41 +0700 Subject: working --- .gitignore | 5 + UIP-0125.md | 123 + app/app/nostrill.hoon | 365 + app/desk.bill | 2 + app/desk.docket-0 | 11 + app/desk.ship | 1 + app/lib/constants.hoon | 4 + app/lib/dbug.hoon | 155 + app/lib/docket.hoon | 223 + app/lib/json/common.hoon | 30 + app/lib/json/nostr.hoon | 197 + app/lib/json/nostrill.hoon | 245 + app/lib/json/trill.hoon | 219 + app/lib/markdown.hoon | 1711 +++ app/lib/mutations/nostr.hoon | 243 + app/lib/mutations/trill.hoon | 78 + app/lib/nostr/events.hoon | 49 + app/lib/nostr/keys.hoon | 51 + app/lib/nostrill.hoon | 44 + app/lib/nostrill/comms.hoon | 92 + app/lib/nostrill/follows.hoon | 90 + app/lib/scri.hoon | 79 + app/lib/server.hoon | 159 + app/lib/shim.hoon | 130 + app/lib/sortug.hoon | 153 + app/lib/strand.hoon | 1 + app/lib/strandio.hoon | 965 ++ app/lib/trill/feed.hoon | 70 + app/lib/trill/gate.hoon | 79 + app/lib/trill/post.hoon | 379 + app/mar/bill.hoon | 34 + app/mar/css.hoon | 25 + app/mar/docket-0.hoon | 25 + app/mar/hoon.hoon | 36 + app/mar/ico.hoon | 12 + app/mar/js.hoon | 25 + app/mar/json.hoon | 26 + app/mar/kelvin.hoon | 28 + app/mar/mime.hoon | 32 + app/mar/noun.hoon | 22 + app/mar/png.hoon | 12 + app/mar/ship.hoon | 20 + app/mar/svg.hoon | 12 + app/mar/tang.hoon | 25 + app/mar/webmanifest.hoon | 12 + app/sur/docket.hoon | 82 + app/sur/markdown.hoon | 157 + app/sur/nostr.hoon | 107 + app/sur/nostrill.hoon | 90 + app/sur/nostrill/comms.hoon | 41 + app/sur/spider.hoon | 27 + app/sur/trill/feed.hoon | 16 + app/sur/trill/gate.hoon | 26 + app/sur/trill/post.hoon | 121 + app/sys.kelvin | 1 + app/ted/beg.hoon | 41 + app/ted/fetch.hoon | 21 + app/web/assets/apple-touch-icon.png | Bin 0 -> 18464 bytes app/web/assets/favicon-16x16.png | Bin 0 -> 863 bytes app/web/assets/favicon-32x32.png | Bin 0 -> 2066 bytes app/web/assets/favicon.ico | Bin 0 -> 14830 bytes app/web/assets/script.js | 0 app/web/assets/site.webmanifest | 1 + app/web/assets/spinner.svg | 1 + app/web/assets/style.css | 415 + app/web/components/components.hoon | 3 + app/web/components/navbar.hoon | 54 + app/web/components/post-text.hoon | 134 + app/web/components/sigil/sigil.hoon | 227 + app/web/components/sigil/symbols.hoon | 14332 +++++++++++++++++++ app/web/layout.hoon | 24 + app/web/pages/index.hoon | 15 + app/web/router.hoon | 40 + arvo/eyre.hoon | 4712 ++++++ arvo/lull.hoon | 4622 ++++++ vere/.gitignore | 289 + vere/CONTRIBUTING.md | 173 + vere/INSTALL.md | 126 + vere/LICENSE.txt | 21 + vere/MAINTAINERS.md | 178 + vere/README.md | 45 + vere/boot-fake-ship.sh | 60 + vere/build.zig | 620 + vere/build.zig.zon | 67 + vere/doc/spec/nock/4.txt | 45 + vere/doc/spec/nock/5.txt | 39 + vere/doc/spec/u3.md | 1571 ++ vere/docker/Dockerfile | 12 + vere/docker/README.md | 135 + vere/docker/get_urbit_code.sh | 8 + vere/docker/reset_urbit_code.sh | 16 + vere/docker/start_urbit.sh | 71 + vere/ext/avahi/build.zig | 810 ++ vere/ext/avahi/build.zig.zon | 22 + vere/ext/backtrace/build.zig | 142 + vere/ext/backtrace/build.zig.zon | 13 + vere/ext/curl/build.zig | 418 + vere/ext/curl/build.zig.zon | 16 + vere/ext/gmp/build.zig | 888 ++ vere/ext/gmp/build.zig.zon | 13 + vere/ext/gmp/gen/README.md | 68 + vere/ext/gmp/gen/aarch64-linux/config.h | 672 + vere/ext/gmp/gen/aarch64-linux/fac_table.h | 49 + vere/ext/gmp/gen/aarch64-linux/fib_table.h | 8 + vere/ext/gmp/gen/aarch64-linux/mp_bases.h | 13 + vere/ext/gmp/gen/aarch64-linux/mpn/add_n.s | 134 + vere/ext/gmp/gen/aarch64-linux/mpn/addlsh1_n.s | 161 + vere/ext/gmp/gen/aarch64-linux/mpn/addlsh2_n.s | 161 + vere/ext/gmp/gen/aarch64-linux/mpn/addmul_1.s | 147 + vere/ext/gmp/gen/aarch64-linux/mpn/and_n.s | 127 + vere/ext/gmp/gen/aarch64-linux/mpn/andn_n.s | 127 + vere/ext/gmp/gen/aarch64-linux/mpn/bdiv_dbm1c.s | 123 + vere/ext/gmp/gen/aarch64-linux/mpn/bdiv_q_1.s | 137 + vere/ext/gmp/gen/aarch64-linux/mpn/cnd_add_n.s | 136 + vere/ext/gmp/gen/aarch64-linux/mpn/cnd_sub_n.s | 136 + vere/ext/gmp/gen/aarch64-linux/mpn/com.s | 96 + vere/ext/gmp/gen/aarch64-linux/mpn/copyd.s | 105 + vere/ext/gmp/gen/aarch64-linux/mpn/copyi.s | 90 + vere/ext/gmp/gen/aarch64-linux/mpn/fib_table.c | 107 + vere/ext/gmp/gen/aarch64-linux/mpn/gcd_11.s | 80 + vere/ext/gmp/gen/aarch64-linux/mpn/gcd_22.s | 124 + vere/ext/gmp/gen/aarch64-linux/mpn/hamdist.s | 193 + vere/ext/gmp/gen/aarch64-linux/mpn/invert_limb.s | 347 + vere/ext/gmp/gen/aarch64-linux/mpn/ior_n.s | 127 + vere/ext/gmp/gen/aarch64-linux/mpn/iorn_n.s | 127 + vere/ext/gmp/gen/aarch64-linux/mpn/jacobitab.h | 13 + vere/ext/gmp/gen/aarch64-linux/mpn/lshift.s | 150 + vere/ext/gmp/gen/aarch64-linux/mpn/lshiftc.s | 153 + vere/ext/gmp/gen/aarch64-linux/mpn/mod_34lsub1.s | 136 + vere/ext/gmp/gen/aarch64-linux/mpn/mp_bases.c | 268 + vere/ext/gmp/gen/aarch64-linux/mpn/mul_1.s | 142 + vere/ext/gmp/gen/aarch64-linux/mpn/nand_n.s | 135 + vere/ext/gmp/gen/aarch64-linux/mpn/nior_n.s | 135 + vere/ext/gmp/gen/aarch64-linux/mpn/perfsqr.h | 46 + vere/ext/gmp/gen/aarch64-linux/mpn/popcount.s | 169 + vere/ext/gmp/gen/aarch64-linux/mpn/rsblsh1_n.s | 161 + vere/ext/gmp/gen/aarch64-linux/mpn/rsblsh2_n.s | 161 + vere/ext/gmp/gen/aarch64-linux/mpn/rsh1add_n.s | 175 + vere/ext/gmp/gen/aarch64-linux/mpn/rsh1sub_n.s | 175 + vere/ext/gmp/gen/aarch64-linux/mpn/rshift.s | 148 + vere/ext/gmp/gen/aarch64-linux/mpn/sec_tabselect.s | 133 + .../gmp/gen/aarch64-linux/mpn/sqr_diag_addlsh1.s | 113 + vere/ext/gmp/gen/aarch64-linux/mpn/sub_n.s | 134 + vere/ext/gmp/gen/aarch64-linux/mpn/sublsh1_n.s | 161 + vere/ext/gmp/gen/aarch64-linux/mpn/sublsh2_n.s | 161 + vere/ext/gmp/gen/aarch64-linux/mpn/submul_1.s | 147 + vere/ext/gmp/gen/aarch64-linux/mpn/xnor_n.s | 127 + vere/ext/gmp/gen/aarch64-linux/mpn/xor_n.s | 127 + vere/ext/gmp/gen/aarch64-linux/sieve_table.h | 46 + vere/ext/gmp/gen/aarch64-linux/trialdivtab.h | 1214 ++ vere/ext/gmp/gen/aarch64-macos/config.h | 668 + vere/ext/gmp/gen/aarch64-macos/fac_table.h | 49 + vere/ext/gmp/gen/aarch64-macos/fib_table.h | 8 + vere/ext/gmp/gen/aarch64-macos/mp_bases.h | 13 + vere/ext/gmp/gen/aarch64-macos/mpn/add_n.s | 134 + vere/ext/gmp/gen/aarch64-macos/mpn/addlsh1_n.s | 161 + vere/ext/gmp/gen/aarch64-macos/mpn/addlsh2_n.s | 161 + vere/ext/gmp/gen/aarch64-macos/mpn/addmul_1.s | 152 + vere/ext/gmp/gen/aarch64-macos/mpn/and_n.s | 127 + vere/ext/gmp/gen/aarch64-macos/mpn/andn_n.s | 127 + vere/ext/gmp/gen/aarch64-macos/mpn/bdiv_dbm1c.s | 123 + vere/ext/gmp/gen/aarch64-macos/mpn/bdiv_q_1.s | 137 + vere/ext/gmp/gen/aarch64-macos/mpn/cnd_add_n.s | 136 + vere/ext/gmp/gen/aarch64-macos/mpn/cnd_sub_n.s | 136 + vere/ext/gmp/gen/aarch64-macos/mpn/com.s | 104 + vere/ext/gmp/gen/aarch64-macos/mpn/copyd.s | 97 + vere/ext/gmp/gen/aarch64-macos/mpn/copyi.s | 94 + vere/ext/gmp/gen/aarch64-macos/mpn/divrem_1.s | 235 + vere/ext/gmp/gen/aarch64-macos/mpn/fib_table.c | 107 + vere/ext/gmp/gen/aarch64-macos/mpn/gcd_11.s | 80 + vere/ext/gmp/gen/aarch64-macos/mpn/gcd_22.s | 124 + vere/ext/gmp/gen/aarch64-macos/mpn/hamdist.s | 193 + vere/ext/gmp/gen/aarch64-macos/mpn/invert_limb.s | 347 + vere/ext/gmp/gen/aarch64-macos/mpn/ior_n.s | 127 + vere/ext/gmp/gen/aarch64-macos/mpn/iorn_n.s | 127 + vere/ext/gmp/gen/aarch64-macos/mpn/jacobitab.h | 13 + vere/ext/gmp/gen/aarch64-macos/mpn/lshift.s | 150 + vere/ext/gmp/gen/aarch64-macos/mpn/lshiftc.s | 153 + vere/ext/gmp/gen/aarch64-macos/mpn/mod_34lsub1.s | 136 + vere/ext/gmp/gen/aarch64-macos/mpn/mp_bases.c | 268 + vere/ext/gmp/gen/aarch64-macos/mpn/mul_1.s | 143 + vere/ext/gmp/gen/aarch64-macos/mpn/nand_n.s | 135 + vere/ext/gmp/gen/aarch64-macos/mpn/nior_n.s | 135 + vere/ext/gmp/gen/aarch64-macos/mpn/perfsqr.h | 46 + vere/ext/gmp/gen/aarch64-macos/mpn/popcount.s | 169 + vere/ext/gmp/gen/aarch64-macos/mpn/rsblsh1_n.s | 161 + vere/ext/gmp/gen/aarch64-macos/mpn/rsblsh2_n.s | 161 + vere/ext/gmp/gen/aarch64-macos/mpn/rsh1add_n.s | 175 + vere/ext/gmp/gen/aarch64-macos/mpn/rsh1sub_n.s | 175 + vere/ext/gmp/gen/aarch64-macos/mpn/rshift.s | 148 + vere/ext/gmp/gen/aarch64-macos/mpn/sec_tabselect.s | 133 + .../gmp/gen/aarch64-macos/mpn/sqr_diag_addlsh1.s | 113 + vere/ext/gmp/gen/aarch64-macos/mpn/sub_n.s | 134 + vere/ext/gmp/gen/aarch64-macos/mpn/sublsh1_n.s | 161 + vere/ext/gmp/gen/aarch64-macos/mpn/sublsh2_n.s | 161 + vere/ext/gmp/gen/aarch64-macos/mpn/submul_1.s | 152 + vere/ext/gmp/gen/aarch64-macos/mpn/tmp-add_n.s | 134 + vere/ext/gmp/gen/aarch64-macos/mpn/xnor_n.s | 127 + vere/ext/gmp/gen/aarch64-macos/mpn/xor_n.s | 127 + vere/ext/gmp/gen/aarch64-macos/sieve_table.h | 46 + vere/ext/gmp/gen/aarch64-macos/trialdivtab.h | 1214 ++ vere/ext/gmp/gen/x86_64-linux/config.h | 668 + vere/ext/gmp/gen/x86_64-linux/fac_table.h | 49 + vere/ext/gmp/gen/x86_64-linux/fib_table.h | 8 + vere/ext/gmp/gen/x86_64-linux/mp_bases.h | 13 + vere/ext/gmp/gen/x86_64-linux/mpn/add_err1_n.s | 237 + vere/ext/gmp/gen/x86_64-linux/mpn/add_err2_n.s | 184 + vere/ext/gmp/gen/x86_64-linux/mpn/add_err3_n.s | 168 + vere/ext/gmp/gen/x86_64-linux/mpn/add_n.s | 194 + .../ext/gmp/gen/x86_64-linux/mpn/addaddmul_1msb0.s | 185 + vere/ext/gmp/gen/x86_64-linux/mpn/addlsh1_n.s | 179 + vere/ext/gmp/gen/x86_64-linux/mpn/addlsh2_n.s | 204 + vere/ext/gmp/gen/x86_64-linux/mpn/addlsh_n.s | 228 + vere/ext/gmp/gen/x86_64-linux/mpn/addmul_1.s | 196 + vere/ext/gmp/gen/x86_64-linux/mpn/addmul_2.s | 209 + vere/ext/gmp/gen/x86_64-linux/mpn/and_n.s | 149 + vere/ext/gmp/gen/x86_64-linux/mpn/andn_n.s | 154 + vere/ext/gmp/gen/x86_64-linux/mpn/bdiv_dbm1c.s | 121 + vere/ext/gmp/gen/x86_64-linux/mpn/bdiv_q_1.s | 198 + vere/ext/gmp/gen/x86_64-linux/mpn/cnd_add_n.s | 190 + vere/ext/gmp/gen/x86_64-linux/mpn/cnd_sub_n.s | 190 + vere/ext/gmp/gen/x86_64-linux/mpn/com.s | 110 + vere/ext/gmp/gen/x86_64-linux/mpn/copyd.s | 108 + vere/ext/gmp/gen/x86_64-linux/mpn/copyi.s | 107 + vere/ext/gmp/gen/x86_64-linux/mpn/div_qr_1n_pi1.s | 261 + vere/ext/gmp/gen/x86_64-linux/mpn/div_qr_2n_pi1.s | 171 + vere/ext/gmp/gen/x86_64-linux/mpn/div_qr_2u_pi1.s | 211 + vere/ext/gmp/gen/x86_64-linux/mpn/dive_1.s | 175 + vere/ext/gmp/gen/x86_64-linux/mpn/divrem_1.s | 335 + vere/ext/gmp/gen/x86_64-linux/mpn/divrem_2.s | 208 + vere/ext/gmp/gen/x86_64-linux/mpn/fib_table.c | 107 + vere/ext/gmp/gen/x86_64-linux/mpn/gcd_11.s | 256 + vere/ext/gmp/gen/x86_64-linux/mpn/gcd_22.s | 434 + vere/ext/gmp/gen/x86_64-linux/mpn/hamdist.s | 167 + vere/ext/gmp/gen/x86_64-linux/mpn/invert_limb.s | 123 + .../gmp/gen/x86_64-linux/mpn/invert_limb_table.s | 313 + vere/ext/gmp/gen/x86_64-linux/mpn/ior_n.s | 149 + vere/ext/gmp/gen/x86_64-linux/mpn/iorn_n.s | 154 + vere/ext/gmp/gen/x86_64-linux/mpn/jacobitab.h | 13 + vere/ext/gmp/gen/x86_64-linux/mpn/lshift.s | 186 + vere/ext/gmp/gen/x86_64-linux/mpn/lshiftc.s | 197 + vere/ext/gmp/gen/x86_64-linux/mpn/mod_1_1.s | 241 + vere/ext/gmp/gen/x86_64-linux/mpn/mod_1_2.s | 252 + vere/ext/gmp/gen/x86_64-linux/mpn/mod_1_4.s | 283 + vere/ext/gmp/gen/x86_64-linux/mpn/mod_34lsub1.s | 228 + vere/ext/gmp/gen/x86_64-linux/mpn/mode1o.s | 189 + vere/ext/gmp/gen/x86_64-linux/mpn/mp_bases.c | 268 + vere/ext/gmp/gen/x86_64-linux/mpn/mul_1.s | 205 + vere/ext/gmp/gen/x86_64-linux/mpn/mul_2.s | 218 + vere/ext/gmp/gen/x86_64-linux/mpn/mul_basecase.s | 483 + vere/ext/gmp/gen/x86_64-linux/mpn/mullo_basecase.s | 439 + .../ext/gmp/gen/x86_64-linux/mpn/mulmid_basecase.s | 573 + vere/ext/gmp/gen/x86_64-linux/mpn/nand_n.s | 155 + vere/ext/gmp/gen/x86_64-linux/mpn/nior_n.s | 155 + vere/ext/gmp/gen/x86_64-linux/mpn/perfsqr.h | 46 + vere/ext/gmp/gen/x86_64-linux/mpn/popcount.s | 160 + vere/ext/gmp/gen/x86_64-linux/mpn/redc_1.s | 603 + vere/ext/gmp/gen/x86_64-linux/mpn/rsblsh1_n.s | 179 + vere/ext/gmp/gen/x86_64-linux/mpn/rsblsh2_n.s | 204 + vere/ext/gmp/gen/x86_64-linux/mpn/rsblsh_n.s | 228 + vere/ext/gmp/gen/x86_64-linux/mpn/rsh1add_n.s | 203 + vere/ext/gmp/gen/x86_64-linux/mpn/rsh1sub_n.s | 203 + vere/ext/gmp/gen/x86_64-linux/mpn/rshift.s | 191 + vere/ext/gmp/gen/x86_64-linux/mpn/sec_tabselect.s | 190 + vere/ext/gmp/gen/x86_64-linux/mpn/sqr_basecase.s | 818 ++ .../gmp/gen/x86_64-linux/mpn/sqr_diag_addlsh1.s | 130 + vere/ext/gmp/gen/x86_64-linux/mpn/sub_err1_n.s | 237 + vere/ext/gmp/gen/x86_64-linux/mpn/sub_err2_n.s | 184 + vere/ext/gmp/gen/x86_64-linux/mpn/sub_err3_n.s | 168 + vere/ext/gmp/gen/x86_64-linux/mpn/sub_n.s | 194 + vere/ext/gmp/gen/x86_64-linux/mpn/sublsh1_n.s | 175 + vere/ext/gmp/gen/x86_64-linux/mpn/submul_1.s | 196 + vere/ext/gmp/gen/x86_64-linux/mpn/xnor_n.s | 154 + vere/ext/gmp/gen/x86_64-linux/mpn/xor_n.s | 149 + vere/ext/gmp/gen/x86_64-linux/sieve_table.h | 46 + vere/ext/gmp/gen/x86_64-linux/trialdivtab.h | 1214 ++ vere/ext/gmp/gen/x86_64-macos/config.h | 672 + vere/ext/gmp/gen/x86_64-macos/fac_table.h | 49 + vere/ext/gmp/gen/x86_64-macos/fib_table.h | 8 + vere/ext/gmp/gen/x86_64-macos/mp_bases.h | 13 + vere/ext/gmp/gen/x86_64-macos/mpn/add_err1_n.s | 237 + vere/ext/gmp/gen/x86_64-macos/mpn/add_err2_n.s | 184 + vere/ext/gmp/gen/x86_64-macos/mpn/add_err3_n.s | 168 + vere/ext/gmp/gen/x86_64-macos/mpn/add_n.s | 289 + .../ext/gmp/gen/x86_64-macos/mpn/addaddmul_1msb0.s | 185 + vere/ext/gmp/gen/x86_64-macos/mpn/addlsh1_n.s | 212 + vere/ext/gmp/gen/x86_64-macos/mpn/addlsh2_n.s | 214 + vere/ext/gmp/gen/x86_64-macos/mpn/addlsh_n.s | 269 + vere/ext/gmp/gen/x86_64-macos/mpn/addmul_1.s | 230 + vere/ext/gmp/gen/x86_64-macos/mpn/addmul_2.s | 255 + vere/ext/gmp/gen/x86_64-macos/mpn/and_n.s | 158 + vere/ext/gmp/gen/x86_64-macos/mpn/andn_n.s | 163 + vere/ext/gmp/gen/x86_64-macos/mpn/bdiv_dbm1c.s | 121 + vere/ext/gmp/gen/x86_64-macos/mpn/bdiv_q_1.s | 215 + vere/ext/gmp/gen/x86_64-macos/mpn/cnd_add_n.s | 184 + vere/ext/gmp/gen/x86_64-macos/mpn/cnd_sub_n.s | 207 + vere/ext/gmp/gen/x86_64-macos/mpn/com.s | 335 + vere/ext/gmp/gen/x86_64-macos/mpn/copyd.s | 279 + vere/ext/gmp/gen/x86_64-macos/mpn/copyi.s | 324 + vere/ext/gmp/gen/x86_64-macos/mpn/div_qr_1n_pi1.s | 259 + vere/ext/gmp/gen/x86_64-macos/mpn/div_qr_2n_pi1.s | 171 + vere/ext/gmp/gen/x86_64-macos/mpn/div_qr_2u_pi1.s | 211 + vere/ext/gmp/gen/x86_64-macos/mpn/dive_1.s | 175 + vere/ext/gmp/gen/x86_64-macos/mpn/divrem_1.s | 348 + vere/ext/gmp/gen/x86_64-macos/mpn/divrem_2.s | 207 + vere/ext/gmp/gen/x86_64-macos/mpn/fib_table.c | 107 + vere/ext/gmp/gen/x86_64-macos/mpn/gcd_11.s | 120 + vere/ext/gmp/gen/x86_64-macos/mpn/gcd_22.s | 152 + vere/ext/gmp/gen/x86_64-macos/mpn/hamdist.s | 217 + vere/ext/gmp/gen/x86_64-macos/mpn/invert_limb.s | 124 + .../gmp/gen/x86_64-macos/mpn/invert_limb_table.s | 313 + vere/ext/gmp/gen/x86_64-macos/mpn/ior_n.s | 158 + vere/ext/gmp/gen/x86_64-macos/mpn/iorn_n.s | 163 + vere/ext/gmp/gen/x86_64-macos/mpn/jacobitab.h | 13 + vere/ext/gmp/gen/x86_64-macos/mpn/lshift.s | 211 + vere/ext/gmp/gen/x86_64-macos/mpn/lshiftc.s | 222 + vere/ext/gmp/gen/x86_64-macos/mpn/mod_1_1.s | 240 + vere/ext/gmp/gen/x86_64-macos/mpn/mod_1_2.s | 251 + vere/ext/gmp/gen/x86_64-macos/mpn/mod_1_4.s | 282 + vere/ext/gmp/gen/x86_64-macos/mpn/mod_34lsub1.s | 246 + vere/ext/gmp/gen/x86_64-macos/mpn/mode1o.s | 189 + vere/ext/gmp/gen/x86_64-macos/mpn/mp_bases.c | 268 + vere/ext/gmp/gen/x86_64-macos/mpn/mul_1.s | 216 + vere/ext/gmp/gen/x86_64-macos/mpn/mul_2.s | 190 + vere/ext/gmp/gen/x86_64-macos/mpn/mul_basecase.s | 409 + vere/ext/gmp/gen/x86_64-macos/mpn/mullo_basecase.s | 422 + vere/ext/gmp/gen/x86_64-macos/mpn/nand_n.s | 164 + vere/ext/gmp/gen/x86_64-macos/mpn/nior_n.s | 164 + vere/ext/gmp/gen/x86_64-macos/mpn/perfsqr.h | 46 + vere/ext/gmp/gen/x86_64-macos/mpn/popcount.s | 211 + vere/ext/gmp/gen/x86_64-macos/mpn/redc_1.s | 446 + vere/ext/gmp/gen/x86_64-macos/mpn/rsblsh1_n.s | 212 + vere/ext/gmp/gen/x86_64-macos/mpn/rsblsh2_n.s | 214 + vere/ext/gmp/gen/x86_64-macos/mpn/rsblsh_n.s | 269 + vere/ext/gmp/gen/x86_64-macos/mpn/rsh1add_n.s | 208 + vere/ext/gmp/gen/x86_64-macos/mpn/rsh1sub_n.s | 208 + vere/ext/gmp/gen/x86_64-macos/mpn/rshift.s | 230 + vere/ext/gmp/gen/x86_64-macos/mpn/sbpi1_bdiv_r.s | 681 + vere/ext/gmp/gen/x86_64-macos/mpn/sec_tabselect.s | 233 + vere/ext/gmp/gen/x86_64-macos/mpn/sqr_basecase.s | 880 ++ .../gmp/gen/x86_64-macos/mpn/sqr_diag_addlsh1.s | 130 + vere/ext/gmp/gen/x86_64-macos/mpn/sub_err1_n.s | 237 + vere/ext/gmp/gen/x86_64-macos/mpn/sub_err2_n.s | 184 + vere/ext/gmp/gen/x86_64-macos/mpn/sub_err3_n.s | 168 + vere/ext/gmp/gen/x86_64-macos/mpn/sub_n.s | 289 + vere/ext/gmp/gen/x86_64-macos/mpn/sublsh1_n.s | 190 + vere/ext/gmp/gen/x86_64-macos/mpn/sublsh2_n.s | 190 + vere/ext/gmp/gen/x86_64-macos/mpn/submul_1.s | 211 + vere/ext/gmp/gen/x86_64-macos/mpn/xnor_n.s | 163 + vere/ext/gmp/gen/x86_64-macos/mpn/xor_n.s | 158 + vere/ext/gmp/gen/x86_64-macos/sieve_table.h | 46 + vere/ext/gmp/gen/x86_64-macos/trialdivtab.h | 1214 ++ vere/ext/h2o/build.zig | 454 + vere/ext/h2o/build.zig.zon | 36 + vere/ext/h2o/patches/h2o-2.2.6/deps/klib/kopen.c | 344 + vere/ext/h2o/patches/h2o-2.2.6/deps/klib/ksw.c | 637 + .../patches/h2o-2.2.6/deps/klib/test/kbit_test.c | 141 + .../h2o-2.2.6/deps/picohttpparser/picohttpparser.c | 622 + vere/ext/libuv/build.zig | 162 + vere/ext/libuv/build.zig.zon | 13 + vere/ext/lmdb/build.zig | 56 + vere/ext/lmdb/build.zig.zon | 13 + vere/ext/lmdb/patches/lmdb-0.9.29/mdb.c | 10324 +++++++++++++ vere/ext/murmur3/build.zig | 38 + vere/ext/murmur3/build.zig.zon | 7 + vere/ext/murmur3/vendor/murmur3.c | 314 + vere/ext/murmur3/vendor/murmur3.h | 30 + vere/ext/natpmp/build.zig | 37 + vere/ext/natpmp/build.zig.zon | 14 + vere/ext/openssl/build.zig | 1051 ++ vere/ext/openssl/build.zig.zon | 19 + .../gen/linux-aarch64/crypto/aes/aesv8-armx.S | 757 + .../gen/linux-aarch64/crypto/aes/vpaes-armv8.S | 1196 ++ .../openssl/gen/linux-aarch64/crypto/arm64cpuid.S | 122 + .../gen/linux-aarch64/crypto/bn/armv8-mont.S | 1408 ++ .../gen/linux-aarch64/crypto/chacha/chacha-armv8.S | 1977 +++ .../linux-aarch64/crypto/ec/ecp_nistz256-armv8.S | 4242 ++++++ .../gen/linux-aarch64/crypto/modes/ghashv8-armx.S | 552 + .../linux-aarch64/crypto/poly1305/poly1305-armv8.S | 870 ++ .../linux-aarch64/crypto/sha/keccak1600-armv8.S | 1095 ++ .../gen/linux-aarch64/crypto/sha/sha1-armv8.S | 1221 ++ .../gen/linux-aarch64/crypto/sha/sha256-armv8.S | 2063 +++ .../gen/linux-aarch64/crypto/sha/sha512-armv8.S | 1618 +++ .../gen/linux-aarch64/include/crypto/bn_conf.h | 28 + .../gen/linux-aarch64/include/crypto/buildinf.h | 37 + .../gen/linux-aarch64/include/crypto/dso_conf.h | 17 + .../linux-aarch64/include/openssl/opensslconf.h | 197 + .../gen/linux-x86_64/crypto/aes/aesni-mb-x86_64.s | 1507 ++ .../linux-x86_64/crypto/aes/aesni-sha1-x86_64.s | 3035 ++++ .../linux-x86_64/crypto/aes/aesni-sha256-x86_64.s | 4435 ++++++ .../gen/linux-x86_64/crypto/aes/aesni-x86_64.s | 4474 ++++++ .../gen/linux-x86_64/crypto/aes/vpaes-x86_64.s | 853 ++ .../openssl/gen/linux-x86_64/crypto/bn/rsaz-avx2.s | 1744 +++ .../gen/linux-x86_64/crypto/bn/rsaz-x86_64.s | 2015 +++ .../gen/linux-x86_64/crypto/bn/x86_64-gf2m.s | 311 + .../gen/linux-x86_64/crypto/bn/x86_64-mont.s | 1239 ++ .../gen/linux-x86_64/crypto/bn/x86_64-mont5.s | 3603 +++++ .../gen/linux-x86_64/crypto/camellia/cmll-x86_64.s | 1924 +++ .../gen/linux-x86_64/crypto/chacha/chacha-x86_64.s | 2193 +++ .../linux-x86_64/crypto/ec/ecp_nistz256-x86_64.s | 7343 ++++++++++ .../gen/linux-x86_64/crypto/ec/x25519-x86_64.s | 802 ++ .../gen/linux-x86_64/crypto/md5/md5-x86_64.s | 683 + .../linux-x86_64/crypto/modes/aesni-gcm-x86_64.s | 789 + .../gen/linux-x86_64/crypto/modes/ghash-x86_64.s | 1847 +++ .../linux-x86_64/crypto/poly1305/poly1305-x86_64.s | 2068 +++ .../gen/linux-x86_64/crypto/rc4/rc4-md5-x86_64.s | 1281 ++ .../gen/linux-x86_64/crypto/rc4/rc4-x86_64.s | 632 + .../linux-x86_64/crypto/sha/keccak1600-x86_64.s | 524 + .../gen/linux-x86_64/crypto/sha/sha1-mb-x86_64.s | 7267 ++++++++++ .../gen/linux-x86_64/crypto/sha/sha1-x86_64.s | 5450 +++++++ .../gen/linux-x86_64/crypto/sha/sha256-mb-x86_64.s | 7948 ++++++++++ .../gen/linux-x86_64/crypto/sha/sha256-x86_64.s | 5456 +++++++ .../gen/linux-x86_64/crypto/sha/sha512-x86_64.s | 5461 +++++++ .../gen/linux-x86_64/crypto/whrlpool/wp-x86_64.s | 879 ++ .../openssl/gen/linux-x86_64/crypto/x86_64cpuid.s | 481 + .../gen/linux-x86_64/engines/e_padlock-x86_64.s | 1037 ++ .../gen/linux-x86_64/include/crypto/bn_conf.h | 28 + .../gen/linux-x86_64/include/crypto/buildinf.h | 45 + .../gen/linux-x86_64/include/crypto/dso_conf.h | 17 + .../gen/linux-x86_64/include/openssl/opensslconf.h | 197 + .../gen/macos-aarch64/crypto/aes/aesv8-armx.S | 757 + .../gen/macos-aarch64/crypto/aes/vpaes-armv8.S | 1196 ++ .../openssl/gen/macos-aarch64/crypto/arm64cpuid.S | 122 + .../gen/macos-aarch64/crypto/bn/armv8-mont.S | 1408 ++ .../gen/macos-aarch64/crypto/chacha/chacha-armv8.S | 1977 +++ .../macos-aarch64/crypto/ec/ecp_nistz256-armv8.S | 4242 ++++++ .../gen/macos-aarch64/crypto/modes/ghashv8-armx.S | 552 + .../macos-aarch64/crypto/poly1305/poly1305-armv8.S | 870 ++ .../macos-aarch64/crypto/sha/keccak1600-armv8.S | 1095 ++ .../gen/macos-aarch64/crypto/sha/sha1-armv8.S | 1221 ++ .../gen/macos-aarch64/crypto/sha/sha256-armv8.S | 2063 +++ .../gen/macos-aarch64/crypto/sha/sha512-armv8.S | 1618 +++ .../gen/macos-aarch64/include/crypto/bn_conf.h | 28 + .../gen/macos-aarch64/include/crypto/buildinf.h | 37 + .../gen/macos-aarch64/include/crypto/dso_conf.h | 17 + .../macos-aarch64/include/openssl/opensslconf.h | 203 + .../gen/macos-x86_64/crypto/aes/aesni-mb-x86_64.s | 1507 ++ .../macos-x86_64/crypto/aes/aesni-sha1-x86_64.s | 3023 ++++ .../macos-x86_64/crypto/aes/aesni-sha256-x86_64.s | 4435 ++++++ .../gen/macos-x86_64/crypto/aes/aesni-x86_64.s | 4464 ++++++ .../gen/macos-x86_64/crypto/aes/vpaes-x86_64.s | 853 ++ .../openssl/gen/macos-x86_64/crypto/bn/rsaz-avx2.s | 1744 +++ .../gen/macos-x86_64/crypto/bn/rsaz-x86_64.s | 1985 +++ .../gen/macos-x86_64/crypto/bn/x86_64-gf2m.s | 311 + .../gen/macos-x86_64/crypto/bn/x86_64-mont.s | 1239 ++ .../gen/macos-x86_64/crypto/bn/x86_64-mont5.s | 3603 +++++ .../gen/macos-x86_64/crypto/camellia/cmll-x86_64.s | 1903 +++ .../gen/macos-x86_64/crypto/chacha/chacha-x86_64.s | 2187 +++ .../macos-x86_64/crypto/ec/ecp_nistz256-x86_64.s | 7257 ++++++++++ .../gen/macos-x86_64/crypto/ec/x25519-x86_64.s | 770 + .../gen/macos-x86_64/crypto/md5/md5-x86_64.s | 678 + .../macos-x86_64/crypto/modes/aesni-gcm-x86_64.s | 789 + .../gen/macos-x86_64/crypto/modes/ghash-x86_64.s | 1835 +++ .../macos-x86_64/crypto/poly1305/poly1305-x86_64.s | 2038 +++ .../gen/macos-x86_64/crypto/rc4/rc4-md5-x86_64.s | 1275 ++ .../gen/macos-x86_64/crypto/rc4/rc4-x86_64.s | 629 + .../macos-x86_64/crypto/sha/keccak1600-x86_64.s | 494 + .../gen/macos-x86_64/crypto/sha/sha1-mb-x86_64.s | 7267 ++++++++++ .../gen/macos-x86_64/crypto/sha/sha1-x86_64.s | 5450 +++++++ .../gen/macos-x86_64/crypto/sha/sha256-mb-x86_64.s | 7948 ++++++++++ .../gen/macos-x86_64/crypto/sha/sha256-x86_64.s | 5456 +++++++ .../gen/macos-x86_64/crypto/sha/sha512-x86_64.s | 5461 +++++++ .../gen/macos-x86_64/crypto/whrlpool/wp-x86_64.s | 879 ++ .../openssl/gen/macos-x86_64/crypto/x86_64cpuid.s | 482 + .../gen/macos-x86_64/engines/e_padlock-x86_64.s | 1037 ++ .../gen/macos-x86_64/include/crypto/bn_conf.h | 28 + .../gen/macos-x86_64/include/crypto/buildinf.h | 44 + .../gen/macos-x86_64/include/crypto/dso_conf.h | 17 + .../gen/macos-x86_64/include/openssl/opensslconf.h | 203 + vere/ext/pdjson/build.zig | 38 + vere/ext/pdjson/build.zig.zon | 13 + vere/ext/sigsegv/build.zig | 151 + vere/ext/sigsegv/build.zig.zon | 18 + vere/ext/softblas/build.zig | 80 + vere/ext/softblas/build.zig.zon | 16 + vere/ext/softfloat/build.zig | 610 + vere/ext/softfloat/build.zig.zon | 13 + vere/ext/unwind/build.zig | 262 + vere/ext/unwind/build.zig.zon | 13 + vere/ext/urcrypt/build.zig | 513 + vere/ext/urcrypt/build.zig.zon | 24 + vere/ext/wasm3/build.zig | 87 + vere/ext/wasm3/build.zig.zon | 17 + vere/ext/whereami/build.zig | 33 + vere/ext/whereami/build.zig.zon | 13 + vere/ext/wslay/build.zig | 60 + vere/ext/wslay/build.zig.zon | 13 + vere/flake.lock | 61 + vere/flake.nix | 34 + vere/lldbinit.txt | 4 + vere/pkg/c3/build.zig | 45 + vere/pkg/c3/build.zig.zon | 14 + vere/pkg/c3/c3.h | 11 + vere/pkg/c3/defs.c | 19 + vere/pkg/c3/defs.h | 270 + vere/pkg/c3/motes.h | 1392 ++ vere/pkg/c3/portable.h | 240 + vere/pkg/c3/types.h | 75 + vere/pkg/ent/.gitignore | 4 + vere/pkg/ent/LICENSE | 20 + vere/pkg/ent/README.md | 36 + vere/pkg/ent/build.zig | 37 + vere/pkg/ent/ent.c | 74 + vere/pkg/ent/ent.h | 13 + vere/pkg/ent/tests.c | 20 + vere/pkg/noun/allocate.c | 3025 ++++ vere/pkg/noun/allocate.h | 760 + vere/pkg/noun/build.zig | 426 + vere/pkg/noun/build.zig.zon | 63 + vere/pkg/noun/equality_tests.c | 164 + vere/pkg/noun/error.h | 38 + vere/pkg/noun/events.c | 1766 +++ vere/pkg/noun/events.h | 128 + vere/pkg/noun/hashtable.c | 1400 ++ vere/pkg/noun/hashtable.h | 206 + vere/pkg/noun/hashtable_tests.c | 301 + vere/pkg/noun/imprison.c | 768 + vere/pkg/noun/imprison.h | 170 + vere/pkg/noun/jets.c | 2437 ++++ vere/pkg/noun/jets.h | 322 + vere/pkg/noun/jets/137/tree.c | 1182 ++ vere/pkg/noun/jets/a/add.c | 58 + vere/pkg/noun/jets/a/dec.c | 57 + vere/pkg/noun/jets/a/div.c | 57 + vere/pkg/noun/jets/a/gte.c | 58 + vere/pkg/noun/jets/a/gth.c | 67 + vere/pkg/noun/jets/a/lte.c | 67 + vere/pkg/noun/jets/a/lth.c | 58 + vere/pkg/noun/jets/a/max.c | 61 + vere/pkg/noun/jets/a/min.c | 61 + vere/pkg/noun/jets/a/mod.c | 55 + vere/pkg/noun/jets/a/mul.c | 58 + vere/pkg/noun/jets/a/sub.c | 67 + vere/pkg/noun/jets/b/bind.c | 30 + vere/pkg/noun/jets/b/clap.c | 36 + vere/pkg/noun/jets/b/drop.c | 30 + vere/pkg/noun/jets/b/find.c | 50 + vere/pkg/noun/jets/b/flop.c | 34 + vere/pkg/noun/jets/b/lent.c | 37 + vere/pkg/noun/jets/b/levy.c | 49 + vere/pkg/noun/jets/b/lien.c | 49 + vere/pkg/noun/jets/b/mate.c | 30 + vere/pkg/noun/jets/b/murn.c | 50 + vere/pkg/noun/jets/b/need.c | 30 + vere/pkg/noun/jets/b/reap.c | 41 + vere/pkg/noun/jets/b/reel.c | 52 + vere/pkg/noun/jets/b/roll.c | 38 + vere/pkg/noun/jets/b/scag.c | 53 + vere/pkg/noun/jets/b/skid.c | 58 + vere/pkg/noun/jets/b/skim.c | 52 + vere/pkg/noun/jets/b/skip.c | 52 + vere/pkg/noun/jets/b/slag.c | 43 + vere/pkg/noun/jets/b/snag.c | 44 + vere/pkg/noun/jets/b/sort.c | 88 + vere/pkg/noun/jets/b/turn.c | 45 + vere/pkg/noun/jets/b/weld.c | 48 + vere/pkg/noun/jets/b/zing.c | 47 + vere/pkg/noun/jets/c/aor.c | 69 + vere/pkg/noun/jets/c/bex.c | 55 + vere/pkg/noun/jets/c/c0n.c | 55 + vere/pkg/noun/jets/c/can.c | 85 + vere/pkg/noun/jets/c/cap.c | 25 + vere/pkg/noun/jets/c/cat.c | 54 + vere/pkg/noun/jets/c/clz.c | 75 + vere/pkg/noun/jets/c/ctz.c | 34 + vere/pkg/noun/jets/c/cut.c | 69 + vere/pkg/noun/jets/c/dis.c | 46 + vere/pkg/noun/jets/c/dor.c | 49 + vere/pkg/noun/jets/c/dvr.c | 45 + vere/pkg/noun/jets/c/end.c | 51 + vere/pkg/noun/jets/c/gor.c | 32 + vere/pkg/noun/jets/c/ham.c | 27 + vere/pkg/noun/jets/c/hew.c | 87 + vere/pkg/noun/jets/c/lsh.c | 63 + vere/pkg/noun/jets/c/mas.c | 48 + vere/pkg/noun/jets/c/met.c | 42 + vere/pkg/noun/jets/c/mix.c | 56 + vere/pkg/noun/jets/c/mor.c | 31 + vere/pkg/noun/jets/c/mug.c | 19 + vere/pkg/noun/jets/c/muk.c | 76 + vere/pkg/noun/jets/c/peg.c | 66 + vere/pkg/noun/jets/c/po.c | 1427 ++ vere/pkg/noun/jets/c/pow.c | 38 + vere/pkg/noun/jets/c/rap.c | 88 + vere/pkg/noun/jets/c/rep.c | 199 + vere/pkg/noun/jets/c/rev.c | 51 + vere/pkg/noun/jets/c/rig.c | 82 + vere/pkg/noun/jets/c/rip.c | 192 + vere/pkg/noun/jets/c/rsh.c | 60 + vere/pkg/noun/jets/c/sew.c | 74 + vere/pkg/noun/jets/c/sqt.c | 33 + vere/pkg/noun/jets/c/swp.c | 46 + vere/pkg/noun/jets/c/xeb.c | 32 + vere/pkg/noun/jets/d/by_all.c | 51 + vere/pkg/noun/jets/d/by_any.c | 51 + vere/pkg/noun/jets/d/by_apt.c | 78 + vere/pkg/noun/jets/d/by_bif.c | 74 + vere/pkg/noun/jets/d/by_del.c | 93 + vere/pkg/noun/jets/d/by_dif.c | 83 + vere/pkg/noun/jets/d/by_gas.c | 44 + vere/pkg/noun/jets/d/by_get.c | 63 + vere/pkg/noun/jets/d/by_has.c | 47 + vere/pkg/noun/jets/d/by_int.c | 72 + vere/pkg/noun/jets/d/by_jab.c | 46 + vere/pkg/noun/jets/d/by_key.c | 42 + vere/pkg/noun/jets/d/by_put.c | 102 + vere/pkg/noun/jets/d/by_run.c | 45 + vere/pkg/noun/jets/d/by_uni.c | 101 + vere/pkg/noun/jets/d/by_urn.c | 43 + vere/pkg/noun/jets/d/in_apt.c | 121 + vere/pkg/noun/jets/d/in_bif.c | 72 + vere/pkg/noun/jets/d/in_del.c | 88 + vere/pkg/noun/jets/d/in_dif.c | 82 + vere/pkg/noun/jets/d/in_gas.c | 42 + vere/pkg/noun/jets/d/in_has.c | 45 + vere/pkg/noun/jets/d/in_int.c | 65 + vere/pkg/noun/jets/d/in_put.c | 87 + vere/pkg/noun/jets/d/in_rep.c | 46 + vere/pkg/noun/jets/d/in_run.c | 53 + vere/pkg/noun/jets/d/in_tap.c | 46 + vere/pkg/noun/jets/d/in_uni.c | 98 + vere/pkg/noun/jets/d/in_wyt.c | 35 + vere/pkg/noun/jets/e/aes_cbc.c | 182 + vere/pkg/noun/jets/e/aes_ecb.c | 166 + vere/pkg/noun/jets/e/aes_siv.c | 370 + vere/pkg/noun/jets/e/argon2.c | 151 + vere/pkg/noun/jets/e/base.c | 152 + vere/pkg/noun/jets/e/blake.c | 163 + vere/pkg/noun/jets/e/chacha.c | 74 + vere/pkg/noun/jets/e/crc32.c | 59 + vere/pkg/noun/jets/e/cue.c | 27 + vere/pkg/noun/jets/e/ed_add_double_scalarmult.c | 72 + .../jets/e/ed_add_scalarmult_scalarmult_base.c | 66 + vere/pkg/noun/jets/e/ed_luck.c | 37 + vere/pkg/noun/jets/e/ed_point_add.c | 40 + vere/pkg/noun/jets/e/ed_point_neg.c | 37 + vere/pkg/noun/jets/e/ed_puck.c | 36 + vere/pkg/noun/jets/e/ed_recs.c | 48 + vere/pkg/noun/jets/e/ed_scad.c | 124 + vere/pkg/noun/jets/e/ed_scalarmult.c | 54 + vere/pkg/noun/jets/e/ed_scalarmult_base.c | 46 + vere/pkg/noun/jets/e/ed_shar.c | 74 + vere/pkg/noun/jets/e/ed_sign.c | 166 + vere/pkg/noun/jets/e/ed_smac.c | 73 + vere/pkg/noun/jets/e/ed_veri.c | 85 + vere/pkg/noun/jets/e/fein_ob.c | 90 + vere/pkg/noun/jets/e/fl.c | 441 + vere/pkg/noun/jets/e/fynd_ob.c | 94 + vere/pkg/noun/jets/e/hmac.c | 94 + vere/pkg/noun/jets/e/jam.c | 60 + vere/pkg/noun/jets/e/json_de.c | 258 + vere/pkg/noun/jets/e/json_en.c | 416 + vere/pkg/noun/jets/e/keccak.c | 42 + vere/pkg/noun/jets/e/leer.c | 131 + vere/pkg/noun/jets/e/loss.c | 297 + vere/pkg/noun/jets/e/lune.c | 57 + vere/pkg/noun/jets/e/mat.c | 49 + vere/pkg/noun/jets/e/mink.c | 27 + vere/pkg/noun/jets/e/mole.c | 18 + vere/pkg/noun/jets/e/mule.c | 19 + vere/pkg/noun/jets/e/parse.c | 1016 ++ vere/pkg/noun/jets/e/rd.c | 390 + vere/pkg/noun/jets/e/rh.c | 390 + vere/pkg/noun/jets/e/ripe.c | 45 + vere/pkg/noun/jets/e/rq.c | 446 + vere/pkg/noun/jets/e/rs.c | 390 + vere/pkg/noun/jets/e/rub.c | 85 + vere/pkg/noun/jets/e/scot.c | 30 + vere/pkg/noun/jets/e/scow.c | 251 + vere/pkg/noun/jets/e/scr.c | 227 + vere/pkg/noun/jets/e/secp.c | 298 + vere/pkg/noun/jets/e/sha1.c | 40 + vere/pkg/noun/jets/e/shax.c | 194 + vere/pkg/noun/jets/e/slaw.c | 477 + vere/pkg/noun/jets/e/tape.c | 53 + vere/pkg/noun/jets/e/trip.c | 33 + vere/pkg/noun/jets/e/urwasm.c | 1440 ++ vere/pkg/noun/jets/f/cell.c | 29 + vere/pkg/noun/jets/f/comb.c | 70 + vere/pkg/noun/jets/f/cons.c | 54 + vere/pkg/noun/jets/f/core.c | 118 + vere/pkg/noun/jets/f/face.c | 31 + vere/pkg/noun/jets/f/fine.c | 35 + vere/pkg/noun/jets/f/fitz.c | 75 + vere/pkg/noun/jets/f/flan.c | 47 + vere/pkg/noun/jets/f/flip.c | 39 + vere/pkg/noun/jets/f/flor.c | 47 + vere/pkg/noun/jets/f/fork.c | 79 + vere/pkg/noun/jets/f/help.c | 31 + vere/pkg/noun/jets/f/hint.c | 32 + vere/pkg/noun/jets/f/look.c | 134 + vere/pkg/noun/jets/f/loot.c | 133 + vere/pkg/noun/jets/f/ut_crop.c | 34 + vere/pkg/noun/jets/f/ut_fish.c | 35 + vere/pkg/noun/jets/f/ut_fuse.c | 34 + vere/pkg/noun/jets/f/ut_mint.c | 36 + vere/pkg/noun/jets/f/ut_mull.c | 37 + vere/pkg/noun/jets/f/ut_nest.c | 50 + vere/pkg/noun/jets/f/ut_rest.c | 34 + vere/pkg/noun/jets/g/plot.c | 364 + vere/pkg/noun/jets/i/lagoon.c | 3315 +++++ vere/pkg/noun/jets/k.h | 185 + vere/pkg/noun/jets/q.h | 303 + vere/pkg/noun/jets/tree.c | 2657 ++++ vere/pkg/noun/jets/w.h | 401 + vere/pkg/noun/jets_tests.c | 994 ++ vere/pkg/noun/log.c | 40 + vere/pkg/noun/log.h | 24 + vere/pkg/noun/manage.c | 2454 ++++ vere/pkg/noun/manage.h | 210 + vere/pkg/noun/nock.c | 3193 +++++ vere/pkg/noun/nock.h | 149 + vere/pkg/noun/nock_tests.c | 83 + vere/pkg/noun/noun.h | 26 + vere/pkg/noun/options.c | 5 + vere/pkg/noun/options.h | 57 + vere/pkg/noun/platform/darwin/rsignal.h | 13 + vere/pkg/noun/platform/linux/rsignal.h | 13 + vere/pkg/noun/retrieve.c | 1863 +++ vere/pkg/noun/retrieve.h | 538 + vere/pkg/noun/retrieve_tests.c | 247 + vere/pkg/noun/serial.c | 1456 ++ vere/pkg/noun/serial.h | 137 + vere/pkg/noun/serial_tests.c | 264 + vere/pkg/noun/ship.c | 109 + vere/pkg/noun/ship.h | 57 + vere/pkg/noun/trace.c | 1122 ++ vere/pkg/noun/trace.h | 187 + vere/pkg/noun/types.h | 64 + vere/pkg/noun/urth.c | 1041 ++ vere/pkg/noun/urth.h | 49 + vere/pkg/noun/v1/allocate.c | 238 + vere/pkg/noun/v1/allocate.h | 78 + vere/pkg/noun/v1/hashtable.c | 173 + vere/pkg/noun/v1/hashtable.h | 51 + vere/pkg/noun/v1/jets.c | 87 + vere/pkg/noun/v1/jets.h | 34 + vere/pkg/noun/v1/manage.c | 20 + vere/pkg/noun/v1/manage.h | 17 + vere/pkg/noun/v1/nock.c | 69 + vere/pkg/noun/v1/nock.h | 25 + vere/pkg/noun/v1/vortex.c | 17 + vere/pkg/noun/v1/vortex.h | 22 + vere/pkg/noun/v2/allocate.c | 73 + vere/pkg/noun/v2/allocate.h | 134 + vere/pkg/noun/v2/hashtable.c | 143 + vere/pkg/noun/v2/hashtable.h | 42 + vere/pkg/noun/v2/jets.c | 54 + vere/pkg/noun/v2/jets.h | 35 + vere/pkg/noun/v2/manage.c | 174 + vere/pkg/noun/v2/manage.h | 13 + vere/pkg/noun/v2/nock.c | 92 + vere/pkg/noun/v2/nock.h | 64 + vere/pkg/noun/v2/options.h | 14 + vere/pkg/noun/v2/vortex.c | 25 + vere/pkg/noun/v2/vortex.h | 40 + vere/pkg/noun/v3/allocate.h | 17 + vere/pkg/noun/v3/hashtable.c | 33 + vere/pkg/noun/v3/hashtable.h | 18 + vere/pkg/noun/v3/jets.h | 12 + vere/pkg/noun/v3/manage.c | 109 + vere/pkg/noun/v3/manage.h | 13 + vere/pkg/noun/v3/nock.h | 17 + vere/pkg/noun/v3/vortex.h | 19 + vere/pkg/noun/v4/manage.c | 30 + vere/pkg/noun/v4/manage.h | 13 + vere/pkg/noun/version.h | 41 + vere/pkg/noun/vortex.c | 445 + vere/pkg/noun/vortex.h | 146 + vere/pkg/noun/xtract.c | 31 + vere/pkg/noun/xtract.h | 154 + vere/pkg/noun/zave.c | 134 + vere/pkg/noun/zave.h | 68 + vere/pkg/ur/bitstream.c | 1283 ++ vere/pkg/ur/bitstream.h | 239 + vere/pkg/ur/build.zig | 42 + vere/pkg/ur/build.zig.zon | 12 + vere/pkg/ur/defs.h | 86 + vere/pkg/ur/hashcons.c | 1026 ++ vere/pkg/ur/hashcons.h | 259 + vere/pkg/ur/serial.c | 588 + vere/pkg/ur/serial.h | 114 + vere/pkg/ur/tests.c | 1862 +++ vere/pkg/ur/ur.h | 11 + vere/pkg/vere/PACE | 1 + vere/pkg/vere/VERSION | 1 + vere/pkg/vere/ames_tests.c | 102 + vere/pkg/vere/arena.h | 47 + vere/pkg/vere/auto.c | 445 + vere/pkg/vere/benchmarks.c | 465 + vere/pkg/vere/boot_tests.c | 70 + vere/pkg/vere/build.zig | 262 + vere/pkg/vere/build.zig.zon | 60 + vere/pkg/vere/ca_bundle/ca_bundle.c | 4 + vere/pkg/vere/ca_bundle/ca_bundle.h | 5 + vere/pkg/vere/ca_bundle/ca_bundle.sh | 47 + vere/pkg/vere/dawn.c | 484 + vere/pkg/vere/db/lmdb.c | 635 + vere/pkg/vere/db/lmdb.h | 94 + vere/pkg/vere/disk.c | 2127 +++ vere/pkg/vere/dns_sd.h | 1722 +++ vere/pkg/vere/foil.c | 147 + vere/pkg/vere/hamt_test.c | 136 + vere/pkg/vere/io/ames.c | 2956 ++++ vere/pkg/vere/io/ames/stun.c | 192 + vere/pkg/vere/io/ames/stun.h | 35 + vere/pkg/vere/io/behn.c | 257 + vere/pkg/vere/io/conn.c | 966 ++ vere/pkg/vere/io/cttp.c | 1170 ++ vere/pkg/vere/io/fore.c | 168 + vere/pkg/vere/io/hind.c | 86 + vere/pkg/vere/io/http.c | 3444 +++++ vere/pkg/vere/io/lick.c | 652 + vere/pkg/vere/io/lss.c | 391 + vere/pkg/vere/io/lss.h | 63 + vere/pkg/vere/io/mesa.c | 3064 ++++ vere/pkg/vere/io/mesa/bitset.c | 124 + vere/pkg/vere/io/mesa/bitset.h | 24 + vere/pkg/vere/io/mesa/mesa.h | 175 + vere/pkg/vere/io/mesa/pact.c | 1605 +++ vere/pkg/vere/io/mesa/pact_test.c | 3 + vere/pkg/vere/io/serial.h | 0 vere/pkg/vere/io/term.c | 1821 +++ vere/pkg/vere/io/unix.c | 1604 +++ vere/pkg/vere/ivory/ivory.c | 4 + vere/pkg/vere/ivory/ivory.h | 5 + vere/pkg/vere/ivory/ivory.sh | 47 + vere/pkg/vere/king.c | 1729 +++ vere/pkg/vere/lord.c | 1334 ++ vere/pkg/vere/main.c | 3494 +++++ vere/pkg/vere/mars.c | 388 + vere/pkg/vere/mars.h | 21 + vere/pkg/vere/mdns.c | 236 + vere/pkg/vere/mdns.h | 6 + vere/pkg/vere/melt.c | 217 + vere/pkg/vere/newt.c | 483 + vere/pkg/vere/newt_tests.c | 355 + vere/pkg/vere/noun_tests.c | 1789 +++ vere/pkg/vere/pier.c | 2747 ++++ vere/pkg/vere/platform/darwin/daemon.c | 93 + vere/pkg/vere/platform/darwin/mach.c | 28 + vere/pkg/vere/platform/darwin/ptty.c | 192 + vere/pkg/vere/platform/linux/daemon.c | 93 + vere/pkg/vere/platform/linux/ptty.c | 192 + vere/pkg/vere/save.c | 63 + vere/pkg/vere/serf.c | 1254 ++ vere/pkg/vere/serf.h | 63 + vere/pkg/vere/time.c | 169 + vere/pkg/vere/unix_tests.c | 67 + vere/pkg/vere/vere.h | 1620 +++ vere/pkg/vere/verstable.h | 1949 +++ vere/pkg/vere/ward.c | 254 + vere/pkg/vere/xmas_tests.c | 59 + vere/test-fake-ship.sh | 175 + 854 files changed, 404392 insertions(+) create mode 100644 .gitignore create mode 100644 UIP-0125.md create mode 100644 app/app/nostrill.hoon create mode 100644 app/desk.bill create mode 100644 app/desk.docket-0 create mode 100644 app/desk.ship create mode 100644 app/lib/constants.hoon create mode 100644 app/lib/dbug.hoon create mode 100644 app/lib/docket.hoon create mode 100644 app/lib/json/common.hoon create mode 100644 app/lib/json/nostr.hoon create mode 100644 app/lib/json/nostrill.hoon create mode 100644 app/lib/json/trill.hoon create mode 100644 app/lib/markdown.hoon create mode 100644 app/lib/mutations/nostr.hoon create mode 100644 app/lib/mutations/trill.hoon create mode 100644 app/lib/nostr/events.hoon create mode 100644 app/lib/nostr/keys.hoon create mode 100644 app/lib/nostrill.hoon create mode 100644 app/lib/nostrill/comms.hoon create mode 100644 app/lib/nostrill/follows.hoon create mode 100644 app/lib/scri.hoon create mode 100644 app/lib/server.hoon create mode 100644 app/lib/shim.hoon create mode 100644 app/lib/sortug.hoon create mode 100644 app/lib/strand.hoon create mode 100644 app/lib/strandio.hoon create mode 100644 app/lib/trill/feed.hoon create mode 100644 app/lib/trill/gate.hoon create mode 100644 app/lib/trill/post.hoon create mode 100644 app/mar/bill.hoon create mode 100644 app/mar/css.hoon create mode 100644 app/mar/docket-0.hoon create mode 100644 app/mar/hoon.hoon create mode 100644 app/mar/ico.hoon create mode 100644 app/mar/js.hoon create mode 100644 app/mar/json.hoon create mode 100644 app/mar/kelvin.hoon create mode 100644 app/mar/mime.hoon create mode 100644 app/mar/noun.hoon create mode 100644 app/mar/png.hoon create mode 100644 app/mar/ship.hoon create mode 100644 app/mar/svg.hoon create mode 100644 app/mar/tang.hoon create mode 100644 app/mar/webmanifest.hoon create mode 100644 app/sur/docket.hoon create mode 100644 app/sur/markdown.hoon create mode 100644 app/sur/nostr.hoon create mode 100644 app/sur/nostrill.hoon create mode 100644 app/sur/nostrill/comms.hoon create mode 100644 app/sur/spider.hoon create mode 100644 app/sur/trill/feed.hoon create mode 100644 app/sur/trill/gate.hoon create mode 100644 app/sur/trill/post.hoon create mode 100644 app/sys.kelvin create mode 100644 app/ted/beg.hoon create mode 100644 app/ted/fetch.hoon create mode 100644 app/web/assets/apple-touch-icon.png create mode 100644 app/web/assets/favicon-16x16.png create mode 100644 app/web/assets/favicon-32x32.png create mode 100644 app/web/assets/favicon.ico create mode 100644 app/web/assets/script.js create mode 100644 app/web/assets/site.webmanifest create mode 100644 app/web/assets/spinner.svg create mode 100644 app/web/assets/style.css create mode 100644 app/web/components/components.hoon create mode 100644 app/web/components/navbar.hoon create mode 100644 app/web/components/post-text.hoon create mode 100644 app/web/components/sigil/sigil.hoon create mode 100644 app/web/components/sigil/symbols.hoon create mode 100644 app/web/layout.hoon create mode 100644 app/web/pages/index.hoon create mode 100644 app/web/router.hoon create mode 100644 arvo/eyre.hoon create mode 100644 arvo/lull.hoon create mode 100644 vere/.gitignore create mode 100644 vere/CONTRIBUTING.md create mode 100644 vere/INSTALL.md create mode 100644 vere/LICENSE.txt create mode 100644 vere/MAINTAINERS.md create mode 100644 vere/README.md create mode 100755 vere/boot-fake-ship.sh create mode 100644 vere/build.zig create mode 100644 vere/build.zig.zon create mode 100644 vere/doc/spec/nock/4.txt create mode 100644 vere/doc/spec/nock/5.txt create mode 100644 vere/doc/spec/u3.md create mode 100644 vere/docker/Dockerfile create mode 100644 vere/docker/README.md create mode 100755 vere/docker/get_urbit_code.sh create mode 100755 vere/docker/reset_urbit_code.sh create mode 100755 vere/docker/start_urbit.sh create mode 100644 vere/ext/avahi/build.zig create mode 100644 vere/ext/avahi/build.zig.zon create mode 100644 vere/ext/backtrace/build.zig create mode 100644 vere/ext/backtrace/build.zig.zon create mode 100644 vere/ext/curl/build.zig create mode 100644 vere/ext/curl/build.zig.zon create mode 100644 vere/ext/gmp/build.zig create mode 100644 vere/ext/gmp/build.zig.zon create mode 100644 vere/ext/gmp/gen/README.md create mode 100644 vere/ext/gmp/gen/aarch64-linux/config.h create mode 100644 vere/ext/gmp/gen/aarch64-linux/fac_table.h create mode 100644 vere/ext/gmp/gen/aarch64-linux/fib_table.h create mode 100644 vere/ext/gmp/gen/aarch64-linux/mp_bases.h create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/add_n.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/addlsh1_n.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/addlsh2_n.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/addmul_1.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/and_n.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/andn_n.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/bdiv_dbm1c.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/bdiv_q_1.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/cnd_add_n.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/cnd_sub_n.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/com.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/copyd.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/copyi.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/fib_table.c create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/gcd_11.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/gcd_22.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/hamdist.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/invert_limb.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/ior_n.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/iorn_n.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/jacobitab.h create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/lshift.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/lshiftc.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/mod_34lsub1.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/mp_bases.c create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/mul_1.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/nand_n.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/nior_n.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/perfsqr.h create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/popcount.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/rsblsh1_n.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/rsblsh2_n.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/rsh1add_n.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/rsh1sub_n.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/rshift.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/sec_tabselect.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/sqr_diag_addlsh1.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/sub_n.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/sublsh1_n.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/sublsh2_n.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/submul_1.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/xnor_n.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/mpn/xor_n.s create mode 100644 vere/ext/gmp/gen/aarch64-linux/sieve_table.h create mode 100644 vere/ext/gmp/gen/aarch64-linux/trialdivtab.h create mode 100644 vere/ext/gmp/gen/aarch64-macos/config.h create mode 100644 vere/ext/gmp/gen/aarch64-macos/fac_table.h create mode 100644 vere/ext/gmp/gen/aarch64-macos/fib_table.h create mode 100644 vere/ext/gmp/gen/aarch64-macos/mp_bases.h create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/add_n.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/addlsh1_n.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/addlsh2_n.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/addmul_1.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/and_n.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/andn_n.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/bdiv_dbm1c.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/bdiv_q_1.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/cnd_add_n.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/cnd_sub_n.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/com.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/copyd.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/copyi.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/divrem_1.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/fib_table.c create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/gcd_11.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/gcd_22.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/hamdist.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/invert_limb.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/ior_n.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/iorn_n.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/jacobitab.h create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/lshift.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/lshiftc.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/mod_34lsub1.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/mp_bases.c create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/mul_1.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/nand_n.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/nior_n.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/perfsqr.h create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/popcount.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/rsblsh1_n.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/rsblsh2_n.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/rsh1add_n.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/rsh1sub_n.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/rshift.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/sec_tabselect.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/sqr_diag_addlsh1.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/sub_n.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/sublsh1_n.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/sublsh2_n.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/submul_1.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/tmp-add_n.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/xnor_n.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/mpn/xor_n.s create mode 100644 vere/ext/gmp/gen/aarch64-macos/sieve_table.h create mode 100644 vere/ext/gmp/gen/aarch64-macos/trialdivtab.h create mode 100644 vere/ext/gmp/gen/x86_64-linux/config.h create mode 100644 vere/ext/gmp/gen/x86_64-linux/fac_table.h create mode 100644 vere/ext/gmp/gen/x86_64-linux/fib_table.h create mode 100644 vere/ext/gmp/gen/x86_64-linux/mp_bases.h create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/add_err1_n.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/add_err2_n.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/add_err3_n.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/add_n.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/addaddmul_1msb0.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/addlsh1_n.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/addlsh2_n.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/addlsh_n.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/addmul_1.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/addmul_2.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/and_n.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/andn_n.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/bdiv_dbm1c.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/bdiv_q_1.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/cnd_add_n.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/cnd_sub_n.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/com.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/copyd.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/copyi.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/div_qr_1n_pi1.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/div_qr_2n_pi1.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/div_qr_2u_pi1.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/dive_1.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/divrem_1.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/divrem_2.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/fib_table.c create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/gcd_11.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/gcd_22.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/hamdist.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/invert_limb.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/invert_limb_table.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/ior_n.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/iorn_n.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/jacobitab.h create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/lshift.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/lshiftc.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/mod_1_1.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/mod_1_2.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/mod_1_4.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/mod_34lsub1.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/mode1o.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/mp_bases.c create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/mul_1.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/mul_2.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/mul_basecase.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/mullo_basecase.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/mulmid_basecase.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/nand_n.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/nior_n.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/perfsqr.h create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/popcount.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/redc_1.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/rsblsh1_n.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/rsblsh2_n.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/rsblsh_n.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/rsh1add_n.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/rsh1sub_n.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/rshift.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/sec_tabselect.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/sqr_basecase.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/sqr_diag_addlsh1.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/sub_err1_n.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/sub_err2_n.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/sub_err3_n.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/sub_n.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/sublsh1_n.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/submul_1.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/xnor_n.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/mpn/xor_n.s create mode 100644 vere/ext/gmp/gen/x86_64-linux/sieve_table.h create mode 100644 vere/ext/gmp/gen/x86_64-linux/trialdivtab.h create mode 100644 vere/ext/gmp/gen/x86_64-macos/config.h create mode 100644 vere/ext/gmp/gen/x86_64-macos/fac_table.h create mode 100644 vere/ext/gmp/gen/x86_64-macos/fib_table.h create mode 100644 vere/ext/gmp/gen/x86_64-macos/mp_bases.h create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/add_err1_n.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/add_err2_n.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/add_err3_n.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/add_n.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/addaddmul_1msb0.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/addlsh1_n.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/addlsh2_n.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/addlsh_n.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/addmul_1.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/addmul_2.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/and_n.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/andn_n.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/bdiv_dbm1c.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/bdiv_q_1.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/cnd_add_n.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/cnd_sub_n.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/com.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/copyd.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/copyi.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/div_qr_1n_pi1.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/div_qr_2n_pi1.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/div_qr_2u_pi1.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/dive_1.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/divrem_1.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/divrem_2.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/fib_table.c create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/gcd_11.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/gcd_22.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/hamdist.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/invert_limb.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/invert_limb_table.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/ior_n.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/iorn_n.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/jacobitab.h create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/lshift.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/lshiftc.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/mod_1_1.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/mod_1_2.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/mod_1_4.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/mod_34lsub1.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/mode1o.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/mp_bases.c create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/mul_1.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/mul_2.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/mul_basecase.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/mullo_basecase.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/nand_n.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/nior_n.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/perfsqr.h create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/popcount.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/redc_1.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/rsblsh1_n.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/rsblsh2_n.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/rsblsh_n.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/rsh1add_n.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/rsh1sub_n.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/rshift.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/sbpi1_bdiv_r.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/sec_tabselect.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/sqr_basecase.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/sqr_diag_addlsh1.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/sub_err1_n.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/sub_err2_n.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/sub_err3_n.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/sub_n.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/sublsh1_n.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/sublsh2_n.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/submul_1.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/xnor_n.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/mpn/xor_n.s create mode 100644 vere/ext/gmp/gen/x86_64-macos/sieve_table.h create mode 100644 vere/ext/gmp/gen/x86_64-macos/trialdivtab.h create mode 100644 vere/ext/h2o/build.zig create mode 100644 vere/ext/h2o/build.zig.zon create mode 100644 vere/ext/h2o/patches/h2o-2.2.6/deps/klib/kopen.c create mode 100644 vere/ext/h2o/patches/h2o-2.2.6/deps/klib/ksw.c create mode 100644 vere/ext/h2o/patches/h2o-2.2.6/deps/klib/test/kbit_test.c create mode 100644 vere/ext/h2o/patches/h2o-2.2.6/deps/picohttpparser/picohttpparser.c create mode 100644 vere/ext/libuv/build.zig create mode 100644 vere/ext/libuv/build.zig.zon create mode 100644 vere/ext/lmdb/build.zig create mode 100644 vere/ext/lmdb/build.zig.zon create mode 100644 vere/ext/lmdb/patches/lmdb-0.9.29/mdb.c create mode 100644 vere/ext/murmur3/build.zig create mode 100644 vere/ext/murmur3/build.zig.zon create mode 100644 vere/ext/murmur3/vendor/murmur3.c create mode 100644 vere/ext/murmur3/vendor/murmur3.h create mode 100644 vere/ext/natpmp/build.zig create mode 100644 vere/ext/natpmp/build.zig.zon create mode 100644 vere/ext/openssl/build.zig create mode 100644 vere/ext/openssl/build.zig.zon create mode 100644 vere/ext/openssl/gen/linux-aarch64/crypto/aes/aesv8-armx.S create mode 100644 vere/ext/openssl/gen/linux-aarch64/crypto/aes/vpaes-armv8.S create mode 100644 vere/ext/openssl/gen/linux-aarch64/crypto/arm64cpuid.S create mode 100644 vere/ext/openssl/gen/linux-aarch64/crypto/bn/armv8-mont.S create mode 100644 vere/ext/openssl/gen/linux-aarch64/crypto/chacha/chacha-armv8.S create mode 100644 vere/ext/openssl/gen/linux-aarch64/crypto/ec/ecp_nistz256-armv8.S create mode 100644 vere/ext/openssl/gen/linux-aarch64/crypto/modes/ghashv8-armx.S create mode 100644 vere/ext/openssl/gen/linux-aarch64/crypto/poly1305/poly1305-armv8.S create mode 100644 vere/ext/openssl/gen/linux-aarch64/crypto/sha/keccak1600-armv8.S create mode 100644 vere/ext/openssl/gen/linux-aarch64/crypto/sha/sha1-armv8.S create mode 100644 vere/ext/openssl/gen/linux-aarch64/crypto/sha/sha256-armv8.S create mode 100644 vere/ext/openssl/gen/linux-aarch64/crypto/sha/sha512-armv8.S create mode 100644 vere/ext/openssl/gen/linux-aarch64/include/crypto/bn_conf.h create mode 100644 vere/ext/openssl/gen/linux-aarch64/include/crypto/buildinf.h create mode 100644 vere/ext/openssl/gen/linux-aarch64/include/crypto/dso_conf.h create mode 100644 vere/ext/openssl/gen/linux-aarch64/include/openssl/opensslconf.h create mode 100644 vere/ext/openssl/gen/linux-x86_64/crypto/aes/aesni-mb-x86_64.s create mode 100644 vere/ext/openssl/gen/linux-x86_64/crypto/aes/aesni-sha1-x86_64.s create mode 100644 vere/ext/openssl/gen/linux-x86_64/crypto/aes/aesni-sha256-x86_64.s create mode 100644 vere/ext/openssl/gen/linux-x86_64/crypto/aes/aesni-x86_64.s create mode 100644 vere/ext/openssl/gen/linux-x86_64/crypto/aes/vpaes-x86_64.s create mode 100644 vere/ext/openssl/gen/linux-x86_64/crypto/bn/rsaz-avx2.s create mode 100644 vere/ext/openssl/gen/linux-x86_64/crypto/bn/rsaz-x86_64.s create mode 100644 vere/ext/openssl/gen/linux-x86_64/crypto/bn/x86_64-gf2m.s create mode 100644 vere/ext/openssl/gen/linux-x86_64/crypto/bn/x86_64-mont.s create mode 100644 vere/ext/openssl/gen/linux-x86_64/crypto/bn/x86_64-mont5.s create mode 100644 vere/ext/openssl/gen/linux-x86_64/crypto/camellia/cmll-x86_64.s create mode 100644 vere/ext/openssl/gen/linux-x86_64/crypto/chacha/chacha-x86_64.s create mode 100644 vere/ext/openssl/gen/linux-x86_64/crypto/ec/ecp_nistz256-x86_64.s create mode 100644 vere/ext/openssl/gen/linux-x86_64/crypto/ec/x25519-x86_64.s create mode 100644 vere/ext/openssl/gen/linux-x86_64/crypto/md5/md5-x86_64.s create mode 100644 vere/ext/openssl/gen/linux-x86_64/crypto/modes/aesni-gcm-x86_64.s create mode 100644 vere/ext/openssl/gen/linux-x86_64/crypto/modes/ghash-x86_64.s create mode 100644 vere/ext/openssl/gen/linux-x86_64/crypto/poly1305/poly1305-x86_64.s create mode 100644 vere/ext/openssl/gen/linux-x86_64/crypto/rc4/rc4-md5-x86_64.s create mode 100644 vere/ext/openssl/gen/linux-x86_64/crypto/rc4/rc4-x86_64.s create mode 100644 vere/ext/openssl/gen/linux-x86_64/crypto/sha/keccak1600-x86_64.s create mode 100644 vere/ext/openssl/gen/linux-x86_64/crypto/sha/sha1-mb-x86_64.s create mode 100644 vere/ext/openssl/gen/linux-x86_64/crypto/sha/sha1-x86_64.s create mode 100644 vere/ext/openssl/gen/linux-x86_64/crypto/sha/sha256-mb-x86_64.s create mode 100644 vere/ext/openssl/gen/linux-x86_64/crypto/sha/sha256-x86_64.s create mode 100644 vere/ext/openssl/gen/linux-x86_64/crypto/sha/sha512-x86_64.s create mode 100644 vere/ext/openssl/gen/linux-x86_64/crypto/whrlpool/wp-x86_64.s create mode 100644 vere/ext/openssl/gen/linux-x86_64/crypto/x86_64cpuid.s create mode 100644 vere/ext/openssl/gen/linux-x86_64/engines/e_padlock-x86_64.s create mode 100644 vere/ext/openssl/gen/linux-x86_64/include/crypto/bn_conf.h create mode 100644 vere/ext/openssl/gen/linux-x86_64/include/crypto/buildinf.h create mode 100644 vere/ext/openssl/gen/linux-x86_64/include/crypto/dso_conf.h create mode 100644 vere/ext/openssl/gen/linux-x86_64/include/openssl/opensslconf.h create mode 100644 vere/ext/openssl/gen/macos-aarch64/crypto/aes/aesv8-armx.S create mode 100644 vere/ext/openssl/gen/macos-aarch64/crypto/aes/vpaes-armv8.S create mode 100644 vere/ext/openssl/gen/macos-aarch64/crypto/arm64cpuid.S create mode 100644 vere/ext/openssl/gen/macos-aarch64/crypto/bn/armv8-mont.S create mode 100644 vere/ext/openssl/gen/macos-aarch64/crypto/chacha/chacha-armv8.S create mode 100644 vere/ext/openssl/gen/macos-aarch64/crypto/ec/ecp_nistz256-armv8.S create mode 100644 vere/ext/openssl/gen/macos-aarch64/crypto/modes/ghashv8-armx.S create mode 100644 vere/ext/openssl/gen/macos-aarch64/crypto/poly1305/poly1305-armv8.S create mode 100644 vere/ext/openssl/gen/macos-aarch64/crypto/sha/keccak1600-armv8.S create mode 100644 vere/ext/openssl/gen/macos-aarch64/crypto/sha/sha1-armv8.S create mode 100644 vere/ext/openssl/gen/macos-aarch64/crypto/sha/sha256-armv8.S create mode 100644 vere/ext/openssl/gen/macos-aarch64/crypto/sha/sha512-armv8.S create mode 100644 vere/ext/openssl/gen/macos-aarch64/include/crypto/bn_conf.h create mode 100644 vere/ext/openssl/gen/macos-aarch64/include/crypto/buildinf.h create mode 100644 vere/ext/openssl/gen/macos-aarch64/include/crypto/dso_conf.h create mode 100644 vere/ext/openssl/gen/macos-aarch64/include/openssl/opensslconf.h create mode 100644 vere/ext/openssl/gen/macos-x86_64/crypto/aes/aesni-mb-x86_64.s create mode 100644 vere/ext/openssl/gen/macos-x86_64/crypto/aes/aesni-sha1-x86_64.s create mode 100644 vere/ext/openssl/gen/macos-x86_64/crypto/aes/aesni-sha256-x86_64.s create mode 100644 vere/ext/openssl/gen/macos-x86_64/crypto/aes/aesni-x86_64.s create mode 100644 vere/ext/openssl/gen/macos-x86_64/crypto/aes/vpaes-x86_64.s create mode 100644 vere/ext/openssl/gen/macos-x86_64/crypto/bn/rsaz-avx2.s create mode 100644 vere/ext/openssl/gen/macos-x86_64/crypto/bn/rsaz-x86_64.s create mode 100644 vere/ext/openssl/gen/macos-x86_64/crypto/bn/x86_64-gf2m.s create mode 100644 vere/ext/openssl/gen/macos-x86_64/crypto/bn/x86_64-mont.s create mode 100644 vere/ext/openssl/gen/macos-x86_64/crypto/bn/x86_64-mont5.s create mode 100644 vere/ext/openssl/gen/macos-x86_64/crypto/camellia/cmll-x86_64.s create mode 100644 vere/ext/openssl/gen/macos-x86_64/crypto/chacha/chacha-x86_64.s create mode 100644 vere/ext/openssl/gen/macos-x86_64/crypto/ec/ecp_nistz256-x86_64.s create mode 100644 vere/ext/openssl/gen/macos-x86_64/crypto/ec/x25519-x86_64.s create mode 100644 vere/ext/openssl/gen/macos-x86_64/crypto/md5/md5-x86_64.s create mode 100644 vere/ext/openssl/gen/macos-x86_64/crypto/modes/aesni-gcm-x86_64.s create mode 100644 vere/ext/openssl/gen/macos-x86_64/crypto/modes/ghash-x86_64.s create mode 100644 vere/ext/openssl/gen/macos-x86_64/crypto/poly1305/poly1305-x86_64.s create mode 100644 vere/ext/openssl/gen/macos-x86_64/crypto/rc4/rc4-md5-x86_64.s create mode 100644 vere/ext/openssl/gen/macos-x86_64/crypto/rc4/rc4-x86_64.s create mode 100644 vere/ext/openssl/gen/macos-x86_64/crypto/sha/keccak1600-x86_64.s create mode 100644 vere/ext/openssl/gen/macos-x86_64/crypto/sha/sha1-mb-x86_64.s create mode 100644 vere/ext/openssl/gen/macos-x86_64/crypto/sha/sha1-x86_64.s create mode 100644 vere/ext/openssl/gen/macos-x86_64/crypto/sha/sha256-mb-x86_64.s create mode 100644 vere/ext/openssl/gen/macos-x86_64/crypto/sha/sha256-x86_64.s create mode 100644 vere/ext/openssl/gen/macos-x86_64/crypto/sha/sha512-x86_64.s create mode 100644 vere/ext/openssl/gen/macos-x86_64/crypto/whrlpool/wp-x86_64.s create mode 100644 vere/ext/openssl/gen/macos-x86_64/crypto/x86_64cpuid.s create mode 100644 vere/ext/openssl/gen/macos-x86_64/engines/e_padlock-x86_64.s create mode 100644 vere/ext/openssl/gen/macos-x86_64/include/crypto/bn_conf.h create mode 100644 vere/ext/openssl/gen/macos-x86_64/include/crypto/buildinf.h create mode 100644 vere/ext/openssl/gen/macos-x86_64/include/crypto/dso_conf.h create mode 100644 vere/ext/openssl/gen/macos-x86_64/include/openssl/opensslconf.h create mode 100644 vere/ext/pdjson/build.zig create mode 100644 vere/ext/pdjson/build.zig.zon create mode 100644 vere/ext/sigsegv/build.zig create mode 100644 vere/ext/sigsegv/build.zig.zon create mode 100644 vere/ext/softblas/build.zig create mode 100644 vere/ext/softblas/build.zig.zon create mode 100644 vere/ext/softfloat/build.zig create mode 100644 vere/ext/softfloat/build.zig.zon create mode 100644 vere/ext/unwind/build.zig create mode 100644 vere/ext/unwind/build.zig.zon create mode 100644 vere/ext/urcrypt/build.zig create mode 100644 vere/ext/urcrypt/build.zig.zon create mode 100644 vere/ext/wasm3/build.zig create mode 100644 vere/ext/wasm3/build.zig.zon create mode 100644 vere/ext/whereami/build.zig create mode 100644 vere/ext/whereami/build.zig.zon create mode 100644 vere/ext/wslay/build.zig create mode 100644 vere/ext/wslay/build.zig.zon create mode 100644 vere/flake.lock create mode 100644 vere/flake.nix create mode 100644 vere/lldbinit.txt create mode 100644 vere/pkg/c3/build.zig create mode 100644 vere/pkg/c3/build.zig.zon create mode 100644 vere/pkg/c3/c3.h create mode 100644 vere/pkg/c3/defs.c create mode 100644 vere/pkg/c3/defs.h create mode 100644 vere/pkg/c3/motes.h create mode 100644 vere/pkg/c3/portable.h create mode 100644 vere/pkg/c3/types.h create mode 100644 vere/pkg/ent/.gitignore create mode 100644 vere/pkg/ent/LICENSE create mode 100644 vere/pkg/ent/README.md create mode 100644 vere/pkg/ent/build.zig create mode 100644 vere/pkg/ent/ent.c create mode 100644 vere/pkg/ent/ent.h create mode 100644 vere/pkg/ent/tests.c create mode 100644 vere/pkg/noun/allocate.c create mode 100644 vere/pkg/noun/allocate.h create mode 100644 vere/pkg/noun/build.zig create mode 100644 vere/pkg/noun/build.zig.zon create mode 100644 vere/pkg/noun/equality_tests.c create mode 100644 vere/pkg/noun/error.h create mode 100644 vere/pkg/noun/events.c create mode 100644 vere/pkg/noun/events.h create mode 100644 vere/pkg/noun/hashtable.c create mode 100644 vere/pkg/noun/hashtable.h create mode 100644 vere/pkg/noun/hashtable_tests.c create mode 100644 vere/pkg/noun/imprison.c create mode 100644 vere/pkg/noun/imprison.h create mode 100644 vere/pkg/noun/jets.c create mode 100644 vere/pkg/noun/jets.h create mode 100644 vere/pkg/noun/jets/137/tree.c create mode 100644 vere/pkg/noun/jets/a/add.c create mode 100644 vere/pkg/noun/jets/a/dec.c create mode 100644 vere/pkg/noun/jets/a/div.c create mode 100644 vere/pkg/noun/jets/a/gte.c create mode 100644 vere/pkg/noun/jets/a/gth.c create mode 100644 vere/pkg/noun/jets/a/lte.c create mode 100644 vere/pkg/noun/jets/a/lth.c create mode 100644 vere/pkg/noun/jets/a/max.c create mode 100644 vere/pkg/noun/jets/a/min.c create mode 100644 vere/pkg/noun/jets/a/mod.c create mode 100644 vere/pkg/noun/jets/a/mul.c create mode 100644 vere/pkg/noun/jets/a/sub.c create mode 100644 vere/pkg/noun/jets/b/bind.c create mode 100644 vere/pkg/noun/jets/b/clap.c create mode 100644 vere/pkg/noun/jets/b/drop.c create mode 100644 vere/pkg/noun/jets/b/find.c create mode 100644 vere/pkg/noun/jets/b/flop.c create mode 100644 vere/pkg/noun/jets/b/lent.c create mode 100644 vere/pkg/noun/jets/b/levy.c create mode 100644 vere/pkg/noun/jets/b/lien.c create mode 100644 vere/pkg/noun/jets/b/mate.c create mode 100644 vere/pkg/noun/jets/b/murn.c create mode 100644 vere/pkg/noun/jets/b/need.c create mode 100644 vere/pkg/noun/jets/b/reap.c create mode 100644 vere/pkg/noun/jets/b/reel.c create mode 100644 vere/pkg/noun/jets/b/roll.c create mode 100644 vere/pkg/noun/jets/b/scag.c create mode 100644 vere/pkg/noun/jets/b/skid.c create mode 100644 vere/pkg/noun/jets/b/skim.c create mode 100644 vere/pkg/noun/jets/b/skip.c create mode 100644 vere/pkg/noun/jets/b/slag.c create mode 100644 vere/pkg/noun/jets/b/snag.c create mode 100644 vere/pkg/noun/jets/b/sort.c create mode 100644 vere/pkg/noun/jets/b/turn.c create mode 100644 vere/pkg/noun/jets/b/weld.c create mode 100644 vere/pkg/noun/jets/b/zing.c create mode 100644 vere/pkg/noun/jets/c/aor.c create mode 100644 vere/pkg/noun/jets/c/bex.c create mode 100644 vere/pkg/noun/jets/c/c0n.c create mode 100644 vere/pkg/noun/jets/c/can.c create mode 100644 vere/pkg/noun/jets/c/cap.c create mode 100644 vere/pkg/noun/jets/c/cat.c create mode 100644 vere/pkg/noun/jets/c/clz.c create mode 100644 vere/pkg/noun/jets/c/ctz.c create mode 100644 vere/pkg/noun/jets/c/cut.c create mode 100644 vere/pkg/noun/jets/c/dis.c create mode 100644 vere/pkg/noun/jets/c/dor.c create mode 100644 vere/pkg/noun/jets/c/dvr.c create mode 100644 vere/pkg/noun/jets/c/end.c create mode 100644 vere/pkg/noun/jets/c/gor.c create mode 100644 vere/pkg/noun/jets/c/ham.c create mode 100644 vere/pkg/noun/jets/c/hew.c create mode 100644 vere/pkg/noun/jets/c/lsh.c create mode 100644 vere/pkg/noun/jets/c/mas.c create mode 100644 vere/pkg/noun/jets/c/met.c create mode 100644 vere/pkg/noun/jets/c/mix.c create mode 100644 vere/pkg/noun/jets/c/mor.c create mode 100644 vere/pkg/noun/jets/c/mug.c create mode 100644 vere/pkg/noun/jets/c/muk.c create mode 100644 vere/pkg/noun/jets/c/peg.c create mode 100644 vere/pkg/noun/jets/c/po.c create mode 100644 vere/pkg/noun/jets/c/pow.c create mode 100644 vere/pkg/noun/jets/c/rap.c create mode 100644 vere/pkg/noun/jets/c/rep.c create mode 100644 vere/pkg/noun/jets/c/rev.c create mode 100644 vere/pkg/noun/jets/c/rig.c create mode 100644 vere/pkg/noun/jets/c/rip.c create mode 100644 vere/pkg/noun/jets/c/rsh.c create mode 100644 vere/pkg/noun/jets/c/sew.c create mode 100644 vere/pkg/noun/jets/c/sqt.c create mode 100644 vere/pkg/noun/jets/c/swp.c create mode 100644 vere/pkg/noun/jets/c/xeb.c create mode 100644 vere/pkg/noun/jets/d/by_all.c create mode 100644 vere/pkg/noun/jets/d/by_any.c create mode 100644 vere/pkg/noun/jets/d/by_apt.c create mode 100644 vere/pkg/noun/jets/d/by_bif.c create mode 100644 vere/pkg/noun/jets/d/by_del.c create mode 100644 vere/pkg/noun/jets/d/by_dif.c create mode 100644 vere/pkg/noun/jets/d/by_gas.c create mode 100644 vere/pkg/noun/jets/d/by_get.c create mode 100644 vere/pkg/noun/jets/d/by_has.c create mode 100644 vere/pkg/noun/jets/d/by_int.c create mode 100644 vere/pkg/noun/jets/d/by_jab.c create mode 100644 vere/pkg/noun/jets/d/by_key.c create mode 100644 vere/pkg/noun/jets/d/by_put.c create mode 100644 vere/pkg/noun/jets/d/by_run.c create mode 100644 vere/pkg/noun/jets/d/by_uni.c create mode 100644 vere/pkg/noun/jets/d/by_urn.c create mode 100644 vere/pkg/noun/jets/d/in_apt.c create mode 100644 vere/pkg/noun/jets/d/in_bif.c create mode 100644 vere/pkg/noun/jets/d/in_del.c create mode 100644 vere/pkg/noun/jets/d/in_dif.c create mode 100644 vere/pkg/noun/jets/d/in_gas.c create mode 100644 vere/pkg/noun/jets/d/in_has.c create mode 100644 vere/pkg/noun/jets/d/in_int.c create mode 100644 vere/pkg/noun/jets/d/in_put.c create mode 100644 vere/pkg/noun/jets/d/in_rep.c create mode 100644 vere/pkg/noun/jets/d/in_run.c create mode 100644 vere/pkg/noun/jets/d/in_tap.c create mode 100644 vere/pkg/noun/jets/d/in_uni.c create mode 100644 vere/pkg/noun/jets/d/in_wyt.c create mode 100644 vere/pkg/noun/jets/e/aes_cbc.c create mode 100644 vere/pkg/noun/jets/e/aes_ecb.c create mode 100644 vere/pkg/noun/jets/e/aes_siv.c create mode 100644 vere/pkg/noun/jets/e/argon2.c create mode 100644 vere/pkg/noun/jets/e/base.c create mode 100644 vere/pkg/noun/jets/e/blake.c create mode 100644 vere/pkg/noun/jets/e/chacha.c create mode 100644 vere/pkg/noun/jets/e/crc32.c create mode 100644 vere/pkg/noun/jets/e/cue.c create mode 100644 vere/pkg/noun/jets/e/ed_add_double_scalarmult.c create mode 100644 vere/pkg/noun/jets/e/ed_add_scalarmult_scalarmult_base.c create mode 100644 vere/pkg/noun/jets/e/ed_luck.c create mode 100644 vere/pkg/noun/jets/e/ed_point_add.c create mode 100644 vere/pkg/noun/jets/e/ed_point_neg.c create mode 100644 vere/pkg/noun/jets/e/ed_puck.c create mode 100644 vere/pkg/noun/jets/e/ed_recs.c create mode 100644 vere/pkg/noun/jets/e/ed_scad.c create mode 100644 vere/pkg/noun/jets/e/ed_scalarmult.c create mode 100644 vere/pkg/noun/jets/e/ed_scalarmult_base.c create mode 100644 vere/pkg/noun/jets/e/ed_shar.c create mode 100644 vere/pkg/noun/jets/e/ed_sign.c create mode 100644 vere/pkg/noun/jets/e/ed_smac.c create mode 100644 vere/pkg/noun/jets/e/ed_veri.c create mode 100644 vere/pkg/noun/jets/e/fein_ob.c create mode 100644 vere/pkg/noun/jets/e/fl.c create mode 100644 vere/pkg/noun/jets/e/fynd_ob.c create mode 100644 vere/pkg/noun/jets/e/hmac.c create mode 100644 vere/pkg/noun/jets/e/jam.c create mode 100644 vere/pkg/noun/jets/e/json_de.c create mode 100644 vere/pkg/noun/jets/e/json_en.c create mode 100644 vere/pkg/noun/jets/e/keccak.c create mode 100644 vere/pkg/noun/jets/e/leer.c create mode 100644 vere/pkg/noun/jets/e/loss.c create mode 100644 vere/pkg/noun/jets/e/lune.c create mode 100644 vere/pkg/noun/jets/e/mat.c create mode 100644 vere/pkg/noun/jets/e/mink.c create mode 100644 vere/pkg/noun/jets/e/mole.c create mode 100644 vere/pkg/noun/jets/e/mule.c create mode 100644 vere/pkg/noun/jets/e/parse.c create mode 100644 vere/pkg/noun/jets/e/rd.c create mode 100644 vere/pkg/noun/jets/e/rh.c create mode 100644 vere/pkg/noun/jets/e/ripe.c create mode 100644 vere/pkg/noun/jets/e/rq.c create mode 100644 vere/pkg/noun/jets/e/rs.c create mode 100644 vere/pkg/noun/jets/e/rub.c create mode 100644 vere/pkg/noun/jets/e/scot.c create mode 100644 vere/pkg/noun/jets/e/scow.c create mode 100644 vere/pkg/noun/jets/e/scr.c create mode 100644 vere/pkg/noun/jets/e/secp.c create mode 100644 vere/pkg/noun/jets/e/sha1.c create mode 100644 vere/pkg/noun/jets/e/shax.c create mode 100644 vere/pkg/noun/jets/e/slaw.c create mode 100644 vere/pkg/noun/jets/e/tape.c create mode 100644 vere/pkg/noun/jets/e/trip.c create mode 100644 vere/pkg/noun/jets/e/urwasm.c create mode 100644 vere/pkg/noun/jets/f/cell.c create mode 100644 vere/pkg/noun/jets/f/comb.c create mode 100644 vere/pkg/noun/jets/f/cons.c create mode 100644 vere/pkg/noun/jets/f/core.c create mode 100644 vere/pkg/noun/jets/f/face.c create mode 100644 vere/pkg/noun/jets/f/fine.c create mode 100644 vere/pkg/noun/jets/f/fitz.c create mode 100644 vere/pkg/noun/jets/f/flan.c create mode 100644 vere/pkg/noun/jets/f/flip.c create mode 100644 vere/pkg/noun/jets/f/flor.c create mode 100644 vere/pkg/noun/jets/f/fork.c create mode 100644 vere/pkg/noun/jets/f/help.c create mode 100644 vere/pkg/noun/jets/f/hint.c create mode 100644 vere/pkg/noun/jets/f/look.c create mode 100644 vere/pkg/noun/jets/f/loot.c create mode 100644 vere/pkg/noun/jets/f/ut_crop.c create mode 100644 vere/pkg/noun/jets/f/ut_fish.c create mode 100644 vere/pkg/noun/jets/f/ut_fuse.c create mode 100644 vere/pkg/noun/jets/f/ut_mint.c create mode 100644 vere/pkg/noun/jets/f/ut_mull.c create mode 100644 vere/pkg/noun/jets/f/ut_nest.c create mode 100644 vere/pkg/noun/jets/f/ut_rest.c create mode 100644 vere/pkg/noun/jets/g/plot.c create mode 100644 vere/pkg/noun/jets/i/lagoon.c create mode 100644 vere/pkg/noun/jets/k.h create mode 100644 vere/pkg/noun/jets/q.h create mode 100644 vere/pkg/noun/jets/tree.c create mode 100644 vere/pkg/noun/jets/w.h create mode 100644 vere/pkg/noun/jets_tests.c create mode 100644 vere/pkg/noun/log.c create mode 100644 vere/pkg/noun/log.h create mode 100644 vere/pkg/noun/manage.c create mode 100644 vere/pkg/noun/manage.h create mode 100644 vere/pkg/noun/nock.c create mode 100644 vere/pkg/noun/nock.h create mode 100644 vere/pkg/noun/nock_tests.c create mode 100644 vere/pkg/noun/noun.h create mode 100644 vere/pkg/noun/options.c create mode 100644 vere/pkg/noun/options.h create mode 100644 vere/pkg/noun/platform/darwin/rsignal.h create mode 100644 vere/pkg/noun/platform/linux/rsignal.h create mode 100644 vere/pkg/noun/retrieve.c create mode 100644 vere/pkg/noun/retrieve.h create mode 100644 vere/pkg/noun/retrieve_tests.c create mode 100644 vere/pkg/noun/serial.c create mode 100644 vere/pkg/noun/serial.h create mode 100644 vere/pkg/noun/serial_tests.c create mode 100644 vere/pkg/noun/ship.c create mode 100644 vere/pkg/noun/ship.h create mode 100644 vere/pkg/noun/trace.c create mode 100644 vere/pkg/noun/trace.h create mode 100644 vere/pkg/noun/types.h create mode 100644 vere/pkg/noun/urth.c create mode 100644 vere/pkg/noun/urth.h create mode 100644 vere/pkg/noun/v1/allocate.c create mode 100644 vere/pkg/noun/v1/allocate.h create mode 100644 vere/pkg/noun/v1/hashtable.c create mode 100644 vere/pkg/noun/v1/hashtable.h create mode 100644 vere/pkg/noun/v1/jets.c create mode 100644 vere/pkg/noun/v1/jets.h create mode 100644 vere/pkg/noun/v1/manage.c create mode 100644 vere/pkg/noun/v1/manage.h create mode 100644 vere/pkg/noun/v1/nock.c create mode 100644 vere/pkg/noun/v1/nock.h create mode 100644 vere/pkg/noun/v1/vortex.c create mode 100644 vere/pkg/noun/v1/vortex.h create mode 100644 vere/pkg/noun/v2/allocate.c create mode 100644 vere/pkg/noun/v2/allocate.h create mode 100644 vere/pkg/noun/v2/hashtable.c create mode 100644 vere/pkg/noun/v2/hashtable.h create mode 100644 vere/pkg/noun/v2/jets.c create mode 100644 vere/pkg/noun/v2/jets.h create mode 100644 vere/pkg/noun/v2/manage.c create mode 100644 vere/pkg/noun/v2/manage.h create mode 100644 vere/pkg/noun/v2/nock.c create mode 100644 vere/pkg/noun/v2/nock.h create mode 100644 vere/pkg/noun/v2/options.h create mode 100644 vere/pkg/noun/v2/vortex.c create mode 100644 vere/pkg/noun/v2/vortex.h create mode 100644 vere/pkg/noun/v3/allocate.h create mode 100644 vere/pkg/noun/v3/hashtable.c create mode 100644 vere/pkg/noun/v3/hashtable.h create mode 100644 vere/pkg/noun/v3/jets.h create mode 100644 vere/pkg/noun/v3/manage.c create mode 100644 vere/pkg/noun/v3/manage.h create mode 100644 vere/pkg/noun/v3/nock.h create mode 100644 vere/pkg/noun/v3/vortex.h create mode 100644 vere/pkg/noun/v4/manage.c create mode 100644 vere/pkg/noun/v4/manage.h create mode 100644 vere/pkg/noun/version.h create mode 100644 vere/pkg/noun/vortex.c create mode 100644 vere/pkg/noun/vortex.h create mode 100644 vere/pkg/noun/xtract.c create mode 100644 vere/pkg/noun/xtract.h create mode 100644 vere/pkg/noun/zave.c create mode 100644 vere/pkg/noun/zave.h create mode 100644 vere/pkg/ur/bitstream.c create mode 100644 vere/pkg/ur/bitstream.h create mode 100644 vere/pkg/ur/build.zig create mode 100644 vere/pkg/ur/build.zig.zon create mode 100644 vere/pkg/ur/defs.h create mode 100644 vere/pkg/ur/hashcons.c create mode 100644 vere/pkg/ur/hashcons.h create mode 100644 vere/pkg/ur/serial.c create mode 100644 vere/pkg/ur/serial.h create mode 100644 vere/pkg/ur/tests.c create mode 100644 vere/pkg/ur/ur.h create mode 100644 vere/pkg/vere/PACE create mode 100644 vere/pkg/vere/VERSION create mode 100644 vere/pkg/vere/ames_tests.c create mode 100644 vere/pkg/vere/arena.h create mode 100644 vere/pkg/vere/auto.c create mode 100644 vere/pkg/vere/benchmarks.c create mode 100644 vere/pkg/vere/boot_tests.c create mode 100644 vere/pkg/vere/build.zig create mode 100644 vere/pkg/vere/build.zig.zon create mode 100644 vere/pkg/vere/ca_bundle/ca_bundle.c create mode 100644 vere/pkg/vere/ca_bundle/ca_bundle.h create mode 100755 vere/pkg/vere/ca_bundle/ca_bundle.sh create mode 100644 vere/pkg/vere/dawn.c create mode 100644 vere/pkg/vere/db/lmdb.c create mode 100644 vere/pkg/vere/db/lmdb.h create mode 100644 vere/pkg/vere/disk.c create mode 100644 vere/pkg/vere/dns_sd.h create mode 100644 vere/pkg/vere/foil.c create mode 100644 vere/pkg/vere/hamt_test.c create mode 100644 vere/pkg/vere/io/ames.c create mode 100644 vere/pkg/vere/io/ames/stun.c create mode 100644 vere/pkg/vere/io/ames/stun.h create mode 100644 vere/pkg/vere/io/behn.c create mode 100644 vere/pkg/vere/io/conn.c create mode 100644 vere/pkg/vere/io/cttp.c create mode 100644 vere/pkg/vere/io/fore.c create mode 100644 vere/pkg/vere/io/hind.c create mode 100644 vere/pkg/vere/io/http.c create mode 100644 vere/pkg/vere/io/lick.c create mode 100644 vere/pkg/vere/io/lss.c create mode 100644 vere/pkg/vere/io/lss.h create mode 100644 vere/pkg/vere/io/mesa.c create mode 100644 vere/pkg/vere/io/mesa/bitset.c create mode 100644 vere/pkg/vere/io/mesa/bitset.h create mode 100644 vere/pkg/vere/io/mesa/mesa.h create mode 100644 vere/pkg/vere/io/mesa/pact.c create mode 100644 vere/pkg/vere/io/mesa/pact_test.c create mode 100644 vere/pkg/vere/io/serial.h create mode 100644 vere/pkg/vere/io/term.c create mode 100644 vere/pkg/vere/io/unix.c create mode 100644 vere/pkg/vere/ivory/ivory.c create mode 100644 vere/pkg/vere/ivory/ivory.h create mode 100755 vere/pkg/vere/ivory/ivory.sh create mode 100644 vere/pkg/vere/king.c create mode 100644 vere/pkg/vere/lord.c create mode 100644 vere/pkg/vere/main.c create mode 100644 vere/pkg/vere/mars.c create mode 100644 vere/pkg/vere/mars.h create mode 100644 vere/pkg/vere/mdns.c create mode 100644 vere/pkg/vere/mdns.h create mode 100644 vere/pkg/vere/melt.c create mode 100644 vere/pkg/vere/newt.c create mode 100644 vere/pkg/vere/newt_tests.c create mode 100644 vere/pkg/vere/noun_tests.c create mode 100644 vere/pkg/vere/pier.c create mode 100644 vere/pkg/vere/platform/darwin/daemon.c create mode 100644 vere/pkg/vere/platform/darwin/mach.c create mode 100644 vere/pkg/vere/platform/darwin/ptty.c create mode 100644 vere/pkg/vere/platform/linux/daemon.c create mode 100644 vere/pkg/vere/platform/linux/ptty.c create mode 100644 vere/pkg/vere/save.c create mode 100644 vere/pkg/vere/serf.c create mode 100644 vere/pkg/vere/serf.h create mode 100644 vere/pkg/vere/time.c create mode 100644 vere/pkg/vere/unix_tests.c create mode 100644 vere/pkg/vere/vere.h create mode 100644 vere/pkg/vere/verstable.h create mode 100644 vere/pkg/vere/ward.c create mode 100644 vere/pkg/vere/xmas_tests.c create mode 100755 vere/test-fake-ship.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b8fc47c --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.claude +.zig-cache +AGENTS.md +CLAUDE.md +NOTES.md diff --git a/UIP-0125.md b/UIP-0125.md new file mode 100644 index 0000000..628795f --- /dev/null +++ b/UIP-0125.md @@ -0,0 +1,123 @@ +--- +uip: "0125" +title: "%eyre/%iris: Support Websocket" +description: "Support Websocket connections on Eyre/Iris" +author: ~fidwed-sipwyn +status: Stagnant +type: Standards Track +category: Kernel +created: 2024-04-27 +--- + +## Abstract + +This proposal adds Websocket functionality that works in a similar manner to the currently `%eyre`/`%iris` HTTP interface. Users who wish to receive Websocket connections will use the existing `%eyre`'s `%connect` `$task` to bind a URL path where the websocket handshakes will arrive (since they are technically also HTTP requests, this should be intuitive). To initiate a connection, users should pass a `%websocket-connect` `$task` to `%iris`. Once the connection is established, the client/server vanes interaction with the apps occurs through `%gall` pokes, facts and subscriptions. + +## Motivation + +Websocket support will allow Urbit to interact with a wider variety of systems/protocols. + +## Specification +- **%eyre** will have a new `$gift` and a new `$task`: +```hoon + :: $gift + :: + :: websocket-reponse: event to earth + :: + [%websocket-response event=websocket-event] + :: $task + :: + :: receives websocket event from earth + :: + [%websocket-event event=websocket-event] +``` +- And the following new types: +```hoon + :: +websocket-connection: connection to be store in eyre state + :: + +$ websocket-connection + $: app=term + =inbound-request + == + :: +websocket-message: websocket message content + :: + +$ websocket-message + $: opcode=@ud + message=(unit data=octs) + == + :: +websocket-event: inbound/outbound websocket event + :: + +$ websocket-event + $% [%accept ~] + [%reject ~] + [%disconnect ~] + [%message message=websocket-message] + == + :: +``` +- **%iris** will have two new `$gift`s and two new `$task`s: +```hoon + :: $gift + :: + :: %websocket-handshake: outbound websocket-handshake to earth + :: + [%websocket-handshake id=@ud url=@t] + :: %websocket-response: event to earth + :: + [%websocket-response id=@ud websocket-event:eyre] + :: $task + :: + :: request to open websocket connection + :: + [%websocket-connect app=term url=@t] + :: receives websocket event from earth + :: + [%websocket-event id=@ud event=websocket-event:eyre] +``` +- And a new type: +```hoon + :: +websocket-connection: websocket connection stored in iris state + :: + +$ websocket-connection + $: app=term + =duct + id=@ud + url=@t + status=?(%pending %accepted) + == +``` +- %eyre will share the `$websocket-message` and `$websocket-event` types with %iris. +- The only new `$task` that the app devs will utilize is the `%websocket-connect` from iris. +- The existing `%cancel-request` `$task` from iris will be modified to also cancel websocket requests. +- Server user flow: + - The user exposes their app with the `%eyre`'s `%connect` `$task`. + - When a handshake comes from earth, `%eyre` subscribes to the app's `/websocket-server/[eyre-id]` path and sends a `%websocket-handshake` poke with `[eyre-id inbound-request]`. The `eyre-id` will be used to represent that particular connection. + - In response to `%websocket-handshake`, the user gives a fact with the `%accept` or `%reject` mark on `/websocket-server/[eyre-id]`. + - After `%accept`ed the app can give `%message`s facts on `/websocket-server/[eyre-id]` and receives messages that comes as `%websocket-server-message`s pokes, containing `[eyre-id websocket-message]`. + - If the subscription is kicked, then the connection is closed, or the user can give a fact with the `%disconnect` mark to close it. +- Client user flow: + - The user sends a request to initiate the connection by passing the `%websocket-connect` `$task` to `%iris` with `[app=term url=@t]`. + - The user can cancel the request by using the `%cancel-request` `$task`. + - If the connection succeeds `%iris` will subscribe to `/websocket-client/id`, with `id` representing that particular connection. + - The app can give facts with the `%message` mark on `/websocket-client/id` and receives messages that comes as `%websocket-client-message`s pokes, containing `[id websocket-message]`. + - If the subscription is kicked, then the connection is closed, or the user can give a fact with the `%disconnect` mark to close it. + +## Rationale + +The approach followed here is a way to add the intended feature while reutilizing some of the existing logic and without adding a new vane. + +## Backwards Compatibility + +Backwards compatibility is only affected if there are developers currently handling Websocket handshakes in the `%handle-http-request` poke. + +## Reference Implementation + +Incoming + +## Security Considerations + +Similar considerations as the currently HTTP implementation. + +## Copyright + +Copyright and related rights waived via [CC0](../LICENSE.md). diff --git a/app/app/nostrill.hoon b/app/app/nostrill.hoon new file mode 100644 index 0000000..d584348 --- /dev/null +++ b/app/app/nostrill.hoon @@ -0,0 +1,365 @@ +/- sur=nostrill, nsur=nostr, tf=trill-feed, comms=nostrill-comms +/+ lib=nostrill, nostr-keys, sr=sortug, scri, + shim, dbug, + evlib=nostr-events, + mutations-nostr, + mutations-trill, + jsonlib=json-nostrill, + trill=trill-post, commlib=nostrill-comms, followlib=nostrill-follows +/= web /web/router +|% ++$ versioned-state $%(state-0:sur) +-- +=| versioned-state +=* state - +%- agent:dbug +^- agent:gall +|_ =bowl:gall ++* this . + rout ~(. router:web [state bowl]) + cards ~(. cards:lib bowl) + mutan ~(. mutations-nostr [state bowl]) + mutat ~(. mutations-trill [state bowl]) + shimm ~(. shim [state bowl]) + scry ~(. scri [state bowl]) + coms ~(. commlib [state bowl]) + fols ~(. followlib [state bowl]) +++ on-init + ^- (quip card:agent:gall agent:gall) + =/ default (default-state:lib bowl) + :_ this(state default) + :~ shim-binding:cards + == +:: +++ on-save + ^- vase + !>(state) +:: +++ on-load + |~ old-state=vase + ^- (quip card:agent:gall agent:gall) + =/ old-state !<(versioned-state old-state) + ?- -.old-state + %0 `this(state old-state) + == + :: `this(state (default-state:lib bowl)) +:: +++ on-poke + |~ [=mark =vase] + ^- (quip card:agent:gall agent:gall) + |^ + ~& nostrill-on-poke=mark + ?+ mark `this + %noun handle-comms + %json on-ui + %handle-http-request handle-shim + %websocket-handshake handle-ws-handshake + %websocket-server-message handle-ws-msg + == + ++ give-ws-payload + |= [wid=@ event=websocket-event:eyre] + ^- (list card:agent:gall) + =/ =cage + [%websocket-response !>([wid event])] + =/ wsid (scot %ud wid) + :~ [%give %fact ~[/websocket-server/[wsid]] cage] + == + + ++ handle-ws-handshake + =/ order !<([@ inbound-request:eyre] vase) + =/ response [%accept ~] + :_ this + (give-ws-payload -.order response) + ++ handle-ws-msg + =/ order !<([wid=@ msg=websocket-message:eyre] vase) + :: ~& opcode=op=opcode.msg.order :: 0 for continuation, 1 for text, 2 for binary, 9 for ping 0xa for pong + =/ msg message.msg.order + ?~ msg `this + =/ jsons=@t q.data.u.msg + ~& >> ws-msg-jsons=jsons + =/ jsonm (de:json:html jsons) + ?~ jsonm `this + :: TODO de-json thing and handle whatever + :_ this + =/ octs (as-octs:mimes:html '"lol-lmao"') + =/ response [%message 1 `octs] + (give-ws-payload -.order response) + :: + :: + ++ handle-comms + =/ pok (cast-poke:coms q.vase) + ?: ?=(%dbug -.pok) (debug +.pok) + =^ cs state + ?- -.pok + %req (handle-req:coms +.pok) + %res (handle-res:coms +.pok) + == + [cs this] + ++ handle-shim + =/ order !<(order:web vase) + ~& request.req.order + ?: .=(url.request.req.order '/nostr-shim') + =/ msg (parse-msg:shim order) + ?~ msg `this + ?> ?=(%ws -.u.msg) + :: =^ cards state (handle-shim-msg:mutat u.msg) + =^ cards state (handle-ws:mutan +.u.msg) + [cards this] + + :: + =/ cards (rout:rout order) + [cards this] + + :: + ++ on-ui + =/ jon=json !<(json vase) + ~& > on-ui-jon=jon + =/ upoke=(unit poke:ui:sur) (ui:de:jsonlib jon) + ?~ upoke ~& bad-ui-poke=jon `this + ?- -.u.upoke + %keys handle-cycle-keys + %fols (handle-fols +.u.upoke) + %begs (handle-begs +.u.upoke) + %prof (handle-prof +.u.upoke) + %rela (handle-rela +.u.upoke) + %post =^ cs state + (handle-post:mutat +.u.upoke) + [cs this] + == + ++ handle-cycle-keys + =/ ks (gen-keys:nostr-keys eny.bowl) + =. keys [ks keys] + :: =/ nkeys keys(i ks, t `(list keys:nsur)`keys) + :: :: =. keys nkeys + ~& new-keys=keys + `this + + ++ handle-begs |= poke=begs-poke:ui:sur + ?- -.poke + %feed + =/ cs ~ + [cs this] + %thread + =/ cs ~ + [cs this] + == + ++ handle-fols |= poke=fols-poke:ui:sur + =^ cs state + ?- -.poke + %add (handle-add:fols +.poke) + + %del (handle-del:fols +.poke) + == + [cs this] + + ++ handle-prof |= poke=prof-poke:ui:sur + ?- -.poke + %add + =. profiles (~(put by profiles) [%urbit our.bowl] +.poke) + `this + %del + =. profiles (~(del by profiles) [%urbit our.bowl]) + `this + == + ++ handle-rela |= poke=relay-poke:ui:sur + ?- -.poke + %add =. relays (~(put by relays) +.poke *relay-stats:nsur) + `this + %del =. relays (~(del by relays) +.poke) + `this + :: + %sync =^ cs state get-posts:shimm + [cs this] + :: + %send + =/ upoast (get-poast:scry host.poke id.poke) + ?~ upoast `this + =/ event (post-to-event:evlib i.keys eny.bowl u.upoast) + =/ req=bulk-req:shim:nsur [relays.poke %event event] + =/ cards :~((send:shimm req)) + [cards this] + == + + + :: + ++ debug |= noun=* + ?+ noun `this + %wtf + =/ lol=(unit @) ~ + =/ l ~| "wtf" (need lol) + `this + %genkey + =/ keys (gen-keys:nostr-keys eny.bowl) + ~& pub=(scow:sr %ux -.keys) + ~& priv=(scow:sr %ux +.keys) + `this + %printkey + =/ ks `(list keys:nsur)`keys + |- ?~ ks `this + =/ key i.ks + ~& pub=(scow:sr %ux -.key) + ~& priv=(scow:sr %ux +.key) + $(ks t.ks) + %feed + :: =/ lol debug-own-feed:mutat + ~& pry=(pry:orm:tf feed) + ~& ram=(ram:orm:tf feed) + `this + %nstats + ~& nostr-feed=~(wyt by nostr-feed) + ~& profiles=~(wyt in ~(key by profiles)) + =/ lol (print-relay-stats:lib relays) + + `this + %http + `this + %rt :: relay test + =^ cards state get-posts:shimm + [cards this] + %rt0 + =/ ids + %+ roll (tap:norm:sur nostr-feed) |= [[@ ev=event:nsur] acc=[(set @ux) (set @ux)]] + ?. .=(kind.ev 1) acc + %= acc + - (~(put in -.acc) id.ev) + + (~(put in +.acc) pubkey.ev) + == + =^ cards state (populate-profiles:mutan -.ids) + :: (get-profiles:shimm +.ids) + :: (get-engagement:shimm -.ids) + [cards this] + :: %rt1 + :: =| cards=(list card:agent:gall) + :: |- + :: ?~ l + :: ~& cards=(lent cards) [cards this] + :: =/ [sub-id=@t pf=filter:nsur done=filter:nsur] i.l + :: =/ diff (diff-filters:nlib pf done) + :: :: ~& > diff=diff + :: ?~ authors.pf $(l t.l) + :: =^ cs state (populate-profiles:mutat u.authors.pf) + + :: $(l t.l, cards (weld cards cs)) + %rt2 + + =/ poasts (tap:norm:sur nostr-feed) + =/ pcount (lent poasts) + =| invalid=(list @t) + |- ?~ poasts + ~& >>> invalid=invalid + `this + =/ p=event:nsur +.i.poasts + =/ valid (validate-pubkey:nostr-keys pubkey.p) + ?. valid + =/ ids (crip (scow:sr %ux id.p)) + ~& ids + ~& content.p + $(invalid [ids invalid], poasts t.poasts) + $(poasts t.poasts) + %rt3 + =/ poasts (tap:norm:sur nostr-feed) + =| pubkeys=(set @ux) + =/ pks=(set @ux) + |- ?~ poasts pubkeys + =/ p=event:nsur +.i.poasts + =/ npks (~(put in pubkeys) pubkey.p) + $(poasts t.poasts, pubkeys npks) + :: + =^ cards state (populate-profiles:mutan pks) + [cards this] + %ui + =/ =fact:ui:sur [%post %add *post-wrapper:sur] + =/ card (update-ui:cards fact) + :_ this :~(card) + %kick + :_ this =/ subs ~(tap by sup.bowl) + %+ turn subs |= [* p=@p pat=path] + [%give %kick ~[pat] ~] + + == + + :: + -- +:: +++ on-watch +|= =(pole knot) + ~& on-watch=`path`pole + ?+ pole !! + [%http-response *] `this + [%websocket-server *] `this + [%follow ~] :_ this (give-feed:coms pole) + [%beg %feed ~] + :_ this (give-feed:coms pole) + [%beg %thread ids=@t ~] + =/ id (slaw:sr %uw ids.pole) + ?~ id ~& error-parsing-ted-id=pole `this + :_ this (give-ted:coms u.id pole) + [%ui ~] + ?> .=(our.bowl src.bowl) + :_ this + =/ jon (state:en:jsonlib state) + [%give %fact ~[/ui] [%json !>(jon)]]^~ + == +:: +++ on-leave + |~ =(pole knot) + ^- (quip card:agent:gall agent:gall) + `this +:: +++ on-peek + |~ =(pole knot) + ^- (unit (unit cage)) + ~& > on-peek=pole + ?+ pole ~ + [%x %j %feed host=@ start=@ end=@ count=@ newest=@ replies=@ *] + (sfeed:scry host.pole start.pole end.pole count.pole newest.pole replies.pole) + [%x %j %thread host=@ id=@ *] (thread:scry host.pole id.pole) + == + +:: +++ on-agent + |~ [wire=(pole knot) =sign:agent:gall] + ^- (quip card:agent:gall agent:gall) + ~& on-agent=[wire -.sign] + :: if p.sign is not ~ here that means it's intentional + ?+ wire `this + [%follow ~] + ?: ?=(%watch-ack -.sign) + ?~ p.sign `this + =^ cs state (handle-kick-nack:fols src.bowl) [cs this] + ?: ?=(%kick -.sign) + =^ cs state (handle-refollow:fols src.bowl) + [cs this] + ?. ?=(%fact -.sign) `this + + =/ =fact:comms ;; fact:comms q.q.cage.sign + =^ cs state + ?- -.fact + %init (handle-follow-res:fols +.fact) + %post (handle-post-fact:mutat +.fact) + %prof (handle-prof-fact:mutan +.fact) + == + [cs this] + + == +:: +++ on-arvo + |~ [wire=(pole knot) =sign-arvo] + ^- (quip card:agent:gall agent:gall) + ?+ wire `this + [%http sub-id=@t *] + ?> ?=([%khan %arow *] sign-arvo) + ?: ?=(%| -.p.sign-arvo) `this + =/ jstring !<(@ +>.p.sign-arvo) + =/ msg (parse-body:shimm jstring) + ?~ msg ~& `@t`jstring `this + ?> ?=(%http -.u.msg) + =^ cards state (handle-http:mutan sub-id.wire +.u.msg) + `this + == +:: +++ on-fail + |~ [term tang] + ^- (quip card:agent:gall agent:gall) + `this +-- diff --git a/app/desk.bill b/app/desk.bill new file mode 100644 index 0000000..ddea07e --- /dev/null +++ b/app/desk.bill @@ -0,0 +1,2 @@ +:~ %nostrill +== diff --git a/app/desk.docket-0 b/app/desk.docket-0 new file mode 100644 index 0000000..e30a841 --- /dev/null +++ b/app/desk.docket-0 @@ -0,0 +1,11 @@ +:~ + title+'Nostrill' + info+'Pater Nostr' + color+0xff.d400 + version+[0 1 0] + website+'https://sortug.com' + license+'© 2025 ~sortug. All rights reserved.' + image+'https://s3.sortug.com/img/nostril-icon.png' + base+'nostril' + glob-http+['https://s3.sortug.com/globs/glob-0v1.862v7.o85ao.krj6r.v1dgc.ek27l.glob' 0v1.862v7.o85ao.krj6r.v1dgc.ek27l] +== \ No newline at end of file diff --git a/app/desk.ship b/app/desk.ship new file mode 100644 index 0000000..2d56596 --- /dev/null +++ b/app/desk.ship @@ -0,0 +1 @@ +~polwex \ No newline at end of file diff --git a/app/lib/constants.hoon b/app/lib/constants.hoon new file mode 100644 index 0000000..9beab32 --- /dev/null +++ b/app/lib/constants.hoon @@ -0,0 +1,4 @@ +|% +++ feed-page-size 100 +++ http-delay 3.000 +-- diff --git a/app/lib/dbug.hoon b/app/lib/dbug.hoon new file mode 100644 index 0000000..ce98619 --- /dev/null +++ b/app/lib/dbug.hoon @@ -0,0 +1,155 @@ +:: dbug: agent wrapper for generic debugging tools +:: +:: usage: %-(agent:dbug your-agent) +:: +|% ++$ poke + $% [%bowl ~] + [%state grab=cord] + [%incoming =about] + [%outgoing =about] + == +:: ++$ about + $@ ~ + $% [%ship =ship] + [%path =path] + [%wire =wire] + [%term =term] + == +:: +++ agent + |= =agent:gall + ^- agent:gall + !. + |_ =bowl:gall + +* this . + ag ~(. agent bowl) + :: + ++ on-poke + |= [=mark =vase] + ^- (quip card:agent:gall agent:gall) + ?. ?=(%dbug mark) + =^ cards agent (on-poke:ag mark vase) + [cards this] + =/ dbug + !<(poke vase) + =; =tang + ((%*(. slog pri 1) tang) [~ this]) + ?- -.dbug + %bowl [(sell !>(bowl))]~ + :: + %state + =? grab.dbug =('' grab.dbug) '-' + =; product=^vase + [(sell product)]~ + =/ state=^vase + :: if the underlying app has implemented a /dbug/state scry endpoint, + :: use that vase in place of +on-save's. + :: + =/ result=(each ^vase tang) + (mule |.(q:(need (need (on-peek:ag /x/dbug/state))))) + ?:(?=(%& -.result) p.result on-save:ag) + %+ slap + (slop state !>([bowl=bowl ..zuse])) + (ream grab.dbug) + :: + %incoming + =; =tang + ?^ tang tang + [%leaf "no matching subscriptions"]~ + %+ murn + %+ sort ~(tap by sup.bowl) + |= [[* a=[=ship =path]] [* b=[=ship =path]]] + (aor [path ship]:a [path ship]:b) + |= [=duct [=ship =path]] + ^- (unit tank) + =; relevant=? + ?. relevant ~ + `>[path=path from=ship duct=duct]< + ?: ?=(~ about.dbug) & + ?- -.about.dbug + %ship =(ship ship.about.dbug) + %path ?=(^ (find path.about.dbug path)) + %wire %+ lien duct + |=(=wire ?=(^ (find wire.about.dbug wire))) + %term !! + == + :: + %outgoing + =; =tang + ?^ tang tang + [%leaf "no matching subscriptions"]~ + %+ murn + %+ sort ~(tap by wex.bowl) + |= [[[a=wire *] *] [[b=wire *] *]] + (aor a b) + |= [[=wire =ship =term] [acked=? =path]] + ^- (unit tank) + =; relevant=? + ?. relevant ~ + `>[wire=wire agnt=[ship term] path=path ackd=acked]< + ?: ?=(~ about.dbug) & + ?- -.about.dbug + %ship =(ship ship.about.dbug) + %path ?=(^ (find path.about.dbug path)) + %wire ?=(^ (find wire.about.dbug wire)) + %term =(term term.about.dbug) + == + == + :: + ++ on-peek + |= =path + ^- (unit (unit cage)) + ?. ?=([@ %dbug *] path) + (on-peek:ag path) + ?+ path [~ ~] + [%u %dbug ~] ``noun+!>(&) + [%x %dbug %state ~] ``noun+!>(on-save:ag) + [%x %dbug %subscriptions ~] ``noun+!>([wex sup]:bowl) + == + :: + ++ on-init + ^- (quip card:agent:gall agent:gall) + =^ cards agent on-init:ag + [cards this] + :: + ++ on-save on-save:ag + :: + ++ on-load + |= old-state=vase + ^- (quip card:agent:gall agent:gall) + =^ cards agent (on-load:ag old-state) + [cards this] + :: + ++ on-watch + |= =path + ^- (quip card:agent:gall agent:gall) + =^ cards agent (on-watch:ag path) + [cards this] + :: + ++ on-leave + |= =path + ^- (quip card:agent:gall agent:gall) + =^ cards agent (on-leave:ag path) + [cards this] + :: + ++ on-agent + |= [=wire =sign:agent:gall] + ^- (quip card:agent:gall agent:gall) + =^ cards agent (on-agent:ag wire sign) + [cards this] + :: + ++ on-arvo + |= [=wire =sign-arvo] + ^- (quip card:agent:gall agent:gall) + =^ cards agent (on-arvo:ag wire sign-arvo) + [cards this] + :: + ++ on-fail + |= [=term =tang] + ^- (quip card:agent:gall agent:gall) + =^ cards agent (on-fail:ag term tang) + [cards this] + -- +-- diff --git a/app/lib/docket.hoon b/app/lib/docket.hoon new file mode 100644 index 0000000..ef39b7f --- /dev/null +++ b/app/lib/docket.hoon @@ -0,0 +1,223 @@ +/- *docket +|% +:: +++ mime + |% + +$ draft + $: title=(unit @t) + info=(unit @t) + color=(unit @ux) + glob-http=(unit [=url hash=@uvH]) + glob-ames=(unit [=ship hash=@uvH]) + base=(unit term) + site=(unit path) + image=(unit url) + version=(unit version) + website=(unit url) + license=(unit cord) + == + :: + ++ finalize + |= =draft + ^- (unit docket) + ?~ title.draft ~ + ?~ info.draft ~ + ?~ color.draft ~ + ?~ version.draft ~ + ?~ website.draft ~ + ?~ license.draft ~ + =/ href=(unit href) + ?^ site.draft `[%site u.site.draft] + ?~ base.draft ~ + ?^ glob-http.draft + `[%glob u.base hash.u.glob-http %http url.u.glob-http]:draft + ?~ glob-ames.draft + ~ + `[%glob u.base hash.u.glob-ames %ames ship.u.glob-ames]:draft + ?~ href ~ + =, draft + :- ~ + :* %1 + u.title + u.info + u.color + u.href + image + u.version + u.website + u.license + == + :: + ++ from-clauses + =| =draft + |= cls=(list clause) + ^- (unit docket) + =* loop $ + ?~ cls (finalize draft) + =* clause i.cls + =. draft + ?- -.clause + %title draft(title `title.clause) + %info draft(info `info.clause) + %color draft(color `color.clause) + %glob-http draft(glob-http `[url hash]:clause) + %glob-ames draft(glob-ames `[ship hash]:clause) + %base draft(base `base.clause) + %site draft(site `path.clause) + %image draft(image `url.clause) + %version draft(version `version.clause) + %website draft(website `website.clause) + %license draft(license `license.clause) + == + loop(cls t.cls) + :: + ++ to-clauses + |= d=docket + ^- (list clause) + %- zing + :~ :~ title+title.d + info+info.d + color+color.d + version+version.d + website+website.d + license+license.d + == + ?~ image.d ~ ~[image+u.image.d] + ?: ?=(%site -.href.d) ~[site+path.href.d] + =/ ref=glob-reference glob-reference.href.d + :~ base+base.href.d + ?- -.location.ref + %http [%glob-http url.location.ref hash.ref] + %ames [%glob-ames ship.location.ref hash.ref] + == == == + :: + ++ spit-clause + |= =clause + ^- tape + %+ weld " {(trip -.clause)}+" + ?+ -.clause "'{(trip +.clause)}'" + %color (scow %ux color.clause) + %site (spud path.clause) + :: + %glob-http + "['{(trip url.clause)}' {(scow %uv hash.clause)}]" + :: + %glob-ames + "[{(scow %p ship.clause)} {(scow %uv hash.clause)}]" + :: + %version + =, version.clause + "[{(scow %ud major)} {(scow %ud minor)} {(scow %ud patch)}]" + == + :: + ++ spit-docket + |= dock=docket + ^- tape + ;: welp + ":~\0a" + `tape`(zing (join "\0a" (turn (to-clauses dock) spit-clause))) + "\0a==" + == + -- +:: +++ enjs + =, enjs:format + |% + :: + ++ charge-update + |= u=^charge-update + ^- json + %+ frond -.u + ^- json + ?- -.u + %del-charge s+desk.u + :: + %initial + %- pairs + %+ turn ~(tap by initial.u) + |=([=desk c=^charge] [desk (charge c)]) + :: + %add-charge + %- pairs + :~ desk+s+desk.u + charge+(charge charge.u) + == + == + :: + ++ num + |= a=@u + ^- ^tape + =/ p=json (numb a) + ?> ?=(%n -.p) + (trip p.p) + :: + ++ version + |= v=^version + ^- json + :- %s + %- crip + "{(num major.v)}.{(num minor.v)}.{(num patch.v)}" + :: + ++ merge + |= [a=json b=json] + ^- json + ?> &(?=(%o -.a) ?=(%o -.b)) + [%o (~(uni by p.a) p.b)] + :: + ++ href + |= h=^href + %+ frond -.h + ?- -.h + %site s+(spat path.h) + %glob + %- pairs + :~ base+s+base.h + glob-reference+(glob-reference glob-reference.h) + == + == + :: + ++ glob-reference + |= ref=^glob-reference + %- pairs + :~ hash+s+(scot %uv hash.ref) + location+(glob-location location.ref) + == + :: + ++ glob-location + |= loc=^glob-location + ^- json + %+ frond -.loc + ?- -.loc + %http s+url.loc + %ames s+(scot %p ship.loc) + == + :: + ++ charge + |= c=^charge + %+ merge (docket docket.c) + %- pairs + :~ chad+(chad chad.c) + == + :: + ++ docket + |= d=^docket + ^- json + %- pairs + :~ title+s+title.d + info+s+info.d + color+s+(scot %ux color.d) + href+(href href.d) + image+?~(image.d ~ s+u.image.d) + version+(version version.d) + license+s+license.d + website+s+website.d + == + :: + ++ chad + |= c=^chad + %+ frond -.c + ?+ -.c ~ + %hung s+err.c + == + -- +-- diff --git a/app/lib/json/common.hoon b/app/lib/json/common.hoon new file mode 100644 index 0000000..0ed54cd --- /dev/null +++ b/app/lib/json/common.hoon @@ -0,0 +1,30 @@ +/+ sr=sortug +|% +++ en +=, enjs:format + |% + ++ cord |= s=@t ^- json s+s + ++ hex |= h=@ux ^- json + =/ scoww scow:sr + [%s (crip (scoww(min-chars 64) %ux h))] + ++ b64 |= h=@uv ^- json + [%s (crip (scow:sr %uv h))] + ++ ud |= n=@ ^- json + [%s (crip (scow:sr %ud n))] + ++ patp |= p=@p ^- json + [%s (scot %p p)] + -- +++ de +=, dejs-soft:format + |% + ++ hex |= jon=json ^- (unit @ux) + ?. ?=(%s -.jon) ~ + =/ atom=(unit @) (slaw:sr %ux p.jon) + ?~ atom ~ + atom + ++ se |= aur=@tas |= jon=json + ?. ?=(%s -.jon) ~ + (slaw aur p.jon) + -- + +-- diff --git a/app/lib/json/nostr.hoon b/app/lib/json/nostr.hoon new file mode 100644 index 0000000..cb10c1d --- /dev/null +++ b/app/lib/json/nostr.hoon @@ -0,0 +1,197 @@ +/- sur=nostr +/+ common=json-common, sr=sortug +|% +++ en +=, enjs:format + |% + :: shim comms + ++ bulk-req |= [relays=(list @t) r=req:shim:sur] ^- json + %+ frond %ws + %: pairs + relays+a+(turn relays cord:en:common) + req+(req r) + ~ + == + ++ http-req |= [relay=@t delay=@ud sub-id=@t fs=(list filter:sur)] + %+ frond %http + %: pairs + relay+s+relay + delay+(numb delay) + ['subscription_id' %s sub-id] + filters+a+(turn fs filter) + ~ + == + ++ req |= =req:shim:sur ^- json + =/ en-ev event + :- %a :- s+(crip (cuss (trip -.req))) + ?- -.req + %req (enreq +.req) + %event :_ ~ (en-ev(nostr .y) +.req) + %auth :_ ~ (en-ev(nostr .y) +.req) + %close :_ ~ [%s +.req] + == +++ enreq + |= [sub-id=@t fs=(list filter:sur)] + ^- (list json) + :- [%s sub-id] + %+ turn fs filter + + :: + ++ raw-event |= raw-event:sur + :: WTF nostr doesn't want the prefix on the pubkey + :: =/ scw scow:sr + :: =/ pubkeyt (scw(min-chars 64) %ux pubkey) + =/ pubkeyt (scow:sr %ux pubkey) + ?~ pubkeyt !! + =/ pubkeyj [%s (crip t.pubkeyt)] + :: =/ pubkeyj [%s (crip pubkeyt)] + :- %a :~ + [%n '0'] + pubkeyj + (numb created-at) + (numb kind) + a+(turn tags tag) + s+content + == + ++ event + =/ nostr=? .n + |= e=event:sur ^- json + =/ pubkey ?. nostr + (hex:en:common pubkey.e) + =/ pubkeyt (scow:sr %ux pubkey.e) + ?~ pubkeyt !! + [%s (crip t.pubkeyt)] + %: pairs + id+(hex:en:common id.e) + pubkey+pubkey + sig+(hex:en:common sig.e) + ['created_at' (numb created-at.e)] + kind+(numb kind.e) + content+s+content.e + tags+a+(turn tags.e tag) + ~ + == + ++ tag + |= t=tag:sur ^- json [%a (turn t cord:en:common)] + :: :- s+key.t + :: :- s+value.t + :: (turn rest.t |=(tt=@t s+tt)) + :: + ++ filter + |= f=filter:sur ^- json + =| l=(list [key=@t jon=json]) + =. l ?~ ids.f l :_ l ['ids' %a (turn ~(tap in u.ids.f) hex:en:common)] + =. l ?~ authors.f l :_ l ['authors' %a (turn ~(tap in u.authors.f) hex:en:common)] + =. l ?~ kinds.f l :_ l ['kinds' %a (turn ~(tap in u.kinds.f) numb)] + =. l ?~ tags.f l %+ weld l (tags u.tags.f) + + =. l ?~ since.f l :_ l ['since' (sect u.since.f)] + =. l ?~ until.f l :_ l ['until' (sect u.until.f)] + =. l ?~ limit.f l :_ l ['limit' (numb u.limit.f)] + :: + %- pairs l + + + ++ tags + |= tm=(map @t (set @t)) ^- (list [@t json]) :: entries to the filter obeject + %+ turn ~(tap by tm) |= [key=@t values=(set @t)] + =/ nkey (cat 3 '#' key) + [nkey %a (turn ~(tap in values) cord:en:common)] + + ++ user-meta + |= meta=user-meta:sur + %: pairs + name+s+name.meta + picture+s+picture.meta + about+s+about.meta + other+o+other.meta + ~ + == + -- +++ de +=, dejs-soft:format + |% + :: shim + ++ shim-res + %- of :~ + http+(ar relay-msg) + ws+msg + == + ++ msg + %- ot :~ + relay+so + msg+relay-msg + == + ++ relay-msg + %- of :~ + event+event-sub + ok+relay-ok + eose+so + closed+closed + notice+so + error+so + == + + + :: | { event: { subscription_id: string; event: NostrEvent } } + :: | { ok: { event_id: string; accepted: boolean; message: string } } + :: | { eose: string } + :: | { closed: { subscription_id: string; message: string } } + :: | { notice: string } + :: // this is ours + :: | { error: string }; + ++ event-sub + %- ot :~ + ['subscription_id' so] + event+event + == + ++ relay-ok + %- ot :~ + ['event_id' hex:de:common] + accepted+bo + message+so + == + ++ closed + %- ot :~ + ['subscription_id' so] + message+so + == + ++ event + %- ot :~ + id+hex:de:common + pubkey+hex:de:common + ['created_at' ni] + kind+ni + tags+(ar (ar so)) + content+so + sig+hex:de:common + == + ++ user-meta |= jon=json + ^- (unit user-meta:sur) + ?. ?=(%o -.jon) ~ + =| um=user-meta:sur + =/ fields ~(tap by p.jon) + |- ?~ fields (some um) + =/ k -.i.fields + =/ jn=json +.i.fields + ?+ k + =/ ot (~(put by other.um) k jn) + =. um um(other ot) $(fields t.fields) + %'name' + =/ crd (so jn) + ?~ crd $(fields t.fields) $(fields t.fields, um um(name u.crd)) + %'display_name' + =/ crd (so jn) + ?~ crd $(fields t.fields) $(fields t.fields, um um(name u.crd)) + %'displayName' + =/ crd (so jn) + ?~ crd $(fields t.fields) $(fields t.fields, um um(name u.crd)) + %'about' + =/ crd (so jn) + ?~ crd $(fields t.fields) $(fields t.fields, um um(picture u.crd)) + %'picture' + =/ crd (so jn) + ?~ crd $(fields t.fields) $(fields t.fields, um um(picture u.crd)) + == + -- +-- diff --git a/app/lib/json/nostrill.hoon b/app/lib/json/nostrill.hoon new file mode 100644 index 0000000..b07de61 --- /dev/null +++ b/app/lib/json/nostrill.hoon @@ -0,0 +1,245 @@ +/- sur=nostrill, nsur=nostr, feed=trill-feed, comms=nostrill-comms +/+ sr=sortug, common=json-common, trill=json-trill, nostr=json-nostr +|% +++ en +=, enjs:format +|% + :: UI comms + ++ state |= state-0:sur ^- json + %+ frond %state + %: pairs + relays+(en-relays relays) + key+(hex:en:common pub.i.keys) + profiles+(en-profiles profiles) + :: TODO proper cursors + feed+(feed-with-cursor:en:trill feed ~ ~) + nostr+(en-nostr-feed nostr-feed) + following+(enfollowing following) + ['followGraph' (engraph follow-graph)] + ~ + == + ++ en-nostr-feed + |= feed=nostr-feed:sur ^- json + :- %a %+ turn (tap:norm:sur feed) |= [id=@ud ev=event:nsur] + (event:en:nostr ev) + + ++ en-relays + |= r=(map @t relay-stats:nsur) ^- json + %- pairs %+ turn ~(tap by r) + |= [url=@t rs=relay-stats:nsur] + :- url %- pairs + :~ :- %connected ?~ connected.rs ~ (time u.connected.rs) + :- %reqs (relay-stats reqs.rs) + == + ++ relay-stats |= rm=(map @t event-stats:nsur) + %- pairs %+ turn ~(tap by rm) |= [sub-id=@t es=event-stats:nsur] + :: TODO do we even need this + :- sub-id (numb received.es) + + ++ en-profiles |= m=(map user:sur user-meta:nsur) + %- pairs + %+ turn ~(tap by m) |= [key=user:sur p=user-meta:nsur] + =/ jkey (user key) + ?> ?=(%s -.jkey) + :- +.jkey (user-meta:en:nostr p) + + ++ enfollowing + |= m=(map user:sur feed:feed) + ^- json + %- pairs %+ turn ~(tap by m) |= [key=user:sur f=feed:feed] + =/ jkey (user key) + ?> ?=(%s -.jkey) + :: TODO proper cursor stuff + :- +.jkey (feed-with-cursor:en:trill f ~ ~) + + ++ engraph + |= m=(map user:sur (set user:sur)) + ^- json + %- pairs %+ turn ~(tap by m) |= [key=user:sur s=(set user:sur)] + =/ jkey (user key) + ?> ?=(%s -.jkey) + :- +.jkey + :- %a %+ turn ~(tap in s) user + + ++ follow + |= f=follow:sur + %- pairs + :~ pubkey+(hex:en:common pubkey.f) + name+s+name.f + :- %relay ?~ relay.f ~ s+u.relay.f + == + ++ user |= u=user:sur ^- json + ?- -.u + %urbit (patp:en:common +.u) + %nostr (hex:en:common +.u) + == + :: ui facts + ++ fact |= f=fact:ui:sur ^- json + %+ frond %fact + %+ frond -.f + ?- -.f + %nostr (en-nostr-feed +.f) + %post (postfact +.f) + %enga (enga +.f) + %fols (fols +.f) + == + ++ fols |= ff=fols-fact:ui:sur ^- json + %+ frond -.ff + ?- -.ff + %quit (user +.ff) + %new %: pairs + user+(user user.ff) + feed+(feed-with-cursor:en:trill fc.ff) + :- 'profile' ?~ meta.ff ~ (user-meta:en:nostr u.meta.ff) + ~ + == + == + ++ tedfact |= pf=post-fact:ui:sur ^- json + %+ frond -.pf + (post-wrapper +.pf) + ++ postfact |= pf=post-fact:ui:sur ^- json + %+ frond -.pf + (post-wrapper +.pf) + + ++ enga |= [pw=post-wrapper:sur reaction=*] + ^- json + ~ + + ++ post-wrapper |= p=post-wrapper:sur + %- pairs + :~ post+(poast:en:trill post.p) + ['nostrMeta' (nostr-meta nostr-meta.p)] + == + ++ nostr-meta |= p=nostr-meta:sur + =| l=(list [@t json]) + =. l ?~ pub.p l :_ l ['pubkey' (hex:en:common u.pub.p)] + =. l ?~ ev-id.p l :_ l ['eventId' (hex:en:common u.ev-id.p)] + =. l ?~ relay.p l :_ l ['relay' %s u.relay.p] + =. l ?~ pr.p l :_ l ['profile' (user-meta:en:nostr u.pr.p)] + %- pairs l + + ++ beg-res |= =res:comms ^- json + %+ frond %begs %+ frond -.res + ?- -.res + %ok (resd +.res) + %ng [%s msg.res] + == + ++ resd |= rd=res-data:comms ^- json + ?- -.rd + %feed (user-data +.rd) + :: TODO wrap it for nostr shit + %thread (frond -.rd (full-node:en:trill +.rd)) + == + ++ user-data + |= ud=[=fc:feed profile=(unit user-meta:nsur)] + %: pairs + feed+(feed-with-cursor:en:trill fc.ud) + :- %profile ?~ profile.ud ~ (user-meta:en:nostr u.profile.ud) + ~ + == + -- +++ de +=, dejs-soft:format +|% +++ user + %- of :~ + urbit+(se:de:common %p) + nostr+hex:de:common + == + :: ui +++ ui + %- of :~ + keys+ul + fols+ui-fols + begs+ui-begs + prof+ui-prof + post+ui-post + rela+ui-relay + == +++ ui-fols + %- of :~ + add+user + del+user + == +++ ui-begs + %- of :~ + feed+(se:de:common %p) + thread+de-pid + == +++ de-pid + %- ot :~ + host+(se:de:common %p) + id+de-atom-id + == +++ ui-prof + %- of :~ + add+ui-meta + del+ul + == +++ ui-meta + %- ot :~ + name+so + about+so + picture+so + other+other-meta + == +++ other-meta |= jon=json + ?. ?=(%o -.jon) ~ (some p.jon) +++ ui-post + %- of :~ + add+postadd + reply+reply + quote+quote + rp+rp + :: rt+de-rt + :: del+hex:de:common + == +++ postadd + %- ot :~ + content+so + == +++ reply + %- ot :~ + content+so + host+(se:de:common %p) + id+de-atom-id + thread+de-atom-id + == +++ quote + %- ot :~ + content+so + host+(se:de:common %p) + id+de-atom-id + == +++ rp + %- ot :~ + host+(se:de:common %p) + id+de-atom-id + == +++ rt + %- ot :~ + id+hex:de:common + pubkey+hex:de:common + relay+so + == +++ ui-relay + %- of :~ + add+so + del+so + sync+ul + send+de-relay-send + == +++ de-relay-send %- ot :~ + host+(se:de:common %p) + id+de-atom-id + relays+(ar so) + == +++ de-atom-id + |= jon=json ^- (unit @) + ?. ?=([%s @t] jon) ~ + (rush p.jon dem) + + -- + +-- + diff --git a/app/lib/json/trill.hoon b/app/lib/json/trill.hoon new file mode 100644 index 0000000..415d2f4 --- /dev/null +++ b/app/lib/json/trill.hoon @@ -0,0 +1,219 @@ +/- feed=trill-feed, post=trill-post +/+ common=json-common, sr=sortug +|% +++ en +=, enjs:format + |% + ++ feed-with-cursor + |= [f=feed:^feed start=(unit @da) end=(unit @da)] ^- json + %: pairs + feed+(feed f) + start+(cursor start) + end+(cursor end) + ~ + == + ++ cursor |= c=(unit @da) + ?~ c ~ (time u.c) + ++ feed + |= f=feed:^feed ^- json + %- pairs + %+ turn (tap:orm:^feed f) + |= [post-id=@da p=post:post] + ^- [@ta json] + :- (crip (scow:sr %ud `@ud`post-id)) + (poast p) + + ++ poast + |= p=post:post ^- json + %- pairs + :~ id+(ud:en:common id.p) + host+(patp:en:common host.p) + author+(patp:en:common author.p) + thread+(ud:en:common thread.p) + parent+?~(parent.p ~ (ud:en:common u.parent.p)) + contents+(content contents.p) + hash+(b64:en:common hash.p) + engagement+(engagement engagement.p) + children+a+(turn ~(tap in children.p) ud:en:common) + time+(time id.p) + == + + ++ content + |= cm=content-map:post ^- json + =/ last (pry:corm:post cm) + ?~ last ~ + =/ blocks=content-list:post +.u.last + :- %a %+ turn blocks en-block + ++ en-block + |= b=block:post ^- json + %+ frond -.b + ?- -.b + %paragraph a+(turn p.b inline) + %blockquote a+(turn p.b inline) + %table a+(turn rows.b table-row) + %heading (heading +.b) + %list (ilist +.b) + %media (media media.b) + %codeblock (codespan +.b) + %eval s+hoon.b + %ref (en-ref +.b) + %json (external +.b) + %poll ~ + == + ++ table-row + |= l=(list content-list:post) + :- %a %+ turn l + |= b=content-list:post + :- %a %+ turn b en-block + ++ heading + |= [p=cord q=@] + %- pairs + :~ text+s+p + num+(numb q) + == + ++ ilist + |= [p=(list inline:post) q=?] + %- pairs + :~ text+a+(turn p inline) + ordered+b+q + == + ++ media + |= =media:post + %+ frond -.media + ?- -.media + %images a+(turn p.media string) + %video s+p.media + %audio s+p.media + == + ++ string + |= c=cord s+c + ++ en-ref :: TODO should the backend fetch this shit + |= [type=term s=@p p=^path] + %- pairs + :~ type+s+type + ship+(patp:en:common s) + path+(path p) + == + ++ external + |= [p=term q=cord] + %- pairs + :~ origin+s+p + content+s+q + == + ++ inline + |= i=inline:post ^- json + %+ frond -.i + ?+ -.i s+p.i + %ship (patp:en:common p.i) + %link (link +.i) + %ruby (ruby +.i) + %break ~ + == + ++ ruby + |= [p=@t q=@t] + %- pairs + :~ text+s+p + ruby+s+q + == + ++ codespan + |= [code=cord lang=cord] + %- pairs + :~ code+s+code + lang+s+lang + == + ++ link + |= [href=cord show=cord] + %- pairs + :~ href+s+href + show+s+show + == + + ++ engagement + |= =engagement:post ^- json + %- pairs + :~ reacts+(reacts reacts.engagement) + quoted+a+(turn ~(tap in quoted.engagement) signed-pid) + shared+a+(turn ~(tap in shared.engagement) signed-pid) + == + ++ reacts + |= rs=(map @p [react:post signature:post]) + ^- json + %- pairs + %+ turn ~(val by rs) + |= [r=react:post s=signature:post] + ^- [@ta json] + :- (scot %p q.s) + s+r + ++ signed-pid + |= =signed-pid:post + ^- json + %- pairs + :~ ship+(patp:en:common q.signature.signed-pid) + pid+(pid pid.signed-pid) + == + ++ time-pid + |= [t=@da s=@p =id:post] + %- pairs + :~ id+(ud:en:common id) + ship+(patp:en:common s) + time+(time t) + == + ++ time-ship + |= [t=@da s=@p] ^- json + %- pairs + :~ ship+(patp:en:common s) + time+(time t) + == + ++ mention + |= [t=@da s=@p p=pid:post] ^- json + %- pairs + :~ pid+(pid p) + ship+(patp:en:common s) + time+(time t) + == + ++ react + |= [t=@da s=@p p=pid:post react=@t] ^- json + %- pairs + :~ pid+(pid p) + ship+(patp:en:common s) + react+s+react + time+(time t) + == + ++ pid + |= =pid:post + %- pairs + :~ ship+(patp:en:common ship.pid) + id+(ud:en:common id.pid) + == + ++ full-node + |= p=full-node:post ^- json + %- pairs + :~ id+(ud:en:common id.p) + host+(patp:en:common host.p) + author+(patp:en:common author.p) + thread+(ud:en:common thread.p) + parent+?~(parent.p ~ (ud:en:common u.parent.p)) + contents+(content contents.p) + hash+(b64:en:common hash.p) + engagement+(engagement engagement.p) + children+(internal-graph children.p) + time+(time id.p) + == + ++ internal-graph + |= int=internal-graph:post ^- json + ?- -.int + %empty ~ + %full (full-graph +.int) + == + ++ full-graph + |= f=full-graph:post + ^- json + %- pairs + %+ turn (tap:form:post f) + |= [post-id=@da fn=full-node:post] + ^- [@ta json] + :- (crip (scow:sr %ud `@ud`post-id)) + (full-node fn) + :: + -- +-- diff --git a/app/lib/markdown.hoon b/app/lib/markdown.hoon new file mode 100644 index 0000000..67ee3ad --- /dev/null +++ b/app/lib/markdown.hoon @@ -0,0 +1,1711 @@ +/- m=markdown +:: + +=> |% + :: Set label for collapsed / shortcut reference links + ++ backfill-ref-link + |= [a=link:inline:m] + ^- link:inline:m + =/ t target.a + ?+ -.t a :: only reference links + %ref + ?: =(%full type.t) a :: only collapsed / shortcut links + =/ node=element:inline.m (head contents.a) + ?+ -.node a :: ...and it's a %text node + %text + %_ a + target %_ t + label text.node + == + == + == + == + :: + ++ whitespace (mask " \09\0d\0a") :: whitespace: space, tab, or newline + :: + ++ all-link-ref-definitions :: Recursively get link ref definitions + =< process-nodes + |% + ++ process-nodes + |= [nodes=markdown:m] + ^- (map @t urlt:ln:m) + ?~ nodes ~ + %- %~(uni by (process-node (head nodes))) + $(nodes +.nodes) + :: + ++ process-nodeses + |= [nodeses=(list markdown:m)] + ^- (map @t urlt:ln:m) + ?~ nodeses ~ + %- %~(uni by (process-nodes (head nodeses))) + $(nodeses +.nodeses) + :: + ++ process-node + |= [node=node:markdown:m] + ^- (map @t urlt:ln:m) + =/ result *(map @t urlt:ln:m) + ?- -.node + %leaf :: Leaf node: check if it's a link ref def + =/ leaf=node:leaf:m +.node + ?+ -.leaf result + %link-ref-definition (~(put by result) label.leaf urlt.leaf) + == + :: + %container + =/ container=node:container:m +.node + ?- -.container + %block-quote (process-nodes markdown.container) + %ol (process-nodeses contents.container) + %ul (process-nodeses contents.container) + %tl (process-nodeses (turn contents.container |=([is-checked=? =markdown:m] markdown))) + == + == + -- + -- +|% + :: + :: Parse to and from Markdown text format + ++ md + |% + ++ de :: de:md Deserialize (parse) + |% + ++ escaped + |= [char=@t] + (cold char (jest (crip (snoc "\\" char)))) + :: + ++ newline + %+ cold '\0a' :: EOL, with or without carriage return '\0d' + ;~(pfix ;~(pose (just '\0d') (easy ~)) (just '\0a')) + ++ line-end :: Either EOL or EOF + %+ cold '\0a' + ;~(pose newline (full (easy ~))) + :: + ++ ln :: Links and urls + |% + ++ url + =< %+ cook |=(a=url:ln:m a) :: Cast + ;~(pose with-triangles without-triangles) + |% + ++ with-triangles + ;~ plug + %+ cook crip + %+ ifix [gal gar] + %- star + ;~ pose + (escaped '<') + (escaped '>') + ;~(less gal gar line-end prn) :: Anything except '<', '>' or newline + == + (easy %.y) :: "yes triangles" + == + ++ without-triangles + ;~ plug + %+ cook crip + ;~ less + gal :: Doesn't start with '<' + %- plus :: Non-empty + ;~ less + whitespace :: No whitespace allowed + ;~ pose + (escaped '(') + (escaped ')') + ;~(less pal par line-end prn) :: Anything except '(', ')' or newline + == + == + == + (easy %.n) :: "no triangles" + == + -- + :: + ++ urlt + %+ cook |=(a=urlt:ln:m a) :: Cast + ;~ plug + url + %- punt :: Optional title-text + ;~ pfix (plus whitespace) :: Separated by some whitespace + %+ cook crip ;~ pose :: Enclosed in single quote, double quote, or '(...)' + (ifix [soq soq] (star ;~(pose (escaped '\'') ;~(less soq prn)))) + (ifix [doq doq] (star ;~(pose (escaped '"') ;~(less doq prn)))) + (ifix [pal par] (star ;~(pose (escaped '(') (escaped ')') ;~(less pal par prn)))) + == + == + == + :: + :: Labels are used in inline link targets and in a block-level element (labeled link references) + ++ label + %+ cook crip + %+ ifix [sel ser] :: Enclosed in '[...]' + %+ ifix :- (star whitespace) :: Strip leading and trailing whitespapce + (star whitespace) + %- plus ;~ pose :: Non-empty + (escaped '[') + (escaped ']') + ;~(less sel ser prn) :: Anything except '[', ']' (must be escaped) + == + :: + ++ target :: Link target, either reference or direct + =< %+ cook |=(a=target:ln:m a) + ;~(pose target-direct target-ref) + |% + ++ target-direct + %+ cook |=(a=target:ln:m a) + %+ stag %direct + %+ ifix [pal par] :: Direct links are enclosed in '(...)' + %+ ifix :- (star whitespace) :: Strip leading and trailing whitespace + (star whitespace) + urlt :: Just the target + ++ target-ref + %+ cook |=(a=target:ln:m a) + %+ stag %ref + ;~ pose + %+ stag %full label + %+ stag %collapsed (cold '' (jest '[]')) + %+ stag %shortcut (easy '') + == + -- + -- + ++ inline :: Inline elements + |% + ++ contents (cook |=(a=contents:inline:m a) (star element)) :: Element sequence + ++ element :: Any element + %+ cook |=(a=element:inline:m a) + ;~ pose + escape + entity + strong + emphasis + code + link + image + autolink + text + softbrk + hardbrk + == + :: + ++ text + %+ knee *text:inline:m |. ~+ :: recurse + %+ cook |=(a=text:inline:m a) + %+ stag %text + %+ cook crip + %- plus :: At least one character + ;~ less :: ...which doesn't match any other inline rule + escape + entity + link + image + autolink + emphasis + strong + code + softbrk + hardbrk + :: ...etc + prn + == + :: + ++ escape + %+ cook |=(a=escape:inline:m a) + %+ stag %escape + ;~ pose + :: \!\"\#\$\%\&\'\(\)\*\+\,\-\.\/\:\;\<\=\>\?\@\[\\\]\^\_\`\{\|\}\~ + (escaped '[') (escaped ']') (escaped '(') (escaped ')') + (escaped '!') (escaped '*') (escaped '*') (escaped '_') + (escaped '&') (escaped '\\') + :: etc + == + ++ entity + %+ cook |=(a=entity:inline:m a) + %+ stag %entity + %+ ifix [pam mic] + %+ cook crip + ;~ pose + ;~(plug hax (stun [1 7] nud)) :: '#' and one to seven digits + (plus alf) :: Named entity + == + :: + ++ softbrk :: Newline + %+ cook |=(a=softbrk:inline:m a) + %+ stag %soft-line-break + (cold ~ newline) + :: + ++ hardbrk + %+ cook |=(a=hardbrk:inline:m a) + %+ stag %line-break + %+ cold ~ + ;~ pose + ;~(plug (jest ' ') (star ace) newline) :: Two or more spaces before a newline + ;~(plug (just '\\') newline) :: An escaped newline + == + ++ link + %+ knee *link:inline:m |. ~+ :: recurse + %+ cook backfill-ref-link + %+ stag %link + ;~ plug + %+ ifix [sel ser] :: Display text is wrapped in '[...]' + %- star ;~ pose :: Display text can contain various contents + escape + entity + emphasis + strong + code + image + :: Text: => + %+ knee *text:inline:m |. ~+ :: recurse + %+ cook |=(a=text:inline:m a) + %+ stag %text + %+ cook crip + %- plus :: At least one character + ;~ less :: ...which doesn't match any other inline rule + escape + entity + emphasis + strong + code + ser :: No closing ']' + prn + == + == + target:ln + == + :: + ++ image + %+ cook |=(a=image:inline:m a) + %+ stag %image + ;~ plug + %+ ifix [(jest '![') (just ']')] :: alt-text is wrapped in '![...]' + %+ cook crip + %- star ;~ pose + (escaped ']') + ;~(less ser prn) + == + target:ln + == + :: + ++ autolink + %+ cook |=(a=autolink:inline:m a) + %+ stag %autolink + %+ ifix [gal gar] :: Enclosed in '<...>' + %+ cook crip + %- star ;~ pose + ;~(less ace gar prn) :: Spaces are not allowed; neither are backslash-escapes + == + :: + ++ emphasis + %+ knee *emphasis:inline:m |. ~+ :: recurse + %+ cook |=(a=emphasis:inline:m a) + %+ stag %emphasis + ;~ pose + %+ ifix [tar tar] + ;~ plug + (easy '*') + %- plus ;~ pose :: Display text can contain various contents + escape + entity + strong + link + autolink + code + image + link + softbrk + hardbrk + %+ knee *text:inline:m |. ~+ :: recurse + %+ cook |=(a=text:inline:m a) + %+ stag %text + %+ cook crip + %- plus :: At least one character + ;~ less :: ...which doesn't match any other inline rule + escape + entity + strong + link + autolink + code + image + link + softbrk + hardbrk + :: + tar :: If a '*', then it's the end of the `emphasis` + :: + prn + == + == + == + %+ ifix [cab cab] + ;~ plug + (easy '_') + %- plus ;~ pose :: Display text can contain various contents + escape + entity + strong + link + autolink + code + image + link + softbrk + hardbrk + %+ knee *text:inline:m |. ~+ :: recurse + %+ cook |=(a=text:inline:m a) + %+ stag %text + %+ cook crip + %- plus :: At least one character + ;~ less :: ...which doesn't match any other inline rule + escape + entity + strong + link + autolink + code + image + link + softbrk + hardbrk + :: + cab :: If a '*', then it's the end of the `emphasis` + :: + prn + == + == + == + == + :: + ++ strong + %+ knee *strong:inline:m |. ~+ :: recurse + %+ cook |=(a=strong:inline:m a) + %+ stag %strong + ;~ pose + %+ ifix [(jest '**') (jest '**')] + ;~ plug + (easy '*') + %- plus ;~ pose :: Display text can contain various contents + escape + emphasis + link + autolink + code + image + link + softbrk + hardbrk + %+ knee *text:inline:m |. ~+ :: recurse + %+ cook |=(a=text:inline:m a) + %+ stag %text + %+ cook crip + %- plus :: At least one character + ;~ less :: ...which doesn't match any other inline rule + escape + emphasis + link + autolink + code + image + link + softbrk + hardbrk + :: ...etc + (jest '**') :: If a '**', then it's the end of the `emphasis` + prn + == + == + == + %+ ifix [(jest '__') (jest '__')] + ;~ plug (easy '_') + %- plus ;~ pose :: Display text can contain various contents + escape + emphasis + link + autolink + code + image + link + softbrk + hardbrk + %+ knee *text:inline:m |. ~+ :: recurse + %+ cook |=(a=text:inline:m a) + %+ stag %text + %+ cook crip + %- plus :: At least one character + ;~ less :: ...which doesn't match any other inline rule + escape + emphasis + link + autolink + code + image + link + softbrk + hardbrk + :: + (jest '__') :: If a '**', then it's the end of the `emphasis` + prn + == + == + == + == + :: + ++ code + =< %+ cook |=(a=code:inline:m a) + %+ stag %code-span + inner-parser + |% + ++ inner-parser + |= =nail + =/ vex ((plus tic) nail) :: Read the first backtick string + ?~ q.vex vex :: If no vex is found, fail + =/ tic-sequence ^- tape p:(need q.vex) + %. + q:(need q.vex) + %+ cook |= [a=tape] :: Attach the backtick length to it + [(lent tic-sequence) (crip a)] + ;~ sfix + %+ cook + |= [a=(list tape)] + ^- tape + (zing a) + %- star ;~ pose + %+ cook trip ;~(less tic prn) :: Any character other than a backtick + %+ sear :: A backtick string that doesn't match the opener + |= [a=tape] + ^- (unit tape) + ?: =((lent a) (lent tic-sequence)) + ~ + `a + (plus tic) + == + (jest (crip tic-sequence)) :: Followed by a closing backtick string + == + -- + -- + :: + ++ leaf + |% + ++ node + %+ cook |=(a=node:leaf:m a) + ;~ pose + blank-line + heading + break + codeblk-indent + codeblk-fenced + link-ref-def + :: ...etc + table + paragraph + == + ++ blank-line + %+ cook |=(a=blank-line:leaf:m a) + %+ stag %blank-line + (cold ~ newline) + ++ heading + =< %+ cook |=(a=heading:leaf:m a) + %+ stag %heading + ;~(pose atx setext) + |% + ++ atx + =/ atx-eol ;~ plug + (star ace) + (star hax) + (star ace) + line-end + == + + %+ stag %atx + %+ cook :: Parse heading inline content + |= [level=@ text=tape] + [level (scan text contents:inline)] + ;~ pfix + (stun [0 3] ace) :: Ignore up to 3 leading spaces + ;~ plug + (cook |=(a=tape (lent a)) (stun [1 6] hax)) :: Heading level + %+ ifix [(plus ace) atx-eol] :: One leading space is required; rest is ignored + %- star + ;~(less atx-eol prn) :: Trailing haxes/spaces are ignored + == + == + ++ setext + %+ stag %setext + %+ cook + |= [text=tape level=@] + [level (scan text contents:inline)] + ;~ plug :: Wow this is a mess + %+ ifix [(stun [0 3] ace) (star ace)] :: Strip up to 3 spaces, and trailing space + (star ;~(less ;~(pfix (star ace) newline) prn)) :: Any text... + ;~ pfix + newline :: ...followed by newline... + (stun [0 3] ace) :: ...up to 3 spaces (stripped)... + ;~ sfix + ;~ pose :: ...and an underline + (cold 1 (plus (just '-'))) :: Underlined by '-' means heading lvl 1 + (cold 2 (plus (just '='))) :: Underlined by '=' means heading lvl 2 + == + (star ace) + == + == + == + -- + ++ break + %+ cook |=(a=break:leaf:m a) + %+ stag %break + %+ cook + |= [first-2=@t trailing=tape] + [(head trailing) (add 2 (lent trailing))] + %+ ifix :- (stun [0 3] ace) :: Strip indent and trailing space + ;~ plug + (star (mask " \09")) + newline :: No other chars allowed on the line + == + ;~ pose + ;~(plug (jest '**') (plus tar)) :: At least 3, but can be more + ;~(plug (jest '--') (plus hep)) + ;~(plug (jest '__') (plus cab)) + == + :: + ++ codeblk-indent + %+ cook |=(a=codeblk-indent:leaf:m a) + %+ stag %indent-codeblock + %+ cook |=(a=(list tape) (crip (zing a))) + %- plus :: 1 or more lines + ;~ pfix + (jest ' ') :: 4 leading spaces + %+ cook snoc ;~ plug + (star ;~(less line-end prn)) + line-end + == + == + :: + ++ codeblk-fenced + =+ |% + :: Returns a 3-tuple: + :: - indent size + :: - char type + :: - fence length + ++ code-fence + ;~ plug + %+ cook |=(a=tape (lent a)) (stun [0 3] ace) + %+ cook |=(a=tape [(head a) (lent a)]) :: Get code fence char and length + ;~ pose + (stun [3 999.999.999] sig) + (stun [3 999.999.999] tic) + == + == + :: + ++ info-string + %+ cook crip + %+ ifix [(star ace) line-end] :: Strip leading whitespace + (star ;~(less line-end tic prn)) :: No backticks in a code fence + -- + |* =nail + :: Get the marker and indent size + =/ vex (code-fence nail) + ?~ q.vex vex :: If no match found, fail + =/ [indent=@ char=@t len=@] p:(need q.vex) + =/ closing-fence + ;~ plug + (star ace) + (stun [len 999.999.999] (just char)) :: Closing fence must be at least as long as opener + (star ace) :: ...and cannot have any following text except space + line-end + == + :: Read the rest of the list item block + %. + q:(need q.vex) + %+ cook |=(a=codeblk-fenced:leaf:m a) + %+ stag %fenced-codeblock + ;~ plug + %+ cook |=(a=@t a) (easy char) + (easy len) + %+ cook |=(a=@t a) info-string + (easy indent) + %+ cook |=(a=(list tape) (crip (zing a))) + ;~ sfix + %- star :: Any amount of lines + ;~ less closing-fence :: ...until the closing code fence + ;~ pfix (stun [0 indent] ace) :: Strip indent up to that of the opening fence + %+ cook |=(a=tape a) + ;~ pose :: Avoid infinite loop at EOF + %+ cook trip newline :: A line is either a blank line... + %+ cook snoc + ;~ plug :: Or a non-blank line + (plus ;~(less line-end prn)) + line-end + == + == + == + == + ;~(pose closing-fence (full (easy ~))) + == + == + :: + ++ link-ref-def + %+ cook |=(a=link-ref-def:leaf:m a) + %+ stag %link-ref-definition + %+ ifix [(stun [0 3] ace) line-end] :: Strip leading space + ;~ plug + ;~(sfix label:ln col) :: Label (enclosed in "[...]"), followed by col ":" + ;~ pfix :: Optional whitespace, including up to 1 newline + (star ace) + (stun [0 1] newline) + (star ace) + urlt:ln + == + == + :: + ++ paragraph + %+ cook |=(a=paragraph:leaf:m a) + %+ stag %paragraph + %+ cook :: Reparse the paragraph text as elements + |= [a=(list tape)] + (scan (zing a) contents:inline) + %- plus :: Read lines until a non-paragraph object is found + ;~ less + heading + break + block-quote-line:container :: Block quotes can interrupt paragraphs + %+ cook snoc ;~ plug + %- plus ;~(less line-end prn) :: Lines must be non-empty + line-end + == + == + :: + ++ table + => |% + +$ cell-t [len=@ =contents:inline:m] + ++ row + ;~ pfix bar :: A bar in front... + %- star + %+ cook :: compute the length and parse inlines + |= [pfx=@ stuff=tape sfx=@] + [;:(add pfx (lent stuff) sfx) (scan stuff contents:inline)] :: inline elements... + ;~ plug + (cook lent (star ace)) + (star ;~(less newline ;~(plug (star ace) bar) prn)) + (cook lent ;~(sfix (star ace) bar)) + == + == + ++ delimiter-row + ;~ pfix bar :: A bar in front... + %- star + %+ cook + |= [pfx=@ lal=? heps=@ ral=? sfx=@] + :- ;:(add pfx ?:(ral 1 0) heps ?:(lal 1 0) sfx) + ?:(ral ?:(lal %c %r) ?:(lal %l %n)) + ;~ plug + (cook lent (star ace)) :: Delimiter: leading space... + (cook |=(a=tape .?(a)) (stun [0 1] col)) :: maybe a ':'... + (cook lent (plus hep)) :: a bunch of '-'... + (cook |=(a=tape .?(a)) (stun [0 1] col)) :: maybe another ':'... + (cook lent ;~(sfix (star ace) bar)) :: ..and a bar as a terminator + == + == + -- + |* =nail :: Make it a (redundant) gate so I can use `=>` to add a helper core + %. nail :: apply the following parser + %+ cook + |= [hdr=(list cell-t) del=(list [len=@ al=?(%c %r %l %n)]) bdy=(list (list cell-t))] + ^- table:leaf:m + =/ widths=(list @) (turn del |=([len=@ al=*] len)) + =/ rows=(list (list cell-t)) (snoc bdy hdr) :: since they're the same data type + =/ computed-widths + |- + ?~ rows widths + %= $ + rows (tail rows) + widths =/ row=(list cell-t) (head rows) + |- + ?~ row ~ + :- (max (head widths) len:(head row)) + %= $ + widths (tail widths) + row (tail row) + == + == + :* %table + computed-widths + (turn hdr |=(cell=cell-t contents.cell)) + (turn del |=([len=@ al=?(%c %r %l %n)] al)) + (turn bdy |=(row=(list cell-t) (turn row |=(cell=cell-t contents.cell)))) + == + ;~ plug + ;~(sfix row line-end) + ;~(sfix delimiter-row line-end) + (star ;~(sfix row line-end)) + == + -- + :: + ++ container + =+ |% + :: + ++ line :: Read a line of plain text + %+ cook |=([a=tape b=tape c=tape] ;:(weld a b c)) + ;~ plug + (star ;~(less line-end prn)) + (cook trip line-end) + (star newline) :: Can have blank lines in a list item + == + ++ block-quote-marker + ;~ plug :: Single char '>' + (stun [0 3] ace) :: Indented up to 3 spaces + gar + (stun [0 1] ace) :: Optionally followed by a space + == + ++ block-quote-line + %+ cook snoc + ;~ plug :: Single line... + ;~ pfix block-quote-marker :: ...starting with ">..." + (star ;~(less line-end prn)) :: can be empty + == + line-end + == + :: + +$ ul-marker-t [indent=@ char=@t len=@] + ++ ul-marker + %+ cook :: Compute the length of the whole thing + |= [prefix=tape bullet=@t suffix=tape] + ^- ul-marker-t + :* (lent prefix) + bullet + ;:(add 1 (lent prefix) (lent suffix)) + == + ;~ plug + (stun [0 3] ace) + ;~(pose hep lus tar) :: Bullet char + (stun [1 4] ace) + == + :: + :: Produces a 3-tuple: + :: - bullet char (*, +, or -) + :: - indent level (number of spaces before the bullet) + :: - item contents (markdown) + +$ ul-item-t [char=@t indent=@ =markdown:m] + ++ ul-item + |* =nail + :: Get the marker and indent size + =/ vex (ul-marker nail) + ?~ q.vex vex :: If no match found, fail + =/ mrkr=ul-marker-t p:(need q.vex) + :: Read the rest of the list item block + %. + q:(need q.vex) + %+ cook + |= [a=(list tape)] + ^- ul-item-t + :* char.mrkr + indent.mrkr + (scan (zing a) markdown) + == + ;~ plug + line :: First line + %- star ;~ pfix :: Subsequent lines must have the same indent + (stun [len.mrkr len.mrkr] ace) :: the indent + line :: the line + == + == + :: + +$ ol-marker-t [indent=@ char=@t number=@ len=@] + ++ ol-marker + %+ cook :: Compute the length of the whole thing + |= [prefix=tape number=@ char=@t suffix=tape] + ^- ol-marker-t + :* (lent prefix) + char + number + ;:(add 1 (lent (a-co:co number)) (lent prefix) (lent suffix)) + == + ;~ plug + (stun [0 3] ace) + dem + ;~(pose dot par) :: Bullet char + (stun [1 4] ace) + == + :: + :: Produces a 4-tuple: + :: - delimiter char: either dot '.' or par ')' + :: - list item number + :: - indent level (number of spaces before the number) + :: - item contents (markdown) + +$ ol-item-t [char=@t number=@ indent=@ =markdown:m] + ++ ol-item + |* =nail + ::^- edge + :: Get the marker and indent size + =/ vex (ol-marker nail) + ?~ q.vex vex :: If no match found, fail + =/ mrkr=ol-marker-t p:(need q.vex) + :: Read the rest of the list item block + %. + q:(need q.vex) + %+ cook + |= [a=(list tape)] + ^- ol-item-t + :* char.mrkr + number.mrkr + indent.mrkr + (scan (zing a) markdown) + == + ;~ plug + line :: First line + %- star ;~ pfix :: Subsequent lines must have the same indent + (stun [len.mrkr len.mrkr] ace) :: the indent + line :: the line + == + == + :: + ++ tl-checkbox + ;~ pose + %+ cold %.y (jest '[x]') + %+ cold %.n (jest '[ ]') + == + :: + :: Produces a 4-tuple: + :: - bullet char (*, +, or -) + :: - indent level (number of spaces before the bullet) + :: - is-checked + :: - item contents (markdown) + +$ tl-item-t [char=@t indent=@ is-checked=? =markdown:m] + ++ tl-item + |* =nail + :: Get the marker and indent size + =/ vex (;~(plug ul-marker ;~(sfix tl-checkbox ace)) nail) + ?~ q.vex vex :: If no match found, fail + =/ [mrkr=ul-marker-t is-checked=?] p:(need q.vex) + :: Read the rest of the list item block + %. + q:(need q.vex) + %+ cook + |= [a=(list tape)] + ^- tl-item-t + :* char.mrkr + indent.mrkr + is-checked + (scan (zing a) markdown) + == + ;~ plug + line :: First line + %- star ;~ pfix :: Subsequent lines must have the same indent + (stun [len.mrkr len.mrkr] ace) :: the indent + line :: the line + == + == + -- + |% + ++ node + %+ cook |=(a=node:container:m a) + ;~ pose + block-quote + tl + ul + ol + == + :: + ++ block-quote + %+ cook |=(a=block-quote:container:m a) + %+ stag %block-quote + %+ cook |= [a=(list tape)] + (scan (zing a) markdown) + ;~ plug + block-quote-line + %- star :: At least one line + ;~ pose + block-quote-line + %+ cook zing %- plus :: Paragraph continuation (copied from `paragraph` above) + ;~ less :: ...basically just text that doesn't matchZ anything else + heading:leaf + break:leaf + :: ol + :: ul + block-quote-marker :: Can't start with ">" + line-end :: Can't be blank + %+ cook snoc ;~ plug + %- star ;~(less line-end prn) + line-end + == + == + == + == + :: + ++ ul + |* =nail + :: Start by finding the type of the first bullet (indent level and bullet char) + =/ vex (ul-item nail) + ?~ q.vex vex :: Fail if it doesn't match a list item + =/ first-item=ul-item-t p:(need q.vex) + :: Check for more list items + %. + q:(need q.vex) + %+ cook |=(a=ul:container:m a) + %+ stag %ul + ;~ plug :: Give the first item, first + (easy indent.first-item) + (easy char.first-item) + (easy markdown.first-item) + %- star + %+ sear :: Reject items that don't have the same bullet char + |= [item=ul-item-t] + ^- (unit markdown:m) + ?. =(char.item char.first-item) + ~ + `markdown.item + ul-item + == + :: + ++ ol + |* =nail + :: Start by finding the first number, char, and indent level + =/ vex (ol-item nail) + ?~ q.vex vex :: Fail if it doesn't match a list item + =/ first-item=ol-item-t p:(need q.vex) + :: Check for more list items + %. + q:(need q.vex) + %+ cook |=(a=ol:container:m a) + %+ stag %ol + ;~ plug :: Give the first item, first + (easy indent.first-item) + (easy char.first-item) + (easy number.first-item) + (easy markdown.first-item) + %- star + %+ sear :: Reject items that don't have the same delimiter + |= [item=ol-item-t] + ^- (unit markdown:m) + ?. =(char.item char.first-item) + ~ + `markdown.item + ol-item + == + :: + ++ tl + |* =nail + :: Start by finding the type of the first bullet (indent level and bullet char) + =/ vex (tl-item nail) + ?~ q.vex vex :: Fail if it doesn't match a list item + =/ first-item=tl-item-t p:(need q.vex) + :: Check for more list items + %. + q:(need q.vex) + %+ cook |=(a=tl:container:m a) + %+ stag %tl + ;~ plug :: Give the first item, first + (easy indent.first-item) + (easy char.first-item) + (easy [is-checked.first-item markdown.first-item]) + %- star + %+ sear :: Reject items that don't have the same bullet char + |= [item=tl-item-t] + ^- (unit [is-checked=? markdown:m]) + ?. =(char.item char.first-item) + ~ + `[is-checked.item markdown.item] + tl-item + == + -- + :: + ++ markdown + %+ cook |=(a=markdown:m a) + %- star ;~ pose + (stag %container node:container) + (stag %leaf node:leaf) + == + -- + :: + :: Enserialize (write out as text) + ++ en + |% + ++ escape-chars + |= [text=@t chars=(list @t)] + ^- tape + %+ rash text + %+ cook + |=(a=(list tape) `tape`(zing a)) + %- star ;~ pose + (cook |=(a=@t `tape`~['\\' a]) (mask chars)) + (cook trip prn) + == + :: + ++ ln + |% + ++ url + =< |= [u=url:ln:m] + ^- tape + ?: has-triangle-brackets.u + (with-triangles text.u) + (without-triangles text.u) + |% + ++ with-triangles + |= [text=@t] + ;: weld + "<" :: Put it inside triangle brackets + (escape-chars text "<>") :: Escape triangle brackets in the text + ">" + == + ++ without-triangles + |= [text=@t] + (escape-chars text "()") :: Escape all parentheses '(' and ')' + -- + ++ urlt + |= [u=urlt:ln:m] + ^- tape + ?~ title-text.u :: If there's no title text, then it's just an url + (url url.u) + ;:(weld (url url.u) " \"" (escape-chars (need title-text.u) "\"") "\"") + ++ label + |= [text=@t] + ^- tape + ;:(weld "[" (escape-chars text "[]") "]") + ++ target + |= [t=target:ln:m] + ^- tape + ?- -.t + %direct ;:(weld "(" (urlt urlt.t) ")") :: Wrap in parentheses + :: + %ref ?- type.t + %full (label label.t) + %collapsed "[]" + %shortcut "" + == + == + -- + :: + ++ inline + |% + ++ contents + |= [=contents:inline:m] + ^- tape + %- zing %+ turn contents element + ++ element + |= [e=element:inline:m] + ?+ -.e !! + %text (text e) + %link (link e) + %escape (escape e) + %entity (entity e) + %code-span (code e) + %strong (strong e) + %emphasis (emphasis e) + %soft-line-break (softbrk e) + %line-break (hardbrk e) + %image (image e) + %autolink (autolink e) + :: ...etc + == + ++ text + |= [t=text:inline:m] + ^- tape + (trip text.t) :: So easy! + :: + ++ entity + |= [e=entity:inline:m] + ^- tape + ;:(weld "&" (trip code.e) ";") + :: + ++ link + |= [l=link:inline:m] + ^- tape + ;: weld + "[" + (contents contents.l) + "]" + (target:ln target.l) + == + :: + ++ image + |= [i=image:inline:m] + ^- tape + ;: weld + "![" + (escape-chars alt-text.i "]") + "]" + (target:ln target.i) + == + :: + ++ autolink + |= [a=autolink:inline:m] + ^- tape + ;: weld + "<" + (trip text.a) + ">" + == + :: + ++ escape + |= [e=escape:inline:m] + ^- tape + (snoc "\\" char.e) :: Could use `escape-chars` but why bother-- this is shorter + :: + ++ softbrk + |= [s=softbrk:inline:m] + ^- tape + "\0a" + ++ hardbrk + |= [h=hardbrk:inline:m] + ^- tape + "\\\0a" + ++ code + |= [c=code:inline:m] + ^- tape + ;:(weld (reap num-backticks.c '`') (trip text.c) (reap num-backticks.c '`')) + :: + ++ strong + |= [s=strong:inline:m] + ^- tape + ;: weld + (reap 2 emphasis-char.s) + (contents contents.s) + (reap 2 emphasis-char.s) + == + :: + ++ emphasis + |= [e=emphasis:inline:m] + ^- tape + ;: weld + (trip emphasis-char.e) + (contents contents.e) + (trip emphasis-char.e) + == + -- + :: + ++ leaf + |% + ++ node + |= [n=node:leaf:m] + ?+ -.n !! + %blank-line (blank-line n) + %break (break n) + %heading (heading n) + %indent-codeblock (codeblk-indent n) + %fenced-codeblock (codeblk-fenced n) + %link-ref-definition (link-ref-def n) + %paragraph (paragraph n) + %table (table n) + :: ...etc + == + + ++ blank-line + |= [b=blank-line:leaf:m] + ^- tape + "\0a" + :: + ++ break + |= [b=break:leaf:m] + ^- tape + (weld (reap char-count.b char.b) "\0a") + :: + ++ heading + |= [h=heading:leaf:m] + ^- tape + ?- style.h + %atx + ;:(weld (reap level.h '#') " " (contents:inline contents.h) "\0a") + %setext + =/ line (contents:inline contents.h) + ;:(weld line "\0a" (reap (lent line) ?:(=(level.h 1) '-' '=')) "\0a") + == + :: + ++ codeblk-indent + |= [c=codeblk-indent:leaf:m] + ^- tape + %+ rash text.c + %+ cook + |= [a=(list tape)] + ^- tape + %- zing %+ turn a |=(t=tape (weld " " t)) + %- plus %+ cook snoc ;~(plug (star ;~(less (just '\0a') prn)) (just '\0a')) + :: + ++ codeblk-fenced + |= [c=codeblk-fenced:leaf:m] + ^- tape + ;: weld + (reap indent-level.c ' ') + (reap char-count.c char.c) + (trip info-string.c) + "\0a" + ^- tape %+ rash text.c + %+ cook zing %- star :: Many lines + %+ cook |= [a=tape newline=@t] :: Prepend each line with "> " + ^- tape + ;: weld + ?~(a "" (reap indent-level.c ' ')) :: If the line is blank, no indent + a + "\0a" + == + ;~ plug :: Break into lines + (star ;~(less (just '\0a') prn)) + (just '\0a') + == + (reap indent-level.c ' ') + (reap char-count.c char.c) + "\0a" + == + :: + ++ link-ref-def + |= [l=link-ref-def:leaf:m] + ^- tape + ;: weld + "[" + (trip label.l) + "]: " + (urlt:ln urlt.l) + "\0a" + == + :: + ++ table + => |% + ++ cell + |= [width=@ c=contents:inline:m] + ^- tape + =/ contents-txt (contents:inline c) + ;: weld + " " + contents-txt + (reap (sub width (add 1 (lent contents-txt))) ' ') + "|" + == + ++ row + |= [widths=(list @) cells=(list contents:inline:m)] + ^- tape + ;: weld + "|" + |- + ^- tape + ?~ widths ~ + %+ weld + (cell (head widths) (head cells)) + $(widths (tail widths), cells (tail cells)) + "\0a" + == + ++ delimiter-row + |= [widths=(list @) align=(list ?(%l %c %r %n))] + ^- tape + ;: weld + "|" + |- + ^- tape + ?~ align ~ + ;: weld + " " + ?- (head align) + %l (weld ":" (reap ;:(sub (head widths) 3) '-')) + %r (weld (reap ;:(sub (head widths) 3) '-') ":") + %c ;:(weld ":" (reap ;:(sub (head widths) 4) '-') ":") + %n (reap ;:(sub (head widths) 2) '-') + == + " |" + $(align (tail align), widths (tail widths)) + == + "\0a" + == + -- + |= [t=table:leaf:m] + ^- tape + ;: weld + (row widths.t head.t) + (delimiter-row widths.t align.t) + =/ rows rows.t + |- + ^- tape + ?~ rows ~ + %+ weld (row widths.t (head rows)) $(rows (tail rows)) + == + :: + ++ paragraph + |= [p=paragraph:leaf:m] + ^- tape + (contents:inline contents.p) + -- + :: + ++ container + => |% + ++ line + %+ cook snoc + ;~ plug + (star ;~(less (just '\0a') prn)) + (just '\0a') + == + -- + |% + ++ node + |= [n=node:container:m] + ?- -.n + %block-quote (block-quote n) + %ul (ul n) + %ol (ol n) + %tl (tl n) + == + :: + ++ block-quote + |= [b=block-quote:container:m] + ^- tape + %+ scan (markdown markdown.b) :: First, render the contents + %+ cook zing %- plus :: Many lines + %+ cook |= [a=tape newline=@t] :: Prepend each line with "> " + ^- tape + ;: weld + ">" + ?~(a "" " ") :: If the line is blank, no trailing space + a + "\0a" + == + ;~ plug :: Break into lines + (star ;~(less (just '\0a') prn)) + (just '\0a') + == + :: + ++ ul + |= [u=ul:container:m] + ^- tape + %- zing %+ turn contents.u :: Each bullet point... + |= [item=markdown:m] + ^- tape + %+ scan (markdown item) :: First, render bullet point contents + %+ cook zing + ;~ plug + %+ cook |= [a=tape] :: Prepend 1st line with indent + bullet char + ;: weld + (reap indent-level.u ' ') + (trip marker-char.u) + " " + a + == + line :: first line + %- star + %+ cook |= [a=tape] :: Subsequent lines just get indent + ?: ?|(=("" a) =("\0a" a)) a + ;: weld + (reap indent-level.u ' ') + " " :: 2 spaces, to make it even with the 1st line + a + == + line :: second and thereafter lines + == + ++ tl + |= [t=tl:container:m] + ^- tape + %- zing %+ turn contents.t :: Each bullet point... + |= [is-checked=? item=markdown:m] + ^- tape + %+ scan (markdown item) :: First, render bullet point contents + %+ cook zing + ;~ plug + %+ cook |= [a=tape] :: Prepend 1st line with indent, bullet char, checkbox + ;: weld + (reap indent-level.t ' ') + (trip marker-char.t) + " [" + ?:(is-checked "x" " ") + "] " + a + == + line :: first line + %- star + %+ cook |= [a=tape] :: Subsequent lines just get indent + ?: ?|(=("" a) =("\0a" a)) a + ;: weld + (reap indent-level.t ' ') + " " :: 2 spaces, to make it even with the 1st line + a + == + line :: second and thereafter lines + == + :: + ++ ol + |= [o=ol:container:m] + ^- tape + %- zing %+ turn contents.o :: Each item... + |= [item=markdown:m] + ^- tape + %+ scan (markdown item) :: First, render item contents + %+ cook zing + ;~ plug + %+ cook |= [a=tape] :: Prepend 1st line with indent + item number + ;: weld + (reap indent-level.o ' ') + (a-co:co start-num.o) + (trip marker-char.o) + " " + a + == + line :: first line + %- star + %+ cook |= [a=tape] :: Subsequent lines just get indent + ?: ?|(=("" a) =("\0a" a)) a + ;: weld + (reap indent-level.o ' ') + (reap (lent (a-co:co start-num.o)) ' ') + " " :: 2 spaces, to make it even with the 1st line + a + == + line :: second and thereafter lines + == + -- + :: + ++ markdown + |= [a=markdown:m] + ^- tape + %- zing %+ turn a |= [item=node:markdown:m] + ?- -.item + %leaf (node:leaf +.item) + %container (node:container +.item) + == + -- + -- + :: + :: Enserialize as Sail (manx and marl) + ++ sail-en + =< + |= [document=markdown:m] + =/ link-ref-defs (all-link-ref-definitions document) + ^- manx + ;div + ;* (~(markdown sail-en link-ref-defs) document) + == + :: + |_ [reference-links=(map @t urlt:ln:m)] + ++ inline + |% + ++ contents + |= [=contents:inline:m] + ^- marl + %+ turn contents element + ++ element + |= [e=element:inline:m] + ^- manx + ?+ -.e !! + %text (text e) + %link (link e) + %code-span (code e) + %escape (escape e) + %entity (entity e) + %strong (strong e) + %emphasis (emphasis e) + %soft-line-break (softbrk e) + %line-break (hardbrk e) + %image (image e) + %autolink (autolink e) + :: ...etc + == + ++ text + |= [t=text:inline:m] + ^- manx + [[%$ [%$ (trip text.t)] ~] ~] :: Magic; look up the structure of a `manx` if you want + ++ escape + |= [e=escape:inline:m] + ^- manx + [[%$ [%$ (trip char.e)] ~] ~] :: Magic; look up the structure of a `manx` if you want + ++ entity + |= [e=entity:inline:m] + ^- manx + =/ fulltext (crip ;:(weld "&" (trip code.e) ";")) + [[%$ [%$ `tape`[fulltext ~]] ~] ~] :: We do a little sneaky + ++ softbrk + |= [s=softbrk:inline:m] + ^- manx + (text [%text ' ']) + ++ hardbrk + |= [h=hardbrk:inline:m] + ^- manx + ;br; + ++ code + |= [c=code:inline:m] + ^- manx + ;code: {(trip text.c)} + ++ link + |= [l=link:inline:m] + ^- manx + =/ target target.l + =/ urlt ?- -.target + %direct urlt.target :: Direct link; use it + %ref :: Ref link; look it up + ~| "reflink not found: {}" + (~(got by reference-links) label.target) + == + ;a(href (trip text.url.urlt), title (trip (fall title-text.urlt ''))) + ;* (contents contents.l) + == + ++ image + |= [i=image:inline:m] + ^- manx + =/ target target.i + =/ urlt ?- -.target + %direct urlt.target :: Direct link; use it + %ref :: Ref link; look it up + ~| "reflink not found: {}" + (~(got by reference-links) label.target) + == + ;img(src (trip text.url.urlt), alt (trip alt-text.i)); + ++ autolink + |= [a=autolink:inline:m] + ^- manx + ;a(href (trip text.a)): {(trip text.a)} + ++ emphasis + |= [e=emphasis:inline:m] + ^- manx + ;em + ;* (contents contents.e) + == + ++ strong + |= [s=strong:inline:m] + ^- manx + ;strong + ;* (contents contents.s) + == + -- + ++ leaf + |% + ++ node + |= [n=node:leaf:m] + ^- manx + ?+ -.n !! + %blank-line (blank-line n) + %break (break n) + %heading (heading n) + %indent-codeblock (codeblk-indent n) + %fenced-codeblock (codeblk-fenced n) + %table (table n) + %paragraph (paragraph n) + %link-ref-definition (text:inline [%text ' ']) :: Link ref definitions don't render as anything + :: ...etc + == + ++ heading + |= [h=heading:leaf:m] + ^- manx + :- + :_ ~ ?+ level.h !! :: Tag and attributes; attrs are empty (~) + %1 %h1 + %2 %h2 + %3 %h3 + %4 %h4 + %5 %h5 + %6 %h6 + == + (contents:inline contents.h) + ++ blank-line + |= [b=blank-line:leaf:m] + ^- manx + (text:inline [%text ' ']) + ++ break + |= [b=break:leaf:m] + ^- manx + ;hr; + ++ codeblk-indent + |= [c=codeblk-indent:leaf:m] + ^- manx + ;pre + ;code: {(trip text.c)} + == + ++ codeblk-fenced + |= [c=codeblk-fenced:leaf:m] + ^- manx + ;pre + ;+ ?: =(info-string.c '') + ;code: {(trip text.c)} + ;code(class (weld "language-" (trip info-string.c))): {(trip text.c)} + == + ++ table + |= [t=table:leaf:m] + ^- manx + ;table + ;thead + ;tr + ;* =/ hdr head.t + =/ align align.t + |- + ?~ hdr ~ + :- ;th(align ?-((head align) %c "center", %r "right", %l "left", %n "")) + ;* (contents:inline (head hdr)) + == + $(hdr (tail hdr), align (tail align)) + + == + == + ;tbody + ;* %+ turn rows.t + |= [r=(list contents:inline:m)] + ^- manx + ;tr + ;* =/ row r + =/ align align.t + |- + ?~ row ~ + :- ;td(align ?-((head align) %c "center", %r "right", %l "left", %n "")) + ;* (contents:inline (head row)) + == + $(row (tail row), align (tail align)) + == + == + == + ++ paragraph + |= [p=paragraph:leaf:m] + ^- manx + ;p + ;* (contents:inline contents.p) + == + -- + :: + ++ container + |% + ++ node + |= [n=node:container:m] + ^- manx + ?- -.n + %block-quote (block-quote n) + %ul (ul n) + %ol (ol n) + %tl (tl n) + == + :: + ++ block-quote + |= [b=block-quote:container:m] + ^- manx + ;blockquote + ;* (~(. markdown reference-links) markdown.b) + == + :: + ++ ul + |= [u=ul:container:m] + ^- manx + ;ul + ;* %+ turn contents.u |= [a=markdown:m] + ^- manx + ;li + ;* (~(. markdown reference-links) a) + == + == + :: + ++ ol + |= [o=ol:container:m] + ^- manx + ;ol(start (a-co:co start-num.o)) + ;* %+ turn contents.o |= [a=markdown:m] + ^- manx + ;li + ;* (~(. markdown reference-links) a) + == + == + ++ tl + |= [t=tl:container:m] + ^- manx + ;ul.task-list + ;* %+ turn contents.t |= [is-checked=? a=markdown:m] + ^- manx + ;li + ;+ ?: is-checked + ;input(type "checkbox", checked "true"); + ;input(type "checkbox"); + ;* (~(. markdown reference-links) a) + == + == + -- + :: + ++ markdown + |= [a=markdown:m] + ^- marl + %+ turn a |= [item=node:markdown:m] + ?- -.item + %leaf (node:leaf +.item) + %container (node:container +.item) + == + -- +-- diff --git a/app/lib/mutations/nostr.hoon b/app/lib/mutations/nostr.hoon new file mode 100644 index 0000000..2c6acd5 --- /dev/null +++ b/app/lib/mutations/nostr.hoon @@ -0,0 +1,243 @@ +/- sur=nostrill, nsur=nostr, comms=nostrill-comms, + post=trill-post, gate=trill-gate, feed=trill-feed + +/+ appjs=json-nostrill, + lib=nostrill, + njs=json-nostr, + postlib=trill-post, + shim, + sr=sortug + +|_ [=state:sur =bowl:gall] ++$ card card:agent:gall +:: events +++ process-events ^- (quip card _state) + :: =/ l events.state + :: =| cards=(list card:agent:gall) + :: |- ?~ l [cards state] + :: =/ n (event-parsing i.l) + :: $(cards -.n, state +.n, l t.l) + :: TODO + `state + +:: ++ parse-events +:: |= evs=(list event:nsur) +:: ^- (quip card _state) +:: =| cards=(list card) +:: =^ cards state +:: |- ?~ evs [cards state] +:: =^ cards state (handle-event i.evs) +:: $(evs t.evs) +:: [cards state] + +++ populate-profiles + |= pubkeys=(set @ux) + ^- (quip card _state) + =/ shimm ~(. shim [state bowl]) + =^ cards state (get-profiles-http:shimm pubkeys) + [cards state] + + + + + +++ handle-http + |= [sub-id=@t msgs=(list relay-msg:nsur)] + ~& handling-http=[sub-id (lent msgs)] + =| cards=(list card) + |- ?~ msgs [cards state] + =^ cards state (handle-msg i.msgs) + $(msgs t.msgs) + + +++ handle-msg |= msg=relay-msg:nsur + ^- (quip card _state) + ?+ -.msg `state + %event + (handle-event '' sub-id.msg event.msg) + %eose + `state + %closed + `state + %auth ~& >> auth=+.msg :: TODO handle auth challenges? + `state + %notice ~& >> notice=+.msg :: TODO pass to UI? + `state + %error ~& >>> relay-error=+.msg + `state + == + +++ handle-ws |= [relay=@t msg=relay-msg:nsur] + =/ rs (~(get by relays.state) relay) + ?~ rs :: TODO do we really + `state + =^ cards state + ~& handle-ws=-.msg + ?- -.msg + %ok (handle-ok relay +.msg) + %event + =. relays.state (update-relay-stats relay sub-id.msg) + (handle-event relay sub-id.msg event.msg) + + %eose + :: TODO do unsub for replaceable/addressable events + =/ creq (~(get by reqs.u.rs) +.msg) + ?~ creq `state + :: =. reqs.u.rs (~(del by reqs.u.rs) +.msg) + :: =. relays.state (~(put by relays.state) relay u.rs) + =/ cardslib ~(. cards:lib bowl) + =/ c (update-ui:cardslib [%nostr nostr-feed.state]) + :_ state :~(c) + %closed =. reqs.u.rs (~(del by reqs.u.rs) sub-id.msg) + =. relays.state (~(put by relays.state) relay u.rs) + `state + %auth ~& >> auth=+.msg :: TODO handle auth challenges? + `state + %notice ~& >> notice=+.msg :: TODO pass to UI? + `state + %error ~& >>> relay-error=+.msg + =. relays.state (~(del by relays.state) relay) + `state + == + [cards state] + + + :: =^ cards state (handle-event:mutat url.u.msg sub-id.u.msg event.u.msg) + :: :: TODO not just stash events + :: =/ relay (~(get by relays) url.u.msg) + :: =/ nevents=(list event:nsur) ?~ relay [event.u.msg ~] [event.u.msg u.relay] + :: =/ nevents2 (scag 100 nevents) + + :: =. relays (~(put by relays) url.u.msg nevents2) + :: :: TODO respond better + :: =/ response (ebail:rout id.order) + :: =/ ncards (weld cards response) + + :: [ncards this] + :: `state + +++ update-relay-stats + |= [relay=@t sub-id=@t] ^+ relays.state + + =/ cur (~(get by relays.state) relay) + =/ curr ?~ cur *relay-stats:nsur u.cur + =? connected.curr ?=(%~ connected.curr) (some now.bowl) + =/ creq (~(get by reqs.curr) sub-id) + ?~ creq relays.state :: bail + =/ nreq u.creq(received +(received.u.creq)) + =. reqs.curr (~(put by reqs.curr) sub-id nreq) + (~(put by relays.state) relay curr) + +++ handle-ok |= [relay=@t event-id=@ux accepted=? msg=@t] + ^- (quip card _state) + :: TODO pass to UI + `state + + +++ handle-event + |= [relay=@t sub-id=@t =event:nsur] + ^- (quip card _state) + |^ + ~& parsing-nostr-event=kind.event +:: https://nostrdata.github.io/kinds/ + ?: .=(kind.event 666) :: one_off subs eose cf. 999 + parse-shim-oneose + ?: .=(kind.event 0) :: user metadata + parse-metadata + ?: .=(kind.event 1) :: apparently a poast + parse-poast + ?: .=(kind.event 3) :: follow list + parse-follow + :: ?: .=(kind.event 5) :: delete + ?: .=(kind.event 6) :: RT + parse-follow + ?: .=(kind.event 7) :: Reaction + parse-follow + + `state + + ++ parse-metadata + ^- (quip card _state) + =/ jstring content.event + =/ ujon (de:json:html jstring) + ?~ ujon ~& failed-parse-metadata=ujon `state + =/ umeta (user-meta:de:njs u.ujon) + ?~ umeta ~& >> failed-dejs-metadata=ujon `state + =. profiles.state (~(put by profiles.state) [%nostr pubkey.event] u.umeta) + `state + + + ++ parse-poast + ^- (quip card _state) + =. nostr-feed.state (put:norm:sur nostr-feed.state created-at.event event) + :: =/ uprof (~(get by profiles.state) pubkey.event) + :: ?~ uprof + :: =/ shimm ~(. shim [state bowl]) + :: =^ cards state (get-profiles:shimm (silt ~[pubkey.event])) + :: [cards state] + + + :: =/ fid (~(get by following.state) pubkey.event) + :: ?~ fid `state :: don't save post if we don't follow the fucker + + :: =/ cl (tokenize:postlib content.event) + + :: =/ ts (from-unix:jikan:sr created-at.event) + :: :: TODO wtf + :: =/ cm=content-map:post (init-content-map:postlib cl ts) + + :: =/ p=post:post :* + :: id=ts + :: host=`@p`pubkey.event + :: author=`@p`pubkey.event + :: thread=ts + :: parent=~ + :: children=~ + :: contents=cm + :: read=*lock:gate + :: write=*lock:gate + :: *engagement:post + :: 0v0 + :: *signature:post + :: tags=~ + :: == + :: =/ nfid (put:orm:feed u.fid ts p) + :: =. following.state (~(put by following.state) pubkey.event nfid) + `state + ++ parse-follow + ^- (quip card _state) + =/ following (~(get by follow-graph.state) [%nostr pubkey.event]) + =/ follow-set ?~ following *(set follow:sur) u.following + |- ?~ tags.event `state + =/ t=tag:nsur i.tags.event + :: ?. .=('p' key.t) $(tags.event t.tags.event) + :: =/ pubkeys value.t + :: =/ pubkey (slaw:sr %ux pubkeys) + :: ?~ pubkey ~& "parsing hex error" $(tags.event t.tags.event) + :: =/ relay (snag 0 rest.t) + :: =/ rel ?: .=(relay '') ~ (some relay) + :: =/ nickname (snag 1 rest.t) + :: =/ meta=follow:sur [u.pubkey nickname rel] + :: =. follow-set (~(put in follow-set) meta) + :: =. follow-graph.state (~(put by follow-graph.state) pubkey.event follow-set) + $(tags.event t.tags.event) + ++ parse-shim-oneose + ^- (quip card _state) + =/ rs (~(get by relays.state) relay) + ?~ rs `state + =. reqs.u.rs (~(del by reqs.u.rs) sub-id) + =. relays.state (~(put by relays.state) relay u.rs) + `state + -- + +++ handle-prof-fact |= pf=prof-fact:comms + ^- (quip card _state) + =/ =user:sur [%urbit src.bowl] + ?- -.pf + %prof =. profiles.state (~(put by profiles.state) user +.pf) + :: TODO kinda wanna send it to the UI + `state + %keys `state + :: TODO really need a way to keep track of everyone's pubkeys + == +-- diff --git a/app/lib/mutations/trill.hoon b/app/lib/mutations/trill.hoon new file mode 100644 index 0000000..ea6dadf --- /dev/null +++ b/app/lib/mutations/trill.hoon @@ -0,0 +1,78 @@ +/- sur=nostrill, nsur=nostr, comms=nostrill-comms, + post=trill-post, gate=trill-gate, feed=trill-feed + +/+ appjs=json-nostrill, + lib=nostrill, + trill=trill-post, + njs=json-nostr, + postlib=trill-post, + shim, + sr=sortug + +|_ [=state:sur =bowl:gall] ++$ card card:agent:gall +++ debug-own-feed + =/ postlist (tap:orm:feed feed.state) + =/ lol + |- ?~ postlist ~ + ~& >> poast=+.i.postlist + $(postlist t.postlist) + ~ + +:: state +++ add-to-feed |= p=post:post + =. feed.state (put:orm:feed feed.state id.p p) + state + +++ handle-post |= poke=post-poke:ui:sur + ^- (quip card _state) + =/ profile (~(get by profiles.state) [%urbit our.bowl]) + =/ pubkey pub.i.keys.state + =/ p=post:post + ?- -.poke + %add + =/ sp (build-sp:trill our.bowl our.bowl content.poke ~ ~) + (build-post:trill now.bowl pubkey sp) + %quote + =/ sp (build-sp:trill our.bowl our.bowl content.poke ~ ~) + =/ quote [%ref %trill host.poke /(crip (scow:sr %ud id.poke))] + =. contents.sp (snoc contents.sp quote) + (build-post:trill now.bowl pubkey sp) + %reply + =/ sp (build-sp:trill host.poke our.bowl content.poke `id.poke `thread.poke) + (build-post:trill now.bowl pubkey sp) + %rp + =/ quote [%ref %trill host.poke /(crip (scow:sr %ud id.poke))] + =/ sp (build-sp:trill host.poke our.bowl '' ~ ~) + =. contents.sp ~[quote] + (build-post:trill now.bowl pubkey sp) + == + =/ pw [p (some pubkey) ~ ~ profile] + =/ jfact=fact:ui:sur [%post %add pw] + =/ ui-card (update-ui:cards:lib jfact) + :: only update followers when we are updating our own feed + ?. .=(our.bowl host.p) [~[ui-card] state] + =. state (add-to-feed p) + =/ =fact:comms [%post %add p] + =/ fact-card (update-followers:cards:lib fact) + :_ state + :~ ui-card + fact-card + == + + +++ handle-post-fact |= pf=post-fact:comms + ^- (quip card _state) + =/ =user:sur [%urbit src.bowl] + =/ fed (~(get by following.state) user) + ?~ fed ~& "emmm not following ya" `state + =/ nf=feed:feed + ?: ?=(%del -.pf) + =< + (del:orm:feed u.fed id.pf) + ::mmm people aren't supposed to update if its not their own feeds + :: =/ =user:nsur [%urbit host.p.pdf] + (put:orm:feed u.fed id.p.pf p.pf) + =. following.state (~(put by following.state) user nf) + :: TODO update the ui with the changes + :_ state ~ +-- diff --git a/app/lib/nostr/events.hoon b/app/lib/nostr/events.hoon new file mode 100644 index 0000000..2a3e818 --- /dev/null +++ b/app/lib/nostr/events.hoon @@ -0,0 +1,49 @@ +/- sur=nostrill, nsur=nostr, post=trill-post, gate=trill-gate +/+ js=json-nostr, sr=sortug, trill=trill-post, nostr-keys +|% +++ post-to-event |= [=keys:nsur eny=@ p=post:post] ^- event:nsur + =/ cl (latest-post-content:trill contents.p) + =/ string (crip (content-list-to-md:trill cl)) + =/ ts (to-unix-secs:jikan:sr id.p) + =/ raw=raw-event:nsur [pub.keys ts 1 ~ string] + =/ event-id (hash-event:nostr-keys raw) + =/ signature (sign-event:nostr-keys priv.keys event-id eny) + ~& hash-and-signed=[event-id signature] + =/ =event:nsur :* + event-id + pub.keys + created-at.raw + kind.raw + tags.raw + content.raw + signature + == + event + +++ event-to-post + |= [=event:nsur profile=(unit user-meta:nsur) relay=(unit @t)] + ^- post-wrapper:sur + + =/ cl (tokenize:trill content.event) + =/ ts (from-unix:jikan:sr created-at.event) + =/ cm=content-map:post (init-content-map:trill cl ts) + + :: TODO more about @ps and stuff + =/ p=post:post :* + id=ts + host=`@p`pubkey.event + author=`@p`pubkey.event + thread=ts + parent=~ + children=~ + contents=cm + read=*lock:gate + write=*lock:gate + *engagement:post + 0v0 + *signature:post + tags=~ + == + =/ meta [(some pubkey.event) (some id.event) relay profile] + [p meta] +-- diff --git a/app/lib/nostr/keys.hoon b/app/lib/nostr/keys.hoon new file mode 100644 index 0000000..90eb563 --- /dev/null +++ b/app/lib/nostr/keys.hoon @@ -0,0 +1,51 @@ +/- sur=nostr +/+ js=json-nostr, sr=sortug +|% +++ gen-sub-id |= eny=@ ^- @t + %- crip (scag 60 (scow:sr %uw eny)) +++ gen-keys |= eny=@ ^- keys:sur + =, secp256k1:secp:crypto + =/ privkey + |- + =/ k (~(rad og eny) (bex 256)) + ?. (lth k n.t) $ k + + =/ pubkey (priv-to-pub privkey) + =/ pub (compress-point pubkey) + :: =/ pub (serialize-point pubkey) + [pub=pub priv=privkey] +:: +++ hash-event |= raw=raw-event:sur ^- @ux + =/ jon (raw-event:en:js raw) + =/ jstring (en:json:html jon) + (swp 3 (shax jstring)) + +++ raws + |= [eny=@ bits=@] + ^- [@ @] + [- +>-]:(~(raws og eny) bits) + +++ sign-event |= [priv=@ux hash=@ux eny=@] + =^ sed eny (raws eny 256) + (sign:schnorr:secp256k1:secp:crypto priv hash sed) + + +:: +++ validate-pubkey |= pubkey=@ux ^- ? + =/ tap (scow:sr %ux pubkey) + .= (lent tap) 64 +:: +++ diff-filters +|= [a=filter:sur b=filter:sur] ^- filter:sur + =/ ids (unit-set-dif ids.a ids.b) + =/ authors (unit-set-dif authors.a authors.b) + =/ kinds (unit-set-dif kinds.a kinds.b) + =/ tags ~ + =/ since ~ + =/ until ~ + =/ limit ~ :: TODO + [ids authors kinds tags since until limit] +++ unit-set-dif + |* [a=(unit) b=(unit)] + %^ clap a b |* [x=(set) y=(set)] (~(dif in x) y) +-- diff --git a/app/lib/nostrill.hoon b/app/lib/nostrill.hoon new file mode 100644 index 0000000..41caff2 --- /dev/null +++ b/app/lib/nostrill.hoon @@ -0,0 +1,44 @@ +/- post=trill-post, nsur=nostr, sur=nostrill, gate=trill-gate, comms=nostrill-comms +/+ trill=trill-post, nostr-keys, sr=sortug, jsonlib=json-nostrill +|% +:: +++ default-state |= =bowl:gall ^- state:sur + =/ s *state-0:sur + =/ l public-relays:nsur + :: =/ l (scag 1 l) + :: =/ l ~['wss://relay.damus.io' 'wss://nos.lol'] + =/ rl %+ turn l |= t=@t [t *relay-stats:nsur] + :: =/ l ~[['wss://relay.damus.io' ~]] + =/ key (gen-keys:nostr-keys eny.bowl) + =/ keyl [key ~] + s(relays (malt rl), keys keyl) + +++ print-relay-stats + |= rm=(map @t relay-stats:nsur) + =/ l ~(tap by rm) + |- ?~ l ~ + =/ [url=@t rs=relay-stats:nsur] i.l + ~& relay=url + ~& connected=connected.rs + ~& sub-count=~(wyt by reqs.rs) + =/ total-received + %+ roll ~(tap by reqs.rs) + |= [[* es=event-stats:nsur] acc=@ud] + %+ add acc received.es + ~& >> total=total-received + $(l t.l) + +:: + +++ cards +|_ =bowl:gall + ++ shim-binding ^- card:agent:gall + [%pass /binding %arvo %e %connect [~ /nostr-shim] dap.bowl] + ++ update-ui |= =fact:ui:sur ^- card:agent:gall + =/ jon (fact:en:jsonlib fact) + [%give %fact ~[/ui] %json !>(jon)] + :: ++ update-followers |= =fact:comms ^- card:agent:gall + ++ update-followers |= =fact:comms ^- card:agent:gall + [%give %fact ~[/follow] %noun !>(fact)] + -- +-- diff --git a/app/lib/nostrill/comms.hoon b/app/lib/nostrill/comms.hoon new file mode 100644 index 0000000..5f9b0a9 --- /dev/null +++ b/app/lib/nostrill/comms.hoon @@ -0,0 +1,92 @@ +/- sur=nostrill, nsur=nostr, comms=nostrill-comms, feed=trill-feed +/+ js=json-nostr, sr=sortug,constants, gatelib=trill-gate, feedlib=trill-feed, jsonlib=json-nostrill +|_ [=state:sur =bowl:gall] +++ cast-poke + |= raw=* ^- poke:comms + ;; poke:comms raw +:: Req +++ handle-req |= =req:comms + ?- -.req + %feed handle-feed + %thread (handle-thread +.req) + == +++ handle-feed + =/ can (can-access:gatelib src.bowl lock.feed-perms.state bowl) + ?. can + :: TODO keep track of the requests at the feed-perms struct + =/ crd (res-poke [%ng 'not allowed']) + :_ state :~(crd) + :: + =/ lp latest-page:feedlib + =/ lp2 lp(count backlog.feed-perms.state) + =/ =fc:feed (lp2 feed.state) + =/ prof (~(get by profiles.state) [%urbit our.bowl]) + =/ crd (res-poke [%ok %feed fc prof]) + :_ state :~(crd) + +++ give-feed + |= pat=path + ~& give-feed=src.bowl + =/ can (can-access:gatelib src.bowl lock.feed-perms.state bowl) + ?. can + :: TODO keep track of the requests at the feed-perms struct + (res-fact [%ng 'not allowed'] pat) + :: + =/ lp latest-page:feedlib + =/ lp2 lp(count backlog.feed-perms.state) + =/ =fc:feed (lp2 feed.state) + =/ prof (~(get by profiles.state) [%urbit our.bowl]) + (res-fact [%ok %feed fc prof] pat) + + +++ give-ted |= [id=@ pat=path] + =/ ted (get:orm:feed feed.state id) + ?~ ted + (res-fact [%ng 'no such thread'] pat) + =/ can (can-access:gatelib src.bowl read.u.ted bowl) + ?. can + (res-fact [%ng 'not allowed'] pat) + :: + =/ fn (node-to-full:feedlib u.ted feed.state) + (res-fact [%ok %thread fn] pat) +:: +++ handle-thread |= id=@da + =/ ted (get:orm:feed feed.state id) + ?~ ted + =/ crd (res-poke [%ng 'no such thread']) + :_ state :~(crd) + =/ can (can-access:gatelib src.bowl read.u.ted bowl) + ?. can + =/ crd (res-poke [%ng 'not allowed']) + :_ state :~(crd) + :: + =/ fn (node-to-full:feedlib u.ted feed.state) + =/ crd (res-poke [%ok %thread fn]) + :_ state :~(crd) +:: res +++ handle-res |= =res:comms + `state +:: +++ res-poke |= =res:comms ^- card:agent:gall + =/ =poke:comms [%res res] + =/ cage [%noun !>(poke)] + [%pass /poke %agent [src.bowl dap.bowl] %poke cage] + +++ res-fact |= [=res:comms pat=path] ^- (list card:agent:gall) + =/ beg ?=([%beg *] pat) + =/ paths ~[pat] + ~& > giving-res-fact=pat + ?: beg :: for the thread that goes directly to the frontend + =/ jon (beg-res:en:jsonlib res) + =/ cage [%json !>(jon)] + =/ c1 [%give %fact paths cage] + =/ c2 [%give %kick paths ~] + :~(c1 c2) + :: for the follow flow + =/ cage [%noun !>([%init res])] + =/ c1 [%give %fact paths cage] + :~(c1) + + + +-- diff --git a/app/lib/nostrill/follows.hoon b/app/lib/nostrill/follows.hoon new file mode 100644 index 0000000..e4d04a6 --- /dev/null +++ b/app/lib/nostrill/follows.hoon @@ -0,0 +1,90 @@ +/- sur=nostrill, nsur=nostr, comms=nostrill-comms, feed=trill-feed +/+ lib=nostrill, js=json-nostr, shim, sr=sortug, constants, gatelib=trill-gate, feedlib=trill-feed, jsonlib=json-nostrill +|_ [=state:sur =bowl:gall] +++ handle-add |= =user:sur + ^- (quip card:agent:gall _state) + ?- -.user + %urbit =/ c (urbit-watch +.user) + :- :~(c) state + %nostr =/ shimm ~(. shim [state bowl]) + :: TODO now or on receival? + =. following.state (~(put by following.state) user *feed:feed) + =/ graph (~(get by follow-graph.state) [%urbit our.bowl]) + =/ follows ?~ graph (silt ~[user]) (~(put in u.graph) user) + =. follow-graph.state (~(put by follow-graph.state) [%urbit our.bowl] follows) + + =^ cards state (get-user-feed:shimm +.user) + [cards state] + == +++ handle-del |= =user:sur + ^- (quip card:agent:gall _state) + =. following.state (~(del by following.state) user) + =/ graph (~(get by follow-graph.state) [%urbit our.bowl]) + ?~ graph `state + =/ nset (~(del in u.graph) user) + =. follow-graph.state (~(put by follow-graph.state) [%urbit our.bowl] nset) + :_ state + =/ =fact:ui:sur [%fols %quit user] + =/ c1 (update-ui:cards:lib fact) + ?. ?=(%urbit -.user) :~(c1) + ~& >> leaving=user + =/ c2 (urbit-leave +.user) + :~(c1 c2) + +++ handle-follow-res |= =res:comms + ?- -.res + %ng :: bruh + `state + %ok + ?- -.p.res + %feed (handle-follow-ok [%urbit src.bowl] fc.+.p.res profile.+.p.res) + %thread `state + == + == +++ handle-refollow |= sip=@p + :_ state :_ ~ + :: (urbit-watch sip) + [%pass /follow %agent [sip dap.bowl] %watch /follow] + +++ handle-follow-ok |= [=user:sur =fc:feed profile=(unit user-meta:nsur)] + ^- (quip card:agent:gall _state) + =. following.state (~(put by following.state) user feed.fc) + =/ graph (~(get by follow-graph.state) [%urbit our.bowl]) + =/ follows ?~ graph (silt ~[user]) (~(put in u.graph) user) + =. follow-graph.state (~(put by follow-graph.state) [%urbit our.bowl] follows) + =. profiles.state ?~ profile profiles.state (~(put by profiles.state) user u.profile) + :_ state + =/ =fact:ui:sur [%fols %new [%urbit src.bowl] fc profile] + =/ c (update-ui:cards:lib fact) :~(c) + + +++ handle-kick-nack |= p=@p + ^- (quip card:agent:gall _state) + =. following.state (~(del by following.state) [%urbit p]) + =/ graph (~(get by follow-graph.state) [%urbit our.bowl]) + ?~ graph `state + =/ ngraph (~(del in u.graph) [%urbit p]) + =. follow-graph.state (~(put by follow-graph.state) [%urbit our.bowl] ngraph) + :_ state + =/ =fact:ui:sur [%fols %quit %urbit src.bowl] + =/ c (update-ui:cards:lib fact) :~(c) + + +++ urbit-leave |= sip=@p ^- card:agent:gall + [%pass /follow %agent [sip dap.bowl] %leave ~] + +++ urbit-watch |= sip=@p ^- card:agent:gall + [%pass /follow %agent [sip dap.bowl] %watch /follow] + +:: ++ res-fact |= =res:comms ^- (list card:agent:gall) +:: =/ paths ~[/beg/feed] +:: =/ =poke:comms [%res res] +:: ~& > giving-res-fact=res +:: =/ jon (beg-res:en:jsonlib res) +:: =/ cage [%json !>(jon)] +:: :~ +:: [%give %fact paths cage] +:: [%give %kick paths ~] +:: == + +-- diff --git a/app/lib/scri.hoon b/app/lib/scri.hoon new file mode 100644 index 0000000..e76d79a --- /dev/null +++ b/app/lib/scri.hoon @@ -0,0 +1,79 @@ +/- sur=nostrill, nsur=nostr, comms=nostrill-comms, + post=trill-post, gate=trill-gate, feed=trill-feed + +/+ appjs=json-nostrill, + lib=nostrill, + njs=json-nostr, + feedlib=trill-feed, + postlib=trill-post, + shim, + constants, + sr=sortug + +|_ [=state:sur =bowl:gall] ++$ card card:agent:gall + +++ get-poast |= [host=@p id=@] ^- (unit post:post) + =/ poast ?: .=(host our.bowl) + (get:orm:feed feed.state id) + ~ + poast + + + +++ thread |= [hs=@t ids=@t] + ^- (unit (unit cage)) :- ~ :- ~ :- %json !> + %- beg-res:en:appjs + ^- res:comms + =/ host (slaw %p hs) + ?~ host [%ng 'Host is not a @p'] + :: TODO what about non urbit stuff + =/ =user:sur [%urbit u.host] + =/ fed=(unit feed:feed) ?: .=(u.host our.bowl) `feed.state (~(get by following.state) user) + ?~ fed [%ng 'Feed not found'] + =/ id (slaw:sr %ud ids) ?~ id [%ng 'Post ID malformed'] + =/ node (get:orm:feed u.fed u.id) + ?~ node [%ng 'Post not found in feed'] + =/ fn (node-to-full:feedlib u.node u.fed) + [%ok %thread fn] + +++ sfeed |= [hs=@t s=@t e=@t c=@ n=@ r=@] + ^- (unit (unit cage)) :- ~ :- ~ :- %json !> + %- beg-res:en:appjs + ^- res:comms + =/ host (slaw %p hs) + ?~ host [%ng 'Host is not a @p'] + =/ =user:sur [%urbit u.host] + =/ fed=(unit feed:feed) ?: .=(u.host our.bowl) `feed.state (~(get by following.state) user) + ?~ fed [%ng 'Feed not found'] + =/ start=(unit @da) (timestamp:sr s) + =/ end (timestamp:sr e) + =/ cont (slaw:sr %ud c) + =/ count ?~ cont feed-page-size:constants u.cont + =/ newest !=('0' n) + :: =/ nodelist (tap:orm:feed u.fed) + :: =/ replies=? !=('0' r) + :: =/ threads %+ skim nodelist + :: |= [=id:post =post:post] ^- ? + :: ?. replies + :: ?& + :: ?= %~ parent.post + :: (lte id start) (gte id end) + :: == + :: ?& (lte id start) (gte id end) == + :: =/ thread-count (lent threads) + :: =/ result=(list [id:post post:post]) ?: newest (scag count threads) (flop (scag count (flop threads))) + :: =/ cursors=[(unit @da) (unit @da)] ?~ result [~ ~] ?~ threads [~ ~] :- + :: ?: .=((head result) (head threads)) ~ `id:(head result) + :: ?: .=((rear result) (rear threads)) ~ `id:(rear result) + :: =/ =fc:feed [(gas:orm:feed *feed:feed result) -.cursors +.cursors] + :: TODO counts and order + =/ nf (lot:orm:feed u.fed start end) + =/ hed (pry:orm:feed nf) + =/ tal (ram:orm:feed nf) + =/ ns=(unit @da) ?~ hed ~ (some key.u.hed) + =/ ne=(unit @da) ?~ tal ~ (some key.u.tal) + =/ =fc:feed [nf ns ne] + =/ profile (~(get by profiles.state) user) + [%ok %feed fc profile] +-- diff --git a/app/lib/server.hoon b/app/lib/server.hoon new file mode 100644 index 0000000..f5cf8f0 --- /dev/null +++ b/app/lib/server.hoon @@ -0,0 +1,159 @@ +=, eyre +|% ++$ request-line + $: [ext=(unit @ta) site=(list @t)] + args=(list [key=@t value=@t]) + == +:: +parse-request-line: take a cord and parse out a url +:: +++ parse-request-line + |= url=@t + ^- request-line + (fall (rush url ;~(plug apat:de-purl:html yque:de-purl:html)) [[~ ~] ~]) +:: +++ manx-to-octs + |= man=manx + ^- octs + (as-octt:mimes:html (en-xml:html man)) +:: +++ json-to-octs + |= jon=json + ^- octs + (as-octs:mimes:html (en:json:html jon)) +:: +++ app + |% + :: + :: +require-authorization: + :: redirect to the login page when unauthenticated + :: otherwise call handler on inbound request + :: + ++ require-authorization + |= $: =inbound-request:eyre + handler=$-(inbound-request:eyre simple-payload:http) + == + ^- simple-payload:http + :: + ?: authenticated.inbound-request + ~! this + ~! +:*handler + (handler inbound-request) + :: + =- [[307 ['location' -]~] ~] + %^ cat 3 + '/~/login?redirect=' + url.request.inbound-request + :: + :: +require-authorization-simple: + :: redirect to the login page when unauthenticated + :: otherwise pass through simple-paylod + :: + ++ require-authorization-simple + |= [=inbound-request:eyre =simple-payload:http] + ^- simple-payload:http + :: + ?: authenticated.inbound-request + ~! this + simple-payload + :: + =- [[307 ['location' -]~] ~] + %^ cat 3 + '/~/login?redirect=' + url.request.inbound-request + :: + ++ give-simple-payload + |= [eyre-id=@ta =simple-payload:http] + ^- (list card:agent:gall) + =/ header-cage + [%http-response-header !>(response-header.simple-payload)] + =/ data-cage + [%http-response-data !>(data.simple-payload)] + :~ [%give %fact ~[/http-response/[eyre-id]] header-cage] + [%give %fact ~[/http-response/[eyre-id]] data-cage] + [%give %kick ~[/http-response/[eyre-id]] ~] + == + -- +++ gen + |% + :: + ++ max-1-da ['cache-control' 'max-age=86400'] + ++ max-1-wk ['cache-control' 'max-age=604800'] + :: + ++ html-response + =| cache=? + |= =octs + ^- simple-payload:http + :_ `octs + [200 [['content-type' 'text/html'] ?:(cache [max-1-wk ~] ~)]] + :: + ++ css-response + =| cache=? + |= =octs + ^- simple-payload:http + :_ `octs + [200 [['content-type' 'text/css'] ?:(cache [max-1-wk ~] ~)]] + :: + ++ js-response + =| cache=? + |= =octs + ^- simple-payload:http + :_ `octs + [200 [['content-type' 'text/javascript'] ?:(cache [max-1-wk ~] ~)]] + :: + ++ png-response + =| cache=? + |= =octs + ^- simple-payload:http + :_ `octs + [200 [['content-type' 'image/png'] ?:(cache [max-1-wk ~] ~)]] + :: + ++ svg-response + =| cache=? + |= =octs + ^- simple-payload:http + :_ `octs + [200 [['content-type' 'image/svg+xml'] ?:(cache [max-1-wk ~] ~)]] + :: + ++ ico-response + |= =octs + ^- simple-payload:http + [[200 [['content-type' 'image/x-icon'] max-1-wk ~]] `octs] + :: + ++ woff2-response + =| cache=? + |= =octs + ^- simple-payload:http + [[200 [['content-type' 'font/woff2'] max-1-wk ~]] `octs] + :: + ++ json-response + =| cache=_| + |= =json + ^- simple-payload:http + :_ `(json-to-octs json) + [200 [['content-type' 'application/json'] ?:(cache [max-1-da ~] ~)]] + :: + ++ manx-response + =| cache=_| + |= man=manx + ^- simple-payload:http + :_ `(manx-to-octs man) + [200 [['content-type' 'text/html'] ?:(cache [max-1-da ~] ~)]] + :: + ++ not-found + ^- simple-payload:http + [[404 ~] ~] + :: + ++ login-redirect + |= =request:http + ^- simple-payload:http + =- [[307 ['location' -]~] ~] + %^ cat 3 + '/~/login?redirect=' + url.request + :: + ++ redirect + |= redirect=cord + ^- simple-payload:http + [[307 ['location' redirect]~] ~] + -- +-- diff --git a/app/lib/shim.hoon b/app/lib/shim.hoon new file mode 100644 index 0000000..af2d142 --- /dev/null +++ b/app/lib/shim.hoon @@ -0,0 +1,130 @@ +/- sur=nostrill, nsur=nostr +/+ js=json-nostr, sr=sortug, nostr-keys, constants +/= web /web/router +|_ [=state:sur =bowl:gall] + ++$ card card:agent:gall +++ parse-msg + |= [eyre-id=@ta req=inbound-request:eyre] + ^- (unit res:shim:nsur) + ?~ body.request.req ~ + =/ jstring q.u.body.request.req + (parse-body jstring) +++ parse-body |= jstring=@t + =/ ures (de:json:html jstring) + ?~ ures ~ + =/ ur (shim-res:de:js u.ures) + ?~ ur ~& >>> shim-msg-parsing-failed=jstring ~ + ur +:: __ +++ get-req |= fs=(list filter:nsur) + ^- [bulk-req:shim:nsur _state] + =/ rls ~(tap by relays.state) + =| urls=(list @t) + =/ sub-id (gen-sub-id:nostr-keys eny.bowl) + =/ =req:shim:nsur [%req sub-id fs] + |- ?~ rls [[urls req] state] + :: build http card + =/ [url=@t rs=relay-stats:nsur] i.rls + :: mutate relays stats + =/ es=event-stats:nsur [fs 0] + =/ nreqs (~(put by reqs.rs) sub-id es) + =/ nrs rs(reqs nreqs) + =. relays.state (~(put by relays.state) url nrs) + $(urls [url urls], rls t.rls) + +++ get-posts + ^- (quip card _state) + =/ kinds (silt ~[1]) + =/ last-week (sub now.bowl ~d7) + :: =/ since (to-unix-secs:jikan:sr last-week) + =/ =filter:nsur [~ ~ `kinds ~ `last-week ~ ~] + =^ req=bulk-req:shim:nsur state (get-req ~[filter]) + :- :~((send req)) state + +++ get-user-feed + |= pubkey=@ux + ^- (quip card _state) + =/ kinds (silt ~[1]) + :: =/ since (to-unix-secs:jikan:sr last-week) + =/ pubkeys (silt ~[pubkey]) + =/ =filter:nsur [~ `pubkeys `kinds ~ ~ ~ ~] + =^ req=bulk-req:shim:nsur state (get-req ~[filter]) + :- :~((send req)) state + +++ get-profiles + |= pubkeys=(set @ux) + ^- (quip card _state) + =/ kinds (silt ~[0]) + =/ =filter:nsur [~ `pubkeys `kinds ~ ~ ~ ~] + =^ req=bulk-req:shim:nsur state (get-req ~[filter]) + :- :~((send req)) state + +++ get-engagement + |= post-ids=(set @ux) + ^- (quip card _state) + =/ post-strings %- ~(run in post-ids) |= id=@ux (crip (scow:sr %ux id)) + =/ =filter:nsur + =/ kinds (silt ~[6 7]) + =/ tags (malt :~([%e post-strings])) + [~ ~ `kinds `tags ~ ~ ~] + =^ req state (get-req ~[filter]) + :- :~((send req)) state + +++ get-quotes + |= post-id=@ux + ^- (quip card _state) + =/ post-string (crip (scow:sr %ux post-id)) + =/ kinds (silt ~[1]) + =/ tags (malt :~([%q (silt ~[post-string])])) + =/ =filter:nsur [~ ~ `kinds `tags ~ ~ ~] + =^ req state (get-req ~[filter]) + :- :~((send req)) state + + +++ send + |= req=bulk-req:shim:nsur ^- card:agent:gall + =/ req-body (bulk-req:en:js req) + :: ~& shim-req-json=(en:json:html req-body) + =/ host .^(hart:eyre %e /(scot %p our.bowl)/host/(scot %da now.bowl)) + =/ origin %- crip (head:en-purl:html host) + =/ headers :~ + [key='content-type' value='application/json'] + [key='origin' value=origin] + == + =/ =request:http [%'POST' url:shim:nsur headers `(json-body:web req-body)] + =/ pat /shim + [%pass (weld /ws pat) %arvo %k %fard dap.bowl %fetch %noun !>(request)] + +++ send-http + |= req=http-req:shim:nsur + ^- card:agent:gall + =/ req-body (http-req:en:js req) + :: ~& shim-req-json=(en:json:html req-body) + =/ host .^(hart:eyre %e /(scot %p our.bowl)/host/(scot %da now.bowl)) + =/ origin %- crip (head:en-purl:html host) + =/ headers :~ + [key='content-type' value='application/json'] + [key='origin' value=origin] + == + =/ =request:http [%'POST' url:shim:nsur headers `(json-body:web req-body)] + [%pass /http/[sub-id.req] %arvo %k %fard dap.bowl %fetch %noun !>(request)] +:: +:: HTTP +:: + +++ get-profiles-http + |= pubkeys=(set @ux) + ^- (quip card _state) + =/ relays ~(key by relays.state) + :: TODO make a function to use most reliable + =/ relay (head ~(tap in relays)) + ~& http=relay + =/ sub-id (gen-sub-id:nostr-keys eny.bowl) + =/ kinds (silt ~[0]) + =/ total=filter:nsur [~ `pubkeys `kinds ~ ~ ~ ~] + =/ req=http-req:shim:nsur [relay http-delay:constants sub-id ~[total]] + =/ =card (send-http req) + :- :~(card) state + +-- diff --git a/app/lib/sortug.hoon b/app/lib/sortug.hoon new file mode 100644 index 0000000..70aa3b8 --- /dev/null +++ b/app/lib/sortug.hoon @@ -0,0 +1,153 @@ +:: Painstakingly built utility functions by Sortug Development Ltd. +:: There's more where it came from +|% +++ jikan +|% +++ from-unix |= ts=@ ^- @da + (from-unix:chrono:userlib ts) +++ to-unix-ms |= da=@da ^- @ud + (unm:chrono:userlib da) +++ to-unix-secs |= da=@da ^- @ud + (unt:chrono:userlib da) +-- +++ b64 (bass 64 (plus siw:ab)) +++ b16 (bass 16 (plus six:ab)) +++ scow +=| min-chars=@ud +|= [mod=@tas a=@] ^- tape + ?+ mod "" + %s (signed-scow a) + %ud (a-co:co a) + %ux ((x-co:co min-chars) a) + %uv ((v-co:co min-chars) a) + %uw ((w-co:co min-chars) a) + == +++ signed-scow |= a=@s ^- tape + =/ old (old:si a) + =/ num (scow %ud +.old) + =/ sign=tape ?: -.old "" "-" + "{sign}{num}" +++ slaw + |= [mod=@tas txt=@t] ^- (unit @) + ?+ mod ~ + %ud (rush txt dem) + %ux (rush txt b16) + %uv (rush txt vum:ag) + %uw (rush txt b64) + == +:: secs +++ timestamp |= s=@t ^- (unit @da) + =/ un (slaw %ud s) ?~ un ~ + =/ secs (from-unix:jikan u.un) + (some secs) + + +++ csplit |* =rule + (more rule (cook crip (star ;~(less rule next)))) +:: List utils +++ foldi + |* [a=(list) b=* c=_|=(^ +<+)] + =| i=@ud + |- ^+ b + ?~ a b + =/ nb (c i i.a b) + $(a t.a, b nb, i +(i)) +++ parsing + |% + ++ link auri:de-purl:html + ++ para + |% + ++ eof ;~(less next (easy ~)) + ++ white (mask "\09 ") + ++ blank ;~(plug (star white) (just '\0a')) + ++ hard-wrap (cold ' ' ;~(plug blank (star white))) + ++ one-space (cold ' ' (plus white)) + ++ empty + ;~ pose + ;~(plug blank (plus blank)) + ;~(plug (star white) eof) + ;~(plug blank (star white) eof) + == + ++ para + %+ ifix + [(star white) empty] + %- plus + ;~ less + empty + next + == + -- + ++ trim para:para :: from whom/lib/docu + ++ youtube + ;~ pfix + ;~ plug + (jest 'https://') + ;~ pose + (jest 'www.youtube.com/watch?v=') + (jest 'youtube.com/watch?v=') + (jest 'youtu.be/') + == + == + ;~ sfix + (star aln) + (star next) + == + == + ++ twatter + ;~ pfix + ;~ plug + (jest 'https://') + ;~ pose + (jest 'x.com/') + (jest 'twitter.com/') + == + (star ;~(less fas next)) + (jest '/status/') + == + ;~ sfix + (star nud) + (star next) + == + == + ++ img-set + %- silt + :~ ~.webp + ~.png + ~.jpeg + ~.jpg + ~.svg + == + ++ is-img + |= t=@ta + (~(has in img-set) t) + ++ is-image + |= url=@t ^- ? + =/ u=(unit purl:eyre) (de-purl:html url) + ?~ u .n + =/ ext p.q.u.u + ?~ ext .n + (~(has in img-set) u.ext) + -- +++ string +|% +++ replace + |= [bit=tape bot=tape =tape] + ^- ^tape + |- + =/ off (find bit tape) + ?~ off tape + =/ clr (oust [(need off) (lent bit)] tape) + $(tape :(weld (scag (need off) clr) bot (slag (need off) clr))) + :: +++ split + |= [str=tape delim=tape] + ^- (list tape) + (split-rule str (jest (crip delim))) + ++ split-rule + |* [str=tape delim=rule] + ^- (list tape) + %+ fall + (rust str (more delim (star ;~(less delim next)))) + [str ~] +-- +-- diff --git a/app/lib/strand.hoon b/app/lib/strand.hoon new file mode 100644 index 0000000..b0db35b --- /dev/null +++ b/app/lib/strand.hoon @@ -0,0 +1 @@ +rand diff --git a/app/lib/strandio.hoon b/app/lib/strandio.hoon new file mode 100644 index 0000000..48f6e0d --- /dev/null +++ b/app/lib/strandio.hoon @@ -0,0 +1,965 @@ +/- spider +/+ libstrand=strand +=, strand=strand:libstrand +=, strand-fail=strand-fail:libstrand +|% +++ send-raw-cards + |= cards=(list =card:agent:gall) + =/ m (strand ,~) + ^- form:m + |= strand-input:strand + [cards %done ~] +:: +++ send-raw-card + |= =card:agent:gall + =/ m (strand ,~) + ^- form:m + (send-raw-cards card ~) +:: +++ ignore + |= tin=strand-input:strand + `[%fail %ignore ~] +:: +++ get-bowl + =/ m (strand ,bowl:strand) + ^- form:m + |= tin=strand-input:strand + `[%done bowl.tin] +:: +++ get-beak + =/ m (strand ,beak) + ^- form:m + |= tin=strand-input:strand + `[%done [our q.byk da+now]:bowl.tin] +:: +++ get-time + =/ m (strand ,@da) + ^- form:m + |= tin=strand-input:strand + `[%done now.bowl.tin] +:: +++ get-our + =/ m (strand ,ship) + ^- form:m + |= tin=strand-input:strand + `[%done our.bowl.tin] +:: +++ get-entropy + =/ m (strand ,@uvJ) + ^- form:m + |= tin=strand-input:strand + `[%done eny.bowl.tin] +:: +:: Convert skips to %ignore failures. +:: +:: This tells the main loop to try the next handler. +:: +++ handle + |* a=mold + =/ m (strand ,a) + |= =form:m + ^- form:m + |= tin=strand-input:strand + =/ res (form tin) + =? next.res ?=(%skip -.next.res) + [%fail %ignore ~] + res +:: +:: Wait for a poke with a particular mark +:: +++ take-poke + |= =mark + =/ m (strand ,vase) + ^- form:m + |= tin=strand-input:strand + ?+ in.tin `[%skip ~] + ~ + `[%wait ~] + :: + [~ %poke @ *] + ?. =(mark p.cage.u.in.tin) + `[%skip ~] + `[%done q.cage.u.in.tin] + == +:: +++ take-sign-arvo + =/ m (strand ,[wire sign-arvo]) + ^- form:m + |= tin=strand-input:strand + ?+ in.tin `[%skip ~] + ~ + `[%wait ~] + :: + [~ %sign *] + `[%done [wire sign-arvo]:u.in.tin] + == +:: +:: Wait for a subscription update on a wire +:: +++ take-fact-prefix + |= =wire + =/ m (strand ,[path cage]) + ^- form:m + |= tin=strand-input:strand + ?+ in.tin `[%skip ~] + ~ `[%wait ~] + [~ %agent * %fact *] + ?. =(watch+wire (scag +((lent wire)) wire.u.in.tin)) + `[%skip ~] + `[%done (slag (lent wire) wire.u.in.tin) cage.sign.u.in.tin] + == +:: +:: Wait for a subscription update on a wire +:: +++ take-fact + |= =wire + =/ m (strand ,cage) + ^- form:m + |= tin=strand-input:strand + ?+ in.tin `[%skip ~] + ~ `[%wait ~] + [~ %agent * %fact *] + ?. =(watch+wire wire.u.in.tin) + `[%skip ~] + `[%done cage.sign.u.in.tin] + == +:: +:: Wait for a subscription close +:: +++ take-kick + |= =wire + =/ m (strand ,~) + ^- form:m + |= tin=strand-input:strand + ?+ in.tin `[%skip ~] + ~ `[%wait ~] + [~ %agent * %kick *] + ?. =(watch+wire wire.u.in.tin) + `[%skip ~] + `[%done ~] + == +:: +++ echo + =/ m (strand ,~) + ^- form:m + %- (main-loop ,~) + :~ |= ~ + ^- form:m + ;< =vase bind:m ((handle ,vase) (take-poke %echo)) + =/ message=tape !<(tape vase) + %- (slog leaf+"{message}..." ~) + ;< ~ bind:m (sleep ~s2) + %- (slog leaf+"{message}.." ~) + (pure:m ~) + :: + |= ~ + ^- form:m + ;< =vase bind:m ((handle ,vase) (take-poke %over)) + %- (slog leaf+"over..." ~) + (pure:m ~) + == +:: +++ take-watch + =/ m (strand ,path) + |= tin=strand-input:strand + ?+ in.tin `[%skip ~] + ~ `[%wait ~] + [~ %watch *] + `[%done path.u.in.tin] + == +:: +++ take-wake + |= until=(unit @da) + =/ m (strand ,~) + ^- form:m + |= tin=strand-input:strand + ?+ in.tin `[%skip ~] + ~ `[%wait ~] + [~ %sign [%wait @ ~] %behn %wake *] + ?. |(?=(~ until) =(`u.until (slaw %da i.t.wire.u.in.tin))) + `[%skip ~] + ?~ error.sign-arvo.u.in.tin + `[%done ~] + `[%fail %timer-error u.error.sign-arvo.u.in.tin] + == +:: +++ take-tune + |= =wire + =/ m (strand ,[spar:ames (unit roar:ames)]) + ^- form:m + |= tin=strand-input:strand + ?+ in.tin `[%skip ~] + ~ `[%wait ~] + :: + [~ %sign * %ames %tune ^ *] + ?. =(wire wire.u.in.tin) + `[%skip ~] + `[%done +>.sign-arvo.u.in.tin] + == +:: +++ take-whey + |= =wire + =/ m (strand ,[spar:ames fragment-size=@ud num-fragments=@ud]) + ^- form:m + |= tin=strand-input:strand + ?+ in.tin `[%skip ~] + ~ `[%wait ~] + :: + [~ %sign * %ames %sage sage=*] + ?. =(wire wire.u.in.tin) + `[%skip ~] + =/ =sage:mess:ames sage.sign-arvo.u.in.tin + :^ ~ %done spar=p.sage + ?~ q.sage + [boq=13 tot=0] + =< [boq tot] + ;;([%whey boq=@ud tot=@ud] q.sage) + == +:: +++ take-sage + |= =wire + =/ m (strand ,sage:mess:ames) + ^- form:m + |= tin=strand-input:strand + ?+ in.tin `[%skip ~] + ~ `[%wait ~] + :: + [~ %sign * %ames %sage sage=*] + ?. =(wire wire.u.in.tin) + `[%skip ~] + `[%done sage.sign-arvo.u.in.tin] + == +:: +++ take-message + => |% +$ out $% [%sage sage:mess:ames] + [%tune spar:ames (unit roar:ames)] + [%page spar:ames (unit (unit page))] + == + -- + |= =wire + =/ m (strand ,out) + ^- form:m + |= tin=strand-input:strand + ?+ in.tin `[%skip ~] + ~ `[%wait ~] + :: + [~ %sign * %ames %sage sage=*] + ?. =(wire wire.u.in.tin) + `[%skip ~] + `[%done %sage sage.sign-arvo.u.in.tin] + :: + [~ %sign * %ames %tune ^ *] + ?. =(wire wire.u.in.tin) + `[%skip ~] + `[%done %tune +>.sign-arvo.u.in.tin] + :: + [~ %sign * %ames %near ^ *] + ?. =(wire wire.u.in.tin) + `[%skip ~] + `[%done %page +>.sign-arvo.u.in.tin] + == +:: +++ take-near + |= =wire + =/ m (strand ,[spar:ames (unit (unit page))]) + ^- form:m + |= tin=strand-input:strand + ?+ in.tin `[%skip ~] + ~ `[%wait ~] + :: + [~ %sign * %ames %near ^ *] + ?. =(wire wire.u.in.tin) + `[%skip ~] + `[%done +>.sign-arvo.u.in.tin] + == +:: +++ take-poke-ack + |= =wire + =/ m (strand ,~) + ^- form:m + |= tin=strand-input:strand + ?+ in.tin `[%skip ~] + ~ `[%wait ~] + [~ %agent * %poke-ack *] + ?. =(wire wire.u.in.tin) + `[%skip ~] + ?~ p.sign.u.in.tin + `[%done ~] + `[%fail %poke-fail u.p.sign.u.in.tin] + == +:: +++ take-watch-ack + |= =wire + =/ m (strand ,~) + ^- form:m + |= tin=strand-input:strand + ?+ in.tin `[%skip ~] + ~ `[%wait ~] + [~ %agent * %watch-ack *] + ?. =(watch+wire wire.u.in.tin) + `[%skip ~] + ?~ p.sign.u.in.tin + `[%done ~] + `[%fail %watch-ack-fail u.p.sign.u.in.tin] + == +:: +++ poke + |= [=dock =cage] + =/ m (strand ,~) + ^- form:m + =/ =card:agent:gall [%pass /poke %agent dock %poke cage] + ;< ~ bind:m (send-raw-card card) + (take-poke-ack /poke) +:: +++ raw-poke + |= [=dock =cage] + =/ m (strand ,~) + ^- form:m + =/ =card:agent:gall [%pass /poke %agent dock %poke cage] + ;< ~ bind:m (send-raw-card card) + =/ m (strand ,~) + ^- form:m + |= tin=strand-input:strand + ?+ in.tin `[%skip ~] + ~ + `[%wait ~] + :: + [~ %agent * %poke-ack *] + ?. =(/poke wire.u.in.tin) + `[%skip ~] + `[%done ~] + == +:: +++ raw-poke-our + |= [app=term =cage] + =/ m (strand ,~) + ^- form:m + ;< =bowl:spider bind:m get-bowl + (raw-poke [our.bowl app] cage) +:: +++ poke-our + |= [=term =cage] + =/ m (strand ,~) + ^- form:m + ;< our=@p bind:m get-our + (poke [our term] cage) +:: +++ watch + |= [=wire =dock =path] + =/ m (strand ,~) + ^- form:m + =/ =card:agent:gall [%pass watch+wire %agent dock %watch path] + ;< ~ bind:m (send-raw-card card) + (take-watch-ack wire) +:: +++ watch-one + |= [=wire =dock =path] + =/ m (strand ,cage) + ^- form:m + ;< ~ bind:m (watch wire dock path) + ;< =cage bind:m (take-fact wire) + ;< ~ bind:m (take-kick wire) + (pure:m cage) +:: +++ watch-our + |= [=wire =term =path] + =/ m (strand ,~) + ^- form:m + ;< our=@p bind:m get-our + (watch wire [our term] path) +:: +++ scry + |* [=mold =path] + =/ m (strand ,mold) + ^- form:m + ?> ?=(^ path) + ?> ?=(^ t.path) + ;< =bowl:spider bind:m get-bowl + %- pure:m + .^(mold i.path (scot %p our.bowl) i.t.path (scot %da now.bowl) t.t.path) +:: +++ leave + |= [=wire =dock] + =/ m (strand ,~) + ^- form:m + =/ =card:agent:gall [%pass watch+wire %agent dock %leave ~] + (send-raw-card card) +:: +++ leave-our + |= [=wire =term] + =/ m (strand ,~) + ^- form:m + ;< our=@p bind:m get-our + (leave wire [our term]) +:: +++ rewatch + |= [=wire =dock =path] + =/ m (strand ,~) + ;< ~ bind:m ((handle ,~) (take-kick wire)) + ;< ~ bind:m (flog-text "rewatching {} {}") + ;< ~ bind:m (watch wire dock path) + (pure:m ~) +:: +++ wait + |= until=@da + =/ m (strand ,~) + ^- form:m + ;< ~ bind:m (send-wait until) + (take-wake `until) +:: +++ mass + =/ m (strand ,(list quac:dill)) + ^- form:m + =/ =card:agent:gall [%pass /mass %arvo %d %mass ~] + ;< ~ bind:m (send-raw-card card) + ;< quz=(list quac:dill) bind:m take-meme + (pure:m quz) +:: +++ take-meme + =/ m (strand ,(list quac:dill)) + ^- form:m + |= tin=strand-input:strand + ?+ in.tin `[%skip ~] + ~ `[%wait ~] + [~ %sign [%mass ~] %dill %meme *] + `[%done p.sign-arvo.u.in.tin] + == +:: +++ keen + |= [=wire =spar:ames sec=(unit [@ @])] + =/ m (strand ,~) + ^- form:m + (send-raw-card %pass wire %arvo %a %keen sec spar) +:: +++ chum + |= [=wire =spar:ames] + =/ m (strand ,~) + ^- form:m + (send-raw-card %pass wire %arvo %a %chum spar) +:: +++ keen-shut + |= [=wire =spar:ames] + =/ m (strand ,~) + ^- form:m + (send-raw-card %pass wire %keen & spar) +:: +++ yawn + |= [=wire =spar:ames] + =/ m (strand ,~) + ^- form:m + (send-raw-card %pass wire %arvo %a %yawn spar) +:: +++ whey + |= [=wire boq=@ud =spar:ames] + =/ m (strand ,~) + ^- form:m + :: encrypted using %chum namespace + :: + ;< our=@p bind:m get-our + =. path.spar + [%a %x '1' %$ %whey (scot %ud boq) (scot %p our) path.spar] + (chum wire spar) +:: +++ meta + |= [=wire =spar:ames] + =/ m (strand ,~) + ^- form:m + ?+ path.spar !! + $% [%ames bone=@ ?(%clos %cork %next %last %curr) ~] + [%flow bone=@ =dire:ames ~] + [%flow bone=@ =dire:ames ?(%clos %cork %line %lods %next %last) ~] + :: XX rewrite in terms of %whey namespace + :: + [%flow bone=@ =dire:ames %whey boq=@ ~] + [%flow bone=@ =dire:ames seq=@ %naxp ~] + == + :: encrypted using %chum namespace + :: + ;< our=@p bind:m get-our + %- send-raw-card + :* %pass wire %arvo %a %chum + spar(path [%a %x '1' %$ %meta (scot %p our) path.spar]) + == + == +:: +++ sleep + |= for=@dr + =/ m (strand ,~) + ^- form:m + ;< now=@da bind:m get-time + (wait (add now for)) +:: +++ send-wait + |= until=@da + =/ m (strand ,~) + ^- form:m + =/ =card:agent:gall + [%pass /wait/(scot %da until) %arvo %b %wait until] + (send-raw-card card) +:: +++ map-err + |* computation-result=mold + =/ m (strand ,computation-result) + |= [f=$-([term tang] [term tang]) computation=form:m] + ^- form:m + |= tin=strand-input:strand + =* loop $ + =/ c-res (computation tin) + ?: ?=(%cont -.next.c-res) + c-res(self.next ..loop(computation self.next.c-res)) + ?. ?=(%fail -.next.c-res) + c-res + c-res(err.next (f err.next.c-res)) +:: +++ set-timeout + |* computation-result=mold + =/ m (strand ,computation-result) + |= [time=@dr computation=form:m] + ^- form:m + ;< now=@da bind:m get-time + =/ when (add now time) + =/ =card:agent:gall + [%pass /timeout/(scot %da when) %arvo %b %wait when] + ;< ~ bind:m (send-raw-card card) + |= tin=strand-input:strand + =* loop $ + ?: ?& ?=([~ %sign [%timeout @ ~] %behn %wake *] in.tin) + =((scot %da when) i.t.wire.u.in.tin) + == + `[%fail %timeout ~] + =/ c-res (computation tin) + ?: ?=(%cont -.next.c-res) + c-res(self.next ..loop(computation self.next.c-res)) + ?: ?=(%done -.next.c-res) + =/ =card:agent:gall + [%pass /timeout/(scot %da when) %arvo %b %rest when] + c-res(cards [card cards.c-res]) + c-res +:: +++ send-request + |= =request:http + =/ m (strand ,~) + ^- form:m + (send-raw-card %pass /request %arvo %i %request request *outbound-config:iris) +:: +++ send-cancel-request + =/ m (strand ,~) + ^- form:m + (send-raw-card %pass /request %arvo %i %cancel-request ~) +:: +++ take-client-response + =/ m (strand ,client-response:iris) + ^- form:m + |= tin=strand-input:strand + ?+ in.tin `[%skip ~] + ~ `[%wait ~] + :: + [~ %sign [%request ~] %iris %http-response %cancel *] + ::NOTE iris does not (yet?) retry after cancel, so it means failure + :- ~ + :+ %fail + %http-request-cancelled + ['http request was cancelled by the runtime']~ + :: + [~ %sign [%request ~] %iris %http-response %finished *] + `[%done client-response.sign-arvo.u.in.tin] + == +:: +:: Wait until we get an HTTP response or cancelation and unset contract +:: +++ take-maybe-sigh + =/ m (strand ,(unit httr:eyre)) + ^- form:m + ;< rep=(unit client-response:iris) bind:m + take-maybe-response + ?~ rep + (pure:m ~) + :: XX s/b impossible + :: + ?. ?=(%finished -.u.rep) + (pure:m ~) + (pure:m (some (to-httr:iris +.u.rep))) +:: +++ take-maybe-response + =/ m (strand ,(unit client-response:iris)) + ^- form:m + |= tin=strand-input:strand + ?+ in.tin `[%skip ~] + ~ `[%wait ~] + [~ %sign [%request ~] %iris %http-response %cancel *] + `[%done ~] + [~ %sign [%request ~] %iris %http-response %finished *] + `[%done `client-response.sign-arvo.u.in.tin] + == +:: +++ extract-body + |= =client-response:iris + =/ m (strand ,cord) + ^- form:m + ?> ?=(%finished -.client-response) + %- pure:m + ?~ full-file.client-response '' + q.data.u.full-file.client-response +:: +++ fetch-cord + |= url=tape + =/ m (strand ,cord) + ^- form:m + =/ =request:http [%'GET' (crip url) ~ ~] + ;< ~ bind:m (send-request request) + ;< =client-response:iris bind:m take-client-response + (extract-body client-response) +:: +++ fetch-json + |= url=tape + =/ m (strand ,json) + ^- form:m + ;< =cord bind:m (fetch-cord url) + =/ json=(unit json) (de:json:html cord) + ?~ json + (strand-fail %json-parse-error ~) + (pure:m u.json) +:: +++ hiss-request + |= =hiss:eyre + =/ m (strand ,(unit httr:eyre)) + ^- form:m + ;< ~ bind:m (send-request (hiss-to-request:html hiss)) + take-maybe-sigh +:: +:: +build-file: build the source file at the specified $beam +:: +++ build-file + |= [[=ship =desk =case] =spur] + =* arg +< + =/ m (strand ,(unit vase)) + ^- form:m + ;< =riot:clay bind:m + (warp ship desk ~ %sing %a case spur) + ?~ riot + (pure:m ~) + ?> =(%vase p.r.u.riot) + (pure:m (some !<(vase q.r.u.riot))) +:: +++ build-file-hard + |= [[=ship =desk =case] =spur] + =* arg +< + =/ m (strand ,vase) + ^- form:m + ;< =riot:clay + bind:m + (warp ship desk ~ %sing %a case spur) + ?> ?=(^ riot) + ?> ?=(%vase p.r.u.riot) + (pure:m !<(vase q.r.u.riot)) +:: +build-mark: build a mark definition to a $dais +:: +++ build-mark + |= [[=ship =desk =case] mak=mark] + =* arg +< + =/ m (strand ,dais:clay) + ^- form:m + ;< =riot:clay bind:m + (warp ship desk ~ %sing %b case /[mak]) + ?~ riot + (strand-fail %build-mark >arg< ~) + ?> =(%dais p.r.u.riot) + (pure:m !<(dais:clay q.r.u.riot)) +:: +build-tube: build a mark conversion gate ($tube) +:: +++ build-tube + |= [[=ship =desk =case] =mars:clay] + =* arg +< + =/ m (strand ,tube:clay) + ^- form:m + ;< =riot:clay bind:m + (warp ship desk ~ %sing %c case /[a.mars]/[b.mars]) + ?~ riot + (strand-fail %build-tube >arg< ~) + ?> =(%tube p.r.u.riot) + (pure:m !<(tube:clay q.r.u.riot)) +:: +:: +build-nave: build a mark definition to a $nave +:: +++ build-nave + |= [[=ship =desk =case] mak=mark] + =* arg +< + =/ m (strand ,vase) + ^- form:m + ;< =riot:clay bind:m + (warp ship desk ~ %sing %e case /[mak]) + ?~ riot + (strand-fail %build-nave >arg< ~) + ?> =(%nave p.r.u.riot) + (pure:m q.r.u.riot) +:: +build-cast: build a mark conversion gate (static) +:: +++ build-cast + |= [[=ship =desk =case] =mars:clay] + =* arg +< + =/ m (strand ,vase) + ^- form:m + ;< =riot:clay bind:m + (warp ship desk ~ %sing %f case /[a.mars]/[b.mars]) + ?~ riot + (strand-fail %build-cast >arg< ~) + ?> =(%cast p.r.u.riot) + (pure:m q.r.u.riot) +:: +:: Read from Clay +:: +++ warp + |= [=ship =riff:clay] + =/ m (strand ,riot:clay) + ;< ~ bind:m (send-raw-card %pass /warp %arvo %c %warp ship riff) + (take-writ /warp) +:: +++ read-file + |= [[=ship =desk =case] =spur] + =* arg +< + =/ m (strand ,cage) + ;< =riot:clay bind:m (warp ship desk ~ %sing %x case spur) + ?~ riot + (strand-fail %read-file >arg< ~) + (pure:m r.u.riot) +:: +++ check-for-file + |= [[=ship =desk =case] =spur] + =/ m (strand ,?) + ;< =riot:clay bind:m (warp ship desk ~ %sing %u case spur) + ?> ?=(^ riot) + (pure:m !<(? q.r.u.riot)) +:: +++ list-tree + |= [[=ship =desk =case] =spur] + =* arg +< + =/ m (strand ,(list path)) + ;< =riot:clay bind:m (warp ship desk ~ %sing %t case spur) + ?~ riot + (strand-fail %list-tree >arg< ~) + (pure:m !<((list path) q.r.u.riot)) +:: +++ list-desk + |= [[=ship =desk =case] =spur] + =* arg +< + =/ m (strand arch) + ;< =riot:clay bind:m (warp ship desk ~ %sing %y case spur) + ?~ riot + (strand-fail %list-desk >arg< ~) + (pure:m !<(arch q.r.u.riot)) +:: Take Clay read result +:: +++ take-writ + |= =wire + =/ m (strand ,riot:clay) + ^- form:m + |= tin=strand-input:strand + ?+ in.tin `[%skip ~] + ~ `[%wait ~] + [~ %sign * ?(%behn %clay) %writ *] + ?. =(wire wire.u.in.tin) + `[%skip ~] + `[%done +>.sign-arvo.u.in.tin] + == +:: +check-online: require that peer respond before timeout +:: +++ check-online + |= [who=ship lag=@dr] + =/ m (strand ,~) + ^- form:m + %+ (map-err ,~) |=(* [%offline *tang]) + %+ (set-timeout ,~) lag + ;< ~ bind:m + (poke [who %hood] %helm-hi !>(~)) + (pure:m ~) +:: +++ eval-hoon + |= [gen=hoon bez=(list beam)] + =/ m (strand ,vase) + ^- form:m + =/ sut=vase !>(..zuse) + |- + ?~ bez + (pure:m (slap sut gen)) + ;< vax=vase bind:m (build-file-hard i.bez) + $(bez t.bez, sut (slop vax sut)) +:: +++ send-thread + |= [=bear:khan =shed:khan =wire] + =/ m (strand ,~) + ^- form:m + (send-raw-card %pass wire %arvo %k %lard bear shed) +:: +:: Queue on skip, try next on fail %ignore +:: +++ main-loop + |* a=mold + =/ m (strand ,~) + =/ m-a (strand ,a) + =| queue=(qeu (unit input:strand)) + =| active=(unit [in=(unit input:strand) =form:m-a forms=(list $-(a form:m-a))]) + =| state=a + |= forms=(lest $-(a form:m-a)) + ^- form:m + |= tin=strand-input:strand + =* top `form:m`..$ + =. queue (~(put to queue) in.tin) + |^ (continue bowl.tin) + :: + ++ continue + |= =bowl:strand + ^- output:m + ?> =(~ active) + ?: =(~ queue) + `[%cont top] + =^ in=(unit input:strand) queue ~(get to queue) + ^- output:m + =. active `[in (i.forms state) t.forms] + ^- output:m + (run bowl in) + :: + ++ run + ^- form:m + |= tin=strand-input:strand + ^- output:m + ?> ?=(^ active) + =/ res (form.u.active tin) + =/ =output:m + ?- -.next.res + %wait `[%wait ~] + %skip `[%cont ..$(queue (~(put to queue) in.tin))] + %cont `[%cont ..$(active `[in.u.active self.next.res forms.u.active])] + %done (continue(active ~, state value.next.res) bowl.tin) + %fail + ?: &(?=(^ forms.u.active) ?=(%ignore p.err.next.res)) + %= $ + active `[in.u.active (i.forms.u.active state) t.forms.u.active] + in.tin in.u.active + == + `[%fail err.next.res] + == + [(weld cards.res cards.output) next.output] + -- +:: +++ retry + |* result=mold + |= [crash-after=(unit @ud) computation=_*form:(strand (unit result))] + =/ m (strand ,result) + =| try=@ud + |- ^- form:m + =* loop $ + ?: =(crash-after `try) + (strand-fail %retry-too-many ~) + ;< ~ bind:m (backoff try ~m1) + ;< res=(unit result) bind:m computation + ?^ res + (pure:m u.res) + loop(try +(try)) +:: +++ backoff + |= [try=@ud limit=@dr] + =/ m (strand ,~) + ^- form:m + ;< eny=@uvJ bind:m get-entropy + %- sleep + %+ min limit + ?: =(0 try) ~s0 + %+ add + (mul ~s1 (bex (dec try))) + (mul ~s0..0001 (~(rad og eny) 1.000)) +:: +:: ---- +:: +:: Output +:: +++ flog + |= =flog:dill + =/ m (strand ,~) + ^- form:m + (send-raw-card %pass / %arvo %d %flog flog) +:: +++ flog-text + |= =tape + =/ m (strand ,~) + ^- form:m + (flog %text tape) +:: +++ flog-tang + |= =tang + =/ m (strand ,~) + ^- form:m + =/ =wall + (zing (turn (flop tang) (cury wash [0 80]))) + |- ^- form:m + =* loop $ + ?~ wall + (pure:m ~) + ;< ~ bind:m (flog-text i.wall) + loop(wall t.wall) +:: +++ trace + |= =tang + =/ m (strand ,~) + ^- form:m + (pure:m ((slog tang) ~)) +:: +++ app-message + |= [app=term =cord =tang] + =/ m (strand ,~) + ^- form:m + =/ msg=tape :(weld (trip app) ": " (trip cord)) + ;< ~ bind:m (flog-text msg) + (flog-tang tang) +:: +:: ---- +:: +:: Handle domains +:: +++ install-domain + |= =turf + =/ m (strand ,~) + ^- form:m + (send-raw-card %pass / %arvo %e %rule %turf %put turf) +:: +:: ---- +:: +:: Threads +:: +++ start-thread + |= file=term + =/ m (strand ,tid:spider) + ;< =bowl:spider bind:m get-bowl + (start-thread-with-args byk.bowl file *vase) +:: +++ start-thread-with-args + |= [=beak file=term args=vase] + =/ m (strand ,tid:spider) + ^- form:m + ;< =bowl:spider bind:m get-bowl + =/ tid + (scot %ta (cat 3 (cat 3 'strand_' file) (scot %uv (sham file eny.bowl)))) + =/ poke-vase !>(`start-args:spider`[`tid.bowl `tid beak file args]) + ;< ~ bind:m (poke-our %spider %spider-start poke-vase) + ;< ~ bind:m (sleep ~s0) :: wait for thread to start + (pure:m tid) +:: ++$ thread-result + (each vase [term tang]) +:: +++ await-thread + |= [file=term args=vase] + =/ m (strand ,thread-result) + ^- form:m + ;< =bowl:spider bind:m get-bowl + =/ tid (scot %ta (cat 3 'strand_' (scot %uv (sham file eny.bowl)))) + =/ poke-vase !>(`start-args:spider`[`tid.bowl `tid byk.bowl file args]) + ;< ~ bind:m (watch-our /awaiting/[tid] %spider /thread-result/[tid]) + ;< ~ bind:m (poke-our %spider %spider-start poke-vase) + ;< ~ bind:m (sleep ~s0) :: wait for thread to start + ;< =cage bind:m (take-fact /awaiting/[tid]) + ;< ~ bind:m (take-kick /awaiting/[tid]) + ?+ p.cage ~|([%strange-thread-result p.cage file tid] !!) + %thread-done (pure:m %& q.cage) + %thread-fail (pure:m %| !<([term tang] q.cage)) + == +-- diff --git a/app/lib/trill/feed.hoon b/app/lib/trill/feed.hoon new file mode 100644 index 0000000..721a596 --- /dev/null +++ b/app/lib/trill/feed.hoon @@ -0,0 +1,70 @@ +/- feed=trill-feed, post=trill-post, sur=nostrill +/+ sr=sortug, constants +|% +++ latest-page +=/ count feed-page-size:constants +|= f=feed:feed ^- fc:feed + =/ nodelist (tap:orm:feed f) + =/ subset (scag count nodelist) + ?~ subset [f ~ ~] + =/ start `-.i.subset + =/ rev (flop subset) + ?~ rev [f ~ ~] + =/ end `-.i.rev + =/ nf (gas:orm:feed *feed:feed subset) + [nf start end] +:: +++ latest-page-nostr |= f=nostr-feed:sur ^- nfc:sur + =/ nodelist (tap:norm:sur f) + =/ subset (scag feed-page-size:constants nodelist) + ?~ subset [f ~ ~] + =/ start (some `@da`-.i.subset) + =/ rev (flop subset) + ?~ rev [f ~ ~] + =/ end (some `@da`-.i.rev) + =/ nf (gas:norm:sur *nostr-feed:sur subset) + [nf start end] +:: +:: NOTE START IS OLD, END IS NEW + +++ subset +=/ count feed-page-size:constants +|= [=fc:feed replies=? now=@da] ^- fc:feed + ?: ?&(?=(%~ start.fc) ?=(%~ end.fc)) (latest-page feed.fc) + + =/ start ?~ start.fc 0 u.start.fc + =/ end ?~ end.fc now u.end.fc + =/ nodelist (tap:orm:feed feed.fc) + + =/ threads %+ skim nodelist + |= [=id:post =post:post] ^- ? + ?. replies + ?& + ?= %~ parent.post + (lte id start) (gte id end) + == + ?& (lte id start) (gte id end) == + =/ thread-count (lent threads) + :: TODO I remember something was weird about this + :: =/ result=(list [id:post post:post]) ?: newest (scag count threads) (flop (scag count (flop threads))) + =/ result=(list [id:post post:post]) (scag count threads) + =/ cursors=[(unit @da) (unit @da)] ?~ result [~ ~] ?~ threads [~ ~] :- + ?: .=((head result) (head threads)) ~ `id:(head result) + ?: .=((rear result) (rear threads)) ~ `id:(rear result) + [(gas:orm:feed *feed:feed result) -.cursors +.cursors] +:: posts +++ node-to-full +|= [p=post:post f=feed:feed] ^- full-node:post + p(children (convert-children children.p f)) +++ convert-children +|= [children=(set id:post) f=feed:feed] + ^- internal-graph:post + =/ g=full-graph:post %- ~(rep in children) + |= [=id:post acc=full-graph:post] + =/ n (get:orm:feed f id) + ?~ n acc + =/ full-node (node-to-full u.n f) + (put:form:post acc id full-node) + ?~ children [%empty ~] + :- %full g +-- diff --git a/app/lib/trill/gate.hoon b/app/lib/trill/gate.hoon new file mode 100644 index 0000000..ebb78b8 --- /dev/null +++ b/app/lib/trill/gate.hoon @@ -0,0 +1,79 @@ +/- gate=trill-gate +|% +++ mask-lock +|= =lock:gate ^- lock:gate + :* ?: public.rank.lock rank.lock [~ %| %|] + ?: public.luk.lock luk.lock [~ %| %|] + ?: public.ship.lock ship.lock [~ %| %|] + ?: public.tags.lock tags.lock [~ %| %|] + ?: public.custom.lock custom.lock [~ %|] + == +++ can-access +|= [=ship =lock:gate =bowl:gall] ^- ? + ?^ fn.custom.lock %- u.fn.custom.lock ship + =/ in-luk (~(has in caveats.ship.lock) ship) + =/ fu (sein:title our.bowl now.bowl ship) + =/ ye (sein:title our.bowl now.bowl fu) + =/ ze (sein:title our.bowl now.bowl ye) + =/ in-ship ?| + (~(has in caveats.luk.lock) fu) + (~(has in caveats.luk.lock) ye) + (~(has in caveats.luk.lock) ze) + == + =/ in-rank (~(has in caveats.rank.lock) (clan:title ship)) + :: =/ in-tags (~(has in (scry-pals-tags caveats.tags.lock)) ship) + =/ can |= [pit=? has=?] ^- ? ?: pit has !has + =/ as-ship (can locked.ship.lock in-ship) + =/ as-luk (can locked.ship.lock in-luk) + =/ as-rank (can locked.ship.lock in-rank) + ::=/ as-tags (can locked.ship.lock in-tags) + ?&(as-ship as-luk as-rank) + +++ scry-pals-tags +|= tags=(set @t) ^- (set @p) + :: .^() + ~ +++ apply-change +|= [=lock:gate =change:gate] ^- lock:gate + ?- -.change + %set-rank lock(rank +.change) + %set-luk lock(luk +.change) + %set-ship lock(ship +.change) + %set-tags lock(tags +.change) + %set-custom lock ::TODO + == +++ open-all +|= =lock:gate ^- lock:gate + %= lock + rank rank.lock(locked .n) + luk luk.lock(locked .n) + ship ship.lock(locked .n) + tags tags.lock(locked .n) + == +++ lock-all +|= =lock:gate ^- lock:gate +%= lock +rank rank.lock(locked .y) +luk luk.lock(locked .y) +ship ship.lock(locked .y) +tags tags.lock(locked .y) +== +++ toggle-rank +|= [r=rank:title setting=[caveats=(set rank:title) locked=? public=?]] + =/ new-caveats=(set rank:title) ?: locked.setting + (~(put in caveats.setting) r) + (~(del in caveats.setting) r) + setting(caveats new-caveats) +++ toggle-ship +|= [s=ship setting=[caveats=(set ship) locked=? public=?]] + =/ new-caveats=(set ship) ?: locked.setting + (~(put in caveats.setting) s) + (~(del in caveats.setting) s) + setting(caveats new-caveats) +++ toggle-tag +|= [t=@t setting=[caveats=(set @t) locked=? public=?]] + =/ new-caveats=(set @t) ?: locked.setting + (~(put in caveats.setting) t) + (~(del in caveats.setting) t) + setting(caveats new-caveats) +-- diff --git a/app/lib/trill/post.hoon b/app/lib/trill/post.hoon new file mode 100644 index 0000000..968bcad --- /dev/null +++ b/app/lib/trill/post.hoon @@ -0,0 +1,379 @@ +/- tp=trill-post, md=markdown +/+ sr=sortug, mdlib=markdown +|% +++ build-sp + |= [host=@p author=@p input=@t parent=(unit @) thread=(unit @)] + ^- sent-post:tp + =/ cl (tokenise input) + ~| "parsing error!!" + ?: ?=(%| -.cl) !! + =| sp=sent-post:tp + %= sp + host host + author author + contents +.cl + parent parent + thread thread + == +++ build-post + |= [now=@da pubkey=@ux sp=sent-post:tp] + ^- post:tp + =/ cm (init-content-map contents.sp now) + =/ thread ?~ thread.sp now u.thread.sp + =/ =post:tp + :* id=now + host.sp + author.sp + thread + parent.sp + ~ + cm + read.sp + write.sp + *engagement:tp + `@uvH`pubkey + *signature:tp + ~ + == + post +:: new! using wispem's lib +++ tokenise +|= t=@t ^- (each content-list:tp @t) + =/ parsed (rush t markdown:de:md:mdlib) + ?~ parsed [%| 'parsing error'] + :- %& + %+ turn u.parsed de-node +++ de-node |= =node:markdown:md ^- block:tp + ?~ node [%paragraph ~] + ?- -.node + %leaf (de-leaf +.node) + %container (de-cont +.node) + == + +++ de-leaf |= =node:leaf:markdown:md ^- block:tp + ?~ node [%paragraph ~] + ?- -.node + %heading (de-heading node) + %break [%paragraph :~([%break ~])] + %indent-codeblock [%codeblock text.node ''] + %fenced-codeblock [%codeblock text.node info-string.node] + %html [%codeblock text.node 'html'] + %link-ref-definition [%paragraph :~([%link '' label.node])] + %paragraph [%paragraph (de-inline contents.node)] + %blank-line [%paragraph :~([%break ~])] + %table [%paragraph :~([%break ~])] :: TODO + == +++ de-heading |= h=heading:leaf:markdown:md + :+ %heading (flatten-inline contents.h) + ?: .=(1 level.h) %h1 + ?: .=(2 level.h) %h2 + ?: .=(3 level.h) %h3 + ?: .=(4 level.h) %h4 + ?: .=(5 level.h) %h5 %h6 +++ de-inline |= inls=contents:inline:md + =| res=(list inline:tp) + |- ?~ inls (flop res) + =/ inl i.inls + =/ r=inline:tp ?- -.inl + %escape [%codespan char.inl] + %entity [%codespan code.inl] + %code-span [%codespan text.inl] + %line-break [%break ~] + %soft-line-break [%break ~] + %text [%text text.inl] + %emphasis (de-strong +.inl) + %strong (de-strong +.inl) + %link [%link (de-target target.inl) (flatten-inline contents.inl)] + %image [%link (de-target target.inl) (de-target target.inl)] + :: %image [%img (de-target target.inl) alt-text.inl] + %autolink [%text ''] + %html [%codespan text.inl] + == + $(inls t.inls, res [r res]) +++ de-strong |= [char=@t inls=contents:inline:md] +?: .=('_' char) [%italic (flatten-inline inls)] + [%bold (flatten-inline inls)] +++ de-target |= tar=target:ln:md +:: TODO lotsa stuff here + ?- -.tar + %direct text.url.urlt.tar + %ref label.tar + == +++ flatten-inline |= inls=contents:inline:md ^- @t + =/ res "" + |- ?~ inls (crip res) + =/ inl i.inls + =/ r ?+ -.inl "" + %escape (trip char.inl) + %entity (trip code.inl) + %code-span (trip text.inl) + %text (trip text.inl) + %emphasis (trip (flatten-inline contents.inl)) + %strong (trip (flatten-inline contents.inl)) + %link (trip (flatten-inline contents.inl)) + %image (trip (de-target target.inl)) + %html (trip text.inl) + == + $(inls t.inls, res "{res} {r}") +++ de-cont |= =node:container:markdown:md ^- block:tp + ?~ node [%paragraph ~] + ?- -.node + %block-quote [%blockquote (denest +.node)] + %ol [%list (de-list contents.node) .y] + %ul [%list (de-list contents.node) .n] + %tl [%paragraph ~] + == +++ de-list |= lmd=(list markdown:md) ^- (list inline:tp) +:: TODO +~ + :: =| res=(list li:tp) + :: |- ?~ lmd (flop res) + :: =/ nodelist i.lmd + :: =/ blocks=(list block:tp) + :: %+ turn nodelist de-node + :: $(lmd t.lmd, res [blocks res]) + +++ denest |= mde=markdown:md ^- paragraph:tp + =| res=paragraph:tp + |- ?~ mde (flop res) + =/ block (de-node i.mde) + =/ r=paragraph:tp (break-block block) + =/ nr (weld res r) + $(mde t.mde, res nr) + +++ break-block |= =block:tp ^- paragraph:tp +?+ -.block ~ + %paragraph p.block + %blockquote p.block + %heading :~([%text p.block]) + %codeblock :~([%text code.block]) + %eval :~([%text hoon.block]) + :: %list (break-list p.block) +== +++ break-list |= lis=(list li:tp) ^- paragraph:tp + =| res=paragraph:tp + |- ?~ lis (flop res) + =/ par (ibreak-list i.lis) + =/ nr (weld res par) + $(lis t.lis, res nr) +++ ibreak-list |= blocks=(list block:tp) ^- paragraph:tp + =| res=paragraph:tp + |- ?~ blocks (flop res) + =/ par (break-block i.blocks) + =/ nr (weld res par) + $(blocks t.blocks, res nr) + +:: tape -> post:trill, parsing user input from Sail ++$ heading $?(%h1 %h2 %h3 %h4 %h5 %h6) + +++ parse :: Markdown parser. Actually udon parser but it'll do + |= s=tape ^- (unit marl:hoot) :: finally + :: Annoying it requires a line break but then parses it as a space wtf + =, vast + (rust s cram:(sail .y)) +++ tokenize +|= s=@t ^- content-list:tp + =/ t (weld (trip s) "\0a") + =/ parsed (parse t) + :: =/ parsed2 (parse:md t) + :: ~& > diary-parser=parsed2 + :: \0a can't be followed by a space. ever. those are the rules + ?~ parsed ~& error-parsing-markdown=t ~ + (marl-to-cl u.parsed) +++ marl-to-cl +|= =marl:hoot ^- content-list:tp + %- flop + %+ roll marl + |= [=tuna:hoot acc=content-list:tp] + :: man this is an annoying type if I ever saw one + ?@ -.tuna acc + =/ blk (manx-to-block tuna) + ?~ blk acc :_ acc u.blk +++ manx-to-block + |= =manx:hoot ^- (unit block:tp) + ?+ n.g.manx ~ + :: TODO + :: heading %- some [%heading (phead n.g.manx c.manx)] + %p %- some [%paragraph (inline-list c.manx)] + %blockquote %- some [%blockquote (inline-list c.manx)] + %pre %- some [%codeblock (pre c.manx)] + %hr %- some [%paragraph ~[[%break ~]]] + %ul %- some [%list (inline-list c.manx) .n] + %ol %- some [%list (inline-list c.manx) .y] + :: %table %- some (table-rows c.manx) + == +:: ++ list-items +:: |= =marl:hoot ^- (list li:tp) +:: %- flop +:: %+ roll marl |= [=tuna:hoot acc=(list li:tp)] +:: ?@ -.tuna acc +:: ?. ?=(%li n.g.tuna) acc :_ acc (marl-to-cl c.tuna) +:: ++ phead +:: |= [h=heading c=marl:hoot] ^- [p=cord q=heading] +:: :- (get-tag-text c) h +++ inline-list + |= c=marl:hoot ^- (list inline:tp) + %- flop + %+ roll c + |= [=tuna:hoot acc=(list inline:tp)] + ?@ -.tuna acc :_ acc (inline tuna) + ++ inline + |= =manx:hoot ^- inline:tp + ?: ?=(%$ n.g.manx) [%text (get-attrs-text a.g.manx)] + =/ text=@t (get-tag-text c.manx) + ?+ n.g.manx [%text text] + %i [%italic text] + %b [%bold text] + %code [%codespan text] + %br [%break ~] + %a :+ %link (get-attrs-text a.g.manx) (get-tag-text c.manx) + %img :+ %link (get-attr-text a.g.manx %src) (get-attr-text a.g.manx %alt) + == +:: +++ reduce-block +|= c=marl:hoot ^- @t + %+ roll c + |= [=tuna:hoot acc=@t] + ?@ -.tuna acc + ?+ n.g.tuna acc + %p (get-tag-text c.tuna) + == +++ get-attr-text +|= [a=mart:hoot attr=@tas] ^- @t + %- crip %- flop + %+ roll a + |= [[n=mane v=(list beer:hoot)] acc=tape] + ?. .=(attr n) acc + %+ roll v + |= [b=beer:hoot acc=tape] + ?^ b acc [b acc] +++ get-attrs-text :: this assumes we don't care about which attr, which we usually don't +|= a=mart:hoot ^- @t + :: ?: (gte (lent a) 1) + %- crip %- flop + %+ roll a + |= [[n=mane v=(list beer:hoot)] acc=tape] + %+ roll v + |= [b=beer:hoot acc=tape] + ?^ b acc [b acc] +++ get-tag-text +|= c=marl:hoot ^- @t +:: there's only really one child in these things + %+ roll c + |= [=tuna:hoot acc=@t] + ?@ -.tuna acc + %- crip + %- flop + %+ roll a.g.tuna + |= [[n=mane v=(list beer:hoot)] acc=tape] + %+ roll v + |= [b=beer:hoot acc=tape] + ?^ b acc [b acc] + +++ pre + |= c=marl:hoot ^- [cord cord] + :_ '' :: lang not supported, duh + %+ roll c + |= [=tuna:hoot acc=@t] + ?@ -.tuna acc + (get-attrs-text a.g.tuna) + +++ parse-tags +|= t=@t ^- (unit (set @t)) + =/ lst (rush t (csplit:sr com)) + ?~ lst ~ (some (sy u.lst)) +:: post:trill -> (markdown) tape for display on sail +++ block-to-md +|= b=block:tp ^- tape + ?+ -.b "" +%paragraph + %^ foldi:sr p.b "" |= [in=@ud i=inline:tp acc=tape] + =/ il (inline-to-tape i) + ?: .=(+(in) (lent p.b)) + "{acc}{il}" + "{acc}{il} " +%blockquote + %+ weld "> " + %^ foldi:sr p.b "" |= [in=@ud i=inline:tp acc=tape] + =/ il (inline-to-tape i) + ?: .=(+(in) (lent p.b)) + "{acc}{il}" + "{acc}{il} " +%list + %^ foldi:sr p.b "" |= [in=@ud i=inline:tp acc=tape] + =/ li-tape (inline-to-tape i) + =/ line ?: ordered.b + "{<+(in)>}. {li-tape}" + "- {li-tape}" + ?: .=(+(in) (lent p.b)) + "{acc}{line}" + "{acc}{line}\0a" +%media + ?+ -.media.b "![{(trip p.media.b)}]({(trip p.media.b)})" + :: TODO +%images + :: %^ foldi:sr p.media.b "" |= [i=@ud [url=@t caption=@t] acc=tape] + :: =/ line "![{(trip caption)}]({(trip url)})" + :: ?: .=(+(i) (lent p.media.b)) + :: "{acc}{line}" + :: "{acc}{line}\0a" + "" + == +%codeblock + """ + ``` + {(trip code.b)} + ``` + """ +%heading =/ dashes=tape ?- q.b + %h1 "# " + %h2 "## " + %h3 "### " + %h4 "#### " + %h5 "##### " + %h6 "###### " + == "{dashes}{(trip p.b)}" +:: %tasklist "" ::TODO + :: + :: %table acc + :: %eval acc + :: %ref acc + :: %json acc + == +++ latest-post-content +|= cm=content-map:tp ^- content-list:tp + =/ last (pry:corm:tp cm) + ?~ last ~ + +.u.last + +++ content-list-to-md +|= =content-list:tp ^- tape + %^ foldi:sr content-list "" |= [i=@ud b=block:tp acc=tape] + =/ block-tape (block-to-md b) + ?: .=(+(i) (lent content-list)) + "{acc}{block-tape}" + "{acc}{block-tape}\0a\0a" +++ inline-to-tape +|= i=inline:tp ^- tape + ?+ -.i "" + %text (trip p.i) + %italic "_{(trip p.i)}_" + %bold "*{(trip p.i)}*" + %strike "~~{(trip p.i)}~~" + %ship (scow %p p.i) + %codespan "`{(trip p.i)}`" + %link "[{(trip show.i)}]({(trip href.i)})" + :: %img "![{(trip alt.i)}]({(trip src.i)})" + %break "\0a" + == +++ tags-to-tape +|= t=(set @t) ^- tape + %^ foldi:sr ~(tap in t) "" |= [i=@ud c=@t acc=tape] + ?: .=(+(i) ~(wyt in t)) + "{acc}{(trip c)}" + "{acc}{(trip c)}," + +++ init-content-map |= [cl=content-list:tp date=@da] ^- content-map:tp + (put:corm:tp *content-map:tp date cl) + +-- diff --git a/app/mar/bill.hoon b/app/mar/bill.hoon new file mode 100644 index 0000000..76cef34 --- /dev/null +++ b/app/mar/bill.hoon @@ -0,0 +1,34 @@ +|_ bil=(list dude:gall) +++ grow + |% + ++ mime `^mime`[/text/x-bill (as-octs:mimes:html hoon)] + ++ noun bil + ++ hoon + ^- @t + |^ (crip (of-wall:format (wrap-lines (spit-duz bil)))) + :: + ++ wrap-lines + |= taz=wall + ^- wall + ?~ taz ["~"]~ + :- (weld ":~ " i.taz) + %- snoc :_ "==" + (turn t.taz |=(t=tape (weld " " t))) + :: + ++ spit-duz + |= duz=(list dude:gall) + ^- wall + (turn duz |=(=dude:gall ['%' (trip dude)])) + -- + ++ txt (to-wain:format hoon) + -- +++ grab + |% + ++ noun (list dude:gall) + ++ mime + |= [=mite len=@ud tex=@] + ~_ tex + !<((list dude:gall) (slap !>(~) (ream tex))) + -- +++ grad %noun +-- diff --git a/app/mar/css.hoon b/app/mar/css.hoon new file mode 100644 index 0000000..1a87081 --- /dev/null +++ b/app/mar/css.hoon @@ -0,0 +1,25 @@ +:: +:::: /hoon/css/mar + :: +/? 310 +=, eyre +=, mimes:html +|_ mud=@t +++ grow :: convert to + |% + ++ mime [/text/css (as-octs mud)] :: convert to %mime + ++ hymn :: convert to %hymn + |^ html + ++ style ;style + ;- (trip mud) + == + ++ html ;html:(head:"{style}" body) + -- + -- +++ grab + |% :: convert from + ++ mime |=([p=mite q=octs] (@t q.q)) + ++ noun @t :: clam from %noun + -- +++ grad %mime +-- diff --git a/app/mar/docket-0.hoon b/app/mar/docket-0.hoon new file mode 100644 index 0000000..c3b253b --- /dev/null +++ b/app/mar/docket-0.hoon @@ -0,0 +1,25 @@ +/+ dock=docket +|_ =docket:dock +++ grow + |% + ++ mime + ^- ^mime + [/text/x-docket (as-octt:mimes:html (spit-docket:mime:dock docket))] + ++ noun docket + ++ json (docket:enjs:dock docket) + -- +++ grab + |% + :: + ++ mime + |= [=mite len=@ud tex=@] + ^- docket:dock + %- need + %- from-clauses:mime:dock + !<((list clause:dock) (slap !>(~) (ream tex))) + + :: + ++ noun docket:dock + -- +++ grad %noun +-- diff --git a/app/mar/hoon.hoon b/app/mar/hoon.hoon new file mode 100644 index 0000000..428e105 --- /dev/null +++ b/app/mar/hoon.hoon @@ -0,0 +1,36 @@ +:::: /hoon/hoon/mar + :: +/? 310 +:: +=, eyre +|_ own=@t +:: +++ grow :: convert to + |% + ++ mime `^mime`[/text/x-hoon (as-octs:mimes:html own)] :: convert to %mime + ++ hymn + ;html + ;head + ;title:"Source" + ;script@"//cdnjs.cloudflare.com/ajax/libs/codemirror/4.3.0/codemirror.js"; + ;script@"/lib/syntax/hoon.js"; + ;link(rel "stylesheet", href "//cdnjs.cloudflare.com/ajax/libs/". + "codemirror/4.3.0/codemirror.min.css"); + ;link/"/lib/syntax/codemirror.css"(rel "stylesheet"); + == + ;body + ;textarea#src:"{(trip own)}" + ;script:'CodeMirror.fromTextArea(src, {lineNumbers:true, readOnly:true})' + == + == + ++ txt + (to-wain:format own) + -- +++ grab + |% :: convert from + ++ mime |=([p=mite q=octs] q.q) + ++ noun @t :: clam from %noun + ++ txt of-wain:format + -- +++ grad %txt +-- diff --git a/app/mar/ico.hoon b/app/mar/ico.hoon new file mode 100644 index 0000000..e862b9b --- /dev/null +++ b/app/mar/ico.hoon @@ -0,0 +1,12 @@ +|_ dat=@ +++ grow + |% + ++ mime [/image/x-icon (as-octs:mimes:html dat)] + -- +++ grab + |% + ++ mime |=([p=mite q=octs] q.q) + ++ noun @ + -- +++ grad %mime +-- diff --git a/app/mar/js.hoon b/app/mar/js.hoon new file mode 100644 index 0000000..fe010d9 --- /dev/null +++ b/app/mar/js.hoon @@ -0,0 +1,25 @@ +:: +:::: /hoon/js/mar + :: +/? 310 +:: +=, eyre +|_ mud=@ +++ grow + |% + ++ mime [/application/javascript (as-octs:mimes:html (@t mud))] + ++ hymn :: convert to %hymn + |^ html + ++ script ;script + ;- (trip (@t mud)) + == + ++ html ;html:(head:"{script}" body) + -- + -- +++ grab + |% :: convert from + ++ mime |=([p=mite q=octs] (@t q.q)) + ++ noun cord :: clam from %noun + -- +++ grad %mime +-- diff --git a/app/mar/json.hoon b/app/mar/json.hoon new file mode 100644 index 0000000..7d6fcbf --- /dev/null +++ b/app/mar/json.hoon @@ -0,0 +1,26 @@ +:: +:::: /hoon/json/mar + :: +/? 310 + :: +:::: compute + :: +=, eyre +=, format +=, html +|_ jon=^json +:: +++ grow :: convert to + |% + ++ mime [/application/json (as-octs:mimes -:txt)] :: convert to %mime + ++ txt [(en:json jon)]~ + -- +++ grab + |% :: convert from + ++ mime |=([p=mite q=octs] (fall (de:json (@t q.q)) *^json)) + ++ noun ^json :: clam from %noun + ++ numb numb:enjs + ++ time time:enjs + -- +++ grad %mime +-- diff --git a/app/mar/kelvin.hoon b/app/mar/kelvin.hoon new file mode 100644 index 0000000..7f1b409 --- /dev/null +++ b/app/mar/kelvin.hoon @@ -0,0 +1,28 @@ +|_ kal=waft:clay +++ grow + |% + ++ mime `^mime`[/text/x-kelvin (as-octs:mimes:html hoon)] + ++ noun kal + ++ hoon + %+ rap 3 + %+ turn + %+ sort + ~(tap in (waft-to-wefts:clay kal)) + |= [a=weft b=weft] + ?: =(lal.a lal.b) + (gte num.a num.b) + (gte lal.a lal.b) + |= =weft + (rap 3 '[%' (scot %tas lal.weft) ' ' (scot %ud num.weft) ']\0a' ~) + :: + ++ txt (to-wain:format hoon) + -- +++ grab + |% + ++ noun waft:clay + ++ mime + |= [=mite len=@ud tex=@] + (cord-to-waft:clay tex) + -- +++ grad %noun +-- diff --git a/app/mar/mime.hoon b/app/mar/mime.hoon new file mode 100644 index 0000000..83b4dae --- /dev/null +++ b/app/mar/mime.hoon @@ -0,0 +1,32 @@ +:: +:::: /hoon/mime/mar + :: +/? 310 +:: +|_ own=mime +++ grow + ^? + |% + ++ jam `@`q.q.own + -- +:: +++ grab :: convert from + ^? + |% + ++ noun mime :: clam from %noun + ++ tape + |=(a=_"" [/application/x-urb-unknown (as-octt:mimes:html a)]) + -- +++ grad + ^? + |% + ++ form %mime + ++ diff |=(mime +<) + ++ pact |=(mime +<) + ++ join |=([mime mime] `(unit mime)`~) + ++ mash + |= [[ship desk mime] [ship desk mime]] + ^- mime + ~|(%mime-mash !!) + -- +-- diff --git a/app/mar/noun.hoon b/app/mar/noun.hoon new file mode 100644 index 0000000..ff5443e --- /dev/null +++ b/app/mar/noun.hoon @@ -0,0 +1,22 @@ +:: +:::: /hoon/noun/mar + :: +/? 310 +!: +:::: A minimal noun mark +|_ non=* +++ grab |% + ++ noun * + -- +++ grow |% + ++ mime [/application/x-urb-jam (as-octs:mimes:html (jam non))] + -- +++ grad + |% + ++ form %noun + ++ diff |=(* +<) + ++ pact |=(* +<) + ++ join |=([* *] *(unit *)) + ++ mash |=([[ship desk *] [ship desk *]] `*`~|(%noun-mash !!)) + -- +-- diff --git a/app/mar/png.hoon b/app/mar/png.hoon new file mode 100644 index 0000000..6a60a6a --- /dev/null +++ b/app/mar/png.hoon @@ -0,0 +1,12 @@ +|_ dat=@ +++ grow + |% + ++ mime [/image/png (as-octs:mimes:html dat)] + -- +++ grab + |% + ++ mime |=([p=mite q=octs] q.q) + ++ noun @ + -- +++ grad %mime +-- diff --git a/app/mar/ship.hoon b/app/mar/ship.hoon new file mode 100644 index 0000000..176bcad --- /dev/null +++ b/app/mar/ship.hoon @@ -0,0 +1,20 @@ +|_ s=ship +++ grad %noun +++ grow + |% + ++ noun s + ++ json s+(scot %p s) + ++ mime + ^- ^mime + [/text/x-ship (as-octt:mimes:html (scow %p s))] + + -- +++ grab + |% + ++ noun ship + ++ json (su:dejs:format ;~(pfix sig fed:ag)) + ++ mime + |= [=mite len=@ tex=@] + (slav %p (snag 0 (to-wain:format tex))) + -- +-- diff --git a/app/mar/svg.hoon b/app/mar/svg.hoon new file mode 100644 index 0000000..2911e49 --- /dev/null +++ b/app/mar/svg.hoon @@ -0,0 +1,12 @@ +|_ dat=@ +++ grow + |% + ++ mime [/image/'svg+xml' (as-octs:mimes:html dat)] + -- +++ grab + |% + ++ mime |=([p=mite q=octs] q.q) + ++ noun @ + -- +++ grad %mime +-- diff --git a/app/mar/tang.hoon b/app/mar/tang.hoon new file mode 100644 index 0000000..9fdd314 --- /dev/null +++ b/app/mar/tang.hoon @@ -0,0 +1,25 @@ +:: +:::: /hoon/tang/mar + :: +/? 310 +:: +=, format +|_ tan=(list tank) +++ grad %noun +++ grow + |% + ++ noun tan + ++ json + =/ result=(each (list ^json) tang) + (mule |.((turn tan tank:enjs:format))) + ?- -.result + %& a+p.result + %| a+[a+[%s '[[output rendering error]]']~]~ + == + -- +++ grab :: convert from + |% + ++ noun (list ^tank) :: clam from %noun + ++ tank |=(a=^tank [a]~) + -- +-- diff --git a/app/mar/webmanifest.hoon b/app/mar/webmanifest.hoon new file mode 100644 index 0000000..6a60a6a --- /dev/null +++ b/app/mar/webmanifest.hoon @@ -0,0 +1,12 @@ +|_ dat=@ +++ grow + |% + ++ mime [/image/png (as-octs:mimes:html dat)] + -- +++ grab + |% + ++ mime |=([p=mite q=octs] q.q) + ++ noun @ + -- +++ grad %mime +-- diff --git a/app/sur/docket.hoon b/app/sur/docket.hoon new file mode 100644 index 0000000..091c8c9 --- /dev/null +++ b/app/sur/docket.hoon @@ -0,0 +1,82 @@ +|% +:: ++$ version + [major=@ud minor=@ud patch=@ud] +:: ++$ glob (map path mime) +:: ++$ url cord +:: $glob-location: How to retrieve a glob +:: ++$ glob-reference + [hash=@uvH location=glob-location] +:: ++$ glob-location + $% [%http =url] + [%ames =ship] + == +:: $href: Where a tile links to +:: ++$ href + $% [%glob base=term =glob-reference] + [%site =path] + == +:: $chad: State of a docket +:: ++$ chad + $~ [%install ~] + $% :: Done + [%glob =glob] + [%site ~] + :: Waiting + [%install ~] + [%suspend glob=(unit glob)] + :: Error + [%hung err=cord] + == +:: +:: $charge: A realized $docket +:: ++$ charge + $: =docket + =chad + == +:: +:: $clause: A key and value, as part of a docket +:: +:: Only used to parse $docket +:: ++$ clause + $% [%title title=@t] + [%info info=@t] + [%color color=@ux] + [%glob-http url=cord hash=@uvH] + [%glob-ames =ship hash=@uvH] + [%image =url] + [%site =path] + [%base base=term] + [%version =version] + [%website website=url] + [%license license=cord] + == +:: +:: $docket: A description of JS bundles for a desk +:: ++$ docket + $: %1 + title=@t + info=@t + color=@ux + =href + image=(unit url) + =version + website=url + license=cord + == +:: ++$ charge-update + $% [%initial initial=(map desk charge)] + [%add-charge =desk =charge] + [%del-charge =desk] + == +-- diff --git a/app/sur/markdown.hoon b/app/sur/markdown.hoon new file mode 100644 index 0000000..baf266e --- /dev/null +++ b/app/sur/markdown.hoon @@ -0,0 +1,157 @@ +=> |% + ++ ln + |% + :: + :: Url: optionally enclosed in triangle brackets + :: A link destination consists of either + :: - a sequence of zero or more characters between an opening < and a closing > that + :: contains no line breaks or unescaped < or > characters, or + :: - a nonempty sequence of characters that does not start with <, does not include + :: ASCII space or control characters, and includes parentheses only if (a) they are + :: backslash-escaped or (b) they are part of a balanced pair of unescaped parentheses. + :: (Implementations may impose limits on parentheses nesting to avoid performance + :: issues, but at least three levels of nesting should be supported.) + +$ url [text=@t has-triangle-brackets=?] + :: + :: Url with optional title-text + +$ urlt [=url title-text=(unit @t)] + :: + :: Link target: the part of a link after the display text. can be direct or reference + :: A reference link is in square brackets, and refers to a named link elsewhere. + :: - full => [Display][foo] + :: - collapsed => [Display][] + :: - shortcut => [Display] + :: Collapsed and shortcut links have a `label` equal to the display text. + +$ target $% [%direct =urlt] + [%ref type=?(%full %collapsed %shortcut) label=@t] + == + -- + -- +:: +|% + :: + :: Markdown document or fragment: a list of nodes + ++ markdown =< $+ markdown + (list node) + |% + +$ node $+ markdown-node + $@ ~ :: `$@ ~` is magic that makes recursive structures work + $% [%leaf node:leaf] + [%container node:container] + == + -- + :: + ++ inline + |% + :: A single inline element + ++ element $+ inline-element + $@ ~ + $%(escape entity code hardbrk softbrk text emphasis strong link image autolink html) + :: + :: Any amount of elements + ++ contents (list element) + :: + :: ----------------------- + :: List of inline elements + :: ----------------------- + :: + :: Backslash-escaped character + +$ escape [%escape char=@t] + :: + :: HTML-entity + +$ entity [%entity code=@t] + :: + :: Code span (inline code). Interpreted literally, cannot have nested elements. + :: Can be enclosed by any amount of backticks on each side, >= 1. Must be balanced. + +$ code [%code-span num-backticks=@ text=@t] + :: + :: Line break + +$ hardbrk [%line-break ~] + :: + :: Soft line break: a newline in the source code, will be rendered as a single space + +$ softbrk [%soft-line-break ~] + :: + :: Text: Just text + +$ text [%text text=@t] + :: + :: Emphasis and strong emphasis + :: Can use either tar "*" or cab "_" as the emphasis character. + :: Can have nested inline elements. + +$ emphasis [%emphasis emphasis-char=@t =contents] + +$ strong [%strong emphasis-char=@t =contents] + :: + :: Link + +$ link [%link =contents =target:ln] + :: + :: Images + +$ image [%image alt-text=@t =target:ln] + :: + :: Autolink: a link that's just itself, surrounded by "<...>" + +$ autolink [%autolink text=@t] + :: + :: HTML + +$ html [%html text=@t] + -- + :: + :: Leaf nodes: non-nested (i.e., terminal) nodes + ++ leaf + |% + ++ node $+ leaf-node + $@ ~ + $%(heading break codeblk-indent codeblk-fenced html link-ref-def table paragraph blank-line) + :: + :: Heading, either setext or ATX style + +$ heading [%heading style=?(%setext %atx) level=@ =contents:inline] + :: + :: Thematic break (horizontal line) + :: Consists of at least 3 repetitions of either hep '-', cab '_', or tar '*' + +$ break [%break char=@t char-count=@] + :: + :: Indentation-based code block: indented 4 spaces. Can include newlines and blank lines. + +$ codeblk-indent [%indent-codeblock text=@t] + :: + :: Fenced code block: begins and ends with 3+ repetitions of tic (`) or sig (~). + :: Can be indented up to 3 spaces. + +$ codeblk-fenced [%fenced-codeblock char=@t char-count=@ info-string=@t indent-level=@ text=@t] + :: + :: HTML + +$ html [%html text=@t] + :: + :: Link reference definition (defines a named link which can be referenced elsewhere) + +$ link-ref-def [%link-ref-definition label=@t =urlt:ln] + :: + :: Paragraph + +$ paragraph [%paragraph =contents:inline] + :: + :: Blank lines (not rendered, but lets user control aethetic layout of the source code) + +$ blank-line [%blank-line ~] + :: + :: Table (alignments: [l]eft, [r]ight, [c]enter, [n]one) + +$ table [%table widths=(list @) head=(list contents:inline) align=(list ?(%l %c %r %n)) rows=(list (list contents:inline))] + -- + :: + :: Container node: can contain other nodes (either container or leaf). + ++ container + |% + ++ node $+ container-node + $@ ~ + $%(block-quote ol ul tl) + :: + :: Block quote. Can be nested. + +$ block-quote [%block-quote =markdown] + :: + :: Ordered list: numbered based on first list item marker. + :: Marker char can be either dot '1. asdf' or par '1) asdf' + :: Can be indented up to 3 spaces + +$ ol [%ol indent-level=@ marker-char=@t start-num=@ contents=(list markdown)] :: is-tight=? + :: + :: Unordered list: bullet point list + :: Marker char can be either hep (-), lus (+) or tar (*) + :: Can be indented up to 3 spaces + +$ ul [%ul indent-level=@ marker-char=@t contents=(list markdown)] :: is-tight=? + :: + :: Task list: unordered list of tasks + :: Can be indented up to 3 spaces + +$ tl [%tl indent-level=@ marker-char=@t contents=(list [is-checked=? =markdown])] :: is-tight=? + -- +-- diff --git a/app/sur/nostr.hoon b/app/sur/nostr.hoon new file mode 100644 index 0000000..a1b54d1 --- /dev/null +++ b/app/sur/nostr.hoon @@ -0,0 +1,107 @@ +|% ++$ keys [pub=@ priv=@] ++$ event +$: id=@ux :: 32bytes + pubkey=@ux :: 32bytes + created-at=@ud :: seconds + kind=@ud + tags=(list tag) + content=@t + sig=@ux :: 64bytes +== ++$ raw-event +$: pubkey=@ux :: 32bytes + created-at=@ud :: seconds + kind=@ud + tags=(list tag) + content=@t +== ++$ tag (list @t) +:: $: key=@t +:: value=@t +:: rest=(list @t) +:: == ++$ user-meta :: NIP-1 +$: name=@t + about=@t + picture=@t + other=(map @t json) +== ++$ relay-stats +$: connected=(unit @da) + reqs=(map sub-id event-stats) +== ++$ event-stats + [filters=(list filter) received=event-count] ++$ sub-id @t ++$ event-count @ud + ++$ relay-req +$: sub-id=@t + filters=(list filter) +== +:: Relay comms ++$ filter +$: ids=(unit (set @ux)) + authors=(unit (set @ux)) + kinds=(unit (set @ud)) + tags=(unit (map @t (set @t))) + since=(unit @da) + until=(unit @da) + limit=(unit @ud) +== +:: messages from relay +++ relay-msg +$% [%event sub-id=@t =event] + [%ok id=@ux accepted=? msg=@t] + [%eose sub-id=@t] + [%closed sub-id=@t msg=@t] + [%notice msg=@t] + [%auth challenge=@t] + :: from our shim + [%error msg=@t] +== +++ shim + |% + ++ url 'http://localhost:8888/shim' + +$ req + $% [%req relay-req] + [%event =event] + [%auth =event] + [%close sub-id=@t] + == + +$ bulk-req [relays=(list @t) =req] + +$ http-req [relay=@t delay=@ud sub-id=@t filters=(list filter)] + +$ res $%([%http p=(list relay-msg)] [%ws relay=@t msg=relay-msg]) + -- + +:: https://github.com/sesseor/nostr-relays-list/blob/main/relays.txt +++ public-relays ^- (list @t) + :~ + 'wss://n.urbit.cloud' + 'wss://nos.lol' + 'wss://relay.damus.io' + 'wss://nostr.wine' + 'wss://offchain.pub' + == + :: 'wss://knostr.neutrine.com' +-- +:: event: { +:: content: "😂", +:: created_at: 1758049319, +:: id: "36c8a0bb6a9a1ff3ca3e6868fdf2c055a09aea39b1c078b75c38f5a7b580da87", +:: kind: 7, +:: pubkey: "26d6a946675e603f8de4bf6f9cef442037b70c7eee170ff06ed7673fc34c98f1", +:: sig: "7b5a9c799776935f959eccfd311af6152db6a1360296c9790b35544d0b83a8d75f8937ad1ad6f5da3e0d3e2bdb1bfb92686adbde42c3ef53ca06771080d08153", +:: tags: [ +:: [ "e", "091d00811bb9a57088ab7c1d39697b0ed9bbbe05dae135b406f3560290fba311", +:: "wss://relay.nostr.band/", "root", "26d6a946675e603f8de4bf6f9cef442037b70c7eee170ff06ed7673fc34c98f1" +:: ], [ "e", "1cd926b58a1bac70adcedf38212d72ee1380e17dad1aef6bbc18782c5c540236", +:: "wss://relay.nostr.band/", "reply", "3252715543f6e43be086465129b030d47d76cf8cead4798e48864563c3375083" +:: ], [ "p", "26d6a946675e603f8de4bf6f9cef442037b70c7eee170ff06ed7673fc34c98f1", +:: "wss://nostr.bitcoiner.social/" +:: ], [ "p", "3252715543f6e43be086465129b030d47d76cf8cead4798e48864563c3375083", +:: "ws://relay.snort.social/" +:: ], [ "e", "b9a0c3b28a291d80bcb41ee730f2c48366fd2fefba0e68f9fb928bb9ca96f757" ], [ "p", "3252715543f6e43be086465129b030d47d76cf8cead4798e48864563c3375083" ] +:: ], +:: }, diff --git a/app/sur/nostrill.hoon b/app/sur/nostrill.hoon new file mode 100644 index 0000000..b5bca13 --- /dev/null +++ b/app/sur/nostrill.hoon @@ -0,0 +1,90 @@ +/- nostr, trill=trill-feed, tp=trill-post, gate=trill-gate +|% ++$ state state-0 ++$ state-0 + $: %0 + :: nostr config + relays=(map @t relay-stats:nostr) + keys=(lest keys:nostr) :: cycled, i.keys is current one + :: own feed + feed=feed:trill + feed-perms=gate:gate + :: nostr feed from relays + =nostr-feed + :: profiles + profiles=(map user user-meta:nostr) + following=(map user =feed:trill) + follow-graph=(map user (set user)) + :: TODO global feed somehow? + + == ++$ nostr-feed ((mop @ud event:nostr) gth) +++ norm ((on @ud event:nostr) gth) ++$ nfc [feed=nostr-feed start=cursor:trill end=cursor:trill] + ++$ post-wrapper [=post:tp nostr-meta=nostr-meta] ++$ nostr-meta +$: pub=(unit @ux) + ev-id=(unit @ux) + relay=(unit @t) + pr=(unit user-meta:nostr) +== ++$ user $%([%urbit p=@p] [%nostr p=@ux]) + ++$ follow [pubkey=@ux name=@t relay=(unit @t)] +++ ui + |% + +$ poke + $% [%fols fols-poke] + [%begs begs-poke] + [%post post-poke] + :: [%reac reac-poke] + [%prof prof-poke] + [%keys ~] :: cycle-keys + [%rela relay-poke] + == + +$ begs-poke + $% [%feed p=@p] + [%thread p=@p id=@da] + == + +$ post-poke + $% [%add content=@t] + [%reply content=@t host=@p id=@ thread=@] + [%quote content=@t host=@p id=@] + [%rp host=@p id=@] :: NIP-18 + :: [%rt id=@ux pubkey=@ux relay=@t] :: NIP-18 + :: [%del pubkey=@ux] + == + +$ fols-poke + $% [%add =user] + [%del =user] + == + +$ prof-poke + $% [%add meta=user-meta:nostr] + [%del ~] + == + +$ relay-poke + $% [%add p=@t] + [%del p=@t] + :: + [%sync ~] + :: send event for... relaying + [%send host=@p id=@ relays=(list @t)] + == + :: facts + +$ fact + $% [%nostr feed=nostr-feed] + [%post post-fact] + [%enga p=post-wrapper reaction=*] + [%fols fols-fact] + == + +$ post-fact + $% [%add post-wrapper] + [%del post-wrapper] + == + +$ fols-fact + $% [%new =user =fc:trill meta=(unit user-meta:nostr)] + [%quit =user] + == + -- +-- diff --git a/app/sur/nostrill/comms.hoon b/app/sur/nostrill/comms.hoon new file mode 100644 index 0000000..42ea1ba --- /dev/null +++ b/app/sur/nostrill/comms.hoon @@ -0,0 +1,41 @@ +/- sur=nostrill, nsur=nostr, feed=trill-feed, post=trill-post +|% ++$ poke + $% [%req req] + [%res res] + [%dbug *] + == ++$ emgagement + $% [%reply host=@p id=@da] + [%del-reply host=@p id=@da] + [%reaction host=@p id=@da reaction=@t] + == ++$ req + $% [%feed ~] + [%thread id=@da] + == ++$ res + $% [%ok p=res-data] + [%ng msg=@t] + == ++$ res-data + $% [%feed =fc:feed profile=(unit user-meta:nsur)] + [%thread p=full-node:post] + == +:: TODO there's some overlap between what we send to the UI and we send to our followers +:: but it's not exactly the same ++$ fact + $% [%post post-fact] + [%prof prof-fact] + [%init res] + == ++$ post-fact + $% [%add p=post:post] + [%del id=@da] + [%changes p=post:post] + == ++$ prof-fact + $% [%prof =user-meta:nsur] + [%keys pub=@ux] + == +-- diff --git a/app/sur/spider.hoon b/app/sur/spider.hoon new file mode 100644 index 0000000..7c21268 --- /dev/null +++ b/app/sur/spider.hoon @@ -0,0 +1,27 @@ +/+ libstrand=strand +=, strand=strand:libstrand +|% ++$ thread $-(vase shed:khan) ++$ input [=tid =cage] ++$ tid tid:strand ++$ bowl bowl:strand ++$ http-error + $? %bad-request :: 400 + %forbidden :: 403 + %nonexistent :: 404 + %offline :: 504 + == ++$ start-args + $: parent=(unit tid) + use=(unit tid) + =beak + file=term + =vase + == ++$ inline-args + $: parent=(unit tid) + use=(unit tid) + =beak + =shed:khan + == +-- diff --git a/app/sur/trill/feed.hoon b/app/sur/trill/feed.hoon new file mode 100644 index 0000000..be7abb5 --- /dev/null +++ b/app/sur/trill/feed.hoon @@ -0,0 +1,16 @@ +/- post=trill-post +|% ++$ feeds (map ship feed) ++$ feed ((mop id:post post:post) gth) ++$ index (map @t (set pid:post)) +++ orm ((on id:post post:post) gth) ++$ full-graph ((mop id:post full-node:post) gth) +++ form ((on id:post full-node:post) gth) ++$ global ((mop pid:post post:post) ggth) +++ ggth |=([[ship a=time] [ship b=time]] (gth a b)) +++ gorm ((on pid:post post:post) ggth) + ++$ cursor (unit @da) ++$ fc [=feed:feed start=cursor end=cursor] ++$ gc [mix=global:feed start=cursor end=cursor] +-- diff --git a/app/sur/trill/gate.hoon b/app/sur/trill/gate.hoon new file mode 100644 index 0000000..ddc0adb --- /dev/null +++ b/app/sur/trill/gate.hoon @@ -0,0 +1,26 @@ +|% ++$ gate +$: =lock + begs=(set @p) :: follow requests + post-begs=(set post-beg) :: read requests for specific posts + :: TODO include whole thread? + mute=lock :: mute list to prevent request spamming + backlog=$~(50 @) :: size of backlog sent to followers by default +== ++$ post-beg [=ship id=@da] + ++$ lock +$: rank=[caveats=(set rank:title) locked=_| public=?] + luk=[caveats=(set ship) locked=_| public=?] + ship=[caveats=(set ship) locked=_| public=?] + tags=[caveats=(set @t) locked=_| public=?] + custom=[fn=(unit $-(@p ?)) public=?] +== ++$ change +$% [%set-rank set=(set rank:title) locked=? public=?] + [%set-luk set=(set ship) locked=? public=?] + [%set-ship set=(set ship) locked=? public=?] + [%set-tags set=(set @t) locked=? public=?] + [%set-custom term] :: Handle this and set in hoon +== +-- diff --git a/app/sur/trill/post.hoon b/app/sur/trill/post.hoon new file mode 100644 index 0000000..97912ce --- /dev/null +++ b/app/sur/trill/post.hoon @@ -0,0 +1,121 @@ +/- gate=trill-gate +|% ++$ id @da ++$ pid [=ship =id] +:: anon post type? ++$ tag @t ++$ post + $: =id + host=ship + author=ship + thread=id + parent=(unit id) + children=(set id) + contents=content-map + read=lock:gate + write=lock:gate + =engagement + =hash :: We'll reuse this for the Nostr pubkey + =signature + tags=(set tag) ::TODO make sure it's not infinite + == ++$ sent-post + $: host=ship + author=ship + thread=(unit id) + parent=(unit id) + contents=content-list + read=lock:gate + write=lock:gate + tags=(set tag) + == ++$ full-node + $: =id + host=ship + author=ship + thread=id + parent=(unit id) + children=internal-graph + contents=content-map + read=lock:gate + write=lock:gate + =engagement + =hash + =signature + tags=(set tag) + == +:: recursive types crash ++$ internal-graph + $~ [%empty ~] + $% [%full p=full-graph] + [%empty ~] + == ++$ full-graph ((mop id full-node) gth) +++ form ((on id full-node) gth) +:: from post:graph-store +:: +sham (half sha-256) hash of +validated-portion ++$ hash @uvH +:: ++$ signature [p=@uvH q=ship r=life] ++$ engagement + $: + =reacts + quoted=(set signed-pid) + shared=(set signed-pid) + == ++$ signed-pid [=signature =pid] ++$ react @t ++$ reacts (map ship signed-react-2) ++$ signed-react [=pid author=ship =react =signature] ++$ signed-react-2 [p=react q=signature] + + ++$ content-map ((mop time content-list) gth) +++ corm ((on time content-list) gth) +:: +$ content-list contents:contents-1 ++$ content-list contents ++$ li content-list ++$ contents (list block) ++$ paragraph (list inline) ++$ heading $?(%h1 %h2 %h3 %h4 %h5 %h6) ++$ block + $% [%paragraph p=(list inline)] + [%blockquote p=(list inline)] + [%table rows=(list (list contents))] + [%heading p=cord q=heading] + [%list p=(list inline) ordered=?] + [%media =media] + [%codeblock code=cord lang=cord] + [%eval hoon=cord] + :: + [%ref type=term =ship =path] + :: + [%json origin=term content=@t] + :: TODO get rid of this. should be a ref + [%poll id=@da] + == ++$ poll-opt [option=cord votes=@] ++$ media + $% [%images p=(list cord)] + [%video p=cord] + [%audio p=cord] + == ++$ inline + $% [%text p=cord] + [%italic p=cord] + [%bold p=cord] + [%strike p=cord] + [%codespan p=cord] + [%link href=cord show=cord] + [%break ~] + :: not strictly markdown + [%underline p=cord] + [%sup p=cord] + [%sub p=cord] + [%ruby p=cord q=cord] + :: custom types + [%ship p=ship] + :: TODO + :: [%date p=@da] + == +-- diff --git a/app/sys.kelvin b/app/sys.kelvin new file mode 100644 index 0000000..1ec239e --- /dev/null +++ b/app/sys.kelvin @@ -0,0 +1 @@ +[%zuse 410] diff --git a/app/ted/beg.hoon b/app/ted/beg.hoon new file mode 100644 index 0000000..61d79c1 --- /dev/null +++ b/app/ted/beg.hoon @@ -0,0 +1,41 @@ +/- spider +/+ strandio, jsonlib=json-nostrill, sr=sortug +=, strand=strand:spider +=, strand-fail=strand-fail:libstrand:spider +^- thread:spider +|= arg=vase + =/ m (strand ,vase) ^- form:m + |^ + =/ ujon !<((unit json) arg) + :: ~& ujon=ujon + ?~ ujon (pure:m !>(bail)) + =/ req (ui:de:jsonlib u.ujon) + ?~ req (pure:m !>(bail)) + ?. ?=(%begs -.u.req) (pure:m !>(bail)) + ?- +<.u.req + %feed + ;< =bowl:spider bind:m get-bowl:strandio + =/ desk q.byk.bowl + ~& dock=[+>.u.req desk] + ;< =cage bind:m (watch-one:strandio /beg/feed [+>.u.req desk] /beg/feed) + ~& > watch-cage=-.cage + =/ j !<(json +.cage) + (pure:m !>(j)) + + %thread + ;< =bowl:spider bind:m get-bowl:strandio + =/ desk q.byk.bowl + ~& dock=[+>.u.req desk] + =/ ship=@p +>-.u.req + =/ id=@da +>+.u.req + =/ ids (crip (scow:sr %uw `@`id)) + =/ wire /beg/thread/[ids] + ;< =cage bind:m (watch-one:strandio wire [ship desk] wire) + ~& > watch-cage=-.cage + =/ j !<(json +.cage) + (pure:m !>(j)) + == + ++ bail ^- json + %+ frond:enjs:format %error + s+'error' + -- diff --git a/app/ted/fetch.hoon b/app/ted/fetch.hoon new file mode 100644 index 0000000..e876511 --- /dev/null +++ b/app/ted/fetch.hoon @@ -0,0 +1,21 @@ +/- spider +/+ strandio +=, strand=strand:spider +=, dejs-soft:format +=, strand-fail=strand-fail:libstrand:spider +^- thread:spider +|= arg=vase + =/ request ;;(request:http q.arg) + =/ m (strand ,vase) ^- form:m + :: =/ m (strand ,json) ^- form:m + ;< ~ bind:m (send-request:strandio request) + ;< res=client-response:iris bind:m take-client-response:strandio + ?. ?=(%finished -.res) (strand-fail:strand %no-body ~) + :: =/ headers headers.response-header.res + :: =/ redirect (get-header:http 'location' headers) + :: ?^ redirect (pure:m [%| u.redirect]) + + :: + ?~ full-file.res (strand-fail:strand %no-body ~) + =/ body=@t q.data.u.full-file.res + (pure:m !>(body)) diff --git a/app/web/assets/apple-touch-icon.png b/app/web/assets/apple-touch-icon.png new file mode 100644 index 0000000..f77c873 Binary files /dev/null and b/app/web/assets/apple-touch-icon.png differ diff --git a/app/web/assets/favicon-16x16.png b/app/web/assets/favicon-16x16.png new file mode 100644 index 0000000..6ab2451 Binary files /dev/null and b/app/web/assets/favicon-16x16.png differ diff --git a/app/web/assets/favicon-32x32.png b/app/web/assets/favicon-32x32.png new file mode 100644 index 0000000..b81291b Binary files /dev/null and b/app/web/assets/favicon-32x32.png differ diff --git a/app/web/assets/favicon.ico b/app/web/assets/favicon.ico new file mode 100644 index 0000000..110004a Binary files /dev/null and b/app/web/assets/favicon.ico differ diff --git a/app/web/assets/script.js b/app/web/assets/script.js new file mode 100644 index 0000000..e69de29 diff --git a/app/web/assets/site.webmanifest b/app/web/assets/site.webmanifest new file mode 100644 index 0000000..45dc8a2 --- /dev/null +++ b/app/web/assets/site.webmanifest @@ -0,0 +1 @@ +{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file diff --git a/app/web/assets/spinner.svg b/app/web/assets/spinner.svg new file mode 100644 index 0000000..a6763ca --- /dev/null +++ b/app/web/assets/spinner.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/web/assets/style.css b/app/web/assets/style.css new file mode 100644 index 0000000..9b8f0e5 --- /dev/null +++ b/app/web/assets/style.css @@ -0,0 +1,415 @@ +@font-face { + font-family: Urbit Sans; + src: url(https://media.urbit.org/fonts/UrbitSans/UrbitSansVFWeb-Regular.woff2) format("woff2"); + font-weight: 100 700; + font-style: normal +} + +@font-face { + font-family: "Urbit Serif Italic"; + src: url(https://media.urbit.org/fonts/UrbitSerifItalic/UrbitSerifItalic-UltraThin.otf); + font-weight: 100; + font-style: normal +} + +@font-face { + font-family: "Urbit Serif Italic"; + src: url(https://media.urbit.org/fonts/UrbitSerifItalic/UrbitSerifItalic-Thin.otf); + font-weight: 200; + font-style: normal +} + +@font-face { + font-family: "Urbit Serif Italic"; + src: url(https://media.urbit.org/fonts/UrbitSerifItalic/UrbitSerifItalic-Light.otf); + font-weight: 300; + font-style: normal +} + +@font-face { + font-family: "Urbit Serif Italic"; + src: url(https://media.urbit.org/fonts/UrbitSerifItalic/UrbitSerifItalic-Regular.otf); + font-weight: 400; + font-style: normal +} + +@font-face { + font-family: "Urbit Serif Italic"; + src: url(https://media.urbit.org/fonts/UrbitSerifItalic/UrbitSerifItalic-Medium.otf); + font-weight: 500; + font-style: normal +} + +@font-face { + font-family: "Urbit Serif Italic"; + src: url(https://media.urbit.org/fonts/UrbitSerifItalic/UrbitSerifItalic-SemiBold.otf); + font-weight: 600; + font-style: normal +} + +@font-face { + font-family: "Urbit Serif Italic"; + src: url(https://media.urbit.org/fonts/UrbitSerifItalic/UrbitSerifItalic-Bold.otf); + font-weight: 700; + font-style: normal +} + +body, +html { + font-family: Urbit Sans +} + +/* urbit intranav color scheme */ +.wit { + --muted: #14140F; + --primary: #F8FAF8; +} +/* fdn intranav color scheme */ +.mos { + --muted: #5A5A55; + --primary: #C3CDC3; +} +/* roadmap intranav color scheme */ +.mos-light { + --muted: #A3ABA3; + --primary: #54544F; +} +/* docs intranav color scheme */ +.blu { + --muted: #5A5A6E; + --primary: #A0DCE6; +} +/* network explorer intranav color scheme */ +.gry { + --muted: #141A14; + --primary: #C8C8C8 +} + +/* utility */ +.f { + display: flex; +} + +.fs { + display: flex; + justify-content: space-between; +} + +.g1 { + gap: 0.5rem; +} + +.g2 { + gap: 1rem; +} +.cp{ + cursor: pointer; +} +.tc{ + text-align:center; +} + +/* base */ + +:root { + --black: #141A14; + --white: #FFFFFF; + --primary: #FFF450; + --muted: #B9B13D; +} + + +body { + background-color: var(--primary); + color: var(--black); + margin: 0; + padding: 0; + min-height: 100vh; + display: flex; + flex-direction: column; +} + +a { + color: inherit; + text-decoration: none; +} + +/* nav */ +#topnav { + height: 63px; + + & #login-div { + display: flex; + align-items: center; + text-decoration: underline; + margin-right: 2rem; + font-size: 18px; + line-height: 24.12px; + /* font-weight: 600; */ + } +} + +#nav-main { + background-color: var(--black); + color: var(--primary); + cursor: pointer; + font-size: 18px; + line-height: 24.12px; + /* font-weight: 600; */ + text-align: center; + display: flex; + align-items: center; + gap: 1rem; + padding: 0 1rem; +} + +#nav-links { + display: flex; + align-items: center; + font-size: 18px; + line-height: 24.12px; + /* font-weight: 600; */ + text-align: center; + gap: 1rem; + + & a { + opacity: 0.5; + } + + & .active { + opacity: 1 + } +} + + +/* index */ +main { + padding: 1rem 2rem; + flex-grow: 1; + overflow: auto; +} + +#index-top { + margin-bottom: 1.5rem; + font-size: 1.4rem; + font-weight: 600; + + div { + opacity: 0.5; + cursor: pointer; + } + + & .active { + opacity: 1; + } +} + +.thread-preview { + padding: 0.5rem 0; + + border-bottom: 2px solid black; + + &:first-child { + border-top: 2px solid black; + } + + & .num { + font-size: 1.5rem; + } + + & a { + text-decoration: none; + } + & .preview{ + max-width: 100%; + } + & .title { + font-weight: 600; + font-size: 25px; + line-height: 33px; + } + & .title-text{ + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + + & .out-link { + font-weight: 600; + font-size: 20px; + + & .arrow { + margin-left: 0.3rem; + font-size: 1.3rem; + } + } + + & .meta { + opacity: 0.5; + & .upvote-button, & .downvote-button{ + + } + } + +} + +.moar { + text-decoration: underline; + font-size: 20px; + margin-top: 1rem; + display: block; +} + +.white{ + background-color: var(--white); +} +/* thread page */ +#thread-main{ + background-color: var(--white); + & h1{ + margin-top: 0.3rem; + } + & ul{ + display: block; + list-style-image: none; + list-style-position: outside; + list-style-type: none; + padding: 0; + & li{ + margin-bottom: 1rem; + } + } + & .nested{ + padding-left: 2rem !important; + } + & .comment{ + & img{ + max-width: 60%; + display: block; + margin: 1rem auto; + } + & .comment-proper{ + margin-top: 0.5rem; + } + & .content{ + font-weight: 600; + margin: 1rem 0; + & p{ + margin: 0.2rem 0; + } + } + } +} +.red{ + color: red; +} +.green { + color: green; +} +.tally{ + font-weight: 600; +} +.uln{ + text-decoration: underline; + cursor: pointer; +} +.return-link{ + display: block; + margin-bottom: 2rem; +} +#og{ + border: 1px solid var(--black); + border-radius: 0.5rem; + & img{ + width: 100%; + max-height: 500px; + } +} +#link-url{ + padding: 0.5rem 1rem; +} +#thread-composer{ + & input{ + display: block; + height: 2rem; + width: 100%; + margin: 1rem 0; + } +} +#comment-composer{ + margin-top: 3rem; + margin-bottom: 1rem; + + padding: 0.5rem 1rem; + border: 1px solid var(--black); + border-radius: 0.5rem; +} +#composer-proper{ + margin: 1rem; + padding: 1rem; + & textarea{ + width: 100%; + height: 200px; + margin-bottom: 0.5rem; + resize: none; + } +} +#login-page{ + & form{ + display: block; + width: 50%; + margin: 2rem auto; + + & input{ + display: block; + width: 30ch; + padding: 0.4rem; + height: 2rem; + margin: 2rem auto; + } + & button{ + display: block; + margin: auto; + font-size: 1.2rem; + } + } +} +#sigil-img{ + margin: 1rem auto !important; +} +#user-page{ + & *{ + margin: auto; + } + & #main{ + width: 50%; + } +} +#logout{ + display: block; + margin: 2rem auto; + font-size: 1.2rem; +} +button, .button{ + border: 1px solid var(--black); + background: none; + padding: 0.5rem; + width: max-content; +} + +.footer { + /* height: 63px; */ + /* display: flex; */ + /* position: fixed; */ + left: 0; + bottom: 0; + /* width: 100%; */ + background-color: none; + padding: 0.5rem; + color: #141A14; + text-align: right; + margin-right: 2rem; + font-size: 20px; + line-height: 23px; + font-weight: 600; +} diff --git a/app/web/components/components.hoon b/app/web/components/components.hoon new file mode 100644 index 0000000..ced005e --- /dev/null +++ b/app/web/components/components.hoon @@ -0,0 +1,3 @@ +|% +++ lol %lol +-- diff --git a/app/web/components/navbar.hoon b/app/web/components/navbar.hoon new file mode 100644 index 0000000..0c87f80 --- /dev/null +++ b/app/web/components/navbar.hoon @@ -0,0 +1,54 @@ +/- sur=nostrill +/= sig /web/components/sigil/sigil +:: +|_ [=state:sur =bowl:gall] +++ new-post-link + ;+ ;a/"/nostril/add":"new post" +++ sigil + :: ;+ (sig(size 48) src.bowl) + :: =/ =ship + :: ?+ (clan:title (~(gut by sessions.state) src.bowl (dec (bex 128)))) + :: !! + :: %czar ?:((gte (bex 64) src.bowl) src.bowl (~(got by sessions.state) src.bowl)) + :: %king ?:((gte (bex 64) src.bowl) src.bowl (~(got by sessions.state) src.bowl)) + :: %duke ?:((gte (bex 64) src.bowl) src.bowl (~(got by sessions.state) src.bowl)) + :: %earl ?:((gte (bex 64) src.bowl) src.bowl (~(got by sessions.state) src.bowl)) + :: == + =/ ship src.bowl + =/ p (scow %p ship) + ;div.f.g2 + ;* new-post-link + ;a/"/forum/usr/{p}":"{p}" + == +++ $ + ;nav#topnav.fs.g2 + ;div.f.g2 + ;div#nav-main.fs + ;a/"https://urbitsystems.tech/"(class "lg:relative flex h-full items-center bg-black w-1/2 lg:w-[14.5rem] xl:w-64 type-ui"):"~ Technical Journal" + ;div#nav-dropdown:"↓" + == + ;div#nav-links + ;a/"https://urbitsystems.tech/information":"Information" + ;a.active/"/forum":"Forum" + == + == + ;div#login-div + ;+ sigil + == + ;script:"{script}" + == +++ script + ^~ + %- trip +''' + async function setSigil(){ + console.log("setting sigil") + const div = document.getElementById("login-div"); + const res = await fetch("/forum/f/sigil"); + const t = await res.text(); + console.log("sigil", t); + if (t) div.innerHTML = t; + } + setSigil(); +''' +-- diff --git a/app/web/components/post-text.hoon b/app/web/components/post-text.hoon new file mode 100644 index 0000000..f4b574f --- /dev/null +++ b/app/web/components/post-text.hoon @@ -0,0 +1,134 @@ +/- tp=post +/+ sr=sortug +|% +++ content + |= c=content-list:tp + ^- marl + (turn c block) +:: +++ block + |= b=block:tp + ^- manx + ?+ -.b ;p; + %paragraph (pg +.b) + %blockquote (bq +.b) + %heading (heading +.b) + %list (htmlist +.b) + %media (media +.b) + %codeblock (codeblock +.b) + %eval (eval +.b) + == +++ eval + |= txt=@t + ^- manx + :: +ream can crash if the cord is wrong, so soften instead + =/ uhoon (rush txt vest) + ?~ uhoon ;p:"The hoon you tried to run ({(trip txt)}) is invalid." + =/ run (mule |.((slap !>(..zuse) u.uhoon))) + ?: ?=(%.n -.run) :: if virtualization fails get a (list tank) + ;p + ;span:"Evaluation of {(trip txt)} failed:" + ;br; + ;* %+ turn p.run |= t=tank ;span:"{~(ram re t)}" + == + ;p:"{(text p.run)}" +++ pg + |= l=(list inline:tp) + ^- manx + ;p + ;* %+ turn l inline + == +++ bq + |= l=(list inline:tp) + ^- manx + ;blockquote + ;* %+ turn l inline + == +++ htmlist + |= [l=(list content-list:tp) ordered=?] + ?: ordered + ;ol + ;* %+ turn l li + == + ;ul + ;* %+ turn l li + == +++ li + |= l=content-list:tp ^- manx + ;li + ;* (turn l block) + == +++ media + |= m=media:tp + ^- manx + ?- -.m + %video ;video@"{(trip p.m)}"; + %audio ;audio@"{(trip p.m)}"; + %images ;div.images + ;* %+ turn p.m + |= [url=@t caption=@t] + ;img@"{(trip url)}"(alt (trip caption)); + == + == +++ codeblock + |= [code=@t lang=@t] :: TODO lang suff + ;pre + ;code:"{(trip code)}" + == +++ heading + |= [pp=@t q=@] + ^- manx + =/ p (trip pp) + ?: .=(1 q) ;h1:"{p}" + ?: .=(2 q) ;h2:"{p}" + ?: .=(3 q) ;h3:"{p}" + ?: .=(4 q) ;h4:"{p}" + ?: .=(5 q) ;h5:"{p}" + ?: .=(6 q) ;h6:"{p}" + ;p:"" +++ inline + |= l=inline:tp + ^- manx + ?+ -.l ;span; + %text (parse-text p.l) + %italic ;i:"{(trip p.l)}" + %bold ;strong:"{(trip p.l)}" + :: %strike ;del:"{(trip p.l)}" + %ship ;span.ship:"{(trip (scot %p p.l))}" + %codespan ;code:"{(trip p.l)}" + %break ;br; + %img ;a/"{(trip src.l)}" + ;img@"{(trip src.l)}"(alt (trip alt.l)); + == + %link ?. (is-image:parsing:sr href.l) + ;a/"{(trip href.l)}"(target "_blank"):"{(trip show.l)}" + ;a/"{(trip href.l)}" + =target "_blank" + ;img@"{(trip href.l)}"(alt (trip show.l)); + == + == +++ parse-text + |= txt=@t + ^- manx + =/ tpe (trip txt) + =/ youtube (rush txt youtube:parsing:sr) + ?^ youtube + :: ;a/"{tpe}" + :: ;img@"https://i.ytimg.com/vi/{u.youtube}/hqdefault.jpg"; + :: == + ;iframe.youtube-frame@"https://www.youtube.com/embed/{u.youtube}"; + =/ twatter-status (rush txt twatter:parsing:sr) + ?^ twatter-status + ;div :: goddamn twatter embeds insert themselves as last child + ;a.parsed-twatter(status u.twatter-status):"{tpe}" + == + =/ trimmed (rush txt trim:parsing:sr) + ?~ trimmed ~& parsing-error=txt ;span.parsing-error; + =/ link=(unit purl:eyre) (rust u.trimmed link:parsing:sr) + ?^ link + ?^ p.q.u.link + ?: (is-img:parsing:sr u.p.q.u.link) ;img@"{u.trimmed}"; + ;a.parsed-link/"{tpe}"(target "_blank"):"{tpe}" :: normal link + ;a.parsed-link/"{tpe}"(target "_blank"):"{tpe}" :: normal link + ;span:"{tpe}" +-- diff --git a/app/web/components/sigil/sigil.hoon b/app/web/components/sigil/sigil.hoon new file mode 100644 index 0000000..cee33a0 --- /dev/null +++ b/app/web/components/sigil/sigil.hoon @@ -0,0 +1,227 @@ +:: sigil: @p svg generation +:: +:: usage: do a named import, then invoke as a function: +:: (sigil ~zod) +:: +:: optionally modify configuration parameters: +:: %. ~paldev +:: %_ sigil +:: size 25 +:: fg "black" +:: bg "#2aa779" +:: margin | +:: icon & +:: == +:: +::NOTE svg construction logic is coupled to the symbols definitions. +:: the symbols' elements assume they live in a space of 128x128. +:: what we do here is assume an svg _canvas_ of 128x128, draw the +:: symbols at their original sizes, and then scale them down to fit. +:: +/= sigil-symbols /web/components/sigil/symbols +:: +:: config +:: +=/ fg=tape "white" +=/ bg=tape "black" +=/ size=@ud 128 +=/ margin=? & +=/ icon=? | +:: +:: +~% %sigil ..part ~ +=/ who=ship ~zod +=/ syc=@ud 1 +|^ |= =ship + ^- manx + :: + =. who ship + =/ syz (simp who) + =. syc (lent syz) + :: shift the sigil to account for the margin + :: scale the sigil to account for the amount of symbols + :: + =/ sire=@rd (sun:rd size) + =/ tr=tape + ::TODO render transform inside +sigil:svg? + %+ transform:svg + ?. margin ~ + =+ grid:pos + `[(gird:pos x) (gird:pos y)] + `span:pos + :: + =/ sw=@rd ::TODO + ?: icon .~0.8 ::TODO scale with size? + (add:rd .~0.33 (div:rd sire .~128)) + :: + %- outer:svg + %+ sigil:svg + [tr sw] + (symbols:svg syz) +:: +++ pos + |% + ++ span :: symbol scale (relative to full canvas) + ^- @rd + ::TODO accounting for margin here feels a bit ugly? + ?+ (max grid) !! + %1 ?:(margin .~0.4 .~1) + %2 ?:(margin .~0.4 .~0.5) + %4 ?:(margin .~0.2 .~0.25) + == + :: + ++ grid :: size in symbols + ^- [x=@ud y=@ud] + ?+ syc !! + %16 [4 4] + %8 [4 4] + %4 [2 2] + %2 [2 1] + %1 [1 1] + == + :: + ++ gird :: calculate margin + |= n=@ud + ^- @rd + =- (div:rd - .~2) :: / both sides + %+ sub:rd .~128 :: canvas size - + %+ mul:rd (sun:rd n) :: symbols * + %+ mul:rd span:pos :: symbol scale * + .~128 :: symbol size + :: + ++ plan :: as position on symbol grid + |= i=@ud + ^- [x=@ud y=@ud] + ?+ [syc i] !! + [%16 *] [(mod i 4) (div i 4)] + :: + [%8 %0] [0 0] + [%8 %1] [3 0] + [%8 %2] [0 3] + [%8 %3] [3 3] + [%8 %4] [1 1] + [%8 %5] [2 1] + [%8 %6] [1 2] + [%8 %7] [2 2] + :: + [%4 *] [(mod i 2) (div i 2)] + [%2 *] [i 0] + [%1 *] [0 0] + == + -- +:: +++ svg + |% + ++ outer + |= inner=manx + ^- manx + =/ s=tape ((d-co:co 1) size) + ;svg + =style "display: block; width: {s}px; height: {s}px;" :: prevent bottom margin on svg tag + =width s + =height s + =viewBox "0 0 128 128" + =version "1.1" + =xmlns "http://www.w3.org/2000/svg" + ::TODO additional attributes from config arg? + ;rect + =fill bg + =width "128" + =height "128"; + ;+ inner + == + :: + ::TODO should it be possible to get these svg elements out of this lib? + ++ sigil + |= [[tr=tape sw=@rd] symbols=(list manx)] + ^- manx + ;g + =transform tr + =stroke-width (say-rd sw) + =stroke-linecap "square" + =fill fg + =stroke bg + ::NOTE unfortunately, vector-effect cannot be inherited, + :: so it gets inlined in the symbol elements instead + :: =vector-effect "non-scaling-stroke" + ;* symbols + == + :: + ++ symbols + |= noms=(list @t) + ^- (list manx) + =| i=@ud + =/ l=@ud (lent noms) + |- + ?~ noms ~ + :_ $(noms t.noms, i +(i)) + ::TODO exclude if both 0 + =+ (plan:pos i) + ;g(transform (transform `[(sun:rd (mul x 128)) (sun:rd (mul y 128))] ~)) + ;* =+ ((symbol i.noms) fg bg) + ?.(icon - (scag 1 -)) + == + :: + ++ symbol ~(got by sigil-symbols) + :: + ++ transform ::TODO take manx instead so we can omit attr entirely? + |= [translate=(unit [x=@rd y=@rd]) scale=(unit @rd)] + ^- tape + %- zing + ^- (list tape) + ::TODO make cleaner + =- ?: ?=(?(~ [* ~]) -) - + (join " " `(list tape)`-) + ^- (list tape) + :~ ?~ translate ~ + ?: =([0 0] u.translate) ~ + "translate({(say-rd x.u.translate)} {(say-rd y.u.translate)})" + :: + ?~ scale ~ + "scale({(say-rd u.scale)})" + == + -- +:: +++ simp + |= =ship + ^- (list @t) + :: split into phonemes + :: + =/ noms=(list @t) + =/ nom=@t + (rsh 3 (scot %p ship)) + |- ?~ nom ~ + |- ?: =('-' (end 3 nom)) + $(nom (rsh 3 nom)) + :- (end 3^3 nom) + ^$(nom (rsh 3^3 nom)) + :: fill leading empties with 'zod' + :: + =/ left=@ud + =- (sub - (lent noms)) + %- bex + ?- (clan:title ship) + %czar 0 + %king 1 + %duke 2 + %earl 3 + %pawn 4 + == + |- + ?: =(0 left) noms + $(noms ['zod' noms], left (dec left)) +:: +++ rd ~(. ^rd %n) +++ say-rd + |= n=@rd + ^- tape + =/ =dn (drg:rd n) + ?> ?=(%d -.dn) + =/ [s=? m=@ud] (old:si e.dn) + =/ x=@ud (pow 10 m) + %+ weld + %- (d-co:co 1) + ?:(s (mul a.dn x) (div a.dn x)) + ?: s ~ + ['.' ((d-co:co m) (mod a.dn x))] +-- diff --git a/app/web/components/sigil/symbols.hoon b/app/web/components/sigil/symbols.hoon new file mode 100644 index 0000000..1131612 --- /dev/null +++ b/app/web/components/sigil/symbols.hoon @@ -0,0 +1,14332 @@ +:: sigil-symbols: svg symbols for phonemes, for use in /lib/sigil +:: +:: the map is keyed by phoneme cords and contains functions for +:: generating lists of manxes based on fore- and background colors, +:: intended to be wrapped up in an svg for further processing. +:: +:: shapes and default attributes sourced from: +:: https://github.com/urbit/sigil-js/blob/fdea06f/src/index.json +:: +::NOTE to reduce svg size, we exclude certain common/shared attributes. +:: we expect the /lib/sigil to wrap these elements in a which sets +:: those attributes, letting them be inherited. they are as follows: +:: =fill fg +:: =stroke bg +:: =stroke-linecap "square" +:: =stroke-width +:: we assume the defaults specified above, and only include those +:: attributes below if they deviate from those. (this includes adding +:: stroke="none" for elements whose original specification did not +:: include a stroke.) +:: unfortunately, the vector-effect attribute cannot be inherted by +:: children, so we have to inline it for every element here. +:: for ease of change, we leave excluded attributes as comments here. +:: +^~ +%- ~(gas by *(map cord $-([fg=tape bg=tape] (list manx)))) +:~ + :- 'bac' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "-0.0029152" + =x2 "127.983" + =y2 "127.986" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "16" + =cy "112" + =r "11.5" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + ;circle + =cx "16" + =cy "112" + =r "9" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + :: =stroke-width "2" + == +:: + :- 'bal' + |= [fg=tape bg=tape] + :~ ;path + =d "M0.0541 0C70.7217 0.0292317 128 57.3256 128 128C57.3177 128 0.0164917 70.7089 7.62806e-06 0.0305091C7.62851e-06 0.0203397 -4.44317e-10 0.01017 0 0H0.0541Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "32" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;line + =x1 "0.5" + =y1 "-0.5" + =x2 "181.5" + =y2 "-0.5" + =transform "matrix(-0.707107 0.707107 0.707107 0.707107 128.71 0)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;line + =x1 "128" + =y1 "32.0072" + =x2 "32.7071" + =y2 "127.3" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;line + =x1 "128" + =y1 "64.0072" + =x2 "64.7071" + =y2 "127.3" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;line + =x1 "128" + =y1 "96.0072" + =x2 "96.7071" + =y2 "127.3" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'ban' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 0C128 70.6924 70.6924 128 -1.52588e-05 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'bar' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "32" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'bat' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 0C128 35.3462 99.3462 64 64 64C28.6538 64 0 35.3462 0 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'bec' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00280762 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M80 64C80 72.8366 72.8366 80 64 80C55.1634 80 48 72.8366 48 64C48 55.1634 55.1634 48 64 48C72.8366 48 80 55.1634 80 64ZM64 72C68.4183 72 72 68.4183 72 64C72 59.5817 68.4183 56 64 56C59.5817 56 56 59.5817 56 64C56 68.4183 59.5817 72 64 72Z" + =fill bg; + == +:: + :- 'bel' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 127.946C0.0292286 57.2783 57.3256 3.08928e-06 128 0C128 70.6823 70.7089 127.984 0.0305092 128C0.0203397 128 0.01017 128 2.36469e-09 128L0 127.946Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'ben' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "8" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "32" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'bep' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64C92.6538 64 64 92.6538 64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'ber' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M96 0L96 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'bes' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 128C64 92.6538 35.3462 64 0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M-0.00280762 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'bet' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "16.0036" + =y1 "15.9965" + =x2 "48.0036" + =y2 "47.9965" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'bex' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "16.0036" + =y1 "15.9965" + =x2 "48.0036" + =y2 "47.9965" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M80 64C80 72.8366 72.8366 80 64 80C55.1634 80 48 72.8366 48 64C48 55.1634 55.1634 48 64 48C72.8366 48 80 55.1634 80 64ZM64 72C68.4183 72 72 68.4183 72 64C72 59.5817 68.4183 56 64 56C59.5817 56 56 59.5817 56 64C56 68.4183 59.5817 72 64 72Z" + =fill bg; + == +:: + :- 'bic' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 96C74.9807 96 32 53.0193 32 -4.19629e-06" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'bid' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M32 0C32 70.6925 74.9807 128 128 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'bil' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "80.0035" + =y1 "79.9965" + =x2 "112.004" + =y2 "111.997" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M80 64C80 72.8366 72.8366 80 64 80C55.1634 80 48 72.8366 48 64C48 55.1634 55.1634 48 64 48C72.8366 48 80 55.1634 80 64ZM64 72C68.4183 72 72 68.4183 72 64C72 59.5817 68.4183 56 64 56C59.5817 56 56 59.5817 56 64C56 68.4183 59.5817 72 64 72Z" + =fill bg; + == +:: + :- 'bin' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + == +:: + :- 'bis' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "128" + =y1 "64" + =x2 "-8.87604e-09" + =y2 "64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "128" + =y1 "96" + =x2 "-8.87604e-09" + =y2 "96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "128" + =y1 "32" + =x2 "-8.87604e-09" + =y2 "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'bit' + |= [fg=tape bg=tape] + :~ ;path + =d "M0.0541 0C70.7217 0.0292317 128 57.3256 128 128C57.3177 128 0.0164917 70.7089 7.62806e-06 0.0305091C7.62851e-06 0.0203397 -4.44317e-10 0.01017 0 0H0.0541Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 0L0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'bol' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "48" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "128" + =y1 "64" + =x2 "-4.37114e-08" + =y2 "64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'bon' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 128C92.6538 128 64 99.3462 64 64C64 28.6538 92.6538 4.215e-07 128 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'bor' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "-0.0029152" + =x2 "127.983" + =y2 "127.986" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M0 128C4.63574e-06 92.6489 14.3309 60.6449 37.5 37.4807" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M32 128C32 101.492 42.7436 77.4939 60.1138 60.1217" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M64 128C64 110.328 71.1626 94.3287 82.7432 82.7471" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M95.6284 128C95.6284 119.164 99.2097 111.164 105 105.374" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'bos' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "-0.0029152" + =x2 "127.983" + =y2 "127.986" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "32" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'bot' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "32" + =y1 "2.18557e-08" + =x2 "32" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "32" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "32" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'bud' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M16 64C16 90.5097 37.4903 112 64 112" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "16" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "16" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'bur' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M7.37542e-06 -3.56072e-06C1.19529e-06 70.6924 57.3075 128 128 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 0L0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'bus' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M32 128C32 110.327 17.6731 96 0 96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'byl' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "16" + =cy "112" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "16" + =cy "112" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;path + =d "M-0.00280762 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M22.1288 22.6299C16.0075 28.7511 8.0234 31.874 0.00134547 31.9986M44.7562 45.2573C32.3866 57.6269 16.2133 63.8747 0.00134277 64.0005M67.3836 67.8847C48.7656 86.5027 24.403 95.8749 0.00134412 96.0012" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'byn' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 0C128 35.3511 113.669 67.3551 90.5 90.5193" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M96 0C96 26.5077 85.2564 50.5061 67.8862 67.8783" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M64 0C64 17.6721 56.8374 33.6713 45.2568 45.2529" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M32.3716 0C32.3716 8.83603 28.7903 16.8356 23 22.6264" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'byr' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 127.946C0.0292286 57.2783 57.3256 3.08928e-06 128 0C128 70.6823 70.7089 127.984 0.0305092 128C0.0203397 128 0.01017 128 2.36469e-09 128L0 127.946Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00280762 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "48" + =cy "80" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "48" + =cy "80" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'byt' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "48" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M32 0L32 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'dab' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =y1 "-0.5" + =x2 "45.2548" + =y2 "-0.5" + =transform "matrix(0.707107 -0.707107 -0.707107 -0.707107 79.65 47.6499)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "16" + =cy "112" + =r "11.5" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + ;circle + =cx "16" + =cy "112" + =r "9" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + :: =stroke-width "2" + == +:: + :- 'dac' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 0L0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M64 0L64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 64L-5.96046e-08 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'dal' + |= [fg=tape bg=tape] + :~ ;path + =d "M0.0541 0C70.7217 0.0292317 128 57.3256 128 128C57.3177 128 0.0164917 70.7089 7.62806e-06 0.0305091C7.62851e-06 0.0203397 -4.44317e-10 0.01017 0 0H0.0541Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "-0.0029152" + =x2 "63.29" + =y2 "63.2929" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;line + =x1 "0.5" + =y1 "-0.5" + =x2 "181.5" + =y2 "-0.5" + =transform "matrix(-0.707107 0.707107 0.707107 0.707107 128.71 0)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;line + =x1 "128" + =y1 "32.0072" + =x2 "32.7071" + =y2 "127.3" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;line + =x1 "128" + =y1 "64.0072" + =x2 "64.7071" + =y2 "127.3" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;line + =x1 "128" + =y1 "96.0072" + =x2 "96.7071" + =y2 "127.3" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'dan' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "64" + =y1 "2.18557e-08" + =x2 "64" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "96" + =y1 "2.18557e-08" + =x2 "96" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'dap' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "80.0035" + =y1 "79.9964" + =x2 "112.004" + =y2 "111.996" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'dar' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "32" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;path + =d "M86.6274 86.6274C99.1242 74.1307 99.1242 53.8694 86.6274 41.3726C74.1306 28.8758 53.8694 28.8758 41.3726 41.3726" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M75.3137 75.3137C81.5621 69.0653 81.5621 58.9347 75.3137 52.6863C69.0653 46.4379 58.9347 46.4379 52.6863 52.6863" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M97.9411 97.9411C116.686 79.1959 116.686 48.804 97.9411 30.0589C79.196 11.3137 48.804 11.3137 30.0589 30.0589" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'das' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "64" + =y1 "2.18557e-08" + =x2 "64" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M80 64C80 72.8366 72.8366 80 64 80C55.1634 80 48 72.8366 48 64C48 55.1634 55.1634 48 64 48C72.8366 48 80 55.1634 80 64ZM64 72C68.4183 72 72 68.4183 72 64C72 59.5817 68.4183 56 64 56C59.5817 56 56 59.5817 56 64C56 68.4183 59.5817 72 64 72Z" + =fill bg; + == +:: + :- 'dat' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 128C92.6538 128 64 99.3462 64 64C64 28.6538 92.6538 -1.54503e-06 128 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'dav' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M96 64C96 46.3269 81.6731 32 64 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "96" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'deb' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 -6.35781e-07C64 35.3462 35.3462 64 0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'dec' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "112" + =cy "16" + =r "11.5" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + ;circle + =cx "112" + =cy "16" + =r "9" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + :: =stroke-width "2" + == +:: + :- 'def' + |= [fg=tape bg=tape] + :~ ;path + =d "M0.0541 0C70.7217 0.0292317 128 57.3256 128 128C57.3177 128 0.0164917 70.7089 7.62806e-06 0.0305091C7.62851e-06 0.0203397 -4.44317e-10 0.01017 0 0H0.0541Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M0 128L128 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M0 94L94 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M0 64L64 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M0 32L32 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "16" + =cy "112" + =r "11.5" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + ;circle + =cx "16" + =cy "112" + =r "9" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + :: =stroke-width "2" + == +:: + :- 'deg' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 128C64 92.6538 35.3462 64 0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'del' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 127.946C0.0292286 57.2783 57.3256 3.08928e-06 128 0C128 70.6823 70.7089 127.984 0.0305092 128C0.0203397 128 0.01017 128 2.36469e-09 128L0 127.946Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "32" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'dem' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M64 -6.35781e-07C64 35.3462 35.3462 64 0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "32" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'den' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M1.52575e-06 96C53.0193 96 96 53.0193 96 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M-0.00280762 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'dep' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M32 128C32 101.492 42.7436 77.4939 60.1138 60.1216" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M64 128C64 110.328 71.1626 94.3287 82.7432 82.7471" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M95.6284 128C95.6284 119.164 99.2097 111.164 105 105.374" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'der' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 64L5.59506e-06 0L128 1.11901e-05V64C128 99.3462 99.3462 128 64 128C28.6538 128 -4.6351e-06 99.3462 0 64Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M96 128L96 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'des' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M96 0L96 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'det' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "15.9964" + =y1 "111.996" + =x2 "47.9964" + =y2 "79.9964" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'dev' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "96.5" + =y1 "3.07317e-08" + =x2 "96.5" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "32.5" + =y1 "3.07317e-08" + =x2 "32.5" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'dex' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "64" + =y1 "2.18557e-08" + =x2 "64" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M80 64C80 72.8366 72.8366 80 64 80C55.1634 80 48 72.8366 48 64C48 55.1634 55.1634 48 64 48C72.8366 48 80 55.1634 80 64ZM64 72C68.4183 72 72 68.4183 72 64C72 59.5817 68.4183 56 64 56C59.5817 56 56 59.5817 56 64C56 68.4183 59.5817 72 64 72Z" + =fill bg; + == +:: + :- 'dib' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "8.74228e-08" + =y1 "64" + =x2 "128" + =y2 "64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "5.25874e-08" + =y1 "32" + =x2 "128" + =y2 "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'dif' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M60.1244 67.3837C41.5063 48.7657 32.1342 24.4031 32.0079 0.00145601M82.7518 44.7563C70.3822 32.3867 64.1344 16.2134 64.0086 0.00145196M105.379 22.1289C99.258 16.0077 96.1351 8.02351 96.0105 0.00145196" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "0.5" + =y1 "-0.5" + =x2 "181.5" + =y2 "-0.5" + =transform "matrix(-0.707107 0.707107 0.707107 0.707107 128.71 0)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "16" + =cy "16" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "16" + =cy "16" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "16" + =cy "112" + =r "11.5" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + ;circle + =cx "16" + =cy "112" + =r "9" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + :: =stroke-width "2" + == +:: + :- 'dig' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "64.5" + =y1 "-0.5" + =x2 "64.5" + =y2 "127.5" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "16.0035" + =y1 "15.9965" + =x2 "48.0035" + =y2 "47.9965" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'dil' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "80.0036" + =y1 "79.9964" + =x2 "112.004" + =y2 "111.996" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "0.5" + =y1 "-0.5" + =x2 "181.5" + =y2 "-0.5" + =transform "matrix(-0.707107 0.707107 0.707107 0.707107 128.71 0)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'din' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "96" + =y1 "2.18557e-08" + =x2 "96" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'dir' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M96 64C96 81.6731 81.6731 96 64 96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "16.0035" + =y1 "15.9965" + =x2 "48.0035" + =y2 "47.9965" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'dis' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.0029152 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "96" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "32" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'div' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 0L64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M-4.19629e-06 96C70.6924 96 128 53.0193 128 5.59506e-06" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M-2.79753e-06 64C70.6924 64 128 35.3462 128 5.59506e-06" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'doc' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 127.946C0.0292286 57.2783 57.3256 3.08928e-06 128 0C128 70.6823 70.7089 127.984 0.0305092 128C0.0203397 128 0.01017 128 2.36469e-09 128L0 127.946Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M127.997 0L-0.00291443 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M86.6274 41.3726C74.1306 28.8758 53.8694 28.8758 41.3726 41.3726C28.8758 53.8694 28.8758 74.1306 41.3726 86.6274" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'dol' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M-4.19629e-06 16C26.5097 16 48 37.4903 48 64C48 90.5097 26.5097 112 0 112" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'don' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-3.8147e-06 128C-7.24632e-07 92.6538 28.6538 64 64 64C99.3462 64 128 92.6538 128 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'dop' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 112C90.5097 112 112 90.5097 112 64C112 37.4903 90.5097 16 64 16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'dor' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =y1 "63.5" + =x2 "128" + =y2 "63.5" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'dos' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "-0.0029152" + =x2 "127.983" + =y2 "127.986" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M86.6274 86.6274C99.1242 74.1306 99.1242 53.8693 86.6274 41.3725C74.1306 28.8758 53.8694 28.8758 41.3726 41.3725" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'dot' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'dov' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 0L0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M-0.701724 31.9914C25.6281 31.9914 49.4822 42.5913 66.8261 59.7565M-0.701723 63.9914C16.7916 63.9914 32.6456 71.0098 44.1982 82.3844M-0.701722 95.9914C7.955 95.9914 15.8089 99.4288 21.5694 105.013" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M0 0C35.3511 0 67.3551 14.3309 90.5193 37.5" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'doz' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 128L0 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M30.0589 30.0589C48.804 11.3137 79.196 11.3137 97.9411 30.0589C116.686 48.804 116.686 79.196 97.9411 97.9411" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M52.6863 52.6863C58.9347 46.4379 69.0653 46.4379 75.3137 52.6863C81.5621 58.9347 81.5621 69.0653 75.3137 75.3137" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M41.3726 41.3726C53.8694 28.8758 74.1306 28.8758 86.6274 41.3726C99.1242 53.8694 99.1242 74.1306 86.6274 86.6274" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'duc' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 32L0 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "32" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'dul' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 16C90.5097 16 112 37.4903 112 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M64 64L64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'dun' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M112 64C112 37.4903 90.5097 16 64 16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'dur' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 64L5.59506e-06 0L128 1.11901e-05V64C128 99.3462 99.3462 128 64 128C28.6538 128 -4.6351e-06 99.3462 0 64Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + == +:: + :- 'dus' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M32 -3.05151e-06C32 53.0193 74.9807 96 128 96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 0L0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'dut' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "96" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'dux' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-2.79795e-06 -3.55988e-06C70.6924 -4.40288e-06 128 57.3075 128 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'dyl' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M2.03434e-06 128C70.6924 128 128 70.6925 128 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'dyn' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 32L0 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'dyr' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 127.946C0.0292286 57.2783 57.3256 3.08928e-06 128 0C128 70.6823 70.7089 127.984 0.0305092 128C0.0203397 128 0.01017 128 2.36469e-09 128L0 127.946Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "96" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "32" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'dys' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-3.8147e-06 1.11901e-05C-7.24633e-07 35.3462 28.6538 64 64 64C99.3462 64 128 35.3462 128 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'dyt' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "32" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'fab' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 0L0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "16" + =cy "112" + =r "11.5" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + ;circle + =cx "16" + =cy "112" + =r "9" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + :: =stroke-width "2" + == +:: + :- 'fad' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "96" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "32" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'fal' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 127.946C0.0292286 57.2783 57.3256 3.08928e-06 128 0C128 70.6823 70.7089 127.984 0.0305092 128C0.0203397 128 0.01017 128 2.36469e-09 128L0 127.946Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M0 128L128 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M0 0C35.3511 0 67.3551 14.3309 90.5193 37.5" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M0 32C26.5077 32 50.5061 42.7436 67.8783 60.1138" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M0 64C17.6721 64 33.6713 71.1626 45.2529 82.7432" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M0 95.6284C8.83603 95.6284 16.8356 99.2097 22.6264 105" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'fam' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "128" + =y1 "64" + =x2 "-4.37114e-08" + =y2 "64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "64" + =y1 "2.18557e-08" + =x2 "64" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'fan' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 0L0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M64 0L64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'fas' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "96" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'feb' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M7.37542e-06 -3.56072e-06C1.19529e-06 70.6924 57.3075 128 128 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'fed' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 32L0 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'fel' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 127.946C0.0292286 57.2783 57.3256 3.08928e-06 128 0C128 70.6823 70.7089 127.984 0.0305092 128C0.0203397 128 0.01017 128 2.36469e-09 128L0 127.946Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =y1 "-0.5" + =x2 "45.2548" + =y2 "-0.5" + =transform "matrix(0.707107 -0.707107 -0.707107 -0.707107 79.65 47.6499)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'fen' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00280762 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M0 128C4.63574e-06 92.6489 14.3309 60.6449 37.5 37.4807" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M32 128C32 101.492 42.7436 77.4939 60.1138 60.1217" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M64 128C64 110.328 71.1626 94.3287 82.7432 82.7471" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M95.6284 128C95.6284 119.164 99.2097 111.164 105 105.374" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'fep' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 0L0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'fer' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 0L64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'fes' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M32 0L32 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'fet' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 0L0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'fex' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =y1 "-0.5" + =x2 "45.2548" + =y2 "-0.5" + =transform "matrix(0.707107 -0.707107 -0.707107 -0.707107 79.6499 47.6499)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M80 64C80 72.8366 72.8366 80 64 80C55.1634 80 48 72.8366 48 64C48 55.1634 55.1634 48 64 48C72.8366 48 80 55.1634 80 64ZM64 72C68.4183 72 72 68.4183 72 64C72 59.5817 68.4183 56 64 56C59.5817 56 56 59.5817 56 64C56 68.4183 59.5817 72 64 72Z" + =fill bg; + == +:: + :- 'fid' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00291443 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "96" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "32" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'fig' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 0L64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'fil' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "128" + =y1 "64" + =x2 "-4.37114e-08" + =y2 "64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "64" + =y1 "2.18557e-08" + =x2 "64" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "32" + =y1 "2.18557e-08" + =x2 "32" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'fin' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "98" + =y1 "2.18557e-08" + =x2 "98" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'fip' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "-0.0029152" + =x2 "127.983" + =y2 "127.986" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "64" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'fir' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =y1 "-0.5" + =x2 "45.2548" + =y2 "-0.5" + =transform "matrix(0.707107 -0.707107 -0.707107 -0.707107 79.65 47.6499)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "80.0036" + =y1 "79.9965" + =x2 "112.004" + =y2 "111.997" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "16.0035" + =y1 "15.9965" + =x2 "48.0035" + =y2 "47.9965" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'fit' + |= [fg=tape bg=tape] + :~ ;path + =d "M0.0541 0C70.7217 0.0292317 128 57.3256 128 128C57.3177 128 0.0164917 70.7089 7.62806e-06 0.0305091C7.62851e-06 0.0203397 -4.44317e-10 0.01017 0 0H0.0541Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "0.5" + =y1 "-0.5" + =x2 "181.5" + =y2 "-0.5" + =transform "matrix(-0.707107 0.707107 0.707107 0.707107 128.71 0)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'fod' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M80 64C80 72.8366 72.8366 80 64 80C55.1634 80 48 72.8366 48 64C48 55.1634 55.1634 48 64 48C72.8366 48 80 55.1634 80 64ZM64 72C68.4183 72 72 68.4183 72 64C72 59.5817 68.4183 56 64 56C59.5817 56 56 59.5817 56 64C56 68.4183 59.5817 72 64 72Z" + =fill bg; + == +:: + :- 'fog' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M86.6274 86.6274C99.1242 74.1306 99.1242 53.8694 86.6274 41.3726C74.1306 28.8758 53.8694 28.8758 41.3726 41.3726" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'fol' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "128" + =y1 "64" + =x2 "-4.37114e-08" + =y2 "64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'fon' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "-0.0029152" + =x2 "127.983" + =y2 "127.986" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'fop' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "-0.0029152" + =x2 "127.983" + =y2 "127.986" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M16 64C16 90.5097 37.4903 112 64 112" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "16" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "16" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'for' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "96" + =y1 "2.18557e-08" + =x2 "96" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'fos' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "-0.0029152" + =x2 "127.983" + =y2 "127.986" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M96 0C96 53.0193 53.0193 96 0 96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M64 0C64 35.3462 35.3462 64 0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M32 0C32 17.6731 17.6731 32 0 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'fot' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "15.9964" + =y1 "111.997" + =x2 "47.9964" + =y2 "79.9965" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'ful' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 96C81.6731 96 96 81.6731 96 64C96 46.3269 81.6731 32 64 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'fun' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 64V128H0L2.79753e-06 64C4.34256e-06 28.6538 28.6538 -1.54503e-06 64 0C99.3462 1.54503e-06 128 28.6538 128 64Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "15.9964" + =y1 "111.997" + =x2 "47.9964" + =y2 "79.9965" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M-0.00280762 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "16" + =cy "112" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "16" + =cy "112" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'fur' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 0L0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M86.8823 41.6275C74.3855 29.1307 54.1242 29.1307 41.6274 41.6275C29.1307 54.1243 29.1307 74.3855 41.6274 86.8823" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'fus' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 0L0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M32 128C32 110.327 17.6731 96 0 96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'fyl' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M22.1288 22.6299C16.0075 28.7511 8.0234 31.874 0.00134547 31.9986M44.7562 45.2573C32.3866 57.6269 16.2133 63.8747 0.00134277 64.0005M67.3836 67.8847C48.7656 86.5027 24.403 95.8749 0.00134412 96.0012" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M-0.00280762 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'fyn' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 0L0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'fyr' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 127.946C0.0292286 57.2783 57.3256 3.08928e-06 128 0C128 70.6823 70.7089 127.984 0.0305092 128C0.0203397 128 0.01017 128 2.36469e-09 128L0 127.946Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00268555 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;line + =y1 "-0.5" + =x2 "45.2548" + =y2 "-0.5" + =transform "matrix(0.707107 -0.707107 -0.707107 -0.707107 79.6499 47.6499)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'hab' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "0.5" + =y1 "-0.5" + =x2 "181.5" + =y2 "-0.5" + =transform "matrix(-0.707107 0.707107 0.707107 0.707107 128.71 0)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M60.1244 67.3837C41.5063 48.7657 32.1342 24.4031 32.0079 0.00145601M82.7518 44.7563C70.3822 32.3867 64.1344 16.2134 64.0086 0.00145196M105.379 22.1289C99.258 16.0077 96.1351 8.02351 96.0105 0.00145196" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "16" + =cy "112" + =r "11.5" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + ;circle + =cx "16" + =cy "112" + =r "9" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + :: =stroke-width "2" + == +:: + :- 'hac' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "0.5" + =y1 "-0.5" + =x2 "181.5" + =y2 "-0.5" + =transform "matrix(-0.707107 0.707107 0.707107 0.707107 128.71 0)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'had' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "32" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'hal' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 127.946C0.0292286 57.2783 57.3256 3.08928e-06 128 0C128 70.6823 70.7089 127.984 0.0305092 128C0.0203397 128 0.01017 128 2.36469e-09 128L0 127.946Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "64.5" + =y1 "-0.5" + =x2 "64.5" + =y2 "127.5" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M16 64C16 90.5097 37.4903 112 64 112" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M112 64C112 37.4903 90.5097 16 64 16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'han' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + == +:: + :- 'hap' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "48" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'har' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "64" + =y1 "2.18557e-08" + =x2 "64" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'has' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "32" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'hat' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "16" + =cy "16" + =r "8" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;line + =x1 "0.5" + =y1 "-0.5" + =x2 "181.5" + =y2 "-0.5" + =transform "matrix(-0.707107 0.707107 0.707107 0.707107 128.71 0)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M48 32C48 40.8366 40.8366 48 32 48C23.1634 48 16 40.8366 16 32C16 23.1634 23.1634 16 32 16C40.8366 16 48 23.1634 48 32ZM32 40C36.4183 40 40 36.4183 40 32C40 27.5817 36.4183 24 32 24C27.5817 24 24 27.5817 24 32C24 36.4183 27.5817 40 32 40Z" + =fill bg; + == +:: + :- 'hav' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "96" + =y1 "2.18557e-08" + =x2 "96" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'heb' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M2.03434e-06 128C70.6924 128 128 70.6925 128 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'hec' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "32" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "32" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "96" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'hep' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "-0.00285417" + =x2 "127.983" + =y2 "127.986" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'hes' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M32 0L32 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M48 96C48 104.837 40.8366 112 32 112C23.1634 112 16 104.837 16 96C16 87.1634 23.1634 80 32 80C40.8366 80 48 87.1634 48 96ZM32 104C36.4183 104 40 100.418 40 96C40 91.5817 36.4183 88 32 88C27.5817 88 24 91.5817 24 96C24 100.418 27.5817 104 32 104Z" + =fill bg; + == +:: + :- 'het' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M96 128L96 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'hex' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 0L0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M80 64C80 72.8366 72.8366 80 64 80C55.1634 80 48 72.8366 48 64C48 55.1634 55.1634 48 64 48C72.8366 48 80 55.1634 80 64ZM64 72C68.4183 72 72 68.4183 72 64C72 59.5817 68.4183 56 64 56C59.5817 56 56 59.5817 56 64C56 68.4183 59.5817 72 64 72Z" + =fill bg; + == +:: + :- 'hid' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M2.03434e-06 128C70.6924 128 128 70.6925 128 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M1.52575e-06 96C53.0193 96 96 53.0193 96 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M1.01717e-06 64C35.3462 64 64 35.3462 64 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M5.08584e-07 32C17.6731 32 32 17.6731 32 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'hil' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "8.74228e-08" + =y1 "64" + =x2 "128" + =y2 "64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "64" + =y1 "2.18557e-08" + =x2 "64" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'hin' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "32" + =y1 "2.18557e-08" + =x2 "32" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M48 64C48 72.8366 40.8366 80 32 80C23.1634 80 16 72.8366 16 64C16 55.1634 23.1634 48 32 48C40.8366 48 48 55.1634 48 64ZM32 72C36.4183 72 40 68.4183 40 64C40 59.5817 36.4183 56 32 56C27.5817 56 24 59.5817 24 64C24 68.4183 27.5817 72 32 72Z" + =fill bg; + == +:: + :- 'hob' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 64V128H0L2.79753e-06 64C4.34256e-06 28.6538 28.6538 -1.54503e-06 64 0C99.3462 1.54503e-06 128 28.6538 128 64Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "128" + =y1 "64" + =x2 "-4.37114e-08" + =y2 "64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'hoc' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =y1 "-0.5" + =x2 "45.2548" + =y2 "-0.5" + =transform "matrix(0.707107 -0.707107 -0.707107 -0.707107 79.65 47.6499)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'hod' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M32 0L32 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'hol' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "128" + =y1 "64" + =x2 "-4.37114e-08" + =y2 "64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'hop' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M64 96C81.6731 96 96 81.6731 96 64C96 46.3269 81.6731 32 64 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'hos' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "80.0036" + =y1 "79.9965" + =x2 "112.004" + =y2 "111.997" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "16.0036" + =y1 "15.9965" + =x2 "48.0036" + =y2 "47.9965" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "48" + =cy "48" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "48" + =cy "48" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "80" + =cy "47" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "80" + =cy "47" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "80" + =cy "81" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "80" + =cy "81" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "48" + =cy "80" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "48" + =cy "80" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'hul' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "48" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "48" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'hus' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M64 96C46.3269 96 32 81.6731 32 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'hut' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "48" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "32" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "96" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'lab' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "-0.0029152" + =x2 "127.983" + =y2 "127.986" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;line + =y1 "-0.5" + =x2 "45.2548" + =y2 "-0.5" + =transform "matrix(0.707107 -0.707107 -0.707107 -0.707107 79.65 47.6499)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "15.9964" + =y1 "111.997" + =x2 "47.9964" + =y2 "79.9965" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'lac' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 -9.40976e-06C64 70.6924 92.6538 128 128 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M32 -7.63193e-07C32 70.6924 74.9807 128 128 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'lad' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "95.35" + =y1 "32.7071" + =x2 "32.0571" + =y2 "96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "96" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "32" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'lag' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 112C90.5097 112 112 90.5097 112 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'lan' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "64" + =y1 "2.18557e-08" + =x2 "64" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "32" + =y1 "2.18557e-08" + =x2 "32" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'lap' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M112 64C112 37.4903 90.5097 16 64 16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "112" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "112" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'lar' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "2.78181e-08" + =y1 "64" + =x2 "128" + =y2 "64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "64" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'las' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "48" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "16" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "16" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'lat' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M2.03434e-06 128C70.6924 128 128 70.6925 128 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M1.52575e-06 96C53.0193 96 96 53.0193 96 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M1.01717e-06 64C35.3462 64 64 35.3462 64 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M5.08584e-07 32C17.6731 32 32 17.6731 32 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'lav' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 128C92.6489 128 60.6449 113.669 37.4807 90.5" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 96C101.492 96 77.4939 85.2564 60.1217 67.8862" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 64C110.328 64 94.3287 56.8374 82.7471 45.2568" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 32.3716C119.164 32.3716 111.164 28.7903 105.374 23" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'leb' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-1.64036e-05 32C53.0193 32 96 74.9807 96 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'lec' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'led' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'leg' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M7.63192e-07 32C17.6731 32 32 46.3269 32 64C32 81.6731 17.6731 96 0 96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'len' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "48" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'lep' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 96C110.327 96 96 110.327 96 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'ler' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M32 0L32 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "32" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'let' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 0L64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'lev' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "32" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'lex' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;line + =x1 "15.9965" + =y1 "111.997" + =x2 "47.9965" + =y2 "79.9965" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M80 64C80 72.8366 72.8366 80 64 80C55.1634 80 48 72.8366 48 64C48 55.1634 55.1634 48 64 48C72.8366 48 80 55.1634 80 64ZM64 72C68.4183 72 72 68.4183 72 64C72 59.5817 68.4183 56 64 56C59.5817 56 56 59.5817 56 64C56 68.4183 59.5817 72 64 72Z" + =fill bg; + == +:: + :- 'lib' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64C92.6538 64 64 92.6538 64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'lid' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "16.0036" + =y1 "15.9965" + =x2 "48.0036" + =y2 "47.9965" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 0L0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'lig' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "48" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'lin' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "64" + =y1 "128" + =x2 "64" + =y2 "-6.55671e-08" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "80" + =cy "64" + =r "8" + =fill bg + =stroke "none"; + == +:: + :- 'lis' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M-4.70488e-06 64C35.3462 64 64 35.3462 64 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'lit' + |= [fg=tape bg=tape] + :~ ;path + =d "M0.0541 0C70.7217 0.0292317 128 57.3256 128 128C57.3177 128 0.0164917 70.7089 7.62806e-06 0.0305091C7.62851e-06 0.0203397 -4.44317e-10 0.01017 0 0H0.0541Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00286865 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M128 0C128 35.3511 113.669 67.3551 90.5 90.5193" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M96 0C96 26.5077 85.2564 50.5061 67.8862 67.8783" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M64 0C64 17.6721 56.8374 33.6713 45.2568 45.2529" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M32.3716 0C32.3716 8.83603 28.7903 16.8356 23 22.6264" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'liv' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-5.21346e-06 32C70.6924 32 128 17.6731 128 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M3.4331e-06 96C70.6924 96 128 53.0193 128 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M64 0L64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'loc' + |= [fg=tape bg=tape] + :~ ;path + =d "M0.0541 0C70.7217 0.0292317 128 57.3256 128 128C57.3177 128 0.0164917 70.7089 7.62806e-06 0.0305091C7.62851e-06 0.0203397 -4.44317e-10 0.01017 0 0H0.0541Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 96C74.9807 96 32 53.0193 32 -4.19629e-06" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'lod' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M16 64C16 90.5097 37.4903 112 64 112" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'lom' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "32" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "96" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "96" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'lon' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M2.03434e-06 128C70.6924 128 128 70.6925 128 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M1.52575e-06 96C53.0193 96 96 53.0193 96 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M1.01717e-06 64C35.3462 64 64 35.3462 64 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M5.08584e-07 32C17.6731 32 32 17.6731 32 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'lop' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "128" + =y1 "64" + =x2 "-8.87604e-09" + =y2 "64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "128" + =y1 "32" + =x2 "-8.87604e-09" + =y2 "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'lor' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "64" + =y1 "2.18557e-08" + =x2 "64" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'los' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "-0.0029152" + =x2 "127.983" + =y2 "127.986" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "96" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'luc' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "128" + =y1 "64" + =x2 "-8.87604e-09" + =y2 "64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 96L0 96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'lud' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M32 0L32 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M64 0L64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M96 0L96 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'lug' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 -7.62939e-06L64 -2.03434e-06C99.3462 1.05573e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + == +:: + :- 'lun' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'lup' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 -7.62939e-06L64 -2.03434e-06C99.3462 1.05573e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 16C90.5097 16 112 37.4903 112 64C112 90.5097 90.5097 112 64 112" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "128" + =y1 "64" + =x2 "-8.87604e-09" + =y2 "64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'lur' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 0L64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M96 0L96 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M32 0L32 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'lus' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 0L0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "96" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'lut' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "32" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'lux' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M80 64C80 72.8366 72.8366 80 64 80C55.1634 80 48 72.8366 48 64C48 55.1634 55.1634 48 64 48C72.8366 48 80 55.1634 80 64ZM64 72C68.4183 72 72 68.4183 72 64C72 59.5817 68.4183 56 64 56C59.5817 56 56 59.5817 56 64C56 68.4183 59.5817 72 64 72Z" + =fill bg; + == +:: + :- 'lyd' + |= [fg=tape bg=tape] + :~ ;path + =d "M0.0541 0C70.7217 0.0292317 128 57.3256 128 128C57.3177 128 0.0164917 70.7089 7.62806e-06 0.0305091C7.62851e-06 0.0203397 -4.44317e-10 0.01017 0 0H0.0541Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00280762 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'lyn' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M32 0L32 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'lyr' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 127.946C0.0292286 57.2783 57.3256 3.08928e-06 128 0C128 70.6823 70.7089 127.984 0.0305092 128C0.0203397 128 0.01017 128 2.36469e-09 128L0 127.946Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00268555 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "80" + =cy "48" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "80" + =cy "48" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'lys' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "16" + =cy "112" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "16" + =cy "112" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'lyt' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 0L0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;line + =x1 "80.0035" + =y1 "79.9965" + =x2 "112.003" + =y2 "111.997" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'lyx' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "32" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'mac' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "16" + =cy "112" + =r "11.5" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + ;circle + =cx "16" + =cy "112" + =r "9" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + :: =stroke-width "2" + == +:: + :- 'mag' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'mal' + |= [fg=tape bg=tape] + :~ ;path + =d "M0.0541 0C70.7217 0.0292317 128 57.3256 128 128C57.3177 128 0.0164917 70.7089 7.62806e-06 0.0305091C7.62851e-06 0.0203397 -4.44317e-10 0.01017 0 0H0.0541Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "80.0035" + =y1 "79.9964" + =x2 "112.004" + =y2 "111.996" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "16" + =cy "112" + =r "11.5" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + ;circle + =cx "16" + =cy "112" + =r "9" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + :: =stroke-width "2" + == +:: + :- 'map' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "80.0036" + =y1 "79.9965" + =x2 "112.004" + =y2 "111.997" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'mar' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.0029152 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M64 64L64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M86.6274 86.6274C99.1242 74.1307 99.1242 53.8694 86.6274 41.3726C74.1306 28.8758 53.8694 28.8758 41.3726 41.3726" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M75.3137 75.3137C81.5621 69.0653 81.5621 58.9347 75.3137 52.6863C69.0653 46.4379 58.9347 46.4379 52.6863 52.6863" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M97.9411 97.9411C116.686 79.1959 116.686 48.804 97.9411 30.0589C79.196 11.3137 48.804 11.3137 30.0589 30.0589" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'mas' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M80 64C80 72.8366 72.8366 80 64 80C55.1634 80 48 72.8366 48 64C48 55.1634 55.1634 48 64 48C72.8366 48 80 55.1634 80 64ZM64 72C68.4183 72 72 68.4183 72 64C72 59.5817 68.4183 56 64 56C59.5817 56 56 59.5817 56 64C56 68.4183 59.5817 72 64 72Z" + =fill bg; + == +:: + :- 'mat' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 32C110.327 32 96 17.6731 96 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'meb' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M32 -3.05151e-06C32 53.0193 74.9807 96 128 96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'mec' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "80.0035" + =y1 "79.9965" + =x2 "112.003" + =y2 "111.997" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'med' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "96" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'meg' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64C92.6538 64 64 92.6538 64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'mel' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 127.946C0.0292286 57.2783 57.3256 3.08928e-06 128 0C128 70.6823 70.7089 127.984 0.0305092 128C0.0203397 128 0.01017 128 2.36469e-09 128L0 127.946Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "15.9964" + =y1 "111.997" + =x2 "47.9964" + =y2 "79.9965" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'mep' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 96L0 96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 32L0 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'mer' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M32 0L32 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'mes' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00280762 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;line + =x1 "15.9964" + =y1 "111.996" + =x2 "47.9964" + =y2 "79.9964" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'met' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M32 128L32 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'mev' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'mex' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M80 64C80 72.8366 72.8366 80 64 80C55.1634 80 48 72.8366 48 64C48 55.1634 55.1634 48 64 48C72.8366 48 80 55.1634 80 64ZM64 72C68.4183 72 72 68.4183 72 64C72 59.5817 68.4183 56 64 56C59.5817 56 56 59.5817 56 64C56 68.4183 59.5817 72 64 72Z" + =fill bg; + == +:: + :- 'mic' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-2.09815e-06 80C26.5097 80 48 101.49 48 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'mid' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "128" + =y1 "64" + =x2 "-4.37114e-08" + =y2 "64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 64C92.6538 64 64 92.6538 64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'mig' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "64" + =y1 "2.18557e-08" + =x2 "64" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "80.0036" + =y1 "79.9965" + =x2 "112.004" + =y2 "111.997" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'mil' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "128" + =y1 "64" + =x2 "-4.37114e-08" + =y2 "64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "128" + =y1 "32" + =x2 "-4.37114e-08" + =y2 "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "128" + =y1 "96" + =x2 "-4.37114e-08" + =y2 "96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'min' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "-0.0029152" + =x2 "127.983" + =y2 "127.986" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'mip' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "64" + =y1 "2.18557e-08" + =x2 "64" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 128C92.6538 128 64 99.3462 64 64C64 28.6538 92.6538 4.215e-07 128 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'mir' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "16.0036" + =y1 "15.9964" + =x2 "48.0036" + =y2 "47.9964" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M96 64C96 46.3269 81.6731 32 64 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'mis' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64C92.6538 64 64 92.6538 64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M-0.00286865 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'mit' + |= [fg=tape bg=tape] + :~ ;path + =d "M0.0541 0C70.7217 0.0292317 128 57.3256 128 128C57.3177 128 0.0164917 70.7089 7.62806e-06 0.0305091C7.62851e-06 0.0203397 -4.44317e-10 0.01017 0 0H0.0541Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "0.5" + =y1 "-0.5" + =x2 "181.5" + =y2 "-0.5" + =transform "matrix(-0.707107 0.707107 0.707107 0.707107 128.71 0)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "32" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'moc' + |= [fg=tape bg=tape] + :~ ;path + =d "M0.0541 0C70.7217 0.0292317 128 57.3256 128 128C57.3177 128 0.0164917 70.7089 7.62806e-06 0.0305091C7.62851e-06 0.0203397 -4.44317e-10 0.01017 0 0H0.0541Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 96L0 96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 32L0 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'mod' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M0 96L128 96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "16.0035" + =y1 "15.9965" + =x2 "48.0035" + =y2 "47.9965" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'mog' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "-0.0029152" + =x2 "127.983" + =y2 "127.986" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'mol' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "128" + =y1 "64" + =x2 "-4.37114e-08" + =y2 "64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M112 64C112 90.5097 90.5097 112 64 112C37.4903 112 16 90.5097 16 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M112 0C112 26.5097 90.5097 48 64 48C37.4903 48 16 26.5097 16 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'mon' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M80 64C80 72.8366 72.8366 80 64 80C55.1634 80 48 72.8366 48 64C48 55.1634 55.1634 48 64 48C72.8366 48 80 55.1634 80 64ZM64 72C68.4183 72 72 68.4183 72 64C72 59.5817 68.4183 56 64 56C59.5817 56 56 59.5817 56 64C56 68.4183 59.5817 72 64 72Z" + =fill bg; + == +:: + :- 'mop' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "-0.0029152" + =x2 "127.983" + =y2 "127.986" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "32" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'mor' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "16.0035" + =y1 "15.9964" + =x2 "48.0035" + =y2 "47.9964" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "15.9964" + =y1 "111.996" + =x2 "47.9964" + =y2 "79.9964" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'mos' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "0.5" + =y1 "-0.5" + =x2 "181.5" + =y2 "-0.5" + =transform "matrix(-0.707107 0.707107 0.707107 0.707107 128.71 0)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "96" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'mot' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 96C110.327 96 96 81.6731 96 64C96 46.3269 110.327 32 128 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'mud' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "80" + =cy "80" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "80" + =cy "80" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'mug' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 96C81.6731 96 96 81.6731 96 64C96 46.3269 81.6731 32 64 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'mul' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "80.0035" + =y1 "79.9964" + =x2 "112.003" + =y2 "111.996" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M112 64C112 37.4903 90.5097 16 64 16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'mun' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64C92.6538 64 64 35.3462 64 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'mur' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "32" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'mus' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "0.5" + =y1 "-0.5" + =x2 "181.5" + =y2 "-0.5" + =transform "matrix(-0.707107 0.707107 0.707107 0.707107 128.71 0)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M96 128C96 74.9807 53.0193 32 0 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'mut' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "96" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'myl' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "16.0035" + =y1 "15.9965" + =x2 "48.0035" + =y2 "47.9965" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "16" + =cy "16" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "16" + =cy "16" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'myn' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 1.52638e-06C57.3076 -7.74381e-06 9.2702e-06 57.3075 0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 32C74.9807 32 32 74.9807 32 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 64C92.6538 64 64 92.6538 64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 96C110.327 96 96 110.327 96 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'myr' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 127.946C0.0292286 57.2783 57.3256 3.08928e-06 128 0C128 70.6823 70.7089 127.984 0.0305092 128C0.0203397 128 0.01017 128 2.36469e-09 128L0 127.946Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "32" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'nac' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "16" + =cy "112" + =r "11.5" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + ;circle + =cx "16" + =cy "112" + =r "9" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + :: =stroke-width "2" + == +:: + :- 'nal' + |= [fg=tape bg=tape] + :~ ;path + =d "M0.0541 0C70.7217 0.0292317 128 57.3256 128 128C57.3177 128 0.0164917 70.7089 7.62806e-06 0.0305091C7.62851e-06 0.0203397 -4.44317e-10 0.01017 0 0H0.0541Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "-0.0029152" + =x2 "127.983" + =y2 "127.986" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M2.82114e-06 110C60.7513 110 110 60.7513 110 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M-5.09828e-06 73C40.3168 73 73 40.3168 73 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M-6.63647e-07 37C20.4345 37 37 20.4345 37 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'nam' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "8.74228e-08" + =y1 "64" + =x2 "128" + =y2 "64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "112" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "112" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'nap' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "64" + =y1 "2.18557e-08" + =x2 "64" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "96" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "96" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'nar' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "8" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'nat' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-1.52588e-05 128C-9.07866e-06 57.3075 57.3076 1.44926e-06 128 7.62939e-06" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'nav' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 96C101.492 96 77.4939 85.2564 60.1217 67.8862" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 64C110.328 64 94.3287 56.8374 82.7471 45.2568" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 32.3716C119.164 32.3716 111.164 28.7903 105.374 23" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'neb' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 32C74.9807 32 32 74.9807 32 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'nec' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "32" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "96" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;path + =d "M64 0L64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'ned' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'nel' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 127.946C0.0292286 57.2783 57.3256 3.08928e-06 128 0C128 70.6823 70.7089 127.984 0.0305092 128C0.0203397 128 0.01017 128 2.36469e-09 128L0 127.946Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00268555 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M96 1.90735e-06C96 53.0193 53.0193 96 0 96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'nem' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M128 64C92.6538 64 64 92.6538 64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "32" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'nep' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 128C57.3076 128 3.09007e-06 70.6925 0 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 96C74.9807 96 32 53.0193 32 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 64C92.6538 64 64 35.3462 64 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 32C110.327 32 96 17.6731 96 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'ner' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 0L64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "15.9965" + =y1 "111.997" + =x2 "47.9965" + =y2 "79.9965" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'nes' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 0L64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'net' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 64L64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'nev' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "32" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'nex' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 -7.62939e-06L64 -2.03434e-06C99.3462 1.05573e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "80.0035" + =y1 "79.9964" + =x2 "112.003" + =y2 "111.996" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M80 64C80 72.8366 72.8366 80 64 80C55.1634 80 48 72.8366 48 64C48 55.1634 55.1634 48 64 48C72.8366 48 80 55.1634 80 64ZM64 72C68.4183 72 72 68.4183 72 64C72 59.5817 68.4183 56 64 56C59.5817 56 56 59.5817 56 64C56 68.4183 59.5817 72 64 72Z" + =fill bg; + == +:: + :- 'nib' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 96L0 96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'nid' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 128C92.6538 128 64 70.6925 64 7.63192e-07" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'nil' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "128" + =y1 "64" + =x2 "-8.87604e-09" + =y2 "64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "128" + =y1 "32" + =x2 "-8.87604e-09" + =y2 "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'nim' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 64V128H0L2.79753e-06 64C4.34256e-06 28.6538 28.6538 -1.54503e-06 64 0C99.3462 1.54503e-06 128 28.6538 128 64Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "64" + =y1 "2.18557e-08" + =x2 "64" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'nis' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 32C74.9807 32 32 74.9807 32 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M-0.00285435 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'noc' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "64" + =y1 "2.18557e-08" + =x2 "64" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'nod' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "32" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "96" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'nol' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "128" + =y1 "64" + =x2 "1.51277e-05" + =y2 "64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'nom' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "32" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "96" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "96" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'nop' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "-0.0029152" + =x2 "127.983" + =y2 "127.986" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;line + =y1 "-0.5" + =x2 "45.2548" + =y2 "-0.5" + =transform "matrix(0.707107 -0.707107 -0.707107 -0.707107 79.65 47.65)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'nor' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 96C46.3269 96 32 81.6731 32 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'nos' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "0.5" + =y1 "-0.5" + =x2 "181.5" + =y2 "-0.5" + =transform "matrix(-0.707107 0.707107 0.707107 0.707107 128.71 0)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "32" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'nov' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "-0.0029152" + =x2 "127.983" + =y2 "127.986" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M2.03434e-06 128C70.6924 128 128 70.6925 128 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M1.52575e-06 96C53.0193 96 96 53.0193 96 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M1.01717e-06 64C35.3462 64 64 35.3462 64 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M5.08584e-07 32C17.6731 32 32 17.6731 32 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'nub' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'nul' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "32" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'num' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 0L0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "32" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "96" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'nup' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 -7.62939e-06L64 -2.03434e-06C99.3462 1.05573e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 16C90.5097 16 112 37.4903 112 64C112 90.5097 90.5097 112 64 112" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'nus' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00280762 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M0.000105172 128C35.3582 128 67.3679 113.664 90.5332 90.4863" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "31" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "31" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'nut' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "80.0035" + =y1 "79.9964" + =x2 "112.003" + =y2 "111.996" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =y1 "-0.5" + =x2 "45.2548" + =y2 "-0.5" + =transform "matrix(0.707107 -0.707107 -0.707107 -0.707107 79.6499 47.6499)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "96" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'nux' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 96L0 96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 32L0 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'nyd' + |= [fg=tape bg=tape] + :~ ;path + =d "M0.0541 0C70.7217 0.0292317 128 57.3256 128 128C57.3177 128 0.0164917 70.7089 7.62806e-06 0.0305091C7.62851e-06 0.0203397 -4.44317e-10 0.01017 0 0H0.0541Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'nyl' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M0 128C4.63574e-06 92.6489 14.3309 60.6449 37.5 37.4807" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M32 128C32 101.492 42.7436 77.4939 60.1138 60.1217" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M64 128C64 110.328 71.1626 94.3287 82.7432 82.7471" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M95.6284 128C95.6284 119.164 99.2097 111.164 105 105.374" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'nym' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 0L64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M96 0L96 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M32 0L32 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'nyr' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 127.946C0.0292286 57.2783 57.3256 3.08928e-06 128 0C128 70.6823 70.7089 127.984 0.0305092 128C0.0203397 128 0.01017 128 2.36469e-09 128L0 127.946Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00268555 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M95.9984 0C95.9984 26.3298 85.3985 50.1839 68.2332 67.5278M63.9983 0C63.9983 17.4933 56.9799 33.3473 45.6054 44.8999M31.9983 0C31.9983 8.65672 28.5609 16.5106 22.9766 22.2711" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'nys' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "16" + =cy "112" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "16" + =cy "112" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'nyt' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M64 32C81.6731 32 96 46.3269 96 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M64 16C90.5097 16 112 37.4903 112 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'nyx' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M80 64C80 72.8366 72.8366 80 64 80C55.1634 80 48 72.8366 48 64C48 55.1634 55.1634 48 64 48C72.8366 48 80 55.1634 80 64ZM64 72C68.4183 72 72 68.4183 72 64C72 59.5817 68.4183 56 64 56C59.5817 56 56 59.5817 56 64C56 68.4183 59.5817 72 64 72Z" + =fill bg; + == +:: + :- 'pac' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 0L0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'pad' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "96" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'pag' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "15.9964" + =y1 "111.997" + =x2 "47.9964" + =y2 "79.9965" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'pal' + |= [fg=tape bg=tape] + :~ ;path + =d "M0.0541 0C70.7217 0.0292317 128 57.3256 128 128C57.3177 128 0.0164917 70.7089 7.62806e-06 0.0305091C7.62851e-06 0.0203397 -4.44317e-10 0.01017 0 0H0.0541Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 0L0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M128 96C101.492 96 77.4939 85.2564 60.1217 67.8862" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 64C110.328 64 94.3287 56.8374 82.7471 45.2568" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 32.3716C119.164 32.3716 111.164 28.7903 105.374 23" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'pan' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "0.5" + =y1 "-0.5" + =x2 "181.5" + =y2 "-0.5" + =transform "matrix(-0.707107 0.707107 0.707107 0.707107 128.71 0)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M41.3726 86.6274C28.8758 74.1306 28.8758 53.8693 41.3726 41.3725C53.8694 28.8758 74.1306 28.8758 86.6274 41.3725" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'par' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "0.5" + =y1 "-0.5" + =x2 "181.5" + =y2 "-0.5" + =transform "matrix(-0.707107 0.707107 0.707107 0.707107 128.693 0)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'pas' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M32 0L32 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M64 0L64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M96 0L96 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'pat' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M32 -2.67054e-06C32 53.0193 74.9807 96 128 96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M64 -1.78036e-06C64 35.3462 92.6538 64 128 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M96 -8.9018e-07C96 17.6731 110.327 32 128 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'pec' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 0L0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'ped' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "32" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'peg' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M96 0C96 17.6731 81.6731 32 64 32C46.3269 32 32 17.6731 32 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'pel' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 127.946C0.0292286 57.2783 57.3256 3.08928e-06 128 0C128 70.6823 70.7089 127.984 0.0305092 128C0.0203397 128 0.01017 128 2.36469e-09 128L0 127.946Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M112 64C112 37.4903 90.5097 16 64 16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'pem' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00280762 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M64 128C64 92.6538 35.3462 64 0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'pen' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M96 0C96 17.6731 81.6731 32 64 32C46.3269 32 32 17.6731 32 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'per' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 64L5.59506e-06 0L128 1.11901e-05V64C128 99.3462 99.3462 128 64 128C28.6538 128 -4.6351e-06 99.3462 0 64Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 0L64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'pes' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 112C90.5097 112 112 90.5097 112 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "-0.00285417" + =x2 "127.983" + =y2 "127.986" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'pet' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "80.0035" + =y1 "79.9964" + =x2 "112.003" + =y2 "111.996" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'pex' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M80 64C80 72.8366 72.8366 80 64 80C55.1634 80 48 72.8366 48 64C48 55.1634 55.1634 48 64 48C72.8366 48 80 55.1634 80 64ZM64 72C68.4183 72 72 68.4183 72 64C72 59.5817 68.4183 56 64 56C59.5817 56 56 59.5817 56 64C56 68.4183 59.5817 72 64 72Z" + =fill bg; + == +:: + :- 'pic' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M96 128C96 74.9807 53.0193 32 0 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M64 128C64 92.6538 35.3462 64 0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M32 128C32 110.327 17.6731 96 0 96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'pid' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "-0.0029152" + =x2 "127.983" + =y2 "127.986" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "16" + =cy "112" + =r "11.5" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + ;circle + =cx "16" + =cy "112" + =r "9" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + :: =stroke-width "2" + == +:: + :- 'pil' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "0.5" + =y1 "-0.5" + =x2 "181.5" + =y2 "-0.5" + =transform "matrix(-0.707107 0.707107 0.707107 0.707107 128.71 0)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "96" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'pin' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M32 0L32 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "32" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'pit' + |= [fg=tape bg=tape] + :~ ;path + =d "M0.0541 0C70.7217 0.0292317 128 57.3256 128 128C57.3177 128 0.0164917 70.7089 7.62806e-06 0.0305091C7.62851e-06 0.0203397 -4.44317e-10 0.01017 0 0H0.0541Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "0.5" + =y1 "-0.5" + =x2 "181.5" + =y2 "-0.5" + =transform "matrix(-0.707107 0.707107 0.707107 0.707107 128.71 0)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "16" + =cy "112" + =r "11.5" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + ;circle + =cx "16" + =cy "112" + =r "9" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + :: =stroke-width "2" + == +:: + :- 'poc' + |= [fg=tape bg=tape] + :~ ;path + =d "M0.0541 0C70.7217 0.0292317 128 57.3256 128 128C57.3177 128 0.0164917 70.7089 7.62806e-06 0.0305091C7.62851e-06 0.0203397 -4.44317e-10 0.01017 0 0H0.0541Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "64.5" + =y1 "-0.5" + =x2 "64.5" + =y2 "127.5" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "96.5" + =y1 "-0.5" + =x2 "96.5" + =y2 "127.5" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "32.5" + =y1 "-0.5" + =x2 "32.5" + =y2 "127.5" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'pod' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "128" + =y1 "96" + =x2 "-8.87604e-09" + =y2 "96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'pol' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "48" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "128" + =y1 "32" + =x2 "-8.87604e-09" + =y2 "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'pon' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + == +:: + :- 'pos' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "-0.0029152" + =x2 "127.983" + =y2 "127.986" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "96" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'pub' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M32 0L32 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'pun' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M112 64C112 37.4903 90.5097 16 64 16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M96 64C96 46.3269 81.6731 32 64 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M80 64C80 55.1634 72.8366 48 64 48" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'pur' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M3.73284e-05 64C17.6633 64 33.6554 56.8445 45.2356 45.2741" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'put' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "32" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'pyl' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-5.59506e-06 128C35.3462 128 64 99.3462 64 64C64 28.6538 35.3462 1.54503e-06 0 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'pyx' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "96" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'rab' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;line + =x1 "15.9965" + =y1 "111.997" + =x2 "47.9964" + =y2 "79.9965" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'rac' + |= [fg=tape bg=tape] + :~ ;path + =d "M0.0541 0C70.7217 0.0292317 128 57.3256 128 128C57.3177 128 0.0164917 70.7089 7.62806e-06 0.0305091C7.62851e-06 0.0203397 -4.44317e-10 0.01017 0 0H0.0541Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "16" + =cy "112" + =r "11.5" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + ;circle + =cx "16" + =cy "112" + =r "9" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + :: =stroke-width "2" + == +:: + :- 'rad' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "32" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'rag' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "16.0036" + =y1 "15.9965" + =x2 "48.0036" + =y2 "47.9965" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'ral' + |= [fg=tape bg=tape] + :~ ;path + =d "M0.0541 0C70.7217 0.0292317 128 57.3256 128 128C57.3177 128 0.0164917 70.7089 7.62806e-06 0.0305091C7.62851e-06 0.0203397 -4.44317e-10 0.01017 0 0H0.0541Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'ram' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "64" + =y1 "2.18557e-08" + =x2 "64" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M80 64C80 72.8366 72.8366 80 64 80C55.1634 80 48 72.8366 48 64C48 55.1634 55.1634 48 64 48C72.8366 48 80 55.1634 80 64ZM64 72C68.4183 72 72 68.4183 72 64C72 59.5817 68.4183 56 64 56C59.5817 56 56 59.5817 56 64C56 68.4183 59.5817 72 64 72Z" + =fill bg; + == +:: + :- 'ran' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 0L64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M-0.00291443 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'rap' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "64" + =y1 "-1.29797e-08" + =x2 "64" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "96" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'rav' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 32L0 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'reb' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 -9.40976e-06C57.3075 -6.31969e-06 -3.09007e-06 57.3075 0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'rec' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "32" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "96" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'red' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'ref' + |= [fg=tape bg=tape] + :~ ;path + =d "M0.0541 0C70.7217 0.0292317 128 57.3256 128 128C57.3177 128 0.0164917 70.7089 7.62806e-06 0.0305091C7.62851e-06 0.0203397 -4.44317e-10 0.01017 0 0H0.0541Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "16" + =cy "112" + =r "11.5" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + ;circle + =cx "16" + =cy "112" + =r "9" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + :: =stroke-width "2" + == +:: + :- 'reg' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 96C110.327 96 96 81.6731 96 64C96 46.3269 110.327 32 128 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'rel' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 127.946C0.0292286 57.2783 57.3256 3.08928e-06 128 0C128 70.6823 70.7089 127.984 0.0305092 128C0.0203397 128 0.01017 128 2.36469e-09 128L0 127.946Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 96L0 96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 32L0 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'rem' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M128 64C92.6538 64 64 35.3462 64 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'ren' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "80.0035" + =y1 "79.9965" + =x2 "112.003" + =y2 "111.997" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'rep' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M32 128C32 74.9807 74.9807 32 128 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'res' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "80.0035" + =y1 "79.9965" + =x2 "112.003" + =y2 "111.997" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'ret' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'rev' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "15.9965" + =y1 "111.997" + =x2 "53.9965" + =y2 "73.9965" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "16" + =cy "112" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "16" + =cy "112" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M80 64C80 72.8366 72.8366 80 64 80C55.1634 80 48 72.8366 48 64C48 55.1634 55.1634 48 64 48C72.8366 48 80 55.1634 80 64ZM64 72C68.4183 72 72 68.4183 72 64C72 59.5817 68.4183 56 64 56C59.5817 56 56 59.5817 56 64C56 68.4183 59.5817 72 64 72Z" + =fill bg; + == +:: + :- 'rex' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M80 64C80 72.8366 72.8366 80 64 80C55.1634 80 48 72.8366 48 64C48 55.1634 55.1634 48 64 48C72.8366 48 80 55.1634 80 64ZM64 72C68.4183 72 72 68.4183 72 64C72 59.5817 68.4183 56 64 56C59.5817 56 56 59.5817 56 64C56 68.4183 59.5817 72 64 72Z" + =fill bg; + == +:: + :- 'rib' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "8.74228e-08" + =y1 "64" + =x2 "128" + =y2 "64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "64" + =y1 "2.18557e-08" + =x2 "64" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'ric' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M96 128C96 74.9807 53.0193 32 0 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'rid' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 0L64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M96 0L96 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'rig' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "64" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'ril' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "0.5" + =y1 "-0.5" + =x2 "181.5" + =y2 "-0.5" + =transform "matrix(-0.707107 0.707107 0.707107 0.707107 128.693 0)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "96" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'rin' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "64" + =y1 "2.18557e-08" + =x2 "64" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "32" + =y1 "2.18557e-08" + =x2 "32" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'rip' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M96 64C96 46.3269 81.6731 32 64 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "96" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'ris' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "-0.0029152" + =x2 "127.983" + =y2 "127.986" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M128 0C128 35.3511 113.669 67.3551 90.5 90.5193" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M96 0C96 26.5077 85.2564 50.5061 67.8862 67.8783" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M64 0C64 17.6721 56.8374 33.6713 45.2568 45.2529" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M32.3716 0C32.3716 8.83603 28.7903 16.8356 23 22.6264" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'rit' + |= [fg=tape bg=tape] + :~ ;path + =d "M0.0541 0C70.7217 0.0292317 128 57.3256 128 128C57.3177 128 0.0164917 70.7089 7.62806e-06 0.0305091C7.62851e-06 0.0203397 -4.44317e-10 0.01017 0 0H0.0541Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "0.5" + =y1 "-0.5" + =x2 "181.5" + =y2 "-0.5" + =transform "matrix(-0.707107 0.707107 0.707107 0.707107 128.71 0)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M80 64C80 72.8366 72.8366 80 64 80C55.1634 80 48 72.8366 48 64C48 55.1634 55.1634 48 64 48C72.8366 48 80 55.1634 80 64ZM64 72C68.4183 72 72 68.4183 72 64C72 59.5817 68.4183 56 64 56C59.5817 56 56 59.5817 56 64C56 68.4183 59.5817 72 64 72Z" + =fill bg; + == +:: + :- 'riv' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "64" + =y1 "2.18557e-08" + =x2 "64" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "48" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'roc' + |= [fg=tape bg=tape] + :~ ;path + =d "M0.0541 0C70.7217 0.0292317 128 57.3256 128 128C57.3177 128 0.0164917 70.7089 7.62806e-06 0.0305091C7.62851e-06 0.0203397 -4.44317e-10 0.01017 0 0H0.0541Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "16" + =cy "112" + =r "11.5" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + ;circle + =cx "16" + =cy "112" + =r "9" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + :: =stroke-width "2" + ;circle + =cx "112" + =cy "16" + =r "11.5" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + ;circle + =cx "112" + =cy "16" + =r "9" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + :: =stroke-width "2" + == +:: + :- 'rol' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M64 16C90.5097 16 112 37.4903 112 64C112 90.5097 90.5097 112 64 112" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'ron' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 0C128 70.6924 70.6925 128 0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'rop' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M112 64C112 37.4903 90.5097 16 64 16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'ros' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "0.5" + =y1 "-0.5" + =x2 "181.5" + =y2 "-0.5" + =transform "matrix(-0.707107 0.707107 0.707107 0.707107 128.71 0)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "96" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'rov' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "-0.0029152" + =x2 "127.983" + =y2 "127.986" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M128 0C128 35.3511 113.669 67.3551 90.5 90.5193" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M96 0C96 26.5077 85.2564 50.5061 67.8862 67.8783" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M64 0C64 17.6721 56.8374 33.6713 45.2568 45.2529" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M32.3716 0C32.3716 8.83603 28.7903 16.8356 23 22.6264" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'ruc' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 32L0 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'rud' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M32 0L32 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M64 0L64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'rul' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "80.0035" + =y1 "79.9964" + =x2 "112.003" + =y2 "111.996" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M80 64C80 72.8366 72.8366 80 64 80C55.1634 80 48 72.8366 48 64C48 55.1634 55.1634 48 64 48C72.8366 48 80 55.1634 80 64ZM64 72C68.4183 72 72 68.4183 72 64C72 59.5817 68.4183 56 64 56C59.5817 56 56 59.5817 56 64C56 68.4183 59.5817 72 64 72Z" + =fill bg; + == +:: + :- 'rum' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M5.08584e-07 32C17.6731 32 32 17.6731 32 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'run' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 0L64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M96 0L96 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M32 0L32 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'rup' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 0L64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M64 112C90.5097 112 112 90.5097 112 64C112 37.4903 90.5097 16 64 16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'rus' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 0L0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M64 128C64 92.6538 35.3462 64 0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'rut' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "32" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'rux' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M32 64C32 81.6731 46.3269 96 64 96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'ryc' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 96L0 96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'ryd' + |= [fg=tape bg=tape] + :~ ;path + =d "M0.0541 0C70.7217 0.0292317 128 57.3256 128 128C57.3177 128 0.0164917 70.7089 7.62806e-06 0.0305091C7.62851e-06 0.0203397 -4.44317e-10 0.01017 0 0H0.0541Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00280762 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M96 64C96 81.6731 81.6731 96 64 96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'ryg' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-2.79795e-06 -3.55988e-06C70.6924 -4.40288e-06 128 57.3075 128 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "16.0035" + =y1 "15.9965" + =x2 "48.0035" + =y2 "47.9965" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'ryl' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 0L0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M128 128C92.6489 128 60.6449 113.669 37.4807 90.5" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 96C101.492 96 77.4939 85.2564 60.1217 67.8862" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 64C110.328 64 94.3287 56.8374 82.7471 45.2568" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 32.3716C119.164 32.3716 111.164 28.7903 105.374 23" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'rym' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 96L0 96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'ryn' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 128C57.3075 128 -3.09007e-06 70.6925 0 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'ryp' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'rys' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M1.52575e-06 96C53.0193 96 96 53.0193 96 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'ryt' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 -7.62939e-06L64 -2.03434e-06C99.3462 1.05573e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "48" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 0L0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'ryx' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "0.5" + =y1 "-0.5" + =x2 "181.5" + =y2 "-0.5" + =transform "matrix(-0.707107 0.707107 0.707107 0.707107 128.71 0)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M128 0L0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'sab' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;line + =y1 "-0.5" + =x2 "45.2548" + =y2 "-0.5" + =transform "matrix(0.707107 -0.707107 -0.707107 -0.707107 79.65 47.65)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "16" + =cy "112" + =r "11.5" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + ;circle + =cx "16" + =cy "112" + =r "9" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + :: =stroke-width "2" + == +:: + :- 'sal' + |= [fg=tape bg=tape] + :~ ;path + =d "M0.0541 0C70.7217 0.0292317 128 57.3256 128 128C57.3177 128 0.0164917 70.7089 7.62806e-06 0.0305091C7.62851e-06 0.0203397 -4.44317e-10 0.01017 0 0H0.0541Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M0 128L128 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M-0.701724 31.9914C25.6281 31.9914 49.4822 42.5913 66.8261 59.7565M-0.701723 63.9914C16.7916 63.9914 32.6456 71.0098 44.1982 82.3844M-0.701722 95.9914C7.955 95.9914 15.8089 99.4288 21.5694 105.013" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'sam' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "48" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M64 0L64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M80 64C80 72.8366 72.8366 80 64 80C55.1634 80 48 72.8366 48 64C48 55.1634 55.1634 48 64 48C72.8366 48 80 55.1634 80 64ZM64 72C68.4183 72 72 68.4183 72 64C72 59.5817 68.4183 56 64 56C59.5817 56 56 59.5817 56 64C56 68.4183 59.5817 72 64 72Z" + =fill bg; + == +:: + :- 'san' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "-0.0029152" + =x2 "127.983" + =y2 "127.986" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'sap' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "128" + =y1 "64" + =x2 "-4.37114e-08" + =y2 "64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "96" + =cy "64" + =r "8" + =fill bg + =stroke "none"; + == +:: + :- 'sar' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "48" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "48" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "64" + =y1 "2.18557e-08" + =x2 "64" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'sat' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 128C128 57.3076 70.6925 0 0 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'sav' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "0.5" + =y1 "-0.5" + =x2 "181.5" + =y2 "-0.5" + =transform "matrix(-0.707107 0.707107 0.707107 0.707107 128.71 0)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M96 64C96 46.3269 81.6731 32 64 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'seb' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64C92.6538 64 64 35.3462 64 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'sec' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "32" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'sed' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "96" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'sef' + |= [fg=tape bg=tape] + :~ ;path + =d "M0.0541 0C70.7217 0.0292317 128 57.3256 128 128C57.3177 128 0.0164917 70.7089 7.62806e-06 0.0305091C7.62851e-06 0.0203397 -4.44317e-10 0.01017 0 0H0.0541Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "16" + =cy "112" + =r "11.5" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + ;circle + =cx "16" + =cy "112" + =r "9" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + :: =stroke-width "2" + == +:: + :- 'seg' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M32 128C32 110.327 46.3269 96 64 96C81.6731 96 96 110.327 96 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'sel' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 127.946C0.0292286 57.2783 57.3256 3.08928e-06 128 0C128 70.6823 70.7089 127.984 0.0305092 128C0.0203397 128 0.01017 128 2.36469e-09 128L0 127.946Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "8" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'sem' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M1.01717e-06 64C35.3462 64 64 35.3462 64 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'sen' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 0L64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M96 128C96 110.327 81.6731 96 64 96C46.3269 96 32 110.327 32 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'sep' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 128L64 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M32 128L32 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M96 128L96 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'ser' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 64L5.59506e-06 0L128 1.11901e-05V64C128 99.3462 99.3462 128 64 128C28.6538 128 -4.6351e-06 99.3462 0 64Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M32 0L32 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'set' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 64L128 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'sev' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "48" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'sib' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 0L0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M64 9.40976e-06C64 35.3462 92.6538 64 128 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'sic' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 0L0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'sid' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 128C110.327 128 96 113.673 96 96C96 78.3269 110.327 64 128 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'sig' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "32" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "96" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'sil' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "16.0036" + =y1 "15.9965" + =x2 "48.0036" + =y2 "47.9965" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 0L0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'sim' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 64V128H0L2.79753e-06 64C4.34256e-06 28.6538 28.6538 -1.54503e-06 64 0C99.3462 1.54503e-06 128 28.6538 128 64Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 0L64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M32 0L32 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'sip' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 0L64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M16 64C16 37.4903 37.4903 16 64 16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "16" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "16" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'sit' + |= [fg=tape bg=tape] + :~ ;path + =d "M0.0541 0C70.7217 0.0292317 128 57.3256 128 128C57.3177 128 0.0164917 70.7089 7.62806e-06 0.0305091C7.62851e-06 0.0203397 -4.44317e-10 0.01017 0 0H0.0541Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M80 64C80 72.8366 72.8366 80 64 80C55.1634 80 48 72.8366 48 64C48 55.1634 55.1634 48 64 48C72.8366 48 80 55.1634 80 64ZM64 72C68.4183 72 72 68.4183 72 64C72 59.5817 68.4183 56 64 56C59.5817 56 56 59.5817 56 64C56 68.4183 59.5817 72 64 72Z" + =fill bg; + == +:: + :- 'siv' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 0L64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 96L0 96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'soc' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 127.946C0.0292286 57.2783 57.3256 3.08928e-06 128 0C128 70.6823 70.7089 127.984 0.0305092 128C0.0203397 128 0.01017 128 2.36469e-09 128L0 127.946Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "64" + =y1 "2.18557e-08" + =x2 "64" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "16" + =cy "16" + =r "11.5" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + ;circle + =cx "16" + =cy "16" + =r "9" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + :: =stroke-width "2" + == +:: + :- 'sog' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 0L0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M64 96C81.6731 96 96 81.6731 96 64C96 46.3269 81.6731 32 64 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'sol' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 64L-5.96046e-08 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'som' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "96" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "32" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "32" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'son' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "127.553" + =y1 "128.224" + =x2 "63.5528" + =y2 "0.223598" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'sop' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "64" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'sor' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M128 0C128 35.3511 113.669 67.3551 90.5 90.5193" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M96 0C96 26.5077 85.2564 50.5061 67.8862 67.8783" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M64 0C64 17.6721 56.8374 33.6713 45.2568 45.2529" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M32.3716 0C32.3716 8.83603 28.7903 16.8356 23 22.6264" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'sov' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M0 128L128 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M128 128C92.6489 128 60.6449 113.669 37.4807 90.5" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 96C101.492 96 77.4939 85.2564 60.1217 67.8862" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 64C110.328 64 94.3287 56.8374 82.7471 45.2568" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 32.3716C119.164 32.3716 111.164 28.7903 105.374 23" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'sub' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 0L64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'sud' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "128" + =y1 "64" + =x2 "-8.87604e-09" + =y2 "64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M80 64C80 72.8366 72.8366 80 64 80C55.1634 80 48 72.8366 48 64C48 55.1634 55.1634 48 64 48C72.8366 48 80 55.1634 80 64ZM64 72C68.4183 72 72 68.4183 72 64C72 59.5817 68.4183 56 64 56C59.5817 56 56 59.5817 56 64C56 68.4183 59.5817 72 64 72Z" + =fill bg; + == +:: + :- 'sug' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "16" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "16" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "80" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "80" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'sul' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 96C46.3269 96 32 81.6731 32 64C32 46.3269 46.3269 32 64 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'sum' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M1.01717e-06 64C35.3462 64 64 35.3462 64 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'sun' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =stroke "none"; + ;circle + =cx "80" + =cy "80" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "80" + =cy "80" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "80" + =cy "48" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "80" + =cy "48" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "48" + =cy "48" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "48" + =cy "48" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "48" + =cy "80" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "48" + =cy "80" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'sup' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 112C90.5097 112 112 90.5097 112 64C112 37.4903 90.5097 16 64 16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'sur' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M3.73284e-05 64.0001C17.6633 64.0001 33.6554 56.8446 45.2356 45.2742" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M0.000105172 128C35.3582 128 67.3679 113.664 90.5332 90.4863" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'sut' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "32" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "96" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'syd' + |= [fg=tape bg=tape] + :~ ;path + =d "M0.0541 0C70.7217 0.0292317 128 57.3256 128 128C57.3177 128 0.0164917 70.7089 7.62806e-06 0.0305091C7.62851e-06 0.0203397 -4.44317e-10 0.01017 0 0H0.0541Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 16C37.4903 16 16 37.4903 16 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'syl' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "32" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "96" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'sym' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "96.5" + =y1 "3.07317e-08" + =x2 "96.5" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'syn' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M0 0C35.3511 0 67.3551 14.3309 90.5193 37.5" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M0 32C26.5077 32 50.5061 42.7436 67.8783 60.1138" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M0 64C17.6721 64 33.6713 71.1626 45.2529 82.7432" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M0 95.6284C8.83603 95.6284 16.8356 99.2097 22.6264 105" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'syp' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00280762 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M1.01717e-06 64C35.3462 64 64 35.3462 64 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'syr' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 127.946C0.0292286 57.2783 57.3256 3.08928e-06 128 0C128 70.6823 70.7089 127.984 0.0305092 128C0.0203397 128 0.01017 128 2.36469e-09 128L0 127.946Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "96" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'syt' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "48" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 0L0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'syx' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M0 128C4.63574e-06 92.6488 14.3309 60.6449 37.5 37.4807" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M32 128C32 101.492 42.7436 77.4939 60.1138 60.1216" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M64 128C64 110.328 71.1626 94.3287 82.7432 82.7471" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M95.6284 128C95.6284 119.164 99.2097 111.164 105 105.374" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M-0.00280762 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'tab' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "8" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "-0.0029152" + =x2 "127.983" + =y2 "127.986" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "16" + =cy "112" + =r "11.5" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + ;circle + =cx "16" + =cy "112" + =r "9" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + :: =stroke-width "2" + == +:: + :- 'tac' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 0L0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "64" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "96" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'tad' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "32" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "96" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'tag' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "80.0036" + =y1 "79.9964" + =x2 "112.004" + =y2 "111.996" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'tal' + |= [fg=tape bg=tape] + :~ ;path + =d "M0.0541 0C70.7217 0.0292317 128 57.3256 128 128C57.3177 128 0.0164917 70.7089 7.62806e-06 0.0305091C7.62851e-06 0.0203397 -4.44317e-10 0.01017 0 0H0.0541Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "0.5" + =y1 "-0.5" + =x2 "181.5" + =y2 "-0.5" + =transform "matrix(-0.707107 0.707107 0.707107 0.707107 128.71 0)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M96 128C96 74.9807 53.0193 32 0 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'tam' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "128" + =y1 "96" + =x2 "-8.87604e-09" + =y2 "96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "128" + =y1 "32" + =x2 "-8.87604e-09" + =y2 "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'tan' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M96 128C96 74.9807 53.0193 32 0 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M64 128C64 92.6538 35.3462 64 0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M48 128C48 101.49 26.5097 80 0 80" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M32 128C32 110.327 17.6731 96 0 96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M16 128C16 119.163 8.83656 112 0 112" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 128C128 57.3075 70.6925 0 0 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'tap' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "48" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "128" + =y1 "64" + =x2 "-8.87604e-09" + =y2 "64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M64 32C81.6731 32 96 46.3269 96 64C96 81.6731 81.6731 96 64 96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'tar' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "48" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "16" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "16" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'tas' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 0L64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M64 32C81.6731 32 96 46.3269 96 64C96 81.6731 81.6731 96 64 96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'teb' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M1.52575e-06 96C53.0193 96 96 53.0193 96 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'tec' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "80.0035" + =y1 "79.9965" + =x2 "112.003" + =y2 "111.997" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M80 64C80 72.8366 72.8366 80 64 80C55.1634 80 48 72.8366 48 64C48 55.1634 55.1634 48 64 48C72.8366 48 80 55.1634 80 64ZM64 72C68.4183 72 72 68.4183 72 64C72 59.5817 68.4183 56 64 56C59.5817 56 56 59.5817 56 64C56 68.4183 59.5817 72 64 72Z" + =fill bg; + == +:: + :- 'ted' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "32" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'teg' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 80C119.163 80 112 72.8366 112 64C112 55.1634 119.163 48 128 48" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'tel' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 127.946C0.0292286 57.2783 57.3256 3.08928e-06 128 0C128 70.6823 70.7089 127.984 0.0305092 128C0.0203397 128 0.01017 128 2.36469e-09 128L0 127.946Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "15" + =cy "112" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "15" + =cy "112" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;path + =d "M0 0L127.986 127.986" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M32 0L128 96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M64 0L128 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M96 0L128 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'tem' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64C92.6538 64 64 92.6538 64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "-0.00285417" + =x2 "127.983" + =y2 "127.986" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'ten' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "48" + =cy "48" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "48" + =cy "48" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "80" + =cy "48" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "80" + =cy "48" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "80" + =cy "80" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "80" + =cy "80" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "48" + =cy "80" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "48" + =cy "80" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'tep' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M1.14479e-06 96C53.0193 96 96 53.0193 96 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'ter' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 64L5.59506e-06 0L128 1.11901e-05V64C128 99.3462 99.3462 128 64 128C28.6538 128 -4.6351e-06 99.3462 0 64Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "96.5" + =y1 "3.07317e-08" + =x2 "96.5" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M1.01717e-06 64C35.3462 64 64 35.3462 64 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'tes' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 0L64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'tev' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'tex' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "15.9965" + =y1 "111.997" + =x2 "47.9965" + =y2 "79.9965" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M80 64C80 72.8366 72.8366 80 64 80C55.1634 80 48 72.8366 48 64C48 55.1634 55.1634 48 64 48C72.8366 48 80 55.1634 80 64ZM64 72C68.4183 72 72 68.4183 72 64C72 59.5817 68.4183 56 64 56C59.5817 56 56 59.5817 56 64C56 68.4183 59.5817 72 64 72Z" + =fill bg; + == +:: + :- 'tic' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 32C110.327 32 96 17.6731 96 -1.39876e-06" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'tid' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "64" + =y1 "2.18557e-08" + =x2 "64" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "96" + =y1 "2.18557e-08" + =x2 "96" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M112 32C112 40.8366 104.837 48 96 48C87.1634 48 80 40.8366 80 32C80 23.1634 87.1634 16 96 16C104.837 16 112 23.1634 112 32ZM96 40C100.418 40 104 36.4183 104 32C104 27.5817 100.418 24 96 24C91.5817 24 88 27.5817 88 32C88 36.4183 91.5817 40 96 40Z" + =fill bg; + == +:: + :- 'til' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "80.0036" + =y1 "79.9965" + =x2 "112.004" + =y2 "111.997" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'tim' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 64V128H0L2.79753e-06 64C4.34256e-06 28.6538 28.6538 -1.54503e-06 64 0C99.3462 1.54503e-06 128 28.6538 128 64Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00291443 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'tin' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "32" + =y1 "2.18557e-08" + =x2 "32" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'tip' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 0L64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M80 64C80 72.8366 72.8366 80 64 80C55.1634 80 48 72.8366 48 64C48 55.1634 55.1634 48 64 48C72.8366 48 80 55.1634 80 64ZM64 72C68.4183 72 72 68.4183 72 64C72 59.5817 68.4183 56 64 56C59.5817 56 56 59.5817 56 64C56 68.4183 59.5817 72 64 72Z" + =fill bg; + == +:: + :- 'tir' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "-0.0029152" + =x2 "127.983" + =y2 "127.986" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'tob' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 64V128H0L2.79753e-06 64C4.34256e-06 28.6538 28.6538 -1.54503e-06 64 0C99.3462 1.54503e-06 128 28.6538 128 64Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 96L0 96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'toc' + |= [fg=tape bg=tape] + :~ ;path + =d "M0.0541 0C70.7217 0.0292317 128 57.3256 128 128C57.3177 128 0.0164917 70.7089 7.62806e-06 0.0305091C7.62851e-06 0.0203397 -4.44317e-10 0.01017 0 0H0.0541Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "128" + =y1 "96" + =x2 "-8.87604e-09" + =y2 "96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'tod' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "64" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'tog' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 96C46.3269 96 32 81.6731 32 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 0L0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'tol' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "128" + =y1 "64" + =x2 "-4.37114e-08" + =y2 "64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M16 128C16 101.49 37.4903 80 64 80C90.5097 80 112 101.49 112 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'tom' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "32" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "96" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "32" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'ton' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 32C74.9807 32 32 74.9807 32 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 64C92.6538 64 64 92.6538 64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 96C110.327 96 96 110.327 96 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'top' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "-0.0029152" + =x2 "127.983" + =y2 "127.986" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "16" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'tor' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "64" + =cy "64" + =r "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'tuc' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 96L0 96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "96" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "32" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'tud' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "32" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'tug' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 32L0 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'tul' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M80 64C80 72.8366 72.8366 80 64 80C55.1634 80 48 72.8366 48 64C48 55.1634 55.1634 48 64 48C72.8366 48 80 55.1634 80 64ZM64 72C68.4183 72 72 68.4183 72 64C72 59.5817 68.4183 56 64 56C59.5817 56 56 59.5817 56 64C56 68.4183 59.5817 72 64 72Z" + =fill bg; + == +:: + :- 'tun' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 64V128H0L2.79753e-06 64C4.34256e-06 28.6538 28.6538 -1.54503e-06 64 0C99.3462 1.54503e-06 128 28.6538 128 64Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "48" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'tus' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 0L0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "32" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'tux' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'tyc' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M80 64C80 72.8366 72.8366 80 64 80C55.1634 80 48 72.8366 48 64C48 55.1634 55.1634 48 64 48C72.8366 48 80 55.1634 80 64ZM64 72C68.4183 72 72 68.4183 72 64C72 59.5817 68.4183 56 64 56C59.5817 56 56 59.5817 56 64C56 68.4183 59.5817 72 64 72Z" + =fill bg; + == +:: + :- 'tyd' + |= [fg=tape bg=tape] + :~ ;path + =d "M0.0541 0C70.7217 0.0292317 128 57.3256 128 128C57.3177 128 0.0164917 70.7089 7.62806e-06 0.0305091C7.62851e-06 0.0203397 -4.44317e-10 0.01017 0 0H0.0541Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00280762 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;line + =y1 "-0.5" + =x2 "45.2548" + =y2 "-0.5" + =transform "matrix(0.707107 -0.707107 -0.707107 -0.707107 79.65 47.6499)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "15.9964" + =y1 "111.997" + =x2 "47.9964" + =y2 "79.9965" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'tyl' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M7.37542e-06 -3.56072e-06C1.19529e-06 70.6924 57.3075 128 128 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'tyn' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 -2.28831e-06C57.3076 -3.13131e-06 8.42999e-07 57.3075 0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'typ' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M96 1.90735e-06C96 53.0193 53.0193 96 0 96" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'tyr' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 127.946C0.0292286 57.2783 57.3256 3.08928e-06 128 0C128 70.6823 70.7089 127.984 0.0305092 128C0.0203397 128 0.01017 128 2.36469e-09 128L0 127.946Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M0 0L128 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M128 64C92.6538 64 64 35.3462 64 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M0 64C35.3462 64 64 92.6538 64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'tyv' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 127.946C0.0292286 57.2783 57.3256 3.08928e-06 128 0C128 70.6823 70.7089 127.984 0.0305092 128C0.0203397 128 0.01017 128 2.36469e-09 128L0 127.946Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M256 0L128 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "96" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "32" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'wac' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "16" + =cy "112" + =r "11.5" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + ;circle + =cx "16" + =cy "112" + =r "9" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + :: =stroke-width "2" + == +:: + :- 'wal' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 127.946C0.0292286 57.2783 57.3256 3.08928e-06 128 0C128 70.6823 70.7089 127.984 0.0305092 128C0.0203397 128 0.01017 128 2.36469e-09 128L0 127.946Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "64.5" + =y1 "-0.5" + =x2 "64.5" + =y2 "127.5" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "32" + =y1 "2.18557e-08" + =x2 "32" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'wan' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + == +:: + :- 'wat' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M80 64C80 72.8366 72.8366 80 64 80C55.1634 80 48 72.8366 48 64C48 55.1634 55.1634 48 64 48C72.8366 48 80 55.1634 80 64ZM64 72C68.4183 72 72 68.4183 72 64C72 59.5817 68.4183 56 64 56C59.5817 56 56 59.5817 56 64C56 68.4183 59.5817 72 64 72Z" + =fill bg; + == +:: + :- 'web' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 128C128 57.3075 70.6925 0 0 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'wed' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "32" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'weg' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M79.5254 0C79.5254 8.83656 72.3619 16 63.5254 16C54.6888 16 47.5254 8.83656 47.5254 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'wel' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 127.946C0.0292286 57.2783 57.3256 3.08928e-06 128 0C128 70.6823 70.7089 127.984 0.0305092 128C0.0203397 128 0.01017 128 2.36469e-09 128L0 127.946Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 32C74.9807 32 32 74.9807 32 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 64C92.6538 64 64 92.6538 64 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 96C110.327 96 96 110.327 96 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'wen' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M1.01717e-06 64C35.3462 64 64 35.3462 64 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + == +:: + :- 'wep' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "96" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'wer' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 64L5.59506e-06 0L128 1.11901e-05V64C128 99.3462 99.3462 128 64 128C28.6538 128 -4.6351e-06 99.3462 0 64Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M32 0L32 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "32" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'wes' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "80.0035" + =y1 "79.9965" + =x2 "112.003" + =y2 "111.997" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "112" + =cy "112" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "112" + =cy "112" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'wet' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M64 64H0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'wex' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M80 64C80 72.8366 72.8366 80 64 80C55.1634 80 48 72.8366 48 64C48 55.1634 55.1634 48 64 48C72.8366 48 80 55.1634 80 64ZM64 72C68.4183 72 72 68.4183 72 64C72 59.5817 68.4183 56 64 56C59.5817 56 56 59.5817 56 64C56 68.4183 59.5817 72 64 72Z" + =fill bg; + == +:: + :- 'wic' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 0C57.3075 8.42999e-07 -8.42999e-07 57.3075 0 128H128V0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;circle + =cx "96" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "32" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'wid' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "48.0035" + =y1 "80.0036" + =x2 "16.0035" + =y2 "112.004" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =fill-rule "evenodd" + =clip-rule "evenodd" + =stroke "none" + =d "M80 64C80 72.8366 72.8366 80 64 80C55.1634 80 48 72.8366 48 64C48 55.1634 55.1634 48 64 48C72.8366 48 80 55.1634 80 64ZM64 72C68.4183 72 72 68.4183 72 64C72 59.5817 68.4183 56 64 56C59.5817 56 56 59.5817 56 64C56 68.4183 59.5817 72 64 72Z" + =fill bg; + == +:: + :- 'win' + |= [fg=tape bg=tape] + :~ ;rect + =width "128" + =height "128" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "64" + =y1 "2.18557e-08" + =x2 "64" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'wis' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 0C0 70.6925 57.3075 128 128 128V0H0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 64L0 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 32L0 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'wit' + |= [fg=tape bg=tape] + :~ ;path + =d "M0 127.946C0.0292286 57.2783 57.3256 3.08928e-06 128 0C128 70.6823 70.7089 127.984 0.0305092 128C0.0203397 128 0.01017 128 2.36469e-09 128L0 127.946Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =x1 "64" + =y1 "2.18557e-08" + =x2 "64" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "32" + =y1 "2.18557e-08" + =x2 "32" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "96" + =y1 "2.18557e-08" + =x2 "96" + =y2 "128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'wol' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M0 64L128 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M128 96C110.327 96 96 81.6731 96 64C96 46.3269 110.327 32 128 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'wor' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 0H128V128H64C28.6538 128 0 99.3462 0 64C0 28.6538 28.6538 0 64 0Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;line + =y1 "-0.5" + =x2 "45.2548" + =y2 "-0.5" + =transform "matrix(0.707107 -0.707107 -0.707107 -0.707107 79.65 47.65)" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;line + =x1 "-0.0029152" + =x2 "127.983" + =y2 "127.986" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M64 96C46.3269 96 32 81.6731 32 64" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "64" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'wyc' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + == +:: + :- 'wyd' + |= [fg=tape bg=tape] + :~ ;path + =d "M0.0541 0C70.7217 0.0292317 128 57.3256 128 128C57.3177 128 0.0164917 70.7089 7.62806e-06 0.0305091C7.62851e-06 0.0203397 -4.44317e-10 0.01017 0 0H0.0541Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;path + =d "M32 64C32 46.3269 46.3269 32 64 32" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "32" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'wyl' + |= [fg=tape bg=tape] + :~ ;path + =d "M128 128C128 57.3076 70.6925 6.18013e-06 1.11901e-05 0L0 128L128 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-3.8147e-06 128C-7.24633e-07 92.6538 28.6538 64 64 64C99.3462 64 128 92.6538 128 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'wyn' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M1.52575e-06 96C53.0193 96 96 53.0193 96 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M1.01717e-06 64C35.3462 64 64 35.3462 64 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;path + =d "M5.08584e-07 32C17.6731 32 32 17.6731 32 0" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + == +:: + :- 'wyt' + |= [fg=tape bg=tape] + :~ ;path + =d "M64 128H0L5.59506e-06 0L64 5.59506e-06C99.3462 8.68512e-06 128 28.6538 128 64C128 99.3462 99.3462 128 64 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M128 0L0 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "64" + =cy "64" + =r "48" + =vector-effect "non-scaling-stroke" + :: =stroke bg + =fill "none"; + ;circle + =cx "16" + =cy "64" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "16" + =cy "64" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'wyx' + |= [fg=tape bg=tape] + :~ ;path + =d "M5.59506e-06 128C70.6925 128 128 70.6925 128 0L0 5.59506e-06L5.59506e-06 128Z" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + ;path + =d "M-0.00292969 0L127.997 128" + =vector-effect "non-scaling-stroke" + :: =stroke bg + :: =stroke-linecap "square" + =fill "none"; + ;circle + =cx "32" + =cy "96" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "96" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "32" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "32" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + ;circle + =cx "96" + =cy "32" + =r "11.5" + :: =fill fg + =vector-effect "non-scaling-stroke" + =stroke fg; + ;circle + =cx "96" + =cy "32" + =r "9" + =fill bg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "2" + == +:: + :- 'zod' + |= [fg=tape bg=tape] + :~ ;circle + =cx "64" + =cy "64" + =r "64" + :: =fill fg + =vector-effect "non-scaling-stroke"; + :: =stroke bg + :: =stroke-width "0.5" + == +== \ No newline at end of file diff --git a/app/web/layout.hoon b/app/web/layout.hoon new file mode 100644 index 0000000..213046d --- /dev/null +++ b/app/web/layout.hoon @@ -0,0 +1,24 @@ +|_ children=marl +++ $ + ;html + ;head + ;meta(charset "utf-8"); + ;meta(name "viewport", content "width=device-width, initial-scale=1, shrink-to-fit=no"); + ;title:"Nostril" + ;link/"/forum/imgs/favicon.ico"(rel "icon", type "image/png"); + ;link/"/forum/imgs/favicon-32x32.png"(rel "icon", type "image/png", sizes "32x32"); + ;link/"/forum/imgs/favicon-16x16.png"(rel "icon", type "image/png", sizes "16x16"); + ;link/"/forum/imgs/apple-touch-icon.png"(rel "apple-touch-icon", type "image/png", sizes "180x180"); + ;link/"/forum/site.webmanifest"(rel "manifest"); + ;link/"/forum/style.css"(rel "stylesheet"); + == + ;body + ;* children + ;div.footer + ; Hosted on + ;a/"https://urbit.org/get-started": ~Urbit + ; . + == + == + == +-- diff --git a/app/web/pages/index.hoon b/app/web/pages/index.hoon new file mode 100644 index 0000000..99e49d0 --- /dev/null +++ b/app/web/pages/index.hoon @@ -0,0 +1,15 @@ +/- sur=nostrill +/= comps /web/components/components +|_ [=state-0:sur =bowl:gall] +++ $ + ^- manx + ;main + ;div#index-top.f.g1 + ;div:"Popular" + ;div.active:"Latest" + == + ;div.thread-list + ;p:"Hey" + == + == +-- diff --git a/app/web/router.hoon b/app/web/router.hoon new file mode 100644 index 0000000..ee65e83 --- /dev/null +++ b/app/web/router.hoon @@ -0,0 +1,40 @@ +/- sur=nostrill +/+ lib=nostrill, sr=sortug +/+ server +:: pages and components +/= layout /web/layout +/= navbar /web/components/navbar +/= index /web/pages/index +:: assets +/* css %css /web/assets/style/css +/* spinner %noun /web/assets/spinner/svg +/* favicon %noun /web/assets/favicon/ico +/* favicon1 %noun /web/assets/favicon-32x32/png +/* favicon2 %noun /web/assets/favicon-16x16/png +:: +|% ++$ order [id=@ta req=inbound-request:eyre] +++ json-body json-to-octs:server +++ ebail |= id=@t %- give-simple-payload:app:server [id pbail] +++ pbail (manx-payload manx-bail) +++ manx-bail ^- manx ;div:"404" +++ manx-payload + |= =manx + ^- simple-payload:http + %- html-response:gen:server + %- manx-to-octs:server manx +:: main +++ router + |_ [=state:sur =bowl:gall] + ++ rout + |= =order + ^- (list card:agent:gall) + =/ rl (parse-request-line:server url.request.req.order) + =. site.rl ?~ site.rl ~ t.site.rl + =/ met method.request.req.order + =/ fpath=(pole knot) [met site.rl] + |^ + (ebail -.order) + -- + -- +-- diff --git a/arvo/eyre.hoon b/arvo/eyre.hoon new file mode 100644 index 0000000..0abd1c3 --- /dev/null +++ b/arvo/eyre.hoon @@ -0,0 +1,4712 @@ +!: +:: lighter than eyre +:: +|= our=ship +=, eyre +:: internal data structures +:: +=> =~ +:: +:: internal data structures that won't go in zuse +:: +|% ++$ move + :: + $: :: duct: request identifier + :: + =duct + :: + :: + card=(wind note gift) + == +:: +note: private request from eyre to another vane +:: ++$ note + $% [%a $>(?(%plea %keen %yawn) task:ames)] + [%b $>(?(%rest %wait) task:behn)] + [%c $>(%warp task:clay)] + [%d $>(%flog task:dill)] + [%g $>(%deal task:gall)] + == +:: +sign: private response from another vane to eyre +:: ++$ sign + $% [%ames $>(?(%done %boon %lost %sage) gift:ames)] + [%behn $>(%wake gift:behn)] + [%gall gift:gall] + [%clay gift:clay] + == +-- +:: more structures +:: +|% +++ axle + $: :: date: date at which http-server's state was updated to this data structure + :: + date=%~2025.1.31 + :: server-state: state of inbound requests + :: + =server-state + == +:: +server-state: state relating to open inbound HTTP connections +:: ++$ server-state + $: :: bindings: actions to dispatch to when a binding matches + :: + :: Eyre is responsible for keeping its bindings sorted so that it + :: will trigger on the most specific binding first. Eyre should send + :: back an error response if an already bound binding exists. + :: + :: TODO: It would be nice if we had a path trie. We could decompose + :: the :binding into a (map (unit @t) (trie knot =action)). + :: + bindings=(list [=binding =duct =action]) + :: cache: mapping from url to versioned entry + :: + cache=(map url=@t [aeon=@ud val=(unit cache-entry)]) + :: cors-registry: state used and managed by the +cors core + :: + =cors-registry + :: connections: open http connections not fully complete + :: + connections=(map duct outstanding-connection) + :: auth: state managed by the +authentication core + :: + auth=authentication-state + :: channel-state: state managed by the +channel core + :: + =channel-state + :: domains: domain-names that resolve to us + :: + domains=(set turf) + :: http-config: our server configuration + :: + =http-config + :: ports: live servers + :: + ports=[insecure=@ud secure=(unit @ud)] + :: outgoing-duct: to unix + :: + outgoing-duct=duct + :: verb: verbosity + :: + verb=@ + :: check-session-timer: set to true for ships prior to ~2025.01.31, + :: who may have been affected by urbit/urbit#7103 + :: + check-session-timer=_| + == +:: channel-request: an action requested on a channel +:: ++$ channel-request + $% :: %ack: acknowledges that the client has received events up to :id + :: + [%ack event-id=@ud] + :: %poke: pokes an application, validating :noun against :mark + :: + [%poke request-id=@ud ship=@p app=term mark=@tas =noun] + :: %poke-json: pokes an application, translating :json to :mark + :: + [%poke-json request-id=@ud ship=@p app=term mark=@tas =json] + :: %watch: subscribes to an application path + :: + [%subscribe request-id=@ud ship=@p app=term =path] + :: %leave: unsubscribes from an application path + :: + [%unsubscribe request-id=@ud subscription-id=@ud] + :: %delete: kills a channel + :: + [%delete ~] + == +:: clog-timeout: the delay between acks after which clog-threshold kicks in +:: +++ clog-timeout ~s30 +:: clog-threshold: maximum per-subscription event buildup, after clog-timeout +:: +++ clog-threshold 50 +:: channel-timeout: the delay before a channel should be reaped +:: +++ channel-timeout ~h12 +:: session-timeout: the delay before an idle session expires +:: +++ session-timeout + |% + ++ auth ~d30 + ++ guest ~d7 + -- +:: eauth-timeout: max time we wait for remote scry response before serving 504 +:: eauth-cache-rounding: scry case rounding for cache hits & clock skew aid +:: +++ eauth-timeout ~s50 +++ eauth-cache-rounding ~m5 +-- +:: utilities +:: +|% +:: +combine-octs: combine multiple octs into one +:: +++ combine-octs + |= a=(list octs) + ^- octs + :- %+ roll a + |= [=octs sum=@ud] + (add sum p.octs) + (can 3 a) +:: +prune-events: removes all items from the front of the queue up to :id +:: +:: also produces, per request-id, the amount of events that have got acked, +:: for use with +subtract-acked-events. +:: +++ prune-events + =| acked=(map @ud @ud) + |= [q=(qeu [id=@ud @ud channel-event]) id=@ud] + ^+ [acked q] + :: if the queue is now empty, that's fine + :: + ?: =(~ q) + [acked ~] + :: + =/ next=[item=[id=@ud request-id=@ud channel-event] _q] ~(get to q) + :: if the head of the queue is newer than the acknowledged id, we're done + :: + ?: (gth id.item.next id) + [acked q] + :: otherwise, note the ack, and check next item + :: + %_ $ + q +:next + :: + acked + =, item.next + %+ ~(put by acked) request-id + +((~(gut by acked) request-id 0)) + == +:: +subtract-acked-events: update the subscription map's pending ack counts +:: +++ subtract-acked-events + |= [acked=(map @ud @ud) unacked=(map @ud @ud)] + ^+ unacked + %+ roll ~(tap by acked) + |= [[rid=@ud ack=@ud] unacked=_unacked] + ?~ sus=(~(get by unacked) rid) + unacked + %+ ~(put by unacked) rid + ?: (lte u.sus ack) 0 + (sub u.sus ack) +:: +find-channel-mode: deduce requested mode from headers +:: +++ find-channel-mode + |= [met=method:http hes=header-list:http] + ^- ?(%json %jam) + =+ ^- [hed=@t jam=@t] + ?: ?=(%'GET' met) ['x-channel-format' 'application/x-urb-jam'] + ['content-type' 'application/x-urb-jam'] + =+ typ=(bind (get-header:http hed hes) :(cork trip cass crip)) + ?:(=(`jam typ) %jam %json) +:: +parse-channel-request: parses a list of channel-requests +:: +++ parse-channel-request + |= [mode=?(%json %jam) body=octs] + ^- (each (list channel-request) @t) + ?- mode + %json + ?~ maybe-json=(de:json:html q.body) + |+'put body not json' + ?~ maybe-requests=(parse-channel-request-json u.maybe-json) + |+'invalid channel json' + &+u.maybe-requests + :: + %jam + ?~ maybe-noun=(bind (slaw %uw q.body) cue) + |+'invalid request format' + ?~ maybe-reqs=((soft (list channel-request)) u.maybe-noun) + ~& [%miss u.maybe-noun] + |+'invalid request data' + &+u.maybe-reqs + == +:: +parse-channel-request-json: parses a json list of channel-requests +:: +:: Parses a json array into a list of +channel-request. If any of the items +:: in the list fail to parse, the entire thing fails so we can 400 properly +:: to the client. +:: +++ parse-channel-request-json + |= request-list=json + ^- (unit (list channel-request)) + :: parse top + :: + =, dejs-soft:format + =- ((ar -) request-list) + :: + |= item=json + ^- (unit channel-request) + :: + ?~ maybe-key=((ot action+so ~) item) + ~ + ?: =('ack' u.maybe-key) + ((pe %ack (ot event-id+ni ~)) item) + ?: =('poke' u.maybe-key) + %. item + %+ pe %poke-json + (ot id+ni ship+(su fed:ag) app+so mark+(su sym) json+some ~) + ?: =('subscribe' u.maybe-key) + %. item + %+ pe %subscribe + (ot id+ni ship+(su fed:ag) app+so path+(su stap) ~) + ?: =('unsubscribe' u.maybe-key) + %. item + %+ pe %unsubscribe + (ot id+ni subscription+ni ~) + ?: =('delete' u.maybe-key) + `[%delete ~] + :: if we reached this, we have an invalid action key. fail parsing. + :: + ~ +:: +auth-styling: css for login and eauth pages +:: +++ auth-styling + ''' + @import url("https://rsms.me/inter/inter.css"); + @font-face { + font-family: "Source Code Pro"; + src: url("https://storage.googleapis.com/media.urbit.org/fonts/scp-regular.woff"); + font-weight: 400; + font-display: swap; + } + :root { + --red-soft: #FFEFEC; + --red: #FF6240; + --gray-100: #E5E5E5; + --gray-400: #999999; + --gray-800: #333333; + --white: #FFFFFF; + } + html { + font-family: Inter, sans-serif; + height: 100%; + margin: 0; + width: 100%; + background: var(--white); + color: var(--gray-800); + -webkit-font-smoothing: antialiased; + line-height: 1.5; + font-size: 16px; + font-weight: 600; + display: flex; + flex-flow: row nowrap; + justify-content: center; + } + body { + display: flex; + flex-flow: column nowrap; + justify-content: center; + max-width: 300px; + padding: 1rem; + width: 100%; + } + body.local #eauth, + body.eauth #local { + display: none; + min-height: 100%; + } + #eauth input { + /*NOTE dumb hack to get approx equal height with #local */ + margin-bottom: 15px; + } + body nav { + background: var(--gray-100); + border-radius: 2rem; + display: flex; + justify-content: space-around; + overflow: hidden; + margin-bottom: 1rem; + } + body nav div { + width: 50%; + padding: 0.5rem 1rem; + text-align: center; + cursor: pointer; + } + body.local nav div.local, + body.eauth nav div.eauth { + background: var(--gray-800); + color: var(--white); + cursor: default; + } + nav div.local { + border-right: none; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + nav div.eauth { + border-left: none; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + body > *, + form > input { + width: 100%; + } + form { + display: flex; + flex-flow: column; + align-items: flex-start; + } + input { + background: var(--gray-100); + border: 2px solid transparent; + padding: 0.5rem; + border-radius: 0.5rem; + font-size: inherit; + color: var(--gray-800); + box-shadow: none; + width: 100%; + } + input:disabled { + background: var(--gray-100); + color: var(--gray-400); + } + input:focus { + outline: none; + background: var(--white); + border-color: var(--gray-400); + } + input:invalid:not(:focus) { + background: var(--red-soft); + border-color: var(--red); + outline: none; + color: var(--red); + } + button[type=submit] { + margin-top: 1rem; + } + button[type=submit], a.button { + font-size: 1rem; + padding: 0.5rem 1rem; + border-radius: 0.5rem; + background: var(--gray-800); + color: var(--white); + border: none; + font-weight: 600; + text-decoration: none; + } + input:invalid ~ button[type=submit] { + border-color: currentColor; + background: var(--gray-100); + color: var(--gray-400); + pointer-events: none; + } + span.guest, span.guest a { + color: var(--gray-400); + } + span.failed { + display: flex; + flex-flow: row nowrap; + height: 1rem; + align-items: center; + margin-top: 0.875rem; + color: var(--red); + } + span.failed svg { + height: 1rem; + margin-right: 0.25rem; + } + span.failed path { + fill: transparent; + stroke-width: 2px; + stroke-linecap: round; + stroke: currentColor; + } + .mono { + font-family: 'Source Code Pro', monospace; + } + @media all and (prefers-color-scheme: dark) { + :root { + --white: #000000; + --gray-800: #E5E5E5; + --gray-400: #808080; + --gray-100: #333333; + --red-soft: #7F1D1D; + } + } + @media screen and (min-width: 30em) { + html { + font-size: 14px; + } + } + ''' +:: +login-page: internal page to login to an Urbit +:: +++ login-page + |= [redirect-url=(unit @t) our=@p =identity eauth=(unit ?) failed=?] + ^- octs + =+ redirect-str=?~(redirect-url "" (trip u.redirect-url)) + %- as-octs:mimes:html + %- crip + %- en-xml:html + =/ favicon %+ + weld "" + "" + ;html + ;head + ;meta(charset "utf-8"); + ;meta(name "viewport", content "width=device-width, initial-scale=1, shrink-to-fit=no"); + ;link(rel "icon", type "image/svg+xml", href (weld "data:image/svg+xml;utf8," favicon)); + ;title:"Urbit" + ;style:"{(trip auth-styling)}" + ;style:"{?^(eauth "" "nav \{ display: none; }")}" + ;script:"our = '{(scow %p our)}';" + ;script:''' + let name, pass; + function setup(isEauth) { + name = document.getElementById('name'); + pass = document.getElementById('pass'); + if (isEauth) goEauth(); else goLocal(); + } + function goLocal() { + document.body.className = 'local'; + pass.focus(); + } + function goEauth() { + document.body.className = 'eauth'; + name.focus(); + } + function doEauth() { + if (name.value == our) { + event.preventDefault(); + goLocal(); + } + } + ''' + == + ;body + =class "{?:(=(`& eauth) "eauth" "local")}" + =onload "setup({?:(=(`& eauth) "true" "false")})" + ;div#local + ;p:"Urbit ID" + ;input(value "{(scow %p our)}", disabled "true", class "mono"); + ;+ ?: =(%ours -.identity) + ;div + ;p:"Already authenticated" + ;a.button/"{(trip (fall redirect-url '/'))}":"Continue" + == + ;form(action "/~/login", method "post", enctype "application/x-www-form-urlencoded") + ;p:"Access Key" + ;input + =type "password" + =name "password" + =id "pass" + =placeholder "sampel-ticlyt-migfun-falmel" + =class "mono" + =required "true" + =minlength "27" + =maxlength "27" + =pattern "((?:[a-z]\{6}-)\{3}(?:[a-z]\{6}))"; + ;input(type "hidden", name "redirect", value redirect-str); + ;+ ?. failed ;span; + ;span.failed + ;svg(xmlns "http://www.w3.org/2000/svg", viewBox "0 0 16 16") + ;path(d "m8 8 4-4M8 8 4 4m4 4-4 4m4-4 4 4"); + == + Key is incorrect + == + ;button(type "submit"):"Continue" + == + == + ;div#eauth + ;form(action "/~/login", method "post", onsubmit "return doEauth()") + ;p:"Urbit ID" + ;input.mono + =name "name" + =id "name" + =placeholder "{(scow %p our)}" + =required "true" + =minlength "4" + =maxlength "57" + =pattern "~((([a-z]\{6})\{1,2}-\{0,2})+|[a-z]\{3})"; + ;p + ; You will be redirected to your own web interface to authorize + ; logging in to + ;span.mono:"{(scow %p our)}" + ; . + == + ;input(type "hidden", name "redirect", value redirect-str); + ;button(name "eauth", type "submit"):"Continue" + == + == + ;* ?: ?=(%ours -.identity) ~ + =+ as="proceed as{?:(?=(%fake -.identity) " guest" "")}" + ;+ ;span.guest.mono + ; Or try to + ;a/"{(trip (fall redirect-url '/'))}":"{as}" + ; . + == + == + ;script:''' + var failSpan = document.querySelector('.failed'); + if (failSpan) { + document.querySelector("input[type=password]") + .addEventListener('keyup', function (event) { + failSpan.style.display = 'none'; + }); + } + ''' + == +:: +eauth-error-page: render an eauth error reporting page +:: +:: optionally redirects the user back to either the login page if we're +:: acting as server, or the host if we're the client. +:: +++ eauth-error-page + |= $= return + $? ~ :: no known return target + [%server last=@t] :: we are the host, return to login + [%client goal=@t] :: we are the client, return to host + == + ^- octs + %- as-octs:mimes:html + %- crip + %- en-xml:html + =/ return=(unit @t) + ?- return + ~ ~ + [%server *] %- some + %^ cat 3 '/~/login?eauth&redirect=' + (crip (en-urlt:html (trip last.return))) + [%client *] `goal.return ::TODO plus nonce? or abort? + == + =/ favicon %+ + weld "" + "" + =/ msg=tape + ?~ return "Something went wrong!" + "Something went wrong! You will be redirected back..." + ;html + ;head + ;* ?~ return ~ + :_ ~ + ;meta(http-equiv "Refresh", content "5; url={(trip u.return)}"); + ;meta(charset "utf-8"); + ;meta(name "viewport", content "width=device-width, initial-scale=1, shrink-to-fit=no"); + ;link(rel "icon", type "image/svg+xml", href (weld "data:image/svg+xml;utf8," favicon)); + ;title:"Urbit" + ;style:''' + @import url("https://rsms.me/inter/inter.css"); + :root { + --black60: rgba(0,0,0,0.6); + --white: rgba(255,255,255,1); + } + html { + font-family: Inter, sans-serif; + height: 100%; + margin: 0; + width: 100%; + background: var(--white); + color: var(--black60); + -webkit-font-smoothing: antialiased; + line-height: 1.5; + font-size: 12px; + display: flex; + flex-flow: row nowrap; + justify-content: center; + } + body { + display: flex; + flex-flow: column nowrap; + justify-content: center; + max-width: 300px; + padding: 1rem; + width: 100%; + } + ''' + == + ;body:"{msg}" + == +:: +render-tang-to-marl: renders a tang and adds
tags between each line +:: +++ render-tang-to-marl + |= [wid=@u tan=tang] + ^- marl + =/ raw=(list tape) (zing (turn tan |=(a=tank (wash 0^wid a)))) + :: + |- ^- marl + ?~ raw ~ + [;/(i.raw) ;br; $(raw t.raw)] +:: +render-tang-to-wall: renders tang as text lines +:: +++ render-tang-to-wall + |= [wid=@u tan=tang] + ^- wall + (zing (turn tan |=(a=tank (wash 0^wid a)))) +:: +wall-to-octs: text to binary output +:: +++ wall-to-octs + |= =wall + ^- (unit octs) + :: + ?: =(~ wall) + ~ + :: + :- ~ + %- as-octs:mimes:html + %- crip + %- zing ^- ^wall + %- zing ^- (list ^wall) + %+ turn wall + |= t=tape + ^- ^wall + ~[t "\0a"] +:: +internal-server-error: 500 page, with a tang +:: +++ internal-server-error + |= [authorized=? url=@t t=tang] + ^- octs + %- as-octs:mimes:html + %- crip + %- en-xml:html + ;html + ;head + ;title:"500 Internal Server Error" + == + ;body + ;h1:"Internal Server Error" + ;p:"There was an error while handling the request for {(trip url)}." + ;* ?: authorized + ;= + ;code:"*{(render-tang-to-marl 80 t)}" + == + ~ + == + == +:: +error-page: error page, with an error string if logged in +:: +++ error-page + |= [code=@ud authorized=? url=@t t=tape] + ^- octs + =/ message=tape + ?+ code "{(scow %ud code)} Error" + %400 "Bad Request" + %403 "Forbidden" + %404 "Not Found" + %405 "Method Not Allowed" + %500 "Internal Server Error" + == + :: + %- as-octs:mimes:html + %- crip + %- en-xml:html + ;html + ;head + ;title:"{(a-co:co code)} {message}" + == + ;body + ;h1:"{message}" + ;p:"There was an error while handling the request for {(trip url)}." + ;* ?: authorized + ;= + ;code:"{t}" + == + ~ + == + == +:: +host-matches: %.y if the site :binding should be used to handle :host +:: +++ host-matches + |= [binding=(unit @t) host=(unit @t)] + ^- ? + :: if the binding allows for matching anything, match + :: + ?~ binding + %.y + :: if the host is ~, that means we're trying to bind nothing to a real + :: binding. fail. + :: + ?~ host + %.n + :: otherwise, do a straight comparison + :: + =(u.binding u.host) +:: +find-suffix: returns [~ /tail] if :full is (weld :prefix /tail) +:: +++ find-suffix + |= [prefix=path full=path] + ^- (unit path) + ?~ prefix + `full + ?~ full + ~ + ?. =(i.prefix i.full) + ~ + $(prefix t.prefix, full t.full) +:: +simplified-url-parser: returns [(each @if @t) (unit port=@ud)] +:: +++ simplified-url-parser + ;~ plug + ;~ pose + %+ stag %ip + =+ tod=(ape:ag ted:ab) + %+ bass 256 + ;~(plug tod (stun [3 3] ;~(pfix dot tod))) + :: + (stag %site (cook crip (star ;~(pose dot alp)))) + == + ;~ pose + (stag ~ ;~(pfix col dim:ag)) + (easy ~) + == + == +:: +host-sans-port: strip the : from a host string +:: +++ host-sans-port + ;~ sfix + %+ cook crip + %- star + ;~ less + ;~(plug col (punt dem) ;~(less next (easy ~))) + next + == + (star next) + == +:: +per-server-event: per-event server core +:: +++ per-server-event + ~% %eyre-per-server-event ..part ~ + :: gate that produces the +per-server-event core from event information + :: + |= [[eny=@ =duct now=@da rof=roof] state=server-state] + =/ eyre-id (scot %ta (cat 3 'eyre_' (scot %uv (sham duct)))) + |% + :: +request-local: bypass authentication for local lens connections + :: + ++ request-local + |= [secure=? =address =request:http] + ^- [(list move) server-state] + :: + =/ act [%app app=%lens] + :: + =/ connection=outstanding-connection + [act [& secure address request] [*@uv [%ours ~]] ~ 0] + :: + =. connections.state + %. (~(put by connections.state) duct connection) + (trace 2 |.("{} creating local")) + :: + (request-to-app [%ours ~] app.act inbound-request.connection) + :: +request: starts handling an inbound http request + :: + ++ request + |= [secure=? =address =request:http] + ^- [(list move) server-state] + =* headers header-list.request + :: for requests from localhost, respect the "forwarded" header + :: + =/ [secure=? host=(unit @t) =^address] + =/ host=(unit @t) (get-header:http 'host' headers) + =* same [secure host address] + ?. =([%ipv4 .127.0.0.1] address) same + ?~ forwards=(forwarded-params headers) same + :+ (fall (forwarded-secure u.forwards) secure) + (clap (forwarded-host u.forwards) host head) + (fall (forwarded-for u.forwards) address) + :: + =/ [=action suburl=@t] + (get-action-for-binding host url.request) + :: + ::TODO we might want to mint new identities only for requests that end + :: up going into userspace, not the ones that get handled by eyre. + :: perhaps that distinction, where userspace requests are async, but + :: eyre-handled requests are always synchronous, provides a fruitful + :: angle for refactoring... + =^ ?(invalid=@uv [suv=@uv =identity som=(list move)]) state + (session-for-request:authentication request) + ?@ - + :: the request provided a session cookie that's not (or no longer) + :: valid. to make sure they're aware, tell them 401 + :: + ::NOTE some code duplication with below, but request handling deserves + :: a refactor anyway + =. connections.state + ::NOTE required by +handle-response. + :: the session identity we provide here doesn't actually exist. + :: that's fine: we call +handle-response for this connection right + :: away, that no-ops for the non-existing session, and then + :: deletes the connection from state. + %+ ~(put by connections.state) duct + ^- outstanding-connection + [action [| secure address request] [invalid %fake *@p] ~ 0] + :: their cookie was invalid, make sure they expire it + :: + =/ bod=octs (as-octs:mimes:html 'bad session auth') + %- handle-response + :* %start + :- 401 + :~ ['set-cookie' (session-cookie-string:authentication invalid ~)] + ['content-length' (crip (a-co:co p.bod))] + == + `bod + complete=%.y + == + =; [moz=(list move) sat=server-state] + [(weld som moz) sat] + :: + =/ authenticated ?=(%ours -.identity) + :: if we have no eauth endpoint yet, and the request is authenticated, + :: deduce it from the hostname + :: + =? endpoint.auth.state + ?& authenticated + ?=(^ host) + ?=(~ auth.endpoint.auth.state) + == + %- (trace 2 |.("eauth: storing endpoint at {(trip u.host)}")) + :+ user.endpoint.auth.state + `(cat 3 ?:(secure 'https://' 'http://') u.host) + now + :: record that we started an asynchronous response + :: + =/ connection=outstanding-connection + [action [authenticated secure address request] [suv identity] ~ 0] + =. connections.state + :: NB: required by +handle-response and +handle-request:authentication. + :: XX optimize, not all requests are asynchronous + :: + (~(put by connections.state) duct connection) + :: redirect to https if insecure, redirects enabled + :: and secure port live + :: + ?: ?& !secure + redirect.http-config.state + ?=(^ secure.ports.state) + == + =/ location=@t + %+ rap 3 + :~ 'https://' + (rash (fall host '') host-sans-port) + ?: =(443 u.secure.ports.state) + '' + (crip ":{(a-co:co u.secure.ports.state)}") + ?: ?=([[~ ~] ~] (parse-request-line url.request)) + '/' + url.request + == + %- handle-response + :* %start + :- status-code=301 + headers=['location' location]~ + data=~ + complete=%.y + == + :: figure out whether this is a cors request, + :: whether the origin is approved or not, + :: and maybe add it to the "pending approval" set + :: + =/ origin=(unit origin) + (get-header:http 'origin' headers) + =^ cors-approved requests.cors-registry.state + =, cors-registry.state + ?~ origin [| requests] + ?: (~(has in approved) u.origin) [& requests] + ?: (~(has in rejected) u.origin) [| requests] + [| (~(put in requests) u.origin)] + :: if this is a cors preflight request from an approved origin + :: handle it synchronously + :: + ?: &(?=(^ origin) cors-approved ?=(%'OPTIONS' method.request)) + %- handle-response + =; =header-list:http + [%start [204 header-list] ~ &] + :: allow the method and headers that were asked for, + :: falling back to wildcard if none specified + :: + ::NOTE +handle-response will add the rest of the headers + :: + :~ :- 'Access-Control-Allow-Methods' + =- (fall - '*') + (get-header:http 'access-control-request-method' headers) + :: + :- 'Access-Control-Allow-Headers' + =- (fall - '*') + (get-header:http 'access-control-request-headers' headers) + == + :: handle HTTP scries + :: + :: TODO: ideally this would look more like: + :: + :: ?^ p=(parse-http-scry url.request) + :: (handle-http-scry authenticated p request) + :: + ?: =('/_~_/' (end [3 5] url.request)) + (handle-http-scry authenticated request) + :: handle requests to the cache, if a non-empty entry exists + :: + =/ cached=(unit [aeon=@ud val=(unit cache-entry)]) + (~(get by cache.state) url.request) + ?: &(?=([~ @ ^] cached) ?=(%'GET' method.request)) + (handle-cache-req authenticated request u.val.u.cached) + :: + ~& >> eyre-request-action=-.action + ?- -.action + %gen + =/ bek=beak [our desk.generator.action da+now] + =/ sup=spur path.generator.action + =/ ski (rof [~ ~] /eyre %ca bek sup) + =/ cag=cage (need (need ski)) + ?> =(%vase p.cag) + =/ gat=vase !<(vase q.cag) + =/ res=toon + %- mock :_ (look rof [~ ~] /eyre) + :_ [%9 2 %0 1] |. + %+ slam + %+ slam gat + !>([[now=now eny=eny bek=bek] ~ ~]) + ::TODO should get passed the requester's identity + !>([authenticated request]) + ?: ?=(%2 -.res) + =+ connection=(~(got by connections.state) duct) + %^ return-static-data-on-duct 500 'text/html' + %: internal-server-error + authenticated.inbound-request.connection + url.request.inbound-request.connection + leaf+"generator crashed" + p.res + == + ?: ?=(%1 -.res) + =+ connection=(~(got by connections.state) duct) + %^ return-static-data-on-duct 500 'text/html' + %: internal-server-error + authenticated.inbound-request.connection + url.request.inbound-request.connection + leaf+"scry blocked on" + (fall (bind (bind ((soft path) p.res) smyt) (late ~)) ~) + == + =/ result ;;(simple-payload:http +.p.res) + :: ensure we have a valid content-length header + :: + :: We pass on the response and the headers the generator produces, but + :: ensure that we have a single content-length header set correctly in + :: the returned if this has a body, and has no content-length if there + :: is no body returned to the client. + :: + =. headers.response-header.result + ?~ data.result + (delete-header:http 'content-length' headers.response-header.result) + :: + %^ set-header:http 'content-length' + (crip (a-co:co p.u.data.result)) + headers.response-header.result + :: + %- handle-response + ^- http-event:http + :* %start + response-header.result + data.result + complete=%.y + == + :: + %app + (request-to-app identity app.action inbound-request.connection) + :: + %authentication + (handle-request:authentication secure host address [suv identity] request) + :: + %eauth + (on-request:eauth:authentication [suv identity] request) + :: + %logout + (handle-logout:authentication [suv identity] request) + :: + %channel + (handle-request:by-channel [suv identity] address request) + :: + %scry + (handle-scry authenticated address request(url suburl)) + :: + %name + (handle-name identity request) + :: + %host + %^ return-static-data-on-duct 200 'text/plain' + (as-octs:mimes:html (scot %p our)) + :: + %ip + (handle-ip address request) + %boot + (handle-boot identity request) + :: + %sponsor + (handle-sponsor identity request) + :: + %four-oh-four + %^ return-static-data-on-duct 404 'text/html' + (error-page 404 authenticated url.request ~) + == + ++ ws-event + |= [wid=@ event=websocket-event] + =/ conn (~(get by connections.state) duct) + ?~ conn `state + ?. ?=(%app -.action.u.conn) `state + =/ app app.action.u.conn + ~& ws-event=[wid app] + =/ identity [%ours ~] + =/ wsid (scot %p wid) + :: TODO damn how + ?+ -.event `state + %message + :_ state + :~ %+ deal-as + /run-ws-app-request/(scot %uw (cut 3 [2 4] eny)) + :^ identity our app + :+ %poke %websocket-server-message + !>([wid message.event]) + == + %disconnect + =. connections.state (~(del by connections.state) duct) + :_ state + :~ %+ deal-as + /ws-watch-response/[wsid] + [identity our app %leave ~] + == + == + ++ ws-handshake + |= [wid=@ secure=? =address:eyre =request:http] + ^- [(list move) server-state] + ~& >>> sending-ws-handshake=[wid eyre-id] + + =/ host=(unit @t) (get-header:http 'host' header-list.request) + =/ [=action suburl=@t] + (get-action-for-binding host url.request) + :: TODO enable other actions + ?> ?=(%app -.action) + + :: TODO!! get clear what all the identity thing has to be + =/ =identity [%ours ~] + =/ app app.action + =^ ?(invalid=@uv [suv=@uv fi=^identity som=(list move)]) state + (session-for-request:authentication request) + =/ connection=outstanding-connection + ?@ - ~& invalid-session=- + [action [.n secure address request] [invalid identity] ~ 0] + [action [.n secure address request] [suv identity] ~ 0] + + + =. connections.state + (~(put by connections.state) duct connection) + :: eyre-id is assigned way up in this arm + =/ wsid (scot %ud wid) + :_ state + :~ %+ deal-as + /ws-watch-response/[wsid] + [identity our app %watch /websocket-server/[wsid]] + :: + %+ deal-as + /run-ws-app-request/[wsid] + :^ identity our app + :+ %poke %websocket-handshake + !>(`[@ inbound-request:eyre]`[wid inbound-request.connection]) + == + + :: +handle-ip: respond with the requester's ip + :: + ++ handle-ip + |= [=address =request:http] + ^- (quip move server-state) + ?. =(%'GET' method.request) + %^ return-static-data-on-duct 405 'text/html' + (error-page 405 & url.request "may only GET ip") + %^ return-static-data-on-duct 200 'text/plain' + =/ ip=@t + ?- address + [%ipv4 *] + (crip (tail ~(rend co [%$ %if +.address]))) + :: + [%ipv6 *] + %- crip + %+ scan ~(rend co [%$ %is +.address]) + ;~(pfix dot (star ;~(pose (cold ':' dot) next))) + == + (as-octs:mimes:html ip) + :: Get current sponsor of ship + :: + ++ galaxy-for + |= =ship + ^- @p + =/ next (^^sein:title rof /eyre our now ship) + ?: ?=(%czar (clan:title next)) + next + $(ship next) + :: + ++ handle-sponsor + |= [=identity =request:http] + ^- (quip move server-state) + =/ crumbs q:(rash url.request apat:de-purl:html) + ?. ?=([@t @t @t ~] crumbs) + %^ return-static-data-on-duct 400 'text/html' + %: error-page + 400 + & + url.request + "Invalid input: Expected /~/boot/" + == + =/ ship + %+ slaw + %p + i.t.t.crumbs + ?~ ship + %^ return-static-data-on-duct 400 'text/html' + %: error-page + 400 + & + url.request + "Invalid input: Expected /~/boot/" + == + %^ return-static-data-on-duct 200 'text/plain' + (as-octs:mimes:html (scot %p (galaxy-for u.ship))) + :: Returns peer-state data for verifying sync status between ship and network. + :: Takes two path parameters - ship=@p and optional bone=@u. + :: + :: Responds with a @uw jam of a noun containing: + :: version, sponsor, rift, life, bone as a unit (null if not provided), and + :: the last-acked message-num of the provided ship and bone as a unit (null if + :: bone is not provided). + :: + :: Responds with a 404 error-page if either: + :: - Peer is not %known + :: - Bone was not found under peer (assuming bone was provided) + :: + ++ handle-boot + |= [=identity =request:http] + ^- (quip move server-state) + ?. =(%'GET' method.request) + %^ return-static-data-on-duct 405 'text/html' + (error-page 405 & url.request "may only GET boot data") + =/ crumbs q:(rash url.request apat:de-purl:html) + => .(crumbs `(pole knot)`crumbs) + ?. ?=([%'~' %boot ship=@t req=*] crumbs) + %^ return-static-data-on-duct 400 'text/html' + %: error-page + 400 + & + url.request + "Invalid input: Expected /~/boot/ or /~/boot//" + == + =/ ship=(unit ship) (slaw %p ship.crumbs) + =/ bone=(unit @ud) + ?. ?=([bone=@t ~] req.crumbs) ~ + (rush bone.req.crumbs dem) + ?: ?| ?=(~ ship) + &(?=([bone=@ ~] req.crumbs) ?=(~ bone)) + == + %^ return-static-data-on-duct 400 'text/html' + %: error-page + 400 + & + url.request + "Invalid input: Expected /~/boot/ or /~/boot//" + == + :: + =/ des=(unit (unit cage)) + %: rof + [~ ~] + /eyre + %ax + [our %$ da+now] + :+ %boot (scot %p u.ship) + ?~(bone ~ [(scot %ud u.bone) ~]) :: XX + == + ?. ?=([~ ~ %noun *] des) + %^ return-static-data-on-duct 404 'text/html' + (error-page 404 & url.request "Peer {(scow %p u.ship)} not found.") + =+ !< [rift=@ud life=@ud bone=(unit @ud) last-acked=(unit @ud)] q.u.u.des + %^ return-static-data-on-duct 200 'application/octet-stream' + %- as-octs:mimes:html + %- jam + ^- boot + [%1 (galaxy-for u.ship) rift life bone last-acked] + :: +handle-name: respond with the requester's @p + :: + ++ handle-name + |= [=identity =request:http] + ^- (quip move server-state) + ?. =(%'GET' method.request) + %^ return-static-data-on-duct 405 'text/html' + (error-page 405 & url.request "may only GET name") + %^ return-static-data-on-duct 200 'text/plain' + =/ nom=@p + ?+(-.identity who.identity %ours our) + (as-octs:mimes:html (scot %p nom)) + :: +handle-http-scry: respond with scry result + :: + ++ handle-http-scry + |= [authenticated=? =request:http] + |^ ^- (quip move server-state) + ?. authenticated (error-response 403 ~) + ?. =(%'GET' method.request) + (error-response 405 "may only GET scries") + =/ req (parse-request-line url.request) + =/ fqp (fully-qualified site.req) + =/ mym (scry-mime now rof [~ ~] ext.req site.req) + ?: ?=(%| -.mym) (error-response 500 p.mym) + =* mime p.mym + %- handle-response + :* %start + :- status-code=200 + ^= headers + :~ ['content-type' (rsh 3 (spat p.mime))] + ['content-length' (crip (a-co:co p.q.mime))] + ['cache-control' ?:(fqp 'max-age=31536000' 'no-cache')] + == + data=[~ q.mime] + complete=%.y + == + :: + ++ fully-qualified + |= a=path + ^- ? + ?. ?=([%'_~_' @ @ @ *] a) %.n + =/ vez (vang | (en-beam [our %base da+now] ~)) + ?= [~ [^ ^ ^ *]] (rush (spat t.t.a) ;~(pfix fas gash:vez)) + :: + ++ error-response + |= [status=@ud =tape] + ^- (quip move server-state) + %^ return-static-data-on-duct status 'text/html' + (error-page status authenticated url.request tape) + -- + :: +handle-cache-req: respond with cached value, 404 or 500 + :: + ++ handle-cache-req + |= [authenticated=? =request:http entry=cache-entry] + |^ ^- (quip move server-state) + ?: &(auth.entry !authenticated) + (error-response 403 ~) + =* body body.entry + ?- -.body + %payload + %- handle-response + :* %start + response-header.simple-payload.body + data.simple-payload.body + complete=%.y + == + == + :: + ++ error-response + |= [status=@ud =tape] + ^- (quip move server-state) + %^ return-static-data-on-duct status 'text/html' + (error-page status authenticated url.request tape) + -- + :: +handle-scry: respond with scry result, 404 or 500 + :: + ++ handle-scry + |= [authenticated=? =address =request:http] + |^ ^- (quip move server-state) + ?. authenticated + (error-response 403 ~) + ?. =(%'GET' method.request) + (error-response 405 "may only GET scries") + :: make sure the path contains an app to scry into + :: + =+ req=(parse-request-line url.request) + ?. ?=(^ site.req) + (error-response 400 "scry path must start with app name") + :: attempt the scry that was asked for + :: + =/ res=(unit (unit cage)) + (do-scry %gx i.site.req (snoc t.site.req (fall ext.req %mime))) + ?~ res (error-response 500 "failed scry") + ?~ u.res (error-response 404 "no scry result") + =* mark p.u.u.res + =* vase q.u.u.res + ?: =(%mime mark) + =/ =mime !<(mime vase) + %^ return-static-data-on-duct 200 + (rsh 3 (spat p.mime)) q.mime + :: attempt to find conversion gate to mime + :: + =/ tub=(unit [tub=tube:clay mov=move]) + (find-tube i.site.req mark %mime) + ?~ tub (error-response 500 "no tube from {(trip mark)} to mime") + :: attempt conversion, then send results + :: + =/ mym=(each mime tang) + (mule |.(!<(mime (tub.u.tub vase)))) + =^ cards state + ?- -.mym + %| (error-response 500 "failed tube from {(trip mark)} to mime") + %& %+ return-static-data-on-duct 200 + [(rsh 3 (spat p.p.mym)) q.p.mym] + == + [[mov.u.tub cards] state] + :: + ++ find-tube + |= [dap=term from=mark to=mark] + ^- (unit [tube:clay move]) + =/ des=(unit (unit cage)) + (do-scry %gd dap /$) + ?. ?=([~ ~ *] des) ~ + =+ !<(=desk q.u.u.des) + =/ tub=(unit (unit cage)) + (do-scry %cc desk /[from]/[to]) + ?. ?=([~ ~ %tube *] tub) ~ + :- ~ + :- !<(tube:clay q.u.u.tub) + :^ duct %pass /conversion-cache/[from] + [%c %warp our desk `[%sing %c da+now /[from]/[to]]] + :: + ++ do-scry + |= [care=term =desk =path] + ^- (unit (unit cage)) + (rof [~ ~] /eyre care [our desk da+now] path) + :: + ++ error-response + |= [status=@ud =tape] + ^- (quip move server-state) + %^ return-static-data-on-duct status 'text/html' + (error-page status authenticated url.request tape) + -- + :: +request-to-app: subscribe to app and poke it with request data + :: + ++ request-to-app + |= [=identity app=term =inbound-request:eyre] + ^- (quip move server-state) + :: if the agent isn't running, we synchronously serve a 503 + :: + ?. !<(? q:(need (need (rof [~ ~] /eyre %gu [our app da+now] /$)))) + %^ return-static-data-on-duct 503 'text/html' + %: error-page + 503 + ?=(%ours -.identity) + url.request.inbound-request + "%{(trip app)} not running" + == + :: otherwise, subscribe to the agent and poke it with the request + :: + :_ state + :~ %+ deal-as + /watch-response/[eyre-id] + [identity our app %watch /http-response/[eyre-id]] + :: + %+ deal-as + /run-app-request/[eyre-id] + :^ identity our app + :+ %poke %handle-http-request + !>(`[@ta inbound-request:eyre]`[eyre-id inbound-request]) + == + :: +cancel-request: handles a request being externally aborted + :: + ++ cancel-request + ^- [(list move) server-state] + :: + ?~ connection=(~(get by connections.state) duct) + :: nothing has handled this connection + :: + [~ state] + :: + =. connections.state (~(del by connections.state) duct) + :: + ?- -.action.u.connection + %gen [~ state] + %app + :_ state + :_ ~ + =, u.connection + %- (trace 1 |.("leaving subscription to {}")) + (deal-as /watch-response/[eyre-id] identity our app.action %leave ~) + :: + ?(%authentication %eauth %logout) + ::NOTE expiry timer will clean up cancelled eauth attempts + [~ state] + :: + %channel + on-cancel-request:by-channel + :: + ?(%scry %four-oh-four %name %host %ip %boot %sponsor) + :: it should be impossible for these to be asynchronous + :: + !! + == + :: +return-static-data-on-duct: returns one piece of data all at once + :: + ++ return-static-data-on-duct + |= [code=@ content-type=@t data=octs] + ^- [(list move) server-state] + :: + %- handle-response + :* %start + :- status-code=code + ^= headers + :~ ['content-type' content-type] + ['content-length' (crip (a-co:co p.data))] + == + data=[~ data] + complete=%.y + == + :: +authentication: per-event authentication as this Urbit's owner + :: + :: Right now this hard codes the authentication page using the old +code + :: system, but in the future should be pluggable so we can use U2F or + :: WebAuthn or whatever is more secure than passwords. + :: + ++ authentication + |% + :: +handle-request: handles an http request for the login page + :: + ++ handle-request + |= [secure=? host=(unit @t) =address [session-id=@uv =identity] =request:http] + ^- [(list move) server-state] + :: parse the arguments out of request uri + :: + =+ request-line=(parse-request-line url.request) + =/ redirect (get-header:http 'redirect' args.request-line) + =/ with-eauth=(unit ?) + ?: =(~ eauth-url:eauth) ~ + `?=(^ (get-header:http 'eauth' args.request-line)) + :: if we received a simple get: show the login page + :: + ::NOTE we never auto-redirect, to avoid redirect loops with apps that + :: send unprivileged users to the login screen + :: + ?: =('GET' method.request) + %^ return-static-data-on-duct 200 'text/html' + (login-page redirect our identity with-eauth %.n) + :: if we are not a post, return an error + :: + ?. =('POST' method.request) + %^ return-static-data-on-duct 405 'text/html' + (login-page ~ our identity with-eauth %.n) + :: we are a post, and must process the body type as form data + :: + ?~ body.request + %^ return-static-data-on-duct 400 'text/html' + (login-page ~ our identity with-eauth %.n) + :: + =/ parsed=(unit (list [key=@t value=@t])) + (rush q.u.body.request yquy:de-purl:html) + ?~ parsed + %^ return-static-data-on-duct 400 'text/html' + (login-page ~ our identity with-eauth %.n) + :: + =/ redirect=(unit @t) (get-header:http 'redirect' u.parsed) + ?^ (get-header:http 'eauth' u.parsed) + ?~ ship=(biff (get-header:http 'name' u.parsed) (cury slaw %p)) + %^ return-static-data-on-duct 400 'text/html' + (login-page redirect our identity `& %.n) + ::TODO redirect logic here and elsewhere is ugly + =/ redirect (fall redirect '') + =/ base=(unit @t) + ?~ host ~ + `(cat 3 ?:(secure 'https://' 'http://') u.host) + (start:server:eauth u.ship base ?:(=(redirect '') '/' redirect)) + :: + =. with-eauth (bind with-eauth |=(? |)) + ?~ password=(get-header:http 'password' u.parsed) + %^ return-static-data-on-duct 400 'text/html' + (login-page redirect our identity with-eauth %.n) + :: check that the password is correct + :: + ?. =(u.password code) + %^ return-static-data-on-duct 400 'text/html' + (login-page redirect our identity with-eauth %.y) + :: clean up the session they're changing out from + :: + =^ moz state + (close-session session-id |) + :: initialize the new session + :: + =^ fex state (start-session %local) + :: associate the new session with the request that caused the login + :: + :: if we don't do this here, +handle-response will include the old + :: session's cookie, confusing the client. + :: + =. connections.state + %+ ~(jab by connections.state) duct + |= o=outstanding-connection + o(session-id session.fex) + :: store the hostname used for this login, later reuse it for eauth + :: + =? endpoint.auth.state + :: avoid overwriting public domains with localhost + :: + ?& ?=(^ host) + ?| ?=(~ auth.endpoint.auth.state) + !=('localhost' (fall (rush u.host host-sans-port) '')) + == == + %- (trace 2 |.("eauth: storing endpoint at {(trip u.host)}")) + =/ new-auth=(unit @t) + `(cat 3 ?:(secure 'https://' 'http://') u.host) + =, endpoint.auth.state + :+ user new-auth + :: only update the timestamp if the derived endpoint visibly changed. + :: that is, it's not hidden behind a user-provided hardcoded url, + :: and the new value is different from the old.) + :: + ?:(|(?=(^ user) =(new-auth auth)) time now) + :: + =; out=[moves=(list move) server-state] + out(moves [give-session-tokens :(weld moz moves.fex moves.out)]) + ::NOTE that we don't provide a 'set-cookie' header here. + :: +handle-response does that for us. + ::TODO that should really also handle the content-length header for us, + :: somewhat surprising that it doesn't... + %- handle-response + =/ bod=octs + (as-octs:mimes:html (scot %uv session.fex)) + =/ col=[key=@t value=@t] + ['content-length' (crip (a-co:co p.bod))] + ?~ redirect + [%start 200^~[col] `bod &] + =/ actual-redirect ?:(=(u.redirect '') '/' u.redirect) + [%start 303^~['location'^actual-redirect col] `bod &] + :: +handle-logout: handles an http request for logging out + :: + ++ handle-logout + |= [[session-id=@uv =identity] =request:http] + ^- [(list move) server-state] + :: whatever we end up doing, we always respond with a redirect + :: + =/ response=$>(%start http-event:http) + =/ redirect=(unit @t) + %+ get-header:http 'redirect' + args:(parse-request-line url.request) + :* %start + response-header=[303 ['location' (fall redirect '/~/login')]~] + data=~ + complete=%.y + == + :: read options from the body + :: all: log out all sessions with this identity? + :: sid: which session do we log out? (defaults to requester's) + :: hos: host to log out from, for eauth logins (sid signifies the nonce) + :: + =/ arg=header-list:http + ?~ body.request ~ + (fall (rush q.u.body.request yquy:de-purl:html) ~) + =/ all=? + ?=(^ (get-header:http 'all' arg)) + =/ sid=(unit @uv) + ?. ?=(%ours -.identity) `session-id + ?~ sid=(get-header:http 'sid' arg) `session-id + :: if you provided the parameter, but it doesn't parse, we just + :: no-op. otherwise, a poorly-implemented frontend might result in + :: accidental log-outs, which would be very annoying. + :: + (slaw %uv u.sid) + =/ hos=(unit @p) + ?. ?=(%ours -.identity) ~ + (biff (get-header:http 'host' arg) (cury slaw %p)) + ?~ sid + (handle-response response) + :: if this is an eauth remote logout, send the %shut + :: + =* auth auth.state + ?: ?=(^ hos) + =^ moz state (handle-response response) + :- [(send-plea:client:eauth u.hos %0 %shut u.sid) moz] + =/ book (~(gut by visiting.auth) u.hos *logbook) + =. qeu.book (~(put to qeu.book) u.sid) + =. visiting.auth (~(put by visiting.auth) u.hos book) + state + :: if the requester is logging themselves out, make them drop the cookie + :: + =? headers.response-header.response =(u.sid session-id) + :_ headers.response-header.response + ['set-cookie' (session-cookie-string session-id ~)] + :: close the session as requested, then send the response + :: + =^ moz1 state (close-session u.sid all) + =^ moz2 state (handle-response response) + [[give-session-tokens (weld moz1 moz2)] state] + :: +session-id-from-request: attempt to find a session token + :: + :: looks in the authorization header first. if there is no such header, + :: looks in the cookie header(s) instead. + :: + ++ session-id-from-request + |= =request:http + ^- (unit @uv) + :: is there an authorization header? + :: + ?^ auth=(get-header:http 'authorization' header-list.request) + (rush u.auth ;~(pfix (jest 'Bearer 0v') viz:ag)) + :: are there cookies passed with this request? + :: + =/ cookie-header=@t + %+ roll header-list.request + |= [[key=@t value=@t] c=@t] + ?. =(key 'cookie') + c + (cat 3 (cat 3 c ?~(c 0 '; ')) value) + :: is the cookie line valid? + :: + ?~ cookies=(rush cookie-header cock:de-purl:html) + ~ + :: is there an urbauth cookie? + :: + ?~ urbauth=(get-header:http (crip "urbauth-{(scow %p our)}") u.cookies) + ~ + :: if it's formatted like a valid session cookie, produce it + :: + `(unit @)`(rush u.urbauth ;~(pfix (jest '0v') viz:ag)) + :: +request-is-logged-in: checks to see if the request has non-guest id + :: + ++ request-is-logged-in + |= =request:http + ^- ? + ?~ session-id=(session-id-from-request request) + | + ?~ session=(~(get by sessions.auth.state) u.session-id) + | + &(!?=(%fake -.identity.u.session) (lte now expiry-time.u.session)) + :: +request-is-authenticated: checks to see if the request is "us" + :: + :: We are considered authenticated if this request has an urbauth + :: Cookie for the local identity that is not expired. + :: + ++ request-is-authenticated + |= =request:http + ^- ? + :: does the request pass a session cookie? + :: + ?~ session-id=(session-id-from-request request) + %.n + :: is this a session that we know about? + :: + ?~ session=(~(get by sessions.auth.state) `@uv`u.session-id) + %.n + :: does this session have our id, and is it still valid? + :: + &(?=(%ours -.identity.u.session) (lte now expiry-time.u.session)) + :: +start-session: create a new session with %local or %guest identity + :: + ++ start-session + |= kind=?(%local %guest [%eauth who=@p]) + ^- [[session=@uv =identity moves=(list move)] server-state] + =; [key=@uv sid=identity] + =/ timeout=@dr + =, session-timeout + ?:(?=(%guest kind) guest auth) + :- :+ key sid + :: if no session existed previously, we must kick off the + :: session expiry timer + :: + ?^ sessions.auth.state ~ + [duct %pass /sessions/expire %b %wait (add now timeout)]~ + =- state(sessions.auth -) + %+ ~(put by sessions.auth.state) key + [sid (add now timeout) ~] + :: create a new session with a fake identity + :: + =/ sik=@uv new-session-key + :- sik + ?: ?=(%local kind) [%ours ~] + ?: ?=([%eauth @] kind) [%real who.kind] + :- %fake + :: pre-scramble our ship name into its displayed value, and + :: truncate it to be at most moon-length, so that we can overlay + :: it onto the end of a comet name for visual consistency. + :: to prevent escalation, make sure the guest identity isn't ours. + :: + |- + =; nom=@p + ?. =(our nom) nom + $(eny (shas %next-name eny)) + %+ end 3^16 + %^ cat 3 + (end 3^8 (fein:ob our)) + (~(raw og (shas %fake-name eny)) 128) + :: +session-for-request: get the session details for the request + :: + :: returns the @ case if an invalid session is provided. + :: creates a guest session if the request does not have any session. + :: there is no need to call +give-session-tokens after this, because + :: guest sessions do not make valid "auth session" tokens. + :: + ++ session-for-request + |= =request:http + ^- [$@(session=@uv [session=@uv =identity moves=(list move)]) server-state] + ?~ sid=(session-id-from-request request) + (start-session %guest) + ?~ ses=(~(get by sessions.auth.state) u.sid) + [u.sid state] + ?: (gth now expiry-time.u.ses) + [u.sid state] + [[u.sid identity.u.ses ~] state] + :: +close-session: delete a session and its associated channels + :: + :: if :all is true, deletes all sessions that share the same identity. + :: if this closes an %ours session, the caller is responsible for + :: also calling +give-session-tokens afterwards. + :: + ++ close-session + |= [session-id=@uv all=?] + ^- [(list move) server-state] + ?~ ses=(~(get by sessions.auth.state) session-id) + [~ state] + :: delete the session(s) and find the associated ids & channels + :: + =^ [siz=(list @uv) channels=(list @t)] sessions.auth.state + =* sessions sessions.auth.state + :: either delete just the specific session and its channels, + :: + ?. all + :- [[session-id]~ ~(tap in channels.u.ses)] + (~(del by sessions) session-id) + :: or delete all sessions with the identity from :session-id + :: + %+ roll ~(tap by sessions) + |= $: [sid=@uv s=session] + [[siz=(list @uv) caz=(list @t)] sez=(map @uv session)] + == + ^+ [[siz caz] sez] + ?. =(identity.s identity.u.ses) + :: identity doesn't match, so re-store this session + :: + [[siz caz] (~(put by sez) sid s)] + :: identity matches, so register this session as closed + :: + [[[sid siz] (weld caz ~(tap in channels.s))] sez] + :: close all affected channels and send their responses + :: + =| moves1=(list move) + |- ^- (quip move server-state) + ?^ channels + %- %+ trace 1 + |.("{(trip i.channels)} discarding channel due to closed session") + =^ moz state + (discard-channel:by-channel i.channels |) + $(moves1 (weld moves1 moz), channels t.channels) + :: lastly, %real sessions require additional cleanup + :: + ?. ?=(%real -.identity.u.ses) [moves1 state] + =^ moves2 visitors.auth.state + %+ roll ~(tap by visitors.auth.state) + |= [[nonce=@uv visa=visitor] [moz=(list move) viz=(map @uv visitor)]] + ?^ +.visa [moz (~(put by viz) nonce visa)] + :_ viz + %+ weld moz + ?~ duct.visa ~ + [(send-boon:server:eauth(duct u.duct.visa) %0 %shut nonce)]~ + [(weld `(list move)`moves1 `(list move)`moves2) state] + :: +code: returns the same as |code + :: + ++ code + ^- @ta + =/ res=(unit (unit cage)) + (rof [~ ~] /eyre %j [our %code da+now] /(scot %p our)) + (rsh 3 (scot %p ;;(@ q.q:(need (need res))))) + :: +session-cookie-string: compose session cookie + :: + ++ session-cookie-string + |= [session=@uv extend=(unit ?(%auth %guest))] + ^- @t + %- crip + =; max-age=tape + "urbauth-{(scow %p our)}={(scow %uv session)}; Path=/; Max-Age={max-age}" + %- a-co:co + ?~ extend 0 + =, session-timeout + (div (msec:milly ?-(u.extend %auth auth, %guest guest)) 1.000) + :: + :: + ++ eauth + =* auth auth.state + |% + ++ server + |% + :: +start: initiate an eauth login attempt for the :ship identity + :: + ++ start + |= [=ship base=(unit @t) last=@t] + ^- [(list move) server-state] + %- (trace 2 |.("eauth: starting eauth into {(scow %p ship)}")) + =/ nonce=@uv + |- + =+ n=(~(raw og (shas %eauth-nonce eny)) 64) + ?. (~(has by visitors.auth) n) n + $(eny (shas %try-again n)) + =/ visit=visitor [~ `[duct now] ship base last ~] + =. visitors.auth (~(put by visitors.auth) nonce visit) + :_ state + :: we delay serving an http response until we receive a scry %tune + :: + :~ (send-keen %keen ship nonce now) + (start-timeout /visitors/(scot %uv nonce)) + == + :: +on-tune: receive a client-url remote scry result + :: + ++ on-tune + |= [ship=@p nonce=@uv url=@t] + ^- [(list move) server-state] + %- (trace 2 |.("eauth: %tune from {(scow %p ship)}")) + :: guarantee the ship still controls the nonce + :: + =/ visa=visitor (~(got by visitors.auth) nonce) + ?> &(?=(^ +.visa) =(ship ship.visa)) + :: redirect the visitor to their own confirmation page + :: + =. visitors.auth (~(put by visitors.auth) nonce visa(pend ~)) + %- handle-response(duct http:(need pend.visa)) + =; url=@t [%start 303^['location' url]~ ~ &] + %+ rap 3 + :~ url + '?server=' (scot %p our) + '&nonce=' (scot %uv nonce) + == + :: +on-plea: receive an eauth network message from a client + :: + ++ on-plea + |= [=ship plea=eauth-plea] + ^- [(list move) server-state] + %- (trace 2 |.("eauth: {(trip +<.plea)} from {(scow %p ship)}")) + =; res=[(list move) server-state] + =^ moz state res + [[[duct %give %done ~] moz] state] + ?- +<.plea + %open + :: this attempt may or may not have been started in +start yet + :: + =/ visa=visitor + %+ ~(gut by visitors.auth) nonce.plea + [~ ~ ship ~ '/' ~] + ?> ?=(^ +.visa) + ?> =(ship ship.visa) + ::NOTE that token might still be empty, in which case the http + :: client will probably signal an abort when they return + :: + =. duct.visa `duct + =. toke.visa token.plea + =. visitors.auth (~(put by visitors.auth) nonce.plea visa) + :: if the eauth attempt was started on our side, we may know the + :: specific base url the user used; make sure they go back there + :: + =/ url=@t + %- need + ?~ base.visa eauth-url + eauth-url(user.endpoint.auth base.visa) + [[(send-boon %0 %okay nonce.plea url)]~ state] + :: + %shut + :: the visitor wants the associated session gone + :: + ?~ visa=(~(get by visitors.auth) nonce.plea) [~ state] + =. visitors.auth (~(del by visitors.auth) nonce.plea) + =? sessions.auth ?=(@ +.u.visa) + (~(del by sessions.auth) sesh.u.visa) + [[(send-boon %0 %shut nonce.plea)]~ state] + == + :: +cancel: the client aborted the eauth attempt, so clean it up + :: + ++ cancel + |= [nonce=@uv last=@t] + ^- [(list move) server-state] + :: if the eauth attempt doesn't exist, or it was already completed, + :: we cannot cancel it + :: + ?~ visa=(~(get by visitors.auth) nonce) [~ state] + ?@ +.u.visa [~ state] + :: delete the attempt, and go back to the login page + :: + %- (trace 2 |.("eauth: cancelling login")) + =. visitors.auth (~(del by visitors.auth) nonce) + =^ moz state + =/ url=@t + %^ cat 3 '/~/login?eauth&redirect=' + (crip (en-urlt:html (trip last))) + (handle-response %start 303^['location' url]~ ~ &) + :_ state + %+ weld moz + ?~ duct.u.visa ~ + [(send-boon(duct u.duct.u.visa) %0 %shut nonce)]~ + :: +expire: host-side cancel an eauth attempt if it's still pending + :: + ++ expire + |= nonce=@uv + ^- [(list move) server-state] + ?~ visa=(~(get by visitors.auth) nonce) + [~ state] + ?@ +.u.visa [~ state] + %- (trace 2 |.("eauth: expiring")) + =^ moz state + ?~ pend.u.visa [~ state] + %- return-static-data-on-duct(duct http.u.pend.u.visa) + [503 'text/html' (eauth-error-page %server last.u.visa)] + =? moz ?=(^ pend.u.visa) + [(send-keen %yawn ship.u.visa nonce keen.u.pend.u.visa) moz] + =. visitors.auth (~(del by visitors.auth) nonce) + :_ state + %+ weld moz + ?~ duct.u.visa ~ + [(send-boon(duct u.duct.u.visa) %0 %shut nonce)]~ + :: +finalize: eauth attempt was approved: mint the client a new session + :: + :: gives the http response on the current duct + :: + ++ finalize + |= [=plea=^duct nonce=@uv =ship last=@t] + ^- [(list move) server-state] + %- (trace 2 |.("eauth: finalizing login for {(scow %p ship)}")) + :: clean up the session they're changing out from, + :: mint the new session, + :: associate it with the nonce, + :: and the finalization request, + :: and send the visitor the cookie + final redirect + :: + =^ moz1 state + (close-session session-id:(~(got by connections.state) duct) |) + =^ [sid=@uv * moz2=(list move)] state + (start-session %eauth ship) + =. visitors.auth + %+ ~(jab by visitors.auth) nonce + |=(v=visitor v(+ sid)) + =. connections.state + %+ ~(jab by connections.state) duct + |= o=outstanding-connection + o(session-id sid) + =^ moz3 state + =; hed (handle-response %start 303^hed ~ &) + :~ ['location' last] + ['set-cookie' (session-cookie-string sid `%auth)] + == + [:(weld moz1 moz2 moz3) state] + :: +on-fail: we crashed or received an empty %tune, clean up + :: + ++ on-fail + |= [=ship nonce=@uv] + ^- [(list move) server-state] + :: if the eauth attempt doesn't exist, or it was already completed, + :: we can no-op here + :: + ?~ visa=(~(get by visitors.auth) nonce) [~ state] + ?@ +.u.visa [~ state] + :: delete the attempt, and go back to the login page + :: + %- (trace 2 |.("eauth: failed login")) + =. visitors.auth (~(del by visitors.auth) nonce) + =^ moz state + ?~ pend.u.visa [~ state] + %- return-static-data-on-duct(duct http.u.pend.u.visa) + [503 'text/html' (eauth-error-page %server last.u.visa)] + :_ state + %+ weld moz + ?~ duct.u.visa ~ + [(send-boon(duct u.duct.u.visa) %0 %shut nonce)]~ + :: + ::TODO +on-request? + :: + ++ send-keen + |= [kind=?(%keen %yawn) =ship nonce=@uv =time] + ^- move + %- (trace 2 |.("eauth: %{(trip kind)} into {(scow %p ship)}")) + :: we round down the time to make it more likely to hit cache, + :: at the expense of not working if the endpoint changed within + :: the last +eauth-cache-rounding. + :: + =/ =wire /eauth/keen/(scot %p ship)/(scot %uv nonce) + =. time (sub time (mod time eauth-cache-rounding)) + =/ =spar:ames [ship /e/x/(scot %da time)//eauth/url] + [duct %pass wire %a ?-(kind %keen keen+[~ spar], %yawn yawn+spar)] + :: + ++ send-boon + |= boon=eauth-boon + ^- move + %- (trace 2 |.("eauth: sending {(trip +<.boon)}")) + [duct %give %boon boon] + -- + :: + ++ client + |% + :: +start: as the client, approve or abort an eauth attempt + :: + :: assumes the duct is of an incoming eauth start/approve request + :: + ++ start + |= [host=ship nonce=@uv grant=?] + ^- [(list move) server-state] + =/ token=@uv (~(raw og (shas %eauth-token eny)) 128) + :: we always send an %open, because we need to redirect the user + :: back to the host. and we always set a timeout, because we may + :: not get a response quickly enough. + :: + :- :~ (send-plea host %0 %open nonce ?:(grant `token ~)) + (start-timeout /visiting/(scot %p host)/(scot %uv nonce)) + == + :: make sure we aren't attempting with this nonce already, + :: then remember the secret so we can include it in the redirect + :: + =/ book (~(gut by visiting.auth) host *logbook) + ?< (~(has by map.book) nonce) + =. visiting.auth + %+ ~(put by visiting.auth) host + :- (~(put to qeu.book) nonce) + (~(put by map.book) nonce [`duct ?:(grant `token ~)]) + state + :: +on-done: receive n/ack for plea we sent + :: + ++ on-done + |= [host=ship good=?] + ^- [(list move) server-state] + %- %- trace + ?: good + [2 |.("eauth: ack from {(scow %p host)}")] + [1 |.("eauth: nack from {(scow %p host)}")] + =/ book (~(gut by visiting.auth) host *logbook) + ?~ ~(top to qeu.book) + %. [~ state] + (trace 0 |.("eauth: done on empty queue from {(scow %p host)}")) + =^ nonce=@uv qeu.book ~(get to qeu.book) + ?: good + =. visiting.auth + ?: =([~ ~] book) + (~(del by visiting.auth) host) + (~(put by visiting.auth) host book) + [~ state] + =/ port (~(get by map.book) nonce) + ?~ port [~ state] + :: delete the attempt/session, serve response if needed + :: + =. visiting.auth + =. map.book + (~(del by map.book) nonce) + ?: =([~ ~] book) + (~(del by visiting.auth) host) + (~(put by visiting.auth) host book) + :: + ?@ u.port [~ state] + ?~ pend.u.port [~ state] + %^ return-static-data-on-duct(duct u.pend.u.port) 503 'text/html' + (eauth-error-page ~) + :: +on-boon: receive an eauth network response from a host + :: + :: crashes on unexpected circumstances, in response to which we + :: should abort the eauth attempt + :: + ++ on-boon + |= [host=ship boon=eauth-boon] + ^- [(list move) server-state] + %- (trace 2 |.("eauth: %{(trip +<.boon)} from {(scow %p host)}")) + ?- +<.boon + %okay + =/ book (~(got by visiting.auth) host) + =/ port (~(got by map.book) nonce.boon) + ?> ?=(^ port) + ?> ?=(^ pend.port) + :: update the outgoing sessions map, deleting if we aborted + :: + =. visiting.auth + ?^ toke.port + %+ ~(put by visiting.auth) host + :- qeu.book + ::NOTE optimistic + (~(put by map.book) nonce.boon now) + =. map.book + (~(del by map.book) nonce.boon) + ?: =([~ ~] book) + (~(del by visiting.auth) host) + (~(put by visiting.auth) host book) + :: always serve a redirect, with either the token, or abort signal + :: + =; url=@t + %- handle-response(duct u.pend.port) + [%start 303^['location' url]~ ~ &] + %+ rap 3 + :* url.boon + '?nonce=' (scot %uv nonce.boon) + ?~ toke.port ['&abort']~ + ~['&token=' (scot %uv u.toke.port)] + == + :: + %shut + :: the host has deleted the corresponding session + :: + =. visiting.auth + =/ book + (~(gut by visiting.auth) host *logbook) + =. map.book + (~(del by map.book) nonce.boon) + ?: =([~ ~] book) + (~(del by visiting.auth) host) + (~(put by visiting.auth) host book) + [~ state] + == + :: + ++ expire + |= [host=ship nonce=@uv] + ^- [(list move) server-state] + =/ book (~(gut by visiting.auth) host *logbook) + =/ port (~(get by map.book) nonce) + :: if the attempt was completed, we don't expire it + :: + ?~ port [~ state] + ?@ u.port [~ state] + :: delete pending attempts, serve response if needed + :: + %- %+ trace 1 + |.("eauth: attempt into {(scow %p host)} expired") + =. visiting.auth + =. map.book + (~(del by map.book) nonce) + ?: =([~ ~] book) + (~(del by visiting.auth) host) + (~(put by visiting.auth) host book) + :: + ?~ pend.u.port [~ state] + %^ return-static-data-on-duct(duct u.pend.u.port) 503 'text/html' + (eauth-error-page ~) + :: + ++ send-plea + |= [=ship plea=eauth-plea] + ^- move + ::NOTE no nonce in the wire, to avoid proliferating flows + =/ =wire /eauth/plea/(scot %p ship) + %- (trace 2 |.("eauth: {(trip +<.plea)} into {(scow %p ship)}")) + [[/eyre/eauth/synthetic]~ %pass wire %a %plea ship %e /eauth/0 plea] + :: + ++ confirmation-page + |= [server=ship nonce=@uv] + ^- octs + %- as-octs:mimes:html + %- crip + %- en-xml:html + =/ favicon %+ + weld "" + "" + ;html + ;head + ;meta(charset "utf-8"); + ;meta(name "viewport", content "width=device-width, initial-scale=1, shrink-to-fit=no"); + ;link(rel "icon", type "image/svg+xml", href (weld "data:image/svg+xml;utf8," favicon)); + ;title:"Urbit" + ;style:"{(trip auth-styling)}" + ;style:''' + form { + border: 1px solid var(--black20); + border-radius: 4px; + padding: 1rem; + align-items: stretch; + font-size: 14px; + } + .red { + background: var(--black05) !important; + color: var(--black60) !important; + border: 1px solid var(--black60) !important; + } + code { + font-weight: bold; + font-family: "Source Code Pro", monospace; + } + button { + display: inline-block; + } + ''' + == + ;body + ;form(action "/~/eauth", method "post") + ; Hello, {(scow %p our)}. + ; You are trying to log in to: + ;code:"{(scow %p server)}" + ;input(type "hidden", name "server", value (scow %p server)); + ;input(type "hidden", name "nonce", value (scow %uv nonce)); + ;button(type "submit", name "grant", value "grant"):"approve" + ;button(type "submit", name "reject", class "red"):"reject" + == + == + == + -- + :: +on-request: http request to the /~/eauth endpoint + :: + ++ on-request + |= [[session-id=@uv =identity] =request:http] + ^- [(list move) server-state] + :: we may need the requester to log in before proceeding + :: + =* login + =; url=@t (handle-response %start 303^['location' url]~ ~ &) + %^ cat 3 '/~/login?redirect=' + (crip (en-urlt:html (trip url.request))) + :: or give them a generic, static error page in unexpected cases + :: + =* error %^ return-static-data-on-duct 400 'text/html' + (eauth-error-page ~) + :: GET requests either render the confirmation page, + :: or finalize an eauth flow + :: + ?: ?=(%'GET' method.request) + =/ args=(map @t @t) (malt args:(parse-request-line url.request)) + =/ server=(unit @p) (biff (~(get by args) 'server') (cury slaw %p)) + =/ nonce=(unit @uv) (biff (~(get by args) 'nonce') (cury slaw %uv)) + =/ token=(unit @uv) (biff (~(get by args) 'token') (cury slaw %uv)) + =/ abort=? (~(has by args) 'abort') + :: + ?~ nonce error + :: + ?^ server + :: request for confirmation page + :: + ?. ?=(%ours -.identity) login + =/ book (~(gut by visiting.auth) u.server *logbook) + =/ door (~(get by map.book) u.nonce) + ?~ door + :: nonce not yet used, render the confirmation page as normal + :: + %^ return-static-data-on-duct 200 'text/html' + (confirmation-page:client u.server u.nonce) + :: if we're still awaiting a redirect target, we choose to serve + :: this latest request instead + :: + ?@ u.door error + ?~ pend.u.door error + =. map.book (~(put by map.book) u.nonce u.door(pend `duct)) + =. visiting.auth (~(put by visiting.auth) u.server book) + %- return-static-data-on-duct(duct u.pend.u.door) + [202 'text/plain' (as-octs:mimes:html 'continued elsewhere...')] + :: important to provide an error response for unexpected states + :: + =/ visa=(unit visitor) (~(get by visitors.auth) u.nonce) + ?~ visa error + ?@ +.u.visa error + =* error %^ return-static-data-on-duct 400 'text/html' + (eauth-error-page %server last.u.visa) + :: request for finalization, must either abort or provide a token + :: + ::NOTE yes, this means that unauthenticated clients can abort + :: any eauth attempt they know the nonce for, but that should + :: be pretty benign + ?: abort (cancel:^server u.nonce last.u.visa) + ?~ token error + :: if this request provides a token, but the client didn't, complain + :: + ?~ toke.u.visa error + :: verify the request + :: + ?. =(u.token u.toke.u.visa) + %- (trace 1 |.("eauth: token mismatch")) + error + ?~ duct.u.visa error + (finalize:^server u.duct.u.visa u.nonce ship.u.visa last.u.visa) + :: + ?. ?=(%'POST' method.request) + %^ return-static-data-on-duct 405 'text/html' + (eauth-error-page ~) + ?. =(%ours -.identity) login + :: POST requests are always submissions of the confirmation page + :: + =/ args=(map @t @t) + (malt (fall (rush q:(fall body.request *octs) yquy:de-purl:html) ~)) + =/ server=(unit @p) (biff (~(get by args) 'server') (cury slaw %p)) + =/ nonce=(unit @uv) (biff (~(get by args) 'nonce') (cury slaw %uv)) + =/ grant=? =(`'grant' (~(get by args) 'grant')) + :: + =* error %^ return-static-data-on-duct 400 'text/html' + (eauth-error-page ~) + ?~ server error + ?~ nonce error + =/ book (~(gut by visiting.auth) u.server *logbook) + ?: (~(has by map.book) u.nonce) error + (start:client u.server u.nonce grant) + :: + ++ eauth-url + ^- (unit @t) + =/ end=(unit @t) (clap user.endpoint.auth auth.endpoint.auth head) + ?~ end ~ + `(cat 3 u.end '/~/eauth') + :: + ++ start-timeout + |= =path + ^- move + [duct %pass [%eauth %expire path] %b %wait (add now eauth-timeout)] + -- + -- + :: +channel: per-event handling of requests to the channel system + :: + :: Eyre offers a remote interface to your Urbit through channels, which + :: are persistent connections on the server which can be disconnected and + :: reconnected on the client. + :: + ++ by-channel + :: moves: the moves to be sent out at the end of this event, reversed + :: + =| moves=(list move) + |% + :: +handle-request: handles an http request for the subscription system + :: + ++ handle-request + |= [[session-id=@uv =identity] =address =request:http] + ^- [(list move) server-state] + :: parse out the path key the subscription is on + :: + =+ request-line=(parse-request-line url.request) + ?. ?=([@t @t @t ~] site.request-line) + :: url is not of the form '/~/channel/' + :: + %^ return-static-data-on-duct 400 'text/html' + (error-page 400 & url.request "malformed channel url") + :: channel-id: unique channel id parsed out of url + :: + =+ channel-id=i.t.t.site.request-line + :: + ?: =('PUT' method.request) + :: PUT methods starts/modifies a channel, and returns a result immediately + :: + (on-put-request channel-id identity request) + :: + ?: =('GET' method.request) + (on-get-request channel-id [session-id identity] request) + ?: =('POST' method.request) + :: POST methods are used solely for deleting channels + (on-put-request channel-id identity request) + :: + %- (trace 0 |.("session not a put")) + %^ return-static-data-on-duct 405 'text/html' + (error-page 405 & url.request "bad method for session endpoint") + :: +on-cancel-request: cancels an ongoing subscription + :: + :: One of our long lived sessions just got closed. We put the associated + :: session back into the waiting state. + :: + ++ on-cancel-request + ^- [(list move) server-state] + :: lookup the session id by duct + :: + %- (trace 1 |.("{} moving channel to waiting state")) + :: + ?~ maybe-channel-id=(~(get by duct-to-key.channel-state.state) duct) + ((trace 0 |.("{} no channel to move")) `state) + :: + =/ maybe-session + (~(get by session.channel-state.state) u.maybe-channel-id) + ?~ maybe-session + ((trace 1 |.("{} session doesn't exist")) `state) + :: + =/ heartbeat-cancel=(list move) + ?~ heartbeat.u.maybe-session ~ + :~ %^ cancel-heartbeat-move + u.maybe-channel-id + date.u.heartbeat.u.maybe-session + duct.u.heartbeat.u.maybe-session + == + :: + =/ expiration-time=@da (add now channel-timeout) + :: + :- %+ weld heartbeat-cancel + [(set-timeout-move u.maybe-channel-id expiration-time) moves] + %_ state + session.channel-state + %+ ~(jab by session.channel-state.state) u.maybe-channel-id + |= =channel + :: if we are canceling a known channel, it should have a listener + :: + ?> ?=([%| *] state.channel) + channel(state [%& [expiration-time duct]], heartbeat ~) + :: + duct-to-key.channel-state + (~(del by duct-to-key.channel-state.state) duct) + == + :: +update-timeout-timer-for: sets a timeout timer on a channel + :: + :: This creates a channel if it doesn't exist, cancels existing timers + :: if they're already set (we cannot have duplicate timers), and (if + :: necessary) moves channels from the listening state to the expiration + :: state. + :: + ++ update-timeout-timer-for + |= [mode=?(%json %jam) =identity channel-id=@t] + ^+ ..update-timeout-timer-for + :: when our callback should fire + :: + =/ expiration-time=@da (add now channel-timeout) + :: if the channel doesn't exist, create it and set a timer + :: + ?~ maybe-channel=(~(get by session.channel-state.state) channel-id) + :: + %_ ..update-timeout-timer-for + session.channel-state.state + %+ ~(put by session.channel-state.state) channel-id + [mode identity [%& expiration-time duct] 0 now ~ ~ ~ ~] + :: + moves + [(set-timeout-move channel-id expiration-time) moves] + == + :: if the channel has an active listener, we aren't setting any timers + :: + ?: ?=([%| *] state.u.maybe-channel) + ..update-timeout-timer-for + :: we have a previous timer; cancel the old one and set the new one + :: + %_ ..update-timeout-timer-for + session.channel-state.state + %+ ~(jab by session.channel-state.state) channel-id + |= =channel + channel(state [%& [expiration-time duct]]) + :: + moves + :* (cancel-timeout-move channel-id p.state.u.maybe-channel) + (set-timeout-move channel-id expiration-time) + moves + == + == + :: + ++ set-heartbeat-move + |= [channel-id=@t heartbeat-time=@da] + ^- move + :^ duct %pass /channel/heartbeat/[channel-id] + [%b %wait heartbeat-time] + :: + ++ cancel-heartbeat-move + |= [channel-id=@t heartbeat-time=@da =^duct] + ^- move + :^ duct %pass /channel/heartbeat/[channel-id] + [%b %rest heartbeat-time] + :: + ++ set-timeout-move + |= [channel-id=@t expiration-time=@da] + ^- move + [duct %pass /channel/timeout/[channel-id] %b %wait expiration-time] + :: + ++ cancel-timeout-move + |= [channel-id=@t expiration-time=@da =^duct] + ^- move + :^ duct %pass /channel/timeout/[channel-id] + [%b %rest expiration-time] + :: +on-get-request: handles a GET request + :: + :: GET requests connect to a channel for the server to send events to + :: the client in text/event-stream format. + :: + ++ on-get-request + |= [channel-id=@t [session-id=@uv =identity] =request:http] + ^- [(list move) server-state] + :: if the channel doesn't exist, we cannot serve it. + :: this 404 also lets clients know if their channel was reaped since + :: they last connected to it. + :: + ?. (~(has by session.channel-state.state) channel-id) + %^ return-static-data-on-duct 404 'text/html' + (error-page 404 | url.request ~) + :: + =/ mode=?(%json %jam) + (find-channel-mode %'GET' header-list.request) + =^ [exit=? =wall moves=(list move)] state + :: the request may include a 'Last-Event-Id' header + :: + =/ maybe-last-event-id=(unit @ud) + ?~ maybe-raw-header=(get-header:http 'last-event-id' header-list.request) + ~ + (rush u.maybe-raw-header dum:ag) + =/ channel + (~(got by session.channel-state.state) channel-id) + :: we put some demands on the get request, and may need to do some + :: cleanup for prior requests. + :: + :: find the channel creator's identity, make sure it matches + :: + ?. =(identity identity.channel) + =^ mos state + %^ return-static-data-on-duct 403 'text/html' + (error-page 403 | url.request ~) + [[& ~ mos] state] + :: make sure the request "mode" doesn't conflict with a prior request + :: + ::TODO or could we change that on the spot, given that only a single + :: request will ever be listening to this channel? + ?. =(mode mode.channel) + =^ mos state + %^ return-static-data-on-duct 406 'text/html' + =; msg=tape (error-page 406 %.y url.request msg) + "channel already established in {(trip mode.channel)} mode" + [[& ~ mos] state] + :: when opening an event-stream, we must cancel our timeout timer + :: if there's no duct already bound. else, kill the old request, + :: we will replace its duct at the end of this arm + :: + =^ cancel-moves state + ?: ?=([%& *] state.channel) + :_ state + (cancel-timeout-move channel-id p.state.channel)^~ + =. duct-to-key.channel-state.state + (~(del by duct-to-key.channel-state.state) p.state.channel) + =/ cancel-heartbeat + ?~ heartbeat.channel ~ + :_ ~ + %+ cancel-heartbeat-move channel-id + [date duct]:u.heartbeat.channel + =- [(weld cancel-heartbeat -<) ->] + (handle-response(duct p.state.channel) [%cancel ~]) + :: flush events older than the passed in 'Last-Event-ID' + :: + =? state ?=(^ maybe-last-event-id) + (acknowledge-events channel-id u.maybe-last-event-id) + ::TODO that did not remove them from the channel queue though! + :: we may want to account for maybe-last-event-id, for efficiency. + :: (the client _should_ ignore events it heard previously if we do + :: end up re-sending them, but _requiring_ that feels kinda risky) + :: + :: combine the remaining queued events to send to the client + :: + =; event-replay=wall + [[| - cancel-moves] state] + %- zing + %- flop + =/ queue events.channel + =| events=(list wall) + |- + ^+ events + ?: =(~ queue) + events + =^ head queue ~(get to queue) + =, p.head + ::NOTE these will only fail if the mark and/or json types changed, + :: since conversion failure also gets caught during first receive. + :: we can't do anything about this, so consider it unsupported. + =/ said + (channel-event-to-tape channel request-id channel-event) + ?~ said $ + $(events [(event-tape-to-wall id +.u.said) events]) + ?: exit [moves state] + :: send the start event to the client + :: + =^ http-moves state + %- handle-response + :* %start + :- 200 + :~ ['content-type' 'text/event-stream'] + ['cache-control' 'no-cache'] + ['connection' 'keep-alive'] + == + :: + :: if we wouldn't otherwise send any data, send an early heartbeat + :: instead. some clients won't consider the connection established + :: until they've heard some bytes come over the wire. + :: + ?. =(~ wall) (wall-to-octs wall) + (some (as-octs:mimes:html ':\0a')) + :: + complete=%.n + == + :: associate this duct with this session key + :: + =. duct-to-key.channel-state.state + (~(put by duct-to-key.channel-state.state) duct channel-id) + :: associate this channel with the session cookie + :: + =. sessions.auth.state + %+ ~(jab by sessions.auth.state) + session-id + |= =session + session(channels (~(put in channels.session) channel-id)) + :: initialize sse heartbeat + :: + =/ heartbeat-time=@da (add now ~s20) + =/ heartbeat (set-heartbeat-move channel-id heartbeat-time) + :: record the mode & duct for future output, + :: and record heartbeat-time for possible future cancel + :: + =. session.channel-state.state + %+ ~(jab by session.channel-state.state) channel-id + |= =channel + %_ channel + mode mode + state [%| duct] + heartbeat (some [heartbeat-time duct]) + == + :: + [[heartbeat :(weld http-moves moves)] state] + :: +acknowledge-events: removes events before :last-event-id on :channel-id + :: + ++ acknowledge-events + |= [channel-id=@t last-event-id=@u] + ^- server-state + %_ state + session.channel-state + %+ ~(jab by session.channel-state.state) channel-id + |= =channel + ^+ channel + =^ acked events.channel + (prune-events events.channel last-event-id) + =. unacked.channel + (subtract-acked-events acked unacked.channel) + channel(last-ack now) + == + :: +on-put-request: handles a PUT request + :: + :: PUT requests send commands from the client to the server. We receive + :: a set of commands in JSON format in the body of the message. + :: channels don't exist until a PUT request is sent. it's valid for + :: this request to contain an empty list of commands. + :: + ++ on-put-request + |= [channel-id=@t =identity =request:http] + ^- [(list move) server-state] + :: if the channel already exists, and is not of this identity, 403 + :: + :: the creation case happens in the +update-timeout-timer-for below + :: + ?: ?~ c=(~(get by session.channel-state.state) channel-id) | + !=(identity identity.u.c) + %^ return-static-data-on-duct 403 'text/html' + (error-page 403 | url.request ~) + :: error when there's no body + :: + ?~ body.request + %^ return-static-data-on-duct 400 'text/html' + (error-page 400 %.y url.request "no put body") + :: + =/ mode=?(%json %jam) + (find-channel-mode %'PUT' header-list.request) + :: if we cannot parse requests from the body, give an error + :: + =/ maybe-requests=(each (list channel-request) @t) + (parse-channel-request mode u.body.request) + ?: ?=(%| -.maybe-requests) + %^ return-static-data-on-duct 400 'text/html' + (error-page 400 & url.request (trip p.maybe-requests)) + :: check for the existence of the channel-id + :: + :: if we have no session, create a new one set to expire in + :: :channel-timeout from now. if we have one which has a timer, update + :: that timer. + :: + =. ..on-put-request (update-timeout-timer-for mode identity channel-id) + :: for each request, execute the action passed in + :: + =+ requests=p.maybe-requests + :: gall-moves: put moves here first so we can flop for ordering + :: errors: if we accumulate any, discard the gall-moves and revert + :: + =| gall-moves=(list move) + =| errors=(map @ud @t) + =/ og-state state + =/ from=ship + ?+(-.identity who.identity %ours our) + |- + :: + ?~ requests + ?: =(~ errors) + :: everything succeeded, mark the request as completed + :: + =^ http-moves state + %- handle-response + :* %start + [status-code=204 headers=~] + data=~ + complete=%.y + == + :: + [:(weld (flop gall-moves) http-moves moves) state] + :: some things went wrong. revert all operations & give 400 + :: + %- (trace 1 |.("{} reverting due to errors")) + =. state og-state + =^ http-moves state + %^ return-static-data-on-duct 400 'text/html' + %- as-octs:mimes:html + %+ rap 3 + %+ turn (sort ~(tap by errors) dor) + |= [id=@ud er=@t] + (rap 3 (crip (a-co:co id)) ': ' er '
' ~) + [(weld http-moves moves) state] + :: + ?- -.i.requests + %ack + :: client acknowledges that they have received up to event-id + :: + %_ $ + state (acknowledge-events channel-id event-id.i.requests) + requests t.requests + == + :: + ?(%poke %poke-json) + =, i.requests + :: + ?. |(=(from our) =(ship our)) + =+ [request-id 'non-local operation'] + $(errors (~(put by errors) -), requests t.requests) + :: + =. gall-moves + =/ =wire /channel/poke/[channel-id]/(scot %ud request-id.i.requests) + :_ gall-moves + ^- move + %+ deal-as + /channel/poke/[channel-id]/(scot %ud request-id) + :^ from ship app + ^- task:agent:gall + :+ %poke-as mark + ?- -.i.requests + %poke [%noun !>(noun)] + %poke-json [%json !>(json)] + == + :: + $(requests t.requests) + :: + %subscribe + =, i.requests + :: + ?. |(=(from our) =(ship our)) + =+ [request-id 'non-local operation'] + $(errors (~(put by errors) -), requests t.requests) + :: + ::TODO could error if the subscription is a duplicate + =. gall-moves + :_ gall-moves + ^- move + %- (trace 1 |.("subscribing to {} on {}")) + %+ deal-as + (subscription-wire channel-id request-id from ship app) + [from ship app %watch path] + :: + =. session.channel-state.state + %+ ~(jab by session.channel-state.state) channel-id + |= =channel + =- channel(subscriptions -) + %+ ~(put by subscriptions.channel) + request-id + [ship app path duct] + :: + $(requests t.requests) + :: + %unsubscribe + =, i.requests + :: + ?. |(=(from our) =(ship our)) + =+ [request-id 'non-local operation'] + $(errors (~(put by errors) -), requests t.requests) + :: + =/ usession (~(get by session.channel-state.state) channel-id) + ?~ usession + $(requests t.requests) + =/ subscriptions subscriptions:u.usession + :: + ?~ maybe-subscription=(~(get by subscriptions) subscription-id) + :: the client sent us a weird request referring to a subscription + :: which isn't active. + :: + %. $(requests t.requests) + =* msg=tape "{(trip channel-id)} {}" + (trace 0 |.("missing subscription in unsubscribe {msg}")) + :: + =. gall-moves + :_ gall-moves + ^- move + =, u.maybe-subscription + %- (trace 1 |.("leaving subscription to {}")) + %+ deal-as(duct duc) + (subscription-wire channel-id subscription-id from ship app) + [from ship app %leave ~] + :: + =. session.channel-state.state + %+ ~(jab by session.channel-state.state) channel-id + |= =channel + %_ channel + subscriptions (~(del by subscriptions.channel) subscription-id) + unacked (~(del by unacked.channel) subscription-id) + == + :: + $(requests t.requests) + :: + %delete + %- (trace 1 |.("{} discarding due to %delete PUT")) + =^ moves state + (discard-channel channel-id |) + =. gall-moves + (weld gall-moves moves) + $(requests t.requests) + :: + == + :: +on-gall-response: sanity-check a gall response, send as event + :: + ++ on-gall-response + |= [channel-id=@t request-id=@ud extra=wire =sign:agent:gall] + ^- [(list move) server-state] + :: if the channel doesn't exist, we should clean up subscriptions + :: + :: this is a band-aid solution. you really want eyre to have cleaned + :: these up on-channel-delete in the first place. + :: until the source of that bug is discovered though, we keep this + :: in place to ensure a slightly tidier home. + :: + ?. ?& !(~(has by session.channel-state.state) channel-id) + ?=(?(%fact %watch-ack) -.sign) + ?=([@ @ *] extra) + == + (emit-event channel-id request-id sign) + =/ =ship (slav %p i.extra) + =* app=term i.t.extra + =* msg=tape "{(trip channel-id)} {(trip app)}" + %- (trace 0 |.("removing watch for non-existent channel {msg}")) + :_ state + :_ ~ + ^- move + =/ [as=@p old=?] + ?+ t.t.extra ~|([%strange-wire extra] !!) + ~ [our &] + [@ ~] [(slav %p i.t.t.extra) |] + == + =/ =wire (subscription-wire channel-id request-id as ship app) + %+ deal-as + ::NOTE we previously used a wire format that had the local identity + :: implicit, instead of explicit at the end of the wire. if we + :: detect we used the old wire here, we must re-use that format + :: (without id in the wire) for sending the %leave. + ?:(old (snip wire) wire) + [as ship app %leave ~] + :: +emit-event: records an event occurred, possibly sending to client + :: + :: When an event occurs, we need to record it, even if we immediately + :: send it to a connected browser so in case of disconnection, we can + :: resend it. + :: + :: This function is responsible for taking the event sign and converting + :: it into a text/event-stream. The :sign then may get sent, and is + :: stored for later resending until acknowledged by the client. + :: + ++ emit-event + |= [channel-id=@t request-id=@ud =sign:agent:gall] + ^- [(list move) server-state] + :: + =/ channel=(unit channel) + (~(get by session.channel-state.state) channel-id) + ?~ channel + :_ state :_ ~ + [duct %pass /flog %d %flog %crud %eyre-no-channel >id=channel-id< ~] + :: it's possible that this is a sign emitted directly alongside a fact + :: that triggered a clog & closed the subscription. in that case, just + :: drop the sign. + :: poke-acks are not paired with subscriptions, so we can process them + :: regardless. + :: + ?: ?& !?=(%poke-ack -.sign) + !(~(has by subscriptions.u.channel) request-id) + == + [~ state] + :: attempt to convert the sign to json. + :: if conversion succeeds, we *can* send it. if the client is actually + :: connected, we *will* send it immediately. + :: + =/ maybe-channel-event=(unit channel-event) + (sign-to-channel-event sign u.channel request-id) + ?~ maybe-channel-event [~ state] + =/ =channel-event u.maybe-channel-event + =/ said=(unit (quip move tape)) + (channel-event-to-tape u.channel request-id channel-event) + =? moves ?=(^ said) + (weld moves -.u.said) + =* sending &(?=([%| *] state.u.channel) ?=(^ said)) + :: + =/ next-id next-id.u.channel + :: if we can send it, store the event as unacked + :: + =? events.u.channel ?=(^ said) + %- ~(put to events.u.channel) + [next-id request-id channel-event] + :: if it makes sense to do so, send the event to the client + :: + =? moves sending + ^- (list move) + :_ moves + ::NOTE assertions in this block because =* is flimsy + ?> ?=([%| *] state.u.channel) + :+ p.state.u.channel %give + ^- gift + :* %response %continue + :: + ^= data + %- wall-to-octs + (event-tape-to-wall next-id +:(need said)) + :: + complete=%.n + == + =? next-id ?=(^ said) +(next-id) + :: update channel's unacked counts, find out if clogged + :: + =^ clogged unacked.u.channel + :: only apply clog logic to facts. + :: and of course don't count events we can't send as unacked. + :: + ?: ?| !?=(%fact -.sign) + ?=(~ said) + == + [| unacked.u.channel] + =/ num=@ud + (~(gut by unacked.u.channel) request-id 0) + :_ (~(put by unacked.u.channel) request-id +(num)) + ?& (gte num clog-threshold) + (lth (add last-ack.u.channel clog-timeout) now) + == + :: if we're clogged, or we ran into an event we can't serialize, + :: kill this gall subscription. + :: + =* msg=tape "on {(trip channel-id)} for {(scow %ud request-id)}" + =/ kicking=? + ?: clogged + ((trace 0 |.("clogged {msg}")) &) + ?. ?=(~ said) | + ((trace 0 |.("can't serialize event, kicking {msg}")) &) + =? moves kicking + :_ moves + ::NOTE this shouldn't crash because we + :: - never fail to serialize subscriptionless signs (%poke-ack), + :: - only clog on %facts, which have a subscription associated, + :: - and already checked whether we still have that subscription. + =+ (~(got by subscriptions.u.channel) request-id) + %- (trace 1 |.("leaving subscription to {}")) + %+ deal-as + (subscription-wire channel-id request-id identity.u.channel ship app) + [identity.u.channel ship app %leave ~] + :: update channel state to reflect the %kick + :: + =? u.channel kicking + %_ u.channel + subscriptions (~(del by subscriptions.u.channel) request-id) + unacked (~(del by unacked.u.channel) request-id) + events %- ~(put to events.u.channel) + :+ next-id + request-id + (need (sign-to-channel-event [%kick ~] u.channel request-id)) + == + :: if a client is connected, send the kick event to them + :: + =? moves &(kicking ?=([%| *] state.u.channel)) + :_ moves + :+ p.state.u.channel %give + ^- gift + :* %response %continue + :: + ^= data + %- wall-to-octs + %+ event-tape-to-wall next-id + +:(need (channel-event-to-tape u.channel request-id %kick ~)) + :: + complete=%.n + == + =? next-id kicking +(next-id) + :: + :- (flop moves) + %_ state + session.channel-state + %+ ~(put by session.channel-state.state) channel-id + u.channel(next-id next-id) + == + :: +sign-to-channel-event: strip the vase from a sign:agent:gall + :: + ++ sign-to-channel-event + |= [=sign:agent:gall =channel request-id=@ud] + ^- (unit channel-event) + ?. ?=(%fact -.sign) `sign + ?~ desk=(app-to-desk channel request-id) ~ + :- ~ + [%fact u.desk [p q.q]:cage.sign] + :: +app-to-desk + :: + ++ app-to-desk + |= [=channel request-id=@ud] + ^- (unit desk) + =/ sub (~(get by subscriptions.channel) request-id) + ?~ sub + ((trace 0 |.("no subscription for request-id {(scow %ud request-id)}")) ~) + =/ des=(unit (unit cage)) + (rof [~ ~] /eyre %gd [our app.u.sub da+now] /$) + ?. ?=([~ ~ *] des) + ((trace 0 |.("no desk for app {}")) ~) + `!<(=desk q.u.u.des) + :: +channel-event-to-tape: render channel-event from request-id in specified mode + :: + ++ channel-event-to-tape + |= [=channel request-id=@ud =channel-event] + ^- (unit (quip move tape)) + ?- mode.channel + %json %+ bind (channel-event-to-json channel request-id channel-event) + |=((quip move json) [+<- (trip (en:json:html +<+))]) + %jam =- `[~ (scow %uw (jam -))] + [request-id channel-event] + == + :: +channel-event-to-json: render channel event as json channel event + :: + ++ channel-event-to-json + ~% %eyre-channel-event-to-json ..part ~ + |= [=channel request-id=@ud event=channel-event] + ^- (unit (quip move json)) + :: for facts, we try to convert the result to json + :: + =/ [from=(unit [=desk =mark]) jsyn=(unit sign:agent:gall)] + ?. ?=(%fact -.event) [~ `event] + ?: ?=(%json mark.event) + ?~ jsin=((soft json) noun.event) + %. [~ ~] + (slog leaf+"eyre: dropping fake json for {(scow %ud request-id)}" ~) + [~ `[%fact %json !>(u.jsin)]] + :: find and use tube from fact mark to json + :: + :: + =* have=mark mark.event + =/ convert=(unit vase) + =/ cag=(unit (unit cage)) + (rof [~ ~] /eyre %cf [our desk.event da+now] /[have]/json) + ?. ?=([~ ~ *] cag) ~ + `q.u.u.cag + ?~ convert + ((trace 0 |.("no convert from {(trip have)} to json")) [~ ~]) + ~| "conversion failed from {(trip have)} to json" + [`[desk.event have] `[%fact %json (slym u.convert noun.event)]] + ?~ jsyn ~ + %- some + :- ?~ from ~ + :_ ~ + :^ duct %pass /conversion-cache/[mark.u.from] + [%c %warp our desk.u.from `[%sing %f da+now /[mark.u.from]/json]] + =* sign u.jsyn + =, enjs:format + %- pairs + ^- (list [@t json]) + :- ['id' (numb request-id)] + ?- -.sign + %poke-ack + :~ ['response' [%s 'poke']] + :: + ?~ p.sign + ['ok' [%s 'ok']] + ['err' (wall (render-tang-to-wall 100 u.p.sign))] + == + :: + %fact + :+ ['response' [%s 'diff']] + :- 'json' + ~| [%unexpected-fact-mark p.cage.sign] + ?> =(%json p.cage.sign) + !<(json q.cage.sign) + :: + ?~ from ~ + ['mark' [%s mark.u.from]]~ + :: + %kick + ['response' [%s 'quit']]~ + :: + %watch-ack + :~ ['response' [%s 'subscribe']] + :: + ?~ p.sign + ['ok' [%s 'ok']] + ['err' (wall (render-tang-to-wall 100 u.p.sign))] + == + == + :: + ++ event-tape-to-wall + ~% %eyre-tape-to-wall ..part ~ + |= [event-id=@ud =tape] + ^- wall + :~ (weld "id: " (a-co:co event-id)) + (weld "data: " tape) + "" + == + :: + ++ on-channel-heartbeat + |= channel-id=@t + ^- [(list move) server-state] + :: + =/ res + %- handle-response + :* %continue + data=(some (as-octs:mimes:html ':\0a')) + complete=%.n + == + =/ http-moves -.res + =/ new-state +.res + =/ heartbeat-time=@da (add now ~s20) + :_ %_ new-state + session.channel-state + %+ ~(jab by session.channel-state.state) channel-id + |= =channel + channel(heartbeat (some [heartbeat-time duct])) + == + (snoc http-moves (set-heartbeat-move channel-id heartbeat-time)) + :: +discard-channel: remove a channel from state + :: + :: cleans up state, timers, and gall subscriptions of the channel + :: + ++ discard-channel + |= [channel-id=@t expired=?] + ^- [(list move) server-state] + :: + =/ usession=(unit channel) + (~(get by session.channel-state.state) channel-id) + ?~ usession + [~ state] + =/ session=channel u.usession + :: + :_ %_ state + session.channel-state + (~(del by session.channel-state.state) channel-id) + :: + duct-to-key.channel-state + ?. ?=(%| -.state.session) duct-to-key.channel-state.state + (~(del by duct-to-key.channel-state.state) p.state.session) + == + =/ heartbeat-cancel=(list move) + ?~ heartbeat.session ~ + :~ %^ cancel-heartbeat-move + channel-id + date.u.heartbeat.session + duct.u.heartbeat.session + == + =/ expire-cancel=(list move) + ?: expired ~ + ?. ?=(%& -.state.session) ~ + =, p.state.session + [(cancel-timeout-move channel-id date duct)]~ + %+ weld heartbeat-cancel + %+ weld expire-cancel + :: produce a list of moves which cancels every gall subscription + :: + %+ turn ~(tap by subscriptions.session) + |= [request-id=@ud ship=@p app=term =path duc=^duct] + ^- move + %- (trace 1 |.("{} leaving subscription to {}")) + %+ deal-as(duct duc) + (subscription-wire channel-id request-id identity.session ship app) + [identity.session ship app %leave ~] + -- + :: +handle-gall-error: a call to +poke-http-response resulted in a %coup + :: + ++ handle-gall-error + |= =tang + ^- [(list move) server-state] + :: + ?~ connection-state=(~(get by connections.state) duct) + %. `state + (trace 0 |.("{} error on invalid outstanding connection")) + =* connection u.connection-state + =/ moves-1=(list move) + ?. ?=(%app -.action.connection) + ~ + :_ ~ + =, connection + %- (trace 1 |.("leaving subscription to {}")) + (deal-as /watch-response/[eyre-id] identity our app.action %leave ~) + :: + =^ moves-2 state + %^ return-static-data-on-duct 500 'text/html' + :: + %- internal-server-error :* + authenticated.inbound-request.connection + url.request.inbound-request.connection + tang + == + [(weld moves-1 moves-2) state] + :: +handle-response: check a response for correctness and send to earth + :: + :: All outbound responses including %http-server generated responses need to go + :: through this interface because we want to have one centralized place + :: where we perform logging and state cleanup for connections that we're + :: done with. + :: + ++ handle-ws-response + |= [wid=@ event=websocket-event] + ^- [(list move) server-state] + ~& eyre-handle-ws-response=event + :: TODO remove if not accepted? + =. connections.state + ?. ?=(%reject -.event) connections.state + (~(del by connections.state) duct) + + :: TODO do all verification shit that handle-response is doing + [[duct %give %websocket-response [wid event]]~ state] + + ++ handle-response + |= =http-event:http + ^- [(list move) server-state] + :: verify that this is a valid response on the duct + :: + ?~ connection-state=(~(get by connections.state) duct) + ((trace 0 |.("{} invalid outstanding connection")) `state) + :: + |^ ^- [(list move) server-state] + :: + ?- -.http-event + :: + %start + ?^ response-header.u.connection-state + ((trace 0 |.("{} error multiple start")) error-connection) + :: extend the request's session's + cookie's life + :: + =^ response-header sessions.auth.state + =, authentication + =* session-id session-id.u.connection-state + =* sessions sessions.auth.state + =* inbound inbound-request.u.connection-state + =* headers headers.response-header.http-event + :: + ?~ ses=(~(get by sessions) session-id) + :: if the session has expired since the request was opened, + :: tough luck, we don't create/revive sessions here + :: + [response-header.http-event sessions] + =/ kind ?:(?=(%fake -.identity.u.ses) %guest %auth) + =/ timeout + =, session-timeout + ?:(?=(%guest kind) guest auth) + :_ %+ ~(put by sessions) session-id + u.ses(expiry-time (add now timeout)) + =- response-header.http-event(headers -) + =/ cookie=(pair @t @t) + ['set-cookie' (session-cookie-string session-id `kind)] + |- + ?~ headers + [cookie ~] + ?: &(=(key.i.headers p.cookie) =(value.i.headers q.cookie)) + headers + [i.headers $(headers t.headers)] + :: + =* connection u.connection-state + :: + :: if the request was a simple cors request from an approved origin + :: append the necessary cors headers to the response + :: + =/ origin=(unit origin) + %+ get-header:http 'origin' + header-list.request.inbound-request.connection + =? headers.response-header + ?& ?=(^ origin) + (~(has in approved.cors-registry.state) u.origin) + == + %^ set-header:http 'Access-Control-Allow-Origin' u.origin + %^ set-header:http 'Access-Control-Allow-Credentials' 'true' + headers.response-header + :: + =. response-header.http-event response-header + =. connections.state + ?: complete.http-event + :: XX optimize by not requiring +put:by in +request + :: + (~(del by connections.state) duct) + :: + %- (trace 2 |.("{} start")) + %+ ~(put by connections.state) duct + %= connection + response-header `response-header + bytes-sent ?~(data.http-event 0 p.u.data.http-event) + == + :: + pass-response + :: + %continue + ?~ response-header.u.connection-state + %. error-connection + (trace 0 |.("{} error continue without start")) + :: + =. connections.state + ?: complete.http-event + %- (trace 2 |.("{} completed")) + (~(del by connections.state) duct) + :: + %- (trace 2 |.("{} continuing")) + ?~ data.http-event + connections.state + :: + %+ ~(put by connections.state) duct + =* size p.u.data.http-event + =* conn u.connection-state + conn(bytes-sent (add size bytes-sent.conn)) + :: + pass-response + :: + %cancel + :: todo: log this differently from an ise. + :: + ((trace 1 |.("cancel http event")) error-connection) + == + :: + ++ pass-response + ^- [(list move) server-state] + [[duct %give %response http-event]~ state] + :: + ++ error-connection + :: todo: log application error + :: + :: remove all outstanding state for this connection + :: + =. connections.state + (~(del by connections.state) duct) + :: respond to outside with %error + :: + ^- [(list move) server-state] + :_ state + :- [duct %give %response %cancel ~] + ?. ?=(%app -.action.u.connection-state) + ~ + :_ ~ + =, u.connection-state + %- %+ trace 1 + |.("leaving subscription to {}") + (deal-as /watch-response/[eyre-id] identity our app.action %leave ~) + -- + :: +set-response: remember (or update) a cache mapping + :: + ++ set-response + |= [url=@t entry=(unit cache-entry)] + ^- [(list move) server-state] + =/ aeon ?^(prev=(~(get by cache.state) url) +(aeon.u.prev) 1) + =. cache.state (~(put by cache.state) url [aeon entry]) + :_ state + ::NOTE during boot, userspace might've sent us this before we received + :: our first %born, with which we initialize the outgoing-duct. + :: it's fine to hold off on the %grow here, we'll re-send them + :: whenever we finally receive the %born. + ?: =(~ outgoing-duct.state) ~ + [outgoing-duct.state %give %grow /cache/(scot %ud aeon)/(scot %t url)]~ + :: +add-binding: conditionally add a pairing between binding and action + :: + :: Adds =binding =action if there is no conflicting bindings. + :: + ++ add-binding + |= [=binding =action] + ^- [(list move) server-state] + =^ success bindings.state + :: prevent binding in reserved namespaces + :: + ?: ?| ?=([%'~' *] path.binding) :: eyre + ?=([%'~_~' *] path.binding) :: runtime + ?=([%'_~_' *] path.binding) :: scries + == + [| bindings.state] + [& (insert-binding [binding duct action] bindings.state)] + :_ state + [duct %give %bound & binding]~ + :: +remove-binding: removes a binding if it exists and is owned by this duct + :: + ++ remove-binding + |= =binding + :: + ^- server-state + %_ state + bindings + %+ skip bindings.state + |= [item-binding=^binding item-duct=^duct =action] + ^- ? + &(=(item-binding binding) =(item-duct duct)) + == + :: +get-action-for-binding: finds an action for an incoming web request + :: + ++ get-action-for-binding + |= [raw-host=(unit @t) url=@t] + ^- [=action suburl=@t] + :: process :raw-host + :: + :: If we are missing a 'Host:' header, if that header is a raw IP + :: address, or if the 'Host:' header refers to [our].urbit.org, we want + :: to return ~ which means we're unidentified and will match against any + :: wildcard matching. + :: + :: Otherwise, return the site given. + :: + =/ host=(unit @t) + ?~ raw-host + ~ + :: Parse the raw-host so that we can ignore ports, usernames, etc. + :: + =+ parsed=(rush u.raw-host simplified-url-parser) + ?~ parsed + ~ + :: if the url is a raw IP, assume default site. + :: + ?: ?=([%ip *] -.u.parsed) + ~ + :: if the url is "localhost", assume default site. + :: + ?: =([%site 'localhost'] -.u.parsed) + ~ + :: render our as a tape, and cut off the sig in front. + :: + =/ with-sig=tape (scow %p our) + ?> ?=(^ with-sig) + ?: =(u.raw-host (crip t.with-sig)) + :: [our].urbit.org is the default site + :: + ~ + :: + raw-host + :: url is the raw thing passed over the 'Request-Line'. + :: + :: todo: this is really input validation, and we should return a 500 to + :: the client. + :: + =/ request-line (parse-request-line url) + =/ parsed-url=(list @t) site.request-line + =? parsed-url ?=([%'~' %channel-jam *] parsed-url) + parsed-url(i.t %channel) + :: + =/ bindings bindings.state + |- + :: + ?~ bindings + [[%four-oh-four ~] url] + :: + ?. (host-matches site.binding.i.bindings raw-host) + $(bindings t.bindings) + ?~ suffix=(find-suffix path.binding.i.bindings parsed-url) + $(bindings t.bindings) + :: + :- action.i.bindings + %^ cat 3 + %+ roll + ^- (list @t) + (join '/' (flop ['' u.suffix])) + (cury cat 3) + ?~ ext.request-line '' + (cat 3 '.' u.ext.request-line) + :: +give-session-tokens: send valid local session tokens to unix + :: + ++ give-session-tokens + ^- move + :- outgoing-duct.state + :+ %give %sessions + %- sy + %+ murn ~(tap by sessions.auth.state) + |= [sid=@uv session] + ?. ?=(%ours -.identity) ~ + (some (scot %uv sid)) + :: +new-session-key + :: + ++ new-session-key + |- ^- @uv + =/ candidate=@uv (~(raw og (shas %session-key eny)) 128) + ?. (~(has by sessions.auth.state) candidate) + candidate + $(eny (shas %try-again candidate)) + :: + ++ deal-as + |= [=wire identity=$@(@p identity) =ship =dude:gall =task:agent:gall] + ^- move + =/ from=@p + ?@ identity identity + ?+(-.identity who.identity %ours our) + [duct %pass wire %g %deal [from ship /eyre] dude task] + :: + ++ trace + |= [pri=@ print=(trap tape)] + ?: (lth verb.state pri) same + (slog leaf+"eyre: {(print)}" ~) + -- +:: +++ forwarded-params + |= =header-list:http + ^- (unit (list (map @t @t))) + %+ biff + (get-header:http 'forwarded' header-list) + unpack-header:http +:: +++ forwarded-for + |= forwards=(list (map @t @t)) + ^- (unit address) + ?. ?=(^ forwards) ~ + =* forward i.forwards + ?~ for=(~(get by forward) 'for') ~ + ::NOTE per rfc7239, non-ip values are also valid. they're not useful + :: for the general case, so we ignore them here. if needed, + :: request handlers are free to inspect the headers themselves. + :: + %+ rush u.for + ;~ sfix + ;~(pose (stag %ipv4 ip4) (stag %ipv6 (ifix [sel ser] ip6))) + ;~(pose ;~(pfix col dim:ag) (easy ~)) + == +:: +++ forwarded-secure + |= forwards=(list (map @t @t)) + ^- (unit ?) + ?. ?=(^ forwards) ~ + =* forward i.forwards + ?~ proto=(~(get by forward) 'proto') ~ + ?+ u.proto ~ + %http `| + %https `& + == +:: +++ forwarded-host + |= forwards=(list (map @t @t)) + ^- (unit @t) + ?. ?=(^ forwards) ~ + (~(get by i.forwards) 'host') +:: +++ parse-request-line + |= url=@t + ^- [[ext=(unit @ta) site=(list @t)] args=(list [key=@t value=@t])] + (fall (rush url ;~(plug apat:de-purl:html yque:de-purl:html)) [[~ ~] ~]) +:: +insert-binding: add a new binding, replacing any existing at its path +:: +++ insert-binding + |= $: new=[=binding =duct =action] + bindings=(list [=binding =duct =action]) + == + ^+ bindings + ?~ bindings [new]~ + =* bid binding.i.bindings + :: replace already bound paths + :: + ?: =([site path]:bid [site path]:binding.new) + ~> %slog.[0 leaf+"eyre: replacing existing binding at {<`path`path.bid>}"] + [new t.bindings] + :: if new comes before bid, prepend it. + :: otherwise, continue our search. + :: + =; new-before-bid=? + ?: new-before-bid [new bindings] + [i.bindings $(bindings t.bindings)] + ?: =(site.binding.new site.bid) + (aor path.bid path.binding.new) + (aor (fall site.bid '') (fall site.binding.new '')) +:: +++ channel-wire + |= [channel-id=@t request-id=@ud] + ^- wire + /channel/subscription/[channel-id]/(scot %ud request-id) +:: +++ subscription-wire + |= [channel-id=@t request-id=@ud as=$@(@p identity) =ship app=term] + ^- wire + =/ from=@p + ?@ as as + ?+(-.as who.as %ours our) + %+ weld (channel-wire channel-id request-id) + ::NOTE including the originating identity is important for the band-aid + :: solution currently present in +on-gall-response, where we may + :: need to issue a %leave after we've forgotten the identity with + :: which the subscription was opened. + /(scot %p ship)/[app]/(scot %p from) +:: +++ scry-mime + |= [now=@da rof=roof =gang ext=(unit @ta) pax=path] + |^ ^- (each mime tape) + :: parse + :: + =/ u=(unit [view=term bem=beam]) + ?. ?=([@ @ @ @ *] pax) ~ + ?~ view=(slaw %tas i.t.pax) ~ + ?~ path=(expand-path t.t.pax) ~ + ?~ beam=(de-beam u.path) ~ + `[u.view u.beam] + ?~ u [%| "invalid scry path"] + :: perform scry + :: + ?~ res=(rof gang /eyre u.u) [%| "failed scry"] + ?~ u.res [%| "no scry result"] + =* mark p.u.u.res + =* vase q.u.u.res + :: convert to mime via ext + :: + =/ dysk (conversion-desk u.u) + ?: ?=(%| -.dysk) [%| p.dysk] + =/ ext (fall ext %mime) + =/ mym (convert vase mark ext p.dysk) + ?: ?=(%| -.mym) [%| p.mym] + =/ mym (convert p.mym ext %mime p.dysk) + ?: ?=(%| -.mym) [%| p.mym] + [%& !<(mime p.mym)] + :: + ++ expand-path + |= a=path + ^- (unit path) + =/ vez (vang | (en-beam [our %base da+now] ~)) + (rush (spat a) (sear plex:vez (stag %clsg ;~(pfix fas poor:vez)))) + :: + ++ conversion-desk + |= [view=term =beam] + ^- (each desk tape) + ?: =(%$ q.beam) [%& %base] + ?+ (end 3 view) [%& %base] + %c + [%& q.beam] + %g + =/ res (rof [~ ~] /eyre %gd [our q.beam da+now] /$) + ?. ?=([~ ~ *] res) + [%| "no desk for app {}"] + [%& !<(=desk q.u.u.res)] + == + :: + ++ convert + |= [=vase from=mark to=mark =desk] + ^- (each ^vase tape) + ?: =(from to) [%& vase] + =/ tub (rof [~ ~] /eyre %cc [our desk da+now] /[from]/[to]) + ?. ?=([~ ~ %tube *] tub) + [%| "no tube from {(trip from)} to {(trip to)}"] + =/ tube !<(tube:clay q.u.u.tub) + =/ res (mule |.((tube vase))) + ?: ?=(%| -.res) + [%| "failed tube from {(trip from)} to {(trip to)}"] + [%& +.res] + -- +-- +:: end the =~ +:: +. == +:: begin with a default +axle as a blank slate +:: +=| ax=axle +:: a vane is activated with current date, entropy, and a namespace function +:: +|= [now=@da eny=@uvJ rof=roof] +:: allow jets to be registered within this core +:: +~% %http-server ..part ~ +|% +++ call + ~/ %eyre-call + |= [=duct dud=(unit goof) wrapped-task=(hobo task)] + ^- [(list move) _http-server-gate] + :: + =/ task=task ((harden task) wrapped-task) + ~& > eyre-task=[-.task duct=duct] + :: + :: XX handle more error notifications + :: + ?^ dud + :_ http-server-gate + :: always print the error trace + :: + :- [duct %slip %d %flog %crud [-.task tang.u.dud]] + ^- (list move) + :: if a request caused the crash, respond with a 500 + :: + ?. ?=(?(%request %request-local) -.task) ~ + ^~ + =/ data (as-octs:mimes:html 'crud!') + =/ head + :~ ['content-type' 'text/html'] + ['content-length' (crip (a-co:co p.data))] + == + [duct %give %response %start 500^head `data &]~ + :: due to an error handling bug in earlier versions of +take, + :: we may need to make sure the timeout timer for sessions still exists. + :: see also urbit/urbit#7103 + :: + ?: check-session-timer.server-state.ax + :: we do this cleanup exactly once + :: + =. check-session-timer.server-state.ax | + :: if there are no sessions after running the +call, + :: we don't need a timer, so we don't need to set it + :: + ::NOTE hazard, must get state from .etc going forward + =/ [moz=(list move) etc=_http-server-gate] $ + :_ etc + ^- (list move) + ?: =(~ sessions.auth.server-state.ax.etc) moz + :: if .moz is already setting the timer, + :: we don't need to do it here + :: + ?: %+ lien moz + |= m=move + ?=([* %pass [%sessions %expire ~] *] m) + moz + :: find out from behn if there isn't already a timer set. + :: this is not ideal, but we have no other way of knowing, + :: and don't want to set duplicate timers... + :: + ?: ?~ res=(rof [~ ~] /eyre %bx [our %$ da+now] /debug/timers) | + ?~ u.res | + %+ lien !<((list [@da ^duct]) q.u.u.res) + |= [@da d=^duct] + ?=([[%eyre %sessions %expire ~] *] d) + moz + :: we need a timer, but aren't setting one, and don't have one, + :: so prepend a session expire timer to the .moz + :: + [[duct %pass /sessions/expire %b %wait now] moz] + :: %init: tells us what our ship name is + :: + ?: ?=(%init -.task) + :: initial value for the login handler + :: + =. bindings.server-state.ax + =- (roll - insert-binding) + ^- (list [binding ^duct action]) + :~ [[~ /~/login] duct [%authentication ~]] + [[~ /~/eauth] duct [%eauth ~]] + [[~ /~/logout] duct [%logout ~]] + [[~ /~/channel] duct [%channel ~]] + [[~ /~/scry] duct [%scry ~]] + [[~ /~/name] duct [%name ~]] + [[~ /~/host] duct [%host ~]] + [[~ /~/ip] duct [%ip ~]] + [[~ /~/boot] duct [%boot ~]] + [[~ /~/sponsor] duct [%sponsor ~]] + == + [~ http-server-gate] + :: %trim: in response to memory pressure + :: + :: Cancel all inactive channels + :: XX cancel active too if =(0 trim-priority) ? + :: + ?: ?=(%trim -.task) + =* event-args [[eny duct now rof] server-state.ax] + =* by-channel by-channel:(per-server-event event-args) + =* channel-state channel-state.server-state.ax + :: + =/ inactive=(list @t) + =/ full=(set @t) ~(key by session.channel-state) + =/ live=(set @t) + (~(gas in *(set @t)) ~(val by duct-to-key.channel-state)) + ~(tap in (~(dif in full) live)) + :: + ?: =(~ inactive) + [~ http-server-gate] + :: + =/ len=tape (scow %ud (lent inactive)) + ~> %slog.[0 leaf+"eyre: trim: closing {len} inactive channels"] + :: + =| moves=(list (list move)) + |- ^- [(list move) _http-server-gate] + =* channel-id i.inactive + ?~ inactive + [(zing (flop moves)) http-server-gate] + :: discard channel state, and cancel any active gall subscriptions + :: + =^ mov server-state.ax (discard-channel:by-channel channel-id |) + $(moves [mov moves], inactive t.inactive) + :: + :: %vega: notifies us of a completed kernel upgrade + :: + ?: ?=(%vega -.task) + [~ http-server-gate] + :: %born: new unix process + :: + ?: ?=(%born -.task) + :: close previously open connections + :: + :: When we have a new unix process, every outstanding open connection is + :: dead. For every duct, send an implicit close connection. + :: + =^ closed-connections=(list move) server-state.ax + =/ connections=(list [=^duct *]) + ~(tap by connections.server-state.ax) + :: + =| closed-connections=(list move) + |- + ?~ connections + [closed-connections server-state.ax] + :: + =/ event-args + [[eny duct.i.connections now rof] server-state.ax] + =/ cancel-request cancel-request:(per-server-event event-args) + =^ moves server-state.ax cancel-request + :: + $(closed-connections (weld moves closed-connections), connections t.connections) + :: save duct for future %give to unix + :: + =. outgoing-duct.server-state.ax duct + :: send all cache mappings to runtime + :: + =/ cache-moves=(list move) + %+ turn ~(tap by cache.server-state.ax) + |= [url=@t cache-val=[aeon=@ud val=(unit cache-entry)]] + [duct %give %grow /cache/(scot %u aeon.cache-val)/(scot %t url)] + :: + :_ http-server-gate + :* :: hand back default configuration for now + :: + [duct %give %set-config http-config.server-state.ax] + :: provide a list of valid auth tokens + :: + =< give-session-tokens + (per-server-event [eny duct now rof] server-state.ax) + :: + (zing ~[closed-connections cache-moves]) + == + :: + ?: ?=(%code-changed -.task) + ~> %slog.[0 leaf+"eyre: code-changed: throwing away local sessions"] + =* event-args [[eny duct now rof] server-state.ax] + :: find all the %ours sessions, we must close them + :: + =/ siz=(list @uv) + %+ murn ~(tap by sessions.auth.server-state.ax) + |= [sid=@uv session] + ?:(?=(%ours -.identity) (some sid) ~) + =| moves=(list (list move)) + |- ^- [(list move) _http-server-gate] + ?~ siz + [(zing (flop moves)) http-server-gate] + :: discard the session, clean up its channels + :: + =^ mov server-state.ax + (close-session:authentication:(per-server-event event-args) i.siz |) + $(moves [mov moves], siz t.siz) + :: + ?: ?=(%eauth-host -.task) + ?: =(user.endpoint.auth.server-state.ax host.task) + [~ http-server-gate] + =. user.endpoint.auth.server-state.ax host.task + =. time.endpoint.auth.server-state.ax now + [~ http-server-gate] + :: + :: all other commands operate on a per-server-event + :: + =/ event-args [[eny duct now rof] server-state.ax] + =/ server (per-server-event event-args) + :: + ?- -.task + :: %live: notifies us of the ports of our live http servers + :: + %live + =. ports.server-state.ax +.task + :: enable http redirects if https port live and cert set + :: + =. redirect.http-config.server-state.ax + &(?=(^ secure.task) ?=(^ secure.http-config.server-state.ax)) + [~ http-server-gate] + :: %rule: updates our http configuration + :: + %rule + ?- -.http-rule.task + :: %cert: install tls certificate + :: + %cert + =* config http-config.server-state.ax + ?: =(secure.config cert.http-rule.task) + [~ http-server-gate] + =. secure.config cert.http-rule.task + =. redirect.config + ?& ?=(^ secure.ports.server-state.ax) + ?=(^ cert.http-rule.task) + == + :_ http-server-gate + =* out-duct outgoing-duct.server-state.ax + ?~ out-duct ~ + [out-duct %give %set-config config]~ + :: %turf: add or remove domain name + :: + %turf + =* domains domains.server-state.ax + =/ mod=(set turf) + ?- -.action.http-rule.task + %put (~(put in domains) turf.action.http-rule.task) + %del (~(del in domains) turf.action.http-rule.task) + %new turfs.action.http-rule.task + == + ?: &(!?=(%new -.action.http-rule.task) =(domains mod)) + [~ http-server-gate] + =. domains mod + :_ http-server-gate + =/ cmd + [%acme %poke `cage`[%acme-order !>(mod)]] + [duct %pass /acme/order %g %deal [our our /eyre] cmd]~ + == + :: + %plea + ~| path.plea.task + ?> ?=([%eauth %'0' ~] path.plea.task) + =+ plea=;;(eauth-plea payload.plea.task) + =^ moves server-state.ax + (on-plea:server:eauth:authentication:server ship.task plea) + [moves http-server-gate] + :: + %request + =^ moves server-state.ax (request:server +.task) + [moves http-server-gate] + :: + %request-local + =^ moves server-state.ax (request-local:server +.task) + [moves http-server-gate] + :: + %cancel-request + =^ moves server-state.ax cancel-request:server + [moves http-server-gate] + :: + %connect + =^ moves server-state.ax + %+ add-binding:server binding.task + [%app app.task] + [moves http-server-gate] + :: + %serve + =^ moves server-state.ax + %+ add-binding:server binding.task + [%gen generator.task] + [moves http-server-gate] + :: + %disconnect + =. server-state.ax (remove-binding:server binding.task) + [~ http-server-gate] + :: + %approve-origin + =. cors-registry.server-state.ax + =, cors-registry.server-state.ax + :+ (~(del in requests) origin.task) + (~(put in approved) origin.task) + (~(del in rejected) origin.task) + [~ http-server-gate] + :: + %reject-origin + =. cors-registry.server-state.ax + =, cors-registry.server-state.ax + :+ (~(del in requests) origin.task) + (~(del in approved) origin.task) + (~(put in rejected) origin.task) + [~ http-server-gate] + :: + %spew + =. verb.server-state.ax veb.task + `http-server-gate + :: + %set-response + =^ moves server-state.ax (set-response:server +.task) + [moves http-server-gate] + %websocket-event + ~& websocket-event=+.task + =^ moves server-state.ax (ws-event:server +.task) + [moves http-server-gate] + + + %websocket-handshake + =^ moves server-state.ax (ws-handshake:server +.task) + [moves http-server-gate] + == +:: +++ take + ~/ %eyre-take + |= [=wire =duct dud=(unit goof) =sign] + ~& >>> duct=duct + ~& >> take-wire-eyre=wire + ^- [(list move) _http-server-gate] + => %= . + sign + ?: ?=(%gall -.sign) + ?> ?=(%unto +<.sign) + sign + sign + == + :: :wire must at least contain two parts, the type and the build + :: + ?> ?=([@ *] wire) + :: + |^ ^- [(list move) _http-server-gate] + :: + ?: ?=(%eauth i.wire) + eauth + ?^ dud + ~|(%eyre-take-dud (mean tang.u.dud)) + ?+ i.wire + ~|([%bad-take-wire wire] !!) + :: + %run-app-request run-app-request + %watch-response watch-response + %sessions sessions + %channel channel + %acme acme-ack + %conversion-cache `http-server-gate + %run-ws-app-request run-ws-app-request + %ws-watch-response watch-ws-response + == + :: + ++ watch-ws-response + =/ event-args [[eny duct now rof] server-state.ax] + ?> ?=([@ *] t.wire) + ~& >> ws-sign=[`@t`-.sign `@t`+<.sign ((soft @t) +>-.sign)] + ?+ sign `http-server-gate + [%gall %unto %watch-ack *] + ?~ p.p.sign + :: received a positive acknowledgment: take no action + :: + [~ http-server-gate] + :: we have an error; propagate it to the client + :: + ~& gall-error=u.p.p.sign + =/ handle-gall-error + handle-gall-error:(per-server-event event-args) + =^ moves server-state.ax (handle-gall-error u.p.p.sign) + [moves http-server-gate] + [%gall %unto %fact *] + =/ mark p.cage.p.sign + ~& > eyre-ws-response-fact=mark + ?. ?=(%websocket-response mark) + =/ handle-gall-error + handle-gall-error:(per-server-event event-args) + =^ moves server-state.ax + (handle-gall-error leaf+"eyre bad mark {(trip mark)}" ~) + [moves http-server-gate] + ~& websocket-vase=q.q.cage.p.sign + =/ event !<([@ websocket-event] q.cage.p.sign) + =/ handle-ws-response handle-ws-response:(per-server-event event-args) + =^ moves server-state.ax + (handle-ws-response event) + [moves http-server-gate] + + == + ++ run-ws-app-request + ~& run-ws-app-req=sign + + `http-server-gate + + ++ run-app-request + :: + ?> ?=([%gall %unto *] sign) + :: + :: + :: ~& run-app-req-eyre=p.sign + ?> ?=([%poke-ack *] p.sign) + ?> ?=([@ *] t.wire) + ?~ p.p.sign + :: received a positive acknowledgment: take no action + :: + [~ http-server-gate] + :: we have an error; propagate it to the client + :: + =/ event-args [[eny duct now rof] server-state.ax] + =/ handle-gall-error + handle-gall-error:(per-server-event event-args) + =^ moves server-state.ax + (handle-gall-error u.p.p.sign) + [moves http-server-gate] + :: + ++ watch-response + :: + =/ event-args [[eny duct now rof] server-state.ax] + :: + ?> ?=([@ *] t.wire) + ~& >> http-sign=[`@t`-.sign `@t`+<.sign ((soft @t) +>-.sign)] + ?: ?=([%gall %unto %watch-ack *] sign) + ?~ p.p.sign + :: received a positive acknowledgment: take no action + :: + [~ http-server-gate] + :: we have an error; propagate it to the client + :: + ~& eyre-watch-response-gall-error=duct + =/ handle-gall-error + handle-gall-error:(per-server-event event-args) + =^ moves server-state.ax (handle-gall-error u.p.p.sign) + [moves http-server-gate] + :: + ?: ?=([%gall %unto %kick ~] sign) + =/ handle-response handle-response:(per-server-event event-args) + =^ moves server-state.ax + (handle-response %continue ~ &) + [moves http-server-gate] + :: + ?> ?=([%gall %unto %fact *] sign) + =/ =mark p.cage.p.sign + ~& eyre-watch-response-fact=mark + =/ =vase q.cage.p.sign + ?. ?= ?(%http-response-header %http-response-data %http-response-cancel) + mark + =/ handle-gall-error + handle-gall-error:(per-server-event event-args) + =^ moves server-state.ax + (handle-gall-error leaf+"eyre bad mark {(trip mark)}" ~) + [moves http-server-gate] + :: + =/ =http-event:http + ?- mark + %http-response-header [%start !<(response-header:http vase) ~ |] + %http-response-data [%continue !<((unit octs) vase) |] + %http-response-cancel [%cancel ~] + == + =/ handle-response handle-response:(per-server-event event-args) + =^ moves server-state.ax + (handle-response http-event) + [moves http-server-gate] + :: + ++ channel + :: + =/ event-args [[eny duct now rof] server-state.ax] + :: channel callback wires are triples. + :: + ?> ?=([@ @ @t *] wire) + :: + ?+ i.t.wire + ~|([%bad-channel-wire wire] !!) + :: + %timeout + ?> ?=([%behn %wake *] sign) + ?^ error.sign + [[duct %slip %d %flog %crud %wake u.error.sign]~ http-server-gate] + =* id i.t.t.wire + %- %+ trace:(per-server-event event-args) 1 + |.("{(trip id)} cancelling channel due to timeout") + =^ moves server-state.ax + (discard-channel:by-channel:(per-server-event event-args) id &) + [moves http-server-gate] + :: + %heartbeat + =/ on-channel-heartbeat + on-channel-heartbeat:by-channel:(per-server-event event-args) + =^ moves server-state.ax + (on-channel-heartbeat i.t.t.wire) + [moves http-server-gate] + :: + ?(%poke %subscription) + ?> ?=([%gall %unto *] sign) + ~| eyre-sub=wire + ?> ?=([@ @ @t @ *] wire) + ?< ?=(%raw-fact -.p.sign) + =* channel-id i.t.t.wire + =* request-id i.t.t.t.wire + =* extra-wire t.t.t.t.wire + =/ on-gall-response + on-gall-response:by-channel:(per-server-event event-args) + :: ~& [%gall-response sign] + =^ moves server-state.ax + %- on-gall-response + [channel-id (slav %ud request-id) extra-wire p.sign] + [moves http-server-gate] + == + :: + ++ sessions + :: + ?> ?=([%behn %wake *] sign) + :: + ?^ error.sign + :_ http-server-gate + :: we must not drop the timer! so we kick the can down the road a day, + :: and hope it will run successfully later... + :: + :~ [duct %slip %d %flog %crud %wake u.error.sign] + [duct %pass /sessions/expire %b %wait (add now ~d1)] + == + ::NOTE we are not concerned with expiring channels that are still in + :: use. we require acks for messages, which bump their session's + :: timer. channels have their own expiry timer, too. + :: remove cookies that have expired + :: + =* sessions sessions.auth.server-state.ax + =. sessions.auth.server-state.ax + %- ~(gas by *(map @uv session)) + %+ skip ~(tap in sessions) + |= [cookie=@uv session] + (lth expiry-time now) + :: if there's any cookies left, set a timer for the next expected expiry + :: + ^- [(list move) _http-server-gate] + :_ http-server-gate + :- =< give-session-tokens + (per-server-event [eny duct now rof] server-state.ax) + ?: =(~ sessions) ~ + =; next-expiry=@da + [duct %pass /sessions/expire %b %wait next-expiry]~ + %+ roll ~(tap by sessions) + |= [[@uv session] next=@da] + ?: =(*@da next) expiry-time + (min next expiry-time) + :: + ++ eauth + =* auth auth.server-state.ax + =* args [[eny duct now rof] server-state.ax] + ^- [(list move) _http-server-gate] + ~| [wire +<.sign] + ?+ t.wire !! + [%plea @ ~] + =/ =ship (slav %p i.t.t.wire) + :: + ?: |(?=(^ dud) ?=([%ames %lost *] sign)) + %- %+ trace:(per-server-event args) 0 + ?~ dud |.("eauth: lost boon from {(scow %p ship)}") + |.("eauth: crashed on %{(trip +<.sign)} from {(scow %p ship)}") + ::NOTE when failing on pending attempts, we just wait for the timer + :: to clean up. when failing on live sessions, well, we should + :: just be careful not to crash when receiving %shut boons. + :: (we do not want to have the nonce in the wire, so this is the + :: best handling we can do. the alternative is tracking) + [~ http-server-gate] + :: + ?: ?=([%ames %done *] sign) + =^ moz server-state.ax + %. [ship ?=(~ error.sign)] + on-done:client:eauth:authentication:(per-server-event args) + [moz http-server-gate] + :: + ?> ?=([%ames %boon *] sign) + =/ boon ;;(eauth-boon payload.sign) + =^ moz server-state.ax + %. [ship boon] + on-boon:client:eauth:authentication:(per-server-event args) + [moz http-server-gate] + :: + [%keen @ @ ~] + =/ client=@p (slav %p i.t.t.wire) + =/ nonce=@uv (slav %uv i.t.t.t.wire) + :: + ?^ dud + =^ moz server-state.ax + %. [client nonce] + on-fail:server:eauth:authentication:(per-server-event args) + [moz http-server-gate] + :: + ?> ?& ?=([%ames %sage *] sign) + =(client ship.p.sage.sign) + == + =/ url=(unit @t) + ?~ q.sage.sign ~ + ;;((unit @t) q.q.sage.sign) + =^ moz server-state.ax + ?~ url + %. [client nonce] + on-fail:server:eauth:authentication:(per-server-event args) + %. [client nonce u.url] + on-tune:server:eauth:authentication:(per-server-event args) + [moz http-server-gate] + :: + [%expire %visiting @ @ ~] + ?> ?=([%behn %wake *] sign) + =/ server=@p (slav %p i.t.t.t.wire) + =/ nonce=@uv (slav %uv i.t.t.t.t.wire) + =^ moz server-state.ax + %. [server nonce] + expire:client:eauth:authentication:(per-server-event args) + [~ http-server-gate] + :: + [%expire %visitors @ ~] + =/ nonce=@uv (slav %uv i.t.t.t.wire) + =^ moz server-state.ax + (expire:server:eauth:authentication:(per-server-event args) nonce) + [moz http-server-gate] + == + :: + ++ acme-ack + ?> ?=([%gall %unto *] sign) + :: + ?> ?=([%poke-ack *] p.sign) + ?~ p.p.sign + :: received a positive acknowledgment: take no action + :: + [~ http-server-gate] + :: received a negative acknowledgment: XX do something + :: + [((slog u.p.p.sign) ~) http-server-gate] + -- +:: +++ http-server-gate ..$ +:: +load: migrate old state to new state (called on vane reload) +:: +++ load + => |% + +$ axle-any + $% [date=%~2020.10.18 server-state=server-state-0] + [date=%~2022.7.26 server-state=server-state-0] + [date=%~2023.2.17 server-state=server-state-1] + [date=%~2023.3.16 server-state=server-state-2] + [date=%~2023.4.11 server-state-3] + [date=%~2023.5.15 server-state-4] + [date=%~2024.8.20 server-state-4] + [date=%~2025.1.31 server-state] + == + :: + +$ server-state-0 + $: bindings=(list [=binding =duct =action]) + =cors-registry + connections=(map duct outstanding-connection-3) + auth=authentication-state-3 + channel-state=channel-state-2 + domains=(set turf) + =http-config + ports=[insecure=@ud secure=(unit @ud)] + outgoing-duct=duct + == + :: + +$ server-state-1 + $: bindings=(list [=binding =duct =action]) + =cors-registry + connections=(map duct outstanding-connection-3) + auth=authentication-state-3 + channel-state=channel-state-2 + domains=(set turf) + =http-config + ports=[insecure=@ud secure=(unit @ud)] + outgoing-duct=duct + verb=@ :: <- new + == + :: + +$ server-state-2 + $: bindings=(list [=binding =duct =action]) + cache=(map url=@t [aeon=@ud val=(unit cache-entry)]) :: <- new + =cors-registry + connections=(map duct outstanding-connection-3) + auth=authentication-state-3 + channel-state=channel-state-2 + domains=(set turf) + =http-config + ports=[insecure=@ud secure=(unit @ud)] + outgoing-duct=duct + verb=@ + == + +$ channel-state-2 + $: session=(map @t channel-2) + duct-to-key=(map duct @t) + == + +$ channel-2 + $: state=(each timer duct) + next-id=@ud + last-ack=@da + events=(qeu [id=@ud request-id=@ud channel-event=channel-event-2]) + unacked=(map @ud @ud) + subscriptions=(map @ud [ship=@p app=term =path duc=duct]) + heartbeat=(unit timer) + == + +$ channel-event-2 + $% $>(%poke-ack sign:agent:gall) + $>(%watch-ack sign:agent:gall) + $>(%kick sign:agent:gall) + [%fact =mark =noun] + == + :: + +$ server-state-3 + $: bindings=(list [=binding =duct =action]) + cache=(map url=@t [aeon=@ud val=(unit cache-entry)]) + =cors-registry + connections=(map duct outstanding-connection-3) + auth=authentication-state-3 + channel-state=channel-state-3 + domains=(set turf) + =http-config + ports=[insecure=@ud secure=(unit @ud)] + outgoing-duct=duct + verb=@ + == + +$ outstanding-connection-3 + $: =action + =inbound-request + response-header=(unit response-header:http) + bytes-sent=@ud + == + +$ authentication-state-3 sessions=(map @uv session-3) + +$ session-3 + $: expiry-time=@da + channels=(set @t) + == + +$ channel-state-3 + $: session=(map @t channel-3) + duct-to-key=(map duct @t) + == + +$ channel-3 + $: mode=?(%json %jam) + state=(each timer duct) + next-id=@ud + last-ack=@da + events=(qeu [id=@ud request-id=@ud =channel-event]) + unacked=(map @ud @ud) + subscriptions=(map @ud [ship=@p app=term =path duc=duct]) + heartbeat=(unit timer) + == + :: + +$ server-state-4 + $: bindings=(list [=binding =duct =action]) + cache=(map url=@t [aeon=@ud val=(unit cache-entry)]) + =cors-registry + connections=(map duct outstanding-connection) + auth=authentication-state + =channel-state + domains=(set turf) + =http-config + ports=[insecure=@ud secure=(unit @ud)] + outgoing-duct=duct + verb=@ + == + -- + |= old=axle-any + ^+ http-server-gate + ?- -.old + :: + :: adds /~/name + :: + %~2020.10.18 + %= $ + date.old %~2022.7.26 + :: + bindings.server-state.old + %+ insert-binding + [[~ /~/name] outgoing-duct.server-state.old [%name ~]] + bindings.server-state.old + == + :: + :: enables https redirects if certificate configured + :: inits .verb + :: + %~2022.7.26 + =. redirect.http-config.server-state.old + ?& ?=(^ secure.ports.server-state.old) + ?=(^ secure.http-config.server-state.old) + == + $(old [%~2023.2.17 server-state.old(|8 [|8 verb=0]:server-state.old)]) + :: + :: inits .cache + :: + %~2023.2.17 + $(old [%~2023.3.16 [bindings ~ +]:server-state.old]) + :: + :: inits channel mode and desks in unacked events + :: + %~2023.3.16 + :: + :: Prior to this desks were not part of events.channel. + :: When serializing we used to rely on the desk stored in + :: subscriptions.channel, but this state is deleted when we clog. + :: This migration adds the desk to events.channel, but we can not + :: scry in +load to populate the desks in the old events, + :: so we just kick all subscriptions on all channels. + %= $ + date.old %~2023.4.11 + :: + server-state.old + %= server-state.old + session.channel-state + %- ~(run by session.channel-state.server-state.old) + |= c=channel-2 + =; new-events + :- %json + c(events new-events, unacked ~, subscriptions ~) + =| events=(qeu [id=@ud request-id=@ud =channel-event]) + =/ l ~(tap in ~(key by subscriptions.c)) + |- + ?~ l events + %= $ + l t.l + next-id.c +(next-id.c) + events (~(put to events) [next-id.c i.l %kick ~]) + == + == + == + :: + :: guarantees & stores a session for each request, and a @p identity for + :: each session and channel + :: + %~2023.4.11 + %= $ + date.old %~2023.5.15 + :: + connections.old + %- ~(run by connections.old) + |= outstanding-connection-3 + ^- outstanding-connection + [action inbound-request [*@uv [%ours ~]] response-header bytes-sent] + :: + auth.old + :_ [~ ~ [~ ~ now]] + %- ~(run by sessions.auth.old) + |= s=session-3 + ^- session + [[%ours ~] s] + :: + session.channel-state.old + %- ~(run by session.channel-state.old) + |= c=channel-3 + ^- channel + [-.c [%ours ~] +.c] + :: + bindings.old + %+ insert-binding [[~ /~/host] outgoing-duct.old [%host ~]] + %+ insert-binding [[~ /~/eauth] outgoing-duct.old [%eauth ~]] + bindings.old + == + :: + :: adds /~/boot, /~/sponsor and /~/ip + :: + %~2023.5.15 + %= $ + date.old %~2024.8.20 + :: + bindings.old + %+ insert-binding + [[~ /~/boot] outgoing-duct.old [%boot ~]] + %+ insert-binding + [[~ /~/sponsor] outgoing-duct.old [%sponsor ~]] + %+ insert-binding + [[~ /~/ip] outgoing-duct.old [%ip ~]] + bindings.old + == + :: + %~2024.8.20 + %= $ + date.old %~2025.1.31 + verb.old [verb.old check-session-timer=&] + == + :: + %~2025.1.31 + http-server-gate(ax old) + :: + == +:: +stay: produce current state +:: +++ stay `axle`ax +:: +scry: request a path in the urbit namespace +:: +++ scry + ~/ %eyre-scry + ^- roon + |= [lyc=gang pov=path car=term bem=beam] + ^- (unit (unit cage)) + =* ren car + =* why=shop &/p.bem + =* syd q.bem + =/ lot=coin $/r.bem + =* tyl s.bem + :: + ?. ?=(%& -.why) + ~ + =* who p.why + :: + ?. ?=(%$ -.lot) + [~ ~] + ?. =(our who) + ?. =([%da now] p.lot) + ~ + ~& [%r %scry-foreign-host who] + ~ + :: + ?: ?=([%eauth %url ~] tyl) + ?. &(?=(%x ren) ?=(%$ syd)) ~ + =* endpoint endpoint.auth.server-state.ax + ?. ?=(%da -.p.lot) [~ ~] + :: we cannot answer for something prior to the last set time, + :: or something beyond the present moment. + :: + ?: ?| (lth q.p.lot time.endpoint) + (gth q.p.lot now) + == + ~ + :^ ~ ~ %noun + !> ^- (unit @t) + =< eauth-url:eauth:authentication + (per-server-event [eny *duct now rof] server-state.ax) + :: + ?: ?=([%cache @ @ ~] tyl) + ?. &(?=(%x ren) ?=(%$ syd)) ~ + =, server-state.ax + ?~ aeon=(slaw %ud i.t.tyl) [~ ~] + ?~ url=(slaw %t i.t.t.tyl) [~ ~] + ?~ entry=(~(get by cache) u.url) ~ + ?. =(u.aeon aeon.u.entry) ~ + ?~ val=val.u.entry ~ + ?: &(auth.u.val !=([~ ~] lyc)) ~ + ``noun+!>(u.val) + :: + ?: &(?=(%x ren) ?=([%range @ @ @ *] tyl)) + |^ + =/ beg=(unit @ud) (slaw %ud i.t.tyl) + =/ end=(unit @ud) (slaw %ud i.t.t.tyl) + =* vew i.t.t.t.tyl + =* rest t.t.t.t.tyl + =/ mym (scry-mime now rof lyc ~ [%$ vew (en-beam -.bem rest)]) + ?: ?=(%| -.mym) ~ + =* mime p.mym + ?~ range=(get-range [beg end] p.q.mime) + :^ ~ ~ %noun + !> ^- cache-entry + :- ?=(^ lyc) + :+ %payload + :- 416 + ['content-range' (cat 3 'bytes */' (crip (a-co:co p.q.mime)))]^~ + `(as-octs:mimes:html 'requested range not satisfiable') + :: + =/ =octs + %- as-octs:mimes:html + (cut 3 [p.u.range +((sub q.u.range p.u.range))] q.q.mime) + :^ ~ ~ %noun + !> ^- cache-entry + :- ?=(^ lyc) + :+ %payload + :- ?:(=(p.q.mime p.octs) 200 206) + :~ ['accept-ranges' 'bytes'] + ['content-type' (rsh 3 (spat p.mime))] + ['content-length' (crip (a-co:co p.octs))] + :- 'content-range' + %+ rap 3 + :~ 'bytes ' + (crip (a-co:co p.u.range)) '-' + (crip (a-co:co q.u.range)) '/' + (crip (a-co:co p.q.mime)) + == + == + data=[~ octs] + :: + ++ get-range + |= [req=(pair (unit @ud) (unit @ud)) len=@ud] + ^- (unit (pair @ud @ud)) + ?+ req ~ + [^ ~] + ?: (gth u.p.req (dec len)) ~ + `[u.p.req (dec len)] + :: + [~ ^] + ?. (gth u.q.req 0) ~ + `[(sub len (min len u.q.req)) (dec len)] + :: + [^ ^] + ?: |((gth u.p.req (dec len)) (gth u.p.req u.q.req)) + ~ + `[u.p.req (min (dec len) u.q.req)] + == + -- + :: private endpoints + :: + ?. ?=([~ ~] lyc) ~ + :: + ?: &(?=(%x ren) ?=(%$ syd)) + =, server-state.ax + ?+ tyl ~ + [%$ %whey ~] =- ``mass+!>(`(list mass)`-) + :~ bindings+&+bindings.server-state.ax + cache+&+cache.server-state.ax + auth+&+auth.server-state.ax + connections+&+connections.server-state.ax + channels+&+channel-state.server-state.ax + axle+&+ax + == + :: + [%cors ~] ``noun+!>(cors-registry) + [%cors %requests ~] ``noun+!>(requests.cors-registry) + [%cors %approved ~] ``noun+!>(approved.cors-registry) + [%cors %rejected ~] ``noun+!>(rejected.cors-registry) + :: + [%cors ?(%approved %rejected) @ ~] + =* kind i.t.tyl + =* orig i.t.t.tyl + ?~ origin=(slaw %t orig) [~ ~] + ?- kind + %approved ``noun+!>((~(has in approved.cors-registry) u.origin)) + %rejected ``noun+!>((~(has in rejected.cors-registry) u.origin)) + == + :: + [%authenticated %cookie @ ~] + ?~ cookies=(slaw %t i.t.t.tyl) [~ ~] + :^ ~ ~ %noun + !> ^- ? + %- =< request-is-authenticated:authentication + (per-server-event [eny *duct now rof] server-state.ax) + %*(. *request:http header-list ['cookie' u.cookies]~) + :: + [%'_~_' *] + =/ mym (scry-mime now rof lyc (deft:de-purl:html tyl)) + ?: ?=(%| -.mym) [~ ~] + ``noun+!>(p.mym) + == + ?. ?=(%$ ren) ~ + ?+ syd ~ + %bindings ``noun+!>(bindings.server-state.ax) + %cache ``noun+!>(cache.server-state.ax) + %connections ``noun+!>(connections.server-state.ax) + %authentication-state ``noun+!>(auth.server-state.ax) + %channel-state ``noun+!>(channel-state.server-state.ax) + %domains ``noun+!>(domains.server-state.ax) + %ports ``noun+!>(ports.server-state.ax) + :: + %host + %- (lift (lift |=(a=hart:eyre [%hart !>(a)]))) + ^- (unit (unit hart:eyre)) + =. p.lot ?.(=([%da now] p.lot) p.lot [%tas %real]) + ?+ p.lot + [~ ~] + :: + [%tas %fake] + ``[& [~ 8.443] %& /localhost] + :: + [%tas %real] + =* domains domains.server-state.ax + =* ports ports.server-state.ax + =/ =host:eyre [%& ?^(domains n.domains /localhost)] + =/ port=(unit @ud) + ?. ?=(^ secure.ports) + ?:(=(80 insecure.ports) ~ `insecure.ports) + ?:(=(443 u.secure.ports) ~ secure.ports) + ``[?=(^ secure.ports) port host] + == + == +-- diff --git a/arvo/lull.hoon b/arvo/lull.hoon new file mode 100644 index 0000000..110ef8d --- /dev/null +++ b/arvo/lull.hoon @@ -0,0 +1,4622 @@ +:: /sys/lull +:: %lull: arvo structures +!: +=> ..part +~% %lull ..part ~ +|% +++ lull %322 +:: :: :: +:::: :: :: (1) models + :: :: :: +:: # %misc +:: +:: miscellaneous systems types +::+| +:: +capped-queue: a +qeu with a maximum number of entries +:: +++ capped-queue + |$ [item-type] + $: queue=(qeu item-type) + size=@ud + max-size=_64 + == +:: +clock: polymorphic cache type for use with the clock replacement algorithm +:: +:: The +by-clock core wraps interface arms for manipulating a mapping from +:: :key-type to :val-type. Detailed docs for this type can be found there. +:: +++ clock + |$ :: key-type: mold of keys + :: val-type: mold of values + :: + [key-type val-type] + $: lookup=(map key-type [val=val-type fresh=@ud]) + queue=(qeu key-type) + size=@ud + max-size=_2.048 + depth=_1 + == +:: +:: $plot: composable serialization +:: +++ plot + => |% + +$ plat + $@ @ :: measure atom + $^ $% [[%c ~] (pair (pair step step) @)] :: cut slice + [[%m ~] (pair (pair step step) @)] :: measure slice + [[%s ~] p=plot] :: subslice + == :: + (pair step @) :: prefix + -- :: + =< $ + ~% %plot ..plot ~ + |% + ++ $ + $^ [l=$ r=$] :: concatenate + [a=bloq b=(list plat)] :: serialize + :: + ++ fax :: encode + ~/ %fax + |= p=$ + ^- (trel @ bloq step) + ?^ -.p + =/ l $(p l.p) + =/ r $(p r.p) + =/ s (rig +.l q.r) + [(add p.l (lsh [q.r s] p.r)) q.r (add r.r s)] + :: + ?~ b.p [0 a.p 0] + =; c=(pair @ step) + =/ d $(b.p t.b.p) + [(add p.c (lsh [a.p q.c] p.d)) a.p (add q.c r.d)] + :: + ?@ i.b.p + [i.b.p (^met a.p i.b.p)] + ?- -.i.b.p + @ [(end [a.p p.i.b.p] q.i.b.p) p.i.b.p] + [%c ~] [(cut a.p [p q]:i.b.p) q.p.i.b.p] + [%m ~] =+((cut a.p [p q]:i.b.p) [- (^met a.p -)]) + [%s ~] =/ e $(p p.i.b.p) + [p.e (rig +.e a.p)] + == + :: + ++ met :: measure + ~/ %met + |=(p=$ `(pair bloq step)`+:(fax p)) + -- +:: +:: +mop: constructs and validates ordered ordered map based on key, +:: val, and comparator gate +:: +++ mop + |* [key=mold value=mold] + |= ord=$-([key key] ?) + |= a=* + =/ b ;;((tree [key=key val=value]) a) + ?> (apt:((on key value) ord) b) + b +:: +:: +++ ordered-map on +:: +on: treap with user-specified horizontal order, ordered-map +:: +:: WARNING: ordered-map will not work properly if two keys can be +:: unequal under noun equality but equal via the compare gate +:: +++ on + ~% %on ..part ~ + |* [key=mold val=mold] + => |% + +$ item [key=key val=val] + -- + :: +compare: item comparator for horizontal order + :: + ~% %comp +>+ ~ + |= compare=$-([key key] ?) + ~% %core + ~ + |% + :: +all: apply logical AND boolean test on all values + :: + ++ all + ~/ %all + |= [a=(tree item) b=$-(item ?)] + ^- ? + |- + ?~ a + & + ?&((b n.a) $(a l.a) $(a r.a)) + :: +any: apply logical OR boolean test on all values + :: + ++ any + ~/ %any + |= [a=(tree item) b=$-(item ?)] + |- ^- ? + ?~ a + | + ?|((b n.a) $(a l.a) $(a r.a)) + :: +apt: verify horizontal and vertical orderings + :: + ++ apt + ~/ %apt + |= a=(tree item) + =| [l=(unit key) r=(unit key)] + |- ^- ? + :: empty tree is valid + :: + ?~ a %.y + :: nonempty trees must maintain several criteria + :: + ?& :: if .n.a is left of .u.l, assert horizontal comparator + :: + ?~(l %.y (compare key.n.a u.l)) + :: if .n.a is right of .u.r, assert horizontal comparator + :: + ?~(r %.y (compare u.r key.n.a)) + :: if .a is not leftmost element, assert vertical order between + :: .l.a and .n.a and recurse to the left with .n.a as right + :: neighbor + :: + ?~(l.a %.y &((mor key.n.a key.n.l.a) $(a l.a, l `key.n.a))) + :: if .a is not rightmost element, assert vertical order + :: between .r.a and .n.a and recurse to the right with .n.a as + :: left neighbor + :: + ?~(r.a %.y &((mor key.n.a key.n.r.a) $(a r.a, r `key.n.a))) + == + :: +bap: convert to list, right to left + :: + ++ bap + ~/ %bap + |= a=(tree item) + ^- (list item) + =| b=(list item) + |- ^+ b + ?~ a b + $(a r.a, b [n.a $(a l.a)]) + :: +del: delete .key from .a if it exists, producing value iff deleted + :: + ++ del + ~/ %del + |= [a=(tree item) =key] + ^- [(unit val) (tree item)] + ?~ a [~ ~] + :: we found .key at the root; delete and rebalance + :: + ?: =(key key.n.a) + [`val.n.a (nip a)] + :: recurse left or right to find .key + :: + ?: (compare key key.n.a) + =+ [found lef]=$(a l.a) + [found a(l lef)] + =+ [found rig]=$(a r.a) + [found a(r rig)] + :: +dip: stateful partial inorder traversal + :: + :: Mutates .state on each run of .f. Starts at .start key, or if + :: .start is ~, starts at the head. Stops when .f produces .stop=%.y. + :: Traverses from left to right keys. + :: Each run of .f can replace an item's value or delete the item. + :: + ++ dip + ~/ %dip + |* state=mold + |= $: a=(tree item) + =state + f=$-([state item] [(unit val) ? state]) + == + ^+ [state a] + :: acc: accumulator + :: + :: .stop: set to %.y by .f when done traversing + :: .state: threaded through each run of .f and produced by +abet + :: + =/ acc [stop=`?`%.n state=state] + =< abet =< main + |% + ++ this . + ++ abet [state.acc a] + :: +main: main recursive loop; performs a partial inorder traversal + :: + ++ main + ^+ this + :: stop if empty or we've been told to stop + :: + ?: =(~ a) this + ?: stop.acc this + :: inorder traversal: left -> node -> right, until .f sets .stop + :: + =. this left + ?: stop.acc this + =^ del this node + =? this !stop.acc right + =? a del (nip a) + this + :: +node: run .f on .n.a, updating .a, .state, and .stop + :: + ++ node + ^+ [del=*? this] + :: run .f on node, updating .stop.acc and .state.acc + :: + ?> ?=(^ a) + =^ res acc (f state.acc n.a) + ?~ res + [del=& this] + [del=| this(val.n.a u.res)] + :: +left: recurse on left subtree, copying mutant back into .l.a + :: + ++ left + ^+ this + ?~ a this + =/ lef main(a l.a) + lef(a a(l a.lef)) + :: +right: recurse on right subtree, copying mutant back into .r.a + :: + ++ right + ^+ this + ?~ a this + =/ rig main(a r.a) + rig(a a(r a.rig)) + -- + :: +gas: put a list of items + :: + ++ gas + ~/ %gas + |= [a=(tree item) b=(list item)] + ^- (tree item) + ?~ b a + $(b t.b, a (put a i.b)) + :: +get: get val at key or return ~ + :: + ++ get + ~/ %get + |= [a=(tree item) b=key] + ^- (unit val) + ?~ a ~ + ?: =(b key.n.a) + `val.n.a + ?: (compare b key.n.a) + $(a l.a) + $(a r.a) + :: +got: need value at key + :: + ++ got + |= [a=(tree item) b=key] + ^- val + (need (get a b)) + :: +has: check for key existence + :: + ++ has + ~/ %has + |= [a=(tree item) b=key] + ^- ? + !=(~ (get a b)) + :: +lot: take a subset range excluding start and/or end and all elements + :: outside the range + :: + ++ lot + ~/ %lot + |= $: tre=(tree item) + start=(unit key) + end=(unit key) + == + ^- (tree item) + |^ + ?: ?&(?=(~ start) ?=(~ end)) + tre + ?~ start + (del-span tre %end end) + ?~ end + (del-span tre %start start) + ?> (compare u.start u.end) + =. tre (del-span tre %start start) + (del-span tre %end end) + :: + ++ del-span + |= [a=(tree item) b=?(%start %end) c=(unit key)] + ^- (tree item) + ?~ a a + ?~ c a + ?- b + %start + :: found key + ?: =(key.n.a u.c) + (nip a(l ~)) + :: traverse to find key + ?: (compare key.n.a u.c) + :: found key to the left of start + $(a (nip a(l ~))) + :: found key to the right of start + a(l $(a l.a)) + :: + %end + :: found key + ?: =(u.c key.n.a) + (nip a(r ~)) + :: traverse to find key + ?: (compare key.n.a u.c) + :: found key to the left of end + a(r $(a r.a)) + :: found key to the right of end + $(a (nip a(r ~))) + == + -- + :: +nip: remove root; for internal use + :: + ++ nip + ~/ %nip + |= a=(tree item) + ^- (tree item) + ?> ?=(^ a) + :: delete .n.a; merge and balance .l.a and .r.a + :: + |- ^- (tree item) + ?~ l.a r.a + ?~ r.a l.a + ?: (mor key.n.l.a key.n.r.a) + l.a(r $(l.a r.l.a)) + r.a(l $(r.a l.r.a)) + :: + :: +pop: produce .head (leftmost item) and .rest or crash if empty + :: + ++ pop + ~/ %pop + |= a=(tree item) + ^- [head=item rest=(tree item)] + ?~ a !! + ?~ l.a [n.a r.a] + =/ l $(a l.a) + :- head.l + :: load .rest.l back into .a and rebalance + :: + ?: |(?=(~ rest.l) (mor key.n.a key.n.rest.l)) + a(l rest.l) + rest.l(r a(r r.rest.l)) + :: +pry: produce head (leftmost item) or null + :: + ++ pry + ~/ %pry + |= a=(tree item) + ^- (unit item) + ?~ a ~ + |- + ?~ l.a `n.a + $(a l.a) + :: +put: ordered item insert + :: + ++ put + ~/ %put + |= [a=(tree item) =key =val] + ^- (tree item) + :: base case: replace null with single-item tree + :: + ?~ a [n=[key val] l=~ r=~] + :: base case: overwrite existing .key with new .val + :: + ?: =(key.n.a key) a(val.n val) + :: if item goes on left, recurse left then rebalance vertical order + :: + ?: (compare key key.n.a) + =/ l $(a l.a) + ?> ?=(^ l) + ?: (mor key.n.a key.n.l) + a(l l) + l(r a(l r.l)) + :: item goes on right; recurse right then rebalance vertical order + :: + =/ r $(a r.a) + ?> ?=(^ r) + ?: (mor key.n.a key.n.r) + a(r r) + r(l a(r l.r)) + :: +ram: produce tail (rightmost item) or null + :: + ++ ram + ~/ %ram + |= a=(tree item) + ^- (unit item) + ?~ a ~ + |- + ?~ r.a `n.a + $(a r.a) + :: +run: apply gate to transform all values in place + :: + ++ run + ~/ %run + |* [a=(tree item) b=$-(val *)] + |- + ?~ a a + [n=[key.n.a (b val.n.a)] l=$(a l.a) r=$(a r.a)] + :: +tab: tabulate a subset excluding start element with a max count + :: + ++ tab + ~/ %tab + |= [a=(tree item) b=(unit key) c=@] + ^- (list item) + |^ + (flop e:(tabulate (del-span a b) b c)) + :: + ++ tabulate + |= [a=(tree item) b=(unit key) c=@] + ^- [d=@ e=(list item)] + ?: ?&(?=(~ b) =(c 0)) + [0 ~] + =| f=[d=@ e=(list item)] + |- ^+ f + ?: ?|(?=(~ a) =(d.f c)) f + =. f $(a l.a) + ?: =(d.f c) f + =. f [+(d.f) [n.a e.f]] + ?:(=(d.f c) f $(a r.a)) + :: + ++ del-span + |= [a=(tree item) b=(unit key)] + ^- (tree item) + ?~ a a + ?~ b a + ?: =(key.n.a u.b) + r.a + ?: (compare key.n.a u.b) + $(a r.a) + a(l $(a l.a)) + -- + :: +tap: convert to list, left to right + :: + ++ tap + ~/ %tap + |= a=(tree item) + ^- (list item) + =| b=(list item) + |- ^+ b + ?~ a b + $(a l.a, b [n.a $(a r.a)]) + :: +uni: unify two ordered maps + :: + :: .b takes precedence over .a if keys overlap. + :: + ++ uni + ~/ %uni + |= [a=(tree item) b=(tree item)] + ^- (tree item) + ?~ b a + ?~ a b + ?: =(key.n.a key.n.b) + [n=n.b l=$(a l.a, b l.b) r=$(a r.a, b r.b)] + ?: (mor key.n.a key.n.b) + ?: (compare key.n.b key.n.a) + $(l.a $(a l.a, r.b ~), b r.b) + $(r.a $(a r.a, l.b ~), b l.b) + ?: (compare key.n.a key.n.b) + $(l.b $(b l.b, r.a ~), a r.a) + $(r.b $(b r.b, l.a ~), a l.a) + :: +wyt: measure size + :: + ++ wyt + ~/ %wyt + |= a=(tree item) + ^- @ud + ?~(a 0 +((add $(a l.a) $(a r.a)))) + -- +:: ++$ deco ?(~ %bl %br %un) :: text decoration ++$ json :: normal json value + $@ ~ :: null + $% [%a p=(list json)] :: array + [%b p=?] :: boolean + [%o p=(map @t json)] :: object + [%n p=@ta] :: number + [%s p=@t] :: string + == :: ++$ life @ud :: ship key revision ++$ rift @ud :: ship continuity ++$ mime (pair mite octs) :: mimetyped data ++$ octs (pair @ud @) :: octet-stream ++$ sock (pair ship ship) :: outgoing [src dest] ++$ sack (trel ship ship path) :: $sock /w provenance ++$ stub (list (pair stye (list @c))) :: styled unicode ++$ stye (pair (set deco) (pair tint tint)) :: decos/bg/fg ++$ styl %+ pair (unit deco) :: cascading style + (pair (unit tint) (unit tint)) :: ++$ styx (list $@(@t (pair styl styx))) :: styled text ++$ tint $@ ?(%r %g %b %c %m %y %k %w %~) :: text color + [r=@uxD g=@uxD b=@uxD] :: 24bit true color ++$ turf (list @t) :: domain, tld first +:: :::: +:::: ++ethereum-types :: eth surs for jael + :: :::: +++ ethereum-types + |% + :: ethereum address, 20 bytes. + :: + ++ address @ux + :: event location + :: + +$ event-id [block=@ud log=@ud] + :: + ++ events (set event-id) + -- +:: :::: +:::: ++azimuth-types :: az surs for jael + :: :::: +++ azimuth-types + =, ethereum-types + |% + ++ point + $: :: ownership + :: + $= own + $: owner=address + management-proxy=address + voting-proxy=address + transfer-proxy=address + == + :: + :: networking + :: + $= net + %- unit + $: =life + =pass + continuity-number=@ud + sponsor=[has=? who=@p] + escape=(unit @p) + == + :: + :: spawning + :: + $= kid + %- unit + $: spawn-proxy=address + spawned=(set @p) ::TODO sparse range, pile, see old jael ++py + == + == + :: + +$ dnses [pri=@t sec=@t ter=@t] + :: + ++ diff-azimuth + $% [%point who=@p dif=diff-point] + [%dns dnses] + == + :: + ++ diff-point + $% [%full new=point] :: + [%owner new=address] :: OwnerChanged + [%activated who=@p] :: Activated + [%spawned who=@p] :: Spawned + [%keys =life =pass] :: ChangedKeys + [%continuity new=@ud] :: BrokeContinuity + [%sponsor new=[has=? who=@p]] :: EscapeAcc/LostSpons + [%escape new=(unit @p)] :: EscapeReq/Can + [%management-proxy new=address] :: ChangedManagementPro + [%voting-proxy new=address] :: ChangedVotingProxy + [%spawn-proxy new=address] :: ChangedSpawnProxy + [%transfer-proxy new=address] :: ChangedTransferProxy + == + -- +:: +vane-task: general tasks shared across vanes +:: ++$ vane-task + $~ [%born ~] + $% :: i/o device replaced (reset state) + :: + [%born ~] + :: boot completed (XX legacy) + :: + [%init ~] + :: trim state (in response to memory pressure) + :: + [%trim p=@ud] + :: kernel upgraded + :: + [%vega ~] + :: receive message via %ames + :: + :: TODO: move .vane from $plea to here + :: + [%plea =ship =plea:ames] + == +:: :::: +:::: ++http :: + :: :::: +:: http: shared representations of http concepts +:: +++ http ^? + |% + :: +header-list: an ordered list of http headers + :: + +$ header-list + (list [key=@t value=@t]) + :: +method: exhaustive list of http verbs + :: + +$ method + $? %'CONNECT' + %'DELETE' + %'GET' + %'HEAD' + %'OPTIONS' + %'PATCH' + %'POST' + %'PUT' + %'TRACE' + == + :: +request: a single http request + :: + +$ request + $: :: method: http method + :: + method=method + :: url: the url requested + :: + :: The url is not escaped. There is no escape. + :: + url=@t + :: header-list: headers to pass with this request + :: + =header-list + :: body: optionally, data to send with this request + :: + body=(unit octs) + == + :: +response-header: the status code and header list on an http request + :: + :: We separate these away from the body data because we may not wait for + :: the entire body before we send a %progress to the caller. + :: + +$ response-header + $: :: status: http status code + :: + status-code=@ud + :: headers: http headers + :: + headers=header-list + == + :: +http-event: packetized http + :: + :: Urbit treats Earth's HTTP servers as pipes, where Urbit sends or + :: receives one or more %http-events. The first of these will always be a + :: %start or an %error, and the last will always be %cancel or will have + :: :complete set to %.y to finish the connection. + :: + :: Calculation of control headers such as 'Content-Length' or + :: 'Transfer-Encoding' should be performed at a higher level; this structure + :: is merely for what gets sent to or received from Earth. + :: + +$ http-event + $% :: %start: the first packet in a response + :: + $: %start + :: response-header: first event information + :: + =response-header + :: data: data to pass to the pipe + :: + data=(unit octs) + :: whether this completes the request + :: + complete=? + == + :: %continue: every subsequent packet + :: + $: %continue + :: data: data to pass to the pipe + :: + data=(unit octs) + :: complete: whether this completes the request + :: + complete=? + == + :: %cancel: represents unsuccessful termination + :: + [%cancel ~] + == + :: +get-header: returns the value for :header, if it exists in :header-list + :: + ++ get-header + |= [header=@t =header-list] + ^- (unit @t) + :: + ?~ header-list + ~ + :: + ?: =(key.i.header-list header) + `value.i.header-list + :: + $(header-list t.header-list) + :: +set-header: sets the value of an item in the header list + :: + :: This adds to the end if it doesn't exist. + :: + ++ set-header + |= [header=@t value=@t =header-list] + ^- ^header-list + :: + ?~ header-list + :: we didn't encounter the value, add it to the end + :: + [[header value] ~] + :: + ?: =(key.i.header-list header) + [[header value] t.header-list] + :: + [i.header-list $(header-list t.header-list)] + :: +delete-header: removes the first instance of a header from the list + :: + ++ delete-header + |= [header=@t =header-list] + ^- ^header-list + :: + ?~ header-list + ~ + :: if we see it in the list, remove it + :: + ?: =(key.i.header-list header) + t.header-list + :: + [i.header-list $(header-list t.header-list)] + :: +unpack-header: parse header field values + :: + ++ unpack-header + |^ |= value=@t + ^- (unit (list (map @t @t))) + (rust (cass (trip value)) values) + :: + ++ values + %+ more + (ifix [. .]:(star ;~(pose ace (just '\09'))) com) + pairs + :: + ++ pairs + %+ cook + ~(gas by *(map @t @t)) + %+ most (ifix [. .]:(star ace) mic) + ;~(plug token ;~(pose ;~(pfix tis value) (easy ''))) + :: + ++ value + ;~(pose token quoted-string) + :: + ++ token :: 7230 token + %+ cook crip + ::NOTE this is ptok:de-purl:html, but can't access that here + %- plus + ;~ pose + aln zap hax buc cen pam soq tar lus + hep dot ket cab tic bar sig + == + :: + ++ quoted-string :: 7230 quoted string + %+ cook crip + %+ ifix [. .]:;~(less (jest '\\"') doq) + %- star + ;~ pose + ;~(pfix bas ;~(pose (just '\09') ace prn)) + ;~(pose (just '\09') ;~(less (mask "\22\5c\7f") (shim 0x20 0xff))) + == + -- + :: +simple-payload: a simple, one event response used for generators + :: + +$ simple-payload + $: :: response-header: status code, etc + :: + =response-header + :: data: the data returned as the body + :: + data=(unit octs) + == + -- +:: :::: +:::: ++ames :: (1a) network + :: :::: +++ ames ^? + |% + :: $task: job for ames + :: + :: Messaging Tasks + :: + :: %hear: packet from unix + :: %dear: lane from unix + :: %cork: request to delete message flow + :: %tame: request to delete route for ship + :: %kroc: request to delete specific message flows, from their bones + :: %plea: request to send message + :: %deep: deferred calls to %ames, from itself + :: %stun: STUN response (or failure), from unix + :: + :: Remote Scry Tasks + :: + :: %keen: peek: [ship /vane/care/case/spur] + :: %yawn: cancel request from arvo + :: %wham: cancels all scry request from any vane + :: + :: System and Lifecycle Tasks + :: + :: %born: process restart notification + :: %init: vane boot + :: %prod: re-send a packet per flow, to all peers if .ships is ~ + :: %sift: limit verbosity to .ships + :: %snub: set packet blocklist to .ships + :: %spew: set verbosity toggles + :: %cong: adjust congestion control parameters + :: %stir: recover from timer desync and assorted debug commands + :: %trim: release memory + :: %vega: kernel reload notification + :: + +$ task + $% [%hear =lane =blob] + [%dear =ship =lane] + [%cork =ship] + [%tame =ship] + [%kroc bones=(list [ship bone])] + $>(%plea vane-task) + [%deep =deep] + [%stun =stun] + :: + [%keen sec=(unit [idx=@ key=@]) spar] + [%chum spar] + [%yawn spar] + [%wham spar] + [%plug =path] + :: + $>(%born vane-task) + $>(%init vane-task) + [%prod ships=(list ship)] + [%sift ships=(list ship)] + [%snub form=?(%allow %deny) ships=(list ship)] + [%spew veb=(list verb)] + [%cong msg=@ud mem=@ud] + [%stir arg=@t] + $>(%trim vane-task) + $>(%vega vane-task) + :: all tasks above, if changed, would need an adapter function in the + :: larval-core +load arm, to change the events to their latest version, as + :: they exist here in %lull. + :: + :: where (i.e. from what version of the ames-state) to do the migration + :: depends on when the task was introduced (e.g. %heed and %jilt were + :: introduced in state %4, and removed in %21; %kroc was introduced in + :: state %10, modified in %17...) + :: + :: when changing any of the tasks above, please follow the same patterns + :: that exist in ames.hoon. + :: + [%mate (unit ship) dry=?] :: per-peer migration + [%rege (unit ship) dry=?] :: per-peer regression + [%load ?(%mesa %ames)] :: load core for new peers; XX [... term] + :: + [%heer =lane:pact p=@] :: receive a packet + [%mess =mess] :: receive a message + [%moke =space =spar =path] :: initiate %poke request + [%meek =space =spar] :: initiate %peek request + [%mage =space =spar] :: send %page of data; intended for acks + [%rate =spar rate] :: get rate progress for +peeks, from unix + $: %prog :: subscribe to progress %rate + =spar :: if ?=(^ task), use it to modify path.spar + $= task + $@(~ ?([%chum ~] [%keen kid=(unit @)])) + feq=@ud + == + [%whey =spar boq=@ud] :: weight of noun bounded at .path.spar + :: as measured by .boq + [%gulp path] :: like %plug, but for |mesa + == + :: + :: $gift: effect from ames + :: + :: Messaging Gifts + :: + :: %boon: response message from remote ship + :: %noon: boon with duct for clog tracking + :: %clog: notify vane that %boon's to peer are backing up locally + :: %done: notify vane that peer (n)acked our message + :: %lost: notify vane that we crashed on %boon + :: %send: packet to unix + :: %nail: lanes to unix + :: + :: Remote Scry Gifts + :: + :: %tune: peek result + :: + :: System and Lifecycle Gifts + :: + :: %turf: domain report, relayed from jael + :: %saxo: our sponsor list report + :: + +$ gift + $~ lost/~ + $% [%boon payload=*] + [%noon id=* payload=*] + [%done error=(unit error)] + [%lost ~] + [%send =lane =blob] + [%nail =ship lanes=(list lane)] + :: + [%stub num=@ud key=@] + [%near spar dat=(unit (unit page))] + [%tune spar roar=(unit roar)] + :: + [%turf turfs=(list turf)] + [%saxo sponsors=(list ship)] + :: + [%push p=(list lane:pact) q=@] :: send a request/response packet + [%sage =sage:mess] :: give deserialized/open payload + $>(%page mess) :: give serialized/sealed payload + $>(%rate task) + == + :: + :::: :: (1a2) + :: + ++ acru $_ ^? :: asym cryptosuite + |% :: opaque object + ++ as ^? :: asym ops + |% ++ seal |~([a=pass b=@] *@) :: encrypt to a + ++ sign |~(a=@ *@) :: certify as us + ++ sigh |~(a=@ *@) :: certification only + ++ sure |~(a=@ *(unit @)) :: authenticate from us + ++ safe |~([a=@ b=@] *?) :: authentication only + ++ tear |~([a=pass b=@] *(unit @)) :: accept from a + -- ::as :: + ++ de |~([a=@ b=@] *(unit @)) :: symmetric de, soft + ++ dy |~([a=@ b=@] *@) :: symmetric de, hard + ++ en |~([a=@ b=@] *@) :: symmetric en + ++ ex ^? :: export + |% ++ fig *@uvH :: fingerprint + ++ pac *@uvG :: default passcode + ++ pub *pass :: public key + ++ sec *ring :: private key + -- ::ex :: + ++ nu ^? :: reconstructors + |% ++ pit |~([a=@ b=@] ^?(..nu)) :: from [width seed] + ++ nol |~(a=ring ^?(..nu)) :: from ring + ++ com |~(a=pass ^?(..nu)) :: from pass + -- ::nu :: + -- ::acru :: + :: +protocol-version: current version of the ames wire protocol + :: + ++ protocol-version `?(%0 %1 %2 %3 %4 %5 %6 %7)`%0 + :: $address: opaque atomic transport address to or from unix + :: + +$ address @uxaddress + :: $verb: verbosity flag for ames + :: + +$ verb ?(%snd %rcv %odd %msg %ges %for %rot %kay %fin %sun) + :: $bug: debug printing configuration + :: + :: veb: verbosity toggles + :: ships: identity filter; if ~, print for all + :: + :: veb: verbosity flags + :: + +$ veb-all-off + $: snd=_`?`%.n :: sending packets + rcv=_`?`%.n :: receiving packets + odd=_`?`%.n :: unusual events + msg=_`?`%.n :: message-level events (including flows) + ges=_`?`%.n :: congestion control + for=_`?`%.n :: packet forwarding + rot=_`?`%.n :: routing attempts + kay=_`?`%.n :: is ok/not responding + fin=_`?`%.n :: remote-scry + sun=_`?`%.n :: system level logs (STUN, keys, lanes...) + == + :: + +$ bug + $: veb=veb-all-off + ships=(set ship) + == + :: $blob: raw atom to or from unix, representing a packet + :: + +$ blob @uxblob + :: $error: tagged diagnostic trace + :: + +$ error [tag=@tas =tang] + :: $lane: ship transport address; either opaque $address or galaxy + :: + :: The runtime knows how to look up galaxies, so we don't need to + :: know their transport addresses. + :: + +$ lane (each @pC address) + :: $plea: application-level message, as a %pass + :: + :: vane: destination vane on remote ship + :: path: internal route on the receiving ship + :: payload: semantic message contents + :: + +$ plea [vane=@tas =path payload=*] + :: + +$ message + $% [%plea plea] + [%boon payload=*] + [%naxplanation =message-num =error] + == + :: $spar: pair of $ship and $path + :: + :: Instead of fully qualifying a scry path, ames infers rift and + :: life based on the ship. + :: + +$ spar [=ship =path] + :: $deep: deferred %ames call, from self, to keep +abet cores pure + :: + +$ deep + $% [%nack =ship =nack=bone =message] + [%sink =ship =target=bone naxplanation=[=message-num =error]] + [%drop =ship =nack=bone =message-num] + [%cork =ship =bone] + [%kill =ship =bone] + [%ahoy =ship =bone] :: XX remove bone; it's just next-bone.ossuary + [%prun =ship =user=path =duct =ames=path] + == + :: $stun: STUN notifications, from unix + :: + :: .lane is the latest cached lane in vere, from the point of view of .ship + :: + +$ stun + $% [%stop =ship =lane] :: succesful STUN response, stop %ping app + [%fail =ship =lane] :: failure to STUN, re-enable %ping app + [%once =ship =lane] :: new lane discovered, notify ping %app + == + :: +| %atomics + :: + +$ bone @udbone + +$ fragment @uwfragment + +$ fragment-num @udfragmentnum + +$ message-blob @udmessageblob + +$ message-num @udmessagenum + +$ public-key @uwpublickey + +$ private-key @uwprivatekey + +$ symmetric-key @uwsymmetrickey + :: + :: $hoot: request packet payload + :: $yowl: serialized response packet payload + :: $hunk: a slice of $yowl fragments + :: $lock: keys for remote scry + :: + +$ hoot @uxhoot + +$ yowl @uxyowl + +$ hunk [lop=@ len=@] + +$ lock [idx=@ key=@] + :: + :: +| %kinetics + :: $dyad: pair of sender and receiver ships + :: + +$ dyad [sndr=ship rcvr=ship] + :: $shot: noun representation of an ames datagram packet + :: + :: Roundtrips losslessly through atom encoding and decoding. + :: + :: .origin is ~ unless the packet is being forwarded. If present, + :: it's an atom that encodes a route to another ship, such as an IPv4 + :: address. Routes are opaque to Arvo and only have meaning in the + :: interpreter. This enforces that Ames is transport-agnostic. + :: + :: req: is a request + :: sam: is using the ames protocol (not fine or another protocol) + :: + +$ shot + $: dyad + req=? + sam=? + sndr-tick=@ubC + rcvr-tick=@ubC + origin=(unit @uxaddress) + content=@uxcontent + == + :: $ack: positive ack, nack packet, or nack trace + :: + +$ ack + $% [%ok ~] + [%nack ~] + [%naxplanation =error] + == + :: + :: +| %statics + :: $ship-state: all we know about a peer + :: + :: %alien: no PKI data, so enqueue actions to perform once we learn it + :: %known: we know their life and public keys, so we have a channel + :: + +$ ship-state + $+ ship-state + $% [%alien alien-agenda] + [%known peer-state] + == + :: $alien-agenda: what to do when we learn a peer's life and keys + :: + :: messages: pleas local vanes have asked us to send + :: packets: packets we've tried to send + :: + +$ alien-agenda + $+ alien-agenda + $: messages=(list [=duct =plea]) + packets=(set =blob) + keens=(jug [path ints] duct) + chums=(jug [path ints] duct) + == + +$ chain ((mop ,@ ,[key=@ =path]) lte) + :: $peer-state: state for a peer with known life and keys + :: + :: route: transport-layer destination for packets to peer + :: qos: quality of service; connection status to peer + :: ossuary: bone<->duct mapper + :: snd: per-bone message pumps to send messages as fragments + :: rcv: per-bone message sinks to assemble messages from fragments + :: nax: unprocessed nacks (negative acknowledgments) + :: Each value is ~ when we've received the ack packet but not a + :: nack-trace, or an error when we've received a nack-trace but + :: not the ack packet. + :: + :: When we hear a nack packet or an explanation, if there's no + :: entry in .nax, we make a new entry. Otherwise, if this new + :: information completes the packet+nack-trace, we remove the + :: entry and emit a nack to the local vane that asked us to send + :: the message. + :: closing: bones closed on the sender side + :: corked: bones closed on both sender and receiver + :: + +$ peer-state + $+ peer-state + $: $: =symmetric-key + =life + =rift + =public-key + sponsor=ship + == + route=(unit [direct=? =lane]) :: XX (list) + =qos + =ossuary + snd=(map bone message-pump-state) + rcv=(map bone message-sink-state) + nax=(set [=bone =message-num]) + closing=(set bone) + corked=(set bone) + keens=(map path keen-state) + =chain + tip=(jug =user=path [duct =ames=path]) + == + +$ keen-state + $+ keen-state + $: wan=((mop @ud want) lte) :: request packets, sent + nex=(list want) :: request packets, unsent + hav=(list have) :: response packets, backward + num-fragments=@ud + num-received=@ud + next-wake=(unit @da) + listeners=(jug duct ints) + metrics=pump-metrics + == + +$ want + $: fra=@ud + =hoot + packet-state + == + +$ have + $: fra=@ud + meow + == + :: + +$ meow :: response fragment + $: sig=@ux :: signature + num=@ud :: number of fragments + dat=@ux :: contents + == + :: + +$ peep :: fragment request + $: =path + num=@ud + == + :: + +$ wail :: tagged request fragment + $% [%0 peep] :: unsigned + == + :: + +$ roar :: response message + (tale:pki:jael (pair path (unit (cask)))) + :: + +$ purr :: response packet payload + $: peep + meow + == + :: + :: $qos: quality of service; how is our connection to a peer doing? + :: + :: .last-contact: last time we heard from peer, or if %unborn, when + :: we first started tracking time + :: + +$ qos + $~ [%unborn *@da] + [?(%live %dead %unborn) last-contact=@da] + :: $ossuary: bone<->duct bijection and .next-bone to map to a duct + :: + :: The first bone is 0. They increment by 4, since each flow includes + :: a bit for each message determining forward vs. backward and a + :: second bit for whether the message is on the normal flow or the + :: associated diagnostic flow (for naxplanations). + :: + :: The least significant bit of a $bone is: + :: 1 if "forward", i.e. we send %plea's on this flow, or + :: 0 if "backward", i.e. we receive %plea's on this flow. + :: + :: The second-least significant bit is 1 if the bone is a + :: naxplanation bone, and 0 otherwise. Only naxplanation + :: messages can be sent on a naxplanation bone, as %boon's. + :: + +$ ossuary + $: =next=bone + by-duct=(map duct bone) + by-bone=(map bone duct) + == + :: $message-pump-state: persistent state for |message-pump + :: + :: Messages queue up in |message-pump's .unsent-messages until they + :: can be packetized and fed into |packet-pump for sending. When we + :: pop a message off .unsent-messages, we push as many fragments as + :: we can into |packet-pump, which sends every packet it eats. + :: Packets rejected by |packet-pump are placed in .unsent-fragments. + :: + :: When we hear a packet ack, we send it to |packet-pump to be + :: removed from its queue of unacked packets. + :: + :: When we hear a message ack (positive or negative), we treat that + :: as though all fragments have been acked. If this message is not + :: .current, then this ack is for a future message and .current has + :: not yet been acked, so we place the ack in .queued-message-acks. + :: + :: If we hear a message ack before we've sent all the fragments for + :: that message, clear .unsent-fragments and have |packet-pump delete + :: all sent fragments from the message. If this early message ack was + :: positive, print it out because it indicates the peer is not + :: behaving properly. + :: + :: If the ack is for the current message, have |packet-pump delete + :: all packets from the message, give the message ack back + :: to the client vane, increment .current, and check if this next + :: message is in .queued-message-acks. If it is, emit the message + :: (n)ack, increment .current, and check the next message. Repeat + :: until .current is not fully acked. + :: + :: The following equation is always true: + :: .next - .current == number of messages in flight + :: + :: At the end of a task, |message-pump sends a %halt task to + :: |packet-pump, which can trigger a timer to be set or cleared based + :: on congestion control calculations. When the timer fires, it will + :: generally cause a packet to be re-sent. + :: + :: Message sequence numbers start at 1 so that the first message will + :: be greater than .last-acked.message-sink-state on the receiver. + :: + :: current: sequence number of earliest message sent or being sent + :: next: sequence number of next message to send + :: unsent-messages: messages to be sent after current message + :: unsent-fragments: fragments of current message waiting for sending + :: queued-message-acks: future message acks to be applied after current + :: packet-pump-state: state of corresponding |packet-pump + :: + +$ message-pump-state + $+ message-pump-state + $: current=_`message-num`1 + next=_`message-num`1 + unsent-messages=(qeu message) + unsent-fragments=(list static-fragment) + queued-message-acks=(map message-num ack) + =packet-pump-state + == + +$ static-fragment + $: =message-num + num-fragments=fragment-num + =fragment-num + =fragment + == + :: $packet-pump-state: persistent state for |packet-pump + :: + :: next-wake: last timer we've set, or null + :: live: packets in flight; sent but not yet acked + :: metrics: congestion control information + :: + +$ packet-pump-state + $+ packet-pump-state + $: next-wake=(unit @da) + live=((mop live-packet-key live-packet-val) lte-packets) + metrics=pump-metrics + == + :: +lte-packets: yes if a is before b + :: + ++ lte-packets + |= [a=live-packet-key b=live-packet-key] + ^- ? + :: + ?: (lth message-num.a message-num.b) + %.y + ?: (gth message-num.a message-num.b) + %.n + (lte fragment-num.a fragment-num.b) + :: $pump-metrics: congestion control state for a |packet-pump + :: + :: This is an Ames adaptation of TCP's Reno congestion control + :: algorithm. The information signals and their responses are + :: identical to those of the "NewReno" variant of Reno; the + :: implementation differs because Ames acknowledgments differ from + :: TCP's, because this code uses functional data structures, and + :: because TCP's sequence numbers reset when a peer becomes + :: unresponsive, whereas Ames sequence numbers only change when a + :: ship breaches. + :: + :: A deviation from Reno is +fast-resend-after-ack, which re-sends + :: timed-out packets when a peer starts responding again after a + :: period of unresponsiveness. + :: + :: If .skips reaches 3, we perform a fast retransmit and fast + :: recovery. This corresponds to Reno's handling of "three duplicate + :: acks". + :: + :: rto: retransmission timeout + :: rtt: roundtrip time estimate, low-passed using EWMA + :: rttvar: mean deviation of .rtt, also low-passed with EWMA + :: ssthresh: slow-start threshold + :: cwnd: congestion window; max unacked packets + :: + +$ pump-metrics + $: rto=_~s1 + rtt=_~s1 + rttvar=_~s1 + ssthresh=_10.000 + cwnd=_1 + counter=@ud + == + +$ live-packet + $: key=live-packet-key + val=live-packet-val + == + +$ live-packet-key + $: =message-num + =fragment-num + == + +$ live-packet-val + $: packet-state + num-fragments=fragment-num + =fragment + == + +$ packet-state + $: last-sent=@da + tries=_1 + skips=@ud + == + :: $message-sink-state: state of |message-sink to assemble messages + :: + :: last-acked: highest $message-num we've fully acknowledged + :: last-heard: highest $message-num we've heard all fragments on + :: pending-vane-ack: heard but not processed by local vane + :: live-messages: partially received messages + :: + +$ message-sink-state + $+ message-sink-state + $: last-acked=message-num + last-heard=message-num + pending-vane-ack=(qeu [=message-num message=*]) + live-messages=(map message-num partial-rcv-message) + nax=(set message-num) + == + :: $partial-rcv-message: message for which we've received some fragments + :: + :: num-fragments: total number of fragments in this message + :: num-received: how many fragments we've received so far + :: fragments: fragments we've received, eventually producing a $message + :: + +$ partial-rcv-message + $: num-fragments=fragment-num + num-received=fragment-num + fragments=(map fragment-num fragment) + == + :: $rank: which kind of ship address, by length + :: + :: 0b0: galaxy or star -- 2 bytes + :: 0b1: planet -- 4 bytes + :: 0b10: moon -- 8 bytes + :: 0b11: comet -- 16 bytes + :: + +$ rank ?(%0b0 %0b1 %0b10 %0b11) + :: + :: +| %coding + :: +sift-ship-size: decode a 2-bit ship type specifier into a byte width + :: + :: Type 0: galaxy or star -- 2 bytes + :: Type 1: planet -- 4 bytes + :: Type 2: moon -- 8 bytes + :: Type 3: comet -- 16 bytes + :: + ++ sift-ship-size + |= rank=@ubC + ^- @ + :: + ?+ rank !! + %0b0 2 + %0b1 4 + %0b10 8 + %0b11 16 + == + :: +is-valid-rank: does .ship match its stated .size? + :: + ++ is-valid-rank + |= [=ship size=@ubC] + ^- ? + .= size + =/ wid (met 3 ship) + ?: (lte wid 1) 2 + ?: =(2 wid) 2 + ?: (lte wid 4) 4 + ?: (lte wid 8) 8 + ?> (lte wid 16) 16 + :: +sift-shot: deserialize packet from bytestream or crash + :: + ++ sift-shot + |= =blob + ^- shot + ~| %sift-shot-fail + :: first 32 (2^5) bits are header; the rest is body + :: + =/ header (end 5 blob) + =/ body (rsh 5 blob) + :: read header; first two bits are reserved + :: + =/ req =(& (cut 0 [2 1] header)) + =/ sam =(& (cut 0 [3 1] header)) + :: + =/ version (cut 0 [4 3] header) + ?. =(protocol-version version) + ~& [%ames-protocol-version protocol-version version] + ~| ames-protocol-version+version !! + :: + =/ sndr-size (sift-ship-size (cut 0 [7 2] header)) + =/ rcvr-size (sift-ship-size (cut 0 [9 2] header)) + =/ checksum (cut 0 [11 20] header) + =/ relayed (cut 0 [31 1] header) + :: origin, if present, is 6 octets long, at the end of the body + :: + =^ origin=(unit @) body + ?: =(| relayed) + [~ body] + =/ len (sub (met 3 body) 6) + [`(end [3 6] body) (rsh [3 6] body)] + :: .checksum does not apply to the origin + :: + ?. =(checksum (end [0 20] (mug body))) + ~& >>> %ames-checksum + ~| %ames-checksum !! + :: read fixed-length sndr and rcvr life data from body + :: + :: These represent the last four bits of the sender and receiver + :: life fields, to be used for quick dropping of honest packets to + :: or from the wrong life. + :: + =/ sndr-tick (cut 0 [0 4] body) + =/ rcvr-tick (cut 0 [4 4] body) + :: read variable-length .sndr and .rcvr addresses + :: + =/ off 1 + =^ sndr off [(cut 3 [off sndr-size] body) (add off sndr-size)] + ?. (is-valid-rank sndr sndr-size) + ~& >>> [%ames-sender-imposter sndr sndr-size] + ~| ames-sender-impostor+[sndr sndr-size] !! + :: + =^ rcvr off [(cut 3 [off rcvr-size] body) (add off rcvr-size)] + ?. (is-valid-rank rcvr rcvr-size) + ~& >>> [%ames-receiver-imposter rcvr rcvr-size] + ~| ames-receiver-impostor+[rcvr rcvr-size] !! + :: read variable-length .content from the rest of .body + :: + =/ content (cut 3 [off (sub (met 3 body) off)] body) + [[sndr rcvr] req sam sndr-tick rcvr-tick origin content] + :: + ++ sift-wail + |= =hoot + ^- wail + ?> =(0 (end 3 hoot)) + [%0 +:(sift-peep (rsh 3 hoot))] + :: + ++ sift-purr + |= =hoot + ^- purr + =+ [wid peep]=(sift-peep hoot) + [peep (sift-meow (rsh [3 wid] hoot))] + :: + ++ sift-peep + |= =hoot + ^- [wid=@ =peep] + =+ num=(cut 3 [0 4] hoot) + =+ len=(cut 3 [4 2] hoot) + =+ pat=(cut 3 [6 len] hoot) + ~| pat=pat + :- (add 6 len) + :_ num + (rash pat ;~(pfix fas (most fas (cook crip (star ;~(less fas prn)))))) + :: + ++ sift-meow + |= =yowl + :* sig=(cut 3 [0 64] yowl) + num=(cut 3 [64 4] yowl) + dat=(rsh 3^68 yowl) + == + :: +etch-shot: serialize a packet into a bytestream + :: + ++ etch-shot + |= shot + ^- blob + :: + =/ sndr-meta (ship-meta sndr) + =/ rcvr-meta (ship-meta rcvr) + :: + =/ body=@ + ;: mix + sndr-tick + (lsh 2 rcvr-tick) + (lsh 3 sndr) + (lsh [3 +(size.sndr-meta)] rcvr) + (lsh [3 +((add size.sndr-meta size.rcvr-meta))] content) + == + =/ checksum (end [0 20] (mug body)) + =? body ?=(^ origin) (mix u.origin (lsh [3 6] body)) + :: + =/ header=@ + %+ can 0 + :~ [2 reserved=0] + [1 req] + [1 sam] + [3 protocol-version] + [2 rank.sndr-meta] + [2 rank.rcvr-meta] + [20 checksum] + [1 relayed=.?(origin)] + == + (mix header (lsh 5 body)) + :: + :: +ship-meta: produce size (in bytes) and address rank for .ship + :: + :: 0: galaxy or star + :: 1: planet + :: 2: moon + :: 3: comet + :: + ++ ship-meta + |= =ship + ^- [size=@ =rank] + :: + =/ size=@ (met 3 ship) + :: + ?: (lte size 2) [2 %0b0] + ?: (lte size 4) [4 %0b1] + ?: (lte size 8) [8 %0b10] + [16 %0b11] + :: + +$ axle + $: peers=(map ship ship-state) + =unix=duct :: [//ames/0v0 ~] + =life + =rift + =bug + snub=[form=?(%allow %deny) ships=(set ship)] + cong=[msg=_5 mem=_100.000] + $= dead :: dead-flow consolidation timers + $: flow=[%flow (unit dead-timer)] :: ... for |ames + chum=[%chum (unit dead-timer)] :: ... for |mesa + cork=[%cork (unit dead-timer)] :: ... for %nacked corks + rots=[%rots (unit dead-timer)] :: ... fir expiring direct routes + == + :: + =server=chain :: for serving %shut requests + priv=private-key + chums=(map ship chum-state) :: XX migrated peers + core=_`?(%ames %mesa)`%ames :: XX use migrated core by default + :: TODOs + :: XX tmp=(map @ux page) :: temporary hash-addressed bindings + == + :: + +$ dead-timer [=duct =wire date=@da] + :: + +$ space + $~ none/~ + $% [%none ~] + [%publ =life] + [%shut kid=@ key=@uxI] + [%chum =server=life client=ship =client=life key=@] + == + :: [0 %for] => %poke: %plea %watch => [0 %bak] + :: [0 %for] <= %poke: %boon <= [0 %bak] + :: + :: +load: payloads bounded in the namespace + :: + +$ load ?(%poke %ack %naxp %cork) + :: +dire: side of the flow (%bak: %boon sender; %for: %plea sender) + :: + +$ dire ?(%bak %for) + +$ side [=bone =dire] + +$ azimuth-state [=symmetric-key =life =rift =public-key sponsor=ship] + +$ chum-state + $+ chum-state + $% [%known fren-state] + [%alien ovni-state] + == + :: + +$ ovni-state + $+ ovni-state + $: pokes=(list [=duct message=mesa-message]) + peeks=(jug [path ints] duct) + chums=(jug [path ints] duct) + == + :: + +$ fren-state + $: azimuth-state + lane=(unit [hop=@ =lane:pact]) :: XX (list) + =qos + corked=(set side) :: can be +peeked in the namespace + :: XX how many flows to keep here? + =ossuary :: XX redefine ossuary in terms of bone^side + flows=(map side flow-state) + pit=(map path request-state) :: active +peek namespace paths + =client=chain :: stores keys for %shut requests + tip=(jug =user=path [duct =ames=path]) :: reverse .pit lookup map + :: a migrated flow in a weird state is tagged with a $term, and data + :: + weir=(jug side [tag=term data=*]) + == + :: + :: interest gifts per path in the pith + :: %sage used by |mesa + :: %tune used by |fine + :: %rate XX give $rate every .feq of bloq size .boq + :: + +$ ints ?(%sage %tune [%rate boq=@ud feq=@ud]) + +$ rate $@(~ [boq=@ud fag=@ud tot=@ud]) + +$ request-state + $: for=(jug duct ints) + pay=(unit path) + ps=(unit pact-state) + == + :: + ++ pact-state + :: XX duplicated in %zuse + :: + => |% + ++ lss + |% + ++ verifier + |% + +$ state + $: leaves=@ud + counter=@ud + pairs=(map @ud [l=@ux r=@ux]) + == + -- + -- + -- + $: los=state:verifier:lss + fags=(list @) + == + :: + +$ mesa-message + $~ [%plea *plea] + $>(?(%plea %boon) message) + :: + +$ flow-state + $: :: a flow switches to closing when: + :: - forward: a %cork $plea %poke request is sent + :: - backward: a %cork $plea %poke request is received + :: + :: the flow is deleted first on the forward side when it can read the + :: %ack for the %cork, and then on the backward side when it can +peek + :: the corked flow from the forward namespace + :: + closing=?(%.y %.n) + :: line: high-water mark for the last-acked message before migration + :: + line=@ud + :: outbound %poke payloads, bounded in the ship's namespace + :: always and only for requests + :: + $= snd + $: %outbound + :: as soon as we can read the ack for the %poke we remove it from + :: the queue since that proof that they have processed the message + :: + :: (n)acks are considered payload responses, and are part of + :: received pokes, so we track them in the nax map + :: + :: both for boons and pleas, and per (seq)message + :: the ordered map guarantees that we receive the acks in ordered + :: if (dec received-ack=@ud) has not been acked, we drop it + :: + :: payloads can be +peek'ed via a well-formed path with the format: + :: e.g. /flow/[bone=0]/[load]/?[%for %bak]/[ship]/[seq=1] + :: + :: XX option to include messages that won't be bounded into the + :: namespace (two-layer queue) + :: + loads=((mop ,@ud mesa-message) lte) :: all unacked + next=_1 :: =(next +(last-acked)) + :: + send-window-max=_1 :: how many pleas to send + send-window=_1 :: XX + acks=((mop ,@ud ack) lte) :: out-of-order acks + == + :: incoming %pokes, pending their ack from the vane + :: + $= rcv + $: %incoming + :: acks can be +peek'ed via a well-formed path with a known structure + :: (as stored in the producer of the ack) + :: e.g. /flow/bone=0/ack-{plea-boon}/~zod/seq=1 + :: + last-acked=@ud :: for acking old duplicates (only 10) + :: and dropping future acks + :: only +(last-acked) messages are handled + :: + pending-ack=_`?`%.n :: there's only one pending ack to guarantee + :: that messages are delivered in order + :: and to only send the ack to the vane once + nax=(map seq=@ud error) :: messages you have nacked, + :: (last-acked - 10 <= ack <= last-acked) + == == + :: atom ops + :: + :: +nac: reverse +can + :: + ++ nac + |= [a=bloq b=(list (pair step step)) c=@] + ^- (list @) + ?~ b ~ + [(cut a [i.b] c) $(b t.b)] + :: + :: +dew: dry +hew + :: + ++ dew + |= [a=bite b=* c=@] + ^- * + =< - + =/ [d=bloq e=step] ?^(a a [a 0]) + |- ^- (pair * step) + ?@ b + [(cut d [e b] c) (add e b)] + =^ f e $(b -.b) + =^ g e $(b +.b) + [[f g] e] + :: + :: binary tree ops + :: + :: +| %arboric + :: + ++ bao + |= n=@ud + =| i=@ud + =| s=(list) + |- ^- * + ?: =(i n) + =^ d s s + |-(?~(s d $(d [i.s d], s t.s))) + :: + =/ d=* i + =. i +(i) + =/ j (ctz i) + |- ^- * + ?: =(0 j) + ^$(s [d s]) + =^ e s s + $(d [e d], j (dec j)) + :: + ++ unroll + |= d=* + =| s=(list [axe=@ d=*]) + =/ a 1 + |- ^+ s + ?@ d + ?~ s ~ + $(d d.i.s, a axe.i.s, s t.s) + :- [a d] + $(d -.d, a (peg a 2), s [[(peg a 3) +.d] s]) + :: + :: +| %messages + :: + ++ mess + => |% + +$ auth (each @uxJ @uxH) :: &+sig, |+hmac + +$ gage $@(~ page) + +$ sage (pair spar gage) + -- + $% [%page (trel spar auth @)] + [%peek spar] + [%poke (pair spar sage)] + == + :: + :: packet de/serialization + :: + :: +| %packets + :: + :: > :(add 8 305 1.159) + :: 1.472 + :: + ++ pact + => |% + +$ frag @udG + +$ ship @pH + +$ rift @udF + +$ bloq @D + +$ name + $: [her=ship rif=rift] + [boq=bloq wan=$@(~ [typ=?(%auth %data) fag=frag])] + pat=path + == + +$ auth + :: %& for auth packet + :: %| for data packets + :: + (each auth:mess (unit (pair @uxI @uxI))) + +$ data [tob=@ud aut=auth:pact dat=@] + +$ lane $@ @ux + $% [%if p=@ifF q=@udE] + [%is p=@isH q=@udE] + == + +$ next (list lane) + +$ pact $: hop=@ud + $% [%page =name =data =next] + [%poke ack=name pok=name =data] + [%peek =name] + == == + -- + :: + |% + ++ en + |= pak=pact + ^- plot + =* typ +<.pak + =/ bod=plot + ?- typ + %page [(en:^name name.pak) (en:^data data.pak) (en:^next next.pak)] + %peek (en:^name name.pak) + %poke [(en:^name ack.pak) (en:^name pok.pak) (en:^data data.pak)] + == + =/ hed=plot + =/ nex=@B + ?. ?=(%page typ) 0b0 + ?~ next.pak 0b0 + ?^ t.next.pak 0b11 + ?:(?=([%if *] i.next.pak) 0b1 0b10) + (en:head nex typ hop.pak (mug p:(fax:plot bod))) + [hed bod] + :: + ++ de + |= a=bite + |= dat=@ + ^- [pact boq=bloq sep=step] + =+ ^= [hed b] ((de:head a) dat) + =+ ^= [pac c] + ?- typ.hed + %page =^ nam b ((de:^name b) dat) + =^ dat b ((de:^data b) dat) + =^ nex b ((de:^next b nex.hed) ^dat) + [[hop.hed [typ.hed nam dat nex]] b] + :: + %peek =^ nam b ((de:^name b) dat) + [[hop.hed [typ.hed nam]] b] + :: + %poke =^ nam b ((de:^name b) dat) + =^ dam b ((de:^name b) dat) + =^ dat b ((de:^data b) dat) + [[hop.hed [typ.hed nam dam dat]] b] + == + =/ gum + (end [0 20] (mug (cut -.c [(rig b -.c) +.c] dat))) + ~| gum.hed^gum + ?> =(gum.hed gum) :: XX jumbo fragments have wrong mug; fixed? + [pac c] + -- + :: + ++ head + |% + ++ en + |= [nex=@B typ=?(%page %peek %poke) hop=@ gum=@F] + ^- plot + =/ tip ?-(typ %page 0b1, %peek 0b10, %poke 0b11) + =. hop (min 7 hop) + =* tok [32 0x67e0.0200] + :- bloq=0 + [[2 0] [2 nex] [3 ver=1] [2 tip] [3 hop] [20 gum] tok ~] + :: + ++ de + |= a=bite + =/ b=[bloq step] [0 (rig a 0)] + |= dat=@ + ^- [[nex=@B typ=?(%page %peek %poke) hop=@ gum=@F] bloq step] + =^ c b + ((hew b dat) [res=2 nex=2 ver=3 tip=2 hop=3 gum=20 tok=32]) + ?> =(0 res.c) + ?> =(1 ver.c) + ?> =(0x67e0.0200 tok.c) + =/ typ ?+(tip.c !! %0b1 %page, %0b10 %peek, %0b11 %poke) + [[nex.c typ hop.c gum.c] b] + -- + :: + ++ next + |% + ++ en + |= nex=next:pact + ^- plot + :- bloq=3 + ?~ nex ~ + ?: ?=([[%if *] ~] nex) + [[4 p] [2 q] ~]:i.nex + |- ^- (list plat:plot) + =; one=(list plat:plot) + ?~(t.nex one (weld one $(nex t.nex))) + ?- i.nex + @ =/ l (met 3 i.nex) + ?> (lth l 255) + [[1 +(l)] [1 2] [l i.nex] ~] + [%if *] [[1 7] [1 0] [4 p] [2 q] ~]:i.nex + [%is *] =/ l (met 3 p.i.nex) + ?> (lth l 253) + [[1 (add 3 l)] [1 1] [l p.i.nex] [2 q.i.nex] ~] + == + :: + ++ de + |= [a=bite b=@B] + =/ c=[bloq step] [3 (rig a 3)] + |= dat=@ + ^- [next:pact bloq step] + =< ?+ b !! + %0b0 [~ c] + :: + %0b1 =^ if=[@ @] c ((hew c dat) 4 2) + [[if+if ~] c] + :: + %0b10 =^ la c (need one) + [[la ~] c] + :: + %0b11 =| nex=next:pact + |- ^- [next:pact bloq step] + =/ a one + ?~ a [(flop nex) c] + $(nex [-.u.a nex], c +.u.a) + == + |% + ++ one + ^- (unit [lane:pact bloq step]) + =^ raw c ((hew c dat) 1 1) + ?: =(0 -.raw) ~ + ?+ +.raw !! + %0 ?> =(7 -.raw) + =^ if=[@ @] c ((hew c dat) 4 2) + `[if+if c] + :: + %1 ?> (gte -.raw 3) + =^ is=[@ @] c ((hew c dat) (sub -.raw 3) 2) + `[is+is c] + :: + %2 =^ la c ((hew c dat) (dec -.raw)) + `[la c] + == + -- + -- + :: + :: +name: encoded-path + :: + :: range: { meta[1], her[2^1-4], rif[1-4], boq[1], fag[1-4], len[2], pat[2^0-16 - 1] } + :: max: { 1, 16, 4, 1, 4, 2, 65.535 } + :: actual: { 1, 16, 4, 1, 4, 2, 277 } + :: + :: XX increment path-len by one, exclude zero-length paths + :: + :: > :(add 1 16 4 1 4 2 277) + :: 305 + :: + :: for %poke: + :: > (div (sub 305 (mul 2 (sub 305 277))) 2) + :: 124 + :: + ++ name + |% + ++ en + |= name:pact + ^- plot + =/ ran ?~(her 0 (xeb (dec (met 4 (end 7 her))))) + =/ ryf ?~(rif 0 (dec (met 3 rif))) :: XX is rift always non-zero? + =/ [nit=@ tau=@ gaf=@ gyf=@ fag=@] + ?~ wan + [0b1 0b0 0b0 0 0] + =/ gaf (xeb (dec (met 3 (max 1 fag.wan)))) + [0b0 ?:(?=(%auth typ.wan) 0b1 0b0) gaf (bex gaf) fag.wan] + :: + =/ tap =-([p=(met 3 -) q=-] `@t`(rap 3 (join '/' pat))) + ?> &(?=(^ pat) (lth p.tap ^~((bex 16)))) :: XX truncate instead? + :+ bloq=3 + [s+~ 0 [2 ran] [2 ryf] [1 nit] [1 tau] [2 gaf] ~] + [[(bex +(ran)) her] [+(ryf) rif] [1 boq] [gyf fag] [2 p.tap] tap ~] + :: + ++ de + |= a=bite + =/ b=[boq=bloq sep=step] [0 (rig a 0)] + |= pat=@ + ^- [name:pact _b] + =^ c b + ((hew b pat) [ran=2 ryf=2 nit=1 tau=1 gaf=2]) + :: + =. b [3 (rig b 3)] + =^ d b + %- (hew b pat) + :^ who=[her=(bex +(ran.c)) rif=+(ryf.c)] + boq=1 + fag=?:(=(0b1 nit.c) 0 (bex gaf.c)) + tap=2 + :: + :: XX ?< =(0 tap.d) + =/ pat + %+ rash (cut boq.b [sep.b tap.d] pat) + (more fas (cook crip (star ;~(less fas prn)))) + =/ wan + ?. =(0b1 nit.c) + [?:(=(1 tau.c) %auth %data) fag.d] + ?>(&(=(0 tau.c) =(0 fag.d)) ~) + :: + =. sep.b (add sep.b tap.d) + [[who.d [boq.d wan] pat] b] + -- + :: + :: +data: response data + :: + :: range: { meta[1], tot[1-4], aum[32*0-2], aup[32*0-2], len-len[0-1], len[0-255], dat[0-2^252-1] } + :: max: { 1, 4, 64, 64, 1, 255, 2^252-1 } + :: actual: { 1, 4, 64, 64, 0, 2, 1.024 } + :: + :: XX increment len-len by 3, recalculate max limits + :: XX max len-len s/b 32 to align with max bloq size + :: XX move tot after auth to avoid trailing zeros? + :: + :: > :(add 1 4 64 64 2 1.024) + :: 1.159 + :: + ++ data + |% + ++ en + |= [tob=@ud aut=auth:pact dat=@] + ^- plot + =/ lot (xeb (dec (met 3 (max 1 tob)))) + ?> (lte lot 3) + :: + =/ [aub=@ubB aum=plat:plot] + ?- aut + [%& %& *] ?> (lte (met 3 +.p.aut) 64) + [0b0 64 +.p.aut] + :: + [%| ~] [0b1 0] + :: + [%& %| *] ?> (lte (met 3 +.p.aut) 16) + [0b10 16 +.p.aut] + :: + [%| ^] ?> (lte (met 3 p.u.p.aut) 32) + ?> (lte (met 3 q.u.p.aut) 32) + [0b11 s+~ 3 [32 p] [32 q] ~]:u.p.aut + == + :: + =/ len (met 3 dat) + =/ nel (met 3 len) + =/ men=(pair @B @A) + ?:((lth nel 3) [nel 0] [0b11 1]) + :+ bloq=3 + [s+~ 0 [2 lot] [2 aub] [2 0] [2 p.men] ~] + [[(bex lot) tob] aum [q.men nel] [nel len] [len dat] ~] + :: + ++ de + |= a=bite + =/ b=[boq=bloq sep=step] [0 (rig a 0)] + |= dat=@ + ^- [data:pact boq=bloq sep=step] + =^ c b + ((hew b dat) [lot=2 [aub=2 nil=2] men=2]) + =. b [3 (rig b 3)] + =^ d b + %- (hew b dat) + :+ tob=(bex lot.c) + ^= aub + ?+ aub.c !! + %0b0 `@`64 + %0b10 `@`16 + %0b1 `@`0 + %0b11 [`@`32 `@`32] + == + nel=?.(=(3 men.c) 0 1) + :: + =/ aut=auth:pact + ?+ aub.c !! + %0b0 [%& %& ?>(?=(@ aub.d) aub.d)] + %0b10 [%& %| ?>(?=(@ aub.d) aub.d)] + %0b1 [%| ~] + %0b11 [%| ?>(?=(^ aub.d) `aub.d)] + == + :: + =/ nel ?.(=(3 men.c) men.c nel.d) + =^ len sep.b [(cut 3 [sep.b nel] dat) (add sep.b nel)] + =^ dat sep.b [(cut 3 [sep.b len] dat) (add sep.b len)] + [[tob.d aut dat] b] + -- + :: + ++ name-to-beam + |= name:pact + ^- beam + :* [her %$ ud+1] + %mess (scot %ud rif) + %pact (scot %ud boq) %etch + ?~ wan [%init pat] + [typ.wan (scot %ud fag.wan) pat] + == + :: + :: XX to lib? + :: + ++ roundtrip + |* [dat=* en=$-(* plot) de=$-(@ [* boq=@ sep=@])] + ^- (unit _dat) + =/ pol (en dat) + =/ ser (fax:plot pol) + =/ ron (de p.ser) + ?. =(dat -.ron) + ~& %roundtrip-fail-a + `-.ron + ?. =(q.ser boq.ron) + ~& [%roundtrip-fail-b q.ser boq.ron] + `-.ron + ?. =(r.ser sep.ron) + ~& [%roundtrip-fail-c r.ser sep.ron] + `-.ron + ~ + :: + ++ generator + |% + +$ gen $-(@uvJ [* @uvJ]) + ++ just |*(a=* |=(eny=@uvJ [a (shaz eny)])) + :: + ++ cook + |* [a=$-(* *) b=gen] + |= eny=@uvJ + =^ c eny (b eny) + [(a c) eny] + :: + ++ flag + |= eny=@uvJ + =+ [b og]=(~(raws og eny) 1) + [=(b 0) a.og] + :: + ++ rand + |= top=@u + |= eny=@uvJ + =/ og ~(. og eny) + |- ^- [@ @uvJ] + =^ a og (rads:og (met 0 top)) + =^ b og (raws:og a) + ?:((gte b top) $ [b a.og]) + :: + ++ bits + |= [zer=? top=@ud] + |= eny=@uvJ + ^- [@ @uvJ] + =^ a eny ((rand top) eny) + =+ [b og]=(~(raws og eny) a) + ?: &(!zer =(0 b)) $ + [b a.og] + :: + ++ char + |= [boq=bloq src=@] + =/ wyd (met boq src) + |= eny=@uvJ + ^- [@ @uvJ] + =^ a eny ((rand wyd) eny) + [(cut boq [a 1] src) eny] + :: + ++ many + |* [[min=@ud max=@ud] =gen] + |= eny=@uvJ + =^ a eny ((rand max) eny) + ?: (lth a min) $ + =| [i=@ud lit=(list _-:$:gen)] + |- ^+ [lit eny] + ?: =(i a) [lit eny] + =^ b eny (gen eny) + $(lit [b lit], i +(i)) + :: + ++ both + |* [l=gen r=gen] + |= eny=@uvJ + =^ a eny (l eny) + =^ b eny (r eny) + [[a b] eny] + :: + ++ pick + |* [l=gen r=gen] + |= eny=@uvJ + =^ a eny (flag eny) + (?:(a l r) eny) + :: + ++ aura + =| zer=? + |= yaz=@t + ~+ + ^- $-(@uvJ [@ @uvJ]) + =/ [max=@ud aur=@ta] + =/ len (met 3 yaz) + ?: =(0 len) + [0 %$] + =. len (dec len) + =/ tyl (rsh [3 len] yaz) + ?. &((gte tyl 'A') (lte tyl 'Z')) + [0 yaz] + [(sub tyl 'A') (end [3 len] yaz)] + :: + =- ?@ - (just -) + ?: ?=(%| -<) -> + (bits zer ?:(=(0 max) -> (bex max))) + :: + =+ yed=(rip 3 aur) + ?+ yed &+256 + [%c *] :- %| + %+ cook (cury rep 5) + (many [0 256] (rand 0x11.0000)) :: XX nonzero? + :: + [%d ?(%a %r) *] &+128 + [%f *] &+1 + [%n *] `@`0 + [%i %f *] &+32 + [%i %s *] &+128 + [?(%p %q) *] &+128 + [%r %h *] &+16 + [%r %s *] &+32 + [%r %d *] &+64 + [%r %q *] &+128 + :: + [%u %c *] |+(cook enc:fa (bits & 256)) + :: + [%t %a %s *] :- %| + %+ cook crip + %+ both + (char 3 ^~((crip (gulf 'a' 'z')))) + %+ many [0 32] + %+ char 3 + ^~((crip (weld (gulf '0' '9') ['-' (gulf 'a' 'z')]))) + :: + [%t %a *] :- %| + %+ cook crip + %+ many [0 64] + %+ char 3 + ^~((crip :(weld "-~_." (gulf '0' '9') (gulf 'a' 'z')))) + :: + [%t *] :- %| + %+ cook (corl tuft (cury rep 5)) + (many [0 256] (rand 0x11.0000)) :: XX nonzero? + == + :: + ++ name + => |% + ++ ship (aura 'pH') + ++ rift (aura 'udF') + ++ bloq (aura 'udD') + ++ frag rift + ++ want %+ pick (just ~) + (both (pick (just %auth) (just %data)) frag) + ++ path (many [1 10] (aura %ta)) + -- + ^- $-(@uvJ [name:pact @uvJ]) + %+ both (both ship rift) + (both (both bloq want) path) + :: + ++ data + => |% + ++ frag (=+(aura -(zer |)) 'udF') + ++ hash (aura 'uxI') + ++ mess-auth + (pick (both (just %&) (aura 'uxJ')) (both (just %|) (aura 'uxH'))) + ++ auth + ;: pick + :(both (just %|) (pick (just ~) :(both (just ~) hash hash))) + :(both (just %&) mess-auth) + == + -- + ^- $-(@uvJ [data:pact @uvJ]) + :(both frag auth (bits & ^~((bex 16)))) + :: + ++ lane + => |% + ++ port (aura 'udE') + -- + ;: pick + (bits & 256) + :(both (just %if) (aura 'ifF') port) + :(both (just %is) (aura 'isH') port) + == + :: + ++ pactt + ^- $-(@uvJ [pact:pact @uvJ]) + =/ hop (rand 7) + ;: pick + :(both hop (just %peek) name) + :(both hop (just %page) name data (many [0 2] lane)) + :(both hop (just %poke) name name data) + == + -- + :: + ++ test + |_ [eny=@uvJ len=@ud] + ++ name + =| i=@ud + |- ^- ? + ?: =(i len) & + =/ old eny + =^ nam eny (name:generator eny) + ?^ ron=(roundtrip nam en:^name $:de:^name) + ~&([i=i eny=old nam u.ron] |) + $(i +(i)) + :: + ++ data + =| i=@ud + |- ^- ? + ?: =(i len) & + =/ old eny + =^ dat eny (data:generator eny) + ?^ ron=(roundtrip dat en:^data $:de:^data) + ~&([i=i eny=old dat u.ron] |) + $(i +(i)) + :: + ++ all + =| i=@ud + |- ^- ? + ?: =(i len) & + =/ old eny + =^ pac eny (pactt:generator eny) + ?^ ron=(roundtrip pac en:pact $:de:pact) + ~&([i=i eny=old pac u.ron] |) + $(i +(i)) + -- + :: + -- ::ames +:: :::: +:::: ++behn :: (1b) timekeeping + :: :::: +++ behn ^? + |% + +$ gift :: out result <-$ + $% [%doze p=(unit @da)] :: next alarm + [%wake error=(unit tang)] :: wakeup or failed + [%meta p=vase] + [%heck syn=sign-arvo] :: response to %huck + == + +$ task :: in request ->$ + $~ [%vega ~] :: + $% $>(%born vane-task) :: new unix process + [%rest p=@da] :: cancel alarm + [%drip p=vase] :: give in next event + [%huck syn=sign-arvo] :: give back + $>(%trim vane-task) :: trim state + $>(%vega vane-task) :: report upgrade + [%wait p=@da] :: set alarm + [%wake ~] :: timer activate + == + -- ::behn +:: :::: +:::: ++clay :: (1c) versioning + :: :::: +++ clay ^? + |% + +$ gift :: out result <-$ + $% [%boon payload=*] :: ames response + [%croz rus=(map desk [r=regs w=regs])] :: rules for group + [%cruz cez=(map @ta crew)] :: permission groups + [%dirk p=@tas] :: mark mount dirty + [%ergo p=@tas q=mode] :: version update + [%hill p=(list @tas)] :: mount points + [%done error=(unit error:ames)] :: ames message (n)ack + [%mere p=(each (set path) (pair term tang))] :: merge result + [%ogre p=@tas] :: delete mount point + [%rule red=dict wit=dict] :: node r+w permissions + [%tire p=(each rock:tire wave:tire)] :: app state + [%writ p=riot] :: response + [%wris p=[%da p=@da] q=(set (pair care path))] :: many changes + == :: + +$ task :: in request ->$ + $~ [%vega ~] :: + $% [%boat ~] :: pier rebooted + [%cred nom=@ta cew=crew] :: set permission group + [%crew ~] :: permission groups + [%crow nom=@ta] :: group usage + [%drop des=desk] :: cancel pending merge + [%esse des=desk ese=?] :: edit essential desk + [%info des=desk dit=nori] :: internal edit + $>(%init vane-task) :: report install + [%into des=desk all=? fis=mode] :: external edit + $: %merg :: merge desks + des=desk :: target + her=@p dem=desk cas=case :: source + how=germ :: method + == :: + $: %fuse :: merge many + des=desk :: target desk + bas=beak :: base desk + con=(list [beak germ]) :: merges + == :: + [%mont pot=term bem=beam] :: mount to unix + [%dirk pot=term] :: mark mount dirty + [%ogre pot=$@(term beam)] :: delete mount point + [%park des=desk yok=yoki ran=rang] :: synchronous commit + [%perm des=desk pax=path rit=rite] :: change permissions + [%pork ~] :: resume commit + [%prep lat=(map lobe page)] :: prime clay store + [%rein des=desk ren=rein] :: extra apps + [%stir arg=*] :: debug + [%tire p=(unit ~)] :: app state subscribe + [%tomb =clue] :: tombstone specific + $>(%trim vane-task) :: trim state + $>(%vega vane-task) :: report upgrade + [%warp wer=ship rif=riff] :: internal file req + [%werp who=ship wer=ship rif=riff-any] :: external file req + [%wick ~] :: try upgrade + [%zeal lit=(list [=desk =zest])] :: batch zest + [%zest des=desk liv=zest] :: live + $>(%plea vane-task) :: ames request + == :: + :: :: + :::: :: (1c2) + :: :: + +$ aeon @ud :: version number + +$ beam [[p=ship q=desk r=case] s=path] :: global name + +$ beak [p=ship q=desk r=case] :: path prefix + +$ cable :: lib/sur/mark ref + $: face=(unit term) :: + file-path=term :: + == :: + +$ care :: clay submode + $? %a %b %c %d %e %f :: + %p %q %r %s %t %u :: + %v %w %x %y %z :: + == :: + +$ cash :: case or tako + $% [%tako p=tako] :: + case :: + == :: + +$ cass [ud=@ud da=@da] :: cases for revision + +$ clue :: murder weapon + $% [%lobe =lobe] :: specific lobe + [%all ~] :: all safe targets + [%pick ~] :: collect garbage + [%norm =ship =desk =norm] :: set default norm + [%worn =ship =desk =tako =norm] :: set commit norm + [%seek =ship =desk =cash] :: fetch source blobs + == :: + +$ cone (map [ship desk] dome) :: domes + :: + :: Desk state. + :: + :: Includes a checked-out ankh with current content, most recent version, map + :: of all version numbers to commit hashes (commits are in hut.rang), and map + :: of labels to version numbers. + :: + :: `mim` is a cache of the content in the directories that are mounted + :: to unix. Often, we convert to/from mime without anything really + :: having changed; this lets us short-circuit that in some cases. + :: Whenever you give an `%ergo`, you must update this. + :: + +$ dome + $: let=aeon :: top id + hit=(map aeon tako) :: versions by id + lab=(map @tas aeon) :: labels + tom=(map tako norm) :: tomb policies + nor=norm :: default policy + mim=(map path mime) :: mime cache + fod=flue :: ford cache + wic=(map weft yoki) :: commit-in-waiting + liv=zest :: running agents + ren=rein :: force agents on/off + == :: + +$ crew (set ship) :: permissions group + +$ dict [src=path rul=real] :: effective permission + +$ domo :: project state + $: let=@ud :: top id + hit=(map @ud tako) :: changes by id + lab=(map @tas @ud) :: labels + == :: + +$ germ :: merge style + $? %init :: new desk + %fine :: fast forward + %meet :: orthogonal files + %mate :: orthogonal changes + %meld :: force merge + %only-this :: ours with parents + %only-that :: hers with parents + %take-this :: ours unless absent + %take-that :: hers unless absent + %meet-this :: ours if conflict + %meet-that :: hers if conflict + == :: + +$ lobe @uvI :: blob ref + +$ miso :: file delta + $% [%del ~] :: delete + [%ins p=cage] :: insert + [%dif p=cage] :: mutate from diff + [%mut p=cage] :: mutate from raw + == :: + +$ misu :: computed delta + $% [%del ~] :: delete + [%ins p=cage] :: insert + [%dif p=lobe q=cage] :: mutate from diff + == :: + +$ mizu [p=@u q=(map @ud tako) r=rang] :: new state + +$ moar [p=@ud q=@ud] :: normal change range + +$ moat [from=case to=case =path] :: change range + +$ mode (list [path (unit mime)]) :: external files + +$ mood [=care =case =path] :: request in desk + +$ mool [=case paths=(set (pair care path))] :: requests in desk + +$ nori :: repository action + $% [%& p=soba] :: delta + [%| p=@tas q=(unit aeon)] :: label + == :: + +$ nuri :: repository action + $% [%& p=suba] :: delta + [%| p=@tas] :: label + == :: + +$ norm (axal ?) :: tombstone policy + +$ open $-(path vase) :: get prelude + +$ page ^page :: export for compat + +$ pour :: ford build w/content + $% [%file =path] + [%nave =mark] + [%dais =mark] + [%cast =mars] + [%tube =mars] + :: leafs + :: + [%vale =path =lobe] + [%arch =path =(map path lobe)] + == + +$ rang :: repository + $+ rang + $: hut=(map tako yaki) :: changes + lat=(map lobe page) :: data + == :: + +$ rant :: response to request + $: p=[p=care q=case r=desk] :: clade release book + q=path :: spur + r=cage :: data + == :: + +$ rave :: general request + $% [%sing =mood] :: single request + [%next =mood] :: await next version + [%mult =mool] :: next version of any + [%many track=? =moat] :: track range + == :: + +$ real :: resolved permissions + $: mod=?(%black %white) :: + who=(pair (set ship) (map @ta crew)) :: + == :: + +$ regs (map path rule) :: rules for paths + +$ rein (map dude:gall ?) :: extra apps + +$ riff [p=desk q=(unit rave)] :: request+desist + +$ riff-any :: + $% [%1 =riff] :: + == :: + +$ rite :: new permissions + $% [%r red=(unit rule)] :: for read + [%w wit=(unit rule)] :: for write + [%rw red=(unit rule) wit=(unit rule)] :: for read and write + == :: + +$ riot (unit rant) :: response+complete + +$ rule [mod=?(%black %white) who=(set whom)] :: node permission + +$ rump [p=care q=case r=@tas s=path] :: relative path + +$ saba [p=ship q=@tas r=moar s=dome] :: patch+merge + +$ soak :: ford result + $% [%cage =cage] + [%vase =vase] + [%arch dir=(map @ta vase)] + [%dais =dais] + [%tube =tube] + == + +$ soba (list [p=path q=miso]) :: delta + +$ suba (list [p=path q=misu]) :: delta + +$ tako @uvI :: yaki ref + +$ toro [p=@ta q=nori] :: general change + ++ unce :: change part + |* a=mold :: + $% [%& p=@ud] :: skip[copy] + [%| p=(list a) q=(list a)] :: p -> q[chunk] + == :: + ++ urge |*(a=mold (list (unce a))) :: list change + +$ waft :: kelvin range + $^ [[%1 ~] p=(set weft)] :: + weft :: + +$ whom (each ship @ta) :: ship or named crew + +$ yoki (each yuki yaki) :: commit + +$ yuki :: proto-commit + $: p=(list tako) :: parents + q=(map path (each page lobe)) :: namespace + == :: + +$ yaki :: commit + $: p=(list tako) :: parents + q=(map path lobe) :: namespace + r=tako :: self-reference + t=@da :: date + == :: + +$ zest $~(%dead ?(%dead %live %held)) :: how live + :: :: + ++ tire :: app state + |% :: + +$ rock (map desk [=zest wic=(set weft)]) :: + +$ wave :: + $% [%wait =desk =weft] :: blocked + [%warp =desk =weft] :: unblocked + [%zest =desk =zest] :: running + == :: + :: + ++ wash :: patch + |= [=rock =wave] + ^+ rock + ?- -.wave + %wait + =/ got=[=zest wic=(set weft)] + (~(gut by rock) desk.wave *zest ~) + (~(put by rock) desk.wave got(wic (~(put in wic.got) weft.wave))) + :: + %warp + %- ~(run by rock) + |= [=zest wic=(set weft)] + [zest (~(del in wic) weft.wave)] + :: + %zest + ?: ?=(%dead zest.wave) + (~(del by rock) desk.wave) + =/ got=[=zest wic=(set weft)] + (~(gut by rock) desk.wave *zest ~) + (~(put by rock) desk.wave got(zest zest.wave)) + == + :: + ++ walk :: diff + |= [a=rock b=rock] + ^- (list wave) + =/ adds (~(dif by b) a) + =/ dels (~(dif by a) b) + =/ bots (~(int by a) b) + ;: welp + ^- (list wave) + %- zing + %+ turn ~(tap by adds) + |= [=desk =zest wic=(set weft)] + ^- (list wave) + :- [%zest desk zest] + %+ turn ~(tap in wic) + |= =weft + [%wait desk weft] + :: + ^- (list wave) + %+ turn ~(tap by dels) + |= [=desk =zest wic=(set weft)] + ^- wave + [%zest desk %dead] + :: + ^- (list wave) + %- zing + %+ turn ~(tap by bots) + |= [=desk * *] + ^- (list wave) + =/ aa (~(got by a) desk) + =/ bb (~(got by b) desk) + =/ wadds (~(dif in wic.bb) wic.aa) + =/ wdels (~(dif in wic.aa) wic.bb) + ;: welp + ?: =(zest.aa zest.bb) + ~ + [%zest desk zest.bb]~ + :: + %+ turn ~(tap by wadds) + |= =weft + ^- wave + [%wait desk weft] + :: + %+ turn ~(tap by wdels) + |= =weft + ^- wave + [%warp desk weft] + == + == + -- + :: + :: +page-to-lobe: hash a page to get a lobe. + :: + ++ page-to-lobe |=(page (shax (jam +<))) + :: + ++ cord-to-waft + |= =cord + ^- waft + =/ wefts=(list weft) + %+ turn (rash cord (star (ifix [gay gay] tall:vast))) + |= =hoon + !<(weft (slap !>(~) hoon)) + ?: ?=([* ~] wefts) + i.wefts + [[%1 ~] (sy wefts)] + :: + ++ waft-to-wefts + |= kal=waft + ^- (set weft) + ?^ -.kal + p.kal + [kal ~ ~] + :: + :: +make-yaki: make commit out of a list of parents, content, and date. + :: + ++ make-yaki + |= [p=(list tako) q=(map path lobe) t=@da] + ^- yaki + =+ ^= has + %^ cat 7 (sham [%yaki (roll p add) q t]) + (sham [%tako (roll p add) q t]) + [p q has t] + :: + :: $leak: ford cache key + :: + :: This includes all build inputs, including transitive dependencies, + :: recursively. + :: + +$ leak + $~ [*pour ~] + $: =pour + deps=(set leak) + == + :: + :: $flow: global ford cache + :: + :: Refcount includes references from other items in the cache, and + :: from spills in each desk + :: + :: This is optimized for minimizing the number of rebuilds, and given + :: that, minimizing the amount of memory used. It is relatively slow + :: to lookup, because generating a cache key can be fairly slow (for + :: files, it requires parsing; for tubes, it even requires building + :: the marks). + :: + +$ flow (map leak [refs=@ud =soak]) + :: + :: Per-desk ford cache + :: + :: Spill is the set of "roots" we have into the global ford cache. + :: We add a root for everything referenced directly or indirectly on + :: a desk, then invalidate them on commit only if their dependencies + :: change. + :: + :: Sprig is a fast-lookup index over the global ford cache. The only + :: goal is to make cache hits fast. + :: + +$ flue [spill=(set leak) sprig=(map mist [=leak =soak])] + :: + :: Ford build without content. + :: + +$ mist + $% [%file =path] + [%nave =mark] + [%dais =mark] + [%cast =mars] + [%tube =mars] + [%vale =path] + [%arch =path] + == + :: + :: $pile: preprocessed hoon source file + :: + :: /- sur-file :: surface imports from /sur + :: /+ lib-file :: library imports from /lib + :: /= face /path :: imports built hoon file at path + :: /~ face type /path :: imports built hoon files from directory + :: /% face %mark :: imports mark definition from /mar + :: /$ face %from %to :: imports mark converter from /mar + :: /* face %mark /path :: unbuilt file imports, as mark + :: + +$ pile + $: sur=(list taut) + lib=(list taut) + raw=(list [face=term =path]) + raz=(list [face=term =spec =path]) + maz=(list [face=term =mark]) + caz=(list [face=term =mars]) + bar=(list [face=term =mark =path]) + =hoon + == + :: $taut: file import from /lib or /sur + :: + +$ taut [face=(unit term) pax=term] + :: $mars: mark conversion request + :: $tube: mark conversion gate + :: $nave: typed mark core + :: + +$ mars [a=mark b=mark] + +$ tube $-(vase vase) + ++ nave + |$ [typ dif] + $_ + ^? + |% + ++ diff |~([old=typ new=typ] *dif) + ++ form *mark + ++ join |~([a=dif b=dif] *(unit (unit dif))) + ++ mash + |~ [a=[ship desk dif] b=[ship desk dif]] + *(unit dif) + ++ pact |~([typ dif] *typ) + ++ vale |~(noun *typ) + -- + :: $dais: processed mark core + :: + +$ dais + $_ ^| + |_ sam=vase + ++ diff |~(new=_sam *vase) + ++ form *mark + ++ join |~([a=vase b=vase] *(unit (unit vase))) + ++ mash + |~ [a=[ship desk diff=vase] b=[ship desk diff=vase]] + *(unit vase) + ++ pact |~(diff=vase sam) + ++ vale |~(noun sam) + -- + :: + ++ get-fit + |= [bek=beak pre=@tas pax=@tas] + ^- (unit path) + =/ paz (segments pax) + |- ^- (unit path) + ?~ paz + ~ + =/ puz=path (snoc `path`[pre i.paz] %hoon) + =+ .^(=arch cy+[(scot %p p.bek) q.bek (scot r.bek) puz]) + ?^ fil.arch + `puz + $(paz t.paz) + :: +segments: compute all paths from :path-part, replacing some `/`s with `-`s + :: + :: For example, when passed a :path-part of 'foo-bar-baz', + :: the product will contain: + :: ``` + :: dojo> (segments 'foo-bar-baz') + :: ~[/foo-bar-baz /foo-bar/baz /foo/bar-baz /foo/bar/baz] + :: ``` + :: + ++ segments + |= suffix=@tas + ^- (list path) + =/ parser + (most hep (cook crip ;~(plug ;~(pose low nud) (star ;~(pose low nud))))) + =/ torn=(list @tas) (fall (rush suffix parser) ~[suffix]) + %- flop + |- ^- (list (list @tas)) + ?< ?=(~ torn) + ?: ?=([@ ~] torn) + ~[torn] + %- zing + %+ turn $(torn t.torn) + |= s=(list @tas) + ^- (list (list @tas)) + ?> ?=(^ s) + ~[[i.torn s] [(crip "{(trip i.torn)}-{(trip i.s)}") t.s]] + -- ::clay +:: :::: +:::: ++dill :: (1d) console + :: :::: +++ dill ^? + |% + +$ gift :: out result <-$ + $% [%blit p=(list blit)] :: terminal output + [%logo ~] :: logout + [%meld ~] :: unify memory + [%pack ~] :: compact memory + [%trim p=@ud] :: trim kernel state + [%logs =told] :: system output + [%meme p=(list quac)] :: memory report + [%quac ~] :: memory runtime + == :: + +$ task :: in request ->$ + $~ [%vega ~] :: + $% $>(%born vane-task) :: new unix process + [%boot lit=? p=*] :: weird %dill boot + [%crop p=@ud] :: trim kernel state + [%flog p=flog] :: wrapped error + [%heft ~] :: memory report + $>(%init vane-task) :: after gall ready + [%logs p=(unit ~)] :: watch system output + [%mass ~] :: run memory report + [%quac p=(list quac)] :: memory runtime + [%meld ~] :: unify memory + [%pack ~] :: compact memory + [%seat =desk] :: install desk + [%shot ses=@tas task=session-task] :: task for session + $>(%trim vane-task) :: trim state + $>(%vega vane-task) :: report upgrade + [%verb ~] :: verbose mode + [%knob tag=term level=?(%hush %soft %loud)] :: deprecated removeme + session-task :: for default session + told :: system output + == :: + :: :: + +$ session-task :: session request + $% [%belt p=belt] :: terminal input + [%blew p=blew] :: terminal config + [%flee ~] :: unwatch session + [%hail ~] :: terminal refresh + [%open p=dude:gall q=(list gill:gall)] :: setup session + [%shut ~] :: close session + [%view ~] :: watch session blits + == :: + :: :: + +$ told :: system output + $% [%crud p=@tas q=tang] :: error + [%talk p=(list tank)] :: tanks (in order) + [%text p=tape] :: tape + == :: + :: + :::: :: (1d2) + :: + +$ blew [p=@ud q=@ud] :: columns rows + +$ belt :: client input + $? bolt :: simple input + [%mod mod=?(%ctl %met %hyp) key=bolt] :: w/ modifier + [%txt p=(list @c)] :: utf32 text + ::TODO consider moving %hey, %rez, %yow here :: + == :: + +$ bolt :: simple input + $@ @c :: simple keystroke + $% [%aro p=?(%d %l %r %u)] :: arrow key + [%bac ~] :: true backspace + [%del ~] :: true delete + [%hit x=@ud y=@ud] :: mouse click + [%ret ~] :: return + == :: + +$ blit :: client output + $% [%bel ~] :: make a noise + [%clr ~] :: clear the screen + [%hop p=$@(@ud [x=@ud y=@ud])] :: set cursor col/pos + [%klr p=stub] :: put styled + [%mor p=(list blit)] :: multiple blits + [%nel ~] :: newline + [%put p=(list @c)] :: put text at cursor + [%sag p=path q=*] :: save to jamfile + [%sav p=path q=@] :: save to file + [%url p=@t] :: activate url + [%wyp ~] :: wipe cursor line + == :: + +$ dill-belt :: arvo input + $% belt :: client input + [%cru p=@tas q=(list tank)] :: errmsg (deprecated) + [%hey ~] :: refresh + [%rez p=@ud q=@ud] :: resize, cols, rows + [%yow p=gill:gall] :: connect to app + == :: + +$ dill-blit :: arvo output + $% blit :: client output + [%qit ~] :: close console + == :: + +$ flog :: sent to %dill + $% [%crop p=@ud] :: trim kernel state + $>(%crud told) :: + [%heft ~] :: + [%meld ~] :: unify memory + [%pack ~] :: compact memory + $>(%text told) :: + [%verb ~] :: verbose mode + == :: + :: :: + +$ poke :: dill to userspace + $: ses=@tas :: target session + dill-belt :: input + == :: + +$ quac :: memory report + $~ ['' 0 ~] + [name=@t size=@ud quacs=(list quac)] + -- ::dill +:: :::: +:::: ++eyre :: (1e) http-server + :: :::: +++ eyre ^? + |% + +$ cache-entry + $: auth=? + $= body + $% [%payload =simple-payload:http] + == == + +$ gift + $% :: ames responses + :: + $>(?(%boon %done) gift:ames) + :: set-config: configures the external http server + :: + :: TODO: We need to actually return a (map (unit @t) http-config) + :: so we can apply configurations on a per-site basis + :: + [%set-config =http-config] + :: sessions: valid authentication cookie strings + :: + [%sessions ses=(set @t)] + :: response: response to an event from earth + :: + [%response =http-event:http] + :: response to a %connect or %serve + :: + :: :accepted is whether :binding was valid. Duplicate bindings are + :: not allowed. + :: + [%bound accepted=? =binding] + :: notification that a cache entry has changed + :: + [%grow =path] + :: UIP-125 + :: + [%websocket-response wid=@ event=websocket-event] + == + :: + +$ task + $~ [%vega ~] + $% :: initializes ourselves with an identity + :: + $>(%init vane-task) + :: new unix process + :: + $>(%born vane-task) + :: network request + :: + $>(%plea vane-task) + :: trim state (in response to memory pressure) + :: + $>(%trim vane-task) + :: report upgrade + :: + $>(%vega vane-task) + :: notifies us of the ports of our live http servers + :: + [%live insecure=@ud secure=(unit @ud)] + :: update http configuration + :: + [%rule =http-rule] + :: set a base url for eauth, like `'https://sampel.com' + :: + :: eyre will append /~/eauth to it internally to redirect into eauth + :: + [%eauth-host host=(unit @t)] + :: starts handling an inbound http request + :: + [%request secure=? =address =request:http] + :: starts handling an backdoor http request + :: + [%request-local secure=? =address =request:http] + :: cancels a previous request + :: + [%cancel-request ~] + :: connects a binding to an app + :: + [%connect =binding app=term] + :: connects a binding to a generator + :: + [%serve =binding =generator] + :: disconnects a binding + :: + :: This must be called with the same duct that made the binding in + :: the first place. + :: + [%disconnect =binding] + :: notifies us that web login code changed + :: + [%code-changed ~] + :: start responding positively to cors requests from origin + :: + [%approve-origin =origin] + :: start responding negatively to cors requests from origin + :: + [%reject-origin =origin] + :: %spew: set verbosity toggle + :: + [%spew veb=@] + :: remember (or update) a cache mapping + :: + [%set-response url=@t entry=(unit cache-entry)] + :: UIP-125 + :: + [%websocket-event ws-id=@ event=websocket-event] + [%websocket-handshake ws-id=@ secure=? =address =request:http] + == + :: UIP-125 + +$ websocket-connection + $: app=term + =inbound-request + == + +$ websocket-message + $: opcode=@ud + message=(unit data=octs) + == + +$ websocket-event + $% [%accept ~] + [%reject ~] + [%disconnect ~] + [%message message=websocket-message] + == + :: +origin: request origin as specified in an Origin header + :: + +$ origin @torigin + :: +cors-registry: origins categorized by approval status + :: + +$ cors-registry + $: requests=(set origin) + approved=(set origin) + rejected=(set origin) + == + :: +outstanding-connection: open http connections not fully complete: + :: + :: This refers to outstanding connections where the connection to + :: outside is opened and we are currently waiting on an app to + :: produce the results. + :: + +$ outstanding-connection + $: :: action: the action that had matched + :: + =action + :: inbound-request: the original request which caused this connection + :: + =inbound-request + :: session-id: the session associated with this connection + :: identity: the identity associated with this connection + :: + ::NOTE technically the identity is associated with the session (id), + :: but we may still need to know the identity that was used + :: after the session proper expires. + :: + [session-id=@uv =identity] + :: response-header: set when we get our first %start + :: + response-header=(unit response-header:http) + :: bytes-sent: the total bytes sent in response + :: + bytes-sent=@ud + == + :: +authentication-state: state used in the login system + :: + +$ authentication-state + $: :: sessions: a mapping of session cookies to session information + :: + sessions=(map @uv session) + :: visitors: in-progress incoming eauth flows + :: + visitors=(map @uv visitor) + :: visiting: outgoing eauth state per ship + :: + visiting=(map ship logbook) + :: endpoint: hardcoded local eauth endpoint for %syn and %ack + :: + :: user-configured or auth-o-detected, with last-updated timestamp. + :: both shaped like 'prot://host' + :: + endpoint=[user=(unit @t) auth=(unit @t) =time] + == + :: +session: server side data about a session + :: + +$ session + $: :: identity: authentication level & id of this session + :: + =identity + :: expiry-time: when this session expires + :: + :: We check this server side, too, so we aren't relying on the browser + :: to properly handle cookie expiration as a security mechanism. + :: + expiry-time=@da + :: channels: channels opened by this session + :: + channels=(set @t) + :: + :: TODO: We should add a system for individual capabilities; we should + :: mint some sort of long lived cookie for mobile apps which only has + :: access to a single application path. + == + :: +visitor: completed or in-progress incoming eauth flow + :: + :: duct: boon duct + :: and + :: sesh: login completed, session exists + :: or + :: pend: awaiting %tune for %keen sent at time, for initial eauth http req + :: ship: the @p attempting to log in + :: base: local protocol+hostname the attempt started on, if any + :: last: the url to redirect to after log-in + :: toke: authentication secret received over ames or offered by visitor + :: + +$ visitor + $: duct=(unit duct) + $@ sesh=@uv + $: pend=(unit [http=duct keen=time]) + ship=ship + base=(unit @t) + last=@t + toke=(unit @uv) + == == + :: +logbook: record of outgoing eauth comms & state + :: + :: qeu: a queue of nonces for to-be-n/acked pleas + :: map: per nonce, completed or pending eauth session + :: + +$ logbook [=(qeu @uv) =(map @uv portkey)] + :: +portkey: completed or in-progress outgoing eauth flow + :: + :: made: live since + :: or + :: duct: confirm request awaiting redirect + :: toke: secret to include in redirect, unless aborting + :: + +$ portkey + $@ made=@da :: live since + $: pend=(unit duct) :: or await redir + toke=(unit @uv) :: with secret + == + :: +eauth-plea: client talking to host + :: + +$ eauth-plea + $: %0 + $% :: %open: client decided on an attempt, wants to return to url + :: %shut: client wants the attempt or session closed + :: + [%open nonce=@uv token=(unit @uv)] + [%shut nonce=@uv] + == == + :: +eauth-boon: host responding to client + :: + +$ eauth-boon + $: %0 + $% :: %okay: attempt heard, client to finish auth through url + :: %shut: host has expired the session + :: + [%okay nonce=@uv url=@t] + [%shut nonce=@uv] + == == + :: $identity: authentication method & @p + :: + +$ identity + $~ [%ours ~] + $% [%ours ~] :: local, root + [%fake who=@p] :: guest id + [%real who=@p] :: authed cross-ship + == + :: channel-state: state used in the channel system + :: + +$ channel-state + $: :: session: mapping between an arbitrary key to a channel + :: + session=(map @t channel) + :: by-duct: mapping from ducts to session key + :: + duct-to-key=(map duct @t) + == + :: +timer: a reference to a timer so we can cancel or update it. + :: + +$ timer + $: :: date: time when the timer will fire + :: + date=@da + :: duct: duct that set the timer so we can cancel + :: + =duct + == + :: channel-event: unacknowledged channel event, vaseless sign + :: + +$ channel-event + $% $>(%poke-ack sign:agent:gall) + $>(%watch-ack sign:agent:gall) + $>(%kick sign:agent:gall) + [%fact =desk =mark =noun] + == + :: channel: connection to the browser + :: + :: Channels are the main method where a webpage communicates with Gall + :: apps. Subscriptions and pokes are issues with PUT requests on a path, + :: while GET requests on that same path open a persistent EventSource + :: channel. + :: + :: The EventSource API is a sequence number based API that browser provide + :: which allow the server to push individual events to the browser over a + :: connection held open. In case of reconnection, the browser will send a + :: 'Last-Event-Id: ' header to the server; the server then resends all + :: events since then. + :: + +$ channel + $: mode=?(%json %jam) + =identity + :: channel-state: expiration time or the duct currently listening + :: + :: For each channel, there is at most one open EventSource + :: connection. A 400 is issues on duplicate attempts to connect to the + :: same channel. When an EventSource isn't connected, we set a timer + :: to reap the subscriptions. This timer shouldn't be too short + :: because the + :: + state=(each timer duct) + :: next-id: next sequence number to use + :: + next-id=@ud + :: last-ack: time of last client ack + :: + :: used for clog calculations, in combination with :unacked + :: + last-ack=@da + :: events: unacknowledged events + :: + :: We keep track of all events where we haven't received a + :: 'Last-Event-Id: ' response from the client or a per-poke {'ack': + :: ...} call. When there's an active EventSource connection on this + :: channel, we send the event but we still add it to events because we + :: can't assume it got received until we get an acknowledgment. + :: + events=(qeu [id=@ud request-id=@ud =channel-event]) + :: unacked: unacknowledged event counts by request-id + :: + :: used for clog calculations, in combination with :last-ack + :: + unacked=(map @ud @ud) + :: subscriptions: gall subscriptions by request-id + :: + :: We maintain a list of subscriptions so if a channel times out, we + :: can cancel all the subscriptions we've made. + :: + subscriptions=(map @ud [ship=@p app=term =path duc=duct]) + :: heartbeat: sse heartbeat timer + :: + heartbeat=(unit timer) + == + :: +binding: A rule to match a path. + :: + :: A +binding is a system unique mapping for a path to match. A +binding + :: must be system unique because we don't want two handlers for a path; + :: what happens if there are two different actions for [~ /]? + :: + +$ binding + $: :: site: the site to match. + :: + :: A ~ will match the Urbit's identity site (your.urbit.org). Any + :: other value will match a domain literal. + :: + site=(unit @t) + :: path: matches this prefix path + :: + :: /~myapp will match /~myapp or /~myapp/longer/path + :: + path=(list @t) + == + :: +action: the action to take when a binding matches an incoming request + :: + +$ action + $% :: dispatch to a generator + :: + [%gen =generator] + :: dispatch to an application + :: + [%app app=term] + :: internal authentication page + :: + [%authentication ~] + :: cross-ship authentication handling + :: + [%eauth ~] + :: internal logout page + :: + [%logout ~] + :: gall channel system + :: + [%channel ~] + :: gall scry endpoint + :: + [%scry ~] + :: respond with the @p the requester is authenticated as + :: + [%name ~] + :: respond with the @p of the ship serving the response + :: + [%host ~] + :: respond with the ip address of the requester + :: + [%ip ~] + :: returns data used to verify sync status between ship and network + :: in double boot protection + :: + [%boot ~] + :: responds with the @p of the galaxy of the provided ship + :: + [%sponsor ~] + :: respond with the default file not found page + :: + [%four-oh-four ~] + == + :: +generator: a generator on the local ship that handles requests + :: + :: This refers to a generator on the local ship, run with a set of + :: arguments. Since http requests are time sensitive, we require that the + :: generator be on the current ship. + :: + +$ generator + $: :: desk: desk on current ship that contains the generator + :: + =desk + :: path: path on :desk to the generator's hoon file + :: + path=(list @t) + :: args: arguments passed to the gate + :: + args=* + == + :: +http-config: full http-server configuration + :: + +$ http-config + $: :: secure: PEM-encoded RSA private key and cert or cert chain + :: + secure=(unit [key=wain cert=wain]) + :: proxy: reverse TCP proxy HTTP(s) + :: + proxy=_| + :: log: keep HTTP(s) access logs + :: + log=? + :: redirect: send 301 redirects to upgrade HTTP to HTTPS + :: + :: Note: requires certificate. + :: + redirect=? + == + :: +http-rule: update configuration + :: + +$ http-rule + $% :: %cert: set or clear certificate and keypair + :: + [%cert cert=(unit [key=wain cert=wain])] + :: %turf: add remove or reset established dns binding + :: + $: %turf + $= action + $% [%put =turf] + [%del =turf] + [%new turfs=(set turf)] + == == == + :: +address: client IP address + :: + +$ address + $% [%ipv4 @if] + [%ipv6 @is] + :: [%ames @p] + == + :: +inbound-request: +http-request and metadata + :: + +$ inbound-request + $: :: authenticated: has a valid session cookie + :: + authenticated=? + :: secure: whether this request was encrypted (https) + :: + secure=? + :: address: the source address of this request + :: + =address + :: request: the http-request itself + :: + =request:http + == + :: + +$ cred :: credential + $: hut=hart :: client host + aut=(jug @tas @t) :: client identities + orx=oryx :: CSRF secret + acl=(unit @t) :: accept-language + cip=(each @if @is) :: client IP + cum=(map @tas *) :: custom dirt + == :: + +$ epic :: FCGI parameters + $: qix=(map @t @t) :: query + ced=cred :: client credentials + bem=beam :: original path + == :: + :: + +$ hart [p=? q=(unit @ud) r=host] :: http sec+port+host + +$ hate [p=purl q=@p r=moth] :: semi-cooked request + +$ hiss [p=purl q=moth] :: outbound request + +$ host (each turf @if) :: http host + +$ hoke %+ each [%localhost ~] :: local host + ?(%.0.0.0.0 %.127.0.0.1) :: + +$ httq :: raw http request + $: p=meth :: method + q=@t :: unparsed url + r=(list [p=@t q=@t]) :: headers + s=(unit octs) :: body + == :: + +$ httr [p=@ud q=mess r=(unit octs)] :: raw http response + +$ math (map @t (list @t)) :: semiparsed headers + +$ mess (list [p=@t q=@t]) :: raw http headers + +$ meth :: http methods + $? %conn :: CONNECT + %delt :: DELETE + %get :: GET + %head :: HEAD + %opts :: OPTIONS + %post :: POST + %put :: PUT + %trac :: TRACE + == :: + +$ moth [p=meth q=math r=(unit octs)] :: http operation + +$ oryx @t :: CSRF secret + +$ pork [p=(unit @ta) q=(list @t)] :: fully parsed url + :: +prox: proxy notification + :: + :: Used on both the proxy (ward) and upstream sides for + :: sending/receiving proxied-request notifications. + :: + +$ prox + $: :: por: tcp port + :: + por=@ud + :: sek: secure? + :: + sek=? + :: non: authentication nonce + :: + non=@uvJ + == + +$ purf (pair purl (unit @t)) :: url with fragment + +$ purl [p=hart q=pork r=quay] :: parsed url + +$ quay (list [p=@t q=@t]) :: parsed url query + ++ quer |-($@(~ [p=@t q=@t t=$])) :: query tree + +$ quri :: request-uri + $% [%& p=purl] :: absolute + [%| p=pork q=quay] :: relative + == :: + :: +reserved: check if an ipv4 address is in a reserved range + :: + ++ reserved + |= a=@if + ^- ? + =/ b (flop (rip 3 a)) + :: 0.0.0.0/8 (software) + :: + ?. ?=([@ @ @ @ ~] b) & + ?| :: 10.0.0.0/8 (private) + :: + =(10 i.b) + :: 100.64.0.0/10 (carrier-grade NAT) + :: + &(=(100 i.b) (gte i.t.b 64) (lte i.t.b 127)) + :: 127.0.0.0/8 (localhost) + :: + =(127 i.b) + :: 169.254.0.0/16 (link-local) + :: + &(=(169 i.b) =(254 i.t.b)) + :: 172.16.0.0/12 (private) + :: + &(=(172 i.b) (gte i.t.b 16) (lte i.t.b 31)) + :: 192.0.0.0/24 (protocol assignment) + :: + &(=(192 i.b) =(0 i.t.b) =(0 i.t.t.b)) + :: 192.0.2.0/24 (documentation) + :: + &(=(192 i.b) =(0 i.t.b) =(2 i.t.t.b)) + :: 192.18.0.0/15 (reserved, benchmark) + :: + &(=(192 i.b) |(=(18 i.t.b) =(19 i.t.b))) + :: 192.51.100.0/24 (documentation) + :: + &(=(192 i.b) =(51 i.t.b) =(100 i.t.t.b)) + :: 192.88.99.0/24 (reserved, ex-anycast) + :: + &(=(192 i.b) =(88 i.t.b) =(99 i.t.t.b)) + :: 192.168.0.0/16 (private) + :: + &(=(192 i.b) =(168 i.t.b)) + :: 203.0.113/24 (documentation) + :: + &(=(203 i.b) =(0 i.t.b) =(113 i.t.t.b)) + :: 224.0.0.0/8 (multicast) + :: 240.0.0.0/4 (reserved, future) + :: 255.255.255.255/32 (broadcast) + :: + (gte i.b 224) + == + :: +ipa: parse ip address + :: + ++ ipa + ;~(pose (stag %ipv4 ip4) (stag %ipv6 ip6)) + :: +ip4: parse ipv4 address + :: + ++ ip4 + =+ byt=(ape:ag ted:ab) + (bass 256 ;~(plug byt (stun [3 3] ;~(pfix dot byt)))) + :: +ip6: parse ipv6 address + :: + ++ ip6 + %+ bass 0x1.0000 + %+ sear + |= hexts=(list $@(@ [~ %zeros])) + ^- (unit (list @)) + :: not every list of hextets is an ipv6 address + :: + =/ legit=? + =+ l=(lent hexts) + =+ c=|=(a=* ?=([~ %zeros] a)) + ?| &((lth l 8) ?=([* ~] (skim hexts c))) + &(=(8 l) !(lien hexts c)) + == + ?. legit ~ + %- some + :: expand zeros + :: + %- zing + %+ turn hexts + |= hext=$@(@ [~ %zeros]) + ?@ hext [hext]~ + (reap (sub 9 (lent hexts)) 0) + :: parse hextets, producing cell for shorthand zeroes + :: + |^ %+ cook + |= [a=(list @) b=(list [~ %zeros]) c=(list @)] + :(welp a b c) + ;~ plug + (more col het) + (stun [0 1] cel) + (more col het) + == + ++ cel (cold `%zeros ;~(plug col col)) + ++ het (bass 16 (stun [1 4] six:ab)) + -- + :: + +$ rout [p=(list host) q=path r=oryx s=path] :: http route (new) + +$ user knot :: username + :: + :: Boot response + :: + +$ boot + $: %1 + sponsor=ship + =rift + =life + bone=(unit @udbone) + last-acked=(unit @udmessagenum) + == + -- ::eyre +:: :::: +:::: ++gall :: (1g) extensions + :: :::: +++ gall ^? + |% + +$ gift :: outgoing result + $% [%boon payload=*] :: ames response + [%noon id=* payload=*] + [%done error=(unit error:ames)] :: ames message (n)ack + [%flub ~] :: not ready to handle plea + [%unto p=unto] :: + == :: + +$ task :: incoming request + $~ [%vega ~] :: + $% [%clog id=*] :: clog notification + [%deal p=sack q=term r=deal] :: full transmission + [%sear =ship] :: clear pending queues + [%jolt =desk =dude] :: (re)start agent + [%idle =dude] :: suspend agent + [%load =load] :: load agent + [%nuke =dude] :: delete agent + [%doff dude=(unit dude) ship=(unit ship)] :: kill subscriptions + [%rake dude=(unit dude) all=?] :: reclaim old subs + [%lave subs=(list [?(%g %a) ship dude duct])] :: delete stale bitt(s) + $>(%init vane-task) :: set owner + $>(%trim vane-task) :: trim state + $>(%vega vane-task) :: report upgrade + $>(%plea vane-task) :: network request + [%spew veb=(list verb)] :: set verbosity + [%sift dudes=(list dude)] :: per agent + == :: + +$ bitt (map duct (pair ship path)) :: incoming subs + +$ boat (map [=wire =ship =term] [acked=? =path]) :: outgoing subs + +$ boar (map [=wire =ship =term] nonce=@) :: and their nonces + :: + +$ fans ((mop @ud (pair @da (each page @uvI))) lte) + +$ plot + $: bob=(unit @ud) + fan=fans + == + +$ stats :: statistics + $: change=@ud :: processed move count + eny=@uvJ :: entropy + time=@da :: current event time + == + +$ hutch [rev=@ud idx=@ud key=@] + :: + +$ farm + $+ farm + $~ [%plot ~ ~] + $% [%coop p=hutch q=(map path plot)] + [%plot p=(unit plot) q=(map @ta farm)] + == + :: + +$ egg :: migratory agent state + $% [%nuke sky=(map spur @ud) cop=(map coop hutch)] :: see /sys/gall $yoke + $: %live + control-duct=duct + run-nonce=@t + sub-nonce=@ + =stats + =bitt + =boat + =boar + code=~ + old-state=[%| vase] + =beak + marks=(map duct mark) + sky=farm + ken=(jug spar:ames wire) + pen=(jug spar:ames wire) + gem=(jug coop [path page]) + == == + +$ egg-any $%([%15 egg-15] [%16 egg]) + +$ egg-15 + $% [%nuke sky=(map spur @ud)] + $: %live + control-duct=duct + run-nonce=@t + sub-nonce=@ + =stats + =bitt + =boat + =boar + code=~ + old-state=[%| vase] + =beak + marks=(map duct mark) + sky=(map spur plot) + ken=(jug spar:ames wire) + == == + :: + +$ bowl :: standard app state + $+ gall-agent-bowl :: + $: $: our=ship :: host + src=ship :: guest + dap=term :: agent + sap=path :: provenance + == :: + $: wex=boat :: outgoing subs + sup=bitt :: incoming subs + sky=(map path fans) :: scry bindings + == :: + $: act=@ud :: change number + eny=@uvJ :: entropy + now=@da :: current time + byk=beak :: load source + == == :: :: + +$ dude term :: server identity + +$ gill (pair ship term) :: general contact + +$ load (list [=dude =beak =agent]) :: loadout + +$ scar :: opaque duct + $: p=@ud :: bone sequence + q=(map duct bone) :: by duct + r=(map bone duct) :: by bone + == :: + +$ suss (trel dude @tas @da) :: config report + +$ well (pair desk term) :: + +$ deal + $% [%raw-poke =mark =noun] + task:agent + == + +$ unto + $% [%raw-fact =mark =noun] + sign:agent + == + :: TODO: add more flags? + :: + +$ verb ?(%odd) + +$ coop spur + :: + :: +agent: app core + :: + ++ agent + =< form + |% + +$ step (quip card form) + +$ card + $+ gall-agent-card + (wind note gift) + +$ note + $+ gall-agent-note + $% [%agent [=ship name=term] =task] + [%arvo note-arvo] + [%pyre =tang] + :: + [%grow =spur =page] + [%tomb =case =spur] + [%cull =case =spur] + :: + [%tend =coop =path =page] + [%germ =coop] + [%snip =coop] + :: + [%keen secret=? spar:ames] + == + +$ task + $+ gall-agent-task + $% [%watch =path] + [%watch-as =mark =path] + [%leave ~] + [%poke =cage] + [%poke-as =mark =cage] + == + +$ gift + $+ gall-agent-gift + $% [%fact paths=(list path) =cage] + [%kick paths=(list path) ship=(unit ship)] + [%watch-ack p=(unit tang)] + [%poke-ack p=(unit tang)] + == + +$ sign + $+ gall-agent-sign + $% [%poke-ack p=(unit tang)] + [%watch-ack p=(unit tang)] + [%fact =cage] + [%kick ~] + == + ++ form + $_ ^| + |_ bowl + ++ on-init + *(quip card _^|(..on-init)) + :: + ++ on-save + *vase + :: + ++ on-load + |~ old-state=vase + *(quip card _^|(..on-init)) + :: + ++ on-poke + |~ [mark vase] + *(quip card _^|(..on-init)) + :: + ++ on-watch + |~ path + *(quip card _^|(..on-init)) + :: + ++ on-leave + |~ path + *(quip card _^|(..on-init)) + :: + ++ on-peek + |~ path + *(unit (unit cage)) + :: + ++ on-agent + |~ [wire sign] + *(quip card _^|(..on-init)) + :: + ++ on-arvo + |~ [wire sign-arvo] + *(quip card _^|(..on-init)) + :: + ++ on-fail + |~ [term tang] + *(quip card _^|(..on-init)) + -- + -- + -- ::gall +:: %iris http-client interface +:: +++ iris ^? + |% + :: +gift: effects the client can emit + :: + +$ gift + $% :: %request: outbound http-request to earth + :: + :: TODO: id is sort of wrong for this interface; the duct should + :: be enough to identify which request we're talking about? + :: + [%request id=@ud request=request:http] + :: %cancel-request: tell earth to cancel a previous %request + :: + [%cancel-request id=@ud] + :: %response: response to the caller + :: + [%http-response =client-response] + :: UIP-125 + :: + [%websocket-handshake id=@ud url=@t] + [%websocket-response id=@ud websocket-event:eyre] + == + :: + +$ task + $~ [%vega ~] + $% :: system started up; reset open connections + :: + $>(%born vane-task) + :: trim state (in response to memory pressure) + :: + $>(%trim vane-task) + :: report upgrade + :: + $>(%vega vane-task) + :: fetches a remote resource + :: + [%request =request:http =outbound-config] + :: cancels a previous fetch + :: + [%cancel-request ~] + :: receives http data from outside + :: + [%receive id=@ud =http-event:http] + :: UIP-125 + :: + [%websocket-connect app=term url=@t] + :: receives websocket event from earth + :: + [%websocket-event id=@ud event=websocket-event:eyre] + == + :: UIP-125 + :: + +$ websocket-connection + $: app=term + =duct + id=@ud + url=@t + status=?(%pending %accepted) + == + :: +client-response: one or more client responses given to the caller + :: + +$ client-response + $% :: periodically sent as an update on the duct that sent %fetch + :: + $: %progress + :: http-response-header: full transaction header + :: + :: In case of a redirect chain, this is the target of the + :: final redirect. + :: + =response-header:http + :: bytes-read: bytes fetched so far + :: + bytes-read=@ud + :: expected-size: the total size if response had a content-length + :: + expected-size=(unit @ud) + :: incremental: data received since the last %http-progress + :: + incremental=(unit octs) + == + :: final response of a download, parsed as mime-data if successful + :: + [%finished =response-header:http full-file=(unit mime-data)] + :: canceled by the runtime system + :: + [%cancel ~] + == + :: mime-data: externally received but unvalidated mimed data + :: + +$ mime-data + [type=@t data=octs] + :: +outbound-config: configuration for outbound http requests + :: + +$ outbound-config + $: :: number of times to follow a 300 redirect before erroring + :: + :: Common values for this will be 3 (the limit most browsers use), 5 + :: (the limit recommended by the http standard), or 0 (let the + :: requester deal with 300 redirects). + :: + redirects=_5 + :: number of times to retry before failing + :: + :: When we retry, we'll automatically try to use the 'Range' header + :: to resume the download where we left off if we have the + :: 'Accept-Range: bytes' in the original response. + :: + retries=_3 + == + :: +to-httr: adapts to old eyre interface + :: + ++ to-httr + |= [header=response-header:http full-file=(unit mime-data)] + ^- httr:eyre + :: + =/ data=(unit octs) + ?~(full-file ~ `data.u.full-file) + :: + [status-code.header headers.header data] + -- +:: :::: +:::: ++jael :: (1h) security + :: :::: +++ jael ^? + |% + +$ public-keys-result + $% [%full points=(map ship point)] + [%diff who=ship =diff:point] + [%breach who=ship] + == + :: :: + +$ gift :: out result <-$ + $% [%done error=(unit error:ames)] :: ames message (n)ack + [%boon payload=*] :: ames response + [%private-keys =life vein=(map life ring)] :: private keys + [%public-keys =public-keys-result] :: ethereum changes + [%turf turf=(list turf)] :: domains + == :: + :: +feed: potential boot parameters + :: + +$ feed + $^ $% [[%1 ~] who=ship kyz=(list [lyf=life key=ring])] + [[%2 ~] who=ship ryf=rift kyz=(list [lyf=life key=ring])] + == + seed + +$ seed [who=ship lyf=life key=ring sig=(unit oath:pki)] + :: + +$ task :: in request ->$ + $~ [%vega ~] :: + $% [%dawn dawn-event] :: boot from keys + [%fake =ship] :: fake boot + [%listen whos=(set ship) =source] :: set ethereum source + ::TODO %next for generating/putting new private key + [%meet =ship =life =pass] :: met after breach + [%moon =ship =udiff:point] :: register moon keys + [%nuke whos=(set ship)] :: cancel tracker from + [%private-keys ~] :: sub to privates + [%public-keys ships=(set ship)] :: sub to publics + [%rekey =life =ring] :: update private keys + [%resend ~] :: resend private key + [%ruin ships=(set ship)] :: pretend breach + $>(%trim vane-task) :: trim state + [%turf ~] :: view domains + $>(%vega vane-task) :: report upgrade + $>(%plea vane-task) :: ames request + [%step ~] :: reset web login code + == :: + :: + +$ dawn-event + $: =feed + spon=(list [=ship point:azimuth-types]) + czar=(map ship [=rift =life =pass]) + turf=(list turf) + bloq=@ud + node=(unit purl:eyre) + == + :: + ++ block + =< block + |% + +$ hash @uxblockhash + +$ number @udblocknumber + +$ id [=hash =number] + +$ block [=id =parent=hash] + -- + :: + :: Azimuth points form a groupoid, where the objects are all the + :: possible values of +point and the arrows are the possible values + :: of (list point-diff). Composition of arrows is concatenation, + :: and you can apply the diffs to a +point with +apply. + :: + :: It's simplest to consider +point as the coproduct of three + :: groupoids, Rift, Keys, and Sponsor. Recall that the coproduct + :: of monoids is the free monoid (Kleene star) of the coproduct of + :: the underlying sets of the monoids. The construction for + :: groupoids is similar. Thus, the objects of the coproduct are + :: the product of the objects of the underlying groupoids. The + :: arrows are a list of a sum of the diff types of the underlying + :: groupoids. Given an arrow=(list diff), you can project to the + :: underlying arrows with +skim filtering on the head of each diff. + :: + :: The identity element is ~. Clearly, composing this with any + :: +diff gives the original +diff. Since this is a category, + :: +compose must be associative (true, because concatenation is + :: associative). This is a groupoid, so we must further have that + :: every +point-diff has an inverse. These are given by the + :: +inverse operation. + :: + ++ point + =< point + |% + +$ point + $: =rift + =life + keys=(map life [crypto-suite=@ud =pass]) + sponsor=(unit @p) + == + :: + +$ key-update [=life crypto-suite=@ud =pass] + :: + :: Invertible diffs + :: + +$ diffs (list diff) + +$ diff + $% [%rift from=rift to=rift] + [%keys from=key-update to=key-update] + [%spon from=(unit @p) to=(unit @p)] + == + :: + :: Non-invertible diffs + :: + +$ udiffs (list [=ship =udiff]) + +$ udiff + $: =id:block + $% [%rift =rift boot=?] + [%keys key-update boot=?] + [%spon sponsor=(unit @p)] + [%disavow ~] + == == + :: + ++ udiff-to-diff + |= [=a=udiff =a=point] + ^- (unit diff) + ?- +<.a-udiff + %disavow ~|(%udiff-to-diff-disavow !!) + %spon `[%spon sponsor.a-point sponsor.a-udiff] + %rift + ?. (gth rift.a-udiff rift.a-point) + ~ + ~? &(!=(rift.a-udiff +(rift.a-point)) !boot.a-udiff) + [%udiff-to-diff-skipped-rift a-udiff a-point] + `[%rift rift.a-point rift.a-udiff] + :: + %keys + ?. (gth life.a-udiff life.a-point) + ~ + ~? &(!=(life.a-udiff +(life.a-point)) !boot.a-udiff) + [%udiff-to-diff-skipped-life a-udiff a-point] + :^ ~ %keys + [life.a-point (~(gut by keys.a-point) life.a-point *[@ud pass])] + [life crypto-suite pass]:a-udiff + == + :: + ++ inverse + |= diffs=(list diff) + ^- (list diff) + %- flop + %+ turn diffs + |= =diff + ^- ^diff + ?- -.diff + %rift [%rift to from]:diff + %keys [%keys to from]:diff + %spon [%spon to from]:diff + == + :: + ++ compose + (bake weld ,[(list diff) (list diff)]) + :: + ++ apply + |= [diffs=(list diff) =a=point] + (roll diffs (apply-diff a-point)) + :: + ++ apply-diff + |= a=point + |: [*=diff a-point=a] + ^- point + ?- -.diff + %rift + ?> =(rift.a-point from.diff) + a-point(rift to.diff) + :: + %keys + ?> =(life.a-point life.from.diff) + ?> =((~(get by keys.a-point) life.a-point) `+.from.diff) + %_ a-point + life life.to.diff + keys (~(put by keys.a-point) life.to.diff +.to.diff) + == + :: + %spon + ?> =(sponsor.a-point from.diff) + a-point(sponsor to.diff) + == + -- + :: :: + :::: :: + :: :: + +$ source (each ship term) + +$ source-id @udsourceid + :: + :: +state-eth-node: state of a connection to an ethereum node + :: + +$ state-eth-node :: node config + meta + $: top-source-id=source-id + sources=(map source-id source) + sources-reverse=(map source source-id) + default-source=source-id + ship-sources=(map ship source-id) + ship-sources-reverse=(jug source-id ship) + == :: + :: :: + :::: ++pki:jael :: (1h2) certificates + :: :::: + ++ pki ^? + |% + ::TODO update to fit azimuth-style keys + :: the urbit meta-certificate (++will) is a sequence + :: of certificates (++cert). each cert in a will + :: revokes and replaces the previous cert. the + :: version number of a ship is a ++life. + :: + :: the deed contains an ++arms, a definition + :: of cosmetic identity; a semi-trusted parent, + :: which signs the initial certificate and provides + :: routing services; and a dirty bit. if the dirty + :: bit is set, the new life of this ship may have + :: lost information that the old life had. + :: + +$ hand @uvH :: 128-bit hash + +$ mind [who=ship lyf=life] :: key identifier + +$ name (pair @ta @t) :: ascii / unicode + +$ oath @ :: signature + ++ tale :: urbit-signed * + |$ [typ] :: payload mold + $: dat=typ :: data + syg=(map ship (pair life oath)) :: signatures + == :: + -- :: pki + -- :: jael +:: :::: +:::: ++khan :: (1i) threads + :: :::: +++ khan ^? + |% + +$ gift :: out result <-$ + $% [%arow p=(avow cage)] :: in-arvo result + [%avow p=(avow page)] :: external result + == :: + +$ task :: in request ->$ + $~ [%vega ~] :: + $% $>(%born vane-task) :: new unix process + [%done ~] :: socket closed + :: TODO mark ignored :: + :: :: + [%fard p=(fyrd cage)] :: in-arvo thread + [%fyrd p=(fyrd cast)] :: external thread + [%lard =bear =shed] :: inline thread + $>(%trim vane-task) :: trim state + $>(%vega vane-task) :: report upgrade + == :: + :: :: + ++ avow |$ [a] (each a goof) :: $fyrd result + +$ bear $@(desk beak) :: partial $beak + +$ cast (pair mark page) :: output mark + input + ++ fyrd |$ [a] [=bear name=term args=a] :: thread run request + :: :: + +$ shed _*form:(strand:rand ,vase) :: compute vase + -- ::khan +:: :::: +:::: ++lick :: (1j) IPC + :: :::: +++ lick ^? + |% + +$ gift :: out result <-$ + $% [%spin =name] :: open an IPC port + [%shut =name] :: close an IPC port + [%spit =name =mark =noun] :: spit a noun to the IPC port + [%soak =name =mark =noun] :: soak a noun from the IPC port + == + +$ task :: in request ->$ + $~ [%vega ~] :: + $% $>(%born vane-task) :: new unix process + $>(%trim vane-task) :: trim state + $>(%vega vane-task) :: report upgrade + [%spin =name] :: open an IPC port + [%shut =name] :: close an IPC port + [%spit =name =mark =noun] :: spit a noun to the IPC port + [%soak =name =mark =noun] :: soak a noun from the IPC port + == + :: + +$ name path + -- ::lick +:: +++ rand :: computation + |% + +$ card card:agent:gall + +$ input + $+ input + $% [%poke =cage] + [%sign =wire =sign-arvo] + [%agent =wire =sign:agent:gall] + [%watch =path] + == + +$ error (pair term $+(tang tang)) + +$ strand-input + $+ strand-input + [=bowl in=(unit input)] + +$ tid @tatid + +$ bowl + $+ strand-bowl + $: our=ship + src=ship + tid=tid + mom=(unit tid) + wex=boat:gall + sup=bitt:gall + eny=@uvJ + now=@da + byk=beak + == + :: + :: cards: cards to send immediately. These will go out even if a + :: later stage of the computation fails, so they shouldn't have + :: any semantic effect on the rest of the system. + :: Alternately, they may record an entry in contracts with + :: enough information to undo the effect if the computation + :: fails. + :: wait: don't move on, stay here. The next sign should come back + :: to this same callback. + :: skip: didn't expect this input; drop it down to be handled + :: elsewhere + :: cont: continue computation with new callback. + :: fail: abort computation; don't send effects + :: done: finish computation; send effects + :: + ++ strand-output-raw + |* a=mold + $+ strand-output-raw + $~ [~ %done *a] + $: cards=(list card) + $= next + $% [%wait ~] + [%skip ~] + [%cont self=(strand-form-raw a)] + [%fail err=error] + [%done value=a] + == + == + :: + ++ strand-form-raw + |* a=mold + $+ strand-form-raw + $-(strand-input (strand-output-raw a)) + :: + :: Abort strand computation with error message + :: + ++ strand-fail + |= =error + |= strand-input + [~ %fail error] + :: + :: Asynchronous transcaction monad. + :: + :: Combo of four monads: + :: - Reader on input + :: - Writer on card + :: - Continuation + :: - Exception + :: + ++ strand + |* a=mold + |% + ++ output $+(output (strand-output-raw a)) + :: + :: Type of an strand computation. + :: + ++ form $+(form (strand-form-raw a)) + :: + :: Monadic pure. Identity computation for bind. + :: + ++ pure + |= arg=a + ^- form + |= strand-input + [~ %done arg] + :: + :: Monadic bind. Combines two computations, associatively. + :: + ++ bind + |* b=mold + |= [m-b=(strand-form-raw b) fun=$-(b form)] + ^- form + |= input=strand-input + =/ b-res=(strand-output-raw b) + (m-b input) + ^- output + :- cards.b-res + ?- -.next.b-res + %wait [%wait ~] + %skip [%skip ~] + %cont [%cont ..$(m-b self.next.b-res)] + %fail [%fail err.next.b-res] + %done [%cont (fun value.next.b-res)] + == + :: + :: The strand monad must be evaluted in a particular way to maintain + :: its monadic character. +take:eval implements this. + :: + ++ eval + |% + :: Indelible state of a strand + :: + +$ eval-form + $: =form + == + :: + :: Convert initial form to eval-form + :: + ++ from-form + |= =form + ^- eval-form + form + :: + :: The cases of results of +take + :: + +$ eval-result + $% [%next ~] + [%fail err=(pair term tang)] + [%done value=a] + == + :: + ++ validate-mark + |= [in=* =mark =bowl] + ^- cage + =+ .^ =dais:clay %cb + /(scot %p our.bowl)/[q.byk.bowl]/(scot %da now.bowl)/[mark] + == + =/ res (mule |.((vale.dais in))) + ?: ?=(%| -.res) + ~| %spider-mark-fail + (mean leaf+"spider: ames vale fail {}" p.res) + [mark p.res] + :: + :: Take a new sign and run the strand against it + :: + ++ take + :: cards: accumulate throughout recursion the cards to be + :: produced now + =| cards=(list card) + |= [=eval-form =strand-input] + ^- [[(list card) =eval-result] _eval-form] + =* take-loop $ + =. in.strand-input + ?~ in.strand-input ~ + =/ in u.in.strand-input + ?. ?=(%agent -.in) `in + ?. ?=(%fact -.sign.in) `in + ?: ?=(%thread-done p.cage.sign.in) `in + :: + :- ~ + :^ %agent wire.in %fact + (validate-mark q.q.cage.sign.in p.cage.sign.in bowl.strand-input) + :: run the strand callback + :: + =/ =output (form.eval-form strand-input) + :: add cards to cards + :: + =. cards + %+ welp + cards + :: XX add tag to wires? + cards.output + :: case-wise handle next steps + :: + ?- -.next.output + %wait [[cards %next ~] eval-form] + %skip [[cards %next ~] eval-form] + %fail [[cards %fail err.next.output] eval-form] + %done [[cards %done value.next.output] eval-form] + %cont + :: recurse to run continuation with initialization input + :: + %_ take-loop + form.eval-form self.next.output + strand-input [bowl.strand-input ~] + == + == + -- + -- + -- ::strand +:: ++$ gift-arvo :: out result <-$ + $~ [%doze ~] + $% gift:ames + gift:behn + gift:clay + gift:dill + gift:eyre + gift:gall + gift:iris + gift:jael + gift:khan + gift:lick + == ++$ task-arvo :: in request ->$ + $% task:ames + task:clay + task:behn + task:dill + task:eyre + task:gall + task:iris + task:jael + task:khan + task:lick + == ++$ note-arvo :: out request $-> + $~ [%b %wake ~] + $% [%a task:ames] + [%b task:behn] + [%c task:clay] + [%d task:dill] + [%e task:eyre] + [%g task:gall] + [%i task:iris] + [%j task:jael] + [%k task:khan] + [%l task:lick] + [%$ %whiz ~] + [@tas %meta vase] + == +:: full vane names are required in vanes +:: ++$ sign-arvo :: in result $<- + $% [%ames gift:ames] + $: %behn + $% gift:behn + $>(%wris gift:clay) + $>(%writ gift:clay) + $>(%mere gift:clay) + $>(%unto gift:gall) + == + == + [%clay gift:clay] + [%dill gift:dill] + [%eyre gift:eyre] + [%gall gift:gall] + [%iris gift:iris] + [%jael gift:jael] + [%khan gift:khan] + [%lick gift:lick] + == +:: $unix-task: input from unix +:: ++$ unix-task :: input from unix + $~ [%wake ~] + $% :: %dill: keyboard input + :: + $>(%belt task:dill) + :: %dill: configure terminal (resized) + :: + $>(%blew task:dill) + :: %clay: new process + :: + $>(%boat task:clay) + :: %behn/%eyre/%iris: new process + :: + $>(%born vane-task) + :: %eyre: cancel request + :: + [%cancel-request ~] + :: %dill: reset terminal configuration + :: + $>(%hail task:dill) + :: %ames: hear packet + :: + $>(?(%hear %heer) task:ames) + :: %clay: external edit + :: + $>(%into task:clay) + :: %clay: synchronous commit + :: + :: TODO: make $yuki an option for %into? + :: + $>(%park task:clay) + :: %clay: load blob store + :: + $>(%prep task:clay) + :: %clay: set essential desk + :: + $>(%esse task:clay) + :: %eyre: learn ports of live http servers + :: + $>(%live task:eyre) + :: %iris: hear (partial) http response + :: + $>(%receive task:iris) + :: %eyre: starts handling an inbound http request + :: + $>(%request task:eyre) + :: %eyre: starts handling an backdoor http request + :: + $>(%request-local task:eyre) + :: %dill: close session + :: + $>(%shut task:dill) + :: %behn: wakeup + :: + $>(%wake task:behn) + == +-- :: diff --git a/vere/.gitignore b/vere/.gitignore new file mode 100644 index 0000000..69db695 --- /dev/null +++ b/vere/.gitignore @@ -0,0 +1,289 @@ +# IDEs. +/.vscode +/.idea + +# Bazel. +/.user.bazelrc +/bazel-* +/urbit +MODULE.bazel +MODULE.bazel.lock + +# Zig +**/.zig-cache +**/zig-out + +# clangd +**/.cache +compile_commands.json + +# Swap files. +*.swo +*.swp + +# Tags +.tags +.etags +TAGS +TAGS* +GPATH +GRTAGS +GTAGS + +# Fake ships. +/zod +/nec +/bud +/wes +/sev +/per +/sut +/let +/ful +/pen +/syt +/dur +/wep +/ser +/wyl +/sun +/ryp +/syx +/dyr +/nup +/heb +/peg +/lup +/dep +/dys +/put +/lug +/hec +/ryt +/tyv +/syd +/nex +/lun +/mep +/lut +/sep +/pes +/del +/sul +/ped +/tem +/led +/tul +/met +/wen +/byn +/hex +/feb +/pyl +/dul +/het +/mev +/rut +/tyl +/wyd +/tep +/bes +/dex +/sef +/wyc +/bur +/der +/nep +/pur +/rys +/reb +/den +/nut +/sub +/pet +/rul +/syn +/reg +/tyd +/sup +/sem +/wyn +/rec +/meg +/net +/sec +/mul +/nym +/tev +/web +/sum +/mut +/nyx +/rex +/teb +/fus +/hep +/ben +/mus +/wyx +/sym +/sel +/ruc +/dec +/wex +/syr +/wet +/dyl +/myn +/mes +/det +/bet +/bel +/tux +/tug +/myr +/pel +/syp +/ter +/meb +/set +/dut +/deg +/tex +/sur +/fel +/tud +/nux +/rux +/ren +/wyt +/nub +/med +/lyt +/dus +/neb +/rum +/tyn +/seg +/lyx +/pun +/res +/red +/fun +/rev +/ref +/mec +/ted +/rus +/bex +/leb +/dux +/ryn +/num +/pyx +/ryg +/ryx +/fep +/tyr +/tus +/tyc +/leg +/nem +/fer +/mer +/ten +/lus +/nus +/syl +/tec +/mex +/pub +/rym +/tuc +/fyl +/lep +/deb +/ber +/mug +/hut +/tun +/byl +/sud +/pem +/dev +/lur +/def +/bus +/bep +/run +/mel +/pex +/dyt +/byt +/typ +/lev +/myl +/wed +/duc +/fur +/fex +/nul +/luc +/len +/ner +/lex +/rup +/ned +/lec +/ryd +/lyd +/fen +/wel +/nyd +/hus +/rel +/rud +/nes +/hes +/fet +/des +/ret +/dun +/ler +/nyr +/seb +/hul +/ryl +/lud +/rem +/lys +/fyn +/wer +/ryc +/sug +/nys +/nyl +/lyn +/dyn +/dem +/lux +/fed +/sed +/bec +/mun +/lyr +/tes +/mud +/nyt +/byr +/sen +/weg +/fyr +/mur +/tel +/rep +/teg +/pec +/nel +/nev +/fes diff --git a/vere/CONTRIBUTING.md b/vere/CONTRIBUTING.md new file mode 100644 index 0000000..e2738b8 --- /dev/null +++ b/vere/CONTRIBUTING.md @@ -0,0 +1,173 @@ +# Contributing + +## Workflow + +Before beginning any unit of work, you should ensure you have a GitHub issue +detailing the scope of the work. This could be an issue someone else filed and +has been assigned to you (or you've assigned to yourself) or a new issue you +filed specifically for this unit of work. As much as possible, discussion of the +work should take place in the issue. When this is not possible, please update +the issue with relevant details from any offline conversations. Each issue +should provide a clear and thorough history of the work from inception to +completion. + +### Branch Names + +Every branch that you intend to put up for review must adhere to the form +`i//<...>`, where `` is the number of the issue that the branch corresponds +to and `<...>` is an optional short description of the branch to aid in +readability. If `<...>` is omitted, the `/` should be omitted as well, which +makes `i/` a well-formed branch name. + +### Commits + +Commit messages should be written in an imperative style and include a mandatory +short description and optional long description. + +``` +Require a short description + +Optionally add a long description. +``` + +### Pull Requests and Merges + +When your work is ready for review, open a pull request, making sure to link +to the tracking issue in the description, which should be formatted as follows +(where `` is the number of this work's tracking issue): + +``` +### Description + +Resolves #. + +Thoroughly describe the changes made. + +### Related + +Reference any related issues, links, papers, etc. here. +``` + +Tests will run automatically via GitHub Actions when you open a pull request or +push new commits to an existing pull request. + +With current github permissions, a PR is merge-ready after a single approval +from any member of @urbit/runtime. Although anyone can hit the merge button, +defer to the PR author to merge unless it's an urgent hotfix that needs to be +merged ASAP. + +Once you've collected and addressed feedback and are ready to merge, merge the +pull request. Use the default commit message which should default to your PR +title and description. Assuming that you properly included the "Resolves #N." +directive in the pull request description, merging will automatically close the +tracking issue associated with the pull request. + + +## Development Environment + +Although you likely have an identity on the live network, developing on the live +network is high-risk and largely unnecessary. Instead, standard practice is to +work on a fake ship. Fake ships use deterministic keys derived from the ship's +address, don't communicate on the live network, and can communicate with other +fake ships over the local loopback. + +### Boot a New Fake Ship + +To boot a new fake ship, pass the `-F` flag and a valid Urbit ship name to +`urbit`: + +```console +$ bazel build :urbit +$ ln -s bazel-bin/pkg/vere/urbit urbit +$ ./urbit -F +``` + +By default, booting a fake ship will use the same pre-compiled kernelspace-- +a "pill"-- that livenet ships use, which leads to a non-trivial boot time on the +order of tens of minutes. However, using a development specific pill-- a "solid" +pill-- the time to boot a new fake ship can be reduced to a few minutes. + +The solid pill (and other pills) live in the [Urbit repo][urbit]. To boot using +the solid pill, download the pill and then run: + +```console +$ ./urbit -F -B solid.pill +``` + +Instead of downloading the pill, you can also generate one yourself using +[`dojo`][dojo]: + +```console +dojo> .urbit/pill +solid +``` + +This will write the pill to `/.urb/put/urbit.pill` (note that `` is +the ship directory), which you can then use to boot a new ship: + +```console +$ ./urbit -F -B /.urb/put/urbit.pill +``` + +### Launch an Existing Fake Ship + +To launch an existing fake ship, supply the pier (the ship directory), which is +simply the name of the ship[^1], to `urbit`: + +```console +$ ./urbit +``` + + +[^1]: Unless you specify the pier using the `-c` flag. + +### Enable Language Server Processing + +We support the [`clangd`](https://clangd.llvm.org/installation) +language server, which can be installed directly on your system or +via one of the official editor plugins. + +After installing `clangd`, configure it to use the following arguments +(location of these arguments may vary depending on your editor plugin or +if you've installed `clangd` directly on your system). + +For example, if you use Visual Studio Code, you can add the following to your +user settings: + +```json +{ + "clangd.arguments": [ + "--header-insertion=never", + "--compile-commands-dir=${workspaceFolder}/", + "--query-driver=**", + ], +} +``` + +For other editors, please refer to the +[editor plugin documentation](https://clangd.llvm.org/installation.html#editor-plugins). + +Finally, run the following command to generate a `compile_commands.json` file, +which is used by `clangd` to enable all of its features (e.g. code completion, +jump to definition, cross-references, hovering, symbol renaming, etc.): + +```console +bazel run //bazel:refresh_compile_commands +``` + +### Debugging + +Prefer GDB for interactive debugging. You need to compile with the symbol table: + +```bash +bazel build :urbit --compilation_mode=dbg +gdb --args ./bazel-bin/pkg/vere/urbit zod +``` + +In GDB, set the following, and any breakpoints (e.g. `break u3m_bail`): + +```gdb +set follow-fork-mode child +handle SIGSEGV nostop noprint +``` + +Then run the Urbit program as usual with `r`. diff --git a/vere/INSTALL.md b/vere/INSTALL.md new file mode 100644 index 0000000..759a806 --- /dev/null +++ b/vere/INSTALL.md @@ -0,0 +1,126 @@ +# Building Vere + +We use [`zig`][zig] to build Vere, which is packaged as a single binary, +`urbit`. + +## Supported Targets + +Main (`-Dall`) targets: +- `aarch64-linux-musl` +- `x86_64-linux-musl` +- `aarch64-macos` +- `x86_64-macos` + +Additional targets: +- `aarch64-linux-gnu` +- `x86_64-linux-gnu` + +## Prerequisites + +Install version 0.14.0 of `zig` with the package manager of your choosing, e.g., `brew install zig`, or download the binary from [here][zig-download]. + +### macOS debugger + +macOS is curious operating system because the kernel is derived from from two codebases, the Mach kernel and the BSD kernel. It inherits two different hardware exception handling facilities, Mach exceptions and POSIX signals. We use `libsigsegv` and utilize the POSIX signals which is usually fine except when it comes to debugging with `lldb`. + +`lldb` hijacks the Mach exception ports for the task when it attaches to the process. Mach exceptions get handled before POSIX signals which means that as soon as vere faults (this happens often) `lldb` stop with a `EXC_BAD_ACCESS`. It is impossible to continue debugging from this state without the workaround we implemented in https://github.com/urbit/vere/pull/611. + +There are more annoying warts with `lldb` currently. First, if you attach the debugger when booting the ship with `lldb -- your-ship/.run` you have to specify `-t`, otherwise the ship is unable to boot for mysterious reasons. The other option is to start the ship and attach afterwards with `lldb -p PID`. Afterwards you should do this dance: + +``` +p (void)darwin_register_mach_exception_handler() +pro hand -p true -s false -n false SIGBUS +pro hand -p true -s false -n false SIGSEGV +``` + +### Sanitizers + +Sanitizers are supported for native builds only and you need to have `llvm-19` (and `clang-19` on linux) installed on your machine. + +For native linux builds this is the only situation where we actually build against the native abi. Normally we build agains musl even on native gnu machines. + +macOS: +```terminal +brew install llvm@19 +``` + +Debian/Ubuntu: +```terminal +apt-get install llvm-19 clang-19 +``` + +## Build + +Once you install `zig`, you're ready to build: +```console +zig build +``` +This builds a native debug binary. + +### Build options + +A quick overview of the more useful build options. +See `zig build --help` for more. + +#### `-Dtarget=[string]` +Cross-compilation target. See [supported targets](#supported-targets). + +#### `-Doptimize=[enum]` +Optimization mode. + +Supported values: +- Debug (default) => enable debugging information and runtime safety checks +- ReleaseSafe => optimize for memory safety +- ReleaseSmall => optimize for binary size +- ReleaseFast => optimize for speed + +#### `-Dall` +Build for all [supported targets](#supported-targets). + +#### `-Drelease` +Release flag. Builds with `-Doptimize=ReleaseFast` and `-Dpace=live`, and omits +git rev from binary version. + +#### `-Dpace=[enum]` +Release train. + +Supported values: +- once (default) +- live +- soon +- edge + +#### `-Dcopt=[list]` +Provide additional compiler flags. These propagate to all build artifacts. + +Example: `zig build -Dcopt="-g" -Dcopt="-fno-sanitize=all"` + +#### `-Dasan` +Enable address sanitizer. Only supported natively. Requires `llvm@19`, see [prerequisites](#sanitizers). + +#### `-Dubsan` +Enable undefined behavior sanitizer. Only supported natively. Requires `llvm@19`, see [prerequisites](#sanitizers). + + + + + + + + + + + + +## Test + +Run tests by giving `zig bulid` the test names as arguments, e.g.: + +```console +zig build nock-test ames-test --summary all +``` + +See `zig build --help` for all available tests. + +[zig]: https://ziglang.org +[zig-download]: https://ziglang.org/download/ diff --git a/vere/LICENSE.txt b/vere/LICENSE.txt new file mode 100644 index 0000000..6404c00 --- /dev/null +++ b/vere/LICENSE.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015 Urbit + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/vere/MAINTAINERS.md b/vere/MAINTAINERS.md new file mode 100644 index 0000000..9907492 --- /dev/null +++ b/vere/MAINTAINERS.md @@ -0,0 +1,178 @@ +# Maintaining + +## Overview + +We use a three-stage release pipeline. Each stage of the release pipeline has +its own dedicated branch and a corresponding "train" (also called a pace). +Features and bug fixes progress through each stage--and are subject to testing +along the way--until they're eventually released to the live network. This +pipeline automates our release process, making it much easier to quickly and +reliably ship code. It's also simple to reason about. + +## Branches and Trains + +The branches and their corresponding trains that comprise the stages of the +release pipeline are: + +| Branch | Train | Target audience | +|-----------|--------|--------------------| +| `develop` | `edge` | Runtime developers | +| `release` | `soon` | Early adopters | +| `master` | `live` | Everyone else | + +`develop` is the default branch in the repo, which means that all new pull +requests target it by default. The general flow of a new feature or bug fix +through the pipeline is: + +```console +feature branch ----> develop ----> release ----> master + | | | + deployed to deployed to deployed to + edge train soon train live train +``` + +If an issue arises in the course of testing the `release` branch (because more +people are using `soon` than `edge`), a PR can be opened to target `release`. +If that's the case, the `master` needs to be merged back into `develop` after +`release` merges into `master` to ensure that `develop` gets the fix. + +## Version Numbers + +Each time a commit is pushed to `develop`, `release`, or `master`--say, when a +PR merges--we build and deploy a new version of the binary available for +consumption by anyone subscribed to that train (via `/.bin/pace`). + +For `edge` and `soon`, each binary is given a version of the form +`{version number}-{shortened commit SHA}`, where `{version number}` is the +version number listed in the [version file in the root of this repo][version] +and `{shortened commit SHA}` is the shortened commit SHA of the commit the +binary was built from. This allows subscribers to `edge` and `soon` to +continually pull down new binaries via the `next` subcommand even when the +version number in the [version file][version] remains the same. + +For `master`, each binary is given a version of the form `{version number}`, +where `{version number}` is simply the version number listed in the +[version file in the root of this repo][version]. + +Each time a release is cut (i.e. `develop` is merged into `release` to kick off +a release), the version number should be bumped on `develop` in anticipation of +the next release. + +## Deploy Endpoints + +Binaries are deployed to the following endpoints, where `{VN}` is the version +number in `VERSION`, `{CS}` is the shortened commit SHA of the commit the binary +is built from, and `{P}` is one of `linux-aarch64`, `linux-x86_64`, +`macos-aarch64`, and `macos-x86_64`: + +- https://bootstrap.urbit.org/vere/edge/v{VN}-{CS}/vere-v{VN}-{CS}-{P} +- https://bootstrap.urbit.org/vere/soon/v{VN}-{CS}/vere-v{VN}-{CS}-{P} +- https://bootstrap.urbit.org/vere/live/v{VN}/vere-v{VN}-{P} + +The most recently deployed version of a given train (pace) is uploaded to +https://bootstrap.urbit.org/vere/{T}/last, where `{T}` is one of `edge`, `soon`, +and `live`. + +### `next/kelvin/*` Endpoints + +We also upload binaries for `next/kelvin/*` branches, where `{K}` is the Kelvin +version of the branch: + +- https://bootstrap.urbit.org/vere/next/kelvin/{K}/v{VN}-{CS}/vere-v{VN}-{CS}-{P} + +Last deployed version strings for the `next/kelvin/*` branches are uploaded to: + +- https://bootstrap.urbit.org/vere/next/kelvin/{K}/last + +## Releases + +In anticipation of a new release to `live`, create a new pull request +targeting `master` from `release`. + +When you're ready to release to `live`, tag the tip of `release` with a tag of +the form `vere-v{version}`, where `{version}` is the contents of +[VERSION][version]: +```console +$ cd path/to/vere/repo +$ git checkout release +$ git fetch origin && git merge origin/release +$ git tag vere-v$(cat VERSION) +$ git push origin vere-v$(cat VERSION) +``` + +Then merge the pull request, which triggers the deployment of the `live` +binaries. **Once the binaries have been deployed**, which usually takes about +thirty minutes, create a GitHub release using the following checklist: + +- [ ] Select the just-created tag as the tag for the release. +- [ ] Select `master` as the target for the release. +- [ ] Use the tag name (i.e. `vere-v1.17`) as the title of the release. +- [ ] Select the prevoius release's tag (i.e. `vere-v1.16`) as the previous tag. +- [ ] Click "Generate release notes". +- [ ] Add the following information above the autogenerated `## What's Changed` + section: +```text +Arvo {Kelvin version}K +Vere {Vere version} + +## Description +{Notes describing the release} +``` +- [ ] Upload a tarball of the binary to the release for each platform we + support. Generate a platform's tarball using the following commands, where + `{platform}` is one of `linux-aarch64`, `linux-x86_64`, `macos-aarch64`, + and `macos-x86_64`: +```console +$ wget https://bootstrap.urbit.org/vere/live/v{version}/vere-v{version}-{platform} +$ chmod +x vere-v{version}-{platform} +$ tar zcf {platform}.tgz vere-v{version}-{platform} +``` +- [ ] Check the box marked "Set as the latest release". +- [ ] Click "Publish release". +- [ ] Create a placeholder pill for the new binary exists by running `gsutil cp gs://bootstrap.urbit.org/urbit-vOLD.pill gs://bootstrap.urbit.org/urbit-vNEW.pill` +- [ ] Ensure that a new urbit can be booted by using the [Getting Started guide](https://urbit.org/getting-started/cli) +- [ ] Post the contents of the GH Release notes to the [urbit-dev mailing list](https://groups.google.com/a/urbit.org/g/dev) + +Post an announcement to the [urbit-dev mailing +list][urbit-dev] containing a copy of the release notes. When in doubt, follow +the format of the previous release's announcement. Also post an announcement to +the "General" channel of the [Urbit Community group][urbit-community]. + +[urbit-community]: https://urbit.org/groups/~bitbet-bolbel/urbit-community +[urbit-dev]: https://groups.google.com/a/urbit.org/g/dev +[version]: https://github.com/urbit/vere/tree/develop/VERSION + +## Updating Infrastructure Ships + +- [ ] `~zod` and other live galaxies (TODO which?) should all be updated to the new binary, to make sure they will be ready to install and deploy Arvo releases on the latest Kelvin. +- [ ] `~marzod` and other live stars (TODO which?) should also be updated to the new binary. +- [ ] Ships that host official UF groups should be updated: `~bitdeg`, `~halbex-palheb`, TODO: more. + +## Preparing for the Next Release + +This instructions are performed **on release day** to prepare the next release candidate. + +- [ ] Merge `master` into `develop` (to ensure any changes made to `master` are reflected back into `develop`) + - [ ] `git fetch --all` + - [ ] `git checkout master` + - [ ] `git reset --hard origin/master` + - [ ] `git checkout -b merge-master-v{version}-into-develop` + - [ ] `git push origin merge-master-v{version}-into-develop` + - [ ] Create, approve, and merge a pull request from `merge-master-v{version}-into-develop` into `master` +- [ ] Merge `develop` into `release` (to ensure any changes made to `develop` are reflected back into `release`) + - [ ] `git fetch --all` + - [ ] `git checkout develop` + - [ ] `git reset --hard origin/develop` + - [ ] `git checkout -b merge-develop-v{version}-into-release` + - [ ] `git push origin merge-develop-v{version}-into-release` + - [ ] Create, approve, and merge a pull request from `merge-develop-v{version}-into-release` into `release` +- [ ] Bump the version number on `develop` + - [ ] `git fetch --all` + - [ ] `git checkout develop` + - [ ] `git reset --hard origin/develop` + - [ ] `git checkout -b bump-version-v{version}-to-v{next-version}` + - [ ] `echo {next-version} > VERSION` + - [ ] `git add VERSION` + - [ ] `git commit -m "Bump version to v{next-version}"` + - [ ] `git push origin bump-version-v{version}-to-v{next-version}` + - [ ] Create, approve, and merge a pull request from `bump-version-v{version}-to-v{next-version}` into `develop` diff --git a/vere/README.md b/vere/README.md new file mode 100644 index 0000000..5f2e0ca --- /dev/null +++ b/vere/README.md @@ -0,0 +1,45 @@ +# Urbit Runtime + +[Urbit][urbit] is a personal server stack built from scratch. This repository +contains [Urbit's runtime environment][vere], the lowest layer of the Urbit +stack, which includes the Nock virtual machine, I/O drivers, event log, and +snapshotting system. + +## Getting Started + +If you've never used Urbit before, head over [here](get-on-urbit) to get on +Urbit. + +For a high-level overview of the salient aspects of Urbit's architecture, visit +[docs.urbit.org][docs]. + +## Packages + +Urbit's runtime is broken down into a few separate layers, each of which is +defined in its own package: + +- [`pkg/c3`](pkg/c3): A set of basic utilities for writing Urbit's style of C. +- [`pkg/ent`](pkg/ent): A cross-platform wrapper for `getentropy(2)`. +- [`pkg/ur`](pkg/ur): An implementation of [jam][jam] and [cue][cue], Urbit's + bitwise noun serialization and deserialization algorithms, respectively. +- [`pkg/noun`](pkg/noun): The Nock virtual machine and snapshotting system. +- [`pkg/vere`](pkg/vere): The I/O drivers, event log, and main event loop. + + +## Build + +See [INSTALL.md](INSTALL.md). + +## Contributing + +Contributions of any form are more than welcome. Please take a look at our +[contributing guidelines][contributing] for details on our git practices, coding +styles, how we manage issues, and so on. + +[docs]: https://docs.urbit.org +[contributing]: https://github.com/urbit/urbit/blob/master/CONTRIBUTING.md +[cue]: https://docs.urbit.org/hoon/stdlib/2p#cue +[get-on-urbit]: https://docs.urbit.org/get-on-urbit +[jam]: https://docs.urbit.org/hoon/stdlib/2p#jam +[urbit]: https://urbit.org +[vere]: https://docs.urbit.org/build-on-urbit/runtime diff --git a/vere/boot-fake-ship.sh b/vere/boot-fake-ship.sh new file mode 100755 index 0000000..785f3ce --- /dev/null +++ b/vere/boot-fake-ship.sh @@ -0,0 +1,60 @@ +#!/bin/bash + +set -xeuo pipefail + +urbit_binary=$GITHUB_WORKSPACE/$URBIT_BINARY +solid_pill=$GITHUB_WORKSPACE/solid.pill + +curl -LJ -o $solid_pill https://github.com/urbit/urbit/raw/84ebb321314b3fbc08253de5213f19450ffbfb3e/bin/solid.pill +curl -LJ -o urbit.tar.gz https://github.com/urbit/urbit/archive/84ebb321314b3fbc08253de5213f19450ffbfb3e.tar.gz + +mkdir ./urbit +tar xfz urbit.tar.gz -C ./urbit --strip-components=1 +cp -RL ./urbit/tests ./urbit/pkg/arvo/tests + +$urbit_binary --lite-boot --daemon --fake bus \ + --bootstrap $solid_pill \ + --arvo ./urbit/pkg/arvo \ + --pier ./pier + +cleanup() { + if [ -f ./pier/.vere.lock ]; then + kill $(< ./pier/.vere.lock) || true + fi + set +x +} + +trap cleanup EXIT +port=$(grep loopback ./pier/.http.ports | awk -F ' ' '{print $1}') + +lensd() { + curl -s \ + --data "{\"source\":{\"dojo\":\"$1\"},\"sink\":{\"stdout\":null}}" \ + "http://localhost:$port" | xargs printf %s | sed 's/\\n/\n/g' +} + +lensa() { + curl -s \ + --data "{\"source\":{\"dojo\":\"$2\"},\"sink\":{\"app\":\"$1\"}}" \ + "http://localhost:$port" | xargs printf %s | sed 's/\\n/\n/g' +} + +check() { + [ 3 -eq $(lensd 3) ] +} + +lensd '+vat %base' + +if check && sleep 10 && check; then + echo "boot success" + lensa hood '+hood/exit' + while [ -f ./pier/.vere.lock ]; do + echo "waiting for pier to shut down" + sleep 5 + done +else + echo "boot failure" + kill $(< ./pier/.vere.lock) || true + set +x + exit 1 +fi diff --git a/vere/build.zig b/vere/build.zig new file mode 100644 index 0000000..cbffc18 --- /dev/null +++ b/vere/build.zig @@ -0,0 +1,620 @@ +const std = @import("std"); + +const VERSION = "3.5"; + +const main_targets: []const std.Target.Query = &[_]std.Target.Query{ + .{ .cpu_arch = .aarch64, .os_tag = .macos, .abi = null }, + .{ .cpu_arch = .x86_64, .os_tag = .macos, .abi = null }, + .{ .cpu_arch = .aarch64, .os_tag = .linux, .abi = .musl }, + .{ .cpu_arch = .x86_64, .os_tag = .linux, .abi = .musl }, +}; + +const supported_targets: []const std.Target.Query = &[_]std.Target.Query{ + .{ .cpu_arch = .aarch64, .os_tag = .macos, .abi = null }, + .{ .cpu_arch = .x86_64, .os_tag = .macos, .abi = null }, + .{ .cpu_arch = .aarch64, .os_tag = .linux, .abi = .musl }, + .{ .cpu_arch = .x86_64, .os_tag = .linux, .abi = .musl }, + .{ .cpu_arch = .aarch64, .os_tag = .linux, .abi = .gnu }, + .{ .cpu_arch = .x86_64, .os_tag = .linux, .abi = .gnu }, + .{ .cpu_arch = .x86_64, .os_tag = .linux, .abi = .gnu, .glibc_version = std.SemanticVersion{ .major = 2, .minor = 27, .patch = 0 } }, +}; + +const targets: []const std.Target.Query = main_targets; + +const BuildCfg = struct { + version: []const u8, + pace: []const u8, + binary_name: []const u8, + flags: []const []const u8 = &.{}, + include_test_steps: bool = true, + cpu_dbg: bool = false, + mem_dbg: bool = false, + c3dbg: bool = false, + snapshot_validation: bool = false, + ubsan: bool = false, + asan: bool = false, +}; + +pub fn build(b: *std.Build) !void { + const target = b.standardTargetOptions(.{ .whitelist = supported_targets }); + var optimize = b.standardOptimizeOption(.{}); + + // + // Additional Project-Specific Options + // + + const all = b.option(bool, "all", "Build all targets") orelse false; + + const release = b.option(bool, "release", "Build for release") orelse false; + if (release) optimize = .ReleaseFast; + + const Pace = enum { once, live, soon, edge }; + const pace = @tagName(b.option( + Pace, + "pace", + "Release train (Default: once)", + ) orelse if (release) Pace.live else Pace.once); + + const copts: []const []const u8 = b.option( + []const []const u8, + "copt", + "Provide additional compiler flags", + ) orelse &.{}; + + const cpu_dbg = b.option( + bool, + "cpu-dbg", + "Enable cpu debug mode (-DU3_CPU_DEBUG)", + ) orelse false; + + const mem_dbg = b.option( + bool, + "mem-dbg", + "Enable memory debug mode (-DU3_MEMORY_DEBUG)", + ) orelse false; + + const c3dbg = b.option( + bool, + "c3dbg", + "Enable debug assertions (-DC3DBG)", + ) orelse false; + + const snapshot_validation = b.option( + bool, + "snapshot-validation", + "Enable snapshot validation (-DU3_SNAPSHOT_VALIDATION)", + ) orelse false; + + const binary_name = b.option( + []const u8, + "binary-name", + "Binary name (Default: urbit)", + ) orelse "urbit"; + + const asan = if (target.query.isNative()) + b.option( + bool, + "asan", + "Enable address sanitizer (native only, requires llvm@18)", + ) orelse false + else + false; + + const ubsan = if (target.query.isNative()) + b.option( + bool, + "ubsan", + "Enable undefined behavior sanitizer (native only, requires llvm@18)", + ) orelse false + else + false; + + // Parse short git rev + var file = try std.fs.cwd().openFile(".git/logs/HEAD", .{}); + defer file.close(); + var buf_reader = std.io.bufferedReader(file.reader()); + var in_stream = buf_reader.reader(); + var buf: [1024]u8 = undefined; + var last_line: [1024]u8 = undefined; + while (try in_stream.readUntilDelimiterOrEof(&buf, '\n')) |line| { + if (line.len > 0) + last_line = buf; + } + const git_rev = buf[41..51]; + + // Binary version + const version = if (!release) + VERSION ++ "-" ++ git_rev + else + VERSION; + + // + // Build + // + + const build_cfg: BuildCfg = .{ + .version = version, + .pace = pace, + .flags = copts, + .binary_name = binary_name, + .cpu_dbg = cpu_dbg, + .mem_dbg = mem_dbg, + .c3dbg = c3dbg, + .snapshot_validation = snapshot_validation, + .asan = asan, + .ubsan = ubsan, + .include_test_steps = !all, + }; + + if (all) { + for (targets) |t| { + try buildBinary(b, b.resolveTargetQuery(t), optimize, build_cfg); + } + } else { + const t = target.result; + try buildBinary( + b, + if (t.os.tag == .linux and + target.query.isNative() and + !asan and !ubsan) + b.resolveTargetQuery(.{ .abi = .musl }) + else + target, + optimize, + build_cfg, + ); + } +} + +fn buildBinary( + b: *std.Build, + target: std.Build.ResolvedTarget, + optimize: std.builtin.OptimizeMode, + cfg: BuildCfg, +) !void { + const t = target.result; + + // + // Global C Opts + // TODO: Propagate these to all 3rd party dependencies + // + + var global_flags = std.ArrayList([]const u8).init(b.allocator); + defer global_flags.deinit(); + + try global_flags.appendSlice(cfg.flags); + try global_flags.appendSlice(&.{ + "-g3", + "-Wall", + "-Werror", + }); + + if (!cfg.asan and !cfg.ubsan) + try global_flags.appendSlice(&.{ + "-fno-sanitize=all", + }); + + if (cfg.asan and !cfg.ubsan) + try global_flags.appendSlice(&.{ + "-Wno-deprecated", + "-fsanitize=address", + "-fno-sanitize=undefined", + "-fno-sanitize-trap=undefined", + }); + + if (!cfg.asan and cfg.ubsan) + try global_flags.appendSlice(&.{ + "-fsanitize=undefined", + "-fno-sanitize-trap=undefined", + }); + + if (cfg.asan and cfg.ubsan) + try global_flags.appendSlice(&.{ + "-Wno-deprecated", + "-fsanitize=address", + "-fsanitize=undefined", + "-fno-sanitize-trap=undefined", + }); + + // + // C Opts for Urbit PKGs And Binary + // + + var urbit_flags = std.ArrayList([]const u8).init(b.allocator); + defer urbit_flags.deinit(); + + try urbit_flags.appendSlice(global_flags.items); + try urbit_flags.appendSlice(&.{ + "-Wno-deprecated-non-prototype", + "-Wno-gnu-binary-literal", + "-Wno-gnu-empty-initializer", + "-Wno-gnu-statement-expression", + "-Wno-unused-variable", + "-Wno-unused-function", + "-Wno-gnu", + "-fno-omit-frame-pointer", + "-fms-extensions", + "-DU3_GUARD_PAGE", // pkg_noun + "-DU3_OS_ENDIAN_little=1", // pkg_c3 + "-DU3_OS_PROF=1", // pkg_c3 + }); + + if (cfg.cpu_dbg) + try urbit_flags.appendSlice(&.{"-DU3_CPU_DEBUG"}); + + if (cfg.mem_dbg) + try urbit_flags.appendSlice(&.{"-DU3_MEMORY_DEBUG"}); + + if (cfg.c3dbg) + try urbit_flags.appendSlice(&.{"-DC3DBG"}); + + if (cfg.snapshot_validation) + try urbit_flags.appendSlice(&.{"-DU3_SNAPSHOT_VALIDATION"}); + + if (t.cpu.arch == .aarch64) { + try urbit_flags.appendSlice(&.{ + "-DU3_CPU_aarch64=1", + }); + } + + if (t.os.tag == .macos) { + try urbit_flags.appendSlice(&.{ + "-DU3_OS_osx=1", + "-DENT_GETENTROPY_SYSRANDOM", // pkg_ent + }); + } else { + try urbit_flags.appendSlice(&.{ + "-DENT_GETENTROPY_UNISTD", //pkg_ent + }); + } + + if (t.os.tag == .linux) { + try urbit_flags.appendSlice(&.{ + "-DU3_OS_linux=1", + }); + } + + // + // Dependencies + // + + const copts: []const []const u8 = urbit_flags.items; + + const pkg_c3 = b.dependency("pkg_c3", .{ + .target = target, + .optimize = optimize, + .copt = copts, + }); + + const pkg_ent = b.dependency("pkg_ent", .{ + .target = target, + .optimize = optimize, + .copt = copts, + }); + + const pkg_ur = b.dependency("pkg_ur", .{ + .target = target, + .optimize = optimize, + .copt = copts, + }); + + const pkg_noun = b.dependency("pkg_noun", .{ + .target = target, + .optimize = optimize, + .copt = copts, + }); + + const pkg_vere = b.dependency("pkg_vere", .{ + .target = target, + .optimize = optimize, + .copt = copts, + .pace = cfg.pace, + .version = cfg.version, + }); + + const curl = b.dependency("curl", .{ + .target = target, + .optimize = optimize, + }); + + const gmp = b.dependency("gmp", .{ + .target = target, + .optimize = optimize, + }); + + const h2o = b.dependency("h2o", .{ + .target = target, + .optimize = optimize, + }); + + const libuv = b.dependency("libuv", .{ + .target = target, + .optimize = optimize, + }); + + const lmdb = b.dependency("lmdb", .{ + .target = target, + .optimize = optimize, + }); + + const natpmp = b.dependency("natpmp", .{ + .target = target, + .optimize = optimize, + }); + + const openssl = b.dependency("openssl", .{ + .target = target, + .optimize = optimize, + }); + + const sigsegv = b.dependency("sigsegv", .{ + .target = target, + .optimize = optimize, + }); + + const urcrypt = b.dependency("urcrypt", .{ + .target = target, + .optimize = optimize, + }); + + const whereami = b.dependency("whereami", .{ + .target = target, + .optimize = optimize, + }); + + const zlib = b.dependency("zlib", .{ + .target = target, + .optimize = optimize, + }); + + const wasm3 = b.dependency("wasm3", .{ + .target = target, + .optimize = optimize, + }); + + // + // Build Artifact + // + + const urbit = b.addExecutable(.{ + .name = cfg.binary_name, + .target = target, + .optimize = optimize, + }); + urbit.stack_size = 0; + + const target_query: std.Target.Query = .{ + .cpu_arch = t.cpu.arch, + .os_tag = t.os.tag, + .abi = t.abi, + .os_version_min = .none, + .os_version_max = .none, + }; + const target_output = b.addInstallArtifact(urbit, .{ + .dest_dir = .{ + .override = .{ + .custom = try target_query.zigTriple(b.allocator), + }, + }, + }); + b.getInstallStep().dependOn(&target_output.step); + + if (target.result.os.tag.isDarwin() and !target.query.isNative()) { + const macos_sdk = b.lazyDependency("macos_sdk", .{ + .target = target, + .optimize = optimize, + }); + if (macos_sdk != null) { + urbit.addSystemIncludePath(macos_sdk.?.path("usr/include")); + urbit.addLibraryPath(macos_sdk.?.path("usr/lib")); + urbit.addFrameworkPath(macos_sdk.?.path("System/Library/Frameworks")); + } + } + + urbit.linkLibC(); + + urbit.linkLibrary(pkg_vere.artifact("vere")); + urbit.linkLibrary(pkg_noun.artifact("noun")); + urbit.linkLibrary(pkg_c3.artifact("c3")); + urbit.linkLibrary(pkg_ur.artifact("ur")); + + urbit.linkLibrary(gmp.artifact("gmp")); + urbit.linkLibrary(h2o.artifact("h2o")); + urbit.linkLibrary(curl.artifact("curl")); + urbit.linkLibrary(libuv.artifact("libuv")); + urbit.linkLibrary(lmdb.artifact("lmdb")); + urbit.linkLibrary(openssl.artifact("ssl")); + urbit.linkLibrary(sigsegv.artifact("sigsegv")); + urbit.linkLibrary(urcrypt.artifact("urcrypt")); + urbit.linkLibrary(whereami.artifact("whereami")); + urbit.linkLibrary(wasm3.artifact("wasm3")); + + if (t.os.tag.isDarwin()) { + // Requires llvm@18 homebrew installation + if (cfg.asan or cfg.ubsan) + urbit.addLibraryPath(.{ + .cwd_relative = "/opt/homebrew/opt/llvm@18/lib/clang/18/lib/darwin", + }); + if (cfg.asan) urbit.linkSystemLibrary("clang_rt.asan_osx_dynamic"); + if (cfg.ubsan) urbit.linkSystemLibrary("clang_rt.ubsan_osx_dynamic"); + } + + if (t.os.tag == .linux) { + // Requires llvm-18 and clang-18 installation + if (cfg.asan or cfg.ubsan) + urbit.addLibraryPath(.{ + .cwd_relative = "/usr/lib/clang/18/lib/linux", + }); + if (t.cpu.arch == .x86_64) { + if (cfg.asan) urbit.linkSystemLibrary("clang_rt.asan-x86_64"); + if (cfg.ubsan) + urbit.linkSystemLibrary("clang_rt.ubsan_standalone-x86_64"); + } + if (t.cpu.arch == .aarch64) { + if (cfg.asan) urbit.linkSystemLibrary("clang_rt.asan-aarch64"); + if (cfg.ubsan) + urbit.linkSystemLibrary("clang_rt.ubsan_standalone-aarch64"); + } + } + + urbit.addCSourceFiles(.{ + .root = b.path("pkg/vere"), + .files = &.{ + "main.c", + }, + .flags = urbit_flags.items, + }); + + // CI needs generated version.h so we install libvere as a quick fix + const vere_install = b.addInstallArtifact(pkg_vere.artifact("vere"), .{}); + b.getInstallStep().dependOn(&vere_install.step); + + // + // Tests + // + + if (cfg.include_test_steps) { + const noun_test_deps = &.{ + pkg_noun.artifact("noun"), + pkg_c3.artifact("c3"), + gmp.artifact("gmp"), + }; + const vere_test_deps = &.{ + pkg_vere.artifact("vere"), + pkg_noun.artifact("noun"), + pkg_ur.artifact("ur"), + pkg_ent.artifact("ent"), + pkg_c3.artifact("c3"), + gmp.artifact("gmp"), + libuv.artifact("libuv"), + lmdb.artifact("lmdb"), + natpmp.artifact("natpmp"), + zlib.artifact("z"), + }; + const tests = [_]struct { + name: []const u8, + file: []const u8, + deps: []const *std.Build.Step.Compile, + }{ + // pkg_ur + .{ + .name = "ur-test", + .file = "pkg/ur/tests.c", + .deps = &.{pkg_ur.artifact("ur")}, + }, + // pkg_ent + .{ + .name = "ent-test", + .file = "pkg/ent/tests.c", + .deps = &.{pkg_ent.artifact("ent")}, + }, + // pkg_noun + .{ + .name = "equality-test", + .file = "pkg/noun/equality_tests.c", + .deps = noun_test_deps, + }, + .{ + .name = "hashtable-test", + .file = "pkg/noun/hashtable_tests.c", + .deps = noun_test_deps, + }, + .{ + .name = "hamt-test", + .file = "pkg/vere/hamt_test.c", + .deps = vere_test_deps, + }, + .{ + .name = "jets-test", + .file = "pkg/noun/jets_tests.c", + .deps = noun_test_deps, + }, + .{ + .name = "nock-test", + .file = "pkg/noun/nock_tests.c", + .deps = noun_test_deps, + }, + .{ + .name = "retrieve-test", + .file = "pkg/noun/retrieve_tests.c", + .deps = noun_test_deps, + }, + .{ + .name = "serial-test", + .file = "pkg/noun/serial_tests.c", + .deps = noun_test_deps, + }, + // pkg_vere + .{ + .name = "ames-test", + .file = "pkg/vere/ames_tests.c", + .deps = vere_test_deps, + }, + .{ + .name = "boot-test", + .file = "pkg/vere/boot_tests.c", + .deps = vere_test_deps, + }, + .{ + .name = "newt-test", + .file = "pkg/vere/newt_tests.c", + .deps = vere_test_deps, + }, + .{ + .name = "vere-noun-test", + .file = "pkg/vere/noun_tests.c", + .deps = vere_test_deps, + }, + .{ + .name = "unix-test", + .file = "pkg/vere/unix_tests.c", + .deps = vere_test_deps, + }, + .{ + .name = "benchmarks", + .file = "pkg/vere/benchmarks.c", + .deps = vere_test_deps, + }, + .{ + .name = "pact-test", + .file = "pkg/vere/io/mesa/pact_test.c", + .deps = vere_test_deps, + }, + }; + + for (tests) |tst| { + const test_step = + b.step(tst.name, b.fmt("Build & run: {s}", .{tst.file})); + const test_exe = b.addExecutable(.{ + .name = tst.name, + .target = target, + .optimize = optimize, + }); + + if (t.os.tag.isDarwin() and !target.query.isNative()) { + const macos_sdk = b.lazyDependency("macos_sdk", .{ + .target = target, + .optimize = optimize, + }); + if (macos_sdk != null) { + test_exe.addSystemIncludePath(macos_sdk.?.path("usr/include")); + test_exe.addLibraryPath(macos_sdk.?.path("usr/lib")); + test_exe.addFrameworkPath(macos_sdk.?.path("System/Library/Frameworks")); + } + } + + test_exe.stack_size = 0; + test_exe.linkLibC(); + for (tst.deps) |dep| { + test_exe.linkLibrary(dep); + } + test_exe.addCSourceFiles(.{ + .files = &.{tst.file}, + .flags = urbit_flags.items, + }); + const run_unit_tests = b.addRunArtifact(test_exe); + run_unit_tests.skip_foreign_checks = true; + test_step.dependOn(&run_unit_tests.step); + } + } +} diff --git a/vere/build.zig.zon b/vere/build.zig.zon new file mode 100644 index 0000000..83e31a1 --- /dev/null +++ b/vere/build.zig.zon @@ -0,0 +1,67 @@ +.{ + .name = .urbit, + .version = "0.0.1", + .fingerprint = 0x9e228a3003a2736b, + .dependencies = .{ + .macos_sdk = .{ + .url = "https://github.com/joseluisq/macosx-sdks/releases/download/14.5/MacOSX14.5.sdk.tar.xz", + .hash = "N-V-__8AAKtK4FMzqcFsY_ZrpMg9bGH0h7BqZDXtVyAerMtM", + .lazy = true, + }, + .pkg_c3 = .{ + .path = "./pkg/c3", + }, + .pkg_ent = .{ + .path = "./pkg/ent", + }, + .pkg_ur = .{ + .path = "./pkg/ur", + }, + .pkg_noun = .{ + .path = "./pkg/noun", + }, + .pkg_vere = .{ + .path = "./pkg/vere", + }, + .curl = .{ + .path = "./ext/curl", + }, + .gmp = .{ + .path = "./ext/gmp", + }, + .h2o = .{ + .path = "./ext/h2o", + }, + .libuv = .{ + .path = "./ext/libuv", + }, + .lmdb = .{ + .path = "./ext/lmdb", + }, + .natpmp = .{ + .path = "./ext/natpmp", + }, + .openssl = .{ + .path = "./ext/openssl", + }, + .sigsegv = .{ + .path = "./ext/sigsegv", + }, + .urcrypt = .{ + .path = "./ext/urcrypt", + }, + .whereami = .{ + .path = "./ext/whereami", + }, + .zlib = .{ + .url = "https://github.com/allyourcodebase/zlib/archive/61e7df7e996ec5a5f13a653db3c419adb340d6ef.tar.gz", + .hash = "zlib-1.3.1-ZZQ7lbYMAAB1hTSOKSXAKAgHsfDcyWNH_37ojw5WSpgR", + }, + .wasm3 = .{ + .path = "./ext/wasm3", + }, + }, + .paths = .{ + "", + }, +} diff --git a/vere/doc/spec/nock/4.txt b/vere/doc/spec/nock/4.txt new file mode 100644 index 0000000..3457d6b --- /dev/null +++ b/vere/doc/spec/nock/4.txt @@ -0,0 +1,45 @@ +A noun is an atom or a cell. An atom is a natural number. A cell is an ordered pair of nouns. + +Reduce by the first matching pattern; variables match any noun. + +nock(a) *a +[a b c] [a [b c]] + +?[a b] 0 +?a 1 ++[a b] +[a b] ++a 1 + a +=[a a] 0 +=[a b] 1 + +/[1 a] a +/[2 a b] a +/[3 a b] b +/[(a + a) b] /[2 /[a b]] +/[(a + a + 1) b] /[3 /[a b]] +/a /a + +#[1 a b] a +#[(a + a) b c] #[a [b /[(a + a + 1) c]] c] +#[(a + a + 1) b c] #[a [/[(a + a) c] b] c] +#a #a + +*[a [b c] d] [*[a b c] *[a d]] + +*[a 0 b] /[b a] +*[a 1 b] b +*[a 2 b c] *[*[a b] *[a c]] +*[a 3 b] ?*[a b] +*[a 4 b] +*[a b] +*[a 5 b c] =[*[a b] *[a c]] + +*[a 6 b c d] *[a *[[c d] 0 *[[2 3] 0 *[a 4 4 b]]]] +*[a 7 b c] *[*[a b] c] +*[a 8 b c] *[[*[a b] a] c] +*[a 9 b c] *[*[a c] 2 [0 1] 0 b] +*[a 10 [b c] d] #[b *[a c] *[a d]] + +*[a 11 [b c] d] *[[*[a c] *[a d]] 0 3] +*[a 11 b c] *[a c] + +*a *a diff --git a/vere/doc/spec/nock/5.txt b/vere/doc/spec/nock/5.txt new file mode 100644 index 0000000..54261c5 --- /dev/null +++ b/vere/doc/spec/nock/5.txt @@ -0,0 +1,39 @@ +A noun is an atom or a cell. An atom is a natural number. A cell is an ordered +pair of nouns. + +nock(a) *a +[a b c] [a [b c]] + +?[a b] 0 +?a 1 ++[a b] +[a b] ++a 1 + a +=[a a] 0 +=[a b] 1 +=a =a + +/[1 a] a +/[2 a b] a +/[3 a b] b +/[(a + a) b] /[2 /[a b]] +/[(a + a + 1) b] /[3 /[a b]] +/a /a + +*[a [b c] d] [*[a b c] *[a d]] + +*[a 0 b] /[b a] +*[a 1 b] b +*[a 2 b c] *[*[a b] *[a c]] +*[a 3 b] ?*[a b] +*[a 4 b] +*[a b] +*[a 5 b] =*[a b] + +*[a 6 b c d] *[a 2 [0 1] 2 [1 c d] [1 0] 2 [1 2 3] [1 0] 4 4 b] +*[a 7 b c] *[a 2 b 1 c] +*[a 8 b c] *[a 7 [[7 [0 1] b] 0 1] c] +*[a 9 b c] *[a 7 c 2 [0 1] 0 b] +*[a 10 [b c] d] *[a 8 c 7 [0 3] d] +*[a 10 b c] *[a c] + +*a *a + diff --git a/vere/doc/spec/u3.md b/vere/doc/spec/u3.md new file mode 100644 index 0000000..32ce9e8 --- /dev/null +++ b/vere/doc/spec/u3.md @@ -0,0 +1,1571 @@ +# u3: noun processing in C. + +`u3` is the C library that makes Urbit work. If it wasn't called +`u3`, it might be called `libnoun` - it's a library for making +and storing nouns. + +What's a noun? A noun is either a cell or an atom. A cell is an +ordered pair of any two nouns. An atom is an unsigned integer of +any size. + +To the C programmer, this is not a terribly complicated data +structure, so why do you need a library for it? + +One: nouns have a well-defined computation kernel, Nock, whose +spec fits on a page and gzips to 340 bytes. But the only +arithmetic operation in Nock is increment. So it's nontrivial +to compute both efficiently and correctly. + +Two: `u3` is designed to support "permanent computing," ie, a +single-level store which is transparently snapshotted. This +implies a specialized memory-management model, etc, etc. + +(Does `u3` depend on the higher levels of Urbit, Arvo and Hoon? +Yes and no. `u3` expects you to load something shaped like an +Arvo kernel, and use it as an event-processing function. But you +don't need to use this feature if you don't want, and your kernel +doesn't have to be Arvo proper - just Arvo-compatible. Think of +`u3` as the BIOS and Arvo as the boot kernel. And there are no +dependencies at all between Hoon the language and `u3`.) + +## c3: C in Urbit + +Under `u3` is the simple `c3` layer, which is just how we write C +in Urbit. + +When writing C in u3, please of course follow the conventions of +the code around you as regards indentation, etc. It's especially +important that every function have a header comment, even if it +says nothing interesting. + +But some of our idiosyncrasies go beyond convention. Yes, we've +done awful things to C. Here's what we did and why we did. + +### c3: integer types + +First, it's generally acknowledged that underspecified integer +types are C's worst disaster. C99 fixed this, but the `stdint` +types are wordy and annoying. We've replaced them with: + + /* Good integers. + */ + typedef uint64_t c3_d; // double-word + typedef int64_t c3_ds; // signed double-word + typedef uint32_t c3_w; // word + typedef int32_t c3_ws; // signed word + typedef uint16_t c3_s; // short + typedef int16_t c3_ss; // signed short + typedef uint8_t c3_y; // byte + typedef int8_t c3_ys; // signed byte + typedef uint8_t c3_b; // bit + + typedef uint8_t c3_t; // boolean + typedef uint8_t c3_o; // loobean + typedef uint8_t c3_g; // 5-bit atom for a 32-bit log. + typedef uint32_t c3_l; // little; 31-bit unsigned integer + typedef uint32_t c3_m; // mote; also c3_l; LSB first a-z 4-char string. + + /* Bad integers. + */ + typedef char c3_c; // does not match int8_t or uint8_t + typedef int c3_i; // int - really bad + typedef uintptr_t c3_p; // pointer-length uint - really really bad + typedef intptr_t c3_ps; // pointer-length int - really really bad + +Some of these need explanation. A loobean is a Nock boolean - +Nock, for mysterious reasons, uses 0 as true (always say "yes") +and 1 as false (always say "no"). + +Nock and/or Hoon cannot tell the difference between a short atom +and a long one, but at the `u3` level every atom under `2^31` is +direct. The `c3_l` type is useful to annotate this. A `c3_m` is +a *mote* - a string of up to 4 characters in a `c3_l`, least +significant byte first. A `c3_g` should be a 5-bit atom. Of +course, C cannot enforce these constraints, only document them. + +Use the "bad" - ie, poorly specified - integer types only when +interfacing with external code that expects them. + +An enormous number of motes are defined in `i/c/motes.h`. There +is no reason to delete motes that aren't being used, or even to +modularize the definitions. Keep them alphabetical, though. + +### c3: variables and variable naming + +The C3 style uses Hoon style TLV variable names, with a quasi +Hungarian syntax. This is weird, but works really well, as long +as what you're doing isn't hideously complicated. (Then it works +badly, but we shouldn't need anything hideous in u3.) + +A TLV variable name is a random pronounceable three-letter +string, sometimes with some vague relationship to its meaning, +but usually not. Usually CVC (consonant-vowel-consonant) is a +good choice. + +You should use TLVs much the way math people use Greek letters. +The same concept should in general get the same name across +different contexts. When you're working in a given area, you'll +tend to remember the binding from TLV to concept by sheer power +of associative memory. When you come back to it, it's not that +hard to relearn. And of course, when in doubt, comment it. + +Variables take pseudo-Hungarian suffixes, matching in general the +suffix of the integer type: + + c3_w wor_w; // 32-bit word + +Unlike in standard Hungarian, there is no change for pointer +variables. C structure variables take a `_u` suffix. + +### c3: loobeans + +The code (from `defs.h`) tells the story: + + # define c3y 0 + # define c3n 1 + + # define _(x) (c3y == (x)) + # define __(x) ((x) ? c3y : c3n) + # define c3a(x, y) __(_(x) && _(y)) + # define c3o(x, y) __(_(x) || _(y)) + +In short, use `_()` to turn a loobean into a boolean, `__` to go +the other way. Use `!` as usual, `c3y` for yes and `c3n` for no, +`c3a` for and and `c3o` for or. + +## u3: land of nouns + +The division between `c3` and `u3` is that you could theoretically +imagine using `c3` as just a generic C environment. Anything to do +with nouns is in `u3`. + +### u3: a map of the system + +There are two kinds of symbols in `u3`: regular and irregular. +Regular symbols follow this pattern: + + prefix purpose .h .c + ------------------------------------------------------- + u3a_ allocation i/n/a.h n/a.c + u3e_ persistence i/n/e.h n/e.c + u3h_ hashtables i/n/h.h n/h.c + u3i_ noun construction i/n/i.h n/i.c + u3j_ jet control i/n/j.h n/j.c + u3m_ system management i/n/m.h n/m.c + u3n_ nock computation i/n/n.h n/n.c + u3r_ noun access (error returns) i/n/r.h n/r.c + u3t_ profiling i/n/t.h n/t.c + u3v_ arvo i/n/v.h n/v.c + u3x_ noun access (error crashes) i/n/x.h n/x.c + u3z_ memoization i/n/z.h n/z.c + u3k[a-g] jets (transfer, C args) i/j/k.h j/[a-g]/*.c + u3q[a-g] jets (retain, C args) i/j/q.h j/[a-g]/*.c + u3w[a-g] jets (retain, nock core) i/j/w.h j/[a-g]/*.c + +Irregular symbols always start with `u3` and obey no other rules. +They're defined in `i/n/aliases.h`. Finally, `i/all.h` includes +all these headers (fast compilers, yay) and is all you need to +program in `u3`. + +### u3: noun internals + +A noun is a `u3_noun` - currently defined as a 32-bit `c3_w`. + +If your `u3_noun` is less than `(1 << 31)`, it's a direct atom. +Every unsigned integer between `0` and `0x7fffffff` inclusive is +its own noun. + +If bit `31` is set in a `u3_noun` and bit `30` is `1` the noun +is an indirect cell. If bit `31` is set and bit `30` is `0` the +noun is an indirect atom. Bits `29` through `0` are a word +pointer into the loom - see below. The structures are: + + typedef struct { + c3_w mug_w; + c3_w len_w; + c3_w buf_w[0]; // actually [len_w] + } u3a_atom; + + typedef struct { + c3_w mug_w; + u3_noun hed; + u3_noun tel; + } u3a_cell; + +The only thing that should be mysterious here is `mug_w`, which +is a 31-bit lazily computed nonzero short hash (FNV currently, +soon Murmur3). If `mug_w` is 0, the hash is not yet computed. +We also hijack this field for various hacks, such as saving the +new address of a noun when copying over. + +Also, the value `0xffffffff` is `u3_none`, which is never a valid +noun. Use the type `u3_weak` to express that a noun variable may +be `u3_none`. + +### u3: reference counts + +The only really essential thing you need to know about `u3` is +how to handle reference counts. Everything else, you can skip +and just get to work. + +u3 deals with reference-counted, immutable, acyclic nouns. +Unfortunately, we are not Apple and can't build reference +counting into your C compiler, so you need to count by hand. + +Every allocated noun (or any allocation object, because our +allocator is general-purpose) contains a counter which counts the +number of references to it - typically variables with type +`u3_noun`. When this counter goes to 0, the noun is freed. + +To tell `u3` that you've added a reference to a noun, call the +function `u3a_gain()` or its shorthand `u3k()`. (For your +convenience, this function returns its argument.) To tell `u3` +that you've destroyed a reference, call `u3a_lose()` or `u3z()`. + +(If you screw up by decrementing the counter too much, `u3` will +dump core in horrible ways. If you screw up by incrementing it +too much, `u3` will leak memory. To check for memory leaks, +set the `bug_o` flag in `u3e_boot()` - eg, run `vere` with `-g`. +Memory leaks are difficult to debug - the best way to handle +leaks is just to revert to a version that didn't have them, and +look over your code again.) + +(You can gain or lose a direct atom. It does nothing.) + +### u3: reference protocols + +*THIS IS THE MOST CRITICAL SECTION IN THE `u3` DOCUMENTATION.* + +The key question when calling a C function in a refcounted world +is what the function will do to the noun refcounts - and, if the +function returns a noun, what it does to the return. + +There are two semantic patterns, `transfer` and `retain`. In +`transfer` semantics, the caller "gives" a use count to the +callee, which "gives back" any return. For instance, if I have + + { + u3_noun foo = u3i_string("foobar"); + u3_noun bar; + + bar = u3f_futz(foo); + [...] + u3z(bar); + } + +Suppose `u3f_futz()` has `transfer` semantics. At `[...]`, my +code holds one reference to `bar` and zero references to `foo` - +which has been freed, unless it's part of `bar`. My code now +owns `bar` and gets to work with it until it's done, at which +point a `u3z()` is required. + +On the other hand, if `u3f_futz()` has `retain` semantics, we +need to write + + { + u3_noun foo = u3i_string("foobar"); + u3_noun bar; + + bar = u3f_futz(foo); + [...] + u3z(foo); + } + +because calling `u3f_futz()` does not release our ownership of +`foo`, which we have to free ourselves. + +But if we free `bar`, we are making a great mistake, because our +reference to it is not in any way registered in the memory +manager (which cannot track references in C variables, of +course). It is normal and healthy to have these uncounted +C references, but they must be treated with care. + +The bottom line is that it's essential for the caller to know +the refcount semantics of any function which takes or returns a +noun. (In some unusual circumstances, different arguments or +returns in one function may be handled differently.) + +Broadly speaking, as a design question, retain semantics are more +appropriate for functions which inspect or query nouns. For +instance, `u3h()` (which takes the head of a noun) retains, so +that we can traverse a noun tree without constantly incrementing +and decrementing. + +Transfer semantics are more appropriate for functions which make +nouns, which is obviously what most functions do. + +In general, though, in most places it's not worth thinking about +what your function does. There is a convention for it, which +depends on where it is, not what it does. Follow the convention. + +### u3: reference conventions + +The `u3` convention is that, unless otherwise specified, *all +functions have transfer semantics* - with the exception of the +prefixes: `u3r`, `u3x`, `u3z`, `u3q` and `u3w`. Also, within +jet directories `a` through `f` (but not `g`), internal functions +retain (for historical reasons). + +If functions outside this set have retain semantics, they need to +be commented, both in the `.h` and `.c` file, with `RETAIN` in +all caps. Yes, it's this important. + +### u3: system architecture + +If you just want to tinker with some existing code, it might be +enough to understand the above. If not, it's probably worth +taking the time to look at `u3` as a whole. + +`u3` is designed to work as a persistent event processor. +Logically, it computes a function of the form + + f(event, old state) -> (actions, new state) + +Obviously almost any computing model - including, but not limited +to, Urbit - can be defined in this form. To create the illusion +of a computer that never loses state and never fails, we: + +- log every event externally before it goes into u3 +- keep a single reference to a permanent state noun. +- can abort any event without damaging the permanent state. +- snapshot the permanent state periodically, and/or prune logs. + +### u3: the road model + +`u3` uses a memory design which I'm sure someone has invented +somewhere before, because it's not very clever, but I've never +seen it anywhere in particular. + +Every allocation starts with a solid block of memory, which `u3` +calls the `loom`. How do we allocate on the loom? You're +probably familiar with the Unix heap-stack design, in which the +stack grows downward and the heap (malloc arena) grows upward: + + 0 brk ffff + | heap | stack | + |------------#################################+++++++++++++| + | | | + 0 sp ffff + +A road is a normal heap-stack system, except that the heap +and stack can point in *either direction*. Therefore, inside +a road, we can nest another road in the *opposite direction*. + +When the opposite road completes, its heap is left on top of +the opposite heap's stack. It's no more than the normal +behavior of a stack machine for all subcomputations to push +their results on the stack. + +The performance tradeoff of "leaping" - reversing directions in +the road - is that if the outer computation wants to preserve the +results of the inner one, not just use them for temporary +purposes, it has to *copy them*. + +This is a trivial cost in some cases, a prohibitive cost in +others. The upside, of course, is that all garbage accrued +in the inner computation is discarded at zero cost. + +The goal of the road system is the ability to *layer* memory +models. If you are allocating on a road, you have no idea +how deep within a nested road system you are - in other words, +you have no idea exactly how durable your result may be. +But free space is never fragmented within a road. + +Roads do not reduce the generality or performance of a memory +system, since even the most complex GC system can be nested +within a road at no particular loss of performance - a road +is just a block of memory. + +Each road (`u3a_road` to be exact) uses four pointers: `rut` is +the bottom of the arena, `hat` the top of the arena, `mat` the +bottom of the stack, `cap` the top of the stack. (Bear in mind +that the road "stack" is not actually used as the C function-call +stack, though it probably should be.) + +A "north" road has the stack high and the heap low: + + 0 rut hat ffff + | | | | + |~~~~~~~~~~~~-------##########################+++++++$~~~~~| + | | | | + 0 cap mat ffff + +A "south" road is the other way around: + + 0 mat cap ffff + | | | | + |~~~~~~~~~~~~$++++++##########################--------~~~~~| + | | | | + 0 hat rut ffff + +Legend: `-` is durable storage (heap); `+` is temporary storage +(stack); `~` is deep storage (immutable); `$` is the allocation +frame; `#` is free memory. + +Pointer restrictions: pointers stored in `+` can point anywhere. +Of course, pointing to `#` (free memory) would be a bug. +Pointers in `-` can only point to `-` or `~`; pointers in `~` +only point to `~`. + +To "leap" is to create a new inner road in the `###` free space. +but in the reverse direction, so that when the inner road +"falls" (terminates), its durable storage is left on the +temporary storage of the outer road. + +`u3` keeps a global variable, `u3_Road` or its alias `u3R`, which +points to the current road. (If we ever run threads in inner +roads - see below - this will become a thread-local variable.) +Relative to `u3R`, `+` memory is called `junior` memory; `-` +memory is `normal` memory; `~` is `senior` memory. + +### u3: explaining the road model + +But... why? + +We're now ready to understand why the road system works so +logically with the event and persistence model. + +The key is that *we don't update refcounts in senior memory.* +A pointer from an inner road to an outer road is not counted. +Also, the outmost, or `surface` road, is the only part of the +image that gets checkpointed. + +So the surface road contains the entire durable state of `u3`. +When we process an event, or perform any kind of complicated or +interesting calculation, *we process it in an inner road*. If +its results are saved, they need to be copied. + +Since processing in an inner road does not touch surface memory, +(a) we can leave the surface road in a read-only state and not +mark its pages dirty; (b) we can abort an inner calculation +without screwing up the surface; and (c) because inner results +are copied onto the surface, the surface doesn't get fragmented. + +All of (a), (b) and (c) are needed for checkpointing to be easy. +It might be tractable otherwise, but easy is even better. + +Moreover, while the surface is most definitely single-threaded, +we could easily run multiple threads in multiple inner roads +(as long as the threads don't have pointers into each others' +memory, which they obviously shouldn't). + +Moreover, in future, we'll experiment more with adding road +control hints to the programmer's toolbox. Reference counting is +expensive. We hypothesize that in many - if not most - cases, +the programmer can identify procedural structures whose garbage +should be discarded in one step by copying the results. Then, +within the procedure, we can switch the allocator into `sand` +mode, and stop tracking references at all. + +### u3: rules for C programming + +There are two levels at which we program in C: (1) above the +interpreter; (2) within the interpreter or jets. These have +separate rules which need to be respected. + +### u3: rules above the interpreter + +In its relations with Unix, Urbit follows a strict rule of "call +me, I won't call you." We do of course call Unix system calls, +but only for the purpose of actually computing. + +Above Urbit, you are in a normal C/Unix programming environment +and can call anything in or out of Urbit. Note that when using +`u3`, you're always on the surface road, which is not thread-safe +by default. Generally speaking, `u3` is designed to support +event-oriented, single-threaded programming. + +If you need threads which create nouns, you could use +`u3m_hate()` and `u3m_love()` to run these threads in subroads. +You'd need to make the global road pointer, `u3R`, a thread-local +variable instead. This seems perfectly practical, but we haven't +done it because we haven't needed to. + +### u3: rules within the interpreter + +Within the interpreter, your code can run either in the surface +road or in a deep road. You can test this by testing + + (&u3H->rod_u == u3R) + +ie: does the pier's home road equal the current road pointer? + +Normally in this context you assume you're obeying the rules of +running on an inner road, ie, "deep memory." Remember, however, +that the interpreter *can* run on surface memory - but anything +you can do deep, you can do on the surface. The converse is by +no means the case. + +In deep memory, think of yourself as if in a signal handler. +Your execution context is extremely fragile and may be terminated +without warning or cleanup at any time (for instance, by ^C). + +For instance, you can't call `malloc` (or C++ `new`) in your C +code, because you don't have the right to modify data structures +at the global level, and will leave them in an inconsistent state +if your inner road gets terminated. (Instead, use our drop-in +replacements, `u3a_malloc()`, `u3a_free()`, `u3a_realloc()`.) + +A good example is the different meaning of `u3_assert()` inside +and outside the interpreter. At either layer, you can use +regular assert(), which will just kill your process. On the +surface, `u3_assert()` will just... kill your process. + +In deep execution, `u3_assert()` will issue an exception that +queues an error event, complete with trace stack, on the Arvo +event queue. Let's see how this happens. + +### u3: exceptions + +You produce an exception with + + /* u3m_bail(): bail out. Does not return. + ** + ** Bail motes: + ** + ** %exit :: semantic failure + ** %evil :: bad crypto + ** %intr :: interrupt + ** %fail :: execution failure + ** %foul :: assert failure + ** %need :: network block + ** %meme :: out of memory + ** %time :: timed out + ** %oops :: assertion failure + */ + c3_i + u3m_bail(c3_m how_m); + +Broadly speaking, there are two classes of exception: internal +and external. An external exception begins in a Unix signal +handler. An internal exception begins with a call to longjmp() +on the main thread. + +There are also two kinds of exception: mild and severe. An +external exception is always severe. An internal exception is +normally mild, but some (like `c3__oops`, generated by +`u3_assert()`) are severe. + +Either way, exceptions come with a stack trace. The `u3` nock +interpreter is instrumented to retain stack trace hints and +produce them as a printable `(list tank)`. + +Mild exceptions are caught by the first virtualization layer and +returned to the caller, following the behavior of the Nock +virtualizer `++mock` (in `hoon.hoon`) + +Severe exceptions, or mild exceptions at the surface, terminate +the entire execution stack at any depth and send the cumulative +trace back to the `u3` caller. + +For instance, `vere` uses this trace to construct a `%crud` +event, which conveys our trace back toward the Arvo context where +it crashed. This lets any UI component anywhere, even on a +remote node, render the stacktrace as a consequence of the user's +action - even if its its direct cause was (for instance) a Unix +SIGINT or SIGALRM. + +### u3: C structures on the loom + +Normally, all data on the loom is nouns. Sometimes we break this +rule just a little, though - eg, in the `u3h` hashtables. + +To point to non-noun C structs on the loom, we use a `u3_post`, +which is just a loom word offset. A macro lets us declare this +as if it was a pointer: + + typedef c3_w u3_post; + #define u3p(type) u3_post + +Some may regard this as clever, others as pointless. Anyway, use +`u3to()` and `u3of()` to convert to and from pointers. + +When using C structs on the loom - generally a bad idea - make +sure anything which could be on the surface road is structurally +portable, eg, won't change size when the pointer size changes. +(Note also: we consider little-endian, rightly or wrongly, to +have won the endian wars.) + +## u3: API overview by prefix + +Let's run through the `u3` modules one by one. All public +functions are commented, but the comments may be cryptic. + +### u3m: main control + +To start `u3`, run + + /* u3m_boot(): start the u3 system. + */ + void + u3m_boot(c3_o nuu_o, c3_o bug_o, c3_c* dir_c); + +`nuu_o` is `c3y` (yes, `0`) if you're creating a new pier, +`c3n` (no, `1`) if you're loading an existing one. `bug_o` +is `c3y` if you want to test the garbage-collector, `c3n` +otherwise. `dir_c` is the directory for the pier files. + +`u3m_boot()` expects an `urbit.pill` file to load the kernel +from. This is specified with the -B commandline option. + +Any significant computation with nouns, certainly anything Turing +complete, should be run (a) virtualized and (b) in an inner road. +These are slightly different things, but at the highest level we +bundle them together for your convenience, in `u3m_soft()`: + + /* u3m_soft(): system soft wrapper. unifies unix and nock errors. + ** + ** Produces [%$ result] or [%error (list tank)]. + */ + u3_noun + u3m_soft(c3_w sec_w, u3_funk fun_f, u3_noun arg); + +`sec_w` is the number of seconds to time out the computation. +`fun_f` is a C function accepting `arg`. + +The result of `u3m_soft()` is a cell whose head is an atom. If +the head is `%$` - ie, `0` - the tail is the result of +`fun_f(arg)`. Otherwise, the head is a `term` (an atom which is +an LSB first string), and the tail is a `(list tank)` (a list of +`tank` printables - see `++tank` in `hoon.hoon`). Error terms +should be the same as the exception terms above. + +If you're confident that your computation won't fail, you can +use `u3m_soft_sure()`, `u3m_soft_slam()`, or `u3m_soft_nock()` +for C functions, Hoon function calls, and Nock invocations. +Caution - this returns just the result, and asserts globally. + +All the `u3m_soft` functions above work *only on the surface*. +Within the surface, virtualize with `u3m_soft_run()`. Note that +this takes a `fly` (a namespace gate), thus activating the `11` +super-operator in the nock virtualizer, `++mock`. When actually +using the `fly`, call `u3m_soft_esc()`. Don't do either unless +you know what you're doing! + +For descending into a subroad *without* Nock virtualization, +use `u3m_hate()` and `u3m_love` respectively. Hating enters +a subroad; loving leaves it, copying out a product noun. + +Other miscellaneous tools in `u3m`: `u3m_file()` loads a Unix +file as a Nock atom; `u3m_water()` measures the boundaries of +the loom in current use (ie, watermarks); and a variety of +prettyprinting routines, none perfect, are available, mainly for +debugging printfs: `u3m_pretty()`, `u3m_p()`, `u3m_tape()` and +`u3m_wall()`. + +It's sometimes nice to run a mark-and-sweep garbage collector, +`u3m_grab()`, which collects the world from a list of roots, +and asserts if it finds any leaks or incorrect refcounts. This +tool is for debugging and long-term maintenance only; refcounts +should never err. + +### u3j: jets + +The jet system, `u3j`, is what makes `u3` and `nock` in any sense +a useful computing environment. Except perhaps `u3a` (there is +really no such thing as a trivial allocator, though `u3a` is +dumber than most) - `u3j` is the most interesting code in `u3`. + +Let's consider the minor miracle of driver-to-battery binding +which lets `u3j` work - and decrement not be `O(n)` - without +violating the precisely defined semantics of pure Nock, *ever*. + +It's easy to assume that jets represent an architectural coupling +between Hoon language semantics and Nock interpreter internals. +Indeed such a coupling would be wholly wrongtious and un-Urbit. +But the jet system is not Hoon-specific. It is specific to nock +runtime systems that use a design pattern we call a `core`. + +#### u3j: core structure + +A core is no more than a cell `[code data]`, in which a `code` is +either a Nock formula or a cell of `code`s, and `data` is anything. +In a proper core, the subject each formula expects is the core +itself. + +Except for the arbitrary decision to make a core `[code data]`, +(or as we sometimes say, `[battery payload]`), instead of `[data +code]`, any high-level language transforming itself to Nock would +use this design. + +So jets are in fact fully general. Broadly speaking, the jet +system works by matching a C *driver* to a battery. When the +battery is invoked with Nock operator `9`, it must be found in +associative memory and linked to its driver. Then we link the +formula axis of the operation (`a` in `[9 a b]`) to a specific +function in the driver. + +To validate this jet binding, we need to know two things. One, +we need to know the C function actually is a perfect semantic +match for the Nock formula. This can be developed with driver +test flags, which work, and locked down with a secure formula +hash in the driver, which we haven't bothered with just yet. +(You could also try to develop a formal method for verifying +that C functions and Nock formulas are equivalent, but this is +a research problem for the future.) + +Two, we need to validate that the payload is appropriate for the +battery. We should note that jets are a Nock feature and have no +reference to Hoon. A driver which relies on the Hoon type system +to only pair it with valid payloads is a broken driver, and +breaks the Nock compliance of the system as a whole. So don't. + +Now, a casual observer might look at `[battery payload]` and +expect the simplest case of it to be `[formula subject]`. That +is: to execute a simple core whose battery is a single formula, +we compute + + nock(+.a -.a) + +Then, naturally, when we go from Hoon or a high-level language +containing functions down to Nock, `[function arguments]` turns +into `[formula subject]`. This seems like an obvious design, and +we mention it only because it is *completely wrong*. + +Rather, to execute a one-armed core like the above, we run + + nock(a -.a) + +and the normal structure of a `gate`, which is simply Urbitese +for "function," is: + + [formula [sample context]] + +where `sample` is Urbitese for "arguments" - and `context`, any +Lisper will at once recognize, is Urbitese for "environment." + +To `slam` or call the gate, we simply replace the default sample +with the caller's data, then nock the formula on the entire gate. + +What's in the context? Unlike in most dynamic languages, it is +not some secret system-level bag of tricks. Almost always it is +another core. This onion continues until at the bottom, there is +an atomic constant, conventionally is the kernel version number. + +Thus a (highly desirable) `static` core is one of the form + + [battery constant] + [battery static-core] + +ie, a solid stack of nested libraries without any dynamic data. +The typical gate will thus be, for example, + + [formula [sample [battery battery battery constant]]] + +but we would be most foolish to restrict the jet mechanism to +cores of this particular structure. We cannot constrain a +payload to be `[sample static-core]`, or even `[sample core]`. +Any such constraint would not be rich enough to handle Hoon, +let alone other languages. + +#### u3j: jet state + +There are two fundamental rules of computer science: (1) every +system is best understood through its state; (2) less state is +better than more state. Sadly, a pier has three different jet +state systems: `cold`, `warm` and `hot`. It needs all of them. + +Hot state is associated with this particular Unix process. The +persistent pier is portable not just between process and process, +but machine and machine or OS and OS. The set of jets loaded +into a pier may itself change (in theory, though not in the +present implementation) during the lifetime of the process. Hot +state is a pure C data structure. + +Cold state is associated with the logical execution history of +the pier. It consists entirely of nouns and ignores restarts. + +Warm state contains all dependencies between cold and hot +state. It consists of C structures allocated on the loom. + +Warm state is purely a function of cold and hot states, and +we can wipe and regenerate it at any time. On any restart where +the hot state might have changed, we clear the warm state +with `u3j_ream()`. + +There is only one hot state, the global jet dashboard +`u3j_Dash` or `u3D` for short. In the present implementation, +u3D is a static structure not modified at runtime, except for +numbering itself on process initialization. This structure - +which embeds function pointers to all the jets - is defined +in `j/tree.c`. The data structures: + + /* u3j_harm: driver arm. + */ + typedef struct _u3j_harm { + c3_c* fcs_c; // `.axe` or name + u3_noun (*fun_f)(u3_noun); // compute or 0 / semitransfer + c3_o ice; // perfect (don't test) + c3_o tot; // total (never punts) + c3_o liv; // live (enabled) + } u3j_harm; + + /* u3j_core: C core driver. + */ + typedef struct _u3j_core { + c3_c* cos_c; // control string + struct _u3j_harm* arm_u; // blank-terminated static list + struct _u3j_core* dev_u; // blank-terminated static list + struct _u3j_core* par_u; // dynamic parent pointer + c3_l jax_l; // dynamic jet index + } u3j_core; + + /* u3e_dash, u3_Dash, u3D: jet dashboard singleton + */ + typedef struct _u3e_dash { + u3j_core* dev_u; // null-terminated static list + c3_l len_l; // ray_u filled length + c3_l all_l; // ray_u allocated length + u3j_core* ray_u; // dynamic driver array + } u3j_dash; + +Warm and cold state is *per road*. In other words, as we nest +roads, we also nest jet state. The jet state in the road is: + + struct { // jet dashboard + u3p(u3h_root) har_p; // warm state + u3_noun das; // cold state + } jed; + +In case you understand Hoon, `das` (cold state) is a `++dash`, +and `har_p` (warm state) is a map from battery to `++calx`: + + ++ bane ,@tas :: battery name + ++ bash ,@uvH :: label hash + ++ bosh ,@uvH :: local battery hash + ++ batt ,* :: battery + ++ calf :: + $: jax=,@ud :: hot core index + hap=(map ,@ud ,@ud) :: axis/hot arm index + lab=path :: label as path + jit=* :: arbitrary data + == :: + ++ calx (trel calf (pair bash cope) club) :: cached by battery + ++ clog (pair cope (map batt club)) :: identity record + ++ club (pair corp (map term nock)) :: battery pattern + ++ cope (trel bane axis (each bash noun)) :: core pattern + ++ core ,* :: core + ++ corp (each core batt) :: parent or static + ++ dash (map bash clog) :: jet system + +The driver index `jax` in a `++calx` is an index into `ray_u` in the +dashboard - ie, a pointer into hot state. This is why the warm +state has to be reset when we reload the pier in a new process. + +Why is jet state nested? Nock of course is a functional system, +so as we compute we don't explicitly create state. Jet state is +an exception to this principle (which works only because it can't +be semantically detected from Nock/Hoon) - but it can't violate +the fundamental rules of the allocation system. + +For instance, when we're on an inner road, we can't allocate on +an outer road, or point from an outer road to an inner. So if we +learn something - like a mapping from battery to jet - in the +inner road, we have to keep it in the inner road. + +Mitigating this problem, when we leave an inner road (with +`u3m_love()`), we call `u3j_reap()` to promote jet information in +the dying road. Reaping promotes anything we've learned about +any battery that either (a) already existed in the outer road, or +(b) is being saved to the outer road. + +#### u3j: jet binding + +Jet binding starts with a `%fast` hint. (In Hoon, this is +produced by the runes `~%`, for the general case, or `~/` +for simple functions.) To bind a jet, execute a formula of the +form: + + [10 [%fast clue-formula] core-formula] + +`core-formula` assembles the core to be jet-propelled. +`clue-formula` produces the hint information, or `++clue` +above, which we want to annotate it with. + +A clue is a triple of name, parent, and hooks: + + ++ clue (trel chum nock (list (pair term nock))) + +The name, or `++chum`, has a bunch of historical structure which +we don't need (cleaning these things up is tricky), but just gets +flattened into a term. + +The parent axis is a nock formula, but always reduces to a simple +axis, which is the address of this core's *parent*. Consider +again an ordinary gate + + [formula [sample context]] + +Typically the `context` is itself a library core, which itself +has a jet binding. If so, the parent axis of this gate is `7`. + +If the parent is already bound - and the parent *must* be already +bound, in this road or a road containing it - we can hook this core +bottom-up into a tree hierarchy. Normally the child core is +produced by an arm of the parent core, so this is not a problem - +we wouldn't have the child if we hadn't already made the parent. + +The clue also contains a list of *hooks*, named nock formulas on +the core. Usually these are arms, but they need not be. The +point is that we often want to call a core from C, in a situation +where we have no type or other source information. A common case +of this is a complex system in which we're mixing functions which +are jet-propelled with functions that aren't. + +In any case, all the information in the `%fast` hint goes to +`u3j_mine()`, which registers the battery in cold state (`das` in +`jed` in `u3R`), then warm state (`har_p` in `jed`). + +It's essential to understand that the `%fast` hint has to be, +well, fast - because we apply it whenever we build a core. For +instance, if the core is a Hoon gate - a function - we will call +`u3j_mine` every time the function is called. + +### u3j: the cold jet dashboard + +For even more fun, the jet tree is not actually a tree of +batteries. It's a tree of battery *labels*, where a label is +an [axis term] path from the root of the tree. (At the root, +if the core pattern is always followed properly, is a core whose +payload is an atomic constant, conventionally the Hoon version.) + +Under each of these labels, it's normal to have an arbitrary +number of different Nock batteries (not just multiple copies +of the same noun, a situation we *do* strive to avoid). For +instance, one might be compiled with debugging hints, one not. + +We might even have changed the semantics of the battery without +changing the label - so long as those semantics don't invalidate +any attached driver. + +et tree. For instance, it's normal to have +two equivalent Nock batteries at the same time in one pier: one +battery compiled with debugging hints, one not. + +Rather, the jet tree is a semantic hierarchy. The root of the +hierarchy is a constant, by convention the Hoon kernel version +because any normal jet-propelled core has, at the bottom of its +onion of libraries, the standard kernel. Thus if the core is + + [foo-battery [bar-battery [moo-battery 164]]] + +we can reverse the nesting to construct a hierarchical core +path. The static core + + 164/moo/bar/foo + +extends the static core `164/moo/bar` by wrapping the `foo` +battery (ie, in Hoon, `|%`) around it. With the core above, +you can compute `foo` stuff, `bar` stuff, and `moo` stuff. +Rocket science, not. + +Not all cores are static, of course - they may contain live data, +like the sample in a gate (ie, argument to a function). Once +again, it's important to remember that we track jet bindings not +by the core, which may not be static, but by the battery, which +is always static. + +(And if you're wondering how we can use a deep noun like a Nock +formula or battery as a key in a key-value table, remember +`mug_w`, the lazily computed short hash, in all boxed nouns.) + +In any case, `das`, the dashboard, is a map from `bash` to jet +location record (`++clog`). A `clog` in turn contains two kinds +of information: the `++cope`, or per-location noun; and a map of +batteries to a per-battery `++club`. + +The `cope` is a triple of `++bane` (battery name, right now just +a `term`); `++axis`, the axis, within *this* core, of the parent; +and `(each bash noun)`, which is either `[0 bash]` if the parent +is another core, or `[1 noun]`, for the constant noun (like +`164`) if there is no parent core. + +A `bash` is just the noun hash (`++sham`) of a `cope`, which +uniquely expresses the battery's hierarchical location without +depending on the actual formulas. + +The `club` contains a `++corp`, which we use to actually validate +the core. Obviously jet execution has to be perfectly compatible +with Nock. We search on the battery, but getting the battery +right is not enough - a typical battery is dependent on its +context. For example, your jet-propelled library function is +very likely to call `++dec` or other advanced kernel technology. +If you've replaced the kernel in your context with something +else, we need to detect this and not run the jet. + +There are two cases for a jet-propelled core - either the entire +core is a static constant, or it isn't. Hence the definition +of `corp`: + + ++ corp (each core batt) :: parent or static + +Ie, a `corp` is `[0 core]` or `[1 batt]`. If it's static - +meaning that the jet only works with one specific core, ie, the +parent axis of each location in the hierarchy is `3` - we can +validate with a single comparison. Otherwise, we have to recurse +upward by checking the parent. + +Note that there is at present no way to force a jet to depend on +static *data*. + +### u3j: the warm jet dashboard + +We don't use the cold state to match jets as we call them. We +use the cold state to register jets as we find them, and also to +rebuild the warm state after the hot state is reset. + +What we actually use at runtime is the warm state, `jed->har_p`, +which is a `u3h` (built-in hashtable), allocated on the loom, +from battery to `++calx`. + +A `calx` is a triple of a `++calf`, a `[bash cope]` cell, and a +`club`. The latter two are all straight from cold state. + +The `calf` contains warm data dependent on hot state. It's a +quadruple: of `jax`, the hot driver index (in `ray_u` in +`u3j_dash`); `hap`, a table from arm axis (ie, the axis of each +formula within the battery) to driver arm index (into `arm_u` in +`u3j_core`); `lab`, the complete label path; and `jit`, any +other dynamic data that may speed up execution. + +We construct `hap`, when we create the calx, by iterating through +the arms registered in the `u3j_core`. Note the way a `u3j_harm` +declares itself, with the string `fcs_c` which can contain either +an axis or a name. Most jetted cores are of course gates, which +have one formula at one axis within the core: `fcs_c` is `".3"`. + +But we do often have fast cores with more complex arm structure, +and it would be sad to have to manage their axes by hand. To use +an `fcs_c` with a named arm, it's sufficient to make sure the +name is bound to a formula `[0 axis]` in the hook table. + +`jit`, as its name suggests, is a stub where any sort of +optimization data computed on battery registration might go. To +use it, fill in the `_cj_jit()` function. + +### u3j: the hot dashboard + +Now it should be easy to see how we actually invoke jets. Every +time we run a nock `9` instruction (pretty often, obviously), we +have a core and an axis. We pass these to `u3j_kick()`, which +will try to execute them. + +Because nouns with a reference count of 1 are precious, +`u3j_kick()` has a tricky reference control definition. It +reserves the right to return `u3_none` in the case where there is +no driver, or the driver does not apply for this case; in this +case, it retains argument `cor`. If it succeeds, though, it +transfers `cor`. + +`u3j_kick()` searches for the battery (always the head of the +core, of course) in the hot dashboard. If the battery is +registered, it searches for the axis in `hap` in the `calx`. +If it exists, the core matches a driver and the driver jets this +arm. If not, we return `u3_none`. + +Otherwise, we call `fun_f` in our `u3j_harm`. This obeys the +same protocol as `u3j_kick()`; it can refuse to function by +returning `u3_none`, or consume the noun. + +Besides the actual function pointer `fun_f`, we have some flags +in the `u3j_harm` which tell us how to call the arm function. + +If `ice` is yes (`&`, `0`), the jet is known to be perfect and we +can just trust the product of `fun_f`. Otherwise, we need to run +*both* the Nock arm and `fun_f`, and compare their results. + +(Note that while executing the C side of this test, we have to +set `ice` to yes; on the Nock side, we have to set `liv` to no. +Otherwise, many non-exponential functions become exponential. +When auto-testing jets in this way, the principle is that the +test is on the outermost layer of recursion.) + +(Note also that anyone who multi-threads this execution +environment has a slight locking problem with these flags if arm +testing is multi-threaded.) + +If `tot` is yes, (`&`, `0`), the arm function is *total* and has +to return properly (though it can still return *u3_none*). +Otherwise, it is *partial* and can `u3_cm_bail()` out with +c3__punt. This feature has a cost: the jet runs in a subroad. + +Finally, if `liv` is no (`|`, 1), the jet is off and doesn't run. + +It should be easy to see how the tree of cores gets declared - +precisely, in `j/dash.c`. We declare the hierarchy as a tree +of `u3j_core` structures, each of which comes with a static list +of arms `arm_u` and sub-cores `dev_u`. + +In `u3j_boot()`, we traverse the hierarchy, fill in parent +pointers `par_u`, and enumerate all `u3j_core` structures +into a single flat array `u3j_dash.ray_u`. Our hot state +then appears ready for action. + +### u3j: jet functions + +At present, all drivers are compiled statically into `u3`. This is +not a long-term permanent solution or anything. However, it will +always be the case with a certain amount of core functionality. + +For instance, there are some jet functions that we need to call +as part of loading the Arvo kernel - like `++cue` to unpack a +noun from an atom. And obviously it makes sense, when jets are +significant enough to compile into `u3`, to export their symbols +in headers and the linker. + +There are three interface prefixes for standard jet functions: +`u3k`, `u3q`, and `u3w`. All jets have `u3w` interfaces; most +have `u3q`; some have `u3k`. Of course the actual logic is +shared. + +`u3w` interfaces use the same protocol as `fun_f` above: the +caller passes the entire core, which is retained if the function +returns `u3_none`, transferred otherwise. Why? Again, use +counts of 1 are special and precious for performance hackers. + +`u3q` interfaces break the core into C arguments, *retain* noun +arguments, and *transfer* noun returns. `u3k` interfaces are the +same, except with more use of `u3_none` and other simple C +variations on the Hoon original, but *transfer* both arguments +and returns. Generally, `u3k` are most convenient for new code. + +Following `u3k/q/w` is `[a-f]`, corresponding to the 6 logical +tiers of the kernel, or `g` for user-level jets. Another letter +is added for functions within subcores. The filename, under +`j/`, follows the tier and the function name. + +For instance, `++add` is `u3wa_add(cor)`, `u3qa_add(a, b)`, or +`u3ka_add(a, b)`, in `j/a/add.c`. `++get` in `++by` is +`u3wdb_get(cor)`, `u3kdb_get(a, b)`, etc, in `j/d/by_get.c`. + +For historical reasons, all internal jet code in `j/[a-f]` +*retains* noun arguments, and *transfers* noun results. Please +do not do this in new `g` jets! The new standard protocol is to +transfer both arguments and results. + +### u3a: allocation functions + +`u3a` allocates on the current road (u3R). Its internal +structures are uninteresting and typical of a naive allocator. + +The two most-used `u3a` functions are `u3a_gain()` to add a +reference count, and `u3a_lose()` to release one (and free the +noun, if the use count is zero). For convenience, `u3a_gain()` +returns its argument. The pair are generally abbreviated with +the macros `u3k()` and `u3z()` respectively. + +Normally we create nouns through `u3i` functions, and don't call +the `u3a` allocators directly. But if you do: + +One, there are *two* sets of allocators: the word-aligned +allocators and the fully-aligned (ie, malloc compatible) +allocators. For instance, on a typical OS X setup, malloc +produces 16-byte aligned results - needed for some SSE +instructions. + +These allocators are *not compatible*. For 32-bit alignment +as used in nouns, call + + /* u3a_walloc(): allocate storage measured in words. + */ + void* + u3a_walloc(c3_w len_w); + + /* u3a_wfree(): free storage. + */ + void + u3a_wfree(void* lag_v); + + /* u3a_wealloc(): word realloc. + */ + void* + u3a_wealloc(void* lag_v, c3_w len_w); + +For full alignment, call: + + /* u3a_malloc(): aligned storage measured in bytes. + */ + void* + u3a_malloc(size_t len_i); + + /* u3a_realloc(): aligned realloc in bytes. + */ + void* + u3a_realloc(void* lag_v, size_t len_i); + + /* u3a_realloc2(): gmp-shaped realloc. + */ + void* + u3a_realloc2(void* lag_v, size_t old_i, size_t new_i); + + /* u3a_free(): free for aligned malloc. + */ + void + u3a_free(void* tox_v); + + /* u3a_free2(): gmp-shaped free. + */ + void + u3a_free2(void* tox_v, size_t siz_i); + +There are also a set of special-purpose allocators for building +atoms. When building atoms, please remember that it's incorrect +to have a high 0 word - the word length in the atom structure +must be strictly correct. + +Of course, we don't always know how large our atom will be. +Therefore, the standard way of building large atoms is to +allocate a block of raw space with `u3a_slab()`, then chop off +the end with `u3a_malt()` (which does the measuring itself) +or `u3a_mint()` in case you've measured it yourself. + +Once again, *do not call `malloc()`* (or C++ `new`) within any +code that may be run within a jet. This will cause rare sporadic +corruption when we interrupt execution within a `malloc()`. We'd +just override the symbol, but `libuv` uses `malloc()` across +threads within its own synchronization primitives - for this to +work with `u3a_malloc()`, we'd have to introduce our own locks on +the surface-level road (which might be a viable solution). + +### u3n: nock execution + +The `u3n` routines execute Nock itself. On the inside, they have +a surprising resemblance to the spec proper (the only interesting +detail is how we handle tail-call elimination) and are, as one +would expect, quite slow. (There is no such thing as a fast tree +interpreter.) + +There is only one Nock, but there are lots of ways to call it. +(Remember that all `u3n` functions *transfer* C arguments and +returns.) + +The simplest interpreter, `u3n_nock_on(u3_noun bus, u3_noun fol)` +invokes Nock on `bus` (the subject) and `fol` (the formula). +(Why is it`[subject formula]`, not `[formula subject]`? The same +reason `0` is true and `1` is false.) + +A close relative is `u3n_slam_on(u3_noun gat, u3_noun sam)`, +which slams a *gate* (`gat`) on a sample (`sam`). (In a normal +programming language which didn't talk funny and was retarded, +`u3n_slam_on()` would call a function on an argument.) We could +write it most simply as: + + u3_noun + u3n_slam_on(u3_noun gat, u3_noun sam) + { + u3_noun pro = u3n_nock_on + (u3nc(u3k(u3h(gat)), + u3nc(sam, u3k(u3t(u3t(gat))))), + u3k(u3h(gat))); + u3z(gat); + return pro; + } + +Simpler is `u3n_kick_on(u3_noun gat)`, which slams a gate (or, +more generally, a *trap* - because sample structure is not even +needed here) without changing its sample: + + u3_noun + u3n_kick_on(u3_noun gat, u3_noun sam) + { + return u3n_nock_on(gat, u3k(u3h(gat))); + } + +The `_on` functions in `u3n` are all defined as pure Nock. But +actually, even though we say we don't extend Nock, we do. But we +don't. But we do. + +Note that `u3` has a well-developed error handling system - +`u3m_bail()` to throw an exception, `u3m_soft_*` to catch one. +But Nock has no exception model at all. That's okay - all it +means if that if an `_on` function bails, the exception is an +exception in the caller. + +However, `u3`'s exception handling happens to match a convenient +virtual super-Nock in `hoon.hoon`, the infamous `++mock`. Of +course, Nock is slow, and `mock` is Nock in Nock, so it is +(logically) super-slow. Then again, so is decrement. + +With the power of `u3`, we nest arbitrary layers of `mock` +without any particular performance cost. Moreover, we simply +treat Nock proper as a special case of `mock`. (More precisely, +the internal VM loop is `++mink` and the error compiler is +`++mook`. But we call the whole sandbox system `mock`.) + +The nice thing about `mock` functions is that (by executing +within `u3m_soft_run()`, which as you may recall uses a nested +road) they provide both exceptions and the namespace operator - +`.^` in Hoon, which becomes operator `11` in `mock`. + +`11` requires a namespace function, or `fly`, which produces a +`++unit` - `~` (`0`) for no binding, or `[0 value]`. The sample +to a `fly` is a `++path`, just a list of text `span`. + +`mock` functions produce a `++toon`. Fully elaborated: + + ++ noun ,* :: any noun + ++ path (list ,@ta) :: namespace path + ++ span ,@ta :: text-atom (ASCII) + ++ toon $% [%0 p=noun] :: success + [%1 p=(list path)] :: blocking paths + [%2 p=(list tank)] :: stack trace + == :: + ++ tank :: printable + $% [%leaf p=tape] :: flat text + $: %palm :: backstep list + p=[p=tape q=tape r=tape s=tape] :: mid cap open close + q=(list tank) :: contents + == :: + $: %rose :: straight list + p=[p=tape q=tape r=tape] :: mid open close + q=(list tank) :: contents + == :: + == + +(Note that `tank` is overdesigned and due for replacement.) + +What does a `toon` mean? Either your computation succeded (`[0 +noun]`, or could not finish because it blocked on one or more +global paths (`[1 (list path)]`), or it exited with a stack trace +(`[2 (list tank)]`). + +Note that of all the `u3` exceptions, only `%exit` is produced +deterministically by the Nock definition. Therefore, only +`%exit` produces a `2` result. Any other argument to +`u3m_bail()` will unwind the virtualization stack all the way to +the top - or to be more exact, to `u3m_soft_top()`. + +In any case, the simplest `mock` functions are `u3n_nock_un()` +and `u3n_slam_un()`. These provide exception control without +any namespace change, as you can see by the code: + + /* u3n_nock_un(): produce .*(bus fol), as ++toon. + */ + u3_noun + u3n_nock_un(u3_noun bus, u3_noun fol) + { + u3_noun fly = u3nt(u3nt(11, 0, 6), 0, 0); // |=(a=* .^(a)) + + return u3n_nock_in(fly, bus, fol); + } + + /* u3n_slam_un(): produce (gat sam), as ++toon. + */ + u3_noun + u3n_slam_un(u3_noun gat, u3_noun sam) + { + u3_noun fly = u3nt(u3nt(11, 0, 6), 0, 0); // |=(a=* .^(a)) + + return u3n_slam_in(fly, gat, sam); + } + +The `fly` is added as the first argument to `u3n_nock_in()` and +`u3n_slam_in()`. Of course, logically, `fly` executes in the +caller's exception layer. (Maintaining this illusion is slightly +nontrivial.) Finally, `u3n_nock_an()` is a sandbox with a null +namespace. + +### u3e: persistence + +The only `u3e` function you should need to call is `u3e_save()`, +which saves the loom. As it can be restored on any platform, +please make sure you don't have any state in the loom that is +bound to your process or architecture - except for exceptions +like the warm jet state, which is actively purged on reboot. + +### u3r: reading nouns (weak) + +As befits accessors they don't make anything, `u3r` noun reading +functions always retain their arguments and their returns. They +never bail; rather, when they don't work, they return a `u3_weak` +result. + +Most of these functions are straightforward and do only what +their comments say. A few are interesting enough to discuss. + +`u3r_at()` is the familiar tree fragment function, `/` from the +Nock spec. For taking complex nouns apart, `u3r_mean()` is a +relatively funky way of deconstructing nouns with a varargs list +of `axis`, `u3_noun *`. For cells, triples, etc, decompose with +`u3r_cell()`, `u3r_trel()`, etc. For the tagged equivalents, use +`u3r_pq()` and friends. + +`u3r_sing(u3_noun a, u3_noun b)` (true if `a` and `b` are a +*single* noun) are interesting because it uses mugs to help it +out. Clearly, different nouns may have the same mug, but the +same nouns cannot have a different mug. It's important to +understand the performance characteristics of `u3r_sing()`: +the worst possible case is a comparison of duplicate nouns, +which have the same value but were created separately. In this +case, the tree is traversed + +`u3r_sung()` is a deeply funky and frightening version of +`u3r_sing()` that unifies pointers to the duplicate nouns it +finds, freeing the second copy. Obviously, do not use +`u3r_sung()` when you have live, but not reference counted, noun +references from C - if they match a noun with a refcount of 1 +that gets freed, bad things happen. + +It's important to remember that `u3r_mug()`, which produces a +31-bit, nonzero insecure hash, uses the `mug_w` slot in any boxed +noun as a lazy cache. There are a number of variants of +`u3r_mug()` that can get you out of building unneeded nouns. + +### u3x: reading nouns (bail) + +`u3x` functions are like `u3r` functions, but instead of +returning `u3_none` when (for instance) we try to take the head +of an atom, they bail with `%exit`. In other words, they do what +the same operation would do in Nock. + +### u3h: hash tables. + +We can of course use the Hoon `map` structure as an associative +array. This is a balanced treap and reasonably fast. However, +it's considerably inferior to a custom structure like an HAMT +(hash array-mapped trie). We use `u3_post` to allocate HAMT +structures on the loom. + +(Our HAMT implements the classic Bagwell algorithm which depends +on the `gcc` standard directive `__builtin_popcount()`. On a CPU +which doesn't support popcount or an equivalent instruction, some +other design would probably be preferable.) + +There's no particular rocket science in the API. `u3h_new()` +creates a hashtable; `u3h_free()` destroys one; `u3h_put()` +inserts, `u3h_get()` retrieves. You can transform values in a +hashtable with `u3h_walk()`. + +The only funky function is `u3h_gut()`, which unifies keys with +`u3r_sung()`. As with all cases of `u3r_sung()`, this must be +used with extreme caution. + +### u3z: memoization + +Connected to the `~+` rune in Hoon, via the Nock `%memo` hint, +the memoization facility is a general-purpose cache. + +(It's also used for partial memoization - a feature that'll +probably be removed, in which conservative worklist algorithms +(which would otherwise be exponential) memoize everything in the +subject *except* the worklist. This is used heavily in the Hoon +compiler jets (j/f/*.c). Unfortunately, it's probably not +possible to make this work perfectly in that it can't be abused +to violate Nock, so we'll probably remove it at a later date, +instead making `++ut` keep its own monadic cache.) + +Each `u3z` function comes with a `c3_m` mote which disambiguates +the function mapping key to value. For Nock itself, use 0. For +extra speed, small tuples are split out in C; thus, find with + + u3_weak u3z_find(c3_m, u3_noun); + u3_weak u3z_find_2(c3_m, u3_noun, u3_noun); + u3_weak u3z_find_3(c3_m, u3_noun, u3_noun, u3_noun); + u3_weak u3z_find_4(c3_m, u3_noun, u3_noun, u3_noun, u3_noun); + +and save with + + u3_noun u3z_save(c3_m, u3_noun, u3_noun); + u3_noun u3z_save_2(c3_m, u3_noun, u3_noun, u3_noun); + u3_noun u3z_save_3(c3_m, u3_noun, u3_noun, u3_noun, u3_noun); + u3_noun u3z_save_4(c3_m, u3_noun, u3_noun, u3_noun, u3_noun, u3_noun); + +where the value is the last argument. To eliminate duplicate +nouns, there is also + + u3_noun + u3z_uniq(u3_noun); + +`u3z` functions retain keys and transfer values. + +The `u3z` cache, built on `u3h` hashes, is part of the current +road, and goes away when it goes away. (In future, we may wish +to promote keys/values which outlive the road, as we do with jet +state.) There is no cache reclamation at present, so be careful. + +### u3t: tracing and profiling. + +TBD. + +### u3v: the Arvo kernel + +An Arvo kernel - or at least, a core that compiles with the Arvo +interface - is part of the global `u3` state. What is an Arvo +core? Slightly pseudocoded: + + ++ arvo + |% + ++ come |= [yen=@ ova=(list ovum) nyf=pone] :: 11 + ^- [(list ovum) _+>] + !! + ++ keep |= [now=@da hap=path] :: 4 + ^- (unit ,@da) + !! + ++ load |= [yen=@ ova=(list ovum) nyf=pane] :: 86 + ^- [(list ovum) _+>] + !! + ++ peek |= [now=@da path] :: 87 + ^- (unit) + !! + ++ poke |= [now=@da ovo=ovum] :: 42 + ^- [(list ovum) _+>] + !! + ++ wish |= txt=@ta :: 20 + ^- * + !! + -- + ++ card ,[p=@tas q=*] :: typeless card + ++ ovum ,[p=wire q=card] :: Arvo event + ++ wire path :: event cause + +This is the Arvo ABI in a very real sense. Arvo is a core with +these six arms. To use these arms, we hardcode the axis of the +formula (`11`, `4`, `86`, etc) into the C code that calls Arvo, +because otherwise we'd need type metadata - which we can get, by +calling Arvo. + +It's important to understand the Arvo event/action structure, or +`++ovum`. An `ovum` is a `card`, which is any `[term noun]` +cell, and a `++wire`, a `path` which indicates the location of +the event. At the Unix level, the `wire` corresponds to a system +module or context. For input events, this is the module that +caused the event; for output actions, it's the module that +performs the action. + +`++poke` sends Arvo an event `ovum`, producing a cell of action +ova and a new Arvo core. + +`++peek` dereferences the Arvo namespace. It takes a date and a +key, and produces `~` (`0`) or `[~ value]`. + +`++keep` asks Arvo the next time it wants to be woken up, for the +given `wire`. (This input will probably be eliminated in favor +of a single global timer.) + +`++wish` compiles a string of Hoon source. While just a +convenience, it's a very convenient convenience. + +`++come` and `++load` are used by Arvo to reset itself (more +precisely, to shift the Arvo state from an old kernel to a new +one); there is no need to call them from C. + +Now that we understand the Arvo kernel interface, let's look at +the `u3v` API. As usual, all the functions in `u3v` are +commented, but unfortunately it's hard to describe this API as +clean at present. The problem is that `u3v` remains design +coupled to the old `vere` event handling code written for `u2`. +But let's describe the functions you should be calling, assuming +you're not writing the next event system. There are only two. + +`u3v_wish(str_c)` wraps the `++wish` functionality in a cache +(which is read-only unless you're on the surface road). + +`u3v_do()` uses `wish` to provide a convenient interface for +calling Hoon kernel functions by name. Even more conveniently, +we tend to call `u3v_do()` with these convenient aliases: + + #define u3do(txt_c, arg) u3v_do(txt_c, arg) + #define u3dc(txt_c, a, b) u3v_do(txt_c, u3nc(a, b)) + #define u3dt(txt_c, a, b, c) u3v_do(txt_c, u3nt(a, b, c)) + #define u3dq(txt_c, a, b, c, d) u3v_do(txt_c, u3nt(a, b, c, d)) + diff --git a/vere/docker/Dockerfile b/vere/docker/Dockerfile new file mode 100644 index 0000000..7151534 --- /dev/null +++ b/vere/docker/Dockerfile @@ -0,0 +1,12 @@ +FROM alpine:3.17.1 +RUN apk update && apk add bash curl +ENV PATH="$PATH:/bin" +COPY get_urbit_code.sh /bin/get_urbit_code +COPY reset_urbit_code.sh /bin/reset_urbit_code +COPY start_urbit.sh /bin/start_urbit +COPY urbit /bin/ +EXPOSE 80/tcp +EXPOSE 34343/udp +VOLUME /urbit +WORKDIR /urbit +ENTRYPOINT ["/bin/start_urbit"] diff --git a/vere/docker/README.md b/vere/docker/README.md new file mode 100644 index 0000000..1cae449 --- /dev/null +++ b/vere/docker/README.md @@ -0,0 +1,135 @@ +# Official Urbit Docker Image + +This is the official Docker image for [Urbit](https://urbit.org). + +Urbit is a clean-slate OS and network for the 21st century. + +## Using + +To use this image, you should mount a volume with a keyfile, comet file, or +existing pier at `/urbit`, and map ports as described below. + +### Volume Mount + +This image expects a volume mounted at `/urbit`. This volume should initially +contain one of: +- A keyfile `.key` for a galaxy, star, planet, or moon. See the + setup instructions for information on + [obtaining a keyfile](https://urbit.org/getting-started/get-id). + - e.g. `sampel-palnet.key` for the planet `~sampel-palnet`. +- An empty file with the extension `.comet`. This will cause Urbit to boot a + comet in a pier named for the `.comet` file (less the extension). + - e.g. starting with an empty file `my-urbit-bot.comet` will result in Urbit + booting a comet into the pier `my-urbit-bot` under your volume. +- An existing pier as a directory ``. You can migrate an existing ship + to a new docker container in this way by placing its pier under the volume. + - e.g. if your ship is `sampel-palnet` then you likely have a directory + `sampel-palnet` whose path you pass to `./urbit` when starting. + [Move your pier](https://docs.urbit.org/user-manual/os/basics#moving-your-pier) + directory to the volume and then start the container. + +The first two options result in Urbit attempting to boot either the ship named +by the keyfile, or a comet. In both cases, after that boot is successful, the +`.key` or `.comet` file will be removed from the volume and the pier will take +its place. + +Therefore, it is safe to remove the Docker container and start a new container +which mounts the same volume (e.g. to upgrade the version of the Urbit binary +by running a newer image). It is also possible to stop the container and then +move the pier out of the Docker volume (e.g. to run it using an Urbit binary +directly). If you do this, make sure to delete the Docker volume after you move +your pier; if you launch a container using this same pier after moving it and +launching it elsewhere, you will likely need to perform a +[breach](https://docs.urbit.org/user-manual/id/guide-to-resets). + +### Ports + +The image includes `EXPOSE` directives for TCP port `80` and UDP port `34343`. +Port `80` is used for Urbit's HTTP interface for both Landscape and for +[API calls](https://docs.urbit.org/build-on-urbit/tools/js-libs/http-api-guide) +to the ship. Port `34343` is set by default to be used by +[Ames](https://docs.urbit.org/urbit-os/kernel/ames) for ship-to-ship communication. + +You can either pass the `-P` flag to docker to map ports directly to the +corresponding ports on the host, or map them individually with `-p` flags. For +local testing the latter is often convenient, for instance to remap port `80` to +an unprivileged port. + +For best performance, you must map the Ames UDP port to the *same* port on the +host. If you map to a different port Ames will not be able to make direct +connections and your network performance may suffer somewhat. Note that using +the same port is required for direct connections but is not by itself sufficient +for them. If you are behind a NAT router or the host is not on a public IP +address (or you are firewalled), you may not achieve direct connections +regardless. + +For this reason, you can force Ames to use a custom port. +`/bin/start-urbit --port=$AMES_PORT` can be passed as an argument to the +`docker start` command. Passing `/bin/start-urbit --port=13436` for example, +would use port `13436`. Note that you must pass the full script command +`/bin/start-urbit` in order to also pass arguments. If the script is omitted, +your container will not start. + +You can also set the http port using `--http-port=$HTTP_PORT`. Passing +`/bin/start-urbit --http-port=8085` for example, would use port `8085`. The +default http port is `8080`. + +### Variable Loom Size + +You can also set a variable loom size (Urbit memory size) using +`--loom=$LOOM_SIZE`. Passing `/bin/start-urbit --loom=32` for example, would set +up a 4GiB loom (`2^32 bytes = 4GiB`). The default loom size is `31` (2GiB). + +### Examples + +Creating a volume for `~sampel-palnet`: +``` +docker volume create sampel-palnet +``` + +Copying key to `~sampel-palnet`'s volume (assumes default Docker location): +``` +sudo cp ~/sampel-palnet.key /var/lib/docker/volumes/sampel-palnet/_data/sampel-palnet.key +``` + +Using that volume and launching `~sampel-palnet` on host port `8080` with Ames +talking on the default host port `34343`: +``` +docker run -d -p 8080:80 -p 34343:34343/udp --name sampel-palnet \ + --mount type=volume,source=sampel-palnet,destination=/urbit \ + tloncorp/vere +``` + +Using host port `8088` with Ames talking on host port `23232`: +``` +docker run -d -p 8088:80 -p 23232:23232/udp --name sampel-palnet \ + --mount type=volume,source=sampel-palnet,destination=/urbit \ + tloncorp/vere /bin/start-urbit --port=23232 +``` + +### Getting and resetting the Landscape `+code` + +This docker image includes tools for retrieving and resetting the Landscape +login code belonging to a ship, for programmatic use so the container does not +need a tty. These scripts can be called using `docker container exec`. + +Getting the code: +``` +$ docker container exec sampel-palnet /bin/get-urbit-code +sampel-sampel-sampel-sampel +``` + +Resetting the code: +``` +$ docker container exec sampel-palnet /bin/reset-urbit-code +OK +``` + +## Extending + +You likely do not want to extend this image. External applications which +interact with Urbit do so primarily via an HTTP API, which should be exposed as +described above. For containerized applications using Urbit, it is more +appropriate to use a container orchestration service such as Docker Compose or +Kubernetes to run Urbit alongside other containers which will interface with its +API. diff --git a/vere/docker/get_urbit_code.sh b/vere/docker/get_urbit_code.sh new file mode 100755 index 0000000..4873a04 --- /dev/null +++ b/vere/docker/get_urbit_code.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +code=$(curl -s -X POST -H "Content-Type: application/json" \ + -d '{ "source": { "dojo": "+code" }, "sink": { "stdout": null } }' \ + http://127.0.0.1:12321) + +# Trim newlines and double quotes. +echo "$code" | sed 's/\\n//' | tr -d '"' diff --git a/vere/docker/reset_urbit_code.sh b/vere/docker/reset_urbit_code.sh new file mode 100755 index 0000000..20af60d --- /dev/null +++ b/vere/docker/reset_urbit_code.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +# Sending `+hood/code %reset` to `dojo` resets the `+code`, but it requires +# interactive confirmation to do so. Obviously, we don't want to have to provide +# that confirmation, so we force reset the `+code` using +# `+hood/pass [%j %step ~]`, credit for which goes to ~wicdev-wisryt. +resp=$(curl -s -X POST -H "Content-Type: application/json" \ + -d '{ "source": { "dojo": "+hood/pass [%j %step ~]" }, "sink": { "app": "hood" } }' \ + http://127.0.0.1:12321) + +if [[ $? -eq 0 ]] +then + echo "OK" +else + echo "Curl error: $?" +fi diff --git a/vere/docker/start_urbit.sh b/vere/docker/start_urbit.sh new file mode 100755 index 0000000..809f2f1 --- /dev/null +++ b/vere/docker/start_urbit.sh @@ -0,0 +1,71 @@ +#!/bin/bash + +set -eu + +# set defaults +amesPort="34343" +httpPort="80" +loom="31" +snap="2" + +# check args +for i in "$@" +do +case $i in + -p=*|--port=*) + amesPort="${i#*=}" + shift + ;; + --http-port=*) + httpPort="${i#*=}" + shift + ;; + --loom=*) + loom="${i#*=}" + shift + ;; + --snap-time=*) + snap="${i#*=}" + shift + ;; +esac +done + +# If the container is not started with the `-i` flag +# then STDIN will be closed and we need to start +# Urbit/vere with the `-t` flag. +ttyflag="" +if [ ! -t 0 ]; then + echo "Running with no STDIN" + ttyflag="-t" +fi + +# Check if there is a keyfile, if so boot a ship with its name, and then remove the key +if [ -e *.key ]; then + # Get the name of the key + keynames="*.key" + keys=( $keynames ) + keyname=''${keys[0]} + mv $keyname /tmp + + # Boot urbit with the key, exit when done booting + urbit $ttyflag -w $(basename $keyname .key) -k /tmp/$keyname -c $(basename $keyname .key) -p $amesPort -x --http-port $httpPort --loom $loom --snap-time $snap + + # Remove the keyfile for security + rm /tmp/$keyname + rm *.key || true +elif [ -e *.comet ]; then + cometnames="*.comet" + comets=( $cometnames ) + cometname=''${comets[0]} + rm *.comet + + urbit $ttyflag -c $(basename $cometname .comet) -p $amesPort -x --http-port $httpPort --loom $loom --snap-time $snap +fi + +# Find the first directory and start urbit with the ship therein +dirnames="*/" +dirs=( $dirnames ) +dirname=''${dirnames[0]} + +exec urbit $ttyflag -p $amesPort --http-port $httpPort --loom $loom $dirname --snap-time $snap diff --git a/vere/ext/avahi/build.zig b/vere/ext/avahi/build.zig new file mode 100644 index 0000000..a389a95 --- /dev/null +++ b/vere/ext/avahi/build.zig @@ -0,0 +1,810 @@ +const std = @import("std"); + +pub fn build(b: *std.Build) void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + const t = target.result; + + const expat_c = b.dependency("expat", .{ + .target = target, + .optimize = optimize, + }); + const expat = b.addStaticLibrary(.{ + .name = "expat", + .target = target, + .optimize = optimize, + .version = .{ + .major = 1, + .minor = 9, + .patch = 0, + }, + }); + expat.linkLibC(); + + const expat_cmake_config = b.addConfigHeader(.{ + .style = .{ + .cmake = expat_c.path("expat_config.h.cmake"), + }, + .include_path = "expat_config.h", + }, .{ + .PACKAGE_BUGREPORT = "https://github.com/libexpat/libexpat/issues", + .PACKAGE_NAME = "expat", + .PACKAGE_STRING = "expat 2.6.0", + .HAVE_GETPAGESIZE = 1, + .XML_CONTEXT_BYTES = 1, + .XML_DEV_URANDOM = 1, + .XML_GE = 1, + // + .BYTEORDER = 1234, + .PACKAGE_TARNAME = "expat-2.6.0.tar", + .PACKAGE_VERSION = "2.6.0", + .OFF_T = "long", + .SIZE_T = "unsigned", + }); + + expat.addConfigHeader(expat_cmake_config); + expat.addIncludePath(expat_c.path("lib")); + + expat.addCSourceFiles(.{ + .root = expat_c.path("lib"), + .files = &.{ + "xmlrole.c", + // "xmltok_ns.c", + "xmlparse.c", + "xmltok.c", + // "xmltok_impl.c", + }, + }); + + expat.installConfigHeader(expat_cmake_config); + expat.installHeadersDirectory(expat_c.path("lib"), "", .{ + .include_extensions = &.{ + "expat.h", + "expat_external.h", + }, + }); + + const dbus_c = b.dependency("dbus", .{ + .target = target, + .optimize = optimize, + }); + const dbus = b.addStaticLibrary(.{ + .name = "dbus-1", + .target = target, + .optimize = optimize, + .version = .{ + .major = 3, + .minor = 38, + .patch = 0, + }, + }); + dbus.linkLibC(); + dbus.linkLibrary(expat); + + dbus.root_module.addCMacro("HAVE_ERRNO_H", ""); + dbus.root_module.addCMacro("VERSION", "1.14.8"); + dbus.root_module.addCMacro("SOVERSION", "3.38.0"); + dbus.root_module.addCMacro("DBUS_DAEMON_NAME", "\"dbus\""); + dbus.root_module.addCMacro("DBUS_COMPILATION", ""); + dbus.root_module.addCMacro("DBUS_VA_COPY", "va_copy"); + dbus.root_module.addCMacro("DBUS_SESSION_BUS_CONNECT_ADDRESS", "\"autolaunch:\""); + dbus.root_module.addCMacro("DBUS_SYSTEM_BUS_DEFAULT_ADDRESS", "\"unix:tmpdir=/tmp\""); + dbus.root_module.addCMacro("DBUS_ENABLE_CHECKS", ""); + dbus.root_module.addCMacro("DBUS_ENABLE_ASSERT", ""); + dbus.root_module.addCMacro("HAVE_ALLOCA_H", ""); + dbus.root_module.addCMacro("_GNU_SOURCE", ""); + dbus.root_module.addCMacro("HAVE_SYSLOG_H", ""); + dbus.root_module.addCMacro("HAVE_SOCKLEN_T", ""); + dbus.root_module.addCMacro("HAVE_SYS_RANDOM_H", ""); + dbus.root_module.addCMacro("DBUS_UNIX", ""); + dbus.root_module.addCMacro("HAVE_GETPWNAM_R", ""); + + dbus.root_module.addCMacro("ENOMEM", "ERROR_NOT_ENOUGH_MEMORY"); + dbus.root_module.addCMacro("HAVE_STDINT_H", ""); + dbus.root_module.addCMacro("HAVE_SIGNAL_H", ""); + dbus.root_module.addCMacro("HAVE_GETPEEREID", ""); + + if (t.os.tag == .linux) { + dbus.root_module.addCMacro("HAVE_APPARMOR", ""); + dbus.root_module.addCMacro("HAVE_APPARMOR_2_10", ""); + dbus.root_module.addCMacro("HAVE_LIBAUDIT", ""); + dbus.root_module.addCMacro("HAVE_SELINUX", ""); + dbus.root_module.addCMacro("DBUS_HAVE_LINUX_EPOLL", ""); + } + + // dbus.root_module.addCMacro("DBUS_PREFIX", b.fmt("\"{s}\"", .{ + // b.install_prefix, + // })); + // dbus.root_module.addCMacro("DBUS_BINDIR", b.fmt("\"{s}\"", .{ + // b.getInstallPath(.bin, ""), + // })); + // dbus.root_module.addCMacro("DBUS_DATADIR", b.fmt("\"{s}\"", .{ + // b.getInstallPath(.prefix, "usr/share"), + // })); + dbus.root_module.addCMacro("DBUS_MACHINE_UUID_FILE", b.fmt("\"{s}\"", .{ + b.getInstallPath(.prefix, "lib/dbus/machine-id"), + })); + // dbus.root_module.addCMacro("DBUS_SYSTEM_CONFIG_FILE", b.fmt("\"{s}\"", .{ + // b.getInstallPath(.prefix, "usr/share/dbus-1/system.conf"), + // })); + // dbus.root_module.addCMacro("DBUS_SESSION_CONFIG_FILE", b.fmt("\"{s}\"", .{ + // b.getInstallPath(.prefix, "usr/share/dbus-1/session.conf"), + // })); + + // dbus.root_module.addCMacro("HAVE_CONFIG_H", ""); + // const dbus_config_h = b.addConfigHeader(.{ + // .style = .{ .autoconf = dbus_c.path("config.h.in") }, + // .include_path = "config.h", + // }, .{ + // .HAVE_ERRNO_H = "", + // .VERSION = "1.14.8", + // .DBUS_DAEMON_NAME = "\"dbus\"", + // .DBUS_VA_COPY = "va_copy", + // .DBUS_SESSION_BUS_CONNECT_ADDRESS = "\"autolaunch:\"", + // .DBUS_SYSTEM_BUS_DEFAULT_ADDRESS = "\"unix:tmpdir=/tmp\"", + // .HAVE_ALLOCA_H = "", + // ._GNU_SOURCE = "", + // .HAVE_SYSLOG_H = "", + // .HAVE_SOCKLEN_T = "", + // .HAVE_SYS_RANDOM_H = "", + // .DBUS_UNIX = "", + // .HAVE_GETPWNAM_R = "", + // .HAVE_STDINT_H = "", + // .HAVE_SIGNAL_H = "", + // .HAVE_GETPEEREID = "", + // .@"inline" = null, + // .AC_APPLE_UNIVERSAL_BUILD = null, + // .DBUS_BINDIR = null, + // .DBUS_BUILD_X11 = null, + // .DBUS_BUILT_R_DYNAMIC = null, + // .DBUS_BUS_ENABLE_INOTIFY = null, + // .DBUS_BUS_ENABLE_KQUEUE = null, + // .DBUS_CONSOLE_AUTH_DIR = null, + // .DBUS_CONSOLE_OWNER_FILE = null, + // .DBUS_CYGWIN = null, + // .DBUS_DAEMONDIR = null, + // .DBUS_DATADIR = null, + // .DBUS_DISABLE_ASSERT = null, + // .DBUS_DISABLE_CHECKS = null, + // .DBUS_ENABLE_EMBEDDED_TESTS = null, + // .DBUS_ENABLE_LAUNCHD = null, + // .DBUS_ENABLE_MODULAR_TESTS = null, + // .DBUS_ENABLE_STATS = null, + // .DBUS_ENABLE_VERBOSE_MODE = null, + // .DBUS_ENABLE_X11_AUTOLAUNCH = null, + // .DBUS_EXEEXT = null, + // .DBUS_GCOV_ENABLED = null, + // .DBUS_HAVE_LINUX_EPOLL = null, + // .DBUS_LIBEXECDIR = null, + // .DBUS_PREFIX = null, + // .DBUS_SESSION_SOCKET_DIR = null, + // .DBUS_SYSTEM_SOCKET = null, + // .DBUS_TEST_LAUNCH_HELPER_BINARY = null, + // .DBUS_TEST_SOCKET_DIR = null, + // .DBUS_TEST_USER = null, + // .DBUS_USER = null, + // .DBUS_USE_SYNC = null, + // .DBUS_WIN = null, + // .DBUS_WINCE = null, + // .DBUS_WITH_GLIB = null, + // .ENABLE_TRADITIONAL_ACTIVATION = null, + // .FD_SETSIZE = null, + // .GETTEXT_PACKAGE = null, + // .GLIB_VERSION_MAX_ALLOWED = null, + // .GLIB_VERSION_MIN_REQUIRED = null, + // .G_DISABLE_CHECKS = null, + // .HAVE_ACCEPT4 = null, + // .HAVE_ADT = null, + // .HAVE_APPARMOR = null, + // .HAVE_APPARMOR_2_10 = null, + // .HAVE_BACKTRACE = null, + // .HAVE_BYTESWAP_H = null, + // .HAVE_CLEARENV = null, + // .HAVE_CMSGCRED = null, + // .HAVE_CONSOLE_OWNER_FILE = null, + // .HAVE_CRT_EXTERNS_H = null, + // .HAVE_DDFD = null, + // .HAVE_DECL_ENVIRON = null, + // .HAVE_DECL_LOG_PERROR = null, + // .HAVE_DECL_MSG_NOSIGNAL = null, + // .HAVE_DIRENT_H = null, + // .HAVE_DIRFD = null, + // .HAVE_DLFCN_H = null, + // .HAVE_EXECINFO_H = null, + // .HAVE_FPATHCONF = null, + // .HAVE_GETGROUPLIST = null, + // .HAVE_GETPEERUCRED = null, + // .HAVE_GETRANDOM = null, + // .HAVE_GETRESUID = null, + // .HAVE_GETRLIMIT = null, + // .HAVE_GIO_UNIX = null, + // .HAVE_INOTIFY_INIT1 = null, + // .HAVE_INTTYPES_H = null, + // .HAVE_ISSETUGID = null, + // .HAVE_LIBAUDIT = null, + // .HAVE_LIBNSL = null, + // .HAVE_LOCALECONV = null, + // .HAVE_LOCALE_H = null, + // .HAVE_MINIX_CONFIG_H = null, + // .HAVE_MONOTONIC_CLOCK = null, + // .HAVE_NANOSLEEP = null, + // .HAVE_NSGETENVIRON = null, + // .HAVE_PIPE2 = null, + // .HAVE_POLL = null, + // .HAVE_PRCTL = null, + // .HAVE_PRLIMIT = null, + // .HAVE_RAISE = null, + // .HAVE_SELINUX = null, + // .HAVE_SETENV = null, + // .HAVE_SETLOCALE = null, + // .HAVE_SETRESUID = null, + // .HAVE_SETRLIMIT = null, + // .HAVE_SOCKETPAIR = null, + // .HAVE_STDIO_H = null, + // .HAVE_STDLIB_H = null, + // .HAVE_STRINGS_H = null, + // .HAVE_STRING_H = null, + // .HAVE_STRTOLL = null, + // .HAVE_STRTOULL = null, + // .HAVE_SYSTEMD = null, + // .HAVE_SYS_INOTIFY_H = null, + // .HAVE_SYS_PRCTL_H = null, + // .HAVE_SYS_RESOURCE_H = null, + // .HAVE_SYS_STAT_H = null, + // .HAVE_SYS_TIME_H = null, + // .HAVE_SYS_TYPES_H = null, + // .HAVE_SYS_UIO_H = null, + // .HAVE_UNISTD_H = null, + // .HAVE_UNIX_FD_PASSING = null, + // .HAVE_UNPCBID = null, + // .HAVE_UNSETENV = null, + // .HAVE_USLEEP = null, + // .HAVE_VISIBILITY = null, + // .HAVE_WCHAR_H = null, + // .HAVE_WRITEV = null, + // .HAVE_WS2TCPIP_H = null, + // .HAVE_X11 = null, + // .HAVE_XML_SETHASHSALT = null, + // .LT_OBJDIR = null, + // .NDEBUG = null, + // .PACKAGE = null, + // .PACKAGE_BUGREPORT = null, + // .PACKAGE_NAME = null, + // .PACKAGE_STRING = null, + // .PACKAGE_TARNAME = null, + // .PACKAGE_URL = null, + // .PACKAGE_VERSION = null, + // .SIZEOF_CHAR = null, + // .SIZEOF_INT = null, + // .SIZEOF_LONG = null, + // .SIZEOF_LONG_LONG = null, + // .SIZEOF_SHORT = null, + // .SIZEOF_VOID_P = null, + // .SIZEOF___INT64 = null, + // .STDC_HEADERS = null, + // .TEST_LISTEN = null, + // .WITH_VALGRIND = null, + // .WORDS_BIGENDIAN = null, + // ._ALL_SOURCE = null, + // ._BSD_SOURCE = null, + // ._DARWIN_C_SOURCE = null, + // ._FILE_OFFSET_BITS = null, + // ._HPUX_ALT_XOPEN_SOCKET_API = null, + // ._LARGE_FILES = null, + // ._MINIX = null, + // ._NETBSD_SOURCE = null, + // ._OPENBSD_SOURCE = null, + // ._POSIX_1_SOURCE = null, + // ._POSIX_C_SOURCE = null, + // ._POSIX_PTHREAD_SEMANTICS = null, + // ._POSIX_SOURCE = null, + // ._TANDEM_SOURCE = null, + // ._WIN32_WCE = null, + // ._WIN32_WINNT = null, + // ._XOPEN_SOURCE = null, + // .__EXTENSIONS__ = null, + // .__STDC_WANT_IEC_60559_ATTRIBS_EXT__ = null, + // .__STDC_WANT_IEC_60559_BFP_EXT__ = null, + // .__STDC_WANT_IEC_60559_DFP_EXT__ = null, + // .__STDC_WANT_IEC_60559_FUNCS_EXT__ = null, + // .__STDC_WANT_IEC_60559_TYPES_EXT__ = null, + // .__STDC_WANT_LIB_EXT2__ = null, + // .__STDC_WANT_MATH_SPEC_FUNCS__ = null, + // }); + + const dbus_config_h = b.addConfigHeader(.{ + .style = .blank, + .include_path = "config.h", + }, .{}); + + const dbus_arch_deps_h = b.addConfigHeader( + .{ + .style = .{ .cmake = dbus_c.path("dbus/dbus-arch-deps.h.in") }, + .include_path = "dbus/dbus-arch-deps.h", + }, + .{ + .DBUS_VERSION = "1.14.10", + .DBUS_MAJOR_VERSION = "1", + .DBUS_MINOR_VERSION = "14", + .DBUS_MICRO_VERSION = "10", + .DBUS_INT64_TYPE = "long long", + .DBUS_INT32_TYPE = "int", + .DBUS_INT16_TYPE = "short", + .DBUS_SIZEOF_VOID_P = "sizeof (void*)", + .DBUS_INT64_CONSTANT = "(val##LL)", + .DBUS_UINT64_CONSTANT = "(val##ULL)", + }, + ); + + dbus.addConfigHeader(dbus_config_h); + dbus.addConfigHeader(dbus_arch_deps_h); + + dbus.addIncludePath(dbus_c.path("")); + dbus.addIncludePath(dbus_c.path("dbus")); + + dbus.addCSourceFiles(.{ + .root = dbus_c.path("dbus"), + .files = &.{ + // DBUS_LIB_SOURCES + "dbus-address.c", + "dbus-auth.c", + "dbus-bus.c", + "dbus-connection.c", + "dbus-credentials.c", + "dbus-errors.c", + "dbus-keyring.c", + "dbus-marshal-header.c", + "dbus-marshal-byteswap.c", + "dbus-marshal-recursive.c", + "dbus-marshal-validate.c", + "dbus-message.c", + "dbus-misc.c", + "dbus-nonce.c", + "dbus-object-tree.c", + "dbus-pending-call.c", + "dbus-resources.c", + "dbus-server.c", + "dbus-server-socket.c", + "dbus-server-debug-pipe.c", + "dbus-sha.c", + "dbus-signature.c", + "dbus-syntax.c", + "dbus-timeout.c", + "dbus-threads.c", + "dbus-transport.c", + "dbus-transport-socket.c", + "dbus-watch.c", + // DBUS_SHARED_SOURCES + "dbus-dataslot.c", + "dbus-file.c", + "dbus-hash.c", + "dbus-internals.c", + "dbus-list.c", + "dbus-marshal-basic.c", + "dbus-memory.c", + "dbus-mempool.c", + "dbus-string.c", + "dbus-sysdeps.c", + "dbus-pipe.c", + }, + .flags = &.{ + "-fno-sanitize=all", + }, + }); + + // Platform specific sources + if (target.result.os.tag == .windows) { + dbus.addCSourceFiles(.{ + .root = dbus_c.path("dbus"), + .files = &.{ + // LIB + "dbus-transport-win.c", + "dbus-server-win.c", + // SHARED + "dbus-file-win.c", + "dbus-init-win.cpp", + "dbus-sysdeps-win.c", + "dbus-pipe-win.c", + "dbus-sysdeps-thread-win.c", + }, + .flags = &.{ + "-fno-sanitize=all", + }, + }); + } else { + dbus.addCSourceFiles(.{ + .root = dbus_c.path("dbus"), + .files = &.{ + // LIB + "dbus-uuidgen.c", + "dbus-transport-unix.c", + "dbus-server-unix.c", + // SHARED + "dbus-file-unix.c", + "dbus-pipe-unix.c", + "dbus-sysdeps-unix.c", + "dbus-sysdeps-pthread.c", + "dbus-userdb.c", + }, + .flags = &.{ + "-fno-sanitize=all", + }, + }); + } + + dbus.installConfigHeader(dbus_arch_deps_h); + + // DBUS CLIENT LIBRARY HEADERS + dbus.installHeadersDirectory(dbus_c.path("dbus"), "dbus", .{ + .include_extensions = &.{ + // DBUS INCLUDE HEADERS + "dbus.h", + "dbus-address.h", + "dbus-bus.h", + "dbus-connection.h", + "dbus-errors.h", + "dbus-macros.h", + "dbus-memory.h", + "dbus-message.h", + "dbus-misc.h", + "dbus-pending-call.h", + "dbus-protocol.h", + "dbus-server.h", + "dbus-shared.h", + "dbus-signature.h", + "dbus-syntax.h", + "dbus-threads.h", + "dbus-types.h", + "dbus-arch-deps.h", + // DBUS_LIB_HEADERS + "dbus-auth.h", + "dbus-connection-internal.h", + "dbus-credentials.h", + "dbus-keyring.h", + "dbus-marshal-header.h", + "dbus-marshal-byteswap.h", + "dbus-marshal-recursive.h", + "dbus-marshal-validate.h", + "dbus-message-internal.h", + "dbus-message-private.h", + "dbus-misc.h", + "dbus-object-tree.h", + "dbus-protocol.h", + "dbus-resources.h", + "dbus-server-debug-pipe.h", + "dbus-server-protected.h", + "dbus-server-unix.h", + "dbus-sha.h", + "dbus-timeout.h", + "dbus-threads.h", + "dbus-threads-internal.h", + "dbus-transport.h", + "dbus-transport-protected.h", + "dbus-uuidgen.h", + "dbus-watch.h", + // DBUS_SHARED_HEADERS + "dbus-dataslot.h", + "dbus-file.h", + "dbus-hash.h", + "dbus-internals.h", + "dbus-list.h", + "dbus-marshal-basic.h", + "dbus-mempool.h", + "dbus-string.h", + "dbus-string-private.h", + "dbus-pipe.h", + "dbus-sysdeps.h", + }, + }); + + // Platform specific headers + if (target.result.os.tag == .windows) { + dbus.installHeadersDirectory(dbus_c.path("dbus"), "dbus", .{ + .include_extensions = &.{ + "dbus-transport-win.h", + "dbus-sockets-win.h", + "dbus-sysdeps-win.h", + }, + }); + } else { + dbus.installHeadersDirectory(dbus_c.path("dbus"), "dbus", .{ + .include_extensions = &.{ + "dbus-transport-unix.h", + "dbus-server-unix.h", + "dbus-sysdeps-unix.h", + "dbus-userdb.h", + }, + }); + } + + const avahi_c = b.dependency("avahi", .{ + .target = target, + .optimize = optimize, + }); + + const avahi = b.addStaticLibrary(.{ + .name = "dns-sd", + .target = target, + .optimize = optimize, + }); + + avahi.linkLibC(); + avahi.linkLibrary(dbus); + + avahi.root_module.addCMacro("GETTEXT_PACKAGE", "\"avahi\""); + + avahi.root_module.addCMacro("HAVE_DBUS", ""); + avahi.root_module.addCMacro("HAVE_DBUS_BUS_GET_PRIVATE", "0"); + avahi.root_module.addCMacro("HAVE_DBUS_CONNECTION_CLOSE", "0"); + avahi.root_module.addCMacro("HAVE_EXPAT_H", "1"); + avahi.root_module.addCMacro("HAVE_CONFIG_H", "1"); + if (!t.isGnuLibC()) + avahi.root_module.addCMacro("HAVE_STRLCPY", "1"); + + const avahi_config_h = b.addConfigHeader(.{ + .style = .blank, + .include_path = "config.h", + }, .{}); + + // avahi.root_module.addCMacro("HAVE_CONFIG_H", "1"); + // const avahi_config_h = b.addConfigHeader(.{ + // .style = .{ .autoconf = avahi_c.path("config.h.in") }, + // .include_path = "config.h", + // }, .{ + // .AVAHI_AUTOIPD_GROUP = null, + // .AVAHI_AUTOIPD_USER = null, + // .AVAHI_GROUP = null, + // .AVAHI_PRIV_ACCESS_GROUP = null, + // .AVAHI_USER = null, + // .ENABLE_CHROOT = null, + // .ENABLE_NLS = null, + // .ENABLE_SSP_CC = null, + // .ENABLE_SSP_CXX = null, + // .GETTEXT_PACKAGE = "\"avahi\"", + // .HAVE_ARPA_INET_H = null, + // .HAVE_BSDXML_H = null, + // .HAVE_CFLOCALECOPYCURRENT = null, + // .HAVE_CFPREFERENCESCOPYAPPVALUE = null, + // .HAVE_CHOWN = null, + // .HAVE_CHROOT = null, + // .HAVE_DBM = null, + // .HAVE_DBUS = "1", + // .HAVE_DBUS_BUS_GET_PRIVATE = "0", + // .HAVE_DBUS_CONNECTION_CLOSE = "0", + // .HAVE_DCGETTEXT = null, + // .HAVE_DECL_ENVIRON = null, + // .HAVE_DLFCN_H = null, + // .HAVE_DLOPEN = null, + // .HAVE_EXPAT_H = "1", + // .HAVE_FCNTL_H = null, + // .HAVE_GCC_VISIBILITY = null, + // .HAVE_GDBM = null, + // .HAVE_GDBM_H = null, + // .HAVE_GETHOSTBYNAME = null, + // .HAVE_GETHOSTNAME = null, + // .HAVE_GETPROGNAME = null, + // .HAVE_GETTEXT = null, + // .HAVE_GETTIMEOFDAY = null, + // .HAVE_ICONV = null, + // .HAVE_INOTIFY = null, + // .HAVE_INTTYPES_H = null, + // .HAVE_KQUEUE = null, + // .HAVE_LIMITS_H = null, + // .HAVE_MEMCHR = null, + // .HAVE_MEMMOVE = null, + // .HAVE_MEMORY_H = null, + // .HAVE_MEMSET = null, + // .HAVE_MKDIR = null, + // .HAVE_NDBM_H = null, + // .HAVE_NETDB_H = null, + // .HAVE_NETINET_IN_H = null, + // .HAVE_NETLINK = null, + // .HAVE_PF_ROUTE = null, + // .HAVE_PTHREAD = null, + // .HAVE_PUTENV = null, + // .HAVE_SELECT = null, + // .HAVE_SETEGID = null, + // .HAVE_SETEUID = null, + // .HAVE_SETPROCTITLE = null, + // .HAVE_SETREGID = null, + // .HAVE_SETRESGID = null, + // .HAVE_SETRESUID = null, + // .HAVE_SETREUID = null, + // .HAVE_SOCKET = null, + // .HAVE_STAT_EMPTY_STRING_BUG = null, + // .HAVE_STDBOOL_H = null, + // .HAVE_STDINT_H = null, + // .HAVE_STDLIB_H = null, + // .HAVE_STRCASECMP = null, + // .HAVE_STRCHR = null, + // .HAVE_STRCSPN = null, + // .HAVE_STRDUP = null, + // .HAVE_STRERROR = null, + // .HAVE_STRINGS_H = null, + // .HAVE_STRING_H = null, + // .HAVE_STRLCPY = "1", + // .HAVE_STRNCASECMP = null, + // .HAVE_STRRCHR = null, + // .HAVE_STRSPN = null, + // .HAVE_STRSTR = null, + // .HAVE_STRUCT_IP_MREQ = null, + // .HAVE_STRUCT_IP_MREQN = null, + // .HAVE_STRUCT_LIFCONF = null, + // .HAVE_SYSLOG_H = null, + // .HAVE_SYS_CAPABILITY_H = null, + // .HAVE_SYS_FILIO_H = null, + // .HAVE_SYS_INOTIFY_H = null, + // .HAVE_SYS_IOCTL_H = null, + // .HAVE_SYS_PRCTL_H = null, + // .HAVE_SYS_SELECT_H = null, + // .HAVE_SYS_SOCKET_H = null, + // .HAVE_SYS_STAT_H = null, + // .HAVE_SYS_SYSCTL_H = null, + // .HAVE_SYS_TIME_H = null, + // .HAVE_SYS_TYPES_H = null, + // .HAVE_SYS_WAIT_H = null, + // .HAVE_UNAME = null, + // .HAVE_UNISTD_H = null, + // .HAVE_VISIBILITY_HIDDEN = null, + // .HAVE__BOOL = null, + // .LSTAT_FOLLOWS_SLASHED_SYMLINK = null, + // .LT_OBJDIR = null, + // .PACKAGE = null, + // .PACKAGE_BUGREPORT = null, + // .PACKAGE_NAME = null, + // .PACKAGE_STRING = null, + // .PACKAGE_TARNAME = null, + // .PACKAGE_URL = null, + // .PACKAGE_VERSION = null, + // .PTHREAD_CREATE_JOINABLE = null, + // .SELECT_TYPE_ARG1 = null, + // .SELECT_TYPE_ARG234 = null, + // .SELECT_TYPE_ARG5 = null, + // .STDC_HEADERS = null, + // .TIME_WITH_SYS_TIME = null, + // ._ALL_SOURCE = null, + // ._GNU_SOURCE = null, + // ._POSIX_PTHREAD_SEMANTICS = null, + // ._TANDEM_SOURCE = null, + // .__EXTENSIONS__ = null, + // .VERSION = null, + // ._MINIX = null, + // ._POSIX_1_SOURCE = null, + // ._POSIX_SOURCE = null, + // .@"const" = null, + // .gid_t = null, + // .mode_t = null, + // .pid_t = null, + // .size_t = null, + // .uid_t = null, + // }); + + avahi.addConfigHeader(avahi_config_h); + avahi.addIncludePath(avahi_c.path("")); + + avahi.addCSourceFiles(.{ + .root = avahi_c.path(""), + .files = &.{ + // "avahi-autoipd/iface-bsd.c", + // "avahi-autoipd/iface-linux.c", + // "avahi-autoipd/main.c", + "avahi-client/browser.c", + "avahi-client/check-nss.c", + "avahi-client/client.c", + "avahi-client/entrygroup.c", + "avahi-client/resolver.c", + "avahi-client/xdg-config.c", + "avahi-common/address.c", + "avahi-common/alternative.c", + "avahi-common/dbus-watch-glue.c", + "avahi-common/dbus.c", + "avahi-common/domain.c", + "avahi-common/error.c", + "avahi-common/i18n.c", + "avahi-common/malloc.c", + "avahi-common/rlist.c", + "avahi-common/simple-watch.c", + "avahi-common/strlst.c", + "avahi-common/thread-watch.c", + "avahi-common/timeval.c", + "avahi-common/utf8.c", + // "avahi-compat-howl/address.c", + // "avahi-compat-howl/compat.c", + // "avahi-compat-howl/samples/browse.c", + // "avahi-compat-howl/samples/publish.c", + // "avahi-compat-howl/samples/query.c", + // "avahi-compat-howl/samples/resolve.c", + // "avahi-compat-howl/text.c", + // "avahi-compat-howl/unsupported.c", + // "avahi-compat-howl/warn.c", + "avahi-compat-libdns_sd/compat.c", + "avahi-compat-libdns_sd/txt.c", + "avahi-compat-libdns_sd/unsupported.c", + "avahi-compat-libdns_sd/warn.c", + // "avahi-core/addr-util.c", + // "avahi-core/announce.c", + // "avahi-core/avahi-reflector.c", + // "avahi-core/browse-dns-server.c", + // "avahi-core/browse-domain.c", + // "avahi-core/browse-service-type.c", + // "avahi-core/browse-service.c", + // "avahi-core/browse.c", + // "avahi-core/cache.c", + // "avahi-core/dns.c", + // "avahi-core/domain-util.c", + // "avahi-core/entry.c", + // "avahi-core/fdutil.c", + // "avahi-core/hashmap.c", + // "avahi-core/iface-linux.c", + // "avahi-core/iface-none.c", + // "avahi-core/iface-pfroute.c", + // "avahi-core/iface.c", + // "avahi-core/log.c", + // "avahi-core/multicast-lookup.c", + // "avahi-core/netlink.c", + // "avahi-core/prioq.c", + // "avahi-core/probe-sched.c", + // "avahi-core/querier.c", + // "avahi-core/query-sched.c", + // "avahi-core/resolve-address.c", + // "avahi-core/resolve-host-name.c", + // "avahi-core/resolve-service.c", + // "avahi-core/response-sched.c", + // "avahi-core/rr.c", + // "avahi-core/rrlist.c", + // "avahi-core/server.c", + // "avahi-core/socket.c", + // "avahi-core/timeeventq.c", + // "avahi-core/util.c", + // "avahi-core/wide-area.c", + // "avahi-daemon/caps.c", + // "avahi-daemon/chroot.c", + // "avahi-daemon/dbus-async-address-resolver.c", + // "avahi-daemon/dbus-async-host-name-resolver.c", + // "avahi-daemon/dbus-async-service-resolver.c", + // "avahi-daemon/dbus-domain-browser.c", + // "avahi-daemon/dbus-entry-group.c", + // "avahi-daemon/dbus-protocol.c", + // "avahi-daemon/dbus-record-browser.c", + // "avahi-daemon/dbus-service-browser.c", + // "avahi-daemon/dbus-service-type-browser.c", + // "avahi-daemon/dbus-sync-address-resolver.c", + // "avahi-daemon/dbus-sync-host-name-resolver.c", + // "avahi-daemon/dbus-sync-service-resolver.c", + // "avahi-daemon/dbus-util.c", + // "avahi-daemon/ini-file-parser.c", + // "avahi-daemon/main.c", + // "avahi-daemon/sd-daemon.c", + // "avahi-daemon/setproctitle.c", + // "avahi-daemon/simple-protocol.c", + // "avahi-daemon/static-hosts.c", + // "avahi-daemon/static-services.c", + // "avahi-discover-standalone/main.c", + // "avahi-dnsconfd/main.c", + // "avahi-glib/glib-malloc.c", + // "avahi-glib/glib-watch.c", + // "avahi-gobject/ga-client.c", + // "avahi-gobject/ga-entry-group.c", + // "avahi-gobject/ga-error.c", + // "avahi-gobject/ga-record-browser.c", + // "avahi-gobject/ga-service-browser.c", + // "avahi-gobject/ga-service-resolver.c", + // "avahi-libevent/libevent-watch.c", + // "avahi-ui/avahi-ui.c", + // "avahi-ui/bssh.c", + // "avahi-utils/avahi-browse.c", + // "avahi-utils/avahi-publish.c", + // "avahi-utils/avahi-resolve.c", + // "avahi-utils/avahi-set-host-name.c", + // "avahi-utils/sigint.c", + // "avahi-utils/stdb.c", + }, + .flags = &.{ + "-fno-sanitize=all", + }, + }); + + avahi.installHeader(avahi_c.path("avahi-compat-libdns_sd/dns_sd.h"), "dns_sd.h"); + + b.installArtifact(avahi); +} diff --git a/vere/ext/avahi/build.zig.zon b/vere/ext/avahi/build.zig.zon new file mode 100644 index 0000000..58ac25b --- /dev/null +++ b/vere/ext/avahi/build.zig.zon @@ -0,0 +1,22 @@ +.{ + .name = "avahi", + .version = "0.0.1", + .dependencies = .{ + .avahi = .{ + .url = "https://github.com/lathiat/avahi/releases/download/v0.8/avahi-0.8.tar.gz", + .hash = "N-V-__8AAOLVeQDfYsiL0A86OXqDtfyLSrZXiEu8RSplOJJ5", + }, + .dbus = .{ + .url = "https://distfiles.alpinelinux.org/distfiles/v3.17/dbus-1.14.8.tar.xz", + // .url = "https://src.fedoraproject.org/repo/pkgs/dbus/dbus-1.14.8.tar.xz/sha512/f3dfc73da28cbe20449d15bbe4166c3574f0e551dfd15fca7cce2b8c71e778360ed2dd391ee5c414a7a47ff4b958727b26ef4cabfee70564f8d0a34bf5ad2386/dbus-1.14.8.tar.xz", + .hash = "N-V-__8AAEB_jACD3zKb7YOxOD4R_51AA41kNzD31hDwAmCN", + }, + .expat = .{ + .url = "https://github.com/libexpat/libexpat/releases/download/R_2_5_0/expat-2.5.0.tar.xz", + .hash = "N-V-__8AABFoMgCxh01WjWFoh4nrLx8v4e0G9muwSAAA32Rc", + }, + }, + .paths = .{ + "", + }, +} diff --git a/vere/ext/backtrace/build.zig b/vere/ext/backtrace/build.zig new file mode 100644 index 0000000..84645dc --- /dev/null +++ b/vere/ext/backtrace/build.zig @@ -0,0 +1,142 @@ +const std = @import("std"); + +pub fn build(b: *std.Build) void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + const t = target.result; + + const dep_c = b.dependency("backtrace", .{ + .target = target, + .optimize = optimize, + }); + + const lib = b.addStaticLibrary(.{ + .name = "backtrace", + .target = target, + .optimize = optimize, + }); + + lib.linkLibC(); + + const config_h = b.addConfigHeader(.{ + .style = .{ + .autoconf = dep_c.path("config.h.in"), + }, + .include_path = "config.h", + }, .{ + .BACKTRACE_ELF_SIZE = 64, + .BACKTRACE_XCOFF_SIZE = 64, + .HAVE_ATOMIC_FUNCTIONS = 1, + .HAVE_CLOCK_GETTIME = 1, + .HAVE_DECL_GETPAGESIZE = 1, + .HAVE_DECL_STRNLEN = 1, + .HAVE_DECL__PGMPTR = 0, + .HAVE_DLFCN_H = 1, + .HAVE_DL_ITERATE_PHDR = null, + .HAVE_FCNTL = 1, + .HAVE_GETEXECNAME = null, + .HAVE_GETIPINFO = 1, + .HAVE_INTTYPES_H = 1, + .HAVE_KERN_PROC = null, + .HAVE_KERN_PROC_ARGS = null, + .HAVE_LIBLZMA = 1, + .HAVE_LINK_H = null, + .HAVE_LOADQUERY = null, + .HAVE_LSTAT = 1, + .HAVE_MACH_O_DYLD_H = null, + .HAVE_MEMORY_H = 1, + .HAVE_READLINK = 1, + .HAVE_STDINT_H = 1, + .HAVE_STDLIB_H = 1, + .HAVE_STRINGS_H = 1, + .HAVE_STRING_H = 1, + .HAVE_SYNC_FUNCTIONS = 1, + .HAVE_SYS_LDR_H = null, + .HAVE_SYS_LINK_H = null, + .HAVE_SYS_MMAN_H = 1, + .HAVE_SYS_STAT_H = 1, + .HAVE_SYS_TYPES_H = 1, + .HAVE_TLHELP32_H = null, + .HAVE_UNISTD_H = 1, + .HAVE_WINDOWS_H = null, + .HAVE_ZLIB = 1, + .HAVE_ZSTD = null, + .LT_OBJDIR = "", + .PACKAGE_BUGREPORT = "", + .PACKAGE_NAME = "", + .PACKAGE_STRING = "", + .PACKAGE_TARNAME = "", + .PACKAGE_URL = "", + .PACKAGE_VERSION = "", + .STDC_HEADERS = 1, + ._ALL_SOURCE = 1, + ._GNU_SOURCE = 1, + ._POSIX_PTHREAD_SEMANTICS = 1, + ._TANDEM_SOURCE = 1, + .__EXTENSIONS__ = 1, + ._FILE_OFFSET_BITS = null, + ._LARGE_FILES = null, + ._MINIX = null, + ._POSIX_1_SOURCE = null, + ._POSIX_SOURCE = null, + }); + + if (t.os.tag.isDarwin()) { + config_h.addValues(.{ + .HAVE_MACH_O_DYLD_H = 1, + }); + } + + const backtrace_supported_h = b.addConfigHeader(.{ + .style = .{ + .cmake = dep_c.path("backtrace-supported.h.in"), + }, + .include_path = "backtrace-supported.h", + }, .{ + .BACKTRACE_SUPPORTED = 1, + .BACKTRACE_USES_MALLOC = 0, + .BACKTRACE_SUPPORTS_THREADS = 1, + .BACKTRACE_SUPPORTS_DATA = 1, + }); + + lib.addConfigHeader(config_h); + lib.addConfigHeader(backtrace_supported_h); + lib.addIncludePath(dep_c.path("")); + + lib.addCSourceFiles(.{ + .root = dep_c.path(""), + .files = &.{ + // libbacktrace_la_SOURCES + "atomic.c", + "dwarf.c", + "fileline.c", + "posix.c", + "print.c", + "sort.c", + "state.c", + // BACKTRACE_FILES + "backtrace.c", + "simple.c", + "nounwind.c", + // FORMAT_FILES + "elf.c", + "macho.c", + "pecoff.c", + "unknown.c", + "xcoff.c", + // VIEW_FILES + "read.c", + "mmapio.c", + // ALLOC_FILES + "alloc.c", + "mmap.c", + }, + .flags = &.{ + "-fno-sanitize=all", + }, + }); + + lib.installHeader(dep_c.path("backtrace.h"), "backtrace.h"); + + b.installArtifact(lib); +} diff --git a/vere/ext/backtrace/build.zig.zon b/vere/ext/backtrace/build.zig.zon new file mode 100644 index 0000000..13b1682 --- /dev/null +++ b/vere/ext/backtrace/build.zig.zon @@ -0,0 +1,13 @@ +.{ + .name = "backtrace", + .version = "0.0.1", + .dependencies = .{ + .backtrace = .{ + .url = "https://github.com/ianlancetaylor/libbacktrace/archive/4ead348bb45f753121ca0bd44170ff8352d4c514.tar.gz", + .hash = "N-V-__8AADzSKgBaRtVnvQd2FZXVZ4ehq7SHwyHiBL8xSONl", + }, + }, + .paths = .{ + "", + }, +} diff --git a/vere/ext/curl/build.zig b/vere/ext/curl/build.zig new file mode 100644 index 0000000..9ba69f9 --- /dev/null +++ b/vere/ext/curl/build.zig @@ -0,0 +1,418 @@ +const std = @import("std"); + +pub fn build(b: *std.Build) void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + + const openssl = b.dependency("openssl", .{ + .target = target, + .optimize = optimize, + }); + + const curl_c = b.dependency("curl", .{ + .target = target, + .optimize = optimize, + }); + + const curl = b.addStaticLibrary(.{ + .name = "curl", + .target = target, + .optimize = optimize, + }); + + curl.linkLibC(); + curl.linkLibrary(openssl.artifact("ssl")); + curl.linkLibrary(openssl.artifact("crypto")); + + curl.root_module.addCMacro("BUILDING_LIBCURL", ""); + curl.root_module.addCMacro("CURL_STATICLIB", "1"); + curl.root_module.addCMacro("USE_OPENSSL", "1"); + curl.root_module.addCMacro("CURL_DISABLE_ALTSVC", "1"); + curl.root_module.addCMacro("CURL_DISABLE_COOKIES", "1"); + curl.root_module.addCMacro("CURL_DISABLE_BASIC_AUTH", "1"); + curl.root_module.addCMacro("CURL_DISABLE_BEARER_AUTH", "1"); + curl.root_module.addCMacro("CURL_DISABLE_DIGEST_AUTH", "1"); + curl.root_module.addCMacro("CURL_DISABLE_KERBEROS_AUTH", "1"); + curl.root_module.addCMacro("CURL_DISABLE_NEGOTIATE_AUTH", "1"); + curl.root_module.addCMacro("CURL_DISABLE_AWS", "1"); + curl.root_module.addCMacro("CURL_DISABLE_DICT", "1"); + curl.root_module.addCMacro("CURL_DISABLE_DOH", "1"); + curl.root_module.addCMacro("CURL_DISABLE_FILE", "1"); + curl.root_module.addCMacro("CURL_DISABLE_FORM_API", "1"); + curl.root_module.addCMacro("CURL_DISABLE_FTP", "1"); + curl.root_module.addCMacro("CURL_DISABLE_GETOPTIONS", "1"); + curl.root_module.addCMacro("CURL_DISABLE_GOPHER", "1"); + // curl.root_module.addCMacro("CURL_DISABLE_HEADERS_API", "1"); + // curl.root_module.addCMacro("CURL_DISABLE_HSTS", "1"); + // curl.root_module.addCMacro("CURL_DISABLE_HTTP", "1"); + curl.root_module.addCMacro("CURL_DISABLE_IMAP", "1"); + curl.root_module.addCMacro("CURL_DISABLE_LDAP", "1"); + curl.root_module.addCMacro("CURL_DISABLE_LDAPS", "1"); + curl.root_module.addCMacro("CURL_DISABLE_LIBCURL_OPTION", "1"); + // curl.root_module.addCMacro("CURL_DISABLE_MIME", "1"); + // curl.root_module.addCMacro("CURL_DISABLE_BINDLOCAL", "1"); + curl.root_module.addCMacro("CURL_DISABLE_MQTT", "1"); + curl.root_module.addCMacro("CURL_DISABLE_NETRC", "1"); + curl.root_module.addCMacro("CURL_DISABLE_NTLM", "1"); + curl.root_module.addCMacro("CURL_DISABLE_PARSEDATE", "1"); + curl.root_module.addCMacro("CURL_DISABLE_POP3", "1"); + curl.root_module.addCMacro("CURL_DISABLE_PROGRESS_METER", "1"); + curl.root_module.addCMacro("CURL_DISABLE_PROXY", "1"); + curl.root_module.addCMacro("CURL_DISABLE_RTSP", "1"); + curl.root_module.addCMacro("CURL_DISABLE_SMB", "1"); + curl.root_module.addCMacro("CURL_DISABLE_SMTP", "1"); + curl.root_module.addCMacro("CURL_DISABLE_SOCKETPAIR", "1"); + curl.root_module.addCMacro("CURL_DISABLE_TELNET", "1"); + curl.root_module.addCMacro("CURL_DISABLE_TFTP", "1"); + curl.root_module.addCMacro("CURL_DISABLE_VERBOSE_STRINGS", "1"); + // curl.root_module.addCMacro("CURL_DISABLE_OPENSSL_AUTO_LOAD_CONFIG", "1"); + + if (target.result.os.tag == .windows) { + curl.linkSystemLibrary("bcrypt"); + } else { + curl.root_module.addCMacro("CURL_EXTERN_SYMBOL", "__attribute__ ((__visibility__ (\"default\"))"); + + const isDarwin = target.result.os.tag.isDarwin(); + if (!isDarwin) + curl.root_module.addCMacro("ENABLE_IPV6", "1"); + curl.root_module.addCMacro("HAVE_ALARM", "1"); + curl.root_module.addCMacro("HAVE_ALLOCA_H", "1"); + curl.root_module.addCMacro("HAVE_ARPA_INET_H", "1"); + curl.root_module.addCMacro("HAVE_ARPA_TFTP_H", "1"); + curl.root_module.addCMacro("HAVE_ASSERT_H", "1"); + curl.root_module.addCMacro("HAVE_BASENAME", "1"); + curl.root_module.addCMacro("HAVE_BOOL_T", "1"); + curl.root_module.addCMacro("HAVE_BUILTIN_AVAILABLE", "1"); + curl.root_module.addCMacro("HAVE_CLOCK_GETTIME_MONOTONIC", "1"); + curl.root_module.addCMacro("HAVE_DLFCN_H", "1"); + curl.root_module.addCMacro("HAVE_ERRNO_H", "1"); + curl.root_module.addCMacro("HAVE_FCNTL", "1"); + curl.root_module.addCMacro("HAVE_FCNTL_H", "1"); + curl.root_module.addCMacro("HAVE_FCNTL_O_NONBLOCK", "1"); + curl.root_module.addCMacro("HAVE_FREEADDRINFO", "1"); + curl.root_module.addCMacro("HAVE_FTRUNCATE", "1"); + curl.root_module.addCMacro("HAVE_GETADDRINFO", "1"); + curl.root_module.addCMacro("HAVE_GETEUID", "1"); + curl.root_module.addCMacro("HAVE_GETPPID", "1"); + curl.root_module.addCMacro("HAVE_GETHOSTBYNAME", "1"); + if (!isDarwin) + curl.root_module.addCMacro("HAVE_GETHOSTBYNAME_R", "1"); + curl.root_module.addCMacro("HAVE_GETHOSTBYNAME_R_6", "1"); + curl.root_module.addCMacro("HAVE_GETHOSTNAME", "1"); + curl.root_module.addCMacro("HAVE_GETPPID", "1"); + curl.root_module.addCMacro("HAVE_GETPROTOBYNAME", "1"); + curl.root_module.addCMacro("HAVE_GETPEERNAME", "1"); + curl.root_module.addCMacro("HAVE_GETSOCKNAME", "1"); + curl.root_module.addCMacro("HAVE_IF_NAMETOINDEX", "1"); + curl.root_module.addCMacro("HAVE_GETPWUID", "1"); + curl.root_module.addCMacro("HAVE_GETPWUID_R", "1"); + curl.root_module.addCMacro("HAVE_GETRLIMIT", "1"); + curl.root_module.addCMacro("HAVE_GETTIMEOFDAY", "1"); + curl.root_module.addCMacro("HAVE_GMTIME_R", "1"); + curl.root_module.addCMacro("HAVE_IFADDRS_H", "1"); + curl.root_module.addCMacro("HAVE_INET_ADDR", "1"); + curl.root_module.addCMacro("HAVE_INET_PTON", "1"); + curl.root_module.addCMacro("HAVE_SA_FAMILY_T", "1"); + curl.root_module.addCMacro("HAVE_INTTYPES_H", "1"); + curl.root_module.addCMacro("HAVE_IOCTL", "1"); + curl.root_module.addCMacro("HAVE_IOCTL_FIONBIO", "1"); + curl.root_module.addCMacro("HAVE_IOCTL_SIOCGIFADDR", "1"); + curl.root_module.addCMacro("HAVE_LDAP_URL_PARSE", "1"); + curl.root_module.addCMacro("HAVE_LIBGEN_H", "1"); + curl.root_module.addCMacro("HAVE_IDN2_H", "1"); + curl.root_module.addCMacro("HAVE_LL", "1"); + curl.root_module.addCMacro("HAVE_LOCALE_H", "1"); + curl.root_module.addCMacro("HAVE_LOCALTIME_R", "1"); + curl.root_module.addCMacro("HAVE_LONGLONG", "1"); + curl.root_module.addCMacro("HAVE_MALLOC_H", "1"); + curl.root_module.addCMacro("HAVE_MEMORY_H", "1"); + if (!isDarwin) + curl.root_module.addCMacro("HAVE_MSG_NOSIGNAL", "1"); + curl.root_module.addCMacro("HAVE_NETDB_H", "1"); + curl.root_module.addCMacro("HAVE_NETINET_IN_H", "1"); + curl.root_module.addCMacro("HAVE_NETINET_TCP_H", "1"); + + if (target.result.os.tag == .linux) + curl.root_module.addCMacro("HAVE_LINUX_TCP_H", "1"); + curl.root_module.addCMacro("HAVE_NET_IF_H", "1"); + curl.root_module.addCMacro("HAVE_PIPE", "1"); + curl.root_module.addCMacro("HAVE_POLL", "1"); + curl.root_module.addCMacro("HAVE_POLL_FINE", "1"); + curl.root_module.addCMacro("HAVE_POLL_H", "1"); + curl.root_module.addCMacro("HAVE_POSIX_STRERROR_R", "1"); + curl.root_module.addCMacro("HAVE_PTHREAD_H", "1"); + curl.root_module.addCMacro("HAVE_PWD_H", "1"); + curl.root_module.addCMacro("HAVE_RECV", "1"); + curl.root_module.addCMacro("HAVE_SELECT", "1"); + curl.root_module.addCMacro("HAVE_SEND", "1"); + curl.root_module.addCMacro("HAVE_FSETXATTR", "1"); + curl.root_module.addCMacro("HAVE_FSETXATTR_5", "1"); + curl.root_module.addCMacro("HAVE_SETJMP_H", "1"); + curl.root_module.addCMacro("HAVE_SETLOCALE", "1"); + curl.root_module.addCMacro("HAVE_SETRLIMIT", "1"); + curl.root_module.addCMacro("HAVE_SETSOCKOPT", "1"); + curl.root_module.addCMacro("HAVE_SIGACTION", "1"); + curl.root_module.addCMacro("HAVE_SIGINTERRUPT", "1"); + curl.root_module.addCMacro("HAVE_SIGNAL", "1"); + curl.root_module.addCMacro("HAVE_SIGNAL_H", "1"); + curl.root_module.addCMacro("HAVE_SIGSETJMP", "1"); + curl.root_module.addCMacro("HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID", "1"); + curl.root_module.addCMacro("HAVE_SOCKET", "1"); + curl.root_module.addCMacro("HAVE_STDBOOL_H", "1"); + curl.root_module.addCMacro("HAVE_STDINT_H", "1"); + curl.root_module.addCMacro("HAVE_STDIO_H", "1"); + curl.root_module.addCMacro("HAVE_STDLIB_H", "1"); + curl.root_module.addCMacro("HAVE_STRCASECMP", "1"); + curl.root_module.addCMacro("HAVE_STRDUP", "1"); + curl.root_module.addCMacro("HAVE_STRERROR_R", "1"); + curl.root_module.addCMacro("HAVE_STRINGS_H", "1"); + curl.root_module.addCMacro("HAVE_STRING_H", "1"); + curl.root_module.addCMacro("HAVE_STRSTR", "1"); + curl.root_module.addCMacro("HAVE_STRTOK_R", "1"); + curl.root_module.addCMacro("HAVE_STRTOLL", "1"); + curl.root_module.addCMacro("HAVE_STRUCT_SOCKADDR_STORAGE", "1"); + curl.root_module.addCMacro("HAVE_STRUCT_TIMEVAL", "1"); + curl.root_module.addCMacro("HAVE_SYS_IOCTL_H", "1"); + curl.root_module.addCMacro("HAVE_SYS_PARAM_H", "1"); + curl.root_module.addCMacro("HAVE_SYS_POLL_H", "1"); + curl.root_module.addCMacro("HAVE_SYS_RESOURCE_H", "1"); + curl.root_module.addCMacro("HAVE_SYS_SELECT_H", "1"); + curl.root_module.addCMacro("HAVE_SYS_SOCKET_H", "1"); + curl.root_module.addCMacro("HAVE_SYS_STAT_H", "1"); + curl.root_module.addCMacro("HAVE_SYS_TIME_H", "1"); + curl.root_module.addCMacro("HAVE_SYS_TYPES_H", "1"); + curl.root_module.addCMacro("HAVE_SYS_UIO_H", "1"); + curl.root_module.addCMacro("HAVE_SYS_UN_H", "1"); + curl.root_module.addCMacro("HAVE_TERMIOS_H", "1"); + curl.root_module.addCMacro("HAVE_TERMIO_H", "1"); + curl.root_module.addCMacro("HAVE_TIME_H", "1"); + curl.root_module.addCMacro("HAVE_UNAME", "1"); + curl.root_module.addCMacro("HAVE_UNISTD_H", "1"); + curl.root_module.addCMacro("HAVE_UTIME", "1"); + curl.root_module.addCMacro("HAVE_UTIMES", "1"); + curl.root_module.addCMacro("HAVE_UTIME_H", "1"); + curl.root_module.addCMacro("HAVE_VARIADIC_MACROS_C99", "1"); + curl.root_module.addCMacro("HAVE_VARIADIC_MACROS_GCC", "1"); + curl.root_module.addCMacro("OS", "\"Linux\""); + curl.root_module.addCMacro("RANDOM_FILE", "\"/dev/urandom\""); + curl.root_module.addCMacro("RECV_TYPE_ARG1", "int"); + curl.root_module.addCMacro("RECV_TYPE_ARG2", "void *"); + curl.root_module.addCMacro("RECV_TYPE_ARG3", "size_t"); + curl.root_module.addCMacro("RECV_TYPE_ARG4", "int"); + curl.root_module.addCMacro("RECV_TYPE_RETV", "ssize_t"); + curl.root_module.addCMacro("SEND_QUAL_ARG2", "const"); + curl.root_module.addCMacro("SEND_TYPE_ARG1", "int"); + curl.root_module.addCMacro("SEND_TYPE_ARG2", "void *"); + curl.root_module.addCMacro("SEND_TYPE_ARG3", "size_t"); + curl.root_module.addCMacro("SEND_TYPE_ARG4", "int"); + curl.root_module.addCMacro("SEND_TYPE_RETV", "ssize_t"); + curl.root_module.addCMacro("SIZEOF_INT", "4"); + curl.root_module.addCMacro("SIZEOF_SHORT", "2"); + curl.root_module.addCMacro("SIZEOF_LONG", "8"); + curl.root_module.addCMacro("SIZEOF_OFF_T", "8"); + curl.root_module.addCMacro("SIZEOF_CURL_OFF_T", "8"); + curl.root_module.addCMacro("SIZEOF_SIZE_T", "8"); + curl.root_module.addCMacro("SIZEOF_TIME_T", "8"); + curl.root_module.addCMacro("STDC_HEADERS", "1"); + curl.root_module.addCMacro("TIME_WITH_SYS_TIME", "1"); + curl.root_module.addCMacro("USE_THREADS_POSIX", "1"); + curl.root_module.addCMacro("USE_UNIX_SOCKETS", ""); + curl.root_module.addCMacro("_FILE_OFFSET_BITS", "64"); + } + + curl.addIncludePath(curl_c.path("lib")); + curl.addIncludePath(curl_c.path("include")); + + curl.addCSourceFiles(.{ + .root = curl_c.path("lib"), + .files = &.{ + "vauth/krb5_sspi.c", + "vauth/spnego_sspi.c", + "vauth/ntlm.c", + "vauth/gsasl.c", + "vauth/spnego_gssapi.c", + "vauth/ntlm_sspi.c", + "vauth/vauth.c", + "vauth/oauth2.c", + "vauth/cram.c", + "vauth/cleartext.c", + "vauth/krb5_gssapi.c", + "vauth/digest.c", + "vauth/digest_sspi.c", + "vquic/vquic.c", + "vquic/curl_ngtcp2.c", + // "vquic/curl_osslq.c", + // "vquic/vquic-tls.c", + "vquic/curl_quiche.c", + "vquic/curl_msh3.c", + "vssh/libssh.c", + "vssh/libssh2.c", + "vssh/wolfssh.c", + // "vtls/mbedtls.c", + "vtls/gtls.c", + "vtls/bearssl.c", + "vtls/hostcheck.c", + "vtls/rustls.c", + "vtls/schannel.c", + "vtls/sectransp.c", + "vtls/schannel_verify.c", + "vtls/vtls.c", + "vtls/cipher_suite.c", + "vtls/keylog.c", + "vtls/openssl.c", + "vtls/wolfssl.c", + "vtls/mbedtls_threadlock.c", + "vtls/x509asn1.c", + "strcase.c", + "easyoptions.c", + "dict.c", + "llist.c", + "mprintf.c", + "pingpong.c", + "socks_gssapi.c", + "psl.c", + "url.c", + "timeval.c", + "curl_get_line.c", + "hmac.c", + "md4.c", + "curl_range.c", + "idn.c", + "hostsyn.c", + "strtok.c", + "curl_threads.c", + "if2ip.c", + "c-hyper.c", + "cf-socket.c", + "http_negotiate.c", + "doh.c", + "curl_endian.c", + "formdata.c", + "easygetopt.c", + "cf-https-connect.c", + "timediff.c", + "dynbuf.c", + "rand.c", + "http2.c", + "request.c", + "dynhds.c", + "content_encoding.c", + "hostip.c", + "escape.c", + "version_win32.c", + "easy.c", + "rename.c", + "share.c", + "slist.c", + "inet_pton.c", + "tftp.c", + "mqtt.c", + "fopen.c", + "socks.c", + "parsedate.c", + "curl_trc.c", + "warnless.c", + "cf-haproxy.c", + "cfilters.c", + "curl_sha512_256.c", + "system_win32.c", + "transfer.c", + "curl_rtmp.c", + "nonblock.c", + "select.c", + "hostip4.c", + "http1.c", + "urlapi.c", + "openldap.c", + "getenv.c", + "hash.c", + "bufq.c", + "http_proxy.c", + "krb5.c", + "multi.c", + "strdup.c", + "mime.c", + "socks_sspi.c", + "smtp.c", + "http_aws_sigv4.c", + "curl_addrinfo.c", + "cf-h2-proxy.c", + "memdebug.c", + "progress.c", + "curl_ntlm_core.c", + "curl_path.c", + "hostasyn.c", + "pop3.c", + "noproxy.c", + "gopher.c", + "rtsp.c", + "curl_gethostname.c", + "curl_des.c", + "base64.c", + "splay.c", + "http.c", + "curl_sspi.c", + "http_chunks.c", + "telnet.c", + "amigaos.c", + "fileinfo.c", + "version.c", + "ldap.c", + "bufref.c", + "curl_sasl.c", + "netrc.c", + "socketpair.c", + "strerror.c", + "curl_multibyte.c", + "altsvc.c", + "conncache.c", + "curl_memrchr.c", + "dllmain.c", + "smb.c", + "sha256.c", + "connect.c", + "ws.c", + "ftp.c", + "strtoofft.c", + "md5.c", + "file.c", + "http_digest.c", + "asyn-thread.c", + "cf-h1-proxy.c", + "hsts.c", + "asyn-ares.c", + "imap.c", + "headers.c", + "macos.c", + "cookie.c", + "hostip6.c", + "sendf.c", + "ftplistparser.c", + "http_ntlm.c", + "setopt.c", + "getinfo.c", + "speedcheck.c", + "inet_ntop.c", + "cw-out.c", + "curl_gssapi.c", + "curl_fnmatch.c", + }, + .flags = &.{ + "-fno-sanitize=all", + "-std=gnu89", + "-Wno-unknown-warning-option", + "-Wswitch-default", + "-Wno-parentheses-equality", + "-Wno-language-extension-token", + "-Wno-extended-offsetof", + "-Wconditional-uninitialized", + "-Wincompatible-pointer-types-discards-qualifiers", + "-Wmissing-variable-declarations", + "-Wno-int-conversion", + }, + }); + + curl.installHeadersDirectory(curl_c.path("include/curl"), "curl", .{}); + + b.installArtifact(curl); +} diff --git a/vere/ext/curl/build.zig.zon b/vere/ext/curl/build.zig.zon new file mode 100644 index 0000000..cae4397 --- /dev/null +++ b/vere/ext/curl/build.zig.zon @@ -0,0 +1,16 @@ +.{ + .name = "curl", + .version = "0.0.1", + .dependencies = .{ + .curl = .{ + .url = "https://github.com/curl/curl/releases/download/curl-8_9_1/curl-8.9.1.tar.gz", + .hash = "N-V-__8AAFnEQQHzY3X3pCO43EGxRhLWhfSOAwsl0PbraQER", + }, + .openssl = .{ + .path = "../openssl", + }, + }, + .paths = .{ + "", + }, +} diff --git a/vere/ext/gmp/build.zig b/vere/ext/gmp/build.zig new file mode 100644 index 0000000..576e18a --- /dev/null +++ b/vere/ext/gmp/build.zig @@ -0,0 +1,888 @@ +const std = @import("std"); + +pub fn build(b: *std.Build) void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + const t = target.result; + + const dep_c = b.dependency("gmp", .{ + .target = target, + .optimize = optimize, + }); + + const lib = b.addStaticLibrary(.{ + .name = "gmp", + .target = target, + .optimize = optimize, + }); + + lib.linkLibC(); + + // TODO: Finish this + const gmp_h = b.addConfigHeader(.{ + .style = .{ + .cmake = dep_c.path("gmp-h.in"), + }, + .include_path = "gmp.h", + }, .{ + .HAVE_HOST_CPU_FAMILY_power = 0, + .HAVE_HOST_CPU_FAMILY_powerpc = 0, + .GMP_LIMB_BITS = 64, + .GMP_NAIL_BITS = 0, + .DEFN_LONG_LONG_LIMB = "", + .LIBGMP_DLL = 0, + .CC = "gcc", + .CFLAGS = "-O2 -pedantic -march=armv8-a", + }); + + lib.addConfigHeader(gmp_h); + + // Static headers + lib.addIncludePath(dep_c.path(".")); + lib.addIncludePath(dep_c.path("mpf")); + lib.addIncludePath(dep_c.path("mpn")); + lib.addIncludePath(dep_c.path("mpq")); + lib.addIncludePath(dep_c.path("mpz")); + lib.addIncludePath(dep_c.path("printf")); + lib.addIncludePath(dep_c.path("rand")); + lib.addIncludePath(dep_c.path("scanf")); + if (t.cpu.arch.isAARCH64()) { + lib.addIncludePath(dep_c.path("mpn/arm64")); + } else if (t.cpu.arch.isX86()) { + lib.addIncludePath(dep_c.path("mpn/x86_64")); + } + + // Generated Sources + if (t.os.tag == .macos and t.cpu.arch == .aarch64) { + lib.addIncludePath(b.path("gen/aarch64-macos")); + lib.addIncludePath(b.path("gen/aarch64-macos/mpn")); + for (aarch64_macos_asm_sources) |rel_path| { + lib.addAssemblyFile(b.path(rel_path)); + } + lib.addCSourceFiles(.{ + .root = b.path("gen/aarch64-macos"), + .files = &.{ + "mpn/mp_bases.c", + "mpn/fib_table.c", + }, + .flags = &.{ + "-fno-sanitize=all", + }, + }); + } + if (t.os.tag == .macos and t.cpu.arch == .x86_64) { + lib.addIncludePath(b.path("gen/x86_64-macos")); + lib.addIncludePath(b.path("gen/x86_64-macos/mpn")); + for (x86_64_macos_asm_sources) |rel_path| { + lib.addAssemblyFile(b.path(rel_path)); + } + lib.addCSourceFiles(.{ + .root = b.path("gen/x86_64-macos"), + .files = &.{ + "mpn/mp_bases.c", + "mpn/fib_table.c", + }, + .flags = &.{ + "-fno-sanitize=all", + }, + }); + } + if (t.os.tag == .linux and t.cpu.arch == .aarch64) { + lib.addIncludePath(b.path("gen/aarch64-linux")); + lib.addIncludePath(b.path("gen/aarch64-linux/mpn")); + for (aarch64_linux_asm_sources) |rel_path| { + lib.addAssemblyFile(b.path(rel_path)); + } + lib.addCSourceFiles(.{ + .root = b.path("gen/aarch64-linux"), + .files = &.{ + "mpn/mp_bases.c", + "mpn/fib_table.c", + }, + .flags = &.{ + "-fno-sanitize=all", + }, + }); + } + if (t.os.tag == .linux and t.cpu.arch == .x86_64) { + lib.addIncludePath(b.path("gen/x86_64-linux")); + lib.addIncludePath(b.path("gen/x86_64-linux/mpn")); + for (x86_64_linux_asm_sources) |rel_path| { + lib.addAssemblyFile(b.path(rel_path)); + } + lib.addCSourceFiles(.{ + .root = b.path("gen/x86_64-linux"), + .files = &.{ + "mpn/mp_bases.c", + "mpn/fib_table.c", + }, + .flags = &.{ + "-fno-sanitize=all", + }, + }); + } + + // Generic C Sources + lib.addCSourceFiles(.{ + .root = dep_c.path(""), + .files = &generic_c_sources, + .flags = &.{ + "-fno-sanitize=all", + }, + }); + + // These files need to be compiles twice with different macros + lib.addCSourceFiles(.{ + .root = dep_c.path(""), + .files = &.{ + "mpn/generic/sec_div.c", + "mpn/generic/sec_pi1_div.c", + "mpn/generic/sec_aors_1.c", + }, + .flags = &.{ + "-fno-sanitize=all", + "-DOPERATION_sec_div_qr", // sec_div.c + "-DOPERATION_sec_pi1_div_qr", // sec_pi1_div.c + "-DOPERATION_sec_add_1", // sec_aors_1.c + }, + }); + lib.addCSourceFiles(.{ + .root = dep_c.path(""), + .files = &.{ + "mpn/generic/sec_div.c", + "mpn/generic/sec_pi1_div.c", + "mpn/generic/sec_aors_1.c", + }, + .flags = &.{ + "-fno-sanitize=all", + "-DOPERATION_sec_div_r", // sec_div.c + "-DOPERATION_sec_pi1_div_r", // sec_pi1_div.c + "-DOPERATION_sec_sub_1", // sec_aors_1.c + }, + }); + + lib.installConfigHeader(gmp_h); + + b.installArtifact(lib); +} + +const aarch64_macos_asm_sources = [_][]const u8{ + "gen/aarch64-macos/mpn/add_n.s", + "gen/aarch64-macos/mpn/addlsh1_n.s", + "gen/aarch64-macos/mpn/addlsh2_n.s", + "gen/aarch64-macos/mpn/addmul_1.s", + "gen/aarch64-macos/mpn/and_n.s", + "gen/aarch64-macos/mpn/andn_n.s", + "gen/aarch64-macos/mpn/bdiv_dbm1c.s", + "gen/aarch64-macos/mpn/bdiv_q_1.s", + "gen/aarch64-macos/mpn/cnd_add_n.s", + "gen/aarch64-macos/mpn/cnd_sub_n.s", + "gen/aarch64-macos/mpn/com.s", + "gen/aarch64-macos/mpn/copyd.s", + "gen/aarch64-macos/mpn/copyi.s", + "gen/aarch64-macos/mpn/gcd_11.s", + "gen/aarch64-macos/mpn/gcd_22.s", + "gen/aarch64-macos/mpn/hamdist.s", + "gen/aarch64-macos/mpn/invert_limb.s", + "gen/aarch64-macos/mpn/ior_n.s", + "gen/aarch64-macos/mpn/iorn_n.s", + "gen/aarch64-macos/mpn/lshift.s", + "gen/aarch64-macos/mpn/lshiftc.s", + "gen/aarch64-macos/mpn/mod_34lsub1.s", + "gen/aarch64-macos/mpn/mul_1.s", + "gen/aarch64-macos/mpn/nand_n.s", + "gen/aarch64-macos/mpn/nior_n.s", + "gen/aarch64-macos/mpn/popcount.s", + "gen/aarch64-macos/mpn/rsblsh1_n.s", + "gen/aarch64-macos/mpn/rsblsh2_n.s", + "gen/aarch64-macos/mpn/rsh1add_n.s", + "gen/aarch64-macos/mpn/rsh1sub_n.s", + "gen/aarch64-macos/mpn/rshift.s", + "gen/aarch64-macos/mpn/sec_tabselect.s", + "gen/aarch64-macos/mpn/sqr_diag_addlsh1.s", + "gen/aarch64-macos/mpn/sub_n.s", + "gen/aarch64-macos/mpn/sublsh1_n.s", + "gen/aarch64-macos/mpn/sublsh2_n.s", + "gen/aarch64-macos/mpn/submul_1.s", + "gen/aarch64-macos/mpn/xnor_n.s", + "gen/aarch64-macos/mpn/xor_n.s", +}; + +const x86_64_macos_asm_sources = [_][]const u8{ + "gen/x86_64-macos/mpn/add_err1_n.s", + "gen/x86_64-macos/mpn/add_err2_n.s", + "gen/x86_64-macos/mpn/add_err3_n.s", + "gen/x86_64-macos/mpn/add_n.s", + "gen/x86_64-macos/mpn/addaddmul_1msb0.s", + "gen/x86_64-macos/mpn/addlsh1_n.s", + "gen/x86_64-macos/mpn/addlsh2_n.s", + "gen/x86_64-macos/mpn/addlsh_n.s", + "gen/x86_64-macos/mpn/addmul_1.s", + "gen/x86_64-macos/mpn/addmul_2.s", + "gen/x86_64-macos/mpn/and_n.s", + "gen/x86_64-macos/mpn/andn_n.s", + "gen/x86_64-macos/mpn/bdiv_dbm1c.s", + "gen/x86_64-macos/mpn/bdiv_q_1.s", + "gen/x86_64-macos/mpn/cnd_add_n.s", + "gen/x86_64-macos/mpn/cnd_sub_n.s", + "gen/x86_64-macos/mpn/com.s", + "gen/x86_64-macos/mpn/copyd.s", + "gen/x86_64-macos/mpn/copyi.s", + "gen/x86_64-macos/mpn/div_qr_1n_pi1.s", + "gen/x86_64-macos/mpn/div_qr_2n_pi1.s", + "gen/x86_64-macos/mpn/div_qr_2u_pi1.s", + "gen/x86_64-macos/mpn/dive_1.s", + "gen/x86_64-macos/mpn/divrem_1.s", + "gen/x86_64-macos/mpn/divrem_2.s", + "gen/x86_64-macos/mpn/gcd_11.s", + "gen/x86_64-macos/mpn/gcd_22.s", + "gen/x86_64-macos/mpn/hamdist.s", + "gen/x86_64-macos/mpn/invert_limb.s", + "gen/x86_64-macos/mpn/invert_limb_table.s", + "gen/x86_64-macos/mpn/ior_n.s", + "gen/x86_64-macos/mpn/iorn_n.s", + "gen/x86_64-macos/mpn/lshift.s", + "gen/x86_64-macos/mpn/lshiftc.s", + "gen/x86_64-macos/mpn/mod_1_1.s", + "gen/x86_64-macos/mpn/mod_1_2.s", + "gen/x86_64-macos/mpn/mod_1_4.s", + "gen/x86_64-macos/mpn/mod_34lsub1.s", + "gen/x86_64-macos/mpn/mode1o.s", + "gen/x86_64-macos/mpn/mul_1.s", + "gen/x86_64-macos/mpn/mul_2.s", + "gen/x86_64-macos/mpn/mul_basecase.s", + "gen/x86_64-macos/mpn/mullo_basecase.s", + "gen/x86_64-macos/mpn/nand_n.s", + "gen/x86_64-macos/mpn/nior_n.s", + "gen/x86_64-macos/mpn/popcount.s", + "gen/x86_64-macos/mpn/redc_1.s", + "gen/x86_64-macos/mpn/rsblsh1_n.s", + "gen/x86_64-macos/mpn/rsblsh2_n.s", + "gen/x86_64-macos/mpn/rsblsh_n.s", + "gen/x86_64-macos/mpn/rsh1add_n.s", + "gen/x86_64-macos/mpn/rsh1sub_n.s", + "gen/x86_64-macos/mpn/rshift.s", + "gen/x86_64-macos/mpn/sec_tabselect.s", + "gen/x86_64-macos/mpn/sqr_basecase.s", + "gen/x86_64-macos/mpn/sqr_diag_addlsh1.s", + "gen/x86_64-macos/mpn/sub_err1_n.s", + "gen/x86_64-macos/mpn/sub_err2_n.s", + "gen/x86_64-macos/mpn/sub_err3_n.s", + "gen/x86_64-macos/mpn/sub_n.s", + "gen/x86_64-macos/mpn/sublsh1_n.s", + "gen/x86_64-macos/mpn/sublsh2_n.s", + "gen/x86_64-macos/mpn/submul_1.s", + "gen/x86_64-macos/mpn/xnor_n.s", + "gen/x86_64-macos/mpn/xor_n.s", +}; + +const aarch64_linux_asm_sources = [_][]const u8{ + "gen/aarch64-linux/mpn/add_n.s", + "gen/aarch64-linux/mpn/addlsh1_n.s", + "gen/aarch64-linux/mpn/addlsh2_n.s", + "gen/aarch64-linux/mpn/addmul_1.s", + "gen/aarch64-linux/mpn/and_n.s", + "gen/aarch64-linux/mpn/andn_n.s", + "gen/aarch64-linux/mpn/bdiv_dbm1c.s", + "gen/aarch64-linux/mpn/bdiv_q_1.s", + "gen/aarch64-linux/mpn/cnd_add_n.s", + "gen/aarch64-linux/mpn/cnd_sub_n.s", + "gen/aarch64-linux/mpn/com.s", + "gen/aarch64-linux/mpn/copyd.s", + "gen/aarch64-linux/mpn/copyi.s", + "gen/aarch64-linux/mpn/gcd_11.s", + "gen/aarch64-linux/mpn/gcd_22.s", + "gen/aarch64-linux/mpn/hamdist.s", + "gen/aarch64-linux/mpn/invert_limb.s", + "gen/aarch64-linux/mpn/ior_n.s", + "gen/aarch64-linux/mpn/iorn_n.s", + "gen/aarch64-linux/mpn/lshift.s", + "gen/aarch64-linux/mpn/lshiftc.s", + "gen/aarch64-linux/mpn/mod_34lsub1.s", + "gen/aarch64-linux/mpn/mul_1.s", + "gen/aarch64-linux/mpn/nand_n.s", + "gen/aarch64-linux/mpn/nior_n.s", + "gen/aarch64-linux/mpn/popcount.s", + "gen/aarch64-linux/mpn/rsblsh1_n.s", + "gen/aarch64-linux/mpn/rsblsh2_n.s", + "gen/aarch64-linux/mpn/rsh1add_n.s", + "gen/aarch64-linux/mpn/rsh1sub_n.s", + "gen/aarch64-linux/mpn/rshift.s", + "gen/aarch64-linux/mpn/sec_tabselect.s", + "gen/aarch64-linux/mpn/sqr_diag_addlsh1.s", + "gen/aarch64-linux/mpn/sub_n.s", + "gen/aarch64-linux/mpn/sublsh1_n.s", + "gen/aarch64-linux/mpn/sublsh2_n.s", + "gen/aarch64-linux/mpn/submul_1.s", + "gen/aarch64-linux/mpn/xnor_n.s", + "gen/aarch64-linux/mpn/xor_n.s", +}; + +const x86_64_linux_asm_sources = [_][]const u8{ + "gen/x86_64-linux/mpn/add_err1_n.s", + "gen/x86_64-linux/mpn/add_err2_n.s", + "gen/x86_64-linux/mpn/add_err3_n.s", + "gen/x86_64-linux/mpn/add_n.s", + "gen/x86_64-linux/mpn/addaddmul_1msb0.s", + "gen/x86_64-linux/mpn/addlsh1_n.s", + "gen/x86_64-linux/mpn/addlsh2_n.s", + "gen/x86_64-linux/mpn/addlsh_n.s", + "gen/x86_64-linux/mpn/addmul_1.s", + "gen/x86_64-linux/mpn/addmul_2.s", + "gen/x86_64-linux/mpn/and_n.s", + "gen/x86_64-linux/mpn/andn_n.s", + "gen/x86_64-linux/mpn/bdiv_dbm1c.s", + "gen/x86_64-linux/mpn/bdiv_q_1.s", + "gen/x86_64-linux/mpn/cnd_add_n.s", + "gen/x86_64-linux/mpn/cnd_sub_n.s", + "gen/x86_64-linux/mpn/com.s", + "gen/x86_64-linux/mpn/copyd.s", + "gen/x86_64-linux/mpn/copyi.s", + "gen/x86_64-linux/mpn/div_qr_1n_pi1.s", + "gen/x86_64-linux/mpn/div_qr_2n_pi1.s", + "gen/x86_64-linux/mpn/div_qr_2u_pi1.s", + "gen/x86_64-linux/mpn/dive_1.s", + "gen/x86_64-linux/mpn/divrem_1.s", + "gen/x86_64-linux/mpn/divrem_2.s", + "gen/x86_64-linux/mpn/gcd_11.s", + "gen/x86_64-linux/mpn/gcd_22.s", + "gen/x86_64-linux/mpn/hamdist.s", + "gen/x86_64-linux/mpn/invert_limb.s", + "gen/x86_64-linux/mpn/invert_limb_table.s", + "gen/x86_64-linux/mpn/ior_n.s", + "gen/x86_64-linux/mpn/iorn_n.s", + "gen/x86_64-linux/mpn/lshift.s", + "gen/x86_64-linux/mpn/lshiftc.s", + "gen/x86_64-linux/mpn/mod_1_1.s", + "gen/x86_64-linux/mpn/mod_1_2.s", + "gen/x86_64-linux/mpn/mod_1_4.s", + "gen/x86_64-linux/mpn/mod_34lsub1.s", + "gen/x86_64-linux/mpn/mode1o.s", + "gen/x86_64-linux/mpn/mul_1.s", + "gen/x86_64-linux/mpn/mul_2.s", + "gen/x86_64-linux/mpn/mul_basecase.s", + "gen/x86_64-linux/mpn/mullo_basecase.s", + "gen/x86_64-linux/mpn/mulmid_basecase.s", + "gen/x86_64-linux/mpn/nand_n.s", + "gen/x86_64-linux/mpn/nior_n.s", + "gen/x86_64-linux/mpn/popcount.s", + "gen/x86_64-linux/mpn/redc_1.s", + "gen/x86_64-linux/mpn/rsblsh1_n.s", + "gen/x86_64-linux/mpn/rsblsh2_n.s", + "gen/x86_64-linux/mpn/rsblsh_n.s", + "gen/x86_64-linux/mpn/rsh1add_n.s", + "gen/x86_64-linux/mpn/rsh1sub_n.s", + "gen/x86_64-linux/mpn/rshift.s", + "gen/x86_64-linux/mpn/sec_tabselect.s", + "gen/x86_64-linux/mpn/sqr_basecase.s", + "gen/x86_64-linux/mpn/sqr_diag_addlsh1.s", + "gen/x86_64-linux/mpn/sub_err1_n.s", + "gen/x86_64-linux/mpn/sub_err2_n.s", + "gen/x86_64-linux/mpn/sub_err3_n.s", + "gen/x86_64-linux/mpn/sub_n.s", + "gen/x86_64-linux/mpn/sublsh1_n.s", + "gen/x86_64-linux/mpn/submul_1.s", + "gen/x86_64-linux/mpn/xnor_n.s", + "gen/x86_64-linux/mpn/xor_n.s", +}; + +const generic_c_sources = [_][]const u8{ + "assert.c", + "bootstrap.c", + "compat.c", + "errno.c", + "extract-dbl.c", + // "gen-bases.c", + // "gen-fac.c", + // "gen-fib.c", + // "gen-jacobitab.c", + // "gen-psqr.c", + // "gen-trialdivtab.c", + "invalid.c", + "memory.c", + "mp_bpl.c", + "mp_clz_tab.c", + "mp_dv_tab.c", + "mp_get_fns.c", + "mp_minv_tab.c", + "mp_set_fns.c", + "nextprime.c", + "primesieve.c", + // "tal-debug.c", + // "tal-notreent.c", + "tal-reent.c", + "version.c", + + "mpf/abs.c", + "mpf/add.c", + "mpf/add_ui.c", + "mpf/ceilfloor.c", + "mpf/clear.c", + "mpf/clears.c", + "mpf/cmp.c", + "mpf/cmp_d.c", + "mpf/cmp_si.c", + "mpf/cmp_ui.c", + "mpf/cmp_z.c", + "mpf/div.c", + "mpf/div_2exp.c", + "mpf/div_ui.c", + "mpf/dump.c", + "mpf/eq.c", + "mpf/fits_sint.c", + "mpf/fits_slong.c", + "mpf/fits_sshort.c", + "mpf/fits_uint.c", + "mpf/fits_ulong.c", + "mpf/fits_ushort.c", + "mpf/get_d.c", + "mpf/get_d_2exp.c", + "mpf/get_dfl_prec.c", + "mpf/get_prc.c", + "mpf/get_si.c", + "mpf/get_str.c", + "mpf/get_ui.c", + "mpf/init.c", + "mpf/init2.c", + "mpf/inits.c", + "mpf/inp_str.c", + "mpf/int_p.c", + "mpf/iset.c", + "mpf/iset_d.c", + "mpf/iset_si.c", + "mpf/iset_str.c", + "mpf/iset_ui.c", + "mpf/mul.c", + "mpf/mul_2exp.c", + "mpf/mul_ui.c", + "mpf/neg.c", + "mpf/out_str.c", + "mpf/pow_ui.c", + "mpf/random2.c", + "mpf/reldiff.c", + "mpf/set.c", + "mpf/set_d.c", + "mpf/set_dfl_prec.c", + "mpf/set_prc.c", + "mpf/set_prc_raw.c", + "mpf/set_q.c", + "mpf/set_si.c", + "mpf/set_str.c", + "mpf/set_ui.c", + "mpf/set_z.c", + "mpf/size.c", + "mpf/sqrt.c", + "mpf/sqrt_ui.c", + "mpf/sub.c", + "mpf/sub_ui.c", + "mpf/swap.c", + "mpf/trunc.c", + "mpf/ui_div.c", + "mpf/ui_sub.c", + "mpf/urandomb.c", + + "mpn/generic/add.c", + "mpn/generic/add_1.c", + "mpn/generic/add_err1_n.c", + "mpn/generic/add_err2_n.c", + "mpn/generic/add_err3_n.c", + "mpn/generic/add_n_sub_n.c", + "mpn/generic/bdiv_q.c", + "mpn/generic/bdiv_qr.c", + "mpn/generic/binvert.c", + "mpn/generic/broot.c", + "mpn/generic/brootinv.c", + "mpn/generic/bsqrt.c", + "mpn/generic/bsqrtinv.c", + "mpn/generic/cmp.c", + "mpn/generic/cnd_swap.c", + "mpn/generic/comb_tables.c", + "mpn/generic/compute_powtab.c", + "mpn/generic/dcpi1_bdiv_q.c", + "mpn/generic/dcpi1_bdiv_qr.c", + "mpn/generic/dcpi1_div_q.c", + "mpn/generic/dcpi1_div_qr.c", + "mpn/generic/dcpi1_divappr_q.c", + "mpn/generic/div_q.c", + "mpn/generic/div_qr_1.c", + "mpn/generic/div_qr_1n_pi1.c", + "mpn/generic/div_qr_2.c", + "mpn/generic/div_qr_2n_pi1.c", + "mpn/generic/div_qr_2u_pi1.c", + "mpn/generic/dive_1.c", + "mpn/generic/diveby3.c", + "mpn/generic/divexact.c", + "mpn/generic/divis.c", + "mpn/generic/divrem.c", + "mpn/generic/divrem_1.c", + "mpn/generic/divrem_2.c", + "mpn/generic/dump.c", + "mpn/generic/fib2_ui.c", + "mpn/generic/fib2m.c", + "mpn/generic/gcd.c", + "mpn/generic/gcd_1.c", + "mpn/generic/gcd_subdiv_step.c", + "mpn/generic/gcdext.c", + "mpn/generic/gcdext_1.c", + "mpn/generic/gcdext_lehmer.c", + "mpn/generic/get_d.c", + "mpn/generic/get_str.c", + "mpn/generic/hgcd.c", + "mpn/generic/hgcd2.c", + "mpn/generic/hgcd2_jacobi.c", + "mpn/generic/hgcd_appr.c", + "mpn/generic/hgcd_jacobi.c", + "mpn/generic/hgcd_matrix.c", + "mpn/generic/hgcd_reduce.c", + "mpn/generic/hgcd_step.c", + "mpn/generic/invert.c", + "mpn/generic/invertappr.c", + "mpn/generic/jacbase.c", + "mpn/generic/jacobi.c", + "mpn/generic/jacobi_2.c", + "mpn/generic/matrix22_mul.c", + "mpn/generic/matrix22_mul1_inverse_vector.c", + "mpn/generic/mod_1.c", + "mpn/generic/mod_1_1.c", + "mpn/generic/mod_1_2.c", + "mpn/generic/mod_1_3.c", + "mpn/generic/mod_1_4.c", + "mpn/generic/mode1o.c", + "mpn/generic/mu_bdiv_q.c", + "mpn/generic/mu_bdiv_qr.c", + "mpn/generic/mu_div_q.c", + "mpn/generic/mu_div_qr.c", + "mpn/generic/mu_divappr_q.c", + "mpn/generic/mul.c", + "mpn/generic/mul_basecase.c", + "mpn/generic/mul_fft.c", + "mpn/generic/mul_n.c", + "mpn/generic/mullo_basecase.c", + "mpn/generic/mullo_n.c", + "mpn/generic/mulmid.c", + "mpn/generic/mulmid_basecase.c", + "mpn/generic/mulmid_n.c", + "mpn/generic/mulmod_bnm1.c", + "mpn/generic/mulmod_bknp1.c", + "mpn/generic/neg.c", + "mpn/generic/nussbaumer_mul.c", + "mpn/generic/perfpow.c", + "mpn/generic/perfsqr.c", + "mpn/generic/pow_1.c", + "mpn/generic/powlo.c", + "mpn/generic/powm.c", + "mpn/generic/pre_divrem_1.c", + "mpn/generic/pre_mod_1.c", + "mpn/generic/random.c", + "mpn/generic/random2.c", + "mpn/generic/redc_1.c", + "mpn/generic/redc_2.c", + "mpn/generic/redc_n.c", + "mpn/generic/remove.c", + "mpn/generic/rootrem.c", + "mpn/generic/sbpi1_bdiv_q.c", + "mpn/generic/sbpi1_bdiv_qr.c", + "mpn/generic/sbpi1_bdiv_r.c", + "mpn/generic/sbpi1_div_q.c", + "mpn/generic/sbpi1_div_qr.c", + "mpn/generic/sbpi1_divappr_q.c", + "mpn/generic/scan0.c", + "mpn/generic/scan1.c", + // "mpn/generic/sec_aors_1.c", + // "mpn/generic/sec_div.c", + "mpn/generic/sec_invert.c", + "mpn/generic/sec_mul.c", + // "mpn/generic/sec_pi1_div.c", + "mpn/generic/sec_powm.c", + "mpn/generic/sec_sqr.c", + "mpn/generic/set_str.c", + "mpn/generic/sizeinbase.c", + "mpn/generic/sqr.c", + "mpn/generic/sqr_basecase.c", + "mpn/generic/sqrlo.c", + "mpn/generic/sqrlo_basecase.c", + "mpn/generic/sqrmod_bnm1.c", + "mpn/generic/sqrtrem.c", + "mpn/generic/strongfibo.c", + "mpn/generic/sub.c", + "mpn/generic/sub_1.c", + "mpn/generic/sub_err1_n.c", + "mpn/generic/sub_err2_n.c", + "mpn/generic/sub_err3_n.c", + "mpn/generic/tdiv_qr.c", + "mpn/generic/toom22_mul.c", + "mpn/generic/toom2_sqr.c", + "mpn/generic/toom32_mul.c", + "mpn/generic/toom33_mul.c", + "mpn/generic/toom3_sqr.c", + "mpn/generic/toom42_mul.c", + "mpn/generic/toom42_mulmid.c", + "mpn/generic/toom43_mul.c", + "mpn/generic/toom44_mul.c", + "mpn/generic/toom4_sqr.c", + "mpn/generic/toom52_mul.c", + "mpn/generic/toom53_mul.c", + "mpn/generic/toom54_mul.c", + "mpn/generic/toom62_mul.c", + "mpn/generic/toom63_mul.c", + "mpn/generic/toom6_sqr.c", + "mpn/generic/toom6h_mul.c", + "mpn/generic/toom8_sqr.c", + "mpn/generic/toom8h_mul.c", + "mpn/generic/toom_couple_handling.c", + "mpn/generic/toom_eval_dgr3_pm1.c", + "mpn/generic/toom_eval_dgr3_pm2.c", + "mpn/generic/toom_eval_pm1.c", + "mpn/generic/toom_eval_pm2.c", + "mpn/generic/toom_eval_pm2exp.c", + "mpn/generic/toom_eval_pm2rexp.c", + "mpn/generic/toom_interpolate_12pts.c", + "mpn/generic/toom_interpolate_16pts.c", + "mpn/generic/toom_interpolate_5pts.c", + "mpn/generic/toom_interpolate_6pts.c", + "mpn/generic/toom_interpolate_7pts.c", + "mpn/generic/toom_interpolate_8pts.c", + "mpn/generic/trialdiv.c", + "mpn/generic/zero.c", + "mpn/generic/zero_p.c", + + "mpq/abs.c", + "mpq/aors.c", + "mpq/canonicalize.c", + "mpq/clear.c", + "mpq/clears.c", + "mpq/cmp.c", + "mpq/cmp_si.c", + "mpq/cmp_ui.c", + "mpq/div.c", + "mpq/equal.c", + "mpq/get_d.c", + "mpq/get_den.c", + "mpq/get_num.c", + "mpq/get_str.c", + "mpq/init.c", + "mpq/inits.c", + "mpq/inp_str.c", + "mpq/inv.c", + "mpq/md_2exp.c", + "mpq/mul.c", + "mpq/neg.c", + "mpq/out_str.c", + "mpq/set.c", + "mpq/set_d.c", + "mpq/set_den.c", + "mpq/set_f.c", + "mpq/set_num.c", + "mpq/set_si.c", + "mpq/set_str.c", + "mpq/set_ui.c", + "mpq/set_z.c", + "mpq/swap.c", + + "mpz/2fac_ui.c", + "mpz/abs.c", + "mpz/add.c", + "mpz/add_ui.c", + "mpz/and.c", + "mpz/aorsmul.c", + "mpz/aorsmul_i.c", + "mpz/array_init.c", + "mpz/bin_ui.c", + "mpz/bin_uiui.c", + "mpz/cdiv_q.c", + "mpz/cdiv_q_ui.c", + "mpz/cdiv_qr.c", + "mpz/cdiv_qr_ui.c", + "mpz/cdiv_r.c", + "mpz/cdiv_r_ui.c", + "mpz/cdiv_ui.c", + "mpz/cfdiv_q_2exp.c", + "mpz/cfdiv_r_2exp.c", + "mpz/clear.c", + "mpz/clears.c", + "mpz/clrbit.c", + "mpz/cmp.c", + "mpz/cmp_d.c", + "mpz/cmp_si.c", + "mpz/cmp_ui.c", + "mpz/cmpabs.c", + "mpz/cmpabs_d.c", + "mpz/cmpabs_ui.c", + "mpz/com.c", + "mpz/combit.c", + "mpz/cong.c", + "mpz/cong_2exp.c", + "mpz/cong_ui.c", + "mpz/dive_ui.c", + "mpz/divegcd.c", + "mpz/divexact.c", + "mpz/divis.c", + "mpz/divis_2exp.c", + "mpz/divis_ui.c", + "mpz/dump.c", + "mpz/export.c", + "mpz/fac_ui.c", + "mpz/fdiv_q.c", + "mpz/fdiv_q_ui.c", + "mpz/fdiv_qr.c", + "mpz/fdiv_qr_ui.c", + "mpz/fdiv_r.c", + "mpz/fdiv_r_ui.c", + "mpz/fdiv_ui.c", + "mpz/fib2_ui.c", + "mpz/fib_ui.c", + "mpz/fits_sint.c", + "mpz/fits_slong.c", + "mpz/fits_sshort.c", + "mpz/fits_uint.c", + "mpz/fits_ulong.c", + "mpz/fits_ushort.c", + "mpz/gcd.c", + "mpz/gcd_ui.c", + "mpz/gcdext.c", + "mpz/get_d.c", + "mpz/get_d_2exp.c", + "mpz/get_si.c", + "mpz/get_str.c", + "mpz/get_ui.c", + "mpz/getlimbn.c", + "mpz/hamdist.c", + "mpz/import.c", + "mpz/init.c", + "mpz/init2.c", + "mpz/inits.c", + "mpz/inp_raw.c", + "mpz/inp_str.c", + "mpz/invert.c", + "mpz/ior.c", + "mpz/iset.c", + "mpz/iset_d.c", + "mpz/iset_si.c", + "mpz/iset_str.c", + "mpz/iset_ui.c", + "mpz/jacobi.c", + "mpz/kronsz.c", + "mpz/kronuz.c", + "mpz/kronzs.c", + "mpz/kronzu.c", + "mpz/lcm.c", + "mpz/lcm_ui.c", + "mpz/limbs_finish.c", + "mpz/limbs_modify.c", + "mpz/limbs_read.c", + "mpz/limbs_write.c", + "mpz/lucmod.c", + "mpz/lucnum2_ui.c", + "mpz/lucnum_ui.c", + "mpz/mfac_uiui.c", + "mpz/millerrabin.c", + "mpz/mod.c", + "mpz/mul.c", + "mpz/mul_2exp.c", + "mpz/mul_si.c", + "mpz/mul_ui.c", + "mpz/n_pow_ui.c", + "mpz/neg.c", + "mpz/nextprime.c", + "mpz/oddfac_1.c", + "mpz/out_raw.c", + "mpz/out_str.c", + "mpz/perfpow.c", + "mpz/perfsqr.c", + "mpz/popcount.c", + "mpz/pow_ui.c", + "mpz/powm.c", + "mpz/powm_sec.c", + "mpz/powm_ui.c", + "mpz/pprime_p.c", + "mpz/primorial_ui.c", + "mpz/prodlimbs.c", + "mpz/random.c", + "mpz/random2.c", + "mpz/realloc.c", + "mpz/realloc2.c", + "mpz/remove.c", + "mpz/roinit_n.c", + "mpz/root.c", + "mpz/rootrem.c", + "mpz/rrandomb.c", + "mpz/scan0.c", + "mpz/scan1.c", + "mpz/set.c", + "mpz/set_d.c", + "mpz/set_f.c", + "mpz/set_q.c", + "mpz/set_si.c", + "mpz/set_str.c", + "mpz/set_ui.c", + "mpz/setbit.c", + "mpz/size.c", + "mpz/sizeinbase.c", + "mpz/sqrt.c", + "mpz/sqrtrem.c", + "mpz/stronglucas.c", + "mpz/sub.c", + "mpz/sub_ui.c", + "mpz/swap.c", + "mpz/tdiv_q.c", + "mpz/tdiv_q_2exp.c", + "mpz/tdiv_q_ui.c", + "mpz/tdiv_qr.c", + "mpz/tdiv_qr_ui.c", + "mpz/tdiv_r.c", + "mpz/tdiv_r_2exp.c", + "mpz/tdiv_r_ui.c", + "mpz/tdiv_ui.c", + "mpz/tstbit.c", + "mpz/ui_pow_ui.c", + "mpz/ui_sub.c", + "mpz/urandomb.c", + "mpz/urandomm.c", + "mpz/xor.c", + + "printf/asprintf.c", + "printf/asprntffuns.c", + "printf/doprnt.c", + "printf/doprntf.c", + "printf/doprnti.c", + "printf/fprintf.c", + "printf/obprintf.c", + "printf/obprntffuns.c", + "printf/obvprintf.c", + "printf/printf.c", + "printf/printffuns.c", + "printf/repl-vsnprintf.c", + "printf/snprintf.c", + "printf/snprntffuns.c", + "printf/sprintf.c", + "printf/sprintffuns.c", + "printf/vasprintf.c", + "printf/vfprintf.c", + "printf/vprintf.c", + "printf/vsnprintf.c", + "printf/vsprintf.c", + + "rand/rand.c", + "rand/randbui.c", + "rand/randclr.c", + "rand/randdef.c", + "rand/randiset.c", + "rand/randlc2s.c", + "rand/randlc2x.c", + "rand/randmt.c", + "rand/randmts.c", + "rand/randmui.c", + "rand/rands.c", + "rand/randsd.c", + "rand/randsdui.c", + + "scanf/doscan.c", + "scanf/fscanf.c", + "scanf/fscanffuns.c", + "scanf/scanf.c", + "scanf/sscanf.c", + "scanf/sscanffuns.c", + "scanf/vfscanf.c", + "scanf/vscanf.c", + "scanf/vsscanf.c", +}; diff --git a/vere/ext/gmp/build.zig.zon b/vere/ext/gmp/build.zig.zon new file mode 100644 index 0000000..8925443 --- /dev/null +++ b/vere/ext/gmp/build.zig.zon @@ -0,0 +1,13 @@ +.{ + .name = "gmp", + .version = "0.0.1", + .dependencies = .{ + .gmp = .{ + .url = "https://ftp.fr.openbsd.org/pub/OpenBSD/distfiles/gmp-6.3.0.tar.xz", + .hash = "N-V-__8AAE5fAwHUYgLBeqNatYSKf3qBK3l8nwdpjyY8igK0", + }, + }, + .paths = .{ + "", + }, +} diff --git a/vere/ext/gmp/gen/README.md b/vere/ext/gmp/gen/README.md new file mode 100644 index 0000000..52bdd96 --- /dev/null +++ b/vere/ext/gmp/gen/README.md @@ -0,0 +1,68 @@ +# Generated architecture specific `.c`, `.s`, and `.h` files + +To generate these, first run the `./configure` script under the unpacked GMP dependency directory with the following options: + +macOS: +```terminal +./configure --with-pic --disable-shared +``` + +linux-x86_64: +```terminal +./configure --with-pic --disable-shared --host=x86_64-linux-musl +``` + +linux-aarch64: +```terminal +./configure --with-pic --disable-shared --host=aarch64-linux-musl +``` + +Next, navigate under `mpn/` and run the following to generate the assembly files: + +```bash +for file in $(find . -maxdepth 1 -print | grep "\.asm$"); do + filename_no_path="${file#"./"}"; + filename="${filename_no_path%.*}"; + echo "m4 -DHAVE_CONFIG_H -D__GMP_WITHIN_GMP -DOPERATION_${filename} -DPIC $file > ${filename}.s"; + m4 -DHAVE_CONFIG_H -D__GMP_WITHIN_GMP -DOPERATION_${filename} -DPIC $file > ${filename}.s; +done +``` + +Next, copy the generated `mpn/*.s` files under the appropriate path, e.g., +`aarch64-macos/mpn/.` + +Now, under the GMP root dir run `make` and copy these files as well: + +- `mp_bases.h` +- `fac_table.h` +- `fib_table.h` +- `trialdivtab.h` +- `sieve_table.h` +- `mpn/fib_table.c` +- `mpn/jacobitab.h` +- `mpn/mp_bases.c` +- `mpn/perfsqr.h` + +e.g. +```bash +cp {mp_bases.h,fac_table.h,fib_table.h,trialdivtab.h} aarch64-macos/. +cp {mpn/fib_table.c,mpn/jacobitab.h,mpn/mp_bases.c,mpn/perfsqr.h} aarch64-macos/mpn/. +``` + +## Some additional snippets + +### Write the generated assembly file paths into a file `ssources` + +```bash +for file in $(find ./mpn -maxdepth 1 -print | grep "\.s" | sort); do + echo $(realpath $file) >> ssources; +done +``` + +### Write the relevant C source file paths into a file `csources` + +```bash +for file in $(find ./mpn -maxdepth 1 -print | grep "\.c" | sort); do + echo $(realpath $file) >> csources; +done +``` diff --git a/vere/ext/gmp/gen/aarch64-linux/config.h b/vere/ext/gmp/gen/aarch64-linux/config.h new file mode 100644 index 0000000..ad9547c --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/config.h @@ -0,0 +1,672 @@ +/* config.h. Generated from config.in by configure. */ +/* config.in. Generated from configure.ac by autoheader. */ + +/* + +Copyright 1996-2022 Free Software Foundation, Inc. + +This file is part of the GNU MP Library. + +The GNU MP Library is free software; you can redistribute it and/or modify +it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at your + option) any later version. + +or + + * the GNU General Public License as published by the Free Software + Foundation; either version 2 of the License, or (at your option) any + later version. + +or both in parallel, as here. + +The GNU MP Library is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received copies of the GNU General Public License and the +GNU Lesser General Public License along with the GNU MP Library. If not, +see https://www.gnu.org/licenses/. +*/ + +/* Define if building universal (internal helper macro) */ +/* #undef AC_APPLE_UNIVERSAL_BUILD */ + +/* The gmp-mparam.h file (a string) the tune program should suggest updating. + */ +#define GMP_MPARAM_H_SUGGEST "./mpn/arm64/gmp-mparam.h" + +/* Define to 1 if you have the `alarm' function. */ +#define HAVE_ALARM 1 + +/* Define to 1 if alloca() works (via gmp-impl.h). */ +#define HAVE_ALLOCA 1 + +/* Define to 1 if you have and it should be used (not on Ultrix). + */ +#define HAVE_ALLOCA_H 1 + +/* Define to 1 if the compiler accepts gcc style __attribute__ ((const)) */ +#define HAVE_ATTRIBUTE_CONST 1 + +/* Define to 1 if the compiler accepts gcc style __attribute__ ((malloc)) */ +#define HAVE_ATTRIBUTE_MALLOC 1 + +/* Define to 1 if the compiler accepts gcc style __attribute__ ((mode (XX))) + */ +#define HAVE_ATTRIBUTE_MODE 1 + +/* Define to 1 if the compiler accepts gcc style __attribute__ ((noreturn)) */ +#define HAVE_ATTRIBUTE_NORETURN 1 + +/* Define to 1 if you have the `attr_get' function. */ +/* #undef HAVE_ATTR_GET */ + +/* Define to 1 if tests/libtests has calling conventions checking for the CPU + */ +/* #undef HAVE_CALLING_CONVENTIONS */ + +/* Define to 1 if you have the `clock' function. */ +#define HAVE_CLOCK 1 + +/* Define to 1 if you have the `clock_gettime' function */ +#define HAVE_CLOCK_GETTIME 1 + +/* Define to 1 if you have the `cputime' function. */ +/* #undef HAVE_CPUTIME */ + +/* Define to 1 if you have the declaration of `fgetc', and to 0 if you don't. + */ +#define HAVE_DECL_FGETC 1 + +/* Define to 1 if you have the declaration of `fscanf', and to 0 if you don't. + */ +#define HAVE_DECL_FSCANF 1 + +/* Define to 1 if you have the declaration of `optarg', and to 0 if you don't. + */ +#define HAVE_DECL_OPTARG 1 + +/* Define to 1 if you have the declaration of `sys_errlist', and to 0 if you + don't. */ +#define HAVE_DECL_SYS_ERRLIST 0 + +/* Define to 1 if you have the declaration of `sys_nerr', and to 0 if you + don't. */ +#define HAVE_DECL_SYS_NERR 0 + +/* Define to 1 if you have the declaration of `ungetc', and to 0 if you don't. + */ +#define HAVE_DECL_UNGETC 1 + +/* Define to 1 if you have the declaration of `vfprintf', and to 0 if you + don't. */ +#define HAVE_DECL_VFPRINTF 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define one of the following to 1 for the format of a `double'. + If your format is not among these choices, or you don't know what it is, + then leave all undefined. + IEEE_LITTLE_SWAPPED means little endian, but with the two 4-byte halves + swapped, as used by ARM CPUs in little endian mode. */ +/* #undef HAVE_DOUBLE_IEEE_BIG_ENDIAN */ +#define HAVE_DOUBLE_IEEE_LITTLE_ENDIAN 1 +/* #undef HAVE_DOUBLE_IEEE_LITTLE_SWAPPED */ +/* #undef HAVE_DOUBLE_VAX_D */ +/* #undef HAVE_DOUBLE_VAX_G */ +/* #undef HAVE_DOUBLE_CRAY_CFP */ + +/* Define to 1 if you have the header file. */ +#define HAVE_FCNTL_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_FLOAT_H 1 + +/* Define to 1 if you have the `getpagesize' function. */ +#define HAVE_GETPAGESIZE 1 + +/* Define to 1 if you have the `getrusage' function. */ +#define HAVE_GETRUSAGE 1 + +/* Define to 1 if you have the `getsysinfo' function. */ +/* #undef HAVE_GETSYSINFO */ + +/* Define to 1 if you have the `gettimeofday' function. */ +#define HAVE_GETTIMEOFDAY 1 + +/* Define to 1 if the compiler accepts gcc style __attribute__ ((visibility)) + and __attribute__ ((alias)) */ +#define HAVE_HIDDEN_ALIAS 1 + +/* Define one of these to 1 for the host CPU family. + If your CPU is not in any of these families, leave all undefined. + For an AMD64 chip, define "x86" in ABI=32, but not in ABI=64. */ +/* #undef HAVE_HOST_CPU_FAMILY_alpha */ +/* #undef HAVE_HOST_CPU_FAMILY_m68k */ +/* #undef HAVE_HOST_CPU_FAMILY_power */ +/* #undef HAVE_HOST_CPU_FAMILY_powerpc */ +/* #undef HAVE_HOST_CPU_FAMILY_x86 */ +/* #undef HAVE_HOST_CPU_FAMILY_x86_64 */ + +/* Define one of the following to 1 for the host CPU, as per the output of + ./config.guess. If your CPU is not listed here, leave all undefined. */ +/* #undef HAVE_HOST_CPU_alphaev67 */ +/* #undef HAVE_HOST_CPU_alphaev68 */ +/* #undef HAVE_HOST_CPU_alphaev7 */ +/* #undef HAVE_HOST_CPU_m68020 */ +/* #undef HAVE_HOST_CPU_m68030 */ +/* #undef HAVE_HOST_CPU_m68040 */ +/* #undef HAVE_HOST_CPU_m68060 */ +/* #undef HAVE_HOST_CPU_m68360 */ +/* #undef HAVE_HOST_CPU_powerpc604 */ +/* #undef HAVE_HOST_CPU_powerpc604e */ +/* #undef HAVE_HOST_CPU_powerpc750 */ +/* #undef HAVE_HOST_CPU_powerpc7400 */ +/* #undef HAVE_HOST_CPU_supersparc */ +/* #undef HAVE_HOST_CPU_i386 */ +/* #undef HAVE_HOST_CPU_i586 */ +/* #undef HAVE_HOST_CPU_i686 */ +/* #undef HAVE_HOST_CPU_pentium */ +/* #undef HAVE_HOST_CPU_pentiummmx */ +/* #undef HAVE_HOST_CPU_pentiumpro */ +/* #undef HAVE_HOST_CPU_pentium2 */ +/* #undef HAVE_HOST_CPU_pentium3 */ +/* #undef HAVE_HOST_CPU_pentium4 */ +/* #undef HAVE_HOST_CPU_core2 */ +/* #undef HAVE_HOST_CPU_nehalem */ +/* #undef HAVE_HOST_CPU_westmere */ +/* #undef HAVE_HOST_CPU_sandybridge */ +/* #undef HAVE_HOST_CPU_ivybridge */ +/* #undef HAVE_HOST_CPU_haswell */ +/* #undef HAVE_HOST_CPU_broadwell */ +/* #undef HAVE_HOST_CPU_skylake */ +/* #undef HAVE_HOST_CPU_silvermont */ +/* #undef HAVE_HOST_CPU_goldmont */ +/* #undef HAVE_HOST_CPU_tremont */ +/* #undef HAVE_HOST_CPU_k8 */ +/* #undef HAVE_HOST_CPU_k10 */ +/* #undef HAVE_HOST_CPU_bulldozer */ +/* #undef HAVE_HOST_CPU_piledriver */ +/* #undef HAVE_HOST_CPU_steamroller */ +/* #undef HAVE_HOST_CPU_excavator */ +/* #undef HAVE_HOST_CPU_zen */ +/* #undef HAVE_HOST_CPU_bobcat */ +/* #undef HAVE_HOST_CPU_jaguar */ +/* #undef HAVE_HOST_CPU_s390_z900 */ +/* #undef HAVE_HOST_CPU_s390_z990 */ +/* #undef HAVE_HOST_CPU_s390_z9 */ +/* #undef HAVE_HOST_CPU_s390_z10 */ +/* #undef HAVE_HOST_CPU_s390_z196 */ +/* #undef HAVE_HOST_CPU_s390_z13 */ +/* #undef HAVE_HOST_CPU_s390_z14 */ +/* #undef HAVE_HOST_CPU_s390_z15 */ + +/* Define to 1 iff we have a s390 with 64-bit registers. */ +/* #undef HAVE_HOST_CPU_s390_zarch */ + +/* Define to 1 if the system has the type `intmax_t'. */ +#define HAVE_INTMAX_T 1 + +/* Define to 1 if the system has the type `intptr_t'. */ +#define HAVE_INTPTR_T 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_INVENT_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_LANGINFO_H 1 + +/* Define one of these to 1 for the endianness of `mp_limb_t'. + If the endianness is not a simple big or little, or you don't know what + it is, then leave both undefined. */ +/* #undef HAVE_LIMB_BIG_ENDIAN */ +#define HAVE_LIMB_LITTLE_ENDIAN 1 + +/* Define to 1 if you have the `localeconv' function. */ +#define HAVE_LOCALECONV 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LOCALE_H 1 + +/* Define to 1 if the system has the type `long double'. */ +#define HAVE_LONG_DOUBLE 1 + +/* Define to 1 if the system has the type `long long'. */ +#define HAVE_LONG_LONG 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_MACHINE_HAL_SYSINFO_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have the `memset' function. */ +#define HAVE_MEMSET 1 + +/* Define to 1 if you have the `mmap' function. */ +#define HAVE_MMAP 1 + +/* Define to 1 if you have the `mprotect' function. */ +#define HAVE_MPROTECT 1 + +/* Define to 1 each of the following for which a native (ie. CPU specific) + implementation of the corresponding routine exists. */ +#define HAVE_NATIVE_mpn_add_n 1 +/* #undef HAVE_NATIVE_mpn_add_n_sub_n */ +#define HAVE_NATIVE_mpn_add_nc 1 +/* #undef HAVE_NATIVE_mpn_addaddmul_1msb0 */ +#define HAVE_NATIVE_mpn_addlsh1_n 1 +#define HAVE_NATIVE_mpn_addlsh2_n 1 +/* #undef HAVE_NATIVE_mpn_addlsh_n */ +/* #undef HAVE_NATIVE_mpn_addlsh1_nc */ +/* #undef HAVE_NATIVE_mpn_addlsh2_nc */ +/* #undef HAVE_NATIVE_mpn_addlsh_nc */ +/* #undef HAVE_NATIVE_mpn_addlsh1_n_ip1 */ +/* #undef HAVE_NATIVE_mpn_addlsh2_n_ip1 */ +/* #undef HAVE_NATIVE_mpn_addlsh_n_ip1 */ +/* #undef HAVE_NATIVE_mpn_addlsh1_nc_ip1 */ +/* #undef HAVE_NATIVE_mpn_addlsh2_nc_ip1 */ +/* #undef HAVE_NATIVE_mpn_addlsh_nc_ip1 */ +/* #undef HAVE_NATIVE_mpn_addlsh1_n_ip2 */ +/* #undef HAVE_NATIVE_mpn_addlsh2_n_ip2 */ +/* #undef HAVE_NATIVE_mpn_addlsh_n_ip2 */ +/* #undef HAVE_NATIVE_mpn_addlsh1_nc_ip2 */ +/* #undef HAVE_NATIVE_mpn_addlsh2_nc_ip2 */ +/* #undef HAVE_NATIVE_mpn_addlsh_nc_ip2 */ +/* #undef HAVE_NATIVE_mpn_addmul_1c */ +/* #undef HAVE_NATIVE_mpn_addmul_2 */ +/* #undef HAVE_NATIVE_mpn_addmul_3 */ +/* #undef HAVE_NATIVE_mpn_addmul_4 */ +/* #undef HAVE_NATIVE_mpn_addmul_5 */ +/* #undef HAVE_NATIVE_mpn_addmul_6 */ +/* #undef HAVE_NATIVE_mpn_addmul_7 */ +/* #undef HAVE_NATIVE_mpn_addmul_8 */ +/* #undef HAVE_NATIVE_mpn_addmul_2s */ +#define HAVE_NATIVE_mpn_and_n 1 +#define HAVE_NATIVE_mpn_andn_n 1 +#define HAVE_NATIVE_mpn_bdiv_dbm1c 1 +#define HAVE_NATIVE_mpn_bdiv_q_1 1 +#define HAVE_NATIVE_mpn_pi1_bdiv_q_1 1 +#define HAVE_NATIVE_mpn_cnd_add_n 1 +#define HAVE_NATIVE_mpn_cnd_sub_n 1 +#define HAVE_NATIVE_mpn_com 1 +#define HAVE_NATIVE_mpn_copyd 1 +#define HAVE_NATIVE_mpn_copyi 1 +/* #undef HAVE_NATIVE_mpn_div_qr_1n_pi1 */ +/* #undef HAVE_NATIVE_mpn_div_qr_2 */ +/* #undef HAVE_NATIVE_mpn_divexact_1 */ +/* #undef HAVE_NATIVE_mpn_divexact_by3c */ +#define HAVE_NATIVE_mpn_divrem_1 1 +/* #undef HAVE_NATIVE_mpn_divrem_1c */ +/* #undef HAVE_NATIVE_mpn_divrem_2 */ +/* #undef HAVE_NATIVE_mpn_gcd_1 */ +#define HAVE_NATIVE_mpn_gcd_11 1 +#define HAVE_NATIVE_mpn_gcd_22 1 +#define HAVE_NATIVE_mpn_hamdist 1 +#define HAVE_NATIVE_mpn_invert_limb 1 +#define HAVE_NATIVE_mpn_ior_n 1 +#define HAVE_NATIVE_mpn_iorn_n 1 +#define HAVE_NATIVE_mpn_lshift 1 +#define HAVE_NATIVE_mpn_lshiftc 1 +/* #undef HAVE_NATIVE_mpn_lshsub_n */ +/* #undef HAVE_NATIVE_mpn_mod_1 */ +/* #undef HAVE_NATIVE_mpn_mod_1_1p */ +/* #undef HAVE_NATIVE_mpn_mod_1c */ +/* #undef HAVE_NATIVE_mpn_mod_1s_2p */ +/* #undef HAVE_NATIVE_mpn_mod_1s_4p */ +#define HAVE_NATIVE_mpn_mod_34lsub1 1 +/* #undef HAVE_NATIVE_mpn_modexact_1_odd */ +/* #undef HAVE_NATIVE_mpn_modexact_1c_odd */ +#define HAVE_NATIVE_mpn_mul_1 1 +#define HAVE_NATIVE_mpn_mul_1c 1 +/* #undef HAVE_NATIVE_mpn_mul_2 */ +/* #undef HAVE_NATIVE_mpn_mul_3 */ +/* #undef HAVE_NATIVE_mpn_mul_4 */ +/* #undef HAVE_NATIVE_mpn_mul_5 */ +/* #undef HAVE_NATIVE_mpn_mul_6 */ +/* #undef HAVE_NATIVE_mpn_mul_basecase */ +/* #undef HAVE_NATIVE_mpn_mullo_basecase */ +#define HAVE_NATIVE_mpn_nand_n 1 +#define HAVE_NATIVE_mpn_nior_n 1 +#define HAVE_NATIVE_mpn_popcount 1 +#define HAVE_NATIVE_mpn_preinv_divrem_1 1 +/* #undef HAVE_NATIVE_mpn_preinv_mod_1 */ +/* #undef HAVE_NATIVE_mpn_redc_1 */ +/* #undef HAVE_NATIVE_mpn_redc_2 */ +#define HAVE_NATIVE_mpn_rsblsh1_n 1 +#define HAVE_NATIVE_mpn_rsblsh2_n 1 +/* #undef HAVE_NATIVE_mpn_rsblsh_n */ +/* #undef HAVE_NATIVE_mpn_rsblsh1_nc */ +/* #undef HAVE_NATIVE_mpn_rsblsh2_nc */ +/* #undef HAVE_NATIVE_mpn_rsblsh_nc */ +#define HAVE_NATIVE_mpn_rsh1add_n 1 +/* #undef HAVE_NATIVE_mpn_rsh1add_nc */ +#define HAVE_NATIVE_mpn_rsh1sub_n 1 +/* #undef HAVE_NATIVE_mpn_rsh1sub_nc */ +#define HAVE_NATIVE_mpn_rshift 1 +/* #undef HAVE_NATIVE_mpn_sbpi1_bdiv_r */ +/* #undef HAVE_NATIVE_mpn_sqr_basecase */ +/* #undef HAVE_NATIVE_mpn_sqr_diagonal */ +#define HAVE_NATIVE_mpn_sqr_diag_addlsh1 1 +#define HAVE_NATIVE_mpn_sub_n 1 +#define HAVE_NATIVE_mpn_sub_nc 1 +#define HAVE_NATIVE_mpn_sublsh1_n 1 +#define HAVE_NATIVE_mpn_sublsh2_n 1 +/* #undef HAVE_NATIVE_mpn_sublsh_n */ +/* #undef HAVE_NATIVE_mpn_sublsh1_nc */ +/* #undef HAVE_NATIVE_mpn_sublsh2_nc */ +/* #undef HAVE_NATIVE_mpn_sublsh_nc */ +/* #undef HAVE_NATIVE_mpn_sublsh1_n_ip1 */ +/* #undef HAVE_NATIVE_mpn_sublsh2_n_ip1 */ +/* #undef HAVE_NATIVE_mpn_sublsh_n_ip1 */ +/* #undef HAVE_NATIVE_mpn_sublsh1_nc_ip1 */ +/* #undef HAVE_NATIVE_mpn_sublsh2_nc_ip1 */ +/* #undef HAVE_NATIVE_mpn_sublsh_nc_ip1 */ +/* #undef HAVE_NATIVE_mpn_submul_1c */ +/* #undef HAVE_NATIVE_mpn_tabselect */ +/* #undef HAVE_NATIVE_mpn_udiv_qrnnd */ +/* #undef HAVE_NATIVE_mpn_udiv_qrnnd_r */ +/* #undef HAVE_NATIVE_mpn_umul_ppmm */ +/* #undef HAVE_NATIVE_mpn_umul_ppmm_r */ +#define HAVE_NATIVE_mpn_xor_n 1 +#define HAVE_NATIVE_mpn_xnor_n 1 + +/* Define to 1 if you have the `nl_langinfo' function. */ +#define HAVE_NL_LANGINFO 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_NL_TYPES_H 1 + +/* Define to 1 if you have the `obstack_vprintf' function. */ +/* #undef HAVE_OBSTACK_VPRINTF 1 */ + +/* Define to 1 if you have the `popen' function. */ +#define HAVE_POPEN 1 + +/* Define to 1 if you have the `processor_info' function. */ +/* #undef HAVE_PROCESSOR_INFO */ + +/* Define to 1 if `struct pst_processor' exists and contains + `psp_iticksperclktick'. */ +/* #undef HAVE_PSP_ITICKSPERCLKTICK */ + +/* Define to 1 if you have the `pstat_getprocessor' function. */ +/* #undef HAVE_PSTAT_GETPROCESSOR */ + +/* Define to 1 if the system has the type `ptrdiff_t'. */ +#define HAVE_PTRDIFF_T 1 + +/* Define to 1 if the system has the type `quad_t'. */ +#define HAVE_QUAD_T 1 + +/* Define to 1 if you have the `raise' function. */ +#define HAVE_RAISE 1 + +/* Define to 1 if you have the `read_real_time' function. */ +/* #undef HAVE_READ_REAL_TIME */ + +/* Define to 1 if you have the `sigaction' function. */ +#define HAVE_SIGACTION 1 + +/* Define to 1 if you have the `sigaltstack' function. */ +#define HAVE_SIGALTSTACK 1 + +/* Define to 1 if you have the `sigstack' function. */ +#define HAVE_SIGSTACK 1 + +/* Tune directory speed_cyclecounter, undef=none, 1=32bits, 2=64bits) */ +/* #undef HAVE_SPEED_CYCLECOUNTER */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SSTREAM */ + +/* Define to 1 if the system has the type `stack_t'. */ +#define HAVE_STACK_T 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if the system has the type `std::locale'. */ +/* #undef HAVE_STD__LOCALE */ + +/* Define to 1 if you have the `strchr' function. */ +#define HAVE_STRCHR 1 + +/* Define to 1 if you have the `strerror' function. */ +#define HAVE_STRERROR 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `strnlen' function. */ +#define HAVE_STRNLEN 1 + +/* Define to 1 if you have the `strtol' function. */ +#define HAVE_STRTOL 1 + +/* Define to 1 if you have the `strtoul' function. */ +#define HAVE_STRTOUL 1 + +/* Define to 1 if you have the `sysconf' function. */ +#define HAVE_SYSCONF 1 + +/* Define to 1 if you have the `sysctl' function. */ +/* #undef HAVE_SYSCTL */ + +/* Define to 1 if you have the `sysctlbyname' function. */ +/* #undef HAVE_SYSCTLBYNAME */ + +/* Define to 1 if you have the `syssgi' function. */ +/* #undef HAVE_SYSSGI */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_ATTRIBUTES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_IOGRAPH_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_MMAN_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_PARAM_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_PROCESSOR_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_PSTAT_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_RESOURCE_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SYSCTL_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SYSINFO_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SYSSGI_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SYSTEMCFG_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIMES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the `times' function. */ +#define HAVE_TIMES 1 + +/* Define to 1 if the system has the type `uint_least32_t'. */ +#define HAVE_UINT_LEAST32_T 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to 1 if you have the `vsnprintf' function and it works properly. */ +#define HAVE_VSNPRINTF 1 + +/* Define to 1 for Windos/64 */ +/* #undef HOST_DOS64 */ + +/* Assembler local label prefix */ +#define LSYM_PREFIX ".L" + +/* Define to the sub-directory where libtool stores uninstalled libraries. */ +#define LT_OBJDIR ".libs/" + +/* Define to 1 to disable the use of inline assembly */ +/* #undef NO_ASM */ + +/* Name of package */ +#define PACKAGE "gmp" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "gmp-bugs@gmplib.org (see https://gmplib.org/manual/Reporting-Bugs.html)" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "GNU MP" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "GNU MP 6.3.0" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "gmp" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "http://www.gnu.org/software/gmp/" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "6.3.0" + +/* Define as the return type of signal handlers (`int' or `void'). */ +#define RETSIGTYPE void + +/* The size of `mp_limb_t', as computed by sizeof. */ +#define SIZEOF_MP_LIMB_T 8 + +/* The size of `unsigned', as computed by sizeof. */ +#define SIZEOF_UNSIGNED 4 + +/* The size of `unsigned long', as computed by sizeof. */ +#define SIZEOF_UNSIGNED_LONG 8 + +/* The size of `unsigned short', as computed by sizeof. */ +#define SIZEOF_UNSIGNED_SHORT 2 + +/* The size of `void *', as computed by sizeof. */ +#define SIZEOF_VOID_P 8 + +/* Define to 1 if sscanf requires writable inputs */ +/* #undef SSCANF_WRITABLE_INPUT */ + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define to 1 if you can safely include both and . */ +#define TIME_WITH_SYS_TIME 1 + +/* Maximum size the tune program can test for SQR_TOOM2_THRESHOLD */ +#define TUNE_SQR_TOOM2_MAX SQR_TOOM2_MAX_GENERIC + +/* Version number of package */ +#define VERSION "6.3.0" + +/* Define to 1 to enable ASSERT checking, per --enable-assert */ +/* #undef WANT_ASSERT */ + +/* Define to 1 to enable GMP_CPU_TYPE faking cpuid, per --enable-fake-cpuid */ +/* #undef WANT_FAKE_CPUID */ + +/* Define to 1 when building a fat binary. */ +/* #undef WANT_FAT_BINARY */ + +/* Define to 1 to enable FFTs for multiplication, per --enable-fft */ +#define WANT_FFT 1 + +/* Define to 1 to enable old mpn_mul_fft_full for multiplication, per + --enable-old-fft-full */ +/* #undef WANT_OLD_FFT_FULL */ + +/* Define to 1 if --enable-profiling=gprof */ +/* #undef WANT_PROFILING_GPROF */ + +/* Define to 1 if --enable-profiling=instrument */ +/* #undef WANT_PROFILING_INSTRUMENT */ + +/* Define to 1 if --enable-profiling=prof */ +/* #undef WANT_PROFILING_PROF */ + +/* Define one of these to 1 for the desired temporary memory allocation + method, per --enable-alloca. */ +#define WANT_TMP_ALLOCA 1 +/* #undef WANT_TMP_REENTRANT */ +/* #undef WANT_TMP_NOTREENTRANT */ +/* #undef WANT_TMP_DEBUG */ + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +/* # undef WORDS_BIGENDIAN */ +# endif +#endif + +/* Define to 1 if the assembler understands the mulx instruction */ +/* #undef X86_ASM_MULX */ + +/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a + `char[]'. */ +/* #undef YYTEXT_POINTER */ + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +/* #undef inline */ +#endif + +/* Define to the equivalent of the C99 'restrict' keyword, or to + nothing if this is not supported. Do not define if restrict is + supported directly. */ +#define restrict __restrict +/* Work around a bug in Sun C++: it does not support _Restrict or + __restrict__, even though the corresponding Sun C compiler ends up with + "#define restrict _Restrict" or "#define restrict __restrict__" in the + previous line. Perhaps some future version of Sun C++ will work with + restrict; if so, hopefully it defines __RESTRICT like Sun C does. */ +#if defined __SUNPRO_CC && !defined __RESTRICT +# define _Restrict +# define __restrict__ +#endif + +/* Define to empty if the keyword `volatile' does not work. Warning: valid + code using `volatile' can become incorrect without. Disable with care. */ +/* #undef volatile */ diff --git a/vere/ext/gmp/gen/aarch64-linux/fac_table.h b/vere/ext/gmp/gen/aarch64-linux/fac_table.h new file mode 100644 index 0000000..6708348 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/fac_table.h @@ -0,0 +1,49 @@ +/* This file is automatically generated by gen-fac.c */ + +#if GMP_NUMB_BITS != 64 +Error , error this data is for 64 GMP_NUMB_BITS only +#endif +/* This table is 0!,1!,2!,3!,...,n! where n! has <= GMP_NUMB_BITS bits */ +#define ONE_LIMB_FACTORIAL_TABLE CNST_LIMB(0x1),CNST_LIMB(0x1),CNST_LIMB(0x2),CNST_LIMB(0x6),CNST_LIMB(0x18),CNST_LIMB(0x78),CNST_LIMB(0x2d0),CNST_LIMB(0x13b0),CNST_LIMB(0x9d80),CNST_LIMB(0x58980),CNST_LIMB(0x375f00),CNST_LIMB(0x2611500),CNST_LIMB(0x1c8cfc00),CNST_LIMB(0x17328cc00),CNST_LIMB(0x144c3b2800),CNST_LIMB(0x13077775800),CNST_LIMB(0x130777758000),CNST_LIMB(0x1437eeecd8000),CNST_LIMB(0x16beecca730000),CNST_LIMB(0x1b02b9306890000),CNST_LIMB(0x21c3677c82b40000) + +/* This table is 0!,1!,2!/2,3!/2,...,n!/2^sn where n!/2^sn is an */ +/* odd integer for each n, and n!/2^sn has <= GMP_NUMB_BITS bits */ +#define ONE_LIMB_ODD_FACTORIAL_TABLE CNST_LIMB(0x1),CNST_LIMB(0x1),CNST_LIMB(0x1),CNST_LIMB(0x3),CNST_LIMB(0x3),CNST_LIMB(0xf),CNST_LIMB(0x2d),CNST_LIMB(0x13b),CNST_LIMB(0x13b),CNST_LIMB(0xb13),CNST_LIMB(0x375f),CNST_LIMB(0x26115),CNST_LIMB(0x7233f),CNST_LIMB(0x5cca33),CNST_LIMB(0x2898765),CNST_LIMB(0x260eeeeb),CNST_LIMB(0x260eeeeb),CNST_LIMB(0x286fddd9b),CNST_LIMB(0x16beecca73),CNST_LIMB(0x1b02b930689),CNST_LIMB(0x870d9df20ad),CNST_LIMB(0xb141df4dae31),CNST_LIMB(0x79dd498567c1b),CNST_LIMB(0xaf2e19afc5266d),CNST_LIMB(0x20d8a4d0f4f7347),CNST_LIMB(0x335281867ec241ef) +#define ODD_FACTORIAL_TABLE_MAX CNST_LIMB(0x335281867ec241ef) +#define ODD_FACTORIAL_TABLE_LIMIT (25) + +/* Previous table, continued, values modulo 2^GMP_NUMB_BITS */ +#define ONE_LIMB_ODD_FACTORIAL_EXTTABLE CNST_LIMB(0x9b3093d46fdd5923),CNST_LIMB(0x5e1f9767cc5866b1),CNST_LIMB(0x92dd23d6966aced7),CNST_LIMB(0xa30d0f4f0a196e5b),CNST_LIMB(0x8dc3e5a1977d7755),CNST_LIMB(0x2ab8ce915831734b),CNST_LIMB(0x2ab8ce915831734b),CNST_LIMB(0x81d2a0bc5e5fdcab),CNST_LIMB(0x9efcac82445da75b),CNST_LIMB(0xbc8b95cf58cde171),CNST_LIMB(0xa0e8444a1f3cecf9),CNST_LIMB(0x4191deb683ce3ffd),CNST_LIMB(0xddd3878bc84ebfc7),CNST_LIMB(0xcb39a64b83ff3751),CNST_LIMB(0xf8203f7993fc1495),CNST_LIMB(0xbd2a2a78b35f4bdd),CNST_LIMB(0x84757be6b6d13921),CNST_LIMB(0x3fbbcfc0b524988b),CNST_LIMB(0xbd11ed47c8928df9),CNST_LIMB(0x3c26b59e41c2f4c5),CNST_LIMB(0x677a5137e883fdb3),CNST_LIMB(0xff74e943b03b93dd),CNST_LIMB(0xfe5ebbcb10b2bb97),CNST_LIMB(0xb021f1de3235e7e7),CNST_LIMB(0x33509eb2e743a58f),CNST_LIMB(0x390f9da41279fb7d),CNST_LIMB(0xe5cb0154f031c559),CNST_LIMB(0x93074695ba4ddb6d),CNST_LIMB(0x81c471caa636247f),CNST_LIMB(0xe1347289b5a1d749),CNST_LIMB(0x286f21c3f76ce2ff),CNST_LIMB(0xbe84a2173e8ac7),CNST_LIMB(0x1595065ca215b88b),CNST_LIMB(0xf95877595b018809),CNST_LIMB(0x9c2efe3c5516f887),CNST_LIMB(0x373294604679382b),CNST_LIMB(0xaf1ff7a888adcd35),CNST_LIMB(0x18ddf279a2c5800b),CNST_LIMB(0x18ddf279a2c5800b),CNST_LIMB(0x505a90e2542582cb),CNST_LIMB(0x5bacad2cd8d5dc2b),CNST_LIMB(0xfe3152bcbff89f41) +#define ODD_FACTORIAL_EXTTABLE_LIMIT (67) + +/* This table is 1!!,3!!,...,(2n+1)!! where (2n+1)!! has <= GMP_NUMB_BITS bits */ +#define ONE_LIMB_ODD_DOUBLEFACTORIAL_TABLE CNST_LIMB(0x1),CNST_LIMB(0x3),CNST_LIMB(0xf),CNST_LIMB(0x69),CNST_LIMB(0x3b1),CNST_LIMB(0x289b),CNST_LIMB(0x20fdf),CNST_LIMB(0x1eee11),CNST_LIMB(0x20dcf21),CNST_LIMB(0x27065f73),CNST_LIMB(0x33385d46f),CNST_LIMB(0x49a10615f9),CNST_LIMB(0x730b9982551),CNST_LIMB(0xc223930bef8b),CNST_LIMB(0x15fe07a85a22bf),CNST_LIMB(0x2a9c2ed62ea3521),CNST_LIMB(0x57e22099c030d941) +#define ODD_DOUBLEFACTORIAL_TABLE_MAX CNST_LIMB(0x57e22099c030d941) +#define ODD_DOUBLEFACTORIAL_TABLE_LIMIT (33) + +/* This table x_1, x_2,... contains values s.t. x_n^n has <= GMP_NUMB_BITS bits */ +#define NTH_ROOT_NUMB_MASK_TABLE (GMP_NUMB_MASK),CNST_LIMB(0xffffffff),CNST_LIMB(0x285145),CNST_LIMB(0xffff),CNST_LIMB(0x1bdb),CNST_LIMB(0x659),CNST_LIMB(0x235),CNST_LIMB(0xff) + +/* This table contains inverses of odd factorials, modulo 2^GMP_NUMB_BITS */ + +/* It begins with (2!/2)^-1=1 */ +#define ONE_LIMB_ODD_FACTORIAL_INVERSES_TABLE CNST_LIMB(0x1),CNST_LIMB(0xaaaaaaaaaaaaaaab),CNST_LIMB(0xaaaaaaaaaaaaaaab),CNST_LIMB(0xeeeeeeeeeeeeeeef),CNST_LIMB(0x4fa4fa4fa4fa4fa5),CNST_LIMB(0x2ff2ff2ff2ff2ff3),CNST_LIMB(0x2ff2ff2ff2ff2ff3),CNST_LIMB(0x938cc70553e3771b),CNST_LIMB(0xb71c27cddd93e49f),CNST_LIMB(0xb38e3229fcdee63d),CNST_LIMB(0xe684bb63544a4cbf),CNST_LIMB(0xc2f684917ca340fb),CNST_LIMB(0xf747c9cba417526d),CNST_LIMB(0xbb26eb51d7bd49c3),CNST_LIMB(0xbb26eb51d7bd49c3),CNST_LIMB(0xb0a7efb985294093),CNST_LIMB(0xbe4b8c69f259eabb),CNST_LIMB(0x6854d17ed6dc4fb9),CNST_LIMB(0xe1aa904c915f4325),CNST_LIMB(0x3b8206df131cead1),CNST_LIMB(0x79c6009fea76fe13),CNST_LIMB(0xd8c5d381633cd365),CNST_LIMB(0x4841f12b21144677),CNST_LIMB(0x4a91ff68200b0d0f),CNST_LIMB(0x8f9513a58c4f9e8b),CNST_LIMB(0x2b3e690621a42251),CNST_LIMB(0x4f520f00e03c04e7),CNST_LIMB(0x2edf84ee600211d3),CNST_LIMB(0xadcaa2764aaacdfd),CNST_LIMB(0x161f4f9033f4fe63),CNST_LIMB(0x161f4f9033f4fe63),CNST_LIMB(0xbada2932ea4d3e03),CNST_LIMB(0xcec189f3efaa30d3),CNST_LIMB(0xf7475bb68330bf91),CNST_LIMB(0x37eb7bf7d5b01549),CNST_LIMB(0x46b35660a4e91555),CNST_LIMB(0xa567c12d81f151f7),CNST_LIMB(0x4c724007bb2071b1),CNST_LIMB(0xf4a0cce58a016bd),CNST_LIMB(0xfa21068e66106475),CNST_LIMB(0x244ab72b5a318ae1),CNST_LIMB(0x366ce67e080d0f23),CNST_LIMB(0xd666fdae5dd2a449),CNST_LIMB(0xd740ddd0acc06a0d),CNST_LIMB(0xb050bbbb28e6f97b),CNST_LIMB(0x70b003fe890a5c75),CNST_LIMB(0xd03aabff83037427),CNST_LIMB(0x13ec4ca72c783bd7),CNST_LIMB(0x90282c06afdbd96f),CNST_LIMB(0x4414ddb9db4a95d5),CNST_LIMB(0xa2c68735ae6832e9),CNST_LIMB(0xbf72d71455676665),CNST_LIMB(0xa8469fab6b759b7f),CNST_LIMB(0xc1e55b56e606caf9),CNST_LIMB(0x40455630fc4a1cff),CNST_LIMB(0x120a7b0046d16f7),CNST_LIMB(0xa7c3553b08faef23),CNST_LIMB(0x9f0bfd1b08d48639),CNST_LIMB(0xa433ffce9a304d37),CNST_LIMB(0xa22ad1d53915c683),CNST_LIMB(0xcb6cbc723ba5dd1d),CNST_LIMB(0x547fb1b8ab9d0ba3),CNST_LIMB(0x547fb1b8ab9d0ba3),CNST_LIMB(0x8f15a826498852e3) + +/* This table contains 2n-popc(2n) for small n */ + +/* It begins with 2-1=1 (n=1) */ +#define TABLE_2N_MINUS_POPC_2N 1,3,4,7,8,10,11,15,16,18,19,22,23,25,26,31,32,34,35,38,39,41,42,46,47,49,50,53,54,56,57,63,64,66,67,70,71,73,74,78 +#define TABLE_LIMIT_2N_MINUS_POPC_2N 81 +#define ODD_CENTRAL_BINOMIAL_OFFSET (13) + +/* This table contains binomial(2k,k)/2^t */ + +/* It begins with ODD_CENTRAL_BINOMIAL_TABLE_MIN */ +#define ONE_LIMB_ODD_CENTRAL_BINOMIAL_TABLE CNST_LIMB(0x13d66b),CNST_LIMB(0x4c842f),CNST_LIMB(0x93ee7d),CNST_LIMB(0x11e9e123),CNST_LIMB(0x22c60053),CNST_LIMB(0x873ae4d1),CNST_LIMB(0x10757bd97),CNST_LIMB(0x80612c6cd),CNST_LIMB(0xfaa556bc1),CNST_LIMB(0x3d3cc24821),CNST_LIMB(0x77cfeb6bbb),CNST_LIMB(0x7550ebd97c7),CNST_LIMB(0xe5f08695caf),CNST_LIMB(0x386120ffce11),CNST_LIMB(0x6eabb28dd6df),CNST_LIMB(0x3658e31c82a8f),CNST_LIMB(0x6ad2050312783),CNST_LIMB(0x1a42902a5af0bf),CNST_LIMB(0x33ac44f881661d),CNST_LIMB(0xcb764f927d82123),CNST_LIMB(0x190c23fa46b93983),CNST_LIMB(0x62b7609e25caf1b9),CNST_LIMB(0xc29cb72925ef2cff) +#define ODD_CENTRAL_BINOMIAL_TABLE_LIMIT (35) + +/* This table contains the inverses of elements in the previous table. */ +#define ONE_LIMB_ODD_CENTRAL_BINOMIAL_INVERSE_TABLE CNST_LIMB(0x61e5bd199bb12643),CNST_LIMB(0x78321494dc8342cf),CNST_LIMB(0x4fd348704ebf7ad5),CNST_LIMB(0x7e722ba086ab568b),CNST_LIMB(0xa5fcc124265843db),CNST_LIMB(0x89c4a6b18633f431),CNST_LIMB(0x4daa2c15f8ce9227),CNST_LIMB(0x801c618ca9be9605),CNST_LIMB(0x32dc192f948a441),CNST_LIMB(0xd02b90c2bf3be1),CNST_LIMB(0xd897e8c1749aa173),CNST_LIMB(0x54a234fc01fef9f7),CNST_LIMB(0x83ff2ab4d1ff7a4f),CNST_LIMB(0xa427f1c9b304e2f1),CNST_LIMB(0x9c14595d1793651f),CNST_LIMB(0x883a71c607a7b46f),CNST_LIMB(0xd089863c54bc9f2b),CNST_LIMB(0x9022f6bce5d07f3f),CNST_LIMB(0xbec207e218768c35),CNST_LIMB(0x9d70cb4cbb4f168b),CNST_LIMB(0x3c3d3403828a9d2b),CNST_LIMB(0x7672df58c56bc489),CNST_LIMB(0x1e66ca55d727d2ff) + +/* This table contains the values t in the formula binomial(2k,k)/2^t */ +#define CENTRAL_BINOMIAL_2FAC_TABLE 3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,1,2,2,3 diff --git a/vere/ext/gmp/gen/aarch64-linux/fib_table.h b/vere/ext/gmp/gen/aarch64-linux/fib_table.h new file mode 100644 index 0000000..66ac4d6 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/fib_table.h @@ -0,0 +1,8 @@ +/* This file generated by gen-fib.c - DO NOT EDIT. */ + +#if GMP_NUMB_BITS != 64 +Error, error, this data is for 64 bits +#endif + +#define FIB_TABLE_LIMIT 93 +#define FIB_TABLE_LUCNUM_LIMIT 92 diff --git a/vere/ext/gmp/gen/aarch64-linux/mp_bases.h b/vere/ext/gmp/gen/aarch64-linux/mp_bases.h new file mode 100644 index 0000000..08ede78 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mp_bases.h @@ -0,0 +1,13 @@ +/* This file generated by gen-bases.c - DO NOT EDIT. */ + +#if GMP_NUMB_BITS != 64 +Error, error, this data is for 64 bits +#endif + +/* mp_bases[10] data, as literal values */ +#define MP_BASES_CHARS_PER_LIMB_10 19 +#define MP_BASES_BIG_BASE_CTZ_10 19 +#define MP_BASES_BIG_BASE_10 CNST_LIMB(0x8ac7230489e80000) +#define MP_BASES_BIG_BASE_INVERTED_10 CNST_LIMB(0xd83c94fb6d2ac34a) +#define MP_BASES_BIG_BASE_BINVERTED_10 CNST_LIMB(0x26b172506559ce15) +#define MP_BASES_NORMALIZATION_STEPS_10 0 diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/add_n.s b/vere/ext/gmp/gen/aarch64-linux/mpn/add_n.s new file mode 100644 index 0000000..67212a5 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/add_n.s @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_add_nc + .type __gmpn_add_nc,@function +__gmpn_add_nc: + cmp x4, #1 + b .Lent + .size __gmpn_add_nc,.-__gmpn_add_nc + .text + .align 3 + .globl __gmpn_add_n + .type __gmpn_add_n,@function +__gmpn_add_n: + cmn xzr, xzr +.Lent: lsr x18, x3, #2 + tbz x3, #0, .Lbx0 + +.Lbx1: ldr x7, [x1] + ldr x11, [x2] + adcs x13, x7, x11 + str x13, [x0],#8 + tbnz x3, #1, .Lb11 + +.Lb01: cbz x18, .Lret + ldp x4, x5, [x1,#8] + ldp x8, x9, [x2,#8] + sub x1, x1, #8 + sub x2, x2, #8 + b .Lmid + +.Lb11: ldp x6, x7, [x1,#8] + ldp x10, x11, [x2,#8] + add x1, x1, #8 + add x2, x2, #8 + cbz x18, .Lend + b .Ltop + +.Lbx0: tbnz x3, #1, .Lb10 + +.Lb00: ldp x4, x5, [x1] + ldp x8, x9, [x2] + sub x1, x1, #16 + sub x2, x2, #16 + b .Lmid + +.Lb10: ldp x6, x7, [x1] + ldp x10, x11, [x2] + cbz x18, .Lend + + .align 4 +.Ltop: ldp x4, x5, [x1,#16] + ldp x8, x9, [x2,#16] + adcs x12, x6, x10 + adcs x13, x7, x11 + stp x12, x13, [x0],#16 +.Lmid: ldp x6, x7, [x1,#32]! + ldp x10, x11, [x2,#32]! + adcs x12, x4, x8 + adcs x13, x5, x9 + stp x12, x13, [x0],#16 + sub x18, x18, #1 + cbnz x18, .Ltop + +.Lend: adcs x12, x6, x10 + adcs x13, x7, x11 + stp x12, x13, [x0] +.Lret: cset x0, cs + ret + .size __gmpn_add_n,.-__gmpn_add_n diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/addlsh1_n.s b/vere/ext/gmp/gen/aarch64-linux/mpn/addlsh1_n.s new file mode 100644 index 0000000..91f17cb --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/addlsh1_n.s @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_addlsh1_n + .type __gmpn_addlsh1_n,@function +__gmpn_addlsh1_n: + lsr x18, x3, #2 + tbz x3, #0, .Lbx0 + +.Lbx1: ldr x5, [x1] + tbnz x3, #1, .Lb11 + +.Lb01: ldr x11, [x2] + cbz x18, .L1 + ldp x8, x9, [x2,#8] + lsl x13, x11, #1 + adds x15, x13, x5 + str x15, [x0],#8 + sub x1, x1, #24 + sub x2, x2, #8 + b .Lmid + +.L1: lsl x13, x11, #1 + adds x15, x13, x5 + str x15, [x0] + lsr x0, x11, 63 + adc x0, x0, xzr + ret + +.Lb11: ldr x9, [x2] + ldp x10, x11, [x2,#8]! + lsl x13, x9, #1 + adds x17, x13, x5 + str x17, [x0],#8 + sub x1, x1, #8 + cbz x18, .Lend + b .Ltop + +.Lbx0: tbnz x3, #1, .Lb10 + +.Lb00: adds x11, xzr, xzr + ldp x8, x9, [x2],#-16 + sub x1, x1, #32 + b .Lmid + +.Lb10: adds x9, xzr, xzr + ldp x10, x11, [x2] + sub x1, x1, #16 + cbz x18, .Lend + + .align 4 +.Ltop: ldp x4, x5, [x1,#16] + extr x12, x10, x9, #63 + ldp x8, x9, [x2,#16] + extr x13, x11, x10, #63 + adcs x14, x12, x4 + adcs x15, x13, x5 + stp x14, x15, [x0],#16 +.Lmid: ldp x4, x5, [x1,#32]! + extr x12, x8, x11, #63 + ldp x10, x11, [x2,#32]! + extr x13, x9, x8, #63 + adcs x16, x12, x4 + adcs x17, x13, x5 + stp x16, x17, [x0],#16 + sub x18, x18, #1 + cbnz x18, .Ltop + +.Lend: ldp x4, x5, [x1,#16] + extr x12, x10, x9, #63 + extr x13, x11, x10, #63 + adcs x14, x12, x4 + adcs x15, x13, x5 + stp x14, x15, [x0] + lsr x0, x11, 63 + adc x0, x0, xzr + ret + .size __gmpn_addlsh1_n,.-__gmpn_addlsh1_n + diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/addlsh2_n.s b/vere/ext/gmp/gen/aarch64-linux/mpn/addlsh2_n.s new file mode 100644 index 0000000..66299fc --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/addlsh2_n.s @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_addlsh2_n + .type __gmpn_addlsh2_n,@function +__gmpn_addlsh2_n: + lsr x18, x3, #2 + tbz x3, #0, .Lbx0 + +.Lbx1: ldr x5, [x1] + tbnz x3, #1, .Lb11 + +.Lb01: ldr x11, [x2] + cbz x18, .L1 + ldp x8, x9, [x2,#8] + lsl x13, x11, #2 + adds x15, x13, x5 + str x15, [x0],#8 + sub x1, x1, #24 + sub x2, x2, #8 + b .Lmid + +.L1: lsl x13, x11, #2 + adds x15, x13, x5 + str x15, [x0] + lsr x0, x11, 62 + adc x0, x0, xzr + ret + +.Lb11: ldr x9, [x2] + ldp x10, x11, [x2,#8]! + lsl x13, x9, #2 + adds x17, x13, x5 + str x17, [x0],#8 + sub x1, x1, #8 + cbz x18, .Lend + b .Ltop + +.Lbx0: tbnz x3, #1, .Lb10 + +.Lb00: adds x11, xzr, xzr + ldp x8, x9, [x2],#-16 + sub x1, x1, #32 + b .Lmid + +.Lb10: adds x9, xzr, xzr + ldp x10, x11, [x2] + sub x1, x1, #16 + cbz x18, .Lend + + .align 4 +.Ltop: ldp x4, x5, [x1,#16] + extr x12, x10, x9, #62 + ldp x8, x9, [x2,#16] + extr x13, x11, x10, #62 + adcs x14, x12, x4 + adcs x15, x13, x5 + stp x14, x15, [x0],#16 +.Lmid: ldp x4, x5, [x1,#32]! + extr x12, x8, x11, #62 + ldp x10, x11, [x2,#32]! + extr x13, x9, x8, #62 + adcs x16, x12, x4 + adcs x17, x13, x5 + stp x16, x17, [x0],#16 + sub x18, x18, #1 + cbnz x18, .Ltop + +.Lend: ldp x4, x5, [x1,#16] + extr x12, x10, x9, #62 + extr x13, x11, x10, #62 + adcs x14, x12, x4 + adcs x15, x13, x5 + stp x14, x15, [x0] + lsr x0, x11, 62 + adc x0, x0, xzr + ret + .size __gmpn_addlsh2_n,.-__gmpn_addlsh2_n + diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/addmul_1.s b/vere/ext/gmp/gen/aarch64-linux/mpn/addmul_1.s new file mode 100644 index 0000000..f268546 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/addmul_1.s @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_addmul_1 + .type __gmpn_addmul_1,@function +__gmpn_addmul_1: + adds x15, xzr, xzr + + tbz x2, #0, .L1 + + ldr x4, [x1],#8 + mul x8, x4, x3 + umulh x12, x4, x3 + ldr x4, [x0] + adds x8, x4, x8 + csinc x15, x12, x12, cc + str x8, [x0],#8 + +.L1: tbz x2, #1, .L2 + + ldp x4, x5, [x1],#16 + mul x8, x4, x3 + umulh x12, x4, x3 + mul x9, x5, x3 + umulh x13, x5, x3 + adds x8, x8, x15 + adcs x9, x9, x12 + ldp x4, x5, [x0] + adc x15, x13, xzr + adds x8, x4, x8 + adcs x9, x5, x9 + csinc x15, x15, x15, cc + stp x8, x9, [x0],#16 + +.L2: lsr x2, x2, #2 + cbz x2, .Lle3 + ldp x4, x5, [x1],#32 + ldp x6, x7, [x1,#-16] + b .Lmid +.Lle3: mov x0, x15 + ret + + .align 4 +.Ltop: ldp x4, x5, [x1],#32 + ldp x6, x7, [x1,#-16] + adds x8, x16, x8 + adcs x9, x17, x9 + stp x8, x9, [x0],#32 + adcs x10, x12, x10 + adcs x11, x13, x11 + stp x10, x11, [x0,#-16] + csinc x15, x15, x15, cc +.Lmid: sub x2, x2, #1 + mul x8, x4, x3 + umulh x12, x4, x3 + mul x9, x5, x3 + umulh x13, x5, x3 + adds x8, x8, x15 + mul x10, x6, x3 + umulh x14, x6, x3 + adcs x9, x9, x12 + mul x11, x7, x3 + umulh x15, x7, x3 + adcs x10, x10, x13 + ldp x16, x17, [x0] + adcs x11, x11, x14 + ldp x12, x13, [x0,#16] + adc x15, x15, xzr + cbnz x2, .Ltop + + adds x8, x16, x8 + adcs x9, x17, x9 + adcs x10, x12, x10 + adcs x11, x13, x11 + stp x8, x9, [x0] + stp x10, x11, [x0,#16] + csinc x0, x15, x15, cc + ret + .size __gmpn_addmul_1,.-__gmpn_addmul_1 diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/and_n.s b/vere/ext/gmp/gen/aarch64-linux/mpn/and_n.s new file mode 100644 index 0000000..a4d41c5 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/and_n.s @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_and_n + .type __gmpn_and_n,@function +__gmpn_and_n: + lsr x18, x3, #2 + tbz x3, #0, .Lbx0 + +.Lbx1: ldr x7, [x1] + ldr x11, [x2] + and x15, x7, x11 + str x15, [x0],#8 + tbnz x3, #1, .Lb11 + +.Lb01: cbz x18, .Lret + ldp x4, x5, [x1,#8] + ldp x8, x9, [x2,#8] + sub x1, x1, #8 + sub x2, x2, #8 + b .Lmid + +.Lb11: ldp x6, x7, [x1,#8] + ldp x10, x11, [x2,#8] + add x1, x1, #8 + add x2, x2, #8 + cbz x18, .Lend + b .Ltop + +.Lbx0: tbnz x3, #1, .Lb10 + +.Lb00: ldp x4, x5, [x1],#-16 + ldp x8, x9, [x2],#-16 + b .Lmid + +.Lb10: ldp x6, x7, [x1] + ldp x10, x11, [x2] + cbz x18, .Lend + + .align 4 +.Ltop: ldp x4, x5, [x1,#16] + ldp x8, x9, [x2,#16] + and x12, x6, x10 + and x13, x7, x11 + stp x12, x13, [x0],#16 +.Lmid: ldp x6, x7, [x1,#32]! + ldp x10, x11, [x2,#32]! + and x12, x4, x8 + and x13, x5, x9 + stp x12, x13, [x0],#16 + sub x18, x18, #1 + cbnz x18, .Ltop + +.Lend: and x12, x6, x10 + and x13, x7, x11 + stp x12, x13, [x0] +.Lret: ret + .size __gmpn_and_n,.-__gmpn_and_n diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/andn_n.s b/vere/ext/gmp/gen/aarch64-linux/mpn/andn_n.s new file mode 100644 index 0000000..316f075 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/andn_n.s @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_andn_n + .type __gmpn_andn_n,@function +__gmpn_andn_n: + lsr x18, x3, #2 + tbz x3, #0, .Lbx0 + +.Lbx1: ldr x7, [x1] + ldr x11, [x2] + bic x15, x7, x11 + str x15, [x0],#8 + tbnz x3, #1, .Lb11 + +.Lb01: cbz x18, .Lret + ldp x4, x5, [x1,#8] + ldp x8, x9, [x2,#8] + sub x1, x1, #8 + sub x2, x2, #8 + b .Lmid + +.Lb11: ldp x6, x7, [x1,#8] + ldp x10, x11, [x2,#8] + add x1, x1, #8 + add x2, x2, #8 + cbz x18, .Lend + b .Ltop + +.Lbx0: tbnz x3, #1, .Lb10 + +.Lb00: ldp x4, x5, [x1],#-16 + ldp x8, x9, [x2],#-16 + b .Lmid + +.Lb10: ldp x6, x7, [x1] + ldp x10, x11, [x2] + cbz x18, .Lend + + .align 4 +.Ltop: ldp x4, x5, [x1,#16] + ldp x8, x9, [x2,#16] + bic x12, x6, x10 + bic x13, x7, x11 + stp x12, x13, [x0],#16 +.Lmid: ldp x6, x7, [x1,#32]! + ldp x10, x11, [x2,#32]! + bic x12, x4, x8 + bic x13, x5, x9 + stp x12, x13, [x0],#16 + sub x18, x18, #1 + cbnz x18, .Ltop + +.Lend: bic x12, x6, x10 + bic x13, x7, x11 + stp x12, x13, [x0] +.Lret: ret + .size __gmpn_andn_n,.-__gmpn_andn_n diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/bdiv_dbm1c.s b/vere/ext/gmp/gen/aarch64-linux/mpn/bdiv_dbm1c.s new file mode 100644 index 0000000..859498b --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/bdiv_dbm1c.s @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4 + .text + .align 3 + .globl __gmpn_bdiv_dbm1c + .type __gmpn_bdiv_dbm1c,@function +__gmpn_bdiv_dbm1c: + ldr x5, [x1], #8 + ands x6, x2, #3 + b.eq .Lfi0 + cmp x6, #2 + b.cc .Lfi1 + b.eq .Lfi2 + +.Lfi3: mul x12, x5, x3 + umulh x13, x5, x3 + ldr x5, [x1], #8 + b .Llo3 + +.Lfi0: mul x10, x5, x3 + umulh x11, x5, x3 + ldr x5, [x1], #8 + b .Llo0 + +.Lfi1: subs x2, x2, #1 + mul x12, x5, x3 + umulh x13, x5, x3 + b.ls .Lwd1 + ldr x5, [x1], #8 + b .Llo1 + +.Lfi2: mul x10, x5, x3 + umulh x11, x5, x3 + ldr x5, [x1], #8 + b .Llo2 + +.Ltop: ldr x5, [x1], #8 + subs x4, x4, x10 + str x4, [x0], #8 + sbc x4, x4, x11 +.Llo1: mul x10, x5, x3 + umulh x11, x5, x3 + ldr x5, [x1], #8 + subs x4, x4, x12 + str x4, [x0], #8 + sbc x4, x4, x13 +.Llo0: mul x12, x5, x3 + umulh x13, x5, x3 + ldr x5, [x1], #8 + subs x4, x4, x10 + str x4, [x0], #8 + sbc x4, x4, x11 +.Llo3: mul x10, x5, x3 + umulh x11, x5, x3 + ldr x5, [x1], #8 + subs x4, x4, x12 + str x4, [x0], #8 + sbc x4, x4, x13 +.Llo2: subs x2, x2, #4 + mul x12, x5, x3 + umulh x13, x5, x3 + b.hi .Ltop + +.Lwd2: subs x4, x4, x10 + str x4, [x0], #8 + sbc x4, x4, x11 +.Lwd1: subs x4, x4, x12 + str x4, [x0] + sbc x0, x4, x13 + ret + .size __gmpn_bdiv_dbm1c,.-__gmpn_bdiv_dbm1c diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/bdiv_q_1.s b/vere/ext/gmp/gen/aarch64-linux/mpn/bdiv_q_1.s new file mode 100644 index 0000000..0a530ea --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/bdiv_q_1.s @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_bdiv_q_1 + .type __gmpn_bdiv_q_1,@function +__gmpn_bdiv_q_1: + + rbit x6, x3 + clz x5, x6 + lsr x3, x3, x5 + + adrp x7, :got:__gmp_binvert_limb_table + ubfx x6, x3, 1, 7 + ldr x7, [x7, #:got_lo12:__gmp_binvert_limb_table] + ldrb w6, [x7, x6] + ubfiz x7, x6, 1, 8 + umull x6, w6, w6 + msub x6, x6, x3, x7 + lsl x7, x6, 1 + mul x6, x6, x6 + msub x6, x6, x3, x7 + lsl x7, x6, 1 + mul x6, x6, x6 + msub x4, x6, x3, x7 + + b __gmpn_pi1_bdiv_q_1 + .size __gmpn_bdiv_q_1,.-__gmpn_bdiv_q_1 + + .text + .align 3 + .globl __gmpn_pi1_bdiv_q_1 + .type __gmpn_pi1_bdiv_q_1,@function +__gmpn_pi1_bdiv_q_1: + sub x2, x2, #1 + subs x6, x6, x6 + ldr x9, [x1],#8 + cbz x5, .Lnorm + +.Lunorm: + lsr x12, x9, x5 + cbz x2, .Leu1 + sub x8, xzr, x5 + +.Ltpu: ldr x9, [x1],#8 + lsl x7, x9, x8 + orr x7, x7, x12 + sbcs x6, x7, x6 + mul x7, x6, x4 + str x7, [x0],#8 + lsr x12, x9, x5 + umulh x6, x7, x3 + sub x2, x2, #1 + cbnz x2, .Ltpu + +.Leu1: sbcs x6, x12, x6 + mul x6, x6, x4 + str x6, [x0] + ret + +.Lnorm: + mul x5, x9, x4 + str x5, [x0],#8 + cbz x2, .Len1 + +.Ltpn: ldr x9, [x1],#8 + umulh x5, x5, x3 + sbcs x5, x9, x5 + mul x5, x5, x4 + str x5, [x0],#8 + sub x2, x2, #1 + cbnz x2, .Ltpn + +.Len1: ret + .size __gmpn_pi1_bdiv_q_1,.-__gmpn_pi1_bdiv_q_1 diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/cnd_add_n.s b/vere/ext/gmp/gen/aarch64-linux/mpn/cnd_add_n.s new file mode 100644 index 0000000..d5d623c --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/cnd_add_n.s @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_cnd_add_n + .type __gmpn_cnd_add_n,@function +__gmpn_cnd_add_n: + cmp x0, #1 + sbc x0, x0, x0 + + cmn xzr, xzr + + lsr x18, x4, #2 + tbz x4, #0, .Lbx0 + +.Lbx1: ldr x13, [x3] + ldr x11, [x2] + bic x7, x13, x0 + adcs x9, x11, x7 + str x9, [x1] + tbnz x4, #1, .Lb11 + +.Lb01: cbz x18, .Lrt + ldp x12, x13, [x3,#8] + ldp x10, x11, [x2,#8] + sub x2, x2, #8 + sub x3, x3, #8 + sub x1, x1, #24 + b .Lmid + +.Lb11: ldp x12, x13, [x3,#8]! + ldp x10, x11, [x2,#8]! + sub x1, x1, #8 + cbz x18, .Lend + b .Ltop + +.Lbx0: ldp x12, x13, [x3] + ldp x10, x11, [x2] + tbnz x4, #1, .Lb10 + +.Lb00: sub x2, x2, #16 + sub x3, x3, #16 + sub x1, x1, #32 + b .Lmid + +.Lb10: sub x1, x1, #16 + cbz x18, .Lend + + .align 4 +.Ltop: bic x6, x12, x0 + bic x7, x13, x0 + ldp x12, x13, [x3,#16] + adcs x8, x10, x6 + adcs x9, x11, x7 + ldp x10, x11, [x2,#16] + stp x8, x9, [x1,#16] +.Lmid: bic x6, x12, x0 + bic x7, x13, x0 + ldp x12, x13, [x3,#32]! + adcs x8, x10, x6 + adcs x9, x11, x7 + ldp x10, x11, [x2,#32]! + stp x8, x9, [x1,#32]! + sub x18, x18, #1 + cbnz x18, .Ltop + +.Lend: bic x6, x12, x0 + bic x7, x13, x0 + adcs x8, x10, x6 + adcs x9, x11, x7 + stp x8, x9, [x1,#16] +.Lrt: cset x0, cs + ret + .size __gmpn_cnd_add_n,.-__gmpn_cnd_add_n diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/cnd_sub_n.s b/vere/ext/gmp/gen/aarch64-linux/mpn/cnd_sub_n.s new file mode 100644 index 0000000..2590823 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/cnd_sub_n.s @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_cnd_sub_n + .type __gmpn_cnd_sub_n,@function +__gmpn_cnd_sub_n: + cmp x0, #1 + sbc x0, x0, x0 + + cmp xzr, xzr + + lsr x18, x4, #2 + tbz x4, #0, .Lbx0 + +.Lbx1: ldr x13, [x3] + ldr x11, [x2] + bic x7, x13, x0 + sbcs x9, x11, x7 + str x9, [x1] + tbnz x4, #1, .Lb11 + +.Lb01: cbz x18, .Lrt + ldp x12, x13, [x3,#8] + ldp x10, x11, [x2,#8] + sub x2, x2, #8 + sub x3, x3, #8 + sub x1, x1, #24 + b .Lmid + +.Lb11: ldp x12, x13, [x3,#8]! + ldp x10, x11, [x2,#8]! + sub x1, x1, #8 + cbz x18, .Lend + b .Ltop + +.Lbx0: ldp x12, x13, [x3] + ldp x10, x11, [x2] + tbnz x4, #1, .Lb10 + +.Lb00: sub x2, x2, #16 + sub x3, x3, #16 + sub x1, x1, #32 + b .Lmid + +.Lb10: sub x1, x1, #16 + cbz x18, .Lend + + .align 4 +.Ltop: bic x6, x12, x0 + bic x7, x13, x0 + ldp x12, x13, [x3,#16] + sbcs x8, x10, x6 + sbcs x9, x11, x7 + ldp x10, x11, [x2,#16] + stp x8, x9, [x1,#16] +.Lmid: bic x6, x12, x0 + bic x7, x13, x0 + ldp x12, x13, [x3,#32]! + sbcs x8, x10, x6 + sbcs x9, x11, x7 + ldp x10, x11, [x2,#32]! + stp x8, x9, [x1,#32]! + sub x18, x18, #1 + cbnz x18, .Ltop + +.Lend: bic x6, x12, x0 + bic x7, x13, x0 + sbcs x8, x10, x6 + sbcs x9, x11, x7 + stp x8, x9, [x1,#16] +.Lrt: cset x0, cc + ret + .size __gmpn_cnd_sub_n,.-__gmpn_cnd_sub_n diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/com.s b/vere/ext/gmp/gen/aarch64-linux/mpn/com.s new file mode 100644 index 0000000..cdabc5f --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/com.s @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_com + .type __gmpn_com,@function +__gmpn_com: + cmp x2, #3 + b.le .Lbc + + + tbz x0, #3, .Lal2 + ld1 {v22.1d}, [x1], #8 + sub x2, x2, #1 + mvn v22.8b, v22.8b + st1 {v22.1d}, [x0], #8 + +.Lal2: ld1 {v26.2d}, [x1], #16 + subs x2, x2, #6 + b.lt .Lend + + .align 4 +.Ltop: ld1 {v22.2d}, [x1], #16 + mvn v26.16b, v26.16b + st1 {v26.2d}, [x0], #16 + ld1 {v26.2d}, [x1], #16 + mvn v22.16b, v22.16b + st1 {v22.2d}, [x0], #16 + subs x2, x2, #4 + b.ge .Ltop + +.Lend: mvn v26.16b, v26.16b + st1 {v26.2d}, [x0], #16 + + + +.Lbc: tbz x2, #1, .Ltl1 + ld1 {v22.2d}, [x1], #16 + mvn v22.16b, v22.16b + st1 {v22.2d}, [x0], #16 +.Ltl1: tbz x2, #0, .Ltl2 + ld1 {v22.1d}, [x1] + mvn v22.8b, v22.8b + st1 {v22.1d}, [x0] +.Ltl2: ret + .size __gmpn_com,.-__gmpn_com diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/copyd.s b/vere/ext/gmp/gen/aarch64-linux/mpn/copyd.s new file mode 100644 index 0000000..5ef050b --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/copyd.s @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_copyd + .type __gmpn_copyd,@function +__gmpn_copyd: + add x0, x0, x2, lsl #3 + add x1, x1, x2, lsl #3 + + cmp x2, #3 + b.le .Lbc + + + tbz x0, #3, .Lal2 + sub x1, x1, #8 + ld1 {v22.1d}, [x1] + sub x2, x2, #1 + sub x0, x0, #8 + st1 {v22.1d}, [x0] + +.Lal2: sub x1, x1, #16 + ld1 {v26.2d}, [x1] + sub x2, x2, #6 + sub x0, x0, #16 + tbnz x2, #63, .Lend + + sub x1, x1, #16 + mov x12, #-16 + + .align 4 +.Ltop: ld1 {v22.2d}, [x1], x12 + st1 {v26.2d}, [x0], x12 + ld1 {v26.2d}, [x1], x12 + st1 {v22.2d}, [x0], x12 + sub x2, x2, #4 + tbz x2, #63, .Ltop + + add x1, x1, #16 + +.Lend: st1 {v26.2d}, [x0] + + + +.Lbc: tbz x2, #1, .Ltl1 + sub x1, x1, #16 + ld1 {v22.2d}, [x1] + sub x0, x0, #16 + st1 {v22.2d}, [x0] +.Ltl1: tbz x2, #0, .Ltl2 + sub x1, x1, #8 + ld1 {v22.1d}, [x1] + sub x0, x0, #8 + st1 {v22.1d}, [x0] +.Ltl2: ret + .size __gmpn_copyd,.-__gmpn_copyd diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/copyi.s b/vere/ext/gmp/gen/aarch64-linux/mpn/copyi.s new file mode 100644 index 0000000..67819d4 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/copyi.s @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_copyi + .type __gmpn_copyi,@function +__gmpn_copyi: + cmp x2, #3 + b.le .Lbc + + + tbz x0, #3, .Lal2 + ld1 {v22.1d}, [x1], #8 + sub x2, x2, #1 + st1 {v22.1d}, [x0], #8 + +.Lal2: ld1 {v26.2d}, [x1], #16 + sub x2, x2, #6 + tbnz x2, #63, .Lend + + .align 4 +.Ltop: ld1 {v22.2d}, [x1], #16 + st1 {v26.2d}, [x0], #16 + ld1 {v26.2d}, [x1], #16 + st1 {v22.2d}, [x0], #16 + sub x2, x2, #4 + tbz x2, #63, .Ltop + +.Lend: st1 {v26.2d}, [x0], #16 + + + +.Lbc: tbz x2, #1, .Ltl1 + ld1 {v22.2d}, [x1], #16 + st1 {v22.2d}, [x0], #16 +.Ltl1: tbz x2, #0, .Ltl2 + ld1 {v22.1d}, [x1] + st1 {v22.1d}, [x0] +.Ltl2: ret + .size __gmpn_copyi,.-__gmpn_copyi diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/fib_table.c b/vere/ext/gmp/gen/aarch64-linux/mpn/fib_table.c new file mode 100644 index 0000000..a830475 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/fib_table.c @@ -0,0 +1,107 @@ +/* This file generated by gen-fib.c - DO NOT EDIT. */ + +#include "gmp.h" +#include "gmp-impl.h" + +#if GMP_NUMB_BITS != 64 +Error, error, this data is for 64 bits +#endif + +const mp_limb_t +__gmp_fib_table[FIB_TABLE_LIMIT+2] = { + CNST_LIMB (0x1), /* -1 */ + CNST_LIMB (0x0), /* 0 */ + CNST_LIMB (0x1), /* 1 */ + CNST_LIMB (0x1), /* 2 */ + CNST_LIMB (0x2), /* 3 */ + CNST_LIMB (0x3), /* 4 */ + CNST_LIMB (0x5), /* 5 */ + CNST_LIMB (0x8), /* 6 */ + CNST_LIMB (0xd), /* 7 */ + CNST_LIMB (0x15), /* 8 */ + CNST_LIMB (0x22), /* 9 */ + CNST_LIMB (0x37), /* 10 */ + CNST_LIMB (0x59), /* 11 */ + CNST_LIMB (0x90), /* 12 */ + CNST_LIMB (0xe9), /* 13 */ + CNST_LIMB (0x179), /* 14 */ + CNST_LIMB (0x262), /* 15 */ + CNST_LIMB (0x3db), /* 16 */ + CNST_LIMB (0x63d), /* 17 */ + CNST_LIMB (0xa18), /* 18 */ + CNST_LIMB (0x1055), /* 19 */ + CNST_LIMB (0x1a6d), /* 20 */ + CNST_LIMB (0x2ac2), /* 21 */ + CNST_LIMB (0x452f), /* 22 */ + CNST_LIMB (0x6ff1), /* 23 */ + CNST_LIMB (0xb520), /* 24 */ + CNST_LIMB (0x12511), /* 25 */ + CNST_LIMB (0x1da31), /* 26 */ + CNST_LIMB (0x2ff42), /* 27 */ + CNST_LIMB (0x4d973), /* 28 */ + CNST_LIMB (0x7d8b5), /* 29 */ + CNST_LIMB (0xcb228), /* 30 */ + CNST_LIMB (0x148add), /* 31 */ + CNST_LIMB (0x213d05), /* 32 */ + CNST_LIMB (0x35c7e2), /* 33 */ + CNST_LIMB (0x5704e7), /* 34 */ + CNST_LIMB (0x8cccc9), /* 35 */ + CNST_LIMB (0xe3d1b0), /* 36 */ + CNST_LIMB (0x1709e79), /* 37 */ + CNST_LIMB (0x2547029), /* 38 */ + CNST_LIMB (0x3c50ea2), /* 39 */ + CNST_LIMB (0x6197ecb), /* 40 */ + CNST_LIMB (0x9de8d6d), /* 41 */ + CNST_LIMB (0xff80c38), /* 42 */ + CNST_LIMB (0x19d699a5), /* 43 */ + CNST_LIMB (0x29cea5dd), /* 44 */ + CNST_LIMB (0x43a53f82), /* 45 */ + CNST_LIMB (0x6d73e55f), /* 46 */ + CNST_LIMB (0xb11924e1), /* 47 */ + CNST_LIMB (0x11e8d0a40), /* 48 */ + CNST_LIMB (0x1cfa62f21), /* 49 */ + CNST_LIMB (0x2ee333961), /* 50 */ + CNST_LIMB (0x4bdd96882), /* 51 */ + CNST_LIMB (0x7ac0ca1e3), /* 52 */ + CNST_LIMB (0xc69e60a65), /* 53 */ + CNST_LIMB (0x1415f2ac48), /* 54 */ + CNST_LIMB (0x207fd8b6ad), /* 55 */ + CNST_LIMB (0x3495cb62f5), /* 56 */ + CNST_LIMB (0x5515a419a2), /* 57 */ + CNST_LIMB (0x89ab6f7c97), /* 58 */ + CNST_LIMB (0xdec1139639), /* 59 */ + CNST_LIMB (0x1686c8312d0), /* 60 */ + CNST_LIMB (0x2472d96a909), /* 61 */ + CNST_LIMB (0x3af9a19bbd9), /* 62 */ + CNST_LIMB (0x5f6c7b064e2), /* 63 */ + CNST_LIMB (0x9a661ca20bb), /* 64 */ + CNST_LIMB (0xf9d297a859d), /* 65 */ + CNST_LIMB (0x19438b44a658), /* 66 */ + CNST_LIMB (0x28e0b4bf2bf5), /* 67 */ + CNST_LIMB (0x42244003d24d), /* 68 */ + CNST_LIMB (0x6b04f4c2fe42), /* 69 */ + CNST_LIMB (0xad2934c6d08f), /* 70 */ + CNST_LIMB (0x1182e2989ced1), /* 71 */ + CNST_LIMB (0x1c5575e509f60), /* 72 */ + CNST_LIMB (0x2dd8587da6e31), /* 73 */ + CNST_LIMB (0x4a2dce62b0d91), /* 74 */ + CNST_LIMB (0x780626e057bc2), /* 75 */ + CNST_LIMB (0xc233f54308953), /* 76 */ + CNST_LIMB (0x13a3a1c2360515), /* 77 */ + CNST_LIMB (0x1fc6e116668e68), /* 78 */ + CNST_LIMB (0x336a82d89c937d), /* 79 */ + CNST_LIMB (0x533163ef0321e5), /* 80 */ + CNST_LIMB (0x869be6c79fb562), /* 81 */ + CNST_LIMB (0xd9cd4ab6a2d747), /* 82 */ + CNST_LIMB (0x16069317e428ca9), /* 83 */ + CNST_LIMB (0x23a367c34e563f0), /* 84 */ + CNST_LIMB (0x39a9fadb327f099), /* 85 */ + CNST_LIMB (0x5d4d629e80d5489), /* 86 */ + CNST_LIMB (0x96f75d79b354522), /* 87 */ + CNST_LIMB (0xf444c01834299ab), /* 88 */ + CNST_LIMB (0x18b3c1d91e77decd), /* 89 */ + CNST_LIMB (0x27f80ddaa1ba7878), /* 90 */ + CNST_LIMB (0x40abcfb3c0325745), /* 91 */ + CNST_LIMB (0x68a3dd8e61eccfbd), /* 92 */ + CNST_LIMB (0xa94fad42221f2702), /* 93 */ +}; diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/gcd_11.s b/vere/ext/gmp/gen/aarch64-linux/mpn/gcd_11.s new file mode 100644 index 0000000..1c3b84f --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/gcd_11.s @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4 + .text + .align 3 + .globl __gmpn_gcd_11 + .type __gmpn_gcd_11,@function +__gmpn_gcd_11: + subs x3, x0, x1 + b.eq .Lend + + .align 4 +.Ltop: rbit x12, x3 + clz x12, x12 + csneg x3, x3, x3, cs + csel x0, x1, x0, cs + lsr x1, x3, x12 + subs x3, x0, x1 + b.ne .Ltop + +.Lend: ret + .size __gmpn_gcd_11,.-__gmpn_gcd_11 diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/gcd_22.s b/vere/ext/gmp/gen/aarch64-linux/mpn/gcd_22.s new file mode 100644 index 0000000..d0ff99c --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/gcd_22.s @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_gcd_22 + .type __gmpn_gcd_22,@function +__gmpn_gcd_22: + + .align 4 +.Ltop: subs x5, x1, x3 + cbz x5, .Llowz + sbcs x6, x0, x2 + + rbit x7, x5 + + cneg x5, x5, cc + cinv x6, x6, cc +.Lbck: csel x3, x3, x1, cs + csel x2, x2, x0, cs + + clz x7, x7 + sub x8, xzr, x7 + + lsr x1, x5, x7 + lsl x14, x6, x8 + lsr x0, x6, x7 + orr x1, x1, x14 + + orr x11, x0, x2 + cbnz x11, .Ltop + + + subs x4, x1, x3 + b.eq .Lend1 + + .align 4 +.Ltop1:rbit x12, x4 + clz x12, x12 + csneg x4, x4, x4, cs + csel x1, x3, x1, cs + lsr x3, x4, x12 + subs x4, x1, x3 + b.ne .Ltop1 +.Lend1:mov x0, x1 + mov x1, #0 + ret + +.Llowz: + + + subs x5, x0, x2 + b.eq .Lend + mov x6, #0 + rbit x7, x5 + cneg x5, x5, cc + b .Lbck + +.Lend: mov x0, x3 + mov x1, x2 + ret + .size __gmpn_gcd_22,.-__gmpn_gcd_22 diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/hamdist.s b/vere/ext/gmp/gen/aarch64-linux/mpn/hamdist.s new file mode 100644 index 0000000..624b72d --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/hamdist.s @@ -0,0 +1,193 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_hamdist + .type __gmpn_hamdist,@function +__gmpn_hamdist: + + mov x11, #0x1fff + cmp x2, x11 + b.hi .Lgt8k + +.Llt8k: + movi v4.16b, #0 + movi v5.16b, #0 + + tbz x2, #0, .Lxx0 + sub x2, x2, #1 + ld1 {v0.1d}, [x0], #8 + ld1 {v16.1d}, [x1], #8 + eor v0.16b, v0.16b, v16.16b + cnt v6.16b, v0.16b + uadalp v4.8h, v6.16b + +.Lxx0: tbz x2, #1, .Lx00 + sub x2, x2, #2 + ld1 {v0.2d}, [x0], #16 + ld1 {v16.2d}, [x1], #16 + eor v0.16b, v0.16b, v16.16b + cnt v6.16b, v0.16b + uadalp v4.8h, v6.16b + +.Lx00: tbz x2, #2, .L000 + subs x2, x2, #4 + ld1 {v0.2d,v1.2d}, [x0], #32 + ld1 {v16.2d,v17.2d}, [x1], #32 + b.ls .Lsum + +.Lgt4: ld1 {v2.2d,v3.2d}, [x0], #32 + ld1 {v18.2d,v19.2d}, [x1], #32 + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + sub x2, x2, #4 + cnt v6.16b, v0.16b + cnt v7.16b, v1.16b + b .Lmid + +.L000: subs x2, x2, #8 + b.lo .Le0 + +.Lchu: ld1 {v2.2d,v3.2d}, [x0], #32 + ld1 {v0.2d,v1.2d}, [x0], #32 + ld1 {v18.2d,v19.2d}, [x1], #32 + ld1 {v16.2d,v17.2d}, [x1], #32 + eor v2.16b, v2.16b, v18.16b + eor v3.16b, v3.16b, v19.16b + cnt v6.16b, v2.16b + cnt v7.16b, v3.16b + subs x2, x2, #8 + b.lo .Lend + +.Ltop: ld1 {v2.2d,v3.2d}, [x0], #32 + ld1 {v18.2d,v19.2d}, [x1], #32 + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + uadalp v4.8h, v6.16b + cnt v6.16b, v0.16b + uadalp v5.8h, v7.16b + cnt v7.16b, v1.16b +.Lmid: ld1 {v0.2d,v1.2d}, [x0], #32 + ld1 {v16.2d,v17.2d}, [x1], #32 + eor v2.16b, v2.16b, v18.16b + eor v3.16b, v3.16b, v19.16b + subs x2, x2, #8 + uadalp v4.8h, v6.16b + cnt v6.16b, v2.16b + uadalp v5.8h, v7.16b + cnt v7.16b, v3.16b + b.hs .Ltop + +.Lend: uadalp v4.8h, v6.16b + uadalp v5.8h, v7.16b +.Lsum: eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + cnt v6.16b, v0.16b + cnt v7.16b, v1.16b + uadalp v4.8h, v6.16b + uadalp v5.8h, v7.16b + add v4.8h, v4.8h, v5.8h + +.Le0: uaddlp v4.4s, v4.8h + uaddlp v4.2d, v4.4s + mov x0, v4.d[0] + mov x1, v4.d[1] + add x0, x0, x1 + ret + + + + +.Lgt8k: + mov x8, x30 + mov x7, x2 + mov x4, #0 + mov x9, #0x1ff0*8 + mov x10, #0x1ff0 + +1: add x5, x0, x9 + add x6, x1, x9 + mov x2, #0x1ff0-8 + movi v4.16b, #0 + movi v5.16b, #0 + bl .Lchu + add x4, x4, x0 + mov x0, x5 + mov x1, x6 + sub x7, x7, x10 + cmp x7, x11 + b.hi 1b + + mov x2, x7 + bl .Llt8k + add x0, x4, x0 + mov x30, x8 + ret + .size __gmpn_hamdist,.-__gmpn_hamdist diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/invert_limb.s b/vere/ext/gmp/gen/aarch64-linux/mpn/invert_limb.s new file mode 100644 index 0000000..9c42cb3 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/invert_limb.s @@ -0,0 +1,347 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_invert_limb + .type __gmpn_invert_limb,@function +__gmpn_invert_limb: + lsr x2, x0, #54 + adrp x1, :got:approx_tab + and x2, x2, #0x1fe + ldr x1, [x1, #:got_lo12:approx_tab] + ldrh w3, [x1,x2] + lsr x4, x0, #24 + add x4, x4, #1 + ubfiz x2, x3, #11, #16 + umull x3, w3, w3 + mul x3, x3, x4 + sub x2, x2, #1 + sub x2, x2, x3, lsr #40 + lsl x3, x2, #60 + mul x1, x2, x2 + msub x1, x1, x4, x3 + lsl x2, x2, #13 + add x1, x2, x1, lsr #47 + and x2, x0, #1 + neg x3, x2 + and x3, x3, x1, lsr #1 + add x2, x2, x0, lsr #1 + msub x2, x1, x2, x3 + umulh x2, x2, x1 + lsl x1, x1, #31 + add x1, x1, x2, lsr #1 + mul x3, x1, x0 + umulh x2, x1, x0 + adds x4, x3, x0 + adc x0, x2, x0 + sub x0, x1, x0 + ret + .size __gmpn_invert_limb,.-__gmpn_invert_limb + + .section .rodata + .align 1 + .type approx_tab,@object + .size approx_tab,512 +approx_tab: + .hword 2045 + .hword 2037 + .hword 2029 + .hword 2021 + .hword 2013 + .hword 2005 + .hword 1998 + .hword 1990 + .hword 1983 + .hword 1975 + .hword 1968 + .hword 1960 + .hword 1953 + .hword 1946 + .hword 1938 + .hword 1931 + .hword 1924 + .hword 1917 + .hword 1910 + .hword 1903 + .hword 1896 + .hword 1889 + .hword 1883 + .hword 1876 + .hword 1869 + .hword 1863 + .hword 1856 + .hword 1849 + .hword 1843 + .hword 1836 + .hword 1830 + .hword 1824 + .hword 1817 + .hword 1811 + .hword 1805 + .hword 1799 + .hword 1792 + .hword 1786 + .hword 1780 + .hword 1774 + .hword 1768 + .hword 1762 + .hword 1756 + .hword 1750 + .hword 1745 + .hword 1739 + .hword 1733 + .hword 1727 + .hword 1722 + .hword 1716 + .hword 1710 + .hword 1705 + .hword 1699 + .hword 1694 + .hword 1688 + .hword 1683 + .hword 1677 + .hword 1672 + .hword 1667 + .hword 1661 + .hword 1656 + .hword 1651 + .hword 1646 + .hword 1641 + .hword 1636 + .hword 1630 + .hword 1625 + .hword 1620 + .hword 1615 + .hword 1610 + .hword 1605 + .hword 1600 + .hword 1596 + .hword 1591 + .hword 1586 + .hword 1581 + .hword 1576 + .hword 1572 + .hword 1567 + .hword 1562 + .hword 1558 + .hword 1553 + .hword 1548 + .hword 1544 + .hword 1539 + .hword 1535 + .hword 1530 + .hword 1526 + .hword 1521 + .hword 1517 + .hword 1513 + .hword 1508 + .hword 1504 + .hword 1500 + .hword 1495 + .hword 1491 + .hword 1487 + .hword 1483 + .hword 1478 + .hword 1474 + .hword 1470 + .hword 1466 + .hword 1462 + .hword 1458 + .hword 1454 + .hword 1450 + .hword 1446 + .hword 1442 + .hword 1438 + .hword 1434 + .hword 1430 + .hword 1426 + .hword 1422 + .hword 1418 + .hword 1414 + .hword 1411 + .hword 1407 + .hword 1403 + .hword 1399 + .hword 1396 + .hword 1392 + .hword 1388 + .hword 1384 + .hword 1381 + .hword 1377 + .hword 1374 + .hword 1370 + .hword 1366 + .hword 1363 + .hword 1359 + .hword 1356 + .hword 1352 + .hword 1349 + .hword 1345 + .hword 1342 + .hword 1338 + .hword 1335 + .hword 1332 + .hword 1328 + .hword 1325 + .hword 1322 + .hword 1318 + .hword 1315 + .hword 1312 + .hword 1308 + .hword 1305 + .hword 1302 + .hword 1299 + .hword 1295 + .hword 1292 + .hword 1289 + .hword 1286 + .hword 1283 + .hword 1280 + .hword 1276 + .hword 1273 + .hword 1270 + .hword 1267 + .hword 1264 + .hword 1261 + .hword 1258 + .hword 1255 + .hword 1252 + .hword 1249 + .hword 1246 + .hword 1243 + .hword 1240 + .hword 1237 + .hword 1234 + .hword 1231 + .hword 1228 + .hword 1226 + .hword 1223 + .hword 1220 + .hword 1217 + .hword 1214 + .hword 1211 + .hword 1209 + .hword 1206 + .hword 1203 + .hword 1200 + .hword 1197 + .hword 1195 + .hword 1192 + .hword 1189 + .hword 1187 + .hword 1184 + .hword 1181 + .hword 1179 + .hword 1176 + .hword 1173 + .hword 1171 + .hword 1168 + .hword 1165 + .hword 1163 + .hword 1160 + .hword 1158 + .hword 1155 + .hword 1153 + .hword 1150 + .hword 1148 + .hword 1145 + .hword 1143 + .hword 1140 + .hword 1138 + .hword 1135 + .hword 1133 + .hword 1130 + .hword 1128 + .hword 1125 + .hword 1123 + .hword 1121 + .hword 1118 + .hword 1116 + .hword 1113 + .hword 1111 + .hword 1109 + .hword 1106 + .hword 1104 + .hword 1102 + .hword 1099 + .hword 1097 + .hword 1095 + .hword 1092 + .hword 1090 + .hword 1088 + .hword 1086 + .hword 1083 + .hword 1081 + .hword 1079 + .hword 1077 + .hword 1074 + .hword 1072 + .hword 1070 + .hword 1068 + .hword 1066 + .hword 1064 + .hword 1061 + .hword 1059 + .hword 1057 + .hword 1055 + .hword 1053 + .hword 1051 + .hword 1049 + .hword 1047 + .hword 1044 + .hword 1042 + .hword 1040 + .hword 1038 + .hword 1036 + .hword 1034 + .hword 1032 + .hword 1030 + .hword 1028 + .hword 1026 + .hword 1024 diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/ior_n.s b/vere/ext/gmp/gen/aarch64-linux/mpn/ior_n.s new file mode 100644 index 0000000..e94c0f4 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/ior_n.s @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_ior_n + .type __gmpn_ior_n,@function +__gmpn_ior_n: + lsr x18, x3, #2 + tbz x3, #0, .Lbx0 + +.Lbx1: ldr x7, [x1] + ldr x11, [x2] + orr x15, x7, x11 + str x15, [x0],#8 + tbnz x3, #1, .Lb11 + +.Lb01: cbz x18, .Lret + ldp x4, x5, [x1,#8] + ldp x8, x9, [x2,#8] + sub x1, x1, #8 + sub x2, x2, #8 + b .Lmid + +.Lb11: ldp x6, x7, [x1,#8] + ldp x10, x11, [x2,#8] + add x1, x1, #8 + add x2, x2, #8 + cbz x18, .Lend + b .Ltop + +.Lbx0: tbnz x3, #1, .Lb10 + +.Lb00: ldp x4, x5, [x1],#-16 + ldp x8, x9, [x2],#-16 + b .Lmid + +.Lb10: ldp x6, x7, [x1] + ldp x10, x11, [x2] + cbz x18, .Lend + + .align 4 +.Ltop: ldp x4, x5, [x1,#16] + ldp x8, x9, [x2,#16] + orr x12, x6, x10 + orr x13, x7, x11 + stp x12, x13, [x0],#16 +.Lmid: ldp x6, x7, [x1,#32]! + ldp x10, x11, [x2,#32]! + orr x12, x4, x8 + orr x13, x5, x9 + stp x12, x13, [x0],#16 + sub x18, x18, #1 + cbnz x18, .Ltop + +.Lend: orr x12, x6, x10 + orr x13, x7, x11 + stp x12, x13, [x0] +.Lret: ret + .size __gmpn_ior_n,.-__gmpn_ior_n diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/iorn_n.s b/vere/ext/gmp/gen/aarch64-linux/mpn/iorn_n.s new file mode 100644 index 0000000..3a745fb --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/iorn_n.s @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_iorn_n + .type __gmpn_iorn_n,@function +__gmpn_iorn_n: + lsr x18, x3, #2 + tbz x3, #0, .Lbx0 + +.Lbx1: ldr x7, [x1] + ldr x11, [x2] + orn x15, x7, x11 + str x15, [x0],#8 + tbnz x3, #1, .Lb11 + +.Lb01: cbz x18, .Lret + ldp x4, x5, [x1,#8] + ldp x8, x9, [x2,#8] + sub x1, x1, #8 + sub x2, x2, #8 + b .Lmid + +.Lb11: ldp x6, x7, [x1,#8] + ldp x10, x11, [x2,#8] + add x1, x1, #8 + add x2, x2, #8 + cbz x18, .Lend + b .Ltop + +.Lbx0: tbnz x3, #1, .Lb10 + +.Lb00: ldp x4, x5, [x1],#-16 + ldp x8, x9, [x2],#-16 + b .Lmid + +.Lb10: ldp x6, x7, [x1] + ldp x10, x11, [x2] + cbz x18, .Lend + + .align 4 +.Ltop: ldp x4, x5, [x1,#16] + ldp x8, x9, [x2,#16] + orn x12, x6, x10 + orn x13, x7, x11 + stp x12, x13, [x0],#16 +.Lmid: ldp x6, x7, [x1,#32]! + ldp x10, x11, [x2,#32]! + orn x12, x4, x8 + orn x13, x5, x9 + stp x12, x13, [x0],#16 + sub x18, x18, #1 + cbnz x18, .Ltop + +.Lend: orn x12, x6, x10 + orn x13, x7, x11 + stp x12, x13, [x0] +.Lret: ret + .size __gmpn_iorn_n,.-__gmpn_iorn_n diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/jacobitab.h b/vere/ext/gmp/gen/aarch64-linux/mpn/jacobitab.h new file mode 100644 index 0000000..4bdbfcc --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/jacobitab.h @@ -0,0 +1,13 @@ + 0, 0, 0, 0, 0,12, 8, 4, 1, 1, 1, 1, 1,13, 9, 5, + 2, 2, 2, 2, 2, 6,10,14, 3, 3, 3, 3, 3, 7,11,15, + 4,16, 6,18, 4, 0,12, 8, 5,17, 7,19, 5, 1,13, 9, + 6,18, 4,16, 6,10,14, 2, 7,19, 5,17, 7,11,15, 3, + 8,10, 9,11, 8, 4, 0,12, 9,11, 8,10, 9, 5, 1,13, +10, 9,11, 8,10,14, 2, 6,11, 8,10, 9,11,15, 3, 7, +12,22,24,20,12, 8, 4, 0,13,23,25,21,13, 9, 5, 1, +25,21,13,23,14, 2, 6,10,24,20,12,22,15, 3, 7,11, +16, 6,18, 4,16,16,16,16,17, 7,19, 5,17,17,17,17, +18, 4,16, 6,18,22,19,23,19, 5,17, 7,19,23,18,22, +20,12,22,24,20,20,20,20,21,13,23,25,21,21,21,21, +22,24,20,12,22,19,23,18,23,25,21,13,23,18,22,19, +24,20,12,22,15, 3, 7,11,25,21,13,23,14, 2, 6,10, diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/lshift.s b/vere/ext/gmp/gen/aarch64-linux/mpn/lshift.s new file mode 100644 index 0000000..8d39593 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/lshift.s @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_lshift + .type __gmpn_lshift,@function +__gmpn_lshift: + add x16, x0, x2, lsl #3 + add x1, x1, x2, lsl #3 + sub x8, xzr, x3 + lsr x18, x2, #2 + tbz x2, #0, .Lbx0 + +.Lbx1: ldr x4, [x1,#-8] + tbnz x2, #1, .Lb11 + +.Lb01: lsr x0, x4, x8 + lsl x2, x4, x3 + cbnz x18, .Lgt1 + str x2, [x16,#-8] + ret +.Lgt1: ldp x4, x5, [x1,#-24] + sub x1, x1, #8 + add x16, x16, #16 + b .Llo2 + +.Lb11: lsr x0, x4, x8 + lsl x2, x4, x3 + ldp x6, x7, [x1,#-24]! + b .Llo3 + +.Lbx0: ldp x4, x5, [x1,#-16] + tbz x2, #1, .Lb00 + +.Lb10: lsr x0, x5, x8 + lsl x13, x5, x3 + lsr x10, x4, x8 + lsl x2, x4, x3 + cbnz x18, .Lgt2 + orr x10, x10, x13 + stp x2, x10, [x16,#-16] + ret +.Lgt2: ldp x4, x5, [x1,#-32] + orr x10, x10, x13 + str x10, [x16,#-8] + sub x1, x1, #16 + add x16, x16, #8 + b .Llo2 + +.Lb00: lsr x0, x5, x8 + lsl x13, x5, x3 + lsr x10, x4, x8 + lsl x2, x4, x3 + ldp x6, x7, [x1,#-32]! + orr x10, x10, x13 + str x10, [x16,#-8]! + b .Llo0 + + .align 4 +.Ltop: ldp x4, x5, [x1,#-16] + orr x10, x10, x13 + orr x11, x12, x2 + stp x10, x11, [x16,#-16] + lsl x2, x6, x3 +.Llo2: lsr x10, x4, x8 + lsl x13, x5, x3 + lsr x12, x5, x8 + ldp x6, x7, [x1,#-32]! + orr x10, x10, x13 + orr x11, x12, x2 + stp x10, x11, [x16,#-32]! + lsl x2, x4, x3 +.Llo0: sub x18, x18, #1 +.Llo3: lsr x10, x6, x8 + lsl x13, x7, x3 + lsr x12, x7, x8 + cbnz x18, .Ltop + +.Lend: orr x10, x10, x13 + orr x11, x12, x2 + lsl x2, x6, x3 + stp x10, x11, [x16,#-16] + str x2, [x16,#-24] + ret + .size __gmpn_lshift,.-__gmpn_lshift diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/lshiftc.s b/vere/ext/gmp/gen/aarch64-linux/mpn/lshiftc.s new file mode 100644 index 0000000..f890952 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/lshiftc.s @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_lshiftc + .type __gmpn_lshiftc,@function +__gmpn_lshiftc: + add x16, x0, x2, lsl #3 + add x1, x1, x2, lsl #3 + sub x8, xzr, x3 + lsr x18, x2, #2 + tbz x2, #0, .Lbx0 + +.Lbx1: ldr x4, [x1,#-8] + tbnz x2, #1, .Lb11 + +.Lb01: lsr x0, x4, x8 + lsl x2, x4, x3 + cbnz x18, .Lgt1 + mvn x2, x2 + str x2, [x16,#-8] + ret +.Lgt1: ldp x4, x5, [x1,#-24] + sub x1, x1, #8 + add x16, x16, #16 + b .Llo2 + +.Lb11: lsr x0, x4, x8 + lsl x2, x4, x3 + ldp x6, x7, [x1,#-24]! + b .Llo3 + +.Lbx0: ldp x4, x5, [x1,#-16] + tbz x2, #1, .Lb00 + +.Lb10: lsr x0, x5, x8 + lsl x13, x5, x3 + lsr x10, x4, x8 + lsl x2, x4, x3 + cbnz x18, .Lgt2 + eon x10, x10, x13 + mvn x2, x2 + stp x2, x10, [x16,#-16] + ret +.Lgt2: ldp x4, x5, [x1,#-32] + eon x10, x10, x13 + str x10, [x16,#-8] + sub x1, x1, #16 + add x16, x16, #8 + b .Llo2 + +.Lb00: lsr x0, x5, x8 + lsl x13, x5, x3 + lsr x10, x4, x8 + lsl x2, x4, x3 + ldp x6, x7, [x1,#-32]! + eon x10, x10, x13 + str x10, [x16,#-8]! + b .Llo0 + + .align 4 +.Ltop: ldp x4, x5, [x1,#-16] + eon x10, x10, x13 + eon x11, x12, x2 + stp x10, x11, [x16,#-16] + lsl x2, x6, x3 +.Llo2: lsr x10, x4, x8 + lsl x13, x5, x3 + lsr x12, x5, x8 + ldp x6, x7, [x1,#-32]! + eon x10, x10, x13 + eon x11, x12, x2 + stp x10, x11, [x16,#-32]! + lsl x2, x4, x3 +.Llo0: sub x18, x18, #1 +.Llo3: lsr x10, x6, x8 + lsl x13, x7, x3 + lsr x12, x7, x8 + cbnz x18, .Ltop + +.Lend: eon x10, x10, x13 + eon x11, x12, x2 + lsl x2, x6, x3 + stp x10, x11, [x16,#-16] + mvn x2, x2 + str x2, [x16,#-24] + ret + .size __gmpn_lshiftc,.-__gmpn_lshiftc diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/mod_34lsub1.s b/vere/ext/gmp/gen/aarch64-linux/mpn/mod_34lsub1.s new file mode 100644 index 0000000..f59f660 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/mod_34lsub1.s @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 5 + .text + .align 3 + .globl __gmpn_mod_34lsub1 + .type __gmpn_mod_34lsub1,@function +__gmpn_mod_34lsub1: + subs x1, x1, #3 + mov x8, #0 + b.lt .Lle2 + + ldp x2, x3, [x0, #0] + ldr x4, [x0, #16] + add x0, x0, #24 + subs x1, x1, #3 + b.lt .Lsum + cmn x0, #0 + +.Ltop: ldp x5, x6, [x0, #0] + ldr x7, [x0, #16] + add x0, x0, #24 + sub x1, x1, #3 + adcs x2, x2, x5 + adcs x3, x3, x6 + adcs x4, x4, x7 + tbz x1, #63, .Ltop + + adc x8, xzr, xzr + +.Lsum: cmn x1, #2 + mov x5, #0 + b.lo 1f + ldr x5, [x0], #8 +1: mov x6, #0 + b.ls 1f + ldr x6, [x0], #8 +1: adds x2, x2, x5 + adcs x3, x3, x6 + adcs x4, x4, xzr + adc x8, x8, xzr + +.Lsum2: + and x0, x2, #0xffffffffffff + add x0, x0, x2, lsr #48 + add x0, x0, x8 + + lsl x8, x3, #16 + and x1, x8, #0xffffffffffff + add x0, x0, x1 + add x0, x0, x3, lsr #32 + + lsl x8, x4, #32 + and x1, x8, #0xffffffffffff + add x0, x0, x1 + add x0, x0, x4, lsr #16 + ret + +.Lle2: cmn x1, #1 + b.ne .L1 + ldp x2, x3, [x0] + mov x4, #0 + b .Lsum2 +.L1: ldr x2, [x0] + and x0, x2, #0xffffffffffff + add x0, x0, x2, lsr #48 + ret + .size __gmpn_mod_34lsub1,.-__gmpn_mod_34lsub1 diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/mp_bases.c b/vere/ext/gmp/gen/aarch64-linux/mpn/mp_bases.c new file mode 100644 index 0000000..c72c531 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/mp_bases.c @@ -0,0 +1,268 @@ +/* This file generated by gen-bases.c - DO NOT EDIT. */ + +#include "gmp-impl.h" + +#if GMP_NUMB_BITS != 64 +Error, error, this data is for 64 bits +#endif + +const struct bases mp_bases[257] = +{ + /* 0 */ { 0, 0, 0, 0, 0 }, + /* 1 */ { 0, 0, 0, 0, 0 }, + /* 2 */ { 64, CNST_LIMB(0xffffffffffffffff), CNST_LIMB(0x1fffffffffffffff), CNST_LIMB(0x1), CNST_LIMB(0x0) }, + /* 3 */ { 40, CNST_LIMB(0xa1849cc1a9a9e94e), CNST_LIMB(0x32b803473f7ad0f3), CNST_LIMB(0xa8b8b452291fe821), CNST_LIMB(0x846d550e37b5063d) }, + /* 4 */ { 32, CNST_LIMB(0x7fffffffffffffff), CNST_LIMB(0x3fffffffffffffff), CNST_LIMB(0x2), CNST_LIMB(0x0) }, + /* 5 */ { 27, CNST_LIMB(0x6e40d1a4143dcb94), CNST_LIMB(0x4a4d3c25e68dc57f), CNST_LIMB(0x6765c793fa10079d), CNST_LIMB(0x3ce9a36f23c0fc90) }, + /* 6 */ { 24, CNST_LIMB(0x6308c91b702a7cf4), CNST_LIMB(0x52b803473f7ad0f3), CNST_LIMB(0x41c21cb8e1000000), CNST_LIMB(0xf24f62335024a295) }, + /* 7 */ { 22, CNST_LIMB(0x5b3064eb3aa6d388), CNST_LIMB(0x59d5d9fd5010b366), CNST_LIMB(0x3642798750226111), CNST_LIMB(0x2df495ccaa57147b) }, + /* 8 */ { 21, CNST_LIMB(0x5555555555555555), CNST_LIMB(0x5fffffffffffffff), CNST_LIMB(0x3), CNST_LIMB(0x0) }, + /* 9 */ { 20, CNST_LIMB(0x50c24e60d4d4f4a7), CNST_LIMB(0x6570068e7ef5a1e7), CNST_LIMB(0xa8b8b452291fe821), CNST_LIMB(0x846d550e37b5063d) }, + /* 10 */ { 19, CNST_LIMB(0x4d104d427de7fbcc), CNST_LIMB(0x6a4d3c25e68dc57f), CNST_LIMB(0x8ac7230489e80000), CNST_LIMB(0xd83c94fb6d2ac34a) }, + /* 11 */ { 18, CNST_LIMB(0x4a00270775914e88), CNST_LIMB(0x6eb3a9f01975077f), CNST_LIMB(0x4d28cb56c33fa539), CNST_LIMB(0xa8adf7ae45e7577b) }, + /* 12 */ { 17, CNST_LIMB(0x4768ce0d05818e12), CNST_LIMB(0x72b803473f7ad0f3), CNST_LIMB(0x1eca170c00000000), CNST_LIMB(0xa10c2bec5da8f8f) }, + /* 13 */ { 17, CNST_LIMB(0x452e53e365907bda), CNST_LIMB(0x766a008e4788cbcd), CNST_LIMB(0x780c7372621bd74d), CNST_LIMB(0x10f4becafe412ec3) }, + /* 14 */ { 16, CNST_LIMB(0x433cfffb4b5aae55), CNST_LIMB(0x79d5d9fd5010b366), CNST_LIMB(0x1e39a5057d810000), CNST_LIMB(0xf08480f672b4e86) }, + /* 15 */ { 16, CNST_LIMB(0x41867711b4f85355), CNST_LIMB(0x7d053f6d26089673), CNST_LIMB(0x5b27ac993df97701), CNST_LIMB(0x6779c7f90dc42f48) }, + /* 16 */ { 16, CNST_LIMB(0x3fffffffffffffff), CNST_LIMB(0x7fffffffffffffff), CNST_LIMB(0x4), CNST_LIMB(0x0) }, + /* 17 */ { 15, CNST_LIMB(0x3ea16afd58b10966), CNST_LIMB(0x82cc7edf592262cf), CNST_LIMB(0x27b95e997e21d9f1), CNST_LIMB(0x9c71e11bab279323) }, + /* 18 */ { 15, CNST_LIMB(0x3d64598d154dc4de), CNST_LIMB(0x8570068e7ef5a1e7), CNST_LIMB(0x5da0e1e53c5c8000), CNST_LIMB(0x5dfaa697ec6f6a1c) }, + /* 19 */ { 15, CNST_LIMB(0x3c43c23018bb5563), CNST_LIMB(0x87ef05ae409a0288), CNST_LIMB(0xd2ae3299c1c4aedb), CNST_LIMB(0x3711783f6be7e9ec) }, + /* 20 */ { 14, CNST_LIMB(0x3b3b9a42873069c7), CNST_LIMB(0x8a4d3c25e68dc57f), CNST_LIMB(0x16bcc41e90000000), CNST_LIMB(0x6849b86a12b9b01e) }, + /* 21 */ { 14, CNST_LIMB(0x3a4898f06cf41ac9), CNST_LIMB(0x8c8ddd448f8b845a), CNST_LIMB(0x2d04b7fdd9c0ef49), CNST_LIMB(0x6bf097ba5ca5e239) }, + /* 22 */ { 14, CNST_LIMB(0x39680b13582e7c18), CNST_LIMB(0x8eb3a9f01975077f), CNST_LIMB(0x5658597bcaa24000), CNST_LIMB(0x7b8015c8d7af8f08) }, + /* 23 */ { 14, CNST_LIMB(0x3897b2b751ae561a), CNST_LIMB(0x90c10500d63aa658), CNST_LIMB(0xa0e2073737609371), CNST_LIMB(0x975a24b3a3151b38) }, + /* 24 */ { 13, CNST_LIMB(0x37d5aed131f19c98), CNST_LIMB(0x92b803473f7ad0f3), CNST_LIMB(0xc29e98000000000), CNST_LIMB(0x50bd367972689db1) }, + /* 25 */ { 13, CNST_LIMB(0x372068d20a1ee5ca), CNST_LIMB(0x949a784bcd1b8afe), CNST_LIMB(0x14adf4b7320334b9), CNST_LIMB(0x8c240c4aecb13bb5) }, + /* 26 */ { 13, CNST_LIMB(0x3676867e5d60de29), CNST_LIMB(0x966a008e4788cbcd), CNST_LIMB(0x226ed36478bfa000), CNST_LIMB(0xdbd2e56854e118c9) }, + /* 27 */ { 13, CNST_LIMB(0x35d6deeb388df86f), CNST_LIMB(0x982809d5be7072db), CNST_LIMB(0x383d9170b85ff80b), CNST_LIMB(0x2351ffcaa9c7c4ae) }, + /* 28 */ { 13, CNST_LIMB(0x354071d61c77fa2e), CNST_LIMB(0x99d5d9fd5010b366), CNST_LIMB(0x5a3c23e39c000000), CNST_LIMB(0x6b24188ca33b0636) }, + /* 29 */ { 13, CNST_LIMB(0x34b260c5671b18ac), CNST_LIMB(0x9b74948f5532da4b), CNST_LIMB(0x8e65137388122bcd), CNST_LIMB(0xcc3dceaf2b8ba99d) }, + /* 30 */ { 13, CNST_LIMB(0x342be986572b45cc), CNST_LIMB(0x9d053f6d26089673), CNST_LIMB(0xdd41bb36d259e000), CNST_LIMB(0x2832e835c6c7d6b6) }, + /* 31 */ { 12, CNST_LIMB(0x33ac61b998fbbdf2), CNST_LIMB(0x9e88c6b3626a72aa), CNST_LIMB(0xaee5720ee830681), CNST_LIMB(0x76b6aa272e1873c5) }, + /* 32 */ { 12, CNST_LIMB(0x3333333333333333), CNST_LIMB(0x9fffffffffffffff), CNST_LIMB(0x5), CNST_LIMB(0x0) }, + /* 33 */ { 12, CNST_LIMB(0x32bfd90114c12861), CNST_LIMB(0xa16bad3758efd873), CNST_LIMB(0x172588ad4f5f0981), CNST_LIMB(0x61eaf5d402c7bf4f) }, + /* 34 */ { 12, CNST_LIMB(0x3251dcf6169e45f2), CNST_LIMB(0xa2cc7edf592262cf), CNST_LIMB(0x211e44f7d02c1000), CNST_LIMB(0xeeb658123ffb27ec) }, + /* 35 */ { 12, CNST_LIMB(0x31e8d59f180dc630), CNST_LIMB(0xa4231623369e78e5), CNST_LIMB(0x2ee56725f06e5c71), CNST_LIMB(0x5d5e3762e6fdf509) }, + /* 36 */ { 12, CNST_LIMB(0x3184648db8153e7a), CNST_LIMB(0xa570068e7ef5a1e7), CNST_LIMB(0x41c21cb8e1000000), CNST_LIMB(0xf24f62335024a295) }, + /* 37 */ { 12, CNST_LIMB(0x312434e89c35dacd), CNST_LIMB(0xa6b3d78b6d3b24fb), CNST_LIMB(0x5b5b57f8a98a5dd1), CNST_LIMB(0x66ae7831762efb6f) }, + /* 38 */ { 12, CNST_LIMB(0x30c7fa349460a541), CNST_LIMB(0xa7ef05ae409a0288), CNST_LIMB(0x7dcff8986ea31000), CNST_LIMB(0x47388865a00f544) }, + /* 39 */ { 12, CNST_LIMB(0x306f6f4c8432bc6d), CNST_LIMB(0xa92203d587039cc1), CNST_LIMB(0xabd4211662a6b2a1), CNST_LIMB(0x7d673c33a123b54c) }, + /* 40 */ { 12, CNST_LIMB(0x301a557ffbfdd252), CNST_LIMB(0xaa4d3c25e68dc57f), CNST_LIMB(0xe8d4a51000000000), CNST_LIMB(0x19799812dea11197) }, + /* 41 */ { 11, CNST_LIMB(0x2fc873d1fda55f3b), CNST_LIMB(0xab7110e6ce866f2b), CNST_LIMB(0x7a32956ad081b79), CNST_LIMB(0xc27e62e0686feae) }, + /* 42 */ { 11, CNST_LIMB(0x2f799652a4e6dc49), CNST_LIMB(0xac8ddd448f8b845a), CNST_LIMB(0x9f49aaff0e86800), CNST_LIMB(0x9b6e7507064ce7c7) }, + /* 43 */ { 11, CNST_LIMB(0x2f2d8d8f64460aad), CNST_LIMB(0xada3f5fb9c415052), CNST_LIMB(0xce583bb812d37b3), CNST_LIMB(0x3d9ac2bf66cfed94) }, + /* 44 */ { 11, CNST_LIMB(0x2ee42e164e8f53a4), CNST_LIMB(0xaeb3a9f01975077f), CNST_LIMB(0x109b79a654c00000), CNST_LIMB(0xed46bc50ce59712a) }, + /* 45 */ { 11, CNST_LIMB(0x2e9d500984041dbd), CNST_LIMB(0xafbd42b465836767), CNST_LIMB(0x1543beff214c8b95), CNST_LIMB(0x813d97e2c89b8d46) }, + /* 46 */ { 11, CNST_LIMB(0x2e58cec05a6a8144), CNST_LIMB(0xb0c10500d63aa658), CNST_LIMB(0x1b149a79459a3800), CNST_LIMB(0x2e81751956af8083) }, + /* 47 */ { 11, CNST_LIMB(0x2e1688743ef9104c), CNST_LIMB(0xb1bf311e95d00de3), CNST_LIMB(0x224edfb5434a830f), CNST_LIMB(0xdd8e0a95e30c0988) }, + /* 48 */ { 11, CNST_LIMB(0x2dd65df7a583598f), CNST_LIMB(0xb2b803473f7ad0f3), CNST_LIMB(0x2b3fb00000000000), CNST_LIMB(0x7ad4dd48a0b5b167) }, + /* 49 */ { 11, CNST_LIMB(0x2d9832759d5369c4), CNST_LIMB(0xb3abb3faa02166cc), CNST_LIMB(0x3642798750226111), CNST_LIMB(0x2df495ccaa57147b) }, + /* 50 */ { 11, CNST_LIMB(0x2d5beb38dcd1394c), CNST_LIMB(0xb49a784bcd1b8afe), CNST_LIMB(0x43c33c1937564800), CNST_LIMB(0xe392010175ee5962) }, + /* 51 */ { 11, CNST_LIMB(0x2d216f7943e2ba6a), CNST_LIMB(0xb5848226989d33c3), CNST_LIMB(0x54411b2441c3cd8b), CNST_LIMB(0x84eaf11b2fe7738e) }, + /* 52 */ { 11, CNST_LIMB(0x2ce8a82efbb3ff2c), CNST_LIMB(0xb66a008e4788cbcd), CNST_LIMB(0x6851455acd400000), CNST_LIMB(0x3a1e3971e008995d) }, + /* 53 */ { 11, CNST_LIMB(0x2cb17fea7ad7e332), CNST_LIMB(0xb74b1fd64e0753c6), CNST_LIMB(0x80a23b117c8feb6d), CNST_LIMB(0xfd7a462344ffce25) }, + /* 54 */ { 11, CNST_LIMB(0x2c7be2b0cfa1ba50), CNST_LIMB(0xb82809d5be7072db), CNST_LIMB(0x9dff7d32d5dc1800), CNST_LIMB(0x9eca40b40ebcef8a) }, + /* 55 */ { 11, CNST_LIMB(0x2c47bddba92d7463), CNST_LIMB(0xb900e6160002ccfe), CNST_LIMB(0xc155af6faeffe6a7), CNST_LIMB(0x52fa161a4a48e43d) }, + /* 56 */ { 11, CNST_LIMB(0x2c14fffcaa8b131e), CNST_LIMB(0xb9d5d9fd5010b366), CNST_LIMB(0xebb7392e00000000), CNST_LIMB(0x1607a2cbacf930c1) }, + /* 57 */ { 10, CNST_LIMB(0x2be398c3a38be053), CNST_LIMB(0xbaa708f58014d37c), CNST_LIMB(0x50633659656d971), CNST_LIMB(0x97a014f8e3be55f1) }, + /* 58 */ { 10, CNST_LIMB(0x2bb378e758451068), CNST_LIMB(0xbb74948f5532da4b), CNST_LIMB(0x5fa8624c7fba400), CNST_LIMB(0x568df8b76cbf212c) }, + /* 59 */ { 10, CNST_LIMB(0x2b8492108be5e5f7), CNST_LIMB(0xbc3e9ca2e1a05533), CNST_LIMB(0x717d9faa73c5679), CNST_LIMB(0x20ba7c4b4e6ef492) }, + /* 60 */ { 10, CNST_LIMB(0x2b56d6c70d55481b), CNST_LIMB(0xbd053f6d26089673), CNST_LIMB(0x86430aac6100000), CNST_LIMB(0xe81ee46b9ef492f5) }, + /* 61 */ { 10, CNST_LIMB(0x2b2a3a608c72ddd5), CNST_LIMB(0xbdc899ab3ff56c5e), CNST_LIMB(0x9e64d9944b57f29), CNST_LIMB(0x9dc0d10d51940416) }, + /* 62 */ { 10, CNST_LIMB(0x2afeb0f1060c7e41), CNST_LIMB(0xbe88c6b3626a72aa), CNST_LIMB(0xba5ca5392cb0400), CNST_LIMB(0x5fa8ed2f450272a5) }, + /* 63 */ { 10, CNST_LIMB(0x2ad42f3c9aca595c), CNST_LIMB(0xbf45e08bcf06554e), CNST_LIMB(0xdab2ce1d022cd81), CNST_LIMB(0x2ba9eb8c5e04e641) }, + /* 64 */ { 10, CNST_LIMB(0x2aaaaaaaaaaaaaaa), CNST_LIMB(0xbfffffffffffffff), CNST_LIMB(0x6), CNST_LIMB(0x0) }, + /* 65 */ { 10, CNST_LIMB(0x2a82193a13425883), CNST_LIMB(0xc0b73cb42e16914c), CNST_LIMB(0x12aeed5fd3e2d281), CNST_LIMB(0xb67759cc00287bf1) }, + /* 66 */ { 10, CNST_LIMB(0x2a5a717672f66450), CNST_LIMB(0xc16bad3758efd873), CNST_LIMB(0x15c3da1572d50400), CNST_LIMB(0x78621feeb7f4ed33) }, + /* 67 */ { 10, CNST_LIMB(0x2a33aa6e56d9c71c), CNST_LIMB(0xc21d6713f453f356), CNST_LIMB(0x194c05534f75ee29), CNST_LIMB(0x43d55b5f72943bc0) }, + /* 68 */ { 10, CNST_LIMB(0x2a0dbbaa3bdfcea4), CNST_LIMB(0xc2cc7edf592262cf), CNST_LIMB(0x1d56299ada100000), CNST_LIMB(0x173decb64d1d4409) }, + /* 69 */ { 10, CNST_LIMB(0x29e89d244eb4bfaf), CNST_LIMB(0xc379084815b5774c), CNST_LIMB(0x21f2a089a4ff4f79), CNST_LIMB(0xe29fb54fd6b6074f) }, + /* 70 */ { 10, CNST_LIMB(0x29c44740d7db51e6), CNST_LIMB(0xc4231623369e78e5), CNST_LIMB(0x2733896c68d9a400), CNST_LIMB(0xa1f1f5c210d54e62) }, + /* 71 */ { 10, CNST_LIMB(0x29a0b2c743b14d74), CNST_LIMB(0xc4caba789e2b8687), CNST_LIMB(0x2d2cf2c33b533c71), CNST_LIMB(0x6aac7f9bfafd57b2) }, + /* 72 */ { 10, CNST_LIMB(0x297dd8dbb7c22a2d), CNST_LIMB(0xc570068e7ef5a1e7), CNST_LIMB(0x33f506e440000000), CNST_LIMB(0x3b563c2478b72ee2) }, + /* 73 */ { 10, CNST_LIMB(0x295bb2f9285c8c1b), CNST_LIMB(0xc6130af40bc0ecbf), CNST_LIMB(0x3ba43bec1d062211), CNST_LIMB(0x12b536b574e92d1b) }, + /* 74 */ { 10, CNST_LIMB(0x293a3aebe2be1c92), CNST_LIMB(0xc6b3d78b6d3b24fb), CNST_LIMB(0x4455872d8fd4e400), CNST_LIMB(0xdf86c03020404fa5) }, + /* 75 */ { 10, CNST_LIMB(0x29196acc815ebd9f), CNST_LIMB(0xc7527b930c965bf2), CNST_LIMB(0x4e2694539f2f6c59), CNST_LIMB(0xa34adf02234eea8e) }, + /* 76 */ { 10, CNST_LIMB(0x28f93cfb40f5c22a), CNST_LIMB(0xc7ef05ae409a0288), CNST_LIMB(0x5938006c18900000), CNST_LIMB(0x6f46eb8574eb59dd) }, + /* 77 */ { 10, CNST_LIMB(0x28d9ac1badc64117), CNST_LIMB(0xc88983ed6985bae5), CNST_LIMB(0x65ad9912474aa649), CNST_LIMB(0x42459b481df47cec) }, + /* 78 */ { 10, CNST_LIMB(0x28bab310a196b478), CNST_LIMB(0xc92203d587039cc1), CNST_LIMB(0x73ae9ff4241ec400), CNST_LIMB(0x1b424b95d80ca505) }, + /* 79 */ { 10, CNST_LIMB(0x289c4cf88b774469), CNST_LIMB(0xc9b892675266f66c), CNST_LIMB(0x836612ee9c4ce1e1), CNST_LIMB(0xf2c1b982203a0dac) }, + /* 80 */ { 10, CNST_LIMB(0x287e7529fb244e91), CNST_LIMB(0xca4d3c25e68dc57f), CNST_LIMB(0x9502f90000000000), CNST_LIMB(0xb7cdfd9d7bdbab7d) }, + /* 81 */ { 10, CNST_LIMB(0x286127306a6a7a53), CNST_LIMB(0xcae00d1cfdeb43cf), CNST_LIMB(0xa8b8b452291fe821), CNST_LIMB(0x846d550e37b5063d) }, + /* 82 */ { 10, CNST_LIMB(0x28445ec93f792b1e), CNST_LIMB(0xcb7110e6ce866f2b), CNST_LIMB(0xbebf59a07dab4400), CNST_LIMB(0x57931eeaf85cf64f) }, + /* 83 */ { 10, CNST_LIMB(0x282817e1038950fa), CNST_LIMB(0xcc0052b18b0e2a19), CNST_LIMB(0xd7540d4093bc3109), CNST_LIMB(0x305a944507c82f47) }, + /* 84 */ { 10, CNST_LIMB(0x280c4e90c9ab1f45), CNST_LIMB(0xcc8ddd448f8b845a), CNST_LIMB(0xf2b96616f1900000), CNST_LIMB(0xe007ccc9c22781a) }, + /* 85 */ { 9, CNST_LIMB(0x27f0ff1bc1ee87cd), CNST_LIMB(0xcd19bb053fb0284e), CNST_LIMB(0x336de62af2bca35), CNST_LIMB(0x3e92c42e000eeed4) }, + /* 86 */ { 9, CNST_LIMB(0x27d625ecf571c340), CNST_LIMB(0xcda3f5fb9c415052), CNST_LIMB(0x39235ec33d49600), CNST_LIMB(0x1ebe59130db2795e) }, + /* 87 */ { 9, CNST_LIMB(0x27bbbf95282fcd45), CNST_LIMB(0xce2c97d694adab3f), CNST_LIMB(0x3f674e539585a17), CNST_LIMB(0x268859e90f51b89) }, + /* 88 */ { 9, CNST_LIMB(0x27a1c8c8ddaf84da), CNST_LIMB(0xceb3a9f01975077f), CNST_LIMB(0x4645b6958000000), CNST_LIMB(0xd24cde0463108cfa) }, + /* 89 */ { 9, CNST_LIMB(0x27883e5e7df3f518), CNST_LIMB(0xcf393550f3aa6906), CNST_LIMB(0x4dcb74afbc49c19), CNST_LIMB(0xa536009f37adc383) }, + /* 90 */ { 9, CNST_LIMB(0x276f1d4c9847e90e), CNST_LIMB(0xcfbd42b465836767), CNST_LIMB(0x56064e1d18d9a00), CNST_LIMB(0x7cea06ce1c9ace10) }, + /* 91 */ { 9, CNST_LIMB(0x275662a841b30191), CNST_LIMB(0xd03fda8b97997f33), CNST_LIMB(0x5f04fe2cd8a39fb), CNST_LIMB(0x58db032e72e8ba43) }, + /* 92 */ { 9, CNST_LIMB(0x273e0ba38d15a47b), CNST_LIMB(0xd0c10500d63aa658), CNST_LIMB(0x68d74421f5c0000), CNST_LIMB(0x388cc17cae105447) }, + /* 93 */ { 9, CNST_LIMB(0x2726158c1b13cf03), CNST_LIMB(0xd140c9faa1e5439e), CNST_LIMB(0x738df1f6ab4827d), CNST_LIMB(0x1b92672857620ce0) }, + /* 94 */ { 9, CNST_LIMB(0x270e7dc9c01d8e9b), CNST_LIMB(0xd1bf311e95d00de3), CNST_LIMB(0x7f3afbc9cfb5e00), CNST_LIMB(0x18c6a9575c2ade4) }, + /* 95 */ { 9, CNST_LIMB(0x26f741dd3f070d61), CNST_LIMB(0xd23c41d42727c808), CNST_LIMB(0x8bf187fba88f35f), CNST_LIMB(0xd44da7da8e44b24f) }, + /* 96 */ { 9, CNST_LIMB(0x26e05f5f16c2159e), CNST_LIMB(0xd2b803473f7ad0f3), CNST_LIMB(0x99c600000000000), CNST_LIMB(0xaa2f78f1b4cc6794) }, + /* 97 */ { 9, CNST_LIMB(0x26c9d3fe61e80598), CNST_LIMB(0xd3327c6ab49ca6c8), CNST_LIMB(0xa8ce21eb6531361), CNST_LIMB(0x843c067d091ee4cc) }, + /* 98 */ { 9, CNST_LIMB(0x26b39d7fc6ddab08), CNST_LIMB(0xd3abb3faa02166cc), CNST_LIMB(0xb92112c1a0b6200), CNST_LIMB(0x62005e1e913356e3) }, + /* 99 */ { 9, CNST_LIMB(0x269db9bc7772a5cc), CNST_LIMB(0xd423b07e986aa967), CNST_LIMB(0xcad7718b8747c43), CNST_LIMB(0x4316eed01dedd518) }, + /* 100 */ { 9, CNST_LIMB(0x268826a13ef3fde6), CNST_LIMB(0xd49a784bcd1b8afe), CNST_LIMB(0xde0b6b3a7640000), CNST_LIMB(0x2725dd1d243aba0e) }, + /* 101 */ { 9, CNST_LIMB(0x2672e22d9dbdbd9f), CNST_LIMB(0xd510118708a8f8dd), CNST_LIMB(0xf2d8cf5fe6d74c5), CNST_LIMB(0xddd9057c24cb54f) }, + /* 102 */ { 9, CNST_LIMB(0x265dea72f169cc99), CNST_LIMB(0xd5848226989d33c3), CNST_LIMB(0x1095d25bfa712600), CNST_LIMB(0xedeee175a736d2a1) }, + /* 103 */ { 9, CNST_LIMB(0x26493d93a8cb2514), CNST_LIMB(0xd5f7cff41e09aeb8), CNST_LIMB(0x121b7c4c3698faa7), CNST_LIMB(0xc4699f3df8b6b328) }, + /* 104 */ { 9, CNST_LIMB(0x2634d9c282f3ef82), CNST_LIMB(0xd66a008e4788cbcd), CNST_LIMB(0x13c09e8d68000000), CNST_LIMB(0x9ebbe7d859cb5a7c) }, + /* 105 */ { 9, CNST_LIMB(0x2620bd41d8933adc), CNST_LIMB(0xd6db196a761949d9), CNST_LIMB(0x15876ccb0b709ca9), CNST_LIMB(0x7c828b9887eb2179) }, + /* 106 */ { 9, CNST_LIMB(0x260ce662ef04088a), CNST_LIMB(0xd74b1fd64e0753c6), CNST_LIMB(0x17723c2976da2a00), CNST_LIMB(0x5d652ab99001adcf) }, + /* 107 */ { 9, CNST_LIMB(0x25f95385547353fd), CNST_LIMB(0xd7ba18f93502e409), CNST_LIMB(0x198384e9c259048b), CNST_LIMB(0x4114f1754e5d7b32) }, + /* 108 */ { 9, CNST_LIMB(0x25e60316448db8e1), CNST_LIMB(0xd82809d5be7072db), CNST_LIMB(0x1bbde41dfeec0000), CNST_LIMB(0x274b7c902f7e0188) }, + /* 109 */ { 9, CNST_LIMB(0x25d2f390152f74f5), CNST_LIMB(0xd894f74b06ef8b40), CNST_LIMB(0x1e241d6e3337910d), CNST_LIMB(0xfc9e0fbb32e210c) }, + /* 110 */ { 9, CNST_LIMB(0x25c02379aa9ad043), CNST_LIMB(0xd900e6160002ccfe), CNST_LIMB(0x20b91cee9901ee00), CNST_LIMB(0xf4afa3e594f8ea1f) }, + /* 111 */ { 9, CNST_LIMB(0x25ad9165f2c18907), CNST_LIMB(0xd96bdad2acb5f5ef), CNST_LIMB(0x237ff9079863dfef), CNST_LIMB(0xcd85c32e9e4437b0) }, + /* 112 */ { 9, CNST_LIMB(0x259b3bf36735c90c), CNST_LIMB(0xd9d5d9fd5010b366), CNST_LIMB(0x267bf47000000000), CNST_LIMB(0xa9bbb147e0dd92a8) }, + /* 113 */ { 9, CNST_LIMB(0x258921cb955e7693), CNST_LIMB(0xda3ee7f38e181ed0), CNST_LIMB(0x29b08039fbeda7f1), CNST_LIMB(0x8900447b70e8eb82) }, + /* 114 */ { 9, CNST_LIMB(0x257741a2ac9170af), CNST_LIMB(0xdaa708f58014d37c), CNST_LIMB(0x2d213df34f65f200), CNST_LIMB(0x6b0a92adaad5848a) }, + /* 115 */ { 9, CNST_LIMB(0x25659a3711bc827d), CNST_LIMB(0xdb0e4126bcc86bd7), CNST_LIMB(0x30d201d957a7c2d3), CNST_LIMB(0x4f990ad8740f0ee5) }, + /* 116 */ { 9, CNST_LIMB(0x25542a50f84b9c39), CNST_LIMB(0xdb74948f5532da4b), CNST_LIMB(0x34c6d52160f40000), CNST_LIMB(0x3670a9663a8d3610) }, + /* 117 */ { 9, CNST_LIMB(0x2542f0c20000377d), CNST_LIMB(0xdbda071cc67e6db5), CNST_LIMB(0x3903f855d8f4c755), CNST_LIMB(0x1f5c44188057be3c) }, + /* 118 */ { 9, CNST_LIMB(0x2531ec64d772bd64), CNST_LIMB(0xdc3e9ca2e1a05533), CNST_LIMB(0x3d8de5c8ec59b600), CNST_LIMB(0xa2bea956c4e4977) }, + /* 119 */ { 9, CNST_LIMB(0x25211c1ce2fb5a6e), CNST_LIMB(0xdca258dca9331635), CNST_LIMB(0x4269541d1ff01337), CNST_LIMB(0xed68b23033c3637e) }, + /* 120 */ { 9, CNST_LIMB(0x25107ed5e7c3ec3b), CNST_LIMB(0xdd053f6d26089673), CNST_LIMB(0x479b38e478000000), CNST_LIMB(0xc99cf624e50549c5) }, + /* 121 */ { 9, CNST_LIMB(0x25001383bac8a744), CNST_LIMB(0xdd6753e032ea0efe), CNST_LIMB(0x4d28cb56c33fa539), CNST_LIMB(0xa8adf7ae45e7577b) }, + /* 122 */ { 9, CNST_LIMB(0x24efd921f390bce3), CNST_LIMB(0xddc899ab3ff56c5e), CNST_LIMB(0x5317871fa13aba00), CNST_LIMB(0x8a5bc740b1c113e5) }, + /* 123 */ { 9, CNST_LIMB(0x24dfceb3a26bb203), CNST_LIMB(0xde29142e0e01401f), CNST_LIMB(0x596d2f44de9fa71b), CNST_LIMB(0x6e6c7efb81cfbb9b) }, + /* 124 */ { 9, CNST_LIMB(0x24cff3430a0341a7), CNST_LIMB(0xde88c6b3626a72aa), CNST_LIMB(0x602fd125c47c0000), CNST_LIMB(0x54aba5c5cada5f10) }, + /* 125 */ { 9, CNST_LIMB(0x24c045e15c149931), CNST_LIMB(0xdee7b471b3a9507d), CNST_LIMB(0x6765c793fa10079d), CNST_LIMB(0x3ce9a36f23c0fc90) }, + /* 126 */ { 9, CNST_LIMB(0x24b0c5a679267ae2), CNST_LIMB(0xdf45e08bcf06554e), CNST_LIMB(0x6f15be069b847e00), CNST_LIMB(0x26fb43de2c8cd2a8) }, + /* 127 */ { 9, CNST_LIMB(0x24a171b0b31461c8), CNST_LIMB(0xdfa34e1177c23362), CNST_LIMB(0x7746b3e82a77047f), CNST_LIMB(0x12b94793db8486a1) }, + /* 128 */ { 9, CNST_LIMB(0x2492492492492492), CNST_LIMB(0xdfffffffffffffff), CNST_LIMB(0x7), CNST_LIMB(0x0) }, + /* 129 */ { 9, CNST_LIMB(0x24834b2c9d85cdfe), CNST_LIMB(0xe05bf942dbbc2145), CNST_LIMB(0x894953f7ea890481), CNST_LIMB(0xdd5deca404c0156d) }, + /* 130 */ { 9, CNST_LIMB(0x247476f924137501), CNST_LIMB(0xe0b73cb42e16914c), CNST_LIMB(0x932abffea4848200), CNST_LIMB(0xbd51373330291de0) }, + /* 131 */ { 9, CNST_LIMB(0x2465cbc00a40cec0), CNST_LIMB(0xe111cd1d5133412e), CNST_LIMB(0x9dacb687d3d6a163), CNST_LIMB(0x9fa4025d66f23085) }, + /* 132 */ { 9, CNST_LIMB(0x245748bc980e0427), CNST_LIMB(0xe16bad3758efd873), CNST_LIMB(0xa8d8102a44840000), CNST_LIMB(0x842530ee2db4949d) }, + /* 133 */ { 9, CNST_LIMB(0x2448ed2f49eb0633), CNST_LIMB(0xe1c4dfab90aab5ef), CNST_LIMB(0xb4b60f9d140541e5), CNST_LIMB(0x6aa7f2766b03dc25) }, + /* 134 */ { 9, CNST_LIMB(0x243ab85da36e3167), CNST_LIMB(0xe21d6713f453f356), CNST_LIMB(0xc15065d4856e4600), CNST_LIMB(0x53035ba7ebf32e8d) }, + /* 135 */ { 9, CNST_LIMB(0x242ca99203ea8c18), CNST_LIMB(0xe27545fba4fe385a), CNST_LIMB(0xceb1363f396d23c7), CNST_LIMB(0x3d12091fc9fb4914) }, + /* 136 */ { 9, CNST_LIMB(0x241ec01b7cce4ea0), CNST_LIMB(0xe2cc7edf592262cf), CNST_LIMB(0xdce31b2488000000), CNST_LIMB(0x28b1cb81b1ef1849) }, + /* 137 */ { 9, CNST_LIMB(0x2410fb4da9b3b0fc), CNST_LIMB(0xe323142dc8c66b55), CNST_LIMB(0xebf12a24bca135c9), CNST_LIMB(0x15c35be67ae3e2c9) }, + /* 138 */ { 9, CNST_LIMB(0x24035a808a0f315e), CNST_LIMB(0xe379084815b5774c), CNST_LIMB(0xfbe6f8dbf88f4a00), CNST_LIMB(0x42a17bd09be1ff0) }, + /* 139 */ { 8, CNST_LIMB(0x23f5dd105c67ab9d), CNST_LIMB(0xe3ce5d822ff4b643), CNST_LIMB(0x1ef156c084ce761), CNST_LIMB(0x8bf461f03cf0bbf) }, + /* 140 */ { 8, CNST_LIMB(0x23e8825d7b05abb1), CNST_LIMB(0xe4231623369e78e5), CNST_LIMB(0x20c4e3b94a10000), CNST_LIMB(0xf3fbb43f68a32d05) }, + /* 141 */ { 8, CNST_LIMB(0x23db49cc3a0866fe), CNST_LIMB(0xe4773465d54aded7), CNST_LIMB(0x22b0695a08ba421), CNST_LIMB(0xd84f44c48564dc19) }, + /* 142 */ { 8, CNST_LIMB(0x23ce32c4c6cfb9f5), CNST_LIMB(0xe4caba789e2b8687), CNST_LIMB(0x24b4f35d7a4c100), CNST_LIMB(0xbe58ebcce7956abe) }, + /* 143 */ { 8, CNST_LIMB(0x23c13cb308ab6ab7), CNST_LIMB(0xe51daa7e60fdd34c), CNST_LIMB(0x26d397284975781), CNST_LIMB(0xa5fac463c7c134b7) }, + /* 144 */ { 8, CNST_LIMB(0x23b4670682c0c709), CNST_LIMB(0xe570068e7ef5a1e7), CNST_LIMB(0x290d74100000000), CNST_LIMB(0x8f19241e28c7d757) }, + /* 145 */ { 8, CNST_LIMB(0x23a7b13237187c8b), CNST_LIMB(0xe5c1d0b53bc09fca), CNST_LIMB(0x2b63b3a37866081), CNST_LIMB(0x799a6d046c0ae1ae) }, + /* 146 */ { 8, CNST_LIMB(0x239b1aac8ac74728), CNST_LIMB(0xe6130af40bc0ecbf), CNST_LIMB(0x2dd789f4d894100), CNST_LIMB(0x6566e37d746a9e40) }, + /* 147 */ { 8, CNST_LIMB(0x238ea2ef2b24c379), CNST_LIMB(0xe663b741df9c37c0), CNST_LIMB(0x306a35e51b58721), CNST_LIMB(0x526887dbfb5f788f) }, + /* 148 */ { 8, CNST_LIMB(0x23824976f4045a26), CNST_LIMB(0xe6b3d78b6d3b24fb), CNST_LIMB(0x331d01712e10000), CNST_LIMB(0x408af3382b8efd3d) }, + /* 149 */ { 8, CNST_LIMB(0x23760dc3d6e4d729), CNST_LIMB(0xe7036db376537b90), CNST_LIMB(0x35f14200a827c61), CNST_LIMB(0x2fbb374806ec05f1) }, + /* 150 */ { 8, CNST_LIMB(0x2369ef58c30bd43e), CNST_LIMB(0xe7527b930c965bf2), CNST_LIMB(0x38e858b62216100), CNST_LIMB(0x1fe7c0f0afce87fe) }, + /* 151 */ { 8, CNST_LIMB(0x235dedbb8e82aa1c), CNST_LIMB(0xe7a102f9d39a9331), CNST_LIMB(0x3c03b2c13176a41), CNST_LIMB(0x11003d517540d32e) }, + /* 152 */ { 8, CNST_LIMB(0x23520874dfeb1ffd), CNST_LIMB(0xe7ef05ae409a0288), CNST_LIMB(0x3f44c9b21000000), CNST_LIMB(0x2f5810f98eff0dc) }, + /* 153 */ { 8, CNST_LIMB(0x23463f1019228dd7), CNST_LIMB(0xe83c856dd81804b7), CNST_LIMB(0x42ad23cef3113c1), CNST_LIMB(0xeb72e35e7840d910) }, + /* 154 */ { 8, CNST_LIMB(0x233a911b42aa9b3c), CNST_LIMB(0xe88983ed6985bae5), CNST_LIMB(0x463e546b19a2100), CNST_LIMB(0xd27de19593dc3614) }, + /* 155 */ { 8, CNST_LIMB(0x232efe26f7cf33f9), CNST_LIMB(0xe8d602d948f83829), CNST_LIMB(0x49f9fc3f96684e1), CNST_LIMB(0xbaf391fd3e5e6fc2) }, + /* 156 */ { 8, CNST_LIMB(0x232385c65381b485), CNST_LIMB(0xe92203d587039cc1), CNST_LIMB(0x4de1c9c5dc10000), CNST_LIMB(0xa4bd38c55228c81d) }, + /* 157 */ { 8, CNST_LIMB(0x2318278edde1b39b), CNST_LIMB(0xe96d887e26cd57b7), CNST_LIMB(0x51f77994116d2a1), CNST_LIMB(0x8fc5a8de8e1de782) }, + /* 158 */ { 8, CNST_LIMB(0x230ce3187a6c2be9), CNST_LIMB(0xe9b892675266f66c), CNST_LIMB(0x563cd6bb3398100), CNST_LIMB(0x7bf9265bea9d3a3b) }, + /* 159 */ { 8, CNST_LIMB(0x2301b7fd56ca21bb), CNST_LIMB(0xea03231d8d8224ba), CNST_LIMB(0x5ab3bb270beeb01), CNST_LIMB(0x69454b325983dccd) }, + /* 160 */ { 8, CNST_LIMB(0x22f6a5d9da38341c), CNST_LIMB(0xea4d3c25e68dc57f), CNST_LIMB(0x5f5e10000000000), CNST_LIMB(0x5798ee2308c39df9) }, + /* 161 */ { 8, CNST_LIMB(0x22ebac4c9580d89f), CNST_LIMB(0xea96defe264b59be), CNST_LIMB(0x643dce0ec16f501), CNST_LIMB(0x46e40ba0fa66a753) }, + /* 162 */ { 8, CNST_LIMB(0x22e0caf633834beb), CNST_LIMB(0xeae00d1cfdeb43cf), CNST_LIMB(0x6954fe21e3e8100), CNST_LIMB(0x3717b0870b0db3a7) }, + /* 163 */ { 8, CNST_LIMB(0x22d601796a418886), CNST_LIMB(0xeb28c7f233bdd372), CNST_LIMB(0x6ea5b9755f440a1), CNST_LIMB(0x2825e6775d11cdeb) }, + /* 164 */ { 8, CNST_LIMB(0x22cb4f7aec6fd8b4), CNST_LIMB(0xeb7110e6ce866f2b), CNST_LIMB(0x74322a1c0410000), CNST_LIMB(0x1a01a1c09d1b4dac) }, + /* 165 */ { 8, CNST_LIMB(0x22c0b4a15b80d83e), CNST_LIMB(0xebb8e95d3f7d9df2), CNST_LIMB(0x79fc8b6ae8a46e1), CNST_LIMB(0xc9eb0a8bebc8f3e) }, + /* 166 */ { 8, CNST_LIMB(0x22b630953a28f77a), CNST_LIMB(0xec0052b18b0e2a19), CNST_LIMB(0x80072a66d512100), CNST_LIMB(0xffe357ff59e6a004) }, + /* 167 */ { 8, CNST_LIMB(0x22abc300df54ca7c), CNST_LIMB(0xec474e39705912d2), CNST_LIMB(0x86546633b42b9c1), CNST_LIMB(0xe7dfd1be05fa61a8) }, + /* 168 */ { 8, CNST_LIMB(0x22a16b90698da5d2), CNST_LIMB(0xec8ddd448f8b845a), CNST_LIMB(0x8ce6b0861000000), CNST_LIMB(0xd11ed6fc78f760e5) }, + /* 169 */ { 8, CNST_LIMB(0x229729f1b2c83ded), CNST_LIMB(0xecd4011c8f11979a), CNST_LIMB(0x93c08e16a022441), CNST_LIMB(0xbb8db609dd29ebfe) }, + /* 170 */ { 8, CNST_LIMB(0x228cfdd444992f78), CNST_LIMB(0xed19bb053fb0284e), CNST_LIMB(0x9ae49717f026100), CNST_LIMB(0xa71aec8d1813d532) }, + /* 171 */ { 8, CNST_LIMB(0x2282e6e94ccb8588), CNST_LIMB(0xed5f0c3cbf8fa470), CNST_LIMB(0xa25577ae24c1a61), CNST_LIMB(0x93b612a9f20fbc02) }, + /* 172 */ { 8, CNST_LIMB(0x2278e4e392557ecf), CNST_LIMB(0xeda3f5fb9c415052), CNST_LIMB(0xaa15f068e610000), CNST_LIMB(0x814fc7b19a67d317) }, + /* 173 */ { 8, CNST_LIMB(0x226ef7776aa7fd29), CNST_LIMB(0xede87974f3c81855), CNST_LIMB(0xb228d6bf7577921), CNST_LIMB(0x6fd9a03f2e0a4b7c) }, + /* 174 */ { 8, CNST_LIMB(0x22651e5aaf5532d0), CNST_LIMB(0xee2c97d694adab3f), CNST_LIMB(0xba91158ef5c4100), CNST_LIMB(0x5f4615a38d0d316e) }, + /* 175 */ { 8, CNST_LIMB(0x225b5944b40b4694), CNST_LIMB(0xee7052491d2c3e64), CNST_LIMB(0xc351ad9aec0b681), CNST_LIMB(0x4f8876863479a286) }, + /* 176 */ { 8, CNST_LIMB(0x2251a7ee3cdfcca5), CNST_LIMB(0xeeb3a9f01975077f), CNST_LIMB(0xcc6db6100000000), CNST_LIMB(0x4094d8a3041b60eb) }, + /* 177 */ { 8, CNST_LIMB(0x22480a1174e913d9), CNST_LIMB(0xeef69fea211b2627), CNST_LIMB(0xd5e85d09025c181), CNST_LIMB(0x32600b8ed883a09b) }, + /* 178 */ { 8, CNST_LIMB(0x223e7f69e522683c), CNST_LIMB(0xef393550f3aa6906), CNST_LIMB(0xdfc4e816401c100), CNST_LIMB(0x24df8c6eb4b6d1f1) }, + /* 179 */ { 8, CNST_LIMB(0x223507b46b988abe), CNST_LIMB(0xef7b6b399471103e), CNST_LIMB(0xea06b4c72947221), CNST_LIMB(0x18097a8ee151acef) }, + /* 180 */ { 8, CNST_LIMB(0x222ba2af32dbbb9e), CNST_LIMB(0xefbd42b465836767), CNST_LIMB(0xf4b139365210000), CNST_LIMB(0xbd48cc8ec1cd8e3) }, + /* 181 */ { 8, CNST_LIMB(0x22225019a9b4d16c), CNST_LIMB(0xeffebccd41ffcd5c), CNST_LIMB(0xffc80497d520961), CNST_LIMB(0x3807a8d67485fb) }, + /* 182 */ { 8, CNST_LIMB(0x22190fb47b1af172), CNST_LIMB(0xf03fda8b97997f33), CNST_LIMB(0x10b4ebfca1dee100), CNST_LIMB(0xea5768860b62e8d8) }, + /* 183 */ { 8, CNST_LIMB(0x220fe14186679801), CNST_LIMB(0xf0809cf27f703d52), CNST_LIMB(0x117492de921fc141), CNST_LIMB(0xd54faf5b635c5005) }, + /* 184 */ { 8, CNST_LIMB(0x2206c483d7c6b786), CNST_LIMB(0xf0c10500d63aa658), CNST_LIMB(0x123bb2ce41000000), CNST_LIMB(0xc14a56233a377926) }, + /* 185 */ { 8, CNST_LIMB(0x21fdb93fa0e0ccc5), CNST_LIMB(0xf10113b153c8ea7b), CNST_LIMB(0x130a8b6157bdecc1), CNST_LIMB(0xae39a88db7cd329f) }, + /* 186 */ { 8, CNST_LIMB(0x21f4bf3a31bcdcaa), CNST_LIMB(0xf140c9faa1e5439e), CNST_LIMB(0x13e15dede0e8a100), CNST_LIMB(0x9c10bde69efa7ab6) }, + /* 187 */ { 8, CNST_LIMB(0x21ebd639f1d86584), CNST_LIMB(0xf18028cf72976a4e), CNST_LIMB(0x14c06d941c0ca7e1), CNST_LIMB(0x8ac36c42a2836497) }, + /* 188 */ { 8, CNST_LIMB(0x21e2fe06597361a6), CNST_LIMB(0xf1bf311e95d00de3), CNST_LIMB(0x15a7ff487a810000), CNST_LIMB(0x7a463c8b84f5ef67) }, + /* 189 */ { 8, CNST_LIMB(0x21da3667eb0e8ccb), CNST_LIMB(0xf1fde3d30e812642), CNST_LIMB(0x169859ddc5c697a1), CNST_LIMB(0x6a8e5f5ad090fd4b) }, + /* 190 */ { 8, CNST_LIMB(0x21d17f282d1a300e), CNST_LIMB(0xf23c41d42727c808), CNST_LIMB(0x1791c60f6fed0100), CNST_LIMB(0x5b91a2943596fc56) }, + /* 191 */ { 8, CNST_LIMB(0x21c8d811a3d3c9e1), CNST_LIMB(0xf27a4c0585cbf805), CNST_LIMB(0x18948e8c0e6fba01), CNST_LIMB(0x4d4667b1c468e8f0) }, + /* 192 */ { 8, CNST_LIMB(0x21c040efcb50f858), CNST_LIMB(0xf2b803473f7ad0f3), CNST_LIMB(0x19a1000000000000), CNST_LIMB(0x3fa39ab547994daf) }, + /* 193 */ { 8, CNST_LIMB(0x21b7b98f11b61c1a), CNST_LIMB(0xf2f56875eb3f2614), CNST_LIMB(0x1ab769203dafc601), CNST_LIMB(0x32a0a9b2faee1e2a) }, + /* 194 */ { 8, CNST_LIMB(0x21af41bcd19739ba), CNST_LIMB(0xf3327c6ab49ca6c8), CNST_LIMB(0x1bd81ab557f30100), CNST_LIMB(0x26357ceac0e96962) }, + /* 195 */ { 8, CNST_LIMB(0x21a6d9474c81adf0), CNST_LIMB(0xf36f3ffb6d916240), CNST_LIMB(0x1d0367a69fed1ba1), CNST_LIMB(0x1a5a6f65caa5859e) }, + /* 196 */ { 8, CNST_LIMB(0x219e7ffda5ad572a), CNST_LIMB(0xf3abb3faa02166cc), CNST_LIMB(0x1e39a5057d810000), CNST_LIMB(0xf08480f672b4e86) }, + /* 197 */ { 8, CNST_LIMB(0x219635afdcd3e46d), CNST_LIMB(0xf3e7d9379f70166a), CNST_LIMB(0x1f7b2a18f29ac3e1), CNST_LIMB(0x4383340615612ca) }, + /* 198 */ { 8, CNST_LIMB(0x218dfa2ec92d0643), CNST_LIMB(0xf423b07e986aa967), CNST_LIMB(0x20c850694c2aa100), CNST_LIMB(0xf3c77969ee4be5a2) }, + /* 199 */ { 8, CNST_LIMB(0x2185cd4c148e4ae2), CNST_LIMB(0xf45f3a98a20738a4), CNST_LIMB(0x222173cc014980c1), CNST_LIMB(0xe00993cc187c5ec9) }, + /* 200 */ { 8, CNST_LIMB(0x217daeda36ad7a5c), CNST_LIMB(0xf49a784bcd1b8afe), CNST_LIMB(0x2386f26fc1000000), CNST_LIMB(0xcd2b297d889bc2b6) }, + /* 201 */ { 8, CNST_LIMB(0x21759eac708452fe), CNST_LIMB(0xf4d56a5b33cec44a), CNST_LIMB(0x24f92ce8af296d41), CNST_LIMB(0xbb214d5064862b22) }, + /* 202 */ { 8, CNST_LIMB(0x216d9c96c7d490d4), CNST_LIMB(0xf510118708a8f8dd), CNST_LIMB(0x2678863cd0ece100), CNST_LIMB(0xa9e1a7ca7ea10e20) }, + /* 203 */ { 8, CNST_LIMB(0x2165a86e02cb358c), CNST_LIMB(0xf54a6e8ca5438db1), CNST_LIMB(0x280563f0a9472d61), CNST_LIMB(0x99626e72b39ea0cf) }, + /* 204 */ { 8, CNST_LIMB(0x215dc207a3c20fdf), CNST_LIMB(0xf5848226989d33c3), CNST_LIMB(0x29a02e1406210000), CNST_LIMB(0x899a5ba9c13fafd9) }, + /* 205 */ { 8, CNST_LIMB(0x2155e939e51e8b37), CNST_LIMB(0xf5be4d0cb51434aa), CNST_LIMB(0x2b494f4efe6d2e21), CNST_LIMB(0x7a80a705391e96ff) }, + /* 206 */ { 8, CNST_LIMB(0x214e1ddbb54cd933), CNST_LIMB(0xf5f7cff41e09aeb8), CNST_LIMB(0x2d0134ef21cbc100), CNST_LIMB(0x6c0cfe23de23042a) }, + /* 207 */ { 8, CNST_LIMB(0x21465fc4b2d68f98), CNST_LIMB(0xf6310b8f55304840), CNST_LIMB(0x2ec84ef4da2ef581), CNST_LIMB(0x5e377df359c944dd) }, + /* 208 */ { 8, CNST_LIMB(0x213eaecd2893dd60), CNST_LIMB(0xf66a008e4788cbcd), CNST_LIMB(0x309f102100000000), CNST_LIMB(0x50f8ac5fc8f53985) }, + /* 209 */ { 8, CNST_LIMB(0x21370ace09f681c6), CNST_LIMB(0xf6a2af9e5a0f0a08), CNST_LIMB(0x3285ee02a1420281), CNST_LIMB(0x44497266278e35b7) }, + /* 210 */ { 8, CNST_LIMB(0x212f73a0ef6db7cb), CNST_LIMB(0xf6db196a761949d9), CNST_LIMB(0x347d6104fc324100), CNST_LIMB(0x382316831f7ee175) }, + /* 211 */ { 8, CNST_LIMB(0x2127e92012e25004), CNST_LIMB(0xf7133e9b156c7be5), CNST_LIMB(0x3685e47dade53d21), CNST_LIMB(0x2c7f377833b8946e) }, + /* 212 */ { 8, CNST_LIMB(0x21206b264c4a39a7), CNST_LIMB(0xf74b1fd64e0753c6), CNST_LIMB(0x389ff6bb15610000), CNST_LIMB(0x2157c761ab4163ef) }, + /* 213 */ { 8, CNST_LIMB(0x2118f98f0e52c28f), CNST_LIMB(0xf782bdbfdda6577b), CNST_LIMB(0x3acc1912ebb57661), CNST_LIMB(0x16a7071803cc49a9) }, + /* 214 */ { 8, CNST_LIMB(0x211194366320dc66), CNST_LIMB(0xf7ba18f93502e409), CNST_LIMB(0x3d0acff111946100), CNST_LIMB(0xc6781d80f8224fc) }, + /* 215 */ { 8, CNST_LIMB(0x210a3af8e926bb78), CNST_LIMB(0xf7f1322182cf15d1), CNST_LIMB(0x3f5ca2e692eaf841), CNST_LIMB(0x294092d370a900b) }, + /* 216 */ { 8, CNST_LIMB(0x2102edb3d00e29a6), CNST_LIMB(0xf82809d5be7072db), CNST_LIMB(0x41c21cb8e1000000), CNST_LIMB(0xf24f62335024a295) }, + /* 217 */ { 8, CNST_LIMB(0x20fbac44d5b6edc2), CNST_LIMB(0xf85ea0b0b27b2610), CNST_LIMB(0x443bcb714399a5c1), CNST_LIMB(0xe03b98f103fad6d2) }, + /* 218 */ { 8, CNST_LIMB(0x20f4768a4348ad08), CNST_LIMB(0xf894f74b06ef8b40), CNST_LIMB(0x46ca406c81af2100), CNST_LIMB(0xcee3d32cad2a9049) }, + /* 219 */ { 8, CNST_LIMB(0x20ed4c62ea57b1f0), CNST_LIMB(0xf8cb0e3b4b3bbdb3), CNST_LIMB(0x496e106ac22aaae1), CNST_LIMB(0xbe3f9df9277fdada) }, + /* 220 */ { 8, CNST_LIMB(0x20e62dae221c087a), CNST_LIMB(0xf900e6160002ccfe), CNST_LIMB(0x4c27d39fa5410000), CNST_LIMB(0xae46f0d94c05e933) }, + /* 221 */ { 8, CNST_LIMB(0x20df1a4bc4ba6525), CNST_LIMB(0xf9367f6da0ab2e9c), CNST_LIMB(0x4ef825c296e43ca1), CNST_LIMB(0x9ef2280fb437a33d) }, + /* 222 */ { 8, CNST_LIMB(0x20d8121c2c9e506e), CNST_LIMB(0xf96bdad2acb5f5ef), CNST_LIMB(0x51dfa61f5ad88100), CNST_LIMB(0x9039ff426d3f284b) }, + /* 223 */ { 8, CNST_LIMB(0x20d1150031e51549), CNST_LIMB(0xf9a0f8d3b0e04fde), CNST_LIMB(0x54def7a6d2f16901), CNST_LIMB(0x82178c6d6b51f8f4) }, + /* 224 */ { 8, CNST_LIMB(0x20ca22d927d8f54d), CNST_LIMB(0xf9d5d9fd5010b366), CNST_LIMB(0x57f6c10000000000), CNST_LIMB(0x74843b1ee4c1e053) }, + /* 225 */ { 8, CNST_LIMB(0x20c33b88da7c29aa), CNST_LIMB(0xfa0a7eda4c112ce6), CNST_LIMB(0x5b27ac993df97701), CNST_LIMB(0x6779c7f90dc42f48) }, + /* 226 */ { 8, CNST_LIMB(0x20bc5ef18c233bdf), CNST_LIMB(0xfa3ee7f38e181ed0), CNST_LIMB(0x5e7268b9bbdf8100), CNST_LIMB(0x5af23c74f9ad9fe9) }, + /* 227 */ { 8, CNST_LIMB(0x20b58cf5f31e4526), CNST_LIMB(0xfa7315d02f20c7bd), CNST_LIMB(0x61d7a7932ff3d6a1), CNST_LIMB(0x4ee7eae2acdc617e) }, + /* 228 */ { 8, CNST_LIMB(0x20aec5793770a74d), CNST_LIMB(0xfaa708f58014d37c), CNST_LIMB(0x65581f53c8c10000), CNST_LIMB(0x43556aa2ac262a0b) }, + /* 229 */ { 8, CNST_LIMB(0x20a8085ef096d530), CNST_LIMB(0xfadac1e711c832d1), CNST_LIMB(0x68f48a385b8320e1), CNST_LIMB(0x3835949593b8ddd1) }, + /* 230 */ { 8, CNST_LIMB(0x20a1558b2359c4b1), CNST_LIMB(0xfb0e4126bcc86bd7), CNST_LIMB(0x6cada69ed07c2100), CNST_LIMB(0x2d837fbe78458762) }, + /* 231 */ { 8, CNST_LIMB(0x209aace23fafa72e), CNST_LIMB(0xfb418734a9008bd9), CNST_LIMB(0x70843718cdbf27c1), CNST_LIMB(0x233a7e150a54a555) }, + /* 232 */ { 8, CNST_LIMB(0x20940e491ea988d7), CNST_LIMB(0xfb74948f5532da4b), CNST_LIMB(0x7479027ea1000000), CNST_LIMB(0x19561984a50ff8fe) }, + /* 233 */ { 8, CNST_LIMB(0x208d79a5006d7a47), CNST_LIMB(0xfba769b39e49640e), CNST_LIMB(0x788cd40268f39641), CNST_LIMB(0xfd211159fe3490f) }, + /* 234 */ { 8, CNST_LIMB(0x2086eedb8a3cead3), CNST_LIMB(0xfbda071cc67e6db5), CNST_LIMB(0x7cc07b437ecf6100), CNST_LIMB(0x6aa563e655033e3) }, + /* 235 */ { 8, CNST_LIMB(0x20806dd2c486dcc6), CNST_LIMB(0xfc0c6d447c5dd362), CNST_LIMB(0x8114cc6220762061), CNST_LIMB(0xfbb614b3f2d3b14c) }, + /* 236 */ { 8, CNST_LIMB(0x2079f67119059fae), CNST_LIMB(0xfc3e9ca2e1a05533), CNST_LIMB(0x858aa0135be10000), CNST_LIMB(0xeac0f8837fb05773) }, + /* 237 */ { 8, CNST_LIMB(0x2073889d50e7bf63), CNST_LIMB(0xfc7095ae91e1c760), CNST_LIMB(0x8a22d3b53c54c321), CNST_LIMB(0xda6e4c10e8615ca5) }, + /* 238 */ { 8, CNST_LIMB(0x206d243e9303d929), CNST_LIMB(0xfca258dca9331635), CNST_LIMB(0x8ede496339f34100), CNST_LIMB(0xcab755a8d01fa67f) }, + /* 239 */ { 8, CNST_LIMB(0x2066c93c62170aa8), CNST_LIMB(0xfcd3e6a0ca8906c2), CNST_LIMB(0x93bde80aec3a1481), CNST_LIMB(0xbb95a9ae71aa3e0c) }, + /* 240 */ { 8, CNST_LIMB(0x2060777e9b0db0f6), CNST_LIMB(0xfd053f6d26089673), CNST_LIMB(0x98c29b8100000000), CNST_LIMB(0xad0326c296b4f529) }, + /* 241 */ { 8, CNST_LIMB(0x205a2eed73563032), CNST_LIMB(0xfd3663b27f31d529), CNST_LIMB(0x9ded549671832381), CNST_LIMB(0x9ef9f21eed31b7c1) }, + /* 242 */ { 8, CNST_LIMB(0x2053ef71773d7e6a), CNST_LIMB(0xfd6753e032ea0efe), CNST_LIMB(0xa33f092e0b1ac100), CNST_LIMB(0x91747422be14b0b2) }, + /* 243 */ { 8, CNST_LIMB(0x204db8f388552ea9), CNST_LIMB(0xfd9810643d6614c3), CNST_LIMB(0xa8b8b452291fe821), CNST_LIMB(0x846d550e37b5063d) }, + /* 244 */ { 8, CNST_LIMB(0x20478b5cdbe2bb2f), CNST_LIMB(0xfdc899ab3ff56c5e), CNST_LIMB(0xae5b564ac3a10000), CNST_LIMB(0x77df79e9a96c06f6) }, + /* 245 */ { 8, CNST_LIMB(0x20416696f957cfbf), CNST_LIMB(0xfdf8f02086af2c4b), CNST_LIMB(0xb427f4b3be74c361), CNST_LIMB(0x6bc6019636c7d0c2) }, + /* 246 */ { 8, CNST_LIMB(0x203b4a8bb8d356e7), CNST_LIMB(0xfe29142e0e01401f), CNST_LIMB(0xba1f9a938041e100), CNST_LIMB(0x601c4205aebd9e47) }, + /* 247 */ { 8, CNST_LIMB(0x2035372541ab0f0d), CNST_LIMB(0xfe59063c8822ce56), CNST_LIMB(0xc0435871d1110f41), CNST_LIMB(0x54ddc59756f05016) }, + /* 248 */ { 8, CNST_LIMB(0x202f2c4e08fd6dcc), CNST_LIMB(0xfe88c6b3626a72aa), CNST_LIMB(0xc694446f01000000), CNST_LIMB(0x4a0648979c838c18) }, + /* 249 */ { 8, CNST_LIMB(0x202929f0d04b99e9), CNST_LIMB(0xfeb855f8ca88fb0d), CNST_LIMB(0xcd137a5b57ac3ec1), CNST_LIMB(0x3f91b6e0bb3a053d) }, + /* 250 */ { 8, CNST_LIMB(0x20232ff8a41b45eb), CNST_LIMB(0xfee7b471b3a9507d), CNST_LIMB(0xd3c21bcecceda100), CNST_LIMB(0x357c299a88ea76a5) }, + /* 251 */ { 8, CNST_LIMB(0x201d3e50daa036db), CNST_LIMB(0xff16e281db76303b), CNST_LIMB(0xdaa150410b788de1), CNST_LIMB(0x2bc1e517aecc56e3) }, + /* 252 */ { 8, CNST_LIMB(0x201754e5126d446d), CNST_LIMB(0xff45e08bcf06554e), CNST_LIMB(0xe1b24521be010000), CNST_LIMB(0x225f56ceb3da9f5d) }, + /* 253 */ { 8, CNST_LIMB(0x201173a1312ca135), CNST_LIMB(0xff74aef0efafadd7), CNST_LIMB(0xe8f62df12777c1a1), CNST_LIMB(0x1951136d53ad63ac) }, + /* 254 */ { 8, CNST_LIMB(0x200b9a71625f3b13), CNST_LIMB(0xffa34e1177c23362), CNST_LIMB(0xf06e445906fc0100), CNST_LIMB(0x1093d504b3cd7d93) }, + /* 255 */ { 8, CNST_LIMB(0x2005c94216230568), CNST_LIMB(0xffd1be4c7f2af942), CNST_LIMB(0xf81bc845c81bf801), CNST_LIMB(0x824794d1ec1814f) }, + /* 256 */ { 8, CNST_LIMB(0x1fffffffffffffff), CNST_LIMB(0xffffffffffffffff), CNST_LIMB(0x8), CNST_LIMB(0x0) }, +}; diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/mul_1.s b/vere/ext/gmp/gen/aarch64-linux/mpn/mul_1.s new file mode 100644 index 0000000..c8c5fab --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/mul_1.s @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_mul_1c + .type __gmpn_mul_1c,@function +__gmpn_mul_1c: + adds xzr, xzr, xzr + b .Lcom + .size __gmpn_mul_1c,.-__gmpn_mul_1c + + .text + .align 3 + .globl __gmpn_mul_1 + .type __gmpn_mul_1,@function +__gmpn_mul_1: + adds x4, xzr, xzr +.Lcom: lsr x18, x2, #2 + tbnz x2, #0, .Lbx1 + +.Lbx0: mov x11, x4 + tbz x2, #1, .Lb00 + +.Lb10: ldp x4, x5, [x1] + mul x8, x4, x3 + umulh x10, x4, x3 + cbz x18, .L2 + ldp x6, x7, [x1,#16]! + mul x9, x5, x3 + b .Lmid-8 + +.L2: mul x9, x5, x3 + b .L2e + +.Lbx1: ldr x7, [x1],#8 + mul x9, x7, x3 + umulh x11, x7, x3 + adds x9, x9, x4 + str x9, [x0],#8 + tbnz x2, #1, .Lb10 + +.Lb01: cbz x18, .L1 + +.Lb00: ldp x6, x7, [x1] + mul x8, x6, x3 + umulh x10, x6, x3 + ldp x4, x5, [x1,#16] + mul x9, x7, x3 + adcs x12, x8, x11 + umulh x11, x7, x3 + add x0, x0, #16 + sub x18, x18, #1 + cbz x18, .Lend + + .align 4 +.Ltop: mul x8, x4, x3 + ldp x6, x7, [x1,#32]! + adcs x13, x9, x10 + umulh x10, x4, x3 + mul x9, x5, x3 + stp x12, x13, [x0,#-16] + adcs x12, x8, x11 + umulh x11, x5, x3 +.Lmid: mul x8, x6, x3 + ldp x4, x5, [x1,#16] + adcs x13, x9, x10 + umulh x10, x6, x3 + mul x9, x7, x3 + stp x12, x13, [x0],#32 + adcs x12, x8, x11 + umulh x11, x7, x3 + sub x18, x18, #1 + cbnz x18, .Ltop + +.Lend: mul x8, x4, x3 + adcs x13, x9, x10 + umulh x10, x4, x3 + mul x9, x5, x3 + stp x12, x13, [x0,#-16] +.L2e: adcs x12, x8, x11 + umulh x11, x5, x3 + adcs x13, x9, x10 + stp x12, x13, [x0] +.L1: adc x0, x11, xzr + ret + .size __gmpn_mul_1,.-__gmpn_mul_1 diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/nand_n.s b/vere/ext/gmp/gen/aarch64-linux/mpn/nand_n.s new file mode 100644 index 0000000..03ebda2 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/nand_n.s @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_nand_n + .type __gmpn_nand_n,@function +__gmpn_nand_n: + lsr x18, x3, #2 + tbz x3, #0, .Lbx0 + +.Lbx1: ldr x7, [x1] + ldr x11, [x2] + and x15, x7, x11 + mvn x15, x15 + str x15, [x0],#8 + tbnz x3, #1, .Lb11 + +.Lb01: cbz x18, .Lret + ldp x4, x5, [x1,#8] + ldp x8, x9, [x2,#8] + sub x1, x1, #8 + sub x2, x2, #8 + b .Lmid + +.Lb11: ldp x6, x7, [x1,#8] + ldp x10, x11, [x2,#8] + add x1, x1, #8 + add x2, x2, #8 + cbz x18, .Lend + b .Ltop + +.Lbx0: tbnz x3, #1, .Lb10 + +.Lb00: ldp x4, x5, [x1],#-16 + ldp x8, x9, [x2],#-16 + b .Lmid + +.Lb10: ldp x6, x7, [x1] + ldp x10, x11, [x2] + cbz x18, .Lend + + .align 4 +.Ltop: ldp x4, x5, [x1,#16] + ldp x8, x9, [x2,#16] + and x12, x6, x10 + and x13, x7, x11 + mvn x12, x12 + mvn x13, x13 + stp x12, x13, [x0],#16 +.Lmid: ldp x6, x7, [x1,#32]! + ldp x10, x11, [x2,#32]! + and x12, x4, x8 + and x13, x5, x9 + mvn x12, x12 + mvn x13, x13 + stp x12, x13, [x0],#16 + sub x18, x18, #1 + cbnz x18, .Ltop + +.Lend: and x12, x6, x10 + and x13, x7, x11 + mvn x12, x12 + mvn x13, x13 + stp x12, x13, [x0] +.Lret: ret + .size __gmpn_nand_n,.-__gmpn_nand_n diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/nior_n.s b/vere/ext/gmp/gen/aarch64-linux/mpn/nior_n.s new file mode 100644 index 0000000..5de9102 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/nior_n.s @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_nior_n + .type __gmpn_nior_n,@function +__gmpn_nior_n: + lsr x18, x3, #2 + tbz x3, #0, .Lbx0 + +.Lbx1: ldr x7, [x1] + ldr x11, [x2] + orr x15, x7, x11 + mvn x15, x15 + str x15, [x0],#8 + tbnz x3, #1, .Lb11 + +.Lb01: cbz x18, .Lret + ldp x4, x5, [x1,#8] + ldp x8, x9, [x2,#8] + sub x1, x1, #8 + sub x2, x2, #8 + b .Lmid + +.Lb11: ldp x6, x7, [x1,#8] + ldp x10, x11, [x2,#8] + add x1, x1, #8 + add x2, x2, #8 + cbz x18, .Lend + b .Ltop + +.Lbx0: tbnz x3, #1, .Lb10 + +.Lb00: ldp x4, x5, [x1],#-16 + ldp x8, x9, [x2],#-16 + b .Lmid + +.Lb10: ldp x6, x7, [x1] + ldp x10, x11, [x2] + cbz x18, .Lend + + .align 4 +.Ltop: ldp x4, x5, [x1,#16] + ldp x8, x9, [x2,#16] + orr x12, x6, x10 + orr x13, x7, x11 + mvn x12, x12 + mvn x13, x13 + stp x12, x13, [x0],#16 +.Lmid: ldp x6, x7, [x1,#32]! + ldp x10, x11, [x2,#32]! + orr x12, x4, x8 + orr x13, x5, x9 + mvn x12, x12 + mvn x13, x13 + stp x12, x13, [x0],#16 + sub x18, x18, #1 + cbnz x18, .Ltop + +.Lend: orr x12, x6, x10 + orr x13, x7, x11 + mvn x12, x12 + mvn x13, x13 + stp x12, x13, [x0] +.Lret: ret + .size __gmpn_nior_n,.-__gmpn_nior_n diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/perfsqr.h b/vere/ext/gmp/gen/aarch64-linux/mpn/perfsqr.h new file mode 100644 index 0000000..80c5eb7 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/perfsqr.h @@ -0,0 +1,46 @@ +/* This file generated by gen-psqr.c - DO NOT EDIT. */ + +#if GMP_LIMB_BITS != 64 || GMP_NAIL_BITS != 0 +Error, error, this data is for 64 bit limb and 0 bit nail +#endif + +/* Non-zero bit indicates a quadratic residue mod 0x100. + This test identifies 82.81% as non-squares (212/256). */ +static const mp_limb_t +sq_res_0x100[4] = { + CNST_LIMB(0x202021202030213), + CNST_LIMB(0x202021202020213), + CNST_LIMB(0x202021202030212), + CNST_LIMB(0x202021202020212), +}; + +/* 2^48-1 = 3^2 * 5 * 7 * 13 * 17 * 97 ... */ +#define PERFSQR_MOD_BITS 49 + +/* This test identifies 97.81% as non-squares. */ +#define PERFSQR_MOD_TEST(up, usize) \ + do { \ + mp_limb_t r; \ + PERFSQR_MOD_34 (r, up, usize); \ + \ + /* 69.23% */ \ + PERFSQR_MOD_2 (r, CNST_LIMB(91), CNST_LIMB(0xfd2fd2fd2fd3), \ + CNST_LIMB(0x2191240), CNST_LIMB(0x8850a206953820e1)); \ + \ + /* 68.24% */ \ + PERFSQR_MOD_2 (r, CNST_LIMB(85), CNST_LIMB(0xfcfcfcfcfcfd), \ + CNST_LIMB(0x82158), CNST_LIMB(0x10b48c4b4206a105)); \ + \ + /* 55.56% */ \ + PERFSQR_MOD_1 (r, CNST_LIMB( 9), CNST_LIMB(0xe38e38e38e39), \ + CNST_LIMB(0x93)); \ + \ + /* 49.48% */ \ + PERFSQR_MOD_2 (r, CNST_LIMB(97), CNST_LIMB(0xfd5c5f02a3a1), \ + CNST_LIMB(0x1eb628b47), CNST_LIMB(0x6067981b8b451b5f)); \ + } while (0) + +/* Grand total sq_res_0x100 and PERFSQR_MOD_TEST, 99.62% non-squares. */ + +/* helper for tests/mpz/t-perfsqr.c */ +#define PERFSQR_DIVISORS { 256, 91, 85, 9, 97, } diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/popcount.s b/vere/ext/gmp/gen/aarch64-linux/mpn/popcount.s new file mode 100644 index 0000000..e0d09b0 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/popcount.s @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_popcount + .type __gmpn_popcount,@function +__gmpn_popcount: + + mov x11, #0x1fff + cmp x1, x11 + b.hi .Lgt8k + +.Llt8k: + movi v4.16b, #0 + movi v5.16b, #0 + + tbz x1, #0, .Lxx0 + sub x1, x1, #1 + ld1 {v0.1d}, [x0], #8 + cnt v6.16b, v0.16b + uadalp v4.8h, v6.16b + +.Lxx0: tbz x1, #1, .Lx00 + sub x1, x1, #2 + ld1 {v0.2d}, [x0], #16 + cnt v6.16b, v0.16b + uadalp v4.8h, v6.16b + +.Lx00: tbz x1, #2, .L000 + subs x1, x1, #4 + ld1 {v0.2d,v1.2d}, [x0], #32 + b.ls .Lsum + +.Lgt4: ld1 {v2.2d,v3.2d}, [x0], #32 + sub x1, x1, #4 + cnt v6.16b, v0.16b + cnt v7.16b, v1.16b + b .Lmid + +.L000: subs x1, x1, #8 + b.lo .Le0 + +.Lchu: ld1 {v2.2d,v3.2d}, [x0], #32 + ld1 {v0.2d,v1.2d}, [x0], #32 + cnt v6.16b, v2.16b + cnt v7.16b, v3.16b + subs x1, x1, #8 + b.lo .Lend + +.Ltop: ld1 {v2.2d,v3.2d}, [x0], #32 + uadalp v4.8h, v6.16b + cnt v6.16b, v0.16b + uadalp v5.8h, v7.16b + cnt v7.16b, v1.16b +.Lmid: ld1 {v0.2d,v1.2d}, [x0], #32 + subs x1, x1, #8 + uadalp v4.8h, v6.16b + cnt v6.16b, v2.16b + uadalp v5.8h, v7.16b + cnt v7.16b, v3.16b + b.hs .Ltop + +.Lend: uadalp v4.8h, v6.16b + uadalp v5.8h, v7.16b +.Lsum: cnt v6.16b, v0.16b + cnt v7.16b, v1.16b + uadalp v4.8h, v6.16b + uadalp v5.8h, v7.16b + add v4.8h, v4.8h, v5.8h + +.Le0: uaddlp v4.4s, v4.8h + uaddlp v4.2d, v4.4s + mov x0, v4.d[0] + mov x1, v4.d[1] + add x0, x0, x1 + ret + + + +.Lgt8k: + mov x8, x30 + mov x7, x1 + mov x4, #0 + mov x9, #0x1ff0*8 + mov x10, #0x1ff0 + +1: add x5, x0, x9 + mov x1, #0x1ff0-8 + movi v4.16b, #0 + movi v5.16b, #0 + bl .Lchu + add x4, x4, x0 + mov x0, x5 + sub x7, x7, x10 + cmp x7, x11 + b.hi 1b + + mov x1, x7 + bl .Llt8k + add x0, x4, x0 + mov x30, x8 + ret + .size __gmpn_popcount,.-__gmpn_popcount diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/rsblsh1_n.s b/vere/ext/gmp/gen/aarch64-linux/mpn/rsblsh1_n.s new file mode 100644 index 0000000..1c6f4fc --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/rsblsh1_n.s @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_rsblsh1_n + .type __gmpn_rsblsh1_n,@function +__gmpn_rsblsh1_n: + lsr x18, x3, #2 + tbz x3, #0, .Lbx0 + +.Lbx1: ldr x5, [x1] + tbnz x3, #1, .Lb11 + +.Lb01: ldr x11, [x2] + cbz x18, .L1 + ldp x8, x9, [x2,#8] + lsl x13, x11, #1 + subs x15, x13, x5 + str x15, [x0],#8 + sub x1, x1, #24 + sub x2, x2, #8 + b .Lmid + +.L1: lsl x13, x11, #1 + subs x15, x13, x5 + str x15, [x0] + lsr x0, x11, 63 + sbc x0, x0, xzr + ret + +.Lb11: ldr x9, [x2] + ldp x10, x11, [x2,#8]! + lsl x13, x9, #1 + subs x17, x13, x5 + str x17, [x0],#8 + sub x1, x1, #8 + cbz x18, .Lend + b .Ltop + +.Lbx0: tbnz x3, #1, .Lb10 + +.Lb00: subs x11, xzr, xzr + ldp x8, x9, [x2],#-16 + sub x1, x1, #32 + b .Lmid + +.Lb10: subs x9, xzr, xzr + ldp x10, x11, [x2] + sub x1, x1, #16 + cbz x18, .Lend + + .align 4 +.Ltop: ldp x4, x5, [x1,#16] + extr x12, x10, x9, #63 + ldp x8, x9, [x2,#16] + extr x13, x11, x10, #63 + sbcs x14, x12, x4 + sbcs x15, x13, x5 + stp x14, x15, [x0],#16 +.Lmid: ldp x4, x5, [x1,#32]! + extr x12, x8, x11, #63 + ldp x10, x11, [x2,#32]! + extr x13, x9, x8, #63 + sbcs x16, x12, x4 + sbcs x17, x13, x5 + stp x16, x17, [x0],#16 + sub x18, x18, #1 + cbnz x18, .Ltop + +.Lend: ldp x4, x5, [x1,#16] + extr x12, x10, x9, #63 + extr x13, x11, x10, #63 + sbcs x14, x12, x4 + sbcs x15, x13, x5 + stp x14, x15, [x0] + lsr x0, x11, 63 + sbc x0, x0, xzr + ret + .size __gmpn_rsblsh1_n,.-__gmpn_rsblsh1_n + diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/rsblsh2_n.s b/vere/ext/gmp/gen/aarch64-linux/mpn/rsblsh2_n.s new file mode 100644 index 0000000..8fe8980 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/rsblsh2_n.s @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_rsblsh2_n + .type __gmpn_rsblsh2_n,@function +__gmpn_rsblsh2_n: + lsr x18, x3, #2 + tbz x3, #0, .Lbx0 + +.Lbx1: ldr x5, [x1] + tbnz x3, #1, .Lb11 + +.Lb01: ldr x11, [x2] + cbz x18, .L1 + ldp x8, x9, [x2,#8] + lsl x13, x11, #2 + subs x15, x13, x5 + str x15, [x0],#8 + sub x1, x1, #24 + sub x2, x2, #8 + b .Lmid + +.L1: lsl x13, x11, #2 + subs x15, x13, x5 + str x15, [x0] + lsr x0, x11, 62 + sbc x0, x0, xzr + ret + +.Lb11: ldr x9, [x2] + ldp x10, x11, [x2,#8]! + lsl x13, x9, #2 + subs x17, x13, x5 + str x17, [x0],#8 + sub x1, x1, #8 + cbz x18, .Lend + b .Ltop + +.Lbx0: tbnz x3, #1, .Lb10 + +.Lb00: subs x11, xzr, xzr + ldp x8, x9, [x2],#-16 + sub x1, x1, #32 + b .Lmid + +.Lb10: subs x9, xzr, xzr + ldp x10, x11, [x2] + sub x1, x1, #16 + cbz x18, .Lend + + .align 4 +.Ltop: ldp x4, x5, [x1,#16] + extr x12, x10, x9, #62 + ldp x8, x9, [x2,#16] + extr x13, x11, x10, #62 + sbcs x14, x12, x4 + sbcs x15, x13, x5 + stp x14, x15, [x0],#16 +.Lmid: ldp x4, x5, [x1,#32]! + extr x12, x8, x11, #62 + ldp x10, x11, [x2,#32]! + extr x13, x9, x8, #62 + sbcs x16, x12, x4 + sbcs x17, x13, x5 + stp x16, x17, [x0],#16 + sub x18, x18, #1 + cbnz x18, .Ltop + +.Lend: ldp x4, x5, [x1,#16] + extr x12, x10, x9, #62 + extr x13, x11, x10, #62 + sbcs x14, x12, x4 + sbcs x15, x13, x5 + stp x14, x15, [x0] + lsr x0, x11, 62 + sbc x0, x0, xzr + ret + .size __gmpn_rsblsh2_n,.-__gmpn_rsblsh2_n + diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/rsh1add_n.s b/vere/ext/gmp/gen/aarch64-linux/mpn/rsh1add_n.s new file mode 100644 index 0000000..b36f5d8 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/rsh1add_n.s @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_rsh1add_n + .type __gmpn_rsh1add_n,@function +__gmpn_rsh1add_n: + lsr x18, x3, #2 + + tbz x3, #0, .Lbx0 + +.Lbx1: ldr x5, [x1],#8 + ldr x9, [x2],#8 + tbnz x3, #1, .Lb11 + +.Lb01: adds x13, x5, x9 + and x10, x13, #1 + cbz x18, .L1 + ldp x4, x5, [x1],#48 + ldp x8, x9, [x2],#48 + adcs x14, x4, x8 + adcs x15, x5, x9 + ldp x4, x5, [x1,#-32] + ldp x8, x9, [x2,#-32] + extr x17, x14, x13, #1 + adcs x12, x4, x8 + adcs x13, x5, x9 + str x17, [x0], #24 + sub x18, x18, #1 + cbz x18, .Lend + b .Ltop + +.L1: cset x14, cs + extr x17, x14, x13, #1 + str x17, [x0] + mov x0, x10 + ret + +.Lb11: adds x15, x5, x9 + and x10, x15, #1 + + ldp x4, x5, [x1],#32 + ldp x8, x9, [x2],#32 + adcs x12, x4, x8 + adcs x13, x5, x9 + cbz x18, .L3 + ldp x4, x5, [x1,#-16] + ldp x8, x9, [x2,#-16] + extr x17, x12, x15, #1 + adcs x14, x4, x8 + adcs x15, x5, x9 + str x17, [x0], #8 + b .Lmid + +.L3: extr x17, x12, x15, #1 + str x17, [x0], #8 + b .L2 + +.Lbx0: tbz x3, #1, .Lb00 + +.Lb10: ldp x4, x5, [x1],#32 + ldp x8, x9, [x2],#32 + adds x12, x4, x8 + adcs x13, x5, x9 + and x10, x12, #1 + cbz x18, .L2 + ldp x4, x5, [x1,#-16] + ldp x8, x9, [x2,#-16] + adcs x14, x4, x8 + adcs x15, x5, x9 + b .Lmid + +.Lb00: ldp x4, x5, [x1],#48 + ldp x8, x9, [x2],#48 + adds x14, x4, x8 + adcs x15, x5, x9 + and x10, x14, #1 + ldp x4, x5, [x1,#-32] + ldp x8, x9, [x2,#-32] + adcs x12, x4, x8 + adcs x13, x5, x9 + add x0, x0, #16 + sub x18, x18, #1 + cbz x18, .Lend + + .align 4 +.Ltop: ldp x4, x5, [x1,#-16] + ldp x8, x9, [x2,#-16] + extr x16, x15, x14, #1 + extr x17, x12, x15, #1 + adcs x14, x4, x8 + adcs x15, x5, x9 + stp x16, x17, [x0,#-16] +.Lmid: ldp x4, x5, [x1],#32 + ldp x8, x9, [x2],#32 + extr x16, x13, x12, #1 + extr x17, x14, x13, #1 + adcs x12, x4, x8 + adcs x13, x5, x9 + stp x16, x17, [x0],#32 + sub x18, x18, #1 + cbnz x18, .Ltop + +.Lend: extr x16, x15, x14, #1 + extr x17, x12, x15, #1 + stp x16, x17, [x0,#-16] +.L2: cset x14, cs + extr x16, x13, x12, #1 + extr x17, x14, x13, #1 + stp x16, x17, [x0] + +.Lret: mov x0, x10 + ret + .size __gmpn_rsh1add_n,.-__gmpn_rsh1add_n diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/rsh1sub_n.s b/vere/ext/gmp/gen/aarch64-linux/mpn/rsh1sub_n.s new file mode 100644 index 0000000..a744993 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/rsh1sub_n.s @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_rsh1sub_n + .type __gmpn_rsh1sub_n,@function +__gmpn_rsh1sub_n: + lsr x18, x3, #2 + + tbz x3, #0, .Lbx0 + +.Lbx1: ldr x5, [x1],#8 + ldr x9, [x2],#8 + tbnz x3, #1, .Lb11 + +.Lb01: subs x13, x5, x9 + and x10, x13, #1 + cbz x18, .L1 + ldp x4, x5, [x1],#48 + ldp x8, x9, [x2],#48 + sbcs x14, x4, x8 + sbcs x15, x5, x9 + ldp x4, x5, [x1,#-32] + ldp x8, x9, [x2,#-32] + extr x17, x14, x13, #1 + sbcs x12, x4, x8 + sbcs x13, x5, x9 + str x17, [x0], #24 + sub x18, x18, #1 + cbz x18, .Lend + b .Ltop + +.L1: cset x14, cc + extr x17, x14, x13, #1 + str x17, [x0] + mov x0, x10 + ret + +.Lb11: subs x15, x5, x9 + and x10, x15, #1 + + ldp x4, x5, [x1],#32 + ldp x8, x9, [x2],#32 + sbcs x12, x4, x8 + sbcs x13, x5, x9 + cbz x18, .L3 + ldp x4, x5, [x1,#-16] + ldp x8, x9, [x2,#-16] + extr x17, x12, x15, #1 + sbcs x14, x4, x8 + sbcs x15, x5, x9 + str x17, [x0], #8 + b .Lmid + +.L3: extr x17, x12, x15, #1 + str x17, [x0], #8 + b .L2 + +.Lbx0: tbz x3, #1, .Lb00 + +.Lb10: ldp x4, x5, [x1],#32 + ldp x8, x9, [x2],#32 + subs x12, x4, x8 + sbcs x13, x5, x9 + and x10, x12, #1 + cbz x18, .L2 + ldp x4, x5, [x1,#-16] + ldp x8, x9, [x2,#-16] + sbcs x14, x4, x8 + sbcs x15, x5, x9 + b .Lmid + +.Lb00: ldp x4, x5, [x1],#48 + ldp x8, x9, [x2],#48 + subs x14, x4, x8 + sbcs x15, x5, x9 + and x10, x14, #1 + ldp x4, x5, [x1,#-32] + ldp x8, x9, [x2,#-32] + sbcs x12, x4, x8 + sbcs x13, x5, x9 + add x0, x0, #16 + sub x18, x18, #1 + cbz x18, .Lend + + .align 4 +.Ltop: ldp x4, x5, [x1,#-16] + ldp x8, x9, [x2,#-16] + extr x16, x15, x14, #1 + extr x17, x12, x15, #1 + sbcs x14, x4, x8 + sbcs x15, x5, x9 + stp x16, x17, [x0,#-16] +.Lmid: ldp x4, x5, [x1],#32 + ldp x8, x9, [x2],#32 + extr x16, x13, x12, #1 + extr x17, x14, x13, #1 + sbcs x12, x4, x8 + sbcs x13, x5, x9 + stp x16, x17, [x0],#32 + sub x18, x18, #1 + cbnz x18, .Ltop + +.Lend: extr x16, x15, x14, #1 + extr x17, x12, x15, #1 + stp x16, x17, [x0,#-16] +.L2: cset x14, cc + extr x16, x13, x12, #1 + extr x17, x14, x13, #1 + stp x16, x17, [x0] + +.Lret: mov x0, x10 + ret + .size __gmpn_rsh1sub_n,.-__gmpn_rsh1sub_n diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/rshift.s b/vere/ext/gmp/gen/aarch64-linux/mpn/rshift.s new file mode 100644 index 0000000..04def66 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/rshift.s @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_rshift + .type __gmpn_rshift,@function +__gmpn_rshift: + mov x16, x0 + sub x8, xzr, x3 + lsr x18, x2, #2 + tbz x2, #0, .Lbx0 + +.Lbx1: ldr x5, [x1] + tbnz x2, #1, .Lb11 + +.Lb01: lsl x0, x5, x8 + lsr x2, x5, x3 + cbnz x18, .Lgt1 + str x2, [x16] + ret +.Lgt1: ldp x4, x5, [x1,#8] + sub x1, x1, #8 + sub x16, x16, #32 + b .Llo2 + +.Lb11: lsl x0, x5, x8 + lsr x2, x5, x3 + ldp x6, x7, [x1,#8]! + sub x16, x16, #16 + b .Llo3 + +.Lbx0: ldp x4, x5, [x1] + tbz x2, #1, .Lb00 + +.Lb10: lsl x0, x4, x8 + lsr x13, x4, x3 + lsl x10, x5, x8 + lsr x2, x5, x3 + cbnz x18, .Lgt2 + orr x10, x10, x13 + stp x10, x2, [x16] + ret +.Lgt2: ldp x4, x5, [x1,#16] + orr x10, x10, x13 + str x10, [x16],#-24 + b .Llo2 + +.Lb00: lsl x0, x4, x8 + lsr x13, x4, x3 + lsl x10, x5, x8 + lsr x2, x5, x3 + ldp x6, x7, [x1,#16]! + orr x10, x10, x13 + str x10, [x16],#-8 + b .Llo0 + + .align 4 +.Ltop: ldp x4, x5, [x1,#16] + orr x10, x10, x13 + orr x11, x12, x2 + stp x11, x10, [x16,#16] + lsr x2, x7, x3 +.Llo2: lsl x10, x5, x8 + lsl x12, x4, x8 + lsr x13, x4, x3 + ldp x6, x7, [x1,#32]! + orr x10, x10, x13 + orr x11, x12, x2 + stp x11, x10, [x16,#32]! + lsr x2, x5, x3 +.Llo0: sub x18, x18, #1 +.Llo3: lsl x10, x7, x8 + lsl x12, x6, x8 + lsr x13, x6, x3 + cbnz x18, .Ltop + +.Lend: orr x10, x10, x13 + orr x11, x12, x2 + lsr x2, x7, x3 + stp x11, x10, [x16,#16] + str x2, [x16,#32] + ret + .size __gmpn_rshift,.-__gmpn_rshift diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/sec_tabselect.s b/vere/ext/gmp/gen/aarch64-linux/mpn/sec_tabselect.s new file mode 100644 index 0000000..b966351 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/sec_tabselect.s @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_sec_tabselect + .type __gmpn_sec_tabselect,@function +__gmpn_sec_tabselect: + dup v7.2d, x4 + + mov x10, #1 + dup v6.2d, x10 + + subs x6, x2, #4 + b.mi .Louter_end + +.Louter_top: + mov x5, x3 + mov x12, x1 + movi v5.16b, #0 + movi v2.16b, #0 + movi v3.16b, #0 + .align 4 +.Ltp4: cmeq v4.2d, v5.2d, v7.2d + ld1 {v0.2d,v1.2d}, [x1] + add v5.2d, v5.2d, v6.2d + bit v2.16b, v0.16b, v4.16b + bit v3.16b, v1.16b, v4.16b + add x1, x1, x2, lsl #3 + sub x5, x5, #1 + cbnz x5, .Ltp4 + st1 {v2.2d,v3.2d}, [x0], #32 + add x1, x12, #32 + subs x6, x6, #4 + b.pl .Louter_top +.Louter_end: + + tbz x2, #1, .Lb0x + mov x5, x3 + mov x12, x1 + movi v5.16b, #0 + movi v2.16b, #0 + .align 4 +.Ltp2: cmeq v4.2d, v5.2d, v7.2d + ld1 {v0.2d}, [x1] + add v5.2d, v5.2d, v6.2d + bit v2.16b, v0.16b, v4.16b + add x1, x1, x2, lsl #3 + sub x5, x5, #1 + cbnz x5, .Ltp2 + st1 {v2.2d}, [x0], #16 + add x1, x12, #16 + +.Lb0x: tbz x2, #0, .Lb00 + mov x5, x3 + mov x12, x1 + movi v5.16b, #0 + movi v2.16b, #0 + .align 4 +.Ltp1: cmeq v4.2d, v5.2d, v7.2d + ld1 {v0.1d}, [x1] + add v5.2d, v5.2d, v6.2d + bit v2.8b, v0.8b, v4.8b + add x1, x1, x2, lsl #3 + sub x5, x5, #1 + cbnz x5, .Ltp1 + st1 {v2.1d}, [x0], #8 + add x1, x12, #8 + +.Lb00: ret + .size __gmpn_sec_tabselect,.-__gmpn_sec_tabselect diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/sqr_diag_addlsh1.s b/vere/ext/gmp/gen/aarch64-linux/mpn/sqr_diag_addlsh1.s new file mode 100644 index 0000000..96df05b --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/sqr_diag_addlsh1.s @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_sqr_diag_addlsh1 + .type __gmpn_sqr_diag_addlsh1,@function +__gmpn_sqr_diag_addlsh1: + ldr x15, [x2],#8 + lsr x18, x3, #1 + tbz x3, #0, .Lbx0 + +.Lbx1: adds x7, xzr, xzr + mul x12, x15, x15 + ldr x16, [x2],#8 + ldp x4, x5, [x1],#16 + umulh x11, x15, x15 + b .Lmid + +.Lbx0: adds x5, xzr, xzr + mul x12, x15, x15 + ldr x17, [x2],#16 + ldp x6, x7, [x1],#32 + umulh x11, x15, x15 + sub x18, x18, #1 + cbz x18, .Lend + + .align 4 +.Ltop: extr x9, x6, x5, #63 + mul x10, x17, x17 + ldr x16, [x2,#-8] + adcs x13, x9, x11 + ldp x4, x5, [x1,#-16] + umulh x11, x17, x17 + extr x8, x7, x6, #63 + stp x12, x13, [x0],#16 + adcs x12, x8, x10 +.Lmid: extr x9, x4, x7, #63 + mul x10, x16, x16 + ldr x17, [x2],#16 + adcs x13, x9, x11 + ldp x6, x7, [x1],#32 + umulh x11, x16, x16 + extr x8, x5, x4, #63 + stp x12, x13, [x0],#16 + adcs x12, x8, x10 + sub x18, x18, #1 + cbnz x18, .Ltop + +.Lend: extr x9, x6, x5, #63 + mul x10, x17, x17 + adcs x13, x9, x11 + umulh x11, x17, x17 + extr x8, x7, x6, #63 + stp x12, x13, [x0] + adcs x12, x8, x10 + extr x9, xzr, x7, #63 + adcs x13, x9, x11 + stp x12, x13, [x0,#16] + + ret + .size __gmpn_sqr_diag_addlsh1,.-__gmpn_sqr_diag_addlsh1 diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/sub_n.s b/vere/ext/gmp/gen/aarch64-linux/mpn/sub_n.s new file mode 100644 index 0000000..1d9a2f0 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/sub_n.s @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_sub_nc + .type __gmpn_sub_nc,@function +__gmpn_sub_nc: + cmp xzr, x4 + b .Lent + .size __gmpn_sub_nc,.-__gmpn_sub_nc + .text + .align 3 + .globl __gmpn_sub_n + .type __gmpn_sub_n,@function +__gmpn_sub_n: + cmp xzr, xzr +.Lent: lsr x18, x3, #2 + tbz x3, #0, .Lbx0 + +.Lbx1: ldr x7, [x1] + ldr x11, [x2] + sbcs x13, x7, x11 + str x13, [x0],#8 + tbnz x3, #1, .Lb11 + +.Lb01: cbz x18, .Lret + ldp x4, x5, [x1,#8] + ldp x8, x9, [x2,#8] + sub x1, x1, #8 + sub x2, x2, #8 + b .Lmid + +.Lb11: ldp x6, x7, [x1,#8] + ldp x10, x11, [x2,#8] + add x1, x1, #8 + add x2, x2, #8 + cbz x18, .Lend + b .Ltop + +.Lbx0: tbnz x3, #1, .Lb10 + +.Lb00: ldp x4, x5, [x1] + ldp x8, x9, [x2] + sub x1, x1, #16 + sub x2, x2, #16 + b .Lmid + +.Lb10: ldp x6, x7, [x1] + ldp x10, x11, [x2] + cbz x18, .Lend + + .align 4 +.Ltop: ldp x4, x5, [x1,#16] + ldp x8, x9, [x2,#16] + sbcs x12, x6, x10 + sbcs x13, x7, x11 + stp x12, x13, [x0],#16 +.Lmid: ldp x6, x7, [x1,#32]! + ldp x10, x11, [x2,#32]! + sbcs x12, x4, x8 + sbcs x13, x5, x9 + stp x12, x13, [x0],#16 + sub x18, x18, #1 + cbnz x18, .Ltop + +.Lend: sbcs x12, x6, x10 + sbcs x13, x7, x11 + stp x12, x13, [x0] +.Lret: cset x0, cc + ret + .size __gmpn_sub_n,.-__gmpn_sub_n diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/sublsh1_n.s b/vere/ext/gmp/gen/aarch64-linux/mpn/sublsh1_n.s new file mode 100644 index 0000000..ba36536 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/sublsh1_n.s @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_sublsh1_n + .type __gmpn_sublsh1_n,@function +__gmpn_sublsh1_n: + lsr x18, x3, #2 + tbz x3, #0, .Lbx0 + +.Lbx1: ldr x5, [x1] + tbnz x3, #1, .Lb11 + +.Lb01: ldr x11, [x2] + cbz x18, .L1 + ldp x8, x9, [x2,#8] + lsl x13, x11, #1 + subs x15, x5, x13 + str x15, [x0],#8 + sub x1, x1, #24 + sub x2, x2, #8 + b .Lmid + +.L1: lsl x13, x11, #1 + subs x15, x5, x13 + str x15, [x0] + lsr x0, x11, 63 + cinc x0, x0, cc + ret + +.Lb11: ldr x9, [x2] + ldp x10, x11, [x2,#8]! + lsl x13, x9, #1 + subs x17, x5, x13 + str x17, [x0],#8 + sub x1, x1, #8 + cbz x18, .Lend + b .Ltop + +.Lbx0: tbnz x3, #1, .Lb10 + +.Lb00: subs x11, xzr, xzr + ldp x8, x9, [x2],#-16 + sub x1, x1, #32 + b .Lmid + +.Lb10: subs x9, xzr, xzr + ldp x10, x11, [x2] + sub x1, x1, #16 + cbz x18, .Lend + + .align 4 +.Ltop: ldp x4, x5, [x1,#16] + extr x12, x10, x9, #63 + ldp x8, x9, [x2,#16] + extr x13, x11, x10, #63 + sbcs x14, x4, x12 + sbcs x15, x5, x13 + stp x14, x15, [x0],#16 +.Lmid: ldp x4, x5, [x1,#32]! + extr x12, x8, x11, #63 + ldp x10, x11, [x2,#32]! + extr x13, x9, x8, #63 + sbcs x16, x4, x12 + sbcs x17, x5, x13 + stp x16, x17, [x0],#16 + sub x18, x18, #1 + cbnz x18, .Ltop + +.Lend: ldp x4, x5, [x1,#16] + extr x12, x10, x9, #63 + extr x13, x11, x10, #63 + sbcs x14, x4, x12 + sbcs x15, x5, x13 + stp x14, x15, [x0] + lsr x0, x11, 63 + cinc x0, x0, cc + ret + .size __gmpn_sublsh1_n,.-__gmpn_sublsh1_n + diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/sublsh2_n.s b/vere/ext/gmp/gen/aarch64-linux/mpn/sublsh2_n.s new file mode 100644 index 0000000..fa78221 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/sublsh2_n.s @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_sublsh2_n + .type __gmpn_sublsh2_n,@function +__gmpn_sublsh2_n: + lsr x18, x3, #2 + tbz x3, #0, .Lbx0 + +.Lbx1: ldr x5, [x1] + tbnz x3, #1, .Lb11 + +.Lb01: ldr x11, [x2] + cbz x18, .L1 + ldp x8, x9, [x2,#8] + lsl x13, x11, #2 + subs x15, x5, x13 + str x15, [x0],#8 + sub x1, x1, #24 + sub x2, x2, #8 + b .Lmid + +.L1: lsl x13, x11, #2 + subs x15, x5, x13 + str x15, [x0] + lsr x0, x11, 62 + cinc x0, x0, cc + ret + +.Lb11: ldr x9, [x2] + ldp x10, x11, [x2,#8]! + lsl x13, x9, #2 + subs x17, x5, x13 + str x17, [x0],#8 + sub x1, x1, #8 + cbz x18, .Lend + b .Ltop + +.Lbx0: tbnz x3, #1, .Lb10 + +.Lb00: subs x11, xzr, xzr + ldp x8, x9, [x2],#-16 + sub x1, x1, #32 + b .Lmid + +.Lb10: subs x9, xzr, xzr + ldp x10, x11, [x2] + sub x1, x1, #16 + cbz x18, .Lend + + .align 4 +.Ltop: ldp x4, x5, [x1,#16] + extr x12, x10, x9, #62 + ldp x8, x9, [x2,#16] + extr x13, x11, x10, #62 + sbcs x14, x4, x12 + sbcs x15, x5, x13 + stp x14, x15, [x0],#16 +.Lmid: ldp x4, x5, [x1,#32]! + extr x12, x8, x11, #62 + ldp x10, x11, [x2,#32]! + extr x13, x9, x8, #62 + sbcs x16, x4, x12 + sbcs x17, x5, x13 + stp x16, x17, [x0],#16 + sub x18, x18, #1 + cbnz x18, .Ltop + +.Lend: ldp x4, x5, [x1,#16] + extr x12, x10, x9, #62 + extr x13, x11, x10, #62 + sbcs x14, x4, x12 + sbcs x15, x5, x13 + stp x14, x15, [x0] + lsr x0, x11, 62 + cinc x0, x0, cc + ret + .size __gmpn_sublsh2_n,.-__gmpn_sublsh2_n + diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/submul_1.s b/vere/ext/gmp/gen/aarch64-linux/mpn/submul_1.s new file mode 100644 index 0000000..682b318 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/submul_1.s @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_submul_1 + .type __gmpn_submul_1,@function +__gmpn_submul_1: + adds x15, xzr, xzr + + tbz x2, #0, .L1 + + ldr x4, [x1],#8 + mul x8, x4, x3 + umulh x12, x4, x3 + ldr x4, [x0] + subs x8, x4, x8 + csinc x15, x12, x12, cs + str x8, [x0],#8 + +.L1: tbz x2, #1, .L2 + + ldp x4, x5, [x1],#16 + mul x8, x4, x3 + umulh x12, x4, x3 + mul x9, x5, x3 + umulh x13, x5, x3 + adds x8, x8, x15 + adcs x9, x9, x12 + ldp x4, x5, [x0] + adc x15, x13, xzr + subs x8, x4, x8 + sbcs x9, x5, x9 + csinc x15, x15, x15, cs + stp x8, x9, [x0],#16 + +.L2: lsr x2, x2, #2 + cbz x2, .Lle3 + ldp x4, x5, [x1],#32 + ldp x6, x7, [x1,#-16] + b .Lmid +.Lle3: mov x0, x15 + ret + + .align 4 +.Ltop: ldp x4, x5, [x1],#32 + ldp x6, x7, [x1,#-16] + subs x8, x16, x8 + sbcs x9, x17, x9 + stp x8, x9, [x0],#32 + sbcs x10, x12, x10 + sbcs x11, x13, x11 + stp x10, x11, [x0,#-16] + csinc x15, x15, x15, cs +.Lmid: sub x2, x2, #1 + mul x8, x4, x3 + umulh x12, x4, x3 + mul x9, x5, x3 + umulh x13, x5, x3 + adds x8, x8, x15 + mul x10, x6, x3 + umulh x14, x6, x3 + adcs x9, x9, x12 + mul x11, x7, x3 + umulh x15, x7, x3 + adcs x10, x10, x13 + ldp x16, x17, [x0] + adcs x11, x11, x14 + ldp x12, x13, [x0,#16] + adc x15, x15, xzr + cbnz x2, .Ltop + + subs x8, x16, x8 + sbcs x9, x17, x9 + sbcs x10, x12, x10 + sbcs x11, x13, x11 + stp x8, x9, [x0] + stp x10, x11, [x0,#16] + csinc x0, x15, x15, cs + ret + .size __gmpn_submul_1,.-__gmpn_submul_1 diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/xnor_n.s b/vere/ext/gmp/gen/aarch64-linux/mpn/xnor_n.s new file mode 100644 index 0000000..25f59c9 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/xnor_n.s @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_xnor_n + .type __gmpn_xnor_n,@function +__gmpn_xnor_n: + lsr x18, x3, #2 + tbz x3, #0, .Lbx0 + +.Lbx1: ldr x7, [x1] + ldr x11, [x2] + eon x15, x7, x11 + str x15, [x0],#8 + tbnz x3, #1, .Lb11 + +.Lb01: cbz x18, .Lret + ldp x4, x5, [x1,#8] + ldp x8, x9, [x2,#8] + sub x1, x1, #8 + sub x2, x2, #8 + b .Lmid + +.Lb11: ldp x6, x7, [x1,#8] + ldp x10, x11, [x2,#8] + add x1, x1, #8 + add x2, x2, #8 + cbz x18, .Lend + b .Ltop + +.Lbx0: tbnz x3, #1, .Lb10 + +.Lb00: ldp x4, x5, [x1],#-16 + ldp x8, x9, [x2],#-16 + b .Lmid + +.Lb10: ldp x6, x7, [x1] + ldp x10, x11, [x2] + cbz x18, .Lend + + .align 4 +.Ltop: ldp x4, x5, [x1,#16] + ldp x8, x9, [x2,#16] + eon x12, x6, x10 + eon x13, x7, x11 + stp x12, x13, [x0],#16 +.Lmid: ldp x6, x7, [x1,#32]! + ldp x10, x11, [x2,#32]! + eon x12, x4, x8 + eon x13, x5, x9 + stp x12, x13, [x0],#16 + sub x18, x18, #1 + cbnz x18, .Ltop + +.Lend: eon x12, x6, x10 + eon x13, x7, x11 + stp x12, x13, [x0] +.Lret: ret + .size __gmpn_xnor_n,.-__gmpn_xnor_n diff --git a/vere/ext/gmp/gen/aarch64-linux/mpn/xor_n.s b/vere/ext/gmp/gen/aarch64-linux/mpn/xor_n.s new file mode 100644 index 0000000..dc27922 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/mpn/xor_n.s @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl __gmpn_xor_n + .type __gmpn_xor_n,@function +__gmpn_xor_n: + lsr x18, x3, #2 + tbz x3, #0, .Lbx0 + +.Lbx1: ldr x7, [x1] + ldr x11, [x2] + eor x15, x7, x11 + str x15, [x0],#8 + tbnz x3, #1, .Lb11 + +.Lb01: cbz x18, .Lret + ldp x4, x5, [x1,#8] + ldp x8, x9, [x2,#8] + sub x1, x1, #8 + sub x2, x2, #8 + b .Lmid + +.Lb11: ldp x6, x7, [x1,#8] + ldp x10, x11, [x2,#8] + add x1, x1, #8 + add x2, x2, #8 + cbz x18, .Lend + b .Ltop + +.Lbx0: tbnz x3, #1, .Lb10 + +.Lb00: ldp x4, x5, [x1],#-16 + ldp x8, x9, [x2],#-16 + b .Lmid + +.Lb10: ldp x6, x7, [x1] + ldp x10, x11, [x2] + cbz x18, .Lend + + .align 4 +.Ltop: ldp x4, x5, [x1,#16] + ldp x8, x9, [x2,#16] + eor x12, x6, x10 + eor x13, x7, x11 + stp x12, x13, [x0],#16 +.Lmid: ldp x6, x7, [x1,#32]! + ldp x10, x11, [x2,#32]! + eor x12, x4, x8 + eor x13, x5, x9 + stp x12, x13, [x0],#16 + sub x18, x18, #1 + cbnz x18, .Ltop + +.Lend: eor x12, x6, x10 + eor x13, x7, x11 + stp x12, x13, [x0] +.Lret: ret + .size __gmpn_xor_n,.-__gmpn_xor_n diff --git a/vere/ext/gmp/gen/aarch64-linux/sieve_table.h b/vere/ext/gmp/gen/aarch64-linux/sieve_table.h new file mode 100644 index 0000000..ee9ac14 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/sieve_table.h @@ -0,0 +1,46 @@ +/* This file generated by gen-sieve.c - DO NOT EDIT. */ + +#if GMP_LIMB_BITS != 64 +Error, error, this data is for 64 bits +#endif + +#define PRIMESIEVE_INIT_TABLE \ + CNST_LIMB (0x3294C9E069128480), /* 5 - 196 (42 primes) */ \ + CNST_LIMB (0x95A35E1EC4AB21DC), /* 197 - 388 (32 primes) */ \ + CNST_LIMB (0x4AD7CE99B8693366), /* 389 - 580 (30 primes) */ \ + CNST_LIMB (0x6595B6DA728DC52B), /* 581 - 772 (30 primes) */ \ + CNST_LIMB (0xEA6D9F8787B0CEDE), /* 773 - 964 (26 primes) */ \ + CNST_LIMB (0x3F56A1F4CD3275A9), /* 965 - 1156 (29 primes) */ \ + CNST_LIMB (0xFD3848FB74A76ADB), /* 1157 - 1348 (26 primes) */ \ + CNST_LIMB (0xDBBA0DD1A1EDF6AF), /* 1349 - 1540 (25 primes) */ \ + CNST_LIMB (0xCEC7F17ED22799A5), /* 1541 - 1732 (27 primes) */ \ + CNST_LIMB (0xEAEC17BDBB717D56), /* 1733 - 1924 (24 primes) */ \ + CNST_LIMB (0x3B0EB7B3585AFCF3), /* 1925 - 2116 (26 primes) */ \ + CNST_LIMB (0xE563D8F69FDF6C4F), /* 2117 - 2308 (23 primes) */ \ + CNST_LIMB (0xFE5BA7ABA45E92FC), /* 2309 - 2500 (25 primes) */ \ + CNST_LIMB (0x158DEE6F3BF49B7D), /* 2501 - 2692 (24 primes) */ \ + CNST_LIMB (0xBE5A7BC4EDE6CD1A), /* 2693 - 2884 (26 primes) */ \ + CNST_LIMB (0xD7679B3FCA7BB6AD), /* 2885 - 3076 (22 primes) */ \ + CNST_LIMB (0xC3F66B971FEF37E9), /* 3077 - 3268 (22 primes) */ \ + CNST_LIMB (0x6F7EBCF339C953FD), /* 3269 - 3460 (22 primes) */ \ + CNST_LIMB (0xD5A5ECDCD235DBF0), /* 3461 - 3652 (27 primes) */ \ + CNST_LIMB (0xECFA7B2FD5B65E3B), /* 3653 - 3844 (22 primes) */ \ + CNST_LIMB (0xD28EFDF9C89F67B1), /* 3845 - 4036 (25 primes) */ \ + CNST_LIMB (0xCB7F7C7A3DD3AF4F), /* 4037 - 4228 (21 primes) */ \ + CNST_LIMB (0xEEBED6CDFF6B32CC), /* 4229 - 4420 (22 primes) */ \ + CNST_LIMB (0xD5BD73F85ECFA97C), /* 4421 - 4612 (23 primes) */ \ + CNST_LIMB (0x21FDBE4FBBAD48F7), /* 4613 - 4804 (24 primes) */ \ + CNST_LIMB (0x5E35A3B5EEB7FDE7), /* 4805 - 4996 (21 primes) */ \ + CNST_LIMB (0xD9EBFD53A7DBBCC9), /* 4997 - 5188 (22 primes) */ \ + CNST_LIMB (0xFF9EDEAF2EFE1F76), /* 5189 - 5380 (18 primes) */ +#define PRIMESIEVE_NUMBEROF_TABLE 28 +/* #define PRIMESIEVE_PRIMES_IN_TABLE 706 */ +#define PRIMESIEVE_HIGHEST_PRIME 5351 +/* #define PRIMESIEVE_FIRST_UNCHECKED 5381 */ + +#define SIEVE_MASK1 CNST_LIMB(0x3204C1A049120485) +#define SIEVE_MASKT CNST_LIMB(0xA1204892058) +#define SIEVE_2MSK1 CNST_LIMB(0x29048402110840A) +#define SIEVE_2MSK2 CNST_LIMB(0x9402180C40230184) +#define SIEVE_2MSKT CNST_LIMB(0x5021088402120) + diff --git a/vere/ext/gmp/gen/aarch64-linux/trialdivtab.h b/vere/ext/gmp/gen/aarch64-linux/trialdivtab.h new file mode 100644 index 0000000..eb81d7f --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-linux/trialdivtab.h @@ -0,0 +1,1214 @@ +#if GMP_LIMB_BITS != 64 +#error This table is for GMP_LIMB_BITS = 64 +#endif + +#if GMP_NAIL_BITS != 0 +#error This table does not support nails +#endif + +#ifdef WANT_dtab + P(3,CNST_LIMB(0xaaaaaaaaaaaaaaab),CNST_LIMB(0x5555555555555555)), + P(5,CNST_LIMB(0xcccccccccccccccd),CNST_LIMB(0x3333333333333333)), + P(7,CNST_LIMB(0x6db6db6db6db6db7),CNST_LIMB(0x2492492492492492)), + P(11,CNST_LIMB(0x2e8ba2e8ba2e8ba3),CNST_LIMB(0x1745d1745d1745d1)), + P(13,CNST_LIMB(0x4ec4ec4ec4ec4ec5),CNST_LIMB(0x13b13b13b13b13b1)), + P(17,CNST_LIMB(0xf0f0f0f0f0f0f0f1),CNST_LIMB(0xf0f0f0f0f0f0f0f)), + P(19,CNST_LIMB(0x86bca1af286bca1b),CNST_LIMB(0xd79435e50d79435)), + P(23,CNST_LIMB(0xd37a6f4de9bd37a7),CNST_LIMB(0xb21642c8590b216)), + P(29,CNST_LIMB(0x34f72c234f72c235),CNST_LIMB(0x8d3dcb08d3dcb08)), + P(31,CNST_LIMB(0xef7bdef7bdef7bdf),CNST_LIMB(0x842108421084210)), + P(37,CNST_LIMB(0x14c1bacf914c1bad),CNST_LIMB(0x6eb3e45306eb3e4)), + P(41,CNST_LIMB(0x8f9c18f9c18f9c19),CNST_LIMB(0x63e7063e7063e70)), + P(43,CNST_LIMB(0x82fa0be82fa0be83),CNST_LIMB(0x5f417d05f417d05)), + P(47,CNST_LIMB(0x51b3bea3677d46cf),CNST_LIMB(0x572620ae4c415c9)), + P(53,CNST_LIMB(0x21cfb2b78c13521d),CNST_LIMB(0x4d4873ecade304d)), + P(59,CNST_LIMB(0xcbeea4e1a08ad8f3),CNST_LIMB(0x456c797dd49c341)), + P(61,CNST_LIMB(0x4fbcda3ac10c9715),CNST_LIMB(0x4325c53ef368eb0)), + P(67,CNST_LIMB(0xf0b7672a07a44c6b),CNST_LIMB(0x3d226357e16ece5)), + P(71,CNST_LIMB(0x193d4bb7e327a977),CNST_LIMB(0x39b0ad12073615a)), + P(73,CNST_LIMB(0x7e3f1f8fc7e3f1f9),CNST_LIMB(0x381c0e070381c0e)), + P(79,CNST_LIMB(0x9b8b577e613716af),CNST_LIMB(0x33d91d2a2067b23)), + P(83,CNST_LIMB(0xa3784a062b2e43db),CNST_LIMB(0x3159721ed7e7534)), + P(89,CNST_LIMB(0xf47e8fd1fa3f47e9),CNST_LIMB(0x2e05c0b81702e05)), + P(97,CNST_LIMB(0xa3a0fd5c5f02a3a1),CNST_LIMB(0x2a3a0fd5c5f02a3)), + P(101,CNST_LIMB(0x3a4c0a237c32b16d),CNST_LIMB(0x288df0cac5b3f5d)), + P(103,CNST_LIMB(0xdab7ec1dd3431b57),CNST_LIMB(0x27c45979c95204f)), + P(107,CNST_LIMB(0x77a04c8f8d28ac43),CNST_LIMB(0x2647c69456217ec)), + P(109,CNST_LIMB(0xa6c0964fda6c0965),CNST_LIMB(0x2593f69b02593f6)), + P(113,CNST_LIMB(0x90fdbc090fdbc091),CNST_LIMB(0x243f6f0243f6f02)), + P(127,CNST_LIMB(0x7efdfbf7efdfbf7f),CNST_LIMB(0x204081020408102)), + P(131,CNST_LIMB(0x3e88cb3c9484e2b),CNST_LIMB(0x1f44659e4a42715)), + P(137,CNST_LIMB(0xe21a291c077975b9),CNST_LIMB(0x1de5d6e3f8868a4)), + P(139,CNST_LIMB(0x3aef6ca970586723),CNST_LIMB(0x1d77b654b82c339)), + P(149,CNST_LIMB(0xdf5b0f768ce2cabd),CNST_LIMB(0x1b7d6c3dda338b2)), + P(151,CNST_LIMB(0x6fe4dfc9bf937f27),CNST_LIMB(0x1b2036406c80d90)), + P(157,CNST_LIMB(0x5b4fe5e92c0685b5),CNST_LIMB(0x1a16d3f97a4b01a)), + P(163,CNST_LIMB(0x1f693a1c451ab30b),CNST_LIMB(0x1920fb49d0e228d)), + P(167,CNST_LIMB(0x8d07aa27db35a717),CNST_LIMB(0x1886e5f0abb0499)), + P(173,CNST_LIMB(0x882383b30d516325),CNST_LIMB(0x17ad2208e0ecc35)), + P(179,CNST_LIMB(0xed6866f8d962ae7b),CNST_LIMB(0x16e1f76b4337c6c)), + P(181,CNST_LIMB(0x3454dca410f8ed9d),CNST_LIMB(0x16a13cd15372904)), + P(191,CNST_LIMB(0x1d7ca632ee936f3f),CNST_LIMB(0x1571ed3c506b39a)), + P(193,CNST_LIMB(0x70bf015390948f41),CNST_LIMB(0x15390948f40feac)), + P(197,CNST_LIMB(0xc96bdb9d3d137e0d),CNST_LIMB(0x14cab88725af6e7)), + P(199,CNST_LIMB(0x2697cc8aef46c0f7),CNST_LIMB(0x149539e3b2d066e)), + P(211,CNST_LIMB(0xc0e8f2a76e68575b),CNST_LIMB(0x13698df3de07479)), + P(223,CNST_LIMB(0x687763dfdb43bb1f),CNST_LIMB(0x125e22708092f11)), + P(227,CNST_LIMB(0x1b10ea929ba144cb),CNST_LIMB(0x120b470c67c0d88)), + P(229,CNST_LIMB(0x1d10c4c0478bbced),CNST_LIMB(0x11e2ef3b3fb8744)), + P(233,CNST_LIMB(0x63fb9aeb1fdcd759),CNST_LIMB(0x119453808ca29c0)), + P(239,CNST_LIMB(0x64afaa4f437b2e0f),CNST_LIMB(0x112358e75d30336)), + P(241,CNST_LIMB(0xf010fef010fef011),CNST_LIMB(0x10fef010fef010f)), + P(251,CNST_LIMB(0x28cbfbeb9a020a33),CNST_LIMB(0x105197f7d734041)), + P(257,CNST_LIMB(0xff00ff00ff00ff01),CNST_LIMB(0xff00ff00ff00ff)), + P(263,CNST_LIMB(0xd624fd1470e99cb7),CNST_LIMB(0xf92fb2211855a8)), + P(269,CNST_LIMB(0x8fb3ddbd6205b5c5),CNST_LIMB(0xf3a0d52cba8723)), + P(271,CNST_LIMB(0xd57da36ca27acdef),CNST_LIMB(0xf1d48bcee0d399)), + P(277,CNST_LIMB(0xee70c03b25e4463d),CNST_LIMB(0xec979118f3fc4d)), + P(281,CNST_LIMB(0xc5b1a6b80749cb29),CNST_LIMB(0xe939651fe2d8d3)), + P(283,CNST_LIMB(0x47768073c9b97113),CNST_LIMB(0xe79372e225fe30)), + P(293,CNST_LIMB(0x2591e94884ce32ad),CNST_LIMB(0xdfac1f74346c57)), + P(307,CNST_LIMB(0xf02806abc74be1fb),CNST_LIMB(0xd578e97c3f5fe5)), + P(311,CNST_LIMB(0x7ec3e8f3a7198487),CNST_LIMB(0xd2ba083b445250)), + P(313,CNST_LIMB(0x58550f8a39409d09),CNST_LIMB(0xd161543e28e502)), + P(317,CNST_LIMB(0xec9e48ae6f71de15),CNST_LIMB(0xcebcf8bb5b4169)), + P(331,CNST_LIMB(0x2ff3a018bfce8063),CNST_LIMB(0xc5fe740317f9d0)), + P(337,CNST_LIMB(0x7f9ec3fcf61fe7b1),CNST_LIMB(0xc2780613c0309e)), + P(347,CNST_LIMB(0x89f5abe570e046d3),CNST_LIMB(0xbcdd535db1cc5b)), + P(349,CNST_LIMB(0xda971b23f1545af5),CNST_LIMB(0xbbc8408cd63069)), + P(353,CNST_LIMB(0x79d5f00b9a7862a1),CNST_LIMB(0xb9a7862a0ff465)), + P(359,CNST_LIMB(0x4dba1df32a128a57),CNST_LIMB(0xb68d31340e4307)), + P(367,CNST_LIMB(0x87530217b7747d8f),CNST_LIMB(0xb2927c29da5519)), + P(373,CNST_LIMB(0x30baae53bb5e06dd),CNST_LIMB(0xafb321a1496fdf)), + P(379,CNST_LIMB(0xee70206c12e9b5b3),CNST_LIMB(0xaceb0f891e6551)), + P(383,CNST_LIMB(0xcdde9462ec9dbe7f),CNST_LIMB(0xab1cbdd3e2970f)), + P(389,CNST_LIMB(0xafb64b05ec41cf4d),CNST_LIMB(0xa87917088e262b)), + P(397,CNST_LIMB(0x2944ff5aec02945),CNST_LIMB(0xa513fd6bb00a51)), + P(401,CNST_LIMB(0x2cb033128382df71),CNST_LIMB(0xa36e71a2cb0331)), + P(409,CNST_LIMB(0x1ccacc0c84b1c2a9),CNST_LIMB(0xa03c1688732b30)), + P(419,CNST_LIMB(0x19a93db575eb3a0b),CNST_LIMB(0x9c69169b30446d)), + P(421,CNST_LIMB(0xcebeef94fa86fe2d),CNST_LIMB(0x9baade8e4a2f6e)), + P(431,CNST_LIMB(0x6faa77fb3f8df54f),CNST_LIMB(0x980e4156201301)), + P(433,CNST_LIMB(0x68a58af00975a751),CNST_LIMB(0x975a750ff68a58)), + P(439,CNST_LIMB(0xd56e36d0c3efac07),CNST_LIMB(0x9548e4979e0829)), + P(443,CNST_LIMB(0xd8b44c47a8299b73),CNST_LIMB(0x93efd1c50e726b)), + P(449,CNST_LIMB(0x2d9ccaf9ba70e41),CNST_LIMB(0x91f5bcb8bb02d9)), + P(457,CNST_LIMB(0x985e1c023d9e879),CNST_LIMB(0x8f67a1e3fdc261)), + P(461,CNST_LIMB(0x2a343316c494d305),CNST_LIMB(0x8e2917e0e702c6)), + P(463,CNST_LIMB(0x70cb7916ab67652f),CNST_LIMB(0x8d8be33f95d715)), + P(467,CNST_LIMB(0xd398f132fb10fe5b),CNST_LIMB(0x8c55841c815ed5)), + P(479,CNST_LIMB(0x6f2a38a6bf54fa1f),CNST_LIMB(0x88d180cd3a4133)), + P(487,CNST_LIMB(0x211df689b98f81d7),CNST_LIMB(0x869222b1acf1ce)), + P(491,CNST_LIMB(0xe994983e90f1ec3),CNST_LIMB(0x85797b917765ab)), + P(499,CNST_LIMB(0xad671e44bed87f3b),CNST_LIMB(0x8355ace3c897db)), + P(503,CNST_LIMB(0xf9623a0516e70fc7),CNST_LIMB(0x824a4e60b3262b)), + P(509,CNST_LIMB(0x4b7129be9dece355),CNST_LIMB(0x80c121b28bd1ba)), + P(521,CNST_LIMB(0x190f3b7473f62c39),CNST_LIMB(0x7dc9f3397d4c29)), + P(523,CNST_LIMB(0x63dacc9aad46f9a3),CNST_LIMB(0x7d4ece8fe88139)), + P(541,CNST_LIMB(0xc1108fda24e8d035),CNST_LIMB(0x79237d65bcce50)), + P(547,CNST_LIMB(0xb77578472319bd8b),CNST_LIMB(0x77cf53c5f7936c)), + P(557,CNST_LIMB(0x473d20a1c7ed9da5),CNST_LIMB(0x75a8accfbdd11e)), + P(563,CNST_LIMB(0xfbe85af0fea2c8fb),CNST_LIMB(0x7467ac557c228e)), + P(569,CNST_LIMB(0x58a1f7e6ce0f4c09),CNST_LIMB(0x732d70ed8db8e9)), + P(571,CNST_LIMB(0x1a00e58c544986f3),CNST_LIMB(0x72c62a24c3797f)), + P(577,CNST_LIMB(0x7194a17f55a10dc1),CNST_LIMB(0x7194a17f55a10d)), + P(587,CNST_LIMB(0x7084944785e33763),CNST_LIMB(0x6fa549b41da7e7)), + P(593,CNST_LIMB(0xba10679bd84886b1),CNST_LIMB(0x6e8419e6f61221)), + P(599,CNST_LIMB(0xebe9c6bb31260967),CNST_LIMB(0x6d68b5356c207b)), + P(601,CNST_LIMB(0x97a3fe4bd1ff25e9),CNST_LIMB(0x6d0b803685c01b)), + P(607,CNST_LIMB(0x6c6388395b84d99f),CNST_LIMB(0x6bf790a8b2d207)), + P(613,CNST_LIMB(0x8c51da6a1335df6d),CNST_LIMB(0x6ae907ef4b96c2)), + P(617,CNST_LIMB(0x46f3234475d5add9),CNST_LIMB(0x6a37991a23aead)), + P(619,CNST_LIMB(0x905605ca3c619a43),CNST_LIMB(0x69dfbdd4295b66)), + P(631,CNST_LIMB(0xcee8dff304767747),CNST_LIMB(0x67dc4c45c8033e)), + P(641,CNST_LIMB(0xff99c27f00663d81),CNST_LIMB(0x663d80ff99c27f)), + P(643,CNST_LIMB(0xacca407f671ddc2b),CNST_LIMB(0x65ec17e3559948)), + P(647,CNST_LIMB(0xe71298bac1e12337),CNST_LIMB(0x654ac835cfba5c)), + P(653,CNST_LIMB(0xfa1e94309cd09045),CNST_LIMB(0x645c854ae10772)), + P(659,CNST_LIMB(0xbebccb8e91496b9b),CNST_LIMB(0x6372990e5f901f)), + P(661,CNST_LIMB(0x312fa30cc7d7b8bd),CNST_LIMB(0x6325913c07beef)), + P(673,CNST_LIMB(0x6160ff9e9f006161),CNST_LIMB(0x6160ff9e9f0061)), + P(677,CNST_LIMB(0x6b03673b5e28152d),CNST_LIMB(0x60cdb520e5e88e)), + P(683,CNST_LIMB(0xfe802ffa00bfe803),CNST_LIMB(0x5ff4017fd005ff)), + P(691,CNST_LIMB(0xe66fe25c9e907c7b),CNST_LIMB(0x5ed79e31a4dccd)), + P(701,CNST_LIMB(0x3f8b236c76528895),CNST_LIMB(0x5d7d42d48ac5ef)), + P(709,CNST_LIMB(0xf6f923bf01ce2c0d),CNST_LIMB(0x5c6f35ccba5028)), + P(719,CNST_LIMB(0x6c3d3d98bed7c42f),CNST_LIMB(0x5b2618ec6ad0a5)), + P(727,CNST_LIMB(0x30981efcd4b010e7),CNST_LIMB(0x5a2553748e42e7)), + P(733,CNST_LIMB(0x6f691fc81ebbe575),CNST_LIMB(0x59686cf744cd5b)), + P(739,CNST_LIMB(0xb10480ddb47b52cb),CNST_LIMB(0x58ae97bab79976)), + P(743,CNST_LIMB(0x74cd59ed64f3f0d7),CNST_LIMB(0x58345f1876865f)), + P(751,CNST_LIMB(0x105cb81316d6c0f),CNST_LIMB(0x5743d5bb24795a)), + P(757,CNST_LIMB(0x9be64c6d91c1195d),CNST_LIMB(0x5692c4d1ab74ab)), + P(761,CNST_LIMB(0x71b3f945a27b1f49),CNST_LIMB(0x561e46a4d5f337)), + P(769,CNST_LIMB(0x77d80d50e508fd01),CNST_LIMB(0x5538ed06533997)), + P(773,CNST_LIMB(0xa5eb778e133551cd),CNST_LIMB(0x54c807f2c0bec2)), + P(787,CNST_LIMB(0x18657d3c2d8a3f1b),CNST_LIMB(0x5345efbc572d36)), + P(797,CNST_LIMB(0x2e40e220c34ad735),CNST_LIMB(0x523a758f941345)), + P(809,CNST_LIMB(0xa76593c70a714919),CNST_LIMB(0x5102370f816c89)), + P(811,CNST_LIMB(0x1eef452124eea383),CNST_LIMB(0x50cf129fb94acf)), + P(821,CNST_LIMB(0x38206dc242ba771d),CNST_LIMB(0x4fd31941cafdd1)), + P(823,CNST_LIMB(0x4cd4c35807772287),CNST_LIMB(0x4fa1704aa75945)), + P(827,CNST_LIMB(0x83de917d5e69ddf3),CNST_LIMB(0x4f3ed6d45a63ad)), + P(829,CNST_LIMB(0x882ef0403b4a6c15),CNST_LIMB(0x4f0de57154ebed)), + P(839,CNST_LIMB(0xf8fb6c51c606b677),CNST_LIMB(0x4e1cae8815f811)), + P(853,CNST_LIMB(0xb4abaac446d3e1fd),CNST_LIMB(0x4cd47ba5f6ff19)), + P(857,CNST_LIMB(0xa9f83bbe484a14e9),CNST_LIMB(0x4c78ae734df709)), + P(859,CNST_LIMB(0xbebbc0d1ce874d3),CNST_LIMB(0x4c4b19ed85cfb8)), + P(863,CNST_LIMB(0xbd418eaf0473189f),CNST_LIMB(0x4bf093221d1218)), + P(877,CNST_LIMB(0x44e3af6f372b7e65),CNST_LIMB(0x4aba3c21dc633f)), + P(881,CNST_LIMB(0xc87fdace4f9e5d91),CNST_LIMB(0x4a6360c344de00)), + P(883,CNST_LIMB(0xec93479c446bd9bb),CNST_LIMB(0x4a383e9f74d68a)), + P(887,CNST_LIMB(0xdac4d592e777c647),CNST_LIMB(0x49e28fbabb9940)), + P(907,CNST_LIMB(0xa63ea8c8f61f0c23),CNST_LIMB(0x48417b57c78cd7)), + P(911,CNST_LIMB(0xe476062ea5cbbb6f),CNST_LIMB(0x47f043713f3a2b)), + P(919,CNST_LIMB(0xdf68761c69daac27),CNST_LIMB(0x474ff2a10281cf)), + P(929,CNST_LIMB(0xb813d737637aa061),CNST_LIMB(0x468b6f9a978f91)), + P(937,CNST_LIMB(0xa3a77aac1fb15099),CNST_LIMB(0x45f13f1caff2e2)), + P(941,CNST_LIMB(0x17f0c3e0712c5825),CNST_LIMB(0x45a5228cec23e9)), + P(947,CNST_LIMB(0xfd912a70ff30637b),CNST_LIMB(0x45342c556c66b9)), + P(953,CNST_LIMB(0xfbb3b5dc01131289),CNST_LIMB(0x44c4a23feeced7)), + P(967,CNST_LIMB(0x856d560a0f5acdf7),CNST_LIMB(0x43c5c20d3c9fe6)), + P(971,CNST_LIMB(0x96472f314d3f89e3),CNST_LIMB(0x437e494b239798)), + P(977,CNST_LIMB(0xa76f5c7ed2253531),CNST_LIMB(0x43142d118e47cb)), + P(983,CNST_LIMB(0x816eae7c7bf69fe7),CNST_LIMB(0x42ab5c73a13458)), + P(991,CNST_LIMB(0xb6a2bea4cfb1781f),CNST_LIMB(0x4221950db0f3db)), + P(997,CNST_LIMB(0xa3900c53318e81ed),CNST_LIMB(0x41bbb2f80a4553)), + P(1009,CNST_LIMB(0x60aa7f5d9f148d11),CNST_LIMB(0x40f391612c6680)), + P(1013,CNST_LIMB(0x6be8c0102c7a505d),CNST_LIMB(0x40b1e94173fefd)), + P(1019,CNST_LIMB(0x8ff3f0ed28728f33),CNST_LIMB(0x4050647d9d0445)), + P(1021,CNST_LIMB(0x680e0a87e5ec7155),CNST_LIMB(0x4030241b144f3b)), + P(1031,CNST_LIMB(0xbbf70fa49fe829b7),CNST_LIMB(0x3f90c2ab542cb1)), + P(1033,CNST_LIMB(0xd69d1e7b6a50ca39),CNST_LIMB(0x3f71412d59f597)), + P(1039,CNST_LIMB(0x1a1e0f46b6d26aef),CNST_LIMB(0x3f137701b98841)), + P(1049,CNST_LIMB(0x7429f9a7a8251829),CNST_LIMB(0x3e79886b60e278)), + P(1051,CNST_LIMB(0xd9c2219d1b863613),CNST_LIMB(0x3e5b1916a7181d)), + P(1061,CNST_LIMB(0x91406c1820d077ad),CNST_LIMB(0x3dc4a50968f524)), + P(1063,CNST_LIMB(0x521f4ec02e3d2b97),CNST_LIMB(0x3da6e4c9550321)), + P(1069,CNST_LIMB(0xbb8283b63dc8eba5),CNST_LIMB(0x3d4e4f06f1def3)), + P(1087,CNST_LIMB(0x431eda153229ebbf),CNST_LIMB(0x3c4a6bdd24f9a4)), + P(1091,CNST_LIMB(0xaf0bf78d7e01686b),CNST_LIMB(0x3c11d54b525c73)), + P(1093,CNST_LIMB(0xa9ced0742c086e8d),CNST_LIMB(0x3bf5b1c5721065)), + P(1097,CNST_LIMB(0xc26458ad9f632df9),CNST_LIMB(0x3bbdb9862f23b4)), + P(1103,CNST_LIMB(0xbbff1255dff892af),CNST_LIMB(0x3b6a8801db5440)), + P(1109,CNST_LIMB(0xcbd49a333f04d8fd),CNST_LIMB(0x3b183cf0fed886)), + P(1117,CNST_LIMB(0xec84ed6f9cfdeff5),CNST_LIMB(0x3aabe394bdc3f4)), + P(1123,CNST_LIMB(0x97980cc40bda9d4b),CNST_LIMB(0x3a5ba3e76156da)), + P(1129,CNST_LIMB(0x777f34d524f5cbd9),CNST_LIMB(0x3a0c3e953378db)), + P(1151,CNST_LIMB(0x2797051d94cbbb7f),CNST_LIMB(0x38f03561320b1e)), + P(1153,CNST_LIMB(0xea769051b4f43b81),CNST_LIMB(0x38d6ecaef5908a)), + P(1163,CNST_LIMB(0xce7910f3034d4323),CNST_LIMB(0x3859cf221e6069)), + P(1171,CNST_LIMB(0x92791d1374f5b99b),CNST_LIMB(0x37f7415dc9588a)), + P(1181,CNST_LIMB(0x89a5645cc68ea1b5),CNST_LIMB(0x377df0d3902626)), + P(1187,CNST_LIMB(0x5f8aacf796c0cf0b),CNST_LIMB(0x373622136907fa)), + P(1193,CNST_LIMB(0xf2e90a15e33edf99),CNST_LIMB(0x36ef0c3b39b92f)), + P(1201,CNST_LIMB(0x8e99e5feb897c451),CNST_LIMB(0x36915f47d55e6d)), + P(1213,CNST_LIMB(0xaca2eda38fb91695),CNST_LIMB(0x36072cf3f866fd)), + P(1217,CNST_LIMB(0x5d9b737be5ea8b41),CNST_LIMB(0x35d9b737be5ea8)), + P(1223,CNST_LIMB(0x4aefe1db93fd7cf7),CNST_LIMB(0x35961559cc81c7)), + P(1229,CNST_LIMB(0xa0994ef20b3f8805),CNST_LIMB(0x35531c897a4592)), + P(1231,CNST_LIMB(0x103890bda912822f),CNST_LIMB(0x353ceebd3e98a4)), + P(1237,CNST_LIMB(0xb441659d13a9147d),CNST_LIMB(0x34fad381585e5e)), + P(1249,CNST_LIMB(0x1e2134440c4c3f21),CNST_LIMB(0x347884d1103130)), + P(1259,CNST_LIMB(0x263a27727a6883c3),CNST_LIMB(0x340dd3ac39bf56)), + P(1277,CNST_LIMB(0x78e221472ab33855),CNST_LIMB(0x3351fdfecc140c)), + P(1279,CNST_LIMB(0x95eac88e82e6faff),CNST_LIMB(0x333d72b089b524)), + P(1283,CNST_LIMB(0xf66c258317be8dab),CNST_LIMB(0x33148d44d6b261)), + P(1289,CNST_LIMB(0x9ee202c7cb91939),CNST_LIMB(0x32d7aef8412458)), + P(1291,CNST_LIMB(0x8d2fca1042a09ea3),CNST_LIMB(0x32c3850e79c0f1)), + P(1297,CNST_LIMB(0x82779c856d8b8bf1),CNST_LIMB(0x328766d59048a2)), + P(1301,CNST_LIMB(0x3879361cba8a223d),CNST_LIMB(0x325fa18cb11833)), + P(1303,CNST_LIMB(0xf23f43639c3182a7),CNST_LIMB(0x324bd659327e22)), + P(1307,CNST_LIMB(0xa03868fc474bcd13),CNST_LIMB(0x32246e784360f4)), + P(1319,CNST_LIMB(0x651e78b8c5311a97),CNST_LIMB(0x31afa5f1a33a08)), + P(1321,CNST_LIMB(0x8ffce639c00c6719),CNST_LIMB(0x319c63ff398e70)), + P(1327,CNST_LIMB(0xf7b460754b0b61cf),CNST_LIMB(0x3162f7519a86a7)), + P(1361,CNST_LIMB(0x7b03f3359b8e63b1),CNST_LIMB(0x30271fc9d3fc3c)), + P(1367,CNST_LIMB(0xa55c5326041eb667),CNST_LIMB(0x2ff104ae89750b)), + P(1373,CNST_LIMB(0x647f88ab896a76f5),CNST_LIMB(0x2fbb62a236d133)), + P(1381,CNST_LIMB(0x8fd971434a55a46d),CNST_LIMB(0x2f74997d2070b4)), + P(1399,CNST_LIMB(0x9fbf969958046447),CNST_LIMB(0x2ed84aa8b6fce3)), + P(1409,CNST_LIMB(0x9986feba69be3a81),CNST_LIMB(0x2e832df7a46dbd)), + P(1423,CNST_LIMB(0xa668b3e6d053796f),CNST_LIMB(0x2e0e0846857cab)), + P(1427,CNST_LIMB(0x97694e6589f4e09b),CNST_LIMB(0x2decfbdfb55ee6)), + P(1429,CNST_LIMB(0x37890c00b7721dbd),CNST_LIMB(0x2ddc876f3ff488)), + P(1433,CNST_LIMB(0x5ac094a235f37ea9),CNST_LIMB(0x2dbbc1d4c482c4)), + P(1439,CNST_LIMB(0x31cff775f2d5d65f),CNST_LIMB(0x2d8af0e0de0556)), + P(1447,CNST_LIMB(0xddad8e6b36505217),CNST_LIMB(0x2d4a7b7d14b30a)), + P(1451,CNST_LIMB(0x5a27df897062cd03),CNST_LIMB(0x2d2a85073bcf4e)), + P(1453,CNST_LIMB(0xe2396fe0fdb5a625),CNST_LIMB(0x2d1a9ab13e8be4)), + P(1459,CNST_LIMB(0xb352a4957e82317b),CNST_LIMB(0x2ceb1eb4b9fd8b)), + P(1471,CNST_LIMB(0xd8ab3f2c60c2ea3f),CNST_LIMB(0x2c8d503a79794c)), + P(1481,CNST_LIMB(0x6893f702f0452479),CNST_LIMB(0x2c404d708784ed)), + P(1483,CNST_LIMB(0x9686fdc182acf7e3),CNST_LIMB(0x2c31066315ec52)), + P(1487,CNST_LIMB(0x6854037173dce12f),CNST_LIMB(0x2c1297d80f2664)), + P(1489,CNST_LIMB(0x7f0ded1685c27331),CNST_LIMB(0x2c037044c55f6b)), + P(1493,CNST_LIMB(0xeeda72e1fe490b7d),CNST_LIMB(0x2be5404cd13086)), + P(1499,CNST_LIMB(0x9e7bfc959a8e6e53),CNST_LIMB(0x2bb845adaf0cce)), + P(1511,CNST_LIMB(0x49b314d6d4753dd7),CNST_LIMB(0x2b5f62c639f16d)), + P(1523,CNST_LIMB(0x2e8f8c5ac4aa1b3b),CNST_LIMB(0x2b07e6734f2b88)), + P(1531,CNST_LIMB(0xb8ef723481163d33),CNST_LIMB(0x2ace569d8342b7)), + P(1543,CNST_LIMB(0x6a2ec96a594287b7),CNST_LIMB(0x2a791d5dbd4dcf)), + P(1549,CNST_LIMB(0xdba41c6d13aab8c5),CNST_LIMB(0x2a4eff8113017c)), + P(1553,CNST_LIMB(0xc2adbe648dc3aaf1),CNST_LIMB(0x2a3319e156df32)), + P(1559,CNST_LIMB(0x87a2bade565f91a7),CNST_LIMB(0x2a0986286526ea)), + P(1567,CNST_LIMB(0x4d6fe8798c01f5df),CNST_LIMB(0x29d29551d91e39)), + P(1571,CNST_LIMB(0x3791310c8c23d98b),CNST_LIMB(0x29b7529e109f0a)), + P(1579,CNST_LIMB(0xf80e446b01228883),CNST_LIMB(0x298137491ea465)), + P(1583,CNST_LIMB(0x9aed1436fbf500cf),CNST_LIMB(0x29665e1eb9f9da)), + P(1597,CNST_LIMB(0x7839b54cc8b24115),CNST_LIMB(0x2909752e019a5e)), + P(1601,CNST_LIMB(0xc128c646ad0309c1),CNST_LIMB(0x28ef35e2e5efb0)), + P(1607,CNST_LIMB(0x14de631624a3c377),CNST_LIMB(0x28c815aa4b8278)), + P(1609,CNST_LIMB(0x3f7b9fe68b0ecbf9),CNST_LIMB(0x28bb1b867199da)), + P(1613,CNST_LIMB(0x284ffd75ec00a285),CNST_LIMB(0x28a13ff5d7b002)), + P(1619,CNST_LIMB(0x37803cb80dea2ddb),CNST_LIMB(0x287ab3f173e755)), + P(1621,CNST_LIMB(0x86b63f7c9ac4c6fd),CNST_LIMB(0x286dead67713bd)), + P(1627,CNST_LIMB(0x8b6851d1bd99b9d3),CNST_LIMB(0x2847bfcda6503e)), + P(1637,CNST_LIMB(0xb62fda77ca343b6d),CNST_LIMB(0x2808c1ea6b4777)), + P(1657,CNST_LIMB(0x1f0dc009e34383c9),CNST_LIMB(0x278d0e0f23ff61)), + P(1663,CNST_LIMB(0x496dc21ddd35b97f),CNST_LIMB(0x2768863c093c7f)), + P(1667,CNST_LIMB(0xb0e96ce17090f82b),CNST_LIMB(0x27505115a73ca8)), + P(1669,CNST_LIMB(0xaadf05acdd7d024d),CNST_LIMB(0x274441a61dc1b9)), + P(1693,CNST_LIMB(0xcb138196746eafb5),CNST_LIMB(0x26b5c166113cf0)), + P(1697,CNST_LIMB(0x347f523736755d61),CNST_LIMB(0x269e65ad07b18e)), + P(1699,CNST_LIMB(0xd14a48a051f7dd0b),CNST_LIMB(0x2692c25f877560)), + P(1709,CNST_LIMB(0x474d71b1ce914d25),CNST_LIMB(0x2658fa7523cd11)), + P(1721,CNST_LIMB(0x386063f5e28c1f89),CNST_LIMB(0x26148710cf0f9e)), + P(1723,CNST_LIMB(0x1db7325e32d04e73),CNST_LIMB(0x2609363b22524f)), + P(1733,CNST_LIMB(0xfef748d3893b880d),CNST_LIMB(0x25d1065a1c1122)), + P(1741,CNST_LIMB(0x2f3351506e935605),CNST_LIMB(0x25a48a382b863f)), + P(1747,CNST_LIMB(0x7a3637fa2376415b),CNST_LIMB(0x25837190eccdbc)), + P(1753,CNST_LIMB(0x4ac525d2baa21969),CNST_LIMB(0x256292e95d510c)), + P(1759,CNST_LIMB(0x3a11c16b42cd351f),CNST_LIMB(0x2541eda98d068c)), + P(1777,CNST_LIMB(0x6c7abde0049c2a11),CNST_LIMB(0x24e15087fed8f5)), + P(1783,CNST_LIMB(0x54dad0303e069ac7),CNST_LIMB(0x24c18b20979e5d)), + P(1787,CNST_LIMB(0xebf1ac9fdfe91433),CNST_LIMB(0x24ac7b336de0c5)), + P(1789,CNST_LIMB(0xfafdda8237cec655),CNST_LIMB(0x24a1fc478c60bb)), + P(1801,CNST_LIMB(0xdce3ff6e71ffb739),CNST_LIMB(0x2463801231c009)), + P(1811,CNST_LIMB(0xbed5737d6286db1b),CNST_LIMB(0x24300fd506ed33)), + P(1823,CNST_LIMB(0xe479e431fe08b4df),CNST_LIMB(0x23f314a494da81)), + P(1831,CNST_LIMB(0x9dd9b0dd7742f897),CNST_LIMB(0x23cadedd2fad3a)), + P(1847,CNST_LIMB(0x8f09d7402c5a5e87),CNST_LIMB(0x237b7ed2664a03)), + P(1861,CNST_LIMB(0x9216d5c4d958738d),CNST_LIMB(0x23372967dbaf1d)), + P(1867,CNST_LIMB(0xb3139ba11d34ca63),CNST_LIMB(0x231a308a371f20)), + P(1871,CNST_LIMB(0x47d54f7ed644afaf),CNST_LIMB(0x2306fa63e1e600)), + P(1873,CNST_LIMB(0x92a81d85cf11a1b1),CNST_LIMB(0x22fd6731575684)), + P(1877,CNST_LIMB(0x754b26533253bdfd),CNST_LIMB(0x22ea507805749c)), + P(1879,CNST_LIMB(0xbbe0efc980bfd467),CNST_LIMB(0x22e0cce8b3d720)), + P(1889,CNST_LIMB(0xc0d8d594f024dca1),CNST_LIMB(0x22b1887857d161)), + P(1901,CNST_LIMB(0x8238d43bcaac1a65),CNST_LIMB(0x227977fcc49cc0)), + P(1907,CNST_LIMB(0x27779c1fae6175bb),CNST_LIMB(0x225db37b5e5f4f)), + P(1913,CNST_LIMB(0xa746ca9af708b2c9),CNST_LIMB(0x22421b91322ed6)), + P(1931,CNST_LIMB(0x93f3cd9f389be823),CNST_LIMB(0x21f05b35f52102)), + P(1933,CNST_LIMB(0x5cb4a4c04c489345),CNST_LIMB(0x21e75de5c70d60)), + P(1949,CNST_LIMB(0xbf6047743e85b6b5),CNST_LIMB(0x21a01d6c19be96)), + P(1951,CNST_LIMB(0x61c147831563545f),CNST_LIMB(0x21974a6615c81a)), + P(1973,CNST_LIMB(0xedb47c0ae62dee9d),CNST_LIMB(0x213767697cf36a)), + P(1979,CNST_LIMB(0xa3824386673a573),CNST_LIMB(0x211d9f7fad35f1)), + P(1987,CNST_LIMB(0xa4a77d19e575a0eb),CNST_LIMB(0x20fb7d9dd36c18)), + P(1993,CNST_LIMB(0xa2bee045e066c279),CNST_LIMB(0x20e2123d661e0e)), + P(1997,CNST_LIMB(0xc23618de8ab43d05),CNST_LIMB(0x20d135b66ae990)), + P(1999,CNST_LIMB(0x266b515216cb9f2f),CNST_LIMB(0x20c8cded4d7a8e)), + P(2003,CNST_LIMB(0xe279edd9e9c2e85b),CNST_LIMB(0x20b80b3f43ddbf)), + P(2011,CNST_LIMB(0xd0c591c221dc9c53),CNST_LIMB(0x2096b9180f46a6)), + P(2017,CNST_LIMB(0x6da8ee9c9ee7c21),CNST_LIMB(0x207de7e28de5da)), + P(2027,CNST_LIMB(0x9dfebcaf4c27e8c3),CNST_LIMB(0x2054dec8cf1fb3)), + P(2029,CNST_LIMB(0x49aeff9f19dd6de5),CNST_LIMB(0x204cb630b3aab5)), + P(2039,CNST_LIMB(0x86976a57a296e9c7),CNST_LIMB(0x202428adc37beb)), + P(2053,CNST_LIMB(0xa3b9abf4872b84cd),CNST_LIMB(0x1fec0c7834def4)), + P(2063,CNST_LIMB(0x34fca6483895e6ef),CNST_LIMB(0x1fc46fae98a1d0)), + P(2069,CNST_LIMB(0x34b5a333988f873d),CNST_LIMB(0x1facda430ff619)), + P(2081,CNST_LIMB(0xd9dd4f19b5f17be1),CNST_LIMB(0x1f7e17dd8e15e5)), + P(2083,CNST_LIMB(0xb935b507fd0ce78b),CNST_LIMB(0x1f765a3556a4ee)), + P(2087,CNST_LIMB(0xb450f5540660e797),CNST_LIMB(0x1f66ea49d802f1)), + P(2089,CNST_LIMB(0x63ff82831ffc1419),CNST_LIMB(0x1f5f3800faf9c0)), + P(2099,CNST_LIMB(0x8992f718c22a32fb),CNST_LIMB(0x1f38f4e6c0f1f9)), + P(2111,CNST_LIMB(0x5f3253ad0d37e7bf),CNST_LIMB(0x1f0b8546752578)), + P(2113,CNST_LIMB(0x7c0ffe0fc007c1),CNST_LIMB(0x1f03ff83f001f0)), + P(2129,CNST_LIMB(0x4d8ebadc0c0640b1),CNST_LIMB(0x1ec853b0a3883c)), + P(2131,CNST_LIMB(0xe2729af831037bdb),CNST_LIMB(0x1ec0ee573723eb)), + P(2137,CNST_LIMB(0xb8f64bf30feebfe9),CNST_LIMB(0x1eaad38e6f6894)), + P(2141,CNST_LIMB(0xda93124b544c0bf5),CNST_LIMB(0x1e9c28a765fe53)), + P(2143,CNST_LIMB(0x9cf7ff0b593c539f),CNST_LIMB(0x1e94d8758c2003)), + P(2153,CNST_LIMB(0xd6bd8861fa0e07d9),CNST_LIMB(0x1e707ba8f65e68)), + P(2161,CNST_LIMB(0x5cfe75c0bd8ab891),CNST_LIMB(0x1e53a2a68f574e)), + P(2179,CNST_LIMB(0x43e808757c2e862b),CNST_LIMB(0x1e1380a56b438d)), + P(2203,CNST_LIMB(0x90caa96d595c9d93),CNST_LIMB(0x1dbf9f513a3802)), + P(2207,CNST_LIMB(0x8fd550625d07135f),CNST_LIMB(0x1db1d1d58bc600)), + P(2213,CNST_LIMB(0x76b010a86e209f2d),CNST_LIMB(0x1d9d358f53de38)), + P(2221,CNST_LIMB(0xecc0426447769b25),CNST_LIMB(0x1d81e6df6165c7)), + P(2237,CNST_LIMB(0xe381339caabe3295),CNST_LIMB(0x1d4bdf7fd40e30)), + P(2239,CNST_LIMB(0xd1b190a2d0c7673f),CNST_LIMB(0x1d452c7a1c958d)), + P(2243,CNST_LIMB(0xc3bce3cf26b0e7eb),CNST_LIMB(0x1d37cf9b902659)), + P(2251,CNST_LIMB(0x5f87e76f56c61ce3),CNST_LIMB(0x1d1d3a5791e97b)), + P(2267,CNST_LIMB(0xc06c6857a124b353),CNST_LIMB(0x1ce89fe6b47416)), + P(2269,CNST_LIMB(0x38c040fcba630f75),CNST_LIMB(0x1ce219f3235071)), + P(2273,CNST_LIMB(0xd078bc4fbd533b21),CNST_LIMB(0x1cd516dcf92139)), + P(2281,CNST_LIMB(0xde8e15c5dd354f59),CNST_LIMB(0x1cbb33bd1c2b8b)), + P(2287,CNST_LIMB(0xca61d53d7414260f),CNST_LIMB(0x1ca7e7d2546688)), + P(2293,CNST_LIMB(0xb56bf5ba8eae635d),CNST_LIMB(0x1c94b5c1b3dbd3)), + P(2297,CNST_LIMB(0x44a72cb0fb6e3949),CNST_LIMB(0x1c87f7f9c241c1)), + P(2309,CNST_LIMB(0x879839a714f45bcd),CNST_LIMB(0x1c6202706c35a9)), + P(2311,CNST_LIMB(0x2a8994fde5314b7),CNST_LIMB(0x1c5bb8a9437632)), + P(2333,CNST_LIMB(0xb971920cf2b90135),CNST_LIMB(0x1c174343b4111e)), + P(2339,CNST_LIMB(0x8a8fd0b7df9a6e8b),CNST_LIMB(0x1c04d0d3e46b42)), + P(2341,CNST_LIMB(0xb31f9a84c1c6eaad),CNST_LIMB(0x1bfeb00fbf4308)), + P(2347,CNST_LIMB(0x92293b02823c6d83),CNST_LIMB(0x1bec5dce0b202d)), + P(2351,CNST_LIMB(0xeee77ff20fe5ddcf),CNST_LIMB(0x1be03444620037)), + P(2357,CNST_LIMB(0xe1ea0f6c496c11d),CNST_LIMB(0x1bce09c66f6fc3)), + P(2371,CNST_LIMB(0xfdf2d3d6f88ccb6b),CNST_LIMB(0x1ba40228d02b30)), + P(2377,CNST_LIMB(0xfa9d74a3457738f9),CNST_LIMB(0x1b9225b1cf8919)), + P(2381,CNST_LIMB(0xefc3ca3db71a5785),CNST_LIMB(0x1b864a2ff3f53f)), + P(2383,CNST_LIMB(0x8e2071718d0d6daf),CNST_LIMB(0x1b80604150e49b)), + P(2389,CNST_LIMB(0xbc0fdbfeb6cfabfd),CNST_LIMB(0x1b6eb1aaeaacf3)), + P(2393,CNST_LIMB(0x1eeab613e5e5aee9),CNST_LIMB(0x1b62f48da3c8cc)), + P(2399,CNST_LIMB(0x2d2388e90e9e929f),CNST_LIMB(0x1b516babe96092)), + P(2411,CNST_LIMB(0x81dbafba588ddb43),CNST_LIMB(0x1b2e9cef1e0c87)), + P(2417,CNST_LIMB(0x52eebc51c4799791),CNST_LIMB(0x1b1d56bedc849b)), + P(2423,CNST_LIMB(0x1c6bc4693b45a047),CNST_LIMB(0x1b0c267546aec0)), + P(2437,CNST_LIMB(0x6eee0974498874d),CNST_LIMB(0x1ae45f62024fa0)), + P(2441,CNST_LIMB(0xd85b7377a9953cb9),CNST_LIMB(0x1ad917631b5f54)), + P(2447,CNST_LIMB(0x4b6df412d4caf56f),CNST_LIMB(0x1ac83d18cb608f)), + P(2459,CNST_LIMB(0x6b8afbbb4a053493),CNST_LIMB(0x1aa6c7ad8c063f)), + P(2467,CNST_LIMB(0xcc5299c96ac7720b),CNST_LIMB(0x1a90a7b1228e2a)), + P(2473,CNST_LIMB(0xadce84b5c710aa99),CNST_LIMB(0x1a8027c03ba059)), + P(2477,CNST_LIMB(0x9d673f5aa3804225),CNST_LIMB(0x1a7533289deb89)), + P(2503,CNST_LIMB(0xe6541268efbce7f7),CNST_LIMB(0x1a2ed7ce16b49f)), + P(2521,CNST_LIMB(0xfcf41e76cf5be669),CNST_LIMB(0x19fefc0a279a73)), + P(2531,CNST_LIMB(0x5c3eb5dc31c383cb),CNST_LIMB(0x19e4b0cd873b5f)), + P(2539,CNST_LIMB(0x301832d11d8ad6c3),CNST_LIMB(0x19cfcdfd60e514)), + P(2543,CNST_LIMB(0x2e9c0942f1ce450f),CNST_LIMB(0x19c56932d66c85)), + P(2549,CNST_LIMB(0x97f3f2be37a39a5d),CNST_LIMB(0x19b5e1ab6fc7c2)), + P(2551,CNST_LIMB(0xe8b7d8a9654187c7),CNST_LIMB(0x19b0b8a62f2a73)), + P(2557,CNST_LIMB(0xb5d024d7da5b1b55),CNST_LIMB(0x19a149fc98942c)), + P(2579,CNST_LIMB(0xb8ba9d6e7ae3501b),CNST_LIMB(0x1969517ec25b85)), + P(2591,CNST_LIMB(0xf50865f71b90f1df),CNST_LIMB(0x194b3083360ba8)), + P(2593,CNST_LIMB(0x739c1682847df9e1),CNST_LIMB(0x194631f4bebdc1)), + P(2609,CNST_LIMB(0xc470a4d842b90ed1),CNST_LIMB(0x191e84127268fd)), + P(2617,CNST_LIMB(0x1fb1be11698cc409),CNST_LIMB(0x190adbb543984f)), + P(2621,CNST_LIMB(0xd8d5512a7cd35d15),CNST_LIMB(0x1901130bd18200)), + P(2633,CNST_LIMB(0xa5496821723e07f9),CNST_LIMB(0x18e3e6b889ac94)), + P(2647,CNST_LIMB(0xbcc8c6d7abaa8167),CNST_LIMB(0x18c233420e1ec1)), + P(2657,CNST_LIMB(0x52c396c95eb619a1),CNST_LIMB(0x18aa5872d92bd6)), + P(2659,CNST_LIMB(0x6eb7e380878ec74b),CNST_LIMB(0x18a5989945ccf9)), + P(2663,CNST_LIMB(0x3d5513b504537157),CNST_LIMB(0x189c1e60b57f60)), + P(2671,CNST_LIMB(0x314391f8862e948f),CNST_LIMB(0x18893fbc8690b9)), + P(2677,CNST_LIMB(0xdc0b17cfcd81f5dd),CNST_LIMB(0x187b2bb3e1041c)), + P(2683,CNST_LIMB(0x2f6bea3ec89044b3),CNST_LIMB(0x186d27c9cdcfb8)), + P(2687,CNST_LIMB(0xce13a05869f1b57f),CNST_LIMB(0x1863d8bf4f2c1c)), + P(2689,CNST_LIMB(0x7593474e8ace3581),CNST_LIMB(0x185f33e2ad7593)), + P(2693,CNST_LIMB(0x7fc329295a05e4d),CNST_LIMB(0x1855ef75973e13)), + P(2699,CNST_LIMB(0xb05377cba4908d23),CNST_LIMB(0x1848160153f134)), + P(2707,CNST_LIMB(0xe7b2131a628aa39b),CNST_LIMB(0x1835b72e6f0656)), + P(2711,CNST_LIMB(0x9031dbed7de01527),CNST_LIMB(0x182c922d83eb39)), + P(2713,CNST_LIMB(0x76844b1c670aa9a9),CNST_LIMB(0x18280243c0365a)), + P(2719,CNST_LIMB(0x6a03f4533b08915f),CNST_LIMB(0x181a5cd5898e73)), + P(2729,CNST_LIMB(0x1dbca579db0a3999),CNST_LIMB(0x1803c0961773aa)), + P(2731,CNST_LIMB(0x2ffe800bffa003),CNST_LIMB(0x17ff4005ffd001)), + P(2741,CNST_LIMB(0x478ab1a3e936139d),CNST_LIMB(0x17e8d670433edb)), + P(2749,CNST_LIMB(0x66e722bc4c5cc095),CNST_LIMB(0x17d7066cf4bb5d)), + P(2753,CNST_LIMB(0x7a8f63c717278541),CNST_LIMB(0x17ce285b806b1f)), + P(2767,CNST_LIMB(0xdf6eee24d292bc2f),CNST_LIMB(0x17af52cdf27e02)), + P(2777,CNST_LIMB(0x9fc20d17237dd569),CNST_LIMB(0x17997d47d01039)), + P(2789,CNST_LIMB(0xcdf9932356bda2ed),CNST_LIMB(0x177f7ec2c6d0ba)), + P(2791,CNST_LIMB(0x97b5e332e80f68d7),CNST_LIMB(0x177b2f3cd00756)), + P(2797,CNST_LIMB(0x46eee26fd875e2e5),CNST_LIMB(0x176e4a22f692a0)), + P(2801,CNST_LIMB(0x3548a8e65157a611),CNST_LIMB(0x1765b94271e11b)), + P(2803,CNST_LIMB(0xc288d03be9b71e3b),CNST_LIMB(0x1761732b044ae4)), + P(2819,CNST_LIMB(0x8151186db38937ab),CNST_LIMB(0x173f7a5300a2bc)), + P(2833,CNST_LIMB(0x7800b910895a45f1),CNST_LIMB(0x1722112b48be1f)), + P(2837,CNST_LIMB(0xaee0b024182eec3d),CNST_LIMB(0x1719b7a16eb843)), + P(2843,CNST_LIMB(0x96323eda173b5713),CNST_LIMB(0x170d3c99cc5052)), + P(2851,CNST_LIMB(0xed0dbd03ae77c8b),CNST_LIMB(0x16fcad7aed3bb6)), + P(2857,CNST_LIMB(0xf73800b7828dc119),CNST_LIMB(0x16f051b8231ffd)), + P(2861,CNST_LIMB(0x1b61715ec22b7ca5),CNST_LIMB(0x16e81beae20643)), + P(2879,CNST_LIMB(0xa8533a991ead64bf),CNST_LIMB(0x16c3721584c1d8)), + P(2887,CNST_LIMB(0x7f6c7290e46c2e77),CNST_LIMB(0x16b34c2ba09663)), + P(2897,CNST_LIMB(0x6325e8d907b01db1),CNST_LIMB(0x169f3ce292ddcd)), + P(2903,CNST_LIMB(0x28909f70152a1067),CNST_LIMB(0x169344b2220a0d)), + P(2909,CNST_LIMB(0xea7077af0997a0f5),CNST_LIMB(0x1687592593c1b1)), + P(2917,CNST_LIMB(0x7e605cad10c32e6d),CNST_LIMB(0x167787f1418ec9)), + P(2927,CNST_LIMB(0x471b33570635b38f),CNST_LIMB(0x1663e190395ff2)), + P(2939,CNST_LIMB(0xab559fa997a61bb3),CNST_LIMB(0x164c7a4b6eb5b3)), + P(2953,CNST_LIMB(0xad4bdae562bddab9),CNST_LIMB(0x16316a061182fd)), + P(2957,CNST_LIMB(0x55e1b2f2ed62f45),CNST_LIMB(0x1629ba914584e4)), + P(2963,CNST_LIMB(0x3cd328b1a2dca9b),CNST_LIMB(0x161e3d57de21b2)), + P(2969,CNST_LIMB(0xd28f4e08733218a9),CNST_LIMB(0x1612cc01b977f0)), + P(2971,CNST_LIMB(0xb6800b077f186293),CNST_LIMB(0x160efe30c525ff)), + P(2999,CNST_LIMB(0x6fbd138c3fd9c207),CNST_LIMB(0x15da45249ec5de)), + P(3001,CNST_LIMB(0xb117ccd12ae88a89),CNST_LIMB(0x15d68ab4acff92)), + P(3011,CNST_LIMB(0x2f1a1a044046bceb),CNST_LIMB(0x15c3f989d1eb15)), + P(3019,CNST_LIMB(0x548aba0b060541e3),CNST_LIMB(0x15b535ad11b8f0)), + P(3023,CNST_LIMB(0xcf4e808cea111b2f),CNST_LIMB(0x15addb3f424ec1)), + P(3037,CNST_LIMB(0xdbec1b4fa855a475),CNST_LIMB(0x159445cb91be6b)), + P(3041,CNST_LIMB(0xe3f794eb600d7821),CNST_LIMB(0x158d0199771e63)), + P(3049,CNST_LIMB(0x34fae0d9a11f7c59),CNST_LIMB(0x157e87d9b69e04)), + P(3061,CNST_LIMB(0xf006b0ccbbac085d),CNST_LIMB(0x1568f58bc01ac3)), + P(3067,CNST_LIMB(0x3f45076dc3114733),CNST_LIMB(0x155e3c993fda9b)), + P(3079,CNST_LIMB(0xeef49bfa58a1a1b7),CNST_LIMB(0x1548eacc5e1e6e)), + P(3083,CNST_LIMB(0x12c4218bea691fa3),CNST_LIMB(0x1541d8f91ba6a7)), + P(3089,CNST_LIMB(0xbc7504e3bd5e64f1),CNST_LIMB(0x153747060cc340)), + P(3109,CNST_LIMB(0x4ee21c292bb92fad),CNST_LIMB(0x1514569f93f7c4)), + P(3119,CNST_LIMB(0x34338b7327a4bacf),CNST_LIMB(0x150309705d3d79)), + P(3121,CNST_LIMB(0x3fe5c0833d6fccd1),CNST_LIMB(0x14ff97020cf5bf)), + P(3137,CNST_LIMB(0xb1e70743535203c1),CNST_LIMB(0x14e42c114cf47e)), + P(3163,CNST_LIMB(0xefbb5dcdfb4e43d3),CNST_LIMB(0x14b835bdcb6447)), + P(3167,CNST_LIMB(0xca68467ca5394f9f),CNST_LIMB(0x14b182b53a9ab7)), + P(3169,CNST_LIMB(0x8c51c081408b97a1),CNST_LIMB(0x14ae2ad094a3d3)), + P(3181,CNST_LIMB(0x3275a899dfa5dd65),CNST_LIMB(0x149a320ea59f96)), + P(3187,CNST_LIMB(0x9e674cb62e1b78bb),CNST_LIMB(0x1490441de1a2fb)), + P(3191,CNST_LIMB(0xa37ff5bb2a998d47),CNST_LIMB(0x1489aacce57200)), + P(3203,CNST_LIMB(0x792a999db131a22b),CNST_LIMB(0x1475f82ad6ff99)), + P(3209,CNST_LIMB(0x1b48841bc30d29b9),CNST_LIMB(0x146c2cfe53204f)), + P(3217,CNST_LIMB(0xf06721d2011d3471),CNST_LIMB(0x145f2ca490d4a1)), + P(3221,CNST_LIMB(0x93fd2386dff85ebd),CNST_LIMB(0x1458b2aae0ec87)), + P(3229,CNST_LIMB(0x4ce72f54c07ed9b5),CNST_LIMB(0x144bcb0a3a3150)), + P(3251,CNST_LIMB(0xd6d0fd3e71dd827b),CNST_LIMB(0x1428a1e65441d4)), + P(3253,CNST_LIMB(0x856405fb1eed819d),CNST_LIMB(0x142575a6c210d7)), + P(3257,CNST_LIMB(0x8ea8aceb7c443989),CNST_LIMB(0x141f2025ba5c46)), + P(3259,CNST_LIMB(0x34a13026f62e5873),CNST_LIMB(0x141bf6e35420fd)), + P(3271,CNST_LIMB(0x1eea0208ec0af4f7),CNST_LIMB(0x1409141d1d313a)), + P(3299,CNST_LIMB(0x63679853cea598cb),CNST_LIMB(0x13dd8bc19c3513)), + P(3301,CNST_LIMB(0xc30b3ebd61f2d0ed),CNST_LIMB(0x13da76f714dc8f)), + P(3307,CNST_LIMB(0x7eb9037bc7f43bc3),CNST_LIMB(0x13d13e50f8f49e)), + P(3313,CNST_LIMB(0xa583e6f6ce016411),CNST_LIMB(0x13c80e37ca3819)), + P(3319,CNST_LIMB(0xf1938d895f1a74c7),CNST_LIMB(0x13bee69fa99ccf)), + P(3323,CNST_LIMB(0x80cf1491c1e81e33),CNST_LIMB(0x13b8d0ede55835)), + P(3329,CNST_LIMB(0x3c0f12886ba8f301),CNST_LIMB(0x13afb7680bb054)), + P(3331,CNST_LIMB(0xe4b786e0dfcc5ab),CNST_LIMB(0x13acb0c3841c96)), + P(3343,CNST_LIMB(0x672684c93f2d41ef),CNST_LIMB(0x139a9c5f434fde)), + P(3347,CNST_LIMB(0xe00757badb35c51b),CNST_LIMB(0x13949cf33a0d9d)), + P(3359,CNST_LIMB(0xd6d84afe66472edf),CNST_LIMB(0x1382b4a00c31b0)), + P(3361,CNST_LIMB(0xfbbc0eedcbbfb6e1),CNST_LIMB(0x137fbbc0eedcbb)), + P(3371,CNST_LIMB(0x250f43aa08a84983),CNST_LIMB(0x1370ecf047b069)), + P(3373,CNST_LIMB(0x4400e927b1acaa5),CNST_LIMB(0x136df9790e3155)), + P(3389,CNST_LIMB(0x56572be34b9d3215),CNST_LIMB(0x13567dd8defd5b)), + P(3391,CNST_LIMB(0x87964ef7781c62bf),CNST_LIMB(0x13539261fdbc34)), + P(3407,CNST_LIMB(0x29ed84051c06e9af),CNST_LIMB(0x133c564292d28a)), + P(3413,CNST_LIMB(0xb00acd11ed3f87fd),CNST_LIMB(0x1333ae178d6388)), + P(3433,CNST_LIMB(0x6307881744152d9),CNST_LIMB(0x13170ad00d1fd7)), + P(3449,CNST_LIMB(0x7a786459f5c1ccc9),CNST_LIMB(0x13005f01db0947)), + P(3457,CNST_LIMB(0x1308125d74563281),CNST_LIMB(0x12f51d40342210)), + P(3461,CNST_LIMB(0x395310a480b3e34d),CNST_LIMB(0x12ef815e4ed950)), + P(3463,CNST_LIMB(0x35985baa8b202837),CNST_LIMB(0x12ecb4abccd827)), + P(3467,CNST_LIMB(0x96304a6e052b3223),CNST_LIMB(0x12e71dc1d3d820)), + P(3469,CNST_LIMB(0xbd8265fc9af8fd45),CNST_LIMB(0x12e45389a16495)), + P(3491,CNST_LIMB(0x1b6d0b383ec58e0b),CNST_LIMB(0x12c5d9226476cc)), + P(3499,CNST_LIMB(0xc21a7c3b68b28503),CNST_LIMB(0x12badc391156fd)), + P(3511,CNST_LIMB(0x236fa180fbfd6007),CNST_LIMB(0x12aa78e412f522)), + P(3517,CNST_LIMB(0xc42accd440ed9595),CNST_LIMB(0x12a251f5f47fd1)), + P(3527,CNST_LIMB(0x7acf7128236ba3f7),CNST_LIMB(0x1294cb85c53534)), + P(3529,CNST_LIMB(0xf909367a987b9c79),CNST_LIMB(0x12921963beb65e)), + P(3533,CNST_LIMB(0xb64efb252bfba705),CNST_LIMB(0x128cb777c69ca8)), + P(3539,CNST_LIMB(0x980d4f5a7e4cd25b),CNST_LIMB(0x1284aa6cf07294)), + P(3541,CNST_LIMB(0xe1ecc4ef27b0c37d),CNST_LIMB(0x1281fcf6ac7f87)), + P(3547,CNST_LIMB(0x9111aebb81d72653),CNST_LIMB(0x1279f937367db9)), + P(3557,CNST_LIMB(0x8951f985cb2c67ed),CNST_LIMB(0x126cad0488be94)), + P(3559,CNST_LIMB(0xc439d4fc54e0b5d7),CNST_LIMB(0x126a06794646a2)), + P(3571,CNST_LIMB(0xe857bf31896d533b),CNST_LIMB(0x125a2f2bcd3e95)), + P(3581,CNST_LIMB(0xb614bb4cb5023755),CNST_LIMB(0x124d108389e6b1)), + P(3583,CNST_LIMB(0x938a89e5473bf1ff),CNST_LIMB(0x124a73083771ac)), + P(3593,CNST_LIMB(0xeac481aca34de039),CNST_LIMB(0x123d6acda0620a)), + P(3607,CNST_LIMB(0x14b961badf4809a7),CNST_LIMB(0x122b4b2917eafd)), + P(3613,CNST_LIMB(0x76784fecba352435),CNST_LIMB(0x122391bfce1e2f)), + P(3617,CNST_LIMB(0xefa689bb58aef5e1),CNST_LIMB(0x121e6f1ea579f2)), + P(3623,CNST_LIMB(0xb2b2c4db9c3a8197),CNST_LIMB(0x1216c09e471568)), + P(3631,CNST_LIMB(0x2503bc992279f8cf),CNST_LIMB(0x120c8cb9d93909)), + P(3637,CNST_LIMB(0xd2ab9aec5ca1541d),CNST_LIMB(0x1204ed58e64ef9)), + P(3643,CNST_LIMB(0x3e78ba1460f99af3),CNST_LIMB(0x11fd546578f00c)), + P(3659,CNST_LIMB(0xa01426572cfcb63),CNST_LIMB(0x11e9310b8b4c9c)), + P(3671,CNST_LIMB(0xbea857968f3cbd67),CNST_LIMB(0x11da3405db9911)), + P(3673,CNST_LIMB(0x78db213eefe659e9),CNST_LIMB(0x11d7b6f4eb055d)), + P(3677,CNST_LIMB(0x963e8541a74d35f5),CNST_LIMB(0x11d2bee748c145)), + P(3691,CNST_LIMB(0x9e22d152776f2e43),CNST_LIMB(0x11c1706ddce7a7)), + P(3697,CNST_LIMB(0x5d10d39d1e1f291),CNST_LIMB(0x11ba0fed2a4f14)), + P(3701,CNST_LIMB(0x374468dccaced1dd),CNST_LIMB(0x11b528538ed64a)), + P(3709,CNST_LIMB(0x8d145c7d110c5ad5),CNST_LIMB(0x11ab61404242ac)), + P(3719,CNST_LIMB(0x3251a39f5acb5737),CNST_LIMB(0x119f378ce81d2f)), + P(3727,CNST_LIMB(0xa66e50171443506f),CNST_LIMB(0x1195889ece79da)), + P(3733,CNST_LIMB(0x124f69ad91dd4cbd),CNST_LIMB(0x118e4c65387077)), + P(3739,CNST_LIMB(0xec24f8f2a61a2793),CNST_LIMB(0x1187161d70e725)), + P(3761,CNST_LIMB(0xb472148e656b7a51),CNST_LIMB(0x116cd6d1c85239)), + P(3767,CNST_LIMB(0xadf9570e1142f07),CNST_LIMB(0x1165bbe7ce86b1)), + P(3769,CNST_LIMB(0x89bf33b065119789),CNST_LIMB(0x11635ee344ce36)), + P(3779,CNST_LIMB(0x8f0149803cb291eb),CNST_LIMB(0x11579767b6d679)), + P(3793,CNST_LIMB(0x8334b63afd190a31),CNST_LIMB(0x114734711e2b54)), + P(3797,CNST_LIMB(0x920908d50d6aba7d),CNST_LIMB(0x11428b90147f05)), + P(3803,CNST_LIMB(0x57d8b018c5a33d53),CNST_LIMB(0x113b92f3021636)), + P(3821,CNST_LIMB(0xea1773092dc27ee5),CNST_LIMB(0x1126cabc886884)), + P(3823,CNST_LIMB(0xcae5f38b7bf2e00f),CNST_LIMB(0x11247eb1b85976)), + P(3833,CNST_LIMB(0x2bd02df34f695349),CNST_LIMB(0x11190bb01efd65)), + P(3847,CNST_LIMB(0xddfecd5be62e2eb7),CNST_LIMB(0x11091de0fd679c)), + P(3851,CNST_LIMB(0xdbf849ebec96c4a3),CNST_LIMB(0x1104963c7e4e0b)), + P(3853,CNST_LIMB(0xda31d4d0187357c5),CNST_LIMB(0x110253516420b0)), + P(3863,CNST_LIMB(0xe34e21cc2d5418a7),CNST_LIMB(0x10f70db7c41797)), + P(3877,CNST_LIMB(0x68ca5137a9e574ad),CNST_LIMB(0x10e75ee2bf9ecd)), + P(3881,CNST_LIMB(0x3eaa0d0f804bfd19),CNST_LIMB(0x10e2e91c6e0676)), + P(3889,CNST_LIMB(0x554fb753cc20e9d1),CNST_LIMB(0x10da049b9d428d)), + P(3907,CNST_LIMB(0x797afcca1300756b),CNST_LIMB(0x10c6248fe3b1a2)), + P(3911,CNST_LIMB(0x8b8d950b52eeea77),CNST_LIMB(0x10c1c03ed690eb)), + P(3917,CNST_LIMB(0xfb6cd166acabc185),CNST_LIMB(0x10bb2e1379e3a2)), + P(3919,CNST_LIMB(0x4eb6c5ed9437a7af),CNST_LIMB(0x10b8fe7f61228e)), + P(3923,CNST_LIMB(0xd1eddbd91b790cdb),CNST_LIMB(0x10b4a10d60a4f7)), + P(3929,CNST_LIMB(0x93d714ea4d8948e9),CNST_LIMB(0x10ae192681ec0f)), + P(3931,CNST_LIMB(0x3ca13ed8145188d3),CNST_LIMB(0x10abecfbe5b0ae)), + P(3943,CNST_LIMB(0x829086016da89c57),CNST_LIMB(0x109eefd568b96d)), + P(3947,CNST_LIMB(0xd7da1f432124a543),CNST_LIMB(0x109a9ff178b40c)), + P(3967,CNST_LIMB(0x7ead5581632fb07f),CNST_LIMB(0x108531e22f9ff9)), + P(3989,CNST_LIMB(0x35443837f63ec3bd),CNST_LIMB(0x106ddec1af4417)), + P(4001,CNST_LIMB(0x89e2b200e5519461),CNST_LIMB(0x10614174a4911d)), + P(4003,CNST_LIMB(0xe9ae44f0b7289c0b),CNST_LIMB(0x105f291f0448e7)), + P(4007,CNST_LIMB(0x94387a277b9fa817),CNST_LIMB(0x105afa0ef32891)), + P(4013,CNST_LIMB(0xc84f1a58abfc2c25),CNST_LIMB(0x1054b777bd2530)), + P(4019,CNST_LIMB(0x71101d8e3c83377b),CNST_LIMB(0x104e79a97fb69e)), + P(4021,CNST_LIMB(0xc024abe5c50ba69d),CNST_LIMB(0x104c661eafd845)), + P(4027,CNST_LIMB(0x15de4eb365a65d73),CNST_LIMB(0x10462ea939c933)), + P(4049,CNST_LIMB(0x9ed28a76bcca931),CNST_LIMB(0x102f8baa442836)), + P(4051,CNST_LIMB(0x816bffbf4a00205b),CNST_LIMB(0x102d7ff7e94004)), + P(4057,CNST_LIMB(0x1f5c71543d558069),CNST_LIMB(0x10275ff9f13c02)), + P(4073,CNST_LIMB(0xf25c64d0ec53b859),CNST_LIMB(0x1017213fcbb4d3)), + P(4079,CNST_LIMB(0x96c02c2ef1e0ff0f),CNST_LIMB(0x101112234579d1)), + P(4091,CNST_LIMB(0x19a804816870a333),CNST_LIMB(0x100501907d271c)), + P(4093,CNST_LIMB(0x6de49add0971c555),CNST_LIMB(0x100300901b0510)), + P(4099,CNST_LIMB(0x528087e684c71aab),CNST_LIMB(0xffd008fe5050f)), + P(4111,CNST_LIMB(0xa94152c269bcdeef),CNST_LIMB(0xff10e02dd5084)), + P(4127,CNST_LIMB(0x379450a3c2b6bdf),CNST_LIMB(0xfe13b9c80c67f)), + P(4129,CNST_LIMB(0xd2cd38bafe5373e1),CNST_LIMB(0xfdf4384be37ad)), + P(4133,CNST_LIMB(0xc29df2bea71d8bad),CNST_LIMB(0xfdb54cbe8766e)), + P(4139,CNST_LIMB(0xc15862775f302e83),CNST_LIMB(0xfd5725ca6ff32)), + P(4153,CNST_LIMB(0x1016af2fe55ede09),CNST_LIMB(0xfc7c84684c6fb)), + P(4157,CNST_LIMB(0x3d26dbd9d1910715),CNST_LIMB(0xfc3e5265dbaa8)), + P(4159,CNST_LIMB(0x621dab2dfaf3dfbf),CNST_LIMB(0xfc1f44e0cae12)), + P(4177,CNST_LIMB(0xb6f1d7ac287338b1),CNST_LIMB(0xfb0921c50a7af)), + P(4201,CNST_LIMB(0x8d9e9f0c3f9e7fd9),CNST_LIMB(0xf999fd70cbc6b)), + P(4211,CNST_LIMB(0x60a93f8762e914bb),CNST_LIMB(0xf9023fd5339d0)), + P(4217,CNST_LIMB(0xb14371f247c159c9),CNST_LIMB(0xf8a78ce671475)), + P(4219,CNST_LIMB(0x6dd3b484471d4eb3),CNST_LIMB(0xf8895fee86574)), + P(4229,CNST_LIMB(0xcd172f4701c1684d),CNST_LIMB(0xf7f2ecb084b10)), + P(4231,CNST_LIMB(0x372e686ed8bb537),CNST_LIMB(0xf7d4eb7d10c29)), + P(4241,CNST_LIMB(0xbc07f7ca65c5b071),CNST_LIMB(0xf73f52277a3c3)), + P(4243,CNST_LIMB(0xab2b6170c3f78d9b),CNST_LIMB(0xf7217c598961c)), + P(4253,CNST_LIMB(0xf3d74f461fe6f5b5),CNST_LIMB(0xf68cbb1448f42)), + P(4259,CNST_LIMB(0xdbc13f4b31f3230b),CNST_LIMB(0xf633d0276e4c5)), + P(4261,CNST_LIMB(0xd1420716e3f1572d),CNST_LIMB(0xf6163ac20ec79)), + P(4271,CNST_LIMB(0xd5be2fd4d805464f),CNST_LIMB(0xf582ba2bc16c6)), + P(4273,CNST_LIMB(0xc68b97c136943851),CNST_LIMB(0xf5654f43290a0)), + P(4283,CNST_LIMB(0x9e27918af7cfb473),CNST_LIMB(0xf4d2a23810bc6)), + P(4289,CNST_LIMB(0x5ec8ab6c36ac7f41),CNST_LIMB(0xf47af4d6a2f27)), + P(4297,CNST_LIMB(0x964076331dd90979),CNST_LIMB(0xf4066f2b6e652)), + P(4327,CNST_LIMB(0x30198eff77b002d7),CNST_LIMB(0xf2555048e3a92)), + P(4337,CNST_LIMB(0x3af7cb9583ece011),CNST_LIMB(0xf1c64588a5bf6)), + P(4339,CNST_LIMB(0x34ce06f643d9883b),CNST_LIMB(0xf1a9be09cb411)), + P(4349,CNST_LIMB(0x79f767e528708c55),CNST_LIMB(0xf11b7d5259d39)), + P(4357,CNST_LIMB(0x185332d2ef2313cd),CNST_LIMB(0xf0aa284e7f802)), + P(4363,CNST_LIMB(0x43b611b84c8332a3),CNST_LIMB(0xf0556e5e3b7f2)), + P(4373,CNST_LIMB(0xc2e215e4f43bb63d),CNST_LIMB(0xefc8bcbc808e5)), + P(4391,CNST_LIMB(0xf94b9dd22ce44e97),CNST_LIMB(0xeecd1a690efbb)), + P(4397,CNST_LIMB(0xd895834a1db166a5),CNST_LIMB(0xee79aed6d65f2)), + P(4409,CNST_LIMB(0x347d2f16d19b8d09),CNST_LIMB(0xedd386114d83a)), + P(4421,CNST_LIMB(0x1b54d4dc45b7d98d),CNST_LIMB(0xed2e44366e5e2)), + P(4423,CNST_LIMB(0x117ac30d9a044877),CNST_LIMB(0xed12cf8e17f64)), + P(4441,CNST_LIMB(0xe10b78a67a526e9),CNST_LIMB(0xec1cd284b2b2d)), + P(4447,CNST_LIMB(0x92da68a818688a9f),CNST_LIMB(0xebcb44cadda1e)), + P(4451,CNST_LIMB(0xcf2b6c87f741f84b),CNST_LIMB(0xeb9505943771d)), + P(4457,CNST_LIMB(0xd264f9bd41e18ed9),CNST_LIMB(0xeb43d57efeadc)), + P(4463,CNST_LIMB(0x733cbeaa97166d8f),CNST_LIMB(0xeaf2dd4c00b03)), + P(4481,CNST_LIMB(0xc9f475b021d22e81),CNST_LIMB(0xea0141c1ba6a6)), + P(4483,CNST_LIMB(0x731f76f2ec4c852b),CNST_LIMB(0xe9e68805f05a7)), + P(4493,CNST_LIMB(0xdaf6f0c978f69945),CNST_LIMB(0xe96142b87e431)), + P(4507,CNST_LIMB(0x749c8ad20c61ec93),CNST_LIMB(0xe8a7acd811b8c)), + P(4513,CNST_LIMB(0x9307ff8bd3c1261),CNST_LIMB(0xe8587db3e001d)), + P(4517,CNST_LIMB(0x334a69fb5a486e2d),CNST_LIMB(0xe823d186d44dc)), + P(4519,CNST_LIMB(0x1f36c7bf31578617),CNST_LIMB(0xe8098463ee194)), + P(4523,CNST_LIMB(0x31ebbcc279ea6103),CNST_LIMB(0xe7d4fbfb3ee1d)), + P(4547,CNST_LIMB(0x42e2aad119f466eb),CNST_LIMB(0xe69bba6981ffa)), + P(4549,CNST_LIMB(0x106ec05a0ab1450d),CNST_LIMB(0xe681c5cf7d707)), + P(4561,CNST_LIMB(0xb1b38db92a99e731),CNST_LIMB(0xe5e684930e334)), + P(4567,CNST_LIMB(0x784ae377e67071e7),CNST_LIMB(0xe5993247dc92d)), + P(4583,CNST_LIMB(0x3e9e1471ba6671d7),CNST_LIMB(0xe4cbfee201016)), + P(4591,CNST_LIMB(0x82c29b59d4d73d0f),CNST_LIMB(0xe465ee7daf979)), + P(4597,CNST_LIMB(0xc23dd07128b5525d),CNST_LIMB(0xe4199de07af5c)), + P(4603,CNST_LIMB(0x4d4e5ce0e9245133),CNST_LIMB(0xe3cd8031d4f40)), + P(4621,CNST_LIMB(0xc8fd1057c09f8cc5),CNST_LIMB(0xe2ea56c157eb2)), + P(4637,CNST_LIMB(0xea1516e94f394035),CNST_LIMB(0xe221e5d4d3c73)), + P(4639,CNST_LIMB(0xb5e3319c564ee9df),CNST_LIMB(0xe208f09a841c7)), + P(4643,CNST_LIMB(0x126a69f90d822d8b),CNST_LIMB(0xe1d716a945161)), + P(4649,CNST_LIMB(0x501ed6348857aa19),CNST_LIMB(0xe18c78ec8fd4d)), + P(4651,CNST_LIMB(0xde344a324eee1c83),CNST_LIMB(0xe173a4a162079)), + P(4657,CNST_LIMB(0x1dd9690cb2c406d1),CNST_LIMB(0xe1294881bb494)), + P(4663,CNST_LIMB(0x8d6c5178d5e4387),CNST_LIMB(0xe0df1d5f24661)), + P(4673,CNST_LIMB(0x4cea4050a3e8fdc1),CNST_LIMB(0xe063ec7f50b1e)), + P(4679,CNST_LIMB(0xc114a06acc83f777),CNST_LIMB(0xe01a4313dc53d)), + P(4691,CNST_LIMB(0x20b060ebc0ea01db),CNST_LIMB(0xdf8780f47c350)), + P(4703,CNST_LIMB(0xfe50045acb78c99f),CNST_LIMB(0xdef57e8eb9666)), + P(4721,CNST_LIMB(0x291a68705b196e91),CNST_LIMB(0xde1bdf3f63d46)), + P(4723,CNST_LIMB(0xc1042c724273e2bb),CNST_LIMB(0xde03cb5099809)), + P(4729,CNST_LIMB(0x2cee680bb165b7c9),CNST_LIMB(0xddbbaecc84bc9)), + P(4733,CNST_LIMB(0xfd2ff9f12e0776d5),CNST_LIMB(0xdd8bb5ca73db6)), + P(4751,CNST_LIMB(0x166a5da63af2cc6f),CNST_LIMB(0xdcb4d529a6e07)), + P(4759,CNST_LIMB(0xedd16a5930408d27),CNST_LIMB(0xdc55da73dea60)), + P(4783,CNST_LIMB(0x2adf30c26528844f),CNST_LIMB(0xdb3ad2585011f)), + P(4787,CNST_LIMB(0x9a48d6572b5eec7b),CNST_LIMB(0xdb0becf636a79)), + P(4789,CNST_LIMB(0x6e8bf2877503cb9d),CNST_LIMB(0xdaf481ca6fefb)), + P(4793,CNST_LIMB(0xea27a191a7045389),CNST_LIMB(0xdac5ba7565dae)), + P(4799,CNST_LIMB(0x6eb091f34dd45d3f),CNST_LIMB(0xda7fb4e419d19)), + P(4801,CNST_LIMB(0xdc8a6cabb2937d41),CNST_LIMB(0xda6867a88d327)), + P(4813,CNST_LIMB(0xbc2f04f254922a05),CNST_LIMB(0xd9dd005f50b02)), + P(4817,CNST_LIMB(0x41431f4d6eb38631),CNST_LIMB(0xd9aeb01f763f7)), + P(4831,CNST_LIMB(0x7bd717435a08291f),CNST_LIMB(0xd90d31dd5804a)), + P(4861,CNST_LIMB(0x4232df9c91fc1a55),CNST_LIMB(0xd7b6453358f31)), + P(4871,CNST_LIMB(0xa4651e1d5382eab7),CNST_LIMB(0xd744e69d900e4)), + P(4877,CNST_LIMB(0x7cfb5409de4cf3c5),CNST_LIMB(0xd7011a317260e)), + P(4889,CNST_LIMB(0xcdd636fb068b9929),CNST_LIMB(0xd67a0126e7c19)), + P(4903,CNST_LIMB(0xee8f95e740462c97),CNST_LIMB(0xd5dd39e775bd7)), + P(4909,CNST_LIMB(0x490f97b3a758b4a5),CNST_LIMB(0xd59a4f2990168)), + P(4919,CNST_LIMB(0x641431563c441287),CNST_LIMB(0xd52b24cb6269d)), + P(4931,CNST_LIMB(0xb743dad3ec45916b),CNST_LIMB(0xd4a6571da4f04)), + P(4933,CNST_LIMB(0x7b188be8f55c878d),CNST_LIMB(0xd49044eac6581)), + P(4937,CNST_LIMB(0xd805648b2ca54ef9),CNST_LIMB(0xd4642e40d1129)), + P(4943,CNST_LIMB(0x76dbe6eef60123af),CNST_LIMB(0xd4222e81fe723)), + P(4951,CNST_LIMB(0x3711525e6a9e8867),CNST_LIMB(0xd3ca6e8c89f41)), + P(4957,CNST_LIMB(0x85c2215cb383d8f5),CNST_LIMB(0xd388ce29d4edc)), + P(4967,CNST_LIMB(0xe58f554c89825857),CNST_LIMB(0xd31bc7b7d8013)), + P(4969,CNST_LIMB(0x8fbd3b17c01dacd9),CNST_LIMB(0xd306071c13fd5)), + P(4973,CNST_LIMB(0x4c8c39dc7aedee65),CNST_LIMB(0xd2da935479b1a)), + P(4987,CNST_LIMB(0x653ac6dda86cd3b3),CNST_LIMB(0xd2430aa043597)), + P(4993,CNST_LIMB(0xd61c6791a9c2c81),CNST_LIMB(0xd2025bc6c7db7)), + P(4999,CNST_LIMB(0xb627a30090354237),CNST_LIMB(0xd1c1d4ad1732b)), + P(5003,CNST_LIMB(0x83a89a539c527c23),CNST_LIMB(0xd196e5f46f8c8)), + P(5009,CNST_LIMB(0x28c8c09330e90d71),CNST_LIMB(0xd156a0c9293e8)), + P(5011,CNST_LIMB(0xee1178d27b1f029b),CNST_LIMB(0xd1413d26e0aee)), + P(5021,CNST_LIMB(0xcecc740b37860ab5),CNST_LIMB(0xd0d68c6a4128f)), + P(5023,CNST_LIMB(0x79736fde910c485f),CNST_LIMB(0xd0c142eaf3837)), + P(5039,CNST_LIMB(0x6873d51f2487234f),CNST_LIMB(0xd01792ab9d70d)), + P(5051,CNST_LIMB(0x2a112180614fb973),CNST_LIMB(0xcf990317775bc)), + P(5059,CNST_LIMB(0xcb04cea98508f4eb),CNST_LIMB(0xcf44f8c38790a)), + P(5077,CNST_LIMB(0xc2fcd2c527e28d7d),CNST_LIMB(0xce88d96d10e45)), + P(5081,CNST_LIMB(0x980203ee10393c69),CNST_LIMB(0xce5f39b07e906)), + P(5087,CNST_LIMB(0x3fa90a1d7d75681f),CNST_LIMB(0xce20e98148847)), + P(5099,CNST_LIMB(0xdbf3bfefef217cc3),CNST_LIMB(0xcda4b9c30ccd7)), + P(5101,CNST_LIMB(0x66a17fd3087b41e5),CNST_LIMB(0xcd9015ae32495)), + P(5107,CNST_LIMB(0x962195d496fbbd3b),CNST_LIMB(0xcd524244aca36)), + P(5113,CNST_LIMB(0xc705a86155443e49),CNST_LIMB(0xcd14940099cf6)), + P(5119,CNST_LIMB(0x3f298ee0be6febff),CNST_LIMB(0xccd70ac089a07)), + P(5147,CNST_LIMB(0xaa99b084e62fa613),CNST_LIMB(0xcbb9c535c4371)), + P(5153,CNST_LIMB(0x1f000cb7d0b46fe1),CNST_LIMB(0xcb7d0b46fe0ff)), + P(5167,CNST_LIMB(0x9ed7858637c9b2cf),CNST_LIMB(0xcaefe5d7135f4)), + P(5171,CNST_LIMB(0x4d871aaf27c106fb),CNST_LIMB(0xcac7b5f00f0cd)), + P(5179,CNST_LIMB(0x2e6a467cdc75a4f3),CNST_LIMB(0xca7785ceddbea)), + P(5189,CNST_LIMB(0xe9d938fb696dde8d),CNST_LIMB(0xca13a2a86e1db)), + P(5197,CNST_LIMB(0x40ec71b0b1554485),CNST_LIMB(0xc9c4009753007)), + P(5209,CNST_LIMB(0x3aae12f861e5f3e9),CNST_LIMB(0xc94d02e64bfab)), + P(5227,CNST_LIMB(0xa97565873959f843),CNST_LIMB(0xc89b8c9c875ef)), + P(5231,CNST_LIMB(0xb5a960c09fbca8f),CNST_LIMB(0xc87447737277e)), + P(5233,CNST_LIMB(0x463fe3d268012c91),CNST_LIMB(0xc860aaa2514e3)), + P(5237,CNST_LIMB(0xe59a6bd5f5ee1bdd),CNST_LIMB(0xc8397c813f1b9)), + P(5261,CNST_LIMB(0x6542e84d7775ce45),CNST_LIMB(0xc74fa805d6d56)), + P(5273,CNST_LIMB(0x8b6eef58fd9effa9),CNST_LIMB(0xc6db8a1f5cdfe)), + P(5279,CNST_LIMB(0x58993dbb9f98075f),CNST_LIMB(0xc6a1add9e2398)), + P(5281,CNST_LIMB(0x2997955a810acf61),CNST_LIMB(0xc68e6be826648)), + P(5297,CNST_LIMB(0x76e3d2f5077db451),CNST_LIMB(0xc5f4e25fc9df0)), + P(5303,CNST_LIMB(0xb37c1d2867e30907),CNST_LIMB(0xc5bb8bf2ad1cd)), + P(5309,CNST_LIMB(0x53ce6e09bd8d8695),CNST_LIMB(0xc58256b316ced)), + P(5323,CNST_LIMB(0x39db291ea2a6b0e3),CNST_LIMB(0xc4fd5ad917b5b)), + P(5333,CNST_LIMB(0xddd265ab9c58847d),CNST_LIMB(0xc49ecb3ea4d7a)), + P(5347,CNST_LIMB(0x5beca8562dddd0cb),CNST_LIMB(0xc41b00b7d950a)), + P(5351,CNST_LIMB(0xb69031c153ddbed7),CNST_LIMB(0xc3f57990b87a1)), + P(5381,CNST_LIMB(0xd03c2271b42a6fcd),CNST_LIMB(0xc2ddcb31250f8)), + P(5387,CNST_LIMB(0xcd6fd19e63e40ea3),CNST_LIMB(0xc2a63b3651432)), + P(5393,CNST_LIMB(0xf7687aa8e4fd7bf1),CNST_LIMB(0xc26ecae1db72e)), + P(5399,CNST_LIMB(0x649dfda112a272a7),CNST_LIMB(0xc2377a18c051e)), + P(5407,CNST_LIMB(0xecf7866a56d526df),CNST_LIMB(0xc1ede9efcec29)), + P(5413,CNST_LIMB(0x72bbf1cfdaebfead),CNST_LIMB(0xc1b6e258d13a0)), + P(5417,CNST_LIMB(0x55f6a48df7055719),CNST_LIMB(0xc19243f5399bb)), + P(5419,CNST_LIMB(0x80060bffcfa00183),CNST_LIMB(0xc17ff9f400305)), + P(5431,CNST_LIMB(0x8a104f309919b087),CNST_LIMB(0xc112865703b94)), + P(5437,CNST_LIMB(0x98fa7db7652f6a15),CNST_LIMB(0xc0dbfaea33225)), + P(5441,CNST_LIMB(0x5d7d1b3df70f7ac1),CNST_LIMB(0xc0b7af12ddfb9)), + P(5443,CNST_LIMB(0x16ab7b5e04cc1f6b),CNST_LIMB(0xc0a58e464462c)), + P(5449,CNST_LIMB(0x78a5bfd2e5ececf9),CNST_LIMB(0xc06f40512eef2)), + P(5471,CNST_LIMB(0x6506392e171d869f),CNST_LIMB(0xbfa9275a2b247)), + P(5477,CNST_LIMB(0xc3fc12e221ef146d),CNST_LIMB(0xbf7367402cdf0)), + P(5479,CNST_LIMB(0xf8aa132822c33657),CNST_LIMB(0xbf61833f4f921)), + P(5483,CNST_LIMB(0x894496574f536f43),CNST_LIMB(0xbf3dc543a74a1)), + P(5501,CNST_LIMB(0x8b2546b08fb4cbd5),CNST_LIMB(0xbe9d9302a7115)), + P(5503,CNST_LIMB(0x43bbb561bd1aa7f),CNST_LIMB(0xbe8bd6e051e01)), + P(5507,CNST_LIMB(0x2412c7cc4ea7a12b),CNST_LIMB(0xbe6868804d5a6)), + P(5519,CNST_LIMB(0x6f0bd406dd71696f),CNST_LIMB(0xbdfe6c4359f0e)), + P(5521,CNST_LIMB(0xad475c6988d54b71),CNST_LIMB(0xbdeccdb0b5c3a)), + P(5527,CNST_LIMB(0xd812e5d48dbbba27),CNST_LIMB(0xbdb8058ee429a)), + P(5531,CNST_LIMB(0x22aaca437ba04893),CNST_LIMB(0xbd94e5c1b371f)), + P(5557,CNST_LIMB(0xdba6ff1fecd5f09d),CNST_LIMB(0xbcb1d293b1af3)), + P(5563,CNST_LIMB(0x13016d3396286773),CNST_LIMB(0xbc7db8db0c1a5)), + P(5569,CNST_LIMB(0xc746494631bcfa41),CNST_LIMB(0xbc49bbdfd2662)), + P(5573,CNST_LIMB(0xd14888565bf6a10d),CNST_LIMB(0xbc2723240f402)), + P(5581,CNST_LIMB(0xc002ef885f0adf05),CNST_LIMB(0xbbe217c2b7c13)), + P(5591,CNST_LIMB(0xe5a04da7fee6ade7),CNST_LIMB(0xbb8c10aab27b2)), + P(5623,CNST_LIMB(0xc114ce5468593bc7),CNST_LIMB(0xba7ad528a7e79)), + P(5639,CNST_LIMB(0xbb6747dd7f577b7),CNST_LIMB(0xb9f3611b48c5e)), + P(5641,CNST_LIMB(0x395ce5a20f285839),CNST_LIMB(0xb9e2806e5e7c4)), + P(5647,CNST_LIMB(0x6eee8be66e8618ef),CNST_LIMB(0xb9aff0c4913fe)), + P(5651,CNST_LIMB(0x52acf64297f1241b),CNST_LIMB(0xb98e4aedd581c)), + P(5653,CNST_LIMB(0x361dcc48a364093d),CNST_LIMB(0xb97d7c94b7dc2)), + P(5657,CNST_LIMB(0x342d6f475d72e629),CNST_LIMB(0xb95be902d9d9e)), + P(5659,CNST_LIMB(0x5e978bd46410d413),CNST_LIMB(0xb94b23c872b90)), + P(5669,CNST_LIMB(0xcc3433d75ba015ad),CNST_LIMB(0xb8f77714d15a1)), + P(5683,CNST_LIMB(0x1c83b7628458d4fb),CNST_LIMB(0xb882d0beff6a1)), + P(5689,CNST_LIMB(0xf9ca45637e38f809),CNST_LIMB(0xb850ff9852703)), + P(5693,CNST_LIMB(0xcbed792ffaf6b115),CNST_LIMB(0xb82fd86db8806)), + P(5701,CNST_LIMB(0x9abd961d8c0e8c8d),CNST_LIMB(0xb7edadd32f76c)), + P(5711,CNST_LIMB(0xe69572fa659340af),CNST_LIMB(0xb79b3b4df3b7b)), + P(5717,CNST_LIMB(0x9187e7483a6436fd),CNST_LIMB(0xb769e6d59833f)), + P(5737,CNST_LIMB(0x1e9c726993bed9d9),CNST_LIMB(0xb6c636b5141ff)), + P(5741,CNST_LIMB(0x243554db91976365),CNST_LIMB(0xb6a59ceae8801)), + P(5743,CNST_LIMB(0x4d06ff994c0088f),CNST_LIMB(0xb6955461e38f7)), + P(5749,CNST_LIMB(0x25b76abcb74889dd),CNST_LIMB(0xb6648c2dc6bc2)), + P(5779,CNST_LIMB(0x3a409642893c779b),CNST_LIMB(0xb572282260209)), + P(5783,CNST_LIMB(0x8f8f620d8bc0c927),CNST_LIMB(0xb552072bde889)), + P(5791,CNST_LIMB(0x6f9f196b3369855f),CNST_LIMB(0xb511e7552f9c4)), + P(5801,CNST_LIMB(0x92a522bb0638ed99),CNST_LIMB(0xb4c1ff34a5c0e)), + P(5807,CNST_LIMB(0x96270f1efdd7004f),CNST_LIMB(0xb4922f58d4aa2)), + P(5813,CNST_LIMB(0xb4844b380fdaa79d),CNST_LIMB(0xb46278c16b967)), + P(5821,CNST_LIMB(0x108936aa5f9c1495),CNST_LIMB(0xb42301cd99b49)), + P(5827,CNST_LIMB(0xb60f606f104c9eb),CNST_LIMB(0xb3f385dd77e4e)), + P(5839,CNST_LIMB(0xc663dfe8263b302f),CNST_LIMB(0xb394d8ef8f0f6)), + P(5843,CNST_LIMB(0xc91a280b9110b15b),CNST_LIMB(0xb375601507c14)), + P(5849,CNST_LIMB(0x904287118d10969),CNST_LIMB(0xb3463f76be376)), + P(5851,CNST_LIMB(0x160d36a5d31bf553),CNST_LIMB(0xb3368f6c4a07c)), + P(5857,CNST_LIMB(0xe84f5fda3c67ad21),CNST_LIMB(0xb3078fc1c25f0)), + P(5861,CNST_LIMB(0xbd85701f72d4b6ed),CNST_LIMB(0xb2e84854e93e5)), + P(5867,CNST_LIMB(0x4c50cf5924dee1c3),CNST_LIMB(0xb2b971aa909a4)), + P(5869,CNST_LIMB(0x2455aaf1633bb6e5),CNST_LIMB(0xb2a9da39d6bc8)), + P(5879,CNST_LIMB(0xd775b39f549b8ac7),CNST_LIMB(0xb25c0dc29a0fc)), + P(5881,CNST_LIMB(0x87fcdda7a252cb49),CNST_LIMB(0xb24c8698449a7)), + P(5897,CNST_LIMB(0x53df2e3bd254a739),CNST_LIMB(0xb1d0ae579aefe)), + P(5903,CNST_LIMB(0x8915e69623a5f7ef),CNST_LIMB(0xb1a2698ea2f9e)), + P(5923,CNST_LIMB(0x1ef24c80742dd08b),CNST_LIMB(0xb108dc4186078)), + P(5927,CNST_LIMB(0xb4d87aaa6fb1e897),CNST_LIMB(0xb0ea463b00212)), + P(5939,CNST_LIMB(0x788573e8b92dbbfb),CNST_LIMB(0xb08ec37007962)), + P(5953,CNST_LIMB(0x2527b137b0878c1),CNST_LIMB(0xb024778cc023c)), + P(5981,CNST_LIMB(0x1870a7c8dee9f4f5),CNST_LIMB(0xaf515df36a88e)), + P(5987,CNST_LIMB(0x39b99e40910a224b),CNST_LIMB(0xaf24635f6561e)), + P(6007,CNST_LIMB(0x45821c0abd4df247),CNST_LIMB(0xae8f1b92baeaf)), + P(6011,CNST_LIMB(0x10fe2b2f50e02fb3),CNST_LIMB(0xae715eee11f8e)), + P(6029,CNST_LIMB(0x5762b90c043f0345),CNST_LIMB(0xadec0b0a3bb36)), + P(6037,CNST_LIMB(0x82a67b9193b27bbd),CNST_LIMB(0xadb10aa4c956f)), + P(6043,CNST_LIMB(0xa6e914e28ec37693),CNST_LIMB(0xad84e49752245)), + P(6047,CNST_LIMB(0x835d9a4facaf445f),CNST_LIMB(0xad6782597f0c2)), + P(6053,CNST_LIMB(0x48def8175884f82d),CNST_LIMB(0xad3b81a0d72fe)), + P(6067,CNST_LIMB(0xae900e2d7c9a6f7b),CNST_LIMB(0xacd52beced79e)), + P(6073,CNST_LIMB(0x1c08431bdd18be89),CNST_LIMB(0xaca9755063254)), + P(6079,CNST_LIMB(0xb370a66d684fd83f),CNST_LIMB(0xac7dd4cafb12a)), + P(6089,CNST_LIMB(0xb4be33e18f93b279),CNST_LIMB(0xac354f80dca44)), + P(6091,CNST_LIMB(0x310c50872a7dd5e3),CNST_LIMB(0xac26d5c2b8ad2)), + P(6101,CNST_LIMB(0x447ab1281276697d),CNST_LIMB(0xabde997dabd3d)), + P(6113,CNST_LIMB(0xc2f122216b2a6c21),CNST_LIMB(0xab883aa1100a0)), + P(6121,CNST_LIMB(0xab99c8b5ae1c3059),CNST_LIMB(0xab4ed637f5a0b)), + P(6131,CNST_LIMB(0xb78e17a2227d593b),CNST_LIMB(0xab074e9febf52)), + P(6133,CNST_LIMB(0xabf97d03f7269c5d),CNST_LIMB(0xaaf90778c2039)), + P(6143,CNST_LIMB(0x867aefc9fdbfe7ff),CNST_LIMB(0xaab1c7684f034)), + P(6151,CNST_LIMB(0xf7f7ad182e47d5b7),CNST_LIMB(0xaa78f20ebbb3e)), + P(6163,CNST_LIMB(0x50dff95a9847721b),CNST_LIMB(0xaa23f8dafd4cc)), + P(6173,CNST_LIMB(0xe4cb8a0e83cb6a35),CNST_LIMB(0xa9dd69cad5934)), + P(6197,CNST_LIMB(0x8da72ecdf9247a1d),CNST_LIMB(0xa935004a07302)), + P(6199,CNST_LIMB(0xc5b04bfc87f31d87),CNST_LIMB(0xa9270690f3d14)), + P(6203,CNST_LIMB(0xe2dcf622ea2b00f3),CNST_LIMB(0xa90b1a0aa5d30)), + P(6211,CNST_LIMB(0xb9ce9f2e4972f46b),CNST_LIMB(0xa8d35c9d731e9)), + P(6217,CNST_LIMB(0x1ed785c911bf59f9),CNST_LIMB(0xa8a9a6a51f16c)), + P(6221,CNST_LIMB(0x4ddb8a4eed70e085),CNST_LIMB(0xa88de370f596b)), + P(6229,CNST_LIMB(0x81e93b4df68c24fd),CNST_LIMB(0xa856786adae36)), + P(6247,CNST_LIMB(0xee0d0812afcd8357),CNST_LIMB(0xa7da4c77d3161)), + P(6257,CNST_LIMB(0xf62e3ba72268a891),CNST_LIMB(0xa7959f863d4a1)), + P(6263,CNST_LIMB(0x3194d367c8154147),CNST_LIMB(0xa76c85e80c195)), + P(6269,CNST_LIMB(0xd096ede8e30c20d5),CNST_LIMB(0xa743806dc44c4)), + P(6271,CNST_LIMB(0xd68624d27b87a77f),CNST_LIMB(0xa735d866dfa0a)), + P(6277,CNST_LIMB(0xb728fcdc11c8204d),CNST_LIMB(0xa70cedb02531e)), + P(6287,CNST_LIMB(0x9d6b6038077e066f),CNST_LIMB(0xa6c8e842c770f)), + P(6299,CNST_LIMB(0xaa732d7a4a360d93),CNST_LIMB(0xa67791215dd74)), + P(6301,CNST_LIMB(0x36af98a423972db5),CNST_LIMB(0xa66a0a51d363d)), + P(6311,CNST_LIMB(0xc31d00da12940f17),CNST_LIMB(0xa626893011861)), + P(6317,CNST_LIMB(0xed85352107410b25),CNST_LIMB(0xa5fe22c55c089)), + P(6323,CNST_LIMB(0x829c85ee6db8567b),CNST_LIMB(0xa5d5cffb77275)), + P(6329,CNST_LIMB(0xef60258952cc6d89),CNST_LIMB(0xa5ad90c4186e5)), + P(6337,CNST_LIMB(0xcf28c2e0da787741),CNST_LIMB(0xa578057e7c2eb)), + P(6343,CNST_LIMB(0x57567d8494af28f7),CNST_LIMB(0xa54ff3bb10e91)), + P(6353,CNST_LIMB(0x2c7c98518f174031),CNST_LIMB(0xa50d5683edc94)), + P(6359,CNST_LIMB(0xb28b363a36825ae7),CNST_LIMB(0xa4e57854b3df4)), + P(6361,CNST_LIMB(0xed1ffeb64f9ae769),CNST_LIMB(0xa4d8328c4b800)), + P(6367,CNST_LIMB(0xcbbb0115e9b9a31f),CNST_LIMB(0xa4b06e01d97b3)), + P(6373,CNST_LIMB(0x8d3c5fecb7f9e4ed),CNST_LIMB(0xa488bca2c4449)), + P(6379,CNST_LIMB(0x816271698195cfc3),CNST_LIMB(0xa4611e6132ed5)), + P(6389,CNST_LIMB(0x9ac939d1c2b1d35d),CNST_LIMB(0xa41f40f39e646)), + P(6397,CNST_LIMB(0xdd9fb7017b0ec455),CNST_LIMB(0xa3eab5c3e44e9)), + P(6421,CNST_LIMB(0xc94cab1e57276e3d),CNST_LIMB(0xa34ddd50561e0)), + P(6427,CNST_LIMB(0x8b8806b117c79913),CNST_LIMB(0xa326d60e94186)), + P(6449,CNST_LIMB(0xa9e63292a3269fd1),CNST_LIMB(0xa2985a81ce614)), + P(6451,CNST_LIMB(0x76da5710f1e989fb),CNST_LIMB(0xa28b72e26f82e)), + P(6469,CNST_LIMB(0xdded6688d83a918d),CNST_LIMB(0xa217aa3479693)), + P(6473,CNST_LIMB(0x4e446b6a305428f9),CNST_LIMB(0xa1fe05c62df4b)), + P(6481,CNST_LIMB(0x4ddaca7a3696cfb1),CNST_LIMB(0xa1cad538aebf9)), + P(6491,CNST_LIMB(0x7eadc4eb87f26ed3),CNST_LIMB(0xa18b05f490083)), + P(6521,CNST_LIMB(0x76c13a0ff04c00c9),CNST_LIMB(0xa0ccc4c28fc31)), + P(6529,CNST_LIMB(0xcbf800504d2a2681),CNST_LIMB(0xa09a544d01ffe)), + P(6547,CNST_LIMB(0x731dada6c4fec9b),CNST_LIMB(0xa0294aa53e9a2)), + P(6551,CNST_LIMB(0xbcb52a664e63f627),CNST_LIMB(0xa01041a6aaed5)), + P(6553,CNST_LIMB(0xf1f9abda071c2aa9),CNST_LIMB(0xa003c01680870)), + P(6563,CNST_LIMB(0xf262ffa620ffe20b),CNST_LIMB(0x9fc5558a971c8)), + P(6569,CNST_LIMB(0x93774a3d57199a99),CNST_LIMB(0x9f9ff9c3c03e5)), + P(6571,CNST_LIMB(0xfb3541cd467a1903),CNST_LIMB(0x9f9389b864ab9)), + P(6577,CNST_LIMB(0x6828cab6b4fe8f51),CNST_LIMB(0x9f6e4534bdca8)), + P(6581,CNST_LIMB(0x12ac03e3d624cc9d),CNST_LIMB(0x9f557687235c2)), + P(6599,CNST_LIMB(0x6363bd1e9bb7d7f7),CNST_LIMB(0x9ee633c0391ab)), + P(6607,CNST_LIMB(0x334cfd676a484d2f),CNST_LIMB(0x9eb4f28e0bb39)), + P(6619,CNST_LIMB(0xd511acd86f143a53),CNST_LIMB(0x9e6b49e92e4bb)), + P(6637,CNST_LIMB(0x73fc2490e0062be5),CNST_LIMB(0x9dfd4ccbd0045)), + P(6653,CNST_LIMB(0x10780dda36b78b55),CNST_LIMB(0x9d9c0828536c1)), + P(6659,CNST_LIMB(0xabf601274064e0ab),CNST_LIMB(0x9d77ad449f777)), + P(6661,CNST_LIMB(0x3ef3e4ca27e4a2cd),CNST_LIMB(0x9d6b92b28ee48)), + P(6673,CNST_LIMB(0x9216a26e690a16f1),CNST_LIMB(0x9d231a476ed51)), + P(6679,CNST_LIMB(0xbae4849e6034bda7),CNST_LIMB(0x9cfef711bf120)), + P(6689,CNST_LIMB(0xf943a0520e01e9e1),CNST_LIMB(0x9cc2e1448b765)), + P(6691,CNST_LIMB(0x7c89958f48f6658b),CNST_LIMB(0x9cb6e26cbc64d)), + P(6701,CNST_LIMB(0xe67128750e0545a5),CNST_LIMB(0x9c7b03b4a9c67)), + P(6703,CNST_LIMB(0xc6c9e1d414516ccf),CNST_LIMB(0x9c6f0fd980ab1)), + P(6709,CNST_LIMB(0x805307f996e9e81d),CNST_LIMB(0x9c4b3f3a30c3f)), + P(6719,CNST_LIMB(0x3eddd2cff46ad5bf),CNST_LIMB(0x9c0fb29436687)), + P(6733,CNST_LIMB(0x35582c1aeb5aae85),CNST_LIMB(0x9bbca025b7aec)), + P(6737,CNST_LIMB(0x4973c88573ef6eb1),CNST_LIMB(0x9ba4f4421e52c)), + P(6761,CNST_LIMB(0x3063f627c1e715d9),CNST_LIMB(0x9b1783809ff03)), + P(6763,CNST_LIMB(0x711ad679a8dcc243),CNST_LIMB(0x9b0bc5b4d2eac)), + P(6779,CNST_LIMB(0x51c224a17a3db4b3),CNST_LIMB(0x9aae172fd8b9c)), + P(6781,CNST_LIMB(0x612325ca50ddaed5),CNST_LIMB(0x9aa26954607ed)), + P(6791,CNST_LIMB(0x9929a7b6b7958b37),CNST_LIMB(0x9a681e758a022)), + P(6793,CNST_LIMB(0xa78d222e5a857bb9),CNST_LIMB(0x9a5c7b284942e)), + P(6803,CNST_LIMB(0x3ad0ffe3198d139b),CNST_LIMB(0x9a2264ecc5558)), + P(6823,CNST_LIMB(0x8b4659ac547ed17),CNST_LIMB(0x99aebb39be56f)), + P(6827,CNST_LIMB(0x1752e8904aff1003),CNST_LIMB(0x9997ae1a9faac)), + P(6829,CNST_LIMB(0x60745c37ee4e5925),CNST_LIMB(0x998c2a22b6900)), + P(6833,CNST_LIMB(0x29e2da1f6557ee51),CNST_LIMB(0x997527603f8a8)), + P(6841,CNST_LIMB(0x80d78c24ac49cb89),CNST_LIMB(0x99473685e4d50)), + P(6857,CNST_LIMB(0xc56c3b495c8d1f79),CNST_LIMB(0x98eba72512a13)), + P(6863,CNST_LIMB(0xcf5bdf9f5088ac2f),CNST_LIMB(0x98c96d8dee9e1)), + P(6869,CNST_LIMB(0x8a44800e4fae4e7d),CNST_LIMB(0x98a743453554e)), + P(6871,CNST_LIMB(0xdd76384277e578e7),CNST_LIMB(0x989be33c9e6bd)), + P(6883,CNST_LIMB(0x20b1562d2703facb),CNST_LIMB(0x9857c692e9a59)), + P(6899,CNST_LIMB(0xef56caf96e9d8e3b),CNST_LIMB(0x97fd540c05c9e)), + P(6907,CNST_LIMB(0xf54061416aede033),CNST_LIMB(0x97d04302ed944)), + P(6911,CNST_LIMB(0xe0bc78c21a26e4ff),CNST_LIMB(0x97b9c48289935)), + P(6917,CNST_LIMB(0x524f92731a179cd),CNST_LIMB(0x9798133ece717)), + P(6947,CNST_LIMB(0x5d3b4ad7deafec8b),CNST_LIMB(0x96f07c683689e)), + P(6949,CNST_LIMB(0x508828f744da88ad),CNST_LIMB(0x96e55d6393fc5)), + P(6959,CNST_LIMB(0x6e82014031710bcf),CNST_LIMB(0x96addad861696)), + P(6961,CNST_LIMB(0xadf3b77a22595dd1),CNST_LIMB(0x96a2c5a2cf0cf)), + P(6967,CNST_LIMB(0xd8f0c03f7ea8a87),CNST_LIMB(0x96818fc825eba)), + P(6971,CNST_LIMB(0x2c49e3483c3a05f3),CNST_LIMB(0x966b74027f48a)), + P(6977,CNST_LIMB(0xccecbc98c91274c1),CNST_LIMB(0x964a56850b8ed)), + P(6983,CNST_LIMB(0x273a08941bb71e77),CNST_LIMB(0x962947990eb36)), + P(6991,CNST_LIMB(0xdead5a1e3f341baf),CNST_LIMB(0x95fd4a4c885e0)), + P(6997,CNST_LIMB(0x83eee092593309fd),CNST_LIMB(0x95dc5d3954fde)), + P(7001,CNST_LIMB(0x4af5f1bd3ae87ce9),CNST_LIMB(0x95c671ddfe516)), + P(7013,CNST_LIMB(0x4ca85ad2301c9e6d),CNST_LIMB(0x9584d6340ddf1)), + P(7019,CNST_LIMB(0x1b19592cd31a3943),CNST_LIMB(0x95641de84afcc)), + P(7027,CNST_LIMB(0x3e7aa05e6dcd81bb),CNST_LIMB(0x953893c386521)), + P(7039,CNST_LIMB(0x86336cecb02ba47f),CNST_LIMB(0x94f7740d87794)), + P(7043,CNST_LIMB(0xa96b30d0c8a44b2b),CNST_LIMB(0x94e1cb70c9ce0)), + P(7057,CNST_LIMB(0xb7c63fa0cfca0571),CNST_LIMB(0x94962ecbcc7ce)), + P(7069,CNST_LIMB(0x8eaf59b405a642b5),CNST_LIMB(0x94559c69059cf)), + P(7079,CNST_LIMB(0xdf29e9cbb536dc17),CNST_LIMB(0x941ff7e640716)), + P(7103,CNST_LIMB(0xed14132c82c1d43f),CNST_LIMB(0x939fd7a24b099)), + P(7109,CNST_LIMB(0xaf68778e34caab0d),CNST_LIMB(0x937ff22c014bd)), + P(7121,CNST_LIMB(0xa4f04a3368941d31),CNST_LIMB(0x934050872c09e)), + P(7127,CNST_LIMB(0xe9960969357c07e7),CNST_LIMB(0x93209446d56f6)), + P(7129,CNST_LIMB(0xeb47b62b7360b469),CNST_LIMB(0x9316033b5bd22)), + P(7151,CNST_LIMB(0x64c653d779ae730f),CNST_LIMB(0x92a22b9a79374)), + P(7159,CNST_LIMB(0x479702d3319915c7),CNST_LIMB(0x927838edba206)), + P(7177,CNST_LIMB(0xef3c3eebc6803239),CNST_LIMB(0x921a2e7112833)), + P(7187,CNST_LIMB(0x93807b1a2e3c0e1b),CNST_LIMB(0x91e623d5660d0)), + P(7193,CNST_LIMB(0x8167e33e3f478029),CNST_LIMB(0x91c6fc0cab8b6)), + P(7207,CNST_LIMB(0x60cb76e38c339397),CNST_LIMB(0x917e7d88028eb)), + P(7211,CNST_LIMB(0xae34788ffe4bc283),CNST_LIMB(0x9169d455585cd)), + P(7213,CNST_LIMB(0x4b6246a0c6c093a5),CNST_LIMB(0x915f81ef2d529)), + P(7219,CNST_LIMB(0x872e594b12b03efb),CNST_LIMB(0x9140938595d3a)), + P(7229,CNST_LIMB(0xbc0ae83ce9045b15),CNST_LIMB(0x910d2360a450e)), + P(7237,CNST_LIMB(0xad30a3917e0968d),CNST_LIMB(0x90e417104eabd)), + P(7243,CNST_LIMB(0x124ef5a4e1c7cd63),CNST_LIMB(0x90c55d0fdea28)), + P(7247,CNST_LIMB(0x5b98fe0e9fe17aaf),CNST_LIMB(0x90b0e84c04f20)), + P(7253,CNST_LIMB(0x414306cfe45400fd),CNST_LIMB(0x909243fac6b70)), + P(7283,CNST_LIMB(0xa06d1b4fd391e8bb),CNST_LIMB(0x8ff9d0440d137)), + P(7297,CNST_LIMB(0x11939803a60c2381),CNST_LIMB(0x8fb3192789d73)), + P(7307,CNST_LIMB(0x668c11cc37ea6b23),CNST_LIMB(0x8f80c0d5031e3)), + P(7309,CNST_LIMB(0x83f9b2089dc10645),CNST_LIMB(0x8f76b3664f164)), + P(7321,CNST_LIMB(0x65dc8ae47af277a9),CNST_LIMB(0x8f3a80550abc3)), + P(7331,CNST_LIMB(0x6e2368b9c685770b),CNST_LIMB(0x8f087c50e00c4)), + P(7333,CNST_LIMB(0x3ea137aeba5a6b2d),CNST_LIMB(0x8efe7fb408cc2)), + P(7349,CNST_LIMB(0x735f57adca48f19d),CNST_LIMB(0x8eaecce5c4fd7)), + P(7351,CNST_LIMB(0x69a8de0ba1b18107),CNST_LIMB(0x8ea4dccaaec0b)), + P(7369,CNST_LIMB(0x8fb84bdf5822bd79),CNST_LIMB(0x8e4ba9fbc2ff0)), + P(7393,CNST_LIMB(0xb8fab3b748562721),CNST_LIMB(0x8dd5688a3b7d6)), + P(7411,CNST_LIMB(0xa6c658ea10a65c3b),CNST_LIMB(0x8d7d3821fd94f)), + P(7417,CNST_LIMB(0xe56381f33ab5e549),CNST_LIMB(0x8d5feb03c31d7)), + P(7433,CNST_LIMB(0xe3c224da14988139),CNST_LIMB(0x8d12033cc9d30)), + P(7451,CNST_LIMB(0x438c253e6d99f513),CNST_LIMB(0x8cbac4dec6a82)), + P(7457,CNST_LIMB(0xc1b99f8841a3a6e1),CNST_LIMB(0x8c9dc80ab604b)), + P(7459,CNST_LIMB(0x63fa18c79c54fa8b),CNST_LIMB(0x8c942115dcc96)), + P(7477,CNST_LIMB(0xe7f6f609619d0d1d),CNST_LIMB(0x8c3d7df67b539)), + P(7481,CNST_LIMB(0x7b39ef3b70afc109),CNST_LIMB(0x8c2a4bc35cb3b)), + P(7487,CNST_LIMB(0x73922c61ca7452bf),CNST_LIMB(0x8c0d8a4f1f264)), + P(7489,CNST_LIMB(0x28d96828332372c1),CNST_LIMB(0x8c03f71cbf906)), + P(7499,CNST_LIMB(0x6b6e92968c4e8463),CNST_LIMB(0x8bd42abd9a107)), + P(7507,CNST_LIMB(0x571861f084962edb),CNST_LIMB(0x8bae051d7f6ff)), + P(7517,CNST_LIMB(0xd935c64f140f1ef5),CNST_LIMB(0x8b7e735068135)), + P(7523,CNST_LIMB(0x96459f8fd72a4c4b),CNST_LIMB(0x8b61f82c5fb08)), + P(7529,CNST_LIMB(0x410ba9a2a18242d9),CNST_LIMB(0x8b4588a74a05a)), + P(7537,CNST_LIMB(0xcf90979f89870391),CNST_LIMB(0x8b1fb0a7ed403)), + P(7541,CNST_LIMB(0x10f94ff26bc00add),CNST_LIMB(0x8b0ccc5d8f5c8)), + P(7547,CNST_LIMB(0xa6619fbb9da139b3),CNST_LIMB(0x8af07f8ac5146)), + P(7549,CNST_LIMB(0x765a23334efb03d5),CNST_LIMB(0x8ae71328ffd49)), + P(7559,CNST_LIMB(0x6f2f613b5e631837),CNST_LIMB(0x8ab8086624822)), + P(7561,CNST_LIMB(0x666b99bfbcd368b9),CNST_LIMB(0x8aaea3ab5ae89)), + P(7573,CNST_LIMB(0x922b78eb01ed45bd),CNST_LIMB(0x8a7661f7020fe)), + P(7577,CNST_LIMB(0x7079a199c31de6a9),CNST_LIMB(0x8a63ab88aa8dd)), + P(7583,CNST_LIMB(0xa181abcda167be5f),CNST_LIMB(0x8a47a35d020f3)), + P(7589,CNST_LIMB(0x2f6dbbcab3a9822d),CNST_LIMB(0x8a2ba68a3cebf)), + P(7591,CNST_LIMB(0xc5a83ff0e43eba17),CNST_LIMB(0x8a2254c852497)), + P(7603,CNST_LIMB(0x28c68613dda7d97b),CNST_LIMB(0x89ea849898bb3)), + P(7607,CNST_LIMB(0x5cf33ed49efa5007),CNST_LIMB(0x89d7f3e285109)), + P(7621,CNST_LIMB(0x9125fdead661590d),CNST_LIMB(0x899720af36739)), + P(7639,CNST_LIMB(0xaee67f478c7325e7),CNST_LIMB(0x89442160d11dc)), + P(7643,CNST_LIMB(0x735b1274a0e89653),CNST_LIMB(0x8931bd5875a22)), + P(7649,CNST_LIMB(0x733b56eae1a4e621),CNST_LIMB(0x891630877aedf)), + P(7669,CNST_LIMB(0x1944ffb316ffe65d),CNST_LIMB(0x88baaad83e38f)), + P(7673,CNST_LIMB(0xf26bc3cfd2a01449),CNST_LIMB(0x88a86b9090aa4)), + P(7681,CNST_LIMB(0xb5827ba68b83e201),CNST_LIMB(0x8883fb99bf244)), + P(7687,CNST_LIMB(0xac139507e48eefb7),CNST_LIMB(0x8868b45e727ee)), + P(7691,CNST_LIMB(0xeb7676b25834fda3),CNST_LIMB(0x88568aef30d47)), + P(7699,CNST_LIMB(0xad898f4763da5c1b),CNST_LIMB(0x8832468f0bcdd)), + P(7703,CNST_LIMB(0xea906f224398f9a7),CNST_LIMB(0x88202b9a4df76)), + P(7717,CNST_LIMB(0xa8aff3caca28cdad),CNST_LIMB(0x87e0f31872e9b)), + P(7723,CNST_LIMB(0x46c53aa36b19b083),CNST_LIMB(0x87c5ecd731f42)), + P(7727,CNST_LIMB(0x9ada32b09603e8cf),CNST_LIMB(0x87b3eea3bb388)), + P(7741,CNST_LIMB(0xd31f842ef5d8e915),CNST_LIMB(0x87751a6c67d78)), + P(7753,CNST_LIMB(0x6124af44730a33f9),CNST_LIMB(0x873f6e2f9d34a)), + P(7757,CNST_LIMB(0x828ec4c2b6e64a85),CNST_LIMB(0x872d938dcfc01)), + P(7759,CNST_LIMB(0x3d6f49df999638af),CNST_LIMB(0x8724a80151dba)), + P(7789,CNST_LIMB(0x7641460a0ea89b65),CNST_LIMB(0x869f677f6cc1a)), + P(7793,CNST_LIMB(0x97703f98fb7fe291),CNST_LIMB(0x868db701df58d)), + P(7817,CNST_LIMB(0xd343c209e3e6b7b9),CNST_LIMB(0x8623f563a7d6d)), + P(7823,CNST_LIMB(0x4e5fc01f6a41406f),CNST_LIMB(0x86099ef0c8886)), + P(7829,CNST_LIMB(0xb78a05b08aa4bcbd),CNST_LIMB(0x85ef52d38fe87)), + P(7841,CNST_LIMB(0x3434a14919d34561),CNST_LIMB(0x85bad981c7847)), + P(7853,CNST_LIMB(0xccead7dee120f525),CNST_LIMB(0x8586893de7cfc)), + P(7867,CNST_LIMB(0xe1375a2bccd87673),CNST_LIMB(0x8549b491e9efe)), + P(7873,CNST_LIMB(0xf727d51420a57141),CNST_LIMB(0x852fb3859bea4)), + P(7877,CNST_LIMB(0x2c3b68cfbcebb00d),CNST_LIMB(0x851e631fc08f8)), + P(7879,CNST_LIMB(0xda91e2f3e17542f7),CNST_LIMB(0x8515bc9cde5f1)), + P(7883,CNST_LIMB(0xb55f6100ae95d6e3),CNST_LIMB(0x850472f6185b3)), + P(7901,CNST_LIMB(0x6a0c608e0bbaa975),CNST_LIMB(0x84b6defbc166b)), + P(7907,CNST_LIMB(0xac5f2fc151c016cb),CNST_LIMB(0x849d17159854b)), + P(7919,CNST_LIMB(0xb1e5af8146e4d00f),CNST_LIMB(0x8469a54a20645)), + P(7927,CNST_LIMB(0x6e283d3b112602c7),CNST_LIMB(0x84476f9401ade)), + P(7933,CNST_LIMB(0xf9a48bcb76c96e55),CNST_LIMB(0x842dd2e2dc25d)), + P(7937,CNST_LIMB(0xa776780ca4c0e101),CNST_LIMB(0x841cc543f58cb)), +#define SMALLEST_OMITTED_PRIME 7949 +#endif +#ifdef WANT_ptab + {CNST_LIMB(0x444437fed9a2349),{CNST_LIMB(0xe00056482545e92a),5,CNST_LIMB(0x2e044fdfbae4),CNST_LIMB(0x2c8f9615733fe6),CNST_LIMB(0x15319a745d44889),CNST_LIMB(0x30314bfee31fe08),CNST_LIMB(0x213845b5eb1d02b)},0,14}, + {CNST_LIMB(0x34091fa96ffdf47b),{CNST_LIMB(0x3adc72bf62f96a49),2,CNST_LIMB(0x2fdb815a40082e14),CNST_LIMB(0xa2fb4713ee182be),CNST_LIMB(0x6691fcc7a3042b5),CNST_LIMB(0xd7baca281bd7bfe),CNST_LIMB(0x31645ad7700b6fe1)},14,10}, + {CNST_LIMB(0x3c47d8d728a77ebb),{CNST_LIMB(0xfcb9aee19f3d0ca),2,CNST_LIMB(0xee09ca35d620514),CNST_LIMB(0x25e3c1639f7dc597),CNST_LIMB(0x176f977d1145f08f),CNST_LIMB(0x4a431b566c292ba),CNST_LIMB(0x100ae9d9482d6937)},24,9}, + {CNST_LIMB(0x77ab7da9d709ea9),{CNST_LIMB(0x11d1e7012ab3aa25),5,CNST_LIMB(0x1b394f7170aed8e),CNST_LIMB(0x546efaf8f3107d0),CNST_LIMB(0x42ed2efa9db39d8),CNST_LIMB(0xcf1c08fc6f825e),CNST_LIMB(0x252dd3fc3932c60)},33,8}, + {CNST_LIMB(0x310df3e7bd4bc897),{CNST_LIMB(0x4dfeef7ace095886),2,CNST_LIMB(0xaba3c794d85150d),CNST_LIMB(0x17a7ea757afc9b41),CNST_LIMB(0x27386bf8f31e3ba7),CNST_LIMB(0x14f913784ca1b09a),CNST_LIMB(0x19a5850266378808)},41,8}, + {CNST_LIMB(0xd997f089e8af1f),{CNST_LIMB(0x2d2f79839e6b7329),8,CNST_LIMB(0x285a2dd96a188d),CNST_LIMB(0x334ffbd384a516),CNST_LIMB(0xd9f5c4d959d8c),CNST_LIMB(0x1a7b0c8f9e2a8),CNST_LIMB(0x51d4df5ea86eca)},49,7}, + {CNST_LIMB(0x2514ab8fece6d79),{CNST_LIMB(0xb9d8ba8530d526d2),6,CNST_LIMB(0x111e482834cf602),CNST_LIMB(0x2099b9b4399ea77),CNST_LIMB(0xa7e65453d2c58b),CNST_LIMB(0x1543e97a71ba902),CNST_LIMB(0x13c9258fa65ea5c)},56,7}, + {CNST_LIMB(0x690efbefde431f9),{CNST_LIMB(0x37e6fe9321e30a89),5,CNST_LIMB(0x67c69a65020950a),CNST_LIMB(0x3d4da34fd3fb29d),CNST_LIMB(0x4481530580bf270),CNST_LIMB(0x53418b541a702fb),CNST_LIMB(0x5a63ba140615695)},63,7}, + {CNST_LIMB(0xf49e199a5f2f371),{CNST_LIMB(0xbe97cf50195e4cf),4,CNST_LIMB(0xb61e665a0d0c8f0),CNST_LIMB(0x12404319392532e),CNST_LIMB(0xc11fa27489010aa),CNST_LIMB(0x9486cdb3a063f1d),CNST_LIMB(0x90fb58fe1716f29)},70,7}, + {CNST_LIMB(0x20e4ce7eee0a5edf),{CNST_LIMB(0xf216910d87cce9ec),2,CNST_LIMB(0x19be5a877db767e7),CNST_LIMB(0x14174edbad8e4db0),CNST_LIMB(0x13aa47a54ebc0ab3),CNST_LIMB(0x34e03d849eed1a0),CNST_LIMB(0x1c348c675b2b87a9)},77,7}, + {CNST_LIMB(0x3c3b299a83e166e5),{CNST_LIMB(0x1004d8385b0845e0),2,CNST_LIMB(0xf135995f07a646c),CNST_LIMB(0x39f996f3e7c62cb6),CNST_LIMB(0x10e385c8b908ec46),CNST_LIMB(0x108780c61cd93a1),CNST_LIMB(0xece590a749ce9e6)},84,7}, + {CNST_LIMB(0x7385117dabf89767),{CNST_LIMB(0x1ba83180cf48fd02),1,CNST_LIMB(0x18f5dd04a80ed132),CNST_LIMB(0x134aacf48cf374fd),CNST_LIMB(0x5f5e8ab304a603e1),CNST_LIMB(0x8196d4d84952f0b),CNST_LIMB(0x27fbce261e06981)},91,7}, + {CNST_LIMB(0x6b1dd94152d113),{CNST_LIMB(0x31e8de86cb665558),9,CNST_LIMB(0x57c2791756ffa7),CNST_LIMB(0x155d1b6359e72e),CNST_LIMB(0x26e2dd434311d6),CNST_LIMB(0x2d6624583bf57f),CNST_LIMB(0x4b3c0311592466)},98,6}, + {CNST_LIMB(0x9bed1488742f9b),{CNST_LIMB(0xa44d3b1c6d785d44),8,CNST_LIMB(0x2f0a502161e5b4),CNST_LIMB(0x9197cc3e5a5b04),CNST_LIMB(0x58ecad625341f6),CNST_LIMB(0x2c8e81222f4972),CNST_LIMB(0x1f80904334e61e)},104,6}, + {CNST_LIMB(0xd851b0362c316b),{CNST_LIMB(0x2ef5b88db4540035),8,CNST_LIMB(0xcfa22017ddb3c6),CNST_LIMB(0x213062fd865691),CNST_LIMB(0x81822846481a0d),CNST_LIMB(0x4b3f5844dfd386),CNST_LIMB(0x746b08e79bff57)},110,6}, + {CNST_LIMB(0x129e6025385b5e9),{CNST_LIMB(0xb7fd23d5247f5d33),7,CNST_LIMB(0x1283c028c9d61ad),CNST_LIMB(0x8a2496a2184268),CNST_LIMB(0x702aa9d6cae97c),CNST_LIMB(0x8700d0e7b38adb),CNST_LIMB(0x562031b42d3873)},116,6}, + {CNST_LIMB(0x1b399405df9e1d9),{CNST_LIMB(0x2ce69e058ed22408),7,CNST_LIMB(0xc43448ef95aada),CNST_LIMB(0x2a35f6f5397332),CNST_LIMB(0x18bba0a2b06f9b5),CNST_LIMB(0x1bf0769bdd0a51),CNST_LIMB(0xdaf86a9dd4f157)},122,6}, + {CNST_LIMB(0x26a9c83b1da0183),{CNST_LIMB(0xa7c312b1de2834bc),6,CNST_LIMB(0x245cdfc0d956145),CNST_LIMB(0xcfb5812fdbb80b),CNST_LIMB(0x7f9bd0fd4d9771),CNST_LIMB(0x206d41f157b339d),CNST_LIMB(0x1597d040f39bed6)},128,6}, + {CNST_LIMB(0x36518f1ed35fae9),{CNST_LIMB(0x2da0bb538e68c61b),6,CNST_LIMB(0x161b11f812f7dbd),CNST_LIMB(0x1912054119f8337),CNST_LIMB(0x28b68baf0254a33),CNST_LIMB(0x1febc2a846ec627),CNST_LIMB(0x106e286e91657ac)},134,6}, + {CNST_LIMB(0x499cea9952ffcb7),{CNST_LIMB(0xbd2398239911cb86),5,CNST_LIMB(0x2f49990f2b0b4af),CNST_LIMB(0x3efc376b6d3879a),CNST_LIMB(0x16bf595684e7cae),CNST_LIMB(0x2096f989291e15a),CNST_LIMB(0x3f877653fe30a29)},140,6}, + {CNST_LIMB(0x603dc1f0578e36b),{CNST_LIMB(0x547a4d1f60bb6de6),5,CNST_LIMB(0x35de2e91a2ab072),CNST_LIMB(0x3ae19a039d933f9),CNST_LIMB(0x49f04fa32aed515),CNST_LIMB(0x49f39ce5e69737b),CNST_LIMB(0x48e7a8d6354cb3f)},146,6}, + {CNST_LIMB(0x822f4ff1bb75c7d),{CNST_LIMB(0xf7684c1a915fd94f),4,CNST_LIMB(0x3c4551ba4cbccdd),CNST_LIMB(0x3e072857c5d22e8),CNST_LIMB(0x757d8256f24de27),CNST_LIMB(0x256d9df09b5df5c),CNST_LIMB(0x19974713584ab80)},152,6}, + {CNST_LIMB(0xacfc9fbdf683023),{CNST_LIMB(0x7ad9852da99412df),4,CNST_LIMB(0x754da5eeda3acdb),CNST_LIMB(0x91f55d002dee623),CNST_LIMB(0x96936cc5e49d5ea),CNST_LIMB(0x766649a4996390),CNST_LIMB(0xaa8c52b8eea17dd)},158,6}, + {CNST_LIMB(0xe09d410f1fe4edb),{CNST_LIMB(0x23c5744aa32cf453),4,CNST_LIMB(0x34f16cefc1e749a),CNST_LIMB(0x2668179180c1b62),CNST_LIMB(0xdb241be2f133397),CNST_LIMB(0xa7c11527a49744e),CNST_LIMB(0x67d18e0669fea5b)},164,6}, + {CNST_LIMB(0x1149424a578f0ce7),{CNST_LIMB(0xd9e7a906d91cf1db),3,CNST_LIMB(0xdfe5fef362d4b5e),CNST_LIMB(0xcf056a84b77c77c),CNST_LIMB(0x985dfab0d2bd76b),CNST_LIMB(0xf57931f6922ec07),CNST_LIMB(0x44b19bfab74d6)},170,6}, + {CNST_LIMB(0x15b025d5fd579777),{CNST_LIMB(0x79b813c3ed8f4fd2),3,CNST_LIMB(0x116e5fce1d3c7de3),CNST_LIMB(0x1468c60d0220a399),CNST_LIMB(0xf10192b1089742d),CNST_LIMB(0xeae0b108eba5be6),CNST_LIMB(0xf0e98ff5e4d57d4)},176,6}, + {CNST_LIMB(0x1a5f81f6e38d3f1d),{CNST_LIMB(0x369eab91d724ae89),3,CNST_LIMB(0x12a46e520008c7fb),CNST_LIMB(0x638a97340d45e81),CNST_LIMB(0x12b4b0c893a62d44),CNST_LIMB(0x1072dcd55e5547d0),CNST_LIMB(0x18ce18c4a086d95f)},182,6}, + {CNST_LIMB(0x23293bf9b6fe2259),{CNST_LIMB(0xd1f849a43b917c65),2,CNST_LIMB(0x9df5c2bff0d0f91),CNST_LIMB(0xff1fdef6c15b8c),CNST_LIMB(0xec1383d93946006),CNST_LIMB(0x20ce6fd4fbbb8838),CNST_LIMB(0x55871453993a979)},188,6}, + {CNST_LIMB(0x2c1eaa6645e21b17),{CNST_LIMB(0x735a473662e09835),2,CNST_LIMB(0x2366ac00a295788d),CNST_LIMB(0xf8778468c26bac6),CNST_LIMB(0x10ecc751d2724c63),CNST_LIMB(0x4882fbd9d3d43e1),CNST_LIMB(0x2de76607a7f1541)},194,6}, + {CNST_LIMB(0x3646542a1110061b),{CNST_LIMB(0x2ddf24b018173a2c),2,CNST_LIMB(0x26e6af57bbbfe794),CNST_LIMB(0x1974e8d33a8f431f),CNST_LIMB(0x34da7258db6f7b4f),CNST_LIMB(0x2af310e921f874f8),CNST_LIMB(0x3cfeed9d4afc97)},200,6}, + {CNST_LIMB(0x4125602df5b7fa0b),{CNST_LIMB(0xf6fe47f7e339f3ce),1,CNST_LIMB(0x3c8fdf761ed811df),CNST_LIMB(0x145648c8769aba41),CNST_LIMB(0x3270209c06bd9a17),CNST_LIMB(0x2c03f98e45b9dca3),CNST_LIMB(0x3341dcfe340ee93e)},206,6}, + {CNST_LIMB(0x4e06bb83aa64f48d),{CNST_LIMB(0xa3f6020ab0b7e0d3),1,CNST_LIMB(0x15ebcd7500d12259),CNST_LIMB(0x786bf28f0081f92),CNST_LIMB(0x15d832d09f03b587),CNST_LIMB(0xaa3e94d54c2a575),CNST_LIMB(0x471850a042d21386)},212,6}, + {CNST_LIMB(0x6953db39a8298d8b),{CNST_LIMB(0x371b0bbe24632f20),1,CNST_LIMB(0x2d58498caface4ea),CNST_LIMB(0x557c399022219340),CNST_LIMB(0x2cb32a1a8fdd68c2),CNST_LIMB(0x122684249d42b9a9),CNST_LIMB(0x13c80507e77a929c)},218,6}, + {CNST_LIMB(0x15fafabe1c1777),{CNST_LIMB(0x74b22475baab0cce),11,CNST_LIMB(0xc763842e2c34d),CNST_LIMB(0x77d3f710b457b),CNST_LIMB(0x155a43f5525196),CNST_LIMB(0x148e30e0a5dee3),CNST_LIMB(0x13aa97836b8150)},224,5}, + {CNST_LIMB(0x18552ab4f8303b),{CNST_LIMB(0x50aaa1ed4d926e62),11,CNST_LIMB(0x815be492ca359),CNST_LIMB(0x1b55fe26d36ad),CNST_LIMB(0x113a54ceb7846),CNST_LIMB(0x1688511dfe47f),CNST_LIMB(0x66ccabff6c6c8)},229,5}, + {CNST_LIMB(0x1a99c2502dda5f),{CNST_LIMB(0x33f675a22ebecef5),11,CNST_LIMB(0x12ab7e96d807ff),CNST_LIMB(0x1d3db891dce3b),CNST_LIMB(0x19511de2e3095c),CNST_LIMB(0x2741e555a0bff),CNST_LIMB(0x51c7d31a19281)},234,5}, + {CNST_LIMB(0x1ebf9e78cd7ecb),{CNST_LIMB(0xa6b5da36fa2470c),11,CNST_LIMB(0xaebd869698c2f),CNST_LIMB(0x18e178fc70e26a),CNST_LIMB(0x64439ec9707b5),CNST_LIMB(0x116d1f70d29f20),CNST_LIMB(0xeea2317a9a585)},239,5}, + {CNST_LIMB(0x2214c7d5d9ce07),{CNST_LIMB(0xe0bc0f6215d26cf9),10,CNST_LIMB(0x1ffbac72c32f72),CNST_LIMB(0x1447f31b055129),CNST_LIMB(0x122d28bd754f9a),CNST_LIMB(0x106685d95b6d85),CNST_LIMB(0x18c9fdf391bdff)},244,5}, + {CNST_LIMB(0x25e2755d49ffa7),{CNST_LIMB(0xb078a0cae16506b6),10,CNST_LIMB(0x218554ef385919),CNST_LIMB(0xe00c975692d8e),CNST_LIMB(0x1afd2511d2f776),CNST_LIMB(0x108b0b031673f7),CNST_LIMB(0x8d919ed067cf0)},249,5}, + {CNST_LIMB(0x2925e3d5425d41),{CNST_LIMB(0x8e2c20d6f8f795ce),10,CNST_LIMB(0x1c5f29cb4c13c8),CNST_LIMB(0x15e11f6e5f634),CNST_LIMB(0xb32166d7982b3),CNST_LIMB(0xa636cf5c4f642),CNST_LIMB(0x28f997d81938bc)},254,5}, + {CNST_LIMB(0x2f39e99d11c26d),{CNST_LIMB(0x5aed08e710697213),10,CNST_LIMB(0x213b4a00c79b71),CNST_LIMB(0x1bd2737e294111),CNST_LIMB(0xd01c8aaaae314),CNST_LIMB(0xb00f1e27ed99e),CNST_LIMB(0x1d21748adab7e4)},259,5}, + {CNST_LIMB(0x3502a3ce62a769),{CNST_LIMB(0x35126ab40383fc5c),10,CNST_LIMB(0xf411f8bafb90c),CNST_LIMB(0x1fa38c975e6347),CNST_LIMB(0xf4058b043df4e),CNST_LIMB(0x2af2733656b159),CNST_LIMB(0x196e94f446c597)},264,5}, + {CNST_LIMB(0x3b357b23b014b1),{CNST_LIMB(0x14b711563eba7d77),10,CNST_LIMB(0x32f1ffd1469b4e),CNST_LIMB(0x197f48859c01a3),CNST_LIMB(0x29509dc5352d40),CNST_LIMB(0x335e5c9ef5d7fe),CNST_LIMB(0x284e1a5376a683)},269,5}, + {CNST_LIMB(0x420d06773114d3),{CNST_LIMB(0xf01a36d7bbf66dfc),9,CNST_LIMB(0xd86f221cf4e60),CNST_LIMB(0x728955d2f4a8d),CNST_LIMB(0x1a631ed35adca5),CNST_LIMB(0x2d592810a2cd39),CNST_LIMB(0x1215b15f856f68)},274,5}, + {CNST_LIMB(0x4c19f733c90d09),{CNST_LIMB(0xae954f9b28df48d8),9,CNST_LIMB(0xcab96d4cf28bb),CNST_LIMB(0x42b5fc3fd6e7ec),CNST_LIMB(0x2b7f897adc30de),CNST_LIMB(0x1a97bb06e110c0),CNST_LIMB(0x304db431256118)},279,5}, + {CNST_LIMB(0x52f224bf890ffd),{CNST_LIMB(0x8b0d84b8653cb09f),9,CNST_LIMB(0x8c298ef08a942),CNST_LIMB(0x2999ac4ebb9e26),CNST_LIMB(0x3dd9eb9ca2c026),CNST_LIMB(0x43401c4563f790),CNST_LIMB(0x38d5e8bf6d2c89)},284,5}, + {CNST_LIMB(0x5bf703dda941b1),{CNST_LIMB(0x644f51d4add132a4),9,CNST_LIMB(0x38fd3f81414bb8),CNST_LIMB(0x20049119d93b7c),CNST_LIMB(0x4e479d97844206),CNST_LIMB(0x294a3066f3b775),CNST_LIMB(0x1c21bda84cf2fc)},289,5}, + {CNST_LIMB(0x68cf321fe6202f),{CNST_LIMB(0x38a4d27caeef8e91),9,CNST_LIMB(0x1e26a01f2b6d41),CNST_LIMB(0x9e9e8993d282b),CNST_LIMB(0x417ad2819cd4fb),CNST_LIMB(0x627fb183ab0b1a),CNST_LIMB(0x278b9f029564e7)},294,5}, + {CNST_LIMB(0x71dad4e06cde9b),{CNST_LIMB(0x1fce1dcd4eb47a27),9,CNST_LIMB(0x457bdbeb7801db),CNST_LIMB(0x1f2b3df5db8f09),CNST_LIMB(0x2149ca25813ef0),CNST_LIMB(0x17d20c710e4487),CNST_LIMB(0x40ceb8ee4ca73d)},299,5}, + {CNST_LIMB(0x7b5e9ca091c63d),{CNST_LIMB(0x99bc23041414782),9,CNST_LIMB(0x1ac11ef1a1cf79),CNST_LIMB(0x313f0652fefffc),CNST_LIMB(0x12f34ea4e7a5db),CNST_LIMB(0x2aa2b3b3300bfd),CNST_LIMB(0x3245caffd0690c)},304,5}, + {CNST_LIMB(0x892f2017af4a77),{CNST_LIMB(0xddb91a666e887a07),8,CNST_LIMB(0x633133de624045),CNST_LIMB(0x7f207860875935),CNST_LIMB(0x702aff29ff7777),CNST_LIMB(0x1cc53fa2f53db9),CNST_LIMB(0x2c5ff88b6e27ee)},309,5}, + {CNST_LIMB(0x93efab3d98e265),{CNST_LIMB(0xbb00736076c6c8fc),8,CNST_LIMB(0x42ac68703b39),CNST_LIMB(0x4d4d015d5d1bd7),CNST_LIMB(0x85c801afb0f411),CNST_LIMB(0x4579d8022d0a69),CNST_LIMB(0x32ea2e520e3d23)},314,5}, + {CNST_LIMB(0x9fd1e9a289b8f9),{CNST_LIMB(0x9a0fb77008192e78),8,CNST_LIMB(0x9cfd1af6dc136),CNST_LIMB(0x23a28bc352c87c),CNST_LIMB(0x582383446e53c2),CNST_LIMB(0x3d52e0695b07e4),CNST_LIMB(0x83c6fc0e7cfd23)},319,5}, + {CNST_LIMB(0xb3ffc82a3b00bb),{CNST_LIMB(0x6c17325c7676de1f),8,CNST_LIMB(0x104f63f41af61c),CNST_LIMB(0x838ff92da5d267),CNST_LIMB(0xb37001a22f0194),CNST_LIMB(0x4487295b668b16),CNST_LIMB(0xa06ce4ed65729d)},324,5}, + {CNST_LIMB(0xc78aab3260ed67),{CNST_LIMB(0x486ec1d048657b5d),8,CNST_LIMB(0x5654a773cfd408),CNST_LIMB(0xb3f20a79edde43),CNST_LIMB(0xaebbd1a69724dd),CNST_LIMB(0x81191f0503a9),CNST_LIMB(0x3b54fc6e1ed034)},329,5}, + {CNST_LIMB(0xd8b06a4b9eddc9),{CNST_LIMB(0x2e7147c081441aeb),8,CNST_LIMB(0x5fe29aca965ce2),CNST_LIMB(0x9cb19caad665ca),CNST_LIMB(0x147b04c65844fd),CNST_LIMB(0x7a1c878be8db45),CNST_LIMB(0x8f4f4d51c80dfd)},334,5}, + {CNST_LIMB(0xe8f35bfe49ae4b),{CNST_LIMB(0x19547b44fa632b82),8,CNST_LIMB(0x4ce005e11fafad),CNST_LIMB(0x57f2d94de4ea00),CNST_LIMB(0xb885b9e976e473),CNST_LIMB(0x1eb25c197e9b39),CNST_LIMB(0xe2c45221f5cdb7)},339,5}, + {CNST_LIMB(0xfcff7f19788a27),{CNST_LIMB(0x3099f4bf7423272),8,CNST_LIMB(0x982693b0c3a8b),CNST_LIMB(0xa6eee9dce0fc63),CNST_LIMB(0xf1290f2b74223c),CNST_LIMB(0x36c85e11826e0b),CNST_LIMB(0xbe15668a4d3771)},344,5}, + {CNST_LIMB(0x10f681c21a80325),{CNST_LIMB(0xe2ef902951d2322d),7,CNST_LIMB(0x7efd8450d50a2b),CNST_LIMB(0x37c115b60abfde),CNST_LIMB(0x4a31517b3a2c0),CNST_LIMB(0x8ee426b2c25e26),CNST_LIMB(0xaf5e09c0582f8)},349,5}, + {CNST_LIMB(0x11ffa8ecf7814fb),{CNST_LIMB(0xc7250b86192832ab),7,CNST_LIMB(0xa4d35e0885656f),CNST_LIMB(0x6d14e9be5101ec),CNST_LIMB(0x93b36726a244a),CNST_LIMB(0xb56f38bde55186),CNST_LIMB(0x11443988cbd610f)},354,5}, + {CNST_LIMB(0x139b8ddf439b133),{CNST_LIMB(0xa1cbe52ffcdca969),7,CNST_LIMB(0x119cba991200690),CNST_LIMB(0xa8a1be12145159),CNST_LIMB(0x49831f7f1eb091),CNST_LIMB(0x5fe3a0bd210422),CNST_LIMB(0x11b90612ebf719f)},359,5}, + {CNST_LIMB(0x15b90aaef040351),{CNST_LIMB(0x791d6da971f79fb1),7,CNST_LIMB(0xc1c278790d9084),CNST_LIMB(0xa6bc771172ca70),CNST_LIMB(0x1219044d36b161b),CNST_LIMB(0x9363a00d9d3f5f),CNST_LIMB(0x14079ec2a37ea93)},364,5}, + {CNST_LIMB(0x17d664f86c88bd3),{CNST_LIMB(0x57a9176de3f40918),7,CNST_LIMB(0x13ca8e0f80a9a0f),CNST_LIMB(0xfc1ecc66c0c93b),CNST_LIMB(0x15be6192051cb1a),CNST_LIMB(0x136f263b7a50fcc),CNST_LIMB(0x3820db8623a7)},369,5}, + {CNST_LIMB(0x1a44cc5ef4c16b5),{CNST_LIMB(0x37da80020a7d1f74),7,CNST_LIMB(0x18584281cee4069),CNST_LIMB(0x178a63d22596ba9),CNST_LIMB(0x6739c7c5ac4f2d),CNST_LIMB(0x14c57a38e4d612a),CNST_LIMB(0x13d2e7fd35623ae)},374,5}, + {CNST_LIMB(0x1ca80b29773de79),{CNST_LIMB(0x1dde9f723a4f55dc),7,CNST_LIMB(0x1ac9ceffdba98e2),CNST_LIMB(0xf4618a5f0fdaa9),CNST_LIMB(0x17b96b4ded53ebb),CNST_LIMB(0x7faf749bdd9cb1),CNST_LIMB(0xfa9d50111fc549)},379,5}, + {CNST_LIMB(0x1e7b019a7fa8931),{CNST_LIMB(0xcc3160c520cdb96),7,CNST_LIMB(0xb9d29212dc305a),CNST_LIMB(0x91586fa7d2facc),CNST_LIMB(0x2638c4c9135f19),CNST_LIMB(0x1c315565816b84a),CNST_LIMB(0xa92e9c918ad70f)},384,5}, + {CNST_LIMB(0x1fd932c2a6c3463),{CNST_LIMB(0x137e41a0c0b8d4f),7,CNST_LIMB(0x13669eac9e5ce80),CNST_LIMB(0x94dc55b30276b5),CNST_LIMB(0x1c52a400cc7dae6),CNST_LIMB(0x1cd876c8023e81b),CNST_LIMB(0x8e06dbbb7e4c2d)},389,5}, + {CNST_LIMB(0x2175e8bd7050e79),{CNST_LIMB(0xe9a698d03a5e604b),6,CNST_LIMB(0xdcf15b87971a56),CNST_LIMB(0x2e9e439e7517fb),CNST_LIMB(0x85bbfca7ac6da9),CNST_LIMB(0x500c9508abde31),CNST_LIMB(0x1c9d7aa292a48b0)},394,5}, + {CNST_LIMB(0x24033b205fe4527),{CNST_LIMB(0xc6f39cee1695e79a),6,CNST_LIMB(0x1a92e6b5ac379c9),CNST_LIMB(0x1f1b86c0e7f8d15),CNST_LIMB(0x1e362d27d79fda9),CNST_LIMB(0x4dcd13ebf2a00a),CNST_LIMB(0x408b8bd354f1b4)},399,5}, + {CNST_LIMB(0x265d2eb09cdc073),{CNST_LIMB(0xab112e468a91ceb0),6,CNST_LIMB(0x1d6aaadf0ce5062),CNST_LIMB(0x8cb5be41003782),CNST_LIMB(0x52b9980c0c4bec),CNST_LIMB(0x2228f2e6cbe8667),CNST_LIMB(0xca6f7400df044e)},404,5}, + {CNST_LIMB(0x2953a0e65ca6a1d),{CNST_LIMB(0x8c7372d9ab5569c1),6,CNST_LIMB(0x4a8c6ea2b8f6c9),CNST_LIMB(0x3588f2393801ce),CNST_LIMB(0x1fce38ab648e336),CNST_LIMB(0x89544c1c4d5e80),CNST_LIMB(0x6e5d409692ed37)},409,5}, + {CNST_LIMB(0x2c67f25a6bc9c63),{CNST_LIMB(0x70f57416f0cce89e),6,CNST_LIMB(0xaa4e781437cc6c),CNST_LIMB(0x1c38f9d456ca8d),CNST_LIMB(0x2682eae3a0afadb),CNST_LIMB(0x2b54835e8a4f4ca),CNST_LIMB(0x1ff894f600fa94f)},414,5}, + {CNST_LIMB(0x2fdd1a7524ae76d),{CNST_LIMB(0x564e31abce2eba47),6,CNST_LIMB(0x1b96371ad2128cf),CNST_LIMB(0x35309a6895ab0d),CNST_LIMB(0x14de5531da96df1),CNST_LIMB(0x3a924ccc42ac90),CNST_LIMB(0x315a6b9b99a595)},419,5}, + {CNST_LIMB(0x33770e6e18aeb53),{CNST_LIMB(0x3e5a14fd0434a100),6,CNST_LIMB(0x1e428c066216163),CNST_LIMB(0x93d03854bffefa),CNST_LIMB(0x77e62b6df8d4a1),CNST_LIMB(0x8a8b138bb2ed69),CNST_LIMB(0x292d249664af8db)},424,5}, + {CNST_LIMB(0x379c7dff6334d3b),{CNST_LIMB(0x269dcc0c8d56e875),6,CNST_LIMB(0x2460122cb5efa2d),CNST_LIMB(0x28e51e3c7265f2e),CNST_LIMB(0x1efacb51926e686),CNST_LIMB(0xfc8248ae79bd5f),CNST_LIMB(0x2f3b91b1fe1f65)},429,5}, + {CNST_LIMB(0x3b82f15f7249c49),{CNST_LIMB(0x134ee332d51f0306),6,CNST_LIMB(0x3137e2a5a467c9c),CNST_LIMB(0x79d488798b4960),CNST_LIMB(0xb436578d1069bb),CNST_LIMB(0x10ad84e585582d0),CNST_LIMB(0x3215616c9b153bf)},434,5}, + {CNST_LIMB(0x3fff4dd17ad4ff9),{CNST_LIMB(0x2c8c1d50d30af),6,CNST_LIMB(0x2c8ba14ac01c0),CNST_LIMB(0x2bd06852b51e327),CNST_LIMB(0x30714e5452d2c1),CNST_LIMB(0x327ff42efc6d9c),CNST_LIMB(0x244bb5001864710)},439,5}, + {CNST_LIMB(0x465670cc294b181),{CNST_LIMB(0xd1ddf947b9d55be0),5,CNST_LIMB(0x106a71bea4fc8c6),CNST_LIMB(0xa255b26c45d27f),CNST_LIMB(0x460d26a6240e466),CNST_LIMB(0x1dda425d1868b60),CNST_LIMB(0x3d6eff8580e97e1)},444,5}, + {CNST_LIMB(0x4aaaab2fe3fee47),{CNST_LIMB(0xb6db6aa7d3a37a63),5,CNST_LIMB(0x3fffe3e5e83bd06),CNST_LIMB(0xa8a65f30809160),CNST_LIMB(0xbfd8fef4142370),CNST_LIMB(0x358c77f78c2a4d0),CNST_LIMB(0x3a89f0ee6796b95)},449,5}, + {CNST_LIMB(0x4f8bbff17c95ef7),{CNST_LIMB(0x9bf032ee57751395),5,CNST_LIMB(0x2728c2e42e214cb),CNST_LIMB(0x37fb2686e89761e),CNST_LIMB(0x4a264029edea029),CNST_LIMB(0x1d504d3aecaaa50),CNST_LIMB(0x45b5a7b35031756)},454,5}, + {CNST_LIMB(0x553ea1ce3216691),{CNST_LIMB(0x806643148e9063ef),5,CNST_LIMB(0x441a9569bcc4d0),CNST_LIMB(0x535ae4be3f071a1),CNST_LIMB(0x545a793067e09d8),CNST_LIMB(0xd5d15c09afe8cd),CNST_LIMB(0x4534c23a01c6a96)},459,5}, + {CNST_LIMB(0x59f7c9a4fefb517),{CNST_LIMB(0x6c37fd6421ef50ed),5,CNST_LIMB(0x2f718dff2dd2af5),CNST_LIMB(0x4aea82d40c5cc72),CNST_LIMB(0x4f7cec2a6861199),CNST_LIMB(0xe868a369a42529),CNST_LIMB(0x40e610cd320b2f7)},464,5}, + {CNST_LIMB(0x5e8d3fa86f95521),{CNST_LIMB(0x5a8fc0667cc240fe),5,CNST_LIMB(0x1e464eb541eb375),CNST_LIMB(0x3892fa43db27fd5),CNST_LIMB(0x4e5c7836ddc791a),CNST_LIMB(0x36e537bed96365e),CNST_LIMB(0x4375094ddcb8820)},469,5}, + {CNST_LIMB(0x64157c62c33e31d),{CNST_LIMB(0x4767bbee2675bc54),5,CNST_LIMB(0x5ca490917e48378),CNST_LIMB(0x11867a67aa79db0),CNST_LIMB(0x6198c4cbcaf84e6),CNST_LIMB(0x4338ebe5ab25fcf),CNST_LIMB(0x11e91c53e48fd1e)},474,5}, + {CNST_LIMB(0x6ceeed4c43f4183),{CNST_LIMB(0x2cced2b1dae4601a),5,CNST_LIMB(0x4177b3fa2db8811),CNST_LIMB(0x2b3db3648dc8a5),CNST_LIMB(0x50f060794aa127),CNST_LIMB(0x4f7cdc200df8c9a),CNST_LIMB(0x4525db055625df3)},479,5}, + {CNST_LIMB(0x7287ee7e5f96919),{CNST_LIMB(0x1e1b2205d593e3a6),5,CNST_LIMB(0x576a64b8ee6a195),CNST_LIMB(0x7bd2ea513c7027),CNST_LIMB(0x17c4152c6d55daa),CNST_LIMB(0x39f7aac6f902f57),CNST_LIMB(0x14765413bf9b5ca)},484,5}, + {CNST_LIMB(0x79886d10dfa5165),{CNST_LIMB(0xd9f57c223f379ca),5,CNST_LIMB(0x5569f0d32bb81fb),CNST_LIMB(0x6f08a7fc8e770a6),CNST_LIMB(0x2c14d325ec8479f),CNST_LIMB(0x4499d22e49d3c7),CNST_LIMB(0x53f1f1eecdc8c2)},489,5}, + {CNST_LIMB(0x7e13347ac1526bf),{CNST_LIMB(0x3e8a375cf0fb774),5,CNST_LIMB(0x3d9970a7d5b2820),CNST_LIMB(0x3664c9d670bba16),CNST_LIMB(0x6ba929ee3cbcd5c),CNST_LIMB(0xd5d262e6d92452),CNST_LIMB(0x2f545142add8d05)},494,5}, + {CNST_LIMB(0x8566f0377d15459),{CNST_LIMB(0xeb44411c1363bcf4),4,CNST_LIMB(0x5defd97f5781d92),CNST_LIMB(0x16eaae98cb00189),CNST_LIMB(0x986f4f6d77c243),CNST_LIMB(0x57c736925ddfd9),CNST_LIMB(0x10a756243dbe4ca)},499,5}, + {CNST_LIMB(0x8bfc83897e6cdaf),{CNST_LIMB(0xd428ea393317b9f2),4,CNST_LIMB(0x2465196cadab32d),CNST_LIMB(0x7594e9e684d904a),CNST_LIMB(0x19cd4a75383b2d1),CNST_LIMB(0x6a0e9c23f177e64),CNST_LIMB(0x56f0f2ae36c5465)},504,5}, + {CNST_LIMB(0x94ad790245385eb),{CNST_LIMB(0xb8cae8ae9a639526),4,CNST_LIMB(0x51b43cc2b30e037),CNST_LIMB(0x4cb133bb88b3adc),CNST_LIMB(0x3ede33df9c5e3e3),CNST_LIMB(0x665226a2d290ac4),CNST_LIMB(0x33db5ce835ec6e4)},509,5}, + {CNST_LIMB(0x9c30734d93b1379),{CNST_LIMB(0xa397f073b55bde0b),4,CNST_LIMB(0x23144a1f00005b6),CNST_LIMB(0x826ad253a3ed324),CNST_LIMB(0x940ad5d52b4806c),CNST_LIMB(0x1729e9d2d022730),CNST_LIMB(0x20a978fb381a6c2)},514,5}, + {CNST_LIMB(0xa57e1fd7a44fbb9),{CNST_LIMB(0x8c0164efd39df203),4,CNST_LIMB(0x7c2d03c898866a8),CNST_LIMB(0x4037558c6f1e4eb),CNST_LIMB(0x6694cdbbb8803c7),CNST_LIMB(0x99396c89bf97452),CNST_LIMB(0x436126c1b000fab)},519,5}, + {CNST_LIMB(0xaf9b9be9c8401d1),{CNST_LIMB(0x7531f66eca55c19b),4,CNST_LIMB(0x3904fdff023d639),CNST_LIMB(0x962f9b532413fb3),CNST_LIMB(0x27ec74df2758058),CNST_LIMB(0x5836483d1e34f66),CNST_LIMB(0x8384a37fad8866d)},524,5}, + {CNST_LIMB(0xb9ba711d6e4a84f),{CNST_LIMB(0x60dc0b5cc82154b3),4,CNST_LIMB(0x9fa47788598936),CNST_LIMB(0x82bd019c1fa5a56),CNST_LIMB(0x50db17c34711736),CNST_LIMB(0x739121f55c5b75d),CNST_LIMB(0x912fe4d49b6d56)},529,5}, + {CNST_LIMB(0xc41a8a6c63a70d1),{CNST_LIMB(0x4e30c99728e3c197),4,CNST_LIMB(0xaded2f8836f2fac),CNST_LIMB(0xab84ac5c6d525d9),CNST_LIMB(0x488aa0b1f301ccb),CNST_LIMB(0x5fdf2905d976ad6),CNST_LIMB(0x5cb75a7adbb8561)},534,5}, + {CNST_LIMB(0xcd79628a71801f7),{CNST_LIMB(0x3ef33887b9ad5b44),4,CNST_LIMB(0xbffdafb9937daab),CNST_LIMB(0x8c3722255b2b8c7),CNST_LIMB(0x63cd1bbc0e9c22a),CNST_LIMB(0xbd17bc2e12ad950),CNST_LIMB(0x15e9799e0d76f1e)},539,5}, + {CNST_LIMB(0xd6f67d4726eaaf5),{CNST_LIMB(0x30df0c865cc92a96),4,CNST_LIMB(0xbb4b3b81c94fd1),CNST_LIMB(0x2a20ca76128ce99),CNST_LIMB(0x4a4022bdd8f612e),CNST_LIMB(0x3bafa50d5be5f8b),CNST_LIMB(0xb86a67f06630908)},544,5}, + {CNST_LIMB(0xe5d3b047627f8e3),{CNST_LIMB(0x1d275ac8c78303ec),4,CNST_LIMB(0xbcf14b4275878ed),CNST_LIMB(0x5ee8b82b0662dd),CNST_LIMB(0x77e3de57e11f662),CNST_LIMB(0x5ed59e5dfb5cd16),CNST_LIMB(0xbe6a6366650aef1)},549,5}, + {CNST_LIMB(0xef42ae515bfb29d),{CNST_LIMB(0x11e922af2e24e769),4,CNST_LIMB(0x1c926c98e452393),CNST_LIMB(0xd26a458c9c34765),CNST_LIMB(0x5da54b52a8aa98a),CNST_LIMB(0xa2ed4f828338df7),CNST_LIMB(0xe69ac190926521a)},554,5}, + {CNST_LIMB(0xfd32459f0b3d4bb),{CNST_LIMB(0x2d5ace688e647e9),4,CNST_LIMB(0x2cdba60f4c2b450),CNST_LIMB(0x2577b742a8ed5db),CNST_LIMB(0x144ef4109272736),CNST_LIMB(0xbe9326c4f15e1a9),CNST_LIMB(0xb96de853277fb4f)},559,5}, + {CNST_LIMB(0x10a16ef6c96a16c7),{CNST_LIMB(0xec9602538c0df011),3,CNST_LIMB(0x68a7f8a32c8aa57),CNST_LIMB(0x1445e7d17b921f3),CNST_LIMB(0x81c8debc8176f0b),CNST_LIMB(0xe3a1c5b816e4a65),CNST_LIMB(0xa52ad5bb93c9f4b)},564,5}, + {CNST_LIMB(0x117c2fec47f5e013),{CNST_LIMB(0xd48355880989be17),3,CNST_LIMB(0xb356114108dbef6),CNST_LIMB(0xe7ddeca9ba6a20c),CNST_LIMB(0xf2d7618ea8a6953),CNST_LIMB(0x412256baaec5c27),CNST_LIMB(0x1f8e16ca6e5c0d7)},569,5}, + {CNST_LIMB(0x129a8c10ae1f364b),{CNST_LIMB(0xb857af53b5b43644),3,CNST_LIMB(0xe26e327286a3e31),CNST_LIMB(0xeef9d55a9d06dbf),CNST_LIMB(0xe61febd3beb02b6),CNST_LIMB(0x10d018a00b7fd6a5),CNST_LIMB(0x32009c46e7c1314)},574,5}, + {CNST_LIMB(0x134631392d507059),{CNST_LIMB(0xa9063d94bb92a978),3,CNST_LIMB(0x56f8018b2ea4b7b),CNST_LIMB(0x1270cb710b035935),CNST_LIMB(0x11033d859716c4f9),CNST_LIMB(0xd45bebac416a68c),CNST_LIMB(0xc08fe72fc6eef84)},579,5}, + {CNST_LIMB(0x13fde7755d5fd9ed),{CNST_LIMB(0x99c48a788248a856),3,CNST_LIMB(0x1019267f9f81c8e4),CNST_LIMB(0x394e4098ea8549),CNST_LIMB(0x33c85c2a1514436),CNST_LIMB(0xa1e569d4432f4bb),CNST_LIMB(0x128bfbc862fb3c58)},584,5}, + {CNST_LIMB(0x15698c0906cc26a5),{CNST_LIMB(0x7e957ed81f600c1e),3,CNST_LIMB(0x1476fb9cb53a56e9),CNST_LIMB(0xeff15504451beab),CNST_LIMB(0xdea55fc79c32599),CNST_LIMB(0x76a982d54d956a1),CNST_LIMB(0x4d131625675abd7)},589,5}, + {CNST_LIMB(0x168a1ee80f6d92f5),{CNST_LIMB(0x6b73459d204359d1),3,CNST_LIMB(0x810ac07564aaf79),CNST_LIMB(0x874d5996e15561a),CNST_LIMB(0xb75c73837694b49),CNST_LIMB(0xd4645617d29779b),CNST_LIMB(0x12af15ef931be940)},594,5}, + {CNST_LIMB(0x17daa6de32466fbf),{CNST_LIMB(0x576bc18853c72908),3,CNST_LIMB(0x11757b52093fa28a),CNST_LIMB(0xff4c0f212559944),CNST_LIMB(0x40af9872004a0a5),CNST_LIMB(0x2b2b7c424c54c2b),CNST_LIMB(0x1a2b7130739c4c7)},599,5}, + {CNST_LIMB(0x18ea5f2dbe212911),{CNST_LIMB(0x48ca86c98010be89),3,CNST_LIMB(0x6d8483692b46556),CNST_LIMB(0x305d89220ec48d2),CNST_LIMB(0x1772200dfc1938dc),CNST_LIMB(0xded80c44ca87607),CNST_LIMB(0xb498b0490dc55dd)},604,5}, + {CNST_LIMB(0x1a0fa1ef47787d1b),{CNST_LIMB(0x3a56b20c2d70e08a),3,CNST_LIMB(0x15734e967cc39a0d),CNST_LIMB(0x8fc968191dc0fd3),CNST_LIMB(0x1680d35f18721f8f),CNST_LIMB(0x197b4a3e18c9e8bc),CNST_LIMB(0xc0ad81d645f40c7)},609,5}, + {CNST_LIMB(0x1b673b66a023a93f),{CNST_LIMB(0x2af150ff9195ac0f),3,CNST_LIMB(0x95ee9645ebf0cc9),CNST_LIMB(0x1717202bbc3e0a78),CNST_LIMB(0x126d365df320adf6),CNST_LIMB(0x137d63165361ab0e),CNST_LIMB(0x19ca69d84cc1417c)},614,5}, + {CNST_LIMB(0x1ce34de10c258111),{CNST_LIMB(0x1b9430b6521be183),3,CNST_LIMB(0x18e590f79ed3f778),CNST_LIMB(0xbcbaeb9ec0a1624),CNST_LIMB(0x18f51ac04296ceb6),CNST_LIMB(0x161b15271d06a3e1),CNST_LIMB(0x5f0a62fb317dd86)},619,5}, + {CNST_LIMB(0x1e19674e354f4667),{CNST_LIMB(0x102a99b0acd64358),3,CNST_LIMB(0xf34c58e5585ccc8),CNST_LIMB(0x15fad9b7ef3a5cbd),CNST_LIMB(0x1874ea34e3e274f9),CNST_LIMB(0x841598977c90581),CNST_LIMB(0x1c04690158b888d)},624,5}, + {CNST_LIMB(0x1f3740adb603b24d),{CNST_LIMB(0x66e52892f80015e),3,CNST_LIMB(0x645fa924fe26d98),CNST_LIMB(0xc022a525d7f5a4f),CNST_LIMB(0x16d7e66846e5d65b),CNST_LIMB(0x10105a92c09c5aa9),CNST_LIMB(0xedddad56d23fc0e)},629,5}, + {CNST_LIMB(0x20e7b3c0e3b73671),{CNST_LIMB(0xf1eabc8c8352c9af),2,CNST_LIMB(0x19aa15b9c5fd82e9),CNST_LIMB(0x10fd7c871bd5d222),CNST_LIMB(0x4ee89a76e1259e0),CNST_LIMB(0x1280d75e6bf3c134),CNST_LIMB(0x85e103f1853c3d)},634,5}, + {CNST_LIMB(0x22b5b4fc40d4c35f),{CNST_LIMB(0xd807362226cc7e50),2,CNST_LIMB(0xd080d1a3a2ea867),CNST_LIMB(0x1f068368adc3fde1),CNST_LIMB(0x178240b1c3cf35a9),CNST_LIMB(0x1dc077b2ed00fd8c),CNST_LIMB(0x2e6e64a07f9c833)},639,5}, + {CNST_LIMB(0x23cff30e6fb8f7fd),{CNST_LIMB(0xc97f150b60a9e71b),2,CNST_LIMB(0x5505a9af1f13815),CNST_LIMB(0x22434bb477153d47),CNST_LIMB(0x87670d53a068a58),CNST_LIMB(0x21b754fa0ae7b745),CNST_LIMB(0x2182750984e9f50b)},644,5}, + {CNST_LIMB(0x266a30ee37cc7341),{CNST_LIMB(0xaa808f26b38df4ef),2,CNST_LIMB(0x1982da6ab1354c7a),CNST_LIMB(0xfda1381ca806f81),CNST_LIMB(0x1a31d30d06bd5b7b),CNST_LIMB(0xbc65e21d25000c6),CNST_LIMB(0x132d8167c6a0973b)},649,5}, + {CNST_LIMB(0x283e6bddfbebab6d),{CNST_LIMB(0x971e4733b2e0d2bf),2,CNST_LIMB(0xe8978cc1879fb72),CNST_LIMB(0x1c9e26afc4d767da),CNST_LIMB(0x1e376fcf488c8249),CNST_LIMB(0x977e63f145b0e1d),CNST_LIMB(0xe2db9891e737aa1)},654,5}, + {CNST_LIMB(0x298d29c47d06f16b),{CNST_LIMB(0x8a4e7f92da9842e7),2,CNST_LIMB(0x6b1056511d6577e),CNST_LIMB(0x592f6f3bbda49cc),CNST_LIMB(0x2692769f01fb0a5b),CNST_LIMB(0x5f3e5623e91d30d),CNST_LIMB(0x2104d5242a92b48d)},659,5}, + {CNST_LIMB(0x2afa8c16de374c13),{CNST_LIMB(0x7d364b6556c2b905),2,CNST_LIMB(0x291b438da8eb83a1),CNST_LIMB(0x14222ff3cbf7d671),CNST_LIMB(0x126ac7f90facd4d3),CNST_LIMB(0x46d452f540a8d2),CNST_LIMB(0xb0b0fc23426b0b7)},664,5}, + {CNST_LIMB(0x2c44b3413ab0dee7),{CNST_LIMB(0x721b37f337583151),2,CNST_LIMB(0x22a87fb9da8ba57d),CNST_LIMB(0x26943e2ad67b49d6),CNST_LIMB(0x1ef6cfa904bef1cd),CNST_LIMB(0x18e7d1baf5588938),CNST_LIMB(0x1ad24c5276c66d2f)},669,5}, + {CNST_LIMB(0x2e88fa7433ac7823),{CNST_LIMB(0x60141b17275393e2),2,CNST_LIMB(0x17531bbafda1a751),CNST_LIMB(0xf3ea18441a36068),CNST_LIMB(0x130110257a01259a),CNST_LIMB(0x14122cf2cde8eecc),CNST_LIMB(0x24d25acd522c56b7)},674,5}, + {CNST_LIMB(0x303fb77cc2bfe62b),{CNST_LIMB(0x539292e31ed6db25),2,CNST_LIMB(0xec16a9032408129),CNST_LIMB(0x22483ceeb16c18a3),CNST_LIMB(0x1dd1cf7128399e5a),CNST_LIMB(0x11b3d478af2cbe42),CNST_LIMB(0x2a86cb29ac9873d3)},679,5}, + {CNST_LIMB(0x32eeac8f8d221e55),{CNST_LIMB(0x41ae89b9e560d65a),2,CNST_LIMB(0x156a1323e556857),CNST_LIMB(0x865eccdcf192078),CNST_LIMB(0x29e9014382ce253e),CNST_LIMB(0x737a633527d55ef),CNST_LIMB(0xe3223c22b887658)},684,5}, + {CNST_LIMB(0x354d75b3270eaedd),{CNST_LIMB(0x336093f2bc204c55),2,CNST_LIMB(0x2aca293363c5448c),CNST_LIMB(0x17160152eb4aa39f),CNST_LIMB(0x16b50b70fa80acee),CNST_LIMB(0x2493bd25f34e1536),CNST_LIMB(0x18f710cf9496617c)},689,5}, + {CNST_LIMB(0x37b26a3f703f6027),{CNST_LIMB(0x2629d54caca5a93b),2,CNST_LIMB(0x213657023f027f64),CNST_LIMB(0x257ed9007720600c),CNST_LIMB(0xaf3dcc0f043ce98),CNST_LIMB(0x115787f3ada80173),CNST_LIMB(0x7071885da2772a7)},694,5}, + {CNST_LIMB(0x3a2d837d37f39e39),{CNST_LIMB(0x199e982941bda182),2,CNST_LIMB(0x1749f20b2031871c),CNST_LIMB(0x153d7d45eae3fbc6),CNST_LIMB(0x3035b3e81047b52f),CNST_LIMB(0x3096ed6d9a28fa5a),CNST_LIMB(0x221887c4142d7434)},699,5}, + {CNST_LIMB(0x3d6201596c85db3f),{CNST_LIMB(0xaea3e9ef4bf14aa),2,CNST_LIMB(0xa77fa9a4de89304),CNST_LIMB(0x140df851fb641569),CNST_LIMB(0x275b27f619d2cffb),CNST_LIMB(0x16df2d5134102662),CNST_LIMB(0x10ab318b9b8a8aef)},704,5}, + {CNST_LIMB(0x401080f68635f765),{CNST_LIMB(0xff7c1a4f020138fa),1,CNST_LIMB(0x3fce7d1c6d5e19d1),CNST_LIMB(0x1feb2b2abf929ebc),CNST_LIMB(0x279cb7a4291af740),CNST_LIMB(0x384bce4293f19637),CNST_LIMB(0x168a9776844c9b6f)},709,5}, + {CNST_LIMB(0x41c3dea2c7c4509b),{CNST_LIMB(0xf2421126ad7a2852),1,CNST_LIMB(0x3ab46417a8b30e2f),CNST_LIMB(0x35206295938b9c19),CNST_LIMB(0x317d8909a9980afe),CNST_LIMB(0x195b889376db752f),CNST_LIMB(0xeb8a8f47083a08e)},714,5}, + {CNST_LIMB(0x441255580dcabef7),{CNST_LIMB(0xe1601977719c2988),1,CNST_LIMB(0x33c8fff7d69fc31b),CNST_LIMB(0x3aa78ab59c61fb90),CNST_LIMB(0x3c41600b3a070fd7),CNST_LIMB(0x121266b65d774473),CNST_LIMB(0x5812c8f46959e7)},719,5}, + {CNST_LIMB(0x467e90ff075dfa77),{CNST_LIMB(0xd0d4ccbfd7fdb2ae),1,CNST_LIMB(0x2c844d02e9e6109b),CNST_LIMB(0x395a6f0c5abc0a3c),CNST_LIMB(0x30393c08245d18c3),CNST_LIMB(0xac042a1b1191d06),CNST_LIMB(0x1d0c88b0cc347eed)},724,5}, + {CNST_LIMB(0x35b7e6a52de6b),{CNST_LIMB(0x30ff8515bed6fc1f),14,CNST_LIMB(0x2f4533b937fab),CNST_LIMB(0xeb33cd2951b7),CNST_LIMB(0x28ce28b5e1739),CNST_LIMB(0x30d609f6bade3),CNST_LIMB(0x249a87bc9957)},729,4}, + {CNST_LIMB(0x4b9237b1fac55af1),{CNST_LIMB(0xb19ac3ed68fa0441),1,CNST_LIMB(0x1d4958ea0fafef2d),CNST_LIMB(0x4ba7c350e3c499e),CNST_LIMB(0xe26c59f6a4a42e5),CNST_LIMB(0x4acd391ac5c14c62),CNST_LIMB(0x38a0169051f4a371)},733,5}, + {CNST_LIMB(0x4fa265b31b73c6df),{CNST_LIMB(0x9b7b0be2fb2dbf62),1,CNST_LIMB(0x1118cee6ada4ab63),CNST_LIMB(0x2b4fe57f0434fb44),CNST_LIMB(0x2cffeb10b15bf6),CNST_LIMB(0xe12f06864906a7b),CNST_LIMB(0x2a0824475f11f823)},738,5}, + {CNST_LIMB(0x516d33f3efe608d5),{CNST_LIMB(0x926c85237f2dc355),1,CNST_LIMB(0xbb86424304de581),CNST_LIMB(0x3ec190a9cee7a48e),CNST_LIMB(0xd7d8bfe60d52602),CNST_LIMB(0xdff7561c9c07756),CNST_LIMB(0x3c1d2db82b327710)},743,5}, + {CNST_LIMB(0x545e342d68fbf683),{CNST_LIMB(0x8464ceb2fdd80297),1,CNST_LIMB(0x2e56377c50c1c77),CNST_LIMB(0x474ec2f4bd92576),CNST_LIMB(0x2a5da9663350db1),CNST_LIMB(0x220077cd63148dd2),CNST_LIMB(0x280dcbaf0c2ad61c)},748,5}, + {CNST_LIMB(0x57e94c457826bd6b),{CNST_LIMB(0x74bd3fdb5c8280eb),1,CNST_LIMB(0x502d67750fb2852a),CNST_LIMB(0x45149579eaa28023),CNST_LIMB(0x3bb53a4c0c4db579),CNST_LIMB(0x3a96a3180f221b2),CNST_LIMB(0x27f9af8526a8cf70)},753,5}, + {CNST_LIMB(0x5b9b45655ebf3b79),{CNST_LIMB(0x65b42a0f00510df2),1,CNST_LIMB(0x48c975354281890e),CNST_LIMB(0x2929df87cfd7453c),CNST_LIMB(0x1b6bb026965ae7ed),CNST_LIMB(0x52659a85b7df96c2),CNST_LIMB(0x21db715c0f72134)},758,5}, + {CNST_LIMB(0x5e6ad0d2eaa14c25),{CNST_LIMB(0x5b0e2387ccda26c3),1,CNST_LIMB(0x432a5e5a2abd67b6),CNST_LIMB(0x14b7571d1a05b77d),CNST_LIMB(0x498547c0b3350ce8),CNST_LIMB(0x9d4e28ce05c6c27),CNST_LIMB(0x4913b5ba5c5edc8)},763,5}, + {CNST_LIMB(0x60704759208cd21d),{CNST_LIMB(0x53c7ef8bdf16795b),1,CNST_LIMB(0x3f1f714dbee65bc6),CNST_LIMB(0x25fc61d1a473562),CNST_LIMB(0x158a2ce0171d5fd),CNST_LIMB(0x2f3bdc4b8520f24c),CNST_LIMB(0x4081386865e00703)},768,5}, + {CNST_LIMB(0x63bc6b32a19c883b),{CNST_LIMB(0x488c1dcdc113150a),1,CNST_LIMB(0x3887299abcc6ef8a),CNST_LIMB(0x2aab5731e10d2529),CNST_LIMB(0x5eeeb60320f0bef4),CNST_LIMB(0x18e4d9f1c279596e),CNST_LIMB(0xf478370d7e2465f)},773,5}, + {CNST_LIMB(0x47f6a9e8dab75),{CNST_LIMB(0xc7577d2a861d140e),13,CNST_LIMB(0x435dc14ffaf0e),CNST_LIMB(0x2557057e3745b),CNST_LIMB(0x450b5149277a6),CNST_LIMB(0xda1fae30c112),CNST_LIMB(0x3951ca3221a2d)},778,4}, + {CNST_LIMB(0x6e373b550764872f),{CNST_LIMB(0x294ecadbf29bc1cb),1,CNST_LIMB(0x23918955f136f1a2),CNST_LIMB(0x29cffcf11c6e3647),CNST_LIMB(0x4af7d1191966b3e0),CNST_LIMB(0x38ebd581ce6f80c6),CNST_LIMB(0x14ebbbc9200a6d59)},782,5}, + {CNST_LIMB(0x4ca8ed991d8b9),{CNST_LIMB(0xab7251b581f8c74d),13,CNST_LIMB(0x1639351769382),CNST_LIMB(0x3145f1b0a8e59),CNST_LIMB(0xff20704d1793),CNST_LIMB(0x1cd9e54d284e),CNST_LIMB(0x1602f3ac7db9c)},787,4}, + {CNST_LIMB(0x74b13dc12b016dc1),{CNST_LIMB(0x18ce87a5c4d39e85),1,CNST_LIMB(0x169d847da9fd247e),CNST_LIMB(0x286e093dede24bb5),CNST_LIMB(0x1854fa948ad9109d),CNST_LIMB(0x6b81a8b81781577c),CNST_LIMB(0xad44a3d15bc6be5)},791,5}, + {CNST_LIMB(0x78b0c5ae997e31ef),{CNST_LIMB(0xf811cf8a4bb1f80),1,CNST_LIMB(0xe9e74a2cd039c22),CNST_LIMB(0x30a04d242d0dfd11),CNST_LIMB(0x128fe81eea336414),CNST_LIMB(0x3639736d1defa144),CNST_LIMB(0x5eeb71b0497f58ff)},796,5}, + {CNST_LIMB(0x7dcf3e856f4612d7),{CNST_LIMB(0x47509bc7743383b),1,CNST_LIMB(0x46182f52173da52),CNST_LIMB(0x430e9fd64eeb40e6),CNST_LIMB(0x2774902fd5f53d5b),CNST_LIMB(0x4f5c0d7033943d05),CNST_LIMB(0x3be559075217f3a8)},801,5}, + {CNST_LIMB(0x550e24ca1a54b),{CNST_LIMB(0x81416693b884d74c),13,CNST_LIMB(0xee45b7c01c48),CNST_LIMB(0x3848946d8aec8),CNST_LIMB(0x541aec862a3ac),CNST_LIMB(0x4f2e818315dbc),CNST_LIMB(0xa8197f5fb2b)},806,4}, + {CNST_LIMB(0x573c8f376a18d),{CNST_LIMB(0x779f50fc3a19a6c9),13,CNST_LIMB(0x4fc81955d5129),CNST_LIMB(0xe80abe2896a1),CNST_LIMB(0x3a505801c159e),CNST_LIMB(0x162eeea75d4cd),CNST_LIMB(0x20dd0efbe8570)},810,4}, + {CNST_LIMB(0x589c3c614e917),{CNST_LIMB(0x71cc8c064f8788ee),13,CNST_LIMB(0x325d12375f7e1),CNST_LIMB(0x514f8f320e7d3),CNST_LIMB(0x55cf104cf51d3),CNST_LIMB(0x23278b29858c6),CNST_LIMB(0x3b956eecbdd30)},814,4}, + {CNST_LIMB(0x5a494bafe993d),{CNST_LIMB(0x6aef2ee9b04422dc),13,CNST_LIMB(0x5111950929bd7),CNST_LIMB(0x2c3779cd17b37),CNST_LIMB(0x2b7f886fc6966),CNST_LIMB(0x4f0b47ffa902d),CNST_LIMB(0x10bd268a51d6c)},818,4}, + {CNST_LIMB(0x5bdea84b0b73f),{CNST_LIMB(0x64adca063056bccb),13,CNST_LIMB(0x427b265a68455),CNST_LIMB(0x2ef4f15ac34a6),CNST_LIMB(0x493c4fd89b0ce),CNST_LIMB(0x7e61acb14b3a),CNST_LIMB(0x20d0328207c83)},822,4}, + {CNST_LIMB(0x5d4c55a25a945),{CNST_LIMB(0x5f37ce4e679bb0c3),13,CNST_LIMB(0x5b08caebb5502),CNST_LIMB(0x3d0eab29a51f1),CNST_LIMB(0x3c9ac2f5a187d),CNST_LIMB(0x29304bdf75a79),CNST_LIMB(0x14d681f7ea1f0)},826,4}, + {CNST_LIMB(0x5f286a042b527),{CNST_LIMB(0x585aa50035c6eb19),13,CNST_LIMB(0x1f74be8b4aa53),CNST_LIMB(0x47290f02b2679),CNST_LIMB(0x44c4bd1ee1378),CNST_LIMB(0x51286cbc40de1),CNST_LIMB(0xc379e189a860)},830,4}, + {CNST_LIMB(0x62521adc68615),{CNST_LIMB(0x4d46d1e25221a4ef),13,CNST_LIMB(0x53d112a3ea538),CNST_LIMB(0x26e6ad330e6d8),CNST_LIMB(0x56830d4191021),CNST_LIMB(0xed06536bee19),CNST_LIMB(0x5ba5998aa1cbd)},834,4}, + {CNST_LIMB(0x64f0108522a4b),{CNST_LIMB(0x44a2bea99b1fe52b),13,CNST_LIMB(0x22a1a59e3d4a4),CNST_LIMB(0x55422d57d71a4),CNST_LIMB(0x48b99527500ba),CNST_LIMB(0x5dffbfb3a890f),CNST_LIMB(0x618de61d17b82)},838,4}, + {CNST_LIMB(0x684eced8d04ad),{CNST_LIMB(0x3a25a4304e45cd70),13,CNST_LIMB(0x498e06ad4670c),CNST_LIMB(0x6397605c9b1d3),CNST_LIMB(0x1107048baaf16),CNST_LIMB(0x6292ac8aeb164),CNST_LIMB(0x4def8ba3a7552)},842,4}, + {CNST_LIMB(0x69e938da0b6b9),{CNST_LIMB(0x35644b98f3e9b802),13,CNST_LIMB(0x38dd6fce5c5b4),CNST_LIMB(0x6307e2db6000d),CNST_LIMB(0x56835d316819f),CNST_LIMB(0x2b1da7eb24a08),CNST_LIMB(0xf110b6d6a913)},846,4}, + {CNST_LIMB(0x6bf4be42947af),{CNST_LIMB(0x2f87eee6ccd631e7),13,CNST_LIMB(0x6b0e021f080f0),CNST_LIMB(0x4b469e0f2c53a),CNST_LIMB(0x50664c269b5e3),CNST_LIMB(0x4139b73b961d6),CNST_LIMB(0x13dc91bdbee0f)},850,4}, + {CNST_LIMB(0x6f54dbd6ccf57),{CNST_LIMB(0x26540878c92cd039),13,CNST_LIMB(0x382053afc295a),CNST_LIMB(0x2c8c19e89353d),CNST_LIMB(0x534384d9aa927),CNST_LIMB(0x249d03e328fc1),CNST_LIMB(0x2c57702938274)},854,4}, + {CNST_LIMB(0x71632fdcf6c15),{CNST_LIMB(0x20fdcdbf333d83af),13,CNST_LIMB(0x5242218aef575),CNST_LIMB(0x9ab7cecd8cd3),CNST_LIMB(0x4ea4e8bc18b4d),CNST_LIMB(0x16d9320fd98f4),CNST_LIMB(0x2d2b50a730c10)},858,4}, + {CNST_LIMB(0x7317fb257e1e1),{CNST_LIMB(0x1cb50c1361edfd6e),13,CNST_LIMB(0x489cb7c9fe32a),CNST_LIMB(0x258cf78a73422),CNST_LIMB(0x560fbee8c2cf2),CNST_LIMB(0x467156be8e294),CNST_LIMB(0xc593edc4d71f)},862,4}, + {CNST_LIMB(0x75e5d5c5e4577),{CNST_LIMB(0x15ef86e1cee16113),13,CNST_LIMB(0x6eece492ce925),CNST_LIMB(0x561b9134c02bf),CNST_LIMB(0x596b2a81ab56d),CNST_LIMB(0x296835004dd20),CNST_LIMB(0x3160915ef8c65)},866,4}, + {CNST_LIMB(0x788a813bc2fb1),{CNST_LIMB(0xfd74e4e944c107b),13,CNST_LIMB(0x6e15178139c26),CNST_LIMB(0x7828db84f90d2),CNST_LIMB(0x3e1e0cdc0bb1c),CNST_LIMB(0x4bbcd0685b013),CNST_LIMB(0x60b28bb37de31)},870,4}, + {CNST_LIMB(0x7b02c02e67beb),{CNST_LIMB(0xa621b97c2ae6cdb),13,CNST_LIMB(0x2068f6d99eb3c),CNST_LIMB(0x4ba3bacf8ed2f),CNST_LIMB(0x79baf6516f06a),CNST_LIMB(0x34fac2ffdfb3b),CNST_LIMB(0x601bda55ddca3)},874,4}, + {CNST_LIMB(0x7d0b0166731df),{CNST_LIMB(0x60dcab2ebe68654),13,CNST_LIMB(0x5a87235f786e1),CNST_LIMB(0x498c71a4f2c04),CNST_LIMB(0x6c4cf93aac90f),CNST_LIMB(0x2fc43a717ef2e),CNST_LIMB(0x61100c40f26dc)},878,4}, + {CNST_LIMB(0x7f65827009e4b),{CNST_LIMB(0x13671d16472022c),13,CNST_LIMB(0x66a0a221f20de),CNST_LIMB(0x1863cc32757a5),CNST_LIMB(0x72205d2b707de),CNST_LIMB(0x41eb3856479f4),CNST_LIMB(0x62a869dadecf2)},882,4}, + {CNST_LIMB(0x826267aca5d6b),{CNST_LIMB(0xf6a307f100c87643),12,CNST_LIMB(0x18b32a6e55cb2),CNST_LIMB(0x800c79d089746),CNST_LIMB(0x4df069eb6014f),CNST_LIMB(0xa67afd1d0f6b),CNST_LIMB(0x39654bc96e516)},886,4}, + {CNST_LIMB(0x854fadbb02f0d),{CNST_LIMB(0xeb99f80c181c04d8),12,CNST_LIMB(0x530f8982a799b),CNST_LIMB(0x488a5468d8f30),CNST_LIMB(0xcb498b28c81),CNST_LIMB(0x1d791c8466f6a),CNST_LIMB(0x583d384518de9)},890,4}, + {CNST_LIMB(0x86f75f67e5373),{CNST_LIMB(0xe592b4846fa38885),12,CNST_LIMB(0x16d1a804d8305),CNST_LIMB(0x3a9f7db1defba),CNST_LIMB(0x53fa43529d63d),CNST_LIMB(0x380980122856a),CNST_LIMB(0x59320408536cb)},894,4}, + {CNST_LIMB(0x89110415e014b),{CNST_LIMB(0xde220b6a3ca63611),12,CNST_LIMB(0x1183ea4dd5cca),CNST_LIMB(0x6cd0a51299316),CNST_LIMB(0x2c53d4f8b0ee6),CNST_LIMB(0x39ef54aed56eb),CNST_LIMB(0x7f71b2a9bf0fd)},898,4}, + {CNST_LIMB(0x8bbeefef93d97),{CNST_LIMB(0xd4f7338df110e1c1),12,CNST_LIMB(0x3ee5d151be367),CNST_LIMB(0x2e6b9dfc4bbcb),CNST_LIMB(0x225349b2e386e),CNST_LIMB(0x492ce15456b18),CNST_LIMB(0x856a0d6e68759)},902,4}, + {CNST_LIMB(0x8fa29248f38e9),{CNST_LIMB(0xc84479a2d3ad73b2),12,CNST_LIMB(0x282c97bed2bdc),CNST_LIMB(0x86b44220fa8e0),CNST_LIMB(0x497c548d39ada),CNST_LIMB(0x6928a8433805d),CNST_LIMB(0x1d2f77b091c29)},906,4}, + {CNST_LIMB(0x9311da8eb3ea1),{CNST_LIMB(0xbd9c9989aacc578d),12,CNST_LIMB(0x73d0b00fcee87),CNST_LIMB(0x44acd3ec00c9b),CNST_LIMB(0x3b8ead35b82f4),CNST_LIMB(0x7a1ca1fa55a8c),CNST_LIMB(0x98634149273d)},910,4}, + {CNST_LIMB(0x96fc1b51999b5),{CNST_LIMB(0xb20e950936df3d71),12,CNST_LIMB(0x899afa996b260),CNST_LIMB(0x2d7d06dae3233),CNST_LIMB(0x143e323027e28),CNST_LIMB(0x8483b9a26498e),CNST_LIMB(0x689b7b1e2fc91)},914,4}, + {CNST_LIMB(0x99d2dc5aa820b),{CNST_LIMB(0xaa0bd71d4333c056),12,CNST_LIMB(0x71d5124399b20),CNST_LIMB(0x62e94421a897f),CNST_LIMB(0x892c96c6ff4dc),CNST_LIMB(0x54dc6420d0ec4),CNST_LIMB(0x43a10331ebf4f)},918,4}, + {CNST_LIMB(0x9c18c1a21f755),{CNST_LIMB(0xa3d7a1305040e509),12,CNST_LIMB(0x4a6f652c96ebf),CNST_LIMB(0x92a1dbc9a1bc4),CNST_LIMB(0x7856fe0adb2e7),CNST_LIMB(0x65020d02f02aa),CNST_LIMB(0x7983e2f6dcbd)},922,4}, + {CNST_LIMB(0xa019a0d84ce05),{CNST_LIMB(0x99580856e1c2e36b),12,CNST_LIMB(0x5060429959a17),CNST_LIMB(0x8af3dd6c8fedb),CNST_LIMB(0x8521b97cefc72),CNST_LIMB(0x7289dc3848291),CNST_LIMB(0x51cb410c11cef)},926,4}, + {CNST_LIMB(0xa3837104af50b),{CNST_LIMB(0x90cc816ca127f31c),12,CNST_LIMB(0x7fcd3ea8e707c),CNST_LIMB(0x1ea9bdca73534),CNST_LIMB(0x3d0d37ad79bcf),CNST_LIMB(0x78befa2ea5ef8),CNST_LIMB(0x8c7846571c14b)},930,4}, + {CNST_LIMB(0xa74ba276e925b),{CNST_LIMB(0x87bcf3ca6aa1f420),12,CNST_LIMB(0x876dcb0272647),CNST_LIMB(0x63761f150b253),CNST_LIMB(0xa347a550c386b),CNST_LIMB(0xb7438cfe5ad4),CNST_LIMB(0x7bca2b8c0aabf)},934,4}, + {CNST_LIMB(0xad0c05b3ae661),{CNST_LIMB(0x7ab7cf1782b58dcf),12,CNST_LIMB(0x54750c4f56635),CNST_LIMB(0x2eac67167559c),CNST_LIMB(0x563c222f2aff7),CNST_LIMB(0x7b738313b7ac1),CNST_LIMB(0x65d997bccd9d9)},938,4}, + {CNST_LIMB(0xb0da5211cc3e7),{CNST_LIMB(0x72916ab867f7595c),12,CNST_LIMB(0xfa941ccadf01),CNST_LIMB(0x8d756d36295ea),CNST_LIMB(0x4f9f479e132fd),CNST_LIMB(0x18526df562fde),CNST_LIMB(0x434f07e1d9d33)},942,4}, + {CNST_LIMB(0xb36ca8c3991af),{CNST_LIMB(0x6d41bd767e129ba0),12,CNST_LIMB(0x13836edce5114),CNST_LIMB(0xa52c71bc138ab),CNST_LIMB(0x339d5f264e899),CNST_LIMB(0x65473fc2cfa57),CNST_LIMB(0x4714fd9da5ac0)},946,4}, + {CNST_LIMB(0xb6694790c60df),{CNST_LIMB(0x6746add17a9a2fee),12,CNST_LIMB(0x4c2521610f0f4),CNST_LIMB(0x1ef55755cab96),CNST_LIMB(0x3bb413c494cbb),CNST_LIMB(0x59bedca68abba),CNST_LIMB(0x618c95ba5598b)},950,4}, + {CNST_LIMB(0xb89a345c48d7d),{CNST_LIMB(0x6302ff6c309d06ee),12,CNST_LIMB(0x2296406fcba90),CNST_LIMB(0x4d697f4e83909),CNST_LIMB(0xa16067eedb775),CNST_LIMB(0xa50f824607f2b),CNST_LIMB(0x3d3946b54c9f9)},954,4}, + {CNST_LIMB(0xbb02a8b8a132b),{CNST_LIMB(0x5e70bfded3b337fc),12,CNST_LIMB(0x8c29c2d62d33),CNST_LIMB(0x3f082e296ef8f),CNST_LIMB(0x49afe57a19b90),CNST_LIMB(0xb7bd5be58da15),CNST_LIMB(0x8de61bd7e627f)},958,4}, + {CNST_LIMB(0xbd6468bb171ff),{CNST_LIMB(0x5a0880d51b052fd7),12,CNST_LIMB(0x64a7322bed5a0),CNST_LIMB(0x3f94ed2b89267),CNST_LIMB(0x980b9bde44b2d),CNST_LIMB(0x4a6676c0e7d13),CNST_LIMB(0xb24baad1f0c40)},962,4}, + {CNST_LIMB(0xc17671b548641),{CNST_LIMB(0x52c0b00a813a011e),12,CNST_LIMB(0x85095e7597d4),CNST_LIMB(0x55524352a702c),CNST_LIMB(0x868164742fab5),CNST_LIMB(0x3b3bcfdffb2cf),CNST_LIMB(0xab11b067d542f)},966,4}, + {CNST_LIMB(0xc57f07d496e1b),{CNST_LIMB(0x4bd58ed22f4b2aac),12,CNST_LIMB(0x449a9c42f9a11),CNST_LIMB(0x2b9c2279a88de),CNST_LIMB(0xa905cf41733e1),CNST_LIMB(0x206b2bfa8b896),CNST_LIMB(0xb378d16c66efd)},970,4}, + {CNST_LIMB(0xc814b88200ac3),{CNST_LIMB(0x478c251716699c98),12,CNST_LIMB(0x97df5b023b898),CNST_LIMB(0x5507d796eedc1),CNST_LIMB(0xb4a34312d58e3),CNST_LIMB(0x4324fc6d4f6f2),CNST_LIMB(0x29d3a7f3d88da)},974,4}, + {CNST_LIMB(0xcb958ba8e9259),{CNST_LIMB(0x41e93d5390ce4a3c),12,CNST_LIMB(0x75906ffdbe592),CNST_LIMB(0x35d1e8b619b02),CNST_LIMB(0x5535c122a3ba7),CNST_LIMB(0xb2c9d287f29c8),CNST_LIMB(0x7f9a7f1adf9d9)},978,4}, + {CNST_LIMB(0xcfaa956d67517),{CNST_LIMB(0x3b9549c76b39f2a8),12,CNST_LIMB(0x44a2e5454ad61),CNST_LIMB(0xa8d0541bab05b),CNST_LIMB(0x801e8693083d4),CNST_LIMB(0xc17c6af57bddf),CNST_LIMB(0xc7b4d9a0870d9)},982,4}, + {CNST_LIMB(0xd56380a0e8273),{CNST_LIMB(0x331ecd3feca3d608),12,CNST_LIMB(0xc5686ff8a7efd),CNST_LIMB(0x61e35c54a4f3f),CNST_LIMB(0x4bf5dc73ede0f),CNST_LIMB(0x2bf7f029f09a5),CNST_LIMB(0x718dc3463c882)},986,4}, + {CNST_LIMB(0xd9c8b65d94f5b),{CNST_LIMB(0x2cec062e71d179c4),12,CNST_LIMB(0xa3aaac38dbec6),CNST_LIMB(0x78cabf09fa56c),CNST_LIMB(0xcaf0fccc6b30b),CNST_LIMB(0xce30344eb1fac),CNST_LIMB(0x4ba46e5575b11)},990,4}, + {CNST_LIMB(0xdc90a482debcb),{CNST_LIMB(0x2920b89d6fc02e7f),12,CNST_LIMB(0x9f0f9b3b403a),CNST_LIMB(0x619327b332542),CNST_LIMB(0xa75eae1f8ff9f),CNST_LIMB(0x62350a1cba491),CNST_LIMB(0x22ac2e8eb19f9)},994,4}, + {CNST_LIMB(0xe0ac9922e6235),{CNST_LIMB(0x23b187206556b5c4),12,CNST_LIMB(0x157440c67a3c9),CNST_LIMB(0x696b5be3cc464),CNST_LIMB(0x2ebcde890e790),CNST_LIMB(0xae767f93832de),CNST_LIMB(0xcb1eade2d80a8)},998,4} +#endif diff --git a/vere/ext/gmp/gen/aarch64-macos/config.h b/vere/ext/gmp/gen/aarch64-macos/config.h new file mode 100644 index 0000000..dd1ca7f --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/config.h @@ -0,0 +1,668 @@ +/* config.h. Generated from config.in by configure. */ +/* config.in. Generated from configure.ac by autoheader. */ + +/* + +Copyright 1996-2020 Free Software Foundation, Inc. + +This file is part of the GNU MP Library. + +The GNU MP Library is free software; you can redistribute it and/or modify +it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at your + option) any later version. + +or + + * the GNU General Public License as published by the Free Software + Foundation; either version 2 of the License, or (at your option) any + later version. + +or both in parallel, as here. + +The GNU MP Library is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received copies of the GNU General Public License and the +GNU Lesser General Public License along with the GNU MP Library. If not, +see https://www.gnu.org/licenses/. +*/ + +/* Define if building universal (internal helper macro) */ +/* #undef AC_APPLE_UNIVERSAL_BUILD */ + +/* The gmp-mparam.h file (a string) the tune program should suggest updating. + */ +#define GMP_MPARAM_H_SUGGEST "./mpn/arm64/gmp-mparam.h" + +/* Define to 1 if you have the `alarm' function. */ +#define HAVE_ALARM 1 + +/* Define to 1 if alloca() works (via gmp-impl.h). */ +#define HAVE_ALLOCA 1 + +/* Define to 1 if you have and it should be used (not on Ultrix). + */ +#define HAVE_ALLOCA_H 1 + +/* Define to 1 if the compiler accepts gcc style __attribute__ ((const)) */ +#define HAVE_ATTRIBUTE_CONST 1 + +/* Define to 1 if the compiler accepts gcc style __attribute__ ((malloc)) */ +#define HAVE_ATTRIBUTE_MALLOC 1 + +/* Define to 1 if the compiler accepts gcc style __attribute__ ((mode (XX))) + */ +#define HAVE_ATTRIBUTE_MODE 1 + +/* Define to 1 if the compiler accepts gcc style __attribute__ ((noreturn)) */ +#define HAVE_ATTRIBUTE_NORETURN 1 + +/* Define to 1 if you have the `attr_get' function. */ +/* #undef HAVE_ATTR_GET */ + +/* Define to 1 if tests/libtests has calling conventions checking for the CPU + */ +/* #undef HAVE_CALLING_CONVENTIONS */ + +/* Define to 1 if you have the `clock' function. */ +#define HAVE_CLOCK 1 + +/* Define to 1 if you have the `clock_gettime' function */ +#define HAVE_CLOCK_GETTIME 1 + +/* Define to 1 if you have the `cputime' function. */ +/* #undef HAVE_CPUTIME */ + +/* Define to 1 if you have the declaration of `fgetc', and to 0 if you don't. + */ +#define HAVE_DECL_FGETC 1 + +/* Define to 1 if you have the declaration of `fscanf', and to 0 if you don't. + */ +#define HAVE_DECL_FSCANF 1 + +/* Define to 1 if you have the declaration of `optarg', and to 0 if you don't. + */ +#define HAVE_DECL_OPTARG 1 + +/* Define to 1 if you have the declaration of `sys_errlist', and to 0 if you + don't. */ +#define HAVE_DECL_SYS_ERRLIST 1 + +/* Define to 1 if you have the declaration of `sys_nerr', and to 0 if you + don't. */ +#define HAVE_DECL_SYS_NERR 1 + +/* Define to 1 if you have the declaration of `ungetc', and to 0 if you don't. + */ +#define HAVE_DECL_UNGETC 1 + +/* Define to 1 if you have the declaration of `vfprintf', and to 0 if you + don't. */ +#define HAVE_DECL_VFPRINTF 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define one of the following to 1 for the format of a `double'. + If your format is not among these choices, or you don't know what it is, + then leave all undefined. + IEEE_LITTLE_SWAPPED means little endian, but with the two 4-byte halves + swapped, as used by ARM CPUs in little endian mode. */ +/* #undef HAVE_DOUBLE_IEEE_BIG_ENDIAN */ +#define HAVE_DOUBLE_IEEE_LITTLE_ENDIAN 1 +/* #undef HAVE_DOUBLE_IEEE_LITTLE_SWAPPED */ +/* #undef HAVE_DOUBLE_VAX_D */ +/* #undef HAVE_DOUBLE_VAX_G */ +/* #undef HAVE_DOUBLE_CRAY_CFP */ + +/* Define to 1 if you have the header file. */ +#define HAVE_FCNTL_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_FLOAT_H 1 + +/* Define to 1 if you have the `getpagesize' function. */ +#define HAVE_GETPAGESIZE 1 + +/* Define to 1 if you have the `getrusage' function. */ +#define HAVE_GETRUSAGE 1 + +/* Define to 1 if you have the `getsysinfo' function. */ +/* #undef HAVE_GETSYSINFO */ + +/* Define to 1 if you have the `gettimeofday' function. */ +#define HAVE_GETTIMEOFDAY 1 + +/* Define to 1 if the compiler accepts gcc style __attribute__ ((visibility)) + and __attribute__ ((alias)) */ +/* #undef HAVE_HIDDEN_ALIAS */ + +/* Define one of these to 1 for the host CPU family. + If your CPU is not in any of these families, leave all undefined. + For an AMD64 chip, define "x86" in ABI=32, but not in ABI=64. */ +/* #undef HAVE_HOST_CPU_FAMILY_alpha */ +/* #undef HAVE_HOST_CPU_FAMILY_m68k */ +/* #undef HAVE_HOST_CPU_FAMILY_power */ +/* #undef HAVE_HOST_CPU_FAMILY_powerpc */ +/* #undef HAVE_HOST_CPU_FAMILY_x86 */ +/* #undef HAVE_HOST_CPU_FAMILY_x86_64 */ + +/* Define one of the following to 1 for the host CPU, as per the output of + ./config.guess. If your CPU is not listed here, leave all undefined. */ +/* #undef HAVE_HOST_CPU_alphaev67 */ +/* #undef HAVE_HOST_CPU_alphaev68 */ +/* #undef HAVE_HOST_CPU_alphaev7 */ +/* #undef HAVE_HOST_CPU_m68020 */ +/* #undef HAVE_HOST_CPU_m68030 */ +/* #undef HAVE_HOST_CPU_m68040 */ +/* #undef HAVE_HOST_CPU_m68060 */ +/* #undef HAVE_HOST_CPU_m68360 */ +/* #undef HAVE_HOST_CPU_powerpc604 */ +/* #undef HAVE_HOST_CPU_powerpc604e */ +/* #undef HAVE_HOST_CPU_powerpc750 */ +/* #undef HAVE_HOST_CPU_powerpc7400 */ +/* #undef HAVE_HOST_CPU_supersparc */ +/* #undef HAVE_HOST_CPU_i386 */ +/* #undef HAVE_HOST_CPU_i586 */ +/* #undef HAVE_HOST_CPU_i686 */ +/* #undef HAVE_HOST_CPU_pentium */ +/* #undef HAVE_HOST_CPU_pentiummmx */ +/* #undef HAVE_HOST_CPU_pentiumpro */ +/* #undef HAVE_HOST_CPU_pentium2 */ +/* #undef HAVE_HOST_CPU_pentium3 */ +/* #undef HAVE_HOST_CPU_pentium4 */ +/* #undef HAVE_HOST_CPU_core2 */ +/* #undef HAVE_HOST_CPU_nehalem */ +/* #undef HAVE_HOST_CPU_westmere */ +/* #undef HAVE_HOST_CPU_sandybridge */ +/* #undef HAVE_HOST_CPU_ivybridge */ +/* #undef HAVE_HOST_CPU_haswell */ +/* #undef HAVE_HOST_CPU_broadwell */ +/* #undef HAVE_HOST_CPU_skylake */ +/* #undef HAVE_HOST_CPU_silvermont */ +/* #undef HAVE_HOST_CPU_goldmont */ +/* #undef HAVE_HOST_CPU_k8 */ +/* #undef HAVE_HOST_CPU_k10 */ +/* #undef HAVE_HOST_CPU_bulldozer */ +/* #undef HAVE_HOST_CPU_piledriver */ +/* #undef HAVE_HOST_CPU_steamroller */ +/* #undef HAVE_HOST_CPU_excavator */ +/* #undef HAVE_HOST_CPU_zen */ +/* #undef HAVE_HOST_CPU_bobcat */ +/* #undef HAVE_HOST_CPU_jaguar */ +/* #undef HAVE_HOST_CPU_s390_z900 */ +/* #undef HAVE_HOST_CPU_s390_z990 */ +/* #undef HAVE_HOST_CPU_s390_z9 */ +/* #undef HAVE_HOST_CPU_s390_z10 */ +/* #undef HAVE_HOST_CPU_s390_z196 */ + +/* Define to 1 iff we have a s390 with 64-bit registers. */ +/* #undef HAVE_HOST_CPU_s390_zarch */ + +/* Define to 1 if the system has the type `intmax_t'. */ +#define HAVE_INTMAX_T 1 + +/* Define to 1 if the system has the type `intptr_t'. */ +#define HAVE_INTPTR_T 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_INVENT_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_LANGINFO_H 1 + +/* Define one of these to 1 for the endianness of `mp_limb_t'. + If the endianness is not a simple big or little, or you don't know what + it is, then leave both undefined. */ +/* #undef HAVE_LIMB_BIG_ENDIAN */ +#define HAVE_LIMB_LITTLE_ENDIAN 1 + +/* Define to 1 if you have the `localeconv' function. */ +#define HAVE_LOCALECONV 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LOCALE_H 1 + +/* Define to 1 if the system has the type `long double'. */ +#define HAVE_LONG_DOUBLE 1 + +/* Define to 1 if the system has the type `long long'. */ +#define HAVE_LONG_LONG 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_MACHINE_HAL_SYSINFO_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have the `memset' function. */ +#define HAVE_MEMSET 1 + +/* Define to 1 if you have the `mmap' function. */ +#define HAVE_MMAP 1 + +/* Define to 1 if you have the `mprotect' function. */ +#define HAVE_MPROTECT 1 + +/* Define to 1 each of the following for which a native (ie. CPU specific) + implementation of the corresponding routine exists. */ +#define HAVE_NATIVE_mpn_add_n 1 +/* #undef HAVE_NATIVE_mpn_add_n_sub_n */ +#define HAVE_NATIVE_mpn_add_nc 1 +/* #undef HAVE_NATIVE_mpn_addaddmul_1msb0 */ +#define HAVE_NATIVE_mpn_addlsh1_n 1 +#define HAVE_NATIVE_mpn_addlsh2_n 1 +/* #undef HAVE_NATIVE_mpn_addlsh_n */ +/* #undef HAVE_NATIVE_mpn_addlsh1_nc */ +/* #undef HAVE_NATIVE_mpn_addlsh2_nc */ +/* #undef HAVE_NATIVE_mpn_addlsh_nc */ +/* #undef HAVE_NATIVE_mpn_addlsh1_n_ip1 */ +/* #undef HAVE_NATIVE_mpn_addlsh2_n_ip1 */ +/* #undef HAVE_NATIVE_mpn_addlsh_n_ip1 */ +/* #undef HAVE_NATIVE_mpn_addlsh1_nc_ip1 */ +/* #undef HAVE_NATIVE_mpn_addlsh2_nc_ip1 */ +/* #undef HAVE_NATIVE_mpn_addlsh_nc_ip1 */ +/* #undef HAVE_NATIVE_mpn_addlsh1_n_ip2 */ +/* #undef HAVE_NATIVE_mpn_addlsh2_n_ip2 */ +/* #undef HAVE_NATIVE_mpn_addlsh_n_ip2 */ +/* #undef HAVE_NATIVE_mpn_addlsh1_nc_ip2 */ +/* #undef HAVE_NATIVE_mpn_addlsh2_nc_ip2 */ +/* #undef HAVE_NATIVE_mpn_addlsh_nc_ip2 */ +/* #undef HAVE_NATIVE_mpn_addmul_1c */ +/* #undef HAVE_NATIVE_mpn_addmul_2 */ +/* #undef HAVE_NATIVE_mpn_addmul_3 */ +/* #undef HAVE_NATIVE_mpn_addmul_4 */ +/* #undef HAVE_NATIVE_mpn_addmul_5 */ +/* #undef HAVE_NATIVE_mpn_addmul_6 */ +/* #undef HAVE_NATIVE_mpn_addmul_7 */ +/* #undef HAVE_NATIVE_mpn_addmul_8 */ +/* #undef HAVE_NATIVE_mpn_addmul_2s */ +#define HAVE_NATIVE_mpn_and_n 1 +#define HAVE_NATIVE_mpn_andn_n 1 +#define HAVE_NATIVE_mpn_bdiv_dbm1c 1 +#define HAVE_NATIVE_mpn_bdiv_q_1 1 +#define HAVE_NATIVE_mpn_pi1_bdiv_q_1 1 +#define HAVE_NATIVE_mpn_cnd_add_n 1 +#define HAVE_NATIVE_mpn_cnd_sub_n 1 +#define HAVE_NATIVE_mpn_com 1 +#define HAVE_NATIVE_mpn_copyd 1 +#define HAVE_NATIVE_mpn_copyi 1 +/* #undef HAVE_NATIVE_mpn_div_qr_1n_pi1 */ +/* #undef HAVE_NATIVE_mpn_div_qr_2 */ +/* #undef HAVE_NATIVE_mpn_divexact_1 */ +/* #undef HAVE_NATIVE_mpn_divexact_by3c */ +/* #undef HAVE_NATIVE_mpn_divrem_1 */ +/* #undef HAVE_NATIVE_mpn_divrem_1c */ +/* #undef HAVE_NATIVE_mpn_divrem_2 */ +/* #undef HAVE_NATIVE_mpn_gcd_1 */ +#define HAVE_NATIVE_mpn_gcd_11 1 +#define HAVE_NATIVE_mpn_gcd_22 1 +#define HAVE_NATIVE_mpn_hamdist 1 +#define HAVE_NATIVE_mpn_invert_limb 1 +#define HAVE_NATIVE_mpn_ior_n 1 +#define HAVE_NATIVE_mpn_iorn_n 1 +#define HAVE_NATIVE_mpn_lshift 1 +#define HAVE_NATIVE_mpn_lshiftc 1 +/* #undef HAVE_NATIVE_mpn_lshsub_n */ +/* #undef HAVE_NATIVE_mpn_mod_1 */ +/* #undef HAVE_NATIVE_mpn_mod_1_1p */ +/* #undef HAVE_NATIVE_mpn_mod_1c */ +/* #undef HAVE_NATIVE_mpn_mod_1s_2p */ +/* #undef HAVE_NATIVE_mpn_mod_1s_4p */ +#define HAVE_NATIVE_mpn_mod_34lsub1 1 +/* #undef HAVE_NATIVE_mpn_modexact_1_odd */ +/* #undef HAVE_NATIVE_mpn_modexact_1c_odd */ +#define HAVE_NATIVE_mpn_mul_1 1 +#define HAVE_NATIVE_mpn_mul_1c 1 +/* #undef HAVE_NATIVE_mpn_mul_2 */ +/* #undef HAVE_NATIVE_mpn_mul_3 */ +/* #undef HAVE_NATIVE_mpn_mul_4 */ +/* #undef HAVE_NATIVE_mpn_mul_5 */ +/* #undef HAVE_NATIVE_mpn_mul_6 */ +/* #undef HAVE_NATIVE_mpn_mul_basecase */ +/* #undef HAVE_NATIVE_mpn_mullo_basecase */ +#define HAVE_NATIVE_mpn_nand_n 1 +#define HAVE_NATIVE_mpn_nior_n 1 +#define HAVE_NATIVE_mpn_popcount 1 +/* #undef HAVE_NATIVE_mpn_preinv_divrem_1 */ +/* #undef HAVE_NATIVE_mpn_preinv_mod_1 */ +/* #undef HAVE_NATIVE_mpn_redc_1 */ +/* #undef HAVE_NATIVE_mpn_redc_2 */ +#define HAVE_NATIVE_mpn_rsblsh1_n 1 +#define HAVE_NATIVE_mpn_rsblsh2_n 1 +/* #undef HAVE_NATIVE_mpn_rsblsh_n */ +/* #undef HAVE_NATIVE_mpn_rsblsh1_nc */ +/* #undef HAVE_NATIVE_mpn_rsblsh2_nc */ +/* #undef HAVE_NATIVE_mpn_rsblsh_nc */ +#define HAVE_NATIVE_mpn_rsh1add_n 1 +/* #undef HAVE_NATIVE_mpn_rsh1add_nc */ +#define HAVE_NATIVE_mpn_rsh1sub_n 1 +/* #undef HAVE_NATIVE_mpn_rsh1sub_nc */ +#define HAVE_NATIVE_mpn_rshift 1 +/* #undef HAVE_NATIVE_mpn_sbpi1_bdiv_r */ +/* #undef HAVE_NATIVE_mpn_sqr_basecase */ +/* #undef HAVE_NATIVE_mpn_sqr_diagonal */ +#define HAVE_NATIVE_mpn_sqr_diag_addlsh1 1 +#define HAVE_NATIVE_mpn_sub_n 1 +#define HAVE_NATIVE_mpn_sub_nc 1 +#define HAVE_NATIVE_mpn_sublsh1_n 1 +#define HAVE_NATIVE_mpn_sublsh2_n 1 +/* #undef HAVE_NATIVE_mpn_sublsh_n */ +/* #undef HAVE_NATIVE_mpn_sublsh1_nc */ +/* #undef HAVE_NATIVE_mpn_sublsh2_nc */ +/* #undef HAVE_NATIVE_mpn_sublsh_nc */ +/* #undef HAVE_NATIVE_mpn_sublsh1_n_ip1 */ +/* #undef HAVE_NATIVE_mpn_sublsh2_n_ip1 */ +/* #undef HAVE_NATIVE_mpn_sublsh_n_ip1 */ +/* #undef HAVE_NATIVE_mpn_sublsh1_nc_ip1 */ +/* #undef HAVE_NATIVE_mpn_sublsh2_nc_ip1 */ +/* #undef HAVE_NATIVE_mpn_sublsh_nc_ip1 */ +/* #undef HAVE_NATIVE_mpn_submul_1c */ +/* #undef HAVE_NATIVE_mpn_tabselect */ +/* #undef HAVE_NATIVE_mpn_udiv_qrnnd */ +/* #undef HAVE_NATIVE_mpn_udiv_qrnnd_r */ +/* #undef HAVE_NATIVE_mpn_umul_ppmm */ +/* #undef HAVE_NATIVE_mpn_umul_ppmm_r */ +#define HAVE_NATIVE_mpn_xor_n 1 +#define HAVE_NATIVE_mpn_xnor_n 1 + +/* Define to 1 if you have the `nl_langinfo' function. */ +#define HAVE_NL_LANGINFO 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_NL_TYPES_H 1 + +/* Define to 1 if you have the `obstack_vprintf' function. */ +/* #undef HAVE_OBSTACK_VPRINTF */ + +/* Define to 1 if you have the `popen' function. */ +#define HAVE_POPEN 1 + +/* Define to 1 if you have the `processor_info' function. */ +#define HAVE_PROCESSOR_INFO 1 + +/* Define to 1 if `struct pst_processor' exists and contains + `psp_iticksperclktick'. */ +/* #undef HAVE_PSP_ITICKSPERCLKTICK */ + +/* Define to 1 if you have the `pstat_getprocessor' function. */ +/* #undef HAVE_PSTAT_GETPROCESSOR */ + +/* Define to 1 if the system has the type `ptrdiff_t'. */ +#define HAVE_PTRDIFF_T 1 + +/* Define to 1 if the system has the type `quad_t'. */ +#define HAVE_QUAD_T 1 + +/* Define to 1 if you have the `raise' function. */ +#define HAVE_RAISE 1 + +/* Define to 1 if you have the `read_real_time' function. */ +/* #undef HAVE_READ_REAL_TIME */ + +/* Define to 1 if you have the `sigaction' function. */ +#define HAVE_SIGACTION 1 + +/* Define to 1 if you have the `sigaltstack' function. */ +#define HAVE_SIGALTSTACK 1 + +/* Define to 1 if you have the `sigstack' function. */ +/* #undef HAVE_SIGSTACK */ + +/* Tune directory speed_cyclecounter, undef=none, 1=32bits, 2=64bits) */ +/* #undef HAVE_SPEED_CYCLECOUNTER */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SSTREAM */ + +/* Define to 1 if the system has the type `stack_t'. */ +#define HAVE_STACK_T 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if the system has the type `std::locale'. */ +/* #undef HAVE_STD__LOCALE */ + +/* Define to 1 if you have the `strchr' function. */ +#define HAVE_STRCHR 1 + +/* Define to 1 if you have the `strerror' function. */ +#define HAVE_STRERROR 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `strnlen' function. */ +#define HAVE_STRNLEN 1 + +/* Define to 1 if you have the `strtol' function. */ +#define HAVE_STRTOL 1 + +/* Define to 1 if you have the `strtoul' function. */ +#define HAVE_STRTOUL 1 + +/* Define to 1 if you have the `sysconf' function. */ +#define HAVE_SYSCONF 1 + +/* Define to 1 if you have the `sysctl' function. */ +#define HAVE_SYSCTL 1 + +/* Define to 1 if you have the `sysctlbyname' function. */ +#define HAVE_SYSCTLBYNAME 1 + +/* Define to 1 if you have the `syssgi' function. */ +/* #undef HAVE_SYSSGI */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_ATTRIBUTES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_IOGRAPH_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_MMAN_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_PARAM_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_PROCESSOR_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_PSTAT_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_RESOURCE_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SYSCTL_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SYSINFO_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SYSSGI_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SYSTEMCFG_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIMES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the `times' function. */ +#define HAVE_TIMES 1 + +/* Define to 1 if the system has the type `uint_least32_t'. */ +#define HAVE_UINT_LEAST32_T 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to 1 if you have the `vsnprintf' function and it works properly. */ +#define HAVE_VSNPRINTF 1 + +/* Define to 1 for Windos/64 */ +/* #undef HOST_DOS64 */ + +/* Assembler local label prefix */ +#define LSYM_PREFIX "L" + +/* Define to the sub-directory where libtool stores uninstalled libraries. */ +#define LT_OBJDIR ".libs/" + +/* Define to 1 to disable the use of inline assembly */ +/* #undef NO_ASM */ + +/* Name of package */ +#define PACKAGE "gmp" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "gmp-bugs@gmplib.org, see https://gmplib.org/manual/Reporting-Bugs.html" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "GNU MP" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "GNU MP 6.2.1" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "gmp" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "http://www.gnu.org/software/gmp/" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "6.2.1" + +/* Define as the return type of signal handlers (`int' or `void'). */ +#define RETSIGTYPE void + +/* The size of `mp_limb_t', as computed by sizeof. */ +#define SIZEOF_MP_LIMB_T 8 + +/* The size of `unsigned', as computed by sizeof. */ +#define SIZEOF_UNSIGNED 4 + +/* The size of `unsigned long', as computed by sizeof. */ +#define SIZEOF_UNSIGNED_LONG 8 + +/* The size of `unsigned short', as computed by sizeof. */ +#define SIZEOF_UNSIGNED_SHORT 2 + +/* The size of `void *', as computed by sizeof. */ +#define SIZEOF_VOID_P 8 + +/* Define to 1 if sscanf requires writable inputs */ +/* #undef SSCANF_WRITABLE_INPUT */ + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define to 1 if you can safely include both and . */ +#define TIME_WITH_SYS_TIME 1 + +/* Maximum size the tune program can test for SQR_TOOM2_THRESHOLD */ +#define TUNE_SQR_TOOM2_MAX SQR_TOOM2_MAX_GENERIC + +/* Version number of package */ +#define VERSION "6.2.1" + +/* Define to 1 to enable ASSERT checking, per --enable-assert */ +/* #undef WANT_ASSERT */ + +/* Define to 1 to enable GMP_CPU_TYPE faking cpuid, per --enable-fake-cpuid */ +/* #undef WANT_FAKE_CPUID */ + +/* Define to 1 when building a fat binary. */ +/* #undef WANT_FAT_BINARY */ + +/* Define to 1 to enable FFTs for multiplication, per --enable-fft */ +#define WANT_FFT 1 + +/* Define to 1 to enable old mpn_mul_fft_full for multiplication, per + --enable-old-fft-full */ +/* #undef WANT_OLD_FFT_FULL */ + +/* Define to 1 if --enable-profiling=gprof */ +/* #undef WANT_PROFILING_GPROF */ + +/* Define to 1 if --enable-profiling=instrument */ +/* #undef WANT_PROFILING_INSTRUMENT */ + +/* Define to 1 if --enable-profiling=prof */ +/* #undef WANT_PROFILING_PROF */ + +/* Define one of these to 1 for the desired temporary memory allocation + method, per --enable-alloca. */ +#define WANT_TMP_ALLOCA 1 +/* #undef WANT_TMP_REENTRANT */ +/* #undef WANT_TMP_NOTREENTRANT */ +/* #undef WANT_TMP_DEBUG */ + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +/* # undef WORDS_BIGENDIAN */ +# endif +#endif + +/* Define to 1 if the assembler understands the mulx instruction */ +/* #undef X86_ASM_MULX */ + +/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a + `char[]'. */ +#define YYTEXT_POINTER 1 + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +/* #undef inline */ +#endif + +/* Define to the equivalent of the C99 'restrict' keyword, or to + nothing if this is not supported. Do not define if restrict is + supported directly. */ +#define restrict __restrict +/* Work around a bug in Sun C++: it does not support _Restrict or + __restrict__, even though the corresponding Sun C compiler ends up with + "#define restrict _Restrict" or "#define restrict __restrict__" in the + previous line. Perhaps some future version of Sun C++ will work with + restrict; if so, hopefully it defines __RESTRICT like Sun C does. */ +#if defined __SUNPRO_CC && !defined __RESTRICT +# define _Restrict +# define __restrict__ +#endif + +/* Define to empty if the keyword `volatile' does not work. Warning: valid + code using `volatile' can become incorrect without. Disable with care. */ +/* #undef volatile */ diff --git a/vere/ext/gmp/gen/aarch64-macos/fac_table.h b/vere/ext/gmp/gen/aarch64-macos/fac_table.h new file mode 100644 index 0000000..6708348 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/fac_table.h @@ -0,0 +1,49 @@ +/* This file is automatically generated by gen-fac.c */ + +#if GMP_NUMB_BITS != 64 +Error , error this data is for 64 GMP_NUMB_BITS only +#endif +/* This table is 0!,1!,2!,3!,...,n! where n! has <= GMP_NUMB_BITS bits */ +#define ONE_LIMB_FACTORIAL_TABLE CNST_LIMB(0x1),CNST_LIMB(0x1),CNST_LIMB(0x2),CNST_LIMB(0x6),CNST_LIMB(0x18),CNST_LIMB(0x78),CNST_LIMB(0x2d0),CNST_LIMB(0x13b0),CNST_LIMB(0x9d80),CNST_LIMB(0x58980),CNST_LIMB(0x375f00),CNST_LIMB(0x2611500),CNST_LIMB(0x1c8cfc00),CNST_LIMB(0x17328cc00),CNST_LIMB(0x144c3b2800),CNST_LIMB(0x13077775800),CNST_LIMB(0x130777758000),CNST_LIMB(0x1437eeecd8000),CNST_LIMB(0x16beecca730000),CNST_LIMB(0x1b02b9306890000),CNST_LIMB(0x21c3677c82b40000) + +/* This table is 0!,1!,2!/2,3!/2,...,n!/2^sn where n!/2^sn is an */ +/* odd integer for each n, and n!/2^sn has <= GMP_NUMB_BITS bits */ +#define ONE_LIMB_ODD_FACTORIAL_TABLE CNST_LIMB(0x1),CNST_LIMB(0x1),CNST_LIMB(0x1),CNST_LIMB(0x3),CNST_LIMB(0x3),CNST_LIMB(0xf),CNST_LIMB(0x2d),CNST_LIMB(0x13b),CNST_LIMB(0x13b),CNST_LIMB(0xb13),CNST_LIMB(0x375f),CNST_LIMB(0x26115),CNST_LIMB(0x7233f),CNST_LIMB(0x5cca33),CNST_LIMB(0x2898765),CNST_LIMB(0x260eeeeb),CNST_LIMB(0x260eeeeb),CNST_LIMB(0x286fddd9b),CNST_LIMB(0x16beecca73),CNST_LIMB(0x1b02b930689),CNST_LIMB(0x870d9df20ad),CNST_LIMB(0xb141df4dae31),CNST_LIMB(0x79dd498567c1b),CNST_LIMB(0xaf2e19afc5266d),CNST_LIMB(0x20d8a4d0f4f7347),CNST_LIMB(0x335281867ec241ef) +#define ODD_FACTORIAL_TABLE_MAX CNST_LIMB(0x335281867ec241ef) +#define ODD_FACTORIAL_TABLE_LIMIT (25) + +/* Previous table, continued, values modulo 2^GMP_NUMB_BITS */ +#define ONE_LIMB_ODD_FACTORIAL_EXTTABLE CNST_LIMB(0x9b3093d46fdd5923),CNST_LIMB(0x5e1f9767cc5866b1),CNST_LIMB(0x92dd23d6966aced7),CNST_LIMB(0xa30d0f4f0a196e5b),CNST_LIMB(0x8dc3e5a1977d7755),CNST_LIMB(0x2ab8ce915831734b),CNST_LIMB(0x2ab8ce915831734b),CNST_LIMB(0x81d2a0bc5e5fdcab),CNST_LIMB(0x9efcac82445da75b),CNST_LIMB(0xbc8b95cf58cde171),CNST_LIMB(0xa0e8444a1f3cecf9),CNST_LIMB(0x4191deb683ce3ffd),CNST_LIMB(0xddd3878bc84ebfc7),CNST_LIMB(0xcb39a64b83ff3751),CNST_LIMB(0xf8203f7993fc1495),CNST_LIMB(0xbd2a2a78b35f4bdd),CNST_LIMB(0x84757be6b6d13921),CNST_LIMB(0x3fbbcfc0b524988b),CNST_LIMB(0xbd11ed47c8928df9),CNST_LIMB(0x3c26b59e41c2f4c5),CNST_LIMB(0x677a5137e883fdb3),CNST_LIMB(0xff74e943b03b93dd),CNST_LIMB(0xfe5ebbcb10b2bb97),CNST_LIMB(0xb021f1de3235e7e7),CNST_LIMB(0x33509eb2e743a58f),CNST_LIMB(0x390f9da41279fb7d),CNST_LIMB(0xe5cb0154f031c559),CNST_LIMB(0x93074695ba4ddb6d),CNST_LIMB(0x81c471caa636247f),CNST_LIMB(0xe1347289b5a1d749),CNST_LIMB(0x286f21c3f76ce2ff),CNST_LIMB(0xbe84a2173e8ac7),CNST_LIMB(0x1595065ca215b88b),CNST_LIMB(0xf95877595b018809),CNST_LIMB(0x9c2efe3c5516f887),CNST_LIMB(0x373294604679382b),CNST_LIMB(0xaf1ff7a888adcd35),CNST_LIMB(0x18ddf279a2c5800b),CNST_LIMB(0x18ddf279a2c5800b),CNST_LIMB(0x505a90e2542582cb),CNST_LIMB(0x5bacad2cd8d5dc2b),CNST_LIMB(0xfe3152bcbff89f41) +#define ODD_FACTORIAL_EXTTABLE_LIMIT (67) + +/* This table is 1!!,3!!,...,(2n+1)!! where (2n+1)!! has <= GMP_NUMB_BITS bits */ +#define ONE_LIMB_ODD_DOUBLEFACTORIAL_TABLE CNST_LIMB(0x1),CNST_LIMB(0x3),CNST_LIMB(0xf),CNST_LIMB(0x69),CNST_LIMB(0x3b1),CNST_LIMB(0x289b),CNST_LIMB(0x20fdf),CNST_LIMB(0x1eee11),CNST_LIMB(0x20dcf21),CNST_LIMB(0x27065f73),CNST_LIMB(0x33385d46f),CNST_LIMB(0x49a10615f9),CNST_LIMB(0x730b9982551),CNST_LIMB(0xc223930bef8b),CNST_LIMB(0x15fe07a85a22bf),CNST_LIMB(0x2a9c2ed62ea3521),CNST_LIMB(0x57e22099c030d941) +#define ODD_DOUBLEFACTORIAL_TABLE_MAX CNST_LIMB(0x57e22099c030d941) +#define ODD_DOUBLEFACTORIAL_TABLE_LIMIT (33) + +/* This table x_1, x_2,... contains values s.t. x_n^n has <= GMP_NUMB_BITS bits */ +#define NTH_ROOT_NUMB_MASK_TABLE (GMP_NUMB_MASK),CNST_LIMB(0xffffffff),CNST_LIMB(0x285145),CNST_LIMB(0xffff),CNST_LIMB(0x1bdb),CNST_LIMB(0x659),CNST_LIMB(0x235),CNST_LIMB(0xff) + +/* This table contains inverses of odd factorials, modulo 2^GMP_NUMB_BITS */ + +/* It begins with (2!/2)^-1=1 */ +#define ONE_LIMB_ODD_FACTORIAL_INVERSES_TABLE CNST_LIMB(0x1),CNST_LIMB(0xaaaaaaaaaaaaaaab),CNST_LIMB(0xaaaaaaaaaaaaaaab),CNST_LIMB(0xeeeeeeeeeeeeeeef),CNST_LIMB(0x4fa4fa4fa4fa4fa5),CNST_LIMB(0x2ff2ff2ff2ff2ff3),CNST_LIMB(0x2ff2ff2ff2ff2ff3),CNST_LIMB(0x938cc70553e3771b),CNST_LIMB(0xb71c27cddd93e49f),CNST_LIMB(0xb38e3229fcdee63d),CNST_LIMB(0xe684bb63544a4cbf),CNST_LIMB(0xc2f684917ca340fb),CNST_LIMB(0xf747c9cba417526d),CNST_LIMB(0xbb26eb51d7bd49c3),CNST_LIMB(0xbb26eb51d7bd49c3),CNST_LIMB(0xb0a7efb985294093),CNST_LIMB(0xbe4b8c69f259eabb),CNST_LIMB(0x6854d17ed6dc4fb9),CNST_LIMB(0xe1aa904c915f4325),CNST_LIMB(0x3b8206df131cead1),CNST_LIMB(0x79c6009fea76fe13),CNST_LIMB(0xd8c5d381633cd365),CNST_LIMB(0x4841f12b21144677),CNST_LIMB(0x4a91ff68200b0d0f),CNST_LIMB(0x8f9513a58c4f9e8b),CNST_LIMB(0x2b3e690621a42251),CNST_LIMB(0x4f520f00e03c04e7),CNST_LIMB(0x2edf84ee600211d3),CNST_LIMB(0xadcaa2764aaacdfd),CNST_LIMB(0x161f4f9033f4fe63),CNST_LIMB(0x161f4f9033f4fe63),CNST_LIMB(0xbada2932ea4d3e03),CNST_LIMB(0xcec189f3efaa30d3),CNST_LIMB(0xf7475bb68330bf91),CNST_LIMB(0x37eb7bf7d5b01549),CNST_LIMB(0x46b35660a4e91555),CNST_LIMB(0xa567c12d81f151f7),CNST_LIMB(0x4c724007bb2071b1),CNST_LIMB(0xf4a0cce58a016bd),CNST_LIMB(0xfa21068e66106475),CNST_LIMB(0x244ab72b5a318ae1),CNST_LIMB(0x366ce67e080d0f23),CNST_LIMB(0xd666fdae5dd2a449),CNST_LIMB(0xd740ddd0acc06a0d),CNST_LIMB(0xb050bbbb28e6f97b),CNST_LIMB(0x70b003fe890a5c75),CNST_LIMB(0xd03aabff83037427),CNST_LIMB(0x13ec4ca72c783bd7),CNST_LIMB(0x90282c06afdbd96f),CNST_LIMB(0x4414ddb9db4a95d5),CNST_LIMB(0xa2c68735ae6832e9),CNST_LIMB(0xbf72d71455676665),CNST_LIMB(0xa8469fab6b759b7f),CNST_LIMB(0xc1e55b56e606caf9),CNST_LIMB(0x40455630fc4a1cff),CNST_LIMB(0x120a7b0046d16f7),CNST_LIMB(0xa7c3553b08faef23),CNST_LIMB(0x9f0bfd1b08d48639),CNST_LIMB(0xa433ffce9a304d37),CNST_LIMB(0xa22ad1d53915c683),CNST_LIMB(0xcb6cbc723ba5dd1d),CNST_LIMB(0x547fb1b8ab9d0ba3),CNST_LIMB(0x547fb1b8ab9d0ba3),CNST_LIMB(0x8f15a826498852e3) + +/* This table contains 2n-popc(2n) for small n */ + +/* It begins with 2-1=1 (n=1) */ +#define TABLE_2N_MINUS_POPC_2N 1,3,4,7,8,10,11,15,16,18,19,22,23,25,26,31,32,34,35,38,39,41,42,46,47,49,50,53,54,56,57,63,64,66,67,70,71,73,74,78 +#define TABLE_LIMIT_2N_MINUS_POPC_2N 81 +#define ODD_CENTRAL_BINOMIAL_OFFSET (13) + +/* This table contains binomial(2k,k)/2^t */ + +/* It begins with ODD_CENTRAL_BINOMIAL_TABLE_MIN */ +#define ONE_LIMB_ODD_CENTRAL_BINOMIAL_TABLE CNST_LIMB(0x13d66b),CNST_LIMB(0x4c842f),CNST_LIMB(0x93ee7d),CNST_LIMB(0x11e9e123),CNST_LIMB(0x22c60053),CNST_LIMB(0x873ae4d1),CNST_LIMB(0x10757bd97),CNST_LIMB(0x80612c6cd),CNST_LIMB(0xfaa556bc1),CNST_LIMB(0x3d3cc24821),CNST_LIMB(0x77cfeb6bbb),CNST_LIMB(0x7550ebd97c7),CNST_LIMB(0xe5f08695caf),CNST_LIMB(0x386120ffce11),CNST_LIMB(0x6eabb28dd6df),CNST_LIMB(0x3658e31c82a8f),CNST_LIMB(0x6ad2050312783),CNST_LIMB(0x1a42902a5af0bf),CNST_LIMB(0x33ac44f881661d),CNST_LIMB(0xcb764f927d82123),CNST_LIMB(0x190c23fa46b93983),CNST_LIMB(0x62b7609e25caf1b9),CNST_LIMB(0xc29cb72925ef2cff) +#define ODD_CENTRAL_BINOMIAL_TABLE_LIMIT (35) + +/* This table contains the inverses of elements in the previous table. */ +#define ONE_LIMB_ODD_CENTRAL_BINOMIAL_INVERSE_TABLE CNST_LIMB(0x61e5bd199bb12643),CNST_LIMB(0x78321494dc8342cf),CNST_LIMB(0x4fd348704ebf7ad5),CNST_LIMB(0x7e722ba086ab568b),CNST_LIMB(0xa5fcc124265843db),CNST_LIMB(0x89c4a6b18633f431),CNST_LIMB(0x4daa2c15f8ce9227),CNST_LIMB(0x801c618ca9be9605),CNST_LIMB(0x32dc192f948a441),CNST_LIMB(0xd02b90c2bf3be1),CNST_LIMB(0xd897e8c1749aa173),CNST_LIMB(0x54a234fc01fef9f7),CNST_LIMB(0x83ff2ab4d1ff7a4f),CNST_LIMB(0xa427f1c9b304e2f1),CNST_LIMB(0x9c14595d1793651f),CNST_LIMB(0x883a71c607a7b46f),CNST_LIMB(0xd089863c54bc9f2b),CNST_LIMB(0x9022f6bce5d07f3f),CNST_LIMB(0xbec207e218768c35),CNST_LIMB(0x9d70cb4cbb4f168b),CNST_LIMB(0x3c3d3403828a9d2b),CNST_LIMB(0x7672df58c56bc489),CNST_LIMB(0x1e66ca55d727d2ff) + +/* This table contains the values t in the formula binomial(2k,k)/2^t */ +#define CENTRAL_BINOMIAL_2FAC_TABLE 3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,1,2,2,3 diff --git a/vere/ext/gmp/gen/aarch64-macos/fib_table.h b/vere/ext/gmp/gen/aarch64-macos/fib_table.h new file mode 100644 index 0000000..66ac4d6 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/fib_table.h @@ -0,0 +1,8 @@ +/* This file generated by gen-fib.c - DO NOT EDIT. */ + +#if GMP_NUMB_BITS != 64 +Error, error, this data is for 64 bits +#endif + +#define FIB_TABLE_LIMIT 93 +#define FIB_TABLE_LUCNUM_LIMIT 92 diff --git a/vere/ext/gmp/gen/aarch64-macos/mp_bases.h b/vere/ext/gmp/gen/aarch64-macos/mp_bases.h new file mode 100644 index 0000000..08ede78 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mp_bases.h @@ -0,0 +1,13 @@ +/* This file generated by gen-bases.c - DO NOT EDIT. */ + +#if GMP_NUMB_BITS != 64 +Error, error, this data is for 64 bits +#endif + +/* mp_bases[10] data, as literal values */ +#define MP_BASES_CHARS_PER_LIMB_10 19 +#define MP_BASES_BIG_BASE_CTZ_10 19 +#define MP_BASES_BIG_BASE_10 CNST_LIMB(0x8ac7230489e80000) +#define MP_BASES_BIG_BASE_INVERTED_10 CNST_LIMB(0xd83c94fb6d2ac34a) +#define MP_BASES_BIG_BASE_BINVERTED_10 CNST_LIMB(0x26b172506559ce15) +#define MP_BASES_NORMALIZATION_STEPS_10 0 diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/add_n.s b/vere/ext/gmp/gen/aarch64-macos/mpn/add_n.s new file mode 100644 index 0000000..5f2b539 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/add_n.s @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_add_nc + +___gmpn_add_nc: + cmp x4, #1 + b Lent + + .text + .align 3 + .globl ___gmpn_add_n + +___gmpn_add_n: + cmn xzr, xzr +Lent: lsr x17, x3, #2 + tbz x3, #0, Lbx0 + +Lbx1: ldr x7, [x1] + ldr x11, [x2] + adcs x13, x7, x11 + str x13, [x0],#8 + tbnz x3, #1, Lb11 + +Lb01: cbz x17, Lret + ldp x4, x5, [x1,#8] + ldp x8, x9, [x2,#8] + sub x1, x1, #8 + sub x2, x2, #8 + b Lmid + +Lb11: ldp x6, x7, [x1,#8] + ldp x10, x11, [x2,#8] + add x1, x1, #8 + add x2, x2, #8 + cbz x17, Lend + b Ltop + +Lbx0: tbnz x3, #1, Lb10 + +Lb00: ldp x4, x5, [x1] + ldp x8, x9, [x2] + sub x1, x1, #16 + sub x2, x2, #16 + b Lmid + +Lb10: ldp x6, x7, [x1] + ldp x10, x11, [x2] + cbz x17, Lend + + .align 4 +Ltop: ldp x4, x5, [x1,#16] + ldp x8, x9, [x2,#16] + adcs x12, x6, x10 + adcs x13, x7, x11 + stp x12, x13, [x0],#16 +Lmid: ldp x6, x7, [x1,#32]! + ldp x10, x11, [x2,#32]! + adcs x12, x4, x8 + adcs x13, x5, x9 + stp x12, x13, [x0],#16 + sub x17, x17, #1 + cbnz x17, Ltop + +Lend: adcs x12, x6, x10 + adcs x13, x7, x11 + stp x12, x13, [x0] +Lret: cset x0, cs + ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/addlsh1_n.s b/vere/ext/gmp/gen/aarch64-macos/mpn/addlsh1_n.s new file mode 100644 index 0000000..bf0bdcb --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/addlsh1_n.s @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_addlsh1_n + +___gmpn_addlsh1_n: + lsr x6, x3, #2 + tbz x3, #0, Lbx0 + +Lbx1: ldr x5, [x1] + tbnz x3, #1, Lb11 + +Lb01: ldr x11, [x2] + cbz x6, L1 + ldp x8, x9, [x2,#8] + lsl x13, x11, #1 + adds x15, x13, x5 + str x15, [x0],#8 + sub x1, x1, #24 + sub x2, x2, #8 + b Lmid + +L1: lsl x13, x11, #1 + adds x15, x13, x5 + str x15, [x0] + lsr x0, x11, 63 + adc x0, x0, xzr + ret + +Lb11: ldr x9, [x2] + ldp x10, x11, [x2,#8]! + lsl x13, x9, #1 + adds x17, x13, x5 + str x17, [x0],#8 + sub x1, x1, #8 + cbz x6, Lend + b Ltop + +Lbx0: tbnz x3, #1, Lb10 + +Lb00: adds x11, xzr, xzr + ldp x8, x9, [x2],#-16 + sub x1, x1, #32 + b Lmid + +Lb10: adds x9, xzr, xzr + ldp x10, x11, [x2] + sub x1, x1, #16 + cbz x6, Lend + + .align 4 +Ltop: ldp x4, x5, [x1,#16] + extr x12, x10, x9, #63 + ldp x8, x9, [x2,#16] + extr x13, x11, x10, #63 + adcs x14, x12, x4 + adcs x15, x13, x5 + stp x14, x15, [x0],#16 +Lmid: ldp x4, x5, [x1,#32]! + extr x12, x8, x11, #63 + ldp x10, x11, [x2,#32]! + extr x13, x9, x8, #63 + adcs x16, x12, x4 + adcs x17, x13, x5 + stp x16, x17, [x0],#16 + sub x6, x6, #1 + cbnz x6, Ltop + +Lend: ldp x4, x5, [x1,#16] + extr x12, x10, x9, #63 + extr x13, x11, x10, #63 + adcs x14, x12, x4 + adcs x15, x13, x5 + stp x14, x15, [x0] + lsr x0, x11, 63 + adc x0, x0, xzr + ret + + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/addlsh2_n.s b/vere/ext/gmp/gen/aarch64-macos/mpn/addlsh2_n.s new file mode 100644 index 0000000..e167b89 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/addlsh2_n.s @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_addlsh2_n + +___gmpn_addlsh2_n: + lsr x6, x3, #2 + tbz x3, #0, Lbx0 + +Lbx1: ldr x5, [x1] + tbnz x3, #1, Lb11 + +Lb01: ldr x11, [x2] + cbz x6, L1 + ldp x8, x9, [x2,#8] + lsl x13, x11, #2 + adds x15, x13, x5 + str x15, [x0],#8 + sub x1, x1, #24 + sub x2, x2, #8 + b Lmid + +L1: lsl x13, x11, #2 + adds x15, x13, x5 + str x15, [x0] + lsr x0, x11, 62 + adc x0, x0, xzr + ret + +Lb11: ldr x9, [x2] + ldp x10, x11, [x2,#8]! + lsl x13, x9, #2 + adds x17, x13, x5 + str x17, [x0],#8 + sub x1, x1, #8 + cbz x6, Lend + b Ltop + +Lbx0: tbnz x3, #1, Lb10 + +Lb00: adds x11, xzr, xzr + ldp x8, x9, [x2],#-16 + sub x1, x1, #32 + b Lmid + +Lb10: adds x9, xzr, xzr + ldp x10, x11, [x2] + sub x1, x1, #16 + cbz x6, Lend + + .align 4 +Ltop: ldp x4, x5, [x1,#16] + extr x12, x10, x9, #62 + ldp x8, x9, [x2,#16] + extr x13, x11, x10, #62 + adcs x14, x12, x4 + adcs x15, x13, x5 + stp x14, x15, [x0],#16 +Lmid: ldp x4, x5, [x1,#32]! + extr x12, x8, x11, #62 + ldp x10, x11, [x2,#32]! + extr x13, x9, x8, #62 + adcs x16, x12, x4 + adcs x17, x13, x5 + stp x16, x17, [x0],#16 + sub x6, x6, #1 + cbnz x6, Ltop + +Lend: ldp x4, x5, [x1,#16] + extr x12, x10, x9, #62 + extr x13, x11, x10, #62 + adcs x14, x12, x4 + adcs x15, x13, x5 + stp x14, x15, [x0] + lsr x0, x11, 62 + adc x0, x0, xzr + ret + + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/addmul_1.s b/vere/ext/gmp/gen/aarch64-macos/mpn/addmul_1.s new file mode 100644 index 0000000..09ce6a3 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/addmul_1.s @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_addmul_1 + +___gmpn_addmul_1: + adds x15, xzr, xzr + + tbz x2, #0, L1 + + ldr x4, [x1],#8 + mul x8, x4, x3 + umulh x12, x4, x3 + ldr x4, [x0] + adds x8, x4, x8 + csinc x15, x12, x12, cc + str x8, [x0],#8 + +L1: tbz x2, #1, L2 + + ldp x4, x5, [x1],#16 + mul x8, x4, x3 + umulh x12, x4, x3 + mul x9, x5, x3 + umulh x13, x5, x3 + adds x8, x8, x15 + adcs x9, x9, x12 + ldp x4, x5, [x0] + adc x15, x13, xzr + adds x8, x4, x8 + adcs x9, x5, x9 + csinc x15, x15, x15, cc + stp x8, x9, [x0],#16 + +L2: lsr x2, x2, #2 + cbz x2, Lle3 + ldp x4, x5, [x1],#32 + ldp x6, x7, [x1,#-16] + b Lmid +Lle3: mov x0, x15 + ret + + .align 4 +Ltop: ldp x4, x5, [x1],#32 + ldp x6, x7, [x1,#-16] + adds x8, x16, x8 + adcs x9, x17, x9 + stp x8, x9, [x0],#32 + adcs x10, x12, x10 + adcs x11, x13, x11 + stp x10, x11, [x0,#-16] + csinc x15, x15, x15, cc +Lmid: sub x2, x2, #1 + mul x8, x4, x3 + umulh x12, x4, x3 + mul x9, x5, x3 + umulh x13, x5, x3 + adds x8, x8, x15 + mul x10, x6, x3 + umulh x14, x6, x3 + adcs x9, x9, x12 + mul x11, x7, x3 + umulh x15, x7, x3 + adcs x10, x10, x13 + ldp x16, x17, [x0] + adcs x11, x11, x14 + ldp x12, x13, [x0,#16] + adc x15, x15, xzr + cbnz x2, Ltop + + adds x8, x16, x8 + adcs x9, x17, x9 + adcs x10, x12, x10 + adcs x11, x13, x11 + stp x8, x9, [x0] + stp x10, x11, [x0,#16] + csinc x0, x15, x15, cc + ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/and_n.s b/vere/ext/gmp/gen/aarch64-macos/mpn/and_n.s new file mode 100644 index 0000000..6967e35 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/and_n.s @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_and_n + +___gmpn_and_n: + lsr x17, x3, #2 + tbz x3, #0, Lbx0 + +Lbx1: ldr x7, [x1] + ldr x11, [x2] + and x15, x7, x11 + str x15, [x0],#8 + tbnz x3, #1, Lb11 + +Lb01: cbz x17, Lret + ldp x4, x5, [x1,#8] + ldp x8, x9, [x2,#8] + sub x1, x1, #8 + sub x2, x2, #8 + b Lmid + +Lb11: ldp x6, x7, [x1,#8] + ldp x10, x11, [x2,#8] + add x1, x1, #8 + add x2, x2, #8 + cbz x17, Lend + b Ltop + +Lbx0: tbnz x3, #1, Lb10 + +Lb00: ldp x4, x5, [x1],#-16 + ldp x8, x9, [x2],#-16 + b Lmid + +Lb10: ldp x6, x7, [x1] + ldp x10, x11, [x2] + cbz x17, Lend + + .align 4 +Ltop: ldp x4, x5, [x1,#16] + ldp x8, x9, [x2,#16] + and x12, x6, x10 + and x13, x7, x11 + stp x12, x13, [x0],#16 +Lmid: ldp x6, x7, [x1,#32]! + ldp x10, x11, [x2,#32]! + and x12, x4, x8 + and x13, x5, x9 + stp x12, x13, [x0],#16 + sub x17, x17, #1 + cbnz x17, Ltop + +Lend: and x12, x6, x10 + and x13, x7, x11 + stp x12, x13, [x0] +Lret: ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/andn_n.s b/vere/ext/gmp/gen/aarch64-macos/mpn/andn_n.s new file mode 100644 index 0000000..6f928f1 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/andn_n.s @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_andn_n + +___gmpn_andn_n: + lsr x17, x3, #2 + tbz x3, #0, Lbx0 + +Lbx1: ldr x7, [x1] + ldr x11, [x2] + bic x15, x7, x11 + str x15, [x0],#8 + tbnz x3, #1, Lb11 + +Lb01: cbz x17, Lret + ldp x4, x5, [x1,#8] + ldp x8, x9, [x2,#8] + sub x1, x1, #8 + sub x2, x2, #8 + b Lmid + +Lb11: ldp x6, x7, [x1,#8] + ldp x10, x11, [x2,#8] + add x1, x1, #8 + add x2, x2, #8 + cbz x17, Lend + b Ltop + +Lbx0: tbnz x3, #1, Lb10 + +Lb00: ldp x4, x5, [x1],#-16 + ldp x8, x9, [x2],#-16 + b Lmid + +Lb10: ldp x6, x7, [x1] + ldp x10, x11, [x2] + cbz x17, Lend + + .align 4 +Ltop: ldp x4, x5, [x1,#16] + ldp x8, x9, [x2,#16] + bic x12, x6, x10 + bic x13, x7, x11 + stp x12, x13, [x0],#16 +Lmid: ldp x6, x7, [x1,#32]! + ldp x10, x11, [x2,#32]! + bic x12, x4, x8 + bic x13, x5, x9 + stp x12, x13, [x0],#16 + sub x17, x17, #1 + cbnz x17, Ltop + +Lend: bic x12, x6, x10 + bic x13, x7, x11 + stp x12, x13, [x0] +Lret: ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/bdiv_dbm1c.s b/vere/ext/gmp/gen/aarch64-macos/mpn/bdiv_dbm1c.s new file mode 100644 index 0000000..8c606f4 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/bdiv_dbm1c.s @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4 + .text + .align 3 + .globl ___gmpn_bdiv_dbm1c + +___gmpn_bdiv_dbm1c: + ldr x5, [x1], #8 + ands x6, x2, #3 + b.eq Lfi0 + cmp x6, #2 + b.cc Lfi1 + b.eq Lfi2 + +Lfi3: mul x12, x5, x3 + umulh x13, x5, x3 + ldr x5, [x1], #8 + b Llo3 + +Lfi0: mul x10, x5, x3 + umulh x11, x5, x3 + ldr x5, [x1], #8 + b Llo0 + +Lfi1: subs x2, x2, #1 + mul x12, x5, x3 + umulh x13, x5, x3 + b.ls Lwd1 + ldr x5, [x1], #8 + b Llo1 + +Lfi2: mul x10, x5, x3 + umulh x11, x5, x3 + ldr x5, [x1], #8 + b Llo2 + +Ltop: ldr x5, [x1], #8 + subs x4, x4, x10 + str x4, [x0], #8 + sbc x4, x4, x11 +Llo1: mul x10, x5, x3 + umulh x11, x5, x3 + ldr x5, [x1], #8 + subs x4, x4, x12 + str x4, [x0], #8 + sbc x4, x4, x13 +Llo0: mul x12, x5, x3 + umulh x13, x5, x3 + ldr x5, [x1], #8 + subs x4, x4, x10 + str x4, [x0], #8 + sbc x4, x4, x11 +Llo3: mul x10, x5, x3 + umulh x11, x5, x3 + ldr x5, [x1], #8 + subs x4, x4, x12 + str x4, [x0], #8 + sbc x4, x4, x13 +Llo2: subs x2, x2, #4 + mul x12, x5, x3 + umulh x13, x5, x3 + b.hi Ltop + +Lwd2: subs x4, x4, x10 + str x4, [x0], #8 + sbc x4, x4, x11 +Lwd1: subs x4, x4, x12 + str x4, [x0] + sbc x0, x4, x13 + ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/bdiv_q_1.s b/vere/ext/gmp/gen/aarch64-macos/mpn/bdiv_q_1.s new file mode 100644 index 0000000..8ee70a5 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/bdiv_q_1.s @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_bdiv_q_1 + +___gmpn_bdiv_q_1: + + rbit x6, x3 + clz x5, x6 + lsr x3, x3, x5 + + adrp x7, ___gmp_binvert_limb_table@GOTPAGE + ubfx x6, x3, 1, 7 + ldr x7, [x7, ___gmp_binvert_limb_table@GOTPAGEOFF] + ldrb w6, [x7, x6] + ubfiz x7, x6, 1, 8 + umull x6, w6, w6 + msub x6, x6, x3, x7 + lsl x7, x6, 1 + mul x6, x6, x6 + msub x6, x6, x3, x7 + lsl x7, x6, 1 + mul x6, x6, x6 + msub x4, x6, x3, x7 + + b ___gmpn_pi1_bdiv_q_1 + + + .text + .align 3 + .globl ___gmpn_pi1_bdiv_q_1 + +___gmpn_pi1_bdiv_q_1: + sub x2, x2, #1 + subs x6, x6, x6 + ldr x9, [x1],#8 + cbz x5, Lnorm + +Lunorm: + lsr x12, x9, x5 + cbz x2, Leu1 + sub x8, xzr, x5 + +Ltpu: ldr x9, [x1],#8 + lsl x7, x9, x8 + orr x7, x7, x12 + sbcs x6, x7, x6 + mul x7, x6, x4 + str x7, [x0],#8 + lsr x12, x9, x5 + umulh x6, x7, x3 + sub x2, x2, #1 + cbnz x2, Ltpu + +Leu1: sbcs x6, x12, x6 + mul x6, x6, x4 + str x6, [x0] + ret + +Lnorm: + mul x5, x9, x4 + str x5, [x0],#8 + cbz x2, Len1 + +Ltpn: ldr x9, [x1],#8 + umulh x5, x5, x3 + sbcs x5, x9, x5 + mul x5, x5, x4 + str x5, [x0],#8 + sub x2, x2, #1 + cbnz x2, Ltpn + +Len1: ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/cnd_add_n.s b/vere/ext/gmp/gen/aarch64-macos/mpn/cnd_add_n.s new file mode 100644 index 0000000..606d6c4 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/cnd_add_n.s @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_cnd_add_n + +___gmpn_cnd_add_n: + cmp x0, #1 + sbc x0, x0, x0 + + cmn xzr, xzr + + lsr x17, x4, #2 + tbz x4, #0, Lbx0 + +Lbx1: ldr x13, [x3] + ldr x11, [x2] + bic x7, x13, x0 + adcs x9, x11, x7 + str x9, [x1] + tbnz x4, #1, Lb11 + +Lb01: cbz x17, Lrt + ldp x12, x13, [x3,#8] + ldp x10, x11, [x2,#8] + sub x2, x2, #8 + sub x3, x3, #8 + sub x1, x1, #24 + b Lmid + +Lb11: ldp x12, x13, [x3,#8]! + ldp x10, x11, [x2,#8]! + sub x1, x1, #8 + cbz x17, Lend + b Ltop + +Lbx0: ldp x12, x13, [x3] + ldp x10, x11, [x2] + tbnz x4, #1, Lb10 + +Lb00: sub x2, x2, #16 + sub x3, x3, #16 + sub x1, x1, #32 + b Lmid + +Lb10: sub x1, x1, #16 + cbz x17, Lend + + .align 4 +Ltop: bic x6, x12, x0 + bic x7, x13, x0 + ldp x12, x13, [x3,#16] + adcs x8, x10, x6 + adcs x9, x11, x7 + ldp x10, x11, [x2,#16] + stp x8, x9, [x1,#16] +Lmid: bic x6, x12, x0 + bic x7, x13, x0 + ldp x12, x13, [x3,#32]! + adcs x8, x10, x6 + adcs x9, x11, x7 + ldp x10, x11, [x2,#32]! + stp x8, x9, [x1,#32]! + sub x17, x17, #1 + cbnz x17, Ltop + +Lend: bic x6, x12, x0 + bic x7, x13, x0 + adcs x8, x10, x6 + adcs x9, x11, x7 + stp x8, x9, [x1,#16] +Lrt: cset x0, cs + ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/cnd_sub_n.s b/vere/ext/gmp/gen/aarch64-macos/mpn/cnd_sub_n.s new file mode 100644 index 0000000..be253fe --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/cnd_sub_n.s @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_cnd_sub_n + +___gmpn_cnd_sub_n: + cmp x0, #1 + sbc x0, x0, x0 + + cmp xzr, xzr + + lsr x17, x4, #2 + tbz x4, #0, Lbx0 + +Lbx1: ldr x13, [x3] + ldr x11, [x2] + bic x7, x13, x0 + sbcs x9, x11, x7 + str x9, [x1] + tbnz x4, #1, Lb11 + +Lb01: cbz x17, Lrt + ldp x12, x13, [x3,#8] + ldp x10, x11, [x2,#8] + sub x2, x2, #8 + sub x3, x3, #8 + sub x1, x1, #24 + b Lmid + +Lb11: ldp x12, x13, [x3,#8]! + ldp x10, x11, [x2,#8]! + sub x1, x1, #8 + cbz x17, Lend + b Ltop + +Lbx0: ldp x12, x13, [x3] + ldp x10, x11, [x2] + tbnz x4, #1, Lb10 + +Lb00: sub x2, x2, #16 + sub x3, x3, #16 + sub x1, x1, #32 + b Lmid + +Lb10: sub x1, x1, #16 + cbz x17, Lend + + .align 4 +Ltop: bic x6, x12, x0 + bic x7, x13, x0 + ldp x12, x13, [x3,#16] + sbcs x8, x10, x6 + sbcs x9, x11, x7 + ldp x10, x11, [x2,#16] + stp x8, x9, [x1,#16] +Lmid: bic x6, x12, x0 + bic x7, x13, x0 + ldp x12, x13, [x3,#32]! + sbcs x8, x10, x6 + sbcs x9, x11, x7 + ldp x10, x11, [x2,#32]! + stp x8, x9, [x1,#32]! + sub x17, x17, #1 + cbnz x17, Ltop + +Lend: bic x6, x12, x0 + bic x7, x13, x0 + sbcs x8, x10, x6 + sbcs x9, x11, x7 + stp x8, x9, [x1,#16] +Lrt: cset x0, cc + ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/com.s b/vere/ext/gmp/gen/aarch64-macos/mpn/com.s new file mode 100644 index 0000000..5eaf1f4 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/com.s @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_com + +___gmpn_com: + cmp x2, #3 + b.le Lbc + + + tbz x0, #3, Lal2 + ldr x4, [x1],#8 + sub x2, x2, #1 + mvn x4, x4 + str x4, [x0],#8 + +Lal2: ldp x4,x5, [x1],#16 + sub x2, x2, #6 + tbnz x2, #63, Lend + + .align 4 +Ltop: ldp x6,x7, [x1],#32 + mvn x4, x4 + mvn x5, x5 + stp x4,x5, [x0],#32 + ldp x4,x5, [x1,#-16] + mvn x6, x6 + mvn x7, x7 + stp x6,x7, [x0,#-16] + sub x2, x2, #4 + tbz x2, #63, Ltop + +Lend: mvn x4, x4 + mvn x5, x5 + stp x4,x5, [x0],#16 + + + +Lbc: tbz x2, #1, Ltl1 + ldp x4,x5, [x1],#16 + mvn x4, x4 + mvn x5, x5 + stp x4,x5, [x0],#16 +Ltl1: tbz x2, #0, Ltl2 + ldr x4, [x1] + mvn x4, x4 + str x4, [x0] +Ltl2: ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/copyd.s b/vere/ext/gmp/gen/aarch64-macos/mpn/copyd.s new file mode 100644 index 0000000..a3a3af6 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/copyd.s @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_copyd + +___gmpn_copyd: + add x0, x0, x2, lsl #3 + add x1, x1, x2, lsl #3 + + cmp x2, #3 + b.le Lbc + + + tbz x0, #3, Lal2 + ldr x4, [x1,#-8]! + sub x2, x2, #1 + str x4, [x0,#-8]! + +Lal2: ldp x4,x5, [x1,#-16]! + sub x2, x2, #6 + tbnz x2, #63, Lend + + .align 4 +Ltop: ldp x6,x7, [x1,#-16] + stp x4,x5, [x0,#-16] + ldp x4,x5, [x1,#-32]! + stp x6,x7, [x0,#-32]! + sub x2, x2, #4 + tbz x2, #63, Ltop + +Lend: stp x4,x5, [x0,#-16]! + + + +Lbc: tbz x2, #1, Ltl1 + ldp x4,x5, [x1,#-16]! + stp x4,x5, [x0,#-16]! +Ltl1: tbz x2, #0, Ltl2 + ldr x4, [x1,#-8] + str x4, [x0,#-8] +Ltl2: ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/copyi.s b/vere/ext/gmp/gen/aarch64-macos/mpn/copyi.s new file mode 100644 index 0000000..b87f4fc --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/copyi.s @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_copyi + +___gmpn_copyi: + cmp x2, #3 + b.le Lbc + + + tbz x0, #3, Lal2 + ldr x4, [x1],#8 + sub x2, x2, #1 + str x4, [x0],#8 + +Lal2: ldp x4,x5, [x1],#16 + sub x2, x2, #6 + tbnz x2, #63, Lend + + .align 4 +Ltop: ldp x6,x7, [x1],#32 + stp x4,x5, [x0],#32 + ldp x4,x5, [x1,#-16] + stp x6,x7, [x0,#-16] + sub x2, x2, #4 + tbz x2, #63, Ltop + +Lend: stp x4,x5, [x0],#16 + + + +Lbc: tbz x2, #1, Ltl1 + ldp x4,x5, [x1],#16 + stp x4,x5, [x0],#16 +Ltl1: tbz x2, #0, Ltl2 + ldr x4, [x1] + str x4, [x0] +Ltl2: ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/divrem_1.s b/vere/ext/gmp/gen/aarch64-macos/mpn/divrem_1.s new file mode 100644 index 0000000..3d4ca8c --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/divrem_1.s @@ -0,0 +1,235 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_preinv_divrem_1 + +___gmpn_preinv_divrem_1: + cbz x3, Lfz + stp x29, x30, [sp, #-80]! + mov x29, sp + stp x19, x20, [sp, #16] + stp x21, x22, [sp, #32] + stp x23, x24, [sp, #48] + + sub x21, x3, #1 + add x7, x21, x1 + add x20, x2, x21, lsl #3 + add x19, x0, x7, lsl #3 + mov x24, x1 + mov x22, x4 + mov x0, x5 + tbnz x4, #63, Lnentry + mov x23, x6 + b Luentry + + + .text + .align 3 + .globl ___gmpn_divrem_1 + +___gmpn_divrem_1: + cbz x3, Lfz + stp x29, x30, [sp, #-80]! + mov x29, sp + stp x19, x20, [sp, #16] + stp x21, x22, [sp, #32] + stp x23, x24, [sp, #48] + + sub x21, x3, #1 + add x7, x21, x1 + add x20, x2, x21, lsl #3 + add x19, x0, x7, lsl #3 + mov x24, x1 + mov x22, x4 + tbnz x4, #63, Lnormalised + +Lunnorm: + clz x23, x22 + lsl x0, x22, x23 + bl ___gmpn_invert_limb +Luentry: + lsl x22, x22, x23 + ldr x7, [x20], #-8 + sub x8, xzr, x23 + lsr x11, x7, x8 + lsl x1, x7, x23 + cbz x21, Luend + +Lutop:ldr x7, [x20], #-8 + add x2, x11, #1 + mul x10, x11, x0 + umulh x17, x11, x0 + lsr x9, x7, x8 + orr x1, x1, x9 + adds x10, x1, x10 + adc x2, x2, x17 + msub x11, x22, x2, x1 + lsl x1, x7, x23 + cmp x10, x11 + add x14, x11, x22 + csel x11, x14, x11, cc + sbc x2, x2, xzr + cmp x11, x22 + bcs Lufx +Luok: str x2, [x19], #-8 + sub x21, x21, #1 + cbnz x21, Lutop + +Luend:add x2, x11, #1 + mul x10, x11, x0 + umulh x17, x11, x0 + adds x10, x1, x10 + adc x2, x2, x17 + msub x11, x22, x2, x1 + cmp x10, x11 + add x14, x11, x22 + csel x11, x14, x11, cc + sbc x2, x2, xzr + subs x14, x11, x22 + adc x2, x2, xzr + csel x11, x14, x11, cs + str x2, [x19], #-8 + + cbnz x24, Lftop + lsr x0, x11, x23 + ldp x19, x20, [sp, #16] + ldp x21, x22, [sp, #32] + ldp x23, x24, [sp, #48] + ldp x29, x30, [sp], #80 + ret + +Lufx: add x2, x2, #1 + sub x11, x11, x22 + b Luok + + +Lnormalised: + mov x0, x22 + bl ___gmpn_invert_limb +Lnentry: + ldr x7, [x20], #-8 + subs x14, x7, x22 + adc x2, xzr, xzr + csel x11, x14, x7, cs + b Lnok + +Lntop:ldr x1, [x20], #-8 + add x2, x11, #1 + mul x10, x11, x0 + umulh x17, x11, x0 + adds x10, x1, x10 + adc x2, x2, x17 + msub x11, x22, x2, x1 + cmp x10, x11 + add x14, x11, x22 + csel x11, x14, x11, cc + sbc x2, x2, xzr + cmp x11, x22 + bcs Lnfx +Lnok: str x2, [x19], #-8 + sub x21, x21, #1 + tbz x21, #63, Lntop + +Lnend:cbnz x24, Lfrac + mov x0, x11 + ldp x19, x20, [sp, #16] + ldp x21, x22, [sp, #32] + ldp x23, x24, [sp, #48] + ldp x29, x30, [sp], #80 + ret + +Lnfx: add x2, x2, #1 + sub x11, x11, x22 + b Lnok + +Lfrac:mov x23, #0 +Lftop:add x2, x11, #1 + mul x10, x11, x0 + umulh x17, x11, x0 + add x2, x2, x17 + msub x11, x22, x2, xzr + cmp x10, x11 + add x14, x11, x22 + csel x11, x14, x11, cc + sbc x2, x2, xzr + str x2, [x19], #-8 + sub x24, x24, #1 + cbnz x24, Lftop + + lsr x0, x11, x23 + ldp x19, x20, [sp, #16] + ldp x21, x22, [sp, #32] + ldp x23, x24, [sp, #48] + ldp x29, x30, [sp], #80 + ret + + +Lfz: cbz x1, Lzend +Lztop:str xzr, [x0], #8 + sub x1, x1, #1 + cbnz x1, Lztop +Lzend:mov x0, #0 + ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/fib_table.c b/vere/ext/gmp/gen/aarch64-macos/mpn/fib_table.c new file mode 100644 index 0000000..a830475 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/fib_table.c @@ -0,0 +1,107 @@ +/* This file generated by gen-fib.c - DO NOT EDIT. */ + +#include "gmp.h" +#include "gmp-impl.h" + +#if GMP_NUMB_BITS != 64 +Error, error, this data is for 64 bits +#endif + +const mp_limb_t +__gmp_fib_table[FIB_TABLE_LIMIT+2] = { + CNST_LIMB (0x1), /* -1 */ + CNST_LIMB (0x0), /* 0 */ + CNST_LIMB (0x1), /* 1 */ + CNST_LIMB (0x1), /* 2 */ + CNST_LIMB (0x2), /* 3 */ + CNST_LIMB (0x3), /* 4 */ + CNST_LIMB (0x5), /* 5 */ + CNST_LIMB (0x8), /* 6 */ + CNST_LIMB (0xd), /* 7 */ + CNST_LIMB (0x15), /* 8 */ + CNST_LIMB (0x22), /* 9 */ + CNST_LIMB (0x37), /* 10 */ + CNST_LIMB (0x59), /* 11 */ + CNST_LIMB (0x90), /* 12 */ + CNST_LIMB (0xe9), /* 13 */ + CNST_LIMB (0x179), /* 14 */ + CNST_LIMB (0x262), /* 15 */ + CNST_LIMB (0x3db), /* 16 */ + CNST_LIMB (0x63d), /* 17 */ + CNST_LIMB (0xa18), /* 18 */ + CNST_LIMB (0x1055), /* 19 */ + CNST_LIMB (0x1a6d), /* 20 */ + CNST_LIMB (0x2ac2), /* 21 */ + CNST_LIMB (0x452f), /* 22 */ + CNST_LIMB (0x6ff1), /* 23 */ + CNST_LIMB (0xb520), /* 24 */ + CNST_LIMB (0x12511), /* 25 */ + CNST_LIMB (0x1da31), /* 26 */ + CNST_LIMB (0x2ff42), /* 27 */ + CNST_LIMB (0x4d973), /* 28 */ + CNST_LIMB (0x7d8b5), /* 29 */ + CNST_LIMB (0xcb228), /* 30 */ + CNST_LIMB (0x148add), /* 31 */ + CNST_LIMB (0x213d05), /* 32 */ + CNST_LIMB (0x35c7e2), /* 33 */ + CNST_LIMB (0x5704e7), /* 34 */ + CNST_LIMB (0x8cccc9), /* 35 */ + CNST_LIMB (0xe3d1b0), /* 36 */ + CNST_LIMB (0x1709e79), /* 37 */ + CNST_LIMB (0x2547029), /* 38 */ + CNST_LIMB (0x3c50ea2), /* 39 */ + CNST_LIMB (0x6197ecb), /* 40 */ + CNST_LIMB (0x9de8d6d), /* 41 */ + CNST_LIMB (0xff80c38), /* 42 */ + CNST_LIMB (0x19d699a5), /* 43 */ + CNST_LIMB (0x29cea5dd), /* 44 */ + CNST_LIMB (0x43a53f82), /* 45 */ + CNST_LIMB (0x6d73e55f), /* 46 */ + CNST_LIMB (0xb11924e1), /* 47 */ + CNST_LIMB (0x11e8d0a40), /* 48 */ + CNST_LIMB (0x1cfa62f21), /* 49 */ + CNST_LIMB (0x2ee333961), /* 50 */ + CNST_LIMB (0x4bdd96882), /* 51 */ + CNST_LIMB (0x7ac0ca1e3), /* 52 */ + CNST_LIMB (0xc69e60a65), /* 53 */ + CNST_LIMB (0x1415f2ac48), /* 54 */ + CNST_LIMB (0x207fd8b6ad), /* 55 */ + CNST_LIMB (0x3495cb62f5), /* 56 */ + CNST_LIMB (0x5515a419a2), /* 57 */ + CNST_LIMB (0x89ab6f7c97), /* 58 */ + CNST_LIMB (0xdec1139639), /* 59 */ + CNST_LIMB (0x1686c8312d0), /* 60 */ + CNST_LIMB (0x2472d96a909), /* 61 */ + CNST_LIMB (0x3af9a19bbd9), /* 62 */ + CNST_LIMB (0x5f6c7b064e2), /* 63 */ + CNST_LIMB (0x9a661ca20bb), /* 64 */ + CNST_LIMB (0xf9d297a859d), /* 65 */ + CNST_LIMB (0x19438b44a658), /* 66 */ + CNST_LIMB (0x28e0b4bf2bf5), /* 67 */ + CNST_LIMB (0x42244003d24d), /* 68 */ + CNST_LIMB (0x6b04f4c2fe42), /* 69 */ + CNST_LIMB (0xad2934c6d08f), /* 70 */ + CNST_LIMB (0x1182e2989ced1), /* 71 */ + CNST_LIMB (0x1c5575e509f60), /* 72 */ + CNST_LIMB (0x2dd8587da6e31), /* 73 */ + CNST_LIMB (0x4a2dce62b0d91), /* 74 */ + CNST_LIMB (0x780626e057bc2), /* 75 */ + CNST_LIMB (0xc233f54308953), /* 76 */ + CNST_LIMB (0x13a3a1c2360515), /* 77 */ + CNST_LIMB (0x1fc6e116668e68), /* 78 */ + CNST_LIMB (0x336a82d89c937d), /* 79 */ + CNST_LIMB (0x533163ef0321e5), /* 80 */ + CNST_LIMB (0x869be6c79fb562), /* 81 */ + CNST_LIMB (0xd9cd4ab6a2d747), /* 82 */ + CNST_LIMB (0x16069317e428ca9), /* 83 */ + CNST_LIMB (0x23a367c34e563f0), /* 84 */ + CNST_LIMB (0x39a9fadb327f099), /* 85 */ + CNST_LIMB (0x5d4d629e80d5489), /* 86 */ + CNST_LIMB (0x96f75d79b354522), /* 87 */ + CNST_LIMB (0xf444c01834299ab), /* 88 */ + CNST_LIMB (0x18b3c1d91e77decd), /* 89 */ + CNST_LIMB (0x27f80ddaa1ba7878), /* 90 */ + CNST_LIMB (0x40abcfb3c0325745), /* 91 */ + CNST_LIMB (0x68a3dd8e61eccfbd), /* 92 */ + CNST_LIMB (0xa94fad42221f2702), /* 93 */ +}; diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/gcd_11.s b/vere/ext/gmp/gen/aarch64-macos/mpn/gcd_11.s new file mode 100644 index 0000000..a318b2b --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/gcd_11.s @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4 + .text + .align 3 + .globl ___gmpn_gcd_11 + +___gmpn_gcd_11: + subs x3, x0, x1 + b.eq Lend + + .align 4 +Ltop: rbit x12, x3 + clz x12, x12 + csneg x3, x3, x3, cs + csel x0, x1, x0, cs + lsr x1, x3, x12 + subs x3, x0, x1 + b.ne Ltop + +Lend: ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/gcd_22.s b/vere/ext/gmp/gen/aarch64-macos/mpn/gcd_22.s new file mode 100644 index 0000000..ff49970 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/gcd_22.s @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_gcd_22 + +___gmpn_gcd_22: + + .align 4 +Ltop: subs x5, x1, x3 + cbz x5, Llowz + sbcs x6, x0, x2 + + rbit x7, x5 + + cneg x5, x5, cc + cinv x6, x6, cc +Lbck: csel x3, x3, x1, cs + csel x2, x2, x0, cs + + clz x7, x7 + sub x8, xzr, x7 + + lsr x1, x5, x7 + lsl x14, x6, x8 + lsr x0, x6, x7 + orr x1, x1, x14 + + orr x11, x0, x2 + cbnz x11, Ltop + + + subs x4, x1, x3 + b.eq Lend1 + + .align 4 +Ltop1:rbit x12, x4 + clz x12, x12 + csneg x4, x4, x4, cs + csel x1, x3, x1, cs + lsr x3, x4, x12 + subs x4, x1, x3 + b.ne Ltop1 +Lend1:mov x0, x1 + mov x1, #0 + ret + +Llowz: + + + subs x5, x0, x2 + b.eq Lend + mov x6, #0 + rbit x7, x5 + cneg x5, x5, cc + b Lbck + +Lend: mov x0, x3 + mov x1, x2 + ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/hamdist.s b/vere/ext/gmp/gen/aarch64-macos/mpn/hamdist.s new file mode 100644 index 0000000..d492362 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/hamdist.s @@ -0,0 +1,193 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_hamdist + +___gmpn_hamdist: + + mov x11, #0x1fff + cmp x2, x11 + b.hi Lgt8k + +Llt8k: + movi v4.16b, #0 + movi v5.16b, #0 + + tbz x2, #0, Lxx0 + sub x2, x2, #1 + ld1 {v0.1d}, [x0], #8 + ld1 {v16.1d}, [x1], #8 + eor v0.16b, v0.16b, v16.16b + cnt v6.16b, v0.16b + uadalp v4.8h, v6.16b + +Lxx0: tbz x2, #1, Lx00 + sub x2, x2, #2 + ld1 {v0.2d}, [x0], #16 + ld1 {v16.2d}, [x1], #16 + eor v0.16b, v0.16b, v16.16b + cnt v6.16b, v0.16b + uadalp v4.8h, v6.16b + +Lx00: tbz x2, #2, L000 + subs x2, x2, #4 + ld1 {v0.2d,v1.2d}, [x0], #32 + ld1 {v16.2d,v17.2d}, [x1], #32 + b.ls Lsum + +Lgt4: ld1 {v2.2d,v3.2d}, [x0], #32 + ld1 {v18.2d,v19.2d}, [x1], #32 + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + sub x2, x2, #4 + cnt v6.16b, v0.16b + cnt v7.16b, v1.16b + b Lmid + +L000: subs x2, x2, #8 + b.lo Le0 + +Lchu: ld1 {v2.2d,v3.2d}, [x0], #32 + ld1 {v0.2d,v1.2d}, [x0], #32 + ld1 {v18.2d,v19.2d}, [x1], #32 + ld1 {v16.2d,v17.2d}, [x1], #32 + eor v2.16b, v2.16b, v18.16b + eor v3.16b, v3.16b, v19.16b + cnt v6.16b, v2.16b + cnt v7.16b, v3.16b + subs x2, x2, #8 + b.lo Lend + +Ltop: ld1 {v2.2d,v3.2d}, [x0], #32 + ld1 {v18.2d,v19.2d}, [x1], #32 + eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + uadalp v4.8h, v6.16b + cnt v6.16b, v0.16b + uadalp v5.8h, v7.16b + cnt v7.16b, v1.16b +Lmid: ld1 {v0.2d,v1.2d}, [x0], #32 + ld1 {v16.2d,v17.2d}, [x1], #32 + eor v2.16b, v2.16b, v18.16b + eor v3.16b, v3.16b, v19.16b + subs x2, x2, #8 + uadalp v4.8h, v6.16b + cnt v6.16b, v2.16b + uadalp v5.8h, v7.16b + cnt v7.16b, v3.16b + b.hs Ltop + +Lend: uadalp v4.8h, v6.16b + uadalp v5.8h, v7.16b +Lsum: eor v0.16b, v0.16b, v16.16b + eor v1.16b, v1.16b, v17.16b + cnt v6.16b, v0.16b + cnt v7.16b, v1.16b + uadalp v4.8h, v6.16b + uadalp v5.8h, v7.16b + add v4.8h, v4.8h, v5.8h + +Le0: uaddlp v4.4s, v4.8h + uaddlp v4.2d, v4.4s + mov x0, v4.d[0] + mov x1, v4.d[1] + add x0, x0, x1 + ret + + + + +Lgt8k: + mov x8, x30 + mov x7, x2 + mov x4, #0 + mov x9, #0x1ff0*8 + mov x10, #0x1ff0 + +1: add x5, x0, x9 + add x6, x1, x9 + mov x2, #0x1ff0-8 + movi v4.16b, #0 + movi v5.16b, #0 + bl Lchu + add x4, x4, x0 + mov x0, x5 + mov x1, x6 + sub x7, x7, x10 + cmp x7, x11 + b.hi 1b + + mov x2, x7 + bl Llt8k + add x0, x4, x0 + mov x30, x8 + ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/invert_limb.s b/vere/ext/gmp/gen/aarch64-macos/mpn/invert_limb.s new file mode 100644 index 0000000..927ae41 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/invert_limb.s @@ -0,0 +1,347 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_invert_limb + +___gmpn_invert_limb: + lsr x2, x0, #54 + adrp x1, approx_tab@GOTPAGE + and x2, x2, #0x1fe + ldr x1, [x1, approx_tab@GOTPAGEOFF] + ldrh w3, [x1,x2] + lsr x4, x0, #24 + add x4, x4, #1 + ubfiz x2, x3, #11, #16 + umull x3, w3, w3 + mul x3, x3, x4 + sub x2, x2, #1 + sub x2, x2, x3, lsr #40 + lsl x3, x2, #60 + mul x1, x2, x2 + msub x1, x1, x4, x3 + lsl x2, x2, #13 + add x1, x2, x1, lsr #47 + and x2, x0, #1 + neg x3, x2 + and x3, x3, x1, lsr #1 + add x2, x2, x0, lsr #1 + msub x2, x1, x2, x3 + umulh x2, x2, x1 + lsl x1, x1, #31 + add x1, x1, x2, lsr #1 + mul x3, x1, x0 + umulh x2, x1, x0 + adds x4, x3, x0 + adc x0, x2, x0 + sub x0, x1, x0 + ret + + + .section __TEXT,__const + .align 1 + + +approx_tab: + .hword 2045 + .hword 2037 + .hword 2029 + .hword 2021 + .hword 2013 + .hword 2005 + .hword 1998 + .hword 1990 + .hword 1983 + .hword 1975 + .hword 1968 + .hword 1960 + .hword 1953 + .hword 1946 + .hword 1938 + .hword 1931 + .hword 1924 + .hword 1917 + .hword 1910 + .hword 1903 + .hword 1896 + .hword 1889 + .hword 1883 + .hword 1876 + .hword 1869 + .hword 1863 + .hword 1856 + .hword 1849 + .hword 1843 + .hword 1836 + .hword 1830 + .hword 1824 + .hword 1817 + .hword 1811 + .hword 1805 + .hword 1799 + .hword 1792 + .hword 1786 + .hword 1780 + .hword 1774 + .hword 1768 + .hword 1762 + .hword 1756 + .hword 1750 + .hword 1745 + .hword 1739 + .hword 1733 + .hword 1727 + .hword 1722 + .hword 1716 + .hword 1710 + .hword 1705 + .hword 1699 + .hword 1694 + .hword 1688 + .hword 1683 + .hword 1677 + .hword 1672 + .hword 1667 + .hword 1661 + .hword 1656 + .hword 1651 + .hword 1646 + .hword 1641 + .hword 1636 + .hword 1630 + .hword 1625 + .hword 1620 + .hword 1615 + .hword 1610 + .hword 1605 + .hword 1600 + .hword 1596 + .hword 1591 + .hword 1586 + .hword 1581 + .hword 1576 + .hword 1572 + .hword 1567 + .hword 1562 + .hword 1558 + .hword 1553 + .hword 1548 + .hword 1544 + .hword 1539 + .hword 1535 + .hword 1530 + .hword 1526 + .hword 1521 + .hword 1517 + .hword 1513 + .hword 1508 + .hword 1504 + .hword 1500 + .hword 1495 + .hword 1491 + .hword 1487 + .hword 1483 + .hword 1478 + .hword 1474 + .hword 1470 + .hword 1466 + .hword 1462 + .hword 1458 + .hword 1454 + .hword 1450 + .hword 1446 + .hword 1442 + .hword 1438 + .hword 1434 + .hword 1430 + .hword 1426 + .hword 1422 + .hword 1418 + .hword 1414 + .hword 1411 + .hword 1407 + .hword 1403 + .hword 1399 + .hword 1396 + .hword 1392 + .hword 1388 + .hword 1384 + .hword 1381 + .hword 1377 + .hword 1374 + .hword 1370 + .hword 1366 + .hword 1363 + .hword 1359 + .hword 1356 + .hword 1352 + .hword 1349 + .hword 1345 + .hword 1342 + .hword 1338 + .hword 1335 + .hword 1332 + .hword 1328 + .hword 1325 + .hword 1322 + .hword 1318 + .hword 1315 + .hword 1312 + .hword 1308 + .hword 1305 + .hword 1302 + .hword 1299 + .hword 1295 + .hword 1292 + .hword 1289 + .hword 1286 + .hword 1283 + .hword 1280 + .hword 1276 + .hword 1273 + .hword 1270 + .hword 1267 + .hword 1264 + .hword 1261 + .hword 1258 + .hword 1255 + .hword 1252 + .hword 1249 + .hword 1246 + .hword 1243 + .hword 1240 + .hword 1237 + .hword 1234 + .hword 1231 + .hword 1228 + .hword 1226 + .hword 1223 + .hword 1220 + .hword 1217 + .hword 1214 + .hword 1211 + .hword 1209 + .hword 1206 + .hword 1203 + .hword 1200 + .hword 1197 + .hword 1195 + .hword 1192 + .hword 1189 + .hword 1187 + .hword 1184 + .hword 1181 + .hword 1179 + .hword 1176 + .hword 1173 + .hword 1171 + .hword 1168 + .hword 1165 + .hword 1163 + .hword 1160 + .hword 1158 + .hword 1155 + .hword 1153 + .hword 1150 + .hword 1148 + .hword 1145 + .hword 1143 + .hword 1140 + .hword 1138 + .hword 1135 + .hword 1133 + .hword 1130 + .hword 1128 + .hword 1125 + .hword 1123 + .hword 1121 + .hword 1118 + .hword 1116 + .hword 1113 + .hword 1111 + .hword 1109 + .hword 1106 + .hword 1104 + .hword 1102 + .hword 1099 + .hword 1097 + .hword 1095 + .hword 1092 + .hword 1090 + .hword 1088 + .hword 1086 + .hword 1083 + .hword 1081 + .hword 1079 + .hword 1077 + .hword 1074 + .hword 1072 + .hword 1070 + .hword 1068 + .hword 1066 + .hword 1064 + .hword 1061 + .hword 1059 + .hword 1057 + .hword 1055 + .hword 1053 + .hword 1051 + .hword 1049 + .hword 1047 + .hword 1044 + .hword 1042 + .hword 1040 + .hword 1038 + .hword 1036 + .hword 1034 + .hword 1032 + .hword 1030 + .hword 1028 + .hword 1026 + .hword 1024 diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/ior_n.s b/vere/ext/gmp/gen/aarch64-macos/mpn/ior_n.s new file mode 100644 index 0000000..4b4b643 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/ior_n.s @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_ior_n + +___gmpn_ior_n: + lsr x17, x3, #2 + tbz x3, #0, Lbx0 + +Lbx1: ldr x7, [x1] + ldr x11, [x2] + orr x15, x7, x11 + str x15, [x0],#8 + tbnz x3, #1, Lb11 + +Lb01: cbz x17, Lret + ldp x4, x5, [x1,#8] + ldp x8, x9, [x2,#8] + sub x1, x1, #8 + sub x2, x2, #8 + b Lmid + +Lb11: ldp x6, x7, [x1,#8] + ldp x10, x11, [x2,#8] + add x1, x1, #8 + add x2, x2, #8 + cbz x17, Lend + b Ltop + +Lbx0: tbnz x3, #1, Lb10 + +Lb00: ldp x4, x5, [x1],#-16 + ldp x8, x9, [x2],#-16 + b Lmid + +Lb10: ldp x6, x7, [x1] + ldp x10, x11, [x2] + cbz x17, Lend + + .align 4 +Ltop: ldp x4, x5, [x1,#16] + ldp x8, x9, [x2,#16] + orr x12, x6, x10 + orr x13, x7, x11 + stp x12, x13, [x0],#16 +Lmid: ldp x6, x7, [x1,#32]! + ldp x10, x11, [x2,#32]! + orr x12, x4, x8 + orr x13, x5, x9 + stp x12, x13, [x0],#16 + sub x17, x17, #1 + cbnz x17, Ltop + +Lend: orr x12, x6, x10 + orr x13, x7, x11 + stp x12, x13, [x0] +Lret: ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/iorn_n.s b/vere/ext/gmp/gen/aarch64-macos/mpn/iorn_n.s new file mode 100644 index 0000000..73d86e9 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/iorn_n.s @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_iorn_n + +___gmpn_iorn_n: + lsr x17, x3, #2 + tbz x3, #0, Lbx0 + +Lbx1: ldr x7, [x1] + ldr x11, [x2] + orn x15, x7, x11 + str x15, [x0],#8 + tbnz x3, #1, Lb11 + +Lb01: cbz x17, Lret + ldp x4, x5, [x1,#8] + ldp x8, x9, [x2,#8] + sub x1, x1, #8 + sub x2, x2, #8 + b Lmid + +Lb11: ldp x6, x7, [x1,#8] + ldp x10, x11, [x2,#8] + add x1, x1, #8 + add x2, x2, #8 + cbz x17, Lend + b Ltop + +Lbx0: tbnz x3, #1, Lb10 + +Lb00: ldp x4, x5, [x1],#-16 + ldp x8, x9, [x2],#-16 + b Lmid + +Lb10: ldp x6, x7, [x1] + ldp x10, x11, [x2] + cbz x17, Lend + + .align 4 +Ltop: ldp x4, x5, [x1,#16] + ldp x8, x9, [x2,#16] + orn x12, x6, x10 + orn x13, x7, x11 + stp x12, x13, [x0],#16 +Lmid: ldp x6, x7, [x1,#32]! + ldp x10, x11, [x2,#32]! + orn x12, x4, x8 + orn x13, x5, x9 + stp x12, x13, [x0],#16 + sub x17, x17, #1 + cbnz x17, Ltop + +Lend: orn x12, x6, x10 + orn x13, x7, x11 + stp x12, x13, [x0] +Lret: ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/jacobitab.h b/vere/ext/gmp/gen/aarch64-macos/mpn/jacobitab.h new file mode 100644 index 0000000..4bdbfcc --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/jacobitab.h @@ -0,0 +1,13 @@ + 0, 0, 0, 0, 0,12, 8, 4, 1, 1, 1, 1, 1,13, 9, 5, + 2, 2, 2, 2, 2, 6,10,14, 3, 3, 3, 3, 3, 7,11,15, + 4,16, 6,18, 4, 0,12, 8, 5,17, 7,19, 5, 1,13, 9, + 6,18, 4,16, 6,10,14, 2, 7,19, 5,17, 7,11,15, 3, + 8,10, 9,11, 8, 4, 0,12, 9,11, 8,10, 9, 5, 1,13, +10, 9,11, 8,10,14, 2, 6,11, 8,10, 9,11,15, 3, 7, +12,22,24,20,12, 8, 4, 0,13,23,25,21,13, 9, 5, 1, +25,21,13,23,14, 2, 6,10,24,20,12,22,15, 3, 7,11, +16, 6,18, 4,16,16,16,16,17, 7,19, 5,17,17,17,17, +18, 4,16, 6,18,22,19,23,19, 5,17, 7,19,23,18,22, +20,12,22,24,20,20,20,20,21,13,23,25,21,21,21,21, +22,24,20,12,22,19,23,18,23,25,21,13,23,18,22,19, +24,20,12,22,15, 3, 7,11,25,21,13,23,14, 2, 6,10, diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/lshift.s b/vere/ext/gmp/gen/aarch64-macos/mpn/lshift.s new file mode 100644 index 0000000..14e5a71 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/lshift.s @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_lshift + +___gmpn_lshift: + add x16, x0, x2, lsl #3 + add x1, x1, x2, lsl #3 + sub x8, xzr, x3 + lsr x17, x2, #2 + tbz x2, #0, Lbx0 + +Lbx1: ldr x4, [x1,#-8] + tbnz x2, #1, Lb11 + +Lb01: lsr x0, x4, x8 + lsl x2, x4, x3 + cbnz x17, Lgt1 + str x2, [x16,#-8] + ret +Lgt1: ldp x4, x5, [x1,#-24] + sub x1, x1, #8 + add x16, x16, #16 + b Llo2 + +Lb11: lsr x0, x4, x8 + lsl x2, x4, x3 + ldp x6, x7, [x1,#-24]! + b Llo3 + +Lbx0: ldp x4, x5, [x1,#-16] + tbz x2, #1, Lb00 + +Lb10: lsr x0, x5, x8 + lsl x13, x5, x3 + lsr x10, x4, x8 + lsl x2, x4, x3 + cbnz x17, Lgt2 + orr x10, x10, x13 + stp x2, x10, [x16,#-16] + ret +Lgt2: ldp x4, x5, [x1,#-32] + orr x10, x10, x13 + str x10, [x16,#-8] + sub x1, x1, #16 + add x16, x16, #8 + b Llo2 + +Lb00: lsr x0, x5, x8 + lsl x13, x5, x3 + lsr x10, x4, x8 + lsl x2, x4, x3 + ldp x6, x7, [x1,#-32]! + orr x10, x10, x13 + str x10, [x16,#-8]! + b Llo0 + + .align 4 +Ltop: ldp x4, x5, [x1,#-16] + orr x10, x10, x13 + orr x11, x12, x2 + stp x10, x11, [x16,#-16] + lsl x2, x6, x3 +Llo2: lsr x10, x4, x8 + lsl x13, x5, x3 + lsr x12, x5, x8 + ldp x6, x7, [x1,#-32]! + orr x10, x10, x13 + orr x11, x12, x2 + stp x10, x11, [x16,#-32]! + lsl x2, x4, x3 +Llo0: sub x17, x17, #1 +Llo3: lsr x10, x6, x8 + lsl x13, x7, x3 + lsr x12, x7, x8 + cbnz x17, Ltop + +Lend: orr x10, x10, x13 + orr x11, x12, x2 + lsl x2, x6, x3 + stp x10, x11, [x16,#-16] + str x2, [x16,#-24] + ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/lshiftc.s b/vere/ext/gmp/gen/aarch64-macos/mpn/lshiftc.s new file mode 100644 index 0000000..438136f --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/lshiftc.s @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_lshiftc + +___gmpn_lshiftc: + add x16, x0, x2, lsl #3 + add x1, x1, x2, lsl #3 + sub x8, xzr, x3 + lsr x17, x2, #2 + tbz x2, #0, Lbx0 + +Lbx1: ldr x4, [x1,#-8] + tbnz x2, #1, Lb11 + +Lb01: lsr x0, x4, x8 + lsl x2, x4, x3 + cbnz x17, Lgt1 + mvn x2, x2 + str x2, [x16,#-8] + ret +Lgt1: ldp x4, x5, [x1,#-24] + sub x1, x1, #8 + add x16, x16, #16 + b Llo2 + +Lb11: lsr x0, x4, x8 + lsl x2, x4, x3 + ldp x6, x7, [x1,#-24]! + b Llo3 + +Lbx0: ldp x4, x5, [x1,#-16] + tbz x2, #1, Lb00 + +Lb10: lsr x0, x5, x8 + lsl x13, x5, x3 + lsr x10, x4, x8 + lsl x2, x4, x3 + cbnz x17, Lgt2 + eon x10, x10, x13 + mvn x2, x2 + stp x2, x10, [x16,#-16] + ret +Lgt2: ldp x4, x5, [x1,#-32] + eon x10, x10, x13 + str x10, [x16,#-8] + sub x1, x1, #16 + add x16, x16, #8 + b Llo2 + +Lb00: lsr x0, x5, x8 + lsl x13, x5, x3 + lsr x10, x4, x8 + lsl x2, x4, x3 + ldp x6, x7, [x1,#-32]! + eon x10, x10, x13 + str x10, [x16,#-8]! + b Llo0 + + .align 4 +Ltop: ldp x4, x5, [x1,#-16] + eon x10, x10, x13 + eon x11, x12, x2 + stp x10, x11, [x16,#-16] + lsl x2, x6, x3 +Llo2: lsr x10, x4, x8 + lsl x13, x5, x3 + lsr x12, x5, x8 + ldp x6, x7, [x1,#-32]! + eon x10, x10, x13 + eon x11, x12, x2 + stp x10, x11, [x16,#-32]! + lsl x2, x4, x3 +Llo0: sub x17, x17, #1 +Llo3: lsr x10, x6, x8 + lsl x13, x7, x3 + lsr x12, x7, x8 + cbnz x17, Ltop + +Lend: eon x10, x10, x13 + eon x11, x12, x2 + lsl x2, x6, x3 + stp x10, x11, [x16,#-16] + mvn x2, x2 + str x2, [x16,#-24] + ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/mod_34lsub1.s b/vere/ext/gmp/gen/aarch64-macos/mpn/mod_34lsub1.s new file mode 100644 index 0000000..9ba8210 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/mod_34lsub1.s @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 5 + .text + .align 3 + .globl ___gmpn_mod_34lsub1 + +___gmpn_mod_34lsub1: + subs x1, x1, #3 + mov x8, #0 + b.lt Lle2 + + ldp x2, x3, [x0, #0] + ldr x4, [x0, #16] + add x0, x0, #24 + subs x1, x1, #3 + b.lt Lsum + cmn x0, #0 + +Ltop: ldp x5, x6, [x0, #0] + ldr x7, [x0, #16] + add x0, x0, #24 + sub x1, x1, #3 + adcs x2, x2, x5 + adcs x3, x3, x6 + adcs x4, x4, x7 + tbz x1, #63, Ltop + + adc x8, xzr, xzr + +Lsum: cmn x1, #2 + mov x5, #0 + b.lo 1f + ldr x5, [x0], #8 +1: mov x6, #0 + b.ls 1f + ldr x6, [x0], #8 +1: adds x2, x2, x5 + adcs x3, x3, x6 + adcs x4, x4, xzr + adc x8, x8, xzr + +Lsum2: + and x0, x2, #0xffffffffffff + add x0, x0, x2, lsr #48 + add x0, x0, x8 + + lsl x8, x3, #16 + and x1, x8, #0xffffffffffff + add x0, x0, x1 + add x0, x0, x3, lsr #32 + + lsl x8, x4, #32 + and x1, x8, #0xffffffffffff + add x0, x0, x1 + add x0, x0, x4, lsr #16 + ret + +Lle2: cmn x1, #1 + b.ne L1 + ldp x2, x3, [x0] + mov x4, #0 + b Lsum2 +L1: ldr x2, [x0] + and x0, x2, #0xffffffffffff + add x0, x0, x2, lsr #48 + ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/mp_bases.c b/vere/ext/gmp/gen/aarch64-macos/mpn/mp_bases.c new file mode 100644 index 0000000..c72c531 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/mp_bases.c @@ -0,0 +1,268 @@ +/* This file generated by gen-bases.c - DO NOT EDIT. */ + +#include "gmp-impl.h" + +#if GMP_NUMB_BITS != 64 +Error, error, this data is for 64 bits +#endif + +const struct bases mp_bases[257] = +{ + /* 0 */ { 0, 0, 0, 0, 0 }, + /* 1 */ { 0, 0, 0, 0, 0 }, + /* 2 */ { 64, CNST_LIMB(0xffffffffffffffff), CNST_LIMB(0x1fffffffffffffff), CNST_LIMB(0x1), CNST_LIMB(0x0) }, + /* 3 */ { 40, CNST_LIMB(0xa1849cc1a9a9e94e), CNST_LIMB(0x32b803473f7ad0f3), CNST_LIMB(0xa8b8b452291fe821), CNST_LIMB(0x846d550e37b5063d) }, + /* 4 */ { 32, CNST_LIMB(0x7fffffffffffffff), CNST_LIMB(0x3fffffffffffffff), CNST_LIMB(0x2), CNST_LIMB(0x0) }, + /* 5 */ { 27, CNST_LIMB(0x6e40d1a4143dcb94), CNST_LIMB(0x4a4d3c25e68dc57f), CNST_LIMB(0x6765c793fa10079d), CNST_LIMB(0x3ce9a36f23c0fc90) }, + /* 6 */ { 24, CNST_LIMB(0x6308c91b702a7cf4), CNST_LIMB(0x52b803473f7ad0f3), CNST_LIMB(0x41c21cb8e1000000), CNST_LIMB(0xf24f62335024a295) }, + /* 7 */ { 22, CNST_LIMB(0x5b3064eb3aa6d388), CNST_LIMB(0x59d5d9fd5010b366), CNST_LIMB(0x3642798750226111), CNST_LIMB(0x2df495ccaa57147b) }, + /* 8 */ { 21, CNST_LIMB(0x5555555555555555), CNST_LIMB(0x5fffffffffffffff), CNST_LIMB(0x3), CNST_LIMB(0x0) }, + /* 9 */ { 20, CNST_LIMB(0x50c24e60d4d4f4a7), CNST_LIMB(0x6570068e7ef5a1e7), CNST_LIMB(0xa8b8b452291fe821), CNST_LIMB(0x846d550e37b5063d) }, + /* 10 */ { 19, CNST_LIMB(0x4d104d427de7fbcc), CNST_LIMB(0x6a4d3c25e68dc57f), CNST_LIMB(0x8ac7230489e80000), CNST_LIMB(0xd83c94fb6d2ac34a) }, + /* 11 */ { 18, CNST_LIMB(0x4a00270775914e88), CNST_LIMB(0x6eb3a9f01975077f), CNST_LIMB(0x4d28cb56c33fa539), CNST_LIMB(0xa8adf7ae45e7577b) }, + /* 12 */ { 17, CNST_LIMB(0x4768ce0d05818e12), CNST_LIMB(0x72b803473f7ad0f3), CNST_LIMB(0x1eca170c00000000), CNST_LIMB(0xa10c2bec5da8f8f) }, + /* 13 */ { 17, CNST_LIMB(0x452e53e365907bda), CNST_LIMB(0x766a008e4788cbcd), CNST_LIMB(0x780c7372621bd74d), CNST_LIMB(0x10f4becafe412ec3) }, + /* 14 */ { 16, CNST_LIMB(0x433cfffb4b5aae55), CNST_LIMB(0x79d5d9fd5010b366), CNST_LIMB(0x1e39a5057d810000), CNST_LIMB(0xf08480f672b4e86) }, + /* 15 */ { 16, CNST_LIMB(0x41867711b4f85355), CNST_LIMB(0x7d053f6d26089673), CNST_LIMB(0x5b27ac993df97701), CNST_LIMB(0x6779c7f90dc42f48) }, + /* 16 */ { 16, CNST_LIMB(0x3fffffffffffffff), CNST_LIMB(0x7fffffffffffffff), CNST_LIMB(0x4), CNST_LIMB(0x0) }, + /* 17 */ { 15, CNST_LIMB(0x3ea16afd58b10966), CNST_LIMB(0x82cc7edf592262cf), CNST_LIMB(0x27b95e997e21d9f1), CNST_LIMB(0x9c71e11bab279323) }, + /* 18 */ { 15, CNST_LIMB(0x3d64598d154dc4de), CNST_LIMB(0x8570068e7ef5a1e7), CNST_LIMB(0x5da0e1e53c5c8000), CNST_LIMB(0x5dfaa697ec6f6a1c) }, + /* 19 */ { 15, CNST_LIMB(0x3c43c23018bb5563), CNST_LIMB(0x87ef05ae409a0288), CNST_LIMB(0xd2ae3299c1c4aedb), CNST_LIMB(0x3711783f6be7e9ec) }, + /* 20 */ { 14, CNST_LIMB(0x3b3b9a42873069c7), CNST_LIMB(0x8a4d3c25e68dc57f), CNST_LIMB(0x16bcc41e90000000), CNST_LIMB(0x6849b86a12b9b01e) }, + /* 21 */ { 14, CNST_LIMB(0x3a4898f06cf41ac9), CNST_LIMB(0x8c8ddd448f8b845a), CNST_LIMB(0x2d04b7fdd9c0ef49), CNST_LIMB(0x6bf097ba5ca5e239) }, + /* 22 */ { 14, CNST_LIMB(0x39680b13582e7c18), CNST_LIMB(0x8eb3a9f01975077f), CNST_LIMB(0x5658597bcaa24000), CNST_LIMB(0x7b8015c8d7af8f08) }, + /* 23 */ { 14, CNST_LIMB(0x3897b2b751ae561a), CNST_LIMB(0x90c10500d63aa658), CNST_LIMB(0xa0e2073737609371), CNST_LIMB(0x975a24b3a3151b38) }, + /* 24 */ { 13, CNST_LIMB(0x37d5aed131f19c98), CNST_LIMB(0x92b803473f7ad0f3), CNST_LIMB(0xc29e98000000000), CNST_LIMB(0x50bd367972689db1) }, + /* 25 */ { 13, CNST_LIMB(0x372068d20a1ee5ca), CNST_LIMB(0x949a784bcd1b8afe), CNST_LIMB(0x14adf4b7320334b9), CNST_LIMB(0x8c240c4aecb13bb5) }, + /* 26 */ { 13, CNST_LIMB(0x3676867e5d60de29), CNST_LIMB(0x966a008e4788cbcd), CNST_LIMB(0x226ed36478bfa000), CNST_LIMB(0xdbd2e56854e118c9) }, + /* 27 */ { 13, CNST_LIMB(0x35d6deeb388df86f), CNST_LIMB(0x982809d5be7072db), CNST_LIMB(0x383d9170b85ff80b), CNST_LIMB(0x2351ffcaa9c7c4ae) }, + /* 28 */ { 13, CNST_LIMB(0x354071d61c77fa2e), CNST_LIMB(0x99d5d9fd5010b366), CNST_LIMB(0x5a3c23e39c000000), CNST_LIMB(0x6b24188ca33b0636) }, + /* 29 */ { 13, CNST_LIMB(0x34b260c5671b18ac), CNST_LIMB(0x9b74948f5532da4b), CNST_LIMB(0x8e65137388122bcd), CNST_LIMB(0xcc3dceaf2b8ba99d) }, + /* 30 */ { 13, CNST_LIMB(0x342be986572b45cc), CNST_LIMB(0x9d053f6d26089673), CNST_LIMB(0xdd41bb36d259e000), CNST_LIMB(0x2832e835c6c7d6b6) }, + /* 31 */ { 12, CNST_LIMB(0x33ac61b998fbbdf2), CNST_LIMB(0x9e88c6b3626a72aa), CNST_LIMB(0xaee5720ee830681), CNST_LIMB(0x76b6aa272e1873c5) }, + /* 32 */ { 12, CNST_LIMB(0x3333333333333333), CNST_LIMB(0x9fffffffffffffff), CNST_LIMB(0x5), CNST_LIMB(0x0) }, + /* 33 */ { 12, CNST_LIMB(0x32bfd90114c12861), CNST_LIMB(0xa16bad3758efd873), CNST_LIMB(0x172588ad4f5f0981), CNST_LIMB(0x61eaf5d402c7bf4f) }, + /* 34 */ { 12, CNST_LIMB(0x3251dcf6169e45f2), CNST_LIMB(0xa2cc7edf592262cf), CNST_LIMB(0x211e44f7d02c1000), CNST_LIMB(0xeeb658123ffb27ec) }, + /* 35 */ { 12, CNST_LIMB(0x31e8d59f180dc630), CNST_LIMB(0xa4231623369e78e5), CNST_LIMB(0x2ee56725f06e5c71), CNST_LIMB(0x5d5e3762e6fdf509) }, + /* 36 */ { 12, CNST_LIMB(0x3184648db8153e7a), CNST_LIMB(0xa570068e7ef5a1e7), CNST_LIMB(0x41c21cb8e1000000), CNST_LIMB(0xf24f62335024a295) }, + /* 37 */ { 12, CNST_LIMB(0x312434e89c35dacd), CNST_LIMB(0xa6b3d78b6d3b24fb), CNST_LIMB(0x5b5b57f8a98a5dd1), CNST_LIMB(0x66ae7831762efb6f) }, + /* 38 */ { 12, CNST_LIMB(0x30c7fa349460a541), CNST_LIMB(0xa7ef05ae409a0288), CNST_LIMB(0x7dcff8986ea31000), CNST_LIMB(0x47388865a00f544) }, + /* 39 */ { 12, CNST_LIMB(0x306f6f4c8432bc6d), CNST_LIMB(0xa92203d587039cc1), CNST_LIMB(0xabd4211662a6b2a1), CNST_LIMB(0x7d673c33a123b54c) }, + /* 40 */ { 12, CNST_LIMB(0x301a557ffbfdd252), CNST_LIMB(0xaa4d3c25e68dc57f), CNST_LIMB(0xe8d4a51000000000), CNST_LIMB(0x19799812dea11197) }, + /* 41 */ { 11, CNST_LIMB(0x2fc873d1fda55f3b), CNST_LIMB(0xab7110e6ce866f2b), CNST_LIMB(0x7a32956ad081b79), CNST_LIMB(0xc27e62e0686feae) }, + /* 42 */ { 11, CNST_LIMB(0x2f799652a4e6dc49), CNST_LIMB(0xac8ddd448f8b845a), CNST_LIMB(0x9f49aaff0e86800), CNST_LIMB(0x9b6e7507064ce7c7) }, + /* 43 */ { 11, CNST_LIMB(0x2f2d8d8f64460aad), CNST_LIMB(0xada3f5fb9c415052), CNST_LIMB(0xce583bb812d37b3), CNST_LIMB(0x3d9ac2bf66cfed94) }, + /* 44 */ { 11, CNST_LIMB(0x2ee42e164e8f53a4), CNST_LIMB(0xaeb3a9f01975077f), CNST_LIMB(0x109b79a654c00000), CNST_LIMB(0xed46bc50ce59712a) }, + /* 45 */ { 11, CNST_LIMB(0x2e9d500984041dbd), CNST_LIMB(0xafbd42b465836767), CNST_LIMB(0x1543beff214c8b95), CNST_LIMB(0x813d97e2c89b8d46) }, + /* 46 */ { 11, CNST_LIMB(0x2e58cec05a6a8144), CNST_LIMB(0xb0c10500d63aa658), CNST_LIMB(0x1b149a79459a3800), CNST_LIMB(0x2e81751956af8083) }, + /* 47 */ { 11, CNST_LIMB(0x2e1688743ef9104c), CNST_LIMB(0xb1bf311e95d00de3), CNST_LIMB(0x224edfb5434a830f), CNST_LIMB(0xdd8e0a95e30c0988) }, + /* 48 */ { 11, CNST_LIMB(0x2dd65df7a583598f), CNST_LIMB(0xb2b803473f7ad0f3), CNST_LIMB(0x2b3fb00000000000), CNST_LIMB(0x7ad4dd48a0b5b167) }, + /* 49 */ { 11, CNST_LIMB(0x2d9832759d5369c4), CNST_LIMB(0xb3abb3faa02166cc), CNST_LIMB(0x3642798750226111), CNST_LIMB(0x2df495ccaa57147b) }, + /* 50 */ { 11, CNST_LIMB(0x2d5beb38dcd1394c), CNST_LIMB(0xb49a784bcd1b8afe), CNST_LIMB(0x43c33c1937564800), CNST_LIMB(0xe392010175ee5962) }, + /* 51 */ { 11, CNST_LIMB(0x2d216f7943e2ba6a), CNST_LIMB(0xb5848226989d33c3), CNST_LIMB(0x54411b2441c3cd8b), CNST_LIMB(0x84eaf11b2fe7738e) }, + /* 52 */ { 11, CNST_LIMB(0x2ce8a82efbb3ff2c), CNST_LIMB(0xb66a008e4788cbcd), CNST_LIMB(0x6851455acd400000), CNST_LIMB(0x3a1e3971e008995d) }, + /* 53 */ { 11, CNST_LIMB(0x2cb17fea7ad7e332), CNST_LIMB(0xb74b1fd64e0753c6), CNST_LIMB(0x80a23b117c8feb6d), CNST_LIMB(0xfd7a462344ffce25) }, + /* 54 */ { 11, CNST_LIMB(0x2c7be2b0cfa1ba50), CNST_LIMB(0xb82809d5be7072db), CNST_LIMB(0x9dff7d32d5dc1800), CNST_LIMB(0x9eca40b40ebcef8a) }, + /* 55 */ { 11, CNST_LIMB(0x2c47bddba92d7463), CNST_LIMB(0xb900e6160002ccfe), CNST_LIMB(0xc155af6faeffe6a7), CNST_LIMB(0x52fa161a4a48e43d) }, + /* 56 */ { 11, CNST_LIMB(0x2c14fffcaa8b131e), CNST_LIMB(0xb9d5d9fd5010b366), CNST_LIMB(0xebb7392e00000000), CNST_LIMB(0x1607a2cbacf930c1) }, + /* 57 */ { 10, CNST_LIMB(0x2be398c3a38be053), CNST_LIMB(0xbaa708f58014d37c), CNST_LIMB(0x50633659656d971), CNST_LIMB(0x97a014f8e3be55f1) }, + /* 58 */ { 10, CNST_LIMB(0x2bb378e758451068), CNST_LIMB(0xbb74948f5532da4b), CNST_LIMB(0x5fa8624c7fba400), CNST_LIMB(0x568df8b76cbf212c) }, + /* 59 */ { 10, CNST_LIMB(0x2b8492108be5e5f7), CNST_LIMB(0xbc3e9ca2e1a05533), CNST_LIMB(0x717d9faa73c5679), CNST_LIMB(0x20ba7c4b4e6ef492) }, + /* 60 */ { 10, CNST_LIMB(0x2b56d6c70d55481b), CNST_LIMB(0xbd053f6d26089673), CNST_LIMB(0x86430aac6100000), CNST_LIMB(0xe81ee46b9ef492f5) }, + /* 61 */ { 10, CNST_LIMB(0x2b2a3a608c72ddd5), CNST_LIMB(0xbdc899ab3ff56c5e), CNST_LIMB(0x9e64d9944b57f29), CNST_LIMB(0x9dc0d10d51940416) }, + /* 62 */ { 10, CNST_LIMB(0x2afeb0f1060c7e41), CNST_LIMB(0xbe88c6b3626a72aa), CNST_LIMB(0xba5ca5392cb0400), CNST_LIMB(0x5fa8ed2f450272a5) }, + /* 63 */ { 10, CNST_LIMB(0x2ad42f3c9aca595c), CNST_LIMB(0xbf45e08bcf06554e), CNST_LIMB(0xdab2ce1d022cd81), CNST_LIMB(0x2ba9eb8c5e04e641) }, + /* 64 */ { 10, CNST_LIMB(0x2aaaaaaaaaaaaaaa), CNST_LIMB(0xbfffffffffffffff), CNST_LIMB(0x6), CNST_LIMB(0x0) }, + /* 65 */ { 10, CNST_LIMB(0x2a82193a13425883), CNST_LIMB(0xc0b73cb42e16914c), CNST_LIMB(0x12aeed5fd3e2d281), CNST_LIMB(0xb67759cc00287bf1) }, + /* 66 */ { 10, CNST_LIMB(0x2a5a717672f66450), CNST_LIMB(0xc16bad3758efd873), CNST_LIMB(0x15c3da1572d50400), CNST_LIMB(0x78621feeb7f4ed33) }, + /* 67 */ { 10, CNST_LIMB(0x2a33aa6e56d9c71c), CNST_LIMB(0xc21d6713f453f356), CNST_LIMB(0x194c05534f75ee29), CNST_LIMB(0x43d55b5f72943bc0) }, + /* 68 */ { 10, CNST_LIMB(0x2a0dbbaa3bdfcea4), CNST_LIMB(0xc2cc7edf592262cf), CNST_LIMB(0x1d56299ada100000), CNST_LIMB(0x173decb64d1d4409) }, + /* 69 */ { 10, CNST_LIMB(0x29e89d244eb4bfaf), CNST_LIMB(0xc379084815b5774c), CNST_LIMB(0x21f2a089a4ff4f79), CNST_LIMB(0xe29fb54fd6b6074f) }, + /* 70 */ { 10, CNST_LIMB(0x29c44740d7db51e6), CNST_LIMB(0xc4231623369e78e5), CNST_LIMB(0x2733896c68d9a400), CNST_LIMB(0xa1f1f5c210d54e62) }, + /* 71 */ { 10, CNST_LIMB(0x29a0b2c743b14d74), CNST_LIMB(0xc4caba789e2b8687), CNST_LIMB(0x2d2cf2c33b533c71), CNST_LIMB(0x6aac7f9bfafd57b2) }, + /* 72 */ { 10, CNST_LIMB(0x297dd8dbb7c22a2d), CNST_LIMB(0xc570068e7ef5a1e7), CNST_LIMB(0x33f506e440000000), CNST_LIMB(0x3b563c2478b72ee2) }, + /* 73 */ { 10, CNST_LIMB(0x295bb2f9285c8c1b), CNST_LIMB(0xc6130af40bc0ecbf), CNST_LIMB(0x3ba43bec1d062211), CNST_LIMB(0x12b536b574e92d1b) }, + /* 74 */ { 10, CNST_LIMB(0x293a3aebe2be1c92), CNST_LIMB(0xc6b3d78b6d3b24fb), CNST_LIMB(0x4455872d8fd4e400), CNST_LIMB(0xdf86c03020404fa5) }, + /* 75 */ { 10, CNST_LIMB(0x29196acc815ebd9f), CNST_LIMB(0xc7527b930c965bf2), CNST_LIMB(0x4e2694539f2f6c59), CNST_LIMB(0xa34adf02234eea8e) }, + /* 76 */ { 10, CNST_LIMB(0x28f93cfb40f5c22a), CNST_LIMB(0xc7ef05ae409a0288), CNST_LIMB(0x5938006c18900000), CNST_LIMB(0x6f46eb8574eb59dd) }, + /* 77 */ { 10, CNST_LIMB(0x28d9ac1badc64117), CNST_LIMB(0xc88983ed6985bae5), CNST_LIMB(0x65ad9912474aa649), CNST_LIMB(0x42459b481df47cec) }, + /* 78 */ { 10, CNST_LIMB(0x28bab310a196b478), CNST_LIMB(0xc92203d587039cc1), CNST_LIMB(0x73ae9ff4241ec400), CNST_LIMB(0x1b424b95d80ca505) }, + /* 79 */ { 10, CNST_LIMB(0x289c4cf88b774469), CNST_LIMB(0xc9b892675266f66c), CNST_LIMB(0x836612ee9c4ce1e1), CNST_LIMB(0xf2c1b982203a0dac) }, + /* 80 */ { 10, CNST_LIMB(0x287e7529fb244e91), CNST_LIMB(0xca4d3c25e68dc57f), CNST_LIMB(0x9502f90000000000), CNST_LIMB(0xb7cdfd9d7bdbab7d) }, + /* 81 */ { 10, CNST_LIMB(0x286127306a6a7a53), CNST_LIMB(0xcae00d1cfdeb43cf), CNST_LIMB(0xa8b8b452291fe821), CNST_LIMB(0x846d550e37b5063d) }, + /* 82 */ { 10, CNST_LIMB(0x28445ec93f792b1e), CNST_LIMB(0xcb7110e6ce866f2b), CNST_LIMB(0xbebf59a07dab4400), CNST_LIMB(0x57931eeaf85cf64f) }, + /* 83 */ { 10, CNST_LIMB(0x282817e1038950fa), CNST_LIMB(0xcc0052b18b0e2a19), CNST_LIMB(0xd7540d4093bc3109), CNST_LIMB(0x305a944507c82f47) }, + /* 84 */ { 10, CNST_LIMB(0x280c4e90c9ab1f45), CNST_LIMB(0xcc8ddd448f8b845a), CNST_LIMB(0xf2b96616f1900000), CNST_LIMB(0xe007ccc9c22781a) }, + /* 85 */ { 9, CNST_LIMB(0x27f0ff1bc1ee87cd), CNST_LIMB(0xcd19bb053fb0284e), CNST_LIMB(0x336de62af2bca35), CNST_LIMB(0x3e92c42e000eeed4) }, + /* 86 */ { 9, CNST_LIMB(0x27d625ecf571c340), CNST_LIMB(0xcda3f5fb9c415052), CNST_LIMB(0x39235ec33d49600), CNST_LIMB(0x1ebe59130db2795e) }, + /* 87 */ { 9, CNST_LIMB(0x27bbbf95282fcd45), CNST_LIMB(0xce2c97d694adab3f), CNST_LIMB(0x3f674e539585a17), CNST_LIMB(0x268859e90f51b89) }, + /* 88 */ { 9, CNST_LIMB(0x27a1c8c8ddaf84da), CNST_LIMB(0xceb3a9f01975077f), CNST_LIMB(0x4645b6958000000), CNST_LIMB(0xd24cde0463108cfa) }, + /* 89 */ { 9, CNST_LIMB(0x27883e5e7df3f518), CNST_LIMB(0xcf393550f3aa6906), CNST_LIMB(0x4dcb74afbc49c19), CNST_LIMB(0xa536009f37adc383) }, + /* 90 */ { 9, CNST_LIMB(0x276f1d4c9847e90e), CNST_LIMB(0xcfbd42b465836767), CNST_LIMB(0x56064e1d18d9a00), CNST_LIMB(0x7cea06ce1c9ace10) }, + /* 91 */ { 9, CNST_LIMB(0x275662a841b30191), CNST_LIMB(0xd03fda8b97997f33), CNST_LIMB(0x5f04fe2cd8a39fb), CNST_LIMB(0x58db032e72e8ba43) }, + /* 92 */ { 9, CNST_LIMB(0x273e0ba38d15a47b), CNST_LIMB(0xd0c10500d63aa658), CNST_LIMB(0x68d74421f5c0000), CNST_LIMB(0x388cc17cae105447) }, + /* 93 */ { 9, CNST_LIMB(0x2726158c1b13cf03), CNST_LIMB(0xd140c9faa1e5439e), CNST_LIMB(0x738df1f6ab4827d), CNST_LIMB(0x1b92672857620ce0) }, + /* 94 */ { 9, CNST_LIMB(0x270e7dc9c01d8e9b), CNST_LIMB(0xd1bf311e95d00de3), CNST_LIMB(0x7f3afbc9cfb5e00), CNST_LIMB(0x18c6a9575c2ade4) }, + /* 95 */ { 9, CNST_LIMB(0x26f741dd3f070d61), CNST_LIMB(0xd23c41d42727c808), CNST_LIMB(0x8bf187fba88f35f), CNST_LIMB(0xd44da7da8e44b24f) }, + /* 96 */ { 9, CNST_LIMB(0x26e05f5f16c2159e), CNST_LIMB(0xd2b803473f7ad0f3), CNST_LIMB(0x99c600000000000), CNST_LIMB(0xaa2f78f1b4cc6794) }, + /* 97 */ { 9, CNST_LIMB(0x26c9d3fe61e80598), CNST_LIMB(0xd3327c6ab49ca6c8), CNST_LIMB(0xa8ce21eb6531361), CNST_LIMB(0x843c067d091ee4cc) }, + /* 98 */ { 9, CNST_LIMB(0x26b39d7fc6ddab08), CNST_LIMB(0xd3abb3faa02166cc), CNST_LIMB(0xb92112c1a0b6200), CNST_LIMB(0x62005e1e913356e3) }, + /* 99 */ { 9, CNST_LIMB(0x269db9bc7772a5cc), CNST_LIMB(0xd423b07e986aa967), CNST_LIMB(0xcad7718b8747c43), CNST_LIMB(0x4316eed01dedd518) }, + /* 100 */ { 9, CNST_LIMB(0x268826a13ef3fde6), CNST_LIMB(0xd49a784bcd1b8afe), CNST_LIMB(0xde0b6b3a7640000), CNST_LIMB(0x2725dd1d243aba0e) }, + /* 101 */ { 9, CNST_LIMB(0x2672e22d9dbdbd9f), CNST_LIMB(0xd510118708a8f8dd), CNST_LIMB(0xf2d8cf5fe6d74c5), CNST_LIMB(0xddd9057c24cb54f) }, + /* 102 */ { 9, CNST_LIMB(0x265dea72f169cc99), CNST_LIMB(0xd5848226989d33c3), CNST_LIMB(0x1095d25bfa712600), CNST_LIMB(0xedeee175a736d2a1) }, + /* 103 */ { 9, CNST_LIMB(0x26493d93a8cb2514), CNST_LIMB(0xd5f7cff41e09aeb8), CNST_LIMB(0x121b7c4c3698faa7), CNST_LIMB(0xc4699f3df8b6b328) }, + /* 104 */ { 9, CNST_LIMB(0x2634d9c282f3ef82), CNST_LIMB(0xd66a008e4788cbcd), CNST_LIMB(0x13c09e8d68000000), CNST_LIMB(0x9ebbe7d859cb5a7c) }, + /* 105 */ { 9, CNST_LIMB(0x2620bd41d8933adc), CNST_LIMB(0xd6db196a761949d9), CNST_LIMB(0x15876ccb0b709ca9), CNST_LIMB(0x7c828b9887eb2179) }, + /* 106 */ { 9, CNST_LIMB(0x260ce662ef04088a), CNST_LIMB(0xd74b1fd64e0753c6), CNST_LIMB(0x17723c2976da2a00), CNST_LIMB(0x5d652ab99001adcf) }, + /* 107 */ { 9, CNST_LIMB(0x25f95385547353fd), CNST_LIMB(0xd7ba18f93502e409), CNST_LIMB(0x198384e9c259048b), CNST_LIMB(0x4114f1754e5d7b32) }, + /* 108 */ { 9, CNST_LIMB(0x25e60316448db8e1), CNST_LIMB(0xd82809d5be7072db), CNST_LIMB(0x1bbde41dfeec0000), CNST_LIMB(0x274b7c902f7e0188) }, + /* 109 */ { 9, CNST_LIMB(0x25d2f390152f74f5), CNST_LIMB(0xd894f74b06ef8b40), CNST_LIMB(0x1e241d6e3337910d), CNST_LIMB(0xfc9e0fbb32e210c) }, + /* 110 */ { 9, CNST_LIMB(0x25c02379aa9ad043), CNST_LIMB(0xd900e6160002ccfe), CNST_LIMB(0x20b91cee9901ee00), CNST_LIMB(0xf4afa3e594f8ea1f) }, + /* 111 */ { 9, CNST_LIMB(0x25ad9165f2c18907), CNST_LIMB(0xd96bdad2acb5f5ef), CNST_LIMB(0x237ff9079863dfef), CNST_LIMB(0xcd85c32e9e4437b0) }, + /* 112 */ { 9, CNST_LIMB(0x259b3bf36735c90c), CNST_LIMB(0xd9d5d9fd5010b366), CNST_LIMB(0x267bf47000000000), CNST_LIMB(0xa9bbb147e0dd92a8) }, + /* 113 */ { 9, CNST_LIMB(0x258921cb955e7693), CNST_LIMB(0xda3ee7f38e181ed0), CNST_LIMB(0x29b08039fbeda7f1), CNST_LIMB(0x8900447b70e8eb82) }, + /* 114 */ { 9, CNST_LIMB(0x257741a2ac9170af), CNST_LIMB(0xdaa708f58014d37c), CNST_LIMB(0x2d213df34f65f200), CNST_LIMB(0x6b0a92adaad5848a) }, + /* 115 */ { 9, CNST_LIMB(0x25659a3711bc827d), CNST_LIMB(0xdb0e4126bcc86bd7), CNST_LIMB(0x30d201d957a7c2d3), CNST_LIMB(0x4f990ad8740f0ee5) }, + /* 116 */ { 9, CNST_LIMB(0x25542a50f84b9c39), CNST_LIMB(0xdb74948f5532da4b), CNST_LIMB(0x34c6d52160f40000), CNST_LIMB(0x3670a9663a8d3610) }, + /* 117 */ { 9, CNST_LIMB(0x2542f0c20000377d), CNST_LIMB(0xdbda071cc67e6db5), CNST_LIMB(0x3903f855d8f4c755), CNST_LIMB(0x1f5c44188057be3c) }, + /* 118 */ { 9, CNST_LIMB(0x2531ec64d772bd64), CNST_LIMB(0xdc3e9ca2e1a05533), CNST_LIMB(0x3d8de5c8ec59b600), CNST_LIMB(0xa2bea956c4e4977) }, + /* 119 */ { 9, CNST_LIMB(0x25211c1ce2fb5a6e), CNST_LIMB(0xdca258dca9331635), CNST_LIMB(0x4269541d1ff01337), CNST_LIMB(0xed68b23033c3637e) }, + /* 120 */ { 9, CNST_LIMB(0x25107ed5e7c3ec3b), CNST_LIMB(0xdd053f6d26089673), CNST_LIMB(0x479b38e478000000), CNST_LIMB(0xc99cf624e50549c5) }, + /* 121 */ { 9, CNST_LIMB(0x25001383bac8a744), CNST_LIMB(0xdd6753e032ea0efe), CNST_LIMB(0x4d28cb56c33fa539), CNST_LIMB(0xa8adf7ae45e7577b) }, + /* 122 */ { 9, CNST_LIMB(0x24efd921f390bce3), CNST_LIMB(0xddc899ab3ff56c5e), CNST_LIMB(0x5317871fa13aba00), CNST_LIMB(0x8a5bc740b1c113e5) }, + /* 123 */ { 9, CNST_LIMB(0x24dfceb3a26bb203), CNST_LIMB(0xde29142e0e01401f), CNST_LIMB(0x596d2f44de9fa71b), CNST_LIMB(0x6e6c7efb81cfbb9b) }, + /* 124 */ { 9, CNST_LIMB(0x24cff3430a0341a7), CNST_LIMB(0xde88c6b3626a72aa), CNST_LIMB(0x602fd125c47c0000), CNST_LIMB(0x54aba5c5cada5f10) }, + /* 125 */ { 9, CNST_LIMB(0x24c045e15c149931), CNST_LIMB(0xdee7b471b3a9507d), CNST_LIMB(0x6765c793fa10079d), CNST_LIMB(0x3ce9a36f23c0fc90) }, + /* 126 */ { 9, CNST_LIMB(0x24b0c5a679267ae2), CNST_LIMB(0xdf45e08bcf06554e), CNST_LIMB(0x6f15be069b847e00), CNST_LIMB(0x26fb43de2c8cd2a8) }, + /* 127 */ { 9, CNST_LIMB(0x24a171b0b31461c8), CNST_LIMB(0xdfa34e1177c23362), CNST_LIMB(0x7746b3e82a77047f), CNST_LIMB(0x12b94793db8486a1) }, + /* 128 */ { 9, CNST_LIMB(0x2492492492492492), CNST_LIMB(0xdfffffffffffffff), CNST_LIMB(0x7), CNST_LIMB(0x0) }, + /* 129 */ { 9, CNST_LIMB(0x24834b2c9d85cdfe), CNST_LIMB(0xe05bf942dbbc2145), CNST_LIMB(0x894953f7ea890481), CNST_LIMB(0xdd5deca404c0156d) }, + /* 130 */ { 9, CNST_LIMB(0x247476f924137501), CNST_LIMB(0xe0b73cb42e16914c), CNST_LIMB(0x932abffea4848200), CNST_LIMB(0xbd51373330291de0) }, + /* 131 */ { 9, CNST_LIMB(0x2465cbc00a40cec0), CNST_LIMB(0xe111cd1d5133412e), CNST_LIMB(0x9dacb687d3d6a163), CNST_LIMB(0x9fa4025d66f23085) }, + /* 132 */ { 9, CNST_LIMB(0x245748bc980e0427), CNST_LIMB(0xe16bad3758efd873), CNST_LIMB(0xa8d8102a44840000), CNST_LIMB(0x842530ee2db4949d) }, + /* 133 */ { 9, CNST_LIMB(0x2448ed2f49eb0633), CNST_LIMB(0xe1c4dfab90aab5ef), CNST_LIMB(0xb4b60f9d140541e5), CNST_LIMB(0x6aa7f2766b03dc25) }, + /* 134 */ { 9, CNST_LIMB(0x243ab85da36e3167), CNST_LIMB(0xe21d6713f453f356), CNST_LIMB(0xc15065d4856e4600), CNST_LIMB(0x53035ba7ebf32e8d) }, + /* 135 */ { 9, CNST_LIMB(0x242ca99203ea8c18), CNST_LIMB(0xe27545fba4fe385a), CNST_LIMB(0xceb1363f396d23c7), CNST_LIMB(0x3d12091fc9fb4914) }, + /* 136 */ { 9, CNST_LIMB(0x241ec01b7cce4ea0), CNST_LIMB(0xe2cc7edf592262cf), CNST_LIMB(0xdce31b2488000000), CNST_LIMB(0x28b1cb81b1ef1849) }, + /* 137 */ { 9, CNST_LIMB(0x2410fb4da9b3b0fc), CNST_LIMB(0xe323142dc8c66b55), CNST_LIMB(0xebf12a24bca135c9), CNST_LIMB(0x15c35be67ae3e2c9) }, + /* 138 */ { 9, CNST_LIMB(0x24035a808a0f315e), CNST_LIMB(0xe379084815b5774c), CNST_LIMB(0xfbe6f8dbf88f4a00), CNST_LIMB(0x42a17bd09be1ff0) }, + /* 139 */ { 8, CNST_LIMB(0x23f5dd105c67ab9d), CNST_LIMB(0xe3ce5d822ff4b643), CNST_LIMB(0x1ef156c084ce761), CNST_LIMB(0x8bf461f03cf0bbf) }, + /* 140 */ { 8, CNST_LIMB(0x23e8825d7b05abb1), CNST_LIMB(0xe4231623369e78e5), CNST_LIMB(0x20c4e3b94a10000), CNST_LIMB(0xf3fbb43f68a32d05) }, + /* 141 */ { 8, CNST_LIMB(0x23db49cc3a0866fe), CNST_LIMB(0xe4773465d54aded7), CNST_LIMB(0x22b0695a08ba421), CNST_LIMB(0xd84f44c48564dc19) }, + /* 142 */ { 8, CNST_LIMB(0x23ce32c4c6cfb9f5), CNST_LIMB(0xe4caba789e2b8687), CNST_LIMB(0x24b4f35d7a4c100), CNST_LIMB(0xbe58ebcce7956abe) }, + /* 143 */ { 8, CNST_LIMB(0x23c13cb308ab6ab7), CNST_LIMB(0xe51daa7e60fdd34c), CNST_LIMB(0x26d397284975781), CNST_LIMB(0xa5fac463c7c134b7) }, + /* 144 */ { 8, CNST_LIMB(0x23b4670682c0c709), CNST_LIMB(0xe570068e7ef5a1e7), CNST_LIMB(0x290d74100000000), CNST_LIMB(0x8f19241e28c7d757) }, + /* 145 */ { 8, CNST_LIMB(0x23a7b13237187c8b), CNST_LIMB(0xe5c1d0b53bc09fca), CNST_LIMB(0x2b63b3a37866081), CNST_LIMB(0x799a6d046c0ae1ae) }, + /* 146 */ { 8, CNST_LIMB(0x239b1aac8ac74728), CNST_LIMB(0xe6130af40bc0ecbf), CNST_LIMB(0x2dd789f4d894100), CNST_LIMB(0x6566e37d746a9e40) }, + /* 147 */ { 8, CNST_LIMB(0x238ea2ef2b24c379), CNST_LIMB(0xe663b741df9c37c0), CNST_LIMB(0x306a35e51b58721), CNST_LIMB(0x526887dbfb5f788f) }, + /* 148 */ { 8, CNST_LIMB(0x23824976f4045a26), CNST_LIMB(0xe6b3d78b6d3b24fb), CNST_LIMB(0x331d01712e10000), CNST_LIMB(0x408af3382b8efd3d) }, + /* 149 */ { 8, CNST_LIMB(0x23760dc3d6e4d729), CNST_LIMB(0xe7036db376537b90), CNST_LIMB(0x35f14200a827c61), CNST_LIMB(0x2fbb374806ec05f1) }, + /* 150 */ { 8, CNST_LIMB(0x2369ef58c30bd43e), CNST_LIMB(0xe7527b930c965bf2), CNST_LIMB(0x38e858b62216100), CNST_LIMB(0x1fe7c0f0afce87fe) }, + /* 151 */ { 8, CNST_LIMB(0x235dedbb8e82aa1c), CNST_LIMB(0xe7a102f9d39a9331), CNST_LIMB(0x3c03b2c13176a41), CNST_LIMB(0x11003d517540d32e) }, + /* 152 */ { 8, CNST_LIMB(0x23520874dfeb1ffd), CNST_LIMB(0xe7ef05ae409a0288), CNST_LIMB(0x3f44c9b21000000), CNST_LIMB(0x2f5810f98eff0dc) }, + /* 153 */ { 8, CNST_LIMB(0x23463f1019228dd7), CNST_LIMB(0xe83c856dd81804b7), CNST_LIMB(0x42ad23cef3113c1), CNST_LIMB(0xeb72e35e7840d910) }, + /* 154 */ { 8, CNST_LIMB(0x233a911b42aa9b3c), CNST_LIMB(0xe88983ed6985bae5), CNST_LIMB(0x463e546b19a2100), CNST_LIMB(0xd27de19593dc3614) }, + /* 155 */ { 8, CNST_LIMB(0x232efe26f7cf33f9), CNST_LIMB(0xe8d602d948f83829), CNST_LIMB(0x49f9fc3f96684e1), CNST_LIMB(0xbaf391fd3e5e6fc2) }, + /* 156 */ { 8, CNST_LIMB(0x232385c65381b485), CNST_LIMB(0xe92203d587039cc1), CNST_LIMB(0x4de1c9c5dc10000), CNST_LIMB(0xa4bd38c55228c81d) }, + /* 157 */ { 8, CNST_LIMB(0x2318278edde1b39b), CNST_LIMB(0xe96d887e26cd57b7), CNST_LIMB(0x51f77994116d2a1), CNST_LIMB(0x8fc5a8de8e1de782) }, + /* 158 */ { 8, CNST_LIMB(0x230ce3187a6c2be9), CNST_LIMB(0xe9b892675266f66c), CNST_LIMB(0x563cd6bb3398100), CNST_LIMB(0x7bf9265bea9d3a3b) }, + /* 159 */ { 8, CNST_LIMB(0x2301b7fd56ca21bb), CNST_LIMB(0xea03231d8d8224ba), CNST_LIMB(0x5ab3bb270beeb01), CNST_LIMB(0x69454b325983dccd) }, + /* 160 */ { 8, CNST_LIMB(0x22f6a5d9da38341c), CNST_LIMB(0xea4d3c25e68dc57f), CNST_LIMB(0x5f5e10000000000), CNST_LIMB(0x5798ee2308c39df9) }, + /* 161 */ { 8, CNST_LIMB(0x22ebac4c9580d89f), CNST_LIMB(0xea96defe264b59be), CNST_LIMB(0x643dce0ec16f501), CNST_LIMB(0x46e40ba0fa66a753) }, + /* 162 */ { 8, CNST_LIMB(0x22e0caf633834beb), CNST_LIMB(0xeae00d1cfdeb43cf), CNST_LIMB(0x6954fe21e3e8100), CNST_LIMB(0x3717b0870b0db3a7) }, + /* 163 */ { 8, CNST_LIMB(0x22d601796a418886), CNST_LIMB(0xeb28c7f233bdd372), CNST_LIMB(0x6ea5b9755f440a1), CNST_LIMB(0x2825e6775d11cdeb) }, + /* 164 */ { 8, CNST_LIMB(0x22cb4f7aec6fd8b4), CNST_LIMB(0xeb7110e6ce866f2b), CNST_LIMB(0x74322a1c0410000), CNST_LIMB(0x1a01a1c09d1b4dac) }, + /* 165 */ { 8, CNST_LIMB(0x22c0b4a15b80d83e), CNST_LIMB(0xebb8e95d3f7d9df2), CNST_LIMB(0x79fc8b6ae8a46e1), CNST_LIMB(0xc9eb0a8bebc8f3e) }, + /* 166 */ { 8, CNST_LIMB(0x22b630953a28f77a), CNST_LIMB(0xec0052b18b0e2a19), CNST_LIMB(0x80072a66d512100), CNST_LIMB(0xffe357ff59e6a004) }, + /* 167 */ { 8, CNST_LIMB(0x22abc300df54ca7c), CNST_LIMB(0xec474e39705912d2), CNST_LIMB(0x86546633b42b9c1), CNST_LIMB(0xe7dfd1be05fa61a8) }, + /* 168 */ { 8, CNST_LIMB(0x22a16b90698da5d2), CNST_LIMB(0xec8ddd448f8b845a), CNST_LIMB(0x8ce6b0861000000), CNST_LIMB(0xd11ed6fc78f760e5) }, + /* 169 */ { 8, CNST_LIMB(0x229729f1b2c83ded), CNST_LIMB(0xecd4011c8f11979a), CNST_LIMB(0x93c08e16a022441), CNST_LIMB(0xbb8db609dd29ebfe) }, + /* 170 */ { 8, CNST_LIMB(0x228cfdd444992f78), CNST_LIMB(0xed19bb053fb0284e), CNST_LIMB(0x9ae49717f026100), CNST_LIMB(0xa71aec8d1813d532) }, + /* 171 */ { 8, CNST_LIMB(0x2282e6e94ccb8588), CNST_LIMB(0xed5f0c3cbf8fa470), CNST_LIMB(0xa25577ae24c1a61), CNST_LIMB(0x93b612a9f20fbc02) }, + /* 172 */ { 8, CNST_LIMB(0x2278e4e392557ecf), CNST_LIMB(0xeda3f5fb9c415052), CNST_LIMB(0xaa15f068e610000), CNST_LIMB(0x814fc7b19a67d317) }, + /* 173 */ { 8, CNST_LIMB(0x226ef7776aa7fd29), CNST_LIMB(0xede87974f3c81855), CNST_LIMB(0xb228d6bf7577921), CNST_LIMB(0x6fd9a03f2e0a4b7c) }, + /* 174 */ { 8, CNST_LIMB(0x22651e5aaf5532d0), CNST_LIMB(0xee2c97d694adab3f), CNST_LIMB(0xba91158ef5c4100), CNST_LIMB(0x5f4615a38d0d316e) }, + /* 175 */ { 8, CNST_LIMB(0x225b5944b40b4694), CNST_LIMB(0xee7052491d2c3e64), CNST_LIMB(0xc351ad9aec0b681), CNST_LIMB(0x4f8876863479a286) }, + /* 176 */ { 8, CNST_LIMB(0x2251a7ee3cdfcca5), CNST_LIMB(0xeeb3a9f01975077f), CNST_LIMB(0xcc6db6100000000), CNST_LIMB(0x4094d8a3041b60eb) }, + /* 177 */ { 8, CNST_LIMB(0x22480a1174e913d9), CNST_LIMB(0xeef69fea211b2627), CNST_LIMB(0xd5e85d09025c181), CNST_LIMB(0x32600b8ed883a09b) }, + /* 178 */ { 8, CNST_LIMB(0x223e7f69e522683c), CNST_LIMB(0xef393550f3aa6906), CNST_LIMB(0xdfc4e816401c100), CNST_LIMB(0x24df8c6eb4b6d1f1) }, + /* 179 */ { 8, CNST_LIMB(0x223507b46b988abe), CNST_LIMB(0xef7b6b399471103e), CNST_LIMB(0xea06b4c72947221), CNST_LIMB(0x18097a8ee151acef) }, + /* 180 */ { 8, CNST_LIMB(0x222ba2af32dbbb9e), CNST_LIMB(0xefbd42b465836767), CNST_LIMB(0xf4b139365210000), CNST_LIMB(0xbd48cc8ec1cd8e3) }, + /* 181 */ { 8, CNST_LIMB(0x22225019a9b4d16c), CNST_LIMB(0xeffebccd41ffcd5c), CNST_LIMB(0xffc80497d520961), CNST_LIMB(0x3807a8d67485fb) }, + /* 182 */ { 8, CNST_LIMB(0x22190fb47b1af172), CNST_LIMB(0xf03fda8b97997f33), CNST_LIMB(0x10b4ebfca1dee100), CNST_LIMB(0xea5768860b62e8d8) }, + /* 183 */ { 8, CNST_LIMB(0x220fe14186679801), CNST_LIMB(0xf0809cf27f703d52), CNST_LIMB(0x117492de921fc141), CNST_LIMB(0xd54faf5b635c5005) }, + /* 184 */ { 8, CNST_LIMB(0x2206c483d7c6b786), CNST_LIMB(0xf0c10500d63aa658), CNST_LIMB(0x123bb2ce41000000), CNST_LIMB(0xc14a56233a377926) }, + /* 185 */ { 8, CNST_LIMB(0x21fdb93fa0e0ccc5), CNST_LIMB(0xf10113b153c8ea7b), CNST_LIMB(0x130a8b6157bdecc1), CNST_LIMB(0xae39a88db7cd329f) }, + /* 186 */ { 8, CNST_LIMB(0x21f4bf3a31bcdcaa), CNST_LIMB(0xf140c9faa1e5439e), CNST_LIMB(0x13e15dede0e8a100), CNST_LIMB(0x9c10bde69efa7ab6) }, + /* 187 */ { 8, CNST_LIMB(0x21ebd639f1d86584), CNST_LIMB(0xf18028cf72976a4e), CNST_LIMB(0x14c06d941c0ca7e1), CNST_LIMB(0x8ac36c42a2836497) }, + /* 188 */ { 8, CNST_LIMB(0x21e2fe06597361a6), CNST_LIMB(0xf1bf311e95d00de3), CNST_LIMB(0x15a7ff487a810000), CNST_LIMB(0x7a463c8b84f5ef67) }, + /* 189 */ { 8, CNST_LIMB(0x21da3667eb0e8ccb), CNST_LIMB(0xf1fde3d30e812642), CNST_LIMB(0x169859ddc5c697a1), CNST_LIMB(0x6a8e5f5ad090fd4b) }, + /* 190 */ { 8, CNST_LIMB(0x21d17f282d1a300e), CNST_LIMB(0xf23c41d42727c808), CNST_LIMB(0x1791c60f6fed0100), CNST_LIMB(0x5b91a2943596fc56) }, + /* 191 */ { 8, CNST_LIMB(0x21c8d811a3d3c9e1), CNST_LIMB(0xf27a4c0585cbf805), CNST_LIMB(0x18948e8c0e6fba01), CNST_LIMB(0x4d4667b1c468e8f0) }, + /* 192 */ { 8, CNST_LIMB(0x21c040efcb50f858), CNST_LIMB(0xf2b803473f7ad0f3), CNST_LIMB(0x19a1000000000000), CNST_LIMB(0x3fa39ab547994daf) }, + /* 193 */ { 8, CNST_LIMB(0x21b7b98f11b61c1a), CNST_LIMB(0xf2f56875eb3f2614), CNST_LIMB(0x1ab769203dafc601), CNST_LIMB(0x32a0a9b2faee1e2a) }, + /* 194 */ { 8, CNST_LIMB(0x21af41bcd19739ba), CNST_LIMB(0xf3327c6ab49ca6c8), CNST_LIMB(0x1bd81ab557f30100), CNST_LIMB(0x26357ceac0e96962) }, + /* 195 */ { 8, CNST_LIMB(0x21a6d9474c81adf0), CNST_LIMB(0xf36f3ffb6d916240), CNST_LIMB(0x1d0367a69fed1ba1), CNST_LIMB(0x1a5a6f65caa5859e) }, + /* 196 */ { 8, CNST_LIMB(0x219e7ffda5ad572a), CNST_LIMB(0xf3abb3faa02166cc), CNST_LIMB(0x1e39a5057d810000), CNST_LIMB(0xf08480f672b4e86) }, + /* 197 */ { 8, CNST_LIMB(0x219635afdcd3e46d), CNST_LIMB(0xf3e7d9379f70166a), CNST_LIMB(0x1f7b2a18f29ac3e1), CNST_LIMB(0x4383340615612ca) }, + /* 198 */ { 8, CNST_LIMB(0x218dfa2ec92d0643), CNST_LIMB(0xf423b07e986aa967), CNST_LIMB(0x20c850694c2aa100), CNST_LIMB(0xf3c77969ee4be5a2) }, + /* 199 */ { 8, CNST_LIMB(0x2185cd4c148e4ae2), CNST_LIMB(0xf45f3a98a20738a4), CNST_LIMB(0x222173cc014980c1), CNST_LIMB(0xe00993cc187c5ec9) }, + /* 200 */ { 8, CNST_LIMB(0x217daeda36ad7a5c), CNST_LIMB(0xf49a784bcd1b8afe), CNST_LIMB(0x2386f26fc1000000), CNST_LIMB(0xcd2b297d889bc2b6) }, + /* 201 */ { 8, CNST_LIMB(0x21759eac708452fe), CNST_LIMB(0xf4d56a5b33cec44a), CNST_LIMB(0x24f92ce8af296d41), CNST_LIMB(0xbb214d5064862b22) }, + /* 202 */ { 8, CNST_LIMB(0x216d9c96c7d490d4), CNST_LIMB(0xf510118708a8f8dd), CNST_LIMB(0x2678863cd0ece100), CNST_LIMB(0xa9e1a7ca7ea10e20) }, + /* 203 */ { 8, CNST_LIMB(0x2165a86e02cb358c), CNST_LIMB(0xf54a6e8ca5438db1), CNST_LIMB(0x280563f0a9472d61), CNST_LIMB(0x99626e72b39ea0cf) }, + /* 204 */ { 8, CNST_LIMB(0x215dc207a3c20fdf), CNST_LIMB(0xf5848226989d33c3), CNST_LIMB(0x29a02e1406210000), CNST_LIMB(0x899a5ba9c13fafd9) }, + /* 205 */ { 8, CNST_LIMB(0x2155e939e51e8b37), CNST_LIMB(0xf5be4d0cb51434aa), CNST_LIMB(0x2b494f4efe6d2e21), CNST_LIMB(0x7a80a705391e96ff) }, + /* 206 */ { 8, CNST_LIMB(0x214e1ddbb54cd933), CNST_LIMB(0xf5f7cff41e09aeb8), CNST_LIMB(0x2d0134ef21cbc100), CNST_LIMB(0x6c0cfe23de23042a) }, + /* 207 */ { 8, CNST_LIMB(0x21465fc4b2d68f98), CNST_LIMB(0xf6310b8f55304840), CNST_LIMB(0x2ec84ef4da2ef581), CNST_LIMB(0x5e377df359c944dd) }, + /* 208 */ { 8, CNST_LIMB(0x213eaecd2893dd60), CNST_LIMB(0xf66a008e4788cbcd), CNST_LIMB(0x309f102100000000), CNST_LIMB(0x50f8ac5fc8f53985) }, + /* 209 */ { 8, CNST_LIMB(0x21370ace09f681c6), CNST_LIMB(0xf6a2af9e5a0f0a08), CNST_LIMB(0x3285ee02a1420281), CNST_LIMB(0x44497266278e35b7) }, + /* 210 */ { 8, CNST_LIMB(0x212f73a0ef6db7cb), CNST_LIMB(0xf6db196a761949d9), CNST_LIMB(0x347d6104fc324100), CNST_LIMB(0x382316831f7ee175) }, + /* 211 */ { 8, CNST_LIMB(0x2127e92012e25004), CNST_LIMB(0xf7133e9b156c7be5), CNST_LIMB(0x3685e47dade53d21), CNST_LIMB(0x2c7f377833b8946e) }, + /* 212 */ { 8, CNST_LIMB(0x21206b264c4a39a7), CNST_LIMB(0xf74b1fd64e0753c6), CNST_LIMB(0x389ff6bb15610000), CNST_LIMB(0x2157c761ab4163ef) }, + /* 213 */ { 8, CNST_LIMB(0x2118f98f0e52c28f), CNST_LIMB(0xf782bdbfdda6577b), CNST_LIMB(0x3acc1912ebb57661), CNST_LIMB(0x16a7071803cc49a9) }, + /* 214 */ { 8, CNST_LIMB(0x211194366320dc66), CNST_LIMB(0xf7ba18f93502e409), CNST_LIMB(0x3d0acff111946100), CNST_LIMB(0xc6781d80f8224fc) }, + /* 215 */ { 8, CNST_LIMB(0x210a3af8e926bb78), CNST_LIMB(0xf7f1322182cf15d1), CNST_LIMB(0x3f5ca2e692eaf841), CNST_LIMB(0x294092d370a900b) }, + /* 216 */ { 8, CNST_LIMB(0x2102edb3d00e29a6), CNST_LIMB(0xf82809d5be7072db), CNST_LIMB(0x41c21cb8e1000000), CNST_LIMB(0xf24f62335024a295) }, + /* 217 */ { 8, CNST_LIMB(0x20fbac44d5b6edc2), CNST_LIMB(0xf85ea0b0b27b2610), CNST_LIMB(0x443bcb714399a5c1), CNST_LIMB(0xe03b98f103fad6d2) }, + /* 218 */ { 8, CNST_LIMB(0x20f4768a4348ad08), CNST_LIMB(0xf894f74b06ef8b40), CNST_LIMB(0x46ca406c81af2100), CNST_LIMB(0xcee3d32cad2a9049) }, + /* 219 */ { 8, CNST_LIMB(0x20ed4c62ea57b1f0), CNST_LIMB(0xf8cb0e3b4b3bbdb3), CNST_LIMB(0x496e106ac22aaae1), CNST_LIMB(0xbe3f9df9277fdada) }, + /* 220 */ { 8, CNST_LIMB(0x20e62dae221c087a), CNST_LIMB(0xf900e6160002ccfe), CNST_LIMB(0x4c27d39fa5410000), CNST_LIMB(0xae46f0d94c05e933) }, + /* 221 */ { 8, CNST_LIMB(0x20df1a4bc4ba6525), CNST_LIMB(0xf9367f6da0ab2e9c), CNST_LIMB(0x4ef825c296e43ca1), CNST_LIMB(0x9ef2280fb437a33d) }, + /* 222 */ { 8, CNST_LIMB(0x20d8121c2c9e506e), CNST_LIMB(0xf96bdad2acb5f5ef), CNST_LIMB(0x51dfa61f5ad88100), CNST_LIMB(0x9039ff426d3f284b) }, + /* 223 */ { 8, CNST_LIMB(0x20d1150031e51549), CNST_LIMB(0xf9a0f8d3b0e04fde), CNST_LIMB(0x54def7a6d2f16901), CNST_LIMB(0x82178c6d6b51f8f4) }, + /* 224 */ { 8, CNST_LIMB(0x20ca22d927d8f54d), CNST_LIMB(0xf9d5d9fd5010b366), CNST_LIMB(0x57f6c10000000000), CNST_LIMB(0x74843b1ee4c1e053) }, + /* 225 */ { 8, CNST_LIMB(0x20c33b88da7c29aa), CNST_LIMB(0xfa0a7eda4c112ce6), CNST_LIMB(0x5b27ac993df97701), CNST_LIMB(0x6779c7f90dc42f48) }, + /* 226 */ { 8, CNST_LIMB(0x20bc5ef18c233bdf), CNST_LIMB(0xfa3ee7f38e181ed0), CNST_LIMB(0x5e7268b9bbdf8100), CNST_LIMB(0x5af23c74f9ad9fe9) }, + /* 227 */ { 8, CNST_LIMB(0x20b58cf5f31e4526), CNST_LIMB(0xfa7315d02f20c7bd), CNST_LIMB(0x61d7a7932ff3d6a1), CNST_LIMB(0x4ee7eae2acdc617e) }, + /* 228 */ { 8, CNST_LIMB(0x20aec5793770a74d), CNST_LIMB(0xfaa708f58014d37c), CNST_LIMB(0x65581f53c8c10000), CNST_LIMB(0x43556aa2ac262a0b) }, + /* 229 */ { 8, CNST_LIMB(0x20a8085ef096d530), CNST_LIMB(0xfadac1e711c832d1), CNST_LIMB(0x68f48a385b8320e1), CNST_LIMB(0x3835949593b8ddd1) }, + /* 230 */ { 8, CNST_LIMB(0x20a1558b2359c4b1), CNST_LIMB(0xfb0e4126bcc86bd7), CNST_LIMB(0x6cada69ed07c2100), CNST_LIMB(0x2d837fbe78458762) }, + /* 231 */ { 8, CNST_LIMB(0x209aace23fafa72e), CNST_LIMB(0xfb418734a9008bd9), CNST_LIMB(0x70843718cdbf27c1), CNST_LIMB(0x233a7e150a54a555) }, + /* 232 */ { 8, CNST_LIMB(0x20940e491ea988d7), CNST_LIMB(0xfb74948f5532da4b), CNST_LIMB(0x7479027ea1000000), CNST_LIMB(0x19561984a50ff8fe) }, + /* 233 */ { 8, CNST_LIMB(0x208d79a5006d7a47), CNST_LIMB(0xfba769b39e49640e), CNST_LIMB(0x788cd40268f39641), CNST_LIMB(0xfd211159fe3490f) }, + /* 234 */ { 8, CNST_LIMB(0x2086eedb8a3cead3), CNST_LIMB(0xfbda071cc67e6db5), CNST_LIMB(0x7cc07b437ecf6100), CNST_LIMB(0x6aa563e655033e3) }, + /* 235 */ { 8, CNST_LIMB(0x20806dd2c486dcc6), CNST_LIMB(0xfc0c6d447c5dd362), CNST_LIMB(0x8114cc6220762061), CNST_LIMB(0xfbb614b3f2d3b14c) }, + /* 236 */ { 8, CNST_LIMB(0x2079f67119059fae), CNST_LIMB(0xfc3e9ca2e1a05533), CNST_LIMB(0x858aa0135be10000), CNST_LIMB(0xeac0f8837fb05773) }, + /* 237 */ { 8, CNST_LIMB(0x2073889d50e7bf63), CNST_LIMB(0xfc7095ae91e1c760), CNST_LIMB(0x8a22d3b53c54c321), CNST_LIMB(0xda6e4c10e8615ca5) }, + /* 238 */ { 8, CNST_LIMB(0x206d243e9303d929), CNST_LIMB(0xfca258dca9331635), CNST_LIMB(0x8ede496339f34100), CNST_LIMB(0xcab755a8d01fa67f) }, + /* 239 */ { 8, CNST_LIMB(0x2066c93c62170aa8), CNST_LIMB(0xfcd3e6a0ca8906c2), CNST_LIMB(0x93bde80aec3a1481), CNST_LIMB(0xbb95a9ae71aa3e0c) }, + /* 240 */ { 8, CNST_LIMB(0x2060777e9b0db0f6), CNST_LIMB(0xfd053f6d26089673), CNST_LIMB(0x98c29b8100000000), CNST_LIMB(0xad0326c296b4f529) }, + /* 241 */ { 8, CNST_LIMB(0x205a2eed73563032), CNST_LIMB(0xfd3663b27f31d529), CNST_LIMB(0x9ded549671832381), CNST_LIMB(0x9ef9f21eed31b7c1) }, + /* 242 */ { 8, CNST_LIMB(0x2053ef71773d7e6a), CNST_LIMB(0xfd6753e032ea0efe), CNST_LIMB(0xa33f092e0b1ac100), CNST_LIMB(0x91747422be14b0b2) }, + /* 243 */ { 8, CNST_LIMB(0x204db8f388552ea9), CNST_LIMB(0xfd9810643d6614c3), CNST_LIMB(0xa8b8b452291fe821), CNST_LIMB(0x846d550e37b5063d) }, + /* 244 */ { 8, CNST_LIMB(0x20478b5cdbe2bb2f), CNST_LIMB(0xfdc899ab3ff56c5e), CNST_LIMB(0xae5b564ac3a10000), CNST_LIMB(0x77df79e9a96c06f6) }, + /* 245 */ { 8, CNST_LIMB(0x20416696f957cfbf), CNST_LIMB(0xfdf8f02086af2c4b), CNST_LIMB(0xb427f4b3be74c361), CNST_LIMB(0x6bc6019636c7d0c2) }, + /* 246 */ { 8, CNST_LIMB(0x203b4a8bb8d356e7), CNST_LIMB(0xfe29142e0e01401f), CNST_LIMB(0xba1f9a938041e100), CNST_LIMB(0x601c4205aebd9e47) }, + /* 247 */ { 8, CNST_LIMB(0x2035372541ab0f0d), CNST_LIMB(0xfe59063c8822ce56), CNST_LIMB(0xc0435871d1110f41), CNST_LIMB(0x54ddc59756f05016) }, + /* 248 */ { 8, CNST_LIMB(0x202f2c4e08fd6dcc), CNST_LIMB(0xfe88c6b3626a72aa), CNST_LIMB(0xc694446f01000000), CNST_LIMB(0x4a0648979c838c18) }, + /* 249 */ { 8, CNST_LIMB(0x202929f0d04b99e9), CNST_LIMB(0xfeb855f8ca88fb0d), CNST_LIMB(0xcd137a5b57ac3ec1), CNST_LIMB(0x3f91b6e0bb3a053d) }, + /* 250 */ { 8, CNST_LIMB(0x20232ff8a41b45eb), CNST_LIMB(0xfee7b471b3a9507d), CNST_LIMB(0xd3c21bcecceda100), CNST_LIMB(0x357c299a88ea76a5) }, + /* 251 */ { 8, CNST_LIMB(0x201d3e50daa036db), CNST_LIMB(0xff16e281db76303b), CNST_LIMB(0xdaa150410b788de1), CNST_LIMB(0x2bc1e517aecc56e3) }, + /* 252 */ { 8, CNST_LIMB(0x201754e5126d446d), CNST_LIMB(0xff45e08bcf06554e), CNST_LIMB(0xe1b24521be010000), CNST_LIMB(0x225f56ceb3da9f5d) }, + /* 253 */ { 8, CNST_LIMB(0x201173a1312ca135), CNST_LIMB(0xff74aef0efafadd7), CNST_LIMB(0xe8f62df12777c1a1), CNST_LIMB(0x1951136d53ad63ac) }, + /* 254 */ { 8, CNST_LIMB(0x200b9a71625f3b13), CNST_LIMB(0xffa34e1177c23362), CNST_LIMB(0xf06e445906fc0100), CNST_LIMB(0x1093d504b3cd7d93) }, + /* 255 */ { 8, CNST_LIMB(0x2005c94216230568), CNST_LIMB(0xffd1be4c7f2af942), CNST_LIMB(0xf81bc845c81bf801), CNST_LIMB(0x824794d1ec1814f) }, + /* 256 */ { 8, CNST_LIMB(0x1fffffffffffffff), CNST_LIMB(0xffffffffffffffff), CNST_LIMB(0x8), CNST_LIMB(0x0) }, +}; diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/mul_1.s b/vere/ext/gmp/gen/aarch64-macos/mpn/mul_1.s new file mode 100644 index 0000000..7858152 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/mul_1.s @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_mul_1c + +___gmpn_mul_1c: + adds xzr, xzr, xzr + b Lcom + + + .text + .align 3 + .globl ___gmpn_mul_1 + +___gmpn_mul_1: + adds x4, xzr, xzr +Lcom: lsr x17, x2, #2 + tbnz x2, #0, Lbx1 + +Lbx0: mov x11, x4 + tbz x2, #1, Lb00 + +Lb10: ldp x4, x5, [x1] + mul x8, x4, x3 + umulh x10, x4, x3 + cbz x17, L2 + ldp x6, x7, [x1,#16]! + mul x9, x5, x3 + b Lmid-8 + +L2: mul x9, x5, x3 + b L2e + +Lbx1: ldr x7, [x1],#8 + mul x9, x7, x3 + umulh x11, x7, x3 + adds x9, x9, x4 + str x9, [x0],#8 + tbnz x2, #1, Lb10 + +Lb01: cbz x17, L1 + +Lb00: ldp x6, x7, [x1] + mul x8, x6, x3 + umulh x10, x6, x3 + ldp x4, x5, [x1,#16] + mul x9, x7, x3 + adcs x12, x8, x11 + umulh x11, x7, x3 + add x0, x0, #16 + sub x17, x17, #1 + cbz x17, Lend + + .align 4 +Ltop: mul x8, x4, x3 + ldp x6, x7, [x1,#32]! + adcs x13, x9, x10 + umulh x10, x4, x3 + mul x9, x5, x3 + stp x12, x13, [x0,#-16] + adcs x12, x8, x11 + umulh x11, x5, x3 +Lmid: mul x8, x6, x3 + ldp x4, x5, [x1,#16] + adcs x13, x9, x10 + umulh x10, x6, x3 + mul x9, x7, x3 + stp x12, x13, [x0],#32 + adcs x12, x8, x11 + umulh x11, x7, x3 + sub x17, x17, #1 + cbnz x17, Ltop + +Lend: mul x8, x4, x3 + adcs x13, x9, x10 + umulh x10, x4, x3 + mul x9, x5, x3 + stp x12, x13, [x0,#-16] +L2e: adcs x12, x8, x11 + umulh x11, x5, x3 + adcs x13, x9, x10 + stp x12, x13, [x0] +L1: adc x0, x11, xzr + ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/nand_n.s b/vere/ext/gmp/gen/aarch64-macos/mpn/nand_n.s new file mode 100644 index 0000000..083703a --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/nand_n.s @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_nand_n + +___gmpn_nand_n: + lsr x17, x3, #2 + tbz x3, #0, Lbx0 + +Lbx1: ldr x7, [x1] + ldr x11, [x2] + and x15, x7, x11 + mvn x15, x15 + str x15, [x0],#8 + tbnz x3, #1, Lb11 + +Lb01: cbz x17, Lret + ldp x4, x5, [x1,#8] + ldp x8, x9, [x2,#8] + sub x1, x1, #8 + sub x2, x2, #8 + b Lmid + +Lb11: ldp x6, x7, [x1,#8] + ldp x10, x11, [x2,#8] + add x1, x1, #8 + add x2, x2, #8 + cbz x17, Lend + b Ltop + +Lbx0: tbnz x3, #1, Lb10 + +Lb00: ldp x4, x5, [x1],#-16 + ldp x8, x9, [x2],#-16 + b Lmid + +Lb10: ldp x6, x7, [x1] + ldp x10, x11, [x2] + cbz x17, Lend + + .align 4 +Ltop: ldp x4, x5, [x1,#16] + ldp x8, x9, [x2,#16] + and x12, x6, x10 + and x13, x7, x11 + mvn x12, x12 + mvn x13, x13 + stp x12, x13, [x0],#16 +Lmid: ldp x6, x7, [x1,#32]! + ldp x10, x11, [x2,#32]! + and x12, x4, x8 + and x13, x5, x9 + mvn x12, x12 + mvn x13, x13 + stp x12, x13, [x0],#16 + sub x17, x17, #1 + cbnz x17, Ltop + +Lend: and x12, x6, x10 + and x13, x7, x11 + mvn x12, x12 + mvn x13, x13 + stp x12, x13, [x0] +Lret: ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/nior_n.s b/vere/ext/gmp/gen/aarch64-macos/mpn/nior_n.s new file mode 100644 index 0000000..392a012 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/nior_n.s @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_nior_n + +___gmpn_nior_n: + lsr x17, x3, #2 + tbz x3, #0, Lbx0 + +Lbx1: ldr x7, [x1] + ldr x11, [x2] + orr x15, x7, x11 + mvn x15, x15 + str x15, [x0],#8 + tbnz x3, #1, Lb11 + +Lb01: cbz x17, Lret + ldp x4, x5, [x1,#8] + ldp x8, x9, [x2,#8] + sub x1, x1, #8 + sub x2, x2, #8 + b Lmid + +Lb11: ldp x6, x7, [x1,#8] + ldp x10, x11, [x2,#8] + add x1, x1, #8 + add x2, x2, #8 + cbz x17, Lend + b Ltop + +Lbx0: tbnz x3, #1, Lb10 + +Lb00: ldp x4, x5, [x1],#-16 + ldp x8, x9, [x2],#-16 + b Lmid + +Lb10: ldp x6, x7, [x1] + ldp x10, x11, [x2] + cbz x17, Lend + + .align 4 +Ltop: ldp x4, x5, [x1,#16] + ldp x8, x9, [x2,#16] + orr x12, x6, x10 + orr x13, x7, x11 + mvn x12, x12 + mvn x13, x13 + stp x12, x13, [x0],#16 +Lmid: ldp x6, x7, [x1,#32]! + ldp x10, x11, [x2,#32]! + orr x12, x4, x8 + orr x13, x5, x9 + mvn x12, x12 + mvn x13, x13 + stp x12, x13, [x0],#16 + sub x17, x17, #1 + cbnz x17, Ltop + +Lend: orr x12, x6, x10 + orr x13, x7, x11 + mvn x12, x12 + mvn x13, x13 + stp x12, x13, [x0] +Lret: ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/perfsqr.h b/vere/ext/gmp/gen/aarch64-macos/mpn/perfsqr.h new file mode 100644 index 0000000..80c5eb7 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/perfsqr.h @@ -0,0 +1,46 @@ +/* This file generated by gen-psqr.c - DO NOT EDIT. */ + +#if GMP_LIMB_BITS != 64 || GMP_NAIL_BITS != 0 +Error, error, this data is for 64 bit limb and 0 bit nail +#endif + +/* Non-zero bit indicates a quadratic residue mod 0x100. + This test identifies 82.81% as non-squares (212/256). */ +static const mp_limb_t +sq_res_0x100[4] = { + CNST_LIMB(0x202021202030213), + CNST_LIMB(0x202021202020213), + CNST_LIMB(0x202021202030212), + CNST_LIMB(0x202021202020212), +}; + +/* 2^48-1 = 3^2 * 5 * 7 * 13 * 17 * 97 ... */ +#define PERFSQR_MOD_BITS 49 + +/* This test identifies 97.81% as non-squares. */ +#define PERFSQR_MOD_TEST(up, usize) \ + do { \ + mp_limb_t r; \ + PERFSQR_MOD_34 (r, up, usize); \ + \ + /* 69.23% */ \ + PERFSQR_MOD_2 (r, CNST_LIMB(91), CNST_LIMB(0xfd2fd2fd2fd3), \ + CNST_LIMB(0x2191240), CNST_LIMB(0x8850a206953820e1)); \ + \ + /* 68.24% */ \ + PERFSQR_MOD_2 (r, CNST_LIMB(85), CNST_LIMB(0xfcfcfcfcfcfd), \ + CNST_LIMB(0x82158), CNST_LIMB(0x10b48c4b4206a105)); \ + \ + /* 55.56% */ \ + PERFSQR_MOD_1 (r, CNST_LIMB( 9), CNST_LIMB(0xe38e38e38e39), \ + CNST_LIMB(0x93)); \ + \ + /* 49.48% */ \ + PERFSQR_MOD_2 (r, CNST_LIMB(97), CNST_LIMB(0xfd5c5f02a3a1), \ + CNST_LIMB(0x1eb628b47), CNST_LIMB(0x6067981b8b451b5f)); \ + } while (0) + +/* Grand total sq_res_0x100 and PERFSQR_MOD_TEST, 99.62% non-squares. */ + +/* helper for tests/mpz/t-perfsqr.c */ +#define PERFSQR_DIVISORS { 256, 91, 85, 9, 97, } diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/popcount.s b/vere/ext/gmp/gen/aarch64-macos/mpn/popcount.s new file mode 100644 index 0000000..66e12fc --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/popcount.s @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_popcount + +___gmpn_popcount: + + mov x11, #0x1fff + cmp x1, x11 + b.hi Lgt8k + +Llt8k: + movi v4.16b, #0 + movi v5.16b, #0 + + tbz x1, #0, Lxx0 + sub x1, x1, #1 + ld1 {v0.1d}, [x0], #8 + cnt v6.16b, v0.16b + uadalp v4.8h, v6.16b + +Lxx0: tbz x1, #1, Lx00 + sub x1, x1, #2 + ld1 {v0.2d}, [x0], #16 + cnt v6.16b, v0.16b + uadalp v4.8h, v6.16b + +Lx00: tbz x1, #2, L000 + subs x1, x1, #4 + ld1 {v0.2d,v1.2d}, [x0], #32 + b.ls Lsum + +Lgt4: ld1 {v2.2d,v3.2d}, [x0], #32 + sub x1, x1, #4 + cnt v6.16b, v0.16b + cnt v7.16b, v1.16b + b Lmid + +L000: subs x1, x1, #8 + b.lo Le0 + +Lchu: ld1 {v2.2d,v3.2d}, [x0], #32 + ld1 {v0.2d,v1.2d}, [x0], #32 + cnt v6.16b, v2.16b + cnt v7.16b, v3.16b + subs x1, x1, #8 + b.lo Lend + +Ltop: ld1 {v2.2d,v3.2d}, [x0], #32 + uadalp v4.8h, v6.16b + cnt v6.16b, v0.16b + uadalp v5.8h, v7.16b + cnt v7.16b, v1.16b +Lmid: ld1 {v0.2d,v1.2d}, [x0], #32 + subs x1, x1, #8 + uadalp v4.8h, v6.16b + cnt v6.16b, v2.16b + uadalp v5.8h, v7.16b + cnt v7.16b, v3.16b + b.hs Ltop + +Lend: uadalp v4.8h, v6.16b + uadalp v5.8h, v7.16b +Lsum: cnt v6.16b, v0.16b + cnt v7.16b, v1.16b + uadalp v4.8h, v6.16b + uadalp v5.8h, v7.16b + add v4.8h, v4.8h, v5.8h + +Le0: uaddlp v4.4s, v4.8h + uaddlp v4.2d, v4.4s + mov x0, v4.d[0] + mov x1, v4.d[1] + add x0, x0, x1 + ret + + + +Lgt8k: + mov x8, x30 + mov x7, x1 + mov x4, #0 + mov x9, #0x1ff0*8 + mov x10, #0x1ff0 + +1: add x5, x0, x9 + mov x1, #0x1ff0-8 + movi v4.16b, #0 + movi v5.16b, #0 + bl Lchu + add x4, x4, x0 + mov x0, x5 + sub x7, x7, x10 + cmp x7, x11 + b.hi 1b + + mov x1, x7 + bl Llt8k + add x0, x4, x0 + mov x30, x8 + ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/rsblsh1_n.s b/vere/ext/gmp/gen/aarch64-macos/mpn/rsblsh1_n.s new file mode 100644 index 0000000..2d5cf13 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/rsblsh1_n.s @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_rsblsh1_n + +___gmpn_rsblsh1_n: + lsr x6, x3, #2 + tbz x3, #0, Lbx0 + +Lbx1: ldr x5, [x1] + tbnz x3, #1, Lb11 + +Lb01: ldr x11, [x2] + cbz x6, L1 + ldp x8, x9, [x2,#8] + lsl x13, x11, #1 + subs x15, x13, x5 + str x15, [x0],#8 + sub x1, x1, #24 + sub x2, x2, #8 + b Lmid + +L1: lsl x13, x11, #1 + subs x15, x13, x5 + str x15, [x0] + lsr x0, x11, 63 + sbc x0, x0, xzr + ret + +Lb11: ldr x9, [x2] + ldp x10, x11, [x2,#8]! + lsl x13, x9, #1 + subs x17, x13, x5 + str x17, [x0],#8 + sub x1, x1, #8 + cbz x6, Lend + b Ltop + +Lbx0: tbnz x3, #1, Lb10 + +Lb00: subs x11, xzr, xzr + ldp x8, x9, [x2],#-16 + sub x1, x1, #32 + b Lmid + +Lb10: subs x9, xzr, xzr + ldp x10, x11, [x2] + sub x1, x1, #16 + cbz x6, Lend + + .align 4 +Ltop: ldp x4, x5, [x1,#16] + extr x12, x10, x9, #63 + ldp x8, x9, [x2,#16] + extr x13, x11, x10, #63 + sbcs x14, x12, x4 + sbcs x15, x13, x5 + stp x14, x15, [x0],#16 +Lmid: ldp x4, x5, [x1,#32]! + extr x12, x8, x11, #63 + ldp x10, x11, [x2,#32]! + extr x13, x9, x8, #63 + sbcs x16, x12, x4 + sbcs x17, x13, x5 + stp x16, x17, [x0],#16 + sub x6, x6, #1 + cbnz x6, Ltop + +Lend: ldp x4, x5, [x1,#16] + extr x12, x10, x9, #63 + extr x13, x11, x10, #63 + sbcs x14, x12, x4 + sbcs x15, x13, x5 + stp x14, x15, [x0] + lsr x0, x11, 63 + sbc x0, x0, xzr + ret + + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/rsblsh2_n.s b/vere/ext/gmp/gen/aarch64-macos/mpn/rsblsh2_n.s new file mode 100644 index 0000000..1e79fe1 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/rsblsh2_n.s @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_rsblsh2_n + +___gmpn_rsblsh2_n: + lsr x6, x3, #2 + tbz x3, #0, Lbx0 + +Lbx1: ldr x5, [x1] + tbnz x3, #1, Lb11 + +Lb01: ldr x11, [x2] + cbz x6, L1 + ldp x8, x9, [x2,#8] + lsl x13, x11, #2 + subs x15, x13, x5 + str x15, [x0],#8 + sub x1, x1, #24 + sub x2, x2, #8 + b Lmid + +L1: lsl x13, x11, #2 + subs x15, x13, x5 + str x15, [x0] + lsr x0, x11, 62 + sbc x0, x0, xzr + ret + +Lb11: ldr x9, [x2] + ldp x10, x11, [x2,#8]! + lsl x13, x9, #2 + subs x17, x13, x5 + str x17, [x0],#8 + sub x1, x1, #8 + cbz x6, Lend + b Ltop + +Lbx0: tbnz x3, #1, Lb10 + +Lb00: subs x11, xzr, xzr + ldp x8, x9, [x2],#-16 + sub x1, x1, #32 + b Lmid + +Lb10: subs x9, xzr, xzr + ldp x10, x11, [x2] + sub x1, x1, #16 + cbz x6, Lend + + .align 4 +Ltop: ldp x4, x5, [x1,#16] + extr x12, x10, x9, #62 + ldp x8, x9, [x2,#16] + extr x13, x11, x10, #62 + sbcs x14, x12, x4 + sbcs x15, x13, x5 + stp x14, x15, [x0],#16 +Lmid: ldp x4, x5, [x1,#32]! + extr x12, x8, x11, #62 + ldp x10, x11, [x2,#32]! + extr x13, x9, x8, #62 + sbcs x16, x12, x4 + sbcs x17, x13, x5 + stp x16, x17, [x0],#16 + sub x6, x6, #1 + cbnz x6, Ltop + +Lend: ldp x4, x5, [x1,#16] + extr x12, x10, x9, #62 + extr x13, x11, x10, #62 + sbcs x14, x12, x4 + sbcs x15, x13, x5 + stp x14, x15, [x0] + lsr x0, x11, 62 + sbc x0, x0, xzr + ret + + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/rsh1add_n.s b/vere/ext/gmp/gen/aarch64-macos/mpn/rsh1add_n.s new file mode 100644 index 0000000..0e46013 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/rsh1add_n.s @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_rsh1add_n + +___gmpn_rsh1add_n: + lsr x6, x3, #2 + + tbz x3, #0, Lbx0 + +Lbx1: ldr x5, [x1],#8 + ldr x9, [x2],#8 + tbnz x3, #1, Lb11 + +Lb01: adds x13, x5, x9 + and x10, x13, #1 + cbz x6, L1 + ldp x4, x5, [x1],#48 + ldp x8, x9, [x2],#48 + adcs x14, x4, x8 + adcs x15, x5, x9 + ldp x4, x5, [x1,#-32] + ldp x8, x9, [x2,#-32] + extr x17, x14, x13, #1 + adcs x12, x4, x8 + adcs x13, x5, x9 + str x17, [x0], #24 + sub x6, x6, #1 + cbz x6, Lend + b Ltop + +L1: cset x14, cs + extr x17, x14, x13, #1 + str x17, [x0] + mov x0, x10 + ret + +Lb11: adds x15, x5, x9 + and x10, x15, #1 + + ldp x4, x5, [x1],#32 + ldp x8, x9, [x2],#32 + adcs x12, x4, x8 + adcs x13, x5, x9 + cbz x6, L3 + ldp x4, x5, [x1,#-16] + ldp x8, x9, [x2,#-16] + extr x17, x12, x15, #1 + adcs x14, x4, x8 + adcs x15, x5, x9 + str x17, [x0], #8 + b Lmid + +L3: extr x17, x12, x15, #1 + str x17, [x0], #8 + b L2 + +Lbx0: tbz x3, #1, Lb00 + +Lb10: ldp x4, x5, [x1],#32 + ldp x8, x9, [x2],#32 + adds x12, x4, x8 + adcs x13, x5, x9 + and x10, x12, #1 + cbz x6, L2 + ldp x4, x5, [x1,#-16] + ldp x8, x9, [x2,#-16] + adcs x14, x4, x8 + adcs x15, x5, x9 + b Lmid + +Lb00: ldp x4, x5, [x1],#48 + ldp x8, x9, [x2],#48 + adds x14, x4, x8 + adcs x15, x5, x9 + and x10, x14, #1 + ldp x4, x5, [x1,#-32] + ldp x8, x9, [x2,#-32] + adcs x12, x4, x8 + adcs x13, x5, x9 + add x0, x0, #16 + sub x6, x6, #1 + cbz x6, Lend + + .align 4 +Ltop: ldp x4, x5, [x1,#-16] + ldp x8, x9, [x2,#-16] + extr x16, x15, x14, #1 + extr x17, x12, x15, #1 + adcs x14, x4, x8 + adcs x15, x5, x9 + stp x16, x17, [x0,#-16] +Lmid: ldp x4, x5, [x1],#32 + ldp x8, x9, [x2],#32 + extr x16, x13, x12, #1 + extr x17, x14, x13, #1 + adcs x12, x4, x8 + adcs x13, x5, x9 + stp x16, x17, [x0],#32 + sub x6, x6, #1 + cbnz x6, Ltop + +Lend: extr x16, x15, x14, #1 + extr x17, x12, x15, #1 + stp x16, x17, [x0,#-16] +L2: cset x14, cs + extr x16, x13, x12, #1 + extr x17, x14, x13, #1 + stp x16, x17, [x0] + +Lret: mov x0, x10 + ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/rsh1sub_n.s b/vere/ext/gmp/gen/aarch64-macos/mpn/rsh1sub_n.s new file mode 100644 index 0000000..2600b60 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/rsh1sub_n.s @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_rsh1sub_n + +___gmpn_rsh1sub_n: + lsr x6, x3, #2 + + tbz x3, #0, Lbx0 + +Lbx1: ldr x5, [x1],#8 + ldr x9, [x2],#8 + tbnz x3, #1, Lb11 + +Lb01: subs x13, x5, x9 + and x10, x13, #1 + cbz x6, L1 + ldp x4, x5, [x1],#48 + ldp x8, x9, [x2],#48 + sbcs x14, x4, x8 + sbcs x15, x5, x9 + ldp x4, x5, [x1,#-32] + ldp x8, x9, [x2,#-32] + extr x17, x14, x13, #1 + sbcs x12, x4, x8 + sbcs x13, x5, x9 + str x17, [x0], #24 + sub x6, x6, #1 + cbz x6, Lend + b Ltop + +L1: cset x14, cc + extr x17, x14, x13, #1 + str x17, [x0] + mov x0, x10 + ret + +Lb11: subs x15, x5, x9 + and x10, x15, #1 + + ldp x4, x5, [x1],#32 + ldp x8, x9, [x2],#32 + sbcs x12, x4, x8 + sbcs x13, x5, x9 + cbz x6, L3 + ldp x4, x5, [x1,#-16] + ldp x8, x9, [x2,#-16] + extr x17, x12, x15, #1 + sbcs x14, x4, x8 + sbcs x15, x5, x9 + str x17, [x0], #8 + b Lmid + +L3: extr x17, x12, x15, #1 + str x17, [x0], #8 + b L2 + +Lbx0: tbz x3, #1, Lb00 + +Lb10: ldp x4, x5, [x1],#32 + ldp x8, x9, [x2],#32 + subs x12, x4, x8 + sbcs x13, x5, x9 + and x10, x12, #1 + cbz x6, L2 + ldp x4, x5, [x1,#-16] + ldp x8, x9, [x2,#-16] + sbcs x14, x4, x8 + sbcs x15, x5, x9 + b Lmid + +Lb00: ldp x4, x5, [x1],#48 + ldp x8, x9, [x2],#48 + subs x14, x4, x8 + sbcs x15, x5, x9 + and x10, x14, #1 + ldp x4, x5, [x1,#-32] + ldp x8, x9, [x2,#-32] + sbcs x12, x4, x8 + sbcs x13, x5, x9 + add x0, x0, #16 + sub x6, x6, #1 + cbz x6, Lend + + .align 4 +Ltop: ldp x4, x5, [x1,#-16] + ldp x8, x9, [x2,#-16] + extr x16, x15, x14, #1 + extr x17, x12, x15, #1 + sbcs x14, x4, x8 + sbcs x15, x5, x9 + stp x16, x17, [x0,#-16] +Lmid: ldp x4, x5, [x1],#32 + ldp x8, x9, [x2],#32 + extr x16, x13, x12, #1 + extr x17, x14, x13, #1 + sbcs x12, x4, x8 + sbcs x13, x5, x9 + stp x16, x17, [x0],#32 + sub x6, x6, #1 + cbnz x6, Ltop + +Lend: extr x16, x15, x14, #1 + extr x17, x12, x15, #1 + stp x16, x17, [x0,#-16] +L2: cset x14, cc + extr x16, x13, x12, #1 + extr x17, x14, x13, #1 + stp x16, x17, [x0] + +Lret: mov x0, x10 + ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/rshift.s b/vere/ext/gmp/gen/aarch64-macos/mpn/rshift.s new file mode 100644 index 0000000..a277519 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/rshift.s @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_rshift + +___gmpn_rshift: + mov x16, x0 + sub x8, xzr, x3 + lsr x17, x2, #2 + tbz x2, #0, Lbx0 + +Lbx1: ldr x5, [x1] + tbnz x2, #1, Lb11 + +Lb01: lsl x0, x5, x8 + lsr x2, x5, x3 + cbnz x17, Lgt1 + str x2, [x16] + ret +Lgt1: ldp x4, x5, [x1,#8] + sub x1, x1, #8 + sub x16, x16, #32 + b Llo2 + +Lb11: lsl x0, x5, x8 + lsr x2, x5, x3 + ldp x6, x7, [x1,#8]! + sub x16, x16, #16 + b Llo3 + +Lbx0: ldp x4, x5, [x1] + tbz x2, #1, Lb00 + +Lb10: lsl x0, x4, x8 + lsr x13, x4, x3 + lsl x10, x5, x8 + lsr x2, x5, x3 + cbnz x17, Lgt2 + orr x10, x10, x13 + stp x10, x2, [x16] + ret +Lgt2: ldp x4, x5, [x1,#16] + orr x10, x10, x13 + str x10, [x16],#-24 + b Llo2 + +Lb00: lsl x0, x4, x8 + lsr x13, x4, x3 + lsl x10, x5, x8 + lsr x2, x5, x3 + ldp x6, x7, [x1,#16]! + orr x10, x10, x13 + str x10, [x16],#-8 + b Llo0 + + .align 4 +Ltop: ldp x4, x5, [x1,#16] + orr x10, x10, x13 + orr x11, x12, x2 + stp x11, x10, [x16,#16] + lsr x2, x7, x3 +Llo2: lsl x10, x5, x8 + lsl x12, x4, x8 + lsr x13, x4, x3 + ldp x6, x7, [x1,#32]! + orr x10, x10, x13 + orr x11, x12, x2 + stp x11, x10, [x16,#32]! + lsr x2, x5, x3 +Llo0: sub x17, x17, #1 +Llo3: lsl x10, x7, x8 + lsl x12, x6, x8 + lsr x13, x6, x3 + cbnz x17, Ltop + +Lend: orr x10, x10, x13 + orr x11, x12, x2 + lsr x2, x7, x3 + stp x11, x10, [x16,#16] + str x2, [x16,#32] + ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/sec_tabselect.s b/vere/ext/gmp/gen/aarch64-macos/mpn/sec_tabselect.s new file mode 100644 index 0000000..13cb719 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/sec_tabselect.s @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_sec_tabselect + +___gmpn_sec_tabselect: + dup v7.2d, x4 + + mov x10, #1 + dup v6.2d, x10 + + subs x6, x2, #4 + b.mi Louter_end + +Louter_top: + mov x5, x3 + mov x12, x1 + movi v5.16b, #0 + movi v2.16b, #0 + movi v3.16b, #0 + .align 4 +Ltp4: cmeq v4.2d, v5.2d, v7.2d + ld1 {v0.2d,v1.2d}, [x1] + add v5.2d, v5.2d, v6.2d + bit v2.16b, v0.16b, v4.16b + bit v3.16b, v1.16b, v4.16b + add x1, x1, x2, lsl #3 + sub x5, x5, #1 + cbnz x5, Ltp4 + st1 {v2.2d,v3.2d}, [x0], #32 + add x1, x12, #32 + subs x6, x6, #4 + b.pl Louter_top +Louter_end: + + tbz x2, #1, Lb0x + mov x5, x3 + mov x12, x1 + movi v5.16b, #0 + movi v2.16b, #0 + .align 4 +Ltp2: cmeq v4.2d, v5.2d, v7.2d + ld1 {v0.2d}, [x1] + add v5.2d, v5.2d, v6.2d + bit v2.16b, v0.16b, v4.16b + add x1, x1, x2, lsl #3 + sub x5, x5, #1 + cbnz x5, Ltp2 + st1 {v2.2d}, [x0], #16 + add x1, x12, #16 + +Lb0x: tbz x2, #0, Lb00 + mov x5, x3 + mov x12, x1 + movi v5.16b, #0 + movi v2.16b, #0 + .align 4 +Ltp1: cmeq v4.2d, v5.2d, v7.2d + ld1 {v0.1d}, [x1] + add v5.2d, v5.2d, v6.2d + bit v2.8b, v0.8b, v4.8b + add x1, x1, x2, lsl #3 + sub x5, x5, #1 + cbnz x5, Ltp1 + st1 {v2.1d}, [x0], #8 + add x1, x12, #8 + +Lb00: ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/sqr_diag_addlsh1.s b/vere/ext/gmp/gen/aarch64-macos/mpn/sqr_diag_addlsh1.s new file mode 100644 index 0000000..0255158 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/sqr_diag_addlsh1.s @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_sqr_diag_addlsh1 + +___gmpn_sqr_diag_addlsh1: + ldr x15, [x2],#8 + lsr x14, x3, #1 + tbz x3, #0, Lbx0 + +Lbx1: adds x7, xzr, xzr + mul x12, x15, x15 + ldr x16, [x2],#8 + ldp x4, x5, [x1],#16 + umulh x11, x15, x15 + b Lmid + +Lbx0: adds x5, xzr, xzr + mul x12, x15, x15 + ldr x17, [x2],#16 + ldp x6, x7, [x1],#32 + umulh x11, x15, x15 + sub x14, x14, #1 + cbz x14, Lend + + .align 4 +Ltop: extr x9, x6, x5, #63 + mul x10, x17, x17 + ldr x16, [x2,#-8] + adcs x13, x9, x11 + ldp x4, x5, [x1,#-16] + umulh x11, x17, x17 + extr x8, x7, x6, #63 + stp x12, x13, [x0],#16 + adcs x12, x8, x10 +Lmid: extr x9, x4, x7, #63 + mul x10, x16, x16 + ldr x17, [x2],#16 + adcs x13, x9, x11 + ldp x6, x7, [x1],#32 + umulh x11, x16, x16 + extr x8, x5, x4, #63 + stp x12, x13, [x0],#16 + adcs x12, x8, x10 + sub x14, x14, #1 + cbnz x14, Ltop + +Lend: extr x9, x6, x5, #63 + mul x10, x17, x17 + adcs x13, x9, x11 + umulh x11, x17, x17 + extr x8, x7, x6, #63 + stp x12, x13, [x0] + adcs x12, x8, x10 + extr x9, xzr, x7, #63 + adcs x13, x9, x11 + stp x12, x13, [x0,#16] + + ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/sub_n.s b/vere/ext/gmp/gen/aarch64-macos/mpn/sub_n.s new file mode 100644 index 0000000..3695521 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/sub_n.s @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_sub_nc + +___gmpn_sub_nc: + cmp xzr, x4 + b Lent + + .text + .align 3 + .globl ___gmpn_sub_n + +___gmpn_sub_n: + cmp xzr, xzr +Lent: lsr x17, x3, #2 + tbz x3, #0, Lbx0 + +Lbx1: ldr x7, [x1] + ldr x11, [x2] + sbcs x13, x7, x11 + str x13, [x0],#8 + tbnz x3, #1, Lb11 + +Lb01: cbz x17, Lret + ldp x4, x5, [x1,#8] + ldp x8, x9, [x2,#8] + sub x1, x1, #8 + sub x2, x2, #8 + b Lmid + +Lb11: ldp x6, x7, [x1,#8] + ldp x10, x11, [x2,#8] + add x1, x1, #8 + add x2, x2, #8 + cbz x17, Lend + b Ltop + +Lbx0: tbnz x3, #1, Lb10 + +Lb00: ldp x4, x5, [x1] + ldp x8, x9, [x2] + sub x1, x1, #16 + sub x2, x2, #16 + b Lmid + +Lb10: ldp x6, x7, [x1] + ldp x10, x11, [x2] + cbz x17, Lend + + .align 4 +Ltop: ldp x4, x5, [x1,#16] + ldp x8, x9, [x2,#16] + sbcs x12, x6, x10 + sbcs x13, x7, x11 + stp x12, x13, [x0],#16 +Lmid: ldp x6, x7, [x1,#32]! + ldp x10, x11, [x2,#32]! + sbcs x12, x4, x8 + sbcs x13, x5, x9 + stp x12, x13, [x0],#16 + sub x17, x17, #1 + cbnz x17, Ltop + +Lend: sbcs x12, x6, x10 + sbcs x13, x7, x11 + stp x12, x13, [x0] +Lret: cset x0, cc + ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/sublsh1_n.s b/vere/ext/gmp/gen/aarch64-macos/mpn/sublsh1_n.s new file mode 100644 index 0000000..e3e924f --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/sublsh1_n.s @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_sublsh1_n + +___gmpn_sublsh1_n: + lsr x6, x3, #2 + tbz x3, #0, Lbx0 + +Lbx1: ldr x5, [x1] + tbnz x3, #1, Lb11 + +Lb01: ldr x11, [x2] + cbz x6, L1 + ldp x8, x9, [x2,#8] + lsl x13, x11, #1 + subs x15, x5, x13 + str x15, [x0],#8 + sub x1, x1, #24 + sub x2, x2, #8 + b Lmid + +L1: lsl x13, x11, #1 + subs x15, x5, x13 + str x15, [x0] + lsr x0, x11, 63 + cinc x0, x0, cc + ret + +Lb11: ldr x9, [x2] + ldp x10, x11, [x2,#8]! + lsl x13, x9, #1 + subs x17, x5, x13 + str x17, [x0],#8 + sub x1, x1, #8 + cbz x6, Lend + b Ltop + +Lbx0: tbnz x3, #1, Lb10 + +Lb00: subs x11, xzr, xzr + ldp x8, x9, [x2],#-16 + sub x1, x1, #32 + b Lmid + +Lb10: subs x9, xzr, xzr + ldp x10, x11, [x2] + sub x1, x1, #16 + cbz x6, Lend + + .align 4 +Ltop: ldp x4, x5, [x1,#16] + extr x12, x10, x9, #63 + ldp x8, x9, [x2,#16] + extr x13, x11, x10, #63 + sbcs x14, x4, x12 + sbcs x15, x5, x13 + stp x14, x15, [x0],#16 +Lmid: ldp x4, x5, [x1,#32]! + extr x12, x8, x11, #63 + ldp x10, x11, [x2,#32]! + extr x13, x9, x8, #63 + sbcs x16, x4, x12 + sbcs x17, x5, x13 + stp x16, x17, [x0],#16 + sub x6, x6, #1 + cbnz x6, Ltop + +Lend: ldp x4, x5, [x1,#16] + extr x12, x10, x9, #63 + extr x13, x11, x10, #63 + sbcs x14, x4, x12 + sbcs x15, x5, x13 + stp x14, x15, [x0] + lsr x0, x11, 63 + cinc x0, x0, cc + ret + + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/sublsh2_n.s b/vere/ext/gmp/gen/aarch64-macos/mpn/sublsh2_n.s new file mode 100644 index 0000000..0df8084 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/sublsh2_n.s @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_sublsh2_n + +___gmpn_sublsh2_n: + lsr x6, x3, #2 + tbz x3, #0, Lbx0 + +Lbx1: ldr x5, [x1] + tbnz x3, #1, Lb11 + +Lb01: ldr x11, [x2] + cbz x6, L1 + ldp x8, x9, [x2,#8] + lsl x13, x11, #2 + subs x15, x5, x13 + str x15, [x0],#8 + sub x1, x1, #24 + sub x2, x2, #8 + b Lmid + +L1: lsl x13, x11, #2 + subs x15, x5, x13 + str x15, [x0] + lsr x0, x11, 62 + cinc x0, x0, cc + ret + +Lb11: ldr x9, [x2] + ldp x10, x11, [x2,#8]! + lsl x13, x9, #2 + subs x17, x5, x13 + str x17, [x0],#8 + sub x1, x1, #8 + cbz x6, Lend + b Ltop + +Lbx0: tbnz x3, #1, Lb10 + +Lb00: subs x11, xzr, xzr + ldp x8, x9, [x2],#-16 + sub x1, x1, #32 + b Lmid + +Lb10: subs x9, xzr, xzr + ldp x10, x11, [x2] + sub x1, x1, #16 + cbz x6, Lend + + .align 4 +Ltop: ldp x4, x5, [x1,#16] + extr x12, x10, x9, #62 + ldp x8, x9, [x2,#16] + extr x13, x11, x10, #62 + sbcs x14, x4, x12 + sbcs x15, x5, x13 + stp x14, x15, [x0],#16 +Lmid: ldp x4, x5, [x1,#32]! + extr x12, x8, x11, #62 + ldp x10, x11, [x2,#32]! + extr x13, x9, x8, #62 + sbcs x16, x4, x12 + sbcs x17, x5, x13 + stp x16, x17, [x0],#16 + sub x6, x6, #1 + cbnz x6, Ltop + +Lend: ldp x4, x5, [x1,#16] + extr x12, x10, x9, #62 + extr x13, x11, x10, #62 + sbcs x14, x4, x12 + sbcs x15, x5, x13 + stp x14, x15, [x0] + lsr x0, x11, 62 + cinc x0, x0, cc + ret + + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/submul_1.s b/vere/ext/gmp/gen/aarch64-macos/mpn/submul_1.s new file mode 100644 index 0000000..11f80f4 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/submul_1.s @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_submul_1 + +___gmpn_submul_1: + adds x15, xzr, xzr + + tbz x2, #0, L1 + + ldr x4, [x1],#8 + mul x8, x4, x3 + umulh x12, x4, x3 + ldr x4, [x0] + subs x8, x4, x8 + csinc x15, x12, x12, cs + str x8, [x0],#8 + +L1: tbz x2, #1, L2 + + ldp x4, x5, [x1],#16 + mul x8, x4, x3 + umulh x12, x4, x3 + mul x9, x5, x3 + umulh x13, x5, x3 + adds x8, x8, x15 + adcs x9, x9, x12 + ldp x4, x5, [x0] + adc x15, x13, xzr + subs x8, x4, x8 + sbcs x9, x5, x9 + csinc x15, x15, x15, cs + stp x8, x9, [x0],#16 + +L2: lsr x2, x2, #2 + cbz x2, Lle3 + ldp x4, x5, [x1],#32 + ldp x6, x7, [x1,#-16] + b Lmid +Lle3: mov x0, x15 + ret + + .align 4 +Ltop: ldp x4, x5, [x1],#32 + ldp x6, x7, [x1,#-16] + subs x8, x16, x8 + sbcs x9, x17, x9 + stp x8, x9, [x0],#32 + sbcs x10, x12, x10 + sbcs x11, x13, x11 + stp x10, x11, [x0,#-16] + csinc x15, x15, x15, cs +Lmid: sub x2, x2, #1 + mul x8, x4, x3 + umulh x12, x4, x3 + mul x9, x5, x3 + umulh x13, x5, x3 + adds x8, x8, x15 + mul x10, x6, x3 + umulh x14, x6, x3 + adcs x9, x9, x12 + mul x11, x7, x3 + umulh x15, x7, x3 + adcs x10, x10, x13 + ldp x16, x17, [x0] + adcs x11, x11, x14 + ldp x12, x13, [x0,#16] + adc x15, x15, xzr + cbnz x2, Ltop + + subs x8, x16, x8 + sbcs x9, x17, x9 + sbcs x10, x12, x10 + sbcs x11, x13, x11 + stp x8, x9, [x0] + stp x10, x11, [x0,#16] + csinc x0, x15, x15, cs + ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/tmp-add_n.s b/vere/ext/gmp/gen/aarch64-macos/mpn/tmp-add_n.s new file mode 100644 index 0000000..5f2b539 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/tmp-add_n.s @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_add_nc + +___gmpn_add_nc: + cmp x4, #1 + b Lent + + .text + .align 3 + .globl ___gmpn_add_n + +___gmpn_add_n: + cmn xzr, xzr +Lent: lsr x17, x3, #2 + tbz x3, #0, Lbx0 + +Lbx1: ldr x7, [x1] + ldr x11, [x2] + adcs x13, x7, x11 + str x13, [x0],#8 + tbnz x3, #1, Lb11 + +Lb01: cbz x17, Lret + ldp x4, x5, [x1,#8] + ldp x8, x9, [x2,#8] + sub x1, x1, #8 + sub x2, x2, #8 + b Lmid + +Lb11: ldp x6, x7, [x1,#8] + ldp x10, x11, [x2,#8] + add x1, x1, #8 + add x2, x2, #8 + cbz x17, Lend + b Ltop + +Lbx0: tbnz x3, #1, Lb10 + +Lb00: ldp x4, x5, [x1] + ldp x8, x9, [x2] + sub x1, x1, #16 + sub x2, x2, #16 + b Lmid + +Lb10: ldp x6, x7, [x1] + ldp x10, x11, [x2] + cbz x17, Lend + + .align 4 +Ltop: ldp x4, x5, [x1,#16] + ldp x8, x9, [x2,#16] + adcs x12, x6, x10 + adcs x13, x7, x11 + stp x12, x13, [x0],#16 +Lmid: ldp x6, x7, [x1,#32]! + ldp x10, x11, [x2,#32]! + adcs x12, x4, x8 + adcs x13, x5, x9 + stp x12, x13, [x0],#16 + sub x17, x17, #1 + cbnz x17, Ltop + +Lend: adcs x12, x6, x10 + adcs x13, x7, x11 + stp x12, x13, [x0] +Lret: cset x0, cs + ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/xnor_n.s b/vere/ext/gmp/gen/aarch64-macos/mpn/xnor_n.s new file mode 100644 index 0000000..345378e --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/xnor_n.s @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_xnor_n + +___gmpn_xnor_n: + lsr x17, x3, #2 + tbz x3, #0, Lbx0 + +Lbx1: ldr x7, [x1] + ldr x11, [x2] + eon x15, x7, x11 + str x15, [x0],#8 + tbnz x3, #1, Lb11 + +Lb01: cbz x17, Lret + ldp x4, x5, [x1,#8] + ldp x8, x9, [x2,#8] + sub x1, x1, #8 + sub x2, x2, #8 + b Lmid + +Lb11: ldp x6, x7, [x1,#8] + ldp x10, x11, [x2,#8] + add x1, x1, #8 + add x2, x2, #8 + cbz x17, Lend + b Ltop + +Lbx0: tbnz x3, #1, Lb10 + +Lb00: ldp x4, x5, [x1],#-16 + ldp x8, x9, [x2],#-16 + b Lmid + +Lb10: ldp x6, x7, [x1] + ldp x10, x11, [x2] + cbz x17, Lend + + .align 4 +Ltop: ldp x4, x5, [x1,#16] + ldp x8, x9, [x2,#16] + eon x12, x6, x10 + eon x13, x7, x11 + stp x12, x13, [x0],#16 +Lmid: ldp x6, x7, [x1,#32]! + ldp x10, x11, [x2,#32]! + eon x12, x4, x8 + eon x13, x5, x9 + stp x12, x13, [x0],#16 + sub x17, x17, #1 + cbnz x17, Ltop + +Lend: eon x12, x6, x10 + eon x13, x7, x11 + stp x12, x13, [x0] +Lret: ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/mpn/xor_n.s b/vere/ext/gmp/gen/aarch64-macos/mpn/xor_n.s new file mode 100644 index 0000000..2b59a4b --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/mpn/xor_n.s @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3 + .globl ___gmpn_xor_n + +___gmpn_xor_n: + lsr x17, x3, #2 + tbz x3, #0, Lbx0 + +Lbx1: ldr x7, [x1] + ldr x11, [x2] + eor x15, x7, x11 + str x15, [x0],#8 + tbnz x3, #1, Lb11 + +Lb01: cbz x17, Lret + ldp x4, x5, [x1,#8] + ldp x8, x9, [x2,#8] + sub x1, x1, #8 + sub x2, x2, #8 + b Lmid + +Lb11: ldp x6, x7, [x1,#8] + ldp x10, x11, [x2,#8] + add x1, x1, #8 + add x2, x2, #8 + cbz x17, Lend + b Ltop + +Lbx0: tbnz x3, #1, Lb10 + +Lb00: ldp x4, x5, [x1],#-16 + ldp x8, x9, [x2],#-16 + b Lmid + +Lb10: ldp x6, x7, [x1] + ldp x10, x11, [x2] + cbz x17, Lend + + .align 4 +Ltop: ldp x4, x5, [x1,#16] + ldp x8, x9, [x2,#16] + eor x12, x6, x10 + eor x13, x7, x11 + stp x12, x13, [x0],#16 +Lmid: ldp x6, x7, [x1,#32]! + ldp x10, x11, [x2,#32]! + eor x12, x4, x8 + eor x13, x5, x9 + stp x12, x13, [x0],#16 + sub x17, x17, #1 + cbnz x17, Ltop + +Lend: eor x12, x6, x10 + eor x13, x7, x11 + stp x12, x13, [x0] +Lret: ret + diff --git a/vere/ext/gmp/gen/aarch64-macos/sieve_table.h b/vere/ext/gmp/gen/aarch64-macos/sieve_table.h new file mode 100644 index 0000000..ee9ac14 --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/sieve_table.h @@ -0,0 +1,46 @@ +/* This file generated by gen-sieve.c - DO NOT EDIT. */ + +#if GMP_LIMB_BITS != 64 +Error, error, this data is for 64 bits +#endif + +#define PRIMESIEVE_INIT_TABLE \ + CNST_LIMB (0x3294C9E069128480), /* 5 - 196 (42 primes) */ \ + CNST_LIMB (0x95A35E1EC4AB21DC), /* 197 - 388 (32 primes) */ \ + CNST_LIMB (0x4AD7CE99B8693366), /* 389 - 580 (30 primes) */ \ + CNST_LIMB (0x6595B6DA728DC52B), /* 581 - 772 (30 primes) */ \ + CNST_LIMB (0xEA6D9F8787B0CEDE), /* 773 - 964 (26 primes) */ \ + CNST_LIMB (0x3F56A1F4CD3275A9), /* 965 - 1156 (29 primes) */ \ + CNST_LIMB (0xFD3848FB74A76ADB), /* 1157 - 1348 (26 primes) */ \ + CNST_LIMB (0xDBBA0DD1A1EDF6AF), /* 1349 - 1540 (25 primes) */ \ + CNST_LIMB (0xCEC7F17ED22799A5), /* 1541 - 1732 (27 primes) */ \ + CNST_LIMB (0xEAEC17BDBB717D56), /* 1733 - 1924 (24 primes) */ \ + CNST_LIMB (0x3B0EB7B3585AFCF3), /* 1925 - 2116 (26 primes) */ \ + CNST_LIMB (0xE563D8F69FDF6C4F), /* 2117 - 2308 (23 primes) */ \ + CNST_LIMB (0xFE5BA7ABA45E92FC), /* 2309 - 2500 (25 primes) */ \ + CNST_LIMB (0x158DEE6F3BF49B7D), /* 2501 - 2692 (24 primes) */ \ + CNST_LIMB (0xBE5A7BC4EDE6CD1A), /* 2693 - 2884 (26 primes) */ \ + CNST_LIMB (0xD7679B3FCA7BB6AD), /* 2885 - 3076 (22 primes) */ \ + CNST_LIMB (0xC3F66B971FEF37E9), /* 3077 - 3268 (22 primes) */ \ + CNST_LIMB (0x6F7EBCF339C953FD), /* 3269 - 3460 (22 primes) */ \ + CNST_LIMB (0xD5A5ECDCD235DBF0), /* 3461 - 3652 (27 primes) */ \ + CNST_LIMB (0xECFA7B2FD5B65E3B), /* 3653 - 3844 (22 primes) */ \ + CNST_LIMB (0xD28EFDF9C89F67B1), /* 3845 - 4036 (25 primes) */ \ + CNST_LIMB (0xCB7F7C7A3DD3AF4F), /* 4037 - 4228 (21 primes) */ \ + CNST_LIMB (0xEEBED6CDFF6B32CC), /* 4229 - 4420 (22 primes) */ \ + CNST_LIMB (0xD5BD73F85ECFA97C), /* 4421 - 4612 (23 primes) */ \ + CNST_LIMB (0x21FDBE4FBBAD48F7), /* 4613 - 4804 (24 primes) */ \ + CNST_LIMB (0x5E35A3B5EEB7FDE7), /* 4805 - 4996 (21 primes) */ \ + CNST_LIMB (0xD9EBFD53A7DBBCC9), /* 4997 - 5188 (22 primes) */ \ + CNST_LIMB (0xFF9EDEAF2EFE1F76), /* 5189 - 5380 (18 primes) */ +#define PRIMESIEVE_NUMBEROF_TABLE 28 +/* #define PRIMESIEVE_PRIMES_IN_TABLE 706 */ +#define PRIMESIEVE_HIGHEST_PRIME 5351 +/* #define PRIMESIEVE_FIRST_UNCHECKED 5381 */ + +#define SIEVE_MASK1 CNST_LIMB(0x3204C1A049120485) +#define SIEVE_MASKT CNST_LIMB(0xA1204892058) +#define SIEVE_2MSK1 CNST_LIMB(0x29048402110840A) +#define SIEVE_2MSK2 CNST_LIMB(0x9402180C40230184) +#define SIEVE_2MSKT CNST_LIMB(0x5021088402120) + diff --git a/vere/ext/gmp/gen/aarch64-macos/trialdivtab.h b/vere/ext/gmp/gen/aarch64-macos/trialdivtab.h new file mode 100644 index 0000000..eb81d7f --- /dev/null +++ b/vere/ext/gmp/gen/aarch64-macos/trialdivtab.h @@ -0,0 +1,1214 @@ +#if GMP_LIMB_BITS != 64 +#error This table is for GMP_LIMB_BITS = 64 +#endif + +#if GMP_NAIL_BITS != 0 +#error This table does not support nails +#endif + +#ifdef WANT_dtab + P(3,CNST_LIMB(0xaaaaaaaaaaaaaaab),CNST_LIMB(0x5555555555555555)), + P(5,CNST_LIMB(0xcccccccccccccccd),CNST_LIMB(0x3333333333333333)), + P(7,CNST_LIMB(0x6db6db6db6db6db7),CNST_LIMB(0x2492492492492492)), + P(11,CNST_LIMB(0x2e8ba2e8ba2e8ba3),CNST_LIMB(0x1745d1745d1745d1)), + P(13,CNST_LIMB(0x4ec4ec4ec4ec4ec5),CNST_LIMB(0x13b13b13b13b13b1)), + P(17,CNST_LIMB(0xf0f0f0f0f0f0f0f1),CNST_LIMB(0xf0f0f0f0f0f0f0f)), + P(19,CNST_LIMB(0x86bca1af286bca1b),CNST_LIMB(0xd79435e50d79435)), + P(23,CNST_LIMB(0xd37a6f4de9bd37a7),CNST_LIMB(0xb21642c8590b216)), + P(29,CNST_LIMB(0x34f72c234f72c235),CNST_LIMB(0x8d3dcb08d3dcb08)), + P(31,CNST_LIMB(0xef7bdef7bdef7bdf),CNST_LIMB(0x842108421084210)), + P(37,CNST_LIMB(0x14c1bacf914c1bad),CNST_LIMB(0x6eb3e45306eb3e4)), + P(41,CNST_LIMB(0x8f9c18f9c18f9c19),CNST_LIMB(0x63e7063e7063e70)), + P(43,CNST_LIMB(0x82fa0be82fa0be83),CNST_LIMB(0x5f417d05f417d05)), + P(47,CNST_LIMB(0x51b3bea3677d46cf),CNST_LIMB(0x572620ae4c415c9)), + P(53,CNST_LIMB(0x21cfb2b78c13521d),CNST_LIMB(0x4d4873ecade304d)), + P(59,CNST_LIMB(0xcbeea4e1a08ad8f3),CNST_LIMB(0x456c797dd49c341)), + P(61,CNST_LIMB(0x4fbcda3ac10c9715),CNST_LIMB(0x4325c53ef368eb0)), + P(67,CNST_LIMB(0xf0b7672a07a44c6b),CNST_LIMB(0x3d226357e16ece5)), + P(71,CNST_LIMB(0x193d4bb7e327a977),CNST_LIMB(0x39b0ad12073615a)), + P(73,CNST_LIMB(0x7e3f1f8fc7e3f1f9),CNST_LIMB(0x381c0e070381c0e)), + P(79,CNST_LIMB(0x9b8b577e613716af),CNST_LIMB(0x33d91d2a2067b23)), + P(83,CNST_LIMB(0xa3784a062b2e43db),CNST_LIMB(0x3159721ed7e7534)), + P(89,CNST_LIMB(0xf47e8fd1fa3f47e9),CNST_LIMB(0x2e05c0b81702e05)), + P(97,CNST_LIMB(0xa3a0fd5c5f02a3a1),CNST_LIMB(0x2a3a0fd5c5f02a3)), + P(101,CNST_LIMB(0x3a4c0a237c32b16d),CNST_LIMB(0x288df0cac5b3f5d)), + P(103,CNST_LIMB(0xdab7ec1dd3431b57),CNST_LIMB(0x27c45979c95204f)), + P(107,CNST_LIMB(0x77a04c8f8d28ac43),CNST_LIMB(0x2647c69456217ec)), + P(109,CNST_LIMB(0xa6c0964fda6c0965),CNST_LIMB(0x2593f69b02593f6)), + P(113,CNST_LIMB(0x90fdbc090fdbc091),CNST_LIMB(0x243f6f0243f6f02)), + P(127,CNST_LIMB(0x7efdfbf7efdfbf7f),CNST_LIMB(0x204081020408102)), + P(131,CNST_LIMB(0x3e88cb3c9484e2b),CNST_LIMB(0x1f44659e4a42715)), + P(137,CNST_LIMB(0xe21a291c077975b9),CNST_LIMB(0x1de5d6e3f8868a4)), + P(139,CNST_LIMB(0x3aef6ca970586723),CNST_LIMB(0x1d77b654b82c339)), + P(149,CNST_LIMB(0xdf5b0f768ce2cabd),CNST_LIMB(0x1b7d6c3dda338b2)), + P(151,CNST_LIMB(0x6fe4dfc9bf937f27),CNST_LIMB(0x1b2036406c80d90)), + P(157,CNST_LIMB(0x5b4fe5e92c0685b5),CNST_LIMB(0x1a16d3f97a4b01a)), + P(163,CNST_LIMB(0x1f693a1c451ab30b),CNST_LIMB(0x1920fb49d0e228d)), + P(167,CNST_LIMB(0x8d07aa27db35a717),CNST_LIMB(0x1886e5f0abb0499)), + P(173,CNST_LIMB(0x882383b30d516325),CNST_LIMB(0x17ad2208e0ecc35)), + P(179,CNST_LIMB(0xed6866f8d962ae7b),CNST_LIMB(0x16e1f76b4337c6c)), + P(181,CNST_LIMB(0x3454dca410f8ed9d),CNST_LIMB(0x16a13cd15372904)), + P(191,CNST_LIMB(0x1d7ca632ee936f3f),CNST_LIMB(0x1571ed3c506b39a)), + P(193,CNST_LIMB(0x70bf015390948f41),CNST_LIMB(0x15390948f40feac)), + P(197,CNST_LIMB(0xc96bdb9d3d137e0d),CNST_LIMB(0x14cab88725af6e7)), + P(199,CNST_LIMB(0x2697cc8aef46c0f7),CNST_LIMB(0x149539e3b2d066e)), + P(211,CNST_LIMB(0xc0e8f2a76e68575b),CNST_LIMB(0x13698df3de07479)), + P(223,CNST_LIMB(0x687763dfdb43bb1f),CNST_LIMB(0x125e22708092f11)), + P(227,CNST_LIMB(0x1b10ea929ba144cb),CNST_LIMB(0x120b470c67c0d88)), + P(229,CNST_LIMB(0x1d10c4c0478bbced),CNST_LIMB(0x11e2ef3b3fb8744)), + P(233,CNST_LIMB(0x63fb9aeb1fdcd759),CNST_LIMB(0x119453808ca29c0)), + P(239,CNST_LIMB(0x64afaa4f437b2e0f),CNST_LIMB(0x112358e75d30336)), + P(241,CNST_LIMB(0xf010fef010fef011),CNST_LIMB(0x10fef010fef010f)), + P(251,CNST_LIMB(0x28cbfbeb9a020a33),CNST_LIMB(0x105197f7d734041)), + P(257,CNST_LIMB(0xff00ff00ff00ff01),CNST_LIMB(0xff00ff00ff00ff)), + P(263,CNST_LIMB(0xd624fd1470e99cb7),CNST_LIMB(0xf92fb2211855a8)), + P(269,CNST_LIMB(0x8fb3ddbd6205b5c5),CNST_LIMB(0xf3a0d52cba8723)), + P(271,CNST_LIMB(0xd57da36ca27acdef),CNST_LIMB(0xf1d48bcee0d399)), + P(277,CNST_LIMB(0xee70c03b25e4463d),CNST_LIMB(0xec979118f3fc4d)), + P(281,CNST_LIMB(0xc5b1a6b80749cb29),CNST_LIMB(0xe939651fe2d8d3)), + P(283,CNST_LIMB(0x47768073c9b97113),CNST_LIMB(0xe79372e225fe30)), + P(293,CNST_LIMB(0x2591e94884ce32ad),CNST_LIMB(0xdfac1f74346c57)), + P(307,CNST_LIMB(0xf02806abc74be1fb),CNST_LIMB(0xd578e97c3f5fe5)), + P(311,CNST_LIMB(0x7ec3e8f3a7198487),CNST_LIMB(0xd2ba083b445250)), + P(313,CNST_LIMB(0x58550f8a39409d09),CNST_LIMB(0xd161543e28e502)), + P(317,CNST_LIMB(0xec9e48ae6f71de15),CNST_LIMB(0xcebcf8bb5b4169)), + P(331,CNST_LIMB(0x2ff3a018bfce8063),CNST_LIMB(0xc5fe740317f9d0)), + P(337,CNST_LIMB(0x7f9ec3fcf61fe7b1),CNST_LIMB(0xc2780613c0309e)), + P(347,CNST_LIMB(0x89f5abe570e046d3),CNST_LIMB(0xbcdd535db1cc5b)), + P(349,CNST_LIMB(0xda971b23f1545af5),CNST_LIMB(0xbbc8408cd63069)), + P(353,CNST_LIMB(0x79d5f00b9a7862a1),CNST_LIMB(0xb9a7862a0ff465)), + P(359,CNST_LIMB(0x4dba1df32a128a57),CNST_LIMB(0xb68d31340e4307)), + P(367,CNST_LIMB(0x87530217b7747d8f),CNST_LIMB(0xb2927c29da5519)), + P(373,CNST_LIMB(0x30baae53bb5e06dd),CNST_LIMB(0xafb321a1496fdf)), + P(379,CNST_LIMB(0xee70206c12e9b5b3),CNST_LIMB(0xaceb0f891e6551)), + P(383,CNST_LIMB(0xcdde9462ec9dbe7f),CNST_LIMB(0xab1cbdd3e2970f)), + P(389,CNST_LIMB(0xafb64b05ec41cf4d),CNST_LIMB(0xa87917088e262b)), + P(397,CNST_LIMB(0x2944ff5aec02945),CNST_LIMB(0xa513fd6bb00a51)), + P(401,CNST_LIMB(0x2cb033128382df71),CNST_LIMB(0xa36e71a2cb0331)), + P(409,CNST_LIMB(0x1ccacc0c84b1c2a9),CNST_LIMB(0xa03c1688732b30)), + P(419,CNST_LIMB(0x19a93db575eb3a0b),CNST_LIMB(0x9c69169b30446d)), + P(421,CNST_LIMB(0xcebeef94fa86fe2d),CNST_LIMB(0x9baade8e4a2f6e)), + P(431,CNST_LIMB(0x6faa77fb3f8df54f),CNST_LIMB(0x980e4156201301)), + P(433,CNST_LIMB(0x68a58af00975a751),CNST_LIMB(0x975a750ff68a58)), + P(439,CNST_LIMB(0xd56e36d0c3efac07),CNST_LIMB(0x9548e4979e0829)), + P(443,CNST_LIMB(0xd8b44c47a8299b73),CNST_LIMB(0x93efd1c50e726b)), + P(449,CNST_LIMB(0x2d9ccaf9ba70e41),CNST_LIMB(0x91f5bcb8bb02d9)), + P(457,CNST_LIMB(0x985e1c023d9e879),CNST_LIMB(0x8f67a1e3fdc261)), + P(461,CNST_LIMB(0x2a343316c494d305),CNST_LIMB(0x8e2917e0e702c6)), + P(463,CNST_LIMB(0x70cb7916ab67652f),CNST_LIMB(0x8d8be33f95d715)), + P(467,CNST_LIMB(0xd398f132fb10fe5b),CNST_LIMB(0x8c55841c815ed5)), + P(479,CNST_LIMB(0x6f2a38a6bf54fa1f),CNST_LIMB(0x88d180cd3a4133)), + P(487,CNST_LIMB(0x211df689b98f81d7),CNST_LIMB(0x869222b1acf1ce)), + P(491,CNST_LIMB(0xe994983e90f1ec3),CNST_LIMB(0x85797b917765ab)), + P(499,CNST_LIMB(0xad671e44bed87f3b),CNST_LIMB(0x8355ace3c897db)), + P(503,CNST_LIMB(0xf9623a0516e70fc7),CNST_LIMB(0x824a4e60b3262b)), + P(509,CNST_LIMB(0x4b7129be9dece355),CNST_LIMB(0x80c121b28bd1ba)), + P(521,CNST_LIMB(0x190f3b7473f62c39),CNST_LIMB(0x7dc9f3397d4c29)), + P(523,CNST_LIMB(0x63dacc9aad46f9a3),CNST_LIMB(0x7d4ece8fe88139)), + P(541,CNST_LIMB(0xc1108fda24e8d035),CNST_LIMB(0x79237d65bcce50)), + P(547,CNST_LIMB(0xb77578472319bd8b),CNST_LIMB(0x77cf53c5f7936c)), + P(557,CNST_LIMB(0x473d20a1c7ed9da5),CNST_LIMB(0x75a8accfbdd11e)), + P(563,CNST_LIMB(0xfbe85af0fea2c8fb),CNST_LIMB(0x7467ac557c228e)), + P(569,CNST_LIMB(0x58a1f7e6ce0f4c09),CNST_LIMB(0x732d70ed8db8e9)), + P(571,CNST_LIMB(0x1a00e58c544986f3),CNST_LIMB(0x72c62a24c3797f)), + P(577,CNST_LIMB(0x7194a17f55a10dc1),CNST_LIMB(0x7194a17f55a10d)), + P(587,CNST_LIMB(0x7084944785e33763),CNST_LIMB(0x6fa549b41da7e7)), + P(593,CNST_LIMB(0xba10679bd84886b1),CNST_LIMB(0x6e8419e6f61221)), + P(599,CNST_LIMB(0xebe9c6bb31260967),CNST_LIMB(0x6d68b5356c207b)), + P(601,CNST_LIMB(0x97a3fe4bd1ff25e9),CNST_LIMB(0x6d0b803685c01b)), + P(607,CNST_LIMB(0x6c6388395b84d99f),CNST_LIMB(0x6bf790a8b2d207)), + P(613,CNST_LIMB(0x8c51da6a1335df6d),CNST_LIMB(0x6ae907ef4b96c2)), + P(617,CNST_LIMB(0x46f3234475d5add9),CNST_LIMB(0x6a37991a23aead)), + P(619,CNST_LIMB(0x905605ca3c619a43),CNST_LIMB(0x69dfbdd4295b66)), + P(631,CNST_LIMB(0xcee8dff304767747),CNST_LIMB(0x67dc4c45c8033e)), + P(641,CNST_LIMB(0xff99c27f00663d81),CNST_LIMB(0x663d80ff99c27f)), + P(643,CNST_LIMB(0xacca407f671ddc2b),CNST_LIMB(0x65ec17e3559948)), + P(647,CNST_LIMB(0xe71298bac1e12337),CNST_LIMB(0x654ac835cfba5c)), + P(653,CNST_LIMB(0xfa1e94309cd09045),CNST_LIMB(0x645c854ae10772)), + P(659,CNST_LIMB(0xbebccb8e91496b9b),CNST_LIMB(0x6372990e5f901f)), + P(661,CNST_LIMB(0x312fa30cc7d7b8bd),CNST_LIMB(0x6325913c07beef)), + P(673,CNST_LIMB(0x6160ff9e9f006161),CNST_LIMB(0x6160ff9e9f0061)), + P(677,CNST_LIMB(0x6b03673b5e28152d),CNST_LIMB(0x60cdb520e5e88e)), + P(683,CNST_LIMB(0xfe802ffa00bfe803),CNST_LIMB(0x5ff4017fd005ff)), + P(691,CNST_LIMB(0xe66fe25c9e907c7b),CNST_LIMB(0x5ed79e31a4dccd)), + P(701,CNST_LIMB(0x3f8b236c76528895),CNST_LIMB(0x5d7d42d48ac5ef)), + P(709,CNST_LIMB(0xf6f923bf01ce2c0d),CNST_LIMB(0x5c6f35ccba5028)), + P(719,CNST_LIMB(0x6c3d3d98bed7c42f),CNST_LIMB(0x5b2618ec6ad0a5)), + P(727,CNST_LIMB(0x30981efcd4b010e7),CNST_LIMB(0x5a2553748e42e7)), + P(733,CNST_LIMB(0x6f691fc81ebbe575),CNST_LIMB(0x59686cf744cd5b)), + P(739,CNST_LIMB(0xb10480ddb47b52cb),CNST_LIMB(0x58ae97bab79976)), + P(743,CNST_LIMB(0x74cd59ed64f3f0d7),CNST_LIMB(0x58345f1876865f)), + P(751,CNST_LIMB(0x105cb81316d6c0f),CNST_LIMB(0x5743d5bb24795a)), + P(757,CNST_LIMB(0x9be64c6d91c1195d),CNST_LIMB(0x5692c4d1ab74ab)), + P(761,CNST_LIMB(0x71b3f945a27b1f49),CNST_LIMB(0x561e46a4d5f337)), + P(769,CNST_LIMB(0x77d80d50e508fd01),CNST_LIMB(0x5538ed06533997)), + P(773,CNST_LIMB(0xa5eb778e133551cd),CNST_LIMB(0x54c807f2c0bec2)), + P(787,CNST_LIMB(0x18657d3c2d8a3f1b),CNST_LIMB(0x5345efbc572d36)), + P(797,CNST_LIMB(0x2e40e220c34ad735),CNST_LIMB(0x523a758f941345)), + P(809,CNST_LIMB(0xa76593c70a714919),CNST_LIMB(0x5102370f816c89)), + P(811,CNST_LIMB(0x1eef452124eea383),CNST_LIMB(0x50cf129fb94acf)), + P(821,CNST_LIMB(0x38206dc242ba771d),CNST_LIMB(0x4fd31941cafdd1)), + P(823,CNST_LIMB(0x4cd4c35807772287),CNST_LIMB(0x4fa1704aa75945)), + P(827,CNST_LIMB(0x83de917d5e69ddf3),CNST_LIMB(0x4f3ed6d45a63ad)), + P(829,CNST_LIMB(0x882ef0403b4a6c15),CNST_LIMB(0x4f0de57154ebed)), + P(839,CNST_LIMB(0xf8fb6c51c606b677),CNST_LIMB(0x4e1cae8815f811)), + P(853,CNST_LIMB(0xb4abaac446d3e1fd),CNST_LIMB(0x4cd47ba5f6ff19)), + P(857,CNST_LIMB(0xa9f83bbe484a14e9),CNST_LIMB(0x4c78ae734df709)), + P(859,CNST_LIMB(0xbebbc0d1ce874d3),CNST_LIMB(0x4c4b19ed85cfb8)), + P(863,CNST_LIMB(0xbd418eaf0473189f),CNST_LIMB(0x4bf093221d1218)), + P(877,CNST_LIMB(0x44e3af6f372b7e65),CNST_LIMB(0x4aba3c21dc633f)), + P(881,CNST_LIMB(0xc87fdace4f9e5d91),CNST_LIMB(0x4a6360c344de00)), + P(883,CNST_LIMB(0xec93479c446bd9bb),CNST_LIMB(0x4a383e9f74d68a)), + P(887,CNST_LIMB(0xdac4d592e777c647),CNST_LIMB(0x49e28fbabb9940)), + P(907,CNST_LIMB(0xa63ea8c8f61f0c23),CNST_LIMB(0x48417b57c78cd7)), + P(911,CNST_LIMB(0xe476062ea5cbbb6f),CNST_LIMB(0x47f043713f3a2b)), + P(919,CNST_LIMB(0xdf68761c69daac27),CNST_LIMB(0x474ff2a10281cf)), + P(929,CNST_LIMB(0xb813d737637aa061),CNST_LIMB(0x468b6f9a978f91)), + P(937,CNST_LIMB(0xa3a77aac1fb15099),CNST_LIMB(0x45f13f1caff2e2)), + P(941,CNST_LIMB(0x17f0c3e0712c5825),CNST_LIMB(0x45a5228cec23e9)), + P(947,CNST_LIMB(0xfd912a70ff30637b),CNST_LIMB(0x45342c556c66b9)), + P(953,CNST_LIMB(0xfbb3b5dc01131289),CNST_LIMB(0x44c4a23feeced7)), + P(967,CNST_LIMB(0x856d560a0f5acdf7),CNST_LIMB(0x43c5c20d3c9fe6)), + P(971,CNST_LIMB(0x96472f314d3f89e3),CNST_LIMB(0x437e494b239798)), + P(977,CNST_LIMB(0xa76f5c7ed2253531),CNST_LIMB(0x43142d118e47cb)), + P(983,CNST_LIMB(0x816eae7c7bf69fe7),CNST_LIMB(0x42ab5c73a13458)), + P(991,CNST_LIMB(0xb6a2bea4cfb1781f),CNST_LIMB(0x4221950db0f3db)), + P(997,CNST_LIMB(0xa3900c53318e81ed),CNST_LIMB(0x41bbb2f80a4553)), + P(1009,CNST_LIMB(0x60aa7f5d9f148d11),CNST_LIMB(0x40f391612c6680)), + P(1013,CNST_LIMB(0x6be8c0102c7a505d),CNST_LIMB(0x40b1e94173fefd)), + P(1019,CNST_LIMB(0x8ff3f0ed28728f33),CNST_LIMB(0x4050647d9d0445)), + P(1021,CNST_LIMB(0x680e0a87e5ec7155),CNST_LIMB(0x4030241b144f3b)), + P(1031,CNST_LIMB(0xbbf70fa49fe829b7),CNST_LIMB(0x3f90c2ab542cb1)), + P(1033,CNST_LIMB(0xd69d1e7b6a50ca39),CNST_LIMB(0x3f71412d59f597)), + P(1039,CNST_LIMB(0x1a1e0f46b6d26aef),CNST_LIMB(0x3f137701b98841)), + P(1049,CNST_LIMB(0x7429f9a7a8251829),CNST_LIMB(0x3e79886b60e278)), + P(1051,CNST_LIMB(0xd9c2219d1b863613),CNST_LIMB(0x3e5b1916a7181d)), + P(1061,CNST_LIMB(0x91406c1820d077ad),CNST_LIMB(0x3dc4a50968f524)), + P(1063,CNST_LIMB(0x521f4ec02e3d2b97),CNST_LIMB(0x3da6e4c9550321)), + P(1069,CNST_LIMB(0xbb8283b63dc8eba5),CNST_LIMB(0x3d4e4f06f1def3)), + P(1087,CNST_LIMB(0x431eda153229ebbf),CNST_LIMB(0x3c4a6bdd24f9a4)), + P(1091,CNST_LIMB(0xaf0bf78d7e01686b),CNST_LIMB(0x3c11d54b525c73)), + P(1093,CNST_LIMB(0xa9ced0742c086e8d),CNST_LIMB(0x3bf5b1c5721065)), + P(1097,CNST_LIMB(0xc26458ad9f632df9),CNST_LIMB(0x3bbdb9862f23b4)), + P(1103,CNST_LIMB(0xbbff1255dff892af),CNST_LIMB(0x3b6a8801db5440)), + P(1109,CNST_LIMB(0xcbd49a333f04d8fd),CNST_LIMB(0x3b183cf0fed886)), + P(1117,CNST_LIMB(0xec84ed6f9cfdeff5),CNST_LIMB(0x3aabe394bdc3f4)), + P(1123,CNST_LIMB(0x97980cc40bda9d4b),CNST_LIMB(0x3a5ba3e76156da)), + P(1129,CNST_LIMB(0x777f34d524f5cbd9),CNST_LIMB(0x3a0c3e953378db)), + P(1151,CNST_LIMB(0x2797051d94cbbb7f),CNST_LIMB(0x38f03561320b1e)), + P(1153,CNST_LIMB(0xea769051b4f43b81),CNST_LIMB(0x38d6ecaef5908a)), + P(1163,CNST_LIMB(0xce7910f3034d4323),CNST_LIMB(0x3859cf221e6069)), + P(1171,CNST_LIMB(0x92791d1374f5b99b),CNST_LIMB(0x37f7415dc9588a)), + P(1181,CNST_LIMB(0x89a5645cc68ea1b5),CNST_LIMB(0x377df0d3902626)), + P(1187,CNST_LIMB(0x5f8aacf796c0cf0b),CNST_LIMB(0x373622136907fa)), + P(1193,CNST_LIMB(0xf2e90a15e33edf99),CNST_LIMB(0x36ef0c3b39b92f)), + P(1201,CNST_LIMB(0x8e99e5feb897c451),CNST_LIMB(0x36915f47d55e6d)), + P(1213,CNST_LIMB(0xaca2eda38fb91695),CNST_LIMB(0x36072cf3f866fd)), + P(1217,CNST_LIMB(0x5d9b737be5ea8b41),CNST_LIMB(0x35d9b737be5ea8)), + P(1223,CNST_LIMB(0x4aefe1db93fd7cf7),CNST_LIMB(0x35961559cc81c7)), + P(1229,CNST_LIMB(0xa0994ef20b3f8805),CNST_LIMB(0x35531c897a4592)), + P(1231,CNST_LIMB(0x103890bda912822f),CNST_LIMB(0x353ceebd3e98a4)), + P(1237,CNST_LIMB(0xb441659d13a9147d),CNST_LIMB(0x34fad381585e5e)), + P(1249,CNST_LIMB(0x1e2134440c4c3f21),CNST_LIMB(0x347884d1103130)), + P(1259,CNST_LIMB(0x263a27727a6883c3),CNST_LIMB(0x340dd3ac39bf56)), + P(1277,CNST_LIMB(0x78e221472ab33855),CNST_LIMB(0x3351fdfecc140c)), + P(1279,CNST_LIMB(0x95eac88e82e6faff),CNST_LIMB(0x333d72b089b524)), + P(1283,CNST_LIMB(0xf66c258317be8dab),CNST_LIMB(0x33148d44d6b261)), + P(1289,CNST_LIMB(0x9ee202c7cb91939),CNST_LIMB(0x32d7aef8412458)), + P(1291,CNST_LIMB(0x8d2fca1042a09ea3),CNST_LIMB(0x32c3850e79c0f1)), + P(1297,CNST_LIMB(0x82779c856d8b8bf1),CNST_LIMB(0x328766d59048a2)), + P(1301,CNST_LIMB(0x3879361cba8a223d),CNST_LIMB(0x325fa18cb11833)), + P(1303,CNST_LIMB(0xf23f43639c3182a7),CNST_LIMB(0x324bd659327e22)), + P(1307,CNST_LIMB(0xa03868fc474bcd13),CNST_LIMB(0x32246e784360f4)), + P(1319,CNST_LIMB(0x651e78b8c5311a97),CNST_LIMB(0x31afa5f1a33a08)), + P(1321,CNST_LIMB(0x8ffce639c00c6719),CNST_LIMB(0x319c63ff398e70)), + P(1327,CNST_LIMB(0xf7b460754b0b61cf),CNST_LIMB(0x3162f7519a86a7)), + P(1361,CNST_LIMB(0x7b03f3359b8e63b1),CNST_LIMB(0x30271fc9d3fc3c)), + P(1367,CNST_LIMB(0xa55c5326041eb667),CNST_LIMB(0x2ff104ae89750b)), + P(1373,CNST_LIMB(0x647f88ab896a76f5),CNST_LIMB(0x2fbb62a236d133)), + P(1381,CNST_LIMB(0x8fd971434a55a46d),CNST_LIMB(0x2f74997d2070b4)), + P(1399,CNST_LIMB(0x9fbf969958046447),CNST_LIMB(0x2ed84aa8b6fce3)), + P(1409,CNST_LIMB(0x9986feba69be3a81),CNST_LIMB(0x2e832df7a46dbd)), + P(1423,CNST_LIMB(0xa668b3e6d053796f),CNST_LIMB(0x2e0e0846857cab)), + P(1427,CNST_LIMB(0x97694e6589f4e09b),CNST_LIMB(0x2decfbdfb55ee6)), + P(1429,CNST_LIMB(0x37890c00b7721dbd),CNST_LIMB(0x2ddc876f3ff488)), + P(1433,CNST_LIMB(0x5ac094a235f37ea9),CNST_LIMB(0x2dbbc1d4c482c4)), + P(1439,CNST_LIMB(0x31cff775f2d5d65f),CNST_LIMB(0x2d8af0e0de0556)), + P(1447,CNST_LIMB(0xddad8e6b36505217),CNST_LIMB(0x2d4a7b7d14b30a)), + P(1451,CNST_LIMB(0x5a27df897062cd03),CNST_LIMB(0x2d2a85073bcf4e)), + P(1453,CNST_LIMB(0xe2396fe0fdb5a625),CNST_LIMB(0x2d1a9ab13e8be4)), + P(1459,CNST_LIMB(0xb352a4957e82317b),CNST_LIMB(0x2ceb1eb4b9fd8b)), + P(1471,CNST_LIMB(0xd8ab3f2c60c2ea3f),CNST_LIMB(0x2c8d503a79794c)), + P(1481,CNST_LIMB(0x6893f702f0452479),CNST_LIMB(0x2c404d708784ed)), + P(1483,CNST_LIMB(0x9686fdc182acf7e3),CNST_LIMB(0x2c31066315ec52)), + P(1487,CNST_LIMB(0x6854037173dce12f),CNST_LIMB(0x2c1297d80f2664)), + P(1489,CNST_LIMB(0x7f0ded1685c27331),CNST_LIMB(0x2c037044c55f6b)), + P(1493,CNST_LIMB(0xeeda72e1fe490b7d),CNST_LIMB(0x2be5404cd13086)), + P(1499,CNST_LIMB(0x9e7bfc959a8e6e53),CNST_LIMB(0x2bb845adaf0cce)), + P(1511,CNST_LIMB(0x49b314d6d4753dd7),CNST_LIMB(0x2b5f62c639f16d)), + P(1523,CNST_LIMB(0x2e8f8c5ac4aa1b3b),CNST_LIMB(0x2b07e6734f2b88)), + P(1531,CNST_LIMB(0xb8ef723481163d33),CNST_LIMB(0x2ace569d8342b7)), + P(1543,CNST_LIMB(0x6a2ec96a594287b7),CNST_LIMB(0x2a791d5dbd4dcf)), + P(1549,CNST_LIMB(0xdba41c6d13aab8c5),CNST_LIMB(0x2a4eff8113017c)), + P(1553,CNST_LIMB(0xc2adbe648dc3aaf1),CNST_LIMB(0x2a3319e156df32)), + P(1559,CNST_LIMB(0x87a2bade565f91a7),CNST_LIMB(0x2a0986286526ea)), + P(1567,CNST_LIMB(0x4d6fe8798c01f5df),CNST_LIMB(0x29d29551d91e39)), + P(1571,CNST_LIMB(0x3791310c8c23d98b),CNST_LIMB(0x29b7529e109f0a)), + P(1579,CNST_LIMB(0xf80e446b01228883),CNST_LIMB(0x298137491ea465)), + P(1583,CNST_LIMB(0x9aed1436fbf500cf),CNST_LIMB(0x29665e1eb9f9da)), + P(1597,CNST_LIMB(0x7839b54cc8b24115),CNST_LIMB(0x2909752e019a5e)), + P(1601,CNST_LIMB(0xc128c646ad0309c1),CNST_LIMB(0x28ef35e2e5efb0)), + P(1607,CNST_LIMB(0x14de631624a3c377),CNST_LIMB(0x28c815aa4b8278)), + P(1609,CNST_LIMB(0x3f7b9fe68b0ecbf9),CNST_LIMB(0x28bb1b867199da)), + P(1613,CNST_LIMB(0x284ffd75ec00a285),CNST_LIMB(0x28a13ff5d7b002)), + P(1619,CNST_LIMB(0x37803cb80dea2ddb),CNST_LIMB(0x287ab3f173e755)), + P(1621,CNST_LIMB(0x86b63f7c9ac4c6fd),CNST_LIMB(0x286dead67713bd)), + P(1627,CNST_LIMB(0x8b6851d1bd99b9d3),CNST_LIMB(0x2847bfcda6503e)), + P(1637,CNST_LIMB(0xb62fda77ca343b6d),CNST_LIMB(0x2808c1ea6b4777)), + P(1657,CNST_LIMB(0x1f0dc009e34383c9),CNST_LIMB(0x278d0e0f23ff61)), + P(1663,CNST_LIMB(0x496dc21ddd35b97f),CNST_LIMB(0x2768863c093c7f)), + P(1667,CNST_LIMB(0xb0e96ce17090f82b),CNST_LIMB(0x27505115a73ca8)), + P(1669,CNST_LIMB(0xaadf05acdd7d024d),CNST_LIMB(0x274441a61dc1b9)), + P(1693,CNST_LIMB(0xcb138196746eafb5),CNST_LIMB(0x26b5c166113cf0)), + P(1697,CNST_LIMB(0x347f523736755d61),CNST_LIMB(0x269e65ad07b18e)), + P(1699,CNST_LIMB(0xd14a48a051f7dd0b),CNST_LIMB(0x2692c25f877560)), + P(1709,CNST_LIMB(0x474d71b1ce914d25),CNST_LIMB(0x2658fa7523cd11)), + P(1721,CNST_LIMB(0x386063f5e28c1f89),CNST_LIMB(0x26148710cf0f9e)), + P(1723,CNST_LIMB(0x1db7325e32d04e73),CNST_LIMB(0x2609363b22524f)), + P(1733,CNST_LIMB(0xfef748d3893b880d),CNST_LIMB(0x25d1065a1c1122)), + P(1741,CNST_LIMB(0x2f3351506e935605),CNST_LIMB(0x25a48a382b863f)), + P(1747,CNST_LIMB(0x7a3637fa2376415b),CNST_LIMB(0x25837190eccdbc)), + P(1753,CNST_LIMB(0x4ac525d2baa21969),CNST_LIMB(0x256292e95d510c)), + P(1759,CNST_LIMB(0x3a11c16b42cd351f),CNST_LIMB(0x2541eda98d068c)), + P(1777,CNST_LIMB(0x6c7abde0049c2a11),CNST_LIMB(0x24e15087fed8f5)), + P(1783,CNST_LIMB(0x54dad0303e069ac7),CNST_LIMB(0x24c18b20979e5d)), + P(1787,CNST_LIMB(0xebf1ac9fdfe91433),CNST_LIMB(0x24ac7b336de0c5)), + P(1789,CNST_LIMB(0xfafdda8237cec655),CNST_LIMB(0x24a1fc478c60bb)), + P(1801,CNST_LIMB(0xdce3ff6e71ffb739),CNST_LIMB(0x2463801231c009)), + P(1811,CNST_LIMB(0xbed5737d6286db1b),CNST_LIMB(0x24300fd506ed33)), + P(1823,CNST_LIMB(0xe479e431fe08b4df),CNST_LIMB(0x23f314a494da81)), + P(1831,CNST_LIMB(0x9dd9b0dd7742f897),CNST_LIMB(0x23cadedd2fad3a)), + P(1847,CNST_LIMB(0x8f09d7402c5a5e87),CNST_LIMB(0x237b7ed2664a03)), + P(1861,CNST_LIMB(0x9216d5c4d958738d),CNST_LIMB(0x23372967dbaf1d)), + P(1867,CNST_LIMB(0xb3139ba11d34ca63),CNST_LIMB(0x231a308a371f20)), + P(1871,CNST_LIMB(0x47d54f7ed644afaf),CNST_LIMB(0x2306fa63e1e600)), + P(1873,CNST_LIMB(0x92a81d85cf11a1b1),CNST_LIMB(0x22fd6731575684)), + P(1877,CNST_LIMB(0x754b26533253bdfd),CNST_LIMB(0x22ea507805749c)), + P(1879,CNST_LIMB(0xbbe0efc980bfd467),CNST_LIMB(0x22e0cce8b3d720)), + P(1889,CNST_LIMB(0xc0d8d594f024dca1),CNST_LIMB(0x22b1887857d161)), + P(1901,CNST_LIMB(0x8238d43bcaac1a65),CNST_LIMB(0x227977fcc49cc0)), + P(1907,CNST_LIMB(0x27779c1fae6175bb),CNST_LIMB(0x225db37b5e5f4f)), + P(1913,CNST_LIMB(0xa746ca9af708b2c9),CNST_LIMB(0x22421b91322ed6)), + P(1931,CNST_LIMB(0x93f3cd9f389be823),CNST_LIMB(0x21f05b35f52102)), + P(1933,CNST_LIMB(0x5cb4a4c04c489345),CNST_LIMB(0x21e75de5c70d60)), + P(1949,CNST_LIMB(0xbf6047743e85b6b5),CNST_LIMB(0x21a01d6c19be96)), + P(1951,CNST_LIMB(0x61c147831563545f),CNST_LIMB(0x21974a6615c81a)), + P(1973,CNST_LIMB(0xedb47c0ae62dee9d),CNST_LIMB(0x213767697cf36a)), + P(1979,CNST_LIMB(0xa3824386673a573),CNST_LIMB(0x211d9f7fad35f1)), + P(1987,CNST_LIMB(0xa4a77d19e575a0eb),CNST_LIMB(0x20fb7d9dd36c18)), + P(1993,CNST_LIMB(0xa2bee045e066c279),CNST_LIMB(0x20e2123d661e0e)), + P(1997,CNST_LIMB(0xc23618de8ab43d05),CNST_LIMB(0x20d135b66ae990)), + P(1999,CNST_LIMB(0x266b515216cb9f2f),CNST_LIMB(0x20c8cded4d7a8e)), + P(2003,CNST_LIMB(0xe279edd9e9c2e85b),CNST_LIMB(0x20b80b3f43ddbf)), + P(2011,CNST_LIMB(0xd0c591c221dc9c53),CNST_LIMB(0x2096b9180f46a6)), + P(2017,CNST_LIMB(0x6da8ee9c9ee7c21),CNST_LIMB(0x207de7e28de5da)), + P(2027,CNST_LIMB(0x9dfebcaf4c27e8c3),CNST_LIMB(0x2054dec8cf1fb3)), + P(2029,CNST_LIMB(0x49aeff9f19dd6de5),CNST_LIMB(0x204cb630b3aab5)), + P(2039,CNST_LIMB(0x86976a57a296e9c7),CNST_LIMB(0x202428adc37beb)), + P(2053,CNST_LIMB(0xa3b9abf4872b84cd),CNST_LIMB(0x1fec0c7834def4)), + P(2063,CNST_LIMB(0x34fca6483895e6ef),CNST_LIMB(0x1fc46fae98a1d0)), + P(2069,CNST_LIMB(0x34b5a333988f873d),CNST_LIMB(0x1facda430ff619)), + P(2081,CNST_LIMB(0xd9dd4f19b5f17be1),CNST_LIMB(0x1f7e17dd8e15e5)), + P(2083,CNST_LIMB(0xb935b507fd0ce78b),CNST_LIMB(0x1f765a3556a4ee)), + P(2087,CNST_LIMB(0xb450f5540660e797),CNST_LIMB(0x1f66ea49d802f1)), + P(2089,CNST_LIMB(0x63ff82831ffc1419),CNST_LIMB(0x1f5f3800faf9c0)), + P(2099,CNST_LIMB(0x8992f718c22a32fb),CNST_LIMB(0x1f38f4e6c0f1f9)), + P(2111,CNST_LIMB(0x5f3253ad0d37e7bf),CNST_LIMB(0x1f0b8546752578)), + P(2113,CNST_LIMB(0x7c0ffe0fc007c1),CNST_LIMB(0x1f03ff83f001f0)), + P(2129,CNST_LIMB(0x4d8ebadc0c0640b1),CNST_LIMB(0x1ec853b0a3883c)), + P(2131,CNST_LIMB(0xe2729af831037bdb),CNST_LIMB(0x1ec0ee573723eb)), + P(2137,CNST_LIMB(0xb8f64bf30feebfe9),CNST_LIMB(0x1eaad38e6f6894)), + P(2141,CNST_LIMB(0xda93124b544c0bf5),CNST_LIMB(0x1e9c28a765fe53)), + P(2143,CNST_LIMB(0x9cf7ff0b593c539f),CNST_LIMB(0x1e94d8758c2003)), + P(2153,CNST_LIMB(0xd6bd8861fa0e07d9),CNST_LIMB(0x1e707ba8f65e68)), + P(2161,CNST_LIMB(0x5cfe75c0bd8ab891),CNST_LIMB(0x1e53a2a68f574e)), + P(2179,CNST_LIMB(0x43e808757c2e862b),CNST_LIMB(0x1e1380a56b438d)), + P(2203,CNST_LIMB(0x90caa96d595c9d93),CNST_LIMB(0x1dbf9f513a3802)), + P(2207,CNST_LIMB(0x8fd550625d07135f),CNST_LIMB(0x1db1d1d58bc600)), + P(2213,CNST_LIMB(0x76b010a86e209f2d),CNST_LIMB(0x1d9d358f53de38)), + P(2221,CNST_LIMB(0xecc0426447769b25),CNST_LIMB(0x1d81e6df6165c7)), + P(2237,CNST_LIMB(0xe381339caabe3295),CNST_LIMB(0x1d4bdf7fd40e30)), + P(2239,CNST_LIMB(0xd1b190a2d0c7673f),CNST_LIMB(0x1d452c7a1c958d)), + P(2243,CNST_LIMB(0xc3bce3cf26b0e7eb),CNST_LIMB(0x1d37cf9b902659)), + P(2251,CNST_LIMB(0x5f87e76f56c61ce3),CNST_LIMB(0x1d1d3a5791e97b)), + P(2267,CNST_LIMB(0xc06c6857a124b353),CNST_LIMB(0x1ce89fe6b47416)), + P(2269,CNST_LIMB(0x38c040fcba630f75),CNST_LIMB(0x1ce219f3235071)), + P(2273,CNST_LIMB(0xd078bc4fbd533b21),CNST_LIMB(0x1cd516dcf92139)), + P(2281,CNST_LIMB(0xde8e15c5dd354f59),CNST_LIMB(0x1cbb33bd1c2b8b)), + P(2287,CNST_LIMB(0xca61d53d7414260f),CNST_LIMB(0x1ca7e7d2546688)), + P(2293,CNST_LIMB(0xb56bf5ba8eae635d),CNST_LIMB(0x1c94b5c1b3dbd3)), + P(2297,CNST_LIMB(0x44a72cb0fb6e3949),CNST_LIMB(0x1c87f7f9c241c1)), + P(2309,CNST_LIMB(0x879839a714f45bcd),CNST_LIMB(0x1c6202706c35a9)), + P(2311,CNST_LIMB(0x2a8994fde5314b7),CNST_LIMB(0x1c5bb8a9437632)), + P(2333,CNST_LIMB(0xb971920cf2b90135),CNST_LIMB(0x1c174343b4111e)), + P(2339,CNST_LIMB(0x8a8fd0b7df9a6e8b),CNST_LIMB(0x1c04d0d3e46b42)), + P(2341,CNST_LIMB(0xb31f9a84c1c6eaad),CNST_LIMB(0x1bfeb00fbf4308)), + P(2347,CNST_LIMB(0x92293b02823c6d83),CNST_LIMB(0x1bec5dce0b202d)), + P(2351,CNST_LIMB(0xeee77ff20fe5ddcf),CNST_LIMB(0x1be03444620037)), + P(2357,CNST_LIMB(0xe1ea0f6c496c11d),CNST_LIMB(0x1bce09c66f6fc3)), + P(2371,CNST_LIMB(0xfdf2d3d6f88ccb6b),CNST_LIMB(0x1ba40228d02b30)), + P(2377,CNST_LIMB(0xfa9d74a3457738f9),CNST_LIMB(0x1b9225b1cf8919)), + P(2381,CNST_LIMB(0xefc3ca3db71a5785),CNST_LIMB(0x1b864a2ff3f53f)), + P(2383,CNST_LIMB(0x8e2071718d0d6daf),CNST_LIMB(0x1b80604150e49b)), + P(2389,CNST_LIMB(0xbc0fdbfeb6cfabfd),CNST_LIMB(0x1b6eb1aaeaacf3)), + P(2393,CNST_LIMB(0x1eeab613e5e5aee9),CNST_LIMB(0x1b62f48da3c8cc)), + P(2399,CNST_LIMB(0x2d2388e90e9e929f),CNST_LIMB(0x1b516babe96092)), + P(2411,CNST_LIMB(0x81dbafba588ddb43),CNST_LIMB(0x1b2e9cef1e0c87)), + P(2417,CNST_LIMB(0x52eebc51c4799791),CNST_LIMB(0x1b1d56bedc849b)), + P(2423,CNST_LIMB(0x1c6bc4693b45a047),CNST_LIMB(0x1b0c267546aec0)), + P(2437,CNST_LIMB(0x6eee0974498874d),CNST_LIMB(0x1ae45f62024fa0)), + P(2441,CNST_LIMB(0xd85b7377a9953cb9),CNST_LIMB(0x1ad917631b5f54)), + P(2447,CNST_LIMB(0x4b6df412d4caf56f),CNST_LIMB(0x1ac83d18cb608f)), + P(2459,CNST_LIMB(0x6b8afbbb4a053493),CNST_LIMB(0x1aa6c7ad8c063f)), + P(2467,CNST_LIMB(0xcc5299c96ac7720b),CNST_LIMB(0x1a90a7b1228e2a)), + P(2473,CNST_LIMB(0xadce84b5c710aa99),CNST_LIMB(0x1a8027c03ba059)), + P(2477,CNST_LIMB(0x9d673f5aa3804225),CNST_LIMB(0x1a7533289deb89)), + P(2503,CNST_LIMB(0xe6541268efbce7f7),CNST_LIMB(0x1a2ed7ce16b49f)), + P(2521,CNST_LIMB(0xfcf41e76cf5be669),CNST_LIMB(0x19fefc0a279a73)), + P(2531,CNST_LIMB(0x5c3eb5dc31c383cb),CNST_LIMB(0x19e4b0cd873b5f)), + P(2539,CNST_LIMB(0x301832d11d8ad6c3),CNST_LIMB(0x19cfcdfd60e514)), + P(2543,CNST_LIMB(0x2e9c0942f1ce450f),CNST_LIMB(0x19c56932d66c85)), + P(2549,CNST_LIMB(0x97f3f2be37a39a5d),CNST_LIMB(0x19b5e1ab6fc7c2)), + P(2551,CNST_LIMB(0xe8b7d8a9654187c7),CNST_LIMB(0x19b0b8a62f2a73)), + P(2557,CNST_LIMB(0xb5d024d7da5b1b55),CNST_LIMB(0x19a149fc98942c)), + P(2579,CNST_LIMB(0xb8ba9d6e7ae3501b),CNST_LIMB(0x1969517ec25b85)), + P(2591,CNST_LIMB(0xf50865f71b90f1df),CNST_LIMB(0x194b3083360ba8)), + P(2593,CNST_LIMB(0x739c1682847df9e1),CNST_LIMB(0x194631f4bebdc1)), + P(2609,CNST_LIMB(0xc470a4d842b90ed1),CNST_LIMB(0x191e84127268fd)), + P(2617,CNST_LIMB(0x1fb1be11698cc409),CNST_LIMB(0x190adbb543984f)), + P(2621,CNST_LIMB(0xd8d5512a7cd35d15),CNST_LIMB(0x1901130bd18200)), + P(2633,CNST_LIMB(0xa5496821723e07f9),CNST_LIMB(0x18e3e6b889ac94)), + P(2647,CNST_LIMB(0xbcc8c6d7abaa8167),CNST_LIMB(0x18c233420e1ec1)), + P(2657,CNST_LIMB(0x52c396c95eb619a1),CNST_LIMB(0x18aa5872d92bd6)), + P(2659,CNST_LIMB(0x6eb7e380878ec74b),CNST_LIMB(0x18a5989945ccf9)), + P(2663,CNST_LIMB(0x3d5513b504537157),CNST_LIMB(0x189c1e60b57f60)), + P(2671,CNST_LIMB(0x314391f8862e948f),CNST_LIMB(0x18893fbc8690b9)), + P(2677,CNST_LIMB(0xdc0b17cfcd81f5dd),CNST_LIMB(0x187b2bb3e1041c)), + P(2683,CNST_LIMB(0x2f6bea3ec89044b3),CNST_LIMB(0x186d27c9cdcfb8)), + P(2687,CNST_LIMB(0xce13a05869f1b57f),CNST_LIMB(0x1863d8bf4f2c1c)), + P(2689,CNST_LIMB(0x7593474e8ace3581),CNST_LIMB(0x185f33e2ad7593)), + P(2693,CNST_LIMB(0x7fc329295a05e4d),CNST_LIMB(0x1855ef75973e13)), + P(2699,CNST_LIMB(0xb05377cba4908d23),CNST_LIMB(0x1848160153f134)), + P(2707,CNST_LIMB(0xe7b2131a628aa39b),CNST_LIMB(0x1835b72e6f0656)), + P(2711,CNST_LIMB(0x9031dbed7de01527),CNST_LIMB(0x182c922d83eb39)), + P(2713,CNST_LIMB(0x76844b1c670aa9a9),CNST_LIMB(0x18280243c0365a)), + P(2719,CNST_LIMB(0x6a03f4533b08915f),CNST_LIMB(0x181a5cd5898e73)), + P(2729,CNST_LIMB(0x1dbca579db0a3999),CNST_LIMB(0x1803c0961773aa)), + P(2731,CNST_LIMB(0x2ffe800bffa003),CNST_LIMB(0x17ff4005ffd001)), + P(2741,CNST_LIMB(0x478ab1a3e936139d),CNST_LIMB(0x17e8d670433edb)), + P(2749,CNST_LIMB(0x66e722bc4c5cc095),CNST_LIMB(0x17d7066cf4bb5d)), + P(2753,CNST_LIMB(0x7a8f63c717278541),CNST_LIMB(0x17ce285b806b1f)), + P(2767,CNST_LIMB(0xdf6eee24d292bc2f),CNST_LIMB(0x17af52cdf27e02)), + P(2777,CNST_LIMB(0x9fc20d17237dd569),CNST_LIMB(0x17997d47d01039)), + P(2789,CNST_LIMB(0xcdf9932356bda2ed),CNST_LIMB(0x177f7ec2c6d0ba)), + P(2791,CNST_LIMB(0x97b5e332e80f68d7),CNST_LIMB(0x177b2f3cd00756)), + P(2797,CNST_LIMB(0x46eee26fd875e2e5),CNST_LIMB(0x176e4a22f692a0)), + P(2801,CNST_LIMB(0x3548a8e65157a611),CNST_LIMB(0x1765b94271e11b)), + P(2803,CNST_LIMB(0xc288d03be9b71e3b),CNST_LIMB(0x1761732b044ae4)), + P(2819,CNST_LIMB(0x8151186db38937ab),CNST_LIMB(0x173f7a5300a2bc)), + P(2833,CNST_LIMB(0x7800b910895a45f1),CNST_LIMB(0x1722112b48be1f)), + P(2837,CNST_LIMB(0xaee0b024182eec3d),CNST_LIMB(0x1719b7a16eb843)), + P(2843,CNST_LIMB(0x96323eda173b5713),CNST_LIMB(0x170d3c99cc5052)), + P(2851,CNST_LIMB(0xed0dbd03ae77c8b),CNST_LIMB(0x16fcad7aed3bb6)), + P(2857,CNST_LIMB(0xf73800b7828dc119),CNST_LIMB(0x16f051b8231ffd)), + P(2861,CNST_LIMB(0x1b61715ec22b7ca5),CNST_LIMB(0x16e81beae20643)), + P(2879,CNST_LIMB(0xa8533a991ead64bf),CNST_LIMB(0x16c3721584c1d8)), + P(2887,CNST_LIMB(0x7f6c7290e46c2e77),CNST_LIMB(0x16b34c2ba09663)), + P(2897,CNST_LIMB(0x6325e8d907b01db1),CNST_LIMB(0x169f3ce292ddcd)), + P(2903,CNST_LIMB(0x28909f70152a1067),CNST_LIMB(0x169344b2220a0d)), + P(2909,CNST_LIMB(0xea7077af0997a0f5),CNST_LIMB(0x1687592593c1b1)), + P(2917,CNST_LIMB(0x7e605cad10c32e6d),CNST_LIMB(0x167787f1418ec9)), + P(2927,CNST_LIMB(0x471b33570635b38f),CNST_LIMB(0x1663e190395ff2)), + P(2939,CNST_LIMB(0xab559fa997a61bb3),CNST_LIMB(0x164c7a4b6eb5b3)), + P(2953,CNST_LIMB(0xad4bdae562bddab9),CNST_LIMB(0x16316a061182fd)), + P(2957,CNST_LIMB(0x55e1b2f2ed62f45),CNST_LIMB(0x1629ba914584e4)), + P(2963,CNST_LIMB(0x3cd328b1a2dca9b),CNST_LIMB(0x161e3d57de21b2)), + P(2969,CNST_LIMB(0xd28f4e08733218a9),CNST_LIMB(0x1612cc01b977f0)), + P(2971,CNST_LIMB(0xb6800b077f186293),CNST_LIMB(0x160efe30c525ff)), + P(2999,CNST_LIMB(0x6fbd138c3fd9c207),CNST_LIMB(0x15da45249ec5de)), + P(3001,CNST_LIMB(0xb117ccd12ae88a89),CNST_LIMB(0x15d68ab4acff92)), + P(3011,CNST_LIMB(0x2f1a1a044046bceb),CNST_LIMB(0x15c3f989d1eb15)), + P(3019,CNST_LIMB(0x548aba0b060541e3),CNST_LIMB(0x15b535ad11b8f0)), + P(3023,CNST_LIMB(0xcf4e808cea111b2f),CNST_LIMB(0x15addb3f424ec1)), + P(3037,CNST_LIMB(0xdbec1b4fa855a475),CNST_LIMB(0x159445cb91be6b)), + P(3041,CNST_LIMB(0xe3f794eb600d7821),CNST_LIMB(0x158d0199771e63)), + P(3049,CNST_LIMB(0x34fae0d9a11f7c59),CNST_LIMB(0x157e87d9b69e04)), + P(3061,CNST_LIMB(0xf006b0ccbbac085d),CNST_LIMB(0x1568f58bc01ac3)), + P(3067,CNST_LIMB(0x3f45076dc3114733),CNST_LIMB(0x155e3c993fda9b)), + P(3079,CNST_LIMB(0xeef49bfa58a1a1b7),CNST_LIMB(0x1548eacc5e1e6e)), + P(3083,CNST_LIMB(0x12c4218bea691fa3),CNST_LIMB(0x1541d8f91ba6a7)), + P(3089,CNST_LIMB(0xbc7504e3bd5e64f1),CNST_LIMB(0x153747060cc340)), + P(3109,CNST_LIMB(0x4ee21c292bb92fad),CNST_LIMB(0x1514569f93f7c4)), + P(3119,CNST_LIMB(0x34338b7327a4bacf),CNST_LIMB(0x150309705d3d79)), + P(3121,CNST_LIMB(0x3fe5c0833d6fccd1),CNST_LIMB(0x14ff97020cf5bf)), + P(3137,CNST_LIMB(0xb1e70743535203c1),CNST_LIMB(0x14e42c114cf47e)), + P(3163,CNST_LIMB(0xefbb5dcdfb4e43d3),CNST_LIMB(0x14b835bdcb6447)), + P(3167,CNST_LIMB(0xca68467ca5394f9f),CNST_LIMB(0x14b182b53a9ab7)), + P(3169,CNST_LIMB(0x8c51c081408b97a1),CNST_LIMB(0x14ae2ad094a3d3)), + P(3181,CNST_LIMB(0x3275a899dfa5dd65),CNST_LIMB(0x149a320ea59f96)), + P(3187,CNST_LIMB(0x9e674cb62e1b78bb),CNST_LIMB(0x1490441de1a2fb)), + P(3191,CNST_LIMB(0xa37ff5bb2a998d47),CNST_LIMB(0x1489aacce57200)), + P(3203,CNST_LIMB(0x792a999db131a22b),CNST_LIMB(0x1475f82ad6ff99)), + P(3209,CNST_LIMB(0x1b48841bc30d29b9),CNST_LIMB(0x146c2cfe53204f)), + P(3217,CNST_LIMB(0xf06721d2011d3471),CNST_LIMB(0x145f2ca490d4a1)), + P(3221,CNST_LIMB(0x93fd2386dff85ebd),CNST_LIMB(0x1458b2aae0ec87)), + P(3229,CNST_LIMB(0x4ce72f54c07ed9b5),CNST_LIMB(0x144bcb0a3a3150)), + P(3251,CNST_LIMB(0xd6d0fd3e71dd827b),CNST_LIMB(0x1428a1e65441d4)), + P(3253,CNST_LIMB(0x856405fb1eed819d),CNST_LIMB(0x142575a6c210d7)), + P(3257,CNST_LIMB(0x8ea8aceb7c443989),CNST_LIMB(0x141f2025ba5c46)), + P(3259,CNST_LIMB(0x34a13026f62e5873),CNST_LIMB(0x141bf6e35420fd)), + P(3271,CNST_LIMB(0x1eea0208ec0af4f7),CNST_LIMB(0x1409141d1d313a)), + P(3299,CNST_LIMB(0x63679853cea598cb),CNST_LIMB(0x13dd8bc19c3513)), + P(3301,CNST_LIMB(0xc30b3ebd61f2d0ed),CNST_LIMB(0x13da76f714dc8f)), + P(3307,CNST_LIMB(0x7eb9037bc7f43bc3),CNST_LIMB(0x13d13e50f8f49e)), + P(3313,CNST_LIMB(0xa583e6f6ce016411),CNST_LIMB(0x13c80e37ca3819)), + P(3319,CNST_LIMB(0xf1938d895f1a74c7),CNST_LIMB(0x13bee69fa99ccf)), + P(3323,CNST_LIMB(0x80cf1491c1e81e33),CNST_LIMB(0x13b8d0ede55835)), + P(3329,CNST_LIMB(0x3c0f12886ba8f301),CNST_LIMB(0x13afb7680bb054)), + P(3331,CNST_LIMB(0xe4b786e0dfcc5ab),CNST_LIMB(0x13acb0c3841c96)), + P(3343,CNST_LIMB(0x672684c93f2d41ef),CNST_LIMB(0x139a9c5f434fde)), + P(3347,CNST_LIMB(0xe00757badb35c51b),CNST_LIMB(0x13949cf33a0d9d)), + P(3359,CNST_LIMB(0xd6d84afe66472edf),CNST_LIMB(0x1382b4a00c31b0)), + P(3361,CNST_LIMB(0xfbbc0eedcbbfb6e1),CNST_LIMB(0x137fbbc0eedcbb)), + P(3371,CNST_LIMB(0x250f43aa08a84983),CNST_LIMB(0x1370ecf047b069)), + P(3373,CNST_LIMB(0x4400e927b1acaa5),CNST_LIMB(0x136df9790e3155)), + P(3389,CNST_LIMB(0x56572be34b9d3215),CNST_LIMB(0x13567dd8defd5b)), + P(3391,CNST_LIMB(0x87964ef7781c62bf),CNST_LIMB(0x13539261fdbc34)), + P(3407,CNST_LIMB(0x29ed84051c06e9af),CNST_LIMB(0x133c564292d28a)), + P(3413,CNST_LIMB(0xb00acd11ed3f87fd),CNST_LIMB(0x1333ae178d6388)), + P(3433,CNST_LIMB(0x6307881744152d9),CNST_LIMB(0x13170ad00d1fd7)), + P(3449,CNST_LIMB(0x7a786459f5c1ccc9),CNST_LIMB(0x13005f01db0947)), + P(3457,CNST_LIMB(0x1308125d74563281),CNST_LIMB(0x12f51d40342210)), + P(3461,CNST_LIMB(0x395310a480b3e34d),CNST_LIMB(0x12ef815e4ed950)), + P(3463,CNST_LIMB(0x35985baa8b202837),CNST_LIMB(0x12ecb4abccd827)), + P(3467,CNST_LIMB(0x96304a6e052b3223),CNST_LIMB(0x12e71dc1d3d820)), + P(3469,CNST_LIMB(0xbd8265fc9af8fd45),CNST_LIMB(0x12e45389a16495)), + P(3491,CNST_LIMB(0x1b6d0b383ec58e0b),CNST_LIMB(0x12c5d9226476cc)), + P(3499,CNST_LIMB(0xc21a7c3b68b28503),CNST_LIMB(0x12badc391156fd)), + P(3511,CNST_LIMB(0x236fa180fbfd6007),CNST_LIMB(0x12aa78e412f522)), + P(3517,CNST_LIMB(0xc42accd440ed9595),CNST_LIMB(0x12a251f5f47fd1)), + P(3527,CNST_LIMB(0x7acf7128236ba3f7),CNST_LIMB(0x1294cb85c53534)), + P(3529,CNST_LIMB(0xf909367a987b9c79),CNST_LIMB(0x12921963beb65e)), + P(3533,CNST_LIMB(0xb64efb252bfba705),CNST_LIMB(0x128cb777c69ca8)), + P(3539,CNST_LIMB(0x980d4f5a7e4cd25b),CNST_LIMB(0x1284aa6cf07294)), + P(3541,CNST_LIMB(0xe1ecc4ef27b0c37d),CNST_LIMB(0x1281fcf6ac7f87)), + P(3547,CNST_LIMB(0x9111aebb81d72653),CNST_LIMB(0x1279f937367db9)), + P(3557,CNST_LIMB(0x8951f985cb2c67ed),CNST_LIMB(0x126cad0488be94)), + P(3559,CNST_LIMB(0xc439d4fc54e0b5d7),CNST_LIMB(0x126a06794646a2)), + P(3571,CNST_LIMB(0xe857bf31896d533b),CNST_LIMB(0x125a2f2bcd3e95)), + P(3581,CNST_LIMB(0xb614bb4cb5023755),CNST_LIMB(0x124d108389e6b1)), + P(3583,CNST_LIMB(0x938a89e5473bf1ff),CNST_LIMB(0x124a73083771ac)), + P(3593,CNST_LIMB(0xeac481aca34de039),CNST_LIMB(0x123d6acda0620a)), + P(3607,CNST_LIMB(0x14b961badf4809a7),CNST_LIMB(0x122b4b2917eafd)), + P(3613,CNST_LIMB(0x76784fecba352435),CNST_LIMB(0x122391bfce1e2f)), + P(3617,CNST_LIMB(0xefa689bb58aef5e1),CNST_LIMB(0x121e6f1ea579f2)), + P(3623,CNST_LIMB(0xb2b2c4db9c3a8197),CNST_LIMB(0x1216c09e471568)), + P(3631,CNST_LIMB(0x2503bc992279f8cf),CNST_LIMB(0x120c8cb9d93909)), + P(3637,CNST_LIMB(0xd2ab9aec5ca1541d),CNST_LIMB(0x1204ed58e64ef9)), + P(3643,CNST_LIMB(0x3e78ba1460f99af3),CNST_LIMB(0x11fd546578f00c)), + P(3659,CNST_LIMB(0xa01426572cfcb63),CNST_LIMB(0x11e9310b8b4c9c)), + P(3671,CNST_LIMB(0xbea857968f3cbd67),CNST_LIMB(0x11da3405db9911)), + P(3673,CNST_LIMB(0x78db213eefe659e9),CNST_LIMB(0x11d7b6f4eb055d)), + P(3677,CNST_LIMB(0x963e8541a74d35f5),CNST_LIMB(0x11d2bee748c145)), + P(3691,CNST_LIMB(0x9e22d152776f2e43),CNST_LIMB(0x11c1706ddce7a7)), + P(3697,CNST_LIMB(0x5d10d39d1e1f291),CNST_LIMB(0x11ba0fed2a4f14)), + P(3701,CNST_LIMB(0x374468dccaced1dd),CNST_LIMB(0x11b528538ed64a)), + P(3709,CNST_LIMB(0x8d145c7d110c5ad5),CNST_LIMB(0x11ab61404242ac)), + P(3719,CNST_LIMB(0x3251a39f5acb5737),CNST_LIMB(0x119f378ce81d2f)), + P(3727,CNST_LIMB(0xa66e50171443506f),CNST_LIMB(0x1195889ece79da)), + P(3733,CNST_LIMB(0x124f69ad91dd4cbd),CNST_LIMB(0x118e4c65387077)), + P(3739,CNST_LIMB(0xec24f8f2a61a2793),CNST_LIMB(0x1187161d70e725)), + P(3761,CNST_LIMB(0xb472148e656b7a51),CNST_LIMB(0x116cd6d1c85239)), + P(3767,CNST_LIMB(0xadf9570e1142f07),CNST_LIMB(0x1165bbe7ce86b1)), + P(3769,CNST_LIMB(0x89bf33b065119789),CNST_LIMB(0x11635ee344ce36)), + P(3779,CNST_LIMB(0x8f0149803cb291eb),CNST_LIMB(0x11579767b6d679)), + P(3793,CNST_LIMB(0x8334b63afd190a31),CNST_LIMB(0x114734711e2b54)), + P(3797,CNST_LIMB(0x920908d50d6aba7d),CNST_LIMB(0x11428b90147f05)), + P(3803,CNST_LIMB(0x57d8b018c5a33d53),CNST_LIMB(0x113b92f3021636)), + P(3821,CNST_LIMB(0xea1773092dc27ee5),CNST_LIMB(0x1126cabc886884)), + P(3823,CNST_LIMB(0xcae5f38b7bf2e00f),CNST_LIMB(0x11247eb1b85976)), + P(3833,CNST_LIMB(0x2bd02df34f695349),CNST_LIMB(0x11190bb01efd65)), + P(3847,CNST_LIMB(0xddfecd5be62e2eb7),CNST_LIMB(0x11091de0fd679c)), + P(3851,CNST_LIMB(0xdbf849ebec96c4a3),CNST_LIMB(0x1104963c7e4e0b)), + P(3853,CNST_LIMB(0xda31d4d0187357c5),CNST_LIMB(0x110253516420b0)), + P(3863,CNST_LIMB(0xe34e21cc2d5418a7),CNST_LIMB(0x10f70db7c41797)), + P(3877,CNST_LIMB(0x68ca5137a9e574ad),CNST_LIMB(0x10e75ee2bf9ecd)), + P(3881,CNST_LIMB(0x3eaa0d0f804bfd19),CNST_LIMB(0x10e2e91c6e0676)), + P(3889,CNST_LIMB(0x554fb753cc20e9d1),CNST_LIMB(0x10da049b9d428d)), + P(3907,CNST_LIMB(0x797afcca1300756b),CNST_LIMB(0x10c6248fe3b1a2)), + P(3911,CNST_LIMB(0x8b8d950b52eeea77),CNST_LIMB(0x10c1c03ed690eb)), + P(3917,CNST_LIMB(0xfb6cd166acabc185),CNST_LIMB(0x10bb2e1379e3a2)), + P(3919,CNST_LIMB(0x4eb6c5ed9437a7af),CNST_LIMB(0x10b8fe7f61228e)), + P(3923,CNST_LIMB(0xd1eddbd91b790cdb),CNST_LIMB(0x10b4a10d60a4f7)), + P(3929,CNST_LIMB(0x93d714ea4d8948e9),CNST_LIMB(0x10ae192681ec0f)), + P(3931,CNST_LIMB(0x3ca13ed8145188d3),CNST_LIMB(0x10abecfbe5b0ae)), + P(3943,CNST_LIMB(0x829086016da89c57),CNST_LIMB(0x109eefd568b96d)), + P(3947,CNST_LIMB(0xd7da1f432124a543),CNST_LIMB(0x109a9ff178b40c)), + P(3967,CNST_LIMB(0x7ead5581632fb07f),CNST_LIMB(0x108531e22f9ff9)), + P(3989,CNST_LIMB(0x35443837f63ec3bd),CNST_LIMB(0x106ddec1af4417)), + P(4001,CNST_LIMB(0x89e2b200e5519461),CNST_LIMB(0x10614174a4911d)), + P(4003,CNST_LIMB(0xe9ae44f0b7289c0b),CNST_LIMB(0x105f291f0448e7)), + P(4007,CNST_LIMB(0x94387a277b9fa817),CNST_LIMB(0x105afa0ef32891)), + P(4013,CNST_LIMB(0xc84f1a58abfc2c25),CNST_LIMB(0x1054b777bd2530)), + P(4019,CNST_LIMB(0x71101d8e3c83377b),CNST_LIMB(0x104e79a97fb69e)), + P(4021,CNST_LIMB(0xc024abe5c50ba69d),CNST_LIMB(0x104c661eafd845)), + P(4027,CNST_LIMB(0x15de4eb365a65d73),CNST_LIMB(0x10462ea939c933)), + P(4049,CNST_LIMB(0x9ed28a76bcca931),CNST_LIMB(0x102f8baa442836)), + P(4051,CNST_LIMB(0x816bffbf4a00205b),CNST_LIMB(0x102d7ff7e94004)), + P(4057,CNST_LIMB(0x1f5c71543d558069),CNST_LIMB(0x10275ff9f13c02)), + P(4073,CNST_LIMB(0xf25c64d0ec53b859),CNST_LIMB(0x1017213fcbb4d3)), + P(4079,CNST_LIMB(0x96c02c2ef1e0ff0f),CNST_LIMB(0x101112234579d1)), + P(4091,CNST_LIMB(0x19a804816870a333),CNST_LIMB(0x100501907d271c)), + P(4093,CNST_LIMB(0x6de49add0971c555),CNST_LIMB(0x100300901b0510)), + P(4099,CNST_LIMB(0x528087e684c71aab),CNST_LIMB(0xffd008fe5050f)), + P(4111,CNST_LIMB(0xa94152c269bcdeef),CNST_LIMB(0xff10e02dd5084)), + P(4127,CNST_LIMB(0x379450a3c2b6bdf),CNST_LIMB(0xfe13b9c80c67f)), + P(4129,CNST_LIMB(0xd2cd38bafe5373e1),CNST_LIMB(0xfdf4384be37ad)), + P(4133,CNST_LIMB(0xc29df2bea71d8bad),CNST_LIMB(0xfdb54cbe8766e)), + P(4139,CNST_LIMB(0xc15862775f302e83),CNST_LIMB(0xfd5725ca6ff32)), + P(4153,CNST_LIMB(0x1016af2fe55ede09),CNST_LIMB(0xfc7c84684c6fb)), + P(4157,CNST_LIMB(0x3d26dbd9d1910715),CNST_LIMB(0xfc3e5265dbaa8)), + P(4159,CNST_LIMB(0x621dab2dfaf3dfbf),CNST_LIMB(0xfc1f44e0cae12)), + P(4177,CNST_LIMB(0xb6f1d7ac287338b1),CNST_LIMB(0xfb0921c50a7af)), + P(4201,CNST_LIMB(0x8d9e9f0c3f9e7fd9),CNST_LIMB(0xf999fd70cbc6b)), + P(4211,CNST_LIMB(0x60a93f8762e914bb),CNST_LIMB(0xf9023fd5339d0)), + P(4217,CNST_LIMB(0xb14371f247c159c9),CNST_LIMB(0xf8a78ce671475)), + P(4219,CNST_LIMB(0x6dd3b484471d4eb3),CNST_LIMB(0xf8895fee86574)), + P(4229,CNST_LIMB(0xcd172f4701c1684d),CNST_LIMB(0xf7f2ecb084b10)), + P(4231,CNST_LIMB(0x372e686ed8bb537),CNST_LIMB(0xf7d4eb7d10c29)), + P(4241,CNST_LIMB(0xbc07f7ca65c5b071),CNST_LIMB(0xf73f52277a3c3)), + P(4243,CNST_LIMB(0xab2b6170c3f78d9b),CNST_LIMB(0xf7217c598961c)), + P(4253,CNST_LIMB(0xf3d74f461fe6f5b5),CNST_LIMB(0xf68cbb1448f42)), + P(4259,CNST_LIMB(0xdbc13f4b31f3230b),CNST_LIMB(0xf633d0276e4c5)), + P(4261,CNST_LIMB(0xd1420716e3f1572d),CNST_LIMB(0xf6163ac20ec79)), + P(4271,CNST_LIMB(0xd5be2fd4d805464f),CNST_LIMB(0xf582ba2bc16c6)), + P(4273,CNST_LIMB(0xc68b97c136943851),CNST_LIMB(0xf5654f43290a0)), + P(4283,CNST_LIMB(0x9e27918af7cfb473),CNST_LIMB(0xf4d2a23810bc6)), + P(4289,CNST_LIMB(0x5ec8ab6c36ac7f41),CNST_LIMB(0xf47af4d6a2f27)), + P(4297,CNST_LIMB(0x964076331dd90979),CNST_LIMB(0xf4066f2b6e652)), + P(4327,CNST_LIMB(0x30198eff77b002d7),CNST_LIMB(0xf2555048e3a92)), + P(4337,CNST_LIMB(0x3af7cb9583ece011),CNST_LIMB(0xf1c64588a5bf6)), + P(4339,CNST_LIMB(0x34ce06f643d9883b),CNST_LIMB(0xf1a9be09cb411)), + P(4349,CNST_LIMB(0x79f767e528708c55),CNST_LIMB(0xf11b7d5259d39)), + P(4357,CNST_LIMB(0x185332d2ef2313cd),CNST_LIMB(0xf0aa284e7f802)), + P(4363,CNST_LIMB(0x43b611b84c8332a3),CNST_LIMB(0xf0556e5e3b7f2)), + P(4373,CNST_LIMB(0xc2e215e4f43bb63d),CNST_LIMB(0xefc8bcbc808e5)), + P(4391,CNST_LIMB(0xf94b9dd22ce44e97),CNST_LIMB(0xeecd1a690efbb)), + P(4397,CNST_LIMB(0xd895834a1db166a5),CNST_LIMB(0xee79aed6d65f2)), + P(4409,CNST_LIMB(0x347d2f16d19b8d09),CNST_LIMB(0xedd386114d83a)), + P(4421,CNST_LIMB(0x1b54d4dc45b7d98d),CNST_LIMB(0xed2e44366e5e2)), + P(4423,CNST_LIMB(0x117ac30d9a044877),CNST_LIMB(0xed12cf8e17f64)), + P(4441,CNST_LIMB(0xe10b78a67a526e9),CNST_LIMB(0xec1cd284b2b2d)), + P(4447,CNST_LIMB(0x92da68a818688a9f),CNST_LIMB(0xebcb44cadda1e)), + P(4451,CNST_LIMB(0xcf2b6c87f741f84b),CNST_LIMB(0xeb9505943771d)), + P(4457,CNST_LIMB(0xd264f9bd41e18ed9),CNST_LIMB(0xeb43d57efeadc)), + P(4463,CNST_LIMB(0x733cbeaa97166d8f),CNST_LIMB(0xeaf2dd4c00b03)), + P(4481,CNST_LIMB(0xc9f475b021d22e81),CNST_LIMB(0xea0141c1ba6a6)), + P(4483,CNST_LIMB(0x731f76f2ec4c852b),CNST_LIMB(0xe9e68805f05a7)), + P(4493,CNST_LIMB(0xdaf6f0c978f69945),CNST_LIMB(0xe96142b87e431)), + P(4507,CNST_LIMB(0x749c8ad20c61ec93),CNST_LIMB(0xe8a7acd811b8c)), + P(4513,CNST_LIMB(0x9307ff8bd3c1261),CNST_LIMB(0xe8587db3e001d)), + P(4517,CNST_LIMB(0x334a69fb5a486e2d),CNST_LIMB(0xe823d186d44dc)), + P(4519,CNST_LIMB(0x1f36c7bf31578617),CNST_LIMB(0xe8098463ee194)), + P(4523,CNST_LIMB(0x31ebbcc279ea6103),CNST_LIMB(0xe7d4fbfb3ee1d)), + P(4547,CNST_LIMB(0x42e2aad119f466eb),CNST_LIMB(0xe69bba6981ffa)), + P(4549,CNST_LIMB(0x106ec05a0ab1450d),CNST_LIMB(0xe681c5cf7d707)), + P(4561,CNST_LIMB(0xb1b38db92a99e731),CNST_LIMB(0xe5e684930e334)), + P(4567,CNST_LIMB(0x784ae377e67071e7),CNST_LIMB(0xe5993247dc92d)), + P(4583,CNST_LIMB(0x3e9e1471ba6671d7),CNST_LIMB(0xe4cbfee201016)), + P(4591,CNST_LIMB(0x82c29b59d4d73d0f),CNST_LIMB(0xe465ee7daf979)), + P(4597,CNST_LIMB(0xc23dd07128b5525d),CNST_LIMB(0xe4199de07af5c)), + P(4603,CNST_LIMB(0x4d4e5ce0e9245133),CNST_LIMB(0xe3cd8031d4f40)), + P(4621,CNST_LIMB(0xc8fd1057c09f8cc5),CNST_LIMB(0xe2ea56c157eb2)), + P(4637,CNST_LIMB(0xea1516e94f394035),CNST_LIMB(0xe221e5d4d3c73)), + P(4639,CNST_LIMB(0xb5e3319c564ee9df),CNST_LIMB(0xe208f09a841c7)), + P(4643,CNST_LIMB(0x126a69f90d822d8b),CNST_LIMB(0xe1d716a945161)), + P(4649,CNST_LIMB(0x501ed6348857aa19),CNST_LIMB(0xe18c78ec8fd4d)), + P(4651,CNST_LIMB(0xde344a324eee1c83),CNST_LIMB(0xe173a4a162079)), + P(4657,CNST_LIMB(0x1dd9690cb2c406d1),CNST_LIMB(0xe1294881bb494)), + P(4663,CNST_LIMB(0x8d6c5178d5e4387),CNST_LIMB(0xe0df1d5f24661)), + P(4673,CNST_LIMB(0x4cea4050a3e8fdc1),CNST_LIMB(0xe063ec7f50b1e)), + P(4679,CNST_LIMB(0xc114a06acc83f777),CNST_LIMB(0xe01a4313dc53d)), + P(4691,CNST_LIMB(0x20b060ebc0ea01db),CNST_LIMB(0xdf8780f47c350)), + P(4703,CNST_LIMB(0xfe50045acb78c99f),CNST_LIMB(0xdef57e8eb9666)), + P(4721,CNST_LIMB(0x291a68705b196e91),CNST_LIMB(0xde1bdf3f63d46)), + P(4723,CNST_LIMB(0xc1042c724273e2bb),CNST_LIMB(0xde03cb5099809)), + P(4729,CNST_LIMB(0x2cee680bb165b7c9),CNST_LIMB(0xddbbaecc84bc9)), + P(4733,CNST_LIMB(0xfd2ff9f12e0776d5),CNST_LIMB(0xdd8bb5ca73db6)), + P(4751,CNST_LIMB(0x166a5da63af2cc6f),CNST_LIMB(0xdcb4d529a6e07)), + P(4759,CNST_LIMB(0xedd16a5930408d27),CNST_LIMB(0xdc55da73dea60)), + P(4783,CNST_LIMB(0x2adf30c26528844f),CNST_LIMB(0xdb3ad2585011f)), + P(4787,CNST_LIMB(0x9a48d6572b5eec7b),CNST_LIMB(0xdb0becf636a79)), + P(4789,CNST_LIMB(0x6e8bf2877503cb9d),CNST_LIMB(0xdaf481ca6fefb)), + P(4793,CNST_LIMB(0xea27a191a7045389),CNST_LIMB(0xdac5ba7565dae)), + P(4799,CNST_LIMB(0x6eb091f34dd45d3f),CNST_LIMB(0xda7fb4e419d19)), + P(4801,CNST_LIMB(0xdc8a6cabb2937d41),CNST_LIMB(0xda6867a88d327)), + P(4813,CNST_LIMB(0xbc2f04f254922a05),CNST_LIMB(0xd9dd005f50b02)), + P(4817,CNST_LIMB(0x41431f4d6eb38631),CNST_LIMB(0xd9aeb01f763f7)), + P(4831,CNST_LIMB(0x7bd717435a08291f),CNST_LIMB(0xd90d31dd5804a)), + P(4861,CNST_LIMB(0x4232df9c91fc1a55),CNST_LIMB(0xd7b6453358f31)), + P(4871,CNST_LIMB(0xa4651e1d5382eab7),CNST_LIMB(0xd744e69d900e4)), + P(4877,CNST_LIMB(0x7cfb5409de4cf3c5),CNST_LIMB(0xd7011a317260e)), + P(4889,CNST_LIMB(0xcdd636fb068b9929),CNST_LIMB(0xd67a0126e7c19)), + P(4903,CNST_LIMB(0xee8f95e740462c97),CNST_LIMB(0xd5dd39e775bd7)), + P(4909,CNST_LIMB(0x490f97b3a758b4a5),CNST_LIMB(0xd59a4f2990168)), + P(4919,CNST_LIMB(0x641431563c441287),CNST_LIMB(0xd52b24cb6269d)), + P(4931,CNST_LIMB(0xb743dad3ec45916b),CNST_LIMB(0xd4a6571da4f04)), + P(4933,CNST_LIMB(0x7b188be8f55c878d),CNST_LIMB(0xd49044eac6581)), + P(4937,CNST_LIMB(0xd805648b2ca54ef9),CNST_LIMB(0xd4642e40d1129)), + P(4943,CNST_LIMB(0x76dbe6eef60123af),CNST_LIMB(0xd4222e81fe723)), + P(4951,CNST_LIMB(0x3711525e6a9e8867),CNST_LIMB(0xd3ca6e8c89f41)), + P(4957,CNST_LIMB(0x85c2215cb383d8f5),CNST_LIMB(0xd388ce29d4edc)), + P(4967,CNST_LIMB(0xe58f554c89825857),CNST_LIMB(0xd31bc7b7d8013)), + P(4969,CNST_LIMB(0x8fbd3b17c01dacd9),CNST_LIMB(0xd306071c13fd5)), + P(4973,CNST_LIMB(0x4c8c39dc7aedee65),CNST_LIMB(0xd2da935479b1a)), + P(4987,CNST_LIMB(0x653ac6dda86cd3b3),CNST_LIMB(0xd2430aa043597)), + P(4993,CNST_LIMB(0xd61c6791a9c2c81),CNST_LIMB(0xd2025bc6c7db7)), + P(4999,CNST_LIMB(0xb627a30090354237),CNST_LIMB(0xd1c1d4ad1732b)), + P(5003,CNST_LIMB(0x83a89a539c527c23),CNST_LIMB(0xd196e5f46f8c8)), + P(5009,CNST_LIMB(0x28c8c09330e90d71),CNST_LIMB(0xd156a0c9293e8)), + P(5011,CNST_LIMB(0xee1178d27b1f029b),CNST_LIMB(0xd1413d26e0aee)), + P(5021,CNST_LIMB(0xcecc740b37860ab5),CNST_LIMB(0xd0d68c6a4128f)), + P(5023,CNST_LIMB(0x79736fde910c485f),CNST_LIMB(0xd0c142eaf3837)), + P(5039,CNST_LIMB(0x6873d51f2487234f),CNST_LIMB(0xd01792ab9d70d)), + P(5051,CNST_LIMB(0x2a112180614fb973),CNST_LIMB(0xcf990317775bc)), + P(5059,CNST_LIMB(0xcb04cea98508f4eb),CNST_LIMB(0xcf44f8c38790a)), + P(5077,CNST_LIMB(0xc2fcd2c527e28d7d),CNST_LIMB(0xce88d96d10e45)), + P(5081,CNST_LIMB(0x980203ee10393c69),CNST_LIMB(0xce5f39b07e906)), + P(5087,CNST_LIMB(0x3fa90a1d7d75681f),CNST_LIMB(0xce20e98148847)), + P(5099,CNST_LIMB(0xdbf3bfefef217cc3),CNST_LIMB(0xcda4b9c30ccd7)), + P(5101,CNST_LIMB(0x66a17fd3087b41e5),CNST_LIMB(0xcd9015ae32495)), + P(5107,CNST_LIMB(0x962195d496fbbd3b),CNST_LIMB(0xcd524244aca36)), + P(5113,CNST_LIMB(0xc705a86155443e49),CNST_LIMB(0xcd14940099cf6)), + P(5119,CNST_LIMB(0x3f298ee0be6febff),CNST_LIMB(0xccd70ac089a07)), + P(5147,CNST_LIMB(0xaa99b084e62fa613),CNST_LIMB(0xcbb9c535c4371)), + P(5153,CNST_LIMB(0x1f000cb7d0b46fe1),CNST_LIMB(0xcb7d0b46fe0ff)), + P(5167,CNST_LIMB(0x9ed7858637c9b2cf),CNST_LIMB(0xcaefe5d7135f4)), + P(5171,CNST_LIMB(0x4d871aaf27c106fb),CNST_LIMB(0xcac7b5f00f0cd)), + P(5179,CNST_LIMB(0x2e6a467cdc75a4f3),CNST_LIMB(0xca7785ceddbea)), + P(5189,CNST_LIMB(0xe9d938fb696dde8d),CNST_LIMB(0xca13a2a86e1db)), + P(5197,CNST_LIMB(0x40ec71b0b1554485),CNST_LIMB(0xc9c4009753007)), + P(5209,CNST_LIMB(0x3aae12f861e5f3e9),CNST_LIMB(0xc94d02e64bfab)), + P(5227,CNST_LIMB(0xa97565873959f843),CNST_LIMB(0xc89b8c9c875ef)), + P(5231,CNST_LIMB(0xb5a960c09fbca8f),CNST_LIMB(0xc87447737277e)), + P(5233,CNST_LIMB(0x463fe3d268012c91),CNST_LIMB(0xc860aaa2514e3)), + P(5237,CNST_LIMB(0xe59a6bd5f5ee1bdd),CNST_LIMB(0xc8397c813f1b9)), + P(5261,CNST_LIMB(0x6542e84d7775ce45),CNST_LIMB(0xc74fa805d6d56)), + P(5273,CNST_LIMB(0x8b6eef58fd9effa9),CNST_LIMB(0xc6db8a1f5cdfe)), + P(5279,CNST_LIMB(0x58993dbb9f98075f),CNST_LIMB(0xc6a1add9e2398)), + P(5281,CNST_LIMB(0x2997955a810acf61),CNST_LIMB(0xc68e6be826648)), + P(5297,CNST_LIMB(0x76e3d2f5077db451),CNST_LIMB(0xc5f4e25fc9df0)), + P(5303,CNST_LIMB(0xb37c1d2867e30907),CNST_LIMB(0xc5bb8bf2ad1cd)), + P(5309,CNST_LIMB(0x53ce6e09bd8d8695),CNST_LIMB(0xc58256b316ced)), + P(5323,CNST_LIMB(0x39db291ea2a6b0e3),CNST_LIMB(0xc4fd5ad917b5b)), + P(5333,CNST_LIMB(0xddd265ab9c58847d),CNST_LIMB(0xc49ecb3ea4d7a)), + P(5347,CNST_LIMB(0x5beca8562dddd0cb),CNST_LIMB(0xc41b00b7d950a)), + P(5351,CNST_LIMB(0xb69031c153ddbed7),CNST_LIMB(0xc3f57990b87a1)), + P(5381,CNST_LIMB(0xd03c2271b42a6fcd),CNST_LIMB(0xc2ddcb31250f8)), + P(5387,CNST_LIMB(0xcd6fd19e63e40ea3),CNST_LIMB(0xc2a63b3651432)), + P(5393,CNST_LIMB(0xf7687aa8e4fd7bf1),CNST_LIMB(0xc26ecae1db72e)), + P(5399,CNST_LIMB(0x649dfda112a272a7),CNST_LIMB(0xc2377a18c051e)), + P(5407,CNST_LIMB(0xecf7866a56d526df),CNST_LIMB(0xc1ede9efcec29)), + P(5413,CNST_LIMB(0x72bbf1cfdaebfead),CNST_LIMB(0xc1b6e258d13a0)), + P(5417,CNST_LIMB(0x55f6a48df7055719),CNST_LIMB(0xc19243f5399bb)), + P(5419,CNST_LIMB(0x80060bffcfa00183),CNST_LIMB(0xc17ff9f400305)), + P(5431,CNST_LIMB(0x8a104f309919b087),CNST_LIMB(0xc112865703b94)), + P(5437,CNST_LIMB(0x98fa7db7652f6a15),CNST_LIMB(0xc0dbfaea33225)), + P(5441,CNST_LIMB(0x5d7d1b3df70f7ac1),CNST_LIMB(0xc0b7af12ddfb9)), + P(5443,CNST_LIMB(0x16ab7b5e04cc1f6b),CNST_LIMB(0xc0a58e464462c)), + P(5449,CNST_LIMB(0x78a5bfd2e5ececf9),CNST_LIMB(0xc06f40512eef2)), + P(5471,CNST_LIMB(0x6506392e171d869f),CNST_LIMB(0xbfa9275a2b247)), + P(5477,CNST_LIMB(0xc3fc12e221ef146d),CNST_LIMB(0xbf7367402cdf0)), + P(5479,CNST_LIMB(0xf8aa132822c33657),CNST_LIMB(0xbf61833f4f921)), + P(5483,CNST_LIMB(0x894496574f536f43),CNST_LIMB(0xbf3dc543a74a1)), + P(5501,CNST_LIMB(0x8b2546b08fb4cbd5),CNST_LIMB(0xbe9d9302a7115)), + P(5503,CNST_LIMB(0x43bbb561bd1aa7f),CNST_LIMB(0xbe8bd6e051e01)), + P(5507,CNST_LIMB(0x2412c7cc4ea7a12b),CNST_LIMB(0xbe6868804d5a6)), + P(5519,CNST_LIMB(0x6f0bd406dd71696f),CNST_LIMB(0xbdfe6c4359f0e)), + P(5521,CNST_LIMB(0xad475c6988d54b71),CNST_LIMB(0xbdeccdb0b5c3a)), + P(5527,CNST_LIMB(0xd812e5d48dbbba27),CNST_LIMB(0xbdb8058ee429a)), + P(5531,CNST_LIMB(0x22aaca437ba04893),CNST_LIMB(0xbd94e5c1b371f)), + P(5557,CNST_LIMB(0xdba6ff1fecd5f09d),CNST_LIMB(0xbcb1d293b1af3)), + P(5563,CNST_LIMB(0x13016d3396286773),CNST_LIMB(0xbc7db8db0c1a5)), + P(5569,CNST_LIMB(0xc746494631bcfa41),CNST_LIMB(0xbc49bbdfd2662)), + P(5573,CNST_LIMB(0xd14888565bf6a10d),CNST_LIMB(0xbc2723240f402)), + P(5581,CNST_LIMB(0xc002ef885f0adf05),CNST_LIMB(0xbbe217c2b7c13)), + P(5591,CNST_LIMB(0xe5a04da7fee6ade7),CNST_LIMB(0xbb8c10aab27b2)), + P(5623,CNST_LIMB(0xc114ce5468593bc7),CNST_LIMB(0xba7ad528a7e79)), + P(5639,CNST_LIMB(0xbb6747dd7f577b7),CNST_LIMB(0xb9f3611b48c5e)), + P(5641,CNST_LIMB(0x395ce5a20f285839),CNST_LIMB(0xb9e2806e5e7c4)), + P(5647,CNST_LIMB(0x6eee8be66e8618ef),CNST_LIMB(0xb9aff0c4913fe)), + P(5651,CNST_LIMB(0x52acf64297f1241b),CNST_LIMB(0xb98e4aedd581c)), + P(5653,CNST_LIMB(0x361dcc48a364093d),CNST_LIMB(0xb97d7c94b7dc2)), + P(5657,CNST_LIMB(0x342d6f475d72e629),CNST_LIMB(0xb95be902d9d9e)), + P(5659,CNST_LIMB(0x5e978bd46410d413),CNST_LIMB(0xb94b23c872b90)), + P(5669,CNST_LIMB(0xcc3433d75ba015ad),CNST_LIMB(0xb8f77714d15a1)), + P(5683,CNST_LIMB(0x1c83b7628458d4fb),CNST_LIMB(0xb882d0beff6a1)), + P(5689,CNST_LIMB(0xf9ca45637e38f809),CNST_LIMB(0xb850ff9852703)), + P(5693,CNST_LIMB(0xcbed792ffaf6b115),CNST_LIMB(0xb82fd86db8806)), + P(5701,CNST_LIMB(0x9abd961d8c0e8c8d),CNST_LIMB(0xb7edadd32f76c)), + P(5711,CNST_LIMB(0xe69572fa659340af),CNST_LIMB(0xb79b3b4df3b7b)), + P(5717,CNST_LIMB(0x9187e7483a6436fd),CNST_LIMB(0xb769e6d59833f)), + P(5737,CNST_LIMB(0x1e9c726993bed9d9),CNST_LIMB(0xb6c636b5141ff)), + P(5741,CNST_LIMB(0x243554db91976365),CNST_LIMB(0xb6a59ceae8801)), + P(5743,CNST_LIMB(0x4d06ff994c0088f),CNST_LIMB(0xb6955461e38f7)), + P(5749,CNST_LIMB(0x25b76abcb74889dd),CNST_LIMB(0xb6648c2dc6bc2)), + P(5779,CNST_LIMB(0x3a409642893c779b),CNST_LIMB(0xb572282260209)), + P(5783,CNST_LIMB(0x8f8f620d8bc0c927),CNST_LIMB(0xb552072bde889)), + P(5791,CNST_LIMB(0x6f9f196b3369855f),CNST_LIMB(0xb511e7552f9c4)), + P(5801,CNST_LIMB(0x92a522bb0638ed99),CNST_LIMB(0xb4c1ff34a5c0e)), + P(5807,CNST_LIMB(0x96270f1efdd7004f),CNST_LIMB(0xb4922f58d4aa2)), + P(5813,CNST_LIMB(0xb4844b380fdaa79d),CNST_LIMB(0xb46278c16b967)), + P(5821,CNST_LIMB(0x108936aa5f9c1495),CNST_LIMB(0xb42301cd99b49)), + P(5827,CNST_LIMB(0xb60f606f104c9eb),CNST_LIMB(0xb3f385dd77e4e)), + P(5839,CNST_LIMB(0xc663dfe8263b302f),CNST_LIMB(0xb394d8ef8f0f6)), + P(5843,CNST_LIMB(0xc91a280b9110b15b),CNST_LIMB(0xb375601507c14)), + P(5849,CNST_LIMB(0x904287118d10969),CNST_LIMB(0xb3463f76be376)), + P(5851,CNST_LIMB(0x160d36a5d31bf553),CNST_LIMB(0xb3368f6c4a07c)), + P(5857,CNST_LIMB(0xe84f5fda3c67ad21),CNST_LIMB(0xb3078fc1c25f0)), + P(5861,CNST_LIMB(0xbd85701f72d4b6ed),CNST_LIMB(0xb2e84854e93e5)), + P(5867,CNST_LIMB(0x4c50cf5924dee1c3),CNST_LIMB(0xb2b971aa909a4)), + P(5869,CNST_LIMB(0x2455aaf1633bb6e5),CNST_LIMB(0xb2a9da39d6bc8)), + P(5879,CNST_LIMB(0xd775b39f549b8ac7),CNST_LIMB(0xb25c0dc29a0fc)), + P(5881,CNST_LIMB(0x87fcdda7a252cb49),CNST_LIMB(0xb24c8698449a7)), + P(5897,CNST_LIMB(0x53df2e3bd254a739),CNST_LIMB(0xb1d0ae579aefe)), + P(5903,CNST_LIMB(0x8915e69623a5f7ef),CNST_LIMB(0xb1a2698ea2f9e)), + P(5923,CNST_LIMB(0x1ef24c80742dd08b),CNST_LIMB(0xb108dc4186078)), + P(5927,CNST_LIMB(0xb4d87aaa6fb1e897),CNST_LIMB(0xb0ea463b00212)), + P(5939,CNST_LIMB(0x788573e8b92dbbfb),CNST_LIMB(0xb08ec37007962)), + P(5953,CNST_LIMB(0x2527b137b0878c1),CNST_LIMB(0xb024778cc023c)), + P(5981,CNST_LIMB(0x1870a7c8dee9f4f5),CNST_LIMB(0xaf515df36a88e)), + P(5987,CNST_LIMB(0x39b99e40910a224b),CNST_LIMB(0xaf24635f6561e)), + P(6007,CNST_LIMB(0x45821c0abd4df247),CNST_LIMB(0xae8f1b92baeaf)), + P(6011,CNST_LIMB(0x10fe2b2f50e02fb3),CNST_LIMB(0xae715eee11f8e)), + P(6029,CNST_LIMB(0x5762b90c043f0345),CNST_LIMB(0xadec0b0a3bb36)), + P(6037,CNST_LIMB(0x82a67b9193b27bbd),CNST_LIMB(0xadb10aa4c956f)), + P(6043,CNST_LIMB(0xa6e914e28ec37693),CNST_LIMB(0xad84e49752245)), + P(6047,CNST_LIMB(0x835d9a4facaf445f),CNST_LIMB(0xad6782597f0c2)), + P(6053,CNST_LIMB(0x48def8175884f82d),CNST_LIMB(0xad3b81a0d72fe)), + P(6067,CNST_LIMB(0xae900e2d7c9a6f7b),CNST_LIMB(0xacd52beced79e)), + P(6073,CNST_LIMB(0x1c08431bdd18be89),CNST_LIMB(0xaca9755063254)), + P(6079,CNST_LIMB(0xb370a66d684fd83f),CNST_LIMB(0xac7dd4cafb12a)), + P(6089,CNST_LIMB(0xb4be33e18f93b279),CNST_LIMB(0xac354f80dca44)), + P(6091,CNST_LIMB(0x310c50872a7dd5e3),CNST_LIMB(0xac26d5c2b8ad2)), + P(6101,CNST_LIMB(0x447ab1281276697d),CNST_LIMB(0xabde997dabd3d)), + P(6113,CNST_LIMB(0xc2f122216b2a6c21),CNST_LIMB(0xab883aa1100a0)), + P(6121,CNST_LIMB(0xab99c8b5ae1c3059),CNST_LIMB(0xab4ed637f5a0b)), + P(6131,CNST_LIMB(0xb78e17a2227d593b),CNST_LIMB(0xab074e9febf52)), + P(6133,CNST_LIMB(0xabf97d03f7269c5d),CNST_LIMB(0xaaf90778c2039)), + P(6143,CNST_LIMB(0x867aefc9fdbfe7ff),CNST_LIMB(0xaab1c7684f034)), + P(6151,CNST_LIMB(0xf7f7ad182e47d5b7),CNST_LIMB(0xaa78f20ebbb3e)), + P(6163,CNST_LIMB(0x50dff95a9847721b),CNST_LIMB(0xaa23f8dafd4cc)), + P(6173,CNST_LIMB(0xe4cb8a0e83cb6a35),CNST_LIMB(0xa9dd69cad5934)), + P(6197,CNST_LIMB(0x8da72ecdf9247a1d),CNST_LIMB(0xa935004a07302)), + P(6199,CNST_LIMB(0xc5b04bfc87f31d87),CNST_LIMB(0xa9270690f3d14)), + P(6203,CNST_LIMB(0xe2dcf622ea2b00f3),CNST_LIMB(0xa90b1a0aa5d30)), + P(6211,CNST_LIMB(0xb9ce9f2e4972f46b),CNST_LIMB(0xa8d35c9d731e9)), + P(6217,CNST_LIMB(0x1ed785c911bf59f9),CNST_LIMB(0xa8a9a6a51f16c)), + P(6221,CNST_LIMB(0x4ddb8a4eed70e085),CNST_LIMB(0xa88de370f596b)), + P(6229,CNST_LIMB(0x81e93b4df68c24fd),CNST_LIMB(0xa856786adae36)), + P(6247,CNST_LIMB(0xee0d0812afcd8357),CNST_LIMB(0xa7da4c77d3161)), + P(6257,CNST_LIMB(0xf62e3ba72268a891),CNST_LIMB(0xa7959f863d4a1)), + P(6263,CNST_LIMB(0x3194d367c8154147),CNST_LIMB(0xa76c85e80c195)), + P(6269,CNST_LIMB(0xd096ede8e30c20d5),CNST_LIMB(0xa743806dc44c4)), + P(6271,CNST_LIMB(0xd68624d27b87a77f),CNST_LIMB(0xa735d866dfa0a)), + P(6277,CNST_LIMB(0xb728fcdc11c8204d),CNST_LIMB(0xa70cedb02531e)), + P(6287,CNST_LIMB(0x9d6b6038077e066f),CNST_LIMB(0xa6c8e842c770f)), + P(6299,CNST_LIMB(0xaa732d7a4a360d93),CNST_LIMB(0xa67791215dd74)), + P(6301,CNST_LIMB(0x36af98a423972db5),CNST_LIMB(0xa66a0a51d363d)), + P(6311,CNST_LIMB(0xc31d00da12940f17),CNST_LIMB(0xa626893011861)), + P(6317,CNST_LIMB(0xed85352107410b25),CNST_LIMB(0xa5fe22c55c089)), + P(6323,CNST_LIMB(0x829c85ee6db8567b),CNST_LIMB(0xa5d5cffb77275)), + P(6329,CNST_LIMB(0xef60258952cc6d89),CNST_LIMB(0xa5ad90c4186e5)), + P(6337,CNST_LIMB(0xcf28c2e0da787741),CNST_LIMB(0xa578057e7c2eb)), + P(6343,CNST_LIMB(0x57567d8494af28f7),CNST_LIMB(0xa54ff3bb10e91)), + P(6353,CNST_LIMB(0x2c7c98518f174031),CNST_LIMB(0xa50d5683edc94)), + P(6359,CNST_LIMB(0xb28b363a36825ae7),CNST_LIMB(0xa4e57854b3df4)), + P(6361,CNST_LIMB(0xed1ffeb64f9ae769),CNST_LIMB(0xa4d8328c4b800)), + P(6367,CNST_LIMB(0xcbbb0115e9b9a31f),CNST_LIMB(0xa4b06e01d97b3)), + P(6373,CNST_LIMB(0x8d3c5fecb7f9e4ed),CNST_LIMB(0xa488bca2c4449)), + P(6379,CNST_LIMB(0x816271698195cfc3),CNST_LIMB(0xa4611e6132ed5)), + P(6389,CNST_LIMB(0x9ac939d1c2b1d35d),CNST_LIMB(0xa41f40f39e646)), + P(6397,CNST_LIMB(0xdd9fb7017b0ec455),CNST_LIMB(0xa3eab5c3e44e9)), + P(6421,CNST_LIMB(0xc94cab1e57276e3d),CNST_LIMB(0xa34ddd50561e0)), + P(6427,CNST_LIMB(0x8b8806b117c79913),CNST_LIMB(0xa326d60e94186)), + P(6449,CNST_LIMB(0xa9e63292a3269fd1),CNST_LIMB(0xa2985a81ce614)), + P(6451,CNST_LIMB(0x76da5710f1e989fb),CNST_LIMB(0xa28b72e26f82e)), + P(6469,CNST_LIMB(0xdded6688d83a918d),CNST_LIMB(0xa217aa3479693)), + P(6473,CNST_LIMB(0x4e446b6a305428f9),CNST_LIMB(0xa1fe05c62df4b)), + P(6481,CNST_LIMB(0x4ddaca7a3696cfb1),CNST_LIMB(0xa1cad538aebf9)), + P(6491,CNST_LIMB(0x7eadc4eb87f26ed3),CNST_LIMB(0xa18b05f490083)), + P(6521,CNST_LIMB(0x76c13a0ff04c00c9),CNST_LIMB(0xa0ccc4c28fc31)), + P(6529,CNST_LIMB(0xcbf800504d2a2681),CNST_LIMB(0xa09a544d01ffe)), + P(6547,CNST_LIMB(0x731dada6c4fec9b),CNST_LIMB(0xa0294aa53e9a2)), + P(6551,CNST_LIMB(0xbcb52a664e63f627),CNST_LIMB(0xa01041a6aaed5)), + P(6553,CNST_LIMB(0xf1f9abda071c2aa9),CNST_LIMB(0xa003c01680870)), + P(6563,CNST_LIMB(0xf262ffa620ffe20b),CNST_LIMB(0x9fc5558a971c8)), + P(6569,CNST_LIMB(0x93774a3d57199a99),CNST_LIMB(0x9f9ff9c3c03e5)), + P(6571,CNST_LIMB(0xfb3541cd467a1903),CNST_LIMB(0x9f9389b864ab9)), + P(6577,CNST_LIMB(0x6828cab6b4fe8f51),CNST_LIMB(0x9f6e4534bdca8)), + P(6581,CNST_LIMB(0x12ac03e3d624cc9d),CNST_LIMB(0x9f557687235c2)), + P(6599,CNST_LIMB(0x6363bd1e9bb7d7f7),CNST_LIMB(0x9ee633c0391ab)), + P(6607,CNST_LIMB(0x334cfd676a484d2f),CNST_LIMB(0x9eb4f28e0bb39)), + P(6619,CNST_LIMB(0xd511acd86f143a53),CNST_LIMB(0x9e6b49e92e4bb)), + P(6637,CNST_LIMB(0x73fc2490e0062be5),CNST_LIMB(0x9dfd4ccbd0045)), + P(6653,CNST_LIMB(0x10780dda36b78b55),CNST_LIMB(0x9d9c0828536c1)), + P(6659,CNST_LIMB(0xabf601274064e0ab),CNST_LIMB(0x9d77ad449f777)), + P(6661,CNST_LIMB(0x3ef3e4ca27e4a2cd),CNST_LIMB(0x9d6b92b28ee48)), + P(6673,CNST_LIMB(0x9216a26e690a16f1),CNST_LIMB(0x9d231a476ed51)), + P(6679,CNST_LIMB(0xbae4849e6034bda7),CNST_LIMB(0x9cfef711bf120)), + P(6689,CNST_LIMB(0xf943a0520e01e9e1),CNST_LIMB(0x9cc2e1448b765)), + P(6691,CNST_LIMB(0x7c89958f48f6658b),CNST_LIMB(0x9cb6e26cbc64d)), + P(6701,CNST_LIMB(0xe67128750e0545a5),CNST_LIMB(0x9c7b03b4a9c67)), + P(6703,CNST_LIMB(0xc6c9e1d414516ccf),CNST_LIMB(0x9c6f0fd980ab1)), + P(6709,CNST_LIMB(0x805307f996e9e81d),CNST_LIMB(0x9c4b3f3a30c3f)), + P(6719,CNST_LIMB(0x3eddd2cff46ad5bf),CNST_LIMB(0x9c0fb29436687)), + P(6733,CNST_LIMB(0x35582c1aeb5aae85),CNST_LIMB(0x9bbca025b7aec)), + P(6737,CNST_LIMB(0x4973c88573ef6eb1),CNST_LIMB(0x9ba4f4421e52c)), + P(6761,CNST_LIMB(0x3063f627c1e715d9),CNST_LIMB(0x9b1783809ff03)), + P(6763,CNST_LIMB(0x711ad679a8dcc243),CNST_LIMB(0x9b0bc5b4d2eac)), + P(6779,CNST_LIMB(0x51c224a17a3db4b3),CNST_LIMB(0x9aae172fd8b9c)), + P(6781,CNST_LIMB(0x612325ca50ddaed5),CNST_LIMB(0x9aa26954607ed)), + P(6791,CNST_LIMB(0x9929a7b6b7958b37),CNST_LIMB(0x9a681e758a022)), + P(6793,CNST_LIMB(0xa78d222e5a857bb9),CNST_LIMB(0x9a5c7b284942e)), + P(6803,CNST_LIMB(0x3ad0ffe3198d139b),CNST_LIMB(0x9a2264ecc5558)), + P(6823,CNST_LIMB(0x8b4659ac547ed17),CNST_LIMB(0x99aebb39be56f)), + P(6827,CNST_LIMB(0x1752e8904aff1003),CNST_LIMB(0x9997ae1a9faac)), + P(6829,CNST_LIMB(0x60745c37ee4e5925),CNST_LIMB(0x998c2a22b6900)), + P(6833,CNST_LIMB(0x29e2da1f6557ee51),CNST_LIMB(0x997527603f8a8)), + P(6841,CNST_LIMB(0x80d78c24ac49cb89),CNST_LIMB(0x99473685e4d50)), + P(6857,CNST_LIMB(0xc56c3b495c8d1f79),CNST_LIMB(0x98eba72512a13)), + P(6863,CNST_LIMB(0xcf5bdf9f5088ac2f),CNST_LIMB(0x98c96d8dee9e1)), + P(6869,CNST_LIMB(0x8a44800e4fae4e7d),CNST_LIMB(0x98a743453554e)), + P(6871,CNST_LIMB(0xdd76384277e578e7),CNST_LIMB(0x989be33c9e6bd)), + P(6883,CNST_LIMB(0x20b1562d2703facb),CNST_LIMB(0x9857c692e9a59)), + P(6899,CNST_LIMB(0xef56caf96e9d8e3b),CNST_LIMB(0x97fd540c05c9e)), + P(6907,CNST_LIMB(0xf54061416aede033),CNST_LIMB(0x97d04302ed944)), + P(6911,CNST_LIMB(0xe0bc78c21a26e4ff),CNST_LIMB(0x97b9c48289935)), + P(6917,CNST_LIMB(0x524f92731a179cd),CNST_LIMB(0x9798133ece717)), + P(6947,CNST_LIMB(0x5d3b4ad7deafec8b),CNST_LIMB(0x96f07c683689e)), + P(6949,CNST_LIMB(0x508828f744da88ad),CNST_LIMB(0x96e55d6393fc5)), + P(6959,CNST_LIMB(0x6e82014031710bcf),CNST_LIMB(0x96addad861696)), + P(6961,CNST_LIMB(0xadf3b77a22595dd1),CNST_LIMB(0x96a2c5a2cf0cf)), + P(6967,CNST_LIMB(0xd8f0c03f7ea8a87),CNST_LIMB(0x96818fc825eba)), + P(6971,CNST_LIMB(0x2c49e3483c3a05f3),CNST_LIMB(0x966b74027f48a)), + P(6977,CNST_LIMB(0xccecbc98c91274c1),CNST_LIMB(0x964a56850b8ed)), + P(6983,CNST_LIMB(0x273a08941bb71e77),CNST_LIMB(0x962947990eb36)), + P(6991,CNST_LIMB(0xdead5a1e3f341baf),CNST_LIMB(0x95fd4a4c885e0)), + P(6997,CNST_LIMB(0x83eee092593309fd),CNST_LIMB(0x95dc5d3954fde)), + P(7001,CNST_LIMB(0x4af5f1bd3ae87ce9),CNST_LIMB(0x95c671ddfe516)), + P(7013,CNST_LIMB(0x4ca85ad2301c9e6d),CNST_LIMB(0x9584d6340ddf1)), + P(7019,CNST_LIMB(0x1b19592cd31a3943),CNST_LIMB(0x95641de84afcc)), + P(7027,CNST_LIMB(0x3e7aa05e6dcd81bb),CNST_LIMB(0x953893c386521)), + P(7039,CNST_LIMB(0x86336cecb02ba47f),CNST_LIMB(0x94f7740d87794)), + P(7043,CNST_LIMB(0xa96b30d0c8a44b2b),CNST_LIMB(0x94e1cb70c9ce0)), + P(7057,CNST_LIMB(0xb7c63fa0cfca0571),CNST_LIMB(0x94962ecbcc7ce)), + P(7069,CNST_LIMB(0x8eaf59b405a642b5),CNST_LIMB(0x94559c69059cf)), + P(7079,CNST_LIMB(0xdf29e9cbb536dc17),CNST_LIMB(0x941ff7e640716)), + P(7103,CNST_LIMB(0xed14132c82c1d43f),CNST_LIMB(0x939fd7a24b099)), + P(7109,CNST_LIMB(0xaf68778e34caab0d),CNST_LIMB(0x937ff22c014bd)), + P(7121,CNST_LIMB(0xa4f04a3368941d31),CNST_LIMB(0x934050872c09e)), + P(7127,CNST_LIMB(0xe9960969357c07e7),CNST_LIMB(0x93209446d56f6)), + P(7129,CNST_LIMB(0xeb47b62b7360b469),CNST_LIMB(0x9316033b5bd22)), + P(7151,CNST_LIMB(0x64c653d779ae730f),CNST_LIMB(0x92a22b9a79374)), + P(7159,CNST_LIMB(0x479702d3319915c7),CNST_LIMB(0x927838edba206)), + P(7177,CNST_LIMB(0xef3c3eebc6803239),CNST_LIMB(0x921a2e7112833)), + P(7187,CNST_LIMB(0x93807b1a2e3c0e1b),CNST_LIMB(0x91e623d5660d0)), + P(7193,CNST_LIMB(0x8167e33e3f478029),CNST_LIMB(0x91c6fc0cab8b6)), + P(7207,CNST_LIMB(0x60cb76e38c339397),CNST_LIMB(0x917e7d88028eb)), + P(7211,CNST_LIMB(0xae34788ffe4bc283),CNST_LIMB(0x9169d455585cd)), + P(7213,CNST_LIMB(0x4b6246a0c6c093a5),CNST_LIMB(0x915f81ef2d529)), + P(7219,CNST_LIMB(0x872e594b12b03efb),CNST_LIMB(0x9140938595d3a)), + P(7229,CNST_LIMB(0xbc0ae83ce9045b15),CNST_LIMB(0x910d2360a450e)), + P(7237,CNST_LIMB(0xad30a3917e0968d),CNST_LIMB(0x90e417104eabd)), + P(7243,CNST_LIMB(0x124ef5a4e1c7cd63),CNST_LIMB(0x90c55d0fdea28)), + P(7247,CNST_LIMB(0x5b98fe0e9fe17aaf),CNST_LIMB(0x90b0e84c04f20)), + P(7253,CNST_LIMB(0x414306cfe45400fd),CNST_LIMB(0x909243fac6b70)), + P(7283,CNST_LIMB(0xa06d1b4fd391e8bb),CNST_LIMB(0x8ff9d0440d137)), + P(7297,CNST_LIMB(0x11939803a60c2381),CNST_LIMB(0x8fb3192789d73)), + P(7307,CNST_LIMB(0x668c11cc37ea6b23),CNST_LIMB(0x8f80c0d5031e3)), + P(7309,CNST_LIMB(0x83f9b2089dc10645),CNST_LIMB(0x8f76b3664f164)), + P(7321,CNST_LIMB(0x65dc8ae47af277a9),CNST_LIMB(0x8f3a80550abc3)), + P(7331,CNST_LIMB(0x6e2368b9c685770b),CNST_LIMB(0x8f087c50e00c4)), + P(7333,CNST_LIMB(0x3ea137aeba5a6b2d),CNST_LIMB(0x8efe7fb408cc2)), + P(7349,CNST_LIMB(0x735f57adca48f19d),CNST_LIMB(0x8eaecce5c4fd7)), + P(7351,CNST_LIMB(0x69a8de0ba1b18107),CNST_LIMB(0x8ea4dccaaec0b)), + P(7369,CNST_LIMB(0x8fb84bdf5822bd79),CNST_LIMB(0x8e4ba9fbc2ff0)), + P(7393,CNST_LIMB(0xb8fab3b748562721),CNST_LIMB(0x8dd5688a3b7d6)), + P(7411,CNST_LIMB(0xa6c658ea10a65c3b),CNST_LIMB(0x8d7d3821fd94f)), + P(7417,CNST_LIMB(0xe56381f33ab5e549),CNST_LIMB(0x8d5feb03c31d7)), + P(7433,CNST_LIMB(0xe3c224da14988139),CNST_LIMB(0x8d12033cc9d30)), + P(7451,CNST_LIMB(0x438c253e6d99f513),CNST_LIMB(0x8cbac4dec6a82)), + P(7457,CNST_LIMB(0xc1b99f8841a3a6e1),CNST_LIMB(0x8c9dc80ab604b)), + P(7459,CNST_LIMB(0x63fa18c79c54fa8b),CNST_LIMB(0x8c942115dcc96)), + P(7477,CNST_LIMB(0xe7f6f609619d0d1d),CNST_LIMB(0x8c3d7df67b539)), + P(7481,CNST_LIMB(0x7b39ef3b70afc109),CNST_LIMB(0x8c2a4bc35cb3b)), + P(7487,CNST_LIMB(0x73922c61ca7452bf),CNST_LIMB(0x8c0d8a4f1f264)), + P(7489,CNST_LIMB(0x28d96828332372c1),CNST_LIMB(0x8c03f71cbf906)), + P(7499,CNST_LIMB(0x6b6e92968c4e8463),CNST_LIMB(0x8bd42abd9a107)), + P(7507,CNST_LIMB(0x571861f084962edb),CNST_LIMB(0x8bae051d7f6ff)), + P(7517,CNST_LIMB(0xd935c64f140f1ef5),CNST_LIMB(0x8b7e735068135)), + P(7523,CNST_LIMB(0x96459f8fd72a4c4b),CNST_LIMB(0x8b61f82c5fb08)), + P(7529,CNST_LIMB(0x410ba9a2a18242d9),CNST_LIMB(0x8b4588a74a05a)), + P(7537,CNST_LIMB(0xcf90979f89870391),CNST_LIMB(0x8b1fb0a7ed403)), + P(7541,CNST_LIMB(0x10f94ff26bc00add),CNST_LIMB(0x8b0ccc5d8f5c8)), + P(7547,CNST_LIMB(0xa6619fbb9da139b3),CNST_LIMB(0x8af07f8ac5146)), + P(7549,CNST_LIMB(0x765a23334efb03d5),CNST_LIMB(0x8ae71328ffd49)), + P(7559,CNST_LIMB(0x6f2f613b5e631837),CNST_LIMB(0x8ab8086624822)), + P(7561,CNST_LIMB(0x666b99bfbcd368b9),CNST_LIMB(0x8aaea3ab5ae89)), + P(7573,CNST_LIMB(0x922b78eb01ed45bd),CNST_LIMB(0x8a7661f7020fe)), + P(7577,CNST_LIMB(0x7079a199c31de6a9),CNST_LIMB(0x8a63ab88aa8dd)), + P(7583,CNST_LIMB(0xa181abcda167be5f),CNST_LIMB(0x8a47a35d020f3)), + P(7589,CNST_LIMB(0x2f6dbbcab3a9822d),CNST_LIMB(0x8a2ba68a3cebf)), + P(7591,CNST_LIMB(0xc5a83ff0e43eba17),CNST_LIMB(0x8a2254c852497)), + P(7603,CNST_LIMB(0x28c68613dda7d97b),CNST_LIMB(0x89ea849898bb3)), + P(7607,CNST_LIMB(0x5cf33ed49efa5007),CNST_LIMB(0x89d7f3e285109)), + P(7621,CNST_LIMB(0x9125fdead661590d),CNST_LIMB(0x899720af36739)), + P(7639,CNST_LIMB(0xaee67f478c7325e7),CNST_LIMB(0x89442160d11dc)), + P(7643,CNST_LIMB(0x735b1274a0e89653),CNST_LIMB(0x8931bd5875a22)), + P(7649,CNST_LIMB(0x733b56eae1a4e621),CNST_LIMB(0x891630877aedf)), + P(7669,CNST_LIMB(0x1944ffb316ffe65d),CNST_LIMB(0x88baaad83e38f)), + P(7673,CNST_LIMB(0xf26bc3cfd2a01449),CNST_LIMB(0x88a86b9090aa4)), + P(7681,CNST_LIMB(0xb5827ba68b83e201),CNST_LIMB(0x8883fb99bf244)), + P(7687,CNST_LIMB(0xac139507e48eefb7),CNST_LIMB(0x8868b45e727ee)), + P(7691,CNST_LIMB(0xeb7676b25834fda3),CNST_LIMB(0x88568aef30d47)), + P(7699,CNST_LIMB(0xad898f4763da5c1b),CNST_LIMB(0x8832468f0bcdd)), + P(7703,CNST_LIMB(0xea906f224398f9a7),CNST_LIMB(0x88202b9a4df76)), + P(7717,CNST_LIMB(0xa8aff3caca28cdad),CNST_LIMB(0x87e0f31872e9b)), + P(7723,CNST_LIMB(0x46c53aa36b19b083),CNST_LIMB(0x87c5ecd731f42)), + P(7727,CNST_LIMB(0x9ada32b09603e8cf),CNST_LIMB(0x87b3eea3bb388)), + P(7741,CNST_LIMB(0xd31f842ef5d8e915),CNST_LIMB(0x87751a6c67d78)), + P(7753,CNST_LIMB(0x6124af44730a33f9),CNST_LIMB(0x873f6e2f9d34a)), + P(7757,CNST_LIMB(0x828ec4c2b6e64a85),CNST_LIMB(0x872d938dcfc01)), + P(7759,CNST_LIMB(0x3d6f49df999638af),CNST_LIMB(0x8724a80151dba)), + P(7789,CNST_LIMB(0x7641460a0ea89b65),CNST_LIMB(0x869f677f6cc1a)), + P(7793,CNST_LIMB(0x97703f98fb7fe291),CNST_LIMB(0x868db701df58d)), + P(7817,CNST_LIMB(0xd343c209e3e6b7b9),CNST_LIMB(0x8623f563a7d6d)), + P(7823,CNST_LIMB(0x4e5fc01f6a41406f),CNST_LIMB(0x86099ef0c8886)), + P(7829,CNST_LIMB(0xb78a05b08aa4bcbd),CNST_LIMB(0x85ef52d38fe87)), + P(7841,CNST_LIMB(0x3434a14919d34561),CNST_LIMB(0x85bad981c7847)), + P(7853,CNST_LIMB(0xccead7dee120f525),CNST_LIMB(0x8586893de7cfc)), + P(7867,CNST_LIMB(0xe1375a2bccd87673),CNST_LIMB(0x8549b491e9efe)), + P(7873,CNST_LIMB(0xf727d51420a57141),CNST_LIMB(0x852fb3859bea4)), + P(7877,CNST_LIMB(0x2c3b68cfbcebb00d),CNST_LIMB(0x851e631fc08f8)), + P(7879,CNST_LIMB(0xda91e2f3e17542f7),CNST_LIMB(0x8515bc9cde5f1)), + P(7883,CNST_LIMB(0xb55f6100ae95d6e3),CNST_LIMB(0x850472f6185b3)), + P(7901,CNST_LIMB(0x6a0c608e0bbaa975),CNST_LIMB(0x84b6defbc166b)), + P(7907,CNST_LIMB(0xac5f2fc151c016cb),CNST_LIMB(0x849d17159854b)), + P(7919,CNST_LIMB(0xb1e5af8146e4d00f),CNST_LIMB(0x8469a54a20645)), + P(7927,CNST_LIMB(0x6e283d3b112602c7),CNST_LIMB(0x84476f9401ade)), + P(7933,CNST_LIMB(0xf9a48bcb76c96e55),CNST_LIMB(0x842dd2e2dc25d)), + P(7937,CNST_LIMB(0xa776780ca4c0e101),CNST_LIMB(0x841cc543f58cb)), +#define SMALLEST_OMITTED_PRIME 7949 +#endif +#ifdef WANT_ptab + {CNST_LIMB(0x444437fed9a2349),{CNST_LIMB(0xe00056482545e92a),5,CNST_LIMB(0x2e044fdfbae4),CNST_LIMB(0x2c8f9615733fe6),CNST_LIMB(0x15319a745d44889),CNST_LIMB(0x30314bfee31fe08),CNST_LIMB(0x213845b5eb1d02b)},0,14}, + {CNST_LIMB(0x34091fa96ffdf47b),{CNST_LIMB(0x3adc72bf62f96a49),2,CNST_LIMB(0x2fdb815a40082e14),CNST_LIMB(0xa2fb4713ee182be),CNST_LIMB(0x6691fcc7a3042b5),CNST_LIMB(0xd7baca281bd7bfe),CNST_LIMB(0x31645ad7700b6fe1)},14,10}, + {CNST_LIMB(0x3c47d8d728a77ebb),{CNST_LIMB(0xfcb9aee19f3d0ca),2,CNST_LIMB(0xee09ca35d620514),CNST_LIMB(0x25e3c1639f7dc597),CNST_LIMB(0x176f977d1145f08f),CNST_LIMB(0x4a431b566c292ba),CNST_LIMB(0x100ae9d9482d6937)},24,9}, + {CNST_LIMB(0x77ab7da9d709ea9),{CNST_LIMB(0x11d1e7012ab3aa25),5,CNST_LIMB(0x1b394f7170aed8e),CNST_LIMB(0x546efaf8f3107d0),CNST_LIMB(0x42ed2efa9db39d8),CNST_LIMB(0xcf1c08fc6f825e),CNST_LIMB(0x252dd3fc3932c60)},33,8}, + {CNST_LIMB(0x310df3e7bd4bc897),{CNST_LIMB(0x4dfeef7ace095886),2,CNST_LIMB(0xaba3c794d85150d),CNST_LIMB(0x17a7ea757afc9b41),CNST_LIMB(0x27386bf8f31e3ba7),CNST_LIMB(0x14f913784ca1b09a),CNST_LIMB(0x19a5850266378808)},41,8}, + {CNST_LIMB(0xd997f089e8af1f),{CNST_LIMB(0x2d2f79839e6b7329),8,CNST_LIMB(0x285a2dd96a188d),CNST_LIMB(0x334ffbd384a516),CNST_LIMB(0xd9f5c4d959d8c),CNST_LIMB(0x1a7b0c8f9e2a8),CNST_LIMB(0x51d4df5ea86eca)},49,7}, + {CNST_LIMB(0x2514ab8fece6d79),{CNST_LIMB(0xb9d8ba8530d526d2),6,CNST_LIMB(0x111e482834cf602),CNST_LIMB(0x2099b9b4399ea77),CNST_LIMB(0xa7e65453d2c58b),CNST_LIMB(0x1543e97a71ba902),CNST_LIMB(0x13c9258fa65ea5c)},56,7}, + {CNST_LIMB(0x690efbefde431f9),{CNST_LIMB(0x37e6fe9321e30a89),5,CNST_LIMB(0x67c69a65020950a),CNST_LIMB(0x3d4da34fd3fb29d),CNST_LIMB(0x4481530580bf270),CNST_LIMB(0x53418b541a702fb),CNST_LIMB(0x5a63ba140615695)},63,7}, + {CNST_LIMB(0xf49e199a5f2f371),{CNST_LIMB(0xbe97cf50195e4cf),4,CNST_LIMB(0xb61e665a0d0c8f0),CNST_LIMB(0x12404319392532e),CNST_LIMB(0xc11fa27489010aa),CNST_LIMB(0x9486cdb3a063f1d),CNST_LIMB(0x90fb58fe1716f29)},70,7}, + {CNST_LIMB(0x20e4ce7eee0a5edf),{CNST_LIMB(0xf216910d87cce9ec),2,CNST_LIMB(0x19be5a877db767e7),CNST_LIMB(0x14174edbad8e4db0),CNST_LIMB(0x13aa47a54ebc0ab3),CNST_LIMB(0x34e03d849eed1a0),CNST_LIMB(0x1c348c675b2b87a9)},77,7}, + {CNST_LIMB(0x3c3b299a83e166e5),{CNST_LIMB(0x1004d8385b0845e0),2,CNST_LIMB(0xf135995f07a646c),CNST_LIMB(0x39f996f3e7c62cb6),CNST_LIMB(0x10e385c8b908ec46),CNST_LIMB(0x108780c61cd93a1),CNST_LIMB(0xece590a749ce9e6)},84,7}, + {CNST_LIMB(0x7385117dabf89767),{CNST_LIMB(0x1ba83180cf48fd02),1,CNST_LIMB(0x18f5dd04a80ed132),CNST_LIMB(0x134aacf48cf374fd),CNST_LIMB(0x5f5e8ab304a603e1),CNST_LIMB(0x8196d4d84952f0b),CNST_LIMB(0x27fbce261e06981)},91,7}, + {CNST_LIMB(0x6b1dd94152d113),{CNST_LIMB(0x31e8de86cb665558),9,CNST_LIMB(0x57c2791756ffa7),CNST_LIMB(0x155d1b6359e72e),CNST_LIMB(0x26e2dd434311d6),CNST_LIMB(0x2d6624583bf57f),CNST_LIMB(0x4b3c0311592466)},98,6}, + {CNST_LIMB(0x9bed1488742f9b),{CNST_LIMB(0xa44d3b1c6d785d44),8,CNST_LIMB(0x2f0a502161e5b4),CNST_LIMB(0x9197cc3e5a5b04),CNST_LIMB(0x58ecad625341f6),CNST_LIMB(0x2c8e81222f4972),CNST_LIMB(0x1f80904334e61e)},104,6}, + {CNST_LIMB(0xd851b0362c316b),{CNST_LIMB(0x2ef5b88db4540035),8,CNST_LIMB(0xcfa22017ddb3c6),CNST_LIMB(0x213062fd865691),CNST_LIMB(0x81822846481a0d),CNST_LIMB(0x4b3f5844dfd386),CNST_LIMB(0x746b08e79bff57)},110,6}, + {CNST_LIMB(0x129e6025385b5e9),{CNST_LIMB(0xb7fd23d5247f5d33),7,CNST_LIMB(0x1283c028c9d61ad),CNST_LIMB(0x8a2496a2184268),CNST_LIMB(0x702aa9d6cae97c),CNST_LIMB(0x8700d0e7b38adb),CNST_LIMB(0x562031b42d3873)},116,6}, + {CNST_LIMB(0x1b399405df9e1d9),{CNST_LIMB(0x2ce69e058ed22408),7,CNST_LIMB(0xc43448ef95aada),CNST_LIMB(0x2a35f6f5397332),CNST_LIMB(0x18bba0a2b06f9b5),CNST_LIMB(0x1bf0769bdd0a51),CNST_LIMB(0xdaf86a9dd4f157)},122,6}, + {CNST_LIMB(0x26a9c83b1da0183),{CNST_LIMB(0xa7c312b1de2834bc),6,CNST_LIMB(0x245cdfc0d956145),CNST_LIMB(0xcfb5812fdbb80b),CNST_LIMB(0x7f9bd0fd4d9771),CNST_LIMB(0x206d41f157b339d),CNST_LIMB(0x1597d040f39bed6)},128,6}, + {CNST_LIMB(0x36518f1ed35fae9),{CNST_LIMB(0x2da0bb538e68c61b),6,CNST_LIMB(0x161b11f812f7dbd),CNST_LIMB(0x1912054119f8337),CNST_LIMB(0x28b68baf0254a33),CNST_LIMB(0x1febc2a846ec627),CNST_LIMB(0x106e286e91657ac)},134,6}, + {CNST_LIMB(0x499cea9952ffcb7),{CNST_LIMB(0xbd2398239911cb86),5,CNST_LIMB(0x2f49990f2b0b4af),CNST_LIMB(0x3efc376b6d3879a),CNST_LIMB(0x16bf595684e7cae),CNST_LIMB(0x2096f989291e15a),CNST_LIMB(0x3f877653fe30a29)},140,6}, + {CNST_LIMB(0x603dc1f0578e36b),{CNST_LIMB(0x547a4d1f60bb6de6),5,CNST_LIMB(0x35de2e91a2ab072),CNST_LIMB(0x3ae19a039d933f9),CNST_LIMB(0x49f04fa32aed515),CNST_LIMB(0x49f39ce5e69737b),CNST_LIMB(0x48e7a8d6354cb3f)},146,6}, + {CNST_LIMB(0x822f4ff1bb75c7d),{CNST_LIMB(0xf7684c1a915fd94f),4,CNST_LIMB(0x3c4551ba4cbccdd),CNST_LIMB(0x3e072857c5d22e8),CNST_LIMB(0x757d8256f24de27),CNST_LIMB(0x256d9df09b5df5c),CNST_LIMB(0x19974713584ab80)},152,6}, + {CNST_LIMB(0xacfc9fbdf683023),{CNST_LIMB(0x7ad9852da99412df),4,CNST_LIMB(0x754da5eeda3acdb),CNST_LIMB(0x91f55d002dee623),CNST_LIMB(0x96936cc5e49d5ea),CNST_LIMB(0x766649a4996390),CNST_LIMB(0xaa8c52b8eea17dd)},158,6}, + {CNST_LIMB(0xe09d410f1fe4edb),{CNST_LIMB(0x23c5744aa32cf453),4,CNST_LIMB(0x34f16cefc1e749a),CNST_LIMB(0x2668179180c1b62),CNST_LIMB(0xdb241be2f133397),CNST_LIMB(0xa7c11527a49744e),CNST_LIMB(0x67d18e0669fea5b)},164,6}, + {CNST_LIMB(0x1149424a578f0ce7),{CNST_LIMB(0xd9e7a906d91cf1db),3,CNST_LIMB(0xdfe5fef362d4b5e),CNST_LIMB(0xcf056a84b77c77c),CNST_LIMB(0x985dfab0d2bd76b),CNST_LIMB(0xf57931f6922ec07),CNST_LIMB(0x44b19bfab74d6)},170,6}, + {CNST_LIMB(0x15b025d5fd579777),{CNST_LIMB(0x79b813c3ed8f4fd2),3,CNST_LIMB(0x116e5fce1d3c7de3),CNST_LIMB(0x1468c60d0220a399),CNST_LIMB(0xf10192b1089742d),CNST_LIMB(0xeae0b108eba5be6),CNST_LIMB(0xf0e98ff5e4d57d4)},176,6}, + {CNST_LIMB(0x1a5f81f6e38d3f1d),{CNST_LIMB(0x369eab91d724ae89),3,CNST_LIMB(0x12a46e520008c7fb),CNST_LIMB(0x638a97340d45e81),CNST_LIMB(0x12b4b0c893a62d44),CNST_LIMB(0x1072dcd55e5547d0),CNST_LIMB(0x18ce18c4a086d95f)},182,6}, + {CNST_LIMB(0x23293bf9b6fe2259),{CNST_LIMB(0xd1f849a43b917c65),2,CNST_LIMB(0x9df5c2bff0d0f91),CNST_LIMB(0xff1fdef6c15b8c),CNST_LIMB(0xec1383d93946006),CNST_LIMB(0x20ce6fd4fbbb8838),CNST_LIMB(0x55871453993a979)},188,6}, + {CNST_LIMB(0x2c1eaa6645e21b17),{CNST_LIMB(0x735a473662e09835),2,CNST_LIMB(0x2366ac00a295788d),CNST_LIMB(0xf8778468c26bac6),CNST_LIMB(0x10ecc751d2724c63),CNST_LIMB(0x4882fbd9d3d43e1),CNST_LIMB(0x2de76607a7f1541)},194,6}, + {CNST_LIMB(0x3646542a1110061b),{CNST_LIMB(0x2ddf24b018173a2c),2,CNST_LIMB(0x26e6af57bbbfe794),CNST_LIMB(0x1974e8d33a8f431f),CNST_LIMB(0x34da7258db6f7b4f),CNST_LIMB(0x2af310e921f874f8),CNST_LIMB(0x3cfeed9d4afc97)},200,6}, + {CNST_LIMB(0x4125602df5b7fa0b),{CNST_LIMB(0xf6fe47f7e339f3ce),1,CNST_LIMB(0x3c8fdf761ed811df),CNST_LIMB(0x145648c8769aba41),CNST_LIMB(0x3270209c06bd9a17),CNST_LIMB(0x2c03f98e45b9dca3),CNST_LIMB(0x3341dcfe340ee93e)},206,6}, + {CNST_LIMB(0x4e06bb83aa64f48d),{CNST_LIMB(0xa3f6020ab0b7e0d3),1,CNST_LIMB(0x15ebcd7500d12259),CNST_LIMB(0x786bf28f0081f92),CNST_LIMB(0x15d832d09f03b587),CNST_LIMB(0xaa3e94d54c2a575),CNST_LIMB(0x471850a042d21386)},212,6}, + {CNST_LIMB(0x6953db39a8298d8b),{CNST_LIMB(0x371b0bbe24632f20),1,CNST_LIMB(0x2d58498caface4ea),CNST_LIMB(0x557c399022219340),CNST_LIMB(0x2cb32a1a8fdd68c2),CNST_LIMB(0x122684249d42b9a9),CNST_LIMB(0x13c80507e77a929c)},218,6}, + {CNST_LIMB(0x15fafabe1c1777),{CNST_LIMB(0x74b22475baab0cce),11,CNST_LIMB(0xc763842e2c34d),CNST_LIMB(0x77d3f710b457b),CNST_LIMB(0x155a43f5525196),CNST_LIMB(0x148e30e0a5dee3),CNST_LIMB(0x13aa97836b8150)},224,5}, + {CNST_LIMB(0x18552ab4f8303b),{CNST_LIMB(0x50aaa1ed4d926e62),11,CNST_LIMB(0x815be492ca359),CNST_LIMB(0x1b55fe26d36ad),CNST_LIMB(0x113a54ceb7846),CNST_LIMB(0x1688511dfe47f),CNST_LIMB(0x66ccabff6c6c8)},229,5}, + {CNST_LIMB(0x1a99c2502dda5f),{CNST_LIMB(0x33f675a22ebecef5),11,CNST_LIMB(0x12ab7e96d807ff),CNST_LIMB(0x1d3db891dce3b),CNST_LIMB(0x19511de2e3095c),CNST_LIMB(0x2741e555a0bff),CNST_LIMB(0x51c7d31a19281)},234,5}, + {CNST_LIMB(0x1ebf9e78cd7ecb),{CNST_LIMB(0xa6b5da36fa2470c),11,CNST_LIMB(0xaebd869698c2f),CNST_LIMB(0x18e178fc70e26a),CNST_LIMB(0x64439ec9707b5),CNST_LIMB(0x116d1f70d29f20),CNST_LIMB(0xeea2317a9a585)},239,5}, + {CNST_LIMB(0x2214c7d5d9ce07),{CNST_LIMB(0xe0bc0f6215d26cf9),10,CNST_LIMB(0x1ffbac72c32f72),CNST_LIMB(0x1447f31b055129),CNST_LIMB(0x122d28bd754f9a),CNST_LIMB(0x106685d95b6d85),CNST_LIMB(0x18c9fdf391bdff)},244,5}, + {CNST_LIMB(0x25e2755d49ffa7),{CNST_LIMB(0xb078a0cae16506b6),10,CNST_LIMB(0x218554ef385919),CNST_LIMB(0xe00c975692d8e),CNST_LIMB(0x1afd2511d2f776),CNST_LIMB(0x108b0b031673f7),CNST_LIMB(0x8d919ed067cf0)},249,5}, + {CNST_LIMB(0x2925e3d5425d41),{CNST_LIMB(0x8e2c20d6f8f795ce),10,CNST_LIMB(0x1c5f29cb4c13c8),CNST_LIMB(0x15e11f6e5f634),CNST_LIMB(0xb32166d7982b3),CNST_LIMB(0xa636cf5c4f642),CNST_LIMB(0x28f997d81938bc)},254,5}, + {CNST_LIMB(0x2f39e99d11c26d),{CNST_LIMB(0x5aed08e710697213),10,CNST_LIMB(0x213b4a00c79b71),CNST_LIMB(0x1bd2737e294111),CNST_LIMB(0xd01c8aaaae314),CNST_LIMB(0xb00f1e27ed99e),CNST_LIMB(0x1d21748adab7e4)},259,5}, + {CNST_LIMB(0x3502a3ce62a769),{CNST_LIMB(0x35126ab40383fc5c),10,CNST_LIMB(0xf411f8bafb90c),CNST_LIMB(0x1fa38c975e6347),CNST_LIMB(0xf4058b043df4e),CNST_LIMB(0x2af2733656b159),CNST_LIMB(0x196e94f446c597)},264,5}, + {CNST_LIMB(0x3b357b23b014b1),{CNST_LIMB(0x14b711563eba7d77),10,CNST_LIMB(0x32f1ffd1469b4e),CNST_LIMB(0x197f48859c01a3),CNST_LIMB(0x29509dc5352d40),CNST_LIMB(0x335e5c9ef5d7fe),CNST_LIMB(0x284e1a5376a683)},269,5}, + {CNST_LIMB(0x420d06773114d3),{CNST_LIMB(0xf01a36d7bbf66dfc),9,CNST_LIMB(0xd86f221cf4e60),CNST_LIMB(0x728955d2f4a8d),CNST_LIMB(0x1a631ed35adca5),CNST_LIMB(0x2d592810a2cd39),CNST_LIMB(0x1215b15f856f68)},274,5}, + {CNST_LIMB(0x4c19f733c90d09),{CNST_LIMB(0xae954f9b28df48d8),9,CNST_LIMB(0xcab96d4cf28bb),CNST_LIMB(0x42b5fc3fd6e7ec),CNST_LIMB(0x2b7f897adc30de),CNST_LIMB(0x1a97bb06e110c0),CNST_LIMB(0x304db431256118)},279,5}, + {CNST_LIMB(0x52f224bf890ffd),{CNST_LIMB(0x8b0d84b8653cb09f),9,CNST_LIMB(0x8c298ef08a942),CNST_LIMB(0x2999ac4ebb9e26),CNST_LIMB(0x3dd9eb9ca2c026),CNST_LIMB(0x43401c4563f790),CNST_LIMB(0x38d5e8bf6d2c89)},284,5}, + {CNST_LIMB(0x5bf703dda941b1),{CNST_LIMB(0x644f51d4add132a4),9,CNST_LIMB(0x38fd3f81414bb8),CNST_LIMB(0x20049119d93b7c),CNST_LIMB(0x4e479d97844206),CNST_LIMB(0x294a3066f3b775),CNST_LIMB(0x1c21bda84cf2fc)},289,5}, + {CNST_LIMB(0x68cf321fe6202f),{CNST_LIMB(0x38a4d27caeef8e91),9,CNST_LIMB(0x1e26a01f2b6d41),CNST_LIMB(0x9e9e8993d282b),CNST_LIMB(0x417ad2819cd4fb),CNST_LIMB(0x627fb183ab0b1a),CNST_LIMB(0x278b9f029564e7)},294,5}, + {CNST_LIMB(0x71dad4e06cde9b),{CNST_LIMB(0x1fce1dcd4eb47a27),9,CNST_LIMB(0x457bdbeb7801db),CNST_LIMB(0x1f2b3df5db8f09),CNST_LIMB(0x2149ca25813ef0),CNST_LIMB(0x17d20c710e4487),CNST_LIMB(0x40ceb8ee4ca73d)},299,5}, + {CNST_LIMB(0x7b5e9ca091c63d),{CNST_LIMB(0x99bc23041414782),9,CNST_LIMB(0x1ac11ef1a1cf79),CNST_LIMB(0x313f0652fefffc),CNST_LIMB(0x12f34ea4e7a5db),CNST_LIMB(0x2aa2b3b3300bfd),CNST_LIMB(0x3245caffd0690c)},304,5}, + {CNST_LIMB(0x892f2017af4a77),{CNST_LIMB(0xddb91a666e887a07),8,CNST_LIMB(0x633133de624045),CNST_LIMB(0x7f207860875935),CNST_LIMB(0x702aff29ff7777),CNST_LIMB(0x1cc53fa2f53db9),CNST_LIMB(0x2c5ff88b6e27ee)},309,5}, + {CNST_LIMB(0x93efab3d98e265),{CNST_LIMB(0xbb00736076c6c8fc),8,CNST_LIMB(0x42ac68703b39),CNST_LIMB(0x4d4d015d5d1bd7),CNST_LIMB(0x85c801afb0f411),CNST_LIMB(0x4579d8022d0a69),CNST_LIMB(0x32ea2e520e3d23)},314,5}, + {CNST_LIMB(0x9fd1e9a289b8f9),{CNST_LIMB(0x9a0fb77008192e78),8,CNST_LIMB(0x9cfd1af6dc136),CNST_LIMB(0x23a28bc352c87c),CNST_LIMB(0x582383446e53c2),CNST_LIMB(0x3d52e0695b07e4),CNST_LIMB(0x83c6fc0e7cfd23)},319,5}, + {CNST_LIMB(0xb3ffc82a3b00bb),{CNST_LIMB(0x6c17325c7676de1f),8,CNST_LIMB(0x104f63f41af61c),CNST_LIMB(0x838ff92da5d267),CNST_LIMB(0xb37001a22f0194),CNST_LIMB(0x4487295b668b16),CNST_LIMB(0xa06ce4ed65729d)},324,5}, + {CNST_LIMB(0xc78aab3260ed67),{CNST_LIMB(0x486ec1d048657b5d),8,CNST_LIMB(0x5654a773cfd408),CNST_LIMB(0xb3f20a79edde43),CNST_LIMB(0xaebbd1a69724dd),CNST_LIMB(0x81191f0503a9),CNST_LIMB(0x3b54fc6e1ed034)},329,5}, + {CNST_LIMB(0xd8b06a4b9eddc9),{CNST_LIMB(0x2e7147c081441aeb),8,CNST_LIMB(0x5fe29aca965ce2),CNST_LIMB(0x9cb19caad665ca),CNST_LIMB(0x147b04c65844fd),CNST_LIMB(0x7a1c878be8db45),CNST_LIMB(0x8f4f4d51c80dfd)},334,5}, + {CNST_LIMB(0xe8f35bfe49ae4b),{CNST_LIMB(0x19547b44fa632b82),8,CNST_LIMB(0x4ce005e11fafad),CNST_LIMB(0x57f2d94de4ea00),CNST_LIMB(0xb885b9e976e473),CNST_LIMB(0x1eb25c197e9b39),CNST_LIMB(0xe2c45221f5cdb7)},339,5}, + {CNST_LIMB(0xfcff7f19788a27),{CNST_LIMB(0x3099f4bf7423272),8,CNST_LIMB(0x982693b0c3a8b),CNST_LIMB(0xa6eee9dce0fc63),CNST_LIMB(0xf1290f2b74223c),CNST_LIMB(0x36c85e11826e0b),CNST_LIMB(0xbe15668a4d3771)},344,5}, + {CNST_LIMB(0x10f681c21a80325),{CNST_LIMB(0xe2ef902951d2322d),7,CNST_LIMB(0x7efd8450d50a2b),CNST_LIMB(0x37c115b60abfde),CNST_LIMB(0x4a31517b3a2c0),CNST_LIMB(0x8ee426b2c25e26),CNST_LIMB(0xaf5e09c0582f8)},349,5}, + {CNST_LIMB(0x11ffa8ecf7814fb),{CNST_LIMB(0xc7250b86192832ab),7,CNST_LIMB(0xa4d35e0885656f),CNST_LIMB(0x6d14e9be5101ec),CNST_LIMB(0x93b36726a244a),CNST_LIMB(0xb56f38bde55186),CNST_LIMB(0x11443988cbd610f)},354,5}, + {CNST_LIMB(0x139b8ddf439b133),{CNST_LIMB(0xa1cbe52ffcdca969),7,CNST_LIMB(0x119cba991200690),CNST_LIMB(0xa8a1be12145159),CNST_LIMB(0x49831f7f1eb091),CNST_LIMB(0x5fe3a0bd210422),CNST_LIMB(0x11b90612ebf719f)},359,5}, + {CNST_LIMB(0x15b90aaef040351),{CNST_LIMB(0x791d6da971f79fb1),7,CNST_LIMB(0xc1c278790d9084),CNST_LIMB(0xa6bc771172ca70),CNST_LIMB(0x1219044d36b161b),CNST_LIMB(0x9363a00d9d3f5f),CNST_LIMB(0x14079ec2a37ea93)},364,5}, + {CNST_LIMB(0x17d664f86c88bd3),{CNST_LIMB(0x57a9176de3f40918),7,CNST_LIMB(0x13ca8e0f80a9a0f),CNST_LIMB(0xfc1ecc66c0c93b),CNST_LIMB(0x15be6192051cb1a),CNST_LIMB(0x136f263b7a50fcc),CNST_LIMB(0x3820db8623a7)},369,5}, + {CNST_LIMB(0x1a44cc5ef4c16b5),{CNST_LIMB(0x37da80020a7d1f74),7,CNST_LIMB(0x18584281cee4069),CNST_LIMB(0x178a63d22596ba9),CNST_LIMB(0x6739c7c5ac4f2d),CNST_LIMB(0x14c57a38e4d612a),CNST_LIMB(0x13d2e7fd35623ae)},374,5}, + {CNST_LIMB(0x1ca80b29773de79),{CNST_LIMB(0x1dde9f723a4f55dc),7,CNST_LIMB(0x1ac9ceffdba98e2),CNST_LIMB(0xf4618a5f0fdaa9),CNST_LIMB(0x17b96b4ded53ebb),CNST_LIMB(0x7faf749bdd9cb1),CNST_LIMB(0xfa9d50111fc549)},379,5}, + {CNST_LIMB(0x1e7b019a7fa8931),{CNST_LIMB(0xcc3160c520cdb96),7,CNST_LIMB(0xb9d29212dc305a),CNST_LIMB(0x91586fa7d2facc),CNST_LIMB(0x2638c4c9135f19),CNST_LIMB(0x1c315565816b84a),CNST_LIMB(0xa92e9c918ad70f)},384,5}, + {CNST_LIMB(0x1fd932c2a6c3463),{CNST_LIMB(0x137e41a0c0b8d4f),7,CNST_LIMB(0x13669eac9e5ce80),CNST_LIMB(0x94dc55b30276b5),CNST_LIMB(0x1c52a400cc7dae6),CNST_LIMB(0x1cd876c8023e81b),CNST_LIMB(0x8e06dbbb7e4c2d)},389,5}, + {CNST_LIMB(0x2175e8bd7050e79),{CNST_LIMB(0xe9a698d03a5e604b),6,CNST_LIMB(0xdcf15b87971a56),CNST_LIMB(0x2e9e439e7517fb),CNST_LIMB(0x85bbfca7ac6da9),CNST_LIMB(0x500c9508abde31),CNST_LIMB(0x1c9d7aa292a48b0)},394,5}, + {CNST_LIMB(0x24033b205fe4527),{CNST_LIMB(0xc6f39cee1695e79a),6,CNST_LIMB(0x1a92e6b5ac379c9),CNST_LIMB(0x1f1b86c0e7f8d15),CNST_LIMB(0x1e362d27d79fda9),CNST_LIMB(0x4dcd13ebf2a00a),CNST_LIMB(0x408b8bd354f1b4)},399,5}, + {CNST_LIMB(0x265d2eb09cdc073),{CNST_LIMB(0xab112e468a91ceb0),6,CNST_LIMB(0x1d6aaadf0ce5062),CNST_LIMB(0x8cb5be41003782),CNST_LIMB(0x52b9980c0c4bec),CNST_LIMB(0x2228f2e6cbe8667),CNST_LIMB(0xca6f7400df044e)},404,5}, + {CNST_LIMB(0x2953a0e65ca6a1d),{CNST_LIMB(0x8c7372d9ab5569c1),6,CNST_LIMB(0x4a8c6ea2b8f6c9),CNST_LIMB(0x3588f2393801ce),CNST_LIMB(0x1fce38ab648e336),CNST_LIMB(0x89544c1c4d5e80),CNST_LIMB(0x6e5d409692ed37)},409,5}, + {CNST_LIMB(0x2c67f25a6bc9c63),{CNST_LIMB(0x70f57416f0cce89e),6,CNST_LIMB(0xaa4e781437cc6c),CNST_LIMB(0x1c38f9d456ca8d),CNST_LIMB(0x2682eae3a0afadb),CNST_LIMB(0x2b54835e8a4f4ca),CNST_LIMB(0x1ff894f600fa94f)},414,5}, + {CNST_LIMB(0x2fdd1a7524ae76d),{CNST_LIMB(0x564e31abce2eba47),6,CNST_LIMB(0x1b96371ad2128cf),CNST_LIMB(0x35309a6895ab0d),CNST_LIMB(0x14de5531da96df1),CNST_LIMB(0x3a924ccc42ac90),CNST_LIMB(0x315a6b9b99a595)},419,5}, + {CNST_LIMB(0x33770e6e18aeb53),{CNST_LIMB(0x3e5a14fd0434a100),6,CNST_LIMB(0x1e428c066216163),CNST_LIMB(0x93d03854bffefa),CNST_LIMB(0x77e62b6df8d4a1),CNST_LIMB(0x8a8b138bb2ed69),CNST_LIMB(0x292d249664af8db)},424,5}, + {CNST_LIMB(0x379c7dff6334d3b),{CNST_LIMB(0x269dcc0c8d56e875),6,CNST_LIMB(0x2460122cb5efa2d),CNST_LIMB(0x28e51e3c7265f2e),CNST_LIMB(0x1efacb51926e686),CNST_LIMB(0xfc8248ae79bd5f),CNST_LIMB(0x2f3b91b1fe1f65)},429,5}, + {CNST_LIMB(0x3b82f15f7249c49),{CNST_LIMB(0x134ee332d51f0306),6,CNST_LIMB(0x3137e2a5a467c9c),CNST_LIMB(0x79d488798b4960),CNST_LIMB(0xb436578d1069bb),CNST_LIMB(0x10ad84e585582d0),CNST_LIMB(0x3215616c9b153bf)},434,5}, + {CNST_LIMB(0x3fff4dd17ad4ff9),{CNST_LIMB(0x2c8c1d50d30af),6,CNST_LIMB(0x2c8ba14ac01c0),CNST_LIMB(0x2bd06852b51e327),CNST_LIMB(0x30714e5452d2c1),CNST_LIMB(0x327ff42efc6d9c),CNST_LIMB(0x244bb5001864710)},439,5}, + {CNST_LIMB(0x465670cc294b181),{CNST_LIMB(0xd1ddf947b9d55be0),5,CNST_LIMB(0x106a71bea4fc8c6),CNST_LIMB(0xa255b26c45d27f),CNST_LIMB(0x460d26a6240e466),CNST_LIMB(0x1dda425d1868b60),CNST_LIMB(0x3d6eff8580e97e1)},444,5}, + {CNST_LIMB(0x4aaaab2fe3fee47),{CNST_LIMB(0xb6db6aa7d3a37a63),5,CNST_LIMB(0x3fffe3e5e83bd06),CNST_LIMB(0xa8a65f30809160),CNST_LIMB(0xbfd8fef4142370),CNST_LIMB(0x358c77f78c2a4d0),CNST_LIMB(0x3a89f0ee6796b95)},449,5}, + {CNST_LIMB(0x4f8bbff17c95ef7),{CNST_LIMB(0x9bf032ee57751395),5,CNST_LIMB(0x2728c2e42e214cb),CNST_LIMB(0x37fb2686e89761e),CNST_LIMB(0x4a264029edea029),CNST_LIMB(0x1d504d3aecaaa50),CNST_LIMB(0x45b5a7b35031756)},454,5}, + {CNST_LIMB(0x553ea1ce3216691),{CNST_LIMB(0x806643148e9063ef),5,CNST_LIMB(0x441a9569bcc4d0),CNST_LIMB(0x535ae4be3f071a1),CNST_LIMB(0x545a793067e09d8),CNST_LIMB(0xd5d15c09afe8cd),CNST_LIMB(0x4534c23a01c6a96)},459,5}, + {CNST_LIMB(0x59f7c9a4fefb517),{CNST_LIMB(0x6c37fd6421ef50ed),5,CNST_LIMB(0x2f718dff2dd2af5),CNST_LIMB(0x4aea82d40c5cc72),CNST_LIMB(0x4f7cec2a6861199),CNST_LIMB(0xe868a369a42529),CNST_LIMB(0x40e610cd320b2f7)},464,5}, + {CNST_LIMB(0x5e8d3fa86f95521),{CNST_LIMB(0x5a8fc0667cc240fe),5,CNST_LIMB(0x1e464eb541eb375),CNST_LIMB(0x3892fa43db27fd5),CNST_LIMB(0x4e5c7836ddc791a),CNST_LIMB(0x36e537bed96365e),CNST_LIMB(0x4375094ddcb8820)},469,5}, + {CNST_LIMB(0x64157c62c33e31d),{CNST_LIMB(0x4767bbee2675bc54),5,CNST_LIMB(0x5ca490917e48378),CNST_LIMB(0x11867a67aa79db0),CNST_LIMB(0x6198c4cbcaf84e6),CNST_LIMB(0x4338ebe5ab25fcf),CNST_LIMB(0x11e91c53e48fd1e)},474,5}, + {CNST_LIMB(0x6ceeed4c43f4183),{CNST_LIMB(0x2cced2b1dae4601a),5,CNST_LIMB(0x4177b3fa2db8811),CNST_LIMB(0x2b3db3648dc8a5),CNST_LIMB(0x50f060794aa127),CNST_LIMB(0x4f7cdc200df8c9a),CNST_LIMB(0x4525db055625df3)},479,5}, + {CNST_LIMB(0x7287ee7e5f96919),{CNST_LIMB(0x1e1b2205d593e3a6),5,CNST_LIMB(0x576a64b8ee6a195),CNST_LIMB(0x7bd2ea513c7027),CNST_LIMB(0x17c4152c6d55daa),CNST_LIMB(0x39f7aac6f902f57),CNST_LIMB(0x14765413bf9b5ca)},484,5}, + {CNST_LIMB(0x79886d10dfa5165),{CNST_LIMB(0xd9f57c223f379ca),5,CNST_LIMB(0x5569f0d32bb81fb),CNST_LIMB(0x6f08a7fc8e770a6),CNST_LIMB(0x2c14d325ec8479f),CNST_LIMB(0x4499d22e49d3c7),CNST_LIMB(0x53f1f1eecdc8c2)},489,5}, + {CNST_LIMB(0x7e13347ac1526bf),{CNST_LIMB(0x3e8a375cf0fb774),5,CNST_LIMB(0x3d9970a7d5b2820),CNST_LIMB(0x3664c9d670bba16),CNST_LIMB(0x6ba929ee3cbcd5c),CNST_LIMB(0xd5d262e6d92452),CNST_LIMB(0x2f545142add8d05)},494,5}, + {CNST_LIMB(0x8566f0377d15459),{CNST_LIMB(0xeb44411c1363bcf4),4,CNST_LIMB(0x5defd97f5781d92),CNST_LIMB(0x16eaae98cb00189),CNST_LIMB(0x986f4f6d77c243),CNST_LIMB(0x57c736925ddfd9),CNST_LIMB(0x10a756243dbe4ca)},499,5}, + {CNST_LIMB(0x8bfc83897e6cdaf),{CNST_LIMB(0xd428ea393317b9f2),4,CNST_LIMB(0x2465196cadab32d),CNST_LIMB(0x7594e9e684d904a),CNST_LIMB(0x19cd4a75383b2d1),CNST_LIMB(0x6a0e9c23f177e64),CNST_LIMB(0x56f0f2ae36c5465)},504,5}, + {CNST_LIMB(0x94ad790245385eb),{CNST_LIMB(0xb8cae8ae9a639526),4,CNST_LIMB(0x51b43cc2b30e037),CNST_LIMB(0x4cb133bb88b3adc),CNST_LIMB(0x3ede33df9c5e3e3),CNST_LIMB(0x665226a2d290ac4),CNST_LIMB(0x33db5ce835ec6e4)},509,5}, + {CNST_LIMB(0x9c30734d93b1379),{CNST_LIMB(0xa397f073b55bde0b),4,CNST_LIMB(0x23144a1f00005b6),CNST_LIMB(0x826ad253a3ed324),CNST_LIMB(0x940ad5d52b4806c),CNST_LIMB(0x1729e9d2d022730),CNST_LIMB(0x20a978fb381a6c2)},514,5}, + {CNST_LIMB(0xa57e1fd7a44fbb9),{CNST_LIMB(0x8c0164efd39df203),4,CNST_LIMB(0x7c2d03c898866a8),CNST_LIMB(0x4037558c6f1e4eb),CNST_LIMB(0x6694cdbbb8803c7),CNST_LIMB(0x99396c89bf97452),CNST_LIMB(0x436126c1b000fab)},519,5}, + {CNST_LIMB(0xaf9b9be9c8401d1),{CNST_LIMB(0x7531f66eca55c19b),4,CNST_LIMB(0x3904fdff023d639),CNST_LIMB(0x962f9b532413fb3),CNST_LIMB(0x27ec74df2758058),CNST_LIMB(0x5836483d1e34f66),CNST_LIMB(0x8384a37fad8866d)},524,5}, + {CNST_LIMB(0xb9ba711d6e4a84f),{CNST_LIMB(0x60dc0b5cc82154b3),4,CNST_LIMB(0x9fa47788598936),CNST_LIMB(0x82bd019c1fa5a56),CNST_LIMB(0x50db17c34711736),CNST_LIMB(0x739121f55c5b75d),CNST_LIMB(0x912fe4d49b6d56)},529,5}, + {CNST_LIMB(0xc41a8a6c63a70d1),{CNST_LIMB(0x4e30c99728e3c197),4,CNST_LIMB(0xaded2f8836f2fac),CNST_LIMB(0xab84ac5c6d525d9),CNST_LIMB(0x488aa0b1f301ccb),CNST_LIMB(0x5fdf2905d976ad6),CNST_LIMB(0x5cb75a7adbb8561)},534,5}, + {CNST_LIMB(0xcd79628a71801f7),{CNST_LIMB(0x3ef33887b9ad5b44),4,CNST_LIMB(0xbffdafb9937daab),CNST_LIMB(0x8c3722255b2b8c7),CNST_LIMB(0x63cd1bbc0e9c22a),CNST_LIMB(0xbd17bc2e12ad950),CNST_LIMB(0x15e9799e0d76f1e)},539,5}, + {CNST_LIMB(0xd6f67d4726eaaf5),{CNST_LIMB(0x30df0c865cc92a96),4,CNST_LIMB(0xbb4b3b81c94fd1),CNST_LIMB(0x2a20ca76128ce99),CNST_LIMB(0x4a4022bdd8f612e),CNST_LIMB(0x3bafa50d5be5f8b),CNST_LIMB(0xb86a67f06630908)},544,5}, + {CNST_LIMB(0xe5d3b047627f8e3),{CNST_LIMB(0x1d275ac8c78303ec),4,CNST_LIMB(0xbcf14b4275878ed),CNST_LIMB(0x5ee8b82b0662dd),CNST_LIMB(0x77e3de57e11f662),CNST_LIMB(0x5ed59e5dfb5cd16),CNST_LIMB(0xbe6a6366650aef1)},549,5}, + {CNST_LIMB(0xef42ae515bfb29d),{CNST_LIMB(0x11e922af2e24e769),4,CNST_LIMB(0x1c926c98e452393),CNST_LIMB(0xd26a458c9c34765),CNST_LIMB(0x5da54b52a8aa98a),CNST_LIMB(0xa2ed4f828338df7),CNST_LIMB(0xe69ac190926521a)},554,5}, + {CNST_LIMB(0xfd32459f0b3d4bb),{CNST_LIMB(0x2d5ace688e647e9),4,CNST_LIMB(0x2cdba60f4c2b450),CNST_LIMB(0x2577b742a8ed5db),CNST_LIMB(0x144ef4109272736),CNST_LIMB(0xbe9326c4f15e1a9),CNST_LIMB(0xb96de853277fb4f)},559,5}, + {CNST_LIMB(0x10a16ef6c96a16c7),{CNST_LIMB(0xec9602538c0df011),3,CNST_LIMB(0x68a7f8a32c8aa57),CNST_LIMB(0x1445e7d17b921f3),CNST_LIMB(0x81c8debc8176f0b),CNST_LIMB(0xe3a1c5b816e4a65),CNST_LIMB(0xa52ad5bb93c9f4b)},564,5}, + {CNST_LIMB(0x117c2fec47f5e013),{CNST_LIMB(0xd48355880989be17),3,CNST_LIMB(0xb356114108dbef6),CNST_LIMB(0xe7ddeca9ba6a20c),CNST_LIMB(0xf2d7618ea8a6953),CNST_LIMB(0x412256baaec5c27),CNST_LIMB(0x1f8e16ca6e5c0d7)},569,5}, + {CNST_LIMB(0x129a8c10ae1f364b),{CNST_LIMB(0xb857af53b5b43644),3,CNST_LIMB(0xe26e327286a3e31),CNST_LIMB(0xeef9d55a9d06dbf),CNST_LIMB(0xe61febd3beb02b6),CNST_LIMB(0x10d018a00b7fd6a5),CNST_LIMB(0x32009c46e7c1314)},574,5}, + {CNST_LIMB(0x134631392d507059),{CNST_LIMB(0xa9063d94bb92a978),3,CNST_LIMB(0x56f8018b2ea4b7b),CNST_LIMB(0x1270cb710b035935),CNST_LIMB(0x11033d859716c4f9),CNST_LIMB(0xd45bebac416a68c),CNST_LIMB(0xc08fe72fc6eef84)},579,5}, + {CNST_LIMB(0x13fde7755d5fd9ed),{CNST_LIMB(0x99c48a788248a856),3,CNST_LIMB(0x1019267f9f81c8e4),CNST_LIMB(0x394e4098ea8549),CNST_LIMB(0x33c85c2a1514436),CNST_LIMB(0xa1e569d4432f4bb),CNST_LIMB(0x128bfbc862fb3c58)},584,5}, + {CNST_LIMB(0x15698c0906cc26a5),{CNST_LIMB(0x7e957ed81f600c1e),3,CNST_LIMB(0x1476fb9cb53a56e9),CNST_LIMB(0xeff15504451beab),CNST_LIMB(0xdea55fc79c32599),CNST_LIMB(0x76a982d54d956a1),CNST_LIMB(0x4d131625675abd7)},589,5}, + {CNST_LIMB(0x168a1ee80f6d92f5),{CNST_LIMB(0x6b73459d204359d1),3,CNST_LIMB(0x810ac07564aaf79),CNST_LIMB(0x874d5996e15561a),CNST_LIMB(0xb75c73837694b49),CNST_LIMB(0xd4645617d29779b),CNST_LIMB(0x12af15ef931be940)},594,5}, + {CNST_LIMB(0x17daa6de32466fbf),{CNST_LIMB(0x576bc18853c72908),3,CNST_LIMB(0x11757b52093fa28a),CNST_LIMB(0xff4c0f212559944),CNST_LIMB(0x40af9872004a0a5),CNST_LIMB(0x2b2b7c424c54c2b),CNST_LIMB(0x1a2b7130739c4c7)},599,5}, + {CNST_LIMB(0x18ea5f2dbe212911),{CNST_LIMB(0x48ca86c98010be89),3,CNST_LIMB(0x6d8483692b46556),CNST_LIMB(0x305d89220ec48d2),CNST_LIMB(0x1772200dfc1938dc),CNST_LIMB(0xded80c44ca87607),CNST_LIMB(0xb498b0490dc55dd)},604,5}, + {CNST_LIMB(0x1a0fa1ef47787d1b),{CNST_LIMB(0x3a56b20c2d70e08a),3,CNST_LIMB(0x15734e967cc39a0d),CNST_LIMB(0x8fc968191dc0fd3),CNST_LIMB(0x1680d35f18721f8f),CNST_LIMB(0x197b4a3e18c9e8bc),CNST_LIMB(0xc0ad81d645f40c7)},609,5}, + {CNST_LIMB(0x1b673b66a023a93f),{CNST_LIMB(0x2af150ff9195ac0f),3,CNST_LIMB(0x95ee9645ebf0cc9),CNST_LIMB(0x1717202bbc3e0a78),CNST_LIMB(0x126d365df320adf6),CNST_LIMB(0x137d63165361ab0e),CNST_LIMB(0x19ca69d84cc1417c)},614,5}, + {CNST_LIMB(0x1ce34de10c258111),{CNST_LIMB(0x1b9430b6521be183),3,CNST_LIMB(0x18e590f79ed3f778),CNST_LIMB(0xbcbaeb9ec0a1624),CNST_LIMB(0x18f51ac04296ceb6),CNST_LIMB(0x161b15271d06a3e1),CNST_LIMB(0x5f0a62fb317dd86)},619,5}, + {CNST_LIMB(0x1e19674e354f4667),{CNST_LIMB(0x102a99b0acd64358),3,CNST_LIMB(0xf34c58e5585ccc8),CNST_LIMB(0x15fad9b7ef3a5cbd),CNST_LIMB(0x1874ea34e3e274f9),CNST_LIMB(0x841598977c90581),CNST_LIMB(0x1c04690158b888d)},624,5}, + {CNST_LIMB(0x1f3740adb603b24d),{CNST_LIMB(0x66e52892f80015e),3,CNST_LIMB(0x645fa924fe26d98),CNST_LIMB(0xc022a525d7f5a4f),CNST_LIMB(0x16d7e66846e5d65b),CNST_LIMB(0x10105a92c09c5aa9),CNST_LIMB(0xedddad56d23fc0e)},629,5}, + {CNST_LIMB(0x20e7b3c0e3b73671),{CNST_LIMB(0xf1eabc8c8352c9af),2,CNST_LIMB(0x19aa15b9c5fd82e9),CNST_LIMB(0x10fd7c871bd5d222),CNST_LIMB(0x4ee89a76e1259e0),CNST_LIMB(0x1280d75e6bf3c134),CNST_LIMB(0x85e103f1853c3d)},634,5}, + {CNST_LIMB(0x22b5b4fc40d4c35f),{CNST_LIMB(0xd807362226cc7e50),2,CNST_LIMB(0xd080d1a3a2ea867),CNST_LIMB(0x1f068368adc3fde1),CNST_LIMB(0x178240b1c3cf35a9),CNST_LIMB(0x1dc077b2ed00fd8c),CNST_LIMB(0x2e6e64a07f9c833)},639,5}, + {CNST_LIMB(0x23cff30e6fb8f7fd),{CNST_LIMB(0xc97f150b60a9e71b),2,CNST_LIMB(0x5505a9af1f13815),CNST_LIMB(0x22434bb477153d47),CNST_LIMB(0x87670d53a068a58),CNST_LIMB(0x21b754fa0ae7b745),CNST_LIMB(0x2182750984e9f50b)},644,5}, + {CNST_LIMB(0x266a30ee37cc7341),{CNST_LIMB(0xaa808f26b38df4ef),2,CNST_LIMB(0x1982da6ab1354c7a),CNST_LIMB(0xfda1381ca806f81),CNST_LIMB(0x1a31d30d06bd5b7b),CNST_LIMB(0xbc65e21d25000c6),CNST_LIMB(0x132d8167c6a0973b)},649,5}, + {CNST_LIMB(0x283e6bddfbebab6d),{CNST_LIMB(0x971e4733b2e0d2bf),2,CNST_LIMB(0xe8978cc1879fb72),CNST_LIMB(0x1c9e26afc4d767da),CNST_LIMB(0x1e376fcf488c8249),CNST_LIMB(0x977e63f145b0e1d),CNST_LIMB(0xe2db9891e737aa1)},654,5}, + {CNST_LIMB(0x298d29c47d06f16b),{CNST_LIMB(0x8a4e7f92da9842e7),2,CNST_LIMB(0x6b1056511d6577e),CNST_LIMB(0x592f6f3bbda49cc),CNST_LIMB(0x2692769f01fb0a5b),CNST_LIMB(0x5f3e5623e91d30d),CNST_LIMB(0x2104d5242a92b48d)},659,5}, + {CNST_LIMB(0x2afa8c16de374c13),{CNST_LIMB(0x7d364b6556c2b905),2,CNST_LIMB(0x291b438da8eb83a1),CNST_LIMB(0x14222ff3cbf7d671),CNST_LIMB(0x126ac7f90facd4d3),CNST_LIMB(0x46d452f540a8d2),CNST_LIMB(0xb0b0fc23426b0b7)},664,5}, + {CNST_LIMB(0x2c44b3413ab0dee7),{CNST_LIMB(0x721b37f337583151),2,CNST_LIMB(0x22a87fb9da8ba57d),CNST_LIMB(0x26943e2ad67b49d6),CNST_LIMB(0x1ef6cfa904bef1cd),CNST_LIMB(0x18e7d1baf5588938),CNST_LIMB(0x1ad24c5276c66d2f)},669,5}, + {CNST_LIMB(0x2e88fa7433ac7823),{CNST_LIMB(0x60141b17275393e2),2,CNST_LIMB(0x17531bbafda1a751),CNST_LIMB(0xf3ea18441a36068),CNST_LIMB(0x130110257a01259a),CNST_LIMB(0x14122cf2cde8eecc),CNST_LIMB(0x24d25acd522c56b7)},674,5}, + {CNST_LIMB(0x303fb77cc2bfe62b),{CNST_LIMB(0x539292e31ed6db25),2,CNST_LIMB(0xec16a9032408129),CNST_LIMB(0x22483ceeb16c18a3),CNST_LIMB(0x1dd1cf7128399e5a),CNST_LIMB(0x11b3d478af2cbe42),CNST_LIMB(0x2a86cb29ac9873d3)},679,5}, + {CNST_LIMB(0x32eeac8f8d221e55),{CNST_LIMB(0x41ae89b9e560d65a),2,CNST_LIMB(0x156a1323e556857),CNST_LIMB(0x865eccdcf192078),CNST_LIMB(0x29e9014382ce253e),CNST_LIMB(0x737a633527d55ef),CNST_LIMB(0xe3223c22b887658)},684,5}, + {CNST_LIMB(0x354d75b3270eaedd),{CNST_LIMB(0x336093f2bc204c55),2,CNST_LIMB(0x2aca293363c5448c),CNST_LIMB(0x17160152eb4aa39f),CNST_LIMB(0x16b50b70fa80acee),CNST_LIMB(0x2493bd25f34e1536),CNST_LIMB(0x18f710cf9496617c)},689,5}, + {CNST_LIMB(0x37b26a3f703f6027),{CNST_LIMB(0x2629d54caca5a93b),2,CNST_LIMB(0x213657023f027f64),CNST_LIMB(0x257ed9007720600c),CNST_LIMB(0xaf3dcc0f043ce98),CNST_LIMB(0x115787f3ada80173),CNST_LIMB(0x7071885da2772a7)},694,5}, + {CNST_LIMB(0x3a2d837d37f39e39),{CNST_LIMB(0x199e982941bda182),2,CNST_LIMB(0x1749f20b2031871c),CNST_LIMB(0x153d7d45eae3fbc6),CNST_LIMB(0x3035b3e81047b52f),CNST_LIMB(0x3096ed6d9a28fa5a),CNST_LIMB(0x221887c4142d7434)},699,5}, + {CNST_LIMB(0x3d6201596c85db3f),{CNST_LIMB(0xaea3e9ef4bf14aa),2,CNST_LIMB(0xa77fa9a4de89304),CNST_LIMB(0x140df851fb641569),CNST_LIMB(0x275b27f619d2cffb),CNST_LIMB(0x16df2d5134102662),CNST_LIMB(0x10ab318b9b8a8aef)},704,5}, + {CNST_LIMB(0x401080f68635f765),{CNST_LIMB(0xff7c1a4f020138fa),1,CNST_LIMB(0x3fce7d1c6d5e19d1),CNST_LIMB(0x1feb2b2abf929ebc),CNST_LIMB(0x279cb7a4291af740),CNST_LIMB(0x384bce4293f19637),CNST_LIMB(0x168a9776844c9b6f)},709,5}, + {CNST_LIMB(0x41c3dea2c7c4509b),{CNST_LIMB(0xf2421126ad7a2852),1,CNST_LIMB(0x3ab46417a8b30e2f),CNST_LIMB(0x35206295938b9c19),CNST_LIMB(0x317d8909a9980afe),CNST_LIMB(0x195b889376db752f),CNST_LIMB(0xeb8a8f47083a08e)},714,5}, + {CNST_LIMB(0x441255580dcabef7),{CNST_LIMB(0xe1601977719c2988),1,CNST_LIMB(0x33c8fff7d69fc31b),CNST_LIMB(0x3aa78ab59c61fb90),CNST_LIMB(0x3c41600b3a070fd7),CNST_LIMB(0x121266b65d774473),CNST_LIMB(0x5812c8f46959e7)},719,5}, + {CNST_LIMB(0x467e90ff075dfa77),{CNST_LIMB(0xd0d4ccbfd7fdb2ae),1,CNST_LIMB(0x2c844d02e9e6109b),CNST_LIMB(0x395a6f0c5abc0a3c),CNST_LIMB(0x30393c08245d18c3),CNST_LIMB(0xac042a1b1191d06),CNST_LIMB(0x1d0c88b0cc347eed)},724,5}, + {CNST_LIMB(0x35b7e6a52de6b),{CNST_LIMB(0x30ff8515bed6fc1f),14,CNST_LIMB(0x2f4533b937fab),CNST_LIMB(0xeb33cd2951b7),CNST_LIMB(0x28ce28b5e1739),CNST_LIMB(0x30d609f6bade3),CNST_LIMB(0x249a87bc9957)},729,4}, + {CNST_LIMB(0x4b9237b1fac55af1),{CNST_LIMB(0xb19ac3ed68fa0441),1,CNST_LIMB(0x1d4958ea0fafef2d),CNST_LIMB(0x4ba7c350e3c499e),CNST_LIMB(0xe26c59f6a4a42e5),CNST_LIMB(0x4acd391ac5c14c62),CNST_LIMB(0x38a0169051f4a371)},733,5}, + {CNST_LIMB(0x4fa265b31b73c6df),{CNST_LIMB(0x9b7b0be2fb2dbf62),1,CNST_LIMB(0x1118cee6ada4ab63),CNST_LIMB(0x2b4fe57f0434fb44),CNST_LIMB(0x2cffeb10b15bf6),CNST_LIMB(0xe12f06864906a7b),CNST_LIMB(0x2a0824475f11f823)},738,5}, + {CNST_LIMB(0x516d33f3efe608d5),{CNST_LIMB(0x926c85237f2dc355),1,CNST_LIMB(0xbb86424304de581),CNST_LIMB(0x3ec190a9cee7a48e),CNST_LIMB(0xd7d8bfe60d52602),CNST_LIMB(0xdff7561c9c07756),CNST_LIMB(0x3c1d2db82b327710)},743,5}, + {CNST_LIMB(0x545e342d68fbf683),{CNST_LIMB(0x8464ceb2fdd80297),1,CNST_LIMB(0x2e56377c50c1c77),CNST_LIMB(0x474ec2f4bd92576),CNST_LIMB(0x2a5da9663350db1),CNST_LIMB(0x220077cd63148dd2),CNST_LIMB(0x280dcbaf0c2ad61c)},748,5}, + {CNST_LIMB(0x57e94c457826bd6b),{CNST_LIMB(0x74bd3fdb5c8280eb),1,CNST_LIMB(0x502d67750fb2852a),CNST_LIMB(0x45149579eaa28023),CNST_LIMB(0x3bb53a4c0c4db579),CNST_LIMB(0x3a96a3180f221b2),CNST_LIMB(0x27f9af8526a8cf70)},753,5}, + {CNST_LIMB(0x5b9b45655ebf3b79),{CNST_LIMB(0x65b42a0f00510df2),1,CNST_LIMB(0x48c975354281890e),CNST_LIMB(0x2929df87cfd7453c),CNST_LIMB(0x1b6bb026965ae7ed),CNST_LIMB(0x52659a85b7df96c2),CNST_LIMB(0x21db715c0f72134)},758,5}, + {CNST_LIMB(0x5e6ad0d2eaa14c25),{CNST_LIMB(0x5b0e2387ccda26c3),1,CNST_LIMB(0x432a5e5a2abd67b6),CNST_LIMB(0x14b7571d1a05b77d),CNST_LIMB(0x498547c0b3350ce8),CNST_LIMB(0x9d4e28ce05c6c27),CNST_LIMB(0x4913b5ba5c5edc8)},763,5}, + {CNST_LIMB(0x60704759208cd21d),{CNST_LIMB(0x53c7ef8bdf16795b),1,CNST_LIMB(0x3f1f714dbee65bc6),CNST_LIMB(0x25fc61d1a473562),CNST_LIMB(0x158a2ce0171d5fd),CNST_LIMB(0x2f3bdc4b8520f24c),CNST_LIMB(0x4081386865e00703)},768,5}, + {CNST_LIMB(0x63bc6b32a19c883b),{CNST_LIMB(0x488c1dcdc113150a),1,CNST_LIMB(0x3887299abcc6ef8a),CNST_LIMB(0x2aab5731e10d2529),CNST_LIMB(0x5eeeb60320f0bef4),CNST_LIMB(0x18e4d9f1c279596e),CNST_LIMB(0xf478370d7e2465f)},773,5}, + {CNST_LIMB(0x47f6a9e8dab75),{CNST_LIMB(0xc7577d2a861d140e),13,CNST_LIMB(0x435dc14ffaf0e),CNST_LIMB(0x2557057e3745b),CNST_LIMB(0x450b5149277a6),CNST_LIMB(0xda1fae30c112),CNST_LIMB(0x3951ca3221a2d)},778,4}, + {CNST_LIMB(0x6e373b550764872f),{CNST_LIMB(0x294ecadbf29bc1cb),1,CNST_LIMB(0x23918955f136f1a2),CNST_LIMB(0x29cffcf11c6e3647),CNST_LIMB(0x4af7d1191966b3e0),CNST_LIMB(0x38ebd581ce6f80c6),CNST_LIMB(0x14ebbbc9200a6d59)},782,5}, + {CNST_LIMB(0x4ca8ed991d8b9),{CNST_LIMB(0xab7251b581f8c74d),13,CNST_LIMB(0x1639351769382),CNST_LIMB(0x3145f1b0a8e59),CNST_LIMB(0xff20704d1793),CNST_LIMB(0x1cd9e54d284e),CNST_LIMB(0x1602f3ac7db9c)},787,4}, + {CNST_LIMB(0x74b13dc12b016dc1),{CNST_LIMB(0x18ce87a5c4d39e85),1,CNST_LIMB(0x169d847da9fd247e),CNST_LIMB(0x286e093dede24bb5),CNST_LIMB(0x1854fa948ad9109d),CNST_LIMB(0x6b81a8b81781577c),CNST_LIMB(0xad44a3d15bc6be5)},791,5}, + {CNST_LIMB(0x78b0c5ae997e31ef),{CNST_LIMB(0xf811cf8a4bb1f80),1,CNST_LIMB(0xe9e74a2cd039c22),CNST_LIMB(0x30a04d242d0dfd11),CNST_LIMB(0x128fe81eea336414),CNST_LIMB(0x3639736d1defa144),CNST_LIMB(0x5eeb71b0497f58ff)},796,5}, + {CNST_LIMB(0x7dcf3e856f4612d7),{CNST_LIMB(0x47509bc7743383b),1,CNST_LIMB(0x46182f52173da52),CNST_LIMB(0x430e9fd64eeb40e6),CNST_LIMB(0x2774902fd5f53d5b),CNST_LIMB(0x4f5c0d7033943d05),CNST_LIMB(0x3be559075217f3a8)},801,5}, + {CNST_LIMB(0x550e24ca1a54b),{CNST_LIMB(0x81416693b884d74c),13,CNST_LIMB(0xee45b7c01c48),CNST_LIMB(0x3848946d8aec8),CNST_LIMB(0x541aec862a3ac),CNST_LIMB(0x4f2e818315dbc),CNST_LIMB(0xa8197f5fb2b)},806,4}, + {CNST_LIMB(0x573c8f376a18d),{CNST_LIMB(0x779f50fc3a19a6c9),13,CNST_LIMB(0x4fc81955d5129),CNST_LIMB(0xe80abe2896a1),CNST_LIMB(0x3a505801c159e),CNST_LIMB(0x162eeea75d4cd),CNST_LIMB(0x20dd0efbe8570)},810,4}, + {CNST_LIMB(0x589c3c614e917),{CNST_LIMB(0x71cc8c064f8788ee),13,CNST_LIMB(0x325d12375f7e1),CNST_LIMB(0x514f8f320e7d3),CNST_LIMB(0x55cf104cf51d3),CNST_LIMB(0x23278b29858c6),CNST_LIMB(0x3b956eecbdd30)},814,4}, + {CNST_LIMB(0x5a494bafe993d),{CNST_LIMB(0x6aef2ee9b04422dc),13,CNST_LIMB(0x5111950929bd7),CNST_LIMB(0x2c3779cd17b37),CNST_LIMB(0x2b7f886fc6966),CNST_LIMB(0x4f0b47ffa902d),CNST_LIMB(0x10bd268a51d6c)},818,4}, + {CNST_LIMB(0x5bdea84b0b73f),{CNST_LIMB(0x64adca063056bccb),13,CNST_LIMB(0x427b265a68455),CNST_LIMB(0x2ef4f15ac34a6),CNST_LIMB(0x493c4fd89b0ce),CNST_LIMB(0x7e61acb14b3a),CNST_LIMB(0x20d0328207c83)},822,4}, + {CNST_LIMB(0x5d4c55a25a945),{CNST_LIMB(0x5f37ce4e679bb0c3),13,CNST_LIMB(0x5b08caebb5502),CNST_LIMB(0x3d0eab29a51f1),CNST_LIMB(0x3c9ac2f5a187d),CNST_LIMB(0x29304bdf75a79),CNST_LIMB(0x14d681f7ea1f0)},826,4}, + {CNST_LIMB(0x5f286a042b527),{CNST_LIMB(0x585aa50035c6eb19),13,CNST_LIMB(0x1f74be8b4aa53),CNST_LIMB(0x47290f02b2679),CNST_LIMB(0x44c4bd1ee1378),CNST_LIMB(0x51286cbc40de1),CNST_LIMB(0xc379e189a860)},830,4}, + {CNST_LIMB(0x62521adc68615),{CNST_LIMB(0x4d46d1e25221a4ef),13,CNST_LIMB(0x53d112a3ea538),CNST_LIMB(0x26e6ad330e6d8),CNST_LIMB(0x56830d4191021),CNST_LIMB(0xed06536bee19),CNST_LIMB(0x5ba5998aa1cbd)},834,4}, + {CNST_LIMB(0x64f0108522a4b),{CNST_LIMB(0x44a2bea99b1fe52b),13,CNST_LIMB(0x22a1a59e3d4a4),CNST_LIMB(0x55422d57d71a4),CNST_LIMB(0x48b99527500ba),CNST_LIMB(0x5dffbfb3a890f),CNST_LIMB(0x618de61d17b82)},838,4}, + {CNST_LIMB(0x684eced8d04ad),{CNST_LIMB(0x3a25a4304e45cd70),13,CNST_LIMB(0x498e06ad4670c),CNST_LIMB(0x6397605c9b1d3),CNST_LIMB(0x1107048baaf16),CNST_LIMB(0x6292ac8aeb164),CNST_LIMB(0x4def8ba3a7552)},842,4}, + {CNST_LIMB(0x69e938da0b6b9),{CNST_LIMB(0x35644b98f3e9b802),13,CNST_LIMB(0x38dd6fce5c5b4),CNST_LIMB(0x6307e2db6000d),CNST_LIMB(0x56835d316819f),CNST_LIMB(0x2b1da7eb24a08),CNST_LIMB(0xf110b6d6a913)},846,4}, + {CNST_LIMB(0x6bf4be42947af),{CNST_LIMB(0x2f87eee6ccd631e7),13,CNST_LIMB(0x6b0e021f080f0),CNST_LIMB(0x4b469e0f2c53a),CNST_LIMB(0x50664c269b5e3),CNST_LIMB(0x4139b73b961d6),CNST_LIMB(0x13dc91bdbee0f)},850,4}, + {CNST_LIMB(0x6f54dbd6ccf57),{CNST_LIMB(0x26540878c92cd039),13,CNST_LIMB(0x382053afc295a),CNST_LIMB(0x2c8c19e89353d),CNST_LIMB(0x534384d9aa927),CNST_LIMB(0x249d03e328fc1),CNST_LIMB(0x2c57702938274)},854,4}, + {CNST_LIMB(0x71632fdcf6c15),{CNST_LIMB(0x20fdcdbf333d83af),13,CNST_LIMB(0x5242218aef575),CNST_LIMB(0x9ab7cecd8cd3),CNST_LIMB(0x4ea4e8bc18b4d),CNST_LIMB(0x16d9320fd98f4),CNST_LIMB(0x2d2b50a730c10)},858,4}, + {CNST_LIMB(0x7317fb257e1e1),{CNST_LIMB(0x1cb50c1361edfd6e),13,CNST_LIMB(0x489cb7c9fe32a),CNST_LIMB(0x258cf78a73422),CNST_LIMB(0x560fbee8c2cf2),CNST_LIMB(0x467156be8e294),CNST_LIMB(0xc593edc4d71f)},862,4}, + {CNST_LIMB(0x75e5d5c5e4577),{CNST_LIMB(0x15ef86e1cee16113),13,CNST_LIMB(0x6eece492ce925),CNST_LIMB(0x561b9134c02bf),CNST_LIMB(0x596b2a81ab56d),CNST_LIMB(0x296835004dd20),CNST_LIMB(0x3160915ef8c65)},866,4}, + {CNST_LIMB(0x788a813bc2fb1),{CNST_LIMB(0xfd74e4e944c107b),13,CNST_LIMB(0x6e15178139c26),CNST_LIMB(0x7828db84f90d2),CNST_LIMB(0x3e1e0cdc0bb1c),CNST_LIMB(0x4bbcd0685b013),CNST_LIMB(0x60b28bb37de31)},870,4}, + {CNST_LIMB(0x7b02c02e67beb),{CNST_LIMB(0xa621b97c2ae6cdb),13,CNST_LIMB(0x2068f6d99eb3c),CNST_LIMB(0x4ba3bacf8ed2f),CNST_LIMB(0x79baf6516f06a),CNST_LIMB(0x34fac2ffdfb3b),CNST_LIMB(0x601bda55ddca3)},874,4}, + {CNST_LIMB(0x7d0b0166731df),{CNST_LIMB(0x60dcab2ebe68654),13,CNST_LIMB(0x5a87235f786e1),CNST_LIMB(0x498c71a4f2c04),CNST_LIMB(0x6c4cf93aac90f),CNST_LIMB(0x2fc43a717ef2e),CNST_LIMB(0x61100c40f26dc)},878,4}, + {CNST_LIMB(0x7f65827009e4b),{CNST_LIMB(0x13671d16472022c),13,CNST_LIMB(0x66a0a221f20de),CNST_LIMB(0x1863cc32757a5),CNST_LIMB(0x72205d2b707de),CNST_LIMB(0x41eb3856479f4),CNST_LIMB(0x62a869dadecf2)},882,4}, + {CNST_LIMB(0x826267aca5d6b),{CNST_LIMB(0xf6a307f100c87643),12,CNST_LIMB(0x18b32a6e55cb2),CNST_LIMB(0x800c79d089746),CNST_LIMB(0x4df069eb6014f),CNST_LIMB(0xa67afd1d0f6b),CNST_LIMB(0x39654bc96e516)},886,4}, + {CNST_LIMB(0x854fadbb02f0d),{CNST_LIMB(0xeb99f80c181c04d8),12,CNST_LIMB(0x530f8982a799b),CNST_LIMB(0x488a5468d8f30),CNST_LIMB(0xcb498b28c81),CNST_LIMB(0x1d791c8466f6a),CNST_LIMB(0x583d384518de9)},890,4}, + {CNST_LIMB(0x86f75f67e5373),{CNST_LIMB(0xe592b4846fa38885),12,CNST_LIMB(0x16d1a804d8305),CNST_LIMB(0x3a9f7db1defba),CNST_LIMB(0x53fa43529d63d),CNST_LIMB(0x380980122856a),CNST_LIMB(0x59320408536cb)},894,4}, + {CNST_LIMB(0x89110415e014b),{CNST_LIMB(0xde220b6a3ca63611),12,CNST_LIMB(0x1183ea4dd5cca),CNST_LIMB(0x6cd0a51299316),CNST_LIMB(0x2c53d4f8b0ee6),CNST_LIMB(0x39ef54aed56eb),CNST_LIMB(0x7f71b2a9bf0fd)},898,4}, + {CNST_LIMB(0x8bbeefef93d97),{CNST_LIMB(0xd4f7338df110e1c1),12,CNST_LIMB(0x3ee5d151be367),CNST_LIMB(0x2e6b9dfc4bbcb),CNST_LIMB(0x225349b2e386e),CNST_LIMB(0x492ce15456b18),CNST_LIMB(0x856a0d6e68759)},902,4}, + {CNST_LIMB(0x8fa29248f38e9),{CNST_LIMB(0xc84479a2d3ad73b2),12,CNST_LIMB(0x282c97bed2bdc),CNST_LIMB(0x86b44220fa8e0),CNST_LIMB(0x497c548d39ada),CNST_LIMB(0x6928a8433805d),CNST_LIMB(0x1d2f77b091c29)},906,4}, + {CNST_LIMB(0x9311da8eb3ea1),{CNST_LIMB(0xbd9c9989aacc578d),12,CNST_LIMB(0x73d0b00fcee87),CNST_LIMB(0x44acd3ec00c9b),CNST_LIMB(0x3b8ead35b82f4),CNST_LIMB(0x7a1ca1fa55a8c),CNST_LIMB(0x98634149273d)},910,4}, + {CNST_LIMB(0x96fc1b51999b5),{CNST_LIMB(0xb20e950936df3d71),12,CNST_LIMB(0x899afa996b260),CNST_LIMB(0x2d7d06dae3233),CNST_LIMB(0x143e323027e28),CNST_LIMB(0x8483b9a26498e),CNST_LIMB(0x689b7b1e2fc91)},914,4}, + {CNST_LIMB(0x99d2dc5aa820b),{CNST_LIMB(0xaa0bd71d4333c056),12,CNST_LIMB(0x71d5124399b20),CNST_LIMB(0x62e94421a897f),CNST_LIMB(0x892c96c6ff4dc),CNST_LIMB(0x54dc6420d0ec4),CNST_LIMB(0x43a10331ebf4f)},918,4}, + {CNST_LIMB(0x9c18c1a21f755),{CNST_LIMB(0xa3d7a1305040e509),12,CNST_LIMB(0x4a6f652c96ebf),CNST_LIMB(0x92a1dbc9a1bc4),CNST_LIMB(0x7856fe0adb2e7),CNST_LIMB(0x65020d02f02aa),CNST_LIMB(0x7983e2f6dcbd)},922,4}, + {CNST_LIMB(0xa019a0d84ce05),{CNST_LIMB(0x99580856e1c2e36b),12,CNST_LIMB(0x5060429959a17),CNST_LIMB(0x8af3dd6c8fedb),CNST_LIMB(0x8521b97cefc72),CNST_LIMB(0x7289dc3848291),CNST_LIMB(0x51cb410c11cef)},926,4}, + {CNST_LIMB(0xa3837104af50b),{CNST_LIMB(0x90cc816ca127f31c),12,CNST_LIMB(0x7fcd3ea8e707c),CNST_LIMB(0x1ea9bdca73534),CNST_LIMB(0x3d0d37ad79bcf),CNST_LIMB(0x78befa2ea5ef8),CNST_LIMB(0x8c7846571c14b)},930,4}, + {CNST_LIMB(0xa74ba276e925b),{CNST_LIMB(0x87bcf3ca6aa1f420),12,CNST_LIMB(0x876dcb0272647),CNST_LIMB(0x63761f150b253),CNST_LIMB(0xa347a550c386b),CNST_LIMB(0xb7438cfe5ad4),CNST_LIMB(0x7bca2b8c0aabf)},934,4}, + {CNST_LIMB(0xad0c05b3ae661),{CNST_LIMB(0x7ab7cf1782b58dcf),12,CNST_LIMB(0x54750c4f56635),CNST_LIMB(0x2eac67167559c),CNST_LIMB(0x563c222f2aff7),CNST_LIMB(0x7b738313b7ac1),CNST_LIMB(0x65d997bccd9d9)},938,4}, + {CNST_LIMB(0xb0da5211cc3e7),{CNST_LIMB(0x72916ab867f7595c),12,CNST_LIMB(0xfa941ccadf01),CNST_LIMB(0x8d756d36295ea),CNST_LIMB(0x4f9f479e132fd),CNST_LIMB(0x18526df562fde),CNST_LIMB(0x434f07e1d9d33)},942,4}, + {CNST_LIMB(0xb36ca8c3991af),{CNST_LIMB(0x6d41bd767e129ba0),12,CNST_LIMB(0x13836edce5114),CNST_LIMB(0xa52c71bc138ab),CNST_LIMB(0x339d5f264e899),CNST_LIMB(0x65473fc2cfa57),CNST_LIMB(0x4714fd9da5ac0)},946,4}, + {CNST_LIMB(0xb6694790c60df),{CNST_LIMB(0x6746add17a9a2fee),12,CNST_LIMB(0x4c2521610f0f4),CNST_LIMB(0x1ef55755cab96),CNST_LIMB(0x3bb413c494cbb),CNST_LIMB(0x59bedca68abba),CNST_LIMB(0x618c95ba5598b)},950,4}, + {CNST_LIMB(0xb89a345c48d7d),{CNST_LIMB(0x6302ff6c309d06ee),12,CNST_LIMB(0x2296406fcba90),CNST_LIMB(0x4d697f4e83909),CNST_LIMB(0xa16067eedb775),CNST_LIMB(0xa50f824607f2b),CNST_LIMB(0x3d3946b54c9f9)},954,4}, + {CNST_LIMB(0xbb02a8b8a132b),{CNST_LIMB(0x5e70bfded3b337fc),12,CNST_LIMB(0x8c29c2d62d33),CNST_LIMB(0x3f082e296ef8f),CNST_LIMB(0x49afe57a19b90),CNST_LIMB(0xb7bd5be58da15),CNST_LIMB(0x8de61bd7e627f)},958,4}, + {CNST_LIMB(0xbd6468bb171ff),{CNST_LIMB(0x5a0880d51b052fd7),12,CNST_LIMB(0x64a7322bed5a0),CNST_LIMB(0x3f94ed2b89267),CNST_LIMB(0x980b9bde44b2d),CNST_LIMB(0x4a6676c0e7d13),CNST_LIMB(0xb24baad1f0c40)},962,4}, + {CNST_LIMB(0xc17671b548641),{CNST_LIMB(0x52c0b00a813a011e),12,CNST_LIMB(0x85095e7597d4),CNST_LIMB(0x55524352a702c),CNST_LIMB(0x868164742fab5),CNST_LIMB(0x3b3bcfdffb2cf),CNST_LIMB(0xab11b067d542f)},966,4}, + {CNST_LIMB(0xc57f07d496e1b),{CNST_LIMB(0x4bd58ed22f4b2aac),12,CNST_LIMB(0x449a9c42f9a11),CNST_LIMB(0x2b9c2279a88de),CNST_LIMB(0xa905cf41733e1),CNST_LIMB(0x206b2bfa8b896),CNST_LIMB(0xb378d16c66efd)},970,4}, + {CNST_LIMB(0xc814b88200ac3),{CNST_LIMB(0x478c251716699c98),12,CNST_LIMB(0x97df5b023b898),CNST_LIMB(0x5507d796eedc1),CNST_LIMB(0xb4a34312d58e3),CNST_LIMB(0x4324fc6d4f6f2),CNST_LIMB(0x29d3a7f3d88da)},974,4}, + {CNST_LIMB(0xcb958ba8e9259),{CNST_LIMB(0x41e93d5390ce4a3c),12,CNST_LIMB(0x75906ffdbe592),CNST_LIMB(0x35d1e8b619b02),CNST_LIMB(0x5535c122a3ba7),CNST_LIMB(0xb2c9d287f29c8),CNST_LIMB(0x7f9a7f1adf9d9)},978,4}, + {CNST_LIMB(0xcfaa956d67517),{CNST_LIMB(0x3b9549c76b39f2a8),12,CNST_LIMB(0x44a2e5454ad61),CNST_LIMB(0xa8d0541bab05b),CNST_LIMB(0x801e8693083d4),CNST_LIMB(0xc17c6af57bddf),CNST_LIMB(0xc7b4d9a0870d9)},982,4}, + {CNST_LIMB(0xd56380a0e8273),{CNST_LIMB(0x331ecd3feca3d608),12,CNST_LIMB(0xc5686ff8a7efd),CNST_LIMB(0x61e35c54a4f3f),CNST_LIMB(0x4bf5dc73ede0f),CNST_LIMB(0x2bf7f029f09a5),CNST_LIMB(0x718dc3463c882)},986,4}, + {CNST_LIMB(0xd9c8b65d94f5b),{CNST_LIMB(0x2cec062e71d179c4),12,CNST_LIMB(0xa3aaac38dbec6),CNST_LIMB(0x78cabf09fa56c),CNST_LIMB(0xcaf0fccc6b30b),CNST_LIMB(0xce30344eb1fac),CNST_LIMB(0x4ba46e5575b11)},990,4}, + {CNST_LIMB(0xdc90a482debcb),{CNST_LIMB(0x2920b89d6fc02e7f),12,CNST_LIMB(0x9f0f9b3b403a),CNST_LIMB(0x619327b332542),CNST_LIMB(0xa75eae1f8ff9f),CNST_LIMB(0x62350a1cba491),CNST_LIMB(0x22ac2e8eb19f9)},994,4}, + {CNST_LIMB(0xe0ac9922e6235),{CNST_LIMB(0x23b187206556b5c4),12,CNST_LIMB(0x157440c67a3c9),CNST_LIMB(0x696b5be3cc464),CNST_LIMB(0x2ebcde890e790),CNST_LIMB(0xae767f93832de),CNST_LIMB(0xcb1eade2d80a8)},998,4} +#endif diff --git a/vere/ext/gmp/gen/x86_64-linux/config.h b/vere/ext/gmp/gen/x86_64-linux/config.h new file mode 100644 index 0000000..47840ff --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/config.h @@ -0,0 +1,668 @@ +/* config.h. Generated from config.in by configure. */ +/* config.in. Generated from configure.ac by autoheader. */ + +/* + +Copyright 1996-2020 Free Software Foundation, Inc. + +This file is part of the GNU MP Library. + +The GNU MP Library is free software; you can redistribute it and/or modify +it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at your + option) any later version. + +or + + * the GNU General Public License as published by the Free Software + Foundation; either version 2 of the License, or (at your option) any + later version. + +or both in parallel, as here. + +The GNU MP Library is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received copies of the GNU General Public License and the +GNU Lesser General Public License along with the GNU MP Library. If not, +see https://www.gnu.org/licenses/. +*/ + +/* Define if building universal (internal helper macro) */ +/* #undef AC_APPLE_UNIVERSAL_BUILD */ + +/* The gmp-mparam.h file (a string) the tune program should suggest updating. + */ +#define GMP_MPARAM_H_SUGGEST "./mpn/x86_64/k8/gmp-mparam.h" + +/* Define to 1 if you have the `alarm' function. */ +#define HAVE_ALARM 1 + +/* Define to 1 if alloca() works (via gmp-impl.h). */ +#define HAVE_ALLOCA 1 + +/* Define to 1 if you have and it should be used (not on Ultrix). + */ +#define HAVE_ALLOCA_H 1 + +/* Define to 1 if the compiler accepts gcc style __attribute__ ((const)) */ +#define HAVE_ATTRIBUTE_CONST 1 + +/* Define to 1 if the compiler accepts gcc style __attribute__ ((malloc)) */ +#define HAVE_ATTRIBUTE_MALLOC 1 + +/* Define to 1 if the compiler accepts gcc style __attribute__ ((mode (XX))) + */ +#define HAVE_ATTRIBUTE_MODE 1 + +/* Define to 1 if the compiler accepts gcc style __attribute__ ((noreturn)) */ +#define HAVE_ATTRIBUTE_NORETURN 1 + +/* Define to 1 if you have the `attr_get' function. */ +/* #undef HAVE_ATTR_GET */ + +/* Define to 1 if tests/libtests has calling conventions checking for the CPU + */ +#define HAVE_CALLING_CONVENTIONS 1 + +/* Define to 1 if you have the `clock' function. */ +#define HAVE_CLOCK 1 + +/* Define to 1 if you have the `clock_gettime' function */ +#define HAVE_CLOCK_GETTIME 1 + +/* Define to 1 if you have the `cputime' function. */ +/* #undef HAVE_CPUTIME */ + +/* Define to 1 if you have the declaration of `fgetc', and to 0 if you don't. + */ +#define HAVE_DECL_FGETC 1 + +/* Define to 1 if you have the declaration of `fscanf', and to 0 if you don't. + */ +#define HAVE_DECL_FSCANF 1 + +/* Define to 1 if you have the declaration of `optarg', and to 0 if you don't. + */ +#define HAVE_DECL_OPTARG 1 + +/* Define to 1 if you have the declaration of `sys_errlist', and to 0 if you + don't. */ +#define HAVE_DECL_SYS_ERRLIST 0 + +/* Define to 1 if you have the declaration of `sys_nerr', and to 0 if you + don't. */ +#define HAVE_DECL_SYS_NERR 0 + +/* Define to 1 if you have the declaration of `ungetc', and to 0 if you don't. + */ +#define HAVE_DECL_UNGETC 1 + +/* Define to 1 if you have the declaration of `vfprintf', and to 0 if you + don't. */ +#define HAVE_DECL_VFPRINTF 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define one of the following to 1 for the format of a `double'. + If your format is not among these choices, or you don't know what it is, + then leave all undefined. + IEEE_LITTLE_SWAPPED means little endian, but with the two 4-byte halves + swapped, as used by ARM CPUs in little endian mode. */ +/* #undef HAVE_DOUBLE_IEEE_BIG_ENDIAN */ +#define HAVE_DOUBLE_IEEE_LITTLE_ENDIAN 1 +/* #undef HAVE_DOUBLE_IEEE_LITTLE_SWAPPED */ +/* #undef HAVE_DOUBLE_VAX_D */ +/* #undef HAVE_DOUBLE_VAX_G */ +/* #undef HAVE_DOUBLE_CRAY_CFP */ + +/* Define to 1 if you have the header file. */ +#define HAVE_FCNTL_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_FLOAT_H 1 + +/* Define to 1 if you have the `getpagesize' function. */ +#define HAVE_GETPAGESIZE 1 + +/* Define to 1 if you have the `getrusage' function. */ +#define HAVE_GETRUSAGE 1 + +/* Define to 1 if you have the `getsysinfo' function. */ +/* #undef HAVE_GETSYSINFO */ + +/* Define to 1 if you have the `gettimeofday' function. */ +#define HAVE_GETTIMEOFDAY 1 + +/* Define to 1 if the compiler accepts gcc style __attribute__ ((visibility)) + and __attribute__ ((alias)) */ +#define HAVE_HIDDEN_ALIAS 1 + +/* Define one of these to 1 for the host CPU family. + If your CPU is not in any of these families, leave all undefined. + For an AMD64 chip, define "x86" in ABI=32, but not in ABI=64. */ +/* #undef HAVE_HOST_CPU_FAMILY_alpha */ +/* #undef HAVE_HOST_CPU_FAMILY_m68k */ +/* #undef HAVE_HOST_CPU_FAMILY_power */ +/* #undef HAVE_HOST_CPU_FAMILY_powerpc */ +/* #undef HAVE_HOST_CPU_FAMILY_x86 */ +#define HAVE_HOST_CPU_FAMILY_x86_64 1 + +/* Define one of the following to 1 for the host CPU, as per the output of + ./config.guess. If your CPU is not listed here, leave all undefined. */ +/* #undef HAVE_HOST_CPU_alphaev67 */ +/* #undef HAVE_HOST_CPU_alphaev68 */ +/* #undef HAVE_HOST_CPU_alphaev7 */ +/* #undef HAVE_HOST_CPU_m68020 */ +/* #undef HAVE_HOST_CPU_m68030 */ +/* #undef HAVE_HOST_CPU_m68040 */ +/* #undef HAVE_HOST_CPU_m68060 */ +/* #undef HAVE_HOST_CPU_m68360 */ +/* #undef HAVE_HOST_CPU_powerpc604 */ +/* #undef HAVE_HOST_CPU_powerpc604e */ +/* #undef HAVE_HOST_CPU_powerpc750 */ +/* #undef HAVE_HOST_CPU_powerpc7400 */ +/* #undef HAVE_HOST_CPU_supersparc */ +/* #undef HAVE_HOST_CPU_i386 */ +/* #undef HAVE_HOST_CPU_i586 */ +/* #undef HAVE_HOST_CPU_i686 */ +/* #undef HAVE_HOST_CPU_pentium */ +/* #undef HAVE_HOST_CPU_pentiummmx */ +/* #undef HAVE_HOST_CPU_pentiumpro */ +/* #undef HAVE_HOST_CPU_pentium2 */ +/* #undef HAVE_HOST_CPU_pentium3 */ +/* #undef HAVE_HOST_CPU_pentium4 */ +/* #undef HAVE_HOST_CPU_core2 */ +/* #undef HAVE_HOST_CPU_nehalem */ +/* #undef HAVE_HOST_CPU_westmere */ +/* #undef HAVE_HOST_CPU_sandybridge */ +/* #undef HAVE_HOST_CPU_ivybridge */ +/* #undef HAVE_HOST_CPU_haswell */ +/* #undef HAVE_HOST_CPU_broadwell */ +/* #undef HAVE_HOST_CPU_skylake */ +/* #undef HAVE_HOST_CPU_silvermont */ +/* #undef HAVE_HOST_CPU_goldmont */ +/* #undef HAVE_HOST_CPU_k8 */ +/* #undef HAVE_HOST_CPU_k10 */ +/* #undef HAVE_HOST_CPU_bulldozer */ +/* #undef HAVE_HOST_CPU_piledriver */ +/* #undef HAVE_HOST_CPU_steamroller */ +/* #undef HAVE_HOST_CPU_excavator */ +/* #undef HAVE_HOST_CPU_zen */ +/* #undef HAVE_HOST_CPU_bobcat */ +/* #undef HAVE_HOST_CPU_jaguar */ +/* #undef HAVE_HOST_CPU_s390_z900 */ +/* #undef HAVE_HOST_CPU_s390_z990 */ +/* #undef HAVE_HOST_CPU_s390_z9 */ +/* #undef HAVE_HOST_CPU_s390_z10 */ +/* #undef HAVE_HOST_CPU_s390_z196 */ + +/* Define to 1 iff we have a s390 with 64-bit registers. */ +/* #undef HAVE_HOST_CPU_s390_zarch */ + +/* Define to 1 if the system has the type `intmax_t'. */ +#define HAVE_INTMAX_T 1 + +/* Define to 1 if the system has the type `intptr_t'. */ +#define HAVE_INTPTR_T 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_INVENT_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_LANGINFO_H 1 + +/* Define one of these to 1 for the endianness of `mp_limb_t'. + If the endianness is not a simple big or little, or you don't know what + it is, then leave both undefined. */ +/* #undef HAVE_LIMB_BIG_ENDIAN */ +#define HAVE_LIMB_LITTLE_ENDIAN 1 + +/* Define to 1 if you have the `localeconv' function. */ +#define HAVE_LOCALECONV 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LOCALE_H 1 + +/* Define to 1 if the system has the type `long double'. */ +#define HAVE_LONG_DOUBLE 1 + +/* Define to 1 if the system has the type `long long'. */ +#define HAVE_LONG_LONG 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_MACHINE_HAL_SYSINFO_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have the `memset' function. */ +#define HAVE_MEMSET 1 + +/* Define to 1 if you have the `mmap' function. */ +#define HAVE_MMAP 1 + +/* Define to 1 if you have the `mprotect' function. */ +#define HAVE_MPROTECT 1 + +/* Define to 1 each of the following for which a native (ie. CPU specific) + implementation of the corresponding routine exists. */ +#define HAVE_NATIVE_mpn_add_n 1 +/* #undef HAVE_NATIVE_mpn_add_n_sub_n */ +#define HAVE_NATIVE_mpn_add_nc 1 +#define HAVE_NATIVE_mpn_addaddmul_1msb0 1 +#define HAVE_NATIVE_mpn_addlsh1_n 1 +#define HAVE_NATIVE_mpn_addlsh2_n 1 +#define HAVE_NATIVE_mpn_addlsh_n 1 +/* #undef HAVE_NATIVE_mpn_addlsh1_nc */ +/* #undef HAVE_NATIVE_mpn_addlsh2_nc */ +/* #undef HAVE_NATIVE_mpn_addlsh_nc */ +/* #undef HAVE_NATIVE_mpn_addlsh1_n_ip1 */ +/* #undef HAVE_NATIVE_mpn_addlsh2_n_ip1 */ +/* #undef HAVE_NATIVE_mpn_addlsh_n_ip1 */ +/* #undef HAVE_NATIVE_mpn_addlsh1_nc_ip1 */ +/* #undef HAVE_NATIVE_mpn_addlsh2_nc_ip1 */ +/* #undef HAVE_NATIVE_mpn_addlsh_nc_ip1 */ +/* #undef HAVE_NATIVE_mpn_addlsh1_n_ip2 */ +/* #undef HAVE_NATIVE_mpn_addlsh2_n_ip2 */ +/* #undef HAVE_NATIVE_mpn_addlsh_n_ip2 */ +/* #undef HAVE_NATIVE_mpn_addlsh1_nc_ip2 */ +/* #undef HAVE_NATIVE_mpn_addlsh2_nc_ip2 */ +/* #undef HAVE_NATIVE_mpn_addlsh_nc_ip2 */ +/* #undef HAVE_NATIVE_mpn_addmul_1c */ +#define HAVE_NATIVE_mpn_addmul_2 1 +/* #undef HAVE_NATIVE_mpn_addmul_3 */ +/* #undef HAVE_NATIVE_mpn_addmul_4 */ +/* #undef HAVE_NATIVE_mpn_addmul_5 */ +/* #undef HAVE_NATIVE_mpn_addmul_6 */ +/* #undef HAVE_NATIVE_mpn_addmul_7 */ +/* #undef HAVE_NATIVE_mpn_addmul_8 */ +/* #undef HAVE_NATIVE_mpn_addmul_2s */ +#define HAVE_NATIVE_mpn_and_n 1 +#define HAVE_NATIVE_mpn_andn_n 1 +#define HAVE_NATIVE_mpn_bdiv_dbm1c 1 +#define HAVE_NATIVE_mpn_bdiv_q_1 1 +#define HAVE_NATIVE_mpn_pi1_bdiv_q_1 1 +#define HAVE_NATIVE_mpn_cnd_add_n 1 +#define HAVE_NATIVE_mpn_cnd_sub_n 1 +#define HAVE_NATIVE_mpn_com 1 +#define HAVE_NATIVE_mpn_copyd 1 +#define HAVE_NATIVE_mpn_copyi 1 +#define HAVE_NATIVE_mpn_div_qr_1n_pi1 1 +/* #undef HAVE_NATIVE_mpn_div_qr_2 */ +#define HAVE_NATIVE_mpn_divexact_1 1 +/* #undef HAVE_NATIVE_mpn_divexact_by3c */ +#define HAVE_NATIVE_mpn_divrem_1 1 +/* #undef HAVE_NATIVE_mpn_divrem_1c */ +#define HAVE_NATIVE_mpn_divrem_2 1 +/* #undef HAVE_NATIVE_mpn_gcd_1 */ +#define HAVE_NATIVE_mpn_gcd_11 1 +#define HAVE_NATIVE_mpn_gcd_22 1 +#define HAVE_NATIVE_mpn_hamdist 1 +#define HAVE_NATIVE_mpn_invert_limb 1 +#define HAVE_NATIVE_mpn_ior_n 1 +#define HAVE_NATIVE_mpn_iorn_n 1 +#define HAVE_NATIVE_mpn_lshift 1 +#define HAVE_NATIVE_mpn_lshiftc 1 +/* #undef HAVE_NATIVE_mpn_lshsub_n */ +/* #undef HAVE_NATIVE_mpn_mod_1 */ +#define HAVE_NATIVE_mpn_mod_1_1p 1 +/* #undef HAVE_NATIVE_mpn_mod_1c */ +#define HAVE_NATIVE_mpn_mod_1s_2p 1 +#define HAVE_NATIVE_mpn_mod_1s_4p 1 +#define HAVE_NATIVE_mpn_mod_34lsub1 1 +#define HAVE_NATIVE_mpn_modexact_1_odd 1 +#define HAVE_NATIVE_mpn_modexact_1c_odd 1 +#define HAVE_NATIVE_mpn_mul_1 1 +#define HAVE_NATIVE_mpn_mul_1c 1 +#define HAVE_NATIVE_mpn_mul_2 1 +/* #undef HAVE_NATIVE_mpn_mul_3 */ +/* #undef HAVE_NATIVE_mpn_mul_4 */ +/* #undef HAVE_NATIVE_mpn_mul_5 */ +/* #undef HAVE_NATIVE_mpn_mul_6 */ +#define HAVE_NATIVE_mpn_mul_basecase 1 +#define HAVE_NATIVE_mpn_mullo_basecase 1 +#define HAVE_NATIVE_mpn_nand_n 1 +#define HAVE_NATIVE_mpn_nior_n 1 +#define HAVE_NATIVE_mpn_popcount 1 +#define HAVE_NATIVE_mpn_preinv_divrem_1 1 +/* #undef HAVE_NATIVE_mpn_preinv_mod_1 */ +#define HAVE_NATIVE_mpn_redc_1 1 +/* #undef HAVE_NATIVE_mpn_redc_2 */ +#define HAVE_NATIVE_mpn_rsblsh1_n 1 +#define HAVE_NATIVE_mpn_rsblsh2_n 1 +#define HAVE_NATIVE_mpn_rsblsh_n 1 +/* #undef HAVE_NATIVE_mpn_rsblsh1_nc */ +/* #undef HAVE_NATIVE_mpn_rsblsh2_nc */ +/* #undef HAVE_NATIVE_mpn_rsblsh_nc */ +#define HAVE_NATIVE_mpn_rsh1add_n 1 +#define HAVE_NATIVE_mpn_rsh1add_nc 1 +#define HAVE_NATIVE_mpn_rsh1sub_n 1 +#define HAVE_NATIVE_mpn_rsh1sub_nc 1 +#define HAVE_NATIVE_mpn_rshift 1 +/* #undef HAVE_NATIVE_mpn_sbpi1_bdiv_r */ +#define HAVE_NATIVE_mpn_sqr_basecase 1 +/* #undef HAVE_NATIVE_mpn_sqr_diagonal */ +#define HAVE_NATIVE_mpn_sqr_diag_addlsh1 1 +#define HAVE_NATIVE_mpn_sub_n 1 +#define HAVE_NATIVE_mpn_sub_nc 1 +#define HAVE_NATIVE_mpn_sublsh1_n 1 +/* #undef HAVE_NATIVE_mpn_sublsh2_n */ +/* #undef HAVE_NATIVE_mpn_sublsh_n */ +/* #undef HAVE_NATIVE_mpn_sublsh1_nc */ +/* #undef HAVE_NATIVE_mpn_sublsh2_nc */ +/* #undef HAVE_NATIVE_mpn_sublsh_nc */ +/* #undef HAVE_NATIVE_mpn_sublsh1_n_ip1 */ +/* #undef HAVE_NATIVE_mpn_sublsh2_n_ip1 */ +/* #undef HAVE_NATIVE_mpn_sublsh_n_ip1 */ +/* #undef HAVE_NATIVE_mpn_sublsh1_nc_ip1 */ +/* #undef HAVE_NATIVE_mpn_sublsh2_nc_ip1 */ +/* #undef HAVE_NATIVE_mpn_sublsh_nc_ip1 */ +/* #undef HAVE_NATIVE_mpn_submul_1c */ +/* #undef HAVE_NATIVE_mpn_tabselect */ +/* #undef HAVE_NATIVE_mpn_udiv_qrnnd */ +/* #undef HAVE_NATIVE_mpn_udiv_qrnnd_r */ +/* #undef HAVE_NATIVE_mpn_umul_ppmm */ +/* #undef HAVE_NATIVE_mpn_umul_ppmm_r */ +#define HAVE_NATIVE_mpn_xor_n 1 +#define HAVE_NATIVE_mpn_xnor_n 1 + +/* Define to 1 if you have the `nl_langinfo' function. */ +#define HAVE_NL_LANGINFO 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_NL_TYPES_H 1 + +/* Define to 1 if you have the `obstack_vprintf' function. */ +/* #define HAVE_OBSTACK_VPRINTF 1 */ + +/* Define to 1 if you have the `popen' function. */ +#define HAVE_POPEN 1 + +/* Define to 1 if you have the `processor_info' function. */ +/* #undef HAVE_PROCESSOR_INFO */ + +/* Define to 1 if `struct pst_processor' exists and contains + `psp_iticksperclktick'. */ +/* #undef HAVE_PSP_ITICKSPERCLKTICK */ + +/* Define to 1 if you have the `pstat_getprocessor' function. */ +/* #undef HAVE_PSTAT_GETPROCESSOR */ + +/* Define to 1 if the system has the type `ptrdiff_t'. */ +#define HAVE_PTRDIFF_T 1 + +/* Define to 1 if the system has the type `quad_t'. */ +#define HAVE_QUAD_T 1 + +/* Define to 1 if you have the `raise' function. */ +#define HAVE_RAISE 1 + +/* Define to 1 if you have the `read_real_time' function. */ +/* #undef HAVE_READ_REAL_TIME */ + +/* Define to 1 if you have the `sigaction' function. */ +#define HAVE_SIGACTION 1 + +/* Define to 1 if you have the `sigaltstack' function. */ +#define HAVE_SIGALTSTACK 1 + +/* Define to 1 if you have the `sigstack' function. */ +#define HAVE_SIGSTACK 1 + +/* Tune directory speed_cyclecounter, undef=none, 1=32bits, 2=64bits) */ +#define HAVE_SPEED_CYCLECOUNTER 2 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SSTREAM */ + +/* Define to 1 if the system has the type `stack_t'. */ +#define HAVE_STACK_T 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if the system has the type `std::locale'. */ +/* #undef HAVE_STD__LOCALE */ + +/* Define to 1 if you have the `strchr' function. */ +#define HAVE_STRCHR 1 + +/* Define to 1 if you have the `strerror' function. */ +#define HAVE_STRERROR 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `strnlen' function. */ +#define HAVE_STRNLEN 1 + +/* Define to 1 if you have the `strtol' function. */ +#define HAVE_STRTOL 1 + +/* Define to 1 if you have the `strtoul' function. */ +#define HAVE_STRTOUL 1 + +/* Define to 1 if you have the `sysconf' function. */ +#define HAVE_SYSCONF 1 + +/* Define to 1 if you have the `sysctl' function. */ +/* #undef HAVE_SYSCTL */ + +/* Define to 1 if you have the `sysctlbyname' function. */ +/* #undef HAVE_SYSCTLBYNAME */ + +/* Define to 1 if you have the `syssgi' function. */ +/* #undef HAVE_SYSSGI */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_ATTRIBUTES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_IOGRAPH_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_MMAN_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_PARAM_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_PROCESSOR_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_PSTAT_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_RESOURCE_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SYSCTL_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SYSINFO_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SYSSGI_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SYSTEMCFG_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIMES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the `times' function. */ +#define HAVE_TIMES 1 + +/* Define to 1 if the system has the type `uint_least32_t'. */ +#define HAVE_UINT_LEAST32_T 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to 1 if you have the `vsnprintf' function and it works properly. */ +#define HAVE_VSNPRINTF 1 + +/* Define to 1 for Windos/64 */ +/* #undef HOST_DOS64 */ + +/* Assembler local label prefix */ +#define LSYM_PREFIX ".L" + +/* Define to the sub-directory where libtool stores uninstalled libraries. */ +#define LT_OBJDIR ".libs/" + +/* Define to 1 to disable the use of inline assembly */ +/* #undef NO_ASM */ + +/* Name of package */ +#define PACKAGE "gmp" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "gmp-bugs@gmplib.org, see https://gmplib.org/manual/Reporting-Bugs.html" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "GNU MP" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "GNU MP 6.2.1" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "gmp" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "http://www.gnu.org/software/gmp/" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "6.2.1" + +/* Define as the return type of signal handlers (`int' or `void'). */ +#define RETSIGTYPE void + +/* The size of `mp_limb_t', as computed by sizeof. */ +#define SIZEOF_MP_LIMB_T 8 + +/* The size of `unsigned', as computed by sizeof. */ +#define SIZEOF_UNSIGNED 4 + +/* The size of `unsigned long', as computed by sizeof. */ +#define SIZEOF_UNSIGNED_LONG 8 + +/* The size of `unsigned short', as computed by sizeof. */ +#define SIZEOF_UNSIGNED_SHORT 2 + +/* The size of `void *', as computed by sizeof. */ +#define SIZEOF_VOID_P 8 + +/* Define to 1 if sscanf requires writable inputs */ +/* #undef SSCANF_WRITABLE_INPUT */ + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define to 1 if you can safely include both and . */ +#define TIME_WITH_SYS_TIME 1 + +/* Maximum size the tune program can test for SQR_TOOM2_THRESHOLD */ +/* #undef TUNE_SQR_TOOM2_MAX */ + +/* Version number of package */ +#define VERSION "6.2.1" + +/* Define to 1 to enable ASSERT checking, per --enable-assert */ +/* #undef WANT_ASSERT */ + +/* Define to 1 to enable GMP_CPU_TYPE faking cpuid, per --enable-fake-cpuid */ +/* #undef WANT_FAKE_CPUID */ + +/* Define to 1 when building a fat binary. */ +/* #undef WANT_FAT_BINARY */ + +/* Define to 1 to enable FFTs for multiplication, per --enable-fft */ +#define WANT_FFT 1 + +/* Define to 1 to enable old mpn_mul_fft_full for multiplication, per + --enable-old-fft-full */ +/* #undef WANT_OLD_FFT_FULL */ + +/* Define to 1 if --enable-profiling=gprof */ +/* #undef WANT_PROFILING_GPROF */ + +/* Define to 1 if --enable-profiling=instrument */ +/* #undef WANT_PROFILING_INSTRUMENT */ + +/* Define to 1 if --enable-profiling=prof */ +/* #undef WANT_PROFILING_PROF */ + +/* Define one of these to 1 for the desired temporary memory allocation + method, per --enable-alloca. */ +#define WANT_TMP_ALLOCA 1 +/* #undef WANT_TMP_REENTRANT */ +/* #undef WANT_TMP_NOTREENTRANT */ +/* #undef WANT_TMP_DEBUG */ + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +/* # undef WORDS_BIGENDIAN */ +# endif +#endif + +/* Define to 1 if the assembler understands the mulx instruction */ +/* #undef X86_ASM_MULX */ + +/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a + `char[]'. */ +/* #undef YYTEXT_POINTER */ + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +/* #undef inline */ +#endif + +/* Define to the equivalent of the C99 'restrict' keyword, or to + nothing if this is not supported. Do not define if restrict is + supported directly. */ +#define restrict __restrict +/* Work around a bug in Sun C++: it does not support _Restrict or + __restrict__, even though the corresponding Sun C compiler ends up with + "#define restrict _Restrict" or "#define restrict __restrict__" in the + previous line. Perhaps some future version of Sun C++ will work with + restrict; if so, hopefully it defines __RESTRICT like Sun C does. */ +#if defined __SUNPRO_CC && !defined __RESTRICT +# define _Restrict +# define __restrict__ +#endif + +/* Define to empty if the keyword `volatile' does not work. Warning: valid + code using `volatile' can become incorrect without. Disable with care. */ +/* #undef volatile */ diff --git a/vere/ext/gmp/gen/x86_64-linux/fac_table.h b/vere/ext/gmp/gen/x86_64-linux/fac_table.h new file mode 100644 index 0000000..6708348 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/fac_table.h @@ -0,0 +1,49 @@ +/* This file is automatically generated by gen-fac.c */ + +#if GMP_NUMB_BITS != 64 +Error , error this data is for 64 GMP_NUMB_BITS only +#endif +/* This table is 0!,1!,2!,3!,...,n! where n! has <= GMP_NUMB_BITS bits */ +#define ONE_LIMB_FACTORIAL_TABLE CNST_LIMB(0x1),CNST_LIMB(0x1),CNST_LIMB(0x2),CNST_LIMB(0x6),CNST_LIMB(0x18),CNST_LIMB(0x78),CNST_LIMB(0x2d0),CNST_LIMB(0x13b0),CNST_LIMB(0x9d80),CNST_LIMB(0x58980),CNST_LIMB(0x375f00),CNST_LIMB(0x2611500),CNST_LIMB(0x1c8cfc00),CNST_LIMB(0x17328cc00),CNST_LIMB(0x144c3b2800),CNST_LIMB(0x13077775800),CNST_LIMB(0x130777758000),CNST_LIMB(0x1437eeecd8000),CNST_LIMB(0x16beecca730000),CNST_LIMB(0x1b02b9306890000),CNST_LIMB(0x21c3677c82b40000) + +/* This table is 0!,1!,2!/2,3!/2,...,n!/2^sn where n!/2^sn is an */ +/* odd integer for each n, and n!/2^sn has <= GMP_NUMB_BITS bits */ +#define ONE_LIMB_ODD_FACTORIAL_TABLE CNST_LIMB(0x1),CNST_LIMB(0x1),CNST_LIMB(0x1),CNST_LIMB(0x3),CNST_LIMB(0x3),CNST_LIMB(0xf),CNST_LIMB(0x2d),CNST_LIMB(0x13b),CNST_LIMB(0x13b),CNST_LIMB(0xb13),CNST_LIMB(0x375f),CNST_LIMB(0x26115),CNST_LIMB(0x7233f),CNST_LIMB(0x5cca33),CNST_LIMB(0x2898765),CNST_LIMB(0x260eeeeb),CNST_LIMB(0x260eeeeb),CNST_LIMB(0x286fddd9b),CNST_LIMB(0x16beecca73),CNST_LIMB(0x1b02b930689),CNST_LIMB(0x870d9df20ad),CNST_LIMB(0xb141df4dae31),CNST_LIMB(0x79dd498567c1b),CNST_LIMB(0xaf2e19afc5266d),CNST_LIMB(0x20d8a4d0f4f7347),CNST_LIMB(0x335281867ec241ef) +#define ODD_FACTORIAL_TABLE_MAX CNST_LIMB(0x335281867ec241ef) +#define ODD_FACTORIAL_TABLE_LIMIT (25) + +/* Previous table, continued, values modulo 2^GMP_NUMB_BITS */ +#define ONE_LIMB_ODD_FACTORIAL_EXTTABLE CNST_LIMB(0x9b3093d46fdd5923),CNST_LIMB(0x5e1f9767cc5866b1),CNST_LIMB(0x92dd23d6966aced7),CNST_LIMB(0xa30d0f4f0a196e5b),CNST_LIMB(0x8dc3e5a1977d7755),CNST_LIMB(0x2ab8ce915831734b),CNST_LIMB(0x2ab8ce915831734b),CNST_LIMB(0x81d2a0bc5e5fdcab),CNST_LIMB(0x9efcac82445da75b),CNST_LIMB(0xbc8b95cf58cde171),CNST_LIMB(0xa0e8444a1f3cecf9),CNST_LIMB(0x4191deb683ce3ffd),CNST_LIMB(0xddd3878bc84ebfc7),CNST_LIMB(0xcb39a64b83ff3751),CNST_LIMB(0xf8203f7993fc1495),CNST_LIMB(0xbd2a2a78b35f4bdd),CNST_LIMB(0x84757be6b6d13921),CNST_LIMB(0x3fbbcfc0b524988b),CNST_LIMB(0xbd11ed47c8928df9),CNST_LIMB(0x3c26b59e41c2f4c5),CNST_LIMB(0x677a5137e883fdb3),CNST_LIMB(0xff74e943b03b93dd),CNST_LIMB(0xfe5ebbcb10b2bb97),CNST_LIMB(0xb021f1de3235e7e7),CNST_LIMB(0x33509eb2e743a58f),CNST_LIMB(0x390f9da41279fb7d),CNST_LIMB(0xe5cb0154f031c559),CNST_LIMB(0x93074695ba4ddb6d),CNST_LIMB(0x81c471caa636247f),CNST_LIMB(0xe1347289b5a1d749),CNST_LIMB(0x286f21c3f76ce2ff),CNST_LIMB(0xbe84a2173e8ac7),CNST_LIMB(0x1595065ca215b88b),CNST_LIMB(0xf95877595b018809),CNST_LIMB(0x9c2efe3c5516f887),CNST_LIMB(0x373294604679382b),CNST_LIMB(0xaf1ff7a888adcd35),CNST_LIMB(0x18ddf279a2c5800b),CNST_LIMB(0x18ddf279a2c5800b),CNST_LIMB(0x505a90e2542582cb),CNST_LIMB(0x5bacad2cd8d5dc2b),CNST_LIMB(0xfe3152bcbff89f41) +#define ODD_FACTORIAL_EXTTABLE_LIMIT (67) + +/* This table is 1!!,3!!,...,(2n+1)!! where (2n+1)!! has <= GMP_NUMB_BITS bits */ +#define ONE_LIMB_ODD_DOUBLEFACTORIAL_TABLE CNST_LIMB(0x1),CNST_LIMB(0x3),CNST_LIMB(0xf),CNST_LIMB(0x69),CNST_LIMB(0x3b1),CNST_LIMB(0x289b),CNST_LIMB(0x20fdf),CNST_LIMB(0x1eee11),CNST_LIMB(0x20dcf21),CNST_LIMB(0x27065f73),CNST_LIMB(0x33385d46f),CNST_LIMB(0x49a10615f9),CNST_LIMB(0x730b9982551),CNST_LIMB(0xc223930bef8b),CNST_LIMB(0x15fe07a85a22bf),CNST_LIMB(0x2a9c2ed62ea3521),CNST_LIMB(0x57e22099c030d941) +#define ODD_DOUBLEFACTORIAL_TABLE_MAX CNST_LIMB(0x57e22099c030d941) +#define ODD_DOUBLEFACTORIAL_TABLE_LIMIT (33) + +/* This table x_1, x_2,... contains values s.t. x_n^n has <= GMP_NUMB_BITS bits */ +#define NTH_ROOT_NUMB_MASK_TABLE (GMP_NUMB_MASK),CNST_LIMB(0xffffffff),CNST_LIMB(0x285145),CNST_LIMB(0xffff),CNST_LIMB(0x1bdb),CNST_LIMB(0x659),CNST_LIMB(0x235),CNST_LIMB(0xff) + +/* This table contains inverses of odd factorials, modulo 2^GMP_NUMB_BITS */ + +/* It begins with (2!/2)^-1=1 */ +#define ONE_LIMB_ODD_FACTORIAL_INVERSES_TABLE CNST_LIMB(0x1),CNST_LIMB(0xaaaaaaaaaaaaaaab),CNST_LIMB(0xaaaaaaaaaaaaaaab),CNST_LIMB(0xeeeeeeeeeeeeeeef),CNST_LIMB(0x4fa4fa4fa4fa4fa5),CNST_LIMB(0x2ff2ff2ff2ff2ff3),CNST_LIMB(0x2ff2ff2ff2ff2ff3),CNST_LIMB(0x938cc70553e3771b),CNST_LIMB(0xb71c27cddd93e49f),CNST_LIMB(0xb38e3229fcdee63d),CNST_LIMB(0xe684bb63544a4cbf),CNST_LIMB(0xc2f684917ca340fb),CNST_LIMB(0xf747c9cba417526d),CNST_LIMB(0xbb26eb51d7bd49c3),CNST_LIMB(0xbb26eb51d7bd49c3),CNST_LIMB(0xb0a7efb985294093),CNST_LIMB(0xbe4b8c69f259eabb),CNST_LIMB(0x6854d17ed6dc4fb9),CNST_LIMB(0xe1aa904c915f4325),CNST_LIMB(0x3b8206df131cead1),CNST_LIMB(0x79c6009fea76fe13),CNST_LIMB(0xd8c5d381633cd365),CNST_LIMB(0x4841f12b21144677),CNST_LIMB(0x4a91ff68200b0d0f),CNST_LIMB(0x8f9513a58c4f9e8b),CNST_LIMB(0x2b3e690621a42251),CNST_LIMB(0x4f520f00e03c04e7),CNST_LIMB(0x2edf84ee600211d3),CNST_LIMB(0xadcaa2764aaacdfd),CNST_LIMB(0x161f4f9033f4fe63),CNST_LIMB(0x161f4f9033f4fe63),CNST_LIMB(0xbada2932ea4d3e03),CNST_LIMB(0xcec189f3efaa30d3),CNST_LIMB(0xf7475bb68330bf91),CNST_LIMB(0x37eb7bf7d5b01549),CNST_LIMB(0x46b35660a4e91555),CNST_LIMB(0xa567c12d81f151f7),CNST_LIMB(0x4c724007bb2071b1),CNST_LIMB(0xf4a0cce58a016bd),CNST_LIMB(0xfa21068e66106475),CNST_LIMB(0x244ab72b5a318ae1),CNST_LIMB(0x366ce67e080d0f23),CNST_LIMB(0xd666fdae5dd2a449),CNST_LIMB(0xd740ddd0acc06a0d),CNST_LIMB(0xb050bbbb28e6f97b),CNST_LIMB(0x70b003fe890a5c75),CNST_LIMB(0xd03aabff83037427),CNST_LIMB(0x13ec4ca72c783bd7),CNST_LIMB(0x90282c06afdbd96f),CNST_LIMB(0x4414ddb9db4a95d5),CNST_LIMB(0xa2c68735ae6832e9),CNST_LIMB(0xbf72d71455676665),CNST_LIMB(0xa8469fab6b759b7f),CNST_LIMB(0xc1e55b56e606caf9),CNST_LIMB(0x40455630fc4a1cff),CNST_LIMB(0x120a7b0046d16f7),CNST_LIMB(0xa7c3553b08faef23),CNST_LIMB(0x9f0bfd1b08d48639),CNST_LIMB(0xa433ffce9a304d37),CNST_LIMB(0xa22ad1d53915c683),CNST_LIMB(0xcb6cbc723ba5dd1d),CNST_LIMB(0x547fb1b8ab9d0ba3),CNST_LIMB(0x547fb1b8ab9d0ba3),CNST_LIMB(0x8f15a826498852e3) + +/* This table contains 2n-popc(2n) for small n */ + +/* It begins with 2-1=1 (n=1) */ +#define TABLE_2N_MINUS_POPC_2N 1,3,4,7,8,10,11,15,16,18,19,22,23,25,26,31,32,34,35,38,39,41,42,46,47,49,50,53,54,56,57,63,64,66,67,70,71,73,74,78 +#define TABLE_LIMIT_2N_MINUS_POPC_2N 81 +#define ODD_CENTRAL_BINOMIAL_OFFSET (13) + +/* This table contains binomial(2k,k)/2^t */ + +/* It begins with ODD_CENTRAL_BINOMIAL_TABLE_MIN */ +#define ONE_LIMB_ODD_CENTRAL_BINOMIAL_TABLE CNST_LIMB(0x13d66b),CNST_LIMB(0x4c842f),CNST_LIMB(0x93ee7d),CNST_LIMB(0x11e9e123),CNST_LIMB(0x22c60053),CNST_LIMB(0x873ae4d1),CNST_LIMB(0x10757bd97),CNST_LIMB(0x80612c6cd),CNST_LIMB(0xfaa556bc1),CNST_LIMB(0x3d3cc24821),CNST_LIMB(0x77cfeb6bbb),CNST_LIMB(0x7550ebd97c7),CNST_LIMB(0xe5f08695caf),CNST_LIMB(0x386120ffce11),CNST_LIMB(0x6eabb28dd6df),CNST_LIMB(0x3658e31c82a8f),CNST_LIMB(0x6ad2050312783),CNST_LIMB(0x1a42902a5af0bf),CNST_LIMB(0x33ac44f881661d),CNST_LIMB(0xcb764f927d82123),CNST_LIMB(0x190c23fa46b93983),CNST_LIMB(0x62b7609e25caf1b9),CNST_LIMB(0xc29cb72925ef2cff) +#define ODD_CENTRAL_BINOMIAL_TABLE_LIMIT (35) + +/* This table contains the inverses of elements in the previous table. */ +#define ONE_LIMB_ODD_CENTRAL_BINOMIAL_INVERSE_TABLE CNST_LIMB(0x61e5bd199bb12643),CNST_LIMB(0x78321494dc8342cf),CNST_LIMB(0x4fd348704ebf7ad5),CNST_LIMB(0x7e722ba086ab568b),CNST_LIMB(0xa5fcc124265843db),CNST_LIMB(0x89c4a6b18633f431),CNST_LIMB(0x4daa2c15f8ce9227),CNST_LIMB(0x801c618ca9be9605),CNST_LIMB(0x32dc192f948a441),CNST_LIMB(0xd02b90c2bf3be1),CNST_LIMB(0xd897e8c1749aa173),CNST_LIMB(0x54a234fc01fef9f7),CNST_LIMB(0x83ff2ab4d1ff7a4f),CNST_LIMB(0xa427f1c9b304e2f1),CNST_LIMB(0x9c14595d1793651f),CNST_LIMB(0x883a71c607a7b46f),CNST_LIMB(0xd089863c54bc9f2b),CNST_LIMB(0x9022f6bce5d07f3f),CNST_LIMB(0xbec207e218768c35),CNST_LIMB(0x9d70cb4cbb4f168b),CNST_LIMB(0x3c3d3403828a9d2b),CNST_LIMB(0x7672df58c56bc489),CNST_LIMB(0x1e66ca55d727d2ff) + +/* This table contains the values t in the formula binomial(2k,k)/2^t */ +#define CENTRAL_BINOMIAL_2FAC_TABLE 3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,1,2,2,3 diff --git a/vere/ext/gmp/gen/x86_64-linux/fib_table.h b/vere/ext/gmp/gen/x86_64-linux/fib_table.h new file mode 100644 index 0000000..66ac4d6 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/fib_table.h @@ -0,0 +1,8 @@ +/* This file generated by gen-fib.c - DO NOT EDIT. */ + +#if GMP_NUMB_BITS != 64 +Error, error, this data is for 64 bits +#endif + +#define FIB_TABLE_LIMIT 93 +#define FIB_TABLE_LUCNUM_LIMIT 92 diff --git a/vere/ext/gmp/gen/x86_64-linux/mp_bases.h b/vere/ext/gmp/gen/x86_64-linux/mp_bases.h new file mode 100644 index 0000000..08ede78 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mp_bases.h @@ -0,0 +1,13 @@ +/* This file generated by gen-bases.c - DO NOT EDIT. */ + +#if GMP_NUMB_BITS != 64 +Error, error, this data is for 64 bits +#endif + +/* mp_bases[10] data, as literal values */ +#define MP_BASES_CHARS_PER_LIMB_10 19 +#define MP_BASES_BIG_BASE_CTZ_10 19 +#define MP_BASES_BIG_BASE_10 CNST_LIMB(0x8ac7230489e80000) +#define MP_BASES_BIG_BASE_INVERTED_10 CNST_LIMB(0xd83c94fb6d2ac34a) +#define MP_BASES_BIG_BASE_BINVERTED_10 CNST_LIMB(0x26b172506559ce15) +#define MP_BASES_NORMALIZATION_STEPS_10 0 diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/add_err1_n.s b/vere/ext/gmp/gen/x86_64-linux/mpn/add_err1_n.s new file mode 100644 index 0000000..2cbba6a --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/add_err1_n.s @@ -0,0 +1,237 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_add_err1_n + .type __gmpn_add_err1_n,@function + +__gmpn_add_err1_n: + + mov 8(%rsp), %rax + + push %rbx + push %rbp + push %r12 + push %r13 + push %r14 + push %r15 + + lea (%rsi,%r9,8), %rsi + lea (%rdx,%r9,8), %rdx + lea (%rdi,%r9,8), %rdi + + mov %r9d, %r10d + and $3, %r10d + jz .L0mod4 + cmp $2, %r10d + jc .L1mod4 + jz .L2mod4 +.L3mod4: + xor %ebx, %ebx + xor %ebp, %ebp + xor %r10d, %r10d + xor %r11d, %r11d + lea -24(%r8,%r9,8), %r8 + neg %r9 + + shr $1, %al + mov (%rsi,%r9,8), %r14 + mov 8(%rsi,%r9,8), %r15 + adc (%rdx,%r9,8), %r14 + mov %r14, (%rdi,%r9,8) + cmovc 16(%r8), %rbx + adc 8(%rdx,%r9,8), %r15 + mov %r15, 8(%rdi,%r9,8) + cmovc 8(%r8), %r10 + mov 16(%rsi,%r9,8), %r14 + adc 16(%rdx,%r9,8), %r14 + mov %r14, 16(%rdi,%r9,8) + cmovc (%r8), %r11 + setc %al + add %r10, %rbx + adc $0, %rbp + add %r11, %rbx + adc $0, %rbp + + add $3, %r9 + jnz .Lloop + jmp .Lend + + .align 16, 0x90 +.L0mod4: + xor %ebx, %ebx + xor %ebp, %ebp + lea (%r8,%r9,8), %r8 + neg %r9 + jmp .Lloop + + .align 16, 0x90 +.L1mod4: + xor %ebx, %ebx + xor %ebp, %ebp + lea -8(%r8,%r9,8), %r8 + neg %r9 + + shr $1, %al + mov (%rsi,%r9,8), %r14 + adc (%rdx,%r9,8), %r14 + mov %r14, (%rdi,%r9,8) + cmovc (%r8), %rbx + setc %al + + add $1, %r9 + jnz .Lloop + jmp .Lend + + .align 16, 0x90 +.L2mod4: + xor %ebx, %ebx + xor %ebp, %ebp + xor %r10d, %r10d + lea -16(%r8,%r9,8), %r8 + neg %r9 + + shr $1, %al + mov (%rsi,%r9,8), %r14 + mov 8(%rsi,%r9,8), %r15 + adc (%rdx,%r9,8), %r14 + mov %r14, (%rdi,%r9,8) + cmovc 8(%r8), %rbx + adc 8(%rdx,%r9,8), %r15 + mov %r15, 8(%rdi,%r9,8) + cmovc (%r8), %r10 + setc %al + add %r10, %rbx + adc $0, %rbp + + add $2, %r9 + jnz .Lloop + jmp .Lend + + .align 32, 0x90 +.Lloop: + shr $1, %al + mov -8(%r8), %r10 + mov $0, %r13d + mov (%rsi,%r9,8), %r14 + mov 8(%rsi,%r9,8), %r15 + adc (%rdx,%r9,8), %r14 + cmovnc %r13, %r10 + adc 8(%rdx,%r9,8), %r15 + mov -16(%r8), %r11 + mov %r14, (%rdi,%r9,8) + mov 16(%rsi,%r9,8), %r14 + mov %r15, 8(%rdi,%r9,8) + cmovnc %r13, %r11 + mov -24(%r8), %r12 + adc 16(%rdx,%r9,8), %r14 + cmovnc %r13, %r12 + mov 24(%rsi,%r9,8), %r15 + adc 24(%rdx,%r9,8), %r15 + cmovc -32(%r8), %r13 + setc %al + add %r10, %rbx + adc $0, %rbp + add %r11, %rbx + adc $0, %rbp + add %r12, %rbx + adc $0, %rbp + mov %r14, 16(%rdi,%r9,8) + add %r13, %rbx + lea -32(%r8), %r8 + adc $0, %rbp + mov %r15, 24(%rdi,%r9,8) + add $4, %r9 + jnz .Lloop + +.Lend: + mov %rbx, (%rcx) + mov %rbp, 8(%rcx) + + pop %r15 + pop %r14 + pop %r13 + pop %r12 + pop %rbp + pop %rbx + ret + .size __gmpn_add_err1_n,.-__gmpn_add_err1_n diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/add_err2_n.s b/vere/ext/gmp/gen/x86_64-linux/mpn/add_err2_n.s new file mode 100644 index 0000000..1008479 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/add_err2_n.s @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_add_err2_n + .type __gmpn_add_err2_n,@function + +__gmpn_add_err2_n: + + mov 16(%rsp), %rax + mov 8(%rsp), %r10 + + push %rbx + push %rbp + push %r12 + push %r13 + push %r14 + + xor %ebp, %ebp + xor %r11d, %r11d + xor %r12d, %r12d + xor %r13d, %r13d + + sub %r8, %r9 + + lea (%rdi,%r10,8), %rdi + lea (%rsi,%r10,8), %rsi + lea (%rdx,%r10,8), %rdx + + test $1, %r10 + jnz .Lodd + + lea -8(%r8,%r10,8), %r8 + neg %r10 + jmp .Ltop + + .align 16, 0x90 +.Lodd: + lea -16(%r8,%r10,8), %r8 + neg %r10 + shr $1, %rax + mov (%rsi,%r10,8), %rbx + adc (%rdx,%r10,8), %rbx + cmovc 8(%r8), %rbp + cmovc 8(%r8,%r9), %r12 + mov %rbx, (%rdi,%r10,8) + sbb %rax, %rax + inc %r10 + jz .Lend + + .align 16, 0x90 +.Ltop: + mov (%rsi,%r10,8), %rbx + shr $1, %rax + adc (%rdx,%r10,8), %rbx + mov %rbx, (%rdi,%r10,8) + sbb %r14, %r14 + + mov 8(%rsi,%r10,8), %rbx + adc 8(%rdx,%r10,8), %rbx + mov %rbx, 8(%rdi,%r10,8) + sbb %rax, %rax + + mov (%r8), %rbx + and %r14, %rbx + add %rbx, %rbp + adc $0, %r11 + + and (%r8,%r9), %r14 + add %r14, %r12 + adc $0, %r13 + + mov -8(%r8), %rbx + and %rax, %rbx + add %rbx, %rbp + adc $0, %r11 + + mov -8(%r8,%r9), %rbx + and %rax, %rbx + add %rbx, %r12 + adc $0, %r13 + + add $2, %r10 + lea -16(%r8), %r8 + jnz .Ltop +.Lend: + + mov %rbp, (%rcx) + mov %r11, 8(%rcx) + mov %r12, 16(%rcx) + mov %r13, 24(%rcx) + + and $1, %eax + + pop %r14 + pop %r13 + pop %r12 + pop %rbp + pop %rbx + ret + .size __gmpn_add_err2_n,.-__gmpn_add_err2_n diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/add_err3_n.s b/vere/ext/gmp/gen/x86_64-linux/mpn/add_err3_n.s new file mode 100644 index 0000000..cf99415 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/add_err3_n.s @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_add_err3_n + .type __gmpn_add_err3_n,@function + +__gmpn_add_err3_n: + + mov 24(%rsp), %rax + mov 16(%rsp), %r10 + + push %rbx + push %rbp + push %r12 + push %r13 + push %r14 + push %r15 + + push %rcx + mov 64(%rsp), %rcx + + xor %ebp, %ebp + xor %r11d, %r11d + xor %r12d, %r12d + xor %r13d, %r13d + xor %r14d, %r14d + xor %r15d, %r15d + + sub %r8, %r9 + sub %r8, %rcx + + lea -8(%r8,%r10,8), %r8 + lea (%rdi,%r10,8), %rdi + lea (%rsi,%r10,8), %rsi + lea (%rdx,%r10,8), %rdx + neg %r10 + + .align 16, 0x90 +.Ltop: + shr $1, %rax + mov (%rsi,%r10,8), %rax + adc (%rdx,%r10,8), %rax + mov %rax, (%rdi,%r10,8) + sbb %rax, %rax + + mov (%r8), %rbx + and %rax, %rbx + add %rbx, %rbp + adc $0, %r11 + + mov (%r8,%r9), %rbx + and %rax, %rbx + add %rbx, %r12 + adc $0, %r13 + + mov (%r8,%rcx), %rbx + and %rax, %rbx + add %rbx, %r14 + adc $0, %r15 + + lea -8(%r8), %r8 + inc %r10 + jnz .Ltop + +.Lend: + and $1, %eax + pop %rcx + + mov %rbp, (%rcx) + mov %r11, 8(%rcx) + mov %r12, 16(%rcx) + mov %r13, 24(%rcx) + mov %r14, 32(%rcx) + mov %r15, 40(%rcx) + + pop %r15 + pop %r14 + pop %r13 + pop %r12 + pop %rbp + pop %rbx + ret + .size __gmpn_add_err3_n,.-__gmpn_add_err3_n diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/add_n.s b/vere/ext/gmp/gen/x86_64-linux/mpn/add_n.s new file mode 100644 index 0000000..14cc32b --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/add_n.s @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_add_nc + .type __gmpn_add_nc,@function + +__gmpn_add_nc: + + + + mov %ecx, %eax + shr $2, %rcx + and $3, %eax + bt $0, %r8 + jrcxz .Llt4 + + mov (%rsi), %r8 + mov 8(%rsi), %r9 + dec %rcx + jmp .Lmid + + .size __gmpn_add_nc,.-__gmpn_add_nc + .align 16, 0x90 + .globl __gmpn_add_n + .type __gmpn_add_n,@function + +__gmpn_add_n: + + + mov %ecx, %eax + shr $2, %rcx + and $3, %eax + jrcxz .Llt4 + + mov (%rsi), %r8 + mov 8(%rsi), %r9 + dec %rcx + jmp .Lmid + +.Llt4: dec %eax + mov (%rsi), %r8 + jnz .L2 + adc (%rdx), %r8 + mov %r8, (%rdi) + adc %eax, %eax + + ret + +.L2: dec %eax + mov 8(%rsi), %r9 + jnz .L3 + adc (%rdx), %r8 + adc 8(%rdx), %r9 + mov %r8, (%rdi) + mov %r9, 8(%rdi) + adc %eax, %eax + + ret + +.L3: mov 16(%rsi), %r10 + adc (%rdx), %r8 + adc 8(%rdx), %r9 + adc 16(%rdx), %r10 + mov %r8, (%rdi) + mov %r9, 8(%rdi) + mov %r10, 16(%rdi) + setc %al + + ret + + .align 16, 0x90 +.Ltop: adc (%rdx), %r8 + adc 8(%rdx), %r9 + adc 16(%rdx), %r10 + adc 24(%rdx), %r11 + mov %r8, (%rdi) + lea 32(%rsi), %rsi + mov %r9, 8(%rdi) + mov %r10, 16(%rdi) + dec %rcx + mov %r11, 24(%rdi) + lea 32(%rdx), %rdx + mov (%rsi), %r8 + mov 8(%rsi), %r9 + lea 32(%rdi), %rdi +.Lmid: mov 16(%rsi), %r10 + mov 24(%rsi), %r11 + jnz .Ltop + +.Lend: lea 32(%rsi), %rsi + adc (%rdx), %r8 + adc 8(%rdx), %r9 + adc 16(%rdx), %r10 + adc 24(%rdx), %r11 + lea 32(%rdx), %rdx + mov %r8, (%rdi) + mov %r9, 8(%rdi) + mov %r10, 16(%rdi) + mov %r11, 24(%rdi) + lea 32(%rdi), %rdi + + inc %eax + dec %eax + jnz .Llt4 + adc %eax, %eax + + ret + .size __gmpn_add_n,.-__gmpn_add_n diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/addaddmul_1msb0.s b/vere/ext/gmp/gen/x86_64-linux/mpn/addaddmul_1msb0.s new file mode 100644 index 0000000..c821f7b --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/addaddmul_1msb0.s @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_addaddmul_1msb0 + .type __gmpn_addaddmul_1msb0,@function + +__gmpn_addaddmul_1msb0: + + push %r12 + push %rbp + + lea (%rsi,%rcx,8), %rsi + lea (%rdx,%rcx,8), %rbp + lea (%rdi,%rcx,8), %rdi + neg %rcx + + mov (%rsi,%rcx,8), %rax + mul %r8 + mov %rax, %r12 + mov (%rbp,%rcx,8), %rax + mov %rdx, %r10 + add $3, %rcx + jns .Lend + + .align 16, 0x90 +.Ltop: mul %r9 + add %rax, %r12 + mov -16(%rsi,%rcx,8), %rax + adc %rdx, %r10 + mov %r12, -24(%rdi,%rcx,8) + mul %r8 + add %rax, %r10 + mov -16(%rbp,%rcx,8), %rax + mov $0, %r11d + adc %rdx, %r11 + mul %r9 + add %rax, %r10 + mov -8(%rsi,%rcx,8), %rax + adc %rdx, %r11 + mov %r10, -16(%rdi,%rcx,8) + mul %r8 + add %rax, %r11 + mov -8(%rbp,%rcx,8), %rax + mov $0, %r12d + adc %rdx, %r12 + mul %r9 + add %rax, %r11 + adc %rdx, %r12 + mov (%rsi,%rcx,8), %rax + mul %r8 + add %rax, %r12 + mov %r11, -8(%rdi,%rcx,8) + mov (%rbp,%rcx,8), %rax + mov $0, %r10d + adc %rdx, %r10 + add $3, %rcx + js .Ltop + +.Lend: cmp $1, %ecx + ja 2f + jz 1f + + mul %r9 + add %rax, %r12 + mov -16(%rsi), %rax + adc %rdx, %r10 + mov %r12, -24(%rdi) + mul %r8 + add %rax, %r10 + mov -16(%rbp), %rax + mov $0, %r11d + adc %rdx, %r11 + mul %r9 + add %rax, %r10 + mov -8(%rsi), %rax + adc %rdx, %r11 + mov %r10, -16(%rdi) + mul %r8 + add %rax, %r11 + mov -8(%rbp), %rax + mov $0, %r12d + adc %rdx, %r12 + mul %r9 + add %rax, %r11 + adc %rdx, %r12 + mov %r11, -8(%rdi) + mov %r12, %rax + pop %rbp + pop %r12 + ret + +1: mul %r9 + add %rax, %r12 + mov -8(%rsi), %rax + adc %rdx, %r10 + mov %r12, -16(%rdi) + mul %r8 + add %rax, %r10 + mov -8(%rbp), %rax + mov $0, %r11d + adc %rdx, %r11 + mul %r9 + add %rax, %r10 + adc %rdx, %r11 + mov %r10, -8(%rdi) + mov %r11, %rax + pop %rbp + pop %r12 + ret + +2: mul %r9 + add %rax, %r12 + mov %r12, -8(%rdi) + adc %rdx, %r10 + mov %r10, %rax + pop %rbp + pop %r12 + ret + .size __gmpn_addaddmul_1msb0,.-__gmpn_addaddmul_1msb0 diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/addlsh1_n.s b/vere/ext/gmp/gen/x86_64-linux/mpn/addlsh1_n.s new file mode 100644 index 0000000..e3d3aae --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/addlsh1_n.s @@ -0,0 +1,179 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_addlsh1_n + .type __gmpn_addlsh1_n,@function + +__gmpn_addlsh1_n: + + + push %rbp + + mov (%rdx), %r8 + mov %ecx, %eax + lea (%rdi,%rcx,8), %rdi + lea (%rsi,%rcx,8), %rsi + lea (%rdx,%rcx,8), %rdx + neg %rcx + xor %ebp, %ebp + and $3, %eax + je .Lb00 + cmp $2, %eax + jc .Lb01 + je .Lb10 + +.Lb11: add %r8, %r8 + mov 8(%rdx,%rcx,8), %r9 + adc %r9, %r9 + mov 16(%rdx,%rcx,8), %r10 + adc %r10, %r10 + sbb %eax, %eax + add (%rsi,%rcx,8), %r8 + adc 8(%rsi,%rcx,8), %r9 + mov %r8, (%rdi,%rcx,8) + mov %r9, 8(%rdi,%rcx,8) + adc 16(%rsi,%rcx,8), %r10 + mov %r10, 16(%rdi,%rcx,8) + sbb %ebp, %ebp + add $3, %rcx + jmp .Lent + +.Lb10: add %r8, %r8 + mov 8(%rdx,%rcx,8), %r9 + adc %r9, %r9 + sbb %eax, %eax + add (%rsi,%rcx,8), %r8 + adc 8(%rsi,%rcx,8), %r9 + mov %r8, (%rdi,%rcx,8) + mov %r9, 8(%rdi,%rcx,8) + sbb %ebp, %ebp + add $2, %rcx + jmp .Lent + +.Lb01: add %r8, %r8 + sbb %eax, %eax + add (%rsi,%rcx,8), %r8 + mov %r8, (%rdi,%rcx,8) + sbb %ebp, %ebp + inc %rcx +.Lent: jns .Lend + + .align 16, 0x90 +.Ltop: add %eax, %eax + + mov (%rdx,%rcx,8), %r8 +.Lb00: adc %r8, %r8 + mov 8(%rdx,%rcx,8), %r9 + adc %r9, %r9 + mov 16(%rdx,%rcx,8), %r10 + adc %r10, %r10 + mov 24(%rdx,%rcx,8), %r11 + adc %r11, %r11 + + sbb %eax, %eax + add %ebp, %ebp + + adc (%rsi,%rcx,8), %r8 + nop + adc 8(%rsi,%rcx,8), %r9 + mov %r8, (%rdi,%rcx,8) + mov %r9, 8(%rdi,%rcx,8) + adc 16(%rsi,%rcx,8), %r10 + adc 24(%rsi,%rcx,8), %r11 + mov %r10, 16(%rdi,%rcx,8) + mov %r11, 24(%rdi,%rcx,8) + + sbb %ebp, %ebp + add $4, %rcx + js .Ltop + +.Lend: + + add %ebp, %eax + neg %eax + + + pop %rbp + + ret + .size __gmpn_addlsh1_n,.-__gmpn_addlsh1_n diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/addlsh2_n.s b/vere/ext/gmp/gen/x86_64-linux/mpn/addlsh2_n.s new file mode 100644 index 0000000..00e2090 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/addlsh2_n.s @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_addlsh2_n + .type __gmpn_addlsh2_n,@function + +__gmpn_addlsh2_n: + + + push %r12 + push %r13 + push %r14 + push %r15 + + mov (%rdx), %r8 + lea (,%r8,4), %r12 + shr $62, %r8 + + mov %ecx, %eax + lea (%rdi,%rcx,8), %rdi + lea (%rsi,%rcx,8), %rsi + lea (%rdx,%rcx,8), %rdx + neg %rcx + and $3, %al + je .Lb00 + cmp $2, %al + jc .Lb01 + je .Lb10 + +.Lb11: mov 8(%rdx,%rcx,8), %r10 + lea (%r8,%r10,4), %r14 + shr $62, %r10 + mov 16(%rdx,%rcx,8), %r11 + lea (%r10,%r11,4), %r15 + shr $62, %r11 + add (%rsi,%rcx,8), %r12 + adc 8(%rsi,%rcx,8), %r14 + adc 16(%rsi,%rcx,8), %r15 + sbb %eax, %eax + mov %r12, (%rdi,%rcx,8) + mov %r14, 8(%rdi,%rcx,8) + mov %r15, 16(%rdi,%rcx,8) + add $3, %rcx + js .Ltop + jmp .Lend + +.Lb01: mov %r8, %r11 + add (%rsi,%rcx,8), %r12 + sbb %eax, %eax + mov %r12, (%rdi,%rcx,8) + add $1, %rcx + js .Ltop + jmp .Lend + +.Lb10: mov 8(%rdx,%rcx,8), %r11 + lea (%r8,%r11,4), %r15 + shr $62, %r11 + add (%rsi,%rcx,8), %r12 + adc 8(%rsi,%rcx,8), %r15 + sbb %eax, %eax + mov %r12, (%rdi,%rcx,8) + mov %r15, 8(%rdi,%rcx,8) + add $2, %rcx + js .Ltop + jmp .Lend + +.Lb00: mov 8(%rdx,%rcx,8), %r9 + mov 16(%rdx,%rcx,8), %r10 + jmp .Le00 + + .align 16, 0x90 +.Ltop: mov 16(%rdx,%rcx,8), %r10 + mov (%rdx,%rcx,8), %r8 + mov 8(%rdx,%rcx,8), %r9 + lea (%r11,%r8,4), %r12 + shr $62, %r8 +.Le00: lea (%r8,%r9,4), %r13 + shr $62, %r9 + mov 24(%rdx,%rcx,8), %r11 + lea (%r9,%r10,4), %r14 + shr $62, %r10 + lea (%r10,%r11,4), %r15 + shr $62, %r11 + add %eax, %eax + adc (%rsi,%rcx,8), %r12 + adc 8(%rsi,%rcx,8), %r13 + adc 16(%rsi,%rcx,8), %r14 + adc 24(%rsi,%rcx,8), %r15 + mov %r12, (%rdi,%rcx,8) + mov %r13, 8(%rdi,%rcx,8) + mov %r14, 16(%rdi,%rcx,8) + sbb %eax, %eax + mov %r15, 24(%rdi,%rcx,8) + add $4, %rcx + js .Ltop +.Lend: + + + sub %r11d, %eax + neg %eax + + pop %r15 + pop %r14 + pop %r13 + pop %r12 + + ret + .size __gmpn_addlsh2_n,.-__gmpn_addlsh2_n + diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/addlsh_n.s b/vere/ext/gmp/gen/x86_64-linux/mpn/addlsh_n.s new file mode 100644 index 0000000..2d261d5 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/addlsh_n.s @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_addlsh_n + .type __gmpn_addlsh_n,@function + +__gmpn_addlsh_n: + + + + push %r12 + push %rbp + push %rbx + + mov (%rdx), %rax + + mov $0, %ebp + sub %rcx, %rbp + + lea -16(%rsi,%rcx,8), %rsi + lea -16(%rdi,%rcx,8), %rdi + lea 16(%rdx,%rcx,8), %r12 + + mov %rcx, %r9 + + mov %r8, %rcx + mov $1, %r8d + shl %cl, %r8 + + mul %r8 + + and $3, %r9d + jz .Lb0 + cmp $2, %r9d + jc .Lb1 + jz .Lb2 + +.Lb3: mov %rax, %r11 + add 16(%rsi,%rbp,8), %r11 + mov -8(%r12,%rbp,8), %rax + sbb %ecx, %ecx + mov %rdx, %rbx + mul %r8 + or %rax, %rbx + mov (%r12,%rbp,8), %rax + mov %rdx, %r9 + mul %r8 + or %rax, %r9 + add $3, %rbp + jnz .Llo3 + jmp .Lcj3 + +.Lb2: mov %rax, %rbx + mov -8(%r12,%rbp,8), %rax + mov %rdx, %r9 + mul %r8 + or %rax, %r9 + add $2, %rbp + jz .Lcj2 + mov %rdx, %r10 + mov -16(%r12,%rbp,8), %rax + mul %r8 + or %rax, %r10 + xor %ecx, %ecx + jmp .Llo2 + +.Lb1: mov %rax, %r9 + mov %rdx, %r10 + add $1, %rbp + jnz .Lgt1 + add 8(%rsi,%rbp,8), %r9 + jmp .Lcj1 +.Lgt1: mov -16(%r12,%rbp,8), %rax + mul %r8 + or %rax, %r10 + mov %rdx, %r11 + mov -8(%r12,%rbp,8), %rax + mul %r8 + or %rax, %r11 + add 8(%rsi,%rbp,8), %r9 + adc 16(%rsi,%rbp,8), %r10 + adc 24(%rsi,%rbp,8), %r11 + mov (%r12,%rbp,8), %rax + sbb %ecx, %ecx + jmp .Llo1 + +.Lb0: mov %rax, %r10 + mov %rdx, %r11 + mov -8(%r12,%rbp,8), %rax + mul %r8 + or %rax, %r11 + add 16(%rsi,%rbp,8), %r10 + adc 24(%rsi,%rbp,8), %r11 + mov (%r12,%rbp,8), %rax + sbb %ecx, %ecx + mov %rdx, %rbx + mul %r8 + or %rax, %rbx + mov 8(%r12,%rbp,8), %rax + add $4, %rbp + jz .Lend + + .align 8, 0x90 +.Ltop: mov %rdx, %r9 + mul %r8 + or %rax, %r9 + mov %r10, -16(%rdi,%rbp,8) +.Llo3: mov %rdx, %r10 + mov -16(%r12,%rbp,8), %rax + mul %r8 + or %rax, %r10 + mov %r11, -8(%rdi,%rbp,8) +.Llo2: mov %rdx, %r11 + mov -8(%r12,%rbp,8), %rax + mul %r8 + or %rax, %r11 + add %ecx, %ecx + adc (%rsi,%rbp,8), %rbx + adc 8(%rsi,%rbp,8), %r9 + adc 16(%rsi,%rbp,8), %r10 + adc 24(%rsi,%rbp,8), %r11 + mov (%r12,%rbp,8), %rax + sbb %ecx, %ecx + mov %rbx, (%rdi,%rbp,8) +.Llo1: mov %rdx, %rbx + mul %r8 + or %rax, %rbx + mov %r9, 8(%rdi,%rbp,8) +.Llo0: mov 8(%r12,%rbp,8), %rax + add $4, %rbp + jnz .Ltop + +.Lend: mov %rdx, %r9 + mul %r8 + or %rax, %r9 + mov %r10, -16(%rdi,%rbp,8) +.Lcj3: mov %r11, -8(%rdi,%rbp,8) +.Lcj2: add %ecx, %ecx + adc (%rsi,%rbp,8), %rbx + adc 8(%rsi,%rbp,8), %r9 + mov %rbx, (%rdi,%rbp,8) +.Lcj1: mov %r9, 8(%rdi,%rbp,8) + mov %rdx, %rax + adc $0, %rax + pop %rbx + pop %rbp + pop %r12 + + ret + .size __gmpn_addlsh_n,.-__gmpn_addlsh_n diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/addmul_1.s b/vere/ext/gmp/gen/x86_64-linux/mpn/addmul_1.s new file mode 100644 index 0000000..8daf1ac --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/addmul_1.s @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_addmul_1 + .type __gmpn_addmul_1,@function + +__gmpn_addmul_1: + + + + + + + mov (%rsi), %rax + push %rbx + mov %rdx, %rbx + + mul %rcx + mov %rbx, %r11 + + and $3, %ebx + jz .Lb0 + cmp $2, %ebx + jz .Lb2 + jg .Lb3 + +.Lb1: dec %r11 + jne .Lgt1 + add %rax, (%rdi) + jmp .Lret +.Lgt1: lea 8(%rsi,%r11,8), %rsi + lea -8(%rdi,%r11,8), %rdi + neg %r11 + xor %r10, %r10 + xor %ebx, %ebx + mov %rax, %r9 + mov (%rsi,%r11,8), %rax + mov %rdx, %r8 + jmp .LL1 + +.Lb0: lea (%rsi,%r11,8), %rsi + lea -16(%rdi,%r11,8), %rdi + neg %r11 + xor %r10, %r10 + mov %rax, %r8 + mov %rdx, %rbx + jmp .LL0 + +.Lb3: lea -8(%rsi,%r11,8), %rsi + lea -24(%rdi,%r11,8), %rdi + neg %r11 + mov %rax, %rbx + mov %rdx, %r10 + jmp .LL3 + +.Lb2: lea -16(%rsi,%r11,8), %rsi + lea -32(%rdi,%r11,8), %rdi + neg %r11 + xor %r8, %r8 + xor %ebx, %ebx + mov %rax, %r10 + mov 24(%rsi,%r11,8), %rax + mov %rdx, %r9 + jmp .LL2 + + .align 16, 0x90 +.Ltop: add %r10, (%rdi,%r11,8) + adc %rax, %r9 + mov (%rsi,%r11,8), %rax + adc %rdx, %r8 + mov $0, %r10d +.LL1: mul %rcx + add %r9, 8(%rdi,%r11,8) + adc %rax, %r8 + adc %rdx, %rbx +.LL0: mov 8(%rsi,%r11,8), %rax + mul %rcx + add %r8, 16(%rdi,%r11,8) + adc %rax, %rbx + adc %rdx, %r10 +.LL3: mov 16(%rsi,%r11,8), %rax + mul %rcx + add %rbx, 24(%rdi,%r11,8) + mov $0, %r8d + mov %r8, %rbx + adc %rax, %r10 + mov 24(%rsi,%r11,8), %rax + mov %r8, %r9 + adc %rdx, %r9 +.LL2: mul %rcx + add $4, %r11 + js .Ltop + + add %r10, (%rdi,%r11,8) + adc %rax, %r9 + adc %r8, %rdx + add %r9, 8(%rdi,%r11,8) +.Lret: adc $0, %rdx + mov %rdx, %rax + + pop %rbx + + + ret + .size __gmpn_addmul_1,.-__gmpn_addmul_1 diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/addmul_2.s b/vere/ext/gmp/gen/x86_64-linux/mpn/addmul_2.s new file mode 100644 index 0000000..5883dab --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/addmul_2.s @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_addmul_2 + .type __gmpn_addmul_2,@function + +__gmpn_addmul_2: + + + mov %rdx, %r11 + push %rbx + push %rbp + + mov 0(%rcx), %r8 + mov 8(%rcx), %r9 + + mov %edx, %ebx + mov (%rsi), %rax + lea -8(%rsi,%rdx,8), %rsi + lea -8(%rdi,%rdx,8), %rdi + mul %r8 + neg %r11 + and $3, %ebx + jz .Lb0 + cmp $2, %ebx + jc .Lb1 + jz .Lb2 + +.Lb3: mov %rax, %rcx + mov %rdx, %rbp + xor %r10d, %r10d + mov 8(%rsi,%r11,8), %rax + dec %r11 + jmp .Llo3 + +.Lb2: mov %rax, %rbp + mov 8(%rsi,%r11,8), %rax + mov %rdx, %r10 + xor %ebx, %ebx + add $-2, %r11 + jmp .Llo2 + +.Lb1: mov %rax, %r10 + mov 8(%rsi,%r11,8), %rax + mov %rdx, %rbx + xor %ecx, %ecx + inc %r11 + jmp .Llo1 + +.Lb0: mov $0, %r10d + mov %rax, %rbx + mov 8(%rsi,%r11,8), %rax + mov %rdx, %rcx + xor %ebp, %ebp + jmp .Llo0 + + .align 32, 0x90 +.Ltop: mov $0, %ecx + mul %r8 + add %rax, %r10 + mov (%rsi,%r11,8), %rax + adc %rdx, %rbx + adc $0, %ecx +.Llo1: mul %r9 + add %r10, (%rdi,%r11,8) + mov $0, %r10d + adc %rax, %rbx + mov $0, %ebp + mov 8(%rsi,%r11,8), %rax + adc %rdx, %rcx + mul %r8 + add %rax, %rbx + mov 8(%rsi,%r11,8), %rax + adc %rdx, %rcx + adc $0, %ebp +.Llo0: mul %r9 + add %rbx, 8(%rdi,%r11,8) + adc %rax, %rcx + adc %rdx, %rbp + mov 16(%rsi,%r11,8), %rax + mul %r8 + add %rax, %rcx + adc %rdx, %rbp + adc $0, %r10d + mov 16(%rsi,%r11,8), %rax +.Llo3: mul %r9 + add %rcx, 16(%rdi,%r11,8) + adc %rax, %rbp + adc %rdx, %r10 + xor %ebx, %ebx + mov 24(%rsi,%r11,8), %rax + mul %r8 + add %rax, %rbp + mov 24(%rsi,%r11,8), %rax + adc %rdx, %r10 + adc $0, %ebx +.Llo2: mul %r9 + add %rbp, 24(%rdi,%r11,8) + adc %rax, %r10 + adc %rdx, %rbx + mov 32(%rsi,%r11,8), %rax + add $4, %r11 + js .Ltop + +.Lend: xor %ecx, %ecx + mul %r8 + add %rax, %r10 + mov (%rsi), %rax + adc %rdx, %rbx + adc %ecx, %ecx + mul %r9 + add %r10, (%rdi) + adc %rax, %rbx + adc %rdx, %rcx + mov %rbx, 8(%rdi) + mov %rcx, %rax + + pop %rbp + pop %rbx + + ret + .size __gmpn_addmul_2,.-__gmpn_addmul_2 diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/and_n.s b/vere/ext/gmp/gen/x86_64-linux/mpn/and_n.s new file mode 100644 index 0000000..946906e --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/and_n.s @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 32, 0x90 + .globl __gmpn_and_n + .type __gmpn_and_n,@function + +__gmpn_and_n: + + + mov (%rdx), %r8 + mov %ecx, %eax + lea (%rdx,%rcx,8), %rdx + lea (%rsi,%rcx,8), %rsi + lea (%rdi,%rcx,8), %rdi + neg %rcx + and $3, %eax + je .Lb00 + cmp $2, %eax + jc .Lb01 + je .Lb10 + +.Lb11: and (%rsi,%rcx,8), %r8 + mov %r8, (%rdi,%rcx,8) + dec %rcx + jmp .Le11 +.Lb10: add $-2, %rcx + jmp .Le10 +.Lb01: and (%rsi,%rcx,8), %r8 + mov %r8, (%rdi,%rcx,8) + inc %rcx + jz .Lret + +.Ltop: mov (%rdx,%rcx,8), %r8 +.Lb00: mov 8(%rdx,%rcx,8), %r9 + and (%rsi,%rcx,8), %r8 + and 8(%rsi,%rcx,8), %r9 + nop + mov %r8, (%rdi,%rcx,8) + mov %r9, 8(%rdi,%rcx,8) +.Le11: mov 16(%rdx,%rcx,8), %r8 +.Le10: mov 24(%rdx,%rcx,8), %r9 + and 16(%rsi,%rcx,8), %r8 + and 24(%rsi,%rcx,8), %r9 + mov %r8, 16(%rdi,%rcx,8) + mov %r9, 24(%rdi,%rcx,8) + add $4, %rcx + jnc .Ltop + +.Lret: + ret + .size __gmpn_and_n,.-__gmpn_and_n + + + + + diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/andn_n.s b/vere/ext/gmp/gen/x86_64-linux/mpn/andn_n.s new file mode 100644 index 0000000..aee1df4 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/andn_n.s @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 32, 0x90 + .globl __gmpn_andn_n + .type __gmpn_andn_n,@function + +__gmpn_andn_n: + + + mov (%rdx), %r8 + not %r8 + mov %ecx, %eax + lea (%rdx,%rcx,8), %rdx + lea (%rsi,%rcx,8), %rsi + lea (%rdi,%rcx,8), %rdi + neg %rcx + and $3, %eax + je .Lb00 + cmp $2, %eax + jc .Lb01 + je .Lb10 + +.Lb11: and (%rsi,%rcx,8), %r8 + mov %r8, (%rdi,%rcx,8) + dec %rcx + jmp .Le11 +.Lb10: add $-2, %rcx + jmp .Le10 + .byte 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90 +.Lb01: and (%rsi,%rcx,8), %r8 + mov %r8, (%rdi,%rcx,8) + inc %rcx + jz .Lret + +.Ltop: mov (%rdx,%rcx,8), %r8 + not %r8 +.Lb00: mov 8(%rdx,%rcx,8), %r9 + not %r9 + and (%rsi,%rcx,8), %r8 + and 8(%rsi,%rcx,8), %r9 + mov %r8, (%rdi,%rcx,8) + mov %r9, 8(%rdi,%rcx,8) +.Le11: mov 16(%rdx,%rcx,8), %r8 + not %r8 +.Le10: mov 24(%rdx,%rcx,8), %r9 + not %r9 + and 16(%rsi,%rcx,8), %r8 + and 24(%rsi,%rcx,8), %r9 + mov %r8, 16(%rdi,%rcx,8) + mov %r9, 24(%rdi,%rcx,8) + add $4, %rcx + jnc .Ltop + +.Lret: + ret + .size __gmpn_andn_n,.-__gmpn_andn_n + + + diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/bdiv_dbm1c.s b/vere/ext/gmp/gen/x86_64-linux/mpn/bdiv_dbm1c.s new file mode 100644 index 0000000..2fda4a0 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/bdiv_dbm1c.s @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_bdiv_dbm1c + .type __gmpn_bdiv_dbm1c,@function + +__gmpn_bdiv_dbm1c: + + + + mov (%rsi), %rax + mov %rdx, %r9 + mov %edx, %r11d + mul %rcx + lea (%rsi,%r9,8), %rsi + lea (%rdi,%r9,8), %rdi + neg %r9 + and $3, %r11d + jz .Llo0 + lea -4(%r9,%r11), %r9 + cmp $2, %r11d + jc .Llo1 + jz .Llo2 + jmp .Llo3 + + .align 16, 0x90 +.Ltop: mov (%rsi,%r9,8), %rax + mul %rcx +.Llo0: sub %rax, %r8 + mov %r8, (%rdi,%r9,8) + sbb %rdx, %r8 + mov 8(%rsi,%r9,8), %rax + mul %rcx +.Llo3: sub %rax, %r8 + mov %r8, 8(%rdi,%r9,8) + sbb %rdx, %r8 + mov 16(%rsi,%r9,8), %rax + mul %rcx +.Llo2: sub %rax, %r8 + mov %r8, 16(%rdi,%r9,8) + sbb %rdx, %r8 + mov 24(%rsi,%r9,8), %rax + mul %rcx +.Llo1: sub %rax, %r8 + mov %r8, 24(%rdi,%r9,8) + sbb %rdx, %r8 + add $4, %r9 + jnz .Ltop + + mov %r8, %rax + + ret + .size __gmpn_bdiv_dbm1c,.-__gmpn_bdiv_dbm1c diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/bdiv_q_1.s b/vere/ext/gmp/gen/x86_64-linux/mpn/bdiv_q_1.s new file mode 100644 index 0000000..4f58778 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/bdiv_q_1.s @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_bdiv_q_1 + .type __gmpn_bdiv_q_1,@function + +__gmpn_bdiv_q_1: + + + push %rbx + + mov %rcx, %rax + xor %ecx, %ecx + mov %rdx, %r10 + + bt $0, %eax + jnc .Levn + +.Lodd: mov %rax, %rbx + shr %eax + and $127, %eax + + mov __gmp_binvert_limb_table@GOTPCREL(%rip), %rdx + + + + movzbl (%rdx,%rax), %eax + + mov %rbx, %r11 + + lea (%rax,%rax), %edx + imul %eax, %eax + imul %ebx, %eax + sub %eax, %edx + + lea (%rdx,%rdx), %eax + imul %edx, %edx + imul %ebx, %edx + sub %edx, %eax + + lea (%rax,%rax), %r8 + imul %rax, %rax + imul %rbx, %rax + sub %rax, %r8 + + jmp .Lpi1 + +.Levn: bsf %rax, %rcx + shr %cl, %rax + jmp .Lodd + .size __gmpn_bdiv_q_1,.-__gmpn_bdiv_q_1 + + .globl __gmpn_pi1_bdiv_q_1 + .type __gmpn_pi1_bdiv_q_1,@function + +__gmpn_pi1_bdiv_q_1: + + + + + push %rbx + + mov %rcx, %r11 + mov %rdx, %r10 + mov %r9, %rcx + +.Lpi1: mov (%rsi), %rax + + dec %r10 + jz .Lone + + mov 8(%rsi), %rdx + lea (%rsi,%r10,8), %rsi + lea (%rdi,%r10,8), %rdi + neg %r10 + + shrd %cl, %rdx, %rax + + xor %ebx, %ebx + jmp .Lent + + .align 8, 0x90 +.Ltop: + + + + + + + + mul %r11 + mov (%rsi,%r10,8), %rax + mov 8(%rsi,%r10,8), %r9 + shrd %cl, %r9, %rax + nop + sub %rbx, %rax + setc %bl + sub %rdx, %rax + adc $0, %ebx +.Lent: imul %r8, %rax + mov %rax, (%rdi,%r10,8) + inc %r10 + jnz .Ltop + + mul %r11 + mov (%rsi), %rax + shr %cl, %rax + sub %rbx, %rax + sub %rdx, %rax + imul %r8, %rax + mov %rax, (%rdi) + pop %rbx + + ret + +.Lone: shr %cl, %rax + imul %r8, %rax + mov %rax, (%rdi) + pop %rbx + + ret + .size __gmpn_pi1_bdiv_q_1,.-__gmpn_pi1_bdiv_q_1 diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/cnd_add_n.s b/vere/ext/gmp/gen/x86_64-linux/mpn/cnd_add_n.s new file mode 100644 index 0000000..b046e36 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/cnd_add_n.s @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_cnd_add_n + .type __gmpn_cnd_add_n,@function + +__gmpn_cnd_add_n: + + + + push %rbx + push %rbp + push %r12 + push %r13 + push %r14 + + neg %rdi + sbb %rdi, %rdi + + lea (%rcx,%r8,8), %rcx + lea (%rdx,%r8,8), %rdx + lea (%rsi,%r8,8), %rsi + + mov %r8d, %eax + neg %r8 + and $3, %eax + jz .Ltop + cmp $2, %eax + jc .Lb1 + jz .Lb2 + +.Lb3: mov (%rcx,%r8,8), %r12 + mov 8(%rcx,%r8,8), %r13 + mov 16(%rcx,%r8,8), %r14 + and %rdi, %r12 + mov (%rdx,%r8,8), %r10 + and %rdi, %r13 + mov 8(%rdx,%r8,8), %rbx + and %rdi, %r14 + mov 16(%rdx,%r8,8), %rbp + add %r12, %r10 + mov %r10, (%rsi,%r8,8) + adc %r13, %rbx + mov %rbx, 8(%rsi,%r8,8) + adc %r14, %rbp + mov %rbp, 16(%rsi,%r8,8) + sbb %eax, %eax + add $3, %r8 + js .Ltop + jmp .Lend + +.Lb2: mov (%rcx,%r8,8), %r12 + mov 8(%rcx,%r8,8), %r13 + mov (%rdx,%r8,8), %r10 + and %rdi, %r12 + mov 8(%rdx,%r8,8), %rbx + and %rdi, %r13 + add %r12, %r10 + mov %r10, (%rsi,%r8,8) + adc %r13, %rbx + mov %rbx, 8(%rsi,%r8,8) + sbb %eax, %eax + add $2, %r8 + js .Ltop + jmp .Lend + +.Lb1: mov (%rcx,%r8,8), %r12 + mov (%rdx,%r8,8), %r10 + and %rdi, %r12 + add %r12, %r10 + mov %r10, (%rsi,%r8,8) + sbb %eax, %eax + add $1, %r8 + jns .Lend + + .align 16, 0x90 +.Ltop: mov (%rcx,%r8,8), %r12 + mov 8(%rcx,%r8,8), %r13 + mov 16(%rcx,%r8,8), %r14 + mov 24(%rcx,%r8,8), %r11 + and %rdi, %r12 + mov (%rdx,%r8,8), %r10 + and %rdi, %r13 + mov 8(%rdx,%r8,8), %rbx + and %rdi, %r14 + mov 16(%rdx,%r8,8), %rbp + and %rdi, %r11 + mov 24(%rdx,%r8,8), %r9 + add %eax, %eax + adc %r12, %r10 + mov %r10, (%rsi,%r8,8) + adc %r13, %rbx + mov %rbx, 8(%rsi,%r8,8) + adc %r14, %rbp + mov %rbp, 16(%rsi,%r8,8) + adc %r11, %r9 + mov %r9, 24(%rsi,%r8,8) + sbb %eax, %eax + add $4, %r8 + js .Ltop + +.Lend: neg %eax + pop %r14 + pop %r13 + pop %r12 + pop %rbp + pop %rbx + + ret + .size __gmpn_cnd_add_n,.-__gmpn_cnd_add_n diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/cnd_sub_n.s b/vere/ext/gmp/gen/x86_64-linux/mpn/cnd_sub_n.s new file mode 100644 index 0000000..596dd8f --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/cnd_sub_n.s @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_cnd_sub_n + .type __gmpn_cnd_sub_n,@function + +__gmpn_cnd_sub_n: + + + + push %rbx + push %rbp + push %r12 + push %r13 + push %r14 + + neg %rdi + sbb %rdi, %rdi + + lea (%rcx,%r8,8), %rcx + lea (%rdx,%r8,8), %rdx + lea (%rsi,%r8,8), %rsi + + mov %r8d, %eax + neg %r8 + and $3, %eax + jz .Ltop + cmp $2, %eax + jc .Lb1 + jz .Lb2 + +.Lb3: mov (%rcx,%r8,8), %r12 + mov 8(%rcx,%r8,8), %r13 + mov 16(%rcx,%r8,8), %r14 + and %rdi, %r12 + mov (%rdx,%r8,8), %r10 + and %rdi, %r13 + mov 8(%rdx,%r8,8), %rbx + and %rdi, %r14 + mov 16(%rdx,%r8,8), %rbp + sub %r12, %r10 + mov %r10, (%rsi,%r8,8) + sbb %r13, %rbx + mov %rbx, 8(%rsi,%r8,8) + sbb %r14, %rbp + mov %rbp, 16(%rsi,%r8,8) + sbb %eax, %eax + add $3, %r8 + js .Ltop + jmp .Lend + +.Lb2: mov (%rcx,%r8,8), %r12 + mov 8(%rcx,%r8,8), %r13 + mov (%rdx,%r8,8), %r10 + and %rdi, %r12 + mov 8(%rdx,%r8,8), %rbx + and %rdi, %r13 + sub %r12, %r10 + mov %r10, (%rsi,%r8,8) + sbb %r13, %rbx + mov %rbx, 8(%rsi,%r8,8) + sbb %eax, %eax + add $2, %r8 + js .Ltop + jmp .Lend + +.Lb1: mov (%rcx,%r8,8), %r12 + mov (%rdx,%r8,8), %r10 + and %rdi, %r12 + sub %r12, %r10 + mov %r10, (%rsi,%r8,8) + sbb %eax, %eax + add $1, %r8 + jns .Lend + + .align 16, 0x90 +.Ltop: mov (%rcx,%r8,8), %r12 + mov 8(%rcx,%r8,8), %r13 + mov 16(%rcx,%r8,8), %r14 + mov 24(%rcx,%r8,8), %r11 + and %rdi, %r12 + mov (%rdx,%r8,8), %r10 + and %rdi, %r13 + mov 8(%rdx,%r8,8), %rbx + and %rdi, %r14 + mov 16(%rdx,%r8,8), %rbp + and %rdi, %r11 + mov 24(%rdx,%r8,8), %r9 + add %eax, %eax + sbb %r12, %r10 + mov %r10, (%rsi,%r8,8) + sbb %r13, %rbx + mov %rbx, 8(%rsi,%r8,8) + sbb %r14, %rbp + mov %rbp, 16(%rsi,%r8,8) + sbb %r11, %r9 + mov %r9, 24(%rsi,%r8,8) + sbb %eax, %eax + add $4, %r8 + js .Ltop + +.Lend: neg %eax + pop %r14 + pop %r13 + pop %r12 + pop %rbp + pop %rbx + + ret + .size __gmpn_cnd_sub_n,.-__gmpn_cnd_sub_n diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/com.s b/vere/ext/gmp/gen/x86_64-linux/mpn/com.s new file mode 100644 index 0000000..ff14001 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/com.s @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 32, 0x90 + .globl __gmpn_com + .type __gmpn_com,@function + +__gmpn_com: + + + movq (%rsi), %r8 + movl %edx, %eax + leaq (%rsi,%rdx,8), %rsi + leaq (%rdi,%rdx,8), %rdi + negq %rdx + andl $3, %eax + je .Lb00 + cmpl $2, %eax + jc .Lb01 + je .Lb10 + +.Lb11: notq %r8 + movq %r8, (%rdi,%rdx,8) + decq %rdx + jmp .Le11 +.Lb10: addq $-2, %rdx + jmp .Le10 + .byte 0x90,0x90,0x90,0x90,0x90,0x90 +.Lb01: notq %r8 + movq %r8, (%rdi,%rdx,8) + incq %rdx + jz .Lret + +.Loop: movq (%rsi,%rdx,8), %r8 +.Lb00: movq 8(%rsi,%rdx,8), %r9 + notq %r8 + notq %r9 + movq %r8, (%rdi,%rdx,8) + movq %r9, 8(%rdi,%rdx,8) +.Le11: movq 16(%rsi,%rdx,8), %r8 +.Le10: movq 24(%rsi,%rdx,8), %r9 + notq %r8 + notq %r9 + movq %r8, 16(%rdi,%rdx,8) + movq %r9, 24(%rdi,%rdx,8) + addq $4, %rdx + jnc .Loop +.Lret: + ret + .size __gmpn_com,.-__gmpn_com diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/copyd.s b/vere/ext/gmp/gen/x86_64-linux/mpn/copyd.s new file mode 100644 index 0000000..f375481 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/copyd.s @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 64, 0x90 + .globl __gmpn_copyd + .type __gmpn_copyd,@function + +__gmpn_copyd: + + lea -8(%rsi,%rdx,8), %rsi + lea (%rdi,%rdx,8), %rdi + sub $4, %rdx + jc .Lend + nop + +.Ltop: mov (%rsi), %rax + mov -8(%rsi), %r9 + lea -32(%rdi), %rdi + mov -16(%rsi), %r10 + mov -24(%rsi), %r11 + lea -32(%rsi), %rsi + mov %rax, 24(%rdi) + mov %r9, 16(%rdi) + sub $4, %rdx + mov %r10, 8(%rdi) + mov %r11, (%rdi) + jnc .Ltop + +.Lend: shr %edx + jnc 1f + mov (%rsi), %rax + mov %rax, -8(%rdi) + lea -8(%rdi), %rdi + lea -8(%rsi), %rsi +1: shr %edx + jnc 1f + mov (%rsi), %rax + mov -8(%rsi), %r9 + mov %rax, -8(%rdi) + mov %r9, -16(%rdi) +1: ret + .size __gmpn_copyd,.-__gmpn_copyd diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/copyi.s b/vere/ext/gmp/gen/x86_64-linux/mpn/copyi.s new file mode 100644 index 0000000..dc746b2 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/copyi.s @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 64, 0x90 + .byte 0,0,0,0,0,0 + .globl __gmpn_copyi + .type __gmpn_copyi,@function + +__gmpn_copyi: + + lea -8(%rdi), %rdi + sub $4, %rdx + jc .Lend + +.Ltop: mov (%rsi), %rax + mov 8(%rsi), %r9 + lea 32(%rdi), %rdi + mov 16(%rsi), %r10 + mov 24(%rsi), %r11 + lea 32(%rsi), %rsi + mov %rax, -24(%rdi) + mov %r9, -16(%rdi) + sub $4, %rdx + mov %r10, -8(%rdi) + mov %r11, (%rdi) + jnc .Ltop + +.Lend: shr %edx + jnc 1f + mov (%rsi), %rax + mov %rax, 8(%rdi) + lea 8(%rdi), %rdi + lea 8(%rsi), %rsi +1: shr %edx + jnc 1f + mov (%rsi), %rax + mov 8(%rsi), %r9 + mov %rax, 8(%rdi) + mov %r9, 16(%rdi) +1: ret + .size __gmpn_copyi,.-__gmpn_copyi diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/div_qr_1n_pi1.s b/vere/ext/gmp/gen/x86_64-linux/mpn/div_qr_1n_pi1.s new file mode 100644 index 0000000..fd8ce8e --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/div_qr_1n_pi1.s @@ -0,0 +1,261 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_div_qr_1n_pi1 + .type __gmpn_div_qr_1n_pi1,@function + +__gmpn_div_qr_1n_pi1: + + + + + dec %rdx + jnz .Lfirst + + + + lea 1(%rcx), %r10 + mov %rcx, %rax + mul %r9 + mov (%rsi), %r11 + add %r11, %rax + adc %r10, %rdx + mov %rdx, %r10 + imul %r8, %rdx + sub %rdx, %r11 + cmp %r11, %rax + lea (%r11, %r8), %rax + cmovnc %r11, %rax + sbb $0, %r10 + cmp %r8, %rax + jc .Lsingle_div_done + sub %r8, %rax + add $1, %r10 +.Lsingle_div_done: + mov %r10, (%rdi) + + ret +.Lfirst: + + push %r15 + push %r14 + push %r13 + push %r12 + push %rbx + push %rbp + + mov %r8, %rbp + imul %r9, %rbp + neg %rbp + mov %rbp, %rbx + sub %r8, %rbx + + + push %r8 + mov %rdx, %r8 + + mov %r9, %rax + mul %rcx + mov %rax, %r13 + add %rcx, %rdx + mov %rdx, %r10 + + mov %rbp, %rax + mul %rcx + mov -8(%rsi, %r8, 8), %r11 + mov (%rsi, %r8, 8), %rcx + mov %r10, (%rdi, %r8, 8) + add %rax, %r11 + adc %rdx, %rcx + sbb %r12, %r12 + dec %r8 + mov %rcx, %rax + jz .Lfinal + mov $0, %r14d + + .align 16, 0x90 + + + + +.Lloop: + + + cmovc %r9, %r14 + mov %r12, %r15 + neg %r15 + mul %r9 + add %rdx, %r14 + adc $0, %r15 + add %r13, %r14 + mov %rax, %r13 + mov %rbp, %rax + lea (%rbx, %r11), %r10 + adc $0, %r15 + + + mul %rcx + and %rbp, %r12 + add %r12, %r11 + cmovnc %r11, %r10 + + + adc %rcx, %r14 + mov -8(%rsi, %r8, 8), %r11 + adc %r15, 8(%rdi, %r8, 8) + jc .Lq_incr +.Lq_incr_done: + add %rax, %r11 + mov %r10, %rax + adc %rdx, %rax + mov %r14, (%rdi, %r8, 8) + mov $0, %r14d + sbb %r12, %r12 + dec %r8 + mov %rax, %rcx + jnz .Lloop + +.Lfinal: + pop %r8 + + mov %r12, %r14 + and %r8, %r12 + sub %r12, %rax + neg %r14 + + mov %rax, %rcx + sub %r8, %rax + cmovc %rcx, %rax + sbb $-1, %r14 + + lea 1(%rax), %r10 + mul %r9 + add %r11, %rax + adc %r10, %rdx + mov %rdx, %r10 + imul %r8, %rdx + sub %rdx, %r11 + cmp %r11, %rax + lea (%r11, %r8), %rax + cmovnc %r11, %rax + sbb $0, %r10 + cmp %r8, %rax + jc .Ldiv_done + sub %r8, %rax + add $1, %r10 +.Ldiv_done: + add %r10, %r13 + mov %r13, (%rdi) + adc %r14, 8(%rdi) + jnc .Ldone +.Lfinal_q_incr: + addq $1, 16(%rdi) + lea 8(%rdi), %rdi + jc .Lfinal_q_incr + +.Ldone: + pop %rbp + pop %rbx + pop %r12 + pop %r13 + pop %r14 + pop %r15 + + ret + +.Lq_incr: + + lea 16(%rdi, %r8, 8), %rcx +.Lq_incr_loop: + addq $1, (%rcx) + jnc .Lq_incr_done + lea 8(%rcx), %rcx + jmp .Lq_incr_loop + .size __gmpn_div_qr_1n_pi1,.-__gmpn_div_qr_1n_pi1 diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/div_qr_2n_pi1.s b/vere/ext/gmp/gen/x86_64-linux/mpn/div_qr_2n_pi1.s new file mode 100644 index 0000000..67618f7 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/div_qr_2n_pi1.s @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_div_qr_2n_pi1 + .type __gmpn_div_qr_2n_pi1,@function + +__gmpn_div_qr_2n_pi1: + + + + + + mov 8(%rsp), %r10 + mov %rdx, %r11 + push %r15 + push %r14 + push %r13 + push %r12 + push %rbx + + mov -16(%r11, %rcx, 8), %r12 + mov -8(%r11, %rcx, 8), %rbx + + mov %r12, %r14 + mov %rbx, %r13 + sub %r9, %r14 + sbb %r8, %r13 + cmovnc %r14, %r12 + cmovnc %r13, %rbx + + sbb %rax, %rax + inc %rax + push %rax + lea -2(%rcx), %rcx + mov %r8, %r15 + neg %r15 + + jmp .Lnext + + .align 16, 0x90 +.Lloop: + + + + mov %r10, %rax + mul %rbx + mov %r12, %r14 + add %rax, %r14 + adc %rbx, %rdx + mov %rdx, %r13 + imul %r15, %rdx + mov %r9, %rax + lea (%rdx, %r12), %rbx + mul %r13 + mov (%r11, %rcx, 8), %r12 + sub %r9, %r12 + sbb %r8, %rbx + sub %rax, %r12 + sbb %rdx, %rbx + xor %eax, %eax + xor %edx, %edx + cmp %r14, %rbx + cmovnc %r9, %rax + cmovnc %r8, %rdx + adc $0, %r13 + nop + add %rax, %r12 + adc %rdx, %rbx + cmp %r8, %rbx + jae .Lfix +.Lbck: + mov %r13, (%rdi, %rcx, 8) +.Lnext: + sub $1, %rcx + jnc .Lloop +.Lend: + mov %rbx, 8(%rsi) + mov %r12, (%rsi) + + + pop %rax + + pop %rbx + pop %r12 + pop %r13 + pop %r14 + pop %r15 + + ret + +.Lfix: + seta %dl + cmp %r9, %r12 + setae %al + orb %dl, %al + je .Lbck + inc %r13 + sub %r9, %r12 + sbb %r8, %rbx + jmp .Lbck + .size __gmpn_div_qr_2n_pi1,.-__gmpn_div_qr_2n_pi1 diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/div_qr_2u_pi1.s b/vere/ext/gmp/gen/x86_64-linux/mpn/div_qr_2u_pi1.s new file mode 100644 index 0000000..a11a847 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/div_qr_2u_pi1.s @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + + .globl __gmpn_div_qr_2u_pi1 + .type __gmpn_div_qr_2u_pi1,@function + +__gmpn_div_qr_2u_pi1: + + mov 0+16(%rsp), %r10 + mov %rdx, %r11 + push %r15 + push %r14 + push %r13 + push %r12 + push %rbx + push %rbp + push %rsi + + lea -2(%rcx), %rbp + mov %r8, %r15 + neg %r15 + + + movl 56+8(%rsp), %ecx + + + + xor %ebx, %ebx + mov 8(%r11, %rbp, 8), %r12 + shld %cl, %r12, %rbx + + + mov %r10, %rax + mul %rbx + mov (%r11, %rbp, 8), %rsi + shld %cl, %rsi, %r12 + mov %r12, %r14 + add %rax, %r14 + adc %rbx, %rdx + mov %rdx, %r13 + imul %r15, %rdx + mov %r9, %rax + lea (%rdx, %r12), %rbx + mul %r13 + mov %rsi, %r12 + shl %cl, %r12 + sub %r9, %r12 + sbb %r8, %rbx + sub %rax, %r12 + sbb %rdx, %rbx + xor %eax, %eax + xor %edx, %edx + cmp %r14, %rbx + cmovnc %r9, %rax + cmovnc %r8, %rdx + adc $0, %r13 + nop + add %rax, %r12 + adc %rdx, %rbx + cmp %r8, %rbx + jae .Lfix_qh +.Lbck_qh: + push %r13 + + jmp .Lnext + + .align 16, 0x90 +.Lloop: + + + + mov %r10, %rax + mul %rbx + mov (%r11, %rbp, 8), %rsi + xor %r13d, %r13d + shld %cl, %rsi, %r13 + or %r13, %r12 + mov %r12, %r14 + add %rax, %r14 + adc %rbx, %rdx + mov %rdx, %r13 + imul %r15, %rdx + mov %r9, %rax + lea (%rdx, %r12), %rbx + mul %r13 + mov %rsi, %r12 + shl %cl, %r12 + sub %r9, %r12 + sbb %r8, %rbx + sub %rax, %r12 + sbb %rdx, %rbx + xor %eax, %eax + xor %edx, %edx + cmp %r14, %rbx + cmovnc %r9, %rax + cmovnc %r8, %rdx + adc $0, %r13 + nop + add %rax, %r12 + adc %rdx, %rbx + cmp %r8, %rbx + jae .Lfix +.Lbck: + mov %r13, (%rdi, %rbp, 8) +.Lnext: + sub $1, %rbp + jnc .Lloop +.Lend: + + pop %rax + pop %rsi + shrd %cl, %rbx, %r12 + shr %cl, %rbx + mov %rbx, 8(%rsi) + mov %r12, (%rsi) + + pop %rbp + pop %rbx + pop %r12 + pop %r13 + pop %r14 + pop %r15 + ret + +.Lfix: + seta %dl + cmp %r9, %r12 + setae %al + orb %dl, %al + je .Lbck + inc %r13 + sub %r9, %r12 + sbb %r8, %rbx + jmp .Lbck + + +.Lfix_qh: + seta %dl + cmp %r9, %r12 + setae %al + orb %dl, %al + je .Lbck_qh + inc %r13 + sub %r9, %r12 + sbb %r8, %rbx + jmp .Lbck_qh + .size __gmpn_div_qr_2u_pi1,.-__gmpn_div_qr_2u_pi1 diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/dive_1.s b/vere/ext/gmp/gen/x86_64-linux/mpn/dive_1.s new file mode 100644 index 0000000..23a35c8 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/dive_1.s @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_divexact_1 + .type __gmpn_divexact_1,@function + +__gmpn_divexact_1: + + + push %rbx + + mov %rcx, %rax + xor %ecx, %ecx + mov %rdx, %r8 + + bt $0, %eax + jnc .Levn + +.Lodd: mov %rax, %rbx + shr %eax + and $127, %eax + + mov __gmp_binvert_limb_table@GOTPCREL(%rip), %rdx + + + + movzbl (%rdx,%rax), %eax + + mov %rbx, %r11 + + lea (%rax,%rax), %edx + imul %eax, %eax + imul %ebx, %eax + sub %eax, %edx + + lea (%rdx,%rdx), %eax + imul %edx, %edx + imul %ebx, %edx + sub %edx, %eax + + lea (%rax,%rax), %r10 + imul %rax, %rax + imul %rbx, %rax + sub %rax, %r10 + + lea (%rsi,%r8,8), %rsi + lea -8(%rdi,%r8,8), %rdi + neg %r8 + + mov (%rsi,%r8,8), %rax + + inc %r8 + jz .Lone + + mov (%rsi,%r8,8), %rdx + + shrd %cl, %rdx, %rax + + xor %ebx, %ebx + jmp .Lent + +.Levn: bsf %rax, %rcx + shr %cl, %rax + jmp .Lodd + + .align 8, 0x90 +.Ltop: + + + + + + + + + + + mul %r11 + mov -8(%rsi,%r8,8), %rax + mov (%rsi,%r8,8), %r9 + shrd %cl, %r9, %rax + nop + sub %rbx, %rax + setc %bl + sub %rdx, %rax + adc $0, %rbx +.Lent: imul %r10, %rax + mov %rax, (%rdi,%r8,8) + inc %r8 + jnz .Ltop + + mul %r11 + mov -8(%rsi), %rax + shr %cl, %rax + sub %rbx, %rax + sub %rdx, %rax + imul %r10, %rax + mov %rax, (%rdi) + pop %rbx + + ret + +.Lone: shr %cl, %rax + imul %r10, %rax + mov %rax, (%rdi) + pop %rbx + + ret + + .size __gmpn_divexact_1,.-__gmpn_divexact_1 diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/divrem_1.s b/vere/ext/gmp/gen/x86_64-linux/mpn/divrem_1.s new file mode 100644 index 0000000..e689bd2 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/divrem_1.s @@ -0,0 +1,335 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_preinv_divrem_1 + .type __gmpn_preinv_divrem_1,@function + +__gmpn_preinv_divrem_1: + + + + + xor %eax, %eax + push %r13 + push %r12 + push %rbp + push %rbx + + mov %rsi, %r12 + mov %rcx, %rbx + add %rsi, %rcx + mov %rdx, %rsi + + lea -8(%rdi,%rcx,8), %rdi + + test %r8, %r8 + js .Lnent + + mov 40(%rsp), %cl + shl %cl, %r8 + jmp .Luent + .size __gmpn_preinv_divrem_1,.-__gmpn_preinv_divrem_1 + + .align 16, 0x90 + .globl __gmpn_divrem_1 + .type __gmpn_divrem_1,@function + +__gmpn_divrem_1: + + + + xor %eax, %eax + push %r13 + push %r12 + push %rbp + push %rbx + + mov %rsi, %r12 + mov %rcx, %rbx + add %rsi, %rcx + mov %rdx, %rsi + je .Lret + + lea -8(%rdi,%rcx,8), %rdi + xor %ebp, %ebp + + test %r8, %r8 + jns .Lunnormalized + +.Lnormalized: + test %rbx, %rbx + je .L8 + mov -8(%rsi,%rbx,8), %rbp + dec %rbx + mov %rbp, %rax + sub %r8, %rbp + cmovc %rax, %rbp + sbb %eax, %eax + inc %eax + mov %rax, (%rdi) + lea -8(%rdi), %rdi +.L8: + push %rdi + push %rsi + push %r8 + mov %r8, %rdi + + + + call __gmpn_invert_limb@PLT + + + pop %r8 + pop %rsi + pop %rdi + + mov %rax, %r9 + mov %rbp, %rax + jmp .Lnent + + .align 16, 0x90 +.Lntop:mov (%rsi,%rbx,8), %r10 + mul %r9 + add %r10, %rax + adc %rbp, %rdx + mov %rax, %rbp + mov %rdx, %r13 + imul %r8, %rdx + sub %rdx, %r10 + mov %r8, %rax + add %r10, %rax + cmp %rbp, %r10 + cmovc %r10, %rax + adc $-1, %r13 + cmp %r8, %rax + jae .Lnfx +.Lnok: mov %r13, (%rdi) + sub $8, %rdi +.Lnent:lea 1(%rax), %rbp + dec %rbx + jns .Lntop + + xor %ecx, %ecx + jmp .Lfrac + +.Lnfx: sub %r8, %rax + inc %r13 + jmp .Lnok + +.Lunnormalized: + test %rbx, %rbx + je .L44 + mov -8(%rsi,%rbx,8), %rax + cmp %r8, %rax + jae .L44 + mov %rbp, (%rdi) + mov %rax, %rbp + lea -8(%rdi), %rdi + je .Lret + dec %rbx +.L44: + bsr %r8, %rcx + not %ecx + shl %cl, %r8 + shl %cl, %rbp + + push %rcx + push %rdi + push %rsi + push %r8 + sub $8, %rsp + mov %r8, %rdi + + + + call __gmpn_invert_limb@PLT + + add $8, %rsp + + pop %r8 + pop %rsi + pop %rdi + pop %rcx + + mov %rax, %r9 + mov %rbp, %rax + test %rbx, %rbx + je .Lfrac + +.Luent:dec %rbx + mov (%rsi,%rbx,8), %rbp + neg %ecx + shr %cl, %rbp + neg %ecx + or %rbp, %rax + jmp .Lent + + .align 16, 0x90 +.Lutop:mov (%rsi,%rbx,8), %r10 + shl %cl, %rbp + neg %ecx + shr %cl, %r10 + neg %ecx + or %r10, %rbp + mul %r9 + add %rbp, %rax + adc %r11, %rdx + mov %rax, %r11 + mov %rdx, %r13 + imul %r8, %rdx + sub %rdx, %rbp + mov %r8, %rax + add %rbp, %rax + cmp %r11, %rbp + cmovc %rbp, %rax + adc $-1, %r13 + cmp %r8, %rax + jae .Lufx +.Luok: mov %r13, (%rdi) + sub $8, %rdi +.Lent: mov (%rsi,%rbx,8), %rbp + dec %rbx + lea 1(%rax), %r11 + jns .Lutop + +.Luend:shl %cl, %rbp + mul %r9 + add %rbp, %rax + adc %r11, %rdx + mov %rax, %r11 + mov %rdx, %r13 + imul %r8, %rdx + sub %rdx, %rbp + mov %r8, %rax + add %rbp, %rax + cmp %r11, %rbp + cmovc %rbp, %rax + adc $-1, %r13 + cmp %r8, %rax + jae .Lefx +.Leok: mov %r13, (%rdi) + sub $8, %rdi + jmp .Lfrac + +.Lufx: sub %r8, %rax + inc %r13 + jmp .Luok +.Lefx: sub %r8, %rax + inc %r13 + jmp .Leok + +.Lfrac:mov %r8, %rbp + neg %rbp + jmp .Lfent + + .align 16, 0x90 +.Lftop:mul %r9 + add %r11, %rdx + mov %rax, %r11 + mov %rdx, %r13 + imul %rbp, %rdx + mov %r8, %rax + add %rdx, %rax + cmp %r11, %rdx + cmovc %rdx, %rax + adc $-1, %r13 + mov %r13, (%rdi) + sub $8, %rdi +.Lfent:lea 1(%rax), %r11 + dec %r12 + jns .Lftop + + shr %cl, %rax +.Lret: pop %rbx + pop %rbp + pop %r12 + pop %r13 + + ret + .size __gmpn_divrem_1,.-__gmpn_divrem_1 diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/divrem_2.s b/vere/ext/gmp/gen/x86_64-linux/mpn/divrem_2.s new file mode 100644 index 0000000..b1c0d5b --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/divrem_2.s @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_divrem_2 + .type __gmpn_divrem_2,@function + +__gmpn_divrem_2: + + + + push %r15 + push %r14 + push %r13 + push %r12 + lea -24(%rdx,%rcx,8), %r12 + mov %rsi, %r13 + push %rbp + mov %rdi, %rbp + push %rbx + mov 8(%r8), %r11 + mov 16(%r12), %rbx + mov (%r8), %r8 + mov 8(%r12), %r10 + + xor %r15d, %r15d + cmp %rbx, %r11 + ja .L2 + setb %dl + cmp %r10, %r8 + setbe %al + orb %al, %dl + je .L2 + inc %r15d + sub %r8, %r10 + sbb %r11, %rbx +.L2: + lea -3(%rcx,%r13), %r14 + test %r14, %r14 + js .Lend + + push %r8 + push %r10 + push %r11 + mov %r11, %rdi + + + + call __gmpn_invert_limb@PLT + + + pop %r11 + pop %r10 + pop %r8 + + mov %r11, %rdx + mov %rax, %rdi + imul %rax, %rdx + mov %rdx, %r9 + mul %r8 + xor %ecx, %ecx + add %r8, %r9 + adc $-1, %rcx + add %rdx, %r9 + adc $0, %rcx + js 2f +1: dec %rdi + sub %r11, %r9 + sbb $0, %rcx + jns 1b +2: + + lea (%rbp,%r14,8), %rbp + mov %r11, %rsi + neg %rsi + + + + + .align 16, 0x90 +.Ltop: mov %rdi, %rax + mul %rbx + mov %r10, %rcx + add %rax, %rcx + adc %rbx, %rdx + mov %rdx, %r9 + imul %rsi, %rdx + mov %r8, %rax + lea (%rdx, %r10), %rbx + xor %r10d, %r10d + mul %r9 + cmp %r14, %r13 + jg .L19 + mov (%r12), %r10 + sub $8, %r12 +.L19: sub %r8, %r10 + sbb %r11, %rbx + sub %rax, %r10 + sbb %rdx, %rbx + xor %eax, %eax + xor %edx, %edx + cmp %rcx, %rbx + cmovnc %r8, %rax + cmovnc %r11, %rdx + adc $0, %r9 + nop + add %rax, %r10 + adc %rdx, %rbx + cmp %r11, %rbx + jae .Lfix +.Lbck: mov %r9, (%rbp) + sub $8, %rbp + dec %r14 + jns .Ltop + +.Lend: mov %r10, 8(%r12) + mov %rbx, 16(%r12) + pop %rbx + pop %rbp + pop %r12 + pop %r13 + pop %r14 + mov %r15, %rax + pop %r15 + + ret + +.Lfix: seta %dl + cmp %r8, %r10 + setae %al + orb %dl, %al + je .Lbck + inc %r9 + sub %r8, %r10 + sbb %r11, %rbx + jmp .Lbck + .size __gmpn_divrem_2,.-__gmpn_divrem_2 diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/fib_table.c b/vere/ext/gmp/gen/x86_64-linux/mpn/fib_table.c new file mode 100644 index 0000000..a830475 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/fib_table.c @@ -0,0 +1,107 @@ +/* This file generated by gen-fib.c - DO NOT EDIT. */ + +#include "gmp.h" +#include "gmp-impl.h" + +#if GMP_NUMB_BITS != 64 +Error, error, this data is for 64 bits +#endif + +const mp_limb_t +__gmp_fib_table[FIB_TABLE_LIMIT+2] = { + CNST_LIMB (0x1), /* -1 */ + CNST_LIMB (0x0), /* 0 */ + CNST_LIMB (0x1), /* 1 */ + CNST_LIMB (0x1), /* 2 */ + CNST_LIMB (0x2), /* 3 */ + CNST_LIMB (0x3), /* 4 */ + CNST_LIMB (0x5), /* 5 */ + CNST_LIMB (0x8), /* 6 */ + CNST_LIMB (0xd), /* 7 */ + CNST_LIMB (0x15), /* 8 */ + CNST_LIMB (0x22), /* 9 */ + CNST_LIMB (0x37), /* 10 */ + CNST_LIMB (0x59), /* 11 */ + CNST_LIMB (0x90), /* 12 */ + CNST_LIMB (0xe9), /* 13 */ + CNST_LIMB (0x179), /* 14 */ + CNST_LIMB (0x262), /* 15 */ + CNST_LIMB (0x3db), /* 16 */ + CNST_LIMB (0x63d), /* 17 */ + CNST_LIMB (0xa18), /* 18 */ + CNST_LIMB (0x1055), /* 19 */ + CNST_LIMB (0x1a6d), /* 20 */ + CNST_LIMB (0x2ac2), /* 21 */ + CNST_LIMB (0x452f), /* 22 */ + CNST_LIMB (0x6ff1), /* 23 */ + CNST_LIMB (0xb520), /* 24 */ + CNST_LIMB (0x12511), /* 25 */ + CNST_LIMB (0x1da31), /* 26 */ + CNST_LIMB (0x2ff42), /* 27 */ + CNST_LIMB (0x4d973), /* 28 */ + CNST_LIMB (0x7d8b5), /* 29 */ + CNST_LIMB (0xcb228), /* 30 */ + CNST_LIMB (0x148add), /* 31 */ + CNST_LIMB (0x213d05), /* 32 */ + CNST_LIMB (0x35c7e2), /* 33 */ + CNST_LIMB (0x5704e7), /* 34 */ + CNST_LIMB (0x8cccc9), /* 35 */ + CNST_LIMB (0xe3d1b0), /* 36 */ + CNST_LIMB (0x1709e79), /* 37 */ + CNST_LIMB (0x2547029), /* 38 */ + CNST_LIMB (0x3c50ea2), /* 39 */ + CNST_LIMB (0x6197ecb), /* 40 */ + CNST_LIMB (0x9de8d6d), /* 41 */ + CNST_LIMB (0xff80c38), /* 42 */ + CNST_LIMB (0x19d699a5), /* 43 */ + CNST_LIMB (0x29cea5dd), /* 44 */ + CNST_LIMB (0x43a53f82), /* 45 */ + CNST_LIMB (0x6d73e55f), /* 46 */ + CNST_LIMB (0xb11924e1), /* 47 */ + CNST_LIMB (0x11e8d0a40), /* 48 */ + CNST_LIMB (0x1cfa62f21), /* 49 */ + CNST_LIMB (0x2ee333961), /* 50 */ + CNST_LIMB (0x4bdd96882), /* 51 */ + CNST_LIMB (0x7ac0ca1e3), /* 52 */ + CNST_LIMB (0xc69e60a65), /* 53 */ + CNST_LIMB (0x1415f2ac48), /* 54 */ + CNST_LIMB (0x207fd8b6ad), /* 55 */ + CNST_LIMB (0x3495cb62f5), /* 56 */ + CNST_LIMB (0x5515a419a2), /* 57 */ + CNST_LIMB (0x89ab6f7c97), /* 58 */ + CNST_LIMB (0xdec1139639), /* 59 */ + CNST_LIMB (0x1686c8312d0), /* 60 */ + CNST_LIMB (0x2472d96a909), /* 61 */ + CNST_LIMB (0x3af9a19bbd9), /* 62 */ + CNST_LIMB (0x5f6c7b064e2), /* 63 */ + CNST_LIMB (0x9a661ca20bb), /* 64 */ + CNST_LIMB (0xf9d297a859d), /* 65 */ + CNST_LIMB (0x19438b44a658), /* 66 */ + CNST_LIMB (0x28e0b4bf2bf5), /* 67 */ + CNST_LIMB (0x42244003d24d), /* 68 */ + CNST_LIMB (0x6b04f4c2fe42), /* 69 */ + CNST_LIMB (0xad2934c6d08f), /* 70 */ + CNST_LIMB (0x1182e2989ced1), /* 71 */ + CNST_LIMB (0x1c5575e509f60), /* 72 */ + CNST_LIMB (0x2dd8587da6e31), /* 73 */ + CNST_LIMB (0x4a2dce62b0d91), /* 74 */ + CNST_LIMB (0x780626e057bc2), /* 75 */ + CNST_LIMB (0xc233f54308953), /* 76 */ + CNST_LIMB (0x13a3a1c2360515), /* 77 */ + CNST_LIMB (0x1fc6e116668e68), /* 78 */ + CNST_LIMB (0x336a82d89c937d), /* 79 */ + CNST_LIMB (0x533163ef0321e5), /* 80 */ + CNST_LIMB (0x869be6c79fb562), /* 81 */ + CNST_LIMB (0xd9cd4ab6a2d747), /* 82 */ + CNST_LIMB (0x16069317e428ca9), /* 83 */ + CNST_LIMB (0x23a367c34e563f0), /* 84 */ + CNST_LIMB (0x39a9fadb327f099), /* 85 */ + CNST_LIMB (0x5d4d629e80d5489), /* 86 */ + CNST_LIMB (0x96f75d79b354522), /* 87 */ + CNST_LIMB (0xf444c01834299ab), /* 88 */ + CNST_LIMB (0x18b3c1d91e77decd), /* 89 */ + CNST_LIMB (0x27f80ddaa1ba7878), /* 90 */ + CNST_LIMB (0x40abcfb3c0325745), /* 91 */ + CNST_LIMB (0x68a3dd8e61eccfbd), /* 92 */ + CNST_LIMB (0xa94fad42221f2702), /* 93 */ +}; diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/gcd_11.s b/vere/ext/gmp/gen/x86_64-linux/mpn/gcd_11.s new file mode 100644 index 0000000..cf35d25 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/gcd_11.s @@ -0,0 +1,256 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .section .rodata + .align 64, 0x90 +ctz_table: + + .byte 7 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 3 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 4 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 3 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 5 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 3 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 4 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 3 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 6 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 3 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 4 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 3 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 5 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 3 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 4 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 3 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + + .size ctz_table,.-ctz_table + + + + + + + + + .text + .align 64, 0x90 + .globl __gmpn_gcd_11 + .type __gmpn_gcd_11,@function + +__gmpn_gcd_11: + + + mov ctz_table@GOTPCREL(%rip), %r8 + + + jmp .Lent + + .align 16, 0x90 +.Ltop: cmovc %rdx, %rdi + cmovc %rax, %rsi +.Lmid: and $127, %edx + movzbl (%r8,%rdx), %ecx + jz .Lshift_alot + shr %cl, %rdi +.Lent: mov %rdi, %rax + mov %rsi, %rdx + sub %rdi, %rdx + sub %rsi, %rdi + jnz .Ltop + +.Lend: + + + ret + +.Lshift_alot: + shr $7, %rdi + mov %rdi, %rdx + jmp .Lmid + .size __gmpn_gcd_11,.-__gmpn_gcd_11 diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/gcd_22.s b/vere/ext/gmp/gen/x86_64-linux/mpn/gcd_22.s new file mode 100644 index 0000000..60f4c71 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/gcd_22.s @@ -0,0 +1,434 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .section .rodata + .align 64, 0x90 +ctz_table: + + .byte 8 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 3 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 4 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 3 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 5 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 3 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 4 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 3 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 6 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 3 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 4 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 3 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 5 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 3 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 4 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 3 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 7 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 3 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 4 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 3 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 5 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 3 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 4 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 3 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 6 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 3 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 4 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 3 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 5 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 3 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 4 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + .byte 3 + .byte 0 + .byte 1 + .byte 0 + .byte 2 + .byte 0 + .byte 1 + .byte 0 + + .size ctz_table,.-ctz_table + + + + + + + + + + + + + + + + + + .text + .align 64, 0x90 + .globl __gmpn_gcd_22 + .type __gmpn_gcd_22,@function + +__gmpn_gcd_22: + + + mov %rcx, %rax + + mov ctz_table@GOTPCREL(%rip), %r10 + + + + .align 16, 0x90 +.Ltop: mov %rax, %rcx + sub %rsi, %rcx + jz .Llowz + mov %rdx, %r11 + sbb %rdi, %r11 + + mov %rsi, %r8 + mov %rdi, %r9 + + sub %rax, %rsi + sbb %rdx, %rdi + +.Lbck: cmovc %rcx, %rsi + cmovc %r11, %rdi + cmovc %r8, %rax + cmovc %r9, %rdx + + and $255, %ecx + movzbl (%r10,%rcx), %ecx + jz .Lcount_better + +.Lshr: shr %cl, %rsi + mov %rdi, %r11 + shr %cl, %rdi + neg %rcx + shl %cl, %r11 + or %r11, %rsi + + test %rdx, %rdx + jnz .Ltop + test %rdi, %rdi + jnz .Ltop + +.Lgcd_11: + mov %rax, %rdi + + jmp __gmpn_gcd_11@PLT + + +.Lcount_better: + rep;bsf %rsi, %rcx + jmp .Lshr + +.Llowz: + + + mov %rdx, %rcx + sub %rdi, %rcx + je .Lend + + xor %r11, %r11 + mov %rsi, %r8 + mov %rdi, %r9 + mov %rdi, %rsi + xor %rdi, %rdi + sub %rdx, %rsi + jmp .Lbck + +.Lend: + + + ret + .size __gmpn_gcd_22,.-__gmpn_gcd_22 diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/hamdist.s b/vere/ext/gmp/gen/x86_64-linux/mpn/hamdist.s new file mode 100644 index 0000000..1ab3a8c --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/hamdist.s @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 32, 0x90 + .globl __gmpn_hamdist + .type __gmpn_hamdist,@function + +__gmpn_hamdist: + + + push %rbx + mov $0x5555555555555555, %r10 + push %rbp + mov $0x3333333333333333, %r11 + push %r12 + lea (%rdi,%rdx,8), %rdi + mov $0x0f0f0f0f0f0f0f0f, %rcx + lea (%rsi,%rdx,8), %rsi + neg %rdx + mov $0x0101010101010101, %r12 + xor %eax, %eax + test $1, %dl + jz .Ltop + + mov (%rdi,%rdx,8), %r8 + xor (%rsi,%rdx,8), %r8 + + mov %r8, %r9 + shr %r8 + and %r10, %r8 + sub %r8, %r9 + + mov %r9, %r8 + shr $2, %r9 + and %r11, %r8 + and %r11, %r9 + add %r8, %r9 + + dec %rdx + jmp .Lmid + + .align 16, 0x90 +.Ltop: mov (%rdi,%rdx,8), %r8 + mov 8(%rdi,%rdx,8), %rbx + xor (%rsi,%rdx,8), %r8 + xor 8(%rsi,%rdx,8), %rbx + + mov %r8, %r9 + mov %rbx, %rbp + shr %r8 + shr %rbx + and %r10, %r8 + and %r10, %rbx + sub %r8, %r9 + sub %rbx, %rbp + + mov %r9, %r8 + mov %rbp, %rbx + shr $2, %r9 + shr $2, %rbp + and %r11, %r8 + and %r11, %r9 + and %r11, %rbx + and %r11, %rbp + add %r8, %r9 + add %rbx, %rbp + + add %rbp, %r9 +.Lmid: mov %r9, %r8 + shr $4, %r9 + and %rcx, %r8 + and %rcx, %r9 + add %r8, %r9 + + imul %r12, %r9 + shr $56, %r9 + + add %r9, %rax + add $2, %rdx + jnc .Ltop + +.Lend: + pop %r12 + pop %rbp + pop %rbx + + ret + .size __gmpn_hamdist,.-__gmpn_hamdist diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/invert_limb.s b/vere/ext/gmp/gen/x86_64-linux/mpn/invert_limb.s new file mode 100644 index 0000000..d7352e7 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/invert_limb.s @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.hidden __gmpn_invert_limb_table + + + .text + .align 16, 0x90 + .globl __gmpn_invert_limb + .type __gmpn_invert_limb,@function + +__gmpn_invert_limb: + + + mov %rdi, %rax + shr $55, %rax + + lea -512+__gmpn_invert_limb_table(%rip), %r8 + + movzwl (%r8,%rax,2), %ecx + + + mov %rdi, %rsi + mov %ecx, %eax + imul %ecx, %ecx + shr $24, %rsi + inc %rsi + imul %rsi, %rcx + shr $40, %rcx + sal $11, %eax + dec %eax + sub %ecx, %eax + + + mov $0x1000000000000000, %rcx + imul %rax, %rsi + sub %rsi, %rcx + imul %rax, %rcx + sal $13, %rax + shr $47, %rcx + add %rax, %rcx + + + mov %rdi, %rsi + shr %rsi + sbb %rax, %rax + sub %rax, %rsi + imul %rcx, %rsi + and %rcx, %rax + shr %rax + sub %rsi, %rax + mul %rcx + sal $31, %rcx + shr %rdx + add %rdx, %rcx + + mov %rdi, %rax + mul %rcx + add %rdi, %rax + mov %rcx, %rax + adc %rdi, %rdx + sub %rdx, %rax + + + ret + .size __gmpn_invert_limb,.-__gmpn_invert_limb + diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/invert_limb_table.s b/vere/ext/gmp/gen/x86_64-linux/mpn/invert_limb_table.s new file mode 100644 index 0000000..a990458 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/invert_limb_table.s @@ -0,0 +1,313 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.hidden __gmpn_invert_limb_table + + + + + .section .rodata + .align 2, 0x90 + .globl __gmpn_invert_limb_table +__gmpn_invert_limb_table: + .value 2045 + .value 2037 + .value 2029 + .value 2021 + .value 2013 + .value 2005 + .value 1998 + .value 1990 + .value 1983 + .value 1975 + .value 1968 + .value 1960 + .value 1953 + .value 1946 + .value 1938 + .value 1931 + .value 1924 + .value 1917 + .value 1910 + .value 1903 + .value 1896 + .value 1889 + .value 1883 + .value 1876 + .value 1869 + .value 1863 + .value 1856 + .value 1849 + .value 1843 + .value 1836 + .value 1830 + .value 1824 + .value 1817 + .value 1811 + .value 1805 + .value 1799 + .value 1792 + .value 1786 + .value 1780 + .value 1774 + .value 1768 + .value 1762 + .value 1756 + .value 1750 + .value 1745 + .value 1739 + .value 1733 + .value 1727 + .value 1722 + .value 1716 + .value 1710 + .value 1705 + .value 1699 + .value 1694 + .value 1688 + .value 1683 + .value 1677 + .value 1672 + .value 1667 + .value 1661 + .value 1656 + .value 1651 + .value 1646 + .value 1641 + .value 1636 + .value 1630 + .value 1625 + .value 1620 + .value 1615 + .value 1610 + .value 1605 + .value 1600 + .value 1596 + .value 1591 + .value 1586 + .value 1581 + .value 1576 + .value 1572 + .value 1567 + .value 1562 + .value 1558 + .value 1553 + .value 1548 + .value 1544 + .value 1539 + .value 1535 + .value 1530 + .value 1526 + .value 1521 + .value 1517 + .value 1513 + .value 1508 + .value 1504 + .value 1500 + .value 1495 + .value 1491 + .value 1487 + .value 1483 + .value 1478 + .value 1474 + .value 1470 + .value 1466 + .value 1462 + .value 1458 + .value 1454 + .value 1450 + .value 1446 + .value 1442 + .value 1438 + .value 1434 + .value 1430 + .value 1426 + .value 1422 + .value 1418 + .value 1414 + .value 1411 + .value 1407 + .value 1403 + .value 1399 + .value 1396 + .value 1392 + .value 1388 + .value 1384 + .value 1381 + .value 1377 + .value 1374 + .value 1370 + .value 1366 + .value 1363 + .value 1359 + .value 1356 + .value 1352 + .value 1349 + .value 1345 + .value 1342 + .value 1338 + .value 1335 + .value 1332 + .value 1328 + .value 1325 + .value 1322 + .value 1318 + .value 1315 + .value 1312 + .value 1308 + .value 1305 + .value 1302 + .value 1299 + .value 1295 + .value 1292 + .value 1289 + .value 1286 + .value 1283 + .value 1280 + .value 1276 + .value 1273 + .value 1270 + .value 1267 + .value 1264 + .value 1261 + .value 1258 + .value 1255 + .value 1252 + .value 1249 + .value 1246 + .value 1243 + .value 1240 + .value 1237 + .value 1234 + .value 1231 + .value 1228 + .value 1226 + .value 1223 + .value 1220 + .value 1217 + .value 1214 + .value 1211 + .value 1209 + .value 1206 + .value 1203 + .value 1200 + .value 1197 + .value 1195 + .value 1192 + .value 1189 + .value 1187 + .value 1184 + .value 1181 + .value 1179 + .value 1176 + .value 1173 + .value 1171 + .value 1168 + .value 1165 + .value 1163 + .value 1160 + .value 1158 + .value 1155 + .value 1153 + .value 1150 + .value 1148 + .value 1145 + .value 1143 + .value 1140 + .value 1138 + .value 1135 + .value 1133 + .value 1130 + .value 1128 + .value 1125 + .value 1123 + .value 1121 + .value 1118 + .value 1116 + .value 1113 + .value 1111 + .value 1109 + .value 1106 + .value 1104 + .value 1102 + .value 1099 + .value 1097 + .value 1095 + .value 1092 + .value 1090 + .value 1088 + .value 1086 + .value 1083 + .value 1081 + .value 1079 + .value 1077 + .value 1074 + .value 1072 + .value 1070 + .value 1068 + .value 1066 + .value 1064 + .value 1061 + .value 1059 + .value 1057 + .value 1055 + .value 1053 + .value 1051 + .value 1049 + .value 1047 + .value 1044 + .value 1042 + .value 1040 + .value 1038 + .value 1036 + .value 1034 + .value 1032 + .value 1030 + .value 1028 + .value 1026 + .value 1024 + diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/ior_n.s b/vere/ext/gmp/gen/x86_64-linux/mpn/ior_n.s new file mode 100644 index 0000000..6509f28 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/ior_n.s @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 32, 0x90 + .globl __gmpn_ior_n + .type __gmpn_ior_n,@function + +__gmpn_ior_n: + + + mov (%rdx), %r8 + mov %ecx, %eax + lea (%rdx,%rcx,8), %rdx + lea (%rsi,%rcx,8), %rsi + lea (%rdi,%rcx,8), %rdi + neg %rcx + and $3, %eax + je .Lb00 + cmp $2, %eax + jc .Lb01 + je .Lb10 + +.Lb11: or (%rsi,%rcx,8), %r8 + mov %r8, (%rdi,%rcx,8) + dec %rcx + jmp .Le11 +.Lb10: add $-2, %rcx + jmp .Le10 +.Lb01: or (%rsi,%rcx,8), %r8 + mov %r8, (%rdi,%rcx,8) + inc %rcx + jz .Lret + +.Ltop: mov (%rdx,%rcx,8), %r8 +.Lb00: mov 8(%rdx,%rcx,8), %r9 + or (%rsi,%rcx,8), %r8 + or 8(%rsi,%rcx,8), %r9 + nop + mov %r8, (%rdi,%rcx,8) + mov %r9, 8(%rdi,%rcx,8) +.Le11: mov 16(%rdx,%rcx,8), %r8 +.Le10: mov 24(%rdx,%rcx,8), %r9 + or 16(%rsi,%rcx,8), %r8 + or 24(%rsi,%rcx,8), %r9 + mov %r8, 16(%rdi,%rcx,8) + mov %r9, 24(%rdi,%rcx,8) + add $4, %rcx + jnc .Ltop + +.Lret: + ret + .size __gmpn_ior_n,.-__gmpn_ior_n + + + + + diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/iorn_n.s b/vere/ext/gmp/gen/x86_64-linux/mpn/iorn_n.s new file mode 100644 index 0000000..b199ca3 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/iorn_n.s @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 32, 0x90 + .globl __gmpn_iorn_n + .type __gmpn_iorn_n,@function + +__gmpn_iorn_n: + + + mov (%rdx), %r8 + not %r8 + mov %ecx, %eax + lea (%rdx,%rcx,8), %rdx + lea (%rsi,%rcx,8), %rsi + lea (%rdi,%rcx,8), %rdi + neg %rcx + and $3, %eax + je .Lb00 + cmp $2, %eax + jc .Lb01 + je .Lb10 + +.Lb11: or (%rsi,%rcx,8), %r8 + mov %r8, (%rdi,%rcx,8) + dec %rcx + jmp .Le11 +.Lb10: add $-2, %rcx + jmp .Le10 + .byte 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90 +.Lb01: or (%rsi,%rcx,8), %r8 + mov %r8, (%rdi,%rcx,8) + inc %rcx + jz .Lret + +.Ltop: mov (%rdx,%rcx,8), %r8 + not %r8 +.Lb00: mov 8(%rdx,%rcx,8), %r9 + not %r9 + or (%rsi,%rcx,8), %r8 + or 8(%rsi,%rcx,8), %r9 + mov %r8, (%rdi,%rcx,8) + mov %r9, 8(%rdi,%rcx,8) +.Le11: mov 16(%rdx,%rcx,8), %r8 + not %r8 +.Le10: mov 24(%rdx,%rcx,8), %r9 + not %r9 + or 16(%rsi,%rcx,8), %r8 + or 24(%rsi,%rcx,8), %r9 + mov %r8, 16(%rdi,%rcx,8) + mov %r9, 24(%rdi,%rcx,8) + add $4, %rcx + jnc .Ltop + +.Lret: + ret + .size __gmpn_iorn_n,.-__gmpn_iorn_n + + + diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/jacobitab.h b/vere/ext/gmp/gen/x86_64-linux/mpn/jacobitab.h new file mode 100644 index 0000000..4bdbfcc --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/jacobitab.h @@ -0,0 +1,13 @@ + 0, 0, 0, 0, 0,12, 8, 4, 1, 1, 1, 1, 1,13, 9, 5, + 2, 2, 2, 2, 2, 6,10,14, 3, 3, 3, 3, 3, 7,11,15, + 4,16, 6,18, 4, 0,12, 8, 5,17, 7,19, 5, 1,13, 9, + 6,18, 4,16, 6,10,14, 2, 7,19, 5,17, 7,11,15, 3, + 8,10, 9,11, 8, 4, 0,12, 9,11, 8,10, 9, 5, 1,13, +10, 9,11, 8,10,14, 2, 6,11, 8,10, 9,11,15, 3, 7, +12,22,24,20,12, 8, 4, 0,13,23,25,21,13, 9, 5, 1, +25,21,13,23,14, 2, 6,10,24,20,12,22,15, 3, 7,11, +16, 6,18, 4,16,16,16,16,17, 7,19, 5,17,17,17,17, +18, 4,16, 6,18,22,19,23,19, 5,17, 7,19,23,18,22, +20,12,22,24,20,20,20,20,21,13,23,25,21,21,21,21, +22,24,20,12,22,19,23,18,23,25,21,13,23,18,22,19, +24,20,12,22,15, 3, 7,11,25,21,13,23,14, 2, 6,10, diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/lshift.s b/vere/ext/gmp/gen/x86_64-linux/mpn/lshift.s new file mode 100644 index 0000000..89e9566 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/lshift.s @@ -0,0 +1,186 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 32, 0x90 + .globl __gmpn_lshift + .type __gmpn_lshift,@function + +__gmpn_lshift: + + + neg %ecx + mov -8(%rsi,%rdx,8), %rax + shr %cl, %rax + + neg %ecx + lea 1(%rdx), %r8d + and $3, %r8d + je .Lrlx + + dec %r8d + jne .L1 + + mov -8(%rsi,%rdx,8), %r10 + shl %cl, %r10 + neg %ecx + mov -16(%rsi,%rdx,8), %r8 + shr %cl, %r8 + or %r8, %r10 + mov %r10, -8(%rdi,%rdx,8) + dec %rdx + jmp .Lrll + +.L1: dec %r8d + je .L1x + + mov -8(%rsi,%rdx,8), %r10 + shl %cl, %r10 + neg %ecx + mov -16(%rsi,%rdx,8), %r8 + shr %cl, %r8 + or %r8, %r10 + mov %r10, -8(%rdi,%rdx,8) + dec %rdx + neg %ecx +.L1x: + cmp $1, %rdx + je .Last + mov -8(%rsi,%rdx,8), %r10 + shl %cl, %r10 + mov -16(%rsi,%rdx,8), %r11 + shl %cl, %r11 + neg %ecx + mov -16(%rsi,%rdx,8), %r8 + mov -24(%rsi,%rdx,8), %r9 + shr %cl, %r8 + or %r8, %r10 + shr %cl, %r9 + or %r9, %r11 + mov %r10, -8(%rdi,%rdx,8) + mov %r11, -16(%rdi,%rdx,8) + sub $2, %rdx + +.Lrll: neg %ecx +.Lrlx: mov -8(%rsi,%rdx,8), %r10 + shl %cl, %r10 + mov -16(%rsi,%rdx,8), %r11 + shl %cl, %r11 + + sub $4, %rdx + jb .Lend + .align 16, 0x90 +.Ltop: + + neg %ecx + mov 16(%rsi,%rdx,8), %r8 + mov 8(%rsi,%rdx,8), %r9 + shr %cl, %r8 + or %r8, %r10 + shr %cl, %r9 + or %r9, %r11 + mov %r10, 24(%rdi,%rdx,8) + mov %r11, 16(%rdi,%rdx,8) + + mov 0(%rsi,%rdx,8), %r8 + mov -8(%rsi,%rdx,8), %r9 + shr %cl, %r8 + shr %cl, %r9 + + + neg %ecx + mov 8(%rsi,%rdx,8), %r10 + mov 0(%rsi,%rdx,8), %r11 + shl %cl, %r10 + or %r10, %r8 + shl %cl, %r11 + or %r11, %r9 + mov %r8, 8(%rdi,%rdx,8) + mov %r9, 0(%rdi,%rdx,8) + + mov -8(%rsi,%rdx,8), %r10 + mov -16(%rsi,%rdx,8), %r11 + shl %cl, %r10 + shl %cl, %r11 + + sub $4, %rdx + jae .Ltop +.Lend: + neg %ecx + mov 8(%rsi), %r8 + shr %cl, %r8 + or %r8, %r10 + mov (%rsi), %r9 + shr %cl, %r9 + or %r9, %r11 + mov %r10, 16(%rdi) + mov %r11, 8(%rdi) + + neg %ecx +.Last: mov (%rsi), %r10 + shl %cl, %r10 + mov %r10, (%rdi) + + ret + .size __gmpn_lshift,.-__gmpn_lshift diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/lshiftc.s b/vere/ext/gmp/gen/x86_64-linux/mpn/lshiftc.s new file mode 100644 index 0000000..6809940 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/lshiftc.s @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 32, 0x90 + .globl __gmpn_lshiftc + .type __gmpn_lshiftc,@function + +__gmpn_lshiftc: + + + neg %ecx + mov -8(%rsi,%rdx,8), %rax + shr %cl, %rax + + neg %ecx + lea 1(%rdx), %r8d + and $3, %r8d + je .Lrlx + + dec %r8d + jne .L1 + + mov -8(%rsi,%rdx,8), %r10 + shl %cl, %r10 + neg %ecx + mov -16(%rsi,%rdx,8), %r8 + shr %cl, %r8 + or %r8, %r10 + not %r10 + mov %r10, -8(%rdi,%rdx,8) + dec %rdx + jmp .Lrll + +.L1: dec %r8d + je .L1x + + mov -8(%rsi,%rdx,8), %r10 + shl %cl, %r10 + neg %ecx + mov -16(%rsi,%rdx,8), %r8 + shr %cl, %r8 + or %r8, %r10 + not %r10 + mov %r10, -8(%rdi,%rdx,8) + dec %rdx + neg %ecx +.L1x: + cmp $1, %rdx + je .Last + mov -8(%rsi,%rdx,8), %r10 + shl %cl, %r10 + mov -16(%rsi,%rdx,8), %r11 + shl %cl, %r11 + neg %ecx + mov -16(%rsi,%rdx,8), %r8 + mov -24(%rsi,%rdx,8), %r9 + shr %cl, %r8 + or %r8, %r10 + shr %cl, %r9 + or %r9, %r11 + not %r10 + not %r11 + mov %r10, -8(%rdi,%rdx,8) + mov %r11, -16(%rdi,%rdx,8) + sub $2, %rdx + +.Lrll: neg %ecx +.Lrlx: mov -8(%rsi,%rdx,8), %r10 + shl %cl, %r10 + mov -16(%rsi,%rdx,8), %r11 + shl %cl, %r11 + + sub $4, %rdx + jb .Lend + .align 16, 0x90 +.Ltop: + + neg %ecx + mov 16(%rsi,%rdx,8), %r8 + mov 8(%rsi,%rdx,8), %r9 + shr %cl, %r8 + or %r8, %r10 + shr %cl, %r9 + or %r9, %r11 + not %r10 + not %r11 + mov %r10, 24(%rdi,%rdx,8) + mov %r11, 16(%rdi,%rdx,8) + + mov 0(%rsi,%rdx,8), %r8 + mov -8(%rsi,%rdx,8), %r9 + shr %cl, %r8 + shr %cl, %r9 + + + neg %ecx + mov 8(%rsi,%rdx,8), %r10 + mov 0(%rsi,%rdx,8), %r11 + shl %cl, %r10 + or %r10, %r8 + shl %cl, %r11 + or %r11, %r9 + not %r8 + not %r9 + mov %r8, 8(%rdi,%rdx,8) + mov %r9, 0(%rdi,%rdx,8) + + mov -8(%rsi,%rdx,8), %r10 + mov -16(%rsi,%rdx,8), %r11 + shl %cl, %r10 + shl %cl, %r11 + + sub $4, %rdx + jae .Ltop +.Lend: + neg %ecx + mov 8(%rsi), %r8 + shr %cl, %r8 + or %r8, %r10 + mov (%rsi), %r9 + shr %cl, %r9 + or %r9, %r11 + not %r10 + not %r11 + mov %r10, 16(%rdi) + mov %r11, 8(%rdi) + + neg %ecx +.Last: mov (%rsi), %r10 + shl %cl, %r10 + not %r10 + mov %r10, (%rdi) + + ret + .size __gmpn_lshiftc,.-__gmpn_lshiftc diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/mod_1_1.s b/vere/ext/gmp/gen/x86_64-linux/mpn/mod_1_1.s new file mode 100644 index 0000000..a8e3198 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/mod_1_1.s @@ -0,0 +1,241 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_mod_1_1p + .type __gmpn_mod_1_1p,@function + +__gmpn_mod_1_1p: + + + push %rbp + push %rbx + mov %rdx, %rbx + mov %rcx, %r8 + + mov -8(%rdi, %rsi, 8), %rax + cmp $3, %rsi + jnc .Lfirst + mov -16(%rdi, %rsi, 8), %rbp + jmp .Lreduce_two + +.Lfirst: + + mov 24(%r8), %r11 + mul %r11 + mov -24(%rdi, %rsi, 8), %rbp + add %rax, %rbp + mov -16(%rdi, %rsi, 8), %rax + adc %rdx, %rax + sbb %rcx, %rcx + sub $4, %rsi + jc .Lreduce_three + + mov %r11, %r10 + sub %rbx, %r10 + + .align 16, 0x90 +.Ltop: and %r11, %rcx + lea (%r10, %rbp), %r9 + mul %r11 + add %rbp, %rcx + mov (%rdi, %rsi, 8), %rbp + cmovc %r9, %rcx + add %rax, %rbp + mov %rcx, %rax + adc %rdx, %rax + sbb %rcx, %rcx + sub $1, %rsi + jnc .Ltop + +.Lreduce_three: + + and %rbx, %rcx + sub %rcx, %rax + +.Lreduce_two: + mov 8(%r8), %ecx + test %ecx, %ecx + jz .Lnormalized + + + mulq 16(%r8) + xor %r9, %r9 + add %rax, %rbp + adc %rdx, %r9 + mov %r9, %rax + + + + shld %cl, %rbp, %rax + + shl %cl, %rbp + jmp .Ludiv + +.Lnormalized: + mov %rax, %r9 + sub %rbx, %r9 + cmovnc %r9, %rax + +.Ludiv: + lea 1(%rax), %r9 + mulq (%r8) + add %rbp, %rax + adc %r9, %rdx + imul %rbx, %rdx + sub %rdx, %rbp + cmp %rbp, %rax + lea (%rbx, %rbp), %rax + cmovnc %rbp, %rax + cmp %rbx, %rax + jnc .Lfix +.Lok: shr %cl, %rax + + pop %rbx + pop %rbp + + ret +.Lfix: sub %rbx, %rax + jmp .Lok + .size __gmpn_mod_1_1p,.-__gmpn_mod_1_1p + + .align 16, 0x90 + .globl __gmpn_mod_1_1p_cps + .type __gmpn_mod_1_1p_cps,@function + +__gmpn_mod_1_1p_cps: + + + push %rbp + bsr %rsi, %rcx + push %rbx + mov %rdi, %rbx + push %r12 + xor $63, %ecx + mov %rsi, %r12 + mov %ecx, %ebp + sal %cl, %r12 + mov %r12, %rdi + + + + call __gmpn_invert_limb@PLT + + + neg %r12 + mov %r12, %r8 + mov %rax, (%rbx) + mov %rbp, 8(%rbx) + imul %rax, %r12 + mov %r12, 24(%rbx) + mov %ebp, %ecx + test %ecx, %ecx + jz .Lz + + mov $1, %edx + + shld %cl, %rax, %rdx + + imul %rdx, %r8 + shr %cl, %r8 + mov %r8, 16(%rbx) +.Lz: + pop %r12 + pop %rbx + pop %rbp + + ret + .size __gmpn_mod_1_1p_cps,.-__gmpn_mod_1_1p_cps + diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/mod_1_2.s b/vere/ext/gmp/gen/x86_64-linux/mpn/mod_1_2.s new file mode 100644 index 0000000..1a19107 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/mod_1_2.s @@ -0,0 +1,252 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_mod_1s_2p + .type __gmpn_mod_1s_2p,@function + +__gmpn_mod_1s_2p: + + + push %r14 + test $1, %sil + mov %rdx, %r14 + push %r13 + mov %rcx, %r13 + push %r12 + push %rbp + push %rbx + mov 16(%rcx), %r10 + mov 24(%rcx), %rbx + mov 32(%rcx), %rbp + je .Lb0 + dec %rsi + je .Lone + mov -8(%rdi,%rsi,8), %rax + mul %r10 + mov %rax, %r9 + mov %rdx, %r8 + mov (%rdi,%rsi,8), %rax + add -16(%rdi,%rsi,8), %r9 + adc $0, %r8 + mul %rbx + add %rax, %r9 + adc %rdx, %r8 + jmp .L11 + +.Lb0: mov -8(%rdi,%rsi,8), %r8 + mov -16(%rdi,%rsi,8), %r9 + +.L11: sub $4, %rsi + jb .Led2 + lea 40(%rdi,%rsi,8), %rdi + mov -40(%rdi), %r11 + mov -32(%rdi), %rax + jmp .Lm0 + + .align 16, 0x90 +.Ltop: mov -24(%rdi), %r9 + add %rax, %r11 + mov -16(%rdi), %rax + adc %rdx, %r12 + mul %r10 + add %rax, %r9 + mov %r11, %rax + mov %rdx, %r8 + adc $0, %r8 + mul %rbx + add %rax, %r9 + mov %r12, %rax + adc %rdx, %r8 + mul %rbp + sub $2, %rsi + jb .Led1 + mov -40(%rdi), %r11 + add %rax, %r9 + mov -32(%rdi), %rax + adc %rdx, %r8 +.Lm0: mul %r10 + add %rax, %r11 + mov %r9, %rax + mov %rdx, %r12 + adc $0, %r12 + mul %rbx + add %rax, %r11 + lea -32(%rdi), %rdi + mov %r8, %rax + adc %rdx, %r12 + mul %rbp + sub $2, %rsi + jae .Ltop + +.Led0: mov %r11, %r9 + mov %r12, %r8 +.Led1: add %rax, %r9 + adc %rdx, %r8 +.Led2: mov 8(%r13), %edi + mov %r8, %rax + mov %r9, %r8 + mul %r10 + add %rax, %r8 + adc $0, %rdx +.L1: xor %ecx, %ecx + mov %r8, %r9 + sub %edi, %ecx + shr %cl, %r9 + mov %edi, %ecx + sal %cl, %rdx + or %rdx, %r9 + sal %cl, %r8 + mov %r9, %rax + mulq (%r13) + mov %rax, %rsi + inc %r9 + add %r8, %rsi + adc %r9, %rdx + imul %r14, %rdx + sub %rdx, %r8 + lea (%r8,%r14), %rax + cmp %r8, %rsi + cmovc %rax, %r8 + mov %r8, %rax + sub %r14, %rax + cmovc %r8, %rax + mov %edi, %ecx + shr %cl, %rax + pop %rbx + pop %rbp + pop %r12 + pop %r13 + pop %r14 + + ret +.Lone: + mov (%rdi), %r8 + mov 8(%rcx), %edi + xor %rdx, %rdx + jmp .L1 + .size __gmpn_mod_1s_2p,.-__gmpn_mod_1s_2p + + .align 16, 0x90 + .globl __gmpn_mod_1s_2p_cps + .type __gmpn_mod_1s_2p_cps,@function + +__gmpn_mod_1s_2p_cps: + + + push %rbp + bsr %rsi, %rcx + push %rbx + mov %rdi, %rbx + push %r12 + xor $63, %ecx + mov %rsi, %r12 + mov %ecx, %ebp + sal %cl, %r12 + mov %r12, %rdi + + + + call __gmpn_invert_limb@PLT + + + mov %r12, %r8 + mov %rax, %r11 + mov %rax, (%rbx) + mov %rbp, 8(%rbx) + neg %r8 + mov %ebp, %ecx + mov $1, %esi + + shld %cl, %rax, %rsi + + imul %r8, %rsi + mul %rsi + + add %rsi, %rdx + shr %cl, %rsi + mov %rsi, 16(%rbx) + + not %rdx + imul %r12, %rdx + lea (%rdx,%r12), %rsi + cmp %rdx, %rax + cmovnc %rdx, %rsi + mov %r11, %rax + mul %rsi + + add %rsi, %rdx + shr %cl, %rsi + mov %rsi, 24(%rbx) + + not %rdx + imul %r12, %rdx + add %rdx, %r12 + cmp %rdx, %rax + cmovnc %rdx, %r12 + + shr %cl, %r12 + mov %r12, 32(%rbx) + + pop %r12 + pop %rbx + pop %rbp + + ret + .size __gmpn_mod_1s_2p_cps,.-__gmpn_mod_1s_2p_cps diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/mod_1_4.s b/vere/ext/gmp/gen/x86_64-linux/mpn/mod_1_4.s new file mode 100644 index 0000000..491753d --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/mod_1_4.s @@ -0,0 +1,283 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_mod_1s_4p + .type __gmpn_mod_1s_4p,@function + +__gmpn_mod_1s_4p: + + + push %r15 + push %r14 + push %r13 + push %r12 + push %rbp + push %rbx + + mov %rdx, %r15 + mov %rcx, %r14 + mov 16(%rcx), %r11 + mov 24(%rcx), %rbx + mov 32(%rcx), %rbp + mov 40(%rcx), %r13 + mov 48(%rcx), %r12 + xor %r8d, %r8d + mov %esi, %edx + and $3, %edx + je .Lb0 + cmp $2, %edx + jc .Lb1 + je .Lb2 + +.Lb3: lea -24(%rdi,%rsi,8), %rdi + mov 8(%rdi), %rax + mul %r11 + mov (%rdi), %r9 + add %rax, %r9 + adc %rdx, %r8 + mov 16(%rdi), %rax + mul %rbx + jmp .Lm0 + + .align 8, 0x90 +.Lb0: lea -32(%rdi,%rsi,8), %rdi + mov 8(%rdi), %rax + mul %r11 + mov (%rdi), %r9 + add %rax, %r9 + adc %rdx, %r8 + mov 16(%rdi), %rax + mul %rbx + add %rax, %r9 + adc %rdx, %r8 + mov 24(%rdi), %rax + mul %rbp + jmp .Lm0 + + .align 8, 0x90 +.Lb1: lea -8(%rdi,%rsi,8), %rdi + mov (%rdi), %r9 + jmp .Lm1 + + .align 8, 0x90 +.Lb2: lea -16(%rdi,%rsi,8), %rdi + mov 8(%rdi), %r8 + mov (%rdi), %r9 + jmp .Lm1 + + .align 16, 0x90 +.Ltop: mov -24(%rdi), %rax + mov -32(%rdi), %r10 + mul %r11 + add %rax, %r10 + mov -16(%rdi), %rax + mov $0, %ecx + adc %rdx, %rcx + mul %rbx + add %rax, %r10 + mov -8(%rdi), %rax + adc %rdx, %rcx + sub $32, %rdi + mul %rbp + add %rax, %r10 + mov %r13, %rax + adc %rdx, %rcx + mul %r9 + add %rax, %r10 + mov %r12, %rax + adc %rdx, %rcx + mul %r8 + mov %r10, %r9 + mov %rcx, %r8 +.Lm0: add %rax, %r9 + adc %rdx, %r8 +.Lm1: sub $4, %rsi + ja .Ltop + +.Lend: mov 8(%r14), %esi + mov %r8, %rax + mul %r11 + mov %rax, %r8 + add %r9, %r8 + adc $0, %rdx + xor %ecx, %ecx + sub %esi, %ecx + mov %r8, %rdi + shr %cl, %rdi + mov %esi, %ecx + sal %cl, %rdx + or %rdx, %rdi + mov %rdi, %rax + mulq (%r14) + mov %r15, %rbx + mov %rax, %r9 + sal %cl, %r8 + inc %rdi + add %r8, %r9 + adc %rdi, %rdx + imul %rbx, %rdx + sub %rdx, %r8 + lea (%r8,%rbx), %rax + cmp %r8, %r9 + cmovc %rax, %r8 + mov %r8, %rax + sub %rbx, %rax + cmovc %r8, %rax + shr %cl, %rax + pop %rbx + pop %rbp + pop %r12 + pop %r13 + pop %r14 + pop %r15 + + ret + .size __gmpn_mod_1s_4p,.-__gmpn_mod_1s_4p + + .align 16, 0x90 + .globl __gmpn_mod_1s_4p_cps + .type __gmpn_mod_1s_4p_cps,@function + +__gmpn_mod_1s_4p_cps: + + + push %rbp + bsr %rsi, %rcx + push %rbx + mov %rdi, %rbx + push %r12 + xor $63, %ecx + mov %rsi, %r12 + mov %ecx, %ebp + sal %cl, %r12 + mov %r12, %rdi + + + + call __gmpn_invert_limb@PLT + + + mov %r12, %r8 + mov %rax, %r11 + mov %rax, (%rbx) + mov %rbp, 8(%rbx) + neg %r8 + mov %ebp, %ecx + mov $1, %esi + + shld %cl, %rax, %rsi + + imul %r8, %rsi + mul %rsi + + add %rsi, %rdx + shr %cl, %rsi + mov %rsi, 16(%rbx) + + not %rdx + imul %r12, %rdx + lea (%rdx,%r12), %rsi + cmp %rdx, %rax + cmovnc %rdx, %rsi + mov %r11, %rax + mul %rsi + + add %rsi, %rdx + shr %cl, %rsi + mov %rsi, 24(%rbx) + + not %rdx + imul %r12, %rdx + lea (%rdx,%r12), %rsi + cmp %rdx, %rax + cmovnc %rdx, %rsi + mov %r11, %rax + mul %rsi + + add %rsi, %rdx + shr %cl, %rsi + mov %rsi, 32(%rbx) + + not %rdx + imul %r12, %rdx + lea (%rdx,%r12), %rsi + cmp %rdx, %rax + cmovnc %rdx, %rsi + mov %r11, %rax + mul %rsi + + add %rsi, %rdx + shr %cl, %rsi + mov %rsi, 40(%rbx) + + not %rdx + imul %r12, %rdx + add %rdx, %r12 + cmp %rdx, %rax + cmovnc %rdx, %r12 + + shr %cl, %r12 + mov %r12, 48(%rbx) + + pop %r12 + pop %rbx + pop %rbp + + ret + .size __gmpn_mod_1s_4p_cps,.-__gmpn_mod_1s_4p_cps diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/mod_34lsub1.s b/vere/ext/gmp/gen/x86_64-linux/mpn/mod_34lsub1.s new file mode 100644 index 0000000..e2a2ebb --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/mod_34lsub1.s @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 32, 0x90 + .globl __gmpn_mod_34lsub1 + .type __gmpn_mod_34lsub1,@function + +__gmpn_mod_34lsub1: + + + + mov $0x0000FFFFFFFFFFFF, %r11 + + mov (%rdi), %rax + + cmp $2, %rsi + ja .Lgt2 + + jb .Lone + + mov 8(%rdi), %rsi + mov %rax, %rdx + shr $48, %rax + + and %r11, %rdx + add %rdx, %rax + mov %esi, %edx + + shr $32, %rsi + add %rsi, %rax + + shl $16, %rdx + add %rdx, %rax +.Lone: + ret + + + + + +.Lgt2: mov 8(%rdi), %rcx + mov 16(%rdi), %rdx + xor %r9, %r9 + add $24, %rdi + sub $12, %rsi + jc .Lend + .align 16, 0x90 +.Ltop: + add (%rdi), %rax + adc 8(%rdi), %rcx + adc 16(%rdi), %rdx + adc $0, %r9 + add 24(%rdi), %rax + adc 32(%rdi), %rcx + adc 40(%rdi), %rdx + adc $0, %r9 + add 48(%rdi), %rax + adc 56(%rdi), %rcx + adc 64(%rdi), %rdx + adc $0, %r9 + add $72, %rdi + sub $9, %rsi + jnc .Ltop + +.Lend: + lea .Ltab(%rip), %r8 + movslq 36(%r8,%rsi,4), %r10 + add %r10, %r8 + jmp *%r8 + + .section .data.rel.ro.local,"a",@progbits + .align 8, 0x90 +.Ltab: .long .L0-.Ltab + .long .L1-.Ltab + .long .L2-.Ltab + .long .L3-.Ltab + .long .L4-.Ltab + .long .L5-.Ltab + .long .L6-.Ltab + .long .L7-.Ltab + .long .L8-.Ltab + .text + +.L6: add (%rdi), %rax + adc 8(%rdi), %rcx + adc 16(%rdi), %rdx + adc $0, %r9 + add $24, %rdi +.L3: add (%rdi), %rax + adc 8(%rdi), %rcx + adc 16(%rdi), %rdx + jmp .Lcj1 + +.L7: add (%rdi), %rax + adc 8(%rdi), %rcx + adc 16(%rdi), %rdx + adc $0, %r9 + add $24, %rdi +.L4: add (%rdi), %rax + adc 8(%rdi), %rcx + adc 16(%rdi), %rdx + adc $0, %r9 + add $24, %rdi +.L1: add (%rdi), %rax + adc $0, %rcx + jmp .Lcj2 + +.L8: add (%rdi), %rax + adc 8(%rdi), %rcx + adc 16(%rdi), %rdx + adc $0, %r9 + add $24, %rdi +.L5: add (%rdi), %rax + adc 8(%rdi), %rcx + adc 16(%rdi), %rdx + adc $0, %r9 + add $24, %rdi +.L2: add (%rdi), %rax + adc 8(%rdi), %rcx + +.Lcj2: adc $0, %rdx +.Lcj1: adc $0, %r9 +.L0: add %r9, %rax + adc $0, %rcx + adc $0, %rdx + adc $0, %rax + + mov %rax, %rdi + shr $48, %rax + + and %r11, %rdi + mov %ecx, %r10d + + shr $32, %rcx + + add %rdi, %rax + movzwl %dx, %edi + shl $16, %r10 + + add %rcx, %rax + shr $16, %rdx + + add %r10, %rax + shl $32, %rdi + + add %rdx, %rax + add %rdi, %rax + + + ret + .size __gmpn_mod_34lsub1,.-__gmpn_mod_34lsub1 diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/mode1o.s b/vere/ext/gmp/gen/x86_64-linux/mpn/mode1o.s new file mode 100644 index 0000000..bff06a3 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/mode1o.s @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 32, 0x90 + .globl __gmpn_modexact_1_odd + .type __gmpn_modexact_1_odd,@function + +__gmpn_modexact_1_odd: + + + mov $0, %ecx + + + .globl __gmpn_modexact_1c_odd + .type __gmpn_modexact_1c_odd,@function + +__gmpn_modexact_1c_odd: + + +.Lent: + + + + + + mov %rdx, %r8 + shr %edx + + mov __gmp_binvert_limb_table@GOTPCREL(%rip), %r9 + + + + and $127, %edx + mov %rcx, %r10 + + movzbl (%r9,%rdx), %edx + + mov (%rdi), %rax + lea (%rdi,%rsi,8), %r11 + mov %r8, %rdi + + lea (%rdx,%rdx), %ecx + imul %edx, %edx + + neg %rsi + + imul %edi, %edx + + sub %edx, %ecx + + lea (%rcx,%rcx), %edx + imul %ecx, %ecx + + imul %edi, %ecx + + sub %ecx, %edx + xor %ecx, %ecx + + lea (%rdx,%rdx), %r9 + imul %rdx, %rdx + + imul %r8, %rdx + + sub %rdx, %r9 + mov %r10, %rdx + + + + inc %rsi + jz .Lone + + + .align 16, 0x90 +.Ltop: + + + + + + + + + + sub %rdx, %rax + + adc $0, %rcx + imul %r9, %rax + + mul %r8 + + mov (%r11,%rsi,8), %rax + sub %rcx, %rax + setc %cl + + inc %rsi + jnz .Ltop + + +.Lone: + sub %rdx, %rax + + adc $0, %rcx + imul %r9, %rax + + mul %r8 + + lea (%rcx,%rdx), %rax + + ret + + .size __gmpn_modexact_1c_odd,.-__gmpn_modexact_1c_odd + .size __gmpn_modexact_1_odd,.-__gmpn_modexact_1_odd diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/mp_bases.c b/vere/ext/gmp/gen/x86_64-linux/mpn/mp_bases.c new file mode 100644 index 0000000..c72c531 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/mp_bases.c @@ -0,0 +1,268 @@ +/* This file generated by gen-bases.c - DO NOT EDIT. */ + +#include "gmp-impl.h" + +#if GMP_NUMB_BITS != 64 +Error, error, this data is for 64 bits +#endif + +const struct bases mp_bases[257] = +{ + /* 0 */ { 0, 0, 0, 0, 0 }, + /* 1 */ { 0, 0, 0, 0, 0 }, + /* 2 */ { 64, CNST_LIMB(0xffffffffffffffff), CNST_LIMB(0x1fffffffffffffff), CNST_LIMB(0x1), CNST_LIMB(0x0) }, + /* 3 */ { 40, CNST_LIMB(0xa1849cc1a9a9e94e), CNST_LIMB(0x32b803473f7ad0f3), CNST_LIMB(0xa8b8b452291fe821), CNST_LIMB(0x846d550e37b5063d) }, + /* 4 */ { 32, CNST_LIMB(0x7fffffffffffffff), CNST_LIMB(0x3fffffffffffffff), CNST_LIMB(0x2), CNST_LIMB(0x0) }, + /* 5 */ { 27, CNST_LIMB(0x6e40d1a4143dcb94), CNST_LIMB(0x4a4d3c25e68dc57f), CNST_LIMB(0x6765c793fa10079d), CNST_LIMB(0x3ce9a36f23c0fc90) }, + /* 6 */ { 24, CNST_LIMB(0x6308c91b702a7cf4), CNST_LIMB(0x52b803473f7ad0f3), CNST_LIMB(0x41c21cb8e1000000), CNST_LIMB(0xf24f62335024a295) }, + /* 7 */ { 22, CNST_LIMB(0x5b3064eb3aa6d388), CNST_LIMB(0x59d5d9fd5010b366), CNST_LIMB(0x3642798750226111), CNST_LIMB(0x2df495ccaa57147b) }, + /* 8 */ { 21, CNST_LIMB(0x5555555555555555), CNST_LIMB(0x5fffffffffffffff), CNST_LIMB(0x3), CNST_LIMB(0x0) }, + /* 9 */ { 20, CNST_LIMB(0x50c24e60d4d4f4a7), CNST_LIMB(0x6570068e7ef5a1e7), CNST_LIMB(0xa8b8b452291fe821), CNST_LIMB(0x846d550e37b5063d) }, + /* 10 */ { 19, CNST_LIMB(0x4d104d427de7fbcc), CNST_LIMB(0x6a4d3c25e68dc57f), CNST_LIMB(0x8ac7230489e80000), CNST_LIMB(0xd83c94fb6d2ac34a) }, + /* 11 */ { 18, CNST_LIMB(0x4a00270775914e88), CNST_LIMB(0x6eb3a9f01975077f), CNST_LIMB(0x4d28cb56c33fa539), CNST_LIMB(0xa8adf7ae45e7577b) }, + /* 12 */ { 17, CNST_LIMB(0x4768ce0d05818e12), CNST_LIMB(0x72b803473f7ad0f3), CNST_LIMB(0x1eca170c00000000), CNST_LIMB(0xa10c2bec5da8f8f) }, + /* 13 */ { 17, CNST_LIMB(0x452e53e365907bda), CNST_LIMB(0x766a008e4788cbcd), CNST_LIMB(0x780c7372621bd74d), CNST_LIMB(0x10f4becafe412ec3) }, + /* 14 */ { 16, CNST_LIMB(0x433cfffb4b5aae55), CNST_LIMB(0x79d5d9fd5010b366), CNST_LIMB(0x1e39a5057d810000), CNST_LIMB(0xf08480f672b4e86) }, + /* 15 */ { 16, CNST_LIMB(0x41867711b4f85355), CNST_LIMB(0x7d053f6d26089673), CNST_LIMB(0x5b27ac993df97701), CNST_LIMB(0x6779c7f90dc42f48) }, + /* 16 */ { 16, CNST_LIMB(0x3fffffffffffffff), CNST_LIMB(0x7fffffffffffffff), CNST_LIMB(0x4), CNST_LIMB(0x0) }, + /* 17 */ { 15, CNST_LIMB(0x3ea16afd58b10966), CNST_LIMB(0x82cc7edf592262cf), CNST_LIMB(0x27b95e997e21d9f1), CNST_LIMB(0x9c71e11bab279323) }, + /* 18 */ { 15, CNST_LIMB(0x3d64598d154dc4de), CNST_LIMB(0x8570068e7ef5a1e7), CNST_LIMB(0x5da0e1e53c5c8000), CNST_LIMB(0x5dfaa697ec6f6a1c) }, + /* 19 */ { 15, CNST_LIMB(0x3c43c23018bb5563), CNST_LIMB(0x87ef05ae409a0288), CNST_LIMB(0xd2ae3299c1c4aedb), CNST_LIMB(0x3711783f6be7e9ec) }, + /* 20 */ { 14, CNST_LIMB(0x3b3b9a42873069c7), CNST_LIMB(0x8a4d3c25e68dc57f), CNST_LIMB(0x16bcc41e90000000), CNST_LIMB(0x6849b86a12b9b01e) }, + /* 21 */ { 14, CNST_LIMB(0x3a4898f06cf41ac9), CNST_LIMB(0x8c8ddd448f8b845a), CNST_LIMB(0x2d04b7fdd9c0ef49), CNST_LIMB(0x6bf097ba5ca5e239) }, + /* 22 */ { 14, CNST_LIMB(0x39680b13582e7c18), CNST_LIMB(0x8eb3a9f01975077f), CNST_LIMB(0x5658597bcaa24000), CNST_LIMB(0x7b8015c8d7af8f08) }, + /* 23 */ { 14, CNST_LIMB(0x3897b2b751ae561a), CNST_LIMB(0x90c10500d63aa658), CNST_LIMB(0xa0e2073737609371), CNST_LIMB(0x975a24b3a3151b38) }, + /* 24 */ { 13, CNST_LIMB(0x37d5aed131f19c98), CNST_LIMB(0x92b803473f7ad0f3), CNST_LIMB(0xc29e98000000000), CNST_LIMB(0x50bd367972689db1) }, + /* 25 */ { 13, CNST_LIMB(0x372068d20a1ee5ca), CNST_LIMB(0x949a784bcd1b8afe), CNST_LIMB(0x14adf4b7320334b9), CNST_LIMB(0x8c240c4aecb13bb5) }, + /* 26 */ { 13, CNST_LIMB(0x3676867e5d60de29), CNST_LIMB(0x966a008e4788cbcd), CNST_LIMB(0x226ed36478bfa000), CNST_LIMB(0xdbd2e56854e118c9) }, + /* 27 */ { 13, CNST_LIMB(0x35d6deeb388df86f), CNST_LIMB(0x982809d5be7072db), CNST_LIMB(0x383d9170b85ff80b), CNST_LIMB(0x2351ffcaa9c7c4ae) }, + /* 28 */ { 13, CNST_LIMB(0x354071d61c77fa2e), CNST_LIMB(0x99d5d9fd5010b366), CNST_LIMB(0x5a3c23e39c000000), CNST_LIMB(0x6b24188ca33b0636) }, + /* 29 */ { 13, CNST_LIMB(0x34b260c5671b18ac), CNST_LIMB(0x9b74948f5532da4b), CNST_LIMB(0x8e65137388122bcd), CNST_LIMB(0xcc3dceaf2b8ba99d) }, + /* 30 */ { 13, CNST_LIMB(0x342be986572b45cc), CNST_LIMB(0x9d053f6d26089673), CNST_LIMB(0xdd41bb36d259e000), CNST_LIMB(0x2832e835c6c7d6b6) }, + /* 31 */ { 12, CNST_LIMB(0x33ac61b998fbbdf2), CNST_LIMB(0x9e88c6b3626a72aa), CNST_LIMB(0xaee5720ee830681), CNST_LIMB(0x76b6aa272e1873c5) }, + /* 32 */ { 12, CNST_LIMB(0x3333333333333333), CNST_LIMB(0x9fffffffffffffff), CNST_LIMB(0x5), CNST_LIMB(0x0) }, + /* 33 */ { 12, CNST_LIMB(0x32bfd90114c12861), CNST_LIMB(0xa16bad3758efd873), CNST_LIMB(0x172588ad4f5f0981), CNST_LIMB(0x61eaf5d402c7bf4f) }, + /* 34 */ { 12, CNST_LIMB(0x3251dcf6169e45f2), CNST_LIMB(0xa2cc7edf592262cf), CNST_LIMB(0x211e44f7d02c1000), CNST_LIMB(0xeeb658123ffb27ec) }, + /* 35 */ { 12, CNST_LIMB(0x31e8d59f180dc630), CNST_LIMB(0xa4231623369e78e5), CNST_LIMB(0x2ee56725f06e5c71), CNST_LIMB(0x5d5e3762e6fdf509) }, + /* 36 */ { 12, CNST_LIMB(0x3184648db8153e7a), CNST_LIMB(0xa570068e7ef5a1e7), CNST_LIMB(0x41c21cb8e1000000), CNST_LIMB(0xf24f62335024a295) }, + /* 37 */ { 12, CNST_LIMB(0x312434e89c35dacd), CNST_LIMB(0xa6b3d78b6d3b24fb), CNST_LIMB(0x5b5b57f8a98a5dd1), CNST_LIMB(0x66ae7831762efb6f) }, + /* 38 */ { 12, CNST_LIMB(0x30c7fa349460a541), CNST_LIMB(0xa7ef05ae409a0288), CNST_LIMB(0x7dcff8986ea31000), CNST_LIMB(0x47388865a00f544) }, + /* 39 */ { 12, CNST_LIMB(0x306f6f4c8432bc6d), CNST_LIMB(0xa92203d587039cc1), CNST_LIMB(0xabd4211662a6b2a1), CNST_LIMB(0x7d673c33a123b54c) }, + /* 40 */ { 12, CNST_LIMB(0x301a557ffbfdd252), CNST_LIMB(0xaa4d3c25e68dc57f), CNST_LIMB(0xe8d4a51000000000), CNST_LIMB(0x19799812dea11197) }, + /* 41 */ { 11, CNST_LIMB(0x2fc873d1fda55f3b), CNST_LIMB(0xab7110e6ce866f2b), CNST_LIMB(0x7a32956ad081b79), CNST_LIMB(0xc27e62e0686feae) }, + /* 42 */ { 11, CNST_LIMB(0x2f799652a4e6dc49), CNST_LIMB(0xac8ddd448f8b845a), CNST_LIMB(0x9f49aaff0e86800), CNST_LIMB(0x9b6e7507064ce7c7) }, + /* 43 */ { 11, CNST_LIMB(0x2f2d8d8f64460aad), CNST_LIMB(0xada3f5fb9c415052), CNST_LIMB(0xce583bb812d37b3), CNST_LIMB(0x3d9ac2bf66cfed94) }, + /* 44 */ { 11, CNST_LIMB(0x2ee42e164e8f53a4), CNST_LIMB(0xaeb3a9f01975077f), CNST_LIMB(0x109b79a654c00000), CNST_LIMB(0xed46bc50ce59712a) }, + /* 45 */ { 11, CNST_LIMB(0x2e9d500984041dbd), CNST_LIMB(0xafbd42b465836767), CNST_LIMB(0x1543beff214c8b95), CNST_LIMB(0x813d97e2c89b8d46) }, + /* 46 */ { 11, CNST_LIMB(0x2e58cec05a6a8144), CNST_LIMB(0xb0c10500d63aa658), CNST_LIMB(0x1b149a79459a3800), CNST_LIMB(0x2e81751956af8083) }, + /* 47 */ { 11, CNST_LIMB(0x2e1688743ef9104c), CNST_LIMB(0xb1bf311e95d00de3), CNST_LIMB(0x224edfb5434a830f), CNST_LIMB(0xdd8e0a95e30c0988) }, + /* 48 */ { 11, CNST_LIMB(0x2dd65df7a583598f), CNST_LIMB(0xb2b803473f7ad0f3), CNST_LIMB(0x2b3fb00000000000), CNST_LIMB(0x7ad4dd48a0b5b167) }, + /* 49 */ { 11, CNST_LIMB(0x2d9832759d5369c4), CNST_LIMB(0xb3abb3faa02166cc), CNST_LIMB(0x3642798750226111), CNST_LIMB(0x2df495ccaa57147b) }, + /* 50 */ { 11, CNST_LIMB(0x2d5beb38dcd1394c), CNST_LIMB(0xb49a784bcd1b8afe), CNST_LIMB(0x43c33c1937564800), CNST_LIMB(0xe392010175ee5962) }, + /* 51 */ { 11, CNST_LIMB(0x2d216f7943e2ba6a), CNST_LIMB(0xb5848226989d33c3), CNST_LIMB(0x54411b2441c3cd8b), CNST_LIMB(0x84eaf11b2fe7738e) }, + /* 52 */ { 11, CNST_LIMB(0x2ce8a82efbb3ff2c), CNST_LIMB(0xb66a008e4788cbcd), CNST_LIMB(0x6851455acd400000), CNST_LIMB(0x3a1e3971e008995d) }, + /* 53 */ { 11, CNST_LIMB(0x2cb17fea7ad7e332), CNST_LIMB(0xb74b1fd64e0753c6), CNST_LIMB(0x80a23b117c8feb6d), CNST_LIMB(0xfd7a462344ffce25) }, + /* 54 */ { 11, CNST_LIMB(0x2c7be2b0cfa1ba50), CNST_LIMB(0xb82809d5be7072db), CNST_LIMB(0x9dff7d32d5dc1800), CNST_LIMB(0x9eca40b40ebcef8a) }, + /* 55 */ { 11, CNST_LIMB(0x2c47bddba92d7463), CNST_LIMB(0xb900e6160002ccfe), CNST_LIMB(0xc155af6faeffe6a7), CNST_LIMB(0x52fa161a4a48e43d) }, + /* 56 */ { 11, CNST_LIMB(0x2c14fffcaa8b131e), CNST_LIMB(0xb9d5d9fd5010b366), CNST_LIMB(0xebb7392e00000000), CNST_LIMB(0x1607a2cbacf930c1) }, + /* 57 */ { 10, CNST_LIMB(0x2be398c3a38be053), CNST_LIMB(0xbaa708f58014d37c), CNST_LIMB(0x50633659656d971), CNST_LIMB(0x97a014f8e3be55f1) }, + /* 58 */ { 10, CNST_LIMB(0x2bb378e758451068), CNST_LIMB(0xbb74948f5532da4b), CNST_LIMB(0x5fa8624c7fba400), CNST_LIMB(0x568df8b76cbf212c) }, + /* 59 */ { 10, CNST_LIMB(0x2b8492108be5e5f7), CNST_LIMB(0xbc3e9ca2e1a05533), CNST_LIMB(0x717d9faa73c5679), CNST_LIMB(0x20ba7c4b4e6ef492) }, + /* 60 */ { 10, CNST_LIMB(0x2b56d6c70d55481b), CNST_LIMB(0xbd053f6d26089673), CNST_LIMB(0x86430aac6100000), CNST_LIMB(0xe81ee46b9ef492f5) }, + /* 61 */ { 10, CNST_LIMB(0x2b2a3a608c72ddd5), CNST_LIMB(0xbdc899ab3ff56c5e), CNST_LIMB(0x9e64d9944b57f29), CNST_LIMB(0x9dc0d10d51940416) }, + /* 62 */ { 10, CNST_LIMB(0x2afeb0f1060c7e41), CNST_LIMB(0xbe88c6b3626a72aa), CNST_LIMB(0xba5ca5392cb0400), CNST_LIMB(0x5fa8ed2f450272a5) }, + /* 63 */ { 10, CNST_LIMB(0x2ad42f3c9aca595c), CNST_LIMB(0xbf45e08bcf06554e), CNST_LIMB(0xdab2ce1d022cd81), CNST_LIMB(0x2ba9eb8c5e04e641) }, + /* 64 */ { 10, CNST_LIMB(0x2aaaaaaaaaaaaaaa), CNST_LIMB(0xbfffffffffffffff), CNST_LIMB(0x6), CNST_LIMB(0x0) }, + /* 65 */ { 10, CNST_LIMB(0x2a82193a13425883), CNST_LIMB(0xc0b73cb42e16914c), CNST_LIMB(0x12aeed5fd3e2d281), CNST_LIMB(0xb67759cc00287bf1) }, + /* 66 */ { 10, CNST_LIMB(0x2a5a717672f66450), CNST_LIMB(0xc16bad3758efd873), CNST_LIMB(0x15c3da1572d50400), CNST_LIMB(0x78621feeb7f4ed33) }, + /* 67 */ { 10, CNST_LIMB(0x2a33aa6e56d9c71c), CNST_LIMB(0xc21d6713f453f356), CNST_LIMB(0x194c05534f75ee29), CNST_LIMB(0x43d55b5f72943bc0) }, + /* 68 */ { 10, CNST_LIMB(0x2a0dbbaa3bdfcea4), CNST_LIMB(0xc2cc7edf592262cf), CNST_LIMB(0x1d56299ada100000), CNST_LIMB(0x173decb64d1d4409) }, + /* 69 */ { 10, CNST_LIMB(0x29e89d244eb4bfaf), CNST_LIMB(0xc379084815b5774c), CNST_LIMB(0x21f2a089a4ff4f79), CNST_LIMB(0xe29fb54fd6b6074f) }, + /* 70 */ { 10, CNST_LIMB(0x29c44740d7db51e6), CNST_LIMB(0xc4231623369e78e5), CNST_LIMB(0x2733896c68d9a400), CNST_LIMB(0xa1f1f5c210d54e62) }, + /* 71 */ { 10, CNST_LIMB(0x29a0b2c743b14d74), CNST_LIMB(0xc4caba789e2b8687), CNST_LIMB(0x2d2cf2c33b533c71), CNST_LIMB(0x6aac7f9bfafd57b2) }, + /* 72 */ { 10, CNST_LIMB(0x297dd8dbb7c22a2d), CNST_LIMB(0xc570068e7ef5a1e7), CNST_LIMB(0x33f506e440000000), CNST_LIMB(0x3b563c2478b72ee2) }, + /* 73 */ { 10, CNST_LIMB(0x295bb2f9285c8c1b), CNST_LIMB(0xc6130af40bc0ecbf), CNST_LIMB(0x3ba43bec1d062211), CNST_LIMB(0x12b536b574e92d1b) }, + /* 74 */ { 10, CNST_LIMB(0x293a3aebe2be1c92), CNST_LIMB(0xc6b3d78b6d3b24fb), CNST_LIMB(0x4455872d8fd4e400), CNST_LIMB(0xdf86c03020404fa5) }, + /* 75 */ { 10, CNST_LIMB(0x29196acc815ebd9f), CNST_LIMB(0xc7527b930c965bf2), CNST_LIMB(0x4e2694539f2f6c59), CNST_LIMB(0xa34adf02234eea8e) }, + /* 76 */ { 10, CNST_LIMB(0x28f93cfb40f5c22a), CNST_LIMB(0xc7ef05ae409a0288), CNST_LIMB(0x5938006c18900000), CNST_LIMB(0x6f46eb8574eb59dd) }, + /* 77 */ { 10, CNST_LIMB(0x28d9ac1badc64117), CNST_LIMB(0xc88983ed6985bae5), CNST_LIMB(0x65ad9912474aa649), CNST_LIMB(0x42459b481df47cec) }, + /* 78 */ { 10, CNST_LIMB(0x28bab310a196b478), CNST_LIMB(0xc92203d587039cc1), CNST_LIMB(0x73ae9ff4241ec400), CNST_LIMB(0x1b424b95d80ca505) }, + /* 79 */ { 10, CNST_LIMB(0x289c4cf88b774469), CNST_LIMB(0xc9b892675266f66c), CNST_LIMB(0x836612ee9c4ce1e1), CNST_LIMB(0xf2c1b982203a0dac) }, + /* 80 */ { 10, CNST_LIMB(0x287e7529fb244e91), CNST_LIMB(0xca4d3c25e68dc57f), CNST_LIMB(0x9502f90000000000), CNST_LIMB(0xb7cdfd9d7bdbab7d) }, + /* 81 */ { 10, CNST_LIMB(0x286127306a6a7a53), CNST_LIMB(0xcae00d1cfdeb43cf), CNST_LIMB(0xa8b8b452291fe821), CNST_LIMB(0x846d550e37b5063d) }, + /* 82 */ { 10, CNST_LIMB(0x28445ec93f792b1e), CNST_LIMB(0xcb7110e6ce866f2b), CNST_LIMB(0xbebf59a07dab4400), CNST_LIMB(0x57931eeaf85cf64f) }, + /* 83 */ { 10, CNST_LIMB(0x282817e1038950fa), CNST_LIMB(0xcc0052b18b0e2a19), CNST_LIMB(0xd7540d4093bc3109), CNST_LIMB(0x305a944507c82f47) }, + /* 84 */ { 10, CNST_LIMB(0x280c4e90c9ab1f45), CNST_LIMB(0xcc8ddd448f8b845a), CNST_LIMB(0xf2b96616f1900000), CNST_LIMB(0xe007ccc9c22781a) }, + /* 85 */ { 9, CNST_LIMB(0x27f0ff1bc1ee87cd), CNST_LIMB(0xcd19bb053fb0284e), CNST_LIMB(0x336de62af2bca35), CNST_LIMB(0x3e92c42e000eeed4) }, + /* 86 */ { 9, CNST_LIMB(0x27d625ecf571c340), CNST_LIMB(0xcda3f5fb9c415052), CNST_LIMB(0x39235ec33d49600), CNST_LIMB(0x1ebe59130db2795e) }, + /* 87 */ { 9, CNST_LIMB(0x27bbbf95282fcd45), CNST_LIMB(0xce2c97d694adab3f), CNST_LIMB(0x3f674e539585a17), CNST_LIMB(0x268859e90f51b89) }, + /* 88 */ { 9, CNST_LIMB(0x27a1c8c8ddaf84da), CNST_LIMB(0xceb3a9f01975077f), CNST_LIMB(0x4645b6958000000), CNST_LIMB(0xd24cde0463108cfa) }, + /* 89 */ { 9, CNST_LIMB(0x27883e5e7df3f518), CNST_LIMB(0xcf393550f3aa6906), CNST_LIMB(0x4dcb74afbc49c19), CNST_LIMB(0xa536009f37adc383) }, + /* 90 */ { 9, CNST_LIMB(0x276f1d4c9847e90e), CNST_LIMB(0xcfbd42b465836767), CNST_LIMB(0x56064e1d18d9a00), CNST_LIMB(0x7cea06ce1c9ace10) }, + /* 91 */ { 9, CNST_LIMB(0x275662a841b30191), CNST_LIMB(0xd03fda8b97997f33), CNST_LIMB(0x5f04fe2cd8a39fb), CNST_LIMB(0x58db032e72e8ba43) }, + /* 92 */ { 9, CNST_LIMB(0x273e0ba38d15a47b), CNST_LIMB(0xd0c10500d63aa658), CNST_LIMB(0x68d74421f5c0000), CNST_LIMB(0x388cc17cae105447) }, + /* 93 */ { 9, CNST_LIMB(0x2726158c1b13cf03), CNST_LIMB(0xd140c9faa1e5439e), CNST_LIMB(0x738df1f6ab4827d), CNST_LIMB(0x1b92672857620ce0) }, + /* 94 */ { 9, CNST_LIMB(0x270e7dc9c01d8e9b), CNST_LIMB(0xd1bf311e95d00de3), CNST_LIMB(0x7f3afbc9cfb5e00), CNST_LIMB(0x18c6a9575c2ade4) }, + /* 95 */ { 9, CNST_LIMB(0x26f741dd3f070d61), CNST_LIMB(0xd23c41d42727c808), CNST_LIMB(0x8bf187fba88f35f), CNST_LIMB(0xd44da7da8e44b24f) }, + /* 96 */ { 9, CNST_LIMB(0x26e05f5f16c2159e), CNST_LIMB(0xd2b803473f7ad0f3), CNST_LIMB(0x99c600000000000), CNST_LIMB(0xaa2f78f1b4cc6794) }, + /* 97 */ { 9, CNST_LIMB(0x26c9d3fe61e80598), CNST_LIMB(0xd3327c6ab49ca6c8), CNST_LIMB(0xa8ce21eb6531361), CNST_LIMB(0x843c067d091ee4cc) }, + /* 98 */ { 9, CNST_LIMB(0x26b39d7fc6ddab08), CNST_LIMB(0xd3abb3faa02166cc), CNST_LIMB(0xb92112c1a0b6200), CNST_LIMB(0x62005e1e913356e3) }, + /* 99 */ { 9, CNST_LIMB(0x269db9bc7772a5cc), CNST_LIMB(0xd423b07e986aa967), CNST_LIMB(0xcad7718b8747c43), CNST_LIMB(0x4316eed01dedd518) }, + /* 100 */ { 9, CNST_LIMB(0x268826a13ef3fde6), CNST_LIMB(0xd49a784bcd1b8afe), CNST_LIMB(0xde0b6b3a7640000), CNST_LIMB(0x2725dd1d243aba0e) }, + /* 101 */ { 9, CNST_LIMB(0x2672e22d9dbdbd9f), CNST_LIMB(0xd510118708a8f8dd), CNST_LIMB(0xf2d8cf5fe6d74c5), CNST_LIMB(0xddd9057c24cb54f) }, + /* 102 */ { 9, CNST_LIMB(0x265dea72f169cc99), CNST_LIMB(0xd5848226989d33c3), CNST_LIMB(0x1095d25bfa712600), CNST_LIMB(0xedeee175a736d2a1) }, + /* 103 */ { 9, CNST_LIMB(0x26493d93a8cb2514), CNST_LIMB(0xd5f7cff41e09aeb8), CNST_LIMB(0x121b7c4c3698faa7), CNST_LIMB(0xc4699f3df8b6b328) }, + /* 104 */ { 9, CNST_LIMB(0x2634d9c282f3ef82), CNST_LIMB(0xd66a008e4788cbcd), CNST_LIMB(0x13c09e8d68000000), CNST_LIMB(0x9ebbe7d859cb5a7c) }, + /* 105 */ { 9, CNST_LIMB(0x2620bd41d8933adc), CNST_LIMB(0xd6db196a761949d9), CNST_LIMB(0x15876ccb0b709ca9), CNST_LIMB(0x7c828b9887eb2179) }, + /* 106 */ { 9, CNST_LIMB(0x260ce662ef04088a), CNST_LIMB(0xd74b1fd64e0753c6), CNST_LIMB(0x17723c2976da2a00), CNST_LIMB(0x5d652ab99001adcf) }, + /* 107 */ { 9, CNST_LIMB(0x25f95385547353fd), CNST_LIMB(0xd7ba18f93502e409), CNST_LIMB(0x198384e9c259048b), CNST_LIMB(0x4114f1754e5d7b32) }, + /* 108 */ { 9, CNST_LIMB(0x25e60316448db8e1), CNST_LIMB(0xd82809d5be7072db), CNST_LIMB(0x1bbde41dfeec0000), CNST_LIMB(0x274b7c902f7e0188) }, + /* 109 */ { 9, CNST_LIMB(0x25d2f390152f74f5), CNST_LIMB(0xd894f74b06ef8b40), CNST_LIMB(0x1e241d6e3337910d), CNST_LIMB(0xfc9e0fbb32e210c) }, + /* 110 */ { 9, CNST_LIMB(0x25c02379aa9ad043), CNST_LIMB(0xd900e6160002ccfe), CNST_LIMB(0x20b91cee9901ee00), CNST_LIMB(0xf4afa3e594f8ea1f) }, + /* 111 */ { 9, CNST_LIMB(0x25ad9165f2c18907), CNST_LIMB(0xd96bdad2acb5f5ef), CNST_LIMB(0x237ff9079863dfef), CNST_LIMB(0xcd85c32e9e4437b0) }, + /* 112 */ { 9, CNST_LIMB(0x259b3bf36735c90c), CNST_LIMB(0xd9d5d9fd5010b366), CNST_LIMB(0x267bf47000000000), CNST_LIMB(0xa9bbb147e0dd92a8) }, + /* 113 */ { 9, CNST_LIMB(0x258921cb955e7693), CNST_LIMB(0xda3ee7f38e181ed0), CNST_LIMB(0x29b08039fbeda7f1), CNST_LIMB(0x8900447b70e8eb82) }, + /* 114 */ { 9, CNST_LIMB(0x257741a2ac9170af), CNST_LIMB(0xdaa708f58014d37c), CNST_LIMB(0x2d213df34f65f200), CNST_LIMB(0x6b0a92adaad5848a) }, + /* 115 */ { 9, CNST_LIMB(0x25659a3711bc827d), CNST_LIMB(0xdb0e4126bcc86bd7), CNST_LIMB(0x30d201d957a7c2d3), CNST_LIMB(0x4f990ad8740f0ee5) }, + /* 116 */ { 9, CNST_LIMB(0x25542a50f84b9c39), CNST_LIMB(0xdb74948f5532da4b), CNST_LIMB(0x34c6d52160f40000), CNST_LIMB(0x3670a9663a8d3610) }, + /* 117 */ { 9, CNST_LIMB(0x2542f0c20000377d), CNST_LIMB(0xdbda071cc67e6db5), CNST_LIMB(0x3903f855d8f4c755), CNST_LIMB(0x1f5c44188057be3c) }, + /* 118 */ { 9, CNST_LIMB(0x2531ec64d772bd64), CNST_LIMB(0xdc3e9ca2e1a05533), CNST_LIMB(0x3d8de5c8ec59b600), CNST_LIMB(0xa2bea956c4e4977) }, + /* 119 */ { 9, CNST_LIMB(0x25211c1ce2fb5a6e), CNST_LIMB(0xdca258dca9331635), CNST_LIMB(0x4269541d1ff01337), CNST_LIMB(0xed68b23033c3637e) }, + /* 120 */ { 9, CNST_LIMB(0x25107ed5e7c3ec3b), CNST_LIMB(0xdd053f6d26089673), CNST_LIMB(0x479b38e478000000), CNST_LIMB(0xc99cf624e50549c5) }, + /* 121 */ { 9, CNST_LIMB(0x25001383bac8a744), CNST_LIMB(0xdd6753e032ea0efe), CNST_LIMB(0x4d28cb56c33fa539), CNST_LIMB(0xa8adf7ae45e7577b) }, + /* 122 */ { 9, CNST_LIMB(0x24efd921f390bce3), CNST_LIMB(0xddc899ab3ff56c5e), CNST_LIMB(0x5317871fa13aba00), CNST_LIMB(0x8a5bc740b1c113e5) }, + /* 123 */ { 9, CNST_LIMB(0x24dfceb3a26bb203), CNST_LIMB(0xde29142e0e01401f), CNST_LIMB(0x596d2f44de9fa71b), CNST_LIMB(0x6e6c7efb81cfbb9b) }, + /* 124 */ { 9, CNST_LIMB(0x24cff3430a0341a7), CNST_LIMB(0xde88c6b3626a72aa), CNST_LIMB(0x602fd125c47c0000), CNST_LIMB(0x54aba5c5cada5f10) }, + /* 125 */ { 9, CNST_LIMB(0x24c045e15c149931), CNST_LIMB(0xdee7b471b3a9507d), CNST_LIMB(0x6765c793fa10079d), CNST_LIMB(0x3ce9a36f23c0fc90) }, + /* 126 */ { 9, CNST_LIMB(0x24b0c5a679267ae2), CNST_LIMB(0xdf45e08bcf06554e), CNST_LIMB(0x6f15be069b847e00), CNST_LIMB(0x26fb43de2c8cd2a8) }, + /* 127 */ { 9, CNST_LIMB(0x24a171b0b31461c8), CNST_LIMB(0xdfa34e1177c23362), CNST_LIMB(0x7746b3e82a77047f), CNST_LIMB(0x12b94793db8486a1) }, + /* 128 */ { 9, CNST_LIMB(0x2492492492492492), CNST_LIMB(0xdfffffffffffffff), CNST_LIMB(0x7), CNST_LIMB(0x0) }, + /* 129 */ { 9, CNST_LIMB(0x24834b2c9d85cdfe), CNST_LIMB(0xe05bf942dbbc2145), CNST_LIMB(0x894953f7ea890481), CNST_LIMB(0xdd5deca404c0156d) }, + /* 130 */ { 9, CNST_LIMB(0x247476f924137501), CNST_LIMB(0xe0b73cb42e16914c), CNST_LIMB(0x932abffea4848200), CNST_LIMB(0xbd51373330291de0) }, + /* 131 */ { 9, CNST_LIMB(0x2465cbc00a40cec0), CNST_LIMB(0xe111cd1d5133412e), CNST_LIMB(0x9dacb687d3d6a163), CNST_LIMB(0x9fa4025d66f23085) }, + /* 132 */ { 9, CNST_LIMB(0x245748bc980e0427), CNST_LIMB(0xe16bad3758efd873), CNST_LIMB(0xa8d8102a44840000), CNST_LIMB(0x842530ee2db4949d) }, + /* 133 */ { 9, CNST_LIMB(0x2448ed2f49eb0633), CNST_LIMB(0xe1c4dfab90aab5ef), CNST_LIMB(0xb4b60f9d140541e5), CNST_LIMB(0x6aa7f2766b03dc25) }, + /* 134 */ { 9, CNST_LIMB(0x243ab85da36e3167), CNST_LIMB(0xe21d6713f453f356), CNST_LIMB(0xc15065d4856e4600), CNST_LIMB(0x53035ba7ebf32e8d) }, + /* 135 */ { 9, CNST_LIMB(0x242ca99203ea8c18), CNST_LIMB(0xe27545fba4fe385a), CNST_LIMB(0xceb1363f396d23c7), CNST_LIMB(0x3d12091fc9fb4914) }, + /* 136 */ { 9, CNST_LIMB(0x241ec01b7cce4ea0), CNST_LIMB(0xe2cc7edf592262cf), CNST_LIMB(0xdce31b2488000000), CNST_LIMB(0x28b1cb81b1ef1849) }, + /* 137 */ { 9, CNST_LIMB(0x2410fb4da9b3b0fc), CNST_LIMB(0xe323142dc8c66b55), CNST_LIMB(0xebf12a24bca135c9), CNST_LIMB(0x15c35be67ae3e2c9) }, + /* 138 */ { 9, CNST_LIMB(0x24035a808a0f315e), CNST_LIMB(0xe379084815b5774c), CNST_LIMB(0xfbe6f8dbf88f4a00), CNST_LIMB(0x42a17bd09be1ff0) }, + /* 139 */ { 8, CNST_LIMB(0x23f5dd105c67ab9d), CNST_LIMB(0xe3ce5d822ff4b643), CNST_LIMB(0x1ef156c084ce761), CNST_LIMB(0x8bf461f03cf0bbf) }, + /* 140 */ { 8, CNST_LIMB(0x23e8825d7b05abb1), CNST_LIMB(0xe4231623369e78e5), CNST_LIMB(0x20c4e3b94a10000), CNST_LIMB(0xf3fbb43f68a32d05) }, + /* 141 */ { 8, CNST_LIMB(0x23db49cc3a0866fe), CNST_LIMB(0xe4773465d54aded7), CNST_LIMB(0x22b0695a08ba421), CNST_LIMB(0xd84f44c48564dc19) }, + /* 142 */ { 8, CNST_LIMB(0x23ce32c4c6cfb9f5), CNST_LIMB(0xe4caba789e2b8687), CNST_LIMB(0x24b4f35d7a4c100), CNST_LIMB(0xbe58ebcce7956abe) }, + /* 143 */ { 8, CNST_LIMB(0x23c13cb308ab6ab7), CNST_LIMB(0xe51daa7e60fdd34c), CNST_LIMB(0x26d397284975781), CNST_LIMB(0xa5fac463c7c134b7) }, + /* 144 */ { 8, CNST_LIMB(0x23b4670682c0c709), CNST_LIMB(0xe570068e7ef5a1e7), CNST_LIMB(0x290d74100000000), CNST_LIMB(0x8f19241e28c7d757) }, + /* 145 */ { 8, CNST_LIMB(0x23a7b13237187c8b), CNST_LIMB(0xe5c1d0b53bc09fca), CNST_LIMB(0x2b63b3a37866081), CNST_LIMB(0x799a6d046c0ae1ae) }, + /* 146 */ { 8, CNST_LIMB(0x239b1aac8ac74728), CNST_LIMB(0xe6130af40bc0ecbf), CNST_LIMB(0x2dd789f4d894100), CNST_LIMB(0x6566e37d746a9e40) }, + /* 147 */ { 8, CNST_LIMB(0x238ea2ef2b24c379), CNST_LIMB(0xe663b741df9c37c0), CNST_LIMB(0x306a35e51b58721), CNST_LIMB(0x526887dbfb5f788f) }, + /* 148 */ { 8, CNST_LIMB(0x23824976f4045a26), CNST_LIMB(0xe6b3d78b6d3b24fb), CNST_LIMB(0x331d01712e10000), CNST_LIMB(0x408af3382b8efd3d) }, + /* 149 */ { 8, CNST_LIMB(0x23760dc3d6e4d729), CNST_LIMB(0xe7036db376537b90), CNST_LIMB(0x35f14200a827c61), CNST_LIMB(0x2fbb374806ec05f1) }, + /* 150 */ { 8, CNST_LIMB(0x2369ef58c30bd43e), CNST_LIMB(0xe7527b930c965bf2), CNST_LIMB(0x38e858b62216100), CNST_LIMB(0x1fe7c0f0afce87fe) }, + /* 151 */ { 8, CNST_LIMB(0x235dedbb8e82aa1c), CNST_LIMB(0xe7a102f9d39a9331), CNST_LIMB(0x3c03b2c13176a41), CNST_LIMB(0x11003d517540d32e) }, + /* 152 */ { 8, CNST_LIMB(0x23520874dfeb1ffd), CNST_LIMB(0xe7ef05ae409a0288), CNST_LIMB(0x3f44c9b21000000), CNST_LIMB(0x2f5810f98eff0dc) }, + /* 153 */ { 8, CNST_LIMB(0x23463f1019228dd7), CNST_LIMB(0xe83c856dd81804b7), CNST_LIMB(0x42ad23cef3113c1), CNST_LIMB(0xeb72e35e7840d910) }, + /* 154 */ { 8, CNST_LIMB(0x233a911b42aa9b3c), CNST_LIMB(0xe88983ed6985bae5), CNST_LIMB(0x463e546b19a2100), CNST_LIMB(0xd27de19593dc3614) }, + /* 155 */ { 8, CNST_LIMB(0x232efe26f7cf33f9), CNST_LIMB(0xe8d602d948f83829), CNST_LIMB(0x49f9fc3f96684e1), CNST_LIMB(0xbaf391fd3e5e6fc2) }, + /* 156 */ { 8, CNST_LIMB(0x232385c65381b485), CNST_LIMB(0xe92203d587039cc1), CNST_LIMB(0x4de1c9c5dc10000), CNST_LIMB(0xa4bd38c55228c81d) }, + /* 157 */ { 8, CNST_LIMB(0x2318278edde1b39b), CNST_LIMB(0xe96d887e26cd57b7), CNST_LIMB(0x51f77994116d2a1), CNST_LIMB(0x8fc5a8de8e1de782) }, + /* 158 */ { 8, CNST_LIMB(0x230ce3187a6c2be9), CNST_LIMB(0xe9b892675266f66c), CNST_LIMB(0x563cd6bb3398100), CNST_LIMB(0x7bf9265bea9d3a3b) }, + /* 159 */ { 8, CNST_LIMB(0x2301b7fd56ca21bb), CNST_LIMB(0xea03231d8d8224ba), CNST_LIMB(0x5ab3bb270beeb01), CNST_LIMB(0x69454b325983dccd) }, + /* 160 */ { 8, CNST_LIMB(0x22f6a5d9da38341c), CNST_LIMB(0xea4d3c25e68dc57f), CNST_LIMB(0x5f5e10000000000), CNST_LIMB(0x5798ee2308c39df9) }, + /* 161 */ { 8, CNST_LIMB(0x22ebac4c9580d89f), CNST_LIMB(0xea96defe264b59be), CNST_LIMB(0x643dce0ec16f501), CNST_LIMB(0x46e40ba0fa66a753) }, + /* 162 */ { 8, CNST_LIMB(0x22e0caf633834beb), CNST_LIMB(0xeae00d1cfdeb43cf), CNST_LIMB(0x6954fe21e3e8100), CNST_LIMB(0x3717b0870b0db3a7) }, + /* 163 */ { 8, CNST_LIMB(0x22d601796a418886), CNST_LIMB(0xeb28c7f233bdd372), CNST_LIMB(0x6ea5b9755f440a1), CNST_LIMB(0x2825e6775d11cdeb) }, + /* 164 */ { 8, CNST_LIMB(0x22cb4f7aec6fd8b4), CNST_LIMB(0xeb7110e6ce866f2b), CNST_LIMB(0x74322a1c0410000), CNST_LIMB(0x1a01a1c09d1b4dac) }, + /* 165 */ { 8, CNST_LIMB(0x22c0b4a15b80d83e), CNST_LIMB(0xebb8e95d3f7d9df2), CNST_LIMB(0x79fc8b6ae8a46e1), CNST_LIMB(0xc9eb0a8bebc8f3e) }, + /* 166 */ { 8, CNST_LIMB(0x22b630953a28f77a), CNST_LIMB(0xec0052b18b0e2a19), CNST_LIMB(0x80072a66d512100), CNST_LIMB(0xffe357ff59e6a004) }, + /* 167 */ { 8, CNST_LIMB(0x22abc300df54ca7c), CNST_LIMB(0xec474e39705912d2), CNST_LIMB(0x86546633b42b9c1), CNST_LIMB(0xe7dfd1be05fa61a8) }, + /* 168 */ { 8, CNST_LIMB(0x22a16b90698da5d2), CNST_LIMB(0xec8ddd448f8b845a), CNST_LIMB(0x8ce6b0861000000), CNST_LIMB(0xd11ed6fc78f760e5) }, + /* 169 */ { 8, CNST_LIMB(0x229729f1b2c83ded), CNST_LIMB(0xecd4011c8f11979a), CNST_LIMB(0x93c08e16a022441), CNST_LIMB(0xbb8db609dd29ebfe) }, + /* 170 */ { 8, CNST_LIMB(0x228cfdd444992f78), CNST_LIMB(0xed19bb053fb0284e), CNST_LIMB(0x9ae49717f026100), CNST_LIMB(0xa71aec8d1813d532) }, + /* 171 */ { 8, CNST_LIMB(0x2282e6e94ccb8588), CNST_LIMB(0xed5f0c3cbf8fa470), CNST_LIMB(0xa25577ae24c1a61), CNST_LIMB(0x93b612a9f20fbc02) }, + /* 172 */ { 8, CNST_LIMB(0x2278e4e392557ecf), CNST_LIMB(0xeda3f5fb9c415052), CNST_LIMB(0xaa15f068e610000), CNST_LIMB(0x814fc7b19a67d317) }, + /* 173 */ { 8, CNST_LIMB(0x226ef7776aa7fd29), CNST_LIMB(0xede87974f3c81855), CNST_LIMB(0xb228d6bf7577921), CNST_LIMB(0x6fd9a03f2e0a4b7c) }, + /* 174 */ { 8, CNST_LIMB(0x22651e5aaf5532d0), CNST_LIMB(0xee2c97d694adab3f), CNST_LIMB(0xba91158ef5c4100), CNST_LIMB(0x5f4615a38d0d316e) }, + /* 175 */ { 8, CNST_LIMB(0x225b5944b40b4694), CNST_LIMB(0xee7052491d2c3e64), CNST_LIMB(0xc351ad9aec0b681), CNST_LIMB(0x4f8876863479a286) }, + /* 176 */ { 8, CNST_LIMB(0x2251a7ee3cdfcca5), CNST_LIMB(0xeeb3a9f01975077f), CNST_LIMB(0xcc6db6100000000), CNST_LIMB(0x4094d8a3041b60eb) }, + /* 177 */ { 8, CNST_LIMB(0x22480a1174e913d9), CNST_LIMB(0xeef69fea211b2627), CNST_LIMB(0xd5e85d09025c181), CNST_LIMB(0x32600b8ed883a09b) }, + /* 178 */ { 8, CNST_LIMB(0x223e7f69e522683c), CNST_LIMB(0xef393550f3aa6906), CNST_LIMB(0xdfc4e816401c100), CNST_LIMB(0x24df8c6eb4b6d1f1) }, + /* 179 */ { 8, CNST_LIMB(0x223507b46b988abe), CNST_LIMB(0xef7b6b399471103e), CNST_LIMB(0xea06b4c72947221), CNST_LIMB(0x18097a8ee151acef) }, + /* 180 */ { 8, CNST_LIMB(0x222ba2af32dbbb9e), CNST_LIMB(0xefbd42b465836767), CNST_LIMB(0xf4b139365210000), CNST_LIMB(0xbd48cc8ec1cd8e3) }, + /* 181 */ { 8, CNST_LIMB(0x22225019a9b4d16c), CNST_LIMB(0xeffebccd41ffcd5c), CNST_LIMB(0xffc80497d520961), CNST_LIMB(0x3807a8d67485fb) }, + /* 182 */ { 8, CNST_LIMB(0x22190fb47b1af172), CNST_LIMB(0xf03fda8b97997f33), CNST_LIMB(0x10b4ebfca1dee100), CNST_LIMB(0xea5768860b62e8d8) }, + /* 183 */ { 8, CNST_LIMB(0x220fe14186679801), CNST_LIMB(0xf0809cf27f703d52), CNST_LIMB(0x117492de921fc141), CNST_LIMB(0xd54faf5b635c5005) }, + /* 184 */ { 8, CNST_LIMB(0x2206c483d7c6b786), CNST_LIMB(0xf0c10500d63aa658), CNST_LIMB(0x123bb2ce41000000), CNST_LIMB(0xc14a56233a377926) }, + /* 185 */ { 8, CNST_LIMB(0x21fdb93fa0e0ccc5), CNST_LIMB(0xf10113b153c8ea7b), CNST_LIMB(0x130a8b6157bdecc1), CNST_LIMB(0xae39a88db7cd329f) }, + /* 186 */ { 8, CNST_LIMB(0x21f4bf3a31bcdcaa), CNST_LIMB(0xf140c9faa1e5439e), CNST_LIMB(0x13e15dede0e8a100), CNST_LIMB(0x9c10bde69efa7ab6) }, + /* 187 */ { 8, CNST_LIMB(0x21ebd639f1d86584), CNST_LIMB(0xf18028cf72976a4e), CNST_LIMB(0x14c06d941c0ca7e1), CNST_LIMB(0x8ac36c42a2836497) }, + /* 188 */ { 8, CNST_LIMB(0x21e2fe06597361a6), CNST_LIMB(0xf1bf311e95d00de3), CNST_LIMB(0x15a7ff487a810000), CNST_LIMB(0x7a463c8b84f5ef67) }, + /* 189 */ { 8, CNST_LIMB(0x21da3667eb0e8ccb), CNST_LIMB(0xf1fde3d30e812642), CNST_LIMB(0x169859ddc5c697a1), CNST_LIMB(0x6a8e5f5ad090fd4b) }, + /* 190 */ { 8, CNST_LIMB(0x21d17f282d1a300e), CNST_LIMB(0xf23c41d42727c808), CNST_LIMB(0x1791c60f6fed0100), CNST_LIMB(0x5b91a2943596fc56) }, + /* 191 */ { 8, CNST_LIMB(0x21c8d811a3d3c9e1), CNST_LIMB(0xf27a4c0585cbf805), CNST_LIMB(0x18948e8c0e6fba01), CNST_LIMB(0x4d4667b1c468e8f0) }, + /* 192 */ { 8, CNST_LIMB(0x21c040efcb50f858), CNST_LIMB(0xf2b803473f7ad0f3), CNST_LIMB(0x19a1000000000000), CNST_LIMB(0x3fa39ab547994daf) }, + /* 193 */ { 8, CNST_LIMB(0x21b7b98f11b61c1a), CNST_LIMB(0xf2f56875eb3f2614), CNST_LIMB(0x1ab769203dafc601), CNST_LIMB(0x32a0a9b2faee1e2a) }, + /* 194 */ { 8, CNST_LIMB(0x21af41bcd19739ba), CNST_LIMB(0xf3327c6ab49ca6c8), CNST_LIMB(0x1bd81ab557f30100), CNST_LIMB(0x26357ceac0e96962) }, + /* 195 */ { 8, CNST_LIMB(0x21a6d9474c81adf0), CNST_LIMB(0xf36f3ffb6d916240), CNST_LIMB(0x1d0367a69fed1ba1), CNST_LIMB(0x1a5a6f65caa5859e) }, + /* 196 */ { 8, CNST_LIMB(0x219e7ffda5ad572a), CNST_LIMB(0xf3abb3faa02166cc), CNST_LIMB(0x1e39a5057d810000), CNST_LIMB(0xf08480f672b4e86) }, + /* 197 */ { 8, CNST_LIMB(0x219635afdcd3e46d), CNST_LIMB(0xf3e7d9379f70166a), CNST_LIMB(0x1f7b2a18f29ac3e1), CNST_LIMB(0x4383340615612ca) }, + /* 198 */ { 8, CNST_LIMB(0x218dfa2ec92d0643), CNST_LIMB(0xf423b07e986aa967), CNST_LIMB(0x20c850694c2aa100), CNST_LIMB(0xf3c77969ee4be5a2) }, + /* 199 */ { 8, CNST_LIMB(0x2185cd4c148e4ae2), CNST_LIMB(0xf45f3a98a20738a4), CNST_LIMB(0x222173cc014980c1), CNST_LIMB(0xe00993cc187c5ec9) }, + /* 200 */ { 8, CNST_LIMB(0x217daeda36ad7a5c), CNST_LIMB(0xf49a784bcd1b8afe), CNST_LIMB(0x2386f26fc1000000), CNST_LIMB(0xcd2b297d889bc2b6) }, + /* 201 */ { 8, CNST_LIMB(0x21759eac708452fe), CNST_LIMB(0xf4d56a5b33cec44a), CNST_LIMB(0x24f92ce8af296d41), CNST_LIMB(0xbb214d5064862b22) }, + /* 202 */ { 8, CNST_LIMB(0x216d9c96c7d490d4), CNST_LIMB(0xf510118708a8f8dd), CNST_LIMB(0x2678863cd0ece100), CNST_LIMB(0xa9e1a7ca7ea10e20) }, + /* 203 */ { 8, CNST_LIMB(0x2165a86e02cb358c), CNST_LIMB(0xf54a6e8ca5438db1), CNST_LIMB(0x280563f0a9472d61), CNST_LIMB(0x99626e72b39ea0cf) }, + /* 204 */ { 8, CNST_LIMB(0x215dc207a3c20fdf), CNST_LIMB(0xf5848226989d33c3), CNST_LIMB(0x29a02e1406210000), CNST_LIMB(0x899a5ba9c13fafd9) }, + /* 205 */ { 8, CNST_LIMB(0x2155e939e51e8b37), CNST_LIMB(0xf5be4d0cb51434aa), CNST_LIMB(0x2b494f4efe6d2e21), CNST_LIMB(0x7a80a705391e96ff) }, + /* 206 */ { 8, CNST_LIMB(0x214e1ddbb54cd933), CNST_LIMB(0xf5f7cff41e09aeb8), CNST_LIMB(0x2d0134ef21cbc100), CNST_LIMB(0x6c0cfe23de23042a) }, + /* 207 */ { 8, CNST_LIMB(0x21465fc4b2d68f98), CNST_LIMB(0xf6310b8f55304840), CNST_LIMB(0x2ec84ef4da2ef581), CNST_LIMB(0x5e377df359c944dd) }, + /* 208 */ { 8, CNST_LIMB(0x213eaecd2893dd60), CNST_LIMB(0xf66a008e4788cbcd), CNST_LIMB(0x309f102100000000), CNST_LIMB(0x50f8ac5fc8f53985) }, + /* 209 */ { 8, CNST_LIMB(0x21370ace09f681c6), CNST_LIMB(0xf6a2af9e5a0f0a08), CNST_LIMB(0x3285ee02a1420281), CNST_LIMB(0x44497266278e35b7) }, + /* 210 */ { 8, CNST_LIMB(0x212f73a0ef6db7cb), CNST_LIMB(0xf6db196a761949d9), CNST_LIMB(0x347d6104fc324100), CNST_LIMB(0x382316831f7ee175) }, + /* 211 */ { 8, CNST_LIMB(0x2127e92012e25004), CNST_LIMB(0xf7133e9b156c7be5), CNST_LIMB(0x3685e47dade53d21), CNST_LIMB(0x2c7f377833b8946e) }, + /* 212 */ { 8, CNST_LIMB(0x21206b264c4a39a7), CNST_LIMB(0xf74b1fd64e0753c6), CNST_LIMB(0x389ff6bb15610000), CNST_LIMB(0x2157c761ab4163ef) }, + /* 213 */ { 8, CNST_LIMB(0x2118f98f0e52c28f), CNST_LIMB(0xf782bdbfdda6577b), CNST_LIMB(0x3acc1912ebb57661), CNST_LIMB(0x16a7071803cc49a9) }, + /* 214 */ { 8, CNST_LIMB(0x211194366320dc66), CNST_LIMB(0xf7ba18f93502e409), CNST_LIMB(0x3d0acff111946100), CNST_LIMB(0xc6781d80f8224fc) }, + /* 215 */ { 8, CNST_LIMB(0x210a3af8e926bb78), CNST_LIMB(0xf7f1322182cf15d1), CNST_LIMB(0x3f5ca2e692eaf841), CNST_LIMB(0x294092d370a900b) }, + /* 216 */ { 8, CNST_LIMB(0x2102edb3d00e29a6), CNST_LIMB(0xf82809d5be7072db), CNST_LIMB(0x41c21cb8e1000000), CNST_LIMB(0xf24f62335024a295) }, + /* 217 */ { 8, CNST_LIMB(0x20fbac44d5b6edc2), CNST_LIMB(0xf85ea0b0b27b2610), CNST_LIMB(0x443bcb714399a5c1), CNST_LIMB(0xe03b98f103fad6d2) }, + /* 218 */ { 8, CNST_LIMB(0x20f4768a4348ad08), CNST_LIMB(0xf894f74b06ef8b40), CNST_LIMB(0x46ca406c81af2100), CNST_LIMB(0xcee3d32cad2a9049) }, + /* 219 */ { 8, CNST_LIMB(0x20ed4c62ea57b1f0), CNST_LIMB(0xf8cb0e3b4b3bbdb3), CNST_LIMB(0x496e106ac22aaae1), CNST_LIMB(0xbe3f9df9277fdada) }, + /* 220 */ { 8, CNST_LIMB(0x20e62dae221c087a), CNST_LIMB(0xf900e6160002ccfe), CNST_LIMB(0x4c27d39fa5410000), CNST_LIMB(0xae46f0d94c05e933) }, + /* 221 */ { 8, CNST_LIMB(0x20df1a4bc4ba6525), CNST_LIMB(0xf9367f6da0ab2e9c), CNST_LIMB(0x4ef825c296e43ca1), CNST_LIMB(0x9ef2280fb437a33d) }, + /* 222 */ { 8, CNST_LIMB(0x20d8121c2c9e506e), CNST_LIMB(0xf96bdad2acb5f5ef), CNST_LIMB(0x51dfa61f5ad88100), CNST_LIMB(0x9039ff426d3f284b) }, + /* 223 */ { 8, CNST_LIMB(0x20d1150031e51549), CNST_LIMB(0xf9a0f8d3b0e04fde), CNST_LIMB(0x54def7a6d2f16901), CNST_LIMB(0x82178c6d6b51f8f4) }, + /* 224 */ { 8, CNST_LIMB(0x20ca22d927d8f54d), CNST_LIMB(0xf9d5d9fd5010b366), CNST_LIMB(0x57f6c10000000000), CNST_LIMB(0x74843b1ee4c1e053) }, + /* 225 */ { 8, CNST_LIMB(0x20c33b88da7c29aa), CNST_LIMB(0xfa0a7eda4c112ce6), CNST_LIMB(0x5b27ac993df97701), CNST_LIMB(0x6779c7f90dc42f48) }, + /* 226 */ { 8, CNST_LIMB(0x20bc5ef18c233bdf), CNST_LIMB(0xfa3ee7f38e181ed0), CNST_LIMB(0x5e7268b9bbdf8100), CNST_LIMB(0x5af23c74f9ad9fe9) }, + /* 227 */ { 8, CNST_LIMB(0x20b58cf5f31e4526), CNST_LIMB(0xfa7315d02f20c7bd), CNST_LIMB(0x61d7a7932ff3d6a1), CNST_LIMB(0x4ee7eae2acdc617e) }, + /* 228 */ { 8, CNST_LIMB(0x20aec5793770a74d), CNST_LIMB(0xfaa708f58014d37c), CNST_LIMB(0x65581f53c8c10000), CNST_LIMB(0x43556aa2ac262a0b) }, + /* 229 */ { 8, CNST_LIMB(0x20a8085ef096d530), CNST_LIMB(0xfadac1e711c832d1), CNST_LIMB(0x68f48a385b8320e1), CNST_LIMB(0x3835949593b8ddd1) }, + /* 230 */ { 8, CNST_LIMB(0x20a1558b2359c4b1), CNST_LIMB(0xfb0e4126bcc86bd7), CNST_LIMB(0x6cada69ed07c2100), CNST_LIMB(0x2d837fbe78458762) }, + /* 231 */ { 8, CNST_LIMB(0x209aace23fafa72e), CNST_LIMB(0xfb418734a9008bd9), CNST_LIMB(0x70843718cdbf27c1), CNST_LIMB(0x233a7e150a54a555) }, + /* 232 */ { 8, CNST_LIMB(0x20940e491ea988d7), CNST_LIMB(0xfb74948f5532da4b), CNST_LIMB(0x7479027ea1000000), CNST_LIMB(0x19561984a50ff8fe) }, + /* 233 */ { 8, CNST_LIMB(0x208d79a5006d7a47), CNST_LIMB(0xfba769b39e49640e), CNST_LIMB(0x788cd40268f39641), CNST_LIMB(0xfd211159fe3490f) }, + /* 234 */ { 8, CNST_LIMB(0x2086eedb8a3cead3), CNST_LIMB(0xfbda071cc67e6db5), CNST_LIMB(0x7cc07b437ecf6100), CNST_LIMB(0x6aa563e655033e3) }, + /* 235 */ { 8, CNST_LIMB(0x20806dd2c486dcc6), CNST_LIMB(0xfc0c6d447c5dd362), CNST_LIMB(0x8114cc6220762061), CNST_LIMB(0xfbb614b3f2d3b14c) }, + /* 236 */ { 8, CNST_LIMB(0x2079f67119059fae), CNST_LIMB(0xfc3e9ca2e1a05533), CNST_LIMB(0x858aa0135be10000), CNST_LIMB(0xeac0f8837fb05773) }, + /* 237 */ { 8, CNST_LIMB(0x2073889d50e7bf63), CNST_LIMB(0xfc7095ae91e1c760), CNST_LIMB(0x8a22d3b53c54c321), CNST_LIMB(0xda6e4c10e8615ca5) }, + /* 238 */ { 8, CNST_LIMB(0x206d243e9303d929), CNST_LIMB(0xfca258dca9331635), CNST_LIMB(0x8ede496339f34100), CNST_LIMB(0xcab755a8d01fa67f) }, + /* 239 */ { 8, CNST_LIMB(0x2066c93c62170aa8), CNST_LIMB(0xfcd3e6a0ca8906c2), CNST_LIMB(0x93bde80aec3a1481), CNST_LIMB(0xbb95a9ae71aa3e0c) }, + /* 240 */ { 8, CNST_LIMB(0x2060777e9b0db0f6), CNST_LIMB(0xfd053f6d26089673), CNST_LIMB(0x98c29b8100000000), CNST_LIMB(0xad0326c296b4f529) }, + /* 241 */ { 8, CNST_LIMB(0x205a2eed73563032), CNST_LIMB(0xfd3663b27f31d529), CNST_LIMB(0x9ded549671832381), CNST_LIMB(0x9ef9f21eed31b7c1) }, + /* 242 */ { 8, CNST_LIMB(0x2053ef71773d7e6a), CNST_LIMB(0xfd6753e032ea0efe), CNST_LIMB(0xa33f092e0b1ac100), CNST_LIMB(0x91747422be14b0b2) }, + /* 243 */ { 8, CNST_LIMB(0x204db8f388552ea9), CNST_LIMB(0xfd9810643d6614c3), CNST_LIMB(0xa8b8b452291fe821), CNST_LIMB(0x846d550e37b5063d) }, + /* 244 */ { 8, CNST_LIMB(0x20478b5cdbe2bb2f), CNST_LIMB(0xfdc899ab3ff56c5e), CNST_LIMB(0xae5b564ac3a10000), CNST_LIMB(0x77df79e9a96c06f6) }, + /* 245 */ { 8, CNST_LIMB(0x20416696f957cfbf), CNST_LIMB(0xfdf8f02086af2c4b), CNST_LIMB(0xb427f4b3be74c361), CNST_LIMB(0x6bc6019636c7d0c2) }, + /* 246 */ { 8, CNST_LIMB(0x203b4a8bb8d356e7), CNST_LIMB(0xfe29142e0e01401f), CNST_LIMB(0xba1f9a938041e100), CNST_LIMB(0x601c4205aebd9e47) }, + /* 247 */ { 8, CNST_LIMB(0x2035372541ab0f0d), CNST_LIMB(0xfe59063c8822ce56), CNST_LIMB(0xc0435871d1110f41), CNST_LIMB(0x54ddc59756f05016) }, + /* 248 */ { 8, CNST_LIMB(0x202f2c4e08fd6dcc), CNST_LIMB(0xfe88c6b3626a72aa), CNST_LIMB(0xc694446f01000000), CNST_LIMB(0x4a0648979c838c18) }, + /* 249 */ { 8, CNST_LIMB(0x202929f0d04b99e9), CNST_LIMB(0xfeb855f8ca88fb0d), CNST_LIMB(0xcd137a5b57ac3ec1), CNST_LIMB(0x3f91b6e0bb3a053d) }, + /* 250 */ { 8, CNST_LIMB(0x20232ff8a41b45eb), CNST_LIMB(0xfee7b471b3a9507d), CNST_LIMB(0xd3c21bcecceda100), CNST_LIMB(0x357c299a88ea76a5) }, + /* 251 */ { 8, CNST_LIMB(0x201d3e50daa036db), CNST_LIMB(0xff16e281db76303b), CNST_LIMB(0xdaa150410b788de1), CNST_LIMB(0x2bc1e517aecc56e3) }, + /* 252 */ { 8, CNST_LIMB(0x201754e5126d446d), CNST_LIMB(0xff45e08bcf06554e), CNST_LIMB(0xe1b24521be010000), CNST_LIMB(0x225f56ceb3da9f5d) }, + /* 253 */ { 8, CNST_LIMB(0x201173a1312ca135), CNST_LIMB(0xff74aef0efafadd7), CNST_LIMB(0xe8f62df12777c1a1), CNST_LIMB(0x1951136d53ad63ac) }, + /* 254 */ { 8, CNST_LIMB(0x200b9a71625f3b13), CNST_LIMB(0xffa34e1177c23362), CNST_LIMB(0xf06e445906fc0100), CNST_LIMB(0x1093d504b3cd7d93) }, + /* 255 */ { 8, CNST_LIMB(0x2005c94216230568), CNST_LIMB(0xffd1be4c7f2af942), CNST_LIMB(0xf81bc845c81bf801), CNST_LIMB(0x824794d1ec1814f) }, + /* 256 */ { 8, CNST_LIMB(0x1fffffffffffffff), CNST_LIMB(0xffffffffffffffff), CNST_LIMB(0x8), CNST_LIMB(0x0) }, +}; diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/mul_1.s b/vere/ext/gmp/gen/x86_64-linux/mpn/mul_1.s new file mode 100644 index 0000000..1644074 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/mul_1.s @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_mul_1c + .type __gmpn_mul_1c,@function + +__gmpn_mul_1c: + + + + + push %rbx + mov %r8, %r10 + + jmp .Lcommon + .size __gmpn_mul_1c,.-__gmpn_mul_1c + + .globl __gmpn_mul_1 + .type __gmpn_mul_1,@function + +__gmpn_mul_1: + + + + + + push %rbx + xor %r10, %r10 +.Lcommon: + mov (%rsi), %rax + mov %rdx, %rbx + + mul %rcx + mov %rbx, %r11 + + add %r10, %rax + adc $0, %rdx + + and $3, %ebx + jz .Lb0 + cmp $2, %ebx + jz .Lb2 + jg .Lb3 + +.Lb1: dec %r11 + jne .Lgt1 + mov %rax, (%rdi) + jmp .Lret +.Lgt1: lea 8(%rsi,%r11,8), %rsi + lea -8(%rdi,%r11,8), %rdi + neg %r11 + xor %r10, %r10 + xor %ebx, %ebx + mov %rax, %r9 + mov (%rsi,%r11,8), %rax + mov %rdx, %r8 + jmp .LL1 + +.Lb0: lea (%rsi,%r11,8), %rsi + lea -16(%rdi,%r11,8), %rdi + neg %r11 + xor %r10, %r10 + mov %rax, %r8 + mov %rdx, %rbx + jmp .LL0 + +.Lb3: lea -8(%rsi,%r11,8), %rsi + lea -24(%rdi,%r11,8), %rdi + neg %r11 + mov %rax, %rbx + mov %rdx, %r10 + jmp .LL3 + +.Lb2: lea -16(%rsi,%r11,8), %rsi + lea -32(%rdi,%r11,8), %rdi + neg %r11 + xor %r8, %r8 + xor %ebx, %ebx + mov %rax, %r10 + mov 24(%rsi,%r11,8), %rax + mov %rdx, %r9 + jmp .LL2 + + .align 16, 0x90 +.Ltop: mov %r10, (%rdi,%r11,8) + add %rax, %r9 + mov (%rsi,%r11,8), %rax + adc %rdx, %r8 + mov $0, %r10d +.LL1: mul %rcx + mov %r9, 8(%rdi,%r11,8) + add %rax, %r8 + adc %rdx, %rbx +.LL0: mov 8(%rsi,%r11,8), %rax + mul %rcx + mov %r8, 16(%rdi,%r11,8) + add %rax, %rbx + adc %rdx, %r10 +.LL3: mov 16(%rsi,%r11,8), %rax + mul %rcx + mov %rbx, 24(%rdi,%r11,8) + mov $0, %r8d + mov %r8, %rbx + add %rax, %r10 + mov 24(%rsi,%r11,8), %rax + mov %r8, %r9 + adc %rdx, %r9 +.LL2: mul %rcx + add $4, %r11 + js .Ltop + + mov %r10, (%rdi,%r11,8) + add %rax, %r9 + adc %r8, %rdx + mov %r9, 8(%rdi,%r11,8) + add %r8, %rdx +.Lret: mov %rdx, %rax + + pop %rbx + + + ret + .size __gmpn_mul_1,.-__gmpn_mul_1 diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/mul_2.s b/vere/ext/gmp/gen/x86_64-linux/mpn/mul_2.s new file mode 100644 index 0000000..0c3310d --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/mul_2.s @@ -0,0 +1,218 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_mul_2 + .type __gmpn_mul_2,@function + +__gmpn_mul_2: + + + push %rbx + push %rbp + + mov (%rcx), %r8 + mov 8(%rcx), %r9 + + mov (%rsi), %rax + + mov %rdx, %r11 + neg %r11 + lea -8(%rsi,%rdx,8), %rsi + lea -8(%rdi,%rdx,8), %rdi + + and $3, %edx + jz .Lm2p0 + cmp $2, %edx + jc .Lm2p1 + jz .Lm2p2 +.Lm2p3: + mul %r8 + xor %r10d, %r10d + mov %rax, %rcx + mov %rdx, %rbp + mov 8(%rsi,%r11,8), %rax + add $-1, %r11 + mul %r9 + add %rax, %rbp + jmp .Lm23 +.Lm2p0: + mul %r8 + xor %ebp, %ebp + mov %rax, %rbx + mov %rdx, %rcx + jmp .Lm20 +.Lm2p1: + mul %r8 + xor %r10d, %r10d + xor %ebx, %ebx + xor %ecx, %ecx + add $1, %r11 + jmp .Lm2top +.Lm2p2: + mul %r8 + xor %ebx, %ebx + xor %ecx, %ecx + mov %rax, %rbp + mov %rdx, %r10 + mov 8(%rsi,%r11,8), %rax + add $-2, %r11 + jmp .Lm22 + + + .align 32, 0x90 +.Lm2top: + add %rax, %r10 + adc %rdx, %rbx + mov 0(%rsi,%r11,8), %rax + adc $0, %ecx + mov $0, %ebp + mul %r9 + add %rax, %rbx + mov %r10, 0(%rdi,%r11,8) + adc %rdx, %rcx + mov 8(%rsi,%r11,8), %rax + mul %r8 + add %rax, %rbx + adc %rdx, %rcx + adc $0, %ebp +.Lm20: mov 8(%rsi,%r11,8), %rax + mul %r9 + add %rax, %rcx + adc %rdx, %rbp + mov 16(%rsi,%r11,8), %rax + mov $0, %r10d + mul %r8 + add %rax, %rcx + mov 16(%rsi,%r11,8), %rax + adc %rdx, %rbp + adc $0, %r10d + mul %r9 + add %rax, %rbp + mov %rbx, 8(%rdi,%r11,8) +.Lm23: adc %rdx, %r10 + mov 24(%rsi,%r11,8), %rax + mul %r8 + mov $0, %ebx + add %rax, %rbp + adc %rdx, %r10 + mov %rcx, 16(%rdi,%r11,8) + mov 24(%rsi,%r11,8), %rax + mov $0, %ecx + adc $0, %ebx +.Lm22: mul %r9 + add %rax, %r10 + mov %rbp, 24(%rdi,%r11,8) + adc %rdx, %rbx + mov 32(%rsi,%r11,8), %rax + mul %r8 + add $4, %r11 + js .Lm2top + + + add %rax, %r10 + adc %rdx, %rbx + adc $0, %ecx + mov (%rsi), %rax + mul %r9 + mov %r10, (%rdi) + add %rax, %rbx + adc %rdx, %rcx + mov %rbx, 8(%rdi) + mov %rcx, %rax + + pop %rbp + pop %rbx + + ret + .size __gmpn_mul_2,.-__gmpn_mul_2 diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/mul_basecase.s b/vere/ext/gmp/gen/x86_64-linux/mpn/mul_basecase.s new file mode 100644 index 0000000..2cfb7aa --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/mul_basecase.s @@ -0,0 +1,483 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_mul_basecase + .type __gmpn_mul_basecase,@function + +__gmpn_mul_basecase: + + + + push %rbx + push %rbp + push %r12 + push %r13 + push %r14 + push %r15 + + xor %r13d, %r13d + mov (%rsi), %rax + mov (%rcx), %r12 + + sub %rdx, %r13 + mov %r13, %r11 + mov %edx, %ebx + + lea (%rdi,%rdx,8), %rdi + lea (%rsi,%rdx,8), %rsi + + mul %r12 + + test $1, %r8b + jz .Lmul_2 + + + + +.Lmul_1: + and $3, %ebx + jz .Lmul_1_prologue_0 + cmp $2, %ebx + jc .Lmul_1_prologue_1 + jz .Lmul_1_prologue_2 + +.Lmul_1_prologue_3: + add $-1, %r11 + lea .Laddmul_outer_3(%rip), %r14 + mov %rax, %r10 + mov %rdx, %rbx + jmp .Lmul_1_entry_3 + +.Lmul_1_prologue_0: + mov %rax, %rbp + mov %rdx, %r10 + lea .Laddmul_outer_0(%rip), %r14 + jmp .Lmul_1_entry_0 + +.Lmul_1_prologue_1: + cmp $-1, %r13 + jne 2f + mov %rax, -8(%rdi) + mov %rdx, (%rdi) + jmp .Lret +2: add $1, %r11 + lea .Laddmul_outer_1(%rip), %r14 + mov %rax, %r15 + mov %rdx, %rbp + xor %r10d, %r10d + mov (%rsi,%r11,8), %rax + jmp .Lmul_1_entry_1 + +.Lmul_1_prologue_2: + add $-2, %r11 + lea .Laddmul_outer_2(%rip), %r14 + mov %rax, %rbx + mov %rdx, %r15 + mov 24(%rsi,%r11,8), %rax + xor %ebp, %ebp + xor %r10d, %r10d + jmp .Lmul_1_entry_2 + + + + + .align 16, 0x90 +.Lmul_1_top: + mov %rbx, -16(%rdi,%r11,8) + add %rax, %r15 + mov (%rsi,%r11,8), %rax + adc %rdx, %rbp +.Lmul_1_entry_1: + xor %ebx, %ebx + mul %r12 + mov %r15, -8(%rdi,%r11,8) + add %rax, %rbp + adc %rdx, %r10 +.Lmul_1_entry_0: + mov 8(%rsi,%r11,8), %rax + mul %r12 + mov %rbp, (%rdi,%r11,8) + add %rax, %r10 + adc %rdx, %rbx +.Lmul_1_entry_3: + mov 16(%rsi,%r11,8), %rax + mul %r12 + mov %r10, 8(%rdi,%r11,8) + xor %ebp, %ebp + mov %rbp, %r10 + add %rax, %rbx + mov 24(%rsi,%r11,8), %rax + mov %rbp, %r15 + adc %rdx, %r15 +.Lmul_1_entry_2: + mul %r12 + add $4, %r11 + js .Lmul_1_top + + mov %rbx, -16(%rdi) + add %rax, %r15 + mov %r15, -8(%rdi) + adc %rdx, %rbp + mov %rbp, (%rdi) + + add $-1, %r8 + jz .Lret + + mov 8(%rcx), %r12 + mov 16(%rcx), %r9 + + lea 8(%rcx), %rcx + lea 8(%rdi), %rdi + + jmp *%r14 + + + + + .align 16, 0x90 +.Lmul_2: + mov 8(%rcx), %r9 + + and $3, %ebx + jz .Lmul_2_prologue_0 + cmp $2, %ebx + jz .Lmul_2_prologue_2 + jc .Lmul_2_prologue_1 + +.Lmul_2_prologue_3: + lea .Laddmul_outer_3(%rip), %r14 + add $2, %r11 + mov %rax, -16(%rdi,%r11,8) + mov %rdx, %rbp + xor %r10d, %r10d + xor %ebx, %ebx + mov -16(%rsi,%r11,8), %rax + jmp .Lmul_2_entry_3 + + .align 16, 0x90 +.Lmul_2_prologue_0: + add $3, %r11 + mov %rax, %rbx + mov %rdx, %r15 + xor %ebp, %ebp + mov -24(%rsi,%r11,8), %rax + lea .Laddmul_outer_0(%rip), %r14 + jmp .Lmul_2_entry_0 + + .align 16, 0x90 +.Lmul_2_prologue_1: + mov %rax, %r10 + mov %rdx, %rbx + xor %r15d, %r15d + lea .Laddmul_outer_1(%rip), %r14 + jmp .Lmul_2_entry_1 + + .align 16, 0x90 +.Lmul_2_prologue_2: + add $1, %r11 + lea .Laddmul_outer_2(%rip), %r14 + mov $0, %ebx + mov $0, %r15d + mov %rax, %rbp + mov -8(%rsi,%r11,8), %rax + mov %rdx, %r10 + jmp .Lmul_2_entry_2 + + + + .align 16, 0x90 +.Lmul_2_top: + mov -32(%rsi,%r11,8), %rax + mul %r9 + add %rax, %rbx + adc %rdx, %r15 + mov -24(%rsi,%r11,8), %rax + xor %ebp, %ebp + mul %r12 + add %rax, %rbx + mov -24(%rsi,%r11,8), %rax + adc %rdx, %r15 + adc $0, %ebp +.Lmul_2_entry_0: + mul %r9 + add %rax, %r15 + mov %rbx, -24(%rdi,%r11,8) + adc %rdx, %rbp + mov -16(%rsi,%r11,8), %rax + mul %r12 + mov $0, %r10d + add %rax, %r15 + adc %rdx, %rbp + mov -16(%rsi,%r11,8), %rax + adc $0, %r10d + mov $0, %ebx + mov %r15, -16(%rdi,%r11,8) +.Lmul_2_entry_3: + mul %r9 + add %rax, %rbp + mov -8(%rsi,%r11,8), %rax + adc %rdx, %r10 + mov $0, %r15d + mul %r12 + add %rax, %rbp + mov -8(%rsi,%r11,8), %rax + adc %rdx, %r10 + adc %r15d, %ebx +.Lmul_2_entry_2: + mul %r9 + add %rax, %r10 + mov %rbp, -8(%rdi,%r11,8) + adc %rdx, %rbx + mov (%rsi,%r11,8), %rax + mul %r12 + add %rax, %r10 + adc %rdx, %rbx + adc $0, %r15d +.Lmul_2_entry_1: + add $4, %r11 + mov %r10, -32(%rdi,%r11,8) + js .Lmul_2_top + + mov -32(%rsi,%r11,8), %rax + mul %r9 + add %rax, %rbx + mov %rbx, (%rdi) + adc %rdx, %r15 + mov %r15, 8(%rdi) + + add $-2, %r8 + jz .Lret + + mov 16(%rcx), %r12 + mov 24(%rcx), %r9 + + lea 16(%rcx), %rcx + lea 16(%rdi), %rdi + + jmp *%r14 + + + + + + + + +.Laddmul_outer_0: + add $3, %r13 + lea 0(%rip), %r14 + + mov %r13, %r11 + mov -24(%rsi,%r13,8), %rax + mul %r12 + mov %rax, %rbx + mov -24(%rsi,%r13,8), %rax + mov %rdx, %r15 + xor %ebp, %ebp + jmp .Laddmul_entry_0 + +.Laddmul_outer_1: + mov %r13, %r11 + mov (%rsi,%r13,8), %rax + mul %r12 + mov %rax, %r10 + mov (%rsi,%r13,8), %rax + mov %rdx, %rbx + xor %r15d, %r15d + jmp .Laddmul_entry_1 + +.Laddmul_outer_2: + add $1, %r13 + lea 0(%rip), %r14 + + mov %r13, %r11 + mov -8(%rsi,%r13,8), %rax + mul %r12 + xor %ebx, %ebx + mov %rax, %rbp + xor %r15d, %r15d + mov %rdx, %r10 + mov -8(%rsi,%r13,8), %rax + jmp .Laddmul_entry_2 + +.Laddmul_outer_3: + add $2, %r13 + lea 0(%rip), %r14 + + mov %r13, %r11 + mov -16(%rsi,%r13,8), %rax + xor %r10d, %r10d + mul %r12 + mov %rax, %r15 + mov -16(%rsi,%r13,8), %rax + mov %rdx, %rbp + jmp .Laddmul_entry_3 + + + + .align 16, 0x90 +.Laddmul_top: + add %r10, -32(%rdi,%r11,8) + adc %rax, %rbx + mov -24(%rsi,%r11,8), %rax + adc %rdx, %r15 + xor %ebp, %ebp + mul %r12 + add %rax, %rbx + mov -24(%rsi,%r11,8), %rax + adc %rdx, %r15 + adc %ebp, %ebp +.Laddmul_entry_0: + mul %r9 + xor %r10d, %r10d + add %rbx, -24(%rdi,%r11,8) + adc %rax, %r15 + mov -16(%rsi,%r11,8), %rax + adc %rdx, %rbp + mul %r12 + add %rax, %r15 + mov -16(%rsi,%r11,8), %rax + adc %rdx, %rbp + adc $0, %r10d +.Laddmul_entry_3: + mul %r9 + add %r15, -16(%rdi,%r11,8) + adc %rax, %rbp + mov -8(%rsi,%r11,8), %rax + adc %rdx, %r10 + mul %r12 + xor %ebx, %ebx + add %rax, %rbp + adc %rdx, %r10 + mov $0, %r15d + mov -8(%rsi,%r11,8), %rax + adc %r15d, %ebx +.Laddmul_entry_2: + mul %r9 + add %rbp, -8(%rdi,%r11,8) + adc %rax, %r10 + adc %rdx, %rbx + mov (%rsi,%r11,8), %rax + mul %r12 + add %rax, %r10 + mov (%rsi,%r11,8), %rax + adc %rdx, %rbx + adc $0, %r15d +.Laddmul_entry_1: + mul %r9 + add $4, %r11 + js .Laddmul_top + + add %r10, -8(%rdi) + adc %rax, %rbx + mov %rbx, (%rdi) + adc %rdx, %r15 + mov %r15, 8(%rdi) + + add $-2, %r8 + jz .Lret + + lea 16(%rdi), %rdi + lea 16(%rcx), %rcx + + mov (%rcx), %r12 + mov 8(%rcx), %r9 + + jmp *%r14 + + .align 16, 0x90 +.Lret: pop %r15 + pop %r14 + pop %r13 + pop %r12 + pop %rbp + pop %rbx + + ret + + .size __gmpn_mul_basecase,.-__gmpn_mul_basecase diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/mullo_basecase.s b/vere/ext/gmp/gen/x86_64-linux/mpn/mullo_basecase.s new file mode 100644 index 0000000..d76272c --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/mullo_basecase.s @@ -0,0 +1,439 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_mullo_basecase + .type __gmpn_mullo_basecase,@function + +__gmpn_mullo_basecase: + + + cmp $4, %rcx + jge .Lgen + mov (%rsi), %rax + mov (%rdx), %r8 + + lea .Ltab(%rip), %r9 + movslq (%r9,%rcx,4), %r10 + add %r10, %r9 + jmp *%r9 + + .section .data.rel.ro.local,"a",@progbits + .align 8, 0x90 +.Ltab: .long .Ltab-.Ltab + .long .L1-.Ltab + .long .L2-.Ltab + .long .L3-.Ltab + .text + +.L1: imul %r8, %rax + mov %rax, (%rdi) + + ret + +.L2: mov 8(%rdx), %r11 + imul %rax, %r11 + mul %r8 + mov %rax, (%rdi) + imul 8(%rsi), %r8 + lea (%r11, %rdx), %rax + add %r8, %rax + mov %rax, 8(%rdi) + + ret + +.L3: mov 8(%rdx), %r9 + mov 16(%rdx), %r11 + mul %r8 + mov %rax, (%rdi) + mov (%rsi), %rax + mov %rdx, %rcx + mul %r9 + imul 8(%rsi), %r9 + mov 16(%rsi), %r10 + imul %r8, %r10 + add %rax, %rcx + adc %rdx, %r9 + add %r10, %r9 + mov 8(%rsi), %rax + mul %r8 + add %rax, %rcx + adc %rdx, %r9 + mov %r11, %rax + imul (%rsi), %rax + add %rax, %r9 + mov %rcx, 8(%rdi) + mov %r9, 16(%rdi) + + ret + +.L0m4: +.L1m4: +.L2m4: +.L3m4: +.Lgen: push %rbx + push %rbp + push %r13 + push %r14 + push %r15 + + mov (%rsi), %rax + mov (%rdx), %r13 + mov %rdx, %r11 + + lea (%rdi,%rcx,8), %rdi + lea (%rsi,%rcx,8), %rsi + neg %rcx + + mul %r13 + + test $1, %cl + jz .Lmul_2 + +.Lmul_1: + lea -8(%rdi), %rdi + lea -8(%rsi), %rsi + test $2, %cl + jnz .Lmul_1_prologue_3 + +.Lmul_1_prologue_2: + lea -1(%rcx), %r9 + lea .Laddmul_outer_1(%rip), %r8 + mov %rax, %rbx + mov %rdx, %r15 + xor %ebp, %ebp + xor %r10d, %r10d + mov 16(%rsi,%rcx,8), %rax + jmp .Lmul_1_entry_2 + +.Lmul_1_prologue_3: + lea 1(%rcx), %r9 + lea .Laddmul_outer_3(%rip), %r8 + mov %rax, %rbp + mov %rdx, %r10 + xor %ebx, %ebx + jmp .Lmul_1_entry_0 + + .align 16, 0x90 +.Lmul_1_top: + mov %rbx, -16(%rdi,%r9,8) + add %rax, %r15 + mov (%rsi,%r9,8), %rax + adc %rdx, %rbp + xor %ebx, %ebx + mul %r13 + mov %r15, -8(%rdi,%r9,8) + add %rax, %rbp + adc %rdx, %r10 +.Lmul_1_entry_0: + mov 8(%rsi,%r9,8), %rax + mul %r13 + mov %rbp, (%rdi,%r9,8) + add %rax, %r10 + adc %rdx, %rbx + mov 16(%rsi,%r9,8), %rax + mul %r13 + mov %r10, 8(%rdi,%r9,8) + xor %ebp, %ebp + mov %rbp, %r10 + add %rax, %rbx + mov 24(%rsi,%r9,8), %rax + mov %rbp, %r15 + adc %rdx, %r15 +.Lmul_1_entry_2: + mul %r13 + add $4, %r9 + js .Lmul_1_top + + mov %rbx, -16(%rdi) + add %rax, %r15 + mov %r15, -8(%rdi) + adc %rdx, %rbp + + imul (%rsi), %r13 + add %r13, %rbp + mov %rbp, (%rdi) + + add $1, %rcx + jz .Lret + + mov 8(%r11), %r13 + mov 16(%r11), %r14 + + lea 16(%rsi), %rsi + lea 8(%r11), %r11 + lea 24(%rdi), %rdi + + jmp *%r8 + + +.Lmul_2: + mov 8(%r11), %r14 + test $2, %cl + jz .Lmul_2_prologue_3 + + .align 16, 0x90 +.Lmul_2_prologue_1: + lea 0(%rcx), %r9 + mov %rax, %r10 + mov %rdx, %rbx + xor %r15d, %r15d + mov (%rsi,%rcx,8), %rax + lea .Laddmul_outer_3(%rip), %r8 + jmp .Lmul_2_entry_1 + + .align 16, 0x90 +.Lmul_2_prologue_3: + lea 2(%rcx), %r9 + mov $0, %r10d + mov %rax, %r15 + mov (%rsi,%rcx,8), %rax + mov %rdx, %rbp + lea .Laddmul_outer_1(%rip), %r8 + jmp .Lmul_2_entry_3 + + .align 16, 0x90 +.Lmul_2_top: + mov -32(%rsi,%r9,8), %rax + mul %r14 + add %rax, %rbx + adc %rdx, %r15 + mov -24(%rsi,%r9,8), %rax + xor %ebp, %ebp + mul %r13 + add %rax, %rbx + mov -24(%rsi,%r9,8), %rax + adc %rdx, %r15 + adc $0, %ebp + mul %r14 + add %rax, %r15 + mov %rbx, -24(%rdi,%r9,8) + adc %rdx, %rbp + mov -16(%rsi,%r9,8), %rax + mul %r13 + mov $0, %r10d + add %rax, %r15 + adc %rdx, %rbp + mov -16(%rsi,%r9,8), %rax + adc $0, %r10d +.Lmul_2_entry_3: + mov $0, %ebx + mov %r15, -16(%rdi,%r9,8) + mul %r14 + add %rax, %rbp + mov -8(%rsi,%r9,8), %rax + adc %rdx, %r10 + mov $0, %r15d + mul %r13 + add %rax, %rbp + mov -8(%rsi,%r9,8), %rax + adc %rdx, %r10 + adc %r15d, %ebx + mul %r14 + add %rax, %r10 + mov %rbp, -8(%rdi,%r9,8) + adc %rdx, %rbx + mov (%rsi,%r9,8), %rax + mul %r13 + add %rax, %r10 + adc %rdx, %rbx + adc $0, %r15d +.Lmul_2_entry_1: + add $4, %r9 + mov %r10, -32(%rdi,%r9,8) + js .Lmul_2_top + + imul -16(%rsi), %r14 + add %r14, %rbx + imul -8(%rsi), %r13 + add %r13, %rbx + mov %rbx, -8(%rdi) + + add $2, %rcx + jz .Lret + + mov 16(%r11), %r13 + mov 24(%r11), %r14 + + lea 16(%r11), %r11 + lea 16(%rdi), %rdi + + jmp *%r8 + + +.Laddmul_outer_1: + lea -2(%rcx), %r9 + mov -16(%rsi,%rcx,8), %rax + mul %r13 + mov %rax, %r10 + mov -16(%rsi,%rcx,8), %rax + mov %rdx, %rbx + xor %r15d, %r15d + lea .Laddmul_outer_3(%rip), %r8 + jmp .Laddmul_entry_1 + +.Laddmul_outer_3: + lea 0(%rcx), %r9 + mov -16(%rsi,%rcx,8), %rax + xor %r10d, %r10d + mul %r13 + mov %rax, %r15 + mov -16(%rsi,%rcx,8), %rax + mov %rdx, %rbp + lea .Laddmul_outer_1(%rip), %r8 + jmp .Laddmul_entry_3 + + .align 16, 0x90 +.Laddmul_top: + add %r10, -32(%rdi,%r9,8) + adc %rax, %rbx + mov -24(%rsi,%r9,8), %rax + adc %rdx, %r15 + xor %ebp, %ebp + mul %r13 + add %rax, %rbx + mov -24(%rsi,%r9,8), %rax + adc %rdx, %r15 + adc %ebp, %ebp + mul %r14 + xor %r10d, %r10d + add %rbx, -24(%rdi,%r9,8) + adc %rax, %r15 + mov -16(%rsi,%r9,8), %rax + adc %rdx, %rbp + mul %r13 + add %rax, %r15 + mov -16(%rsi,%r9,8), %rax + adc %rdx, %rbp + adc $0, %r10d +.Laddmul_entry_3: + mul %r14 + add %r15, -16(%rdi,%r9,8) + adc %rax, %rbp + mov -8(%rsi,%r9,8), %rax + adc %rdx, %r10 + mul %r13 + xor %ebx, %ebx + add %rax, %rbp + adc %rdx, %r10 + mov $0, %r15d + mov -8(%rsi,%r9,8), %rax + adc %r15d, %ebx + mul %r14 + add %rbp, -8(%rdi,%r9,8) + adc %rax, %r10 + adc %rdx, %rbx + mov (%rsi,%r9,8), %rax + mul %r13 + add %rax, %r10 + mov (%rsi,%r9,8), %rax + adc %rdx, %rbx + adc $0, %r15d +.Laddmul_entry_1: + mul %r14 + add $4, %r9 + js .Laddmul_top + + add %r10, -32(%rdi) + adc %rax, %rbx + + imul -24(%rsi), %r13 + add %r13, %rbx + add %rbx, -24(%rdi) + + add $2, %rcx + jns .Lret + + lea 16(%r11), %r11 + + mov (%r11), %r13 + mov 8(%r11), %r14 + + lea -16(%rsi), %rsi + + jmp *%r8 + +.Lret: pop %r15 + pop %r14 + pop %r13 + pop %rbp + pop %rbx + + ret + .size __gmpn_mullo_basecase,.-__gmpn_mullo_basecase diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/mulmid_basecase.s b/vere/ext/gmp/gen/x86_64-linux/mpn/mulmid_basecase.s new file mode 100644 index 0000000..b607e84 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/mulmid_basecase.s @@ -0,0 +1,573 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_mulmid_basecase + .type __gmpn_mulmid_basecase,@function + +__gmpn_mulmid_basecase: + + + + push %rbx + push %rbp + push %r12 + push %r13 + push %r14 + push %r15 + + mov %rcx, %r15 + + + lea 1(%rdx), %r13 + sub %r8, %r13 + + lea (%rdi,%r13,8), %rdi + + cmp $4, %r13 + jc .Ldiagonal + + lea (%rsi,%rdx,8), %rsi + + test $1, %r8 + jz .Lmul_2 + + + + +.Lmul_1: + mov %r13d, %ebx + + neg %r13 + mov (%rsi,%r13,8), %rax + mov (%r15), %r12 + mul %r12 + + and $-4, %r13 + mov %r13, %r11 + + and $3, %ebx + jz .Lmul_1_prologue_0 + cmp $2, %ebx + jc .Lmul_1_prologue_1 + jz .Lmul_1_prologue_2 + +.Lmul_1_prologue_3: + mov %rax, %r10 + mov %rdx, %rbx + lea .Laddmul_prologue_3(%rip), %r14 + jmp .Lmul_1_entry_3 + + .align 16, 0x90 +.Lmul_1_prologue_0: + mov %rax, %rbp + mov %rdx, %r10 + lea .Laddmul_prologue_0(%rip), %r14 + jmp .Lmul_1_entry_0 + + .align 16, 0x90 +.Lmul_1_prologue_1: + add $4, %r11 + mov %rax, %rcx + mov %rdx, %rbp + mov $0, %r10d + mov (%rsi,%r11,8), %rax + lea .Laddmul_prologue_1(%rip), %r14 + jmp .Lmul_1_entry_1 + + .align 16, 0x90 +.Lmul_1_prologue_2: + mov %rax, %rbx + mov %rdx, %rcx + mov 24(%rsi,%r11,8), %rax + mov $0, %ebp + mov $0, %r10d + lea .Laddmul_prologue_2(%rip), %r14 + jmp .Lmul_1_entry_2 + + + + + .align 16, 0x90 +.Lmul_1_top: + mov %rbx, -16(%rdi,%r11,8) + add %rax, %rcx + mov (%rsi,%r11,8), %rax + adc %rdx, %rbp +.Lmul_1_entry_1: + mov $0, %ebx + mul %r12 + mov %rcx, -8(%rdi,%r11,8) + add %rax, %rbp + adc %rdx, %r10 +.Lmul_1_entry_0: + mov 8(%rsi,%r11,8), %rax + mul %r12 + mov %rbp, (%rdi,%r11,8) + add %rax, %r10 + adc %rdx, %rbx +.Lmul_1_entry_3: + mov 16(%rsi,%r11,8), %rax + mul %r12 + mov %r10, 8(%rdi,%r11,8) + mov $0, %ebp + mov %rbp, %r10 + add %rax, %rbx + mov 24(%rsi,%r11,8), %rax + mov %rbp, %rcx + adc %rdx, %rcx +.Lmul_1_entry_2: + mul %r12 + add $4, %r11 + js .Lmul_1_top + + mov %rbx, -16(%rdi) + add %rax, %rcx + mov %rcx, -8(%rdi) + mov %rbp, 8(%rdi) + adc %rdx, %rbp + mov %rbp, (%rdi) + + dec %r8 + jz .Lret + + lea -8(%rsi), %rsi + lea 8(%r15), %r15 + + mov %r13, %r11 + mov (%r15), %r12 + mov 8(%r15), %r9 + + jmp *%r14 + + + + + .align 16, 0x90 +.Lmul_2: + mov %r13d, %ebx + + neg %r13 + mov -8(%rsi,%r13,8), %rax + mov (%r15), %r12 + mov 8(%r15), %r9 + mul %r9 + + and $-4, %r13 + mov %r13, %r11 + + and $3, %ebx + jz .Lmul_2_prologue_0 + cmp $2, %ebx + jc .Lmul_2_prologue_1 + jz .Lmul_2_prologue_2 + +.Lmul_2_prologue_3: + mov %rax, %rcx + mov %rdx, %rbp + lea .Laddmul_prologue_3(%rip), %r14 + jmp .Lmul_2_entry_3 + + .align 16, 0x90 +.Lmul_2_prologue_0: + mov %rax, %rbx + mov %rdx, %rcx + lea .Laddmul_prologue_0(%rip), %r14 + jmp .Lmul_2_entry_0 + + .align 16, 0x90 +.Lmul_2_prologue_1: + mov %rax, %r10 + mov %rdx, %rbx + mov $0, %ecx + lea .Laddmul_prologue_1(%rip), %r14 + jmp .Lmul_2_entry_1 + + .align 16, 0x90 +.Lmul_2_prologue_2: + mov %rax, %rbp + mov %rdx, %r10 + mov $0, %ebx + mov 16(%rsi,%r11,8), %rax + lea .Laddmul_prologue_2(%rip), %r14 + jmp .Lmul_2_entry_2 + + + + + .align 16, 0x90 +.Lmul_2_top: + mov -8(%rsi,%r11,8), %rax + mul %r9 + add %rax, %rbx + adc %rdx, %rcx +.Lmul_2_entry_0: + mov $0, %ebp + mov (%rsi,%r11,8), %rax + mul %r12 + add %rax, %rbx + mov (%rsi,%r11,8), %rax + adc %rdx, %rcx + adc $0, %ebp + mul %r9 + add %rax, %rcx + mov %rbx, (%rdi,%r11,8) + adc %rdx, %rbp +.Lmul_2_entry_3: + mov 8(%rsi,%r11,8), %rax + mul %r12 + mov $0, %r10d + add %rax, %rcx + adc %rdx, %rbp + mov $0, %ebx + adc $0, %r10d + mov 8(%rsi,%r11,8), %rax + mov %rcx, 8(%rdi,%r11,8) + mul %r9 + add %rax, %rbp + mov 16(%rsi,%r11,8), %rax + adc %rdx, %r10 +.Lmul_2_entry_2: + mov $0, %ecx + mul %r12 + add %rax, %rbp + mov 16(%rsi,%r11,8), %rax + adc %rdx, %r10 + adc $0, %ebx + mul %r9 + add %rax, %r10 + mov %rbp, 16(%rdi,%r11,8) + adc %rdx, %rbx +.Lmul_2_entry_1: + mov 24(%rsi,%r11,8), %rax + mul %r12 + add %rax, %r10 + adc %rdx, %rbx + adc $0, %ecx + add $4, %r11 + mov %r10, -8(%rdi,%r11,8) + jnz .Lmul_2_top + + mov %rbx, (%rdi) + mov %rcx, 8(%rdi) + + sub $2, %r8 + jz .Lret + + lea 16(%r15), %r15 + lea -16(%rsi), %rsi + + mov %r13, %r11 + mov (%r15), %r12 + mov 8(%r15), %r9 + + jmp *%r14 + + + + + .align 16, 0x90 +.Laddmul_prologue_0: + mov -8(%rsi,%r11,8), %rax + mul %r9 + mov %rax, %rcx + mov %rdx, %rbp + mov $0, %r10d + jmp .Laddmul_entry_0 + + .align 16, 0x90 +.Laddmul_prologue_1: + mov 16(%rsi,%r11,8), %rax + mul %r9 + mov %rax, %rbx + mov %rdx, %rcx + mov $0, %ebp + mov 24(%rsi,%r11,8), %rax + jmp .Laddmul_entry_1 + + .align 16, 0x90 +.Laddmul_prologue_2: + mov 8(%rsi,%r11,8), %rax + mul %r9 + mov %rax, %r10 + mov %rdx, %rbx + mov $0, %ecx + jmp .Laddmul_entry_2 + + .align 16, 0x90 +.Laddmul_prologue_3: + mov (%rsi,%r11,8), %rax + mul %r9 + mov %rax, %rbp + mov %rdx, %r10 + mov $0, %ebx + mov $0, %ecx + jmp .Laddmul_entry_3 + + + + .align 16, 0x90 +.Laddmul_top: + mov $0, %r10d + add %rax, %rbx + mov -8(%rsi,%r11,8), %rax + adc %rdx, %rcx + adc $0, %ebp + mul %r9 + add %rbx, -8(%rdi,%r11,8) + adc %rax, %rcx + adc %rdx, %rbp +.Laddmul_entry_0: + mov (%rsi,%r11,8), %rax + mul %r12 + add %rax, %rcx + mov (%rsi,%r11,8), %rax + adc %rdx, %rbp + adc $0, %r10d + mul %r9 + add %rcx, (%rdi,%r11,8) + mov $0, %ecx + adc %rax, %rbp + mov $0, %ebx + adc %rdx, %r10 +.Laddmul_entry_3: + mov 8(%rsi,%r11,8), %rax + mul %r12 + add %rax, %rbp + mov 8(%rsi,%r11,8), %rax + adc %rdx, %r10 + adc $0, %ebx + mul %r9 + add %rbp, 8(%rdi,%r11,8) + adc %rax, %r10 + adc %rdx, %rbx +.Laddmul_entry_2: + mov 16(%rsi,%r11,8), %rax + mul %r12 + add %rax, %r10 + mov 16(%rsi,%r11,8), %rax + adc %rdx, %rbx + adc $0, %ecx + mul %r9 + add %r10, 16(%rdi,%r11,8) + nop + adc %rax, %rbx + mov $0, %ebp + mov 24(%rsi,%r11,8), %rax + adc %rdx, %rcx +.Laddmul_entry_1: + mul %r12 + add $4, %r11 + jnz .Laddmul_top + + add %rax, %rbx + adc %rdx, %rcx + adc $0, %ebp + + add %rbx, -8(%rdi) + adc %rcx, (%rdi) + adc %rbp, 8(%rdi) + + sub $2, %r8 + jz .Lret + + lea 16(%r15), %r15 + lea -16(%rsi), %rsi + + mov %r13, %r11 + mov (%r15), %r12 + mov 8(%r15), %r9 + + jmp *%r14 + + + + + .align 16, 0x90 +.Ldiagonal: + xor %ebx, %ebx + xor %ecx, %ecx + xor %ebp, %ebp + + neg %r13 + + mov %r8d, %eax + and $3, %eax + jz .Ldiag_prologue_0 + cmp $2, %eax + jc .Ldiag_prologue_1 + jz .Ldiag_prologue_2 + +.Ldiag_prologue_3: + lea -8(%r15), %r15 + mov %r15, %r10 + add $1, %r8 + mov %r8, %r11 + lea .Ldiag_entry_3(%rip), %r14 + jmp .Ldiag_entry_3 + +.Ldiag_prologue_0: + mov %r15, %r10 + mov %r8, %r11 + lea 0(%rip), %r14 + mov -8(%rsi,%r11,8), %rax + jmp .Ldiag_entry_0 + +.Ldiag_prologue_1: + lea 8(%r15), %r15 + mov %r15, %r10 + add $3, %r8 + mov %r8, %r11 + lea 0(%rip), %r14 + mov -8(%r10), %rax + jmp .Ldiag_entry_1 + +.Ldiag_prologue_2: + lea -16(%r15), %r15 + mov %r15, %r10 + add $2, %r8 + mov %r8, %r11 + lea 0(%rip), %r14 + mov 16(%r10), %rax + jmp .Ldiag_entry_2 + + + + + .align 16, 0x90 +.Ldiag_top: + add %rax, %rbx + adc %rdx, %rcx + mov -8(%rsi,%r11,8), %rax + adc $0, %rbp +.Ldiag_entry_0: + mulq (%r10) + add %rax, %rbx + adc %rdx, %rcx + adc $0, %rbp +.Ldiag_entry_3: + mov -16(%rsi,%r11,8), %rax + mulq 8(%r10) + add %rax, %rbx + mov 16(%r10), %rax + adc %rdx, %rcx + adc $0, %rbp +.Ldiag_entry_2: + mulq -24(%rsi,%r11,8) + add %rax, %rbx + mov 24(%r10), %rax + adc %rdx, %rcx + lea 32(%r10), %r10 + adc $0, %rbp +.Ldiag_entry_1: + mulq -32(%rsi,%r11,8) + sub $4, %r11 + jnz .Ldiag_top + + add %rax, %rbx + adc %rdx, %rcx + adc $0, %rbp + + mov %rbx, (%rdi,%r13,8) + + inc %r13 + jz .Ldiag_end + + mov %r8, %r11 + mov %r15, %r10 + + lea 8(%rsi), %rsi + mov %rcx, %rbx + mov %rbp, %rcx + xor %ebp, %ebp + + jmp *%r14 + +.Ldiag_end: + mov %rcx, (%rdi) + mov %rbp, 8(%rdi) + +.Lret: pop %r15 + pop %r14 + pop %r13 + pop %r12 + pop %rbp + pop %rbx + + ret + .size __gmpn_mulmid_basecase,.-__gmpn_mulmid_basecase diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/nand_n.s b/vere/ext/gmp/gen/x86_64-linux/mpn/nand_n.s new file mode 100644 index 0000000..04593b9 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/nand_n.s @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 32, 0x90 + .globl __gmpn_nand_n + .type __gmpn_nand_n,@function + +__gmpn_nand_n: + + + mov (%rdx), %r8 + mov %ecx, %eax + lea (%rdx,%rcx,8), %rdx + lea (%rsi,%rcx,8), %rsi + lea (%rdi,%rcx,8), %rdi + neg %rcx + and $3, %eax + je .Lb00 + cmp $2, %eax + jc .Lb01 + je .Lb10 + +.Lb11: and (%rsi,%rcx,8), %r8 + not %r8 + mov %r8, (%rdi,%rcx,8) + dec %rcx + jmp .Le11 +.Lb10: add $-2, %rcx + jmp .Le10 + .byte 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90 +.Lb01: and (%rsi,%rcx,8), %r8 + not %r8 + mov %r8, (%rdi,%rcx,8) + inc %rcx + jz .Lret + +.Ltop: mov (%rdx,%rcx,8), %r8 +.Lb00: mov 8(%rdx,%rcx,8), %r9 + and (%rsi,%rcx,8), %r8 + not %r8 + and 8(%rsi,%rcx,8), %r9 + not %r9 + mov %r8, (%rdi,%rcx,8) + mov %r9, 8(%rdi,%rcx,8) +.Le11: mov 16(%rdx,%rcx,8), %r8 +.Le10: mov 24(%rdx,%rcx,8), %r9 + and 16(%rsi,%rcx,8), %r8 + not %r8 + and 24(%rsi,%rcx,8), %r9 + not %r9 + mov %r8, 16(%rdi,%rcx,8) + mov %r9, 24(%rdi,%rcx,8) + add $4, %rcx + jnc .Ltop + +.Lret: + ret + .size __gmpn_nand_n,.-__gmpn_nand_n + diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/nior_n.s b/vere/ext/gmp/gen/x86_64-linux/mpn/nior_n.s new file mode 100644 index 0000000..8ea0437 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/nior_n.s @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 32, 0x90 + .globl __gmpn_nior_n + .type __gmpn_nior_n,@function + +__gmpn_nior_n: + + + mov (%rdx), %r8 + mov %ecx, %eax + lea (%rdx,%rcx,8), %rdx + lea (%rsi,%rcx,8), %rsi + lea (%rdi,%rcx,8), %rdi + neg %rcx + and $3, %eax + je .Lb00 + cmp $2, %eax + jc .Lb01 + je .Lb10 + +.Lb11: or (%rsi,%rcx,8), %r8 + not %r8 + mov %r8, (%rdi,%rcx,8) + dec %rcx + jmp .Le11 +.Lb10: add $-2, %rcx + jmp .Le10 + .byte 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90 +.Lb01: or (%rsi,%rcx,8), %r8 + not %r8 + mov %r8, (%rdi,%rcx,8) + inc %rcx + jz .Lret + +.Ltop: mov (%rdx,%rcx,8), %r8 +.Lb00: mov 8(%rdx,%rcx,8), %r9 + or (%rsi,%rcx,8), %r8 + not %r8 + or 8(%rsi,%rcx,8), %r9 + not %r9 + mov %r8, (%rdi,%rcx,8) + mov %r9, 8(%rdi,%rcx,8) +.Le11: mov 16(%rdx,%rcx,8), %r8 +.Le10: mov 24(%rdx,%rcx,8), %r9 + or 16(%rsi,%rcx,8), %r8 + not %r8 + or 24(%rsi,%rcx,8), %r9 + not %r9 + mov %r8, 16(%rdi,%rcx,8) + mov %r9, 24(%rdi,%rcx,8) + add $4, %rcx + jnc .Ltop + +.Lret: + ret + .size __gmpn_nior_n,.-__gmpn_nior_n + diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/perfsqr.h b/vere/ext/gmp/gen/x86_64-linux/mpn/perfsqr.h new file mode 100644 index 0000000..80c5eb7 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/perfsqr.h @@ -0,0 +1,46 @@ +/* This file generated by gen-psqr.c - DO NOT EDIT. */ + +#if GMP_LIMB_BITS != 64 || GMP_NAIL_BITS != 0 +Error, error, this data is for 64 bit limb and 0 bit nail +#endif + +/* Non-zero bit indicates a quadratic residue mod 0x100. + This test identifies 82.81% as non-squares (212/256). */ +static const mp_limb_t +sq_res_0x100[4] = { + CNST_LIMB(0x202021202030213), + CNST_LIMB(0x202021202020213), + CNST_LIMB(0x202021202030212), + CNST_LIMB(0x202021202020212), +}; + +/* 2^48-1 = 3^2 * 5 * 7 * 13 * 17 * 97 ... */ +#define PERFSQR_MOD_BITS 49 + +/* This test identifies 97.81% as non-squares. */ +#define PERFSQR_MOD_TEST(up, usize) \ + do { \ + mp_limb_t r; \ + PERFSQR_MOD_34 (r, up, usize); \ + \ + /* 69.23% */ \ + PERFSQR_MOD_2 (r, CNST_LIMB(91), CNST_LIMB(0xfd2fd2fd2fd3), \ + CNST_LIMB(0x2191240), CNST_LIMB(0x8850a206953820e1)); \ + \ + /* 68.24% */ \ + PERFSQR_MOD_2 (r, CNST_LIMB(85), CNST_LIMB(0xfcfcfcfcfcfd), \ + CNST_LIMB(0x82158), CNST_LIMB(0x10b48c4b4206a105)); \ + \ + /* 55.56% */ \ + PERFSQR_MOD_1 (r, CNST_LIMB( 9), CNST_LIMB(0xe38e38e38e39), \ + CNST_LIMB(0x93)); \ + \ + /* 49.48% */ \ + PERFSQR_MOD_2 (r, CNST_LIMB(97), CNST_LIMB(0xfd5c5f02a3a1), \ + CNST_LIMB(0x1eb628b47), CNST_LIMB(0x6067981b8b451b5f)); \ + } while (0) + +/* Grand total sq_res_0x100 and PERFSQR_MOD_TEST, 99.62% non-squares. */ + +/* helper for tests/mpz/t-perfsqr.c */ +#define PERFSQR_DIVISORS { 256, 91, 85, 9, 97, } diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/popcount.s b/vere/ext/gmp/gen/x86_64-linux/mpn/popcount.s new file mode 100644 index 0000000..243219e --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/popcount.s @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 32, 0x90 + .globl __gmpn_popcount + .type __gmpn_popcount,@function + +__gmpn_popcount: + + + push %rbx + mov $0x5555555555555555, %r10 + push %rbp + mov $0x3333333333333333, %r11 + lea (%rdi,%rsi,8), %rdi + mov $0x0f0f0f0f0f0f0f0f, %rcx + neg %rsi + mov $0x0101010101010101, %rdx + xor %eax, %eax + test $1, %sil + jz .Ltop + + mov (%rdi,%rsi,8), %r8 + + mov %r8, %r9 + shr %r8 + and %r10, %r8 + sub %r8, %r9 + + mov %r9, %r8 + shr $2, %r9 + and %r11, %r8 + and %r11, %r9 + add %r8, %r9 + + dec %rsi + jmp .Lmid + + .align 16, 0x90 +.Ltop: mov (%rdi,%rsi,8), %r8 + mov 8(%rdi,%rsi,8), %rbx + + mov %r8, %r9 + mov %rbx, %rbp + shr %r8 + shr %rbx + and %r10, %r8 + and %r10, %rbx + sub %r8, %r9 + sub %rbx, %rbp + + mov %r9, %r8 + mov %rbp, %rbx + shr $2, %r9 + shr $2, %rbp + and %r11, %r8 + and %r11, %r9 + and %r11, %rbx + and %r11, %rbp + add %r8, %r9 + add %rbx, %rbp + + add %rbp, %r9 +.Lmid: mov %r9, %r8 + shr $4, %r9 + and %rcx, %r8 + and %rcx, %r9 + add %r8, %r9 + + imul %rdx, %r9 + shr $56, %r9 + + add %r9, %rax + add $2, %rsi + jnc .Ltop + +.Lend: + pop %rbp + pop %rbx + + ret + .size __gmpn_popcount,.-__gmpn_popcount diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/redc_1.s b/vere/ext/gmp/gen/x86_64-linux/mpn/redc_1.s new file mode 100644 index 0000000..da7fd88 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/redc_1.s @@ -0,0 +1,603 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 32, 0x90 + .globl __gmpn_redc_1 + .type __gmpn_redc_1,@function + +__gmpn_redc_1: + + + + push %rbp + mov (%rsi), %rbp + push %rbx + imul %r8, %rbp + push %r12 + push %r13 + push %r14 + push %r15 + + mov %rcx, %r12 + neg %r12 + lea (%rdx,%rcx,8), %r13 + lea -16(%rsi,%rcx,8), %rsi + + mov %ecx, %eax + and $3, %eax + lea 4(%rax), %r9 + cmp $4, %ecx + cmovg %r9, %rax + lea .Ltab(%rip), %r9 + + movslq (%r9,%rax,4), %rax + add %r9, %rax + jmp *%rax + + + .section .data.rel.ro.local,"a",@progbits + .align 8, 0x90 +.Ltab: .long .L0-.Ltab + .long .L1-.Ltab + .long .L2-.Ltab + .long .L3-.Ltab + .long .L0m4-.Ltab + .long .L1m4-.Ltab + .long .L2m4-.Ltab + .long .L3m4-.Ltab + .text + + .align 16, 0x90 +.L1: mov (%rdx), %rax + mul %rbp + add 8(%rsi), %rax + adc 16(%rsi), %rdx + mov %rdx, (%rdi) + mov $0, %eax + adc %eax, %eax + jmp .Lret + + + .align 16, 0x90 +.L2: mov (%rdx), %rax + mul %rbp + xor %r14d, %r14d + mov %rax, %r10 + mov -8(%r13), %rax + mov %rdx, %r9 + mul %rbp + add (%rsi), %r10 + adc %rax, %r9 + adc %rdx, %r14 + add 8(%rsi), %r9 + adc $0, %r14 + mov %r9, %rbp + imul %r8, %rbp + mov -16(%r13), %rax + mul %rbp + xor %ebx, %ebx + mov %rax, %r10 + mov -8(%r13), %rax + mov %rdx, %r11 + mul %rbp + add %r9, %r10 + adc %rax, %r11 + adc %rdx, %rbx + add 16(%rsi), %r11 + adc $0, %rbx + xor %eax, %eax + add %r11, %r14 + adc 24(%rsi), %rbx + mov %r14, (%rdi) + mov %rbx, 8(%rdi) + adc %eax, %eax + jmp .Lret + + +.L3: mov (%rdx), %rax + mul %rbp + mov %rax, %rbx + mov %rdx, %r10 + mov -16(%r13), %rax + mul %rbp + xor %r9d, %r9d + xor %r14d, %r14d + add -8(%rsi), %rbx + adc %rax, %r10 + mov -8(%r13), %rax + adc %rdx, %r9 + mul %rbp + add (%rsi), %r10 + mov %r10, (%rsi) + adc %rax, %r9 + adc %rdx, %r14 + mov %r10, %rbp + imul %r8, %rbp + add %r9, 8(%rsi) + adc $0, %r14 + mov %r14, -8(%rsi) + + mov -24(%r13), %rax + mul %rbp + mov %rax, %rbx + mov %rdx, %r10 + mov -16(%r13), %rax + mul %rbp + xor %r9d, %r9d + xor %r14d, %r14d + add (%rsi), %rbx + adc %rax, %r10 + mov -8(%r13), %rax + adc %rdx, %r9 + mul %rbp + add 8(%rsi), %r10 + mov %r10, 8(%rsi) + adc %rax, %r9 + adc %rdx, %r14 + mov %r10, %rbp + imul %r8, %rbp + add %r9, 16(%rsi) + adc $0, %r14 + mov %r14, (%rsi) + + mov -24(%r13), %rax + mul %rbp + mov %rax, %rbx + mov %rdx, %r10 + mov -16(%r13), %rax + mul %rbp + xor %r9d, %r9d + xor %r14d, %r14d + add 8(%rsi), %rbx + adc %rax, %r10 + mov -8(%r13), %rax + adc %rdx, %r9 + mul %rbp + add 16(%rsi), %r10 + adc %rax, %r9 + adc %rdx, %r14 + add 24(%rsi), %r9 + adc $0, %r14 + + xor %eax, %eax + add -8(%rsi), %r10 + adc (%rsi), %r9 + adc 32(%rsi), %r14 + mov %r10, (%rdi) + mov %r9, 8(%rdi) + mov %r14, 16(%rdi) + adc %eax, %eax + jmp .Lret + + + .align 16, 0x90 +.L2m4: +.Llo2: mov (%r13,%r12,8), %rax + mul %rbp + xor %r14d, %r14d + xor %ebx, %ebx + mov %rax, %r10 + mov 8(%r13,%r12,8), %rax + mov 24(%rsi,%r12,8), %r15 + mov %rdx, %r9 + mul %rbp + add 16(%rsi,%r12,8), %r10 + adc %rax, %r9 + mov 16(%r13,%r12,8), %rax + adc %rdx, %r14 + mul %rbp + mov $0, %r10d + lea 2(%r12), %r11 + add %r9, %r15 + imul %r8, %r15 + jmp .Le2 + + .align 16, 0x90 +.Lli2: add %r10, (%rsi,%r11,8) + adc %rax, %r9 + mov (%r13,%r11,8), %rax + adc %rdx, %r14 + xor %r10d, %r10d + mul %rbp +.Le2: add %r9, 8(%rsi,%r11,8) + adc %rax, %r14 + adc %rdx, %rbx + mov 8(%r13,%r11,8), %rax + mul %rbp + add %r14, 16(%rsi,%r11,8) + adc %rax, %rbx + adc %rdx, %r10 + mov 16(%r13,%r11,8), %rax + mul %rbp + add %rbx, 24(%rsi,%r11,8) + mov $0, %r14d + mov %r14, %rbx + adc %rax, %r10 + mov 24(%r13,%r11,8), %rax + mov %r14, %r9 + adc %rdx, %r9 + mul %rbp + add $4, %r11 + js .Lli2 + +.Lle2: add %r10, (%rsi) + adc %rax, %r9 + adc %r14, %rdx + add %r9, 8(%rsi) + adc $0, %rdx + mov %rdx, 16(%rsi,%r12,8) + add $8, %rsi + mov %r15, %rbp + dec %rcx + jnz .Llo2 + + mov %r12, %rcx + sar $2, %rcx + lea 32(%rsi,%r12,8), %rsi + lea (%rsi,%r12,8), %rdx + + mov -16(%rsi), %r8 + mov -8(%rsi), %r9 + add -16(%rdx), %r8 + adc -8(%rdx), %r9 + mov %r8, (%rdi) + mov %r9, 8(%rdi) + lea 16(%rdi), %rdi + jmp .Laddx + + + .align 16, 0x90 +.L1m4: +.Llo1: mov (%r13,%r12,8), %rax + xor %r9, %r9 + xor %ebx, %ebx + mul %rbp + mov %rax, %r9 + mov 8(%r13,%r12,8), %rax + mov 24(%rsi,%r12,8), %r15 + mov %rdx, %r14 + mov $0, %r10d + mul %rbp + add 16(%rsi,%r12,8), %r9 + adc %rax, %r14 + adc %rdx, %rbx + mov 16(%r13,%r12,8), %rax + mul %rbp + lea 1(%r12), %r11 + add %r14, %r15 + imul %r8, %r15 + jmp .Le1 + + .align 16, 0x90 +.Lli1: add %r10, (%rsi,%r11,8) + adc %rax, %r9 + mov (%r13,%r11,8), %rax + adc %rdx, %r14 + xor %r10d, %r10d + mul %rbp + add %r9, 8(%rsi,%r11,8) + adc %rax, %r14 + adc %rdx, %rbx + mov 8(%r13,%r11,8), %rax + mul %rbp +.Le1: add %r14, 16(%rsi,%r11,8) + adc %rax, %rbx + adc %rdx, %r10 + mov 16(%r13,%r11,8), %rax + mul %rbp + add %rbx, 24(%rsi,%r11,8) + mov $0, %r14d + mov %r14, %rbx + adc %rax, %r10 + mov 24(%r13,%r11,8), %rax + mov %r14, %r9 + adc %rdx, %r9 + mul %rbp + add $4, %r11 + js .Lli1 + +.Lle1: add %r10, (%rsi) + adc %rax, %r9 + adc %r14, %rdx + add %r9, 8(%rsi) + adc $0, %rdx + mov %rdx, 16(%rsi,%r12,8) + add $8, %rsi + mov %r15, %rbp + dec %rcx + jnz .Llo1 + + mov %r12, %rcx + sar $2, %rcx + lea 24(%rsi,%r12,8), %rsi + lea (%rsi,%r12,8), %rdx + + mov -8(%rsi), %r8 + add -8(%rdx), %r8 + mov %r8, (%rdi) + lea 8(%rdi), %rdi + jmp .Laddx + + + .align 16, 0x90 +.L0: +.L0m4: +.Llo0: mov (%r13,%r12,8), %rax + mov %r12, %r11 + mul %rbp + xor %r10d, %r10d + mov %rax, %r14 + mov %rdx, %rbx + mov 8(%r13,%r12,8), %rax + mov 24(%rsi,%r12,8), %r15 + mul %rbp + add 16(%rsi,%r12,8), %r14 + adc %rax, %rbx + adc %rdx, %r10 + add %rbx, %r15 + imul %r8, %r15 + jmp .Le0 + + .align 16, 0x90 +.Lli0: add %r10, (%rsi,%r11,8) + adc %rax, %r9 + mov (%r13,%r11,8), %rax + adc %rdx, %r14 + xor %r10d, %r10d + mul %rbp + add %r9, 8(%rsi,%r11,8) + adc %rax, %r14 + adc %rdx, %rbx + mov 8(%r13,%r11,8), %rax + mul %rbp + add %r14, 16(%rsi,%r11,8) + adc %rax, %rbx + adc %rdx, %r10 +.Le0: mov 16(%r13,%r11,8), %rax + mul %rbp + add %rbx, 24(%rsi,%r11,8) + mov $0, %r14d + mov %r14, %rbx + adc %rax, %r10 + mov 24(%r13,%r11,8), %rax + mov %r14, %r9 + adc %rdx, %r9 + mul %rbp + add $4, %r11 + js .Lli0 + +.Lle0: add %r10, (%rsi) + adc %rax, %r9 + adc %r14, %rdx + add %r9, 8(%rsi) + adc $0, %rdx + mov %rdx, 16(%rsi,%r12,8) + add $8, %rsi + mov %r15, %rbp + dec %rcx + jnz .Llo0 + + mov %r12, %rcx + sar $2, %rcx + clc + lea 16(%rsi,%r12,8), %rsi + lea (%rsi,%r12,8), %rdx + jmp .Laddy + + + .align 16, 0x90 +.L3m4: +.Llo3: mov (%r13,%r12,8), %rax + mul %rbp + mov %rax, %rbx + mov %rdx, %r10 + mov 8(%r13,%r12,8), %rax + mov 24(%rsi,%r12,8), %r15 + mul %rbp + add 16(%rsi,%r12,8), %rbx + mov $0, %ebx + mov %rbx, %r14 + adc %rax, %r10 + mov 16(%r13,%r12,8), %rax + mov %r14, %r9 + adc %rdx, %r9 + add %r10, %r15 + mul %rbp + lea 3(%r12), %r11 + imul %r8, %r15 + + + .align 16, 0x90 +.Lli3: add %r10, (%rsi,%r11,8) + adc %rax, %r9 + mov (%r13,%r11,8), %rax + adc %rdx, %r14 + xor %r10d, %r10d + mul %rbp + add %r9, 8(%rsi,%r11,8) + adc %rax, %r14 + adc %rdx, %rbx + mov 8(%r13,%r11,8), %rax + mul %rbp + add %r14, 16(%rsi,%r11,8) + adc %rax, %rbx + adc %rdx, %r10 + mov 16(%r13,%r11,8), %rax + mul %rbp + add %rbx, 24(%rsi,%r11,8) + mov $0, %r14d + mov %r14, %rbx + adc %rax, %r10 + mov 24(%r13,%r11,8), %rax + mov %r14, %r9 + adc %rdx, %r9 + mul %rbp + add $4, %r11 + js .Lli3 + +.Lle3: add %r10, (%rsi) + adc %rax, %r9 + adc %r14, %rdx + add %r9, 8(%rsi) + adc $0, %rdx + mov %rdx, 16(%rsi,%r12,8) + mov %r15, %rbp + lea 8(%rsi), %rsi + dec %rcx + jnz .Llo3 + + + + mov %r12, %rcx + sar $2, %rcx + lea 40(%rsi,%r12,8), %rsi + lea (%rsi,%r12,8), %rdx + + mov -24(%rsi), %r8 + mov -16(%rsi), %r9 + mov -8(%rsi), %r10 + add -24(%rdx), %r8 + adc -16(%rdx), %r9 + adc -8(%rdx), %r10 + mov %r8, (%rdi) + mov %r9, 8(%rdi) + mov %r10, 16(%rdi) + lea 24(%rdi), %rdi + +.Laddx:inc %rcx + jz .Lad3 + +.Laddy:mov (%rsi), %r8 + mov 8(%rsi), %r9 + inc %rcx + jmp .Lmid + + +.Lal3: adc (%rdx), %r8 + adc 8(%rdx), %r9 + adc 16(%rdx), %r10 + adc 24(%rdx), %r11 + mov %r8, (%rdi) + lea 32(%rsi), %rsi + mov %r9, 8(%rdi) + mov %r10, 16(%rdi) + inc %rcx + mov %r11, 24(%rdi) + lea 32(%rdx), %rdx + mov (%rsi), %r8 + mov 8(%rsi), %r9 + lea 32(%rdi), %rdi +.Lmid: mov 16(%rsi), %r10 + mov 24(%rsi), %r11 + jnz .Lal3 + +.Lae3: adc (%rdx), %r8 + adc 8(%rdx), %r9 + adc 16(%rdx), %r10 + adc 24(%rdx), %r11 + mov %r8, (%rdi) + mov %r9, 8(%rdi) + mov %r10, 16(%rdi) + mov %r11, 24(%rdi) + +.Lad3: mov %ecx, %eax + adc %eax, %eax + +.Lret: pop %r15 + pop %r14 + pop %r13 + pop %r12 + pop %rbx + pop %rbp + + ret + .size __gmpn_redc_1,.-__gmpn_redc_1 diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/rsblsh1_n.s b/vere/ext/gmp/gen/x86_64-linux/mpn/rsblsh1_n.s new file mode 100644 index 0000000..ac1323b --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/rsblsh1_n.s @@ -0,0 +1,179 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_rsblsh1_n + .type __gmpn_rsblsh1_n,@function + +__gmpn_rsblsh1_n: + + + push %rbp + + mov (%rdx), %r8 + mov %ecx, %eax + lea (%rdi,%rcx,8), %rdi + lea (%rsi,%rcx,8), %rsi + lea (%rdx,%rcx,8), %rdx + neg %rcx + xor %ebp, %ebp + and $3, %eax + je .Lb00 + cmp $2, %eax + jc .Lb01 + je .Lb10 + +.Lb11: add %r8, %r8 + mov 8(%rdx,%rcx,8), %r9 + adc %r9, %r9 + mov 16(%rdx,%rcx,8), %r10 + adc %r10, %r10 + sbb %eax, %eax + sub (%rsi,%rcx,8), %r8 + sbb 8(%rsi,%rcx,8), %r9 + mov %r8, (%rdi,%rcx,8) + mov %r9, 8(%rdi,%rcx,8) + sbb 16(%rsi,%rcx,8), %r10 + mov %r10, 16(%rdi,%rcx,8) + sbb %ebp, %ebp + add $3, %rcx + jmp .Lent + +.Lb10: add %r8, %r8 + mov 8(%rdx,%rcx,8), %r9 + adc %r9, %r9 + sbb %eax, %eax + sub (%rsi,%rcx,8), %r8 + sbb 8(%rsi,%rcx,8), %r9 + mov %r8, (%rdi,%rcx,8) + mov %r9, 8(%rdi,%rcx,8) + sbb %ebp, %ebp + add $2, %rcx + jmp .Lent + +.Lb01: add %r8, %r8 + sbb %eax, %eax + sub (%rsi,%rcx,8), %r8 + mov %r8, (%rdi,%rcx,8) + sbb %ebp, %ebp + inc %rcx +.Lent: jns .Lend + + .align 16, 0x90 +.Ltop: add %eax, %eax + + mov (%rdx,%rcx,8), %r8 +.Lb00: adc %r8, %r8 + mov 8(%rdx,%rcx,8), %r9 + adc %r9, %r9 + mov 16(%rdx,%rcx,8), %r10 + adc %r10, %r10 + mov 24(%rdx,%rcx,8), %r11 + adc %r11, %r11 + + sbb %eax, %eax + add %ebp, %ebp + + sbb (%rsi,%rcx,8), %r8 + nop + sbb 8(%rsi,%rcx,8), %r9 + mov %r8, (%rdi,%rcx,8) + mov %r9, 8(%rdi,%rcx,8) + sbb 16(%rsi,%rcx,8), %r10 + sbb 24(%rsi,%rcx,8), %r11 + mov %r10, 16(%rdi,%rcx,8) + mov %r11, 24(%rdi,%rcx,8) + + sbb %ebp, %ebp + add $4, %rcx + js .Ltop + +.Lend: + + + sub %eax, %ebp + movslq %ebp, %rax + + pop %rbp + + ret + .size __gmpn_rsblsh1_n,.-__gmpn_rsblsh1_n diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/rsblsh2_n.s b/vere/ext/gmp/gen/x86_64-linux/mpn/rsblsh2_n.s new file mode 100644 index 0000000..e9f079a --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/rsblsh2_n.s @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_rsblsh2_n + .type __gmpn_rsblsh2_n,@function + +__gmpn_rsblsh2_n: + + + push %r12 + push %r13 + push %r14 + push %r15 + + mov (%rdx), %r8 + lea (,%r8,4), %r12 + shr $62, %r8 + + mov %ecx, %eax + lea (%rdi,%rcx,8), %rdi + lea (%rsi,%rcx,8), %rsi + lea (%rdx,%rcx,8), %rdx + neg %rcx + and $3, %al + je .Lb00 + cmp $2, %al + jc .Lb01 + je .Lb10 + +.Lb11: mov 8(%rdx,%rcx,8), %r10 + lea (%r8,%r10,4), %r14 + shr $62, %r10 + mov 16(%rdx,%rcx,8), %r11 + lea (%r10,%r11,4), %r15 + shr $62, %r11 + sub (%rsi,%rcx,8), %r12 + sbb 8(%rsi,%rcx,8), %r14 + sbb 16(%rsi,%rcx,8), %r15 + sbb %eax, %eax + mov %r12, (%rdi,%rcx,8) + mov %r14, 8(%rdi,%rcx,8) + mov %r15, 16(%rdi,%rcx,8) + add $3, %rcx + js .Ltop + jmp .Lend + +.Lb01: mov %r8, %r11 + sub (%rsi,%rcx,8), %r12 + sbb %eax, %eax + mov %r12, (%rdi,%rcx,8) + add $1, %rcx + js .Ltop + jmp .Lend + +.Lb10: mov 8(%rdx,%rcx,8), %r11 + lea (%r8,%r11,4), %r15 + shr $62, %r11 + sub (%rsi,%rcx,8), %r12 + sbb 8(%rsi,%rcx,8), %r15 + sbb %eax, %eax + mov %r12, (%rdi,%rcx,8) + mov %r15, 8(%rdi,%rcx,8) + add $2, %rcx + js .Ltop + jmp .Lend + +.Lb00: mov 8(%rdx,%rcx,8), %r9 + mov 16(%rdx,%rcx,8), %r10 + jmp .Le00 + + .align 16, 0x90 +.Ltop: mov 16(%rdx,%rcx,8), %r10 + mov (%rdx,%rcx,8), %r8 + mov 8(%rdx,%rcx,8), %r9 + lea (%r11,%r8,4), %r12 + shr $62, %r8 +.Le00: lea (%r8,%r9,4), %r13 + shr $62, %r9 + mov 24(%rdx,%rcx,8), %r11 + lea (%r9,%r10,4), %r14 + shr $62, %r10 + lea (%r10,%r11,4), %r15 + shr $62, %r11 + add %eax, %eax + sbb (%rsi,%rcx,8), %r12 + sbb 8(%rsi,%rcx,8), %r13 + sbb 16(%rsi,%rcx,8), %r14 + sbb 24(%rsi,%rcx,8), %r15 + mov %r12, (%rdi,%rcx,8) + mov %r13, 8(%rdi,%rcx,8) + mov %r14, 16(%rdi,%rcx,8) + sbb %eax, %eax + mov %r15, 24(%rdi,%rcx,8) + add $4, %rcx + js .Ltop +.Lend: + + + add %r11d, %eax + movslq %eax, %rax + + pop %r15 + pop %r14 + pop %r13 + pop %r12 + + ret + .size __gmpn_rsblsh2_n,.-__gmpn_rsblsh2_n + diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/rsblsh_n.s b/vere/ext/gmp/gen/x86_64-linux/mpn/rsblsh_n.s new file mode 100644 index 0000000..d439217 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/rsblsh_n.s @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_rsblsh_n + .type __gmpn_rsblsh_n,@function + +__gmpn_rsblsh_n: + + + + push %r12 + push %rbp + push %rbx + + mov (%rdx), %rax + + mov $0, %ebp + sub %rcx, %rbp + + lea -16(%rsi,%rcx,8), %rsi + lea -16(%rdi,%rcx,8), %rdi + lea 16(%rdx,%rcx,8), %r12 + + mov %rcx, %r9 + + mov %r8, %rcx + mov $1, %r8d + shl %cl, %r8 + + mul %r8 + + and $3, %r9d + jz .Lb0 + cmp $2, %r9d + jc .Lb1 + jz .Lb2 + +.Lb3: mov %rax, %r11 + sub 16(%rsi,%rbp,8), %r11 + mov -8(%r12,%rbp,8), %rax + sbb %ecx, %ecx + mov %rdx, %rbx + mul %r8 + or %rax, %rbx + mov (%r12,%rbp,8), %rax + mov %rdx, %r9 + mul %r8 + or %rax, %r9 + add $3, %rbp + jnz .Llo3 + jmp .Lcj3 + +.Lb2: mov %rax, %rbx + mov -8(%r12,%rbp,8), %rax + mov %rdx, %r9 + mul %r8 + or %rax, %r9 + add $2, %rbp + jz .Lcj2 + mov %rdx, %r10 + mov -16(%r12,%rbp,8), %rax + mul %r8 + or %rax, %r10 + xor %ecx, %ecx + jmp .Llo2 + +.Lb1: mov %rax, %r9 + mov %rdx, %r10 + add $1, %rbp + jnz .Lgt1 + sub 8(%rsi,%rbp,8), %r9 + jmp .Lcj1 +.Lgt1: mov -16(%r12,%rbp,8), %rax + mul %r8 + or %rax, %r10 + mov %rdx, %r11 + mov -8(%r12,%rbp,8), %rax + mul %r8 + or %rax, %r11 + sub 8(%rsi,%rbp,8), %r9 + sbb 16(%rsi,%rbp,8), %r10 + sbb 24(%rsi,%rbp,8), %r11 + mov (%r12,%rbp,8), %rax + sbb %ecx, %ecx + jmp .Llo1 + +.Lb0: mov %rax, %r10 + mov %rdx, %r11 + mov -8(%r12,%rbp,8), %rax + mul %r8 + or %rax, %r11 + sub 16(%rsi,%rbp,8), %r10 + sbb 24(%rsi,%rbp,8), %r11 + mov (%r12,%rbp,8), %rax + sbb %ecx, %ecx + mov %rdx, %rbx + mul %r8 + or %rax, %rbx + mov 8(%r12,%rbp,8), %rax + add $4, %rbp + jz .Lend + + .align 8, 0x90 +.Ltop: mov %rdx, %r9 + mul %r8 + or %rax, %r9 + mov %r10, -16(%rdi,%rbp,8) +.Llo3: mov %rdx, %r10 + mov -16(%r12,%rbp,8), %rax + mul %r8 + or %rax, %r10 + mov %r11, -8(%rdi,%rbp,8) +.Llo2: mov %rdx, %r11 + mov -8(%r12,%rbp,8), %rax + mul %r8 + or %rax, %r11 + add %ecx, %ecx + sbb (%rsi,%rbp,8), %rbx + sbb 8(%rsi,%rbp,8), %r9 + sbb 16(%rsi,%rbp,8), %r10 + sbb 24(%rsi,%rbp,8), %r11 + mov (%r12,%rbp,8), %rax + sbb %ecx, %ecx + mov %rbx, (%rdi,%rbp,8) +.Llo1: mov %rdx, %rbx + mul %r8 + or %rax, %rbx + mov %r9, 8(%rdi,%rbp,8) +.Llo0: mov 8(%r12,%rbp,8), %rax + add $4, %rbp + jnz .Ltop + +.Lend: mov %rdx, %r9 + mul %r8 + or %rax, %r9 + mov %r10, -16(%rdi,%rbp,8) +.Lcj3: mov %r11, -8(%rdi,%rbp,8) +.Lcj2: add %ecx, %ecx + sbb (%rsi,%rbp,8), %rbx + sbb 8(%rsi,%rbp,8), %r9 + mov %rbx, (%rdi,%rbp,8) +.Lcj1: mov %r9, 8(%rdi,%rbp,8) + mov %rdx, %rax + sbb $0, %rax + pop %rbx + pop %rbp + pop %r12 + + ret + .size __gmpn_rsblsh_n,.-__gmpn_rsblsh_n diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/rsh1add_n.s b/vere/ext/gmp/gen/x86_64-linux/mpn/rsh1add_n.s new file mode 100644 index 0000000..8554f6f --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/rsh1add_n.s @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_rsh1add_nc + .type __gmpn_rsh1add_nc,@function + +__gmpn_rsh1add_nc: + + + + push %rbx + + xor %eax, %eax + neg %r8 + mov (%rsi), %rbx + adc (%rdx), %rbx + jmp .Lent + .size __gmpn_rsh1add_nc,.-__gmpn_rsh1add_nc + + .align 16, 0x90 + .globl __gmpn_rsh1add_n + .type __gmpn_rsh1add_n,@function + +__gmpn_rsh1add_n: + + + push %rbx + + xor %eax, %eax + mov (%rsi), %rbx + add (%rdx), %rbx +.Lent: + rcr %rbx + adc %eax, %eax + + mov %ecx, %r11d + and $3, %r11d + + cmp $1, %r11d + je .Ldo + +.Ln1: cmp $2, %r11d + jne .Ln2 + add %rbx, %rbx + mov 8(%rsi), %r10 + adc 8(%rdx), %r10 + lea 8(%rsi), %rsi + lea 8(%rdx), %rdx + lea 8(%rdi), %rdi + rcr %r10 + rcr %rbx + mov %rbx, -8(%rdi) + jmp .Lcj1 + +.Ln2: cmp $3, %r11d + jne .Ln3 + add %rbx, %rbx + mov 8(%rsi), %r9 + mov 16(%rsi), %r10 + adc 8(%rdx), %r9 + adc 16(%rdx), %r10 + lea 16(%rsi), %rsi + lea 16(%rdx), %rdx + lea 16(%rdi), %rdi + rcr %r10 + rcr %r9 + rcr %rbx + mov %rbx, -16(%rdi) + jmp .Lcj2 + +.Ln3: dec %rcx + add %rbx, %rbx + mov 8(%rsi), %r8 + mov 16(%rsi), %r9 + adc 8(%rdx), %r8 + adc 16(%rdx), %r9 + mov 24(%rsi), %r10 + adc 24(%rdx), %r10 + lea 24(%rsi), %rsi + lea 24(%rdx), %rdx + lea 24(%rdi), %rdi + rcr %r10 + rcr %r9 + rcr %r8 + rcr %rbx + mov %rbx, -24(%rdi) + mov %r8, -16(%rdi) +.Lcj2: mov %r9, -8(%rdi) +.Lcj1: mov %r10, %rbx + +.Ldo: + shr $2, %rcx + je .Lend + .align 16, 0x90 +.Ltop: add %rbx, %rbx + + mov 8(%rsi), %r8 + mov 16(%rsi), %r9 + adc 8(%rdx), %r8 + adc 16(%rdx), %r9 + mov 24(%rsi), %r10 + mov 32(%rsi), %r11 + adc 24(%rdx), %r10 + adc 32(%rdx), %r11 + + lea 32(%rsi), %rsi + lea 32(%rdx), %rdx + + rcr %r11 + rcr %r10 + rcr %r9 + rcr %r8 + + rcr %rbx + mov %rbx, (%rdi) + mov %r8, 8(%rdi) + mov %r9, 16(%rdi) + mov %r10, 24(%rdi) + mov %r11, %rbx + + lea 32(%rdi), %rdi + dec %rcx + jne .Ltop + +.Lend: mov %rbx, (%rdi) + pop %rbx + + ret + .size __gmpn_rsh1add_n,.-__gmpn_rsh1add_n diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/rsh1sub_n.s b/vere/ext/gmp/gen/x86_64-linux/mpn/rsh1sub_n.s new file mode 100644 index 0000000..ff06ece --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/rsh1sub_n.s @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_rsh1sub_nc + .type __gmpn_rsh1sub_nc,@function + +__gmpn_rsh1sub_nc: + + + + push %rbx + + xor %eax, %eax + neg %r8 + mov (%rsi), %rbx + sbb (%rdx), %rbx + jmp .Lent + .size __gmpn_rsh1sub_nc,.-__gmpn_rsh1sub_nc + + .align 16, 0x90 + .globl __gmpn_rsh1sub_n + .type __gmpn_rsh1sub_n,@function + +__gmpn_rsh1sub_n: + + + push %rbx + + xor %eax, %eax + mov (%rsi), %rbx + sub (%rdx), %rbx +.Lent: + rcr %rbx + adc %eax, %eax + + mov %ecx, %r11d + and $3, %r11d + + cmp $1, %r11d + je .Ldo + +.Ln1: cmp $2, %r11d + jne .Ln2 + add %rbx, %rbx + mov 8(%rsi), %r10 + sbb 8(%rdx), %r10 + lea 8(%rsi), %rsi + lea 8(%rdx), %rdx + lea 8(%rdi), %rdi + rcr %r10 + rcr %rbx + mov %rbx, -8(%rdi) + jmp .Lcj1 + +.Ln2: cmp $3, %r11d + jne .Ln3 + add %rbx, %rbx + mov 8(%rsi), %r9 + mov 16(%rsi), %r10 + sbb 8(%rdx), %r9 + sbb 16(%rdx), %r10 + lea 16(%rsi), %rsi + lea 16(%rdx), %rdx + lea 16(%rdi), %rdi + rcr %r10 + rcr %r9 + rcr %rbx + mov %rbx, -16(%rdi) + jmp .Lcj2 + +.Ln3: dec %rcx + add %rbx, %rbx + mov 8(%rsi), %r8 + mov 16(%rsi), %r9 + sbb 8(%rdx), %r8 + sbb 16(%rdx), %r9 + mov 24(%rsi), %r10 + sbb 24(%rdx), %r10 + lea 24(%rsi), %rsi + lea 24(%rdx), %rdx + lea 24(%rdi), %rdi + rcr %r10 + rcr %r9 + rcr %r8 + rcr %rbx + mov %rbx, -24(%rdi) + mov %r8, -16(%rdi) +.Lcj2: mov %r9, -8(%rdi) +.Lcj1: mov %r10, %rbx + +.Ldo: + shr $2, %rcx + je .Lend + .align 16, 0x90 +.Ltop: add %rbx, %rbx + + mov 8(%rsi), %r8 + mov 16(%rsi), %r9 + sbb 8(%rdx), %r8 + sbb 16(%rdx), %r9 + mov 24(%rsi), %r10 + mov 32(%rsi), %r11 + sbb 24(%rdx), %r10 + sbb 32(%rdx), %r11 + + lea 32(%rsi), %rsi + lea 32(%rdx), %rdx + + rcr %r11 + rcr %r10 + rcr %r9 + rcr %r8 + + rcr %rbx + mov %rbx, (%rdi) + mov %r8, 8(%rdi) + mov %r9, 16(%rdi) + mov %r10, 24(%rdi) + mov %r11, %rbx + + lea 32(%rdi), %rdi + dec %rcx + jne .Ltop + +.Lend: mov %rbx, (%rdi) + pop %rbx + + ret + .size __gmpn_rsh1sub_n,.-__gmpn_rsh1sub_n diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/rshift.s b/vere/ext/gmp/gen/x86_64-linux/mpn/rshift.s new file mode 100644 index 0000000..8ddd7b5 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/rshift.s @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 32, 0x90 + .globl __gmpn_rshift + .type __gmpn_rshift,@function + +__gmpn_rshift: + + + neg %ecx + mov (%rsi), %rax + shl %cl, %rax + neg %ecx + + lea 1(%rdx), %r8d + + lea -8(%rsi,%rdx,8), %rsi + lea -8(%rdi,%rdx,8), %rdi + neg %rdx + + and $3, %r8d + je .Lrlx + + dec %r8d + jne .L1 + + mov 8(%rsi,%rdx,8), %r10 + shr %cl, %r10 + neg %ecx + mov 16(%rsi,%rdx,8), %r8 + shl %cl, %r8 + or %r8, %r10 + mov %r10, 8(%rdi,%rdx,8) + inc %rdx + jmp .Lrll + +.L1: dec %r8d + je .L1x + + mov 8(%rsi,%rdx,8), %r10 + shr %cl, %r10 + neg %ecx + mov 16(%rsi,%rdx,8), %r8 + shl %cl, %r8 + or %r8, %r10 + mov %r10, 8(%rdi,%rdx,8) + inc %rdx + neg %ecx +.L1x: + cmp $-1, %rdx + je .Last + mov 8(%rsi,%rdx,8), %r10 + shr %cl, %r10 + mov 16(%rsi,%rdx,8), %r11 + shr %cl, %r11 + neg %ecx + mov 16(%rsi,%rdx,8), %r8 + mov 24(%rsi,%rdx,8), %r9 + shl %cl, %r8 + or %r8, %r10 + shl %cl, %r9 + or %r9, %r11 + mov %r10, 8(%rdi,%rdx,8) + mov %r11, 16(%rdi,%rdx,8) + add $2, %rdx + +.Lrll: neg %ecx +.Lrlx: mov 8(%rsi,%rdx,8), %r10 + shr %cl, %r10 + mov 16(%rsi,%rdx,8), %r11 + shr %cl, %r11 + + add $4, %rdx + jb .Lend + .align 16, 0x90 +.Ltop: + + neg %ecx + mov -16(%rsi,%rdx,8), %r8 + mov -8(%rsi,%rdx,8), %r9 + shl %cl, %r8 + or %r8, %r10 + shl %cl, %r9 + or %r9, %r11 + mov %r10, -24(%rdi,%rdx,8) + mov %r11, -16(%rdi,%rdx,8) + + mov (%rsi,%rdx,8), %r8 + mov 8(%rsi,%rdx,8), %r9 + shl %cl, %r8 + shl %cl, %r9 + + + neg %ecx + mov -8(%rsi,%rdx,8), %r10 + mov 0(%rsi,%rdx,8), %r11 + shr %cl, %r10 + or %r10, %r8 + shr %cl, %r11 + or %r11, %r9 + mov %r8, -8(%rdi,%rdx,8) + mov %r9, 0(%rdi,%rdx,8) + + mov 8(%rsi,%rdx,8), %r10 + mov 16(%rsi,%rdx,8), %r11 + shr %cl, %r10 + shr %cl, %r11 + + add $4, %rdx + jae .Ltop +.Lend: + neg %ecx + mov -8(%rsi), %r8 + shl %cl, %r8 + or %r8, %r10 + mov (%rsi), %r9 + shl %cl, %r9 + or %r9, %r11 + mov %r10, -16(%rdi) + mov %r11, -8(%rdi) + + neg %ecx +.Last: mov (%rsi), %r10 + shr %cl, %r10 + mov %r10, (%rdi) + + ret + .size __gmpn_rshift,.-__gmpn_rshift diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/sec_tabselect.s b/vere/ext/gmp/gen/x86_64-linux/mpn/sec_tabselect.s new file mode 100644 index 0000000..7a50a70 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/sec_tabselect.s @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_sec_tabselect + .type __gmpn_sec_tabselect,@function + +__gmpn_sec_tabselect: + + + + + push %rbx + push %rbp + push %r12 + push %r13 + push %r14 + push %r15 + + mov %rdx, %r9 + add $-4, %r9 + js .Louter_end + +.Louter_top: + mov %rcx, %rbp + push %rsi + xor %r12d, %r12d + xor %r13d, %r13d + xor %r14d, %r14d + xor %r15d, %r15d + mov %r8, %rbx + + .align 16, 0x90 +.Ltop: sub $1, %rbx + sbb %rax, %rax + mov 0(%rsi), %r10 + mov 8(%rsi), %r11 + and %rax, %r10 + and %rax, %r11 + or %r10, %r12 + or %r11, %r13 + mov 16(%rsi), %r10 + mov 24(%rsi), %r11 + and %rax, %r10 + and %rax, %r11 + or %r10, %r14 + or %r11, %r15 + lea (%rsi,%rdx,8), %rsi + add $-1, %rbp + jne .Ltop + + mov %r12, 0(%rdi) + mov %r13, 8(%rdi) + mov %r14, 16(%rdi) + mov %r15, 24(%rdi) + pop %rsi + lea 32(%rsi), %rsi + lea 32(%rdi), %rdi + add $-4, %r9 + jns .Louter_top +.Louter_end: + + test $2, %dl + jz .Lb0x +.Lb1x: mov %rcx, %rbp + push %rsi + xor %r12d, %r12d + xor %r13d, %r13d + mov %r8, %rbx + .align 16, 0x90 +.Ltp2: sub $1, %rbx + sbb %rax, %rax + mov 0(%rsi), %r10 + mov 8(%rsi), %r11 + and %rax, %r10 + and %rax, %r11 + or %r10, %r12 + or %r11, %r13 + lea (%rsi,%rdx,8), %rsi + add $-1, %rbp + jne .Ltp2 + mov %r12, 0(%rdi) + mov %r13, 8(%rdi) + pop %rsi + lea 16(%rsi), %rsi + lea 16(%rdi), %rdi + +.Lb0x: test $1, %dl + jz .Lb00 +.Lb01: mov %rcx, %rbp + xor %r12d, %r12d + mov %r8, %rbx + .align 16, 0x90 +.Ltp1: sub $1, %rbx + sbb %rax, %rax + mov 0(%rsi), %r10 + and %rax, %r10 + or %r10, %r12 + lea (%rsi,%rdx,8), %rsi + add $-1, %rbp + jne .Ltp1 + mov %r12, 0(%rdi) + +.Lb00: pop %r15 + pop %r14 + pop %r13 + pop %r12 + pop %rbp + pop %rbx + + ret + .size __gmpn_sec_tabselect,.-__gmpn_sec_tabselect diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/sqr_basecase.s b/vere/ext/gmp/gen/x86_64-linux/mpn/sqr_basecase.s new file mode 100644 index 0000000..eb24851 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/sqr_basecase.s @@ -0,0 +1,818 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_sqr_basecase + .type __gmpn_sqr_basecase,@function + +__gmpn_sqr_basecase: + + + mov %edx, %ecx + mov %edx, %r11d + + add $-40, %rsp + + and $3, %ecx + cmp $4, %edx + lea 4(%rcx), %r8 + + mov %rbx, 32(%rsp) + mov %rbp, 24(%rsp) + mov %r12, 16(%rsp) + mov %r13, 8(%rsp) + mov %r14, (%rsp) + + cmovg %r8, %rcx + + lea .Ltab(%rip), %rax + movslq (%rax,%rcx,4), %r10 + add %r10, %rax + jmp *%rax + + .section .data.rel.ro.local,"a",@progbits + .align 8, 0x90 +.Ltab: .long .L4-.Ltab + .long .L1-.Ltab + .long .L2-.Ltab + .long .L3-.Ltab + .long .L0m4-.Ltab + .long .L1m4-.Ltab + .long .L2m4-.Ltab + .long .L3m4-.Ltab + .text + +.L1: mov (%rsi), %rax + mul %rax + add $40, %rsp + mov %rax, (%rdi) + mov %rdx, 8(%rdi) + + ret + +.L2: mov (%rsi), %rax + mov %rax, %r8 + mul %rax + mov 8(%rsi), %r11 + mov %rax, (%rdi) + mov %r11, %rax + mov %rdx, %r9 + mul %rax + add $40, %rsp + mov %rax, %r10 + mov %r11, %rax + mov %rdx, %r11 + mul %r8 + xor %r8, %r8 + add %rax, %r9 + adc %rdx, %r10 + adc %r8, %r11 + add %rax, %r9 + mov %r9, 8(%rdi) + adc %rdx, %r10 + mov %r10, 16(%rdi) + adc %r8, %r11 + mov %r11, 24(%rdi) + + ret + +.L3: mov (%rsi), %rax + mov %rax, %r10 + mul %rax + mov 8(%rsi), %r11 + mov %rax, (%rdi) + mov %r11, %rax + mov %rdx, 8(%rdi) + mul %rax + mov 16(%rsi), %rcx + mov %rax, 16(%rdi) + mov %rcx, %rax + mov %rdx, 24(%rdi) + mul %rax + mov %rax, 32(%rdi) + mov %rdx, 40(%rdi) + + mov %r11, %rax + mul %r10 + mov %rax, %r8 + mov %rcx, %rax + mov %rdx, %r9 + mul %r10 + xor %r10, %r10 + add %rax, %r9 + mov %r11, %rax + mov %r10, %r11 + adc %rdx, %r10 + + mul %rcx + add $40, %rsp + add %rax, %r10 + adc %r11, %rdx + add %r8, %r8 + adc %r9, %r9 + adc %r10, %r10 + adc %rdx, %rdx + adc %r11, %r11 + add %r8, 8(%rdi) + adc %r9, 16(%rdi) + adc %r10, 24(%rdi) + adc %rdx, 32(%rdi) + adc %r11, 40(%rdi) + + ret + +.L4: mov (%rsi), %rax + mov %rax, %r11 + mul %rax + mov 8(%rsi), %rbx + mov %rax, (%rdi) + mov %rbx, %rax + mov %rdx, 8(%rdi) + mul %rax + mov %rax, 16(%rdi) + mov %rdx, 24(%rdi) + mov 16(%rsi), %rax + mul %rax + mov %rax, 32(%rdi) + mov %rdx, 40(%rdi) + mov 24(%rsi), %rax + mul %rax + mov %rax, 48(%rdi) + mov %rbx, %rax + mov %rdx, 56(%rdi) + + mul %r11 + add $32, %rsp + mov %rax, %r8 + mov %rdx, %r9 + mov 16(%rsi), %rax + mul %r11 + xor %r10, %r10 + add %rax, %r9 + adc %rdx, %r10 + mov 24(%rsi), %rax + mul %r11 + xor %r11, %r11 + add %rax, %r10 + adc %rdx, %r11 + mov 16(%rsi), %rax + mul %rbx + xor %rcx, %rcx + add %rax, %r10 + adc %rdx, %r11 + adc $0, %rcx + mov 24(%rsi), %rax + mul %rbx + pop %rbx + add %rax, %r11 + adc %rdx, %rcx + mov 16(%rsi), %rdx + mov 24(%rsi), %rax + mul %rdx + add %rax, %rcx + adc $0, %rdx + + add %r8, %r8 + adc %r9, %r9 + adc %r10, %r10 + adc %r11, %r11 + adc %rcx, %rcx + mov $0, %eax + adc %rdx, %rdx + + adc %rax, %rax + add %r8, 8(%rdi) + adc %r9, 16(%rdi) + adc %r10, 24(%rdi) + adc %r11, 32(%rdi) + adc %rcx, 40(%rdi) + adc %rdx, 48(%rdi) + adc %rax, 56(%rdi) + + ret + + +.L0m4: + lea -16(%rdi,%r11,8), %r12 + mov (%rsi), %r13 + mov 8(%rsi), %rax + lea (%rsi,%r11,8), %rsi + + lea -4(%r11), %r8 + + xor %r9d, %r9d + sub %r11, %r9 + + mul %r13 + xor %ebp, %ebp + mov %rax, %rbx + mov 16(%rsi,%r9,8), %rax + mov %rdx, %r10 + jmp .LL3 + + .align 16, 0x90 +.Lmul_1_m3_top: + add %rax, %rbp + mov %r10, (%r12,%r9,8) + mov (%rsi,%r9,8), %rax + adc %rdx, %rcx + xor %ebx, %ebx + mul %r13 + xor %r10d, %r10d + mov %rbp, 8(%r12,%r9,8) + add %rax, %rcx + adc %rdx, %rbx + mov 8(%rsi,%r9,8), %rax + mov %rcx, 16(%r12,%r9,8) + xor %ebp, %ebp + mul %r13 + add %rax, %rbx + mov 16(%rsi,%r9,8), %rax + adc %rdx, %r10 +.LL3: xor %ecx, %ecx + mul %r13 + add %rax, %r10 + mov 24(%rsi,%r9,8), %rax + adc %rdx, %rbp + mov %rbx, 24(%r12,%r9,8) + mul %r13 + add $4, %r9 + js .Lmul_1_m3_top + + add %rax, %rbp + mov %r10, (%r12) + adc %rdx, %rcx + mov %rbp, 8(%r12) + mov %rcx, 16(%r12) + + lea 16(%r12), %r12 + lea -8(%rsi), %rsi + jmp .Ldowhile + + +.L1m4: + lea 8(%rdi,%r11,8), %r12 + mov (%rsi), %r13 + mov 8(%rsi), %rax + lea 8(%rsi,%r11,8), %rsi + + lea -3(%r11), %r8 + + lea -3(%r11), %r9 + neg %r9 + + mov %rax, %r14 + mul %r13 + mov %rdx, %rcx + xor %ebp, %ebp + mov %rax, 8(%rdi) + jmp .Lm0 + + .align 16, 0x90 +.Lmul_2_m0_top: + mul %r14 + add %rax, %rbx + adc %rdx, %rcx + mov -24(%rsi,%r9,8), %rax + mov $0, %ebp + mul %r13 + add %rax, %rbx + mov -24(%rsi,%r9,8), %rax + adc %rdx, %rcx + adc $0, %ebp + mul %r14 + add %rax, %rcx + mov %rbx, -24(%r12,%r9,8) + adc %rdx, %rbp +.Lm0: mov -16(%rsi,%r9,8), %rax + mul %r13 + mov $0, %r10d + add %rax, %rcx + adc %rdx, %rbp + mov -16(%rsi,%r9,8), %rax + adc $0, %r10d + mov $0, %ebx + mov %rcx, -16(%r12,%r9,8) + mul %r14 + add %rax, %rbp + mov -8(%rsi,%r9,8), %rax + adc %rdx, %r10 + mov $0, %ecx + mul %r13 + add %rax, %rbp + mov -8(%rsi,%r9,8), %rax + adc %rdx, %r10 + adc $0, %ebx + mul %r14 + add %rax, %r10 + mov %rbp, -8(%r12,%r9,8) + adc %rdx, %rbx +.Lm2x: mov (%rsi,%r9,8), %rax + mul %r13 + add %rax, %r10 + adc %rdx, %rbx + adc $0, %ecx + add $4, %r9 + mov -32(%rsi,%r9,8), %rax + mov %r10, -32(%r12,%r9,8) + js .Lmul_2_m0_top + + mul %r14 + add %rax, %rbx + adc %rdx, %rcx + mov %rbx, -8(%r12) + mov %rcx, (%r12) + + lea -16(%rsi), %rsi + lea 0(%r12), %r12 + jmp .Ldowhile_end + + +.L2m4: + lea -16(%rdi,%r11,8), %r12 + mov (%rsi), %r13 + mov 8(%rsi), %rax + lea (%rsi,%r11,8), %rsi + + lea -4(%r11), %r8 + + lea -2(%r11), %r9 + neg %r9 + + mul %r13 + mov %rax, %rbp + mov (%rsi,%r9,8), %rax + mov %rdx, %rcx + jmp .LL1 + + .align 16, 0x90 +.Lmul_1_m1_top: + add %rax, %rbp + mov %r10, (%r12,%r9,8) + mov (%rsi,%r9,8), %rax + adc %rdx, %rcx +.LL1: xor %ebx, %ebx + mul %r13 + xor %r10d, %r10d + mov %rbp, 8(%r12,%r9,8) + add %rax, %rcx + adc %rdx, %rbx + mov 8(%rsi,%r9,8), %rax + mov %rcx, 16(%r12,%r9,8) + xor %ebp, %ebp + mul %r13 + add %rax, %rbx + mov 16(%rsi,%r9,8), %rax + adc %rdx, %r10 + xor %ecx, %ecx + mul %r13 + add %rax, %r10 + mov 24(%rsi,%r9,8), %rax + adc %rdx, %rbp + mov %rbx, 24(%r12,%r9,8) + mul %r13 + add $4, %r9 + js .Lmul_1_m1_top + + add %rax, %rbp + mov %r10, (%r12) + adc %rdx, %rcx + mov %rbp, 8(%r12) + mov %rcx, 16(%r12) + + lea 16(%r12), %r12 + lea -8(%rsi), %rsi + jmp .Ldowhile_mid + + +.L3m4: + lea 8(%rdi,%r11,8), %r12 + mov (%rsi), %r13 + mov 8(%rsi), %rax + lea 8(%rsi,%r11,8), %rsi + + lea -5(%r11), %r8 + + lea -1(%r11), %r9 + neg %r9 + + mov %rax, %r14 + mul %r13 + mov %rdx, %r10 + xor %ebx, %ebx + xor %ecx, %ecx + mov %rax, 8(%rdi) + jmp .Lm2 + + .align 16, 0x90 +.Lmul_2_m2_top: + mul %r14 + add %rax, %rbx + adc %rdx, %rcx + mov -24(%rsi,%r9,8), %rax + mov $0, %ebp + mul %r13 + add %rax, %rbx + mov -24(%rsi,%r9,8), %rax + adc %rdx, %rcx + adc $0, %ebp + mul %r14 + add %rax, %rcx + mov %rbx, -24(%r12,%r9,8) + adc %rdx, %rbp + mov -16(%rsi,%r9,8), %rax + mul %r13 + mov $0, %r10d + add %rax, %rcx + adc %rdx, %rbp + mov -16(%rsi,%r9,8), %rax + adc $0, %r10d + mov $0, %ebx + mov %rcx, -16(%r12,%r9,8) + mul %r14 + add %rax, %rbp + mov -8(%rsi,%r9,8), %rax + adc %rdx, %r10 + mov $0, %ecx + mul %r13 + add %rax, %rbp + mov -8(%rsi,%r9,8), %rax + adc %rdx, %r10 + adc $0, %ebx + mul %r14 + add %rax, %r10 + mov %rbp, -8(%r12,%r9,8) + adc %rdx, %rbx +.Lm2: mov (%rsi,%r9,8), %rax + mul %r13 + add %rax, %r10 + adc %rdx, %rbx + adc $0, %ecx + add $4, %r9 + mov -32(%rsi,%r9,8), %rax + mov %r10, -32(%r12,%r9,8) + js .Lmul_2_m2_top + + mul %r14 + add %rax, %rbx + adc %rdx, %rcx + mov %rbx, -8(%r12) + mov %rcx, (%r12) + + lea -16(%rsi), %rsi + jmp .Ldowhile_mid + +.Ldowhile: + + lea 4(%r8), %r9 + neg %r9 + + mov 16(%rsi,%r9,8), %r13 + mov 24(%rsi,%r9,8), %r14 + mov 24(%rsi,%r9,8), %rax + mul %r13 + xor %r10d, %r10d + add %rax, 24(%r12,%r9,8) + adc %rdx, %r10 + xor %ebx, %ebx + xor %ecx, %ecx + jmp .Lam2 + + .align 16, 0x90 +.Laddmul_2_m2_top: + add %r10, (%r12,%r9,8) + adc %rax, %rbx + mov 8(%rsi,%r9,8), %rax + adc %rdx, %rcx + mov $0, %ebp + mul %r13 + add %rax, %rbx + mov 8(%rsi,%r9,8), %rax + adc %rdx, %rcx + adc $0, %ebp + mul %r14 + add %rbx, 8(%r12,%r9,8) + adc %rax, %rcx + adc %rdx, %rbp + mov 16(%rsi,%r9,8), %rax + mov $0, %r10d + mul %r13 + add %rax, %rcx + mov 16(%rsi,%r9,8), %rax + adc %rdx, %rbp + adc $0, %r10d + mul %r14 + add %rcx, 16(%r12,%r9,8) + adc %rax, %rbp + mov 24(%rsi,%r9,8), %rax + adc %rdx, %r10 + mul %r13 + mov $0, %ebx + add %rax, %rbp + adc %rdx, %r10 + mov $0, %ecx + mov 24(%rsi,%r9,8), %rax + adc $0, %ebx + mul %r14 + add %rbp, 24(%r12,%r9,8) + adc %rax, %r10 + adc %rdx, %rbx +.Lam2: mov 32(%rsi,%r9,8), %rax + mul %r13 + add %rax, %r10 + mov 32(%rsi,%r9,8), %rax + adc %rdx, %rbx + adc $0, %ecx + mul %r14 + add $4, %r9 + js .Laddmul_2_m2_top + + add %r10, (%r12) + adc %rax, %rbx + adc %rdx, %rcx + mov %rbx, 8(%r12) + mov %rcx, 16(%r12) + + lea 16(%r12), %r12 + + add $-2, %r8d + +.Ldowhile_mid: + + lea 2(%r8), %r9 + neg %r9 + + mov (%rsi,%r9,8), %r13 + mov 8(%rsi,%r9,8), %r14 + mov 8(%rsi,%r9,8), %rax + mul %r13 + xor %ecx, %ecx + add %rax, 8(%r12,%r9,8) + adc %rdx, %rcx + xor %ebp, %ebp + jmp .L20 + + .align 16, 0x90 +.Laddmul_2_m0_top: + add %r10, (%r12,%r9,8) + adc %rax, %rbx + mov 8(%rsi,%r9,8), %rax + adc %rdx, %rcx + mov $0, %ebp + mul %r13 + add %rax, %rbx + mov 8(%rsi,%r9,8), %rax + adc %rdx, %rcx + adc $0, %ebp + mul %r14 + add %rbx, 8(%r12,%r9,8) + adc %rax, %rcx + adc %rdx, %rbp +.L20: mov 16(%rsi,%r9,8), %rax + mov $0, %r10d + mul %r13 + add %rax, %rcx + mov 16(%rsi,%r9,8), %rax + adc %rdx, %rbp + adc $0, %r10d + mul %r14 + add %rcx, 16(%r12,%r9,8) + adc %rax, %rbp + mov 24(%rsi,%r9,8), %rax + adc %rdx, %r10 + mul %r13 + mov $0, %ebx + add %rax, %rbp + adc %rdx, %r10 + mov $0, %ecx + mov 24(%rsi,%r9,8), %rax + adc $0, %ebx + mul %r14 + add %rbp, 24(%r12,%r9,8) + adc %rax, %r10 + adc %rdx, %rbx + mov 32(%rsi,%r9,8), %rax + mul %r13 + add %rax, %r10 + mov 32(%rsi,%r9,8), %rax + adc %rdx, %rbx + adc $0, %ecx + mul %r14 + add $4, %r9 + js .Laddmul_2_m0_top + + add %r10, (%r12) + adc %rax, %rbx + adc %rdx, %rcx + mov %rbx, 8(%r12) + mov %rcx, 16(%r12) + + lea 16(%r12), %r12 +.Ldowhile_end: + + add $-2, %r8d + jne .Ldowhile + + + mov -16(%rsi), %r13 + mov -8(%rsi), %r14 + mov -8(%rsi), %rax + mul %r13 + xor %r10d, %r10d + add %rax, -8(%r12) + adc %rdx, %r10 + xor %ebx, %ebx + xor %ecx, %ecx + mov (%rsi), %rax + mul %r13 + add %rax, %r10 + mov (%rsi), %rax + adc %rdx, %rbx + mul %r14 + add %r10, (%r12) + adc %rax, %rbx + adc %rdx, %rcx + mov %rbx, 8(%r12) + mov %rcx, 16(%r12) + + + lea -4(%r11,%r11), %r9 + + mov 8(%rdi), %r11 + lea -8(%rsi), %rsi + lea (%rdi,%r9,8), %rdi + neg %r9 + mov (%rsi,%r9,4), %rax + mul %rax + test $2, %r9b + jnz .Lodd + +.Levn: add %r11, %r11 + sbb %ebx, %ebx + add %rdx, %r11 + mov %rax, (%rdi,%r9,8) + jmp .Ld0 + +.Lodd: add %r11, %r11 + sbb %ebp, %ebp + add %rdx, %r11 + mov %rax, (%rdi,%r9,8) + lea -2(%r9), %r9 + jmp .Ld1 + + .align 16, 0x90 +.Ltop: mov (%rsi,%r9,4), %rax + mul %rax + add %ebp, %ebp + adc %rax, %r10 + adc %rdx, %r11 + mov %r10, (%rdi,%r9,8) +.Ld0: mov %r11, 8(%rdi,%r9,8) + mov 16(%rdi,%r9,8), %r10 + adc %r10, %r10 + mov 24(%rdi,%r9,8), %r11 + adc %r11, %r11 + nop + sbb %ebp, %ebp + mov 8(%rsi,%r9,4), %rax + mul %rax + add %ebx, %ebx + adc %rax, %r10 + adc %rdx, %r11 + mov %r10, 16(%rdi,%r9,8) +.Ld1: mov %r11, 24(%rdi,%r9,8) + mov 32(%rdi,%r9,8), %r10 + adc %r10, %r10 + mov 40(%rdi,%r9,8), %r11 + adc %r11, %r11 + sbb %ebx, %ebx + add $4, %r9 + js .Ltop + + mov (%rsi), %rax + mul %rax + add %ebp, %ebp + adc %rax, %r10 + adc %rdx, %r11 + mov %r10, (%rdi) + mov %r11, 8(%rdi) + mov 16(%rdi), %r10 + adc %r10, %r10 + sbb %ebp, %ebp + neg %ebp + mov 8(%rsi), %rax + mul %rax + add %ebx, %ebx + adc %rax, %r10 + adc %rbp, %rdx + mov %r10, 16(%rdi) + mov %rdx, 24(%rdi) + + pop %r14 + pop %r13 + pop %r12 + pop %rbp + pop %rbx + + ret + .size __gmpn_sqr_basecase,.-__gmpn_sqr_basecase diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/sqr_diag_addlsh1.s b/vere/ext/gmp/gen/x86_64-linux/mpn/sqr_diag_addlsh1.s new file mode 100644 index 0000000..7203603 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/sqr_diag_addlsh1.s @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 32, 0x90 + .globl __gmpn_sqr_diag_addlsh1 + .type __gmpn_sqr_diag_addlsh1,@function + +__gmpn_sqr_diag_addlsh1: + + + push %rbx + + dec %rcx + shl %rcx + + mov (%rdx), %rax + + lea (%rdi,%rcx,8), %rdi + lea (%rsi,%rcx,8), %rsi + lea (%rdx,%rcx,4), %r11 + neg %rcx + + mul %rax + mov %rax, (%rdi,%rcx,8) + + xor %ebx, %ebx + jmp .Lmid + + .align 16, 0x90 +.Ltop: add %r10, %r8 + adc %rax, %r9 + mov %r8, -8(%rdi,%rcx,8) + mov %r9, (%rdi,%rcx,8) +.Lmid: mov 8(%r11,%rcx,4), %rax + mov (%rsi,%rcx,8), %r8 + mov 8(%rsi,%rcx,8), %r9 + adc %r8, %r8 + adc %r9, %r9 + lea (%rdx,%rbx), %r10 + setc %bl + mul %rax + add $2, %rcx + js .Ltop + +.Lend: add %r10, %r8 + adc %rax, %r9 + mov %r8, -8(%rdi) + mov %r9, (%rdi) + adc %rbx, %rdx + mov %rdx, 8(%rdi) + + pop %rbx + + ret + .size __gmpn_sqr_diag_addlsh1,.-__gmpn_sqr_diag_addlsh1 diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/sub_err1_n.s b/vere/ext/gmp/gen/x86_64-linux/mpn/sub_err1_n.s new file mode 100644 index 0000000..cbef8af --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/sub_err1_n.s @@ -0,0 +1,237 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_sub_err1_n + .type __gmpn_sub_err1_n,@function + +__gmpn_sub_err1_n: + + mov 8(%rsp), %rax + + push %rbx + push %rbp + push %r12 + push %r13 + push %r14 + push %r15 + + lea (%rsi,%r9,8), %rsi + lea (%rdx,%r9,8), %rdx + lea (%rdi,%r9,8), %rdi + + mov %r9d, %r10d + and $3, %r10d + jz .L0mod4 + cmp $2, %r10d + jc .L1mod4 + jz .L2mod4 +.L3mod4: + xor %ebx, %ebx + xor %ebp, %ebp + xor %r10d, %r10d + xor %r11d, %r11d + lea -24(%r8,%r9,8), %r8 + neg %r9 + + shr $1, %al + mov (%rsi,%r9,8), %r14 + mov 8(%rsi,%r9,8), %r15 + sbb (%rdx,%r9,8), %r14 + mov %r14, (%rdi,%r9,8) + cmovc 16(%r8), %rbx + sbb 8(%rdx,%r9,8), %r15 + mov %r15, 8(%rdi,%r9,8) + cmovc 8(%r8), %r10 + mov 16(%rsi,%r9,8), %r14 + sbb 16(%rdx,%r9,8), %r14 + mov %r14, 16(%rdi,%r9,8) + cmovc (%r8), %r11 + setc %al + add %r10, %rbx + adc $0, %rbp + add %r11, %rbx + adc $0, %rbp + + add $3, %r9 + jnz .Lloop + jmp .Lend + + .align 16, 0x90 +.L0mod4: + xor %ebx, %ebx + xor %ebp, %ebp + lea (%r8,%r9,8), %r8 + neg %r9 + jmp .Lloop + + .align 16, 0x90 +.L1mod4: + xor %ebx, %ebx + xor %ebp, %ebp + lea -8(%r8,%r9,8), %r8 + neg %r9 + + shr $1, %al + mov (%rsi,%r9,8), %r14 + sbb (%rdx,%r9,8), %r14 + mov %r14, (%rdi,%r9,8) + cmovc (%r8), %rbx + setc %al + + add $1, %r9 + jnz .Lloop + jmp .Lend + + .align 16, 0x90 +.L2mod4: + xor %ebx, %ebx + xor %ebp, %ebp + xor %r10d, %r10d + lea -16(%r8,%r9,8), %r8 + neg %r9 + + shr $1, %al + mov (%rsi,%r9,8), %r14 + mov 8(%rsi,%r9,8), %r15 + sbb (%rdx,%r9,8), %r14 + mov %r14, (%rdi,%r9,8) + cmovc 8(%r8), %rbx + sbb 8(%rdx,%r9,8), %r15 + mov %r15, 8(%rdi,%r9,8) + cmovc (%r8), %r10 + setc %al + add %r10, %rbx + adc $0, %rbp + + add $2, %r9 + jnz .Lloop + jmp .Lend + + .align 32, 0x90 +.Lloop: + shr $1, %al + mov -8(%r8), %r10 + mov $0, %r13d + mov (%rsi,%r9,8), %r14 + mov 8(%rsi,%r9,8), %r15 + sbb (%rdx,%r9,8), %r14 + cmovnc %r13, %r10 + sbb 8(%rdx,%r9,8), %r15 + mov -16(%r8), %r11 + mov %r14, (%rdi,%r9,8) + mov 16(%rsi,%r9,8), %r14 + mov %r15, 8(%rdi,%r9,8) + cmovnc %r13, %r11 + mov -24(%r8), %r12 + sbb 16(%rdx,%r9,8), %r14 + cmovnc %r13, %r12 + mov 24(%rsi,%r9,8), %r15 + sbb 24(%rdx,%r9,8), %r15 + cmovc -32(%r8), %r13 + setc %al + add %r10, %rbx + adc $0, %rbp + add %r11, %rbx + adc $0, %rbp + add %r12, %rbx + adc $0, %rbp + mov %r14, 16(%rdi,%r9,8) + add %r13, %rbx + lea -32(%r8), %r8 + adc $0, %rbp + mov %r15, 24(%rdi,%r9,8) + add $4, %r9 + jnz .Lloop + +.Lend: + mov %rbx, (%rcx) + mov %rbp, 8(%rcx) + + pop %r15 + pop %r14 + pop %r13 + pop %r12 + pop %rbp + pop %rbx + ret + .size __gmpn_sub_err1_n,.-__gmpn_sub_err1_n diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/sub_err2_n.s b/vere/ext/gmp/gen/x86_64-linux/mpn/sub_err2_n.s new file mode 100644 index 0000000..77ebcb7 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/sub_err2_n.s @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_sub_err2_n + .type __gmpn_sub_err2_n,@function + +__gmpn_sub_err2_n: + + mov 16(%rsp), %rax + mov 8(%rsp), %r10 + + push %rbx + push %rbp + push %r12 + push %r13 + push %r14 + + xor %ebp, %ebp + xor %r11d, %r11d + xor %r12d, %r12d + xor %r13d, %r13d + + sub %r8, %r9 + + lea (%rdi,%r10,8), %rdi + lea (%rsi,%r10,8), %rsi + lea (%rdx,%r10,8), %rdx + + test $1, %r10 + jnz .Lodd + + lea -8(%r8,%r10,8), %r8 + neg %r10 + jmp .Ltop + + .align 16, 0x90 +.Lodd: + lea -16(%r8,%r10,8), %r8 + neg %r10 + shr $1, %rax + mov (%rsi,%r10,8), %rbx + sbb (%rdx,%r10,8), %rbx + cmovc 8(%r8), %rbp + cmovc 8(%r8,%r9), %r12 + mov %rbx, (%rdi,%r10,8) + sbb %rax, %rax + inc %r10 + jz .Lend + + .align 16, 0x90 +.Ltop: + mov (%rsi,%r10,8), %rbx + shr $1, %rax + sbb (%rdx,%r10,8), %rbx + mov %rbx, (%rdi,%r10,8) + sbb %r14, %r14 + + mov 8(%rsi,%r10,8), %rbx + sbb 8(%rdx,%r10,8), %rbx + mov %rbx, 8(%rdi,%r10,8) + sbb %rax, %rax + + mov (%r8), %rbx + and %r14, %rbx + add %rbx, %rbp + adc $0, %r11 + + and (%r8,%r9), %r14 + add %r14, %r12 + adc $0, %r13 + + mov -8(%r8), %rbx + and %rax, %rbx + add %rbx, %rbp + adc $0, %r11 + + mov -8(%r8,%r9), %rbx + and %rax, %rbx + add %rbx, %r12 + adc $0, %r13 + + add $2, %r10 + lea -16(%r8), %r8 + jnz .Ltop +.Lend: + + mov %rbp, (%rcx) + mov %r11, 8(%rcx) + mov %r12, 16(%rcx) + mov %r13, 24(%rcx) + + and $1, %eax + + pop %r14 + pop %r13 + pop %r12 + pop %rbp + pop %rbx + ret + .size __gmpn_sub_err2_n,.-__gmpn_sub_err2_n diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/sub_err3_n.s b/vere/ext/gmp/gen/x86_64-linux/mpn/sub_err3_n.s new file mode 100644 index 0000000..b995ec7 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/sub_err3_n.s @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_sub_err3_n + .type __gmpn_sub_err3_n,@function + +__gmpn_sub_err3_n: + + mov 24(%rsp), %rax + mov 16(%rsp), %r10 + + push %rbx + push %rbp + push %r12 + push %r13 + push %r14 + push %r15 + + push %rcx + mov 64(%rsp), %rcx + + xor %ebp, %ebp + xor %r11d, %r11d + xor %r12d, %r12d + xor %r13d, %r13d + xor %r14d, %r14d + xor %r15d, %r15d + + sub %r8, %r9 + sub %r8, %rcx + + lea -8(%r8,%r10,8), %r8 + lea (%rdi,%r10,8), %rdi + lea (%rsi,%r10,8), %rsi + lea (%rdx,%r10,8), %rdx + neg %r10 + + .align 16, 0x90 +.Ltop: + shr $1, %rax + mov (%rsi,%r10,8), %rax + sbb (%rdx,%r10,8), %rax + mov %rax, (%rdi,%r10,8) + sbb %rax, %rax + + mov (%r8), %rbx + and %rax, %rbx + add %rbx, %rbp + adc $0, %r11 + + mov (%r8,%r9), %rbx + and %rax, %rbx + add %rbx, %r12 + adc $0, %r13 + + mov (%r8,%rcx), %rbx + and %rax, %rbx + add %rbx, %r14 + adc $0, %r15 + + lea -8(%r8), %r8 + inc %r10 + jnz .Ltop + +.Lend: + and $1, %eax + pop %rcx + + mov %rbp, (%rcx) + mov %r11, 8(%rcx) + mov %r12, 16(%rcx) + mov %r13, 24(%rcx) + mov %r14, 32(%rcx) + mov %r15, 40(%rcx) + + pop %r15 + pop %r14 + pop %r13 + pop %r12 + pop %rbp + pop %rbx + ret + .size __gmpn_sub_err3_n,.-__gmpn_sub_err3_n diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/sub_n.s b/vere/ext/gmp/gen/x86_64-linux/mpn/sub_n.s new file mode 100644 index 0000000..8c1db0a --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/sub_n.s @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_sub_nc + .type __gmpn_sub_nc,@function + +__gmpn_sub_nc: + + + + mov %ecx, %eax + shr $2, %rcx + and $3, %eax + bt $0, %r8 + jrcxz .Llt4 + + mov (%rsi), %r8 + mov 8(%rsi), %r9 + dec %rcx + jmp .Lmid + + .size __gmpn_sub_nc,.-__gmpn_sub_nc + .align 16, 0x90 + .globl __gmpn_sub_n + .type __gmpn_sub_n,@function + +__gmpn_sub_n: + + + mov %ecx, %eax + shr $2, %rcx + and $3, %eax + jrcxz .Llt4 + + mov (%rsi), %r8 + mov 8(%rsi), %r9 + dec %rcx + jmp .Lmid + +.Llt4: dec %eax + mov (%rsi), %r8 + jnz .L2 + sbb (%rdx), %r8 + mov %r8, (%rdi) + adc %eax, %eax + + ret + +.L2: dec %eax + mov 8(%rsi), %r9 + jnz .L3 + sbb (%rdx), %r8 + sbb 8(%rdx), %r9 + mov %r8, (%rdi) + mov %r9, 8(%rdi) + adc %eax, %eax + + ret + +.L3: mov 16(%rsi), %r10 + sbb (%rdx), %r8 + sbb 8(%rdx), %r9 + sbb 16(%rdx), %r10 + mov %r8, (%rdi) + mov %r9, 8(%rdi) + mov %r10, 16(%rdi) + setc %al + + ret + + .align 16, 0x90 +.Ltop: sbb (%rdx), %r8 + sbb 8(%rdx), %r9 + sbb 16(%rdx), %r10 + sbb 24(%rdx), %r11 + mov %r8, (%rdi) + lea 32(%rsi), %rsi + mov %r9, 8(%rdi) + mov %r10, 16(%rdi) + dec %rcx + mov %r11, 24(%rdi) + lea 32(%rdx), %rdx + mov (%rsi), %r8 + mov 8(%rsi), %r9 + lea 32(%rdi), %rdi +.Lmid: mov 16(%rsi), %r10 + mov 24(%rsi), %r11 + jnz .Ltop + +.Lend: lea 32(%rsi), %rsi + sbb (%rdx), %r8 + sbb 8(%rdx), %r9 + sbb 16(%rdx), %r10 + sbb 24(%rdx), %r11 + lea 32(%rdx), %rdx + mov %r8, (%rdi) + mov %r9, 8(%rdi) + mov %r10, 16(%rdi) + mov %r11, 24(%rdi) + lea 32(%rdi), %rdi + + inc %eax + dec %eax + jnz .Llt4 + adc %eax, %eax + + ret + .size __gmpn_sub_n,.-__gmpn_sub_n diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/sublsh1_n.s b/vere/ext/gmp/gen/x86_64-linux/mpn/sublsh1_n.s new file mode 100644 index 0000000..d257a05 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/sublsh1_n.s @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_sublsh1_n + .type __gmpn_sublsh1_n,@function + +__gmpn_sublsh1_n: + + + push %rbx + push %rbp + + mov (%rdx), %r8 + mov %ecx, %eax + lea (%rdi,%rcx,8), %rdi + lea (%rsi,%rcx,8), %rsi + lea (%rdx,%rcx,8), %rdx + neg %rcx + xor %ebp, %ebp + and $3, %eax + je .Lb00 + cmp $2, %eax + jc .Lb01 + je .Lb10 + +.Lb11: add %r8, %r8 + mov 8(%rdx,%rcx,8), %r9 + adc %r9, %r9 + mov 16(%rdx,%rcx,8), %r10 + adc %r10, %r10 + sbb %eax, %eax + mov (%rsi,%rcx,8), %rbp + mov 8(%rsi,%rcx,8), %rbx + sub %r8, %rbp + sbb %r9, %rbx + mov %rbp, (%rdi,%rcx,8) + mov %rbx, 8(%rdi,%rcx,8) + mov 16(%rsi,%rcx,8), %rbp + sbb %r10, %rbp + mov %rbp, 16(%rdi,%rcx,8) + sbb %ebp, %ebp + add $3, %rcx + jmp .Lent + +.Lb10: add %r8, %r8 + mov 8(%rdx,%rcx,8), %r9 + adc %r9, %r9 + sbb %eax, %eax + mov (%rsi,%rcx,8), %rbp + mov 8(%rsi,%rcx,8), %rbx + sub %r8, %rbp + sbb %r9, %rbx + mov %rbp, (%rdi,%rcx,8) + mov %rbx, 8(%rdi,%rcx,8) + sbb %ebp, %ebp + add $2, %rcx + jmp .Lent + +.Lb01: add %r8, %r8 + sbb %eax, %eax + mov (%rsi,%rcx,8), %rbp + sub %r8, %rbp + mov %rbp, (%rdi,%rcx,8) + sbb %ebp, %ebp + inc %rcx +.Lent: jns .Lend + + .align 16, 0x90 +.Ltop: add %eax, %eax + + mov (%rdx,%rcx,8), %r8 +.Lb00: adc %r8, %r8 + mov 8(%rdx,%rcx,8), %r9 + adc %r9, %r9 + mov 16(%rdx,%rcx,8), %r10 + adc %r10, %r10 + mov 24(%rdx,%rcx,8), %r11 + adc %r11, %r11 + + sbb %eax, %eax + add %ebp, %ebp + + mov (%rsi,%rcx,8), %rbp + mov 8(%rsi,%rcx,8), %rbx + sbb %r8, %rbp + sbb %r9, %rbx + mov %rbp, (%rdi,%rcx,8) + mov %rbx, 8(%rdi,%rcx,8) + mov 16(%rsi,%rcx,8), %rbp + mov 24(%rsi,%rcx,8), %rbx + sbb %r10, %rbp + sbb %r11, %rbx + mov %rbp, 16(%rdi,%rcx,8) + mov %rbx, 24(%rdi,%rcx,8) + + sbb %ebp, %ebp + add $4, %rcx + js .Ltop + +.Lend: add %ebp, %eax + neg %eax + + pop %rbp + pop %rbx + + ret + .size __gmpn_sublsh1_n,.-__gmpn_sublsh1_n diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/submul_1.s b/vere/ext/gmp/gen/x86_64-linux/mpn/submul_1.s new file mode 100644 index 0000000..5e34932 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/submul_1.s @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 16, 0x90 + .globl __gmpn_submul_1 + .type __gmpn_submul_1,@function + +__gmpn_submul_1: + + + + + + + mov (%rsi), %rax + push %rbx + mov %rdx, %rbx + + mul %rcx + mov %rbx, %r11 + + and $3, %ebx + jz .Lb0 + cmp $2, %ebx + jz .Lb2 + jg .Lb3 + +.Lb1: dec %r11 + jne .Lgt1 + sub %rax, (%rdi) + jmp .Lret +.Lgt1: lea 8(%rsi,%r11,8), %rsi + lea -8(%rdi,%r11,8), %rdi + neg %r11 + xor %r10, %r10 + xor %ebx, %ebx + mov %rax, %r9 + mov (%rsi,%r11,8), %rax + mov %rdx, %r8 + jmp .LL1 + +.Lb0: lea (%rsi,%r11,8), %rsi + lea -16(%rdi,%r11,8), %rdi + neg %r11 + xor %r10, %r10 + mov %rax, %r8 + mov %rdx, %rbx + jmp .LL0 + +.Lb3: lea -8(%rsi,%r11,8), %rsi + lea -24(%rdi,%r11,8), %rdi + neg %r11 + mov %rax, %rbx + mov %rdx, %r10 + jmp .LL3 + +.Lb2: lea -16(%rsi,%r11,8), %rsi + lea -32(%rdi,%r11,8), %rdi + neg %r11 + xor %r8, %r8 + xor %ebx, %ebx + mov %rax, %r10 + mov 24(%rsi,%r11,8), %rax + mov %rdx, %r9 + jmp .LL2 + + .align 16, 0x90 +.Ltop: sub %r10, (%rdi,%r11,8) + adc %rax, %r9 + mov (%rsi,%r11,8), %rax + adc %rdx, %r8 + mov $0, %r10d +.LL1: mul %rcx + sub %r9, 8(%rdi,%r11,8) + adc %rax, %r8 + adc %rdx, %rbx +.LL0: mov 8(%rsi,%r11,8), %rax + mul %rcx + sub %r8, 16(%rdi,%r11,8) + adc %rax, %rbx + adc %rdx, %r10 +.LL3: mov 16(%rsi,%r11,8), %rax + mul %rcx + sub %rbx, 24(%rdi,%r11,8) + mov $0, %r8d + mov %r8, %rbx + adc %rax, %r10 + mov 24(%rsi,%r11,8), %rax + mov %r8, %r9 + adc %rdx, %r9 +.LL2: mul %rcx + add $4, %r11 + js .Ltop + + sub %r10, (%rdi,%r11,8) + adc %rax, %r9 + adc %r8, %rdx + sub %r9, 8(%rdi,%r11,8) +.Lret: adc $0, %rdx + mov %rdx, %rax + + pop %rbx + + + ret + .size __gmpn_submul_1,.-__gmpn_submul_1 diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/xnor_n.s b/vere/ext/gmp/gen/x86_64-linux/mpn/xnor_n.s new file mode 100644 index 0000000..4db0497 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/xnor_n.s @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 32, 0x90 + .globl __gmpn_xnor_n + .type __gmpn_xnor_n,@function + +__gmpn_xnor_n: + + + mov (%rdx), %r8 + not %r8 + mov %ecx, %eax + lea (%rdx,%rcx,8), %rdx + lea (%rsi,%rcx,8), %rsi + lea (%rdi,%rcx,8), %rdi + neg %rcx + and $3, %eax + je .Lb00 + cmp $2, %eax + jc .Lb01 + je .Lb10 + +.Lb11: xor (%rsi,%rcx,8), %r8 + mov %r8, (%rdi,%rcx,8) + dec %rcx + jmp .Le11 +.Lb10: add $-2, %rcx + jmp .Le10 + .byte 0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90 +.Lb01: xor (%rsi,%rcx,8), %r8 + mov %r8, (%rdi,%rcx,8) + inc %rcx + jz .Lret + +.Ltop: mov (%rdx,%rcx,8), %r8 + not %r8 +.Lb00: mov 8(%rdx,%rcx,8), %r9 + not %r9 + xor (%rsi,%rcx,8), %r8 + xor 8(%rsi,%rcx,8), %r9 + mov %r8, (%rdi,%rcx,8) + mov %r9, 8(%rdi,%rcx,8) +.Le11: mov 16(%rdx,%rcx,8), %r8 + not %r8 +.Le10: mov 24(%rdx,%rcx,8), %r9 + not %r9 + xor 16(%rsi,%rcx,8), %r8 + xor 24(%rsi,%rcx,8), %r9 + mov %r8, 16(%rdi,%rcx,8) + mov %r9, 24(%rdi,%rcx,8) + add $4, %rcx + jnc .Ltop + +.Lret: + ret + .size __gmpn_xnor_n,.-__gmpn_xnor_n + + + diff --git a/vere/ext/gmp/gen/x86_64-linux/mpn/xor_n.s b/vere/ext/gmp/gen/x86_64-linux/mpn/xor_n.s new file mode 100644 index 0000000..8ef14d0 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/mpn/xor_n.s @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 32, 0x90 + .globl __gmpn_xor_n + .type __gmpn_xor_n,@function + +__gmpn_xor_n: + + + mov (%rdx), %r8 + mov %ecx, %eax + lea (%rdx,%rcx,8), %rdx + lea (%rsi,%rcx,8), %rsi + lea (%rdi,%rcx,8), %rdi + neg %rcx + and $3, %eax + je .Lb00 + cmp $2, %eax + jc .Lb01 + je .Lb10 + +.Lb11: xor (%rsi,%rcx,8), %r8 + mov %r8, (%rdi,%rcx,8) + dec %rcx + jmp .Le11 +.Lb10: add $-2, %rcx + jmp .Le10 +.Lb01: xor (%rsi,%rcx,8), %r8 + mov %r8, (%rdi,%rcx,8) + inc %rcx + jz .Lret + +.Ltop: mov (%rdx,%rcx,8), %r8 +.Lb00: mov 8(%rdx,%rcx,8), %r9 + xor (%rsi,%rcx,8), %r8 + xor 8(%rsi,%rcx,8), %r9 + nop + mov %r8, (%rdi,%rcx,8) + mov %r9, 8(%rdi,%rcx,8) +.Le11: mov 16(%rdx,%rcx,8), %r8 +.Le10: mov 24(%rdx,%rcx,8), %r9 + xor 16(%rsi,%rcx,8), %r8 + xor 24(%rsi,%rcx,8), %r9 + mov %r8, 16(%rdi,%rcx,8) + mov %r9, 24(%rdi,%rcx,8) + add $4, %rcx + jnc .Ltop + +.Lret: + ret + .size __gmpn_xor_n,.-__gmpn_xor_n + + + + + diff --git a/vere/ext/gmp/gen/x86_64-linux/sieve_table.h b/vere/ext/gmp/gen/x86_64-linux/sieve_table.h new file mode 100644 index 0000000..ee9ac14 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/sieve_table.h @@ -0,0 +1,46 @@ +/* This file generated by gen-sieve.c - DO NOT EDIT. */ + +#if GMP_LIMB_BITS != 64 +Error, error, this data is for 64 bits +#endif + +#define PRIMESIEVE_INIT_TABLE \ + CNST_LIMB (0x3294C9E069128480), /* 5 - 196 (42 primes) */ \ + CNST_LIMB (0x95A35E1EC4AB21DC), /* 197 - 388 (32 primes) */ \ + CNST_LIMB (0x4AD7CE99B8693366), /* 389 - 580 (30 primes) */ \ + CNST_LIMB (0x6595B6DA728DC52B), /* 581 - 772 (30 primes) */ \ + CNST_LIMB (0xEA6D9F8787B0CEDE), /* 773 - 964 (26 primes) */ \ + CNST_LIMB (0x3F56A1F4CD3275A9), /* 965 - 1156 (29 primes) */ \ + CNST_LIMB (0xFD3848FB74A76ADB), /* 1157 - 1348 (26 primes) */ \ + CNST_LIMB (0xDBBA0DD1A1EDF6AF), /* 1349 - 1540 (25 primes) */ \ + CNST_LIMB (0xCEC7F17ED22799A5), /* 1541 - 1732 (27 primes) */ \ + CNST_LIMB (0xEAEC17BDBB717D56), /* 1733 - 1924 (24 primes) */ \ + CNST_LIMB (0x3B0EB7B3585AFCF3), /* 1925 - 2116 (26 primes) */ \ + CNST_LIMB (0xE563D8F69FDF6C4F), /* 2117 - 2308 (23 primes) */ \ + CNST_LIMB (0xFE5BA7ABA45E92FC), /* 2309 - 2500 (25 primes) */ \ + CNST_LIMB (0x158DEE6F3BF49B7D), /* 2501 - 2692 (24 primes) */ \ + CNST_LIMB (0xBE5A7BC4EDE6CD1A), /* 2693 - 2884 (26 primes) */ \ + CNST_LIMB (0xD7679B3FCA7BB6AD), /* 2885 - 3076 (22 primes) */ \ + CNST_LIMB (0xC3F66B971FEF37E9), /* 3077 - 3268 (22 primes) */ \ + CNST_LIMB (0x6F7EBCF339C953FD), /* 3269 - 3460 (22 primes) */ \ + CNST_LIMB (0xD5A5ECDCD235DBF0), /* 3461 - 3652 (27 primes) */ \ + CNST_LIMB (0xECFA7B2FD5B65E3B), /* 3653 - 3844 (22 primes) */ \ + CNST_LIMB (0xD28EFDF9C89F67B1), /* 3845 - 4036 (25 primes) */ \ + CNST_LIMB (0xCB7F7C7A3DD3AF4F), /* 4037 - 4228 (21 primes) */ \ + CNST_LIMB (0xEEBED6CDFF6B32CC), /* 4229 - 4420 (22 primes) */ \ + CNST_LIMB (0xD5BD73F85ECFA97C), /* 4421 - 4612 (23 primes) */ \ + CNST_LIMB (0x21FDBE4FBBAD48F7), /* 4613 - 4804 (24 primes) */ \ + CNST_LIMB (0x5E35A3B5EEB7FDE7), /* 4805 - 4996 (21 primes) */ \ + CNST_LIMB (0xD9EBFD53A7DBBCC9), /* 4997 - 5188 (22 primes) */ \ + CNST_LIMB (0xFF9EDEAF2EFE1F76), /* 5189 - 5380 (18 primes) */ +#define PRIMESIEVE_NUMBEROF_TABLE 28 +/* #define PRIMESIEVE_PRIMES_IN_TABLE 706 */ +#define PRIMESIEVE_HIGHEST_PRIME 5351 +/* #define PRIMESIEVE_FIRST_UNCHECKED 5381 */ + +#define SIEVE_MASK1 CNST_LIMB(0x3204C1A049120485) +#define SIEVE_MASKT CNST_LIMB(0xA1204892058) +#define SIEVE_2MSK1 CNST_LIMB(0x29048402110840A) +#define SIEVE_2MSK2 CNST_LIMB(0x9402180C40230184) +#define SIEVE_2MSKT CNST_LIMB(0x5021088402120) + diff --git a/vere/ext/gmp/gen/x86_64-linux/trialdivtab.h b/vere/ext/gmp/gen/x86_64-linux/trialdivtab.h new file mode 100644 index 0000000..eb81d7f --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-linux/trialdivtab.h @@ -0,0 +1,1214 @@ +#if GMP_LIMB_BITS != 64 +#error This table is for GMP_LIMB_BITS = 64 +#endif + +#if GMP_NAIL_BITS != 0 +#error This table does not support nails +#endif + +#ifdef WANT_dtab + P(3,CNST_LIMB(0xaaaaaaaaaaaaaaab),CNST_LIMB(0x5555555555555555)), + P(5,CNST_LIMB(0xcccccccccccccccd),CNST_LIMB(0x3333333333333333)), + P(7,CNST_LIMB(0x6db6db6db6db6db7),CNST_LIMB(0x2492492492492492)), + P(11,CNST_LIMB(0x2e8ba2e8ba2e8ba3),CNST_LIMB(0x1745d1745d1745d1)), + P(13,CNST_LIMB(0x4ec4ec4ec4ec4ec5),CNST_LIMB(0x13b13b13b13b13b1)), + P(17,CNST_LIMB(0xf0f0f0f0f0f0f0f1),CNST_LIMB(0xf0f0f0f0f0f0f0f)), + P(19,CNST_LIMB(0x86bca1af286bca1b),CNST_LIMB(0xd79435e50d79435)), + P(23,CNST_LIMB(0xd37a6f4de9bd37a7),CNST_LIMB(0xb21642c8590b216)), + P(29,CNST_LIMB(0x34f72c234f72c235),CNST_LIMB(0x8d3dcb08d3dcb08)), + P(31,CNST_LIMB(0xef7bdef7bdef7bdf),CNST_LIMB(0x842108421084210)), + P(37,CNST_LIMB(0x14c1bacf914c1bad),CNST_LIMB(0x6eb3e45306eb3e4)), + P(41,CNST_LIMB(0x8f9c18f9c18f9c19),CNST_LIMB(0x63e7063e7063e70)), + P(43,CNST_LIMB(0x82fa0be82fa0be83),CNST_LIMB(0x5f417d05f417d05)), + P(47,CNST_LIMB(0x51b3bea3677d46cf),CNST_LIMB(0x572620ae4c415c9)), + P(53,CNST_LIMB(0x21cfb2b78c13521d),CNST_LIMB(0x4d4873ecade304d)), + P(59,CNST_LIMB(0xcbeea4e1a08ad8f3),CNST_LIMB(0x456c797dd49c341)), + P(61,CNST_LIMB(0x4fbcda3ac10c9715),CNST_LIMB(0x4325c53ef368eb0)), + P(67,CNST_LIMB(0xf0b7672a07a44c6b),CNST_LIMB(0x3d226357e16ece5)), + P(71,CNST_LIMB(0x193d4bb7e327a977),CNST_LIMB(0x39b0ad12073615a)), + P(73,CNST_LIMB(0x7e3f1f8fc7e3f1f9),CNST_LIMB(0x381c0e070381c0e)), + P(79,CNST_LIMB(0x9b8b577e613716af),CNST_LIMB(0x33d91d2a2067b23)), + P(83,CNST_LIMB(0xa3784a062b2e43db),CNST_LIMB(0x3159721ed7e7534)), + P(89,CNST_LIMB(0xf47e8fd1fa3f47e9),CNST_LIMB(0x2e05c0b81702e05)), + P(97,CNST_LIMB(0xa3a0fd5c5f02a3a1),CNST_LIMB(0x2a3a0fd5c5f02a3)), + P(101,CNST_LIMB(0x3a4c0a237c32b16d),CNST_LIMB(0x288df0cac5b3f5d)), + P(103,CNST_LIMB(0xdab7ec1dd3431b57),CNST_LIMB(0x27c45979c95204f)), + P(107,CNST_LIMB(0x77a04c8f8d28ac43),CNST_LIMB(0x2647c69456217ec)), + P(109,CNST_LIMB(0xa6c0964fda6c0965),CNST_LIMB(0x2593f69b02593f6)), + P(113,CNST_LIMB(0x90fdbc090fdbc091),CNST_LIMB(0x243f6f0243f6f02)), + P(127,CNST_LIMB(0x7efdfbf7efdfbf7f),CNST_LIMB(0x204081020408102)), + P(131,CNST_LIMB(0x3e88cb3c9484e2b),CNST_LIMB(0x1f44659e4a42715)), + P(137,CNST_LIMB(0xe21a291c077975b9),CNST_LIMB(0x1de5d6e3f8868a4)), + P(139,CNST_LIMB(0x3aef6ca970586723),CNST_LIMB(0x1d77b654b82c339)), + P(149,CNST_LIMB(0xdf5b0f768ce2cabd),CNST_LIMB(0x1b7d6c3dda338b2)), + P(151,CNST_LIMB(0x6fe4dfc9bf937f27),CNST_LIMB(0x1b2036406c80d90)), + P(157,CNST_LIMB(0x5b4fe5e92c0685b5),CNST_LIMB(0x1a16d3f97a4b01a)), + P(163,CNST_LIMB(0x1f693a1c451ab30b),CNST_LIMB(0x1920fb49d0e228d)), + P(167,CNST_LIMB(0x8d07aa27db35a717),CNST_LIMB(0x1886e5f0abb0499)), + P(173,CNST_LIMB(0x882383b30d516325),CNST_LIMB(0x17ad2208e0ecc35)), + P(179,CNST_LIMB(0xed6866f8d962ae7b),CNST_LIMB(0x16e1f76b4337c6c)), + P(181,CNST_LIMB(0x3454dca410f8ed9d),CNST_LIMB(0x16a13cd15372904)), + P(191,CNST_LIMB(0x1d7ca632ee936f3f),CNST_LIMB(0x1571ed3c506b39a)), + P(193,CNST_LIMB(0x70bf015390948f41),CNST_LIMB(0x15390948f40feac)), + P(197,CNST_LIMB(0xc96bdb9d3d137e0d),CNST_LIMB(0x14cab88725af6e7)), + P(199,CNST_LIMB(0x2697cc8aef46c0f7),CNST_LIMB(0x149539e3b2d066e)), + P(211,CNST_LIMB(0xc0e8f2a76e68575b),CNST_LIMB(0x13698df3de07479)), + P(223,CNST_LIMB(0x687763dfdb43bb1f),CNST_LIMB(0x125e22708092f11)), + P(227,CNST_LIMB(0x1b10ea929ba144cb),CNST_LIMB(0x120b470c67c0d88)), + P(229,CNST_LIMB(0x1d10c4c0478bbced),CNST_LIMB(0x11e2ef3b3fb8744)), + P(233,CNST_LIMB(0x63fb9aeb1fdcd759),CNST_LIMB(0x119453808ca29c0)), + P(239,CNST_LIMB(0x64afaa4f437b2e0f),CNST_LIMB(0x112358e75d30336)), + P(241,CNST_LIMB(0xf010fef010fef011),CNST_LIMB(0x10fef010fef010f)), + P(251,CNST_LIMB(0x28cbfbeb9a020a33),CNST_LIMB(0x105197f7d734041)), + P(257,CNST_LIMB(0xff00ff00ff00ff01),CNST_LIMB(0xff00ff00ff00ff)), + P(263,CNST_LIMB(0xd624fd1470e99cb7),CNST_LIMB(0xf92fb2211855a8)), + P(269,CNST_LIMB(0x8fb3ddbd6205b5c5),CNST_LIMB(0xf3a0d52cba8723)), + P(271,CNST_LIMB(0xd57da36ca27acdef),CNST_LIMB(0xf1d48bcee0d399)), + P(277,CNST_LIMB(0xee70c03b25e4463d),CNST_LIMB(0xec979118f3fc4d)), + P(281,CNST_LIMB(0xc5b1a6b80749cb29),CNST_LIMB(0xe939651fe2d8d3)), + P(283,CNST_LIMB(0x47768073c9b97113),CNST_LIMB(0xe79372e225fe30)), + P(293,CNST_LIMB(0x2591e94884ce32ad),CNST_LIMB(0xdfac1f74346c57)), + P(307,CNST_LIMB(0xf02806abc74be1fb),CNST_LIMB(0xd578e97c3f5fe5)), + P(311,CNST_LIMB(0x7ec3e8f3a7198487),CNST_LIMB(0xd2ba083b445250)), + P(313,CNST_LIMB(0x58550f8a39409d09),CNST_LIMB(0xd161543e28e502)), + P(317,CNST_LIMB(0xec9e48ae6f71de15),CNST_LIMB(0xcebcf8bb5b4169)), + P(331,CNST_LIMB(0x2ff3a018bfce8063),CNST_LIMB(0xc5fe740317f9d0)), + P(337,CNST_LIMB(0x7f9ec3fcf61fe7b1),CNST_LIMB(0xc2780613c0309e)), + P(347,CNST_LIMB(0x89f5abe570e046d3),CNST_LIMB(0xbcdd535db1cc5b)), + P(349,CNST_LIMB(0xda971b23f1545af5),CNST_LIMB(0xbbc8408cd63069)), + P(353,CNST_LIMB(0x79d5f00b9a7862a1),CNST_LIMB(0xb9a7862a0ff465)), + P(359,CNST_LIMB(0x4dba1df32a128a57),CNST_LIMB(0xb68d31340e4307)), + P(367,CNST_LIMB(0x87530217b7747d8f),CNST_LIMB(0xb2927c29da5519)), + P(373,CNST_LIMB(0x30baae53bb5e06dd),CNST_LIMB(0xafb321a1496fdf)), + P(379,CNST_LIMB(0xee70206c12e9b5b3),CNST_LIMB(0xaceb0f891e6551)), + P(383,CNST_LIMB(0xcdde9462ec9dbe7f),CNST_LIMB(0xab1cbdd3e2970f)), + P(389,CNST_LIMB(0xafb64b05ec41cf4d),CNST_LIMB(0xa87917088e262b)), + P(397,CNST_LIMB(0x2944ff5aec02945),CNST_LIMB(0xa513fd6bb00a51)), + P(401,CNST_LIMB(0x2cb033128382df71),CNST_LIMB(0xa36e71a2cb0331)), + P(409,CNST_LIMB(0x1ccacc0c84b1c2a9),CNST_LIMB(0xa03c1688732b30)), + P(419,CNST_LIMB(0x19a93db575eb3a0b),CNST_LIMB(0x9c69169b30446d)), + P(421,CNST_LIMB(0xcebeef94fa86fe2d),CNST_LIMB(0x9baade8e4a2f6e)), + P(431,CNST_LIMB(0x6faa77fb3f8df54f),CNST_LIMB(0x980e4156201301)), + P(433,CNST_LIMB(0x68a58af00975a751),CNST_LIMB(0x975a750ff68a58)), + P(439,CNST_LIMB(0xd56e36d0c3efac07),CNST_LIMB(0x9548e4979e0829)), + P(443,CNST_LIMB(0xd8b44c47a8299b73),CNST_LIMB(0x93efd1c50e726b)), + P(449,CNST_LIMB(0x2d9ccaf9ba70e41),CNST_LIMB(0x91f5bcb8bb02d9)), + P(457,CNST_LIMB(0x985e1c023d9e879),CNST_LIMB(0x8f67a1e3fdc261)), + P(461,CNST_LIMB(0x2a343316c494d305),CNST_LIMB(0x8e2917e0e702c6)), + P(463,CNST_LIMB(0x70cb7916ab67652f),CNST_LIMB(0x8d8be33f95d715)), + P(467,CNST_LIMB(0xd398f132fb10fe5b),CNST_LIMB(0x8c55841c815ed5)), + P(479,CNST_LIMB(0x6f2a38a6bf54fa1f),CNST_LIMB(0x88d180cd3a4133)), + P(487,CNST_LIMB(0x211df689b98f81d7),CNST_LIMB(0x869222b1acf1ce)), + P(491,CNST_LIMB(0xe994983e90f1ec3),CNST_LIMB(0x85797b917765ab)), + P(499,CNST_LIMB(0xad671e44bed87f3b),CNST_LIMB(0x8355ace3c897db)), + P(503,CNST_LIMB(0xf9623a0516e70fc7),CNST_LIMB(0x824a4e60b3262b)), + P(509,CNST_LIMB(0x4b7129be9dece355),CNST_LIMB(0x80c121b28bd1ba)), + P(521,CNST_LIMB(0x190f3b7473f62c39),CNST_LIMB(0x7dc9f3397d4c29)), + P(523,CNST_LIMB(0x63dacc9aad46f9a3),CNST_LIMB(0x7d4ece8fe88139)), + P(541,CNST_LIMB(0xc1108fda24e8d035),CNST_LIMB(0x79237d65bcce50)), + P(547,CNST_LIMB(0xb77578472319bd8b),CNST_LIMB(0x77cf53c5f7936c)), + P(557,CNST_LIMB(0x473d20a1c7ed9da5),CNST_LIMB(0x75a8accfbdd11e)), + P(563,CNST_LIMB(0xfbe85af0fea2c8fb),CNST_LIMB(0x7467ac557c228e)), + P(569,CNST_LIMB(0x58a1f7e6ce0f4c09),CNST_LIMB(0x732d70ed8db8e9)), + P(571,CNST_LIMB(0x1a00e58c544986f3),CNST_LIMB(0x72c62a24c3797f)), + P(577,CNST_LIMB(0x7194a17f55a10dc1),CNST_LIMB(0x7194a17f55a10d)), + P(587,CNST_LIMB(0x7084944785e33763),CNST_LIMB(0x6fa549b41da7e7)), + P(593,CNST_LIMB(0xba10679bd84886b1),CNST_LIMB(0x6e8419e6f61221)), + P(599,CNST_LIMB(0xebe9c6bb31260967),CNST_LIMB(0x6d68b5356c207b)), + P(601,CNST_LIMB(0x97a3fe4bd1ff25e9),CNST_LIMB(0x6d0b803685c01b)), + P(607,CNST_LIMB(0x6c6388395b84d99f),CNST_LIMB(0x6bf790a8b2d207)), + P(613,CNST_LIMB(0x8c51da6a1335df6d),CNST_LIMB(0x6ae907ef4b96c2)), + P(617,CNST_LIMB(0x46f3234475d5add9),CNST_LIMB(0x6a37991a23aead)), + P(619,CNST_LIMB(0x905605ca3c619a43),CNST_LIMB(0x69dfbdd4295b66)), + P(631,CNST_LIMB(0xcee8dff304767747),CNST_LIMB(0x67dc4c45c8033e)), + P(641,CNST_LIMB(0xff99c27f00663d81),CNST_LIMB(0x663d80ff99c27f)), + P(643,CNST_LIMB(0xacca407f671ddc2b),CNST_LIMB(0x65ec17e3559948)), + P(647,CNST_LIMB(0xe71298bac1e12337),CNST_LIMB(0x654ac835cfba5c)), + P(653,CNST_LIMB(0xfa1e94309cd09045),CNST_LIMB(0x645c854ae10772)), + P(659,CNST_LIMB(0xbebccb8e91496b9b),CNST_LIMB(0x6372990e5f901f)), + P(661,CNST_LIMB(0x312fa30cc7d7b8bd),CNST_LIMB(0x6325913c07beef)), + P(673,CNST_LIMB(0x6160ff9e9f006161),CNST_LIMB(0x6160ff9e9f0061)), + P(677,CNST_LIMB(0x6b03673b5e28152d),CNST_LIMB(0x60cdb520e5e88e)), + P(683,CNST_LIMB(0xfe802ffa00bfe803),CNST_LIMB(0x5ff4017fd005ff)), + P(691,CNST_LIMB(0xe66fe25c9e907c7b),CNST_LIMB(0x5ed79e31a4dccd)), + P(701,CNST_LIMB(0x3f8b236c76528895),CNST_LIMB(0x5d7d42d48ac5ef)), + P(709,CNST_LIMB(0xf6f923bf01ce2c0d),CNST_LIMB(0x5c6f35ccba5028)), + P(719,CNST_LIMB(0x6c3d3d98bed7c42f),CNST_LIMB(0x5b2618ec6ad0a5)), + P(727,CNST_LIMB(0x30981efcd4b010e7),CNST_LIMB(0x5a2553748e42e7)), + P(733,CNST_LIMB(0x6f691fc81ebbe575),CNST_LIMB(0x59686cf744cd5b)), + P(739,CNST_LIMB(0xb10480ddb47b52cb),CNST_LIMB(0x58ae97bab79976)), + P(743,CNST_LIMB(0x74cd59ed64f3f0d7),CNST_LIMB(0x58345f1876865f)), + P(751,CNST_LIMB(0x105cb81316d6c0f),CNST_LIMB(0x5743d5bb24795a)), + P(757,CNST_LIMB(0x9be64c6d91c1195d),CNST_LIMB(0x5692c4d1ab74ab)), + P(761,CNST_LIMB(0x71b3f945a27b1f49),CNST_LIMB(0x561e46a4d5f337)), + P(769,CNST_LIMB(0x77d80d50e508fd01),CNST_LIMB(0x5538ed06533997)), + P(773,CNST_LIMB(0xa5eb778e133551cd),CNST_LIMB(0x54c807f2c0bec2)), + P(787,CNST_LIMB(0x18657d3c2d8a3f1b),CNST_LIMB(0x5345efbc572d36)), + P(797,CNST_LIMB(0x2e40e220c34ad735),CNST_LIMB(0x523a758f941345)), + P(809,CNST_LIMB(0xa76593c70a714919),CNST_LIMB(0x5102370f816c89)), + P(811,CNST_LIMB(0x1eef452124eea383),CNST_LIMB(0x50cf129fb94acf)), + P(821,CNST_LIMB(0x38206dc242ba771d),CNST_LIMB(0x4fd31941cafdd1)), + P(823,CNST_LIMB(0x4cd4c35807772287),CNST_LIMB(0x4fa1704aa75945)), + P(827,CNST_LIMB(0x83de917d5e69ddf3),CNST_LIMB(0x4f3ed6d45a63ad)), + P(829,CNST_LIMB(0x882ef0403b4a6c15),CNST_LIMB(0x4f0de57154ebed)), + P(839,CNST_LIMB(0xf8fb6c51c606b677),CNST_LIMB(0x4e1cae8815f811)), + P(853,CNST_LIMB(0xb4abaac446d3e1fd),CNST_LIMB(0x4cd47ba5f6ff19)), + P(857,CNST_LIMB(0xa9f83bbe484a14e9),CNST_LIMB(0x4c78ae734df709)), + P(859,CNST_LIMB(0xbebbc0d1ce874d3),CNST_LIMB(0x4c4b19ed85cfb8)), + P(863,CNST_LIMB(0xbd418eaf0473189f),CNST_LIMB(0x4bf093221d1218)), + P(877,CNST_LIMB(0x44e3af6f372b7e65),CNST_LIMB(0x4aba3c21dc633f)), + P(881,CNST_LIMB(0xc87fdace4f9e5d91),CNST_LIMB(0x4a6360c344de00)), + P(883,CNST_LIMB(0xec93479c446bd9bb),CNST_LIMB(0x4a383e9f74d68a)), + P(887,CNST_LIMB(0xdac4d592e777c647),CNST_LIMB(0x49e28fbabb9940)), + P(907,CNST_LIMB(0xa63ea8c8f61f0c23),CNST_LIMB(0x48417b57c78cd7)), + P(911,CNST_LIMB(0xe476062ea5cbbb6f),CNST_LIMB(0x47f043713f3a2b)), + P(919,CNST_LIMB(0xdf68761c69daac27),CNST_LIMB(0x474ff2a10281cf)), + P(929,CNST_LIMB(0xb813d737637aa061),CNST_LIMB(0x468b6f9a978f91)), + P(937,CNST_LIMB(0xa3a77aac1fb15099),CNST_LIMB(0x45f13f1caff2e2)), + P(941,CNST_LIMB(0x17f0c3e0712c5825),CNST_LIMB(0x45a5228cec23e9)), + P(947,CNST_LIMB(0xfd912a70ff30637b),CNST_LIMB(0x45342c556c66b9)), + P(953,CNST_LIMB(0xfbb3b5dc01131289),CNST_LIMB(0x44c4a23feeced7)), + P(967,CNST_LIMB(0x856d560a0f5acdf7),CNST_LIMB(0x43c5c20d3c9fe6)), + P(971,CNST_LIMB(0x96472f314d3f89e3),CNST_LIMB(0x437e494b239798)), + P(977,CNST_LIMB(0xa76f5c7ed2253531),CNST_LIMB(0x43142d118e47cb)), + P(983,CNST_LIMB(0x816eae7c7bf69fe7),CNST_LIMB(0x42ab5c73a13458)), + P(991,CNST_LIMB(0xb6a2bea4cfb1781f),CNST_LIMB(0x4221950db0f3db)), + P(997,CNST_LIMB(0xa3900c53318e81ed),CNST_LIMB(0x41bbb2f80a4553)), + P(1009,CNST_LIMB(0x60aa7f5d9f148d11),CNST_LIMB(0x40f391612c6680)), + P(1013,CNST_LIMB(0x6be8c0102c7a505d),CNST_LIMB(0x40b1e94173fefd)), + P(1019,CNST_LIMB(0x8ff3f0ed28728f33),CNST_LIMB(0x4050647d9d0445)), + P(1021,CNST_LIMB(0x680e0a87e5ec7155),CNST_LIMB(0x4030241b144f3b)), + P(1031,CNST_LIMB(0xbbf70fa49fe829b7),CNST_LIMB(0x3f90c2ab542cb1)), + P(1033,CNST_LIMB(0xd69d1e7b6a50ca39),CNST_LIMB(0x3f71412d59f597)), + P(1039,CNST_LIMB(0x1a1e0f46b6d26aef),CNST_LIMB(0x3f137701b98841)), + P(1049,CNST_LIMB(0x7429f9a7a8251829),CNST_LIMB(0x3e79886b60e278)), + P(1051,CNST_LIMB(0xd9c2219d1b863613),CNST_LIMB(0x3e5b1916a7181d)), + P(1061,CNST_LIMB(0x91406c1820d077ad),CNST_LIMB(0x3dc4a50968f524)), + P(1063,CNST_LIMB(0x521f4ec02e3d2b97),CNST_LIMB(0x3da6e4c9550321)), + P(1069,CNST_LIMB(0xbb8283b63dc8eba5),CNST_LIMB(0x3d4e4f06f1def3)), + P(1087,CNST_LIMB(0x431eda153229ebbf),CNST_LIMB(0x3c4a6bdd24f9a4)), + P(1091,CNST_LIMB(0xaf0bf78d7e01686b),CNST_LIMB(0x3c11d54b525c73)), + P(1093,CNST_LIMB(0xa9ced0742c086e8d),CNST_LIMB(0x3bf5b1c5721065)), + P(1097,CNST_LIMB(0xc26458ad9f632df9),CNST_LIMB(0x3bbdb9862f23b4)), + P(1103,CNST_LIMB(0xbbff1255dff892af),CNST_LIMB(0x3b6a8801db5440)), + P(1109,CNST_LIMB(0xcbd49a333f04d8fd),CNST_LIMB(0x3b183cf0fed886)), + P(1117,CNST_LIMB(0xec84ed6f9cfdeff5),CNST_LIMB(0x3aabe394bdc3f4)), + P(1123,CNST_LIMB(0x97980cc40bda9d4b),CNST_LIMB(0x3a5ba3e76156da)), + P(1129,CNST_LIMB(0x777f34d524f5cbd9),CNST_LIMB(0x3a0c3e953378db)), + P(1151,CNST_LIMB(0x2797051d94cbbb7f),CNST_LIMB(0x38f03561320b1e)), + P(1153,CNST_LIMB(0xea769051b4f43b81),CNST_LIMB(0x38d6ecaef5908a)), + P(1163,CNST_LIMB(0xce7910f3034d4323),CNST_LIMB(0x3859cf221e6069)), + P(1171,CNST_LIMB(0x92791d1374f5b99b),CNST_LIMB(0x37f7415dc9588a)), + P(1181,CNST_LIMB(0x89a5645cc68ea1b5),CNST_LIMB(0x377df0d3902626)), + P(1187,CNST_LIMB(0x5f8aacf796c0cf0b),CNST_LIMB(0x373622136907fa)), + P(1193,CNST_LIMB(0xf2e90a15e33edf99),CNST_LIMB(0x36ef0c3b39b92f)), + P(1201,CNST_LIMB(0x8e99e5feb897c451),CNST_LIMB(0x36915f47d55e6d)), + P(1213,CNST_LIMB(0xaca2eda38fb91695),CNST_LIMB(0x36072cf3f866fd)), + P(1217,CNST_LIMB(0x5d9b737be5ea8b41),CNST_LIMB(0x35d9b737be5ea8)), + P(1223,CNST_LIMB(0x4aefe1db93fd7cf7),CNST_LIMB(0x35961559cc81c7)), + P(1229,CNST_LIMB(0xa0994ef20b3f8805),CNST_LIMB(0x35531c897a4592)), + P(1231,CNST_LIMB(0x103890bda912822f),CNST_LIMB(0x353ceebd3e98a4)), + P(1237,CNST_LIMB(0xb441659d13a9147d),CNST_LIMB(0x34fad381585e5e)), + P(1249,CNST_LIMB(0x1e2134440c4c3f21),CNST_LIMB(0x347884d1103130)), + P(1259,CNST_LIMB(0x263a27727a6883c3),CNST_LIMB(0x340dd3ac39bf56)), + P(1277,CNST_LIMB(0x78e221472ab33855),CNST_LIMB(0x3351fdfecc140c)), + P(1279,CNST_LIMB(0x95eac88e82e6faff),CNST_LIMB(0x333d72b089b524)), + P(1283,CNST_LIMB(0xf66c258317be8dab),CNST_LIMB(0x33148d44d6b261)), + P(1289,CNST_LIMB(0x9ee202c7cb91939),CNST_LIMB(0x32d7aef8412458)), + P(1291,CNST_LIMB(0x8d2fca1042a09ea3),CNST_LIMB(0x32c3850e79c0f1)), + P(1297,CNST_LIMB(0x82779c856d8b8bf1),CNST_LIMB(0x328766d59048a2)), + P(1301,CNST_LIMB(0x3879361cba8a223d),CNST_LIMB(0x325fa18cb11833)), + P(1303,CNST_LIMB(0xf23f43639c3182a7),CNST_LIMB(0x324bd659327e22)), + P(1307,CNST_LIMB(0xa03868fc474bcd13),CNST_LIMB(0x32246e784360f4)), + P(1319,CNST_LIMB(0x651e78b8c5311a97),CNST_LIMB(0x31afa5f1a33a08)), + P(1321,CNST_LIMB(0x8ffce639c00c6719),CNST_LIMB(0x319c63ff398e70)), + P(1327,CNST_LIMB(0xf7b460754b0b61cf),CNST_LIMB(0x3162f7519a86a7)), + P(1361,CNST_LIMB(0x7b03f3359b8e63b1),CNST_LIMB(0x30271fc9d3fc3c)), + P(1367,CNST_LIMB(0xa55c5326041eb667),CNST_LIMB(0x2ff104ae89750b)), + P(1373,CNST_LIMB(0x647f88ab896a76f5),CNST_LIMB(0x2fbb62a236d133)), + P(1381,CNST_LIMB(0x8fd971434a55a46d),CNST_LIMB(0x2f74997d2070b4)), + P(1399,CNST_LIMB(0x9fbf969958046447),CNST_LIMB(0x2ed84aa8b6fce3)), + P(1409,CNST_LIMB(0x9986feba69be3a81),CNST_LIMB(0x2e832df7a46dbd)), + P(1423,CNST_LIMB(0xa668b3e6d053796f),CNST_LIMB(0x2e0e0846857cab)), + P(1427,CNST_LIMB(0x97694e6589f4e09b),CNST_LIMB(0x2decfbdfb55ee6)), + P(1429,CNST_LIMB(0x37890c00b7721dbd),CNST_LIMB(0x2ddc876f3ff488)), + P(1433,CNST_LIMB(0x5ac094a235f37ea9),CNST_LIMB(0x2dbbc1d4c482c4)), + P(1439,CNST_LIMB(0x31cff775f2d5d65f),CNST_LIMB(0x2d8af0e0de0556)), + P(1447,CNST_LIMB(0xddad8e6b36505217),CNST_LIMB(0x2d4a7b7d14b30a)), + P(1451,CNST_LIMB(0x5a27df897062cd03),CNST_LIMB(0x2d2a85073bcf4e)), + P(1453,CNST_LIMB(0xe2396fe0fdb5a625),CNST_LIMB(0x2d1a9ab13e8be4)), + P(1459,CNST_LIMB(0xb352a4957e82317b),CNST_LIMB(0x2ceb1eb4b9fd8b)), + P(1471,CNST_LIMB(0xd8ab3f2c60c2ea3f),CNST_LIMB(0x2c8d503a79794c)), + P(1481,CNST_LIMB(0x6893f702f0452479),CNST_LIMB(0x2c404d708784ed)), + P(1483,CNST_LIMB(0x9686fdc182acf7e3),CNST_LIMB(0x2c31066315ec52)), + P(1487,CNST_LIMB(0x6854037173dce12f),CNST_LIMB(0x2c1297d80f2664)), + P(1489,CNST_LIMB(0x7f0ded1685c27331),CNST_LIMB(0x2c037044c55f6b)), + P(1493,CNST_LIMB(0xeeda72e1fe490b7d),CNST_LIMB(0x2be5404cd13086)), + P(1499,CNST_LIMB(0x9e7bfc959a8e6e53),CNST_LIMB(0x2bb845adaf0cce)), + P(1511,CNST_LIMB(0x49b314d6d4753dd7),CNST_LIMB(0x2b5f62c639f16d)), + P(1523,CNST_LIMB(0x2e8f8c5ac4aa1b3b),CNST_LIMB(0x2b07e6734f2b88)), + P(1531,CNST_LIMB(0xb8ef723481163d33),CNST_LIMB(0x2ace569d8342b7)), + P(1543,CNST_LIMB(0x6a2ec96a594287b7),CNST_LIMB(0x2a791d5dbd4dcf)), + P(1549,CNST_LIMB(0xdba41c6d13aab8c5),CNST_LIMB(0x2a4eff8113017c)), + P(1553,CNST_LIMB(0xc2adbe648dc3aaf1),CNST_LIMB(0x2a3319e156df32)), + P(1559,CNST_LIMB(0x87a2bade565f91a7),CNST_LIMB(0x2a0986286526ea)), + P(1567,CNST_LIMB(0x4d6fe8798c01f5df),CNST_LIMB(0x29d29551d91e39)), + P(1571,CNST_LIMB(0x3791310c8c23d98b),CNST_LIMB(0x29b7529e109f0a)), + P(1579,CNST_LIMB(0xf80e446b01228883),CNST_LIMB(0x298137491ea465)), + P(1583,CNST_LIMB(0x9aed1436fbf500cf),CNST_LIMB(0x29665e1eb9f9da)), + P(1597,CNST_LIMB(0x7839b54cc8b24115),CNST_LIMB(0x2909752e019a5e)), + P(1601,CNST_LIMB(0xc128c646ad0309c1),CNST_LIMB(0x28ef35e2e5efb0)), + P(1607,CNST_LIMB(0x14de631624a3c377),CNST_LIMB(0x28c815aa4b8278)), + P(1609,CNST_LIMB(0x3f7b9fe68b0ecbf9),CNST_LIMB(0x28bb1b867199da)), + P(1613,CNST_LIMB(0x284ffd75ec00a285),CNST_LIMB(0x28a13ff5d7b002)), + P(1619,CNST_LIMB(0x37803cb80dea2ddb),CNST_LIMB(0x287ab3f173e755)), + P(1621,CNST_LIMB(0x86b63f7c9ac4c6fd),CNST_LIMB(0x286dead67713bd)), + P(1627,CNST_LIMB(0x8b6851d1bd99b9d3),CNST_LIMB(0x2847bfcda6503e)), + P(1637,CNST_LIMB(0xb62fda77ca343b6d),CNST_LIMB(0x2808c1ea6b4777)), + P(1657,CNST_LIMB(0x1f0dc009e34383c9),CNST_LIMB(0x278d0e0f23ff61)), + P(1663,CNST_LIMB(0x496dc21ddd35b97f),CNST_LIMB(0x2768863c093c7f)), + P(1667,CNST_LIMB(0xb0e96ce17090f82b),CNST_LIMB(0x27505115a73ca8)), + P(1669,CNST_LIMB(0xaadf05acdd7d024d),CNST_LIMB(0x274441a61dc1b9)), + P(1693,CNST_LIMB(0xcb138196746eafb5),CNST_LIMB(0x26b5c166113cf0)), + P(1697,CNST_LIMB(0x347f523736755d61),CNST_LIMB(0x269e65ad07b18e)), + P(1699,CNST_LIMB(0xd14a48a051f7dd0b),CNST_LIMB(0x2692c25f877560)), + P(1709,CNST_LIMB(0x474d71b1ce914d25),CNST_LIMB(0x2658fa7523cd11)), + P(1721,CNST_LIMB(0x386063f5e28c1f89),CNST_LIMB(0x26148710cf0f9e)), + P(1723,CNST_LIMB(0x1db7325e32d04e73),CNST_LIMB(0x2609363b22524f)), + P(1733,CNST_LIMB(0xfef748d3893b880d),CNST_LIMB(0x25d1065a1c1122)), + P(1741,CNST_LIMB(0x2f3351506e935605),CNST_LIMB(0x25a48a382b863f)), + P(1747,CNST_LIMB(0x7a3637fa2376415b),CNST_LIMB(0x25837190eccdbc)), + P(1753,CNST_LIMB(0x4ac525d2baa21969),CNST_LIMB(0x256292e95d510c)), + P(1759,CNST_LIMB(0x3a11c16b42cd351f),CNST_LIMB(0x2541eda98d068c)), + P(1777,CNST_LIMB(0x6c7abde0049c2a11),CNST_LIMB(0x24e15087fed8f5)), + P(1783,CNST_LIMB(0x54dad0303e069ac7),CNST_LIMB(0x24c18b20979e5d)), + P(1787,CNST_LIMB(0xebf1ac9fdfe91433),CNST_LIMB(0x24ac7b336de0c5)), + P(1789,CNST_LIMB(0xfafdda8237cec655),CNST_LIMB(0x24a1fc478c60bb)), + P(1801,CNST_LIMB(0xdce3ff6e71ffb739),CNST_LIMB(0x2463801231c009)), + P(1811,CNST_LIMB(0xbed5737d6286db1b),CNST_LIMB(0x24300fd506ed33)), + P(1823,CNST_LIMB(0xe479e431fe08b4df),CNST_LIMB(0x23f314a494da81)), + P(1831,CNST_LIMB(0x9dd9b0dd7742f897),CNST_LIMB(0x23cadedd2fad3a)), + P(1847,CNST_LIMB(0x8f09d7402c5a5e87),CNST_LIMB(0x237b7ed2664a03)), + P(1861,CNST_LIMB(0x9216d5c4d958738d),CNST_LIMB(0x23372967dbaf1d)), + P(1867,CNST_LIMB(0xb3139ba11d34ca63),CNST_LIMB(0x231a308a371f20)), + P(1871,CNST_LIMB(0x47d54f7ed644afaf),CNST_LIMB(0x2306fa63e1e600)), + P(1873,CNST_LIMB(0x92a81d85cf11a1b1),CNST_LIMB(0x22fd6731575684)), + P(1877,CNST_LIMB(0x754b26533253bdfd),CNST_LIMB(0x22ea507805749c)), + P(1879,CNST_LIMB(0xbbe0efc980bfd467),CNST_LIMB(0x22e0cce8b3d720)), + P(1889,CNST_LIMB(0xc0d8d594f024dca1),CNST_LIMB(0x22b1887857d161)), + P(1901,CNST_LIMB(0x8238d43bcaac1a65),CNST_LIMB(0x227977fcc49cc0)), + P(1907,CNST_LIMB(0x27779c1fae6175bb),CNST_LIMB(0x225db37b5e5f4f)), + P(1913,CNST_LIMB(0xa746ca9af708b2c9),CNST_LIMB(0x22421b91322ed6)), + P(1931,CNST_LIMB(0x93f3cd9f389be823),CNST_LIMB(0x21f05b35f52102)), + P(1933,CNST_LIMB(0x5cb4a4c04c489345),CNST_LIMB(0x21e75de5c70d60)), + P(1949,CNST_LIMB(0xbf6047743e85b6b5),CNST_LIMB(0x21a01d6c19be96)), + P(1951,CNST_LIMB(0x61c147831563545f),CNST_LIMB(0x21974a6615c81a)), + P(1973,CNST_LIMB(0xedb47c0ae62dee9d),CNST_LIMB(0x213767697cf36a)), + P(1979,CNST_LIMB(0xa3824386673a573),CNST_LIMB(0x211d9f7fad35f1)), + P(1987,CNST_LIMB(0xa4a77d19e575a0eb),CNST_LIMB(0x20fb7d9dd36c18)), + P(1993,CNST_LIMB(0xa2bee045e066c279),CNST_LIMB(0x20e2123d661e0e)), + P(1997,CNST_LIMB(0xc23618de8ab43d05),CNST_LIMB(0x20d135b66ae990)), + P(1999,CNST_LIMB(0x266b515216cb9f2f),CNST_LIMB(0x20c8cded4d7a8e)), + P(2003,CNST_LIMB(0xe279edd9e9c2e85b),CNST_LIMB(0x20b80b3f43ddbf)), + P(2011,CNST_LIMB(0xd0c591c221dc9c53),CNST_LIMB(0x2096b9180f46a6)), + P(2017,CNST_LIMB(0x6da8ee9c9ee7c21),CNST_LIMB(0x207de7e28de5da)), + P(2027,CNST_LIMB(0x9dfebcaf4c27e8c3),CNST_LIMB(0x2054dec8cf1fb3)), + P(2029,CNST_LIMB(0x49aeff9f19dd6de5),CNST_LIMB(0x204cb630b3aab5)), + P(2039,CNST_LIMB(0x86976a57a296e9c7),CNST_LIMB(0x202428adc37beb)), + P(2053,CNST_LIMB(0xa3b9abf4872b84cd),CNST_LIMB(0x1fec0c7834def4)), + P(2063,CNST_LIMB(0x34fca6483895e6ef),CNST_LIMB(0x1fc46fae98a1d0)), + P(2069,CNST_LIMB(0x34b5a333988f873d),CNST_LIMB(0x1facda430ff619)), + P(2081,CNST_LIMB(0xd9dd4f19b5f17be1),CNST_LIMB(0x1f7e17dd8e15e5)), + P(2083,CNST_LIMB(0xb935b507fd0ce78b),CNST_LIMB(0x1f765a3556a4ee)), + P(2087,CNST_LIMB(0xb450f5540660e797),CNST_LIMB(0x1f66ea49d802f1)), + P(2089,CNST_LIMB(0x63ff82831ffc1419),CNST_LIMB(0x1f5f3800faf9c0)), + P(2099,CNST_LIMB(0x8992f718c22a32fb),CNST_LIMB(0x1f38f4e6c0f1f9)), + P(2111,CNST_LIMB(0x5f3253ad0d37e7bf),CNST_LIMB(0x1f0b8546752578)), + P(2113,CNST_LIMB(0x7c0ffe0fc007c1),CNST_LIMB(0x1f03ff83f001f0)), + P(2129,CNST_LIMB(0x4d8ebadc0c0640b1),CNST_LIMB(0x1ec853b0a3883c)), + P(2131,CNST_LIMB(0xe2729af831037bdb),CNST_LIMB(0x1ec0ee573723eb)), + P(2137,CNST_LIMB(0xb8f64bf30feebfe9),CNST_LIMB(0x1eaad38e6f6894)), + P(2141,CNST_LIMB(0xda93124b544c0bf5),CNST_LIMB(0x1e9c28a765fe53)), + P(2143,CNST_LIMB(0x9cf7ff0b593c539f),CNST_LIMB(0x1e94d8758c2003)), + P(2153,CNST_LIMB(0xd6bd8861fa0e07d9),CNST_LIMB(0x1e707ba8f65e68)), + P(2161,CNST_LIMB(0x5cfe75c0bd8ab891),CNST_LIMB(0x1e53a2a68f574e)), + P(2179,CNST_LIMB(0x43e808757c2e862b),CNST_LIMB(0x1e1380a56b438d)), + P(2203,CNST_LIMB(0x90caa96d595c9d93),CNST_LIMB(0x1dbf9f513a3802)), + P(2207,CNST_LIMB(0x8fd550625d07135f),CNST_LIMB(0x1db1d1d58bc600)), + P(2213,CNST_LIMB(0x76b010a86e209f2d),CNST_LIMB(0x1d9d358f53de38)), + P(2221,CNST_LIMB(0xecc0426447769b25),CNST_LIMB(0x1d81e6df6165c7)), + P(2237,CNST_LIMB(0xe381339caabe3295),CNST_LIMB(0x1d4bdf7fd40e30)), + P(2239,CNST_LIMB(0xd1b190a2d0c7673f),CNST_LIMB(0x1d452c7a1c958d)), + P(2243,CNST_LIMB(0xc3bce3cf26b0e7eb),CNST_LIMB(0x1d37cf9b902659)), + P(2251,CNST_LIMB(0x5f87e76f56c61ce3),CNST_LIMB(0x1d1d3a5791e97b)), + P(2267,CNST_LIMB(0xc06c6857a124b353),CNST_LIMB(0x1ce89fe6b47416)), + P(2269,CNST_LIMB(0x38c040fcba630f75),CNST_LIMB(0x1ce219f3235071)), + P(2273,CNST_LIMB(0xd078bc4fbd533b21),CNST_LIMB(0x1cd516dcf92139)), + P(2281,CNST_LIMB(0xde8e15c5dd354f59),CNST_LIMB(0x1cbb33bd1c2b8b)), + P(2287,CNST_LIMB(0xca61d53d7414260f),CNST_LIMB(0x1ca7e7d2546688)), + P(2293,CNST_LIMB(0xb56bf5ba8eae635d),CNST_LIMB(0x1c94b5c1b3dbd3)), + P(2297,CNST_LIMB(0x44a72cb0fb6e3949),CNST_LIMB(0x1c87f7f9c241c1)), + P(2309,CNST_LIMB(0x879839a714f45bcd),CNST_LIMB(0x1c6202706c35a9)), + P(2311,CNST_LIMB(0x2a8994fde5314b7),CNST_LIMB(0x1c5bb8a9437632)), + P(2333,CNST_LIMB(0xb971920cf2b90135),CNST_LIMB(0x1c174343b4111e)), + P(2339,CNST_LIMB(0x8a8fd0b7df9a6e8b),CNST_LIMB(0x1c04d0d3e46b42)), + P(2341,CNST_LIMB(0xb31f9a84c1c6eaad),CNST_LIMB(0x1bfeb00fbf4308)), + P(2347,CNST_LIMB(0x92293b02823c6d83),CNST_LIMB(0x1bec5dce0b202d)), + P(2351,CNST_LIMB(0xeee77ff20fe5ddcf),CNST_LIMB(0x1be03444620037)), + P(2357,CNST_LIMB(0xe1ea0f6c496c11d),CNST_LIMB(0x1bce09c66f6fc3)), + P(2371,CNST_LIMB(0xfdf2d3d6f88ccb6b),CNST_LIMB(0x1ba40228d02b30)), + P(2377,CNST_LIMB(0xfa9d74a3457738f9),CNST_LIMB(0x1b9225b1cf8919)), + P(2381,CNST_LIMB(0xefc3ca3db71a5785),CNST_LIMB(0x1b864a2ff3f53f)), + P(2383,CNST_LIMB(0x8e2071718d0d6daf),CNST_LIMB(0x1b80604150e49b)), + P(2389,CNST_LIMB(0xbc0fdbfeb6cfabfd),CNST_LIMB(0x1b6eb1aaeaacf3)), + P(2393,CNST_LIMB(0x1eeab613e5e5aee9),CNST_LIMB(0x1b62f48da3c8cc)), + P(2399,CNST_LIMB(0x2d2388e90e9e929f),CNST_LIMB(0x1b516babe96092)), + P(2411,CNST_LIMB(0x81dbafba588ddb43),CNST_LIMB(0x1b2e9cef1e0c87)), + P(2417,CNST_LIMB(0x52eebc51c4799791),CNST_LIMB(0x1b1d56bedc849b)), + P(2423,CNST_LIMB(0x1c6bc4693b45a047),CNST_LIMB(0x1b0c267546aec0)), + P(2437,CNST_LIMB(0x6eee0974498874d),CNST_LIMB(0x1ae45f62024fa0)), + P(2441,CNST_LIMB(0xd85b7377a9953cb9),CNST_LIMB(0x1ad917631b5f54)), + P(2447,CNST_LIMB(0x4b6df412d4caf56f),CNST_LIMB(0x1ac83d18cb608f)), + P(2459,CNST_LIMB(0x6b8afbbb4a053493),CNST_LIMB(0x1aa6c7ad8c063f)), + P(2467,CNST_LIMB(0xcc5299c96ac7720b),CNST_LIMB(0x1a90a7b1228e2a)), + P(2473,CNST_LIMB(0xadce84b5c710aa99),CNST_LIMB(0x1a8027c03ba059)), + P(2477,CNST_LIMB(0x9d673f5aa3804225),CNST_LIMB(0x1a7533289deb89)), + P(2503,CNST_LIMB(0xe6541268efbce7f7),CNST_LIMB(0x1a2ed7ce16b49f)), + P(2521,CNST_LIMB(0xfcf41e76cf5be669),CNST_LIMB(0x19fefc0a279a73)), + P(2531,CNST_LIMB(0x5c3eb5dc31c383cb),CNST_LIMB(0x19e4b0cd873b5f)), + P(2539,CNST_LIMB(0x301832d11d8ad6c3),CNST_LIMB(0x19cfcdfd60e514)), + P(2543,CNST_LIMB(0x2e9c0942f1ce450f),CNST_LIMB(0x19c56932d66c85)), + P(2549,CNST_LIMB(0x97f3f2be37a39a5d),CNST_LIMB(0x19b5e1ab6fc7c2)), + P(2551,CNST_LIMB(0xe8b7d8a9654187c7),CNST_LIMB(0x19b0b8a62f2a73)), + P(2557,CNST_LIMB(0xb5d024d7da5b1b55),CNST_LIMB(0x19a149fc98942c)), + P(2579,CNST_LIMB(0xb8ba9d6e7ae3501b),CNST_LIMB(0x1969517ec25b85)), + P(2591,CNST_LIMB(0xf50865f71b90f1df),CNST_LIMB(0x194b3083360ba8)), + P(2593,CNST_LIMB(0x739c1682847df9e1),CNST_LIMB(0x194631f4bebdc1)), + P(2609,CNST_LIMB(0xc470a4d842b90ed1),CNST_LIMB(0x191e84127268fd)), + P(2617,CNST_LIMB(0x1fb1be11698cc409),CNST_LIMB(0x190adbb543984f)), + P(2621,CNST_LIMB(0xd8d5512a7cd35d15),CNST_LIMB(0x1901130bd18200)), + P(2633,CNST_LIMB(0xa5496821723e07f9),CNST_LIMB(0x18e3e6b889ac94)), + P(2647,CNST_LIMB(0xbcc8c6d7abaa8167),CNST_LIMB(0x18c233420e1ec1)), + P(2657,CNST_LIMB(0x52c396c95eb619a1),CNST_LIMB(0x18aa5872d92bd6)), + P(2659,CNST_LIMB(0x6eb7e380878ec74b),CNST_LIMB(0x18a5989945ccf9)), + P(2663,CNST_LIMB(0x3d5513b504537157),CNST_LIMB(0x189c1e60b57f60)), + P(2671,CNST_LIMB(0x314391f8862e948f),CNST_LIMB(0x18893fbc8690b9)), + P(2677,CNST_LIMB(0xdc0b17cfcd81f5dd),CNST_LIMB(0x187b2bb3e1041c)), + P(2683,CNST_LIMB(0x2f6bea3ec89044b3),CNST_LIMB(0x186d27c9cdcfb8)), + P(2687,CNST_LIMB(0xce13a05869f1b57f),CNST_LIMB(0x1863d8bf4f2c1c)), + P(2689,CNST_LIMB(0x7593474e8ace3581),CNST_LIMB(0x185f33e2ad7593)), + P(2693,CNST_LIMB(0x7fc329295a05e4d),CNST_LIMB(0x1855ef75973e13)), + P(2699,CNST_LIMB(0xb05377cba4908d23),CNST_LIMB(0x1848160153f134)), + P(2707,CNST_LIMB(0xe7b2131a628aa39b),CNST_LIMB(0x1835b72e6f0656)), + P(2711,CNST_LIMB(0x9031dbed7de01527),CNST_LIMB(0x182c922d83eb39)), + P(2713,CNST_LIMB(0x76844b1c670aa9a9),CNST_LIMB(0x18280243c0365a)), + P(2719,CNST_LIMB(0x6a03f4533b08915f),CNST_LIMB(0x181a5cd5898e73)), + P(2729,CNST_LIMB(0x1dbca579db0a3999),CNST_LIMB(0x1803c0961773aa)), + P(2731,CNST_LIMB(0x2ffe800bffa003),CNST_LIMB(0x17ff4005ffd001)), + P(2741,CNST_LIMB(0x478ab1a3e936139d),CNST_LIMB(0x17e8d670433edb)), + P(2749,CNST_LIMB(0x66e722bc4c5cc095),CNST_LIMB(0x17d7066cf4bb5d)), + P(2753,CNST_LIMB(0x7a8f63c717278541),CNST_LIMB(0x17ce285b806b1f)), + P(2767,CNST_LIMB(0xdf6eee24d292bc2f),CNST_LIMB(0x17af52cdf27e02)), + P(2777,CNST_LIMB(0x9fc20d17237dd569),CNST_LIMB(0x17997d47d01039)), + P(2789,CNST_LIMB(0xcdf9932356bda2ed),CNST_LIMB(0x177f7ec2c6d0ba)), + P(2791,CNST_LIMB(0x97b5e332e80f68d7),CNST_LIMB(0x177b2f3cd00756)), + P(2797,CNST_LIMB(0x46eee26fd875e2e5),CNST_LIMB(0x176e4a22f692a0)), + P(2801,CNST_LIMB(0x3548a8e65157a611),CNST_LIMB(0x1765b94271e11b)), + P(2803,CNST_LIMB(0xc288d03be9b71e3b),CNST_LIMB(0x1761732b044ae4)), + P(2819,CNST_LIMB(0x8151186db38937ab),CNST_LIMB(0x173f7a5300a2bc)), + P(2833,CNST_LIMB(0x7800b910895a45f1),CNST_LIMB(0x1722112b48be1f)), + P(2837,CNST_LIMB(0xaee0b024182eec3d),CNST_LIMB(0x1719b7a16eb843)), + P(2843,CNST_LIMB(0x96323eda173b5713),CNST_LIMB(0x170d3c99cc5052)), + P(2851,CNST_LIMB(0xed0dbd03ae77c8b),CNST_LIMB(0x16fcad7aed3bb6)), + P(2857,CNST_LIMB(0xf73800b7828dc119),CNST_LIMB(0x16f051b8231ffd)), + P(2861,CNST_LIMB(0x1b61715ec22b7ca5),CNST_LIMB(0x16e81beae20643)), + P(2879,CNST_LIMB(0xa8533a991ead64bf),CNST_LIMB(0x16c3721584c1d8)), + P(2887,CNST_LIMB(0x7f6c7290e46c2e77),CNST_LIMB(0x16b34c2ba09663)), + P(2897,CNST_LIMB(0x6325e8d907b01db1),CNST_LIMB(0x169f3ce292ddcd)), + P(2903,CNST_LIMB(0x28909f70152a1067),CNST_LIMB(0x169344b2220a0d)), + P(2909,CNST_LIMB(0xea7077af0997a0f5),CNST_LIMB(0x1687592593c1b1)), + P(2917,CNST_LIMB(0x7e605cad10c32e6d),CNST_LIMB(0x167787f1418ec9)), + P(2927,CNST_LIMB(0x471b33570635b38f),CNST_LIMB(0x1663e190395ff2)), + P(2939,CNST_LIMB(0xab559fa997a61bb3),CNST_LIMB(0x164c7a4b6eb5b3)), + P(2953,CNST_LIMB(0xad4bdae562bddab9),CNST_LIMB(0x16316a061182fd)), + P(2957,CNST_LIMB(0x55e1b2f2ed62f45),CNST_LIMB(0x1629ba914584e4)), + P(2963,CNST_LIMB(0x3cd328b1a2dca9b),CNST_LIMB(0x161e3d57de21b2)), + P(2969,CNST_LIMB(0xd28f4e08733218a9),CNST_LIMB(0x1612cc01b977f0)), + P(2971,CNST_LIMB(0xb6800b077f186293),CNST_LIMB(0x160efe30c525ff)), + P(2999,CNST_LIMB(0x6fbd138c3fd9c207),CNST_LIMB(0x15da45249ec5de)), + P(3001,CNST_LIMB(0xb117ccd12ae88a89),CNST_LIMB(0x15d68ab4acff92)), + P(3011,CNST_LIMB(0x2f1a1a044046bceb),CNST_LIMB(0x15c3f989d1eb15)), + P(3019,CNST_LIMB(0x548aba0b060541e3),CNST_LIMB(0x15b535ad11b8f0)), + P(3023,CNST_LIMB(0xcf4e808cea111b2f),CNST_LIMB(0x15addb3f424ec1)), + P(3037,CNST_LIMB(0xdbec1b4fa855a475),CNST_LIMB(0x159445cb91be6b)), + P(3041,CNST_LIMB(0xe3f794eb600d7821),CNST_LIMB(0x158d0199771e63)), + P(3049,CNST_LIMB(0x34fae0d9a11f7c59),CNST_LIMB(0x157e87d9b69e04)), + P(3061,CNST_LIMB(0xf006b0ccbbac085d),CNST_LIMB(0x1568f58bc01ac3)), + P(3067,CNST_LIMB(0x3f45076dc3114733),CNST_LIMB(0x155e3c993fda9b)), + P(3079,CNST_LIMB(0xeef49bfa58a1a1b7),CNST_LIMB(0x1548eacc5e1e6e)), + P(3083,CNST_LIMB(0x12c4218bea691fa3),CNST_LIMB(0x1541d8f91ba6a7)), + P(3089,CNST_LIMB(0xbc7504e3bd5e64f1),CNST_LIMB(0x153747060cc340)), + P(3109,CNST_LIMB(0x4ee21c292bb92fad),CNST_LIMB(0x1514569f93f7c4)), + P(3119,CNST_LIMB(0x34338b7327a4bacf),CNST_LIMB(0x150309705d3d79)), + P(3121,CNST_LIMB(0x3fe5c0833d6fccd1),CNST_LIMB(0x14ff97020cf5bf)), + P(3137,CNST_LIMB(0xb1e70743535203c1),CNST_LIMB(0x14e42c114cf47e)), + P(3163,CNST_LIMB(0xefbb5dcdfb4e43d3),CNST_LIMB(0x14b835bdcb6447)), + P(3167,CNST_LIMB(0xca68467ca5394f9f),CNST_LIMB(0x14b182b53a9ab7)), + P(3169,CNST_LIMB(0x8c51c081408b97a1),CNST_LIMB(0x14ae2ad094a3d3)), + P(3181,CNST_LIMB(0x3275a899dfa5dd65),CNST_LIMB(0x149a320ea59f96)), + P(3187,CNST_LIMB(0x9e674cb62e1b78bb),CNST_LIMB(0x1490441de1a2fb)), + P(3191,CNST_LIMB(0xa37ff5bb2a998d47),CNST_LIMB(0x1489aacce57200)), + P(3203,CNST_LIMB(0x792a999db131a22b),CNST_LIMB(0x1475f82ad6ff99)), + P(3209,CNST_LIMB(0x1b48841bc30d29b9),CNST_LIMB(0x146c2cfe53204f)), + P(3217,CNST_LIMB(0xf06721d2011d3471),CNST_LIMB(0x145f2ca490d4a1)), + P(3221,CNST_LIMB(0x93fd2386dff85ebd),CNST_LIMB(0x1458b2aae0ec87)), + P(3229,CNST_LIMB(0x4ce72f54c07ed9b5),CNST_LIMB(0x144bcb0a3a3150)), + P(3251,CNST_LIMB(0xd6d0fd3e71dd827b),CNST_LIMB(0x1428a1e65441d4)), + P(3253,CNST_LIMB(0x856405fb1eed819d),CNST_LIMB(0x142575a6c210d7)), + P(3257,CNST_LIMB(0x8ea8aceb7c443989),CNST_LIMB(0x141f2025ba5c46)), + P(3259,CNST_LIMB(0x34a13026f62e5873),CNST_LIMB(0x141bf6e35420fd)), + P(3271,CNST_LIMB(0x1eea0208ec0af4f7),CNST_LIMB(0x1409141d1d313a)), + P(3299,CNST_LIMB(0x63679853cea598cb),CNST_LIMB(0x13dd8bc19c3513)), + P(3301,CNST_LIMB(0xc30b3ebd61f2d0ed),CNST_LIMB(0x13da76f714dc8f)), + P(3307,CNST_LIMB(0x7eb9037bc7f43bc3),CNST_LIMB(0x13d13e50f8f49e)), + P(3313,CNST_LIMB(0xa583e6f6ce016411),CNST_LIMB(0x13c80e37ca3819)), + P(3319,CNST_LIMB(0xf1938d895f1a74c7),CNST_LIMB(0x13bee69fa99ccf)), + P(3323,CNST_LIMB(0x80cf1491c1e81e33),CNST_LIMB(0x13b8d0ede55835)), + P(3329,CNST_LIMB(0x3c0f12886ba8f301),CNST_LIMB(0x13afb7680bb054)), + P(3331,CNST_LIMB(0xe4b786e0dfcc5ab),CNST_LIMB(0x13acb0c3841c96)), + P(3343,CNST_LIMB(0x672684c93f2d41ef),CNST_LIMB(0x139a9c5f434fde)), + P(3347,CNST_LIMB(0xe00757badb35c51b),CNST_LIMB(0x13949cf33a0d9d)), + P(3359,CNST_LIMB(0xd6d84afe66472edf),CNST_LIMB(0x1382b4a00c31b0)), + P(3361,CNST_LIMB(0xfbbc0eedcbbfb6e1),CNST_LIMB(0x137fbbc0eedcbb)), + P(3371,CNST_LIMB(0x250f43aa08a84983),CNST_LIMB(0x1370ecf047b069)), + P(3373,CNST_LIMB(0x4400e927b1acaa5),CNST_LIMB(0x136df9790e3155)), + P(3389,CNST_LIMB(0x56572be34b9d3215),CNST_LIMB(0x13567dd8defd5b)), + P(3391,CNST_LIMB(0x87964ef7781c62bf),CNST_LIMB(0x13539261fdbc34)), + P(3407,CNST_LIMB(0x29ed84051c06e9af),CNST_LIMB(0x133c564292d28a)), + P(3413,CNST_LIMB(0xb00acd11ed3f87fd),CNST_LIMB(0x1333ae178d6388)), + P(3433,CNST_LIMB(0x6307881744152d9),CNST_LIMB(0x13170ad00d1fd7)), + P(3449,CNST_LIMB(0x7a786459f5c1ccc9),CNST_LIMB(0x13005f01db0947)), + P(3457,CNST_LIMB(0x1308125d74563281),CNST_LIMB(0x12f51d40342210)), + P(3461,CNST_LIMB(0x395310a480b3e34d),CNST_LIMB(0x12ef815e4ed950)), + P(3463,CNST_LIMB(0x35985baa8b202837),CNST_LIMB(0x12ecb4abccd827)), + P(3467,CNST_LIMB(0x96304a6e052b3223),CNST_LIMB(0x12e71dc1d3d820)), + P(3469,CNST_LIMB(0xbd8265fc9af8fd45),CNST_LIMB(0x12e45389a16495)), + P(3491,CNST_LIMB(0x1b6d0b383ec58e0b),CNST_LIMB(0x12c5d9226476cc)), + P(3499,CNST_LIMB(0xc21a7c3b68b28503),CNST_LIMB(0x12badc391156fd)), + P(3511,CNST_LIMB(0x236fa180fbfd6007),CNST_LIMB(0x12aa78e412f522)), + P(3517,CNST_LIMB(0xc42accd440ed9595),CNST_LIMB(0x12a251f5f47fd1)), + P(3527,CNST_LIMB(0x7acf7128236ba3f7),CNST_LIMB(0x1294cb85c53534)), + P(3529,CNST_LIMB(0xf909367a987b9c79),CNST_LIMB(0x12921963beb65e)), + P(3533,CNST_LIMB(0xb64efb252bfba705),CNST_LIMB(0x128cb777c69ca8)), + P(3539,CNST_LIMB(0x980d4f5a7e4cd25b),CNST_LIMB(0x1284aa6cf07294)), + P(3541,CNST_LIMB(0xe1ecc4ef27b0c37d),CNST_LIMB(0x1281fcf6ac7f87)), + P(3547,CNST_LIMB(0x9111aebb81d72653),CNST_LIMB(0x1279f937367db9)), + P(3557,CNST_LIMB(0x8951f985cb2c67ed),CNST_LIMB(0x126cad0488be94)), + P(3559,CNST_LIMB(0xc439d4fc54e0b5d7),CNST_LIMB(0x126a06794646a2)), + P(3571,CNST_LIMB(0xe857bf31896d533b),CNST_LIMB(0x125a2f2bcd3e95)), + P(3581,CNST_LIMB(0xb614bb4cb5023755),CNST_LIMB(0x124d108389e6b1)), + P(3583,CNST_LIMB(0x938a89e5473bf1ff),CNST_LIMB(0x124a73083771ac)), + P(3593,CNST_LIMB(0xeac481aca34de039),CNST_LIMB(0x123d6acda0620a)), + P(3607,CNST_LIMB(0x14b961badf4809a7),CNST_LIMB(0x122b4b2917eafd)), + P(3613,CNST_LIMB(0x76784fecba352435),CNST_LIMB(0x122391bfce1e2f)), + P(3617,CNST_LIMB(0xefa689bb58aef5e1),CNST_LIMB(0x121e6f1ea579f2)), + P(3623,CNST_LIMB(0xb2b2c4db9c3a8197),CNST_LIMB(0x1216c09e471568)), + P(3631,CNST_LIMB(0x2503bc992279f8cf),CNST_LIMB(0x120c8cb9d93909)), + P(3637,CNST_LIMB(0xd2ab9aec5ca1541d),CNST_LIMB(0x1204ed58e64ef9)), + P(3643,CNST_LIMB(0x3e78ba1460f99af3),CNST_LIMB(0x11fd546578f00c)), + P(3659,CNST_LIMB(0xa01426572cfcb63),CNST_LIMB(0x11e9310b8b4c9c)), + P(3671,CNST_LIMB(0xbea857968f3cbd67),CNST_LIMB(0x11da3405db9911)), + P(3673,CNST_LIMB(0x78db213eefe659e9),CNST_LIMB(0x11d7b6f4eb055d)), + P(3677,CNST_LIMB(0x963e8541a74d35f5),CNST_LIMB(0x11d2bee748c145)), + P(3691,CNST_LIMB(0x9e22d152776f2e43),CNST_LIMB(0x11c1706ddce7a7)), + P(3697,CNST_LIMB(0x5d10d39d1e1f291),CNST_LIMB(0x11ba0fed2a4f14)), + P(3701,CNST_LIMB(0x374468dccaced1dd),CNST_LIMB(0x11b528538ed64a)), + P(3709,CNST_LIMB(0x8d145c7d110c5ad5),CNST_LIMB(0x11ab61404242ac)), + P(3719,CNST_LIMB(0x3251a39f5acb5737),CNST_LIMB(0x119f378ce81d2f)), + P(3727,CNST_LIMB(0xa66e50171443506f),CNST_LIMB(0x1195889ece79da)), + P(3733,CNST_LIMB(0x124f69ad91dd4cbd),CNST_LIMB(0x118e4c65387077)), + P(3739,CNST_LIMB(0xec24f8f2a61a2793),CNST_LIMB(0x1187161d70e725)), + P(3761,CNST_LIMB(0xb472148e656b7a51),CNST_LIMB(0x116cd6d1c85239)), + P(3767,CNST_LIMB(0xadf9570e1142f07),CNST_LIMB(0x1165bbe7ce86b1)), + P(3769,CNST_LIMB(0x89bf33b065119789),CNST_LIMB(0x11635ee344ce36)), + P(3779,CNST_LIMB(0x8f0149803cb291eb),CNST_LIMB(0x11579767b6d679)), + P(3793,CNST_LIMB(0x8334b63afd190a31),CNST_LIMB(0x114734711e2b54)), + P(3797,CNST_LIMB(0x920908d50d6aba7d),CNST_LIMB(0x11428b90147f05)), + P(3803,CNST_LIMB(0x57d8b018c5a33d53),CNST_LIMB(0x113b92f3021636)), + P(3821,CNST_LIMB(0xea1773092dc27ee5),CNST_LIMB(0x1126cabc886884)), + P(3823,CNST_LIMB(0xcae5f38b7bf2e00f),CNST_LIMB(0x11247eb1b85976)), + P(3833,CNST_LIMB(0x2bd02df34f695349),CNST_LIMB(0x11190bb01efd65)), + P(3847,CNST_LIMB(0xddfecd5be62e2eb7),CNST_LIMB(0x11091de0fd679c)), + P(3851,CNST_LIMB(0xdbf849ebec96c4a3),CNST_LIMB(0x1104963c7e4e0b)), + P(3853,CNST_LIMB(0xda31d4d0187357c5),CNST_LIMB(0x110253516420b0)), + P(3863,CNST_LIMB(0xe34e21cc2d5418a7),CNST_LIMB(0x10f70db7c41797)), + P(3877,CNST_LIMB(0x68ca5137a9e574ad),CNST_LIMB(0x10e75ee2bf9ecd)), + P(3881,CNST_LIMB(0x3eaa0d0f804bfd19),CNST_LIMB(0x10e2e91c6e0676)), + P(3889,CNST_LIMB(0x554fb753cc20e9d1),CNST_LIMB(0x10da049b9d428d)), + P(3907,CNST_LIMB(0x797afcca1300756b),CNST_LIMB(0x10c6248fe3b1a2)), + P(3911,CNST_LIMB(0x8b8d950b52eeea77),CNST_LIMB(0x10c1c03ed690eb)), + P(3917,CNST_LIMB(0xfb6cd166acabc185),CNST_LIMB(0x10bb2e1379e3a2)), + P(3919,CNST_LIMB(0x4eb6c5ed9437a7af),CNST_LIMB(0x10b8fe7f61228e)), + P(3923,CNST_LIMB(0xd1eddbd91b790cdb),CNST_LIMB(0x10b4a10d60a4f7)), + P(3929,CNST_LIMB(0x93d714ea4d8948e9),CNST_LIMB(0x10ae192681ec0f)), + P(3931,CNST_LIMB(0x3ca13ed8145188d3),CNST_LIMB(0x10abecfbe5b0ae)), + P(3943,CNST_LIMB(0x829086016da89c57),CNST_LIMB(0x109eefd568b96d)), + P(3947,CNST_LIMB(0xd7da1f432124a543),CNST_LIMB(0x109a9ff178b40c)), + P(3967,CNST_LIMB(0x7ead5581632fb07f),CNST_LIMB(0x108531e22f9ff9)), + P(3989,CNST_LIMB(0x35443837f63ec3bd),CNST_LIMB(0x106ddec1af4417)), + P(4001,CNST_LIMB(0x89e2b200e5519461),CNST_LIMB(0x10614174a4911d)), + P(4003,CNST_LIMB(0xe9ae44f0b7289c0b),CNST_LIMB(0x105f291f0448e7)), + P(4007,CNST_LIMB(0x94387a277b9fa817),CNST_LIMB(0x105afa0ef32891)), + P(4013,CNST_LIMB(0xc84f1a58abfc2c25),CNST_LIMB(0x1054b777bd2530)), + P(4019,CNST_LIMB(0x71101d8e3c83377b),CNST_LIMB(0x104e79a97fb69e)), + P(4021,CNST_LIMB(0xc024abe5c50ba69d),CNST_LIMB(0x104c661eafd845)), + P(4027,CNST_LIMB(0x15de4eb365a65d73),CNST_LIMB(0x10462ea939c933)), + P(4049,CNST_LIMB(0x9ed28a76bcca931),CNST_LIMB(0x102f8baa442836)), + P(4051,CNST_LIMB(0x816bffbf4a00205b),CNST_LIMB(0x102d7ff7e94004)), + P(4057,CNST_LIMB(0x1f5c71543d558069),CNST_LIMB(0x10275ff9f13c02)), + P(4073,CNST_LIMB(0xf25c64d0ec53b859),CNST_LIMB(0x1017213fcbb4d3)), + P(4079,CNST_LIMB(0x96c02c2ef1e0ff0f),CNST_LIMB(0x101112234579d1)), + P(4091,CNST_LIMB(0x19a804816870a333),CNST_LIMB(0x100501907d271c)), + P(4093,CNST_LIMB(0x6de49add0971c555),CNST_LIMB(0x100300901b0510)), + P(4099,CNST_LIMB(0x528087e684c71aab),CNST_LIMB(0xffd008fe5050f)), + P(4111,CNST_LIMB(0xa94152c269bcdeef),CNST_LIMB(0xff10e02dd5084)), + P(4127,CNST_LIMB(0x379450a3c2b6bdf),CNST_LIMB(0xfe13b9c80c67f)), + P(4129,CNST_LIMB(0xd2cd38bafe5373e1),CNST_LIMB(0xfdf4384be37ad)), + P(4133,CNST_LIMB(0xc29df2bea71d8bad),CNST_LIMB(0xfdb54cbe8766e)), + P(4139,CNST_LIMB(0xc15862775f302e83),CNST_LIMB(0xfd5725ca6ff32)), + P(4153,CNST_LIMB(0x1016af2fe55ede09),CNST_LIMB(0xfc7c84684c6fb)), + P(4157,CNST_LIMB(0x3d26dbd9d1910715),CNST_LIMB(0xfc3e5265dbaa8)), + P(4159,CNST_LIMB(0x621dab2dfaf3dfbf),CNST_LIMB(0xfc1f44e0cae12)), + P(4177,CNST_LIMB(0xb6f1d7ac287338b1),CNST_LIMB(0xfb0921c50a7af)), + P(4201,CNST_LIMB(0x8d9e9f0c3f9e7fd9),CNST_LIMB(0xf999fd70cbc6b)), + P(4211,CNST_LIMB(0x60a93f8762e914bb),CNST_LIMB(0xf9023fd5339d0)), + P(4217,CNST_LIMB(0xb14371f247c159c9),CNST_LIMB(0xf8a78ce671475)), + P(4219,CNST_LIMB(0x6dd3b484471d4eb3),CNST_LIMB(0xf8895fee86574)), + P(4229,CNST_LIMB(0xcd172f4701c1684d),CNST_LIMB(0xf7f2ecb084b10)), + P(4231,CNST_LIMB(0x372e686ed8bb537),CNST_LIMB(0xf7d4eb7d10c29)), + P(4241,CNST_LIMB(0xbc07f7ca65c5b071),CNST_LIMB(0xf73f52277a3c3)), + P(4243,CNST_LIMB(0xab2b6170c3f78d9b),CNST_LIMB(0xf7217c598961c)), + P(4253,CNST_LIMB(0xf3d74f461fe6f5b5),CNST_LIMB(0xf68cbb1448f42)), + P(4259,CNST_LIMB(0xdbc13f4b31f3230b),CNST_LIMB(0xf633d0276e4c5)), + P(4261,CNST_LIMB(0xd1420716e3f1572d),CNST_LIMB(0xf6163ac20ec79)), + P(4271,CNST_LIMB(0xd5be2fd4d805464f),CNST_LIMB(0xf582ba2bc16c6)), + P(4273,CNST_LIMB(0xc68b97c136943851),CNST_LIMB(0xf5654f43290a0)), + P(4283,CNST_LIMB(0x9e27918af7cfb473),CNST_LIMB(0xf4d2a23810bc6)), + P(4289,CNST_LIMB(0x5ec8ab6c36ac7f41),CNST_LIMB(0xf47af4d6a2f27)), + P(4297,CNST_LIMB(0x964076331dd90979),CNST_LIMB(0xf4066f2b6e652)), + P(4327,CNST_LIMB(0x30198eff77b002d7),CNST_LIMB(0xf2555048e3a92)), + P(4337,CNST_LIMB(0x3af7cb9583ece011),CNST_LIMB(0xf1c64588a5bf6)), + P(4339,CNST_LIMB(0x34ce06f643d9883b),CNST_LIMB(0xf1a9be09cb411)), + P(4349,CNST_LIMB(0x79f767e528708c55),CNST_LIMB(0xf11b7d5259d39)), + P(4357,CNST_LIMB(0x185332d2ef2313cd),CNST_LIMB(0xf0aa284e7f802)), + P(4363,CNST_LIMB(0x43b611b84c8332a3),CNST_LIMB(0xf0556e5e3b7f2)), + P(4373,CNST_LIMB(0xc2e215e4f43bb63d),CNST_LIMB(0xefc8bcbc808e5)), + P(4391,CNST_LIMB(0xf94b9dd22ce44e97),CNST_LIMB(0xeecd1a690efbb)), + P(4397,CNST_LIMB(0xd895834a1db166a5),CNST_LIMB(0xee79aed6d65f2)), + P(4409,CNST_LIMB(0x347d2f16d19b8d09),CNST_LIMB(0xedd386114d83a)), + P(4421,CNST_LIMB(0x1b54d4dc45b7d98d),CNST_LIMB(0xed2e44366e5e2)), + P(4423,CNST_LIMB(0x117ac30d9a044877),CNST_LIMB(0xed12cf8e17f64)), + P(4441,CNST_LIMB(0xe10b78a67a526e9),CNST_LIMB(0xec1cd284b2b2d)), + P(4447,CNST_LIMB(0x92da68a818688a9f),CNST_LIMB(0xebcb44cadda1e)), + P(4451,CNST_LIMB(0xcf2b6c87f741f84b),CNST_LIMB(0xeb9505943771d)), + P(4457,CNST_LIMB(0xd264f9bd41e18ed9),CNST_LIMB(0xeb43d57efeadc)), + P(4463,CNST_LIMB(0x733cbeaa97166d8f),CNST_LIMB(0xeaf2dd4c00b03)), + P(4481,CNST_LIMB(0xc9f475b021d22e81),CNST_LIMB(0xea0141c1ba6a6)), + P(4483,CNST_LIMB(0x731f76f2ec4c852b),CNST_LIMB(0xe9e68805f05a7)), + P(4493,CNST_LIMB(0xdaf6f0c978f69945),CNST_LIMB(0xe96142b87e431)), + P(4507,CNST_LIMB(0x749c8ad20c61ec93),CNST_LIMB(0xe8a7acd811b8c)), + P(4513,CNST_LIMB(0x9307ff8bd3c1261),CNST_LIMB(0xe8587db3e001d)), + P(4517,CNST_LIMB(0x334a69fb5a486e2d),CNST_LIMB(0xe823d186d44dc)), + P(4519,CNST_LIMB(0x1f36c7bf31578617),CNST_LIMB(0xe8098463ee194)), + P(4523,CNST_LIMB(0x31ebbcc279ea6103),CNST_LIMB(0xe7d4fbfb3ee1d)), + P(4547,CNST_LIMB(0x42e2aad119f466eb),CNST_LIMB(0xe69bba6981ffa)), + P(4549,CNST_LIMB(0x106ec05a0ab1450d),CNST_LIMB(0xe681c5cf7d707)), + P(4561,CNST_LIMB(0xb1b38db92a99e731),CNST_LIMB(0xe5e684930e334)), + P(4567,CNST_LIMB(0x784ae377e67071e7),CNST_LIMB(0xe5993247dc92d)), + P(4583,CNST_LIMB(0x3e9e1471ba6671d7),CNST_LIMB(0xe4cbfee201016)), + P(4591,CNST_LIMB(0x82c29b59d4d73d0f),CNST_LIMB(0xe465ee7daf979)), + P(4597,CNST_LIMB(0xc23dd07128b5525d),CNST_LIMB(0xe4199de07af5c)), + P(4603,CNST_LIMB(0x4d4e5ce0e9245133),CNST_LIMB(0xe3cd8031d4f40)), + P(4621,CNST_LIMB(0xc8fd1057c09f8cc5),CNST_LIMB(0xe2ea56c157eb2)), + P(4637,CNST_LIMB(0xea1516e94f394035),CNST_LIMB(0xe221e5d4d3c73)), + P(4639,CNST_LIMB(0xb5e3319c564ee9df),CNST_LIMB(0xe208f09a841c7)), + P(4643,CNST_LIMB(0x126a69f90d822d8b),CNST_LIMB(0xe1d716a945161)), + P(4649,CNST_LIMB(0x501ed6348857aa19),CNST_LIMB(0xe18c78ec8fd4d)), + P(4651,CNST_LIMB(0xde344a324eee1c83),CNST_LIMB(0xe173a4a162079)), + P(4657,CNST_LIMB(0x1dd9690cb2c406d1),CNST_LIMB(0xe1294881bb494)), + P(4663,CNST_LIMB(0x8d6c5178d5e4387),CNST_LIMB(0xe0df1d5f24661)), + P(4673,CNST_LIMB(0x4cea4050a3e8fdc1),CNST_LIMB(0xe063ec7f50b1e)), + P(4679,CNST_LIMB(0xc114a06acc83f777),CNST_LIMB(0xe01a4313dc53d)), + P(4691,CNST_LIMB(0x20b060ebc0ea01db),CNST_LIMB(0xdf8780f47c350)), + P(4703,CNST_LIMB(0xfe50045acb78c99f),CNST_LIMB(0xdef57e8eb9666)), + P(4721,CNST_LIMB(0x291a68705b196e91),CNST_LIMB(0xde1bdf3f63d46)), + P(4723,CNST_LIMB(0xc1042c724273e2bb),CNST_LIMB(0xde03cb5099809)), + P(4729,CNST_LIMB(0x2cee680bb165b7c9),CNST_LIMB(0xddbbaecc84bc9)), + P(4733,CNST_LIMB(0xfd2ff9f12e0776d5),CNST_LIMB(0xdd8bb5ca73db6)), + P(4751,CNST_LIMB(0x166a5da63af2cc6f),CNST_LIMB(0xdcb4d529a6e07)), + P(4759,CNST_LIMB(0xedd16a5930408d27),CNST_LIMB(0xdc55da73dea60)), + P(4783,CNST_LIMB(0x2adf30c26528844f),CNST_LIMB(0xdb3ad2585011f)), + P(4787,CNST_LIMB(0x9a48d6572b5eec7b),CNST_LIMB(0xdb0becf636a79)), + P(4789,CNST_LIMB(0x6e8bf2877503cb9d),CNST_LIMB(0xdaf481ca6fefb)), + P(4793,CNST_LIMB(0xea27a191a7045389),CNST_LIMB(0xdac5ba7565dae)), + P(4799,CNST_LIMB(0x6eb091f34dd45d3f),CNST_LIMB(0xda7fb4e419d19)), + P(4801,CNST_LIMB(0xdc8a6cabb2937d41),CNST_LIMB(0xda6867a88d327)), + P(4813,CNST_LIMB(0xbc2f04f254922a05),CNST_LIMB(0xd9dd005f50b02)), + P(4817,CNST_LIMB(0x41431f4d6eb38631),CNST_LIMB(0xd9aeb01f763f7)), + P(4831,CNST_LIMB(0x7bd717435a08291f),CNST_LIMB(0xd90d31dd5804a)), + P(4861,CNST_LIMB(0x4232df9c91fc1a55),CNST_LIMB(0xd7b6453358f31)), + P(4871,CNST_LIMB(0xa4651e1d5382eab7),CNST_LIMB(0xd744e69d900e4)), + P(4877,CNST_LIMB(0x7cfb5409de4cf3c5),CNST_LIMB(0xd7011a317260e)), + P(4889,CNST_LIMB(0xcdd636fb068b9929),CNST_LIMB(0xd67a0126e7c19)), + P(4903,CNST_LIMB(0xee8f95e740462c97),CNST_LIMB(0xd5dd39e775bd7)), + P(4909,CNST_LIMB(0x490f97b3a758b4a5),CNST_LIMB(0xd59a4f2990168)), + P(4919,CNST_LIMB(0x641431563c441287),CNST_LIMB(0xd52b24cb6269d)), + P(4931,CNST_LIMB(0xb743dad3ec45916b),CNST_LIMB(0xd4a6571da4f04)), + P(4933,CNST_LIMB(0x7b188be8f55c878d),CNST_LIMB(0xd49044eac6581)), + P(4937,CNST_LIMB(0xd805648b2ca54ef9),CNST_LIMB(0xd4642e40d1129)), + P(4943,CNST_LIMB(0x76dbe6eef60123af),CNST_LIMB(0xd4222e81fe723)), + P(4951,CNST_LIMB(0x3711525e6a9e8867),CNST_LIMB(0xd3ca6e8c89f41)), + P(4957,CNST_LIMB(0x85c2215cb383d8f5),CNST_LIMB(0xd388ce29d4edc)), + P(4967,CNST_LIMB(0xe58f554c89825857),CNST_LIMB(0xd31bc7b7d8013)), + P(4969,CNST_LIMB(0x8fbd3b17c01dacd9),CNST_LIMB(0xd306071c13fd5)), + P(4973,CNST_LIMB(0x4c8c39dc7aedee65),CNST_LIMB(0xd2da935479b1a)), + P(4987,CNST_LIMB(0x653ac6dda86cd3b3),CNST_LIMB(0xd2430aa043597)), + P(4993,CNST_LIMB(0xd61c6791a9c2c81),CNST_LIMB(0xd2025bc6c7db7)), + P(4999,CNST_LIMB(0xb627a30090354237),CNST_LIMB(0xd1c1d4ad1732b)), + P(5003,CNST_LIMB(0x83a89a539c527c23),CNST_LIMB(0xd196e5f46f8c8)), + P(5009,CNST_LIMB(0x28c8c09330e90d71),CNST_LIMB(0xd156a0c9293e8)), + P(5011,CNST_LIMB(0xee1178d27b1f029b),CNST_LIMB(0xd1413d26e0aee)), + P(5021,CNST_LIMB(0xcecc740b37860ab5),CNST_LIMB(0xd0d68c6a4128f)), + P(5023,CNST_LIMB(0x79736fde910c485f),CNST_LIMB(0xd0c142eaf3837)), + P(5039,CNST_LIMB(0x6873d51f2487234f),CNST_LIMB(0xd01792ab9d70d)), + P(5051,CNST_LIMB(0x2a112180614fb973),CNST_LIMB(0xcf990317775bc)), + P(5059,CNST_LIMB(0xcb04cea98508f4eb),CNST_LIMB(0xcf44f8c38790a)), + P(5077,CNST_LIMB(0xc2fcd2c527e28d7d),CNST_LIMB(0xce88d96d10e45)), + P(5081,CNST_LIMB(0x980203ee10393c69),CNST_LIMB(0xce5f39b07e906)), + P(5087,CNST_LIMB(0x3fa90a1d7d75681f),CNST_LIMB(0xce20e98148847)), + P(5099,CNST_LIMB(0xdbf3bfefef217cc3),CNST_LIMB(0xcda4b9c30ccd7)), + P(5101,CNST_LIMB(0x66a17fd3087b41e5),CNST_LIMB(0xcd9015ae32495)), + P(5107,CNST_LIMB(0x962195d496fbbd3b),CNST_LIMB(0xcd524244aca36)), + P(5113,CNST_LIMB(0xc705a86155443e49),CNST_LIMB(0xcd14940099cf6)), + P(5119,CNST_LIMB(0x3f298ee0be6febff),CNST_LIMB(0xccd70ac089a07)), + P(5147,CNST_LIMB(0xaa99b084e62fa613),CNST_LIMB(0xcbb9c535c4371)), + P(5153,CNST_LIMB(0x1f000cb7d0b46fe1),CNST_LIMB(0xcb7d0b46fe0ff)), + P(5167,CNST_LIMB(0x9ed7858637c9b2cf),CNST_LIMB(0xcaefe5d7135f4)), + P(5171,CNST_LIMB(0x4d871aaf27c106fb),CNST_LIMB(0xcac7b5f00f0cd)), + P(5179,CNST_LIMB(0x2e6a467cdc75a4f3),CNST_LIMB(0xca7785ceddbea)), + P(5189,CNST_LIMB(0xe9d938fb696dde8d),CNST_LIMB(0xca13a2a86e1db)), + P(5197,CNST_LIMB(0x40ec71b0b1554485),CNST_LIMB(0xc9c4009753007)), + P(5209,CNST_LIMB(0x3aae12f861e5f3e9),CNST_LIMB(0xc94d02e64bfab)), + P(5227,CNST_LIMB(0xa97565873959f843),CNST_LIMB(0xc89b8c9c875ef)), + P(5231,CNST_LIMB(0xb5a960c09fbca8f),CNST_LIMB(0xc87447737277e)), + P(5233,CNST_LIMB(0x463fe3d268012c91),CNST_LIMB(0xc860aaa2514e3)), + P(5237,CNST_LIMB(0xe59a6bd5f5ee1bdd),CNST_LIMB(0xc8397c813f1b9)), + P(5261,CNST_LIMB(0x6542e84d7775ce45),CNST_LIMB(0xc74fa805d6d56)), + P(5273,CNST_LIMB(0x8b6eef58fd9effa9),CNST_LIMB(0xc6db8a1f5cdfe)), + P(5279,CNST_LIMB(0x58993dbb9f98075f),CNST_LIMB(0xc6a1add9e2398)), + P(5281,CNST_LIMB(0x2997955a810acf61),CNST_LIMB(0xc68e6be826648)), + P(5297,CNST_LIMB(0x76e3d2f5077db451),CNST_LIMB(0xc5f4e25fc9df0)), + P(5303,CNST_LIMB(0xb37c1d2867e30907),CNST_LIMB(0xc5bb8bf2ad1cd)), + P(5309,CNST_LIMB(0x53ce6e09bd8d8695),CNST_LIMB(0xc58256b316ced)), + P(5323,CNST_LIMB(0x39db291ea2a6b0e3),CNST_LIMB(0xc4fd5ad917b5b)), + P(5333,CNST_LIMB(0xddd265ab9c58847d),CNST_LIMB(0xc49ecb3ea4d7a)), + P(5347,CNST_LIMB(0x5beca8562dddd0cb),CNST_LIMB(0xc41b00b7d950a)), + P(5351,CNST_LIMB(0xb69031c153ddbed7),CNST_LIMB(0xc3f57990b87a1)), + P(5381,CNST_LIMB(0xd03c2271b42a6fcd),CNST_LIMB(0xc2ddcb31250f8)), + P(5387,CNST_LIMB(0xcd6fd19e63e40ea3),CNST_LIMB(0xc2a63b3651432)), + P(5393,CNST_LIMB(0xf7687aa8e4fd7bf1),CNST_LIMB(0xc26ecae1db72e)), + P(5399,CNST_LIMB(0x649dfda112a272a7),CNST_LIMB(0xc2377a18c051e)), + P(5407,CNST_LIMB(0xecf7866a56d526df),CNST_LIMB(0xc1ede9efcec29)), + P(5413,CNST_LIMB(0x72bbf1cfdaebfead),CNST_LIMB(0xc1b6e258d13a0)), + P(5417,CNST_LIMB(0x55f6a48df7055719),CNST_LIMB(0xc19243f5399bb)), + P(5419,CNST_LIMB(0x80060bffcfa00183),CNST_LIMB(0xc17ff9f400305)), + P(5431,CNST_LIMB(0x8a104f309919b087),CNST_LIMB(0xc112865703b94)), + P(5437,CNST_LIMB(0x98fa7db7652f6a15),CNST_LIMB(0xc0dbfaea33225)), + P(5441,CNST_LIMB(0x5d7d1b3df70f7ac1),CNST_LIMB(0xc0b7af12ddfb9)), + P(5443,CNST_LIMB(0x16ab7b5e04cc1f6b),CNST_LIMB(0xc0a58e464462c)), + P(5449,CNST_LIMB(0x78a5bfd2e5ececf9),CNST_LIMB(0xc06f40512eef2)), + P(5471,CNST_LIMB(0x6506392e171d869f),CNST_LIMB(0xbfa9275a2b247)), + P(5477,CNST_LIMB(0xc3fc12e221ef146d),CNST_LIMB(0xbf7367402cdf0)), + P(5479,CNST_LIMB(0xf8aa132822c33657),CNST_LIMB(0xbf61833f4f921)), + P(5483,CNST_LIMB(0x894496574f536f43),CNST_LIMB(0xbf3dc543a74a1)), + P(5501,CNST_LIMB(0x8b2546b08fb4cbd5),CNST_LIMB(0xbe9d9302a7115)), + P(5503,CNST_LIMB(0x43bbb561bd1aa7f),CNST_LIMB(0xbe8bd6e051e01)), + P(5507,CNST_LIMB(0x2412c7cc4ea7a12b),CNST_LIMB(0xbe6868804d5a6)), + P(5519,CNST_LIMB(0x6f0bd406dd71696f),CNST_LIMB(0xbdfe6c4359f0e)), + P(5521,CNST_LIMB(0xad475c6988d54b71),CNST_LIMB(0xbdeccdb0b5c3a)), + P(5527,CNST_LIMB(0xd812e5d48dbbba27),CNST_LIMB(0xbdb8058ee429a)), + P(5531,CNST_LIMB(0x22aaca437ba04893),CNST_LIMB(0xbd94e5c1b371f)), + P(5557,CNST_LIMB(0xdba6ff1fecd5f09d),CNST_LIMB(0xbcb1d293b1af3)), + P(5563,CNST_LIMB(0x13016d3396286773),CNST_LIMB(0xbc7db8db0c1a5)), + P(5569,CNST_LIMB(0xc746494631bcfa41),CNST_LIMB(0xbc49bbdfd2662)), + P(5573,CNST_LIMB(0xd14888565bf6a10d),CNST_LIMB(0xbc2723240f402)), + P(5581,CNST_LIMB(0xc002ef885f0adf05),CNST_LIMB(0xbbe217c2b7c13)), + P(5591,CNST_LIMB(0xe5a04da7fee6ade7),CNST_LIMB(0xbb8c10aab27b2)), + P(5623,CNST_LIMB(0xc114ce5468593bc7),CNST_LIMB(0xba7ad528a7e79)), + P(5639,CNST_LIMB(0xbb6747dd7f577b7),CNST_LIMB(0xb9f3611b48c5e)), + P(5641,CNST_LIMB(0x395ce5a20f285839),CNST_LIMB(0xb9e2806e5e7c4)), + P(5647,CNST_LIMB(0x6eee8be66e8618ef),CNST_LIMB(0xb9aff0c4913fe)), + P(5651,CNST_LIMB(0x52acf64297f1241b),CNST_LIMB(0xb98e4aedd581c)), + P(5653,CNST_LIMB(0x361dcc48a364093d),CNST_LIMB(0xb97d7c94b7dc2)), + P(5657,CNST_LIMB(0x342d6f475d72e629),CNST_LIMB(0xb95be902d9d9e)), + P(5659,CNST_LIMB(0x5e978bd46410d413),CNST_LIMB(0xb94b23c872b90)), + P(5669,CNST_LIMB(0xcc3433d75ba015ad),CNST_LIMB(0xb8f77714d15a1)), + P(5683,CNST_LIMB(0x1c83b7628458d4fb),CNST_LIMB(0xb882d0beff6a1)), + P(5689,CNST_LIMB(0xf9ca45637e38f809),CNST_LIMB(0xb850ff9852703)), + P(5693,CNST_LIMB(0xcbed792ffaf6b115),CNST_LIMB(0xb82fd86db8806)), + P(5701,CNST_LIMB(0x9abd961d8c0e8c8d),CNST_LIMB(0xb7edadd32f76c)), + P(5711,CNST_LIMB(0xe69572fa659340af),CNST_LIMB(0xb79b3b4df3b7b)), + P(5717,CNST_LIMB(0x9187e7483a6436fd),CNST_LIMB(0xb769e6d59833f)), + P(5737,CNST_LIMB(0x1e9c726993bed9d9),CNST_LIMB(0xb6c636b5141ff)), + P(5741,CNST_LIMB(0x243554db91976365),CNST_LIMB(0xb6a59ceae8801)), + P(5743,CNST_LIMB(0x4d06ff994c0088f),CNST_LIMB(0xb6955461e38f7)), + P(5749,CNST_LIMB(0x25b76abcb74889dd),CNST_LIMB(0xb6648c2dc6bc2)), + P(5779,CNST_LIMB(0x3a409642893c779b),CNST_LIMB(0xb572282260209)), + P(5783,CNST_LIMB(0x8f8f620d8bc0c927),CNST_LIMB(0xb552072bde889)), + P(5791,CNST_LIMB(0x6f9f196b3369855f),CNST_LIMB(0xb511e7552f9c4)), + P(5801,CNST_LIMB(0x92a522bb0638ed99),CNST_LIMB(0xb4c1ff34a5c0e)), + P(5807,CNST_LIMB(0x96270f1efdd7004f),CNST_LIMB(0xb4922f58d4aa2)), + P(5813,CNST_LIMB(0xb4844b380fdaa79d),CNST_LIMB(0xb46278c16b967)), + P(5821,CNST_LIMB(0x108936aa5f9c1495),CNST_LIMB(0xb42301cd99b49)), + P(5827,CNST_LIMB(0xb60f606f104c9eb),CNST_LIMB(0xb3f385dd77e4e)), + P(5839,CNST_LIMB(0xc663dfe8263b302f),CNST_LIMB(0xb394d8ef8f0f6)), + P(5843,CNST_LIMB(0xc91a280b9110b15b),CNST_LIMB(0xb375601507c14)), + P(5849,CNST_LIMB(0x904287118d10969),CNST_LIMB(0xb3463f76be376)), + P(5851,CNST_LIMB(0x160d36a5d31bf553),CNST_LIMB(0xb3368f6c4a07c)), + P(5857,CNST_LIMB(0xe84f5fda3c67ad21),CNST_LIMB(0xb3078fc1c25f0)), + P(5861,CNST_LIMB(0xbd85701f72d4b6ed),CNST_LIMB(0xb2e84854e93e5)), + P(5867,CNST_LIMB(0x4c50cf5924dee1c3),CNST_LIMB(0xb2b971aa909a4)), + P(5869,CNST_LIMB(0x2455aaf1633bb6e5),CNST_LIMB(0xb2a9da39d6bc8)), + P(5879,CNST_LIMB(0xd775b39f549b8ac7),CNST_LIMB(0xb25c0dc29a0fc)), + P(5881,CNST_LIMB(0x87fcdda7a252cb49),CNST_LIMB(0xb24c8698449a7)), + P(5897,CNST_LIMB(0x53df2e3bd254a739),CNST_LIMB(0xb1d0ae579aefe)), + P(5903,CNST_LIMB(0x8915e69623a5f7ef),CNST_LIMB(0xb1a2698ea2f9e)), + P(5923,CNST_LIMB(0x1ef24c80742dd08b),CNST_LIMB(0xb108dc4186078)), + P(5927,CNST_LIMB(0xb4d87aaa6fb1e897),CNST_LIMB(0xb0ea463b00212)), + P(5939,CNST_LIMB(0x788573e8b92dbbfb),CNST_LIMB(0xb08ec37007962)), + P(5953,CNST_LIMB(0x2527b137b0878c1),CNST_LIMB(0xb024778cc023c)), + P(5981,CNST_LIMB(0x1870a7c8dee9f4f5),CNST_LIMB(0xaf515df36a88e)), + P(5987,CNST_LIMB(0x39b99e40910a224b),CNST_LIMB(0xaf24635f6561e)), + P(6007,CNST_LIMB(0x45821c0abd4df247),CNST_LIMB(0xae8f1b92baeaf)), + P(6011,CNST_LIMB(0x10fe2b2f50e02fb3),CNST_LIMB(0xae715eee11f8e)), + P(6029,CNST_LIMB(0x5762b90c043f0345),CNST_LIMB(0xadec0b0a3bb36)), + P(6037,CNST_LIMB(0x82a67b9193b27bbd),CNST_LIMB(0xadb10aa4c956f)), + P(6043,CNST_LIMB(0xa6e914e28ec37693),CNST_LIMB(0xad84e49752245)), + P(6047,CNST_LIMB(0x835d9a4facaf445f),CNST_LIMB(0xad6782597f0c2)), + P(6053,CNST_LIMB(0x48def8175884f82d),CNST_LIMB(0xad3b81a0d72fe)), + P(6067,CNST_LIMB(0xae900e2d7c9a6f7b),CNST_LIMB(0xacd52beced79e)), + P(6073,CNST_LIMB(0x1c08431bdd18be89),CNST_LIMB(0xaca9755063254)), + P(6079,CNST_LIMB(0xb370a66d684fd83f),CNST_LIMB(0xac7dd4cafb12a)), + P(6089,CNST_LIMB(0xb4be33e18f93b279),CNST_LIMB(0xac354f80dca44)), + P(6091,CNST_LIMB(0x310c50872a7dd5e3),CNST_LIMB(0xac26d5c2b8ad2)), + P(6101,CNST_LIMB(0x447ab1281276697d),CNST_LIMB(0xabde997dabd3d)), + P(6113,CNST_LIMB(0xc2f122216b2a6c21),CNST_LIMB(0xab883aa1100a0)), + P(6121,CNST_LIMB(0xab99c8b5ae1c3059),CNST_LIMB(0xab4ed637f5a0b)), + P(6131,CNST_LIMB(0xb78e17a2227d593b),CNST_LIMB(0xab074e9febf52)), + P(6133,CNST_LIMB(0xabf97d03f7269c5d),CNST_LIMB(0xaaf90778c2039)), + P(6143,CNST_LIMB(0x867aefc9fdbfe7ff),CNST_LIMB(0xaab1c7684f034)), + P(6151,CNST_LIMB(0xf7f7ad182e47d5b7),CNST_LIMB(0xaa78f20ebbb3e)), + P(6163,CNST_LIMB(0x50dff95a9847721b),CNST_LIMB(0xaa23f8dafd4cc)), + P(6173,CNST_LIMB(0xe4cb8a0e83cb6a35),CNST_LIMB(0xa9dd69cad5934)), + P(6197,CNST_LIMB(0x8da72ecdf9247a1d),CNST_LIMB(0xa935004a07302)), + P(6199,CNST_LIMB(0xc5b04bfc87f31d87),CNST_LIMB(0xa9270690f3d14)), + P(6203,CNST_LIMB(0xe2dcf622ea2b00f3),CNST_LIMB(0xa90b1a0aa5d30)), + P(6211,CNST_LIMB(0xb9ce9f2e4972f46b),CNST_LIMB(0xa8d35c9d731e9)), + P(6217,CNST_LIMB(0x1ed785c911bf59f9),CNST_LIMB(0xa8a9a6a51f16c)), + P(6221,CNST_LIMB(0x4ddb8a4eed70e085),CNST_LIMB(0xa88de370f596b)), + P(6229,CNST_LIMB(0x81e93b4df68c24fd),CNST_LIMB(0xa856786adae36)), + P(6247,CNST_LIMB(0xee0d0812afcd8357),CNST_LIMB(0xa7da4c77d3161)), + P(6257,CNST_LIMB(0xf62e3ba72268a891),CNST_LIMB(0xa7959f863d4a1)), + P(6263,CNST_LIMB(0x3194d367c8154147),CNST_LIMB(0xa76c85e80c195)), + P(6269,CNST_LIMB(0xd096ede8e30c20d5),CNST_LIMB(0xa743806dc44c4)), + P(6271,CNST_LIMB(0xd68624d27b87a77f),CNST_LIMB(0xa735d866dfa0a)), + P(6277,CNST_LIMB(0xb728fcdc11c8204d),CNST_LIMB(0xa70cedb02531e)), + P(6287,CNST_LIMB(0x9d6b6038077e066f),CNST_LIMB(0xa6c8e842c770f)), + P(6299,CNST_LIMB(0xaa732d7a4a360d93),CNST_LIMB(0xa67791215dd74)), + P(6301,CNST_LIMB(0x36af98a423972db5),CNST_LIMB(0xa66a0a51d363d)), + P(6311,CNST_LIMB(0xc31d00da12940f17),CNST_LIMB(0xa626893011861)), + P(6317,CNST_LIMB(0xed85352107410b25),CNST_LIMB(0xa5fe22c55c089)), + P(6323,CNST_LIMB(0x829c85ee6db8567b),CNST_LIMB(0xa5d5cffb77275)), + P(6329,CNST_LIMB(0xef60258952cc6d89),CNST_LIMB(0xa5ad90c4186e5)), + P(6337,CNST_LIMB(0xcf28c2e0da787741),CNST_LIMB(0xa578057e7c2eb)), + P(6343,CNST_LIMB(0x57567d8494af28f7),CNST_LIMB(0xa54ff3bb10e91)), + P(6353,CNST_LIMB(0x2c7c98518f174031),CNST_LIMB(0xa50d5683edc94)), + P(6359,CNST_LIMB(0xb28b363a36825ae7),CNST_LIMB(0xa4e57854b3df4)), + P(6361,CNST_LIMB(0xed1ffeb64f9ae769),CNST_LIMB(0xa4d8328c4b800)), + P(6367,CNST_LIMB(0xcbbb0115e9b9a31f),CNST_LIMB(0xa4b06e01d97b3)), + P(6373,CNST_LIMB(0x8d3c5fecb7f9e4ed),CNST_LIMB(0xa488bca2c4449)), + P(6379,CNST_LIMB(0x816271698195cfc3),CNST_LIMB(0xa4611e6132ed5)), + P(6389,CNST_LIMB(0x9ac939d1c2b1d35d),CNST_LIMB(0xa41f40f39e646)), + P(6397,CNST_LIMB(0xdd9fb7017b0ec455),CNST_LIMB(0xa3eab5c3e44e9)), + P(6421,CNST_LIMB(0xc94cab1e57276e3d),CNST_LIMB(0xa34ddd50561e0)), + P(6427,CNST_LIMB(0x8b8806b117c79913),CNST_LIMB(0xa326d60e94186)), + P(6449,CNST_LIMB(0xa9e63292a3269fd1),CNST_LIMB(0xa2985a81ce614)), + P(6451,CNST_LIMB(0x76da5710f1e989fb),CNST_LIMB(0xa28b72e26f82e)), + P(6469,CNST_LIMB(0xdded6688d83a918d),CNST_LIMB(0xa217aa3479693)), + P(6473,CNST_LIMB(0x4e446b6a305428f9),CNST_LIMB(0xa1fe05c62df4b)), + P(6481,CNST_LIMB(0x4ddaca7a3696cfb1),CNST_LIMB(0xa1cad538aebf9)), + P(6491,CNST_LIMB(0x7eadc4eb87f26ed3),CNST_LIMB(0xa18b05f490083)), + P(6521,CNST_LIMB(0x76c13a0ff04c00c9),CNST_LIMB(0xa0ccc4c28fc31)), + P(6529,CNST_LIMB(0xcbf800504d2a2681),CNST_LIMB(0xa09a544d01ffe)), + P(6547,CNST_LIMB(0x731dada6c4fec9b),CNST_LIMB(0xa0294aa53e9a2)), + P(6551,CNST_LIMB(0xbcb52a664e63f627),CNST_LIMB(0xa01041a6aaed5)), + P(6553,CNST_LIMB(0xf1f9abda071c2aa9),CNST_LIMB(0xa003c01680870)), + P(6563,CNST_LIMB(0xf262ffa620ffe20b),CNST_LIMB(0x9fc5558a971c8)), + P(6569,CNST_LIMB(0x93774a3d57199a99),CNST_LIMB(0x9f9ff9c3c03e5)), + P(6571,CNST_LIMB(0xfb3541cd467a1903),CNST_LIMB(0x9f9389b864ab9)), + P(6577,CNST_LIMB(0x6828cab6b4fe8f51),CNST_LIMB(0x9f6e4534bdca8)), + P(6581,CNST_LIMB(0x12ac03e3d624cc9d),CNST_LIMB(0x9f557687235c2)), + P(6599,CNST_LIMB(0x6363bd1e9bb7d7f7),CNST_LIMB(0x9ee633c0391ab)), + P(6607,CNST_LIMB(0x334cfd676a484d2f),CNST_LIMB(0x9eb4f28e0bb39)), + P(6619,CNST_LIMB(0xd511acd86f143a53),CNST_LIMB(0x9e6b49e92e4bb)), + P(6637,CNST_LIMB(0x73fc2490e0062be5),CNST_LIMB(0x9dfd4ccbd0045)), + P(6653,CNST_LIMB(0x10780dda36b78b55),CNST_LIMB(0x9d9c0828536c1)), + P(6659,CNST_LIMB(0xabf601274064e0ab),CNST_LIMB(0x9d77ad449f777)), + P(6661,CNST_LIMB(0x3ef3e4ca27e4a2cd),CNST_LIMB(0x9d6b92b28ee48)), + P(6673,CNST_LIMB(0x9216a26e690a16f1),CNST_LIMB(0x9d231a476ed51)), + P(6679,CNST_LIMB(0xbae4849e6034bda7),CNST_LIMB(0x9cfef711bf120)), + P(6689,CNST_LIMB(0xf943a0520e01e9e1),CNST_LIMB(0x9cc2e1448b765)), + P(6691,CNST_LIMB(0x7c89958f48f6658b),CNST_LIMB(0x9cb6e26cbc64d)), + P(6701,CNST_LIMB(0xe67128750e0545a5),CNST_LIMB(0x9c7b03b4a9c67)), + P(6703,CNST_LIMB(0xc6c9e1d414516ccf),CNST_LIMB(0x9c6f0fd980ab1)), + P(6709,CNST_LIMB(0x805307f996e9e81d),CNST_LIMB(0x9c4b3f3a30c3f)), + P(6719,CNST_LIMB(0x3eddd2cff46ad5bf),CNST_LIMB(0x9c0fb29436687)), + P(6733,CNST_LIMB(0x35582c1aeb5aae85),CNST_LIMB(0x9bbca025b7aec)), + P(6737,CNST_LIMB(0x4973c88573ef6eb1),CNST_LIMB(0x9ba4f4421e52c)), + P(6761,CNST_LIMB(0x3063f627c1e715d9),CNST_LIMB(0x9b1783809ff03)), + P(6763,CNST_LIMB(0x711ad679a8dcc243),CNST_LIMB(0x9b0bc5b4d2eac)), + P(6779,CNST_LIMB(0x51c224a17a3db4b3),CNST_LIMB(0x9aae172fd8b9c)), + P(6781,CNST_LIMB(0x612325ca50ddaed5),CNST_LIMB(0x9aa26954607ed)), + P(6791,CNST_LIMB(0x9929a7b6b7958b37),CNST_LIMB(0x9a681e758a022)), + P(6793,CNST_LIMB(0xa78d222e5a857bb9),CNST_LIMB(0x9a5c7b284942e)), + P(6803,CNST_LIMB(0x3ad0ffe3198d139b),CNST_LIMB(0x9a2264ecc5558)), + P(6823,CNST_LIMB(0x8b4659ac547ed17),CNST_LIMB(0x99aebb39be56f)), + P(6827,CNST_LIMB(0x1752e8904aff1003),CNST_LIMB(0x9997ae1a9faac)), + P(6829,CNST_LIMB(0x60745c37ee4e5925),CNST_LIMB(0x998c2a22b6900)), + P(6833,CNST_LIMB(0x29e2da1f6557ee51),CNST_LIMB(0x997527603f8a8)), + P(6841,CNST_LIMB(0x80d78c24ac49cb89),CNST_LIMB(0x99473685e4d50)), + P(6857,CNST_LIMB(0xc56c3b495c8d1f79),CNST_LIMB(0x98eba72512a13)), + P(6863,CNST_LIMB(0xcf5bdf9f5088ac2f),CNST_LIMB(0x98c96d8dee9e1)), + P(6869,CNST_LIMB(0x8a44800e4fae4e7d),CNST_LIMB(0x98a743453554e)), + P(6871,CNST_LIMB(0xdd76384277e578e7),CNST_LIMB(0x989be33c9e6bd)), + P(6883,CNST_LIMB(0x20b1562d2703facb),CNST_LIMB(0x9857c692e9a59)), + P(6899,CNST_LIMB(0xef56caf96e9d8e3b),CNST_LIMB(0x97fd540c05c9e)), + P(6907,CNST_LIMB(0xf54061416aede033),CNST_LIMB(0x97d04302ed944)), + P(6911,CNST_LIMB(0xe0bc78c21a26e4ff),CNST_LIMB(0x97b9c48289935)), + P(6917,CNST_LIMB(0x524f92731a179cd),CNST_LIMB(0x9798133ece717)), + P(6947,CNST_LIMB(0x5d3b4ad7deafec8b),CNST_LIMB(0x96f07c683689e)), + P(6949,CNST_LIMB(0x508828f744da88ad),CNST_LIMB(0x96e55d6393fc5)), + P(6959,CNST_LIMB(0x6e82014031710bcf),CNST_LIMB(0x96addad861696)), + P(6961,CNST_LIMB(0xadf3b77a22595dd1),CNST_LIMB(0x96a2c5a2cf0cf)), + P(6967,CNST_LIMB(0xd8f0c03f7ea8a87),CNST_LIMB(0x96818fc825eba)), + P(6971,CNST_LIMB(0x2c49e3483c3a05f3),CNST_LIMB(0x966b74027f48a)), + P(6977,CNST_LIMB(0xccecbc98c91274c1),CNST_LIMB(0x964a56850b8ed)), + P(6983,CNST_LIMB(0x273a08941bb71e77),CNST_LIMB(0x962947990eb36)), + P(6991,CNST_LIMB(0xdead5a1e3f341baf),CNST_LIMB(0x95fd4a4c885e0)), + P(6997,CNST_LIMB(0x83eee092593309fd),CNST_LIMB(0x95dc5d3954fde)), + P(7001,CNST_LIMB(0x4af5f1bd3ae87ce9),CNST_LIMB(0x95c671ddfe516)), + P(7013,CNST_LIMB(0x4ca85ad2301c9e6d),CNST_LIMB(0x9584d6340ddf1)), + P(7019,CNST_LIMB(0x1b19592cd31a3943),CNST_LIMB(0x95641de84afcc)), + P(7027,CNST_LIMB(0x3e7aa05e6dcd81bb),CNST_LIMB(0x953893c386521)), + P(7039,CNST_LIMB(0x86336cecb02ba47f),CNST_LIMB(0x94f7740d87794)), + P(7043,CNST_LIMB(0xa96b30d0c8a44b2b),CNST_LIMB(0x94e1cb70c9ce0)), + P(7057,CNST_LIMB(0xb7c63fa0cfca0571),CNST_LIMB(0x94962ecbcc7ce)), + P(7069,CNST_LIMB(0x8eaf59b405a642b5),CNST_LIMB(0x94559c69059cf)), + P(7079,CNST_LIMB(0xdf29e9cbb536dc17),CNST_LIMB(0x941ff7e640716)), + P(7103,CNST_LIMB(0xed14132c82c1d43f),CNST_LIMB(0x939fd7a24b099)), + P(7109,CNST_LIMB(0xaf68778e34caab0d),CNST_LIMB(0x937ff22c014bd)), + P(7121,CNST_LIMB(0xa4f04a3368941d31),CNST_LIMB(0x934050872c09e)), + P(7127,CNST_LIMB(0xe9960969357c07e7),CNST_LIMB(0x93209446d56f6)), + P(7129,CNST_LIMB(0xeb47b62b7360b469),CNST_LIMB(0x9316033b5bd22)), + P(7151,CNST_LIMB(0x64c653d779ae730f),CNST_LIMB(0x92a22b9a79374)), + P(7159,CNST_LIMB(0x479702d3319915c7),CNST_LIMB(0x927838edba206)), + P(7177,CNST_LIMB(0xef3c3eebc6803239),CNST_LIMB(0x921a2e7112833)), + P(7187,CNST_LIMB(0x93807b1a2e3c0e1b),CNST_LIMB(0x91e623d5660d0)), + P(7193,CNST_LIMB(0x8167e33e3f478029),CNST_LIMB(0x91c6fc0cab8b6)), + P(7207,CNST_LIMB(0x60cb76e38c339397),CNST_LIMB(0x917e7d88028eb)), + P(7211,CNST_LIMB(0xae34788ffe4bc283),CNST_LIMB(0x9169d455585cd)), + P(7213,CNST_LIMB(0x4b6246a0c6c093a5),CNST_LIMB(0x915f81ef2d529)), + P(7219,CNST_LIMB(0x872e594b12b03efb),CNST_LIMB(0x9140938595d3a)), + P(7229,CNST_LIMB(0xbc0ae83ce9045b15),CNST_LIMB(0x910d2360a450e)), + P(7237,CNST_LIMB(0xad30a3917e0968d),CNST_LIMB(0x90e417104eabd)), + P(7243,CNST_LIMB(0x124ef5a4e1c7cd63),CNST_LIMB(0x90c55d0fdea28)), + P(7247,CNST_LIMB(0x5b98fe0e9fe17aaf),CNST_LIMB(0x90b0e84c04f20)), + P(7253,CNST_LIMB(0x414306cfe45400fd),CNST_LIMB(0x909243fac6b70)), + P(7283,CNST_LIMB(0xa06d1b4fd391e8bb),CNST_LIMB(0x8ff9d0440d137)), + P(7297,CNST_LIMB(0x11939803a60c2381),CNST_LIMB(0x8fb3192789d73)), + P(7307,CNST_LIMB(0x668c11cc37ea6b23),CNST_LIMB(0x8f80c0d5031e3)), + P(7309,CNST_LIMB(0x83f9b2089dc10645),CNST_LIMB(0x8f76b3664f164)), + P(7321,CNST_LIMB(0x65dc8ae47af277a9),CNST_LIMB(0x8f3a80550abc3)), + P(7331,CNST_LIMB(0x6e2368b9c685770b),CNST_LIMB(0x8f087c50e00c4)), + P(7333,CNST_LIMB(0x3ea137aeba5a6b2d),CNST_LIMB(0x8efe7fb408cc2)), + P(7349,CNST_LIMB(0x735f57adca48f19d),CNST_LIMB(0x8eaecce5c4fd7)), + P(7351,CNST_LIMB(0x69a8de0ba1b18107),CNST_LIMB(0x8ea4dccaaec0b)), + P(7369,CNST_LIMB(0x8fb84bdf5822bd79),CNST_LIMB(0x8e4ba9fbc2ff0)), + P(7393,CNST_LIMB(0xb8fab3b748562721),CNST_LIMB(0x8dd5688a3b7d6)), + P(7411,CNST_LIMB(0xa6c658ea10a65c3b),CNST_LIMB(0x8d7d3821fd94f)), + P(7417,CNST_LIMB(0xe56381f33ab5e549),CNST_LIMB(0x8d5feb03c31d7)), + P(7433,CNST_LIMB(0xe3c224da14988139),CNST_LIMB(0x8d12033cc9d30)), + P(7451,CNST_LIMB(0x438c253e6d99f513),CNST_LIMB(0x8cbac4dec6a82)), + P(7457,CNST_LIMB(0xc1b99f8841a3a6e1),CNST_LIMB(0x8c9dc80ab604b)), + P(7459,CNST_LIMB(0x63fa18c79c54fa8b),CNST_LIMB(0x8c942115dcc96)), + P(7477,CNST_LIMB(0xe7f6f609619d0d1d),CNST_LIMB(0x8c3d7df67b539)), + P(7481,CNST_LIMB(0x7b39ef3b70afc109),CNST_LIMB(0x8c2a4bc35cb3b)), + P(7487,CNST_LIMB(0x73922c61ca7452bf),CNST_LIMB(0x8c0d8a4f1f264)), + P(7489,CNST_LIMB(0x28d96828332372c1),CNST_LIMB(0x8c03f71cbf906)), + P(7499,CNST_LIMB(0x6b6e92968c4e8463),CNST_LIMB(0x8bd42abd9a107)), + P(7507,CNST_LIMB(0x571861f084962edb),CNST_LIMB(0x8bae051d7f6ff)), + P(7517,CNST_LIMB(0xd935c64f140f1ef5),CNST_LIMB(0x8b7e735068135)), + P(7523,CNST_LIMB(0x96459f8fd72a4c4b),CNST_LIMB(0x8b61f82c5fb08)), + P(7529,CNST_LIMB(0x410ba9a2a18242d9),CNST_LIMB(0x8b4588a74a05a)), + P(7537,CNST_LIMB(0xcf90979f89870391),CNST_LIMB(0x8b1fb0a7ed403)), + P(7541,CNST_LIMB(0x10f94ff26bc00add),CNST_LIMB(0x8b0ccc5d8f5c8)), + P(7547,CNST_LIMB(0xa6619fbb9da139b3),CNST_LIMB(0x8af07f8ac5146)), + P(7549,CNST_LIMB(0x765a23334efb03d5),CNST_LIMB(0x8ae71328ffd49)), + P(7559,CNST_LIMB(0x6f2f613b5e631837),CNST_LIMB(0x8ab8086624822)), + P(7561,CNST_LIMB(0x666b99bfbcd368b9),CNST_LIMB(0x8aaea3ab5ae89)), + P(7573,CNST_LIMB(0x922b78eb01ed45bd),CNST_LIMB(0x8a7661f7020fe)), + P(7577,CNST_LIMB(0x7079a199c31de6a9),CNST_LIMB(0x8a63ab88aa8dd)), + P(7583,CNST_LIMB(0xa181abcda167be5f),CNST_LIMB(0x8a47a35d020f3)), + P(7589,CNST_LIMB(0x2f6dbbcab3a9822d),CNST_LIMB(0x8a2ba68a3cebf)), + P(7591,CNST_LIMB(0xc5a83ff0e43eba17),CNST_LIMB(0x8a2254c852497)), + P(7603,CNST_LIMB(0x28c68613dda7d97b),CNST_LIMB(0x89ea849898bb3)), + P(7607,CNST_LIMB(0x5cf33ed49efa5007),CNST_LIMB(0x89d7f3e285109)), + P(7621,CNST_LIMB(0x9125fdead661590d),CNST_LIMB(0x899720af36739)), + P(7639,CNST_LIMB(0xaee67f478c7325e7),CNST_LIMB(0x89442160d11dc)), + P(7643,CNST_LIMB(0x735b1274a0e89653),CNST_LIMB(0x8931bd5875a22)), + P(7649,CNST_LIMB(0x733b56eae1a4e621),CNST_LIMB(0x891630877aedf)), + P(7669,CNST_LIMB(0x1944ffb316ffe65d),CNST_LIMB(0x88baaad83e38f)), + P(7673,CNST_LIMB(0xf26bc3cfd2a01449),CNST_LIMB(0x88a86b9090aa4)), + P(7681,CNST_LIMB(0xb5827ba68b83e201),CNST_LIMB(0x8883fb99bf244)), + P(7687,CNST_LIMB(0xac139507e48eefb7),CNST_LIMB(0x8868b45e727ee)), + P(7691,CNST_LIMB(0xeb7676b25834fda3),CNST_LIMB(0x88568aef30d47)), + P(7699,CNST_LIMB(0xad898f4763da5c1b),CNST_LIMB(0x8832468f0bcdd)), + P(7703,CNST_LIMB(0xea906f224398f9a7),CNST_LIMB(0x88202b9a4df76)), + P(7717,CNST_LIMB(0xa8aff3caca28cdad),CNST_LIMB(0x87e0f31872e9b)), + P(7723,CNST_LIMB(0x46c53aa36b19b083),CNST_LIMB(0x87c5ecd731f42)), + P(7727,CNST_LIMB(0x9ada32b09603e8cf),CNST_LIMB(0x87b3eea3bb388)), + P(7741,CNST_LIMB(0xd31f842ef5d8e915),CNST_LIMB(0x87751a6c67d78)), + P(7753,CNST_LIMB(0x6124af44730a33f9),CNST_LIMB(0x873f6e2f9d34a)), + P(7757,CNST_LIMB(0x828ec4c2b6e64a85),CNST_LIMB(0x872d938dcfc01)), + P(7759,CNST_LIMB(0x3d6f49df999638af),CNST_LIMB(0x8724a80151dba)), + P(7789,CNST_LIMB(0x7641460a0ea89b65),CNST_LIMB(0x869f677f6cc1a)), + P(7793,CNST_LIMB(0x97703f98fb7fe291),CNST_LIMB(0x868db701df58d)), + P(7817,CNST_LIMB(0xd343c209e3e6b7b9),CNST_LIMB(0x8623f563a7d6d)), + P(7823,CNST_LIMB(0x4e5fc01f6a41406f),CNST_LIMB(0x86099ef0c8886)), + P(7829,CNST_LIMB(0xb78a05b08aa4bcbd),CNST_LIMB(0x85ef52d38fe87)), + P(7841,CNST_LIMB(0x3434a14919d34561),CNST_LIMB(0x85bad981c7847)), + P(7853,CNST_LIMB(0xccead7dee120f525),CNST_LIMB(0x8586893de7cfc)), + P(7867,CNST_LIMB(0xe1375a2bccd87673),CNST_LIMB(0x8549b491e9efe)), + P(7873,CNST_LIMB(0xf727d51420a57141),CNST_LIMB(0x852fb3859bea4)), + P(7877,CNST_LIMB(0x2c3b68cfbcebb00d),CNST_LIMB(0x851e631fc08f8)), + P(7879,CNST_LIMB(0xda91e2f3e17542f7),CNST_LIMB(0x8515bc9cde5f1)), + P(7883,CNST_LIMB(0xb55f6100ae95d6e3),CNST_LIMB(0x850472f6185b3)), + P(7901,CNST_LIMB(0x6a0c608e0bbaa975),CNST_LIMB(0x84b6defbc166b)), + P(7907,CNST_LIMB(0xac5f2fc151c016cb),CNST_LIMB(0x849d17159854b)), + P(7919,CNST_LIMB(0xb1e5af8146e4d00f),CNST_LIMB(0x8469a54a20645)), + P(7927,CNST_LIMB(0x6e283d3b112602c7),CNST_LIMB(0x84476f9401ade)), + P(7933,CNST_LIMB(0xf9a48bcb76c96e55),CNST_LIMB(0x842dd2e2dc25d)), + P(7937,CNST_LIMB(0xa776780ca4c0e101),CNST_LIMB(0x841cc543f58cb)), +#define SMALLEST_OMITTED_PRIME 7949 +#endif +#ifdef WANT_ptab + {CNST_LIMB(0x444437fed9a2349),{CNST_LIMB(0xe00056482545e92a),5,CNST_LIMB(0x2e044fdfbae4),CNST_LIMB(0x2c8f9615733fe6),CNST_LIMB(0x15319a745d44889),CNST_LIMB(0x30314bfee31fe08),CNST_LIMB(0x213845b5eb1d02b)},0,14}, + {CNST_LIMB(0x34091fa96ffdf47b),{CNST_LIMB(0x3adc72bf62f96a49),2,CNST_LIMB(0x2fdb815a40082e14),CNST_LIMB(0xa2fb4713ee182be),CNST_LIMB(0x6691fcc7a3042b5),CNST_LIMB(0xd7baca281bd7bfe),CNST_LIMB(0x31645ad7700b6fe1)},14,10}, + {CNST_LIMB(0x3c47d8d728a77ebb),{CNST_LIMB(0xfcb9aee19f3d0ca),2,CNST_LIMB(0xee09ca35d620514),CNST_LIMB(0x25e3c1639f7dc597),CNST_LIMB(0x176f977d1145f08f),CNST_LIMB(0x4a431b566c292ba),CNST_LIMB(0x100ae9d9482d6937)},24,9}, + {CNST_LIMB(0x77ab7da9d709ea9),{CNST_LIMB(0x11d1e7012ab3aa25),5,CNST_LIMB(0x1b394f7170aed8e),CNST_LIMB(0x546efaf8f3107d0),CNST_LIMB(0x42ed2efa9db39d8),CNST_LIMB(0xcf1c08fc6f825e),CNST_LIMB(0x252dd3fc3932c60)},33,8}, + {CNST_LIMB(0x310df3e7bd4bc897),{CNST_LIMB(0x4dfeef7ace095886),2,CNST_LIMB(0xaba3c794d85150d),CNST_LIMB(0x17a7ea757afc9b41),CNST_LIMB(0x27386bf8f31e3ba7),CNST_LIMB(0x14f913784ca1b09a),CNST_LIMB(0x19a5850266378808)},41,8}, + {CNST_LIMB(0xd997f089e8af1f),{CNST_LIMB(0x2d2f79839e6b7329),8,CNST_LIMB(0x285a2dd96a188d),CNST_LIMB(0x334ffbd384a516),CNST_LIMB(0xd9f5c4d959d8c),CNST_LIMB(0x1a7b0c8f9e2a8),CNST_LIMB(0x51d4df5ea86eca)},49,7}, + {CNST_LIMB(0x2514ab8fece6d79),{CNST_LIMB(0xb9d8ba8530d526d2),6,CNST_LIMB(0x111e482834cf602),CNST_LIMB(0x2099b9b4399ea77),CNST_LIMB(0xa7e65453d2c58b),CNST_LIMB(0x1543e97a71ba902),CNST_LIMB(0x13c9258fa65ea5c)},56,7}, + {CNST_LIMB(0x690efbefde431f9),{CNST_LIMB(0x37e6fe9321e30a89),5,CNST_LIMB(0x67c69a65020950a),CNST_LIMB(0x3d4da34fd3fb29d),CNST_LIMB(0x4481530580bf270),CNST_LIMB(0x53418b541a702fb),CNST_LIMB(0x5a63ba140615695)},63,7}, + {CNST_LIMB(0xf49e199a5f2f371),{CNST_LIMB(0xbe97cf50195e4cf),4,CNST_LIMB(0xb61e665a0d0c8f0),CNST_LIMB(0x12404319392532e),CNST_LIMB(0xc11fa27489010aa),CNST_LIMB(0x9486cdb3a063f1d),CNST_LIMB(0x90fb58fe1716f29)},70,7}, + {CNST_LIMB(0x20e4ce7eee0a5edf),{CNST_LIMB(0xf216910d87cce9ec),2,CNST_LIMB(0x19be5a877db767e7),CNST_LIMB(0x14174edbad8e4db0),CNST_LIMB(0x13aa47a54ebc0ab3),CNST_LIMB(0x34e03d849eed1a0),CNST_LIMB(0x1c348c675b2b87a9)},77,7}, + {CNST_LIMB(0x3c3b299a83e166e5),{CNST_LIMB(0x1004d8385b0845e0),2,CNST_LIMB(0xf135995f07a646c),CNST_LIMB(0x39f996f3e7c62cb6),CNST_LIMB(0x10e385c8b908ec46),CNST_LIMB(0x108780c61cd93a1),CNST_LIMB(0xece590a749ce9e6)},84,7}, + {CNST_LIMB(0x7385117dabf89767),{CNST_LIMB(0x1ba83180cf48fd02),1,CNST_LIMB(0x18f5dd04a80ed132),CNST_LIMB(0x134aacf48cf374fd),CNST_LIMB(0x5f5e8ab304a603e1),CNST_LIMB(0x8196d4d84952f0b),CNST_LIMB(0x27fbce261e06981)},91,7}, + {CNST_LIMB(0x6b1dd94152d113),{CNST_LIMB(0x31e8de86cb665558),9,CNST_LIMB(0x57c2791756ffa7),CNST_LIMB(0x155d1b6359e72e),CNST_LIMB(0x26e2dd434311d6),CNST_LIMB(0x2d6624583bf57f),CNST_LIMB(0x4b3c0311592466)},98,6}, + {CNST_LIMB(0x9bed1488742f9b),{CNST_LIMB(0xa44d3b1c6d785d44),8,CNST_LIMB(0x2f0a502161e5b4),CNST_LIMB(0x9197cc3e5a5b04),CNST_LIMB(0x58ecad625341f6),CNST_LIMB(0x2c8e81222f4972),CNST_LIMB(0x1f80904334e61e)},104,6}, + {CNST_LIMB(0xd851b0362c316b),{CNST_LIMB(0x2ef5b88db4540035),8,CNST_LIMB(0xcfa22017ddb3c6),CNST_LIMB(0x213062fd865691),CNST_LIMB(0x81822846481a0d),CNST_LIMB(0x4b3f5844dfd386),CNST_LIMB(0x746b08e79bff57)},110,6}, + {CNST_LIMB(0x129e6025385b5e9),{CNST_LIMB(0xb7fd23d5247f5d33),7,CNST_LIMB(0x1283c028c9d61ad),CNST_LIMB(0x8a2496a2184268),CNST_LIMB(0x702aa9d6cae97c),CNST_LIMB(0x8700d0e7b38adb),CNST_LIMB(0x562031b42d3873)},116,6}, + {CNST_LIMB(0x1b399405df9e1d9),{CNST_LIMB(0x2ce69e058ed22408),7,CNST_LIMB(0xc43448ef95aada),CNST_LIMB(0x2a35f6f5397332),CNST_LIMB(0x18bba0a2b06f9b5),CNST_LIMB(0x1bf0769bdd0a51),CNST_LIMB(0xdaf86a9dd4f157)},122,6}, + {CNST_LIMB(0x26a9c83b1da0183),{CNST_LIMB(0xa7c312b1de2834bc),6,CNST_LIMB(0x245cdfc0d956145),CNST_LIMB(0xcfb5812fdbb80b),CNST_LIMB(0x7f9bd0fd4d9771),CNST_LIMB(0x206d41f157b339d),CNST_LIMB(0x1597d040f39bed6)},128,6}, + {CNST_LIMB(0x36518f1ed35fae9),{CNST_LIMB(0x2da0bb538e68c61b),6,CNST_LIMB(0x161b11f812f7dbd),CNST_LIMB(0x1912054119f8337),CNST_LIMB(0x28b68baf0254a33),CNST_LIMB(0x1febc2a846ec627),CNST_LIMB(0x106e286e91657ac)},134,6}, + {CNST_LIMB(0x499cea9952ffcb7),{CNST_LIMB(0xbd2398239911cb86),5,CNST_LIMB(0x2f49990f2b0b4af),CNST_LIMB(0x3efc376b6d3879a),CNST_LIMB(0x16bf595684e7cae),CNST_LIMB(0x2096f989291e15a),CNST_LIMB(0x3f877653fe30a29)},140,6}, + {CNST_LIMB(0x603dc1f0578e36b),{CNST_LIMB(0x547a4d1f60bb6de6),5,CNST_LIMB(0x35de2e91a2ab072),CNST_LIMB(0x3ae19a039d933f9),CNST_LIMB(0x49f04fa32aed515),CNST_LIMB(0x49f39ce5e69737b),CNST_LIMB(0x48e7a8d6354cb3f)},146,6}, + {CNST_LIMB(0x822f4ff1bb75c7d),{CNST_LIMB(0xf7684c1a915fd94f),4,CNST_LIMB(0x3c4551ba4cbccdd),CNST_LIMB(0x3e072857c5d22e8),CNST_LIMB(0x757d8256f24de27),CNST_LIMB(0x256d9df09b5df5c),CNST_LIMB(0x19974713584ab80)},152,6}, + {CNST_LIMB(0xacfc9fbdf683023),{CNST_LIMB(0x7ad9852da99412df),4,CNST_LIMB(0x754da5eeda3acdb),CNST_LIMB(0x91f55d002dee623),CNST_LIMB(0x96936cc5e49d5ea),CNST_LIMB(0x766649a4996390),CNST_LIMB(0xaa8c52b8eea17dd)},158,6}, + {CNST_LIMB(0xe09d410f1fe4edb),{CNST_LIMB(0x23c5744aa32cf453),4,CNST_LIMB(0x34f16cefc1e749a),CNST_LIMB(0x2668179180c1b62),CNST_LIMB(0xdb241be2f133397),CNST_LIMB(0xa7c11527a49744e),CNST_LIMB(0x67d18e0669fea5b)},164,6}, + {CNST_LIMB(0x1149424a578f0ce7),{CNST_LIMB(0xd9e7a906d91cf1db),3,CNST_LIMB(0xdfe5fef362d4b5e),CNST_LIMB(0xcf056a84b77c77c),CNST_LIMB(0x985dfab0d2bd76b),CNST_LIMB(0xf57931f6922ec07),CNST_LIMB(0x44b19bfab74d6)},170,6}, + {CNST_LIMB(0x15b025d5fd579777),{CNST_LIMB(0x79b813c3ed8f4fd2),3,CNST_LIMB(0x116e5fce1d3c7de3),CNST_LIMB(0x1468c60d0220a399),CNST_LIMB(0xf10192b1089742d),CNST_LIMB(0xeae0b108eba5be6),CNST_LIMB(0xf0e98ff5e4d57d4)},176,6}, + {CNST_LIMB(0x1a5f81f6e38d3f1d),{CNST_LIMB(0x369eab91d724ae89),3,CNST_LIMB(0x12a46e520008c7fb),CNST_LIMB(0x638a97340d45e81),CNST_LIMB(0x12b4b0c893a62d44),CNST_LIMB(0x1072dcd55e5547d0),CNST_LIMB(0x18ce18c4a086d95f)},182,6}, + {CNST_LIMB(0x23293bf9b6fe2259),{CNST_LIMB(0xd1f849a43b917c65),2,CNST_LIMB(0x9df5c2bff0d0f91),CNST_LIMB(0xff1fdef6c15b8c),CNST_LIMB(0xec1383d93946006),CNST_LIMB(0x20ce6fd4fbbb8838),CNST_LIMB(0x55871453993a979)},188,6}, + {CNST_LIMB(0x2c1eaa6645e21b17),{CNST_LIMB(0x735a473662e09835),2,CNST_LIMB(0x2366ac00a295788d),CNST_LIMB(0xf8778468c26bac6),CNST_LIMB(0x10ecc751d2724c63),CNST_LIMB(0x4882fbd9d3d43e1),CNST_LIMB(0x2de76607a7f1541)},194,6}, + {CNST_LIMB(0x3646542a1110061b),{CNST_LIMB(0x2ddf24b018173a2c),2,CNST_LIMB(0x26e6af57bbbfe794),CNST_LIMB(0x1974e8d33a8f431f),CNST_LIMB(0x34da7258db6f7b4f),CNST_LIMB(0x2af310e921f874f8),CNST_LIMB(0x3cfeed9d4afc97)},200,6}, + {CNST_LIMB(0x4125602df5b7fa0b),{CNST_LIMB(0xf6fe47f7e339f3ce),1,CNST_LIMB(0x3c8fdf761ed811df),CNST_LIMB(0x145648c8769aba41),CNST_LIMB(0x3270209c06bd9a17),CNST_LIMB(0x2c03f98e45b9dca3),CNST_LIMB(0x3341dcfe340ee93e)},206,6}, + {CNST_LIMB(0x4e06bb83aa64f48d),{CNST_LIMB(0xa3f6020ab0b7e0d3),1,CNST_LIMB(0x15ebcd7500d12259),CNST_LIMB(0x786bf28f0081f92),CNST_LIMB(0x15d832d09f03b587),CNST_LIMB(0xaa3e94d54c2a575),CNST_LIMB(0x471850a042d21386)},212,6}, + {CNST_LIMB(0x6953db39a8298d8b),{CNST_LIMB(0x371b0bbe24632f20),1,CNST_LIMB(0x2d58498caface4ea),CNST_LIMB(0x557c399022219340),CNST_LIMB(0x2cb32a1a8fdd68c2),CNST_LIMB(0x122684249d42b9a9),CNST_LIMB(0x13c80507e77a929c)},218,6}, + {CNST_LIMB(0x15fafabe1c1777),{CNST_LIMB(0x74b22475baab0cce),11,CNST_LIMB(0xc763842e2c34d),CNST_LIMB(0x77d3f710b457b),CNST_LIMB(0x155a43f5525196),CNST_LIMB(0x148e30e0a5dee3),CNST_LIMB(0x13aa97836b8150)},224,5}, + {CNST_LIMB(0x18552ab4f8303b),{CNST_LIMB(0x50aaa1ed4d926e62),11,CNST_LIMB(0x815be492ca359),CNST_LIMB(0x1b55fe26d36ad),CNST_LIMB(0x113a54ceb7846),CNST_LIMB(0x1688511dfe47f),CNST_LIMB(0x66ccabff6c6c8)},229,5}, + {CNST_LIMB(0x1a99c2502dda5f),{CNST_LIMB(0x33f675a22ebecef5),11,CNST_LIMB(0x12ab7e96d807ff),CNST_LIMB(0x1d3db891dce3b),CNST_LIMB(0x19511de2e3095c),CNST_LIMB(0x2741e555a0bff),CNST_LIMB(0x51c7d31a19281)},234,5}, + {CNST_LIMB(0x1ebf9e78cd7ecb),{CNST_LIMB(0xa6b5da36fa2470c),11,CNST_LIMB(0xaebd869698c2f),CNST_LIMB(0x18e178fc70e26a),CNST_LIMB(0x64439ec9707b5),CNST_LIMB(0x116d1f70d29f20),CNST_LIMB(0xeea2317a9a585)},239,5}, + {CNST_LIMB(0x2214c7d5d9ce07),{CNST_LIMB(0xe0bc0f6215d26cf9),10,CNST_LIMB(0x1ffbac72c32f72),CNST_LIMB(0x1447f31b055129),CNST_LIMB(0x122d28bd754f9a),CNST_LIMB(0x106685d95b6d85),CNST_LIMB(0x18c9fdf391bdff)},244,5}, + {CNST_LIMB(0x25e2755d49ffa7),{CNST_LIMB(0xb078a0cae16506b6),10,CNST_LIMB(0x218554ef385919),CNST_LIMB(0xe00c975692d8e),CNST_LIMB(0x1afd2511d2f776),CNST_LIMB(0x108b0b031673f7),CNST_LIMB(0x8d919ed067cf0)},249,5}, + {CNST_LIMB(0x2925e3d5425d41),{CNST_LIMB(0x8e2c20d6f8f795ce),10,CNST_LIMB(0x1c5f29cb4c13c8),CNST_LIMB(0x15e11f6e5f634),CNST_LIMB(0xb32166d7982b3),CNST_LIMB(0xa636cf5c4f642),CNST_LIMB(0x28f997d81938bc)},254,5}, + {CNST_LIMB(0x2f39e99d11c26d),{CNST_LIMB(0x5aed08e710697213),10,CNST_LIMB(0x213b4a00c79b71),CNST_LIMB(0x1bd2737e294111),CNST_LIMB(0xd01c8aaaae314),CNST_LIMB(0xb00f1e27ed99e),CNST_LIMB(0x1d21748adab7e4)},259,5}, + {CNST_LIMB(0x3502a3ce62a769),{CNST_LIMB(0x35126ab40383fc5c),10,CNST_LIMB(0xf411f8bafb90c),CNST_LIMB(0x1fa38c975e6347),CNST_LIMB(0xf4058b043df4e),CNST_LIMB(0x2af2733656b159),CNST_LIMB(0x196e94f446c597)},264,5}, + {CNST_LIMB(0x3b357b23b014b1),{CNST_LIMB(0x14b711563eba7d77),10,CNST_LIMB(0x32f1ffd1469b4e),CNST_LIMB(0x197f48859c01a3),CNST_LIMB(0x29509dc5352d40),CNST_LIMB(0x335e5c9ef5d7fe),CNST_LIMB(0x284e1a5376a683)},269,5}, + {CNST_LIMB(0x420d06773114d3),{CNST_LIMB(0xf01a36d7bbf66dfc),9,CNST_LIMB(0xd86f221cf4e60),CNST_LIMB(0x728955d2f4a8d),CNST_LIMB(0x1a631ed35adca5),CNST_LIMB(0x2d592810a2cd39),CNST_LIMB(0x1215b15f856f68)},274,5}, + {CNST_LIMB(0x4c19f733c90d09),{CNST_LIMB(0xae954f9b28df48d8),9,CNST_LIMB(0xcab96d4cf28bb),CNST_LIMB(0x42b5fc3fd6e7ec),CNST_LIMB(0x2b7f897adc30de),CNST_LIMB(0x1a97bb06e110c0),CNST_LIMB(0x304db431256118)},279,5}, + {CNST_LIMB(0x52f224bf890ffd),{CNST_LIMB(0x8b0d84b8653cb09f),9,CNST_LIMB(0x8c298ef08a942),CNST_LIMB(0x2999ac4ebb9e26),CNST_LIMB(0x3dd9eb9ca2c026),CNST_LIMB(0x43401c4563f790),CNST_LIMB(0x38d5e8bf6d2c89)},284,5}, + {CNST_LIMB(0x5bf703dda941b1),{CNST_LIMB(0x644f51d4add132a4),9,CNST_LIMB(0x38fd3f81414bb8),CNST_LIMB(0x20049119d93b7c),CNST_LIMB(0x4e479d97844206),CNST_LIMB(0x294a3066f3b775),CNST_LIMB(0x1c21bda84cf2fc)},289,5}, + {CNST_LIMB(0x68cf321fe6202f),{CNST_LIMB(0x38a4d27caeef8e91),9,CNST_LIMB(0x1e26a01f2b6d41),CNST_LIMB(0x9e9e8993d282b),CNST_LIMB(0x417ad2819cd4fb),CNST_LIMB(0x627fb183ab0b1a),CNST_LIMB(0x278b9f029564e7)},294,5}, + {CNST_LIMB(0x71dad4e06cde9b),{CNST_LIMB(0x1fce1dcd4eb47a27),9,CNST_LIMB(0x457bdbeb7801db),CNST_LIMB(0x1f2b3df5db8f09),CNST_LIMB(0x2149ca25813ef0),CNST_LIMB(0x17d20c710e4487),CNST_LIMB(0x40ceb8ee4ca73d)},299,5}, + {CNST_LIMB(0x7b5e9ca091c63d),{CNST_LIMB(0x99bc23041414782),9,CNST_LIMB(0x1ac11ef1a1cf79),CNST_LIMB(0x313f0652fefffc),CNST_LIMB(0x12f34ea4e7a5db),CNST_LIMB(0x2aa2b3b3300bfd),CNST_LIMB(0x3245caffd0690c)},304,5}, + {CNST_LIMB(0x892f2017af4a77),{CNST_LIMB(0xddb91a666e887a07),8,CNST_LIMB(0x633133de624045),CNST_LIMB(0x7f207860875935),CNST_LIMB(0x702aff29ff7777),CNST_LIMB(0x1cc53fa2f53db9),CNST_LIMB(0x2c5ff88b6e27ee)},309,5}, + {CNST_LIMB(0x93efab3d98e265),{CNST_LIMB(0xbb00736076c6c8fc),8,CNST_LIMB(0x42ac68703b39),CNST_LIMB(0x4d4d015d5d1bd7),CNST_LIMB(0x85c801afb0f411),CNST_LIMB(0x4579d8022d0a69),CNST_LIMB(0x32ea2e520e3d23)},314,5}, + {CNST_LIMB(0x9fd1e9a289b8f9),{CNST_LIMB(0x9a0fb77008192e78),8,CNST_LIMB(0x9cfd1af6dc136),CNST_LIMB(0x23a28bc352c87c),CNST_LIMB(0x582383446e53c2),CNST_LIMB(0x3d52e0695b07e4),CNST_LIMB(0x83c6fc0e7cfd23)},319,5}, + {CNST_LIMB(0xb3ffc82a3b00bb),{CNST_LIMB(0x6c17325c7676de1f),8,CNST_LIMB(0x104f63f41af61c),CNST_LIMB(0x838ff92da5d267),CNST_LIMB(0xb37001a22f0194),CNST_LIMB(0x4487295b668b16),CNST_LIMB(0xa06ce4ed65729d)},324,5}, + {CNST_LIMB(0xc78aab3260ed67),{CNST_LIMB(0x486ec1d048657b5d),8,CNST_LIMB(0x5654a773cfd408),CNST_LIMB(0xb3f20a79edde43),CNST_LIMB(0xaebbd1a69724dd),CNST_LIMB(0x81191f0503a9),CNST_LIMB(0x3b54fc6e1ed034)},329,5}, + {CNST_LIMB(0xd8b06a4b9eddc9),{CNST_LIMB(0x2e7147c081441aeb),8,CNST_LIMB(0x5fe29aca965ce2),CNST_LIMB(0x9cb19caad665ca),CNST_LIMB(0x147b04c65844fd),CNST_LIMB(0x7a1c878be8db45),CNST_LIMB(0x8f4f4d51c80dfd)},334,5}, + {CNST_LIMB(0xe8f35bfe49ae4b),{CNST_LIMB(0x19547b44fa632b82),8,CNST_LIMB(0x4ce005e11fafad),CNST_LIMB(0x57f2d94de4ea00),CNST_LIMB(0xb885b9e976e473),CNST_LIMB(0x1eb25c197e9b39),CNST_LIMB(0xe2c45221f5cdb7)},339,5}, + {CNST_LIMB(0xfcff7f19788a27),{CNST_LIMB(0x3099f4bf7423272),8,CNST_LIMB(0x982693b0c3a8b),CNST_LIMB(0xa6eee9dce0fc63),CNST_LIMB(0xf1290f2b74223c),CNST_LIMB(0x36c85e11826e0b),CNST_LIMB(0xbe15668a4d3771)},344,5}, + {CNST_LIMB(0x10f681c21a80325),{CNST_LIMB(0xe2ef902951d2322d),7,CNST_LIMB(0x7efd8450d50a2b),CNST_LIMB(0x37c115b60abfde),CNST_LIMB(0x4a31517b3a2c0),CNST_LIMB(0x8ee426b2c25e26),CNST_LIMB(0xaf5e09c0582f8)},349,5}, + {CNST_LIMB(0x11ffa8ecf7814fb),{CNST_LIMB(0xc7250b86192832ab),7,CNST_LIMB(0xa4d35e0885656f),CNST_LIMB(0x6d14e9be5101ec),CNST_LIMB(0x93b36726a244a),CNST_LIMB(0xb56f38bde55186),CNST_LIMB(0x11443988cbd610f)},354,5}, + {CNST_LIMB(0x139b8ddf439b133),{CNST_LIMB(0xa1cbe52ffcdca969),7,CNST_LIMB(0x119cba991200690),CNST_LIMB(0xa8a1be12145159),CNST_LIMB(0x49831f7f1eb091),CNST_LIMB(0x5fe3a0bd210422),CNST_LIMB(0x11b90612ebf719f)},359,5}, + {CNST_LIMB(0x15b90aaef040351),{CNST_LIMB(0x791d6da971f79fb1),7,CNST_LIMB(0xc1c278790d9084),CNST_LIMB(0xa6bc771172ca70),CNST_LIMB(0x1219044d36b161b),CNST_LIMB(0x9363a00d9d3f5f),CNST_LIMB(0x14079ec2a37ea93)},364,5}, + {CNST_LIMB(0x17d664f86c88bd3),{CNST_LIMB(0x57a9176de3f40918),7,CNST_LIMB(0x13ca8e0f80a9a0f),CNST_LIMB(0xfc1ecc66c0c93b),CNST_LIMB(0x15be6192051cb1a),CNST_LIMB(0x136f263b7a50fcc),CNST_LIMB(0x3820db8623a7)},369,5}, + {CNST_LIMB(0x1a44cc5ef4c16b5),{CNST_LIMB(0x37da80020a7d1f74),7,CNST_LIMB(0x18584281cee4069),CNST_LIMB(0x178a63d22596ba9),CNST_LIMB(0x6739c7c5ac4f2d),CNST_LIMB(0x14c57a38e4d612a),CNST_LIMB(0x13d2e7fd35623ae)},374,5}, + {CNST_LIMB(0x1ca80b29773de79),{CNST_LIMB(0x1dde9f723a4f55dc),7,CNST_LIMB(0x1ac9ceffdba98e2),CNST_LIMB(0xf4618a5f0fdaa9),CNST_LIMB(0x17b96b4ded53ebb),CNST_LIMB(0x7faf749bdd9cb1),CNST_LIMB(0xfa9d50111fc549)},379,5}, + {CNST_LIMB(0x1e7b019a7fa8931),{CNST_LIMB(0xcc3160c520cdb96),7,CNST_LIMB(0xb9d29212dc305a),CNST_LIMB(0x91586fa7d2facc),CNST_LIMB(0x2638c4c9135f19),CNST_LIMB(0x1c315565816b84a),CNST_LIMB(0xa92e9c918ad70f)},384,5}, + {CNST_LIMB(0x1fd932c2a6c3463),{CNST_LIMB(0x137e41a0c0b8d4f),7,CNST_LIMB(0x13669eac9e5ce80),CNST_LIMB(0x94dc55b30276b5),CNST_LIMB(0x1c52a400cc7dae6),CNST_LIMB(0x1cd876c8023e81b),CNST_LIMB(0x8e06dbbb7e4c2d)},389,5}, + {CNST_LIMB(0x2175e8bd7050e79),{CNST_LIMB(0xe9a698d03a5e604b),6,CNST_LIMB(0xdcf15b87971a56),CNST_LIMB(0x2e9e439e7517fb),CNST_LIMB(0x85bbfca7ac6da9),CNST_LIMB(0x500c9508abde31),CNST_LIMB(0x1c9d7aa292a48b0)},394,5}, + {CNST_LIMB(0x24033b205fe4527),{CNST_LIMB(0xc6f39cee1695e79a),6,CNST_LIMB(0x1a92e6b5ac379c9),CNST_LIMB(0x1f1b86c0e7f8d15),CNST_LIMB(0x1e362d27d79fda9),CNST_LIMB(0x4dcd13ebf2a00a),CNST_LIMB(0x408b8bd354f1b4)},399,5}, + {CNST_LIMB(0x265d2eb09cdc073),{CNST_LIMB(0xab112e468a91ceb0),6,CNST_LIMB(0x1d6aaadf0ce5062),CNST_LIMB(0x8cb5be41003782),CNST_LIMB(0x52b9980c0c4bec),CNST_LIMB(0x2228f2e6cbe8667),CNST_LIMB(0xca6f7400df044e)},404,5}, + {CNST_LIMB(0x2953a0e65ca6a1d),{CNST_LIMB(0x8c7372d9ab5569c1),6,CNST_LIMB(0x4a8c6ea2b8f6c9),CNST_LIMB(0x3588f2393801ce),CNST_LIMB(0x1fce38ab648e336),CNST_LIMB(0x89544c1c4d5e80),CNST_LIMB(0x6e5d409692ed37)},409,5}, + {CNST_LIMB(0x2c67f25a6bc9c63),{CNST_LIMB(0x70f57416f0cce89e),6,CNST_LIMB(0xaa4e781437cc6c),CNST_LIMB(0x1c38f9d456ca8d),CNST_LIMB(0x2682eae3a0afadb),CNST_LIMB(0x2b54835e8a4f4ca),CNST_LIMB(0x1ff894f600fa94f)},414,5}, + {CNST_LIMB(0x2fdd1a7524ae76d),{CNST_LIMB(0x564e31abce2eba47),6,CNST_LIMB(0x1b96371ad2128cf),CNST_LIMB(0x35309a6895ab0d),CNST_LIMB(0x14de5531da96df1),CNST_LIMB(0x3a924ccc42ac90),CNST_LIMB(0x315a6b9b99a595)},419,5}, + {CNST_LIMB(0x33770e6e18aeb53),{CNST_LIMB(0x3e5a14fd0434a100),6,CNST_LIMB(0x1e428c066216163),CNST_LIMB(0x93d03854bffefa),CNST_LIMB(0x77e62b6df8d4a1),CNST_LIMB(0x8a8b138bb2ed69),CNST_LIMB(0x292d249664af8db)},424,5}, + {CNST_LIMB(0x379c7dff6334d3b),{CNST_LIMB(0x269dcc0c8d56e875),6,CNST_LIMB(0x2460122cb5efa2d),CNST_LIMB(0x28e51e3c7265f2e),CNST_LIMB(0x1efacb51926e686),CNST_LIMB(0xfc8248ae79bd5f),CNST_LIMB(0x2f3b91b1fe1f65)},429,5}, + {CNST_LIMB(0x3b82f15f7249c49),{CNST_LIMB(0x134ee332d51f0306),6,CNST_LIMB(0x3137e2a5a467c9c),CNST_LIMB(0x79d488798b4960),CNST_LIMB(0xb436578d1069bb),CNST_LIMB(0x10ad84e585582d0),CNST_LIMB(0x3215616c9b153bf)},434,5}, + {CNST_LIMB(0x3fff4dd17ad4ff9),{CNST_LIMB(0x2c8c1d50d30af),6,CNST_LIMB(0x2c8ba14ac01c0),CNST_LIMB(0x2bd06852b51e327),CNST_LIMB(0x30714e5452d2c1),CNST_LIMB(0x327ff42efc6d9c),CNST_LIMB(0x244bb5001864710)},439,5}, + {CNST_LIMB(0x465670cc294b181),{CNST_LIMB(0xd1ddf947b9d55be0),5,CNST_LIMB(0x106a71bea4fc8c6),CNST_LIMB(0xa255b26c45d27f),CNST_LIMB(0x460d26a6240e466),CNST_LIMB(0x1dda425d1868b60),CNST_LIMB(0x3d6eff8580e97e1)},444,5}, + {CNST_LIMB(0x4aaaab2fe3fee47),{CNST_LIMB(0xb6db6aa7d3a37a63),5,CNST_LIMB(0x3fffe3e5e83bd06),CNST_LIMB(0xa8a65f30809160),CNST_LIMB(0xbfd8fef4142370),CNST_LIMB(0x358c77f78c2a4d0),CNST_LIMB(0x3a89f0ee6796b95)},449,5}, + {CNST_LIMB(0x4f8bbff17c95ef7),{CNST_LIMB(0x9bf032ee57751395),5,CNST_LIMB(0x2728c2e42e214cb),CNST_LIMB(0x37fb2686e89761e),CNST_LIMB(0x4a264029edea029),CNST_LIMB(0x1d504d3aecaaa50),CNST_LIMB(0x45b5a7b35031756)},454,5}, + {CNST_LIMB(0x553ea1ce3216691),{CNST_LIMB(0x806643148e9063ef),5,CNST_LIMB(0x441a9569bcc4d0),CNST_LIMB(0x535ae4be3f071a1),CNST_LIMB(0x545a793067e09d8),CNST_LIMB(0xd5d15c09afe8cd),CNST_LIMB(0x4534c23a01c6a96)},459,5}, + {CNST_LIMB(0x59f7c9a4fefb517),{CNST_LIMB(0x6c37fd6421ef50ed),5,CNST_LIMB(0x2f718dff2dd2af5),CNST_LIMB(0x4aea82d40c5cc72),CNST_LIMB(0x4f7cec2a6861199),CNST_LIMB(0xe868a369a42529),CNST_LIMB(0x40e610cd320b2f7)},464,5}, + {CNST_LIMB(0x5e8d3fa86f95521),{CNST_LIMB(0x5a8fc0667cc240fe),5,CNST_LIMB(0x1e464eb541eb375),CNST_LIMB(0x3892fa43db27fd5),CNST_LIMB(0x4e5c7836ddc791a),CNST_LIMB(0x36e537bed96365e),CNST_LIMB(0x4375094ddcb8820)},469,5}, + {CNST_LIMB(0x64157c62c33e31d),{CNST_LIMB(0x4767bbee2675bc54),5,CNST_LIMB(0x5ca490917e48378),CNST_LIMB(0x11867a67aa79db0),CNST_LIMB(0x6198c4cbcaf84e6),CNST_LIMB(0x4338ebe5ab25fcf),CNST_LIMB(0x11e91c53e48fd1e)},474,5}, + {CNST_LIMB(0x6ceeed4c43f4183),{CNST_LIMB(0x2cced2b1dae4601a),5,CNST_LIMB(0x4177b3fa2db8811),CNST_LIMB(0x2b3db3648dc8a5),CNST_LIMB(0x50f060794aa127),CNST_LIMB(0x4f7cdc200df8c9a),CNST_LIMB(0x4525db055625df3)},479,5}, + {CNST_LIMB(0x7287ee7e5f96919),{CNST_LIMB(0x1e1b2205d593e3a6),5,CNST_LIMB(0x576a64b8ee6a195),CNST_LIMB(0x7bd2ea513c7027),CNST_LIMB(0x17c4152c6d55daa),CNST_LIMB(0x39f7aac6f902f57),CNST_LIMB(0x14765413bf9b5ca)},484,5}, + {CNST_LIMB(0x79886d10dfa5165),{CNST_LIMB(0xd9f57c223f379ca),5,CNST_LIMB(0x5569f0d32bb81fb),CNST_LIMB(0x6f08a7fc8e770a6),CNST_LIMB(0x2c14d325ec8479f),CNST_LIMB(0x4499d22e49d3c7),CNST_LIMB(0x53f1f1eecdc8c2)},489,5}, + {CNST_LIMB(0x7e13347ac1526bf),{CNST_LIMB(0x3e8a375cf0fb774),5,CNST_LIMB(0x3d9970a7d5b2820),CNST_LIMB(0x3664c9d670bba16),CNST_LIMB(0x6ba929ee3cbcd5c),CNST_LIMB(0xd5d262e6d92452),CNST_LIMB(0x2f545142add8d05)},494,5}, + {CNST_LIMB(0x8566f0377d15459),{CNST_LIMB(0xeb44411c1363bcf4),4,CNST_LIMB(0x5defd97f5781d92),CNST_LIMB(0x16eaae98cb00189),CNST_LIMB(0x986f4f6d77c243),CNST_LIMB(0x57c736925ddfd9),CNST_LIMB(0x10a756243dbe4ca)},499,5}, + {CNST_LIMB(0x8bfc83897e6cdaf),{CNST_LIMB(0xd428ea393317b9f2),4,CNST_LIMB(0x2465196cadab32d),CNST_LIMB(0x7594e9e684d904a),CNST_LIMB(0x19cd4a75383b2d1),CNST_LIMB(0x6a0e9c23f177e64),CNST_LIMB(0x56f0f2ae36c5465)},504,5}, + {CNST_LIMB(0x94ad790245385eb),{CNST_LIMB(0xb8cae8ae9a639526),4,CNST_LIMB(0x51b43cc2b30e037),CNST_LIMB(0x4cb133bb88b3adc),CNST_LIMB(0x3ede33df9c5e3e3),CNST_LIMB(0x665226a2d290ac4),CNST_LIMB(0x33db5ce835ec6e4)},509,5}, + {CNST_LIMB(0x9c30734d93b1379),{CNST_LIMB(0xa397f073b55bde0b),4,CNST_LIMB(0x23144a1f00005b6),CNST_LIMB(0x826ad253a3ed324),CNST_LIMB(0x940ad5d52b4806c),CNST_LIMB(0x1729e9d2d022730),CNST_LIMB(0x20a978fb381a6c2)},514,5}, + {CNST_LIMB(0xa57e1fd7a44fbb9),{CNST_LIMB(0x8c0164efd39df203),4,CNST_LIMB(0x7c2d03c898866a8),CNST_LIMB(0x4037558c6f1e4eb),CNST_LIMB(0x6694cdbbb8803c7),CNST_LIMB(0x99396c89bf97452),CNST_LIMB(0x436126c1b000fab)},519,5}, + {CNST_LIMB(0xaf9b9be9c8401d1),{CNST_LIMB(0x7531f66eca55c19b),4,CNST_LIMB(0x3904fdff023d639),CNST_LIMB(0x962f9b532413fb3),CNST_LIMB(0x27ec74df2758058),CNST_LIMB(0x5836483d1e34f66),CNST_LIMB(0x8384a37fad8866d)},524,5}, + {CNST_LIMB(0xb9ba711d6e4a84f),{CNST_LIMB(0x60dc0b5cc82154b3),4,CNST_LIMB(0x9fa47788598936),CNST_LIMB(0x82bd019c1fa5a56),CNST_LIMB(0x50db17c34711736),CNST_LIMB(0x739121f55c5b75d),CNST_LIMB(0x912fe4d49b6d56)},529,5}, + {CNST_LIMB(0xc41a8a6c63a70d1),{CNST_LIMB(0x4e30c99728e3c197),4,CNST_LIMB(0xaded2f8836f2fac),CNST_LIMB(0xab84ac5c6d525d9),CNST_LIMB(0x488aa0b1f301ccb),CNST_LIMB(0x5fdf2905d976ad6),CNST_LIMB(0x5cb75a7adbb8561)},534,5}, + {CNST_LIMB(0xcd79628a71801f7),{CNST_LIMB(0x3ef33887b9ad5b44),4,CNST_LIMB(0xbffdafb9937daab),CNST_LIMB(0x8c3722255b2b8c7),CNST_LIMB(0x63cd1bbc0e9c22a),CNST_LIMB(0xbd17bc2e12ad950),CNST_LIMB(0x15e9799e0d76f1e)},539,5}, + {CNST_LIMB(0xd6f67d4726eaaf5),{CNST_LIMB(0x30df0c865cc92a96),4,CNST_LIMB(0xbb4b3b81c94fd1),CNST_LIMB(0x2a20ca76128ce99),CNST_LIMB(0x4a4022bdd8f612e),CNST_LIMB(0x3bafa50d5be5f8b),CNST_LIMB(0xb86a67f06630908)},544,5}, + {CNST_LIMB(0xe5d3b047627f8e3),{CNST_LIMB(0x1d275ac8c78303ec),4,CNST_LIMB(0xbcf14b4275878ed),CNST_LIMB(0x5ee8b82b0662dd),CNST_LIMB(0x77e3de57e11f662),CNST_LIMB(0x5ed59e5dfb5cd16),CNST_LIMB(0xbe6a6366650aef1)},549,5}, + {CNST_LIMB(0xef42ae515bfb29d),{CNST_LIMB(0x11e922af2e24e769),4,CNST_LIMB(0x1c926c98e452393),CNST_LIMB(0xd26a458c9c34765),CNST_LIMB(0x5da54b52a8aa98a),CNST_LIMB(0xa2ed4f828338df7),CNST_LIMB(0xe69ac190926521a)},554,5}, + {CNST_LIMB(0xfd32459f0b3d4bb),{CNST_LIMB(0x2d5ace688e647e9),4,CNST_LIMB(0x2cdba60f4c2b450),CNST_LIMB(0x2577b742a8ed5db),CNST_LIMB(0x144ef4109272736),CNST_LIMB(0xbe9326c4f15e1a9),CNST_LIMB(0xb96de853277fb4f)},559,5}, + {CNST_LIMB(0x10a16ef6c96a16c7),{CNST_LIMB(0xec9602538c0df011),3,CNST_LIMB(0x68a7f8a32c8aa57),CNST_LIMB(0x1445e7d17b921f3),CNST_LIMB(0x81c8debc8176f0b),CNST_LIMB(0xe3a1c5b816e4a65),CNST_LIMB(0xa52ad5bb93c9f4b)},564,5}, + {CNST_LIMB(0x117c2fec47f5e013),{CNST_LIMB(0xd48355880989be17),3,CNST_LIMB(0xb356114108dbef6),CNST_LIMB(0xe7ddeca9ba6a20c),CNST_LIMB(0xf2d7618ea8a6953),CNST_LIMB(0x412256baaec5c27),CNST_LIMB(0x1f8e16ca6e5c0d7)},569,5}, + {CNST_LIMB(0x129a8c10ae1f364b),{CNST_LIMB(0xb857af53b5b43644),3,CNST_LIMB(0xe26e327286a3e31),CNST_LIMB(0xeef9d55a9d06dbf),CNST_LIMB(0xe61febd3beb02b6),CNST_LIMB(0x10d018a00b7fd6a5),CNST_LIMB(0x32009c46e7c1314)},574,5}, + {CNST_LIMB(0x134631392d507059),{CNST_LIMB(0xa9063d94bb92a978),3,CNST_LIMB(0x56f8018b2ea4b7b),CNST_LIMB(0x1270cb710b035935),CNST_LIMB(0x11033d859716c4f9),CNST_LIMB(0xd45bebac416a68c),CNST_LIMB(0xc08fe72fc6eef84)},579,5}, + {CNST_LIMB(0x13fde7755d5fd9ed),{CNST_LIMB(0x99c48a788248a856),3,CNST_LIMB(0x1019267f9f81c8e4),CNST_LIMB(0x394e4098ea8549),CNST_LIMB(0x33c85c2a1514436),CNST_LIMB(0xa1e569d4432f4bb),CNST_LIMB(0x128bfbc862fb3c58)},584,5}, + {CNST_LIMB(0x15698c0906cc26a5),{CNST_LIMB(0x7e957ed81f600c1e),3,CNST_LIMB(0x1476fb9cb53a56e9),CNST_LIMB(0xeff15504451beab),CNST_LIMB(0xdea55fc79c32599),CNST_LIMB(0x76a982d54d956a1),CNST_LIMB(0x4d131625675abd7)},589,5}, + {CNST_LIMB(0x168a1ee80f6d92f5),{CNST_LIMB(0x6b73459d204359d1),3,CNST_LIMB(0x810ac07564aaf79),CNST_LIMB(0x874d5996e15561a),CNST_LIMB(0xb75c73837694b49),CNST_LIMB(0xd4645617d29779b),CNST_LIMB(0x12af15ef931be940)},594,5}, + {CNST_LIMB(0x17daa6de32466fbf),{CNST_LIMB(0x576bc18853c72908),3,CNST_LIMB(0x11757b52093fa28a),CNST_LIMB(0xff4c0f212559944),CNST_LIMB(0x40af9872004a0a5),CNST_LIMB(0x2b2b7c424c54c2b),CNST_LIMB(0x1a2b7130739c4c7)},599,5}, + {CNST_LIMB(0x18ea5f2dbe212911),{CNST_LIMB(0x48ca86c98010be89),3,CNST_LIMB(0x6d8483692b46556),CNST_LIMB(0x305d89220ec48d2),CNST_LIMB(0x1772200dfc1938dc),CNST_LIMB(0xded80c44ca87607),CNST_LIMB(0xb498b0490dc55dd)},604,5}, + {CNST_LIMB(0x1a0fa1ef47787d1b),{CNST_LIMB(0x3a56b20c2d70e08a),3,CNST_LIMB(0x15734e967cc39a0d),CNST_LIMB(0x8fc968191dc0fd3),CNST_LIMB(0x1680d35f18721f8f),CNST_LIMB(0x197b4a3e18c9e8bc),CNST_LIMB(0xc0ad81d645f40c7)},609,5}, + {CNST_LIMB(0x1b673b66a023a93f),{CNST_LIMB(0x2af150ff9195ac0f),3,CNST_LIMB(0x95ee9645ebf0cc9),CNST_LIMB(0x1717202bbc3e0a78),CNST_LIMB(0x126d365df320adf6),CNST_LIMB(0x137d63165361ab0e),CNST_LIMB(0x19ca69d84cc1417c)},614,5}, + {CNST_LIMB(0x1ce34de10c258111),{CNST_LIMB(0x1b9430b6521be183),3,CNST_LIMB(0x18e590f79ed3f778),CNST_LIMB(0xbcbaeb9ec0a1624),CNST_LIMB(0x18f51ac04296ceb6),CNST_LIMB(0x161b15271d06a3e1),CNST_LIMB(0x5f0a62fb317dd86)},619,5}, + {CNST_LIMB(0x1e19674e354f4667),{CNST_LIMB(0x102a99b0acd64358),3,CNST_LIMB(0xf34c58e5585ccc8),CNST_LIMB(0x15fad9b7ef3a5cbd),CNST_LIMB(0x1874ea34e3e274f9),CNST_LIMB(0x841598977c90581),CNST_LIMB(0x1c04690158b888d)},624,5}, + {CNST_LIMB(0x1f3740adb603b24d),{CNST_LIMB(0x66e52892f80015e),3,CNST_LIMB(0x645fa924fe26d98),CNST_LIMB(0xc022a525d7f5a4f),CNST_LIMB(0x16d7e66846e5d65b),CNST_LIMB(0x10105a92c09c5aa9),CNST_LIMB(0xedddad56d23fc0e)},629,5}, + {CNST_LIMB(0x20e7b3c0e3b73671),{CNST_LIMB(0xf1eabc8c8352c9af),2,CNST_LIMB(0x19aa15b9c5fd82e9),CNST_LIMB(0x10fd7c871bd5d222),CNST_LIMB(0x4ee89a76e1259e0),CNST_LIMB(0x1280d75e6bf3c134),CNST_LIMB(0x85e103f1853c3d)},634,5}, + {CNST_LIMB(0x22b5b4fc40d4c35f),{CNST_LIMB(0xd807362226cc7e50),2,CNST_LIMB(0xd080d1a3a2ea867),CNST_LIMB(0x1f068368adc3fde1),CNST_LIMB(0x178240b1c3cf35a9),CNST_LIMB(0x1dc077b2ed00fd8c),CNST_LIMB(0x2e6e64a07f9c833)},639,5}, + {CNST_LIMB(0x23cff30e6fb8f7fd),{CNST_LIMB(0xc97f150b60a9e71b),2,CNST_LIMB(0x5505a9af1f13815),CNST_LIMB(0x22434bb477153d47),CNST_LIMB(0x87670d53a068a58),CNST_LIMB(0x21b754fa0ae7b745),CNST_LIMB(0x2182750984e9f50b)},644,5}, + {CNST_LIMB(0x266a30ee37cc7341),{CNST_LIMB(0xaa808f26b38df4ef),2,CNST_LIMB(0x1982da6ab1354c7a),CNST_LIMB(0xfda1381ca806f81),CNST_LIMB(0x1a31d30d06bd5b7b),CNST_LIMB(0xbc65e21d25000c6),CNST_LIMB(0x132d8167c6a0973b)},649,5}, + {CNST_LIMB(0x283e6bddfbebab6d),{CNST_LIMB(0x971e4733b2e0d2bf),2,CNST_LIMB(0xe8978cc1879fb72),CNST_LIMB(0x1c9e26afc4d767da),CNST_LIMB(0x1e376fcf488c8249),CNST_LIMB(0x977e63f145b0e1d),CNST_LIMB(0xe2db9891e737aa1)},654,5}, + {CNST_LIMB(0x298d29c47d06f16b),{CNST_LIMB(0x8a4e7f92da9842e7),2,CNST_LIMB(0x6b1056511d6577e),CNST_LIMB(0x592f6f3bbda49cc),CNST_LIMB(0x2692769f01fb0a5b),CNST_LIMB(0x5f3e5623e91d30d),CNST_LIMB(0x2104d5242a92b48d)},659,5}, + {CNST_LIMB(0x2afa8c16de374c13),{CNST_LIMB(0x7d364b6556c2b905),2,CNST_LIMB(0x291b438da8eb83a1),CNST_LIMB(0x14222ff3cbf7d671),CNST_LIMB(0x126ac7f90facd4d3),CNST_LIMB(0x46d452f540a8d2),CNST_LIMB(0xb0b0fc23426b0b7)},664,5}, + {CNST_LIMB(0x2c44b3413ab0dee7),{CNST_LIMB(0x721b37f337583151),2,CNST_LIMB(0x22a87fb9da8ba57d),CNST_LIMB(0x26943e2ad67b49d6),CNST_LIMB(0x1ef6cfa904bef1cd),CNST_LIMB(0x18e7d1baf5588938),CNST_LIMB(0x1ad24c5276c66d2f)},669,5}, + {CNST_LIMB(0x2e88fa7433ac7823),{CNST_LIMB(0x60141b17275393e2),2,CNST_LIMB(0x17531bbafda1a751),CNST_LIMB(0xf3ea18441a36068),CNST_LIMB(0x130110257a01259a),CNST_LIMB(0x14122cf2cde8eecc),CNST_LIMB(0x24d25acd522c56b7)},674,5}, + {CNST_LIMB(0x303fb77cc2bfe62b),{CNST_LIMB(0x539292e31ed6db25),2,CNST_LIMB(0xec16a9032408129),CNST_LIMB(0x22483ceeb16c18a3),CNST_LIMB(0x1dd1cf7128399e5a),CNST_LIMB(0x11b3d478af2cbe42),CNST_LIMB(0x2a86cb29ac9873d3)},679,5}, + {CNST_LIMB(0x32eeac8f8d221e55),{CNST_LIMB(0x41ae89b9e560d65a),2,CNST_LIMB(0x156a1323e556857),CNST_LIMB(0x865eccdcf192078),CNST_LIMB(0x29e9014382ce253e),CNST_LIMB(0x737a633527d55ef),CNST_LIMB(0xe3223c22b887658)},684,5}, + {CNST_LIMB(0x354d75b3270eaedd),{CNST_LIMB(0x336093f2bc204c55),2,CNST_LIMB(0x2aca293363c5448c),CNST_LIMB(0x17160152eb4aa39f),CNST_LIMB(0x16b50b70fa80acee),CNST_LIMB(0x2493bd25f34e1536),CNST_LIMB(0x18f710cf9496617c)},689,5}, + {CNST_LIMB(0x37b26a3f703f6027),{CNST_LIMB(0x2629d54caca5a93b),2,CNST_LIMB(0x213657023f027f64),CNST_LIMB(0x257ed9007720600c),CNST_LIMB(0xaf3dcc0f043ce98),CNST_LIMB(0x115787f3ada80173),CNST_LIMB(0x7071885da2772a7)},694,5}, + {CNST_LIMB(0x3a2d837d37f39e39),{CNST_LIMB(0x199e982941bda182),2,CNST_LIMB(0x1749f20b2031871c),CNST_LIMB(0x153d7d45eae3fbc6),CNST_LIMB(0x3035b3e81047b52f),CNST_LIMB(0x3096ed6d9a28fa5a),CNST_LIMB(0x221887c4142d7434)},699,5}, + {CNST_LIMB(0x3d6201596c85db3f),{CNST_LIMB(0xaea3e9ef4bf14aa),2,CNST_LIMB(0xa77fa9a4de89304),CNST_LIMB(0x140df851fb641569),CNST_LIMB(0x275b27f619d2cffb),CNST_LIMB(0x16df2d5134102662),CNST_LIMB(0x10ab318b9b8a8aef)},704,5}, + {CNST_LIMB(0x401080f68635f765),{CNST_LIMB(0xff7c1a4f020138fa),1,CNST_LIMB(0x3fce7d1c6d5e19d1),CNST_LIMB(0x1feb2b2abf929ebc),CNST_LIMB(0x279cb7a4291af740),CNST_LIMB(0x384bce4293f19637),CNST_LIMB(0x168a9776844c9b6f)},709,5}, + {CNST_LIMB(0x41c3dea2c7c4509b),{CNST_LIMB(0xf2421126ad7a2852),1,CNST_LIMB(0x3ab46417a8b30e2f),CNST_LIMB(0x35206295938b9c19),CNST_LIMB(0x317d8909a9980afe),CNST_LIMB(0x195b889376db752f),CNST_LIMB(0xeb8a8f47083a08e)},714,5}, + {CNST_LIMB(0x441255580dcabef7),{CNST_LIMB(0xe1601977719c2988),1,CNST_LIMB(0x33c8fff7d69fc31b),CNST_LIMB(0x3aa78ab59c61fb90),CNST_LIMB(0x3c41600b3a070fd7),CNST_LIMB(0x121266b65d774473),CNST_LIMB(0x5812c8f46959e7)},719,5}, + {CNST_LIMB(0x467e90ff075dfa77),{CNST_LIMB(0xd0d4ccbfd7fdb2ae),1,CNST_LIMB(0x2c844d02e9e6109b),CNST_LIMB(0x395a6f0c5abc0a3c),CNST_LIMB(0x30393c08245d18c3),CNST_LIMB(0xac042a1b1191d06),CNST_LIMB(0x1d0c88b0cc347eed)},724,5}, + {CNST_LIMB(0x35b7e6a52de6b),{CNST_LIMB(0x30ff8515bed6fc1f),14,CNST_LIMB(0x2f4533b937fab),CNST_LIMB(0xeb33cd2951b7),CNST_LIMB(0x28ce28b5e1739),CNST_LIMB(0x30d609f6bade3),CNST_LIMB(0x249a87bc9957)},729,4}, + {CNST_LIMB(0x4b9237b1fac55af1),{CNST_LIMB(0xb19ac3ed68fa0441),1,CNST_LIMB(0x1d4958ea0fafef2d),CNST_LIMB(0x4ba7c350e3c499e),CNST_LIMB(0xe26c59f6a4a42e5),CNST_LIMB(0x4acd391ac5c14c62),CNST_LIMB(0x38a0169051f4a371)},733,5}, + {CNST_LIMB(0x4fa265b31b73c6df),{CNST_LIMB(0x9b7b0be2fb2dbf62),1,CNST_LIMB(0x1118cee6ada4ab63),CNST_LIMB(0x2b4fe57f0434fb44),CNST_LIMB(0x2cffeb10b15bf6),CNST_LIMB(0xe12f06864906a7b),CNST_LIMB(0x2a0824475f11f823)},738,5}, + {CNST_LIMB(0x516d33f3efe608d5),{CNST_LIMB(0x926c85237f2dc355),1,CNST_LIMB(0xbb86424304de581),CNST_LIMB(0x3ec190a9cee7a48e),CNST_LIMB(0xd7d8bfe60d52602),CNST_LIMB(0xdff7561c9c07756),CNST_LIMB(0x3c1d2db82b327710)},743,5}, + {CNST_LIMB(0x545e342d68fbf683),{CNST_LIMB(0x8464ceb2fdd80297),1,CNST_LIMB(0x2e56377c50c1c77),CNST_LIMB(0x474ec2f4bd92576),CNST_LIMB(0x2a5da9663350db1),CNST_LIMB(0x220077cd63148dd2),CNST_LIMB(0x280dcbaf0c2ad61c)},748,5}, + {CNST_LIMB(0x57e94c457826bd6b),{CNST_LIMB(0x74bd3fdb5c8280eb),1,CNST_LIMB(0x502d67750fb2852a),CNST_LIMB(0x45149579eaa28023),CNST_LIMB(0x3bb53a4c0c4db579),CNST_LIMB(0x3a96a3180f221b2),CNST_LIMB(0x27f9af8526a8cf70)},753,5}, + {CNST_LIMB(0x5b9b45655ebf3b79),{CNST_LIMB(0x65b42a0f00510df2),1,CNST_LIMB(0x48c975354281890e),CNST_LIMB(0x2929df87cfd7453c),CNST_LIMB(0x1b6bb026965ae7ed),CNST_LIMB(0x52659a85b7df96c2),CNST_LIMB(0x21db715c0f72134)},758,5}, + {CNST_LIMB(0x5e6ad0d2eaa14c25),{CNST_LIMB(0x5b0e2387ccda26c3),1,CNST_LIMB(0x432a5e5a2abd67b6),CNST_LIMB(0x14b7571d1a05b77d),CNST_LIMB(0x498547c0b3350ce8),CNST_LIMB(0x9d4e28ce05c6c27),CNST_LIMB(0x4913b5ba5c5edc8)},763,5}, + {CNST_LIMB(0x60704759208cd21d),{CNST_LIMB(0x53c7ef8bdf16795b),1,CNST_LIMB(0x3f1f714dbee65bc6),CNST_LIMB(0x25fc61d1a473562),CNST_LIMB(0x158a2ce0171d5fd),CNST_LIMB(0x2f3bdc4b8520f24c),CNST_LIMB(0x4081386865e00703)},768,5}, + {CNST_LIMB(0x63bc6b32a19c883b),{CNST_LIMB(0x488c1dcdc113150a),1,CNST_LIMB(0x3887299abcc6ef8a),CNST_LIMB(0x2aab5731e10d2529),CNST_LIMB(0x5eeeb60320f0bef4),CNST_LIMB(0x18e4d9f1c279596e),CNST_LIMB(0xf478370d7e2465f)},773,5}, + {CNST_LIMB(0x47f6a9e8dab75),{CNST_LIMB(0xc7577d2a861d140e),13,CNST_LIMB(0x435dc14ffaf0e),CNST_LIMB(0x2557057e3745b),CNST_LIMB(0x450b5149277a6),CNST_LIMB(0xda1fae30c112),CNST_LIMB(0x3951ca3221a2d)},778,4}, + {CNST_LIMB(0x6e373b550764872f),{CNST_LIMB(0x294ecadbf29bc1cb),1,CNST_LIMB(0x23918955f136f1a2),CNST_LIMB(0x29cffcf11c6e3647),CNST_LIMB(0x4af7d1191966b3e0),CNST_LIMB(0x38ebd581ce6f80c6),CNST_LIMB(0x14ebbbc9200a6d59)},782,5}, + {CNST_LIMB(0x4ca8ed991d8b9),{CNST_LIMB(0xab7251b581f8c74d),13,CNST_LIMB(0x1639351769382),CNST_LIMB(0x3145f1b0a8e59),CNST_LIMB(0xff20704d1793),CNST_LIMB(0x1cd9e54d284e),CNST_LIMB(0x1602f3ac7db9c)},787,4}, + {CNST_LIMB(0x74b13dc12b016dc1),{CNST_LIMB(0x18ce87a5c4d39e85),1,CNST_LIMB(0x169d847da9fd247e),CNST_LIMB(0x286e093dede24bb5),CNST_LIMB(0x1854fa948ad9109d),CNST_LIMB(0x6b81a8b81781577c),CNST_LIMB(0xad44a3d15bc6be5)},791,5}, + {CNST_LIMB(0x78b0c5ae997e31ef),{CNST_LIMB(0xf811cf8a4bb1f80),1,CNST_LIMB(0xe9e74a2cd039c22),CNST_LIMB(0x30a04d242d0dfd11),CNST_LIMB(0x128fe81eea336414),CNST_LIMB(0x3639736d1defa144),CNST_LIMB(0x5eeb71b0497f58ff)},796,5}, + {CNST_LIMB(0x7dcf3e856f4612d7),{CNST_LIMB(0x47509bc7743383b),1,CNST_LIMB(0x46182f52173da52),CNST_LIMB(0x430e9fd64eeb40e6),CNST_LIMB(0x2774902fd5f53d5b),CNST_LIMB(0x4f5c0d7033943d05),CNST_LIMB(0x3be559075217f3a8)},801,5}, + {CNST_LIMB(0x550e24ca1a54b),{CNST_LIMB(0x81416693b884d74c),13,CNST_LIMB(0xee45b7c01c48),CNST_LIMB(0x3848946d8aec8),CNST_LIMB(0x541aec862a3ac),CNST_LIMB(0x4f2e818315dbc),CNST_LIMB(0xa8197f5fb2b)},806,4}, + {CNST_LIMB(0x573c8f376a18d),{CNST_LIMB(0x779f50fc3a19a6c9),13,CNST_LIMB(0x4fc81955d5129),CNST_LIMB(0xe80abe2896a1),CNST_LIMB(0x3a505801c159e),CNST_LIMB(0x162eeea75d4cd),CNST_LIMB(0x20dd0efbe8570)},810,4}, + {CNST_LIMB(0x589c3c614e917),{CNST_LIMB(0x71cc8c064f8788ee),13,CNST_LIMB(0x325d12375f7e1),CNST_LIMB(0x514f8f320e7d3),CNST_LIMB(0x55cf104cf51d3),CNST_LIMB(0x23278b29858c6),CNST_LIMB(0x3b956eecbdd30)},814,4}, + {CNST_LIMB(0x5a494bafe993d),{CNST_LIMB(0x6aef2ee9b04422dc),13,CNST_LIMB(0x5111950929bd7),CNST_LIMB(0x2c3779cd17b37),CNST_LIMB(0x2b7f886fc6966),CNST_LIMB(0x4f0b47ffa902d),CNST_LIMB(0x10bd268a51d6c)},818,4}, + {CNST_LIMB(0x5bdea84b0b73f),{CNST_LIMB(0x64adca063056bccb),13,CNST_LIMB(0x427b265a68455),CNST_LIMB(0x2ef4f15ac34a6),CNST_LIMB(0x493c4fd89b0ce),CNST_LIMB(0x7e61acb14b3a),CNST_LIMB(0x20d0328207c83)},822,4}, + {CNST_LIMB(0x5d4c55a25a945),{CNST_LIMB(0x5f37ce4e679bb0c3),13,CNST_LIMB(0x5b08caebb5502),CNST_LIMB(0x3d0eab29a51f1),CNST_LIMB(0x3c9ac2f5a187d),CNST_LIMB(0x29304bdf75a79),CNST_LIMB(0x14d681f7ea1f0)},826,4}, + {CNST_LIMB(0x5f286a042b527),{CNST_LIMB(0x585aa50035c6eb19),13,CNST_LIMB(0x1f74be8b4aa53),CNST_LIMB(0x47290f02b2679),CNST_LIMB(0x44c4bd1ee1378),CNST_LIMB(0x51286cbc40de1),CNST_LIMB(0xc379e189a860)},830,4}, + {CNST_LIMB(0x62521adc68615),{CNST_LIMB(0x4d46d1e25221a4ef),13,CNST_LIMB(0x53d112a3ea538),CNST_LIMB(0x26e6ad330e6d8),CNST_LIMB(0x56830d4191021),CNST_LIMB(0xed06536bee19),CNST_LIMB(0x5ba5998aa1cbd)},834,4}, + {CNST_LIMB(0x64f0108522a4b),{CNST_LIMB(0x44a2bea99b1fe52b),13,CNST_LIMB(0x22a1a59e3d4a4),CNST_LIMB(0x55422d57d71a4),CNST_LIMB(0x48b99527500ba),CNST_LIMB(0x5dffbfb3a890f),CNST_LIMB(0x618de61d17b82)},838,4}, + {CNST_LIMB(0x684eced8d04ad),{CNST_LIMB(0x3a25a4304e45cd70),13,CNST_LIMB(0x498e06ad4670c),CNST_LIMB(0x6397605c9b1d3),CNST_LIMB(0x1107048baaf16),CNST_LIMB(0x6292ac8aeb164),CNST_LIMB(0x4def8ba3a7552)},842,4}, + {CNST_LIMB(0x69e938da0b6b9),{CNST_LIMB(0x35644b98f3e9b802),13,CNST_LIMB(0x38dd6fce5c5b4),CNST_LIMB(0x6307e2db6000d),CNST_LIMB(0x56835d316819f),CNST_LIMB(0x2b1da7eb24a08),CNST_LIMB(0xf110b6d6a913)},846,4}, + {CNST_LIMB(0x6bf4be42947af),{CNST_LIMB(0x2f87eee6ccd631e7),13,CNST_LIMB(0x6b0e021f080f0),CNST_LIMB(0x4b469e0f2c53a),CNST_LIMB(0x50664c269b5e3),CNST_LIMB(0x4139b73b961d6),CNST_LIMB(0x13dc91bdbee0f)},850,4}, + {CNST_LIMB(0x6f54dbd6ccf57),{CNST_LIMB(0x26540878c92cd039),13,CNST_LIMB(0x382053afc295a),CNST_LIMB(0x2c8c19e89353d),CNST_LIMB(0x534384d9aa927),CNST_LIMB(0x249d03e328fc1),CNST_LIMB(0x2c57702938274)},854,4}, + {CNST_LIMB(0x71632fdcf6c15),{CNST_LIMB(0x20fdcdbf333d83af),13,CNST_LIMB(0x5242218aef575),CNST_LIMB(0x9ab7cecd8cd3),CNST_LIMB(0x4ea4e8bc18b4d),CNST_LIMB(0x16d9320fd98f4),CNST_LIMB(0x2d2b50a730c10)},858,4}, + {CNST_LIMB(0x7317fb257e1e1),{CNST_LIMB(0x1cb50c1361edfd6e),13,CNST_LIMB(0x489cb7c9fe32a),CNST_LIMB(0x258cf78a73422),CNST_LIMB(0x560fbee8c2cf2),CNST_LIMB(0x467156be8e294),CNST_LIMB(0xc593edc4d71f)},862,4}, + {CNST_LIMB(0x75e5d5c5e4577),{CNST_LIMB(0x15ef86e1cee16113),13,CNST_LIMB(0x6eece492ce925),CNST_LIMB(0x561b9134c02bf),CNST_LIMB(0x596b2a81ab56d),CNST_LIMB(0x296835004dd20),CNST_LIMB(0x3160915ef8c65)},866,4}, + {CNST_LIMB(0x788a813bc2fb1),{CNST_LIMB(0xfd74e4e944c107b),13,CNST_LIMB(0x6e15178139c26),CNST_LIMB(0x7828db84f90d2),CNST_LIMB(0x3e1e0cdc0bb1c),CNST_LIMB(0x4bbcd0685b013),CNST_LIMB(0x60b28bb37de31)},870,4}, + {CNST_LIMB(0x7b02c02e67beb),{CNST_LIMB(0xa621b97c2ae6cdb),13,CNST_LIMB(0x2068f6d99eb3c),CNST_LIMB(0x4ba3bacf8ed2f),CNST_LIMB(0x79baf6516f06a),CNST_LIMB(0x34fac2ffdfb3b),CNST_LIMB(0x601bda55ddca3)},874,4}, + {CNST_LIMB(0x7d0b0166731df),{CNST_LIMB(0x60dcab2ebe68654),13,CNST_LIMB(0x5a87235f786e1),CNST_LIMB(0x498c71a4f2c04),CNST_LIMB(0x6c4cf93aac90f),CNST_LIMB(0x2fc43a717ef2e),CNST_LIMB(0x61100c40f26dc)},878,4}, + {CNST_LIMB(0x7f65827009e4b),{CNST_LIMB(0x13671d16472022c),13,CNST_LIMB(0x66a0a221f20de),CNST_LIMB(0x1863cc32757a5),CNST_LIMB(0x72205d2b707de),CNST_LIMB(0x41eb3856479f4),CNST_LIMB(0x62a869dadecf2)},882,4}, + {CNST_LIMB(0x826267aca5d6b),{CNST_LIMB(0xf6a307f100c87643),12,CNST_LIMB(0x18b32a6e55cb2),CNST_LIMB(0x800c79d089746),CNST_LIMB(0x4df069eb6014f),CNST_LIMB(0xa67afd1d0f6b),CNST_LIMB(0x39654bc96e516)},886,4}, + {CNST_LIMB(0x854fadbb02f0d),{CNST_LIMB(0xeb99f80c181c04d8),12,CNST_LIMB(0x530f8982a799b),CNST_LIMB(0x488a5468d8f30),CNST_LIMB(0xcb498b28c81),CNST_LIMB(0x1d791c8466f6a),CNST_LIMB(0x583d384518de9)},890,4}, + {CNST_LIMB(0x86f75f67e5373),{CNST_LIMB(0xe592b4846fa38885),12,CNST_LIMB(0x16d1a804d8305),CNST_LIMB(0x3a9f7db1defba),CNST_LIMB(0x53fa43529d63d),CNST_LIMB(0x380980122856a),CNST_LIMB(0x59320408536cb)},894,4}, + {CNST_LIMB(0x89110415e014b),{CNST_LIMB(0xde220b6a3ca63611),12,CNST_LIMB(0x1183ea4dd5cca),CNST_LIMB(0x6cd0a51299316),CNST_LIMB(0x2c53d4f8b0ee6),CNST_LIMB(0x39ef54aed56eb),CNST_LIMB(0x7f71b2a9bf0fd)},898,4}, + {CNST_LIMB(0x8bbeefef93d97),{CNST_LIMB(0xd4f7338df110e1c1),12,CNST_LIMB(0x3ee5d151be367),CNST_LIMB(0x2e6b9dfc4bbcb),CNST_LIMB(0x225349b2e386e),CNST_LIMB(0x492ce15456b18),CNST_LIMB(0x856a0d6e68759)},902,4}, + {CNST_LIMB(0x8fa29248f38e9),{CNST_LIMB(0xc84479a2d3ad73b2),12,CNST_LIMB(0x282c97bed2bdc),CNST_LIMB(0x86b44220fa8e0),CNST_LIMB(0x497c548d39ada),CNST_LIMB(0x6928a8433805d),CNST_LIMB(0x1d2f77b091c29)},906,4}, + {CNST_LIMB(0x9311da8eb3ea1),{CNST_LIMB(0xbd9c9989aacc578d),12,CNST_LIMB(0x73d0b00fcee87),CNST_LIMB(0x44acd3ec00c9b),CNST_LIMB(0x3b8ead35b82f4),CNST_LIMB(0x7a1ca1fa55a8c),CNST_LIMB(0x98634149273d)},910,4}, + {CNST_LIMB(0x96fc1b51999b5),{CNST_LIMB(0xb20e950936df3d71),12,CNST_LIMB(0x899afa996b260),CNST_LIMB(0x2d7d06dae3233),CNST_LIMB(0x143e323027e28),CNST_LIMB(0x8483b9a26498e),CNST_LIMB(0x689b7b1e2fc91)},914,4}, + {CNST_LIMB(0x99d2dc5aa820b),{CNST_LIMB(0xaa0bd71d4333c056),12,CNST_LIMB(0x71d5124399b20),CNST_LIMB(0x62e94421a897f),CNST_LIMB(0x892c96c6ff4dc),CNST_LIMB(0x54dc6420d0ec4),CNST_LIMB(0x43a10331ebf4f)},918,4}, + {CNST_LIMB(0x9c18c1a21f755),{CNST_LIMB(0xa3d7a1305040e509),12,CNST_LIMB(0x4a6f652c96ebf),CNST_LIMB(0x92a1dbc9a1bc4),CNST_LIMB(0x7856fe0adb2e7),CNST_LIMB(0x65020d02f02aa),CNST_LIMB(0x7983e2f6dcbd)},922,4}, + {CNST_LIMB(0xa019a0d84ce05),{CNST_LIMB(0x99580856e1c2e36b),12,CNST_LIMB(0x5060429959a17),CNST_LIMB(0x8af3dd6c8fedb),CNST_LIMB(0x8521b97cefc72),CNST_LIMB(0x7289dc3848291),CNST_LIMB(0x51cb410c11cef)},926,4}, + {CNST_LIMB(0xa3837104af50b),{CNST_LIMB(0x90cc816ca127f31c),12,CNST_LIMB(0x7fcd3ea8e707c),CNST_LIMB(0x1ea9bdca73534),CNST_LIMB(0x3d0d37ad79bcf),CNST_LIMB(0x78befa2ea5ef8),CNST_LIMB(0x8c7846571c14b)},930,4}, + {CNST_LIMB(0xa74ba276e925b),{CNST_LIMB(0x87bcf3ca6aa1f420),12,CNST_LIMB(0x876dcb0272647),CNST_LIMB(0x63761f150b253),CNST_LIMB(0xa347a550c386b),CNST_LIMB(0xb7438cfe5ad4),CNST_LIMB(0x7bca2b8c0aabf)},934,4}, + {CNST_LIMB(0xad0c05b3ae661),{CNST_LIMB(0x7ab7cf1782b58dcf),12,CNST_LIMB(0x54750c4f56635),CNST_LIMB(0x2eac67167559c),CNST_LIMB(0x563c222f2aff7),CNST_LIMB(0x7b738313b7ac1),CNST_LIMB(0x65d997bccd9d9)},938,4}, + {CNST_LIMB(0xb0da5211cc3e7),{CNST_LIMB(0x72916ab867f7595c),12,CNST_LIMB(0xfa941ccadf01),CNST_LIMB(0x8d756d36295ea),CNST_LIMB(0x4f9f479e132fd),CNST_LIMB(0x18526df562fde),CNST_LIMB(0x434f07e1d9d33)},942,4}, + {CNST_LIMB(0xb36ca8c3991af),{CNST_LIMB(0x6d41bd767e129ba0),12,CNST_LIMB(0x13836edce5114),CNST_LIMB(0xa52c71bc138ab),CNST_LIMB(0x339d5f264e899),CNST_LIMB(0x65473fc2cfa57),CNST_LIMB(0x4714fd9da5ac0)},946,4}, + {CNST_LIMB(0xb6694790c60df),{CNST_LIMB(0x6746add17a9a2fee),12,CNST_LIMB(0x4c2521610f0f4),CNST_LIMB(0x1ef55755cab96),CNST_LIMB(0x3bb413c494cbb),CNST_LIMB(0x59bedca68abba),CNST_LIMB(0x618c95ba5598b)},950,4}, + {CNST_LIMB(0xb89a345c48d7d),{CNST_LIMB(0x6302ff6c309d06ee),12,CNST_LIMB(0x2296406fcba90),CNST_LIMB(0x4d697f4e83909),CNST_LIMB(0xa16067eedb775),CNST_LIMB(0xa50f824607f2b),CNST_LIMB(0x3d3946b54c9f9)},954,4}, + {CNST_LIMB(0xbb02a8b8a132b),{CNST_LIMB(0x5e70bfded3b337fc),12,CNST_LIMB(0x8c29c2d62d33),CNST_LIMB(0x3f082e296ef8f),CNST_LIMB(0x49afe57a19b90),CNST_LIMB(0xb7bd5be58da15),CNST_LIMB(0x8de61bd7e627f)},958,4}, + {CNST_LIMB(0xbd6468bb171ff),{CNST_LIMB(0x5a0880d51b052fd7),12,CNST_LIMB(0x64a7322bed5a0),CNST_LIMB(0x3f94ed2b89267),CNST_LIMB(0x980b9bde44b2d),CNST_LIMB(0x4a6676c0e7d13),CNST_LIMB(0xb24baad1f0c40)},962,4}, + {CNST_LIMB(0xc17671b548641),{CNST_LIMB(0x52c0b00a813a011e),12,CNST_LIMB(0x85095e7597d4),CNST_LIMB(0x55524352a702c),CNST_LIMB(0x868164742fab5),CNST_LIMB(0x3b3bcfdffb2cf),CNST_LIMB(0xab11b067d542f)},966,4}, + {CNST_LIMB(0xc57f07d496e1b),{CNST_LIMB(0x4bd58ed22f4b2aac),12,CNST_LIMB(0x449a9c42f9a11),CNST_LIMB(0x2b9c2279a88de),CNST_LIMB(0xa905cf41733e1),CNST_LIMB(0x206b2bfa8b896),CNST_LIMB(0xb378d16c66efd)},970,4}, + {CNST_LIMB(0xc814b88200ac3),{CNST_LIMB(0x478c251716699c98),12,CNST_LIMB(0x97df5b023b898),CNST_LIMB(0x5507d796eedc1),CNST_LIMB(0xb4a34312d58e3),CNST_LIMB(0x4324fc6d4f6f2),CNST_LIMB(0x29d3a7f3d88da)},974,4}, + {CNST_LIMB(0xcb958ba8e9259),{CNST_LIMB(0x41e93d5390ce4a3c),12,CNST_LIMB(0x75906ffdbe592),CNST_LIMB(0x35d1e8b619b02),CNST_LIMB(0x5535c122a3ba7),CNST_LIMB(0xb2c9d287f29c8),CNST_LIMB(0x7f9a7f1adf9d9)},978,4}, + {CNST_LIMB(0xcfaa956d67517),{CNST_LIMB(0x3b9549c76b39f2a8),12,CNST_LIMB(0x44a2e5454ad61),CNST_LIMB(0xa8d0541bab05b),CNST_LIMB(0x801e8693083d4),CNST_LIMB(0xc17c6af57bddf),CNST_LIMB(0xc7b4d9a0870d9)},982,4}, + {CNST_LIMB(0xd56380a0e8273),{CNST_LIMB(0x331ecd3feca3d608),12,CNST_LIMB(0xc5686ff8a7efd),CNST_LIMB(0x61e35c54a4f3f),CNST_LIMB(0x4bf5dc73ede0f),CNST_LIMB(0x2bf7f029f09a5),CNST_LIMB(0x718dc3463c882)},986,4}, + {CNST_LIMB(0xd9c8b65d94f5b),{CNST_LIMB(0x2cec062e71d179c4),12,CNST_LIMB(0xa3aaac38dbec6),CNST_LIMB(0x78cabf09fa56c),CNST_LIMB(0xcaf0fccc6b30b),CNST_LIMB(0xce30344eb1fac),CNST_LIMB(0x4ba46e5575b11)},990,4}, + {CNST_LIMB(0xdc90a482debcb),{CNST_LIMB(0x2920b89d6fc02e7f),12,CNST_LIMB(0x9f0f9b3b403a),CNST_LIMB(0x619327b332542),CNST_LIMB(0xa75eae1f8ff9f),CNST_LIMB(0x62350a1cba491),CNST_LIMB(0x22ac2e8eb19f9)},994,4}, + {CNST_LIMB(0xe0ac9922e6235),{CNST_LIMB(0x23b187206556b5c4),12,CNST_LIMB(0x157440c67a3c9),CNST_LIMB(0x696b5be3cc464),CNST_LIMB(0x2ebcde890e790),CNST_LIMB(0xae767f93832de),CNST_LIMB(0xcb1eade2d80a8)},998,4} +#endif diff --git a/vere/ext/gmp/gen/x86_64-macos/config.h b/vere/ext/gmp/gen/x86_64-macos/config.h new file mode 100644 index 0000000..72cebeb --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/config.h @@ -0,0 +1,672 @@ +/* config.h. Generated from config.in by configure. */ +/* config.in. Generated from configure.ac by autoheader. */ + +/* + +Copyright 1996-2022 Free Software Foundation, Inc. + +This file is part of the GNU MP Library. + +The GNU MP Library is free software; you can redistribute it and/or modify +it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at your + option) any later version. + +or + + * the GNU General Public License as published by the Free Software + Foundation; either version 2 of the License, or (at your option) any + later version. + +or both in parallel, as here. + +The GNU MP Library is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received copies of the GNU General Public License and the +GNU Lesser General Public License along with the GNU MP Library. If not, +see https://www.gnu.org/licenses/. +*/ + +/* Define if building universal (internal helper macro) */ +/* #undef AC_APPLE_UNIVERSAL_BUILD */ + +/* The gmp-mparam.h file (a string) the tune program should suggest updating. + */ +#define GMP_MPARAM_H_SUGGEST "./mpn/x86_64/skylake/gmp-mparam.h" + +/* Define to 1 if you have the `alarm' function. */ +#define HAVE_ALARM 1 + +/* Define to 1 if alloca() works (via gmp-impl.h). */ +#define HAVE_ALLOCA 1 + +/* Define to 1 if you have and it should be used (not on Ultrix). + */ +#define HAVE_ALLOCA_H 1 + +/* Define to 1 if the compiler accepts gcc style __attribute__ ((const)) */ +#define HAVE_ATTRIBUTE_CONST 1 + +/* Define to 1 if the compiler accepts gcc style __attribute__ ((malloc)) */ +#define HAVE_ATTRIBUTE_MALLOC 1 + +/* Define to 1 if the compiler accepts gcc style __attribute__ ((mode (XX))) + */ +#define HAVE_ATTRIBUTE_MODE 1 + +/* Define to 1 if the compiler accepts gcc style __attribute__ ((noreturn)) */ +#define HAVE_ATTRIBUTE_NORETURN 1 + +/* Define to 1 if you have the `attr_get' function. */ +/* #undef HAVE_ATTR_GET */ + +/* Define to 1 if tests/libtests has calling conventions checking for the CPU + */ +#define HAVE_CALLING_CONVENTIONS 1 + +/* Define to 1 if you have the `clock' function. */ +#define HAVE_CLOCK 1 + +/* Define to 1 if you have the `clock_gettime' function */ +#define HAVE_CLOCK_GETTIME 1 + +/* Define to 1 if you have the `cputime' function. */ +/* #undef HAVE_CPUTIME */ + +/* Define to 1 if you have the declaration of `fgetc', and to 0 if you don't. + */ +#define HAVE_DECL_FGETC 1 + +/* Define to 1 if you have the declaration of `fscanf', and to 0 if you don't. + */ +#define HAVE_DECL_FSCANF 1 + +/* Define to 1 if you have the declaration of `optarg', and to 0 if you don't. + */ +#define HAVE_DECL_OPTARG 1 + +/* Define to 1 if you have the declaration of `sys_errlist', and to 0 if you + don't. */ +#define HAVE_DECL_SYS_ERRLIST 1 + +/* Define to 1 if you have the declaration of `sys_nerr', and to 0 if you + don't. */ +#define HAVE_DECL_SYS_NERR 1 + +/* Define to 1 if you have the declaration of `ungetc', and to 0 if you don't. + */ +#define HAVE_DECL_UNGETC 1 + +/* Define to 1 if you have the declaration of `vfprintf', and to 0 if you + don't. */ +#define HAVE_DECL_VFPRINTF 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define one of the following to 1 for the format of a `double'. + If your format is not among these choices, or you don't know what it is, + then leave all undefined. + IEEE_LITTLE_SWAPPED means little endian, but with the two 4-byte halves + swapped, as used by ARM CPUs in little endian mode. */ +/* #undef HAVE_DOUBLE_IEEE_BIG_ENDIAN */ +#define HAVE_DOUBLE_IEEE_LITTLE_ENDIAN 1 +/* #undef HAVE_DOUBLE_IEEE_LITTLE_SWAPPED */ +/* #undef HAVE_DOUBLE_VAX_D */ +/* #undef HAVE_DOUBLE_VAX_G */ +/* #undef HAVE_DOUBLE_CRAY_CFP */ + +/* Define to 1 if you have the header file. */ +#define HAVE_FCNTL_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_FLOAT_H 1 + +/* Define to 1 if you have the `getpagesize' function. */ +#define HAVE_GETPAGESIZE 1 + +/* Define to 1 if you have the `getrusage' function. */ +#define HAVE_GETRUSAGE 1 + +/* Define to 1 if you have the `getsysinfo' function. */ +/* #undef HAVE_GETSYSINFO */ + +/* Define to 1 if you have the `gettimeofday' function. */ +#define HAVE_GETTIMEOFDAY 1 + +/* Define to 1 if the compiler accepts gcc style __attribute__ ((visibility)) + and __attribute__ ((alias)) */ +/* #undef HAVE_HIDDEN_ALIAS */ + +/* Define one of these to 1 for the host CPU family. + If your CPU is not in any of these families, leave all undefined. + For an AMD64 chip, define "x86" in ABI=32, but not in ABI=64. */ +/* #undef HAVE_HOST_CPU_FAMILY_alpha */ +/* #undef HAVE_HOST_CPU_FAMILY_m68k */ +/* #undef HAVE_HOST_CPU_FAMILY_power */ +/* #undef HAVE_HOST_CPU_FAMILY_powerpc */ +/* #undef HAVE_HOST_CPU_FAMILY_x86 */ +#define HAVE_HOST_CPU_FAMILY_x86_64 1 + +/* Define one of the following to 1 for the host CPU, as per the output of + ./config.guess. If your CPU is not listed here, leave all undefined. */ +/* #undef HAVE_HOST_CPU_alphaev67 */ +/* #undef HAVE_HOST_CPU_alphaev68 */ +/* #undef HAVE_HOST_CPU_alphaev7 */ +/* #undef HAVE_HOST_CPU_m68020 */ +/* #undef HAVE_HOST_CPU_m68030 */ +/* #undef HAVE_HOST_CPU_m68040 */ +/* #undef HAVE_HOST_CPU_m68060 */ +/* #undef HAVE_HOST_CPU_m68360 */ +/* #undef HAVE_HOST_CPU_powerpc604 */ +/* #undef HAVE_HOST_CPU_powerpc604e */ +/* #undef HAVE_HOST_CPU_powerpc750 */ +/* #undef HAVE_HOST_CPU_powerpc7400 */ +/* #undef HAVE_HOST_CPU_supersparc */ +/* #undef HAVE_HOST_CPU_i386 */ +/* #undef HAVE_HOST_CPU_i586 */ +/* #undef HAVE_HOST_CPU_i686 */ +/* #undef HAVE_HOST_CPU_pentium */ +/* #undef HAVE_HOST_CPU_pentiummmx */ +/* #undef HAVE_HOST_CPU_pentiumpro */ +/* #undef HAVE_HOST_CPU_pentium2 */ +/* #undef HAVE_HOST_CPU_pentium3 */ +/* #undef HAVE_HOST_CPU_pentium4 */ +/* #undef HAVE_HOST_CPU_core2 */ +/* #undef HAVE_HOST_CPU_nehalem */ +/* #undef HAVE_HOST_CPU_westmere */ +/* #undef HAVE_HOST_CPU_sandybridge */ +/* #undef HAVE_HOST_CPU_ivybridge */ +/* #undef HAVE_HOST_CPU_haswell */ +/* #undef HAVE_HOST_CPU_broadwell */ +/* #undef HAVE_HOST_CPU_skylake */ +/* #undef HAVE_HOST_CPU_silvermont */ +/* #undef HAVE_HOST_CPU_goldmont */ +/* #undef HAVE_HOST_CPU_tremont */ +/* #undef HAVE_HOST_CPU_k8 */ +/* #undef HAVE_HOST_CPU_k10 */ +/* #undef HAVE_HOST_CPU_bulldozer */ +/* #undef HAVE_HOST_CPU_piledriver */ +/* #undef HAVE_HOST_CPU_steamroller */ +/* #undef HAVE_HOST_CPU_excavator */ +/* #undef HAVE_HOST_CPU_zen */ +/* #undef HAVE_HOST_CPU_bobcat */ +/* #undef HAVE_HOST_CPU_jaguar */ +/* #undef HAVE_HOST_CPU_s390_z900 */ +/* #undef HAVE_HOST_CPU_s390_z990 */ +/* #undef HAVE_HOST_CPU_s390_z9 */ +/* #undef HAVE_HOST_CPU_s390_z10 */ +/* #undef HAVE_HOST_CPU_s390_z196 */ +/* #undef HAVE_HOST_CPU_s390_z13 */ +/* #undef HAVE_HOST_CPU_s390_z14 */ +/* #undef HAVE_HOST_CPU_s390_z15 */ + +/* Define to 1 iff we have a s390 with 64-bit registers. */ +/* #undef HAVE_HOST_CPU_s390_zarch */ + +/* Define to 1 if the system has the type `intmax_t'. */ +#define HAVE_INTMAX_T 1 + +/* Define to 1 if the system has the type `intptr_t'. */ +#define HAVE_INTPTR_T 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_INVENT_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_LANGINFO_H 1 + +/* Define one of these to 1 for the endianness of `mp_limb_t'. + If the endianness is not a simple big or little, or you don't know what + it is, then leave both undefined. */ +/* #undef HAVE_LIMB_BIG_ENDIAN */ +#define HAVE_LIMB_LITTLE_ENDIAN 1 + +/* Define to 1 if you have the `localeconv' function. */ +#define HAVE_LOCALECONV 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LOCALE_H 1 + +/* Define to 1 if the system has the type `long double'. */ +#define HAVE_LONG_DOUBLE 1 + +/* Define to 1 if the system has the type `long long'. */ +#define HAVE_LONG_LONG 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_MACHINE_HAL_SYSINFO_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have the `memset' function. */ +#define HAVE_MEMSET 1 + +/* Define to 1 if you have the `mmap' function. */ +#define HAVE_MMAP 1 + +/* Define to 1 if you have the `mprotect' function. */ +#define HAVE_MPROTECT 1 + +/* Define to 1 each of the following for which a native (ie. CPU specific) + implementation of the corresponding routine exists. */ +#define HAVE_NATIVE_mpn_add_n 1 +/* #undef HAVE_NATIVE_mpn_add_n_sub_n */ +#define HAVE_NATIVE_mpn_add_nc 1 +/* #undef HAVE_NATIVE_mpn_addaddmul_1msb0 */ +#define HAVE_NATIVE_mpn_addlsh1_n 1 +#define HAVE_NATIVE_mpn_addlsh2_n 1 +#define HAVE_NATIVE_mpn_addlsh_n 1 +#define HAVE_NATIVE_mpn_addlsh1_nc 1 +#define HAVE_NATIVE_mpn_addlsh2_nc 1 +/* #undef HAVE_NATIVE_mpn_addlsh_nc */ +/* #undef HAVE_NATIVE_mpn_addlsh1_n_ip1 */ +/* #undef HAVE_NATIVE_mpn_addlsh2_n_ip1 */ +/* #undef HAVE_NATIVE_mpn_addlsh_n_ip1 */ +/* #undef HAVE_NATIVE_mpn_addlsh1_nc_ip1 */ +/* #undef HAVE_NATIVE_mpn_addlsh2_nc_ip1 */ +/* #undef HAVE_NATIVE_mpn_addlsh_nc_ip1 */ +/* #undef HAVE_NATIVE_mpn_addlsh1_n_ip2 */ +/* #undef HAVE_NATIVE_mpn_addlsh2_n_ip2 */ +/* #undef HAVE_NATIVE_mpn_addlsh_n_ip2 */ +/* #undef HAVE_NATIVE_mpn_addlsh1_nc_ip2 */ +/* #undef HAVE_NATIVE_mpn_addlsh2_nc_ip2 */ +/* #undef HAVE_NATIVE_mpn_addlsh_nc_ip2 */ +/* #undef HAVE_NATIVE_mpn_addmul_1c */ +#define HAVE_NATIVE_mpn_addmul_2 1 +/* #undef HAVE_NATIVE_mpn_addmul_3 */ +/* #undef HAVE_NATIVE_mpn_addmul_4 */ +/* #undef HAVE_NATIVE_mpn_addmul_5 */ +/* #undef HAVE_NATIVE_mpn_addmul_6 */ +/* #undef HAVE_NATIVE_mpn_addmul_7 */ +/* #undef HAVE_NATIVE_mpn_addmul_8 */ +/* #undef HAVE_NATIVE_mpn_addmul_2s */ +#define HAVE_NATIVE_mpn_and_n 1 +#define HAVE_NATIVE_mpn_andn_n 1 +#define HAVE_NATIVE_mpn_bdiv_dbm1c 1 +#define HAVE_NATIVE_mpn_bdiv_q_1 1 +#define HAVE_NATIVE_mpn_pi1_bdiv_q_1 1 +#define HAVE_NATIVE_mpn_cnd_add_n 1 +#define HAVE_NATIVE_mpn_cnd_sub_n 1 +#define HAVE_NATIVE_mpn_com 1 +#define HAVE_NATIVE_mpn_copyd 1 +#define HAVE_NATIVE_mpn_copyi 1 +#define HAVE_NATIVE_mpn_div_qr_1n_pi1 1 +/* #undef HAVE_NATIVE_mpn_div_qr_2 */ +#define HAVE_NATIVE_mpn_divexact_1 1 +/* #undef HAVE_NATIVE_mpn_divexact_by3c */ +#define HAVE_NATIVE_mpn_divrem_1 1 +/* #undef HAVE_NATIVE_mpn_divrem_1c */ +#define HAVE_NATIVE_mpn_divrem_2 1 +/* #undef HAVE_NATIVE_mpn_gcd_1 */ +#define HAVE_NATIVE_mpn_gcd_11 1 +#define HAVE_NATIVE_mpn_gcd_22 1 +#define HAVE_NATIVE_mpn_hamdist 1 +#define HAVE_NATIVE_mpn_invert_limb 1 +#define HAVE_NATIVE_mpn_ior_n 1 +#define HAVE_NATIVE_mpn_iorn_n 1 +#define HAVE_NATIVE_mpn_lshift 1 +#define HAVE_NATIVE_mpn_lshiftc 1 +/* #undef HAVE_NATIVE_mpn_lshsub_n */ +/* #undef HAVE_NATIVE_mpn_mod_1 */ +#define HAVE_NATIVE_mpn_mod_1_1p 1 +/* #undef HAVE_NATIVE_mpn_mod_1c */ +#define HAVE_NATIVE_mpn_mod_1s_2p 1 +#define HAVE_NATIVE_mpn_mod_1s_4p 1 +#define HAVE_NATIVE_mpn_mod_34lsub1 1 +#define HAVE_NATIVE_mpn_modexact_1_odd 1 +#define HAVE_NATIVE_mpn_modexact_1c_odd 1 +#define HAVE_NATIVE_mpn_mul_1 1 +/* #undef HAVE_NATIVE_mpn_mul_1c */ +#define HAVE_NATIVE_mpn_mul_2 1 +/* #undef HAVE_NATIVE_mpn_mul_3 */ +/* #undef HAVE_NATIVE_mpn_mul_4 */ +/* #undef HAVE_NATIVE_mpn_mul_5 */ +/* #undef HAVE_NATIVE_mpn_mul_6 */ +#define HAVE_NATIVE_mpn_mul_basecase 1 +#define HAVE_NATIVE_mpn_mullo_basecase 1 +#define HAVE_NATIVE_mpn_nand_n 1 +#define HAVE_NATIVE_mpn_nior_n 1 +#define HAVE_NATIVE_mpn_popcount 1 +#define HAVE_NATIVE_mpn_preinv_divrem_1 1 +/* #undef HAVE_NATIVE_mpn_preinv_mod_1 */ +#define HAVE_NATIVE_mpn_redc_1 1 +/* #undef HAVE_NATIVE_mpn_redc_2 */ +#define HAVE_NATIVE_mpn_rsblsh1_n 1 +#define HAVE_NATIVE_mpn_rsblsh2_n 1 +#define HAVE_NATIVE_mpn_rsblsh_n 1 +#define HAVE_NATIVE_mpn_rsblsh1_nc 1 +/* #undef HAVE_NATIVE_mpn_rsblsh2_nc */ +/* #undef HAVE_NATIVE_mpn_rsblsh_nc */ +#define HAVE_NATIVE_mpn_rsh1add_n 1 +#define HAVE_NATIVE_mpn_rsh1add_nc 1 +#define HAVE_NATIVE_mpn_rsh1sub_n 1 +#define HAVE_NATIVE_mpn_rsh1sub_nc 1 +#define HAVE_NATIVE_mpn_rshift 1 +#define HAVE_NATIVE_mpn_sbpi1_bdiv_r 1 +#define HAVE_NATIVE_mpn_sqr_basecase 1 +/* #undef HAVE_NATIVE_mpn_sqr_diagonal */ +#define HAVE_NATIVE_mpn_sqr_diag_addlsh1 1 +#define HAVE_NATIVE_mpn_sub_n 1 +#define HAVE_NATIVE_mpn_sub_nc 1 +#define HAVE_NATIVE_mpn_sublsh1_n 1 +#define HAVE_NATIVE_mpn_sublsh2_n 1 +/* #undef HAVE_NATIVE_mpn_sublsh_n */ +/* #undef HAVE_NATIVE_mpn_sublsh1_nc */ +/* #undef HAVE_NATIVE_mpn_sublsh2_nc */ +/* #undef HAVE_NATIVE_mpn_sublsh_nc */ +/* #undef HAVE_NATIVE_mpn_sublsh1_n_ip1 */ +/* #undef HAVE_NATIVE_mpn_sublsh2_n_ip1 */ +/* #undef HAVE_NATIVE_mpn_sublsh_n_ip1 */ +/* #undef HAVE_NATIVE_mpn_sublsh1_nc_ip1 */ +/* #undef HAVE_NATIVE_mpn_sublsh2_nc_ip1 */ +/* #undef HAVE_NATIVE_mpn_sublsh_nc_ip1 */ +/* #undef HAVE_NATIVE_mpn_submul_1c */ +/* #undef HAVE_NATIVE_mpn_tabselect */ +/* #undef HAVE_NATIVE_mpn_udiv_qrnnd */ +/* #undef HAVE_NATIVE_mpn_udiv_qrnnd_r */ +/* #undef HAVE_NATIVE_mpn_umul_ppmm */ +/* #undef HAVE_NATIVE_mpn_umul_ppmm_r */ +#define HAVE_NATIVE_mpn_xor_n 1 +#define HAVE_NATIVE_mpn_xnor_n 1 + +/* Define to 1 if you have the `nl_langinfo' function. */ +#define HAVE_NL_LANGINFO 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_NL_TYPES_H 1 + +/* Define to 1 if you have the `obstack_vprintf' function. */ +/* #undef HAVE_OBSTACK_VPRINTF */ + +/* Define to 1 if you have the `popen' function. */ +#define HAVE_POPEN 1 + +/* Define to 1 if you have the `processor_info' function. */ +#define HAVE_PROCESSOR_INFO 1 + +/* Define to 1 if `struct pst_processor' exists and contains + `psp_iticksperclktick'. */ +/* #undef HAVE_PSP_ITICKSPERCLKTICK */ + +/* Define to 1 if you have the `pstat_getprocessor' function. */ +/* #undef HAVE_PSTAT_GETPROCESSOR */ + +/* Define to 1 if the system has the type `ptrdiff_t'. */ +#define HAVE_PTRDIFF_T 1 + +/* Define to 1 if the system has the type `quad_t'. */ +#define HAVE_QUAD_T 1 + +/* Define to 1 if you have the `raise' function. */ +#define HAVE_RAISE 1 + +/* Define to 1 if you have the `read_real_time' function. */ +/* #undef HAVE_READ_REAL_TIME */ + +/* Define to 1 if you have the `sigaction' function. */ +#define HAVE_SIGACTION 1 + +/* Define to 1 if you have the `sigaltstack' function. */ +#define HAVE_SIGALTSTACK 1 + +/* Define to 1 if you have the `sigstack' function. */ +/* #undef HAVE_SIGSTACK */ + +/* Tune directory speed_cyclecounter, undef=none, 1=32bits, 2=64bits) */ +#define HAVE_SPEED_CYCLECOUNTER 2 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SSTREAM */ + +/* Define to 1 if the system has the type `stack_t'. */ +#define HAVE_STACK_T 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if the system has the type `std::locale'. */ +/* #undef HAVE_STD__LOCALE */ + +/* Define to 1 if you have the `strchr' function. */ +#define HAVE_STRCHR 1 + +/* Define to 1 if you have the `strerror' function. */ +#define HAVE_STRERROR 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `strnlen' function. */ +#define HAVE_STRNLEN 1 + +/* Define to 1 if you have the `strtol' function. */ +#define HAVE_STRTOL 1 + +/* Define to 1 if you have the `strtoul' function. */ +#define HAVE_STRTOUL 1 + +/* Define to 1 if you have the `sysconf' function. */ +#define HAVE_SYSCONF 1 + +/* Define to 1 if you have the `sysctl' function. */ +#define HAVE_SYSCTL 1 + +/* Define to 1 if you have the `sysctlbyname' function. */ +#define HAVE_SYSCTLBYNAME 1 + +/* Define to 1 if you have the `syssgi' function. */ +/* #undef HAVE_SYSSGI */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_ATTRIBUTES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_IOGRAPH_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_MMAN_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_PARAM_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_PROCESSOR_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_PSTAT_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_RESOURCE_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SYSCTL_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SYSINFO_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SYSSGI_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SYSTEMCFG_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIMES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the `times' function. */ +#define HAVE_TIMES 1 + +/* Define to 1 if the system has the type `uint_least32_t'. */ +#define HAVE_UINT_LEAST32_T 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to 1 if you have the `vsnprintf' function and it works properly. */ +#define HAVE_VSNPRINTF 1 + +/* Define to 1 for Windos/64 */ +/* #undef HOST_DOS64 */ + +/* Assembler local label prefix */ +#define LSYM_PREFIX "L" + +/* Define to the sub-directory where libtool stores uninstalled libraries. */ +#define LT_OBJDIR ".libs/" + +/* Define to 1 to disable the use of inline assembly */ +/* #undef NO_ASM */ + +/* Name of package */ +#define PACKAGE "gmp" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "gmp-bugs@gmplib.org (see https://gmplib.org/manual/Reporting-Bugs.html)" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "GNU MP" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "GNU MP 6.3.0" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "gmp" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "http://www.gnu.org/software/gmp/" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "6.3.0" + +/* Define as the return type of signal handlers (`int' or `void'). */ +#define RETSIGTYPE void + +/* The size of `mp_limb_t', as computed by sizeof. */ +#define SIZEOF_MP_LIMB_T 8 + +/* The size of `unsigned', as computed by sizeof. */ +#define SIZEOF_UNSIGNED 4 + +/* The size of `unsigned long', as computed by sizeof. */ +#define SIZEOF_UNSIGNED_LONG 8 + +/* The size of `unsigned short', as computed by sizeof. */ +#define SIZEOF_UNSIGNED_SHORT 2 + +/* The size of `void *', as computed by sizeof. */ +#define SIZEOF_VOID_P 8 + +/* Define to 1 if sscanf requires writable inputs */ +/* #undef SSCANF_WRITABLE_INPUT */ + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define to 1 if you can safely include both and . */ +#define TIME_WITH_SYS_TIME 1 + +/* Maximum size the tune program can test for SQR_TOOM2_THRESHOLD */ +/* #undef TUNE_SQR_TOOM2_MAX */ + +/* Version number of package */ +#define VERSION "6.3.0" + +/* Define to 1 to enable ASSERT checking, per --enable-assert */ +/* #undef WANT_ASSERT */ + +/* Define to 1 to enable GMP_CPU_TYPE faking cpuid, per --enable-fake-cpuid */ +/* #undef WANT_FAKE_CPUID */ + +/* Define to 1 when building a fat binary. */ +/* #undef WANT_FAT_BINARY */ + +/* Define to 1 to enable FFTs for multiplication, per --enable-fft */ +#define WANT_FFT 1 + +/* Define to 1 to enable old mpn_mul_fft_full for multiplication, per + --enable-old-fft-full */ +/* #undef WANT_OLD_FFT_FULL */ + +/* Define to 1 if --enable-profiling=gprof */ +/* #undef WANT_PROFILING_GPROF */ + +/* Define to 1 if --enable-profiling=instrument */ +/* #undef WANT_PROFILING_INSTRUMENT */ + +/* Define to 1 if --enable-profiling=prof */ +/* #undef WANT_PROFILING_PROF */ + +/* Define one of these to 1 for the desired temporary memory allocation + method, per --enable-alloca. */ +#define WANT_TMP_ALLOCA 1 +/* #undef WANT_TMP_REENTRANT */ +/* #undef WANT_TMP_NOTREENTRANT */ +/* #undef WANT_TMP_DEBUG */ + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +/* # undef WORDS_BIGENDIAN */ +# endif +#endif + +/* Define to 1 if the assembler understands the mulx instruction */ +#define X86_ASM_MULX 1 + +/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a + `char[]'. */ +#define YYTEXT_POINTER 1 + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +/* #undef inline */ +#endif + +/* Define to the equivalent of the C99 'restrict' keyword, or to + nothing if this is not supported. Do not define if restrict is + supported directly. */ +#define restrict __restrict +/* Work around a bug in Sun C++: it does not support _Restrict or + __restrict__, even though the corresponding Sun C compiler ends up with + "#define restrict _Restrict" or "#define restrict __restrict__" in the + previous line. Perhaps some future version of Sun C++ will work with + restrict; if so, hopefully it defines __RESTRICT like Sun C does. */ +#if defined __SUNPRO_CC && !defined __RESTRICT +# define _Restrict +# define __restrict__ +#endif + +/* Define to empty if the keyword `volatile' does not work. Warning: valid + code using `volatile' can become incorrect without. Disable with care. */ +/* #undef volatile */ diff --git a/vere/ext/gmp/gen/x86_64-macos/fac_table.h b/vere/ext/gmp/gen/x86_64-macos/fac_table.h new file mode 100644 index 0000000..6708348 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/fac_table.h @@ -0,0 +1,49 @@ +/* This file is automatically generated by gen-fac.c */ + +#if GMP_NUMB_BITS != 64 +Error , error this data is for 64 GMP_NUMB_BITS only +#endif +/* This table is 0!,1!,2!,3!,...,n! where n! has <= GMP_NUMB_BITS bits */ +#define ONE_LIMB_FACTORIAL_TABLE CNST_LIMB(0x1),CNST_LIMB(0x1),CNST_LIMB(0x2),CNST_LIMB(0x6),CNST_LIMB(0x18),CNST_LIMB(0x78),CNST_LIMB(0x2d0),CNST_LIMB(0x13b0),CNST_LIMB(0x9d80),CNST_LIMB(0x58980),CNST_LIMB(0x375f00),CNST_LIMB(0x2611500),CNST_LIMB(0x1c8cfc00),CNST_LIMB(0x17328cc00),CNST_LIMB(0x144c3b2800),CNST_LIMB(0x13077775800),CNST_LIMB(0x130777758000),CNST_LIMB(0x1437eeecd8000),CNST_LIMB(0x16beecca730000),CNST_LIMB(0x1b02b9306890000),CNST_LIMB(0x21c3677c82b40000) + +/* This table is 0!,1!,2!/2,3!/2,...,n!/2^sn where n!/2^sn is an */ +/* odd integer for each n, and n!/2^sn has <= GMP_NUMB_BITS bits */ +#define ONE_LIMB_ODD_FACTORIAL_TABLE CNST_LIMB(0x1),CNST_LIMB(0x1),CNST_LIMB(0x1),CNST_LIMB(0x3),CNST_LIMB(0x3),CNST_LIMB(0xf),CNST_LIMB(0x2d),CNST_LIMB(0x13b),CNST_LIMB(0x13b),CNST_LIMB(0xb13),CNST_LIMB(0x375f),CNST_LIMB(0x26115),CNST_LIMB(0x7233f),CNST_LIMB(0x5cca33),CNST_LIMB(0x2898765),CNST_LIMB(0x260eeeeb),CNST_LIMB(0x260eeeeb),CNST_LIMB(0x286fddd9b),CNST_LIMB(0x16beecca73),CNST_LIMB(0x1b02b930689),CNST_LIMB(0x870d9df20ad),CNST_LIMB(0xb141df4dae31),CNST_LIMB(0x79dd498567c1b),CNST_LIMB(0xaf2e19afc5266d),CNST_LIMB(0x20d8a4d0f4f7347),CNST_LIMB(0x335281867ec241ef) +#define ODD_FACTORIAL_TABLE_MAX CNST_LIMB(0x335281867ec241ef) +#define ODD_FACTORIAL_TABLE_LIMIT (25) + +/* Previous table, continued, values modulo 2^GMP_NUMB_BITS */ +#define ONE_LIMB_ODD_FACTORIAL_EXTTABLE CNST_LIMB(0x9b3093d46fdd5923),CNST_LIMB(0x5e1f9767cc5866b1),CNST_LIMB(0x92dd23d6966aced7),CNST_LIMB(0xa30d0f4f0a196e5b),CNST_LIMB(0x8dc3e5a1977d7755),CNST_LIMB(0x2ab8ce915831734b),CNST_LIMB(0x2ab8ce915831734b),CNST_LIMB(0x81d2a0bc5e5fdcab),CNST_LIMB(0x9efcac82445da75b),CNST_LIMB(0xbc8b95cf58cde171),CNST_LIMB(0xa0e8444a1f3cecf9),CNST_LIMB(0x4191deb683ce3ffd),CNST_LIMB(0xddd3878bc84ebfc7),CNST_LIMB(0xcb39a64b83ff3751),CNST_LIMB(0xf8203f7993fc1495),CNST_LIMB(0xbd2a2a78b35f4bdd),CNST_LIMB(0x84757be6b6d13921),CNST_LIMB(0x3fbbcfc0b524988b),CNST_LIMB(0xbd11ed47c8928df9),CNST_LIMB(0x3c26b59e41c2f4c5),CNST_LIMB(0x677a5137e883fdb3),CNST_LIMB(0xff74e943b03b93dd),CNST_LIMB(0xfe5ebbcb10b2bb97),CNST_LIMB(0xb021f1de3235e7e7),CNST_LIMB(0x33509eb2e743a58f),CNST_LIMB(0x390f9da41279fb7d),CNST_LIMB(0xe5cb0154f031c559),CNST_LIMB(0x93074695ba4ddb6d),CNST_LIMB(0x81c471caa636247f),CNST_LIMB(0xe1347289b5a1d749),CNST_LIMB(0x286f21c3f76ce2ff),CNST_LIMB(0xbe84a2173e8ac7),CNST_LIMB(0x1595065ca215b88b),CNST_LIMB(0xf95877595b018809),CNST_LIMB(0x9c2efe3c5516f887),CNST_LIMB(0x373294604679382b),CNST_LIMB(0xaf1ff7a888adcd35),CNST_LIMB(0x18ddf279a2c5800b),CNST_LIMB(0x18ddf279a2c5800b),CNST_LIMB(0x505a90e2542582cb),CNST_LIMB(0x5bacad2cd8d5dc2b),CNST_LIMB(0xfe3152bcbff89f41) +#define ODD_FACTORIAL_EXTTABLE_LIMIT (67) + +/* This table is 1!!,3!!,...,(2n+1)!! where (2n+1)!! has <= GMP_NUMB_BITS bits */ +#define ONE_LIMB_ODD_DOUBLEFACTORIAL_TABLE CNST_LIMB(0x1),CNST_LIMB(0x3),CNST_LIMB(0xf),CNST_LIMB(0x69),CNST_LIMB(0x3b1),CNST_LIMB(0x289b),CNST_LIMB(0x20fdf),CNST_LIMB(0x1eee11),CNST_LIMB(0x20dcf21),CNST_LIMB(0x27065f73),CNST_LIMB(0x33385d46f),CNST_LIMB(0x49a10615f9),CNST_LIMB(0x730b9982551),CNST_LIMB(0xc223930bef8b),CNST_LIMB(0x15fe07a85a22bf),CNST_LIMB(0x2a9c2ed62ea3521),CNST_LIMB(0x57e22099c030d941) +#define ODD_DOUBLEFACTORIAL_TABLE_MAX CNST_LIMB(0x57e22099c030d941) +#define ODD_DOUBLEFACTORIAL_TABLE_LIMIT (33) + +/* This table x_1, x_2,... contains values s.t. x_n^n has <= GMP_NUMB_BITS bits */ +#define NTH_ROOT_NUMB_MASK_TABLE (GMP_NUMB_MASK),CNST_LIMB(0xffffffff),CNST_LIMB(0x285145),CNST_LIMB(0xffff),CNST_LIMB(0x1bdb),CNST_LIMB(0x659),CNST_LIMB(0x235),CNST_LIMB(0xff) + +/* This table contains inverses of odd factorials, modulo 2^GMP_NUMB_BITS */ + +/* It begins with (2!/2)^-1=1 */ +#define ONE_LIMB_ODD_FACTORIAL_INVERSES_TABLE CNST_LIMB(0x1),CNST_LIMB(0xaaaaaaaaaaaaaaab),CNST_LIMB(0xaaaaaaaaaaaaaaab),CNST_LIMB(0xeeeeeeeeeeeeeeef),CNST_LIMB(0x4fa4fa4fa4fa4fa5),CNST_LIMB(0x2ff2ff2ff2ff2ff3),CNST_LIMB(0x2ff2ff2ff2ff2ff3),CNST_LIMB(0x938cc70553e3771b),CNST_LIMB(0xb71c27cddd93e49f),CNST_LIMB(0xb38e3229fcdee63d),CNST_LIMB(0xe684bb63544a4cbf),CNST_LIMB(0xc2f684917ca340fb),CNST_LIMB(0xf747c9cba417526d),CNST_LIMB(0xbb26eb51d7bd49c3),CNST_LIMB(0xbb26eb51d7bd49c3),CNST_LIMB(0xb0a7efb985294093),CNST_LIMB(0xbe4b8c69f259eabb),CNST_LIMB(0x6854d17ed6dc4fb9),CNST_LIMB(0xe1aa904c915f4325),CNST_LIMB(0x3b8206df131cead1),CNST_LIMB(0x79c6009fea76fe13),CNST_LIMB(0xd8c5d381633cd365),CNST_LIMB(0x4841f12b21144677),CNST_LIMB(0x4a91ff68200b0d0f),CNST_LIMB(0x8f9513a58c4f9e8b),CNST_LIMB(0x2b3e690621a42251),CNST_LIMB(0x4f520f00e03c04e7),CNST_LIMB(0x2edf84ee600211d3),CNST_LIMB(0xadcaa2764aaacdfd),CNST_LIMB(0x161f4f9033f4fe63),CNST_LIMB(0x161f4f9033f4fe63),CNST_LIMB(0xbada2932ea4d3e03),CNST_LIMB(0xcec189f3efaa30d3),CNST_LIMB(0xf7475bb68330bf91),CNST_LIMB(0x37eb7bf7d5b01549),CNST_LIMB(0x46b35660a4e91555),CNST_LIMB(0xa567c12d81f151f7),CNST_LIMB(0x4c724007bb2071b1),CNST_LIMB(0xf4a0cce58a016bd),CNST_LIMB(0xfa21068e66106475),CNST_LIMB(0x244ab72b5a318ae1),CNST_LIMB(0x366ce67e080d0f23),CNST_LIMB(0xd666fdae5dd2a449),CNST_LIMB(0xd740ddd0acc06a0d),CNST_LIMB(0xb050bbbb28e6f97b),CNST_LIMB(0x70b003fe890a5c75),CNST_LIMB(0xd03aabff83037427),CNST_LIMB(0x13ec4ca72c783bd7),CNST_LIMB(0x90282c06afdbd96f),CNST_LIMB(0x4414ddb9db4a95d5),CNST_LIMB(0xa2c68735ae6832e9),CNST_LIMB(0xbf72d71455676665),CNST_LIMB(0xa8469fab6b759b7f),CNST_LIMB(0xc1e55b56e606caf9),CNST_LIMB(0x40455630fc4a1cff),CNST_LIMB(0x120a7b0046d16f7),CNST_LIMB(0xa7c3553b08faef23),CNST_LIMB(0x9f0bfd1b08d48639),CNST_LIMB(0xa433ffce9a304d37),CNST_LIMB(0xa22ad1d53915c683),CNST_LIMB(0xcb6cbc723ba5dd1d),CNST_LIMB(0x547fb1b8ab9d0ba3),CNST_LIMB(0x547fb1b8ab9d0ba3),CNST_LIMB(0x8f15a826498852e3) + +/* This table contains 2n-popc(2n) for small n */ + +/* It begins with 2-1=1 (n=1) */ +#define TABLE_2N_MINUS_POPC_2N 1,3,4,7,8,10,11,15,16,18,19,22,23,25,26,31,32,34,35,38,39,41,42,46,47,49,50,53,54,56,57,63,64,66,67,70,71,73,74,78 +#define TABLE_LIMIT_2N_MINUS_POPC_2N 81 +#define ODD_CENTRAL_BINOMIAL_OFFSET (13) + +/* This table contains binomial(2k,k)/2^t */ + +/* It begins with ODD_CENTRAL_BINOMIAL_TABLE_MIN */ +#define ONE_LIMB_ODD_CENTRAL_BINOMIAL_TABLE CNST_LIMB(0x13d66b),CNST_LIMB(0x4c842f),CNST_LIMB(0x93ee7d),CNST_LIMB(0x11e9e123),CNST_LIMB(0x22c60053),CNST_LIMB(0x873ae4d1),CNST_LIMB(0x10757bd97),CNST_LIMB(0x80612c6cd),CNST_LIMB(0xfaa556bc1),CNST_LIMB(0x3d3cc24821),CNST_LIMB(0x77cfeb6bbb),CNST_LIMB(0x7550ebd97c7),CNST_LIMB(0xe5f08695caf),CNST_LIMB(0x386120ffce11),CNST_LIMB(0x6eabb28dd6df),CNST_LIMB(0x3658e31c82a8f),CNST_LIMB(0x6ad2050312783),CNST_LIMB(0x1a42902a5af0bf),CNST_LIMB(0x33ac44f881661d),CNST_LIMB(0xcb764f927d82123),CNST_LIMB(0x190c23fa46b93983),CNST_LIMB(0x62b7609e25caf1b9),CNST_LIMB(0xc29cb72925ef2cff) +#define ODD_CENTRAL_BINOMIAL_TABLE_LIMIT (35) + +/* This table contains the inverses of elements in the previous table. */ +#define ONE_LIMB_ODD_CENTRAL_BINOMIAL_INVERSE_TABLE CNST_LIMB(0x61e5bd199bb12643),CNST_LIMB(0x78321494dc8342cf),CNST_LIMB(0x4fd348704ebf7ad5),CNST_LIMB(0x7e722ba086ab568b),CNST_LIMB(0xa5fcc124265843db),CNST_LIMB(0x89c4a6b18633f431),CNST_LIMB(0x4daa2c15f8ce9227),CNST_LIMB(0x801c618ca9be9605),CNST_LIMB(0x32dc192f948a441),CNST_LIMB(0xd02b90c2bf3be1),CNST_LIMB(0xd897e8c1749aa173),CNST_LIMB(0x54a234fc01fef9f7),CNST_LIMB(0x83ff2ab4d1ff7a4f),CNST_LIMB(0xa427f1c9b304e2f1),CNST_LIMB(0x9c14595d1793651f),CNST_LIMB(0x883a71c607a7b46f),CNST_LIMB(0xd089863c54bc9f2b),CNST_LIMB(0x9022f6bce5d07f3f),CNST_LIMB(0xbec207e218768c35),CNST_LIMB(0x9d70cb4cbb4f168b),CNST_LIMB(0x3c3d3403828a9d2b),CNST_LIMB(0x7672df58c56bc489),CNST_LIMB(0x1e66ca55d727d2ff) + +/* This table contains the values t in the formula binomial(2k,k)/2^t */ +#define CENTRAL_BINOMIAL_2FAC_TABLE 3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,1,2,2,3 diff --git a/vere/ext/gmp/gen/x86_64-macos/fib_table.h b/vere/ext/gmp/gen/x86_64-macos/fib_table.h new file mode 100644 index 0000000..66ac4d6 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/fib_table.h @@ -0,0 +1,8 @@ +/* This file generated by gen-fib.c - DO NOT EDIT. */ + +#if GMP_NUMB_BITS != 64 +Error, error, this data is for 64 bits +#endif + +#define FIB_TABLE_LIMIT 93 +#define FIB_TABLE_LUCNUM_LIMIT 92 diff --git a/vere/ext/gmp/gen/x86_64-macos/mp_bases.h b/vere/ext/gmp/gen/x86_64-macos/mp_bases.h new file mode 100644 index 0000000..08ede78 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mp_bases.h @@ -0,0 +1,13 @@ +/* This file generated by gen-bases.c - DO NOT EDIT. */ + +#if GMP_NUMB_BITS != 64 +Error, error, this data is for 64 bits +#endif + +/* mp_bases[10] data, as literal values */ +#define MP_BASES_CHARS_PER_LIMB_10 19 +#define MP_BASES_BIG_BASE_CTZ_10 19 +#define MP_BASES_BIG_BASE_10 CNST_LIMB(0x8ac7230489e80000) +#define MP_BASES_BIG_BASE_INVERTED_10 CNST_LIMB(0xd83c94fb6d2ac34a) +#define MP_BASES_BIG_BASE_BINVERTED_10 CNST_LIMB(0x26b172506559ce15) +#define MP_BASES_NORMALIZATION_STEPS_10 0 diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/add_err1_n.s b/vere/ext/gmp/gen/x86_64-macos/mpn/add_err1_n.s new file mode 100644 index 0000000..4bb4f97 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/add_err1_n.s @@ -0,0 +1,237 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4, 0x90 + .globl ___gmpn_add_err1_n + + +___gmpn_add_err1_n: + + mov 8(%rsp), %rax + + push %rbx + push %rbp + push %r12 + push %r13 + push %r14 + push %r15 + + lea (%rsi,%r9,8), %rsi + lea (%rdx,%r9,8), %rdx + lea (%rdi,%r9,8), %rdi + + mov %r9d, %r10d + and $3, %r10d + jz L0mod4 + cmp $2, %r10d + jc L1mod4 + jz L2mod4 +L3mod4: + xor %ebx, %ebx + xor %ebp, %ebp + xor %r10d, %r10d + xor %r11d, %r11d + lea -24(%r8,%r9,8), %r8 + neg %r9 + + shr $1, %al + mov (%rsi,%r9,8), %r14 + mov 8(%rsi,%r9,8), %r15 + adc (%rdx,%r9,8), %r14 + mov %r14, (%rdi,%r9,8) + cmovc 16(%r8), %rbx + adc 8(%rdx,%r9,8), %r15 + mov %r15, 8(%rdi,%r9,8) + cmovc 8(%r8), %r10 + mov 16(%rsi,%r9,8), %r14 + adc 16(%rdx,%r9,8), %r14 + mov %r14, 16(%rdi,%r9,8) + cmovc (%r8), %r11 + setc %al + add %r10, %rbx + adc $0, %rbp + add %r11, %rbx + adc $0, %rbp + + add $3, %r9 + jnz Lloop + jmp Lend + + .align 4, 0x90 +L0mod4: + xor %ebx, %ebx + xor %ebp, %ebp + lea (%r8,%r9,8), %r8 + neg %r9 + jmp Lloop + + .align 4, 0x90 +L1mod4: + xor %ebx, %ebx + xor %ebp, %ebp + lea -8(%r8,%r9,8), %r8 + neg %r9 + + shr $1, %al + mov (%rsi,%r9,8), %r14 + adc (%rdx,%r9,8), %r14 + mov %r14, (%rdi,%r9,8) + cmovc (%r8), %rbx + setc %al + + add $1, %r9 + jnz Lloop + jmp Lend + + .align 4, 0x90 +L2mod4: + xor %ebx, %ebx + xor %ebp, %ebp + xor %r10d, %r10d + lea -16(%r8,%r9,8), %r8 + neg %r9 + + shr $1, %al + mov (%rsi,%r9,8), %r14 + mov 8(%rsi,%r9,8), %r15 + adc (%rdx,%r9,8), %r14 + mov %r14, (%rdi,%r9,8) + cmovc 8(%r8), %rbx + adc 8(%rdx,%r9,8), %r15 + mov %r15, 8(%rdi,%r9,8) + cmovc (%r8), %r10 + setc %al + add %r10, %rbx + adc $0, %rbp + + add $2, %r9 + jnz Lloop + jmp Lend + + .align 5, 0x90 +Lloop: + mov (%rsi,%r9,8), %r14 + shr $1, %al + mov -8(%r8), %r10 + mov $0, %r13d + adc (%rdx,%r9,8), %r14 + cmovnc %r13, %r10 + mov %r14, (%rdi,%r9,8) + mov 8(%rsi,%r9,8), %r15 + mov 16(%rsi,%r9,8), %r14 + adc 8(%rdx,%r9,8), %r15 + mov -16(%r8), %r11 + cmovnc %r13, %r11 + mov -24(%r8), %r12 + mov %r15, 8(%rdi,%r9,8) + adc 16(%rdx,%r9,8), %r14 + cmovnc %r13, %r12 + mov 24(%rsi,%r9,8), %r15 + adc 24(%rdx,%r9,8), %r15 + cmovc -32(%r8), %r13 + setc %al + add %r10, %rbx + adc $0, %rbp + add %r11, %rbx + adc $0, %rbp + add %r12, %rbx + adc $0, %rbp + lea -32(%r8), %r8 + mov %r14, 16(%rdi,%r9,8) + add %r13, %rbx + adc $0, %rbp + add $4, %r9 + mov %r15, -8(%rdi,%r9,8) + jnz Lloop + +Lend: + mov %rbx, (%rcx) + mov %rbp, 8(%rcx) + + pop %r15 + pop %r14 + pop %r13 + pop %r12 + pop %rbp + pop %rbx + ret + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/add_err2_n.s b/vere/ext/gmp/gen/x86_64-macos/mpn/add_err2_n.s new file mode 100644 index 0000000..ba4fb6d --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/add_err2_n.s @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4, 0x90 + .globl ___gmpn_add_err2_n + + +___gmpn_add_err2_n: + + mov 16(%rsp), %rax + mov 8(%rsp), %r10 + + push %rbx + push %rbp + push %r12 + push %r13 + push %r14 + + xor %ebp, %ebp + xor %r11d, %r11d + xor %r12d, %r12d + xor %r13d, %r13d + + sub %r8, %r9 + + lea (%rdi,%r10,8), %rdi + lea (%rsi,%r10,8), %rsi + lea (%rdx,%r10,8), %rdx + + test $1, %r10 + jnz Lodd + + lea -8(%r8,%r10,8), %r8 + neg %r10 + jmp Ltop + + .align 4, 0x90 +Lodd: + lea -16(%r8,%r10,8), %r8 + neg %r10 + shr $1, %rax + mov (%rsi,%r10,8), %rbx + adc (%rdx,%r10,8), %rbx + cmovc 8(%r8), %rbp + cmovc 8(%r8,%r9), %r12 + mov %rbx, (%rdi,%r10,8) + sbb %rax, %rax + inc %r10 + jz Lend + + .align 4, 0x90 +Ltop: + mov (%rsi,%r10,8), %rbx + shr $1, %rax + adc (%rdx,%r10,8), %rbx + mov %rbx, (%rdi,%r10,8) + sbb %r14, %r14 + + mov 8(%rsi,%r10,8), %rbx + adc 8(%rdx,%r10,8), %rbx + mov %rbx, 8(%rdi,%r10,8) + sbb %rax, %rax + + mov (%r8), %rbx + and %r14, %rbx + add %rbx, %rbp + adc $0, %r11 + + and (%r8,%r9), %r14 + add %r14, %r12 + adc $0, %r13 + + mov -8(%r8), %rbx + and %rax, %rbx + add %rbx, %rbp + adc $0, %r11 + + mov -8(%r8,%r9), %rbx + and %rax, %rbx + add %rbx, %r12 + adc $0, %r13 + + add $2, %r10 + lea -16(%r8), %r8 + jnz Ltop +Lend: + + mov %rbp, (%rcx) + mov %r11, 8(%rcx) + mov %r12, 16(%rcx) + mov %r13, 24(%rcx) + + and $1, %eax + + pop %r14 + pop %r13 + pop %r12 + pop %rbp + pop %rbx + ret + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/add_err3_n.s b/vere/ext/gmp/gen/x86_64-macos/mpn/add_err3_n.s new file mode 100644 index 0000000..3e0e39d --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/add_err3_n.s @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4, 0x90 + .globl ___gmpn_add_err3_n + + +___gmpn_add_err3_n: + + mov 24(%rsp), %rax + mov 16(%rsp), %r10 + + push %rbx + push %rbp + push %r12 + push %r13 + push %r14 + push %r15 + + push %rcx + mov 64(%rsp), %rcx + + xor %ebp, %ebp + xor %r11d, %r11d + xor %r12d, %r12d + xor %r13d, %r13d + xor %r14d, %r14d + xor %r15d, %r15d + + sub %r8, %r9 + sub %r8, %rcx + + lea -8(%r8,%r10,8), %r8 + lea (%rdi,%r10,8), %rdi + lea (%rsi,%r10,8), %rsi + lea (%rdx,%r10,8), %rdx + neg %r10 + + .align 4, 0x90 +Ltop: + shr $1, %rax + mov (%rsi,%r10,8), %rax + adc (%rdx,%r10,8), %rax + mov %rax, (%rdi,%r10,8) + sbb %rax, %rax + + mov (%r8), %rbx + and %rax, %rbx + add %rbx, %rbp + adc $0, %r11 + + mov (%r8,%r9), %rbx + and %rax, %rbx + add %rbx, %r12 + adc $0, %r13 + + mov (%r8,%rcx), %rbx + and %rax, %rbx + add %rbx, %r14 + adc $0, %r15 + + lea -8(%r8), %r8 + inc %r10 + jnz Ltop + +Lend: + and $1, %eax + pop %rcx + + mov %rbp, (%rcx) + mov %r11, 8(%rcx) + mov %r12, 16(%rcx) + mov %r13, 24(%rcx) + mov %r14, 32(%rcx) + mov %r15, 40(%rcx) + + pop %r15 + pop %r14 + pop %r13 + pop %r12 + pop %rbp + pop %rbx + ret + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/add_n.s b/vere/ext/gmp/gen/x86_64-macos/mpn/add_n.s new file mode 100644 index 0000000..84fc0f3 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/add_n.s @@ -0,0 +1,289 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4, 0x90 + .globl ___gmpn_add_nc + + +___gmpn_add_nc: + + + + + mov %ecx, %eax + shr $3, %rcx + and $7, %eax + + lea Ltab(%rip), %r9 + neg %r8 + + movslq (%r9,%rax,4), %rax + lea (%r9,%rax), %rax + jmp *%rax + + + + .align 4, 0x90 + .globl ___gmpn_add_n + + +___gmpn_add_n: + + + + mov %ecx, %eax + shr $3, %rcx + and $7, %eax + + lea Ltab(%rip), %r9 + + movslq (%r9,%rax,4), %rax + lea (%r9,%rax), %rax + jmp *%rax + + +L0: mov (%rsi), %r8 + mov 8(%rsi), %r9 + adc (%rdx), %r8 + jmp Le0 + +L4: mov (%rsi), %r8 + mov 8(%rsi), %r9 + adc (%rdx), %r8 + lea -32(%rsi), %rsi + lea -32(%rdx), %rdx + lea -32(%rdi), %rdi + inc %rcx + jmp Le4 + +L5: mov (%rsi), %r11 + mov 8(%rsi), %r8 + mov 16(%rsi), %r9 + adc (%rdx), %r11 + lea -24(%rsi), %rsi + lea -24(%rdx), %rdx + lea -24(%rdi), %rdi + inc %rcx + jmp Le5 + +L6: mov (%rsi), %r10 + adc (%rdx), %r10 + mov 8(%rsi), %r11 + lea -16(%rsi), %rsi + lea -16(%rdx), %rdx + lea -16(%rdi), %rdi + inc %rcx + jmp Le6 + +L7: mov (%rsi), %r9 + mov 8(%rsi), %r10 + adc (%rdx), %r9 + adc 8(%rdx), %r10 + lea -8(%rsi), %rsi + lea -8(%rdx), %rdx + lea -8(%rdi), %rdi + inc %rcx + jmp Le7 + + .align 4, 0x90 +Ltop: +Le3: mov %r9, 40(%rdi) +Le2: mov %r10, 48(%rdi) +Le1: mov (%rsi), %r8 + mov 8(%rsi), %r9 + adc (%rdx), %r8 + mov %r11, 56(%rdi) + lea 64(%rdi), %rdi +Le0: mov 16(%rsi), %r10 + adc 8(%rdx), %r9 + adc 16(%rdx), %r10 + mov %r8, (%rdi) +Le7: mov 24(%rsi), %r11 + mov %r9, 8(%rdi) +Le6: mov 32(%rsi), %r8 + mov 40(%rsi), %r9 + adc 24(%rdx), %r11 + mov %r10, 16(%rdi) +Le5: adc 32(%rdx), %r8 + mov %r11, 24(%rdi) +Le4: mov 48(%rsi), %r10 + mov 56(%rsi), %r11 + mov %r8, 32(%rdi) + lea 64(%rsi), %rsi + adc 40(%rdx), %r9 + adc 48(%rdx), %r10 + adc 56(%rdx), %r11 + lea 64(%rdx), %rdx + dec %rcx + jnz Ltop + +Lend: mov %r9, 40(%rdi) + mov %r10, 48(%rdi) + mov %r11, 56(%rdi) + mov %ecx, %eax + adc %ecx, %eax + + ret + + .align 4, 0x90 +L3: mov (%rsi), %r9 + mov 8(%rsi), %r10 + mov 16(%rsi), %r11 + adc (%rdx), %r9 + adc 8(%rdx), %r10 + adc 16(%rdx), %r11 + jrcxz Lx3 + lea 24(%rsi), %rsi + lea 24(%rdx), %rdx + lea -40(%rdi), %rdi + jmp Le3 +Lx3: mov %r9, (%rdi) + mov %r10, 8(%rdi) + mov %r11, 16(%rdi) + mov %ecx, %eax + adc %ecx, %eax + + ret + + .align 4, 0x90 +L1: mov (%rsi), %r11 + adc (%rdx), %r11 + jrcxz Lx1 + lea 8(%rsi), %rsi + lea 8(%rdx), %rdx + lea -56(%rdi), %rdi + jmp Le1 +Lx1: mov %r11, (%rdi) + mov %ecx, %eax + adc %ecx, %eax + + ret + + .align 4, 0x90 +L2: mov (%rsi), %r10 + mov 8(%rsi), %r11 + adc (%rdx), %r10 + adc 8(%rdx), %r11 + jrcxz Lx2 + lea 16(%rsi), %rsi + lea 16(%rdx), %rdx + lea -48(%rdi), %rdi + jmp Le2 +Lx2: mov %r10, (%rdi) + mov %r11, 8(%rdi) + mov %ecx, %eax + adc %ecx, %eax + + ret + + .text + .align 3, 0x90 +Ltab: .set L0_tmp, L0-Ltab + .long L0_tmp + + .set L1_tmp, L1-Ltab + .long L1_tmp + + .set L2_tmp, L2-Ltab + .long L2_tmp + + .set L3_tmp, L3-Ltab + .long L3_tmp + + .set L4_tmp, L4-Ltab + .long L4_tmp + + .set L5_tmp, L5-Ltab + .long L5_tmp + + .set L6_tmp, L6-Ltab + .long L6_tmp + + .set L7_tmp, L7-Ltab + .long L7_tmp + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/addaddmul_1msb0.s b/vere/ext/gmp/gen/x86_64-macos/mpn/addaddmul_1msb0.s new file mode 100644 index 0000000..bb8871c --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/addaddmul_1msb0.s @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4, 0x90 + .globl ___gmpn_addaddmul_1msb0 + + +___gmpn_addaddmul_1msb0: + + push %r12 + push %rbp + + lea (%rsi,%rcx,8), %rsi + lea (%rdx,%rcx,8), %rbp + lea (%rdi,%rcx,8), %rdi + neg %rcx + + mov (%rsi,%rcx,8), %rax + mul %r8 + mov %rax, %r12 + mov (%rbp,%rcx,8), %rax + mov %rdx, %r10 + add $3, %rcx + jns Lend + + .align 4, 0x90 +Ltop: mul %r9 + add %rax, %r12 + mov -16(%rsi,%rcx,8), %rax + adc %rdx, %r10 + mov %r12, -24(%rdi,%rcx,8) + mul %r8 + add %rax, %r10 + mov -16(%rbp,%rcx,8), %rax + mov $0, %r11d + adc %rdx, %r11 + mul %r9 + add %rax, %r10 + mov -8(%rsi,%rcx,8), %rax + adc %rdx, %r11 + mov %r10, -16(%rdi,%rcx,8) + mul %r8 + add %rax, %r11 + mov -8(%rbp,%rcx,8), %rax + mov $0, %r12d + adc %rdx, %r12 + mul %r9 + add %rax, %r11 + adc %rdx, %r12 + mov (%rsi,%rcx,8), %rax + mul %r8 + add %rax, %r12 + mov %r11, -8(%rdi,%rcx,8) + mov (%rbp,%rcx,8), %rax + mov $0, %r10d + adc %rdx, %r10 + add $3, %rcx + js Ltop + +Lend: cmp $1, %ecx + ja 2f + jz 1f + + mul %r9 + add %rax, %r12 + mov -16(%rsi), %rax + adc %rdx, %r10 + mov %r12, -24(%rdi) + mul %r8 + add %rax, %r10 + mov -16(%rbp), %rax + mov $0, %r11d + adc %rdx, %r11 + mul %r9 + add %rax, %r10 + mov -8(%rsi), %rax + adc %rdx, %r11 + mov %r10, -16(%rdi) + mul %r8 + add %rax, %r11 + mov -8(%rbp), %rax + mov $0, %r12d + adc %rdx, %r12 + mul %r9 + add %rax, %r11 + adc %rdx, %r12 + mov %r11, -8(%rdi) + mov %r12, %rax + pop %rbp + pop %r12 + ret + +1: mul %r9 + add %rax, %r12 + mov -8(%rsi), %rax + adc %rdx, %r10 + mov %r12, -16(%rdi) + mul %r8 + add %rax, %r10 + mov -8(%rbp), %rax + mov $0, %r11d + adc %rdx, %r11 + mul %r9 + add %rax, %r10 + adc %rdx, %r11 + mov %r10, -8(%rdi) + mov %r11, %rax + pop %rbp + pop %r12 + ret + +2: mul %r9 + add %rax, %r12 + mov %r12, -8(%rdi) + adc %rdx, %r10 + mov %r10, %rax + pop %rbp + pop %r12 + ret + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/addlsh1_n.s b/vere/ext/gmp/gen/x86_64-macos/mpn/addlsh1_n.s new file mode 100644 index 0000000..90fca0b --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/addlsh1_n.s @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4, 0x90 + .globl ___gmpn_addlsh1_nc + + +___gmpn_addlsh1_nc: + + + + push %rbp + mov %r8, %rax + neg %rax + xor %ebp, %ebp + mov (%rdx), %r8 + shrd $63, %r8, %rbp + mov %ecx, %r9d + and $3, %r9d + je Lb00 + cmp $2, %r9d + jc Lb01 + je Lb10 + jmp Lb11 + + + .align 4, 0x90 + .globl ___gmpn_addlsh1_n + + +___gmpn_addlsh1_n: + + + push %rbp + xor %ebp, %ebp + mov (%rdx), %r8 + shrd $63, %r8, %rbp + mov %ecx, %eax + and $3, %eax + je Lb00 + cmp $2, %eax + jc Lb01 + je Lb10 + +Lb11: mov 8(%rdx), %r9 + shrd $63, %r9, %r8 + mov 16(%rdx), %r10 + shrd $63, %r10, %r9 + add %eax, %eax + adc (%rsi), %rbp + adc 8(%rsi), %r8 + adc 16(%rsi), %r9 + mov %rbp, (%rdi) + mov %r8, 8(%rdi) + mov %r9, 16(%rdi) + mov %r10, %rbp + lea 24(%rsi), %rsi + lea 24(%rdx), %rdx + lea 24(%rdi), %rdi + sbb %eax, %eax + sub $3, %rcx + ja Ltop + jmp Lend + +Lb01: add %eax, %eax + adc (%rsi), %rbp + mov %rbp, (%rdi) + mov %r8, %rbp + lea 8(%rsi), %rsi + lea 8(%rdx), %rdx + lea 8(%rdi), %rdi + sbb %eax, %eax + sub $1, %rcx + ja Ltop + jmp Lend + +Lb10: mov 8(%rdx), %r9 + shrd $63, %r9, %r8 + add %eax, %eax + adc (%rsi), %rbp + adc 8(%rsi), %r8 + mov %rbp, (%rdi) + mov %r8, 8(%rdi) + mov %r9, %rbp + lea 16(%rsi), %rsi + lea 16(%rdx), %rdx + lea 16(%rdi), %rdi + sbb %eax, %eax + sub $2, %rcx + ja Ltop + jmp Lend + + .align 4, 0x90 +Ltop: mov (%rdx), %r8 + shrd $63, %r8, %rbp +Lb00: mov 8(%rdx), %r9 + shrd $63, %r9, %r8 + mov 16(%rdx), %r10 + shrd $63, %r10, %r9 + mov 24(%rdx), %r11 + shrd $63, %r11, %r10 + lea 32(%rdx), %rdx + add %eax, %eax + adc (%rsi), %rbp + adc 8(%rsi), %r8 + adc 16(%rsi), %r9 + adc 24(%rsi), %r10 + lea 32(%rsi), %rsi + mov %rbp, (%rdi) + mov %r8, 8(%rdi) + mov %r9, 16(%rdi) + mov %r10, 24(%rdi) + mov %r11, %rbp + lea 32(%rdi), %rdi + sbb %eax, %eax + sub $4, %rcx + jnz Ltop + +Lend: shr $63, %rbp + add %eax, %eax + adc $0, %rbp + mov %rbp, %rax + pop %rbp + + ret + + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/addlsh2_n.s b/vere/ext/gmp/gen/x86_64-macos/mpn/addlsh2_n.s new file mode 100644 index 0000000..5d61f82 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/addlsh2_n.s @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4, 0x90 + .globl ___gmpn_addlsh2_nc + + +___gmpn_addlsh2_nc: + + + + push %rbp + mov %r8, %rax + neg %rax + xor %ebp, %ebp + mov (%rdx), %r8 + shrd $62, %r8, %rbp + mov %ecx, %r9d + and $3, %r9d + je Lb00 + cmp $2, %r9d + jc Lb01 + je Lb10 + jmp Lb11 + + + .align 4, 0x90 + .globl ___gmpn_addlsh2_n + + +___gmpn_addlsh2_n: + + + push %rbp + xor %ebp, %ebp + mov (%rdx), %r8 + shrd $62, %r8, %rbp + mov %ecx, %eax + and $3, %eax + je Lb00 + cmp $2, %eax + jc Lb01 + je Lb10 + +Lb11: mov 8(%rdx), %r9 + shrd $62, %r9, %r8 + mov 16(%rdx), %r10 + shrd $62, %r10, %r9 + add %eax, %eax + adc (%rsi), %rbp + adc 8(%rsi), %r8 + adc 16(%rsi), %r9 + mov %rbp, (%rdi) + mov %r8, 8(%rdi) + mov %r9, 16(%rdi) + mov %r10, %rbp + lea 24(%rsi), %rsi + lea 24(%rdx), %rdx + lea 24(%rdi), %rdi + sbb %eax, %eax + sub $3, %rcx + ja Ltop + jmp Lend + +Lb01: add %eax, %eax + adc (%rsi), %rbp + mov %rbp, (%rdi) + mov %r8, %rbp + lea 8(%rsi), %rsi + lea 8(%rdx), %rdx + lea 8(%rdi), %rdi + sbb %eax, %eax + sub $1, %rcx + ja Ltop + jmp Lend + +Lb10: mov 8(%rdx), %r9 + shrd $62, %r9, %r8 + add %eax, %eax + adc (%rsi), %rbp + adc 8(%rsi), %r8 + mov %rbp, (%rdi) + mov %r8, 8(%rdi) + mov %r9, %rbp + lea 16(%rsi), %rsi + lea 16(%rdx), %rdx + lea 16(%rdi), %rdi + sbb %eax, %eax + sub $2, %rcx + ja Ltop + jmp Lend + + .align 4, 0x90 +Ltop: mov (%rdx), %r8 + shrd $62, %r8, %rbp +Lb00: mov 8(%rdx), %r9 + shrd $62, %r9, %r8 + mov 16(%rdx), %r10 + shrd $62, %r10, %r9 + mov 24(%rdx), %r11 + shrd $62, %r11, %r10 + lea 32(%rdx), %rdx + add %eax, %eax + adc (%rsi), %rbp + adc 8(%rsi), %r8 + adc 16(%rsi), %r9 + adc 24(%rsi), %r10 + lea 32(%rsi), %rsi + mov %rbp, (%rdi) + mov %r8, 8(%rdi) + mov %r9, 16(%rdi) + mov %r10, 24(%rdi) + mov %r11, %rbp + lea 32(%rdi), %rdi + sbb %eax, %eax + sub $4, %rcx + jnz Ltop + +Lend: shr $62, %rbp + add %eax, %eax + adc $0, %rbp + mov %rbp, %rax + pop %rbp + + ret + + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/addlsh_n.s b/vere/ext/gmp/gen/x86_64-macos/mpn/addlsh_n.s new file mode 100644 index 0000000..f71088e --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/addlsh_n.s @@ -0,0 +1,269 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 5, 0x90 + .globl ___gmpn_addlsh_n + + +___gmpn_addlsh_n: + + + + + mov (%rdx), %r10 + + mov %ecx, %eax + shr $3, %rcx + xor %r9d, %r9d + sub %r8, %r9 + and $7, %eax + + lea Ltab(%rip), %r11 + + movslq (%r11,%rax,4), %rax + add %r11, %rax + jmp *%rax + + +L0: lea 32(%rsi), %rsi + lea 32(%rdx), %rdx + lea 32(%rdi), %rdi + xor %r11d, %r11d + jmp Le0 + +L7: mov %r10, %r11 + lea 24(%rsi), %rsi + lea 24(%rdx), %rdx + lea 24(%rdi), %rdi + xor %r10d, %r10d + jmp Le7 + +L6: lea 16(%rsi), %rsi + lea 16(%rdx), %rdx + lea 16(%rdi), %rdi + xor %r11d, %r11d + jmp Le6 + +L5: mov %r10, %r11 + lea 8(%rsi), %rsi + lea 8(%rdx), %rdx + lea 8(%rdi), %rdi + xor %r10d, %r10d + jmp Le5 + +Lend: adc 24(%rsi), %rax + mov %rax, -40(%rdi) + .byte 0xc4,194,179,0xf7,195 + adc %rcx, %rax + + ret + + .align 5, 0x90 +Ltop: jrcxz Lend + mov -32(%rdx), %r10 + adc 24(%rsi), %rax + lea 64(%rsi), %rsi + .byte 0xc4,66,179,0xf7,219 + mov %rax, -40(%rdi) +Le0: dec %rcx + .byte 0xc4,194,185,0xf7,194 + lea (%r11,%rax), %rax + mov -24(%rdx), %r11 + adc -32(%rsi), %rax + .byte 0xc4,66,179,0xf7,210 + mov %rax, -32(%rdi) +Le7: .byte 0xc4,194,185,0xf7,195 + lea (%r10,%rax), %rax + mov -16(%rdx), %r10 + adc -24(%rsi), %rax + .byte 0xc4,66,179,0xf7,219 + mov %rax, -24(%rdi) +Le6: .byte 0xc4,194,185,0xf7,194 + lea (%r11,%rax), %rax + mov -8(%rdx), %r11 + adc -16(%rsi), %rax + .byte 0xc4,66,179,0xf7,210 + mov %rax, -16(%rdi) +Le5: .byte 0xc4,194,185,0xf7,195 + lea (%r10,%rax), %rax + mov (%rdx), %r10 + adc -8(%rsi), %rax + .byte 0xc4,66,179,0xf7,219 + mov %rax, -8(%rdi) +Le4: .byte 0xc4,194,185,0xf7,194 + lea (%r11,%rax), %rax + mov 8(%rdx), %r11 + adc (%rsi), %rax + .byte 0xc4,66,179,0xf7,210 + mov %rax, (%rdi) +Le3: .byte 0xc4,194,185,0xf7,195 + lea (%r10,%rax), %rax + mov 16(%rdx), %r10 + adc 8(%rsi), %rax + .byte 0xc4,66,179,0xf7,219 + mov %rax, 8(%rdi) +Le2: .byte 0xc4,194,185,0xf7,194 + lea (%r11,%rax), %rax + mov 24(%rdx), %r11 + adc 16(%rsi), %rax + lea 64(%rdx), %rdx + .byte 0xc4,66,179,0xf7,210 + mov %rax, 16(%rdi) + lea 64(%rdi), %rdi +Le1: .byte 0xc4,194,185,0xf7,195 + lea (%r10,%rax), %rax + jmp Ltop + +L4: xor %r11d, %r11d + jmp Le4 + +L3: mov %r10, %r11 + lea -8(%rsi), %rsi + lea -8(%rdx), %rdx + lea -8(%rdi), %rdi + xor %r10d, %r10d + jmp Le3 + +L2: lea -16(%rsi), %rsi + lea -16(%rdx), %rdx + lea -16(%rdi), %rdi + xor %r11d, %r11d + jmp Le2 + +L1: mov %r10, %r11 + lea -24(%rsi), %rsi + lea 40(%rdx), %rdx + lea 40(%rdi), %rdi + xor %r10d, %r10d + jmp Le1 + + .text + .align 3, 0x90 +Ltab: .set L0_tmp, L0-Ltab + .long L0_tmp + + .set L1_tmp, L1-Ltab + .long L1_tmp + + .set L2_tmp, L2-Ltab + .long L2_tmp + + .set L3_tmp, L3-Ltab + .long L3_tmp + + .set L4_tmp, L4-Ltab + .long L4_tmp + + .set L5_tmp, L5-Ltab + .long L5_tmp + + .set L6_tmp, L6-Ltab + .long L6_tmp + + .set L7_tmp, L7-Ltab + .long L7_tmp + + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/addmul_1.s b/vere/ext/gmp/gen/x86_64-macos/mpn/addmul_1.s new file mode 100644 index 0000000..0435e8a --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/addmul_1.s @@ -0,0 +1,230 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 5, 0x90 + .globl ___gmpn_addmul_1 + + +___gmpn_addmul_1: + + + + mov %rcx, %r10 + mov %rdx, %rcx + mov %edx, %r8d + shr $3, %rcx + and $7, %r8d + mov %r10, %rdx + lea Ltab(%rip), %r10 + movslq (%r10,%r8,4), %r8 + lea (%r8, %r10), %r10 + jmp *%r10 + + .text + .align 3, 0x90 +Ltab: .set Lf0_tmp, Lf0-Ltab + .long Lf0_tmp + + .set Lf1_tmp, Lf1-Ltab + .long Lf1_tmp + + .set Lf2_tmp, Lf2-Ltab + .long Lf2_tmp + + .set Lf3_tmp, Lf3-Ltab + .long Lf3_tmp + + .set Lf4_tmp, Lf4-Ltab + .long Lf4_tmp + + .set Lf5_tmp, Lf5-Ltab + .long Lf5_tmp + + .set Lf6_tmp, Lf6-Ltab + .long Lf6_tmp + + .set Lf7_tmp, Lf7-Ltab + .long Lf7_tmp + + .text + +Lf0: .byte 0xc4,98,171,0xf6,6 + lea -8(%rsi), %rsi + lea -8(%rdi), %rdi + lea -1(%rcx), %rcx + jmp Lb0 + +Lf3: .byte 0xc4,226,179,0xf6,6 + lea 16(%rsi), %rsi + lea -48(%rdi), %rdi + jmp Lb3 + +Lf4: .byte 0xc4,98,171,0xf6,6 + lea 24(%rsi), %rsi + lea -40(%rdi), %rdi + jmp Lb4 + +Lf5: .byte 0xc4,226,179,0xf6,6 + lea 32(%rsi), %rsi + lea -32(%rdi), %rdi + jmp Lb5 + +Lf6: .byte 0xc4,98,171,0xf6,6 + lea 40(%rsi), %rsi + lea -24(%rdi), %rdi + jmp Lb6 + +Lf1: .byte 0xc4,226,179,0xf6,6 + jrcxz L1 + jmp Lb1 +L1: add (%rdi), %r9 + mov %r9, (%rdi) + adc %rcx, %rax + + ret + +Lend: .byte 0xf3,76,0x0f,0x38,0xf6,15 + mov %r9, (%rdi) + .byte 0xf3,72,0x0f,0x38,0xf6,193 + adc %rcx, %rax + + ret + + nop;nop;nop;nop + +Lf2: .byte 0xc4,98,171,0xf6,6 + lea 8(%rsi), %rsi + lea 8(%rdi), %rdi + .byte 0xc4,226,179,0xf6,6 + + .align 5, 0x90 +Ltop: .byte 0xf3,76,0x0f,0x38,0xf6,87,248 + .byte 0x66,77,0x0f,0x38,0xf6,200 + mov %r10, -8(%rdi) + jrcxz Lend +Lb1: .byte 0xc4,98,171,0xf6,70,8 + .byte 0xf3,76,0x0f,0x38,0xf6,15 + lea -1(%rcx), %rcx + mov %r9, (%rdi) + .byte 0x66,76,0x0f,0x38,0xf6,208 +Lb0: .byte 0xc4,226,179,0xf6,70,16 + .byte 0x66,77,0x0f,0x38,0xf6,200 + .byte 0xf3,76,0x0f,0x38,0xf6,87,8 + mov %r10, 8(%rdi) +Lb7: .byte 0xc4,98,171,0xf6,70,24 + lea 64(%rsi), %rsi + .byte 0x66,76,0x0f,0x38,0xf6,208 + .byte 0xf3,76,0x0f,0x38,0xf6,79,16 + mov %r9, 16(%rdi) +Lb6: .byte 0xc4,226,179,0xf6,70,224 + .byte 0xf3,76,0x0f,0x38,0xf6,87,24 + .byte 0x66,77,0x0f,0x38,0xf6,200 + mov %r10, 24(%rdi) +Lb5: .byte 0xc4,98,171,0xf6,70,232 + .byte 0x66,76,0x0f,0x38,0xf6,208 + .byte 0xf3,76,0x0f,0x38,0xf6,79,32 + mov %r9, 32(%rdi) +Lb4: .byte 0xc4,226,179,0xf6,70,240 + .byte 0xf3,76,0x0f,0x38,0xf6,87,40 + .byte 0x66,77,0x0f,0x38,0xf6,200 + mov %r10, 40(%rdi) +Lb3: .byte 0xf3,76,0x0f,0x38,0xf6,79,48 + .byte 0xc4,98,171,0xf6,70,248 + mov %r9, 48(%rdi) + lea 64(%rdi), %rdi + .byte 0x66,76,0x0f,0x38,0xf6,208 + .byte 0xc4,226,179,0xf6,6 + jmp Ltop + +Lf7: .byte 0xc4,226,179,0xf6,6 + lea -16(%rsi), %rsi + lea -16(%rdi), %rdi + jmp Lb7 + + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/addmul_2.s b/vere/ext/gmp/gen/x86_64-macos/mpn/addmul_2.s new file mode 100644 index 0000000..d2b04a9 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/addmul_2.s @@ -0,0 +1,255 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 5, 0x90 + .globl ___gmpn_addmul_2 + + +___gmpn_addmul_2: + + + push %rbx + push %rbp + push %r12 + push %r13 + + mov (%rcx), %r8 + mov 8(%rcx), %r9 + + mov %rdx, %r11 + shr $2, %r11 + + test $1, %dl + jnz Lbx1 + +Lbx0: mov (%rdi), %r12 + mov 8(%rdi), %r13 + test $2, %dl + jnz Lb10 + +Lb00: mov (%rsi), %rdx + lea 16(%rsi), %rsi + .byte 0xc4,194,251,0xf6,200 + add %rax, %r12 + .byte 0xc4,194,251,0xf6,233 + adc $0, %rcx + mov %r12, (%rdi) + add %rax, %r13 + adc $0, %rbp + mov -8(%rsi), %rdx + lea 16(%rdi), %rdi + jmp Llo0 + +Lb10: mov (%rsi), %rdx + inc %r11 + .byte 0xc4,194,251,0xf6,200 + add %rax, %r12 + adc $0, %rcx + .byte 0xc4,194,251,0xf6,233 + mov %r12, (%rdi) + mov 16(%rdi), %r12 + add %rax, %r13 + adc $0, %rbp + xor %rbx, %rbx + jmp Llo2 + +Lbx1: mov (%rdi), %r13 + mov 8(%rdi), %r12 + test $2, %dl + jnz Lb11 + +Lb01: mov (%rsi), %rdx + .byte 0xc4,66,251,0xf6,208 + add %rax, %r13 + adc $0, %r10 + .byte 0xc4,194,251,0xf6,217 + add %rax, %r12 + adc $0, %rbx + mov 8(%rsi), %rdx + mov %r13, (%rdi) + mov 16(%rdi), %r13 + .byte 0xc4,194,251,0xf6,200 + lea 24(%rdi), %rdi + lea 24(%rsi), %rsi + jmp Llo1 + +Lb11: mov (%rsi), %rdx + inc %r11 + .byte 0xc4,66,251,0xf6,208 + add %rax, %r13 + adc $0, %r10 + .byte 0xc4,194,251,0xf6,217 + add %rax, %r12 + adc $0, %rbx + mov %r13, (%rdi) + mov 8(%rsi), %rdx + .byte 0xc4,194,251,0xf6,200 + lea 8(%rdi), %rdi + lea 8(%rsi), %rsi + jmp Llo3 + + .align 4, 0x90 +Ltop: .byte 0xc4,66,251,0xf6,208 + add %rbx, %r13 + adc $0, %rbp + add %rax, %r13 + adc $0, %r10 + .byte 0xc4,194,251,0xf6,217 + add %rax, %r12 + adc $0, %rbx + lea 32(%rdi), %rdi + add %rcx, %r13 + mov -16(%rsi), %rdx + mov %r13, -24(%rdi) + adc $0, %r10 + add %rbp, %r12 + mov -8(%rdi), %r13 + .byte 0xc4,194,251,0xf6,200 + adc $0, %rbx +Llo1: add %rax, %r12 + .byte 0xc4,194,251,0xf6,233 + adc $0, %rcx + add %r10, %r12 + mov %r12, -16(%rdi) + adc $0, %rcx + add %rax, %r13 + adc $0, %rbp + add %rbx, %r13 + mov -8(%rsi), %rdx + adc $0, %rbp +Llo0: .byte 0xc4,66,251,0xf6,208 + add %rax, %r13 + adc $0, %r10 + mov (%rdi), %r12 + .byte 0xc4,194,251,0xf6,217 + add %rax, %r12 + adc $0, %rbx + add %rcx, %r13 + mov %r13, -8(%rdi) + adc $0, %r10 + mov (%rsi), %rdx + add %rbp, %r12 + .byte 0xc4,194,251,0xf6,200 + adc $0, %rbx +Llo3: add %rax, %r12 + adc $0, %rcx + .byte 0xc4,194,251,0xf6,233 + add %r10, %r12 + mov 8(%rdi), %r13 + mov %r12, (%rdi) + mov 16(%rdi), %r12 + adc $0, %rcx + add %rax, %r13 + adc $0, %rbp +Llo2: mov 8(%rsi), %rdx + lea 32(%rsi), %rsi + dec %r11 + jnz Ltop + +Lend: .byte 0xc4,66,251,0xf6,208 + add %rbx, %r13 + adc $0, %rbp + add %rax, %r13 + adc $0, %r10 + .byte 0xc4,194,235,0xf6,193 + add %rcx, %r13 + mov %r13, 8(%rdi) + adc $0, %r10 + add %rbp, %rdx + adc $0, %rax + add %r10, %rdx + mov %rdx, 16(%rdi) + adc $0, %rax + + pop %r13 + pop %r12 + pop %rbp + pop %rbx + + ret + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/and_n.s b/vere/ext/gmp/gen/x86_64-macos/mpn/and_n.s new file mode 100644 index 0000000..bb75a2c --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/and_n.s @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 5, 0x90 + .globl ___gmpn_and_n + + +___gmpn_and_n: + + + mov (%rdx), %r8 + mov %ecx, %eax + and $3, %eax + je Lb00 + cmp $2, %eax + jc Lb01 + je Lb10 + +Lb11: and (%rsi), %r8 + mov %r8, (%rdi) + inc %rcx + lea -8(%rsi), %rsi + lea -8(%rdx), %rdx + lea -8(%rdi), %rdi + jmp Le11 +Lb10: add $2, %rcx + lea -16(%rsi), %rsi + lea -16(%rdx), %rdx + lea -16(%rdi), %rdi + jmp Le10 +Lb01: and (%rsi), %r8 + mov %r8, (%rdi) + dec %rcx + jz Lret + lea 8(%rsi), %rsi + lea 8(%rdx), %rdx + lea 8(%rdi), %rdi + + .align 4, 0x90 +Ltop: mov (%rdx), %r8 +Lb00: mov 8(%rdx), %r9 + and (%rsi), %r8 + and 8(%rsi), %r9 + mov %r8, (%rdi) + mov %r9, 8(%rdi) +Le11: mov 16(%rdx), %r8 +Le10: mov 24(%rdx), %r9 + lea 32(%rdx), %rdx + and 16(%rsi), %r8 + and 24(%rsi), %r9 + lea 32(%rsi), %rsi + mov %r8, 16(%rdi) + mov %r9, 24(%rdi) + lea 32(%rdi), %rdi + sub $4, %rcx + jnz Ltop + +Lret: + ret + + + + + + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/andn_n.s b/vere/ext/gmp/gen/x86_64-macos/mpn/andn_n.s new file mode 100644 index 0000000..704eaa3 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/andn_n.s @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 5, 0x90 + .globl ___gmpn_andn_n + + +___gmpn_andn_n: + + + mov (%rdx), %r8 + not %r8 + mov %ecx, %eax + and $3, %eax + je Lb00 + cmp $2, %eax + jc Lb01 + je Lb10 + +Lb11: and (%rsi), %r8 + mov %r8, (%rdi) + inc %rcx + lea -8(%rsi), %rsi + lea -8(%rdx), %rdx + lea -8(%rdi), %rdi + jmp Le11 +Lb10: add $2, %rcx + lea -16(%rsi), %rsi + lea -16(%rdx), %rdx + lea -16(%rdi), %rdi + jmp Le10 +Lb01: and (%rsi), %r8 + mov %r8, (%rdi) + dec %rcx + jz Lret + lea 8(%rsi), %rsi + lea 8(%rdx), %rdx + lea 8(%rdi), %rdi + + .align 4, 0x90 +Ltop: mov (%rdx), %r8 + not %r8 +Lb00: mov 8(%rdx), %r9 + not %r9 + and (%rsi), %r8 + and 8(%rsi), %r9 + mov %r8, (%rdi) + mov %r9, 8(%rdi) +Le11: mov 16(%rdx), %r8 + not %r8 +Le10: mov 24(%rdx), %r9 + not %r9 + lea 32(%rdx), %rdx + and 16(%rsi), %r8 + and 24(%rsi), %r9 + lea 32(%rsi), %rsi + mov %r8, 16(%rdi) + mov %r9, 24(%rdi) + lea 32(%rdi), %rdi + sub $4, %rcx + jnz Ltop + +Lret: + ret + + + + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/bdiv_dbm1c.s b/vere/ext/gmp/gen/x86_64-macos/mpn/bdiv_dbm1c.s new file mode 100644 index 0000000..b4e7295 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/bdiv_dbm1c.s @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4, 0x90 + .globl ___gmpn_bdiv_dbm1c + + +___gmpn_bdiv_dbm1c: + + + + mov (%rsi), %rax + mov %rdx, %r9 + mov %edx, %r11d + mul %rcx + lea (%rsi,%r9,8), %rsi + lea (%rdi,%r9,8), %rdi + neg %r9 + and $3, %r11d + jz Llo0 + lea -4(%r9,%r11), %r9 + cmp $2, %r11d + jc Llo1 + jz Llo2 + jmp Llo3 + + .align 4, 0x90 +Ltop: mov (%rsi,%r9,8), %rax + mul %rcx +Llo0: sub %rax, %r8 + mov %r8, (%rdi,%r9,8) + sbb %rdx, %r8 + mov 8(%rsi,%r9,8), %rax + mul %rcx +Llo3: sub %rax, %r8 + mov %r8, 8(%rdi,%r9,8) + sbb %rdx, %r8 + mov 16(%rsi,%r9,8), %rax + mul %rcx +Llo2: sub %rax, %r8 + mov %r8, 16(%rdi,%r9,8) + sbb %rdx, %r8 + mov 24(%rsi,%r9,8), %rax + mul %rcx +Llo1: sub %rax, %r8 + mov %r8, 24(%rdi,%r9,8) + sbb %rdx, %r8 + add $4, %r9 + jnz Ltop + + mov %r8, %rax + + ret + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/bdiv_q_1.s b/vere/ext/gmp/gen/x86_64-macos/mpn/bdiv_q_1.s new file mode 100644 index 0000000..c21f024 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/bdiv_q_1.s @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4, 0x90 + .globl ___gmpn_bdiv_q_1 + + +___gmpn_bdiv_q_1: + + + push %rbx + + mov %rcx, %rax + xor %ecx, %ecx + mov %rdx, %r10 + + bt $0, %eax + jnc Levn + +Lodd: mov %rax, %rbx + shr %eax + and $127, %eax + + lea ___gmp_binvert_limb_table(%rip), %rdx + + + + movzbl (%rdx,%rax), %eax + + mov %rbx, %r11 + + lea (%rax,%rax), %edx + imul %eax, %eax + imul %ebx, %eax + sub %eax, %edx + + lea (%rdx,%rdx), %eax + imul %edx, %edx + imul %ebx, %edx + sub %edx, %eax + + lea (%rax,%rax), %r8 + imul %rax, %rax + imul %rbx, %rax + sub %rax, %r8 + + jmp Lpi1 + +Levn: bsf %rax, %rcx + shr %cl, %rax + jmp Lodd + + + .globl ___gmpn_pi1_bdiv_q_1 + + +___gmpn_pi1_bdiv_q_1: + + + + + push %rbx + + mov %rcx, %r11 + mov %rdx, %r10 + mov %r9, %rcx + +Lpi1: mov (%rsi), %rax + + dec %r10 + jz Lone + + lea 8(%rsi,%r10,8), %rsi + lea (%rdi,%r10,8), %rdi + neg %r10 + + test %ecx, %ecx + jnz Lunorm + xor %ebx, %ebx + jmp Lnent + + .align 3, 0x90 +Lntop:mul %r11 + mov -8(%rsi,%r10,8), %rax + sub %rbx, %rax + setc %bl + sub %rdx, %rax + adc $0, %ebx +Lnent:imul %r8, %rax + mov %rax, (%rdi,%r10,8) + inc %r10 + jnz Lntop + + mov -8(%rsi), %r9 + jmp Lcom + +Lunorm: + mov (%rsi,%r10,8), %r9 + shr %cl, %rax + neg %ecx + shl %cl, %r9 + neg %ecx + or %r9, %rax + xor %ebx, %ebx + jmp Luent + + .align 3, 0x90 +Lutop:mul %r11 + mov (%rsi,%r10,8), %rax + shl %cl, %rax + neg %ecx + or %r9, %rax + sub %rbx, %rax + setc %bl + sub %rdx, %rax + adc $0, %ebx +Luent:imul %r8, %rax + mov (%rsi,%r10,8), %r9 + shr %cl, %r9 + neg %ecx + mov %rax, (%rdi,%r10,8) + inc %r10 + jnz Lutop + +Lcom: mul %r11 + sub %rbx, %r9 + sub %rdx, %r9 + imul %r8, %r9 + mov %r9, (%rdi) + pop %rbx + + ret + +Lone: shr %cl, %rax + imul %r8, %rax + mov %rax, (%rdi) + pop %rbx + + ret + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/cnd_add_n.s b/vere/ext/gmp/gen/x86_64-macos/mpn/cnd_add_n.s new file mode 100644 index 0000000..274a59f --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/cnd_add_n.s @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4, 0x90 + .globl ___gmpn_cnd_add_n + + +___gmpn_cnd_add_n: + + + + push %rbx + + neg %rdi + sbb %rbx, %rbx + + test $1, %r8b + jz Lx0 +Lx1: test $2, %r8b + jz Lb1 + +Lb3: mov (%rcx), %rdi + mov 8(%rcx), %r9 + mov 16(%rcx), %r10 + and %rbx, %rdi + and %rbx, %r9 + and %rbx, %r10 + add (%rdx), %rdi + mov %rdi, (%rsi) + adc 8(%rdx), %r9 + mov %r9, 8(%rsi) + adc 16(%rdx), %r10 + mov %r10, 16(%rsi) + sbb %eax, %eax + lea 24(%rdx), %rdx + lea 24(%rcx), %rcx + lea 24(%rsi), %rsi + sub $3, %r8 + jnz Ltop + jmp Lend + +Lx0: xor %eax, %eax + test $2, %r8b + jz Ltop + +Lb2: mov (%rcx), %rdi + mov 8(%rcx), %r9 + and %rbx, %rdi + and %rbx, %r9 + add (%rdx), %rdi + mov %rdi, (%rsi) + adc 8(%rdx), %r9 + mov %r9, 8(%rsi) + sbb %eax, %eax + lea 16(%rdx), %rdx + lea 16(%rcx), %rcx + lea 16(%rsi), %rsi + sub $2, %r8 + jnz Ltop + jmp Lend + +Lb1: mov (%rcx), %rdi + and %rbx, %rdi + add (%rdx), %rdi + mov %rdi, (%rsi) + sbb %eax, %eax + lea 8(%rdx), %rdx + lea 8(%rcx), %rcx + lea 8(%rsi), %rsi + dec %r8 + jz Lend + + .align 4, 0x90 +Ltop: mov (%rcx), %rdi + mov 8(%rcx), %r9 + mov 16(%rcx), %r10 + mov 24(%rcx), %r11 + lea 32(%rcx), %rcx + and %rbx, %rdi + and %rbx, %r9 + and %rbx, %r10 + and %rbx, %r11 + add %eax, %eax + adc (%rdx), %rdi + mov %rdi, (%rsi) + adc 8(%rdx), %r9 + mov %r9, 8(%rsi) + adc 16(%rdx), %r10 + mov %r10, 16(%rsi) + adc 24(%rdx), %r11 + lea 32(%rdx), %rdx + mov %r11, 24(%rsi) + lea 32(%rsi), %rsi + sbb %eax, %eax + sub $4, %r8 + jnz Ltop + +Lend: neg %eax + pop %rbx + + ret + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/cnd_sub_n.s b/vere/ext/gmp/gen/x86_64-macos/mpn/cnd_sub_n.s new file mode 100644 index 0000000..79ac5c3 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/cnd_sub_n.s @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4, 0x90 + .globl ___gmpn_cnd_sub_n + + +___gmpn_cnd_sub_n: + + + + push %rbx + push %rbp + push %r12 + push %r13 + + neg %rdi + sbb %rbx, %rbx + + test $1, %r8b + jz Lx0 +Lx1: test $2, %r8b + jz Lb1 + +Lb3: mov (%rcx), %rdi + mov 8(%rcx), %r9 + mov 16(%rcx), %r10 + and %rbx, %rdi + mov (%rdx), %r12 + and %rbx, %r9 + mov 8(%rdx), %r13 + and %rbx, %r10 + mov 16(%rdx), %rbp + sub %rdi, %r12 + mov %r12, (%rsi) + sbb %r9, %r13 + mov %r13, 8(%rsi) + sbb %r10, %rbp + mov %rbp, 16(%rsi) + sbb %eax, %eax + lea 24(%rdx), %rdx + lea 24(%rcx), %rcx + lea 24(%rsi), %rsi + sub $3, %r8 + jnz Ltop + jmp Lend + +Lx0: xor %eax, %eax + test $2, %r8b + jz Ltop + +Lb2: mov (%rcx), %rdi + mov 8(%rcx), %r9 + mov (%rdx), %r12 + and %rbx, %rdi + mov 8(%rdx), %r13 + and %rbx, %r9 + sub %rdi, %r12 + mov %r12, (%rsi) + sbb %r9, %r13 + mov %r13, 8(%rsi) + sbb %eax, %eax + lea 16(%rdx), %rdx + lea 16(%rcx), %rcx + lea 16(%rsi), %rsi + sub $2, %r8 + jnz Ltop + jmp Lend + +Lb1: mov (%rcx), %rdi + mov (%rdx), %r12 + and %rbx, %rdi + sub %rdi, %r12 + mov %r12, (%rsi) + sbb %eax, %eax + lea 8(%rdx), %rdx + lea 8(%rcx), %rcx + lea 8(%rsi), %rsi + dec %r8 + jz Lend + + .align 4, 0x90 +Ltop: mov (%rcx), %rdi + mov 8(%rcx), %r9 + mov 16(%rcx), %r10 + mov 24(%rcx), %r11 + lea 32(%rcx), %rcx + and %rbx, %rdi + mov (%rdx), %r12 + and %rbx, %r9 + mov 8(%rdx), %r13 + and %rbx, %r10 + mov 16(%rdx), %rbp + and %rbx, %r11 + add %eax, %eax + mov 24(%rdx), %rax + lea 32(%rdx), %rdx + sbb %rdi, %r12 + mov %r12, (%rsi) + sbb %r9, %r13 + mov %r13, 8(%rsi) + sbb %r10, %rbp + mov %rbp, 16(%rsi) + sbb %r11, %rax + mov %rax, 24(%rsi) + lea 32(%rsi), %rsi + sbb %eax, %eax + sub $4, %r8 + jnz Ltop + +Lend: neg %eax + pop %r13 + pop %r12 + pop %rbp + pop %rbx + + ret + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/com.s b/vere/ext/gmp/gen/x86_64-macos/mpn/com.s new file mode 100644 index 0000000..bfac7e2 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/com.s @@ -0,0 +1,335 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 6, 0x90 + .globl ___gmpn_com + + +___gmpn_com: + + + + cmp $7, %rdx + jbe Lbc + + pcmpeqb %xmm5, %xmm5 + + test $8, %dil + jz Lrp_aligned + + mov (%rsi), %r8 + lea 8(%rsi), %rsi + not %r8 + mov %r8, (%rdi) + lea 8(%rdi), %rdi + dec %rdx + +Lrp_aligned: + test $8, %sil + jnz Luent + + jmp Lam + + .align 4, 0x90 +Latop:movaps 0(%rsi), %xmm0 + movaps 16(%rsi), %xmm1 + movaps 32(%rsi), %xmm2 + movaps 48(%rsi), %xmm3 + lea 64(%rsi), %rsi + pxor %xmm5, %xmm0 + pxor %xmm5, %xmm1 + pxor %xmm5, %xmm2 + pxor %xmm5, %xmm3 + movaps %xmm0, (%rdi) + movaps %xmm1, 16(%rdi) + movaps %xmm2, 32(%rdi) + movaps %xmm3, 48(%rdi) + lea 64(%rdi), %rdi +Lam: sub $8, %rdx + jnc Latop + + test $4, %dl + jz 1f + movaps (%rsi), %xmm0 + movaps 16(%rsi), %xmm1 + lea 32(%rsi), %rsi + pxor %xmm5, %xmm0 + pxor %xmm5, %xmm1 + movaps %xmm0, (%rdi) + movaps %xmm1, 16(%rdi) + lea 32(%rdi), %rdi + +1: test $2, %dl + jz 1f + movaps (%rsi), %xmm0 + lea 16(%rsi), %rsi + pxor %xmm5, %xmm0 + movaps %xmm0, (%rdi) + lea 16(%rdi), %rdi + +1: test $1, %dl + jz 1f + mov (%rsi), %r8 + not %r8 + mov %r8, (%rdi) + +1: + ret + +Luent: + + + + + lea -40(%rsi), %rax + sub %rdi, %rax + cmp $80, %rax + jbe Lbc + + sub $16, %rdx + jc Luend + + movaps 120(%rsi), %xmm3 + + sub $16, %rdx + jmp Lum + + .align 4, 0x90 +Lutop:movaps 120(%rsi), %xmm3 + pxor %xmm5, %xmm0 + movaps %xmm0, -128(%rdi) + sub $16, %rdx +Lum: movaps 104(%rsi), %xmm2 + .byte 0x66,0x0f,0x3a,0x0f,218,8 + movaps 88(%rsi), %xmm1 + pxor %xmm5, %xmm3 + movaps %xmm3, 112(%rdi) + .byte 0x66,0x0f,0x3a,0x0f,209,8 + movaps 72(%rsi), %xmm0 + pxor %xmm5, %xmm2 + movaps %xmm2, 96(%rdi) + .byte 0x66,0x0f,0x3a,0x0f,200,8 + movaps 56(%rsi), %xmm3 + pxor %xmm5, %xmm1 + movaps %xmm1, 80(%rdi) + .byte 0x66,0x0f,0x3a,0x0f,195,8 + movaps 40(%rsi), %xmm2 + pxor %xmm5, %xmm0 + movaps %xmm0, 64(%rdi) + .byte 0x66,0x0f,0x3a,0x0f,218,8 + movaps 24(%rsi), %xmm1 + pxor %xmm5, %xmm3 + movaps %xmm3, 48(%rdi) + .byte 0x66,0x0f,0x3a,0x0f,209,8 + movaps 8(%rsi), %xmm0 + pxor %xmm5, %xmm2 + movaps %xmm2, 32(%rdi) + .byte 0x66,0x0f,0x3a,0x0f,200,8 + movaps -8(%rsi), %xmm3 + pxor %xmm5, %xmm1 + movaps %xmm1, 16(%rdi) + .byte 0x66,0x0f,0x3a,0x0f,195,8 + lea 128(%rsi), %rsi + lea 128(%rdi), %rdi + jnc Lutop + + pxor %xmm5, %xmm0 + movaps %xmm0, -128(%rdi) + +Luend:test $8, %dl + jz 1f + movaps 56(%rsi), %xmm3 + movaps 40(%rsi), %xmm2 + .byte 0x66,0x0f,0x3a,0x0f,218,8 + movaps 24(%rsi), %xmm1 + pxor %xmm5, %xmm3 + movaps %xmm3, 48(%rdi) + .byte 0x66,0x0f,0x3a,0x0f,209,8 + movaps 8(%rsi), %xmm0 + pxor %xmm5, %xmm2 + movaps %xmm2, 32(%rdi) + .byte 0x66,0x0f,0x3a,0x0f,200,8 + movaps -8(%rsi), %xmm3 + pxor %xmm5, %xmm1 + movaps %xmm1, 16(%rdi) + .byte 0x66,0x0f,0x3a,0x0f,195,8 + lea 64(%rsi), %rsi + pxor %xmm5, %xmm0 + movaps %xmm0, (%rdi) + lea 64(%rdi), %rdi + +1: test $4, %dl + jz 1f + movaps 24(%rsi), %xmm1 + movaps 8(%rsi), %xmm0 + .byte 0x66,0x0f,0x3a,0x0f,200,8 + movaps -8(%rsi), %xmm3 + pxor %xmm5, %xmm1 + movaps %xmm1, 16(%rdi) + .byte 0x66,0x0f,0x3a,0x0f,195,8 + lea 32(%rsi), %rsi + pxor %xmm5, %xmm0 + movaps %xmm0, (%rdi) + lea 32(%rdi), %rdi + +1: test $2, %dl + jz 1f + movaps 8(%rsi), %xmm0 + movaps -8(%rsi), %xmm3 + .byte 0x66,0x0f,0x3a,0x0f,195,8 + lea 16(%rsi), %rsi + pxor %xmm5, %xmm0 + movaps %xmm0, (%rdi) + lea 16(%rdi), %rdi + +1: test $1, %dl + jz 1f + mov (%rsi), %r8 + not %r8 + mov %r8, (%rdi) + +1: + ret + + + + +Lbc: lea -8(%rdi), %rdi + sub $4, %edx + jc Lend + + .align 4, 0x90 +Ltop: mov (%rsi), %r8 + mov 8(%rsi), %r9 + lea 32(%rdi), %rdi + mov 16(%rsi), %r10 + mov 24(%rsi), %r11 + lea 32(%rsi), %rsi + not %r8 + not %r9 + not %r10 + not %r11 + mov %r8, -24(%rdi) + mov %r9, -16(%rdi) + sub $4, %edx + mov %r10, -8(%rdi) + mov %r11, (%rdi) + jnc Ltop + +Lend: test $1, %dl + jz 1f + mov (%rsi), %r8 + not %r8 + mov %r8, 8(%rdi) + lea 8(%rdi), %rdi + lea 8(%rsi), %rsi +1: test $2, %dl + jz 1f + mov (%rsi), %r8 + mov 8(%rsi), %r9 + not %r8 + not %r9 + mov %r8, 8(%rdi) + mov %r9, 16(%rdi) +1: + ret + + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/copyd.s b/vere/ext/gmp/gen/x86_64-macos/mpn/copyd.s new file mode 100644 index 0000000..eced825 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/copyd.s @@ -0,0 +1,279 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 6, 0x90 + .globl ___gmpn_copyd + + +___gmpn_copyd: + + + + lea -8(%rsi,%rdx,8), %rsi + lea -8(%rdi,%rdx,8), %rdi + + cmp $7, %rdx + jbe Lbc + + test $8, %dil + jnz Lrp_aligned + + mov (%rsi), %rax + mov %rax, (%rdi) + lea -8(%rsi), %rsi + lea -8(%rdi), %rdi + dec %rdx + +Lrp_aligned: + test $8, %sil + jz Luent + + jmp Lam + + .align 4, 0x90 +Latop:movaps -8(%rsi), %xmm0 + movaps -24(%rsi), %xmm1 + movaps -40(%rsi), %xmm2 + movaps -56(%rsi), %xmm3 + lea -64(%rsi), %rsi + movaps %xmm0, -8(%rdi) + movaps %xmm1, -24(%rdi) + movaps %xmm2, -40(%rdi) + movaps %xmm3, -56(%rdi) + lea -64(%rdi), %rdi +Lam: sub $8, %rdx + jnc Latop + + test $4, %dl + jz 1f + movaps -8(%rsi), %xmm0 + movaps -24(%rsi), %xmm1 + lea -32(%rsi), %rsi + movaps %xmm0, -8(%rdi) + movaps %xmm1, -24(%rdi) + lea -32(%rdi), %rdi + +1: test $2, %dl + jz 1f + movaps -8(%rsi), %xmm0 + lea -16(%rsi), %rsi + movaps %xmm0, -8(%rdi) + lea -16(%rdi), %rdi + +1: test $1, %dl + jz 1f + mov (%rsi), %r8 + mov %r8, (%rdi) + +1: + ret + +Luent:sub $16, %rdx + movaps (%rsi), %xmm0 + jc Luend + + .align 4, 0x90 +Lutop:sub $16, %rdx + movaps -16(%rsi), %xmm1 + .byte 0x66,0x0f,0x3a,0x0f,193,8 + movaps %xmm0, -8(%rdi) + movaps -32(%rsi), %xmm2 + .byte 0x66,0x0f,0x3a,0x0f,202,8 + movaps %xmm1, -24(%rdi) + movaps -48(%rsi), %xmm3 + .byte 0x66,0x0f,0x3a,0x0f,211,8 + movaps %xmm2, -40(%rdi) + movaps -64(%rsi), %xmm0 + .byte 0x66,0x0f,0x3a,0x0f,216,8 + movaps %xmm3, -56(%rdi) + movaps -80(%rsi), %xmm1 + .byte 0x66,0x0f,0x3a,0x0f,193,8 + movaps %xmm0, -72(%rdi) + movaps -96(%rsi), %xmm2 + .byte 0x66,0x0f,0x3a,0x0f,202,8 + movaps %xmm1, -88(%rdi) + movaps -112(%rsi), %xmm3 + .byte 0x66,0x0f,0x3a,0x0f,211,8 + movaps %xmm2, -104(%rdi) + movaps -128(%rsi), %xmm0 + .byte 0x66,0x0f,0x3a,0x0f,216,8 + movaps %xmm3, -120(%rdi) + lea -128(%rsi), %rsi + lea -128(%rdi), %rdi + jnc Lutop + +Luend:test $8, %dl + jz 1f + movaps -16(%rsi), %xmm1 + .byte 0x66,0x0f,0x3a,0x0f,193,8 + movaps %xmm0, -8(%rdi) + movaps -32(%rsi), %xmm0 + .byte 0x66,0x0f,0x3a,0x0f,200,8 + movaps %xmm1, -24(%rdi) + movaps -48(%rsi), %xmm1 + .byte 0x66,0x0f,0x3a,0x0f,193,8 + movaps %xmm0, -40(%rdi) + movaps -64(%rsi), %xmm0 + .byte 0x66,0x0f,0x3a,0x0f,200,8 + movaps %xmm1, -56(%rdi) + lea -64(%rsi), %rsi + lea -64(%rdi), %rdi + +1: test $4, %dl + jz 1f + movaps -16(%rsi), %xmm1 + .byte 0x66,0x0f,0x3a,0x0f,193,8 + movaps %xmm0, -8(%rdi) + movaps -32(%rsi), %xmm0 + .byte 0x66,0x0f,0x3a,0x0f,200,8 + movaps %xmm1, -24(%rdi) + lea -32(%rsi), %rsi + lea -32(%rdi), %rdi + +1: test $2, %dl + jz 1f + movaps -16(%rsi), %xmm1 + .byte 0x66,0x0f,0x3a,0x0f,193,8 + movaps %xmm0, -8(%rdi) + lea -16(%rsi), %rsi + lea -16(%rdi), %rdi + +1: test $1, %dl + jz 1f + mov (%rsi), %r8 + mov %r8, (%rdi) + +1: + ret + + + + +Lbc: sub $4, %edx + jc Lend + + .align 4, 0x90 +Ltop: mov (%rsi), %r8 + mov -8(%rsi), %r9 + lea -32(%rdi), %rdi + mov -16(%rsi), %r10 + mov -24(%rsi), %r11 + lea -32(%rsi), %rsi + mov %r8, 32(%rdi) + mov %r9, 24(%rdi) + + mov %r10, 16(%rdi) + mov %r11, 8(%rdi) + + +Lend: test $1, %dl + jz 1f + mov (%rsi), %r8 + mov %r8, (%rdi) + lea -8(%rdi), %rdi + lea -8(%rsi), %rsi +1: test $2, %dl + jz 1f + mov (%rsi), %r8 + mov -8(%rsi), %r9 + mov %r8, (%rdi) + mov %r9, -8(%rdi) +1: + ret + + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/copyi.s b/vere/ext/gmp/gen/x86_64-macos/mpn/copyi.s new file mode 100644 index 0000000..9f77e50 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/copyi.s @@ -0,0 +1,324 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 6, 0x90 + .globl ___gmpn_copyi + + +___gmpn_copyi: + + + + cmp $7, %rdx + jbe Lbc + + test $8, %dil + jz Lrp_aligned + + movsq + dec %rdx + +Lrp_aligned: + test $8, %sil + jnz Luent + + jmp Lam + + .align 4, 0x90 +Latop:movdqa 0(%rsi), %xmm0 + movdqa 16(%rsi), %xmm1 + movdqa 32(%rsi), %xmm2 + movdqa 48(%rsi), %xmm3 + lea 64(%rsi), %rsi + movdqa %xmm0, (%rdi) + movdqa %xmm1, 16(%rdi) + movdqa %xmm2, 32(%rdi) + movdqa %xmm3, 48(%rdi) + lea 64(%rdi), %rdi +Lam: sub $8, %rdx + jnc Latop + + test $4, %dl + jz 1f + movdqa (%rsi), %xmm0 + movdqa 16(%rsi), %xmm1 + lea 32(%rsi), %rsi + movdqa %xmm0, (%rdi) + movdqa %xmm1, 16(%rdi) + lea 32(%rdi), %rdi + +1: test $2, %dl + jz 1f + movdqa (%rsi), %xmm0 + lea 16(%rsi), %rsi + movdqa %xmm0, (%rdi) + lea 16(%rdi), %rdi + +1: test $1, %dl + jz 1f + mov (%rsi), %r8 + mov %r8, (%rdi) + +1: + ret + +Luent: + + + cmp $16, %rdx + jc Lued0 + + + + + + + movaps 120(%rsi), %xmm7 + movaps 104(%rsi), %xmm6 + movaps 88(%rsi), %xmm5 + movaps 72(%rsi), %xmm4 + movaps 56(%rsi), %xmm3 + movaps 40(%rsi), %xmm2 + lea 128(%rsi), %rsi + sub $32, %rdx + jc Lued1 + + .align 4, 0x90 +Lutop:movaps -104(%rsi), %xmm1 + sub $16, %rdx + movaps -120(%rsi), %xmm0 + .byte 0x66,0x0f,0x3a,0x0f,254,8 + movaps -136(%rsi), %xmm8 + movdqa %xmm7, 112(%rdi) + .byte 0x66,0x0f,0x3a,0x0f,245,8 + movaps 120(%rsi), %xmm7 + movdqa %xmm6, 96(%rdi) + .byte 0x66,0x0f,0x3a,0x0f,236,8 + movaps 104(%rsi), %xmm6 + movdqa %xmm5, 80(%rdi) + .byte 0x66,0x0f,0x3a,0x0f,227,8 + movaps 88(%rsi), %xmm5 + movdqa %xmm4, 64(%rdi) + .byte 0x66,0x0f,0x3a,0x0f,218,8 + movaps 72(%rsi), %xmm4 + movdqa %xmm3, 48(%rdi) + .byte 0x66,0x0f,0x3a,0x0f,209,8 + movaps 56(%rsi), %xmm3 + movdqa %xmm2, 32(%rdi) + .byte 0x66,0x0f,0x3a,0x0f,200,8 + movaps 40(%rsi), %xmm2 + movdqa %xmm1, 16(%rdi) + .byte 0x66,65,0x0f,0x3a,0x0f,192,8 + lea 128(%rsi), %rsi + movdqa %xmm0, (%rdi) + lea 128(%rdi), %rdi + jnc Lutop + +Lued1:movaps -104(%rsi), %xmm1 + movaps -120(%rsi), %xmm0 + movaps -136(%rsi), %xmm8 + .byte 0x66,0x0f,0x3a,0x0f,254,8 + movdqa %xmm7, 112(%rdi) + .byte 0x66,0x0f,0x3a,0x0f,245,8 + movdqa %xmm6, 96(%rdi) + .byte 0x66,0x0f,0x3a,0x0f,236,8 + movdqa %xmm5, 80(%rdi) + .byte 0x66,0x0f,0x3a,0x0f,227,8 + movdqa %xmm4, 64(%rdi) + .byte 0x66,0x0f,0x3a,0x0f,218,8 + movdqa %xmm3, 48(%rdi) + .byte 0x66,0x0f,0x3a,0x0f,209,8 + movdqa %xmm2, 32(%rdi) + .byte 0x66,0x0f,0x3a,0x0f,200,8 + movdqa %xmm1, 16(%rdi) + .byte 0x66,65,0x0f,0x3a,0x0f,192,8 + movdqa %xmm0, (%rdi) + lea 128(%rdi), %rdi + + + + + + +Lued0:test $8, %dl + jz 1f + movaps 56(%rsi), %xmm3 + movaps 40(%rsi), %xmm2 + movaps 24(%rsi), %xmm1 + movaps 8(%rsi), %xmm0 + movaps -8(%rsi), %xmm4 + .byte 0x66,0x0f,0x3a,0x0f,218,8 + movdqa %xmm3, 48(%rdi) + .byte 0x66,0x0f,0x3a,0x0f,209,8 + movdqa %xmm2, 32(%rdi) + .byte 0x66,0x0f,0x3a,0x0f,200,8 + movdqa %xmm1, 16(%rdi) + .byte 0x66,0x0f,0x3a,0x0f,196,8 + lea 64(%rsi), %rsi + movdqa %xmm0, (%rdi) + lea 64(%rdi), %rdi + +1: test $4, %dl + jz 1f + movaps 24(%rsi), %xmm1 + movaps 8(%rsi), %xmm0 + .byte 0x66,0x0f,0x3a,0x0f,200,8 + movaps -8(%rsi), %xmm3 + movdqa %xmm1, 16(%rdi) + .byte 0x66,0x0f,0x3a,0x0f,195,8 + lea 32(%rsi), %rsi + movdqa %xmm0, (%rdi) + lea 32(%rdi), %rdi + +1: test $2, %dl + jz 1f + movdqa 8(%rsi), %xmm0 + movdqa -8(%rsi), %xmm3 + .byte 0x66,0x0f,0x3a,0x0f,195,8 + lea 16(%rsi), %rsi + movdqa %xmm0, (%rdi) + lea 16(%rdi), %rdi + +1: test $1, %dl + jz 1f + mov (%rsi), %r8 + mov %r8, (%rdi) + +1: + ret + + + + +Lbc: lea -8(%rdi), %rdi + sub $4, %edx + jc Lend + + .align 4, 0x90 +Ltop: mov (%rsi), %r8 + mov 8(%rsi), %r9 + lea 32(%rdi), %rdi + mov 16(%rsi), %r10 + mov 24(%rsi), %r11 + lea 32(%rsi), %rsi + mov %r8, -24(%rdi) + mov %r9, -16(%rdi) + + mov %r10, -8(%rdi) + mov %r11, (%rdi) + + +Lend: test $1, %dl + jz 1f + mov (%rsi), %r8 + mov %r8, 8(%rdi) + lea 8(%rdi), %rdi + lea 8(%rsi), %rsi +1: test $2, %dl + jz 1f + mov (%rsi), %r8 + mov 8(%rsi), %r9 + mov %r8, 8(%rdi) + mov %r9, 16(%rdi) +1: + ret + + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/div_qr_1n_pi1.s b/vere/ext/gmp/gen/x86_64-macos/mpn/div_qr_1n_pi1.s new file mode 100644 index 0000000..5ca7107 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/div_qr_1n_pi1.s @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4, 0x90 + .globl ___gmpn_div_qr_1n_pi1 + + +___gmpn_div_qr_1n_pi1: + + + + + dec %rdx + jnz Lfirst + + + + lea 1(%rcx), %r10 + mov %rcx, %rax + mul %r9 + mov (%rsi), %r11 + add %r11, %rax + adc %r10, %rdx + mov %rdx, %r10 + imul %r8, %rdx + sub %rdx, %r11 + cmp %r11, %rax + lea (%r11, %r8), %rax + cmovnc %r11, %rax + sbb $0, %r10 + cmp %r8, %rax + jc Lsingle_div_done + sub %r8, %rax + add $1, %r10 +Lsingle_div_done: + mov %r10, (%rdi) + + ret +Lfirst: + + push %r15 + push %r14 + push %r13 + push %r12 + push %rbx + push %rbp + + mov %r8, %rbp + imul %r9, %rbp + neg %rbp + mov %rbp, %rbx + sub %r8, %rbx + + + push %r8 + mov %rdx, %r8 + + mov %r9, %rax + mul %rcx + mov %rax, %r13 + add %rcx, %rdx + mov %rdx, %r10 + + mov %rbp, %rax + mul %rcx + mov -8(%rsi, %r8, 8), %r11 + mov (%rsi, %r8, 8), %rcx + mov %r10, (%rdi, %r8, 8) + add %rax, %r11 + adc %rdx, %rcx + sbb %r12, %r12 + dec %r8 + mov %rcx, %rax + jz Lfinal + + .align 4, 0x90 + + + +Lloop: + + + mov %r9, %r14 + mov %r12, %r15 + and %r12, %r14 + neg %r15 + mul %r9 + add %rdx, %r14 + adc $0, %r15 + add %r13, %r14 + mov %rax, %r13 + mov %rbp, %rax + lea (%rbx, %r11), %r10 + adc $0, %r15 + + + mul %rcx + and %rbp, %r12 + add %r12, %r11 + cmovnc %r11, %r10 + + + adc %rcx, %r14 + mov -8(%rsi, %r8, 8), %r11 + adc %r15, 8(%rdi, %r8, 8) + jc Lq_incr +Lq_incr_done: + add %rax, %r11 + mov %r10, %rax + adc %rdx, %rax + mov %r14, (%rdi, %r8, 8) + sbb %r12, %r12 + dec %r8 + mov %rax, %rcx + jnz Lloop + +Lfinal: + pop %r8 + + mov %r12, %r14 + and %r8, %r12 + sub %r12, %rax + neg %r14 + + mov %rax, %rcx + sub %r8, %rax + cmovc %rcx, %rax + sbb $-1, %r14 + + lea 1(%rax), %r10 + mul %r9 + add %r11, %rax + adc %r10, %rdx + mov %rdx, %r10 + imul %r8, %rdx + sub %rdx, %r11 + cmp %r11, %rax + lea (%r11, %r8), %rax + cmovnc %r11, %rax + sbb $0, %r10 + cmp %r8, %rax + jc Ldiv_done + sub %r8, %rax + add $1, %r10 +Ldiv_done: + add %r10, %r13 + mov %r13, (%rdi) + adc %r14, 8(%rdi) + jnc Ldone +Lfinal_q_incr: + addq $1, 16(%rdi) + lea 8(%rdi), %rdi + jc Lfinal_q_incr + +Ldone: + pop %rbp + pop %rbx + pop %r12 + pop %r13 + pop %r14 + pop %r15 + + ret + +Lq_incr: + + lea 16(%rdi, %r8, 8), %rcx +Lq_incr_loop: + addq $1, (%rcx) + jnc Lq_incr_done + lea 8(%rcx), %rcx + jmp Lq_incr_loop + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/div_qr_2n_pi1.s b/vere/ext/gmp/gen/x86_64-macos/mpn/div_qr_2n_pi1.s new file mode 100644 index 0000000..1334c1e --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/div_qr_2n_pi1.s @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4, 0x90 + .globl ___gmpn_div_qr_2n_pi1 + + +___gmpn_div_qr_2n_pi1: + + + + + + mov 8(%rsp), %r10 + mov %rdx, %r11 + push %r15 + push %r14 + push %r13 + push %r12 + push %rbx + + mov -16(%r11, %rcx, 8), %r12 + mov -8(%r11, %rcx, 8), %rbx + + mov %r12, %r14 + mov %rbx, %r13 + sub %r9, %r14 + sbb %r8, %r13 + cmovnc %r14, %r12 + cmovnc %r13, %rbx + + sbb %rax, %rax + inc %rax + push %rax + lea -2(%rcx), %rcx + mov %r8, %r15 + neg %r15 + + jmp Lnext + + .align 4, 0x90 +Lloop: + + + + mov %r10, %rax + mul %rbx + mov %r12, %r14 + add %rax, %r14 + adc %rbx, %rdx + mov %rdx, %r13 + imul %r15, %rdx + mov %r9, %rax + lea (%rdx, %r12), %rbx + mul %r13 + mov (%r11, %rcx, 8), %r12 + sub %r9, %r12 + sbb %r8, %rbx + sub %rax, %r12 + sbb %rdx, %rbx + xor %eax, %eax + xor %edx, %edx + cmp %r14, %rbx + cmovnc %r9, %rax + cmovnc %r8, %rdx + adc $0, %r13 + nop + add %rax, %r12 + adc %rdx, %rbx + cmp %r8, %rbx + jae Lfix +Lbck: + mov %r13, (%rdi, %rcx, 8) +Lnext: + sub $1, %rcx + jnc Lloop +Lend: + mov %rbx, 8(%rsi) + mov %r12, (%rsi) + + + pop %rax + + pop %rbx + pop %r12 + pop %r13 + pop %r14 + pop %r15 + + ret + +Lfix: + seta %dl + cmp %r9, %r12 + setae %al + orb %dl, %al + je Lbck + inc %r13 + sub %r9, %r12 + sbb %r8, %rbx + jmp Lbck + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/div_qr_2u_pi1.s b/vere/ext/gmp/gen/x86_64-macos/mpn/div_qr_2u_pi1.s new file mode 100644 index 0000000..62fb8b7 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/div_qr_2u_pi1.s @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4, 0x90 + + .globl ___gmpn_div_qr_2u_pi1 + + +___gmpn_div_qr_2u_pi1: + + mov 0+16(%rsp), %r10 + mov %rdx, %r11 + push %r15 + push %r14 + push %r13 + push %r12 + push %rbx + push %rbp + push %rsi + + lea -2(%rcx), %rbp + mov %r8, %r15 + neg %r15 + + + movl 56+8(%rsp), %ecx + + + + xor %ebx, %ebx + mov 8(%r11, %rbp, 8), %r12 + shld %cl, %r12, %rbx + + + mov %r10, %rax + mul %rbx + mov (%r11, %rbp, 8), %rsi + shld %cl, %rsi, %r12 + mov %r12, %r14 + add %rax, %r14 + adc %rbx, %rdx + mov %rdx, %r13 + imul %r15, %rdx + mov %r9, %rax + lea (%rdx, %r12), %rbx + mul %r13 + mov %rsi, %r12 + shl %cl, %r12 + sub %r9, %r12 + sbb %r8, %rbx + sub %rax, %r12 + sbb %rdx, %rbx + xor %eax, %eax + xor %edx, %edx + cmp %r14, %rbx + cmovnc %r9, %rax + cmovnc %r8, %rdx + adc $0, %r13 + nop + add %rax, %r12 + adc %rdx, %rbx + cmp %r8, %rbx + jae Lfix_qh +Lbck_qh: + push %r13 + + jmp Lnext + + .align 4, 0x90 +Lloop: + + + + mov %r10, %rax + mul %rbx + mov (%r11, %rbp, 8), %rsi + xor %r13d, %r13d + shld %cl, %rsi, %r13 + or %r13, %r12 + mov %r12, %r14 + add %rax, %r14 + adc %rbx, %rdx + mov %rdx, %r13 + imul %r15, %rdx + mov %r9, %rax + lea (%rdx, %r12), %rbx + mul %r13 + mov %rsi, %r12 + shl %cl, %r12 + sub %r9, %r12 + sbb %r8, %rbx + sub %rax, %r12 + sbb %rdx, %rbx + xor %eax, %eax + xor %edx, %edx + cmp %r14, %rbx + cmovnc %r9, %rax + cmovnc %r8, %rdx + adc $0, %r13 + nop + add %rax, %r12 + adc %rdx, %rbx + cmp %r8, %rbx + jae Lfix +Lbck: + mov %r13, (%rdi, %rbp, 8) +Lnext: + sub $1, %rbp + jnc Lloop +Lend: + + pop %rax + pop %rsi + shrd %cl, %rbx, %r12 + shr %cl, %rbx + mov %rbx, 8(%rsi) + mov %r12, (%rsi) + + pop %rbp + pop %rbx + pop %r12 + pop %r13 + pop %r14 + pop %r15 + ret + +Lfix: + seta %dl + cmp %r9, %r12 + setae %al + orb %dl, %al + je Lbck + inc %r13 + sub %r9, %r12 + sbb %r8, %rbx + jmp Lbck + + +Lfix_qh: + seta %dl + cmp %r9, %r12 + setae %al + orb %dl, %al + je Lbck_qh + inc %r13 + sub %r9, %r12 + sbb %r8, %rbx + jmp Lbck_qh + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/dive_1.s b/vere/ext/gmp/gen/x86_64-macos/mpn/dive_1.s new file mode 100644 index 0000000..4d45de0 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/dive_1.s @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4, 0x90 + .globl ___gmpn_divexact_1 + + +___gmpn_divexact_1: + + + push %rbx + + mov %rcx, %rax + xor %ecx, %ecx + mov %rdx, %r8 + + bt $0, %eax + jnc Levn + +Lodd: mov %rax, %rbx + shr %eax + and $127, %eax + + lea ___gmp_binvert_limb_table(%rip), %rdx + + + + movzbl (%rdx,%rax), %eax + + mov %rbx, %r11 + + lea (%rax,%rax), %edx + imul %eax, %eax + imul %ebx, %eax + sub %eax, %edx + + lea (%rdx,%rdx), %eax + imul %edx, %edx + imul %ebx, %edx + sub %edx, %eax + + lea (%rax,%rax), %r10 + imul %rax, %rax + imul %rbx, %rax + sub %rax, %r10 + + lea (%rsi,%r8,8), %rsi + lea -8(%rdi,%r8,8), %rdi + neg %r8 + + mov (%rsi,%r8,8), %rax + + inc %r8 + jz Lone + + mov (%rsi,%r8,8), %rdx + + shrd %cl, %rdx, %rax + + xor %ebx, %ebx + jmp Lent + +Levn: bsf %rax, %rcx + shr %cl, %rax + jmp Lodd + + .align 3, 0x90 +Ltop: + + + + + + + + + + + mul %r11 + mov -8(%rsi,%r8,8), %rax + mov (%rsi,%r8,8), %r9 + shrd %cl, %r9, %rax + nop + sub %rbx, %rax + setc %bl + sub %rdx, %rax + adc $0, %rbx +Lent: imul %r10, %rax + mov %rax, (%rdi,%r8,8) + inc %r8 + jnz Ltop + + mul %r11 + mov -8(%rsi), %rax + shr %cl, %rax + sub %rbx, %rax + sub %rdx, %rax + imul %r10, %rax + mov %rax, (%rdi) + pop %rbx + + ret + +Lone: shr %cl, %rax + imul %r10, %rax + mov %rax, (%rdi) + pop %rbx + + ret + + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/divrem_1.s b/vere/ext/gmp/gen/x86_64-macos/mpn/divrem_1.s new file mode 100644 index 0000000..c0d5b59 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/divrem_1.s @@ -0,0 +1,348 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4, 0x90 + .globl ___gmpn_preinv_divrem_1 + + +___gmpn_preinv_divrem_1: + + + + + xor %eax, %eax + push %r13 + push %r12 + push %rbp + push %rbx + + mov %rsi, %r12 + mov %rcx, %rbx + add %rsi, %rcx + mov %rdx, %rsi + + lea -8(%rdi,%rcx,8), %rdi + + test %r8, %r8 + js Lnent + + mov 40(%rsp), %cl + shl %cl, %r8 + jmp Luent + + + .align 4, 0x90 + .globl ___gmpn_divrem_1 + + +___gmpn_divrem_1: + + + + xor %eax, %eax + push %r13 + push %r12 + push %rbp + push %rbx + + mov %rsi, %r12 + mov %rcx, %rbx + add %rsi, %rcx + mov %rdx, %rsi + je Lret + + lea -8(%rdi,%rcx,8), %rdi + xor %ebp, %ebp + + test %r8, %r8 + jns Lunnormalized + +Lnormalized: + test %rbx, %rbx + je L8 + mov -8(%rsi,%rbx,8), %rbp + dec %rbx + mov %rbp, %rax + sub %r8, %rbp + cmovc %rax, %rbp + sbb %eax, %eax + inc %eax + mov %rax, (%rdi) + lea -8(%rdi), %rdi +L8: + push %rdi + push %rsi + push %r8 + mov %r8, %rdi + + + + call ___gmpn_invert_limb + + pop %r8 + pop %rsi + pop %rdi + + mov %rax, %r9 + mov %rbp, %rax + jmp Lnent + + .align 4, 0x90 +Lntop:mov (%rsi,%rbx,8), %r10 + mul %r9 + add %r10, %rax + adc %rbp, %rdx + mov %rax, %rbp + mov %rdx, %r13 + imul %r8, %rdx + sub %rdx, %r10 + mov %r8, %rax + add %r10, %rax + cmp %rbp, %r10 + cmovc %r10, %rax + adc $-1, %r13 + cmp %r8, %rax + jae Lnfx +Lnok: mov %r13, (%rdi) + sub $8, %rdi +Lnent:lea 1(%rax), %rbp + dec %rbx + jns Lntop + + xor %ecx, %ecx + jmp Lfrac + +Lnfx: sub %r8, %rax + inc %r13 + jmp Lnok + +Lunnormalized: + test %rbx, %rbx + je L44 + mov -8(%rsi,%rbx,8), %rax + cmp %r8, %rax + jae L44 + mov %rbp, (%rdi) + mov %rax, %rbp + lea -8(%rdi), %rdi + je Lret + dec %rbx +L44: + bsr %r8, %rcx + not %ecx + shl %cl, %r8 + shl %cl, %rbp + + push %rcx + push %rdi + push %rsi + push %r8 + sub $8, %rsp + mov %r8, %rdi + + + + call ___gmpn_invert_limb + add $8, %rsp + + pop %r8 + pop %rsi + pop %rdi + pop %rcx + + mov %rax, %r9 + mov %rbp, %rax + test %rbx, %rbx + je Lfrac + +Luent:dec %rbx + mov (%rsi,%rbx,8), %rbp + neg %ecx + shr %cl, %rbp + neg %ecx + or %rbp, %rax + jmp Lent + + .align 4, 0x90 +Lutop:mov (%rsi,%rbx,8), %r10 + shl %cl, %rbp + neg %ecx + shr %cl, %r10 + neg %ecx + or %r10, %rbp + mul %r9 + add %rbp, %rax + adc %r11, %rdx + mov %rax, %r11 + mov %rdx, %r13 + imul %r8, %rdx + sub %rdx, %rbp + mov %r8, %rax + add %rbp, %rax + cmp %r11, %rbp + cmovc %rbp, %rax + adc $-1, %r13 + cmp %r8, %rax + jae Lufx +Luok: mov %r13, (%rdi) + sub $8, %rdi +Lent: mov (%rsi,%rbx,8), %rbp + dec %rbx + lea 1(%rax), %r11 + jns Lutop + +Luend:shl %cl, %rbp + mul %r9 + add %rbp, %rax + adc %r11, %rdx + mov %rax, %r11 + mov %rdx, %r13 + imul %r8, %rdx + sub %rdx, %rbp + mov %r8, %rax + add %rbp, %rax + cmp %r11, %rbp + cmovc %rbp, %rax + adc $-1, %r13 + cmp %r8, %rax + jae Lefx +Leok: mov %r13, (%rdi) + sub $8, %rdi + jmp Lfrac + +Lufx: sub %r8, %rax + inc %r13 + jmp Luok +Lefx: sub %r8, %rax + inc %r13 + jmp Leok + +Lfrac:mov %r8, %rbp + neg %rbp + jmp Lfent + + .align 4, 0x90 +Lftop:mul %r9 + add %r11, %rdx + mov %rax, %r11 + mov %rdx, %r13 + imul %rbp, %rdx + mov %r8, %rax + add %rdx, %rax + cmp %r11, %rdx + cmovc %rdx, %rax + adc $-1, %r13 + mov %r13, (%rdi) + sub $8, %rdi +Lfent:lea 1(%rax), %r11 + dec %r12 + jns Lftop + + shr %cl, %rax +Lret: pop %rbx + pop %rbp + pop %r12 + pop %r13 + + ret + + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/divrem_2.s b/vere/ext/gmp/gen/x86_64-macos/mpn/divrem_2.s new file mode 100644 index 0000000..a1c614e --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/divrem_2.s @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4, 0x90 + .globl ___gmpn_divrem_2 + + +___gmpn_divrem_2: + + + + push %r15 + push %r14 + push %r13 + push %r12 + lea -24(%rdx,%rcx,8), %r12 + mov %rsi, %r13 + push %rbp + mov %rdi, %rbp + push %rbx + mov 8(%r8), %r11 + mov 16(%r12), %rbx + mov (%r8), %r8 + mov 8(%r12), %r10 + + xor %r15d, %r15d + cmp %rbx, %r11 + ja L2 + setb %dl + cmp %r10, %r8 + setbe %al + orb %al, %dl + je L2 + inc %r15d + sub %r8, %r10 + sbb %r11, %rbx +L2: + lea -3(%rcx,%r13), %r14 + test %r14, %r14 + js Lend + + push %r8 + push %r10 + push %r11 + mov %r11, %rdi + + + + call ___gmpn_invert_limb + + pop %r11 + pop %r10 + pop %r8 + + mov %r11, %rdx + mov %rax, %rdi + imul %rax, %rdx + mov %rdx, %r9 + mul %r8 + xor %ecx, %ecx + add %r8, %r9 + adc $-1, %rcx + add %rdx, %r9 + adc $0, %rcx + js 2f +1: dec %rdi + sub %r11, %r9 + sbb $0, %rcx + jns 1b +2: + + lea (%rbp,%r14,8), %rbp + mov %r11, %rsi + neg %rsi + + + + + .align 4, 0x90 +Ltop: mov %rdi, %rax + mul %rbx + mov %r10, %rcx + add %rax, %rcx + adc %rbx, %rdx + mov %rdx, %r9 + imul %rsi, %rdx + mov %r8, %rax + lea (%rdx, %r10), %rbx + xor %r10d, %r10d + mul %r9 + cmp %r14, %r13 + jg L19 + mov (%r12), %r10 + sub $8, %r12 +L19: sub %r8, %r10 + sbb %r11, %rbx + sub %rax, %r10 + sbb %rdx, %rbx + xor %eax, %eax + xor %edx, %edx + cmp %rcx, %rbx + cmovnc %r8, %rax + cmovnc %r11, %rdx + adc $0, %r9 + nop + add %rax, %r10 + adc %rdx, %rbx + cmp %r11, %rbx + jae Lfix +Lbck: mov %r9, (%rbp) + sub $8, %rbp + dec %r14 + jns Ltop + +Lend: mov %r10, 8(%r12) + mov %rbx, 16(%r12) + pop %rbx + pop %rbp + pop %r12 + pop %r13 + pop %r14 + mov %r15, %rax + pop %r15 + + ret + +Lfix: seta %dl + cmp %r8, %r10 + setae %al + orb %dl, %al + je Lbck + inc %r9 + sub %r8, %r10 + sbb %r11, %rbx + jmp Lbck + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/fib_table.c b/vere/ext/gmp/gen/x86_64-macos/mpn/fib_table.c new file mode 100644 index 0000000..a830475 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/fib_table.c @@ -0,0 +1,107 @@ +/* This file generated by gen-fib.c - DO NOT EDIT. */ + +#include "gmp.h" +#include "gmp-impl.h" + +#if GMP_NUMB_BITS != 64 +Error, error, this data is for 64 bits +#endif + +const mp_limb_t +__gmp_fib_table[FIB_TABLE_LIMIT+2] = { + CNST_LIMB (0x1), /* -1 */ + CNST_LIMB (0x0), /* 0 */ + CNST_LIMB (0x1), /* 1 */ + CNST_LIMB (0x1), /* 2 */ + CNST_LIMB (0x2), /* 3 */ + CNST_LIMB (0x3), /* 4 */ + CNST_LIMB (0x5), /* 5 */ + CNST_LIMB (0x8), /* 6 */ + CNST_LIMB (0xd), /* 7 */ + CNST_LIMB (0x15), /* 8 */ + CNST_LIMB (0x22), /* 9 */ + CNST_LIMB (0x37), /* 10 */ + CNST_LIMB (0x59), /* 11 */ + CNST_LIMB (0x90), /* 12 */ + CNST_LIMB (0xe9), /* 13 */ + CNST_LIMB (0x179), /* 14 */ + CNST_LIMB (0x262), /* 15 */ + CNST_LIMB (0x3db), /* 16 */ + CNST_LIMB (0x63d), /* 17 */ + CNST_LIMB (0xa18), /* 18 */ + CNST_LIMB (0x1055), /* 19 */ + CNST_LIMB (0x1a6d), /* 20 */ + CNST_LIMB (0x2ac2), /* 21 */ + CNST_LIMB (0x452f), /* 22 */ + CNST_LIMB (0x6ff1), /* 23 */ + CNST_LIMB (0xb520), /* 24 */ + CNST_LIMB (0x12511), /* 25 */ + CNST_LIMB (0x1da31), /* 26 */ + CNST_LIMB (0x2ff42), /* 27 */ + CNST_LIMB (0x4d973), /* 28 */ + CNST_LIMB (0x7d8b5), /* 29 */ + CNST_LIMB (0xcb228), /* 30 */ + CNST_LIMB (0x148add), /* 31 */ + CNST_LIMB (0x213d05), /* 32 */ + CNST_LIMB (0x35c7e2), /* 33 */ + CNST_LIMB (0x5704e7), /* 34 */ + CNST_LIMB (0x8cccc9), /* 35 */ + CNST_LIMB (0xe3d1b0), /* 36 */ + CNST_LIMB (0x1709e79), /* 37 */ + CNST_LIMB (0x2547029), /* 38 */ + CNST_LIMB (0x3c50ea2), /* 39 */ + CNST_LIMB (0x6197ecb), /* 40 */ + CNST_LIMB (0x9de8d6d), /* 41 */ + CNST_LIMB (0xff80c38), /* 42 */ + CNST_LIMB (0x19d699a5), /* 43 */ + CNST_LIMB (0x29cea5dd), /* 44 */ + CNST_LIMB (0x43a53f82), /* 45 */ + CNST_LIMB (0x6d73e55f), /* 46 */ + CNST_LIMB (0xb11924e1), /* 47 */ + CNST_LIMB (0x11e8d0a40), /* 48 */ + CNST_LIMB (0x1cfa62f21), /* 49 */ + CNST_LIMB (0x2ee333961), /* 50 */ + CNST_LIMB (0x4bdd96882), /* 51 */ + CNST_LIMB (0x7ac0ca1e3), /* 52 */ + CNST_LIMB (0xc69e60a65), /* 53 */ + CNST_LIMB (0x1415f2ac48), /* 54 */ + CNST_LIMB (0x207fd8b6ad), /* 55 */ + CNST_LIMB (0x3495cb62f5), /* 56 */ + CNST_LIMB (0x5515a419a2), /* 57 */ + CNST_LIMB (0x89ab6f7c97), /* 58 */ + CNST_LIMB (0xdec1139639), /* 59 */ + CNST_LIMB (0x1686c8312d0), /* 60 */ + CNST_LIMB (0x2472d96a909), /* 61 */ + CNST_LIMB (0x3af9a19bbd9), /* 62 */ + CNST_LIMB (0x5f6c7b064e2), /* 63 */ + CNST_LIMB (0x9a661ca20bb), /* 64 */ + CNST_LIMB (0xf9d297a859d), /* 65 */ + CNST_LIMB (0x19438b44a658), /* 66 */ + CNST_LIMB (0x28e0b4bf2bf5), /* 67 */ + CNST_LIMB (0x42244003d24d), /* 68 */ + CNST_LIMB (0x6b04f4c2fe42), /* 69 */ + CNST_LIMB (0xad2934c6d08f), /* 70 */ + CNST_LIMB (0x1182e2989ced1), /* 71 */ + CNST_LIMB (0x1c5575e509f60), /* 72 */ + CNST_LIMB (0x2dd8587da6e31), /* 73 */ + CNST_LIMB (0x4a2dce62b0d91), /* 74 */ + CNST_LIMB (0x780626e057bc2), /* 75 */ + CNST_LIMB (0xc233f54308953), /* 76 */ + CNST_LIMB (0x13a3a1c2360515), /* 77 */ + CNST_LIMB (0x1fc6e116668e68), /* 78 */ + CNST_LIMB (0x336a82d89c937d), /* 79 */ + CNST_LIMB (0x533163ef0321e5), /* 80 */ + CNST_LIMB (0x869be6c79fb562), /* 81 */ + CNST_LIMB (0xd9cd4ab6a2d747), /* 82 */ + CNST_LIMB (0x16069317e428ca9), /* 83 */ + CNST_LIMB (0x23a367c34e563f0), /* 84 */ + CNST_LIMB (0x39a9fadb327f099), /* 85 */ + CNST_LIMB (0x5d4d629e80d5489), /* 86 */ + CNST_LIMB (0x96f75d79b354522), /* 87 */ + CNST_LIMB (0xf444c01834299ab), /* 88 */ + CNST_LIMB (0x18b3c1d91e77decd), /* 89 */ + CNST_LIMB (0x27f80ddaa1ba7878), /* 90 */ + CNST_LIMB (0x40abcfb3c0325745), /* 91 */ + CNST_LIMB (0x68a3dd8e61eccfbd), /* 92 */ + CNST_LIMB (0xa94fad42221f2702), /* 93 */ +}; diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/gcd_11.s b/vere/ext/gmp/gen/x86_64-macos/mpn/gcd_11.s new file mode 100644 index 0000000..700ac46 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/gcd_11.s @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 6, 0x90 + .globl ___gmpn_gcd_11 + + +___gmpn_gcd_11: + + + jmp Lodd + + .align 4, 0x90 +Ltop: cmovc %rdx, %rdi + cmovc %rax, %rsi + shr %cl, %rdi +Lodd: mov %rsi, %rdx + sub %rdi, %rdx + bsf %rdx, %rcx + mov %rdi, %rax + sub %rsi, %rdi + jnz Ltop + +Lend: + + + ret + + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/gcd_22.s b/vere/ext/gmp/gen/x86_64-macos/mpn/gcd_22.s new file mode 100644 index 0000000..02be83c --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/gcd_22.s @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 6, 0x90 + .globl ___gmpn_gcd_22 + + +___gmpn_gcd_22: + + + + .align 4, 0x90 +Ltop: mov %rcx, %r10 + sub %rsi, %r10 + jz Llowz + mov %rdx, %r11 + sbb %rdi, %r11 + + rep;bsf %r10, %rax + + mov %rsi, %r8 + sub %rcx, %rsi + mov %rdi, %r9 + sbb %rdx, %rdi + +Lbck: cmovc %r10, %rsi + cmovc %r11, %rdi + cmovc %r8, %rcx + cmovc %r9, %rdx + + xor %r10d, %r10d + sub %rax, %r10 + .byte 0xc4,98,169,0xf7,207 + .byte 0xc4,226,251,0xf7,246 + .byte 0xc4,226,251,0xf7,255 + or %r9, %rsi + + test %rdx, %rdx + jnz Ltop + test %rdi, %rdi + jnz Ltop + +Lgcd_11: + mov %rcx, %rdi + + jmp ___gmpn_gcd_11 + +Llowz: + + + mov %rdx, %r10 + sub %rdi, %r10 + je Lend + + xor %r11, %r11 + mov %rsi, %r8 + mov %rdi, %r9 + rep;bsf %r10, %rax + mov %rdi, %rsi + xor %rdi, %rdi + sub %rdx, %rsi + jmp Lbck + +Lend: mov %rcx, %rax + +Lret: + ret + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/hamdist.s b/vere/ext/gmp/gen/x86_64-macos/mpn/hamdist.s new file mode 100644 index 0000000..32c21c6 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/hamdist.s @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 5, 0x90 + .globl ___gmpn_hamdist + + +___gmpn_hamdist: + + + push %rbx + push %rbp + + mov (%rdi), %r10 + xor (%rsi), %r10 + + mov %edx, %r8d + and $3, %r8d + + xor %ecx, %ecx + .byte 0xf3,0x49,0x0f,0xb8,0xc2 + + lea Ltab(%rip), %r9 + + movslq (%r9,%r8,4), %r8 + add %r9, %r8 + jmp *%r8 + + +L3: mov 8(%rdi), %r10 + mov 16(%rdi), %r11 + xor 8(%rsi), %r10 + xor 16(%rsi), %r11 + xor %ebp, %ebp + sub $4, %rdx + jle Lx3 + mov 24(%rdi), %r8 + mov 32(%rdi), %r9 + add $24, %rdi + add $24, %rsi + jmp Le3 + +L0: mov 8(%rdi), %r9 + xor 8(%rsi), %r9 + mov 16(%rdi), %r10 + mov 24(%rdi), %r11 + xor %ebx, %ebx + xor 16(%rsi), %r10 + xor 24(%rsi), %r11 + add $32, %rdi + add $32, %rsi + sub $4, %rdx + jle Lx4 + + .align 4, 0x90 +Ltop: +Le0: .byte 0xf3,0x49,0x0f,0xb8,0xe9 + mov (%rdi), %r8 + mov 8(%rdi), %r9 + add %rbx, %rax +Le3: .byte 0xf3,0x49,0x0f,0xb8,0xda + xor (%rsi), %r8 + xor 8(%rsi), %r9 + add %rbp, %rcx +Le2: .byte 0xf3,0x49,0x0f,0xb8,0xeb + mov 16(%rdi), %r10 + mov 24(%rdi), %r11 + add $32, %rdi + add %rbx, %rax +Le1: .byte 0xf3,0x49,0x0f,0xb8,0xd8 + xor 16(%rsi), %r10 + xor 24(%rsi), %r11 + add $32, %rsi + add %rbp, %rcx + sub $4, %rdx + jg Ltop + +Lx4: .byte 0xf3,0x49,0x0f,0xb8,0xe9 + add %rbx, %rax +Lx3: .byte 0xf3,0x49,0x0f,0xb8,0xda + add %rbp, %rcx + .byte 0xf3,0x49,0x0f,0xb8,0xeb + add %rbx, %rax + add %rbp, %rcx +Lx2: add %rcx, %rax +Lx1: pop %rbp + pop %rbx + + ret + +L2: mov 8(%rdi), %r11 + xor 8(%rsi), %r11 + sub $2, %rdx + jle Ln2 + mov 16(%rdi), %r8 + mov 24(%rdi), %r9 + xor %ebx, %ebx + xor 16(%rsi), %r8 + xor 24(%rsi), %r9 + add $16, %rdi + add $16, %rsi + jmp Le2 +Ln2: .byte 0xf3,0x49,0x0f,0xb8,0xcb + jmp Lx2 + +L1: dec %rdx + jle Lx1 + mov 8(%rdi), %r8 + mov 16(%rdi), %r9 + xor 8(%rsi), %r8 + xor 16(%rsi), %r9 + xor %ebp, %ebp + mov 24(%rdi), %r10 + mov 32(%rdi), %r11 + add $40, %rdi + add $8, %rsi + jmp Le1 + + + .text + .align 3, 0x90 +Ltab: .set L0_tmp, L0-Ltab + .long L0_tmp + + .set L1_tmp, L1-Ltab + .long L1_tmp + + .set L2_tmp, L2-Ltab + .long L2_tmp + + .set L3_tmp, L3-Ltab + .long L3_tmp + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/invert_limb.s b/vere/ext/gmp/gen/x86_64-macos/mpn/invert_limb.s new file mode 100644 index 0000000..a5f251b --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/invert_limb.s @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.private_extern __gmpn_invert_limb_table + + + .text + .align 4, 0x90 + .globl ___gmpn_invert_limb + + +___gmpn_invert_limb: + + + mov %rdi, %rax + shr $55, %rax + + lea __gmpn_invert_limb_table(%rip), %r8 + add $-512, %r8 + + movzwl (%r8,%rax,2), %ecx + + + mov %rdi, %rsi + mov %ecx, %eax + imul %ecx, %ecx + shr $24, %rsi + inc %rsi + imul %rsi, %rcx + shr $40, %rcx + sal $11, %eax + dec %eax + sub %ecx, %eax + + + mov $0x1000000000000000, %rcx + imul %rax, %rsi + sub %rsi, %rcx + imul %rax, %rcx + sal $13, %rax + shr $47, %rcx + add %rax, %rcx + + + mov %rdi, %rsi + shr %rsi + sbb %rax, %rax + sub %rax, %rsi + imul %rcx, %rsi + and %rcx, %rax + shr %rax + sub %rsi, %rax + mul %rcx + sal $31, %rcx + shr %rdx + add %rdx, %rcx + + mov %rdi, %rax + mul %rcx + add %rdi, %rax + mov %rcx, %rax + adc %rdi, %rdx + sub %rdx, %rax + + + ret + + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/invert_limb_table.s b/vere/ext/gmp/gen/x86_64-macos/mpn/invert_limb_table.s new file mode 100644 index 0000000..b937cd0 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/invert_limb_table.s @@ -0,0 +1,313 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.private_extern __gmpn_invert_limb_table + + + + + .section __TEXT,__const + .align 1, 0x90 + .globl __gmpn_invert_limb_table +__gmpn_invert_limb_table: + .value 2045 + .value 2037 + .value 2029 + .value 2021 + .value 2013 + .value 2005 + .value 1998 + .value 1990 + .value 1983 + .value 1975 + .value 1968 + .value 1960 + .value 1953 + .value 1946 + .value 1938 + .value 1931 + .value 1924 + .value 1917 + .value 1910 + .value 1903 + .value 1896 + .value 1889 + .value 1883 + .value 1876 + .value 1869 + .value 1863 + .value 1856 + .value 1849 + .value 1843 + .value 1836 + .value 1830 + .value 1824 + .value 1817 + .value 1811 + .value 1805 + .value 1799 + .value 1792 + .value 1786 + .value 1780 + .value 1774 + .value 1768 + .value 1762 + .value 1756 + .value 1750 + .value 1745 + .value 1739 + .value 1733 + .value 1727 + .value 1722 + .value 1716 + .value 1710 + .value 1705 + .value 1699 + .value 1694 + .value 1688 + .value 1683 + .value 1677 + .value 1672 + .value 1667 + .value 1661 + .value 1656 + .value 1651 + .value 1646 + .value 1641 + .value 1636 + .value 1630 + .value 1625 + .value 1620 + .value 1615 + .value 1610 + .value 1605 + .value 1600 + .value 1596 + .value 1591 + .value 1586 + .value 1581 + .value 1576 + .value 1572 + .value 1567 + .value 1562 + .value 1558 + .value 1553 + .value 1548 + .value 1544 + .value 1539 + .value 1535 + .value 1530 + .value 1526 + .value 1521 + .value 1517 + .value 1513 + .value 1508 + .value 1504 + .value 1500 + .value 1495 + .value 1491 + .value 1487 + .value 1483 + .value 1478 + .value 1474 + .value 1470 + .value 1466 + .value 1462 + .value 1458 + .value 1454 + .value 1450 + .value 1446 + .value 1442 + .value 1438 + .value 1434 + .value 1430 + .value 1426 + .value 1422 + .value 1418 + .value 1414 + .value 1411 + .value 1407 + .value 1403 + .value 1399 + .value 1396 + .value 1392 + .value 1388 + .value 1384 + .value 1381 + .value 1377 + .value 1374 + .value 1370 + .value 1366 + .value 1363 + .value 1359 + .value 1356 + .value 1352 + .value 1349 + .value 1345 + .value 1342 + .value 1338 + .value 1335 + .value 1332 + .value 1328 + .value 1325 + .value 1322 + .value 1318 + .value 1315 + .value 1312 + .value 1308 + .value 1305 + .value 1302 + .value 1299 + .value 1295 + .value 1292 + .value 1289 + .value 1286 + .value 1283 + .value 1280 + .value 1276 + .value 1273 + .value 1270 + .value 1267 + .value 1264 + .value 1261 + .value 1258 + .value 1255 + .value 1252 + .value 1249 + .value 1246 + .value 1243 + .value 1240 + .value 1237 + .value 1234 + .value 1231 + .value 1228 + .value 1226 + .value 1223 + .value 1220 + .value 1217 + .value 1214 + .value 1211 + .value 1209 + .value 1206 + .value 1203 + .value 1200 + .value 1197 + .value 1195 + .value 1192 + .value 1189 + .value 1187 + .value 1184 + .value 1181 + .value 1179 + .value 1176 + .value 1173 + .value 1171 + .value 1168 + .value 1165 + .value 1163 + .value 1160 + .value 1158 + .value 1155 + .value 1153 + .value 1150 + .value 1148 + .value 1145 + .value 1143 + .value 1140 + .value 1138 + .value 1135 + .value 1133 + .value 1130 + .value 1128 + .value 1125 + .value 1123 + .value 1121 + .value 1118 + .value 1116 + .value 1113 + .value 1111 + .value 1109 + .value 1106 + .value 1104 + .value 1102 + .value 1099 + .value 1097 + .value 1095 + .value 1092 + .value 1090 + .value 1088 + .value 1086 + .value 1083 + .value 1081 + .value 1079 + .value 1077 + .value 1074 + .value 1072 + .value 1070 + .value 1068 + .value 1066 + .value 1064 + .value 1061 + .value 1059 + .value 1057 + .value 1055 + .value 1053 + .value 1051 + .value 1049 + .value 1047 + .value 1044 + .value 1042 + .value 1040 + .value 1038 + .value 1036 + .value 1034 + .value 1032 + .value 1030 + .value 1028 + .value 1026 + .value 1024 + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/ior_n.s b/vere/ext/gmp/gen/x86_64-macos/mpn/ior_n.s new file mode 100644 index 0000000..7a15d18 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/ior_n.s @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 5, 0x90 + .globl ___gmpn_ior_n + + +___gmpn_ior_n: + + + mov (%rdx), %r8 + mov %ecx, %eax + and $3, %eax + je Lb00 + cmp $2, %eax + jc Lb01 + je Lb10 + +Lb11: or (%rsi), %r8 + mov %r8, (%rdi) + inc %rcx + lea -8(%rsi), %rsi + lea -8(%rdx), %rdx + lea -8(%rdi), %rdi + jmp Le11 +Lb10: add $2, %rcx + lea -16(%rsi), %rsi + lea -16(%rdx), %rdx + lea -16(%rdi), %rdi + jmp Le10 +Lb01: or (%rsi), %r8 + mov %r8, (%rdi) + dec %rcx + jz Lret + lea 8(%rsi), %rsi + lea 8(%rdx), %rdx + lea 8(%rdi), %rdi + + .align 4, 0x90 +Ltop: mov (%rdx), %r8 +Lb00: mov 8(%rdx), %r9 + or (%rsi), %r8 + or 8(%rsi), %r9 + mov %r8, (%rdi) + mov %r9, 8(%rdi) +Le11: mov 16(%rdx), %r8 +Le10: mov 24(%rdx), %r9 + lea 32(%rdx), %rdx + or 16(%rsi), %r8 + or 24(%rsi), %r9 + lea 32(%rsi), %rsi + mov %r8, 16(%rdi) + mov %r9, 24(%rdi) + lea 32(%rdi), %rdi + sub $4, %rcx + jnz Ltop + +Lret: + ret + + + + + + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/iorn_n.s b/vere/ext/gmp/gen/x86_64-macos/mpn/iorn_n.s new file mode 100644 index 0000000..b14be40 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/iorn_n.s @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 5, 0x90 + .globl ___gmpn_iorn_n + + +___gmpn_iorn_n: + + + mov (%rdx), %r8 + not %r8 + mov %ecx, %eax + and $3, %eax + je Lb00 + cmp $2, %eax + jc Lb01 + je Lb10 + +Lb11: or (%rsi), %r8 + mov %r8, (%rdi) + inc %rcx + lea -8(%rsi), %rsi + lea -8(%rdx), %rdx + lea -8(%rdi), %rdi + jmp Le11 +Lb10: add $2, %rcx + lea -16(%rsi), %rsi + lea -16(%rdx), %rdx + lea -16(%rdi), %rdi + jmp Le10 +Lb01: or (%rsi), %r8 + mov %r8, (%rdi) + dec %rcx + jz Lret + lea 8(%rsi), %rsi + lea 8(%rdx), %rdx + lea 8(%rdi), %rdi + + .align 4, 0x90 +Ltop: mov (%rdx), %r8 + not %r8 +Lb00: mov 8(%rdx), %r9 + not %r9 + or (%rsi), %r8 + or 8(%rsi), %r9 + mov %r8, (%rdi) + mov %r9, 8(%rdi) +Le11: mov 16(%rdx), %r8 + not %r8 +Le10: mov 24(%rdx), %r9 + not %r9 + lea 32(%rdx), %rdx + or 16(%rsi), %r8 + or 24(%rsi), %r9 + lea 32(%rsi), %rsi + mov %r8, 16(%rdi) + mov %r9, 24(%rdi) + lea 32(%rdi), %rdi + sub $4, %rcx + jnz Ltop + +Lret: + ret + + + + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/jacobitab.h b/vere/ext/gmp/gen/x86_64-macos/mpn/jacobitab.h new file mode 100644 index 0000000..4bdbfcc --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/jacobitab.h @@ -0,0 +1,13 @@ + 0, 0, 0, 0, 0,12, 8, 4, 1, 1, 1, 1, 1,13, 9, 5, + 2, 2, 2, 2, 2, 6,10,14, 3, 3, 3, 3, 3, 7,11,15, + 4,16, 6,18, 4, 0,12, 8, 5,17, 7,19, 5, 1,13, 9, + 6,18, 4,16, 6,10,14, 2, 7,19, 5,17, 7,11,15, 3, + 8,10, 9,11, 8, 4, 0,12, 9,11, 8,10, 9, 5, 1,13, +10, 9,11, 8,10,14, 2, 6,11, 8,10, 9,11,15, 3, 7, +12,22,24,20,12, 8, 4, 0,13,23,25,21,13, 9, 5, 1, +25,21,13,23,14, 2, 6,10,24,20,12,22,15, 3, 7,11, +16, 6,18, 4,16,16,16,16,17, 7,19, 5,17,17,17,17, +18, 4,16, 6,18,22,19,23,19, 5,17, 7,19,23,18,22, +20,12,22,24,20,20,20,20,21,13,23,25,21,21,21,21, +22,24,20,12,22,19,23,18,23,25,21,13,23,18,22,19, +24,20,12,22,15, 3, 7,11,25,21,13,23,14, 2, 6,10, diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/lshift.s b/vere/ext/gmp/gen/x86_64-macos/mpn/lshift.s new file mode 100644 index 0000000..6463cbe --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/lshift.s @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 6, 0x90 + .globl ___gmpn_lshift + + +___gmpn_lshift: + + + movd %ecx, %xmm4 + mov $64, %eax + sub %ecx, %eax + movd %eax, %xmm5 + + neg %ecx + mov -8(%rsi,%rdx,8), %rax + shr %cl, %rax + + cmp $3, %rdx + jle Lbc + + lea (%rdi,%rdx,8), %ecx + test $8, %cl + jz Lrp_aligned + + + movq -8(%rsi,%rdx,8), %xmm0 + movq -16(%rsi,%rdx,8), %xmm1 + psllq %xmm4, %xmm0 + psrlq %xmm5, %xmm1 + por %xmm1, %xmm0 + movq %xmm0, -8(%rdi,%rdx,8) + dec %rdx + +Lrp_aligned: + lea 1(%rdx), %r8d + + and $6, %r8d + jz Lba0 + cmp $4, %r8d + jz Lba4 + jc Lba2 +Lba6: add $-4, %rdx + jmp Li56 +Lba0: add $-6, %rdx + jmp Li70 +Lba4: add $-2, %rdx + jmp Li34 +Lba2: add $-8, %rdx + jle Lend + + .align 4, 0x90 +Ltop: movdqu 40(%rsi,%rdx,8), %xmm1 + movdqu 48(%rsi,%rdx,8), %xmm0 + psllq %xmm4, %xmm0 + psrlq %xmm5, %xmm1 + por %xmm1, %xmm0 + movdqa %xmm0, 48(%rdi,%rdx,8) +Li70: + movdqu 24(%rsi,%rdx,8), %xmm1 + movdqu 32(%rsi,%rdx,8), %xmm0 + psllq %xmm4, %xmm0 + psrlq %xmm5, %xmm1 + por %xmm1, %xmm0 + movdqa %xmm0, 32(%rdi,%rdx,8) +Li56: + movdqu 8(%rsi,%rdx,8), %xmm1 + movdqu 16(%rsi,%rdx,8), %xmm0 + psllq %xmm4, %xmm0 + psrlq %xmm5, %xmm1 + por %xmm1, %xmm0 + movdqa %xmm0, 16(%rdi,%rdx,8) +Li34: + movdqu -8(%rsi,%rdx,8), %xmm1 + movdqu (%rsi,%rdx,8), %xmm0 + psllq %xmm4, %xmm0 + psrlq %xmm5, %xmm1 + por %xmm1, %xmm0 + movdqa %xmm0, (%rdi,%rdx,8) + sub $8, %rdx + jg Ltop + +Lend: test $1, %dl + jnz Lend8 + + movdqu (%rsi), %xmm1 + pxor %xmm0, %xmm0 + punpcklqdq %xmm1, %xmm0 + psllq %xmm4, %xmm1 + psrlq %xmm5, %xmm0 + por %xmm1, %xmm0 + movdqa %xmm0, (%rdi) + + ret + + + .align 4, 0x90 +Lbc: dec %edx + jz Lend8 + + movq (%rsi,%rdx,8), %xmm1 + movq -8(%rsi,%rdx,8), %xmm0 + psllq %xmm4, %xmm1 + psrlq %xmm5, %xmm0 + por %xmm1, %xmm0 + movq %xmm0, (%rdi,%rdx,8) + sub $2, %edx + jl Lend8 + movq 8(%rsi), %xmm1 + movq (%rsi), %xmm0 + psllq %xmm4, %xmm1 + psrlq %xmm5, %xmm0 + por %xmm1, %xmm0 + movq %xmm0, 8(%rdi) + +Lend8:movq (%rsi), %xmm0 + psllq %xmm4, %xmm0 + movq %xmm0, (%rdi) + + ret + + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/lshiftc.s b/vere/ext/gmp/gen/x86_64-macos/mpn/lshiftc.s new file mode 100644 index 0000000..ffd7e35 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/lshiftc.s @@ -0,0 +1,222 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 6, 0x90 + .globl ___gmpn_lshiftc + + +___gmpn_lshiftc: + + + movd %ecx, %xmm4 + mov $64, %eax + sub %ecx, %eax + movd %eax, %xmm5 + + neg %ecx + mov -8(%rsi,%rdx,8), %rax + shr %cl, %rax + + pcmpeqb %xmm3, %xmm3 + + cmp $3, %rdx + jle Lbc + + lea (%rdi,%rdx,8), %ecx + test $8, %cl + jz Lrp_aligned + + + movq -8(%rsi,%rdx,8), %xmm0 + movq -16(%rsi,%rdx,8), %xmm1 + psllq %xmm4, %xmm0 + psrlq %xmm5, %xmm1 + por %xmm1, %xmm0 + pxor %xmm3, %xmm0 + movq %xmm0, -8(%rdi,%rdx,8) + dec %rdx + +Lrp_aligned: + lea 1(%rdx), %r8d + + and $6, %r8d + jz Lba0 + cmp $4, %r8d + jz Lba4 + jc Lba2 +Lba6: add $-4, %rdx + jmp Li56 +Lba0: add $-6, %rdx + jmp Li70 +Lba4: add $-2, %rdx + jmp Li34 +Lba2: add $-8, %rdx + jle Lend + + .align 4, 0x90 +Ltop: movdqu 40(%rsi,%rdx,8), %xmm1 + movdqu 48(%rsi,%rdx,8), %xmm0 + psllq %xmm4, %xmm0 + psrlq %xmm5, %xmm1 + por %xmm1, %xmm0 + pxor %xmm3, %xmm0 + movdqa %xmm0, 48(%rdi,%rdx,8) +Li70: + movdqu 24(%rsi,%rdx,8), %xmm1 + movdqu 32(%rsi,%rdx,8), %xmm0 + psllq %xmm4, %xmm0 + psrlq %xmm5, %xmm1 + por %xmm1, %xmm0 + pxor %xmm3, %xmm0 + movdqa %xmm0, 32(%rdi,%rdx,8) +Li56: + movdqu 8(%rsi,%rdx,8), %xmm1 + movdqu 16(%rsi,%rdx,8), %xmm0 + psllq %xmm4, %xmm0 + psrlq %xmm5, %xmm1 + por %xmm1, %xmm0 + pxor %xmm3, %xmm0 + movdqa %xmm0, 16(%rdi,%rdx,8) +Li34: + movdqu -8(%rsi,%rdx,8), %xmm1 + movdqu (%rsi,%rdx,8), %xmm0 + psllq %xmm4, %xmm0 + psrlq %xmm5, %xmm1 + por %xmm1, %xmm0 + pxor %xmm3, %xmm0 + movdqa %xmm0, (%rdi,%rdx,8) + sub $8, %rdx + jg Ltop + +Lend: test $1, %dl + jnz Lend8 + + movdqu (%rsi), %xmm1 + pxor %xmm0, %xmm0 + punpcklqdq %xmm1, %xmm0 + psllq %xmm4, %xmm1 + psrlq %xmm5, %xmm0 + por %xmm1, %xmm0 + pxor %xmm3, %xmm0 + movdqa %xmm0, (%rdi) + + ret + + + .align 4, 0x90 +Lbc: dec %edx + jz Lend8 + + movq (%rsi,%rdx,8), %xmm1 + movq -8(%rsi,%rdx,8), %xmm0 + psllq %xmm4, %xmm1 + psrlq %xmm5, %xmm0 + por %xmm1, %xmm0 + pxor %xmm3, %xmm0 + movq %xmm0, (%rdi,%rdx,8) + sub $2, %edx + jl Lend8 + movq 8(%rsi), %xmm1 + movq (%rsi), %xmm0 + psllq %xmm4, %xmm1 + psrlq %xmm5, %xmm0 + por %xmm1, %xmm0 + pxor %xmm3, %xmm0 + movq %xmm0, 8(%rdi) + +Lend8:movq (%rsi), %xmm0 + psllq %xmm4, %xmm0 + pxor %xmm3, %xmm0 + movq %xmm0, (%rdi) + + ret + + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/mod_1_1.s b/vere/ext/gmp/gen/x86_64-macos/mpn/mod_1_1.s new file mode 100644 index 0000000..a9b4801 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/mod_1_1.s @@ -0,0 +1,240 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4, 0x90 + .globl ___gmpn_mod_1_1p + + +___gmpn_mod_1_1p: + + + push %rbp + push %rbx + mov %rdx, %rbx + mov %rcx, %r8 + + mov -8(%rdi, %rsi, 8), %rax + cmp $3, %rsi + jnc Lfirst + mov -16(%rdi, %rsi, 8), %rbp + jmp Lreduce_two + +Lfirst: + + mov 24(%r8), %r11 + mul %r11 + mov -24(%rdi, %rsi, 8), %rbp + add %rax, %rbp + mov -16(%rdi, %rsi, 8), %rax + adc %rdx, %rax + sbb %rcx, %rcx + sub $4, %rsi + jc Lreduce_three + + mov %r11, %r10 + sub %rbx, %r10 + + .align 4, 0x90 +Ltop: and %r11, %rcx + lea (%r10, %rbp), %r9 + mul %r11 + add %rbp, %rcx + mov (%rdi, %rsi, 8), %rbp + cmovc %r9, %rcx + add %rax, %rbp + mov %rcx, %rax + adc %rdx, %rax + sbb %rcx, %rcx + sub $1, %rsi + jnc Ltop + +Lreduce_three: + + and %rbx, %rcx + sub %rcx, %rax + +Lreduce_two: + mov 8(%r8), %ecx + test %ecx, %ecx + jz Lnormalized + + + mulq 16(%r8) + xor %r9, %r9 + add %rax, %rbp + adc %rdx, %r9 + mov %r9, %rax + + + + shld %cl, %rbp, %rax + + shl %cl, %rbp + jmp Ludiv + +Lnormalized: + mov %rax, %r9 + sub %rbx, %r9 + cmovnc %r9, %rax + +Ludiv: + lea 1(%rax), %r9 + mulq (%r8) + add %rbp, %rax + adc %r9, %rdx + imul %rbx, %rdx + sub %rdx, %rbp + cmp %rbp, %rax + lea (%rbx, %rbp), %rax + cmovnc %rbp, %rax + cmp %rbx, %rax + jnc Lfix +Lok: shr %cl, %rax + + pop %rbx + pop %rbp + + ret +Lfix: sub %rbx, %rax + jmp Lok + + + .align 4, 0x90 + .globl ___gmpn_mod_1_1p_cps + + +___gmpn_mod_1_1p_cps: + + + push %rbp + bsr %rsi, %rcx + push %rbx + mov %rdi, %rbx + push %r12 + xor $63, %ecx + mov %rsi, %r12 + mov %ecx, %ebp + sal %cl, %r12 + mov %r12, %rdi + + + + call ___gmpn_invert_limb + + neg %r12 + mov %r12, %r8 + mov %rax, (%rbx) + mov %rbp, 8(%rbx) + imul %rax, %r12 + mov %r12, 24(%rbx) + mov %ebp, %ecx + test %ecx, %ecx + jz Lz + + mov $1, %edx + + shld %cl, %rax, %rdx + + imul %rdx, %r8 + shr %cl, %r8 + mov %r8, 16(%rbx) +Lz: + pop %r12 + pop %rbx + pop %rbp + + ret + + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/mod_1_2.s b/vere/ext/gmp/gen/x86_64-macos/mpn/mod_1_2.s new file mode 100644 index 0000000..9feb233 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/mod_1_2.s @@ -0,0 +1,251 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4, 0x90 + .globl ___gmpn_mod_1s_2p + + +___gmpn_mod_1s_2p: + + + push %r14 + test $1, %sil + mov %rdx, %r14 + push %r13 + mov %rcx, %r13 + push %r12 + push %rbp + push %rbx + mov 16(%rcx), %r10 + mov 24(%rcx), %rbx + mov 32(%rcx), %rbp + je Lb0 + dec %rsi + je Lone + mov -8(%rdi,%rsi,8), %rax + mul %r10 + mov %rax, %r9 + mov %rdx, %r8 + mov (%rdi,%rsi,8), %rax + add -16(%rdi,%rsi,8), %r9 + adc $0, %r8 + mul %rbx + add %rax, %r9 + adc %rdx, %r8 + jmp L11 + +Lb0: mov -8(%rdi,%rsi,8), %r8 + mov -16(%rdi,%rsi,8), %r9 + +L11: sub $4, %rsi + jb Led2 + lea 40(%rdi,%rsi,8), %rdi + mov -40(%rdi), %r11 + mov -32(%rdi), %rax + jmp Lm0 + + .align 4, 0x90 +Ltop: mov -24(%rdi), %r9 + add %rax, %r11 + mov -16(%rdi), %rax + adc %rdx, %r12 + mul %r10 + add %rax, %r9 + mov %r11, %rax + mov %rdx, %r8 + adc $0, %r8 + mul %rbx + add %rax, %r9 + mov %r12, %rax + adc %rdx, %r8 + mul %rbp + sub $2, %rsi + jb Led1 + mov -40(%rdi), %r11 + add %rax, %r9 + mov -32(%rdi), %rax + adc %rdx, %r8 +Lm0: mul %r10 + add %rax, %r11 + mov %r9, %rax + mov %rdx, %r12 + adc $0, %r12 + mul %rbx + add %rax, %r11 + lea -32(%rdi), %rdi + mov %r8, %rax + adc %rdx, %r12 + mul %rbp + sub $2, %rsi + jae Ltop + +Led0: mov %r11, %r9 + mov %r12, %r8 +Led1: add %rax, %r9 + adc %rdx, %r8 +Led2: mov 8(%r13), %edi + mov %r8, %rax + mov %r9, %r8 + mul %r10 + add %rax, %r8 + adc $0, %rdx +L1: xor %ecx, %ecx + mov %r8, %r9 + sub %edi, %ecx + shr %cl, %r9 + mov %edi, %ecx + sal %cl, %rdx + or %rdx, %r9 + sal %cl, %r8 + mov %r9, %rax + mulq (%r13) + mov %rax, %rsi + inc %r9 + add %r8, %rsi + adc %r9, %rdx + imul %r14, %rdx + sub %rdx, %r8 + lea (%r8,%r14), %rax + cmp %r8, %rsi + cmovc %rax, %r8 + mov %r8, %rax + sub %r14, %rax + cmovc %r8, %rax + mov %edi, %ecx + shr %cl, %rax + pop %rbx + pop %rbp + pop %r12 + pop %r13 + pop %r14 + + ret +Lone: + mov (%rdi), %r8 + mov 8(%rcx), %edi + xor %rdx, %rdx + jmp L1 + + + .align 4, 0x90 + .globl ___gmpn_mod_1s_2p_cps + + +___gmpn_mod_1s_2p_cps: + + + push %rbp + bsr %rsi, %rcx + push %rbx + mov %rdi, %rbx + push %r12 + xor $63, %ecx + mov %rsi, %r12 + mov %ecx, %ebp + sal %cl, %r12 + mov %r12, %rdi + + + + call ___gmpn_invert_limb + + mov %r12, %r8 + mov %rax, %r11 + mov %rax, (%rbx) + mov %rbp, 8(%rbx) + neg %r8 + mov %ebp, %ecx + mov $1, %esi + + shld %cl, %rax, %rsi + + imul %r8, %rsi + mul %rsi + + add %rsi, %rdx + shr %cl, %rsi + mov %rsi, 16(%rbx) + + not %rdx + imul %r12, %rdx + lea (%rdx,%r12), %rsi + cmp %rdx, %rax + cmovnc %rdx, %rsi + mov %r11, %rax + mul %rsi + + add %rsi, %rdx + shr %cl, %rsi + mov %rsi, 24(%rbx) + + not %rdx + imul %r12, %rdx + add %rdx, %r12 + cmp %rdx, %rax + cmovnc %rdx, %r12 + + shr %cl, %r12 + mov %r12, 32(%rbx) + + pop %r12 + pop %rbx + pop %rbp + + ret + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/mod_1_4.s b/vere/ext/gmp/gen/x86_64-macos/mpn/mod_1_4.s new file mode 100644 index 0000000..675a4eb --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/mod_1_4.s @@ -0,0 +1,282 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4, 0x90 + .globl ___gmpn_mod_1s_4p + + +___gmpn_mod_1s_4p: + + + push %r15 + push %r14 + push %r13 + push %r12 + push %rbp + push %rbx + + mov %rdx, %r15 + mov %rcx, %r14 + mov 16(%rcx), %r11 + mov 24(%rcx), %rbx + mov 32(%rcx), %rbp + mov 40(%rcx), %r13 + mov 48(%rcx), %r12 + xor %r8d, %r8d + mov %esi, %edx + and $3, %edx + je Lb0 + cmp $2, %edx + jc Lb1 + je Lb2 + +Lb3: lea -24(%rdi,%rsi,8), %rdi + mov 8(%rdi), %rax + mul %r11 + mov (%rdi), %r9 + add %rax, %r9 + adc %rdx, %r8 + mov 16(%rdi), %rax + mul %rbx + jmp Lm0 + + .align 3, 0x90 +Lb0: lea -32(%rdi,%rsi,8), %rdi + mov 8(%rdi), %rax + mul %r11 + mov (%rdi), %r9 + add %rax, %r9 + adc %rdx, %r8 + mov 16(%rdi), %rax + mul %rbx + add %rax, %r9 + adc %rdx, %r8 + mov 24(%rdi), %rax + mul %rbp + jmp Lm0 + + .align 3, 0x90 +Lb1: lea -8(%rdi,%rsi,8), %rdi + mov (%rdi), %r9 + jmp Lm1 + + .align 3, 0x90 +Lb2: lea -16(%rdi,%rsi,8), %rdi + mov 8(%rdi), %r8 + mov (%rdi), %r9 + jmp Lm1 + + .align 4, 0x90 +Ltop: mov -24(%rdi), %rax + mov -32(%rdi), %r10 + mul %r11 + add %rax, %r10 + mov -16(%rdi), %rax + mov $0, %ecx + adc %rdx, %rcx + mul %rbx + add %rax, %r10 + mov -8(%rdi), %rax + adc %rdx, %rcx + sub $32, %rdi + mul %rbp + add %rax, %r10 + mov %r13, %rax + adc %rdx, %rcx + mul %r9 + add %rax, %r10 + mov %r12, %rax + adc %rdx, %rcx + mul %r8 + mov %r10, %r9 + mov %rcx, %r8 +Lm0: add %rax, %r9 + adc %rdx, %r8 +Lm1: sub $4, %rsi + ja Ltop + +Lend: mov 8(%r14), %esi + mov %r8, %rax + mul %r11 + mov %rax, %r8 + add %r9, %r8 + adc $0, %rdx + xor %ecx, %ecx + sub %esi, %ecx + mov %r8, %rdi + shr %cl, %rdi + mov %esi, %ecx + sal %cl, %rdx + or %rdx, %rdi + mov %rdi, %rax + mulq (%r14) + mov %r15, %rbx + mov %rax, %r9 + sal %cl, %r8 + inc %rdi + add %r8, %r9 + adc %rdi, %rdx + imul %rbx, %rdx + sub %rdx, %r8 + lea (%r8,%rbx), %rax + cmp %r8, %r9 + cmovc %rax, %r8 + mov %r8, %rax + sub %rbx, %rax + cmovc %r8, %rax + shr %cl, %rax + pop %rbx + pop %rbp + pop %r12 + pop %r13 + pop %r14 + pop %r15 + + ret + + + .align 4, 0x90 + .globl ___gmpn_mod_1s_4p_cps + + +___gmpn_mod_1s_4p_cps: + + + push %rbp + bsr %rsi, %rcx + push %rbx + mov %rdi, %rbx + push %r12 + xor $63, %ecx + mov %rsi, %r12 + mov %ecx, %ebp + sal %cl, %r12 + mov %r12, %rdi + + + + call ___gmpn_invert_limb + + mov %r12, %r8 + mov %rax, %r11 + mov %rax, (%rbx) + mov %rbp, 8(%rbx) + neg %r8 + mov %ebp, %ecx + mov $1, %esi + + shld %cl, %rax, %rsi + + imul %r8, %rsi + mul %rsi + + add %rsi, %rdx + shr %cl, %rsi + mov %rsi, 16(%rbx) + + not %rdx + imul %r12, %rdx + lea (%rdx,%r12), %rsi + cmp %rdx, %rax + cmovnc %rdx, %rsi + mov %r11, %rax + mul %rsi + + add %rsi, %rdx + shr %cl, %rsi + mov %rsi, 24(%rbx) + + not %rdx + imul %r12, %rdx + lea (%rdx,%r12), %rsi + cmp %rdx, %rax + cmovnc %rdx, %rsi + mov %r11, %rax + mul %rsi + + add %rsi, %rdx + shr %cl, %rsi + mov %rsi, 32(%rbx) + + not %rdx + imul %r12, %rdx + lea (%rdx,%r12), %rsi + cmp %rdx, %rax + cmovnc %rdx, %rsi + mov %r11, %rax + mul %rsi + + add %rsi, %rdx + shr %cl, %rsi + mov %rsi, 40(%rbx) + + not %rdx + imul %r12, %rdx + add %rdx, %r12 + cmp %rdx, %rax + cmovnc %rdx, %r12 + + shr %cl, %r12 + mov %r12, 48(%rbx) + + pop %r12 + pop %rbx + pop %rbp + + ret + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/mod_34lsub1.s b/vere/ext/gmp/gen/x86_64-macos/mpn/mod_34lsub1.s new file mode 100644 index 0000000..141c810 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/mod_34lsub1.s @@ -0,0 +1,246 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 5, 0x90 + .globl ___gmpn_mod_34lsub1 + + +___gmpn_mod_34lsub1: + + + + mov $0x0000FFFFFFFFFFFF, %r11 + + mov (%rdi), %rax + + cmp $2, %rsi + ja Lgt2 + + jb Lone + + mov 8(%rdi), %rsi + mov %rax, %rdx + shr $48, %rax + + and %r11, %rdx + add %rdx, %rax + mov %esi, %edx + + shr $32, %rsi + add %rsi, %rax + + shl $16, %rdx + add %rdx, %rax +Lone: + ret + + + + + +Lgt2: mov 8(%rdi), %rcx + mov 16(%rdi), %rdx + xor %r9, %r9 + add $24, %rdi + sub $12, %rsi + jc Lend + .align 4, 0x90 +Ltop: + add (%rdi), %rax + adc 8(%rdi), %rcx + adc 16(%rdi), %rdx + adc $0, %r9 + add 24(%rdi), %rax + adc 32(%rdi), %rcx + adc 40(%rdi), %rdx + adc $0, %r9 + add 48(%rdi), %rax + adc 56(%rdi), %rcx + adc 64(%rdi), %rdx + adc $0, %r9 + add $72, %rdi + sub $9, %rsi + jnc Ltop + +Lend: + lea Ltab(%rip), %r8 + movslq 36(%r8,%rsi,4), %r10 + add %r10, %r8 + jmp *%r8 + + .text + .align 3, 0x90 +Ltab: .set L0_tmp, L0-Ltab + .long L0_tmp + + .set L1_tmp, L1-Ltab + .long L1_tmp + + .set L2_tmp, L2-Ltab + .long L2_tmp + + .set L3_tmp, L3-Ltab + .long L3_tmp + + .set L4_tmp, L4-Ltab + .long L4_tmp + + .set L5_tmp, L5-Ltab + .long L5_tmp + + .set L6_tmp, L6-Ltab + .long L6_tmp + + .set L7_tmp, L7-Ltab + .long L7_tmp + + .set L8_tmp, L8-Ltab + .long L8_tmp + + .text + +L6: add (%rdi), %rax + adc 8(%rdi), %rcx + adc 16(%rdi), %rdx + adc $0, %r9 + add $24, %rdi +L3: add (%rdi), %rax + adc 8(%rdi), %rcx + adc 16(%rdi), %rdx + jmp Lcj1 + +L7: add (%rdi), %rax + adc 8(%rdi), %rcx + adc 16(%rdi), %rdx + adc $0, %r9 + add $24, %rdi +L4: add (%rdi), %rax + adc 8(%rdi), %rcx + adc 16(%rdi), %rdx + adc $0, %r9 + add $24, %rdi +L1: add (%rdi), %rax + adc $0, %rcx + jmp Lcj2 + +L8: add (%rdi), %rax + adc 8(%rdi), %rcx + adc 16(%rdi), %rdx + adc $0, %r9 + add $24, %rdi +L5: add (%rdi), %rax + adc 8(%rdi), %rcx + adc 16(%rdi), %rdx + adc $0, %r9 + add $24, %rdi +L2: add (%rdi), %rax + adc 8(%rdi), %rcx + +Lcj2: adc $0, %rdx +Lcj1: adc $0, %r9 +L0: add %r9, %rax + adc $0, %rcx + adc $0, %rdx + adc $0, %rax + + mov %rax, %rdi + shr $48, %rax + + and %r11, %rdi + mov %ecx, %r10d + + shr $32, %rcx + + add %rdi, %rax + movzwl %dx, %edi + shl $16, %r10 + + add %rcx, %rax + shr $16, %rdx + + add %r10, %rax + shl $32, %rdi + + add %rdx, %rax + add %rdi, %rax + + + ret + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/mode1o.s b/vere/ext/gmp/gen/x86_64-macos/mpn/mode1o.s new file mode 100644 index 0000000..c715f7c --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/mode1o.s @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 5, 0x90 + .globl ___gmpn_modexact_1_odd + + +___gmpn_modexact_1_odd: + + + mov $0, %ecx + + + .globl ___gmpn_modexact_1c_odd + + +___gmpn_modexact_1c_odd: + + +Lent: + + + + + + mov %rdx, %r8 + shr %edx + + lea ___gmp_binvert_limb_table(%rip), %r9 + + + + and $127, %edx + mov %rcx, %r10 + + movzbl (%r9,%rdx), %edx + + mov (%rdi), %rax + lea (%rdi,%rsi,8), %r11 + mov %r8, %rdi + + lea (%rdx,%rdx), %ecx + imul %edx, %edx + + neg %rsi + + imul %edi, %edx + + sub %edx, %ecx + + lea (%rcx,%rcx), %edx + imul %ecx, %ecx + + imul %edi, %ecx + + sub %ecx, %edx + xor %ecx, %ecx + + lea (%rdx,%rdx), %r9 + imul %rdx, %rdx + + imul %r8, %rdx + + sub %rdx, %r9 + mov %r10, %rdx + + + + inc %rsi + jz Lone + + + .align 4, 0x90 +Ltop: + + + + + + + + + + sub %rdx, %rax + + adc $0, %rcx + imul %r9, %rax + + mul %r8 + + mov (%r11,%rsi,8), %rax + sub %rcx, %rax + setc %cl + + inc %rsi + jnz Ltop + + +Lone: + sub %rdx, %rax + + adc $0, %rcx + imul %r9, %rax + + mul %r8 + + lea (%rcx,%rdx), %rax + + ret + + + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/mp_bases.c b/vere/ext/gmp/gen/x86_64-macos/mpn/mp_bases.c new file mode 100644 index 0000000..c72c531 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/mp_bases.c @@ -0,0 +1,268 @@ +/* This file generated by gen-bases.c - DO NOT EDIT. */ + +#include "gmp-impl.h" + +#if GMP_NUMB_BITS != 64 +Error, error, this data is for 64 bits +#endif + +const struct bases mp_bases[257] = +{ + /* 0 */ { 0, 0, 0, 0, 0 }, + /* 1 */ { 0, 0, 0, 0, 0 }, + /* 2 */ { 64, CNST_LIMB(0xffffffffffffffff), CNST_LIMB(0x1fffffffffffffff), CNST_LIMB(0x1), CNST_LIMB(0x0) }, + /* 3 */ { 40, CNST_LIMB(0xa1849cc1a9a9e94e), CNST_LIMB(0x32b803473f7ad0f3), CNST_LIMB(0xa8b8b452291fe821), CNST_LIMB(0x846d550e37b5063d) }, + /* 4 */ { 32, CNST_LIMB(0x7fffffffffffffff), CNST_LIMB(0x3fffffffffffffff), CNST_LIMB(0x2), CNST_LIMB(0x0) }, + /* 5 */ { 27, CNST_LIMB(0x6e40d1a4143dcb94), CNST_LIMB(0x4a4d3c25e68dc57f), CNST_LIMB(0x6765c793fa10079d), CNST_LIMB(0x3ce9a36f23c0fc90) }, + /* 6 */ { 24, CNST_LIMB(0x6308c91b702a7cf4), CNST_LIMB(0x52b803473f7ad0f3), CNST_LIMB(0x41c21cb8e1000000), CNST_LIMB(0xf24f62335024a295) }, + /* 7 */ { 22, CNST_LIMB(0x5b3064eb3aa6d388), CNST_LIMB(0x59d5d9fd5010b366), CNST_LIMB(0x3642798750226111), CNST_LIMB(0x2df495ccaa57147b) }, + /* 8 */ { 21, CNST_LIMB(0x5555555555555555), CNST_LIMB(0x5fffffffffffffff), CNST_LIMB(0x3), CNST_LIMB(0x0) }, + /* 9 */ { 20, CNST_LIMB(0x50c24e60d4d4f4a7), CNST_LIMB(0x6570068e7ef5a1e7), CNST_LIMB(0xa8b8b452291fe821), CNST_LIMB(0x846d550e37b5063d) }, + /* 10 */ { 19, CNST_LIMB(0x4d104d427de7fbcc), CNST_LIMB(0x6a4d3c25e68dc57f), CNST_LIMB(0x8ac7230489e80000), CNST_LIMB(0xd83c94fb6d2ac34a) }, + /* 11 */ { 18, CNST_LIMB(0x4a00270775914e88), CNST_LIMB(0x6eb3a9f01975077f), CNST_LIMB(0x4d28cb56c33fa539), CNST_LIMB(0xa8adf7ae45e7577b) }, + /* 12 */ { 17, CNST_LIMB(0x4768ce0d05818e12), CNST_LIMB(0x72b803473f7ad0f3), CNST_LIMB(0x1eca170c00000000), CNST_LIMB(0xa10c2bec5da8f8f) }, + /* 13 */ { 17, CNST_LIMB(0x452e53e365907bda), CNST_LIMB(0x766a008e4788cbcd), CNST_LIMB(0x780c7372621bd74d), CNST_LIMB(0x10f4becafe412ec3) }, + /* 14 */ { 16, CNST_LIMB(0x433cfffb4b5aae55), CNST_LIMB(0x79d5d9fd5010b366), CNST_LIMB(0x1e39a5057d810000), CNST_LIMB(0xf08480f672b4e86) }, + /* 15 */ { 16, CNST_LIMB(0x41867711b4f85355), CNST_LIMB(0x7d053f6d26089673), CNST_LIMB(0x5b27ac993df97701), CNST_LIMB(0x6779c7f90dc42f48) }, + /* 16 */ { 16, CNST_LIMB(0x3fffffffffffffff), CNST_LIMB(0x7fffffffffffffff), CNST_LIMB(0x4), CNST_LIMB(0x0) }, + /* 17 */ { 15, CNST_LIMB(0x3ea16afd58b10966), CNST_LIMB(0x82cc7edf592262cf), CNST_LIMB(0x27b95e997e21d9f1), CNST_LIMB(0x9c71e11bab279323) }, + /* 18 */ { 15, CNST_LIMB(0x3d64598d154dc4de), CNST_LIMB(0x8570068e7ef5a1e7), CNST_LIMB(0x5da0e1e53c5c8000), CNST_LIMB(0x5dfaa697ec6f6a1c) }, + /* 19 */ { 15, CNST_LIMB(0x3c43c23018bb5563), CNST_LIMB(0x87ef05ae409a0288), CNST_LIMB(0xd2ae3299c1c4aedb), CNST_LIMB(0x3711783f6be7e9ec) }, + /* 20 */ { 14, CNST_LIMB(0x3b3b9a42873069c7), CNST_LIMB(0x8a4d3c25e68dc57f), CNST_LIMB(0x16bcc41e90000000), CNST_LIMB(0x6849b86a12b9b01e) }, + /* 21 */ { 14, CNST_LIMB(0x3a4898f06cf41ac9), CNST_LIMB(0x8c8ddd448f8b845a), CNST_LIMB(0x2d04b7fdd9c0ef49), CNST_LIMB(0x6bf097ba5ca5e239) }, + /* 22 */ { 14, CNST_LIMB(0x39680b13582e7c18), CNST_LIMB(0x8eb3a9f01975077f), CNST_LIMB(0x5658597bcaa24000), CNST_LIMB(0x7b8015c8d7af8f08) }, + /* 23 */ { 14, CNST_LIMB(0x3897b2b751ae561a), CNST_LIMB(0x90c10500d63aa658), CNST_LIMB(0xa0e2073737609371), CNST_LIMB(0x975a24b3a3151b38) }, + /* 24 */ { 13, CNST_LIMB(0x37d5aed131f19c98), CNST_LIMB(0x92b803473f7ad0f3), CNST_LIMB(0xc29e98000000000), CNST_LIMB(0x50bd367972689db1) }, + /* 25 */ { 13, CNST_LIMB(0x372068d20a1ee5ca), CNST_LIMB(0x949a784bcd1b8afe), CNST_LIMB(0x14adf4b7320334b9), CNST_LIMB(0x8c240c4aecb13bb5) }, + /* 26 */ { 13, CNST_LIMB(0x3676867e5d60de29), CNST_LIMB(0x966a008e4788cbcd), CNST_LIMB(0x226ed36478bfa000), CNST_LIMB(0xdbd2e56854e118c9) }, + /* 27 */ { 13, CNST_LIMB(0x35d6deeb388df86f), CNST_LIMB(0x982809d5be7072db), CNST_LIMB(0x383d9170b85ff80b), CNST_LIMB(0x2351ffcaa9c7c4ae) }, + /* 28 */ { 13, CNST_LIMB(0x354071d61c77fa2e), CNST_LIMB(0x99d5d9fd5010b366), CNST_LIMB(0x5a3c23e39c000000), CNST_LIMB(0x6b24188ca33b0636) }, + /* 29 */ { 13, CNST_LIMB(0x34b260c5671b18ac), CNST_LIMB(0x9b74948f5532da4b), CNST_LIMB(0x8e65137388122bcd), CNST_LIMB(0xcc3dceaf2b8ba99d) }, + /* 30 */ { 13, CNST_LIMB(0x342be986572b45cc), CNST_LIMB(0x9d053f6d26089673), CNST_LIMB(0xdd41bb36d259e000), CNST_LIMB(0x2832e835c6c7d6b6) }, + /* 31 */ { 12, CNST_LIMB(0x33ac61b998fbbdf2), CNST_LIMB(0x9e88c6b3626a72aa), CNST_LIMB(0xaee5720ee830681), CNST_LIMB(0x76b6aa272e1873c5) }, + /* 32 */ { 12, CNST_LIMB(0x3333333333333333), CNST_LIMB(0x9fffffffffffffff), CNST_LIMB(0x5), CNST_LIMB(0x0) }, + /* 33 */ { 12, CNST_LIMB(0x32bfd90114c12861), CNST_LIMB(0xa16bad3758efd873), CNST_LIMB(0x172588ad4f5f0981), CNST_LIMB(0x61eaf5d402c7bf4f) }, + /* 34 */ { 12, CNST_LIMB(0x3251dcf6169e45f2), CNST_LIMB(0xa2cc7edf592262cf), CNST_LIMB(0x211e44f7d02c1000), CNST_LIMB(0xeeb658123ffb27ec) }, + /* 35 */ { 12, CNST_LIMB(0x31e8d59f180dc630), CNST_LIMB(0xa4231623369e78e5), CNST_LIMB(0x2ee56725f06e5c71), CNST_LIMB(0x5d5e3762e6fdf509) }, + /* 36 */ { 12, CNST_LIMB(0x3184648db8153e7a), CNST_LIMB(0xa570068e7ef5a1e7), CNST_LIMB(0x41c21cb8e1000000), CNST_LIMB(0xf24f62335024a295) }, + /* 37 */ { 12, CNST_LIMB(0x312434e89c35dacd), CNST_LIMB(0xa6b3d78b6d3b24fb), CNST_LIMB(0x5b5b57f8a98a5dd1), CNST_LIMB(0x66ae7831762efb6f) }, + /* 38 */ { 12, CNST_LIMB(0x30c7fa349460a541), CNST_LIMB(0xa7ef05ae409a0288), CNST_LIMB(0x7dcff8986ea31000), CNST_LIMB(0x47388865a00f544) }, + /* 39 */ { 12, CNST_LIMB(0x306f6f4c8432bc6d), CNST_LIMB(0xa92203d587039cc1), CNST_LIMB(0xabd4211662a6b2a1), CNST_LIMB(0x7d673c33a123b54c) }, + /* 40 */ { 12, CNST_LIMB(0x301a557ffbfdd252), CNST_LIMB(0xaa4d3c25e68dc57f), CNST_LIMB(0xe8d4a51000000000), CNST_LIMB(0x19799812dea11197) }, + /* 41 */ { 11, CNST_LIMB(0x2fc873d1fda55f3b), CNST_LIMB(0xab7110e6ce866f2b), CNST_LIMB(0x7a32956ad081b79), CNST_LIMB(0xc27e62e0686feae) }, + /* 42 */ { 11, CNST_LIMB(0x2f799652a4e6dc49), CNST_LIMB(0xac8ddd448f8b845a), CNST_LIMB(0x9f49aaff0e86800), CNST_LIMB(0x9b6e7507064ce7c7) }, + /* 43 */ { 11, CNST_LIMB(0x2f2d8d8f64460aad), CNST_LIMB(0xada3f5fb9c415052), CNST_LIMB(0xce583bb812d37b3), CNST_LIMB(0x3d9ac2bf66cfed94) }, + /* 44 */ { 11, CNST_LIMB(0x2ee42e164e8f53a4), CNST_LIMB(0xaeb3a9f01975077f), CNST_LIMB(0x109b79a654c00000), CNST_LIMB(0xed46bc50ce59712a) }, + /* 45 */ { 11, CNST_LIMB(0x2e9d500984041dbd), CNST_LIMB(0xafbd42b465836767), CNST_LIMB(0x1543beff214c8b95), CNST_LIMB(0x813d97e2c89b8d46) }, + /* 46 */ { 11, CNST_LIMB(0x2e58cec05a6a8144), CNST_LIMB(0xb0c10500d63aa658), CNST_LIMB(0x1b149a79459a3800), CNST_LIMB(0x2e81751956af8083) }, + /* 47 */ { 11, CNST_LIMB(0x2e1688743ef9104c), CNST_LIMB(0xb1bf311e95d00de3), CNST_LIMB(0x224edfb5434a830f), CNST_LIMB(0xdd8e0a95e30c0988) }, + /* 48 */ { 11, CNST_LIMB(0x2dd65df7a583598f), CNST_LIMB(0xb2b803473f7ad0f3), CNST_LIMB(0x2b3fb00000000000), CNST_LIMB(0x7ad4dd48a0b5b167) }, + /* 49 */ { 11, CNST_LIMB(0x2d9832759d5369c4), CNST_LIMB(0xb3abb3faa02166cc), CNST_LIMB(0x3642798750226111), CNST_LIMB(0x2df495ccaa57147b) }, + /* 50 */ { 11, CNST_LIMB(0x2d5beb38dcd1394c), CNST_LIMB(0xb49a784bcd1b8afe), CNST_LIMB(0x43c33c1937564800), CNST_LIMB(0xe392010175ee5962) }, + /* 51 */ { 11, CNST_LIMB(0x2d216f7943e2ba6a), CNST_LIMB(0xb5848226989d33c3), CNST_LIMB(0x54411b2441c3cd8b), CNST_LIMB(0x84eaf11b2fe7738e) }, + /* 52 */ { 11, CNST_LIMB(0x2ce8a82efbb3ff2c), CNST_LIMB(0xb66a008e4788cbcd), CNST_LIMB(0x6851455acd400000), CNST_LIMB(0x3a1e3971e008995d) }, + /* 53 */ { 11, CNST_LIMB(0x2cb17fea7ad7e332), CNST_LIMB(0xb74b1fd64e0753c6), CNST_LIMB(0x80a23b117c8feb6d), CNST_LIMB(0xfd7a462344ffce25) }, + /* 54 */ { 11, CNST_LIMB(0x2c7be2b0cfa1ba50), CNST_LIMB(0xb82809d5be7072db), CNST_LIMB(0x9dff7d32d5dc1800), CNST_LIMB(0x9eca40b40ebcef8a) }, + /* 55 */ { 11, CNST_LIMB(0x2c47bddba92d7463), CNST_LIMB(0xb900e6160002ccfe), CNST_LIMB(0xc155af6faeffe6a7), CNST_LIMB(0x52fa161a4a48e43d) }, + /* 56 */ { 11, CNST_LIMB(0x2c14fffcaa8b131e), CNST_LIMB(0xb9d5d9fd5010b366), CNST_LIMB(0xebb7392e00000000), CNST_LIMB(0x1607a2cbacf930c1) }, + /* 57 */ { 10, CNST_LIMB(0x2be398c3a38be053), CNST_LIMB(0xbaa708f58014d37c), CNST_LIMB(0x50633659656d971), CNST_LIMB(0x97a014f8e3be55f1) }, + /* 58 */ { 10, CNST_LIMB(0x2bb378e758451068), CNST_LIMB(0xbb74948f5532da4b), CNST_LIMB(0x5fa8624c7fba400), CNST_LIMB(0x568df8b76cbf212c) }, + /* 59 */ { 10, CNST_LIMB(0x2b8492108be5e5f7), CNST_LIMB(0xbc3e9ca2e1a05533), CNST_LIMB(0x717d9faa73c5679), CNST_LIMB(0x20ba7c4b4e6ef492) }, + /* 60 */ { 10, CNST_LIMB(0x2b56d6c70d55481b), CNST_LIMB(0xbd053f6d26089673), CNST_LIMB(0x86430aac6100000), CNST_LIMB(0xe81ee46b9ef492f5) }, + /* 61 */ { 10, CNST_LIMB(0x2b2a3a608c72ddd5), CNST_LIMB(0xbdc899ab3ff56c5e), CNST_LIMB(0x9e64d9944b57f29), CNST_LIMB(0x9dc0d10d51940416) }, + /* 62 */ { 10, CNST_LIMB(0x2afeb0f1060c7e41), CNST_LIMB(0xbe88c6b3626a72aa), CNST_LIMB(0xba5ca5392cb0400), CNST_LIMB(0x5fa8ed2f450272a5) }, + /* 63 */ { 10, CNST_LIMB(0x2ad42f3c9aca595c), CNST_LIMB(0xbf45e08bcf06554e), CNST_LIMB(0xdab2ce1d022cd81), CNST_LIMB(0x2ba9eb8c5e04e641) }, + /* 64 */ { 10, CNST_LIMB(0x2aaaaaaaaaaaaaaa), CNST_LIMB(0xbfffffffffffffff), CNST_LIMB(0x6), CNST_LIMB(0x0) }, + /* 65 */ { 10, CNST_LIMB(0x2a82193a13425883), CNST_LIMB(0xc0b73cb42e16914c), CNST_LIMB(0x12aeed5fd3e2d281), CNST_LIMB(0xb67759cc00287bf1) }, + /* 66 */ { 10, CNST_LIMB(0x2a5a717672f66450), CNST_LIMB(0xc16bad3758efd873), CNST_LIMB(0x15c3da1572d50400), CNST_LIMB(0x78621feeb7f4ed33) }, + /* 67 */ { 10, CNST_LIMB(0x2a33aa6e56d9c71c), CNST_LIMB(0xc21d6713f453f356), CNST_LIMB(0x194c05534f75ee29), CNST_LIMB(0x43d55b5f72943bc0) }, + /* 68 */ { 10, CNST_LIMB(0x2a0dbbaa3bdfcea4), CNST_LIMB(0xc2cc7edf592262cf), CNST_LIMB(0x1d56299ada100000), CNST_LIMB(0x173decb64d1d4409) }, + /* 69 */ { 10, CNST_LIMB(0x29e89d244eb4bfaf), CNST_LIMB(0xc379084815b5774c), CNST_LIMB(0x21f2a089a4ff4f79), CNST_LIMB(0xe29fb54fd6b6074f) }, + /* 70 */ { 10, CNST_LIMB(0x29c44740d7db51e6), CNST_LIMB(0xc4231623369e78e5), CNST_LIMB(0x2733896c68d9a400), CNST_LIMB(0xa1f1f5c210d54e62) }, + /* 71 */ { 10, CNST_LIMB(0x29a0b2c743b14d74), CNST_LIMB(0xc4caba789e2b8687), CNST_LIMB(0x2d2cf2c33b533c71), CNST_LIMB(0x6aac7f9bfafd57b2) }, + /* 72 */ { 10, CNST_LIMB(0x297dd8dbb7c22a2d), CNST_LIMB(0xc570068e7ef5a1e7), CNST_LIMB(0x33f506e440000000), CNST_LIMB(0x3b563c2478b72ee2) }, + /* 73 */ { 10, CNST_LIMB(0x295bb2f9285c8c1b), CNST_LIMB(0xc6130af40bc0ecbf), CNST_LIMB(0x3ba43bec1d062211), CNST_LIMB(0x12b536b574e92d1b) }, + /* 74 */ { 10, CNST_LIMB(0x293a3aebe2be1c92), CNST_LIMB(0xc6b3d78b6d3b24fb), CNST_LIMB(0x4455872d8fd4e400), CNST_LIMB(0xdf86c03020404fa5) }, + /* 75 */ { 10, CNST_LIMB(0x29196acc815ebd9f), CNST_LIMB(0xc7527b930c965bf2), CNST_LIMB(0x4e2694539f2f6c59), CNST_LIMB(0xa34adf02234eea8e) }, + /* 76 */ { 10, CNST_LIMB(0x28f93cfb40f5c22a), CNST_LIMB(0xc7ef05ae409a0288), CNST_LIMB(0x5938006c18900000), CNST_LIMB(0x6f46eb8574eb59dd) }, + /* 77 */ { 10, CNST_LIMB(0x28d9ac1badc64117), CNST_LIMB(0xc88983ed6985bae5), CNST_LIMB(0x65ad9912474aa649), CNST_LIMB(0x42459b481df47cec) }, + /* 78 */ { 10, CNST_LIMB(0x28bab310a196b478), CNST_LIMB(0xc92203d587039cc1), CNST_LIMB(0x73ae9ff4241ec400), CNST_LIMB(0x1b424b95d80ca505) }, + /* 79 */ { 10, CNST_LIMB(0x289c4cf88b774469), CNST_LIMB(0xc9b892675266f66c), CNST_LIMB(0x836612ee9c4ce1e1), CNST_LIMB(0xf2c1b982203a0dac) }, + /* 80 */ { 10, CNST_LIMB(0x287e7529fb244e91), CNST_LIMB(0xca4d3c25e68dc57f), CNST_LIMB(0x9502f90000000000), CNST_LIMB(0xb7cdfd9d7bdbab7d) }, + /* 81 */ { 10, CNST_LIMB(0x286127306a6a7a53), CNST_LIMB(0xcae00d1cfdeb43cf), CNST_LIMB(0xa8b8b452291fe821), CNST_LIMB(0x846d550e37b5063d) }, + /* 82 */ { 10, CNST_LIMB(0x28445ec93f792b1e), CNST_LIMB(0xcb7110e6ce866f2b), CNST_LIMB(0xbebf59a07dab4400), CNST_LIMB(0x57931eeaf85cf64f) }, + /* 83 */ { 10, CNST_LIMB(0x282817e1038950fa), CNST_LIMB(0xcc0052b18b0e2a19), CNST_LIMB(0xd7540d4093bc3109), CNST_LIMB(0x305a944507c82f47) }, + /* 84 */ { 10, CNST_LIMB(0x280c4e90c9ab1f45), CNST_LIMB(0xcc8ddd448f8b845a), CNST_LIMB(0xf2b96616f1900000), CNST_LIMB(0xe007ccc9c22781a) }, + /* 85 */ { 9, CNST_LIMB(0x27f0ff1bc1ee87cd), CNST_LIMB(0xcd19bb053fb0284e), CNST_LIMB(0x336de62af2bca35), CNST_LIMB(0x3e92c42e000eeed4) }, + /* 86 */ { 9, CNST_LIMB(0x27d625ecf571c340), CNST_LIMB(0xcda3f5fb9c415052), CNST_LIMB(0x39235ec33d49600), CNST_LIMB(0x1ebe59130db2795e) }, + /* 87 */ { 9, CNST_LIMB(0x27bbbf95282fcd45), CNST_LIMB(0xce2c97d694adab3f), CNST_LIMB(0x3f674e539585a17), CNST_LIMB(0x268859e90f51b89) }, + /* 88 */ { 9, CNST_LIMB(0x27a1c8c8ddaf84da), CNST_LIMB(0xceb3a9f01975077f), CNST_LIMB(0x4645b6958000000), CNST_LIMB(0xd24cde0463108cfa) }, + /* 89 */ { 9, CNST_LIMB(0x27883e5e7df3f518), CNST_LIMB(0xcf393550f3aa6906), CNST_LIMB(0x4dcb74afbc49c19), CNST_LIMB(0xa536009f37adc383) }, + /* 90 */ { 9, CNST_LIMB(0x276f1d4c9847e90e), CNST_LIMB(0xcfbd42b465836767), CNST_LIMB(0x56064e1d18d9a00), CNST_LIMB(0x7cea06ce1c9ace10) }, + /* 91 */ { 9, CNST_LIMB(0x275662a841b30191), CNST_LIMB(0xd03fda8b97997f33), CNST_LIMB(0x5f04fe2cd8a39fb), CNST_LIMB(0x58db032e72e8ba43) }, + /* 92 */ { 9, CNST_LIMB(0x273e0ba38d15a47b), CNST_LIMB(0xd0c10500d63aa658), CNST_LIMB(0x68d74421f5c0000), CNST_LIMB(0x388cc17cae105447) }, + /* 93 */ { 9, CNST_LIMB(0x2726158c1b13cf03), CNST_LIMB(0xd140c9faa1e5439e), CNST_LIMB(0x738df1f6ab4827d), CNST_LIMB(0x1b92672857620ce0) }, + /* 94 */ { 9, CNST_LIMB(0x270e7dc9c01d8e9b), CNST_LIMB(0xd1bf311e95d00de3), CNST_LIMB(0x7f3afbc9cfb5e00), CNST_LIMB(0x18c6a9575c2ade4) }, + /* 95 */ { 9, CNST_LIMB(0x26f741dd3f070d61), CNST_LIMB(0xd23c41d42727c808), CNST_LIMB(0x8bf187fba88f35f), CNST_LIMB(0xd44da7da8e44b24f) }, + /* 96 */ { 9, CNST_LIMB(0x26e05f5f16c2159e), CNST_LIMB(0xd2b803473f7ad0f3), CNST_LIMB(0x99c600000000000), CNST_LIMB(0xaa2f78f1b4cc6794) }, + /* 97 */ { 9, CNST_LIMB(0x26c9d3fe61e80598), CNST_LIMB(0xd3327c6ab49ca6c8), CNST_LIMB(0xa8ce21eb6531361), CNST_LIMB(0x843c067d091ee4cc) }, + /* 98 */ { 9, CNST_LIMB(0x26b39d7fc6ddab08), CNST_LIMB(0xd3abb3faa02166cc), CNST_LIMB(0xb92112c1a0b6200), CNST_LIMB(0x62005e1e913356e3) }, + /* 99 */ { 9, CNST_LIMB(0x269db9bc7772a5cc), CNST_LIMB(0xd423b07e986aa967), CNST_LIMB(0xcad7718b8747c43), CNST_LIMB(0x4316eed01dedd518) }, + /* 100 */ { 9, CNST_LIMB(0x268826a13ef3fde6), CNST_LIMB(0xd49a784bcd1b8afe), CNST_LIMB(0xde0b6b3a7640000), CNST_LIMB(0x2725dd1d243aba0e) }, + /* 101 */ { 9, CNST_LIMB(0x2672e22d9dbdbd9f), CNST_LIMB(0xd510118708a8f8dd), CNST_LIMB(0xf2d8cf5fe6d74c5), CNST_LIMB(0xddd9057c24cb54f) }, + /* 102 */ { 9, CNST_LIMB(0x265dea72f169cc99), CNST_LIMB(0xd5848226989d33c3), CNST_LIMB(0x1095d25bfa712600), CNST_LIMB(0xedeee175a736d2a1) }, + /* 103 */ { 9, CNST_LIMB(0x26493d93a8cb2514), CNST_LIMB(0xd5f7cff41e09aeb8), CNST_LIMB(0x121b7c4c3698faa7), CNST_LIMB(0xc4699f3df8b6b328) }, + /* 104 */ { 9, CNST_LIMB(0x2634d9c282f3ef82), CNST_LIMB(0xd66a008e4788cbcd), CNST_LIMB(0x13c09e8d68000000), CNST_LIMB(0x9ebbe7d859cb5a7c) }, + /* 105 */ { 9, CNST_LIMB(0x2620bd41d8933adc), CNST_LIMB(0xd6db196a761949d9), CNST_LIMB(0x15876ccb0b709ca9), CNST_LIMB(0x7c828b9887eb2179) }, + /* 106 */ { 9, CNST_LIMB(0x260ce662ef04088a), CNST_LIMB(0xd74b1fd64e0753c6), CNST_LIMB(0x17723c2976da2a00), CNST_LIMB(0x5d652ab99001adcf) }, + /* 107 */ { 9, CNST_LIMB(0x25f95385547353fd), CNST_LIMB(0xd7ba18f93502e409), CNST_LIMB(0x198384e9c259048b), CNST_LIMB(0x4114f1754e5d7b32) }, + /* 108 */ { 9, CNST_LIMB(0x25e60316448db8e1), CNST_LIMB(0xd82809d5be7072db), CNST_LIMB(0x1bbde41dfeec0000), CNST_LIMB(0x274b7c902f7e0188) }, + /* 109 */ { 9, CNST_LIMB(0x25d2f390152f74f5), CNST_LIMB(0xd894f74b06ef8b40), CNST_LIMB(0x1e241d6e3337910d), CNST_LIMB(0xfc9e0fbb32e210c) }, + /* 110 */ { 9, CNST_LIMB(0x25c02379aa9ad043), CNST_LIMB(0xd900e6160002ccfe), CNST_LIMB(0x20b91cee9901ee00), CNST_LIMB(0xf4afa3e594f8ea1f) }, + /* 111 */ { 9, CNST_LIMB(0x25ad9165f2c18907), CNST_LIMB(0xd96bdad2acb5f5ef), CNST_LIMB(0x237ff9079863dfef), CNST_LIMB(0xcd85c32e9e4437b0) }, + /* 112 */ { 9, CNST_LIMB(0x259b3bf36735c90c), CNST_LIMB(0xd9d5d9fd5010b366), CNST_LIMB(0x267bf47000000000), CNST_LIMB(0xa9bbb147e0dd92a8) }, + /* 113 */ { 9, CNST_LIMB(0x258921cb955e7693), CNST_LIMB(0xda3ee7f38e181ed0), CNST_LIMB(0x29b08039fbeda7f1), CNST_LIMB(0x8900447b70e8eb82) }, + /* 114 */ { 9, CNST_LIMB(0x257741a2ac9170af), CNST_LIMB(0xdaa708f58014d37c), CNST_LIMB(0x2d213df34f65f200), CNST_LIMB(0x6b0a92adaad5848a) }, + /* 115 */ { 9, CNST_LIMB(0x25659a3711bc827d), CNST_LIMB(0xdb0e4126bcc86bd7), CNST_LIMB(0x30d201d957a7c2d3), CNST_LIMB(0x4f990ad8740f0ee5) }, + /* 116 */ { 9, CNST_LIMB(0x25542a50f84b9c39), CNST_LIMB(0xdb74948f5532da4b), CNST_LIMB(0x34c6d52160f40000), CNST_LIMB(0x3670a9663a8d3610) }, + /* 117 */ { 9, CNST_LIMB(0x2542f0c20000377d), CNST_LIMB(0xdbda071cc67e6db5), CNST_LIMB(0x3903f855d8f4c755), CNST_LIMB(0x1f5c44188057be3c) }, + /* 118 */ { 9, CNST_LIMB(0x2531ec64d772bd64), CNST_LIMB(0xdc3e9ca2e1a05533), CNST_LIMB(0x3d8de5c8ec59b600), CNST_LIMB(0xa2bea956c4e4977) }, + /* 119 */ { 9, CNST_LIMB(0x25211c1ce2fb5a6e), CNST_LIMB(0xdca258dca9331635), CNST_LIMB(0x4269541d1ff01337), CNST_LIMB(0xed68b23033c3637e) }, + /* 120 */ { 9, CNST_LIMB(0x25107ed5e7c3ec3b), CNST_LIMB(0xdd053f6d26089673), CNST_LIMB(0x479b38e478000000), CNST_LIMB(0xc99cf624e50549c5) }, + /* 121 */ { 9, CNST_LIMB(0x25001383bac8a744), CNST_LIMB(0xdd6753e032ea0efe), CNST_LIMB(0x4d28cb56c33fa539), CNST_LIMB(0xa8adf7ae45e7577b) }, + /* 122 */ { 9, CNST_LIMB(0x24efd921f390bce3), CNST_LIMB(0xddc899ab3ff56c5e), CNST_LIMB(0x5317871fa13aba00), CNST_LIMB(0x8a5bc740b1c113e5) }, + /* 123 */ { 9, CNST_LIMB(0x24dfceb3a26bb203), CNST_LIMB(0xde29142e0e01401f), CNST_LIMB(0x596d2f44de9fa71b), CNST_LIMB(0x6e6c7efb81cfbb9b) }, + /* 124 */ { 9, CNST_LIMB(0x24cff3430a0341a7), CNST_LIMB(0xde88c6b3626a72aa), CNST_LIMB(0x602fd125c47c0000), CNST_LIMB(0x54aba5c5cada5f10) }, + /* 125 */ { 9, CNST_LIMB(0x24c045e15c149931), CNST_LIMB(0xdee7b471b3a9507d), CNST_LIMB(0x6765c793fa10079d), CNST_LIMB(0x3ce9a36f23c0fc90) }, + /* 126 */ { 9, CNST_LIMB(0x24b0c5a679267ae2), CNST_LIMB(0xdf45e08bcf06554e), CNST_LIMB(0x6f15be069b847e00), CNST_LIMB(0x26fb43de2c8cd2a8) }, + /* 127 */ { 9, CNST_LIMB(0x24a171b0b31461c8), CNST_LIMB(0xdfa34e1177c23362), CNST_LIMB(0x7746b3e82a77047f), CNST_LIMB(0x12b94793db8486a1) }, + /* 128 */ { 9, CNST_LIMB(0x2492492492492492), CNST_LIMB(0xdfffffffffffffff), CNST_LIMB(0x7), CNST_LIMB(0x0) }, + /* 129 */ { 9, CNST_LIMB(0x24834b2c9d85cdfe), CNST_LIMB(0xe05bf942dbbc2145), CNST_LIMB(0x894953f7ea890481), CNST_LIMB(0xdd5deca404c0156d) }, + /* 130 */ { 9, CNST_LIMB(0x247476f924137501), CNST_LIMB(0xe0b73cb42e16914c), CNST_LIMB(0x932abffea4848200), CNST_LIMB(0xbd51373330291de0) }, + /* 131 */ { 9, CNST_LIMB(0x2465cbc00a40cec0), CNST_LIMB(0xe111cd1d5133412e), CNST_LIMB(0x9dacb687d3d6a163), CNST_LIMB(0x9fa4025d66f23085) }, + /* 132 */ { 9, CNST_LIMB(0x245748bc980e0427), CNST_LIMB(0xe16bad3758efd873), CNST_LIMB(0xa8d8102a44840000), CNST_LIMB(0x842530ee2db4949d) }, + /* 133 */ { 9, CNST_LIMB(0x2448ed2f49eb0633), CNST_LIMB(0xe1c4dfab90aab5ef), CNST_LIMB(0xb4b60f9d140541e5), CNST_LIMB(0x6aa7f2766b03dc25) }, + /* 134 */ { 9, CNST_LIMB(0x243ab85da36e3167), CNST_LIMB(0xe21d6713f453f356), CNST_LIMB(0xc15065d4856e4600), CNST_LIMB(0x53035ba7ebf32e8d) }, + /* 135 */ { 9, CNST_LIMB(0x242ca99203ea8c18), CNST_LIMB(0xe27545fba4fe385a), CNST_LIMB(0xceb1363f396d23c7), CNST_LIMB(0x3d12091fc9fb4914) }, + /* 136 */ { 9, CNST_LIMB(0x241ec01b7cce4ea0), CNST_LIMB(0xe2cc7edf592262cf), CNST_LIMB(0xdce31b2488000000), CNST_LIMB(0x28b1cb81b1ef1849) }, + /* 137 */ { 9, CNST_LIMB(0x2410fb4da9b3b0fc), CNST_LIMB(0xe323142dc8c66b55), CNST_LIMB(0xebf12a24bca135c9), CNST_LIMB(0x15c35be67ae3e2c9) }, + /* 138 */ { 9, CNST_LIMB(0x24035a808a0f315e), CNST_LIMB(0xe379084815b5774c), CNST_LIMB(0xfbe6f8dbf88f4a00), CNST_LIMB(0x42a17bd09be1ff0) }, + /* 139 */ { 8, CNST_LIMB(0x23f5dd105c67ab9d), CNST_LIMB(0xe3ce5d822ff4b643), CNST_LIMB(0x1ef156c084ce761), CNST_LIMB(0x8bf461f03cf0bbf) }, + /* 140 */ { 8, CNST_LIMB(0x23e8825d7b05abb1), CNST_LIMB(0xe4231623369e78e5), CNST_LIMB(0x20c4e3b94a10000), CNST_LIMB(0xf3fbb43f68a32d05) }, + /* 141 */ { 8, CNST_LIMB(0x23db49cc3a0866fe), CNST_LIMB(0xe4773465d54aded7), CNST_LIMB(0x22b0695a08ba421), CNST_LIMB(0xd84f44c48564dc19) }, + /* 142 */ { 8, CNST_LIMB(0x23ce32c4c6cfb9f5), CNST_LIMB(0xe4caba789e2b8687), CNST_LIMB(0x24b4f35d7a4c100), CNST_LIMB(0xbe58ebcce7956abe) }, + /* 143 */ { 8, CNST_LIMB(0x23c13cb308ab6ab7), CNST_LIMB(0xe51daa7e60fdd34c), CNST_LIMB(0x26d397284975781), CNST_LIMB(0xa5fac463c7c134b7) }, + /* 144 */ { 8, CNST_LIMB(0x23b4670682c0c709), CNST_LIMB(0xe570068e7ef5a1e7), CNST_LIMB(0x290d74100000000), CNST_LIMB(0x8f19241e28c7d757) }, + /* 145 */ { 8, CNST_LIMB(0x23a7b13237187c8b), CNST_LIMB(0xe5c1d0b53bc09fca), CNST_LIMB(0x2b63b3a37866081), CNST_LIMB(0x799a6d046c0ae1ae) }, + /* 146 */ { 8, CNST_LIMB(0x239b1aac8ac74728), CNST_LIMB(0xe6130af40bc0ecbf), CNST_LIMB(0x2dd789f4d894100), CNST_LIMB(0x6566e37d746a9e40) }, + /* 147 */ { 8, CNST_LIMB(0x238ea2ef2b24c379), CNST_LIMB(0xe663b741df9c37c0), CNST_LIMB(0x306a35e51b58721), CNST_LIMB(0x526887dbfb5f788f) }, + /* 148 */ { 8, CNST_LIMB(0x23824976f4045a26), CNST_LIMB(0xe6b3d78b6d3b24fb), CNST_LIMB(0x331d01712e10000), CNST_LIMB(0x408af3382b8efd3d) }, + /* 149 */ { 8, CNST_LIMB(0x23760dc3d6e4d729), CNST_LIMB(0xe7036db376537b90), CNST_LIMB(0x35f14200a827c61), CNST_LIMB(0x2fbb374806ec05f1) }, + /* 150 */ { 8, CNST_LIMB(0x2369ef58c30bd43e), CNST_LIMB(0xe7527b930c965bf2), CNST_LIMB(0x38e858b62216100), CNST_LIMB(0x1fe7c0f0afce87fe) }, + /* 151 */ { 8, CNST_LIMB(0x235dedbb8e82aa1c), CNST_LIMB(0xe7a102f9d39a9331), CNST_LIMB(0x3c03b2c13176a41), CNST_LIMB(0x11003d517540d32e) }, + /* 152 */ { 8, CNST_LIMB(0x23520874dfeb1ffd), CNST_LIMB(0xe7ef05ae409a0288), CNST_LIMB(0x3f44c9b21000000), CNST_LIMB(0x2f5810f98eff0dc) }, + /* 153 */ { 8, CNST_LIMB(0x23463f1019228dd7), CNST_LIMB(0xe83c856dd81804b7), CNST_LIMB(0x42ad23cef3113c1), CNST_LIMB(0xeb72e35e7840d910) }, + /* 154 */ { 8, CNST_LIMB(0x233a911b42aa9b3c), CNST_LIMB(0xe88983ed6985bae5), CNST_LIMB(0x463e546b19a2100), CNST_LIMB(0xd27de19593dc3614) }, + /* 155 */ { 8, CNST_LIMB(0x232efe26f7cf33f9), CNST_LIMB(0xe8d602d948f83829), CNST_LIMB(0x49f9fc3f96684e1), CNST_LIMB(0xbaf391fd3e5e6fc2) }, + /* 156 */ { 8, CNST_LIMB(0x232385c65381b485), CNST_LIMB(0xe92203d587039cc1), CNST_LIMB(0x4de1c9c5dc10000), CNST_LIMB(0xa4bd38c55228c81d) }, + /* 157 */ { 8, CNST_LIMB(0x2318278edde1b39b), CNST_LIMB(0xe96d887e26cd57b7), CNST_LIMB(0x51f77994116d2a1), CNST_LIMB(0x8fc5a8de8e1de782) }, + /* 158 */ { 8, CNST_LIMB(0x230ce3187a6c2be9), CNST_LIMB(0xe9b892675266f66c), CNST_LIMB(0x563cd6bb3398100), CNST_LIMB(0x7bf9265bea9d3a3b) }, + /* 159 */ { 8, CNST_LIMB(0x2301b7fd56ca21bb), CNST_LIMB(0xea03231d8d8224ba), CNST_LIMB(0x5ab3bb270beeb01), CNST_LIMB(0x69454b325983dccd) }, + /* 160 */ { 8, CNST_LIMB(0x22f6a5d9da38341c), CNST_LIMB(0xea4d3c25e68dc57f), CNST_LIMB(0x5f5e10000000000), CNST_LIMB(0x5798ee2308c39df9) }, + /* 161 */ { 8, CNST_LIMB(0x22ebac4c9580d89f), CNST_LIMB(0xea96defe264b59be), CNST_LIMB(0x643dce0ec16f501), CNST_LIMB(0x46e40ba0fa66a753) }, + /* 162 */ { 8, CNST_LIMB(0x22e0caf633834beb), CNST_LIMB(0xeae00d1cfdeb43cf), CNST_LIMB(0x6954fe21e3e8100), CNST_LIMB(0x3717b0870b0db3a7) }, + /* 163 */ { 8, CNST_LIMB(0x22d601796a418886), CNST_LIMB(0xeb28c7f233bdd372), CNST_LIMB(0x6ea5b9755f440a1), CNST_LIMB(0x2825e6775d11cdeb) }, + /* 164 */ { 8, CNST_LIMB(0x22cb4f7aec6fd8b4), CNST_LIMB(0xeb7110e6ce866f2b), CNST_LIMB(0x74322a1c0410000), CNST_LIMB(0x1a01a1c09d1b4dac) }, + /* 165 */ { 8, CNST_LIMB(0x22c0b4a15b80d83e), CNST_LIMB(0xebb8e95d3f7d9df2), CNST_LIMB(0x79fc8b6ae8a46e1), CNST_LIMB(0xc9eb0a8bebc8f3e) }, + /* 166 */ { 8, CNST_LIMB(0x22b630953a28f77a), CNST_LIMB(0xec0052b18b0e2a19), CNST_LIMB(0x80072a66d512100), CNST_LIMB(0xffe357ff59e6a004) }, + /* 167 */ { 8, CNST_LIMB(0x22abc300df54ca7c), CNST_LIMB(0xec474e39705912d2), CNST_LIMB(0x86546633b42b9c1), CNST_LIMB(0xe7dfd1be05fa61a8) }, + /* 168 */ { 8, CNST_LIMB(0x22a16b90698da5d2), CNST_LIMB(0xec8ddd448f8b845a), CNST_LIMB(0x8ce6b0861000000), CNST_LIMB(0xd11ed6fc78f760e5) }, + /* 169 */ { 8, CNST_LIMB(0x229729f1b2c83ded), CNST_LIMB(0xecd4011c8f11979a), CNST_LIMB(0x93c08e16a022441), CNST_LIMB(0xbb8db609dd29ebfe) }, + /* 170 */ { 8, CNST_LIMB(0x228cfdd444992f78), CNST_LIMB(0xed19bb053fb0284e), CNST_LIMB(0x9ae49717f026100), CNST_LIMB(0xa71aec8d1813d532) }, + /* 171 */ { 8, CNST_LIMB(0x2282e6e94ccb8588), CNST_LIMB(0xed5f0c3cbf8fa470), CNST_LIMB(0xa25577ae24c1a61), CNST_LIMB(0x93b612a9f20fbc02) }, + /* 172 */ { 8, CNST_LIMB(0x2278e4e392557ecf), CNST_LIMB(0xeda3f5fb9c415052), CNST_LIMB(0xaa15f068e610000), CNST_LIMB(0x814fc7b19a67d317) }, + /* 173 */ { 8, CNST_LIMB(0x226ef7776aa7fd29), CNST_LIMB(0xede87974f3c81855), CNST_LIMB(0xb228d6bf7577921), CNST_LIMB(0x6fd9a03f2e0a4b7c) }, + /* 174 */ { 8, CNST_LIMB(0x22651e5aaf5532d0), CNST_LIMB(0xee2c97d694adab3f), CNST_LIMB(0xba91158ef5c4100), CNST_LIMB(0x5f4615a38d0d316e) }, + /* 175 */ { 8, CNST_LIMB(0x225b5944b40b4694), CNST_LIMB(0xee7052491d2c3e64), CNST_LIMB(0xc351ad9aec0b681), CNST_LIMB(0x4f8876863479a286) }, + /* 176 */ { 8, CNST_LIMB(0x2251a7ee3cdfcca5), CNST_LIMB(0xeeb3a9f01975077f), CNST_LIMB(0xcc6db6100000000), CNST_LIMB(0x4094d8a3041b60eb) }, + /* 177 */ { 8, CNST_LIMB(0x22480a1174e913d9), CNST_LIMB(0xeef69fea211b2627), CNST_LIMB(0xd5e85d09025c181), CNST_LIMB(0x32600b8ed883a09b) }, + /* 178 */ { 8, CNST_LIMB(0x223e7f69e522683c), CNST_LIMB(0xef393550f3aa6906), CNST_LIMB(0xdfc4e816401c100), CNST_LIMB(0x24df8c6eb4b6d1f1) }, + /* 179 */ { 8, CNST_LIMB(0x223507b46b988abe), CNST_LIMB(0xef7b6b399471103e), CNST_LIMB(0xea06b4c72947221), CNST_LIMB(0x18097a8ee151acef) }, + /* 180 */ { 8, CNST_LIMB(0x222ba2af32dbbb9e), CNST_LIMB(0xefbd42b465836767), CNST_LIMB(0xf4b139365210000), CNST_LIMB(0xbd48cc8ec1cd8e3) }, + /* 181 */ { 8, CNST_LIMB(0x22225019a9b4d16c), CNST_LIMB(0xeffebccd41ffcd5c), CNST_LIMB(0xffc80497d520961), CNST_LIMB(0x3807a8d67485fb) }, + /* 182 */ { 8, CNST_LIMB(0x22190fb47b1af172), CNST_LIMB(0xf03fda8b97997f33), CNST_LIMB(0x10b4ebfca1dee100), CNST_LIMB(0xea5768860b62e8d8) }, + /* 183 */ { 8, CNST_LIMB(0x220fe14186679801), CNST_LIMB(0xf0809cf27f703d52), CNST_LIMB(0x117492de921fc141), CNST_LIMB(0xd54faf5b635c5005) }, + /* 184 */ { 8, CNST_LIMB(0x2206c483d7c6b786), CNST_LIMB(0xf0c10500d63aa658), CNST_LIMB(0x123bb2ce41000000), CNST_LIMB(0xc14a56233a377926) }, + /* 185 */ { 8, CNST_LIMB(0x21fdb93fa0e0ccc5), CNST_LIMB(0xf10113b153c8ea7b), CNST_LIMB(0x130a8b6157bdecc1), CNST_LIMB(0xae39a88db7cd329f) }, + /* 186 */ { 8, CNST_LIMB(0x21f4bf3a31bcdcaa), CNST_LIMB(0xf140c9faa1e5439e), CNST_LIMB(0x13e15dede0e8a100), CNST_LIMB(0x9c10bde69efa7ab6) }, + /* 187 */ { 8, CNST_LIMB(0x21ebd639f1d86584), CNST_LIMB(0xf18028cf72976a4e), CNST_LIMB(0x14c06d941c0ca7e1), CNST_LIMB(0x8ac36c42a2836497) }, + /* 188 */ { 8, CNST_LIMB(0x21e2fe06597361a6), CNST_LIMB(0xf1bf311e95d00de3), CNST_LIMB(0x15a7ff487a810000), CNST_LIMB(0x7a463c8b84f5ef67) }, + /* 189 */ { 8, CNST_LIMB(0x21da3667eb0e8ccb), CNST_LIMB(0xf1fde3d30e812642), CNST_LIMB(0x169859ddc5c697a1), CNST_LIMB(0x6a8e5f5ad090fd4b) }, + /* 190 */ { 8, CNST_LIMB(0x21d17f282d1a300e), CNST_LIMB(0xf23c41d42727c808), CNST_LIMB(0x1791c60f6fed0100), CNST_LIMB(0x5b91a2943596fc56) }, + /* 191 */ { 8, CNST_LIMB(0x21c8d811a3d3c9e1), CNST_LIMB(0xf27a4c0585cbf805), CNST_LIMB(0x18948e8c0e6fba01), CNST_LIMB(0x4d4667b1c468e8f0) }, + /* 192 */ { 8, CNST_LIMB(0x21c040efcb50f858), CNST_LIMB(0xf2b803473f7ad0f3), CNST_LIMB(0x19a1000000000000), CNST_LIMB(0x3fa39ab547994daf) }, + /* 193 */ { 8, CNST_LIMB(0x21b7b98f11b61c1a), CNST_LIMB(0xf2f56875eb3f2614), CNST_LIMB(0x1ab769203dafc601), CNST_LIMB(0x32a0a9b2faee1e2a) }, + /* 194 */ { 8, CNST_LIMB(0x21af41bcd19739ba), CNST_LIMB(0xf3327c6ab49ca6c8), CNST_LIMB(0x1bd81ab557f30100), CNST_LIMB(0x26357ceac0e96962) }, + /* 195 */ { 8, CNST_LIMB(0x21a6d9474c81adf0), CNST_LIMB(0xf36f3ffb6d916240), CNST_LIMB(0x1d0367a69fed1ba1), CNST_LIMB(0x1a5a6f65caa5859e) }, + /* 196 */ { 8, CNST_LIMB(0x219e7ffda5ad572a), CNST_LIMB(0xf3abb3faa02166cc), CNST_LIMB(0x1e39a5057d810000), CNST_LIMB(0xf08480f672b4e86) }, + /* 197 */ { 8, CNST_LIMB(0x219635afdcd3e46d), CNST_LIMB(0xf3e7d9379f70166a), CNST_LIMB(0x1f7b2a18f29ac3e1), CNST_LIMB(0x4383340615612ca) }, + /* 198 */ { 8, CNST_LIMB(0x218dfa2ec92d0643), CNST_LIMB(0xf423b07e986aa967), CNST_LIMB(0x20c850694c2aa100), CNST_LIMB(0xf3c77969ee4be5a2) }, + /* 199 */ { 8, CNST_LIMB(0x2185cd4c148e4ae2), CNST_LIMB(0xf45f3a98a20738a4), CNST_LIMB(0x222173cc014980c1), CNST_LIMB(0xe00993cc187c5ec9) }, + /* 200 */ { 8, CNST_LIMB(0x217daeda36ad7a5c), CNST_LIMB(0xf49a784bcd1b8afe), CNST_LIMB(0x2386f26fc1000000), CNST_LIMB(0xcd2b297d889bc2b6) }, + /* 201 */ { 8, CNST_LIMB(0x21759eac708452fe), CNST_LIMB(0xf4d56a5b33cec44a), CNST_LIMB(0x24f92ce8af296d41), CNST_LIMB(0xbb214d5064862b22) }, + /* 202 */ { 8, CNST_LIMB(0x216d9c96c7d490d4), CNST_LIMB(0xf510118708a8f8dd), CNST_LIMB(0x2678863cd0ece100), CNST_LIMB(0xa9e1a7ca7ea10e20) }, + /* 203 */ { 8, CNST_LIMB(0x2165a86e02cb358c), CNST_LIMB(0xf54a6e8ca5438db1), CNST_LIMB(0x280563f0a9472d61), CNST_LIMB(0x99626e72b39ea0cf) }, + /* 204 */ { 8, CNST_LIMB(0x215dc207a3c20fdf), CNST_LIMB(0xf5848226989d33c3), CNST_LIMB(0x29a02e1406210000), CNST_LIMB(0x899a5ba9c13fafd9) }, + /* 205 */ { 8, CNST_LIMB(0x2155e939e51e8b37), CNST_LIMB(0xf5be4d0cb51434aa), CNST_LIMB(0x2b494f4efe6d2e21), CNST_LIMB(0x7a80a705391e96ff) }, + /* 206 */ { 8, CNST_LIMB(0x214e1ddbb54cd933), CNST_LIMB(0xf5f7cff41e09aeb8), CNST_LIMB(0x2d0134ef21cbc100), CNST_LIMB(0x6c0cfe23de23042a) }, + /* 207 */ { 8, CNST_LIMB(0x21465fc4b2d68f98), CNST_LIMB(0xf6310b8f55304840), CNST_LIMB(0x2ec84ef4da2ef581), CNST_LIMB(0x5e377df359c944dd) }, + /* 208 */ { 8, CNST_LIMB(0x213eaecd2893dd60), CNST_LIMB(0xf66a008e4788cbcd), CNST_LIMB(0x309f102100000000), CNST_LIMB(0x50f8ac5fc8f53985) }, + /* 209 */ { 8, CNST_LIMB(0x21370ace09f681c6), CNST_LIMB(0xf6a2af9e5a0f0a08), CNST_LIMB(0x3285ee02a1420281), CNST_LIMB(0x44497266278e35b7) }, + /* 210 */ { 8, CNST_LIMB(0x212f73a0ef6db7cb), CNST_LIMB(0xf6db196a761949d9), CNST_LIMB(0x347d6104fc324100), CNST_LIMB(0x382316831f7ee175) }, + /* 211 */ { 8, CNST_LIMB(0x2127e92012e25004), CNST_LIMB(0xf7133e9b156c7be5), CNST_LIMB(0x3685e47dade53d21), CNST_LIMB(0x2c7f377833b8946e) }, + /* 212 */ { 8, CNST_LIMB(0x21206b264c4a39a7), CNST_LIMB(0xf74b1fd64e0753c6), CNST_LIMB(0x389ff6bb15610000), CNST_LIMB(0x2157c761ab4163ef) }, + /* 213 */ { 8, CNST_LIMB(0x2118f98f0e52c28f), CNST_LIMB(0xf782bdbfdda6577b), CNST_LIMB(0x3acc1912ebb57661), CNST_LIMB(0x16a7071803cc49a9) }, + /* 214 */ { 8, CNST_LIMB(0x211194366320dc66), CNST_LIMB(0xf7ba18f93502e409), CNST_LIMB(0x3d0acff111946100), CNST_LIMB(0xc6781d80f8224fc) }, + /* 215 */ { 8, CNST_LIMB(0x210a3af8e926bb78), CNST_LIMB(0xf7f1322182cf15d1), CNST_LIMB(0x3f5ca2e692eaf841), CNST_LIMB(0x294092d370a900b) }, + /* 216 */ { 8, CNST_LIMB(0x2102edb3d00e29a6), CNST_LIMB(0xf82809d5be7072db), CNST_LIMB(0x41c21cb8e1000000), CNST_LIMB(0xf24f62335024a295) }, + /* 217 */ { 8, CNST_LIMB(0x20fbac44d5b6edc2), CNST_LIMB(0xf85ea0b0b27b2610), CNST_LIMB(0x443bcb714399a5c1), CNST_LIMB(0xe03b98f103fad6d2) }, + /* 218 */ { 8, CNST_LIMB(0x20f4768a4348ad08), CNST_LIMB(0xf894f74b06ef8b40), CNST_LIMB(0x46ca406c81af2100), CNST_LIMB(0xcee3d32cad2a9049) }, + /* 219 */ { 8, CNST_LIMB(0x20ed4c62ea57b1f0), CNST_LIMB(0xf8cb0e3b4b3bbdb3), CNST_LIMB(0x496e106ac22aaae1), CNST_LIMB(0xbe3f9df9277fdada) }, + /* 220 */ { 8, CNST_LIMB(0x20e62dae221c087a), CNST_LIMB(0xf900e6160002ccfe), CNST_LIMB(0x4c27d39fa5410000), CNST_LIMB(0xae46f0d94c05e933) }, + /* 221 */ { 8, CNST_LIMB(0x20df1a4bc4ba6525), CNST_LIMB(0xf9367f6da0ab2e9c), CNST_LIMB(0x4ef825c296e43ca1), CNST_LIMB(0x9ef2280fb437a33d) }, + /* 222 */ { 8, CNST_LIMB(0x20d8121c2c9e506e), CNST_LIMB(0xf96bdad2acb5f5ef), CNST_LIMB(0x51dfa61f5ad88100), CNST_LIMB(0x9039ff426d3f284b) }, + /* 223 */ { 8, CNST_LIMB(0x20d1150031e51549), CNST_LIMB(0xf9a0f8d3b0e04fde), CNST_LIMB(0x54def7a6d2f16901), CNST_LIMB(0x82178c6d6b51f8f4) }, + /* 224 */ { 8, CNST_LIMB(0x20ca22d927d8f54d), CNST_LIMB(0xf9d5d9fd5010b366), CNST_LIMB(0x57f6c10000000000), CNST_LIMB(0x74843b1ee4c1e053) }, + /* 225 */ { 8, CNST_LIMB(0x20c33b88da7c29aa), CNST_LIMB(0xfa0a7eda4c112ce6), CNST_LIMB(0x5b27ac993df97701), CNST_LIMB(0x6779c7f90dc42f48) }, + /* 226 */ { 8, CNST_LIMB(0x20bc5ef18c233bdf), CNST_LIMB(0xfa3ee7f38e181ed0), CNST_LIMB(0x5e7268b9bbdf8100), CNST_LIMB(0x5af23c74f9ad9fe9) }, + /* 227 */ { 8, CNST_LIMB(0x20b58cf5f31e4526), CNST_LIMB(0xfa7315d02f20c7bd), CNST_LIMB(0x61d7a7932ff3d6a1), CNST_LIMB(0x4ee7eae2acdc617e) }, + /* 228 */ { 8, CNST_LIMB(0x20aec5793770a74d), CNST_LIMB(0xfaa708f58014d37c), CNST_LIMB(0x65581f53c8c10000), CNST_LIMB(0x43556aa2ac262a0b) }, + /* 229 */ { 8, CNST_LIMB(0x20a8085ef096d530), CNST_LIMB(0xfadac1e711c832d1), CNST_LIMB(0x68f48a385b8320e1), CNST_LIMB(0x3835949593b8ddd1) }, + /* 230 */ { 8, CNST_LIMB(0x20a1558b2359c4b1), CNST_LIMB(0xfb0e4126bcc86bd7), CNST_LIMB(0x6cada69ed07c2100), CNST_LIMB(0x2d837fbe78458762) }, + /* 231 */ { 8, CNST_LIMB(0x209aace23fafa72e), CNST_LIMB(0xfb418734a9008bd9), CNST_LIMB(0x70843718cdbf27c1), CNST_LIMB(0x233a7e150a54a555) }, + /* 232 */ { 8, CNST_LIMB(0x20940e491ea988d7), CNST_LIMB(0xfb74948f5532da4b), CNST_LIMB(0x7479027ea1000000), CNST_LIMB(0x19561984a50ff8fe) }, + /* 233 */ { 8, CNST_LIMB(0x208d79a5006d7a47), CNST_LIMB(0xfba769b39e49640e), CNST_LIMB(0x788cd40268f39641), CNST_LIMB(0xfd211159fe3490f) }, + /* 234 */ { 8, CNST_LIMB(0x2086eedb8a3cead3), CNST_LIMB(0xfbda071cc67e6db5), CNST_LIMB(0x7cc07b437ecf6100), CNST_LIMB(0x6aa563e655033e3) }, + /* 235 */ { 8, CNST_LIMB(0x20806dd2c486dcc6), CNST_LIMB(0xfc0c6d447c5dd362), CNST_LIMB(0x8114cc6220762061), CNST_LIMB(0xfbb614b3f2d3b14c) }, + /* 236 */ { 8, CNST_LIMB(0x2079f67119059fae), CNST_LIMB(0xfc3e9ca2e1a05533), CNST_LIMB(0x858aa0135be10000), CNST_LIMB(0xeac0f8837fb05773) }, + /* 237 */ { 8, CNST_LIMB(0x2073889d50e7bf63), CNST_LIMB(0xfc7095ae91e1c760), CNST_LIMB(0x8a22d3b53c54c321), CNST_LIMB(0xda6e4c10e8615ca5) }, + /* 238 */ { 8, CNST_LIMB(0x206d243e9303d929), CNST_LIMB(0xfca258dca9331635), CNST_LIMB(0x8ede496339f34100), CNST_LIMB(0xcab755a8d01fa67f) }, + /* 239 */ { 8, CNST_LIMB(0x2066c93c62170aa8), CNST_LIMB(0xfcd3e6a0ca8906c2), CNST_LIMB(0x93bde80aec3a1481), CNST_LIMB(0xbb95a9ae71aa3e0c) }, + /* 240 */ { 8, CNST_LIMB(0x2060777e9b0db0f6), CNST_LIMB(0xfd053f6d26089673), CNST_LIMB(0x98c29b8100000000), CNST_LIMB(0xad0326c296b4f529) }, + /* 241 */ { 8, CNST_LIMB(0x205a2eed73563032), CNST_LIMB(0xfd3663b27f31d529), CNST_LIMB(0x9ded549671832381), CNST_LIMB(0x9ef9f21eed31b7c1) }, + /* 242 */ { 8, CNST_LIMB(0x2053ef71773d7e6a), CNST_LIMB(0xfd6753e032ea0efe), CNST_LIMB(0xa33f092e0b1ac100), CNST_LIMB(0x91747422be14b0b2) }, + /* 243 */ { 8, CNST_LIMB(0x204db8f388552ea9), CNST_LIMB(0xfd9810643d6614c3), CNST_LIMB(0xa8b8b452291fe821), CNST_LIMB(0x846d550e37b5063d) }, + /* 244 */ { 8, CNST_LIMB(0x20478b5cdbe2bb2f), CNST_LIMB(0xfdc899ab3ff56c5e), CNST_LIMB(0xae5b564ac3a10000), CNST_LIMB(0x77df79e9a96c06f6) }, + /* 245 */ { 8, CNST_LIMB(0x20416696f957cfbf), CNST_LIMB(0xfdf8f02086af2c4b), CNST_LIMB(0xb427f4b3be74c361), CNST_LIMB(0x6bc6019636c7d0c2) }, + /* 246 */ { 8, CNST_LIMB(0x203b4a8bb8d356e7), CNST_LIMB(0xfe29142e0e01401f), CNST_LIMB(0xba1f9a938041e100), CNST_LIMB(0x601c4205aebd9e47) }, + /* 247 */ { 8, CNST_LIMB(0x2035372541ab0f0d), CNST_LIMB(0xfe59063c8822ce56), CNST_LIMB(0xc0435871d1110f41), CNST_LIMB(0x54ddc59756f05016) }, + /* 248 */ { 8, CNST_LIMB(0x202f2c4e08fd6dcc), CNST_LIMB(0xfe88c6b3626a72aa), CNST_LIMB(0xc694446f01000000), CNST_LIMB(0x4a0648979c838c18) }, + /* 249 */ { 8, CNST_LIMB(0x202929f0d04b99e9), CNST_LIMB(0xfeb855f8ca88fb0d), CNST_LIMB(0xcd137a5b57ac3ec1), CNST_LIMB(0x3f91b6e0bb3a053d) }, + /* 250 */ { 8, CNST_LIMB(0x20232ff8a41b45eb), CNST_LIMB(0xfee7b471b3a9507d), CNST_LIMB(0xd3c21bcecceda100), CNST_LIMB(0x357c299a88ea76a5) }, + /* 251 */ { 8, CNST_LIMB(0x201d3e50daa036db), CNST_LIMB(0xff16e281db76303b), CNST_LIMB(0xdaa150410b788de1), CNST_LIMB(0x2bc1e517aecc56e3) }, + /* 252 */ { 8, CNST_LIMB(0x201754e5126d446d), CNST_LIMB(0xff45e08bcf06554e), CNST_LIMB(0xe1b24521be010000), CNST_LIMB(0x225f56ceb3da9f5d) }, + /* 253 */ { 8, CNST_LIMB(0x201173a1312ca135), CNST_LIMB(0xff74aef0efafadd7), CNST_LIMB(0xe8f62df12777c1a1), CNST_LIMB(0x1951136d53ad63ac) }, + /* 254 */ { 8, CNST_LIMB(0x200b9a71625f3b13), CNST_LIMB(0xffa34e1177c23362), CNST_LIMB(0xf06e445906fc0100), CNST_LIMB(0x1093d504b3cd7d93) }, + /* 255 */ { 8, CNST_LIMB(0x2005c94216230568), CNST_LIMB(0xffd1be4c7f2af942), CNST_LIMB(0xf81bc845c81bf801), CNST_LIMB(0x824794d1ec1814f) }, + /* 256 */ { 8, CNST_LIMB(0x1fffffffffffffff), CNST_LIMB(0xffffffffffffffff), CNST_LIMB(0x8), CNST_LIMB(0x0) }, +}; diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/mul_1.s b/vere/ext/gmp/gen/x86_64-macos/mpn/mul_1.s new file mode 100644 index 0000000..09d7568 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/mul_1.s @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 5, 0x90 + .globl ___gmpn_mul_1 + + +___gmpn_mul_1: + + + mov %rcx, %r10 + mov %rdx, %rcx + mov %edx, %r8d + shr $3, %rcx + and $7, %r8d + mov %r10, %rdx + lea Ltab(%rip), %r10 + movslq (%r10,%r8,4), %r8 + lea (%r8, %r10), %r10 + jmp *%r10 + + .text + .align 3, 0x90 +Ltab: .set Lf0_tmp, Lf0-Ltab + .long Lf0_tmp + + .set Lf1_tmp, Lf1-Ltab + .long Lf1_tmp + + .set Lf2_tmp, Lf2-Ltab + .long Lf2_tmp + + .set Lf3_tmp, Lf3-Ltab + .long Lf3_tmp + + .set Lf4_tmp, Lf4-Ltab + .long Lf4_tmp + + .set Lf5_tmp, Lf5-Ltab + .long Lf5_tmp + + .set Lf6_tmp, Lf6-Ltab + .long Lf6_tmp + + .set Lf7_tmp, Lf7-Ltab + .long Lf7_tmp + + .text + +Lf0: .byte 0xc4,98,171,0xf6,6 + lea 56(%rsi), %rsi + lea -8(%rdi), %rdi + jmp Lb0 + +Lf3: .byte 0xc4,226,179,0xf6,6 + lea 16(%rsi), %rsi + lea 16(%rdi), %rdi + inc %rcx + jmp Lb3 + +Lf4: .byte 0xc4,98,171,0xf6,6 + lea 24(%rsi), %rsi + lea 24(%rdi), %rdi + inc %rcx + jmp Lb4 + +Lf5: .byte 0xc4,226,179,0xf6,6 + lea 32(%rsi), %rsi + lea 32(%rdi), %rdi + inc %rcx + jmp Lb5 + +Lf6: .byte 0xc4,98,171,0xf6,6 + lea 40(%rsi), %rsi + lea 40(%rdi), %rdi + inc %rcx + jmp Lb6 + +Lf7: .byte 0xc4,226,179,0xf6,6 + lea 48(%rsi), %rsi + lea 48(%rdi), %rdi + inc %rcx + jmp Lb7 + +Lf1: .byte 0xc4,226,179,0xf6,6 + test %rcx, %rcx + jnz Lb1 +L1: mov %r9, (%rdi) + ret + +Lf2: .byte 0xc4,98,171,0xf6,6 + lea 8(%rsi), %rsi + lea 8(%rdi), %rdi + .byte 0xc4,226,179,0xf6,6 + test %rcx, %rcx + jz Lend + + .align 5, 0x90 +Ltop: mov %r10, -8(%rdi) + adc %r8, %r9 +Lb1: .byte 0xc4,98,171,0xf6,70,8 + adc %rax, %r10 + lea 64(%rsi), %rsi + mov %r9, (%rdi) +Lb0: mov %r10, 8(%rdi) + .byte 0xc4,226,179,0xf6,70,208 + lea 64(%rdi), %rdi + adc %r8, %r9 +Lb7: .byte 0xc4,98,171,0xf6,70,216 + mov %r9, -48(%rdi) + adc %rax, %r10 +Lb6: mov %r10, -40(%rdi) + .byte 0xc4,226,179,0xf6,70,224 + adc %r8, %r9 +Lb5: .byte 0xc4,98,171,0xf6,70,232 + mov %r9, -32(%rdi) + adc %rax, %r10 +Lb4: .byte 0xc4,226,179,0xf6,70,240 + mov %r10, -24(%rdi) + adc %r8, %r9 +Lb3: .byte 0xc4,98,171,0xf6,70,248 + adc %rax, %r10 + mov %r9, -16(%rdi) + dec %rcx + .byte 0xc4,226,179,0xf6,6 + jnz Ltop + +Lend: mov %r10, -8(%rdi) + adc %r8, %r9 + mov %r9, (%rdi) + adc %rcx, %rax + ret + + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/mul_2.s b/vere/ext/gmp/gen/x86_64-macos/mpn/mul_2.s new file mode 100644 index 0000000..132a72b --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/mul_2.s @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 5, 0x90 + .globl ___gmpn_mul_2 + + +___gmpn_mul_2: + + + push %rbx + push %rbp + + mov (%rcx), %r8 + mov 8(%rcx), %r9 + + lea 3(%rdx), %r11 + shr $2, %r11 + + test $1, %dl + jnz Lbx1 + +Lbx0: xor %rbx, %rbx + test $2, %dl + mov (%rsi), %rdx + .byte 0xc4,194,211,0xf6,200 + jz Llo0 + +Lb10: lea -16(%rdi), %rdi + lea -16(%rsi), %rsi + jmp Llo2 + +Lbx1: xor %rbp, %rbp + test $2, %dl + mov (%rsi), %rdx + .byte 0xc4,66,227,0xf6,208 + jnz Lb11 + +Lb01: lea -24(%rdi), %rdi + lea 8(%rsi), %rsi + jmp Llo1 + +Lb11: lea -8(%rdi), %rdi + lea -8(%rsi), %rsi + jmp Llo3 + + .align 4, 0x90 +Ltop: .byte 0xc4,194,251,0xf6,217 + add %rax, %rbp + mov (%rsi), %rdx + .byte 0xc4,194,251,0xf6,200 + adc $0, %rbx + add %rax, %rbp + adc $0, %rcx + add %r10, %rbp +Llo0: mov %rbp, (%rdi) + adc $0, %rcx + .byte 0xc4,194,251,0xf6,233 + add %rax, %rbx + mov 8(%rsi), %rdx + adc $0, %rbp + .byte 0xc4,66,251,0xf6,208 + add %rax, %rbx + adc $0, %r10 + add %rcx, %rbx +Llo3: mov %rbx, 8(%rdi) + adc $0, %r10 + .byte 0xc4,194,251,0xf6,217 + add %rax, %rbp + mov 16(%rsi), %rdx + .byte 0xc4,194,251,0xf6,200 + adc $0, %rbx + add %rax, %rbp + adc $0, %rcx + add %r10, %rbp +Llo2: mov %rbp, 16(%rdi) + adc $0, %rcx + .byte 0xc4,194,251,0xf6,233 + add %rax, %rbx + mov 24(%rsi), %rdx + adc $0, %rbp + .byte 0xc4,66,251,0xf6,208 + add %rax, %rbx + adc $0, %r10 + add %rcx, %rbx + lea 32(%rsi), %rsi +Llo1: mov %rbx, 24(%rdi) + adc $0, %r10 + dec %r11 + lea 32(%rdi), %rdi + jnz Ltop + +Lend: .byte 0xc4,194,235,0xf6,193 + add %rdx, %rbp + adc $0, %rax + add %r10, %rbp + mov %rbp, (%rdi) + adc $0, %rax + + pop %rbp + pop %rbx + + ret + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/mul_basecase.s b/vere/ext/gmp/gen/x86_64-macos/mpn/mul_basecase.s new file mode 100644 index 0000000..9d24fda --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/mul_basecase.s @@ -0,0 +1,409 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4, 0x90 + .globl ___gmpn_mul_basecase + + +___gmpn_mul_basecase: + + + + + cmp $2, %rdx + ja Lgen + mov (%rcx), %rdx + .byte 0xc4,98,251,0xf6,14 + je Ls2x + +Ls11: mov %rax, (%rdi) + mov %r9, 8(%rdi) + + ret + +Ls2x: cmp $2, %r8 + .byte 0xc4,98,187,0xf6,86,8 + je Ls22 + +Ls21: add %r8, %r9 + adc $0, %r10 + mov %rax, (%rdi) + mov %r9, 8(%rdi) + mov %r10, 16(%rdi) + + ret + +Ls22: add %r8, %r9 + adc $0, %r10 + mov 8(%rcx), %rdx + mov %rax, (%rdi) + .byte 0xc4,98,187,0xf6,30 + .byte 0xc4,226,251,0xf6,86,8 + add %r11, %rax + adc $0, %rdx + add %r8, %r9 + adc %rax, %r10 + adc $0, %rdx + mov %r9, 8(%rdi) + mov %r10, 16(%rdi) + mov %rdx, 24(%rdi) + + ret + + .align 4, 0x90 +Lgen: + push %rbx + push %rbp + push %r12 + push %r14 + + mov %rcx, %r14 + lea 1(%rdx), %rbx + mov %rdx, %rbp + mov %edx, %eax + and $-8, %rbx + shr $3, %rbp + neg %rbx + and $7, %eax + + mov %rbp, %rcx + mov (%r14), %rdx + lea 8(%r14), %r14 + + lea Lmtab(%rip), %r10 + movslq (%r10,%rax,4), %r11 + lea (%r11, %r10), %r10 + jmp *%r10 + + +Lmf0: .byte 0xc4,98,171,0xf6,30 + lea 56(%rsi), %rsi + lea -8(%rdi), %rdi + jmp Lmb0 + +Lmf3: .byte 0xc4,98,155,0xf6,14 + lea 16(%rsi), %rsi + lea 16(%rdi), %rdi + inc %rcx + jmp Lmb3 + +Lmf4: .byte 0xc4,98,171,0xf6,30 + lea 24(%rsi), %rsi + lea 24(%rdi), %rdi + inc %rcx + jmp Lmb4 + +Lmf5: .byte 0xc4,98,155,0xf6,14 + lea 32(%rsi), %rsi + lea 32(%rdi), %rdi + inc %rcx + jmp Lmb5 + +Lmf6: .byte 0xc4,98,171,0xf6,30 + lea 40(%rsi), %rsi + lea 40(%rdi), %rdi + inc %rcx + jmp Lmb6 + +Lmf7: .byte 0xc4,98,155,0xf6,14 + lea 48(%rsi), %rsi + lea 48(%rdi), %rdi + inc %rcx + jmp Lmb7 + +Lmf1: .byte 0xc4,98,155,0xf6,14 + jmp Lmb1 + +Lmf2: .byte 0xc4,98,171,0xf6,30 + lea 8(%rsi), %rsi + lea 8(%rdi), %rdi + .byte 0xc4,98,155,0xf6,14 + + .align 4, 0x90 +Lm1top: + mov %r10, -8(%rdi) + adc %r11, %r12 +Lmb1: .byte 0xc4,98,171,0xf6,94,8 + adc %r9, %r10 + lea 64(%rsi), %rsi + mov %r12, (%rdi) +Lmb0: mov %r10, 8(%rdi) + .byte 0xc4,98,155,0xf6,78,208 + lea 64(%rdi), %rdi + adc %r11, %r12 +Lmb7: .byte 0xc4,98,171,0xf6,94,216 + mov %r12, -48(%rdi) + adc %r9, %r10 +Lmb6: mov %r10, -40(%rdi) + .byte 0xc4,98,155,0xf6,78,224 + adc %r11, %r12 +Lmb5: .byte 0xc4,98,171,0xf6,94,232 + mov %r12, -32(%rdi) + adc %r9, %r10 +Lmb4: .byte 0xc4,98,155,0xf6,78,240 + mov %r10, -24(%rdi) + adc %r11, %r12 +Lmb3: .byte 0xc4,98,171,0xf6,94,248 + adc %r9, %r10 + mov %r12, -16(%rdi) + dec %rcx + .byte 0xc4,98,155,0xf6,14 + jnz Lm1top + +Lm1end: + mov %r10, -8(%rdi) + adc %r11, %r12 + mov %r12, (%rdi) + adc %rcx, %r9 + mov %r9, 8(%rdi) + + dec %r8 + jz Ldone + + lea Latab(%rip), %r10 + movslq (%r10,%rax,4), %rax + lea (%rax, %r10), %rax + + +Louter: + lea (%rsi,%rbx,8), %rsi + mov %rbp, %rcx + mov (%r14), %rdx + lea 8(%r14), %r14 + jmp *%rax + +Lf0: .byte 0xc4,98,171,0xf6,94,8 + lea 8(%rdi,%rbx,8), %rdi + lea -1(%rcx), %rcx + jmp Lb0 + +Lf3: .byte 0xc4,98,155,0xf6,78,240 + lea -56(%rdi,%rbx,8), %rdi + jmp Lb3 + +Lf4: .byte 0xc4,98,171,0xf6,94,232 + lea -56(%rdi,%rbx,8), %rdi + jmp Lb4 + +Lf5: .byte 0xc4,98,155,0xf6,78,224 + lea -56(%rdi,%rbx,8), %rdi + jmp Lb5 + +Lf6: .byte 0xc4,98,171,0xf6,94,216 + lea -56(%rdi,%rbx,8), %rdi + jmp Lb6 + +Lf7: .byte 0xc4,98,155,0xf6,78,16 + lea 8(%rdi,%rbx,8), %rdi + jmp Lb7 + +Lf1: .byte 0xc4,98,155,0xf6,14 + lea 8(%rdi,%rbx,8), %rdi + jmp Lb1 + +Lam1end: + .byte 0xf3,76,0x0f,0x38,0xf6,39 + .byte 0xf3,76,0x0f,0x38,0xf6,201 + mov %r12, (%rdi) + adc %rcx, %r9 + mov %r9, 8(%rdi) + + dec %r8 + jnz Louter +Ldone: + pop %r14 + pop %r12 + pop %rbp + pop %rbx + + ret + +Lf2: .byte 0xc4,98,171,0xf6,94,248 + lea 8(%rdi,%rbx,8), %rdi + .byte 0xc4,98,155,0xf6,14 + + .align 4, 0x90 +Lam1top: + .byte 0xf3,76,0x0f,0x38,0xf6,87,248 + .byte 0x66,77,0x0f,0x38,0xf6,227 + mov %r10, -8(%rdi) + jrcxz Lam1end +Lb1: .byte 0xc4,98,171,0xf6,94,8 + .byte 0xf3,76,0x0f,0x38,0xf6,39 + lea -1(%rcx), %rcx + mov %r12, (%rdi) + .byte 0x66,77,0x0f,0x38,0xf6,209 +Lb0: .byte 0xc4,98,155,0xf6,78,16 + .byte 0x66,77,0x0f,0x38,0xf6,227 + .byte 0xf3,76,0x0f,0x38,0xf6,87,8 + mov %r10, 8(%rdi) +Lb7: .byte 0xc4,98,171,0xf6,94,24 + lea 64(%rsi), %rsi + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xf3,76,0x0f,0x38,0xf6,103,16 + mov %r12, 16(%rdi) +Lb6: .byte 0xc4,98,155,0xf6,78,224 + .byte 0xf3,76,0x0f,0x38,0xf6,87,24 + .byte 0x66,77,0x0f,0x38,0xf6,227 + mov %r10, 24(%rdi) +Lb5: .byte 0xc4,98,171,0xf6,94,232 + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xf3,76,0x0f,0x38,0xf6,103,32 + mov %r12, 32(%rdi) +Lb4: .byte 0xc4,98,155,0xf6,78,240 + .byte 0xf3,76,0x0f,0x38,0xf6,87,40 + .byte 0x66,77,0x0f,0x38,0xf6,227 + mov %r10, 40(%rdi) +Lb3: .byte 0xf3,76,0x0f,0x38,0xf6,103,48 + .byte 0xc4,98,171,0xf6,94,248 + mov %r12, 48(%rdi) + lea 64(%rdi), %rdi + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xc4,98,155,0xf6,14 + jmp Lam1top + + .text + .align 3, 0x90 +Lmtab:.set Lmf0_tmp, Lmf0-Lmtab + .long Lmf0_tmp + + .set Lmf1_tmp, Lmf1-Lmtab + .long Lmf1_tmp + + .set Lmf2_tmp, Lmf2-Lmtab + .long Lmf2_tmp + + .set Lmf3_tmp, Lmf3-Lmtab + .long Lmf3_tmp + + .set Lmf4_tmp, Lmf4-Lmtab + .long Lmf4_tmp + + .set Lmf5_tmp, Lmf5-Lmtab + .long Lmf5_tmp + + .set Lmf6_tmp, Lmf6-Lmtab + .long Lmf6_tmp + + .set Lmf7_tmp, Lmf7-Lmtab + .long Lmf7_tmp + +Latab:.set Lf0_tmp, Lf0-Latab + .long Lf0_tmp + + .set Lf1_tmp, Lf1-Latab + .long Lf1_tmp + + .set Lf2_tmp, Lf2-Latab + .long Lf2_tmp + + .set Lf3_tmp, Lf3-Latab + .long Lf3_tmp + + .set Lf4_tmp, Lf4-Latab + .long Lf4_tmp + + .set Lf5_tmp, Lf5-Latab + .long Lf5_tmp + + .set Lf6_tmp, Lf6-Latab + .long Lf6_tmp + + .set Lf7_tmp, Lf7-Latab + .long Lf7_tmp + + .text + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/mullo_basecase.s b/vere/ext/gmp/gen/x86_64-macos/mpn/mullo_basecase.s new file mode 100644 index 0000000..6611be8 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/mullo_basecase.s @@ -0,0 +1,422 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 5, 0x90 + .globl ___gmpn_mullo_basecase + + +___gmpn_mullo_basecase: + + + cmp $4, %ecx + jae Lbig + + mov %rdx, %r11 + mov (%rsi), %rdx + + cmp $2, %ecx + jae Lgt1 +Ln1: imul (%r11), %rdx + mov %rdx, (%rdi) + + ret +Lgt1: ja Lgt2 +Ln2: mov (%r11), %r9 + .byte 0xc4,194,251,0xf6,209 + mov %rax, (%rdi) + mov 8(%rsi), %rax + imul %r9, %rax + add %rax, %rdx + mov 8(%r11), %r9 + mov (%rsi), %rcx + imul %r9, %rcx + add %rcx, %rdx + mov %rdx, 8(%rdi) + + ret +Lgt2: +Ln3: mov (%r11), %r9 + .byte 0xc4,66,251,0xf6,209 + mov %rax, (%rdi) + mov 8(%rsi), %rdx + .byte 0xc4,194,251,0xf6,209 + imul 16(%rsi), %r9 + add %rax, %r10 + adc %rdx, %r9 + mov 8(%r11), %r8 + mov (%rsi), %rdx + .byte 0xc4,194,251,0xf6,208 + add %rax, %r10 + adc %rdx, %r9 + imul 8(%rsi), %r8 + add %r8, %r9 + mov %r10, 8(%rdi) + mov 16(%r11), %r10 + mov (%rsi), %rax + imul %rax, %r10 + add %r10, %r9 + mov %r9, 16(%rdi) + + ret + + .align 4, 0x90 +Lbig: push %r14 + push %r12 + push %rbx + push %rbp + mov -8(%rdx,%rcx,8), %r14 + imul (%rsi), %r14 + lea -3(%rcx), %ebp + lea 8(%rdx), %r11 + mov (%rdx), %rdx + + mov %ecx, %eax + shr $3, %ecx + and $7, %eax + lea Lmtab(%rip), %r10 + movslq (%r10,%rax,4), %rax + lea (%rax, %r10), %r10 + jmp *%r10 + + +Lmf0: .byte 0xc4,98,171,0xf6,6 + lea 56(%rsi), %rsi + lea -8(%rdi), %rdi + lea Lf7(%rip), %rbx + jmp Lmb0 + +Lmf3: .byte 0xc4,226,179,0xf6,6 + lea 16(%rsi), %rsi + lea 16(%rdi), %rdi + jrcxz Lmc + inc %ecx + lea Lf2(%rip), %rbx + jmp Lmb3 + +Lmc: .byte 0xc4,98,171,0xf6,70,248 + add %rax, %r10 + mov %r9, -16(%rdi) + .byte 0xc4,226,179,0xf6,6 + mov %r10, -8(%rdi) + adc %r8, %r9 + mov %r9, (%rdi) + jmp Lc2 + +Lmf4: .byte 0xc4,98,171,0xf6,6 + lea 24(%rsi), %rsi + lea 24(%rdi), %rdi + inc %ecx + lea Lf3(%rip), %rbx + jmp Lmb4 + +Lmf5: .byte 0xc4,226,179,0xf6,6 + lea 32(%rsi), %rsi + lea 32(%rdi), %rdi + inc %ecx + lea Lf4(%rip), %rbx + jmp Lmb5 + +Lmf6: .byte 0xc4,98,171,0xf6,6 + lea 40(%rsi), %rsi + lea 40(%rdi), %rdi + inc %ecx + lea Lf5(%rip), %rbx + jmp Lmb6 + +Lmf7: .byte 0xc4,226,179,0xf6,6 + lea 48(%rsi), %rsi + lea 48(%rdi), %rdi + lea Lf6(%rip), %rbx + jmp Lmb7 + +Lmf1: .byte 0xc4,226,179,0xf6,6 + lea Lf0(%rip), %rbx + jmp Lmb1 + +Lmf2: .byte 0xc4,98,171,0xf6,6 + lea 8(%rsi), %rsi + lea 8(%rdi), %rdi + lea Lf1(%rip), %rbx + .byte 0xc4,226,179,0xf6,6 + + + .align 5, 0x90 +Lmtop:mov %r10, -8(%rdi) + adc %r8, %r9 +Lmb1: .byte 0xc4,98,171,0xf6,70,8 + adc %rax, %r10 + lea 64(%rsi), %rsi + mov %r9, (%rdi) +Lmb0: mov %r10, 8(%rdi) + .byte 0xc4,226,179,0xf6,70,208 + lea 64(%rdi), %rdi + adc %r8, %r9 +Lmb7: .byte 0xc4,98,171,0xf6,70,216 + mov %r9, -48(%rdi) + adc %rax, %r10 +Lmb6: mov %r10, -40(%rdi) + .byte 0xc4,226,179,0xf6,70,224 + adc %r8, %r9 +Lmb5: .byte 0xc4,98,171,0xf6,70,232 + mov %r9, -32(%rdi) + adc %rax, %r10 +Lmb4: .byte 0xc4,226,179,0xf6,70,240 + mov %r10, -24(%rdi) + adc %r8, %r9 +Lmb3: .byte 0xc4,98,171,0xf6,70,248 + adc %rax, %r10 + mov %r9, -16(%rdi) + dec %ecx + .byte 0xc4,226,179,0xf6,6 + jnz Lmtop + +Lmend:mov %r10, -8(%rdi) + adc %r8, %r9 + mov %r9, (%rdi) + adc %rcx, %rax + + lea 8(,%rbp,8), %r12 + neg %r12 + shr $3, %ebp + jmp Lent + +Lf0: .byte 0xc4,98,171,0xf6,6 + lea -8(%rsi), %rsi + lea -8(%rdi), %rdi + lea Lf7(%rip), %rbx + jmp Lb0 + +Lf1: .byte 0xc4,226,179,0xf6,6 + lea -1(%rbp), %ebp + lea Lf0(%rip), %rbx + jmp Lb1 + +Lend: .byte 0xf3,76,0x0f,0x38,0xf6,15 + mov %r9, (%rdi) + .byte 0xf3,72,0x0f,0x38,0xf6,193 + adc %rcx, %rax + lea 8(%r12), %r12 +Lent: .byte 0xc4,98,171,0xf6,70,8 + add %rax, %r14 + add %r10, %r14 + lea (%rsi,%r12), %rsi + lea 8(%rdi,%r12), %rdi + mov (%r11), %rdx + lea 8(%r11), %r11 + or %ebp, %ecx + jmp *%rbx + +Lf7: .byte 0xc4,226,179,0xf6,6 + lea -16(%rsi), %rsi + lea -16(%rdi), %rdi + lea Lf6(%rip), %rbx + jmp Lb7 + +Lf2: .byte 0xc4,98,171,0xf6,6 + lea 8(%rsi), %rsi + lea 8(%rdi), %rdi + .byte 0xc4,226,179,0xf6,6 + lea Lf1(%rip), %rbx + + + .align 5, 0x90 +Ltop: .byte 0xf3,76,0x0f,0x38,0xf6,87,248 + .byte 0x66,77,0x0f,0x38,0xf6,200 + mov %r10, -8(%rdi) + jrcxz Lend +Lb1: .byte 0xc4,98,171,0xf6,70,8 + .byte 0xf3,76,0x0f,0x38,0xf6,15 + lea -1(%rcx), %ecx + mov %r9, (%rdi) + .byte 0x66,76,0x0f,0x38,0xf6,208 +Lb0: .byte 0xc4,226,179,0xf6,70,16 + .byte 0x66,77,0x0f,0x38,0xf6,200 + .byte 0xf3,76,0x0f,0x38,0xf6,87,8 + mov %r10, 8(%rdi) +Lb7: .byte 0xc4,98,171,0xf6,70,24 + lea 64(%rsi), %rsi + .byte 0x66,76,0x0f,0x38,0xf6,208 + .byte 0xf3,76,0x0f,0x38,0xf6,79,16 + mov %r9, 16(%rdi) +Lb6: .byte 0xc4,226,179,0xf6,70,224 + .byte 0xf3,76,0x0f,0x38,0xf6,87,24 + .byte 0x66,77,0x0f,0x38,0xf6,200 + mov %r10, 24(%rdi) +Lb5: .byte 0xc4,98,171,0xf6,70,232 + .byte 0x66,76,0x0f,0x38,0xf6,208 + .byte 0xf3,76,0x0f,0x38,0xf6,79,32 + mov %r9, 32(%rdi) +Lb4: .byte 0xc4,226,179,0xf6,70,240 + .byte 0xf3,76,0x0f,0x38,0xf6,87,40 + .byte 0x66,77,0x0f,0x38,0xf6,200 + mov %r10, 40(%rdi) +Lb3: .byte 0xf3,76,0x0f,0x38,0xf6,79,48 + .byte 0xc4,98,171,0xf6,70,248 + mov %r9, 48(%rdi) + lea 64(%rdi), %rdi + .byte 0x66,76,0x0f,0x38,0xf6,208 + .byte 0xc4,226,179,0xf6,6 + jmp Ltop + +Lf6: .byte 0xc4,98,171,0xf6,6 + lea 40(%rsi), %rsi + lea -24(%rdi), %rdi + lea Lf5(%rip), %rbx + jmp Lb6 + +Lf5: .byte 0xc4,226,179,0xf6,6 + lea 32(%rsi), %rsi + lea -32(%rdi), %rdi + lea Lf4(%rip), %rbx + jmp Lb5 + +Lf4: .byte 0xc4,98,171,0xf6,6 + lea 24(%rsi), %rsi + lea -40(%rdi), %rdi + lea Lf3(%rip), %rbx + jmp Lb4 + +Lf3: .byte 0xc4,226,179,0xf6,6 + lea 16(%rsi), %rsi + lea -48(%rdi), %rdi + jrcxz Lcor + lea Lf2(%rip), %rbx + jmp Lb3 + +Lcor: .byte 0xf3,76,0x0f,0x38,0xf6,79,48 + .byte 0xc4,98,171,0xf6,70,248 + mov %r9, 48(%rdi) + lea 64(%rdi), %rdi + .byte 0x66,76,0x0f,0x38,0xf6,208 + .byte 0xc4,226,179,0xf6,6 + .byte 0xf3,76,0x0f,0x38,0xf6,87,248 + .byte 0x66,77,0x0f,0x38,0xf6,200 + mov %r10, -8(%rdi) + .byte 0xf3,76,0x0f,0x38,0xf6,15 + mov %r9, (%rdi) + .byte 0xf3,72,0x0f,0x38,0xf6,193 +Lc2: + .byte 0xc4,98,171,0xf6,70,8 + adc %rax, %r14 + add %r10, %r14 + mov (%r11), %rdx + test %ecx, %ecx + .byte 0xc4,98,171,0xf6,70,240 + .byte 0xc4,226,179,0xf6,70,248 + .byte 0xf3,76,0x0f,0x38,0xf6,87,248 + .byte 0x66,77,0x0f,0x38,0xf6,200 + mov %r10, -8(%rdi) + .byte 0xf3,76,0x0f,0x38,0xf6,15 + .byte 0xf3,72,0x0f,0x38,0xf6,193 + adc %rcx, %rax + .byte 0xc4,98,171,0xf6,6 + add %rax, %r14 + add %r10, %r14 + mov 8(%r11), %rdx + .byte 0xc4,226,243,0xf6,70,240 + add %r9, %rcx + mov %rcx, (%rdi) + adc $0, %rax + .byte 0xc4,98,171,0xf6,70,248 + add %rax, %r14 + add %r10, %r14 + mov %r14, 8(%rdi) + pop %rbp + pop %rbx + pop %r12 + pop %r14 + + ret + + .text + .align 3, 0x90 +Lmtab:.set Lmf7_tmp, Lmf7-Lmtab + .long Lmf7_tmp + + .set Lmf0_tmp, Lmf0-Lmtab + .long Lmf0_tmp + + .set Lmf1_tmp, Lmf1-Lmtab + .long Lmf1_tmp + + .set Lmf2_tmp, Lmf2-Lmtab + .long Lmf2_tmp + + .set Lmf3_tmp, Lmf3-Lmtab + .long Lmf3_tmp + + .set Lmf4_tmp, Lmf4-Lmtab + .long Lmf4_tmp + + .set Lmf5_tmp, Lmf5-Lmtab + .long Lmf5_tmp + + .set Lmf6_tmp, Lmf6-Lmtab + .long Lmf6_tmp + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/nand_n.s b/vere/ext/gmp/gen/x86_64-macos/mpn/nand_n.s new file mode 100644 index 0000000..79898b8 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/nand_n.s @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 5, 0x90 + .globl ___gmpn_nand_n + + +___gmpn_nand_n: + + + mov (%rdx), %r8 + mov %ecx, %eax + and $3, %eax + je Lb00 + cmp $2, %eax + jc Lb01 + je Lb10 + +Lb11: and (%rsi), %r8 + not %r8 + mov %r8, (%rdi) + inc %rcx + lea -8(%rsi), %rsi + lea -8(%rdx), %rdx + lea -8(%rdi), %rdi + jmp Le11 +Lb10: add $2, %rcx + lea -16(%rsi), %rsi + lea -16(%rdx), %rdx + lea -16(%rdi), %rdi + jmp Le10 +Lb01: and (%rsi), %r8 + not %r8 + mov %r8, (%rdi) + dec %rcx + jz Lret + lea 8(%rsi), %rsi + lea 8(%rdx), %rdx + lea 8(%rdi), %rdi + + .align 4, 0x90 +Ltop: mov (%rdx), %r8 +Lb00: mov 8(%rdx), %r9 + and (%rsi), %r8 + not %r8 + and 8(%rsi), %r9 + not %r9 + mov %r8, (%rdi) + mov %r9, 8(%rdi) +Le11: mov 16(%rdx), %r8 +Le10: mov 24(%rdx), %r9 + lea 32(%rdx), %rdx + and 16(%rsi), %r8 + not %r8 + and 24(%rsi), %r9 + lea 32(%rsi), %rsi + not %r9 + mov %r8, 16(%rdi) + mov %r9, 24(%rdi) + lea 32(%rdi), %rdi + sub $4, %rcx + jnz Ltop + +Lret: + ret + + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/nior_n.s b/vere/ext/gmp/gen/x86_64-macos/mpn/nior_n.s new file mode 100644 index 0000000..b8d0008 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/nior_n.s @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 5, 0x90 + .globl ___gmpn_nior_n + + +___gmpn_nior_n: + + + mov (%rdx), %r8 + mov %ecx, %eax + and $3, %eax + je Lb00 + cmp $2, %eax + jc Lb01 + je Lb10 + +Lb11: or (%rsi), %r8 + not %r8 + mov %r8, (%rdi) + inc %rcx + lea -8(%rsi), %rsi + lea -8(%rdx), %rdx + lea -8(%rdi), %rdi + jmp Le11 +Lb10: add $2, %rcx + lea -16(%rsi), %rsi + lea -16(%rdx), %rdx + lea -16(%rdi), %rdi + jmp Le10 +Lb01: or (%rsi), %r8 + not %r8 + mov %r8, (%rdi) + dec %rcx + jz Lret + lea 8(%rsi), %rsi + lea 8(%rdx), %rdx + lea 8(%rdi), %rdi + + .align 4, 0x90 +Ltop: mov (%rdx), %r8 +Lb00: mov 8(%rdx), %r9 + or (%rsi), %r8 + not %r8 + or 8(%rsi), %r9 + not %r9 + mov %r8, (%rdi) + mov %r9, 8(%rdi) +Le11: mov 16(%rdx), %r8 +Le10: mov 24(%rdx), %r9 + lea 32(%rdx), %rdx + or 16(%rsi), %r8 + not %r8 + or 24(%rsi), %r9 + lea 32(%rsi), %rsi + not %r9 + mov %r8, 16(%rdi) + mov %r9, 24(%rdi) + lea 32(%rdi), %rdi + sub $4, %rcx + jnz Ltop + +Lret: + ret + + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/perfsqr.h b/vere/ext/gmp/gen/x86_64-macos/mpn/perfsqr.h new file mode 100644 index 0000000..80c5eb7 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/perfsqr.h @@ -0,0 +1,46 @@ +/* This file generated by gen-psqr.c - DO NOT EDIT. */ + +#if GMP_LIMB_BITS != 64 || GMP_NAIL_BITS != 0 +Error, error, this data is for 64 bit limb and 0 bit nail +#endif + +/* Non-zero bit indicates a quadratic residue mod 0x100. + This test identifies 82.81% as non-squares (212/256). */ +static const mp_limb_t +sq_res_0x100[4] = { + CNST_LIMB(0x202021202030213), + CNST_LIMB(0x202021202020213), + CNST_LIMB(0x202021202030212), + CNST_LIMB(0x202021202020212), +}; + +/* 2^48-1 = 3^2 * 5 * 7 * 13 * 17 * 97 ... */ +#define PERFSQR_MOD_BITS 49 + +/* This test identifies 97.81% as non-squares. */ +#define PERFSQR_MOD_TEST(up, usize) \ + do { \ + mp_limb_t r; \ + PERFSQR_MOD_34 (r, up, usize); \ + \ + /* 69.23% */ \ + PERFSQR_MOD_2 (r, CNST_LIMB(91), CNST_LIMB(0xfd2fd2fd2fd3), \ + CNST_LIMB(0x2191240), CNST_LIMB(0x8850a206953820e1)); \ + \ + /* 68.24% */ \ + PERFSQR_MOD_2 (r, CNST_LIMB(85), CNST_LIMB(0xfcfcfcfcfcfd), \ + CNST_LIMB(0x82158), CNST_LIMB(0x10b48c4b4206a105)); \ + \ + /* 55.56% */ \ + PERFSQR_MOD_1 (r, CNST_LIMB( 9), CNST_LIMB(0xe38e38e38e39), \ + CNST_LIMB(0x93)); \ + \ + /* 49.48% */ \ + PERFSQR_MOD_2 (r, CNST_LIMB(97), CNST_LIMB(0xfd5c5f02a3a1), \ + CNST_LIMB(0x1eb628b47), CNST_LIMB(0x6067981b8b451b5f)); \ + } while (0) + +/* Grand total sq_res_0x100 and PERFSQR_MOD_TEST, 99.62% non-squares. */ + +/* helper for tests/mpz/t-perfsqr.c */ +#define PERFSQR_DIVISORS { 256, 91, 85, 9, 97, } diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/popcount.s b/vere/ext/gmp/gen/x86_64-macos/mpn/popcount.s new file mode 100644 index 0000000..c7695bb --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/popcount.s @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 5, 0x90 + .globl ___gmpn_popcount + + +___gmpn_popcount: + + + + mov %esi, %r8d + and $7, %r8d + + .byte 0xf3,0x48,0x0f,0xb8,0x07 + xor %ecx, %ecx + + lea Ltab(%rip), %r9 + + movslq (%r9,%r8,4), %r8 + add %r9, %r8 + jmp *%r8 + + +L3: .byte 0xf3,0x4c,0x0f,0xb8,0x57,0x08 + .byte 0xf3,0x4c,0x0f,0xb8,0x5f,0x10 + add $24, %rdi + sub $8, %rsi + jg Le34 + add %r10, %rax + add %r11, %rax +Ls1: + ret + +L1: sub $8, %rsi + jle Ls1 + .byte 0xf3,0x4c,0x0f,0xb8,0x47,0x08 + .byte 0xf3,0x4c,0x0f,0xb8,0x4f,0x10 + add $8, %rdi + jmp Le12 + +L7: .byte 0xf3,0x4c,0x0f,0xb8,0x57,0x08 + .byte 0xf3,0x4c,0x0f,0xb8,0x5f,0x10 + add $-8, %rdi + jmp Le07 + +L0: .byte 0xf3,0x48,0x0f,0xb8,0x4f,0x08 + .byte 0xf3,0x4c,0x0f,0xb8,0x57,0x10 + .byte 0xf3,0x4c,0x0f,0xb8,0x5f,0x18 + jmp Le07 + +L4: .byte 0xf3,0x48,0x0f,0xb8,0x4f,0x08 + .byte 0xf3,0x4c,0x0f,0xb8,0x57,0x10 + .byte 0xf3,0x4c,0x0f,0xb8,0x5f,0x18 + add $32, %rdi + sub $8, %rsi + jle Lx4 + + .align 4, 0x90 +Ltop: +Le34: .byte 0xf3,0x4c,0x0f,0xb8,0x07 + .byte 0xf3,0x4c,0x0f,0xb8,0x4f,0x08 + add %r10, %rcx + add %r11, %rax +Le12: .byte 0xf3,0x4c,0x0f,0xb8,0x57,0x10 + .byte 0xf3,0x4c,0x0f,0xb8,0x5f,0x18 + add %r8, %rcx + add %r9, %rax +Le07: .byte 0xf3,0x4c,0x0f,0xb8,0x47,0x20 + .byte 0xf3,0x4c,0x0f,0xb8,0x4f,0x28 + add %r10, %rcx + add %r11, %rax +Le56: .byte 0xf3,0x4c,0x0f,0xb8,0x57,0x30 + .byte 0xf3,0x4c,0x0f,0xb8,0x5f,0x38 + add $64, %rdi + add %r8, %rcx + add %r9, %rax + sub $8, %rsi + jg Ltop + +Lx4: add %r10, %rcx + add %r11, %rax +Lx2: add %rcx, %rax + + + ret + +L2: .byte 0xf3,0x48,0x0f,0xb8,0x4f,0x08 + sub $8, %rsi + jle Lx2 + .byte 0xf3,0x4c,0x0f,0xb8,0x47,0x10 + .byte 0xf3,0x4c,0x0f,0xb8,0x4f,0x18 + add $16, %rdi + jmp Le12 + +L5: .byte 0xf3,0x4c,0x0f,0xb8,0x47,0x08 + .byte 0xf3,0x4c,0x0f,0xb8,0x4f,0x10 + add $-24, %rdi + jmp Le56 + +L6: .byte 0xf3,0x48,0x0f,0xb8,0x4f,0x08 + .byte 0xf3,0x4c,0x0f,0xb8,0x47,0x10 + .byte 0xf3,0x4c,0x0f,0xb8,0x4f,0x18 + add $-16, %rdi + jmp Le56 + + .text + .align 3, 0x90 +Ltab: .set L0_tmp, L0-Ltab + .long L0_tmp + + .set L1_tmp, L1-Ltab + .long L1_tmp + + .set L2_tmp, L2-Ltab + .long L2_tmp + + .set L3_tmp, L3-Ltab + .long L3_tmp + + .set L4_tmp, L4-Ltab + .long L4_tmp + + .set L5_tmp, L5-Ltab + .long L5_tmp + + .set L6_tmp, L6-Ltab + .long L6_tmp + + .set L7_tmp, L7-Ltab + .long L7_tmp + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/redc_1.s b/vere/ext/gmp/gen/x86_64-macos/mpn/redc_1.s new file mode 100644 index 0000000..55ef11f --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/redc_1.s @@ -0,0 +1,446 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4, 0x90 + .globl ___gmpn_redc_1 + + +___gmpn_redc_1: + + + + push %rbx + push %rbp + push %r12 + push %r13 + push %r14 + push %r15 + push %rdi + mov %rdx, %rdi + mov (%rsi), %rdx + + neg %rcx + push %r8 + imul %r8, %rdx + mov %rcx, %r15 + + test $1, %cl + jnz Lbx1 + +Lbx0: test $2, %cl + jz Lo0b + + cmp $-2, %ecx + jnz Lo2 + + + mov 8(%rsp), %rbx + lea 16(%rsp), %rsp + .byte 0xc4,98,179,0xf6,39 + .byte 0xc4,98,163,0xf6,87,8 + add %r12, %r11 + adc $0, %r10 + add (%rsi), %r9 + adc 8(%rsi), %r11 + adc $0, %r10 + mov %r11, %rdx + imul %r8, %rdx + .byte 0xc4,98,147,0xf6,39 + .byte 0xc4,98,139,0xf6,127,8 + xor %eax, %eax + add %r12, %r14 + adc $0, %r15 + add %r11, %r13 + adc 16(%rsi), %r14 + adc $0, %r15 + add %r14, %r10 + adc 24(%rsi), %r15 + mov %r10, (%rbx) + mov %r15, 8(%rbx) + setc %al + jmp Lret + +Lo2: lea 2(%rcx), %r14 + .byte 0xc4,98,179,0xf6,7 + .byte 0xc4,98,163,0xf6,87,8 + sar $2, %r14 + add %r8, %r11 + jmp Llo2 + + .align 4, 0x90 +Ltp2: adc %rax, %r9 + lea 32(%rsi), %rsi + adc %r8, %r11 +Llo2: .byte 0xc4,98,147,0xf6,103,16 + mov (%rsi), %r8 + .byte 0xc4,226,227,0xf6,71,24 + lea 32(%rdi), %rdi + adc %r10, %r13 + adc %r12, %rbx + adc $0, %rax + mov 8(%rsi), %r10 + mov 16(%rsi), %r12 + add %r9, %r8 + mov 24(%rsi), %rbp + mov %r8, (%rsi) + adc %r11, %r10 + .byte 0xc4,98,179,0xf6,7 + mov %r10, 8(%rsi) + adc %r13, %r12 + mov %r12, 16(%rsi) + adc %rbx, %rbp + .byte 0xc4,98,163,0xf6,87,8 + mov %rbp, 24(%rsi) + inc %r14 + jnz Ltp2 + +Led2: mov 56(%rsi,%rcx,8), %rdx + lea 16(%rdi,%rcx,8), %rdi + adc %rax, %r9 + adc %r8, %r11 + mov 32(%rsi), %r8 + adc $0, %r10 + imul (%rsp), %rdx + mov 40(%rsi), %rax + add %r9, %r8 + mov %r8, 32(%rsi) + adc %r11, %rax + mov %rax, 40(%rsi) + lea 56(%rsi,%rcx,8), %rsi + adc $0, %r10 + mov %r10, -8(%rsi) + inc %r15 + jnz Lo2 + + jmp Lcj + + +Lbx1: test $2, %cl + jz Lo3a + +Lo1a: cmp $-1, %ecx + jnz Lo1b + + + mov 8(%rsp), %rbx + lea 16(%rsp), %rsp + .byte 0xc4,98,163,0xf6,23 + add (%rsi), %r11 + adc 8(%rsi), %r10 + mov %r10, (%rbx) + mov $0, %eax + setc %al + jmp Lret + +Lo1b: lea 24(%rdi), %rdi +Lo1: lea 1(%rcx), %r14 + .byte 0xc4,98,163,0xf6,87,232 + .byte 0xc4,98,147,0xf6,103,240 + .byte 0xc4,226,227,0xf6,71,248 + sar $2, %r14 + add %r10, %r13 + adc %r12, %rbx + adc $0, %rax + mov (%rsi), %r10 + mov 8(%rsi), %r12 + mov 16(%rsi), %rbp + add %r11, %r10 + jmp Llo1 + + .align 4, 0x90 +Ltp1: adc %rax, %r9 + lea 32(%rsi), %rsi + adc %r8, %r11 + .byte 0xc4,98,147,0xf6,103,16 + mov -8(%rsi), %r8 + .byte 0xc4,226,227,0xf6,71,24 + lea 32(%rdi), %rdi + adc %r10, %r13 + adc %r12, %rbx + adc $0, %rax + mov (%rsi), %r10 + mov 8(%rsi), %r12 + add %r9, %r8 + mov 16(%rsi), %rbp + mov %r8, -8(%rsi) + adc %r11, %r10 +Llo1: .byte 0xc4,98,179,0xf6,7 + mov %r10, (%rsi) + adc %r13, %r12 + mov %r12, 8(%rsi) + adc %rbx, %rbp + .byte 0xc4,98,163,0xf6,87,8 + mov %rbp, 16(%rsi) + inc %r14 + jnz Ltp1 + +Led1: mov 48(%rsi,%rcx,8), %rdx + lea 40(%rdi,%rcx,8), %rdi + adc %rax, %r9 + adc %r8, %r11 + mov 24(%rsi), %r8 + adc $0, %r10 + imul (%rsp), %rdx + mov 32(%rsi), %rax + add %r9, %r8 + mov %r8, 24(%rsi) + adc %r11, %rax + mov %rax, 32(%rsi) + lea 48(%rsi,%rcx,8), %rsi + adc $0, %r10 + mov %r10, -8(%rsi) + inc %r15 + jnz Lo1 + + jmp Lcj + +Lo3a: cmp $-3, %ecx + jnz Lo3b + + +Ln3: .byte 0xc4,226,227,0xf6,7 + .byte 0xc4,98,179,0xf6,119,8 + add (%rsi), %rbx + .byte 0xc4,98,163,0xf6,87,16 + adc %rax, %r9 + adc %r14, %r11 + mov 8(%rsi), %r14 + mov %r8, %rdx + adc $0, %r10 + mov 16(%rsi), %rax + add %r9, %r14 + mov %r14, 8(%rsi) + .byte 0xc4,66,235,0xf6,238 + adc %r11, %rax + mov %rax, 16(%rsi) + adc $0, %r10 + mov %r10, (%rsi) + lea 8(%rsi), %rsi + inc %r15 + jnz Ln3 + + jmp Lcj + +Lo3b: lea 8(%rdi), %rdi +Lo3: lea 4(%rcx), %r14 + .byte 0xc4,226,227,0xf6,71,248 + .byte 0xc4,98,179,0xf6,7 + mov (%rsi), %rbp + .byte 0xc4,98,163,0xf6,87,8 + sar $2, %r14 + add %rbx, %rbp + nop + adc %rax, %r9 + jmp Llo3 + + .align 4, 0x90 +Ltp3: adc %rax, %r9 + lea 32(%rsi), %rsi +Llo3: adc %r8, %r11 + .byte 0xc4,98,147,0xf6,103,16 + mov 8(%rsi), %r8 + .byte 0xc4,226,227,0xf6,71,24 + lea 32(%rdi), %rdi + adc %r10, %r13 + adc %r12, %rbx + adc $0, %rax + mov 16(%rsi), %r10 + mov 24(%rsi), %r12 + add %r9, %r8 + mov 32(%rsi), %rbp + mov %r8, 8(%rsi) + adc %r11, %r10 + .byte 0xc4,98,179,0xf6,7 + mov %r10, 16(%rsi) + adc %r13, %r12 + mov %r12, 24(%rsi) + adc %rbx, %rbp + .byte 0xc4,98,163,0xf6,87,8 + mov %rbp, 32(%rsi) + inc %r14 + jnz Ltp3 + +Led3: mov 64(%rsi,%rcx,8), %rdx + lea 24(%rdi,%rcx,8), %rdi + adc %rax, %r9 + adc %r8, %r11 + mov 40(%rsi), %r8 + adc $0, %r10 + imul (%rsp), %rdx + mov 48(%rsi), %rax + add %r9, %r8 + mov %r8, 40(%rsi) + adc %r11, %rax + mov %rax, 48(%rsi) + lea 64(%rsi,%rcx,8), %rsi + adc $0, %r10 + mov %r10, -8(%rsi) + inc %r15 + jnz Lo3 + + jmp Lcj + +Lo0b: lea 16(%rdi), %rdi +Lo0: mov %rcx, %r14 + .byte 0xc4,98,147,0xf6,103,240 + .byte 0xc4,226,227,0xf6,71,248 + sar $2, %r14 + add %r12, %rbx + adc $0, %rax + mov (%rsi), %r12 + mov 8(%rsi), %rbp + .byte 0xc4,98,179,0xf6,7 + add %r13, %r12 + jmp Llo0 + + .align 4, 0x90 +Ltp0: adc %rax, %r9 + lea 32(%rsi), %rsi + adc %r8, %r11 + .byte 0xc4,98,147,0xf6,103,16 + mov -16(%rsi), %r8 + .byte 0xc4,226,227,0xf6,71,24 + lea 32(%rdi), %rdi + adc %r10, %r13 + adc %r12, %rbx + adc $0, %rax + mov -8(%rsi), %r10 + mov (%rsi), %r12 + add %r9, %r8 + mov 8(%rsi), %rbp + mov %r8, -16(%rsi) + adc %r11, %r10 + .byte 0xc4,98,179,0xf6,7 + mov %r10, -8(%rsi) + adc %r13, %r12 + mov %r12, (%rsi) +Llo0: adc %rbx, %rbp + .byte 0xc4,98,163,0xf6,87,8 + mov %rbp, 8(%rsi) + inc %r14 + jnz Ltp0 + +Led0: mov 40(%rsi,%rcx,8), %rdx + lea 32(%rdi,%rcx,8), %rdi + adc %rax, %r9 + adc %r8, %r11 + mov 16(%rsi), %r8 + adc $0, %r10 + imul (%rsp), %rdx + mov 24(%rsi), %rax + add %r9, %r8 + mov %r8, 16(%rsi) + adc %r11, %rax + mov %rax, 24(%rsi) + lea 40(%rsi,%rcx,8), %rsi + adc $0, %r10 + mov %r10, -8(%rsi) + inc %r15 + jnz Lo0 + +Lcj: + mov 8(%rsp), %rdi + lea 16-8(%rsp), %rsp + lea (%rsi,%rcx,8), %rdx + neg %ecx + + + + + call ___gmpn_add_n + + lea 8(%rsp), %rsp + + +Lret: pop %r15 + pop %r14 + pop %r13 + pop %r12 + pop %rbp + pop %rbx + + ret + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/rsblsh1_n.s b/vere/ext/gmp/gen/x86_64-macos/mpn/rsblsh1_n.s new file mode 100644 index 0000000..824e7af --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/rsblsh1_n.s @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4, 0x90 + .globl ___gmpn_rsblsh1_nc + + +___gmpn_rsblsh1_nc: + + + + push %rbp + mov %r8, %rax + neg %rax + xor %ebp, %ebp + mov (%rdx), %r8 + shrd $63, %r8, %rbp + mov %ecx, %r9d + and $3, %r9d + je Lb00 + cmp $2, %r9d + jc Lb01 + je Lb10 + jmp Lb11 + + + .align 4, 0x90 + .globl ___gmpn_rsblsh1_n + + +___gmpn_rsblsh1_n: + + + push %rbp + xor %ebp, %ebp + mov (%rdx), %r8 + shrd $63, %r8, %rbp + mov %ecx, %eax + and $3, %eax + je Lb00 + cmp $2, %eax + jc Lb01 + je Lb10 + +Lb11: mov 8(%rdx), %r9 + shrd $63, %r9, %r8 + mov 16(%rdx), %r10 + shrd $63, %r10, %r9 + add %eax, %eax + sbb (%rsi), %rbp + sbb 8(%rsi), %r8 + sbb 16(%rsi), %r9 + mov %rbp, (%rdi) + mov %r8, 8(%rdi) + mov %r9, 16(%rdi) + mov %r10, %rbp + lea 24(%rsi), %rsi + lea 24(%rdx), %rdx + lea 24(%rdi), %rdi + sbb %eax, %eax + sub $3, %rcx + ja Ltop + jmp Lend + +Lb01: add %eax, %eax + sbb (%rsi), %rbp + mov %rbp, (%rdi) + mov %r8, %rbp + lea 8(%rsi), %rsi + lea 8(%rdx), %rdx + lea 8(%rdi), %rdi + sbb %eax, %eax + sub $1, %rcx + ja Ltop + jmp Lend + +Lb10: mov 8(%rdx), %r9 + shrd $63, %r9, %r8 + add %eax, %eax + sbb (%rsi), %rbp + sbb 8(%rsi), %r8 + mov %rbp, (%rdi) + mov %r8, 8(%rdi) + mov %r9, %rbp + lea 16(%rsi), %rsi + lea 16(%rdx), %rdx + lea 16(%rdi), %rdi + sbb %eax, %eax + sub $2, %rcx + ja Ltop + jmp Lend + + .align 4, 0x90 +Ltop: mov (%rdx), %r8 + shrd $63, %r8, %rbp +Lb00: mov 8(%rdx), %r9 + shrd $63, %r9, %r8 + mov 16(%rdx), %r10 + shrd $63, %r10, %r9 + mov 24(%rdx), %r11 + shrd $63, %r11, %r10 + lea 32(%rdx), %rdx + add %eax, %eax + sbb (%rsi), %rbp + sbb 8(%rsi), %r8 + sbb 16(%rsi), %r9 + sbb 24(%rsi), %r10 + lea 32(%rsi), %rsi + mov %rbp, (%rdi) + mov %r8, 8(%rdi) + mov %r9, 16(%rdi) + mov %r10, 24(%rdi) + mov %r11, %rbp + lea 32(%rdi), %rdi + sbb %eax, %eax + sub $4, %rcx + jnz Ltop + +Lend: shr $63, %rbp + add %eax, %eax + sbb $0, %rbp + mov %rbp, %rax + pop %rbp + + ret + + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/rsblsh2_n.s b/vere/ext/gmp/gen/x86_64-macos/mpn/rsblsh2_n.s new file mode 100644 index 0000000..77e0be2 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/rsblsh2_n.s @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4, 0x90 + .globl ___gmpn_rsblsh2_nc + + +___gmpn_rsblsh2_nc: + + + + push %rbp + mov %r8, %rax + neg %rax + xor %ebp, %ebp + mov (%rdx), %r8 + shrd $62, %r8, %rbp + mov %ecx, %r9d + and $3, %r9d + je Lb00 + cmp $2, %r9d + jc Lb01 + je Lb10 + jmp Lb11 + + + .align 4, 0x90 + .globl ___gmpn_rsblsh2_n + + +___gmpn_rsblsh2_n: + + + push %rbp + xor %ebp, %ebp + mov (%rdx), %r8 + shrd $62, %r8, %rbp + mov %ecx, %eax + and $3, %eax + je Lb00 + cmp $2, %eax + jc Lb01 + je Lb10 + +Lb11: mov 8(%rdx), %r9 + shrd $62, %r9, %r8 + mov 16(%rdx), %r10 + shrd $62, %r10, %r9 + add %eax, %eax + sbb (%rsi), %rbp + sbb 8(%rsi), %r8 + sbb 16(%rsi), %r9 + mov %rbp, (%rdi) + mov %r8, 8(%rdi) + mov %r9, 16(%rdi) + mov %r10, %rbp + lea 24(%rsi), %rsi + lea 24(%rdx), %rdx + lea 24(%rdi), %rdi + sbb %eax, %eax + sub $3, %rcx + ja Ltop + jmp Lend + +Lb01: add %eax, %eax + sbb (%rsi), %rbp + mov %rbp, (%rdi) + mov %r8, %rbp + lea 8(%rsi), %rsi + lea 8(%rdx), %rdx + lea 8(%rdi), %rdi + sbb %eax, %eax + sub $1, %rcx + ja Ltop + jmp Lend + +Lb10: mov 8(%rdx), %r9 + shrd $62, %r9, %r8 + add %eax, %eax + sbb (%rsi), %rbp + sbb 8(%rsi), %r8 + mov %rbp, (%rdi) + mov %r8, 8(%rdi) + mov %r9, %rbp + lea 16(%rsi), %rsi + lea 16(%rdx), %rdx + lea 16(%rdi), %rdi + sbb %eax, %eax + sub $2, %rcx + ja Ltop + jmp Lend + + .align 4, 0x90 +Ltop: mov (%rdx), %r8 + shrd $62, %r8, %rbp +Lb00: mov 8(%rdx), %r9 + shrd $62, %r9, %r8 + mov 16(%rdx), %r10 + shrd $62, %r10, %r9 + mov 24(%rdx), %r11 + shrd $62, %r11, %r10 + lea 32(%rdx), %rdx + add %eax, %eax + sbb (%rsi), %rbp + sbb 8(%rsi), %r8 + sbb 16(%rsi), %r9 + sbb 24(%rsi), %r10 + lea 32(%rsi), %rsi + mov %rbp, (%rdi) + mov %r8, 8(%rdi) + mov %r9, 16(%rdi) + mov %r10, 24(%rdi) + mov %r11, %rbp + lea 32(%rdi), %rdi + sbb %eax, %eax + sub $4, %rcx + jnz Ltop + +Lend: shr $62, %rbp + add %eax, %eax + sbb $0, %rbp + mov %rbp, %rax + pop %rbp + + ret + + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/rsblsh_n.s b/vere/ext/gmp/gen/x86_64-macos/mpn/rsblsh_n.s new file mode 100644 index 0000000..329c600 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/rsblsh_n.s @@ -0,0 +1,269 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 5, 0x90 + .globl ___gmpn_rsblsh_n + + +___gmpn_rsblsh_n: + + + + + mov (%rdx), %r10 + + mov %ecx, %eax + shr $3, %rcx + xor %r9d, %r9d + sub %r8, %r9 + and $7, %eax + + lea Ltab(%rip), %r11 + + movslq (%r11,%rax,4), %rax + add %r11, %rax + jmp *%rax + + +L0: lea 32(%rsi), %rsi + lea 32(%rdx), %rdx + lea 32(%rdi), %rdi + xor %r11d, %r11d + jmp Le0 + +L7: mov %r10, %r11 + lea 24(%rsi), %rsi + lea 24(%rdx), %rdx + lea 24(%rdi), %rdi + xor %r10d, %r10d + jmp Le7 + +L6: lea 16(%rsi), %rsi + lea 16(%rdx), %rdx + lea 16(%rdi), %rdi + xor %r11d, %r11d + jmp Le6 + +L5: mov %r10, %r11 + lea 8(%rsi), %rsi + lea 8(%rdx), %rdx + lea 8(%rdi), %rdi + xor %r10d, %r10d + jmp Le5 + +Lend: sbb 24(%rsi), %rax + mov %rax, -40(%rdi) + .byte 0xc4,194,179,0xf7,195 + sbb %rcx, %rax + + ret + + .align 5, 0x90 +Ltop: jrcxz Lend + mov -32(%rdx), %r10 + sbb 24(%rsi), %rax + lea 64(%rsi), %rsi + .byte 0xc4,66,179,0xf7,219 + mov %rax, -40(%rdi) +Le0: dec %rcx + .byte 0xc4,194,185,0xf7,194 + lea (%r11,%rax), %rax + mov -24(%rdx), %r11 + sbb -32(%rsi), %rax + .byte 0xc4,66,179,0xf7,210 + mov %rax, -32(%rdi) +Le7: .byte 0xc4,194,185,0xf7,195 + lea (%r10,%rax), %rax + mov -16(%rdx), %r10 + sbb -24(%rsi), %rax + .byte 0xc4,66,179,0xf7,219 + mov %rax, -24(%rdi) +Le6: .byte 0xc4,194,185,0xf7,194 + lea (%r11,%rax), %rax + mov -8(%rdx), %r11 + sbb -16(%rsi), %rax + .byte 0xc4,66,179,0xf7,210 + mov %rax, -16(%rdi) +Le5: .byte 0xc4,194,185,0xf7,195 + lea (%r10,%rax), %rax + mov (%rdx), %r10 + sbb -8(%rsi), %rax + .byte 0xc4,66,179,0xf7,219 + mov %rax, -8(%rdi) +Le4: .byte 0xc4,194,185,0xf7,194 + lea (%r11,%rax), %rax + mov 8(%rdx), %r11 + sbb (%rsi), %rax + .byte 0xc4,66,179,0xf7,210 + mov %rax, (%rdi) +Le3: .byte 0xc4,194,185,0xf7,195 + lea (%r10,%rax), %rax + mov 16(%rdx), %r10 + sbb 8(%rsi), %rax + .byte 0xc4,66,179,0xf7,219 + mov %rax, 8(%rdi) +Le2: .byte 0xc4,194,185,0xf7,194 + lea (%r11,%rax), %rax + mov 24(%rdx), %r11 + sbb 16(%rsi), %rax + lea 64(%rdx), %rdx + .byte 0xc4,66,179,0xf7,210 + mov %rax, 16(%rdi) + lea 64(%rdi), %rdi +Le1: .byte 0xc4,194,185,0xf7,195 + lea (%r10,%rax), %rax + jmp Ltop + +L4: xor %r11d, %r11d + jmp Le4 + +L3: mov %r10, %r11 + lea -8(%rsi), %rsi + lea -8(%rdx), %rdx + lea -8(%rdi), %rdi + xor %r10d, %r10d + jmp Le3 + +L2: lea -16(%rsi), %rsi + lea -16(%rdx), %rdx + lea -16(%rdi), %rdi + xor %r11d, %r11d + jmp Le2 + +L1: mov %r10, %r11 + lea -24(%rsi), %rsi + lea 40(%rdx), %rdx + lea 40(%rdi), %rdi + xor %r10d, %r10d + jmp Le1 + + .text + .align 3, 0x90 +Ltab: .set L0_tmp, L0-Ltab + .long L0_tmp + + .set L1_tmp, L1-Ltab + .long L1_tmp + + .set L2_tmp, L2-Ltab + .long L2_tmp + + .set L3_tmp, L3-Ltab + .long L3_tmp + + .set L4_tmp, L4-Ltab + .long L4_tmp + + .set L5_tmp, L5-Ltab + .long L5_tmp + + .set L6_tmp, L6-Ltab + .long L6_tmp + + .set L7_tmp, L7-Ltab + .long L7_tmp + + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/rsh1add_n.s b/vere/ext/gmp/gen/x86_64-macos/mpn/rsh1add_n.s new file mode 100644 index 0000000..96749ec --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/rsh1add_n.s @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + + .align 4, 0x90 + .globl ___gmpn_rsh1add_nc + + +___gmpn_rsh1add_nc: + + + + push %rbx + push %rbp + + neg %r8 + mov (%rsi), %rbp + adc (%rdx), %rbp + + jmp Lent + + + .align 4, 0x90 + .globl ___gmpn_rsh1add_n + + +___gmpn_rsh1add_n: + + + push %rbx + push %rbp + + mov (%rsi), %rbp + add (%rdx), %rbp +Lent: + sbb %ebx, %ebx + mov %ebp, %eax + and $1, %eax + + mov %ecx, %r11d + and $3, %r11d + + cmp $1, %r11d + je Ldo + +Ln1: cmp $2, %r11d + jne Ln2 + add %ebx, %ebx + mov 8(%rsi), %r10 + adc 8(%rdx), %r10 + lea 8(%rsi), %rsi + lea 8(%rdx), %rdx + lea 8(%rdi), %rdi + sbb %ebx, %ebx + + shrd $1, %r10, %rbp + mov %rbp, -8(%rdi) + jmp Lcj1 + +Ln2: cmp $3, %r11d + jne Ln3 + add %ebx, %ebx + mov 8(%rsi), %r9 + mov 16(%rsi), %r10 + adc 8(%rdx), %r9 + adc 16(%rdx), %r10 + lea 16(%rsi), %rsi + lea 16(%rdx), %rdx + lea 16(%rdi), %rdi + sbb %ebx, %ebx + + shrd $1, %r9, %rbp + mov %rbp, -16(%rdi) + jmp Lcj2 + +Ln3: dec %rcx + add %ebx, %ebx + mov 8(%rsi), %r8 + mov 16(%rsi), %r9 + adc 8(%rdx), %r8 + adc 16(%rdx), %r9 + mov 24(%rsi), %r10 + adc 24(%rdx), %r10 + lea 24(%rsi), %rsi + lea 24(%rdx), %rdx + lea 24(%rdi), %rdi + sbb %ebx, %ebx + + shrd $1, %r8, %rbp + mov %rbp, -24(%rdi) + shrd $1, %r9, %r8 + mov %r8, -16(%rdi) +Lcj2: shrd $1, %r10, %r9 + mov %r9, -8(%rdi) +Lcj1: mov %r10, %rbp + +Ldo: + shr $2, %rcx + je Lend + .align 4, 0x90 +Ltop: add %ebx, %ebx + + mov 8(%rsi), %r8 + mov 16(%rsi), %r9 + adc 8(%rdx), %r8 + adc 16(%rdx), %r9 + mov 24(%rsi), %r10 + mov 32(%rsi), %r11 + adc 24(%rdx), %r10 + adc 32(%rdx), %r11 + + lea 32(%rsi), %rsi + lea 32(%rdx), %rdx + + sbb %ebx, %ebx + + shrd $1, %r8, %rbp + mov %rbp, (%rdi) + shrd $1, %r9, %r8 + mov %r8, 8(%rdi) + shrd $1, %r10, %r9 + mov %r9, 16(%rdi) + shrd $1, %r11, %r10 + mov %r10, 24(%rdi) + + dec %rcx + mov %r11, %rbp + lea 32(%rdi), %rdi + jne Ltop + +Lend: shrd $1, %rbx, %rbp + mov %rbp, (%rdi) + pop %rbp + pop %rbx + + ret + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/rsh1sub_n.s b/vere/ext/gmp/gen/x86_64-macos/mpn/rsh1sub_n.s new file mode 100644 index 0000000..ca201b3 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/rsh1sub_n.s @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + + .align 4, 0x90 + .globl ___gmpn_rsh1sub_nc + + +___gmpn_rsh1sub_nc: + + + + push %rbx + push %rbp + + neg %r8 + mov (%rsi), %rbp + sbb (%rdx), %rbp + + jmp Lent + + + .align 4, 0x90 + .globl ___gmpn_rsh1sub_n + + +___gmpn_rsh1sub_n: + + + push %rbx + push %rbp + + mov (%rsi), %rbp + sub (%rdx), %rbp +Lent: + sbb %ebx, %ebx + mov %ebp, %eax + and $1, %eax + + mov %ecx, %r11d + and $3, %r11d + + cmp $1, %r11d + je Ldo + +Ln1: cmp $2, %r11d + jne Ln2 + add %ebx, %ebx + mov 8(%rsi), %r10 + sbb 8(%rdx), %r10 + lea 8(%rsi), %rsi + lea 8(%rdx), %rdx + lea 8(%rdi), %rdi + sbb %ebx, %ebx + + shrd $1, %r10, %rbp + mov %rbp, -8(%rdi) + jmp Lcj1 + +Ln2: cmp $3, %r11d + jne Ln3 + add %ebx, %ebx + mov 8(%rsi), %r9 + mov 16(%rsi), %r10 + sbb 8(%rdx), %r9 + sbb 16(%rdx), %r10 + lea 16(%rsi), %rsi + lea 16(%rdx), %rdx + lea 16(%rdi), %rdi + sbb %ebx, %ebx + + shrd $1, %r9, %rbp + mov %rbp, -16(%rdi) + jmp Lcj2 + +Ln3: dec %rcx + add %ebx, %ebx + mov 8(%rsi), %r8 + mov 16(%rsi), %r9 + sbb 8(%rdx), %r8 + sbb 16(%rdx), %r9 + mov 24(%rsi), %r10 + sbb 24(%rdx), %r10 + lea 24(%rsi), %rsi + lea 24(%rdx), %rdx + lea 24(%rdi), %rdi + sbb %ebx, %ebx + + shrd $1, %r8, %rbp + mov %rbp, -24(%rdi) + shrd $1, %r9, %r8 + mov %r8, -16(%rdi) +Lcj2: shrd $1, %r10, %r9 + mov %r9, -8(%rdi) +Lcj1: mov %r10, %rbp + +Ldo: + shr $2, %rcx + je Lend + .align 4, 0x90 +Ltop: add %ebx, %ebx + + mov 8(%rsi), %r8 + mov 16(%rsi), %r9 + sbb 8(%rdx), %r8 + sbb 16(%rdx), %r9 + mov 24(%rsi), %r10 + mov 32(%rsi), %r11 + sbb 24(%rdx), %r10 + sbb 32(%rdx), %r11 + + lea 32(%rsi), %rsi + lea 32(%rdx), %rdx + + sbb %ebx, %ebx + + shrd $1, %r8, %rbp + mov %rbp, (%rdi) + shrd $1, %r9, %r8 + mov %r8, 8(%rdi) + shrd $1, %r10, %r9 + mov %r9, 16(%rdi) + shrd $1, %r11, %r10 + mov %r10, 24(%rdi) + + dec %rcx + mov %r11, %rbp + lea 32(%rdi), %rdi + jne Ltop + +Lend: shrd $1, %rbx, %rbp + mov %rbp, (%rdi) + pop %rbp + pop %rbx + + ret + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/rshift.s b/vere/ext/gmp/gen/x86_64-macos/mpn/rshift.s new file mode 100644 index 0000000..7528e27 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/rshift.s @@ -0,0 +1,230 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 6, 0x90 + .globl ___gmpn_rshift + + +___gmpn_rshift: + + + movd %ecx, %xmm4 + mov $64, %eax + sub %ecx, %eax + movd %eax, %xmm5 + + neg %ecx + mov (%rsi), %rax + shl %cl, %rax + + cmp $3, %rdx + jle Lbc + + test $8, %dil + jz Lrp_aligned + + + movq (%rsi), %xmm0 + movq 8(%rsi), %xmm1 + psrlq %xmm4, %xmm0 + psllq %xmm5, %xmm1 + por %xmm1, %xmm0 + movq %xmm0, (%rdi) + lea 8(%rsi), %rsi + lea 8(%rdi), %rdi + dec %rdx + +Lrp_aligned: + lea 1(%rdx), %r8d + lea (%rsi,%rdx,8), %rsi + lea (%rdi,%rdx,8), %rdi + neg %rdx + + and $6, %r8d + jz Lbu0 + cmp $4, %r8d + jz Lbu4 + jc Lbu2 +Lbu6: add $4, %rdx + jmp Li56 +Lbu0: add $6, %rdx + jmp Li70 +Lbu4: add $2, %rdx + jmp Li34 +Lbu2: add $8, %rdx + jge Lend + + .align 4, 0x90 +Ltop: movdqu -64(%rsi,%rdx,8), %xmm1 + movdqu -56(%rsi,%rdx,8), %xmm0 + psllq %xmm5, %xmm0 + psrlq %xmm4, %xmm1 + por %xmm1, %xmm0 + movdqa %xmm0, -64(%rdi,%rdx,8) +Li70: + movdqu -48(%rsi,%rdx,8), %xmm1 + movdqu -40(%rsi,%rdx,8), %xmm0 + psllq %xmm5, %xmm0 + psrlq %xmm4, %xmm1 + por %xmm1, %xmm0 + movdqa %xmm0, -48(%rdi,%rdx,8) +Li56: + movdqu -32(%rsi,%rdx,8), %xmm1 + movdqu -24(%rsi,%rdx,8), %xmm0 + psllq %xmm5, %xmm0 + psrlq %xmm4, %xmm1 + por %xmm1, %xmm0 + movdqa %xmm0, -32(%rdi,%rdx,8) +Li34: + movdqu -16(%rsi,%rdx,8), %xmm1 + movdqu -8(%rsi,%rdx,8), %xmm0 + psllq %xmm5, %xmm0 + psrlq %xmm4, %xmm1 + por %xmm1, %xmm0 + movdqa %xmm0, -16(%rdi,%rdx,8) + add $8, %rdx + jl Ltop + +Lend: test $1, %dl + jnz Le1 + + movdqu -16(%rsi), %xmm1 + movq -8(%rsi), %xmm0 + psrlq %xmm4, %xmm1 + psllq %xmm5, %xmm0 + por %xmm1, %xmm0 + movdqa %xmm0, -16(%rdi) + + ret + +Le1: movq -8(%rsi), %xmm0 + psrlq %xmm4, %xmm0 + movq %xmm0, -8(%rdi) + + ret + + + .align 4, 0x90 +Lbc: dec %edx + jnz 1f + movq (%rsi), %xmm0 + psrlq %xmm4, %xmm0 + movq %xmm0, (%rdi) + + ret + +1: movq (%rsi), %xmm1 + movq 8(%rsi), %xmm0 + psrlq %xmm4, %xmm1 + psllq %xmm5, %xmm0 + por %xmm1, %xmm0 + movq %xmm0, (%rdi) + dec %edx + jnz 1f + movq 8(%rsi), %xmm0 + psrlq %xmm4, %xmm0 + movq %xmm0, 8(%rdi) + + ret + +1: movq 8(%rsi), %xmm1 + movq 16(%rsi), %xmm0 + psrlq %xmm4, %xmm1 + psllq %xmm5, %xmm0 + por %xmm1, %xmm0 + movq %xmm0, 8(%rdi) + movq 16(%rsi), %xmm0 + psrlq %xmm4, %xmm0 + movq %xmm0, 16(%rdi) + + ret + + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/sbpi1_bdiv_r.s b/vere/ext/gmp/gen/x86_64-macos/mpn/sbpi1_bdiv_r.s new file mode 100644 index 0000000..dcf3376 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/sbpi1_bdiv_r.s @@ -0,0 +1,681 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4, 0x90 + .globl ___gmpn_sbpi1_bdiv_r + + +___gmpn_sbpi1_bdiv_r: + + + + + lea Latab(%rip), %r10 + + cmp $8, %rcx + jbe Lsma + + + +Lgen: push %rbx + push %rbp + push %r12 + push %r13 + push %r14 + + mov %rdx, %r14 + xor %r13, %r13 + + sub %rcx, %rsi + + lea -8(,%rcx,8), %rbx + neg %rbx + mov %rcx, %rbp + mov %ecx, %eax + shr $3, %rbp + and $7, %eax + + movslq (%r10,%rax,4), %rax + lea (%rax,%r10), %rax + + mov (%rdi), %rdx + imul %r8, %rdx + jmp Louter + +Lf0: .byte 0xc4,66,171,0xf6,30 + lea -1(%rcx), %rcx + .byte 0xc4,66,155,0xf6,78,8 + lea -8(%r14), %r14 + .byte 0x66,77,0x0f,0x38,0xf6,227 + .byte 0xf3,76,0x0f,0x38,0xf6,23 + lea -8(%rdi), %rdi + jmp Lb0x + +Lf3: .byte 0xc4,66,155,0xf6,14 + .byte 0xc4,66,171,0xf6,94,8 + .byte 0xf3,76,0x0f,0x38,0xf6,39 + lea -48(%rdi), %rdi + lea 16(%r14), %r14 + jmp Lb3x + +Lf4: .byte 0xc4,66,171,0xf6,30 + .byte 0xc4,66,155,0xf6,78,8 + lea 24(%r14), %r14 + .byte 0xf3,76,0x0f,0x38,0xf6,23 + lea -40(%rdi), %rdi + .byte 0x66,77,0x0f,0x38,0xf6,227 + jmp Lb4x + +Lf5: .byte 0xc4,66,155,0xf6,14 + .byte 0xc4,66,171,0xf6,94,8 + lea 32(%r14), %r14 + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xf3,76,0x0f,0x38,0xf6,39 + lea -32(%rdi), %rdi + jmp Lb5x + +Lf6: .byte 0xc4,66,171,0xf6,30 + .byte 0xc4,66,155,0xf6,78,8 + lea 40(%r14), %r14 + .byte 0xf3,76,0x0f,0x38,0xf6,23 + lea -24(%rdi), %rdi + .byte 0x66,77,0x0f,0x38,0xf6,227 + jmp Lb6x + +Lf7: .byte 0xc4,66,155,0xf6,14 + .byte 0xc4,66,171,0xf6,94,8 + lea 48(%r14), %r14 + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xf3,76,0x0f,0x38,0xf6,39 + lea -16(%rdi), %rdi + jmp Lb7x + +Lf1: .byte 0xc4,66,155,0xf6,14 + .byte 0xc4,66,171,0xf6,94,8 + .byte 0xf3,76,0x0f,0x38,0xf6,39 + lea -1(%rcx), %rcx + jmp Lb1x + +Lf2: .byte 0xc4,66,171,0xf6,30 + .byte 0xc4,66,155,0xf6,78,8 + lea 8(%r14), %r14 + .byte 0xf3,76,0x0f,0x38,0xf6,23 + lea 8(%rdi), %rdi + .byte 0x66,77,0x0f,0x38,0xf6,227 + jmp Lb2x + +Lend: .byte 0xf3,76,0x0f,0x38,0xf6,39 + .byte 0xf3,76,0x0f,0x38,0xf6,201 + mov %r12, (%rdi) + adc %rcx, %r9 + mov 8(%rdi,%rbx), %rdx + .byte 0xc4,66,235,0xf6,224 + bt $0, %r13d + adc %r9, 8(%rdi) + setc %r13b + dec %rsi + jz Ldone + + lea (%r14,%rbx), %r14 + lea 8(%rdi,%rbx), %rdi +Louter: + mov %rbp, %rcx + test %eax, %eax + jmp *%rax + + .align 4, 0x90 +Ltop: .byte 0xf3,76,0x0f,0x38,0xf6,87,248 + .byte 0x66,77,0x0f,0x38,0xf6,227 + mov %r10, -8(%rdi) + jrcxz Lend +Lb2x: .byte 0xc4,66,171,0xf6,94,8 + .byte 0xf3,76,0x0f,0x38,0xf6,39 + lea -1(%rcx), %rcx + mov %r12, (%rdi) +Lb1x: .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xc4,66,155,0xf6,78,16 + .byte 0x66,77,0x0f,0x38,0xf6,227 + .byte 0xf3,76,0x0f,0x38,0xf6,87,8 + mov %r10, 8(%rdi) +Lb0x: .byte 0xc4,66,171,0xf6,94,24 + lea 64(%r14), %r14 + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xf3,76,0x0f,0x38,0xf6,103,16 + mov %r12, 16(%rdi) +Lb7x: .byte 0xc4,66,155,0xf6,78,224 + .byte 0xf3,76,0x0f,0x38,0xf6,87,24 + .byte 0x66,77,0x0f,0x38,0xf6,227 + mov %r10, 24(%rdi) +Lb6x: .byte 0xc4,66,171,0xf6,94,232 + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xf3,76,0x0f,0x38,0xf6,103,32 + mov %r12, 32(%rdi) +Lb5x: .byte 0xc4,66,155,0xf6,78,240 + .byte 0xf3,76,0x0f,0x38,0xf6,87,40 + .byte 0x66,77,0x0f,0x38,0xf6,227 + mov %r10, 40(%rdi) +Lb4x: .byte 0xf3,76,0x0f,0x38,0xf6,103,48 + .byte 0xc4,66,171,0xf6,94,248 + mov %r12, 48(%rdi) +Lb3x: lea 64(%rdi), %rdi + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xc4,66,155,0xf6,14 + jmp Ltop + +Ldone:mov %r13, %rax + pop %r14 + pop %r13 + pop %r12 + pop %rbp + pop %rbx + + ret + +Lsma: + movslq 28(%r10,%rcx,4), %rax + lea (%rax,%r10), %rax + + jmp *%rax + +L1: mov (%rdx), %r10 + xor %eax, %eax + mov (%rdi), %rdx + dec %rsi + mov %rdx, %r9 +Lo1: .byte 0xc4,66,235,0xf6,216 + lea 8(%rdi), %rdi + .byte 0xc4,194,243,0xf6,210 + add %r9, %rcx + adc %rax, %rdx + add (%rdi), %rdx + setc %al + mov %rdx, %r9 + dec %rsi + jnz Lo1 + mov %r9, (%rdi) + + + ret + + +L2: push %r12 + push %r14 + + mov %rdx, %r14 + sub %rcx, %rsi + mov (%rdi), %rdx + imul %r8, %rdx + + + + push %rbx + push %r13 + xor %r13d, %r13d + mov (%rdi), %rax + mov 8(%rdi), %rbx +Lo2: xor %ecx, %ecx + .byte 0xc4,66,171,0xf6,30 + .byte 0xc4,66,235,0xf6,78,8 + .byte 0xf3,76,0x0f,0x38,0xf6,208 + .byte 0x66,73,0x0f,0x38,0xf6,211 + .byte 0xf3,72,0x0f,0x38,0xf6,211 + .byte 0xf3,76,0x0f,0x38,0xf6,201 + mov %rdx, %rax + adc %rcx, %r9 + imul %r8, %rdx + bt $0, %r13d + adc 16(%rdi), %r9 + mov %r9, %rbx + setc %r13b + lea 8(%rdi), %rdi + dec %rsi + jnz Lo2 + + mov %rax, (%rdi) + mov %rbx, 8(%rdi) + mov %r13, %rax + pop %r13 + pop %rbx + + + + pop %r14 + pop %r12 + + ret + + +L3: push %rbx + push %r12 + push %r13 + push %r14 + + mov %rdx, %r14 + xor %r13, %r13 + sub %rcx, %rsi + mov (%rdi), %rax + mov 8(%rdi), %rbx + mov %rax, %rdx + imul %r8, %rdx +Lo3: xor %ecx, %ecx + .byte 0xc4,66,155,0xf6,14 + .byte 0xf3,76,0x0f,0x38,0xf6,224 + .byte 0xc4,66,251,0xf6,94,8 + .byte 0x66,73,0x0f,0x38,0xf6,193 + .byte 0xf3,72,0x0f,0x38,0xf6,195 + .byte 0xc4,66,227,0xf6,78,16 + mov %r8, %rdx + .byte 0xc4,98,235,0xf6,224 + .byte 0x66,73,0x0f,0x38,0xf6,219 + .byte 0xf3,72,0x0f,0x38,0xf6,95,16 + .byte 0xf3,76,0x0f,0x38,0xf6,201 + adc $0, %r9 + bt $0, %r13d + adc %r9, 24(%rdi) + setc %r13b + lea 8(%rdi), %rdi + dec %rsi + jnz Lo3 + jmp Lesma + + + +L4: push %rbx + push %r12 + push %r13 + push %r14 + + mov %rdx, %r14 + xor %r13, %r13 + sub %rcx, %rsi + mov (%rdi), %rax + mov 8(%rdi), %rbx + mov %rax, %rdx + imul %r8, %rdx +Lo4: xor %ecx, %ecx + .byte 0xc4,66,171,0xf6,30 + .byte 0xf3,76,0x0f,0x38,0xf6,208 + .byte 0xc4,66,251,0xf6,78,8 + .byte 0x66,73,0x0f,0x38,0xf6,195 + .byte 0xf3,72,0x0f,0x38,0xf6,195 + .byte 0xc4,66,227,0xf6,94,16 + .byte 0x66,73,0x0f,0x38,0xf6,217 + .byte 0xc4,66,155,0xf6,78,24 + mov %r8, %rdx + .byte 0xc4,98,235,0xf6,208 + .byte 0xf3,72,0x0f,0x38,0xf6,95,16 + .byte 0x66,77,0x0f,0x38,0xf6,227 + .byte 0xf3,76,0x0f,0x38,0xf6,103,24 + .byte 0xf3,76,0x0f,0x38,0xf6,201 + mov %r12, 24(%rdi) + adc %rcx, %r9 + bt $0, %r13d + adc %r9, 32(%rdi) + setc %r13b + lea 8(%rdi), %rdi + dec %rsi + jnz Lo4 + jmp Lesma + + + +L5: push %rbx + push %r12 + push %r13 + push %r14 + + mov %rdx, %r14 + xor %r13, %r13 + sub %rcx, %rsi + mov (%rdi), %rax + mov 8(%rdi), %rbx + mov %rax, %rdx + imul %r8, %rdx +Lo5: xor %ecx, %ecx + .byte 0xc4,66,155,0xf6,14 + .byte 0xf3,76,0x0f,0x38,0xf6,224 + .byte 0xc4,66,251,0xf6,94,8 + .byte 0x66,73,0x0f,0x38,0xf6,193 + .byte 0xf3,72,0x0f,0x38,0xf6,195 + .byte 0xc4,66,227,0xf6,78,16 + .byte 0x66,73,0x0f,0x38,0xf6,219 + .byte 0xf3,72,0x0f,0x38,0xf6,95,16 + .byte 0xc4,66,171,0xf6,94,24 + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xc4,66,155,0xf6,78,32 + .byte 0xf3,76,0x0f,0x38,0xf6,87,24 + .byte 0x66,77,0x0f,0x38,0xf6,227 + mov %r8, %rdx + .byte 0xc4,98,235,0xf6,216 + mov %r10, 24(%rdi) + .byte 0xf3,76,0x0f,0x38,0xf6,103,32 + .byte 0xf3,76,0x0f,0x38,0xf6,201 + mov %r12, 32(%rdi) + adc %rcx, %r9 + bt $0, %r13d + adc %r9, 40(%rdi) + setc %r13b + lea 8(%rdi), %rdi + dec %rsi + jnz Lo5 + jmp Lesma + + + +L6: push %rbx + push %r12 + push %r13 + push %r14 + + mov %rdx, %r14 + xor %r13, %r13 + sub %rcx, %rsi + mov (%rdi), %rax + mov 8(%rdi), %rbx + mov %rax, %rdx + imul %r8, %rdx +Lo6: xor %ecx, %ecx + .byte 0xc4,66,171,0xf6,30 + .byte 0xf3,76,0x0f,0x38,0xf6,208 + .byte 0xc4,66,251,0xf6,78,8 + .byte 0x66,73,0x0f,0x38,0xf6,195 + .byte 0xf3,72,0x0f,0x38,0xf6,195 + .byte 0xc4,66,227,0xf6,94,16 + .byte 0x66,73,0x0f,0x38,0xf6,217 + .byte 0xc4,66,155,0xf6,78,24 + .byte 0xf3,72,0x0f,0x38,0xf6,95,16 + .byte 0x66,77,0x0f,0x38,0xf6,227 + .byte 0xf3,76,0x0f,0x38,0xf6,103,24 + .byte 0xc4,66,171,0xf6,94,32 + mov %r12, 24(%rdi) + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xc4,66,155,0xf6,78,40 + .byte 0xf3,76,0x0f,0x38,0xf6,87,32 + .byte 0x66,77,0x0f,0x38,0xf6,227 + mov %r8, %rdx + .byte 0xc4,98,235,0xf6,216 + mov %r10, 32(%rdi) + .byte 0xf3,76,0x0f,0x38,0xf6,103,40 + .byte 0xf3,76,0x0f,0x38,0xf6,201 + mov %r12, 40(%rdi) + adc %rcx, %r9 + bt $0, %r13d + adc %r9, 48(%rdi) + setc %r13b + lea 8(%rdi), %rdi + dec %rsi + jnz Lo6 + jmp Lesma + + + +L7: push %rbx + push %r12 + push %r13 + push %r14 + + mov %rdx, %r14 + xor %r13, %r13 + sub %rcx, %rsi + mov (%rdi), %rax + mov 8(%rdi), %rbx + mov %rax, %rdx + imul %r8, %rdx +Lo7: xor %ecx, %ecx + .byte 0xc4,66,155,0xf6,14 + .byte 0xf3,76,0x0f,0x38,0xf6,224 + .byte 0xc4,66,251,0xf6,94,8 + .byte 0x66,73,0x0f,0x38,0xf6,193 + .byte 0xf3,72,0x0f,0x38,0xf6,195 + .byte 0xc4,66,227,0xf6,78,16 + .byte 0x66,73,0x0f,0x38,0xf6,219 + .byte 0xc4,66,171,0xf6,94,24 + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xf3,72,0x0f,0x38,0xf6,95,16 + .byte 0xc4,66,155,0xf6,78,32 + .byte 0xf3,76,0x0f,0x38,0xf6,87,24 + .byte 0x66,77,0x0f,0x38,0xf6,227 + mov %r10, 24(%rdi) + .byte 0xf3,76,0x0f,0x38,0xf6,103,32 + .byte 0xc4,66,171,0xf6,94,40 + mov %r12, 32(%rdi) + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xc4,66,155,0xf6,78,48 + .byte 0xf3,76,0x0f,0x38,0xf6,87,40 + .byte 0x66,77,0x0f,0x38,0xf6,227 + mov %r10, 40(%rdi) + mov %rax, %rdx + .byte 0xc4,66,235,0xf6,208 + .byte 0xf3,76,0x0f,0x38,0xf6,103,48 + .byte 0xf3,76,0x0f,0x38,0xf6,201 + mov %r12, 48(%rdi) + adc %rcx, %r9 + bt $0, %r13d + adc %r9, 56(%rdi) + setc %r13b + lea 8(%rdi), %rdi + dec %rsi + jnz Lo7 + jmp Lesma + + + +L8: push %rbx + push %r12 + push %r13 + push %r14 + + mov %rdx, %r14 + xor %r13, %r13 + sub %rcx, %rsi + mov (%rdi), %rax + mov 8(%rdi), %rbx + mov %rax, %rdx + imul %r8, %rdx +Lo8: xor %ecx, %ecx + .byte 0xc4,66,171,0xf6,30 + .byte 0xf3,76,0x0f,0x38,0xf6,208 + .byte 0xc4,66,251,0xf6,78,8 + .byte 0x66,73,0x0f,0x38,0xf6,195 + .byte 0xf3,72,0x0f,0x38,0xf6,195 + .byte 0xc4,66,227,0xf6,94,16 + .byte 0x66,73,0x0f,0x38,0xf6,217 + .byte 0xc4,66,155,0xf6,78,24 + .byte 0xf3,72,0x0f,0x38,0xf6,95,16 + .byte 0x66,77,0x0f,0x38,0xf6,227 + .byte 0xc4,66,171,0xf6,94,32 + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xf3,76,0x0f,0x38,0xf6,103,24 + mov %r12, 24(%rdi) + .byte 0xc4,66,155,0xf6,78,40 + .byte 0xf3,76,0x0f,0x38,0xf6,87,32 + .byte 0x66,77,0x0f,0x38,0xf6,227 + mov %r10, 32(%rdi) + .byte 0xf3,76,0x0f,0x38,0xf6,103,40 + .byte 0xc4,66,171,0xf6,94,48 + mov %r12, 40(%rdi) + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xc4,66,155,0xf6,78,56 + .byte 0xf3,76,0x0f,0x38,0xf6,87,48 + .byte 0x66,77,0x0f,0x38,0xf6,227 + mov %r8, %rdx + .byte 0xc4,98,235,0xf6,216 + mov %r10, 48(%rdi) + .byte 0xf3,76,0x0f,0x38,0xf6,103,56 + .byte 0xf3,76,0x0f,0x38,0xf6,201 + mov %r12, 56(%rdi) + adc %rcx, %r9 + bt $0, %r13d + adc %r9, 64(%rdi) + setc %r13b + lea 8(%rdi), %rdi + dec %rsi + jnz Lo8 + jmp Lesma + + +Lesma:mov %rax, (%rdi) + mov %rbx, 8(%rdi) + mov %r13, %rax + pop %r14 + pop %r13 + pop %r12 + pop %rbx + + ret + + + .text + .align 3, 0x90 +Latab:.set Lf0_tmp, Lf0-Latab + .long Lf0_tmp + + .set Lf1_tmp, Lf1-Latab + .long Lf1_tmp + + .set Lf2_tmp, Lf2-Latab + .long Lf2_tmp + + .set Lf3_tmp, Lf3-Latab + .long Lf3_tmp + + .set Lf4_tmp, Lf4-Latab + .long Lf4_tmp + + .set Lf5_tmp, Lf5-Latab + .long Lf5_tmp + + .set Lf6_tmp, Lf6-Latab + .long Lf6_tmp + + .set Lf7_tmp, Lf7-Latab + .long Lf7_tmp + + .set L1_tmp, L1-Latab + .long L1_tmp + + .set L2_tmp, L2-Latab + .long L2_tmp + + .set L3_tmp, L3-Latab + .long L3_tmp + + .set L4_tmp, L4-Latab + .long L4_tmp + + .set L5_tmp, L5-Latab + .long L5_tmp + + .set L6_tmp, L6-Latab + .long L6_tmp + + .set L7_tmp, L7-Latab + .long L7_tmp + + .set L8_tmp, L8-Latab + .long L8_tmp + + .text + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/sec_tabselect.s b/vere/ext/gmp/gen/x86_64-macos/mpn/sec_tabselect.s new file mode 100644 index 0000000..46c87ed --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/sec_tabselect.s @@ -0,0 +1,233 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4, 0x90 + .globl ___gmpn_sec_tabselect + + +___gmpn_sec_tabselect: + + + + + + + + + + + movd %r8, %xmm8 + pshufd $0, %xmm8, %xmm8 + mov $1, %eax + movd %rax, %xmm9 + pshufd $0, %xmm9, %xmm9 + + mov %rdx, %r9 + add $-8, %r9 + js Louter_end + +Louter_top: + mov %rcx, %r10 + mov %rsi, %r11 + pxor %xmm1, %xmm1 + pxor %xmm4, %xmm4 + pxor %xmm5, %xmm5 + pxor %xmm6, %xmm6 + pxor %xmm7, %xmm7 + .align 4, 0x90 +Ltop: movdqa %xmm8, %xmm0 + pcmpeqd %xmm1, %xmm0 + paddd %xmm9, %xmm1 + movdqu 0(%rsi), %xmm2 + movdqu 16(%rsi), %xmm3 + pand %xmm0, %xmm2 + pand %xmm0, %xmm3 + por %xmm2, %xmm4 + por %xmm3, %xmm5 + movdqu 32(%rsi), %xmm2 + movdqu 48(%rsi), %xmm3 + pand %xmm0, %xmm2 + pand %xmm0, %xmm3 + por %xmm2, %xmm6 + por %xmm3, %xmm7 + lea (%rsi,%rdx,8), %rsi + add $-1, %r10 + jne Ltop + + movdqu %xmm4, 0(%rdi) + movdqu %xmm5, 16(%rdi) + movdqu %xmm6, 32(%rdi) + movdqu %xmm7, 48(%rdi) + + lea 64(%r11), %rsi + lea 64(%rdi), %rdi + add $-8, %r9 + jns Louter_top +Louter_end: + + test $4, %dl + je Lb0xx +Lb1xx:mov %rcx, %r10 + mov %rsi, %r11 + pxor %xmm1, %xmm1 + pxor %xmm4, %xmm4 + pxor %xmm5, %xmm5 + .align 4, 0x90 +Ltp4: movdqa %xmm8, %xmm0 + pcmpeqd %xmm1, %xmm0 + paddd %xmm9, %xmm1 + movdqu 0(%rsi), %xmm2 + movdqu 16(%rsi), %xmm3 + pand %xmm0, %xmm2 + pand %xmm0, %xmm3 + por %xmm2, %xmm4 + por %xmm3, %xmm5 + lea (%rsi,%rdx,8), %rsi + add $-1, %r10 + jne Ltp4 + movdqu %xmm4, 0(%rdi) + movdqu %xmm5, 16(%rdi) + lea 32(%r11), %rsi + lea 32(%rdi), %rdi + +Lb0xx:test $2, %dl + je Lb00x +Lb01x:mov %rcx, %r10 + mov %rsi, %r11 + pxor %xmm1, %xmm1 + pxor %xmm4, %xmm4 + .align 4, 0x90 +Ltp2: movdqa %xmm8, %xmm0 + pcmpeqd %xmm1, %xmm0 + paddd %xmm9, %xmm1 + movdqu 0(%rsi), %xmm2 + pand %xmm0, %xmm2 + por %xmm2, %xmm4 + lea (%rsi,%rdx,8), %rsi + add $-1, %r10 + jne Ltp2 + movdqu %xmm4, 0(%rdi) + lea 16(%r11), %rsi + lea 16(%rdi), %rdi + +Lb00x:test $1, %dl + je Lb000 +Lb001:mov %rcx, %r10 + mov %rsi, %r11 + pxor %xmm1, %xmm1 + pxor %xmm4, %xmm4 + .align 4, 0x90 +Ltp1: movdqa %xmm8, %xmm0 + pcmpeqd %xmm1, %xmm0 + paddd %xmm9, %xmm1 + movq 0(%rsi), %xmm2 + pand %xmm0, %xmm2 + por %xmm2, %xmm4 + lea (%rsi,%rdx,8), %rsi + add $-1, %r10 + jne Ltp1 + movq %xmm4, 0(%rdi) + +Lb000: + + + + + + + ret + + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/sqr_basecase.s b/vere/ext/gmp/gen/x86_64-macos/mpn/sqr_basecase.s new file mode 100644 index 0000000..393b191 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/sqr_basecase.s @@ -0,0 +1,880 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4, 0x90 + .globl ___gmpn_sqr_basecase + + +___gmpn_sqr_basecase: + + + + cmp $2, %rdx + jae Lgt1 + + mov (%rsi), %rdx + .byte 0xc4,226,251,0xf6,210 + mov %rax, (%rdi) + mov %rdx, 8(%rdi) + + ret + +Lgt1: jne Lgt2 + + mov (%rsi), %rdx + mov 8(%rsi), %rcx + .byte 0xc4,98,179,0xf6,209 + .byte 0xc4,98,251,0xf6,194 + mov %rcx, %rdx + .byte 0xc4,226,163,0xf6,210 + add %r9, %r9 + adc %r10, %r10 + adc $0, %rdx + add %r9, %r8 + adc %r11, %r10 + adc $0, %rdx + mov %rax, (%rdi) + mov %r8, 8(%rdi) + mov %r10, 16(%rdi) + mov %rdx, 24(%rdi) + + ret + +Lgt2: cmp $4, %rdx + jae Lgt3 + + push %rbx + mov (%rsi), %rdx + .byte 0xc4,98,171,0xf6,94,8 + .byte 0xc4,98,187,0xf6,78,16 + add %r11, %r8 + mov 8(%rsi), %rdx + .byte 0xc4,98,251,0xf6,94,16 + adc %rax, %r9 + adc $0, %r11 + test %ebx, %ebx + mov (%rsi), %rdx + .byte 0xc4,226,227,0xf6,202 + mov %rbx, (%rdi) + mov 8(%rsi), %rdx + .byte 0xc4,226,251,0xf6,218 + mov 16(%rsi), %rdx + .byte 0xc4,226,203,0xf6,210 + .byte 0x66,77,0x0f,0x38,0xf6,210 + .byte 0x66,77,0x0f,0x38,0xf6,192 + .byte 0x66,77,0x0f,0x38,0xf6,201 + .byte 0x66,77,0x0f,0x38,0xf6,219 + .byte 0xf3,73,0x0f,0x38,0xf6,202 + .byte 0xf3,73,0x0f,0x38,0xf6,192 + .byte 0xf3,73,0x0f,0x38,0xf6,217 + .byte 0xf3,73,0x0f,0x38,0xf6,243 + mov $0, %r8d + .byte 0xf3,73,0x0f,0x38,0xf6,208 + .byte 0x66,73,0x0f,0x38,0xf6,208 + mov %rcx, 8(%rdi) + mov %rax, 16(%rdi) + mov %rbx, 24(%rdi) + mov %rsi, 32(%rdi) + mov %rdx, 40(%rdi) + pop %rbx + + ret + +Lgt3: push %rbx + + lea -3(%rdx), %ebx + lea 5(%rdx), %ecx + mov %edx, %eax + and $-8, %ebx + shr $3, %ecx + neg %rbx + and $7, %eax + + mov (%rsi), %rdx + + lea Lmtab(%rip), %r10 + movslq (%r10,%rax,4), %r8 + lea (%r8, %r10), %r10 + jmp *%r10 + + +Lmf0: .byte 0xc4,98,187,0xf6,202 + add %rdx, %rdx + .byte 0xc4,98,171,0xf6,94,8 + lea 64(%rsi), %rsi + add %r9, %r10 + jmp Lmb0 + +Lmf3: .byte 0xc4,98,171,0xf6,218 + add %rdx, %rdx + mov %r10, (%rdi) + .byte 0xc4,98,187,0xf6,78,8 + lea 24(%rsi), %rsi + lea 24(%rdi), %rdi + add %r11, %r8 + jmp Lmb3 + +Lmf4: .byte 0xc4,98,187,0xf6,202 + add %rdx, %rdx + .byte 0xc4,98,171,0xf6,94,8 + mov %r8, (%rdi) + lea 32(%rsi), %rsi + lea 32(%rdi), %rdi + add %r9, %r10 + jmp Lmb4 + +Lmf5: .byte 0xc4,98,171,0xf6,218 + add %rdx, %rdx + .byte 0xc4,98,187,0xf6,78,8 + mov %r10, (%rdi) + lea 40(%rsi), %rsi + lea 40(%rdi), %rdi + add %r11, %r8 + jmp Lmb5 + +Lmf6: .byte 0xc4,98,187,0xf6,202 + add %rdx, %rdx + .byte 0xc4,98,171,0xf6,94,8 + mov %r8, (%rdi) + lea 48(%rsi), %rsi + lea 48(%rdi), %rdi + add %r9, %r10 + jmp Lmb6 + +Lmf7: .byte 0xc4,98,171,0xf6,218 + add %rdx, %rdx + .byte 0xc4,98,187,0xf6,78,8 + mov %r10, (%rdi) + lea 56(%rsi), %rsi + lea 56(%rdi), %rdi + add %r11, %r8 + jmp Lmb7 + +Lmf1: .byte 0xc4,98,171,0xf6,218 + add %rdx, %rdx + .byte 0xc4,98,187,0xf6,78,8 + mov %r10, (%rdi) + lea 8(%rsi), %rsi + lea 8(%rdi), %rdi + add %r11, %r8 + jmp Lmb1 + +Lmf2: .byte 0xc4,98,187,0xf6,202 + add %rdx, %rdx + .byte 0xc4,98,171,0xf6,94,8 + mov %r8, (%rdi) + lea 16(%rsi), %rsi + lea 16(%rdi), %rdi + dec %ecx + add %r9, %r10 + .byte 0xc4,98,187,0xf6,14 + + .align 4, 0x90 +Ltop: mov %r10, -8(%rdi) + adc %r11, %r8 +Lmb1: .byte 0xc4,98,171,0xf6,94,8 + adc %r9, %r10 + lea 64(%rsi), %rsi +Lmb0: mov %r8, (%rdi) + mov %r10, 8(%rdi) + .byte 0xc4,98,187,0xf6,78,208 + lea 64(%rdi), %rdi + adc %r11, %r8 +Lmb7: .byte 0xc4,98,171,0xf6,94,216 + mov %r8, -48(%rdi) + adc %r9, %r10 +Lmb6: mov %r10, -40(%rdi) + .byte 0xc4,98,187,0xf6,78,224 + adc %r11, %r8 +Lmb5: .byte 0xc4,98,171,0xf6,94,232 + mov %r8, -32(%rdi) + adc %r9, %r10 +Lmb4: .byte 0xc4,98,187,0xf6,78,240 + mov %r10, -24(%rdi) + adc %r11, %r8 +Lmb3: .byte 0xc4,98,171,0xf6,94,248 + adc %r9, %r10 + mov %r8, -16(%rdi) + dec %ecx + .byte 0xc4,98,187,0xf6,14 + jnz Ltop + +Lend: mov %r10, -8(%rdi) + adc %r11, %r8 + + + + + lea Latab(%rip), %r10 + movslq (%r10,%rax,4), %r11 + lea (%r11, %r10), %r11 + + mov $63, %eax + jmp *%r11 + +Led0: .byte 0xf3,76,0x0f,0x38,0xf6,7 + .byte 0xf3,76,0x0f,0x38,0xf6,201 +Lf7: mov %r8, (%rdi) + adc %rcx, %r9 + mov %r9, 8(%rdi) + lea -64(%rsi,%rbx,8), %rsi + mov %ebx, %ecx + lea -56(%rdi,%rbx,8), %rdi + mov (%rsi), %r9 + mov 8(%rsi), %rdx + .byte 0xc4,66,251,0xf7,193 + .byte 0xc4,66,250,0xf7,201 + and %rdx, %r9 + .byte 0xc4,98,171,0xf6,218 + lea (%r8,%rdx,2), %rdx + jmp Lb7 + + .align 4, 0x90 +Ltp0: .byte 0xf3,76,0x0f,0x38,0xf6,87,248 + .byte 0x66,77,0x0f,0x38,0xf6,195 + mov %r10, -8(%rdi) + jrcxz Led0 + .byte 0xc4,98,171,0xf6,94,8 + .byte 0xf3,76,0x0f,0x38,0xf6,7 + lea 8(%rcx), %ecx +Lb0: mov %r8, (%rdi) + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xc4,98,187,0xf6,78,16 + .byte 0x66,77,0x0f,0x38,0xf6,195 + .byte 0xf3,76,0x0f,0x38,0xf6,87,8 + mov %r10, 8(%rdi) + .byte 0xc4,98,171,0xf6,94,24 + lea 64(%rsi), %rsi + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xf3,76,0x0f,0x38,0xf6,71,16 + mov %r8, 16(%rdi) + .byte 0xc4,98,187,0xf6,78,224 + .byte 0xf3,76,0x0f,0x38,0xf6,87,24 + .byte 0x66,77,0x0f,0x38,0xf6,195 + mov %r10, 24(%rdi) + .byte 0xc4,98,171,0xf6,94,232 + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xf3,76,0x0f,0x38,0xf6,71,32 + mov %r8, 32(%rdi) + .byte 0xc4,98,187,0xf6,78,240 + .byte 0xf3,76,0x0f,0x38,0xf6,87,40 + .byte 0x66,77,0x0f,0x38,0xf6,195 + mov %r10, 40(%rdi) + .byte 0xf3,76,0x0f,0x38,0xf6,71,48 + .byte 0xc4,98,171,0xf6,94,248 + mov %r8, 48(%rdi) + lea 64(%rdi), %rdi + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xc4,98,187,0xf6,14 + jmp Ltp0 + +Led1: .byte 0xf3,76,0x0f,0x38,0xf6,7 + .byte 0xf3,76,0x0f,0x38,0xf6,201 +Lf0: mov %r8, (%rdi) + adc %rcx, %r9 + mov %r9, 8(%rdi) + lea -64(%rsi,%rbx,8), %rsi + mov %ebx, %ecx + lea -56(%rdi,%rbx,8), %rdi + mov -8(%rsi), %r11 + mov (%rsi), %rdx + .byte 0xc4,66,251,0xf7,211 + .byte 0xc4,66,250,0xf7,219 + and %rdx, %r11 + .byte 0xc4,98,187,0xf6,202 + lea (%r10,%rdx,2), %rdx + .byte 0x66,77,0x0f,0x38,0xf6,195 + .byte 0xc4,98,171,0xf6,94,8 + .byte 0xf3,76,0x0f,0x38,0xf6,7 + jmp Lb0 + + .align 4, 0x90 +Ltp1: .byte 0xf3,76,0x0f,0x38,0xf6,87,248 + .byte 0x66,77,0x0f,0x38,0xf6,195 + mov %r10, -8(%rdi) + jrcxz Led1 +Lb1: .byte 0xc4,98,171,0xf6,94,8 + .byte 0xf3,76,0x0f,0x38,0xf6,7 + lea 8(%rcx), %ecx + mov %r8, (%rdi) + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xc4,98,187,0xf6,78,16 + .byte 0x66,77,0x0f,0x38,0xf6,195 + .byte 0xf3,76,0x0f,0x38,0xf6,87,8 + mov %r10, 8(%rdi) + .byte 0xc4,98,171,0xf6,94,24 + lea 64(%rsi), %rsi + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xf3,76,0x0f,0x38,0xf6,71,16 + mov %r8, 16(%rdi) + .byte 0xc4,98,187,0xf6,78,224 + .byte 0xf3,76,0x0f,0x38,0xf6,87,24 + .byte 0x66,77,0x0f,0x38,0xf6,195 + mov %r10, 24(%rdi) + .byte 0xc4,98,171,0xf6,94,232 + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xf3,76,0x0f,0x38,0xf6,71,32 + mov %r8, 32(%rdi) + .byte 0xc4,98,187,0xf6,78,240 + .byte 0xf3,76,0x0f,0x38,0xf6,87,40 + .byte 0x66,77,0x0f,0x38,0xf6,195 + mov %r10, 40(%rdi) + .byte 0xf3,76,0x0f,0x38,0xf6,71,48 + .byte 0xc4,98,171,0xf6,94,248 + mov %r8, 48(%rdi) + lea 64(%rdi), %rdi + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xc4,98,187,0xf6,14 + jmp Ltp1 + +Led2: .byte 0xf3,76,0x0f,0x38,0xf6,7 + .byte 0xf3,76,0x0f,0x38,0xf6,201 +Lf1: mov %r8, (%rdi) + adc %rcx, %r9 + mov %r9, 8(%rdi) + lea (%rsi,%rbx,8), %rsi + mov %ebx, %ecx + lea 8(%rbx), %rbx + lea -56(%rdi,%rbx,8), %rdi + mov -16(%rsi), %r9 + mov -8(%rsi), %rdx + .byte 0xc4,66,251,0xf7,193 + .byte 0xc4,66,250,0xf7,201 + and %rdx, %r9 + .byte 0xc4,98,171,0xf6,218 + lea (%r8,%rdx,2), %rdx + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xc4,98,187,0xf6,14 + .byte 0xf3,76,0x0f,0x38,0xf6,87,248 + .byte 0x66,77,0x0f,0x38,0xf6,195 + mov %r10, -8(%rdi) + jmp Lb1 + + .align 4, 0x90 +Ltp2: .byte 0xf3,76,0x0f,0x38,0xf6,87,248 + .byte 0x66,77,0x0f,0x38,0xf6,195 + mov %r10, -8(%rdi) + jrcxz Led2 + .byte 0xc4,98,171,0xf6,94,8 + .byte 0xf3,76,0x0f,0x38,0xf6,7 + lea 8(%rcx), %ecx + mov %r8, (%rdi) + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xc4,98,187,0xf6,78,16 + .byte 0x66,77,0x0f,0x38,0xf6,195 + .byte 0xf3,76,0x0f,0x38,0xf6,87,8 + mov %r10, 8(%rdi) + .byte 0xc4,98,171,0xf6,94,24 + lea 64(%rsi), %rsi + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xf3,76,0x0f,0x38,0xf6,71,16 + mov %r8, 16(%rdi) + .byte 0xc4,98,187,0xf6,78,224 + .byte 0xf3,76,0x0f,0x38,0xf6,87,24 + .byte 0x66,77,0x0f,0x38,0xf6,195 + mov %r10, 24(%rdi) + .byte 0xc4,98,171,0xf6,94,232 + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xf3,76,0x0f,0x38,0xf6,71,32 + mov %r8, 32(%rdi) + .byte 0xc4,98,187,0xf6,78,240 + .byte 0xf3,76,0x0f,0x38,0xf6,87,40 + .byte 0x66,77,0x0f,0x38,0xf6,195 + mov %r10, 40(%rdi) +Lb2: .byte 0xf3,76,0x0f,0x38,0xf6,71,48 + .byte 0xc4,98,171,0xf6,94,248 + mov %r8, 48(%rdi) + lea 64(%rdi), %rdi + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xc4,98,187,0xf6,14 + jmp Ltp2 + +Led3: .byte 0xf3,76,0x0f,0x38,0xf6,7 + .byte 0xf3,76,0x0f,0x38,0xf6,201 +Lf2: mov %r8, (%rdi) + adc %rcx, %r9 + mov %r9, 8(%rdi) + lea (%rsi,%rbx,8), %rsi + or %ebx, %ecx + jz Lcor3 + lea -56(%rdi,%rbx,8), %rdi + mov -24(%rsi), %r11 + mov -16(%rsi), %rdx + .byte 0xc4,66,251,0xf7,211 + .byte 0xc4,66,250,0xf7,219 + and %rdx, %r11 + .byte 0xc4,98,187,0xf6,202 + lea (%r10,%rdx,2), %rdx + .byte 0x66,77,0x0f,0x38,0xf6,195 + jmp Lb2 + + .align 4, 0x90 +Ltp3: .byte 0xf3,76,0x0f,0x38,0xf6,87,248 + .byte 0x66,77,0x0f,0x38,0xf6,195 + mov %r10, -8(%rdi) + jrcxz Led3 + .byte 0xc4,98,171,0xf6,94,8 + .byte 0xf3,76,0x0f,0x38,0xf6,7 + lea 8(%rcx), %ecx + mov %r8, (%rdi) + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xc4,98,187,0xf6,78,16 + .byte 0x66,77,0x0f,0x38,0xf6,195 + .byte 0xf3,76,0x0f,0x38,0xf6,87,8 + mov %r10, 8(%rdi) + .byte 0xc4,98,171,0xf6,94,24 + lea 64(%rsi), %rsi + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xf3,76,0x0f,0x38,0xf6,71,16 + mov %r8, 16(%rdi) + .byte 0xc4,98,187,0xf6,78,224 + .byte 0xf3,76,0x0f,0x38,0xf6,87,24 + .byte 0x66,77,0x0f,0x38,0xf6,195 + mov %r10, 24(%rdi) + .byte 0xc4,98,171,0xf6,94,232 + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xf3,76,0x0f,0x38,0xf6,71,32 + mov %r8, 32(%rdi) +Lb3: .byte 0xc4,98,187,0xf6,78,240 + .byte 0xf3,76,0x0f,0x38,0xf6,87,40 + .byte 0x66,77,0x0f,0x38,0xf6,195 + mov %r10, 40(%rdi) + .byte 0xf3,76,0x0f,0x38,0xf6,71,48 + .byte 0xc4,98,171,0xf6,94,248 + mov %r8, 48(%rdi) + lea 64(%rdi), %rdi + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xc4,98,187,0xf6,14 + jmp Ltp3 + +Led4: .byte 0xf3,76,0x0f,0x38,0xf6,7 + .byte 0xf3,76,0x0f,0x38,0xf6,201 +Lf3: mov %r8, (%rdi) + adc %rcx, %r9 + mov %r9, 8(%rdi) + lea (%rsi,%rbx,8), %rsi + mov %ebx, %ecx + lea -56(%rdi,%rbx,8), %rdi + mov -32(%rsi), %r9 + mov -24(%rsi), %rdx + .byte 0xc4,66,251,0xf7,193 + .byte 0xc4,66,250,0xf7,201 + and %rdx, %r9 + .byte 0xc4,98,171,0xf6,218 + lea (%r8,%rdx,2), %rdx + .byte 0x66,77,0x0f,0x38,0xf6,209 + jmp Lb3 + + .align 4, 0x90 +Ltp4: .byte 0xf3,76,0x0f,0x38,0xf6,87,248 + .byte 0x66,77,0x0f,0x38,0xf6,195 + mov %r10, -8(%rdi) + jrcxz Led4 + .byte 0xc4,98,171,0xf6,94,8 + .byte 0xf3,76,0x0f,0x38,0xf6,7 + lea 8(%rcx), %ecx + mov %r8, (%rdi) + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xc4,98,187,0xf6,78,16 + .byte 0x66,77,0x0f,0x38,0xf6,195 + .byte 0xf3,76,0x0f,0x38,0xf6,87,8 + mov %r10, 8(%rdi) + .byte 0xc4,98,171,0xf6,94,24 + lea 64(%rsi), %rsi + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xf3,76,0x0f,0x38,0xf6,71,16 + mov %r8, 16(%rdi) + .byte 0xc4,98,187,0xf6,78,224 + .byte 0xf3,76,0x0f,0x38,0xf6,87,24 + .byte 0x66,77,0x0f,0x38,0xf6,195 + mov %r10, 24(%rdi) +Lb4: .byte 0xc4,98,171,0xf6,94,232 + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xf3,76,0x0f,0x38,0xf6,71,32 + mov %r8, 32(%rdi) + .byte 0xc4,98,187,0xf6,78,240 + .byte 0xf3,76,0x0f,0x38,0xf6,87,40 + .byte 0x66,77,0x0f,0x38,0xf6,195 + mov %r10, 40(%rdi) + .byte 0xf3,76,0x0f,0x38,0xf6,71,48 + .byte 0xc4,98,171,0xf6,94,248 + mov %r8, 48(%rdi) + lea 64(%rdi), %rdi + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xc4,98,187,0xf6,14 + jmp Ltp4 + +Led5: .byte 0xf3,76,0x0f,0x38,0xf6,7 + .byte 0xf3,76,0x0f,0x38,0xf6,201 +Lf4: mov %r8, (%rdi) + adc %rcx, %r9 + mov %r9, 8(%rdi) + lea (%rsi,%rbx,8), %rsi + mov %ebx, %ecx + lea -56(%rdi,%rbx,8), %rdi + mov -40(%rsi), %r11 + mov -32(%rsi), %rdx + .byte 0xc4,66,251,0xf7,211 + .byte 0xc4,66,250,0xf7,219 + and %rdx, %r11 + .byte 0xc4,98,187,0xf6,202 + lea (%r10,%rdx,2), %rdx + .byte 0x66,77,0x0f,0x38,0xf6,195 + jmp Lb4 + + .align 4, 0x90 +Ltp5: .byte 0xf3,76,0x0f,0x38,0xf6,87,248 + .byte 0x66,77,0x0f,0x38,0xf6,195 + mov %r10, -8(%rdi) + jrcxz Led5 + .byte 0xc4,98,171,0xf6,94,8 + .byte 0xf3,76,0x0f,0x38,0xf6,7 + lea 8(%rcx), %ecx + mov %r8, (%rdi) + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xc4,98,187,0xf6,78,16 + .byte 0x66,77,0x0f,0x38,0xf6,195 + .byte 0xf3,76,0x0f,0x38,0xf6,87,8 + mov %r10, 8(%rdi) + .byte 0xc4,98,171,0xf6,94,24 + lea 64(%rsi), %rsi + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xf3,76,0x0f,0x38,0xf6,71,16 + mov %r8, 16(%rdi) +Lb5: .byte 0xc4,98,187,0xf6,78,224 + .byte 0xf3,76,0x0f,0x38,0xf6,87,24 + .byte 0x66,77,0x0f,0x38,0xf6,195 + mov %r10, 24(%rdi) + .byte 0xc4,98,171,0xf6,94,232 + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xf3,76,0x0f,0x38,0xf6,71,32 + mov %r8, 32(%rdi) + .byte 0xc4,98,187,0xf6,78,240 + .byte 0xf3,76,0x0f,0x38,0xf6,87,40 + .byte 0x66,77,0x0f,0x38,0xf6,195 + mov %r10, 40(%rdi) + .byte 0xf3,76,0x0f,0x38,0xf6,71,48 + .byte 0xc4,98,171,0xf6,94,248 + mov %r8, 48(%rdi) + lea 64(%rdi), %rdi + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xc4,98,187,0xf6,14 + jmp Ltp5 + +Led6: .byte 0xf3,76,0x0f,0x38,0xf6,7 + .byte 0xf3,76,0x0f,0x38,0xf6,201 +Lf5: mov %r8, (%rdi) + adc %rcx, %r9 + mov %r9, 8(%rdi) + lea (%rsi,%rbx,8), %rsi + mov %ebx, %ecx + lea -56(%rdi,%rbx,8), %rdi + mov -48(%rsi), %r9 + mov -40(%rsi), %rdx + .byte 0xc4,66,251,0xf7,193 + .byte 0xc4,66,250,0xf7,201 + and %rdx, %r9 + .byte 0xc4,98,171,0xf6,218 + lea (%r8,%rdx,2), %rdx + .byte 0x66,77,0x0f,0x38,0xf6,209 + jmp Lb5 + + .align 4, 0x90 +Ltp6: .byte 0xf3,76,0x0f,0x38,0xf6,87,248 + .byte 0x66,77,0x0f,0x38,0xf6,195 + mov %r10, -8(%rdi) + jrcxz Led6 + .byte 0xc4,98,171,0xf6,94,8 + .byte 0xf3,76,0x0f,0x38,0xf6,7 + lea 8(%rcx), %ecx + mov %r8, (%rdi) + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xc4,98,187,0xf6,78,16 + .byte 0x66,77,0x0f,0x38,0xf6,195 + .byte 0xf3,76,0x0f,0x38,0xf6,87,8 + mov %r10, 8(%rdi) + .byte 0xc4,98,171,0xf6,94,24 + lea 64(%rsi), %rsi +Lb6: .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xf3,76,0x0f,0x38,0xf6,71,16 + mov %r8, 16(%rdi) + .byte 0xc4,98,187,0xf6,78,224 + .byte 0xf3,76,0x0f,0x38,0xf6,87,24 + .byte 0x66,77,0x0f,0x38,0xf6,195 + mov %r10, 24(%rdi) + .byte 0xc4,98,171,0xf6,94,232 + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xf3,76,0x0f,0x38,0xf6,71,32 + mov %r8, 32(%rdi) + .byte 0xc4,98,187,0xf6,78,240 + .byte 0xf3,76,0x0f,0x38,0xf6,87,40 + .byte 0x66,77,0x0f,0x38,0xf6,195 + mov %r10, 40(%rdi) + .byte 0xf3,76,0x0f,0x38,0xf6,71,48 + .byte 0xc4,98,171,0xf6,94,248 + mov %r8, 48(%rdi) + lea 64(%rdi), %rdi + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xc4,98,187,0xf6,14 + jmp Ltp6 + +Led7: .byte 0xf3,76,0x0f,0x38,0xf6,7 + .byte 0xf3,76,0x0f,0x38,0xf6,201 +Lf6: mov %r8, (%rdi) + adc %rcx, %r9 + mov %r9, 8(%rdi) + lea (%rsi,%rbx,8), %rsi + mov %ebx, %ecx + lea -56(%rdi,%rbx,8), %rdi + mov -56(%rsi), %r11 + mov -48(%rsi), %rdx + .byte 0xc4,66,251,0xf7,211 + .byte 0xc4,66,250,0xf7,219 + and %rdx, %r11 + .byte 0xc4,98,187,0xf6,202 + lea (%r10,%rdx,2), %rdx + .byte 0x66,77,0x0f,0x38,0xf6,195 + .byte 0xc4,98,171,0xf6,94,216 + jmp Lb6 + + .align 4, 0x90 +Ltp7: .byte 0xf3,76,0x0f,0x38,0xf6,87,248 + .byte 0x66,77,0x0f,0x38,0xf6,195 + mov %r10, -8(%rdi) + jrcxz Led7 + .byte 0xc4,98,171,0xf6,94,8 + .byte 0xf3,76,0x0f,0x38,0xf6,7 + lea 8(%rcx), %ecx + mov %r8, (%rdi) +Lb7: .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xc4,98,187,0xf6,78,16 + .byte 0x66,77,0x0f,0x38,0xf6,195 + .byte 0xf3,76,0x0f,0x38,0xf6,87,8 + mov %r10, 8(%rdi) + .byte 0xc4,98,171,0xf6,94,24 + lea 64(%rsi), %rsi + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xf3,76,0x0f,0x38,0xf6,71,16 + mov %r8, 16(%rdi) + .byte 0xc4,98,187,0xf6,78,224 + .byte 0xf3,76,0x0f,0x38,0xf6,87,24 + .byte 0x66,77,0x0f,0x38,0xf6,195 + mov %r10, 24(%rdi) + .byte 0xc4,98,171,0xf6,94,232 + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xf3,76,0x0f,0x38,0xf6,71,32 + mov %r8, 32(%rdi) + .byte 0xc4,98,187,0xf6,78,240 + .byte 0xf3,76,0x0f,0x38,0xf6,87,40 + .byte 0x66,77,0x0f,0x38,0xf6,195 + mov %r10, 40(%rdi) + .byte 0xf3,76,0x0f,0x38,0xf6,71,48 + .byte 0xc4,98,171,0xf6,94,248 + mov %r8, 48(%rdi) + lea 64(%rdi), %rdi + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xc4,98,187,0xf6,14 + jmp Ltp7 + +Lcor3:lea -64(%rdi), %rdi + mov -24(%rsi), %r11 + mov -16(%rsi), %rdx + .byte 0xc4,66,251,0xf7,211 + .byte 0xc4,66,250,0xf7,219 + and %rdx, %r11 + .byte 0xc4,98,187,0xf6,202 + lea (%r10,%rdx,2), %rdx + .byte 0x66,77,0x0f,0x38,0xf6,195 + .byte 0xf3,76,0x0f,0x38,0xf6,71,56 + .byte 0xc4,98,171,0xf6,94,248 + mov %r8, 56(%rdi) + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xc4,98,227,0xf6,14 + .byte 0xf3,76,0x0f,0x38,0xf6,87,64 + .byte 0x66,73,0x0f,0x38,0xf6,219 + mov %r10, 64(%rdi) + .byte 0xf3,72,0x0f,0x38,0xf6,95,72 + .byte 0xf3,76,0x0f,0x38,0xf6,201 + adc %rcx, %r9 + mov %r9, 80(%rdi) + + mov -16(%rsi), %r9 + mov -8(%rsi), %rdx + .byte 0xc4,66,251,0xf7,193 + .byte 0xc4,66,250,0xf7,201 + and %rdx, %r9 + .byte 0xc4,98,171,0xf6,218 + lea (%r8,%rdx,2), %rdx + .byte 0x66,77,0x0f,0x38,0xf6,209 + .byte 0xc4,226,187,0xf6,6 + .byte 0xf3,76,0x0f,0x38,0xf6,211 + .byte 0x66,77,0x0f,0x38,0xf6,195 + mov %r10, 72(%rdi) + .byte 0xf3,76,0x0f,0x38,0xf6,71,80 + .byte 0xf3,72,0x0f,0x38,0xf6,193 + mov %r8, 80(%rdi) + adc %rcx, %rax + + mov -8(%rsi), %r11 + mov (%rsi), %rdx + sar $63, %r11 + and %rdx, %r11 + .byte 0xc4,98,187,0xf6,202 + .byte 0x66,77,0x0f,0x38,0xf6,195 + .byte 0xf3,76,0x0f,0x38,0xf6,192 + mov %r8, 88(%rdi) + .byte 0x66,76,0x0f,0x38,0xf6,201 + .byte 0xf3,76,0x0f,0x38,0xf6,201 + mov %r9, 96(%rdi) + + pop %rbx + + ret + + .text + .align 3, 0x90 +Lmtab:.set Lmf7_tmp, Lmf7-Lmtab + .long Lmf7_tmp + + .set Lmf0_tmp, Lmf0-Lmtab + .long Lmf0_tmp + + .set Lmf1_tmp, Lmf1-Lmtab + .long Lmf1_tmp + + .set Lmf2_tmp, Lmf2-Lmtab + .long Lmf2_tmp + + .set Lmf3_tmp, Lmf3-Lmtab + .long Lmf3_tmp + + .set Lmf4_tmp, Lmf4-Lmtab + .long Lmf4_tmp + + .set Lmf5_tmp, Lmf5-Lmtab + .long Lmf5_tmp + + .set Lmf6_tmp, Lmf6-Lmtab + .long Lmf6_tmp + +Latab:.set Lf6_tmp, Lf6-Latab + .long Lf6_tmp + + .set Lf7_tmp, Lf7-Latab + .long Lf7_tmp + + .set Lf0_tmp, Lf0-Latab + .long Lf0_tmp + + .set Lf1_tmp, Lf1-Latab + .long Lf1_tmp + + .set Lf2_tmp, Lf2-Latab + .long Lf2_tmp + + .set Lf3_tmp, Lf3-Latab + .long Lf3_tmp + + .set Lf4_tmp, Lf4-Latab + .long Lf4_tmp + + .set Lf5_tmp, Lf5-Latab + .long Lf5_tmp + + .text + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/sqr_diag_addlsh1.s b/vere/ext/gmp/gen/x86_64-macos/mpn/sqr_diag_addlsh1.s new file mode 100644 index 0000000..f82bd03 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/sqr_diag_addlsh1.s @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 5, 0x90 + .globl ___gmpn_sqr_diag_addlsh1 + + +___gmpn_sqr_diag_addlsh1: + + + push %rbx + + dec %rcx + shl %rcx + + mov (%rdx), %rax + + lea (%rdi,%rcx,8), %rdi + lea (%rsi,%rcx,8), %rsi + lea (%rdx,%rcx,4), %r11 + neg %rcx + + mul %rax + mov %rax, (%rdi,%rcx,8) + + xor %ebx, %ebx + jmp Lmid + + .align 4, 0x90 +Ltop: add %r10, %r8 + adc %rax, %r9 + mov %r8, -8(%rdi,%rcx,8) + mov %r9, (%rdi,%rcx,8) +Lmid: mov 8(%r11,%rcx,4), %rax + mov (%rsi,%rcx,8), %r8 + mov 8(%rsi,%rcx,8), %r9 + adc %r8, %r8 + adc %r9, %r9 + lea (%rdx,%rbx), %r10 + setc %bl + mul %rax + add $2, %rcx + js Ltop + +Lend: add %r10, %r8 + adc %rax, %r9 + mov %r8, -8(%rdi) + mov %r9, (%rdi) + adc %rbx, %rdx + mov %rdx, 8(%rdi) + + pop %rbx + + ret + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/sub_err1_n.s b/vere/ext/gmp/gen/x86_64-macos/mpn/sub_err1_n.s new file mode 100644 index 0000000..68dcb90 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/sub_err1_n.s @@ -0,0 +1,237 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4, 0x90 + .globl ___gmpn_sub_err1_n + + +___gmpn_sub_err1_n: + + mov 8(%rsp), %rax + + push %rbx + push %rbp + push %r12 + push %r13 + push %r14 + push %r15 + + lea (%rsi,%r9,8), %rsi + lea (%rdx,%r9,8), %rdx + lea (%rdi,%r9,8), %rdi + + mov %r9d, %r10d + and $3, %r10d + jz L0mod4 + cmp $2, %r10d + jc L1mod4 + jz L2mod4 +L3mod4: + xor %ebx, %ebx + xor %ebp, %ebp + xor %r10d, %r10d + xor %r11d, %r11d + lea -24(%r8,%r9,8), %r8 + neg %r9 + + shr $1, %al + mov (%rsi,%r9,8), %r14 + mov 8(%rsi,%r9,8), %r15 + sbb (%rdx,%r9,8), %r14 + mov %r14, (%rdi,%r9,8) + cmovc 16(%r8), %rbx + sbb 8(%rdx,%r9,8), %r15 + mov %r15, 8(%rdi,%r9,8) + cmovc 8(%r8), %r10 + mov 16(%rsi,%r9,8), %r14 + sbb 16(%rdx,%r9,8), %r14 + mov %r14, 16(%rdi,%r9,8) + cmovc (%r8), %r11 + setc %al + add %r10, %rbx + adc $0, %rbp + add %r11, %rbx + adc $0, %rbp + + add $3, %r9 + jnz Lloop + jmp Lend + + .align 4, 0x90 +L0mod4: + xor %ebx, %ebx + xor %ebp, %ebp + lea (%r8,%r9,8), %r8 + neg %r9 + jmp Lloop + + .align 4, 0x90 +L1mod4: + xor %ebx, %ebx + xor %ebp, %ebp + lea -8(%r8,%r9,8), %r8 + neg %r9 + + shr $1, %al + mov (%rsi,%r9,8), %r14 + sbb (%rdx,%r9,8), %r14 + mov %r14, (%rdi,%r9,8) + cmovc (%r8), %rbx + setc %al + + add $1, %r9 + jnz Lloop + jmp Lend + + .align 4, 0x90 +L2mod4: + xor %ebx, %ebx + xor %ebp, %ebp + xor %r10d, %r10d + lea -16(%r8,%r9,8), %r8 + neg %r9 + + shr $1, %al + mov (%rsi,%r9,8), %r14 + mov 8(%rsi,%r9,8), %r15 + sbb (%rdx,%r9,8), %r14 + mov %r14, (%rdi,%r9,8) + cmovc 8(%r8), %rbx + sbb 8(%rdx,%r9,8), %r15 + mov %r15, 8(%rdi,%r9,8) + cmovc (%r8), %r10 + setc %al + add %r10, %rbx + adc $0, %rbp + + add $2, %r9 + jnz Lloop + jmp Lend + + .align 5, 0x90 +Lloop: + mov (%rsi,%r9,8), %r14 + shr $1, %al + mov -8(%r8), %r10 + mov $0, %r13d + sbb (%rdx,%r9,8), %r14 + cmovnc %r13, %r10 + mov %r14, (%rdi,%r9,8) + mov 8(%rsi,%r9,8), %r15 + mov 16(%rsi,%r9,8), %r14 + sbb 8(%rdx,%r9,8), %r15 + mov -16(%r8), %r11 + cmovnc %r13, %r11 + mov -24(%r8), %r12 + mov %r15, 8(%rdi,%r9,8) + sbb 16(%rdx,%r9,8), %r14 + cmovnc %r13, %r12 + mov 24(%rsi,%r9,8), %r15 + sbb 24(%rdx,%r9,8), %r15 + cmovc -32(%r8), %r13 + setc %al + add %r10, %rbx + adc $0, %rbp + add %r11, %rbx + adc $0, %rbp + add %r12, %rbx + adc $0, %rbp + lea -32(%r8), %r8 + mov %r14, 16(%rdi,%r9,8) + add %r13, %rbx + adc $0, %rbp + add $4, %r9 + mov %r15, -8(%rdi,%r9,8) + jnz Lloop + +Lend: + mov %rbx, (%rcx) + mov %rbp, 8(%rcx) + + pop %r15 + pop %r14 + pop %r13 + pop %r12 + pop %rbp + pop %rbx + ret + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/sub_err2_n.s b/vere/ext/gmp/gen/x86_64-macos/mpn/sub_err2_n.s new file mode 100644 index 0000000..bfa02d4 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/sub_err2_n.s @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4, 0x90 + .globl ___gmpn_sub_err2_n + + +___gmpn_sub_err2_n: + + mov 16(%rsp), %rax + mov 8(%rsp), %r10 + + push %rbx + push %rbp + push %r12 + push %r13 + push %r14 + + xor %ebp, %ebp + xor %r11d, %r11d + xor %r12d, %r12d + xor %r13d, %r13d + + sub %r8, %r9 + + lea (%rdi,%r10,8), %rdi + lea (%rsi,%r10,8), %rsi + lea (%rdx,%r10,8), %rdx + + test $1, %r10 + jnz Lodd + + lea -8(%r8,%r10,8), %r8 + neg %r10 + jmp Ltop + + .align 4, 0x90 +Lodd: + lea -16(%r8,%r10,8), %r8 + neg %r10 + shr $1, %rax + mov (%rsi,%r10,8), %rbx + sbb (%rdx,%r10,8), %rbx + cmovc 8(%r8), %rbp + cmovc 8(%r8,%r9), %r12 + mov %rbx, (%rdi,%r10,8) + sbb %rax, %rax + inc %r10 + jz Lend + + .align 4, 0x90 +Ltop: + mov (%rsi,%r10,8), %rbx + shr $1, %rax + sbb (%rdx,%r10,8), %rbx + mov %rbx, (%rdi,%r10,8) + sbb %r14, %r14 + + mov 8(%rsi,%r10,8), %rbx + sbb 8(%rdx,%r10,8), %rbx + mov %rbx, 8(%rdi,%r10,8) + sbb %rax, %rax + + mov (%r8), %rbx + and %r14, %rbx + add %rbx, %rbp + adc $0, %r11 + + and (%r8,%r9), %r14 + add %r14, %r12 + adc $0, %r13 + + mov -8(%r8), %rbx + and %rax, %rbx + add %rbx, %rbp + adc $0, %r11 + + mov -8(%r8,%r9), %rbx + and %rax, %rbx + add %rbx, %r12 + adc $0, %r13 + + add $2, %r10 + lea -16(%r8), %r8 + jnz Ltop +Lend: + + mov %rbp, (%rcx) + mov %r11, 8(%rcx) + mov %r12, 16(%rcx) + mov %r13, 24(%rcx) + + and $1, %eax + + pop %r14 + pop %r13 + pop %r12 + pop %rbp + pop %rbx + ret + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/sub_err3_n.s b/vere/ext/gmp/gen/x86_64-macos/mpn/sub_err3_n.s new file mode 100644 index 0000000..fcccfe3 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/sub_err3_n.s @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4, 0x90 + .globl ___gmpn_sub_err3_n + + +___gmpn_sub_err3_n: + + mov 24(%rsp), %rax + mov 16(%rsp), %r10 + + push %rbx + push %rbp + push %r12 + push %r13 + push %r14 + push %r15 + + push %rcx + mov 64(%rsp), %rcx + + xor %ebp, %ebp + xor %r11d, %r11d + xor %r12d, %r12d + xor %r13d, %r13d + xor %r14d, %r14d + xor %r15d, %r15d + + sub %r8, %r9 + sub %r8, %rcx + + lea -8(%r8,%r10,8), %r8 + lea (%rdi,%r10,8), %rdi + lea (%rsi,%r10,8), %rsi + lea (%rdx,%r10,8), %rdx + neg %r10 + + .align 4, 0x90 +Ltop: + shr $1, %rax + mov (%rsi,%r10,8), %rax + sbb (%rdx,%r10,8), %rax + mov %rax, (%rdi,%r10,8) + sbb %rax, %rax + + mov (%r8), %rbx + and %rax, %rbx + add %rbx, %rbp + adc $0, %r11 + + mov (%r8,%r9), %rbx + and %rax, %rbx + add %rbx, %r12 + adc $0, %r13 + + mov (%r8,%rcx), %rbx + and %rax, %rbx + add %rbx, %r14 + adc $0, %r15 + + lea -8(%r8), %r8 + inc %r10 + jnz Ltop + +Lend: + and $1, %eax + pop %rcx + + mov %rbp, (%rcx) + mov %r11, 8(%rcx) + mov %r12, 16(%rcx) + mov %r13, 24(%rcx) + mov %r14, 32(%rcx) + mov %r15, 40(%rcx) + + pop %r15 + pop %r14 + pop %r13 + pop %r12 + pop %rbp + pop %rbx + ret + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/sub_n.s b/vere/ext/gmp/gen/x86_64-macos/mpn/sub_n.s new file mode 100644 index 0000000..f9868bb --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/sub_n.s @@ -0,0 +1,289 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4, 0x90 + .globl ___gmpn_sub_nc + + +___gmpn_sub_nc: + + + + + mov %ecx, %eax + shr $3, %rcx + and $7, %eax + + lea Ltab(%rip), %r9 + neg %r8 + + movslq (%r9,%rax,4), %rax + lea (%r9,%rax), %rax + jmp *%rax + + + + .align 4, 0x90 + .globl ___gmpn_sub_n + + +___gmpn_sub_n: + + + + mov %ecx, %eax + shr $3, %rcx + and $7, %eax + + lea Ltab(%rip), %r9 + + movslq (%r9,%rax,4), %rax + lea (%r9,%rax), %rax + jmp *%rax + + +L0: mov (%rsi), %r8 + mov 8(%rsi), %r9 + sbb (%rdx), %r8 + jmp Le0 + +L4: mov (%rsi), %r8 + mov 8(%rsi), %r9 + sbb (%rdx), %r8 + lea -32(%rsi), %rsi + lea -32(%rdx), %rdx + lea -32(%rdi), %rdi + inc %rcx + jmp Le4 + +L5: mov (%rsi), %r11 + mov 8(%rsi), %r8 + mov 16(%rsi), %r9 + sbb (%rdx), %r11 + lea -24(%rsi), %rsi + lea -24(%rdx), %rdx + lea -24(%rdi), %rdi + inc %rcx + jmp Le5 + +L6: mov (%rsi), %r10 + sbb (%rdx), %r10 + mov 8(%rsi), %r11 + lea -16(%rsi), %rsi + lea -16(%rdx), %rdx + lea -16(%rdi), %rdi + inc %rcx + jmp Le6 + +L7: mov (%rsi), %r9 + mov 8(%rsi), %r10 + sbb (%rdx), %r9 + sbb 8(%rdx), %r10 + lea -8(%rsi), %rsi + lea -8(%rdx), %rdx + lea -8(%rdi), %rdi + inc %rcx + jmp Le7 + + .align 4, 0x90 +Ltop: +Le3: mov %r9, 40(%rdi) +Le2: mov %r10, 48(%rdi) +Le1: mov (%rsi), %r8 + mov 8(%rsi), %r9 + sbb (%rdx), %r8 + mov %r11, 56(%rdi) + lea 64(%rdi), %rdi +Le0: mov 16(%rsi), %r10 + sbb 8(%rdx), %r9 + sbb 16(%rdx), %r10 + mov %r8, (%rdi) +Le7: mov 24(%rsi), %r11 + mov %r9, 8(%rdi) +Le6: mov 32(%rsi), %r8 + mov 40(%rsi), %r9 + sbb 24(%rdx), %r11 + mov %r10, 16(%rdi) +Le5: sbb 32(%rdx), %r8 + mov %r11, 24(%rdi) +Le4: mov 48(%rsi), %r10 + mov 56(%rsi), %r11 + mov %r8, 32(%rdi) + lea 64(%rsi), %rsi + sbb 40(%rdx), %r9 + sbb 48(%rdx), %r10 + sbb 56(%rdx), %r11 + lea 64(%rdx), %rdx + dec %rcx + jnz Ltop + +Lend: mov %r9, 40(%rdi) + mov %r10, 48(%rdi) + mov %r11, 56(%rdi) + mov %ecx, %eax + adc %ecx, %eax + + ret + + .align 4, 0x90 +L3: mov (%rsi), %r9 + mov 8(%rsi), %r10 + mov 16(%rsi), %r11 + sbb (%rdx), %r9 + sbb 8(%rdx), %r10 + sbb 16(%rdx), %r11 + jrcxz Lx3 + lea 24(%rsi), %rsi + lea 24(%rdx), %rdx + lea -40(%rdi), %rdi + jmp Le3 +Lx3: mov %r9, (%rdi) + mov %r10, 8(%rdi) + mov %r11, 16(%rdi) + mov %ecx, %eax + adc %ecx, %eax + + ret + + .align 4, 0x90 +L1: mov (%rsi), %r11 + sbb (%rdx), %r11 + jrcxz Lx1 + lea 8(%rsi), %rsi + lea 8(%rdx), %rdx + lea -56(%rdi), %rdi + jmp Le1 +Lx1: mov %r11, (%rdi) + mov %ecx, %eax + adc %ecx, %eax + + ret + + .align 4, 0x90 +L2: mov (%rsi), %r10 + mov 8(%rsi), %r11 + sbb (%rdx), %r10 + sbb 8(%rdx), %r11 + jrcxz Lx2 + lea 16(%rsi), %rsi + lea 16(%rdx), %rdx + lea -48(%rdi), %rdi + jmp Le2 +Lx2: mov %r10, (%rdi) + mov %r11, 8(%rdi) + mov %ecx, %eax + adc %ecx, %eax + + ret + + .text + .align 3, 0x90 +Ltab: .set L0_tmp, L0-Ltab + .long L0_tmp + + .set L1_tmp, L1-Ltab + .long L1_tmp + + .set L2_tmp, L2-Ltab + .long L2_tmp + + .set L3_tmp, L3-Ltab + .long L3_tmp + + .set L4_tmp, L4-Ltab + .long L4_tmp + + .set L5_tmp, L5-Ltab + .long L5_tmp + + .set L6_tmp, L6-Ltab + .long L6_tmp + + .set L7_tmp, L7-Ltab + .long L7_tmp + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/sublsh1_n.s b/vere/ext/gmp/gen/x86_64-macos/mpn/sublsh1_n.s new file mode 100644 index 0000000..40b2b48 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/sublsh1_n.s @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3, 0x90 + .globl ___gmpn_sublsh1_n + + +___gmpn_sublsh1_n: + + + push %rbx + push %r12 + + mov %ecx, %eax + lea 24(%rsi,%rcx,8), %rsi + lea 24(%rdx,%rcx,8), %rdx + lea 24(%rdi,%rcx,8), %rdi + neg %rcx + + xor %r11d, %r11d + + mov -24(%rdx,%rcx,8), %r8 + shrd $63, %r8, %r11 + + and $3, %eax + je Lb0 + cmp $2, %eax + jc Lb1 + je Lb2 + +Lb3: mov -16(%rdx,%rcx,8), %r9 + shrd $63, %r9, %r8 + mov -8(%rdx,%rcx,8), %r10 + shrd $63, %r10, %r9 + mov -24(%rsi,%rcx,8), %r12 + sub %r11, %r12 + mov %r12, -24(%rdi,%rcx,8) + mov -16(%rsi,%rcx,8), %r12 + sbb %r8, %r12 + mov %r12, -16(%rdi,%rcx,8) + mov -8(%rsi,%rcx,8), %r12 + sbb %r9, %r12 + mov %r12, -8(%rdi,%rcx,8) + mov %r10, %r11 + sbb %eax, %eax + add $3, %rcx + js Ltop + jmp Lend + +Lb1: mov -24(%rsi,%rcx,8), %r12 + sub %r11, %r12 + mov %r12, -24(%rdi,%rcx,8) + mov %r8, %r11 + sbb %eax, %eax + inc %rcx + js Ltop + jmp Lend + +Lb2: mov -16(%rdx,%rcx,8), %r9 + shrd $63, %r9, %r8 + mov -24(%rsi,%rcx,8), %r12 + sub %r11, %r12 + mov %r12, -24(%rdi,%rcx,8) + mov -16(%rsi,%rcx,8), %r12 + sbb %r8, %r12 + mov %r12, -16(%rdi,%rcx,8) + mov %r9, %r11 + sbb %eax, %eax + add $2, %rcx + js Ltop + jmp Lend + + .align 4, 0x90 +Ltop: mov -24(%rdx,%rcx,8), %r8 + shrd $63, %r8, %r11 +Lb0: mov -16(%rdx,%rcx,8), %r9 + shrd $63, %r9, %r8 + mov -8(%rdx,%rcx,8), %r10 + shrd $63, %r10, %r9 + mov (%rdx,%rcx,8), %rbx + shrd $63, %rbx, %r10 + + add %eax, %eax + + mov -24(%rsi,%rcx,8), %r12 + sbb %r11, %r12 + mov %r12, -24(%rdi,%rcx,8) + + mov -16(%rsi,%rcx,8), %r12 + sbb %r8, %r12 + mov %r12, -16(%rdi,%rcx,8) + + mov -8(%rsi,%rcx,8), %r12 + sbb %r9, %r12 + mov %r12, -8(%rdi,%rcx,8) + + mov (%rsi,%rcx,8), %r12 + sbb %r10, %r12 + mov %r12, (%rdi,%rcx,8) + + mov %rbx, %r11 + sbb %eax, %eax + + add $4, %rcx + js Ltop + +Lend: shr $63, %r11 + pop %r12 + pop %rbx + sub %r11d, %eax + neg %eax + + ret + + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/sublsh2_n.s b/vere/ext/gmp/gen/x86_64-macos/mpn/sublsh2_n.s new file mode 100644 index 0000000..8e62cfe --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/sublsh2_n.s @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 3, 0x90 + .globl ___gmpn_sublsh2_n + + +___gmpn_sublsh2_n: + + + push %rbx + push %r12 + + mov %ecx, %eax + lea 24(%rsi,%rcx,8), %rsi + lea 24(%rdx,%rcx,8), %rdx + lea 24(%rdi,%rcx,8), %rdi + neg %rcx + + xor %r11d, %r11d + + mov -24(%rdx,%rcx,8), %r8 + shrd $62, %r8, %r11 + + and $3, %eax + je Lb0 + cmp $2, %eax + jc Lb1 + je Lb2 + +Lb3: mov -16(%rdx,%rcx,8), %r9 + shrd $62, %r9, %r8 + mov -8(%rdx,%rcx,8), %r10 + shrd $62, %r10, %r9 + mov -24(%rsi,%rcx,8), %r12 + sub %r11, %r12 + mov %r12, -24(%rdi,%rcx,8) + mov -16(%rsi,%rcx,8), %r12 + sbb %r8, %r12 + mov %r12, -16(%rdi,%rcx,8) + mov -8(%rsi,%rcx,8), %r12 + sbb %r9, %r12 + mov %r12, -8(%rdi,%rcx,8) + mov %r10, %r11 + sbb %eax, %eax + add $3, %rcx + js Ltop + jmp Lend + +Lb1: mov -24(%rsi,%rcx,8), %r12 + sub %r11, %r12 + mov %r12, -24(%rdi,%rcx,8) + mov %r8, %r11 + sbb %eax, %eax + inc %rcx + js Ltop + jmp Lend + +Lb2: mov -16(%rdx,%rcx,8), %r9 + shrd $62, %r9, %r8 + mov -24(%rsi,%rcx,8), %r12 + sub %r11, %r12 + mov %r12, -24(%rdi,%rcx,8) + mov -16(%rsi,%rcx,8), %r12 + sbb %r8, %r12 + mov %r12, -16(%rdi,%rcx,8) + mov %r9, %r11 + sbb %eax, %eax + add $2, %rcx + js Ltop + jmp Lend + + .align 4, 0x90 +Ltop: mov -24(%rdx,%rcx,8), %r8 + shrd $62, %r8, %r11 +Lb0: mov -16(%rdx,%rcx,8), %r9 + shrd $62, %r9, %r8 + mov -8(%rdx,%rcx,8), %r10 + shrd $62, %r10, %r9 + mov (%rdx,%rcx,8), %rbx + shrd $62, %rbx, %r10 + + add %eax, %eax + + mov -24(%rsi,%rcx,8), %r12 + sbb %r11, %r12 + mov %r12, -24(%rdi,%rcx,8) + + mov -16(%rsi,%rcx,8), %r12 + sbb %r8, %r12 + mov %r12, -16(%rdi,%rcx,8) + + mov -8(%rsi,%rcx,8), %r12 + sbb %r9, %r12 + mov %r12, -8(%rdi,%rcx,8) + + mov (%rsi,%rcx,8), %r12 + sbb %r10, %r12 + mov %r12, (%rdi,%rcx,8) + + mov %rbx, %r11 + sbb %eax, %eax + + add $4, %rcx + js Ltop + +Lend: shr $62, %r11 + pop %r12 + pop %rbx + sub %r11d, %eax + neg %eax + + ret + + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/submul_1.s b/vere/ext/gmp/gen/x86_64-macos/mpn/submul_1.s new file mode 100644 index 0000000..37fcb54 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/submul_1.s @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 4, 0x90 + .globl ___gmpn_submul_1 + + +___gmpn_submul_1: + + + push %rbx + push %rbp + push %r12 + push %r13 + + mov %rdx, %rbp + mov %rcx, %rdx + + test $1, %bpl + jnz Lbx1 + +Lbx0: shr $2, %rbp + jc Lb10 + +Lb00: .byte 0xc4,98,147,0xf6,38 + .byte 0xc4,226,227,0xf6,70,8 + add %r12, %rbx + adc $0, %rax + mov (%rdi), %r12 + mov 8(%rdi), %rcx + .byte 0xc4,98,179,0xf6,70,16 + lea -16(%rdi), %rdi + lea 16(%rsi), %rsi + sub %r13, %r12 + jmp Llo0 + +Lbx1: shr $2, %rbp + jc Lb11 + +Lb01: .byte 0xc4,98,163,0xf6,22 + jnz Lgt1 +Ln1: sub %r11, (%rdi) + mov $0, %eax + adc %r10, %rax + jmp Lret + +Lgt1: .byte 0xc4,98,147,0xf6,102,8 + .byte 0xc4,226,227,0xf6,70,16 + lea 24(%rsi), %rsi + add %r10, %r13 + adc %r12, %rbx + adc $0, %rax + mov (%rdi), %r10 + mov 8(%rdi), %r12 + mov 16(%rdi), %rcx + lea -8(%rdi), %rdi + sub %r11, %r10 + jmp Llo1 + +Lb11: .byte 0xc4,226,227,0xf6,6 + mov (%rdi), %rcx + .byte 0xc4,98,179,0xf6,70,8 + lea 8(%rsi), %rsi + lea -24(%rdi), %rdi + inc %rbp + sub %rbx, %rcx + jmp Llo3 + +Lb10: .byte 0xc4,98,179,0xf6,6 + .byte 0xc4,98,163,0xf6,86,8 + lea -32(%rdi), %rdi + mov $0, %eax + clc + jz Lend + + .align 4, 0x90 +Ltop: adc %rax, %r9 + lea 32(%rdi), %rdi + adc %r8, %r11 + .byte 0xc4,98,147,0xf6,102,16 + mov (%rdi), %r8 + .byte 0xc4,226,227,0xf6,70,24 + lea 32(%rsi), %rsi + adc %r10, %r13 + adc %r12, %rbx + adc $0, %rax + mov 8(%rdi), %r10 + mov 16(%rdi), %r12 + sub %r9, %r8 + mov 24(%rdi), %rcx + mov %r8, (%rdi) + sbb %r11, %r10 +Llo1: .byte 0xc4,98,179,0xf6,6 + mov %r10, 8(%rdi) + sbb %r13, %r12 +Llo0: mov %r12, 16(%rdi) + sbb %rbx, %rcx +Llo3: .byte 0xc4,98,163,0xf6,86,8 + mov %rcx, 24(%rdi) + dec %rbp + jnz Ltop + +Lend: adc %rax, %r9 + adc %r8, %r11 + mov 32(%rdi), %r8 + mov %r10, %rax + adc $0, %rax + mov 40(%rdi), %r10 + sub %r9, %r8 + mov %r8, 32(%rdi) + sbb %r11, %r10 + mov %r10, 40(%rdi) + adc $0, %rax + +Lret: pop %r13 + pop %r12 + pop %rbp + pop %rbx + + ret + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/xnor_n.s b/vere/ext/gmp/gen/x86_64-macos/mpn/xnor_n.s new file mode 100644 index 0000000..fb72dba --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/xnor_n.s @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 5, 0x90 + .globl ___gmpn_xnor_n + + +___gmpn_xnor_n: + + + mov (%rdx), %r8 + not %r8 + mov %ecx, %eax + and $3, %eax + je Lb00 + cmp $2, %eax + jc Lb01 + je Lb10 + +Lb11: xor (%rsi), %r8 + mov %r8, (%rdi) + inc %rcx + lea -8(%rsi), %rsi + lea -8(%rdx), %rdx + lea -8(%rdi), %rdi + jmp Le11 +Lb10: add $2, %rcx + lea -16(%rsi), %rsi + lea -16(%rdx), %rdx + lea -16(%rdi), %rdi + jmp Le10 +Lb01: xor (%rsi), %r8 + mov %r8, (%rdi) + dec %rcx + jz Lret + lea 8(%rsi), %rsi + lea 8(%rdx), %rdx + lea 8(%rdi), %rdi + + .align 4, 0x90 +Ltop: mov (%rdx), %r8 + not %r8 +Lb00: mov 8(%rdx), %r9 + not %r9 + xor (%rsi), %r8 + xor 8(%rsi), %r9 + mov %r8, (%rdi) + mov %r9, 8(%rdi) +Le11: mov 16(%rdx), %r8 + not %r8 +Le10: mov 24(%rdx), %r9 + not %r9 + lea 32(%rdx), %rdx + xor 16(%rsi), %r8 + xor 24(%rsi), %r9 + lea 32(%rsi), %rsi + mov %r8, 16(%rdi) + mov %r9, 24(%rdi) + lea 32(%rdi), %rdi + sub $4, %rcx + jnz Ltop + +Lret: + ret + + + + diff --git a/vere/ext/gmp/gen/x86_64-macos/mpn/xor_n.s b/vere/ext/gmp/gen/x86_64-macos/mpn/xor_n.s new file mode 100644 index 0000000..e6ec0c5 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/mpn/xor_n.s @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + .align 5, 0x90 + .globl ___gmpn_xor_n + + +___gmpn_xor_n: + + + mov (%rdx), %r8 + mov %ecx, %eax + and $3, %eax + je Lb00 + cmp $2, %eax + jc Lb01 + je Lb10 + +Lb11: xor (%rsi), %r8 + mov %r8, (%rdi) + inc %rcx + lea -8(%rsi), %rsi + lea -8(%rdx), %rdx + lea -8(%rdi), %rdi + jmp Le11 +Lb10: add $2, %rcx + lea -16(%rsi), %rsi + lea -16(%rdx), %rdx + lea -16(%rdi), %rdi + jmp Le10 +Lb01: xor (%rsi), %r8 + mov %r8, (%rdi) + dec %rcx + jz Lret + lea 8(%rsi), %rsi + lea 8(%rdx), %rdx + lea 8(%rdi), %rdi + + .align 4, 0x90 +Ltop: mov (%rdx), %r8 +Lb00: mov 8(%rdx), %r9 + xor (%rsi), %r8 + xor 8(%rsi), %r9 + mov %r8, (%rdi) + mov %r9, 8(%rdi) +Le11: mov 16(%rdx), %r8 +Le10: mov 24(%rdx), %r9 + lea 32(%rdx), %rdx + xor 16(%rsi), %r8 + xor 24(%rsi), %r9 + lea 32(%rsi), %rsi + mov %r8, 16(%rdi) + mov %r9, 24(%rdi) + lea 32(%rdi), %rdi + sub $4, %rcx + jnz Ltop + +Lret: + ret + + + + + + diff --git a/vere/ext/gmp/gen/x86_64-macos/sieve_table.h b/vere/ext/gmp/gen/x86_64-macos/sieve_table.h new file mode 100644 index 0000000..ee9ac14 --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/sieve_table.h @@ -0,0 +1,46 @@ +/* This file generated by gen-sieve.c - DO NOT EDIT. */ + +#if GMP_LIMB_BITS != 64 +Error, error, this data is for 64 bits +#endif + +#define PRIMESIEVE_INIT_TABLE \ + CNST_LIMB (0x3294C9E069128480), /* 5 - 196 (42 primes) */ \ + CNST_LIMB (0x95A35E1EC4AB21DC), /* 197 - 388 (32 primes) */ \ + CNST_LIMB (0x4AD7CE99B8693366), /* 389 - 580 (30 primes) */ \ + CNST_LIMB (0x6595B6DA728DC52B), /* 581 - 772 (30 primes) */ \ + CNST_LIMB (0xEA6D9F8787B0CEDE), /* 773 - 964 (26 primes) */ \ + CNST_LIMB (0x3F56A1F4CD3275A9), /* 965 - 1156 (29 primes) */ \ + CNST_LIMB (0xFD3848FB74A76ADB), /* 1157 - 1348 (26 primes) */ \ + CNST_LIMB (0xDBBA0DD1A1EDF6AF), /* 1349 - 1540 (25 primes) */ \ + CNST_LIMB (0xCEC7F17ED22799A5), /* 1541 - 1732 (27 primes) */ \ + CNST_LIMB (0xEAEC17BDBB717D56), /* 1733 - 1924 (24 primes) */ \ + CNST_LIMB (0x3B0EB7B3585AFCF3), /* 1925 - 2116 (26 primes) */ \ + CNST_LIMB (0xE563D8F69FDF6C4F), /* 2117 - 2308 (23 primes) */ \ + CNST_LIMB (0xFE5BA7ABA45E92FC), /* 2309 - 2500 (25 primes) */ \ + CNST_LIMB (0x158DEE6F3BF49B7D), /* 2501 - 2692 (24 primes) */ \ + CNST_LIMB (0xBE5A7BC4EDE6CD1A), /* 2693 - 2884 (26 primes) */ \ + CNST_LIMB (0xD7679B3FCA7BB6AD), /* 2885 - 3076 (22 primes) */ \ + CNST_LIMB (0xC3F66B971FEF37E9), /* 3077 - 3268 (22 primes) */ \ + CNST_LIMB (0x6F7EBCF339C953FD), /* 3269 - 3460 (22 primes) */ \ + CNST_LIMB (0xD5A5ECDCD235DBF0), /* 3461 - 3652 (27 primes) */ \ + CNST_LIMB (0xECFA7B2FD5B65E3B), /* 3653 - 3844 (22 primes) */ \ + CNST_LIMB (0xD28EFDF9C89F67B1), /* 3845 - 4036 (25 primes) */ \ + CNST_LIMB (0xCB7F7C7A3DD3AF4F), /* 4037 - 4228 (21 primes) */ \ + CNST_LIMB (0xEEBED6CDFF6B32CC), /* 4229 - 4420 (22 primes) */ \ + CNST_LIMB (0xD5BD73F85ECFA97C), /* 4421 - 4612 (23 primes) */ \ + CNST_LIMB (0x21FDBE4FBBAD48F7), /* 4613 - 4804 (24 primes) */ \ + CNST_LIMB (0x5E35A3B5EEB7FDE7), /* 4805 - 4996 (21 primes) */ \ + CNST_LIMB (0xD9EBFD53A7DBBCC9), /* 4997 - 5188 (22 primes) */ \ + CNST_LIMB (0xFF9EDEAF2EFE1F76), /* 5189 - 5380 (18 primes) */ +#define PRIMESIEVE_NUMBEROF_TABLE 28 +/* #define PRIMESIEVE_PRIMES_IN_TABLE 706 */ +#define PRIMESIEVE_HIGHEST_PRIME 5351 +/* #define PRIMESIEVE_FIRST_UNCHECKED 5381 */ + +#define SIEVE_MASK1 CNST_LIMB(0x3204C1A049120485) +#define SIEVE_MASKT CNST_LIMB(0xA1204892058) +#define SIEVE_2MSK1 CNST_LIMB(0x29048402110840A) +#define SIEVE_2MSK2 CNST_LIMB(0x9402180C40230184) +#define SIEVE_2MSKT CNST_LIMB(0x5021088402120) + diff --git a/vere/ext/gmp/gen/x86_64-macos/trialdivtab.h b/vere/ext/gmp/gen/x86_64-macos/trialdivtab.h new file mode 100644 index 0000000..eb81d7f --- /dev/null +++ b/vere/ext/gmp/gen/x86_64-macos/trialdivtab.h @@ -0,0 +1,1214 @@ +#if GMP_LIMB_BITS != 64 +#error This table is for GMP_LIMB_BITS = 64 +#endif + +#if GMP_NAIL_BITS != 0 +#error This table does not support nails +#endif + +#ifdef WANT_dtab + P(3,CNST_LIMB(0xaaaaaaaaaaaaaaab),CNST_LIMB(0x5555555555555555)), + P(5,CNST_LIMB(0xcccccccccccccccd),CNST_LIMB(0x3333333333333333)), + P(7,CNST_LIMB(0x6db6db6db6db6db7),CNST_LIMB(0x2492492492492492)), + P(11,CNST_LIMB(0x2e8ba2e8ba2e8ba3),CNST_LIMB(0x1745d1745d1745d1)), + P(13,CNST_LIMB(0x4ec4ec4ec4ec4ec5),CNST_LIMB(0x13b13b13b13b13b1)), + P(17,CNST_LIMB(0xf0f0f0f0f0f0f0f1),CNST_LIMB(0xf0f0f0f0f0f0f0f)), + P(19,CNST_LIMB(0x86bca1af286bca1b),CNST_LIMB(0xd79435e50d79435)), + P(23,CNST_LIMB(0xd37a6f4de9bd37a7),CNST_LIMB(0xb21642c8590b216)), + P(29,CNST_LIMB(0x34f72c234f72c235),CNST_LIMB(0x8d3dcb08d3dcb08)), + P(31,CNST_LIMB(0xef7bdef7bdef7bdf),CNST_LIMB(0x842108421084210)), + P(37,CNST_LIMB(0x14c1bacf914c1bad),CNST_LIMB(0x6eb3e45306eb3e4)), + P(41,CNST_LIMB(0x8f9c18f9c18f9c19),CNST_LIMB(0x63e7063e7063e70)), + P(43,CNST_LIMB(0x82fa0be82fa0be83),CNST_LIMB(0x5f417d05f417d05)), + P(47,CNST_LIMB(0x51b3bea3677d46cf),CNST_LIMB(0x572620ae4c415c9)), + P(53,CNST_LIMB(0x21cfb2b78c13521d),CNST_LIMB(0x4d4873ecade304d)), + P(59,CNST_LIMB(0xcbeea4e1a08ad8f3),CNST_LIMB(0x456c797dd49c341)), + P(61,CNST_LIMB(0x4fbcda3ac10c9715),CNST_LIMB(0x4325c53ef368eb0)), + P(67,CNST_LIMB(0xf0b7672a07a44c6b),CNST_LIMB(0x3d226357e16ece5)), + P(71,CNST_LIMB(0x193d4bb7e327a977),CNST_LIMB(0x39b0ad12073615a)), + P(73,CNST_LIMB(0x7e3f1f8fc7e3f1f9),CNST_LIMB(0x381c0e070381c0e)), + P(79,CNST_LIMB(0x9b8b577e613716af),CNST_LIMB(0x33d91d2a2067b23)), + P(83,CNST_LIMB(0xa3784a062b2e43db),CNST_LIMB(0x3159721ed7e7534)), + P(89,CNST_LIMB(0xf47e8fd1fa3f47e9),CNST_LIMB(0x2e05c0b81702e05)), + P(97,CNST_LIMB(0xa3a0fd5c5f02a3a1),CNST_LIMB(0x2a3a0fd5c5f02a3)), + P(101,CNST_LIMB(0x3a4c0a237c32b16d),CNST_LIMB(0x288df0cac5b3f5d)), + P(103,CNST_LIMB(0xdab7ec1dd3431b57),CNST_LIMB(0x27c45979c95204f)), + P(107,CNST_LIMB(0x77a04c8f8d28ac43),CNST_LIMB(0x2647c69456217ec)), + P(109,CNST_LIMB(0xa6c0964fda6c0965),CNST_LIMB(0x2593f69b02593f6)), + P(113,CNST_LIMB(0x90fdbc090fdbc091),CNST_LIMB(0x243f6f0243f6f02)), + P(127,CNST_LIMB(0x7efdfbf7efdfbf7f),CNST_LIMB(0x204081020408102)), + P(131,CNST_LIMB(0x3e88cb3c9484e2b),CNST_LIMB(0x1f44659e4a42715)), + P(137,CNST_LIMB(0xe21a291c077975b9),CNST_LIMB(0x1de5d6e3f8868a4)), + P(139,CNST_LIMB(0x3aef6ca970586723),CNST_LIMB(0x1d77b654b82c339)), + P(149,CNST_LIMB(0xdf5b0f768ce2cabd),CNST_LIMB(0x1b7d6c3dda338b2)), + P(151,CNST_LIMB(0x6fe4dfc9bf937f27),CNST_LIMB(0x1b2036406c80d90)), + P(157,CNST_LIMB(0x5b4fe5e92c0685b5),CNST_LIMB(0x1a16d3f97a4b01a)), + P(163,CNST_LIMB(0x1f693a1c451ab30b),CNST_LIMB(0x1920fb49d0e228d)), + P(167,CNST_LIMB(0x8d07aa27db35a717),CNST_LIMB(0x1886e5f0abb0499)), + P(173,CNST_LIMB(0x882383b30d516325),CNST_LIMB(0x17ad2208e0ecc35)), + P(179,CNST_LIMB(0xed6866f8d962ae7b),CNST_LIMB(0x16e1f76b4337c6c)), + P(181,CNST_LIMB(0x3454dca410f8ed9d),CNST_LIMB(0x16a13cd15372904)), + P(191,CNST_LIMB(0x1d7ca632ee936f3f),CNST_LIMB(0x1571ed3c506b39a)), + P(193,CNST_LIMB(0x70bf015390948f41),CNST_LIMB(0x15390948f40feac)), + P(197,CNST_LIMB(0xc96bdb9d3d137e0d),CNST_LIMB(0x14cab88725af6e7)), + P(199,CNST_LIMB(0x2697cc8aef46c0f7),CNST_LIMB(0x149539e3b2d066e)), + P(211,CNST_LIMB(0xc0e8f2a76e68575b),CNST_LIMB(0x13698df3de07479)), + P(223,CNST_LIMB(0x687763dfdb43bb1f),CNST_LIMB(0x125e22708092f11)), + P(227,CNST_LIMB(0x1b10ea929ba144cb),CNST_LIMB(0x120b470c67c0d88)), + P(229,CNST_LIMB(0x1d10c4c0478bbced),CNST_LIMB(0x11e2ef3b3fb8744)), + P(233,CNST_LIMB(0x63fb9aeb1fdcd759),CNST_LIMB(0x119453808ca29c0)), + P(239,CNST_LIMB(0x64afaa4f437b2e0f),CNST_LIMB(0x112358e75d30336)), + P(241,CNST_LIMB(0xf010fef010fef011),CNST_LIMB(0x10fef010fef010f)), + P(251,CNST_LIMB(0x28cbfbeb9a020a33),CNST_LIMB(0x105197f7d734041)), + P(257,CNST_LIMB(0xff00ff00ff00ff01),CNST_LIMB(0xff00ff00ff00ff)), + P(263,CNST_LIMB(0xd624fd1470e99cb7),CNST_LIMB(0xf92fb2211855a8)), + P(269,CNST_LIMB(0x8fb3ddbd6205b5c5),CNST_LIMB(0xf3a0d52cba8723)), + P(271,CNST_LIMB(0xd57da36ca27acdef),CNST_LIMB(0xf1d48bcee0d399)), + P(277,CNST_LIMB(0xee70c03b25e4463d),CNST_LIMB(0xec979118f3fc4d)), + P(281,CNST_LIMB(0xc5b1a6b80749cb29),CNST_LIMB(0xe939651fe2d8d3)), + P(283,CNST_LIMB(0x47768073c9b97113),CNST_LIMB(0xe79372e225fe30)), + P(293,CNST_LIMB(0x2591e94884ce32ad),CNST_LIMB(0xdfac1f74346c57)), + P(307,CNST_LIMB(0xf02806abc74be1fb),CNST_LIMB(0xd578e97c3f5fe5)), + P(311,CNST_LIMB(0x7ec3e8f3a7198487),CNST_LIMB(0xd2ba083b445250)), + P(313,CNST_LIMB(0x58550f8a39409d09),CNST_LIMB(0xd161543e28e502)), + P(317,CNST_LIMB(0xec9e48ae6f71de15),CNST_LIMB(0xcebcf8bb5b4169)), + P(331,CNST_LIMB(0x2ff3a018bfce8063),CNST_LIMB(0xc5fe740317f9d0)), + P(337,CNST_LIMB(0x7f9ec3fcf61fe7b1),CNST_LIMB(0xc2780613c0309e)), + P(347,CNST_LIMB(0x89f5abe570e046d3),CNST_LIMB(0xbcdd535db1cc5b)), + P(349,CNST_LIMB(0xda971b23f1545af5),CNST_LIMB(0xbbc8408cd63069)), + P(353,CNST_LIMB(0x79d5f00b9a7862a1),CNST_LIMB(0xb9a7862a0ff465)), + P(359,CNST_LIMB(0x4dba1df32a128a57),CNST_LIMB(0xb68d31340e4307)), + P(367,CNST_LIMB(0x87530217b7747d8f),CNST_LIMB(0xb2927c29da5519)), + P(373,CNST_LIMB(0x30baae53bb5e06dd),CNST_LIMB(0xafb321a1496fdf)), + P(379,CNST_LIMB(0xee70206c12e9b5b3),CNST_LIMB(0xaceb0f891e6551)), + P(383,CNST_LIMB(0xcdde9462ec9dbe7f),CNST_LIMB(0xab1cbdd3e2970f)), + P(389,CNST_LIMB(0xafb64b05ec41cf4d),CNST_LIMB(0xa87917088e262b)), + P(397,CNST_LIMB(0x2944ff5aec02945),CNST_LIMB(0xa513fd6bb00a51)), + P(401,CNST_LIMB(0x2cb033128382df71),CNST_LIMB(0xa36e71a2cb0331)), + P(409,CNST_LIMB(0x1ccacc0c84b1c2a9),CNST_LIMB(0xa03c1688732b30)), + P(419,CNST_LIMB(0x19a93db575eb3a0b),CNST_LIMB(0x9c69169b30446d)), + P(421,CNST_LIMB(0xcebeef94fa86fe2d),CNST_LIMB(0x9baade8e4a2f6e)), + P(431,CNST_LIMB(0x6faa77fb3f8df54f),CNST_LIMB(0x980e4156201301)), + P(433,CNST_LIMB(0x68a58af00975a751),CNST_LIMB(0x975a750ff68a58)), + P(439,CNST_LIMB(0xd56e36d0c3efac07),CNST_LIMB(0x9548e4979e0829)), + P(443,CNST_LIMB(0xd8b44c47a8299b73),CNST_LIMB(0x93efd1c50e726b)), + P(449,CNST_LIMB(0x2d9ccaf9ba70e41),CNST_LIMB(0x91f5bcb8bb02d9)), + P(457,CNST_LIMB(0x985e1c023d9e879),CNST_LIMB(0x8f67a1e3fdc261)), + P(461,CNST_LIMB(0x2a343316c494d305),CNST_LIMB(0x8e2917e0e702c6)), + P(463,CNST_LIMB(0x70cb7916ab67652f),CNST_LIMB(0x8d8be33f95d715)), + P(467,CNST_LIMB(0xd398f132fb10fe5b),CNST_LIMB(0x8c55841c815ed5)), + P(479,CNST_LIMB(0x6f2a38a6bf54fa1f),CNST_LIMB(0x88d180cd3a4133)), + P(487,CNST_LIMB(0x211df689b98f81d7),CNST_LIMB(0x869222b1acf1ce)), + P(491,CNST_LIMB(0xe994983e90f1ec3),CNST_LIMB(0x85797b917765ab)), + P(499,CNST_LIMB(0xad671e44bed87f3b),CNST_LIMB(0x8355ace3c897db)), + P(503,CNST_LIMB(0xf9623a0516e70fc7),CNST_LIMB(0x824a4e60b3262b)), + P(509,CNST_LIMB(0x4b7129be9dece355),CNST_LIMB(0x80c121b28bd1ba)), + P(521,CNST_LIMB(0x190f3b7473f62c39),CNST_LIMB(0x7dc9f3397d4c29)), + P(523,CNST_LIMB(0x63dacc9aad46f9a3),CNST_LIMB(0x7d4ece8fe88139)), + P(541,CNST_LIMB(0xc1108fda24e8d035),CNST_LIMB(0x79237d65bcce50)), + P(547,CNST_LIMB(0xb77578472319bd8b),CNST_LIMB(0x77cf53c5f7936c)), + P(557,CNST_LIMB(0x473d20a1c7ed9da5),CNST_LIMB(0x75a8accfbdd11e)), + P(563,CNST_LIMB(0xfbe85af0fea2c8fb),CNST_LIMB(0x7467ac557c228e)), + P(569,CNST_LIMB(0x58a1f7e6ce0f4c09),CNST_LIMB(0x732d70ed8db8e9)), + P(571,CNST_LIMB(0x1a00e58c544986f3),CNST_LIMB(0x72c62a24c3797f)), + P(577,CNST_LIMB(0x7194a17f55a10dc1),CNST_LIMB(0x7194a17f55a10d)), + P(587,CNST_LIMB(0x7084944785e33763),CNST_LIMB(0x6fa549b41da7e7)), + P(593,CNST_LIMB(0xba10679bd84886b1),CNST_LIMB(0x6e8419e6f61221)), + P(599,CNST_LIMB(0xebe9c6bb31260967),CNST_LIMB(0x6d68b5356c207b)), + P(601,CNST_LIMB(0x97a3fe4bd1ff25e9),CNST_LIMB(0x6d0b803685c01b)), + P(607,CNST_LIMB(0x6c6388395b84d99f),CNST_LIMB(0x6bf790a8b2d207)), + P(613,CNST_LIMB(0x8c51da6a1335df6d),CNST_LIMB(0x6ae907ef4b96c2)), + P(617,CNST_LIMB(0x46f3234475d5add9),CNST_LIMB(0x6a37991a23aead)), + P(619,CNST_LIMB(0x905605ca3c619a43),CNST_LIMB(0x69dfbdd4295b66)), + P(631,CNST_LIMB(0xcee8dff304767747),CNST_LIMB(0x67dc4c45c8033e)), + P(641,CNST_LIMB(0xff99c27f00663d81),CNST_LIMB(0x663d80ff99c27f)), + P(643,CNST_LIMB(0xacca407f671ddc2b),CNST_LIMB(0x65ec17e3559948)), + P(647,CNST_LIMB(0xe71298bac1e12337),CNST_LIMB(0x654ac835cfba5c)), + P(653,CNST_LIMB(0xfa1e94309cd09045),CNST_LIMB(0x645c854ae10772)), + P(659,CNST_LIMB(0xbebccb8e91496b9b),CNST_LIMB(0x6372990e5f901f)), + P(661,CNST_LIMB(0x312fa30cc7d7b8bd),CNST_LIMB(0x6325913c07beef)), + P(673,CNST_LIMB(0x6160ff9e9f006161),CNST_LIMB(0x6160ff9e9f0061)), + P(677,CNST_LIMB(0x6b03673b5e28152d),CNST_LIMB(0x60cdb520e5e88e)), + P(683,CNST_LIMB(0xfe802ffa00bfe803),CNST_LIMB(0x5ff4017fd005ff)), + P(691,CNST_LIMB(0xe66fe25c9e907c7b),CNST_LIMB(0x5ed79e31a4dccd)), + P(701,CNST_LIMB(0x3f8b236c76528895),CNST_LIMB(0x5d7d42d48ac5ef)), + P(709,CNST_LIMB(0xf6f923bf01ce2c0d),CNST_LIMB(0x5c6f35ccba5028)), + P(719,CNST_LIMB(0x6c3d3d98bed7c42f),CNST_LIMB(0x5b2618ec6ad0a5)), + P(727,CNST_LIMB(0x30981efcd4b010e7),CNST_LIMB(0x5a2553748e42e7)), + P(733,CNST_LIMB(0x6f691fc81ebbe575),CNST_LIMB(0x59686cf744cd5b)), + P(739,CNST_LIMB(0xb10480ddb47b52cb),CNST_LIMB(0x58ae97bab79976)), + P(743,CNST_LIMB(0x74cd59ed64f3f0d7),CNST_LIMB(0x58345f1876865f)), + P(751,CNST_LIMB(0x105cb81316d6c0f),CNST_LIMB(0x5743d5bb24795a)), + P(757,CNST_LIMB(0x9be64c6d91c1195d),CNST_LIMB(0x5692c4d1ab74ab)), + P(761,CNST_LIMB(0x71b3f945a27b1f49),CNST_LIMB(0x561e46a4d5f337)), + P(769,CNST_LIMB(0x77d80d50e508fd01),CNST_LIMB(0x5538ed06533997)), + P(773,CNST_LIMB(0xa5eb778e133551cd),CNST_LIMB(0x54c807f2c0bec2)), + P(787,CNST_LIMB(0x18657d3c2d8a3f1b),CNST_LIMB(0x5345efbc572d36)), + P(797,CNST_LIMB(0x2e40e220c34ad735),CNST_LIMB(0x523a758f941345)), + P(809,CNST_LIMB(0xa76593c70a714919),CNST_LIMB(0x5102370f816c89)), + P(811,CNST_LIMB(0x1eef452124eea383),CNST_LIMB(0x50cf129fb94acf)), + P(821,CNST_LIMB(0x38206dc242ba771d),CNST_LIMB(0x4fd31941cafdd1)), + P(823,CNST_LIMB(0x4cd4c35807772287),CNST_LIMB(0x4fa1704aa75945)), + P(827,CNST_LIMB(0x83de917d5e69ddf3),CNST_LIMB(0x4f3ed6d45a63ad)), + P(829,CNST_LIMB(0x882ef0403b4a6c15),CNST_LIMB(0x4f0de57154ebed)), + P(839,CNST_LIMB(0xf8fb6c51c606b677),CNST_LIMB(0x4e1cae8815f811)), + P(853,CNST_LIMB(0xb4abaac446d3e1fd),CNST_LIMB(0x4cd47ba5f6ff19)), + P(857,CNST_LIMB(0xa9f83bbe484a14e9),CNST_LIMB(0x4c78ae734df709)), + P(859,CNST_LIMB(0xbebbc0d1ce874d3),CNST_LIMB(0x4c4b19ed85cfb8)), + P(863,CNST_LIMB(0xbd418eaf0473189f),CNST_LIMB(0x4bf093221d1218)), + P(877,CNST_LIMB(0x44e3af6f372b7e65),CNST_LIMB(0x4aba3c21dc633f)), + P(881,CNST_LIMB(0xc87fdace4f9e5d91),CNST_LIMB(0x4a6360c344de00)), + P(883,CNST_LIMB(0xec93479c446bd9bb),CNST_LIMB(0x4a383e9f74d68a)), + P(887,CNST_LIMB(0xdac4d592e777c647),CNST_LIMB(0x49e28fbabb9940)), + P(907,CNST_LIMB(0xa63ea8c8f61f0c23),CNST_LIMB(0x48417b57c78cd7)), + P(911,CNST_LIMB(0xe476062ea5cbbb6f),CNST_LIMB(0x47f043713f3a2b)), + P(919,CNST_LIMB(0xdf68761c69daac27),CNST_LIMB(0x474ff2a10281cf)), + P(929,CNST_LIMB(0xb813d737637aa061),CNST_LIMB(0x468b6f9a978f91)), + P(937,CNST_LIMB(0xa3a77aac1fb15099),CNST_LIMB(0x45f13f1caff2e2)), + P(941,CNST_LIMB(0x17f0c3e0712c5825),CNST_LIMB(0x45a5228cec23e9)), + P(947,CNST_LIMB(0xfd912a70ff30637b),CNST_LIMB(0x45342c556c66b9)), + P(953,CNST_LIMB(0xfbb3b5dc01131289),CNST_LIMB(0x44c4a23feeced7)), + P(967,CNST_LIMB(0x856d560a0f5acdf7),CNST_LIMB(0x43c5c20d3c9fe6)), + P(971,CNST_LIMB(0x96472f314d3f89e3),CNST_LIMB(0x437e494b239798)), + P(977,CNST_LIMB(0xa76f5c7ed2253531),CNST_LIMB(0x43142d118e47cb)), + P(983,CNST_LIMB(0x816eae7c7bf69fe7),CNST_LIMB(0x42ab5c73a13458)), + P(991,CNST_LIMB(0xb6a2bea4cfb1781f),CNST_LIMB(0x4221950db0f3db)), + P(997,CNST_LIMB(0xa3900c53318e81ed),CNST_LIMB(0x41bbb2f80a4553)), + P(1009,CNST_LIMB(0x60aa7f5d9f148d11),CNST_LIMB(0x40f391612c6680)), + P(1013,CNST_LIMB(0x6be8c0102c7a505d),CNST_LIMB(0x40b1e94173fefd)), + P(1019,CNST_LIMB(0x8ff3f0ed28728f33),CNST_LIMB(0x4050647d9d0445)), + P(1021,CNST_LIMB(0x680e0a87e5ec7155),CNST_LIMB(0x4030241b144f3b)), + P(1031,CNST_LIMB(0xbbf70fa49fe829b7),CNST_LIMB(0x3f90c2ab542cb1)), + P(1033,CNST_LIMB(0xd69d1e7b6a50ca39),CNST_LIMB(0x3f71412d59f597)), + P(1039,CNST_LIMB(0x1a1e0f46b6d26aef),CNST_LIMB(0x3f137701b98841)), + P(1049,CNST_LIMB(0x7429f9a7a8251829),CNST_LIMB(0x3e79886b60e278)), + P(1051,CNST_LIMB(0xd9c2219d1b863613),CNST_LIMB(0x3e5b1916a7181d)), + P(1061,CNST_LIMB(0x91406c1820d077ad),CNST_LIMB(0x3dc4a50968f524)), + P(1063,CNST_LIMB(0x521f4ec02e3d2b97),CNST_LIMB(0x3da6e4c9550321)), + P(1069,CNST_LIMB(0xbb8283b63dc8eba5),CNST_LIMB(0x3d4e4f06f1def3)), + P(1087,CNST_LIMB(0x431eda153229ebbf),CNST_LIMB(0x3c4a6bdd24f9a4)), + P(1091,CNST_LIMB(0xaf0bf78d7e01686b),CNST_LIMB(0x3c11d54b525c73)), + P(1093,CNST_LIMB(0xa9ced0742c086e8d),CNST_LIMB(0x3bf5b1c5721065)), + P(1097,CNST_LIMB(0xc26458ad9f632df9),CNST_LIMB(0x3bbdb9862f23b4)), + P(1103,CNST_LIMB(0xbbff1255dff892af),CNST_LIMB(0x3b6a8801db5440)), + P(1109,CNST_LIMB(0xcbd49a333f04d8fd),CNST_LIMB(0x3b183cf0fed886)), + P(1117,CNST_LIMB(0xec84ed6f9cfdeff5),CNST_LIMB(0x3aabe394bdc3f4)), + P(1123,CNST_LIMB(0x97980cc40bda9d4b),CNST_LIMB(0x3a5ba3e76156da)), + P(1129,CNST_LIMB(0x777f34d524f5cbd9),CNST_LIMB(0x3a0c3e953378db)), + P(1151,CNST_LIMB(0x2797051d94cbbb7f),CNST_LIMB(0x38f03561320b1e)), + P(1153,CNST_LIMB(0xea769051b4f43b81),CNST_LIMB(0x38d6ecaef5908a)), + P(1163,CNST_LIMB(0xce7910f3034d4323),CNST_LIMB(0x3859cf221e6069)), + P(1171,CNST_LIMB(0x92791d1374f5b99b),CNST_LIMB(0x37f7415dc9588a)), + P(1181,CNST_LIMB(0x89a5645cc68ea1b5),CNST_LIMB(0x377df0d3902626)), + P(1187,CNST_LIMB(0x5f8aacf796c0cf0b),CNST_LIMB(0x373622136907fa)), + P(1193,CNST_LIMB(0xf2e90a15e33edf99),CNST_LIMB(0x36ef0c3b39b92f)), + P(1201,CNST_LIMB(0x8e99e5feb897c451),CNST_LIMB(0x36915f47d55e6d)), + P(1213,CNST_LIMB(0xaca2eda38fb91695),CNST_LIMB(0x36072cf3f866fd)), + P(1217,CNST_LIMB(0x5d9b737be5ea8b41),CNST_LIMB(0x35d9b737be5ea8)), + P(1223,CNST_LIMB(0x4aefe1db93fd7cf7),CNST_LIMB(0x35961559cc81c7)), + P(1229,CNST_LIMB(0xa0994ef20b3f8805),CNST_LIMB(0x35531c897a4592)), + P(1231,CNST_LIMB(0x103890bda912822f),CNST_LIMB(0x353ceebd3e98a4)), + P(1237,CNST_LIMB(0xb441659d13a9147d),CNST_LIMB(0x34fad381585e5e)), + P(1249,CNST_LIMB(0x1e2134440c4c3f21),CNST_LIMB(0x347884d1103130)), + P(1259,CNST_LIMB(0x263a27727a6883c3),CNST_LIMB(0x340dd3ac39bf56)), + P(1277,CNST_LIMB(0x78e221472ab33855),CNST_LIMB(0x3351fdfecc140c)), + P(1279,CNST_LIMB(0x95eac88e82e6faff),CNST_LIMB(0x333d72b089b524)), + P(1283,CNST_LIMB(0xf66c258317be8dab),CNST_LIMB(0x33148d44d6b261)), + P(1289,CNST_LIMB(0x9ee202c7cb91939),CNST_LIMB(0x32d7aef8412458)), + P(1291,CNST_LIMB(0x8d2fca1042a09ea3),CNST_LIMB(0x32c3850e79c0f1)), + P(1297,CNST_LIMB(0x82779c856d8b8bf1),CNST_LIMB(0x328766d59048a2)), + P(1301,CNST_LIMB(0x3879361cba8a223d),CNST_LIMB(0x325fa18cb11833)), + P(1303,CNST_LIMB(0xf23f43639c3182a7),CNST_LIMB(0x324bd659327e22)), + P(1307,CNST_LIMB(0xa03868fc474bcd13),CNST_LIMB(0x32246e784360f4)), + P(1319,CNST_LIMB(0x651e78b8c5311a97),CNST_LIMB(0x31afa5f1a33a08)), + P(1321,CNST_LIMB(0x8ffce639c00c6719),CNST_LIMB(0x319c63ff398e70)), + P(1327,CNST_LIMB(0xf7b460754b0b61cf),CNST_LIMB(0x3162f7519a86a7)), + P(1361,CNST_LIMB(0x7b03f3359b8e63b1),CNST_LIMB(0x30271fc9d3fc3c)), + P(1367,CNST_LIMB(0xa55c5326041eb667),CNST_LIMB(0x2ff104ae89750b)), + P(1373,CNST_LIMB(0x647f88ab896a76f5),CNST_LIMB(0x2fbb62a236d133)), + P(1381,CNST_LIMB(0x8fd971434a55a46d),CNST_LIMB(0x2f74997d2070b4)), + P(1399,CNST_LIMB(0x9fbf969958046447),CNST_LIMB(0x2ed84aa8b6fce3)), + P(1409,CNST_LIMB(0x9986feba69be3a81),CNST_LIMB(0x2e832df7a46dbd)), + P(1423,CNST_LIMB(0xa668b3e6d053796f),CNST_LIMB(0x2e0e0846857cab)), + P(1427,CNST_LIMB(0x97694e6589f4e09b),CNST_LIMB(0x2decfbdfb55ee6)), + P(1429,CNST_LIMB(0x37890c00b7721dbd),CNST_LIMB(0x2ddc876f3ff488)), + P(1433,CNST_LIMB(0x5ac094a235f37ea9),CNST_LIMB(0x2dbbc1d4c482c4)), + P(1439,CNST_LIMB(0x31cff775f2d5d65f),CNST_LIMB(0x2d8af0e0de0556)), + P(1447,CNST_LIMB(0xddad8e6b36505217),CNST_LIMB(0x2d4a7b7d14b30a)), + P(1451,CNST_LIMB(0x5a27df897062cd03),CNST_LIMB(0x2d2a85073bcf4e)), + P(1453,CNST_LIMB(0xe2396fe0fdb5a625),CNST_LIMB(0x2d1a9ab13e8be4)), + P(1459,CNST_LIMB(0xb352a4957e82317b),CNST_LIMB(0x2ceb1eb4b9fd8b)), + P(1471,CNST_LIMB(0xd8ab3f2c60c2ea3f),CNST_LIMB(0x2c8d503a79794c)), + P(1481,CNST_LIMB(0x6893f702f0452479),CNST_LIMB(0x2c404d708784ed)), + P(1483,CNST_LIMB(0x9686fdc182acf7e3),CNST_LIMB(0x2c31066315ec52)), + P(1487,CNST_LIMB(0x6854037173dce12f),CNST_LIMB(0x2c1297d80f2664)), + P(1489,CNST_LIMB(0x7f0ded1685c27331),CNST_LIMB(0x2c037044c55f6b)), + P(1493,CNST_LIMB(0xeeda72e1fe490b7d),CNST_LIMB(0x2be5404cd13086)), + P(1499,CNST_LIMB(0x9e7bfc959a8e6e53),CNST_LIMB(0x2bb845adaf0cce)), + P(1511,CNST_LIMB(0x49b314d6d4753dd7),CNST_LIMB(0x2b5f62c639f16d)), + P(1523,CNST_LIMB(0x2e8f8c5ac4aa1b3b),CNST_LIMB(0x2b07e6734f2b88)), + P(1531,CNST_LIMB(0xb8ef723481163d33),CNST_LIMB(0x2ace569d8342b7)), + P(1543,CNST_LIMB(0x6a2ec96a594287b7),CNST_LIMB(0x2a791d5dbd4dcf)), + P(1549,CNST_LIMB(0xdba41c6d13aab8c5),CNST_LIMB(0x2a4eff8113017c)), + P(1553,CNST_LIMB(0xc2adbe648dc3aaf1),CNST_LIMB(0x2a3319e156df32)), + P(1559,CNST_LIMB(0x87a2bade565f91a7),CNST_LIMB(0x2a0986286526ea)), + P(1567,CNST_LIMB(0x4d6fe8798c01f5df),CNST_LIMB(0x29d29551d91e39)), + P(1571,CNST_LIMB(0x3791310c8c23d98b),CNST_LIMB(0x29b7529e109f0a)), + P(1579,CNST_LIMB(0xf80e446b01228883),CNST_LIMB(0x298137491ea465)), + P(1583,CNST_LIMB(0x9aed1436fbf500cf),CNST_LIMB(0x29665e1eb9f9da)), + P(1597,CNST_LIMB(0x7839b54cc8b24115),CNST_LIMB(0x2909752e019a5e)), + P(1601,CNST_LIMB(0xc128c646ad0309c1),CNST_LIMB(0x28ef35e2e5efb0)), + P(1607,CNST_LIMB(0x14de631624a3c377),CNST_LIMB(0x28c815aa4b8278)), + P(1609,CNST_LIMB(0x3f7b9fe68b0ecbf9),CNST_LIMB(0x28bb1b867199da)), + P(1613,CNST_LIMB(0x284ffd75ec00a285),CNST_LIMB(0x28a13ff5d7b002)), + P(1619,CNST_LIMB(0x37803cb80dea2ddb),CNST_LIMB(0x287ab3f173e755)), + P(1621,CNST_LIMB(0x86b63f7c9ac4c6fd),CNST_LIMB(0x286dead67713bd)), + P(1627,CNST_LIMB(0x8b6851d1bd99b9d3),CNST_LIMB(0x2847bfcda6503e)), + P(1637,CNST_LIMB(0xb62fda77ca343b6d),CNST_LIMB(0x2808c1ea6b4777)), + P(1657,CNST_LIMB(0x1f0dc009e34383c9),CNST_LIMB(0x278d0e0f23ff61)), + P(1663,CNST_LIMB(0x496dc21ddd35b97f),CNST_LIMB(0x2768863c093c7f)), + P(1667,CNST_LIMB(0xb0e96ce17090f82b),CNST_LIMB(0x27505115a73ca8)), + P(1669,CNST_LIMB(0xaadf05acdd7d024d),CNST_LIMB(0x274441a61dc1b9)), + P(1693,CNST_LIMB(0xcb138196746eafb5),CNST_LIMB(0x26b5c166113cf0)), + P(1697,CNST_LIMB(0x347f523736755d61),CNST_LIMB(0x269e65ad07b18e)), + P(1699,CNST_LIMB(0xd14a48a051f7dd0b),CNST_LIMB(0x2692c25f877560)), + P(1709,CNST_LIMB(0x474d71b1ce914d25),CNST_LIMB(0x2658fa7523cd11)), + P(1721,CNST_LIMB(0x386063f5e28c1f89),CNST_LIMB(0x26148710cf0f9e)), + P(1723,CNST_LIMB(0x1db7325e32d04e73),CNST_LIMB(0x2609363b22524f)), + P(1733,CNST_LIMB(0xfef748d3893b880d),CNST_LIMB(0x25d1065a1c1122)), + P(1741,CNST_LIMB(0x2f3351506e935605),CNST_LIMB(0x25a48a382b863f)), + P(1747,CNST_LIMB(0x7a3637fa2376415b),CNST_LIMB(0x25837190eccdbc)), + P(1753,CNST_LIMB(0x4ac525d2baa21969),CNST_LIMB(0x256292e95d510c)), + P(1759,CNST_LIMB(0x3a11c16b42cd351f),CNST_LIMB(0x2541eda98d068c)), + P(1777,CNST_LIMB(0x6c7abde0049c2a11),CNST_LIMB(0x24e15087fed8f5)), + P(1783,CNST_LIMB(0x54dad0303e069ac7),CNST_LIMB(0x24c18b20979e5d)), + P(1787,CNST_LIMB(0xebf1ac9fdfe91433),CNST_LIMB(0x24ac7b336de0c5)), + P(1789,CNST_LIMB(0xfafdda8237cec655),CNST_LIMB(0x24a1fc478c60bb)), + P(1801,CNST_LIMB(0xdce3ff6e71ffb739),CNST_LIMB(0x2463801231c009)), + P(1811,CNST_LIMB(0xbed5737d6286db1b),CNST_LIMB(0x24300fd506ed33)), + P(1823,CNST_LIMB(0xe479e431fe08b4df),CNST_LIMB(0x23f314a494da81)), + P(1831,CNST_LIMB(0x9dd9b0dd7742f897),CNST_LIMB(0x23cadedd2fad3a)), + P(1847,CNST_LIMB(0x8f09d7402c5a5e87),CNST_LIMB(0x237b7ed2664a03)), + P(1861,CNST_LIMB(0x9216d5c4d958738d),CNST_LIMB(0x23372967dbaf1d)), + P(1867,CNST_LIMB(0xb3139ba11d34ca63),CNST_LIMB(0x231a308a371f20)), + P(1871,CNST_LIMB(0x47d54f7ed644afaf),CNST_LIMB(0x2306fa63e1e600)), + P(1873,CNST_LIMB(0x92a81d85cf11a1b1),CNST_LIMB(0x22fd6731575684)), + P(1877,CNST_LIMB(0x754b26533253bdfd),CNST_LIMB(0x22ea507805749c)), + P(1879,CNST_LIMB(0xbbe0efc980bfd467),CNST_LIMB(0x22e0cce8b3d720)), + P(1889,CNST_LIMB(0xc0d8d594f024dca1),CNST_LIMB(0x22b1887857d161)), + P(1901,CNST_LIMB(0x8238d43bcaac1a65),CNST_LIMB(0x227977fcc49cc0)), + P(1907,CNST_LIMB(0x27779c1fae6175bb),CNST_LIMB(0x225db37b5e5f4f)), + P(1913,CNST_LIMB(0xa746ca9af708b2c9),CNST_LIMB(0x22421b91322ed6)), + P(1931,CNST_LIMB(0x93f3cd9f389be823),CNST_LIMB(0x21f05b35f52102)), + P(1933,CNST_LIMB(0x5cb4a4c04c489345),CNST_LIMB(0x21e75de5c70d60)), + P(1949,CNST_LIMB(0xbf6047743e85b6b5),CNST_LIMB(0x21a01d6c19be96)), + P(1951,CNST_LIMB(0x61c147831563545f),CNST_LIMB(0x21974a6615c81a)), + P(1973,CNST_LIMB(0xedb47c0ae62dee9d),CNST_LIMB(0x213767697cf36a)), + P(1979,CNST_LIMB(0xa3824386673a573),CNST_LIMB(0x211d9f7fad35f1)), + P(1987,CNST_LIMB(0xa4a77d19e575a0eb),CNST_LIMB(0x20fb7d9dd36c18)), + P(1993,CNST_LIMB(0xa2bee045e066c279),CNST_LIMB(0x20e2123d661e0e)), + P(1997,CNST_LIMB(0xc23618de8ab43d05),CNST_LIMB(0x20d135b66ae990)), + P(1999,CNST_LIMB(0x266b515216cb9f2f),CNST_LIMB(0x20c8cded4d7a8e)), + P(2003,CNST_LIMB(0xe279edd9e9c2e85b),CNST_LIMB(0x20b80b3f43ddbf)), + P(2011,CNST_LIMB(0xd0c591c221dc9c53),CNST_LIMB(0x2096b9180f46a6)), + P(2017,CNST_LIMB(0x6da8ee9c9ee7c21),CNST_LIMB(0x207de7e28de5da)), + P(2027,CNST_LIMB(0x9dfebcaf4c27e8c3),CNST_LIMB(0x2054dec8cf1fb3)), + P(2029,CNST_LIMB(0x49aeff9f19dd6de5),CNST_LIMB(0x204cb630b3aab5)), + P(2039,CNST_LIMB(0x86976a57a296e9c7),CNST_LIMB(0x202428adc37beb)), + P(2053,CNST_LIMB(0xa3b9abf4872b84cd),CNST_LIMB(0x1fec0c7834def4)), + P(2063,CNST_LIMB(0x34fca6483895e6ef),CNST_LIMB(0x1fc46fae98a1d0)), + P(2069,CNST_LIMB(0x34b5a333988f873d),CNST_LIMB(0x1facda430ff619)), + P(2081,CNST_LIMB(0xd9dd4f19b5f17be1),CNST_LIMB(0x1f7e17dd8e15e5)), + P(2083,CNST_LIMB(0xb935b507fd0ce78b),CNST_LIMB(0x1f765a3556a4ee)), + P(2087,CNST_LIMB(0xb450f5540660e797),CNST_LIMB(0x1f66ea49d802f1)), + P(2089,CNST_LIMB(0x63ff82831ffc1419),CNST_LIMB(0x1f5f3800faf9c0)), + P(2099,CNST_LIMB(0x8992f718c22a32fb),CNST_LIMB(0x1f38f4e6c0f1f9)), + P(2111,CNST_LIMB(0x5f3253ad0d37e7bf),CNST_LIMB(0x1f0b8546752578)), + P(2113,CNST_LIMB(0x7c0ffe0fc007c1),CNST_LIMB(0x1f03ff83f001f0)), + P(2129,CNST_LIMB(0x4d8ebadc0c0640b1),CNST_LIMB(0x1ec853b0a3883c)), + P(2131,CNST_LIMB(0xe2729af831037bdb),CNST_LIMB(0x1ec0ee573723eb)), + P(2137,CNST_LIMB(0xb8f64bf30feebfe9),CNST_LIMB(0x1eaad38e6f6894)), + P(2141,CNST_LIMB(0xda93124b544c0bf5),CNST_LIMB(0x1e9c28a765fe53)), + P(2143,CNST_LIMB(0x9cf7ff0b593c539f),CNST_LIMB(0x1e94d8758c2003)), + P(2153,CNST_LIMB(0xd6bd8861fa0e07d9),CNST_LIMB(0x1e707ba8f65e68)), + P(2161,CNST_LIMB(0x5cfe75c0bd8ab891),CNST_LIMB(0x1e53a2a68f574e)), + P(2179,CNST_LIMB(0x43e808757c2e862b),CNST_LIMB(0x1e1380a56b438d)), + P(2203,CNST_LIMB(0x90caa96d595c9d93),CNST_LIMB(0x1dbf9f513a3802)), + P(2207,CNST_LIMB(0x8fd550625d07135f),CNST_LIMB(0x1db1d1d58bc600)), + P(2213,CNST_LIMB(0x76b010a86e209f2d),CNST_LIMB(0x1d9d358f53de38)), + P(2221,CNST_LIMB(0xecc0426447769b25),CNST_LIMB(0x1d81e6df6165c7)), + P(2237,CNST_LIMB(0xe381339caabe3295),CNST_LIMB(0x1d4bdf7fd40e30)), + P(2239,CNST_LIMB(0xd1b190a2d0c7673f),CNST_LIMB(0x1d452c7a1c958d)), + P(2243,CNST_LIMB(0xc3bce3cf26b0e7eb),CNST_LIMB(0x1d37cf9b902659)), + P(2251,CNST_LIMB(0x5f87e76f56c61ce3),CNST_LIMB(0x1d1d3a5791e97b)), + P(2267,CNST_LIMB(0xc06c6857a124b353),CNST_LIMB(0x1ce89fe6b47416)), + P(2269,CNST_LIMB(0x38c040fcba630f75),CNST_LIMB(0x1ce219f3235071)), + P(2273,CNST_LIMB(0xd078bc4fbd533b21),CNST_LIMB(0x1cd516dcf92139)), + P(2281,CNST_LIMB(0xde8e15c5dd354f59),CNST_LIMB(0x1cbb33bd1c2b8b)), + P(2287,CNST_LIMB(0xca61d53d7414260f),CNST_LIMB(0x1ca7e7d2546688)), + P(2293,CNST_LIMB(0xb56bf5ba8eae635d),CNST_LIMB(0x1c94b5c1b3dbd3)), + P(2297,CNST_LIMB(0x44a72cb0fb6e3949),CNST_LIMB(0x1c87f7f9c241c1)), + P(2309,CNST_LIMB(0x879839a714f45bcd),CNST_LIMB(0x1c6202706c35a9)), + P(2311,CNST_LIMB(0x2a8994fde5314b7),CNST_LIMB(0x1c5bb8a9437632)), + P(2333,CNST_LIMB(0xb971920cf2b90135),CNST_LIMB(0x1c174343b4111e)), + P(2339,CNST_LIMB(0x8a8fd0b7df9a6e8b),CNST_LIMB(0x1c04d0d3e46b42)), + P(2341,CNST_LIMB(0xb31f9a84c1c6eaad),CNST_LIMB(0x1bfeb00fbf4308)), + P(2347,CNST_LIMB(0x92293b02823c6d83),CNST_LIMB(0x1bec5dce0b202d)), + P(2351,CNST_LIMB(0xeee77ff20fe5ddcf),CNST_LIMB(0x1be03444620037)), + P(2357,CNST_LIMB(0xe1ea0f6c496c11d),CNST_LIMB(0x1bce09c66f6fc3)), + P(2371,CNST_LIMB(0xfdf2d3d6f88ccb6b),CNST_LIMB(0x1ba40228d02b30)), + P(2377,CNST_LIMB(0xfa9d74a3457738f9),CNST_LIMB(0x1b9225b1cf8919)), + P(2381,CNST_LIMB(0xefc3ca3db71a5785),CNST_LIMB(0x1b864a2ff3f53f)), + P(2383,CNST_LIMB(0x8e2071718d0d6daf),CNST_LIMB(0x1b80604150e49b)), + P(2389,CNST_LIMB(0xbc0fdbfeb6cfabfd),CNST_LIMB(0x1b6eb1aaeaacf3)), + P(2393,CNST_LIMB(0x1eeab613e5e5aee9),CNST_LIMB(0x1b62f48da3c8cc)), + P(2399,CNST_LIMB(0x2d2388e90e9e929f),CNST_LIMB(0x1b516babe96092)), + P(2411,CNST_LIMB(0x81dbafba588ddb43),CNST_LIMB(0x1b2e9cef1e0c87)), + P(2417,CNST_LIMB(0x52eebc51c4799791),CNST_LIMB(0x1b1d56bedc849b)), + P(2423,CNST_LIMB(0x1c6bc4693b45a047),CNST_LIMB(0x1b0c267546aec0)), + P(2437,CNST_LIMB(0x6eee0974498874d),CNST_LIMB(0x1ae45f62024fa0)), + P(2441,CNST_LIMB(0xd85b7377a9953cb9),CNST_LIMB(0x1ad917631b5f54)), + P(2447,CNST_LIMB(0x4b6df412d4caf56f),CNST_LIMB(0x1ac83d18cb608f)), + P(2459,CNST_LIMB(0x6b8afbbb4a053493),CNST_LIMB(0x1aa6c7ad8c063f)), + P(2467,CNST_LIMB(0xcc5299c96ac7720b),CNST_LIMB(0x1a90a7b1228e2a)), + P(2473,CNST_LIMB(0xadce84b5c710aa99),CNST_LIMB(0x1a8027c03ba059)), + P(2477,CNST_LIMB(0x9d673f5aa3804225),CNST_LIMB(0x1a7533289deb89)), + P(2503,CNST_LIMB(0xe6541268efbce7f7),CNST_LIMB(0x1a2ed7ce16b49f)), + P(2521,CNST_LIMB(0xfcf41e76cf5be669),CNST_LIMB(0x19fefc0a279a73)), + P(2531,CNST_LIMB(0x5c3eb5dc31c383cb),CNST_LIMB(0x19e4b0cd873b5f)), + P(2539,CNST_LIMB(0x301832d11d8ad6c3),CNST_LIMB(0x19cfcdfd60e514)), + P(2543,CNST_LIMB(0x2e9c0942f1ce450f),CNST_LIMB(0x19c56932d66c85)), + P(2549,CNST_LIMB(0x97f3f2be37a39a5d),CNST_LIMB(0x19b5e1ab6fc7c2)), + P(2551,CNST_LIMB(0xe8b7d8a9654187c7),CNST_LIMB(0x19b0b8a62f2a73)), + P(2557,CNST_LIMB(0xb5d024d7da5b1b55),CNST_LIMB(0x19a149fc98942c)), + P(2579,CNST_LIMB(0xb8ba9d6e7ae3501b),CNST_LIMB(0x1969517ec25b85)), + P(2591,CNST_LIMB(0xf50865f71b90f1df),CNST_LIMB(0x194b3083360ba8)), + P(2593,CNST_LIMB(0x739c1682847df9e1),CNST_LIMB(0x194631f4bebdc1)), + P(2609,CNST_LIMB(0xc470a4d842b90ed1),CNST_LIMB(0x191e84127268fd)), + P(2617,CNST_LIMB(0x1fb1be11698cc409),CNST_LIMB(0x190adbb543984f)), + P(2621,CNST_LIMB(0xd8d5512a7cd35d15),CNST_LIMB(0x1901130bd18200)), + P(2633,CNST_LIMB(0xa5496821723e07f9),CNST_LIMB(0x18e3e6b889ac94)), + P(2647,CNST_LIMB(0xbcc8c6d7abaa8167),CNST_LIMB(0x18c233420e1ec1)), + P(2657,CNST_LIMB(0x52c396c95eb619a1),CNST_LIMB(0x18aa5872d92bd6)), + P(2659,CNST_LIMB(0x6eb7e380878ec74b),CNST_LIMB(0x18a5989945ccf9)), + P(2663,CNST_LIMB(0x3d5513b504537157),CNST_LIMB(0x189c1e60b57f60)), + P(2671,CNST_LIMB(0x314391f8862e948f),CNST_LIMB(0x18893fbc8690b9)), + P(2677,CNST_LIMB(0xdc0b17cfcd81f5dd),CNST_LIMB(0x187b2bb3e1041c)), + P(2683,CNST_LIMB(0x2f6bea3ec89044b3),CNST_LIMB(0x186d27c9cdcfb8)), + P(2687,CNST_LIMB(0xce13a05869f1b57f),CNST_LIMB(0x1863d8bf4f2c1c)), + P(2689,CNST_LIMB(0x7593474e8ace3581),CNST_LIMB(0x185f33e2ad7593)), + P(2693,CNST_LIMB(0x7fc329295a05e4d),CNST_LIMB(0x1855ef75973e13)), + P(2699,CNST_LIMB(0xb05377cba4908d23),CNST_LIMB(0x1848160153f134)), + P(2707,CNST_LIMB(0xe7b2131a628aa39b),CNST_LIMB(0x1835b72e6f0656)), + P(2711,CNST_LIMB(0x9031dbed7de01527),CNST_LIMB(0x182c922d83eb39)), + P(2713,CNST_LIMB(0x76844b1c670aa9a9),CNST_LIMB(0x18280243c0365a)), + P(2719,CNST_LIMB(0x6a03f4533b08915f),CNST_LIMB(0x181a5cd5898e73)), + P(2729,CNST_LIMB(0x1dbca579db0a3999),CNST_LIMB(0x1803c0961773aa)), + P(2731,CNST_LIMB(0x2ffe800bffa003),CNST_LIMB(0x17ff4005ffd001)), + P(2741,CNST_LIMB(0x478ab1a3e936139d),CNST_LIMB(0x17e8d670433edb)), + P(2749,CNST_LIMB(0x66e722bc4c5cc095),CNST_LIMB(0x17d7066cf4bb5d)), + P(2753,CNST_LIMB(0x7a8f63c717278541),CNST_LIMB(0x17ce285b806b1f)), + P(2767,CNST_LIMB(0xdf6eee24d292bc2f),CNST_LIMB(0x17af52cdf27e02)), + P(2777,CNST_LIMB(0x9fc20d17237dd569),CNST_LIMB(0x17997d47d01039)), + P(2789,CNST_LIMB(0xcdf9932356bda2ed),CNST_LIMB(0x177f7ec2c6d0ba)), + P(2791,CNST_LIMB(0x97b5e332e80f68d7),CNST_LIMB(0x177b2f3cd00756)), + P(2797,CNST_LIMB(0x46eee26fd875e2e5),CNST_LIMB(0x176e4a22f692a0)), + P(2801,CNST_LIMB(0x3548a8e65157a611),CNST_LIMB(0x1765b94271e11b)), + P(2803,CNST_LIMB(0xc288d03be9b71e3b),CNST_LIMB(0x1761732b044ae4)), + P(2819,CNST_LIMB(0x8151186db38937ab),CNST_LIMB(0x173f7a5300a2bc)), + P(2833,CNST_LIMB(0x7800b910895a45f1),CNST_LIMB(0x1722112b48be1f)), + P(2837,CNST_LIMB(0xaee0b024182eec3d),CNST_LIMB(0x1719b7a16eb843)), + P(2843,CNST_LIMB(0x96323eda173b5713),CNST_LIMB(0x170d3c99cc5052)), + P(2851,CNST_LIMB(0xed0dbd03ae77c8b),CNST_LIMB(0x16fcad7aed3bb6)), + P(2857,CNST_LIMB(0xf73800b7828dc119),CNST_LIMB(0x16f051b8231ffd)), + P(2861,CNST_LIMB(0x1b61715ec22b7ca5),CNST_LIMB(0x16e81beae20643)), + P(2879,CNST_LIMB(0xa8533a991ead64bf),CNST_LIMB(0x16c3721584c1d8)), + P(2887,CNST_LIMB(0x7f6c7290e46c2e77),CNST_LIMB(0x16b34c2ba09663)), + P(2897,CNST_LIMB(0x6325e8d907b01db1),CNST_LIMB(0x169f3ce292ddcd)), + P(2903,CNST_LIMB(0x28909f70152a1067),CNST_LIMB(0x169344b2220a0d)), + P(2909,CNST_LIMB(0xea7077af0997a0f5),CNST_LIMB(0x1687592593c1b1)), + P(2917,CNST_LIMB(0x7e605cad10c32e6d),CNST_LIMB(0x167787f1418ec9)), + P(2927,CNST_LIMB(0x471b33570635b38f),CNST_LIMB(0x1663e190395ff2)), + P(2939,CNST_LIMB(0xab559fa997a61bb3),CNST_LIMB(0x164c7a4b6eb5b3)), + P(2953,CNST_LIMB(0xad4bdae562bddab9),CNST_LIMB(0x16316a061182fd)), + P(2957,CNST_LIMB(0x55e1b2f2ed62f45),CNST_LIMB(0x1629ba914584e4)), + P(2963,CNST_LIMB(0x3cd328b1a2dca9b),CNST_LIMB(0x161e3d57de21b2)), + P(2969,CNST_LIMB(0xd28f4e08733218a9),CNST_LIMB(0x1612cc01b977f0)), + P(2971,CNST_LIMB(0xb6800b077f186293),CNST_LIMB(0x160efe30c525ff)), + P(2999,CNST_LIMB(0x6fbd138c3fd9c207),CNST_LIMB(0x15da45249ec5de)), + P(3001,CNST_LIMB(0xb117ccd12ae88a89),CNST_LIMB(0x15d68ab4acff92)), + P(3011,CNST_LIMB(0x2f1a1a044046bceb),CNST_LIMB(0x15c3f989d1eb15)), + P(3019,CNST_LIMB(0x548aba0b060541e3),CNST_LIMB(0x15b535ad11b8f0)), + P(3023,CNST_LIMB(0xcf4e808cea111b2f),CNST_LIMB(0x15addb3f424ec1)), + P(3037,CNST_LIMB(0xdbec1b4fa855a475),CNST_LIMB(0x159445cb91be6b)), + P(3041,CNST_LIMB(0xe3f794eb600d7821),CNST_LIMB(0x158d0199771e63)), + P(3049,CNST_LIMB(0x34fae0d9a11f7c59),CNST_LIMB(0x157e87d9b69e04)), + P(3061,CNST_LIMB(0xf006b0ccbbac085d),CNST_LIMB(0x1568f58bc01ac3)), + P(3067,CNST_LIMB(0x3f45076dc3114733),CNST_LIMB(0x155e3c993fda9b)), + P(3079,CNST_LIMB(0xeef49bfa58a1a1b7),CNST_LIMB(0x1548eacc5e1e6e)), + P(3083,CNST_LIMB(0x12c4218bea691fa3),CNST_LIMB(0x1541d8f91ba6a7)), + P(3089,CNST_LIMB(0xbc7504e3bd5e64f1),CNST_LIMB(0x153747060cc340)), + P(3109,CNST_LIMB(0x4ee21c292bb92fad),CNST_LIMB(0x1514569f93f7c4)), + P(3119,CNST_LIMB(0x34338b7327a4bacf),CNST_LIMB(0x150309705d3d79)), + P(3121,CNST_LIMB(0x3fe5c0833d6fccd1),CNST_LIMB(0x14ff97020cf5bf)), + P(3137,CNST_LIMB(0xb1e70743535203c1),CNST_LIMB(0x14e42c114cf47e)), + P(3163,CNST_LIMB(0xefbb5dcdfb4e43d3),CNST_LIMB(0x14b835bdcb6447)), + P(3167,CNST_LIMB(0xca68467ca5394f9f),CNST_LIMB(0x14b182b53a9ab7)), + P(3169,CNST_LIMB(0x8c51c081408b97a1),CNST_LIMB(0x14ae2ad094a3d3)), + P(3181,CNST_LIMB(0x3275a899dfa5dd65),CNST_LIMB(0x149a320ea59f96)), + P(3187,CNST_LIMB(0x9e674cb62e1b78bb),CNST_LIMB(0x1490441de1a2fb)), + P(3191,CNST_LIMB(0xa37ff5bb2a998d47),CNST_LIMB(0x1489aacce57200)), + P(3203,CNST_LIMB(0x792a999db131a22b),CNST_LIMB(0x1475f82ad6ff99)), + P(3209,CNST_LIMB(0x1b48841bc30d29b9),CNST_LIMB(0x146c2cfe53204f)), + P(3217,CNST_LIMB(0xf06721d2011d3471),CNST_LIMB(0x145f2ca490d4a1)), + P(3221,CNST_LIMB(0x93fd2386dff85ebd),CNST_LIMB(0x1458b2aae0ec87)), + P(3229,CNST_LIMB(0x4ce72f54c07ed9b5),CNST_LIMB(0x144bcb0a3a3150)), + P(3251,CNST_LIMB(0xd6d0fd3e71dd827b),CNST_LIMB(0x1428a1e65441d4)), + P(3253,CNST_LIMB(0x856405fb1eed819d),CNST_LIMB(0x142575a6c210d7)), + P(3257,CNST_LIMB(0x8ea8aceb7c443989),CNST_LIMB(0x141f2025ba5c46)), + P(3259,CNST_LIMB(0x34a13026f62e5873),CNST_LIMB(0x141bf6e35420fd)), + P(3271,CNST_LIMB(0x1eea0208ec0af4f7),CNST_LIMB(0x1409141d1d313a)), + P(3299,CNST_LIMB(0x63679853cea598cb),CNST_LIMB(0x13dd8bc19c3513)), + P(3301,CNST_LIMB(0xc30b3ebd61f2d0ed),CNST_LIMB(0x13da76f714dc8f)), + P(3307,CNST_LIMB(0x7eb9037bc7f43bc3),CNST_LIMB(0x13d13e50f8f49e)), + P(3313,CNST_LIMB(0xa583e6f6ce016411),CNST_LIMB(0x13c80e37ca3819)), + P(3319,CNST_LIMB(0xf1938d895f1a74c7),CNST_LIMB(0x13bee69fa99ccf)), + P(3323,CNST_LIMB(0x80cf1491c1e81e33),CNST_LIMB(0x13b8d0ede55835)), + P(3329,CNST_LIMB(0x3c0f12886ba8f301),CNST_LIMB(0x13afb7680bb054)), + P(3331,CNST_LIMB(0xe4b786e0dfcc5ab),CNST_LIMB(0x13acb0c3841c96)), + P(3343,CNST_LIMB(0x672684c93f2d41ef),CNST_LIMB(0x139a9c5f434fde)), + P(3347,CNST_LIMB(0xe00757badb35c51b),CNST_LIMB(0x13949cf33a0d9d)), + P(3359,CNST_LIMB(0xd6d84afe66472edf),CNST_LIMB(0x1382b4a00c31b0)), + P(3361,CNST_LIMB(0xfbbc0eedcbbfb6e1),CNST_LIMB(0x137fbbc0eedcbb)), + P(3371,CNST_LIMB(0x250f43aa08a84983),CNST_LIMB(0x1370ecf047b069)), + P(3373,CNST_LIMB(0x4400e927b1acaa5),CNST_LIMB(0x136df9790e3155)), + P(3389,CNST_LIMB(0x56572be34b9d3215),CNST_LIMB(0x13567dd8defd5b)), + P(3391,CNST_LIMB(0x87964ef7781c62bf),CNST_LIMB(0x13539261fdbc34)), + P(3407,CNST_LIMB(0x29ed84051c06e9af),CNST_LIMB(0x133c564292d28a)), + P(3413,CNST_LIMB(0xb00acd11ed3f87fd),CNST_LIMB(0x1333ae178d6388)), + P(3433,CNST_LIMB(0x6307881744152d9),CNST_LIMB(0x13170ad00d1fd7)), + P(3449,CNST_LIMB(0x7a786459f5c1ccc9),CNST_LIMB(0x13005f01db0947)), + P(3457,CNST_LIMB(0x1308125d74563281),CNST_LIMB(0x12f51d40342210)), + P(3461,CNST_LIMB(0x395310a480b3e34d),CNST_LIMB(0x12ef815e4ed950)), + P(3463,CNST_LIMB(0x35985baa8b202837),CNST_LIMB(0x12ecb4abccd827)), + P(3467,CNST_LIMB(0x96304a6e052b3223),CNST_LIMB(0x12e71dc1d3d820)), + P(3469,CNST_LIMB(0xbd8265fc9af8fd45),CNST_LIMB(0x12e45389a16495)), + P(3491,CNST_LIMB(0x1b6d0b383ec58e0b),CNST_LIMB(0x12c5d9226476cc)), + P(3499,CNST_LIMB(0xc21a7c3b68b28503),CNST_LIMB(0x12badc391156fd)), + P(3511,CNST_LIMB(0x236fa180fbfd6007),CNST_LIMB(0x12aa78e412f522)), + P(3517,CNST_LIMB(0xc42accd440ed9595),CNST_LIMB(0x12a251f5f47fd1)), + P(3527,CNST_LIMB(0x7acf7128236ba3f7),CNST_LIMB(0x1294cb85c53534)), + P(3529,CNST_LIMB(0xf909367a987b9c79),CNST_LIMB(0x12921963beb65e)), + P(3533,CNST_LIMB(0xb64efb252bfba705),CNST_LIMB(0x128cb777c69ca8)), + P(3539,CNST_LIMB(0x980d4f5a7e4cd25b),CNST_LIMB(0x1284aa6cf07294)), + P(3541,CNST_LIMB(0xe1ecc4ef27b0c37d),CNST_LIMB(0x1281fcf6ac7f87)), + P(3547,CNST_LIMB(0x9111aebb81d72653),CNST_LIMB(0x1279f937367db9)), + P(3557,CNST_LIMB(0x8951f985cb2c67ed),CNST_LIMB(0x126cad0488be94)), + P(3559,CNST_LIMB(0xc439d4fc54e0b5d7),CNST_LIMB(0x126a06794646a2)), + P(3571,CNST_LIMB(0xe857bf31896d533b),CNST_LIMB(0x125a2f2bcd3e95)), + P(3581,CNST_LIMB(0xb614bb4cb5023755),CNST_LIMB(0x124d108389e6b1)), + P(3583,CNST_LIMB(0x938a89e5473bf1ff),CNST_LIMB(0x124a73083771ac)), + P(3593,CNST_LIMB(0xeac481aca34de039),CNST_LIMB(0x123d6acda0620a)), + P(3607,CNST_LIMB(0x14b961badf4809a7),CNST_LIMB(0x122b4b2917eafd)), + P(3613,CNST_LIMB(0x76784fecba352435),CNST_LIMB(0x122391bfce1e2f)), + P(3617,CNST_LIMB(0xefa689bb58aef5e1),CNST_LIMB(0x121e6f1ea579f2)), + P(3623,CNST_LIMB(0xb2b2c4db9c3a8197),CNST_LIMB(0x1216c09e471568)), + P(3631,CNST_LIMB(0x2503bc992279f8cf),CNST_LIMB(0x120c8cb9d93909)), + P(3637,CNST_LIMB(0xd2ab9aec5ca1541d),CNST_LIMB(0x1204ed58e64ef9)), + P(3643,CNST_LIMB(0x3e78ba1460f99af3),CNST_LIMB(0x11fd546578f00c)), + P(3659,CNST_LIMB(0xa01426572cfcb63),CNST_LIMB(0x11e9310b8b4c9c)), + P(3671,CNST_LIMB(0xbea857968f3cbd67),CNST_LIMB(0x11da3405db9911)), + P(3673,CNST_LIMB(0x78db213eefe659e9),CNST_LIMB(0x11d7b6f4eb055d)), + P(3677,CNST_LIMB(0x963e8541a74d35f5),CNST_LIMB(0x11d2bee748c145)), + P(3691,CNST_LIMB(0x9e22d152776f2e43),CNST_LIMB(0x11c1706ddce7a7)), + P(3697,CNST_LIMB(0x5d10d39d1e1f291),CNST_LIMB(0x11ba0fed2a4f14)), + P(3701,CNST_LIMB(0x374468dccaced1dd),CNST_LIMB(0x11b528538ed64a)), + P(3709,CNST_LIMB(0x8d145c7d110c5ad5),CNST_LIMB(0x11ab61404242ac)), + P(3719,CNST_LIMB(0x3251a39f5acb5737),CNST_LIMB(0x119f378ce81d2f)), + P(3727,CNST_LIMB(0xa66e50171443506f),CNST_LIMB(0x1195889ece79da)), + P(3733,CNST_LIMB(0x124f69ad91dd4cbd),CNST_LIMB(0x118e4c65387077)), + P(3739,CNST_LIMB(0xec24f8f2a61a2793),CNST_LIMB(0x1187161d70e725)), + P(3761,CNST_LIMB(0xb472148e656b7a51),CNST_LIMB(0x116cd6d1c85239)), + P(3767,CNST_LIMB(0xadf9570e1142f07),CNST_LIMB(0x1165bbe7ce86b1)), + P(3769,CNST_LIMB(0x89bf33b065119789),CNST_LIMB(0x11635ee344ce36)), + P(3779,CNST_LIMB(0x8f0149803cb291eb),CNST_LIMB(0x11579767b6d679)), + P(3793,CNST_LIMB(0x8334b63afd190a31),CNST_LIMB(0x114734711e2b54)), + P(3797,CNST_LIMB(0x920908d50d6aba7d),CNST_LIMB(0x11428b90147f05)), + P(3803,CNST_LIMB(0x57d8b018c5a33d53),CNST_LIMB(0x113b92f3021636)), + P(3821,CNST_LIMB(0xea1773092dc27ee5),CNST_LIMB(0x1126cabc886884)), + P(3823,CNST_LIMB(0xcae5f38b7bf2e00f),CNST_LIMB(0x11247eb1b85976)), + P(3833,CNST_LIMB(0x2bd02df34f695349),CNST_LIMB(0x11190bb01efd65)), + P(3847,CNST_LIMB(0xddfecd5be62e2eb7),CNST_LIMB(0x11091de0fd679c)), + P(3851,CNST_LIMB(0xdbf849ebec96c4a3),CNST_LIMB(0x1104963c7e4e0b)), + P(3853,CNST_LIMB(0xda31d4d0187357c5),CNST_LIMB(0x110253516420b0)), + P(3863,CNST_LIMB(0xe34e21cc2d5418a7),CNST_LIMB(0x10f70db7c41797)), + P(3877,CNST_LIMB(0x68ca5137a9e574ad),CNST_LIMB(0x10e75ee2bf9ecd)), + P(3881,CNST_LIMB(0x3eaa0d0f804bfd19),CNST_LIMB(0x10e2e91c6e0676)), + P(3889,CNST_LIMB(0x554fb753cc20e9d1),CNST_LIMB(0x10da049b9d428d)), + P(3907,CNST_LIMB(0x797afcca1300756b),CNST_LIMB(0x10c6248fe3b1a2)), + P(3911,CNST_LIMB(0x8b8d950b52eeea77),CNST_LIMB(0x10c1c03ed690eb)), + P(3917,CNST_LIMB(0xfb6cd166acabc185),CNST_LIMB(0x10bb2e1379e3a2)), + P(3919,CNST_LIMB(0x4eb6c5ed9437a7af),CNST_LIMB(0x10b8fe7f61228e)), + P(3923,CNST_LIMB(0xd1eddbd91b790cdb),CNST_LIMB(0x10b4a10d60a4f7)), + P(3929,CNST_LIMB(0x93d714ea4d8948e9),CNST_LIMB(0x10ae192681ec0f)), + P(3931,CNST_LIMB(0x3ca13ed8145188d3),CNST_LIMB(0x10abecfbe5b0ae)), + P(3943,CNST_LIMB(0x829086016da89c57),CNST_LIMB(0x109eefd568b96d)), + P(3947,CNST_LIMB(0xd7da1f432124a543),CNST_LIMB(0x109a9ff178b40c)), + P(3967,CNST_LIMB(0x7ead5581632fb07f),CNST_LIMB(0x108531e22f9ff9)), + P(3989,CNST_LIMB(0x35443837f63ec3bd),CNST_LIMB(0x106ddec1af4417)), + P(4001,CNST_LIMB(0x89e2b200e5519461),CNST_LIMB(0x10614174a4911d)), + P(4003,CNST_LIMB(0xe9ae44f0b7289c0b),CNST_LIMB(0x105f291f0448e7)), + P(4007,CNST_LIMB(0x94387a277b9fa817),CNST_LIMB(0x105afa0ef32891)), + P(4013,CNST_LIMB(0xc84f1a58abfc2c25),CNST_LIMB(0x1054b777bd2530)), + P(4019,CNST_LIMB(0x71101d8e3c83377b),CNST_LIMB(0x104e79a97fb69e)), + P(4021,CNST_LIMB(0xc024abe5c50ba69d),CNST_LIMB(0x104c661eafd845)), + P(4027,CNST_LIMB(0x15de4eb365a65d73),CNST_LIMB(0x10462ea939c933)), + P(4049,CNST_LIMB(0x9ed28a76bcca931),CNST_LIMB(0x102f8baa442836)), + P(4051,CNST_LIMB(0x816bffbf4a00205b),CNST_LIMB(0x102d7ff7e94004)), + P(4057,CNST_LIMB(0x1f5c71543d558069),CNST_LIMB(0x10275ff9f13c02)), + P(4073,CNST_LIMB(0xf25c64d0ec53b859),CNST_LIMB(0x1017213fcbb4d3)), + P(4079,CNST_LIMB(0x96c02c2ef1e0ff0f),CNST_LIMB(0x101112234579d1)), + P(4091,CNST_LIMB(0x19a804816870a333),CNST_LIMB(0x100501907d271c)), + P(4093,CNST_LIMB(0x6de49add0971c555),CNST_LIMB(0x100300901b0510)), + P(4099,CNST_LIMB(0x528087e684c71aab),CNST_LIMB(0xffd008fe5050f)), + P(4111,CNST_LIMB(0xa94152c269bcdeef),CNST_LIMB(0xff10e02dd5084)), + P(4127,CNST_LIMB(0x379450a3c2b6bdf),CNST_LIMB(0xfe13b9c80c67f)), + P(4129,CNST_LIMB(0xd2cd38bafe5373e1),CNST_LIMB(0xfdf4384be37ad)), + P(4133,CNST_LIMB(0xc29df2bea71d8bad),CNST_LIMB(0xfdb54cbe8766e)), + P(4139,CNST_LIMB(0xc15862775f302e83),CNST_LIMB(0xfd5725ca6ff32)), + P(4153,CNST_LIMB(0x1016af2fe55ede09),CNST_LIMB(0xfc7c84684c6fb)), + P(4157,CNST_LIMB(0x3d26dbd9d1910715),CNST_LIMB(0xfc3e5265dbaa8)), + P(4159,CNST_LIMB(0x621dab2dfaf3dfbf),CNST_LIMB(0xfc1f44e0cae12)), + P(4177,CNST_LIMB(0xb6f1d7ac287338b1),CNST_LIMB(0xfb0921c50a7af)), + P(4201,CNST_LIMB(0x8d9e9f0c3f9e7fd9),CNST_LIMB(0xf999fd70cbc6b)), + P(4211,CNST_LIMB(0x60a93f8762e914bb),CNST_LIMB(0xf9023fd5339d0)), + P(4217,CNST_LIMB(0xb14371f247c159c9),CNST_LIMB(0xf8a78ce671475)), + P(4219,CNST_LIMB(0x6dd3b484471d4eb3),CNST_LIMB(0xf8895fee86574)), + P(4229,CNST_LIMB(0xcd172f4701c1684d),CNST_LIMB(0xf7f2ecb084b10)), + P(4231,CNST_LIMB(0x372e686ed8bb537),CNST_LIMB(0xf7d4eb7d10c29)), + P(4241,CNST_LIMB(0xbc07f7ca65c5b071),CNST_LIMB(0xf73f52277a3c3)), + P(4243,CNST_LIMB(0xab2b6170c3f78d9b),CNST_LIMB(0xf7217c598961c)), + P(4253,CNST_LIMB(0xf3d74f461fe6f5b5),CNST_LIMB(0xf68cbb1448f42)), + P(4259,CNST_LIMB(0xdbc13f4b31f3230b),CNST_LIMB(0xf633d0276e4c5)), + P(4261,CNST_LIMB(0xd1420716e3f1572d),CNST_LIMB(0xf6163ac20ec79)), + P(4271,CNST_LIMB(0xd5be2fd4d805464f),CNST_LIMB(0xf582ba2bc16c6)), + P(4273,CNST_LIMB(0xc68b97c136943851),CNST_LIMB(0xf5654f43290a0)), + P(4283,CNST_LIMB(0x9e27918af7cfb473),CNST_LIMB(0xf4d2a23810bc6)), + P(4289,CNST_LIMB(0x5ec8ab6c36ac7f41),CNST_LIMB(0xf47af4d6a2f27)), + P(4297,CNST_LIMB(0x964076331dd90979),CNST_LIMB(0xf4066f2b6e652)), + P(4327,CNST_LIMB(0x30198eff77b002d7),CNST_LIMB(0xf2555048e3a92)), + P(4337,CNST_LIMB(0x3af7cb9583ece011),CNST_LIMB(0xf1c64588a5bf6)), + P(4339,CNST_LIMB(0x34ce06f643d9883b),CNST_LIMB(0xf1a9be09cb411)), + P(4349,CNST_LIMB(0x79f767e528708c55),CNST_LIMB(0xf11b7d5259d39)), + P(4357,CNST_LIMB(0x185332d2ef2313cd),CNST_LIMB(0xf0aa284e7f802)), + P(4363,CNST_LIMB(0x43b611b84c8332a3),CNST_LIMB(0xf0556e5e3b7f2)), + P(4373,CNST_LIMB(0xc2e215e4f43bb63d),CNST_LIMB(0xefc8bcbc808e5)), + P(4391,CNST_LIMB(0xf94b9dd22ce44e97),CNST_LIMB(0xeecd1a690efbb)), + P(4397,CNST_LIMB(0xd895834a1db166a5),CNST_LIMB(0xee79aed6d65f2)), + P(4409,CNST_LIMB(0x347d2f16d19b8d09),CNST_LIMB(0xedd386114d83a)), + P(4421,CNST_LIMB(0x1b54d4dc45b7d98d),CNST_LIMB(0xed2e44366e5e2)), + P(4423,CNST_LIMB(0x117ac30d9a044877),CNST_LIMB(0xed12cf8e17f64)), + P(4441,CNST_LIMB(0xe10b78a67a526e9),CNST_LIMB(0xec1cd284b2b2d)), + P(4447,CNST_LIMB(0x92da68a818688a9f),CNST_LIMB(0xebcb44cadda1e)), + P(4451,CNST_LIMB(0xcf2b6c87f741f84b),CNST_LIMB(0xeb9505943771d)), + P(4457,CNST_LIMB(0xd264f9bd41e18ed9),CNST_LIMB(0xeb43d57efeadc)), + P(4463,CNST_LIMB(0x733cbeaa97166d8f),CNST_LIMB(0xeaf2dd4c00b03)), + P(4481,CNST_LIMB(0xc9f475b021d22e81),CNST_LIMB(0xea0141c1ba6a6)), + P(4483,CNST_LIMB(0x731f76f2ec4c852b),CNST_LIMB(0xe9e68805f05a7)), + P(4493,CNST_LIMB(0xdaf6f0c978f69945),CNST_LIMB(0xe96142b87e431)), + P(4507,CNST_LIMB(0x749c8ad20c61ec93),CNST_LIMB(0xe8a7acd811b8c)), + P(4513,CNST_LIMB(0x9307ff8bd3c1261),CNST_LIMB(0xe8587db3e001d)), + P(4517,CNST_LIMB(0x334a69fb5a486e2d),CNST_LIMB(0xe823d186d44dc)), + P(4519,CNST_LIMB(0x1f36c7bf31578617),CNST_LIMB(0xe8098463ee194)), + P(4523,CNST_LIMB(0x31ebbcc279ea6103),CNST_LIMB(0xe7d4fbfb3ee1d)), + P(4547,CNST_LIMB(0x42e2aad119f466eb),CNST_LIMB(0xe69bba6981ffa)), + P(4549,CNST_LIMB(0x106ec05a0ab1450d),CNST_LIMB(0xe681c5cf7d707)), + P(4561,CNST_LIMB(0xb1b38db92a99e731),CNST_LIMB(0xe5e684930e334)), + P(4567,CNST_LIMB(0x784ae377e67071e7),CNST_LIMB(0xe5993247dc92d)), + P(4583,CNST_LIMB(0x3e9e1471ba6671d7),CNST_LIMB(0xe4cbfee201016)), + P(4591,CNST_LIMB(0x82c29b59d4d73d0f),CNST_LIMB(0xe465ee7daf979)), + P(4597,CNST_LIMB(0xc23dd07128b5525d),CNST_LIMB(0xe4199de07af5c)), + P(4603,CNST_LIMB(0x4d4e5ce0e9245133),CNST_LIMB(0xe3cd8031d4f40)), + P(4621,CNST_LIMB(0xc8fd1057c09f8cc5),CNST_LIMB(0xe2ea56c157eb2)), + P(4637,CNST_LIMB(0xea1516e94f394035),CNST_LIMB(0xe221e5d4d3c73)), + P(4639,CNST_LIMB(0xb5e3319c564ee9df),CNST_LIMB(0xe208f09a841c7)), + P(4643,CNST_LIMB(0x126a69f90d822d8b),CNST_LIMB(0xe1d716a945161)), + P(4649,CNST_LIMB(0x501ed6348857aa19),CNST_LIMB(0xe18c78ec8fd4d)), + P(4651,CNST_LIMB(0xde344a324eee1c83),CNST_LIMB(0xe173a4a162079)), + P(4657,CNST_LIMB(0x1dd9690cb2c406d1),CNST_LIMB(0xe1294881bb494)), + P(4663,CNST_LIMB(0x8d6c5178d5e4387),CNST_LIMB(0xe0df1d5f24661)), + P(4673,CNST_LIMB(0x4cea4050a3e8fdc1),CNST_LIMB(0xe063ec7f50b1e)), + P(4679,CNST_LIMB(0xc114a06acc83f777),CNST_LIMB(0xe01a4313dc53d)), + P(4691,CNST_LIMB(0x20b060ebc0ea01db),CNST_LIMB(0xdf8780f47c350)), + P(4703,CNST_LIMB(0xfe50045acb78c99f),CNST_LIMB(0xdef57e8eb9666)), + P(4721,CNST_LIMB(0x291a68705b196e91),CNST_LIMB(0xde1bdf3f63d46)), + P(4723,CNST_LIMB(0xc1042c724273e2bb),CNST_LIMB(0xde03cb5099809)), + P(4729,CNST_LIMB(0x2cee680bb165b7c9),CNST_LIMB(0xddbbaecc84bc9)), + P(4733,CNST_LIMB(0xfd2ff9f12e0776d5),CNST_LIMB(0xdd8bb5ca73db6)), + P(4751,CNST_LIMB(0x166a5da63af2cc6f),CNST_LIMB(0xdcb4d529a6e07)), + P(4759,CNST_LIMB(0xedd16a5930408d27),CNST_LIMB(0xdc55da73dea60)), + P(4783,CNST_LIMB(0x2adf30c26528844f),CNST_LIMB(0xdb3ad2585011f)), + P(4787,CNST_LIMB(0x9a48d6572b5eec7b),CNST_LIMB(0xdb0becf636a79)), + P(4789,CNST_LIMB(0x6e8bf2877503cb9d),CNST_LIMB(0xdaf481ca6fefb)), + P(4793,CNST_LIMB(0xea27a191a7045389),CNST_LIMB(0xdac5ba7565dae)), + P(4799,CNST_LIMB(0x6eb091f34dd45d3f),CNST_LIMB(0xda7fb4e419d19)), + P(4801,CNST_LIMB(0xdc8a6cabb2937d41),CNST_LIMB(0xda6867a88d327)), + P(4813,CNST_LIMB(0xbc2f04f254922a05),CNST_LIMB(0xd9dd005f50b02)), + P(4817,CNST_LIMB(0x41431f4d6eb38631),CNST_LIMB(0xd9aeb01f763f7)), + P(4831,CNST_LIMB(0x7bd717435a08291f),CNST_LIMB(0xd90d31dd5804a)), + P(4861,CNST_LIMB(0x4232df9c91fc1a55),CNST_LIMB(0xd7b6453358f31)), + P(4871,CNST_LIMB(0xa4651e1d5382eab7),CNST_LIMB(0xd744e69d900e4)), + P(4877,CNST_LIMB(0x7cfb5409de4cf3c5),CNST_LIMB(0xd7011a317260e)), + P(4889,CNST_LIMB(0xcdd636fb068b9929),CNST_LIMB(0xd67a0126e7c19)), + P(4903,CNST_LIMB(0xee8f95e740462c97),CNST_LIMB(0xd5dd39e775bd7)), + P(4909,CNST_LIMB(0x490f97b3a758b4a5),CNST_LIMB(0xd59a4f2990168)), + P(4919,CNST_LIMB(0x641431563c441287),CNST_LIMB(0xd52b24cb6269d)), + P(4931,CNST_LIMB(0xb743dad3ec45916b),CNST_LIMB(0xd4a6571da4f04)), + P(4933,CNST_LIMB(0x7b188be8f55c878d),CNST_LIMB(0xd49044eac6581)), + P(4937,CNST_LIMB(0xd805648b2ca54ef9),CNST_LIMB(0xd4642e40d1129)), + P(4943,CNST_LIMB(0x76dbe6eef60123af),CNST_LIMB(0xd4222e81fe723)), + P(4951,CNST_LIMB(0x3711525e6a9e8867),CNST_LIMB(0xd3ca6e8c89f41)), + P(4957,CNST_LIMB(0x85c2215cb383d8f5),CNST_LIMB(0xd388ce29d4edc)), + P(4967,CNST_LIMB(0xe58f554c89825857),CNST_LIMB(0xd31bc7b7d8013)), + P(4969,CNST_LIMB(0x8fbd3b17c01dacd9),CNST_LIMB(0xd306071c13fd5)), + P(4973,CNST_LIMB(0x4c8c39dc7aedee65),CNST_LIMB(0xd2da935479b1a)), + P(4987,CNST_LIMB(0x653ac6dda86cd3b3),CNST_LIMB(0xd2430aa043597)), + P(4993,CNST_LIMB(0xd61c6791a9c2c81),CNST_LIMB(0xd2025bc6c7db7)), + P(4999,CNST_LIMB(0xb627a30090354237),CNST_LIMB(0xd1c1d4ad1732b)), + P(5003,CNST_LIMB(0x83a89a539c527c23),CNST_LIMB(0xd196e5f46f8c8)), + P(5009,CNST_LIMB(0x28c8c09330e90d71),CNST_LIMB(0xd156a0c9293e8)), + P(5011,CNST_LIMB(0xee1178d27b1f029b),CNST_LIMB(0xd1413d26e0aee)), + P(5021,CNST_LIMB(0xcecc740b37860ab5),CNST_LIMB(0xd0d68c6a4128f)), + P(5023,CNST_LIMB(0x79736fde910c485f),CNST_LIMB(0xd0c142eaf3837)), + P(5039,CNST_LIMB(0x6873d51f2487234f),CNST_LIMB(0xd01792ab9d70d)), + P(5051,CNST_LIMB(0x2a112180614fb973),CNST_LIMB(0xcf990317775bc)), + P(5059,CNST_LIMB(0xcb04cea98508f4eb),CNST_LIMB(0xcf44f8c38790a)), + P(5077,CNST_LIMB(0xc2fcd2c527e28d7d),CNST_LIMB(0xce88d96d10e45)), + P(5081,CNST_LIMB(0x980203ee10393c69),CNST_LIMB(0xce5f39b07e906)), + P(5087,CNST_LIMB(0x3fa90a1d7d75681f),CNST_LIMB(0xce20e98148847)), + P(5099,CNST_LIMB(0xdbf3bfefef217cc3),CNST_LIMB(0xcda4b9c30ccd7)), + P(5101,CNST_LIMB(0x66a17fd3087b41e5),CNST_LIMB(0xcd9015ae32495)), + P(5107,CNST_LIMB(0x962195d496fbbd3b),CNST_LIMB(0xcd524244aca36)), + P(5113,CNST_LIMB(0xc705a86155443e49),CNST_LIMB(0xcd14940099cf6)), + P(5119,CNST_LIMB(0x3f298ee0be6febff),CNST_LIMB(0xccd70ac089a07)), + P(5147,CNST_LIMB(0xaa99b084e62fa613),CNST_LIMB(0xcbb9c535c4371)), + P(5153,CNST_LIMB(0x1f000cb7d0b46fe1),CNST_LIMB(0xcb7d0b46fe0ff)), + P(5167,CNST_LIMB(0x9ed7858637c9b2cf),CNST_LIMB(0xcaefe5d7135f4)), + P(5171,CNST_LIMB(0x4d871aaf27c106fb),CNST_LIMB(0xcac7b5f00f0cd)), + P(5179,CNST_LIMB(0x2e6a467cdc75a4f3),CNST_LIMB(0xca7785ceddbea)), + P(5189,CNST_LIMB(0xe9d938fb696dde8d),CNST_LIMB(0xca13a2a86e1db)), + P(5197,CNST_LIMB(0x40ec71b0b1554485),CNST_LIMB(0xc9c4009753007)), + P(5209,CNST_LIMB(0x3aae12f861e5f3e9),CNST_LIMB(0xc94d02e64bfab)), + P(5227,CNST_LIMB(0xa97565873959f843),CNST_LIMB(0xc89b8c9c875ef)), + P(5231,CNST_LIMB(0xb5a960c09fbca8f),CNST_LIMB(0xc87447737277e)), + P(5233,CNST_LIMB(0x463fe3d268012c91),CNST_LIMB(0xc860aaa2514e3)), + P(5237,CNST_LIMB(0xe59a6bd5f5ee1bdd),CNST_LIMB(0xc8397c813f1b9)), + P(5261,CNST_LIMB(0x6542e84d7775ce45),CNST_LIMB(0xc74fa805d6d56)), + P(5273,CNST_LIMB(0x8b6eef58fd9effa9),CNST_LIMB(0xc6db8a1f5cdfe)), + P(5279,CNST_LIMB(0x58993dbb9f98075f),CNST_LIMB(0xc6a1add9e2398)), + P(5281,CNST_LIMB(0x2997955a810acf61),CNST_LIMB(0xc68e6be826648)), + P(5297,CNST_LIMB(0x76e3d2f5077db451),CNST_LIMB(0xc5f4e25fc9df0)), + P(5303,CNST_LIMB(0xb37c1d2867e30907),CNST_LIMB(0xc5bb8bf2ad1cd)), + P(5309,CNST_LIMB(0x53ce6e09bd8d8695),CNST_LIMB(0xc58256b316ced)), + P(5323,CNST_LIMB(0x39db291ea2a6b0e3),CNST_LIMB(0xc4fd5ad917b5b)), + P(5333,CNST_LIMB(0xddd265ab9c58847d),CNST_LIMB(0xc49ecb3ea4d7a)), + P(5347,CNST_LIMB(0x5beca8562dddd0cb),CNST_LIMB(0xc41b00b7d950a)), + P(5351,CNST_LIMB(0xb69031c153ddbed7),CNST_LIMB(0xc3f57990b87a1)), + P(5381,CNST_LIMB(0xd03c2271b42a6fcd),CNST_LIMB(0xc2ddcb31250f8)), + P(5387,CNST_LIMB(0xcd6fd19e63e40ea3),CNST_LIMB(0xc2a63b3651432)), + P(5393,CNST_LIMB(0xf7687aa8e4fd7bf1),CNST_LIMB(0xc26ecae1db72e)), + P(5399,CNST_LIMB(0x649dfda112a272a7),CNST_LIMB(0xc2377a18c051e)), + P(5407,CNST_LIMB(0xecf7866a56d526df),CNST_LIMB(0xc1ede9efcec29)), + P(5413,CNST_LIMB(0x72bbf1cfdaebfead),CNST_LIMB(0xc1b6e258d13a0)), + P(5417,CNST_LIMB(0x55f6a48df7055719),CNST_LIMB(0xc19243f5399bb)), + P(5419,CNST_LIMB(0x80060bffcfa00183),CNST_LIMB(0xc17ff9f400305)), + P(5431,CNST_LIMB(0x8a104f309919b087),CNST_LIMB(0xc112865703b94)), + P(5437,CNST_LIMB(0x98fa7db7652f6a15),CNST_LIMB(0xc0dbfaea33225)), + P(5441,CNST_LIMB(0x5d7d1b3df70f7ac1),CNST_LIMB(0xc0b7af12ddfb9)), + P(5443,CNST_LIMB(0x16ab7b5e04cc1f6b),CNST_LIMB(0xc0a58e464462c)), + P(5449,CNST_LIMB(0x78a5bfd2e5ececf9),CNST_LIMB(0xc06f40512eef2)), + P(5471,CNST_LIMB(0x6506392e171d869f),CNST_LIMB(0xbfa9275a2b247)), + P(5477,CNST_LIMB(0xc3fc12e221ef146d),CNST_LIMB(0xbf7367402cdf0)), + P(5479,CNST_LIMB(0xf8aa132822c33657),CNST_LIMB(0xbf61833f4f921)), + P(5483,CNST_LIMB(0x894496574f536f43),CNST_LIMB(0xbf3dc543a74a1)), + P(5501,CNST_LIMB(0x8b2546b08fb4cbd5),CNST_LIMB(0xbe9d9302a7115)), + P(5503,CNST_LIMB(0x43bbb561bd1aa7f),CNST_LIMB(0xbe8bd6e051e01)), + P(5507,CNST_LIMB(0x2412c7cc4ea7a12b),CNST_LIMB(0xbe6868804d5a6)), + P(5519,CNST_LIMB(0x6f0bd406dd71696f),CNST_LIMB(0xbdfe6c4359f0e)), + P(5521,CNST_LIMB(0xad475c6988d54b71),CNST_LIMB(0xbdeccdb0b5c3a)), + P(5527,CNST_LIMB(0xd812e5d48dbbba27),CNST_LIMB(0xbdb8058ee429a)), + P(5531,CNST_LIMB(0x22aaca437ba04893),CNST_LIMB(0xbd94e5c1b371f)), + P(5557,CNST_LIMB(0xdba6ff1fecd5f09d),CNST_LIMB(0xbcb1d293b1af3)), + P(5563,CNST_LIMB(0x13016d3396286773),CNST_LIMB(0xbc7db8db0c1a5)), + P(5569,CNST_LIMB(0xc746494631bcfa41),CNST_LIMB(0xbc49bbdfd2662)), + P(5573,CNST_LIMB(0xd14888565bf6a10d),CNST_LIMB(0xbc2723240f402)), + P(5581,CNST_LIMB(0xc002ef885f0adf05),CNST_LIMB(0xbbe217c2b7c13)), + P(5591,CNST_LIMB(0xe5a04da7fee6ade7),CNST_LIMB(0xbb8c10aab27b2)), + P(5623,CNST_LIMB(0xc114ce5468593bc7),CNST_LIMB(0xba7ad528a7e79)), + P(5639,CNST_LIMB(0xbb6747dd7f577b7),CNST_LIMB(0xb9f3611b48c5e)), + P(5641,CNST_LIMB(0x395ce5a20f285839),CNST_LIMB(0xb9e2806e5e7c4)), + P(5647,CNST_LIMB(0x6eee8be66e8618ef),CNST_LIMB(0xb9aff0c4913fe)), + P(5651,CNST_LIMB(0x52acf64297f1241b),CNST_LIMB(0xb98e4aedd581c)), + P(5653,CNST_LIMB(0x361dcc48a364093d),CNST_LIMB(0xb97d7c94b7dc2)), + P(5657,CNST_LIMB(0x342d6f475d72e629),CNST_LIMB(0xb95be902d9d9e)), + P(5659,CNST_LIMB(0x5e978bd46410d413),CNST_LIMB(0xb94b23c872b90)), + P(5669,CNST_LIMB(0xcc3433d75ba015ad),CNST_LIMB(0xb8f77714d15a1)), + P(5683,CNST_LIMB(0x1c83b7628458d4fb),CNST_LIMB(0xb882d0beff6a1)), + P(5689,CNST_LIMB(0xf9ca45637e38f809),CNST_LIMB(0xb850ff9852703)), + P(5693,CNST_LIMB(0xcbed792ffaf6b115),CNST_LIMB(0xb82fd86db8806)), + P(5701,CNST_LIMB(0x9abd961d8c0e8c8d),CNST_LIMB(0xb7edadd32f76c)), + P(5711,CNST_LIMB(0xe69572fa659340af),CNST_LIMB(0xb79b3b4df3b7b)), + P(5717,CNST_LIMB(0x9187e7483a6436fd),CNST_LIMB(0xb769e6d59833f)), + P(5737,CNST_LIMB(0x1e9c726993bed9d9),CNST_LIMB(0xb6c636b5141ff)), + P(5741,CNST_LIMB(0x243554db91976365),CNST_LIMB(0xb6a59ceae8801)), + P(5743,CNST_LIMB(0x4d06ff994c0088f),CNST_LIMB(0xb6955461e38f7)), + P(5749,CNST_LIMB(0x25b76abcb74889dd),CNST_LIMB(0xb6648c2dc6bc2)), + P(5779,CNST_LIMB(0x3a409642893c779b),CNST_LIMB(0xb572282260209)), + P(5783,CNST_LIMB(0x8f8f620d8bc0c927),CNST_LIMB(0xb552072bde889)), + P(5791,CNST_LIMB(0x6f9f196b3369855f),CNST_LIMB(0xb511e7552f9c4)), + P(5801,CNST_LIMB(0x92a522bb0638ed99),CNST_LIMB(0xb4c1ff34a5c0e)), + P(5807,CNST_LIMB(0x96270f1efdd7004f),CNST_LIMB(0xb4922f58d4aa2)), + P(5813,CNST_LIMB(0xb4844b380fdaa79d),CNST_LIMB(0xb46278c16b967)), + P(5821,CNST_LIMB(0x108936aa5f9c1495),CNST_LIMB(0xb42301cd99b49)), + P(5827,CNST_LIMB(0xb60f606f104c9eb),CNST_LIMB(0xb3f385dd77e4e)), + P(5839,CNST_LIMB(0xc663dfe8263b302f),CNST_LIMB(0xb394d8ef8f0f6)), + P(5843,CNST_LIMB(0xc91a280b9110b15b),CNST_LIMB(0xb375601507c14)), + P(5849,CNST_LIMB(0x904287118d10969),CNST_LIMB(0xb3463f76be376)), + P(5851,CNST_LIMB(0x160d36a5d31bf553),CNST_LIMB(0xb3368f6c4a07c)), + P(5857,CNST_LIMB(0xe84f5fda3c67ad21),CNST_LIMB(0xb3078fc1c25f0)), + P(5861,CNST_LIMB(0xbd85701f72d4b6ed),CNST_LIMB(0xb2e84854e93e5)), + P(5867,CNST_LIMB(0x4c50cf5924dee1c3),CNST_LIMB(0xb2b971aa909a4)), + P(5869,CNST_LIMB(0x2455aaf1633bb6e5),CNST_LIMB(0xb2a9da39d6bc8)), + P(5879,CNST_LIMB(0xd775b39f549b8ac7),CNST_LIMB(0xb25c0dc29a0fc)), + P(5881,CNST_LIMB(0x87fcdda7a252cb49),CNST_LIMB(0xb24c8698449a7)), + P(5897,CNST_LIMB(0x53df2e3bd254a739),CNST_LIMB(0xb1d0ae579aefe)), + P(5903,CNST_LIMB(0x8915e69623a5f7ef),CNST_LIMB(0xb1a2698ea2f9e)), + P(5923,CNST_LIMB(0x1ef24c80742dd08b),CNST_LIMB(0xb108dc4186078)), + P(5927,CNST_LIMB(0xb4d87aaa6fb1e897),CNST_LIMB(0xb0ea463b00212)), + P(5939,CNST_LIMB(0x788573e8b92dbbfb),CNST_LIMB(0xb08ec37007962)), + P(5953,CNST_LIMB(0x2527b137b0878c1),CNST_LIMB(0xb024778cc023c)), + P(5981,CNST_LIMB(0x1870a7c8dee9f4f5),CNST_LIMB(0xaf515df36a88e)), + P(5987,CNST_LIMB(0x39b99e40910a224b),CNST_LIMB(0xaf24635f6561e)), + P(6007,CNST_LIMB(0x45821c0abd4df247),CNST_LIMB(0xae8f1b92baeaf)), + P(6011,CNST_LIMB(0x10fe2b2f50e02fb3),CNST_LIMB(0xae715eee11f8e)), + P(6029,CNST_LIMB(0x5762b90c043f0345),CNST_LIMB(0xadec0b0a3bb36)), + P(6037,CNST_LIMB(0x82a67b9193b27bbd),CNST_LIMB(0xadb10aa4c956f)), + P(6043,CNST_LIMB(0xa6e914e28ec37693),CNST_LIMB(0xad84e49752245)), + P(6047,CNST_LIMB(0x835d9a4facaf445f),CNST_LIMB(0xad6782597f0c2)), + P(6053,CNST_LIMB(0x48def8175884f82d),CNST_LIMB(0xad3b81a0d72fe)), + P(6067,CNST_LIMB(0xae900e2d7c9a6f7b),CNST_LIMB(0xacd52beced79e)), + P(6073,CNST_LIMB(0x1c08431bdd18be89),CNST_LIMB(0xaca9755063254)), + P(6079,CNST_LIMB(0xb370a66d684fd83f),CNST_LIMB(0xac7dd4cafb12a)), + P(6089,CNST_LIMB(0xb4be33e18f93b279),CNST_LIMB(0xac354f80dca44)), + P(6091,CNST_LIMB(0x310c50872a7dd5e3),CNST_LIMB(0xac26d5c2b8ad2)), + P(6101,CNST_LIMB(0x447ab1281276697d),CNST_LIMB(0xabde997dabd3d)), + P(6113,CNST_LIMB(0xc2f122216b2a6c21),CNST_LIMB(0xab883aa1100a0)), + P(6121,CNST_LIMB(0xab99c8b5ae1c3059),CNST_LIMB(0xab4ed637f5a0b)), + P(6131,CNST_LIMB(0xb78e17a2227d593b),CNST_LIMB(0xab074e9febf52)), + P(6133,CNST_LIMB(0xabf97d03f7269c5d),CNST_LIMB(0xaaf90778c2039)), + P(6143,CNST_LIMB(0x867aefc9fdbfe7ff),CNST_LIMB(0xaab1c7684f034)), + P(6151,CNST_LIMB(0xf7f7ad182e47d5b7),CNST_LIMB(0xaa78f20ebbb3e)), + P(6163,CNST_LIMB(0x50dff95a9847721b),CNST_LIMB(0xaa23f8dafd4cc)), + P(6173,CNST_LIMB(0xe4cb8a0e83cb6a35),CNST_LIMB(0xa9dd69cad5934)), + P(6197,CNST_LIMB(0x8da72ecdf9247a1d),CNST_LIMB(0xa935004a07302)), + P(6199,CNST_LIMB(0xc5b04bfc87f31d87),CNST_LIMB(0xa9270690f3d14)), + P(6203,CNST_LIMB(0xe2dcf622ea2b00f3),CNST_LIMB(0xa90b1a0aa5d30)), + P(6211,CNST_LIMB(0xb9ce9f2e4972f46b),CNST_LIMB(0xa8d35c9d731e9)), + P(6217,CNST_LIMB(0x1ed785c911bf59f9),CNST_LIMB(0xa8a9a6a51f16c)), + P(6221,CNST_LIMB(0x4ddb8a4eed70e085),CNST_LIMB(0xa88de370f596b)), + P(6229,CNST_LIMB(0x81e93b4df68c24fd),CNST_LIMB(0xa856786adae36)), + P(6247,CNST_LIMB(0xee0d0812afcd8357),CNST_LIMB(0xa7da4c77d3161)), + P(6257,CNST_LIMB(0xf62e3ba72268a891),CNST_LIMB(0xa7959f863d4a1)), + P(6263,CNST_LIMB(0x3194d367c8154147),CNST_LIMB(0xa76c85e80c195)), + P(6269,CNST_LIMB(0xd096ede8e30c20d5),CNST_LIMB(0xa743806dc44c4)), + P(6271,CNST_LIMB(0xd68624d27b87a77f),CNST_LIMB(0xa735d866dfa0a)), + P(6277,CNST_LIMB(0xb728fcdc11c8204d),CNST_LIMB(0xa70cedb02531e)), + P(6287,CNST_LIMB(0x9d6b6038077e066f),CNST_LIMB(0xa6c8e842c770f)), + P(6299,CNST_LIMB(0xaa732d7a4a360d93),CNST_LIMB(0xa67791215dd74)), + P(6301,CNST_LIMB(0x36af98a423972db5),CNST_LIMB(0xa66a0a51d363d)), + P(6311,CNST_LIMB(0xc31d00da12940f17),CNST_LIMB(0xa626893011861)), + P(6317,CNST_LIMB(0xed85352107410b25),CNST_LIMB(0xa5fe22c55c089)), + P(6323,CNST_LIMB(0x829c85ee6db8567b),CNST_LIMB(0xa5d5cffb77275)), + P(6329,CNST_LIMB(0xef60258952cc6d89),CNST_LIMB(0xa5ad90c4186e5)), + P(6337,CNST_LIMB(0xcf28c2e0da787741),CNST_LIMB(0xa578057e7c2eb)), + P(6343,CNST_LIMB(0x57567d8494af28f7),CNST_LIMB(0xa54ff3bb10e91)), + P(6353,CNST_LIMB(0x2c7c98518f174031),CNST_LIMB(0xa50d5683edc94)), + P(6359,CNST_LIMB(0xb28b363a36825ae7),CNST_LIMB(0xa4e57854b3df4)), + P(6361,CNST_LIMB(0xed1ffeb64f9ae769),CNST_LIMB(0xa4d8328c4b800)), + P(6367,CNST_LIMB(0xcbbb0115e9b9a31f),CNST_LIMB(0xa4b06e01d97b3)), + P(6373,CNST_LIMB(0x8d3c5fecb7f9e4ed),CNST_LIMB(0xa488bca2c4449)), + P(6379,CNST_LIMB(0x816271698195cfc3),CNST_LIMB(0xa4611e6132ed5)), + P(6389,CNST_LIMB(0x9ac939d1c2b1d35d),CNST_LIMB(0xa41f40f39e646)), + P(6397,CNST_LIMB(0xdd9fb7017b0ec455),CNST_LIMB(0xa3eab5c3e44e9)), + P(6421,CNST_LIMB(0xc94cab1e57276e3d),CNST_LIMB(0xa34ddd50561e0)), + P(6427,CNST_LIMB(0x8b8806b117c79913),CNST_LIMB(0xa326d60e94186)), + P(6449,CNST_LIMB(0xa9e63292a3269fd1),CNST_LIMB(0xa2985a81ce614)), + P(6451,CNST_LIMB(0x76da5710f1e989fb),CNST_LIMB(0xa28b72e26f82e)), + P(6469,CNST_LIMB(0xdded6688d83a918d),CNST_LIMB(0xa217aa3479693)), + P(6473,CNST_LIMB(0x4e446b6a305428f9),CNST_LIMB(0xa1fe05c62df4b)), + P(6481,CNST_LIMB(0x4ddaca7a3696cfb1),CNST_LIMB(0xa1cad538aebf9)), + P(6491,CNST_LIMB(0x7eadc4eb87f26ed3),CNST_LIMB(0xa18b05f490083)), + P(6521,CNST_LIMB(0x76c13a0ff04c00c9),CNST_LIMB(0xa0ccc4c28fc31)), + P(6529,CNST_LIMB(0xcbf800504d2a2681),CNST_LIMB(0xa09a544d01ffe)), + P(6547,CNST_LIMB(0x731dada6c4fec9b),CNST_LIMB(0xa0294aa53e9a2)), + P(6551,CNST_LIMB(0xbcb52a664e63f627),CNST_LIMB(0xa01041a6aaed5)), + P(6553,CNST_LIMB(0xf1f9abda071c2aa9),CNST_LIMB(0xa003c01680870)), + P(6563,CNST_LIMB(0xf262ffa620ffe20b),CNST_LIMB(0x9fc5558a971c8)), + P(6569,CNST_LIMB(0x93774a3d57199a99),CNST_LIMB(0x9f9ff9c3c03e5)), + P(6571,CNST_LIMB(0xfb3541cd467a1903),CNST_LIMB(0x9f9389b864ab9)), + P(6577,CNST_LIMB(0x6828cab6b4fe8f51),CNST_LIMB(0x9f6e4534bdca8)), + P(6581,CNST_LIMB(0x12ac03e3d624cc9d),CNST_LIMB(0x9f557687235c2)), + P(6599,CNST_LIMB(0x6363bd1e9bb7d7f7),CNST_LIMB(0x9ee633c0391ab)), + P(6607,CNST_LIMB(0x334cfd676a484d2f),CNST_LIMB(0x9eb4f28e0bb39)), + P(6619,CNST_LIMB(0xd511acd86f143a53),CNST_LIMB(0x9e6b49e92e4bb)), + P(6637,CNST_LIMB(0x73fc2490e0062be5),CNST_LIMB(0x9dfd4ccbd0045)), + P(6653,CNST_LIMB(0x10780dda36b78b55),CNST_LIMB(0x9d9c0828536c1)), + P(6659,CNST_LIMB(0xabf601274064e0ab),CNST_LIMB(0x9d77ad449f777)), + P(6661,CNST_LIMB(0x3ef3e4ca27e4a2cd),CNST_LIMB(0x9d6b92b28ee48)), + P(6673,CNST_LIMB(0x9216a26e690a16f1),CNST_LIMB(0x9d231a476ed51)), + P(6679,CNST_LIMB(0xbae4849e6034bda7),CNST_LIMB(0x9cfef711bf120)), + P(6689,CNST_LIMB(0xf943a0520e01e9e1),CNST_LIMB(0x9cc2e1448b765)), + P(6691,CNST_LIMB(0x7c89958f48f6658b),CNST_LIMB(0x9cb6e26cbc64d)), + P(6701,CNST_LIMB(0xe67128750e0545a5),CNST_LIMB(0x9c7b03b4a9c67)), + P(6703,CNST_LIMB(0xc6c9e1d414516ccf),CNST_LIMB(0x9c6f0fd980ab1)), + P(6709,CNST_LIMB(0x805307f996e9e81d),CNST_LIMB(0x9c4b3f3a30c3f)), + P(6719,CNST_LIMB(0x3eddd2cff46ad5bf),CNST_LIMB(0x9c0fb29436687)), + P(6733,CNST_LIMB(0x35582c1aeb5aae85),CNST_LIMB(0x9bbca025b7aec)), + P(6737,CNST_LIMB(0x4973c88573ef6eb1),CNST_LIMB(0x9ba4f4421e52c)), + P(6761,CNST_LIMB(0x3063f627c1e715d9),CNST_LIMB(0x9b1783809ff03)), + P(6763,CNST_LIMB(0x711ad679a8dcc243),CNST_LIMB(0x9b0bc5b4d2eac)), + P(6779,CNST_LIMB(0x51c224a17a3db4b3),CNST_LIMB(0x9aae172fd8b9c)), + P(6781,CNST_LIMB(0x612325ca50ddaed5),CNST_LIMB(0x9aa26954607ed)), + P(6791,CNST_LIMB(0x9929a7b6b7958b37),CNST_LIMB(0x9a681e758a022)), + P(6793,CNST_LIMB(0xa78d222e5a857bb9),CNST_LIMB(0x9a5c7b284942e)), + P(6803,CNST_LIMB(0x3ad0ffe3198d139b),CNST_LIMB(0x9a2264ecc5558)), + P(6823,CNST_LIMB(0x8b4659ac547ed17),CNST_LIMB(0x99aebb39be56f)), + P(6827,CNST_LIMB(0x1752e8904aff1003),CNST_LIMB(0x9997ae1a9faac)), + P(6829,CNST_LIMB(0x60745c37ee4e5925),CNST_LIMB(0x998c2a22b6900)), + P(6833,CNST_LIMB(0x29e2da1f6557ee51),CNST_LIMB(0x997527603f8a8)), + P(6841,CNST_LIMB(0x80d78c24ac49cb89),CNST_LIMB(0x99473685e4d50)), + P(6857,CNST_LIMB(0xc56c3b495c8d1f79),CNST_LIMB(0x98eba72512a13)), + P(6863,CNST_LIMB(0xcf5bdf9f5088ac2f),CNST_LIMB(0x98c96d8dee9e1)), + P(6869,CNST_LIMB(0x8a44800e4fae4e7d),CNST_LIMB(0x98a743453554e)), + P(6871,CNST_LIMB(0xdd76384277e578e7),CNST_LIMB(0x989be33c9e6bd)), + P(6883,CNST_LIMB(0x20b1562d2703facb),CNST_LIMB(0x9857c692e9a59)), + P(6899,CNST_LIMB(0xef56caf96e9d8e3b),CNST_LIMB(0x97fd540c05c9e)), + P(6907,CNST_LIMB(0xf54061416aede033),CNST_LIMB(0x97d04302ed944)), + P(6911,CNST_LIMB(0xe0bc78c21a26e4ff),CNST_LIMB(0x97b9c48289935)), + P(6917,CNST_LIMB(0x524f92731a179cd),CNST_LIMB(0x9798133ece717)), + P(6947,CNST_LIMB(0x5d3b4ad7deafec8b),CNST_LIMB(0x96f07c683689e)), + P(6949,CNST_LIMB(0x508828f744da88ad),CNST_LIMB(0x96e55d6393fc5)), + P(6959,CNST_LIMB(0x6e82014031710bcf),CNST_LIMB(0x96addad861696)), + P(6961,CNST_LIMB(0xadf3b77a22595dd1),CNST_LIMB(0x96a2c5a2cf0cf)), + P(6967,CNST_LIMB(0xd8f0c03f7ea8a87),CNST_LIMB(0x96818fc825eba)), + P(6971,CNST_LIMB(0x2c49e3483c3a05f3),CNST_LIMB(0x966b74027f48a)), + P(6977,CNST_LIMB(0xccecbc98c91274c1),CNST_LIMB(0x964a56850b8ed)), + P(6983,CNST_LIMB(0x273a08941bb71e77),CNST_LIMB(0x962947990eb36)), + P(6991,CNST_LIMB(0xdead5a1e3f341baf),CNST_LIMB(0x95fd4a4c885e0)), + P(6997,CNST_LIMB(0x83eee092593309fd),CNST_LIMB(0x95dc5d3954fde)), + P(7001,CNST_LIMB(0x4af5f1bd3ae87ce9),CNST_LIMB(0x95c671ddfe516)), + P(7013,CNST_LIMB(0x4ca85ad2301c9e6d),CNST_LIMB(0x9584d6340ddf1)), + P(7019,CNST_LIMB(0x1b19592cd31a3943),CNST_LIMB(0x95641de84afcc)), + P(7027,CNST_LIMB(0x3e7aa05e6dcd81bb),CNST_LIMB(0x953893c386521)), + P(7039,CNST_LIMB(0x86336cecb02ba47f),CNST_LIMB(0x94f7740d87794)), + P(7043,CNST_LIMB(0xa96b30d0c8a44b2b),CNST_LIMB(0x94e1cb70c9ce0)), + P(7057,CNST_LIMB(0xb7c63fa0cfca0571),CNST_LIMB(0x94962ecbcc7ce)), + P(7069,CNST_LIMB(0x8eaf59b405a642b5),CNST_LIMB(0x94559c69059cf)), + P(7079,CNST_LIMB(0xdf29e9cbb536dc17),CNST_LIMB(0x941ff7e640716)), + P(7103,CNST_LIMB(0xed14132c82c1d43f),CNST_LIMB(0x939fd7a24b099)), + P(7109,CNST_LIMB(0xaf68778e34caab0d),CNST_LIMB(0x937ff22c014bd)), + P(7121,CNST_LIMB(0xa4f04a3368941d31),CNST_LIMB(0x934050872c09e)), + P(7127,CNST_LIMB(0xe9960969357c07e7),CNST_LIMB(0x93209446d56f6)), + P(7129,CNST_LIMB(0xeb47b62b7360b469),CNST_LIMB(0x9316033b5bd22)), + P(7151,CNST_LIMB(0x64c653d779ae730f),CNST_LIMB(0x92a22b9a79374)), + P(7159,CNST_LIMB(0x479702d3319915c7),CNST_LIMB(0x927838edba206)), + P(7177,CNST_LIMB(0xef3c3eebc6803239),CNST_LIMB(0x921a2e7112833)), + P(7187,CNST_LIMB(0x93807b1a2e3c0e1b),CNST_LIMB(0x91e623d5660d0)), + P(7193,CNST_LIMB(0x8167e33e3f478029),CNST_LIMB(0x91c6fc0cab8b6)), + P(7207,CNST_LIMB(0x60cb76e38c339397),CNST_LIMB(0x917e7d88028eb)), + P(7211,CNST_LIMB(0xae34788ffe4bc283),CNST_LIMB(0x9169d455585cd)), + P(7213,CNST_LIMB(0x4b6246a0c6c093a5),CNST_LIMB(0x915f81ef2d529)), + P(7219,CNST_LIMB(0x872e594b12b03efb),CNST_LIMB(0x9140938595d3a)), + P(7229,CNST_LIMB(0xbc0ae83ce9045b15),CNST_LIMB(0x910d2360a450e)), + P(7237,CNST_LIMB(0xad30a3917e0968d),CNST_LIMB(0x90e417104eabd)), + P(7243,CNST_LIMB(0x124ef5a4e1c7cd63),CNST_LIMB(0x90c55d0fdea28)), + P(7247,CNST_LIMB(0x5b98fe0e9fe17aaf),CNST_LIMB(0x90b0e84c04f20)), + P(7253,CNST_LIMB(0x414306cfe45400fd),CNST_LIMB(0x909243fac6b70)), + P(7283,CNST_LIMB(0xa06d1b4fd391e8bb),CNST_LIMB(0x8ff9d0440d137)), + P(7297,CNST_LIMB(0x11939803a60c2381),CNST_LIMB(0x8fb3192789d73)), + P(7307,CNST_LIMB(0x668c11cc37ea6b23),CNST_LIMB(0x8f80c0d5031e3)), + P(7309,CNST_LIMB(0x83f9b2089dc10645),CNST_LIMB(0x8f76b3664f164)), + P(7321,CNST_LIMB(0x65dc8ae47af277a9),CNST_LIMB(0x8f3a80550abc3)), + P(7331,CNST_LIMB(0x6e2368b9c685770b),CNST_LIMB(0x8f087c50e00c4)), + P(7333,CNST_LIMB(0x3ea137aeba5a6b2d),CNST_LIMB(0x8efe7fb408cc2)), + P(7349,CNST_LIMB(0x735f57adca48f19d),CNST_LIMB(0x8eaecce5c4fd7)), + P(7351,CNST_LIMB(0x69a8de0ba1b18107),CNST_LIMB(0x8ea4dccaaec0b)), + P(7369,CNST_LIMB(0x8fb84bdf5822bd79),CNST_LIMB(0x8e4ba9fbc2ff0)), + P(7393,CNST_LIMB(0xb8fab3b748562721),CNST_LIMB(0x8dd5688a3b7d6)), + P(7411,CNST_LIMB(0xa6c658ea10a65c3b),CNST_LIMB(0x8d7d3821fd94f)), + P(7417,CNST_LIMB(0xe56381f33ab5e549),CNST_LIMB(0x8d5feb03c31d7)), + P(7433,CNST_LIMB(0xe3c224da14988139),CNST_LIMB(0x8d12033cc9d30)), + P(7451,CNST_LIMB(0x438c253e6d99f513),CNST_LIMB(0x8cbac4dec6a82)), + P(7457,CNST_LIMB(0xc1b99f8841a3a6e1),CNST_LIMB(0x8c9dc80ab604b)), + P(7459,CNST_LIMB(0x63fa18c79c54fa8b),CNST_LIMB(0x8c942115dcc96)), + P(7477,CNST_LIMB(0xe7f6f609619d0d1d),CNST_LIMB(0x8c3d7df67b539)), + P(7481,CNST_LIMB(0x7b39ef3b70afc109),CNST_LIMB(0x8c2a4bc35cb3b)), + P(7487,CNST_LIMB(0x73922c61ca7452bf),CNST_LIMB(0x8c0d8a4f1f264)), + P(7489,CNST_LIMB(0x28d96828332372c1),CNST_LIMB(0x8c03f71cbf906)), + P(7499,CNST_LIMB(0x6b6e92968c4e8463),CNST_LIMB(0x8bd42abd9a107)), + P(7507,CNST_LIMB(0x571861f084962edb),CNST_LIMB(0x8bae051d7f6ff)), + P(7517,CNST_LIMB(0xd935c64f140f1ef5),CNST_LIMB(0x8b7e735068135)), + P(7523,CNST_LIMB(0x96459f8fd72a4c4b),CNST_LIMB(0x8b61f82c5fb08)), + P(7529,CNST_LIMB(0x410ba9a2a18242d9),CNST_LIMB(0x8b4588a74a05a)), + P(7537,CNST_LIMB(0xcf90979f89870391),CNST_LIMB(0x8b1fb0a7ed403)), + P(7541,CNST_LIMB(0x10f94ff26bc00add),CNST_LIMB(0x8b0ccc5d8f5c8)), + P(7547,CNST_LIMB(0xa6619fbb9da139b3),CNST_LIMB(0x8af07f8ac5146)), + P(7549,CNST_LIMB(0x765a23334efb03d5),CNST_LIMB(0x8ae71328ffd49)), + P(7559,CNST_LIMB(0x6f2f613b5e631837),CNST_LIMB(0x8ab8086624822)), + P(7561,CNST_LIMB(0x666b99bfbcd368b9),CNST_LIMB(0x8aaea3ab5ae89)), + P(7573,CNST_LIMB(0x922b78eb01ed45bd),CNST_LIMB(0x8a7661f7020fe)), + P(7577,CNST_LIMB(0x7079a199c31de6a9),CNST_LIMB(0x8a63ab88aa8dd)), + P(7583,CNST_LIMB(0xa181abcda167be5f),CNST_LIMB(0x8a47a35d020f3)), + P(7589,CNST_LIMB(0x2f6dbbcab3a9822d),CNST_LIMB(0x8a2ba68a3cebf)), + P(7591,CNST_LIMB(0xc5a83ff0e43eba17),CNST_LIMB(0x8a2254c852497)), + P(7603,CNST_LIMB(0x28c68613dda7d97b),CNST_LIMB(0x89ea849898bb3)), + P(7607,CNST_LIMB(0x5cf33ed49efa5007),CNST_LIMB(0x89d7f3e285109)), + P(7621,CNST_LIMB(0x9125fdead661590d),CNST_LIMB(0x899720af36739)), + P(7639,CNST_LIMB(0xaee67f478c7325e7),CNST_LIMB(0x89442160d11dc)), + P(7643,CNST_LIMB(0x735b1274a0e89653),CNST_LIMB(0x8931bd5875a22)), + P(7649,CNST_LIMB(0x733b56eae1a4e621),CNST_LIMB(0x891630877aedf)), + P(7669,CNST_LIMB(0x1944ffb316ffe65d),CNST_LIMB(0x88baaad83e38f)), + P(7673,CNST_LIMB(0xf26bc3cfd2a01449),CNST_LIMB(0x88a86b9090aa4)), + P(7681,CNST_LIMB(0xb5827ba68b83e201),CNST_LIMB(0x8883fb99bf244)), + P(7687,CNST_LIMB(0xac139507e48eefb7),CNST_LIMB(0x8868b45e727ee)), + P(7691,CNST_LIMB(0xeb7676b25834fda3),CNST_LIMB(0x88568aef30d47)), + P(7699,CNST_LIMB(0xad898f4763da5c1b),CNST_LIMB(0x8832468f0bcdd)), + P(7703,CNST_LIMB(0xea906f224398f9a7),CNST_LIMB(0x88202b9a4df76)), + P(7717,CNST_LIMB(0xa8aff3caca28cdad),CNST_LIMB(0x87e0f31872e9b)), + P(7723,CNST_LIMB(0x46c53aa36b19b083),CNST_LIMB(0x87c5ecd731f42)), + P(7727,CNST_LIMB(0x9ada32b09603e8cf),CNST_LIMB(0x87b3eea3bb388)), + P(7741,CNST_LIMB(0xd31f842ef5d8e915),CNST_LIMB(0x87751a6c67d78)), + P(7753,CNST_LIMB(0x6124af44730a33f9),CNST_LIMB(0x873f6e2f9d34a)), + P(7757,CNST_LIMB(0x828ec4c2b6e64a85),CNST_LIMB(0x872d938dcfc01)), + P(7759,CNST_LIMB(0x3d6f49df999638af),CNST_LIMB(0x8724a80151dba)), + P(7789,CNST_LIMB(0x7641460a0ea89b65),CNST_LIMB(0x869f677f6cc1a)), + P(7793,CNST_LIMB(0x97703f98fb7fe291),CNST_LIMB(0x868db701df58d)), + P(7817,CNST_LIMB(0xd343c209e3e6b7b9),CNST_LIMB(0x8623f563a7d6d)), + P(7823,CNST_LIMB(0x4e5fc01f6a41406f),CNST_LIMB(0x86099ef0c8886)), + P(7829,CNST_LIMB(0xb78a05b08aa4bcbd),CNST_LIMB(0x85ef52d38fe87)), + P(7841,CNST_LIMB(0x3434a14919d34561),CNST_LIMB(0x85bad981c7847)), + P(7853,CNST_LIMB(0xccead7dee120f525),CNST_LIMB(0x8586893de7cfc)), + P(7867,CNST_LIMB(0xe1375a2bccd87673),CNST_LIMB(0x8549b491e9efe)), + P(7873,CNST_LIMB(0xf727d51420a57141),CNST_LIMB(0x852fb3859bea4)), + P(7877,CNST_LIMB(0x2c3b68cfbcebb00d),CNST_LIMB(0x851e631fc08f8)), + P(7879,CNST_LIMB(0xda91e2f3e17542f7),CNST_LIMB(0x8515bc9cde5f1)), + P(7883,CNST_LIMB(0xb55f6100ae95d6e3),CNST_LIMB(0x850472f6185b3)), + P(7901,CNST_LIMB(0x6a0c608e0bbaa975),CNST_LIMB(0x84b6defbc166b)), + P(7907,CNST_LIMB(0xac5f2fc151c016cb),CNST_LIMB(0x849d17159854b)), + P(7919,CNST_LIMB(0xb1e5af8146e4d00f),CNST_LIMB(0x8469a54a20645)), + P(7927,CNST_LIMB(0x6e283d3b112602c7),CNST_LIMB(0x84476f9401ade)), + P(7933,CNST_LIMB(0xf9a48bcb76c96e55),CNST_LIMB(0x842dd2e2dc25d)), + P(7937,CNST_LIMB(0xa776780ca4c0e101),CNST_LIMB(0x841cc543f58cb)), +#define SMALLEST_OMITTED_PRIME 7949 +#endif +#ifdef WANT_ptab + {CNST_LIMB(0x444437fed9a2349),{CNST_LIMB(0xe00056482545e92a),5,CNST_LIMB(0x2e044fdfbae4),CNST_LIMB(0x2c8f9615733fe6),CNST_LIMB(0x15319a745d44889),CNST_LIMB(0x30314bfee31fe08),CNST_LIMB(0x213845b5eb1d02b)},0,14}, + {CNST_LIMB(0x34091fa96ffdf47b),{CNST_LIMB(0x3adc72bf62f96a49),2,CNST_LIMB(0x2fdb815a40082e14),CNST_LIMB(0xa2fb4713ee182be),CNST_LIMB(0x6691fcc7a3042b5),CNST_LIMB(0xd7baca281bd7bfe),CNST_LIMB(0x31645ad7700b6fe1)},14,10}, + {CNST_LIMB(0x3c47d8d728a77ebb),{CNST_LIMB(0xfcb9aee19f3d0ca),2,CNST_LIMB(0xee09ca35d620514),CNST_LIMB(0x25e3c1639f7dc597),CNST_LIMB(0x176f977d1145f08f),CNST_LIMB(0x4a431b566c292ba),CNST_LIMB(0x100ae9d9482d6937)},24,9}, + {CNST_LIMB(0x77ab7da9d709ea9),{CNST_LIMB(0x11d1e7012ab3aa25),5,CNST_LIMB(0x1b394f7170aed8e),CNST_LIMB(0x546efaf8f3107d0),CNST_LIMB(0x42ed2efa9db39d8),CNST_LIMB(0xcf1c08fc6f825e),CNST_LIMB(0x252dd3fc3932c60)},33,8}, + {CNST_LIMB(0x310df3e7bd4bc897),{CNST_LIMB(0x4dfeef7ace095886),2,CNST_LIMB(0xaba3c794d85150d),CNST_LIMB(0x17a7ea757afc9b41),CNST_LIMB(0x27386bf8f31e3ba7),CNST_LIMB(0x14f913784ca1b09a),CNST_LIMB(0x19a5850266378808)},41,8}, + {CNST_LIMB(0xd997f089e8af1f),{CNST_LIMB(0x2d2f79839e6b7329),8,CNST_LIMB(0x285a2dd96a188d),CNST_LIMB(0x334ffbd384a516),CNST_LIMB(0xd9f5c4d959d8c),CNST_LIMB(0x1a7b0c8f9e2a8),CNST_LIMB(0x51d4df5ea86eca)},49,7}, + {CNST_LIMB(0x2514ab8fece6d79),{CNST_LIMB(0xb9d8ba8530d526d2),6,CNST_LIMB(0x111e482834cf602),CNST_LIMB(0x2099b9b4399ea77),CNST_LIMB(0xa7e65453d2c58b),CNST_LIMB(0x1543e97a71ba902),CNST_LIMB(0x13c9258fa65ea5c)},56,7}, + {CNST_LIMB(0x690efbefde431f9),{CNST_LIMB(0x37e6fe9321e30a89),5,CNST_LIMB(0x67c69a65020950a),CNST_LIMB(0x3d4da34fd3fb29d),CNST_LIMB(0x4481530580bf270),CNST_LIMB(0x53418b541a702fb),CNST_LIMB(0x5a63ba140615695)},63,7}, + {CNST_LIMB(0xf49e199a5f2f371),{CNST_LIMB(0xbe97cf50195e4cf),4,CNST_LIMB(0xb61e665a0d0c8f0),CNST_LIMB(0x12404319392532e),CNST_LIMB(0xc11fa27489010aa),CNST_LIMB(0x9486cdb3a063f1d),CNST_LIMB(0x90fb58fe1716f29)},70,7}, + {CNST_LIMB(0x20e4ce7eee0a5edf),{CNST_LIMB(0xf216910d87cce9ec),2,CNST_LIMB(0x19be5a877db767e7),CNST_LIMB(0x14174edbad8e4db0),CNST_LIMB(0x13aa47a54ebc0ab3),CNST_LIMB(0x34e03d849eed1a0),CNST_LIMB(0x1c348c675b2b87a9)},77,7}, + {CNST_LIMB(0x3c3b299a83e166e5),{CNST_LIMB(0x1004d8385b0845e0),2,CNST_LIMB(0xf135995f07a646c),CNST_LIMB(0x39f996f3e7c62cb6),CNST_LIMB(0x10e385c8b908ec46),CNST_LIMB(0x108780c61cd93a1),CNST_LIMB(0xece590a749ce9e6)},84,7}, + {CNST_LIMB(0x7385117dabf89767),{CNST_LIMB(0x1ba83180cf48fd02),1,CNST_LIMB(0x18f5dd04a80ed132),CNST_LIMB(0x134aacf48cf374fd),CNST_LIMB(0x5f5e8ab304a603e1),CNST_LIMB(0x8196d4d84952f0b),CNST_LIMB(0x27fbce261e06981)},91,7}, + {CNST_LIMB(0x6b1dd94152d113),{CNST_LIMB(0x31e8de86cb665558),9,CNST_LIMB(0x57c2791756ffa7),CNST_LIMB(0x155d1b6359e72e),CNST_LIMB(0x26e2dd434311d6),CNST_LIMB(0x2d6624583bf57f),CNST_LIMB(0x4b3c0311592466)},98,6}, + {CNST_LIMB(0x9bed1488742f9b),{CNST_LIMB(0xa44d3b1c6d785d44),8,CNST_LIMB(0x2f0a502161e5b4),CNST_LIMB(0x9197cc3e5a5b04),CNST_LIMB(0x58ecad625341f6),CNST_LIMB(0x2c8e81222f4972),CNST_LIMB(0x1f80904334e61e)},104,6}, + {CNST_LIMB(0xd851b0362c316b),{CNST_LIMB(0x2ef5b88db4540035),8,CNST_LIMB(0xcfa22017ddb3c6),CNST_LIMB(0x213062fd865691),CNST_LIMB(0x81822846481a0d),CNST_LIMB(0x4b3f5844dfd386),CNST_LIMB(0x746b08e79bff57)},110,6}, + {CNST_LIMB(0x129e6025385b5e9),{CNST_LIMB(0xb7fd23d5247f5d33),7,CNST_LIMB(0x1283c028c9d61ad),CNST_LIMB(0x8a2496a2184268),CNST_LIMB(0x702aa9d6cae97c),CNST_LIMB(0x8700d0e7b38adb),CNST_LIMB(0x562031b42d3873)},116,6}, + {CNST_LIMB(0x1b399405df9e1d9),{CNST_LIMB(0x2ce69e058ed22408),7,CNST_LIMB(0xc43448ef95aada),CNST_LIMB(0x2a35f6f5397332),CNST_LIMB(0x18bba0a2b06f9b5),CNST_LIMB(0x1bf0769bdd0a51),CNST_LIMB(0xdaf86a9dd4f157)},122,6}, + {CNST_LIMB(0x26a9c83b1da0183),{CNST_LIMB(0xa7c312b1de2834bc),6,CNST_LIMB(0x245cdfc0d956145),CNST_LIMB(0xcfb5812fdbb80b),CNST_LIMB(0x7f9bd0fd4d9771),CNST_LIMB(0x206d41f157b339d),CNST_LIMB(0x1597d040f39bed6)},128,6}, + {CNST_LIMB(0x36518f1ed35fae9),{CNST_LIMB(0x2da0bb538e68c61b),6,CNST_LIMB(0x161b11f812f7dbd),CNST_LIMB(0x1912054119f8337),CNST_LIMB(0x28b68baf0254a33),CNST_LIMB(0x1febc2a846ec627),CNST_LIMB(0x106e286e91657ac)},134,6}, + {CNST_LIMB(0x499cea9952ffcb7),{CNST_LIMB(0xbd2398239911cb86),5,CNST_LIMB(0x2f49990f2b0b4af),CNST_LIMB(0x3efc376b6d3879a),CNST_LIMB(0x16bf595684e7cae),CNST_LIMB(0x2096f989291e15a),CNST_LIMB(0x3f877653fe30a29)},140,6}, + {CNST_LIMB(0x603dc1f0578e36b),{CNST_LIMB(0x547a4d1f60bb6de6),5,CNST_LIMB(0x35de2e91a2ab072),CNST_LIMB(0x3ae19a039d933f9),CNST_LIMB(0x49f04fa32aed515),CNST_LIMB(0x49f39ce5e69737b),CNST_LIMB(0x48e7a8d6354cb3f)},146,6}, + {CNST_LIMB(0x822f4ff1bb75c7d),{CNST_LIMB(0xf7684c1a915fd94f),4,CNST_LIMB(0x3c4551ba4cbccdd),CNST_LIMB(0x3e072857c5d22e8),CNST_LIMB(0x757d8256f24de27),CNST_LIMB(0x256d9df09b5df5c),CNST_LIMB(0x19974713584ab80)},152,6}, + {CNST_LIMB(0xacfc9fbdf683023),{CNST_LIMB(0x7ad9852da99412df),4,CNST_LIMB(0x754da5eeda3acdb),CNST_LIMB(0x91f55d002dee623),CNST_LIMB(0x96936cc5e49d5ea),CNST_LIMB(0x766649a4996390),CNST_LIMB(0xaa8c52b8eea17dd)},158,6}, + {CNST_LIMB(0xe09d410f1fe4edb),{CNST_LIMB(0x23c5744aa32cf453),4,CNST_LIMB(0x34f16cefc1e749a),CNST_LIMB(0x2668179180c1b62),CNST_LIMB(0xdb241be2f133397),CNST_LIMB(0xa7c11527a49744e),CNST_LIMB(0x67d18e0669fea5b)},164,6}, + {CNST_LIMB(0x1149424a578f0ce7),{CNST_LIMB(0xd9e7a906d91cf1db),3,CNST_LIMB(0xdfe5fef362d4b5e),CNST_LIMB(0xcf056a84b77c77c),CNST_LIMB(0x985dfab0d2bd76b),CNST_LIMB(0xf57931f6922ec07),CNST_LIMB(0x44b19bfab74d6)},170,6}, + {CNST_LIMB(0x15b025d5fd579777),{CNST_LIMB(0x79b813c3ed8f4fd2),3,CNST_LIMB(0x116e5fce1d3c7de3),CNST_LIMB(0x1468c60d0220a399),CNST_LIMB(0xf10192b1089742d),CNST_LIMB(0xeae0b108eba5be6),CNST_LIMB(0xf0e98ff5e4d57d4)},176,6}, + {CNST_LIMB(0x1a5f81f6e38d3f1d),{CNST_LIMB(0x369eab91d724ae89),3,CNST_LIMB(0x12a46e520008c7fb),CNST_LIMB(0x638a97340d45e81),CNST_LIMB(0x12b4b0c893a62d44),CNST_LIMB(0x1072dcd55e5547d0),CNST_LIMB(0x18ce18c4a086d95f)},182,6}, + {CNST_LIMB(0x23293bf9b6fe2259),{CNST_LIMB(0xd1f849a43b917c65),2,CNST_LIMB(0x9df5c2bff0d0f91),CNST_LIMB(0xff1fdef6c15b8c),CNST_LIMB(0xec1383d93946006),CNST_LIMB(0x20ce6fd4fbbb8838),CNST_LIMB(0x55871453993a979)},188,6}, + {CNST_LIMB(0x2c1eaa6645e21b17),{CNST_LIMB(0x735a473662e09835),2,CNST_LIMB(0x2366ac00a295788d),CNST_LIMB(0xf8778468c26bac6),CNST_LIMB(0x10ecc751d2724c63),CNST_LIMB(0x4882fbd9d3d43e1),CNST_LIMB(0x2de76607a7f1541)},194,6}, + {CNST_LIMB(0x3646542a1110061b),{CNST_LIMB(0x2ddf24b018173a2c),2,CNST_LIMB(0x26e6af57bbbfe794),CNST_LIMB(0x1974e8d33a8f431f),CNST_LIMB(0x34da7258db6f7b4f),CNST_LIMB(0x2af310e921f874f8),CNST_LIMB(0x3cfeed9d4afc97)},200,6}, + {CNST_LIMB(0x4125602df5b7fa0b),{CNST_LIMB(0xf6fe47f7e339f3ce),1,CNST_LIMB(0x3c8fdf761ed811df),CNST_LIMB(0x145648c8769aba41),CNST_LIMB(0x3270209c06bd9a17),CNST_LIMB(0x2c03f98e45b9dca3),CNST_LIMB(0x3341dcfe340ee93e)},206,6}, + {CNST_LIMB(0x4e06bb83aa64f48d),{CNST_LIMB(0xa3f6020ab0b7e0d3),1,CNST_LIMB(0x15ebcd7500d12259),CNST_LIMB(0x786bf28f0081f92),CNST_LIMB(0x15d832d09f03b587),CNST_LIMB(0xaa3e94d54c2a575),CNST_LIMB(0x471850a042d21386)},212,6}, + {CNST_LIMB(0x6953db39a8298d8b),{CNST_LIMB(0x371b0bbe24632f20),1,CNST_LIMB(0x2d58498caface4ea),CNST_LIMB(0x557c399022219340),CNST_LIMB(0x2cb32a1a8fdd68c2),CNST_LIMB(0x122684249d42b9a9),CNST_LIMB(0x13c80507e77a929c)},218,6}, + {CNST_LIMB(0x15fafabe1c1777),{CNST_LIMB(0x74b22475baab0cce),11,CNST_LIMB(0xc763842e2c34d),CNST_LIMB(0x77d3f710b457b),CNST_LIMB(0x155a43f5525196),CNST_LIMB(0x148e30e0a5dee3),CNST_LIMB(0x13aa97836b8150)},224,5}, + {CNST_LIMB(0x18552ab4f8303b),{CNST_LIMB(0x50aaa1ed4d926e62),11,CNST_LIMB(0x815be492ca359),CNST_LIMB(0x1b55fe26d36ad),CNST_LIMB(0x113a54ceb7846),CNST_LIMB(0x1688511dfe47f),CNST_LIMB(0x66ccabff6c6c8)},229,5}, + {CNST_LIMB(0x1a99c2502dda5f),{CNST_LIMB(0x33f675a22ebecef5),11,CNST_LIMB(0x12ab7e96d807ff),CNST_LIMB(0x1d3db891dce3b),CNST_LIMB(0x19511de2e3095c),CNST_LIMB(0x2741e555a0bff),CNST_LIMB(0x51c7d31a19281)},234,5}, + {CNST_LIMB(0x1ebf9e78cd7ecb),{CNST_LIMB(0xa6b5da36fa2470c),11,CNST_LIMB(0xaebd869698c2f),CNST_LIMB(0x18e178fc70e26a),CNST_LIMB(0x64439ec9707b5),CNST_LIMB(0x116d1f70d29f20),CNST_LIMB(0xeea2317a9a585)},239,5}, + {CNST_LIMB(0x2214c7d5d9ce07),{CNST_LIMB(0xe0bc0f6215d26cf9),10,CNST_LIMB(0x1ffbac72c32f72),CNST_LIMB(0x1447f31b055129),CNST_LIMB(0x122d28bd754f9a),CNST_LIMB(0x106685d95b6d85),CNST_LIMB(0x18c9fdf391bdff)},244,5}, + {CNST_LIMB(0x25e2755d49ffa7),{CNST_LIMB(0xb078a0cae16506b6),10,CNST_LIMB(0x218554ef385919),CNST_LIMB(0xe00c975692d8e),CNST_LIMB(0x1afd2511d2f776),CNST_LIMB(0x108b0b031673f7),CNST_LIMB(0x8d919ed067cf0)},249,5}, + {CNST_LIMB(0x2925e3d5425d41),{CNST_LIMB(0x8e2c20d6f8f795ce),10,CNST_LIMB(0x1c5f29cb4c13c8),CNST_LIMB(0x15e11f6e5f634),CNST_LIMB(0xb32166d7982b3),CNST_LIMB(0xa636cf5c4f642),CNST_LIMB(0x28f997d81938bc)},254,5}, + {CNST_LIMB(0x2f39e99d11c26d),{CNST_LIMB(0x5aed08e710697213),10,CNST_LIMB(0x213b4a00c79b71),CNST_LIMB(0x1bd2737e294111),CNST_LIMB(0xd01c8aaaae314),CNST_LIMB(0xb00f1e27ed99e),CNST_LIMB(0x1d21748adab7e4)},259,5}, + {CNST_LIMB(0x3502a3ce62a769),{CNST_LIMB(0x35126ab40383fc5c),10,CNST_LIMB(0xf411f8bafb90c),CNST_LIMB(0x1fa38c975e6347),CNST_LIMB(0xf4058b043df4e),CNST_LIMB(0x2af2733656b159),CNST_LIMB(0x196e94f446c597)},264,5}, + {CNST_LIMB(0x3b357b23b014b1),{CNST_LIMB(0x14b711563eba7d77),10,CNST_LIMB(0x32f1ffd1469b4e),CNST_LIMB(0x197f48859c01a3),CNST_LIMB(0x29509dc5352d40),CNST_LIMB(0x335e5c9ef5d7fe),CNST_LIMB(0x284e1a5376a683)},269,5}, + {CNST_LIMB(0x420d06773114d3),{CNST_LIMB(0xf01a36d7bbf66dfc),9,CNST_LIMB(0xd86f221cf4e60),CNST_LIMB(0x728955d2f4a8d),CNST_LIMB(0x1a631ed35adca5),CNST_LIMB(0x2d592810a2cd39),CNST_LIMB(0x1215b15f856f68)},274,5}, + {CNST_LIMB(0x4c19f733c90d09),{CNST_LIMB(0xae954f9b28df48d8),9,CNST_LIMB(0xcab96d4cf28bb),CNST_LIMB(0x42b5fc3fd6e7ec),CNST_LIMB(0x2b7f897adc30de),CNST_LIMB(0x1a97bb06e110c0),CNST_LIMB(0x304db431256118)},279,5}, + {CNST_LIMB(0x52f224bf890ffd),{CNST_LIMB(0x8b0d84b8653cb09f),9,CNST_LIMB(0x8c298ef08a942),CNST_LIMB(0x2999ac4ebb9e26),CNST_LIMB(0x3dd9eb9ca2c026),CNST_LIMB(0x43401c4563f790),CNST_LIMB(0x38d5e8bf6d2c89)},284,5}, + {CNST_LIMB(0x5bf703dda941b1),{CNST_LIMB(0x644f51d4add132a4),9,CNST_LIMB(0x38fd3f81414bb8),CNST_LIMB(0x20049119d93b7c),CNST_LIMB(0x4e479d97844206),CNST_LIMB(0x294a3066f3b775),CNST_LIMB(0x1c21bda84cf2fc)},289,5}, + {CNST_LIMB(0x68cf321fe6202f),{CNST_LIMB(0x38a4d27caeef8e91),9,CNST_LIMB(0x1e26a01f2b6d41),CNST_LIMB(0x9e9e8993d282b),CNST_LIMB(0x417ad2819cd4fb),CNST_LIMB(0x627fb183ab0b1a),CNST_LIMB(0x278b9f029564e7)},294,5}, + {CNST_LIMB(0x71dad4e06cde9b),{CNST_LIMB(0x1fce1dcd4eb47a27),9,CNST_LIMB(0x457bdbeb7801db),CNST_LIMB(0x1f2b3df5db8f09),CNST_LIMB(0x2149ca25813ef0),CNST_LIMB(0x17d20c710e4487),CNST_LIMB(0x40ceb8ee4ca73d)},299,5}, + {CNST_LIMB(0x7b5e9ca091c63d),{CNST_LIMB(0x99bc23041414782),9,CNST_LIMB(0x1ac11ef1a1cf79),CNST_LIMB(0x313f0652fefffc),CNST_LIMB(0x12f34ea4e7a5db),CNST_LIMB(0x2aa2b3b3300bfd),CNST_LIMB(0x3245caffd0690c)},304,5}, + {CNST_LIMB(0x892f2017af4a77),{CNST_LIMB(0xddb91a666e887a07),8,CNST_LIMB(0x633133de624045),CNST_LIMB(0x7f207860875935),CNST_LIMB(0x702aff29ff7777),CNST_LIMB(0x1cc53fa2f53db9),CNST_LIMB(0x2c5ff88b6e27ee)},309,5}, + {CNST_LIMB(0x93efab3d98e265),{CNST_LIMB(0xbb00736076c6c8fc),8,CNST_LIMB(0x42ac68703b39),CNST_LIMB(0x4d4d015d5d1bd7),CNST_LIMB(0x85c801afb0f411),CNST_LIMB(0x4579d8022d0a69),CNST_LIMB(0x32ea2e520e3d23)},314,5}, + {CNST_LIMB(0x9fd1e9a289b8f9),{CNST_LIMB(0x9a0fb77008192e78),8,CNST_LIMB(0x9cfd1af6dc136),CNST_LIMB(0x23a28bc352c87c),CNST_LIMB(0x582383446e53c2),CNST_LIMB(0x3d52e0695b07e4),CNST_LIMB(0x83c6fc0e7cfd23)},319,5}, + {CNST_LIMB(0xb3ffc82a3b00bb),{CNST_LIMB(0x6c17325c7676de1f),8,CNST_LIMB(0x104f63f41af61c),CNST_LIMB(0x838ff92da5d267),CNST_LIMB(0xb37001a22f0194),CNST_LIMB(0x4487295b668b16),CNST_LIMB(0xa06ce4ed65729d)},324,5}, + {CNST_LIMB(0xc78aab3260ed67),{CNST_LIMB(0x486ec1d048657b5d),8,CNST_LIMB(0x5654a773cfd408),CNST_LIMB(0xb3f20a79edde43),CNST_LIMB(0xaebbd1a69724dd),CNST_LIMB(0x81191f0503a9),CNST_LIMB(0x3b54fc6e1ed034)},329,5}, + {CNST_LIMB(0xd8b06a4b9eddc9),{CNST_LIMB(0x2e7147c081441aeb),8,CNST_LIMB(0x5fe29aca965ce2),CNST_LIMB(0x9cb19caad665ca),CNST_LIMB(0x147b04c65844fd),CNST_LIMB(0x7a1c878be8db45),CNST_LIMB(0x8f4f4d51c80dfd)},334,5}, + {CNST_LIMB(0xe8f35bfe49ae4b),{CNST_LIMB(0x19547b44fa632b82),8,CNST_LIMB(0x4ce005e11fafad),CNST_LIMB(0x57f2d94de4ea00),CNST_LIMB(0xb885b9e976e473),CNST_LIMB(0x1eb25c197e9b39),CNST_LIMB(0xe2c45221f5cdb7)},339,5}, + {CNST_LIMB(0xfcff7f19788a27),{CNST_LIMB(0x3099f4bf7423272),8,CNST_LIMB(0x982693b0c3a8b),CNST_LIMB(0xa6eee9dce0fc63),CNST_LIMB(0xf1290f2b74223c),CNST_LIMB(0x36c85e11826e0b),CNST_LIMB(0xbe15668a4d3771)},344,5}, + {CNST_LIMB(0x10f681c21a80325),{CNST_LIMB(0xe2ef902951d2322d),7,CNST_LIMB(0x7efd8450d50a2b),CNST_LIMB(0x37c115b60abfde),CNST_LIMB(0x4a31517b3a2c0),CNST_LIMB(0x8ee426b2c25e26),CNST_LIMB(0xaf5e09c0582f8)},349,5}, + {CNST_LIMB(0x11ffa8ecf7814fb),{CNST_LIMB(0xc7250b86192832ab),7,CNST_LIMB(0xa4d35e0885656f),CNST_LIMB(0x6d14e9be5101ec),CNST_LIMB(0x93b36726a244a),CNST_LIMB(0xb56f38bde55186),CNST_LIMB(0x11443988cbd610f)},354,5}, + {CNST_LIMB(0x139b8ddf439b133),{CNST_LIMB(0xa1cbe52ffcdca969),7,CNST_LIMB(0x119cba991200690),CNST_LIMB(0xa8a1be12145159),CNST_LIMB(0x49831f7f1eb091),CNST_LIMB(0x5fe3a0bd210422),CNST_LIMB(0x11b90612ebf719f)},359,5}, + {CNST_LIMB(0x15b90aaef040351),{CNST_LIMB(0x791d6da971f79fb1),7,CNST_LIMB(0xc1c278790d9084),CNST_LIMB(0xa6bc771172ca70),CNST_LIMB(0x1219044d36b161b),CNST_LIMB(0x9363a00d9d3f5f),CNST_LIMB(0x14079ec2a37ea93)},364,5}, + {CNST_LIMB(0x17d664f86c88bd3),{CNST_LIMB(0x57a9176de3f40918),7,CNST_LIMB(0x13ca8e0f80a9a0f),CNST_LIMB(0xfc1ecc66c0c93b),CNST_LIMB(0x15be6192051cb1a),CNST_LIMB(0x136f263b7a50fcc),CNST_LIMB(0x3820db8623a7)},369,5}, + {CNST_LIMB(0x1a44cc5ef4c16b5),{CNST_LIMB(0x37da80020a7d1f74),7,CNST_LIMB(0x18584281cee4069),CNST_LIMB(0x178a63d22596ba9),CNST_LIMB(0x6739c7c5ac4f2d),CNST_LIMB(0x14c57a38e4d612a),CNST_LIMB(0x13d2e7fd35623ae)},374,5}, + {CNST_LIMB(0x1ca80b29773de79),{CNST_LIMB(0x1dde9f723a4f55dc),7,CNST_LIMB(0x1ac9ceffdba98e2),CNST_LIMB(0xf4618a5f0fdaa9),CNST_LIMB(0x17b96b4ded53ebb),CNST_LIMB(0x7faf749bdd9cb1),CNST_LIMB(0xfa9d50111fc549)},379,5}, + {CNST_LIMB(0x1e7b019a7fa8931),{CNST_LIMB(0xcc3160c520cdb96),7,CNST_LIMB(0xb9d29212dc305a),CNST_LIMB(0x91586fa7d2facc),CNST_LIMB(0x2638c4c9135f19),CNST_LIMB(0x1c315565816b84a),CNST_LIMB(0xa92e9c918ad70f)},384,5}, + {CNST_LIMB(0x1fd932c2a6c3463),{CNST_LIMB(0x137e41a0c0b8d4f),7,CNST_LIMB(0x13669eac9e5ce80),CNST_LIMB(0x94dc55b30276b5),CNST_LIMB(0x1c52a400cc7dae6),CNST_LIMB(0x1cd876c8023e81b),CNST_LIMB(0x8e06dbbb7e4c2d)},389,5}, + {CNST_LIMB(0x2175e8bd7050e79),{CNST_LIMB(0xe9a698d03a5e604b),6,CNST_LIMB(0xdcf15b87971a56),CNST_LIMB(0x2e9e439e7517fb),CNST_LIMB(0x85bbfca7ac6da9),CNST_LIMB(0x500c9508abde31),CNST_LIMB(0x1c9d7aa292a48b0)},394,5}, + {CNST_LIMB(0x24033b205fe4527),{CNST_LIMB(0xc6f39cee1695e79a),6,CNST_LIMB(0x1a92e6b5ac379c9),CNST_LIMB(0x1f1b86c0e7f8d15),CNST_LIMB(0x1e362d27d79fda9),CNST_LIMB(0x4dcd13ebf2a00a),CNST_LIMB(0x408b8bd354f1b4)},399,5}, + {CNST_LIMB(0x265d2eb09cdc073),{CNST_LIMB(0xab112e468a91ceb0),6,CNST_LIMB(0x1d6aaadf0ce5062),CNST_LIMB(0x8cb5be41003782),CNST_LIMB(0x52b9980c0c4bec),CNST_LIMB(0x2228f2e6cbe8667),CNST_LIMB(0xca6f7400df044e)},404,5}, + {CNST_LIMB(0x2953a0e65ca6a1d),{CNST_LIMB(0x8c7372d9ab5569c1),6,CNST_LIMB(0x4a8c6ea2b8f6c9),CNST_LIMB(0x3588f2393801ce),CNST_LIMB(0x1fce38ab648e336),CNST_LIMB(0x89544c1c4d5e80),CNST_LIMB(0x6e5d409692ed37)},409,5}, + {CNST_LIMB(0x2c67f25a6bc9c63),{CNST_LIMB(0x70f57416f0cce89e),6,CNST_LIMB(0xaa4e781437cc6c),CNST_LIMB(0x1c38f9d456ca8d),CNST_LIMB(0x2682eae3a0afadb),CNST_LIMB(0x2b54835e8a4f4ca),CNST_LIMB(0x1ff894f600fa94f)},414,5}, + {CNST_LIMB(0x2fdd1a7524ae76d),{CNST_LIMB(0x564e31abce2eba47),6,CNST_LIMB(0x1b96371ad2128cf),CNST_LIMB(0x35309a6895ab0d),CNST_LIMB(0x14de5531da96df1),CNST_LIMB(0x3a924ccc42ac90),CNST_LIMB(0x315a6b9b99a595)},419,5}, + {CNST_LIMB(0x33770e6e18aeb53),{CNST_LIMB(0x3e5a14fd0434a100),6,CNST_LIMB(0x1e428c066216163),CNST_LIMB(0x93d03854bffefa),CNST_LIMB(0x77e62b6df8d4a1),CNST_LIMB(0x8a8b138bb2ed69),CNST_LIMB(0x292d249664af8db)},424,5}, + {CNST_LIMB(0x379c7dff6334d3b),{CNST_LIMB(0x269dcc0c8d56e875),6,CNST_LIMB(0x2460122cb5efa2d),CNST_LIMB(0x28e51e3c7265f2e),CNST_LIMB(0x1efacb51926e686),CNST_LIMB(0xfc8248ae79bd5f),CNST_LIMB(0x2f3b91b1fe1f65)},429,5}, + {CNST_LIMB(0x3b82f15f7249c49),{CNST_LIMB(0x134ee332d51f0306),6,CNST_LIMB(0x3137e2a5a467c9c),CNST_LIMB(0x79d488798b4960),CNST_LIMB(0xb436578d1069bb),CNST_LIMB(0x10ad84e585582d0),CNST_LIMB(0x3215616c9b153bf)},434,5}, + {CNST_LIMB(0x3fff4dd17ad4ff9),{CNST_LIMB(0x2c8c1d50d30af),6,CNST_LIMB(0x2c8ba14ac01c0),CNST_LIMB(0x2bd06852b51e327),CNST_LIMB(0x30714e5452d2c1),CNST_LIMB(0x327ff42efc6d9c),CNST_LIMB(0x244bb5001864710)},439,5}, + {CNST_LIMB(0x465670cc294b181),{CNST_LIMB(0xd1ddf947b9d55be0),5,CNST_LIMB(0x106a71bea4fc8c6),CNST_LIMB(0xa255b26c45d27f),CNST_LIMB(0x460d26a6240e466),CNST_LIMB(0x1dda425d1868b60),CNST_LIMB(0x3d6eff8580e97e1)},444,5}, + {CNST_LIMB(0x4aaaab2fe3fee47),{CNST_LIMB(0xb6db6aa7d3a37a63),5,CNST_LIMB(0x3fffe3e5e83bd06),CNST_LIMB(0xa8a65f30809160),CNST_LIMB(0xbfd8fef4142370),CNST_LIMB(0x358c77f78c2a4d0),CNST_LIMB(0x3a89f0ee6796b95)},449,5}, + {CNST_LIMB(0x4f8bbff17c95ef7),{CNST_LIMB(0x9bf032ee57751395),5,CNST_LIMB(0x2728c2e42e214cb),CNST_LIMB(0x37fb2686e89761e),CNST_LIMB(0x4a264029edea029),CNST_LIMB(0x1d504d3aecaaa50),CNST_LIMB(0x45b5a7b35031756)},454,5}, + {CNST_LIMB(0x553ea1ce3216691),{CNST_LIMB(0x806643148e9063ef),5,CNST_LIMB(0x441a9569bcc4d0),CNST_LIMB(0x535ae4be3f071a1),CNST_LIMB(0x545a793067e09d8),CNST_LIMB(0xd5d15c09afe8cd),CNST_LIMB(0x4534c23a01c6a96)},459,5}, + {CNST_LIMB(0x59f7c9a4fefb517),{CNST_LIMB(0x6c37fd6421ef50ed),5,CNST_LIMB(0x2f718dff2dd2af5),CNST_LIMB(0x4aea82d40c5cc72),CNST_LIMB(0x4f7cec2a6861199),CNST_LIMB(0xe868a369a42529),CNST_LIMB(0x40e610cd320b2f7)},464,5}, + {CNST_LIMB(0x5e8d3fa86f95521),{CNST_LIMB(0x5a8fc0667cc240fe),5,CNST_LIMB(0x1e464eb541eb375),CNST_LIMB(0x3892fa43db27fd5),CNST_LIMB(0x4e5c7836ddc791a),CNST_LIMB(0x36e537bed96365e),CNST_LIMB(0x4375094ddcb8820)},469,5}, + {CNST_LIMB(0x64157c62c33e31d),{CNST_LIMB(0x4767bbee2675bc54),5,CNST_LIMB(0x5ca490917e48378),CNST_LIMB(0x11867a67aa79db0),CNST_LIMB(0x6198c4cbcaf84e6),CNST_LIMB(0x4338ebe5ab25fcf),CNST_LIMB(0x11e91c53e48fd1e)},474,5}, + {CNST_LIMB(0x6ceeed4c43f4183),{CNST_LIMB(0x2cced2b1dae4601a),5,CNST_LIMB(0x4177b3fa2db8811),CNST_LIMB(0x2b3db3648dc8a5),CNST_LIMB(0x50f060794aa127),CNST_LIMB(0x4f7cdc200df8c9a),CNST_LIMB(0x4525db055625df3)},479,5}, + {CNST_LIMB(0x7287ee7e5f96919),{CNST_LIMB(0x1e1b2205d593e3a6),5,CNST_LIMB(0x576a64b8ee6a195),CNST_LIMB(0x7bd2ea513c7027),CNST_LIMB(0x17c4152c6d55daa),CNST_LIMB(0x39f7aac6f902f57),CNST_LIMB(0x14765413bf9b5ca)},484,5}, + {CNST_LIMB(0x79886d10dfa5165),{CNST_LIMB(0xd9f57c223f379ca),5,CNST_LIMB(0x5569f0d32bb81fb),CNST_LIMB(0x6f08a7fc8e770a6),CNST_LIMB(0x2c14d325ec8479f),CNST_LIMB(0x4499d22e49d3c7),CNST_LIMB(0x53f1f1eecdc8c2)},489,5}, + {CNST_LIMB(0x7e13347ac1526bf),{CNST_LIMB(0x3e8a375cf0fb774),5,CNST_LIMB(0x3d9970a7d5b2820),CNST_LIMB(0x3664c9d670bba16),CNST_LIMB(0x6ba929ee3cbcd5c),CNST_LIMB(0xd5d262e6d92452),CNST_LIMB(0x2f545142add8d05)},494,5}, + {CNST_LIMB(0x8566f0377d15459),{CNST_LIMB(0xeb44411c1363bcf4),4,CNST_LIMB(0x5defd97f5781d92),CNST_LIMB(0x16eaae98cb00189),CNST_LIMB(0x986f4f6d77c243),CNST_LIMB(0x57c736925ddfd9),CNST_LIMB(0x10a756243dbe4ca)},499,5}, + {CNST_LIMB(0x8bfc83897e6cdaf),{CNST_LIMB(0xd428ea393317b9f2),4,CNST_LIMB(0x2465196cadab32d),CNST_LIMB(0x7594e9e684d904a),CNST_LIMB(0x19cd4a75383b2d1),CNST_LIMB(0x6a0e9c23f177e64),CNST_LIMB(0x56f0f2ae36c5465)},504,5}, + {CNST_LIMB(0x94ad790245385eb),{CNST_LIMB(0xb8cae8ae9a639526),4,CNST_LIMB(0x51b43cc2b30e037),CNST_LIMB(0x4cb133bb88b3adc),CNST_LIMB(0x3ede33df9c5e3e3),CNST_LIMB(0x665226a2d290ac4),CNST_LIMB(0x33db5ce835ec6e4)},509,5}, + {CNST_LIMB(0x9c30734d93b1379),{CNST_LIMB(0xa397f073b55bde0b),4,CNST_LIMB(0x23144a1f00005b6),CNST_LIMB(0x826ad253a3ed324),CNST_LIMB(0x940ad5d52b4806c),CNST_LIMB(0x1729e9d2d022730),CNST_LIMB(0x20a978fb381a6c2)},514,5}, + {CNST_LIMB(0xa57e1fd7a44fbb9),{CNST_LIMB(0x8c0164efd39df203),4,CNST_LIMB(0x7c2d03c898866a8),CNST_LIMB(0x4037558c6f1e4eb),CNST_LIMB(0x6694cdbbb8803c7),CNST_LIMB(0x99396c89bf97452),CNST_LIMB(0x436126c1b000fab)},519,5}, + {CNST_LIMB(0xaf9b9be9c8401d1),{CNST_LIMB(0x7531f66eca55c19b),4,CNST_LIMB(0x3904fdff023d639),CNST_LIMB(0x962f9b532413fb3),CNST_LIMB(0x27ec74df2758058),CNST_LIMB(0x5836483d1e34f66),CNST_LIMB(0x8384a37fad8866d)},524,5}, + {CNST_LIMB(0xb9ba711d6e4a84f),{CNST_LIMB(0x60dc0b5cc82154b3),4,CNST_LIMB(0x9fa47788598936),CNST_LIMB(0x82bd019c1fa5a56),CNST_LIMB(0x50db17c34711736),CNST_LIMB(0x739121f55c5b75d),CNST_LIMB(0x912fe4d49b6d56)},529,5}, + {CNST_LIMB(0xc41a8a6c63a70d1),{CNST_LIMB(0x4e30c99728e3c197),4,CNST_LIMB(0xaded2f8836f2fac),CNST_LIMB(0xab84ac5c6d525d9),CNST_LIMB(0x488aa0b1f301ccb),CNST_LIMB(0x5fdf2905d976ad6),CNST_LIMB(0x5cb75a7adbb8561)},534,5}, + {CNST_LIMB(0xcd79628a71801f7),{CNST_LIMB(0x3ef33887b9ad5b44),4,CNST_LIMB(0xbffdafb9937daab),CNST_LIMB(0x8c3722255b2b8c7),CNST_LIMB(0x63cd1bbc0e9c22a),CNST_LIMB(0xbd17bc2e12ad950),CNST_LIMB(0x15e9799e0d76f1e)},539,5}, + {CNST_LIMB(0xd6f67d4726eaaf5),{CNST_LIMB(0x30df0c865cc92a96),4,CNST_LIMB(0xbb4b3b81c94fd1),CNST_LIMB(0x2a20ca76128ce99),CNST_LIMB(0x4a4022bdd8f612e),CNST_LIMB(0x3bafa50d5be5f8b),CNST_LIMB(0xb86a67f06630908)},544,5}, + {CNST_LIMB(0xe5d3b047627f8e3),{CNST_LIMB(0x1d275ac8c78303ec),4,CNST_LIMB(0xbcf14b4275878ed),CNST_LIMB(0x5ee8b82b0662dd),CNST_LIMB(0x77e3de57e11f662),CNST_LIMB(0x5ed59e5dfb5cd16),CNST_LIMB(0xbe6a6366650aef1)},549,5}, + {CNST_LIMB(0xef42ae515bfb29d),{CNST_LIMB(0x11e922af2e24e769),4,CNST_LIMB(0x1c926c98e452393),CNST_LIMB(0xd26a458c9c34765),CNST_LIMB(0x5da54b52a8aa98a),CNST_LIMB(0xa2ed4f828338df7),CNST_LIMB(0xe69ac190926521a)},554,5}, + {CNST_LIMB(0xfd32459f0b3d4bb),{CNST_LIMB(0x2d5ace688e647e9),4,CNST_LIMB(0x2cdba60f4c2b450),CNST_LIMB(0x2577b742a8ed5db),CNST_LIMB(0x144ef4109272736),CNST_LIMB(0xbe9326c4f15e1a9),CNST_LIMB(0xb96de853277fb4f)},559,5}, + {CNST_LIMB(0x10a16ef6c96a16c7),{CNST_LIMB(0xec9602538c0df011),3,CNST_LIMB(0x68a7f8a32c8aa57),CNST_LIMB(0x1445e7d17b921f3),CNST_LIMB(0x81c8debc8176f0b),CNST_LIMB(0xe3a1c5b816e4a65),CNST_LIMB(0xa52ad5bb93c9f4b)},564,5}, + {CNST_LIMB(0x117c2fec47f5e013),{CNST_LIMB(0xd48355880989be17),3,CNST_LIMB(0xb356114108dbef6),CNST_LIMB(0xe7ddeca9ba6a20c),CNST_LIMB(0xf2d7618ea8a6953),CNST_LIMB(0x412256baaec5c27),CNST_LIMB(0x1f8e16ca6e5c0d7)},569,5}, + {CNST_LIMB(0x129a8c10ae1f364b),{CNST_LIMB(0xb857af53b5b43644),3,CNST_LIMB(0xe26e327286a3e31),CNST_LIMB(0xeef9d55a9d06dbf),CNST_LIMB(0xe61febd3beb02b6),CNST_LIMB(0x10d018a00b7fd6a5),CNST_LIMB(0x32009c46e7c1314)},574,5}, + {CNST_LIMB(0x134631392d507059),{CNST_LIMB(0xa9063d94bb92a978),3,CNST_LIMB(0x56f8018b2ea4b7b),CNST_LIMB(0x1270cb710b035935),CNST_LIMB(0x11033d859716c4f9),CNST_LIMB(0xd45bebac416a68c),CNST_LIMB(0xc08fe72fc6eef84)},579,5}, + {CNST_LIMB(0x13fde7755d5fd9ed),{CNST_LIMB(0x99c48a788248a856),3,CNST_LIMB(0x1019267f9f81c8e4),CNST_LIMB(0x394e4098ea8549),CNST_LIMB(0x33c85c2a1514436),CNST_LIMB(0xa1e569d4432f4bb),CNST_LIMB(0x128bfbc862fb3c58)},584,5}, + {CNST_LIMB(0x15698c0906cc26a5),{CNST_LIMB(0x7e957ed81f600c1e),3,CNST_LIMB(0x1476fb9cb53a56e9),CNST_LIMB(0xeff15504451beab),CNST_LIMB(0xdea55fc79c32599),CNST_LIMB(0x76a982d54d956a1),CNST_LIMB(0x4d131625675abd7)},589,5}, + {CNST_LIMB(0x168a1ee80f6d92f5),{CNST_LIMB(0x6b73459d204359d1),3,CNST_LIMB(0x810ac07564aaf79),CNST_LIMB(0x874d5996e15561a),CNST_LIMB(0xb75c73837694b49),CNST_LIMB(0xd4645617d29779b),CNST_LIMB(0x12af15ef931be940)},594,5}, + {CNST_LIMB(0x17daa6de32466fbf),{CNST_LIMB(0x576bc18853c72908),3,CNST_LIMB(0x11757b52093fa28a),CNST_LIMB(0xff4c0f212559944),CNST_LIMB(0x40af9872004a0a5),CNST_LIMB(0x2b2b7c424c54c2b),CNST_LIMB(0x1a2b7130739c4c7)},599,5}, + {CNST_LIMB(0x18ea5f2dbe212911),{CNST_LIMB(0x48ca86c98010be89),3,CNST_LIMB(0x6d8483692b46556),CNST_LIMB(0x305d89220ec48d2),CNST_LIMB(0x1772200dfc1938dc),CNST_LIMB(0xded80c44ca87607),CNST_LIMB(0xb498b0490dc55dd)},604,5}, + {CNST_LIMB(0x1a0fa1ef47787d1b),{CNST_LIMB(0x3a56b20c2d70e08a),3,CNST_LIMB(0x15734e967cc39a0d),CNST_LIMB(0x8fc968191dc0fd3),CNST_LIMB(0x1680d35f18721f8f),CNST_LIMB(0x197b4a3e18c9e8bc),CNST_LIMB(0xc0ad81d645f40c7)},609,5}, + {CNST_LIMB(0x1b673b66a023a93f),{CNST_LIMB(0x2af150ff9195ac0f),3,CNST_LIMB(0x95ee9645ebf0cc9),CNST_LIMB(0x1717202bbc3e0a78),CNST_LIMB(0x126d365df320adf6),CNST_LIMB(0x137d63165361ab0e),CNST_LIMB(0x19ca69d84cc1417c)},614,5}, + {CNST_LIMB(0x1ce34de10c258111),{CNST_LIMB(0x1b9430b6521be183),3,CNST_LIMB(0x18e590f79ed3f778),CNST_LIMB(0xbcbaeb9ec0a1624),CNST_LIMB(0x18f51ac04296ceb6),CNST_LIMB(0x161b15271d06a3e1),CNST_LIMB(0x5f0a62fb317dd86)},619,5}, + {CNST_LIMB(0x1e19674e354f4667),{CNST_LIMB(0x102a99b0acd64358),3,CNST_LIMB(0xf34c58e5585ccc8),CNST_LIMB(0x15fad9b7ef3a5cbd),CNST_LIMB(0x1874ea34e3e274f9),CNST_LIMB(0x841598977c90581),CNST_LIMB(0x1c04690158b888d)},624,5}, + {CNST_LIMB(0x1f3740adb603b24d),{CNST_LIMB(0x66e52892f80015e),3,CNST_LIMB(0x645fa924fe26d98),CNST_LIMB(0xc022a525d7f5a4f),CNST_LIMB(0x16d7e66846e5d65b),CNST_LIMB(0x10105a92c09c5aa9),CNST_LIMB(0xedddad56d23fc0e)},629,5}, + {CNST_LIMB(0x20e7b3c0e3b73671),{CNST_LIMB(0xf1eabc8c8352c9af),2,CNST_LIMB(0x19aa15b9c5fd82e9),CNST_LIMB(0x10fd7c871bd5d222),CNST_LIMB(0x4ee89a76e1259e0),CNST_LIMB(0x1280d75e6bf3c134),CNST_LIMB(0x85e103f1853c3d)},634,5}, + {CNST_LIMB(0x22b5b4fc40d4c35f),{CNST_LIMB(0xd807362226cc7e50),2,CNST_LIMB(0xd080d1a3a2ea867),CNST_LIMB(0x1f068368adc3fde1),CNST_LIMB(0x178240b1c3cf35a9),CNST_LIMB(0x1dc077b2ed00fd8c),CNST_LIMB(0x2e6e64a07f9c833)},639,5}, + {CNST_LIMB(0x23cff30e6fb8f7fd),{CNST_LIMB(0xc97f150b60a9e71b),2,CNST_LIMB(0x5505a9af1f13815),CNST_LIMB(0x22434bb477153d47),CNST_LIMB(0x87670d53a068a58),CNST_LIMB(0x21b754fa0ae7b745),CNST_LIMB(0x2182750984e9f50b)},644,5}, + {CNST_LIMB(0x266a30ee37cc7341),{CNST_LIMB(0xaa808f26b38df4ef),2,CNST_LIMB(0x1982da6ab1354c7a),CNST_LIMB(0xfda1381ca806f81),CNST_LIMB(0x1a31d30d06bd5b7b),CNST_LIMB(0xbc65e21d25000c6),CNST_LIMB(0x132d8167c6a0973b)},649,5}, + {CNST_LIMB(0x283e6bddfbebab6d),{CNST_LIMB(0x971e4733b2e0d2bf),2,CNST_LIMB(0xe8978cc1879fb72),CNST_LIMB(0x1c9e26afc4d767da),CNST_LIMB(0x1e376fcf488c8249),CNST_LIMB(0x977e63f145b0e1d),CNST_LIMB(0xe2db9891e737aa1)},654,5}, + {CNST_LIMB(0x298d29c47d06f16b),{CNST_LIMB(0x8a4e7f92da9842e7),2,CNST_LIMB(0x6b1056511d6577e),CNST_LIMB(0x592f6f3bbda49cc),CNST_LIMB(0x2692769f01fb0a5b),CNST_LIMB(0x5f3e5623e91d30d),CNST_LIMB(0x2104d5242a92b48d)},659,5}, + {CNST_LIMB(0x2afa8c16de374c13),{CNST_LIMB(0x7d364b6556c2b905),2,CNST_LIMB(0x291b438da8eb83a1),CNST_LIMB(0x14222ff3cbf7d671),CNST_LIMB(0x126ac7f90facd4d3),CNST_LIMB(0x46d452f540a8d2),CNST_LIMB(0xb0b0fc23426b0b7)},664,5}, + {CNST_LIMB(0x2c44b3413ab0dee7),{CNST_LIMB(0x721b37f337583151),2,CNST_LIMB(0x22a87fb9da8ba57d),CNST_LIMB(0x26943e2ad67b49d6),CNST_LIMB(0x1ef6cfa904bef1cd),CNST_LIMB(0x18e7d1baf5588938),CNST_LIMB(0x1ad24c5276c66d2f)},669,5}, + {CNST_LIMB(0x2e88fa7433ac7823),{CNST_LIMB(0x60141b17275393e2),2,CNST_LIMB(0x17531bbafda1a751),CNST_LIMB(0xf3ea18441a36068),CNST_LIMB(0x130110257a01259a),CNST_LIMB(0x14122cf2cde8eecc),CNST_LIMB(0x24d25acd522c56b7)},674,5}, + {CNST_LIMB(0x303fb77cc2bfe62b),{CNST_LIMB(0x539292e31ed6db25),2,CNST_LIMB(0xec16a9032408129),CNST_LIMB(0x22483ceeb16c18a3),CNST_LIMB(0x1dd1cf7128399e5a),CNST_LIMB(0x11b3d478af2cbe42),CNST_LIMB(0x2a86cb29ac9873d3)},679,5}, + {CNST_LIMB(0x32eeac8f8d221e55),{CNST_LIMB(0x41ae89b9e560d65a),2,CNST_LIMB(0x156a1323e556857),CNST_LIMB(0x865eccdcf192078),CNST_LIMB(0x29e9014382ce253e),CNST_LIMB(0x737a633527d55ef),CNST_LIMB(0xe3223c22b887658)},684,5}, + {CNST_LIMB(0x354d75b3270eaedd),{CNST_LIMB(0x336093f2bc204c55),2,CNST_LIMB(0x2aca293363c5448c),CNST_LIMB(0x17160152eb4aa39f),CNST_LIMB(0x16b50b70fa80acee),CNST_LIMB(0x2493bd25f34e1536),CNST_LIMB(0x18f710cf9496617c)},689,5}, + {CNST_LIMB(0x37b26a3f703f6027),{CNST_LIMB(0x2629d54caca5a93b),2,CNST_LIMB(0x213657023f027f64),CNST_LIMB(0x257ed9007720600c),CNST_LIMB(0xaf3dcc0f043ce98),CNST_LIMB(0x115787f3ada80173),CNST_LIMB(0x7071885da2772a7)},694,5}, + {CNST_LIMB(0x3a2d837d37f39e39),{CNST_LIMB(0x199e982941bda182),2,CNST_LIMB(0x1749f20b2031871c),CNST_LIMB(0x153d7d45eae3fbc6),CNST_LIMB(0x3035b3e81047b52f),CNST_LIMB(0x3096ed6d9a28fa5a),CNST_LIMB(0x221887c4142d7434)},699,5}, + {CNST_LIMB(0x3d6201596c85db3f),{CNST_LIMB(0xaea3e9ef4bf14aa),2,CNST_LIMB(0xa77fa9a4de89304),CNST_LIMB(0x140df851fb641569),CNST_LIMB(0x275b27f619d2cffb),CNST_LIMB(0x16df2d5134102662),CNST_LIMB(0x10ab318b9b8a8aef)},704,5}, + {CNST_LIMB(0x401080f68635f765),{CNST_LIMB(0xff7c1a4f020138fa),1,CNST_LIMB(0x3fce7d1c6d5e19d1),CNST_LIMB(0x1feb2b2abf929ebc),CNST_LIMB(0x279cb7a4291af740),CNST_LIMB(0x384bce4293f19637),CNST_LIMB(0x168a9776844c9b6f)},709,5}, + {CNST_LIMB(0x41c3dea2c7c4509b),{CNST_LIMB(0xf2421126ad7a2852),1,CNST_LIMB(0x3ab46417a8b30e2f),CNST_LIMB(0x35206295938b9c19),CNST_LIMB(0x317d8909a9980afe),CNST_LIMB(0x195b889376db752f),CNST_LIMB(0xeb8a8f47083a08e)},714,5}, + {CNST_LIMB(0x441255580dcabef7),{CNST_LIMB(0xe1601977719c2988),1,CNST_LIMB(0x33c8fff7d69fc31b),CNST_LIMB(0x3aa78ab59c61fb90),CNST_LIMB(0x3c41600b3a070fd7),CNST_LIMB(0x121266b65d774473),CNST_LIMB(0x5812c8f46959e7)},719,5}, + {CNST_LIMB(0x467e90ff075dfa77),{CNST_LIMB(0xd0d4ccbfd7fdb2ae),1,CNST_LIMB(0x2c844d02e9e6109b),CNST_LIMB(0x395a6f0c5abc0a3c),CNST_LIMB(0x30393c08245d18c3),CNST_LIMB(0xac042a1b1191d06),CNST_LIMB(0x1d0c88b0cc347eed)},724,5}, + {CNST_LIMB(0x35b7e6a52de6b),{CNST_LIMB(0x30ff8515bed6fc1f),14,CNST_LIMB(0x2f4533b937fab),CNST_LIMB(0xeb33cd2951b7),CNST_LIMB(0x28ce28b5e1739),CNST_LIMB(0x30d609f6bade3),CNST_LIMB(0x249a87bc9957)},729,4}, + {CNST_LIMB(0x4b9237b1fac55af1),{CNST_LIMB(0xb19ac3ed68fa0441),1,CNST_LIMB(0x1d4958ea0fafef2d),CNST_LIMB(0x4ba7c350e3c499e),CNST_LIMB(0xe26c59f6a4a42e5),CNST_LIMB(0x4acd391ac5c14c62),CNST_LIMB(0x38a0169051f4a371)},733,5}, + {CNST_LIMB(0x4fa265b31b73c6df),{CNST_LIMB(0x9b7b0be2fb2dbf62),1,CNST_LIMB(0x1118cee6ada4ab63),CNST_LIMB(0x2b4fe57f0434fb44),CNST_LIMB(0x2cffeb10b15bf6),CNST_LIMB(0xe12f06864906a7b),CNST_LIMB(0x2a0824475f11f823)},738,5}, + {CNST_LIMB(0x516d33f3efe608d5),{CNST_LIMB(0x926c85237f2dc355),1,CNST_LIMB(0xbb86424304de581),CNST_LIMB(0x3ec190a9cee7a48e),CNST_LIMB(0xd7d8bfe60d52602),CNST_LIMB(0xdff7561c9c07756),CNST_LIMB(0x3c1d2db82b327710)},743,5}, + {CNST_LIMB(0x545e342d68fbf683),{CNST_LIMB(0x8464ceb2fdd80297),1,CNST_LIMB(0x2e56377c50c1c77),CNST_LIMB(0x474ec2f4bd92576),CNST_LIMB(0x2a5da9663350db1),CNST_LIMB(0x220077cd63148dd2),CNST_LIMB(0x280dcbaf0c2ad61c)},748,5}, + {CNST_LIMB(0x57e94c457826bd6b),{CNST_LIMB(0x74bd3fdb5c8280eb),1,CNST_LIMB(0x502d67750fb2852a),CNST_LIMB(0x45149579eaa28023),CNST_LIMB(0x3bb53a4c0c4db579),CNST_LIMB(0x3a96a3180f221b2),CNST_LIMB(0x27f9af8526a8cf70)},753,5}, + {CNST_LIMB(0x5b9b45655ebf3b79),{CNST_LIMB(0x65b42a0f00510df2),1,CNST_LIMB(0x48c975354281890e),CNST_LIMB(0x2929df87cfd7453c),CNST_LIMB(0x1b6bb026965ae7ed),CNST_LIMB(0x52659a85b7df96c2),CNST_LIMB(0x21db715c0f72134)},758,5}, + {CNST_LIMB(0x5e6ad0d2eaa14c25),{CNST_LIMB(0x5b0e2387ccda26c3),1,CNST_LIMB(0x432a5e5a2abd67b6),CNST_LIMB(0x14b7571d1a05b77d),CNST_LIMB(0x498547c0b3350ce8),CNST_LIMB(0x9d4e28ce05c6c27),CNST_LIMB(0x4913b5ba5c5edc8)},763,5}, + {CNST_LIMB(0x60704759208cd21d),{CNST_LIMB(0x53c7ef8bdf16795b),1,CNST_LIMB(0x3f1f714dbee65bc6),CNST_LIMB(0x25fc61d1a473562),CNST_LIMB(0x158a2ce0171d5fd),CNST_LIMB(0x2f3bdc4b8520f24c),CNST_LIMB(0x4081386865e00703)},768,5}, + {CNST_LIMB(0x63bc6b32a19c883b),{CNST_LIMB(0x488c1dcdc113150a),1,CNST_LIMB(0x3887299abcc6ef8a),CNST_LIMB(0x2aab5731e10d2529),CNST_LIMB(0x5eeeb60320f0bef4),CNST_LIMB(0x18e4d9f1c279596e),CNST_LIMB(0xf478370d7e2465f)},773,5}, + {CNST_LIMB(0x47f6a9e8dab75),{CNST_LIMB(0xc7577d2a861d140e),13,CNST_LIMB(0x435dc14ffaf0e),CNST_LIMB(0x2557057e3745b),CNST_LIMB(0x450b5149277a6),CNST_LIMB(0xda1fae30c112),CNST_LIMB(0x3951ca3221a2d)},778,4}, + {CNST_LIMB(0x6e373b550764872f),{CNST_LIMB(0x294ecadbf29bc1cb),1,CNST_LIMB(0x23918955f136f1a2),CNST_LIMB(0x29cffcf11c6e3647),CNST_LIMB(0x4af7d1191966b3e0),CNST_LIMB(0x38ebd581ce6f80c6),CNST_LIMB(0x14ebbbc9200a6d59)},782,5}, + {CNST_LIMB(0x4ca8ed991d8b9),{CNST_LIMB(0xab7251b581f8c74d),13,CNST_LIMB(0x1639351769382),CNST_LIMB(0x3145f1b0a8e59),CNST_LIMB(0xff20704d1793),CNST_LIMB(0x1cd9e54d284e),CNST_LIMB(0x1602f3ac7db9c)},787,4}, + {CNST_LIMB(0x74b13dc12b016dc1),{CNST_LIMB(0x18ce87a5c4d39e85),1,CNST_LIMB(0x169d847da9fd247e),CNST_LIMB(0x286e093dede24bb5),CNST_LIMB(0x1854fa948ad9109d),CNST_LIMB(0x6b81a8b81781577c),CNST_LIMB(0xad44a3d15bc6be5)},791,5}, + {CNST_LIMB(0x78b0c5ae997e31ef),{CNST_LIMB(0xf811cf8a4bb1f80),1,CNST_LIMB(0xe9e74a2cd039c22),CNST_LIMB(0x30a04d242d0dfd11),CNST_LIMB(0x128fe81eea336414),CNST_LIMB(0x3639736d1defa144),CNST_LIMB(0x5eeb71b0497f58ff)},796,5}, + {CNST_LIMB(0x7dcf3e856f4612d7),{CNST_LIMB(0x47509bc7743383b),1,CNST_LIMB(0x46182f52173da52),CNST_LIMB(0x430e9fd64eeb40e6),CNST_LIMB(0x2774902fd5f53d5b),CNST_LIMB(0x4f5c0d7033943d05),CNST_LIMB(0x3be559075217f3a8)},801,5}, + {CNST_LIMB(0x550e24ca1a54b),{CNST_LIMB(0x81416693b884d74c),13,CNST_LIMB(0xee45b7c01c48),CNST_LIMB(0x3848946d8aec8),CNST_LIMB(0x541aec862a3ac),CNST_LIMB(0x4f2e818315dbc),CNST_LIMB(0xa8197f5fb2b)},806,4}, + {CNST_LIMB(0x573c8f376a18d),{CNST_LIMB(0x779f50fc3a19a6c9),13,CNST_LIMB(0x4fc81955d5129),CNST_LIMB(0xe80abe2896a1),CNST_LIMB(0x3a505801c159e),CNST_LIMB(0x162eeea75d4cd),CNST_LIMB(0x20dd0efbe8570)},810,4}, + {CNST_LIMB(0x589c3c614e917),{CNST_LIMB(0x71cc8c064f8788ee),13,CNST_LIMB(0x325d12375f7e1),CNST_LIMB(0x514f8f320e7d3),CNST_LIMB(0x55cf104cf51d3),CNST_LIMB(0x23278b29858c6),CNST_LIMB(0x3b956eecbdd30)},814,4}, + {CNST_LIMB(0x5a494bafe993d),{CNST_LIMB(0x6aef2ee9b04422dc),13,CNST_LIMB(0x5111950929bd7),CNST_LIMB(0x2c3779cd17b37),CNST_LIMB(0x2b7f886fc6966),CNST_LIMB(0x4f0b47ffa902d),CNST_LIMB(0x10bd268a51d6c)},818,4}, + {CNST_LIMB(0x5bdea84b0b73f),{CNST_LIMB(0x64adca063056bccb),13,CNST_LIMB(0x427b265a68455),CNST_LIMB(0x2ef4f15ac34a6),CNST_LIMB(0x493c4fd89b0ce),CNST_LIMB(0x7e61acb14b3a),CNST_LIMB(0x20d0328207c83)},822,4}, + {CNST_LIMB(0x5d4c55a25a945),{CNST_LIMB(0x5f37ce4e679bb0c3),13,CNST_LIMB(0x5b08caebb5502),CNST_LIMB(0x3d0eab29a51f1),CNST_LIMB(0x3c9ac2f5a187d),CNST_LIMB(0x29304bdf75a79),CNST_LIMB(0x14d681f7ea1f0)},826,4}, + {CNST_LIMB(0x5f286a042b527),{CNST_LIMB(0x585aa50035c6eb19),13,CNST_LIMB(0x1f74be8b4aa53),CNST_LIMB(0x47290f02b2679),CNST_LIMB(0x44c4bd1ee1378),CNST_LIMB(0x51286cbc40de1),CNST_LIMB(0xc379e189a860)},830,4}, + {CNST_LIMB(0x62521adc68615),{CNST_LIMB(0x4d46d1e25221a4ef),13,CNST_LIMB(0x53d112a3ea538),CNST_LIMB(0x26e6ad330e6d8),CNST_LIMB(0x56830d4191021),CNST_LIMB(0xed06536bee19),CNST_LIMB(0x5ba5998aa1cbd)},834,4}, + {CNST_LIMB(0x64f0108522a4b),{CNST_LIMB(0x44a2bea99b1fe52b),13,CNST_LIMB(0x22a1a59e3d4a4),CNST_LIMB(0x55422d57d71a4),CNST_LIMB(0x48b99527500ba),CNST_LIMB(0x5dffbfb3a890f),CNST_LIMB(0x618de61d17b82)},838,4}, + {CNST_LIMB(0x684eced8d04ad),{CNST_LIMB(0x3a25a4304e45cd70),13,CNST_LIMB(0x498e06ad4670c),CNST_LIMB(0x6397605c9b1d3),CNST_LIMB(0x1107048baaf16),CNST_LIMB(0x6292ac8aeb164),CNST_LIMB(0x4def8ba3a7552)},842,4}, + {CNST_LIMB(0x69e938da0b6b9),{CNST_LIMB(0x35644b98f3e9b802),13,CNST_LIMB(0x38dd6fce5c5b4),CNST_LIMB(0x6307e2db6000d),CNST_LIMB(0x56835d316819f),CNST_LIMB(0x2b1da7eb24a08),CNST_LIMB(0xf110b6d6a913)},846,4}, + {CNST_LIMB(0x6bf4be42947af),{CNST_LIMB(0x2f87eee6ccd631e7),13,CNST_LIMB(0x6b0e021f080f0),CNST_LIMB(0x4b469e0f2c53a),CNST_LIMB(0x50664c269b5e3),CNST_LIMB(0x4139b73b961d6),CNST_LIMB(0x13dc91bdbee0f)},850,4}, + {CNST_LIMB(0x6f54dbd6ccf57),{CNST_LIMB(0x26540878c92cd039),13,CNST_LIMB(0x382053afc295a),CNST_LIMB(0x2c8c19e89353d),CNST_LIMB(0x534384d9aa927),CNST_LIMB(0x249d03e328fc1),CNST_LIMB(0x2c57702938274)},854,4}, + {CNST_LIMB(0x71632fdcf6c15),{CNST_LIMB(0x20fdcdbf333d83af),13,CNST_LIMB(0x5242218aef575),CNST_LIMB(0x9ab7cecd8cd3),CNST_LIMB(0x4ea4e8bc18b4d),CNST_LIMB(0x16d9320fd98f4),CNST_LIMB(0x2d2b50a730c10)},858,4}, + {CNST_LIMB(0x7317fb257e1e1),{CNST_LIMB(0x1cb50c1361edfd6e),13,CNST_LIMB(0x489cb7c9fe32a),CNST_LIMB(0x258cf78a73422),CNST_LIMB(0x560fbee8c2cf2),CNST_LIMB(0x467156be8e294),CNST_LIMB(0xc593edc4d71f)},862,4}, + {CNST_LIMB(0x75e5d5c5e4577),{CNST_LIMB(0x15ef86e1cee16113),13,CNST_LIMB(0x6eece492ce925),CNST_LIMB(0x561b9134c02bf),CNST_LIMB(0x596b2a81ab56d),CNST_LIMB(0x296835004dd20),CNST_LIMB(0x3160915ef8c65)},866,4}, + {CNST_LIMB(0x788a813bc2fb1),{CNST_LIMB(0xfd74e4e944c107b),13,CNST_LIMB(0x6e15178139c26),CNST_LIMB(0x7828db84f90d2),CNST_LIMB(0x3e1e0cdc0bb1c),CNST_LIMB(0x4bbcd0685b013),CNST_LIMB(0x60b28bb37de31)},870,4}, + {CNST_LIMB(0x7b02c02e67beb),{CNST_LIMB(0xa621b97c2ae6cdb),13,CNST_LIMB(0x2068f6d99eb3c),CNST_LIMB(0x4ba3bacf8ed2f),CNST_LIMB(0x79baf6516f06a),CNST_LIMB(0x34fac2ffdfb3b),CNST_LIMB(0x601bda55ddca3)},874,4}, + {CNST_LIMB(0x7d0b0166731df),{CNST_LIMB(0x60dcab2ebe68654),13,CNST_LIMB(0x5a87235f786e1),CNST_LIMB(0x498c71a4f2c04),CNST_LIMB(0x6c4cf93aac90f),CNST_LIMB(0x2fc43a717ef2e),CNST_LIMB(0x61100c40f26dc)},878,4}, + {CNST_LIMB(0x7f65827009e4b),{CNST_LIMB(0x13671d16472022c),13,CNST_LIMB(0x66a0a221f20de),CNST_LIMB(0x1863cc32757a5),CNST_LIMB(0x72205d2b707de),CNST_LIMB(0x41eb3856479f4),CNST_LIMB(0x62a869dadecf2)},882,4}, + {CNST_LIMB(0x826267aca5d6b),{CNST_LIMB(0xf6a307f100c87643),12,CNST_LIMB(0x18b32a6e55cb2),CNST_LIMB(0x800c79d089746),CNST_LIMB(0x4df069eb6014f),CNST_LIMB(0xa67afd1d0f6b),CNST_LIMB(0x39654bc96e516)},886,4}, + {CNST_LIMB(0x854fadbb02f0d),{CNST_LIMB(0xeb99f80c181c04d8),12,CNST_LIMB(0x530f8982a799b),CNST_LIMB(0x488a5468d8f30),CNST_LIMB(0xcb498b28c81),CNST_LIMB(0x1d791c8466f6a),CNST_LIMB(0x583d384518de9)},890,4}, + {CNST_LIMB(0x86f75f67e5373),{CNST_LIMB(0xe592b4846fa38885),12,CNST_LIMB(0x16d1a804d8305),CNST_LIMB(0x3a9f7db1defba),CNST_LIMB(0x53fa43529d63d),CNST_LIMB(0x380980122856a),CNST_LIMB(0x59320408536cb)},894,4}, + {CNST_LIMB(0x89110415e014b),{CNST_LIMB(0xde220b6a3ca63611),12,CNST_LIMB(0x1183ea4dd5cca),CNST_LIMB(0x6cd0a51299316),CNST_LIMB(0x2c53d4f8b0ee6),CNST_LIMB(0x39ef54aed56eb),CNST_LIMB(0x7f71b2a9bf0fd)},898,4}, + {CNST_LIMB(0x8bbeefef93d97),{CNST_LIMB(0xd4f7338df110e1c1),12,CNST_LIMB(0x3ee5d151be367),CNST_LIMB(0x2e6b9dfc4bbcb),CNST_LIMB(0x225349b2e386e),CNST_LIMB(0x492ce15456b18),CNST_LIMB(0x856a0d6e68759)},902,4}, + {CNST_LIMB(0x8fa29248f38e9),{CNST_LIMB(0xc84479a2d3ad73b2),12,CNST_LIMB(0x282c97bed2bdc),CNST_LIMB(0x86b44220fa8e0),CNST_LIMB(0x497c548d39ada),CNST_LIMB(0x6928a8433805d),CNST_LIMB(0x1d2f77b091c29)},906,4}, + {CNST_LIMB(0x9311da8eb3ea1),{CNST_LIMB(0xbd9c9989aacc578d),12,CNST_LIMB(0x73d0b00fcee87),CNST_LIMB(0x44acd3ec00c9b),CNST_LIMB(0x3b8ead35b82f4),CNST_LIMB(0x7a1ca1fa55a8c),CNST_LIMB(0x98634149273d)},910,4}, + {CNST_LIMB(0x96fc1b51999b5),{CNST_LIMB(0xb20e950936df3d71),12,CNST_LIMB(0x899afa996b260),CNST_LIMB(0x2d7d06dae3233),CNST_LIMB(0x143e323027e28),CNST_LIMB(0x8483b9a26498e),CNST_LIMB(0x689b7b1e2fc91)},914,4}, + {CNST_LIMB(0x99d2dc5aa820b),{CNST_LIMB(0xaa0bd71d4333c056),12,CNST_LIMB(0x71d5124399b20),CNST_LIMB(0x62e94421a897f),CNST_LIMB(0x892c96c6ff4dc),CNST_LIMB(0x54dc6420d0ec4),CNST_LIMB(0x43a10331ebf4f)},918,4}, + {CNST_LIMB(0x9c18c1a21f755),{CNST_LIMB(0xa3d7a1305040e509),12,CNST_LIMB(0x4a6f652c96ebf),CNST_LIMB(0x92a1dbc9a1bc4),CNST_LIMB(0x7856fe0adb2e7),CNST_LIMB(0x65020d02f02aa),CNST_LIMB(0x7983e2f6dcbd)},922,4}, + {CNST_LIMB(0xa019a0d84ce05),{CNST_LIMB(0x99580856e1c2e36b),12,CNST_LIMB(0x5060429959a17),CNST_LIMB(0x8af3dd6c8fedb),CNST_LIMB(0x8521b97cefc72),CNST_LIMB(0x7289dc3848291),CNST_LIMB(0x51cb410c11cef)},926,4}, + {CNST_LIMB(0xa3837104af50b),{CNST_LIMB(0x90cc816ca127f31c),12,CNST_LIMB(0x7fcd3ea8e707c),CNST_LIMB(0x1ea9bdca73534),CNST_LIMB(0x3d0d37ad79bcf),CNST_LIMB(0x78befa2ea5ef8),CNST_LIMB(0x8c7846571c14b)},930,4}, + {CNST_LIMB(0xa74ba276e925b),{CNST_LIMB(0x87bcf3ca6aa1f420),12,CNST_LIMB(0x876dcb0272647),CNST_LIMB(0x63761f150b253),CNST_LIMB(0xa347a550c386b),CNST_LIMB(0xb7438cfe5ad4),CNST_LIMB(0x7bca2b8c0aabf)},934,4}, + {CNST_LIMB(0xad0c05b3ae661),{CNST_LIMB(0x7ab7cf1782b58dcf),12,CNST_LIMB(0x54750c4f56635),CNST_LIMB(0x2eac67167559c),CNST_LIMB(0x563c222f2aff7),CNST_LIMB(0x7b738313b7ac1),CNST_LIMB(0x65d997bccd9d9)},938,4}, + {CNST_LIMB(0xb0da5211cc3e7),{CNST_LIMB(0x72916ab867f7595c),12,CNST_LIMB(0xfa941ccadf01),CNST_LIMB(0x8d756d36295ea),CNST_LIMB(0x4f9f479e132fd),CNST_LIMB(0x18526df562fde),CNST_LIMB(0x434f07e1d9d33)},942,4}, + {CNST_LIMB(0xb36ca8c3991af),{CNST_LIMB(0x6d41bd767e129ba0),12,CNST_LIMB(0x13836edce5114),CNST_LIMB(0xa52c71bc138ab),CNST_LIMB(0x339d5f264e899),CNST_LIMB(0x65473fc2cfa57),CNST_LIMB(0x4714fd9da5ac0)},946,4}, + {CNST_LIMB(0xb6694790c60df),{CNST_LIMB(0x6746add17a9a2fee),12,CNST_LIMB(0x4c2521610f0f4),CNST_LIMB(0x1ef55755cab96),CNST_LIMB(0x3bb413c494cbb),CNST_LIMB(0x59bedca68abba),CNST_LIMB(0x618c95ba5598b)},950,4}, + {CNST_LIMB(0xb89a345c48d7d),{CNST_LIMB(0x6302ff6c309d06ee),12,CNST_LIMB(0x2296406fcba90),CNST_LIMB(0x4d697f4e83909),CNST_LIMB(0xa16067eedb775),CNST_LIMB(0xa50f824607f2b),CNST_LIMB(0x3d3946b54c9f9)},954,4}, + {CNST_LIMB(0xbb02a8b8a132b),{CNST_LIMB(0x5e70bfded3b337fc),12,CNST_LIMB(0x8c29c2d62d33),CNST_LIMB(0x3f082e296ef8f),CNST_LIMB(0x49afe57a19b90),CNST_LIMB(0xb7bd5be58da15),CNST_LIMB(0x8de61bd7e627f)},958,4}, + {CNST_LIMB(0xbd6468bb171ff),{CNST_LIMB(0x5a0880d51b052fd7),12,CNST_LIMB(0x64a7322bed5a0),CNST_LIMB(0x3f94ed2b89267),CNST_LIMB(0x980b9bde44b2d),CNST_LIMB(0x4a6676c0e7d13),CNST_LIMB(0xb24baad1f0c40)},962,4}, + {CNST_LIMB(0xc17671b548641),{CNST_LIMB(0x52c0b00a813a011e),12,CNST_LIMB(0x85095e7597d4),CNST_LIMB(0x55524352a702c),CNST_LIMB(0x868164742fab5),CNST_LIMB(0x3b3bcfdffb2cf),CNST_LIMB(0xab11b067d542f)},966,4}, + {CNST_LIMB(0xc57f07d496e1b),{CNST_LIMB(0x4bd58ed22f4b2aac),12,CNST_LIMB(0x449a9c42f9a11),CNST_LIMB(0x2b9c2279a88de),CNST_LIMB(0xa905cf41733e1),CNST_LIMB(0x206b2bfa8b896),CNST_LIMB(0xb378d16c66efd)},970,4}, + {CNST_LIMB(0xc814b88200ac3),{CNST_LIMB(0x478c251716699c98),12,CNST_LIMB(0x97df5b023b898),CNST_LIMB(0x5507d796eedc1),CNST_LIMB(0xb4a34312d58e3),CNST_LIMB(0x4324fc6d4f6f2),CNST_LIMB(0x29d3a7f3d88da)},974,4}, + {CNST_LIMB(0xcb958ba8e9259),{CNST_LIMB(0x41e93d5390ce4a3c),12,CNST_LIMB(0x75906ffdbe592),CNST_LIMB(0x35d1e8b619b02),CNST_LIMB(0x5535c122a3ba7),CNST_LIMB(0xb2c9d287f29c8),CNST_LIMB(0x7f9a7f1adf9d9)},978,4}, + {CNST_LIMB(0xcfaa956d67517),{CNST_LIMB(0x3b9549c76b39f2a8),12,CNST_LIMB(0x44a2e5454ad61),CNST_LIMB(0xa8d0541bab05b),CNST_LIMB(0x801e8693083d4),CNST_LIMB(0xc17c6af57bddf),CNST_LIMB(0xc7b4d9a0870d9)},982,4}, + {CNST_LIMB(0xd56380a0e8273),{CNST_LIMB(0x331ecd3feca3d608),12,CNST_LIMB(0xc5686ff8a7efd),CNST_LIMB(0x61e35c54a4f3f),CNST_LIMB(0x4bf5dc73ede0f),CNST_LIMB(0x2bf7f029f09a5),CNST_LIMB(0x718dc3463c882)},986,4}, + {CNST_LIMB(0xd9c8b65d94f5b),{CNST_LIMB(0x2cec062e71d179c4),12,CNST_LIMB(0xa3aaac38dbec6),CNST_LIMB(0x78cabf09fa56c),CNST_LIMB(0xcaf0fccc6b30b),CNST_LIMB(0xce30344eb1fac),CNST_LIMB(0x4ba46e5575b11)},990,4}, + {CNST_LIMB(0xdc90a482debcb),{CNST_LIMB(0x2920b89d6fc02e7f),12,CNST_LIMB(0x9f0f9b3b403a),CNST_LIMB(0x619327b332542),CNST_LIMB(0xa75eae1f8ff9f),CNST_LIMB(0x62350a1cba491),CNST_LIMB(0x22ac2e8eb19f9)},994,4}, + {CNST_LIMB(0xe0ac9922e6235),{CNST_LIMB(0x23b187206556b5c4),12,CNST_LIMB(0x157440c67a3c9),CNST_LIMB(0x696b5be3cc464),CNST_LIMB(0x2ebcde890e790),CNST_LIMB(0xae767f93832de),CNST_LIMB(0xcb1eade2d80a8)},998,4} +#endif diff --git a/vere/ext/h2o/build.zig b/vere/ext/h2o/build.zig new file mode 100644 index 0000000..1cba2fa --- /dev/null +++ b/vere/ext/h2o/build.zig @@ -0,0 +1,454 @@ +const std = @import("std"); + +pub fn build(b: *std.Build) !void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + const t = target.result; + + const patches = b.dependency("patches", .{ + .target = target, + .optimize = optimize, + }); + + const openssl = b.dependency("openssl", .{ + .target = target, + .optimize = optimize, + }); + + const curl = b.dependency("curl", .{ + .target = target, + .optimize = optimize, + }); + + const libuv = b.dependency("libuv", .{ + .target = target, + .optimize = optimize, + }); + + const zlib = b.dependency("zlib", .{ + .target = target, + .optimize = optimize, + }); + + const wslay = b.dependency("wslay", .{ + .target = target, + .optimize = optimize, + }); + + const h2o_c = b.dependency("h2o", .{ + .target = target, + .optimize = optimize, + }); + + const sse2neon_c = b.dependency("sse2neon", .{ + .target = target, + .optimize = optimize, + }); + + const cloexec = b.addStaticLibrary(.{ + .name = "cloexec", + .target = target, + .optimize = optimize, + }); + + cloexec.linkLibC(); + + cloexec.addIncludePath(h2o_c.path("deps/cloexec")); + + cloexec.addCSourceFiles(.{ + .root = h2o_c.path("deps/cloexec"), + .files = &.{"cloexec.c"}, + .flags = &.{ + "-fno-sanitize=all", + if (t.isGnuLibC()) + "-D_GNU_SOURCE" + else + "", + }, + }); + + cloexec.installHeader(h2o_c.path("deps/cloexec/cloexec.h"), "cloexec.h"); + + const klib = b.addStaticLibrary(.{ + .name = "klib", + .target = target, + .optimize = optimize, + }); + + klib.linkLibrary(curl.artifact("curl")); + klib.linkLibrary(zlib.artifact("z")); + klib.linkLibC(); + + klib.addIncludePath(h2o_c.path("deps/klib")); + if (t.cpu.arch == .aarch64) { + klib.addIncludePath(sse2neon_c.path(".")); + } + + klib.addCSourceFiles(.{ + .root = h2o_c.path("deps/klib"), + .files = &.{ + "bgzf.c", + "khmm.c", + "kmath.c", + "knetfile.c", + "knhx.c", + // "kopen.c", + "ksa.c", + "kson.c", + "kstring.c", + // "ksw.c", + "kthread.c", + "kurl.c", + }, + .flags = &.{ + "-fno-sanitize=all", + }, + }); + klib.addCSourceFiles(.{ + .root = patches.path("h2o-2.2.6/deps/klib"), + .files = &.{ + "ksw.c", + "kopen.c", + }, + .flags = &.{ + "-fno-sanitize=all", + if (t.cpu.arch == .aarch64) + "-DURBIT_RUNTIME_CPU_AARCH64" + else + "", + }, + }); + + klib.installHeadersDirectory(h2o_c.path("deps/klib"), "", .{ + .include_extensions = &.{".h"}, + }); + + const libgkc = b.addStaticLibrary(.{ + .name = "libgkc", + .target = target, + .optimize = optimize, + }); + + libgkc.linkLibC(); + + libgkc.addIncludePath(h2o_c.path("deps/libgkc")); + + libgkc.addCSourceFiles(.{ + .root = h2o_c.path("deps/libgkc"), + .files = &.{"gkc.c"}, + .flags = &.{ + "-fno-sanitize=all", + }, + }); + + libgkc.installHeader(h2o_c.path("deps/libgkc/gkc.h"), "gkc.h"); + + const libyrmcds = b.addStaticLibrary(.{ + .name = "libyrmcds", + .target = target, + .optimize = optimize, + }); + + libyrmcds.linkLibC(); + + libyrmcds.addIncludePath(h2o_c.path("deps/libyrmcds")); + + libyrmcds.addCSourceFiles(.{ + .root = h2o_c.path("deps/libyrmcds"), + .files = &.{ + "close.c", + "connect.c", + "counter.c", + "recv.c", + "send.c", + "send_text.c", + "set_compression.c", + "socket.c", + "strerror.c", + "text_mode.c", + // "yc-cnt.c", + // "yc.c", + }, + .flags = &.{ + "-fno-sanitize=all", + "-Wall", + "-Wconversion", + "-gdwarf-3", + "-O2", + }, + }); + + libyrmcds.installHeadersDirectory(h2o_c.path("deps/libyrmcds"), "", .{ + .include_extensions = &.{".h"}, + }); + + const picohttpparser = b.addStaticLibrary(.{ + .name = "picohttpparser", + .target = target, + .optimize = optimize, + }); + + picohttpparser.linkLibC(); + + picohttpparser.addIncludePath(h2o_c.path("deps/picohttpparser")); + if (t.cpu.arch == .aarch64) { + picohttpparser.addIncludePath(sse2neon_c.path(".")); + } + + picohttpparser.addCSourceFiles(.{ + .root = patches.path("h2o-2.2.6/deps/picohttpparser"), + .files = &.{"picohttpparser.c"}, + .flags = &.{ + if (t.cpu.arch == .aarch64) + "-DURBIT_RUNTIME_CPU_AARCH64" + else + "", + }, + }); + + picohttpparser.installHeadersDirectory(h2o_c.path("deps/picohttpparser"), "", .{ + .include_extensions = &.{".h"}, + }); + + const cifra = b.addStaticLibrary(.{ + .name = "cifra", + .target = target, + .optimize = optimize, + }); + + cifra.linkLibC(); + + cifra.addIncludePath(h2o_c.path("deps/picotls/deps/cifra/src")); + cifra.addIncludePath(h2o_c.path("deps/picotls/deps/cifra/src/ext")); + + cifra.addCSourceFiles(.{ + .root = h2o_c.path("deps/picotls/deps/cifra/src"), + .files = &.{ + "aes.c", + "sha256.c", + "sha512.c", + "chash.c", + "hmac.c", + "pbkdf2.c", + "modes.c", + "eax.c", + "gf128.c", + "blockwise.c", + "cmac.c", + "salsa20.c", + "chacha20.c", + "curve25519.c", + "gcm.c", + "cbcmac.c", + "ccm.c", + "sha3.c", + "sha1.c", + "poly1305.c", + "norx.c", + "chacha20poly1305.c", + "drbg.c", + "ocb.c", + }, + .flags = &.{ + "-fno-sanitize=all", + }, + }); + + cifra.installHeadersDirectory(h2o_c.path("deps/picotls/deps/cifra/src"), "", .{ + .include_extensions = &.{ ".h", "curve25519.tweetnacl.c" }, + }); + + const micro_ecc = b.addStaticLibrary(.{ + .name = "micro_ecc", + .target = target, + .optimize = optimize, + }); + + micro_ecc.linkLibC(); + + micro_ecc.addIncludePath(h2o_c.path("deps/picotls/deps/micro-ecc")); + + micro_ecc.addCSourceFiles(.{ + .root = h2o_c.path("deps/picotls/deps/micro-ecc"), + .files = &.{"uECC.c"}, + }); + + micro_ecc.installHeadersDirectory(h2o_c.path("deps/picotls/deps/micro-ecc"), "", .{ + .include_extensions = &.{ ".h", ".inc" }, + }); + + const picotls = b.addStaticLibrary(.{ + .name = "picotls", + .target = target, + .optimize = optimize, + }); + + picotls.linkLibrary(openssl.artifact("ssl")); + picotls.linkLibrary(cifra); + picotls.linkLibrary(micro_ecc); + picotls.linkLibC(); + + picotls.addIncludePath(h2o_c.path("deps/picotls/include")); + if (t.cpu.arch == .aarch64) { + picotls.addIncludePath(sse2neon_c.path(".")); + } + + picotls.addCSourceFiles(.{ + .root = h2o_c.path("deps/picotls/lib"), + .files = &.{ + "asn1.c", + "cifra.c", + "minicrypto-pem.c", + "openssl.c", + "pembase64.c", + "picotls.c", + "uecc.c", + }, + .flags = &.{ + "-fno-sanitize=all", + "-std=c99", + "-Wall", + "-O2", + }, + }); + + picotls.installHeadersDirectory(h2o_c.path("deps/picotls/include"), "", .{ + .include_extensions = &.{".h"}, + }); + + // const ssl_conservatory = b.addStaticLibrary(.{ + // .name = "ssl_conservatory", + // .target = target, + // .optimize = optimize, + // }); + + // ssl_conservatory.linkLibrary(openssl.artifact("ssl")); + // ssl_conservatory.linkLibC(); + + // ssl_conservatory.addIncludePath(h2o_c.path("deps/ssl-conservatory/openssl")); + + // ssl_conservatory.addCSourceFiles(.{ + // .root = h2o_c.path("deps/ssl-conservatory/openssl"), + // .files = &.{"openssl_hostname_validation.c"}, + // }); + + // ssl_conservatory.installHeader(h2o_c.path("deps/ssl-conservatory/openssl/openssl_hostname_validation.h"), "openssl_hostname_validation.h"); + + const h2o = b.addStaticLibrary(.{ + .name = "h2o", + .target = target, + .optimize = optimize, + }); + + h2o.linkLibrary(openssl.artifact("ssl")); + h2o.linkLibrary(openssl.artifact("crypto")); + h2o.linkLibrary(zlib.artifact("z")); + h2o.linkLibrary(libuv.artifact("libuv")); + h2o.linkLibrary(cloexec); + h2o.linkLibrary(klib); + h2o.linkLibrary(libgkc); + h2o.linkLibrary(libyrmcds); + h2o.linkLibrary(picohttpparser); + h2o.linkLibrary(picotls); + h2o.linkLibrary(wslay.artifact("wslay")); + // h2o.linkLibrary(ssl_conservatory); + h2o.linkLibC(); + + h2o.addIncludePath(h2o_c.path("deps/golombset")); + h2o.addIncludePath(h2o_c.path("deps/yoml")); + + h2o.addIncludePath(h2o_c.path("include")); + h2o.addIncludePath(h2o_c.path("include/h2o")); + h2o.addIncludePath(h2o_c.path("include/h2o/socket")); + h2o.addIncludePath(wslay.path("lib/includes")); + + h2o.addCSourceFiles(.{ + .root = h2o_c.path("lib"), + .files = &.{ + "common/cache.c", + "common/file.c", + "common/filecache.c", + "common/hostinfo.c", + "common/http1client.c", + "common/memcached.c", + "common/memory.c", + "common/multithread.c", + "common/serverutil.c", + "common/socket.c", + "common/socketpool.c", + "common/string.c", + "common/time.c", + "common/timeout.c", + "common/url.c", + "core/config.c", + "core/configurator.c", + "core/context.c", + "core/headers.c", + "core/logconf.c", + "core/proxy.c", + "core/request.c", + "core/token.c", + "core/util.c", + "handler/access_log.c", + "handler/chunked.c", + "handler/compress.c", + "handler/compress/gzip.c", + "handler/configurator/access_log.c", + "handler/configurator/compress.c", + "handler/configurator/errordoc.c", + "handler/configurator/expires.c", + "handler/configurator/fastcgi.c", + "handler/configurator/file.c", + "handler/configurator/headers.c", + "handler/configurator/headers_util.c", + "handler/configurator/http2_debug_state.c", + "handler/configurator/proxy.c", + "handler/configurator/redirect.c", + "handler/configurator/reproxy.c", + "handler/configurator/status.c", + "handler/configurator/throttle_resp.c", + "handler/errordoc.c", + "handler/expires.c", + "handler/fastcgi.c", + "handler/file.c", + "handler/headers.c", + "handler/headers_util.c", + "handler/http2_debug_state.c", + "handler/mimemap.c", + "handler/proxy.c", + "handler/redirect.c", + "handler/reproxy.c", + "handler/status.c", + "handler/status/durations.c", + "handler/status/events.c", + "handler/status/requests.c", + "handler/throttle_resp.c", + "http1.c", + "http2/cache_digests.c", + "http2/casper.c", + "http2/connection.c", + "http2/frame.c", + "http2/hpack.c", + "http2/http2_debug_state.c", + "http2/scheduler.c", + "http2/stream.c", + "websocket.c", + "tunnel.c", + }, + .flags = &.{ + "-fno-sanitize=all", + "-std=c99", + "-g3", + "-O2", + "-pthread", + "-DH2O_USE_LIBUV", + "-DH2O_USE_PICOTLS", + "-DWSLAY_VERSION=\\\"1.1.1\\\"", + if (t.os.tag == .linux) "-D_GNU_SOURCE" else "", + }, + }); + + h2o.installHeadersDirectory(h2o_c.path("include"), "", .{}); + + b.installArtifact(h2o); +} diff --git a/vere/ext/h2o/build.zig.zon b/vere/ext/h2o/build.zig.zon new file mode 100644 index 0000000..5fc0143 --- /dev/null +++ b/vere/ext/h2o/build.zig.zon @@ -0,0 +1,36 @@ +.{ + .name = "h2o", + .version = "0.0.1", + .dependencies = .{ + .h2o = .{ + .url = "https://github.com/h2o/h2o/archive/refs/tags/v2.2.6.tar.gz", + .hash = "N-V-__8AAFCFqAJvtQxxWhMSgnUsfNkqvj9WR_OsKK5cVv3S", + }, + .libuv = .{ + .path = "../libuv", + }, + .openssl = .{ + .path = "../openssl", + }, + .curl = .{ + .path = "../curl", + }, + .zlib = .{ + .url = "https://github.com/allyourcodebase/zlib/archive/61e7df7e996ec5a5f13a653db3c419adb340d6ef.tar.gz", + .hash = "zlib-1.3.1-ZZQ7lbYMAAB1hTSOKSXAKAgHsfDcyWNH_37ojw5WSpgR", + }, + .sse2neon = .{ + .url = "https://github.com/DLTcollab/sse2neon/archive/refs/tags/v1.5.1.tar.gz", + .hash = "N-V-__8AAPihCgDO1A74r0pFZaoafeZ41DR435smSDwGLbLb", + }, + .wslay = .{ + .path = "../wslay", + }, + .patches = .{ + .path = "./patches", + }, + }, + .paths = .{ + "", + }, +} diff --git a/vere/ext/h2o/patches/h2o-2.2.6/deps/klib/kopen.c b/vere/ext/h2o/patches/h2o-2.2.6/deps/klib/kopen.c new file mode 100644 index 0000000..095fb4e --- /dev/null +++ b/vere/ext/h2o/patches/h2o-2.2.6/deps/klib/kopen.c @@ -0,0 +1,344 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifndef _WIN32 +#include +#include +#include +#endif + +#ifdef _WIN32 +#define _KO_NO_NET +#endif + +#ifndef _KO_NO_NET +static int socket_wait(int fd, int is_read) +{ + fd_set fds, *fdr = 0, *fdw = 0; + struct timeval tv; + int ret; + tv.tv_sec = 5; tv.tv_usec = 0; // 5 seconds time out + FD_ZERO(&fds); + FD_SET(fd, &fds); + if (is_read) fdr = &fds; + else fdw = &fds; + ret = select(fd+1, fdr, fdw, 0, &tv); + if (ret == -1) perror("select"); + return ret; +} + +static int socket_connect(const char *host, const char *port) +{ +#define __err_connect(func) do { perror(func); freeaddrinfo(res); return -1; } while (0) + + int on = 1, fd; + struct linger lng = { 0, 0 }; + struct addrinfo hints, *res = 0; + memset(&hints, 0, sizeof(struct addrinfo)); + hints.ai_family = AF_UNSPEC; + hints.ai_socktype = SOCK_STREAM; + if (getaddrinfo(host, port, &hints, &res) != 0) __err_connect("getaddrinfo"); + if ((fd = socket(res->ai_family, res->ai_socktype, res->ai_protocol)) == -1) __err_connect("socket"); + if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)) == -1) __err_connect("setsockopt"); + if (setsockopt(fd, SOL_SOCKET, SO_LINGER, &lng, sizeof(lng)) == -1) __err_connect("setsockopt"); + if (connect(fd, res->ai_addr, res->ai_addrlen) != 0) __err_connect("connect"); + freeaddrinfo(res); + return fd; +#undef __err_connect +} + +static int http_open(const char *fn) +{ + char *p, *proxy, *q, *http_host, *host, *port, *path, *buf; + int fd, ret, l; + + /* parse URL; adapted from khttp_parse_url() in knetfile.c */ + if (strstr(fn, "http://") != fn) return 0; + // set ->http_host + for (p = (char*)fn + 7; *p && *p != '/'; ++p); + l = p - fn - 7; + http_host = calloc(l + 1, 1); + strncpy(http_host, fn + 7, l); + http_host[l] = 0; + for (q = http_host; *q && *q != ':'; ++q); + if (*q == ':') *q++ = 0; + // get http_proxy + proxy = getenv("http_proxy"); + // set host, port and path + if (proxy == 0) { + host = strdup(http_host); // when there is no proxy, server name is identical to http_host name. + port = strdup(*q? q : "80"); + path = strdup(*p? p : "/"); + } else { + host = (strstr(proxy, "http://") == proxy)? strdup(proxy + 7) : strdup(proxy); + for (q = host; *q && *q != ':'; ++q); + if (*q == ':') *q++ = 0; + port = strdup(*q? q : "80"); + path = strdup(fn); + } + + /* connect; adapted from khttp_connect() in knetfile.c */ + l = 0; + fd = socket_connect(host, port); + buf = calloc(0x10000, 1); // FIXME: I am lazy... But in principle, 64KB should be large enough. + l += sprintf(buf + l, "GET %s HTTP/1.0\r\nHost: %s\r\n", path, http_host); + l += sprintf(buf + l, "\r\n"); + write(fd, buf, l); + l = 0; + while (read(fd, buf + l, 1)) { // read HTTP header; FIXME: bad efficiency + if (buf[l] == '\n' && l >= 3) + if (strncmp(buf + l - 3, "\r\n\r\n", 4) == 0) break; + ++l; + } + buf[l] = 0; + if (l < 14) { // prematured header + close(fd); + fd = -1; + } + ret = strtol(buf + 8, &p, 0); // HTTP return code + if (ret != 200) { + close(fd); + fd = -1; + } + free(buf); free(http_host); free(host); free(port); free(path); + return fd; +} + +typedef struct { + int max_response, ctrl_fd; + char *response; +} ftpaux_t; + +static int kftp_get_response(ftpaux_t *aux) +{ + unsigned char c; + int n = 0; + char *p; + if (socket_wait(aux->ctrl_fd, 1) <= 0) return 0; + while (read(aux->ctrl_fd, &c, 1)) { // FIXME: this is *VERY BAD* for unbuffered I/O + if (n >= aux->max_response) { + aux->max_response = aux->max_response? aux->max_response<<1 : 256; + aux->response = realloc(aux->response, aux->max_response); + } + aux->response[n++] = c; + if (c == '\n') { + if (n >= 4 && isdigit(aux->response[0]) && isdigit(aux->response[1]) && isdigit(aux->response[2]) + && aux->response[3] != '-') break; + n = 0; + continue; + } + } + if (n < 2) return -1; + aux->response[n-2] = 0; + return strtol(aux->response, &p, 0); +} + +static int kftp_send_cmd(ftpaux_t *aux, const char *cmd, int is_get) +{ + if (socket_wait(aux->ctrl_fd, 0) <= 0) return -1; // socket is not ready for writing + write(aux->ctrl_fd, cmd, strlen(cmd)); + return is_get? kftp_get_response(aux) : 0; +} + +static int ftp_open(const char *fn) +{ + char *p, *host = 0, *port = 0, *retr = 0; + char host2[80], port2[10]; + int v[6], l, fd = -1, ret, pasv_port, pasv_ip[4]; + ftpaux_t aux; + + /* parse URL */ + if (strstr(fn, "ftp://") != fn) return 0; + for (p = (char*)fn + 6; *p && *p != '/'; ++p); + if (*p != '/') return 0; + l = p - fn - 6; + port = strdup("21"); + host = calloc(l + 1, 1); + strncpy(host, fn + 6, l); + retr = calloc(strlen(p) + 8, 1); + sprintf(retr, "RETR %s\r\n", p); + + /* connect to ctrl */ + memset(&aux, 0, sizeof(ftpaux_t)); + aux.ctrl_fd = socket_connect(host, port); + if (aux.ctrl_fd == -1) goto ftp_open_end; /* fail to connect ctrl */ + + /* connect to the data stream */ + kftp_get_response(&aux); + kftp_send_cmd(&aux, "USER anonymous\r\n", 1); + kftp_send_cmd(&aux, "PASS kopen@\r\n", 1); + kftp_send_cmd(&aux, "TYPE I\r\n", 1); + kftp_send_cmd(&aux, "PASV\r\n", 1); + for (p = aux.response; *p && *p != '('; ++p); + if (*p != '(') goto ftp_open_end; + ++p; + sscanf(p, "%d,%d,%d,%d,%d,%d", &v[0], &v[1], &v[2], &v[3], &v[4], &v[5]); + memcpy(pasv_ip, v, 4 * sizeof(int)); + pasv_port = (v[4]<<8&0xff00) + v[5]; + kftp_send_cmd(&aux, retr, 0); + sprintf(host2, "%d.%d.%d.%d", pasv_ip[0], pasv_ip[1], pasv_ip[2], pasv_ip[3]); + sprintf(port2, "%d", pasv_port); + fd = socket_connect(host2, port2); + if (fd == -1) goto ftp_open_end; + ret = kftp_get_response(&aux); + if (ret != 150) { + close(fd); + fd = -1; + } + close(aux.ctrl_fd); + +ftp_open_end: + free(host); free(port); free(retr); free(aux.response); + return fd; +} +#endif /* !defined(_KO_NO_NET) */ + +static char **cmd2argv(const char *cmd) +{ + int i, beg, end, argc; + char **argv, *p, *q, *str; + end = strlen(cmd); + for (i = end - 1; i >= 0; --i) + if (!isspace(cmd[i])) break; + end = i + 1; + for (beg = 0; beg < end; ++beg) + if (!isspace(cmd[beg])) break; + if (beg == end) return 0; + for (i = beg + 1, argc = 0; i < end; ++i) + if (isspace(cmd[i]) && !isspace(cmd[i-1])) + ++argc; + argv = (char**)calloc(argc + 2, sizeof(void*)); + argv[0] = str = (char*)calloc(end - beg + 1, 1); + strncpy(argv[0], cmd + beg, end - beg); + for (i = argc = 1, q = p = str; i < end - beg; ++i) + if (isspace(str[i])) str[i] = 0; + else if (str[i] && str[i-1] == 0) argv[argc++] = &str[i]; + return argv; +} + +#define KO_STDIN 1 +#define KO_FILE 2 +#define KO_PIPE 3 +#define KO_HTTP 4 +#define KO_FTP 5 + +typedef struct { + int type, fd; + pid_t pid; +} koaux_t; + +void *kopen(const char *fn, int *_fd) +{ + koaux_t *aux = 0; + *_fd = -1; + if (strstr(fn, "http://") == fn) { + aux = calloc(1, sizeof(koaux_t)); + aux->type = KO_HTTP; + aux->fd = http_open(fn); + } else if (strstr(fn, "ftp://") == fn) { + aux = calloc(1, sizeof(koaux_t)); + aux->type = KO_FTP; + aux->fd = ftp_open(fn); + } else if (strcmp(fn, "-") == 0) { + aux = calloc(1, sizeof(koaux_t)); + aux->type = KO_STDIN; + aux->fd = STDIN_FILENO; + } else { + const char *p, *q; + for (p = fn; *p; ++p) + if (!isspace(*p)) break; + if (*p == '<') { // pipe open + int need_shell, pfd[2]; + pid_t pid; + // a simple check to see if we need to invoke a shell; not always working + for (q = p + 1; *q; ++q) + if (ispunct(*q) && *q != '.' && *q != '_' && *q != '-' && *q != ':') + break; + need_shell = (*q != 0); + pipe(pfd); + pid = vfork(); + if (pid == -1) { /* vfork() error */ + close(pfd[0]); close(pfd[1]); + return 0; + } + if (pid == 0) { /* the child process */ + char **argv; /* FIXME: I do not know if this will lead to a memory leak */ + close(pfd[0]); + dup2(pfd[1], STDOUT_FILENO); + close(pfd[1]); + if (!need_shell) { + argv = cmd2argv(p + 1); + execvp(argv[0], argv); + free(argv[0]); free(argv); + } else execl("/bin/sh", "sh", "-c", p + 1, NULL); + exit(1); + } else { /* parent process */ + close(pfd[1]); + aux = calloc(1, sizeof(koaux_t)); + aux->type = KO_PIPE; + aux->fd = pfd[0]; + aux->pid = pid; + } + } else { +#ifdef _WIN32 + *_fd = open(fn, O_RDONLY | O_BINARY); +#else + *_fd = open(fn, O_RDONLY); +#endif + if (*_fd) { + aux = calloc(1, sizeof(koaux_t)); + aux->type = KO_FILE; + aux->fd = *_fd; + } + } + } + *_fd = aux->fd; + return aux; +} + +int kclose(void *a) +{ + koaux_t *aux = (koaux_t*)a; + if (aux->type == KO_PIPE) { + int status; + pid_t pid; + pid = waitpid(aux->pid, &status, WNOHANG); + if (pid != aux->pid) kill(aux->pid, 15); + } + return 0; +} + +#ifdef _KO_MAIN +#define BUF_SIZE 0x10000 +int main(int argc, char *argv[]) +{ + void *x; + int l, fd; + unsigned char buf[BUF_SIZE]; + FILE *fp; + if (argc == 1) { + fprintf(stderr, "Usage: kopen \n"); + return 1; + } + x = kopen(argv[1], &fd); + fp = fdopen(fd, "r"); + if (fp == 0) { + fprintf(stderr, "ERROR: fail to open the input\n"); + return 1; + } + do { + if ((l = fread(buf, 1, BUF_SIZE, fp)) != 0) + fwrite(buf, 1, l, stdout); + } while (l == BUF_SIZE); + fclose(fp); + kclose(x); + return 0; +} +#endif diff --git a/vere/ext/h2o/patches/h2o-2.2.6/deps/klib/ksw.c b/vere/ext/h2o/patches/h2o-2.2.6/deps/klib/ksw.c new file mode 100644 index 0000000..05af32f --- /dev/null +++ b/vere/ext/h2o/patches/h2o-2.2.6/deps/klib/ksw.c @@ -0,0 +1,637 @@ +/* The MIT License + + Copyright (c) 2011 by Attractive Chaos + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ + +#include +#include +#if defined(URBIT_RUNTIME_CPU_AARCH64) +#include "sse2neon.h" +#else +#include +#endif +#include "ksw.h" + +#ifdef __GNUC__ +#define LIKELY(x) __builtin_expect((x),1) +#define UNLIKELY(x) __builtin_expect((x),0) +#else +#define LIKELY(x) (x) +#define UNLIKELY(x) (x) +#endif + +const kswr_t g_defr = { 0, -1, -1, -1, -1, -1, -1 }; + +struct _kswq_t { + int qlen, slen; + uint8_t shift, mdiff, max, size; + __m128i *qp, *H0, *H1, *E, *Hmax; +}; + +/** + * Initialize the query data structure + * + * @param size Number of bytes used to store a score; valid valures are 1 or 2 + * @param qlen Length of the query sequence + * @param query Query sequence + * @param m Size of the alphabet + * @param mat Scoring matrix in a one-dimension array + * + * @return Query data structure + */ +kswq_t *ksw_qinit(int size, int qlen, const uint8_t *query, int m, const int8_t *mat) +{ + kswq_t *q; + int slen, a, tmp, p; + + size = size > 1? 2 : 1; + p = 8 * (3 - size); // # values per __m128i + slen = (qlen + p - 1) / p; // segmented length + q = (kswq_t*)malloc(sizeof(kswq_t) + 256 + 16 * slen * (m + 4)); // a single block of memory + q->qp = (__m128i*)(((size_t)q + sizeof(kswq_t) + 15) >> 4 << 4); // align memory + q->H0 = q->qp + slen * m; + q->H1 = q->H0 + slen; + q->E = q->H1 + slen; + q->Hmax = q->E + slen; + q->slen = slen; q->qlen = qlen; q->size = size; + // compute shift + tmp = m * m; + for (a = 0, q->shift = 127, q->mdiff = 0; a < tmp; ++a) { // find the minimum and maximum score + if (mat[a] < (int8_t)q->shift) q->shift = mat[a]; + if (mat[a] > (int8_t)q->mdiff) q->mdiff = mat[a]; + } + q->max = q->mdiff; + q->shift = 256 - q->shift; // NB: q->shift is uint8_t + q->mdiff += q->shift; // this is the difference between the min and max scores + // An example: p=8, qlen=19, slen=3 and segmentation: + // {{0,3,6,9,12,15,18,-1},{1,4,7,10,13,16,-1,-1},{2,5,8,11,14,17,-1,-1}} + if (size == 1) { + int8_t *t = (int8_t*)q->qp; + for (a = 0; a < m; ++a) { + int i, k, nlen = slen * p; + const int8_t *ma = mat + a * m; + for (i = 0; i < slen; ++i) + for (k = i; k < nlen; k += slen) // p iterations + *t++ = (k >= qlen? 0 : ma[query[k]]) + q->shift; + } + } else { + int16_t *t = (int16_t*)q->qp; + for (a = 0; a < m; ++a) { + int i, k, nlen = slen * p; + const int8_t *ma = mat + a * m; + for (i = 0; i < slen; ++i) + for (k = i; k < nlen; k += slen) // p iterations + *t++ = (k >= qlen? 0 : ma[query[k]]); + } + } + return q; +} + +kswr_t ksw_u8(kswq_t *q, int tlen, const uint8_t *target, int _gapo, int _gape, int xtra) // the first gap costs -(_o+_e) +{ + int slen, i, m_b, n_b, te = -1, gmax = 0, minsc, endsc; + uint64_t *b; + __m128i zero, gapoe, gape, shift, *H0, *H1, *E, *Hmax; + kswr_t r; + +#define __max_16(ret, xx) do { \ + (xx) = _mm_max_epu8((xx), _mm_srli_si128((xx), 8)); \ + (xx) = _mm_max_epu8((xx), _mm_srli_si128((xx), 4)); \ + (xx) = _mm_max_epu8((xx), _mm_srli_si128((xx), 2)); \ + (xx) = _mm_max_epu8((xx), _mm_srli_si128((xx), 1)); \ + (ret) = _mm_extract_epi16((xx), 0) & 0x00ff; \ + } while (0) + + // initialization + r = g_defr; + minsc = (xtra&KSW_XSUBO)? xtra&0xffff : 0x10000; + endsc = (xtra&KSW_XSTOP)? xtra&0xffff : 0x10000; + m_b = n_b = 0; b = 0; + zero = _mm_set1_epi32(0); + gapoe = _mm_set1_epi8(_gapo + _gape); + gape = _mm_set1_epi8(_gape); + shift = _mm_set1_epi8(q->shift); + H0 = q->H0; H1 = q->H1; E = q->E; Hmax = q->Hmax; + slen = q->slen; + for (i = 0; i < slen; ++i) { + _mm_store_si128(E + i, zero); + _mm_store_si128(H0 + i, zero); + _mm_store_si128(Hmax + i, zero); + } + // the core loop + for (i = 0; i < tlen; ++i) { + int j, k, cmp, imax; + __m128i e, h, f = zero, max = zero, *S = q->qp + target[i] * slen; // s is the 1st score vector + h = _mm_load_si128(H0 + slen - 1); // h={2,5,8,11,14,17,-1,-1} in the above example + h = _mm_slli_si128(h, 1); // h=H(i-1,-1); << instead of >> because x64 is little-endian + for (j = 0; LIKELY(j < slen); ++j) { + /* SW cells are computed in the following order: + * H(i,j) = max{H(i-1,j-1)+S(i,j), E(i,j), F(i,j)} + * E(i+1,j) = max{H(i,j)-q, E(i,j)-r} + * F(i,j+1) = max{H(i,j)-q, F(i,j)-r} + */ + // compute H'(i,j); note that at the beginning, h=H'(i-1,j-1) + h = _mm_adds_epu8(h, _mm_load_si128(S + j)); + h = _mm_subs_epu8(h, shift); // h=H'(i-1,j-1)+S(i,j) + e = _mm_load_si128(E + j); // e=E'(i,j) + h = _mm_max_epu8(h, e); + h = _mm_max_epu8(h, f); // h=H'(i,j) + max = _mm_max_epu8(max, h); // set max + _mm_store_si128(H1 + j, h); // save to H'(i,j) + // now compute E'(i+1,j) + h = _mm_subs_epu8(h, gapoe); // h=H'(i,j)-gapo + e = _mm_subs_epu8(e, gape); // e=E'(i,j)-gape + e = _mm_max_epu8(e, h); // e=E'(i+1,j) + _mm_store_si128(E + j, e); // save to E'(i+1,j) + // now compute F'(i,j+1) + f = _mm_subs_epu8(f, gape); + f = _mm_max_epu8(f, h); + // get H'(i-1,j) and prepare for the next j + h = _mm_load_si128(H0 + j); // h=H'(i-1,j) + } + // NB: we do not need to set E(i,j) as we disallow adjecent insertion and then deletion + for (k = 0; LIKELY(k < 16); ++k) { // this block mimics SWPS3; NB: H(i,j) updated in the lazy-F loop cannot exceed max + f = _mm_slli_si128(f, 1); + for (j = 0; LIKELY(j < slen); ++j) { + h = _mm_load_si128(H1 + j); + h = _mm_max_epu8(h, f); // h=H'(i,j) + _mm_store_si128(H1 + j, h); + h = _mm_subs_epu8(h, gapoe); + f = _mm_subs_epu8(f, gape); + cmp = _mm_movemask_epi8(_mm_cmpeq_epi8(_mm_subs_epu8(f, h), zero)); + if (UNLIKELY(cmp == 0xffff)) goto end_loop16; + } + } +end_loop16: + //int k;for (k=0;k<16;++k)printf("%d ", ((uint8_t*)&max)[k]);printf("\n"); + __max_16(imax, max); // imax is the maximum number in max + if (imax >= minsc) { // write the b array; this condition adds branching unfornately + if (n_b == 0 || (int32_t)b[n_b-1] + 1 != i) { // then append + if (n_b == m_b) { + m_b = m_b? m_b<<1 : 8; + b = (uint64_t*)realloc(b, 8 * m_b); + } + b[n_b++] = (uint64_t)imax<<32 | i; + } else if ((int)(b[n_b-1]>>32) < imax) b[n_b-1] = (uint64_t)imax<<32 | i; // modify the last + } + if (imax > gmax) { + gmax = imax; te = i; // te is the end position on the target + for (j = 0; LIKELY(j < slen); ++j) // keep the H1 vector + _mm_store_si128(Hmax + j, _mm_load_si128(H1 + j)); + if (gmax + q->shift >= 255 || gmax >= endsc) break; + } + S = H1; H1 = H0; H0 = S; // swap H0 and H1 + } + r.score = gmax + q->shift < 255? gmax : 255; + r.te = te; + if (r.score != 255) { // get a->qe, the end of query match; find the 2nd best score + int max = -1, low, high, qlen = slen * 16; + uint8_t *t = (uint8_t*)Hmax; + for (i = 0; i < qlen; ++i, ++t) + if ((int)*t > max) max = *t, r.qe = i / 16 + i % 16 * slen; + //printf("%d,%d\n", max, gmax); + if (b) { + i = (r.score + q->max - 1) / q->max; + low = te - i; high = te + i; + for (i = 0; i < n_b; ++i) { + int e = (int32_t)b[i]; + if ((e < low || e > high) && (int)(b[i]>>32) > r.score2) + r.score2 = b[i]>>32, r.te2 = e; + } + } + } + free(b); + return r; +} + +kswr_t ksw_i16(kswq_t *q, int tlen, const uint8_t *target, int _gapo, int _gape, int xtra) // the first gap costs -(_o+_e) +{ + int slen, i, m_b, n_b, te = -1, gmax = 0, minsc, endsc; + uint64_t *b; + __m128i zero, gapoe, gape, *H0, *H1, *E, *Hmax; + kswr_t r; + +#define __max_8(ret, xx) do { \ + (xx) = _mm_max_epi16((xx), _mm_srli_si128((xx), 8)); \ + (xx) = _mm_max_epi16((xx), _mm_srli_si128((xx), 4)); \ + (xx) = _mm_max_epi16((xx), _mm_srli_si128((xx), 2)); \ + (ret) = _mm_extract_epi16((xx), 0); \ + } while (0) + + // initialization + r = g_defr; + minsc = (xtra&KSW_XSUBO)? xtra&0xffff : 0x10000; + endsc = (xtra&KSW_XSTOP)? xtra&0xffff : 0x10000; + m_b = n_b = 0; b = 0; + zero = _mm_set1_epi32(0); + gapoe = _mm_set1_epi16(_gapo + _gape); + gape = _mm_set1_epi16(_gape); + H0 = q->H0; H1 = q->H1; E = q->E; Hmax = q->Hmax; + slen = q->slen; + for (i = 0; i < slen; ++i) { + _mm_store_si128(E + i, zero); + _mm_store_si128(H0 + i, zero); + _mm_store_si128(Hmax + i, zero); + } + // the core loop + for (i = 0; i < tlen; ++i) { + int j, k, imax; + __m128i e, h, f = zero, max = zero, *S = q->qp + target[i] * slen; // s is the 1st score vector + h = _mm_load_si128(H0 + slen - 1); // h={2,5,8,11,14,17,-1,-1} in the above example + h = _mm_slli_si128(h, 2); + for (j = 0; LIKELY(j < slen); ++j) { + h = _mm_adds_epi16(h, *S++); + e = _mm_load_si128(E + j); + h = _mm_max_epi16(h, e); + h = _mm_max_epi16(h, f); + max = _mm_max_epi16(max, h); + _mm_store_si128(H1 + j, h); + h = _mm_subs_epu16(h, gapoe); + e = _mm_subs_epu16(e, gape); + e = _mm_max_epi16(e, h); + _mm_store_si128(E + j, e); + f = _mm_subs_epu16(f, gape); + f = _mm_max_epi16(f, h); + h = _mm_load_si128(H0 + j); + } + for (k = 0; LIKELY(k < 16); ++k) { + f = _mm_slli_si128(f, 2); + for (j = 0; LIKELY(j < slen); ++j) { + h = _mm_load_si128(H1 + j); + h = _mm_max_epi16(h, f); + _mm_store_si128(H1 + j, h); + h = _mm_subs_epu16(h, gapoe); + f = _mm_subs_epu16(f, gape); + if(UNLIKELY(!_mm_movemask_epi8(_mm_cmpgt_epi16(f, h)))) goto end_loop8; + } + } +end_loop8: + __max_8(imax, max); + if (imax >= minsc) { + if (n_b == 0 || (int32_t)b[n_b-1] + 1 != i) { + if (n_b == m_b) { + m_b = m_b? m_b<<1 : 8; + b = (uint64_t*)realloc(b, 8 * m_b); + } + b[n_b++] = (uint64_t)imax<<32 | i; + } else if ((int)(b[n_b-1]>>32) < imax) b[n_b-1] = (uint64_t)imax<<32 | i; // modify the last + } + if (imax > gmax) { + gmax = imax; te = i; + for (j = 0; LIKELY(j < slen); ++j) + _mm_store_si128(Hmax + j, _mm_load_si128(H1 + j)); + if (gmax >= endsc) break; + } + S = H1; H1 = H0; H0 = S; + } + r.score = gmax; r.te = te; + { + int max = -1, low, high, qlen = slen * 8; + uint16_t *t = (uint16_t*)Hmax; + for (i = 0, r.qe = -1; i < qlen; ++i, ++t) + if ((int)*t > max) max = *t, r.qe = i / 8 + i % 8 * slen; + if (b) { + i = (r.score + q->max - 1) / q->max; + low = te - i; high = te + i; + for (i = 0; i < n_b; ++i) { + int e = (int32_t)b[i]; + if ((e < low || e > high) && (int)(b[i]>>32) > r.score2) + r.score2 = b[i]>>32, r.te2 = e; + } + } + } + free(b); + return r; +} + +static void revseq(int l, uint8_t *s) +{ + int i, t; + for (i = 0; i < l>>1; ++i) + t = s[i], s[i] = s[l - 1 - i], s[l - 1 - i] = t; +} + +kswr_t ksw_align(int qlen, uint8_t *query, int tlen, uint8_t *target, int m, const int8_t *mat, int gapo, int gape, int xtra, kswq_t **qry) +{ + int size; + kswq_t *q; + kswr_t r, rr; + kswr_t (*func)(kswq_t*, int, const uint8_t*, int, int, int); + + q = (qry && *qry)? *qry : ksw_qinit((xtra&KSW_XBYTE)? 1 : 2, qlen, query, m, mat); + if (qry && *qry == 0) *qry = q; + func = q->size == 2? ksw_i16 : ksw_u8; + size = q->size; + r = func(q, tlen, target, gapo, gape, xtra); + if (qry == 0) free(q); + if ((xtra&KSW_XSTART) == 0 || ((xtra&KSW_XSUBO) && r.score < (xtra&0xffff))) return r; + revseq(r.qe + 1, query); revseq(r.te + 1, target); // +1 because qe/te points to the exact end, not the position after the end + q = ksw_qinit(size, r.qe + 1, query, m, mat); + rr = func(q, tlen, target, gapo, gape, KSW_XSTOP | r.score); + revseq(r.qe + 1, query); revseq(r.te + 1, target); + free(q); + if (r.score == rr.score) + r.tb = r.te - rr.te, r.qb = r.qe - rr.qe; + return r; +} + +/******************** + *** SW extension *** + ********************/ + +typedef struct { + int32_t h, e; +} eh_t; + +int ksw_extend(int qlen, const uint8_t *query, int tlen, const uint8_t *target, int m, const int8_t *mat, int gapo, int gape, int w, int h0, int *_qle, int *_tle) +{ + eh_t *eh; // score array + int8_t *qp; // query profile + int i, j, k, gapoe = gapo + gape, beg, end, max, max_i, max_j, max_gap; + if (h0 < 0) h0 = 0; + // allocate memory + qp = malloc(qlen * m); + eh = calloc(qlen + 1, 8); + // generate the query profile + for (k = i = 0; k < m; ++k) { + const int8_t *p = &mat[k * m]; + for (j = 0; j < qlen; ++j) qp[i++] = p[query[j]]; + } + // fill the first row + eh[0].h = h0; eh[1].h = h0 > gapoe? h0 - gapoe : 0; + for (j = 2; j <= qlen && eh[j-1].h > gape; ++j) + eh[j].h = eh[j-1].h - gape; + // adjust $w if it is too large + k = m * m; + for (i = 0, max = 0; i < k; ++i) // get the max score + max = max > mat[i]? max : mat[i]; + max_gap = (int)((double)(qlen * max - gapo) / gape + 1.); + max_gap = max_gap > 1? max_gap : 1; + w = w < max_gap? w : max_gap; + // DP loop + max = h0, max_i = max_j = -1; + beg = 0, end = qlen; + for (i = 0; LIKELY(i < tlen); ++i) { + int f = 0, h1, m = 0, mj = -1; + int8_t *q = &qp[target[i] * qlen]; + // compute the first column + h1 = h0 - (gapo + gape * (i + 1)); + if (h1 < 0) h1 = 0; + // apply the band and the constraint (if provided) + if (beg < i - w) beg = i - w; + if (end > i + w + 1) end = i + w + 1; + if (end > qlen) end = qlen; + for (j = beg; LIKELY(j < end); ++j) { + // At the beginning of the loop: eh[j] = { H(i-1,j-1), E(i,j) }, f = F(i,j) and h1 = H(i,j-1) + // Similar to SSE2-SW, cells are computed in the following order: + // H(i,j) = max{H(i-1,j-1)+S(i,j), E(i,j), F(i,j)} + // E(i+1,j) = max{H(i,j)-gapo, E(i,j)} - gape + // F(i,j+1) = max{H(i,j)-gapo, F(i,j)} - gape + eh_t *p = &eh[j]; + int h = p->h, e = p->e; // get H(i-1,j-1) and E(i-1,j) + p->h = h1; // set H(i,j-1) for the next row + h += q[j]; + h = h > e? h : e; + h = h > f? h : f; + h1 = h; // save H(i,j) to h1 for the next column + mj = m > h? mj : j; + m = m > h? m : h; // m is stored at eh[mj+1] + h -= gapoe; + h = h > 0? h : 0; + e -= gape; + e = e > h? e : h; // computed E(i+1,j) + p->e = e; // save E(i+1,j) for the next row + f -= gape; + f = f > h? f : h; // computed F(i,j+1) + } + eh[end].h = h1; eh[end].e = 0; + if (m == 0) break; + if (m > max) max = m, max_i = i, max_j = mj; + // update beg and end for the next round + for (j = mj; j >= beg && eh[j].h; --j); + beg = j + 1; + for (j = mj + 2; j <= end && eh[j].h; ++j); + end = j; + //beg = 0; end = qlen; // uncomment this line for debugging + } + free(eh); free(qp); + if (_qle) *_qle = max_j + 1; + if (_tle) *_tle = max_i + 1; + return max; +} + +/******************** + * Global alignment * + ********************/ + +#define MINUS_INF -0x40000000 + +static inline uint32_t *push_cigar(int *n_cigar, int *m_cigar, uint32_t *cigar, int op, int len) +{ + if (*n_cigar == 0 || op != (cigar[(*n_cigar) - 1]&0xf)) { + if (*n_cigar == *m_cigar) { + *m_cigar = *m_cigar? (*m_cigar)<<1 : 4; + cigar = realloc(cigar, (*m_cigar) << 2); + } + cigar[(*n_cigar)++] = len<<4 | op; + } else cigar[(*n_cigar)-1] += len<<4; + return cigar; +} + +int ksw_global(int qlen, const uint8_t *query, int tlen, const uint8_t *target, int m, const int8_t *mat, int gapo, int gape, int w, int *n_cigar_, uint32_t **cigar_) +{ + eh_t *eh; + int8_t *qp; // query profile + int i, j, k, gapoe = gapo + gape, score, n_col; + uint8_t *z; // backtrack matrix; in each cell: f<<4|e<<2|h; in principle, we can halve the memory, but backtrack will be a little more complex + if (n_cigar_) *n_cigar_ = 0; + // allocate memory + n_col = qlen < 2*w+1? qlen : 2*w+1; // maximum #columns of the backtrack matrix + z = malloc(n_col * tlen); + qp = malloc(qlen * m); + eh = calloc(qlen + 1, 8); + // generate the query profile + for (k = i = 0; k < m; ++k) { + const int8_t *p = &mat[k * m]; + for (j = 0; j < qlen; ++j) qp[i++] = p[query[j]]; + } + // fill the first row + eh[0].h = 0; eh[0].e = MINUS_INF; + for (j = 1; j <= qlen && j <= w; ++j) + eh[j].h = -(gapo + gape * j), eh[j].e = MINUS_INF; + for (; j <= qlen; ++j) eh[j].h = eh[j].e = MINUS_INF; // everything is -inf outside the band + // DP loop + for (i = 0; LIKELY(i < tlen); ++i) { // target sequence is in the outer loop + int32_t f = MINUS_INF, h1, beg, end; + int8_t *q = &qp[target[i] * qlen]; + uint8_t *zi = &z[i * n_col]; + beg = i > w? i - w : 0; + end = i + w + 1 < qlen? i + w + 1 : qlen; // only loop through [beg,end) of the query sequence + h1 = beg == 0? -(gapo + gape * (i + 1)) : MINUS_INF; + for (j = beg; LIKELY(j < end); ++j) { + // This loop is organized in a similar way to ksw_extend() and ksw_sse2(), except: + // 1) not checking h>0; 2) recording direction for backtracking + eh_t *p = &eh[j]; + int32_t h = p->h, e = p->e; + uint8_t d; // direction + p->h = h1; + h += q[j]; + d = h > e? 0 : 1; + h = h > e? h : e; + d = h > f? d : 2; + h = h > f? h : f; + h1 = h; + h -= gapoe; + e -= gape; + d |= e > h? 1<<2 : 0; + e = e > h? e : h; + p->e = e; + f -= gape; + d |= f > h? 2<<4 : 0; // if we want to halve the memory, use one bit only, instead of two + f = f > h? f : h; + zi[j - beg] = d; // z[i,j] keeps h for the current cell and e/f for the next cell + } + eh[end].h = h1; eh[end].e = MINUS_INF; + } + score = eh[qlen].h; + if (n_cigar_ && cigar_) { // backtrack + int n_cigar = 0, m_cigar = 0, which = 0; + uint32_t *cigar = 0, tmp; + i = tlen - 1; k = (i + w + 1 < qlen? i + w + 1 : qlen) - 1; // (i,k) points to the last cell + while (i >= 0 && k >= 0) { + which = z[i * n_col + (k - (i > w? i - w : 0))] >> (which<<1) & 3; + if (which == 0) cigar = push_cigar(&n_cigar, &m_cigar, cigar, 0, 1), --i, --k; + else if (which == 1) cigar = push_cigar(&n_cigar, &m_cigar, cigar, 2, 1), --i; + else cigar = push_cigar(&n_cigar, &m_cigar, cigar, 1, 1), --k; + } + if (i >= 0) cigar = push_cigar(&n_cigar, &m_cigar, cigar, 2, i + 1); + if (k >= 0) cigar = push_cigar(&n_cigar, &m_cigar, cigar, 1, k + 1); + for (i = 0; i < n_cigar>>1; ++i) // reverse CIGAR + tmp = cigar[i], cigar[i] = cigar[n_cigar-1-i], cigar[n_cigar-1-i] = tmp; + *n_cigar_ = n_cigar, *cigar_ = cigar; + } + free(eh); free(qp); free(z); + return score; +} + +/******************************************* + * Main function (not compiled by default) * + *******************************************/ + +#ifdef _KSW_MAIN + +#include +#include +#include +#include "kseq.h" +KSEQ_INIT(gzFile, gzread) + +unsigned char seq_nt4_table[256] = { + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 0, 4, 1, 4, 4, 4, 2, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 0, 4, 1, 4, 4, 4, 2, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 +}; + +int main(int argc, char *argv[]) +{ + int c, sa = 1, sb = 3, i, j, k, forward_only = 0, max_rseq = 0; + int8_t mat[25]; + int gapo = 5, gape = 2, minsc = 0, xtra = KSW_XSTART; + uint8_t *rseq = 0; + gzFile fpt, fpq; + kseq_t *kst, *ksq; + + // parse command line + while ((c = getopt(argc, argv, "a:b:q:r:ft:1")) >= 0) { + switch (c) { + case 'a': sa = atoi(optarg); break; + case 'b': sb = atoi(optarg); break; + case 'q': gapo = atoi(optarg); break; + case 'r': gape = atoi(optarg); break; + case 't': minsc = atoi(optarg); break; + case 'f': forward_only = 1; break; + case '1': xtra |= KSW_XBYTE; break; + } + } + if (optind + 2 > argc) { + fprintf(stderr, "Usage: ksw [-1] [-f] [-a%d] [-b%d] [-q%d] [-r%d] [-t%d] \n", sa, sb, gapo, gape, minsc); + return 1; + } + if (minsc > 0xffff) minsc = 0xffff; + xtra |= KSW_XSUBO | minsc; + // initialize scoring matrix + for (i = k = 0; i < 4; ++i) { + for (j = 0; j < 4; ++j) + mat[k++] = i == j? sa : -sb; + mat[k++] = 0; // ambiguous base + } + for (j = 0; j < 5; ++j) mat[k++] = 0; + // open file + fpt = gzopen(argv[optind], "r"); kst = kseq_init(fpt); + fpq = gzopen(argv[optind+1], "r"); ksq = kseq_init(fpq); + // all-pair alignment + while (kseq_read(ksq) > 0) { + kswq_t *q[2] = {0, 0}; + kswr_t r; + for (i = 0; i < (int)ksq->seq.l; ++i) ksq->seq.s[i] = seq_nt4_table[(int)ksq->seq.s[i]]; + if (!forward_only) { // reverse + if ((int)ksq->seq.m > max_rseq) { + max_rseq = ksq->seq.m; + rseq = (uint8_t*)realloc(rseq, max_rseq); + } + for (i = 0, j = ksq->seq.l - 1; i < (int)ksq->seq.l; ++i, --j) + rseq[j] = ksq->seq.s[i] == 4? 4 : 3 - ksq->seq.s[i]; + } + gzrewind(fpt); kseq_rewind(kst); + while (kseq_read(kst) > 0) { + for (i = 0; i < (int)kst->seq.l; ++i) kst->seq.s[i] = seq_nt4_table[(int)kst->seq.s[i]]; + r = ksw_align(ksq->seq.l, (uint8_t*)ksq->seq.s, kst->seq.l, (uint8_t*)kst->seq.s, 5, mat, gapo, gape, xtra, &q[0]); + if (r.score >= minsc) + printf("%s\t%d\t%d\t%s\t%d\t%d\t%d\t%d\t%d\n", kst->name.s, r.tb, r.te+1, ksq->name.s, r.qb, r.qe+1, r.score, r.score2, r.te2); + if (rseq) { + r = ksw_align(ksq->seq.l, rseq, kst->seq.l, (uint8_t*)kst->seq.s, 5, mat, gapo, gape, xtra, &q[1]); + if (r.score >= minsc) + printf("%s\t%d\t%d\t%s\t%d\t%d\t%d\t%d\t%d\n", kst->name.s, r.tb, r.te+1, ksq->name.s, (int)ksq->seq.l - r.qb, (int)ksq->seq.l - 1 - r.qe, r.score, r.score2, r.te2); + } + } + free(q[0]); free(q[1]); + } + free(rseq); + kseq_destroy(kst); gzclose(fpt); + kseq_destroy(ksq); gzclose(fpq); + return 0; +} +#endif diff --git a/vere/ext/h2o/patches/h2o-2.2.6/deps/klib/test/kbit_test.c b/vere/ext/h2o/patches/h2o-2.2.6/deps/klib/test/kbit_test.c new file mode 100644 index 0000000..ece2a45 --- /dev/null +++ b/vere/ext/h2o/patches/h2o-2.2.6/deps/klib/test/kbit_test.c @@ -0,0 +1,141 @@ +#include +#include +#include +#if defined(URBIT_RUNTIME_CPU_AARCH64) +#include "sse2neon.h" +#else +#include +#endif +#include "kbit.h" + +// from bowtie-0.9.8.1 +inline static int bt1_pop64(uint64_t x) // the kbi_popcount64() equivalence; similar to popcount_2() in wiki +{ + x -= ((x >> 1) & 0x5555555555555555llu); + x = (x & 0x3333333333333333llu) + ((x >> 2) & 0x3333333333333333llu); + x = (x + (x >> 4)) & 0x0F0F0F0F0F0F0F0Fllu; + x = x + (x >> 8); + x = x + (x >> 16); + x = x + (x >> 32); + return x & 0x3F; +} + +inline static int bt1_countInU64(uint64_t dw, int c) // the kbi_DNAcount64() equivalence +{ + uint64_t dwA = dw & 0xAAAAAAAAAAAAAAAAllu; + uint64_t dwNA = dw & ~0xAAAAAAAAAAAAAAAAllu; + uint64_t tmp; + switch (c) { + case 0: tmp = (dwA >> 1) | dwNA; break; + case 1: tmp = ~(dwA >> 1) & dwNA; break; + case 2: tmp = (dwA >> 1) & ~dwNA; break; + default: tmp = (dwA >> 1) & dwNA; + } + tmp = bt1_pop64(tmp); + if (c == 0) tmp = 32 - tmp; + return (int)tmp; +} + +// from bigmagic +static uint32_t sse2_bit_count32(const __m128i* block, const __m128i* block_end) +{ + const unsigned mu1 = 0x55555555; + const unsigned mu2 = 0x33333333; + const unsigned mu3 = 0x0F0F0F0F; + const unsigned mu4 = 0x0000003F; + + uint32_t tcnt[4]; + + // Loading masks + __m128i m1 = _mm_set_epi32 (mu1, mu1, mu1, mu1); + __m128i m2 = _mm_set_epi32 (mu2, mu2, mu2, mu2); + __m128i m3 = _mm_set_epi32 (mu3, mu3, mu3, mu3); + __m128i m4 = _mm_set_epi32 (mu4, mu4, mu4, mu4); + __m128i mcnt; + mcnt = _mm_xor_si128(m1, m1); // cnt = 0 + + __m128i tmp1, tmp2; + do + { + __m128i b = _mm_load_si128(block); + ++block; + + // b = (b & 0x55555555) + (b >> 1 & 0x55555555); + tmp1 = _mm_srli_epi32(b, 1); // tmp1 = (b >> 1 & 0x55555555) + tmp1 = _mm_and_si128(tmp1, m1); + tmp2 = _mm_and_si128(b, m1); // tmp2 = (b & 0x55555555) + b = _mm_add_epi32(tmp1, tmp2); // b = tmp1 + tmp2 + + // b = (b & 0x33333333) + (b >> 2 & 0x33333333); + tmp1 = _mm_srli_epi32(b, 2); // (b >> 2 & 0x33333333) + tmp1 = _mm_and_si128(tmp1, m2); + tmp2 = _mm_and_si128(b, m2); // (b & 0x33333333) + b = _mm_add_epi32(tmp1, tmp2); // b = tmp1 + tmp2 + + // b = (b + (b >> 4)) & 0x0F0F0F0F; + tmp1 = _mm_srli_epi32(b, 4); // tmp1 = b >> 4 + b = _mm_add_epi32(b, tmp1); // b = b + (b >> 4) + b = _mm_and_si128(b, m3); // & 0x0F0F0F0F + + // b = b + (b >> 8); + tmp1 = _mm_srli_epi32 (b, 8); // tmp1 = b >> 8 + b = _mm_add_epi32(b, tmp1); // b = b + (b >> 8) + + // b = (b + (b >> 16)) & 0x0000003F; + tmp1 = _mm_srli_epi32 (b, 16); // b >> 16 + b = _mm_add_epi32(b, tmp1); // b + (b >> 16) + b = _mm_and_si128(b, m4); // (b >> 16) & 0x0000003F; + + mcnt = _mm_add_epi32(mcnt, b); // mcnt += b + + } while (block < block_end); + + _mm_store_si128((__m128i*)tcnt, mcnt); + + return tcnt[0] + tcnt[1] + tcnt[2] + tcnt[3]; +} + +int main(void) +{ + int i, N = 100000000; + uint64_t *x, cnt; + clock_t t; + int c = 1; + + x = (uint64_t*)calloc(N, 8); + srand48(11); + for (i = 0; i < N; ++i) + x[i] = (uint64_t)lrand48() << 32 ^ lrand48(); + + fprintf(stderr, "\n===> Calculate # of 1 in an integer (popcount) <===\n"); + + t = clock(); cnt = 0; + for (i = 0; i < N; ++i) cnt += kbi_popcount64(x[i]); + fprintf(stderr, "%20s\t%20ld\t%10.6f\n", "kbit", (long)cnt, (double)(clock() - t) / CLOCKS_PER_SEC); + + t = clock(); cnt = 0; + for (i = 0; i < N; ++i) cnt += bt1_pop64(x[i]); + fprintf(stderr, "%20s\t%20ld\t%10.6f\n", "wiki-popcount_2", (long)cnt, (double)(clock() - t) / CLOCKS_PER_SEC); + + t = clock(); cnt = 0; + for (i = 0; i < N; ++i) cnt += __builtin_popcountl(x[i]); + fprintf(stderr, "%20s\t%20ld\t%10.6f\n", "__builtin_popcountl", (long)cnt, (double)(clock() - t) / CLOCKS_PER_SEC); + + t = clock(); cnt = 0; + cnt += sse2_bit_count32((__m128i*)x, (__m128i*)(x+N)); + fprintf(stderr, "%20s\t%20ld\t%10.6f\n", "SSE2-32bit", (long)cnt, (double)(clock() - t) / CLOCKS_PER_SEC); + + fprintf(stderr, "\n===> Count '%c' in 2-bit encoded integers <===\n", "ACGT"[c]); + + t = clock(); cnt = 0; + for (i = 0; i < N; ++i) cnt += kbi_DNAcount64(x[i], c); + fprintf(stderr, "%20s\t%20ld\t%10.6f\n", "kbit", (long)cnt, (double)(clock() - t) / CLOCKS_PER_SEC); + + t = clock(); cnt = 0; + for (i = 0; i < N; ++i) cnt += bt1_countInU64(x[i], c); + fprintf(stderr, "%20s\t%20ld\t%10.6f\n", "bowtie1", (long)cnt, (double)(clock() - t) / CLOCKS_PER_SEC); + + fprintf(stderr, "\n"); + free(x); + return 0; +} diff --git a/vere/ext/h2o/patches/h2o-2.2.6/deps/picohttpparser/picohttpparser.c b/vere/ext/h2o/patches/h2o-2.2.6/deps/picohttpparser/picohttpparser.c new file mode 100644 index 0000000..c786f4b --- /dev/null +++ b/vere/ext/h2o/patches/h2o-2.2.6/deps/picohttpparser/picohttpparser.c @@ -0,0 +1,622 @@ +/* + * Copyright (c) 2009-2014 Kazuho Oku, Tokuhiro Matsuno, Daisuke Murase, + * Shigeo Mitsunari + * + * The software is licensed under either the MIT License (below) or the Perl + * license. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#include +#include +#include +#ifdef __SSE4_2__ +#if defined(URBIT_RUNTIME_CPU_AARCH64) +#include "sse2neon.h" +#elif defined(_MSC_VER) +#include +#else +#include +#endif +#endif +#include "picohttpparser.h" + +/* $Id: 376b401445aeea5fc39b0d3f020fc2fa0c69b69b $ */ + +#if __GNUC__ >= 3 +#define likely(x) __builtin_expect(!!(x), 1) +#define unlikely(x) __builtin_expect(!!(x), 0) +#else +#define likely(x) (x) +#define unlikely(x) (x) +#endif + +#ifdef _MSC_VER +#define ALIGNED(n) _declspec(align(n)) +#else +#define ALIGNED(n) __attribute__((aligned(n))) +#endif + +#define IS_PRINTABLE_ASCII(c) ((unsigned char)(c)-040u < 0137u) + +#define CHECK_EOF() \ + if (buf == buf_end) { \ + *ret = -2; \ + return NULL; \ + } + +#define EXPECT_CHAR_NO_CHECK(ch) \ + if (*buf++ != ch) { \ + *ret = -1; \ + return NULL; \ + } + +#define EXPECT_CHAR(ch) \ + CHECK_EOF(); \ + EXPECT_CHAR_NO_CHECK(ch); + +#define ADVANCE_TOKEN(tok, toklen) \ + do { \ + const char *tok_start = buf; \ + static const char ALIGNED(16) ranges2[] = "\000\040\177\177"; \ + int found2; \ + buf = findchar_fast(buf, buf_end, ranges2, sizeof(ranges2) - 1, &found2); \ + if (!found2) { \ + CHECK_EOF(); \ + } \ + while (1) { \ + if (*buf == ' ') { \ + break; \ + } else if (unlikely(!IS_PRINTABLE_ASCII(*buf))) { \ + if ((unsigned char)*buf < '\040' || *buf == '\177') { \ + *ret = -1; \ + return NULL; \ + } \ + } \ + ++buf; \ + CHECK_EOF(); \ + } \ + tok = tok_start; \ + toklen = buf - tok_start; \ + } while (0) + +static const char *token_char_map = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\1\0\1\1\1\1\1\0\0\1\1\0\1\1\0\1\1\1\1\1\1\1\1\1\1\0\0\0\0\0\0" + "\0\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\0\0\0\1\1" + "\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\0\1\0\1\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; + +static const char *findchar_fast(const char *buf, const char *buf_end, const char *ranges, size_t ranges_size, int *found) +{ + *found = 0; +#if __SSE4_2__ + if (likely(buf_end - buf >= 16)) { + __m128i ranges16 = _mm_loadu_si128((const __m128i *)ranges); + + size_t left = (buf_end - buf) & ~15; + do { + __m128i b16 = _mm_loadu_si128((const __m128i *)buf); + int r = _mm_cmpestri(ranges16, ranges_size, b16, 16, _SIDD_LEAST_SIGNIFICANT | _SIDD_CMP_RANGES | _SIDD_UBYTE_OPS); + if (unlikely(r != 16)) { + buf += r; + *found = 1; + break; + } + buf += 16; + left -= 16; + } while (likely(left != 0)); + } +#else + /* suppress unused parameter warning */ + (void)buf_end; + (void)ranges; + (void)ranges_size; +#endif + return buf; +} + +static const char *get_token_to_eol(const char *buf, const char *buf_end, const char **token, size_t *token_len, int *ret) +{ + const char *token_start = buf; + +#ifdef __SSE4_2__ + static const char ranges1[] = "\0\010" + /* allow HT */ + "\012\037" + /* allow SP and up to but not including DEL */ + "\177\177" + /* allow chars w. MSB set */ + ; + int found; + buf = findchar_fast(buf, buf_end, ranges1, sizeof(ranges1) - 1, &found); + if (found) + goto FOUND_CTL; +#else + /* find non-printable char within the next 8 bytes, this is the hottest code; manually inlined */ + while (likely(buf_end - buf >= 8)) { +#define DOIT() \ + do { \ + if (unlikely(!IS_PRINTABLE_ASCII(*buf))) \ + goto NonPrintable; \ + ++buf; \ + } while (0) + DOIT(); + DOIT(); + DOIT(); + DOIT(); + DOIT(); + DOIT(); + DOIT(); + DOIT(); +#undef DOIT + continue; + NonPrintable: + if ((likely((unsigned char)*buf < '\040') && likely(*buf != '\011')) || unlikely(*buf == '\177')) { + goto FOUND_CTL; + } + ++buf; + } +#endif + for (;; ++buf) { + CHECK_EOF(); + if (unlikely(!IS_PRINTABLE_ASCII(*buf))) { + if ((likely((unsigned char)*buf < '\040') && likely(*buf != '\011')) || unlikely(*buf == '\177')) { + goto FOUND_CTL; + } + } + } +FOUND_CTL: + if (likely(*buf == '\015')) { + ++buf; + EXPECT_CHAR('\012'); + *token_len = buf - 2 - token_start; + } else if (*buf == '\012') { + *token_len = buf - token_start; + ++buf; + } else { + *ret = -1; + return NULL; + } + *token = token_start; + + return buf; +} + +static const char *is_complete(const char *buf, const char *buf_end, size_t last_len, int *ret) +{ + int ret_cnt = 0; + buf = last_len < 3 ? buf : buf + last_len - 3; + + while (1) { + CHECK_EOF(); + if (*buf == '\015') { + ++buf; + CHECK_EOF(); + EXPECT_CHAR('\012'); + ++ret_cnt; + } else if (*buf == '\012') { + ++buf; + ++ret_cnt; + } else { + ++buf; + ret_cnt = 0; + } + if (ret_cnt == 2) { + return buf; + } + } + + *ret = -2; + return NULL; +} + +#define PARSE_INT(valp_, mul_) \ + if (*buf < '0' || '9' < *buf) { \ + buf++; \ + *ret = -1; \ + return NULL; \ + } \ + *(valp_) = (mul_) * (*buf++ - '0'); + +#define PARSE_INT_3(valp_) \ + do { \ + int res_ = 0; \ + PARSE_INT(&res_, 100) \ + *valp_ = res_; \ + PARSE_INT(&res_, 10) \ + *valp_ += res_; \ + PARSE_INT(&res_, 1) \ + *valp_ += res_; \ + } while (0) + +/* returned pointer is always within [buf, buf_end), or null */ +static const char *parse_http_version(const char *buf, const char *buf_end, int *minor_version, int *ret) +{ + /* we want at least [HTTP/1.] to try to parse */ + if (buf_end - buf < 9) { + *ret = -2; + return NULL; + } + EXPECT_CHAR_NO_CHECK('H'); + EXPECT_CHAR_NO_CHECK('T'); + EXPECT_CHAR_NO_CHECK('T'); + EXPECT_CHAR_NO_CHECK('P'); + EXPECT_CHAR_NO_CHECK('/'); + EXPECT_CHAR_NO_CHECK('1'); + EXPECT_CHAR_NO_CHECK('.'); + PARSE_INT(minor_version, 1); + return buf; +} + +static const char *parse_headers(const char *buf, const char *buf_end, struct phr_header *headers, size_t *num_headers, + size_t max_headers, int *ret) +{ + for (;; ++*num_headers) { + CHECK_EOF(); + if (*buf == '\015') { + ++buf; + EXPECT_CHAR('\012'); + break; + } else if (*buf == '\012') { + ++buf; + break; + } + if (*num_headers == max_headers) { + *ret = -1; + return NULL; + } + if (!(*num_headers != 0 && (*buf == ' ' || *buf == '\t'))) { + /* parsing name, but do not discard SP before colon, see + * http://www.mozilla.org/security/announce/2006/mfsa2006-33.html */ + headers[*num_headers].name = buf; + static const char ALIGNED(16) ranges1[] = "\x00 " /* control chars and up to SP */ + "\"\"" /* 0x22 */ + "()" /* 0x28,0x29 */ + ",," /* 0x2c */ + "//" /* 0x2f */ + ":@" /* 0x3a-0x40 */ + "[]" /* 0x5b-0x5d */ + "{\377"; /* 0x7b-0xff */ + int found; + buf = findchar_fast(buf, buf_end, ranges1, sizeof(ranges1) - 1, &found); + if (!found) { + CHECK_EOF(); + } + while (1) { + if (*buf == ':') { + break; + } else if (!token_char_map[(unsigned char)*buf]) { + *ret = -1; + return NULL; + } + ++buf; + CHECK_EOF(); + } + if ((headers[*num_headers].name_len = buf - headers[*num_headers].name) == 0) { + *ret = -1; + return NULL; + } + ++buf; + for (;; ++buf) { + CHECK_EOF(); + if (!(*buf == ' ' || *buf == '\t')) { + break; + } + } + } else { + headers[*num_headers].name = NULL; + headers[*num_headers].name_len = 0; + } + if ((buf = get_token_to_eol(buf, buf_end, &headers[*num_headers].value, &headers[*num_headers].value_len, ret)) == NULL) { + return NULL; + } + } + return buf; +} + +static const char *parse_request(const char *buf, const char *buf_end, const char **method, size_t *method_len, const char **path, + size_t *path_len, int *minor_version, struct phr_header *headers, size_t *num_headers, + size_t max_headers, int *ret) +{ + /* skip first empty line (some clients add CRLF after POST content) */ + CHECK_EOF(); + if (*buf == '\015') { + ++buf; + EXPECT_CHAR('\012'); + } else if (*buf == '\012') { + ++buf; + } + + /* parse request line */ + ADVANCE_TOKEN(*method, *method_len); + ++buf; + ADVANCE_TOKEN(*path, *path_len); + ++buf; + if ((buf = parse_http_version(buf, buf_end, minor_version, ret)) == NULL) { + return NULL; + } + if (*buf == '\015') { + ++buf; + EXPECT_CHAR('\012'); + } else if (*buf == '\012') { + ++buf; + } else { + *ret = -1; + return NULL; + } + + return parse_headers(buf, buf_end, headers, num_headers, max_headers, ret); +} + +int phr_parse_request(const char *buf_start, size_t len, const char **method, size_t *method_len, const char **path, + size_t *path_len, int *minor_version, struct phr_header *headers, size_t *num_headers, size_t last_len) +{ + const char *buf = buf_start, *buf_end = buf_start + len; + size_t max_headers = *num_headers; + int r; + + *method = NULL; + *method_len = 0; + *path = NULL; + *path_len = 0; + *minor_version = -1; + *num_headers = 0; + + /* if last_len != 0, check if the request is complete (a fast countermeasure + againt slowloris */ + if (last_len != 0 && is_complete(buf, buf_end, last_len, &r) == NULL) { + return r; + } + + if ((buf = parse_request(buf, buf_end, method, method_len, path, path_len, minor_version, headers, num_headers, max_headers, + &r)) == NULL) { + return r; + } + + return (int)(buf - buf_start); +} + +static const char *parse_response(const char *buf, const char *buf_end, int *minor_version, int *status, const char **msg, + size_t *msg_len, struct phr_header *headers, size_t *num_headers, size_t max_headers, int *ret) +{ + /* parse "HTTP/1.x" */ + if ((buf = parse_http_version(buf, buf_end, minor_version, ret)) == NULL) { + return NULL; + } + /* skip space */ + if (*buf++ != ' ') { + *ret = -1; + return NULL; + } + /* parse status code, we want at least [:digit:][:digit:][:digit:] to try to parse */ + if (buf_end - buf < 4) { + *ret = -2; + return NULL; + } + PARSE_INT_3(status); + + /* skip space */ + if (*buf++ != ' ') { + *ret = -1; + return NULL; + } + /* get message */ + if ((buf = get_token_to_eol(buf, buf_end, msg, msg_len, ret)) == NULL) { + return NULL; + } + + return parse_headers(buf, buf_end, headers, num_headers, max_headers, ret); +} + +int phr_parse_response(const char *buf_start, size_t len, int *minor_version, int *status, const char **msg, size_t *msg_len, + struct phr_header *headers, size_t *num_headers, size_t last_len) +{ + const char *buf = buf_start, *buf_end = buf + len; + size_t max_headers = *num_headers; + int r; + + *minor_version = -1; + *status = 0; + *msg = NULL; + *msg_len = 0; + *num_headers = 0; + + /* if last_len != 0, check if the response is complete (a fast countermeasure + against slowloris */ + if (last_len != 0 && is_complete(buf, buf_end, last_len, &r) == NULL) { + return r; + } + + if ((buf = parse_response(buf, buf_end, minor_version, status, msg, msg_len, headers, num_headers, max_headers, &r)) == NULL) { + return r; + } + + return (int)(buf - buf_start); +} + +int phr_parse_headers(const char *buf_start, size_t len, struct phr_header *headers, size_t *num_headers, size_t last_len) +{ + const char *buf = buf_start, *buf_end = buf + len; + size_t max_headers = *num_headers; + int r; + + *num_headers = 0; + + /* if last_len != 0, check if the response is complete (a fast countermeasure + against slowloris */ + if (last_len != 0 && is_complete(buf, buf_end, last_len, &r) == NULL) { + return r; + } + + if ((buf = parse_headers(buf, buf_end, headers, num_headers, max_headers, &r)) == NULL) { + return r; + } + + return (int)(buf - buf_start); +} + +enum { + CHUNKED_IN_CHUNK_SIZE, + CHUNKED_IN_CHUNK_EXT, + CHUNKED_IN_CHUNK_DATA, + CHUNKED_IN_CHUNK_CRLF, + CHUNKED_IN_TRAILERS_LINE_HEAD, + CHUNKED_IN_TRAILERS_LINE_MIDDLE +}; + +static int decode_hex(int ch) +{ + if ('0' <= ch && ch <= '9') { + return ch - '0'; + } else if ('A' <= ch && ch <= 'F') { + return ch - 'A' + 0xa; + } else if ('a' <= ch && ch <= 'f') { + return ch - 'a' + 0xa; + } else { + return -1; + } +} + +ssize_t phr_decode_chunked(struct phr_chunked_decoder *decoder, char *buf, size_t *_bufsz) +{ + size_t dst = 0, src = 0, bufsz = *_bufsz; + ssize_t ret = -2; /* incomplete */ + + while (1) { + switch (decoder->_state) { + case CHUNKED_IN_CHUNK_SIZE: + for (;; ++src) { + int v; + if (src == bufsz) + goto Exit; + if ((v = decode_hex(buf[src])) == -1) { + if (decoder->_hex_count == 0) { + ret = -1; + goto Exit; + } + break; + } + if (decoder->_hex_count == sizeof(size_t) * 2) { + ret = -1; + goto Exit; + } + decoder->bytes_left_in_chunk = decoder->bytes_left_in_chunk * 16 + v; + ++decoder->_hex_count; + } + decoder->_hex_count = 0; + decoder->_state = CHUNKED_IN_CHUNK_EXT; + /* fallthru */ + case CHUNKED_IN_CHUNK_EXT: + /* RFC 7230 A.2 "Line folding in chunk extensions is disallowed" */ + for (;; ++src) { + if (src == bufsz) + goto Exit; + if (buf[src] == '\012') + break; + } + ++src; + if (decoder->bytes_left_in_chunk == 0) { + if (decoder->consume_trailer) { + decoder->_state = CHUNKED_IN_TRAILERS_LINE_HEAD; + break; + } else { + goto Complete; + } + } + decoder->_state = CHUNKED_IN_CHUNK_DATA; + /* fallthru */ + case CHUNKED_IN_CHUNK_DATA: { + size_t avail = bufsz - src; + if (avail < decoder->bytes_left_in_chunk) { + if (dst != src) + memmove(buf + dst, buf + src, avail); + src += avail; + dst += avail; + decoder->bytes_left_in_chunk -= avail; + goto Exit; + } + if (dst != src) + memmove(buf + dst, buf + src, decoder->bytes_left_in_chunk); + src += decoder->bytes_left_in_chunk; + dst += decoder->bytes_left_in_chunk; + decoder->bytes_left_in_chunk = 0; + decoder->_state = CHUNKED_IN_CHUNK_CRLF; + } + /* fallthru */ + case CHUNKED_IN_CHUNK_CRLF: + for (;; ++src) { + if (src == bufsz) + goto Exit; + if (buf[src] != '\015') + break; + } + if (buf[src] != '\012') { + ret = -1; + goto Exit; + } + ++src; + decoder->_state = CHUNKED_IN_CHUNK_SIZE; + break; + case CHUNKED_IN_TRAILERS_LINE_HEAD: + for (;; ++src) { + if (src == bufsz) + goto Exit; + if (buf[src] != '\015') + break; + } + if (buf[src++] == '\012') + goto Complete; + decoder->_state = CHUNKED_IN_TRAILERS_LINE_MIDDLE; + /* fallthru */ + case CHUNKED_IN_TRAILERS_LINE_MIDDLE: + for (;; ++src) { + if (src == bufsz) + goto Exit; + if (buf[src] == '\012') + break; + } + ++src; + decoder->_state = CHUNKED_IN_TRAILERS_LINE_HEAD; + break; + default: + assert(!"decoder is corrupt"); + } + } + +Complete: + ret = bufsz - src; +Exit: + if (dst != src) + memmove(buf + dst, buf + src, bufsz - src); + *_bufsz = dst; + return ret; +} + +int phr_decode_chunked_is_in_data(struct phr_chunked_decoder *decoder) +{ + return decoder->_state == CHUNKED_IN_CHUNK_DATA; +} + +#undef CHECK_EOF +#undef EXPECT_CHAR +#undef ADVANCE_TOKEN diff --git a/vere/ext/libuv/build.zig b/vere/ext/libuv/build.zig new file mode 100644 index 0000000..fa767d1 --- /dev/null +++ b/vere/ext/libuv/build.zig @@ -0,0 +1,162 @@ +const std = @import("std"); + +pub fn build(b: *std.Build) !void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + const t = target.result; + + const uv_c = b.dependency("libuv", .{ + .target = target, + .optimize = optimize, + }); + + const uv = b.addStaticLibrary(.{ + .name = "libuv", + .target = target, + .optimize = optimize, + }); + + uv.linkLibC(); + + uv.addIncludePath(uv_c.path("src")); + uv.addIncludePath(uv_c.path("include")); + + var uv_flags = std.ArrayList([]const u8).init(b.allocator); + defer uv_flags.deinit(); + + try uv_flags.appendSlice(&.{ + "-fno-sanitize=all", + "-DHAVE_STDIO_H=1", + "-DHAVE_STDLIB_H=1", + "-DHAVE_STRING_H=1", + "-DHAVE_INTTYPES_H=1", + "-DHAVE_STDINT_H=1", + "-DHAVE_STRINGS_H=1", + "-DHAVE_SYS_STAT_H=1", + "-DHAVE_SYS_TYPES_H=1", + "-DHAVE_UNISTD_H=1", + "-DHAVE_DLFCN_H=1", + "-DHAVE_PTHREAD_PRIO_INHERIT=1", + "-DSTDC_HEADERS=1", + "-DSUPPORT_ATTRIBUTE_VISIBILITY_DEFAULT=1", + "-DSUPPORT_FLAG_VISIBILITY=1", + }); + + if (t.os.tag != .windows) { + try uv_flags.appendSlice(&.{ + "-D_FILE_OFFSET_BITS=64", + "-D_LARGEFILE_SOURCE", + }); + } + + _ = switch (t.os.tag) { + .macos => try uv_flags.appendSlice(&.{ + "-D_DARWIN_UNLIMITED_SELECT=1", + "-D_DARWIN_USE_64_BIT_INODE=1", + }), + .linux => try uv_flags.appendSlice(&.{ + "-D_GNU_SOURCE", + "-D_POSIX_C_SOURCE=200112", + }), + .windows => try uv_flags.appendSlice(&.{ + "-DWIN32_LEAN_AND_MEAN", + "-D_WIN32_WINNT=0x0602", + }), + else => null, + }; + + uv.addCSourceFiles(.{ + .root = uv_c.path("src"), + .files = switch (t.os.tag) { + .macos => &uv_srcs_macos, + .linux => &uv_srcs_linux, + .windows => &uv_srcs_windows, + else => &.{}, + }, + .flags = uv_flags.items, + }); + + uv.installHeadersDirectory(uv_c.path("include"), "", .{}); + + b.installArtifact(uv); +} + +const uv_srcs = [_][]const u8{ + "fs-poll.c", + "idna.c", + "inet.c", + "random.c", + "strscpy.c", + "strtok.c", + "threadpool.c", + "timer.c", + "uv-common.c", + "uv-data-getter-setters.c", + "version.c", +}; + +const uv_srcs_unix = uv_srcs ++ [_][]const u8{ + "unix/async.c", + "unix/core.c", + "unix/dl.c", + "unix/fs.c", + "unix/getaddrinfo.c", + "unix/getnameinfo.c", + "unix/loop-watcher.c", + "unix/loop.c", + "unix/pipe.c", + "unix/poll.c", + "unix/process.c", + "unix/proctitle.c", + "unix/random-devurandom.c", + "unix/signal.c", + "unix/stream.c", + "unix/tcp.c", + "unix/thread.c", + "unix/tty.c", + "unix/udp.c", +}; + +const uv_srcs_linux = uv_srcs_unix ++ [_][]const u8{ + "unix/linux.c", + "unix/procfs-exepath.c", + "unix/random-getrandom.c", + "unix/random-sysctl-linux.c", +}; + +const uv_srcs_macos = uv_srcs_unix ++ [_][]const u8{ + "unix/bsd-ifaddrs.c", + "unix/kqueue.c", + "unix/random-getentropy.c", + "unix/darwin-proctitle.c", + "unix/darwin.c", + "unix/fsevents.c", +}; + +const uv_srcs_windows = uv_srcs ++ [_][]const u8{ + "win/async.c", + "win/core.c", + "win/detect-wakeup.c", + "win/dl.c", + "win/error.c", + "win/fs.c", + "win/fs-event.c", + "win/getaddrinfo.c", + "win/getnameinfo.c", + "win/handle.c", + "win/loop-watcher.c", + "win/pipe.c", + "win/thread.c", + "win/poll.c", + "win/process.c", + "win/process-stdio.c", + "win/signal.c", + "win/snprintf.c", + "win/stream.c", + "win/tcp.c", + "win/tty.c", + "win/udp.c", + "win/util.c", + "win/winapi.c", + "win/winsock.c", +}; diff --git a/vere/ext/libuv/build.zig.zon b/vere/ext/libuv/build.zig.zon new file mode 100644 index 0000000..a0c83dc --- /dev/null +++ b/vere/ext/libuv/build.zig.zon @@ -0,0 +1,13 @@ +.{ + .name = "libuv", + .version = "0.0.1", + .dependencies = .{ + .libuv = .{ + .url = "https://dist.libuv.org/dist/v1.50.0/libuv-v1.50.0.tar.gz", + .hash = "N-V-__8AAH34QwB6wi5eQK_lFbfDGSN3hRE8l-6Ep198ZsGg", + }, + }, + .paths = .{ + "", + }, +} diff --git a/vere/ext/lmdb/build.zig b/vere/ext/lmdb/build.zig new file mode 100644 index 0000000..74651cc --- /dev/null +++ b/vere/ext/lmdb/build.zig @@ -0,0 +1,56 @@ +const std = @import("std"); + +pub fn build(b: *std.Build) !void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + + const lmdb_c = b.dependency("lmdb", .{ + .target = target, + .optimize = optimize, + }); + + const lmdb = b.addStaticLibrary(.{ + .name = "lmdb", + .target = target, + .optimize = optimize, + }); + + lmdb.linkLibC(); + + lmdb.addIncludePath(lmdb_c.path("libraries/liblmdb")); + + var flags = std.ArrayList([]const u8).init(b.allocator); + defer flags.deinit(); + + try flags.appendSlice(&.{ + "-fno-sanitize=all", + "-pthread", + "-O2", + "-g", + "-W", + "-Wall", + "-Wno-unused-parameter", + "-Wbad-function-cast", + "-Wuninitialized", + }); + + if (target.result.os.tag.isDarwin()) { + try flags.appendSlice(&.{"-DURBIT_RUNTIME_OS_DARWIN"}); + } + + lmdb.addCSourceFiles(.{ + .root = lmdb_c.path("libraries/liblmdb"), + .files = &.{"midl.c"}, + .flags = flags.items, + }); + + lmdb.addCSourceFiles(.{ + .root = b.path("patches/lmdb-0.9.29"), + .files = &.{"mdb.c"}, + .flags = flags.items, + }); + + lmdb.installHeader(lmdb_c.path("libraries/liblmdb/lmdb.h"), "lmdb/lmdb.h"); + + b.installArtifact(lmdb); +} diff --git a/vere/ext/lmdb/build.zig.zon b/vere/ext/lmdb/build.zig.zon new file mode 100644 index 0000000..8e87431 --- /dev/null +++ b/vere/ext/lmdb/build.zig.zon @@ -0,0 +1,13 @@ +.{ + .name = "lmdb", + .version = "0.0.1", + .dependencies = .{ + .lmdb = .{ + .url = "https://github.com/LMDB/lmdb/archive/refs/tags/LMDB_0.9.29.tar.gz", + .hash = "N-V-__8AAHEmCAAI5Cwrnkb4JRA4oi95aN3cF60uycJ42QMg", + }, + }, + .paths = .{ + "", + }, +} diff --git a/vere/ext/lmdb/patches/lmdb-0.9.29/mdb.c b/vere/ext/lmdb/patches/lmdb-0.9.29/mdb.c new file mode 100644 index 0000000..7c90004 --- /dev/null +++ b/vere/ext/lmdb/patches/lmdb-0.9.29/mdb.c @@ -0,0 +1,10324 @@ +/** @file mdb.c + * @brief Lightning memory-mapped database library + * + * A Btree-based database management library modeled loosely on the + * BerkeleyDB API, but much simplified. + */ +/* + * Copyright 2011-2021 Howard Chu, Symas Corp. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted only as authorized by the OpenLDAP + * Public License. + * + * A copy of this license is available in the file LICENSE in the + * top-level directory of the distribution or, alternatively, at + * . + * + * This code is derived from btree.c written by Martin Hedenfalk. + * + * Copyright (c) 2009, 2010 Martin Hedenfalk + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ +#ifndef _GNU_SOURCE +#define _GNU_SOURCE 1 +#endif +#if defined(__WIN64__) +#define _FILE_OFFSET_BITS 64 +#endif +#ifdef _WIN32 +#include +#include +#include /* get wcscpy() */ + +/** getpid() returns int; MinGW defines pid_t but MinGW64 typedefs it + * as int64 which is wrong. MSVC doesn't define it at all, so just + * don't use it. + */ +#define MDB_PID_T int +#define MDB_THR_T DWORD +#include +#include +#ifdef __GNUC__ +# include +#else +# define LITTLE_ENDIAN 1234 +# define BIG_ENDIAN 4321 +# define BYTE_ORDER LITTLE_ENDIAN +# ifndef SSIZE_MAX +# define SSIZE_MAX INT_MAX +# endif +#endif +#else +#include +#include +#define MDB_PID_T pid_t +#define MDB_THR_T pthread_t +#include +#include +#include +#ifdef HAVE_SYS_FILE_H +#include +#endif +#include +#endif + +#if defined(__mips) && defined(__linux) +/* MIPS has cache coherency issues, requires explicit cache control */ +#include +extern int cacheflush(char *addr, int nbytes, int cache); +#define CACHEFLUSH(addr, bytes, cache) cacheflush(addr, bytes, cache) +#else +#define CACHEFLUSH(addr, bytes, cache) +#endif + +#if defined(__linux) && !defined(MDB_FDATASYNC_WORKS) +/** fdatasync is broken on ext3/ext4fs on older kernels, see + * description in #mdb_env_open2 comments. You can safely + * define MDB_FDATASYNC_WORKS if this code will only be run + * on kernels 3.6 and newer. + */ +#define BROKEN_FDATASYNC +#endif + +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef _MSC_VER +#include +typedef SSIZE_T ssize_t; +#else +#include +#endif + +#if defined(__sun) || defined(ANDROID) +/* Most platforms have posix_memalign, older may only have memalign */ +#define HAVE_MEMALIGN 1 +#include +/* On Solaris, we need the POSIX sigwait function */ +#if defined (__sun) +# define _POSIX_PTHREAD_SEMANTICS 1 +#endif +#endif + +#if !(defined(BYTE_ORDER) || defined(__BYTE_ORDER)) +#include +#include /* defines BYTE_ORDER on HPUX and Solaris */ +#endif + +#if defined(__FreeBSD__) && defined(__FreeBSD_version) && __FreeBSD_version >= 1100110 +# define MDB_USE_POSIX_MUTEX 1 +# define MDB_USE_ROBUST 1 +#elif defined(__APPLE__) || defined (BSD) || defined(__FreeBSD_kernel__) +# define MDB_USE_POSIX_SEM 1 +# define MDB_FDATASYNC fsync +#elif defined(ANDROID) +# define MDB_FDATASYNC fsync +#endif + +#ifndef _WIN32 +#include +#include +#ifdef MDB_USE_POSIX_SEM +# define MDB_USE_HASH 1 +#include +#else +#define MDB_USE_POSIX_MUTEX 1 +#endif +#endif + +#if defined(_WIN32) + defined(MDB_USE_POSIX_SEM) \ + + defined(MDB_USE_POSIX_MUTEX) != 1 +# error "Ambiguous shared-lock implementation" +#endif + +#ifdef USE_VALGRIND +#include +#define VGMEMP_CREATE(h,r,z) VALGRIND_CREATE_MEMPOOL(h,r,z) +#define VGMEMP_ALLOC(h,a,s) VALGRIND_MEMPOOL_ALLOC(h,a,s) +#define VGMEMP_FREE(h,a) VALGRIND_MEMPOOL_FREE(h,a) +#define VGMEMP_DESTROY(h) VALGRIND_DESTROY_MEMPOOL(h) +#define VGMEMP_DEFINED(a,s) VALGRIND_MAKE_MEM_DEFINED(a,s) +#else +#define VGMEMP_CREATE(h,r,z) +#define VGMEMP_ALLOC(h,a,s) +#define VGMEMP_FREE(h,a) +#define VGMEMP_DESTROY(h) +#define VGMEMP_DEFINED(a,s) +#endif + +#ifndef BYTE_ORDER +# if (defined(_LITTLE_ENDIAN) || defined(_BIG_ENDIAN)) && !(defined(_LITTLE_ENDIAN) && defined(_BIG_ENDIAN)) +/* Solaris just defines one or the other */ +# define LITTLE_ENDIAN 1234 +# define BIG_ENDIAN 4321 +# ifdef _LITTLE_ENDIAN +# define BYTE_ORDER LITTLE_ENDIAN +# else +# define BYTE_ORDER BIG_ENDIAN +# endif +# else +# define BYTE_ORDER __BYTE_ORDER +# endif +#endif + +#ifndef LITTLE_ENDIAN +#define LITTLE_ENDIAN __LITTLE_ENDIAN +#endif +#ifndef BIG_ENDIAN +#define BIG_ENDIAN __BIG_ENDIAN +#endif + +#if defined(__i386) || defined(__x86_64) || defined(_M_IX86) +#define MISALIGNED_OK 1 +#endif + +#include "lmdb.h" +#include "midl.h" + +#if (BYTE_ORDER == LITTLE_ENDIAN) == (BYTE_ORDER == BIG_ENDIAN) +# error "Unknown or unsupported endianness (BYTE_ORDER)" +#elif (-6 & 5) || CHAR_BIT != 8 || UINT_MAX < 0xffffffff || ULONG_MAX % 0xFFFF +# error "Two's complement, reasonably sized integer types, please" +#endif + +#ifdef __GNUC__ +/** Put infrequently used env functions in separate section */ +# ifdef __APPLE__ +# define ESECT __attribute__ ((section("__TEXT,text_env"))) +# else +# define ESECT __attribute__ ((section("text_env"))) +# endif +#else +#define ESECT +#endif + +#ifdef _WIN32 +#define CALL_CONV WINAPI +#else +#define CALL_CONV +#endif + +/** @defgroup internal LMDB Internals + * @{ + */ +/** @defgroup compat Compatibility Macros + * A bunch of macros to minimize the amount of platform-specific ifdefs + * needed throughout the rest of the code. When the features this library + * needs are similar enough to POSIX to be hidden in a one-or-two line + * replacement, this macro approach is used. + * @{ + */ + + /** Features under development */ +#ifndef MDB_DEVEL +#define MDB_DEVEL 0 +#endif + + /** Wrapper around __func__, which is a C99 feature */ +#if __STDC_VERSION__ >= 199901L +# define mdb_func_ __func__ +#elif __GNUC__ >= 2 || _MSC_VER >= 1300 +# define mdb_func_ __FUNCTION__ +#else +/* If a debug message says (), update the #if statements above */ +# define mdb_func_ "" +#endif + +/* Internal error codes, not exposed outside liblmdb */ +#define MDB_NO_ROOT (MDB_LAST_ERRCODE + 10) +#ifdef _WIN32 +#define MDB_OWNERDEAD ((int) WAIT_ABANDONED) +#elif defined(MDB_USE_POSIX_MUTEX) && defined(EOWNERDEAD) +#define MDB_OWNERDEAD EOWNERDEAD /**< #LOCK_MUTEX0() result if dead owner */ +#endif + +#ifdef __GLIBC__ +#define GLIBC_VER ((__GLIBC__ << 16 )| __GLIBC_MINOR__) +#endif +/** Some platforms define the EOWNERDEAD error code + * even though they don't support Robust Mutexes. + * Compile with -DMDB_USE_ROBUST=0, or use some other + * mechanism like -DMDB_USE_POSIX_SEM instead of + * -DMDB_USE_POSIX_MUTEX. + * (Posix semaphores are not robust.) + */ +#ifndef MDB_USE_ROBUST +/* Android currently lacks Robust Mutex support. So does glibc < 2.4. */ +# if defined(MDB_USE_POSIX_MUTEX) && (defined(ANDROID) || \ + (defined(__GLIBC__) && GLIBC_VER < 0x020004)) +# define MDB_USE_ROBUST 0 +# else +# define MDB_USE_ROBUST 1 +# endif +#endif /* !MDB_USE_ROBUST */ + +#if defined(MDB_USE_POSIX_MUTEX) && (MDB_USE_ROBUST) +/* glibc < 2.12 only provided _np API */ +# if (defined(__GLIBC__) && GLIBC_VER < 0x02000c) || \ + (defined(PTHREAD_MUTEX_ROBUST_NP) && !defined(PTHREAD_MUTEX_ROBUST)) +# define PTHREAD_MUTEX_ROBUST PTHREAD_MUTEX_ROBUST_NP +# define pthread_mutexattr_setrobust(attr, flag) pthread_mutexattr_setrobust_np(attr, flag) +# define pthread_mutex_consistent(mutex) pthread_mutex_consistent_np(mutex) +# endif +#endif /* MDB_USE_POSIX_MUTEX && MDB_USE_ROBUST */ + +#if defined(MDB_OWNERDEAD) && (MDB_USE_ROBUST) +#define MDB_ROBUST_SUPPORTED 1 +#endif + +#ifdef _WIN32 +#define MDB_USE_HASH 1 +#define MDB_PIDLOCK 0 +#define THREAD_RET DWORD +#define pthread_t HANDLE +#define pthread_mutex_t HANDLE +#define pthread_cond_t HANDLE +typedef HANDLE mdb_mutex_t, mdb_mutexref_t; +#define pthread_key_t DWORD +#define pthread_self() GetCurrentThreadId() +#define pthread_key_create(x,y) \ + ((*(x) = TlsAlloc()) == TLS_OUT_OF_INDEXES ? ErrCode() : 0) +#define pthread_key_delete(x) TlsFree(x) +#define pthread_getspecific(x) TlsGetValue(x) +#define pthread_setspecific(x,y) (TlsSetValue(x,y) ? 0 : ErrCode()) +#define pthread_mutex_unlock(x) ReleaseMutex(*x) +#define pthread_mutex_lock(x) WaitForSingleObject(*x, INFINITE) +#define pthread_cond_signal(x) SetEvent(*x) +#define pthread_cond_wait(cond,mutex) do{SignalObjectAndWait(*mutex, *cond, INFINITE, FALSE); WaitForSingleObject(*mutex, INFINITE);}while(0) +#define THREAD_CREATE(thr,start,arg) \ + (((thr) = CreateThread(NULL, 0, start, arg, 0, NULL)) ? 0 : ErrCode()) +#define THREAD_FINISH(thr) \ + (WaitForSingleObject(thr, INFINITE) ? ErrCode() : 0) +#define LOCK_MUTEX0(mutex) WaitForSingleObject(mutex, INFINITE) +#define UNLOCK_MUTEX(mutex) ReleaseMutex(mutex) +#define mdb_mutex_consistent(mutex) 0 +#define getpid() GetCurrentProcessId() +#define MDB_FDATASYNC(fd) (!FlushFileBuffers(fd)) +#define MDB_MSYNC(addr,len,flags) (!FlushViewOfFile(addr,len)) +#define ErrCode() GetLastError() +#define GET_PAGESIZE(x) {SYSTEM_INFO si; GetSystemInfo(&si); (x) = si.dwPageSize;} +#define close(fd) (CloseHandle(fd) ? 0 : -1) +#define munmap(ptr,len) UnmapViewOfFile(ptr) +#ifdef PROCESS_QUERY_LIMITED_INFORMATION +#define MDB_PROCESS_QUERY_LIMITED_INFORMATION PROCESS_QUERY_LIMITED_INFORMATION +#else +#define MDB_PROCESS_QUERY_LIMITED_INFORMATION 0x1000 +#endif +#define Z "I" +#else +#define THREAD_RET void * +#define THREAD_CREATE(thr,start,arg) pthread_create(&thr,NULL,start,arg) +#define THREAD_FINISH(thr) pthread_join(thr,NULL) +#define Z "z" /**< printf format modifier for size_t */ + + /** For MDB_LOCK_FORMAT: True if readers take a pid lock in the lockfile */ +#define MDB_PIDLOCK 1 + +#ifdef MDB_USE_POSIX_SEM + +typedef sem_t *mdb_mutex_t, *mdb_mutexref_t; +#define LOCK_MUTEX0(mutex) mdb_sem_wait(mutex) +#define UNLOCK_MUTEX(mutex) sem_post(mutex) + +static int +mdb_sem_wait(sem_t *sem) +{ + int rc; + while ((rc = sem_wait(sem)) && (rc = errno) == EINTR) ; + return rc; +} + +#else /* MDB_USE_POSIX_MUTEX: */ + /** Shared mutex/semaphore as the original is stored. + * + * Not for copies. Instead it can be assigned to an #mdb_mutexref_t. + * When mdb_mutexref_t is a pointer and mdb_mutex_t is not, then it + * is array[size 1] so it can be assigned to the pointer. + */ +typedef pthread_mutex_t mdb_mutex_t[1]; + /** Reference to an #mdb_mutex_t */ +typedef pthread_mutex_t *mdb_mutexref_t; + /** Lock the reader or writer mutex. + * Returns 0 or a code to give #mdb_mutex_failed(), as in #LOCK_MUTEX(). + */ +#define LOCK_MUTEX0(mutex) pthread_mutex_lock(mutex) + /** Unlock the reader or writer mutex. + */ +#define UNLOCK_MUTEX(mutex) pthread_mutex_unlock(mutex) + /** Mark mutex-protected data as repaired, after death of previous owner. + */ +#define mdb_mutex_consistent(mutex) pthread_mutex_consistent(mutex) +#endif /* MDB_USE_POSIX_SEM */ + + /** Get the error code for the last failed system function. + */ +#define ErrCode() errno + + /** An abstraction for a file handle. + * On POSIX systems file handles are small integers. On Windows + * they're opaque pointers. + */ +#define HANDLE int + + /** A value for an invalid file handle. + * Mainly used to initialize file variables and signify that they are + * unused. + */ +#define INVALID_HANDLE_VALUE (-1) + + /** Get the size of a memory page for the system. + * This is the basic size that the platform's memory manager uses, and is + * fundamental to the use of memory-mapped files. + */ +#define GET_PAGESIZE(x) ((x) = sysconf(_SC_PAGE_SIZE)) +#endif + +#if defined(_WIN32) || defined(MDB_USE_POSIX_SEM) +#define MNAME_LEN 32 +#else +#define MNAME_LEN (sizeof(pthread_mutex_t)) +#endif + +/** @} */ + +#ifdef MDB_ROBUST_SUPPORTED + /** Lock mutex, handle any error, set rc = result. + * Return 0 on success, nonzero (not rc) on error. + */ +#define LOCK_MUTEX(rc, env, mutex) \ + (((rc) = LOCK_MUTEX0(mutex)) && \ + ((rc) = mdb_mutex_failed(env, mutex, rc))) +static int mdb_mutex_failed(MDB_env *env, mdb_mutexref_t mutex, int rc); +#else +#define LOCK_MUTEX(rc, env, mutex) ((rc) = LOCK_MUTEX0(mutex)) +#define mdb_mutex_failed(env, mutex, rc) (rc) +#endif + +#ifndef _WIN32 +/** A flag for opening a file and requesting synchronous data writes. + * This is only used when writing a meta page. It's not strictly needed; + * we could just do a normal write and then immediately perform a flush. + * But if this flag is available it saves us an extra system call. + * + * @note If O_DSYNC is undefined but exists in /usr/include, + * preferably set some compiler flag to get the definition. + */ +#ifndef MDB_DSYNC +# ifdef O_DSYNC +# define MDB_DSYNC O_DSYNC +# else +# define MDB_DSYNC O_SYNC +# endif +#endif +#endif + +/** Function for flushing the data of a file. Define this to fsync + * if fdatasync() is not supported. + */ +#ifndef MDB_FDATASYNC +# define MDB_FDATASYNC fdatasync +#endif + +#ifndef MDB_MSYNC +# define MDB_MSYNC(addr,len,flags) msync(addr,len,flags) +#endif + +#ifndef MS_SYNC +#define MS_SYNC 1 +#endif + +#ifndef MS_ASYNC +#define MS_ASYNC 0 +#endif + + /** A page number in the database. + * Note that 64 bit page numbers are overkill, since pages themselves + * already represent 12-13 bits of addressable memory, and the OS will + * always limit applications to a maximum of 63 bits of address space. + * + * @note In the #MDB_node structure, we only store 48 bits of this value, + * which thus limits us to only 60 bits of addressable data. + */ +typedef MDB_ID pgno_t; + + /** A transaction ID. + * See struct MDB_txn.mt_txnid for details. + */ +typedef MDB_ID txnid_t; + +/** @defgroup debug Debug Macros + * @{ + */ +#ifndef MDB_DEBUG + /** Enable debug output. Needs variable argument macros (a C99 feature). + * Set this to 1 for copious tracing. Set to 2 to add dumps of all IDLs + * read from and written to the database (used for free space management). + */ +#define MDB_DEBUG 0 +#endif + +#if MDB_DEBUG +static int mdb_debug; +static txnid_t mdb_debug_start; + + /** Print a debug message with printf formatting. + * Requires double parenthesis around 2 or more args. + */ +# define DPRINTF(args) ((void) ((mdb_debug) && DPRINTF0 args)) +# define DPRINTF0(fmt, ...) \ + fprintf(stderr, "%s:%d " fmt "\n", mdb_func_, __LINE__, __VA_ARGS__) +#else +# define DPRINTF(args) ((void) 0) +#endif + /** Print a debug string. + * The string is printed literally, with no format processing. + */ +#define DPUTS(arg) DPRINTF(("%s", arg)) + /** Debugging output value of a cursor DBI: Negative in a sub-cursor. */ +#define DDBI(mc) \ + (((mc)->mc_flags & C_SUB) ? -(int)(mc)->mc_dbi : (int)(mc)->mc_dbi) +/** @} */ + + /** @brief The maximum size of a database page. + * + * It is 32k or 64k, since value-PAGEBASE must fit in + * #MDB_page.%mp_upper. + * + * LMDB will use database pages < OS pages if needed. + * That causes more I/O in write transactions: The OS must + * know (read) the whole page before writing a partial page. + * + * Note that we don't currently support Huge pages. On Linux, + * regular data files cannot use Huge pages, and in general + * Huge pages aren't actually pageable. We rely on the OS + * demand-pager to read our data and page it out when memory + * pressure from other processes is high. So until OSs have + * actual paging support for Huge pages, they're not viable. + */ +#define MAX_PAGESIZE (PAGEBASE ? 0x10000 : 0x8000) + + /** The minimum number of keys required in a database page. + * Setting this to a larger value will place a smaller bound on the + * maximum size of a data item. Data items larger than this size will + * be pushed into overflow pages instead of being stored directly in + * the B-tree node. This value used to default to 4. With a page size + * of 4096 bytes that meant that any item larger than 1024 bytes would + * go into an overflow page. That also meant that on average 2-3KB of + * each overflow page was wasted space. The value cannot be lower than + * 2 because then there would no longer be a tree structure. With this + * value, items larger than 2KB will go into overflow pages, and on + * average only 1KB will be wasted. + */ +#define MDB_MINKEYS 2 + + /** A stamp that identifies a file as an LMDB file. + * There's nothing special about this value other than that it is easily + * recognizable, and it will reflect any byte order mismatches. + */ +#define MDB_MAGIC 0xBEEFC0DE + + /** The version number for a database's datafile format. */ +#define MDB_DATA_VERSION ((MDB_DEVEL) ? 999 : 1) + /** The version number for a database's lockfile format. */ +#define MDB_LOCK_VERSION 1 + + /** @brief The max size of a key we can write, or 0 for computed max. + * + * This macro should normally be left alone or set to 0. + * Note that a database with big keys or dupsort data cannot be + * reliably modified by a liblmdb which uses a smaller max. + * The default is 511 for backwards compat, or 0 when #MDB_DEVEL. + * + * Other values are allowed, for backwards compat. However: + * A value bigger than the computed max can break if you do not + * know what you are doing, and liblmdb <= 0.9.10 can break when + * modifying a DB with keys/dupsort data bigger than its max. + * + * Data items in an #MDB_DUPSORT database are also limited to + * this size, since they're actually keys of a sub-DB. Keys and + * #MDB_DUPSORT data items must fit on a node in a regular page. + */ +#ifndef MDB_MAXKEYSIZE +#define MDB_MAXKEYSIZE ((MDB_DEVEL) ? 0 : 511) +#endif + + /** The maximum size of a key we can write to the environment. */ +#if MDB_MAXKEYSIZE +#define ENV_MAXKEY(env) (MDB_MAXKEYSIZE) +#else +#define ENV_MAXKEY(env) ((env)->me_maxkey) +#endif + + /** @brief The maximum size of a data item. + * + * We only store a 32 bit value for node sizes. + */ +#define MAXDATASIZE 0xffffffffUL + +#if MDB_DEBUG + /** Key size which fits in a #DKBUF. + * @ingroup debug + */ +#define DKBUF_MAXKEYSIZE ((MDB_MAXKEYSIZE) > 0 ? (MDB_MAXKEYSIZE) : 511) + /** A key buffer. + * @ingroup debug + * This is used for printing a hex dump of a key's contents. + */ +#define DKBUF char kbuf[DKBUF_MAXKEYSIZE*2+1] + /** Display a key in hex. + * @ingroup debug + * Invoke a function to display a key in hex. + */ +#define DKEY(x) mdb_dkey(x, kbuf) +#else +#define DKBUF +#define DKEY(x) 0 +#endif + + /** An invalid page number. + * Mainly used to denote an empty tree. + */ +#define P_INVALID (~(pgno_t)0) + + /** Test if the flags \b f are set in a flag word \b w. */ +#define F_ISSET(w, f) (((w) & (f)) == (f)) + + /** Round \b n up to an even number. */ +#define EVEN(n) (((n) + 1U) & -2) /* sign-extending -2 to match n+1U */ + + /** Used for offsets within a single page. + * Since memory pages are typically 4 or 8KB in size, 12-13 bits, + * this is plenty. + */ +typedef uint16_t indx_t; + + /** Default size of memory map. + * This is certainly too small for any actual applications. Apps should always set + * the size explicitly using #mdb_env_set_mapsize(). + */ +#define DEFAULT_MAPSIZE 1048576 + +/** @defgroup readers Reader Lock Table + * Readers don't acquire any locks for their data access. Instead, they + * simply record their transaction ID in the reader table. The reader + * mutex is needed just to find an empty slot in the reader table. The + * slot's address is saved in thread-specific data so that subsequent read + * transactions started by the same thread need no further locking to proceed. + * + * If #MDB_NOTLS is set, the slot address is not saved in thread-specific data. + * + * No reader table is used if the database is on a read-only filesystem, or + * if #MDB_NOLOCK is set. + * + * Since the database uses multi-version concurrency control, readers don't + * actually need any locking. This table is used to keep track of which + * readers are using data from which old transactions, so that we'll know + * when a particular old transaction is no longer in use. Old transactions + * that have discarded any data pages can then have those pages reclaimed + * for use by a later write transaction. + * + * The lock table is constructed such that reader slots are aligned with the + * processor's cache line size. Any slot is only ever used by one thread. + * This alignment guarantees that there will be no contention or cache + * thrashing as threads update their own slot info, and also eliminates + * any need for locking when accessing a slot. + * + * A writer thread will scan every slot in the table to determine the oldest + * outstanding reader transaction. Any freed pages older than this will be + * reclaimed by the writer. The writer doesn't use any locks when scanning + * this table. This means that there's no guarantee that the writer will + * see the most up-to-date reader info, but that's not required for correct + * operation - all we need is to know the upper bound on the oldest reader, + * we don't care at all about the newest reader. So the only consequence of + * reading stale information here is that old pages might hang around a + * while longer before being reclaimed. That's actually good anyway, because + * the longer we delay reclaiming old pages, the more likely it is that a + * string of contiguous pages can be found after coalescing old pages from + * many old transactions together. + * @{ + */ + /** Number of slots in the reader table. + * This value was chosen somewhat arbitrarily. 126 readers plus a + * couple mutexes fit exactly into 8KB on my development machine. + * Applications should set the table size using #mdb_env_set_maxreaders(). + */ +#define DEFAULT_READERS 126 + + /** The size of a CPU cache line in bytes. We want our lock structures + * aligned to this size to avoid false cache line sharing in the + * lock table. + * This value works for most CPUs. For Itanium this should be 128. + */ +#ifndef CACHELINE +#define CACHELINE 64 +#endif + + /** The information we store in a single slot of the reader table. + * In addition to a transaction ID, we also record the process and + * thread ID that owns a slot, so that we can detect stale information, + * e.g. threads or processes that went away without cleaning up. + * @note We currently don't check for stale records. We simply re-init + * the table when we know that we're the only process opening the + * lock file. + */ +typedef struct MDB_rxbody { + /** Current Transaction ID when this transaction began, or (txnid_t)-1. + * Multiple readers that start at the same time will probably have the + * same ID here. Again, it's not important to exclude them from + * anything; all we need to know is which version of the DB they + * started from so we can avoid overwriting any data used in that + * particular version. + */ + volatile txnid_t mrb_txnid; + /** The process ID of the process owning this reader txn. */ + volatile MDB_PID_T mrb_pid; + /** The thread ID of the thread owning this txn. */ + volatile MDB_THR_T mrb_tid; +} MDB_rxbody; + + /** The actual reader record, with cacheline padding. */ +typedef struct MDB_reader { + union { + MDB_rxbody mrx; + /** shorthand for mrb_txnid */ +#define mr_txnid mru.mrx.mrb_txnid +#define mr_pid mru.mrx.mrb_pid +#define mr_tid mru.mrx.mrb_tid + /** cache line alignment */ + char pad[(sizeof(MDB_rxbody)+CACHELINE-1) & ~(CACHELINE-1)]; + } mru; +} MDB_reader; + + /** The header for the reader table. + * The table resides in a memory-mapped file. (This is a different file + * than is used for the main database.) + * + * For POSIX the actual mutexes reside in the shared memory of this + * mapped file. On Windows, mutexes are named objects allocated by the + * kernel; we store the mutex names in this mapped file so that other + * processes can grab them. This same approach is also used on + * MacOSX/Darwin (using named semaphores) since MacOSX doesn't support + * process-shared POSIX mutexes. For these cases where a named object + * is used, the object name is derived from a 64 bit FNV hash of the + * environment pathname. As such, naming collisions are extremely + * unlikely. If a collision occurs, the results are unpredictable. + */ +typedef struct MDB_txbody { + /** Stamp identifying this as an LMDB file. It must be set + * to #MDB_MAGIC. */ + uint32_t mtb_magic; + /** Format of this lock file. Must be set to #MDB_LOCK_FORMAT. */ + uint32_t mtb_format; +#if defined(_WIN32) || defined(MDB_USE_POSIX_SEM) + char mtb_rmname[MNAME_LEN]; +#else + /** Mutex protecting access to this table. + * This is the reader table lock used with LOCK_MUTEX(). + */ + mdb_mutex_t mtb_rmutex; +#endif + /** The ID of the last transaction committed to the database. + * This is recorded here only for convenience; the value can always + * be determined by reading the main database meta pages. + */ + volatile txnid_t mtb_txnid; + /** The number of slots that have been used in the reader table. + * This always records the maximum count, it is not decremented + * when readers release their slots. + */ + volatile unsigned mtb_numreaders; +} MDB_txbody; + + /** The actual reader table definition. */ +typedef struct MDB_txninfo { + union { + MDB_txbody mtb; +#define mti_magic mt1.mtb.mtb_magic +#define mti_format mt1.mtb.mtb_format +#define mti_rmutex mt1.mtb.mtb_rmutex +#define mti_rmname mt1.mtb.mtb_rmname +#define mti_txnid mt1.mtb.mtb_txnid +#define mti_numreaders mt1.mtb.mtb_numreaders + char pad[(sizeof(MDB_txbody)+CACHELINE-1) & ~(CACHELINE-1)]; + } mt1; + union { +#if defined(_WIN32) || defined(MDB_USE_POSIX_SEM) + char mt2_wmname[MNAME_LEN]; +#define mti_wmname mt2.mt2_wmname +#else + mdb_mutex_t mt2_wmutex; +#define mti_wmutex mt2.mt2_wmutex +#endif + char pad[(MNAME_LEN+CACHELINE-1) & ~(CACHELINE-1)]; + } mt2; + MDB_reader mti_readers[1]; +} MDB_txninfo; + + /** Lockfile format signature: version, features and field layout */ +#define MDB_LOCK_FORMAT \ + ((uint32_t) \ + ((MDB_LOCK_VERSION) \ + /* Flags which describe functionality */ \ + + (((MDB_PIDLOCK) != 0) << 16))) +/** @} */ + +/** Common header for all page types. The page type depends on #mp_flags. + * + * #P_BRANCH and #P_LEAF pages have unsorted '#MDB_node's at the end, with + * sorted #mp_ptrs[] entries referring to them. Exception: #P_LEAF2 pages + * omit mp_ptrs and pack sorted #MDB_DUPFIXED values after the page header. + * + * #P_OVERFLOW records occupy one or more contiguous pages where only the + * first has a page header. They hold the real data of #F_BIGDATA nodes. + * + * #P_SUBP sub-pages are small leaf "pages" with duplicate data. + * A node with flag #F_DUPDATA but not #F_SUBDATA contains a sub-page. + * (Duplicate data can also go in sub-databases, which use normal pages.) + * + * #P_META pages contain #MDB_meta, the start point of an LMDB snapshot. + * + * Each non-metapage up to #MDB_meta.%mm_last_pg is reachable exactly once + * in the snapshot: Either used by a database or listed in a freeDB record. + */ +typedef struct MDB_page { +#define mp_pgno mp_p.p_pgno +#define mp_next mp_p.p_next + union { + pgno_t p_pgno; /**< page number */ + struct MDB_page *p_next; /**< for in-memory list of freed pages */ + } mp_p; + uint16_t mp_pad; /**< key size if this is a LEAF2 page */ +/** @defgroup mdb_page Page Flags + * @ingroup internal + * Flags for the page headers. + * @{ + */ +#define P_BRANCH 0x01 /**< branch page */ +#define P_LEAF 0x02 /**< leaf page */ +#define P_OVERFLOW 0x04 /**< overflow page */ +#define P_META 0x08 /**< meta page */ +#define P_DIRTY 0x10 /**< dirty page, also set for #P_SUBP pages */ +#define P_LEAF2 0x20 /**< for #MDB_DUPFIXED records */ +#define P_SUBP 0x40 /**< for #MDB_DUPSORT sub-pages */ +#define P_LOOSE 0x4000 /**< page was dirtied then freed, can be reused */ +#define P_KEEP 0x8000 /**< leave this page alone during spill */ +/** @} */ + uint16_t mp_flags; /**< @ref mdb_page */ +#define mp_lower mp_pb.pb.pb_lower +#define mp_upper mp_pb.pb.pb_upper +#define mp_pages mp_pb.pb_pages + union { + struct { + indx_t pb_lower; /**< lower bound of free space */ + indx_t pb_upper; /**< upper bound of free space */ + } pb; + uint32_t pb_pages; /**< number of overflow pages */ + } mp_pb; + indx_t mp_ptrs[1]; /**< dynamic size */ +} MDB_page; + + /** Size of the page header, excluding dynamic data at the end */ +#define PAGEHDRSZ ((unsigned) offsetof(MDB_page, mp_ptrs)) + + /** Address of first usable data byte in a page, after the header */ +#define METADATA(p) ((void *)((char *)(p) + PAGEHDRSZ)) + + /** ITS#7713, change PAGEBASE to handle 65536 byte pages */ +#define PAGEBASE ((MDB_DEVEL) ? PAGEHDRSZ : 0) + + /** Number of nodes on a page */ +#define NUMKEYS(p) (((p)->mp_lower - (PAGEHDRSZ-PAGEBASE)) >> 1) + + /** The amount of space remaining in the page */ +#define SIZELEFT(p) (indx_t)((p)->mp_upper - (p)->mp_lower) + + /** The percentage of space used in the page, in tenths of a percent. */ +#define PAGEFILL(env, p) (1000L * ((env)->me_psize - PAGEHDRSZ - SIZELEFT(p)) / \ + ((env)->me_psize - PAGEHDRSZ)) + /** The minimum page fill factor, in tenths of a percent. + * Pages emptier than this are candidates for merging. + */ +#define FILL_THRESHOLD 250 + + /** Test if a page is a leaf page */ +#define IS_LEAF(p) F_ISSET((p)->mp_flags, P_LEAF) + /** Test if a page is a LEAF2 page */ +#define IS_LEAF2(p) F_ISSET((p)->mp_flags, P_LEAF2) + /** Test if a page is a branch page */ +#define IS_BRANCH(p) F_ISSET((p)->mp_flags, P_BRANCH) + /** Test if a page is an overflow page */ +#define IS_OVERFLOW(p) F_ISSET((p)->mp_flags, P_OVERFLOW) + /** Test if a page is a sub page */ +#define IS_SUBP(p) F_ISSET((p)->mp_flags, P_SUBP) + + /** The number of overflow pages needed to store the given size. */ +#define OVPAGES(size, psize) ((PAGEHDRSZ-1 + (size)) / (psize) + 1) + + /** Link in #MDB_txn.%mt_loose_pgs list. + * Kept outside the page header, which is needed when reusing the page. + */ +#define NEXT_LOOSE_PAGE(p) (*(MDB_page **)((p) + 2)) + + /** Header for a single key/data pair within a page. + * Used in pages of type #P_BRANCH and #P_LEAF without #P_LEAF2. + * We guarantee 2-byte alignment for 'MDB_node's. + * + * #mn_lo and #mn_hi are used for data size on leaf nodes, and for child + * pgno on branch nodes. On 64 bit platforms, #mn_flags is also used + * for pgno. (Branch nodes have no flags). Lo and hi are in host byte + * order in case some accesses can be optimized to 32-bit word access. + * + * Leaf node flags describe node contents. #F_BIGDATA says the node's + * data part is the page number of an overflow page with actual data. + * #F_DUPDATA and #F_SUBDATA can be combined giving duplicate data in + * a sub-page/sub-database, and named databases (just #F_SUBDATA). + */ +typedef struct MDB_node { + /** part of data size or pgno + * @{ */ +#if BYTE_ORDER == LITTLE_ENDIAN + unsigned short mn_lo, mn_hi; +#else + unsigned short mn_hi, mn_lo; +#endif + /** @} */ +/** @defgroup mdb_node Node Flags + * @ingroup internal + * Flags for node headers. + * @{ + */ +#define F_BIGDATA 0x01 /**< data put on overflow page */ +#define F_SUBDATA 0x02 /**< data is a sub-database */ +#define F_DUPDATA 0x04 /**< data has duplicates */ + +/** valid flags for #mdb_node_add() */ +#define NODE_ADD_FLAGS (F_DUPDATA|F_SUBDATA|MDB_RESERVE|MDB_APPEND) + +/** @} */ + unsigned short mn_flags; /**< @ref mdb_node */ + unsigned short mn_ksize; /**< key size */ + char mn_data[1]; /**< key and data are appended here */ +} MDB_node; + + /** Size of the node header, excluding dynamic data at the end */ +#define NODESIZE offsetof(MDB_node, mn_data) + + /** Bit position of top word in page number, for shifting mn_flags */ +#define PGNO_TOPWORD ((pgno_t)-1 > 0xffffffffu ? 32 : 0) + + /** Size of a node in a branch page with a given key. + * This is just the node header plus the key, there is no data. + */ +#define INDXSIZE(k) (NODESIZE + ((k) == NULL ? 0 : (k)->mv_size)) + + /** Size of a node in a leaf page with a given key and data. + * This is node header plus key plus data size. + */ +#define LEAFSIZE(k, d) (NODESIZE + (k)->mv_size + (d)->mv_size) + + /** Address of node \b i in page \b p */ +#define NODEPTR(p, i) ((MDB_node *)((char *)(p) + (p)->mp_ptrs[i] + PAGEBASE)) + + /** Address of the key for the node */ +#define NODEKEY(node) (void *)((node)->mn_data) + + /** Address of the data for a node */ +#define NODEDATA(node) (void *)((char *)(node)->mn_data + (node)->mn_ksize) + + /** Get the page number pointed to by a branch node */ +#define NODEPGNO(node) \ + ((node)->mn_lo | ((pgno_t) (node)->mn_hi << 16) | \ + (PGNO_TOPWORD ? ((pgno_t) (node)->mn_flags << PGNO_TOPWORD) : 0)) + /** Set the page number in a branch node */ +#define SETPGNO(node,pgno) do { \ + (node)->mn_lo = (pgno) & 0xffff; (node)->mn_hi = (pgno) >> 16; \ + if (PGNO_TOPWORD) (node)->mn_flags = (pgno) >> PGNO_TOPWORD; } while(0) + + /** Get the size of the data in a leaf node */ +#define NODEDSZ(node) ((node)->mn_lo | ((unsigned)(node)->mn_hi << 16)) + /** Set the size of the data for a leaf node */ +#define SETDSZ(node,size) do { \ + (node)->mn_lo = (size) & 0xffff; (node)->mn_hi = (size) >> 16;} while(0) + /** The size of a key in a node */ +#define NODEKSZ(node) ((node)->mn_ksize) + + /** Copy a page number from src to dst */ +#ifdef MISALIGNED_OK +#define COPY_PGNO(dst,src) dst = src +#else +#if SIZE_MAX > 4294967295UL +#define COPY_PGNO(dst,src) do { \ + unsigned short *s, *d; \ + s = (unsigned short *)&(src); \ + d = (unsigned short *)&(dst); \ + *d++ = *s++; \ + *d++ = *s++; \ + *d++ = *s++; \ + *d = *s; \ +} while (0) +#else +#define COPY_PGNO(dst,src) do { \ + unsigned short *s, *d; \ + s = (unsigned short *)&(src); \ + d = (unsigned short *)&(dst); \ + *d++ = *s++; \ + *d = *s; \ +} while (0) +#endif +#endif + /** The address of a key in a LEAF2 page. + * LEAF2 pages are used for #MDB_DUPFIXED sorted-duplicate sub-DBs. + * There are no node headers, keys are stored contiguously. + */ +#define LEAF2KEY(p, i, ks) ((char *)(p) + PAGEHDRSZ + ((i)*(ks))) + + /** Set the \b node's key into \b keyptr, if requested. */ +#define MDB_GET_KEY(node, keyptr) { if ((keyptr) != NULL) { \ + (keyptr)->mv_size = NODEKSZ(node); (keyptr)->mv_data = NODEKEY(node); } } + + /** Set the \b node's key into \b key. */ +#define MDB_GET_KEY2(node, key) { key.mv_size = NODEKSZ(node); key.mv_data = NODEKEY(node); } + + /** Information about a single database in the environment. */ +typedef struct MDB_db { + uint32_t md_pad; /**< also ksize for LEAF2 pages */ + uint16_t md_flags; /**< @ref mdb_dbi_open */ + uint16_t md_depth; /**< depth of this tree */ + pgno_t md_branch_pages; /**< number of internal pages */ + pgno_t md_leaf_pages; /**< number of leaf pages */ + pgno_t md_overflow_pages; /**< number of overflow pages */ + size_t md_entries; /**< number of data items */ + pgno_t md_root; /**< the root page of this tree */ +} MDB_db; + +#define MDB_VALID 0x8000 /**< DB handle is valid, for me_dbflags */ +#define PERSISTENT_FLAGS (0xffff & ~(MDB_VALID)) + /** #mdb_dbi_open() flags */ +#define VALID_FLAGS (MDB_REVERSEKEY|MDB_DUPSORT|MDB_INTEGERKEY|MDB_DUPFIXED|\ + MDB_INTEGERDUP|MDB_REVERSEDUP|MDB_CREATE) + + /** Handle for the DB used to track free pages. */ +#define FREE_DBI 0 + /** Handle for the default DB. */ +#define MAIN_DBI 1 + /** Number of DBs in metapage (free and main) - also hardcoded elsewhere */ +#define CORE_DBS 2 + + /** Number of meta pages - also hardcoded elsewhere */ +#define NUM_METAS 2 + + /** Meta page content. + * A meta page is the start point for accessing a database snapshot. + * Pages 0-1 are meta pages. Transaction N writes meta page #(N % 2). + */ +typedef struct MDB_meta { + /** Stamp identifying this as an LMDB file. It must be set + * to #MDB_MAGIC. */ + uint32_t mm_magic; + /** Version number of this file. Must be set to #MDB_DATA_VERSION. */ + uint32_t mm_version; + void *mm_address; /**< address for fixed mapping */ + size_t mm_mapsize; /**< size of mmap region */ + MDB_db mm_dbs[CORE_DBS]; /**< first is free space, 2nd is main db */ + /** The size of pages used in this DB */ +#define mm_psize mm_dbs[FREE_DBI].md_pad + /** Any persistent environment flags. @ref mdb_env */ +#define mm_flags mm_dbs[FREE_DBI].md_flags + /** Last used page in the datafile. + * Actually the file may be shorter if the freeDB lists the final pages. + */ + pgno_t mm_last_pg; + volatile txnid_t mm_txnid; /**< txnid that committed this page */ +} MDB_meta; + + /** Buffer for a stack-allocated meta page. + * The members define size and alignment, and silence type + * aliasing warnings. They are not used directly; that could + * mean incorrectly using several union members in parallel. + */ +typedef union MDB_metabuf { + MDB_page mb_page; + struct { + char mm_pad[PAGEHDRSZ]; + MDB_meta mm_meta; + } mb_metabuf; +} MDB_metabuf; + + /** Auxiliary DB info. + * The information here is mostly static/read-only. There is + * only a single copy of this record in the environment. + */ +typedef struct MDB_dbx { + MDB_val md_name; /**< name of the database */ + MDB_cmp_func *md_cmp; /**< function for comparing keys */ + MDB_cmp_func *md_dcmp; /**< function for comparing data items */ + MDB_rel_func *md_rel; /**< user relocate function */ + void *md_relctx; /**< user-provided context for md_rel */ +} MDB_dbx; + + /** A database transaction. + * Every operation requires a transaction handle. + */ +struct MDB_txn { + MDB_txn *mt_parent; /**< parent of a nested txn */ + /** Nested txn under this txn, set together with flag #MDB_TXN_HAS_CHILD */ + MDB_txn *mt_child; + pgno_t mt_next_pgno; /**< next unallocated page */ + /** The ID of this transaction. IDs are integers incrementing from 1. + * Only committed write transactions increment the ID. If a transaction + * aborts, the ID may be re-used by the next writer. + */ + txnid_t mt_txnid; + MDB_env *mt_env; /**< the DB environment */ + /** The list of pages that became unused during this transaction. + */ + MDB_IDL mt_free_pgs; + /** The list of loose pages that became unused and may be reused + * in this transaction, linked through #NEXT_LOOSE_PAGE(page). + */ + MDB_page *mt_loose_pgs; + /** Number of loose pages (#mt_loose_pgs) */ + int mt_loose_count; + /** The sorted list of dirty pages we temporarily wrote to disk + * because the dirty list was full. page numbers in here are + * shifted left by 1, deleted slots have the LSB set. + */ + MDB_IDL mt_spill_pgs; + union { + /** For write txns: Modified pages. Sorted when not MDB_WRITEMAP. */ + MDB_ID2L dirty_list; + /** For read txns: This thread/txn's reader table slot, or NULL. */ + MDB_reader *reader; + } mt_u; + /** Array of records for each DB known in the environment. */ + MDB_dbx *mt_dbxs; + /** Array of MDB_db records for each known DB */ + MDB_db *mt_dbs; + /** Array of sequence numbers for each DB handle */ + unsigned int *mt_dbiseqs; +/** @defgroup mt_dbflag Transaction DB Flags + * @ingroup internal + * @{ + */ +#define DB_DIRTY 0x01 /**< DB was written in this txn */ +#define DB_STALE 0x02 /**< Named-DB record is older than txnID */ +#define DB_NEW 0x04 /**< Named-DB handle opened in this txn */ +#define DB_VALID 0x08 /**< DB handle is valid, see also #MDB_VALID */ +#define DB_USRVALID 0x10 /**< As #DB_VALID, but not set for #FREE_DBI */ +#define DB_DUPDATA 0x20 /**< DB is #MDB_DUPSORT data */ +/** @} */ + /** In write txns, array of cursors for each DB */ + MDB_cursor **mt_cursors; + /** Array of flags for each DB */ + unsigned char *mt_dbflags; + /** Number of DB records in use, or 0 when the txn is finished. + * This number only ever increments until the txn finishes; we + * don't decrement it when individual DB handles are closed. + */ + MDB_dbi mt_numdbs; + +/** @defgroup mdb_txn Transaction Flags + * @ingroup internal + * @{ + */ + /** #mdb_txn_begin() flags */ +#define MDB_TXN_BEGIN_FLAGS MDB_RDONLY +#define MDB_TXN_RDONLY MDB_RDONLY /**< read-only transaction */ + /* internal txn flags */ +#define MDB_TXN_WRITEMAP MDB_WRITEMAP /**< copy of #MDB_env flag in writers */ +#define MDB_TXN_FINISHED 0x01 /**< txn is finished or never began */ +#define MDB_TXN_ERROR 0x02 /**< txn is unusable after an error */ +#define MDB_TXN_DIRTY 0x04 /**< must write, even if dirty list is empty */ +#define MDB_TXN_SPILLS 0x08 /**< txn or a parent has spilled pages */ +#define MDB_TXN_HAS_CHILD 0x10 /**< txn has an #MDB_txn.%mt_child */ + /** most operations on the txn are currently illegal */ +#define MDB_TXN_BLOCKED (MDB_TXN_FINISHED|MDB_TXN_ERROR|MDB_TXN_HAS_CHILD) +/** @} */ + unsigned int mt_flags; /**< @ref mdb_txn */ + /** #dirty_list room: Array size - \#dirty pages visible to this txn. + * Includes ancestor txns' dirty pages not hidden by other txns' + * dirty/spilled pages. Thus commit(nested txn) has room to merge + * dirty_list into mt_parent after freeing hidden mt_parent pages. + */ + unsigned int mt_dirty_room; +}; + +/** Enough space for 2^32 nodes with minimum of 2 keys per node. I.e., plenty. + * At 4 keys per node, enough for 2^64 nodes, so there's probably no need to + * raise this on a 64 bit machine. + */ +#define CURSOR_STACK 32 + +struct MDB_xcursor; + + /** Cursors are used for all DB operations. + * A cursor holds a path of (page pointer, key index) from the DB + * root to a position in the DB, plus other state. #MDB_DUPSORT + * cursors include an xcursor to the current data item. Write txns + * track their cursors and keep them up to date when data moves. + * Exception: An xcursor's pointer to a #P_SUBP page can be stale. + * (A node with #F_DUPDATA but no #F_SUBDATA contains a subpage). + */ +struct MDB_cursor { + /** Next cursor on this DB in this txn */ + MDB_cursor *mc_next; + /** Backup of the original cursor if this cursor is a shadow */ + MDB_cursor *mc_backup; + /** Context used for databases with #MDB_DUPSORT, otherwise NULL */ + struct MDB_xcursor *mc_xcursor; + /** The transaction that owns this cursor */ + MDB_txn *mc_txn; + /** The database handle this cursor operates on */ + MDB_dbi mc_dbi; + /** The database record for this cursor */ + MDB_db *mc_db; + /** The database auxiliary record for this cursor */ + MDB_dbx *mc_dbx; + /** The @ref mt_dbflag for this database */ + unsigned char *mc_dbflag; + unsigned short mc_snum; /**< number of pushed pages */ + unsigned short mc_top; /**< index of top page, normally mc_snum-1 */ +/** @defgroup mdb_cursor Cursor Flags + * @ingroup internal + * Cursor state flags. + * @{ + */ +#define C_INITIALIZED 0x01 /**< cursor has been initialized and is valid */ +#define C_EOF 0x02 /**< No more data */ +#define C_SUB 0x04 /**< Cursor is a sub-cursor */ +#define C_DEL 0x08 /**< last op was a cursor_del */ +#define C_UNTRACK 0x40 /**< Un-track cursor when closing */ +/** @} */ + unsigned int mc_flags; /**< @ref mdb_cursor */ + MDB_page *mc_pg[CURSOR_STACK]; /**< stack of pushed pages */ + indx_t mc_ki[CURSOR_STACK]; /**< stack of page indices */ +}; + + /** Context for sorted-dup records. + * We could have gone to a fully recursive design, with arbitrarily + * deep nesting of sub-databases. But for now we only handle these + * levels - main DB, optional sub-DB, sorted-duplicate DB. + */ +typedef struct MDB_xcursor { + /** A sub-cursor for traversing the Dup DB */ + MDB_cursor mx_cursor; + /** The database record for this Dup DB */ + MDB_db mx_db; + /** The auxiliary DB record for this Dup DB */ + MDB_dbx mx_dbx; + /** The @ref mt_dbflag for this Dup DB */ + unsigned char mx_dbflag; +} MDB_xcursor; + + /** Check if there is an inited xcursor */ +#define XCURSOR_INITED(mc) \ + ((mc)->mc_xcursor && ((mc)->mc_xcursor->mx_cursor.mc_flags & C_INITIALIZED)) + + /** Update the xcursor's sub-page pointer, if any, in \b mc. Needed + * when the node which contains the sub-page may have moved. Called + * with leaf page \b mp = mc->mc_pg[\b top]. + */ +#define XCURSOR_REFRESH(mc, top, mp) do { \ + MDB_page *xr_pg = (mp); \ + MDB_node *xr_node; \ + if (!XCURSOR_INITED(mc) || (mc)->mc_ki[top] >= NUMKEYS(xr_pg)) break; \ + xr_node = NODEPTR(xr_pg, (mc)->mc_ki[top]); \ + if ((xr_node->mn_flags & (F_DUPDATA|F_SUBDATA)) == F_DUPDATA) \ + (mc)->mc_xcursor->mx_cursor.mc_pg[0] = NODEDATA(xr_node); \ +} while (0) + + /** State of FreeDB old pages, stored in the MDB_env */ +typedef struct MDB_pgstate { + pgno_t *mf_pghead; /**< Reclaimed freeDB pages, or NULL before use */ + txnid_t mf_pglast; /**< ID of last used record, or 0 if !mf_pghead */ +} MDB_pgstate; + + /** The database environment. */ +struct MDB_env { + HANDLE me_fd; /**< The main data file */ + HANDLE me_lfd; /**< The lock file */ + HANDLE me_mfd; /**< For writing and syncing the meta pages */ + /** Failed to update the meta page. Probably an I/O error. */ +#define MDB_FATAL_ERROR 0x80000000U + /** Some fields are initialized. */ +#define MDB_ENV_ACTIVE 0x20000000U + /** me_txkey is set */ +#define MDB_ENV_TXKEY 0x10000000U + /** fdatasync is unreliable */ +#define MDB_FSYNCONLY 0x08000000U + uint32_t me_flags; /**< @ref mdb_env */ + unsigned int me_psize; /**< DB page size, inited from me_os_psize */ + unsigned int me_os_psize; /**< OS page size, from #GET_PAGESIZE */ + unsigned int me_maxreaders; /**< size of the reader table */ + /** Max #MDB_txninfo.%mti_numreaders of interest to #mdb_env_close() */ + volatile int me_close_readers; + MDB_dbi me_numdbs; /**< number of DBs opened */ + MDB_dbi me_maxdbs; /**< size of the DB table */ + MDB_PID_T me_pid; /**< process ID of this env */ + char *me_path; /**< path to the DB files */ + char *me_map; /**< the memory map of the data file */ + MDB_txninfo *me_txns; /**< the memory map of the lock file or NULL */ + MDB_meta *me_metas[NUM_METAS]; /**< pointers to the two meta pages */ + void *me_pbuf; /**< scratch area for DUPSORT put() */ + MDB_txn *me_txn; /**< current write transaction */ + MDB_txn *me_txn0; /**< prealloc'd write transaction */ + size_t me_mapsize; /**< size of the data memory map */ + off_t me_size; /**< current file size */ + pgno_t me_maxpg; /**< me_mapsize / me_psize */ + MDB_dbx *me_dbxs; /**< array of static DB info */ + uint16_t *me_dbflags; /**< array of flags from MDB_db.md_flags */ + unsigned int *me_dbiseqs; /**< array of dbi sequence numbers */ + pthread_key_t me_txkey; /**< thread-key for readers */ + txnid_t me_pgoldest; /**< ID of oldest reader last time we looked */ + MDB_pgstate me_pgstate; /**< state of old pages from freeDB */ +# define me_pglast me_pgstate.mf_pglast +# define me_pghead me_pgstate.mf_pghead + MDB_page *me_dpages; /**< list of malloc'd blocks for re-use */ + /** IDL of pages that became unused in a write txn */ + MDB_IDL me_free_pgs; + /** ID2L of pages written during a write txn. Length MDB_IDL_UM_SIZE. */ + MDB_ID2L me_dirty_list; + /** Max number of freelist items that can fit in a single overflow page */ + int me_maxfree_1pg; + /** Max size of a node on a page */ + unsigned int me_nodemax; +#if !(MDB_MAXKEYSIZE) + unsigned int me_maxkey; /**< max size of a key */ +#endif + int me_live_reader; /**< have liveness lock in reader table */ +#ifdef _WIN32 + int me_pidquery; /**< Used in OpenProcess */ +#endif +#ifdef MDB_USE_POSIX_MUTEX /* Posix mutexes reside in shared mem */ +# define me_rmutex me_txns->mti_rmutex /**< Shared reader lock */ +# define me_wmutex me_txns->mti_wmutex /**< Shared writer lock */ +#else + mdb_mutex_t me_rmutex; + mdb_mutex_t me_wmutex; +#endif + void *me_userctx; /**< User-settable context */ + MDB_assert_func *me_assert_func; /**< Callback for assertion failures */ +}; + + /** Nested transaction */ +typedef struct MDB_ntxn { + MDB_txn mnt_txn; /**< the transaction */ + MDB_pgstate mnt_pgstate; /**< parent transaction's saved freestate */ +} MDB_ntxn; + + /** max number of pages to commit in one writev() call */ +#define MDB_COMMIT_PAGES 64 +#if defined(IOV_MAX) && IOV_MAX < MDB_COMMIT_PAGES +#undef MDB_COMMIT_PAGES +#define MDB_COMMIT_PAGES IOV_MAX +#endif + + /** max bytes to write in one call */ +#define MAX_WRITE (0x40000000U >> (sizeof(ssize_t) == 4)) + + /** Check \b txn and \b dbi arguments to a function */ +#define TXN_DBI_EXIST(txn, dbi, validity) \ + ((txn) && (dbi)<(txn)->mt_numdbs && ((txn)->mt_dbflags[dbi] & (validity))) + + /** Check for misused \b dbi handles */ +#define TXN_DBI_CHANGED(txn, dbi) \ + ((txn)->mt_dbiseqs[dbi] != (txn)->mt_env->me_dbiseqs[dbi]) + +static int mdb_page_alloc(MDB_cursor *mc, int num, MDB_page **mp); +static int mdb_page_new(MDB_cursor *mc, uint32_t flags, int num, MDB_page **mp); +static int mdb_page_touch(MDB_cursor *mc); + +#define MDB_END_NAMES {"committed", "empty-commit", "abort", "reset", \ + "reset-tmp", "fail-begin", "fail-beginchild"} +enum { + /* mdb_txn_end operation number, for logging */ + MDB_END_COMMITTED, MDB_END_EMPTY_COMMIT, MDB_END_ABORT, MDB_END_RESET, + MDB_END_RESET_TMP, MDB_END_FAIL_BEGIN, MDB_END_FAIL_BEGINCHILD +}; +#define MDB_END_OPMASK 0x0F /**< mask for #mdb_txn_end() operation number */ +#define MDB_END_UPDATE 0x10 /**< update env state (DBIs) */ +#define MDB_END_FREE 0x20 /**< free txn unless it is #MDB_env.%me_txn0 */ +#define MDB_END_SLOT MDB_NOTLS /**< release any reader slot if #MDB_NOTLS */ +static void mdb_txn_end(MDB_txn *txn, unsigned mode); + +static int mdb_page_get(MDB_cursor *mc, pgno_t pgno, MDB_page **mp, int *lvl); +static int mdb_page_search_root(MDB_cursor *mc, + MDB_val *key, int modify); +#define MDB_PS_MODIFY 1 +#define MDB_PS_ROOTONLY 2 +#define MDB_PS_FIRST 4 +#define MDB_PS_LAST 8 +static int mdb_page_search(MDB_cursor *mc, + MDB_val *key, int flags); +static int mdb_page_merge(MDB_cursor *csrc, MDB_cursor *cdst); + +#define MDB_SPLIT_REPLACE MDB_APPENDDUP /**< newkey is not new */ +static int mdb_page_split(MDB_cursor *mc, MDB_val *newkey, MDB_val *newdata, + pgno_t newpgno, unsigned int nflags); + +static int mdb_env_read_header(MDB_env *env, MDB_meta *meta); +static MDB_meta *mdb_env_pick_meta(const MDB_env *env); +static int mdb_env_write_meta(MDB_txn *txn); +#if defined(MDB_USE_POSIX_MUTEX) && !defined(MDB_ROBUST_SUPPORTED) /* Drop unused excl arg */ +# define mdb_env_close0(env, excl) mdb_env_close1(env) +#endif +static void mdb_env_close0(MDB_env *env, int excl); + +static MDB_node *mdb_node_search(MDB_cursor *mc, MDB_val *key, int *exactp); +static int mdb_node_add(MDB_cursor *mc, indx_t indx, + MDB_val *key, MDB_val *data, pgno_t pgno, unsigned int flags); +static void mdb_node_del(MDB_cursor *mc, int ksize); +static void mdb_node_shrink(MDB_page *mp, indx_t indx); +static int mdb_node_move(MDB_cursor *csrc, MDB_cursor *cdst, int fromleft); +static int mdb_node_read(MDB_cursor *mc, MDB_node *leaf, MDB_val *data); +static size_t mdb_leaf_size(MDB_env *env, MDB_val *key, MDB_val *data); +static size_t mdb_branch_size(MDB_env *env, MDB_val *key); + +static int mdb_rebalance(MDB_cursor *mc); +static int mdb_update_key(MDB_cursor *mc, MDB_val *key); + +static void mdb_cursor_pop(MDB_cursor *mc); +static int mdb_cursor_push(MDB_cursor *mc, MDB_page *mp); + +static int mdb_cursor_del0(MDB_cursor *mc); +static int mdb_del0(MDB_txn *txn, MDB_dbi dbi, MDB_val *key, MDB_val *data, unsigned flags); +static int mdb_cursor_sibling(MDB_cursor *mc, int move_right); +static int mdb_cursor_next(MDB_cursor *mc, MDB_val *key, MDB_val *data, MDB_cursor_op op); +static int mdb_cursor_prev(MDB_cursor *mc, MDB_val *key, MDB_val *data, MDB_cursor_op op); +static int mdb_cursor_set(MDB_cursor *mc, MDB_val *key, MDB_val *data, MDB_cursor_op op, + int *exactp); +static int mdb_cursor_first(MDB_cursor *mc, MDB_val *key, MDB_val *data); +static int mdb_cursor_last(MDB_cursor *mc, MDB_val *key, MDB_val *data); + +static void mdb_cursor_init(MDB_cursor *mc, MDB_txn *txn, MDB_dbi dbi, MDB_xcursor *mx); +static void mdb_xcursor_init0(MDB_cursor *mc); +static void mdb_xcursor_init1(MDB_cursor *mc, MDB_node *node); +static void mdb_xcursor_init2(MDB_cursor *mc, MDB_xcursor *src_mx, int force); + +static int mdb_drop0(MDB_cursor *mc, int subs); +static void mdb_default_cmp(MDB_txn *txn, MDB_dbi dbi); +static int mdb_reader_check0(MDB_env *env, int rlocked, int *dead); + +/** @cond */ +static MDB_cmp_func mdb_cmp_memn, mdb_cmp_memnr, mdb_cmp_int, mdb_cmp_cint, mdb_cmp_long; +/** @endcond */ + +/** Compare two items pointing at size_t's of unknown alignment. */ +#ifdef MISALIGNED_OK +# define mdb_cmp_clong mdb_cmp_long +#else +# define mdb_cmp_clong mdb_cmp_cint +#endif + +#ifdef _WIN32 +static SECURITY_DESCRIPTOR mdb_null_sd; +static SECURITY_ATTRIBUTES mdb_all_sa; +static int mdb_sec_inited; + +struct MDB_name; +static int utf8_to_utf16(const char *src, struct MDB_name *dst, int xtra); +#endif + +/** Return the library version info. */ +char * ESECT +mdb_version(int *major, int *minor, int *patch) +{ + if (major) *major = MDB_VERSION_MAJOR; + if (minor) *minor = MDB_VERSION_MINOR; + if (patch) *patch = MDB_VERSION_PATCH; + return MDB_VERSION_STRING; +} + +/** Table of descriptions for LMDB @ref errors */ +static char *const mdb_errstr[] = { + "MDB_KEYEXIST: Key/data pair already exists", + "MDB_NOTFOUND: No matching key/data pair found", + "MDB_PAGE_NOTFOUND: Requested page not found", + "MDB_CORRUPTED: Located page was wrong type", + "MDB_PANIC: Update of meta page failed or environment had fatal error", + "MDB_VERSION_MISMATCH: Database environment version mismatch", + "MDB_INVALID: File is not an LMDB file", + "MDB_MAP_FULL: Environment mapsize limit reached", + "MDB_DBS_FULL: Environment maxdbs limit reached", + "MDB_READERS_FULL: Environment maxreaders limit reached", + "MDB_TLS_FULL: Thread-local storage keys full - too many environments open", + "MDB_TXN_FULL: Transaction has too many dirty pages - transaction too big", + "MDB_CURSOR_FULL: Internal error - cursor stack limit reached", + "MDB_PAGE_FULL: Internal error - page has no more space", + "MDB_MAP_RESIZED: Database contents grew beyond environment mapsize", + "MDB_INCOMPATIBLE: Operation and DB incompatible, or DB flags changed", + "MDB_BAD_RSLOT: Invalid reuse of reader locktable slot", + "MDB_BAD_TXN: Transaction must abort, has a child, or is invalid", + "MDB_BAD_VALSIZE: Unsupported size of key/DB name/data, or wrong DUPFIXED size", + "MDB_BAD_DBI: The specified DBI handle was closed/changed unexpectedly", +}; + +char * +mdb_strerror(int err) +{ +#ifdef _WIN32 + /** HACK: pad 4KB on stack over the buf. Return system msgs in buf. + * This works as long as no function between the call to mdb_strerror + * and the actual use of the message uses more than 4K of stack. + */ +#define MSGSIZE 1024 +#define PADSIZE 4096 + char buf[MSGSIZE+PADSIZE], *ptr = buf; +#endif + int i; + if (!err) + return ("Successful return: 0"); + + if (err >= MDB_KEYEXIST && err <= MDB_LAST_ERRCODE) { + i = err - MDB_KEYEXIST; + return mdb_errstr[i]; + } + +#ifdef _WIN32 + /* These are the C-runtime error codes we use. The comment indicates + * their numeric value, and the Win32 error they would correspond to + * if the error actually came from a Win32 API. A major mess, we should + * have used LMDB-specific error codes for everything. + */ + switch(err) { + case ENOENT: /* 2, FILE_NOT_FOUND */ + case EIO: /* 5, ACCESS_DENIED */ + case ENOMEM: /* 12, INVALID_ACCESS */ + case EACCES: /* 13, INVALID_DATA */ + case EBUSY: /* 16, CURRENT_DIRECTORY */ + case EINVAL: /* 22, BAD_COMMAND */ + case ENOSPC: /* 28, OUT_OF_PAPER */ + return strerror(err); + default: + ; + } + buf[0] = 0; + FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM | + FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, err, 0, ptr, MSGSIZE, (va_list *)buf+MSGSIZE); + return ptr; +#else + return strerror(err); +#endif +} + +/** assert(3) variant in cursor context */ +#define mdb_cassert(mc, expr) mdb_assert0((mc)->mc_txn->mt_env, expr, #expr) +/** assert(3) variant in transaction context */ +#define mdb_tassert(txn, expr) mdb_assert0((txn)->mt_env, expr, #expr) +/** assert(3) variant in environment context */ +#define mdb_eassert(env, expr) mdb_assert0(env, expr, #expr) + +#ifndef NDEBUG +# define mdb_assert0(env, expr, expr_txt) ((expr) ? (void)0 : \ + mdb_assert_fail(env, expr_txt, mdb_func_, __FILE__, __LINE__)) + +static void ESECT +mdb_assert_fail(MDB_env *env, const char *expr_txt, + const char *func, const char *file, int line) +{ + char buf[400]; + sprintf(buf, "%.100s:%d: Assertion '%.200s' failed in %.40s()", + file, line, expr_txt, func); + if (env->me_assert_func) + env->me_assert_func(env, buf); + fprintf(stderr, "%s\n", buf); + abort(); +} +#else +# define mdb_assert0(env, expr, expr_txt) ((void) 0) +#endif /* NDEBUG */ + +#if MDB_DEBUG +/** Return the page number of \b mp which may be sub-page, for debug output */ +static pgno_t +mdb_dbg_pgno(MDB_page *mp) +{ + pgno_t ret; + COPY_PGNO(ret, mp->mp_pgno); + return ret; +} + +/** Display a key in hexadecimal and return the address of the result. + * @param[in] key the key to display + * @param[in] buf the buffer to write into. Should always be #DKBUF. + * @return The key in hexadecimal form. + */ +char * +mdb_dkey(MDB_val *key, char *buf) +{ + char *ptr = buf; + unsigned char *c = key->mv_data; + unsigned int i; + + if (!key) + return ""; + + if (key->mv_size > DKBUF_MAXKEYSIZE) + return "MDB_MAXKEYSIZE"; + /* may want to make this a dynamic check: if the key is mostly + * printable characters, print it as-is instead of converting to hex. + */ +#if 1 + buf[0] = '\0'; + for (i=0; imv_size; i++) + ptr += sprintf(ptr, "%02x", *c++); +#else + sprintf(buf, "%.*s", key->mv_size, key->mv_data); +#endif + return buf; +} + +static const char * +mdb_leafnode_type(MDB_node *n) +{ + static char *const tp[2][2] = {{"", ": DB"}, {": sub-page", ": sub-DB"}}; + return F_ISSET(n->mn_flags, F_BIGDATA) ? ": overflow page" : + tp[F_ISSET(n->mn_flags, F_DUPDATA)][F_ISSET(n->mn_flags, F_SUBDATA)]; +} + +/** Display all the keys in the page. */ +void +mdb_page_list(MDB_page *mp) +{ + pgno_t pgno = mdb_dbg_pgno(mp); + const char *type, *state = (mp->mp_flags & P_DIRTY) ? ", dirty" : ""; + MDB_node *node; + unsigned int i, nkeys, nsize, total = 0; + MDB_val key; + DKBUF; + + switch (mp->mp_flags & (P_BRANCH|P_LEAF|P_LEAF2|P_META|P_OVERFLOW|P_SUBP)) { + case P_BRANCH: type = "Branch page"; break; + case P_LEAF: type = "Leaf page"; break; + case P_LEAF|P_SUBP: type = "Sub-page"; break; + case P_LEAF|P_LEAF2: type = "LEAF2 page"; break; + case P_LEAF|P_LEAF2|P_SUBP: type = "LEAF2 sub-page"; break; + case P_OVERFLOW: + fprintf(stderr, "Overflow page %"Z"u pages %u%s\n", + pgno, mp->mp_pages, state); + return; + case P_META: + fprintf(stderr, "Meta-page %"Z"u txnid %"Z"u\n", + pgno, ((MDB_meta *)METADATA(mp))->mm_txnid); + return; + default: + fprintf(stderr, "Bad page %"Z"u flags 0x%X\n", pgno, mp->mp_flags); + return; + } + + nkeys = NUMKEYS(mp); + fprintf(stderr, "%s %"Z"u numkeys %d%s\n", type, pgno, nkeys, state); + + for (i=0; imp_pad; + key.mv_data = LEAF2KEY(mp, i, nsize); + total += nsize; + fprintf(stderr, "key %d: nsize %d, %s\n", i, nsize, DKEY(&key)); + continue; + } + node = NODEPTR(mp, i); + key.mv_size = node->mn_ksize; + key.mv_data = node->mn_data; + nsize = NODESIZE + key.mv_size; + if (IS_BRANCH(mp)) { + fprintf(stderr, "key %d: page %"Z"u, %s\n", i, NODEPGNO(node), + DKEY(&key)); + total += nsize; + } else { + if (F_ISSET(node->mn_flags, F_BIGDATA)) + nsize += sizeof(pgno_t); + else + nsize += NODEDSZ(node); + total += nsize; + nsize += sizeof(indx_t); + fprintf(stderr, "key %d: nsize %d, %s%s\n", + i, nsize, DKEY(&key), mdb_leafnode_type(node)); + } + total = EVEN(total); + } + fprintf(stderr, "Total: header %d + contents %d + unused %d\n", + IS_LEAF2(mp) ? PAGEHDRSZ : PAGEBASE + mp->mp_lower, total, SIZELEFT(mp)); +} + +void +mdb_cursor_chk(MDB_cursor *mc) +{ + unsigned int i; + MDB_node *node; + MDB_page *mp; + + if (!mc->mc_snum || !(mc->mc_flags & C_INITIALIZED)) return; + for (i=0; imc_top; i++) { + mp = mc->mc_pg[i]; + node = NODEPTR(mp, mc->mc_ki[i]); + if (NODEPGNO(node) != mc->mc_pg[i+1]->mp_pgno) + printf("oops!\n"); + } + if (mc->mc_ki[i] >= NUMKEYS(mc->mc_pg[i])) + printf("ack!\n"); + if (XCURSOR_INITED(mc)) { + node = NODEPTR(mc->mc_pg[mc->mc_top], mc->mc_ki[mc->mc_top]); + if (((node->mn_flags & (F_DUPDATA|F_SUBDATA)) == F_DUPDATA) && + mc->mc_xcursor->mx_cursor.mc_pg[0] != NODEDATA(node)) { + printf("blah!\n"); + } + } +} +#endif + +#if (MDB_DEBUG) > 2 +/** Count all the pages in each DB and in the freelist + * and make sure it matches the actual number of pages + * being used. + * All named DBs must be open for a correct count. + */ +static void mdb_audit(MDB_txn *txn) +{ + MDB_cursor mc; + MDB_val key, data; + MDB_ID freecount, count; + MDB_dbi i; + int rc; + + freecount = 0; + mdb_cursor_init(&mc, txn, FREE_DBI, NULL); + while ((rc = mdb_cursor_get(&mc, &key, &data, MDB_NEXT)) == 0) + freecount += *(MDB_ID *)data.mv_data; + mdb_tassert(txn, rc == MDB_NOTFOUND); + + count = 0; + for (i = 0; imt_numdbs; i++) { + MDB_xcursor mx; + if (!(txn->mt_dbflags[i] & DB_VALID)) + continue; + mdb_cursor_init(&mc, txn, i, &mx); + if (txn->mt_dbs[i].md_root == P_INVALID) + continue; + count += txn->mt_dbs[i].md_branch_pages + + txn->mt_dbs[i].md_leaf_pages + + txn->mt_dbs[i].md_overflow_pages; + if (txn->mt_dbs[i].md_flags & MDB_DUPSORT) { + rc = mdb_page_search(&mc, NULL, MDB_PS_FIRST); + for (; rc == MDB_SUCCESS; rc = mdb_cursor_sibling(&mc, 1)) { + unsigned j; + MDB_page *mp; + mp = mc.mc_pg[mc.mc_top]; + for (j=0; jmn_flags & F_SUBDATA) { + MDB_db db; + memcpy(&db, NODEDATA(leaf), sizeof(db)); + count += db.md_branch_pages + db.md_leaf_pages + + db.md_overflow_pages; + } + } + } + mdb_tassert(txn, rc == MDB_NOTFOUND); + } + } + if (freecount + count + NUM_METAS != txn->mt_next_pgno) { + fprintf(stderr, "audit: %"Z"u freecount: %"Z"u count: %"Z"u total: %"Z"u next_pgno: %"Z"u\n", + txn->mt_txnid, freecount, count+NUM_METAS, + freecount+count+NUM_METAS, txn->mt_next_pgno); + } +} +#endif + +int +mdb_cmp(MDB_txn *txn, MDB_dbi dbi, const MDB_val *a, const MDB_val *b) +{ + return txn->mt_dbxs[dbi].md_cmp(a, b); +} + +int +mdb_dcmp(MDB_txn *txn, MDB_dbi dbi, const MDB_val *a, const MDB_val *b) +{ + MDB_cmp_func *dcmp = txn->mt_dbxs[dbi].md_dcmp; +#if UINT_MAX < SIZE_MAX + if (dcmp == mdb_cmp_int && a->mv_size == sizeof(size_t)) + dcmp = mdb_cmp_clong; +#endif + return dcmp(a, b); +} + +/** Allocate memory for a page. + * Re-use old malloc'd pages first for singletons, otherwise just malloc. + * Set #MDB_TXN_ERROR on failure. + */ +static MDB_page * +mdb_page_malloc(MDB_txn *txn, unsigned num) +{ + MDB_env *env = txn->mt_env; + MDB_page *ret = env->me_dpages; + size_t psize = env->me_psize, sz = psize, off; + /* For ! #MDB_NOMEMINIT, psize counts how much to init. + * For a single page alloc, we init everything after the page header. + * For multi-page, we init the final page; if the caller needed that + * many pages they will be filling in at least up to the last page. + */ + if (num == 1) { + if (ret) { + VGMEMP_ALLOC(env, ret, sz); + VGMEMP_DEFINED(ret, sizeof(ret->mp_next)); + env->me_dpages = ret->mp_next; + return ret; + } + psize -= off = PAGEHDRSZ; + } else { + sz *= num; + off = sz - psize; + } + if ((ret = malloc(sz)) != NULL) { + VGMEMP_ALLOC(env, ret, sz); + if (!(env->me_flags & MDB_NOMEMINIT)) { + memset((char *)ret + off, 0, psize); + ret->mp_pad = 0; + } + } else { + txn->mt_flags |= MDB_TXN_ERROR; + } + return ret; +} +/** Free a single page. + * Saves single pages to a list, for future reuse. + * (This is not used for multi-page overflow pages.) + */ +static void +mdb_page_free(MDB_env *env, MDB_page *mp) +{ + mp->mp_next = env->me_dpages; + VGMEMP_FREE(env, mp); + env->me_dpages = mp; +} + +/** Free a dirty page */ +static void +mdb_dpage_free(MDB_env *env, MDB_page *dp) +{ + if (!IS_OVERFLOW(dp) || dp->mp_pages == 1) { + mdb_page_free(env, dp); + } else { + /* large pages just get freed directly */ + VGMEMP_FREE(env, dp); + free(dp); + } +} + +/** Return all dirty pages to dpage list */ +static void +mdb_dlist_free(MDB_txn *txn) +{ + MDB_env *env = txn->mt_env; + MDB_ID2L dl = txn->mt_u.dirty_list; + unsigned i, n = dl[0].mid; + + for (i = 1; i <= n; i++) { + mdb_dpage_free(env, dl[i].mptr); + } + dl[0].mid = 0; +} + +/** Loosen or free a single page. + * Saves single pages to a list for future reuse + * in this same txn. It has been pulled from the freeDB + * and already resides on the dirty list, but has been + * deleted. Use these pages first before pulling again + * from the freeDB. + * + * If the page wasn't dirtied in this txn, just add it + * to this txn's free list. + */ +static int +mdb_page_loose(MDB_cursor *mc, MDB_page *mp) +{ + int loose = 0; + pgno_t pgno = mp->mp_pgno; + MDB_txn *txn = mc->mc_txn; + + if ((mp->mp_flags & P_DIRTY) && mc->mc_dbi != FREE_DBI) { + if (txn->mt_parent) { + MDB_ID2 *dl = txn->mt_u.dirty_list; + /* If txn has a parent, make sure the page is in our + * dirty list. + */ + if (dl[0].mid) { + unsigned x = mdb_mid2l_search(dl, pgno); + if (x <= dl[0].mid && dl[x].mid == pgno) { + if (mp != dl[x].mptr) { /* bad cursor? */ + mc->mc_flags &= ~(C_INITIALIZED|C_EOF); + txn->mt_flags |= MDB_TXN_ERROR; + return MDB_CORRUPTED; + } + /* ok, it's ours */ + loose = 1; + } + } + } else { + /* no parent txn, so it's just ours */ + loose = 1; + } + } + if (loose) { + DPRINTF(("loosen db %d page %"Z"u", DDBI(mc), + mp->mp_pgno)); + NEXT_LOOSE_PAGE(mp) = txn->mt_loose_pgs; + txn->mt_loose_pgs = mp; + txn->mt_loose_count++; + mp->mp_flags |= P_LOOSE; + } else { + int rc = mdb_midl_append(&txn->mt_free_pgs, pgno); + if (rc) + return rc; + } + + return MDB_SUCCESS; +} + +/** Set or clear P_KEEP in dirty, non-overflow, non-sub pages watched by txn. + * @param[in] mc A cursor handle for the current operation. + * @param[in] pflags Flags of the pages to update: + * P_DIRTY to set P_KEEP, P_DIRTY|P_KEEP to clear it. + * @param[in] all No shortcuts. Needed except after a full #mdb_page_flush(). + * @return 0 on success, non-zero on failure. + */ +static int +mdb_pages_xkeep(MDB_cursor *mc, unsigned pflags, int all) +{ + enum { Mask = P_SUBP|P_DIRTY|P_LOOSE|P_KEEP }; + MDB_txn *txn = mc->mc_txn; + MDB_cursor *m3, *m0 = mc; + MDB_xcursor *mx; + MDB_page *dp, *mp; + MDB_node *leaf; + unsigned i, j; + int rc = MDB_SUCCESS, level; + + /* Mark pages seen by cursors */ + if (mc->mc_flags & C_UNTRACK) + mc = NULL; /* will find mc in mt_cursors */ + for (i = txn->mt_numdbs;; mc = txn->mt_cursors[--i]) { + for (; mc; mc=mc->mc_next) { + if (!(mc->mc_flags & C_INITIALIZED)) + continue; + for (m3 = mc;; m3 = &mx->mx_cursor) { + mp = NULL; + for (j=0; jmc_snum; j++) { + mp = m3->mc_pg[j]; + if ((mp->mp_flags & Mask) == pflags) + mp->mp_flags ^= P_KEEP; + } + mx = m3->mc_xcursor; + /* Proceed to mx if it is at a sub-database */ + if (! (mx && (mx->mx_cursor.mc_flags & C_INITIALIZED))) + break; + if (! (mp && (mp->mp_flags & P_LEAF))) + break; + leaf = NODEPTR(mp, m3->mc_ki[j-1]); + if (!(leaf->mn_flags & F_SUBDATA)) + break; + } + } + if (i == 0) + break; + } + + if (all) { + /* Mark dirty root pages */ + for (i=0; imt_numdbs; i++) { + if (txn->mt_dbflags[i] & DB_DIRTY) { + pgno_t pgno = txn->mt_dbs[i].md_root; + if (pgno == P_INVALID) + continue; + if ((rc = mdb_page_get(m0, pgno, &dp, &level)) != MDB_SUCCESS) + break; + if ((dp->mp_flags & Mask) == pflags && level <= 1) + dp->mp_flags ^= P_KEEP; + } + } + } + + return rc; +} + +static int mdb_page_flush(MDB_txn *txn, int keep); + +/** Spill pages from the dirty list back to disk. + * This is intended to prevent running into #MDB_TXN_FULL situations, + * but note that they may still occur in a few cases: + * 1) our estimate of the txn size could be too small. Currently this + * seems unlikely, except with a large number of #MDB_MULTIPLE items. + * 2) child txns may run out of space if their parents dirtied a + * lot of pages and never spilled them. TODO: we probably should do + * a preemptive spill during #mdb_txn_begin() of a child txn, if + * the parent's dirty_room is below a given threshold. + * + * Otherwise, if not using nested txns, it is expected that apps will + * not run into #MDB_TXN_FULL any more. The pages are flushed to disk + * the same way as for a txn commit, e.g. their P_DIRTY flag is cleared. + * If the txn never references them again, they can be left alone. + * If the txn only reads them, they can be used without any fuss. + * If the txn writes them again, they can be dirtied immediately without + * going thru all of the work of #mdb_page_touch(). Such references are + * handled by #mdb_page_unspill(). + * + * Also note, we never spill DB root pages, nor pages of active cursors, + * because we'll need these back again soon anyway. And in nested txns, + * we can't spill a page in a child txn if it was already spilled in a + * parent txn. That would alter the parent txns' data even though + * the child hasn't committed yet, and we'd have no way to undo it if + * the child aborted. + * + * @param[in] m0 cursor A cursor handle identifying the transaction and + * database for which we are checking space. + * @param[in] key For a put operation, the key being stored. + * @param[in] data For a put operation, the data being stored. + * @return 0 on success, non-zero on failure. + */ +static int +mdb_page_spill(MDB_cursor *m0, MDB_val *key, MDB_val *data) +{ + MDB_txn *txn = m0->mc_txn; + MDB_page *dp; + MDB_ID2L dl = txn->mt_u.dirty_list; + unsigned int i, j, need; + int rc; + + if (m0->mc_flags & C_SUB) + return MDB_SUCCESS; + + /* Estimate how much space this op will take */ + i = m0->mc_db->md_depth; + /* Named DBs also dirty the main DB */ + if (m0->mc_dbi >= CORE_DBS) + i += txn->mt_dbs[MAIN_DBI].md_depth; + /* For puts, roughly factor in the key+data size */ + if (key) + i += (LEAFSIZE(key, data) + txn->mt_env->me_psize) / txn->mt_env->me_psize; + i += i; /* double it for good measure */ + need = i; + + if (txn->mt_dirty_room > i) + return MDB_SUCCESS; + + if (!txn->mt_spill_pgs) { + txn->mt_spill_pgs = mdb_midl_alloc(MDB_IDL_UM_MAX); + if (!txn->mt_spill_pgs) + return ENOMEM; + } else { + /* purge deleted slots */ + MDB_IDL sl = txn->mt_spill_pgs; + unsigned int num = sl[0]; + j=0; + for (i=1; i<=num; i++) { + if (!(sl[i] & 1)) + sl[++j] = sl[i]; + } + sl[0] = j; + } + + /* Preserve pages which may soon be dirtied again */ + if ((rc = mdb_pages_xkeep(m0, P_DIRTY, 1)) != MDB_SUCCESS) + goto done; + + /* Less aggressive spill - we originally spilled the entire dirty list, + * with a few exceptions for cursor pages and DB root pages. But this + * turns out to be a lot of wasted effort because in a large txn many + * of those pages will need to be used again. So now we spill only 1/8th + * of the dirty pages. Testing revealed this to be a good tradeoff, + * better than 1/2, 1/4, or 1/10. + */ + if (need < MDB_IDL_UM_MAX / 8) + need = MDB_IDL_UM_MAX / 8; + + /* Save the page IDs of all the pages we're flushing */ + /* flush from the tail forward, this saves a lot of shifting later on. */ + for (i=dl[0].mid; i && need; i--) { + MDB_ID pn = dl[i].mid << 1; + dp = dl[i].mptr; + if (dp->mp_flags & (P_LOOSE|P_KEEP)) + continue; + /* Can't spill twice, make sure it's not already in a parent's + * spill list. + */ + if (txn->mt_parent) { + MDB_txn *tx2; + for (tx2 = txn->mt_parent; tx2; tx2 = tx2->mt_parent) { + if (tx2->mt_spill_pgs) { + j = mdb_midl_search(tx2->mt_spill_pgs, pn); + if (j <= tx2->mt_spill_pgs[0] && tx2->mt_spill_pgs[j] == pn) { + dp->mp_flags |= P_KEEP; + break; + } + } + } + if (tx2) + continue; + } + if ((rc = mdb_midl_append(&txn->mt_spill_pgs, pn))) + goto done; + need--; + } + mdb_midl_sort(txn->mt_spill_pgs); + + /* Flush the spilled part of dirty list */ + if ((rc = mdb_page_flush(txn, i)) != MDB_SUCCESS) + goto done; + + /* Reset any dirty pages we kept that page_flush didn't see */ + rc = mdb_pages_xkeep(m0, P_DIRTY|P_KEEP, i); + +done: + txn->mt_flags |= rc ? MDB_TXN_ERROR : MDB_TXN_SPILLS; + return rc; +} + +/** Find oldest txnid still referenced. Expects txn->mt_txnid > 0. */ +static txnid_t +mdb_find_oldest(MDB_txn *txn) +{ + int i; + txnid_t mr, oldest = txn->mt_txnid - 1; + if (txn->mt_env->me_txns) { + MDB_reader *r = txn->mt_env->me_txns->mti_readers; + for (i = txn->mt_env->me_txns->mti_numreaders; --i >= 0; ) { + if (r[i].mr_pid) { + mr = r[i].mr_txnid; + if (oldest > mr) + oldest = mr; + } + } + } + return oldest; +} + +/** Add a page to the txn's dirty list */ +static void +mdb_page_dirty(MDB_txn *txn, MDB_page *mp) +{ + MDB_ID2 mid; + int rc, (*insert)(MDB_ID2L, MDB_ID2 *); + + if (txn->mt_flags & MDB_TXN_WRITEMAP) { + insert = mdb_mid2l_append; + } else { + insert = mdb_mid2l_insert; + } + mid.mid = mp->mp_pgno; + mid.mptr = mp; + rc = insert(txn->mt_u.dirty_list, &mid); + mdb_tassert(txn, rc == 0); + txn->mt_dirty_room--; +} + +/** Allocate page numbers and memory for writing. Maintain me_pglast, + * me_pghead and mt_next_pgno. Set #MDB_TXN_ERROR on failure. + * + * If there are free pages available from older transactions, they + * are re-used first. Otherwise allocate a new page at mt_next_pgno. + * Do not modify the freedB, just merge freeDB records into me_pghead[] + * and move me_pglast to say which records were consumed. Only this + * function can create me_pghead and move me_pglast/mt_next_pgno. + * @param[in] mc cursor A cursor handle identifying the transaction and + * database for which we are allocating. + * @param[in] num the number of pages to allocate. + * @param[out] mp Address of the allocated page(s). Requests for multiple pages + * will always be satisfied by a single contiguous chunk of memory. + * @return 0 on success, non-zero on failure. + */ +static int +mdb_page_alloc(MDB_cursor *mc, int num, MDB_page **mp) +{ +#ifdef MDB_PARANOID /* Seems like we can ignore this now */ + /* Get at most more freeDB records once me_pghead + * has enough pages. If not enough, use new pages from the map. + * If and mc is updating the freeDB, only get new + * records if me_pghead is empty. Then the freelist cannot play + * catch-up with itself by growing while trying to save it. + */ + enum { Paranoid = 1, Max_retries = 500 }; +#else + enum { Paranoid = 0, Max_retries = INT_MAX /*infinite*/ }; +#endif + int rc, retry = num * 60; + MDB_txn *txn = mc->mc_txn; + MDB_env *env = txn->mt_env; + pgno_t pgno, *mop = env->me_pghead; + unsigned i, j, mop_len = mop ? mop[0] : 0, n2 = num-1; + MDB_page *np; + txnid_t oldest = 0, last; + MDB_cursor_op op; + MDB_cursor m2; + int found_old = 0; + + /* If there are any loose pages, just use them */ + if (num == 1 && txn->mt_loose_pgs) { + np = txn->mt_loose_pgs; + txn->mt_loose_pgs = NEXT_LOOSE_PAGE(np); + txn->mt_loose_count--; + DPRINTF(("db %d use loose page %"Z"u", DDBI(mc), + np->mp_pgno)); + *mp = np; + return MDB_SUCCESS; + } + + *mp = NULL; + + /* If our dirty list is already full, we can't do anything */ + if (txn->mt_dirty_room == 0) { + rc = MDB_TXN_FULL; + goto fail; + } + + for (op = MDB_FIRST;; op = MDB_NEXT) { + MDB_val key, data; + MDB_node *leaf; + pgno_t *idl; + + /* Seek a big enough contiguous page range. Prefer + * pages at the tail, just truncating the list. + */ + if (mop_len > n2) { + i = mop_len; + do { + pgno = mop[i]; + if (mop[i-n2] == pgno+n2) + goto search_done; + } while (--i > n2); + if (--retry < 0) + break; + } + + if (op == MDB_FIRST) { /* 1st iteration */ + /* Prepare to fetch more and coalesce */ + last = env->me_pglast; + oldest = env->me_pgoldest; + mdb_cursor_init(&m2, txn, FREE_DBI, NULL); + if (last) { + op = MDB_SET_RANGE; + key.mv_data = &last; /* will look up last+1 */ + key.mv_size = sizeof(last); + } + if (Paranoid && mc->mc_dbi == FREE_DBI) + retry = -1; + } + if (Paranoid && retry < 0 && mop_len) + break; + + last++; + /* Do not fetch more if the record will be too recent */ + if (oldest <= last) { + if (!found_old) { + oldest = mdb_find_oldest(txn); + env->me_pgoldest = oldest; + found_old = 1; + } + if (oldest <= last) + break; + } + rc = mdb_cursor_get(&m2, &key, NULL, op); + if (rc) { + if (rc == MDB_NOTFOUND) + break; + goto fail; + } + last = *(txnid_t*)key.mv_data; + if (oldest <= last) { + if (!found_old) { + oldest = mdb_find_oldest(txn); + env->me_pgoldest = oldest; + found_old = 1; + } + if (oldest <= last) + break; + } + np = m2.mc_pg[m2.mc_top]; + leaf = NODEPTR(np, m2.mc_ki[m2.mc_top]); + if ((rc = mdb_node_read(&m2, leaf, &data)) != MDB_SUCCESS) + goto fail; + + idl = (MDB_ID *) data.mv_data; + i = idl[0]; + if (!mop) { + if (!(env->me_pghead = mop = mdb_midl_alloc(i))) { + rc = ENOMEM; + goto fail; + } + } else { + if ((rc = mdb_midl_need(&env->me_pghead, i)) != 0) + goto fail; + mop = env->me_pghead; + } + env->me_pglast = last; +#if (MDB_DEBUG) > 1 + DPRINTF(("IDL read txn %"Z"u root %"Z"u num %u", + last, txn->mt_dbs[FREE_DBI].md_root, i)); + for (j = i; j; j--) + DPRINTF(("IDL %"Z"u", idl[j])); +#endif + /* Merge in descending sorted order */ + mdb_midl_xmerge(mop, idl); + mop_len = mop[0]; + } + + /* Use new pages from the map when nothing suitable in the freeDB */ + i = 0; + pgno = txn->mt_next_pgno; + if (pgno + num >= env->me_maxpg) { + DPUTS("DB size maxed out"); + rc = MDB_MAP_FULL; + goto fail; + } + +search_done: + if (env->me_flags & MDB_WRITEMAP) { + np = (MDB_page *)(env->me_map + env->me_psize * pgno); + } else { + if (!(np = mdb_page_malloc(txn, num))) { + rc = ENOMEM; + goto fail; + } + } + if (i) { + mop[0] = mop_len -= num; + /* Move any stragglers down */ + for (j = i-num; j < mop_len; ) + mop[++j] = mop[++i]; + } else { + txn->mt_next_pgno = pgno + num; + } + np->mp_pgno = pgno; + mdb_page_dirty(txn, np); + *mp = np; + + return MDB_SUCCESS; + +fail: + txn->mt_flags |= MDB_TXN_ERROR; + return rc; +} + +/** Copy the used portions of a non-overflow page. + * @param[in] dst page to copy into + * @param[in] src page to copy from + * @param[in] psize size of a page + */ +static void +mdb_page_copy(MDB_page *dst, MDB_page *src, unsigned int psize) +{ + enum { Align = sizeof(pgno_t) }; + indx_t upper = src->mp_upper, lower = src->mp_lower, unused = upper-lower; + + /* If page isn't full, just copy the used portion. Adjust + * alignment so memcpy may copy words instead of bytes. + */ + if ((unused &= -Align) && !IS_LEAF2(src)) { + upper = (upper + PAGEBASE) & -Align; + memcpy(dst, src, (lower + PAGEBASE + (Align-1)) & -Align); + memcpy((pgno_t *)((char *)dst+upper), (pgno_t *)((char *)src+upper), + psize - upper); + } else { + memcpy(dst, src, psize - unused); + } +} + +/** Pull a page off the txn's spill list, if present. + * If a page being referenced was spilled to disk in this txn, bring + * it back and make it dirty/writable again. + * @param[in] txn the transaction handle. + * @param[in] mp the page being referenced. It must not be dirty. + * @param[out] ret the writable page, if any. ret is unchanged if + * mp wasn't spilled. + */ +static int +mdb_page_unspill(MDB_txn *txn, MDB_page *mp, MDB_page **ret) +{ + MDB_env *env = txn->mt_env; + const MDB_txn *tx2; + unsigned x; + pgno_t pgno = mp->mp_pgno, pn = pgno << 1; + + for (tx2 = txn; tx2; tx2=tx2->mt_parent) { + if (!tx2->mt_spill_pgs) + continue; + x = mdb_midl_search(tx2->mt_spill_pgs, pn); + if (x <= tx2->mt_spill_pgs[0] && tx2->mt_spill_pgs[x] == pn) { + MDB_page *np; + int num; + if (txn->mt_dirty_room == 0) + return MDB_TXN_FULL; + if (IS_OVERFLOW(mp)) + num = mp->mp_pages; + else + num = 1; + if (env->me_flags & MDB_WRITEMAP) { + np = mp; + } else { + np = mdb_page_malloc(txn, num); + if (!np) + return ENOMEM; + if (num > 1) + memcpy(np, mp, num * env->me_psize); + else + mdb_page_copy(np, mp, env->me_psize); + } + if (tx2 == txn) { + /* If in current txn, this page is no longer spilled. + * If it happens to be the last page, truncate the spill list. + * Otherwise mark it as deleted by setting the LSB. + */ + if (x == txn->mt_spill_pgs[0]) + txn->mt_spill_pgs[0]--; + else + txn->mt_spill_pgs[x] |= 1; + } /* otherwise, if belonging to a parent txn, the + * page remains spilled until child commits + */ + + mdb_page_dirty(txn, np); + np->mp_flags |= P_DIRTY; + *ret = np; + break; + } + } + return MDB_SUCCESS; +} + +/** Touch a page: make it dirty and re-insert into tree with updated pgno. + * Set #MDB_TXN_ERROR on failure. + * @param[in] mc cursor pointing to the page to be touched + * @return 0 on success, non-zero on failure. + */ +static int +mdb_page_touch(MDB_cursor *mc) +{ + MDB_page *mp = mc->mc_pg[mc->mc_top], *np; + MDB_txn *txn = mc->mc_txn; + MDB_cursor *m2, *m3; + pgno_t pgno; + int rc; + + if (!F_ISSET(mp->mp_flags, P_DIRTY)) { + if (txn->mt_flags & MDB_TXN_SPILLS) { + np = NULL; + rc = mdb_page_unspill(txn, mp, &np); + if (rc) + goto fail; + if (np) + goto done; + } + if ((rc = mdb_midl_need(&txn->mt_free_pgs, 1)) || + (rc = mdb_page_alloc(mc, 1, &np))) + goto fail; + pgno = np->mp_pgno; + DPRINTF(("touched db %d page %"Z"u -> %"Z"u", DDBI(mc), + mp->mp_pgno, pgno)); + mdb_cassert(mc, mp->mp_pgno != pgno); + mdb_midl_xappend(txn->mt_free_pgs, mp->mp_pgno); + /* Update the parent page, if any, to point to the new page */ + if (mc->mc_top) { + MDB_page *parent = mc->mc_pg[mc->mc_top-1]; + MDB_node *node = NODEPTR(parent, mc->mc_ki[mc->mc_top-1]); + SETPGNO(node, pgno); + } else { + mc->mc_db->md_root = pgno; + } + } else if (txn->mt_parent && !IS_SUBP(mp)) { + MDB_ID2 mid, *dl = txn->mt_u.dirty_list; + pgno = mp->mp_pgno; + /* If txn has a parent, make sure the page is in our + * dirty list. + */ + if (dl[0].mid) { + unsigned x = mdb_mid2l_search(dl, pgno); + if (x <= dl[0].mid && dl[x].mid == pgno) { + if (mp != dl[x].mptr) { /* bad cursor? */ + mc->mc_flags &= ~(C_INITIALIZED|C_EOF); + txn->mt_flags |= MDB_TXN_ERROR; + return MDB_CORRUPTED; + } + return 0; + } + } + mdb_cassert(mc, dl[0].mid < MDB_IDL_UM_MAX); + /* No - copy it */ + np = mdb_page_malloc(txn, 1); + if (!np) + return ENOMEM; + mid.mid = pgno; + mid.mptr = np; + rc = mdb_mid2l_insert(dl, &mid); + mdb_cassert(mc, rc == 0); + } else { + return 0; + } + + mdb_page_copy(np, mp, txn->mt_env->me_psize); + np->mp_pgno = pgno; + np->mp_flags |= P_DIRTY; + +done: + /* Adjust cursors pointing to mp */ + mc->mc_pg[mc->mc_top] = np; + m2 = txn->mt_cursors[mc->mc_dbi]; + if (mc->mc_flags & C_SUB) { + for (; m2; m2=m2->mc_next) { + m3 = &m2->mc_xcursor->mx_cursor; + if (m3->mc_snum < mc->mc_snum) continue; + if (m3->mc_pg[mc->mc_top] == mp) + m3->mc_pg[mc->mc_top] = np; + } + } else { + for (; m2; m2=m2->mc_next) { + if (m2->mc_snum < mc->mc_snum) continue; + if (m2 == mc) continue; + if (m2->mc_pg[mc->mc_top] == mp) { + m2->mc_pg[mc->mc_top] = np; + if (IS_LEAF(np)) + XCURSOR_REFRESH(m2, mc->mc_top, np); + } + } + } + return 0; + +fail: + txn->mt_flags |= MDB_TXN_ERROR; + return rc; +} + +int +mdb_env_sync(MDB_env *env, int force) +{ + int rc = 0; + if (env->me_flags & MDB_RDONLY) + return EACCES; + if (force || !F_ISSET(env->me_flags, MDB_NOSYNC)) { + if (env->me_flags & MDB_WRITEMAP) { + int flags = ((env->me_flags & MDB_MAPASYNC) && !force) + ? MS_ASYNC : MS_SYNC; + if (MDB_MSYNC(env->me_map, env->me_mapsize, flags)) + rc = ErrCode(); +#ifdef _WIN32 + else if (flags == MS_SYNC && MDB_FDATASYNC(env->me_fd)) + rc = ErrCode(); +#endif + } else { +#ifdef BROKEN_FDATASYNC + if (env->me_flags & MDB_FSYNCONLY) { + if (fsync(env->me_fd)) + rc = ErrCode(); + } else +#endif +#if defined(URBIT_RUNTIME_OS_DARWIN) + if (fcntl(env->me_fd, F_FULLFSYNC, 0)) +#else + if (MDB_FDATASYNC(env->me_fd)) +#endif + rc = ErrCode(); + } + } + return rc; +} + +/** Back up parent txn's cursors, then grab the originals for tracking */ +static int +mdb_cursor_shadow(MDB_txn *src, MDB_txn *dst) +{ + MDB_cursor *mc, *bk; + MDB_xcursor *mx; + size_t size; + int i; + + for (i = src->mt_numdbs; --i >= 0; ) { + if ((mc = src->mt_cursors[i]) != NULL) { + size = sizeof(MDB_cursor); + if (mc->mc_xcursor) + size += sizeof(MDB_xcursor); + for (; mc; mc = bk->mc_next) { + bk = malloc(size); + if (!bk) + return ENOMEM; + *bk = *mc; + mc->mc_backup = bk; + mc->mc_db = &dst->mt_dbs[i]; + /* Kill pointers into src to reduce abuse: The + * user may not use mc until dst ends. But we need a valid + * txn pointer here for cursor fixups to keep working. + */ + mc->mc_txn = dst; + mc->mc_dbflag = &dst->mt_dbflags[i]; + if ((mx = mc->mc_xcursor) != NULL) { + *(MDB_xcursor *)(bk+1) = *mx; + mx->mx_cursor.mc_txn = dst; + } + mc->mc_next = dst->mt_cursors[i]; + dst->mt_cursors[i] = mc; + } + } + } + return MDB_SUCCESS; +} + +/** Close this write txn's cursors, give parent txn's cursors back to parent. + * @param[in] txn the transaction handle. + * @param[in] merge true to keep changes to parent cursors, false to revert. + * @return 0 on success, non-zero on failure. + */ +static void +mdb_cursors_close(MDB_txn *txn, unsigned merge) +{ + MDB_cursor **cursors = txn->mt_cursors, *mc, *next, *bk; + MDB_xcursor *mx; + int i; + + for (i = txn->mt_numdbs; --i >= 0; ) { + for (mc = cursors[i]; mc; mc = next) { + next = mc->mc_next; + if ((bk = mc->mc_backup) != NULL) { + if (merge) { + /* Commit changes to parent txn */ + mc->mc_next = bk->mc_next; + mc->mc_backup = bk->mc_backup; + mc->mc_txn = bk->mc_txn; + mc->mc_db = bk->mc_db; + mc->mc_dbflag = bk->mc_dbflag; + if ((mx = mc->mc_xcursor) != NULL) + mx->mx_cursor.mc_txn = bk->mc_txn; + } else { + /* Abort nested txn */ + *mc = *bk; + if ((mx = mc->mc_xcursor) != NULL) + *mx = *(MDB_xcursor *)(bk+1); + } + mc = bk; + } + /* Only malloced cursors are permanently tracked. */ + free(mc); + } + cursors[i] = NULL; + } +} + +#if !(MDB_PIDLOCK) /* Currently the same as defined(_WIN32) */ +enum Pidlock_op { + Pidset, Pidcheck +}; +#else +enum Pidlock_op { + Pidset = F_SETLK, Pidcheck = F_GETLK +}; +#endif + +/** Set or check a pid lock. Set returns 0 on success. + * Check returns 0 if the process is certainly dead, nonzero if it may + * be alive (the lock exists or an error happened so we do not know). + * + * On Windows Pidset is a no-op, we merely check for the existence + * of the process with the given pid. On POSIX we use a single byte + * lock on the lockfile, set at an offset equal to the pid. + */ +static int +mdb_reader_pid(MDB_env *env, enum Pidlock_op op, MDB_PID_T pid) +{ +#if !(MDB_PIDLOCK) /* Currently the same as defined(_WIN32) */ + int ret = 0; + HANDLE h; + if (op == Pidcheck) { + h = OpenProcess(env->me_pidquery, FALSE, pid); + /* No documented "no such process" code, but other program use this: */ + if (!h) + return ErrCode() != ERROR_INVALID_PARAMETER; + /* A process exists until all handles to it close. Has it exited? */ + ret = WaitForSingleObject(h, 0) != 0; + CloseHandle(h); + } + return ret; +#else + for (;;) { + int rc; + struct flock lock_info; + memset(&lock_info, 0, sizeof(lock_info)); + lock_info.l_type = F_WRLCK; + lock_info.l_whence = SEEK_SET; + lock_info.l_start = pid; + lock_info.l_len = 1; + if ((rc = fcntl(env->me_lfd, op, &lock_info)) == 0) { + if (op == F_GETLK && lock_info.l_type != F_UNLCK) + rc = -1; + } else if ((rc = ErrCode()) == EINTR) { + continue; + } + return rc; + } +#endif +} + +/** Common code for #mdb_txn_begin() and #mdb_txn_renew(). + * @param[in] txn the transaction handle to initialize + * @return 0 on success, non-zero on failure. + */ +static int +mdb_txn_renew0(MDB_txn *txn) +{ + MDB_env *env = txn->mt_env; + MDB_txninfo *ti = env->me_txns; + MDB_meta *meta; + unsigned int i, nr, flags = txn->mt_flags; + uint16_t x; + int rc, new_notls = 0; + + if ((flags &= MDB_TXN_RDONLY) != 0) { + if (!ti) { + meta = mdb_env_pick_meta(env); + txn->mt_txnid = meta->mm_txnid; + txn->mt_u.reader = NULL; + } else { + MDB_reader *r = (env->me_flags & MDB_NOTLS) ? txn->mt_u.reader : + pthread_getspecific(env->me_txkey); + if (r) { + if (r->mr_pid != env->me_pid || r->mr_txnid != (txnid_t)-1) + return MDB_BAD_RSLOT; + } else { + MDB_PID_T pid = env->me_pid; + MDB_THR_T tid = pthread_self(); + mdb_mutexref_t rmutex = env->me_rmutex; + + if (!env->me_live_reader) { + rc = mdb_reader_pid(env, Pidset, pid); + if (rc) + return rc; + env->me_live_reader = 1; + } + + if (LOCK_MUTEX(rc, env, rmutex)) + return rc; + nr = ti->mti_numreaders; + for (i=0; imti_readers[i].mr_pid == 0) + break; + if (i == env->me_maxreaders) { + UNLOCK_MUTEX(rmutex); + return MDB_READERS_FULL; + } + r = &ti->mti_readers[i]; + /* Claim the reader slot, carefully since other code + * uses the reader table un-mutexed: First reset the + * slot, next publish it in mti_numreaders. After + * that, it is safe for mdb_env_close() to touch it. + * When it will be closed, we can finally claim it. + */ + r->mr_pid = 0; + r->mr_txnid = (txnid_t)-1; + r->mr_tid = tid; + if (i == nr) + ti->mti_numreaders = ++nr; + env->me_close_readers = nr; + r->mr_pid = pid; + UNLOCK_MUTEX(rmutex); + + new_notls = (env->me_flags & MDB_NOTLS); + if (!new_notls && (rc=pthread_setspecific(env->me_txkey, r))) { + r->mr_pid = 0; + return rc; + } + } + do /* LY: Retry on a race, ITS#7970. */ + r->mr_txnid = ti->mti_txnid; + while(r->mr_txnid != ti->mti_txnid); + txn->mt_txnid = r->mr_txnid; + txn->mt_u.reader = r; + meta = env->me_metas[txn->mt_txnid & 1]; + } + + } else { + /* Not yet touching txn == env->me_txn0, it may be active */ + if (ti) { + if (LOCK_MUTEX(rc, env, env->me_wmutex)) + return rc; + txn->mt_txnid = ti->mti_txnid; + meta = env->me_metas[txn->mt_txnid & 1]; + } else { + meta = mdb_env_pick_meta(env); + txn->mt_txnid = meta->mm_txnid; + } + txn->mt_txnid++; +#if MDB_DEBUG + if (txn->mt_txnid == mdb_debug_start) + mdb_debug = 1; +#endif + txn->mt_child = NULL; + txn->mt_loose_pgs = NULL; + txn->mt_loose_count = 0; + txn->mt_dirty_room = MDB_IDL_UM_MAX; + txn->mt_u.dirty_list = env->me_dirty_list; + txn->mt_u.dirty_list[0].mid = 0; + txn->mt_free_pgs = env->me_free_pgs; + txn->mt_free_pgs[0] = 0; + txn->mt_spill_pgs = NULL; + env->me_txn = txn; + memcpy(txn->mt_dbiseqs, env->me_dbiseqs, env->me_maxdbs * sizeof(unsigned int)); + } + + /* Copy the DB info and flags */ + memcpy(txn->mt_dbs, meta->mm_dbs, CORE_DBS * sizeof(MDB_db)); + + /* Moved to here to avoid a data race in read TXNs */ + txn->mt_next_pgno = meta->mm_last_pg+1; + + txn->mt_flags = flags; + + /* Setup db info */ + txn->mt_numdbs = env->me_numdbs; + for (i=CORE_DBS; imt_numdbs; i++) { + x = env->me_dbflags[i]; + txn->mt_dbs[i].md_flags = x & PERSISTENT_FLAGS; + txn->mt_dbflags[i] = (x & MDB_VALID) ? DB_VALID|DB_USRVALID|DB_STALE : 0; + } + txn->mt_dbflags[MAIN_DBI] = DB_VALID|DB_USRVALID; + txn->mt_dbflags[FREE_DBI] = DB_VALID; + + if (env->me_flags & MDB_FATAL_ERROR) { + DPUTS("environment had fatal error, must shutdown!"); + rc = MDB_PANIC; + } else if (env->me_maxpg < txn->mt_next_pgno) { + rc = MDB_MAP_RESIZED; + } else { + return MDB_SUCCESS; + } + mdb_txn_end(txn, new_notls /*0 or MDB_END_SLOT*/ | MDB_END_FAIL_BEGIN); + return rc; +} + +int +mdb_txn_renew(MDB_txn *txn) +{ + int rc; + + if (!txn || !F_ISSET(txn->mt_flags, MDB_TXN_RDONLY|MDB_TXN_FINISHED)) + return EINVAL; + + rc = mdb_txn_renew0(txn); + if (rc == MDB_SUCCESS) { + DPRINTF(("renew txn %"Z"u%c %p on mdbenv %p, root page %"Z"u", + txn->mt_txnid, (txn->mt_flags & MDB_TXN_RDONLY) ? 'r' : 'w', + (void *)txn, (void *)txn->mt_env, txn->mt_dbs[MAIN_DBI].md_root)); + } + return rc; +} + +int +mdb_txn_begin(MDB_env *env, MDB_txn *parent, unsigned int flags, MDB_txn **ret) +{ + MDB_txn *txn; + MDB_ntxn *ntxn; + int rc, size, tsize; + + flags &= MDB_TXN_BEGIN_FLAGS; + flags |= env->me_flags & MDB_WRITEMAP; + + if (env->me_flags & MDB_RDONLY & ~flags) /* write txn in RDONLY env */ + return EACCES; + + if (parent) { + /* Nested transactions: Max 1 child, write txns only, no writemap */ + flags |= parent->mt_flags; + if (flags & (MDB_RDONLY|MDB_WRITEMAP|MDB_TXN_BLOCKED)) { + return (parent->mt_flags & MDB_TXN_RDONLY) ? EINVAL : MDB_BAD_TXN; + } + /* Child txns save MDB_pgstate and use own copy of cursors */ + size = env->me_maxdbs * (sizeof(MDB_db)+sizeof(MDB_cursor *)+1); + size += tsize = sizeof(MDB_ntxn); + } else if (flags & MDB_RDONLY) { + size = env->me_maxdbs * (sizeof(MDB_db)+1); + size += tsize = sizeof(MDB_txn); + } else { + /* Reuse preallocated write txn. However, do not touch it until + * mdb_txn_renew0() succeeds, since it currently may be active. + */ + txn = env->me_txn0; + goto renew; + } + if ((txn = calloc(1, size)) == NULL) { + DPRINTF(("calloc: %s", strerror(errno))); + return ENOMEM; + } + txn->mt_dbxs = env->me_dbxs; /* static */ + txn->mt_dbs = (MDB_db *) ((char *)txn + tsize); + txn->mt_dbflags = (unsigned char *)txn + size - env->me_maxdbs; + txn->mt_flags = flags; + txn->mt_env = env; + + if (parent) { + unsigned int i; + txn->mt_cursors = (MDB_cursor **)(txn->mt_dbs + env->me_maxdbs); + txn->mt_dbiseqs = parent->mt_dbiseqs; + txn->mt_u.dirty_list = malloc(sizeof(MDB_ID2)*MDB_IDL_UM_SIZE); + if (!txn->mt_u.dirty_list || + !(txn->mt_free_pgs = mdb_midl_alloc(MDB_IDL_UM_MAX))) + { + free(txn->mt_u.dirty_list); + free(txn); + return ENOMEM; + } + txn->mt_txnid = parent->mt_txnid; + txn->mt_dirty_room = parent->mt_dirty_room; + txn->mt_u.dirty_list[0].mid = 0; + txn->mt_spill_pgs = NULL; + txn->mt_next_pgno = parent->mt_next_pgno; + parent->mt_flags |= MDB_TXN_HAS_CHILD; + parent->mt_child = txn; + txn->mt_parent = parent; + txn->mt_numdbs = parent->mt_numdbs; + memcpy(txn->mt_dbs, parent->mt_dbs, txn->mt_numdbs * sizeof(MDB_db)); + /* Copy parent's mt_dbflags, but clear DB_NEW */ + for (i=0; imt_numdbs; i++) + txn->mt_dbflags[i] = parent->mt_dbflags[i] & ~DB_NEW; + rc = 0; + ntxn = (MDB_ntxn *)txn; + ntxn->mnt_pgstate = env->me_pgstate; /* save parent me_pghead & co */ + if (env->me_pghead) { + size = MDB_IDL_SIZEOF(env->me_pghead); + env->me_pghead = mdb_midl_alloc(env->me_pghead[0]); + if (env->me_pghead) + memcpy(env->me_pghead, ntxn->mnt_pgstate.mf_pghead, size); + else + rc = ENOMEM; + } + if (!rc) + rc = mdb_cursor_shadow(parent, txn); + if (rc) + mdb_txn_end(txn, MDB_END_FAIL_BEGINCHILD); + } else { /* MDB_RDONLY */ + txn->mt_dbiseqs = env->me_dbiseqs; +renew: + rc = mdb_txn_renew0(txn); + } + if (rc) { + if (txn != env->me_txn0) + free(txn); + } else { + txn->mt_flags |= flags; /* could not change txn=me_txn0 earlier */ + *ret = txn; + DPRINTF(("begin txn %"Z"u%c %p on mdbenv %p, root page %"Z"u", + txn->mt_txnid, (flags & MDB_RDONLY) ? 'r' : 'w', + (void *) txn, (void *) env, txn->mt_dbs[MAIN_DBI].md_root)); + } + + return rc; +} + +MDB_env * +mdb_txn_env(MDB_txn *txn) +{ + if(!txn) return NULL; + return txn->mt_env; +} + +size_t +mdb_txn_id(MDB_txn *txn) +{ + if(!txn) return 0; + return txn->mt_txnid; +} + +/** Export or close DBI handles opened in this txn. */ +static void +mdb_dbis_update(MDB_txn *txn, int keep) +{ + int i; + MDB_dbi n = txn->mt_numdbs; + MDB_env *env = txn->mt_env; + unsigned char *tdbflags = txn->mt_dbflags; + + for (i = n; --i >= CORE_DBS;) { + if (tdbflags[i] & DB_NEW) { + if (keep) { + env->me_dbflags[i] = txn->mt_dbs[i].md_flags | MDB_VALID; + } else { + char *ptr = env->me_dbxs[i].md_name.mv_data; + if (ptr) { + env->me_dbxs[i].md_name.mv_data = NULL; + env->me_dbxs[i].md_name.mv_size = 0; + env->me_dbflags[i] = 0; + env->me_dbiseqs[i]++; + free(ptr); + } + } + } + } + if (keep && env->me_numdbs < n) + env->me_numdbs = n; +} + +/** End a transaction, except successful commit of a nested transaction. + * May be called twice for readonly txns: First reset it, then abort. + * @param[in] txn the transaction handle to end + * @param[in] mode why and how to end the transaction + */ +static void +mdb_txn_end(MDB_txn *txn, unsigned mode) +{ + MDB_env *env = txn->mt_env; +#if MDB_DEBUG + static const char *const names[] = MDB_END_NAMES; +#endif + + /* Export or close DBI handles opened in this txn */ + mdb_dbis_update(txn, mode & MDB_END_UPDATE); + + DPRINTF(("%s txn %"Z"u%c %p on mdbenv %p, root page %"Z"u", + names[mode & MDB_END_OPMASK], + txn->mt_txnid, (txn->mt_flags & MDB_TXN_RDONLY) ? 'r' : 'w', + (void *) txn, (void *)env, txn->mt_dbs[MAIN_DBI].md_root)); + + if (F_ISSET(txn->mt_flags, MDB_TXN_RDONLY)) { + if (txn->mt_u.reader) { + txn->mt_u.reader->mr_txnid = (txnid_t)-1; + if (!(env->me_flags & MDB_NOTLS)) { + txn->mt_u.reader = NULL; /* txn does not own reader */ + } else if (mode & MDB_END_SLOT) { + txn->mt_u.reader->mr_pid = 0; + txn->mt_u.reader = NULL; + } /* else txn owns the slot until it does MDB_END_SLOT */ + } + txn->mt_numdbs = 0; /* prevent further DBI activity */ + txn->mt_flags |= MDB_TXN_FINISHED; + + } else if (!F_ISSET(txn->mt_flags, MDB_TXN_FINISHED)) { + pgno_t *pghead = env->me_pghead; + + if (!(mode & MDB_END_UPDATE)) /* !(already closed cursors) */ + mdb_cursors_close(txn, 0); + if (!(env->me_flags & MDB_WRITEMAP)) { + mdb_dlist_free(txn); + } + + txn->mt_numdbs = 0; + txn->mt_flags = MDB_TXN_FINISHED; + + if (!txn->mt_parent) { + mdb_midl_shrink(&txn->mt_free_pgs); + env->me_free_pgs = txn->mt_free_pgs; + /* me_pgstate: */ + env->me_pghead = NULL; + env->me_pglast = 0; + + env->me_txn = NULL; + mode = 0; /* txn == env->me_txn0, do not free() it */ + + /* The writer mutex was locked in mdb_txn_begin. */ + if (env->me_txns) + UNLOCK_MUTEX(env->me_wmutex); + } else { + txn->mt_parent->mt_child = NULL; + txn->mt_parent->mt_flags &= ~MDB_TXN_HAS_CHILD; + env->me_pgstate = ((MDB_ntxn *)txn)->mnt_pgstate; + mdb_midl_free(txn->mt_free_pgs); + free(txn->mt_u.dirty_list); + } + mdb_midl_free(txn->mt_spill_pgs); + + mdb_midl_free(pghead); + } + + if (mode & MDB_END_FREE) + free(txn); +} + +void +mdb_txn_reset(MDB_txn *txn) +{ + if (txn == NULL) + return; + + /* This call is only valid for read-only txns */ + if (!(txn->mt_flags & MDB_TXN_RDONLY)) + return; + + mdb_txn_end(txn, MDB_END_RESET); +} + +void +mdb_txn_abort(MDB_txn *txn) +{ + if (txn == NULL) + return; + + if (txn->mt_child) + mdb_txn_abort(txn->mt_child); + + mdb_txn_end(txn, MDB_END_ABORT|MDB_END_SLOT|MDB_END_FREE); +} + +/** Save the freelist as of this transaction to the freeDB. + * This changes the freelist. Keep trying until it stabilizes. + */ +static int +mdb_freelist_save(MDB_txn *txn) +{ + /* env->me_pghead[] can grow and shrink during this call. + * env->me_pglast and txn->mt_free_pgs[] can only grow. + * Page numbers cannot disappear from txn->mt_free_pgs[]. + */ + MDB_cursor mc; + MDB_env *env = txn->mt_env; + int rc, maxfree_1pg = env->me_maxfree_1pg, more = 1; + txnid_t pglast = 0, head_id = 0; + pgno_t freecnt = 0, *free_pgs, *mop; + ssize_t head_room = 0, total_room = 0, mop_len, clean_limit; + + mdb_cursor_init(&mc, txn, FREE_DBI, NULL); + + if (env->me_pghead) { + /* Make sure first page of freeDB is touched and on freelist */ + rc = mdb_page_search(&mc, NULL, MDB_PS_FIRST|MDB_PS_MODIFY); + if (rc && rc != MDB_NOTFOUND) + return rc; + } + + if (!env->me_pghead && txn->mt_loose_pgs) { + /* Put loose page numbers in mt_free_pgs, since + * we may be unable to return them to me_pghead. + */ + MDB_page *mp = txn->mt_loose_pgs; + MDB_ID2 *dl = txn->mt_u.dirty_list; + unsigned x; + if ((rc = mdb_midl_need(&txn->mt_free_pgs, txn->mt_loose_count)) != 0) + return rc; + for (; mp; mp = NEXT_LOOSE_PAGE(mp)) { + mdb_midl_xappend(txn->mt_free_pgs, mp->mp_pgno); + /* must also remove from dirty list */ + if (txn->mt_flags & MDB_TXN_WRITEMAP) { + for (x=1; x<=dl[0].mid; x++) + if (dl[x].mid == mp->mp_pgno) + break; + mdb_tassert(txn, x <= dl[0].mid); + } else { + x = mdb_mid2l_search(dl, mp->mp_pgno); + mdb_tassert(txn, dl[x].mid == mp->mp_pgno); + mdb_dpage_free(env, mp); + } + dl[x].mptr = NULL; + } + { + /* squash freed slots out of the dirty list */ + unsigned y; + for (y=1; dl[y].mptr && y <= dl[0].mid; y++); + if (y <= dl[0].mid) { + for(x=y, y++;;) { + while (!dl[y].mptr && y <= dl[0].mid) y++; + if (y > dl[0].mid) break; + dl[x++] = dl[y++]; + } + dl[0].mid = x-1; + } else { + /* all slots freed */ + dl[0].mid = 0; + } + } + txn->mt_loose_pgs = NULL; + txn->mt_loose_count = 0; + } + + /* MDB_RESERVE cancels meminit in ovpage malloc (when no WRITEMAP) */ + clean_limit = (env->me_flags & (MDB_NOMEMINIT|MDB_WRITEMAP)) + ? SSIZE_MAX : maxfree_1pg; + + for (;;) { + /* Come back here after each Put() in case freelist changed */ + MDB_val key, data; + pgno_t *pgs; + ssize_t j; + + /* If using records from freeDB which we have not yet + * deleted, delete them and any we reserved for me_pghead. + */ + while (pglast < env->me_pglast) { + rc = mdb_cursor_first(&mc, &key, NULL); + if (rc) + return rc; + pglast = head_id = *(txnid_t *)key.mv_data; + total_room = head_room = 0; + mdb_tassert(txn, pglast <= env->me_pglast); + rc = mdb_cursor_del(&mc, 0); + if (rc) + return rc; + } + + /* Save the IDL of pages freed by this txn, to a single record */ + if (freecnt < txn->mt_free_pgs[0]) { + if (!freecnt) { + /* Make sure last page of freeDB is touched and on freelist */ + rc = mdb_page_search(&mc, NULL, MDB_PS_LAST|MDB_PS_MODIFY); + if (rc && rc != MDB_NOTFOUND) + return rc; + } + free_pgs = txn->mt_free_pgs; + /* Write to last page of freeDB */ + key.mv_size = sizeof(txn->mt_txnid); + key.mv_data = &txn->mt_txnid; + do { + freecnt = free_pgs[0]; + data.mv_size = MDB_IDL_SIZEOF(free_pgs); + rc = mdb_cursor_put(&mc, &key, &data, MDB_RESERVE); + if (rc) + return rc; + /* Retry if mt_free_pgs[] grew during the Put() */ + free_pgs = txn->mt_free_pgs; + } while (freecnt < free_pgs[0]); + mdb_midl_sort(free_pgs); + memcpy(data.mv_data, free_pgs, data.mv_size); +#if (MDB_DEBUG) > 1 + { + unsigned int i = free_pgs[0]; + DPRINTF(("IDL write txn %"Z"u root %"Z"u num %u", + txn->mt_txnid, txn->mt_dbs[FREE_DBI].md_root, i)); + for (; i; i--) + DPRINTF(("IDL %"Z"u", free_pgs[i])); + } +#endif + continue; + } + + mop = env->me_pghead; + mop_len = (mop ? mop[0] : 0) + txn->mt_loose_count; + + /* Reserve records for me_pghead[]. Split it if multi-page, + * to avoid searching freeDB for a page range. Use keys in + * range [1,me_pglast]: Smaller than txnid of oldest reader. + */ + if (total_room >= mop_len) { + if (total_room == mop_len || --more < 0) + break; + } else if (head_room >= maxfree_1pg && head_id > 1) { + /* Keep current record (overflow page), add a new one */ + head_id--; + head_room = 0; + } + /* (Re)write {key = head_id, IDL length = head_room} */ + total_room -= head_room; + head_room = mop_len - total_room; + if (head_room > maxfree_1pg && head_id > 1) { + /* Overflow multi-page for part of me_pghead */ + head_room /= head_id; /* amortize page sizes */ + head_room += maxfree_1pg - head_room % (maxfree_1pg + 1); + } else if (head_room < 0) { + /* Rare case, not bothering to delete this record */ + head_room = 0; + } + key.mv_size = sizeof(head_id); + key.mv_data = &head_id; + data.mv_size = (head_room + 1) * sizeof(pgno_t); + rc = mdb_cursor_put(&mc, &key, &data, MDB_RESERVE); + if (rc) + return rc; + /* IDL is initially empty, zero out at least the length */ + pgs = (pgno_t *)data.mv_data; + j = head_room > clean_limit ? head_room : 0; + do { + pgs[j] = 0; + } while (--j >= 0); + total_room += head_room; + } + + /* Return loose page numbers to me_pghead, though usually none are + * left at this point. The pages themselves remain in dirty_list. + */ + if (txn->mt_loose_pgs) { + MDB_page *mp = txn->mt_loose_pgs; + unsigned count = txn->mt_loose_count; + MDB_IDL loose; + /* Room for loose pages + temp IDL with same */ + if ((rc = mdb_midl_need(&env->me_pghead, 2*count+1)) != 0) + return rc; + mop = env->me_pghead; + loose = mop + MDB_IDL_ALLOCLEN(mop) - count; + for (count = 0; mp; mp = NEXT_LOOSE_PAGE(mp)) + loose[ ++count ] = mp->mp_pgno; + loose[0] = count; + mdb_midl_sort(loose); + mdb_midl_xmerge(mop, loose); + txn->mt_loose_pgs = NULL; + txn->mt_loose_count = 0; + mop_len = mop[0]; + } + + /* Fill in the reserved me_pghead records */ + rc = MDB_SUCCESS; + if (mop_len) { + MDB_val key, data; + + mop += mop_len; + rc = mdb_cursor_first(&mc, &key, &data); + for (; !rc; rc = mdb_cursor_next(&mc, &key, &data, MDB_NEXT)) { + txnid_t id = *(txnid_t *)key.mv_data; + ssize_t len = (ssize_t)(data.mv_size / sizeof(MDB_ID)) - 1; + MDB_ID save; + + mdb_tassert(txn, len >= 0 && id <= env->me_pglast); + key.mv_data = &id; + if (len > mop_len) { + len = mop_len; + data.mv_size = (len + 1) * sizeof(MDB_ID); + } + data.mv_data = mop -= len; + save = mop[0]; + mop[0] = len; + rc = mdb_cursor_put(&mc, &key, &data, MDB_CURRENT); + mop[0] = save; + if (rc || !(mop_len -= len)) + break; + } + } + return rc; +} + +/** Flush (some) dirty pages to the map, after clearing their dirty flag. + * @param[in] txn the transaction that's being committed + * @param[in] keep number of initial pages in dirty_list to keep dirty. + * @return 0 on success, non-zero on failure. + */ +static int +mdb_page_flush(MDB_txn *txn, int keep) +{ + MDB_env *env = txn->mt_env; + MDB_ID2L dl = txn->mt_u.dirty_list; + unsigned psize = env->me_psize, j; + int i, pagecount = dl[0].mid, rc; + size_t size = 0, pos = 0; + pgno_t pgno = 0; + MDB_page *dp = NULL; +#ifdef _WIN32 + OVERLAPPED ov; +#else + struct iovec iov[MDB_COMMIT_PAGES]; + ssize_t wpos = 0, wsize = 0, wres; + size_t next_pos = 1; /* impossible pos, so pos != next_pos */ + int n = 0; +#endif + + j = i = keep; + + if (env->me_flags & MDB_WRITEMAP) { + /* Clear dirty flags */ + while (++i <= pagecount) { + dp = dl[i].mptr; + /* Don't flush this page yet */ + if (dp->mp_flags & (P_LOOSE|P_KEEP)) { + dp->mp_flags &= ~P_KEEP; + dl[++j] = dl[i]; + continue; + } + dp->mp_flags &= ~P_DIRTY; + } + goto done; + } + + /* Write the pages */ + for (;;) { + if (++i <= pagecount) { + dp = dl[i].mptr; + /* Don't flush this page yet */ + if (dp->mp_flags & (P_LOOSE|P_KEEP)) { + dp->mp_flags &= ~P_KEEP; + dl[i].mid = 0; + continue; + } + pgno = dl[i].mid; + /* clear dirty flag */ + dp->mp_flags &= ~P_DIRTY; + pos = pgno * psize; + size = psize; + if (IS_OVERFLOW(dp)) size *= dp->mp_pages; + } +#ifdef _WIN32 + else break; + + /* Windows actually supports scatter/gather I/O, but only on + * unbuffered file handles. Since we're relying on the OS page + * cache for all our data, that's self-defeating. So we just + * write pages one at a time. We use the ov structure to set + * the write offset, to at least save the overhead of a Seek + * system call. + */ + DPRINTF(("committing page %"Z"u", pgno)); + memset(&ov, 0, sizeof(ov)); + ov.Offset = pos & 0xffffffff; + ov.OffsetHigh = pos >> 16 >> 16; + if (!WriteFile(env->me_fd, dp, size, NULL, &ov)) { + rc = ErrCode(); + DPRINTF(("WriteFile: %d", rc)); + return rc; + } +#else + /* Write up to MDB_COMMIT_PAGES dirty pages at a time. */ + if (pos!=next_pos || n==MDB_COMMIT_PAGES || wsize+size>MAX_WRITE) { + if (n) { +retry_write: + /* Write previous page(s) */ +#ifdef MDB_USE_PWRITEV + wres = pwritev(env->me_fd, iov, n, wpos); +#else + if (n == 1) { + wres = pwrite(env->me_fd, iov[0].iov_base, wsize, wpos); + } else { +retry_seek: + if (lseek(env->me_fd, wpos, SEEK_SET) == -1) { + rc = ErrCode(); + if (rc == EINTR) + goto retry_seek; + DPRINTF(("lseek: %s", strerror(rc))); + return rc; + } + wres = writev(env->me_fd, iov, n); + } +#endif + if (wres != wsize) { + if (wres < 0) { + rc = ErrCode(); + if (rc == EINTR) + goto retry_write; + DPRINTF(("Write error: %s", strerror(rc))); + } else { + rc = EIO; /* TODO: Use which error code? */ + DPUTS("short write, filesystem full?"); + } + return rc; + } + n = 0; + } + if (i > pagecount) + break; + wpos = pos; + wsize = 0; + } + DPRINTF(("committing page %"Z"u", pgno)); + next_pos = pos + size; + iov[n].iov_len = size; + iov[n].iov_base = (char *)dp; + wsize += size; + n++; +#endif /* _WIN32 */ + } + + /* MIPS has cache coherency issues, this is a no-op everywhere else + * Note: for any size >= on-chip cache size, entire on-chip cache is + * flushed. + */ + CACHEFLUSH(env->me_map, txn->mt_next_pgno * env->me_psize, DCACHE); + + for (i = keep; ++i <= pagecount; ) { + dp = dl[i].mptr; + /* This is a page we skipped above */ + if (!dl[i].mid) { + dl[++j] = dl[i]; + dl[j].mid = dp->mp_pgno; + continue; + } + mdb_dpage_free(env, dp); + } + +done: + i--; + txn->mt_dirty_room += i - j; + dl[0].mid = j; + return MDB_SUCCESS; +} + +int +mdb_txn_commit(MDB_txn *txn) +{ + int rc; + unsigned int i, end_mode; + MDB_env *env; + + if (txn == NULL) + return EINVAL; + + /* mdb_txn_end() mode for a commit which writes nothing */ + end_mode = MDB_END_EMPTY_COMMIT|MDB_END_UPDATE|MDB_END_SLOT|MDB_END_FREE; + + if (txn->mt_child) { + rc = mdb_txn_commit(txn->mt_child); + if (rc) + goto fail; + } + + env = txn->mt_env; + + if (F_ISSET(txn->mt_flags, MDB_TXN_RDONLY)) { + goto done; + } + + if (txn->mt_flags & (MDB_TXN_FINISHED|MDB_TXN_ERROR)) { + DPUTS("txn has failed/finished, can't commit"); + if (txn->mt_parent) + txn->mt_parent->mt_flags |= MDB_TXN_ERROR; + rc = MDB_BAD_TXN; + goto fail; + } + + if (txn->mt_parent) { + MDB_txn *parent = txn->mt_parent; + MDB_page **lp; + MDB_ID2L dst, src; + MDB_IDL pspill; + unsigned x, y, len, ps_len; + + /* Append our free list to parent's */ + rc = mdb_midl_append_list(&parent->mt_free_pgs, txn->mt_free_pgs); + if (rc) + goto fail; + mdb_midl_free(txn->mt_free_pgs); + /* Failures after this must either undo the changes + * to the parent or set MDB_TXN_ERROR in the parent. + */ + + parent->mt_next_pgno = txn->mt_next_pgno; + parent->mt_flags = txn->mt_flags; + + /* Merge our cursors into parent's and close them */ + mdb_cursors_close(txn, 1); + + /* Update parent's DB table. */ + memcpy(parent->mt_dbs, txn->mt_dbs, txn->mt_numdbs * sizeof(MDB_db)); + parent->mt_numdbs = txn->mt_numdbs; + parent->mt_dbflags[FREE_DBI] = txn->mt_dbflags[FREE_DBI]; + parent->mt_dbflags[MAIN_DBI] = txn->mt_dbflags[MAIN_DBI]; + for (i=CORE_DBS; imt_numdbs; i++) { + /* preserve parent's DB_NEW status */ + x = parent->mt_dbflags[i] & DB_NEW; + parent->mt_dbflags[i] = txn->mt_dbflags[i] | x; + } + + dst = parent->mt_u.dirty_list; + src = txn->mt_u.dirty_list; + /* Remove anything in our dirty list from parent's spill list */ + if ((pspill = parent->mt_spill_pgs) && (ps_len = pspill[0])) { + x = y = ps_len; + pspill[0] = (pgno_t)-1; + /* Mark our dirty pages as deleted in parent spill list */ + for (i=0, len=src[0].mid; ++i <= len; ) { + MDB_ID pn = src[i].mid << 1; + while (pn > pspill[x]) + x--; + if (pn == pspill[x]) { + pspill[x] = 1; + y = --x; + } + } + /* Squash deleted pagenums if we deleted any */ + for (x=y; ++x <= ps_len; ) + if (!(pspill[x] & 1)) + pspill[++y] = pspill[x]; + pspill[0] = y; + } + + /* Remove anything in our spill list from parent's dirty list */ + if (txn->mt_spill_pgs && txn->mt_spill_pgs[0]) { + for (i=1; i<=txn->mt_spill_pgs[0]; i++) { + MDB_ID pn = txn->mt_spill_pgs[i]; + if (pn & 1) + continue; /* deleted spillpg */ + pn >>= 1; + y = mdb_mid2l_search(dst, pn); + if (y <= dst[0].mid && dst[y].mid == pn) { + free(dst[y].mptr); + while (y < dst[0].mid) { + dst[y] = dst[y+1]; + y++; + } + dst[0].mid--; + } + } + } + + /* Find len = length of merging our dirty list with parent's */ + x = dst[0].mid; + dst[0].mid = 0; /* simplify loops */ + if (parent->mt_parent) { + len = x + src[0].mid; + y = mdb_mid2l_search(src, dst[x].mid + 1) - 1; + for (i = x; y && i; y--) { + pgno_t yp = src[y].mid; + while (yp < dst[i].mid) + i--; + if (yp == dst[i].mid) { + i--; + len--; + } + } + } else { /* Simplify the above for single-ancestor case */ + len = MDB_IDL_UM_MAX - txn->mt_dirty_room; + } + /* Merge our dirty list with parent's */ + y = src[0].mid; + for (i = len; y; dst[i--] = src[y--]) { + pgno_t yp = src[y].mid; + while (yp < dst[x].mid) + dst[i--] = dst[x--]; + if (yp == dst[x].mid) + free(dst[x--].mptr); + } + mdb_tassert(txn, i == x); + dst[0].mid = len; + free(txn->mt_u.dirty_list); + parent->mt_dirty_room = txn->mt_dirty_room; + if (txn->mt_spill_pgs) { + if (parent->mt_spill_pgs) { + /* TODO: Prevent failure here, so parent does not fail */ + rc = mdb_midl_append_list(&parent->mt_spill_pgs, txn->mt_spill_pgs); + if (rc) + parent->mt_flags |= MDB_TXN_ERROR; + mdb_midl_free(txn->mt_spill_pgs); + mdb_midl_sort(parent->mt_spill_pgs); + } else { + parent->mt_spill_pgs = txn->mt_spill_pgs; + } + } + + /* Append our loose page list to parent's */ + for (lp = &parent->mt_loose_pgs; *lp; lp = &NEXT_LOOSE_PAGE(*lp)) + ; + *lp = txn->mt_loose_pgs; + parent->mt_loose_count += txn->mt_loose_count; + + parent->mt_child = NULL; + mdb_midl_free(((MDB_ntxn *)txn)->mnt_pgstate.mf_pghead); + free(txn); + return rc; + } + + if (txn != env->me_txn) { + DPUTS("attempt to commit unknown transaction"); + rc = EINVAL; + goto fail; + } + + mdb_cursors_close(txn, 0); + + if (!txn->mt_u.dirty_list[0].mid && + !(txn->mt_flags & (MDB_TXN_DIRTY|MDB_TXN_SPILLS))) + goto done; + + DPRINTF(("committing txn %"Z"u %p on mdbenv %p, root page %"Z"u", + txn->mt_txnid, (void*)txn, (void*)env, txn->mt_dbs[MAIN_DBI].md_root)); + + /* Update DB root pointers */ + if (txn->mt_numdbs > CORE_DBS) { + MDB_cursor mc; + MDB_dbi i; + MDB_val data; + data.mv_size = sizeof(MDB_db); + + mdb_cursor_init(&mc, txn, MAIN_DBI, NULL); + for (i = CORE_DBS; i < txn->mt_numdbs; i++) { + if (txn->mt_dbflags[i] & DB_DIRTY) { + if (TXN_DBI_CHANGED(txn, i)) { + rc = MDB_BAD_DBI; + goto fail; + } + data.mv_data = &txn->mt_dbs[i]; + rc = mdb_cursor_put(&mc, &txn->mt_dbxs[i].md_name, &data, + F_SUBDATA); + if (rc) + goto fail; + } + } + } + + rc = mdb_freelist_save(txn); + if (rc) + goto fail; + + mdb_midl_free(env->me_pghead); + env->me_pghead = NULL; + mdb_midl_shrink(&txn->mt_free_pgs); + +#if (MDB_DEBUG) > 2 + mdb_audit(txn); +#endif + + if ((rc = mdb_page_flush(txn, 0)) || + (rc = mdb_env_sync(env, 0)) || + (rc = mdb_env_write_meta(txn))) + goto fail; + end_mode = MDB_END_COMMITTED|MDB_END_UPDATE; + +done: + mdb_txn_end(txn, end_mode); + return MDB_SUCCESS; + +fail: + mdb_txn_abort(txn); + return rc; +} + +/** Read the environment parameters of a DB environment before + * mapping it into memory. + * @param[in] env the environment handle + * @param[out] meta address of where to store the meta information + * @return 0 on success, non-zero on failure. + */ +static int ESECT +mdb_env_read_header(MDB_env *env, MDB_meta *meta) +{ + MDB_metabuf pbuf; + MDB_page *p; + MDB_meta *m; + int i, rc, off; + enum { Size = sizeof(pbuf) }; + + /* We don't know the page size yet, so use a minimum value. + * Read both meta pages so we can use the latest one. + */ + + for (i=off=0; imm_psize) { +#ifdef _WIN32 + DWORD len; + OVERLAPPED ov; + memset(&ov, 0, sizeof(ov)); + ov.Offset = off; + rc = ReadFile(env->me_fd, &pbuf, Size, &len, &ov) ? (int)len : -1; + if (rc == -1 && ErrCode() == ERROR_HANDLE_EOF) + rc = 0; +#else + rc = pread(env->me_fd, &pbuf, Size, off); +#endif + if (rc != Size) { + if (rc == 0 && off == 0) + return ENOENT; + rc = rc < 0 ? (int) ErrCode() : MDB_INVALID; + DPRINTF(("read: %s", mdb_strerror(rc))); + return rc; + } + + p = (MDB_page *)&pbuf; + + if (!F_ISSET(p->mp_flags, P_META)) { + DPRINTF(("page %"Z"u not a meta page", p->mp_pgno)); + return MDB_INVALID; + } + + m = METADATA(p); + if (m->mm_magic != MDB_MAGIC) { + DPUTS("meta has invalid magic"); + return MDB_INVALID; + } + + if (m->mm_version != MDB_DATA_VERSION) { + DPRINTF(("database is version %u, expected version %u", + m->mm_version, MDB_DATA_VERSION)); + return MDB_VERSION_MISMATCH; + } + + if (off == 0 || m->mm_txnid > meta->mm_txnid) + *meta = *m; + } + return 0; +} + +/** Fill in most of the zeroed #MDB_meta for an empty database environment */ +static void ESECT +mdb_env_init_meta0(MDB_env *env, MDB_meta *meta) +{ + meta->mm_magic = MDB_MAGIC; + meta->mm_version = MDB_DATA_VERSION; + meta->mm_mapsize = env->me_mapsize; + meta->mm_psize = env->me_psize; + meta->mm_last_pg = NUM_METAS-1; + meta->mm_flags = env->me_flags & 0xffff; + meta->mm_flags |= MDB_INTEGERKEY; /* this is mm_dbs[FREE_DBI].md_flags */ + meta->mm_dbs[FREE_DBI].md_root = P_INVALID; + meta->mm_dbs[MAIN_DBI].md_root = P_INVALID; +} + +/** Write the environment parameters of a freshly created DB environment. + * @param[in] env the environment handle + * @param[in] meta the #MDB_meta to write + * @return 0 on success, non-zero on failure. + */ +static int ESECT +mdb_env_init_meta(MDB_env *env, MDB_meta *meta) +{ + MDB_page *p, *q; + int rc; + unsigned int psize; +#ifdef _WIN32 + DWORD len; + OVERLAPPED ov; + memset(&ov, 0, sizeof(ov)); +#define DO_PWRITE(rc, fd, ptr, size, len, pos) do { \ + ov.Offset = pos; \ + rc = WriteFile(fd, ptr, size, &len, &ov); } while(0) +#else + int len; +#define DO_PWRITE(rc, fd, ptr, size, len, pos) do { \ + len = pwrite(fd, ptr, size, pos); \ + if (len == -1 && ErrCode() == EINTR) continue; \ + rc = (len >= 0); break; } while(1) +#endif + + DPUTS("writing new meta page"); + + psize = env->me_psize; + + p = calloc(NUM_METAS, psize); + if (!p) + return ENOMEM; + + p->mp_pgno = 0; + p->mp_flags = P_META; + *(MDB_meta *)METADATA(p) = *meta; + + q = (MDB_page *)((char *)p + psize); + q->mp_pgno = 1; + q->mp_flags = P_META; + *(MDB_meta *)METADATA(q) = *meta; + + DO_PWRITE(rc, env->me_fd, p, psize * NUM_METAS, len, 0); + if (!rc) + rc = ErrCode(); + else if ((unsigned) len == psize * NUM_METAS) + rc = MDB_SUCCESS; + else + rc = ENOSPC; + free(p); + return rc; +} + +/** Update the environment info to commit a transaction. + * @param[in] txn the transaction that's being committed + * @return 0 on success, non-zero on failure. + */ +static int +mdb_env_write_meta(MDB_txn *txn) +{ + MDB_env *env; + MDB_meta meta, metab, *mp; + unsigned flags; + size_t mapsize; + off_t off; + int rc, len, toggle; + char *ptr; + HANDLE mfd; +#ifdef _WIN32 + OVERLAPPED ov; +#else + int r2; +#endif + + toggle = txn->mt_txnid & 1; + DPRINTF(("writing meta page %d for root page %"Z"u", + toggle, txn->mt_dbs[MAIN_DBI].md_root)); + + env = txn->mt_env; + flags = env->me_flags; + mp = env->me_metas[toggle]; + mapsize = env->me_metas[toggle ^ 1]->mm_mapsize; + /* Persist any increases of mapsize config */ + if (mapsize < env->me_mapsize) + mapsize = env->me_mapsize; + + if (flags & MDB_WRITEMAP) { + mp->mm_mapsize = mapsize; + mp->mm_dbs[FREE_DBI] = txn->mt_dbs[FREE_DBI]; + mp->mm_dbs[MAIN_DBI] = txn->mt_dbs[MAIN_DBI]; + mp->mm_last_pg = txn->mt_next_pgno - 1; +#if (__GNUC__ * 100 + __GNUC_MINOR__ >= 404) && /* TODO: portability */ \ + !(defined(__i386__) || defined(__x86_64__)) + /* LY: issue a memory barrier, if not x86. ITS#7969 */ + __sync_synchronize(); +#endif + mp->mm_txnid = txn->mt_txnid; + if (!(flags & (MDB_NOMETASYNC|MDB_NOSYNC))) { + unsigned meta_size = env->me_psize; + rc = (env->me_flags & MDB_MAPASYNC) ? MS_ASYNC : MS_SYNC; + ptr = (char *)mp - PAGEHDRSZ; +#ifndef _WIN32 /* POSIX msync() requires ptr = start of OS page */ + r2 = (ptr - env->me_map) & (env->me_os_psize - 1); + ptr -= r2; + meta_size += r2; +#endif + if (MDB_MSYNC(ptr, meta_size, rc)) { + rc = ErrCode(); + goto fail; + } + } + goto done; + } + metab.mm_txnid = mp->mm_txnid; + metab.mm_last_pg = mp->mm_last_pg; + + meta.mm_mapsize = mapsize; + meta.mm_dbs[FREE_DBI] = txn->mt_dbs[FREE_DBI]; + meta.mm_dbs[MAIN_DBI] = txn->mt_dbs[MAIN_DBI]; + meta.mm_last_pg = txn->mt_next_pgno - 1; + meta.mm_txnid = txn->mt_txnid; + + off = offsetof(MDB_meta, mm_mapsize); + ptr = (char *)&meta + off; + len = sizeof(MDB_meta) - off; + off += (char *)mp - env->me_map; + + /* Write to the SYNC fd unless MDB_NOSYNC/MDB_NOMETASYNC. + * (me_mfd goes to the same file as me_fd, but writing to it + * also syncs to disk. Avoids a separate fdatasync() call.) + */ + mfd = (flags & (MDB_NOSYNC|MDB_NOMETASYNC)) ? env->me_fd : env->me_mfd; +#ifdef _WIN32 + { + memset(&ov, 0, sizeof(ov)); + ov.Offset = off; + if (!WriteFile(mfd, ptr, len, (DWORD *)&rc, &ov)) + rc = -1; + } +#else +retry_write: + rc = pwrite(mfd, ptr, len, off); +#endif + if (rc != len) { + rc = rc < 0 ? ErrCode() : EIO; +#ifndef _WIN32 + if (rc == EINTR) + goto retry_write; +#endif + DPUTS("write failed, disk error?"); + /* On a failure, the pagecache still contains the new data. + * Write some old data back, to prevent it from being used. + * Use the non-SYNC fd; we know it will fail anyway. + */ + meta.mm_last_pg = metab.mm_last_pg; + meta.mm_txnid = metab.mm_txnid; +#ifdef _WIN32 + memset(&ov, 0, sizeof(ov)); + ov.Offset = off; + WriteFile(env->me_fd, ptr, len, NULL, &ov); +#else + r2 = pwrite(env->me_fd, ptr, len, off); + (void)r2; /* Silence warnings. We don't care about pwrite's return value */ +#endif +fail: + env->me_flags |= MDB_FATAL_ERROR; + return rc; + } + /* MIPS has cache coherency issues, this is a no-op everywhere else */ + CACHEFLUSH(env->me_map + off, len, DCACHE); +done: + /* Memory ordering issues are irrelevant; since the entire writer + * is wrapped by wmutex, all of these changes will become visible + * after the wmutex is unlocked. Since the DB is multi-version, + * readers will get consistent data regardless of how fresh or + * how stale their view of these values is. + */ + if (env->me_txns) + env->me_txns->mti_txnid = txn->mt_txnid; + + return MDB_SUCCESS; +} + +/** Check both meta pages to see which one is newer. + * @param[in] env the environment handle + * @return newest #MDB_meta. + */ +static MDB_meta * +mdb_env_pick_meta(const MDB_env *env) +{ + MDB_meta *const *metas = env->me_metas; + return metas[ metas[0]->mm_txnid < metas[1]->mm_txnid ]; +} + +int ESECT +mdb_env_create(MDB_env **env) +{ + MDB_env *e; + + e = calloc(1, sizeof(MDB_env)); + if (!e) + return ENOMEM; + + e->me_maxreaders = DEFAULT_READERS; + e->me_maxdbs = e->me_numdbs = CORE_DBS; + e->me_fd = INVALID_HANDLE_VALUE; + e->me_lfd = INVALID_HANDLE_VALUE; + e->me_mfd = INVALID_HANDLE_VALUE; +#ifdef MDB_USE_POSIX_SEM + e->me_rmutex = SEM_FAILED; + e->me_wmutex = SEM_FAILED; +#endif + e->me_pid = getpid(); + GET_PAGESIZE(e->me_os_psize); + VGMEMP_CREATE(e,0,0); + *env = e; + return MDB_SUCCESS; +} + +static int ESECT +mdb_env_map(MDB_env *env, void *addr) +{ + MDB_page *p; + unsigned int flags = env->me_flags; +#ifdef _WIN32 + int rc; + HANDLE mh; + LONG sizelo, sizehi; + size_t msize; + + if (flags & MDB_RDONLY) { + /* Don't set explicit map size, use whatever exists */ + msize = 0; + sizelo = 0; + sizehi = 0; + } else { + msize = env->me_mapsize; + sizelo = msize & 0xffffffff; + sizehi = msize >> 16 >> 16; /* only needed on Win64 */ + + /* Windows won't create mappings for zero length files. + * and won't map more than the file size. + * Just set the maxsize right now. + */ + if (!(flags & MDB_WRITEMAP) && (SetFilePointer(env->me_fd, sizelo, &sizehi, 0) != (DWORD)sizelo + || !SetEndOfFile(env->me_fd) + || SetFilePointer(env->me_fd, 0, NULL, 0) != 0)) + return ErrCode(); + } + + mh = CreateFileMapping(env->me_fd, NULL, flags & MDB_WRITEMAP ? + PAGE_READWRITE : PAGE_READONLY, + sizehi, sizelo, NULL); + if (!mh) + return ErrCode(); + env->me_map = MapViewOfFileEx(mh, flags & MDB_WRITEMAP ? + FILE_MAP_WRITE : FILE_MAP_READ, + 0, 0, msize, addr); + rc = env->me_map ? 0 : ErrCode(); + CloseHandle(mh); + if (rc) + return rc; +#else + int mmap_flags = MAP_SHARED; + int prot = PROT_READ; +#ifdef MAP_NOSYNC /* Used on FreeBSD */ + if (flags & MDB_NOSYNC) + mmap_flags |= MAP_NOSYNC; +#endif + if (flags & MDB_WRITEMAP) { + prot |= PROT_WRITE; + if (ftruncate(env->me_fd, env->me_mapsize) < 0) + return ErrCode(); + } + env->me_map = mmap(addr, env->me_mapsize, prot, mmap_flags, + env->me_fd, 0); + if (env->me_map == MAP_FAILED) { + env->me_map = NULL; + return ErrCode(); + } + + if (flags & MDB_NORDAHEAD) { + /* Turn off readahead. It's harmful when the DB is larger than RAM. */ +#ifdef MADV_RANDOM + madvise(env->me_map, env->me_mapsize, MADV_RANDOM); +#else +#ifdef POSIX_MADV_RANDOM + posix_madvise(env->me_map, env->me_mapsize, POSIX_MADV_RANDOM); +#endif /* POSIX_MADV_RANDOM */ +#endif /* MADV_RANDOM */ + } +#endif /* _WIN32 */ + + /* Can happen because the address argument to mmap() is just a + * hint. mmap() can pick another, e.g. if the range is in use. + * The MAP_FIXED flag would prevent that, but then mmap could + * instead unmap existing pages to make room for the new map. + */ + if (addr && env->me_map != addr) + return EBUSY; /* TODO: Make a new MDB_* error code? */ + + p = (MDB_page *)env->me_map; + env->me_metas[0] = METADATA(p); + env->me_metas[1] = (MDB_meta *)((char *)env->me_metas[0] + env->me_psize); + + return MDB_SUCCESS; +} + +int ESECT +mdb_env_set_mapsize(MDB_env *env, size_t size) +{ + /* If env is already open, caller is responsible for making + * sure there are no active txns. + */ + if (env->me_map) { + int rc; + MDB_meta *meta; + void *old; + if (env->me_txn) + return EINVAL; + meta = mdb_env_pick_meta(env); + if (!size) + size = meta->mm_mapsize; + { + /* Silently round up to minimum if the size is too small */ + size_t minsize = (meta->mm_last_pg + 1) * env->me_psize; + if (size < minsize) + size = minsize; + } + munmap(env->me_map, env->me_mapsize); + env->me_mapsize = size; + old = (env->me_flags & MDB_FIXEDMAP) ? env->me_map : NULL; + rc = mdb_env_map(env, old); + if (rc) + return rc; + } + env->me_mapsize = size; + if (env->me_psize) + env->me_maxpg = env->me_mapsize / env->me_psize; + return MDB_SUCCESS; +} + +int ESECT +mdb_env_set_maxdbs(MDB_env *env, MDB_dbi dbs) +{ + if (env->me_map) + return EINVAL; + env->me_maxdbs = dbs + CORE_DBS; + return MDB_SUCCESS; +} + +int ESECT +mdb_env_set_maxreaders(MDB_env *env, unsigned int readers) +{ + if (env->me_map || readers < 1) + return EINVAL; + env->me_maxreaders = readers; + return MDB_SUCCESS; +} + +int ESECT +mdb_env_get_maxreaders(MDB_env *env, unsigned int *readers) +{ + if (!env || !readers) + return EINVAL; + *readers = env->me_maxreaders; + return MDB_SUCCESS; +} + +static int ESECT +mdb_fsize(HANDLE fd, size_t *size) +{ +#ifdef _WIN32 + LARGE_INTEGER fsize; + + if (!GetFileSizeEx(fd, &fsize)) + return ErrCode(); + + *size = fsize.QuadPart; +#else + struct stat st; + + if (fstat(fd, &st)) + return ErrCode(); + + *size = st.st_size; +#endif + return MDB_SUCCESS; +} + + +#ifdef _WIN32 +typedef wchar_t mdb_nchar_t; +# define MDB_NAME(str) L##str +# define mdb_name_cpy wcscpy +#else +/** Character type for file names: char on Unix, wchar_t on Windows */ +typedef char mdb_nchar_t; +# define MDB_NAME(str) str /**< #mdb_nchar_t[] string literal */ +# define mdb_name_cpy strcpy /**< Copy name (#mdb_nchar_t string) */ +#endif + +/** Filename - string of #mdb_nchar_t[] */ +typedef struct MDB_name { + int mn_len; /**< Length */ + int mn_alloced; /**< True if #mn_val was malloced */ + mdb_nchar_t *mn_val; /**< Contents */ +} MDB_name; + +/** Filename suffixes [datafile,lockfile][without,with MDB_NOSUBDIR] */ +static const mdb_nchar_t *const mdb_suffixes[2][2] = { + { MDB_NAME("/data.mdb"), MDB_NAME("") }, + { MDB_NAME("/lock.mdb"), MDB_NAME("-lock") } +}; + +#define MDB_SUFFLEN 9 /**< Max string length in #mdb_suffixes[] */ + +/** Set up filename + scratch area for filename suffix, for opening files. + * It should be freed with #mdb_fname_destroy(). + * On Windows, paths are converted from char *UTF-8 to wchar_t *UTF-16. + * + * @param[in] path Pathname for #mdb_env_open(). + * @param[in] envflags Whether a subdir and/or lockfile will be used. + * @param[out] fname Resulting filename, with room for a suffix if necessary. + */ +static int ESECT +mdb_fname_init(const char *path, unsigned envflags, MDB_name *fname) +{ + int no_suffix = F_ISSET(envflags, MDB_NOSUBDIR|MDB_NOLOCK); + fname->mn_alloced = 0; +#ifdef _WIN32 + return utf8_to_utf16(path, fname, no_suffix ? 0 : MDB_SUFFLEN); +#else + fname->mn_len = strlen(path); + if (no_suffix) + fname->mn_val = (char *) path; + else if ((fname->mn_val = malloc(fname->mn_len + MDB_SUFFLEN+1)) != NULL) { + fname->mn_alloced = 1; + strcpy(fname->mn_val, path); + } + else + return ENOMEM; + return MDB_SUCCESS; +#endif +} + +/** Destroy \b fname from #mdb_fname_init() */ +#define mdb_fname_destroy(fname) \ + do { if ((fname).mn_alloced) free((fname).mn_val); } while (0) + +#ifdef O_CLOEXEC /* POSIX.1-2008: Set FD_CLOEXEC atomically at open() */ +# define MDB_CLOEXEC O_CLOEXEC +#else +# define MDB_CLOEXEC 0 +#endif + +/** File type, access mode etc. for #mdb_fopen() */ +enum mdb_fopen_type { +#ifdef _WIN32 + MDB_O_RDONLY, MDB_O_RDWR, MDB_O_META, MDB_O_COPY, MDB_O_LOCKS +#else + /* A comment in mdb_fopen() explains some O_* flag choices. */ + MDB_O_RDONLY= O_RDONLY, /**< for RDONLY me_fd */ + MDB_O_RDWR = O_RDWR |O_CREAT, /**< for me_fd */ + MDB_O_META = O_WRONLY|MDB_DSYNC |MDB_CLOEXEC, /**< for me_mfd */ + MDB_O_COPY = O_WRONLY|O_CREAT|O_EXCL|MDB_CLOEXEC, /**< for #mdb_env_copy() */ + /** Bitmask for open() flags in enum #mdb_fopen_type. The other bits + * distinguish otherwise-equal MDB_O_* constants from each other. + */ + MDB_O_MASK = MDB_O_RDWR|MDB_CLOEXEC | MDB_O_RDONLY|MDB_O_META|MDB_O_COPY, + MDB_O_LOCKS = MDB_O_RDWR|MDB_CLOEXEC | ((MDB_O_MASK+1) & ~MDB_O_MASK) /**< for me_lfd */ +#endif +}; + +/** Open an LMDB file. + * @param[in] env The LMDB environment. + * @param[in,out] fname Path from from #mdb_fname_init(). A suffix is + * appended if necessary to create the filename, without changing mn_len. + * @param[in] which Determines file type, access mode, etc. + * @param[in] mode The Unix permissions for the file, if we create it. + * @param[out] res Resulting file handle. + * @return 0 on success, non-zero on failure. + */ +static int ESECT +mdb_fopen(const MDB_env *env, MDB_name *fname, + enum mdb_fopen_type which, mdb_mode_t mode, + HANDLE *res) +{ + int rc = MDB_SUCCESS; + HANDLE fd; +#ifdef _WIN32 + DWORD acc, share, disp, attrs; +#else + int flags; +#endif + + if (fname->mn_alloced) /* modifiable copy */ + mdb_name_cpy(fname->mn_val + fname->mn_len, + mdb_suffixes[which==MDB_O_LOCKS][F_ISSET(env->me_flags, MDB_NOSUBDIR)]); + + /* The directory must already exist. Usually the file need not. + * MDB_O_META requires the file because we already created it using + * MDB_O_RDWR. MDB_O_COPY must not overwrite an existing file. + * + * With MDB_O_COPY we do not want the OS to cache the writes, since + * the source data is already in the OS cache. + * + * The lockfile needs FD_CLOEXEC (close file descriptor on exec*()) + * to avoid the flock() issues noted under Caveats in lmdb.h. + * Also set it for other filehandles which the user cannot get at + * and close himself, which he may need after fork(). I.e. all but + * me_fd, which programs do use via mdb_env_get_fd(). + */ + +#ifdef _WIN32 + acc = GENERIC_READ|GENERIC_WRITE; + share = FILE_SHARE_READ|FILE_SHARE_WRITE; + disp = OPEN_ALWAYS; + attrs = FILE_ATTRIBUTE_NORMAL; + switch (which) { + case MDB_O_RDONLY: /* read-only datafile */ + acc = GENERIC_READ; + disp = OPEN_EXISTING; + break; + case MDB_O_META: /* for writing metapages */ + acc = GENERIC_WRITE; + disp = OPEN_EXISTING; + attrs = FILE_ATTRIBUTE_NORMAL|FILE_FLAG_WRITE_THROUGH; + break; + case MDB_O_COPY: /* mdb_env_copy() & co */ + acc = GENERIC_WRITE; + share = 0; + disp = CREATE_NEW; + attrs = FILE_FLAG_NO_BUFFERING|FILE_FLAG_WRITE_THROUGH; + break; + default: break; /* silence gcc -Wswitch (not all enum values handled) */ + } + fd = CreateFileW(fname->mn_val, acc, share, NULL, disp, attrs, NULL); +#else + fd = open(fname->mn_val, which & MDB_O_MASK, mode); +#endif + + if (fd == INVALID_HANDLE_VALUE) + rc = ErrCode(); +#ifndef _WIN32 + else { + if (which != MDB_O_RDONLY && which != MDB_O_RDWR) { + /* Set CLOEXEC if we could not pass it to open() */ + if (!MDB_CLOEXEC && (flags = fcntl(fd, F_GETFD)) != -1) + (void) fcntl(fd, F_SETFD, flags | FD_CLOEXEC); + } + if (which == MDB_O_COPY && env->me_psize >= env->me_os_psize) { + /* This may require buffer alignment. There is no portable + * way to ask how much, so we require OS pagesize alignment. + */ +# ifdef F_NOCACHE /* __APPLE__ */ + (void) fcntl(fd, F_NOCACHE, 1); +# elif defined O_DIRECT + /* open(...O_DIRECT...) would break on filesystems without + * O_DIRECT support (ITS#7682). Try to set it here instead. + */ + if ((flags = fcntl(fd, F_GETFL)) != -1) + (void) fcntl(fd, F_SETFL, flags | O_DIRECT); +# endif + } + } +#endif /* !_WIN32 */ + + *res = fd; + return rc; +} + + +#ifdef BROKEN_FDATASYNC +#include +#include +#endif + +/** Further setup required for opening an LMDB environment + */ +static int ESECT +mdb_env_open2(MDB_env *env) +{ + unsigned int flags = env->me_flags; + int i, newenv = 0, rc; + MDB_meta meta; + +#ifdef _WIN32 + /* See if we should use QueryLimited */ + rc = GetVersion(); + if ((rc & 0xff) > 5) + env->me_pidquery = MDB_PROCESS_QUERY_LIMITED_INFORMATION; + else + env->me_pidquery = PROCESS_QUERY_INFORMATION; +#endif /* _WIN32 */ + +#ifdef BROKEN_FDATASYNC + /* ext3/ext4 fdatasync is broken on some older Linux kernels. + * https://lkml.org/lkml/2012/9/3/83 + * Kernels after 3.6-rc6 are known good. + * https://lkml.org/lkml/2012/9/10/556 + * See if the DB is on ext3/ext4, then check for new enough kernel + * Kernels 2.6.32.60, 2.6.34.15, 3.2.30, and 3.5.4 are also known + * to be patched. + */ + { + struct statfs st; + fstatfs(env->me_fd, &st); + while (st.f_type == 0xEF53) { + struct utsname uts; + int i; + uname(&uts); + if (uts.release[0] < '3') { + if (!strncmp(uts.release, "2.6.32.", 7)) { + i = atoi(uts.release+7); + if (i >= 60) + break; /* 2.6.32.60 and newer is OK */ + } else if (!strncmp(uts.release, "2.6.34.", 7)) { + i = atoi(uts.release+7); + if (i >= 15) + break; /* 2.6.34.15 and newer is OK */ + } + } else if (uts.release[0] == '3') { + i = atoi(uts.release+2); + if (i > 5) + break; /* 3.6 and newer is OK */ + if (i == 5) { + i = atoi(uts.release+4); + if (i >= 4) + break; /* 3.5.4 and newer is OK */ + } else if (i == 2) { + i = atoi(uts.release+4); + if (i >= 30) + break; /* 3.2.30 and newer is OK */ + } + } else { /* 4.x and newer is OK */ + break; + } + env->me_flags |= MDB_FSYNCONLY; + break; + } + } +#endif + + if ((i = mdb_env_read_header(env, &meta)) != 0) { + if (i != ENOENT) + return i; + DPUTS("new mdbenv"); + newenv = 1; + env->me_psize = env->me_os_psize; + if (env->me_psize > MAX_PAGESIZE) + env->me_psize = MAX_PAGESIZE; + memset(&meta, 0, sizeof(meta)); + mdb_env_init_meta0(env, &meta); + meta.mm_mapsize = DEFAULT_MAPSIZE; + } else { + env->me_psize = meta.mm_psize; + } + + /* Was a mapsize configured? */ + if (!env->me_mapsize) { + env->me_mapsize = meta.mm_mapsize; + } + { + /* Make sure mapsize >= committed data size. Even when using + * mm_mapsize, which could be broken in old files (ITS#7789). + */ + size_t minsize = (meta.mm_last_pg + 1) * meta.mm_psize; + if (env->me_mapsize < minsize) + env->me_mapsize = minsize; + } + meta.mm_mapsize = env->me_mapsize; + + if (newenv && !(flags & MDB_FIXEDMAP)) { + /* mdb_env_map() may grow the datafile. Write the metapages + * first, so the file will be valid if initialization fails. + * Except with FIXEDMAP, since we do not yet know mm_address. + * We could fill in mm_address later, but then a different + * program might end up doing that - one with a memory layout + * and map address which does not suit the main program. + */ + rc = mdb_env_init_meta(env, &meta); + if (rc) + return rc; + newenv = 0; + } + + rc = mdb_env_map(env, (flags & MDB_FIXEDMAP) ? meta.mm_address : NULL); + if (rc) + return rc; + + if (newenv) { + if (flags & MDB_FIXEDMAP) + meta.mm_address = env->me_map; + i = mdb_env_init_meta(env, &meta); + if (i != MDB_SUCCESS) { + return i; + } + } + + env->me_maxfree_1pg = (env->me_psize - PAGEHDRSZ) / sizeof(pgno_t) - 1; + env->me_nodemax = (((env->me_psize - PAGEHDRSZ) / MDB_MINKEYS) & -2) + - sizeof(indx_t); +#if !(MDB_MAXKEYSIZE) + env->me_maxkey = env->me_nodemax - (NODESIZE + sizeof(MDB_db)); +#endif + env->me_maxpg = env->me_mapsize / env->me_psize; + +#if MDB_DEBUG + { + MDB_meta *meta = mdb_env_pick_meta(env); + MDB_db *db = &meta->mm_dbs[MAIN_DBI]; + + DPRINTF(("opened database version %u, pagesize %u", + meta->mm_version, env->me_psize)); + DPRINTF(("using meta page %d", (int) (meta->mm_txnid & 1))); + DPRINTF(("depth: %u", db->md_depth)); + DPRINTF(("entries: %"Z"u", db->md_entries)); + DPRINTF(("branch pages: %"Z"u", db->md_branch_pages)); + DPRINTF(("leaf pages: %"Z"u", db->md_leaf_pages)); + DPRINTF(("overflow pages: %"Z"u", db->md_overflow_pages)); + DPRINTF(("root: %"Z"u", db->md_root)); + } +#endif + + return MDB_SUCCESS; +} + + +/** Release a reader thread's slot in the reader lock table. + * This function is called automatically when a thread exits. + * @param[in] ptr This points to the slot in the reader lock table. + */ +static void +mdb_env_reader_dest(void *ptr) +{ + MDB_reader *reader = ptr; + +#ifndef _WIN32 + if (reader->mr_pid == getpid()) /* catch pthread_exit() in child process */ +#endif + /* We omit the mutex, so do this atomically (i.e. skip mr_txnid) */ + reader->mr_pid = 0; +} + +#ifdef _WIN32 +/** Junk for arranging thread-specific callbacks on Windows. This is + * necessarily platform and compiler-specific. Windows supports up + * to 1088 keys. Let's assume nobody opens more than 64 environments + * in a single process, for now. They can override this if needed. + */ +#ifndef MAX_TLS_KEYS +#define MAX_TLS_KEYS 64 +#endif +static pthread_key_t mdb_tls_keys[MAX_TLS_KEYS]; +static int mdb_tls_nkeys; + +static void NTAPI mdb_tls_callback(PVOID module, DWORD reason, PVOID ptr) +{ + int i; + switch(reason) { + case DLL_PROCESS_ATTACH: break; + case DLL_THREAD_ATTACH: break; + case DLL_THREAD_DETACH: + for (i=0; ime_txns->mti_txnid = meta->mm_txnid; + +#ifdef _WIN32 + { + OVERLAPPED ov; + /* First acquire a shared lock. The Unlock will + * then release the existing exclusive lock. + */ + memset(&ov, 0, sizeof(ov)); + if (!LockFileEx(env->me_lfd, 0, 0, 1, 0, &ov)) { + rc = ErrCode(); + } else { + UnlockFile(env->me_lfd, 0, 0, 1, 0); + *excl = 0; + } + } +#else + { + struct flock lock_info; + /* The shared lock replaces the existing lock */ + memset((void *)&lock_info, 0, sizeof(lock_info)); + lock_info.l_type = F_RDLCK; + lock_info.l_whence = SEEK_SET; + lock_info.l_start = 0; + lock_info.l_len = 1; + while ((rc = fcntl(env->me_lfd, F_SETLK, &lock_info)) && + (rc = ErrCode()) == EINTR) ; + *excl = rc ? -1 : 0; /* error may mean we lost the lock */ + } +#endif + + return rc; +} + +/** Try to get exclusive lock, otherwise shared. + * Maintain *excl = -1: no/unknown lock, 0: shared, 1: exclusive. + */ +static int ESECT +mdb_env_excl_lock(MDB_env *env, int *excl) +{ + int rc = 0; +#ifdef _WIN32 + if (LockFile(env->me_lfd, 0, 0, 1, 0)) { + *excl = 1; + } else { + OVERLAPPED ov; + memset(&ov, 0, sizeof(ov)); + if (LockFileEx(env->me_lfd, 0, 0, 1, 0, &ov)) { + *excl = 0; + } else { + rc = ErrCode(); + } + } +#else + struct flock lock_info; + memset((void *)&lock_info, 0, sizeof(lock_info)); + lock_info.l_type = F_WRLCK; + lock_info.l_whence = SEEK_SET; + lock_info.l_start = 0; + lock_info.l_len = 1; + while ((rc = fcntl(env->me_lfd, F_SETLK, &lock_info)) && + (rc = ErrCode()) == EINTR) ; + if (!rc) { + *excl = 1; + } else +# ifndef MDB_USE_POSIX_MUTEX + if (*excl < 0) /* always true when MDB_USE_POSIX_MUTEX */ +# endif + { + lock_info.l_type = F_RDLCK; + while ((rc = fcntl(env->me_lfd, F_SETLKW, &lock_info)) && + (rc = ErrCode()) == EINTR) ; + if (rc == 0) + *excl = 0; + } +#endif + return rc; +} + +#ifdef MDB_USE_HASH +/* + * hash_64 - 64 bit Fowler/Noll/Vo-0 FNV-1a hash code + * + * @(#) $Revision: 5.1 $ + * @(#) $Id: hash_64a.c,v 5.1 2009/06/30 09:01:38 chongo Exp $ + * @(#) $Source: /usr/local/src/cmd/fnv/RCS/hash_64a.c,v $ + * + * http://www.isthe.com/chongo/tech/comp/fnv/index.html + * + *** + * + * Please do not copyright this code. This code is in the public domain. + * + * LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO + * EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR + * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + * + * By: + * chongo /\oo/\ + * http://www.isthe.com/chongo/ + * + * Share and Enjoy! :-) + */ + +typedef unsigned long long mdb_hash_t; +#define MDB_HASH_INIT ((mdb_hash_t)0xcbf29ce484222325ULL) + +/** perform a 64 bit Fowler/Noll/Vo FNV-1a hash on a buffer + * @param[in] val value to hash + * @param[in] hval initial value for hash + * @return 64 bit hash + * + * NOTE: To use the recommended 64 bit FNV-1a hash, use MDB_HASH_INIT as the + * hval arg on the first call. + */ +static mdb_hash_t +mdb_hash_val(MDB_val *val, mdb_hash_t hval) +{ + unsigned char *s = (unsigned char *)val->mv_data; /* unsigned string */ + unsigned char *end = s + val->mv_size; + /* + * FNV-1a hash each octet of the string + */ + while (s < end) { + /* xor the bottom with the current octet */ + hval ^= (mdb_hash_t)*s++; + + /* multiply by the 64 bit FNV magic prime mod 2^64 */ + hval += (hval << 1) + (hval << 4) + (hval << 5) + + (hval << 7) + (hval << 8) + (hval << 40); + } + /* return our new hash value */ + return hval; +} + +/** Hash the string and output the encoded hash. + * This uses modified RFC1924 Ascii85 encoding to accommodate systems with + * very short name limits. We don't care about the encoding being reversible, + * we just want to preserve as many bits of the input as possible in a + * small printable string. + * @param[in] str string to hash + * @param[out] encbuf an array of 11 chars to hold the hash + */ +static const char mdb_a85[]= "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_`{|}~"; + +static void ESECT +mdb_pack85(unsigned long l, char *out) +{ + int i; + + for (i=0; i<5; i++) { + *out++ = mdb_a85[l % 85]; + l /= 85; + } +} + +static void ESECT +mdb_hash_enc(MDB_val *val, char *encbuf) +{ + mdb_hash_t h = mdb_hash_val(val, MDB_HASH_INIT); + + mdb_pack85(h, encbuf); + mdb_pack85(h>>32, encbuf+5); + encbuf[10] = '\0'; +} +#endif + +/** Open and/or initialize the lock region for the environment. + * @param[in] env The LMDB environment. + * @param[in] fname Filename + scratch area, from #mdb_fname_init(). + * @param[in] mode The Unix permissions for the file, if we create it. + * @param[in,out] excl In -1, out lock type: -1 none, 0 shared, 1 exclusive + * @return 0 on success, non-zero on failure. + */ +static int ESECT +mdb_env_setup_locks(MDB_env *env, MDB_name *fname, int mode, int *excl) +{ +#ifdef _WIN32 +# define MDB_ERRCODE_ROFS ERROR_WRITE_PROTECT +#else +# define MDB_ERRCODE_ROFS EROFS +#endif + int rc; + off_t size, rsize; + + rc = mdb_fopen(env, fname, MDB_O_LOCKS, mode, &env->me_lfd); + if (rc) { + /* Omit lockfile if read-only env on read-only filesystem */ + if (rc == MDB_ERRCODE_ROFS && (env->me_flags & MDB_RDONLY)) { + return MDB_SUCCESS; + } + goto fail; + } + + if (!(env->me_flags & MDB_NOTLS)) { + rc = pthread_key_create(&env->me_txkey, mdb_env_reader_dest); + if (rc) + goto fail; + env->me_flags |= MDB_ENV_TXKEY; +#ifdef _WIN32 + /* Windows TLS callbacks need help finding their TLS info. */ + if (mdb_tls_nkeys >= MAX_TLS_KEYS) { + rc = MDB_TLS_FULL; + goto fail; + } + mdb_tls_keys[mdb_tls_nkeys++] = env->me_txkey; +#endif + } + + /* Try to get exclusive lock. If we succeed, then + * nobody is using the lock region and we should initialize it. + */ + if ((rc = mdb_env_excl_lock(env, excl))) goto fail; + +#ifdef _WIN32 + size = GetFileSize(env->me_lfd, NULL); +#else + size = lseek(env->me_lfd, 0, SEEK_END); + if (size == -1) goto fail_errno; +#endif + rsize = (env->me_maxreaders-1) * sizeof(MDB_reader) + sizeof(MDB_txninfo); + if (size < rsize && *excl > 0) { +#ifdef _WIN32 + if (SetFilePointer(env->me_lfd, rsize, NULL, FILE_BEGIN) != (DWORD)rsize + || !SetEndOfFile(env->me_lfd)) + goto fail_errno; +#else + if (ftruncate(env->me_lfd, rsize) != 0) goto fail_errno; +#endif + } else { + rsize = size; + size = rsize - sizeof(MDB_txninfo); + env->me_maxreaders = size/sizeof(MDB_reader) + 1; + } + { +#ifdef _WIN32 + HANDLE mh; + mh = CreateFileMapping(env->me_lfd, NULL, PAGE_READWRITE, + 0, 0, NULL); + if (!mh) goto fail_errno; + env->me_txns = MapViewOfFileEx(mh, FILE_MAP_WRITE, 0, 0, rsize, NULL); + CloseHandle(mh); + if (!env->me_txns) goto fail_errno; +#else + void *m = mmap(NULL, rsize, PROT_READ|PROT_WRITE, MAP_SHARED, + env->me_lfd, 0); + if (m == MAP_FAILED) goto fail_errno; + env->me_txns = m; +#endif + } + if (*excl > 0) { +#ifdef _WIN32 + BY_HANDLE_FILE_INFORMATION stbuf; + struct { + DWORD volume; + DWORD nhigh; + DWORD nlow; + } idbuf; + MDB_val val; + char encbuf[11]; + + if (!mdb_sec_inited) { + InitializeSecurityDescriptor(&mdb_null_sd, + SECURITY_DESCRIPTOR_REVISION); + SetSecurityDescriptorDacl(&mdb_null_sd, TRUE, 0, FALSE); + mdb_all_sa.nLength = sizeof(SECURITY_ATTRIBUTES); + mdb_all_sa.bInheritHandle = FALSE; + mdb_all_sa.lpSecurityDescriptor = &mdb_null_sd; + mdb_sec_inited = 1; + } + if (!GetFileInformationByHandle(env->me_lfd, &stbuf)) goto fail_errno; + idbuf.volume = stbuf.dwVolumeSerialNumber; + idbuf.nhigh = stbuf.nFileIndexHigh; + idbuf.nlow = stbuf.nFileIndexLow; + val.mv_data = &idbuf; + val.mv_size = sizeof(idbuf); + mdb_hash_enc(&val, encbuf); + sprintf(env->me_txns->mti_rmname, "Global\\MDBr%s", encbuf); + sprintf(env->me_txns->mti_wmname, "Global\\MDBw%s", encbuf); + env->me_rmutex = CreateMutexA(&mdb_all_sa, FALSE, env->me_txns->mti_rmname); + if (!env->me_rmutex) goto fail_errno; + env->me_wmutex = CreateMutexA(&mdb_all_sa, FALSE, env->me_txns->mti_wmname); + if (!env->me_wmutex) goto fail_errno; +#elif defined(MDB_USE_POSIX_SEM) + struct stat stbuf; + struct { + dev_t dev; + ino_t ino; + } idbuf; + MDB_val val; + char encbuf[11]; + +#if defined(__NetBSD__) +#define MDB_SHORT_SEMNAMES 1 /* limited to 14 chars */ +#endif + if (fstat(env->me_lfd, &stbuf)) goto fail_errno; + idbuf.dev = stbuf.st_dev; + idbuf.ino = stbuf.st_ino; + val.mv_data = &idbuf; + val.mv_size = sizeof(idbuf); + mdb_hash_enc(&val, encbuf); +#ifdef MDB_SHORT_SEMNAMES + encbuf[9] = '\0'; /* drop name from 15 chars to 14 chars */ +#endif + sprintf(env->me_txns->mti_rmname, "/MDBr%s", encbuf); + sprintf(env->me_txns->mti_wmname, "/MDBw%s", encbuf); + /* Clean up after a previous run, if needed: Try to + * remove both semaphores before doing anything else. + */ + sem_unlink(env->me_txns->mti_rmname); + sem_unlink(env->me_txns->mti_wmname); + env->me_rmutex = sem_open(env->me_txns->mti_rmname, + O_CREAT|O_EXCL, mode, 1); + if (env->me_rmutex == SEM_FAILED) goto fail_errno; + env->me_wmutex = sem_open(env->me_txns->mti_wmname, + O_CREAT|O_EXCL, mode, 1); + if (env->me_wmutex == SEM_FAILED) goto fail_errno; +#else /* MDB_USE_POSIX_MUTEX: */ + pthread_mutexattr_t mattr; + + /* Solaris needs this before initing a robust mutex. Otherwise + * it may skip the init and return EBUSY "seems someone already + * inited" or EINVAL "it was inited differently". + */ + memset(env->me_txns->mti_rmutex, 0, sizeof(*env->me_txns->mti_rmutex)); + memset(env->me_txns->mti_wmutex, 0, sizeof(*env->me_txns->mti_wmutex)); + + if ((rc = pthread_mutexattr_init(&mattr))) + goto fail; + + rc = pthread_mutexattr_setpshared(&mattr, PTHREAD_PROCESS_SHARED); +#ifdef MDB_ROBUST_SUPPORTED + if (!rc) rc = pthread_mutexattr_setrobust(&mattr, PTHREAD_MUTEX_ROBUST); +#endif + if (!rc) rc = pthread_mutex_init(env->me_txns->mti_rmutex, &mattr); + if (!rc) rc = pthread_mutex_init(env->me_txns->mti_wmutex, &mattr); + pthread_mutexattr_destroy(&mattr); + if (rc) + goto fail; +#endif /* _WIN32 || MDB_USE_POSIX_SEM */ + + env->me_txns->mti_magic = MDB_MAGIC; + env->me_txns->mti_format = MDB_LOCK_FORMAT; + env->me_txns->mti_txnid = 0; + env->me_txns->mti_numreaders = 0; + + } else { + if (env->me_txns->mti_magic != MDB_MAGIC) { + DPUTS("lock region has invalid magic"); + rc = MDB_INVALID; + goto fail; + } + if (env->me_txns->mti_format != MDB_LOCK_FORMAT) { + DPRINTF(("lock region has format+version 0x%x, expected 0x%x", + env->me_txns->mti_format, MDB_LOCK_FORMAT)); + rc = MDB_VERSION_MISMATCH; + goto fail; + } + rc = ErrCode(); + if (rc && rc != EACCES && rc != EAGAIN) { + goto fail; + } +#ifdef _WIN32 + env->me_rmutex = OpenMutexA(SYNCHRONIZE, FALSE, env->me_txns->mti_rmname); + if (!env->me_rmutex) goto fail_errno; + env->me_wmutex = OpenMutexA(SYNCHRONIZE, FALSE, env->me_txns->mti_wmname); + if (!env->me_wmutex) goto fail_errno; +#elif defined(MDB_USE_POSIX_SEM) + env->me_rmutex = sem_open(env->me_txns->mti_rmname, 0); + if (env->me_rmutex == SEM_FAILED) goto fail_errno; + env->me_wmutex = sem_open(env->me_txns->mti_wmname, 0); + if (env->me_wmutex == SEM_FAILED) goto fail_errno; +#endif + } + return MDB_SUCCESS; + +fail_errno: + rc = ErrCode(); +fail: + return rc; +} + + /** Only a subset of the @ref mdb_env flags can be changed + * at runtime. Changing other flags requires closing the + * environment and re-opening it with the new flags. + */ +#define CHANGEABLE (MDB_NOSYNC|MDB_NOMETASYNC|MDB_MAPASYNC|MDB_NOMEMINIT) +#define CHANGELESS (MDB_FIXEDMAP|MDB_NOSUBDIR|MDB_RDONLY| \ + MDB_WRITEMAP|MDB_NOTLS|MDB_NOLOCK|MDB_NORDAHEAD) + +#if VALID_FLAGS & PERSISTENT_FLAGS & (CHANGEABLE|CHANGELESS) +# error "Persistent DB flags & env flags overlap, but both go in mm_flags" +#endif + +int ESECT +mdb_env_open(MDB_env *env, const char *path, unsigned int flags, mdb_mode_t mode) +{ + int rc, excl = -1; + MDB_name fname; + + if (env->me_fd!=INVALID_HANDLE_VALUE || (flags & ~(CHANGEABLE|CHANGELESS))) + return EINVAL; + + flags |= env->me_flags; + + rc = mdb_fname_init(path, flags, &fname); + if (rc) + return rc; + + if (flags & MDB_RDONLY) { + /* silently ignore WRITEMAP when we're only getting read access */ + flags &= ~MDB_WRITEMAP; + } else { + if (!((env->me_free_pgs = mdb_midl_alloc(MDB_IDL_UM_MAX)) && + (env->me_dirty_list = calloc(MDB_IDL_UM_SIZE, sizeof(MDB_ID2))))) + rc = ENOMEM; + } + env->me_flags = flags |= MDB_ENV_ACTIVE; + if (rc) + goto leave; + + env->me_path = strdup(path); + env->me_dbxs = calloc(env->me_maxdbs, sizeof(MDB_dbx)); + env->me_dbflags = calloc(env->me_maxdbs, sizeof(uint16_t)); + env->me_dbiseqs = calloc(env->me_maxdbs, sizeof(unsigned int)); + if (!(env->me_dbxs && env->me_path && env->me_dbflags && env->me_dbiseqs)) { + rc = ENOMEM; + goto leave; + } + env->me_dbxs[FREE_DBI].md_cmp = mdb_cmp_long; /* aligned MDB_INTEGERKEY */ + + /* For RDONLY, get lockfile after we know datafile exists */ + if (!(flags & (MDB_RDONLY|MDB_NOLOCK))) { + rc = mdb_env_setup_locks(env, &fname, mode, &excl); + if (rc) + goto leave; + } + + rc = mdb_fopen(env, &fname, + (flags & MDB_RDONLY) ? MDB_O_RDONLY : MDB_O_RDWR, + mode, &env->me_fd); + if (rc) + goto leave; + + if ((flags & (MDB_RDONLY|MDB_NOLOCK)) == MDB_RDONLY) { + rc = mdb_env_setup_locks(env, &fname, mode, &excl); + if (rc) + goto leave; + } + + if ((rc = mdb_env_open2(env)) == MDB_SUCCESS) { + if (!(flags & (MDB_RDONLY|MDB_WRITEMAP))) { + /* Synchronous fd for meta writes. Needed even with + * MDB_NOSYNC/MDB_NOMETASYNC, in case these get reset. + */ + rc = mdb_fopen(env, &fname, MDB_O_META, mode, &env->me_mfd); + if (rc) + goto leave; + } + DPRINTF(("opened dbenv %p", (void *) env)); + if (excl > 0) { + rc = mdb_env_share_locks(env, &excl); + if (rc) + goto leave; + } + if (!(flags & MDB_RDONLY)) { + MDB_txn *txn; + int tsize = sizeof(MDB_txn), size = tsize + env->me_maxdbs * + (sizeof(MDB_db)+sizeof(MDB_cursor *)+sizeof(unsigned int)+1); + if ((env->me_pbuf = calloc(1, env->me_psize)) && + (txn = calloc(1, size))) + { + txn->mt_dbs = (MDB_db *)((char *)txn + tsize); + txn->mt_cursors = (MDB_cursor **)(txn->mt_dbs + env->me_maxdbs); + txn->mt_dbiseqs = (unsigned int *)(txn->mt_cursors + env->me_maxdbs); + txn->mt_dbflags = (unsigned char *)(txn->mt_dbiseqs + env->me_maxdbs); + txn->mt_env = env; + txn->mt_dbxs = env->me_dbxs; + txn->mt_flags = MDB_TXN_FINISHED; + env->me_txn0 = txn; + } else { + rc = ENOMEM; + } + } + } + +leave: + if (rc) { + mdb_env_close0(env, excl); + } + mdb_fname_destroy(fname); + return rc; +} + +/** Destroy resources from mdb_env_open(), clear our readers & DBIs */ +static void ESECT +mdb_env_close0(MDB_env *env, int excl) +{ + int i; + + if (!(env->me_flags & MDB_ENV_ACTIVE)) + return; + + /* Doing this here since me_dbxs may not exist during mdb_env_close */ + if (env->me_dbxs) { + for (i = env->me_maxdbs; --i >= CORE_DBS; ) + free(env->me_dbxs[i].md_name.mv_data); + free(env->me_dbxs); + } + + free(env->me_pbuf); + free(env->me_dbiseqs); + free(env->me_dbflags); + free(env->me_path); + free(env->me_dirty_list); + free(env->me_txn0); + mdb_midl_free(env->me_free_pgs); + + if (env->me_flags & MDB_ENV_TXKEY) { + pthread_key_delete(env->me_txkey); +#ifdef _WIN32 + /* Delete our key from the global list */ + for (i=0; ime_txkey) { + mdb_tls_keys[i] = mdb_tls_keys[mdb_tls_nkeys-1]; + mdb_tls_nkeys--; + break; + } +#endif + } + + if (env->me_map) { + munmap(env->me_map, env->me_mapsize); + } + if (env->me_mfd != INVALID_HANDLE_VALUE) + (void) close(env->me_mfd); + if (env->me_fd != INVALID_HANDLE_VALUE) + (void) close(env->me_fd); + if (env->me_txns) { + MDB_PID_T pid = getpid(); + /* Clearing readers is done in this function because + * me_txkey with its destructor must be disabled first. + * + * We skip the the reader mutex, so we touch only + * data owned by this process (me_close_readers and + * our readers), and clear each reader atomically. + */ + for (i = env->me_close_readers; --i >= 0; ) + if (env->me_txns->mti_readers[i].mr_pid == pid) + env->me_txns->mti_readers[i].mr_pid = 0; +#ifdef _WIN32 + if (env->me_rmutex) { + CloseHandle(env->me_rmutex); + if (env->me_wmutex) CloseHandle(env->me_wmutex); + } + /* Windows automatically destroys the mutexes when + * the last handle closes. + */ +#elif defined(MDB_USE_POSIX_SEM) + if (env->me_rmutex != SEM_FAILED) { + sem_close(env->me_rmutex); + if (env->me_wmutex != SEM_FAILED) + sem_close(env->me_wmutex); + /* If we have the filelock: If we are the + * only remaining user, clean up semaphores. + */ + if (excl == 0) + mdb_env_excl_lock(env, &excl); + if (excl > 0) { + sem_unlink(env->me_txns->mti_rmname); + sem_unlink(env->me_txns->mti_wmname); + } + } +#elif defined(MDB_ROBUST_SUPPORTED) + /* If we have the filelock: If we are the + * only remaining user, clean up robust + * mutexes. + */ + if (excl == 0) + mdb_env_excl_lock(env, &excl); + if (excl > 0) { + pthread_mutex_destroy(env->me_txns->mti_rmutex); + pthread_mutex_destroy(env->me_txns->mti_wmutex); + } +#endif + munmap((void *)env->me_txns, (env->me_maxreaders-1)*sizeof(MDB_reader)+sizeof(MDB_txninfo)); + } + if (env->me_lfd != INVALID_HANDLE_VALUE) { +#ifdef _WIN32 + if (excl >= 0) { + /* Unlock the lockfile. Windows would have unlocked it + * after closing anyway, but not necessarily at once. + */ + UnlockFile(env->me_lfd, 0, 0, 1, 0); + } +#endif + (void) close(env->me_lfd); + } + + env->me_flags &= ~(MDB_ENV_ACTIVE|MDB_ENV_TXKEY); +} + +void ESECT +mdb_env_close(MDB_env *env) +{ + MDB_page *dp; + + if (env == NULL) + return; + + VGMEMP_DESTROY(env); + while ((dp = env->me_dpages) != NULL) { + VGMEMP_DEFINED(&dp->mp_next, sizeof(dp->mp_next)); + env->me_dpages = dp->mp_next; + free(dp); + } + + mdb_env_close0(env, 0); + free(env); +} + +/** Compare two items pointing at aligned size_t's */ +static int +mdb_cmp_long(const MDB_val *a, const MDB_val *b) +{ + return (*(size_t *)a->mv_data < *(size_t *)b->mv_data) ? -1 : + *(size_t *)a->mv_data > *(size_t *)b->mv_data; +} + +/** Compare two items pointing at aligned unsigned int's. + * + * This is also set as #MDB_INTEGERDUP|#MDB_DUPFIXED's #MDB_dbx.%md_dcmp, + * but #mdb_cmp_clong() is called instead if the data type is size_t. + */ +static int +mdb_cmp_int(const MDB_val *a, const MDB_val *b) +{ + return (*(unsigned int *)a->mv_data < *(unsigned int *)b->mv_data) ? -1 : + *(unsigned int *)a->mv_data > *(unsigned int *)b->mv_data; +} + +/** Compare two items pointing at unsigned ints of unknown alignment. + * Nodes and keys are guaranteed to be 2-byte aligned. + */ +static int +mdb_cmp_cint(const MDB_val *a, const MDB_val *b) +{ +#if BYTE_ORDER == LITTLE_ENDIAN + unsigned short *u, *c; + int x; + + u = (unsigned short *) ((char *) a->mv_data + a->mv_size); + c = (unsigned short *) ((char *) b->mv_data + a->mv_size); + do { + x = *--u - *--c; + } while(!x && u > (unsigned short *)a->mv_data); + return x; +#else + unsigned short *u, *c, *end; + int x; + + end = (unsigned short *) ((char *) a->mv_data + a->mv_size); + u = (unsigned short *)a->mv_data; + c = (unsigned short *)b->mv_data; + do { + x = *u++ - *c++; + } while(!x && u < end); + return x; +#endif +} + +/** Compare two items lexically */ +static int +mdb_cmp_memn(const MDB_val *a, const MDB_val *b) +{ + int diff; + ssize_t len_diff; + unsigned int len; + + len = a->mv_size; + len_diff = (ssize_t) a->mv_size - (ssize_t) b->mv_size; + if (len_diff > 0) { + len = b->mv_size; + len_diff = 1; + } + + diff = memcmp(a->mv_data, b->mv_data, len); + return diff ? diff : len_diff<0 ? -1 : len_diff; +} + +/** Compare two items in reverse byte order */ +static int +mdb_cmp_memnr(const MDB_val *a, const MDB_val *b) +{ + const unsigned char *p1, *p2, *p1_lim; + ssize_t len_diff; + int diff; + + p1_lim = (const unsigned char *)a->mv_data; + p1 = (const unsigned char *)a->mv_data + a->mv_size; + p2 = (const unsigned char *)b->mv_data + b->mv_size; + + len_diff = (ssize_t) a->mv_size - (ssize_t) b->mv_size; + if (len_diff > 0) { + p1_lim += len_diff; + len_diff = 1; + } + + while (p1 > p1_lim) { + diff = *--p1 - *--p2; + if (diff) + return diff; + } + return len_diff<0 ? -1 : len_diff; +} + +/** Search for key within a page, using binary search. + * Returns the smallest entry larger or equal to the key. + * If exactp is non-null, stores whether the found entry was an exact match + * in *exactp (1 or 0). + * Updates the cursor index with the index of the found entry. + * If no entry larger or equal to the key is found, returns NULL. + */ +static MDB_node * +mdb_node_search(MDB_cursor *mc, MDB_val *key, int *exactp) +{ + unsigned int i = 0, nkeys; + int low, high; + int rc = 0; + MDB_page *mp = mc->mc_pg[mc->mc_top]; + MDB_node *node = NULL; + MDB_val nodekey; + MDB_cmp_func *cmp; + DKBUF; + + nkeys = NUMKEYS(mp); + + DPRINTF(("searching %u keys in %s %spage %"Z"u", + nkeys, IS_LEAF(mp) ? "leaf" : "branch", IS_SUBP(mp) ? "sub-" : "", + mdb_dbg_pgno(mp))); + + low = IS_LEAF(mp) ? 0 : 1; + high = nkeys - 1; + cmp = mc->mc_dbx->md_cmp; + + /* Branch pages have no data, so if using integer keys, + * alignment is guaranteed. Use faster mdb_cmp_int. + */ + if (cmp == mdb_cmp_cint && IS_BRANCH(mp)) { + if (NODEPTR(mp, 1)->mn_ksize == sizeof(size_t)) + cmp = mdb_cmp_long; + else + cmp = mdb_cmp_int; + } + + if (IS_LEAF2(mp)) { + nodekey.mv_size = mc->mc_db->md_pad; + node = NODEPTR(mp, 0); /* fake */ + while (low <= high) { + i = (low + high) >> 1; + nodekey.mv_data = LEAF2KEY(mp, i, nodekey.mv_size); + rc = cmp(key, &nodekey); + DPRINTF(("found leaf index %u [%s], rc = %i", + i, DKEY(&nodekey), rc)); + if (rc == 0) + break; + if (rc > 0) + low = i + 1; + else + high = i - 1; + } + } else { + while (low <= high) { + i = (low + high) >> 1; + + node = NODEPTR(mp, i); + nodekey.mv_size = NODEKSZ(node); + nodekey.mv_data = NODEKEY(node); + + rc = cmp(key, &nodekey); +#if MDB_DEBUG + if (IS_LEAF(mp)) + DPRINTF(("found leaf index %u [%s], rc = %i", + i, DKEY(&nodekey), rc)); + else + DPRINTF(("found branch index %u [%s -> %"Z"u], rc = %i", + i, DKEY(&nodekey), NODEPGNO(node), rc)); +#endif + if (rc == 0) + break; + if (rc > 0) + low = i + 1; + else + high = i - 1; + } + } + + if (rc > 0) { /* Found entry is less than the key. */ + i++; /* Skip to get the smallest entry larger than key. */ + if (!IS_LEAF2(mp)) + node = NODEPTR(mp, i); + } + if (exactp) + *exactp = (rc == 0 && nkeys > 0); + /* store the key index */ + mc->mc_ki[mc->mc_top] = i; + if (i >= nkeys) + /* There is no entry larger or equal to the key. */ + return NULL; + + /* nodeptr is fake for LEAF2 */ + return node; +} + +#if 0 +static void +mdb_cursor_adjust(MDB_cursor *mc, func) +{ + MDB_cursor *m2; + + for (m2 = mc->mc_txn->mt_cursors[mc->mc_dbi]; m2; m2=m2->mc_next) { + if (m2->mc_pg[m2->mc_top] == mc->mc_pg[mc->mc_top]) { + func(mc, m2); + } + } +} +#endif + +/** Pop a page off the top of the cursor's stack. */ +static void +mdb_cursor_pop(MDB_cursor *mc) +{ + if (mc->mc_snum) { + DPRINTF(("popping page %"Z"u off db %d cursor %p", + mc->mc_pg[mc->mc_top]->mp_pgno, DDBI(mc), (void *) mc)); + + mc->mc_snum--; + if (mc->mc_snum) { + mc->mc_top--; + } else { + mc->mc_flags &= ~C_INITIALIZED; + } + } +} + +/** Push a page onto the top of the cursor's stack. + * Set #MDB_TXN_ERROR on failure. + */ +static int +mdb_cursor_push(MDB_cursor *mc, MDB_page *mp) +{ + DPRINTF(("pushing page %"Z"u on db %d cursor %p", mp->mp_pgno, + DDBI(mc), (void *) mc)); + + if (mc->mc_snum >= CURSOR_STACK) { + mc->mc_txn->mt_flags |= MDB_TXN_ERROR; + return MDB_CURSOR_FULL; + } + + mc->mc_top = mc->mc_snum++; + mc->mc_pg[mc->mc_top] = mp; + mc->mc_ki[mc->mc_top] = 0; + + return MDB_SUCCESS; +} + +/** Find the address of the page corresponding to a given page number. + * Set #MDB_TXN_ERROR on failure. + * @param[in] mc the cursor accessing the page. + * @param[in] pgno the page number for the page to retrieve. + * @param[out] ret address of a pointer where the page's address will be stored. + * @param[out] lvl dirty_list inheritance level of found page. 1=current txn, 0=mapped page. + * @return 0 on success, non-zero on failure. + */ +static int +mdb_page_get(MDB_cursor *mc, pgno_t pgno, MDB_page **ret, int *lvl) +{ + MDB_txn *txn = mc->mc_txn; + MDB_env *env = txn->mt_env; + MDB_page *p = NULL; + int level; + + if (! (txn->mt_flags & (MDB_TXN_RDONLY|MDB_TXN_WRITEMAP))) { + MDB_txn *tx2 = txn; + level = 1; + do { + MDB_ID2L dl = tx2->mt_u.dirty_list; + unsigned x; + /* Spilled pages were dirtied in this txn and flushed + * because the dirty list got full. Bring this page + * back in from the map (but don't unspill it here, + * leave that unless page_touch happens again). + */ + if (tx2->mt_spill_pgs) { + MDB_ID pn = pgno << 1; + x = mdb_midl_search(tx2->mt_spill_pgs, pn); + if (x <= tx2->mt_spill_pgs[0] && tx2->mt_spill_pgs[x] == pn) { + p = (MDB_page *)(env->me_map + env->me_psize * pgno); + goto done; + } + } + if (dl[0].mid) { + unsigned x = mdb_mid2l_search(dl, pgno); + if (x <= dl[0].mid && dl[x].mid == pgno) { + p = dl[x].mptr; + goto done; + } + } + level++; + } while ((tx2 = tx2->mt_parent) != NULL); + } + + if (pgno < txn->mt_next_pgno) { + level = 0; + p = (MDB_page *)(env->me_map + env->me_psize * pgno); + } else { + DPRINTF(("page %"Z"u not found", pgno)); + txn->mt_flags |= MDB_TXN_ERROR; + return MDB_PAGE_NOTFOUND; + } + +done: + *ret = p; + if (lvl) + *lvl = level; + return MDB_SUCCESS; +} + +/** Finish #mdb_page_search() / #mdb_page_search_lowest(). + * The cursor is at the root page, set up the rest of it. + */ +static int +mdb_page_search_root(MDB_cursor *mc, MDB_val *key, int flags) +{ + MDB_page *mp = mc->mc_pg[mc->mc_top]; + int rc; + DKBUF; + + while (IS_BRANCH(mp)) { + MDB_node *node; + indx_t i; + + DPRINTF(("branch page %"Z"u has %u keys", mp->mp_pgno, NUMKEYS(mp))); + /* Don't assert on branch pages in the FreeDB. We can get here + * while in the process of rebalancing a FreeDB branch page; we must + * let that proceed. ITS#8336 + */ + mdb_cassert(mc, !mc->mc_dbi || NUMKEYS(mp) > 1); + DPRINTF(("found index 0 to page %"Z"u", NODEPGNO(NODEPTR(mp, 0)))); + + if (flags & (MDB_PS_FIRST|MDB_PS_LAST)) { + i = 0; + if (flags & MDB_PS_LAST) { + i = NUMKEYS(mp) - 1; + /* if already init'd, see if we're already in right place */ + if (mc->mc_flags & C_INITIALIZED) { + if (mc->mc_ki[mc->mc_top] == i) { + mc->mc_top = mc->mc_snum++; + mp = mc->mc_pg[mc->mc_top]; + goto ready; + } + } + } + } else { + int exact; + node = mdb_node_search(mc, key, &exact); + if (node == NULL) + i = NUMKEYS(mp) - 1; + else { + i = mc->mc_ki[mc->mc_top]; + if (!exact) { + mdb_cassert(mc, i > 0); + i--; + } + } + DPRINTF(("following index %u for key [%s]", i, DKEY(key))); + } + + mdb_cassert(mc, i < NUMKEYS(mp)); + node = NODEPTR(mp, i); + + if ((rc = mdb_page_get(mc, NODEPGNO(node), &mp, NULL)) != 0) + return rc; + + mc->mc_ki[mc->mc_top] = i; + if ((rc = mdb_cursor_push(mc, mp))) + return rc; + +ready: + if (flags & MDB_PS_MODIFY) { + if ((rc = mdb_page_touch(mc)) != 0) + return rc; + mp = mc->mc_pg[mc->mc_top]; + } + } + + if (!IS_LEAF(mp)) { + DPRINTF(("internal error, index points to a %02X page!?", + mp->mp_flags)); + mc->mc_txn->mt_flags |= MDB_TXN_ERROR; + return MDB_CORRUPTED; + } + + DPRINTF(("found leaf page %"Z"u for key [%s]", mp->mp_pgno, + key ? DKEY(key) : "null")); + mc->mc_flags |= C_INITIALIZED; + mc->mc_flags &= ~C_EOF; + + return MDB_SUCCESS; +} + +/** Search for the lowest key under the current branch page. + * This just bypasses a NUMKEYS check in the current page + * before calling mdb_page_search_root(), because the callers + * are all in situations where the current page is known to + * be underfilled. + */ +static int +mdb_page_search_lowest(MDB_cursor *mc) +{ + MDB_page *mp = mc->mc_pg[mc->mc_top]; + MDB_node *node = NODEPTR(mp, 0); + int rc; + + if ((rc = mdb_page_get(mc, NODEPGNO(node), &mp, NULL)) != 0) + return rc; + + mc->mc_ki[mc->mc_top] = 0; + if ((rc = mdb_cursor_push(mc, mp))) + return rc; + return mdb_page_search_root(mc, NULL, MDB_PS_FIRST); +} + +/** Search for the page a given key should be in. + * Push it and its parent pages on the cursor stack. + * @param[in,out] mc the cursor for this operation. + * @param[in] key the key to search for, or NULL for first/last page. + * @param[in] flags If MDB_PS_MODIFY is set, visited pages in the DB + * are touched (updated with new page numbers). + * If MDB_PS_FIRST or MDB_PS_LAST is set, find first or last leaf. + * This is used by #mdb_cursor_first() and #mdb_cursor_last(). + * If MDB_PS_ROOTONLY set, just fetch root node, no further lookups. + * @return 0 on success, non-zero on failure. + */ +static int +mdb_page_search(MDB_cursor *mc, MDB_val *key, int flags) +{ + int rc; + pgno_t root; + + /* Make sure the txn is still viable, then find the root from + * the txn's db table and set it as the root of the cursor's stack. + */ + if (mc->mc_txn->mt_flags & MDB_TXN_BLOCKED) { + DPUTS("transaction may not be used now"); + return MDB_BAD_TXN; + } else { + /* Make sure we're using an up-to-date root */ + if (*mc->mc_dbflag & DB_STALE) { + MDB_cursor mc2; + if (TXN_DBI_CHANGED(mc->mc_txn, mc->mc_dbi)) + return MDB_BAD_DBI; + mdb_cursor_init(&mc2, mc->mc_txn, MAIN_DBI, NULL); + rc = mdb_page_search(&mc2, &mc->mc_dbx->md_name, 0); + if (rc) + return rc; + { + MDB_val data; + int exact = 0; + uint16_t flags; + MDB_node *leaf = mdb_node_search(&mc2, + &mc->mc_dbx->md_name, &exact); + if (!exact) + return MDB_NOTFOUND; + if ((leaf->mn_flags & (F_DUPDATA|F_SUBDATA)) != F_SUBDATA) + return MDB_INCOMPATIBLE; /* not a named DB */ + rc = mdb_node_read(&mc2, leaf, &data); + if (rc) + return rc; + memcpy(&flags, ((char *) data.mv_data + offsetof(MDB_db, md_flags)), + sizeof(uint16_t)); + /* The txn may not know this DBI, or another process may + * have dropped and recreated the DB with other flags. + */ + if ((mc->mc_db->md_flags & PERSISTENT_FLAGS) != flags) + return MDB_INCOMPATIBLE; + memcpy(mc->mc_db, data.mv_data, sizeof(MDB_db)); + } + *mc->mc_dbflag &= ~DB_STALE; + } + root = mc->mc_db->md_root; + + if (root == P_INVALID) { /* Tree is empty. */ + DPUTS("tree is empty"); + return MDB_NOTFOUND; + } + } + + mdb_cassert(mc, root > 1); + if (!mc->mc_pg[0] || mc->mc_pg[0]->mp_pgno != root) + if ((rc = mdb_page_get(mc, root, &mc->mc_pg[0], NULL)) != 0) + return rc; + + mc->mc_snum = 1; + mc->mc_top = 0; + + DPRINTF(("db %d root page %"Z"u has flags 0x%X", + DDBI(mc), root, mc->mc_pg[0]->mp_flags)); + + if (flags & MDB_PS_MODIFY) { + if ((rc = mdb_page_touch(mc))) + return rc; + } + + if (flags & MDB_PS_ROOTONLY) + return MDB_SUCCESS; + + return mdb_page_search_root(mc, key, flags); +} + +static int +mdb_ovpage_free(MDB_cursor *mc, MDB_page *mp) +{ + MDB_txn *txn = mc->mc_txn; + pgno_t pg = mp->mp_pgno; + unsigned x = 0, ovpages = mp->mp_pages; + MDB_env *env = txn->mt_env; + MDB_IDL sl = txn->mt_spill_pgs; + MDB_ID pn = pg << 1; + int rc; + + DPRINTF(("free ov page %"Z"u (%d)", pg, ovpages)); + /* If the page is dirty or on the spill list we just acquired it, + * so we should give it back to our current free list, if any. + * Otherwise put it onto the list of pages we freed in this txn. + * + * Won't create me_pghead: me_pglast must be inited along with it. + * Unsupported in nested txns: They would need to hide the page + * range in ancestor txns' dirty and spilled lists. + */ + if (env->me_pghead && + !txn->mt_parent && + ((mp->mp_flags & P_DIRTY) || + (sl && (x = mdb_midl_search(sl, pn)) <= sl[0] && sl[x] == pn))) + { + unsigned i, j; + pgno_t *mop; + MDB_ID2 *dl, ix, iy; + rc = mdb_midl_need(&env->me_pghead, ovpages); + if (rc) + return rc; + if (!(mp->mp_flags & P_DIRTY)) { + /* This page is no longer spilled */ + if (x == sl[0]) + sl[0]--; + else + sl[x] |= 1; + goto release; + } + /* Remove from dirty list */ + dl = txn->mt_u.dirty_list; + x = dl[0].mid--; + for (ix = dl[x]; ix.mptr != mp; ix = iy) { + if (x > 1) { + x--; + iy = dl[x]; + dl[x] = ix; + } else { + mdb_cassert(mc, x > 1); + j = ++(dl[0].mid); + dl[j] = ix; /* Unsorted. OK when MDB_TXN_ERROR. */ + txn->mt_flags |= MDB_TXN_ERROR; + return MDB_CORRUPTED; + } + } + txn->mt_dirty_room++; + if (!(env->me_flags & MDB_WRITEMAP)) + mdb_dpage_free(env, mp); +release: + /* Insert in me_pghead */ + mop = env->me_pghead; + j = mop[0] + ovpages; + for (i = mop[0]; i && mop[i] < pg; i--) + mop[j--] = mop[i]; + while (j>i) + mop[j--] = pg++; + mop[0] += ovpages; + } else { + rc = mdb_midl_append_range(&txn->mt_free_pgs, pg, ovpages); + if (rc) + return rc; + } + mc->mc_db->md_overflow_pages -= ovpages; + return 0; +} + +/** Return the data associated with a given node. + * @param[in] mc The cursor for this operation. + * @param[in] leaf The node being read. + * @param[out] data Updated to point to the node's data. + * @return 0 on success, non-zero on failure. + */ +static int +mdb_node_read(MDB_cursor *mc, MDB_node *leaf, MDB_val *data) +{ + MDB_page *omp; /* overflow page */ + pgno_t pgno; + int rc; + + if (!F_ISSET(leaf->mn_flags, F_BIGDATA)) { + data->mv_size = NODEDSZ(leaf); + data->mv_data = NODEDATA(leaf); + return MDB_SUCCESS; + } + + /* Read overflow data. + */ + data->mv_size = NODEDSZ(leaf); + memcpy(&pgno, NODEDATA(leaf), sizeof(pgno)); + if ((rc = mdb_page_get(mc, pgno, &omp, NULL)) != 0) { + DPRINTF(("read overflow page %"Z"u failed", pgno)); + return rc; + } + data->mv_data = METADATA(omp); + + return MDB_SUCCESS; +} + +int +mdb_get(MDB_txn *txn, MDB_dbi dbi, + MDB_val *key, MDB_val *data) +{ + MDB_cursor mc; + MDB_xcursor mx; + int exact = 0; + DKBUF; + + DPRINTF(("===> get db %u key [%s]", dbi, DKEY(key))); + + if (!key || !data || !TXN_DBI_EXIST(txn, dbi, DB_USRVALID)) + return EINVAL; + + if (txn->mt_flags & MDB_TXN_BLOCKED) + return MDB_BAD_TXN; + + mdb_cursor_init(&mc, txn, dbi, &mx); + return mdb_cursor_set(&mc, key, data, MDB_SET, &exact); +} + +/** Find a sibling for a page. + * Replaces the page at the top of the cursor's stack with the + * specified sibling, if one exists. + * @param[in] mc The cursor for this operation. + * @param[in] move_right Non-zero if the right sibling is requested, + * otherwise the left sibling. + * @return 0 on success, non-zero on failure. + */ +static int +mdb_cursor_sibling(MDB_cursor *mc, int move_right) +{ + int rc; + MDB_node *indx; + MDB_page *mp; + + if (mc->mc_snum < 2) { + return MDB_NOTFOUND; /* root has no siblings */ + } + + mdb_cursor_pop(mc); + DPRINTF(("parent page is page %"Z"u, index %u", + mc->mc_pg[mc->mc_top]->mp_pgno, mc->mc_ki[mc->mc_top])); + + if (move_right ? (mc->mc_ki[mc->mc_top] + 1u >= NUMKEYS(mc->mc_pg[mc->mc_top])) + : (mc->mc_ki[mc->mc_top] == 0)) { + DPRINTF(("no more keys left, moving to %s sibling", + move_right ? "right" : "left")); + if ((rc = mdb_cursor_sibling(mc, move_right)) != MDB_SUCCESS) { + /* undo cursor_pop before returning */ + mc->mc_top++; + mc->mc_snum++; + return rc; + } + } else { + if (move_right) + mc->mc_ki[mc->mc_top]++; + else + mc->mc_ki[mc->mc_top]--; + DPRINTF(("just moving to %s index key %u", + move_right ? "right" : "left", mc->mc_ki[mc->mc_top])); + } + mdb_cassert(mc, IS_BRANCH(mc->mc_pg[mc->mc_top])); + + indx = NODEPTR(mc->mc_pg[mc->mc_top], mc->mc_ki[mc->mc_top]); + if ((rc = mdb_page_get(mc, NODEPGNO(indx), &mp, NULL)) != 0) { + /* mc will be inconsistent if caller does mc_snum++ as above */ + mc->mc_flags &= ~(C_INITIALIZED|C_EOF); + return rc; + } + + mdb_cursor_push(mc, mp); + if (!move_right) + mc->mc_ki[mc->mc_top] = NUMKEYS(mp)-1; + + return MDB_SUCCESS; +} + +/** Move the cursor to the next data item. */ +static int +mdb_cursor_next(MDB_cursor *mc, MDB_val *key, MDB_val *data, MDB_cursor_op op) +{ + MDB_page *mp; + MDB_node *leaf; + int rc; + + if ((mc->mc_flags & C_DEL && op == MDB_NEXT_DUP)) + return MDB_NOTFOUND; + + if (!(mc->mc_flags & C_INITIALIZED)) + return mdb_cursor_first(mc, key, data); + + mp = mc->mc_pg[mc->mc_top]; + + if (mc->mc_flags & C_EOF) { + if (mc->mc_ki[mc->mc_top] >= NUMKEYS(mp)-1) + return MDB_NOTFOUND; + mc->mc_flags ^= C_EOF; + } + + if (mc->mc_db->md_flags & MDB_DUPSORT) { + leaf = NODEPTR(mp, mc->mc_ki[mc->mc_top]); + if (F_ISSET(leaf->mn_flags, F_DUPDATA)) { + if (op == MDB_NEXT || op == MDB_NEXT_DUP) { + rc = mdb_cursor_next(&mc->mc_xcursor->mx_cursor, data, NULL, MDB_NEXT); + if (op != MDB_NEXT || rc != MDB_NOTFOUND) { + if (rc == MDB_SUCCESS) + MDB_GET_KEY(leaf, key); + return rc; + } + } + } else { + mc->mc_xcursor->mx_cursor.mc_flags &= ~(C_INITIALIZED|C_EOF); + if (op == MDB_NEXT_DUP) + return MDB_NOTFOUND; + } + } + + DPRINTF(("cursor_next: top page is %"Z"u in cursor %p", + mdb_dbg_pgno(mp), (void *) mc)); + if (mc->mc_flags & C_DEL) { + mc->mc_flags ^= C_DEL; + goto skip; + } + + if (mc->mc_ki[mc->mc_top] + 1u >= NUMKEYS(mp)) { + DPUTS("=====> move to next sibling page"); + if ((rc = mdb_cursor_sibling(mc, 1)) != MDB_SUCCESS) { + mc->mc_flags |= C_EOF; + return rc; + } + mp = mc->mc_pg[mc->mc_top]; + DPRINTF(("next page is %"Z"u, key index %u", mp->mp_pgno, mc->mc_ki[mc->mc_top])); + } else + mc->mc_ki[mc->mc_top]++; + +skip: + DPRINTF(("==> cursor points to page %"Z"u with %u keys, key index %u", + mdb_dbg_pgno(mp), NUMKEYS(mp), mc->mc_ki[mc->mc_top])); + + if (IS_LEAF2(mp)) { + key->mv_size = mc->mc_db->md_pad; + key->mv_data = LEAF2KEY(mp, mc->mc_ki[mc->mc_top], key->mv_size); + return MDB_SUCCESS; + } + + mdb_cassert(mc, IS_LEAF(mp)); + leaf = NODEPTR(mp, mc->mc_ki[mc->mc_top]); + + if (F_ISSET(leaf->mn_flags, F_DUPDATA)) { + mdb_xcursor_init1(mc, leaf); + rc = mdb_cursor_first(&mc->mc_xcursor->mx_cursor, data, NULL); + if (rc != MDB_SUCCESS) + return rc; + } else if (data) { + if ((rc = mdb_node_read(mc, leaf, data)) != MDB_SUCCESS) + return rc; + } + + MDB_GET_KEY(leaf, key); + return MDB_SUCCESS; +} + +/** Move the cursor to the previous data item. */ +static int +mdb_cursor_prev(MDB_cursor *mc, MDB_val *key, MDB_val *data, MDB_cursor_op op) +{ + MDB_page *mp; + MDB_node *leaf; + int rc; + + if (!(mc->mc_flags & C_INITIALIZED)) { + rc = mdb_cursor_last(mc, key, data); + if (rc) + return rc; + mc->mc_ki[mc->mc_top]++; + } + + mp = mc->mc_pg[mc->mc_top]; + + if ((mc->mc_db->md_flags & MDB_DUPSORT) && + mc->mc_ki[mc->mc_top] < NUMKEYS(mp)) { + leaf = NODEPTR(mp, mc->mc_ki[mc->mc_top]); + if (F_ISSET(leaf->mn_flags, F_DUPDATA)) { + if (op == MDB_PREV || op == MDB_PREV_DUP) { + rc = mdb_cursor_prev(&mc->mc_xcursor->mx_cursor, data, NULL, MDB_PREV); + if (op != MDB_PREV || rc != MDB_NOTFOUND) { + if (rc == MDB_SUCCESS) { + MDB_GET_KEY(leaf, key); + mc->mc_flags &= ~C_EOF; + } + return rc; + } + } + } else { + mc->mc_xcursor->mx_cursor.mc_flags &= ~(C_INITIALIZED|C_EOF); + if (op == MDB_PREV_DUP) + return MDB_NOTFOUND; + } + } + + DPRINTF(("cursor_prev: top page is %"Z"u in cursor %p", + mdb_dbg_pgno(mp), (void *) mc)); + + mc->mc_flags &= ~(C_EOF|C_DEL); + + if (mc->mc_ki[mc->mc_top] == 0) { + DPUTS("=====> move to prev sibling page"); + if ((rc = mdb_cursor_sibling(mc, 0)) != MDB_SUCCESS) { + return rc; + } + mp = mc->mc_pg[mc->mc_top]; + mc->mc_ki[mc->mc_top] = NUMKEYS(mp) - 1; + DPRINTF(("prev page is %"Z"u, key index %u", mp->mp_pgno, mc->mc_ki[mc->mc_top])); + } else + mc->mc_ki[mc->mc_top]--; + + DPRINTF(("==> cursor points to page %"Z"u with %u keys, key index %u", + mdb_dbg_pgno(mp), NUMKEYS(mp), mc->mc_ki[mc->mc_top])); + + if (!IS_LEAF(mp)) + return MDB_CORRUPTED; + + if (IS_LEAF2(mp)) { + key->mv_size = mc->mc_db->md_pad; + key->mv_data = LEAF2KEY(mp, mc->mc_ki[mc->mc_top], key->mv_size); + return MDB_SUCCESS; + } + + leaf = NODEPTR(mp, mc->mc_ki[mc->mc_top]); + + if (F_ISSET(leaf->mn_flags, F_DUPDATA)) { + mdb_xcursor_init1(mc, leaf); + rc = mdb_cursor_last(&mc->mc_xcursor->mx_cursor, data, NULL); + if (rc != MDB_SUCCESS) + return rc; + } else if (data) { + if ((rc = mdb_node_read(mc, leaf, data)) != MDB_SUCCESS) + return rc; + } + + MDB_GET_KEY(leaf, key); + return MDB_SUCCESS; +} + +/** Set the cursor on a specific data item. */ +static int +mdb_cursor_set(MDB_cursor *mc, MDB_val *key, MDB_val *data, + MDB_cursor_op op, int *exactp) +{ + int rc; + MDB_page *mp; + MDB_node *leaf = NULL; + DKBUF; + + if (key->mv_size == 0) + return MDB_BAD_VALSIZE; + + if (mc->mc_xcursor) + mc->mc_xcursor->mx_cursor.mc_flags &= ~(C_INITIALIZED|C_EOF); + + /* See if we're already on the right page */ + if (mc->mc_flags & C_INITIALIZED) { + MDB_val nodekey; + + mp = mc->mc_pg[mc->mc_top]; + if (!NUMKEYS(mp)) { + mc->mc_ki[mc->mc_top] = 0; + return MDB_NOTFOUND; + } + if (mp->mp_flags & P_LEAF2) { + nodekey.mv_size = mc->mc_db->md_pad; + nodekey.mv_data = LEAF2KEY(mp, 0, nodekey.mv_size); + } else { + leaf = NODEPTR(mp, 0); + MDB_GET_KEY2(leaf, nodekey); + } + rc = mc->mc_dbx->md_cmp(key, &nodekey); + if (rc == 0) { + /* Probably happens rarely, but first node on the page + * was the one we wanted. + */ + mc->mc_ki[mc->mc_top] = 0; + if (exactp) + *exactp = 1; + goto set1; + } + if (rc > 0) { + unsigned int i; + unsigned int nkeys = NUMKEYS(mp); + if (nkeys > 1) { + if (mp->mp_flags & P_LEAF2) { + nodekey.mv_data = LEAF2KEY(mp, + nkeys-1, nodekey.mv_size); + } else { + leaf = NODEPTR(mp, nkeys-1); + MDB_GET_KEY2(leaf, nodekey); + } + rc = mc->mc_dbx->md_cmp(key, &nodekey); + if (rc == 0) { + /* last node was the one we wanted */ + mc->mc_ki[mc->mc_top] = nkeys-1; + if (exactp) + *exactp = 1; + goto set1; + } + if (rc < 0) { + if (mc->mc_ki[mc->mc_top] < NUMKEYS(mp)) { + /* This is definitely the right page, skip search_page */ + if (mp->mp_flags & P_LEAF2) { + nodekey.mv_data = LEAF2KEY(mp, + mc->mc_ki[mc->mc_top], nodekey.mv_size); + } else { + leaf = NODEPTR(mp, mc->mc_ki[mc->mc_top]); + MDB_GET_KEY2(leaf, nodekey); + } + rc = mc->mc_dbx->md_cmp(key, &nodekey); + if (rc == 0) { + /* current node was the one we wanted */ + if (exactp) + *exactp = 1; + goto set1; + } + } + rc = 0; + mc->mc_flags &= ~C_EOF; + goto set2; + } + } + /* If any parents have right-sibs, search. + * Otherwise, there's nothing further. + */ + for (i=0; imc_top; i++) + if (mc->mc_ki[i] < + NUMKEYS(mc->mc_pg[i])-1) + break; + if (i == mc->mc_top) { + /* There are no other pages */ + mc->mc_ki[mc->mc_top] = nkeys; + return MDB_NOTFOUND; + } + } + if (!mc->mc_top) { + /* There are no other pages */ + mc->mc_ki[mc->mc_top] = 0; + if (op == MDB_SET_RANGE && !exactp) { + rc = 0; + goto set1; + } else + return MDB_NOTFOUND; + } + } else { + mc->mc_pg[0] = 0; + } + + rc = mdb_page_search(mc, key, 0); + if (rc != MDB_SUCCESS) + return rc; + + mp = mc->mc_pg[mc->mc_top]; + mdb_cassert(mc, IS_LEAF(mp)); + +set2: + leaf = mdb_node_search(mc, key, exactp); + if (exactp != NULL && !*exactp) { + /* MDB_SET specified and not an exact match. */ + return MDB_NOTFOUND; + } + + if (leaf == NULL) { + DPUTS("===> inexact leaf not found, goto sibling"); + if ((rc = mdb_cursor_sibling(mc, 1)) != MDB_SUCCESS) { + mc->mc_flags |= C_EOF; + return rc; /* no entries matched */ + } + mp = mc->mc_pg[mc->mc_top]; + mdb_cassert(mc, IS_LEAF(mp)); + leaf = NODEPTR(mp, 0); + } + +set1: + mc->mc_flags |= C_INITIALIZED; + mc->mc_flags &= ~C_EOF; + + if (IS_LEAF2(mp)) { + if (op == MDB_SET_RANGE || op == MDB_SET_KEY) { + key->mv_size = mc->mc_db->md_pad; + key->mv_data = LEAF2KEY(mp, mc->mc_ki[mc->mc_top], key->mv_size); + } + return MDB_SUCCESS; + } + + if (F_ISSET(leaf->mn_flags, F_DUPDATA)) { + mdb_xcursor_init1(mc, leaf); + if (op == MDB_SET || op == MDB_SET_KEY || op == MDB_SET_RANGE) { + rc = mdb_cursor_first(&mc->mc_xcursor->mx_cursor, data, NULL); + } else { + int ex2, *ex2p; + if (op == MDB_GET_BOTH) { + ex2p = &ex2; + ex2 = 0; + } else { + ex2p = NULL; + } + rc = mdb_cursor_set(&mc->mc_xcursor->mx_cursor, data, NULL, MDB_SET_RANGE, ex2p); + if (rc != MDB_SUCCESS) + return rc; + } + } else if (data) { + if (op == MDB_GET_BOTH || op == MDB_GET_BOTH_RANGE) { + MDB_val olddata; + MDB_cmp_func *dcmp; + if ((rc = mdb_node_read(mc, leaf, &olddata)) != MDB_SUCCESS) + return rc; + dcmp = mc->mc_dbx->md_dcmp; +#if UINT_MAX < SIZE_MAX + if (dcmp == mdb_cmp_int && olddata.mv_size == sizeof(size_t)) + dcmp = mdb_cmp_clong; +#endif + rc = dcmp(data, &olddata); + if (rc) { + if (op == MDB_GET_BOTH || rc > 0) + return MDB_NOTFOUND; + rc = 0; + } + *data = olddata; + + } else { + if (mc->mc_xcursor) + mc->mc_xcursor->mx_cursor.mc_flags &= ~(C_INITIALIZED|C_EOF); + if ((rc = mdb_node_read(mc, leaf, data)) != MDB_SUCCESS) + return rc; + } + } + + /* The key already matches in all other cases */ + if (op == MDB_SET_RANGE || op == MDB_SET_KEY) + MDB_GET_KEY(leaf, key); + DPRINTF(("==> cursor placed on key [%s]", DKEY(key))); + + return rc; +} + +/** Move the cursor to the first item in the database. */ +static int +mdb_cursor_first(MDB_cursor *mc, MDB_val *key, MDB_val *data) +{ + int rc; + MDB_node *leaf; + + if (mc->mc_xcursor) + mc->mc_xcursor->mx_cursor.mc_flags &= ~(C_INITIALIZED|C_EOF); + + if (!(mc->mc_flags & C_INITIALIZED) || mc->mc_top) { + rc = mdb_page_search(mc, NULL, MDB_PS_FIRST); + if (rc != MDB_SUCCESS) + return rc; + } + mdb_cassert(mc, IS_LEAF(mc->mc_pg[mc->mc_top])); + + leaf = NODEPTR(mc->mc_pg[mc->mc_top], 0); + mc->mc_flags |= C_INITIALIZED; + mc->mc_flags &= ~C_EOF; + + mc->mc_ki[mc->mc_top] = 0; + + if (IS_LEAF2(mc->mc_pg[mc->mc_top])) { + if ( key ) { + key->mv_size = mc->mc_db->md_pad; + key->mv_data = LEAF2KEY(mc->mc_pg[mc->mc_top], 0, key->mv_size); + } + return MDB_SUCCESS; + } + + if (F_ISSET(leaf->mn_flags, F_DUPDATA)) { + mdb_xcursor_init1(mc, leaf); + rc = mdb_cursor_first(&mc->mc_xcursor->mx_cursor, data, NULL); + if (rc) + return rc; + } else if (data) { + if ((rc = mdb_node_read(mc, leaf, data)) != MDB_SUCCESS) + return rc; + } + + MDB_GET_KEY(leaf, key); + return MDB_SUCCESS; +} + +/** Move the cursor to the last item in the database. */ +static int +mdb_cursor_last(MDB_cursor *mc, MDB_val *key, MDB_val *data) +{ + int rc; + MDB_node *leaf; + + if (mc->mc_xcursor) + mc->mc_xcursor->mx_cursor.mc_flags &= ~(C_INITIALIZED|C_EOF); + + if (!(mc->mc_flags & C_INITIALIZED) || mc->mc_top) { + rc = mdb_page_search(mc, NULL, MDB_PS_LAST); + if (rc != MDB_SUCCESS) + return rc; + } + mdb_cassert(mc, IS_LEAF(mc->mc_pg[mc->mc_top])); + + mc->mc_ki[mc->mc_top] = NUMKEYS(mc->mc_pg[mc->mc_top]) - 1; + mc->mc_flags |= C_INITIALIZED|C_EOF; + leaf = NODEPTR(mc->mc_pg[mc->mc_top], mc->mc_ki[mc->mc_top]); + + if (IS_LEAF2(mc->mc_pg[mc->mc_top])) { + if (key) { + key->mv_size = mc->mc_db->md_pad; + key->mv_data = LEAF2KEY(mc->mc_pg[mc->mc_top], mc->mc_ki[mc->mc_top], key->mv_size); + } + return MDB_SUCCESS; + } + + if (F_ISSET(leaf->mn_flags, F_DUPDATA)) { + mdb_xcursor_init1(mc, leaf); + rc = mdb_cursor_last(&mc->mc_xcursor->mx_cursor, data, NULL); + if (rc) + return rc; + } else if (data) { + if ((rc = mdb_node_read(mc, leaf, data)) != MDB_SUCCESS) + return rc; + } + + MDB_GET_KEY(leaf, key); + return MDB_SUCCESS; +} + +int +mdb_cursor_get(MDB_cursor *mc, MDB_val *key, MDB_val *data, + MDB_cursor_op op) +{ + int rc; + int exact = 0; + int (*mfunc)(MDB_cursor *mc, MDB_val *key, MDB_val *data); + + if (mc == NULL) + return EINVAL; + + if (mc->mc_txn->mt_flags & MDB_TXN_BLOCKED) + return MDB_BAD_TXN; + + switch (op) { + case MDB_GET_CURRENT: + if (!(mc->mc_flags & C_INITIALIZED)) { + rc = EINVAL; + } else { + MDB_page *mp = mc->mc_pg[mc->mc_top]; + int nkeys = NUMKEYS(mp); + if (!nkeys || mc->mc_ki[mc->mc_top] >= nkeys) { + mc->mc_ki[mc->mc_top] = nkeys; + rc = MDB_NOTFOUND; + break; + } + rc = MDB_SUCCESS; + if (IS_LEAF2(mp)) { + key->mv_size = mc->mc_db->md_pad; + key->mv_data = LEAF2KEY(mp, mc->mc_ki[mc->mc_top], key->mv_size); + } else { + MDB_node *leaf = NODEPTR(mp, mc->mc_ki[mc->mc_top]); + MDB_GET_KEY(leaf, key); + if (data) { + if (F_ISSET(leaf->mn_flags, F_DUPDATA)) { + rc = mdb_cursor_get(&mc->mc_xcursor->mx_cursor, data, NULL, MDB_GET_CURRENT); + } else { + rc = mdb_node_read(mc, leaf, data); + } + } + } + } + break; + case MDB_GET_BOTH: + case MDB_GET_BOTH_RANGE: + if (data == NULL) { + rc = EINVAL; + break; + } + if (mc->mc_xcursor == NULL) { + rc = MDB_INCOMPATIBLE; + break; + } + /* FALLTHRU */ + case MDB_SET: + case MDB_SET_KEY: + case MDB_SET_RANGE: + if (key == NULL) { + rc = EINVAL; + } else { + rc = mdb_cursor_set(mc, key, data, op, + op == MDB_SET_RANGE ? NULL : &exact); + } + break; + case MDB_GET_MULTIPLE: + if (data == NULL || !(mc->mc_flags & C_INITIALIZED)) { + rc = EINVAL; + break; + } + if (!(mc->mc_db->md_flags & MDB_DUPFIXED)) { + rc = MDB_INCOMPATIBLE; + break; + } + rc = MDB_SUCCESS; + if (!(mc->mc_xcursor->mx_cursor.mc_flags & C_INITIALIZED) || + (mc->mc_xcursor->mx_cursor.mc_flags & C_EOF)) + break; + goto fetchm; + case MDB_NEXT_MULTIPLE: + if (data == NULL) { + rc = EINVAL; + break; + } + if (!(mc->mc_db->md_flags & MDB_DUPFIXED)) { + rc = MDB_INCOMPATIBLE; + break; + } + rc = mdb_cursor_next(mc, key, data, MDB_NEXT_DUP); + if (rc == MDB_SUCCESS) { + if (mc->mc_xcursor->mx_cursor.mc_flags & C_INITIALIZED) { + MDB_cursor *mx; +fetchm: + mx = &mc->mc_xcursor->mx_cursor; + data->mv_size = NUMKEYS(mx->mc_pg[mx->mc_top]) * + mx->mc_db->md_pad; + data->mv_data = METADATA(mx->mc_pg[mx->mc_top]); + mx->mc_ki[mx->mc_top] = NUMKEYS(mx->mc_pg[mx->mc_top])-1; + } else { + rc = MDB_NOTFOUND; + } + } + break; + case MDB_PREV_MULTIPLE: + if (data == NULL) { + rc = EINVAL; + break; + } + if (!(mc->mc_db->md_flags & MDB_DUPFIXED)) { + rc = MDB_INCOMPATIBLE; + break; + } + if (!(mc->mc_flags & C_INITIALIZED)) + rc = mdb_cursor_last(mc, key, data); + else + rc = MDB_SUCCESS; + if (rc == MDB_SUCCESS) { + MDB_cursor *mx = &mc->mc_xcursor->mx_cursor; + if (mx->mc_flags & C_INITIALIZED) { + rc = mdb_cursor_sibling(mx, 0); + if (rc == MDB_SUCCESS) + goto fetchm; + } else { + rc = MDB_NOTFOUND; + } + } + break; + case MDB_NEXT: + case MDB_NEXT_DUP: + case MDB_NEXT_NODUP: + rc = mdb_cursor_next(mc, key, data, op); + break; + case MDB_PREV: + case MDB_PREV_DUP: + case MDB_PREV_NODUP: + rc = mdb_cursor_prev(mc, key, data, op); + break; + case MDB_FIRST: + rc = mdb_cursor_first(mc, key, data); + break; + case MDB_FIRST_DUP: + mfunc = mdb_cursor_first; + mmove: + if (data == NULL || !(mc->mc_flags & C_INITIALIZED)) { + rc = EINVAL; + break; + } + if (mc->mc_xcursor == NULL) { + rc = MDB_INCOMPATIBLE; + break; + } + if (mc->mc_ki[mc->mc_top] >= NUMKEYS(mc->mc_pg[mc->mc_top])) { + mc->mc_ki[mc->mc_top] = NUMKEYS(mc->mc_pg[mc->mc_top]); + rc = MDB_NOTFOUND; + break; + } + { + MDB_node *leaf = NODEPTR(mc->mc_pg[mc->mc_top], mc->mc_ki[mc->mc_top]); + if (!F_ISSET(leaf->mn_flags, F_DUPDATA)) { + MDB_GET_KEY(leaf, key); + rc = mdb_node_read(mc, leaf, data); + break; + } + } + if (!(mc->mc_xcursor->mx_cursor.mc_flags & C_INITIALIZED)) { + rc = EINVAL; + break; + } + rc = mfunc(&mc->mc_xcursor->mx_cursor, data, NULL); + break; + case MDB_LAST: + rc = mdb_cursor_last(mc, key, data); + break; + case MDB_LAST_DUP: + mfunc = mdb_cursor_last; + goto mmove; + default: + DPRINTF(("unhandled/unimplemented cursor operation %u", op)); + rc = EINVAL; + break; + } + + if (mc->mc_flags & C_DEL) + mc->mc_flags ^= C_DEL; + + return rc; +} + +/** Touch all the pages in the cursor stack. Set mc_top. + * Makes sure all the pages are writable, before attempting a write operation. + * @param[in] mc The cursor to operate on. + */ +static int +mdb_cursor_touch(MDB_cursor *mc) +{ + int rc = MDB_SUCCESS; + + if (mc->mc_dbi >= CORE_DBS && !(*mc->mc_dbflag & (DB_DIRTY|DB_DUPDATA))) { + /* Touch DB record of named DB */ + MDB_cursor mc2; + MDB_xcursor mcx; + if (TXN_DBI_CHANGED(mc->mc_txn, mc->mc_dbi)) + return MDB_BAD_DBI; + mdb_cursor_init(&mc2, mc->mc_txn, MAIN_DBI, &mcx); + rc = mdb_page_search(&mc2, &mc->mc_dbx->md_name, MDB_PS_MODIFY); + if (rc) + return rc; + *mc->mc_dbflag |= DB_DIRTY; + } + mc->mc_top = 0; + if (mc->mc_snum) { + do { + rc = mdb_page_touch(mc); + } while (!rc && ++(mc->mc_top) < mc->mc_snum); + mc->mc_top = mc->mc_snum-1; + } + return rc; +} + +/** Do not spill pages to disk if txn is getting full, may fail instead */ +#define MDB_NOSPILL 0x8000 + +int +mdb_cursor_put(MDB_cursor *mc, MDB_val *key, MDB_val *data, + unsigned int flags) +{ + MDB_env *env; + MDB_node *leaf = NULL; + MDB_page *fp, *mp, *sub_root = NULL; + uint16_t fp_flags; + MDB_val xdata, *rdata, dkey, olddata; + MDB_db dummy; + int do_sub = 0, insert_key, insert_data; + unsigned int mcount = 0, dcount = 0, nospill; + size_t nsize; + int rc, rc2; + unsigned int nflags; + DKBUF; + + if (mc == NULL || key == NULL) + return EINVAL; + + env = mc->mc_txn->mt_env; + + /* Check this first so counter will always be zero on any + * early failures. + */ + if (flags & MDB_MULTIPLE) { + dcount = data[1].mv_size; + data[1].mv_size = 0; + if (!F_ISSET(mc->mc_db->md_flags, MDB_DUPFIXED)) + return MDB_INCOMPATIBLE; + } + + nospill = flags & MDB_NOSPILL; + flags &= ~MDB_NOSPILL; + + if (mc->mc_txn->mt_flags & (MDB_TXN_RDONLY|MDB_TXN_BLOCKED)) + return (mc->mc_txn->mt_flags & MDB_TXN_RDONLY) ? EACCES : MDB_BAD_TXN; + + if (key->mv_size-1 >= ENV_MAXKEY(env)) + return MDB_BAD_VALSIZE; + +#if SIZE_MAX > MAXDATASIZE + if (data->mv_size > ((mc->mc_db->md_flags & MDB_DUPSORT) ? ENV_MAXKEY(env) : MAXDATASIZE)) + return MDB_BAD_VALSIZE; +#else + if ((mc->mc_db->md_flags & MDB_DUPSORT) && data->mv_size > ENV_MAXKEY(env)) + return MDB_BAD_VALSIZE; +#endif + + DPRINTF(("==> put db %d key [%s], size %"Z"u, data size %"Z"u", + DDBI(mc), DKEY(key), key ? key->mv_size : 0, data->mv_size)); + + dkey.mv_size = 0; + + if (flags & MDB_CURRENT) { + if (!(mc->mc_flags & C_INITIALIZED)) + return EINVAL; + rc = MDB_SUCCESS; + } else if (mc->mc_db->md_root == P_INVALID) { + /* new database, cursor has nothing to point to */ + mc->mc_snum = 0; + mc->mc_top = 0; + mc->mc_flags &= ~C_INITIALIZED; + rc = MDB_NO_ROOT; + } else { + int exact = 0; + MDB_val d2; + if (flags & MDB_APPEND) { + MDB_val k2; + rc = mdb_cursor_last(mc, &k2, &d2); + if (rc == 0) { + rc = mc->mc_dbx->md_cmp(key, &k2); + if (rc > 0) { + rc = MDB_NOTFOUND; + mc->mc_ki[mc->mc_top]++; + } else { + /* new key is <= last key */ + rc = MDB_KEYEXIST; + } + } + } else { + rc = mdb_cursor_set(mc, key, &d2, MDB_SET, &exact); + } + if ((flags & MDB_NOOVERWRITE) && rc == 0) { + DPRINTF(("duplicate key [%s]", DKEY(key))); + *data = d2; + return MDB_KEYEXIST; + } + if (rc && rc != MDB_NOTFOUND) + return rc; + } + + if (mc->mc_flags & C_DEL) + mc->mc_flags ^= C_DEL; + + /* Cursor is positioned, check for room in the dirty list */ + if (!nospill) { + if (flags & MDB_MULTIPLE) { + rdata = &xdata; + xdata.mv_size = data->mv_size * dcount; + } else { + rdata = data; + } + if ((rc2 = mdb_page_spill(mc, key, rdata))) + return rc2; + } + + if (rc == MDB_NO_ROOT) { + MDB_page *np; + /* new database, write a root leaf page */ + DPUTS("allocating new root leaf page"); + if ((rc2 = mdb_page_new(mc, P_LEAF, 1, &np))) { + return rc2; + } + mdb_cursor_push(mc, np); + mc->mc_db->md_root = np->mp_pgno; + mc->mc_db->md_depth++; + *mc->mc_dbflag |= DB_DIRTY; + if ((mc->mc_db->md_flags & (MDB_DUPSORT|MDB_DUPFIXED)) + == MDB_DUPFIXED) + np->mp_flags |= P_LEAF2; + mc->mc_flags |= C_INITIALIZED; + } else { + /* make sure all cursor pages are writable */ + rc2 = mdb_cursor_touch(mc); + if (rc2) + return rc2; + } + + insert_key = insert_data = rc; + if (insert_key) { + /* The key does not exist */ + DPRINTF(("inserting key at index %i", mc->mc_ki[mc->mc_top])); + if ((mc->mc_db->md_flags & MDB_DUPSORT) && + LEAFSIZE(key, data) > env->me_nodemax) + { + /* Too big for a node, insert in sub-DB. Set up an empty + * "old sub-page" for prep_subDB to expand to a full page. + */ + fp_flags = P_LEAF|P_DIRTY; + fp = env->me_pbuf; + fp->mp_pad = data->mv_size; /* used if MDB_DUPFIXED */ + fp->mp_lower = fp->mp_upper = (PAGEHDRSZ-PAGEBASE); + olddata.mv_size = PAGEHDRSZ; + goto prep_subDB; + } + } else { + /* there's only a key anyway, so this is a no-op */ + if (IS_LEAF2(mc->mc_pg[mc->mc_top])) { + char *ptr; + unsigned int ksize = mc->mc_db->md_pad; + if (key->mv_size != ksize) + return MDB_BAD_VALSIZE; + ptr = LEAF2KEY(mc->mc_pg[mc->mc_top], mc->mc_ki[mc->mc_top], ksize); + memcpy(ptr, key->mv_data, ksize); +fix_parent: + /* if overwriting slot 0 of leaf, need to + * update branch key if there is a parent page + */ + if (mc->mc_top && !mc->mc_ki[mc->mc_top]) { + unsigned short dtop = 1; + mc->mc_top--; + /* slot 0 is always an empty key, find real slot */ + while (mc->mc_top && !mc->mc_ki[mc->mc_top]) { + mc->mc_top--; + dtop++; + } + if (mc->mc_ki[mc->mc_top]) + rc2 = mdb_update_key(mc, key); + else + rc2 = MDB_SUCCESS; + mc->mc_top += dtop; + if (rc2) + return rc2; + } + return MDB_SUCCESS; + } + +more: + leaf = NODEPTR(mc->mc_pg[mc->mc_top], mc->mc_ki[mc->mc_top]); + olddata.mv_size = NODEDSZ(leaf); + olddata.mv_data = NODEDATA(leaf); + + /* DB has dups? */ + if (F_ISSET(mc->mc_db->md_flags, MDB_DUPSORT)) { + /* Prepare (sub-)page/sub-DB to accept the new item, + * if needed. fp: old sub-page or a header faking + * it. mp: new (sub-)page. offset: growth in page + * size. xdata: node data with new page or DB. + */ + unsigned i, offset = 0; + mp = fp = xdata.mv_data = env->me_pbuf; + mp->mp_pgno = mc->mc_pg[mc->mc_top]->mp_pgno; + + /* Was a single item before, must convert now */ + if (!F_ISSET(leaf->mn_flags, F_DUPDATA)) { + MDB_cmp_func *dcmp; + /* Just overwrite the current item */ + if (flags == MDB_CURRENT) + goto current; + dcmp = mc->mc_dbx->md_dcmp; +#if UINT_MAX < SIZE_MAX + if (dcmp == mdb_cmp_int && olddata.mv_size == sizeof(size_t)) + dcmp = mdb_cmp_clong; +#endif + /* does data match? */ + if (!dcmp(data, &olddata)) { + if (flags & (MDB_NODUPDATA|MDB_APPENDDUP)) + return MDB_KEYEXIST; + /* overwrite it */ + goto current; + } + + /* Back up original data item */ + dkey.mv_size = olddata.mv_size; + dkey.mv_data = memcpy(fp+1, olddata.mv_data, olddata.mv_size); + + /* Make sub-page header for the dup items, with dummy body */ + fp->mp_flags = P_LEAF|P_DIRTY|P_SUBP; + fp->mp_lower = (PAGEHDRSZ-PAGEBASE); + xdata.mv_size = PAGEHDRSZ + dkey.mv_size + data->mv_size; + if (mc->mc_db->md_flags & MDB_DUPFIXED) { + fp->mp_flags |= P_LEAF2; + fp->mp_pad = data->mv_size; + xdata.mv_size += 2 * data->mv_size; /* leave space for 2 more */ + } else { + xdata.mv_size += 2 * (sizeof(indx_t) + NODESIZE) + + (dkey.mv_size & 1) + (data->mv_size & 1); + } + fp->mp_upper = xdata.mv_size - PAGEBASE; + olddata.mv_size = xdata.mv_size; /* pretend olddata is fp */ + } else if (leaf->mn_flags & F_SUBDATA) { + /* Data is on sub-DB, just store it */ + flags |= F_DUPDATA|F_SUBDATA; + goto put_sub; + } else { + /* Data is on sub-page */ + fp = olddata.mv_data; + switch (flags) { + default: + if (!(mc->mc_db->md_flags & MDB_DUPFIXED)) { + offset = EVEN(NODESIZE + sizeof(indx_t) + + data->mv_size); + break; + } + offset = fp->mp_pad; + if (SIZELEFT(fp) < offset) { + offset *= 4; /* space for 4 more */ + break; + } + /* FALLTHRU */ /* Big enough MDB_DUPFIXED sub-page */ + case MDB_CURRENT: + fp->mp_flags |= P_DIRTY; + COPY_PGNO(fp->mp_pgno, mp->mp_pgno); + mc->mc_xcursor->mx_cursor.mc_pg[0] = fp; + flags |= F_DUPDATA; + goto put_sub; + } + xdata.mv_size = olddata.mv_size + offset; + } + + fp_flags = fp->mp_flags; + if (NODESIZE + NODEKSZ(leaf) + xdata.mv_size > env->me_nodemax) { + /* Too big for a sub-page, convert to sub-DB */ + fp_flags &= ~P_SUBP; +prep_subDB: + if (mc->mc_db->md_flags & MDB_DUPFIXED) { + fp_flags |= P_LEAF2; + dummy.md_pad = fp->mp_pad; + dummy.md_flags = MDB_DUPFIXED; + if (mc->mc_db->md_flags & MDB_INTEGERDUP) + dummy.md_flags |= MDB_INTEGERKEY; + } else { + dummy.md_pad = 0; + dummy.md_flags = 0; + } + dummy.md_depth = 1; + dummy.md_branch_pages = 0; + dummy.md_leaf_pages = 1; + dummy.md_overflow_pages = 0; + dummy.md_entries = NUMKEYS(fp); + xdata.mv_size = sizeof(MDB_db); + xdata.mv_data = &dummy; + if ((rc = mdb_page_alloc(mc, 1, &mp))) + return rc; + offset = env->me_psize - olddata.mv_size; + flags |= F_DUPDATA|F_SUBDATA; + dummy.md_root = mp->mp_pgno; + sub_root = mp; + } + if (mp != fp) { + mp->mp_flags = fp_flags | P_DIRTY; + mp->mp_pad = fp->mp_pad; + mp->mp_lower = fp->mp_lower; + mp->mp_upper = fp->mp_upper + offset; + if (fp_flags & P_LEAF2) { + memcpy(METADATA(mp), METADATA(fp), NUMKEYS(fp) * fp->mp_pad); + } else { + memcpy((char *)mp + mp->mp_upper + PAGEBASE, (char *)fp + fp->mp_upper + PAGEBASE, + olddata.mv_size - fp->mp_upper - PAGEBASE); + memcpy((char *)(&mp->mp_ptrs), (char *)(&fp->mp_ptrs), NUMKEYS(fp) * sizeof(mp->mp_ptrs[0])); + for (i=0; imp_ptrs[i] += offset; + } + } + + rdata = &xdata; + flags |= F_DUPDATA; + do_sub = 1; + if (!insert_key) + mdb_node_del(mc, 0); + goto new_sub; + } +current: + /* LMDB passes F_SUBDATA in 'flags' to write a DB record */ + if ((leaf->mn_flags ^ flags) & F_SUBDATA) + return MDB_INCOMPATIBLE; + /* overflow page overwrites need special handling */ + if (F_ISSET(leaf->mn_flags, F_BIGDATA)) { + MDB_page *omp; + pgno_t pg; + int level, ovpages, dpages = OVPAGES(data->mv_size, env->me_psize); + + memcpy(&pg, olddata.mv_data, sizeof(pg)); + if ((rc2 = mdb_page_get(mc, pg, &omp, &level)) != 0) + return rc2; + ovpages = omp->mp_pages; + + /* Is the ov page large enough? */ + if (ovpages >= dpages) { + if (!(omp->mp_flags & P_DIRTY) && + (level || (env->me_flags & MDB_WRITEMAP))) + { + rc = mdb_page_unspill(mc->mc_txn, omp, &omp); + if (rc) + return rc; + level = 0; /* dirty in this txn or clean */ + } + /* Is it dirty? */ + if (omp->mp_flags & P_DIRTY) { + /* yes, overwrite it. Note in this case we don't + * bother to try shrinking the page if the new data + * is smaller than the overflow threshold. + */ + if (level > 1) { + /* It is writable only in a parent txn */ + size_t sz = (size_t) env->me_psize * ovpages, off; + MDB_page *np = mdb_page_malloc(mc->mc_txn, ovpages); + MDB_ID2 id2; + if (!np) + return ENOMEM; + id2.mid = pg; + id2.mptr = np; + /* Note - this page is already counted in parent's dirty_room */ + rc2 = mdb_mid2l_insert(mc->mc_txn->mt_u.dirty_list, &id2); + mdb_cassert(mc, rc2 == 0); + /* Currently we make the page look as with put() in the + * parent txn, in case the user peeks at MDB_RESERVEd + * or unused parts. Some users treat ovpages specially. + */ + if (!(flags & MDB_RESERVE)) { + /* Skip the part where LMDB will put *data. + * Copy end of page, adjusting alignment so + * compiler may copy words instead of bytes. + */ + off = (PAGEHDRSZ + data->mv_size) & -sizeof(size_t); + memcpy((size_t *)((char *)np + off), + (size_t *)((char *)omp + off), sz - off); + sz = PAGEHDRSZ; + } + memcpy(np, omp, sz); /* Copy beginning of page */ + omp = np; + } + SETDSZ(leaf, data->mv_size); + if (F_ISSET(flags, MDB_RESERVE)) + data->mv_data = METADATA(omp); + else + memcpy(METADATA(omp), data->mv_data, data->mv_size); + return MDB_SUCCESS; + } + } + if ((rc2 = mdb_ovpage_free(mc, omp)) != MDB_SUCCESS) + return rc2; + } else if (data->mv_size == olddata.mv_size) { + /* same size, just replace it. Note that we could + * also reuse this node if the new data is smaller, + * but instead we opt to shrink the node in that case. + */ + if (F_ISSET(flags, MDB_RESERVE)) + data->mv_data = olddata.mv_data; + else if (!(mc->mc_flags & C_SUB)) + memcpy(olddata.mv_data, data->mv_data, data->mv_size); + else { + memcpy(NODEKEY(leaf), key->mv_data, key->mv_size); + goto fix_parent; + } + return MDB_SUCCESS; + } + mdb_node_del(mc, 0); + } + + rdata = data; + +new_sub: + nflags = flags & NODE_ADD_FLAGS; + nsize = IS_LEAF2(mc->mc_pg[mc->mc_top]) ? key->mv_size : mdb_leaf_size(env, key, rdata); + if (SIZELEFT(mc->mc_pg[mc->mc_top]) < nsize) { + if (( flags & (F_DUPDATA|F_SUBDATA)) == F_DUPDATA ) + nflags &= ~MDB_APPEND; /* sub-page may need room to grow */ + if (!insert_key) + nflags |= MDB_SPLIT_REPLACE; + rc = mdb_page_split(mc, key, rdata, P_INVALID, nflags); + } else { + /* There is room already in this leaf page. */ + rc = mdb_node_add(mc, mc->mc_ki[mc->mc_top], key, rdata, 0, nflags); + if (rc == 0) { + /* Adjust other cursors pointing to mp */ + MDB_cursor *m2, *m3; + MDB_dbi dbi = mc->mc_dbi; + unsigned i = mc->mc_top; + MDB_page *mp = mc->mc_pg[i]; + + for (m2 = mc->mc_txn->mt_cursors[dbi]; m2; m2=m2->mc_next) { + if (mc->mc_flags & C_SUB) + m3 = &m2->mc_xcursor->mx_cursor; + else + m3 = m2; + if (m3 == mc || m3->mc_snum < mc->mc_snum || m3->mc_pg[i] != mp) continue; + if (m3->mc_ki[i] >= mc->mc_ki[i] && insert_key) { + m3->mc_ki[i]++; + } + XCURSOR_REFRESH(m3, i, mp); + } + } + } + + if (rc == MDB_SUCCESS) { + /* Now store the actual data in the child DB. Note that we're + * storing the user data in the keys field, so there are strict + * size limits on dupdata. The actual data fields of the child + * DB are all zero size. + */ + if (do_sub) { + int xflags, new_dupdata; + size_t ecount; +put_sub: + xdata.mv_size = 0; + xdata.mv_data = ""; + leaf = NODEPTR(mc->mc_pg[mc->mc_top], mc->mc_ki[mc->mc_top]); + if ((flags & (MDB_CURRENT|MDB_APPENDDUP)) == MDB_CURRENT) { + xflags = MDB_CURRENT|MDB_NOSPILL; + } else { + mdb_xcursor_init1(mc, leaf); + xflags = (flags & MDB_NODUPDATA) ? + MDB_NOOVERWRITE|MDB_NOSPILL : MDB_NOSPILL; + } + if (sub_root) + mc->mc_xcursor->mx_cursor.mc_pg[0] = sub_root; + new_dupdata = (int)dkey.mv_size; + /* converted, write the original data first */ + if (dkey.mv_size) { + rc = mdb_cursor_put(&mc->mc_xcursor->mx_cursor, &dkey, &xdata, xflags); + if (rc) + goto bad_sub; + /* we've done our job */ + dkey.mv_size = 0; + } + if (!(leaf->mn_flags & F_SUBDATA) || sub_root) { + /* Adjust other cursors pointing to mp */ + MDB_cursor *m2; + MDB_xcursor *mx = mc->mc_xcursor; + unsigned i = mc->mc_top; + MDB_page *mp = mc->mc_pg[i]; + + for (m2 = mc->mc_txn->mt_cursors[mc->mc_dbi]; m2; m2=m2->mc_next) { + if (m2 == mc || m2->mc_snum < mc->mc_snum) continue; + if (!(m2->mc_flags & C_INITIALIZED)) continue; + if (m2->mc_pg[i] == mp) { + if (m2->mc_ki[i] == mc->mc_ki[i]) { + mdb_xcursor_init2(m2, mx, new_dupdata); + } else if (!insert_key) { + XCURSOR_REFRESH(m2, i, mp); + } + } + } + } + ecount = mc->mc_xcursor->mx_db.md_entries; + if (flags & MDB_APPENDDUP) + xflags |= MDB_APPEND; + rc = mdb_cursor_put(&mc->mc_xcursor->mx_cursor, data, &xdata, xflags); + if (flags & F_SUBDATA) { + void *db = NODEDATA(leaf); + memcpy(db, &mc->mc_xcursor->mx_db, sizeof(MDB_db)); + } + insert_data = mc->mc_xcursor->mx_db.md_entries - ecount; + } + /* Increment count unless we just replaced an existing item. */ + if (insert_data) + mc->mc_db->md_entries++; + if (insert_key) { + /* Invalidate txn if we created an empty sub-DB */ + if (rc) + goto bad_sub; + /* If we succeeded and the key didn't exist before, + * make sure the cursor is marked valid. + */ + mc->mc_flags |= C_INITIALIZED; + } + if (flags & MDB_MULTIPLE) { + if (!rc) { + mcount++; + /* let caller know how many succeeded, if any */ + data[1].mv_size = mcount; + if (mcount < dcount) { + data[0].mv_data = (char *)data[0].mv_data + data[0].mv_size; + insert_key = insert_data = 0; + goto more; + } + } + } + return rc; +bad_sub: + if (rc == MDB_KEYEXIST) /* should not happen, we deleted that item */ + rc = MDB_CORRUPTED; + } + mc->mc_txn->mt_flags |= MDB_TXN_ERROR; + return rc; +} + +int +mdb_cursor_del(MDB_cursor *mc, unsigned int flags) +{ + MDB_node *leaf; + MDB_page *mp; + int rc; + + if (mc->mc_txn->mt_flags & (MDB_TXN_RDONLY|MDB_TXN_BLOCKED)) + return (mc->mc_txn->mt_flags & MDB_TXN_RDONLY) ? EACCES : MDB_BAD_TXN; + + if (!(mc->mc_flags & C_INITIALIZED)) + return EINVAL; + + if (mc->mc_ki[mc->mc_top] >= NUMKEYS(mc->mc_pg[mc->mc_top])) + return MDB_NOTFOUND; + + if (!(flags & MDB_NOSPILL) && (rc = mdb_page_spill(mc, NULL, NULL))) + return rc; + + rc = mdb_cursor_touch(mc); + if (rc) + return rc; + + mp = mc->mc_pg[mc->mc_top]; + if (!IS_LEAF(mp)) + return MDB_CORRUPTED; + if (IS_LEAF2(mp)) + goto del_key; + leaf = NODEPTR(mp, mc->mc_ki[mc->mc_top]); + + if (F_ISSET(leaf->mn_flags, F_DUPDATA)) { + if (flags & MDB_NODUPDATA) { + /* mdb_cursor_del0() will subtract the final entry */ + mc->mc_db->md_entries -= mc->mc_xcursor->mx_db.md_entries - 1; + mc->mc_xcursor->mx_cursor.mc_flags &= ~C_INITIALIZED; + } else { + if (!F_ISSET(leaf->mn_flags, F_SUBDATA)) { + mc->mc_xcursor->mx_cursor.mc_pg[0] = NODEDATA(leaf); + } + rc = mdb_cursor_del(&mc->mc_xcursor->mx_cursor, MDB_NOSPILL); + if (rc) + return rc; + /* If sub-DB still has entries, we're done */ + if (mc->mc_xcursor->mx_db.md_entries) { + if (leaf->mn_flags & F_SUBDATA) { + /* update subDB info */ + void *db = NODEDATA(leaf); + memcpy(db, &mc->mc_xcursor->mx_db, sizeof(MDB_db)); + } else { + MDB_cursor *m2; + /* shrink fake page */ + mdb_node_shrink(mp, mc->mc_ki[mc->mc_top]); + leaf = NODEPTR(mp, mc->mc_ki[mc->mc_top]); + mc->mc_xcursor->mx_cursor.mc_pg[0] = NODEDATA(leaf); + /* fix other sub-DB cursors pointed at fake pages on this page */ + for (m2 = mc->mc_txn->mt_cursors[mc->mc_dbi]; m2; m2=m2->mc_next) { + if (m2 == mc || m2->mc_snum < mc->mc_snum) continue; + if (!(m2->mc_flags & C_INITIALIZED)) continue; + if (m2->mc_pg[mc->mc_top] == mp) { + XCURSOR_REFRESH(m2, mc->mc_top, mp); + } + } + } + mc->mc_db->md_entries--; + return rc; + } else { + mc->mc_xcursor->mx_cursor.mc_flags &= ~C_INITIALIZED; + } + /* otherwise fall thru and delete the sub-DB */ + } + + if (leaf->mn_flags & F_SUBDATA) { + /* add all the child DB's pages to the free list */ + rc = mdb_drop0(&mc->mc_xcursor->mx_cursor, 0); + if (rc) + goto fail; + } + } + /* LMDB passes F_SUBDATA in 'flags' to delete a DB record */ + else if ((leaf->mn_flags ^ flags) & F_SUBDATA) { + rc = MDB_INCOMPATIBLE; + goto fail; + } + + /* add overflow pages to free list */ + if (F_ISSET(leaf->mn_flags, F_BIGDATA)) { + MDB_page *omp; + pgno_t pg; + + memcpy(&pg, NODEDATA(leaf), sizeof(pg)); + if ((rc = mdb_page_get(mc, pg, &omp, NULL)) || + (rc = mdb_ovpage_free(mc, omp))) + goto fail; + } + +del_key: + return mdb_cursor_del0(mc); + +fail: + mc->mc_txn->mt_flags |= MDB_TXN_ERROR; + return rc; +} + +/** Allocate and initialize new pages for a database. + * Set #MDB_TXN_ERROR on failure. + * @param[in] mc a cursor on the database being added to. + * @param[in] flags flags defining what type of page is being allocated. + * @param[in] num the number of pages to allocate. This is usually 1, + * unless allocating overflow pages for a large record. + * @param[out] mp Address of a page, or NULL on failure. + * @return 0 on success, non-zero on failure. + */ +static int +mdb_page_new(MDB_cursor *mc, uint32_t flags, int num, MDB_page **mp) +{ + MDB_page *np; + int rc; + + if ((rc = mdb_page_alloc(mc, num, &np))) + return rc; + DPRINTF(("allocated new mpage %"Z"u, page size %u", + np->mp_pgno, mc->mc_txn->mt_env->me_psize)); + np->mp_flags = flags | P_DIRTY; + np->mp_lower = (PAGEHDRSZ-PAGEBASE); + np->mp_upper = mc->mc_txn->mt_env->me_psize - PAGEBASE; + + if (IS_BRANCH(np)) + mc->mc_db->md_branch_pages++; + else if (IS_LEAF(np)) + mc->mc_db->md_leaf_pages++; + else if (IS_OVERFLOW(np)) { + mc->mc_db->md_overflow_pages += num; + np->mp_pages = num; + } + *mp = np; + + return 0; +} + +/** Calculate the size of a leaf node. + * The size depends on the environment's page size; if a data item + * is too large it will be put onto an overflow page and the node + * size will only include the key and not the data. Sizes are always + * rounded up to an even number of bytes, to guarantee 2-byte alignment + * of the #MDB_node headers. + * @param[in] env The environment handle. + * @param[in] key The key for the node. + * @param[in] data The data for the node. + * @return The number of bytes needed to store the node. + */ +static size_t +mdb_leaf_size(MDB_env *env, MDB_val *key, MDB_val *data) +{ + size_t sz; + + sz = LEAFSIZE(key, data); + if (sz > env->me_nodemax) { + /* put on overflow page */ + sz -= data->mv_size - sizeof(pgno_t); + } + + return EVEN(sz + sizeof(indx_t)); +} + +/** Calculate the size of a branch node. + * The size should depend on the environment's page size but since + * we currently don't support spilling large keys onto overflow + * pages, it's simply the size of the #MDB_node header plus the + * size of the key. Sizes are always rounded up to an even number + * of bytes, to guarantee 2-byte alignment of the #MDB_node headers. + * @param[in] env The environment handle. + * @param[in] key The key for the node. + * @return The number of bytes needed to store the node. + */ +static size_t +mdb_branch_size(MDB_env *env, MDB_val *key) +{ + size_t sz; + + sz = INDXSIZE(key); + if (sz > env->me_nodemax) { + /* put on overflow page */ + /* not implemented */ + /* sz -= key->size - sizeof(pgno_t); */ + } + + return sz + sizeof(indx_t); +} + +/** Add a node to the page pointed to by the cursor. + * Set #MDB_TXN_ERROR on failure. + * @param[in] mc The cursor for this operation. + * @param[in] indx The index on the page where the new node should be added. + * @param[in] key The key for the new node. + * @param[in] data The data for the new node, if any. + * @param[in] pgno The page number, if adding a branch node. + * @param[in] flags Flags for the node. + * @return 0 on success, non-zero on failure. Possible errors are: + *
    + *
  • ENOMEM - failed to allocate overflow pages for the node. + *
  • MDB_PAGE_FULL - there is insufficient room in the page. This error + * should never happen since all callers already calculate the + * page's free space before calling this function. + *
+ */ +static int +mdb_node_add(MDB_cursor *mc, indx_t indx, + MDB_val *key, MDB_val *data, pgno_t pgno, unsigned int flags) +{ + unsigned int i; + size_t node_size = NODESIZE; + ssize_t room; + indx_t ofs; + MDB_node *node; + MDB_page *mp = mc->mc_pg[mc->mc_top]; + MDB_page *ofp = NULL; /* overflow page */ + void *ndata; + DKBUF; + + mdb_cassert(mc, mp->mp_upper >= mp->mp_lower); + + DPRINTF(("add to %s %spage %"Z"u index %i, data size %"Z"u key size %"Z"u [%s]", + IS_LEAF(mp) ? "leaf" : "branch", + IS_SUBP(mp) ? "sub-" : "", + mdb_dbg_pgno(mp), indx, data ? data->mv_size : 0, + key ? key->mv_size : 0, key ? DKEY(key) : "null")); + + if (IS_LEAF2(mp)) { + /* Move higher keys up one slot. */ + int ksize = mc->mc_db->md_pad, dif; + char *ptr = LEAF2KEY(mp, indx, ksize); + dif = NUMKEYS(mp) - indx; + if (dif > 0) + memmove(ptr+ksize, ptr, dif*ksize); + /* insert new key */ + memcpy(ptr, key->mv_data, ksize); + + /* Just using these for counting */ + mp->mp_lower += sizeof(indx_t); + mp->mp_upper -= ksize - sizeof(indx_t); + return MDB_SUCCESS; + } + + room = (ssize_t)SIZELEFT(mp) - (ssize_t)sizeof(indx_t); + if (key != NULL) + node_size += key->mv_size; + if (IS_LEAF(mp)) { + mdb_cassert(mc, key && data); + if (F_ISSET(flags, F_BIGDATA)) { + /* Data already on overflow page. */ + node_size += sizeof(pgno_t); + } else if (node_size + data->mv_size > mc->mc_txn->mt_env->me_nodemax) { + int ovpages = OVPAGES(data->mv_size, mc->mc_txn->mt_env->me_psize); + int rc; + /* Put data on overflow page. */ + DPRINTF(("data size is %"Z"u, node would be %"Z"u, put data on overflow page", + data->mv_size, node_size+data->mv_size)); + node_size = EVEN(node_size + sizeof(pgno_t)); + if ((ssize_t)node_size > room) + goto full; + if ((rc = mdb_page_new(mc, P_OVERFLOW, ovpages, &ofp))) + return rc; + DPRINTF(("allocated overflow page %"Z"u", ofp->mp_pgno)); + flags |= F_BIGDATA; + goto update; + } else { + node_size += data->mv_size; + } + } + node_size = EVEN(node_size); + if ((ssize_t)node_size > room) + goto full; + +update: + /* Move higher pointers up one slot. */ + for (i = NUMKEYS(mp); i > indx; i--) + mp->mp_ptrs[i] = mp->mp_ptrs[i - 1]; + + /* Adjust free space offsets. */ + ofs = mp->mp_upper - node_size; + mdb_cassert(mc, ofs >= mp->mp_lower + sizeof(indx_t)); + mp->mp_ptrs[indx] = ofs; + mp->mp_upper = ofs; + mp->mp_lower += sizeof(indx_t); + + /* Write the node data. */ + node = NODEPTR(mp, indx); + node->mn_ksize = (key == NULL) ? 0 : key->mv_size; + node->mn_flags = flags; + if (IS_LEAF(mp)) + SETDSZ(node,data->mv_size); + else + SETPGNO(node,pgno); + + if (key) + memcpy(NODEKEY(node), key->mv_data, key->mv_size); + + if (IS_LEAF(mp)) { + ndata = NODEDATA(node); + if (ofp == NULL) { + if (F_ISSET(flags, F_BIGDATA)) + memcpy(ndata, data->mv_data, sizeof(pgno_t)); + else if (F_ISSET(flags, MDB_RESERVE)) + data->mv_data = ndata; + else + memcpy(ndata, data->mv_data, data->mv_size); + } else { + memcpy(ndata, &ofp->mp_pgno, sizeof(pgno_t)); + ndata = METADATA(ofp); + if (F_ISSET(flags, MDB_RESERVE)) + data->mv_data = ndata; + else + memcpy(ndata, data->mv_data, data->mv_size); + } + } + + return MDB_SUCCESS; + +full: + DPRINTF(("not enough room in page %"Z"u, got %u ptrs", + mdb_dbg_pgno(mp), NUMKEYS(mp))); + DPRINTF(("upper-lower = %u - %u = %"Z"d", mp->mp_upper,mp->mp_lower,room)); + DPRINTF(("node size = %"Z"u", node_size)); + mc->mc_txn->mt_flags |= MDB_TXN_ERROR; + return MDB_PAGE_FULL; +} + +/** Delete the specified node from a page. + * @param[in] mc Cursor pointing to the node to delete. + * @param[in] ksize The size of a node. Only used if the page is + * part of a #MDB_DUPFIXED database. + */ +static void +mdb_node_del(MDB_cursor *mc, int ksize) +{ + MDB_page *mp = mc->mc_pg[mc->mc_top]; + indx_t indx = mc->mc_ki[mc->mc_top]; + unsigned int sz; + indx_t i, j, numkeys, ptr; + MDB_node *node; + char *base; + + DPRINTF(("delete node %u on %s page %"Z"u", indx, + IS_LEAF(mp) ? "leaf" : "branch", mdb_dbg_pgno(mp))); + numkeys = NUMKEYS(mp); + mdb_cassert(mc, indx < numkeys); + + if (IS_LEAF2(mp)) { + int x = numkeys - 1 - indx; + base = LEAF2KEY(mp, indx, ksize); + if (x) + memmove(base, base + ksize, x * ksize); + mp->mp_lower -= sizeof(indx_t); + mp->mp_upper += ksize - sizeof(indx_t); + return; + } + + node = NODEPTR(mp, indx); + sz = NODESIZE + node->mn_ksize; + if (IS_LEAF(mp)) { + if (F_ISSET(node->mn_flags, F_BIGDATA)) + sz += sizeof(pgno_t); + else + sz += NODEDSZ(node); + } + sz = EVEN(sz); + + ptr = mp->mp_ptrs[indx]; + for (i = j = 0; i < numkeys; i++) { + if (i != indx) { + mp->mp_ptrs[j] = mp->mp_ptrs[i]; + if (mp->mp_ptrs[i] < ptr) + mp->mp_ptrs[j] += sz; + j++; + } + } + + base = (char *)mp + mp->mp_upper + PAGEBASE; + memmove(base + sz, base, ptr - mp->mp_upper); + + mp->mp_lower -= sizeof(indx_t); + mp->mp_upper += sz; +} + +/** Compact the main page after deleting a node on a subpage. + * @param[in] mp The main page to operate on. + * @param[in] indx The index of the subpage on the main page. + */ +static void +mdb_node_shrink(MDB_page *mp, indx_t indx) +{ + MDB_node *node; + MDB_page *sp, *xp; + char *base; + indx_t delta, nsize, len, ptr; + int i; + + node = NODEPTR(mp, indx); + sp = (MDB_page *)NODEDATA(node); + delta = SIZELEFT(sp); + nsize = NODEDSZ(node) - delta; + + /* Prepare to shift upward, set len = length(subpage part to shift) */ + if (IS_LEAF2(sp)) { + len = nsize; + if (nsize & 1) + return; /* do not make the node uneven-sized */ + } else { + xp = (MDB_page *)((char *)sp + delta); /* destination subpage */ + for (i = NUMKEYS(sp); --i >= 0; ) + xp->mp_ptrs[i] = sp->mp_ptrs[i] - delta; + len = PAGEHDRSZ; + } + sp->mp_upper = sp->mp_lower; + COPY_PGNO(sp->mp_pgno, mp->mp_pgno); + SETDSZ(node, nsize); + + /* Shift upward */ + base = (char *)mp + mp->mp_upper + PAGEBASE; + memmove(base + delta, base, (char *)sp + len - base); + + ptr = mp->mp_ptrs[indx]; + for (i = NUMKEYS(mp); --i >= 0; ) { + if (mp->mp_ptrs[i] <= ptr) + mp->mp_ptrs[i] += delta; + } + mp->mp_upper += delta; +} + +/** Initial setup of a sorted-dups cursor. + * Sorted duplicates are implemented as a sub-database for the given key. + * The duplicate data items are actually keys of the sub-database. + * Operations on the duplicate data items are performed using a sub-cursor + * initialized when the sub-database is first accessed. This function does + * the preliminary setup of the sub-cursor, filling in the fields that + * depend only on the parent DB. + * @param[in] mc The main cursor whose sorted-dups cursor is to be initialized. + */ +static void +mdb_xcursor_init0(MDB_cursor *mc) +{ + MDB_xcursor *mx = mc->mc_xcursor; + + mx->mx_cursor.mc_xcursor = NULL; + mx->mx_cursor.mc_txn = mc->mc_txn; + mx->mx_cursor.mc_db = &mx->mx_db; + mx->mx_cursor.mc_dbx = &mx->mx_dbx; + mx->mx_cursor.mc_dbi = mc->mc_dbi; + mx->mx_cursor.mc_dbflag = &mx->mx_dbflag; + mx->mx_cursor.mc_snum = 0; + mx->mx_cursor.mc_top = 0; + mx->mx_cursor.mc_flags = C_SUB; + mx->mx_dbx.md_name.mv_size = 0; + mx->mx_dbx.md_name.mv_data = NULL; + mx->mx_dbx.md_cmp = mc->mc_dbx->md_dcmp; + mx->mx_dbx.md_dcmp = NULL; + mx->mx_dbx.md_rel = mc->mc_dbx->md_rel; +} + +/** Final setup of a sorted-dups cursor. + * Sets up the fields that depend on the data from the main cursor. + * @param[in] mc The main cursor whose sorted-dups cursor is to be initialized. + * @param[in] node The data containing the #MDB_db record for the + * sorted-dup database. + */ +static void +mdb_xcursor_init1(MDB_cursor *mc, MDB_node *node) +{ + MDB_xcursor *mx = mc->mc_xcursor; + + if (node->mn_flags & F_SUBDATA) { + memcpy(&mx->mx_db, NODEDATA(node), sizeof(MDB_db)); + mx->mx_cursor.mc_pg[0] = 0; + mx->mx_cursor.mc_snum = 0; + mx->mx_cursor.mc_top = 0; + mx->mx_cursor.mc_flags = C_SUB; + } else { + MDB_page *fp = NODEDATA(node); + mx->mx_db.md_pad = 0; + mx->mx_db.md_flags = 0; + mx->mx_db.md_depth = 1; + mx->mx_db.md_branch_pages = 0; + mx->mx_db.md_leaf_pages = 1; + mx->mx_db.md_overflow_pages = 0; + mx->mx_db.md_entries = NUMKEYS(fp); + COPY_PGNO(mx->mx_db.md_root, fp->mp_pgno); + mx->mx_cursor.mc_snum = 1; + mx->mx_cursor.mc_top = 0; + mx->mx_cursor.mc_flags = C_INITIALIZED|C_SUB; + mx->mx_cursor.mc_pg[0] = fp; + mx->mx_cursor.mc_ki[0] = 0; + if (mc->mc_db->md_flags & MDB_DUPFIXED) { + mx->mx_db.md_flags = MDB_DUPFIXED; + mx->mx_db.md_pad = fp->mp_pad; + if (mc->mc_db->md_flags & MDB_INTEGERDUP) + mx->mx_db.md_flags |= MDB_INTEGERKEY; + } + } + DPRINTF(("Sub-db -%u root page %"Z"u", mx->mx_cursor.mc_dbi, + mx->mx_db.md_root)); + mx->mx_dbflag = DB_VALID|DB_USRVALID|DB_DUPDATA; +#if UINT_MAX < SIZE_MAX + if (mx->mx_dbx.md_cmp == mdb_cmp_int && mx->mx_db.md_pad == sizeof(size_t)) + mx->mx_dbx.md_cmp = mdb_cmp_clong; +#endif +} + + +/** Fixup a sorted-dups cursor due to underlying update. + * Sets up some fields that depend on the data from the main cursor. + * Almost the same as init1, but skips initialization steps if the + * xcursor had already been used. + * @param[in] mc The main cursor whose sorted-dups cursor is to be fixed up. + * @param[in] src_mx The xcursor of an up-to-date cursor. + * @param[in] new_dupdata True if converting from a non-#F_DUPDATA item. + */ +static void +mdb_xcursor_init2(MDB_cursor *mc, MDB_xcursor *src_mx, int new_dupdata) +{ + MDB_xcursor *mx = mc->mc_xcursor; + + if (new_dupdata) { + mx->mx_cursor.mc_snum = 1; + mx->mx_cursor.mc_top = 0; + mx->mx_cursor.mc_flags |= C_INITIALIZED; + mx->mx_cursor.mc_ki[0] = 0; + mx->mx_dbflag = DB_VALID|DB_USRVALID|DB_DUPDATA; +#if UINT_MAX < SIZE_MAX + mx->mx_dbx.md_cmp = src_mx->mx_dbx.md_cmp; +#endif + } else if (!(mx->mx_cursor.mc_flags & C_INITIALIZED)) { + return; + } + mx->mx_db = src_mx->mx_db; + mx->mx_cursor.mc_pg[0] = src_mx->mx_cursor.mc_pg[0]; + DPRINTF(("Sub-db -%u root page %"Z"u", mx->mx_cursor.mc_dbi, + mx->mx_db.md_root)); +} + +/** Initialize a cursor for a given transaction and database. */ +static void +mdb_cursor_init(MDB_cursor *mc, MDB_txn *txn, MDB_dbi dbi, MDB_xcursor *mx) +{ + mc->mc_next = NULL; + mc->mc_backup = NULL; + mc->mc_dbi = dbi; + mc->mc_txn = txn; + mc->mc_db = &txn->mt_dbs[dbi]; + mc->mc_dbx = &txn->mt_dbxs[dbi]; + mc->mc_dbflag = &txn->mt_dbflags[dbi]; + mc->mc_snum = 0; + mc->mc_top = 0; + mc->mc_pg[0] = 0; + mc->mc_ki[0] = 0; + mc->mc_flags = 0; + if (txn->mt_dbs[dbi].md_flags & MDB_DUPSORT) { + mdb_tassert(txn, mx != NULL); + mc->mc_xcursor = mx; + mdb_xcursor_init0(mc); + } else { + mc->mc_xcursor = NULL; + } + if (*mc->mc_dbflag & DB_STALE) { + mdb_page_search(mc, NULL, MDB_PS_ROOTONLY); + } +} + +int +mdb_cursor_open(MDB_txn *txn, MDB_dbi dbi, MDB_cursor **ret) +{ + MDB_cursor *mc; + size_t size = sizeof(MDB_cursor); + + if (!ret || !TXN_DBI_EXIST(txn, dbi, DB_VALID)) + return EINVAL; + + if (txn->mt_flags & MDB_TXN_BLOCKED) + return MDB_BAD_TXN; + + if (dbi == FREE_DBI && !F_ISSET(txn->mt_flags, MDB_TXN_RDONLY)) + return EINVAL; + + if (txn->mt_dbs[dbi].md_flags & MDB_DUPSORT) + size += sizeof(MDB_xcursor); + + if ((mc = malloc(size)) != NULL) { + mdb_cursor_init(mc, txn, dbi, (MDB_xcursor *)(mc + 1)); + if (txn->mt_cursors) { + mc->mc_next = txn->mt_cursors[dbi]; + txn->mt_cursors[dbi] = mc; + mc->mc_flags |= C_UNTRACK; + } + } else { + return ENOMEM; + } + + *ret = mc; + + return MDB_SUCCESS; +} + +int +mdb_cursor_renew(MDB_txn *txn, MDB_cursor *mc) +{ + if (!mc || !TXN_DBI_EXIST(txn, mc->mc_dbi, DB_VALID)) + return EINVAL; + + if ((mc->mc_flags & C_UNTRACK) || txn->mt_cursors) + return EINVAL; + + if (txn->mt_flags & MDB_TXN_BLOCKED) + return MDB_BAD_TXN; + + mdb_cursor_init(mc, txn, mc->mc_dbi, mc->mc_xcursor); + return MDB_SUCCESS; +} + +/* Return the count of duplicate data items for the current key */ +int +mdb_cursor_count(MDB_cursor *mc, size_t *countp) +{ + MDB_node *leaf; + + if (mc == NULL || countp == NULL) + return EINVAL; + + if (mc->mc_xcursor == NULL) + return MDB_INCOMPATIBLE; + + if (mc->mc_txn->mt_flags & MDB_TXN_BLOCKED) + return MDB_BAD_TXN; + + if (!(mc->mc_flags & C_INITIALIZED)) + return EINVAL; + + if (!mc->mc_snum) + return MDB_NOTFOUND; + + if (mc->mc_flags & C_EOF) { + if (mc->mc_ki[mc->mc_top] >= NUMKEYS(mc->mc_pg[mc->mc_top])) + return MDB_NOTFOUND; + mc->mc_flags ^= C_EOF; + } + + leaf = NODEPTR(mc->mc_pg[mc->mc_top], mc->mc_ki[mc->mc_top]); + if (!F_ISSET(leaf->mn_flags, F_DUPDATA)) { + *countp = 1; + } else { + if (!(mc->mc_xcursor->mx_cursor.mc_flags & C_INITIALIZED)) + return EINVAL; + + *countp = mc->mc_xcursor->mx_db.md_entries; + } + return MDB_SUCCESS; +} + +void +mdb_cursor_close(MDB_cursor *mc) +{ + if (mc && !mc->mc_backup) { + /* remove from txn, if tracked */ + if ((mc->mc_flags & C_UNTRACK) && mc->mc_txn->mt_cursors) { + MDB_cursor **prev = &mc->mc_txn->mt_cursors[mc->mc_dbi]; + while (*prev && *prev != mc) prev = &(*prev)->mc_next; + if (*prev == mc) + *prev = mc->mc_next; + } + free(mc); + } +} + +MDB_txn * +mdb_cursor_txn(MDB_cursor *mc) +{ + if (!mc) return NULL; + return mc->mc_txn; +} + +MDB_dbi +mdb_cursor_dbi(MDB_cursor *mc) +{ + return mc->mc_dbi; +} + +/** Replace the key for a branch node with a new key. + * Set #MDB_TXN_ERROR on failure. + * @param[in] mc Cursor pointing to the node to operate on. + * @param[in] key The new key to use. + * @return 0 on success, non-zero on failure. + */ +static int +mdb_update_key(MDB_cursor *mc, MDB_val *key) +{ + MDB_page *mp; + MDB_node *node; + char *base; + size_t len; + int delta, ksize, oksize; + indx_t ptr, i, numkeys, indx; + DKBUF; + + indx = mc->mc_ki[mc->mc_top]; + mp = mc->mc_pg[mc->mc_top]; + node = NODEPTR(mp, indx); + ptr = mp->mp_ptrs[indx]; +#if MDB_DEBUG + { + MDB_val k2; + char kbuf2[DKBUF_MAXKEYSIZE*2+1]; + k2.mv_data = NODEKEY(node); + k2.mv_size = node->mn_ksize; + DPRINTF(("update key %u (ofs %u) [%s] to [%s] on page %"Z"u", + indx, ptr, + mdb_dkey(&k2, kbuf2), + DKEY(key), + mp->mp_pgno)); + } +#endif + + /* Sizes must be 2-byte aligned. */ + ksize = EVEN(key->mv_size); + oksize = EVEN(node->mn_ksize); + delta = ksize - oksize; + + /* Shift node contents if EVEN(key length) changed. */ + if (delta) { + if (delta > 0 && SIZELEFT(mp) < delta) { + pgno_t pgno; + /* not enough space left, do a delete and split */ + DPRINTF(("Not enough room, delta = %d, splitting...", delta)); + pgno = NODEPGNO(node); + mdb_node_del(mc, 0); + return mdb_page_split(mc, key, NULL, pgno, MDB_SPLIT_REPLACE); + } + + numkeys = NUMKEYS(mp); + for (i = 0; i < numkeys; i++) { + if (mp->mp_ptrs[i] <= ptr) + mp->mp_ptrs[i] -= delta; + } + + base = (char *)mp + mp->mp_upper + PAGEBASE; + len = ptr - mp->mp_upper + NODESIZE; + memmove(base - delta, base, len); + mp->mp_upper -= delta; + + node = NODEPTR(mp, indx); + } + + /* But even if no shift was needed, update ksize */ + if (node->mn_ksize != key->mv_size) + node->mn_ksize = key->mv_size; + + if (key->mv_size) + memcpy(NODEKEY(node), key->mv_data, key->mv_size); + + return MDB_SUCCESS; +} + +static void +mdb_cursor_copy(const MDB_cursor *csrc, MDB_cursor *cdst); + +/** Perform \b act while tracking temporary cursor \b mn */ +#define WITH_CURSOR_TRACKING(mn, act) do { \ + MDB_cursor dummy, *tracked, **tp = &(mn).mc_txn->mt_cursors[mn.mc_dbi]; \ + if ((mn).mc_flags & C_SUB) { \ + dummy.mc_flags = C_INITIALIZED; \ + dummy.mc_xcursor = (MDB_xcursor *)&(mn); \ + tracked = &dummy; \ + } else { \ + tracked = &(mn); \ + } \ + tracked->mc_next = *tp; \ + *tp = tracked; \ + { act; } \ + *tp = tracked->mc_next; \ +} while (0) + +/** Move a node from csrc to cdst. + */ +static int +mdb_node_move(MDB_cursor *csrc, MDB_cursor *cdst, int fromleft) +{ + MDB_node *srcnode; + MDB_val key, data; + pgno_t srcpg; + MDB_cursor mn; + int rc; + unsigned short flags; + + DKBUF; + + /* Mark src and dst as dirty. */ + if ((rc = mdb_page_touch(csrc)) || + (rc = mdb_page_touch(cdst))) + return rc; + + if (IS_LEAF2(csrc->mc_pg[csrc->mc_top])) { + key.mv_size = csrc->mc_db->md_pad; + key.mv_data = LEAF2KEY(csrc->mc_pg[csrc->mc_top], csrc->mc_ki[csrc->mc_top], key.mv_size); + data.mv_size = 0; + data.mv_data = NULL; + srcpg = 0; + flags = 0; + } else { + srcnode = NODEPTR(csrc->mc_pg[csrc->mc_top], csrc->mc_ki[csrc->mc_top]); + mdb_cassert(csrc, !((size_t)srcnode & 1)); + srcpg = NODEPGNO(srcnode); + flags = srcnode->mn_flags; + if (csrc->mc_ki[csrc->mc_top] == 0 && IS_BRANCH(csrc->mc_pg[csrc->mc_top])) { + unsigned int snum = csrc->mc_snum; + MDB_node *s2; + /* must find the lowest key below src */ + rc = mdb_page_search_lowest(csrc); + if (rc) + return rc; + if (IS_LEAF2(csrc->mc_pg[csrc->mc_top])) { + key.mv_size = csrc->mc_db->md_pad; + key.mv_data = LEAF2KEY(csrc->mc_pg[csrc->mc_top], 0, key.mv_size); + } else { + s2 = NODEPTR(csrc->mc_pg[csrc->mc_top], 0); + key.mv_size = NODEKSZ(s2); + key.mv_data = NODEKEY(s2); + } + csrc->mc_snum = snum--; + csrc->mc_top = snum; + } else { + key.mv_size = NODEKSZ(srcnode); + key.mv_data = NODEKEY(srcnode); + } + data.mv_size = NODEDSZ(srcnode); + data.mv_data = NODEDATA(srcnode); + } + mn.mc_xcursor = NULL; + if (IS_BRANCH(cdst->mc_pg[cdst->mc_top]) && cdst->mc_ki[cdst->mc_top] == 0) { + unsigned int snum = cdst->mc_snum; + MDB_node *s2; + MDB_val bkey; + /* must find the lowest key below dst */ + mdb_cursor_copy(cdst, &mn); + rc = mdb_page_search_lowest(&mn); + if (rc) + return rc; + if (IS_LEAF2(mn.mc_pg[mn.mc_top])) { + bkey.mv_size = mn.mc_db->md_pad; + bkey.mv_data = LEAF2KEY(mn.mc_pg[mn.mc_top], 0, bkey.mv_size); + } else { + s2 = NODEPTR(mn.mc_pg[mn.mc_top], 0); + bkey.mv_size = NODEKSZ(s2); + bkey.mv_data = NODEKEY(s2); + } + mn.mc_snum = snum--; + mn.mc_top = snum; + mn.mc_ki[snum] = 0; + rc = mdb_update_key(&mn, &bkey); + if (rc) + return rc; + } + + DPRINTF(("moving %s node %u [%s] on page %"Z"u to node %u on page %"Z"u", + IS_LEAF(csrc->mc_pg[csrc->mc_top]) ? "leaf" : "branch", + csrc->mc_ki[csrc->mc_top], + DKEY(&key), + csrc->mc_pg[csrc->mc_top]->mp_pgno, + cdst->mc_ki[cdst->mc_top], cdst->mc_pg[cdst->mc_top]->mp_pgno)); + + /* Add the node to the destination page. + */ + rc = mdb_node_add(cdst, cdst->mc_ki[cdst->mc_top], &key, &data, srcpg, flags); + if (rc != MDB_SUCCESS) + return rc; + + /* Delete the node from the source page. + */ + mdb_node_del(csrc, key.mv_size); + + { + /* Adjust other cursors pointing to mp */ + MDB_cursor *m2, *m3; + MDB_dbi dbi = csrc->mc_dbi; + MDB_page *mpd, *mps; + + mps = csrc->mc_pg[csrc->mc_top]; + /* If we're adding on the left, bump others up */ + if (fromleft) { + mpd = cdst->mc_pg[csrc->mc_top]; + for (m2 = csrc->mc_txn->mt_cursors[dbi]; m2; m2=m2->mc_next) { + if (csrc->mc_flags & C_SUB) + m3 = &m2->mc_xcursor->mx_cursor; + else + m3 = m2; + if (!(m3->mc_flags & C_INITIALIZED) || m3->mc_top < csrc->mc_top) + continue; + if (m3 != cdst && + m3->mc_pg[csrc->mc_top] == mpd && + m3->mc_ki[csrc->mc_top] >= cdst->mc_ki[csrc->mc_top]) { + m3->mc_ki[csrc->mc_top]++; + } + if (m3 !=csrc && + m3->mc_pg[csrc->mc_top] == mps && + m3->mc_ki[csrc->mc_top] == csrc->mc_ki[csrc->mc_top]) { + m3->mc_pg[csrc->mc_top] = cdst->mc_pg[cdst->mc_top]; + m3->mc_ki[csrc->mc_top] = cdst->mc_ki[cdst->mc_top]; + m3->mc_ki[csrc->mc_top-1]++; + } + if (IS_LEAF(mps)) + XCURSOR_REFRESH(m3, csrc->mc_top, m3->mc_pg[csrc->mc_top]); + } + } else + /* Adding on the right, bump others down */ + { + for (m2 = csrc->mc_txn->mt_cursors[dbi]; m2; m2=m2->mc_next) { + if (csrc->mc_flags & C_SUB) + m3 = &m2->mc_xcursor->mx_cursor; + else + m3 = m2; + if (m3 == csrc) continue; + if (!(m3->mc_flags & C_INITIALIZED) || m3->mc_top < csrc->mc_top) + continue; + if (m3->mc_pg[csrc->mc_top] == mps) { + if (!m3->mc_ki[csrc->mc_top]) { + m3->mc_pg[csrc->mc_top] = cdst->mc_pg[cdst->mc_top]; + m3->mc_ki[csrc->mc_top] = cdst->mc_ki[cdst->mc_top]; + m3->mc_ki[csrc->mc_top-1]--; + } else { + m3->mc_ki[csrc->mc_top]--; + } + if (IS_LEAF(mps)) + XCURSOR_REFRESH(m3, csrc->mc_top, m3->mc_pg[csrc->mc_top]); + } + } + } + } + + /* Update the parent separators. + */ + if (csrc->mc_ki[csrc->mc_top] == 0) { + if (csrc->mc_ki[csrc->mc_top-1] != 0) { + if (IS_LEAF2(csrc->mc_pg[csrc->mc_top])) { + key.mv_data = LEAF2KEY(csrc->mc_pg[csrc->mc_top], 0, key.mv_size); + } else { + srcnode = NODEPTR(csrc->mc_pg[csrc->mc_top], 0); + key.mv_size = NODEKSZ(srcnode); + key.mv_data = NODEKEY(srcnode); + } + DPRINTF(("update separator for source page %"Z"u to [%s]", + csrc->mc_pg[csrc->mc_top]->mp_pgno, DKEY(&key))); + mdb_cursor_copy(csrc, &mn); + mn.mc_snum--; + mn.mc_top--; + /* We want mdb_rebalance to find mn when doing fixups */ + WITH_CURSOR_TRACKING(mn, + rc = mdb_update_key(&mn, &key)); + if (rc) + return rc; + } + if (IS_BRANCH(csrc->mc_pg[csrc->mc_top])) { + MDB_val nullkey; + indx_t ix = csrc->mc_ki[csrc->mc_top]; + nullkey.mv_size = 0; + csrc->mc_ki[csrc->mc_top] = 0; + rc = mdb_update_key(csrc, &nullkey); + csrc->mc_ki[csrc->mc_top] = ix; + mdb_cassert(csrc, rc == MDB_SUCCESS); + } + } + + if (cdst->mc_ki[cdst->mc_top] == 0) { + if (cdst->mc_ki[cdst->mc_top-1] != 0) { + if (IS_LEAF2(csrc->mc_pg[csrc->mc_top])) { + key.mv_data = LEAF2KEY(cdst->mc_pg[cdst->mc_top], 0, key.mv_size); + } else { + srcnode = NODEPTR(cdst->mc_pg[cdst->mc_top], 0); + key.mv_size = NODEKSZ(srcnode); + key.mv_data = NODEKEY(srcnode); + } + DPRINTF(("update separator for destination page %"Z"u to [%s]", + cdst->mc_pg[cdst->mc_top]->mp_pgno, DKEY(&key))); + mdb_cursor_copy(cdst, &mn); + mn.mc_snum--; + mn.mc_top--; + /* We want mdb_rebalance to find mn when doing fixups */ + WITH_CURSOR_TRACKING(mn, + rc = mdb_update_key(&mn, &key)); + if (rc) + return rc; + } + if (IS_BRANCH(cdst->mc_pg[cdst->mc_top])) { + MDB_val nullkey; + indx_t ix = cdst->mc_ki[cdst->mc_top]; + nullkey.mv_size = 0; + cdst->mc_ki[cdst->mc_top] = 0; + rc = mdb_update_key(cdst, &nullkey); + cdst->mc_ki[cdst->mc_top] = ix; + mdb_cassert(cdst, rc == MDB_SUCCESS); + } + } + + return MDB_SUCCESS; +} + +/** Merge one page into another. + * The nodes from the page pointed to by \b csrc will + * be copied to the page pointed to by \b cdst and then + * the \b csrc page will be freed. + * @param[in] csrc Cursor pointing to the source page. + * @param[in] cdst Cursor pointing to the destination page. + * @return 0 on success, non-zero on failure. + */ +static int +mdb_page_merge(MDB_cursor *csrc, MDB_cursor *cdst) +{ + MDB_page *psrc, *pdst; + MDB_node *srcnode; + MDB_val key, data; + unsigned nkeys; + int rc; + indx_t i, j; + + psrc = csrc->mc_pg[csrc->mc_top]; + pdst = cdst->mc_pg[cdst->mc_top]; + + DPRINTF(("merging page %"Z"u into %"Z"u", psrc->mp_pgno, pdst->mp_pgno)); + + mdb_cassert(csrc, csrc->mc_snum > 1); /* can't merge root page */ + mdb_cassert(csrc, cdst->mc_snum > 1); + + /* Mark dst as dirty. */ + if ((rc = mdb_page_touch(cdst))) + return rc; + + /* get dst page again now that we've touched it. */ + pdst = cdst->mc_pg[cdst->mc_top]; + + /* Move all nodes from src to dst. + */ + j = nkeys = NUMKEYS(pdst); + if (IS_LEAF2(psrc)) { + key.mv_size = csrc->mc_db->md_pad; + key.mv_data = METADATA(psrc); + for (i = 0; i < NUMKEYS(psrc); i++, j++) { + rc = mdb_node_add(cdst, j, &key, NULL, 0, 0); + if (rc != MDB_SUCCESS) + return rc; + key.mv_data = (char *)key.mv_data + key.mv_size; + } + } else { + for (i = 0; i < NUMKEYS(psrc); i++, j++) { + srcnode = NODEPTR(psrc, i); + if (i == 0 && IS_BRANCH(psrc)) { + MDB_cursor mn; + MDB_node *s2; + mdb_cursor_copy(csrc, &mn); + mn.mc_xcursor = NULL; + /* must find the lowest key below src */ + rc = mdb_page_search_lowest(&mn); + if (rc) + return rc; + if (IS_LEAF2(mn.mc_pg[mn.mc_top])) { + key.mv_size = mn.mc_db->md_pad; + key.mv_data = LEAF2KEY(mn.mc_pg[mn.mc_top], 0, key.mv_size); + } else { + s2 = NODEPTR(mn.mc_pg[mn.mc_top], 0); + key.mv_size = NODEKSZ(s2); + key.mv_data = NODEKEY(s2); + } + } else { + key.mv_size = srcnode->mn_ksize; + key.mv_data = NODEKEY(srcnode); + } + + data.mv_size = NODEDSZ(srcnode); + data.mv_data = NODEDATA(srcnode); + rc = mdb_node_add(cdst, j, &key, &data, NODEPGNO(srcnode), srcnode->mn_flags); + if (rc != MDB_SUCCESS) + return rc; + } + } + + DPRINTF(("dst page %"Z"u now has %u keys (%.1f%% filled)", + pdst->mp_pgno, NUMKEYS(pdst), + (float)PAGEFILL(cdst->mc_txn->mt_env, pdst) / 10)); + + /* Unlink the src page from parent and add to free list. + */ + csrc->mc_top--; + mdb_node_del(csrc, 0); + if (csrc->mc_ki[csrc->mc_top] == 0) { + key.mv_size = 0; + rc = mdb_update_key(csrc, &key); + if (rc) { + csrc->mc_top++; + return rc; + } + } + csrc->mc_top++; + + psrc = csrc->mc_pg[csrc->mc_top]; + /* If not operating on FreeDB, allow this page to be reused + * in this txn. Otherwise just add to free list. + */ + rc = mdb_page_loose(csrc, psrc); + if (rc) + return rc; + if (IS_LEAF(psrc)) + csrc->mc_db->md_leaf_pages--; + else + csrc->mc_db->md_branch_pages--; + { + /* Adjust other cursors pointing to mp */ + MDB_cursor *m2, *m3; + MDB_dbi dbi = csrc->mc_dbi; + unsigned int top = csrc->mc_top; + + for (m2 = csrc->mc_txn->mt_cursors[dbi]; m2; m2=m2->mc_next) { + if (csrc->mc_flags & C_SUB) + m3 = &m2->mc_xcursor->mx_cursor; + else + m3 = m2; + if (m3 == csrc) continue; + if (m3->mc_snum < csrc->mc_snum) continue; + if (m3->mc_pg[top] == psrc) { + m3->mc_pg[top] = pdst; + m3->mc_ki[top] += nkeys; + m3->mc_ki[top-1] = cdst->mc_ki[top-1]; + } else if (m3->mc_pg[top-1] == csrc->mc_pg[top-1] && + m3->mc_ki[top-1] > csrc->mc_ki[top-1]) { + m3->mc_ki[top-1]--; + } + if (IS_LEAF(psrc)) + XCURSOR_REFRESH(m3, top, m3->mc_pg[top]); + } + } + { + unsigned int snum = cdst->mc_snum; + uint16_t depth = cdst->mc_db->md_depth; + mdb_cursor_pop(cdst); + rc = mdb_rebalance(cdst); + /* Did the tree height change? */ + if (depth != cdst->mc_db->md_depth) + snum += cdst->mc_db->md_depth - depth; + cdst->mc_snum = snum; + cdst->mc_top = snum-1; + } + return rc; +} + +/** Copy the contents of a cursor. + * @param[in] csrc The cursor to copy from. + * @param[out] cdst The cursor to copy to. + */ +static void +mdb_cursor_copy(const MDB_cursor *csrc, MDB_cursor *cdst) +{ + unsigned int i; + + cdst->mc_txn = csrc->mc_txn; + cdst->mc_dbi = csrc->mc_dbi; + cdst->mc_db = csrc->mc_db; + cdst->mc_dbx = csrc->mc_dbx; + cdst->mc_snum = csrc->mc_snum; + cdst->mc_top = csrc->mc_top; + cdst->mc_flags = csrc->mc_flags; + + for (i=0; imc_snum; i++) { + cdst->mc_pg[i] = csrc->mc_pg[i]; + cdst->mc_ki[i] = csrc->mc_ki[i]; + } +} + +/** Rebalance the tree after a delete operation. + * @param[in] mc Cursor pointing to the page where rebalancing + * should begin. + * @return 0 on success, non-zero on failure. + */ +static int +mdb_rebalance(MDB_cursor *mc) +{ + MDB_node *node; + int rc, fromleft; + unsigned int ptop, minkeys, thresh; + MDB_cursor mn; + indx_t oldki; + + if (IS_BRANCH(mc->mc_pg[mc->mc_top])) { + minkeys = 2; + thresh = 1; + } else { + minkeys = 1; + thresh = FILL_THRESHOLD; + } + DPRINTF(("rebalancing %s page %"Z"u (has %u keys, %.1f%% full)", + IS_LEAF(mc->mc_pg[mc->mc_top]) ? "leaf" : "branch", + mdb_dbg_pgno(mc->mc_pg[mc->mc_top]), NUMKEYS(mc->mc_pg[mc->mc_top]), + (float)PAGEFILL(mc->mc_txn->mt_env, mc->mc_pg[mc->mc_top]) / 10)); + + if (PAGEFILL(mc->mc_txn->mt_env, mc->mc_pg[mc->mc_top]) >= thresh && + NUMKEYS(mc->mc_pg[mc->mc_top]) >= minkeys) { + DPRINTF(("no need to rebalance page %"Z"u, above fill threshold", + mdb_dbg_pgno(mc->mc_pg[mc->mc_top]))); + return MDB_SUCCESS; + } + + if (mc->mc_snum < 2) { + MDB_page *mp = mc->mc_pg[0]; + if (IS_SUBP(mp)) { + DPUTS("Can't rebalance a subpage, ignoring"); + return MDB_SUCCESS; + } + if (NUMKEYS(mp) == 0) { + DPUTS("tree is completely empty"); + mc->mc_db->md_root = P_INVALID; + mc->mc_db->md_depth = 0; + mc->mc_db->md_leaf_pages = 0; + rc = mdb_midl_append(&mc->mc_txn->mt_free_pgs, mp->mp_pgno); + if (rc) + return rc; + /* Adjust cursors pointing to mp */ + mc->mc_snum = 0; + mc->mc_top = 0; + mc->mc_flags &= ~C_INITIALIZED; + { + MDB_cursor *m2, *m3; + MDB_dbi dbi = mc->mc_dbi; + + for (m2 = mc->mc_txn->mt_cursors[dbi]; m2; m2=m2->mc_next) { + if (mc->mc_flags & C_SUB) + m3 = &m2->mc_xcursor->mx_cursor; + else + m3 = m2; + if (!(m3->mc_flags & C_INITIALIZED) || (m3->mc_snum < mc->mc_snum)) + continue; + if (m3->mc_pg[0] == mp) { + m3->mc_snum = 0; + m3->mc_top = 0; + m3->mc_flags &= ~C_INITIALIZED; + } + } + } + } else if (IS_BRANCH(mp) && NUMKEYS(mp) == 1) { + int i; + DPUTS("collapsing root page!"); + rc = mdb_midl_append(&mc->mc_txn->mt_free_pgs, mp->mp_pgno); + if (rc) + return rc; + mc->mc_db->md_root = NODEPGNO(NODEPTR(mp, 0)); + rc = mdb_page_get(mc, mc->mc_db->md_root, &mc->mc_pg[0], NULL); + if (rc) + return rc; + mc->mc_db->md_depth--; + mc->mc_db->md_branch_pages--; + mc->mc_ki[0] = mc->mc_ki[1]; + for (i = 1; imc_db->md_depth; i++) { + mc->mc_pg[i] = mc->mc_pg[i+1]; + mc->mc_ki[i] = mc->mc_ki[i+1]; + } + { + /* Adjust other cursors pointing to mp */ + MDB_cursor *m2, *m3; + MDB_dbi dbi = mc->mc_dbi; + + for (m2 = mc->mc_txn->mt_cursors[dbi]; m2; m2=m2->mc_next) { + if (mc->mc_flags & C_SUB) + m3 = &m2->mc_xcursor->mx_cursor; + else + m3 = m2; + if (m3 == mc) continue; + if (!(m3->mc_flags & C_INITIALIZED)) + continue; + if (m3->mc_pg[0] == mp) { + for (i=0; imc_db->md_depth; i++) { + m3->mc_pg[i] = m3->mc_pg[i+1]; + m3->mc_ki[i] = m3->mc_ki[i+1]; + } + m3->mc_snum--; + m3->mc_top--; + } + } + } + } else + DPUTS("root page doesn't need rebalancing"); + return MDB_SUCCESS; + } + + /* The parent (branch page) must have at least 2 pointers, + * otherwise the tree is invalid. + */ + ptop = mc->mc_top-1; + mdb_cassert(mc, NUMKEYS(mc->mc_pg[ptop]) > 1); + + /* Leaf page fill factor is below the threshold. + * Try to move keys from left or right neighbor, or + * merge with a neighbor page. + */ + + /* Find neighbors. + */ + mdb_cursor_copy(mc, &mn); + mn.mc_xcursor = NULL; + + oldki = mc->mc_ki[mc->mc_top]; + if (mc->mc_ki[ptop] == 0) { + /* We're the leftmost leaf in our parent. + */ + DPUTS("reading right neighbor"); + mn.mc_ki[ptop]++; + node = NODEPTR(mc->mc_pg[ptop], mn.mc_ki[ptop]); + rc = mdb_page_get(mc, NODEPGNO(node), &mn.mc_pg[mn.mc_top], NULL); + if (rc) + return rc; + mn.mc_ki[mn.mc_top] = 0; + mc->mc_ki[mc->mc_top] = NUMKEYS(mc->mc_pg[mc->mc_top]); + fromleft = 0; + } else { + /* There is at least one neighbor to the left. + */ + DPUTS("reading left neighbor"); + mn.mc_ki[ptop]--; + node = NODEPTR(mc->mc_pg[ptop], mn.mc_ki[ptop]); + rc = mdb_page_get(mc, NODEPGNO(node), &mn.mc_pg[mn.mc_top], NULL); + if (rc) + return rc; + mn.mc_ki[mn.mc_top] = NUMKEYS(mn.mc_pg[mn.mc_top]) - 1; + mc->mc_ki[mc->mc_top] = 0; + fromleft = 1; + } + + DPRINTF(("found neighbor page %"Z"u (%u keys, %.1f%% full)", + mn.mc_pg[mn.mc_top]->mp_pgno, NUMKEYS(mn.mc_pg[mn.mc_top]), + (float)PAGEFILL(mc->mc_txn->mt_env, mn.mc_pg[mn.mc_top]) / 10)); + + /* If the neighbor page is above threshold and has enough keys, + * move one key from it. Otherwise we should try to merge them. + * (A branch page must never have less than 2 keys.) + */ + if (PAGEFILL(mc->mc_txn->mt_env, mn.mc_pg[mn.mc_top]) >= thresh && NUMKEYS(mn.mc_pg[mn.mc_top]) > minkeys) { + rc = mdb_node_move(&mn, mc, fromleft); + if (fromleft) { + /* if we inserted on left, bump position up */ + oldki++; + } + } else { + if (!fromleft) { + rc = mdb_page_merge(&mn, mc); + } else { + oldki += NUMKEYS(mn.mc_pg[mn.mc_top]); + mn.mc_ki[mn.mc_top] += mc->mc_ki[mn.mc_top] + 1; + /* We want mdb_rebalance to find mn when doing fixups */ + WITH_CURSOR_TRACKING(mn, + rc = mdb_page_merge(mc, &mn)); + mdb_cursor_copy(&mn, mc); + } + mc->mc_flags &= ~C_EOF; + } + mc->mc_ki[mc->mc_top] = oldki; + return rc; +} + +/** Complete a delete operation started by #mdb_cursor_del(). */ +static int +mdb_cursor_del0(MDB_cursor *mc) +{ + int rc; + MDB_page *mp; + indx_t ki; + unsigned int nkeys; + MDB_cursor *m2, *m3; + MDB_dbi dbi = mc->mc_dbi; + + ki = mc->mc_ki[mc->mc_top]; + mp = mc->mc_pg[mc->mc_top]; + mdb_node_del(mc, mc->mc_db->md_pad); + mc->mc_db->md_entries--; + { + /* Adjust other cursors pointing to mp */ + for (m2 = mc->mc_txn->mt_cursors[dbi]; m2; m2=m2->mc_next) { + m3 = (mc->mc_flags & C_SUB) ? &m2->mc_xcursor->mx_cursor : m2; + if (! (m2->mc_flags & m3->mc_flags & C_INITIALIZED)) + continue; + if (m3 == mc || m3->mc_snum < mc->mc_snum) + continue; + if (m3->mc_pg[mc->mc_top] == mp) { + if (m3->mc_ki[mc->mc_top] == ki) { + m3->mc_flags |= C_DEL; + if (mc->mc_db->md_flags & MDB_DUPSORT) { + /* Sub-cursor referred into dataset which is gone */ + m3->mc_xcursor->mx_cursor.mc_flags &= ~(C_INITIALIZED|C_EOF); + } + continue; + } else if (m3->mc_ki[mc->mc_top] > ki) { + m3->mc_ki[mc->mc_top]--; + } + XCURSOR_REFRESH(m3, mc->mc_top, mp); + } + } + } + rc = mdb_rebalance(mc); + if (rc) + goto fail; + + /* DB is totally empty now, just bail out. + * Other cursors adjustments were already done + * by mdb_rebalance and aren't needed here. + */ + if (!mc->mc_snum) { + mc->mc_flags |= C_EOF; + return rc; + } + + mp = mc->mc_pg[mc->mc_top]; + nkeys = NUMKEYS(mp); + + /* Adjust other cursors pointing to mp */ + for (m2 = mc->mc_txn->mt_cursors[dbi]; !rc && m2; m2=m2->mc_next) { + m3 = (mc->mc_flags & C_SUB) ? &m2->mc_xcursor->mx_cursor : m2; + if (!(m2->mc_flags & m3->mc_flags & C_INITIALIZED)) + continue; + if (m3->mc_snum < mc->mc_snum) + continue; + if (m3->mc_pg[mc->mc_top] == mp) { + if (m3->mc_ki[mc->mc_top] >= mc->mc_ki[mc->mc_top]) { + /* if m3 points past last node in page, find next sibling */ + if (m3->mc_ki[mc->mc_top] >= nkeys) { + rc = mdb_cursor_sibling(m3, 1); + if (rc == MDB_NOTFOUND) { + m3->mc_flags |= C_EOF; + rc = MDB_SUCCESS; + continue; + } + if (rc) + goto fail; + } + if (m3->mc_xcursor && !(m3->mc_flags & C_EOF)) { + MDB_node *node = NODEPTR(m3->mc_pg[m3->mc_top], m3->mc_ki[m3->mc_top]); + /* If this node has dupdata, it may need to be reinited + * because its data has moved. + * If the xcursor was not initd it must be reinited. + * Else if node points to a subDB, nothing is needed. + * Else (xcursor was initd, not a subDB) needs mc_pg[0] reset. + */ + if (node->mn_flags & F_DUPDATA) { + if (m3->mc_xcursor->mx_cursor.mc_flags & C_INITIALIZED) { + if (!(node->mn_flags & F_SUBDATA)) + m3->mc_xcursor->mx_cursor.mc_pg[0] = NODEDATA(node); + } else { + mdb_xcursor_init1(m3, node); + rc = mdb_cursor_first(&m3->mc_xcursor->mx_cursor, NULL, NULL); + if (rc) + goto fail; + } + } + m3->mc_xcursor->mx_cursor.mc_flags |= C_DEL; + } + } + } + } + mc->mc_flags |= C_DEL; + +fail: + if (rc) + mc->mc_txn->mt_flags |= MDB_TXN_ERROR; + return rc; +} + +int +mdb_del(MDB_txn *txn, MDB_dbi dbi, + MDB_val *key, MDB_val *data) +{ + if (!key || !TXN_DBI_EXIST(txn, dbi, DB_USRVALID)) + return EINVAL; + + if (txn->mt_flags & (MDB_TXN_RDONLY|MDB_TXN_BLOCKED)) + return (txn->mt_flags & MDB_TXN_RDONLY) ? EACCES : MDB_BAD_TXN; + + if (!F_ISSET(txn->mt_dbs[dbi].md_flags, MDB_DUPSORT)) { + /* must ignore any data */ + data = NULL; + } + + return mdb_del0(txn, dbi, key, data, 0); +} + +static int +mdb_del0(MDB_txn *txn, MDB_dbi dbi, + MDB_val *key, MDB_val *data, unsigned flags) +{ + MDB_cursor mc; + MDB_xcursor mx; + MDB_cursor_op op; + MDB_val rdata, *xdata; + int rc, exact = 0; + DKBUF; + + DPRINTF(("====> delete db %u key [%s]", dbi, DKEY(key))); + + mdb_cursor_init(&mc, txn, dbi, &mx); + + if (data) { + op = MDB_GET_BOTH; + rdata = *data; + xdata = &rdata; + } else { + op = MDB_SET; + xdata = NULL; + flags |= MDB_NODUPDATA; + } + rc = mdb_cursor_set(&mc, key, xdata, op, &exact); + if (rc == 0) { + /* let mdb_page_split know about this cursor if needed: + * delete will trigger a rebalance; if it needs to move + * a node from one page to another, it will have to + * update the parent's separator key(s). If the new sepkey + * is larger than the current one, the parent page may + * run out of space, triggering a split. We need this + * cursor to be consistent until the end of the rebalance. + */ + mc.mc_flags |= C_UNTRACK; + mc.mc_next = txn->mt_cursors[dbi]; + txn->mt_cursors[dbi] = &mc; + rc = mdb_cursor_del(&mc, flags); + txn->mt_cursors[dbi] = mc.mc_next; + } + return rc; +} + +/** Split a page and insert a new node. + * Set #MDB_TXN_ERROR on failure. + * @param[in,out] mc Cursor pointing to the page and desired insertion index. + * The cursor will be updated to point to the actual page and index where + * the node got inserted after the split. + * @param[in] newkey The key for the newly inserted node. + * @param[in] newdata The data for the newly inserted node. + * @param[in] newpgno The page number, if the new node is a branch node. + * @param[in] nflags The #NODE_ADD_FLAGS for the new node. + * @return 0 on success, non-zero on failure. + */ +static int +mdb_page_split(MDB_cursor *mc, MDB_val *newkey, MDB_val *newdata, pgno_t newpgno, + unsigned int nflags) +{ + unsigned int flags; + int rc = MDB_SUCCESS, new_root = 0, did_split = 0; + indx_t newindx; + pgno_t pgno = 0; + int i, j, split_indx, nkeys, pmax; + MDB_env *env = mc->mc_txn->mt_env; + MDB_node *node; + MDB_val sepkey, rkey, xdata, *rdata = &xdata; + MDB_page *copy = NULL; + MDB_page *mp, *rp, *pp; + int ptop; + MDB_cursor mn; + DKBUF; + + mp = mc->mc_pg[mc->mc_top]; + newindx = mc->mc_ki[mc->mc_top]; + nkeys = NUMKEYS(mp); + + DPRINTF(("-----> splitting %s page %"Z"u and adding [%s] at index %i/%i", + IS_LEAF(mp) ? "leaf" : "branch", mp->mp_pgno, + DKEY(newkey), mc->mc_ki[mc->mc_top], nkeys)); + + /* Create a right sibling. */ + if ((rc = mdb_page_new(mc, mp->mp_flags, 1, &rp))) + return rc; + rp->mp_pad = mp->mp_pad; + DPRINTF(("new right sibling: page %"Z"u", rp->mp_pgno)); + + /* Usually when splitting the root page, the cursor + * height is 1. But when called from mdb_update_key, + * the cursor height may be greater because it walks + * up the stack while finding the branch slot to update. + */ + if (mc->mc_top < 1) { + if ((rc = mdb_page_new(mc, P_BRANCH, 1, &pp))) + goto done; + /* shift current top to make room for new parent */ + for (i=mc->mc_snum; i>0; i--) { + mc->mc_pg[i] = mc->mc_pg[i-1]; + mc->mc_ki[i] = mc->mc_ki[i-1]; + } + mc->mc_pg[0] = pp; + mc->mc_ki[0] = 0; + mc->mc_db->md_root = pp->mp_pgno; + DPRINTF(("root split! new root = %"Z"u", pp->mp_pgno)); + new_root = mc->mc_db->md_depth++; + + /* Add left (implicit) pointer. */ + if ((rc = mdb_node_add(mc, 0, NULL, NULL, mp->mp_pgno, 0)) != MDB_SUCCESS) { + /* undo the pre-push */ + mc->mc_pg[0] = mc->mc_pg[1]; + mc->mc_ki[0] = mc->mc_ki[1]; + mc->mc_db->md_root = mp->mp_pgno; + mc->mc_db->md_depth--; + goto done; + } + mc->mc_snum++; + mc->mc_top++; + ptop = 0; + } else { + ptop = mc->mc_top-1; + DPRINTF(("parent branch page is %"Z"u", mc->mc_pg[ptop]->mp_pgno)); + } + + mdb_cursor_copy(mc, &mn); + mn.mc_xcursor = NULL; + mn.mc_pg[mn.mc_top] = rp; + mn.mc_ki[ptop] = mc->mc_ki[ptop]+1; + + if (nflags & MDB_APPEND) { + mn.mc_ki[mn.mc_top] = 0; + sepkey = *newkey; + split_indx = newindx; + nkeys = 0; + } else { + + split_indx = (nkeys+1) / 2; + + if (IS_LEAF2(rp)) { + char *split, *ins; + int x; + unsigned int lsize, rsize, ksize; + /* Move half of the keys to the right sibling */ + x = mc->mc_ki[mc->mc_top] - split_indx; + ksize = mc->mc_db->md_pad; + split = LEAF2KEY(mp, split_indx, ksize); + rsize = (nkeys - split_indx) * ksize; + lsize = (nkeys - split_indx) * sizeof(indx_t); + mp->mp_lower -= lsize; + rp->mp_lower += lsize; + mp->mp_upper += rsize - lsize; + rp->mp_upper -= rsize - lsize; + sepkey.mv_size = ksize; + if (newindx == split_indx) { + sepkey.mv_data = newkey->mv_data; + } else { + sepkey.mv_data = split; + } + if (x<0) { + ins = LEAF2KEY(mp, mc->mc_ki[mc->mc_top], ksize); + memcpy(rp->mp_ptrs, split, rsize); + sepkey.mv_data = rp->mp_ptrs; + memmove(ins+ksize, ins, (split_indx - mc->mc_ki[mc->mc_top]) * ksize); + memcpy(ins, newkey->mv_data, ksize); + mp->mp_lower += sizeof(indx_t); + mp->mp_upper -= ksize - sizeof(indx_t); + } else { + if (x) + memcpy(rp->mp_ptrs, split, x * ksize); + ins = LEAF2KEY(rp, x, ksize); + memcpy(ins, newkey->mv_data, ksize); + memcpy(ins+ksize, split + x * ksize, rsize - x * ksize); + rp->mp_lower += sizeof(indx_t); + rp->mp_upper -= ksize - sizeof(indx_t); + mc->mc_ki[mc->mc_top] = x; + } + } else { + int psize, nsize, k; + /* Maximum free space in an empty page */ + pmax = env->me_psize - PAGEHDRSZ; + if (IS_LEAF(mp)) + nsize = mdb_leaf_size(env, newkey, newdata); + else + nsize = mdb_branch_size(env, newkey); + nsize = EVEN(nsize); + + /* grab a page to hold a temporary copy */ + copy = mdb_page_malloc(mc->mc_txn, 1); + if (copy == NULL) { + rc = ENOMEM; + goto done; + } + copy->mp_pgno = mp->mp_pgno; + copy->mp_flags = mp->mp_flags; + copy->mp_lower = (PAGEHDRSZ-PAGEBASE); + copy->mp_upper = env->me_psize - PAGEBASE; + + /* prepare to insert */ + for (i=0, j=0; imp_ptrs[j++] = 0; + } + copy->mp_ptrs[j++] = mp->mp_ptrs[i]; + } + + /* When items are relatively large the split point needs + * to be checked, because being off-by-one will make the + * difference between success or failure in mdb_node_add. + * + * It's also relevant if a page happens to be laid out + * such that one half of its nodes are all "small" and + * the other half of its nodes are "large." If the new + * item is also "large" and falls on the half with + * "large" nodes, it also may not fit. + * + * As a final tweak, if the new item goes on the last + * spot on the page (and thus, onto the new page), bias + * the split so the new page is emptier than the old page. + * This yields better packing during sequential inserts. + */ + if (nkeys < 32 || nsize > pmax/16 || newindx >= nkeys) { + /* Find split point */ + psize = 0; + if (newindx <= split_indx || newindx >= nkeys) { + i = 0; j = 1; + k = newindx >= nkeys ? nkeys : split_indx+1+IS_LEAF(mp); + } else { + i = nkeys; j = -1; + k = split_indx-1; + } + for (; i!=k; i+=j) { + if (i == newindx) { + psize += nsize; + node = NULL; + } else { + node = (MDB_node *)((char *)mp + copy->mp_ptrs[i] + PAGEBASE); + psize += NODESIZE + NODEKSZ(node) + sizeof(indx_t); + if (IS_LEAF(mp)) { + if (F_ISSET(node->mn_flags, F_BIGDATA)) + psize += sizeof(pgno_t); + else + psize += NODEDSZ(node); + } + psize = EVEN(psize); + } + if (psize > pmax || i == k-j) { + split_indx = i + (j<0); + break; + } + } + } + if (split_indx == newindx) { + sepkey.mv_size = newkey->mv_size; + sepkey.mv_data = newkey->mv_data; + } else { + node = (MDB_node *)((char *)mp + copy->mp_ptrs[split_indx] + PAGEBASE); + sepkey.mv_size = node->mn_ksize; + sepkey.mv_data = NODEKEY(node); + } + } + } + + DPRINTF(("separator is %d [%s]", split_indx, DKEY(&sepkey))); + + /* Copy separator key to the parent. + */ + if (SIZELEFT(mn.mc_pg[ptop]) < mdb_branch_size(env, &sepkey)) { + int snum = mc->mc_snum; + mn.mc_snum--; + mn.mc_top--; + did_split = 1; + /* We want other splits to find mn when doing fixups */ + WITH_CURSOR_TRACKING(mn, + rc = mdb_page_split(&mn, &sepkey, NULL, rp->mp_pgno, 0)); + if (rc) + goto done; + + /* root split? */ + if (mc->mc_snum > snum) { + ptop++; + } + /* Right page might now have changed parent. + * Check if left page also changed parent. + */ + if (mn.mc_pg[ptop] != mc->mc_pg[ptop] && + mc->mc_ki[ptop] >= NUMKEYS(mc->mc_pg[ptop])) { + for (i=0; imc_pg[i] = mn.mc_pg[i]; + mc->mc_ki[i] = mn.mc_ki[i]; + } + mc->mc_pg[ptop] = mn.mc_pg[ptop]; + if (mn.mc_ki[ptop]) { + mc->mc_ki[ptop] = mn.mc_ki[ptop] - 1; + } else { + /* find right page's left sibling */ + mc->mc_ki[ptop] = mn.mc_ki[ptop]; + mdb_cursor_sibling(mc, 0); + } + } + } else { + mn.mc_top--; + rc = mdb_node_add(&mn, mn.mc_ki[ptop], &sepkey, NULL, rp->mp_pgno, 0); + mn.mc_top++; + } + if (rc != MDB_SUCCESS) { + goto done; + } + if (nflags & MDB_APPEND) { + mc->mc_pg[mc->mc_top] = rp; + mc->mc_ki[mc->mc_top] = 0; + rc = mdb_node_add(mc, 0, newkey, newdata, newpgno, nflags); + if (rc) + goto done; + for (i=0; imc_top; i++) + mc->mc_ki[i] = mn.mc_ki[i]; + } else if (!IS_LEAF2(mp)) { + /* Move nodes */ + mc->mc_pg[mc->mc_top] = rp; + i = split_indx; + j = 0; + do { + if (i == newindx) { + rkey.mv_data = newkey->mv_data; + rkey.mv_size = newkey->mv_size; + if (IS_LEAF(mp)) { + rdata = newdata; + } else + pgno = newpgno; + flags = nflags; + /* Update index for the new key. */ + mc->mc_ki[mc->mc_top] = j; + } else { + node = (MDB_node *)((char *)mp + copy->mp_ptrs[i] + PAGEBASE); + rkey.mv_data = NODEKEY(node); + rkey.mv_size = node->mn_ksize; + if (IS_LEAF(mp)) { + xdata.mv_data = NODEDATA(node); + xdata.mv_size = NODEDSZ(node); + rdata = &xdata; + } else + pgno = NODEPGNO(node); + flags = node->mn_flags; + } + + if (!IS_LEAF(mp) && j == 0) { + /* First branch index doesn't need key data. */ + rkey.mv_size = 0; + } + + rc = mdb_node_add(mc, j, &rkey, rdata, pgno, flags); + if (rc) + goto done; + if (i == nkeys) { + i = 0; + j = 0; + mc->mc_pg[mc->mc_top] = copy; + } else { + i++; + j++; + } + } while (i != split_indx); + + nkeys = NUMKEYS(copy); + for (i=0; imp_ptrs[i] = copy->mp_ptrs[i]; + mp->mp_lower = copy->mp_lower; + mp->mp_upper = copy->mp_upper; + memcpy(NODEPTR(mp, nkeys-1), NODEPTR(copy, nkeys-1), + env->me_psize - copy->mp_upper - PAGEBASE); + + /* reset back to original page */ + if (newindx < split_indx) { + mc->mc_pg[mc->mc_top] = mp; + } else { + mc->mc_pg[mc->mc_top] = rp; + mc->mc_ki[ptop]++; + /* Make sure mc_ki is still valid. + */ + if (mn.mc_pg[ptop] != mc->mc_pg[ptop] && + mc->mc_ki[ptop] >= NUMKEYS(mc->mc_pg[ptop])) { + for (i=0; i<=ptop; i++) { + mc->mc_pg[i] = mn.mc_pg[i]; + mc->mc_ki[i] = mn.mc_ki[i]; + } + } + } + if (nflags & MDB_RESERVE) { + node = NODEPTR(mc->mc_pg[mc->mc_top], mc->mc_ki[mc->mc_top]); + if (!(node->mn_flags & F_BIGDATA)) + newdata->mv_data = NODEDATA(node); + } + } else { + if (newindx >= split_indx) { + mc->mc_pg[mc->mc_top] = rp; + mc->mc_ki[ptop]++; + /* Make sure mc_ki is still valid. + */ + if (mn.mc_pg[ptop] != mc->mc_pg[ptop] && + mc->mc_ki[ptop] >= NUMKEYS(mc->mc_pg[ptop])) { + for (i=0; i<=ptop; i++) { + mc->mc_pg[i] = mn.mc_pg[i]; + mc->mc_ki[i] = mn.mc_ki[i]; + } + } + } + } + + { + /* Adjust other cursors pointing to mp */ + MDB_cursor *m2, *m3; + MDB_dbi dbi = mc->mc_dbi; + nkeys = NUMKEYS(mp); + + for (m2 = mc->mc_txn->mt_cursors[dbi]; m2; m2=m2->mc_next) { + if (mc->mc_flags & C_SUB) + m3 = &m2->mc_xcursor->mx_cursor; + else + m3 = m2; + if (m3 == mc) + continue; + if (!(m2->mc_flags & m3->mc_flags & C_INITIALIZED)) + continue; + if (new_root) { + int k; + /* sub cursors may be on different DB */ + if (m3->mc_pg[0] != mp) + continue; + /* root split */ + for (k=new_root; k>=0; k--) { + m3->mc_ki[k+1] = m3->mc_ki[k]; + m3->mc_pg[k+1] = m3->mc_pg[k]; + } + if (m3->mc_ki[0] >= nkeys) { + m3->mc_ki[0] = 1; + } else { + m3->mc_ki[0] = 0; + } + m3->mc_pg[0] = mc->mc_pg[0]; + m3->mc_snum++; + m3->mc_top++; + } + if (m3->mc_top >= mc->mc_top && m3->mc_pg[mc->mc_top] == mp) { + if (m3->mc_ki[mc->mc_top] >= newindx && !(nflags & MDB_SPLIT_REPLACE)) + m3->mc_ki[mc->mc_top]++; + if (m3->mc_ki[mc->mc_top] >= nkeys) { + m3->mc_pg[mc->mc_top] = rp; + m3->mc_ki[mc->mc_top] -= nkeys; + for (i=0; imc_top; i++) { + m3->mc_ki[i] = mn.mc_ki[i]; + m3->mc_pg[i] = mn.mc_pg[i]; + } + } + } else if (!did_split && m3->mc_top >= ptop && m3->mc_pg[ptop] == mc->mc_pg[ptop] && + m3->mc_ki[ptop] >= mc->mc_ki[ptop]) { + m3->mc_ki[ptop]++; + } + if (IS_LEAF(mp)) + XCURSOR_REFRESH(m3, mc->mc_top, m3->mc_pg[mc->mc_top]); + } + } + DPRINTF(("mp left: %d, rp left: %d", SIZELEFT(mp), SIZELEFT(rp))); + +done: + if (copy) /* tmp page */ + mdb_page_free(env, copy); + if (rc) + mc->mc_txn->mt_flags |= MDB_TXN_ERROR; + return rc; +} + +int +mdb_put(MDB_txn *txn, MDB_dbi dbi, + MDB_val *key, MDB_val *data, unsigned int flags) +{ + MDB_cursor mc; + MDB_xcursor mx; + int rc; + + if (!key || !data || !TXN_DBI_EXIST(txn, dbi, DB_USRVALID)) + return EINVAL; + + if (flags & ~(MDB_NOOVERWRITE|MDB_NODUPDATA|MDB_RESERVE|MDB_APPEND|MDB_APPENDDUP)) + return EINVAL; + + if (txn->mt_flags & (MDB_TXN_RDONLY|MDB_TXN_BLOCKED)) + return (txn->mt_flags & MDB_TXN_RDONLY) ? EACCES : MDB_BAD_TXN; + + mdb_cursor_init(&mc, txn, dbi, &mx); + mc.mc_next = txn->mt_cursors[dbi]; + txn->mt_cursors[dbi] = &mc; + rc = mdb_cursor_put(&mc, key, data, flags); + txn->mt_cursors[dbi] = mc.mc_next; + return rc; +} + +#ifndef MDB_WBUF +#define MDB_WBUF (1024*1024) +#endif +#define MDB_EOF 0x10 /**< #mdb_env_copyfd1() is done reading */ + + /** State needed for a double-buffering compacting copy. */ +typedef struct mdb_copy { + MDB_env *mc_env; + MDB_txn *mc_txn; + pthread_mutex_t mc_mutex; + pthread_cond_t mc_cond; /**< Condition variable for #mc_new */ + char *mc_wbuf[2]; + char *mc_over[2]; + int mc_wlen[2]; + int mc_olen[2]; + pgno_t mc_next_pgno; + HANDLE mc_fd; + int mc_toggle; /**< Buffer number in provider */ + int mc_new; /**< (0-2 buffers to write) | (#MDB_EOF at end) */ + /** Error code. Never cleared if set. Both threads can set nonzero + * to fail the copy. Not mutex-protected, LMDB expects atomic int. + */ + volatile int mc_error; +} mdb_copy; + + /** Dedicated writer thread for compacting copy. */ +static THREAD_RET ESECT CALL_CONV +mdb_env_copythr(void *arg) +{ + mdb_copy *my = arg; + char *ptr; + int toggle = 0, wsize, rc; +#ifdef _WIN32 + DWORD len; +#define DO_WRITE(rc, fd, ptr, w2, len) rc = WriteFile(fd, ptr, w2, &len, NULL) +#else + int len; +#define DO_WRITE(rc, fd, ptr, w2, len) len = write(fd, ptr, w2); rc = (len >= 0) +#ifdef SIGPIPE + sigset_t set; + sigemptyset(&set); + sigaddset(&set, SIGPIPE); + if ((rc = pthread_sigmask(SIG_BLOCK, &set, NULL)) != 0) + my->mc_error = rc; +#endif +#endif + + pthread_mutex_lock(&my->mc_mutex); + for(;;) { + while (!my->mc_new) + pthread_cond_wait(&my->mc_cond, &my->mc_mutex); + if (my->mc_new == 0 + MDB_EOF) /* 0 buffers, just EOF */ + break; + wsize = my->mc_wlen[toggle]; + ptr = my->mc_wbuf[toggle]; +again: + rc = MDB_SUCCESS; + while (wsize > 0 && !my->mc_error) { + DO_WRITE(rc, my->mc_fd, ptr, wsize, len); + if (!rc) { + rc = ErrCode(); +#if defined(SIGPIPE) && !defined(_WIN32) + if (rc == EPIPE) { + /* Collect the pending SIGPIPE, otherwise at least OS X + * gives it to the process on thread-exit (ITS#8504). + */ + int tmp; + sigwait(&set, &tmp); + } +#endif + break; + } else if (len > 0) { + rc = MDB_SUCCESS; + ptr += len; + wsize -= len; + continue; + } else { + rc = EIO; + break; + } + } + if (rc) { + my->mc_error = rc; + } + /* If there's an overflow page tail, write it too */ + if (my->mc_olen[toggle]) { + wsize = my->mc_olen[toggle]; + ptr = my->mc_over[toggle]; + my->mc_olen[toggle] = 0; + goto again; + } + my->mc_wlen[toggle] = 0; + toggle ^= 1; + /* Return the empty buffer to provider */ + my->mc_new--; + pthread_cond_signal(&my->mc_cond); + } + pthread_mutex_unlock(&my->mc_mutex); + return (THREAD_RET)0; +#undef DO_WRITE +} + + /** Give buffer and/or #MDB_EOF to writer thread, await unused buffer. + * + * @param[in] my control structure. + * @param[in] adjust (1 to hand off 1 buffer) | (MDB_EOF when ending). + */ +static int ESECT +mdb_env_cthr_toggle(mdb_copy *my, int adjust) +{ + pthread_mutex_lock(&my->mc_mutex); + my->mc_new += adjust; + pthread_cond_signal(&my->mc_cond); + while (my->mc_new & 2) /* both buffers in use */ + pthread_cond_wait(&my->mc_cond, &my->mc_mutex); + pthread_mutex_unlock(&my->mc_mutex); + + my->mc_toggle ^= (adjust & 1); + /* Both threads reset mc_wlen, to be safe from threading errors */ + my->mc_wlen[my->mc_toggle] = 0; + return my->mc_error; +} + + /** Depth-first tree traversal for compacting copy. + * @param[in] my control structure. + * @param[in,out] pg database root. + * @param[in] flags includes #F_DUPDATA if it is a sorted-duplicate sub-DB. + */ +static int ESECT +mdb_env_cwalk(mdb_copy *my, pgno_t *pg, int flags) +{ + MDB_cursor mc = {0}; + MDB_node *ni; + MDB_page *mo, *mp, *leaf; + char *buf, *ptr; + int rc, toggle; + unsigned int i; + + /* Empty DB, nothing to do */ + if (*pg == P_INVALID) + return MDB_SUCCESS; + + mc.mc_snum = 1; + mc.mc_txn = my->mc_txn; + + rc = mdb_page_get(&mc, *pg, &mc.mc_pg[0], NULL); + if (rc) + return rc; + rc = mdb_page_search_root(&mc, NULL, MDB_PS_FIRST); + if (rc) + return rc; + + /* Make cursor pages writable */ + buf = ptr = malloc(my->mc_env->me_psize * mc.mc_snum); + if (buf == NULL) + return ENOMEM; + + for (i=0; imc_env->me_psize); + mc.mc_pg[i] = (MDB_page *)ptr; + ptr += my->mc_env->me_psize; + } + + /* This is writable space for a leaf page. Usually not needed. */ + leaf = (MDB_page *)ptr; + + toggle = my->mc_toggle; + while (mc.mc_snum > 0) { + unsigned n; + mp = mc.mc_pg[mc.mc_top]; + n = NUMKEYS(mp); + + if (IS_LEAF(mp)) { + if (!IS_LEAF2(mp) && !(flags & F_DUPDATA)) { + for (i=0; imn_flags & F_BIGDATA) { + MDB_page *omp; + pgno_t pg; + + /* Need writable leaf */ + if (mp != leaf) { + mc.mc_pg[mc.mc_top] = leaf; + mdb_page_copy(leaf, mp, my->mc_env->me_psize); + mp = leaf; + ni = NODEPTR(mp, i); + } + + memcpy(&pg, NODEDATA(ni), sizeof(pg)); + memcpy(NODEDATA(ni), &my->mc_next_pgno, sizeof(pgno_t)); + rc = mdb_page_get(&mc, pg, &omp, NULL); + if (rc) + goto done; + if (my->mc_wlen[toggle] >= MDB_WBUF) { + rc = mdb_env_cthr_toggle(my, 1); + if (rc) + goto done; + toggle = my->mc_toggle; + } + mo = (MDB_page *)(my->mc_wbuf[toggle] + my->mc_wlen[toggle]); + memcpy(mo, omp, my->mc_env->me_psize); + mo->mp_pgno = my->mc_next_pgno; + my->mc_next_pgno += omp->mp_pages; + my->mc_wlen[toggle] += my->mc_env->me_psize; + if (omp->mp_pages > 1) { + my->mc_olen[toggle] = my->mc_env->me_psize * (omp->mp_pages - 1); + my->mc_over[toggle] = (char *)omp + my->mc_env->me_psize; + rc = mdb_env_cthr_toggle(my, 1); + if (rc) + goto done; + toggle = my->mc_toggle; + } + } else if (ni->mn_flags & F_SUBDATA) { + MDB_db db; + + /* Need writable leaf */ + if (mp != leaf) { + mc.mc_pg[mc.mc_top] = leaf; + mdb_page_copy(leaf, mp, my->mc_env->me_psize); + mp = leaf; + ni = NODEPTR(mp, i); + } + + memcpy(&db, NODEDATA(ni), sizeof(db)); + my->mc_toggle = toggle; + rc = mdb_env_cwalk(my, &db.md_root, ni->mn_flags & F_DUPDATA); + if (rc) + goto done; + toggle = my->mc_toggle; + memcpy(NODEDATA(ni), &db, sizeof(db)); + } + } + } + } else { + mc.mc_ki[mc.mc_top]++; + if (mc.mc_ki[mc.mc_top] < n) { + pgno_t pg; +again: + ni = NODEPTR(mp, mc.mc_ki[mc.mc_top]); + pg = NODEPGNO(ni); + rc = mdb_page_get(&mc, pg, &mp, NULL); + if (rc) + goto done; + mc.mc_top++; + mc.mc_snum++; + mc.mc_ki[mc.mc_top] = 0; + if (IS_BRANCH(mp)) { + /* Whenever we advance to a sibling branch page, + * we must proceed all the way down to its first leaf. + */ + mdb_page_copy(mc.mc_pg[mc.mc_top], mp, my->mc_env->me_psize); + goto again; + } else + mc.mc_pg[mc.mc_top] = mp; + continue; + } + } + if (my->mc_wlen[toggle] >= MDB_WBUF) { + rc = mdb_env_cthr_toggle(my, 1); + if (rc) + goto done; + toggle = my->mc_toggle; + } + mo = (MDB_page *)(my->mc_wbuf[toggle] + my->mc_wlen[toggle]); + mdb_page_copy(mo, mp, my->mc_env->me_psize); + mo->mp_pgno = my->mc_next_pgno++; + my->mc_wlen[toggle] += my->mc_env->me_psize; + if (mc.mc_top) { + /* Update parent if there is one */ + ni = NODEPTR(mc.mc_pg[mc.mc_top-1], mc.mc_ki[mc.mc_top-1]); + SETPGNO(ni, mo->mp_pgno); + mdb_cursor_pop(&mc); + } else { + /* Otherwise we're done */ + *pg = mo->mp_pgno; + break; + } + } +done: + free(buf); + return rc; +} + + /** Copy environment with compaction. */ +static int ESECT +mdb_env_copyfd1(MDB_env *env, HANDLE fd) +{ + MDB_meta *mm; + MDB_page *mp; + mdb_copy my = {0}; + MDB_txn *txn = NULL; + pthread_t thr; + pgno_t root, new_root; + int rc = MDB_SUCCESS; + +#ifdef _WIN32 + if (!(my.mc_mutex = CreateMutex(NULL, FALSE, NULL)) || + !(my.mc_cond = CreateEvent(NULL, FALSE, FALSE, NULL))) { + rc = ErrCode(); + goto done; + } + my.mc_wbuf[0] = _aligned_malloc(MDB_WBUF*2, env->me_os_psize); + if (my.mc_wbuf[0] == NULL) { + /* _aligned_malloc() sets errno, but we use Windows error codes */ + rc = ERROR_NOT_ENOUGH_MEMORY; + goto done; + } +#else + if ((rc = pthread_mutex_init(&my.mc_mutex, NULL)) != 0) + return rc; + if ((rc = pthread_cond_init(&my.mc_cond, NULL)) != 0) + goto done2; +#ifdef HAVE_MEMALIGN + my.mc_wbuf[0] = memalign(env->me_os_psize, MDB_WBUF*2); + if (my.mc_wbuf[0] == NULL) { + rc = errno; + goto done; + } +#else + { + void *p; + if ((rc = posix_memalign(&p, env->me_os_psize, MDB_WBUF*2)) != 0) + goto done; + my.mc_wbuf[0] = p; + } +#endif +#endif + memset(my.mc_wbuf[0], 0, MDB_WBUF*2); + my.mc_wbuf[1] = my.mc_wbuf[0] + MDB_WBUF; + my.mc_next_pgno = NUM_METAS; + my.mc_env = env; + my.mc_fd = fd; + rc = THREAD_CREATE(thr, mdb_env_copythr, &my); + if (rc) + goto done; + + rc = mdb_txn_begin(env, NULL, MDB_RDONLY, &txn); + if (rc) + goto finish; + + mp = (MDB_page *)my.mc_wbuf[0]; + memset(mp, 0, NUM_METAS * env->me_psize); + mp->mp_pgno = 0; + mp->mp_flags = P_META; + mm = (MDB_meta *)METADATA(mp); + mdb_env_init_meta0(env, mm); + mm->mm_address = env->me_metas[0]->mm_address; + + mp = (MDB_page *)(my.mc_wbuf[0] + env->me_psize); + mp->mp_pgno = 1; + mp->mp_flags = P_META; + *(MDB_meta *)METADATA(mp) = *mm; + mm = (MDB_meta *)METADATA(mp); + + /* Set metapage 1 with current main DB */ + root = new_root = txn->mt_dbs[MAIN_DBI].md_root; + if (root != P_INVALID) { + /* Count free pages + freeDB pages. Subtract from last_pg + * to find the new last_pg, which also becomes the new root. + */ + MDB_ID freecount = 0; + MDB_cursor mc; + MDB_val key, data; + mdb_cursor_init(&mc, txn, FREE_DBI, NULL); + while ((rc = mdb_cursor_get(&mc, &key, &data, MDB_NEXT)) == 0) + freecount += *(MDB_ID *)data.mv_data; + if (rc != MDB_NOTFOUND) + goto finish; + freecount += txn->mt_dbs[FREE_DBI].md_branch_pages + + txn->mt_dbs[FREE_DBI].md_leaf_pages + + txn->mt_dbs[FREE_DBI].md_overflow_pages; + + new_root = txn->mt_next_pgno - 1 - freecount; + mm->mm_last_pg = new_root; + mm->mm_dbs[MAIN_DBI] = txn->mt_dbs[MAIN_DBI]; + mm->mm_dbs[MAIN_DBI].md_root = new_root; + } else { + /* When the DB is empty, handle it specially to + * fix any breakage like page leaks from ITS#8174. + */ + mm->mm_dbs[MAIN_DBI].md_flags = txn->mt_dbs[MAIN_DBI].md_flags; + } + if (root != P_INVALID || mm->mm_dbs[MAIN_DBI].md_flags) { + mm->mm_txnid = 1; /* use metapage 1 */ + } + + my.mc_wlen[0] = env->me_psize * NUM_METAS; + my.mc_txn = txn; + rc = mdb_env_cwalk(&my, &root, 0); + if (rc == MDB_SUCCESS && root != new_root) { + rc = MDB_INCOMPATIBLE; /* page leak or corrupt DB */ + } + +finish: + if (rc) + my.mc_error = rc; + mdb_env_cthr_toggle(&my, 1 | MDB_EOF); + rc = THREAD_FINISH(thr); + mdb_txn_abort(txn); + +done: +#ifdef _WIN32 + if (my.mc_wbuf[0]) _aligned_free(my.mc_wbuf[0]); + if (my.mc_cond) CloseHandle(my.mc_cond); + if (my.mc_mutex) CloseHandle(my.mc_mutex); +#else + free(my.mc_wbuf[0]); + pthread_cond_destroy(&my.mc_cond); +done2: + pthread_mutex_destroy(&my.mc_mutex); +#endif + return rc ? rc : my.mc_error; +} + + /** Copy environment as-is. */ +static int ESECT +mdb_env_copyfd0(MDB_env *env, HANDLE fd) +{ + MDB_txn *txn = NULL; + mdb_mutexref_t wmutex = NULL; + int rc; + size_t wsize, w3; + char *ptr; +#ifdef _WIN32 + DWORD len, w2; +#define DO_WRITE(rc, fd, ptr, w2, len) rc = WriteFile(fd, ptr, w2, &len, NULL) +#else + ssize_t len; + size_t w2; +#define DO_WRITE(rc, fd, ptr, w2, len) len = write(fd, ptr, w2); rc = (len >= 0) +#endif + + /* Do the lock/unlock of the reader mutex before starting the + * write txn. Otherwise other read txns could block writers. + */ + rc = mdb_txn_begin(env, NULL, MDB_RDONLY, &txn); + if (rc) + return rc; + + if (env->me_txns) { + /* We must start the actual read txn after blocking writers */ + mdb_txn_end(txn, MDB_END_RESET_TMP); + + /* Temporarily block writers until we snapshot the meta pages */ + wmutex = env->me_wmutex; + if (LOCK_MUTEX(rc, env, wmutex)) + goto leave; + + rc = mdb_txn_renew0(txn); + if (rc) { + UNLOCK_MUTEX(wmutex); + goto leave; + } + } + + wsize = env->me_psize * NUM_METAS; + ptr = env->me_map; + w2 = wsize; + while (w2 > 0) { + DO_WRITE(rc, fd, ptr, w2, len); + if (!rc) { + rc = ErrCode(); + break; + } else if (len > 0) { + rc = MDB_SUCCESS; + ptr += len; + w2 -= len; + continue; + } else { + /* Non-blocking or async handles are not supported */ + rc = EIO; + break; + } + } + if (wmutex) + UNLOCK_MUTEX(wmutex); + + if (rc) + goto leave; + + w3 = txn->mt_next_pgno * env->me_psize; + { + size_t fsize = 0; + if ((rc = mdb_fsize(env->me_fd, &fsize))) + goto leave; + if (w3 > fsize) + w3 = fsize; + } + wsize = w3 - wsize; + while (wsize > 0) { + if (wsize > MAX_WRITE) + w2 = MAX_WRITE; + else + w2 = wsize; + DO_WRITE(rc, fd, ptr, w2, len); + if (!rc) { + rc = ErrCode(); + break; + } else if (len > 0) { + rc = MDB_SUCCESS; + ptr += len; + wsize -= len; + continue; + } else { + rc = EIO; + break; + } + } + +leave: + mdb_txn_abort(txn); + return rc; +} + +int ESECT +mdb_env_copyfd2(MDB_env *env, HANDLE fd, unsigned int flags) +{ + if (flags & MDB_CP_COMPACT) + return mdb_env_copyfd1(env, fd); + else + return mdb_env_copyfd0(env, fd); +} + +int ESECT +mdb_env_copyfd(MDB_env *env, HANDLE fd) +{ + return mdb_env_copyfd2(env, fd, 0); +} + +int ESECT +mdb_env_copy2(MDB_env *env, const char *path, unsigned int flags) +{ + int rc; + MDB_name fname; + HANDLE newfd = INVALID_HANDLE_VALUE; + + rc = mdb_fname_init(path, env->me_flags | MDB_NOLOCK, &fname); + if (rc == MDB_SUCCESS) { + rc = mdb_fopen(env, &fname, MDB_O_COPY, 0666, &newfd); + mdb_fname_destroy(fname); + } + if (rc == MDB_SUCCESS) { + rc = mdb_env_copyfd2(env, newfd, flags); + if (close(newfd) < 0 && rc == MDB_SUCCESS) + rc = ErrCode(); + } + return rc; +} + +int ESECT +mdb_env_copy(MDB_env *env, const char *path) +{ + return mdb_env_copy2(env, path, 0); +} + +int ESECT +mdb_env_set_flags(MDB_env *env, unsigned int flag, int onoff) +{ + if (flag & ~CHANGEABLE) + return EINVAL; + if (onoff) + env->me_flags |= flag; + else + env->me_flags &= ~flag; + return MDB_SUCCESS; +} + +int ESECT +mdb_env_get_flags(MDB_env *env, unsigned int *arg) +{ + if (!env || !arg) + return EINVAL; + + *arg = env->me_flags & (CHANGEABLE|CHANGELESS); + return MDB_SUCCESS; +} + +int ESECT +mdb_env_set_userctx(MDB_env *env, void *ctx) +{ + if (!env) + return EINVAL; + env->me_userctx = ctx; + return MDB_SUCCESS; +} + +void * ESECT +mdb_env_get_userctx(MDB_env *env) +{ + return env ? env->me_userctx : NULL; +} + +int ESECT +mdb_env_set_assert(MDB_env *env, MDB_assert_func *func) +{ + if (!env) + return EINVAL; +#ifndef NDEBUG + env->me_assert_func = func; +#endif + return MDB_SUCCESS; +} + +int ESECT +mdb_env_get_path(MDB_env *env, const char **arg) +{ + if (!env || !arg) + return EINVAL; + + *arg = env->me_path; + return MDB_SUCCESS; +} + +int ESECT +mdb_env_get_fd(MDB_env *env, mdb_filehandle_t *arg) +{ + if (!env || !arg) + return EINVAL; + + *arg = env->me_fd; + return MDB_SUCCESS; +} + +/** Common code for #mdb_stat() and #mdb_env_stat(). + * @param[in] env the environment to operate in. + * @param[in] db the #MDB_db record containing the stats to return. + * @param[out] arg the address of an #MDB_stat structure to receive the stats. + * @return 0, this function always succeeds. + */ +static int ESECT +mdb_stat0(MDB_env *env, MDB_db *db, MDB_stat *arg) +{ + arg->ms_psize = env->me_psize; + arg->ms_depth = db->md_depth; + arg->ms_branch_pages = db->md_branch_pages; + arg->ms_leaf_pages = db->md_leaf_pages; + arg->ms_overflow_pages = db->md_overflow_pages; + arg->ms_entries = db->md_entries; + + return MDB_SUCCESS; +} + +int ESECT +mdb_env_stat(MDB_env *env, MDB_stat *arg) +{ + MDB_meta *meta; + + if (env == NULL || arg == NULL) + return EINVAL; + + meta = mdb_env_pick_meta(env); + + return mdb_stat0(env, &meta->mm_dbs[MAIN_DBI], arg); +} + +int ESECT +mdb_env_info(MDB_env *env, MDB_envinfo *arg) +{ + MDB_meta *meta; + + if (env == NULL || arg == NULL) + return EINVAL; + + meta = mdb_env_pick_meta(env); + arg->me_mapaddr = meta->mm_address; + arg->me_last_pgno = meta->mm_last_pg; + arg->me_last_txnid = meta->mm_txnid; + + arg->me_mapsize = env->me_mapsize; + arg->me_maxreaders = env->me_maxreaders; + arg->me_numreaders = env->me_txns ? env->me_txns->mti_numreaders : 0; + return MDB_SUCCESS; +} + +/** Set the default comparison functions for a database. + * Called immediately after a database is opened to set the defaults. + * The user can then override them with #mdb_set_compare() or + * #mdb_set_dupsort(). + * @param[in] txn A transaction handle returned by #mdb_txn_begin() + * @param[in] dbi A database handle returned by #mdb_dbi_open() + */ +static void +mdb_default_cmp(MDB_txn *txn, MDB_dbi dbi) +{ + uint16_t f = txn->mt_dbs[dbi].md_flags; + + txn->mt_dbxs[dbi].md_cmp = + (f & MDB_REVERSEKEY) ? mdb_cmp_memnr : + (f & MDB_INTEGERKEY) ? mdb_cmp_cint : mdb_cmp_memn; + + txn->mt_dbxs[dbi].md_dcmp = + !(f & MDB_DUPSORT) ? 0 : + ((f & MDB_INTEGERDUP) + ? ((f & MDB_DUPFIXED) ? mdb_cmp_int : mdb_cmp_cint) + : ((f & MDB_REVERSEDUP) ? mdb_cmp_memnr : mdb_cmp_memn)); +} + +int mdb_dbi_open(MDB_txn *txn, const char *name, unsigned int flags, MDB_dbi *dbi) +{ + MDB_val key, data; + MDB_dbi i; + MDB_cursor mc; + MDB_db dummy; + int rc, dbflag, exact; + unsigned int unused = 0, seq; + char *namedup; + size_t len; + + if (flags & ~VALID_FLAGS) + return EINVAL; + if (txn->mt_flags & MDB_TXN_BLOCKED) + return MDB_BAD_TXN; + + /* main DB? */ + if (!name) { + *dbi = MAIN_DBI; + if (flags & PERSISTENT_FLAGS) { + uint16_t f2 = flags & PERSISTENT_FLAGS; + /* make sure flag changes get committed */ + if ((txn->mt_dbs[MAIN_DBI].md_flags | f2) != txn->mt_dbs[MAIN_DBI].md_flags) { + txn->mt_dbs[MAIN_DBI].md_flags |= f2; + txn->mt_flags |= MDB_TXN_DIRTY; + } + } + mdb_default_cmp(txn, MAIN_DBI); + return MDB_SUCCESS; + } + + if (txn->mt_dbxs[MAIN_DBI].md_cmp == NULL) { + mdb_default_cmp(txn, MAIN_DBI); + } + + /* Is the DB already open? */ + len = strlen(name); + for (i=CORE_DBS; imt_numdbs; i++) { + if (!txn->mt_dbxs[i].md_name.mv_size) { + /* Remember this free slot */ + if (!unused) unused = i; + continue; + } + if (len == txn->mt_dbxs[i].md_name.mv_size && + !strncmp(name, txn->mt_dbxs[i].md_name.mv_data, len)) { + *dbi = i; + return MDB_SUCCESS; + } + } + + /* If no free slot and max hit, fail */ + if (!unused && txn->mt_numdbs >= txn->mt_env->me_maxdbs) + return MDB_DBS_FULL; + + /* Cannot mix named databases with some mainDB flags */ + if (txn->mt_dbs[MAIN_DBI].md_flags & (MDB_DUPSORT|MDB_INTEGERKEY)) + return (flags & MDB_CREATE) ? MDB_INCOMPATIBLE : MDB_NOTFOUND; + + /* Find the DB info */ + dbflag = DB_NEW|DB_VALID|DB_USRVALID; + exact = 0; + key.mv_size = len; + key.mv_data = (void *)name; + mdb_cursor_init(&mc, txn, MAIN_DBI, NULL); + rc = mdb_cursor_set(&mc, &key, &data, MDB_SET, &exact); + if (rc == MDB_SUCCESS) { + /* make sure this is actually a DB */ + MDB_node *node = NODEPTR(mc.mc_pg[mc.mc_top], mc.mc_ki[mc.mc_top]); + if ((node->mn_flags & (F_DUPDATA|F_SUBDATA)) != F_SUBDATA) + return MDB_INCOMPATIBLE; + } else { + if (rc != MDB_NOTFOUND || !(flags & MDB_CREATE)) + return rc; + if (F_ISSET(txn->mt_flags, MDB_TXN_RDONLY)) + return EACCES; + } + + /* Done here so we cannot fail after creating a new DB */ + if ((namedup = strdup(name)) == NULL) + return ENOMEM; + + if (rc) { + /* MDB_NOTFOUND and MDB_CREATE: Create new DB */ + data.mv_size = sizeof(MDB_db); + data.mv_data = &dummy; + memset(&dummy, 0, sizeof(dummy)); + dummy.md_root = P_INVALID; + dummy.md_flags = flags & PERSISTENT_FLAGS; + WITH_CURSOR_TRACKING(mc, + rc = mdb_cursor_put(&mc, &key, &data, F_SUBDATA)); + dbflag |= DB_DIRTY; + } + + if (rc) { + free(namedup); + } else { + /* Got info, register DBI in this txn */ + unsigned int slot = unused ? unused : txn->mt_numdbs; + txn->mt_dbxs[slot].md_name.mv_data = namedup; + txn->mt_dbxs[slot].md_name.mv_size = len; + txn->mt_dbxs[slot].md_rel = NULL; + txn->mt_dbflags[slot] = dbflag; + /* txn-> and env-> are the same in read txns, use + * tmp variable to avoid undefined assignment + */ + seq = ++txn->mt_env->me_dbiseqs[slot]; + txn->mt_dbiseqs[slot] = seq; + + memcpy(&txn->mt_dbs[slot], data.mv_data, sizeof(MDB_db)); + *dbi = slot; + mdb_default_cmp(txn, slot); + if (!unused) { + txn->mt_numdbs++; + } + } + + return rc; +} + +int ESECT +mdb_stat(MDB_txn *txn, MDB_dbi dbi, MDB_stat *arg) +{ + if (!arg || !TXN_DBI_EXIST(txn, dbi, DB_VALID)) + return EINVAL; + + if (txn->mt_flags & MDB_TXN_BLOCKED) + return MDB_BAD_TXN; + + if (txn->mt_dbflags[dbi] & DB_STALE) { + MDB_cursor mc; + MDB_xcursor mx; + /* Stale, must read the DB's root. cursor_init does it for us. */ + mdb_cursor_init(&mc, txn, dbi, &mx); + } + return mdb_stat0(txn->mt_env, &txn->mt_dbs[dbi], arg); +} + +void mdb_dbi_close(MDB_env *env, MDB_dbi dbi) +{ + char *ptr; + if (dbi < CORE_DBS || dbi >= env->me_maxdbs) + return; + ptr = env->me_dbxs[dbi].md_name.mv_data; + /* If there was no name, this was already closed */ + if (ptr) { + env->me_dbxs[dbi].md_name.mv_data = NULL; + env->me_dbxs[dbi].md_name.mv_size = 0; + env->me_dbflags[dbi] = 0; + env->me_dbiseqs[dbi]++; + free(ptr); + } +} + +int mdb_dbi_flags(MDB_txn *txn, MDB_dbi dbi, unsigned int *flags) +{ + /* We could return the flags for the FREE_DBI too but what's the point? */ + if (!TXN_DBI_EXIST(txn, dbi, DB_USRVALID)) + return EINVAL; + *flags = txn->mt_dbs[dbi].md_flags & PERSISTENT_FLAGS; + return MDB_SUCCESS; +} + +/** Add all the DB's pages to the free list. + * @param[in] mc Cursor on the DB to free. + * @param[in] subs non-Zero to check for sub-DBs in this DB. + * @return 0 on success, non-zero on failure. + */ +static int +mdb_drop0(MDB_cursor *mc, int subs) +{ + int rc; + + rc = mdb_page_search(mc, NULL, MDB_PS_FIRST); + if (rc == MDB_SUCCESS) { + MDB_txn *txn = mc->mc_txn; + MDB_node *ni; + MDB_cursor mx; + unsigned int i; + + /* DUPSORT sub-DBs have no ovpages/DBs. Omit scanning leaves. + * This also avoids any P_LEAF2 pages, which have no nodes. + * Also if the DB doesn't have sub-DBs and has no overflow + * pages, omit scanning leaves. + */ + if ((mc->mc_flags & C_SUB) || + (!subs && !mc->mc_db->md_overflow_pages)) + mdb_cursor_pop(mc); + + mdb_cursor_copy(mc, &mx); + while (mc->mc_snum > 0) { + MDB_page *mp = mc->mc_pg[mc->mc_top]; + unsigned n = NUMKEYS(mp); + if (IS_LEAF(mp)) { + for (i=0; imn_flags & F_BIGDATA) { + MDB_page *omp; + pgno_t pg; + memcpy(&pg, NODEDATA(ni), sizeof(pg)); + rc = mdb_page_get(mc, pg, &omp, NULL); + if (rc != 0) + goto done; + mdb_cassert(mc, IS_OVERFLOW(omp)); + rc = mdb_midl_append_range(&txn->mt_free_pgs, + pg, omp->mp_pages); + if (rc) + goto done; + mc->mc_db->md_overflow_pages -= omp->mp_pages; + if (!mc->mc_db->md_overflow_pages && !subs) + break; + } else if (subs && (ni->mn_flags & F_SUBDATA)) { + mdb_xcursor_init1(mc, ni); + rc = mdb_drop0(&mc->mc_xcursor->mx_cursor, 0); + if (rc) + goto done; + } + } + if (!subs && !mc->mc_db->md_overflow_pages) + goto pop; + } else { + if ((rc = mdb_midl_need(&txn->mt_free_pgs, n)) != 0) + goto done; + for (i=0; imt_free_pgs, pg); + } + } + if (!mc->mc_top) + break; + mc->mc_ki[mc->mc_top] = i; + rc = mdb_cursor_sibling(mc, 1); + if (rc) { + if (rc != MDB_NOTFOUND) + goto done; + /* no more siblings, go back to beginning + * of previous level. + */ +pop: + mdb_cursor_pop(mc); + mc->mc_ki[0] = 0; + for (i=1; imc_snum; i++) { + mc->mc_ki[i] = 0; + mc->mc_pg[i] = mx.mc_pg[i]; + } + } + } + /* free it */ + rc = mdb_midl_append(&txn->mt_free_pgs, mc->mc_db->md_root); +done: + if (rc) + txn->mt_flags |= MDB_TXN_ERROR; + } else if (rc == MDB_NOTFOUND) { + rc = MDB_SUCCESS; + } + mc->mc_flags &= ~C_INITIALIZED; + return rc; +} + +int mdb_drop(MDB_txn *txn, MDB_dbi dbi, int del) +{ + MDB_cursor *mc, *m2; + int rc; + + if ((unsigned)del > 1 || !TXN_DBI_EXIST(txn, dbi, DB_USRVALID)) + return EINVAL; + + if (F_ISSET(txn->mt_flags, MDB_TXN_RDONLY)) + return EACCES; + + if (TXN_DBI_CHANGED(txn, dbi)) + return MDB_BAD_DBI; + + rc = mdb_cursor_open(txn, dbi, &mc); + if (rc) + return rc; + + rc = mdb_drop0(mc, mc->mc_db->md_flags & MDB_DUPSORT); + /* Invalidate the dropped DB's cursors */ + for (m2 = txn->mt_cursors[dbi]; m2; m2 = m2->mc_next) + m2->mc_flags &= ~(C_INITIALIZED|C_EOF); + if (rc) + goto leave; + + /* Can't delete the main DB */ + if (del && dbi >= CORE_DBS) { + rc = mdb_del0(txn, MAIN_DBI, &mc->mc_dbx->md_name, NULL, F_SUBDATA); + if (!rc) { + txn->mt_dbflags[dbi] = DB_STALE; + mdb_dbi_close(txn->mt_env, dbi); + } else { + txn->mt_flags |= MDB_TXN_ERROR; + } + } else { + /* reset the DB record, mark it dirty */ + txn->mt_dbflags[dbi] |= DB_DIRTY; + txn->mt_dbs[dbi].md_depth = 0; + txn->mt_dbs[dbi].md_branch_pages = 0; + txn->mt_dbs[dbi].md_leaf_pages = 0; + txn->mt_dbs[dbi].md_overflow_pages = 0; + txn->mt_dbs[dbi].md_entries = 0; + txn->mt_dbs[dbi].md_root = P_INVALID; + + txn->mt_flags |= MDB_TXN_DIRTY; + } +leave: + mdb_cursor_close(mc); + return rc; +} + +int mdb_set_compare(MDB_txn *txn, MDB_dbi dbi, MDB_cmp_func *cmp) +{ + if (!TXN_DBI_EXIST(txn, dbi, DB_USRVALID)) + return EINVAL; + + txn->mt_dbxs[dbi].md_cmp = cmp; + return MDB_SUCCESS; +} + +int mdb_set_dupsort(MDB_txn *txn, MDB_dbi dbi, MDB_cmp_func *cmp) +{ + if (!TXN_DBI_EXIST(txn, dbi, DB_USRVALID)) + return EINVAL; + + txn->mt_dbxs[dbi].md_dcmp = cmp; + return MDB_SUCCESS; +} + +int mdb_set_relfunc(MDB_txn *txn, MDB_dbi dbi, MDB_rel_func *rel) +{ + if (!TXN_DBI_EXIST(txn, dbi, DB_USRVALID)) + return EINVAL; + + txn->mt_dbxs[dbi].md_rel = rel; + return MDB_SUCCESS; +} + +int mdb_set_relctx(MDB_txn *txn, MDB_dbi dbi, void *ctx) +{ + if (!TXN_DBI_EXIST(txn, dbi, DB_USRVALID)) + return EINVAL; + + txn->mt_dbxs[dbi].md_relctx = ctx; + return MDB_SUCCESS; +} + +int ESECT +mdb_env_get_maxkeysize(MDB_env *env) +{ + return ENV_MAXKEY(env); +} + +int ESECT +mdb_reader_list(MDB_env *env, MDB_msg_func *func, void *ctx) +{ + unsigned int i, rdrs; + MDB_reader *mr; + char buf[64]; + int rc = 0, first = 1; + + if (!env || !func) + return -1; + if (!env->me_txns) { + return func("(no reader locks)\n", ctx); + } + rdrs = env->me_txns->mti_numreaders; + mr = env->me_txns->mti_readers; + for (i=0; i> 1; + cursor = base + pivot + 1; + val = pid - ids[cursor]; + + if( val < 0 ) { + n = pivot; + + } else if ( val > 0 ) { + base = cursor; + n -= pivot + 1; + + } else { + /* found, so it's a duplicate */ + return -1; + } + } + + if( val > 0 ) { + ++cursor; + } + ids[0]++; + for (n = ids[0]; n > cursor; n--) + ids[n] = ids[n-1]; + ids[n] = pid; + return 0; +} + +int ESECT +mdb_reader_check(MDB_env *env, int *dead) +{ + if (!env) + return EINVAL; + if (dead) + *dead = 0; + return env->me_txns ? mdb_reader_check0(env, 0, dead) : MDB_SUCCESS; +} + +/** As #mdb_reader_check(). \b rlocked is set if caller locked #me_rmutex. */ +static int ESECT +mdb_reader_check0(MDB_env *env, int rlocked, int *dead) +{ + mdb_mutexref_t rmutex = rlocked ? NULL : env->me_rmutex; + unsigned int i, j, rdrs; + MDB_reader *mr; + MDB_PID_T *pids, pid; + int rc = MDB_SUCCESS, count = 0; + + rdrs = env->me_txns->mti_numreaders; + pids = malloc((rdrs+1) * sizeof(MDB_PID_T)); + if (!pids) + return ENOMEM; + pids[0] = 0; + mr = env->me_txns->mti_readers; + for (i=0; ime_pid) { + if (mdb_pid_insert(pids, pid) == 0) { + if (!mdb_reader_pid(env, Pidcheck, pid)) { + /* Stale reader found */ + j = i; + if (rmutex) { + if ((rc = LOCK_MUTEX0(rmutex)) != 0) { + if ((rc = mdb_mutex_failed(env, rmutex, rc))) + break; + rdrs = 0; /* the above checked all readers */ + } else { + /* Recheck, a new process may have reused pid */ + if (mdb_reader_pid(env, Pidcheck, pid)) + j = rdrs; + } + } + for (; jme_rmutex); + if (!rlocked) { + /* Keep mti_txnid updated, otherwise next writer can + * overwrite data which latest meta page refers to. + */ + meta = mdb_env_pick_meta(env); + env->me_txns->mti_txnid = meta->mm_txnid; + /* env is hosed if the dead thread was ours */ + if (env->me_txn) { + env->me_flags |= MDB_FATAL_ERROR; + env->me_txn = NULL; + rc = MDB_PANIC; + } + } + DPRINTF(("%cmutex owner died, %s", (rlocked ? 'r' : 'w'), + (rc ? "this process' env is hosed" : "recovering"))); + rc2 = mdb_reader_check0(env, rlocked, NULL); + if (rc2 == 0) + rc2 = mdb_mutex_consistent(mutex); + if (rc || (rc = rc2)) { + DPRINTF(("LOCK_MUTEX recovery failed, %s", mdb_strerror(rc))); + UNLOCK_MUTEX(mutex); + } + } else { +#ifdef _WIN32 + rc = ErrCode(); +#endif + DPRINTF(("LOCK_MUTEX failed, %s", mdb_strerror(rc))); + } + + return rc; +} +#endif /* MDB_ROBUST_SUPPORTED */ + +#if defined(_WIN32) +/** Convert \b src to new wchar_t[] string with room for \b xtra extra chars */ +static int ESECT +utf8_to_utf16(const char *src, MDB_name *dst, int xtra) +{ + int rc, need = 0; + wchar_t *result = NULL; + for (;;) { /* malloc result, then fill it in */ + need = MultiByteToWideChar(CP_UTF8, 0, src, -1, result, need); + if (!need) { + rc = ErrCode(); + free(result); + return rc; + } + if (!result) { + result = malloc(sizeof(wchar_t) * (need + xtra)); + if (!result) + return ENOMEM; + continue; + } + dst->mn_alloced = 1; + dst->mn_len = need - 1; + dst->mn_val = result; + return MDB_SUCCESS; + } +} +#endif /* defined(_WIN32) */ +/** @} */ diff --git a/vere/ext/murmur3/build.zig b/vere/ext/murmur3/build.zig new file mode 100644 index 0000000..dac91d3 --- /dev/null +++ b/vere/ext/murmur3/build.zig @@ -0,0 +1,38 @@ +const std = @import("std"); + +pub fn build(b: *std.Build) void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + const t = target.result; + + const murmur3 = b.addStaticLibrary(.{ + .name = "murmur3", + .target = target, + .optimize = optimize, + }); + + murmur3.linkLibC(); + + murmur3.addIncludePath(b.path(".")); + + const common_flags = [_][]const u8{ + "-fno-sanitize=all", + "-O3", + "-Wall", + }; + + const mac_flags = common_flags ++ [_][]const u8{ + "-fPIC", + "-c", + }; + + murmur3.addCSourceFiles(.{ + .root = b.path("vendor"), + .files = &.{"murmur3.c"}, + .flags = if (t.os.tag == .macos) &mac_flags else &common_flags, + }); + + murmur3.installHeader(b.path("vendor/murmur3.h"), "murmur3.h"); + + b.installArtifact(murmur3); +} diff --git a/vere/ext/murmur3/build.zig.zon b/vere/ext/murmur3/build.zig.zon new file mode 100644 index 0000000..74e62e4 --- /dev/null +++ b/vere/ext/murmur3/build.zig.zon @@ -0,0 +1,7 @@ +.{ + .name = "murmur3", + .version = "0.0.1", + .paths = .{ + "", + }, +} diff --git a/vere/ext/murmur3/vendor/murmur3.c b/vere/ext/murmur3/vendor/murmur3.c new file mode 100644 index 0000000..a04ba9d --- /dev/null +++ b/vere/ext/murmur3/vendor/murmur3.c @@ -0,0 +1,314 @@ +//----------------------------------------------------------------------------- +// MurmurHash3 was written by Austin Appleby, and is placed in the public +// domain. The author hereby disclaims copyright to this source code. + +// Note - The x86 and x64 versions do _not_ produce the same results, as the +// algorithms are optimized for their respective platforms. You can still +// compile and run any of them on any platform, but your performance with the +// non-native version will be less than optimal. + +#include "murmur3.h" + +//----------------------------------------------------------------------------- +// Platform-specific functions and macros + +#ifdef __GNUC__ +#define FORCE_INLINE __attribute__((always_inline)) inline +#else +#define FORCE_INLINE inline +#endif + +static FORCE_INLINE uint32_t rotl32 ( uint32_t x, int8_t r ) +{ + return (x << r) | (x >> (32 - r)); +} + +static FORCE_INLINE uint64_t rotl64 ( uint64_t x, int8_t r ) +{ + return (x << r) | (x >> (64 - r)); +} + +#define ROTL32(x,y) rotl32(x,y) +#define ROTL64(x,y) rotl64(x,y) + +#define BIG_CONSTANT(x) (x##LLU) + +//----------------------------------------------------------------------------- +// Block read - if your platform needs to do endian-swapping or can only +// handle aligned reads, do the conversion here + +#define getblock(p, i) (p[i]) + +//----------------------------------------------------------------------------- +// Finalization mix - force all bits of a hash block to avalanche + +static FORCE_INLINE uint32_t fmix32 ( uint32_t h ) +{ + h ^= h >> 16; + h *= 0x85ebca6b; + h ^= h >> 13; + h *= 0xc2b2ae35; + h ^= h >> 16; + + return h; +} + +//---------- + +static FORCE_INLINE uint64_t fmix64 ( uint64_t k ) +{ + k ^= k >> 33; + k *= BIG_CONSTANT(0xff51afd7ed558ccd); + k ^= k >> 33; + k *= BIG_CONSTANT(0xc4ceb9fe1a85ec53); + k ^= k >> 33; + + return k; +} + +//----------------------------------------------------------------------------- + +void MurmurHash3_x86_32 ( const void * key, size_t len, + uint32_t seed, void * out ) +{ + const uint8_t * data = (const uint8_t*)key; + const size_t nblocks = len / 4; + size_t i; + + uint32_t h1 = seed; + + uint32_t c1 = 0xcc9e2d51; + uint32_t c2 = 0x1b873593; + + //---------- + // body + + const uint32_t * blocks = (const uint32_t *)(data + nblocks*4); + + for(i = -nblocks; i; i++) + { + uint32_t k1 = getblock(blocks,i); + + k1 *= c1; + k1 = ROTL32(k1,15); + k1 *= c2; + + h1 ^= k1; + h1 = ROTL32(h1,13); + h1 = h1*5+0xe6546b64; + } + + //---------- + // tail + + const uint8_t * tail = (const uint8_t*)(data + nblocks*4); + + uint32_t k1 = 0; + + switch(len & 3) + { + case 3: k1 ^= tail[2] << 16; + case 2: k1 ^= tail[1] << 8; + case 1: k1 ^= tail[0]; + k1 *= c1; k1 = ROTL32(k1,15); k1 *= c2; h1 ^= k1; + }; + + //---------- + // finalization + + h1 ^= (uint32_t)len; + + h1 = fmix32(h1); + + *(uint32_t*)out = h1; +} + +//----------------------------------------------------------------------------- + +void MurmurHash3_x86_128 ( const void * key, const int len, + uint32_t seed, void * out ) +{ + const uint8_t * data = (const uint8_t*)key; + const int nblocks = len / 16; + int i; + + uint32_t h1 = seed; + uint32_t h2 = seed; + uint32_t h3 = seed; + uint32_t h4 = seed; + + uint32_t c1 = 0x239b961b; + uint32_t c2 = 0xab0e9789; + uint32_t c3 = 0x38b34ae5; + uint32_t c4 = 0xa1e38b93; + + //---------- + // body + + const uint32_t * blocks = (const uint32_t *)(data + nblocks*16); + + for(i = -nblocks; i; i++) + { + uint32_t k1 = getblock(blocks,i*4+0); + uint32_t k2 = getblock(blocks,i*4+1); + uint32_t k3 = getblock(blocks,i*4+2); + uint32_t k4 = getblock(blocks,i*4+3); + + k1 *= c1; k1 = ROTL32(k1,15); k1 *= c2; h1 ^= k1; + + h1 = ROTL32(h1,19); h1 += h2; h1 = h1*5+0x561ccd1b; + + k2 *= c2; k2 = ROTL32(k2,16); k2 *= c3; h2 ^= k2; + + h2 = ROTL32(h2,17); h2 += h3; h2 = h2*5+0x0bcaa747; + + k3 *= c3; k3 = ROTL32(k3,17); k3 *= c4; h3 ^= k3; + + h3 = ROTL32(h3,15); h3 += h4; h3 = h3*5+0x96cd1c35; + + k4 *= c4; k4 = ROTL32(k4,18); k4 *= c1; h4 ^= k4; + + h4 = ROTL32(h4,13); h4 += h1; h4 = h4*5+0x32ac3b17; + } + + //---------- + // tail + + const uint8_t * tail = (const uint8_t*)(data + nblocks*16); + + uint32_t k1 = 0; + uint32_t k2 = 0; + uint32_t k3 = 0; + uint32_t k4 = 0; + + switch(len & 15) + { + case 15: k4 ^= tail[14] << 16; + case 14: k4 ^= tail[13] << 8; + case 13: k4 ^= tail[12] << 0; + k4 *= c4; k4 = ROTL32(k4,18); k4 *= c1; h4 ^= k4; + + case 12: k3 ^= tail[11] << 24; + case 11: k3 ^= tail[10] << 16; + case 10: k3 ^= tail[ 9] << 8; + case 9: k3 ^= tail[ 8] << 0; + k3 *= c3; k3 = ROTL32(k3,17); k3 *= c4; h3 ^= k3; + + case 8: k2 ^= tail[ 7] << 24; + case 7: k2 ^= tail[ 6] << 16; + case 6: k2 ^= tail[ 5] << 8; + case 5: k2 ^= tail[ 4] << 0; + k2 *= c2; k2 = ROTL32(k2,16); k2 *= c3; h2 ^= k2; + + case 4: k1 ^= tail[ 3] << 24; + case 3: k1 ^= tail[ 2] << 16; + case 2: k1 ^= tail[ 1] << 8; + case 1: k1 ^= tail[ 0] << 0; + k1 *= c1; k1 = ROTL32(k1,15); k1 *= c2; h1 ^= k1; + }; + + //---------- + // finalization + + h1 ^= len; h2 ^= len; h3 ^= len; h4 ^= len; + + h1 += h2; h1 += h3; h1 += h4; + h2 += h1; h3 += h1; h4 += h1; + + h1 = fmix32(h1); + h2 = fmix32(h2); + h3 = fmix32(h3); + h4 = fmix32(h4); + + h1 += h2; h1 += h3; h1 += h4; + h2 += h1; h3 += h1; h4 += h1; + + ((uint32_t*)out)[0] = h1; + ((uint32_t*)out)[1] = h2; + ((uint32_t*)out)[2] = h3; + ((uint32_t*)out)[3] = h4; +} + +//----------------------------------------------------------------------------- + +void MurmurHash3_x64_128 ( const void * key, const int len, + const uint32_t seed, void * out ) +{ + const uint8_t * data = (const uint8_t*)key; + const int nblocks = len / 16; + int i; + + uint64_t h1 = seed; + uint64_t h2 = seed; + + uint64_t c1 = BIG_CONSTANT(0x87c37b91114253d5); + uint64_t c2 = BIG_CONSTANT(0x4cf5ad432745937f); + + //---------- + // body + + const uint64_t * blocks = (const uint64_t *)(data); + + for(i = 0; i < nblocks; i++) + { + uint64_t k1 = getblock(blocks,i*2+0); + uint64_t k2 = getblock(blocks,i*2+1); + + k1 *= c1; k1 = ROTL64(k1,31); k1 *= c2; h1 ^= k1; + + h1 = ROTL64(h1,27); h1 += h2; h1 = h1*5+0x52dce729; + + k2 *= c2; k2 = ROTL64(k2,33); k2 *= c1; h2 ^= k2; + + h2 = ROTL64(h2,31); h2 += h1; h2 = h2*5+0x38495ab5; + } + + //---------- + // tail + + const uint8_t * tail = (const uint8_t*)(data + nblocks*16); + + uint64_t k1 = 0; + uint64_t k2 = 0; + + switch(len & 15) + { + case 15: k2 ^= (uint64_t)(tail[14]) << 48; + case 14: k2 ^= (uint64_t)(tail[13]) << 40; + case 13: k2 ^= (uint64_t)(tail[12]) << 32; + case 12: k2 ^= (uint64_t)(tail[11]) << 24; + case 11: k2 ^= (uint64_t)(tail[10]) << 16; + case 10: k2 ^= (uint64_t)(tail[ 9]) << 8; + case 9: k2 ^= (uint64_t)(tail[ 8]) << 0; + k2 *= c2; k2 = ROTL64(k2,33); k2 *= c1; h2 ^= k2; + + case 8: k1 ^= (uint64_t)(tail[ 7]) << 56; + case 7: k1 ^= (uint64_t)(tail[ 6]) << 48; + case 6: k1 ^= (uint64_t)(tail[ 5]) << 40; + case 5: k1 ^= (uint64_t)(tail[ 4]) << 32; + case 4: k1 ^= (uint64_t)(tail[ 3]) << 24; + case 3: k1 ^= (uint64_t)(tail[ 2]) << 16; + case 2: k1 ^= (uint64_t)(tail[ 1]) << 8; + case 1: k1 ^= (uint64_t)(tail[ 0]) << 0; + k1 *= c1; k1 = ROTL64(k1,31); k1 *= c2; h1 ^= k1; + }; + + //---------- + // finalization + + h1 ^= len; h2 ^= len; + + h1 += h2; + h2 += h1; + + h1 = fmix64(h1); + h2 = fmix64(h2); + + h1 += h2; + h2 += h1; + + ((uint64_t*)out)[0] = h1; + ((uint64_t*)out)[1] = h2; +} + +//----------------------------------------------------------------------------- diff --git a/vere/ext/murmur3/vendor/murmur3.h b/vere/ext/murmur3/vendor/murmur3.h new file mode 100644 index 0000000..67c82d9 --- /dev/null +++ b/vere/ext/murmur3/vendor/murmur3.h @@ -0,0 +1,30 @@ +//----------------------------------------------------------------------------- +// MurmurHash3 was written by Austin Appleby, and is placed in the +// public domain. The author hereby disclaims copyright to this source +// code. + +#ifndef _MURMURHASH3_H_ +#define _MURMURHASH3_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +//----------------------------------------------------------------------------- + +void MurmurHash3_x86_32 (const void *key, size_t len, uint32_t seed, void *out); + +void MurmurHash3_x86_128(const void *key, int len, uint32_t seed, void *out); + +void MurmurHash3_x64_128(const void *key, int len, uint32_t seed, void *out); + +//----------------------------------------------------------------------------- + +#ifdef __cplusplus +} +#endif + +#endif // _MURMURHASH3_H_ \ No newline at end of file diff --git a/vere/ext/natpmp/build.zig b/vere/ext/natpmp/build.zig new file mode 100644 index 0000000..2a44dee --- /dev/null +++ b/vere/ext/natpmp/build.zig @@ -0,0 +1,37 @@ +const std = @import("std"); + +pub fn build(b: *std.Build) void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + + const lib = b.addStaticLibrary(.{ + .name = "natpmp", + .target = target, + .optimize = optimize, + }); + + const dep_c = b.dependency("natpmp", .{ + .target = target, + .optimize = optimize, + }); + + lib.addIncludePath(dep_c.path("include")); + + lib.addCSourceFiles(.{ + .root = dep_c.path(""), + .files = &.{ + "natpmp.c", + "getgateway.c", + }, + .flags = &.{ + "-fno-sanitize=all", + }, + }); + + lib.installHeader(dep_c.path("natpmp.h"), "natpmp.h"); + lib.installHeader(dep_c.path("getgateway.h"), "getgateway.h"); + lib.installHeader(dep_c.path("natpmp_declspec.h"), "natpmp_declspec.h"); + + lib.linkLibC(); + b.installArtifact(lib); +} diff --git a/vere/ext/natpmp/build.zig.zon b/vere/ext/natpmp/build.zig.zon new file mode 100644 index 0000000..038468f --- /dev/null +++ b/vere/ext/natpmp/build.zig.zon @@ -0,0 +1,14 @@ +.{ + .name = "natpmp", + .version = "0.0.1", + .dependencies = .{ + .natpmp = .{ + .url = "https://mirrors.wikimedia.org/ubuntu/ubuntu/pool/main/libn/libnatpmp/libnatpmp_20230423.orig.tar.gz", + // .url = "https://debian.mirror.root.lu/debian/pool/main/libn/libnatpmp/libnatpmp_20230423.orig.tar.gz", + .hash = "N-V-__8AAKudAQA_d3eW8d8dskxBlLzGBg0qe-4u6ohSfCM2", + }, + }, + .paths = .{ + "", + }, +} diff --git a/vere/ext/openssl/build.zig b/vere/ext/openssl/build.zig new file mode 100644 index 0000000..12d57ac --- /dev/null +++ b/vere/ext/openssl/build.zig @@ -0,0 +1,1051 @@ +const std = @import("std"); + +pub fn build(b: *std.Build) !void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + + const macos_cflags = .{ + "-arch", + if (target.result.cpu.arch.isAARCH64()) + "arm64" + else + "x86_64", + }; + + const linux_cflags = .{}; + + const crypto = try libcrypto( + b, + target, + optimize, + if (target.result.os.tag.isDarwin()) &macos_cflags else &linux_cflags, + ); + if (target.result.os.tag.isDarwin() and !target.query.isNative()) { + const macos_sdk = b.lazyDependency("macos_sdk", .{ + .target = target, + .optimize = optimize, + }); + if (macos_sdk != null) { + crypto.addSystemIncludePath(macos_sdk.?.path("usr/include")); + crypto.addLibraryPath(macos_sdk.?.path("usr/lib")); + crypto.addFrameworkPath(macos_sdk.?.path("System/Library/Frameworks")); + } + } + + b.installArtifact(crypto); + b.installArtifact(libssl( + b, + target, + optimize, + if (target.result.os.tag.isDarwin()) &macos_cflags else &linux_cflags, + )); +} + +fn libcrypto( + b: *std.Build, + target: std.Build.ResolvedTarget, + optimize: std.builtin.OptimizeMode, + cflags: []const []const u8, +) !*std.Build.Step.Compile { + const t = target.result; + + const dep = b.dependency("openssl", .{ + .target = target, + .optimize = optimize, + }); + + const lib = b.addStaticLibrary(.{ + .name = "crypto", + .target = target, + .optimize = optimize, + }); + + lib.pie = true; + + switch (optimize) { + .Debug, .ReleaseSafe => lib.bundle_compiler_rt = true, + else => lib.root_module.strip = true, + } + + lib.linkLibC(); + + lib.addIncludePath(dep.path(".")); + lib.addIncludePath(dep.path("crypto")); + lib.addIncludePath(dep.path("crypto/ec/curve448/")); + lib.addIncludePath(dep.path("crypto/ec/curve448/arch_32/")); + lib.addIncludePath(dep.path("crypto/modes")); + lib.addIncludePath(dep.path("include")); + + lib.root_module.addCMacro("L_ENDIAN", ""); + lib.root_module.addCMacro("OPENSSL_PIC", ""); + lib.root_module.addCMacro("OPENSSL_CPUID_OBJ", ""); + lib.root_module.addCMacro("OPENSSL_BN_ASM_MONT", ""); + lib.root_module.addCMacro("SHA1_ASM", ""); + lib.root_module.addCMacro("SHA256_ASM", ""); + lib.root_module.addCMacro("SHA512_ASM", ""); + lib.root_module.addCMacro("KECCAK1600_ASM", ""); + lib.root_module.addCMacro("VPAES_ASM", ""); + lib.root_module.addCMacro("ECP_NISTZ256_ASM", ""); + lib.root_module.addCMacro("POLY1305_ASM", ""); + lib.root_module.addCMacro("OPENSSLDIR", "\"\""); + lib.root_module.addCMacro("ENGINESDIR", "\"\""); + + lib.root_module.addCMacro("_REENTRANT", ""); + lib.root_module.addCMacro("NDEBUG", ""); + + // lib.root_module.addCMacro("OPENSSL_NO_DEPRECATED", ""); + // lib.root_module.addCMacro("OPENSSL_NO_ENGINE", ""); + // lib.root_module.addCMacro("OPENSSL_NO_SRP", ""); + // lib.root_module.addCMacro("OPENSSL_NO_UI_CONSOLE", ""); + // lib.root_module.addCMacro("OPENSSL_NO_ASAN", ""); + // lib.root_module.addCMacro("OPENSSL_NO_UBSAN", ""); + // lib.root_module.addCMacro("OPENSSL_NO_ASM", ""); + // lib.root_module.addCMacro("OPENSSL_NO_KTLS", ""); + // lib.root_module.addCMacro("OPENSSL_NO_QUIC", ""); + // lib.root_module.addCMacro("OPENSSL_NO_THREAD_POOL", ""); + // lib.root_module.addCMacro("OPENSSL_NO_STDIO", ""); + // lib.root_module.addCMacro("OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ", "1"); + + if (t.os.tag.isDarwin() and t.cpu.arch.isAARCH64()) { + lib.addIncludePath(b.path("gen/macos-aarch64/include")); + lib.addIncludePath(b.path("gen/macos-aarch64/include/crypto")); + lib.addIncludePath(b.path("gen/macos-aarch64/include/openssl")); + + lib.addCSourceFiles(.{ + .root = b.path("gen/macos-aarch64/crypto"), + .files = &.{ + "aes/aesv8-armx.S", + "aes/vpaes-armv8.S", + "arm64cpuid.S", + "bn/armv8-mont.S", + "chacha/chacha-armv8.S", + "ec/ecp_nistz256-armv8.S", + "modes/ghashv8-armx.S", + "poly1305/poly1305-armv8.S", + "sha/keccak1600-armv8.S", + "sha/sha1-armv8.S", + "sha/sha256-armv8.S", + "sha/sha512-armv8.S", + }, + .flags = cflags, + }); + } + + if (t.os.tag == .linux and t.cpu.arch.isAARCH64()) { + lib.addIncludePath(b.path("gen/linux-aarch64/include")); + lib.addIncludePath(b.path("gen/linux-aarch64/include/crypto")); + lib.addIncludePath(b.path("gen/linux-aarch64/include/openssl")); + + lib.addCSourceFiles(.{ + .root = b.path("gen/linux-aarch64/crypto"), + .files = &.{ + "aes/aesv8-armx.S", + "aes/vpaes-armv8.S", + "arm64cpuid.S", + "bn/armv8-mont.S", + "chacha/chacha-armv8.S", + "ec/ecp_nistz256-armv8.S", + "modes/ghashv8-armx.S", + "poly1305/poly1305-armv8.S", + "sha/keccak1600-armv8.S", + "sha/sha1-armv8.S", + "sha/sha256-armv8.S", + "sha/sha512-armv8.S", + }, + .flags = cflags, + }); + } + + if (t.os.tag.isDarwin() and t.cpu.arch == .x86_64) { + lib.addIncludePath(b.path("gen/macos-x86_64/include")); + lib.addIncludePath(b.path("gen/macos-x86_64/include/crypto")); + lib.addIncludePath(b.path("gen/macos-x86_64/include/openssl")); + + lib.addCSourceFiles(.{ + .root = b.path("gen/macos-x86_64"), + .files = &.{ + "crypto/aes/aesni-mb-x86_64.s", + "crypto/aes/aesni-sha1-x86_64.s", + "crypto/aes/aesni-sha256-x86_64.s", + "crypto/aes/aesni-x86_64.s", + "crypto/aes/vpaes-x86_64.s", + "crypto/bn/rsaz-avx2.s", + "crypto/bn/rsaz-x86_64.s", + "crypto/bn/x86_64-gf2m.s", + "crypto/bn/x86_64-mont.s", + "crypto/bn/x86_64-mont5.s", + "crypto/camellia/cmll-x86_64.s", + "crypto/chacha/chacha-x86_64.s", + "crypto/ec/ecp_nistz256-x86_64.s", + "crypto/ec/x25519-x86_64.s", + "crypto/md5/md5-x86_64.s", + "crypto/modes/aesni-gcm-x86_64.s", + "crypto/modes/ghash-x86_64.s", + "crypto/poly1305/poly1305-x86_64.s", + "crypto/rc4/rc4-md5-x86_64.s", + "crypto/rc4/rc4-x86_64.s", + "crypto/sha/keccak1600-x86_64.s", + "crypto/sha/sha1-mb-x86_64.s", + "crypto/sha/sha1-x86_64.s", + "crypto/sha/sha256-mb-x86_64.s", + "crypto/sha/sha256-x86_64.s", + "crypto/sha/sha512-x86_64.s", + "crypto/whrlpool/wp-x86_64.s", + "crypto/x86_64cpuid.s", + "engines/e_padlock-x86_64.s", + }, + .flags = cflags, + }); + } + + if (t.os.tag == .linux and t.cpu.arch == .x86_64) { + lib.addIncludePath(b.path("gen/linux-x86_64/include")); + lib.addIncludePath(b.path("gen/linux-x86_64/include/crypto")); + lib.addIncludePath(b.path("gen/linux-x86_64/include/openssl")); + + lib.addCSourceFiles(.{ + .root = b.path("gen/linux-x86_64"), + .files = &.{ + "crypto/aes/aesni-mb-x86_64.s", + "crypto/aes/aesni-sha1-x86_64.s", + "crypto/aes/aesni-sha256-x86_64.s", + "crypto/aes/aesni-x86_64.s", + "crypto/aes/vpaes-x86_64.s", + "crypto/bn/rsaz-avx2.s", + "crypto/bn/rsaz-x86_64.s", + "crypto/bn/x86_64-gf2m.s", + "crypto/bn/x86_64-mont.s", + "crypto/bn/x86_64-mont5.s", + "crypto/camellia/cmll-x86_64.s", + "crypto/chacha/chacha-x86_64.s", + "crypto/ec/ecp_nistz256-x86_64.s", + "crypto/ec/x25519-x86_64.s", + "crypto/md5/md5-x86_64.s", + "crypto/modes/aesni-gcm-x86_64.s", + "crypto/modes/ghash-x86_64.s", + "crypto/poly1305/poly1305-x86_64.s", + "crypto/rc4/rc4-md5-x86_64.s", + "crypto/rc4/rc4-x86_64.s", + "crypto/sha/keccak1600-x86_64.s", + "crypto/sha/sha1-mb-x86_64.s", + "crypto/sha/sha1-x86_64.s", + "crypto/sha/sha256-mb-x86_64.s", + "crypto/sha/sha256-x86_64.s", + "crypto/sha/sha512-x86_64.s", + "crypto/whrlpool/wp-x86_64.s", + "crypto/x86_64cpuid.s", + "engines/e_padlock-x86_64.s", + }, + .flags = cflags, + }); + } + + var srcs = std.ArrayList([]const u8).init(b.allocator); + defer srcs.deinit(); + try srcs.appendSlice(&common_crypto_sources); + + if (t.os.tag == .linux) { + try srcs.appendSlice(&.{ + "engines/e_afalg.c", + }); + } + + lib.addCSourceFiles(.{ + .root = dep.path(""), + .files = switch (t.cpu.arch) { + .arm, .aarch64 => &.{ + "crypto/armcap.c", + }, + .powerpc => &.{ + "crypto/ppccap.c", + }, + .riscv64 => &.{ + "crypto/riscvcap.c", + }, + .s390x => &.{ + "crypto/bn/bn_s390x.c", + "crypto/ec/ecp_s390x_nistp.c", + "crypto/ec/ecx_s390x.c", + "crypto/s390xcap.c", + }, + .sparc, .sparc64 => &.{ + "crypto/bn/bn_sparc.c", + "crypto/sparcv9cap.c", + }, + else => &.{}, + }, + .flags = cflags, + }); + + lib.addCSourceFiles(.{ + .root = dep.path(""), + .files = srcs.items, + .flags = cflags, + }); + + lib.installHeadersDirectory(dep.path("include/crypto"), "crypto", .{}); + lib.installHeadersDirectory(dep.path("include/internal"), "internal", .{}); + + return lib; +} + +fn libssl( + b: *std.Build, + target: std.Build.ResolvedTarget, + optimize: std.builtin.OptimizeMode, + cflags: []const []const u8, +) *std.Build.Step.Compile { + const t = target.result; + const dep = b.dependency("openssl", .{ + .target = target, + .optimize = optimize, + }); + + const lib = b.addStaticLibrary(.{ + .name = "ssl", + .target = target, + .optimize = optimize, + }); + + lib.pie = true; + + switch (optimize) { + .Debug, .ReleaseSafe => lib.bundle_compiler_rt = true, + else => lib.root_module.strip = true, + } + + lib.linkLibC(); + + lib.addIncludePath(dep.path(".")); + lib.addIncludePath(dep.path("openssl")); + lib.addIncludePath(dep.path("include")); + lib.addIncludePath(dep.path("include/internal")); + lib.addIncludePath(dep.path("include/openssl")); + + if (t.os.tag.isDarwin() and t.cpu.arch.isAARCH64()) { + lib.addIncludePath(b.path("gen/macos-aarch64/include")); + lib.addIncludePath(b.path("gen/macos-aarch64/include/openssl")); + lib.installHeadersDirectory(b.path("gen/macos-aarch64/include/openssl"), "openssl", .{}); + } + + if (t.os.tag == .linux and t.cpu.arch.isAARCH64()) { + lib.addIncludePath(b.path("gen/linux-aarch64/include")); + lib.addIncludePath(b.path("gen/linux-aarch64/include/openssl")); + lib.installHeadersDirectory(b.path("gen/linux-aarch64/include/openssl"), "openssl", .{}); + } + + if (t.os.tag.isDarwin() and t.cpu.arch == .x86_64) { + lib.addIncludePath(b.path("gen/macos-x86_64/include")); + lib.addIncludePath(b.path("gen/macos-x86_64/include/openssl")); + lib.installHeadersDirectory(b.path("gen/macos-x86_64/include/openssl"), "openssl", .{}); + } + + if (t.os.tag == .linux and t.cpu.arch == .x86_64) { + lib.addIncludePath(b.path("gen/linux-x86_64/include")); + lib.addIncludePath(b.path("gen/linux-x86_64/include/openssl")); + lib.installHeadersDirectory(b.path("gen/linux-x86_64/include/openssl"), "openssl", .{}); + } + + lib.root_module.addCMacro("OPENSSLDIR", "\"\""); + lib.root_module.addCMacro("ENGINESDIR", "\"\""); + + lib.addCSourceFiles(.{ + .root = dep.path(""), + .files = &.{ + "ssl/bio_ssl.c", + "ssl/d1_lib.c", + "ssl/d1_msg.c", + "ssl/d1_srtp.c", + "ssl/methods.c", + "ssl/packet.c", + "ssl/pqueue.c", + "ssl/record/dtls1_bitmap.c", + "ssl/record/rec_layer_d1.c", + "ssl/record/rec_layer_s3.c", + "ssl/record/ssl3_buffer.c", + "ssl/record/ssl3_record.c", + "ssl/record/ssl3_record_tls13.c", + "ssl/s3_cbc.c", + "ssl/s3_enc.c", + "ssl/s3_lib.c", + "ssl/s3_msg.c", + "ssl/ssl_asn1.c", + "ssl/ssl_cert.c", + "ssl/ssl_ciph.c", + "ssl/ssl_conf.c", + "ssl/ssl_err.c", + "ssl/ssl_init.c", + "ssl/ssl_lib.c", + "ssl/ssl_mcnf.c", + "ssl/ssl_rsa.c", + "ssl/ssl_sess.c", + "ssl/ssl_stat.c", + "ssl/ssl_txt.c", + "ssl/ssl_utst.c", + "ssl/statem/extensions.c", + "ssl/statem/extensions_clnt.c", + "ssl/statem/extensions_cust.c", + "ssl/statem/extensions_srvr.c", + "ssl/statem/statem.c", + "ssl/statem/statem_clnt.c", + "ssl/statem/statem_dtls.c", + "ssl/statem/statem_lib.c", + "ssl/statem/statem_srvr.c", + "ssl/t1_enc.c", + "ssl/t1_lib.c", + "ssl/t1_trce.c", + "ssl/tls13_enc.c", + "ssl/tls_srp.c", + }, + .flags = cflags, + }); + + lib.installHeadersDirectory(dep.path("include/openssl"), "openssl", .{}); + + return lib; +} + +const common_crypto_sources = [_][]const u8{ + "crypto/aes/aes_cbc.c", + "crypto/aes/aes_cfb.c", + "crypto/aes/aes_core.c", + "crypto/aes/aes_ecb.c", + "crypto/aes/aes_ige.c", + "crypto/aes/aes_misc.c", + "crypto/aes/aes_ofb.c", + "crypto/aes/aes_wrap.c", + "crypto/aria/aria.c", + // "crypto/armcap.c", + "crypto/asn1/a_bitstr.c", + "crypto/asn1/a_d2i_fp.c", + "crypto/asn1/a_digest.c", + "crypto/asn1/a_dup.c", + "crypto/asn1/a_gentm.c", + "crypto/asn1/a_i2d_fp.c", + "crypto/asn1/a_int.c", + "crypto/asn1/a_mbstr.c", + "crypto/asn1/a_object.c", + "crypto/asn1/a_octet.c", + "crypto/asn1/a_print.c", + "crypto/asn1/a_sign.c", + "crypto/asn1/a_strex.c", + "crypto/asn1/a_strnid.c", + "crypto/asn1/a_time.c", + "crypto/asn1/a_type.c", + "crypto/asn1/a_utctm.c", + "crypto/asn1/a_utf8.c", + "crypto/asn1/a_verify.c", + "crypto/asn1/ameth_lib.c", + "crypto/asn1/asn1_err.c", + "crypto/asn1/asn1_gen.c", + "crypto/asn1/asn1_item_list.c", + "crypto/asn1/asn1_lib.c", + "crypto/asn1/asn1_par.c", + "crypto/asn1/asn_mime.c", + "crypto/asn1/asn_moid.c", + "crypto/asn1/asn_mstbl.c", + "crypto/asn1/asn_pack.c", + "crypto/asn1/bio_asn1.c", + "crypto/asn1/bio_ndef.c", + "crypto/asn1/d2i_pr.c", + "crypto/asn1/d2i_pu.c", + "crypto/asn1/evp_asn1.c", + "crypto/asn1/f_int.c", + "crypto/asn1/f_string.c", + "crypto/asn1/i2d_pr.c", + "crypto/asn1/i2d_pu.c", + "crypto/asn1/n_pkey.c", + "crypto/asn1/nsseq.c", + "crypto/asn1/p5_pbe.c", + "crypto/asn1/p5_pbev2.c", + "crypto/asn1/p5_scrypt.c", + "crypto/asn1/p8_pkey.c", + "crypto/asn1/t_bitst.c", + "crypto/asn1/t_pkey.c", + "crypto/asn1/t_spki.c", + "crypto/asn1/tasn_dec.c", + "crypto/asn1/tasn_enc.c", + "crypto/asn1/tasn_fre.c", + "crypto/asn1/tasn_new.c", + "crypto/asn1/tasn_prn.c", + "crypto/asn1/tasn_scn.c", + "crypto/asn1/tasn_typ.c", + "crypto/asn1/tasn_utl.c", + "crypto/asn1/x_algor.c", + "crypto/asn1/x_bignum.c", + "crypto/asn1/x_info.c", + "crypto/asn1/x_int64.c", + "crypto/asn1/x_long.c", + "crypto/asn1/x_pkey.c", + "crypto/asn1/x_sig.c", + "crypto/asn1/x_spki.c", + "crypto/asn1/x_val.c", + "crypto/async/arch/async_null.c", + "crypto/async/arch/async_posix.c", + "crypto/async/arch/async_win.c", + "crypto/async/async.c", + "crypto/async/async_err.c", + "crypto/async/async_wait.c", + "crypto/bf/bf_cfb64.c", + "crypto/bf/bf_ecb.c", + "crypto/bf/bf_enc.c", + "crypto/bf/bf_ofb64.c", + "crypto/bf/bf_skey.c", + "crypto/bio/b_addr.c", + "crypto/bio/b_dump.c", + "crypto/bio/b_print.c", + "crypto/bio/b_sock.c", + "crypto/bio/b_sock2.c", + "crypto/bio/bf_buff.c", + "crypto/bio/bf_lbuf.c", + "crypto/bio/bf_nbio.c", + "crypto/bio/bf_null.c", + "crypto/bio/bio_cb.c", + "crypto/bio/bio_err.c", + "crypto/bio/bio_lib.c", + "crypto/bio/bio_meth.c", + "crypto/bio/bss_acpt.c", + "crypto/bio/bss_bio.c", + "crypto/bio/bss_conn.c", + "crypto/bio/bss_dgram.c", + "crypto/bio/bss_fd.c", + "crypto/bio/bss_file.c", + "crypto/bio/bss_log.c", + "crypto/bio/bss_mem.c", + "crypto/bio/bss_null.c", + "crypto/bio/bss_sock.c", + "crypto/blake2/blake2b.c", + "crypto/blake2/blake2s.c", + "crypto/blake2/m_blake2b.c", + "crypto/blake2/m_blake2s.c", + "crypto/bn/bn_add.c", + "crypto/bn/bn_asm.c", + "crypto/bn/bn_blind.c", + "crypto/bn/bn_const.c", + "crypto/bn/bn_ctx.c", + "crypto/bn/bn_depr.c", + "crypto/bn/bn_dh.c", + "crypto/bn/bn_div.c", + "crypto/bn/bn_err.c", + "crypto/bn/bn_exp.c", + "crypto/bn/bn_exp2.c", + "crypto/bn/bn_gcd.c", + "crypto/bn/bn_gf2m.c", + "crypto/bn/bn_intern.c", + "crypto/bn/bn_kron.c", + "crypto/bn/bn_lib.c", + "crypto/bn/bn_mod.c", + "crypto/bn/bn_mont.c", + "crypto/bn/bn_mpi.c", + "crypto/bn/bn_mul.c", + "crypto/bn/bn_nist.c", + "crypto/bn/bn_prime.c", + "crypto/bn/bn_print.c", + "crypto/bn/bn_rand.c", + "crypto/bn/bn_recp.c", + "crypto/bn/bn_shift.c", + "crypto/bn/bn_sqr.c", + "crypto/bn/bn_sqrt.c", + "crypto/bn/bn_srp.c", + "crypto/bn/bn_word.c", + "crypto/bn/bn_x931p.c", + "crypto/bn/rsaz_exp.c", + "crypto/buffer/buf_err.c", + "crypto/buffer/buffer.c", + "crypto/camellia/camellia.c", + "crypto/camellia/cmll_cbc.c", + "crypto/camellia/cmll_cfb.c", + "crypto/camellia/cmll_ctr.c", + "crypto/camellia/cmll_ecb.c", + "crypto/camellia/cmll_misc.c", + "crypto/camellia/cmll_ofb.c", + "crypto/cast/c_cfb64.c", + "crypto/cast/c_ecb.c", + "crypto/cast/c_enc.c", + "crypto/cast/c_ofb64.c", + "crypto/cast/c_skey.c", + // "crypto/chacha/chacha_enc.c", + "crypto/cmac/cm_ameth.c", + "crypto/cmac/cm_pmeth.c", + "crypto/cmac/cmac.c", + "crypto/cms/cms_asn1.c", + "crypto/cms/cms_att.c", + "crypto/cms/cms_cd.c", + "crypto/cms/cms_dd.c", + "crypto/cms/cms_enc.c", + "crypto/cms/cms_env.c", + "crypto/cms/cms_err.c", + "crypto/cms/cms_ess.c", + "crypto/cms/cms_io.c", + "crypto/cms/cms_kari.c", + "crypto/cms/cms_lib.c", + "crypto/cms/cms_pwri.c", + "crypto/cms/cms_sd.c", + "crypto/cms/cms_smime.c", + "crypto/comp/c_zlib.c", + "crypto/comp/comp_err.c", + "crypto/comp/comp_lib.c", + "crypto/conf/conf_api.c", + "crypto/conf/conf_def.c", + "crypto/conf/conf_err.c", + "crypto/conf/conf_lib.c", + "crypto/conf/conf_mall.c", + "crypto/conf/conf_mod.c", + "crypto/conf/conf_sap.c", + "crypto/conf/conf_ssl.c", + "crypto/cpt_err.c", + "crypto/cryptlib.c", + "crypto/ct/ct_b64.c", + "crypto/ct/ct_err.c", + "crypto/ct/ct_log.c", + "crypto/ct/ct_oct.c", + "crypto/ct/ct_policy.c", + "crypto/ct/ct_prn.c", + "crypto/ct/ct_sct.c", + "crypto/ct/ct_sct_ctx.c", + "crypto/ct/ct_vfy.c", + "crypto/ct/ct_x509v3.c", + "crypto/ctype.c", + "crypto/cversion.c", + "crypto/des/cbc_cksm.c", + "crypto/des/cbc_enc.c", + "crypto/des/cfb64ede.c", + "crypto/des/cfb64enc.c", + "crypto/des/cfb_enc.c", + "crypto/des/des_enc.c", + "crypto/des/ecb3_enc.c", + "crypto/des/ecb_enc.c", + "crypto/des/fcrypt.c", + "crypto/des/fcrypt_b.c", + "crypto/des/ofb64ede.c", + "crypto/des/ofb64enc.c", + "crypto/des/ofb_enc.c", + "crypto/des/pcbc_enc.c", + "crypto/des/qud_cksm.c", + "crypto/des/rand_key.c", + "crypto/des/set_key.c", + "crypto/des/str2key.c", + "crypto/des/xcbc_enc.c", + "crypto/dh/dh_ameth.c", + "crypto/dh/dh_asn1.c", + "crypto/dh/dh_check.c", + "crypto/dh/dh_depr.c", + "crypto/dh/dh_err.c", + "crypto/dh/dh_gen.c", + "crypto/dh/dh_kdf.c", + "crypto/dh/dh_key.c", + "crypto/dh/dh_lib.c", + "crypto/dh/dh_meth.c", + "crypto/dh/dh_pmeth.c", + "crypto/dh/dh_prn.c", + "crypto/dh/dh_rfc5114.c", + "crypto/dh/dh_rfc7919.c", + "crypto/dsa/dsa_ameth.c", + "crypto/dsa/dsa_asn1.c", + "crypto/dsa/dsa_depr.c", + "crypto/dsa/dsa_err.c", + "crypto/dsa/dsa_gen.c", + "crypto/dsa/dsa_key.c", + "crypto/dsa/dsa_lib.c", + "crypto/dsa/dsa_meth.c", + "crypto/dsa/dsa_ossl.c", + "crypto/dsa/dsa_pmeth.c", + "crypto/dsa/dsa_prn.c", + "crypto/dsa/dsa_sign.c", + "crypto/dsa/dsa_vrf.c", + "crypto/dso/dso_dl.c", + "crypto/dso/dso_dlfcn.c", + "crypto/dso/dso_err.c", + "crypto/dso/dso_lib.c", + "crypto/dso/dso_openssl.c", + "crypto/dso/dso_vms.c", + "crypto/dso/dso_win32.c", + "crypto/ebcdic.c", + "crypto/ec/curve25519.c", + "crypto/ec/curve448/arch_32/f_impl.c", + "crypto/ec/curve448/curve448.c", + "crypto/ec/curve448/curve448_tables.c", + "crypto/ec/curve448/eddsa.c", + "crypto/ec/curve448/f_generic.c", + "crypto/ec/curve448/scalar.c", + "crypto/ec/ec2_oct.c", + "crypto/ec/ec2_smpl.c", + "crypto/ec/ec_ameth.c", + "crypto/ec/ec_asn1.c", + "crypto/ec/ec_check.c", + "crypto/ec/ec_curve.c", + "crypto/ec/ec_cvt.c", + "crypto/ec/ec_err.c", + "crypto/ec/ec_key.c", + "crypto/ec/ec_kmeth.c", + "crypto/ec/ec_lib.c", + "crypto/ec/ec_mult.c", + "crypto/ec/ec_oct.c", + "crypto/ec/ec_pmeth.c", + "crypto/ec/ec_print.c", + "crypto/ec/ecdh_kdf.c", + "crypto/ec/ecdh_ossl.c", + "crypto/ec/ecdsa_ossl.c", + "crypto/ec/ecdsa_sign.c", + "crypto/ec/ecdsa_vrf.c", + "crypto/ec/eck_prn.c", + "crypto/ec/ecp_mont.c", + "crypto/ec/ecp_nist.c", + "crypto/ec/ecp_nistp224.c", + "crypto/ec/ecp_nistp256.c", + "crypto/ec/ecp_nistp521.c", + "crypto/ec/ecp_nistputil.c", + "crypto/ec/ecp_nistz256.c", + "crypto/ec/ecp_oct.c", + "crypto/ec/ecp_smpl.c", + "crypto/ec/ecx_meth.c", + "crypto/engine/eng_all.c", + "crypto/engine/eng_cnf.c", + "crypto/engine/eng_ctrl.c", + "crypto/engine/eng_dyn.c", + "crypto/engine/eng_err.c", + "crypto/engine/eng_fat.c", + "crypto/engine/eng_init.c", + "crypto/engine/eng_lib.c", + "crypto/engine/eng_list.c", + "crypto/engine/eng_openssl.c", + "crypto/engine/eng_pkey.c", + "crypto/engine/eng_rdrand.c", + "crypto/engine/eng_table.c", + "crypto/engine/tb_asnmth.c", + "crypto/engine/tb_cipher.c", + "crypto/engine/tb_dh.c", + "crypto/engine/tb_digest.c", + "crypto/engine/tb_dsa.c", + "crypto/engine/tb_eckey.c", + "crypto/engine/tb_pkmeth.c", + "crypto/engine/tb_rand.c", + "crypto/engine/tb_rsa.c", + "crypto/err/err.c", + "crypto/err/err_all.c", + "crypto/err/err_prn.c", + "crypto/evp/bio_b64.c", + "crypto/evp/bio_enc.c", + "crypto/evp/bio_md.c", + "crypto/evp/bio_ok.c", + "crypto/evp/c_allc.c", + "crypto/evp/c_alld.c", + "crypto/evp/cmeth_lib.c", + "crypto/evp/digest.c", + "crypto/evp/e_aes.c", + "crypto/evp/e_aes_cbc_hmac_sha1.c", + "crypto/evp/e_aes_cbc_hmac_sha256.c", + "crypto/evp/e_aria.c", + "crypto/evp/e_bf.c", + "crypto/evp/e_camellia.c", + "crypto/evp/e_cast.c", + "crypto/evp/e_chacha20_poly1305.c", + "crypto/evp/e_des.c", + "crypto/evp/e_des3.c", + "crypto/evp/e_idea.c", + "crypto/evp/e_null.c", + "crypto/evp/e_old.c", + "crypto/evp/e_rc2.c", + "crypto/evp/e_rc4.c", + "crypto/evp/e_rc4_hmac_md5.c", + "crypto/evp/e_rc5.c", + "crypto/evp/e_seed.c", + "crypto/evp/e_sm4.c", + "crypto/evp/e_xcbc_d.c", + "crypto/evp/encode.c", + "crypto/evp/evp_cnf.c", + "crypto/evp/evp_enc.c", + "crypto/evp/evp_err.c", + "crypto/evp/evp_key.c", + "crypto/evp/evp_lib.c", + "crypto/evp/evp_pbe.c", + "crypto/evp/evp_pkey.c", + "crypto/evp/m_md2.c", + "crypto/evp/m_md4.c", + "crypto/evp/m_md5.c", + "crypto/evp/m_md5_sha1.c", + "crypto/evp/m_mdc2.c", + "crypto/evp/m_null.c", + "crypto/evp/m_ripemd.c", + "crypto/evp/m_sha1.c", + "crypto/evp/m_sha3.c", + "crypto/evp/m_sigver.c", + "crypto/evp/m_wp.c", + "crypto/evp/names.c", + "crypto/evp/p5_crpt.c", + "crypto/evp/p5_crpt2.c", + "crypto/evp/p_dec.c", + "crypto/evp/p_enc.c", + "crypto/evp/p_lib.c", + "crypto/evp/p_open.c", + "crypto/evp/p_seal.c", + "crypto/evp/p_sign.c", + "crypto/evp/p_verify.c", + "crypto/evp/pbe_scrypt.c", + "crypto/evp/pmeth_fn.c", + "crypto/evp/pmeth_gn.c", + "crypto/evp/pmeth_lib.c", + "crypto/ex_data.c", + "crypto/getenv.c", + "crypto/hmac/hm_ameth.c", + "crypto/hmac/hm_pmeth.c", + "crypto/hmac/hmac.c", + "crypto/idea/i_cbc.c", + "crypto/idea/i_cfb64.c", + "crypto/idea/i_ecb.c", + "crypto/idea/i_ofb64.c", + "crypto/idea/i_skey.c", + "crypto/init.c", + "crypto/kdf/hkdf.c", + "crypto/kdf/kdf_err.c", + "crypto/kdf/scrypt.c", + "crypto/kdf/tls1_prf.c", + "crypto/lhash/lh_stats.c", + "crypto/lhash/lhash.c", + "crypto/md4/md4_dgst.c", + "crypto/md4/md4_one.c", + "crypto/md5/md5_dgst.c", + "crypto/md5/md5_one.c", + "crypto/mdc2/mdc2_one.c", + "crypto/mdc2/mdc2dgst.c", + "crypto/mem.c", + // "crypto/mem_clr.c", + "crypto/mem_dbg.c", + "crypto/mem_sec.c", + "crypto/modes/cbc128.c", + "crypto/modes/ccm128.c", + "crypto/modes/cfb128.c", + "crypto/modes/ctr128.c", + "crypto/modes/cts128.c", + "crypto/modes/gcm128.c", + "crypto/modes/ocb128.c", + "crypto/modes/ofb128.c", + "crypto/modes/wrap128.c", + "crypto/modes/xts128.c", + "crypto/o_dir.c", + "crypto/o_fips.c", + "crypto/o_fopen.c", + "crypto/o_init.c", + "crypto/o_str.c", + "crypto/o_time.c", + "crypto/objects/o_names.c", + "crypto/objects/obj_dat.c", + "crypto/objects/obj_err.c", + "crypto/objects/obj_lib.c", + "crypto/objects/obj_xref.c", + "crypto/ocsp/ocsp_asn.c", + "crypto/ocsp/ocsp_cl.c", + "crypto/ocsp/ocsp_err.c", + "crypto/ocsp/ocsp_ext.c", + "crypto/ocsp/ocsp_ht.c", + "crypto/ocsp/ocsp_lib.c", + "crypto/ocsp/ocsp_prn.c", + "crypto/ocsp/ocsp_srv.c", + "crypto/ocsp/ocsp_vfy.c", + "crypto/ocsp/v3_ocsp.c", + "crypto/pem/pem_all.c", + "crypto/pem/pem_err.c", + "crypto/pem/pem_info.c", + "crypto/pem/pem_lib.c", + "crypto/pem/pem_oth.c", + "crypto/pem/pem_pk8.c", + "crypto/pem/pem_pkey.c", + "crypto/pem/pem_sign.c", + "crypto/pem/pem_x509.c", + "crypto/pem/pem_xaux.c", + "crypto/pem/pvkfmt.c", + "crypto/pkcs12/p12_add.c", + "crypto/pkcs12/p12_asn.c", + "crypto/pkcs12/p12_attr.c", + "crypto/pkcs12/p12_crpt.c", + "crypto/pkcs12/p12_crt.c", + "crypto/pkcs12/p12_decr.c", + "crypto/pkcs12/p12_init.c", + "crypto/pkcs12/p12_key.c", + "crypto/pkcs12/p12_kiss.c", + "crypto/pkcs12/p12_mutl.c", + "crypto/pkcs12/p12_npas.c", + "crypto/pkcs12/p12_p8d.c", + "crypto/pkcs12/p12_p8e.c", + "crypto/pkcs12/p12_sbag.c", + "crypto/pkcs12/p12_utl.c", + "crypto/pkcs12/pk12err.c", + "crypto/pkcs7/bio_pk7.c", + "crypto/pkcs7/pk7_asn1.c", + "crypto/pkcs7/pk7_attr.c", + "crypto/pkcs7/pk7_doit.c", + "crypto/pkcs7/pk7_lib.c", + "crypto/pkcs7/pk7_mime.c", + "crypto/pkcs7/pk7_smime.c", + "crypto/pkcs7/pkcs7err.c", + "crypto/poly1305/poly1305.c", + "crypto/poly1305/poly1305_ameth.c", + "crypto/poly1305/poly1305_pmeth.c", + "crypto/rand/drbg_ctr.c", + "crypto/rand/drbg_lib.c", + "crypto/rand/rand_egd.c", + "crypto/rand/rand_err.c", + "crypto/rand/rand_lib.c", + "crypto/rand/rand_unix.c", + "crypto/rand/rand_vms.c", + "crypto/rand/rand_win.c", + "crypto/rand/randfile.c", + "crypto/rc2/rc2_cbc.c", + "crypto/rc2/rc2_ecb.c", + "crypto/rc2/rc2_skey.c", + "crypto/rc2/rc2cfb64.c", + "crypto/rc2/rc2ofb64.c", + "crypto/rc4/rc4_enc.c", + "crypto/rc4/rc4_skey.c", + "crypto/ripemd/rmd_dgst.c", + "crypto/ripemd/rmd_one.c", + "crypto/rsa/rsa_ameth.c", + "crypto/rsa/rsa_asn1.c", + "crypto/rsa/rsa_chk.c", + "crypto/rsa/rsa_crpt.c", + "crypto/rsa/rsa_depr.c", + "crypto/rsa/rsa_err.c", + "crypto/rsa/rsa_gen.c", + "crypto/rsa/rsa_lib.c", + "crypto/rsa/rsa_meth.c", + "crypto/rsa/rsa_mp.c", + "crypto/rsa/rsa_none.c", + "crypto/rsa/rsa_oaep.c", + "crypto/rsa/rsa_ossl.c", + "crypto/rsa/rsa_pk1.c", + "crypto/rsa/rsa_pmeth.c", + "crypto/rsa/rsa_prn.c", + "crypto/rsa/rsa_pss.c", + "crypto/rsa/rsa_saos.c", + "crypto/rsa/rsa_sign.c", + "crypto/rsa/rsa_ssl.c", + "crypto/rsa/rsa_x931.c", + "crypto/rsa/rsa_x931g.c", + "crypto/seed/seed.c", + "crypto/seed/seed_cbc.c", + "crypto/seed/seed_cfb.c", + "crypto/seed/seed_ecb.c", + "crypto/seed/seed_ofb.c", + // "crypto/sha/keccak1600.c", + "crypto/sha/sha1_one.c", + "crypto/sha/sha1dgst.c", + "crypto/sha/sha256.c", + "crypto/sha/sha512.c", + "crypto/siphash/siphash.c", + "crypto/siphash/siphash_ameth.c", + "crypto/siphash/siphash_pmeth.c", + "crypto/sm2/sm2_crypt.c", + "crypto/sm2/sm2_err.c", + "crypto/sm2/sm2_pmeth.c", + "crypto/sm2/sm2_sign.c", + "crypto/sm3/m_sm3.c", + "crypto/sm3/sm3.c", + "crypto/sm4/sm4.c", + "crypto/srp/srp_lib.c", + "crypto/srp/srp_vfy.c", + "crypto/stack/stack.c", + "crypto/store/loader_file.c", + "crypto/store/store_err.c", + "crypto/store/store_init.c", + "crypto/store/store_lib.c", + "crypto/store/store_register.c", + "crypto/store/store_strings.c", + "crypto/threads_none.c", + "crypto/threads_pthread.c", + "crypto/threads_win.c", + "crypto/ts/ts_asn1.c", + "crypto/ts/ts_conf.c", + "crypto/ts/ts_err.c", + "crypto/ts/ts_lib.c", + "crypto/ts/ts_req_print.c", + "crypto/ts/ts_req_utils.c", + "crypto/ts/ts_rsp_print.c", + "crypto/ts/ts_rsp_sign.c", + "crypto/ts/ts_rsp_utils.c", + "crypto/ts/ts_rsp_verify.c", + "crypto/ts/ts_verify_ctx.c", + "crypto/txt_db/txt_db.c", + "crypto/ui/ui_err.c", + "crypto/ui/ui_lib.c", + "crypto/ui/ui_null.c", + "crypto/ui/ui_openssl.c", + "crypto/ui/ui_util.c", + "crypto/uid.c", + "crypto/whrlpool/wp_block.c", + "crypto/whrlpool/wp_dgst.c", + "crypto/x509/by_dir.c", + "crypto/x509/by_file.c", + "crypto/x509/t_crl.c", + "crypto/x509/t_req.c", + "crypto/x509/t_x509.c", + "crypto/x509/x509_att.c", + "crypto/x509/x509_cmp.c", + "crypto/x509/x509_d2.c", + "crypto/x509/x509_def.c", + "crypto/x509/x509_err.c", + "crypto/x509/x509_ext.c", + "crypto/x509/x509_lu.c", + "crypto/x509/x509_meth.c", + "crypto/x509/x509_obj.c", + "crypto/x509/x509_r2x.c", + "crypto/x509/x509_req.c", + "crypto/x509/x509_set.c", + "crypto/x509/x509_trs.c", + "crypto/x509/x509_txt.c", + "crypto/x509/x509_v3.c", + "crypto/x509/x509_vfy.c", + "crypto/x509/x509_vpm.c", + "crypto/x509/x509cset.c", + "crypto/x509/x509name.c", + "crypto/x509/x509rset.c", + "crypto/x509/x509spki.c", + "crypto/x509/x509type.c", + "crypto/x509/x_all.c", + "crypto/x509/x_attrib.c", + "crypto/x509/x_crl.c", + "crypto/x509/x_exten.c", + "crypto/x509/x_name.c", + "crypto/x509/x_pubkey.c", + "crypto/x509/x_req.c", + "crypto/x509/x_x509.c", + "crypto/x509/x_x509a.c", + "crypto/x509v3/pcy_cache.c", + "crypto/x509v3/pcy_data.c", + "crypto/x509v3/pcy_lib.c", + "crypto/x509v3/pcy_map.c", + "crypto/x509v3/pcy_node.c", + "crypto/x509v3/pcy_tree.c", + "crypto/x509v3/v3_addr.c", + "crypto/x509v3/v3_admis.c", + "crypto/x509v3/v3_akey.c", + "crypto/x509v3/v3_akeya.c", + "crypto/x509v3/v3_alt.c", + "crypto/x509v3/v3_asid.c", + "crypto/x509v3/v3_bcons.c", + "crypto/x509v3/v3_bitst.c", + "crypto/x509v3/v3_conf.c", + "crypto/x509v3/v3_cpols.c", + "crypto/x509v3/v3_crld.c", + "crypto/x509v3/v3_enum.c", + "crypto/x509v3/v3_extku.c", + "crypto/x509v3/v3_genn.c", + "crypto/x509v3/v3_ia5.c", + "crypto/x509v3/v3_info.c", + "crypto/x509v3/v3_int.c", + "crypto/x509v3/v3_lib.c", + "crypto/x509v3/v3_ncons.c", + "crypto/x509v3/v3_pci.c", + "crypto/x509v3/v3_pcia.c", + "crypto/x509v3/v3_pcons.c", + "crypto/x509v3/v3_pku.c", + "crypto/x509v3/v3_pmaps.c", + "crypto/x509v3/v3_prn.c", + "crypto/x509v3/v3_purp.c", + "crypto/x509v3/v3_skey.c", + "crypto/x509v3/v3_sxnet.c", + "crypto/x509v3/v3_tlsf.c", + "crypto/x509v3/v3_utl.c", + "crypto/x509v3/v3err.c", + "engines/e_capi.c", + "engines/e_padlock.c", +}; diff --git a/vere/ext/openssl/build.zig.zon b/vere/ext/openssl/build.zig.zon new file mode 100644 index 0000000..57d0171 --- /dev/null +++ b/vere/ext/openssl/build.zig.zon @@ -0,0 +1,19 @@ +.{ + .name = .openssl, + .fingerprint = 0x773a47f1e2d96f2e, + .version = "0.0.1", + .dependencies = .{ + .macos_sdk = .{ + .url = "https://github.com/joseluisq/macosx-sdks/releases/download/14.5/MacOSX14.5.sdk.tar.xz", + .hash = "N-V-__8AAKtK4FMzqcFsY_ZrpMg9bGH0h7BqZDXtVyAerMtM", + .lazy = true, + }, + .openssl = .{ + .url = "https://github.com/openssl/openssl/releases/download/OpenSSL_1_1_1w/openssl-1.1.1w.tar.gz", + .hash = "N-V-__8AANidegJCsKafw97uPGA7EQRvFWkwRuXPz1aFjgKL", + }, + }, + .paths = .{ + "", + }, +} diff --git a/vere/ext/openssl/gen/linux-aarch64/crypto/aes/aesv8-armx.S b/vere/ext/openssl/gen/linux-aarch64/crypto/aes/aesv8-armx.S new file mode 100644 index 0000000..cdeae4e --- /dev/null +++ b/vere/ext/openssl/gen/linux-aarch64/crypto/aes/aesv8-armx.S @@ -0,0 +1,757 @@ +#include "arm_arch.h" + +#if __ARM_MAX_ARCH__>=7 +.text +.arch armv8-a+crypto +.align 5 +.Lrcon: +.long 0x01,0x01,0x01,0x01 +.long 0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d // rotate-n-splat +.long 0x1b,0x1b,0x1b,0x1b + +.globl aes_v8_set_encrypt_key +.type aes_v8_set_encrypt_key,%function +.align 5 +aes_v8_set_encrypt_key: +.Lenc_key: + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + mov x3,#-1 + cmp x0,#0 + b.eq .Lenc_key_abort + cmp x2,#0 + b.eq .Lenc_key_abort + mov x3,#-2 + cmp w1,#128 + b.lt .Lenc_key_abort + cmp w1,#256 + b.gt .Lenc_key_abort + tst w1,#0x3f + b.ne .Lenc_key_abort + + adr x3,.Lrcon + cmp w1,#192 + + eor v0.16b,v0.16b,v0.16b + ld1 {v3.16b},[x0],#16 + mov w1,#8 // reuse w1 + ld1 {v1.4s,v2.4s},[x3],#32 + + b.lt .Loop128 + b.eq .L192 + b .L256 + +.align 4 +.Loop128: + tbl v6.16b,{v3.16b},v2.16b + ext v5.16b,v0.16b,v3.16b,#12 + st1 {v3.4s},[x2],#16 + aese v6.16b,v0.16b + subs w1,w1,#1 + + eor v3.16b,v3.16b,v5.16b + ext v5.16b,v0.16b,v5.16b,#12 + eor v3.16b,v3.16b,v5.16b + ext v5.16b,v0.16b,v5.16b,#12 + eor v6.16b,v6.16b,v1.16b + eor v3.16b,v3.16b,v5.16b + shl v1.16b,v1.16b,#1 + eor v3.16b,v3.16b,v6.16b + b.ne .Loop128 + + ld1 {v1.4s},[x3] + + tbl v6.16b,{v3.16b},v2.16b + ext v5.16b,v0.16b,v3.16b,#12 + st1 {v3.4s},[x2],#16 + aese v6.16b,v0.16b + + eor v3.16b,v3.16b,v5.16b + ext v5.16b,v0.16b,v5.16b,#12 + eor v3.16b,v3.16b,v5.16b + ext v5.16b,v0.16b,v5.16b,#12 + eor v6.16b,v6.16b,v1.16b + eor v3.16b,v3.16b,v5.16b + shl v1.16b,v1.16b,#1 + eor v3.16b,v3.16b,v6.16b + + tbl v6.16b,{v3.16b},v2.16b + ext v5.16b,v0.16b,v3.16b,#12 + st1 {v3.4s},[x2],#16 + aese v6.16b,v0.16b + + eor v3.16b,v3.16b,v5.16b + ext v5.16b,v0.16b,v5.16b,#12 + eor v3.16b,v3.16b,v5.16b + ext v5.16b,v0.16b,v5.16b,#12 + eor v6.16b,v6.16b,v1.16b + eor v3.16b,v3.16b,v5.16b + eor v3.16b,v3.16b,v6.16b + st1 {v3.4s},[x2] + add x2,x2,#0x50 + + mov w12,#10 + b .Ldone + +.align 4 +.L192: + ld1 {v4.8b},[x0],#8 + movi v6.16b,#8 // borrow v6.16b + st1 {v3.4s},[x2],#16 + sub v2.16b,v2.16b,v6.16b // adjust the mask + +.Loop192: + tbl v6.16b,{v4.16b},v2.16b + ext v5.16b,v0.16b,v3.16b,#12 +#ifdef __ARMEB__ + st1 {v4.4s},[x2],#16 + sub x2,x2,#8 +#else + st1 {v4.8b},[x2],#8 +#endif + aese v6.16b,v0.16b + subs w1,w1,#1 + + eor v3.16b,v3.16b,v5.16b + ext v5.16b,v0.16b,v5.16b,#12 + eor v3.16b,v3.16b,v5.16b + ext v5.16b,v0.16b,v5.16b,#12 + eor v3.16b,v3.16b,v5.16b + + dup v5.4s,v3.s[3] + eor v5.16b,v5.16b,v4.16b + eor v6.16b,v6.16b,v1.16b + ext v4.16b,v0.16b,v4.16b,#12 + shl v1.16b,v1.16b,#1 + eor v4.16b,v4.16b,v5.16b + eor v3.16b,v3.16b,v6.16b + eor v4.16b,v4.16b,v6.16b + st1 {v3.4s},[x2],#16 + b.ne .Loop192 + + mov w12,#12 + add x2,x2,#0x20 + b .Ldone + +.align 4 +.L256: + ld1 {v4.16b},[x0] + mov w1,#7 + mov w12,#14 + st1 {v3.4s},[x2],#16 + +.Loop256: + tbl v6.16b,{v4.16b},v2.16b + ext v5.16b,v0.16b,v3.16b,#12 + st1 {v4.4s},[x2],#16 + aese v6.16b,v0.16b + subs w1,w1,#1 + + eor v3.16b,v3.16b,v5.16b + ext v5.16b,v0.16b,v5.16b,#12 + eor v3.16b,v3.16b,v5.16b + ext v5.16b,v0.16b,v5.16b,#12 + eor v6.16b,v6.16b,v1.16b + eor v3.16b,v3.16b,v5.16b + shl v1.16b,v1.16b,#1 + eor v3.16b,v3.16b,v6.16b + st1 {v3.4s},[x2],#16 + b.eq .Ldone + + dup v6.4s,v3.s[3] // just splat + ext v5.16b,v0.16b,v4.16b,#12 + aese v6.16b,v0.16b + + eor v4.16b,v4.16b,v5.16b + ext v5.16b,v0.16b,v5.16b,#12 + eor v4.16b,v4.16b,v5.16b + ext v5.16b,v0.16b,v5.16b,#12 + eor v4.16b,v4.16b,v5.16b + + eor v4.16b,v4.16b,v6.16b + b .Loop256 + +.Ldone: + str w12,[x2] + mov x3,#0 + +.Lenc_key_abort: + mov x0,x3 // return value + ldr x29,[sp],#16 + ret +.size aes_v8_set_encrypt_key,.-aes_v8_set_encrypt_key + +.globl aes_v8_set_decrypt_key +.type aes_v8_set_decrypt_key,%function +.align 5 +aes_v8_set_decrypt_key: +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + bl .Lenc_key + + cmp x0,#0 + b.ne .Ldec_key_abort + + sub x2,x2,#240 // restore original x2 + mov x4,#-16 + add x0,x2,x12,lsl#4 // end of key schedule + + ld1 {v0.4s},[x2] + ld1 {v1.4s},[x0] + st1 {v0.4s},[x0],x4 + st1 {v1.4s},[x2],#16 + +.Loop_imc: + ld1 {v0.4s},[x2] + ld1 {v1.4s},[x0] + aesimc v0.16b,v0.16b + aesimc v1.16b,v1.16b + st1 {v0.4s},[x0],x4 + st1 {v1.4s},[x2],#16 + cmp x0,x2 + b.hi .Loop_imc + + ld1 {v0.4s},[x2] + aesimc v0.16b,v0.16b + st1 {v0.4s},[x0] + + eor x0,x0,x0 // return value +.Ldec_key_abort: + ldp x29,x30,[sp],#16 +.inst 0xd50323bf // autiasp + ret +.size aes_v8_set_decrypt_key,.-aes_v8_set_decrypt_key +.globl aes_v8_encrypt +.type aes_v8_encrypt,%function +.align 5 +aes_v8_encrypt: + ldr w3,[x2,#240] + ld1 {v0.4s},[x2],#16 + ld1 {v2.16b},[x0] + sub w3,w3,#2 + ld1 {v1.4s},[x2],#16 + +.Loop_enc: + aese v2.16b,v0.16b + aesmc v2.16b,v2.16b + ld1 {v0.4s},[x2],#16 + subs w3,w3,#2 + aese v2.16b,v1.16b + aesmc v2.16b,v2.16b + ld1 {v1.4s},[x2],#16 + b.gt .Loop_enc + + aese v2.16b,v0.16b + aesmc v2.16b,v2.16b + ld1 {v0.4s},[x2] + aese v2.16b,v1.16b + eor v2.16b,v2.16b,v0.16b + + st1 {v2.16b},[x1] + ret +.size aes_v8_encrypt,.-aes_v8_encrypt +.globl aes_v8_decrypt +.type aes_v8_decrypt,%function +.align 5 +aes_v8_decrypt: + ldr w3,[x2,#240] + ld1 {v0.4s},[x2],#16 + ld1 {v2.16b},[x0] + sub w3,w3,#2 + ld1 {v1.4s},[x2],#16 + +.Loop_dec: + aesd v2.16b,v0.16b + aesimc v2.16b,v2.16b + ld1 {v0.4s},[x2],#16 + subs w3,w3,#2 + aesd v2.16b,v1.16b + aesimc v2.16b,v2.16b + ld1 {v1.4s},[x2],#16 + b.gt .Loop_dec + + aesd v2.16b,v0.16b + aesimc v2.16b,v2.16b + ld1 {v0.4s},[x2] + aesd v2.16b,v1.16b + eor v2.16b,v2.16b,v0.16b + + st1 {v2.16b},[x1] + ret +.size aes_v8_decrypt,.-aes_v8_decrypt +.globl aes_v8_cbc_encrypt +.type aes_v8_cbc_encrypt,%function +.align 5 +aes_v8_cbc_encrypt: + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + subs x2,x2,#16 + mov x8,#16 + b.lo .Lcbc_abort + csel x8,xzr,x8,eq + + cmp w5,#0 // en- or decrypting? + ldr w5,[x3,#240] + and x2,x2,#-16 + ld1 {v6.16b},[x4] + ld1 {v0.16b},[x0],x8 + + ld1 {v16.4s,v17.4s},[x3] // load key schedule... + sub w5,w5,#6 + add x7,x3,x5,lsl#4 // pointer to last 7 round keys + sub w5,w5,#2 + ld1 {v18.4s,v19.4s},[x7],#32 + ld1 {v20.4s,v21.4s},[x7],#32 + ld1 {v22.4s,v23.4s},[x7],#32 + ld1 {v7.4s},[x7] + + add x7,x3,#32 + mov w6,w5 + b.eq .Lcbc_dec + + cmp w5,#2 + eor v0.16b,v0.16b,v6.16b + eor v5.16b,v16.16b,v7.16b + b.eq .Lcbc_enc128 + + ld1 {v2.4s,v3.4s},[x7] + add x7,x3,#16 + add x6,x3,#16*4 + add x12,x3,#16*5 + aese v0.16b,v16.16b + aesmc v0.16b,v0.16b + add x14,x3,#16*6 + add x3,x3,#16*7 + b .Lenter_cbc_enc + +.align 4 +.Loop_cbc_enc: + aese v0.16b,v16.16b + aesmc v0.16b,v0.16b + st1 {v6.16b},[x1],#16 +.Lenter_cbc_enc: + aese v0.16b,v17.16b + aesmc v0.16b,v0.16b + aese v0.16b,v2.16b + aesmc v0.16b,v0.16b + ld1 {v16.4s},[x6] + cmp w5,#4 + aese v0.16b,v3.16b + aesmc v0.16b,v0.16b + ld1 {v17.4s},[x12] + b.eq .Lcbc_enc192 + + aese v0.16b,v16.16b + aesmc v0.16b,v0.16b + ld1 {v16.4s},[x14] + aese v0.16b,v17.16b + aesmc v0.16b,v0.16b + ld1 {v17.4s},[x3] + nop + +.Lcbc_enc192: + aese v0.16b,v16.16b + aesmc v0.16b,v0.16b + subs x2,x2,#16 + aese v0.16b,v17.16b + aesmc v0.16b,v0.16b + csel x8,xzr,x8,eq + aese v0.16b,v18.16b + aesmc v0.16b,v0.16b + aese v0.16b,v19.16b + aesmc v0.16b,v0.16b + ld1 {v16.16b},[x0],x8 + aese v0.16b,v20.16b + aesmc v0.16b,v0.16b + eor v16.16b,v16.16b,v5.16b + aese v0.16b,v21.16b + aesmc v0.16b,v0.16b + ld1 {v17.4s},[x7] // re-pre-load rndkey[1] + aese v0.16b,v22.16b + aesmc v0.16b,v0.16b + aese v0.16b,v23.16b + eor v6.16b,v0.16b,v7.16b + b.hs .Loop_cbc_enc + + st1 {v6.16b},[x1],#16 + b .Lcbc_done + +.align 5 +.Lcbc_enc128: + ld1 {v2.4s,v3.4s},[x7] + aese v0.16b,v16.16b + aesmc v0.16b,v0.16b + b .Lenter_cbc_enc128 +.Loop_cbc_enc128: + aese v0.16b,v16.16b + aesmc v0.16b,v0.16b + st1 {v6.16b},[x1],#16 +.Lenter_cbc_enc128: + aese v0.16b,v17.16b + aesmc v0.16b,v0.16b + subs x2,x2,#16 + aese v0.16b,v2.16b + aesmc v0.16b,v0.16b + csel x8,xzr,x8,eq + aese v0.16b,v3.16b + aesmc v0.16b,v0.16b + aese v0.16b,v18.16b + aesmc v0.16b,v0.16b + aese v0.16b,v19.16b + aesmc v0.16b,v0.16b + ld1 {v16.16b},[x0],x8 + aese v0.16b,v20.16b + aesmc v0.16b,v0.16b + aese v0.16b,v21.16b + aesmc v0.16b,v0.16b + aese v0.16b,v22.16b + aesmc v0.16b,v0.16b + eor v16.16b,v16.16b,v5.16b + aese v0.16b,v23.16b + eor v6.16b,v0.16b,v7.16b + b.hs .Loop_cbc_enc128 + + st1 {v6.16b},[x1],#16 + b .Lcbc_done +.align 5 +.Lcbc_dec: + ld1 {v18.16b},[x0],#16 + subs x2,x2,#32 // bias + add w6,w5,#2 + orr v3.16b,v0.16b,v0.16b + orr v1.16b,v0.16b,v0.16b + orr v19.16b,v18.16b,v18.16b + b.lo .Lcbc_dec_tail + + orr v1.16b,v18.16b,v18.16b + ld1 {v18.16b},[x0],#16 + orr v2.16b,v0.16b,v0.16b + orr v3.16b,v1.16b,v1.16b + orr v19.16b,v18.16b,v18.16b + +.Loop3x_cbc_dec: + aesd v0.16b,v16.16b + aesimc v0.16b,v0.16b + aesd v1.16b,v16.16b + aesimc v1.16b,v1.16b + aesd v18.16b,v16.16b + aesimc v18.16b,v18.16b + ld1 {v16.4s},[x7],#16 + subs w6,w6,#2 + aesd v0.16b,v17.16b + aesimc v0.16b,v0.16b + aesd v1.16b,v17.16b + aesimc v1.16b,v1.16b + aesd v18.16b,v17.16b + aesimc v18.16b,v18.16b + ld1 {v17.4s},[x7],#16 + b.gt .Loop3x_cbc_dec + + aesd v0.16b,v16.16b + aesimc v0.16b,v0.16b + aesd v1.16b,v16.16b + aesimc v1.16b,v1.16b + aesd v18.16b,v16.16b + aesimc v18.16b,v18.16b + eor v4.16b,v6.16b,v7.16b + subs x2,x2,#0x30 + eor v5.16b,v2.16b,v7.16b + csel x6,x2,x6,lo // x6, w6, is zero at this point + aesd v0.16b,v17.16b + aesimc v0.16b,v0.16b + aesd v1.16b,v17.16b + aesimc v1.16b,v1.16b + aesd v18.16b,v17.16b + aesimc v18.16b,v18.16b + eor v17.16b,v3.16b,v7.16b + add x0,x0,x6 // x0 is adjusted in such way that + // at exit from the loop v1.16b-v18.16b + // are loaded with last "words" + orr v6.16b,v19.16b,v19.16b + mov x7,x3 + aesd v0.16b,v20.16b + aesimc v0.16b,v0.16b + aesd v1.16b,v20.16b + aesimc v1.16b,v1.16b + aesd v18.16b,v20.16b + aesimc v18.16b,v18.16b + ld1 {v2.16b},[x0],#16 + aesd v0.16b,v21.16b + aesimc v0.16b,v0.16b + aesd v1.16b,v21.16b + aesimc v1.16b,v1.16b + aesd v18.16b,v21.16b + aesimc v18.16b,v18.16b + ld1 {v3.16b},[x0],#16 + aesd v0.16b,v22.16b + aesimc v0.16b,v0.16b + aesd v1.16b,v22.16b + aesimc v1.16b,v1.16b + aesd v18.16b,v22.16b + aesimc v18.16b,v18.16b + ld1 {v19.16b},[x0],#16 + aesd v0.16b,v23.16b + aesd v1.16b,v23.16b + aesd v18.16b,v23.16b + ld1 {v16.4s},[x7],#16 // re-pre-load rndkey[0] + add w6,w5,#2 + eor v4.16b,v4.16b,v0.16b + eor v5.16b,v5.16b,v1.16b + eor v18.16b,v18.16b,v17.16b + ld1 {v17.4s},[x7],#16 // re-pre-load rndkey[1] + st1 {v4.16b},[x1],#16 + orr v0.16b,v2.16b,v2.16b + st1 {v5.16b},[x1],#16 + orr v1.16b,v3.16b,v3.16b + st1 {v18.16b},[x1],#16 + orr v18.16b,v19.16b,v19.16b + b.hs .Loop3x_cbc_dec + + cmn x2,#0x30 + b.eq .Lcbc_done + nop + +.Lcbc_dec_tail: + aesd v1.16b,v16.16b + aesimc v1.16b,v1.16b + aesd v18.16b,v16.16b + aesimc v18.16b,v18.16b + ld1 {v16.4s},[x7],#16 + subs w6,w6,#2 + aesd v1.16b,v17.16b + aesimc v1.16b,v1.16b + aesd v18.16b,v17.16b + aesimc v18.16b,v18.16b + ld1 {v17.4s},[x7],#16 + b.gt .Lcbc_dec_tail + + aesd v1.16b,v16.16b + aesimc v1.16b,v1.16b + aesd v18.16b,v16.16b + aesimc v18.16b,v18.16b + aesd v1.16b,v17.16b + aesimc v1.16b,v1.16b + aesd v18.16b,v17.16b + aesimc v18.16b,v18.16b + aesd v1.16b,v20.16b + aesimc v1.16b,v1.16b + aesd v18.16b,v20.16b + aesimc v18.16b,v18.16b + cmn x2,#0x20 + aesd v1.16b,v21.16b + aesimc v1.16b,v1.16b + aesd v18.16b,v21.16b + aesimc v18.16b,v18.16b + eor v5.16b,v6.16b,v7.16b + aesd v1.16b,v22.16b + aesimc v1.16b,v1.16b + aesd v18.16b,v22.16b + aesimc v18.16b,v18.16b + eor v17.16b,v3.16b,v7.16b + aesd v1.16b,v23.16b + aesd v18.16b,v23.16b + b.eq .Lcbc_dec_one + eor v5.16b,v5.16b,v1.16b + eor v17.16b,v17.16b,v18.16b + orr v6.16b,v19.16b,v19.16b + st1 {v5.16b},[x1],#16 + st1 {v17.16b},[x1],#16 + b .Lcbc_done + +.Lcbc_dec_one: + eor v5.16b,v5.16b,v18.16b + orr v6.16b,v19.16b,v19.16b + st1 {v5.16b},[x1],#16 + +.Lcbc_done: + st1 {v6.16b},[x4] +.Lcbc_abort: + ldr x29,[sp],#16 + ret +.size aes_v8_cbc_encrypt,.-aes_v8_cbc_encrypt +.globl aes_v8_ctr32_encrypt_blocks +.type aes_v8_ctr32_encrypt_blocks,%function +.align 5 +aes_v8_ctr32_encrypt_blocks: + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + ldr w5,[x3,#240] + + ldr w8, [x4, #12] +#ifdef __ARMEB__ + ld1 {v0.16b},[x4] +#else + ld1 {v0.4s},[x4] +#endif + ld1 {v16.4s,v17.4s},[x3] // load key schedule... + sub w5,w5,#4 + mov x12,#16 + cmp x2,#2 + add x7,x3,x5,lsl#4 // pointer to last 5 round keys + sub w5,w5,#2 + ld1 {v20.4s,v21.4s},[x7],#32 + ld1 {v22.4s,v23.4s},[x7],#32 + ld1 {v7.4s},[x7] + add x7,x3,#32 + mov w6,w5 + csel x12,xzr,x12,lo +#ifndef __ARMEB__ + rev w8, w8 +#endif + orr v1.16b,v0.16b,v0.16b + add w10, w8, #1 + orr v18.16b,v0.16b,v0.16b + add w8, w8, #2 + orr v6.16b,v0.16b,v0.16b + rev w10, w10 + mov v1.s[3],w10 + b.ls .Lctr32_tail + rev w12, w8 + sub x2,x2,#3 // bias + mov v18.s[3],w12 + b .Loop3x_ctr32 + +.align 4 +.Loop3x_ctr32: + aese v0.16b,v16.16b + aesmc v0.16b,v0.16b + aese v1.16b,v16.16b + aesmc v1.16b,v1.16b + aese v18.16b,v16.16b + aesmc v18.16b,v18.16b + ld1 {v16.4s},[x7],#16 + subs w6,w6,#2 + aese v0.16b,v17.16b + aesmc v0.16b,v0.16b + aese v1.16b,v17.16b + aesmc v1.16b,v1.16b + aese v18.16b,v17.16b + aesmc v18.16b,v18.16b + ld1 {v17.4s},[x7],#16 + b.gt .Loop3x_ctr32 + + aese v0.16b,v16.16b + aesmc v4.16b,v0.16b + aese v1.16b,v16.16b + aesmc v5.16b,v1.16b + ld1 {v2.16b},[x0],#16 + orr v0.16b,v6.16b,v6.16b + aese v18.16b,v16.16b + aesmc v18.16b,v18.16b + ld1 {v3.16b},[x0],#16 + orr v1.16b,v6.16b,v6.16b + aese v4.16b,v17.16b + aesmc v4.16b,v4.16b + aese v5.16b,v17.16b + aesmc v5.16b,v5.16b + ld1 {v19.16b},[x0],#16 + mov x7,x3 + aese v18.16b,v17.16b + aesmc v17.16b,v18.16b + orr v18.16b,v6.16b,v6.16b + add w9,w8,#1 + aese v4.16b,v20.16b + aesmc v4.16b,v4.16b + aese v5.16b,v20.16b + aesmc v5.16b,v5.16b + eor v2.16b,v2.16b,v7.16b + add w10,w8,#2 + aese v17.16b,v20.16b + aesmc v17.16b,v17.16b + eor v3.16b,v3.16b,v7.16b + add w8,w8,#3 + aese v4.16b,v21.16b + aesmc v4.16b,v4.16b + aese v5.16b,v21.16b + aesmc v5.16b,v5.16b + eor v19.16b,v19.16b,v7.16b + rev w9,w9 + aese v17.16b,v21.16b + aesmc v17.16b,v17.16b + mov v0.s[3], w9 + rev w10,w10 + aese v4.16b,v22.16b + aesmc v4.16b,v4.16b + aese v5.16b,v22.16b + aesmc v5.16b,v5.16b + mov v1.s[3], w10 + rev w12,w8 + aese v17.16b,v22.16b + aesmc v17.16b,v17.16b + mov v18.s[3], w12 + subs x2,x2,#3 + aese v4.16b,v23.16b + aese v5.16b,v23.16b + aese v17.16b,v23.16b + + eor v2.16b,v2.16b,v4.16b + ld1 {v16.4s},[x7],#16 // re-pre-load rndkey[0] + st1 {v2.16b},[x1],#16 + eor v3.16b,v3.16b,v5.16b + mov w6,w5 + st1 {v3.16b},[x1],#16 + eor v19.16b,v19.16b,v17.16b + ld1 {v17.4s},[x7],#16 // re-pre-load rndkey[1] + st1 {v19.16b},[x1],#16 + b.hs .Loop3x_ctr32 + + adds x2,x2,#3 + b.eq .Lctr32_done + cmp x2,#1 + mov x12,#16 + csel x12,xzr,x12,eq + +.Lctr32_tail: + aese v0.16b,v16.16b + aesmc v0.16b,v0.16b + aese v1.16b,v16.16b + aesmc v1.16b,v1.16b + ld1 {v16.4s},[x7],#16 + subs w6,w6,#2 + aese v0.16b,v17.16b + aesmc v0.16b,v0.16b + aese v1.16b,v17.16b + aesmc v1.16b,v1.16b + ld1 {v17.4s},[x7],#16 + b.gt .Lctr32_tail + + aese v0.16b,v16.16b + aesmc v0.16b,v0.16b + aese v1.16b,v16.16b + aesmc v1.16b,v1.16b + aese v0.16b,v17.16b + aesmc v0.16b,v0.16b + aese v1.16b,v17.16b + aesmc v1.16b,v1.16b + ld1 {v2.16b},[x0],x12 + aese v0.16b,v20.16b + aesmc v0.16b,v0.16b + aese v1.16b,v20.16b + aesmc v1.16b,v1.16b + ld1 {v3.16b},[x0] + aese v0.16b,v21.16b + aesmc v0.16b,v0.16b + aese v1.16b,v21.16b + aesmc v1.16b,v1.16b + eor v2.16b,v2.16b,v7.16b + aese v0.16b,v22.16b + aesmc v0.16b,v0.16b + aese v1.16b,v22.16b + aesmc v1.16b,v1.16b + eor v3.16b,v3.16b,v7.16b + aese v0.16b,v23.16b + aese v1.16b,v23.16b + + cmp x2,#1 + eor v2.16b,v2.16b,v0.16b + eor v3.16b,v3.16b,v1.16b + st1 {v2.16b},[x1],#16 + b.eq .Lctr32_done + st1 {v3.16b},[x1] + +.Lctr32_done: + ldr x29,[sp],#16 + ret +.size aes_v8_ctr32_encrypt_blocks,.-aes_v8_ctr32_encrypt_blocks +#endif diff --git a/vere/ext/openssl/gen/linux-aarch64/crypto/aes/vpaes-armv8.S b/vere/ext/openssl/gen/linux-aarch64/crypto/aes/vpaes-armv8.S new file mode 100644 index 0000000..5d1752c --- /dev/null +++ b/vere/ext/openssl/gen/linux-aarch64/crypto/aes/vpaes-armv8.S @@ -0,0 +1,1196 @@ +.text + +.type _vpaes_consts,%object +.align 7 // totally strategic alignment +_vpaes_consts: +.Lk_mc_forward: // mc_forward +.quad 0x0407060500030201, 0x0C0F0E0D080B0A09 +.quad 0x080B0A0904070605, 0x000302010C0F0E0D +.quad 0x0C0F0E0D080B0A09, 0x0407060500030201 +.quad 0x000302010C0F0E0D, 0x080B0A0904070605 +.Lk_mc_backward: // mc_backward +.quad 0x0605040702010003, 0x0E0D0C0F0A09080B +.quad 0x020100030E0D0C0F, 0x0A09080B06050407 +.quad 0x0E0D0C0F0A09080B, 0x0605040702010003 +.quad 0x0A09080B06050407, 0x020100030E0D0C0F +.Lk_sr: // sr +.quad 0x0706050403020100, 0x0F0E0D0C0B0A0908 +.quad 0x030E09040F0A0500, 0x0B06010C07020D08 +.quad 0x0F060D040B020900, 0x070E050C030A0108 +.quad 0x0B0E0104070A0D00, 0x0306090C0F020508 + +// +// "Hot" constants +// +.Lk_inv: // inv, inva +.quad 0x0E05060F0D080180, 0x040703090A0B0C02 +.quad 0x01040A060F0B0780, 0x030D0E0C02050809 +.Lk_ipt: // input transform (lo, hi) +.quad 0xC2B2E8985A2A7000, 0xCABAE09052227808 +.quad 0x4C01307D317C4D00, 0xCD80B1FCB0FDCC81 +.Lk_sbo: // sbou, sbot +.quad 0xD0D26D176FBDC700, 0x15AABF7AC502A878 +.quad 0xCFE474A55FBB6A00, 0x8E1E90D1412B35FA +.Lk_sb1: // sb1u, sb1t +.quad 0x3618D415FAE22300, 0x3BF7CCC10D2ED9EF +.quad 0xB19BE18FCB503E00, 0xA5DF7A6E142AF544 +.Lk_sb2: // sb2u, sb2t +.quad 0x69EB88400AE12900, 0xC2A163C8AB82234A +.quad 0xE27A93C60B712400, 0x5EB7E955BC982FCD + +// +// Decryption stuff +// +.Lk_dipt: // decryption input transform +.quad 0x0F505B040B545F00, 0x154A411E114E451A +.quad 0x86E383E660056500, 0x12771772F491F194 +.Lk_dsbo: // decryption sbox final output +.quad 0x1387EA537EF94000, 0xC7AA6DB9D4943E2D +.quad 0x12D7560F93441D00, 0xCA4B8159D8C58E9C +.Lk_dsb9: // decryption sbox output *9*u, *9*t +.quad 0x851C03539A86D600, 0xCAD51F504F994CC9 +.quad 0xC03B1789ECD74900, 0x725E2C9EB2FBA565 +.Lk_dsbd: // decryption sbox output *D*u, *D*t +.quad 0x7D57CCDFE6B1A200, 0xF56E9B13882A4439 +.quad 0x3CE2FAF724C6CB00, 0x2931180D15DEEFD3 +.Lk_dsbb: // decryption sbox output *B*u, *B*t +.quad 0xD022649296B44200, 0x602646F6B0F2D404 +.quad 0xC19498A6CD596700, 0xF3FF0C3E3255AA6B +.Lk_dsbe: // decryption sbox output *E*u, *E*t +.quad 0x46F2929626D4D000, 0x2242600464B4F6B0 +.quad 0x0C55A6CDFFAAC100, 0x9467F36B98593E32 + +// +// Key schedule constants +// +.Lk_dksd: // decryption key schedule: invskew x*D +.quad 0xFEB91A5DA3E44700, 0x0740E3A45A1DBEF9 +.quad 0x41C277F4B5368300, 0x5FDC69EAAB289D1E +.Lk_dksb: // decryption key schedule: invskew x*B +.quad 0x9A4FCA1F8550D500, 0x03D653861CC94C99 +.quad 0x115BEDA7B6FC4A00, 0xD993256F7E3482C8 +.Lk_dkse: // decryption key schedule: invskew x*E + 0x63 +.quad 0xD5031CCA1FC9D600, 0x53859A4C994F5086 +.quad 0xA23196054FDC7BE8, 0xCD5EF96A20B31487 +.Lk_dks9: // decryption key schedule: invskew x*9 +.quad 0xB6116FC87ED9A700, 0x4AED933482255BFC +.quad 0x4576516227143300, 0x8BB89FACE9DAFDCE + +.Lk_rcon: // rcon +.quad 0x1F8391B9AF9DEEB6, 0x702A98084D7C7D81 + +.Lk_opt: // output transform +.quad 0xFF9F4929D6B66000, 0xF7974121DEBE6808 +.quad 0x01EDBD5150BCEC00, 0xE10D5DB1B05C0CE0 +.Lk_deskew: // deskew tables: inverts the sbox's "skew" +.quad 0x07E4A34047A4E300, 0x1DFEB95A5DBEF91A +.quad 0x5F36B5DC83EA6900, 0x2841C2ABF49D1E77 + +.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,65,82,77,118,56,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0 +.align 2 +.size _vpaes_consts,.-_vpaes_consts +.align 6 +## +## _aes_preheat +## +## Fills register %r10 -> .aes_consts (so you can -fPIC) +## and %xmm9-%xmm15 as specified below. +## +.type _vpaes_encrypt_preheat,%function +.align 4 +_vpaes_encrypt_preheat: + adr x10, .Lk_inv + movi v17.16b, #0x0f + ld1 {v18.2d,v19.2d}, [x10],#32 // .Lk_inv + ld1 {v20.2d,v21.2d,v22.2d,v23.2d}, [x10],#64 // .Lk_ipt, .Lk_sbo + ld1 {v24.2d,v25.2d,v26.2d,v27.2d}, [x10] // .Lk_sb1, .Lk_sb2 + ret +.size _vpaes_encrypt_preheat,.-_vpaes_encrypt_preheat + +## +## _aes_encrypt_core +## +## AES-encrypt %xmm0. +## +## Inputs: +## %xmm0 = input +## %xmm9-%xmm15 as in _vpaes_preheat +## (%rdx) = scheduled keys +## +## Output in %xmm0 +## Clobbers %xmm1-%xmm5, %r9, %r10, %r11, %rax +## Preserves %xmm6 - %xmm8 so you get some local vectors +## +## +.type _vpaes_encrypt_core,%function +.align 4 +_vpaes_encrypt_core: + mov x9, x2 + ldr w8, [x2,#240] // pull rounds + adr x11, .Lk_mc_forward+16 + // vmovdqa .Lk_ipt(%rip), %xmm2 # iptlo + ld1 {v16.2d}, [x9], #16 // vmovdqu (%r9), %xmm5 # round0 key + and v1.16b, v7.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 + ushr v0.16b, v7.16b, #4 // vpsrlb $4, %xmm0, %xmm0 + tbl v1.16b, {v20.16b}, v1.16b // vpshufb %xmm1, %xmm2, %xmm1 + // vmovdqa .Lk_ipt+16(%rip), %xmm3 # ipthi + tbl v2.16b, {v21.16b}, v0.16b // vpshufb %xmm0, %xmm3, %xmm2 + eor v0.16b, v1.16b, v16.16b // vpxor %xmm5, %xmm1, %xmm0 + eor v0.16b, v0.16b, v2.16b // vpxor %xmm2, %xmm0, %xmm0 + b .Lenc_entry + +.align 4 +.Lenc_loop: + // middle of middle round + add x10, x11, #0x40 + tbl v4.16b, {v25.16b}, v2.16b // vpshufb %xmm2, %xmm13, %xmm4 # 4 = sb1u + ld1 {v1.2d}, [x11], #16 // vmovdqa -0x40(%r11,%r10), %xmm1 # .Lk_mc_forward[] + tbl v0.16b, {v24.16b}, v3.16b // vpshufb %xmm3, %xmm12, %xmm0 # 0 = sb1t + eor v4.16b, v4.16b, v16.16b // vpxor %xmm5, %xmm4, %xmm4 # 4 = sb1u + k + tbl v5.16b, {v27.16b}, v2.16b // vpshufb %xmm2, %xmm15, %xmm5 # 4 = sb2u + eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 0 = A + tbl v2.16b, {v26.16b}, v3.16b // vpshufb %xmm3, %xmm14, %xmm2 # 2 = sb2t + ld1 {v4.2d}, [x10] // vmovdqa (%r11,%r10), %xmm4 # .Lk_mc_backward[] + tbl v3.16b, {v0.16b}, v1.16b // vpshufb %xmm1, %xmm0, %xmm3 # 0 = B + eor v2.16b, v2.16b, v5.16b // vpxor %xmm5, %xmm2, %xmm2 # 2 = 2A + tbl v0.16b, {v0.16b}, v4.16b // vpshufb %xmm4, %xmm0, %xmm0 # 3 = D + eor v3.16b, v3.16b, v2.16b // vpxor %xmm2, %xmm3, %xmm3 # 0 = 2A+B + tbl v4.16b, {v3.16b}, v1.16b // vpshufb %xmm1, %xmm3, %xmm4 # 0 = 2B+C + eor v0.16b, v0.16b, v3.16b // vpxor %xmm3, %xmm0, %xmm0 # 3 = 2A+B+D + and x11, x11, #~(1<<6) // and $0x30, %r11 # ... mod 4 + eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 0 = 2A+3B+C+D + sub w8, w8, #1 // nr-- + +.Lenc_entry: + // top of round + and v1.16b, v0.16b, v17.16b // vpand %xmm0, %xmm9, %xmm1 # 0 = k + ushr v0.16b, v0.16b, #4 // vpsrlb $4, %xmm0, %xmm0 # 1 = i + tbl v5.16b, {v19.16b}, v1.16b // vpshufb %xmm1, %xmm11, %xmm5 # 2 = a/k + eor v1.16b, v1.16b, v0.16b // vpxor %xmm0, %xmm1, %xmm1 # 0 = j + tbl v3.16b, {v18.16b}, v0.16b // vpshufb %xmm0, %xmm10, %xmm3 # 3 = 1/i + tbl v4.16b, {v18.16b}, v1.16b // vpshufb %xmm1, %xmm10, %xmm4 # 4 = 1/j + eor v3.16b, v3.16b, v5.16b // vpxor %xmm5, %xmm3, %xmm3 # 3 = iak = 1/i + a/k + eor v4.16b, v4.16b, v5.16b // vpxor %xmm5, %xmm4, %xmm4 # 4 = jak = 1/j + a/k + tbl v2.16b, {v18.16b}, v3.16b // vpshufb %xmm3, %xmm10, %xmm2 # 2 = 1/iak + tbl v3.16b, {v18.16b}, v4.16b // vpshufb %xmm4, %xmm10, %xmm3 # 3 = 1/jak + eor v2.16b, v2.16b, v1.16b // vpxor %xmm1, %xmm2, %xmm2 # 2 = io + eor v3.16b, v3.16b, v0.16b // vpxor %xmm0, %xmm3, %xmm3 # 3 = jo + ld1 {v16.2d}, [x9],#16 // vmovdqu (%r9), %xmm5 + cbnz w8, .Lenc_loop + + // middle of last round + add x10, x11, #0x80 + // vmovdqa -0x60(%r10), %xmm4 # 3 : sbou .Lk_sbo + // vmovdqa -0x50(%r10), %xmm0 # 0 : sbot .Lk_sbo+16 + tbl v4.16b, {v22.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbou + ld1 {v1.2d}, [x10] // vmovdqa 0x40(%r11,%r10), %xmm1 # .Lk_sr[] + tbl v0.16b, {v23.16b}, v3.16b // vpshufb %xmm3, %xmm0, %xmm0 # 0 = sb1t + eor v4.16b, v4.16b, v16.16b // vpxor %xmm5, %xmm4, %xmm4 # 4 = sb1u + k + eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 0 = A + tbl v0.16b, {v0.16b}, v1.16b // vpshufb %xmm1, %xmm0, %xmm0 + ret +.size _vpaes_encrypt_core,.-_vpaes_encrypt_core + +.globl vpaes_encrypt +.type vpaes_encrypt,%function +.align 4 +vpaes_encrypt: +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + + ld1 {v7.16b}, [x0] + bl _vpaes_encrypt_preheat + bl _vpaes_encrypt_core + st1 {v0.16b}, [x1] + + ldp x29,x30,[sp],#16 +.inst 0xd50323bf // autiasp + ret +.size vpaes_encrypt,.-vpaes_encrypt + +.type _vpaes_encrypt_2x,%function +.align 4 +_vpaes_encrypt_2x: + mov x9, x2 + ldr w8, [x2,#240] // pull rounds + adr x11, .Lk_mc_forward+16 + // vmovdqa .Lk_ipt(%rip), %xmm2 # iptlo + ld1 {v16.2d}, [x9], #16 // vmovdqu (%r9), %xmm5 # round0 key + and v1.16b, v14.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 + ushr v0.16b, v14.16b, #4 // vpsrlb $4, %xmm0, %xmm0 + and v9.16b, v15.16b, v17.16b + ushr v8.16b, v15.16b, #4 + tbl v1.16b, {v20.16b}, v1.16b // vpshufb %xmm1, %xmm2, %xmm1 + tbl v9.16b, {v20.16b}, v9.16b + // vmovdqa .Lk_ipt+16(%rip), %xmm3 # ipthi + tbl v2.16b, {v21.16b}, v0.16b // vpshufb %xmm0, %xmm3, %xmm2 + tbl v10.16b, {v21.16b}, v8.16b + eor v0.16b, v1.16b, v16.16b // vpxor %xmm5, %xmm1, %xmm0 + eor v8.16b, v9.16b, v16.16b + eor v0.16b, v0.16b, v2.16b // vpxor %xmm2, %xmm0, %xmm0 + eor v8.16b, v8.16b, v10.16b + b .Lenc_2x_entry + +.align 4 +.Lenc_2x_loop: + // middle of middle round + add x10, x11, #0x40 + tbl v4.16b, {v25.16b}, v2.16b // vpshufb %xmm2, %xmm13, %xmm4 # 4 = sb1u + tbl v12.16b, {v25.16b}, v10.16b + ld1 {v1.2d}, [x11], #16 // vmovdqa -0x40(%r11,%r10), %xmm1 # .Lk_mc_forward[] + tbl v0.16b, {v24.16b}, v3.16b // vpshufb %xmm3, %xmm12, %xmm0 # 0 = sb1t + tbl v8.16b, {v24.16b}, v11.16b + eor v4.16b, v4.16b, v16.16b // vpxor %xmm5, %xmm4, %xmm4 # 4 = sb1u + k + eor v12.16b, v12.16b, v16.16b + tbl v5.16b, {v27.16b}, v2.16b // vpshufb %xmm2, %xmm15, %xmm5 # 4 = sb2u + tbl v13.16b, {v27.16b}, v10.16b + eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 0 = A + eor v8.16b, v8.16b, v12.16b + tbl v2.16b, {v26.16b}, v3.16b // vpshufb %xmm3, %xmm14, %xmm2 # 2 = sb2t + tbl v10.16b, {v26.16b}, v11.16b + ld1 {v4.2d}, [x10] // vmovdqa (%r11,%r10), %xmm4 # .Lk_mc_backward[] + tbl v3.16b, {v0.16b}, v1.16b // vpshufb %xmm1, %xmm0, %xmm3 # 0 = B + tbl v11.16b, {v8.16b}, v1.16b + eor v2.16b, v2.16b, v5.16b // vpxor %xmm5, %xmm2, %xmm2 # 2 = 2A + eor v10.16b, v10.16b, v13.16b + tbl v0.16b, {v0.16b}, v4.16b // vpshufb %xmm4, %xmm0, %xmm0 # 3 = D + tbl v8.16b, {v8.16b}, v4.16b + eor v3.16b, v3.16b, v2.16b // vpxor %xmm2, %xmm3, %xmm3 # 0 = 2A+B + eor v11.16b, v11.16b, v10.16b + tbl v4.16b, {v3.16b}, v1.16b // vpshufb %xmm1, %xmm3, %xmm4 # 0 = 2B+C + tbl v12.16b, {v11.16b},v1.16b + eor v0.16b, v0.16b, v3.16b // vpxor %xmm3, %xmm0, %xmm0 # 3 = 2A+B+D + eor v8.16b, v8.16b, v11.16b + and x11, x11, #~(1<<6) // and $0x30, %r11 # ... mod 4 + eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 0 = 2A+3B+C+D + eor v8.16b, v8.16b, v12.16b + sub w8, w8, #1 // nr-- + +.Lenc_2x_entry: + // top of round + and v1.16b, v0.16b, v17.16b // vpand %xmm0, %xmm9, %xmm1 # 0 = k + ushr v0.16b, v0.16b, #4 // vpsrlb $4, %xmm0, %xmm0 # 1 = i + and v9.16b, v8.16b, v17.16b + ushr v8.16b, v8.16b, #4 + tbl v5.16b, {v19.16b},v1.16b // vpshufb %xmm1, %xmm11, %xmm5 # 2 = a/k + tbl v13.16b, {v19.16b},v9.16b + eor v1.16b, v1.16b, v0.16b // vpxor %xmm0, %xmm1, %xmm1 # 0 = j + eor v9.16b, v9.16b, v8.16b + tbl v3.16b, {v18.16b},v0.16b // vpshufb %xmm0, %xmm10, %xmm3 # 3 = 1/i + tbl v11.16b, {v18.16b},v8.16b + tbl v4.16b, {v18.16b},v1.16b // vpshufb %xmm1, %xmm10, %xmm4 # 4 = 1/j + tbl v12.16b, {v18.16b},v9.16b + eor v3.16b, v3.16b, v5.16b // vpxor %xmm5, %xmm3, %xmm3 # 3 = iak = 1/i + a/k + eor v11.16b, v11.16b, v13.16b + eor v4.16b, v4.16b, v5.16b // vpxor %xmm5, %xmm4, %xmm4 # 4 = jak = 1/j + a/k + eor v12.16b, v12.16b, v13.16b + tbl v2.16b, {v18.16b},v3.16b // vpshufb %xmm3, %xmm10, %xmm2 # 2 = 1/iak + tbl v10.16b, {v18.16b},v11.16b + tbl v3.16b, {v18.16b},v4.16b // vpshufb %xmm4, %xmm10, %xmm3 # 3 = 1/jak + tbl v11.16b, {v18.16b},v12.16b + eor v2.16b, v2.16b, v1.16b // vpxor %xmm1, %xmm2, %xmm2 # 2 = io + eor v10.16b, v10.16b, v9.16b + eor v3.16b, v3.16b, v0.16b // vpxor %xmm0, %xmm3, %xmm3 # 3 = jo + eor v11.16b, v11.16b, v8.16b + ld1 {v16.2d}, [x9],#16 // vmovdqu (%r9), %xmm5 + cbnz w8, .Lenc_2x_loop + + // middle of last round + add x10, x11, #0x80 + // vmovdqa -0x60(%r10), %xmm4 # 3 : sbou .Lk_sbo + // vmovdqa -0x50(%r10), %xmm0 # 0 : sbot .Lk_sbo+16 + tbl v4.16b, {v22.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbou + tbl v12.16b, {v22.16b}, v10.16b + ld1 {v1.2d}, [x10] // vmovdqa 0x40(%r11,%r10), %xmm1 # .Lk_sr[] + tbl v0.16b, {v23.16b}, v3.16b // vpshufb %xmm3, %xmm0, %xmm0 # 0 = sb1t + tbl v8.16b, {v23.16b}, v11.16b + eor v4.16b, v4.16b, v16.16b // vpxor %xmm5, %xmm4, %xmm4 # 4 = sb1u + k + eor v12.16b, v12.16b, v16.16b + eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 0 = A + eor v8.16b, v8.16b, v12.16b + tbl v0.16b, {v0.16b},v1.16b // vpshufb %xmm1, %xmm0, %xmm0 + tbl v1.16b, {v8.16b},v1.16b + ret +.size _vpaes_encrypt_2x,.-_vpaes_encrypt_2x + +.type _vpaes_decrypt_preheat,%function +.align 4 +_vpaes_decrypt_preheat: + adr x10, .Lk_inv + movi v17.16b, #0x0f + adr x11, .Lk_dipt + ld1 {v18.2d,v19.2d}, [x10],#32 // .Lk_inv + ld1 {v20.2d,v21.2d,v22.2d,v23.2d}, [x11],#64 // .Lk_dipt, .Lk_dsbo + ld1 {v24.2d,v25.2d,v26.2d,v27.2d}, [x11],#64 // .Lk_dsb9, .Lk_dsbd + ld1 {v28.2d,v29.2d,v30.2d,v31.2d}, [x11] // .Lk_dsbb, .Lk_dsbe + ret +.size _vpaes_decrypt_preheat,.-_vpaes_decrypt_preheat + +## +## Decryption core +## +## Same API as encryption core. +## +.type _vpaes_decrypt_core,%function +.align 4 +_vpaes_decrypt_core: + mov x9, x2 + ldr w8, [x2,#240] // pull rounds + + // vmovdqa .Lk_dipt(%rip), %xmm2 # iptlo + lsl x11, x8, #4 // mov %rax, %r11; shl $4, %r11 + eor x11, x11, #0x30 // xor $0x30, %r11 + adr x10, .Lk_sr + and x11, x11, #0x30 // and $0x30, %r11 + add x11, x11, x10 + adr x10, .Lk_mc_forward+48 + + ld1 {v16.2d}, [x9],#16 // vmovdqu (%r9), %xmm4 # round0 key + and v1.16b, v7.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 + ushr v0.16b, v7.16b, #4 // vpsrlb $4, %xmm0, %xmm0 + tbl v2.16b, {v20.16b}, v1.16b // vpshufb %xmm1, %xmm2, %xmm2 + ld1 {v5.2d}, [x10] // vmovdqa .Lk_mc_forward+48(%rip), %xmm5 + // vmovdqa .Lk_dipt+16(%rip), %xmm1 # ipthi + tbl v0.16b, {v21.16b}, v0.16b // vpshufb %xmm0, %xmm1, %xmm0 + eor v2.16b, v2.16b, v16.16b // vpxor %xmm4, %xmm2, %xmm2 + eor v0.16b, v0.16b, v2.16b // vpxor %xmm2, %xmm0, %xmm0 + b .Ldec_entry + +.align 4 +.Ldec_loop: +// +// Inverse mix columns +// + // vmovdqa -0x20(%r10),%xmm4 # 4 : sb9u + // vmovdqa -0x10(%r10),%xmm1 # 0 : sb9t + tbl v4.16b, {v24.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sb9u + tbl v1.16b, {v25.16b}, v3.16b // vpshufb %xmm3, %xmm1, %xmm1 # 0 = sb9t + eor v0.16b, v4.16b, v16.16b // vpxor %xmm4, %xmm0, %xmm0 + // vmovdqa 0x00(%r10),%xmm4 # 4 : sbdu + eor v0.16b, v0.16b, v1.16b // vpxor %xmm1, %xmm0, %xmm0 # 0 = ch + // vmovdqa 0x10(%r10),%xmm1 # 0 : sbdt + + tbl v4.16b, {v26.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbdu + tbl v0.16b, {v0.16b}, v5.16b // vpshufb %xmm5, %xmm0, %xmm0 # MC ch + tbl v1.16b, {v27.16b}, v3.16b // vpshufb %xmm3, %xmm1, %xmm1 # 0 = sbdt + eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 4 = ch + // vmovdqa 0x20(%r10), %xmm4 # 4 : sbbu + eor v0.16b, v0.16b, v1.16b // vpxor %xmm1, %xmm0, %xmm0 # 0 = ch + // vmovdqa 0x30(%r10), %xmm1 # 0 : sbbt + + tbl v4.16b, {v28.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbbu + tbl v0.16b, {v0.16b}, v5.16b // vpshufb %xmm5, %xmm0, %xmm0 # MC ch + tbl v1.16b, {v29.16b}, v3.16b // vpshufb %xmm3, %xmm1, %xmm1 # 0 = sbbt + eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 4 = ch + // vmovdqa 0x40(%r10), %xmm4 # 4 : sbeu + eor v0.16b, v0.16b, v1.16b // vpxor %xmm1, %xmm0, %xmm0 # 0 = ch + // vmovdqa 0x50(%r10), %xmm1 # 0 : sbet + + tbl v4.16b, {v30.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbeu + tbl v0.16b, {v0.16b}, v5.16b // vpshufb %xmm5, %xmm0, %xmm0 # MC ch + tbl v1.16b, {v31.16b}, v3.16b // vpshufb %xmm3, %xmm1, %xmm1 # 0 = sbet + eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 4 = ch + ext v5.16b, v5.16b, v5.16b, #12 // vpalignr $12, %xmm5, %xmm5, %xmm5 + eor v0.16b, v0.16b, v1.16b // vpxor %xmm1, %xmm0, %xmm0 # 0 = ch + sub w8, w8, #1 // sub $1,%rax # nr-- + +.Ldec_entry: + // top of round + and v1.16b, v0.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 # 0 = k + ushr v0.16b, v0.16b, #4 // vpsrlb $4, %xmm0, %xmm0 # 1 = i + tbl v2.16b, {v19.16b}, v1.16b // vpshufb %xmm1, %xmm11, %xmm2 # 2 = a/k + eor v1.16b, v1.16b, v0.16b // vpxor %xmm0, %xmm1, %xmm1 # 0 = j + tbl v3.16b, {v18.16b}, v0.16b // vpshufb %xmm0, %xmm10, %xmm3 # 3 = 1/i + tbl v4.16b, {v18.16b}, v1.16b // vpshufb %xmm1, %xmm10, %xmm4 # 4 = 1/j + eor v3.16b, v3.16b, v2.16b // vpxor %xmm2, %xmm3, %xmm3 # 3 = iak = 1/i + a/k + eor v4.16b, v4.16b, v2.16b // vpxor %xmm2, %xmm4, %xmm4 # 4 = jak = 1/j + a/k + tbl v2.16b, {v18.16b}, v3.16b // vpshufb %xmm3, %xmm10, %xmm2 # 2 = 1/iak + tbl v3.16b, {v18.16b}, v4.16b // vpshufb %xmm4, %xmm10, %xmm3 # 3 = 1/jak + eor v2.16b, v2.16b, v1.16b // vpxor %xmm1, %xmm2, %xmm2 # 2 = io + eor v3.16b, v3.16b, v0.16b // vpxor %xmm0, %xmm3, %xmm3 # 3 = jo + ld1 {v16.2d}, [x9],#16 // vmovdqu (%r9), %xmm0 + cbnz w8, .Ldec_loop + + // middle of last round + // vmovdqa 0x60(%r10), %xmm4 # 3 : sbou + tbl v4.16b, {v22.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbou + // vmovdqa 0x70(%r10), %xmm1 # 0 : sbot + ld1 {v2.2d}, [x11] // vmovdqa -0x160(%r11), %xmm2 # .Lk_sr-.Lk_dsbd=-0x160 + tbl v1.16b, {v23.16b}, v3.16b // vpshufb %xmm3, %xmm1, %xmm1 # 0 = sb1t + eor v4.16b, v4.16b, v16.16b // vpxor %xmm0, %xmm4, %xmm4 # 4 = sb1u + k + eor v0.16b, v1.16b, v4.16b // vpxor %xmm4, %xmm1, %xmm0 # 0 = A + tbl v0.16b, {v0.16b}, v2.16b // vpshufb %xmm2, %xmm0, %xmm0 + ret +.size _vpaes_decrypt_core,.-_vpaes_decrypt_core + +.globl vpaes_decrypt +.type vpaes_decrypt,%function +.align 4 +vpaes_decrypt: +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + + ld1 {v7.16b}, [x0] + bl _vpaes_decrypt_preheat + bl _vpaes_decrypt_core + st1 {v0.16b}, [x1] + + ldp x29,x30,[sp],#16 +.inst 0xd50323bf // autiasp + ret +.size vpaes_decrypt,.-vpaes_decrypt + +// v14-v15 input, v0-v1 output +.type _vpaes_decrypt_2x,%function +.align 4 +_vpaes_decrypt_2x: + mov x9, x2 + ldr w8, [x2,#240] // pull rounds + + // vmovdqa .Lk_dipt(%rip), %xmm2 # iptlo + lsl x11, x8, #4 // mov %rax, %r11; shl $4, %r11 + eor x11, x11, #0x30 // xor $0x30, %r11 + adr x10, .Lk_sr + and x11, x11, #0x30 // and $0x30, %r11 + add x11, x11, x10 + adr x10, .Lk_mc_forward+48 + + ld1 {v16.2d}, [x9],#16 // vmovdqu (%r9), %xmm4 # round0 key + and v1.16b, v14.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 + ushr v0.16b, v14.16b, #4 // vpsrlb $4, %xmm0, %xmm0 + and v9.16b, v15.16b, v17.16b + ushr v8.16b, v15.16b, #4 + tbl v2.16b, {v20.16b},v1.16b // vpshufb %xmm1, %xmm2, %xmm2 + tbl v10.16b, {v20.16b},v9.16b + ld1 {v5.2d}, [x10] // vmovdqa .Lk_mc_forward+48(%rip), %xmm5 + // vmovdqa .Lk_dipt+16(%rip), %xmm1 # ipthi + tbl v0.16b, {v21.16b},v0.16b // vpshufb %xmm0, %xmm1, %xmm0 + tbl v8.16b, {v21.16b},v8.16b + eor v2.16b, v2.16b, v16.16b // vpxor %xmm4, %xmm2, %xmm2 + eor v10.16b, v10.16b, v16.16b + eor v0.16b, v0.16b, v2.16b // vpxor %xmm2, %xmm0, %xmm0 + eor v8.16b, v8.16b, v10.16b + b .Ldec_2x_entry + +.align 4 +.Ldec_2x_loop: +// +// Inverse mix columns +// + // vmovdqa -0x20(%r10),%xmm4 # 4 : sb9u + // vmovdqa -0x10(%r10),%xmm1 # 0 : sb9t + tbl v4.16b, {v24.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sb9u + tbl v12.16b, {v24.16b}, v10.16b + tbl v1.16b, {v25.16b}, v3.16b // vpshufb %xmm3, %xmm1, %xmm1 # 0 = sb9t + tbl v9.16b, {v25.16b}, v11.16b + eor v0.16b, v4.16b, v16.16b // vpxor %xmm4, %xmm0, %xmm0 + eor v8.16b, v12.16b, v16.16b + // vmovdqa 0x00(%r10),%xmm4 # 4 : sbdu + eor v0.16b, v0.16b, v1.16b // vpxor %xmm1, %xmm0, %xmm0 # 0 = ch + eor v8.16b, v8.16b, v9.16b // vpxor %xmm1, %xmm0, %xmm0 # 0 = ch + // vmovdqa 0x10(%r10),%xmm1 # 0 : sbdt + + tbl v4.16b, {v26.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbdu + tbl v12.16b, {v26.16b}, v10.16b + tbl v0.16b, {v0.16b},v5.16b // vpshufb %xmm5, %xmm0, %xmm0 # MC ch + tbl v8.16b, {v8.16b},v5.16b + tbl v1.16b, {v27.16b}, v3.16b // vpshufb %xmm3, %xmm1, %xmm1 # 0 = sbdt + tbl v9.16b, {v27.16b}, v11.16b + eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 4 = ch + eor v8.16b, v8.16b, v12.16b + // vmovdqa 0x20(%r10), %xmm4 # 4 : sbbu + eor v0.16b, v0.16b, v1.16b // vpxor %xmm1, %xmm0, %xmm0 # 0 = ch + eor v8.16b, v8.16b, v9.16b + // vmovdqa 0x30(%r10), %xmm1 # 0 : sbbt + + tbl v4.16b, {v28.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbbu + tbl v12.16b, {v28.16b}, v10.16b + tbl v0.16b, {v0.16b},v5.16b // vpshufb %xmm5, %xmm0, %xmm0 # MC ch + tbl v8.16b, {v8.16b},v5.16b + tbl v1.16b, {v29.16b}, v3.16b // vpshufb %xmm3, %xmm1, %xmm1 # 0 = sbbt + tbl v9.16b, {v29.16b}, v11.16b + eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 4 = ch + eor v8.16b, v8.16b, v12.16b + // vmovdqa 0x40(%r10), %xmm4 # 4 : sbeu + eor v0.16b, v0.16b, v1.16b // vpxor %xmm1, %xmm0, %xmm0 # 0 = ch + eor v8.16b, v8.16b, v9.16b + // vmovdqa 0x50(%r10), %xmm1 # 0 : sbet + + tbl v4.16b, {v30.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbeu + tbl v12.16b, {v30.16b}, v10.16b + tbl v0.16b, {v0.16b},v5.16b // vpshufb %xmm5, %xmm0, %xmm0 # MC ch + tbl v8.16b, {v8.16b},v5.16b + tbl v1.16b, {v31.16b}, v3.16b // vpshufb %xmm3, %xmm1, %xmm1 # 0 = sbet + tbl v9.16b, {v31.16b}, v11.16b + eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 4 = ch + eor v8.16b, v8.16b, v12.16b + ext v5.16b, v5.16b, v5.16b, #12 // vpalignr $12, %xmm5, %xmm5, %xmm5 + eor v0.16b, v0.16b, v1.16b // vpxor %xmm1, %xmm0, %xmm0 # 0 = ch + eor v8.16b, v8.16b, v9.16b + sub w8, w8, #1 // sub $1,%rax # nr-- + +.Ldec_2x_entry: + // top of round + and v1.16b, v0.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 # 0 = k + ushr v0.16b, v0.16b, #4 // vpsrlb $4, %xmm0, %xmm0 # 1 = i + and v9.16b, v8.16b, v17.16b + ushr v8.16b, v8.16b, #4 + tbl v2.16b, {v19.16b},v1.16b // vpshufb %xmm1, %xmm11, %xmm2 # 2 = a/k + tbl v10.16b, {v19.16b},v9.16b + eor v1.16b, v1.16b, v0.16b // vpxor %xmm0, %xmm1, %xmm1 # 0 = j + eor v9.16b, v9.16b, v8.16b + tbl v3.16b, {v18.16b},v0.16b // vpshufb %xmm0, %xmm10, %xmm3 # 3 = 1/i + tbl v11.16b, {v18.16b},v8.16b + tbl v4.16b, {v18.16b},v1.16b // vpshufb %xmm1, %xmm10, %xmm4 # 4 = 1/j + tbl v12.16b, {v18.16b},v9.16b + eor v3.16b, v3.16b, v2.16b // vpxor %xmm2, %xmm3, %xmm3 # 3 = iak = 1/i + a/k + eor v11.16b, v11.16b, v10.16b + eor v4.16b, v4.16b, v2.16b // vpxor %xmm2, %xmm4, %xmm4 # 4 = jak = 1/j + a/k + eor v12.16b, v12.16b, v10.16b + tbl v2.16b, {v18.16b},v3.16b // vpshufb %xmm3, %xmm10, %xmm2 # 2 = 1/iak + tbl v10.16b, {v18.16b},v11.16b + tbl v3.16b, {v18.16b},v4.16b // vpshufb %xmm4, %xmm10, %xmm3 # 3 = 1/jak + tbl v11.16b, {v18.16b},v12.16b + eor v2.16b, v2.16b, v1.16b // vpxor %xmm1, %xmm2, %xmm2 # 2 = io + eor v10.16b, v10.16b, v9.16b + eor v3.16b, v3.16b, v0.16b // vpxor %xmm0, %xmm3, %xmm3 # 3 = jo + eor v11.16b, v11.16b, v8.16b + ld1 {v16.2d}, [x9],#16 // vmovdqu (%r9), %xmm0 + cbnz w8, .Ldec_2x_loop + + // middle of last round + // vmovdqa 0x60(%r10), %xmm4 # 3 : sbou + tbl v4.16b, {v22.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbou + tbl v12.16b, {v22.16b}, v10.16b + // vmovdqa 0x70(%r10), %xmm1 # 0 : sbot + tbl v1.16b, {v23.16b}, v3.16b // vpshufb %xmm3, %xmm1, %xmm1 # 0 = sb1t + tbl v9.16b, {v23.16b}, v11.16b + ld1 {v2.2d}, [x11] // vmovdqa -0x160(%r11), %xmm2 # .Lk_sr-.Lk_dsbd=-0x160 + eor v4.16b, v4.16b, v16.16b // vpxor %xmm0, %xmm4, %xmm4 # 4 = sb1u + k + eor v12.16b, v12.16b, v16.16b + eor v0.16b, v1.16b, v4.16b // vpxor %xmm4, %xmm1, %xmm0 # 0 = A + eor v8.16b, v9.16b, v12.16b + tbl v0.16b, {v0.16b},v2.16b // vpshufb %xmm2, %xmm0, %xmm0 + tbl v1.16b, {v8.16b},v2.16b + ret +.size _vpaes_decrypt_2x,.-_vpaes_decrypt_2x +######################################################## +## ## +## AES key schedule ## +## ## +######################################################## +.type _vpaes_key_preheat,%function +.align 4 +_vpaes_key_preheat: + adr x10, .Lk_inv + movi v16.16b, #0x5b // .Lk_s63 + adr x11, .Lk_sb1 + movi v17.16b, #0x0f // .Lk_s0F + ld1 {v18.2d,v19.2d,v20.2d,v21.2d}, [x10] // .Lk_inv, .Lk_ipt + adr x10, .Lk_dksd + ld1 {v22.2d,v23.2d}, [x11] // .Lk_sb1 + adr x11, .Lk_mc_forward + ld1 {v24.2d,v25.2d,v26.2d,v27.2d}, [x10],#64 // .Lk_dksd, .Lk_dksb + ld1 {v28.2d,v29.2d,v30.2d,v31.2d}, [x10],#64 // .Lk_dkse, .Lk_dks9 + ld1 {v8.2d}, [x10] // .Lk_rcon + ld1 {v9.2d}, [x11] // .Lk_mc_forward[0] + ret +.size _vpaes_key_preheat,.-_vpaes_key_preheat + +.type _vpaes_schedule_core,%function +.align 4 +_vpaes_schedule_core: +.inst 0xd503233f // paciasp + stp x29, x30, [sp,#-16]! + add x29,sp,#0 + + bl _vpaes_key_preheat // load the tables + + ld1 {v0.16b}, [x0],#16 // vmovdqu (%rdi), %xmm0 # load key (unaligned) + + // input transform + mov v3.16b, v0.16b // vmovdqa %xmm0, %xmm3 + bl _vpaes_schedule_transform + mov v7.16b, v0.16b // vmovdqa %xmm0, %xmm7 + + adr x10, .Lk_sr // lea .Lk_sr(%rip),%r10 + add x8, x8, x10 + cbnz w3, .Lschedule_am_decrypting + + // encrypting, output zeroth round key after transform + st1 {v0.2d}, [x2] // vmovdqu %xmm0, (%rdx) + b .Lschedule_go + +.Lschedule_am_decrypting: + // decrypting, output zeroth round key after shiftrows + ld1 {v1.2d}, [x8] // vmovdqa (%r8,%r10), %xmm1 + tbl v3.16b, {v3.16b}, v1.16b // vpshufb %xmm1, %xmm3, %xmm3 + st1 {v3.2d}, [x2] // vmovdqu %xmm3, (%rdx) + eor x8, x8, #0x30 // xor $0x30, %r8 + +.Lschedule_go: + cmp w1, #192 // cmp $192, %esi + b.hi .Lschedule_256 + b.eq .Lschedule_192 + // 128: fall though + +## +## .schedule_128 +## +## 128-bit specific part of key schedule. +## +## This schedule is really simple, because all its parts +## are accomplished by the subroutines. +## +.Lschedule_128: + mov x0, #10 // mov $10, %esi + +.Loop_schedule_128: + sub x0, x0, #1 // dec %esi + bl _vpaes_schedule_round + cbz x0, .Lschedule_mangle_last + bl _vpaes_schedule_mangle // write output + b .Loop_schedule_128 + +## +## .aes_schedule_192 +## +## 192-bit specific part of key schedule. +## +## The main body of this schedule is the same as the 128-bit +## schedule, but with more smearing. The long, high side is +## stored in %xmm7 as before, and the short, low side is in +## the high bits of %xmm6. +## +## This schedule is somewhat nastier, however, because each +## round produces 192 bits of key material, or 1.5 round keys. +## Therefore, on each cycle we do 2 rounds and produce 3 round +## keys. +## +.align 4 +.Lschedule_192: + sub x0, x0, #8 + ld1 {v0.16b}, [x0] // vmovdqu 8(%rdi),%xmm0 # load key part 2 (very unaligned) + bl _vpaes_schedule_transform // input transform + mov v6.16b, v0.16b // vmovdqa %xmm0, %xmm6 # save short part + eor v4.16b, v4.16b, v4.16b // vpxor %xmm4, %xmm4, %xmm4 # clear 4 + ins v6.d[0], v4.d[0] // vmovhlps %xmm4, %xmm6, %xmm6 # clobber low side with zeros + mov x0, #4 // mov $4, %esi + +.Loop_schedule_192: + sub x0, x0, #1 // dec %esi + bl _vpaes_schedule_round + ext v0.16b, v6.16b, v0.16b, #8 // vpalignr $8,%xmm6,%xmm0,%xmm0 + bl _vpaes_schedule_mangle // save key n + bl _vpaes_schedule_192_smear + bl _vpaes_schedule_mangle // save key n+1 + bl _vpaes_schedule_round + cbz x0, .Lschedule_mangle_last + bl _vpaes_schedule_mangle // save key n+2 + bl _vpaes_schedule_192_smear + b .Loop_schedule_192 + +## +## .aes_schedule_256 +## +## 256-bit specific part of key schedule. +## +## The structure here is very similar to the 128-bit +## schedule, but with an additional "low side" in +## %xmm6. The low side's rounds are the same as the +## high side's, except no rcon and no rotation. +## +.align 4 +.Lschedule_256: + ld1 {v0.16b}, [x0] // vmovdqu 16(%rdi),%xmm0 # load key part 2 (unaligned) + bl _vpaes_schedule_transform // input transform + mov x0, #7 // mov $7, %esi + +.Loop_schedule_256: + sub x0, x0, #1 // dec %esi + bl _vpaes_schedule_mangle // output low result + mov v6.16b, v0.16b // vmovdqa %xmm0, %xmm6 # save cur_lo in xmm6 + + // high round + bl _vpaes_schedule_round + cbz x0, .Lschedule_mangle_last + bl _vpaes_schedule_mangle + + // low round. swap xmm7 and xmm6 + dup v0.4s, v0.s[3] // vpshufd $0xFF, %xmm0, %xmm0 + movi v4.16b, #0 + mov v5.16b, v7.16b // vmovdqa %xmm7, %xmm5 + mov v7.16b, v6.16b // vmovdqa %xmm6, %xmm7 + bl _vpaes_schedule_low_round + mov v7.16b, v5.16b // vmovdqa %xmm5, %xmm7 + + b .Loop_schedule_256 + +## +## .aes_schedule_mangle_last +## +## Mangler for last round of key schedule +## Mangles %xmm0 +## when encrypting, outputs out(%xmm0) ^ 63 +## when decrypting, outputs unskew(%xmm0) +## +## Always called right before return... jumps to cleanup and exits +## +.align 4 +.Lschedule_mangle_last: + // schedule last round key from xmm0 + adr x11, .Lk_deskew // lea .Lk_deskew(%rip),%r11 # prepare to deskew + cbnz w3, .Lschedule_mangle_last_dec + + // encrypting + ld1 {v1.2d}, [x8] // vmovdqa (%r8,%r10),%xmm1 + adr x11, .Lk_opt // lea .Lk_opt(%rip), %r11 # prepare to output transform + add x2, x2, #32 // add $32, %rdx + tbl v0.16b, {v0.16b}, v1.16b // vpshufb %xmm1, %xmm0, %xmm0 # output permute + +.Lschedule_mangle_last_dec: + ld1 {v20.2d,v21.2d}, [x11] // reload constants + sub x2, x2, #16 // add $-16, %rdx + eor v0.16b, v0.16b, v16.16b // vpxor .Lk_s63(%rip), %xmm0, %xmm0 + bl _vpaes_schedule_transform // output transform + st1 {v0.2d}, [x2] // vmovdqu %xmm0, (%rdx) # save last key + + // cleanup + eor v0.16b, v0.16b, v0.16b // vpxor %xmm0, %xmm0, %xmm0 + eor v1.16b, v1.16b, v1.16b // vpxor %xmm1, %xmm1, %xmm1 + eor v2.16b, v2.16b, v2.16b // vpxor %xmm2, %xmm2, %xmm2 + eor v3.16b, v3.16b, v3.16b // vpxor %xmm3, %xmm3, %xmm3 + eor v4.16b, v4.16b, v4.16b // vpxor %xmm4, %xmm4, %xmm4 + eor v5.16b, v5.16b, v5.16b // vpxor %xmm5, %xmm5, %xmm5 + eor v6.16b, v6.16b, v6.16b // vpxor %xmm6, %xmm6, %xmm6 + eor v7.16b, v7.16b, v7.16b // vpxor %xmm7, %xmm7, %xmm7 + ldp x29, x30, [sp],#16 +.inst 0xd50323bf // autiasp + ret +.size _vpaes_schedule_core,.-_vpaes_schedule_core + +## +## .aes_schedule_192_smear +## +## Smear the short, low side in the 192-bit key schedule. +## +## Inputs: +## %xmm7: high side, b a x y +## %xmm6: low side, d c 0 0 +## %xmm13: 0 +## +## Outputs: +## %xmm6: b+c+d b+c 0 0 +## %xmm0: b+c+d b+c b a +## +.type _vpaes_schedule_192_smear,%function +.align 4 +_vpaes_schedule_192_smear: + movi v1.16b, #0 + dup v0.4s, v7.s[3] + ins v1.s[3], v6.s[2] // vpshufd $0x80, %xmm6, %xmm1 # d c 0 0 -> c 0 0 0 + ins v0.s[0], v7.s[2] // vpshufd $0xFE, %xmm7, %xmm0 # b a _ _ -> b b b a + eor v6.16b, v6.16b, v1.16b // vpxor %xmm1, %xmm6, %xmm6 # -> c+d c 0 0 + eor v1.16b, v1.16b, v1.16b // vpxor %xmm1, %xmm1, %xmm1 + eor v6.16b, v6.16b, v0.16b // vpxor %xmm0, %xmm6, %xmm6 # -> b+c+d b+c b a + mov v0.16b, v6.16b // vmovdqa %xmm6, %xmm0 + ins v6.d[0], v1.d[0] // vmovhlps %xmm1, %xmm6, %xmm6 # clobber low side with zeros + ret +.size _vpaes_schedule_192_smear,.-_vpaes_schedule_192_smear + +## +## .aes_schedule_round +## +## Runs one main round of the key schedule on %xmm0, %xmm7 +## +## Specifically, runs subbytes on the high dword of %xmm0 +## then rotates it by one byte and xors into the low dword of +## %xmm7. +## +## Adds rcon from low byte of %xmm8, then rotates %xmm8 for +## next rcon. +## +## Smears the dwords of %xmm7 by xoring the low into the +## second low, result into third, result into highest. +## +## Returns results in %xmm7 = %xmm0. +## Clobbers %xmm1-%xmm4, %r11. +## +.type _vpaes_schedule_round,%function +.align 4 +_vpaes_schedule_round: + // extract rcon from xmm8 + movi v4.16b, #0 // vpxor %xmm4, %xmm4, %xmm4 + ext v1.16b, v8.16b, v4.16b, #15 // vpalignr $15, %xmm8, %xmm4, %xmm1 + ext v8.16b, v8.16b, v8.16b, #15 // vpalignr $15, %xmm8, %xmm8, %xmm8 + eor v7.16b, v7.16b, v1.16b // vpxor %xmm1, %xmm7, %xmm7 + + // rotate + dup v0.4s, v0.s[3] // vpshufd $0xFF, %xmm0, %xmm0 + ext v0.16b, v0.16b, v0.16b, #1 // vpalignr $1, %xmm0, %xmm0, %xmm0 + + // fall through... + + // low round: same as high round, but no rotation and no rcon. +_vpaes_schedule_low_round: + // smear xmm7 + ext v1.16b, v4.16b, v7.16b, #12 // vpslldq $4, %xmm7, %xmm1 + eor v7.16b, v7.16b, v1.16b // vpxor %xmm1, %xmm7, %xmm7 + ext v4.16b, v4.16b, v7.16b, #8 // vpslldq $8, %xmm7, %xmm4 + + // subbytes + and v1.16b, v0.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 # 0 = k + ushr v0.16b, v0.16b, #4 // vpsrlb $4, %xmm0, %xmm0 # 1 = i + eor v7.16b, v7.16b, v4.16b // vpxor %xmm4, %xmm7, %xmm7 + tbl v2.16b, {v19.16b}, v1.16b // vpshufb %xmm1, %xmm11, %xmm2 # 2 = a/k + eor v1.16b, v1.16b, v0.16b // vpxor %xmm0, %xmm1, %xmm1 # 0 = j + tbl v3.16b, {v18.16b}, v0.16b // vpshufb %xmm0, %xmm10, %xmm3 # 3 = 1/i + eor v3.16b, v3.16b, v2.16b // vpxor %xmm2, %xmm3, %xmm3 # 3 = iak = 1/i + a/k + tbl v4.16b, {v18.16b}, v1.16b // vpshufb %xmm1, %xmm10, %xmm4 # 4 = 1/j + eor v7.16b, v7.16b, v16.16b // vpxor .Lk_s63(%rip), %xmm7, %xmm7 + tbl v3.16b, {v18.16b}, v3.16b // vpshufb %xmm3, %xmm10, %xmm3 # 2 = 1/iak + eor v4.16b, v4.16b, v2.16b // vpxor %xmm2, %xmm4, %xmm4 # 4 = jak = 1/j + a/k + tbl v2.16b, {v18.16b}, v4.16b // vpshufb %xmm4, %xmm10, %xmm2 # 3 = 1/jak + eor v3.16b, v3.16b, v1.16b // vpxor %xmm1, %xmm3, %xmm3 # 2 = io + eor v2.16b, v2.16b, v0.16b // vpxor %xmm0, %xmm2, %xmm2 # 3 = jo + tbl v4.16b, {v23.16b}, v3.16b // vpshufb %xmm3, %xmm13, %xmm4 # 4 = sbou + tbl v1.16b, {v22.16b}, v2.16b // vpshufb %xmm2, %xmm12, %xmm1 # 0 = sb1t + eor v1.16b, v1.16b, v4.16b // vpxor %xmm4, %xmm1, %xmm1 # 0 = sbox output + + // add in smeared stuff + eor v0.16b, v1.16b, v7.16b // vpxor %xmm7, %xmm1, %xmm0 + eor v7.16b, v1.16b, v7.16b // vmovdqa %xmm0, %xmm7 + ret +.size _vpaes_schedule_round,.-_vpaes_schedule_round + +## +## .aes_schedule_transform +## +## Linear-transform %xmm0 according to tables at (%r11) +## +## Requires that %xmm9 = 0x0F0F... as in preheat +## Output in %xmm0 +## Clobbers %xmm1, %xmm2 +## +.type _vpaes_schedule_transform,%function +.align 4 +_vpaes_schedule_transform: + and v1.16b, v0.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 + ushr v0.16b, v0.16b, #4 // vpsrlb $4, %xmm0, %xmm0 + // vmovdqa (%r11), %xmm2 # lo + tbl v2.16b, {v20.16b}, v1.16b // vpshufb %xmm1, %xmm2, %xmm2 + // vmovdqa 16(%r11), %xmm1 # hi + tbl v0.16b, {v21.16b}, v0.16b // vpshufb %xmm0, %xmm1, %xmm0 + eor v0.16b, v0.16b, v2.16b // vpxor %xmm2, %xmm0, %xmm0 + ret +.size _vpaes_schedule_transform,.-_vpaes_schedule_transform + +## +## .aes_schedule_mangle +## +## Mangle xmm0 from (basis-transformed) standard version +## to our version. +## +## On encrypt, +## xor with 0x63 +## multiply by circulant 0,1,1,1 +## apply shiftrows transform +## +## On decrypt, +## xor with 0x63 +## multiply by "inverse mixcolumns" circulant E,B,D,9 +## deskew +## apply shiftrows transform +## +## +## Writes out to (%rdx), and increments or decrements it +## Keeps track of round number mod 4 in %r8 +## Preserves xmm0 +## Clobbers xmm1-xmm5 +## +.type _vpaes_schedule_mangle,%function +.align 4 +_vpaes_schedule_mangle: + mov v4.16b, v0.16b // vmovdqa %xmm0, %xmm4 # save xmm0 for later + // vmovdqa .Lk_mc_forward(%rip),%xmm5 + cbnz w3, .Lschedule_mangle_dec + + // encrypting + eor v4.16b, v0.16b, v16.16b // vpxor .Lk_s63(%rip), %xmm0, %xmm4 + add x2, x2, #16 // add $16, %rdx + tbl v4.16b, {v4.16b}, v9.16b // vpshufb %xmm5, %xmm4, %xmm4 + tbl v1.16b, {v4.16b}, v9.16b // vpshufb %xmm5, %xmm4, %xmm1 + tbl v3.16b, {v1.16b}, v9.16b // vpshufb %xmm5, %xmm1, %xmm3 + eor v4.16b, v4.16b, v1.16b // vpxor %xmm1, %xmm4, %xmm4 + ld1 {v1.2d}, [x8] // vmovdqa (%r8,%r10), %xmm1 + eor v3.16b, v3.16b, v4.16b // vpxor %xmm4, %xmm3, %xmm3 + + b .Lschedule_mangle_both +.align 4 +.Lschedule_mangle_dec: + // inverse mix columns + // lea .Lk_dksd(%rip),%r11 + ushr v1.16b, v4.16b, #4 // vpsrlb $4, %xmm4, %xmm1 # 1 = hi + and v4.16b, v4.16b, v17.16b // vpand %xmm9, %xmm4, %xmm4 # 4 = lo + + // vmovdqa 0x00(%r11), %xmm2 + tbl v2.16b, {v24.16b}, v4.16b // vpshufb %xmm4, %xmm2, %xmm2 + // vmovdqa 0x10(%r11), %xmm3 + tbl v3.16b, {v25.16b}, v1.16b // vpshufb %xmm1, %xmm3, %xmm3 + eor v3.16b, v3.16b, v2.16b // vpxor %xmm2, %xmm3, %xmm3 + tbl v3.16b, {v3.16b}, v9.16b // vpshufb %xmm5, %xmm3, %xmm3 + + // vmovdqa 0x20(%r11), %xmm2 + tbl v2.16b, {v26.16b}, v4.16b // vpshufb %xmm4, %xmm2, %xmm2 + eor v2.16b, v2.16b, v3.16b // vpxor %xmm3, %xmm2, %xmm2 + // vmovdqa 0x30(%r11), %xmm3 + tbl v3.16b, {v27.16b}, v1.16b // vpshufb %xmm1, %xmm3, %xmm3 + eor v3.16b, v3.16b, v2.16b // vpxor %xmm2, %xmm3, %xmm3 + tbl v3.16b, {v3.16b}, v9.16b // vpshufb %xmm5, %xmm3, %xmm3 + + // vmovdqa 0x40(%r11), %xmm2 + tbl v2.16b, {v28.16b}, v4.16b // vpshufb %xmm4, %xmm2, %xmm2 + eor v2.16b, v2.16b, v3.16b // vpxor %xmm3, %xmm2, %xmm2 + // vmovdqa 0x50(%r11), %xmm3 + tbl v3.16b, {v29.16b}, v1.16b // vpshufb %xmm1, %xmm3, %xmm3 + eor v3.16b, v3.16b, v2.16b // vpxor %xmm2, %xmm3, %xmm3 + + // vmovdqa 0x60(%r11), %xmm2 + tbl v2.16b, {v30.16b}, v4.16b // vpshufb %xmm4, %xmm2, %xmm2 + tbl v3.16b, {v3.16b}, v9.16b // vpshufb %xmm5, %xmm3, %xmm3 + // vmovdqa 0x70(%r11), %xmm4 + tbl v4.16b, {v31.16b}, v1.16b // vpshufb %xmm1, %xmm4, %xmm4 + ld1 {v1.2d}, [x8] // vmovdqa (%r8,%r10), %xmm1 + eor v2.16b, v2.16b, v3.16b // vpxor %xmm3, %xmm2, %xmm2 + eor v3.16b, v4.16b, v2.16b // vpxor %xmm2, %xmm4, %xmm3 + + sub x2, x2, #16 // add $-16, %rdx + +.Lschedule_mangle_both: + tbl v3.16b, {v3.16b}, v1.16b // vpshufb %xmm1, %xmm3, %xmm3 + add x8, x8, #64-16 // add $-16, %r8 + and x8, x8, #~(1<<6) // and $0x30, %r8 + st1 {v3.2d}, [x2] // vmovdqu %xmm3, (%rdx) + ret +.size _vpaes_schedule_mangle,.-_vpaes_schedule_mangle + +.globl vpaes_set_encrypt_key +.type vpaes_set_encrypt_key,%function +.align 4 +vpaes_set_encrypt_key: +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + stp d8,d9,[sp,#-16]! // ABI spec says so + + lsr w9, w1, #5 // shr $5,%eax + add w9, w9, #5 // $5,%eax + str w9, [x2,#240] // mov %eax,240(%rdx) # AES_KEY->rounds = nbits/32+5; + + mov w3, #0 // mov $0,%ecx + mov x8, #0x30 // mov $0x30,%r8d + bl _vpaes_schedule_core + eor x0, x0, x0 + + ldp d8,d9,[sp],#16 + ldp x29,x30,[sp],#16 +.inst 0xd50323bf // autiasp + ret +.size vpaes_set_encrypt_key,.-vpaes_set_encrypt_key + +.globl vpaes_set_decrypt_key +.type vpaes_set_decrypt_key,%function +.align 4 +vpaes_set_decrypt_key: +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + stp d8,d9,[sp,#-16]! // ABI spec says so + + lsr w9, w1, #5 // shr $5,%eax + add w9, w9, #5 // $5,%eax + str w9, [x2,#240] // mov %eax,240(%rdx) # AES_KEY->rounds = nbits/32+5; + lsl w9, w9, #4 // shl $4,%eax + add x2, x2, #16 // lea 16(%rdx,%rax),%rdx + add x2, x2, x9 + + mov w3, #1 // mov $1,%ecx + lsr w8, w1, #1 // shr $1,%r8d + and x8, x8, #32 // and $32,%r8d + eor x8, x8, #32 // xor $32,%r8d # nbits==192?0:32 + bl _vpaes_schedule_core + + ldp d8,d9,[sp],#16 + ldp x29,x30,[sp],#16 +.inst 0xd50323bf // autiasp + ret +.size vpaes_set_decrypt_key,.-vpaes_set_decrypt_key +.globl vpaes_cbc_encrypt +.type vpaes_cbc_encrypt,%function +.align 4 +vpaes_cbc_encrypt: + cbz x2, .Lcbc_abort + cmp w5, #0 // check direction + b.eq vpaes_cbc_decrypt + +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + + mov x17, x2 // reassign + mov x2, x3 // reassign + + ld1 {v0.16b}, [x4] // load ivec + bl _vpaes_encrypt_preheat + b .Lcbc_enc_loop + +.align 4 +.Lcbc_enc_loop: + ld1 {v7.16b}, [x0],#16 // load input + eor v7.16b, v7.16b, v0.16b // xor with ivec + bl _vpaes_encrypt_core + st1 {v0.16b}, [x1],#16 // save output + subs x17, x17, #16 + b.hi .Lcbc_enc_loop + + st1 {v0.16b}, [x4] // write ivec + + ldp x29,x30,[sp],#16 +.inst 0xd50323bf // autiasp +.Lcbc_abort: + ret +.size vpaes_cbc_encrypt,.-vpaes_cbc_encrypt + +.type vpaes_cbc_decrypt,%function +.align 4 +vpaes_cbc_decrypt: +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + stp d8,d9,[sp,#-16]! // ABI spec says so + stp d10,d11,[sp,#-16]! + stp d12,d13,[sp,#-16]! + stp d14,d15,[sp,#-16]! + + mov x17, x2 // reassign + mov x2, x3 // reassign + ld1 {v6.16b}, [x4] // load ivec + bl _vpaes_decrypt_preheat + tst x17, #16 + b.eq .Lcbc_dec_loop2x + + ld1 {v7.16b}, [x0], #16 // load input + bl _vpaes_decrypt_core + eor v0.16b, v0.16b, v6.16b // xor with ivec + orr v6.16b, v7.16b, v7.16b // next ivec value + st1 {v0.16b}, [x1], #16 + subs x17, x17, #16 + b.ls .Lcbc_dec_done + +.align 4 +.Lcbc_dec_loop2x: + ld1 {v14.16b,v15.16b}, [x0], #32 + bl _vpaes_decrypt_2x + eor v0.16b, v0.16b, v6.16b // xor with ivec + eor v1.16b, v1.16b, v14.16b + orr v6.16b, v15.16b, v15.16b + st1 {v0.16b,v1.16b}, [x1], #32 + subs x17, x17, #32 + b.hi .Lcbc_dec_loop2x + +.Lcbc_dec_done: + st1 {v6.16b}, [x4] + + ldp d14,d15,[sp],#16 + ldp d12,d13,[sp],#16 + ldp d10,d11,[sp],#16 + ldp d8,d9,[sp],#16 + ldp x29,x30,[sp],#16 +.inst 0xd50323bf // autiasp + ret +.size vpaes_cbc_decrypt,.-vpaes_cbc_decrypt +.globl vpaes_ecb_encrypt +.type vpaes_ecb_encrypt,%function +.align 4 +vpaes_ecb_encrypt: +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + stp d8,d9,[sp,#-16]! // ABI spec says so + stp d10,d11,[sp,#-16]! + stp d12,d13,[sp,#-16]! + stp d14,d15,[sp,#-16]! + + mov x17, x2 + mov x2, x3 + bl _vpaes_encrypt_preheat + tst x17, #16 + b.eq .Lecb_enc_loop + + ld1 {v7.16b}, [x0],#16 + bl _vpaes_encrypt_core + st1 {v0.16b}, [x1],#16 + subs x17, x17, #16 + b.ls .Lecb_enc_done + +.align 4 +.Lecb_enc_loop: + ld1 {v14.16b,v15.16b}, [x0], #32 + bl _vpaes_encrypt_2x + st1 {v0.16b,v1.16b}, [x1], #32 + subs x17, x17, #32 + b.hi .Lecb_enc_loop + +.Lecb_enc_done: + ldp d14,d15,[sp],#16 + ldp d12,d13,[sp],#16 + ldp d10,d11,[sp],#16 + ldp d8,d9,[sp],#16 + ldp x29,x30,[sp],#16 +.inst 0xd50323bf // autiasp + ret +.size vpaes_ecb_encrypt,.-vpaes_ecb_encrypt + +.globl vpaes_ecb_decrypt +.type vpaes_ecb_decrypt,%function +.align 4 +vpaes_ecb_decrypt: +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + stp d8,d9,[sp,#-16]! // ABI spec says so + stp d10,d11,[sp,#-16]! + stp d12,d13,[sp,#-16]! + stp d14,d15,[sp,#-16]! + + mov x17, x2 + mov x2, x3 + bl _vpaes_decrypt_preheat + tst x17, #16 + b.eq .Lecb_dec_loop + + ld1 {v7.16b}, [x0],#16 + bl _vpaes_encrypt_core + st1 {v0.16b}, [x1],#16 + subs x17, x17, #16 + b.ls .Lecb_dec_done + +.align 4 +.Lecb_dec_loop: + ld1 {v14.16b,v15.16b}, [x0], #32 + bl _vpaes_decrypt_2x + st1 {v0.16b,v1.16b}, [x1], #32 + subs x17, x17, #32 + b.hi .Lecb_dec_loop + +.Lecb_dec_done: + ldp d14,d15,[sp],#16 + ldp d12,d13,[sp],#16 + ldp d10,d11,[sp],#16 + ldp d8,d9,[sp],#16 + ldp x29,x30,[sp],#16 +.inst 0xd50323bf // autiasp + ret +.size vpaes_ecb_decrypt,.-vpaes_ecb_decrypt diff --git a/vere/ext/openssl/gen/linux-aarch64/crypto/arm64cpuid.S b/vere/ext/openssl/gen/linux-aarch64/crypto/arm64cpuid.S new file mode 100644 index 0000000..fdf9f46 --- /dev/null +++ b/vere/ext/openssl/gen/linux-aarch64/crypto/arm64cpuid.S @@ -0,0 +1,122 @@ +#include "arm_arch.h" + +.text +.arch armv8-a+crypto + +.align 5 +.globl _armv7_neon_probe +.type _armv7_neon_probe,%function +_armv7_neon_probe: + orr v15.16b, v15.16b, v15.16b + ret +.size _armv7_neon_probe,.-_armv7_neon_probe + +.globl _armv7_tick +.type _armv7_tick,%function +_armv7_tick: +#ifdef __APPLE__ + mrs x0, CNTPCT_EL0 +#else + mrs x0, CNTVCT_EL0 +#endif + ret +.size _armv7_tick,.-_armv7_tick + +.globl _armv8_aes_probe +.type _armv8_aes_probe,%function +_armv8_aes_probe: + aese v0.16b, v0.16b + ret +.size _armv8_aes_probe,.-_armv8_aes_probe + +.globl _armv8_sha1_probe +.type _armv8_sha1_probe,%function +_armv8_sha1_probe: + sha1h s0, s0 + ret +.size _armv8_sha1_probe,.-_armv8_sha1_probe + +.globl _armv8_sha256_probe +.type _armv8_sha256_probe,%function +_armv8_sha256_probe: + sha256su0 v0.4s, v0.4s + ret +.size _armv8_sha256_probe,.-_armv8_sha256_probe + +.globl _armv8_pmull_probe +.type _armv8_pmull_probe,%function +_armv8_pmull_probe: + pmull v0.1q, v0.1d, v0.1d + ret +.size _armv8_pmull_probe,.-_armv8_pmull_probe + +.globl _armv8_sha512_probe +.type _armv8_sha512_probe,%function +_armv8_sha512_probe: +.long 0xcec08000 // sha512su0 v0.2d,v0.2d + ret +.size _armv8_sha512_probe,.-_armv8_sha512_probe + +.globl OPENSSL_cleanse +.type OPENSSL_cleanse,%function +.align 5 +OPENSSL_cleanse: + cbz x1,.Lret // len==0? + cmp x1,#15 + b.hi .Lot // len>15 + nop +.Little: + strb wzr,[x0],#1 // store byte-by-byte + subs x1,x1,#1 + b.ne .Little +.Lret: ret + +.align 4 +.Lot: tst x0,#7 + b.eq .Laligned // inp is aligned + strb wzr,[x0],#1 // store byte-by-byte + sub x1,x1,#1 + b .Lot + +.align 4 +.Laligned: + str xzr,[x0],#8 // store word-by-word + sub x1,x1,#8 + tst x1,#-8 + b.ne .Laligned // len>=8 + cbnz x1,.Little // len!=0? + ret +.size OPENSSL_cleanse,.-OPENSSL_cleanse + +.globl CRYPTO_memcmp +.type CRYPTO_memcmp,%function +.align 4 +CRYPTO_memcmp: + eor w3,w3,w3 + cbz x2,.Lno_data // len==0? + cmp x2,#16 + b.ne .Loop_cmp + ldp x8,x9,[x0] + ldp x10,x11,[x1] + eor x8,x8,x10 + eor x9,x9,x11 + orr x8,x8,x9 + mov x0,#1 + cmp x8,#0 + csel x0,xzr,x0,eq + ret + +.align 4 +.Loop_cmp: + ldrb w4,[x0],#1 + ldrb w5,[x1],#1 + eor w4,w4,w5 + orr w3,w3,w4 + subs x2,x2,#1 + b.ne .Loop_cmp + +.Lno_data: + neg w0,w3 + lsr w0,w0,#31 + ret +.size CRYPTO_memcmp,.-CRYPTO_memcmp diff --git a/vere/ext/openssl/gen/linux-aarch64/crypto/bn/armv8-mont.S b/vere/ext/openssl/gen/linux-aarch64/crypto/bn/armv8-mont.S new file mode 100644 index 0000000..d573c00 --- /dev/null +++ b/vere/ext/openssl/gen/linux-aarch64/crypto/bn/armv8-mont.S @@ -0,0 +1,1408 @@ +.text + +.globl bn_mul_mont +.type bn_mul_mont,%function +.align 5 +bn_mul_mont: + tst x5,#7 + b.eq __bn_sqr8x_mont + tst x5,#3 + b.eq __bn_mul4x_mont +.Lmul_mont: + stp x29,x30,[sp,#-64]! + add x29,sp,#0 + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + stp x23,x24,[sp,#48] + + ldr x9,[x2],#8 // bp[0] + sub x22,sp,x5,lsl#3 + ldp x7,x8,[x1],#16 // ap[0..1] + lsl x5,x5,#3 + ldr x4,[x4] // *n0 + and x22,x22,#-16 // ABI says so + ldp x13,x14,[x3],#16 // np[0..1] + + mul x6,x7,x9 // ap[0]*bp[0] + sub x21,x5,#16 // j=num-2 + umulh x7,x7,x9 + mul x10,x8,x9 // ap[1]*bp[0] + umulh x11,x8,x9 + + mul x15,x6,x4 // "tp[0]"*n0 + mov sp,x22 // alloca + + // (*) mul x12,x13,x15 // np[0]*m1 + umulh x13,x13,x15 + mul x16,x14,x15 // np[1]*m1 + // (*) adds x12,x12,x6 // discarded + // (*) As for removal of first multiplication and addition + // instructions. The outcome of first addition is + // guaranteed to be zero, which leaves two computationally + // significant outcomes: it either carries or not. Then + // question is when does it carry? Is there alternative + // way to deduce it? If you follow operations, you can + // observe that condition for carry is quite simple: + // x6 being non-zero. So that carry can be calculated + // by adding -1 to x6. That's what next instruction does. + subs xzr,x6,#1 // (*) + umulh x17,x14,x15 + adc x13,x13,xzr + cbz x21,.L1st_skip + +.L1st: + ldr x8,[x1],#8 + adds x6,x10,x7 + sub x21,x21,#8 // j-- + adc x7,x11,xzr + + ldr x14,[x3],#8 + adds x12,x16,x13 + mul x10,x8,x9 // ap[j]*bp[0] + adc x13,x17,xzr + umulh x11,x8,x9 + + adds x12,x12,x6 + mul x16,x14,x15 // np[j]*m1 + adc x13,x13,xzr + umulh x17,x14,x15 + str x12,[x22],#8 // tp[j-1] + cbnz x21,.L1st + +.L1st_skip: + adds x6,x10,x7 + sub x1,x1,x5 // rewind x1 + adc x7,x11,xzr + + adds x12,x16,x13 + sub x3,x3,x5 // rewind x3 + adc x13,x17,xzr + + adds x12,x12,x6 + sub x20,x5,#8 // i=num-1 + adcs x13,x13,x7 + + adc x19,xzr,xzr // upmost overflow bit + stp x12,x13,[x22] + +.Louter: + ldr x9,[x2],#8 // bp[i] + ldp x7,x8,[x1],#16 + ldr x23,[sp] // tp[0] + add x22,sp,#8 + + mul x6,x7,x9 // ap[0]*bp[i] + sub x21,x5,#16 // j=num-2 + umulh x7,x7,x9 + ldp x13,x14,[x3],#16 + mul x10,x8,x9 // ap[1]*bp[i] + adds x6,x6,x23 + umulh x11,x8,x9 + adc x7,x7,xzr + + mul x15,x6,x4 + sub x20,x20,#8 // i-- + + // (*) mul x12,x13,x15 // np[0]*m1 + umulh x13,x13,x15 + mul x16,x14,x15 // np[1]*m1 + // (*) adds x12,x12,x6 + subs xzr,x6,#1 // (*) + umulh x17,x14,x15 + cbz x21,.Linner_skip + +.Linner: + ldr x8,[x1],#8 + adc x13,x13,xzr + ldr x23,[x22],#8 // tp[j] + adds x6,x10,x7 + sub x21,x21,#8 // j-- + adc x7,x11,xzr + + adds x12,x16,x13 + ldr x14,[x3],#8 + adc x13,x17,xzr + + mul x10,x8,x9 // ap[j]*bp[i] + adds x6,x6,x23 + umulh x11,x8,x9 + adc x7,x7,xzr + + mul x16,x14,x15 // np[j]*m1 + adds x12,x12,x6 + umulh x17,x14,x15 + str x12,[x22,#-16] // tp[j-1] + cbnz x21,.Linner + +.Linner_skip: + ldr x23,[x22],#8 // tp[j] + adc x13,x13,xzr + adds x6,x10,x7 + sub x1,x1,x5 // rewind x1 + adc x7,x11,xzr + + adds x12,x16,x13 + sub x3,x3,x5 // rewind x3 + adcs x13,x17,x19 + adc x19,xzr,xzr + + adds x6,x6,x23 + adc x7,x7,xzr + + adds x12,x12,x6 + adcs x13,x13,x7 + adc x19,x19,xzr // upmost overflow bit + stp x12,x13,[x22,#-16] + + cbnz x20,.Louter + + // Final step. We see if result is larger than modulus, and + // if it is, subtract the modulus. But comparison implies + // subtraction. So we subtract modulus, see if it borrowed, + // and conditionally copy original value. + ldr x23,[sp] // tp[0] + add x22,sp,#8 + ldr x14,[x3],#8 // np[0] + subs x21,x5,#8 // j=num-1 and clear borrow + mov x1,x0 +.Lsub: + sbcs x8,x23,x14 // tp[j]-np[j] + ldr x23,[x22],#8 + sub x21,x21,#8 // j-- + ldr x14,[x3],#8 + str x8,[x1],#8 // rp[j]=tp[j]-np[j] + cbnz x21,.Lsub + + sbcs x8,x23,x14 + sbcs x19,x19,xzr // did it borrow? + str x8,[x1],#8 // rp[num-1] + + ldr x23,[sp] // tp[0] + add x22,sp,#8 + ldr x8,[x0],#8 // rp[0] + sub x5,x5,#8 // num-- + nop +.Lcond_copy: + sub x5,x5,#8 // num-- + csel x14,x23,x8,lo // did it borrow? + ldr x23,[x22],#8 + ldr x8,[x0],#8 + str xzr,[x22,#-16] // wipe tp + str x14,[x0,#-16] + cbnz x5,.Lcond_copy + + csel x14,x23,x8,lo + str xzr,[x22,#-8] // wipe tp + str x14,[x0,#-8] + + ldp x19,x20,[x29,#16] + mov sp,x29 + ldp x21,x22,[x29,#32] + mov x0,#1 + ldp x23,x24,[x29,#48] + ldr x29,[sp],#64 + ret +.size bn_mul_mont,.-bn_mul_mont +.type __bn_sqr8x_mont,%function +.align 5 +__bn_sqr8x_mont: + cmp x1,x2 + b.ne __bn_mul4x_mont +.Lsqr8x_mont: +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-128]! + add x29,sp,#0 + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + stp x23,x24,[sp,#48] + stp x25,x26,[sp,#64] + stp x27,x28,[sp,#80] + stp x0,x3,[sp,#96] // offload rp and np + + ldp x6,x7,[x1,#8*0] + ldp x8,x9,[x1,#8*2] + ldp x10,x11,[x1,#8*4] + ldp x12,x13,[x1,#8*6] + + sub x2,sp,x5,lsl#4 + lsl x5,x5,#3 + ldr x4,[x4] // *n0 + mov sp,x2 // alloca + sub x27,x5,#8*8 + b .Lsqr8x_zero_start + +.Lsqr8x_zero: + sub x27,x27,#8*8 + stp xzr,xzr,[x2,#8*0] + stp xzr,xzr,[x2,#8*2] + stp xzr,xzr,[x2,#8*4] + stp xzr,xzr,[x2,#8*6] +.Lsqr8x_zero_start: + stp xzr,xzr,[x2,#8*8] + stp xzr,xzr,[x2,#8*10] + stp xzr,xzr,[x2,#8*12] + stp xzr,xzr,[x2,#8*14] + add x2,x2,#8*16 + cbnz x27,.Lsqr8x_zero + + add x3,x1,x5 + add x1,x1,#8*8 + mov x19,xzr + mov x20,xzr + mov x21,xzr + mov x22,xzr + mov x23,xzr + mov x24,xzr + mov x25,xzr + mov x26,xzr + mov x2,sp + str x4,[x29,#112] // offload n0 + + // Multiply everything but a[i]*a[i] +.align 4 +.Lsqr8x_outer_loop: + // a[1]a[0] (i) + // a[2]a[0] + // a[3]a[0] + // a[4]a[0] + // a[5]a[0] + // a[6]a[0] + // a[7]a[0] + // a[2]a[1] (ii) + // a[3]a[1] + // a[4]a[1] + // a[5]a[1] + // a[6]a[1] + // a[7]a[1] + // a[3]a[2] (iii) + // a[4]a[2] + // a[5]a[2] + // a[6]a[2] + // a[7]a[2] + // a[4]a[3] (iv) + // a[5]a[3] + // a[6]a[3] + // a[7]a[3] + // a[5]a[4] (v) + // a[6]a[4] + // a[7]a[4] + // a[6]a[5] (vi) + // a[7]a[5] + // a[7]a[6] (vii) + + mul x14,x7,x6 // lo(a[1..7]*a[0]) (i) + mul x15,x8,x6 + mul x16,x9,x6 + mul x17,x10,x6 + adds x20,x20,x14 // t[1]+lo(a[1]*a[0]) + mul x14,x11,x6 + adcs x21,x21,x15 + mul x15,x12,x6 + adcs x22,x22,x16 + mul x16,x13,x6 + adcs x23,x23,x17 + umulh x17,x7,x6 // hi(a[1..7]*a[0]) + adcs x24,x24,x14 + umulh x14,x8,x6 + adcs x25,x25,x15 + umulh x15,x9,x6 + adcs x26,x26,x16 + umulh x16,x10,x6 + stp x19,x20,[x2],#8*2 // t[0..1] + adc x19,xzr,xzr // t[8] + adds x21,x21,x17 // t[2]+lo(a[1]*a[0]) + umulh x17,x11,x6 + adcs x22,x22,x14 + umulh x14,x12,x6 + adcs x23,x23,x15 + umulh x15,x13,x6 + adcs x24,x24,x16 + mul x16,x8,x7 // lo(a[2..7]*a[1]) (ii) + adcs x25,x25,x17 + mul x17,x9,x7 + adcs x26,x26,x14 + mul x14,x10,x7 + adc x19,x19,x15 + + mul x15,x11,x7 + adds x22,x22,x16 + mul x16,x12,x7 + adcs x23,x23,x17 + mul x17,x13,x7 + adcs x24,x24,x14 + umulh x14,x8,x7 // hi(a[2..7]*a[1]) + adcs x25,x25,x15 + umulh x15,x9,x7 + adcs x26,x26,x16 + umulh x16,x10,x7 + adcs x19,x19,x17 + umulh x17,x11,x7 + stp x21,x22,[x2],#8*2 // t[2..3] + adc x20,xzr,xzr // t[9] + adds x23,x23,x14 + umulh x14,x12,x7 + adcs x24,x24,x15 + umulh x15,x13,x7 + adcs x25,x25,x16 + mul x16,x9,x8 // lo(a[3..7]*a[2]) (iii) + adcs x26,x26,x17 + mul x17,x10,x8 + adcs x19,x19,x14 + mul x14,x11,x8 + adc x20,x20,x15 + + mul x15,x12,x8 + adds x24,x24,x16 + mul x16,x13,x8 + adcs x25,x25,x17 + umulh x17,x9,x8 // hi(a[3..7]*a[2]) + adcs x26,x26,x14 + umulh x14,x10,x8 + adcs x19,x19,x15 + umulh x15,x11,x8 + adcs x20,x20,x16 + umulh x16,x12,x8 + stp x23,x24,[x2],#8*2 // t[4..5] + adc x21,xzr,xzr // t[10] + adds x25,x25,x17 + umulh x17,x13,x8 + adcs x26,x26,x14 + mul x14,x10,x9 // lo(a[4..7]*a[3]) (iv) + adcs x19,x19,x15 + mul x15,x11,x9 + adcs x20,x20,x16 + mul x16,x12,x9 + adc x21,x21,x17 + + mul x17,x13,x9 + adds x26,x26,x14 + umulh x14,x10,x9 // hi(a[4..7]*a[3]) + adcs x19,x19,x15 + umulh x15,x11,x9 + adcs x20,x20,x16 + umulh x16,x12,x9 + adcs x21,x21,x17 + umulh x17,x13,x9 + stp x25,x26,[x2],#8*2 // t[6..7] + adc x22,xzr,xzr // t[11] + adds x19,x19,x14 + mul x14,x11,x10 // lo(a[5..7]*a[4]) (v) + adcs x20,x20,x15 + mul x15,x12,x10 + adcs x21,x21,x16 + mul x16,x13,x10 + adc x22,x22,x17 + + umulh x17,x11,x10 // hi(a[5..7]*a[4]) + adds x20,x20,x14 + umulh x14,x12,x10 + adcs x21,x21,x15 + umulh x15,x13,x10 + adcs x22,x22,x16 + mul x16,x12,x11 // lo(a[6..7]*a[5]) (vi) + adc x23,xzr,xzr // t[12] + adds x21,x21,x17 + mul x17,x13,x11 + adcs x22,x22,x14 + umulh x14,x12,x11 // hi(a[6..7]*a[5]) + adc x23,x23,x15 + + umulh x15,x13,x11 + adds x22,x22,x16 + mul x16,x13,x12 // lo(a[7]*a[6]) (vii) + adcs x23,x23,x17 + umulh x17,x13,x12 // hi(a[7]*a[6]) + adc x24,xzr,xzr // t[13] + adds x23,x23,x14 + sub x27,x3,x1 // done yet? + adc x24,x24,x15 + + adds x24,x24,x16 + sub x14,x3,x5 // rewinded ap + adc x25,xzr,xzr // t[14] + add x25,x25,x17 + + cbz x27,.Lsqr8x_outer_break + + mov x4,x6 + ldp x6,x7,[x2,#8*0] + ldp x8,x9,[x2,#8*2] + ldp x10,x11,[x2,#8*4] + ldp x12,x13,[x2,#8*6] + adds x19,x19,x6 + adcs x20,x20,x7 + ldp x6,x7,[x1,#8*0] + adcs x21,x21,x8 + adcs x22,x22,x9 + ldp x8,x9,[x1,#8*2] + adcs x23,x23,x10 + adcs x24,x24,x11 + ldp x10,x11,[x1,#8*4] + adcs x25,x25,x12 + mov x0,x1 + adcs x26,xzr,x13 + ldp x12,x13,[x1,#8*6] + add x1,x1,#8*8 + //adc x28,xzr,xzr // moved below + mov x27,#-8*8 + + // a[8]a[0] + // a[9]a[0] + // a[a]a[0] + // a[b]a[0] + // a[c]a[0] + // a[d]a[0] + // a[e]a[0] + // a[f]a[0] + // a[8]a[1] + // a[f]a[1]........................ + // a[8]a[2] + // a[f]a[2]........................ + // a[8]a[3] + // a[f]a[3]........................ + // a[8]a[4] + // a[f]a[4]........................ + // a[8]a[5] + // a[f]a[5]........................ + // a[8]a[6] + // a[f]a[6]........................ + // a[8]a[7] + // a[f]a[7]........................ +.Lsqr8x_mul: + mul x14,x6,x4 + adc x28,xzr,xzr // carry bit, modulo-scheduled + mul x15,x7,x4 + add x27,x27,#8 + mul x16,x8,x4 + mul x17,x9,x4 + adds x19,x19,x14 + mul x14,x10,x4 + adcs x20,x20,x15 + mul x15,x11,x4 + adcs x21,x21,x16 + mul x16,x12,x4 + adcs x22,x22,x17 + mul x17,x13,x4 + adcs x23,x23,x14 + umulh x14,x6,x4 + adcs x24,x24,x15 + umulh x15,x7,x4 + adcs x25,x25,x16 + umulh x16,x8,x4 + adcs x26,x26,x17 + umulh x17,x9,x4 + adc x28,x28,xzr + str x19,[x2],#8 + adds x19,x20,x14 + umulh x14,x10,x4 + adcs x20,x21,x15 + umulh x15,x11,x4 + adcs x21,x22,x16 + umulh x16,x12,x4 + adcs x22,x23,x17 + umulh x17,x13,x4 + ldr x4,[x0,x27] + adcs x23,x24,x14 + adcs x24,x25,x15 + adcs x25,x26,x16 + adcs x26,x28,x17 + //adc x28,xzr,xzr // moved above + cbnz x27,.Lsqr8x_mul + // note that carry flag is guaranteed + // to be zero at this point + cmp x1,x3 // done yet? + b.eq .Lsqr8x_break + + ldp x6,x7,[x2,#8*0] + ldp x8,x9,[x2,#8*2] + ldp x10,x11,[x2,#8*4] + ldp x12,x13,[x2,#8*6] + adds x19,x19,x6 + ldr x4,[x0,#-8*8] + adcs x20,x20,x7 + ldp x6,x7,[x1,#8*0] + adcs x21,x21,x8 + adcs x22,x22,x9 + ldp x8,x9,[x1,#8*2] + adcs x23,x23,x10 + adcs x24,x24,x11 + ldp x10,x11,[x1,#8*4] + adcs x25,x25,x12 + mov x27,#-8*8 + adcs x26,x26,x13 + ldp x12,x13,[x1,#8*6] + add x1,x1,#8*8 + //adc x28,xzr,xzr // moved above + b .Lsqr8x_mul + +.align 4 +.Lsqr8x_break: + ldp x6,x7,[x0,#8*0] + add x1,x0,#8*8 + ldp x8,x9,[x0,#8*2] + sub x14,x3,x1 // is it last iteration? + ldp x10,x11,[x0,#8*4] + sub x15,x2,x14 + ldp x12,x13,[x0,#8*6] + cbz x14,.Lsqr8x_outer_loop + + stp x19,x20,[x2,#8*0] + ldp x19,x20,[x15,#8*0] + stp x21,x22,[x2,#8*2] + ldp x21,x22,[x15,#8*2] + stp x23,x24,[x2,#8*4] + ldp x23,x24,[x15,#8*4] + stp x25,x26,[x2,#8*6] + mov x2,x15 + ldp x25,x26,[x15,#8*6] + b .Lsqr8x_outer_loop + +.align 4 +.Lsqr8x_outer_break: + // Now multiply above result by 2 and add a[n-1]*a[n-1]|...|a[0]*a[0] + ldp x7,x9,[x14,#8*0] // recall that x14 is &a[0] + ldp x15,x16,[sp,#8*1] + ldp x11,x13,[x14,#8*2] + add x1,x14,#8*4 + ldp x17,x14,[sp,#8*3] + + stp x19,x20,[x2,#8*0] + mul x19,x7,x7 + stp x21,x22,[x2,#8*2] + umulh x7,x7,x7 + stp x23,x24,[x2,#8*4] + mul x8,x9,x9 + stp x25,x26,[x2,#8*6] + mov x2,sp + umulh x9,x9,x9 + adds x20,x7,x15,lsl#1 + extr x15,x16,x15,#63 + sub x27,x5,#8*4 + +.Lsqr4x_shift_n_add: + adcs x21,x8,x15 + extr x16,x17,x16,#63 + sub x27,x27,#8*4 + adcs x22,x9,x16 + ldp x15,x16,[x2,#8*5] + mul x10,x11,x11 + ldp x7,x9,[x1],#8*2 + umulh x11,x11,x11 + mul x12,x13,x13 + umulh x13,x13,x13 + extr x17,x14,x17,#63 + stp x19,x20,[x2,#8*0] + adcs x23,x10,x17 + extr x14,x15,x14,#63 + stp x21,x22,[x2,#8*2] + adcs x24,x11,x14 + ldp x17,x14,[x2,#8*7] + extr x15,x16,x15,#63 + adcs x25,x12,x15 + extr x16,x17,x16,#63 + adcs x26,x13,x16 + ldp x15,x16,[x2,#8*9] + mul x6,x7,x7 + ldp x11,x13,[x1],#8*2 + umulh x7,x7,x7 + mul x8,x9,x9 + umulh x9,x9,x9 + stp x23,x24,[x2,#8*4] + extr x17,x14,x17,#63 + stp x25,x26,[x2,#8*6] + add x2,x2,#8*8 + adcs x19,x6,x17 + extr x14,x15,x14,#63 + adcs x20,x7,x14 + ldp x17,x14,[x2,#8*3] + extr x15,x16,x15,#63 + cbnz x27,.Lsqr4x_shift_n_add + ldp x1,x4,[x29,#104] // pull np and n0 + + adcs x21,x8,x15 + extr x16,x17,x16,#63 + adcs x22,x9,x16 + ldp x15,x16,[x2,#8*5] + mul x10,x11,x11 + umulh x11,x11,x11 + stp x19,x20,[x2,#8*0] + mul x12,x13,x13 + umulh x13,x13,x13 + stp x21,x22,[x2,#8*2] + extr x17,x14,x17,#63 + adcs x23,x10,x17 + extr x14,x15,x14,#63 + ldp x19,x20,[sp,#8*0] + adcs x24,x11,x14 + extr x15,x16,x15,#63 + ldp x6,x7,[x1,#8*0] + adcs x25,x12,x15 + extr x16,xzr,x16,#63 + ldp x8,x9,[x1,#8*2] + adc x26,x13,x16 + ldp x10,x11,[x1,#8*4] + + // Reduce by 512 bits per iteration + mul x28,x4,x19 // t[0]*n0 + ldp x12,x13,[x1,#8*6] + add x3,x1,x5 + ldp x21,x22,[sp,#8*2] + stp x23,x24,[x2,#8*4] + ldp x23,x24,[sp,#8*4] + stp x25,x26,[x2,#8*6] + ldp x25,x26,[sp,#8*6] + add x1,x1,#8*8 + mov x30,xzr // initial top-most carry + mov x2,sp + mov x27,#8 + +.Lsqr8x_reduction: + // (*) mul x14,x6,x28 // lo(n[0-7])*lo(t[0]*n0) + mul x15,x7,x28 + sub x27,x27,#1 + mul x16,x8,x28 + str x28,[x2],#8 // put aside t[0]*n0 for tail processing + mul x17,x9,x28 + // (*) adds xzr,x19,x14 + subs xzr,x19,#1 // (*) + mul x14,x10,x28 + adcs x19,x20,x15 + mul x15,x11,x28 + adcs x20,x21,x16 + mul x16,x12,x28 + adcs x21,x22,x17 + mul x17,x13,x28 + adcs x22,x23,x14 + umulh x14,x6,x28 // hi(n[0-7])*lo(t[0]*n0) + adcs x23,x24,x15 + umulh x15,x7,x28 + adcs x24,x25,x16 + umulh x16,x8,x28 + adcs x25,x26,x17 + umulh x17,x9,x28 + adc x26,xzr,xzr + adds x19,x19,x14 + umulh x14,x10,x28 + adcs x20,x20,x15 + umulh x15,x11,x28 + adcs x21,x21,x16 + umulh x16,x12,x28 + adcs x22,x22,x17 + umulh x17,x13,x28 + mul x28,x4,x19 // next t[0]*n0 + adcs x23,x23,x14 + adcs x24,x24,x15 + adcs x25,x25,x16 + adc x26,x26,x17 + cbnz x27,.Lsqr8x_reduction + + ldp x14,x15,[x2,#8*0] + ldp x16,x17,[x2,#8*2] + mov x0,x2 + sub x27,x3,x1 // done yet? + adds x19,x19,x14 + adcs x20,x20,x15 + ldp x14,x15,[x2,#8*4] + adcs x21,x21,x16 + adcs x22,x22,x17 + ldp x16,x17,[x2,#8*6] + adcs x23,x23,x14 + adcs x24,x24,x15 + adcs x25,x25,x16 + adcs x26,x26,x17 + //adc x28,xzr,xzr // moved below + cbz x27,.Lsqr8x8_post_condition + + ldr x4,[x2,#-8*8] + ldp x6,x7,[x1,#8*0] + ldp x8,x9,[x1,#8*2] + ldp x10,x11,[x1,#8*4] + mov x27,#-8*8 + ldp x12,x13,[x1,#8*6] + add x1,x1,#8*8 + +.Lsqr8x_tail: + mul x14,x6,x4 + adc x28,xzr,xzr // carry bit, modulo-scheduled + mul x15,x7,x4 + add x27,x27,#8 + mul x16,x8,x4 + mul x17,x9,x4 + adds x19,x19,x14 + mul x14,x10,x4 + adcs x20,x20,x15 + mul x15,x11,x4 + adcs x21,x21,x16 + mul x16,x12,x4 + adcs x22,x22,x17 + mul x17,x13,x4 + adcs x23,x23,x14 + umulh x14,x6,x4 + adcs x24,x24,x15 + umulh x15,x7,x4 + adcs x25,x25,x16 + umulh x16,x8,x4 + adcs x26,x26,x17 + umulh x17,x9,x4 + adc x28,x28,xzr + str x19,[x2],#8 + adds x19,x20,x14 + umulh x14,x10,x4 + adcs x20,x21,x15 + umulh x15,x11,x4 + adcs x21,x22,x16 + umulh x16,x12,x4 + adcs x22,x23,x17 + umulh x17,x13,x4 + ldr x4,[x0,x27] + adcs x23,x24,x14 + adcs x24,x25,x15 + adcs x25,x26,x16 + adcs x26,x28,x17 + //adc x28,xzr,xzr // moved above + cbnz x27,.Lsqr8x_tail + // note that carry flag is guaranteed + // to be zero at this point + ldp x6,x7,[x2,#8*0] + sub x27,x3,x1 // done yet? + sub x16,x3,x5 // rewinded np + ldp x8,x9,[x2,#8*2] + ldp x10,x11,[x2,#8*4] + ldp x12,x13,[x2,#8*6] + cbz x27,.Lsqr8x_tail_break + + ldr x4,[x0,#-8*8] + adds x19,x19,x6 + adcs x20,x20,x7 + ldp x6,x7,[x1,#8*0] + adcs x21,x21,x8 + adcs x22,x22,x9 + ldp x8,x9,[x1,#8*2] + adcs x23,x23,x10 + adcs x24,x24,x11 + ldp x10,x11,[x1,#8*4] + adcs x25,x25,x12 + mov x27,#-8*8 + adcs x26,x26,x13 + ldp x12,x13,[x1,#8*6] + add x1,x1,#8*8 + //adc x28,xzr,xzr // moved above + b .Lsqr8x_tail + +.align 4 +.Lsqr8x_tail_break: + ldr x4,[x29,#112] // pull n0 + add x27,x2,#8*8 // end of current t[num] window + + subs xzr,x30,#1 // "move" top-most carry to carry bit + adcs x14,x19,x6 + adcs x15,x20,x7 + ldp x19,x20,[x0,#8*0] + adcs x21,x21,x8 + ldp x6,x7,[x16,#8*0] // recall that x16 is &n[0] + adcs x22,x22,x9 + ldp x8,x9,[x16,#8*2] + adcs x23,x23,x10 + adcs x24,x24,x11 + ldp x10,x11,[x16,#8*4] + adcs x25,x25,x12 + adcs x26,x26,x13 + ldp x12,x13,[x16,#8*6] + add x1,x16,#8*8 + adc x30,xzr,xzr // top-most carry + mul x28,x4,x19 + stp x14,x15,[x2,#8*0] + stp x21,x22,[x2,#8*2] + ldp x21,x22,[x0,#8*2] + stp x23,x24,[x2,#8*4] + ldp x23,x24,[x0,#8*4] + cmp x27,x29 // did we hit the bottom? + stp x25,x26,[x2,#8*6] + mov x2,x0 // slide the window + ldp x25,x26,[x0,#8*6] + mov x27,#8 + b.ne .Lsqr8x_reduction + + // Final step. We see if result is larger than modulus, and + // if it is, subtract the modulus. But comparison implies + // subtraction. So we subtract modulus, see if it borrowed, + // and conditionally copy original value. + ldr x0,[x29,#96] // pull rp + add x2,x2,#8*8 + subs x14,x19,x6 + sbcs x15,x20,x7 + sub x27,x5,#8*8 + mov x3,x0 // x0 copy + +.Lsqr8x_sub: + sbcs x16,x21,x8 + ldp x6,x7,[x1,#8*0] + sbcs x17,x22,x9 + stp x14,x15,[x0,#8*0] + sbcs x14,x23,x10 + ldp x8,x9,[x1,#8*2] + sbcs x15,x24,x11 + stp x16,x17,[x0,#8*2] + sbcs x16,x25,x12 + ldp x10,x11,[x1,#8*4] + sbcs x17,x26,x13 + ldp x12,x13,[x1,#8*6] + add x1,x1,#8*8 + ldp x19,x20,[x2,#8*0] + sub x27,x27,#8*8 + ldp x21,x22,[x2,#8*2] + ldp x23,x24,[x2,#8*4] + ldp x25,x26,[x2,#8*6] + add x2,x2,#8*8 + stp x14,x15,[x0,#8*4] + sbcs x14,x19,x6 + stp x16,x17,[x0,#8*6] + add x0,x0,#8*8 + sbcs x15,x20,x7 + cbnz x27,.Lsqr8x_sub + + sbcs x16,x21,x8 + mov x2,sp + add x1,sp,x5 + ldp x6,x7,[x3,#8*0] + sbcs x17,x22,x9 + stp x14,x15,[x0,#8*0] + sbcs x14,x23,x10 + ldp x8,x9,[x3,#8*2] + sbcs x15,x24,x11 + stp x16,x17,[x0,#8*2] + sbcs x16,x25,x12 + ldp x19,x20,[x1,#8*0] + sbcs x17,x26,x13 + ldp x21,x22,[x1,#8*2] + sbcs xzr,x30,xzr // did it borrow? + ldr x30,[x29,#8] // pull return address + stp x14,x15,[x0,#8*4] + stp x16,x17,[x0,#8*6] + + sub x27,x5,#8*4 +.Lsqr4x_cond_copy: + sub x27,x27,#8*4 + csel x14,x19,x6,lo + stp xzr,xzr,[x2,#8*0] + csel x15,x20,x7,lo + ldp x6,x7,[x3,#8*4] + ldp x19,x20,[x1,#8*4] + csel x16,x21,x8,lo + stp xzr,xzr,[x2,#8*2] + add x2,x2,#8*4 + csel x17,x22,x9,lo + ldp x8,x9,[x3,#8*6] + ldp x21,x22,[x1,#8*6] + add x1,x1,#8*4 + stp x14,x15,[x3,#8*0] + stp x16,x17,[x3,#8*2] + add x3,x3,#8*4 + stp xzr,xzr,[x1,#8*0] + stp xzr,xzr,[x1,#8*2] + cbnz x27,.Lsqr4x_cond_copy + + csel x14,x19,x6,lo + stp xzr,xzr,[x2,#8*0] + csel x15,x20,x7,lo + stp xzr,xzr,[x2,#8*2] + csel x16,x21,x8,lo + csel x17,x22,x9,lo + stp x14,x15,[x3,#8*0] + stp x16,x17,[x3,#8*2] + + b .Lsqr8x_done + +.align 4 +.Lsqr8x8_post_condition: + adc x28,xzr,xzr + ldr x30,[x29,#8] // pull return address + // x19-7,x28 hold result, x6-7 hold modulus + subs x6,x19,x6 + ldr x1,[x29,#96] // pull rp + sbcs x7,x20,x7 + stp xzr,xzr,[sp,#8*0] + sbcs x8,x21,x8 + stp xzr,xzr,[sp,#8*2] + sbcs x9,x22,x9 + stp xzr,xzr,[sp,#8*4] + sbcs x10,x23,x10 + stp xzr,xzr,[sp,#8*6] + sbcs x11,x24,x11 + stp xzr,xzr,[sp,#8*8] + sbcs x12,x25,x12 + stp xzr,xzr,[sp,#8*10] + sbcs x13,x26,x13 + stp xzr,xzr,[sp,#8*12] + sbcs x28,x28,xzr // did it borrow? + stp xzr,xzr,[sp,#8*14] + + // x6-7 hold result-modulus + csel x6,x19,x6,lo + csel x7,x20,x7,lo + csel x8,x21,x8,lo + csel x9,x22,x9,lo + stp x6,x7,[x1,#8*0] + csel x10,x23,x10,lo + csel x11,x24,x11,lo + stp x8,x9,[x1,#8*2] + csel x12,x25,x12,lo + csel x13,x26,x13,lo + stp x10,x11,[x1,#8*4] + stp x12,x13,[x1,#8*6] + +.Lsqr8x_done: + ldp x19,x20,[x29,#16] + mov sp,x29 + ldp x21,x22,[x29,#32] + mov x0,#1 + ldp x23,x24,[x29,#48] + ldp x25,x26,[x29,#64] + ldp x27,x28,[x29,#80] + ldr x29,[sp],#128 +.inst 0xd50323bf // autiasp + ret +.size __bn_sqr8x_mont,.-__bn_sqr8x_mont +.type __bn_mul4x_mont,%function +.align 5 +__bn_mul4x_mont: +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-128]! + add x29,sp,#0 + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + stp x23,x24,[sp,#48] + stp x25,x26,[sp,#64] + stp x27,x28,[sp,#80] + + sub x26,sp,x5,lsl#3 + lsl x5,x5,#3 + ldr x4,[x4] // *n0 + sub sp,x26,#8*4 // alloca + + add x10,x2,x5 + add x27,x1,x5 + stp x0,x10,[x29,#96] // offload rp and &b[num] + + ldr x24,[x2,#8*0] // b[0] + ldp x6,x7,[x1,#8*0] // a[0..3] + ldp x8,x9,[x1,#8*2] + add x1,x1,#8*4 + mov x19,xzr + mov x20,xzr + mov x21,xzr + mov x22,xzr + ldp x14,x15,[x3,#8*0] // n[0..3] + ldp x16,x17,[x3,#8*2] + adds x3,x3,#8*4 // clear carry bit + mov x0,xzr + mov x28,#0 + mov x26,sp + +.Loop_mul4x_1st_reduction: + mul x10,x6,x24 // lo(a[0..3]*b[0]) + adc x0,x0,xzr // modulo-scheduled + mul x11,x7,x24 + add x28,x28,#8 + mul x12,x8,x24 + and x28,x28,#31 + mul x13,x9,x24 + adds x19,x19,x10 + umulh x10,x6,x24 // hi(a[0..3]*b[0]) + adcs x20,x20,x11 + mul x25,x19,x4 // t[0]*n0 + adcs x21,x21,x12 + umulh x11,x7,x24 + adcs x22,x22,x13 + umulh x12,x8,x24 + adc x23,xzr,xzr + umulh x13,x9,x24 + ldr x24,[x2,x28] // next b[i] (or b[0]) + adds x20,x20,x10 + // (*) mul x10,x14,x25 // lo(n[0..3]*t[0]*n0) + str x25,[x26],#8 // put aside t[0]*n0 for tail processing + adcs x21,x21,x11 + mul x11,x15,x25 + adcs x22,x22,x12 + mul x12,x16,x25 + adc x23,x23,x13 // can't overflow + mul x13,x17,x25 + // (*) adds xzr,x19,x10 + subs xzr,x19,#1 // (*) + umulh x10,x14,x25 // hi(n[0..3]*t[0]*n0) + adcs x19,x20,x11 + umulh x11,x15,x25 + adcs x20,x21,x12 + umulh x12,x16,x25 + adcs x21,x22,x13 + umulh x13,x17,x25 + adcs x22,x23,x0 + adc x0,xzr,xzr + adds x19,x19,x10 + sub x10,x27,x1 + adcs x20,x20,x11 + adcs x21,x21,x12 + adcs x22,x22,x13 + //adc x0,x0,xzr + cbnz x28,.Loop_mul4x_1st_reduction + + cbz x10,.Lmul4x4_post_condition + + ldp x6,x7,[x1,#8*0] // a[4..7] + ldp x8,x9,[x1,#8*2] + add x1,x1,#8*4 + ldr x25,[sp] // a[0]*n0 + ldp x14,x15,[x3,#8*0] // n[4..7] + ldp x16,x17,[x3,#8*2] + add x3,x3,#8*4 + +.Loop_mul4x_1st_tail: + mul x10,x6,x24 // lo(a[4..7]*b[i]) + adc x0,x0,xzr // modulo-scheduled + mul x11,x7,x24 + add x28,x28,#8 + mul x12,x8,x24 + and x28,x28,#31 + mul x13,x9,x24 + adds x19,x19,x10 + umulh x10,x6,x24 // hi(a[4..7]*b[i]) + adcs x20,x20,x11 + umulh x11,x7,x24 + adcs x21,x21,x12 + umulh x12,x8,x24 + adcs x22,x22,x13 + umulh x13,x9,x24 + adc x23,xzr,xzr + ldr x24,[x2,x28] // next b[i] (or b[0]) + adds x20,x20,x10 + mul x10,x14,x25 // lo(n[4..7]*a[0]*n0) + adcs x21,x21,x11 + mul x11,x15,x25 + adcs x22,x22,x12 + mul x12,x16,x25 + adc x23,x23,x13 // can't overflow + mul x13,x17,x25 + adds x19,x19,x10 + umulh x10,x14,x25 // hi(n[4..7]*a[0]*n0) + adcs x20,x20,x11 + umulh x11,x15,x25 + adcs x21,x21,x12 + umulh x12,x16,x25 + adcs x22,x22,x13 + adcs x23,x23,x0 + umulh x13,x17,x25 + adc x0,xzr,xzr + ldr x25,[sp,x28] // next t[0]*n0 + str x19,[x26],#8 // result!!! + adds x19,x20,x10 + sub x10,x27,x1 // done yet? + adcs x20,x21,x11 + adcs x21,x22,x12 + adcs x22,x23,x13 + //adc x0,x0,xzr + cbnz x28,.Loop_mul4x_1st_tail + + sub x11,x27,x5 // rewinded x1 + cbz x10,.Lmul4x_proceed + + ldp x6,x7,[x1,#8*0] + ldp x8,x9,[x1,#8*2] + add x1,x1,#8*4 + ldp x14,x15,[x3,#8*0] + ldp x16,x17,[x3,#8*2] + add x3,x3,#8*4 + b .Loop_mul4x_1st_tail + +.align 5 +.Lmul4x_proceed: + ldr x24,[x2,#8*4]! // *++b + adc x30,x0,xzr + ldp x6,x7,[x11,#8*0] // a[0..3] + sub x3,x3,x5 // rewind np + ldp x8,x9,[x11,#8*2] + add x1,x11,#8*4 + + stp x19,x20,[x26,#8*0] // result!!! + ldp x19,x20,[sp,#8*4] // t[0..3] + stp x21,x22,[x26,#8*2] // result!!! + ldp x21,x22,[sp,#8*6] + + ldp x14,x15,[x3,#8*0] // n[0..3] + mov x26,sp + ldp x16,x17,[x3,#8*2] + adds x3,x3,#8*4 // clear carry bit + mov x0,xzr + +.align 4 +.Loop_mul4x_reduction: + mul x10,x6,x24 // lo(a[0..3]*b[4]) + adc x0,x0,xzr // modulo-scheduled + mul x11,x7,x24 + add x28,x28,#8 + mul x12,x8,x24 + and x28,x28,#31 + mul x13,x9,x24 + adds x19,x19,x10 + umulh x10,x6,x24 // hi(a[0..3]*b[4]) + adcs x20,x20,x11 + mul x25,x19,x4 // t[0]*n0 + adcs x21,x21,x12 + umulh x11,x7,x24 + adcs x22,x22,x13 + umulh x12,x8,x24 + adc x23,xzr,xzr + umulh x13,x9,x24 + ldr x24,[x2,x28] // next b[i] + adds x20,x20,x10 + // (*) mul x10,x14,x25 + str x25,[x26],#8 // put aside t[0]*n0 for tail processing + adcs x21,x21,x11 + mul x11,x15,x25 // lo(n[0..3]*t[0]*n0 + adcs x22,x22,x12 + mul x12,x16,x25 + adc x23,x23,x13 // can't overflow + mul x13,x17,x25 + // (*) adds xzr,x19,x10 + subs xzr,x19,#1 // (*) + umulh x10,x14,x25 // hi(n[0..3]*t[0]*n0 + adcs x19,x20,x11 + umulh x11,x15,x25 + adcs x20,x21,x12 + umulh x12,x16,x25 + adcs x21,x22,x13 + umulh x13,x17,x25 + adcs x22,x23,x0 + adc x0,xzr,xzr + adds x19,x19,x10 + adcs x20,x20,x11 + adcs x21,x21,x12 + adcs x22,x22,x13 + //adc x0,x0,xzr + cbnz x28,.Loop_mul4x_reduction + + adc x0,x0,xzr + ldp x10,x11,[x26,#8*4] // t[4..7] + ldp x12,x13,[x26,#8*6] + ldp x6,x7,[x1,#8*0] // a[4..7] + ldp x8,x9,[x1,#8*2] + add x1,x1,#8*4 + adds x19,x19,x10 + adcs x20,x20,x11 + adcs x21,x21,x12 + adcs x22,x22,x13 + //adc x0,x0,xzr + + ldr x25,[sp] // t[0]*n0 + ldp x14,x15,[x3,#8*0] // n[4..7] + ldp x16,x17,[x3,#8*2] + add x3,x3,#8*4 + +.align 4 +.Loop_mul4x_tail: + mul x10,x6,x24 // lo(a[4..7]*b[4]) + adc x0,x0,xzr // modulo-scheduled + mul x11,x7,x24 + add x28,x28,#8 + mul x12,x8,x24 + and x28,x28,#31 + mul x13,x9,x24 + adds x19,x19,x10 + umulh x10,x6,x24 // hi(a[4..7]*b[4]) + adcs x20,x20,x11 + umulh x11,x7,x24 + adcs x21,x21,x12 + umulh x12,x8,x24 + adcs x22,x22,x13 + umulh x13,x9,x24 + adc x23,xzr,xzr + ldr x24,[x2,x28] // next b[i] + adds x20,x20,x10 + mul x10,x14,x25 // lo(n[4..7]*t[0]*n0) + adcs x21,x21,x11 + mul x11,x15,x25 + adcs x22,x22,x12 + mul x12,x16,x25 + adc x23,x23,x13 // can't overflow + mul x13,x17,x25 + adds x19,x19,x10 + umulh x10,x14,x25 // hi(n[4..7]*t[0]*n0) + adcs x20,x20,x11 + umulh x11,x15,x25 + adcs x21,x21,x12 + umulh x12,x16,x25 + adcs x22,x22,x13 + umulh x13,x17,x25 + adcs x23,x23,x0 + ldr x25,[sp,x28] // next a[0]*n0 + adc x0,xzr,xzr + str x19,[x26],#8 // result!!! + adds x19,x20,x10 + sub x10,x27,x1 // done yet? + adcs x20,x21,x11 + adcs x21,x22,x12 + adcs x22,x23,x13 + //adc x0,x0,xzr + cbnz x28,.Loop_mul4x_tail + + sub x11,x3,x5 // rewinded np? + adc x0,x0,xzr + cbz x10,.Loop_mul4x_break + + ldp x10,x11,[x26,#8*4] + ldp x12,x13,[x26,#8*6] + ldp x6,x7,[x1,#8*0] + ldp x8,x9,[x1,#8*2] + add x1,x1,#8*4 + adds x19,x19,x10 + adcs x20,x20,x11 + adcs x21,x21,x12 + adcs x22,x22,x13 + //adc x0,x0,xzr + ldp x14,x15,[x3,#8*0] + ldp x16,x17,[x3,#8*2] + add x3,x3,#8*4 + b .Loop_mul4x_tail + +.align 4 +.Loop_mul4x_break: + ldp x12,x13,[x29,#96] // pull rp and &b[num] + adds x19,x19,x30 + add x2,x2,#8*4 // bp++ + adcs x20,x20,xzr + sub x1,x1,x5 // rewind ap + adcs x21,x21,xzr + stp x19,x20,[x26,#8*0] // result!!! + adcs x22,x22,xzr + ldp x19,x20,[sp,#8*4] // t[0..3] + adc x30,x0,xzr + stp x21,x22,[x26,#8*2] // result!!! + cmp x2,x13 // done yet? + ldp x21,x22,[sp,#8*6] + ldp x14,x15,[x11,#8*0] // n[0..3] + ldp x16,x17,[x11,#8*2] + add x3,x11,#8*4 + b.eq .Lmul4x_post + + ldr x24,[x2] + ldp x6,x7,[x1,#8*0] // a[0..3] + ldp x8,x9,[x1,#8*2] + adds x1,x1,#8*4 // clear carry bit + mov x0,xzr + mov x26,sp + b .Loop_mul4x_reduction + +.align 4 +.Lmul4x_post: + // Final step. We see if result is larger than modulus, and + // if it is, subtract the modulus. But comparison implies + // subtraction. So we subtract modulus, see if it borrowed, + // and conditionally copy original value. + mov x0,x12 + mov x27,x12 // x0 copy + subs x10,x19,x14 + add x26,sp,#8*8 + sbcs x11,x20,x15 + sub x28,x5,#8*4 + +.Lmul4x_sub: + sbcs x12,x21,x16 + ldp x14,x15,[x3,#8*0] + sub x28,x28,#8*4 + ldp x19,x20,[x26,#8*0] + sbcs x13,x22,x17 + ldp x16,x17,[x3,#8*2] + add x3,x3,#8*4 + ldp x21,x22,[x26,#8*2] + add x26,x26,#8*4 + stp x10,x11,[x0,#8*0] + sbcs x10,x19,x14 + stp x12,x13,[x0,#8*2] + add x0,x0,#8*4 + sbcs x11,x20,x15 + cbnz x28,.Lmul4x_sub + + sbcs x12,x21,x16 + mov x26,sp + add x1,sp,#8*4 + ldp x6,x7,[x27,#8*0] + sbcs x13,x22,x17 + stp x10,x11,[x0,#8*0] + ldp x8,x9,[x27,#8*2] + stp x12,x13,[x0,#8*2] + ldp x19,x20,[x1,#8*0] + ldp x21,x22,[x1,#8*2] + sbcs xzr,x30,xzr // did it borrow? + ldr x30,[x29,#8] // pull return address + + sub x28,x5,#8*4 +.Lmul4x_cond_copy: + sub x28,x28,#8*4 + csel x10,x19,x6,lo + stp xzr,xzr,[x26,#8*0] + csel x11,x20,x7,lo + ldp x6,x7,[x27,#8*4] + ldp x19,x20,[x1,#8*4] + csel x12,x21,x8,lo + stp xzr,xzr,[x26,#8*2] + add x26,x26,#8*4 + csel x13,x22,x9,lo + ldp x8,x9,[x27,#8*6] + ldp x21,x22,[x1,#8*6] + add x1,x1,#8*4 + stp x10,x11,[x27,#8*0] + stp x12,x13,[x27,#8*2] + add x27,x27,#8*4 + cbnz x28,.Lmul4x_cond_copy + + csel x10,x19,x6,lo + stp xzr,xzr,[x26,#8*0] + csel x11,x20,x7,lo + stp xzr,xzr,[x26,#8*2] + csel x12,x21,x8,lo + stp xzr,xzr,[x26,#8*3] + csel x13,x22,x9,lo + stp xzr,xzr,[x26,#8*4] + stp x10,x11,[x27,#8*0] + stp x12,x13,[x27,#8*2] + + b .Lmul4x_done + +.align 4 +.Lmul4x4_post_condition: + adc x0,x0,xzr + ldr x1,[x29,#96] // pull rp + // x19-3,x0 hold result, x14-7 hold modulus + subs x6,x19,x14 + ldr x30,[x29,#8] // pull return address + sbcs x7,x20,x15 + stp xzr,xzr,[sp,#8*0] + sbcs x8,x21,x16 + stp xzr,xzr,[sp,#8*2] + sbcs x9,x22,x17 + stp xzr,xzr,[sp,#8*4] + sbcs xzr,x0,xzr // did it borrow? + stp xzr,xzr,[sp,#8*6] + + // x6-3 hold result-modulus + csel x6,x19,x6,lo + csel x7,x20,x7,lo + csel x8,x21,x8,lo + csel x9,x22,x9,lo + stp x6,x7,[x1,#8*0] + stp x8,x9,[x1,#8*2] + +.Lmul4x_done: + ldp x19,x20,[x29,#16] + mov sp,x29 + ldp x21,x22,[x29,#32] + mov x0,#1 + ldp x23,x24,[x29,#48] + ldp x25,x26,[x29,#64] + ldp x27,x28,[x29,#80] + ldr x29,[sp],#128 +.inst 0xd50323bf // autiasp + ret +.size __bn_mul4x_mont,.-__bn_mul4x_mont +.byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 2 +.align 4 diff --git a/vere/ext/openssl/gen/linux-aarch64/crypto/chacha/chacha-armv8.S b/vere/ext/openssl/gen/linux-aarch64/crypto/chacha/chacha-armv8.S new file mode 100644 index 0000000..f4676cb --- /dev/null +++ b/vere/ext/openssl/gen/linux-aarch64/crypto/chacha/chacha-armv8.S @@ -0,0 +1,1977 @@ +#include "arm_arch.h" + +.text + + +.hidden OPENSSL_armcap_P + +.align 5 +.Lsigma: +.quad 0x3320646e61707865,0x6b20657479622d32 // endian-neutral +.Lone: +.long 1,0,0,0 +.LOPENSSL_armcap_P: +#ifdef __ILP32__ +.long OPENSSL_armcap_P-. +#else +.quad OPENSSL_armcap_P-. +#endif +.byte 67,104,97,67,104,97,50,48,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 2 + +.globl ChaCha20_ctr32 +.type ChaCha20_ctr32,%function +.align 5 +ChaCha20_ctr32: + cbz x2,.Labort + adr x5,.LOPENSSL_armcap_P + cmp x2,#192 + b.lo .Lshort +#ifdef __ILP32__ + ldrsw x6,[x5] +#else + ldr x6,[x5] +#endif + ldr w17,[x6,x5] + tst w17,#ARMV7_NEON + b.ne ChaCha20_neon + +.Lshort: +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-96]! + add x29,sp,#0 + + adr x5,.Lsigma + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + stp x23,x24,[sp,#48] + stp x25,x26,[sp,#64] + stp x27,x28,[sp,#80] + sub sp,sp,#64 + + ldp x22,x23,[x5] // load sigma + ldp x24,x25,[x3] // load key + ldp x26,x27,[x3,#16] + ldp x28,x30,[x4] // load counter +#ifdef __ARMEB__ + ror x24,x24,#32 + ror x25,x25,#32 + ror x26,x26,#32 + ror x27,x27,#32 + ror x28,x28,#32 + ror x30,x30,#32 +#endif + +.Loop_outer: + mov w5,w22 // unpack key block + lsr x6,x22,#32 + mov w7,w23 + lsr x8,x23,#32 + mov w9,w24 + lsr x10,x24,#32 + mov w11,w25 + lsr x12,x25,#32 + mov w13,w26 + lsr x14,x26,#32 + mov w15,w27 + lsr x16,x27,#32 + mov w17,w28 + lsr x19,x28,#32 + mov w20,w30 + lsr x21,x30,#32 + + mov x4,#10 + subs x2,x2,#64 +.Loop: + sub x4,x4,#1 + add w5,w5,w9 + add w6,w6,w10 + add w7,w7,w11 + add w8,w8,w12 + eor w17,w17,w5 + eor w19,w19,w6 + eor w20,w20,w7 + eor w21,w21,w8 + ror w17,w17,#16 + ror w19,w19,#16 + ror w20,w20,#16 + ror w21,w21,#16 + add w13,w13,w17 + add w14,w14,w19 + add w15,w15,w20 + add w16,w16,w21 + eor w9,w9,w13 + eor w10,w10,w14 + eor w11,w11,w15 + eor w12,w12,w16 + ror w9,w9,#20 + ror w10,w10,#20 + ror w11,w11,#20 + ror w12,w12,#20 + add w5,w5,w9 + add w6,w6,w10 + add w7,w7,w11 + add w8,w8,w12 + eor w17,w17,w5 + eor w19,w19,w6 + eor w20,w20,w7 + eor w21,w21,w8 + ror w17,w17,#24 + ror w19,w19,#24 + ror w20,w20,#24 + ror w21,w21,#24 + add w13,w13,w17 + add w14,w14,w19 + add w15,w15,w20 + add w16,w16,w21 + eor w9,w9,w13 + eor w10,w10,w14 + eor w11,w11,w15 + eor w12,w12,w16 + ror w9,w9,#25 + ror w10,w10,#25 + ror w11,w11,#25 + ror w12,w12,#25 + add w5,w5,w10 + add w6,w6,w11 + add w7,w7,w12 + add w8,w8,w9 + eor w21,w21,w5 + eor w17,w17,w6 + eor w19,w19,w7 + eor w20,w20,w8 + ror w21,w21,#16 + ror w17,w17,#16 + ror w19,w19,#16 + ror w20,w20,#16 + add w15,w15,w21 + add w16,w16,w17 + add w13,w13,w19 + add w14,w14,w20 + eor w10,w10,w15 + eor w11,w11,w16 + eor w12,w12,w13 + eor w9,w9,w14 + ror w10,w10,#20 + ror w11,w11,#20 + ror w12,w12,#20 + ror w9,w9,#20 + add w5,w5,w10 + add w6,w6,w11 + add w7,w7,w12 + add w8,w8,w9 + eor w21,w21,w5 + eor w17,w17,w6 + eor w19,w19,w7 + eor w20,w20,w8 + ror w21,w21,#24 + ror w17,w17,#24 + ror w19,w19,#24 + ror w20,w20,#24 + add w15,w15,w21 + add w16,w16,w17 + add w13,w13,w19 + add w14,w14,w20 + eor w10,w10,w15 + eor w11,w11,w16 + eor w12,w12,w13 + eor w9,w9,w14 + ror w10,w10,#25 + ror w11,w11,#25 + ror w12,w12,#25 + ror w9,w9,#25 + cbnz x4,.Loop + + add w5,w5,w22 // accumulate key block + add x6,x6,x22,lsr#32 + add w7,w7,w23 + add x8,x8,x23,lsr#32 + add w9,w9,w24 + add x10,x10,x24,lsr#32 + add w11,w11,w25 + add x12,x12,x25,lsr#32 + add w13,w13,w26 + add x14,x14,x26,lsr#32 + add w15,w15,w27 + add x16,x16,x27,lsr#32 + add w17,w17,w28 + add x19,x19,x28,lsr#32 + add w20,w20,w30 + add x21,x21,x30,lsr#32 + + b.lo .Ltail + + add x5,x5,x6,lsl#32 // pack + add x7,x7,x8,lsl#32 + ldp x6,x8,[x1,#0] // load input + add x9,x9,x10,lsl#32 + add x11,x11,x12,lsl#32 + ldp x10,x12,[x1,#16] + add x13,x13,x14,lsl#32 + add x15,x15,x16,lsl#32 + ldp x14,x16,[x1,#32] + add x17,x17,x19,lsl#32 + add x20,x20,x21,lsl#32 + ldp x19,x21,[x1,#48] + add x1,x1,#64 +#ifdef __ARMEB__ + rev x5,x5 + rev x7,x7 + rev x9,x9 + rev x11,x11 + rev x13,x13 + rev x15,x15 + rev x17,x17 + rev x20,x20 +#endif + eor x5,x5,x6 + eor x7,x7,x8 + eor x9,x9,x10 + eor x11,x11,x12 + eor x13,x13,x14 + eor x15,x15,x16 + eor x17,x17,x19 + eor x20,x20,x21 + + stp x5,x7,[x0,#0] // store output + add x28,x28,#1 // increment counter + stp x9,x11,[x0,#16] + stp x13,x15,[x0,#32] + stp x17,x20,[x0,#48] + add x0,x0,#64 + + b.hi .Loop_outer + + ldp x19,x20,[x29,#16] + add sp,sp,#64 + ldp x21,x22,[x29,#32] + ldp x23,x24,[x29,#48] + ldp x25,x26,[x29,#64] + ldp x27,x28,[x29,#80] + ldp x29,x30,[sp],#96 +.inst 0xd50323bf // autiasp +.Labort: + ret + +.align 4 +.Ltail: + add x2,x2,#64 +.Less_than_64: + sub x0,x0,#1 + add x1,x1,x2 + add x0,x0,x2 + add x4,sp,x2 + neg x2,x2 + + add x5,x5,x6,lsl#32 // pack + add x7,x7,x8,lsl#32 + add x9,x9,x10,lsl#32 + add x11,x11,x12,lsl#32 + add x13,x13,x14,lsl#32 + add x15,x15,x16,lsl#32 + add x17,x17,x19,lsl#32 + add x20,x20,x21,lsl#32 +#ifdef __ARMEB__ + rev x5,x5 + rev x7,x7 + rev x9,x9 + rev x11,x11 + rev x13,x13 + rev x15,x15 + rev x17,x17 + rev x20,x20 +#endif + stp x5,x7,[sp,#0] + stp x9,x11,[sp,#16] + stp x13,x15,[sp,#32] + stp x17,x20,[sp,#48] + +.Loop_tail: + ldrb w10,[x1,x2] + ldrb w11,[x4,x2] + add x2,x2,#1 + eor w10,w10,w11 + strb w10,[x0,x2] + cbnz x2,.Loop_tail + + stp xzr,xzr,[sp,#0] + stp xzr,xzr,[sp,#16] + stp xzr,xzr,[sp,#32] + stp xzr,xzr,[sp,#48] + + ldp x19,x20,[x29,#16] + add sp,sp,#64 + ldp x21,x22,[x29,#32] + ldp x23,x24,[x29,#48] + ldp x25,x26,[x29,#64] + ldp x27,x28,[x29,#80] + ldp x29,x30,[sp],#96 +.inst 0xd50323bf // autiasp + ret +.size ChaCha20_ctr32,.-ChaCha20_ctr32 + +.type ChaCha20_neon,%function +.align 5 +ChaCha20_neon: +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-96]! + add x29,sp,#0 + + adr x5,.Lsigma + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + stp x23,x24,[sp,#48] + stp x25,x26,[sp,#64] + stp x27,x28,[sp,#80] + cmp x2,#512 + b.hs .L512_or_more_neon + + sub sp,sp,#64 + + ldp x22,x23,[x5] // load sigma + ld1 {v24.4s},[x5],#16 + ldp x24,x25,[x3] // load key + ldp x26,x27,[x3,#16] + ld1 {v25.4s,v26.4s},[x3] + ldp x28,x30,[x4] // load counter + ld1 {v27.4s},[x4] + ld1 {v31.4s},[x5] +#ifdef __ARMEB__ + rev64 v24.4s,v24.4s + ror x24,x24,#32 + ror x25,x25,#32 + ror x26,x26,#32 + ror x27,x27,#32 + ror x28,x28,#32 + ror x30,x30,#32 +#endif + add v27.4s,v27.4s,v31.4s // += 1 + add v28.4s,v27.4s,v31.4s + add v29.4s,v28.4s,v31.4s + shl v31.4s,v31.4s,#2 // 1 -> 4 + +.Loop_outer_neon: + mov w5,w22 // unpack key block + lsr x6,x22,#32 + mov v0.16b,v24.16b + mov w7,w23 + lsr x8,x23,#32 + mov v4.16b,v24.16b + mov w9,w24 + lsr x10,x24,#32 + mov v16.16b,v24.16b + mov w11,w25 + mov v1.16b,v25.16b + lsr x12,x25,#32 + mov v5.16b,v25.16b + mov w13,w26 + mov v17.16b,v25.16b + lsr x14,x26,#32 + mov v3.16b,v27.16b + mov w15,w27 + mov v7.16b,v28.16b + lsr x16,x27,#32 + mov v19.16b,v29.16b + mov w17,w28 + mov v2.16b,v26.16b + lsr x19,x28,#32 + mov v6.16b,v26.16b + mov w20,w30 + mov v18.16b,v26.16b + lsr x21,x30,#32 + + mov x4,#10 + subs x2,x2,#256 +.Loop_neon: + sub x4,x4,#1 + add v0.4s,v0.4s,v1.4s + add w5,w5,w9 + add v4.4s,v4.4s,v5.4s + add w6,w6,w10 + add v16.4s,v16.4s,v17.4s + add w7,w7,w11 + eor v3.16b,v3.16b,v0.16b + add w8,w8,w12 + eor v7.16b,v7.16b,v4.16b + eor w17,w17,w5 + eor v19.16b,v19.16b,v16.16b + eor w19,w19,w6 + rev32 v3.8h,v3.8h + eor w20,w20,w7 + rev32 v7.8h,v7.8h + eor w21,w21,w8 + rev32 v19.8h,v19.8h + ror w17,w17,#16 + add v2.4s,v2.4s,v3.4s + ror w19,w19,#16 + add v6.4s,v6.4s,v7.4s + ror w20,w20,#16 + add v18.4s,v18.4s,v19.4s + ror w21,w21,#16 + eor v20.16b,v1.16b,v2.16b + add w13,w13,w17 + eor v21.16b,v5.16b,v6.16b + add w14,w14,w19 + eor v22.16b,v17.16b,v18.16b + add w15,w15,w20 + ushr v1.4s,v20.4s,#20 + add w16,w16,w21 + ushr v5.4s,v21.4s,#20 + eor w9,w9,w13 + ushr v17.4s,v22.4s,#20 + eor w10,w10,w14 + sli v1.4s,v20.4s,#12 + eor w11,w11,w15 + sli v5.4s,v21.4s,#12 + eor w12,w12,w16 + sli v17.4s,v22.4s,#12 + ror w9,w9,#20 + add v0.4s,v0.4s,v1.4s + ror w10,w10,#20 + add v4.4s,v4.4s,v5.4s + ror w11,w11,#20 + add v16.4s,v16.4s,v17.4s + ror w12,w12,#20 + eor v20.16b,v3.16b,v0.16b + add w5,w5,w9 + eor v21.16b,v7.16b,v4.16b + add w6,w6,w10 + eor v22.16b,v19.16b,v16.16b + add w7,w7,w11 + ushr v3.4s,v20.4s,#24 + add w8,w8,w12 + ushr v7.4s,v21.4s,#24 + eor w17,w17,w5 + ushr v19.4s,v22.4s,#24 + eor w19,w19,w6 + sli v3.4s,v20.4s,#8 + eor w20,w20,w7 + sli v7.4s,v21.4s,#8 + eor w21,w21,w8 + sli v19.4s,v22.4s,#8 + ror w17,w17,#24 + add v2.4s,v2.4s,v3.4s + ror w19,w19,#24 + add v6.4s,v6.4s,v7.4s + ror w20,w20,#24 + add v18.4s,v18.4s,v19.4s + ror w21,w21,#24 + eor v20.16b,v1.16b,v2.16b + add w13,w13,w17 + eor v21.16b,v5.16b,v6.16b + add w14,w14,w19 + eor v22.16b,v17.16b,v18.16b + add w15,w15,w20 + ushr v1.4s,v20.4s,#25 + add w16,w16,w21 + ushr v5.4s,v21.4s,#25 + eor w9,w9,w13 + ushr v17.4s,v22.4s,#25 + eor w10,w10,w14 + sli v1.4s,v20.4s,#7 + eor w11,w11,w15 + sli v5.4s,v21.4s,#7 + eor w12,w12,w16 + sli v17.4s,v22.4s,#7 + ror w9,w9,#25 + ext v2.16b,v2.16b,v2.16b,#8 + ror w10,w10,#25 + ext v6.16b,v6.16b,v6.16b,#8 + ror w11,w11,#25 + ext v18.16b,v18.16b,v18.16b,#8 + ror w12,w12,#25 + ext v3.16b,v3.16b,v3.16b,#12 + ext v7.16b,v7.16b,v7.16b,#12 + ext v19.16b,v19.16b,v19.16b,#12 + ext v1.16b,v1.16b,v1.16b,#4 + ext v5.16b,v5.16b,v5.16b,#4 + ext v17.16b,v17.16b,v17.16b,#4 + add v0.4s,v0.4s,v1.4s + add w5,w5,w10 + add v4.4s,v4.4s,v5.4s + add w6,w6,w11 + add v16.4s,v16.4s,v17.4s + add w7,w7,w12 + eor v3.16b,v3.16b,v0.16b + add w8,w8,w9 + eor v7.16b,v7.16b,v4.16b + eor w21,w21,w5 + eor v19.16b,v19.16b,v16.16b + eor w17,w17,w6 + rev32 v3.8h,v3.8h + eor w19,w19,w7 + rev32 v7.8h,v7.8h + eor w20,w20,w8 + rev32 v19.8h,v19.8h + ror w21,w21,#16 + add v2.4s,v2.4s,v3.4s + ror w17,w17,#16 + add v6.4s,v6.4s,v7.4s + ror w19,w19,#16 + add v18.4s,v18.4s,v19.4s + ror w20,w20,#16 + eor v20.16b,v1.16b,v2.16b + add w15,w15,w21 + eor v21.16b,v5.16b,v6.16b + add w16,w16,w17 + eor v22.16b,v17.16b,v18.16b + add w13,w13,w19 + ushr v1.4s,v20.4s,#20 + add w14,w14,w20 + ushr v5.4s,v21.4s,#20 + eor w10,w10,w15 + ushr v17.4s,v22.4s,#20 + eor w11,w11,w16 + sli v1.4s,v20.4s,#12 + eor w12,w12,w13 + sli v5.4s,v21.4s,#12 + eor w9,w9,w14 + sli v17.4s,v22.4s,#12 + ror w10,w10,#20 + add v0.4s,v0.4s,v1.4s + ror w11,w11,#20 + add v4.4s,v4.4s,v5.4s + ror w12,w12,#20 + add v16.4s,v16.4s,v17.4s + ror w9,w9,#20 + eor v20.16b,v3.16b,v0.16b + add w5,w5,w10 + eor v21.16b,v7.16b,v4.16b + add w6,w6,w11 + eor v22.16b,v19.16b,v16.16b + add w7,w7,w12 + ushr v3.4s,v20.4s,#24 + add w8,w8,w9 + ushr v7.4s,v21.4s,#24 + eor w21,w21,w5 + ushr v19.4s,v22.4s,#24 + eor w17,w17,w6 + sli v3.4s,v20.4s,#8 + eor w19,w19,w7 + sli v7.4s,v21.4s,#8 + eor w20,w20,w8 + sli v19.4s,v22.4s,#8 + ror w21,w21,#24 + add v2.4s,v2.4s,v3.4s + ror w17,w17,#24 + add v6.4s,v6.4s,v7.4s + ror w19,w19,#24 + add v18.4s,v18.4s,v19.4s + ror w20,w20,#24 + eor v20.16b,v1.16b,v2.16b + add w15,w15,w21 + eor v21.16b,v5.16b,v6.16b + add w16,w16,w17 + eor v22.16b,v17.16b,v18.16b + add w13,w13,w19 + ushr v1.4s,v20.4s,#25 + add w14,w14,w20 + ushr v5.4s,v21.4s,#25 + eor w10,w10,w15 + ushr v17.4s,v22.4s,#25 + eor w11,w11,w16 + sli v1.4s,v20.4s,#7 + eor w12,w12,w13 + sli v5.4s,v21.4s,#7 + eor w9,w9,w14 + sli v17.4s,v22.4s,#7 + ror w10,w10,#25 + ext v2.16b,v2.16b,v2.16b,#8 + ror w11,w11,#25 + ext v6.16b,v6.16b,v6.16b,#8 + ror w12,w12,#25 + ext v18.16b,v18.16b,v18.16b,#8 + ror w9,w9,#25 + ext v3.16b,v3.16b,v3.16b,#4 + ext v7.16b,v7.16b,v7.16b,#4 + ext v19.16b,v19.16b,v19.16b,#4 + ext v1.16b,v1.16b,v1.16b,#12 + ext v5.16b,v5.16b,v5.16b,#12 + ext v17.16b,v17.16b,v17.16b,#12 + cbnz x4,.Loop_neon + + add w5,w5,w22 // accumulate key block + add v0.4s,v0.4s,v24.4s + add x6,x6,x22,lsr#32 + add v4.4s,v4.4s,v24.4s + add w7,w7,w23 + add v16.4s,v16.4s,v24.4s + add x8,x8,x23,lsr#32 + add v2.4s,v2.4s,v26.4s + add w9,w9,w24 + add v6.4s,v6.4s,v26.4s + add x10,x10,x24,lsr#32 + add v18.4s,v18.4s,v26.4s + add w11,w11,w25 + add v3.4s,v3.4s,v27.4s + add x12,x12,x25,lsr#32 + add w13,w13,w26 + add v7.4s,v7.4s,v28.4s + add x14,x14,x26,lsr#32 + add w15,w15,w27 + add v19.4s,v19.4s,v29.4s + add x16,x16,x27,lsr#32 + add w17,w17,w28 + add v1.4s,v1.4s,v25.4s + add x19,x19,x28,lsr#32 + add w20,w20,w30 + add v5.4s,v5.4s,v25.4s + add x21,x21,x30,lsr#32 + add v17.4s,v17.4s,v25.4s + + b.lo .Ltail_neon + + add x5,x5,x6,lsl#32 // pack + add x7,x7,x8,lsl#32 + ldp x6,x8,[x1,#0] // load input + add x9,x9,x10,lsl#32 + add x11,x11,x12,lsl#32 + ldp x10,x12,[x1,#16] + add x13,x13,x14,lsl#32 + add x15,x15,x16,lsl#32 + ldp x14,x16,[x1,#32] + add x17,x17,x19,lsl#32 + add x20,x20,x21,lsl#32 + ldp x19,x21,[x1,#48] + add x1,x1,#64 +#ifdef __ARMEB__ + rev x5,x5 + rev x7,x7 + rev x9,x9 + rev x11,x11 + rev x13,x13 + rev x15,x15 + rev x17,x17 + rev x20,x20 +#endif + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x1],#64 + eor x5,x5,x6 + eor x7,x7,x8 + eor x9,x9,x10 + eor x11,x11,x12 + eor x13,x13,x14 + eor v0.16b,v0.16b,v20.16b + eor x15,x15,x16 + eor v1.16b,v1.16b,v21.16b + eor x17,x17,x19 + eor v2.16b,v2.16b,v22.16b + eor x20,x20,x21 + eor v3.16b,v3.16b,v23.16b + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x1],#64 + + stp x5,x7,[x0,#0] // store output + add x28,x28,#4 // increment counter + stp x9,x11,[x0,#16] + add v27.4s,v27.4s,v31.4s // += 4 + stp x13,x15,[x0,#32] + add v28.4s,v28.4s,v31.4s + stp x17,x20,[x0,#48] + add v29.4s,v29.4s,v31.4s + add x0,x0,#64 + + st1 {v0.16b,v1.16b,v2.16b,v3.16b},[x0],#64 + ld1 {v0.16b,v1.16b,v2.16b,v3.16b},[x1],#64 + + eor v4.16b,v4.16b,v20.16b + eor v5.16b,v5.16b,v21.16b + eor v6.16b,v6.16b,v22.16b + eor v7.16b,v7.16b,v23.16b + st1 {v4.16b,v5.16b,v6.16b,v7.16b},[x0],#64 + + eor v16.16b,v16.16b,v0.16b + eor v17.16b,v17.16b,v1.16b + eor v18.16b,v18.16b,v2.16b + eor v19.16b,v19.16b,v3.16b + st1 {v16.16b,v17.16b,v18.16b,v19.16b},[x0],#64 + + b.hi .Loop_outer_neon + + ldp x19,x20,[x29,#16] + add sp,sp,#64 + ldp x21,x22,[x29,#32] + ldp x23,x24,[x29,#48] + ldp x25,x26,[x29,#64] + ldp x27,x28,[x29,#80] + ldp x29,x30,[sp],#96 +.inst 0xd50323bf // autiasp + ret + +.Ltail_neon: + add x2,x2,#256 + cmp x2,#64 + b.lo .Less_than_64 + + add x5,x5,x6,lsl#32 // pack + add x7,x7,x8,lsl#32 + ldp x6,x8,[x1,#0] // load input + add x9,x9,x10,lsl#32 + add x11,x11,x12,lsl#32 + ldp x10,x12,[x1,#16] + add x13,x13,x14,lsl#32 + add x15,x15,x16,lsl#32 + ldp x14,x16,[x1,#32] + add x17,x17,x19,lsl#32 + add x20,x20,x21,lsl#32 + ldp x19,x21,[x1,#48] + add x1,x1,#64 +#ifdef __ARMEB__ + rev x5,x5 + rev x7,x7 + rev x9,x9 + rev x11,x11 + rev x13,x13 + rev x15,x15 + rev x17,x17 + rev x20,x20 +#endif + eor x5,x5,x6 + eor x7,x7,x8 + eor x9,x9,x10 + eor x11,x11,x12 + eor x13,x13,x14 + eor x15,x15,x16 + eor x17,x17,x19 + eor x20,x20,x21 + + stp x5,x7,[x0,#0] // store output + add x28,x28,#4 // increment counter + stp x9,x11,[x0,#16] + stp x13,x15,[x0,#32] + stp x17,x20,[x0,#48] + add x0,x0,#64 + b.eq .Ldone_neon + sub x2,x2,#64 + cmp x2,#64 + b.lo .Less_than_128 + + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x1],#64 + eor v0.16b,v0.16b,v20.16b + eor v1.16b,v1.16b,v21.16b + eor v2.16b,v2.16b,v22.16b + eor v3.16b,v3.16b,v23.16b + st1 {v0.16b,v1.16b,v2.16b,v3.16b},[x0],#64 + b.eq .Ldone_neon + sub x2,x2,#64 + cmp x2,#64 + b.lo .Less_than_192 + + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x1],#64 + eor v4.16b,v4.16b,v20.16b + eor v5.16b,v5.16b,v21.16b + eor v6.16b,v6.16b,v22.16b + eor v7.16b,v7.16b,v23.16b + st1 {v4.16b,v5.16b,v6.16b,v7.16b},[x0],#64 + b.eq .Ldone_neon + sub x2,x2,#64 + + st1 {v16.16b,v17.16b,v18.16b,v19.16b},[sp] + b .Last_neon + +.Less_than_128: + st1 {v0.16b,v1.16b,v2.16b,v3.16b},[sp] + b .Last_neon +.Less_than_192: + st1 {v4.16b,v5.16b,v6.16b,v7.16b},[sp] + b .Last_neon + +.align 4 +.Last_neon: + sub x0,x0,#1 + add x1,x1,x2 + add x0,x0,x2 + add x4,sp,x2 + neg x2,x2 + +.Loop_tail_neon: + ldrb w10,[x1,x2] + ldrb w11,[x4,x2] + add x2,x2,#1 + eor w10,w10,w11 + strb w10,[x0,x2] + cbnz x2,.Loop_tail_neon + + stp xzr,xzr,[sp,#0] + stp xzr,xzr,[sp,#16] + stp xzr,xzr,[sp,#32] + stp xzr,xzr,[sp,#48] + +.Ldone_neon: + ldp x19,x20,[x29,#16] + add sp,sp,#64 + ldp x21,x22,[x29,#32] + ldp x23,x24,[x29,#48] + ldp x25,x26,[x29,#64] + ldp x27,x28,[x29,#80] + ldp x29,x30,[sp],#96 +.inst 0xd50323bf // autiasp + ret +.size ChaCha20_neon,.-ChaCha20_neon +.type ChaCha20_512_neon,%function +.align 5 +ChaCha20_512_neon: +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-96]! + add x29,sp,#0 + + adr x5,.Lsigma + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + stp x23,x24,[sp,#48] + stp x25,x26,[sp,#64] + stp x27,x28,[sp,#80] + +.L512_or_more_neon: + sub sp,sp,#128+64 + + ldp x22,x23,[x5] // load sigma + ld1 {v24.4s},[x5],#16 + ldp x24,x25,[x3] // load key + ldp x26,x27,[x3,#16] + ld1 {v25.4s,v26.4s},[x3] + ldp x28,x30,[x4] // load counter + ld1 {v27.4s},[x4] + ld1 {v31.4s},[x5] +#ifdef __ARMEB__ + rev64 v24.4s,v24.4s + ror x24,x24,#32 + ror x25,x25,#32 + ror x26,x26,#32 + ror x27,x27,#32 + ror x28,x28,#32 + ror x30,x30,#32 +#endif + add v27.4s,v27.4s,v31.4s // += 1 + stp q24,q25,[sp,#0] // off-load key block, invariant part + add v27.4s,v27.4s,v31.4s // not typo + str q26,[sp,#32] + add v28.4s,v27.4s,v31.4s + add v29.4s,v28.4s,v31.4s + add v30.4s,v29.4s,v31.4s + shl v31.4s,v31.4s,#2 // 1 -> 4 + + stp d8,d9,[sp,#128+0] // meet ABI requirements + stp d10,d11,[sp,#128+16] + stp d12,d13,[sp,#128+32] + stp d14,d15,[sp,#128+48] + + sub x2,x2,#512 // not typo + +.Loop_outer_512_neon: + mov v0.16b,v24.16b + mov v4.16b,v24.16b + mov v8.16b,v24.16b + mov v12.16b,v24.16b + mov v16.16b,v24.16b + mov v20.16b,v24.16b + mov v1.16b,v25.16b + mov w5,w22 // unpack key block + mov v5.16b,v25.16b + lsr x6,x22,#32 + mov v9.16b,v25.16b + mov w7,w23 + mov v13.16b,v25.16b + lsr x8,x23,#32 + mov v17.16b,v25.16b + mov w9,w24 + mov v21.16b,v25.16b + lsr x10,x24,#32 + mov v3.16b,v27.16b + mov w11,w25 + mov v7.16b,v28.16b + lsr x12,x25,#32 + mov v11.16b,v29.16b + mov w13,w26 + mov v15.16b,v30.16b + lsr x14,x26,#32 + mov v2.16b,v26.16b + mov w15,w27 + mov v6.16b,v26.16b + lsr x16,x27,#32 + add v19.4s,v3.4s,v31.4s // +4 + mov w17,w28 + add v23.4s,v7.4s,v31.4s // +4 + lsr x19,x28,#32 + mov v10.16b,v26.16b + mov w20,w30 + mov v14.16b,v26.16b + lsr x21,x30,#32 + mov v18.16b,v26.16b + stp q27,q28,[sp,#48] // off-load key block, variable part + mov v22.16b,v26.16b + str q29,[sp,#80] + + mov x4,#5 + subs x2,x2,#512 +.Loop_upper_neon: + sub x4,x4,#1 + add v0.4s,v0.4s,v1.4s + add w5,w5,w9 + add v4.4s,v4.4s,v5.4s + add w6,w6,w10 + add v8.4s,v8.4s,v9.4s + add w7,w7,w11 + add v12.4s,v12.4s,v13.4s + add w8,w8,w12 + add v16.4s,v16.4s,v17.4s + eor w17,w17,w5 + add v20.4s,v20.4s,v21.4s + eor w19,w19,w6 + eor v3.16b,v3.16b,v0.16b + eor w20,w20,w7 + eor v7.16b,v7.16b,v4.16b + eor w21,w21,w8 + eor v11.16b,v11.16b,v8.16b + ror w17,w17,#16 + eor v15.16b,v15.16b,v12.16b + ror w19,w19,#16 + eor v19.16b,v19.16b,v16.16b + ror w20,w20,#16 + eor v23.16b,v23.16b,v20.16b + ror w21,w21,#16 + rev32 v3.8h,v3.8h + add w13,w13,w17 + rev32 v7.8h,v7.8h + add w14,w14,w19 + rev32 v11.8h,v11.8h + add w15,w15,w20 + rev32 v15.8h,v15.8h + add w16,w16,w21 + rev32 v19.8h,v19.8h + eor w9,w9,w13 + rev32 v23.8h,v23.8h + eor w10,w10,w14 + add v2.4s,v2.4s,v3.4s + eor w11,w11,w15 + add v6.4s,v6.4s,v7.4s + eor w12,w12,w16 + add v10.4s,v10.4s,v11.4s + ror w9,w9,#20 + add v14.4s,v14.4s,v15.4s + ror w10,w10,#20 + add v18.4s,v18.4s,v19.4s + ror w11,w11,#20 + add v22.4s,v22.4s,v23.4s + ror w12,w12,#20 + eor v24.16b,v1.16b,v2.16b + add w5,w5,w9 + eor v25.16b,v5.16b,v6.16b + add w6,w6,w10 + eor v26.16b,v9.16b,v10.16b + add w7,w7,w11 + eor v27.16b,v13.16b,v14.16b + add w8,w8,w12 + eor v28.16b,v17.16b,v18.16b + eor w17,w17,w5 + eor v29.16b,v21.16b,v22.16b + eor w19,w19,w6 + ushr v1.4s,v24.4s,#20 + eor w20,w20,w7 + ushr v5.4s,v25.4s,#20 + eor w21,w21,w8 + ushr v9.4s,v26.4s,#20 + ror w17,w17,#24 + ushr v13.4s,v27.4s,#20 + ror w19,w19,#24 + ushr v17.4s,v28.4s,#20 + ror w20,w20,#24 + ushr v21.4s,v29.4s,#20 + ror w21,w21,#24 + sli v1.4s,v24.4s,#12 + add w13,w13,w17 + sli v5.4s,v25.4s,#12 + add w14,w14,w19 + sli v9.4s,v26.4s,#12 + add w15,w15,w20 + sli v13.4s,v27.4s,#12 + add w16,w16,w21 + sli v17.4s,v28.4s,#12 + eor w9,w9,w13 + sli v21.4s,v29.4s,#12 + eor w10,w10,w14 + add v0.4s,v0.4s,v1.4s + eor w11,w11,w15 + add v4.4s,v4.4s,v5.4s + eor w12,w12,w16 + add v8.4s,v8.4s,v9.4s + ror w9,w9,#25 + add v12.4s,v12.4s,v13.4s + ror w10,w10,#25 + add v16.4s,v16.4s,v17.4s + ror w11,w11,#25 + add v20.4s,v20.4s,v21.4s + ror w12,w12,#25 + eor v24.16b,v3.16b,v0.16b + add w5,w5,w10 + eor v25.16b,v7.16b,v4.16b + add w6,w6,w11 + eor v26.16b,v11.16b,v8.16b + add w7,w7,w12 + eor v27.16b,v15.16b,v12.16b + add w8,w8,w9 + eor v28.16b,v19.16b,v16.16b + eor w21,w21,w5 + eor v29.16b,v23.16b,v20.16b + eor w17,w17,w6 + ushr v3.4s,v24.4s,#24 + eor w19,w19,w7 + ushr v7.4s,v25.4s,#24 + eor w20,w20,w8 + ushr v11.4s,v26.4s,#24 + ror w21,w21,#16 + ushr v15.4s,v27.4s,#24 + ror w17,w17,#16 + ushr v19.4s,v28.4s,#24 + ror w19,w19,#16 + ushr v23.4s,v29.4s,#24 + ror w20,w20,#16 + sli v3.4s,v24.4s,#8 + add w15,w15,w21 + sli v7.4s,v25.4s,#8 + add w16,w16,w17 + sli v11.4s,v26.4s,#8 + add w13,w13,w19 + sli v15.4s,v27.4s,#8 + add w14,w14,w20 + sli v19.4s,v28.4s,#8 + eor w10,w10,w15 + sli v23.4s,v29.4s,#8 + eor w11,w11,w16 + add v2.4s,v2.4s,v3.4s + eor w12,w12,w13 + add v6.4s,v6.4s,v7.4s + eor w9,w9,w14 + add v10.4s,v10.4s,v11.4s + ror w10,w10,#20 + add v14.4s,v14.4s,v15.4s + ror w11,w11,#20 + add v18.4s,v18.4s,v19.4s + ror w12,w12,#20 + add v22.4s,v22.4s,v23.4s + ror w9,w9,#20 + eor v24.16b,v1.16b,v2.16b + add w5,w5,w10 + eor v25.16b,v5.16b,v6.16b + add w6,w6,w11 + eor v26.16b,v9.16b,v10.16b + add w7,w7,w12 + eor v27.16b,v13.16b,v14.16b + add w8,w8,w9 + eor v28.16b,v17.16b,v18.16b + eor w21,w21,w5 + eor v29.16b,v21.16b,v22.16b + eor w17,w17,w6 + ushr v1.4s,v24.4s,#25 + eor w19,w19,w7 + ushr v5.4s,v25.4s,#25 + eor w20,w20,w8 + ushr v9.4s,v26.4s,#25 + ror w21,w21,#24 + ushr v13.4s,v27.4s,#25 + ror w17,w17,#24 + ushr v17.4s,v28.4s,#25 + ror w19,w19,#24 + ushr v21.4s,v29.4s,#25 + ror w20,w20,#24 + sli v1.4s,v24.4s,#7 + add w15,w15,w21 + sli v5.4s,v25.4s,#7 + add w16,w16,w17 + sli v9.4s,v26.4s,#7 + add w13,w13,w19 + sli v13.4s,v27.4s,#7 + add w14,w14,w20 + sli v17.4s,v28.4s,#7 + eor w10,w10,w15 + sli v21.4s,v29.4s,#7 + eor w11,w11,w16 + ext v2.16b,v2.16b,v2.16b,#8 + eor w12,w12,w13 + ext v6.16b,v6.16b,v6.16b,#8 + eor w9,w9,w14 + ext v10.16b,v10.16b,v10.16b,#8 + ror w10,w10,#25 + ext v14.16b,v14.16b,v14.16b,#8 + ror w11,w11,#25 + ext v18.16b,v18.16b,v18.16b,#8 + ror w12,w12,#25 + ext v22.16b,v22.16b,v22.16b,#8 + ror w9,w9,#25 + ext v3.16b,v3.16b,v3.16b,#12 + ext v7.16b,v7.16b,v7.16b,#12 + ext v11.16b,v11.16b,v11.16b,#12 + ext v15.16b,v15.16b,v15.16b,#12 + ext v19.16b,v19.16b,v19.16b,#12 + ext v23.16b,v23.16b,v23.16b,#12 + ext v1.16b,v1.16b,v1.16b,#4 + ext v5.16b,v5.16b,v5.16b,#4 + ext v9.16b,v9.16b,v9.16b,#4 + ext v13.16b,v13.16b,v13.16b,#4 + ext v17.16b,v17.16b,v17.16b,#4 + ext v21.16b,v21.16b,v21.16b,#4 + add v0.4s,v0.4s,v1.4s + add w5,w5,w9 + add v4.4s,v4.4s,v5.4s + add w6,w6,w10 + add v8.4s,v8.4s,v9.4s + add w7,w7,w11 + add v12.4s,v12.4s,v13.4s + add w8,w8,w12 + add v16.4s,v16.4s,v17.4s + eor w17,w17,w5 + add v20.4s,v20.4s,v21.4s + eor w19,w19,w6 + eor v3.16b,v3.16b,v0.16b + eor w20,w20,w7 + eor v7.16b,v7.16b,v4.16b + eor w21,w21,w8 + eor v11.16b,v11.16b,v8.16b + ror w17,w17,#16 + eor v15.16b,v15.16b,v12.16b + ror w19,w19,#16 + eor v19.16b,v19.16b,v16.16b + ror w20,w20,#16 + eor v23.16b,v23.16b,v20.16b + ror w21,w21,#16 + rev32 v3.8h,v3.8h + add w13,w13,w17 + rev32 v7.8h,v7.8h + add w14,w14,w19 + rev32 v11.8h,v11.8h + add w15,w15,w20 + rev32 v15.8h,v15.8h + add w16,w16,w21 + rev32 v19.8h,v19.8h + eor w9,w9,w13 + rev32 v23.8h,v23.8h + eor w10,w10,w14 + add v2.4s,v2.4s,v3.4s + eor w11,w11,w15 + add v6.4s,v6.4s,v7.4s + eor w12,w12,w16 + add v10.4s,v10.4s,v11.4s + ror w9,w9,#20 + add v14.4s,v14.4s,v15.4s + ror w10,w10,#20 + add v18.4s,v18.4s,v19.4s + ror w11,w11,#20 + add v22.4s,v22.4s,v23.4s + ror w12,w12,#20 + eor v24.16b,v1.16b,v2.16b + add w5,w5,w9 + eor v25.16b,v5.16b,v6.16b + add w6,w6,w10 + eor v26.16b,v9.16b,v10.16b + add w7,w7,w11 + eor v27.16b,v13.16b,v14.16b + add w8,w8,w12 + eor v28.16b,v17.16b,v18.16b + eor w17,w17,w5 + eor v29.16b,v21.16b,v22.16b + eor w19,w19,w6 + ushr v1.4s,v24.4s,#20 + eor w20,w20,w7 + ushr v5.4s,v25.4s,#20 + eor w21,w21,w8 + ushr v9.4s,v26.4s,#20 + ror w17,w17,#24 + ushr v13.4s,v27.4s,#20 + ror w19,w19,#24 + ushr v17.4s,v28.4s,#20 + ror w20,w20,#24 + ushr v21.4s,v29.4s,#20 + ror w21,w21,#24 + sli v1.4s,v24.4s,#12 + add w13,w13,w17 + sli v5.4s,v25.4s,#12 + add w14,w14,w19 + sli v9.4s,v26.4s,#12 + add w15,w15,w20 + sli v13.4s,v27.4s,#12 + add w16,w16,w21 + sli v17.4s,v28.4s,#12 + eor w9,w9,w13 + sli v21.4s,v29.4s,#12 + eor w10,w10,w14 + add v0.4s,v0.4s,v1.4s + eor w11,w11,w15 + add v4.4s,v4.4s,v5.4s + eor w12,w12,w16 + add v8.4s,v8.4s,v9.4s + ror w9,w9,#25 + add v12.4s,v12.4s,v13.4s + ror w10,w10,#25 + add v16.4s,v16.4s,v17.4s + ror w11,w11,#25 + add v20.4s,v20.4s,v21.4s + ror w12,w12,#25 + eor v24.16b,v3.16b,v0.16b + add w5,w5,w10 + eor v25.16b,v7.16b,v4.16b + add w6,w6,w11 + eor v26.16b,v11.16b,v8.16b + add w7,w7,w12 + eor v27.16b,v15.16b,v12.16b + add w8,w8,w9 + eor v28.16b,v19.16b,v16.16b + eor w21,w21,w5 + eor v29.16b,v23.16b,v20.16b + eor w17,w17,w6 + ushr v3.4s,v24.4s,#24 + eor w19,w19,w7 + ushr v7.4s,v25.4s,#24 + eor w20,w20,w8 + ushr v11.4s,v26.4s,#24 + ror w21,w21,#16 + ushr v15.4s,v27.4s,#24 + ror w17,w17,#16 + ushr v19.4s,v28.4s,#24 + ror w19,w19,#16 + ushr v23.4s,v29.4s,#24 + ror w20,w20,#16 + sli v3.4s,v24.4s,#8 + add w15,w15,w21 + sli v7.4s,v25.4s,#8 + add w16,w16,w17 + sli v11.4s,v26.4s,#8 + add w13,w13,w19 + sli v15.4s,v27.4s,#8 + add w14,w14,w20 + sli v19.4s,v28.4s,#8 + eor w10,w10,w15 + sli v23.4s,v29.4s,#8 + eor w11,w11,w16 + add v2.4s,v2.4s,v3.4s + eor w12,w12,w13 + add v6.4s,v6.4s,v7.4s + eor w9,w9,w14 + add v10.4s,v10.4s,v11.4s + ror w10,w10,#20 + add v14.4s,v14.4s,v15.4s + ror w11,w11,#20 + add v18.4s,v18.4s,v19.4s + ror w12,w12,#20 + add v22.4s,v22.4s,v23.4s + ror w9,w9,#20 + eor v24.16b,v1.16b,v2.16b + add w5,w5,w10 + eor v25.16b,v5.16b,v6.16b + add w6,w6,w11 + eor v26.16b,v9.16b,v10.16b + add w7,w7,w12 + eor v27.16b,v13.16b,v14.16b + add w8,w8,w9 + eor v28.16b,v17.16b,v18.16b + eor w21,w21,w5 + eor v29.16b,v21.16b,v22.16b + eor w17,w17,w6 + ushr v1.4s,v24.4s,#25 + eor w19,w19,w7 + ushr v5.4s,v25.4s,#25 + eor w20,w20,w8 + ushr v9.4s,v26.4s,#25 + ror w21,w21,#24 + ushr v13.4s,v27.4s,#25 + ror w17,w17,#24 + ushr v17.4s,v28.4s,#25 + ror w19,w19,#24 + ushr v21.4s,v29.4s,#25 + ror w20,w20,#24 + sli v1.4s,v24.4s,#7 + add w15,w15,w21 + sli v5.4s,v25.4s,#7 + add w16,w16,w17 + sli v9.4s,v26.4s,#7 + add w13,w13,w19 + sli v13.4s,v27.4s,#7 + add w14,w14,w20 + sli v17.4s,v28.4s,#7 + eor w10,w10,w15 + sli v21.4s,v29.4s,#7 + eor w11,w11,w16 + ext v2.16b,v2.16b,v2.16b,#8 + eor w12,w12,w13 + ext v6.16b,v6.16b,v6.16b,#8 + eor w9,w9,w14 + ext v10.16b,v10.16b,v10.16b,#8 + ror w10,w10,#25 + ext v14.16b,v14.16b,v14.16b,#8 + ror w11,w11,#25 + ext v18.16b,v18.16b,v18.16b,#8 + ror w12,w12,#25 + ext v22.16b,v22.16b,v22.16b,#8 + ror w9,w9,#25 + ext v3.16b,v3.16b,v3.16b,#4 + ext v7.16b,v7.16b,v7.16b,#4 + ext v11.16b,v11.16b,v11.16b,#4 + ext v15.16b,v15.16b,v15.16b,#4 + ext v19.16b,v19.16b,v19.16b,#4 + ext v23.16b,v23.16b,v23.16b,#4 + ext v1.16b,v1.16b,v1.16b,#12 + ext v5.16b,v5.16b,v5.16b,#12 + ext v9.16b,v9.16b,v9.16b,#12 + ext v13.16b,v13.16b,v13.16b,#12 + ext v17.16b,v17.16b,v17.16b,#12 + ext v21.16b,v21.16b,v21.16b,#12 + cbnz x4,.Loop_upper_neon + + add w5,w5,w22 // accumulate key block + add x6,x6,x22,lsr#32 + add w7,w7,w23 + add x8,x8,x23,lsr#32 + add w9,w9,w24 + add x10,x10,x24,lsr#32 + add w11,w11,w25 + add x12,x12,x25,lsr#32 + add w13,w13,w26 + add x14,x14,x26,lsr#32 + add w15,w15,w27 + add x16,x16,x27,lsr#32 + add w17,w17,w28 + add x19,x19,x28,lsr#32 + add w20,w20,w30 + add x21,x21,x30,lsr#32 + + add x5,x5,x6,lsl#32 // pack + add x7,x7,x8,lsl#32 + ldp x6,x8,[x1,#0] // load input + add x9,x9,x10,lsl#32 + add x11,x11,x12,lsl#32 + ldp x10,x12,[x1,#16] + add x13,x13,x14,lsl#32 + add x15,x15,x16,lsl#32 + ldp x14,x16,[x1,#32] + add x17,x17,x19,lsl#32 + add x20,x20,x21,lsl#32 + ldp x19,x21,[x1,#48] + add x1,x1,#64 +#ifdef __ARMEB__ + rev x5,x5 + rev x7,x7 + rev x9,x9 + rev x11,x11 + rev x13,x13 + rev x15,x15 + rev x17,x17 + rev x20,x20 +#endif + eor x5,x5,x6 + eor x7,x7,x8 + eor x9,x9,x10 + eor x11,x11,x12 + eor x13,x13,x14 + eor x15,x15,x16 + eor x17,x17,x19 + eor x20,x20,x21 + + stp x5,x7,[x0,#0] // store output + add x28,x28,#1 // increment counter + mov w5,w22 // unpack key block + lsr x6,x22,#32 + stp x9,x11,[x0,#16] + mov w7,w23 + lsr x8,x23,#32 + stp x13,x15,[x0,#32] + mov w9,w24 + lsr x10,x24,#32 + stp x17,x20,[x0,#48] + add x0,x0,#64 + mov w11,w25 + lsr x12,x25,#32 + mov w13,w26 + lsr x14,x26,#32 + mov w15,w27 + lsr x16,x27,#32 + mov w17,w28 + lsr x19,x28,#32 + mov w20,w30 + lsr x21,x30,#32 + + mov x4,#5 +.Loop_lower_neon: + sub x4,x4,#1 + add v0.4s,v0.4s,v1.4s + add w5,w5,w9 + add v4.4s,v4.4s,v5.4s + add w6,w6,w10 + add v8.4s,v8.4s,v9.4s + add w7,w7,w11 + add v12.4s,v12.4s,v13.4s + add w8,w8,w12 + add v16.4s,v16.4s,v17.4s + eor w17,w17,w5 + add v20.4s,v20.4s,v21.4s + eor w19,w19,w6 + eor v3.16b,v3.16b,v0.16b + eor w20,w20,w7 + eor v7.16b,v7.16b,v4.16b + eor w21,w21,w8 + eor v11.16b,v11.16b,v8.16b + ror w17,w17,#16 + eor v15.16b,v15.16b,v12.16b + ror w19,w19,#16 + eor v19.16b,v19.16b,v16.16b + ror w20,w20,#16 + eor v23.16b,v23.16b,v20.16b + ror w21,w21,#16 + rev32 v3.8h,v3.8h + add w13,w13,w17 + rev32 v7.8h,v7.8h + add w14,w14,w19 + rev32 v11.8h,v11.8h + add w15,w15,w20 + rev32 v15.8h,v15.8h + add w16,w16,w21 + rev32 v19.8h,v19.8h + eor w9,w9,w13 + rev32 v23.8h,v23.8h + eor w10,w10,w14 + add v2.4s,v2.4s,v3.4s + eor w11,w11,w15 + add v6.4s,v6.4s,v7.4s + eor w12,w12,w16 + add v10.4s,v10.4s,v11.4s + ror w9,w9,#20 + add v14.4s,v14.4s,v15.4s + ror w10,w10,#20 + add v18.4s,v18.4s,v19.4s + ror w11,w11,#20 + add v22.4s,v22.4s,v23.4s + ror w12,w12,#20 + eor v24.16b,v1.16b,v2.16b + add w5,w5,w9 + eor v25.16b,v5.16b,v6.16b + add w6,w6,w10 + eor v26.16b,v9.16b,v10.16b + add w7,w7,w11 + eor v27.16b,v13.16b,v14.16b + add w8,w8,w12 + eor v28.16b,v17.16b,v18.16b + eor w17,w17,w5 + eor v29.16b,v21.16b,v22.16b + eor w19,w19,w6 + ushr v1.4s,v24.4s,#20 + eor w20,w20,w7 + ushr v5.4s,v25.4s,#20 + eor w21,w21,w8 + ushr v9.4s,v26.4s,#20 + ror w17,w17,#24 + ushr v13.4s,v27.4s,#20 + ror w19,w19,#24 + ushr v17.4s,v28.4s,#20 + ror w20,w20,#24 + ushr v21.4s,v29.4s,#20 + ror w21,w21,#24 + sli v1.4s,v24.4s,#12 + add w13,w13,w17 + sli v5.4s,v25.4s,#12 + add w14,w14,w19 + sli v9.4s,v26.4s,#12 + add w15,w15,w20 + sli v13.4s,v27.4s,#12 + add w16,w16,w21 + sli v17.4s,v28.4s,#12 + eor w9,w9,w13 + sli v21.4s,v29.4s,#12 + eor w10,w10,w14 + add v0.4s,v0.4s,v1.4s + eor w11,w11,w15 + add v4.4s,v4.4s,v5.4s + eor w12,w12,w16 + add v8.4s,v8.4s,v9.4s + ror w9,w9,#25 + add v12.4s,v12.4s,v13.4s + ror w10,w10,#25 + add v16.4s,v16.4s,v17.4s + ror w11,w11,#25 + add v20.4s,v20.4s,v21.4s + ror w12,w12,#25 + eor v24.16b,v3.16b,v0.16b + add w5,w5,w10 + eor v25.16b,v7.16b,v4.16b + add w6,w6,w11 + eor v26.16b,v11.16b,v8.16b + add w7,w7,w12 + eor v27.16b,v15.16b,v12.16b + add w8,w8,w9 + eor v28.16b,v19.16b,v16.16b + eor w21,w21,w5 + eor v29.16b,v23.16b,v20.16b + eor w17,w17,w6 + ushr v3.4s,v24.4s,#24 + eor w19,w19,w7 + ushr v7.4s,v25.4s,#24 + eor w20,w20,w8 + ushr v11.4s,v26.4s,#24 + ror w21,w21,#16 + ushr v15.4s,v27.4s,#24 + ror w17,w17,#16 + ushr v19.4s,v28.4s,#24 + ror w19,w19,#16 + ushr v23.4s,v29.4s,#24 + ror w20,w20,#16 + sli v3.4s,v24.4s,#8 + add w15,w15,w21 + sli v7.4s,v25.4s,#8 + add w16,w16,w17 + sli v11.4s,v26.4s,#8 + add w13,w13,w19 + sli v15.4s,v27.4s,#8 + add w14,w14,w20 + sli v19.4s,v28.4s,#8 + eor w10,w10,w15 + sli v23.4s,v29.4s,#8 + eor w11,w11,w16 + add v2.4s,v2.4s,v3.4s + eor w12,w12,w13 + add v6.4s,v6.4s,v7.4s + eor w9,w9,w14 + add v10.4s,v10.4s,v11.4s + ror w10,w10,#20 + add v14.4s,v14.4s,v15.4s + ror w11,w11,#20 + add v18.4s,v18.4s,v19.4s + ror w12,w12,#20 + add v22.4s,v22.4s,v23.4s + ror w9,w9,#20 + eor v24.16b,v1.16b,v2.16b + add w5,w5,w10 + eor v25.16b,v5.16b,v6.16b + add w6,w6,w11 + eor v26.16b,v9.16b,v10.16b + add w7,w7,w12 + eor v27.16b,v13.16b,v14.16b + add w8,w8,w9 + eor v28.16b,v17.16b,v18.16b + eor w21,w21,w5 + eor v29.16b,v21.16b,v22.16b + eor w17,w17,w6 + ushr v1.4s,v24.4s,#25 + eor w19,w19,w7 + ushr v5.4s,v25.4s,#25 + eor w20,w20,w8 + ushr v9.4s,v26.4s,#25 + ror w21,w21,#24 + ushr v13.4s,v27.4s,#25 + ror w17,w17,#24 + ushr v17.4s,v28.4s,#25 + ror w19,w19,#24 + ushr v21.4s,v29.4s,#25 + ror w20,w20,#24 + sli v1.4s,v24.4s,#7 + add w15,w15,w21 + sli v5.4s,v25.4s,#7 + add w16,w16,w17 + sli v9.4s,v26.4s,#7 + add w13,w13,w19 + sli v13.4s,v27.4s,#7 + add w14,w14,w20 + sli v17.4s,v28.4s,#7 + eor w10,w10,w15 + sli v21.4s,v29.4s,#7 + eor w11,w11,w16 + ext v2.16b,v2.16b,v2.16b,#8 + eor w12,w12,w13 + ext v6.16b,v6.16b,v6.16b,#8 + eor w9,w9,w14 + ext v10.16b,v10.16b,v10.16b,#8 + ror w10,w10,#25 + ext v14.16b,v14.16b,v14.16b,#8 + ror w11,w11,#25 + ext v18.16b,v18.16b,v18.16b,#8 + ror w12,w12,#25 + ext v22.16b,v22.16b,v22.16b,#8 + ror w9,w9,#25 + ext v3.16b,v3.16b,v3.16b,#12 + ext v7.16b,v7.16b,v7.16b,#12 + ext v11.16b,v11.16b,v11.16b,#12 + ext v15.16b,v15.16b,v15.16b,#12 + ext v19.16b,v19.16b,v19.16b,#12 + ext v23.16b,v23.16b,v23.16b,#12 + ext v1.16b,v1.16b,v1.16b,#4 + ext v5.16b,v5.16b,v5.16b,#4 + ext v9.16b,v9.16b,v9.16b,#4 + ext v13.16b,v13.16b,v13.16b,#4 + ext v17.16b,v17.16b,v17.16b,#4 + ext v21.16b,v21.16b,v21.16b,#4 + add v0.4s,v0.4s,v1.4s + add w5,w5,w9 + add v4.4s,v4.4s,v5.4s + add w6,w6,w10 + add v8.4s,v8.4s,v9.4s + add w7,w7,w11 + add v12.4s,v12.4s,v13.4s + add w8,w8,w12 + add v16.4s,v16.4s,v17.4s + eor w17,w17,w5 + add v20.4s,v20.4s,v21.4s + eor w19,w19,w6 + eor v3.16b,v3.16b,v0.16b + eor w20,w20,w7 + eor v7.16b,v7.16b,v4.16b + eor w21,w21,w8 + eor v11.16b,v11.16b,v8.16b + ror w17,w17,#16 + eor v15.16b,v15.16b,v12.16b + ror w19,w19,#16 + eor v19.16b,v19.16b,v16.16b + ror w20,w20,#16 + eor v23.16b,v23.16b,v20.16b + ror w21,w21,#16 + rev32 v3.8h,v3.8h + add w13,w13,w17 + rev32 v7.8h,v7.8h + add w14,w14,w19 + rev32 v11.8h,v11.8h + add w15,w15,w20 + rev32 v15.8h,v15.8h + add w16,w16,w21 + rev32 v19.8h,v19.8h + eor w9,w9,w13 + rev32 v23.8h,v23.8h + eor w10,w10,w14 + add v2.4s,v2.4s,v3.4s + eor w11,w11,w15 + add v6.4s,v6.4s,v7.4s + eor w12,w12,w16 + add v10.4s,v10.4s,v11.4s + ror w9,w9,#20 + add v14.4s,v14.4s,v15.4s + ror w10,w10,#20 + add v18.4s,v18.4s,v19.4s + ror w11,w11,#20 + add v22.4s,v22.4s,v23.4s + ror w12,w12,#20 + eor v24.16b,v1.16b,v2.16b + add w5,w5,w9 + eor v25.16b,v5.16b,v6.16b + add w6,w6,w10 + eor v26.16b,v9.16b,v10.16b + add w7,w7,w11 + eor v27.16b,v13.16b,v14.16b + add w8,w8,w12 + eor v28.16b,v17.16b,v18.16b + eor w17,w17,w5 + eor v29.16b,v21.16b,v22.16b + eor w19,w19,w6 + ushr v1.4s,v24.4s,#20 + eor w20,w20,w7 + ushr v5.4s,v25.4s,#20 + eor w21,w21,w8 + ushr v9.4s,v26.4s,#20 + ror w17,w17,#24 + ushr v13.4s,v27.4s,#20 + ror w19,w19,#24 + ushr v17.4s,v28.4s,#20 + ror w20,w20,#24 + ushr v21.4s,v29.4s,#20 + ror w21,w21,#24 + sli v1.4s,v24.4s,#12 + add w13,w13,w17 + sli v5.4s,v25.4s,#12 + add w14,w14,w19 + sli v9.4s,v26.4s,#12 + add w15,w15,w20 + sli v13.4s,v27.4s,#12 + add w16,w16,w21 + sli v17.4s,v28.4s,#12 + eor w9,w9,w13 + sli v21.4s,v29.4s,#12 + eor w10,w10,w14 + add v0.4s,v0.4s,v1.4s + eor w11,w11,w15 + add v4.4s,v4.4s,v5.4s + eor w12,w12,w16 + add v8.4s,v8.4s,v9.4s + ror w9,w9,#25 + add v12.4s,v12.4s,v13.4s + ror w10,w10,#25 + add v16.4s,v16.4s,v17.4s + ror w11,w11,#25 + add v20.4s,v20.4s,v21.4s + ror w12,w12,#25 + eor v24.16b,v3.16b,v0.16b + add w5,w5,w10 + eor v25.16b,v7.16b,v4.16b + add w6,w6,w11 + eor v26.16b,v11.16b,v8.16b + add w7,w7,w12 + eor v27.16b,v15.16b,v12.16b + add w8,w8,w9 + eor v28.16b,v19.16b,v16.16b + eor w21,w21,w5 + eor v29.16b,v23.16b,v20.16b + eor w17,w17,w6 + ushr v3.4s,v24.4s,#24 + eor w19,w19,w7 + ushr v7.4s,v25.4s,#24 + eor w20,w20,w8 + ushr v11.4s,v26.4s,#24 + ror w21,w21,#16 + ushr v15.4s,v27.4s,#24 + ror w17,w17,#16 + ushr v19.4s,v28.4s,#24 + ror w19,w19,#16 + ushr v23.4s,v29.4s,#24 + ror w20,w20,#16 + sli v3.4s,v24.4s,#8 + add w15,w15,w21 + sli v7.4s,v25.4s,#8 + add w16,w16,w17 + sli v11.4s,v26.4s,#8 + add w13,w13,w19 + sli v15.4s,v27.4s,#8 + add w14,w14,w20 + sli v19.4s,v28.4s,#8 + eor w10,w10,w15 + sli v23.4s,v29.4s,#8 + eor w11,w11,w16 + add v2.4s,v2.4s,v3.4s + eor w12,w12,w13 + add v6.4s,v6.4s,v7.4s + eor w9,w9,w14 + add v10.4s,v10.4s,v11.4s + ror w10,w10,#20 + add v14.4s,v14.4s,v15.4s + ror w11,w11,#20 + add v18.4s,v18.4s,v19.4s + ror w12,w12,#20 + add v22.4s,v22.4s,v23.4s + ror w9,w9,#20 + eor v24.16b,v1.16b,v2.16b + add w5,w5,w10 + eor v25.16b,v5.16b,v6.16b + add w6,w6,w11 + eor v26.16b,v9.16b,v10.16b + add w7,w7,w12 + eor v27.16b,v13.16b,v14.16b + add w8,w8,w9 + eor v28.16b,v17.16b,v18.16b + eor w21,w21,w5 + eor v29.16b,v21.16b,v22.16b + eor w17,w17,w6 + ushr v1.4s,v24.4s,#25 + eor w19,w19,w7 + ushr v5.4s,v25.4s,#25 + eor w20,w20,w8 + ushr v9.4s,v26.4s,#25 + ror w21,w21,#24 + ushr v13.4s,v27.4s,#25 + ror w17,w17,#24 + ushr v17.4s,v28.4s,#25 + ror w19,w19,#24 + ushr v21.4s,v29.4s,#25 + ror w20,w20,#24 + sli v1.4s,v24.4s,#7 + add w15,w15,w21 + sli v5.4s,v25.4s,#7 + add w16,w16,w17 + sli v9.4s,v26.4s,#7 + add w13,w13,w19 + sli v13.4s,v27.4s,#7 + add w14,w14,w20 + sli v17.4s,v28.4s,#7 + eor w10,w10,w15 + sli v21.4s,v29.4s,#7 + eor w11,w11,w16 + ext v2.16b,v2.16b,v2.16b,#8 + eor w12,w12,w13 + ext v6.16b,v6.16b,v6.16b,#8 + eor w9,w9,w14 + ext v10.16b,v10.16b,v10.16b,#8 + ror w10,w10,#25 + ext v14.16b,v14.16b,v14.16b,#8 + ror w11,w11,#25 + ext v18.16b,v18.16b,v18.16b,#8 + ror w12,w12,#25 + ext v22.16b,v22.16b,v22.16b,#8 + ror w9,w9,#25 + ext v3.16b,v3.16b,v3.16b,#4 + ext v7.16b,v7.16b,v7.16b,#4 + ext v11.16b,v11.16b,v11.16b,#4 + ext v15.16b,v15.16b,v15.16b,#4 + ext v19.16b,v19.16b,v19.16b,#4 + ext v23.16b,v23.16b,v23.16b,#4 + ext v1.16b,v1.16b,v1.16b,#12 + ext v5.16b,v5.16b,v5.16b,#12 + ext v9.16b,v9.16b,v9.16b,#12 + ext v13.16b,v13.16b,v13.16b,#12 + ext v17.16b,v17.16b,v17.16b,#12 + ext v21.16b,v21.16b,v21.16b,#12 + cbnz x4,.Loop_lower_neon + + add w5,w5,w22 // accumulate key block + ldp q24,q25,[sp,#0] + add x6,x6,x22,lsr#32 + ldp q26,q27,[sp,#32] + add w7,w7,w23 + ldp q28,q29,[sp,#64] + add x8,x8,x23,lsr#32 + add v0.4s,v0.4s,v24.4s + add w9,w9,w24 + add v4.4s,v4.4s,v24.4s + add x10,x10,x24,lsr#32 + add v8.4s,v8.4s,v24.4s + add w11,w11,w25 + add v12.4s,v12.4s,v24.4s + add x12,x12,x25,lsr#32 + add v16.4s,v16.4s,v24.4s + add w13,w13,w26 + add v20.4s,v20.4s,v24.4s + add x14,x14,x26,lsr#32 + add v2.4s,v2.4s,v26.4s + add w15,w15,w27 + add v6.4s,v6.4s,v26.4s + add x16,x16,x27,lsr#32 + add v10.4s,v10.4s,v26.4s + add w17,w17,w28 + add v14.4s,v14.4s,v26.4s + add x19,x19,x28,lsr#32 + add v18.4s,v18.4s,v26.4s + add w20,w20,w30 + add v22.4s,v22.4s,v26.4s + add x21,x21,x30,lsr#32 + add v19.4s,v19.4s,v31.4s // +4 + add x5,x5,x6,lsl#32 // pack + add v23.4s,v23.4s,v31.4s // +4 + add x7,x7,x8,lsl#32 + add v3.4s,v3.4s,v27.4s + ldp x6,x8,[x1,#0] // load input + add v7.4s,v7.4s,v28.4s + add x9,x9,x10,lsl#32 + add v11.4s,v11.4s,v29.4s + add x11,x11,x12,lsl#32 + add v15.4s,v15.4s,v30.4s + ldp x10,x12,[x1,#16] + add v19.4s,v19.4s,v27.4s + add x13,x13,x14,lsl#32 + add v23.4s,v23.4s,v28.4s + add x15,x15,x16,lsl#32 + add v1.4s,v1.4s,v25.4s + ldp x14,x16,[x1,#32] + add v5.4s,v5.4s,v25.4s + add x17,x17,x19,lsl#32 + add v9.4s,v9.4s,v25.4s + add x20,x20,x21,lsl#32 + add v13.4s,v13.4s,v25.4s + ldp x19,x21,[x1,#48] + add v17.4s,v17.4s,v25.4s + add x1,x1,#64 + add v21.4s,v21.4s,v25.4s + +#ifdef __ARMEB__ + rev x5,x5 + rev x7,x7 + rev x9,x9 + rev x11,x11 + rev x13,x13 + rev x15,x15 + rev x17,x17 + rev x20,x20 +#endif + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x1],#64 + eor x5,x5,x6 + eor x7,x7,x8 + eor x9,x9,x10 + eor x11,x11,x12 + eor x13,x13,x14 + eor v0.16b,v0.16b,v24.16b + eor x15,x15,x16 + eor v1.16b,v1.16b,v25.16b + eor x17,x17,x19 + eor v2.16b,v2.16b,v26.16b + eor x20,x20,x21 + eor v3.16b,v3.16b,v27.16b + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x1],#64 + + stp x5,x7,[x0,#0] // store output + add x28,x28,#7 // increment counter + stp x9,x11,[x0,#16] + stp x13,x15,[x0,#32] + stp x17,x20,[x0,#48] + add x0,x0,#64 + st1 {v0.16b,v1.16b,v2.16b,v3.16b},[x0],#64 + + ld1 {v0.16b,v1.16b,v2.16b,v3.16b},[x1],#64 + eor v4.16b,v4.16b,v24.16b + eor v5.16b,v5.16b,v25.16b + eor v6.16b,v6.16b,v26.16b + eor v7.16b,v7.16b,v27.16b + st1 {v4.16b,v5.16b,v6.16b,v7.16b},[x0],#64 + + ld1 {v4.16b,v5.16b,v6.16b,v7.16b},[x1],#64 + eor v8.16b,v8.16b,v0.16b + ldp q24,q25,[sp,#0] + eor v9.16b,v9.16b,v1.16b + ldp q26,q27,[sp,#32] + eor v10.16b,v10.16b,v2.16b + eor v11.16b,v11.16b,v3.16b + st1 {v8.16b,v9.16b,v10.16b,v11.16b},[x0],#64 + + ld1 {v8.16b,v9.16b,v10.16b,v11.16b},[x1],#64 + eor v12.16b,v12.16b,v4.16b + eor v13.16b,v13.16b,v5.16b + eor v14.16b,v14.16b,v6.16b + eor v15.16b,v15.16b,v7.16b + st1 {v12.16b,v13.16b,v14.16b,v15.16b},[x0],#64 + + ld1 {v12.16b,v13.16b,v14.16b,v15.16b},[x1],#64 + eor v16.16b,v16.16b,v8.16b + eor v17.16b,v17.16b,v9.16b + eor v18.16b,v18.16b,v10.16b + eor v19.16b,v19.16b,v11.16b + st1 {v16.16b,v17.16b,v18.16b,v19.16b},[x0],#64 + + shl v0.4s,v31.4s,#1 // 4 -> 8 + eor v20.16b,v20.16b,v12.16b + eor v21.16b,v21.16b,v13.16b + eor v22.16b,v22.16b,v14.16b + eor v23.16b,v23.16b,v15.16b + st1 {v20.16b,v21.16b,v22.16b,v23.16b},[x0],#64 + + add v27.4s,v27.4s,v0.4s // += 8 + add v28.4s,v28.4s,v0.4s + add v29.4s,v29.4s,v0.4s + add v30.4s,v30.4s,v0.4s + + b.hs .Loop_outer_512_neon + + adds x2,x2,#512 + ushr v0.4s,v31.4s,#2 // 4 -> 1 + + ldp d8,d9,[sp,#128+0] // meet ABI requirements + ldp d10,d11,[sp,#128+16] + ldp d12,d13,[sp,#128+32] + ldp d14,d15,[sp,#128+48] + + stp q24,q31,[sp,#0] // wipe off-load area + stp q24,q31,[sp,#32] + stp q24,q31,[sp,#64] + + b.eq .Ldone_512_neon + + cmp x2,#192 + sub v27.4s,v27.4s,v0.4s // -= 1 + sub v28.4s,v28.4s,v0.4s + sub v29.4s,v29.4s,v0.4s + add sp,sp,#128 + b.hs .Loop_outer_neon + + eor v25.16b,v25.16b,v25.16b + eor v26.16b,v26.16b,v26.16b + eor v27.16b,v27.16b,v27.16b + eor v28.16b,v28.16b,v28.16b + eor v29.16b,v29.16b,v29.16b + eor v30.16b,v30.16b,v30.16b + b .Loop_outer + +.Ldone_512_neon: + ldp x19,x20,[x29,#16] + add sp,sp,#128+64 + ldp x21,x22,[x29,#32] + ldp x23,x24,[x29,#48] + ldp x25,x26,[x29,#64] + ldp x27,x28,[x29,#80] + ldp x29,x30,[sp],#96 +.inst 0xd50323bf // autiasp + ret +.size ChaCha20_512_neon,.-ChaCha20_512_neon diff --git a/vere/ext/openssl/gen/linux-aarch64/crypto/ec/ecp_nistz256-armv8.S b/vere/ext/openssl/gen/linux-aarch64/crypto/ec/ecp_nistz256-armv8.S new file mode 100644 index 0000000..7caa581 --- /dev/null +++ b/vere/ext/openssl/gen/linux-aarch64/crypto/ec/ecp_nistz256-armv8.S @@ -0,0 +1,4242 @@ +#include "arm_arch.h" + +.text +.globl ecp_nistz256_precomputed +.type ecp_nistz256_precomputed,%object +.align 12 +ecp_nistz256_precomputed: +.byte 0x3c,0x4d,0x27,0xcc,0xf5,0x4a,0x4f,0x8f,0xe8,0xc8,0x04,0x68,0x09,0x4a,0x5b,0x80,0x9d,0x7a,0xe8,0x31,0x08,0x76,0x68,0x19,0x9f,0x08,0xb4,0x1f,0x32,0x43,0x89,0xd8,0x34,0xd3,0xf5,0xb7,0xb5,0xee,0x42,0x3e,0x91,0x01,0x06,0x7c,0xbf,0xd9,0x97,0x12,0xd3,0x1a,0xc9,0x04,0x8d,0x53,0x83,0x14,0x28,0xf0,0x8e,0x19,0xcc,0x91,0xe5,0x80 +.byte 0x14,0xd6,0xc1,0x8d,0x61,0x66,0x3b,0xa7,0x20,0x1e,0xe4,0x77,0xd7,0x66,0x05,0xfb,0x5c,0xa9,0x9a,0x7a,0xb2,0x30,0x50,0x28,0x87,0x80,0xfe,0xcd,0xe1,0xb3,0xff,0xa3,0x45,0x3c,0x7e,0x9b,0x08,0xc0,0xc1,0x9f,0x2e,0xad,0x7d,0x89,0x79,0x90,0x60,0xc6,0xac,0x17,0x64,0x59,0x4d,0xcf,0x56,0x7a,0xca,0x82,0xaa,0x6e,0x04,0x2f,0x1f,0x8b +.byte 0xa9,0xdd,0xeb,0x91,0x5c,0x77,0x17,0x99,0x4e,0xc2,0x45,0x69,0x2e,0xcf,0x60,0xc6,0x3c,0xad,0x65,0x33,0x35,0x6f,0xe4,0xd0,0x37,0x1f,0xe2,0x2c,0x66,0x98,0x55,0xe3,0x66,0xa2,0xc6,0x21,0xce,0x63,0x59,0x2e,0xd2,0x2b,0x8a,0x5a,0xcd,0xee,0xa7,0xad,0xf6,0x8c,0x3f,0x44,0x6c,0x12,0x30,0x8d,0xca,0xea,0x46,0x8a,0x4c,0x96,0xf9,0x96 +.byte 0x18,0x10,0x4e,0x46,0xc4,0x3e,0xa0,0x94,0x26,0x9d,0x62,0xd2,0x4b,0xb0,0xbc,0x0b,0xd5,0x56,0xa5,0xd2,0xc1,0x2f,0x2d,0x15,0xd8,0xed,0x97,0x17,0xcb,0x32,0x67,0xc5,0x0f,0x7c,0xde,0xa8,0x8c,0x4d,0xa0,0xb8,0x2e,0xed,0x24,0xd5,0xd5,0x49,0xca,0x77,0x1f,0x48,0x3b,0x83,0x54,0xb2,0xe7,0x7e,0x7a,0xa7,0x5c,0xed,0x7f,0xa1,0x9f,0x05 +.byte 0xd4,0xd4,0x90,0x0d,0xae,0x37,0x4e,0xd1,0x8f,0xd1,0x0a,0xa7,0x63,0x5b,0xb7,0x65,0xcb,0xc8,0xba,0x29,0xec,0x35,0x53,0xb2,0xac,0x32,0xf4,0xb7,0x6a,0xb1,0x69,0xcf,0x56,0x14,0x7f,0xd6,0xc5,0xca,0x88,0x1d,0x49,0xcf,0xfd,0x1f,0xcc,0xb1,0x13,0x30,0x42,0xd0,0x1c,0x6e,0x38,0x8e,0xf9,0x40,0xe7,0xe8,0xd6,0x28,0x1a,0x75,0x31,0xf3 +.byte 0x30,0x46,0x3f,0xb5,0x8a,0x47,0x35,0x4c,0x6e,0xdb,0x26,0x1a,0x25,0xa3,0xd8,0x0b,0x1d,0x51,0x12,0x91,0x4c,0x11,0x76,0x83,0x19,0xad,0x2a,0x3e,0xb4,0x1c,0x3c,0xfc,0x14,0x20,0x84,0x58,0x7b,0xc3,0x94,0x68,0x60,0x5c,0x3f,0x7c,0x26,0xb5,0x75,0x41,0x0b,0xc2,0xec,0xf3,0x96,0x5b,0xbb,0x41,0x32,0x00,0x4e,0x68,0xeb,0xf1,0xd9,0x96 +.byte 0xe7,0x00,0xac,0xb0,0x1b,0x39,0x46,0xf1,0xc9,0x18,0x7d,0xb7,0xc4,0x42,0xbc,0x8b,0x09,0x3e,0xa9,0x97,0x2e,0xc6,0xf8,0x38,0xa3,0xe4,0x2c,0x52,0x5d,0x24,0xf7,0xc5,0x15,0xab,0x16,0x5e,0x46,0x2c,0xd8,0xd7,0x4d,0xb3,0xf2,0xfd,0xe4,0x75,0x3c,0x34,0x95,0xb9,0x8c,0x92,0x35,0x42,0x8b,0xc4,0xc8,0x6c,0xd4,0x1e,0x67,0x35,0xd3,0x6d +.byte 0x79,0x85,0xff,0x74,0xbe,0x40,0x07,0x27,0x75,0x2c,0xea,0x04,0xcc,0xa2,0x72,0x80,0x97,0x5f,0xfe,0x8a,0x56,0x0f,0xf4,0x6d,0xa4,0x61,0x04,0x4b,0x5e,0xb4,0xe2,0xd8,0x87,0xb6,0xfd,0x3d,0x00,0x8a,0xa9,0xe4,0x62,0x5f,0x4f,0xec,0x1e,0x40,0x28,0x6b,0x21,0x0f,0x50,0x26,0x97,0xa0,0x25,0x8f,0x3e,0xf2,0x69,0xdc,0x36,0xe5,0xb8,0xdb +.byte 0x01,0x7d,0xfb,0x73,0x7d,0x3e,0xf7,0x55,0x41,0x39,0xe0,0x33,0x0d,0xe3,0x4b,0x6b,0x7b,0x3e,0x6e,0xdc,0x7d,0x9a,0x6e,0x35,0xb0,0x38,0x13,0x92,0x80,0xa1,0xe6,0xbf,0x03,0x9d,0xb7,0x7f,0x55,0xce,0x46,0x3c,0x22,0xc7,0xfa,0xfb,0x18,0xba,0x06,0xa0,0x09,0x78,0x3f,0xc0,0x79,0x5f,0xe6,0x6a,0x29,0xaf,0xd1,0xc7,0x84,0xa7,0xed,0xb9 +.byte 0xb6,0x82,0x81,0xc1,0x53,0xee,0x00,0x34,0xa8,0x81,0xdf,0x5a,0xd3,0x07,0x7e,0x2e,0x17,0x40,0xa1,0x2b,0xf4,0x2a,0x1f,0x9a,0x67,0x75,0x73,0xa8,0x58,0x65,0x17,0xdf,0xf1,0x84,0x76,0xc5,0x8d,0x48,0x93,0xe1,0x28,0xa5,0x73,0x10,0x6e,0x9e,0x39,0x03,0x69,0x52,0xdf,0xf9,0x46,0x7c,0x5b,0xf3,0x5b,0x9a,0x63,0xd9,0x4f,0xf5,0x8e,0x73 +.byte 0xed,0x33,0x7d,0x23,0xb9,0x6c,0x3c,0x9b,0xa7,0xcf,0x7f,0x34,0x6f,0x97,0xe2,0xfe,0x0a,0x8b,0xe1,0x86,0x83,0x91,0x2e,0xdd,0x6b,0xb1,0xbf,0xa6,0x92,0x4f,0x30,0x79,0x68,0x91,0x3e,0x06,0x17,0xe9,0x0b,0x25,0x07,0xa6,0x88,0x91,0x6c,0x6e,0xc8,0xd8,0xdc,0x68,0x5e,0x45,0xf2,0x55,0xef,0x56,0x38,0x29,0xd0,0x89,0x40,0x58,0x51,0x9f +.byte 0x5f,0xa4,0x08,0xc6,0x94,0x34,0xd2,0x6f,0x59,0x0f,0x6e,0xca,0x85,0x7f,0x56,0x3f,0xac,0x8f,0x25,0x0f,0x47,0xe3,0x9e,0x40,0xed,0xd8,0xae,0x30,0x0d,0xb4,0x47,0x40,0x4b,0xa3,0x23,0x1b,0x7f,0x0f,0xff,0xdf,0x6f,0x1d,0x87,0xb2,0x94,0xa0,0x36,0xbb,0x53,0x13,0x1e,0xaf,0x92,0xf8,0x07,0x95,0xc7,0xe4,0xa8,0x41,0xa9,0xed,0xf0,0x08 +.byte 0xfc,0xc1,0x4a,0xed,0x9a,0x4f,0x13,0xc5,0xed,0x8a,0x95,0xf5,0x69,0xf7,0xee,0x75,0xb6,0x4d,0xba,0x8f,0x65,0x23,0xe8,0x50,0x9e,0x7a,0xd7,0x28,0x3a,0x49,0xe7,0x4c,0x7c,0xc6,0x64,0xbd,0x8c,0x17,0x14,0x0b,0xb5,0xe3,0xb4,0xab,0x0b,0x9a,0xa9,0x29,0x84,0xaa,0xba,0x69,0xc4,0x2e,0xbf,0xca,0x57,0x0d,0xd3,0x36,0x21,0x61,0x00,0x13 +.byte 0x95,0xe3,0xf8,0xa6,0x64,0x74,0x02,0xb5,0xbf,0x86,0x07,0xde,0x67,0x48,0x23,0xe0,0x24,0x96,0x3a,0x86,0xb2,0xfa,0xa7,0x75,0xb4,0x26,0x42,0xcb,0x96,0x4e,0xf7,0x90,0xae,0xa5,0xe4,0xd0,0x45,0x31,0xe7,0x0f,0xe0,0xcb,0xbf,0x94,0x94,0x33,0x4f,0x65,0x04,0xfb,0xc0,0xc4,0x3f,0x51,0xa5,0xf3,0xea,0xc8,0xd5,0x23,0x66,0xe0,0x48,0x09 +.byte 0xba,0x6a,0x27,0x50,0xec,0xae,0xd2,0x2a,0xe6,0xf9,0xe4,0xde,0x35,0x6e,0xcc,0x82,0x76,0xfc,0x36,0x16,0xe1,0x9f,0xc7,0x0d,0xc1,0xc9,0x6a,0x23,0xbe,0xa1,0x3c,0xfd,0xce,0xa7,0x2e,0x91,0x36,0x23,0x5a,0x20,0xdf,0x55,0xc5,0x91,0x32,0x5c,0x62,0x49,0xe7,0x8b,0x0b,0x0e,0x9c,0x2e,0xee,0x1f,0xfe,0xca,0x00,0xfc,0x55,0xd7,0x9c,0x0a +.byte 0x75,0xaa,0xb0,0x46,0x90,0x55,0x2b,0x46,0xab,0x98,0x9d,0xab,0x0e,0x12,0x03,0x58,0xf1,0x4a,0x68,0x59,0x74,0xc9,0x37,0x6d,0x6f,0xe6,0xd3,0x73,0xf1,0xa3,0xdd,0xbe,0x85,0xca,0x74,0xc6,0xb6,0x51,0x6f,0x83,0x6f,0xa1,0x80,0x00,0x00,0x78,0x0a,0xa7,0xff,0xa7,0xe2,0x2e,0x5f,0x4f,0x31,0xbb,0x1b,0x99,0x21,0x33,0x59,0x6e,0x03,0x38 +.byte 0x10,0xd9,0x98,0xf2,0x0c,0xad,0x08,0x6b,0x00,0x49,0xb5,0x5e,0x11,0x60,0x70,0x49,0xff,0x79,0xac,0xba,0x30,0x3d,0x69,0x9f,0xaf,0xfb,0xd7,0xeb,0xe2,0xcd,0x0d,0x97,0xb9,0x94,0xc8,0x6e,0x06,0x3b,0x64,0x80,0x71,0x8f,0x81,0xb0,0x58,0xe0,0xc7,0xbd,0x27,0x6a,0xd4,0xb7,0xd9,0x6c,0xc1,0x44,0x38,0xe1,0x36,0xbc,0x0a,0x33,0x26,0x01 +.byte 0x25,0x90,0xbc,0x0a,0xc2,0xa3,0xbb,0xfc,0xeb,0x0b,0x1a,0x38,0x98,0x26,0x93,0xf5,0x2d,0x29,0x41,0x83,0x3b,0xba,0x40,0x46,0xf3,0xf6,0xfd,0x53,0xb9,0x7a,0x60,0x01,0x8a,0x8d,0xb4,0x57,0xd8,0xf3,0x36,0x72,0x22,0x2f,0x59,0xd3,0x7f,0x25,0xf2,0x05,0x61,0xfa,0x18,0x28,0xac,0xd5,0x14,0x00,0xaf,0x8b,0x7c,0x39,0xb5,0xa2,0xcb,0x1e +.byte 0x62,0x14,0xcb,0x10,0x76,0x17,0x23,0x2c,0xc8,0x25,0xac,0x37,0x9e,0x83,0x81,0x83,0xfe,0x2e,0x2c,0xd2,0x3f,0xf8,0x58,0x2b,0xf1,0x7f,0x4f,0xe1,0x17,0xc7,0xf7,0xad,0x57,0x67,0xc2,0x57,0x77,0x2e,0xfb,0xf2,0xce,0xa9,0x74,0x81,0x47,0xf8,0x5a,0x88,0x76,0xb1,0x43,0x75,0xc8,0xc4,0xc8,0x60,0x1e,0xd7,0xd1,0x1c,0xce,0x89,0x82,0xc6 +.byte 0x77,0x8d,0x87,0xe8,0xd0,0x5b,0x0c,0xf0,0x44,0x48,0x8d,0xee,0x55,0xc6,0xe4,0x2c,0x2c,0x41,0x75,0x5d,0x5a,0xd2,0xa3,0x1d,0x32,0x85,0x08,0xcf,0x03,0x3a,0x3c,0xfe,0x65,0x75,0xef,0xd2,0xa6,0x22,0x16,0x66,0x39,0x30,0x05,0xe3,0x57,0xab,0x71,0x6d,0x28,0xd5,0x2f,0xc6,0xa8,0x25,0x46,0x14,0xfd,0x7e,0xa2,0x67,0x7e,0x20,0x91,0xc2 +.byte 0x2b,0x03,0xdd,0xac,0xaa,0x1a,0xb5,0x2a,0x04,0xd6,0x15,0x9d,0x3f,0x54,0x24,0x7c,0x75,0xab,0x77,0xd9,0x6c,0x85,0xa2,0xf9,0x33,0xeb,0xeb,0xc0,0x27,0xcd,0x9d,0x58,0xae,0xa3,0x34,0x10,0xae,0x85,0x7d,0x4c,0x15,0x4c,0x90,0x46,0xe0,0x5b,0xec,0xa7,0xb2,0x68,0x85,0x01,0xed,0xf9,0x4a,0x85,0xe3,0xb6,0xea,0xe2,0x53,0xc0,0x32,0x83 +.byte 0x73,0x05,0x77,0xac,0xb5,0x96,0xaa,0xf0,0x9c,0x2c,0xa4,0xd2,0xd4,0xbf,0x74,0x2f,0x39,0x47,0x22,0x99,0x50,0x06,0x5f,0xcb,0x99,0xc5,0xc9,0x2e,0x70,0xd6,0x68,0x6a,0xc4,0x73,0x41,0xcb,0x8b,0xfd,0x23,0x98,0x11,0x59,0xad,0x20,0x8a,0x0d,0xaf,0xaa,0xd0,0xe2,0xeb,0x32,0x8b,0x6f,0x0e,0x43,0x12,0xe3,0x27,0x8f,0xf6,0xa4,0x76,0x0b +.byte 0xfb,0x22,0xad,0xda,0x1c,0x0a,0x3e,0x90,0xc0,0x7d,0xf3,0x09,0xbc,0x17,0x33,0xef,0xf1,0xf2,0x84,0x80,0x2a,0x0b,0x82,0xd7,0x95,0xc7,0xd2,0x08,0x4a,0xf4,0xf5,0x6d,0x09,0x06,0x8e,0xe4,0x74,0x63,0x8f,0x09,0xca,0xe2,0xd9,0x0e,0x1e,0x03,0x20,0x1b,0x4c,0xfb,0x1d,0x5a,0x2e,0x28,0xeb,0x84,0x82,0x6f,0x97,0x6f,0xcd,0x7a,0xc3,0xa7 +.byte 0x79,0x73,0x66,0x0c,0x94,0xd5,0xf4,0x8f,0x2c,0x73,0x1f,0x24,0xbc,0x17,0xee,0xd5,0xb0,0xa6,0xb8,0x04,0x6d,0x6a,0xd0,0x61,0xe3,0x1a,0x49,0x97,0x94,0xc5,0x8e,0xbc,0xac,0x5b,0x0b,0x0a,0xc5,0x74,0x06,0x89,0xee,0xc2,0xb7,0x5f,0x1b,0xa1,0x6b,0x1a,0xff,0xed,0xda,0x90,0x91,0xc1,0x0d,0x6a,0x06,0xd6,0xcb,0x02,0x71,0x17,0x95,0x7d +.byte 0xc6,0x3b,0x7e,0x6b,0xc8,0x73,0x03,0x0d,0x6b,0x8f,0x73,0x56,0x59,0x2e,0x09,0x23,0x4e,0xda,0xfc,0x4e,0xfc,0xa4,0x42,0x15,0x2e,0x10,0x6a,0x97,0x48,0x3c,0xb4,0xa4,0x0c,0x64,0x21,0xc3,0xeb,0x6c,0xac,0x27,0x4f,0x43,0x94,0x91,0x78,0xdc,0xfd,0xad,0x2b,0xa7,0x43,0x42,0xb0,0x51,0xdd,0x63,0xcc,0xcd,0xb7,0x15,0xfa,0x13,0x8d,0xc7 +.byte 0x55,0x3a,0x74,0x17,0x23,0x36,0x3e,0x23,0xe1,0x42,0x90,0xe1,0xb7,0xc7,0xda,0xb7,0x57,0xeb,0xc3,0xfb,0x62,0x58,0xbf,0x31,0x2a,0xfb,0xc7,0xdb,0x3d,0xfc,0x87,0x32,0xb1,0x3e,0xe5,0x3d,0x94,0x3d,0x86,0x32,0x61,0xfe,0x19,0xd2,0x32,0x31,0x8b,0x43,0xdb,0xab,0xa4,0xe5,0x34,0xc8,0x30,0xae,0x8c,0x02,0x53,0x99,0x35,0xb4,0x56,0x38 +.byte 0x37,0xcf,0xff,0xb0,0x05,0x21,0x12,0x65,0xc4,0xb3,0x9c,0x83,0x95,0x12,0xd3,0x03,0x7a,0x80,0x97,0x5b,0x67,0x33,0x27,0xfc,0x43,0xf2,0xf7,0xaa,0x60,0xb6,0xfc,0x55,0x44,0x30,0xa3,0x4a,0xa3,0x60,0x31,0xf7,0x01,0xfa,0xb0,0x8d,0x82,0x29,0xa7,0x03,0xb7,0x7e,0x3f,0xe5,0x66,0x26,0xb7,0x51,0xcf,0x8d,0xdd,0x6f,0x83,0x39,0xfc,0x9b +.byte 0xa5,0x3d,0xb6,0x41,0x89,0x54,0xc3,0xb2,0xf0,0x24,0x64,0xcb,0x53,0xfd,0x0a,0x91,0x6c,0x6f,0x28,0xfe,0xc1,0xe9,0x17,0x2e,0x65,0x55,0x2e,0xf2,0x48,0x52,0xb1,0x69,0xf0,0xdd,0x42,0xd5,0xdf,0x7c,0x36,0x75,0xdb,0x5b,0x3d,0xa9,0x6d,0xa4,0xeb,0x47,0x4f,0x2b,0x5c,0xd0,0x30,0xee,0xa7,0x74,0x6a,0x64,0x8a,0xbc,0x9b,0xe5,0x82,0x56 +.byte 0x76,0xe4,0x3f,0xf5,0x05,0x59,0x19,0x1e,0x80,0x47,0xf1,0x77,0xac,0x32,0x43,0x80,0x0a,0x1b,0x28,0xb6,0xf4,0xe8,0x7c,0x2f,0xeb,0xa8,0x4b,0x6a,0x59,0xb5,0xf8,0x77,0x68,0xd4,0x86,0x6c,0x87,0xdc,0xc4,0x00,0x4f,0xce,0xdb,0xf6,0x34,0xc3,0x74,0x02,0x08,0xdb,0x0d,0x34,0x8d,0xea,0x49,0x4a,0x30,0x5f,0x1b,0xcd,0xa6,0x3a,0x34,0x94 +.byte 0x5f,0x32,0x6a,0x62,0x96,0x4b,0x51,0x89,0x30,0xc9,0x90,0xdf,0x77,0x73,0x0e,0x3c,0x5c,0xbd,0x5c,0xee,0xd9,0x77,0xea,0x23,0x42,0xaa,0xa5,0x6b,0xf9,0x8c,0xc4,0x70,0x68,0xdd,0x0b,0x65,0xa3,0xc7,0xe4,0x7b,0x0a,0x89,0x85,0x25,0x7d,0x84,0x99,0x39,0xe6,0xb8,0xbe,0x7f,0x31,0x0f,0x84,0x0c,0x98,0x72,0xab,0x4c,0x44,0xb0,0xa4,0x83 +.byte 0x90,0xbb,0x93,0x73,0x07,0x07,0xba,0x63,0x5b,0x61,0x70,0xe1,0x84,0xae,0xaa,0xd6,0xa3,0x5a,0x54,0xd1,0xea,0xc7,0x2c,0x7b,0x67,0x4b,0x8a,0x7f,0x66,0x28,0x8d,0x22,0xec,0x82,0x64,0x69,0x63,0xf0,0x53,0x2d,0x10,0x9c,0x9c,0x34,0x4f,0xc6,0x96,0x40,0xdb,0xce,0x0e,0xf7,0x3a,0x8a,0xee,0x3f,0x32,0x5f,0x2b,0x0c,0x4a,0xbc,0x63,0xfb +.byte 0x18,0xf6,0x26,0x57,0xc9,0x13,0x13,0xb7,0xe0,0xcc,0x3e,0x4e,0x73,0xfa,0xe2,0x54,0xc1,0x67,0xfe,0xe2,0xec,0xfd,0xaf,0xf9,0x96,0x99,0x9f,0xe9,0xe2,0xd0,0x94,0x39,0x33,0xc9,0xca,0x35,0x27,0xad,0x58,0x46,0x98,0x64,0x17,0x5f,0xe9,0xce,0x4b,0xc8,0xab,0x0d,0xd2,0x88,0xec,0xbb,0x5c,0xba,0xc1,0x30,0x4c,0xd4,0x99,0x0d,0x07,0x95 +.byte 0x0a,0xa5,0xeb,0xa6,0x10,0x4b,0x4d,0x77,0x14,0x76,0x88,0x43,0x7f,0x6b,0x5d,0x9b,0x87,0x1d,0x6b,0x5d,0xb9,0x04,0xa9,0xc7,0x28,0x18,0x70,0xa1,0x99,0xbc,0x99,0xf5,0xf1,0x71,0xa9,0x3a,0xb6,0xe5,0x98,0x98,0x8f,0x7a,0x6c,0xda,0x1a,0x63,0x0e,0xf1,0xe8,0x10,0xa3,0x7c,0x64,0x7e,0xde,0x2a,0x59,0x1b,0x04,0xca,0x69,0x8e,0xba,0x2f +.byte 0x56,0xe1,0xa7,0xab,0x4f,0xe4,0x9d,0x49,0x33,0x9e,0x4e,0x5b,0xe1,0x58,0xc4,0x3f,0x99,0x5a,0x69,0x00,0xe5,0x5f,0x85,0xcb,0x62,0x80,0x5e,0x3d,0x88,0x0a,0x32,0x42,0xc1,0xf9,0x6a,0xa0,0xeb,0x65,0x2f,0x17,0x62,0x25,0x96,0x50,0xa2,0x6e,0xd6,0xdf,0x09,0xb7,0x1e,0x68,0xb2,0x10,0x2b,0xf3,0x9e,0xb2,0x67,0x75,0x9b,0xe3,0x76,0xfe +.byte 0x95,0xbe,0x83,0xcb,0xba,0x77,0x5b,0x2d,0x5f,0xdd,0x94,0xbb,0x0e,0x5d,0x83,0xa2,0xe7,0x48,0x4c,0x84,0x86,0x41,0x47,0x4b,0x96,0x24,0x89,0xa8,0x20,0x04,0xa5,0xef,0x8e,0xb6,0xeb,0xcd,0x3c,0x77,0xc5,0x65,0x5c,0xff,0xa6,0x0d,0x2b,0x58,0x21,0x5a,0x11,0xe2,0x24,0x64,0x1c,0xd6,0x18,0x9a,0xac,0x3f,0x42,0x0e,0xeb,0x32,0x3e,0xed +.byte 0xce,0x61,0xc9,0xe4,0xe7,0xd3,0x3f,0x53,0xa4,0x80,0x2b,0x1c,0xc0,0x99,0x63,0x52,0x93,0x5e,0xdc,0x78,0xe2,0x35,0x9e,0xb2,0xb4,0x1d,0x09,0xd1,0x5c,0x1c,0x4e,0xdb,0x3a,0x5d,0x8c,0x94,0x7d,0xfe,0x63,0xf2,0xa3,0xe9,0x61,0x73,0x78,0xc1,0xd9,0x17,0x5e,0x9a,0x73,0x58,0xc3,0xe7,0xa0,0x1f,0x2a,0x62,0x15,0xf8,0xdb,0xbb,0x38,0x80 +.byte 0x57,0xd3,0x1f,0x4c,0x4a,0x20,0x30,0xa9,0x7a,0x78,0x61,0xd9,0x90,0xb7,0x4f,0xd6,0x46,0x72,0xe7,0x41,0xb2,0xbb,0xfb,0x50,0xfe,0xe1,0xba,0x3e,0x73,0x2f,0x81,0x6d,0x2b,0x0b,0x90,0xbd,0x8a,0x3b,0x23,0x88,0xa2,0x7d,0x62,0x87,0x96,0xc9,0xcc,0x66,0x28,0x89,0xa7,0x29,0x41,0xd2,0xc5,0x5b,0xdb,0xc4,0x0c,0xbb,0x19,0x4e,0xd5,0x12 +.byte 0x53,0x48,0x5c,0xf2,0x9b,0x62,0xd0,0xa3,0x77,0x40,0x85,0x12,0x2b,0x2d,0x52,0x1b,0x31,0xbd,0xe9,0x1c,0xd4,0x87,0xa4,0xd7,0xc9,0x14,0xb7,0x39,0x66,0x8c,0xfe,0x3e,0x83,0x00,0x01,0xae,0x44,0x2d,0x7d,0xa1,0xda,0x66,0xb0,0x66,0xcb,0x62,0x55,0x9f,0x92,0x80,0x4e,0x8d,0x7f,0x70,0x95,0xc2,0xf2,0x1b,0xe9,0x35,0xf8,0x42,0x04,0x65 +.byte 0xf2,0x36,0x4c,0x96,0x30,0xd3,0x47,0x9d,0xb7,0x2b,0x76,0xac,0x75,0xb5,0xb8,0xf1,0x7d,0xa2,0x36,0xef,0x9d,0xa7,0x60,0x51,0x8d,0xcf,0x00,0x3d,0xdb,0xcc,0xe9,0xe2,0xc4,0x7b,0x3a,0xeb,0x2b,0xc3,0xd8,0x0b,0xb0,0x58,0x41,0xa0,0x47,0xab,0x07,0xf5,0x7c,0x9e,0x0b,0x7a,0x16,0x8f,0xb4,0xca,0x09,0xed,0x84,0xa1,0xfa,0xdc,0x7c,0x3c +.byte 0xdd,0x2f,0xb0,0x2d,0xeb,0x93,0x28,0xf5,0x1e,0x0c,0x1a,0x0c,0x35,0x27,0x40,0xf2,0x22,0x66,0x2d,0x82,0xf2,0x94,0x03,0xa5,0x4b,0x84,0x92,0x1d,0x98,0xd5,0xd9,0x09,0x6a,0xfd,0x65,0xe5,0xa1,0x0e,0xe2,0xd9,0xb6,0xd1,0xba,0xbf,0xc7,0x42,0x22,0x39,0x83,0xbf,0x37,0xf6,0x80,0xc2,0xea,0xdf,0xb9,0x33,0xa0,0xaf,0xd7,0xe3,0x70,0x9a +.byte 0x5c,0xf8,0x1a,0x47,0x2b,0xb5,0xdd,0x15,0xe3,0x08,0xc8,0x37,0xe3,0xc2,0x25,0x87,0x0e,0x3c,0xc5,0xae,0x61,0xa4,0x4a,0x56,0x50,0x08,0x58,0x68,0xa3,0x4a,0x28,0x08,0xef,0x92,0xd5,0x13,0x50,0x09,0x76,0x34,0x47,0xae,0xa8,0x7f,0xa5,0x2b,0x13,0xb7,0x5a,0x96,0x65,0x62,0xf2,0xaa,0xb4,0x4b,0x2a,0xad,0xea,0x2c,0x0d,0x1e,0x97,0x82 +.byte 0xe4,0x6f,0xfe,0xf4,0x88,0x14,0x7b,0xba,0x45,0xbe,0x61,0x56,0xd2,0x37,0x1b,0x65,0xb8,0x0b,0x77,0xcb,0x3c,0xfe,0x9f,0xe3,0x39,0xc5,0xfb,0x2a,0x18,0x9b,0x60,0x99,0xd5,0x6f,0x52,0xfe,0xd8,0x04,0x88,0x1c,0x9a,0x50,0xe5,0x3b,0x33,0x3f,0xca,0xc5,0x5b,0x9c,0x5f,0x35,0x13,0x65,0xa6,0x21,0x78,0x19,0xeb,0xff,0x35,0x70,0x81,0xaf +.byte 0x19,0x23,0x61,0xd6,0xeb,0xff,0xa6,0x9e,0x5d,0x3f,0x7f,0x89,0x2e,0x22,0xa4,0x0b,0x9c,0x4f,0xa9,0xff,0xbb,0x23,0x29,0xa1,0xf4,0x8a,0xb7,0x4b,0xfb,0xbf,0xeb,0x0a,0x47,0x87,0x78,0x2b,0x20,0x38,0x82,0xab,0x7e,0x2c,0xdc,0x08,0x2b,0xb4,0xae,0xd8,0x64,0x44,0x1a,0xdf,0x21,0x62,0x27,0xf2,0x61,0x63,0x37,0xad,0xd4,0x06,0x4e,0xae +.byte 0xba,0xeb,0x08,0xfa,0xe5,0xad,0x5d,0xcf,0xce,0x38,0xe5,0xca,0x74,0x83,0x42,0x4b,0xe8,0x8f,0xfb,0xff,0x83,0x4d,0x27,0x88,0x43,0x62,0xdd,0x80,0xa2,0x06,0x98,0x48,0x58,0x6f,0x54,0x16,0x6f,0xbf,0x81,0x36,0xc8,0xf3,0xea,0x4b,0xf7,0x5a,0x7b,0xb7,0xf4,0xa4,0x5e,0x22,0x52,0xe7,0x9e,0xb1,0xb6,0x7a,0xa8,0x22,0xee,0x68,0x82,0x8f +.byte 0xe4,0xcb,0xad,0x71,0xef,0x53,0xf2,0x7d,0xed,0x91,0x9e,0xf6,0x90,0x9e,0x54,0x19,0x30,0xaf,0x4a,0x17,0xc0,0x6a,0x9c,0x49,0x12,0x8b,0x6f,0xc7,0x47,0x1e,0xa2,0x64,0x28,0x1f,0x0c,0xd3,0x3e,0x59,0x66,0x8c,0x2e,0x11,0x52,0x6c,0x69,0x66,0x10,0xfb,0x27,0xe6,0x1c,0xae,0x6f,0x44,0x87,0x86,0x0d,0x3e,0xd3,0xa0,0x80,0xef,0x30,0xb9 +.byte 0xb8,0xd7,0x47,0x84,0x68,0x2b,0xf2,0x32,0x7b,0x89,0x93,0xd2,0x83,0x56,0x35,0xc3,0xbf,0x5c,0x24,0xec,0xad,0x2d,0xa4,0x49,0x63,0x89,0xc6,0xf9,0x24,0x51,0x1c,0x9b,0xd1,0xcb,0x30,0x82,0xda,0xb3,0xa7,0xe1,0x4d,0x96,0xd0,0x44,0x44,0x1d,0x4e,0xd7,0x7d,0x7a,0x51,0x2e,0x2f,0xc4,0x9f,0xdb,0x06,0x53,0xfc,0x51,0x56,0xe5,0xb9,0x6b +.byte 0x4a,0x2c,0x3e,0x62,0xc5,0x9c,0x42,0xe3,0xaf,0x3a,0x0f,0x0e,0x74,0x29,0x66,0x70,0x75,0x2a,0x06,0xd4,0x0f,0x0c,0xfd,0xea,0xcc,0x39,0xd0,0xa7,0x47,0x75,0x92,0x44,0x09,0xa2,0x3c,0x4e,0xad,0xaa,0xc4,0xc6,0xf9,0x35,0x82,0x23,0x25,0x43,0x94,0x26,0x14,0xde,0xf1,0xb9,0xb8,0xe0,0x75,0xe0,0x48,0x70,0x8a,0xc6,0x3c,0x72,0x98,0x72 +.byte 0x8b,0x15,0x58,0x17,0x73,0x29,0x67,0x21,0x56,0xc4,0x25,0x17,0x68,0xbe,0xd7,0x36,0x05,0x4b,0x58,0xa2,0x1b,0x64,0xe5,0x11,0x96,0x5a,0x3b,0xa6,0x90,0xb6,0x2d,0x7e,0x55,0xbb,0x31,0x93,0xe7,0xcc,0x2e,0x74,0xb6,0x9b,0x4d,0x04,0xc5,0x45,0x9b,0x0b,0x26,0xef,0x61,0x23,0x3d,0x7e,0xee,0x01,0x57,0xfa,0x77,0x12,0x47,0x64,0xac,0x8f +.byte 0x25,0xbe,0x8e,0x2e,0x68,0x11,0x95,0xf0,0x1a,0xd2,0x3d,0x66,0xc1,0xdb,0x97,0x9e,0xbb,0xba,0xc1,0x66,0xa4,0xb5,0x71,0x01,0xee,0xf5,0xbb,0x1e,0x9f,0x41,0xfc,0x40,0x74,0x26,0xf7,0xc6,0x2c,0x9c,0x1c,0x59,0xce,0xcf,0x18,0x17,0x81,0x5d,0xd4,0xe3,0xd8,0x46,0x62,0x9e,0x97,0xb1,0xca,0xac,0x01,0x3e,0xf8,0x96,0xa2,0xee,0xe0,0xf8 +.byte 0xf3,0x2d,0xe9,0xd2,0x1f,0x9f,0x41,0xbb,0x2f,0xe5,0x64,0x6d,0x5b,0xe7,0x47,0x0e,0x83,0x7b,0x08,0x5e,0x29,0x35,0x2f,0x75,0x31,0x44,0x4c,0xb7,0x61,0xa4,0x03,0x2e,0x15,0x94,0x7a,0xa0,0x46,0x31,0x7b,0x43,0xd9,0x14,0xa3,0x34,0x0c,0x83,0x93,0x75,0x8e,0x3a,0x1c,0xc3,0xe1,0x36,0x18,0x96,0x7a,0xfb,0x77,0xad,0xbb,0xe9,0x0d,0x4b +.byte 0x21,0x04,0x2e,0xdd,0x7a,0x63,0xc9,0x60,0xb1,0x9b,0xad,0xde,0x1f,0x65,0x8a,0x58,0x18,0x84,0x95,0xa9,0xac,0x3a,0xac,0xcb,0xb7,0xa9,0xeb,0x0c,0x7c,0x3a,0x98,0x9a,0x3f,0x56,0x23,0x51,0x58,0x59,0x4e,0xf5,0x57,0x60,0xe6,0x9d,0xf8,0xf7,0xed,0x9d,0x81,0x14,0x68,0xbe,0xaf,0x19,0xe5,0xb5,0x9b,0x5f,0xe4,0x51,0x44,0x4b,0x23,0x42 +.byte 0xdd,0x92,0x1a,0xe5,0x7e,0xef,0x77,0xbe,0x88,0x77,0x1e,0x8a,0xbd,0x2a,0x77,0xb1,0x0d,0x1b,0xe3,0x8a,0x7f,0x15,0x71,0x93,0xc9,0x5f,0x78,0x2d,0x77,0x9b,0x0c,0xad,0x76,0x3c,0x6b,0xe2,0x15,0x8e,0xe1,0x5e,0x1d,0x90,0xa5,0xd6,0xc7,0x55,0x5d,0x52,0xf7,0xcc,0x82,0x9b,0xdc,0x1d,0x80,0xa4,0xc7,0xbe,0x7c,0x4f,0xda,0x81,0x91,0x78 +.byte 0x88,0x0e,0x31,0xde,0x87,0x4c,0xdc,0x84,0x9a,0x65,0x89,0xfa,0x22,0x3e,0xde,0x3b,0x7f,0x7f,0x9b,0x3f,0x3e,0xda,0x13,0x31,0x59,0x7b,0x08,0x48,0x39,0x37,0xfd,0x1a,0x4f,0xa3,0x12,0xba,0xe5,0xd6,0xfa,0xa3,0x59,0x0b,0x3b,0x7d,0xde,0xc0,0x51,0xce,0x92,0x6b,0x3d,0x4b,0xd2,0xa4,0x68,0xc2,0x32,0x2d,0x01,0xbd,0x66,0x98,0x8f,0xa0 +.byte 0x86,0xfb,0x08,0x36,0xa9,0xd4,0x3b,0x7b,0x01,0x2d,0xaa,0x8c,0x64,0x19,0xa6,0x62,0x24,0x92,0x5e,0xc5,0x02,0x17,0x8e,0xf0,0x88,0xe9,0xd1,0x8b,0x69,0xda,0xed,0x9c,0x60,0x32,0xab,0xc0,0xbc,0x84,0x64,0x6e,0x32,0xb2,0xcd,0x24,0xf6,0xb2,0x9d,0xf5,0xf5,0x71,0xe2,0x01,0xbc,0x77,0x6a,0x5b,0x26,0x56,0xf7,0x04,0x84,0xff,0x7c,0xa4 +.byte 0xe8,0xa8,0x82,0x6c,0x40,0x24,0x93,0x3c,0x6e,0x7d,0x0d,0x22,0xd0,0xe4,0xef,0xc4,0x4e,0x26,0x66,0x61,0x75,0xe9,0x06,0x69,0x06,0xfd,0x97,0x68,0x96,0x67,0xec,0x96,0x09,0x73,0xe4,0x0a,0x3e,0xaa,0xb8,0x25,0x77,0x00,0x91,0x7a,0x2e,0xc8,0x81,0x75,0x78,0xb7,0xa5,0x27,0x55,0xf2,0xcf,0x9a,0xab,0xab,0x51,0x0a,0x65,0x47,0xbf,0x10 +.byte 0xd2,0x19,0x78,0x6b,0x35,0xf4,0xef,0x12,0x2b,0x5f,0x0c,0x28,0x7c,0xe8,0x64,0x55,0x2f,0x26,0x85,0x91,0x7a,0x9d,0x48,0x76,0x12,0x14,0x2d,0x4a,0x8a,0xd6,0xfa,0x7b,0xf9,0xc7,0x24,0x45,0xf6,0xbd,0x47,0xab,0xc6,0x4b,0x9e,0x39,0x77,0x57,0x04,0xa8,0x4d,0x43,0x99,0x5c,0xb1,0x3d,0xc2,0x4e,0xc5,0x17,0x66,0xc4,0xb6,0xdd,0x92,0x80 +.byte 0x85,0x3b,0x07,0x63,0x16,0x5f,0x67,0x76,0x9b,0xb5,0x8e,0xca,0x97,0xbb,0xf4,0x20,0xd0,0x4d,0x7b,0xd0,0xa3,0x74,0x6f,0x8a,0x68,0xc7,0x31,0x78,0x1b,0x72,0x45,0xa4,0xc4,0xf8,0xf8,0x26,0xa8,0x4d,0x08,0x2f,0x7b,0x3d,0xa0,0x2a,0xb5,0x65,0x27,0xc2,0x36,0x13,0x2d,0x8d,0x83,0xeb,0xf4,0x08,0x26,0x41,0x8b,0x32,0xf3,0x09,0x70,0x70 +.byte 0x5d,0x8a,0xcc,0xb8,0xe9,0xf7,0x08,0xdf,0x5f,0x4a,0xb8,0x8a,0xb7,0x1b,0xad,0xe2,0xc3,0x39,0x59,0xe0,0x7f,0xd0,0x66,0x7b,0x99,0x5a,0xde,0x52,0xe2,0x1f,0x47,0xc2,0x63,0x74,0x7a,0xa5,0x88,0xc3,0x24,0x70,0x4a,0x7d,0xdd,0xa4,0xe6,0xf8,0xfd,0x5c,0xfa,0x8c,0x4c,0x0f,0x52,0x95,0xf3,0x2c,0x76,0x47,0x7a,0xe8,0xdb,0xe0,0x9b,0x49 +.byte 0x88,0x5b,0x87,0x5a,0xd1,0x07,0x24,0x06,0x83,0x3b,0x25,0x23,0xe7,0xaa,0x79,0xef,0x74,0x02,0x12,0xfe,0x47,0x5c,0x77,0x73,0xf7,0x2e,0x4b,0x58,0x3b,0x60,0x7b,0x91,0x2f,0x0d,0xb4,0x6d,0x00,0x80,0x19,0xaa,0x88,0xbc,0xb2,0x7b,0xd9,0xb7,0xdd,0x32,0x47,0x62,0xf5,0x0f,0x46,0x95,0x4c,0x6c,0x01,0x67,0xfb,0xe4,0x2b,0xac,0x95,0x84 +.byte 0x25,0x0a,0xe5,0x4c,0x2d,0x4a,0x6e,0x77,0xfd,0xeb,0xe1,0x53,0xc9,0x2e,0x70,0x01,0x32,0x05,0x6d,0xc5,0xc9,0x5d,0x90,0xca,0x56,0xd1,0xd8,0x40,0x2a,0x51,0x4d,0x95,0xc3,0x57,0x8b,0xdd,0x62,0x9c,0x69,0xd1,0x03,0x89,0x95,0x38,0x2c,0xc1,0x6d,0x41,0xf2,0xc3,0xa2,0x9c,0x43,0xea,0xf1,0x02,0x00,0x56,0x46,0xbb,0x87,0x35,0x40,0x0e +.byte 0x18,0x51,0x29,0x39,0xbb,0x6d,0x15,0xf2,0xcd,0x54,0x23,0x95,0x69,0xdc,0x0a,0xb2,0x26,0xd9,0x25,0xe1,0xf1,0x07,0x7b,0x5e,0xc3,0x30,0x68,0x5f,0x2a,0xce,0x91,0x92,0x03,0x0c,0x62,0x11,0x43,0x80,0xe5,0x12,0xec,0xe3,0x4f,0x90,0xfe,0x38,0x6e,0xe9,0x7e,0x94,0x83,0x26,0x59,0x3f,0x3f,0x81,0xc6,0x94,0x98,0x09,0x80,0xff,0x01,0x44 +.byte 0xff,0x77,0x6a,0x4c,0x76,0x91,0xd9,0x12,0x59,0x9a,0x00,0x7c,0x87,0x06,0x17,0xf7,0x12,0xc7,0xee,0x04,0xd5,0x8d,0x68,0xc5,0x8d,0x80,0x10,0xcc,0x14,0x45,0xe8,0xd7,0x43,0x10,0x01,0x9e,0x61,0xc2,0xc0,0x66,0xfe,0xcf,0x5f,0x9f,0xcb,0xa3,0xf8,0xc7,0x07,0x41,0xe3,0xf2,0xda,0x6e,0x01,0x76,0xc6,0x49,0x49,0x01,0xc7,0xcf,0x6a,0x20 +.byte 0x71,0xc5,0xf0,0xb1,0xa0,0xc9,0xed,0xec,0x66,0x71,0x93,0xf5,0xc0,0x27,0x42,0xed,0xd5,0x6f,0x20,0xe1,0x86,0x3e,0xd0,0x5d,0x94,0x17,0x43,0xb4,0x98,0x0d,0x8a,0x31,0x6c,0x59,0xa9,0x0b,0xb3,0xa4,0x0b,0x46,0x0b,0xa8,0x79,0x62,0x3a,0x3d,0xbf,0xef,0x94,0xd3,0x31,0xf2,0xa1,0x55,0xe8,0x92,0x44,0x37,0x62,0x82,0x1b,0x60,0x87,0x67 +.byte 0x85,0x78,0xd5,0x84,0x73,0xa4,0xea,0x56,0x08,0x78,0x68,0x7f,0xfb,0x15,0x20,0x64,0xeb,0x6c,0xf7,0x5e,0xc0,0x79,0x83,0x59,0x7b,0xed,0x2d,0xa9,0x37,0x46,0xf3,0x62,0xb1,0xa1,0x2b,0x48,0x58,0xd9,0x0c,0x03,0xf7,0xf3,0x47,0xeb,0xd7,0x03,0x9b,0x85,0xd3,0xd7,0xd7,0x7e,0xfb,0x1a,0x25,0x83,0xda,0x06,0xa0,0x04,0x0d,0x6b,0x90,0x29 +.byte 0x2a,0xfc,0xcd,0x96,0xe9,0x17,0x4f,0xdd,0x2c,0x90,0xdf,0xf1,0xe3,0x08,0x0a,0xb8,0x0c,0x59,0x2a,0x83,0x62,0x94,0x00,0xd3,0x80,0x1a,0x31,0xd7,0x17,0x70,0xc7,0xa2,0x20,0x17,0x65,0x88,0xae,0x11,0x25,0xc9,0xba,0x76,0xa7,0x61,0x60,0xd1,0x59,0x50,0x22,0xdd,0xaa,0xcf,0x9d,0xc1,0x36,0x7d,0xf9,0x7b,0x69,0xc0,0x98,0xba,0x40,0xd5 +.byte 0xd6,0x46,0x93,0x92,0x7d,0x37,0x3f,0x3a,0x04,0x9a,0x84,0xaf,0x8e,0x61,0x04,0x26,0x54,0x33,0x84,0xc0,0xac,0x21,0x51,0xd7,0x9a,0x93,0x6e,0xf2,0x09,0x87,0xc5,0x35,0xa8,0x96,0xb0,0x64,0x90,0x35,0x52,0xed,0x0e,0xbc,0xdb,0xa6,0x06,0x3e,0xe7,0xea,0x57,0x4b,0xd7,0xc5,0x1c,0x76,0x3d,0x0d,0xc3,0x1f,0x8e,0x4f,0x12,0xdb,0x3a,0x21 +.byte 0x2a,0x69,0xc2,0x94,0xda,0x4c,0x91,0xcc,0xa8,0x36,0x89,0xd7,0x78,0xa8,0x74,0x79,0x63,0x92,0xeb,0x39,0x3b,0x84,0x8c,0xe5,0xc6,0x26,0xf0,0xef,0xcc,0xc1,0x72,0x4b,0x8e,0xcd,0xe4,0xd9,0x00,0x80,0xbc,0xdf,0xe2,0x61,0x53,0x04,0x81,0xb0,0x13,0xc5,0x6c,0x77,0x74,0xa3,0x0c,0x5b,0xef,0xef,0xea,0xc7,0x5b,0xeb,0xbf,0xee,0x54,0xd7 +.byte 0x7a,0x69,0x6e,0x39,0xc2,0xed,0x08,0x44,0x82,0x08,0x16,0x8b,0xf1,0x74,0x5f,0xeb,0x60,0xd5,0x46,0x63,0x80,0x39,0xe9,0x91,0x0a,0x17,0x8b,0xd4,0x09,0xdc,0xa6,0xab,0x6a,0xbc,0xf8,0xe9,0x09,0x19,0xc1,0x83,0x9f,0xdf,0xad,0x6c,0x31,0x94,0xb9,0xc5,0x77,0x83,0xd1,0xd8,0x76,0xeb,0x12,0x3c,0x00,0x31,0xea,0xac,0x97,0x39,0x16,0xd5 +.byte 0x81,0xfa,0x6d,0x10,0x5b,0x3e,0x20,0xe1,0x88,0x5c,0x4b,0xf3,0x04,0xd4,0xc3,0xb9,0xec,0xe5,0xb0,0x13,0xf5,0x09,0x5c,0xe8,0x27,0xe2,0xde,0x9b,0xac,0x2e,0xf2,0xe5,0x2c,0x33,0x4b,0x4f,0xec,0xc7,0x08,0xf9,0xc2,0xd3,0x1b,0x4d,0x81,0x69,0x14,0xa1,0xc5,0x0f,0xb2,0x57,0x8b,0xcc,0xca,0x3b,0xc9,0x9c,0x1f,0xee,0x06,0x4d,0xc7,0x62 +.byte 0xcb,0x8f,0x49,0x81,0xfb,0xa5,0x68,0x81,0x36,0x38,0x33,0x6b,0x9e,0x58,0xd4,0x24,0x67,0xf1,0x30,0xd6,0x08,0x61,0x5a,0x7f,0x2e,0x4e,0xf1,0xd6,0x64,0x75,0x72,0xb0,0xdf,0xcd,0xae,0x04,0x41,0xbd,0x04,0x2c,0x96,0x36,0x34,0x32,0xec,0xbd,0xd0,0xbf,0x8e,0xe8,0x47,0xe3,0x22,0xdd,0x79,0x53,0xcc,0x6a,0x25,0xf1,0x5e,0x63,0x09,0x98 +.byte 0xc5,0x6d,0x0a,0xe3,0x30,0xd6,0x52,0x70,0x21,0xb2,0xef,0x15,0x66,0x4a,0x2d,0x2b,0x5c,0xcb,0x39,0x1b,0x91,0x10,0xa6,0x02,0x22,0xd0,0xcc,0x32,0x50,0x5c,0x70,0x72,0xd1,0x03,0xb3,0x2d,0x2e,0x33,0xed,0xae,0x7a,0x07,0x3f,0x70,0x38,0x35,0xfc,0xcf,0xdb,0xfe,0x7b,0x26,0xd9,0x38,0x1e,0x52,0x07,0x2f,0x72,0x81,0xcc,0xd3,0x21,0x00 +.byte 0x63,0x48,0x38,0x44,0xb8,0x35,0xf2,0x4f,0xe5,0x33,0x8c,0xb3,0x07,0x0c,0xac,0x3d,0x73,0xe8,0xe3,0xb3,0x43,0xc5,0xb4,0x32,0xf4,0x41,0xdf,0x7b,0x06,0x3a,0xb8,0x67,0x17,0xc5,0xec,0x46,0x30,0xc0,0xa4,0x29,0x40,0xe4,0x8a,0xa3,0x14,0x84,0xa6,0x84,0xc7,0x5d,0x4b,0x57,0x37,0x9c,0x42,0xe6,0xa4,0x20,0xf7,0x5d,0xef,0x21,0xe2,0x80 +.byte 0x54,0x6d,0xf5,0xb5,0xbe,0xa3,0x95,0xcf,0x98,0xf8,0x38,0x46,0xa2,0x90,0x57,0x09,0x8f,0xb0,0x6d,0x01,0x5f,0x95,0x5a,0x78,0xf6,0xfd,0x01,0x0f,0xfd,0xa5,0xe2,0xcf,0x54,0xa3,0x2b,0xc1,0x30,0xbe,0x6d,0x1a,0xd3,0xdb,0x5a,0x17,0x43,0x46,0x93,0x81,0x0c,0x85,0x04,0x13,0xda,0xb4,0xde,0x81,0x48,0x5c,0xbc,0x42,0x9e,0x6d,0x6c,0x82 +.byte 0xff,0xa5,0x51,0xb1,0xd3,0xd2,0x3d,0x82,0x82,0xb4,0x96,0xb1,0x38,0x5d,0xc9,0x55,0xcb,0x9f,0xe5,0x47,0xd4,0x52,0x0f,0x76,0x54,0xec,0x39,0xb6,0x40,0xc3,0xc5,0xaa,0xc2,0x30,0x02,0xa0,0x68,0xc3,0x22,0x63,0x5a,0x8c,0x62,0x6d,0x40,0xc5,0xde,0x06,0x29,0x44,0x5d,0x2b,0x18,0x0a,0xa5,0x43,0x47,0xfe,0x5f,0x0f,0x63,0xa4,0x3c,0xa1 +.byte 0x62,0xcb,0x70,0x1d,0xf8,0x0e,0xc9,0xbe,0x27,0x0e,0x87,0x81,0x69,0x4c,0xea,0xbe,0xf9,0x9b,0xda,0xb6,0x9b,0xd0,0xdd,0xa0,0x1e,0x60,0x38,0x88,0x85,0x25,0x53,0xee,0x2c,0x77,0x53,0x82,0xb0,0x88,0x19,0x87,0x2a,0x77,0x7b,0x37,0x4b,0x4c,0xf4,0x96,0x5f,0x73,0xa1,0xbb,0x5c,0xfc,0x7e,0xbb,0xed,0x6f,0xb7,0x6f,0x9d,0x55,0xde,0xd3 +.byte 0xac,0xb9,0x8e,0x36,0x0f,0x3d,0xea,0x87,0xcd,0x19,0x33,0x1d,0xa8,0xee,0xfc,0xcd,0xe5,0x53,0x7b,0xdf,0x37,0x49,0x2d,0x73,0xf5,0x36,0xdd,0x42,0xc6,0x88,0x0d,0xf5,0xf2,0xba,0x2e,0x81,0xed,0x88,0x27,0x8d,0xe5,0x3f,0x83,0x5e,0xde,0x63,0x8f,0x67,0x2b,0x85,0xf3,0x2a,0x9b,0x26,0x3e,0x2b,0xe2,0x29,0xc5,0x5e,0x21,0x04,0xfe,0x5b +.byte 0xb9,0xd8,0xa7,0x7b,0xdf,0xcf,0x61,0xd6,0xaf,0x9b,0x17,0xcb,0xaf,0x8f,0x71,0xb3,0xc2,0x9d,0x9a,0x55,0x1d,0x3e,0x1d,0x17,0x25,0xc8,0x44,0x71,0x29,0x2f,0xc8,0x01,0x3b,0xe4,0xc4,0x2e,0xcc,0x3b,0xdb,0x34,0xbb,0xc0,0xcc,0xb6,0x07,0xe3,0x86,0x4c,0x62,0x02,0xe8,0xc3,0x11,0x85,0x6c,0x18,0x80,0xa3,0xbd,0x02,0x30,0x68,0x36,0xa3 +.byte 0xb6,0xc6,0xbd,0x82,0x43,0x40,0xed,0xa1,0xcf,0xc5,0xce,0xe4,0x27,0x8a,0xeb,0x8c,0x59,0xea,0x4a,0x81,0xd9,0x35,0x87,0x7d,0x6d,0xb2,0x8f,0x67,0x37,0x1f,0x11,0x60,0x0d,0xed,0x34,0xd5,0xa0,0x7b,0x46,0x71,0x68,0x19,0x69,0xd3,0x65,0x1d,0x47,0xf1,0x7e,0x16,0xd8,0xec,0xbb,0x52,0xc3,0x7b,0x62,0x5a,0xb3,0x60,0x67,0x2e,0xfd,0x57 +.byte 0xf2,0xfb,0x3d,0x63,0xe6,0x82,0x20,0xff,0x31,0x90,0x1d,0x5e,0x4f,0x04,0x9a,0xf8,0xb2,0x0c,0x84,0xff,0x7d,0xe2,0xec,0x4b,0x09,0xbb,0xdf,0xae,0xc5,0xaf,0xcb,0x8b,0xb5,0x5d,0xa8,0x53,0x78,0xf9,0xb9,0x43,0x71,0xa6,0xc2,0x10,0xfa,0xad,0xda,0xba,0x46,0x13,0x72,0x97,0xef,0x6f,0xe3,0x4f,0x5f,0xf9,0xec,0x25,0xdb,0xcd,0xca,0x33 +.byte 0x7e,0x50,0x73,0x5b,0xd0,0x9f,0xea,0xd5,0xd9,0x29,0xe8,0x1b,0xc1,0xf8,0x40,0xbf,0x50,0xdb,0x8e,0x39,0x0b,0xb7,0x6c,0xf1,0x34,0x0b,0x1f,0x88,0x27,0x4b,0xea,0x1d,0xb2,0x36,0x07,0x4b,0x22,0xa9,0xd0,0xf8,0xf2,0x13,0x8e,0x97,0x9d,0xd9,0x53,0xd3,0xdc,0x63,0x40,0x11,0xc7,0x74,0x9e,0xd9,0x83,0x01,0xae,0x36,0xcb,0x35,0x9a,0x0c +.byte 0xb5,0x15,0x0a,0xf5,0x41,0xa5,0x6c,0x72,0x40,0x80,0xf0,0x15,0xc0,0x80,0x23,0x0b,0xab,0x98,0xfc,0xab,0x81,0xe0,0x8b,0x61,0x91,0x18,0xd2,0x23,0x71,0xed,0x32,0x80,0x26,0x86,0x96,0xe9,0x90,0x5e,0x43,0xd2,0x89,0x8f,0x89,0x57,0x73,0xca,0xe1,0x42,0xa9,0xa9,0xed,0xdd,0xc5,0x9f,0xf7,0x00,0x0d,0xa3,0xe5,0xc8,0x6f,0x0c,0x14,0xa4 +.byte 0x9d,0x5a,0x14,0xaf,0x96,0x3a,0xb2,0x64,0xa7,0xac,0x20,0xa9,0x01,0x4c,0xec,0x64,0xc6,0x9b,0xfd,0x04,0xc5,0x2e,0xe7,0xdd,0xa5,0x8e,0xe7,0xe7,0x76,0x53,0x59,0x95,0x14,0x07,0xed,0xe9,0x96,0xd0,0x2d,0xc8,0x9d,0xa2,0x11,0xe3,0x02,0x20,0x68,0x09,0x25,0x69,0x07,0x88,0xdb,0x26,0x36,0xf5,0x8e,0xc3,0xf0,0x70,0x8c,0xeb,0xe6,0xcd +.byte 0xad,0xf3,0x49,0x6e,0x8a,0x54,0xa6,0xdd,0x97,0x8e,0x37,0x28,0x3a,0x6d,0xc4,0xdd,0x99,0x85,0xf7,0x96,0x63,0xb4,0xa2,0xdf,0xff,0x81,0x17,0xa1,0x22,0xb1,0x43,0x5b,0x29,0xdb,0x92,0x91,0xc9,0xc6,0x8d,0x29,0x1d,0x6e,0xe3,0x44,0x3e,0xe4,0x20,0xd5,0xf4,0x4a,0xfa,0xae,0xf6,0x2c,0xff,0x80,0xc9,0xce,0x7f,0x13,0x1e,0xd7,0x24,0xa2 +.byte 0xb3,0x90,0xb8,0x20,0x18,0xe5,0x6c,0x0e,0xf5,0xc6,0x26,0xd6,0xe9,0xe8,0x55,0xe4,0x3f,0x49,0x13,0xe2,0xca,0xef,0x9b,0xc0,0x8f,0x24,0x50,0x37,0xef,0x21,0xff,0x79,0xb7,0x5d,0x86,0x03,0xfb,0x85,0x75,0x74,0xbf,0xc5,0x3a,0x30,0xcc,0x00,0xc3,0x0d,0x4f,0x91,0xd6,0x31,0x19,0xd6,0xcd,0x0e,0x1c,0x53,0x88,0x75,0xb8,0xf9,0x68,0x7a +.byte 0xa4,0x3e,0x8d,0xed,0xba,0x05,0xb4,0x6c,0xe0,0x45,0x9c,0x41,0x34,0x24,0x82,0xaf,0x9a,0xcf,0x9e,0xd2,0x27,0x5c,0x7f,0xb3,0xcb,0xe5,0xad,0xb4,0x8e,0x74,0x9d,0xe4,0xba,0x55,0xb3,0xd3,0x32,0xbc,0x62,0x11,0xb3,0xa4,0x82,0xf0,0xd8,0xfc,0x79,0x03,0x70,0xae,0x7f,0x7f,0xc8,0x50,0xb5,0xbe,0x47,0x14,0x31,0xd7,0x16,0x65,0x52,0x3b +.byte 0xbb,0x42,0x38,0x23,0x77,0x4d,0x38,0x0b,0x0a,0x61,0x94,0xac,0xa3,0xc9,0xd7,0x99,0x4f,0x34,0x3a,0x88,0xe8,0x1d,0x0b,0x97,0x48,0x6d,0x5c,0x61,0x4c,0x3f,0xc2,0x7c,0x6c,0x63,0x00,0xdd,0x59,0xae,0xcd,0x17,0x0a,0x21,0x27,0x98,0x15,0x23,0x6d,0x84,0x7e,0x24,0xd4,0x7f,0x1b,0x3a,0x98,0x52,0xc3,0x60,0x33,0xd6,0xc1,0xfe,0x68,0xa8 +.byte 0x49,0x3d,0x7e,0x53,0xee,0x0d,0xed,0x89,0x9a,0x9a,0xe6,0xa1,0x47,0xc7,0xba,0xf3,0x73,0x5b,0xef,0x33,0x51,0x8c,0x1f,0x84,0xa6,0xef,0x77,0x94,0x2d,0xd6,0xda,0x8f,0x85,0x8c,0xd3,0xb6,0x02,0x68,0x9e,0x57,0xb6,0xd9,0x1a,0x8c,0xb5,0xf4,0x61,0x39,0x29,0xb5,0xb7,0x0d,0x0d,0xa6,0x81,0x87,0x54,0xc0,0xca,0x67,0x09,0xca,0x20,0xf3 +.byte 0x37,0x7e,0x03,0x3e,0x31,0x8c,0x51,0x89,0x06,0x81,0xf6,0x7b,0x8b,0xe3,0x4f,0xd0,0xb8,0x0c,0x34,0x7c,0xd6,0xfc,0x25,0xf8,0x00,0xa6,0x10,0x15,0x0d,0xeb,0x22,0x72,0x03,0x79,0x1c,0x84,0x1d,0x3d,0x10,0xaf,0x43,0x6d,0xd7,0xed,0x10,0x2c,0x14,0x26,0xd4,0xa1,0xee,0x6c,0x7f,0x52,0xe4,0x83,0xcc,0x5f,0x1a,0x4b,0xd0,0xc8,0xfb,0x27 +.byte 0x17,0x2c,0xf6,0x90,0x02,0xb4,0xb0,0x63,0x7c,0x14,0xec,0x9e,0x08,0x60,0xec,0x45,0x85,0xc6,0x76,0x42,0x4f,0x1c,0x5f,0x48,0x7f,0x87,0xef,0x8c,0x04,0x23,0x3c,0xda,0x39,0xbc,0xec,0x09,0xda,0xeb,0x9b,0x72,0x7a,0xb4,0x20,0x1c,0xb2,0xdd,0x2e,0x63,0x72,0xd7,0xb1,0xfe,0x5b,0x21,0x28,0xfb,0xeb,0x45,0x31,0x89,0xe5,0x3e,0xa0,0x85 +.byte 0xa6,0x96,0xdb,0x42,0xd5,0xb4,0x27,0x78,0x10,0xa0,0xcb,0x69,0x68,0x1e,0x76,0xed,0xbc,0x3c,0xa1,0x04,0x10,0x81,0x2a,0x4f,0x52,0x78,0x1e,0xae,0x5a,0x47,0x69,0x81,0xee,0xd3,0x14,0x1a,0x68,0x19,0x75,0x92,0x72,0x47,0x61,0x70,0xcf,0x96,0x35,0xa6,0xbb,0x00,0xaf,0x3e,0x90,0x86,0x22,0x9b,0x72,0x8a,0xa1,0x05,0xe2,0xfb,0xdc,0x30 +.byte 0xd5,0xdd,0x46,0x1f,0xf6,0x33,0x43,0xd1,0x59,0xc4,0x93,0x89,0x36,0x6a,0x7b,0x76,0xa7,0x40,0x6c,0xb1,0x9c,0xce,0x3a,0x8c,0xb6,0xd5,0xd1,0x0a,0x78,0xf6,0x08,0xfb,0xf5,0x9c,0xee,0x74,0x0d,0x39,0x51,0x6d,0x0e,0xa6,0xe9,0x22,0xd8,0x30,0xdf,0x16,0xf7,0xe3,0xbd,0xbb,0xe6,0x45,0xb8,0x9c,0xb5,0x49,0xf0,0xe8,0x7c,0xce,0x25,0xf8 +.byte 0x46,0xc0,0x59,0xc2,0xbc,0xdd,0xea,0x3e,0xeb,0x2e,0xf5,0xfd,0xd9,0x05,0x8a,0x2f,0xa3,0xa4,0x63,0xa6,0x50,0x08,0xce,0x2a,0x69,0xe7,0x58,0x57,0xa1,0xb2,0x44,0x41,0x04,0xfc,0x61,0xb1,0xb8,0x19,0x27,0x14,0x71,0x2f,0x55,0x64,0x28,0xa0,0xcc,0x47,0x0c,0xd4,0xed,0xfd,0x07,0x99,0xc6,0x9e,0xdc,0x5f,0x19,0x03,0x1a,0x00,0xda,0xf6 +.byte 0x2c,0x95,0xb0,0xd2,0xaa,0xfb,0xbc,0x1a,0xf3,0x62,0xaf,0x9c,0x38,0xde,0x61,0x30,0xd5,0x56,0x82,0x4b,0xf6,0xeb,0x34,0xc0,0xdc,0x51,0x97,0x89,0x80,0x47,0x9d,0x2a,0xae,0x0e,0x92,0x48,0xd2,0x9d,0x5a,0x67,0xef,0x33,0xa3,0xbe,0xdd,0x80,0x64,0x9c,0xc1,0xaf,0xf9,0x1a,0x4b,0x55,0x67,0x88,0x37,0x37,0xff,0x98,0xe3,0x9e,0xa9,0x4e +.byte 0x1f,0xa1,0x32,0x70,0xa3,0xbb,0xdc,0x6e,0xb3,0x6d,0xfe,0x8f,0x74,0x89,0xed,0xe1,0x13,0x3c,0x8f,0x08,0x75,0x84,0x84,0xee,0xac,0xcc,0xa5,0x47,0x9f,0x3e,0xb9,0xed,0x26,0x20,0xf7,0x7b,0xfb,0x8a,0x48,0x58,0x51,0x24,0xf9,0xeb,0x66,0x6d,0xd6,0x83,0x24,0xff,0x9f,0x0d,0x38,0x9c,0xf9,0x24,0x99,0x12,0x49,0xb6,0xdd,0xce,0x44,0xe7 +.byte 0x31,0x3d,0x4b,0x23,0x8a,0xd5,0x62,0xa2,0xdb,0x78,0x56,0x3a,0x62,0xc8,0x59,0x5f,0xcc,0x58,0x76,0x19,0x5d,0x48,0x4a,0xc2,0x87,0x21,0xc3,0x3d,0x3a,0x38,0xbd,0x20,0xfd,0xc3,0xa6,0xab,0x32,0xb8,0xc8,0xd1,0x5c,0xa5,0xb4,0x64,0x60,0xd2,0x87,0xb7,0xe9,0xc2,0x2b,0xb2,0x75,0x04,0xf4,0x6e,0x96,0x99,0x5d,0x08,0xff,0xa3,0x45,0x8a +.byte 0xad,0x7c,0xee,0x94,0x4e,0x45,0x86,0xad,0x0a,0x7a,0x5c,0x8f,0xff,0x28,0xb3,0x3c,0xf8,0x5e,0xb3,0x1e,0x5c,0xe0,0x22,0xf7,0x4e,0xe4,0xdf,0x1f,0xd2,0xa2,0x37,0x4a,0x87,0xa6,0x16,0x80,0x0c,0xc3,0x75,0x18,0xe4,0x76,0x8f,0xc3,0x1b,0xee,0xb1,0xe4,0x4b,0xeb,0x6f,0x15,0x48,0x60,0xaf,0x8e,0x0e,0xeb,0xbe,0x26,0xa3,0xbd,0x2a,0xb5 +.byte 0x6d,0x8b,0xd1,0xa1,0x0f,0x8e,0xaa,0xaa,0xb8,0x8d,0x84,0xe7,0x65,0x40,0x60,0x3d,0x59,0xb7,0x1c,0xef,0x08,0x0e,0x6f,0x21,0xb4,0xe6,0x10,0xda,0x59,0x9a,0x0f,0xe6,0xba,0xfd,0xed,0x7f,0xc1,0xe3,0x7a,0xb7,0x21,0x5d,0xcf,0x1c,0xbd,0xd2,0x59,0xc0,0x31,0xa5,0x8a,0x39,0x86,0x9e,0x7e,0x6a,0xcb,0x87,0x6f,0x01,0xba,0xa4,0x06,0x6b +.byte 0x3b,0x5d,0x68,0x85,0x11,0xd2,0x2a,0x3c,0x8e,0x3a,0x8c,0x8b,0x59,0xa0,0x4a,0xfb,0x76,0x85,0xe6,0x47,0xc3,0xf4,0xc4,0xe6,0xcc,0x7b,0xff,0x71,0x03,0xd1,0xc2,0x01,0xe4,0x5e,0x49,0x31,0xa6,0x0e,0x17,0x9b,0x42,0xdc,0x75,0xd6,0xfe,0x09,0x0b,0x6d,0x21,0x46,0xfe,0x40,0xcd,0x7c,0xdb,0xca,0xc9,0xba,0x64,0x83,0xd3,0xf7,0x0b,0xad +.byte 0xff,0xfd,0xe3,0xd9,0x49,0x7f,0x5d,0x48,0xaa,0xac,0xe5,0x74,0x2a,0x14,0x6f,0x64,0x21,0x81,0x09,0xcd,0x2d,0x19,0xf5,0x56,0x85,0xa8,0xec,0x98,0x65,0x46,0x99,0xec,0xbe,0xe3,0x86,0xd3,0x41,0x8b,0xe4,0x76,0x9b,0x5b,0x98,0x33,0x9e,0xdb,0xc9,0xde,0x89,0xfa,0x60,0x58,0xa8,0x2f,0x7a,0xca,0x30,0x91,0xc8,0x26,0x14,0x9c,0xd6,0x6d +.byte 0xc2,0x3c,0xca,0xe0,0x9a,0x13,0x72,0x63,0x5e,0x20,0xfd,0xa0,0xca,0xb2,0xed,0x37,0xc5,0xd4,0x4e,0xec,0x1f,0x74,0x25,0x37,0xe2,0xbe,0xb1,0x7f,0x52,0x26,0x28,0x4f,0x02,0xe5,0x6a,0x27,0xf3,0xc4,0x9c,0x69,0x09,0xac,0xff,0x77,0x9c,0xa4,0x1d,0xe7,0xa1,0x7c,0x37,0x70,0x3b,0x3c,0xc4,0x16,0x8f,0x5d,0xe5,0x05,0xa9,0x2c,0x91,0x2e +.byte 0x87,0xb0,0xa9,0x2e,0x32,0x73,0x5c,0x15,0x1e,0xbe,0x01,0xc9,0xd8,0x2e,0x26,0xf4,0x05,0x2d,0xe0,0xc0,0x38,0x81,0x61,0xf4,0x37,0x08,0xa0,0xc0,0x28,0x0a,0xb6,0xd4,0xcc,0x2c,0xc6,0xd4,0xda,0x48,0x49,0xcf,0x76,0x91,0x23,0x51,0x91,0xe7,0x50,0x94,0xae,0xb7,0x15,0x26,0xaa,0x82,0xd0,0x97,0xe8,0x5e,0xaa,0xfc,0xaa,0x60,0x62,0x81 +.byte 0x80,0xfd,0xfd,0xaf,0x65,0xcc,0x29,0x27,0x95,0xad,0x56,0xb9,0x85,0x66,0x49,0x62,0xb3,0x1a,0xf4,0x54,0xc7,0x5d,0x7f,0x73,0xe0,0xd2,0xc8,0x18,0x95,0x62,0x2f,0x5c,0x96,0xfb,0x63,0x15,0x46,0x07,0x5f,0x3e,0x52,0x18,0xf8,0x5d,0x45,0x0b,0xb6,0xf7,0xc5,0x3d,0x16,0xaa,0x0b,0x8f,0x9d,0x16,0xc8,0x93,0x13,0xd2,0xba,0x7a,0x52,0x1a +.byte 0x7a,0x73,0xc4,0xca,0xfb,0x04,0xaf,0x6f,0x3e,0xfa,0xff,0x29,0x09,0xe2,0x74,0x35,0xc1,0xfc,0x21,0xcf,0x5f,0xf7,0x82,0x55,0x75,0x27,0xc9,0x91,0xc5,0xbf,0xe6,0x68,0xb6,0x0f,0x10,0x0e,0x91,0x30,0xb7,0x05,0xca,0x59,0x4a,0x7f,0xb0,0xf6,0xaf,0xf1,0x5d,0xc9,0xc5,0x06,0xc5,0xf4,0xe1,0x75,0x16,0x9a,0x2c,0xc0,0x3f,0xc1,0x98,0x91 +.byte 0xb7,0xe6,0xb1,0xf2,0xf9,0xfa,0x6d,0x27,0x98,0x33,0x8b,0x73,0x7a,0x57,0x12,0x6f,0x80,0x11,0x28,0x17,0x7d,0xf1,0x26,0xaa,0x05,0xf1,0x6e,0x86,0x98,0xe7,0xf6,0x9f,0x9c,0x06,0x8f,0xec,0xd7,0x2d,0xb0,0x83,0xdf,0x23,0x80,0x34,0xd3,0xd7,0xf7,0xd5,0x0d,0x52,0x18,0xcd,0xc7,0xe7,0x15,0xc9,0x1b,0xae,0x58,0xcf,0xc5,0xdd,0x25,0x2a +.byte 0xff,0xa5,0xf3,0x6d,0x20,0xfd,0xda,0xfd,0x78,0x30,0x14,0x1f,0xb3,0x47,0xe3,0x2d,0x54,0x87,0xdc,0x30,0xbe,0x41,0xc0,0x48,0x52,0x82,0x49,0x78,0xad,0xfd,0x24,0xad,0xd6,0xc1,0x14,0x1e,0xa0,0xc1,0x3d,0x82,0x59,0x01,0x9b,0xc3,0xf4,0xf7,0x26,0xce,0x92,0x50,0x13,0x47,0xe0,0xf3,0xfa,0xd9,0x61,0x19,0x80,0x12,0xee,0x73,0x45,0x5b +.byte 0x34,0xfc,0xb2,0x84,0xb2,0x3f,0xdc,0x77,0x8e,0x2d,0xb3,0x62,0xb9,0x03,0x2d,0xb6,0x2a,0x17,0xcd,0xfb,0x54,0xc2,0x5e,0xb9,0xcf,0xd6,0x05,0xe2,0xac,0x3f,0xce,0x50,0x0f,0xa1,0x3e,0x67,0x68,0x46,0x0c,0xab,0xa1,0xdc,0x2a,0x26,0x1f,0x22,0x1b,0xa7,0xc9,0x3b,0x6c,0x97,0x5d,0x5c,0x7d,0x1a,0x46,0x4a,0x99,0x92,0x85,0x87,0x35,0x6c +.byte 0x78,0x9d,0xb0,0x39,0xd6,0x3b,0x52,0x60,0xb4,0xba,0xcc,0x2e,0xe9,0xe1,0x91,0x51,0xc1,0x52,0xc7,0x5d,0x84,0x95,0x54,0x25,0xdd,0xcd,0x40,0x35,0xa1,0xc8,0x7e,0xff,0x82,0x55,0x9f,0x64,0xef,0xa7,0xc1,0x79,0x57,0xc7,0x44,0xa8,0x1c,0x06,0xaa,0x2a,0x05,0x65,0x6c,0xdc,0x90,0x7d,0x2e,0x53,0x3c,0x56,0xe1,0x30,0xdf,0xcb,0x75,0x3d +.byte 0x36,0x88,0xfd,0x72,0x2d,0xc7,0x8e,0x2f,0x11,0x5a,0x2e,0xa9,0xd6,0x37,0x4b,0x31,0x4e,0x6e,0xa0,0x4a,0xd9,0xa9,0x48,0x18,0x50,0xb1,0x28,0xf6,0x74,0x03,0x44,0xa7,0x06,0x55,0x86,0x1a,0x1b,0x07,0x79,0xc4,0x25,0xba,0x5d,0xce,0xa2,0x96,0x7d,0x62,0xa7,0x21,0xf0,0xa7,0xc2,0x91,0x03,0x38,0x37,0x0b,0x20,0x40,0x88,0x7b,0x28,0xf4 +.byte 0xf3,0xc2,0xb0,0x4b,0xf6,0xef,0x2f,0xd9,0xb5,0x81,0x17,0x95,0x42,0x98,0x7f,0x18,0xd4,0x7e,0xa1,0x85,0xbf,0x62,0xdc,0x40,0xe4,0xd3,0xcc,0x78,0x01,0xec,0x12,0xcc,0x04,0x5b,0xfe,0xdb,0x39,0x7c,0x1e,0x56,0x7c,0x72,0x57,0xb9,0xdf,0x9d,0x43,0xd4,0xe3,0x1f,0xbf,0x69,0xfb,0x43,0x23,0xd8,0x75,0x81,0xe8,0x39,0x0f,0xe4,0xe9,0x51 +.byte 0xea,0xb7,0xa7,0xc6,0x17,0xc6,0x75,0x4c,0xa8,0x17,0x41,0x1c,0x55,0x8e,0x8d,0xf3,0x64,0xbc,0xc3,0x33,0xa7,0xc1,0xbe,0xa2,0x89,0x75,0xd6,0xda,0xad,0x44,0xd5,0xdd,0x18,0xe2,0xfc,0x1d,0xa1,0xbc,0x1a,0xb8,0x40,0x1a,0x4f,0x44,0x4b,0x56,0xe9,0xf4,0xa8,0x16,0xe6,0xc9,0x40,0x90,0x9b,0x49,0xae,0x62,0x12,0x3d,0x50,0x2e,0x7b,0x60 +.byte 0x6f,0x04,0x01,0x2c,0x83,0x2a,0xd2,0x92,0x63,0xa2,0xe2,0x39,0x9a,0xc4,0x1e,0x5a,0x53,0x3f,0x4d,0x69,0xfa,0x0a,0x22,0x13,0x80,0xa4,0x6e,0xfb,0x09,0xcb,0x35,0xd7,0x12,0xa4,0xcd,0xfc,0x0b,0x06,0xa6,0x5e,0xc6,0x4a,0x22,0x56,0x5d,0x7f,0x70,0xd0,0xf8,0xe6,0x96,0x77,0xce,0xd9,0x69,0x6c,0x06,0xac,0xaa,0x94,0x6d,0x57,0x1b,0x28 +.byte 0xb4,0x07,0x50,0x19,0xd1,0x86,0xba,0xe6,0xe6,0x31,0x74,0x1d,0x3d,0xe8,0xe2,0x7b,0xfe,0xc9,0x41,0x89,0x20,0x5b,0x6a,0xc0,0x18,0x16,0xee,0x35,0xfa,0x56,0x35,0x3e,0x53,0x99,0xfb,0x8d,0xae,0x75,0x4f,0xc5,0x8d,0xff,0x23,0xd5,0x42,0xf4,0x81,0x5c,0x8b,0x71,0x7a,0x22,0xb0,0x6b,0x45,0x86,0xa6,0xc6,0xdb,0xa6,0x83,0x01,0x28,0xde +.byte 0x38,0xaa,0x6e,0xf8,0x5a,0xf2,0xcc,0x3c,0xc5,0x65,0x78,0x37,0xe8,0x8a,0x59,0xf3,0xfe,0x8b,0xcd,0xf6,0x31,0x46,0xdc,0x72,0x19,0xf7,0x73,0xac,0x5c,0xf1,0xe3,0xfd,0x85,0x51,0xec,0x92,0x3a,0xf3,0xd7,0xb2,0x95,0x53,0x79,0x48,0xd3,0x29,0x84,0xec,0xc5,0x0a,0x71,0x15,0x52,0x69,0x6a,0xe1,0xab,0x69,0x94,0xc2,0x51,0xdf,0x27,0xd8 +.byte 0xb1,0x05,0xc4,0x12,0xea,0x1e,0xda,0x6e,0xf2,0xf5,0x8a,0xa8,0x72,0x74,0x5a,0xe5,0x45,0x5b,0x5f,0xf9,0xb0,0x56,0x5c,0x85,0xf7,0x63,0x8d,0x1d,0xbf,0xe9,0x7c,0x97,0xe9,0x37,0xb3,0x5b,0x4b,0x57,0xfc,0xf4,0x58,0x84,0x26,0x55,0x07,0xc7,0x0a,0xfe,0x5a,0x58,0xd0,0xd8,0x19,0xf4,0x02,0xad,0x2c,0x4e,0xbd,0xe1,0x07,0x48,0x3b,0xc4 +.byte 0xd6,0x23,0x3a,0x63,0xc3,0xf5,0x17,0x46,0x03,0xa4,0x9a,0x10,0xf9,0xac,0x70,0x9c,0x13,0x10,0x94,0xda,0x17,0xc5,0xbb,0x87,0x0f,0x9b,0x4f,0x54,0x55,0x6b,0x57,0x2d,0x12,0x0b,0xa7,0x9c,0x77,0x6d,0x67,0xb0,0x03,0xdf,0xc6,0xa2,0x76,0x96,0x0c,0xac,0x30,0xbc,0xa2,0x55,0x23,0x01,0xae,0x51,0x50,0xd4,0xab,0xd0,0xee,0x75,0xf1,0x96 +.byte 0x75,0xf5,0x2e,0xae,0x52,0x31,0x0b,0x0a,0x8a,0xdb,0x4c,0x4d,0x4c,0x80,0xfc,0xd7,0x68,0x05,0x54,0x47,0xa5,0xc4,0xb1,0x63,0x87,0x43,0x1b,0xe1,0x0b,0x4f,0xff,0x0c,0x02,0xf7,0x00,0xd4,0x8d,0x6e,0xa1,0x21,0x91,0x62,0xec,0x55,0xd5,0x72,0x70,0x59,0x7a,0xa4,0x0e,0x78,0x7a,0x87,0x1f,0x71,0x35,0x3b,0xf7,0x1f,0x66,0x8c,0x90,0xf9 +.byte 0x6d,0x1f,0x74,0x47,0x41,0xf5,0x21,0x98,0x0d,0x42,0x61,0x21,0x0b,0x62,0x59,0xc7,0x5e,0x58,0x37,0xfb,0xee,0xbb,0xa0,0x45,0xa8,0x84,0xae,0x41,0x29,0xc9,0x88,0x64,0x69,0x75,0xc1,0x5f,0x63,0x7c,0x00,0x1c,0x35,0x61,0x9e,0xad,0x19,0xd7,0xd8,0xf1,0x64,0x57,0x10,0x87,0x73,0xa8,0x8b,0x39,0x9b,0x1c,0x1a,0xc2,0x1b,0x01,0x1a,0x41 +.byte 0x26,0x58,0x93,0x8f,0xed,0xf9,0xe7,0xfe,0xcc,0x27,0x1b,0x6b,0xb8,0x28,0x5a,0x0b,0x04,0xa0,0x94,0x23,0x4b,0x21,0x5f,0xb3,0xc9,0xb6,0x7b,0x36,0x5a,0x67,0x6b,0xd2,0xc2,0x53,0x97,0x5d,0xa5,0x43,0xd3,0x79,0x83,0xe2,0x3b,0xe0,0xaf,0x5f,0xbd,0xf3,0xb0,0xfc,0x04,0x95,0x06,0x17,0x0c,0xe2,0x68,0xe8,0xf3,0x90,0xc7,0x2b,0x7b,0xcc +.byte 0xaa,0xce,0xf5,0x0b,0x3c,0x3f,0x10,0xa7,0x31,0x9d,0xf0,0x1e,0x3e,0x74,0x57,0xbd,0x87,0xe7,0x37,0xd0,0x37,0x09,0xae,0x03,0x96,0xb1,0xad,0x8f,0x2d,0x72,0xdc,0x0f,0xdf,0xd9,0xfb,0xcc,0xb8,0x48,0x62,0xf7,0xad,0x05,0x4d,0xc6,0xe5,0x92,0xe3,0x95,0xa0,0x74,0x7a,0xa6,0x84,0x13,0x68,0x17,0xaa,0x8f,0x40,0x2a,0x8d,0x2b,0x66,0xdc +.byte 0xf8,0xf6,0x6d,0x7c,0x7e,0x40,0x22,0x05,0x16,0x20,0xbc,0xe5,0xc2,0x87,0xe2,0xd5,0xbd,0x47,0xd5,0x69,0x95,0x12,0x25,0x1c,0xaa,0x9d,0xb5,0x73,0x08,0xaf,0xfb,0x46,0xa5,0x11,0x2c,0x93,0xc6,0xfc,0xc0,0x5e,0x0e,0x99,0x1c,0x80,0x5f,0xe5,0xc8,0x52,0x73,0x35,0x4d,0xbc,0x70,0xeb,0x40,0xc9,0x47,0x8a,0x8f,0x19,0xd9,0xa9,0xec,0x4b +.byte 0x88,0x53,0x56,0x08,0x4a,0xa2,0x32,0x1f,0xe2,0xbb,0x68,0x35,0xfd,0xf2,0x0e,0x0f,0x7f,0xc8,0xf1,0x59,0xac,0x97,0x8f,0x84,0x69,0xb6,0xb9,0x5f,0x84,0xe9,0xf2,0xf9,0x09,0xf6,0xf1,0x31,0xd7,0x1a,0xa8,0x25,0x32,0x5f,0xb1,0xa7,0x84,0x15,0xfa,0x07,0xa8,0x53,0xce,0x2a,0x26,0xe0,0x4d,0x07,0x4f,0x45,0x63,0x76,0xfd,0xe3,0xb4,0x4e +.byte 0x81,0x5e,0xe6,0x01,0x9c,0xf5,0x82,0x2d,0x71,0x0f,0x98,0xb4,0x72,0x06,0xbc,0x89,0x89,0x60,0x5f,0xd9,0x92,0xcf,0xb9,0x41,0xe3,0x13,0xaa,0xe4,0x80,0xb5,0x75,0xf4,0x9a,0x1b,0xc2,0xa3,0xa4,0xa9,0x0f,0x15,0xdc,0x26,0xdd,0x20,0x10,0x27,0xbd,0x06,0x77,0x12,0xa5,0xb3,0xde,0x9f,0xbf,0xc4,0xb6,0x1d,0x76,0xdc,0x16,0x00,0x2e,0xe2 +.byte 0x00,0x4d,0xb3,0x62,0x57,0x73,0x1e,0x90,0xe2,0xaa,0x4c,0x47,0xdf,0x6b,0x2d,0x66,0x2f,0x82,0x55,0x91,0x26,0x33,0xb9,0x3a,0xc7,0xf1,0x0a,0xda,0x9b,0x6b,0x05,0x82,0x0f,0x0e,0x30,0x74,0x0b,0xea,0x0f,0x49,0x55,0x3b,0xe7,0x42,0x48,0xca,0x82,0x3e,0x8c,0xbc,0xe2,0x88,0x43,0x44,0x0d,0x37,0x9b,0xd1,0xfc,0xf1,0x45,0x46,0x0e,0xe1 +.byte 0xec,0x91,0x39,0x96,0x7d,0xbc,0xd5,0xb1,0x11,0x55,0x54,0x49,0x4f,0x18,0xed,0xec,0x58,0xdb,0xb3,0x7d,0x64,0x8d,0xfc,0x65,0x1f,0xf0,0xe0,0xc0,0x41,0xc0,0x19,0xeb,0x16,0x16,0x71,0x36,0x88,0xcf,0x75,0x3d,0x9c,0xe6,0xa0,0x84,0x54,0x26,0x64,0x95,0x9a,0xe1,0x0b,0x51,0xcf,0x9a,0x55,0x60,0x4d,0x9d,0x1d,0x37,0x71,0xa8,0x94,0x0a +.byte 0x20,0xeb,0xf2,0x91,0x14,0xfc,0x12,0xb0,0x1e,0xe3,0x5e,0x3a,0xbb,0x22,0xde,0x20,0xb1,0x58,0xef,0x0b,0xb1,0xc2,0x2f,0xea,0xd8,0xdb,0x1d,0x3a,0x67,0x7b,0xbd,0x26,0xfa,0x4a,0x3c,0x3d,0xbd,0x87,0x4c,0xba,0x57,0xdf,0xfb,0x1d,0xf7,0x26,0x5f,0x52,0x4e,0xdd,0x9b,0x38,0x62,0xed,0x48,0xc1,0xae,0x7f,0xa8,0x13,0x05,0x09,0xff,0xc0 +.byte 0xd3,0x49,0x75,0x1f,0x6a,0xe0,0x79,0x94,0xc1,0xe9,0xe3,0xf5,0x33,0x40,0xd4,0x6b,0xfe,0x4d,0x6e,0x84,0xb9,0x20,0x68,0x2b,0x6c,0xb3,0xf1,0xb1,0x1c,0xfd,0x93,0x14,0x7f,0x35,0x9b,0xd5,0x07,0x15,0x87,0x56,0xb9,0x45,0x22,0x64,0x73,0xdb,0x34,0x35,0xca,0x15,0x4e,0xa2,0xa2,0xe2,0x7a,0x6e,0x14,0x46,0xf5,0xf1,0x70,0xd3,0x3a,0x2e +.byte 0x38,0x9d,0xf6,0xc6,0x29,0xd5,0x7f,0xc7,0x77,0x2c,0x33,0x55,0x1c,0xc2,0xf1,0xaf,0x8e,0x4d,0x1b,0x22,0x36,0x35,0x93,0x47,0xa5,0x59,0xb4,0x94,0x0f,0x2d,0x66,0x24,0x6f,0x57,0xa4,0x95,0xf3,0xd7,0xf3,0x59,0x9d,0xc0,0xda,0xa7,0xf7,0xf2,0x8d,0x93,0xc9,0x90,0x91,0x9e,0x12,0x3f,0x34,0x01,0x90,0x8b,0x13,0x09,0x3d,0x2f,0xa8,0x31 +.byte 0xfa,0x39,0x4a,0x7d,0x0d,0x34,0xa3,0xf1,0x75,0xdb,0xa2,0xd2,0x5c,0xf1,0x72,0xfd,0x7f,0x7b,0x15,0x92,0xf0,0x71,0xd6,0xa0,0x74,0x53,0x61,0x67,0xa4,0x8b,0x72,0x3a,0x66,0x0a,0xce,0xc9,0x1c,0x5b,0x4d,0xaa,0x0a,0x3a,0x91,0x0a,0xbb,0xef,0x6e,0x8d,0x00,0xc0,0xa1,0x89,0xa9,0xbd,0x5a,0x2d,0xf8,0x7c,0x1f,0xb2,0x5a,0x73,0x33,0xe7 +.byte 0xb3,0xfd,0xd4,0xe3,0x81,0x69,0x30,0xc1,0xf8,0x97,0x7b,0xf3,0x63,0xaa,0xd5,0x5a,0x98,0x95,0xb3,0x65,0x2d,0xf9,0x68,0x2e,0x2c,0x26,0xe6,0x77,0x8f,0x76,0x7a,0x02,0xc7,0x50,0x28,0x40,0xcf,0x44,0x66,0x18,0x54,0x52,0xef,0x79,0x26,0xc2,0x76,0x5b,0x71,0x92,0x49,0xba,0xe1,0xd7,0xf2,0xdd,0x57,0xe0,0x78,0x6e,0xb6,0xdd,0x0d,0x20 +.byte 0x85,0xf9,0x34,0x9e,0x65,0x6b,0x9f,0x41,0x24,0xe2,0xb1,0x2a,0xef,0x8b,0xd2,0x19,0x81,0x73,0x56,0x5a,0x84,0xd3,0x46,0xf8,0x74,0xe3,0x1f,0x3d,0xd9,0x16,0x86,0x38,0xf6,0x7c,0x04,0xab,0x9a,0x64,0x0e,0x48,0x06,0x4c,0x61,0xcd,0x2d,0x4d,0xef,0x6f,0xd6,0x7d,0x31,0x1c,0x56,0x65,0xc4,0xf1,0xa7,0x15,0xac,0xa4,0xe2,0x8b,0x83,0x5e +.byte 0x64,0x36,0x2e,0x77,0x94,0x2e,0x2e,0xa3,0x62,0xcf,0x6e,0x7a,0x6d,0x39,0xaf,0xf7,0x96,0x88,0x31,0x14,0x58,0x46,0x30,0x0c,0x36,0x3a,0x4c,0x53,0xe0,0xa7,0x24,0x76,0x84,0x0f,0xfb,0x7e,0x55,0xa0,0x0f,0x63,0xfc,0xd6,0x1f,0x58,0x68,0xb5,0xcc,0x77,0x4f,0x16,0x91,0xa7,0xfd,0x62,0xb3,0x88,0x13,0x7c,0xcb,0x63,0x6d,0xe4,0x38,0x4c +.byte 0x6e,0x3b,0xf7,0xe3,0x8d,0x52,0x84,0x61,0x19,0x12,0x51,0xbe,0xed,0x32,0x3d,0x77,0xdd,0xa1,0xc3,0x59,0x65,0x79,0xa1,0x6b,0xbc,0x65,0x6c,0xe3,0x7e,0x60,0x49,0xbd,0xcf,0x6f,0x61,0x97,0x98,0xbe,0x74,0x38,0xd1,0x09,0xc1,0x59,0xe5,0x7f,0xfe,0xbf,0xfd,0x60,0x1b,0x96,0x00,0x46,0x56,0x4d,0x81,0x4c,0x70,0x59,0x39,0x66,0x13,0x58 +.byte 0xe7,0x62,0x3a,0xfc,0x1b,0xe5,0xf9,0x03,0xd4,0x4b,0xab,0x1d,0x56,0x22,0x4a,0x09,0xa5,0xdd,0xac,0x39,0xbe,0x27,0x39,0xb3,0xe8,0xad,0xe0,0x07,0x86,0x10,0xce,0xa9,0x4e,0x8b,0x47,0x8d,0xb8,0x63,0x2f,0x61,0x1a,0x8b,0xd4,0xd3,0xfe,0x73,0x82,0x5a,0xd6,0xa9,0x46,0x56,0xa7,0x81,0xe9,0xda,0xb9,0x17,0xa7,0xc8,0x0f,0x24,0x16,0x6a +.byte 0x12,0xfe,0xc3,0x65,0x85,0x77,0xab,0x89,0x44,0x1b,0xa3,0x8b,0xfd,0x07,0xf4,0x77,0xaa,0xe1,0x71,0x33,0x74,0x93,0xdc,0x90,0x53,0x39,0x47,0x8c,0xea,0x18,0xe1,0x6a,0xed,0x8c,0x56,0x08,0x2f,0xa1,0x1f,0x22,0xf2,0xc0,0x12,0xcd,0xb7,0xdf,0xb6,0x3c,0xd6,0x22,0x6c,0x5b,0x00,0x0f,0xdb,0x66,0x5b,0x54,0x35,0x48,0x37,0x8c,0x79,0x74 +.byte 0xd1,0xb0,0x15,0x01,0x22,0x3a,0x7c,0x17,0x8c,0x20,0x06,0x9b,0x13,0x6e,0xee,0xbf,0xb4,0xac,0x01,0x61,0xb9,0x28,0x65,0x8e,0x53,0x12,0x4f,0xe0,0x5f,0xfc,0xdb,0x40,0x6c,0xa2,0x19,0x64,0x49,0x7a,0xc7,0xc5,0xc8,0x53,0x6e,0xd5,0x68,0xe1,0x61,0xe5,0x87,0xc2,0x99,0x59,0x4c,0x27,0xc8,0xd0,0xd0,0x10,0xce,0x9f,0x09,0xff,0xf5,0xa8 +.byte 0xf8,0x79,0xf6,0x0f,0x73,0xda,0x8a,0x36,0x8e,0x48,0x7e,0xbd,0x98,0x76,0x57,0xfa,0x5c,0xec,0xa5,0x3d,0x30,0xfe,0xa3,0xe5,0x27,0x87,0xcf,0x26,0xfe,0x61,0xe4,0xed,0xd1,0xfb,0xfc,0x91,0x5d,0xb6,0x70,0x2c,0x2c,0x59,0x14,0xd5,0x1d,0x9a,0xb9,0x2c,0xef,0x24,0x7b,0x10,0x8d,0x99,0x63,0xaa,0x82,0xf0,0x1c,0xe8,0xa0,0x00,0xa5,0xa7 +.byte 0xf8,0xc0,0x35,0x9e,0x12,0x18,0xaf,0x42,0x9d,0xe5,0x2b,0x72,0x6c,0x31,0xd8,0x8f,0x6c,0xde,0x2e,0x37,0xa6,0x73,0x06,0xe7,0x90,0x43,0x79,0x99,0x64,0xd1,0x17,0xa1,0x43,0x6d,0xd4,0x90,0x50,0xf2,0xcc,0x0b,0x73,0x49,0x9e,0x14,0x7c,0x49,0x92,0x05,0x0e,0x8c,0xda,0xb7,0x18,0xf0,0xcc,0xea,0xe4,0x32,0x58,0xc7,0xbd,0x8e,0xca,0x35 +.byte 0x52,0x9f,0xec,0x5d,0xa0,0x6c,0x83,0x61,0x07,0x74,0x37,0x4a,0x10,0xa0,0x98,0x83,0x3a,0x65,0x17,0x63,0xd0,0x22,0x96,0xb5,0xed,0xbb,0xbb,0x1c,0x18,0x8a,0x49,0x3d,0x0f,0xcc,0x24,0xb3,0x9b,0xb6,0x23,0x2e,0x9d,0x97,0xe7,0x31,0xf8,0x36,0x6d,0x7b,0xa1,0xf1,0x02,0xde,0x7c,0xad,0x77,0x5d,0x85,0x7c,0x39,0x61,0xc7,0xd7,0x3f,0x70 +.byte 0x1c,0xe1,0x0e,0x49,0xf4,0xcd,0xab,0xfd,0x4d,0x2f,0xc7,0xb7,0x53,0xfc,0xed,0xeb,0x41,0x2a,0x80,0x40,0xf3,0x47,0xf8,0x15,0xa0,0x4c,0x8b,0x34,0xf6,0x6a,0xb8,0x30,0x09,0x4d,0xe6,0x60,0xb7,0x24,0x6b,0x4c,0x26,0xdf,0x83,0x37,0xc7,0x96,0xba,0x35,0xda,0x29,0x4e,0xca,0x52,0xf7,0x41,0xd3,0x98,0x27,0xb2,0x9e,0xec,0xcc,0x12,0xdc +.byte 0x77,0xfd,0x11,0xbd,0xbd,0xbb,0x5e,0x0c,0x37,0x29,0xd2,0x4f,0x7d,0x5c,0x97,0xad,0x72,0x93,0x4a,0xfa,0x17,0x07,0x07,0x26,0xee,0xa7,0x29,0x2e,0xdb,0xf6,0x60,0x65,0x2d,0x85,0xbe,0x27,0x4d,0xf7,0x2b,0xb4,0x81,0xf5,0x3a,0x1d,0xae,0x25,0x8b,0x60,0xc2,0x75,0x3a,0xfd,0xf9,0x4d,0x90,0x7a,0x8a,0x3a,0xf6,0xa9,0xf0,0x11,0xd2,0xb9 +.byte 0xdb,0x23,0x40,0x9d,0x33,0xc3,0xbf,0x60,0x95,0x9c,0x6f,0xa9,0x82,0x42,0xe5,0x67,0x52,0x36,0xea,0x68,0x64,0x24,0x85,0x46,0x7e,0x2a,0x1a,0x6a,0x4b,0xa8,0xb0,0xa0,0x9c,0xb8,0x4a,0xb6,0x2e,0xb2,0x6b,0xf4,0x63,0x9f,0x54,0xb5,0x6f,0x1b,0xf5,0x71,0x7e,0xf8,0xef,0xb2,0x92,0xe2,0xcf,0x65,0xb4,0x02,0x9b,0x75,0x4b,0xf9,0x6b,0xa1 +.byte 0x24,0x3b,0xea,0x7f,0x31,0x08,0xd4,0xdc,0xab,0x12,0xc0,0xca,0x64,0xee,0xfa,0x61,0x1c,0x0f,0x24,0xc3,0x8c,0xbd,0xc8,0xd2,0x42,0xf7,0x1f,0x2e,0xd3,0xd1,0x51,0x86,0xfb,0xa2,0x95,0xc5,0x8c,0x5b,0x61,0x14,0xc9,0xe4,0x07,0xa1,0xf7,0x39,0x11,0x40,0x68,0xd6,0xe2,0x38,0x96,0x6f,0x99,0xf1,0xd2,0xfb,0x8e,0xb8,0x3d,0xf2,0x8a,0x4e +.byte 0x3e,0x54,0xd9,0x0e,0xd1,0xc9,0x31,0x04,0xa4,0xee,0xbe,0x51,0xcf,0x5f,0xd1,0xc8,0x13,0x96,0x9d,0x9b,0xdf,0x32,0xa9,0x38,0x8f,0xbc,0x7e,0x22,0x1a,0x52,0x5f,0x14,0x61,0xeb,0x78,0xf4,0x01,0xe9,0x5c,0x18,0x1c,0xb5,0xe1,0x80,0x06,0x3e,0x8e,0x72,0x33,0xf9,0xaa,0x49,0xec,0x5b,0x7a,0x04,0xf2,0x9b,0x48,0x8a,0x58,0x14,0x4b,0x7e +.byte 0x4d,0x26,0x0b,0xe0,0xf0,0x69,0xa3,0x36,0x75,0x3e,0x73,0xec,0x53,0x20,0x35,0x8e,0xfa,0x40,0xf0,0xcd,0x70,0xe1,0xe4,0x64,0x89,0x14,0x55,0xd7,0x20,0xe8,0xbd,0xc2,0x85,0xa8,0x4d,0x51,0x96,0x27,0x54,0x50,0xc7,0xa1,0x9c,0x35,0x52,0x1f,0x8b,0x6f,0xa2,0x62,0x36,0x94,0x02,0xb1,0x01,0xc6,0x4e,0x53,0x83,0x65,0x98,0x25,0x6d,0x26 +.byte 0x6d,0xef,0x4e,0x7a,0xe0,0x56,0x6a,0x6c,0x23,0xe8,0xa6,0x97,0xc1,0xf2,0xb1,0x2d,0x03,0x29,0xef,0xa0,0x6d,0x86,0x8d,0x5a,0x00,0x83,0x14,0xed,0xd4,0x1e,0x79,0xc4,0xb4,0x42,0xfd,0x53,0xaa,0xab,0xd7,0xa3,0xf9,0x7d,0x15,0x26,0xab,0x81,0xc4,0x7a,0x96,0x14,0x94,0x71,0xe1,0x7f,0xc1,0x67,0x5f,0x5f,0x11,0xb4,0x72,0x03,0xf8,0x9b +.byte 0x2f,0x82,0xa3,0x4e,0xda,0xfd,0x2a,0x31,0xf1,0x74,0x6d,0x96,0x7a,0x9c,0xf9,0x01,0xd9,0x55,0x8e,0x52,0xe4,0xae,0x22,0x14,0x7b,0xc0,0x5a,0xc4,0x31,0x23,0x9a,0x2e,0x9d,0x86,0x86,0xd5,0x66,0xc8,0x8b,0xdb,0x49,0x5f,0xca,0x57,0x51,0x50,0x75,0x3f,0xeb,0xb1,0xe5,0x84,0x42,0x8f,0x0f,0xca,0x86,0xcf,0xb0,0x17,0x06,0x06,0x46,0x8c +.byte 0x4a,0x84,0xde,0x28,0x84,0x24,0x7f,0x33,0x48,0xe8,0x89,0x87,0x1f,0x02,0x07,0x4f,0x36,0xa9,0xdc,0x8a,0x42,0xb6,0xc7,0x9c,0x47,0xd4,0xd4,0x2d,0xc0,0x17,0xb0,0xe6,0x23,0xb7,0xae,0x0d,0x9f,0x38,0x0a,0xdf,0x7f,0x73,0xbf,0x93,0x19,0x05,0x23,0xbf,0xc0,0x53,0x2d,0xcd,0x3e,0x73,0x01,0x78,0xa7,0xdc,0x6c,0x85,0x1d,0x25,0xc5,0x54 +.byte 0x68,0x95,0xc1,0x20,0x65,0xd9,0x01,0x85,0x7d,0xc9,0xba,0x63,0x43,0x7a,0x23,0xbb,0x95,0x3a,0x76,0x2d,0x75,0x1e,0xac,0x66,0x3e,0x20,0x30,0x8d,0x37,0x64,0x3c,0xc7,0x6f,0x36,0xb8,0x34,0x60,0xd2,0xb4,0x54,0x07,0x52,0x6c,0xfa,0x04,0xfe,0x2b,0x71,0x03,0x03,0x97,0xfc,0x4a,0xf9,0x4d,0x44,0x1a,0xf9,0xd7,0x4b,0xe5,0xe1,0xf9,0xb9 +.byte 0x41,0xa0,0x5b,0xa2,0x69,0x48,0xba,0xeb,0xcc,0x4e,0x55,0x4b,0xbd,0x41,0x09,0xa8,0x90,0x5c,0xc6,0xe3,0x20,0x0c,0x8f,0xfc,0x7e,0x0e,0x4f,0x3d,0x47,0x65,0x40,0x1e,0x79,0x9a,0xe0,0x8f,0x8f,0xe9,0xcb,0xaa,0x04,0xb8,0xd9,0x91,0x30,0x2a,0x4c,0x17,0x44,0xc0,0x03,0x4c,0x37,0xd3,0xdb,0x20,0xe5,0x8e,0x70,0x87,0x57,0x4f,0x8a,0xcf +.byte 0xee,0x64,0xbc,0xef,0x0f,0x9e,0xcf,0x95,0x5e,0x11,0x4f,0x7a,0x35,0x53,0x8c,0x85,0x6a,0xff,0x72,0x1b,0x35,0x51,0x89,0xf8,0x94,0x65,0x97,0xec,0xfe,0xbd,0x00,0x29,0x3d,0xe8,0x96,0x23,0xa4,0xe3,0xcf,0x81,0xb2,0x8f,0x73,0x4c,0x05,0xc3,0xcc,0x37,0x22,0x97,0xa0,0xda,0x49,0xb2,0xbd,0x07,0x2b,0x26,0xa0,0x6f,0x6b,0x1f,0xa6,0x15 +.byte 0xe3,0x6e,0x12,0xa4,0x51,0x1b,0x72,0x22,0x08,0xfe,0xf7,0x93,0x1a,0x9f,0x62,0x12,0xd4,0x11,0x1f,0xd1,0x80,0xeb,0xa4,0xb1,0xf4,0x37,0x3b,0x60,0xd8,0x2b,0x53,0xae,0x69,0xf8,0x48,0x38,0xf4,0x20,0x28,0xe1,0xfb,0x6a,0xec,0x6e,0x11,0x2e,0x2c,0x59,0x62,0x23,0x8a,0x82,0xc4,0x33,0x7b,0xdc,0x33,0x99,0x41,0x29,0x4f,0xa1,0x6e,0x3a +.byte 0x48,0x13,0x1c,0x1f,0xa3,0x1f,0xd2,0x02,0x79,0xe1,0xe4,0xb9,0x99,0xa4,0x50,0xea,0x53,0x96,0x4e,0x82,0x7c,0xee,0x65,0x07,0x26,0x87,0xf9,0x9d,0x45,0x17,0x37,0x61,0x7e,0x5f,0xb9,0xd2,0x55,0x3c,0x45,0xf7,0xec,0x33,0x08,0xa3,0x41,0x24,0x8f,0xb2,0x75,0x41,0xb6,0xa2,0x21,0xfe,0x94,0x7e,0x1e,0xe6,0x03,0x6e,0xf4,0xeb,0x23,0x59 +.byte 0x51,0x25,0x99,0x19,0x6d,0xf7,0xe3,0x22,0xd8,0x41,0x0f,0xd5,0xaf,0x0d,0xc6,0x3f,0x8e,0x36,0xee,0x90,0x23,0x67,0x03,0xcb,0xe3,0xaf,0xc4,0xf8,0x22,0x1f,0xd8,0x3e,0x94,0xdf,0x13,0xc9,0x4f,0x17,0x22,0x8c,0x93,0x6b,0x3f,0x60,0x1a,0xbd,0xfa,0x9f,0xe6,0x43,0x45,0xe1,0x0a,0x95,0x21,0x06,0x52,0xbd,0x58,0x56,0x84,0x56,0x36,0xf3 +.byte 0x55,0x58,0x46,0x62,0x6c,0xb3,0xa0,0x29,0x5a,0xfc,0xb4,0x87,0x5f,0x89,0xa5,0xab,0x6d,0x5a,0x44,0xc5,0xc8,0x50,0x83,0xe1,0x41,0xd4,0x97,0x6c,0x08,0xb1,0x43,0x33,0x0d,0x3a,0x8b,0x31,0xa1,0xae,0x77,0x71,0xb7,0x67,0x65,0xd7,0xa7,0xc9,0x6c,0x4a,0x9b,0x80,0xd5,0xbf,0xae,0x0f,0x9b,0xce,0x1a,0xa3,0x26,0xc6,0x19,0xa1,0x8d,0x12 +.byte 0xd9,0x09,0xae,0xac,0x9f,0x4b,0xab,0xaf,0xf6,0xc5,0x9e,0x26,0xe6,0x23,0xcb,0x3e,0x60,0x1e,0x3d,0xa1,0xec,0x59,0xca,0xf1,0x87,0x0e,0xaf,0x47,0x5f,0xab,0x17,0x99,0xbd,0x87,0x1c,0x1d,0x00,0xd6,0xb2,0x59,0x56,0xdd,0x49,0x20,0xb5,0x91,0xf8,0x0c,0xf1,0x80,0xc6,0x37,0x92,0xd7,0x2c,0x02,0x0d,0x47,0x1b,0x1b,0x6b,0x3f,0x60,0xd0 +.byte 0x21,0x9b,0x49,0x47,0x3c,0xaa,0x83,0x44,0x1b,0x92,0x8e,0xec,0x63,0x40,0xd6,0x9a,0x48,0x7c,0x5e,0x97,0xe4,0xf0,0x84,0x36,0x30,0x11,0x0b,0x7c,0x79,0x3b,0xff,0xdf,0x77,0xf6,0xc9,0xdb,0x49,0xdd,0x2a,0xe7,0xca,0x9a,0x5b,0xef,0xd4,0x84,0xe2,0x44,0x8b,0xef,0x4e,0x0d,0x13,0xd6,0xbb,0xba,0x29,0x02,0xae,0xfc,0x55,0x24,0xfa,0x4b +.byte 0x7d,0x71,0xc9,0xde,0x71,0x36,0xbc,0xac,0x31,0x5c,0xf8,0x20,0xdd,0xb8,0xae,0x03,0xd3,0xb0,0xdc,0x27,0x7f,0xc5,0xff,0xda,0x8a,0x36,0x2d,0x8f,0xae,0xbd,0xf8,0x92,0x28,0x8e,0x0c,0xc3,0xaf,0x4e,0x33,0xf0,0x71,0xdb,0xad,0x4d,0xc1,0xef,0x52,0x1c,0x84,0xdc,0x0d,0xf3,0xab,0xb9,0x0b,0xe0,0x18,0xa5,0x06,0xdc,0x78,0x41,0x73,0x35 +.byte 0x95,0x37,0x84,0xba,0xc1,0x4e,0x0a,0xe4,0x4d,0x05,0xfe,0x9d,0x74,0x68,0x4a,0x35,0xf0,0x15,0xaa,0x7b,0xfe,0x08,0x47,0xb2,0x84,0x65,0x1d,0x0d,0x9f,0xe7,0xe0,0x04,0xf9,0x1c,0xac,0x66,0xb3,0x75,0x96,0x8f,0x25,0xb6,0x29,0x53,0x52,0x50,0x7a,0x50,0xd1,0x89,0xc7,0x05,0xfb,0x3a,0xb0,0xfa,0x6b,0x96,0x9d,0xfc,0xb0,0xcd,0x68,0x21 +.byte 0x61,0xf6,0x65,0x64,0xa7,0xc6,0x56,0xbd,0xf0,0x9b,0x4a,0x9a,0xe2,0x8c,0xd8,0x88,0x70,0x82,0x0c,0x87,0x51,0x77,0x23,0xd8,0xd8,0xf8,0x4a,0xfe,0xf4,0x6d,0x3f,0x2a,0x36,0x0c,0x67,0x85,0x43,0x13,0x83,0xd5,0xe9,0x32,0xff,0x8c,0xec,0xd4,0x7f,0xd2,0x32,0x4d,0x4e,0xec,0x76,0x55,0xf9,0x0d,0xb7,0x57,0x6c,0xc4,0xd6,0x22,0xd3,0x6e +.byte 0x71,0x23,0x68,0x45,0x03,0x37,0x27,0x3d,0x56,0x89,0xbb,0x7c,0xf1,0xa8,0x09,0xd6,0xb2,0xc5,0xe6,0xf6,0x72,0x77,0x3e,0xb0,0x8a,0x3d,0x17,0xbd,0xd5,0x0d,0xdb,0x62,0xa7,0x07,0x66,0x35,0x19,0x12,0xff,0xcf,0xdd,0xb3,0x09,0xa3,0x58,0x5b,0x0d,0x87,0x76,0x33,0x28,0x98,0x91,0x48,0xac,0xa1,0x22,0x9f,0xda,0x36,0x03,0x8a,0xc1,0x5e +.byte 0x6c,0x2e,0x42,0x8e,0x1a,0x7d,0x75,0x69,0xb2,0xcf,0xb0,0x14,0x80,0xa8,0x91,0xc2,0xbc,0x24,0x8f,0x25,0x9a,0x9e,0xa3,0x4d,0x46,0x55,0x53,0x05,0x0c,0xf8,0xdb,0xe0,0xee,0xe4,0x32,0xff,0x39,0x74,0x9a,0xa8,0xf7,0xa4,0x6e,0x5b,0x9a,0x89,0x33,0x40,0xf4,0xce,0x54,0x4a,0x18,0xdb,0x11,0xe4,0x83,0x69,0x52,0xef,0x12,0xc6,0x13,0x6e +.byte 0x2a,0x14,0xb9,0x8e,0x38,0x8d,0x6b,0xef,0x02,0xc8,0x66,0xf0,0x78,0xaa,0xa6,0x04,0xa3,0xa5,0x1d,0xdb,0xac,0x02,0x23,0x4c,0x2a,0xa5,0xbf,0x66,0xa4,0x47,0xa9,0x8e,0x50,0xd2,0xf8,0xf5,0x0d,0x0f,0xc9,0x07,0xd8,0x1a,0x94,0x84,0xcf,0xb3,0x56,0x53,0x5f,0x83,0x1d,0x30,0xb6,0x94,0x36,0xf4,0x16,0x72,0x8c,0x6d,0x49,0xe4,0x6d,0x93 +.byte 0xb1,0xa1,0x97,0x70,0x75,0x47,0x3a,0x7e,0xa6,0x39,0x1d,0xf5,0xcc,0x37,0xaa,0x90,0x53,0xe1,0x9b,0xcb,0x9a,0x97,0x7d,0x18,0x4a,0x3c,0x1f,0x05,0xf4,0xe3,0x6f,0x7a,0x19,0x84,0xbc,0x68,0xa4,0x6e,0x5a,0xb5,0x7a,0x51,0xda,0xf5,0x75,0x1e,0xfe,0xb0,0x73,0x43,0x39,0x98,0xb7,0x1e,0x17,0x36,0x35,0x15,0x64,0x90,0xb6,0x83,0x43,0x8f +.byte 0xcd,0xb6,0x8c,0xc4,0xe4,0xee,0x0e,0x1c,0xbd,0x3a,0xe6,0x6e,0x44,0x73,0x88,0x30,0xa0,0xf0,0x97,0xf5,0x5e,0x12,0xea,0xd9,0xd7,0xb5,0xc5,0x1d,0xc7,0xc8,0x55,0xbb,0x2c,0x64,0x43,0x50,0x15,0x71,0x02,0xd3,0xf9,0xb4,0xe7,0x2f,0x0f,0x98,0x9e,0x87,0x40,0x2a,0x61,0x06,0x44,0xc2,0x47,0xaf,0x44,0x4f,0xdd,0xa3,0xb0,0xb2,0x8d,0x8c +.byte 0x83,0x96,0xd3,0x2a,0x38,0xdf,0x87,0x5d,0x1c,0x64,0xc8,0x4f,0x3c,0x41,0xc7,0xf8,0x64,0x58,0xa6,0x9b,0xcb,0xcd,0x77,0xdb,0x38,0xe7,0x30,0xb6,0x91,0x88,0xd8,0x9d,0x29,0x71,0x12,0x9e,0xdf,0x20,0xd9,0x14,0xa3,0xa0,0xbd,0x0a,0x99,0x67,0x0a,0xe1,0xe9,0xba,0xd0,0x1b,0xba,0xc8,0x8d,0x76,0x10,0xe8,0x30,0xa1,0x93,0xf4,0x95,0x6a +.byte 0x12,0xd5,0x95,0x31,0x7f,0xdb,0x33,0xfc,0xbf,0x7a,0xbe,0xe4,0xfa,0x50,0x1b,0x24,0x75,0x9b,0xf8,0x81,0x34,0xc8,0xfb,0xda,0x3c,0x6f,0x3b,0x9a,0xb2,0x6f,0x94,0x0c,0xd9,0xc3,0x05,0xd6,0x96,0x10,0x27,0xdb,0xd6,0x88,0x72,0xe4,0x8f,0xfc,0xd3,0x52,0xf8,0x63,0xb2,0xce,0xf1,0x2a,0xbc,0x1c,0x23,0x9d,0xfb,0x27,0xdd,0x8d,0xe4,0xcc +.byte 0x63,0xcf,0xad,0xe6,0xe9,0x4f,0xb8,0x8a,0x20,0x47,0x75,0x73,0x3f,0x27,0x07,0x5d,0x8c,0x8c,0x6e,0x7a,0x91,0xe2,0xf6,0xd5,0x70,0xd8,0x00,0xe5,0x0f,0xde,0x78,0xd8,0xb4,0xd3,0x18,0x5a,0x24,0x43,0x91,0x0c,0xbe,0x8b,0x1b,0x88,0x48,0x7e,0x94,0x05,0xd0,0xec,0xd2,0x71,0x26,0xc7,0x70,0xeb,0x8a,0x83,0x01,0x52,0xdb,0xe5,0x76,0x31 +.byte 0x19,0x14,0x13,0x90,0x5b,0x5a,0x94,0x89,0xe2,0x4e,0x2d,0x17,0xf6,0xbc,0x67,0xee,0x51,0xd4,0x00,0x83,0xe5,0x18,0xa5,0x54,0x6c,0xd2,0x7a,0x1f,0xdb,0x6f,0xed,0x7f,0x07,0xbb,0x9f,0x3a,0xc2,0x8c,0x04,0xf9,0x9a,0x55,0xe3,0x70,0xf3,0x36,0xfd,0x44,0x05,0xd9,0xf3,0xe1,0x87,0x2c,0x29,0xec,0x30,0x8b,0xb7,0xde,0x27,0xa4,0xcd,0xdf +.byte 0x64,0x0b,0x62,0xdf,0x34,0xa0,0xf5,0xa1,0x69,0xc9,0x0b,0x00,0x81,0xf4,0x03,0x5e,0xef,0xb8,0x26,0x49,0x71,0x5e,0xcd,0x76,0xa2,0x38,0x25,0x1f,0x92,0xc3,0xbf,0xdb,0xb3,0x29,0x37,0x06,0xc5,0xc2,0x3b,0xd8,0xbd,0x55,0xf2,0x7f,0xd5,0xd5,0x34,0x32,0xf1,0xa0,0x92,0x9b,0x1c,0xee,0x6f,0x48,0x40,0x6b,0xd1,0x45,0x09,0x3f,0xaf,0xdc +.byte 0xe1,0xac,0x75,0x9a,0x33,0xf7,0x50,0x4f,0x2c,0x3c,0x30,0x69,0x69,0x84,0xcb,0xe9,0xca,0xdf,0x8d,0x02,0x5d,0x30,0x71,0x99,0x7b,0xd5,0xb2,0x55,0xdd,0x9c,0x2f,0xae,0x11,0x41,0x01,0x6b,0xf7,0x95,0xe3,0xda,0xe3,0xcc,0xa4,0x17,0xd0,0x50,0xf9,0x4c,0x31,0x2b,0x4e,0xf7,0x49,0xbb,0x75,0x8f,0x28,0x19,0x9f,0x89,0x7b,0x78,0x80,0x41 +.byte 0x50,0x5a,0x5c,0x1e,0x82,0x93,0x9f,0x4f,0x61,0x96,0x29,0x0c,0x25,0xb3,0xe6,0xff,0x86,0x90,0x78,0x09,0x04,0xf9,0x2a,0x3d,0xa1,0xd5,0x68,0xa8,0x0d,0xd9,0x41,0x01,0xdc,0x41,0x01,0xff,0x20,0xc0,0x63,0x0b,0x4d,0xd5,0x80,0x78,0x82,0x05,0x51,0x62,0x09,0xf9,0x11,0xbd,0xde,0xc0,0x7d,0x3f,0xf2,0x30,0xfb,0x41,0x68,0x39,0xb0,0xc2 +.byte 0x2e,0x33,0x4e,0xa7,0x85,0x01,0x6b,0xd1,0xf9,0x78,0xef,0xe9,0x7c,0x0e,0xaf,0x13,0x1a,0xf5,0x97,0xde,0xf0,0xbb,0x67,0xf9,0x9b,0xab,0xee,0x86,0x73,0x9b,0x23,0x6c,0x56,0x0d,0xa0,0xda,0x4c,0xff,0x2b,0xc5,0x92,0xdb,0xee,0xbd,0xba,0x3a,0x54,0x21,0xc0,0x5c,0xfe,0x21,0xf1,0xbd,0xac,0xaf,0xa3,0x7a,0x52,0x62,0x15,0x8b,0x8f,0xb5 +.byte 0x82,0xc6,0x1a,0xfb,0x22,0xbc,0xa2,0x05,0x42,0xfe,0xb4,0x12,0x6b,0xad,0xa9,0x76,0xb7,0x6b,0x1c,0xd8,0x34,0x5c,0x7d,0xd5,0xa9,0x0d,0x91,0xf6,0xc1,0x47,0x69,0xbc,0x43,0x8f,0xb7,0xfc,0x84,0x2e,0xa0,0x8e,0x3f,0x52,0x3b,0xbd,0x1f,0x28,0x6b,0xc8,0x13,0x37,0xd6,0x44,0xe9,0x8d,0x08,0x92,0x96,0xe5,0x2c,0x57,0x34,0x59,0x21,0x04 +.byte 0xa8,0xaa,0x56,0x25,0xa4,0xc8,0xae,0x68,0x17,0x9e,0xa4,0xf4,0x42,0x64,0x57,0x4b,0x54,0x85,0x8a,0xd1,0x09,0x09,0x25,0x18,0x05,0xb0,0x09,0x9d,0xd9,0x75,0x21,0xd3,0x75,0x31,0xf8,0x35,0x46,0xc8,0xd4,0x47,0x9d,0x87,0xeb,0x40,0x95,0x19,0x24,0x7c,0x6e,0xe9,0xd5,0x14,0xaa,0xc3,0xbe,0x22,0x18,0xc1,0xa0,0x5f,0x34,0x98,0xc2,0x4d +.byte 0x3f,0xa6,0x09,0x57,0x1b,0x75,0xc6,0x89,0xee,0xf0,0xbd,0xbc,0x1a,0xd3,0xea,0x6e,0x82,0x06,0x90,0x4f,0xbb,0x61,0xac,0xbb,0x3e,0x8c,0x94,0xea,0x69,0x58,0x26,0x2e,0x17,0x78,0xad,0x14,0xa4,0x79,0x14,0xbd,0xc1,0x78,0xf9,0xbb,0x11,0x7e,0x8d,0xbf,0x3e,0xc8,0xc5,0x69,0xd7,0x5a,0x4c,0x4b,0x86,0x25,0x4c,0xe9,0x3a,0xc2,0xd9,0xf8 +.byte 0xbf,0x5e,0x46,0x4f,0xca,0xba,0x25,0x58,0x73,0x82,0x02,0x8a,0x41,0x9e,0x2d,0xa9,0x08,0xb4,0x60,0x2a,0x11,0x2c,0x2f,0x3d,0x5e,0x68,0xd8,0xa9,0x2e,0x1c,0xfa,0xdc,0xda,0xfb,0xfb,0xf3,0xb2,0x66,0xd3,0x57,0xe6,0x09,0xeb,0xe5,0xf4,0xed,0x2d,0xb7,0x3a,0xce,0x69,0x2d,0xb4,0x79,0x1a,0x99,0x9d,0xc8,0x99,0x9f,0x9b,0x78,0xd4,0x8a +.byte 0x73,0xd5,0x89,0x9f,0xda,0xdf,0xd0,0xca,0x6b,0x63,0x5a,0x1e,0xe0,0x2f,0x01,0xa4,0xd0,0x62,0xc0,0x5f,0x4e,0xd9,0xd3,0x47,0xe4,0x68,0x73,0x8c,0x87,0x50,0x91,0xec,0x8e,0x0b,0xa7,0xf0,0x4c,0x32,0x19,0xaa,0x00,0xbd,0xe4,0x20,0xab,0x5c,0x00,0xdb,0x18,0xc0,0xff,0xc1,0xc0,0x8f,0xa2,0x8c,0x47,0x91,0x86,0xde,0xa9,0x09,0xb5,0x86 +.byte 0xcc,0x1d,0x7f,0x4b,0x7d,0x16,0xf6,0x21,0xd0,0xf8,0xaa,0x16,0x20,0xa9,0xac,0x3e,0xef,0x56,0xee,0x0e,0x1d,0xd6,0x44,0x7d,0xa9,0x84,0x41,0x8d,0x69,0x69,0x92,0x74,0x87,0x3b,0x8a,0xbf,0x40,0x29,0x45,0xf9,0xa8,0x52,0x8c,0x99,0x95,0xe7,0x6a,0xcd,0x3f,0x74,0x2d,0xde,0x82,0x47,0x41,0xa6,0xd9,0x5a,0x30,0x6c,0x20,0x98,0x3f,0xfb +.byte 0x66,0x08,0x73,0x68,0xe1,0xcd,0xfd,0x3c,0x4f,0x33,0x6b,0x42,0xa4,0xab,0x78,0x22,0xb5,0xd9,0x6f,0x99,0xcb,0x85,0x6a,0x14,0xb9,0xd3,0x0f,0xfb,0xd7,0x07,0x7b,0xbe,0x6a,0xd9,0xba,0xde,0x98,0xac,0xd8,0xe5,0x40,0xcd,0x59,0x7f,0x88,0x3c,0x4e,0xfa,0xfe,0xbe,0x48,0x21,0xb5,0x40,0xd5,0xc8,0x1e,0x8a,0x56,0xd9,0xec,0x25,0xad,0x5e +.byte 0x31,0xf3,0xf2,0x3d,0x0b,0x56,0xb5,0x20,0x08,0xd3,0x02,0x81,0x93,0x29,0x3d,0xbd,0x0a,0x9c,0x26,0x74,0xdb,0x6b,0x7e,0xd1,0x4a,0x1a,0x1c,0x47,0x49,0x34,0xba,0x08,0x7a,0x6a,0xb3,0xd6,0x3b,0xd0,0x28,0x50,0xa1,0xd8,0x17,0x85,0x61,0xab,0x24,0x22,0xda,0xc8,0xb4,0x1b,0x07,0x2e,0x67,0x77,0x84,0xdc,0x6f,0xfd,0x51,0xa5,0xe8,0x34 +.byte 0x63,0xbd,0xae,0xae,0xc7,0x84,0x1d,0x60,0xc8,0x8f,0xde,0x22,0xfd,0x85,0xb4,0x12,0xb4,0x04,0x5b,0xe7,0xb5,0x58,0xf8,0x56,0x66,0xa3,0xb7,0x1e,0x54,0xd0,0xdb,0x12,0xaa,0x9c,0x89,0x5b,0xfa,0xf4,0xe7,0xe2,0xf4,0x9c,0x08,0xa8,0xbe,0x6b,0xe3,0xce,0x6a,0x88,0xb5,0x74,0xb9,0x49,0xaa,0x7b,0xcd,0xbc,0x17,0x81,0x61,0xe2,0x28,0x6f +.byte 0x4b,0xe8,0xa4,0x55,0xc5,0x1e,0x69,0x21,0x8f,0xfd,0xa8,0xd0,0xb9,0x6f,0x1b,0xfe,0x8c,0x5e,0xf9,0x7d,0xd9,0xc2,0xbe,0x0f,0x6f,0xbd,0xa7,0x94,0x10,0x4e,0xe0,0x5a,0xbb,0xa3,0x40,0x9a,0x5a,0xad,0x10,0x97,0x92,0x3b,0xbd,0xa7,0x75,0x77,0xc6,0xa6,0xde,0x42,0x00,0x3b,0xf7,0xe4,0xf4,0xd7,0xdd,0xaa,0x31,0x1e,0x64,0xae,0x17,0x0a +.byte 0x25,0xa0,0x94,0x5f,0x3c,0xbc,0x3d,0x00,0x00,0xd3,0xba,0x7b,0x98,0x81,0xe1,0xdf,0xba,0x60,0x08,0x2a,0xe5,0x66,0x08,0x3e,0xfa,0x81,0x0a,0x89,0x4e,0xe5,0x3b,0xc3,0xdf,0x21,0x9b,0x54,0xa3,0xb3,0xc3,0xc1,0xce,0xb4,0xaa,0x06,0xee,0x2e,0x34,0x55,0xcc,0x8b,0x0f,0xcd,0x1d,0x1b,0xd9,0x9e,0x59,0xf0,0x93,0xc9,0xba,0x35,0x5c,0x99 +.byte 0xf6,0x86,0x9e,0xe9,0xf8,0x84,0x80,0x05,0x76,0x6f,0x8b,0x38,0xb6,0xe0,0xdf,0x0c,0xb3,0xc7,0x6e,0x62,0x53,0xe4,0x69,0x0a,0xc1,0xcf,0x5b,0x84,0x75,0x78,0x56,0x35,0xa5,0x26,0xc6,0xae,0x76,0x2e,0xc8,0x29,0x8d,0x16,0xd1,0x4f,0x27,0x36,0x22,0x41,0x31,0xfb,0xbe,0xd0,0xf9,0x0a,0x06,0xbf,0x59,0x6e,0x06,0x20,0x0d,0x52,0x66,0x63 +.byte 0x38,0x2a,0xb6,0x15,0x0f,0x51,0x14,0x0b,0xd1,0x63,0x40,0x2a,0xfe,0x88,0x51,0x53,0x5d,0x82,0x4e,0x1b,0x91,0x30,0x7a,0x09,0xec,0xb6,0x53,0x10,0x87,0xba,0x34,0x1f,0x8a,0xf7,0x85,0x31,0x77,0x76,0xba,0x55,0x07,0x6b,0x80,0x5d,0x14,0x23,0x50,0xef,0x07,0x91,0xc5,0x71,0x3a,0x55,0x44,0x9d,0xbf,0xe6,0xab,0xde,0x7c,0xdd,0xe0,0xcb +.byte 0xcc,0xc1,0x78,0xb4,0x8c,0xd1,0x35,0x73,0x80,0x9c,0x44,0xff,0xf8,0x8a,0xaa,0x9a,0x94,0xcf,0xc9,0x51,0xfc,0xa5,0x3d,0x86,0xd6,0x67,0x71,0x1b,0xdb,0x83,0xb2,0x67,0xb0,0x17,0xce,0x13,0x1b,0x7a,0x84,0xc8,0xaf,0x69,0x7e,0xf0,0xab,0xc5,0x8c,0x37,0x12,0x43,0x33,0x5f,0xaa,0xde,0xcf,0x4c,0x73,0x7f,0x6b,0x80,0x18,0x27,0x72,0x62 +.byte 0xe8,0x3d,0x1c,0x94,0x91,0xfa,0x33,0xef,0x13,0x94,0x7f,0xb6,0x53,0xe3,0xd7,0x73,0x05,0x3e,0xe8,0x45,0xde,0x1e,0x1d,0xa4,0x41,0x11,0x0a,0x7f,0x62,0x6e,0x9f,0x9f,0xec,0xe9,0x87,0xe0,0x5d,0xbb,0xbc,0x0b,0x37,0xa2,0xf3,0x68,0x8a,0x24,0xec,0x98,0xe5,0x5d,0xbf,0xa1,0x60,0x2b,0xc2,0x74,0x4b,0x8b,0x85,0x44,0x28,0x02,0xd5,0xb9 +.byte 0xae,0x00,0x37,0x1e,0x0b,0x46,0xe6,0x40,0xf1,0xdc,0xa0,0xfc,0xae,0x04,0x7f,0xb6,0x46,0xa3,0x22,0x79,0x92,0xda,0x89,0xa0,0x38,0xf0,0xa2,0x4a,0x76,0x79,0x0c,0x46,0x4d,0xa9,0xe6,0x75,0xff,0x01,0xb3,0xe4,0x13,0xc2,0x53,0xe9,0x6d,0x1f,0xdd,0x88,0xcf,0x10,0xf5,0x16,0xef,0x05,0x59,0x51,0x15,0x49,0x17,0xda,0xff,0x0e,0xb3,0xb9 +.byte 0xae,0x79,0xc6,0xb1,0x94,0x08,0x09,0x30,0x9f,0x2a,0xfd,0x55,0xc0,0x41,0x8c,0xe5,0x0e,0xee,0xc2,0xa0,0x05,0x36,0x66,0x8d,0x9a,0xcc,0xc9,0xeb,0x1d,0x34,0xc0,0x1a,0x29,0xc2,0xcd,0xb7,0x25,0xd3,0x83,0xf8,0x1e,0xa0,0xf4,0x50,0xd4,0x08,0x0d,0xcb,0x6a,0x2f,0xa5,0x8b,0x30,0x94,0x89,0xea,0x94,0x6c,0x00,0x7e,0x7f,0xb5,0x4d,0x61 +.byte 0xa7,0x9d,0x94,0xcc,0x14,0x8f,0x75,0x1f,0xef,0x2b,0xbe,0x37,0xdd,0x19,0x41,0x2e,0x90,0x36,0x27,0xa5,0xa9,0x6c,0x75,0x8c,0x2d,0xe3,0x97,0x74,0x91,0xf3,0xb8,0xcb,0xcb,0x74,0xba,0xf0,0x57,0x70,0x89,0xee,0x4d,0xc5,0xfe,0x3e,0x60,0xe3,0x5b,0x28,0x36,0x91,0x6f,0xcd,0x6c,0x33,0xb6,0x44,0x0c,0xce,0x81,0xe4,0xdb,0x84,0xbe,0x4e +.byte 0xef,0xb8,0x75,0xf7,0x8b,0xb0,0xb7,0x0d,0x00,0x13,0x54,0x39,0xfd,0x9e,0x86,0x5c,0x59,0xd0,0x84,0x0f,0x97,0xc0,0xf8,0xfa,0x4a,0xcf,0x57,0xb8,0x24,0xf0,0xa8,0x40,0x70,0x9d,0xc4,0xe5,0xc7,0xc9,0xcb,0xb6,0xf4,0x0b,0xb5,0xcc,0xe0,0x90,0x2b,0x42,0x81,0xd6,0x59,0x2e,0x11,0xbd,0xe8,0xf5,0xef,0xa8,0x2b,0xdb,0x93,0x62,0x1e,0xef +.byte 0x3a,0x5f,0xf5,0x47,0x15,0x1f,0x03,0x6f,0x40,0x85,0xff,0x50,0x89,0x2e,0x72,0x8f,0x5c,0x0d,0x61,0x84,0x8d,0x8a,0x8f,0x2a,0x47,0x7c,0x97,0xfe,0x8a,0x97,0x6c,0xd5,0x1c,0x97,0xfa,0x59,0xbe,0x2c,0x0f,0x4d,0x85,0x7f,0x18,0xe3,0xea,0xe8,0xde,0x5a,0xf3,0x67,0xe1,0x71,0x7e,0x81,0xa3,0x74,0x0d,0xf4,0x3d,0x5a,0xec,0xc1,0xcf,0x6f +.byte 0x08,0x0f,0x5a,0x63,0x72,0x0b,0x46,0x5d,0x38,0x80,0xea,0xb7,0x12,0x5d,0xce,0x37,0x26,0xaa,0xd3,0x0d,0x93,0x4a,0x34,0x20,0xd5,0x51,0x54,0x1c,0x5e,0x53,0xa9,0xed,0x26,0x3c,0x29,0xaf,0xbe,0x73,0x34,0xa5,0xc3,0xbf,0x8c,0x8a,0xc3,0x30,0x89,0xaf,0xa9,0x2d,0x28,0x35,0x7d,0x6b,0x84,0x23,0x22,0xee,0x8c,0x82,0x04,0xbd,0x26,0x52 +.byte 0x26,0x73,0x76,0x05,0x35,0x0c,0xec,0xf7,0x54,0xb2,0x17,0x68,0xe9,0x68,0x67,0xbb,0x0d,0x98,0x19,0x32,0xa7,0xdb,0xf9,0xef,0x42,0xe7,0xc2,0xe2,0x39,0x9c,0xae,0xbb,0xdb,0x91,0x28,0x82,0x88,0x23,0x61,0x50,0x6d,0x61,0x39,0x73,0xf8,0x6a,0xee,0xf3,0xa9,0x2c,0x78,0x0d,0x5a,0xed,0xb1,0x08,0x8f,0x24,0xe5,0xb7,0xa4,0xdf,0x65,0x9a +.byte 0x72,0x3a,0x39,0x9c,0xf4,0x43,0xdc,0x8a,0xa3,0x3d,0xb5,0x1e,0x7b,0xe5,0x83,0x11,0x07,0xab,0x62,0x7e,0xac,0xab,0x52,0x94,0x0b,0xaf,0xdf,0x54,0x18,0xf1,0xc0,0x9f,0x1c,0x33,0x02,0xd9,0x62,0xc3,0xcc,0xaf,0x32,0x09,0x35,0x77,0xad,0x72,0xd6,0xb5,0x2d,0xaf,0xf9,0x39,0xfb,0x95,0xbb,0xf9,0x84,0x80,0x84,0xc8,0xc6,0x6d,0xb5,0x79 +.byte 0x25,0xf4,0x6c,0x71,0x26,0xda,0x74,0x86,0xad,0x52,0x47,0x8b,0x46,0x32,0xf6,0x2c,0x89,0xdb,0x93,0x1f,0x46,0x83,0x91,0x19,0xd2,0x0c,0x29,0x97,0x5f,0xa9,0x2b,0x87,0x0c,0x87,0x89,0xe6,0x63,0xa1,0x36,0xfb,0xfa,0xb4,0xb8,0x8e,0x5f,0xe9,0x8f,0x62,0xd2,0x81,0x1d,0x7b,0xc6,0x14,0x37,0x56,0x73,0x64,0x3d,0x0a,0xfd,0xe5,0x94,0x01 +.byte 0x09,0xc8,0x0d,0xa8,0x92,0xda,0x43,0xc4,0x41,0xca,0x3c,0x27,0x2c,0xbb,0xc4,0xb2,0x77,0x13,0xa6,0xb0,0x0e,0x97,0x6a,0xb2,0x83,0xe5,0x5e,0xa3,0xc0,0xe8,0x5e,0x0b,0xe6,0x00,0x04,0x6c,0x1b,0xac,0x84,0xab,0xd3,0xac,0x5f,0x39,0xc2,0xf8,0xfd,0x66,0xf7,0x97,0xd7,0xb9,0x6b,0xd8,0x2a,0x49,0xf7,0x67,0xd8,0xd5,0xa4,0x89,0x57,0xa6 +.byte 0x8f,0x7c,0xcf,0xaf,0xfe,0x3c,0x92,0xc8,0x23,0x2c,0x26,0x83,0x86,0x16,0x97,0x34,0x71,0x3e,0x82,0x2b,0xc7,0x75,0x5a,0x59,0xb3,0x44,0xdd,0x4e,0xd4,0x6d,0x1b,0x9f,0x3c,0x35,0xc4,0xe4,0xf2,0x95,0xb6,0x90,0x95,0xa7,0xc4,0x03,0x10,0x7d,0x3d,0xeb,0x74,0x29,0xaa,0x0c,0xd3,0x27,0xcd,0x3a,0x85,0x3c,0x88,0xd5,0x9a,0x46,0x84,0x8e +.byte 0x36,0xde,0xe3,0x6a,0x27,0xbf,0xc3,0xd0,0x3e,0xa3,0x0e,0x62,0x1f,0xdf,0x4c,0x02,0xa7,0x11,0x91,0xb0,0x6b,0x50,0xc1,0xe0,0x18,0x5a,0xc0,0x10,0xc7,0x1c,0xb6,0x36,0xac,0xe7,0x7d,0xad,0x34,0x63,0x4f,0x17,0xcc,0x41,0x30,0xec,0xd7,0x14,0xb9,0xfe,0x07,0x5c,0x3d,0xbe,0x08,0x77,0x5b,0xdf,0xa3,0x20,0x56,0x55,0xa2,0x8a,0xe7,0x0d +.byte 0xf6,0xfc,0x91,0x37,0xb8,0x92,0x6c,0xd9,0x5c,0xb0,0xc2,0xf7,0xc0,0x38,0xfa,0x54,0xc6,0xa1,0xd3,0x4d,0xae,0x49,0x0d,0xd1,0xc0,0xef,0xbe,0x27,0xce,0x23,0x8e,0xf2,0x9b,0x68,0x02,0x67,0x8f,0x53,0x9d,0xf6,0x23,0x57,0x85,0xdd,0x8d,0xd7,0xcb,0x47,0xf1,0xd8,0x17,0xd8,0x46,0x72,0x28,0x4b,0xac,0x94,0xd3,0x5d,0x53,0x4f,0x06,0x19 +.byte 0xc6,0x0e,0x0b,0x9f,0x58,0xc6,0x3f,0xea,0x4e,0x83,0x5e,0xd3,0xcc,0x44,0x55,0xa3,0xc7,0x24,0x19,0xea,0x1b,0x18,0xc1,0x18,0x5f,0x21,0x67,0x73,0x32,0x4e,0x31,0x69,0x05,0x40,0x79,0x7c,0x05,0x13,0xdd,0x50,0xea,0xfa,0xc2,0x26,0xe2,0x33,0xff,0x34,0x0d,0xda,0x77,0x27,0xe0,0xe7,0xa6,0x7b,0x8e,0xcd,0xdb,0x92,0x48,0x3a,0x2d,0x52 +.byte 0xf5,0x59,0xca,0xc7,0x47,0xda,0xb7,0xc7,0x8c,0x37,0x5e,0x29,0x30,0xf5,0x57,0x74,0x8b,0x10,0xcb,0x20,0x31,0x4b,0x12,0xe3,0x84,0xd2,0xb2,0xc3,0xd0,0xe3,0x94,0x18,0xa2,0xdc,0x8f,0x4d,0xc3,0x0a,0x43,0x07,0x2c,0x6b,0x41,0x64,0xc0,0x35,0x8f,0x37,0x9b,0xd7,0x78,0xab,0xd0,0xdc,0x1f,0x77,0x55,0xab,0x71,0xc8,0x99,0x98,0x00,0x29 +.byte 0x1c,0xab,0x3c,0x5f,0x82,0x96,0xc2,0xc8,0x9b,0xd4,0x68,0x3f,0x3d,0xe6,0x5a,0x4c,0x1c,0x7b,0x51,0xa3,0x79,0xe8,0x0e,0x8a,0x78,0xdc,0x98,0x63,0x80,0x74,0x32,0x9d,0x7c,0x3a,0x79,0x54,0xa7,0x4c,0xa4,0x4e,0xfc,0xa5,0x8a,0xa4,0x19,0xce,0x84,0xbb,0x8a,0xb9,0x93,0x4a,0x2d,0x82,0x5d,0x1d,0xf8,0x2f,0x85,0xb3,0x90,0x32,0x61,0x6d +.byte 0x13,0x33,0xac,0xbc,0x5d,0x3a,0x54,0x45,0x04,0x50,0x30,0x30,0xc7,0x58,0xbe,0xed,0xdd,0xa1,0xae,0x6d,0xe5,0xde,0xed,0x63,0x9f,0xd4,0x2b,0x8d,0x1f,0x69,0xde,0xda,0x55,0x3f,0x3b,0xe7,0xc8,0x73,0xc0,0x68,0x18,0x6a,0xb3,0xfb,0xce,0xaf,0x46,0x0a,0xcc,0x81,0xa8,0x96,0x6d,0xb6,0xa4,0x74,0xf3,0x8c,0x95,0x2d,0xa1,0xfe,0x09,0xb8 +.byte 0xdb,0x3c,0xcd,0xdc,0x5b,0x0e,0x2d,0xff,0x89,0x8a,0xfd,0x7a,0xe9,0x69,0x0b,0xdd,0x4e,0x9b,0x94,0x64,0xe4,0xb6,0x5d,0x69,0xef,0x9c,0xf6,0xe6,0x44,0x73,0xd5,0x86,0x47,0x63,0x77,0x3e,0x74,0xaa,0xf3,0x6b,0x1f,0x37,0xbf,0xef,0xa2,0xff,0x86,0x61,0x78,0xc4,0xb5,0xbd,0x5a,0x43,0x49,0x80,0x16,0xf2,0x4c,0xec,0x1e,0x07,0x0f,0x41 +.byte 0x60,0x6f,0x3a,0xd2,0xab,0x85,0xc0,0x5c,0xfc,0x9f,0x48,0xad,0x5e,0xe0,0x7d,0x66,0x8e,0x46,0xf1,0xc3,0xb0,0xbc,0x5e,0x3b,0x10,0x7c,0xfc,0xa3,0x27,0xbd,0x8f,0xae,0xd9,0x61,0x39,0xbf,0xca,0x27,0xbb,0xe7,0xda,0x59,0xa8,0x63,0x38,0x16,0xd9,0xb5,0xa6,0xd9,0x1c,0x2b,0xa1,0x42,0xec,0x50,0xd7,0x63,0x09,0x22,0xe0,0x0c,0xb8,0xec +.byte 0x12,0x9b,0xdb,0x8a,0xd3,0x02,0xcf,0x32,0xa9,0x88,0xa4,0x31,0xc8,0xa9,0xf4,0x03,0xf2,0x9d,0xe1,0x41,0xf0,0x0f,0x23,0x65,0xa8,0x99,0x55,0x87,0xf2,0x17,0x66,0xf0,0x94,0xe8,0xe9,0xb6,0xfd,0x10,0xb9,0x55,0xf4,0xda,0x06,0x7a,0xbe,0xe2,0xd3,0xfa,0xb8,0xf7,0x85,0xdf,0xee,0x39,0xdc,0x0f,0xda,0x87,0xf5,0x66,0xd8,0x1b,0x5c,0x0c +.byte 0x13,0xe8,0xa2,0xcd,0xdf,0x47,0x33,0xd7,0xf4,0x5c,0x79,0xc7,0xf4,0x68,0xe4,0x2d,0xa1,0xde,0x5c,0x06,0x1c,0x85,0xf1,0x2a,0xf9,0x73,0x44,0xbc,0xd3,0x57,0x4f,0x0f,0xcd,0xcc,0x40,0xeb,0x9d,0x35,0x8e,0xdf,0x1d,0x4a,0x61,0xd0,0x66,0xb5,0x16,0xce,0x45,0xc0,0xbf,0x01,0xe3,0xb2,0x51,0xba,0x53,0x18,0x2a,0xff,0x19,0xea,0x41,0xa2 +.byte 0xac,0x0b,0x50,0xd3,0xc1,0x6a,0x9c,0xb0,0x34,0x6f,0xa0,0xcb,0xc7,0xc6,0x79,0x5d,0x17,0x3a,0x4c,0xa3,0x16,0xdc,0xac,0x10,0xf0,0x24,0xad,0x9a,0x5b,0xa9,0x7e,0x45,0xcd,0xe9,0xad,0x87,0x04,0xbc,0x2a,0x05,0x59,0xd1,0xdb,0x86,0x22,0x40,0xdf,0xb1,0xff,0x8d,0x3c,0xf8,0x6a,0xf3,0xcb,0x60,0xf9,0x35,0xa6,0x42,0x81,0xcb,0x0f,0x7c +.byte 0xf7,0x24,0x3b,0x0c,0x94,0x32,0xd9,0xec,0xcf,0xd1,0x31,0x3e,0x3e,0xeb,0xa9,0xf2,0x1f,0x2d,0xa7,0x89,0xf7,0x67,0x7d,0x90,0x9d,0x40,0xf2,0xdb,0x07,0x8f,0xb8,0x6f,0xfd,0x78,0x6e,0xd0,0x9e,0xd5,0x7d,0xb0,0x7d,0x65,0xdc,0x6e,0x50,0xec,0x7a,0x5c,0x2c,0x3e,0x6f,0x64,0xa3,0x10,0x34,0xf7,0x71,0xc8,0x82,0xb6,0x96,0xb8,0xb1,0x2a +.byte 0xb4,0x03,0x95,0x75,0x90,0xac,0x6c,0x81,0x17,0x97,0x06,0xd0,0xb8,0xc5,0x98,0xc5,0x9e,0x46,0x07,0x13,0x02,0x9e,0x47,0x69,0xba,0x85,0x2d,0x09,0x86,0x50,0xe4,0x76,0xb1,0xa2,0xbe,0x8b,0x91,0x6b,0x3b,0x76,0xa3,0xb7,0xf5,0x7f,0xfe,0xf1,0xa4,0xf3,0xc3,0x53,0x64,0xef,0x97,0x86,0x96,0x8b,0xc4,0xae,0x06,0x8b,0xe8,0x3c,0xdc,0xff +.byte 0xfa,0xad,0xcb,0xcb,0x53,0x15,0xf2,0xcc,0x9f,0x48,0xf9,0x57,0x6a,0xcd,0xb2,0xee,0x46,0xc0,0xbf,0x82,0x58,0x60,0xda,0x2f,0xbd,0xde,0xc7,0x41,0xcb,0xf1,0x38,0x56,0x9d,0x38,0x38,0x3d,0xea,0x5e,0x38,0xf1,0xd0,0x02,0x35,0xee,0x4c,0x2f,0x1d,0x19,0xbd,0x08,0x01,0xc3,0x8f,0x75,0xe2,0xf3,0x93,0xbb,0x76,0x6b,0xd7,0x87,0x76,0x7f +.byte 0x3b,0x29,0x08,0x9f,0x3a,0xa5,0x44,0x96,0x5a,0xb3,0x78,0xa9,0xbe,0xf7,0x5d,0xda,0x06,0x37,0x98,0x5d,0xbe,0x6e,0xec,0x58,0x53,0xd1,0xa5,0xd7,0x7a,0x16,0xb1,0x59,0x98,0x42,0x37,0x76,0x1b,0xd6,0x2e,0xa7,0xdc,0x45,0xa6,0x9c,0x9c,0x99,0x24,0x0e,0x22,0xae,0x94,0x65,0xeb,0x4e,0x64,0xc3,0xb0,0xac,0x19,0x41,0xf1,0x62,0x65,0xb2 +.byte 0x35,0xf5,0x2f,0xdb,0xd2,0xf0,0x78,0x19,0x35,0x04,0x6f,0x9c,0xf4,0xaf,0x81,0x68,0x4f,0x8b,0x85,0xfa,0x31,0x23,0x06,0xeb,0x37,0x86,0x43,0x51,0xb3,0xd2,0x2a,0xd7,0xd5,0xa9,0x33,0xba,0xfd,0xb5,0x0e,0x6d,0x9a,0x91,0xf9,0xe7,0x27,0xb7,0xff,0xe6,0xe7,0x34,0xc5,0x1a,0xa3,0x45,0x3b,0x71,0x34,0x87,0x7e,0xe7,0xab,0x74,0xc5,0xff +.byte 0xeb,0x23,0x8f,0x3f,0x5d,0x1c,0x91,0x47,0xeb,0x3e,0x5f,0x5a,0xa6,0x5a,0xde,0xa9,0x5f,0xf4,0x8f,0x95,0xc6,0x25,0x3c,0xd5,0xaf,0xfd,0x4d,0x33,0x68,0xe1,0xa3,0x51,0x1b,0x07,0xad,0xb9,0xec,0xf1,0x50,0x51,0xbf,0xeb,0xe8,0x58,0x2a,0x50,0x0e,0x9d,0xc2,0x8a,0x83,0x8c,0xb0,0xb8,0xde,0x1d,0x7b,0x0f,0xff,0xfc,0xfc,0x31,0xe5,0x62 +.byte 0x40,0xc8,0x28,0x30,0x31,0xc9,0x82,0xab,0xbe,0x50,0xe5,0xfe,0x1f,0x49,0x17,0xf9,0xea,0x23,0xc7,0x6d,0x8d,0x63,0xc3,0x70,0x40,0x32,0x0b,0x48,0x7a,0xd9,0x03,0x52,0x1b,0xf4,0x90,0xd6,0x6d,0xd2,0xfc,0xec,0x24,0x7f,0x21,0x2e,0xd4,0xb5,0x60,0x44,0xd9,0x83,0xb0,0x3e,0x75,0x8a,0x6a,0x09,0xab,0xa8,0x4f,0x48,0x3c,0x2b,0x89,0x30 +.byte 0x29,0xdb,0x1a,0x8e,0x68,0xe4,0x89,0xed,0x10,0xe8,0x46,0xa7,0xf9,0x5f,0x7d,0x42,0xe0,0x8d,0xbc,0x3d,0x4d,0xd8,0x06,0x4a,0xf9,0xbb,0x97,0xa7,0xdb,0x24,0x0b,0xfc,0x49,0x92,0x5d,0x80,0xf8,0xed,0x57,0xc7,0x1e,0x82,0xed,0x41,0xb8,0xfd,0x71,0xb9,0xa5,0x11,0x52,0xdd,0x1e,0xa4,0xf1,0x02,0xc7,0x54,0x7c,0xdc,0x37,0x9f,0xfe,0x37 +.byte 0xe8,0xa5,0xcf,0xb0,0x3d,0x25,0x3f,0x24,0xfe,0xf2,0x63,0x97,0x3c,0x13,0xdc,0x31,0x78,0x07,0xf1,0x8e,0xee,0xc6,0x00,0xf8,0xfd,0x84,0x53,0x4d,0x92,0xa1,0xef,0xd0,0xb1,0x12,0x0a,0x12,0x91,0xeb,0x52,0xdd,0x6e,0x15,0x98,0xd2,0xe1,0x53,0x7a,0x0e,0x02,0x83,0xd3,0xd1,0xde,0x72,0x6e,0x5b,0x4b,0x8d,0x40,0xe3,0x2d,0x22,0x59,0x9d +.byte 0xee,0xbe,0x43,0x18,0x62,0x8c,0x77,0x18,0x91,0xf5,0x9e,0xbc,0x3e,0x8b,0x77,0xb6,0xdb,0x5c,0xcb,0xcd,0xdb,0x36,0xea,0xf5,0x1d,0x9b,0xa7,0x13,0xef,0xda,0xd0,0xe8,0xd8,0xb2,0x4c,0xc6,0x19,0x3d,0x77,0x2d,0x0d,0xad,0xe4,0x32,0x24,0xe9,0xd4,0x7f,0x72,0x1d,0xc6,0x6e,0x83,0x7d,0xb8,0x62,0x64,0x9d,0x9a,0xd7,0x13,0x93,0x92,0xf1 +.byte 0x37,0x98,0xcf,0x44,0x66,0xab,0xd1,0x61,0x6c,0x08,0xa7,0x41,0x4e,0x37,0xc1,0x67,0xfb,0x7c,0x22,0x8f,0xbd,0x93,0xb2,0x09,0x13,0xa0,0x48,0x60,0xaf,0xda,0x73,0x2b,0xa3,0x2a,0xf3,0x4d,0x8e,0x22,0x5b,0x7a,0x32,0xe6,0xca,0xff,0x0e,0xa1,0x0a,0x15,0x33,0x31,0x50,0x71,0x1c,0x85,0x26,0x9b,0x19,0xf2,0xe3,0x69,0x4e,0x2d,0xff,0x79 +.byte 0x80,0xfe,0x2c,0x2f,0x7a,0x49,0x95,0xf3,0x0e,0x78,0xb1,0x0c,0x1c,0x45,0x59,0x68,0x2a,0x37,0xf2,0x48,0x6f,0xd9,0x32,0xf7,0xfc,0xdc,0xbe,0xe3,0xdd,0x61,0x17,0xc0,0x08,0x9d,0xbc,0x2d,0x8d,0x24,0x1c,0xbb,0x53,0xbe,0x37,0x59,0x30,0x87,0xa0,0x14,0xf5,0x08,0xcf,0xd1,0xcc,0x84,0xa7,0x0f,0x69,0xe0,0x77,0x8c,0x0d,0xdc,0x82,0xe5 +.byte 0x88,0x9a,0x58,0x05,0xe3,0x4f,0xdd,0x55,0x1e,0x6e,0x90,0xd5,0x3c,0xa6,0xa6,0x10,0x24,0xe5,0x58,0x97,0xdc,0x31,0x87,0x39,0xdc,0x3a,0xe6,0x24,0x64,0x23,0x45,0xd8,0x01,0x1b,0xf6,0x38,0x68,0x9e,0x62,0x53,0x00,0x97,0x71,0x04,0xb5,0x3b,0x54,0xdb,0xb5,0xcb,0x30,0x91,0x14,0xce,0x94,0xd5,0xe0,0x96,0x70,0x99,0xa5,0xed,0x69,0x32 +.byte 0xc7,0xb7,0x14,0xff,0xc0,0xde,0x19,0x5d,0x31,0xdb,0xa7,0xc0,0x7a,0x94,0xec,0x60,0xfc,0x52,0x71,0x69,0x9b,0xd8,0xbe,0x97,0x0b,0xb5,0x70,0xa7,0x47,0x11,0x37,0x84,0xda,0x3c,0x23,0xfe,0xf2,0x53,0xad,0x55,0x71,0x1e,0x70,0x9b,0x7b,0x61,0x97,0xf8,0x71,0xc4,0xad,0x72,0x98,0x43,0x0c,0x33,0x30,0x2c,0xb2,0xd6,0x21,0x8d,0xbb,0x1b +.byte 0x85,0x82,0x24,0x14,0x85,0x95,0x88,0xff,0x3f,0x8c,0x88,0x96,0xa0,0xf8,0xd7,0x36,0x78,0x37,0x6d,0x92,0x09,0x04,0x76,0x27,0xb9,0xd5,0xea,0x0f,0x07,0x9f,0xe1,0x49,0x0e,0xd1,0x9c,0x46,0xcd,0x2b,0x7a,0x57,0xb6,0x56,0x39,0xe5,0x59,0x6b,0x1b,0x39,0xbf,0x15,0x3b,0x56,0xf5,0xc2,0x08,0x96,0xf5,0x63,0x4c,0x31,0x33,0x65,0x8b,0x74 +.byte 0x4e,0xde,0xa8,0x20,0xe0,0x7c,0x27,0xee,0x91,0x74,0xe8,0x24,0xb3,0xcf,0xa3,0xd4,0xf1,0xb9,0x18,0x43,0x05,0x5d,0x13,0x36,0x82,0xd1,0xbf,0x16,0x89,0x48,0x83,0xf0,0xcc,0x5c,0xbb,0x75,0x7e,0x71,0xc0,0x73,0xd1,0xf5,0x00,0x38,0x7f,0x10,0x98,0xd6,0xb9,0x14,0xea,0xd3,0x3f,0x0f,0xe3,0x61,0x1a,0x5e,0x21,0xd0,0x11,0x58,0x68,0x47 +.byte 0xf2,0xe5,0xe9,0x65,0x9a,0xc1,0xf4,0xa0,0x98,0x8e,0x9f,0x7f,0xbe,0x7e,0xd0,0xb6,0x88,0x4e,0xce,0xc1,0x8b,0xd4,0xd3,0x93,0xb7,0xd8,0xf3,0x0b,0xf3,0x73,0xc9,0x08,0x2f,0xcf,0xd8,0xbd,0xa6,0x1d,0x7c,0xfa,0x44,0x82,0x9f,0x03,0xca,0x56,0x3b,0xbf,0x4d,0x1e,0xbc,0x06,0xc2,0x37,0xfb,0xde,0xd3,0xa9,0xe3,0xae,0x61,0xef,0x26,0x7d +.byte 0xbd,0x2f,0xee,0x2d,0xe1,0x65,0x71,0x77,0xab,0x9c,0x96,0x4f,0x00,0xe2,0xde,0xd7,0x05,0x54,0x00,0xb6,0xaf,0x12,0x0c,0x79,0x1a,0xed,0x20,0x72,0xc7,0x3b,0x3a,0x10,0x15,0x74,0xff,0xbd,0xf8,0xaa,0x8f,0x3a,0x83,0x39,0x24,0xfa,0x53,0x2d,0xc3,0x61,0xfc,0x12,0x6b,0x54,0x33,0xbf,0x83,0xc9,0x59,0x00,0xf0,0xdc,0xa8,0x64,0xbc,0xb5 +.byte 0xc3,0x96,0x60,0x3e,0x7b,0xe2,0x08,0x19,0x92,0x17,0x80,0x9b,0x0c,0x09,0x49,0x68,0x8b,0x15,0xe3,0xce,0x0c,0xfa,0x0c,0x8b,0xf0,0xdc,0x58,0xb0,0x7b,0x82,0x85,0xd2,0x56,0x1c,0xfb,0xb5,0xd0,0x0e,0x0a,0x55,0x61,0xda,0xd8,0x20,0xc1,0x79,0x70,0x3c,0x69,0x8e,0x49,0x5f,0x1c,0xdb,0x22,0xb8,0xdd,0x4c,0x4f,0xca,0xe9,0x0f,0x9a,0x4e +.byte 0xff,0x56,0xbc,0xcf,0x72,0x09,0xa6,0x41,0x38,0xf0,0x7d,0xe7,0x45,0x0a,0x71,0x2c,0x92,0xdd,0x21,0x17,0xb2,0x3b,0x31,0x3c,0x91,0x11,0x69,0x29,0x50,0x31,0xe6,0xa6,0x10,0xc7,0x35,0xe8,0x44,0xec,0x74,0xa3,0x7e,0xb6,0x34,0xe5,0xb7,0xba,0xdf,0x5b,0x2f,0x85,0x02,0x6c,0xb0,0x71,0xb1,0x43,0xff,0x0e,0x47,0x04,0x63,0x4d,0x5b,0x81 +.byte 0x81,0x28,0x8b,0x84,0x79,0xad,0x2a,0x45,0x00,0x1c,0x0c,0x9f,0xef,0x35,0xbb,0x6d,0xc5,0x6a,0x6b,0xef,0x2b,0xae,0x78,0x66,0x05,0x7a,0x61,0x4c,0xe9,0x5e,0xf7,0x95,0x66,0x7e,0x1a,0xa7,0xdf,0x4c,0x4d,0x7c,0x66,0xa5,0x38,0x84,0x86,0x8d,0x66,0xcc,0x7f,0x32,0xb2,0x9c,0xc5,0x0d,0x3d,0xb7,0xb1,0xa6,0xc5,0x80,0x68,0xaf,0x79,0x81 +.byte 0x15,0x8f,0xec,0x50,0x5c,0x1b,0x57,0x31,0xd2,0xb9,0x16,0x66,0xf8,0x16,0xfd,0xcd,0xc7,0xa8,0x84,0x6f,0x35,0xea,0x3f,0xa4,0x72,0x8d,0xad,0xf4,0xd1,0x14,0x46,0xcc,0x06,0xed,0x71,0x39,0x07,0x99,0x28,0xc8,0xf9,0xc4,0xc2,0xec,0xde,0xb8,0x92,0xae,0xc5,0xf8,0xb2,0x49,0xc9,0x32,0x58,0xec,0x9f,0xb0,0x59,0xaf,0x49,0xef,0xe8,0x0d +.byte 0x4c,0x56,0x8d,0xf7,0x57,0xb0,0x09,0xbe,0xc2,0x6a,0x62,0xc4,0x87,0xf3,0x20,0x07,0xc9,0xe3,0x3b,0x31,0xcc,0x8d,0xcf,0x5d,0x18,0x00,0x2a,0x9f,0xde,0x80,0x1a,0x7e,0x95,0x93,0xd1,0xbd,0xe6,0xd4,0x69,0x37,0x96,0xbb,0x70,0xc5,0x3c,0x87,0x8f,0xff,0x95,0x97,0xfe,0x95,0x56,0x7b,0xba,0x03,0x3d,0x29,0x0f,0xdb,0xd0,0x65,0x4f,0xf8 +.byte 0xa8,0xf3,0x42,0x09,0xb5,0x81,0x34,0xc6,0xa9,0x60,0xb9,0xef,0x3e,0x9d,0xc5,0x42,0x1e,0x79,0x5d,0x2b,0xf2,0x46,0x0d,0xeb,0x88,0x84,0x8f,0xad,0x60,0x69,0x57,0x49,0x33,0xb4,0xdd,0xfe,0x10,0x65,0x65,0x51,0xaf,0x68,0xa0,0xce,0xbd,0xe1,0x6e,0x03,0xe1,0x5f,0xba,0x3f,0x36,0xca,0xed,0x20,0x95,0xfa,0xff,0x3c,0x65,0xa8,0xb1,0x6b +.byte 0xc5,0x91,0xa0,0xd5,0x36,0x38,0x1c,0x38,0xe9,0x1d,0x1b,0x67,0x4c,0x17,0xd3,0x29,0x92,0xa2,0x27,0x76,0x3d,0xe2,0x26,0x37,0x2a,0x2c,0xf6,0xee,0x64,0x40,0x8a,0x1c,0x2b,0xc1,0xd3,0x28,0xd0,0xcf,0x2d,0xc2,0x45,0xf4,0x37,0x5a,0x63,0xfb,0x18,0x67,0x01,0x0a,0xe8,0xe2,0x41,0xf7,0x15,0x47,0xa7,0xe9,0xc8,0x05,0xbc,0xc7,0x8f,0xf0 +.byte 0xc3,0xc5,0x9a,0x4e,0x0d,0x7b,0xf0,0x20,0x8c,0x21,0x49,0x99,0x0d,0xf7,0x34,0x84,0x35,0xfb,0x11,0x33,0xd6,0x46,0x14,0x3c,0xf1,0xb3,0x37,0xac,0x75,0x63,0xe7,0x1a,0x19,0xa4,0x49,0xf2,0x58,0x1d,0x56,0x55,0x64,0x46,0x25,0xff,0x7d,0x90,0x34,0x21,0x5d,0x00,0xa1,0xa8,0xaa,0xe0,0x93,0xe7,0xda,0x11,0x34,0x1d,0xa3,0x0c,0x67,0xae +.byte 0xf5,0x60,0x72,0x14,0xdf,0x08,0xf6,0x72,0x3e,0x48,0x41,0x3d,0x00,0x58,0xfb,0x0c,0x15,0x80,0x2d,0xd9,0x72,0x47,0xa6,0x20,0x6a,0x74,0x9e,0x06,0xb9,0xac,0x68,0x3a,0xe7,0xf1,0x19,0xb8,0x0b,0x66,0x07,0x4d,0xa0,0xb5,0xab,0xea,0x70,0xa1,0xdf,0x41,0x76,0x85,0x18,0x5b,0x6f,0x78,0x5a,0x5d,0x08,0xe0,0x1b,0xd8,0x06,0x73,0x1e,0x16 +.byte 0xcb,0xdb,0x02,0xf8,0x96,0x64,0x65,0xc5,0xc1,0x52,0xd4,0xd8,0xb3,0x1e,0xd4,0x09,0xfd,0xa7,0x30,0x41,0x5a,0xce,0x53,0x4d,0x11,0xc8,0xdd,0x13,0x50,0xd5,0x2e,0xa0,0xe6,0x48,0x49,0x31,0x4b,0x1d,0xce,0xfc,0x42,0xed,0x8f,0xc8,0xb3,0x0a,0xae,0x1d,0x4c,0x1e,0x4f,0x39,0xa4,0x37,0xc8,0x54,0xdf,0x40,0xa6,0x42,0x61,0x7d,0x34,0xd4 +.byte 0x75,0x0a,0x9f,0xf0,0x33,0x54,0xf3,0xc4,0xdc,0x4e,0x2f,0x81,0xc2,0x20,0xaa,0x4f,0xa0,0xae,0xa6,0xb8,0x50,0xf8,0x45,0xf1,0xf2,0xd1,0xd2,0xcf,0xc8,0xf0,0xf4,0x54,0x37,0xdc,0xfb,0x13,0xdf,0x38,0xc2,0x3f,0xe0,0x59,0xb5,0x9a,0x0f,0x27,0x87,0xd4,0xd3,0xdc,0xfd,0xda,0x1d,0xfa,0xdd,0x12,0xe0,0x7f,0x34,0x01,0xde,0x28,0xf5,0x0e +.byte 0xff,0x59,0xc7,0xbd,0x6a,0xe4,0x0c,0x85,0x7b,0x87,0xf9,0xd7,0xe2,0xed,0xb2,0xf7,0xb7,0x13,0xfb,0xfc,0x4d,0x25,0x52,0xfd,0x23,0x6b,0x10,0xd0,0x80,0xd8,0xbd,0xbd,0xf0,0x87,0xfc,0x38,0x85,0x83,0x20,0x5f,0x7c,0x26,0x14,0x93,0xd3,0xe1,0xdc,0xa4,0xda,0xa7,0xf9,0xfd,0x6c,0x9a,0x2b,0x75,0x82,0xf1,0x9f,0x1b,0x0c,0x43,0xd4,0x2d +.byte 0x5b,0x0c,0x54,0x7e,0x61,0x24,0x8e,0x50,0x25,0xd8,0x54,0xfd,0x30,0xec,0x4c,0xa8,0xb6,0xf0,0x35,0x67,0xf7,0xe4,0x3c,0xfd,0xc8,0x40,0xf4,0x2d,0xc5,0x4d,0xc3,0x29,0xc2,0x88,0x60,0xab,0xd9,0x2a,0xe8,0x31,0xcc,0x0c,0x9f,0x97,0xa8,0x2e,0xaa,0xa5,0xb6,0xee,0x3c,0x71,0xa9,0xff,0x90,0xb4,0x43,0x2e,0x16,0x80,0x8c,0xfe,0xb5,0x7a +.byte 0x40,0x58,0xd5,0x98,0x7e,0xca,0xaf,0x95,0xee,0x00,0x26,0x8d,0x5b,0xba,0x33,0xee,0x35,0xb5,0x9b,0xf8,0x08,0x1e,0x15,0x2d,0x01,0xb1,0x83,0xa6,0x57,0x58,0xd1,0xf3,0xa4,0xf1,0x3a,0x00,0xf4,0x40,0xee,0x35,0x3a,0x20,0xc2,0x13,0x1e,0xda,0x32,0xc2,0x35,0x74,0x29,0xce,0x51,0x3f,0xec,0xb2,0xd7,0x23,0xa7,0xc6,0xef,0x70,0xb9,0x88 +.byte 0x6f,0xa8,0xf5,0x5b,0xff,0xc5,0xf5,0xb4,0x3b,0x12,0x75,0x20,0xbf,0x61,0x8a,0xb1,0xae,0x01,0x9b,0x17,0xf4,0xf3,0x2d,0xfb,0x44,0xe8,0xac,0x29,0x81,0xc2,0x6d,0x50,0x05,0x11,0xd9,0x43,0xf8,0xc7,0x58,0x5d,0xbc,0x2d,0xc0,0x83,0xd2,0x81,0x41,0x1c,0x46,0x62,0x60,0x6e,0x65,0x52,0x4b,0x1c,0x88,0x72,0x1b,0x0e,0x8e,0x7d,0xa2,0xb5 +.byte 0x4e,0x28,0x32,0xf2,0xb1,0xfa,0xf1,0x4b,0xc5,0x85,0x95,0x2c,0x08,0x78,0x85,0x68,0xe5,0x20,0x23,0x8b,0xc4,0xf5,0xb2,0xdb,0xc1,0xdd,0xe5,0x69,0xa4,0x97,0xa9,0x6c,0x2e,0x3a,0x25,0x1c,0x24,0x54,0x97,0x3e,0x8d,0x61,0x61,0xa3,0x60,0xf5,0xd2,0x4e,0x90,0x25,0x06,0x09,0x31,0x7b,0x96,0xce,0xcc,0xb7,0xbc,0x63,0x9f,0x04,0x7d,0xec +.byte 0xa1,0x4a,0x65,0xd3,0x26,0xe1,0xbf,0xf9,0x88,0xea,0x5c,0x5d,0xfe,0xe9,0x60,0x77,0xbd,0xf2,0xa0,0x11,0x91,0x24,0xca,0xa1,0x0d,0x05,0x7b,0xe2,0x7d,0x22,0x2e,0xd2,0xc9,0x4b,0x78,0xce,0x0c,0x7b,0x49,0xaf,0xd6,0x59,0x5f,0xb4,0xbd,0x2e,0x4a,0x22,0xcb,0x5d,0x1c,0xd5,0xde,0xea,0x86,0x74,0xd5,0x15,0x52,0x59,0xfc,0x3d,0x7b,0x1c +.byte 0x3f,0x14,0xec,0xf2,0xc8,0x3c,0x88,0xbf,0x89,0xd5,0x23,0xc3,0x94,0x3c,0x28,0x04,0x91,0x6c,0x36,0x35,0x4b,0x75,0xf8,0xdc,0xf3,0xff,0xba,0x8c,0xa4,0xc7,0x85,0xc5,0x1a,0x30,0x4b,0x7c,0xc5,0x2f,0xb9,0x2a,0x14,0xaa,0x65,0xe3,0x92,0xdc,0xe1,0xed,0x3f,0xb6,0xff,0x0e,0x74,0xe0,0xb3,0xc9,0x4b,0xd1,0x96,0xfc,0x49,0x72,0xbe,0xb0 +.byte 0xc8,0x4a,0xd5,0xf0,0xb3,0x58,0x29,0x35,0x97,0xd4,0x5c,0xc7,0x0b,0x27,0x1d,0x14,0xdb,0xb7,0x5c,0x7e,0x6d,0xc1,0x56,0xa9,0x80,0x72,0x7d,0x75,0xc2,0x2f,0x07,0x28,0xb4,0xff,0xef,0xa7,0x34,0xed,0x31,0x44,0x85,0xe6,0xc3,0xa4,0x5f,0xe2,0xe8,0xab,0xd1,0x59,0xe7,0x32,0x20,0xd1,0xcc,0xef,0x6f,0xe1,0x10,0x89,0x6c,0x0c,0xf3,0x5f +.byte 0xe8,0xc7,0x1c,0x3b,0xeb,0x3e,0xa5,0x53,0x2d,0x48,0x64,0x92,0xa0,0xec,0xf3,0x75,0x5b,0x5b,0xe2,0x83,0x87,0x04,0xa7,0xd8,0x1b,0x44,0xfb,0x42,0xee,0xd8,0xf2,0x98,0xff,0x30,0xc8,0x09,0xf8,0x1a,0x95,0x46,0x2d,0xe7,0x43,0x10,0x90,0xf4,0x2c,0x8f,0x0b,0x60,0x6d,0xeb,0xbf,0x19,0xc1,0x9d,0x5c,0xc0,0xff,0xb1,0x86,0xbc,0x01,0x73 +.byte 0x35,0x1f,0xd8,0xf4,0xa1,0xd4,0x7f,0x2d,0x1b,0xf9,0xa6,0x78,0x1a,0x2e,0x2c,0xe2,0xcc,0x8b,0x5f,0xbb,0xb9,0x80,0x31,0x32,0xa5,0x5d,0x70,0x59,0xae,0xe3,0xac,0xab,0xde,0x38,0x09,0x07,0x57,0x5f,0xbf,0xe8,0xa0,0xb8,0xd0,0x03,0xac,0x02,0x0d,0x7f,0x7e,0x0c,0xd2,0xcf,0x46,0x01,0x07,0x9f,0x16,0xf6,0x2b,0x94,0xaf,0xae,0x66,0x09 +.byte 0xca,0x4c,0x5f,0x37,0x53,0xa6,0x50,0x82,0x3a,0x0a,0x7b,0xb3,0x52,0x2e,0x0f,0xe4,0x64,0xab,0x40,0x21,0x2d,0xb7,0x20,0x9b,0xe3,0x2f,0xec,0x2b,0xb3,0x31,0x60,0x51,0x2e,0xb6,0x68,0xac,0xae,0xee,0x2d,0x28,0x5b,0xe0,0xa7,0x85,0xab,0x95,0xba,0x53,0x8c,0xc0,0xf8,0x16,0x8f,0x42,0x01,0xef,0x00,0x32,0x44,0x8e,0x41,0xc9,0x05,0x5b +.byte 0xe0,0x3f,0xe1,0xd8,0xd4,0x97,0x8e,0xa0,0x14,0x84,0xce,0x5c,0xef,0xbe,0xa4,0xae,0x18,0x91,0xd9,0x48,0x9b,0xc3,0x7a,0x8f,0xfb,0xb3,0x3e,0xa9,0x87,0x74,0x84,0xd2,0xc6,0x7c,0xc9,0xce,0x01,0xa5,0xcc,0xff,0x5a,0xe8,0x94,0x98,0x54,0x2a,0x6e,0xd9,0x58,0x75,0xd4,0xdd,0x6c,0x7d,0x83,0x32,0xc9,0x4e,0x35,0x2c,0x51,0x26,0x68,0x1f +.byte 0x95,0x20,0x82,0x54,0x0a,0xad,0x5e,0xe2,0xba,0xf9,0xa3,0x54,0x24,0x93,0x4a,0x62,0xff,0x28,0x05,0xd2,0x22,0x62,0x82,0xd4,0x2d,0xe2,0xec,0x66,0xc5,0xee,0x63,0xd0,0xf6,0x93,0xa8,0x37,0xbf,0xdd,0xe0,0x95,0x0b,0x19,0xa1,0x9d,0x9a,0xf8,0x94,0x1a,0x3a,0x50,0x9e,0x66,0x75,0x8c,0x25,0xbd,0x18,0xb0,0x58,0x76,0x7f,0x2d,0x3d,0x06 +.byte 0x02,0xb3,0xcf,0xa3,0x14,0x6e,0xe7,0xc8,0xcd,0xe6,0xbe,0xae,0x92,0xd6,0xa2,0xfe,0x12,0xf0,0xdf,0x9f,0x9e,0xad,0x77,0x77,0xfb,0xfc,0x36,0xb7,0x82,0x9c,0xf1,0x51,0xc2,0x58,0xa0,0xf3,0xa0,0xd6,0x6e,0x64,0x28,0xac,0x09,0x8f,0x7b,0xef,0x19,0x87,0x76,0xb9,0x4e,0xca,0x1f,0x05,0xb6,0x00,0x4a,0x14,0x83,0xaf,0xff,0xd9,0xa1,0xc6 +.byte 0x0f,0x98,0x3a,0xcf,0x85,0x18,0xea,0xa6,0x9a,0x1e,0xae,0x7c,0xaa,0xae,0xef,0x89,0x5e,0x14,0x5d,0x2f,0x73,0x8f,0xd1,0xf0,0x77,0xcd,0x45,0x92,0x7f,0xee,0xb9,0x7c,0xc2,0x3c,0xff,0x56,0x56,0xa5,0xa5,0x49,0xe4,0x20,0xd6,0xa2,0xb6,0xe4,0xfc,0x86,0x53,0xce,0x9e,0x2b,0x7b,0xcb,0xcf,0x6a,0xd5,0x62,0xb7,0x34,0x0e,0x39,0xe2,0xaa +.byte 0x1c,0x24,0x30,0x71,0x94,0xb3,0x57,0xd8,0xe8,0xd4,0xc5,0x4f,0x33,0x2c,0x73,0x7e,0x48,0xba,0xb3,0x55,0x84,0x6d,0x10,0xcf,0x8f,0xf2,0xb6,0xdb,0x4e,0xcf,0x49,0x08,0xf6,0x5a,0x3c,0x7e,0xef,0x3f,0x5c,0x11,0x09,0xfe,0x26,0xfb,0xff,0x30,0xcb,0x81,0x12,0xea,0x1e,0xa9,0x6e,0xf8,0xea,0x4f,0x92,0x2c,0x23,0x99,0x35,0xa5,0x59,0xca +.byte 0x1d,0x66,0x72,0xad,0x5b,0x7c,0xb3,0x4a,0x7c,0x76,0x4c,0xf6,0xc1,0xec,0x68,0x5f,0x2c,0x17,0xbe,0x92,0xe1,0xa1,0xee,0x40,0x24,0x25,0x6b,0xc5,0x0b,0x6f,0x06,0xc0,0x05,0x8c,0x23,0x24,0x76,0xea,0xe9,0xb9,0xa1,0x3d,0x59,0x15,0xe7,0x65,0x47,0x5a,0x75,0x9b,0xc8,0x7b,0x86,0x97,0xf4,0x4a,0xa3,0xec,0x54,0x0e,0x66,0xef,0xda,0x41 +.byte 0xb8,0x3b,0xa6,0x86,0x63,0xe1,0x4e,0x89,0x92,0x40,0xf4,0x8b,0x32,0x47,0x3b,0x4b,0xb4,0xe6,0xd8,0x4b,0x1c,0xac,0x03,0xab,0xde,0x2e,0x63,0x96,0x3f,0x27,0xa1,0x32,0x11,0x35,0x24,0x6a,0xe9,0x0b,0x73,0x61,0x4e,0xd8,0xdc,0x91,0x98,0x01,0x8a,0x0d,0x61,0xec,0x39,0xbe,0x3b,0xb9,0x78,0x77,0xea,0xaa,0xa2,0x12,0x20,0x92,0x98,0x16 +.byte 0x27,0x3b,0xd1,0xfa,0x59,0xef,0x81,0x38,0x9f,0x42,0xe8,0xb4,0xab,0x4f,0x26,0x9a,0xe7,0x0b,0x05,0x03,0xfa,0xe1,0xe1,0x3d,0x45,0xac,0x7d,0x40,0xcc,0x2f,0xf2,0xb0,0x33,0x42,0x14,0xbd,0x91,0x3e,0xe1,0xb7,0x17,0x25,0xc3,0x92,0xcb,0x9e,0x44,0x1e,0x13,0x93,0x98,0x1f,0x96,0x64,0x3a,0xaa,0x53,0x9a,0x18,0xc0,0x34,0x3c,0x47,0x94 +.byte 0x14,0x70,0x67,0x76,0x2a,0x82,0xd3,0x6a,0x18,0x13,0xe7,0x01,0x8d,0x97,0x52,0x51,0x8e,0x08,0xde,0x44,0xb0,0x74,0x07,0x58,0x35,0xc2,0x29,0xb5,0xd7,0x00,0x46,0x31,0x34,0xd7,0x1f,0xdd,0xaa,0x5c,0x27,0xc7,0x37,0x71,0xe8,0xbe,0xad,0x89,0xf1,0xb2,0xd1,0x46,0x33,0x0c,0x2f,0x26,0x21,0x5e,0xc9,0xda,0x25,0xcd,0xd0,0x17,0x23,0x87 +.byte 0x15,0xc2,0xa0,0x1a,0x9f,0x6e,0xfb,0x63,0xe9,0x69,0xdf,0x79,0x18,0x33,0x2f,0x47,0xca,0x54,0x23,0x7e,0x4f,0x6e,0x38,0x06,0x99,0xfb,0xcd,0x22,0xdb,0x4b,0x3f,0x8a,0x05,0x2e,0x5c,0x56,0x65,0xb7,0xab,0x57,0x8b,0xdd,0x28,0xab,0x7e,0x77,0x32,0x0f,0xc6,0x3c,0xf3,0xde,0x43,0xb0,0x13,0x3b,0xbd,0x28,0x3a,0x8b,0xd5,0x6b,0x1d,0x5d +.byte 0x20,0x1a,0x5f,0xa6,0x01,0xed,0x88,0x7f,0x87,0x55,0x38,0xc2,0x0d,0x03,0x6c,0x41,0x6a,0x43,0xdf,0x09,0xf3,0x58,0x69,0x13,0xa1,0xd6,0x39,0x0c,0x8e,0x8f,0x40,0x67,0xe8,0x0e,0x9b,0x9b,0x42,0x30,0xd7,0xae,0x04,0x75,0x66,0xfb,0x4a,0xa7,0xe0,0xe9,0xea,0x6d,0x28,0x4f,0xc0,0x5c,0xd4,0xd4,0xb7,0x60,0x5a,0x35,0xc1,0xe8,0x5f,0xc3 +.byte 0x4f,0x7a,0x5d,0x8d,0xc2,0x29,0x6e,0x36,0x50,0x5b,0x82,0x63,0xf2,0xda,0x8d,0x02,0x61,0x09,0x69,0x0a,0x47,0x9d,0x58,0xf3,0xf6,0xe0,0xc0,0x09,0xd9,0x3b,0x8d,0xf5,0xba,0xf6,0xc4,0xf0,0x65,0x89,0x7b,0xdd,0x93,0x6b,0x6e,0x21,0xa1,0x2a,0x66,0xe0,0x8f,0x62,0xb0,0x49,0x60,0xa3,0x48,0x42,0x62,0xcc,0x26,0x1f,0x59,0x3a,0x7b,0xa7 +.byte 0x82,0x10,0x5f,0xc6,0xf8,0xa2,0xc0,0x07,0x7b,0x26,0x26,0x11,0xe2,0x5b,0xb8,0x86,0xb7,0x66,0xcf,0x0a,0xcc,0x6f,0xe8,0x02,0x22,0x4c,0x13,0x75,0xdc,0x68,0xf0,0x7c,0x0c,0x46,0x9a,0xa2,0x4c,0xf5,0x50,0x3f,0xf9,0xbc,0x01,0xb1,0xa1,0x28,0x90,0x07,0x6b,0x17,0x69,0x89,0x7b,0xe5,0x0a,0xf7,0x7b,0xe1,0x94,0x30,0xfc,0xd3,0x8d,0xd3 +.byte 0x99,0x37,0x91,0xd5,0xdf,0x59,0x2a,0x4f,0xfe,0x6c,0x37,0x4b,0x78,0x2c,0xa9,0x28,0x6a,0x5c,0xd6,0xe1,0x0b,0xad,0xae,0x62,0x7c,0x09,0xb8,0x90,0x3f,0x29,0x37,0x7b,0x79,0xee,0x55,0x02,0x05,0xef,0x28,0xa2,0xc7,0x07,0x2b,0xe6,0xab,0x87,0x9d,0x8f,0x4c,0x0f,0xc1,0x75,0x5d,0x88,0x7f,0x26,0xe0,0x1e,0xf8,0x3f,0xb5,0x2a,0x6c,0xe6 +.byte 0x7f,0x85,0xae,0x55,0x7b,0x58,0x34,0x4c,0x81,0x05,0x21,0xa1,0x5e,0xd7,0xb6,0x20,0x6e,0xf9,0x60,0x15,0xa4,0xb2,0x8f,0x68,0xd2,0x23,0x9f,0xbf,0xfa,0x6a,0xcb,0x87,0x7d,0x41,0x4a,0xae,0x28,0x4f,0x9e,0xbb,0x69,0x1c,0x37,0xb2,0xc9,0xd2,0x21,0xa1,0x2b,0x6b,0x5d,0xff,0xd6,0xdb,0x8f,0x21,0xd9,0x17,0xd6,0xe6,0x74,0xf2,0x20,0x0e +.byte 0x06,0xb5,0x0c,0xdc,0x74,0x4e,0x93,0xcb,0x27,0xc7,0x4b,0xf3,0xef,0x46,0xa8,0xf0,0x58,0x1c,0xa0,0x65,0x09,0x84,0xc7,0x2e,0xba,0x51,0xd9,0xd4,0x53,0x20,0xc7,0x20,0x85,0x93,0x2b,0xf3,0x42,0x93,0x7b,0x22,0x1c,0x8d,0x22,0x76,0xcf,0xde,0x6a,0xa1,0x76,0xea,0x65,0x20,0x2f,0x2e,0xdb,0x85,0xdd,0x73,0x43,0xf8,0xe0,0xe3,0x3a,0xe5 +.byte 0x02,0x57,0x96,0x54,0xbc,0xaf,0xa4,0xd5,0xda,0x9d,0x9d,0x8b,0x85,0x01,0x7c,0x72,0x03,0xfe,0x39,0x46,0xab,0x04,0xcc,0x62,0x71,0xf5,0xa5,0x67,0xd7,0xfc,0xc0,0xb6,0x95,0x74,0xdf,0x1c,0xfe,0x1c,0x5b,0x25,0xae,0x42,0x75,0x00,0x71,0x3c,0xec,0xfc,0x3c,0x7b,0x0f,0xec,0x44,0xc7,0xec,0x9b,0x86,0xf5,0x3d,0x47,0x15,0xf0,0x25,0xba +.byte 0x43,0xc8,0x68,0x15,0x4f,0xeb,0x35,0x76,0x2d,0x04,0xb7,0x9b,0xb8,0xa7,0x0d,0xb3,0xb4,0xf2,0x93,0x85,0xb1,0xb8,0x81,0x7c,0xd6,0x5f,0xbd,0xc2,0xcc,0xf4,0x0e,0x98,0x2c,0x06,0x54,0x2f,0x5e,0x49,0x94,0x93,0x78,0xa0,0x0a,0x33,0x2e,0x3f,0xb2,0xa7,0x81,0xed,0xe9,0xb6,0xb5,0x86,0x4b,0xa5,0xc0,0x51,0x30,0x9d,0xe2,0x9f,0xc2,0x56 +.byte 0x92,0x6b,0x96,0xca,0xcb,0x65,0x5c,0x0e,0xf4,0x91,0x2b,0x89,0xf4,0x27,0x55,0x26,0xd7,0x7b,0x00,0x19,0x1f,0x67,0x4e,0x43,0x24,0x81,0x05,0xb7,0xc6,0x41,0x1a,0x39,0x3d,0x40,0x3e,0x8a,0x03,0x94,0x63,0x1b,0xb1,0x87,0xb6,0xe1,0x52,0xd0,0xe8,0xbb,0x0e,0x37,0x72,0xe5,0xde,0x86,0xc0,0xdf,0x5b,0xc2,0xc6,0x0a,0x67,0xa7,0x4c,0x03 +.byte 0xb6,0xd8,0x7f,0x1d,0xb3,0xe3,0x84,0xb7,0x5c,0x04,0x15,0xe0,0xd0,0xae,0x44,0xac,0x39,0xa5,0xa2,0x86,0xc8,0xad,0x27,0xa0,0x36,0xa1,0x6e,0xaa,0x87,0x7a,0x43,0xae,0xa0,0x45,0x1a,0xac,0x04,0xe2,0x55,0xf2,0x9a,0x97,0x67,0xfb,0x01,0x8f,0xb8,0x80,0x9c,0x27,0x1d,0xbe,0xa3,0xf1,0x6d,0x66,0xf2,0x1a,0x99,0x99,0xf6,0xa5,0xba,0x58 +.byte 0x28,0x58,0xb5,0x44,0x5b,0x38,0x4a,0x3f,0x37,0x85,0x7e,0x36,0x8e,0x16,0xb9,0x1e,0x0b,0xbf,0x7d,0x0a,0x0c,0x83,0x53,0x0d,0xcc,0x37,0xe1,0x42,0xbb,0x0d,0xfc,0x01,0x25,0x10,0xbe,0xb5,0x83,0x2f,0xa5,0x42,0x98,0xbc,0xd6,0x50,0x75,0xda,0x32,0x2b,0x3f,0xd6,0xc1,0x1a,0xe7,0x0b,0x80,0x07,0x6f,0xfe,0x77,0x9e,0xe9,0x1e,0x45,0x65 +.byte 0x68,0x92,0x34,0x8b,0xce,0xf3,0xcd,0x94,0x17,0xe0,0x41,0x92,0x96,0xb5,0xd1,0x98,0xd1,0x25,0xd1,0x3d,0x76,0x88,0x86,0xb1,0x01,0x80,0xc7,0xde,0x60,0x20,0xb8,0x03,0xe7,0x3f,0x44,0x39,0xb1,0xb8,0x19,0x53,0x5a,0xc6,0xa0,0x18,0x8e,0x0e,0xb6,0xfd,0x7e,0xe7,0x7e,0x8a,0xeb,0x4c,0x35,0x4a,0x0f,0x52,0x81,0x68,0x12,0xe4,0x46,0x2e +.byte 0x20,0xb4,0x41,0x59,0xb3,0x16,0x02,0x9f,0xdb,0xe8,0xea,0xfd,0xe3,0x5d,0x14,0xd0,0x97,0x52,0x66,0xcb,0xb4,0x48,0xa3,0x05,0xab,0x73,0x8e,0x2c,0x46,0xc2,0x94,0xd5,0xc8,0x57,0xc4,0x13,0xa4,0x0b,0x7c,0x34,0xbf,0xb4,0x07,0x28,0x92,0xe2,0x1d,0x00,0xa6,0xf0,0xb0,0xbf,0xdd,0x5d,0x20,0x05,0x9f,0x53,0xcf,0x07,0xf7,0xe8,0x79,0x04 +.byte 0x57,0xd1,0xac,0x9c,0xdd,0xae,0xcd,0x8b,0x04,0x0a,0x2d,0x0a,0x0f,0x21,0x09,0xc8,0x0d,0xfa,0x23,0x26,0xe3,0xdb,0x84,0xc8,0x8e,0x9c,0x96,0x93,0x4f,0xcc,0x2f,0x96,0xed,0x04,0x91,0x0d,0xc7,0xbb,0x27,0xa3,0x6b,0x9d,0xe2,0x15,0x83,0x31,0x78,0xb5,0xb9,0x6d,0xb1,0x6c,0xa2,0x3e,0xf5,0x45,0x77,0xf4,0x96,0x3a,0xe6,0x10,0x08,0xfd +.byte 0x23,0xcc,0xda,0x27,0x73,0x67,0xbb,0x8b,0x59,0xe2,0xcf,0xda,0x57,0xf9,0x17,0xeb,0xeb,0x98,0x39,0x48,0xbf,0x3d,0x5b,0x7b,0xc2,0x11,0x4b,0xd6,0xb6,0x8a,0x14,0xb3,0xf5,0xc3,0x18,0xff,0xde,0x62,0x98,0x4a,0x1d,0x6b,0x4e,0x00,0x4f,0x7d,0x2f,0x67,0xf4,0x22,0x1e,0xdb,0x69,0xd5,0x87,0xfd,0xee,0x97,0x56,0xd4,0x00,0x0c,0x9e,0x22 +.byte 0x11,0xda,0x8e,0x3b,0x91,0xad,0xf1,0xb6,0x0a,0xba,0xe7,0xc6,0x14,0x0e,0xc4,0x85,0x5f,0x7d,0x69,0x7d,0x73,0x9c,0x83,0x6a,0x69,0xef,0x10,0xb0,0xe6,0x33,0x32,0x0f,0xd8,0x54,0xa4,0x9d,0x39,0xaf,0xfc,0x6d,0x4f,0xeb,0x34,0x89,0x2e,0xb0,0xa1,0xcd,0xe1,0x5b,0xab,0xe1,0xff,0x82,0x85,0x6b,0x5e,0xa9,0x9e,0x43,0x02,0x0d,0x38,0x33 +.byte 0xe1,0xbc,0xa4,0x77,0x8a,0x5e,0x54,0xa8,0xcf,0xc9,0x76,0xcb,0x73,0x21,0x1f,0xa7,0x1e,0x5c,0x0a,0xd6,0xa2,0x36,0x6f,0x07,0xa1,0x6b,0x0d,0x5a,0x21,0x3a,0xc3,0xc0,0xcd,0x9d,0xed,0x83,0x96,0x89,0xaa,0x55,0x56,0xfd,0x0a,0x97,0x3a,0x50,0xfd,0x95,0x3f,0xb7,0xfa,0x87,0x7d,0xa6,0x5d,0x12,0x65,0x3f,0x61,0x4f,0x86,0xdd,0x58,0x64 +.byte 0xd7,0xde,0xd6,0xb9,0x68,0x87,0xde,0xba,0x96,0xf5,0x1c,0xec,0x8e,0x81,0xfc,0xca,0x77,0xe2,0x85,0x11,0x93,0xc7,0xf2,0x0f,0x77,0xbb,0x7c,0xed,0x20,0x7a,0xe3,0xc5,0x76,0xff,0x04,0xc7,0xe6,0x7a,0xa1,0xfe,0x58,0x52,0x1b,0xec,0x27,0xbb,0xd4,0x27,0x7c,0xc7,0x4a,0xfb,0x07,0x62,0x99,0x36,0xff,0x6e,0x71,0x2f,0xbd,0x25,0xff,0x8d +.byte 0x97,0x14,0x56,0x23,0x7f,0x13,0x89,0x10,0xd8,0x29,0x1f,0x91,0x56,0x52,0x85,0xa7,0xd3,0x04,0xc9,0xe2,0x09,0xa2,0x0f,0xaa,0x28,0xb1,0x79,0xf9,0x08,0xf4,0x14,0x57,0xc4,0x54,0xd7,0x69,0xb0,0x37,0xf0,0x80,0x90,0xce,0x75,0x81,0xe7,0x75,0x0f,0x7f,0x71,0x58,0x3b,0x78,0x53,0x9b,0x4a,0x5e,0xcc,0x23,0x04,0x9e,0x0c,0xd7,0xd8,0x69 +.byte 0x90,0xdf,0x36,0x99,0x90,0xd3,0xfa,0x35,0xf7,0x13,0x64,0xb0,0xc0,0x70,0x0c,0xd4,0x87,0xc0,0xca,0xd8,0xca,0x8a,0xc3,0x9a,0xfa,0x73,0x34,0x18,0xe9,0x3a,0x85,0x42,0xc5,0xe1,0xaa,0xb5,0x87,0xac,0x43,0x9c,0xfa,0x7e,0x05,0x35,0xed,0x7e,0x0d,0x38,0x82,0x17,0x7f,0x22,0xa2,0x3d,0xd3,0x0d,0xd1,0xff,0x0a,0x68,0x52,0xd2,0x17,0x59 +.byte 0xaa,0x57,0xbd,0xd3,0xea,0x0c,0xe8,0xb0,0x22,0x13,0x59,0x42,0x46,0x34,0x58,0xa9,0x16,0xc5,0x9f,0x88,0x8f,0x75,0x02,0xbf,0x63,0xda,0x28,0xba,0x9a,0xcf,0xbb,0x73,0x58,0xb1,0x13,0xf2,0x68,0xd8,0x6b,0xfd,0x49,0x50,0xcf,0x09,0xea,0x6a,0xff,0x20,0x39,0xc5,0xae,0x70,0x79,0xea,0xec,0x9d,0x09,0xf8,0x51,0x1f,0xfd,0x01,0xd5,0x9f +.byte 0xec,0x29,0x36,0xfc,0x39,0xb4,0x4c,0x1f,0xe6,0xb4,0xcc,0x97,0x21,0xe5,0x19,0xe9,0x7a,0x60,0x6d,0x39,0x3c,0x31,0xd4,0x43,0x76,0xba,0x10,0xd9,0x3f,0x75,0x7a,0xa6,0x1d,0x02,0x88,0x3d,0xa5,0x9f,0x91,0x61,0x4e,0x32,0xec,0xf5,0xd3,0xe4,0x65,0xf7,0x0e,0x3b,0x8a,0x8f,0x22,0x31,0x71,0x8f,0xf1,0x5f,0x7b,0x04,0x88,0xf9,0x88,0x67 +.byte 0x14,0x85,0x74,0x9e,0x54,0x0b,0xed,0x7a,0x48,0xcd,0xcf,0xd2,0x05,0x38,0xd5,0x58,0xa2,0xaf,0x6a,0x28,0x21,0xfd,0x38,0x4e,0x83,0x06,0x15,0x60,0xfb,0x89,0x2a,0x72,0xfe,0x75,0xc7,0xa4,0xae,0xe4,0x5b,0xbb,0xde,0x54,0xde,0x77,0xbb,0x9d,0xd2,0x07,0x05,0x61,0x53,0x65,0x31,0xd4,0x3a,0x8a,0x7d,0x9d,0x30,0x09,0x25,0x28,0x72,0x19 +.byte 0xe4,0xae,0x1d,0xbf,0xa7,0xef,0x75,0xd0,0xe3,0xdc,0x0b,0xd1,0x17,0x9c,0xc6,0xdf,0x65,0x9a,0x7c,0x9d,0x0b,0x9a,0x3d,0x8f,0xb0,0xf5,0x51,0x46,0x6b,0x12,0x0d,0xe6,0xa9,0x3a,0xb5,0xe9,0x52,0x85,0xa5,0x25,0x1f,0xc9,0x8b,0xff,0xe3,0x37,0x25,0x97,0xd8,0x91,0x17,0xed,0xcf,0x2a,0x6d,0x4f,0xef,0x74,0x5e,0x92,0xa2,0x2d,0x84,0xa6 +.byte 0x09,0xc4,0xfc,0x36,0x95,0x54,0x25,0x9e,0xeb,0xd9,0xea,0x5a,0x01,0x0c,0x54,0xdb,0x82,0x01,0xed,0x0b,0xf7,0x9f,0x0d,0x8f,0x2e,0xee,0x7c,0x6e,0xb3,0xe7,0xe8,0x04,0xef,0x8d,0x5e,0xfe,0x3d,0x96,0x3a,0x65,0xd3,0xb2,0x11,0x75,0x1c,0x6f,0x2a,0xd3,0x26,0x1f,0x5f,0x35,0x02,0x0b,0x9f,0x38,0x5b,0xa5,0x3a,0x90,0x3e,0x03,0x9f,0x50 +.byte 0xf2,0xd7,0xe4,0x3c,0xd3,0x28,0x67,0x0a,0x5a,0xe8,0x59,0x6f,0x38,0x8f,0x8b,0x0d,0xe4,0x1c,0xfc,0x6e,0x07,0x69,0x7b,0xfb,0x04,0x30,0xe7,0xa6,0x13,0xfb,0x33,0xa0,0x52,0x6a,0xec,0x64,0xad,0x90,0xbd,0xba,0x15,0x12,0x48,0xed,0xd1,0x94,0x2d,0xe7,0x19,0x28,0x5e,0x7a,0x94,0xf4,0x79,0xd7,0x79,0xc9,0xf6,0x16,0xb4,0x88,0xee,0x15 +.byte 0xa2,0x68,0xe3,0x1d,0xd0,0xd2,0x63,0x78,0x7c,0xb3,0x30,0xac,0x63,0x7a,0x36,0xc5,0x50,0xbf,0x57,0xf6,0xfe,0x4e,0x43,0x4e,0xf9,0xc4,0xa2,0x2a,0xa7,0xa4,0x2c,0x18,0xb9,0x43,0x7b,0xe8,0xf6,0x14,0x4f,0x07,0x6e,0x65,0x9a,0xdd,0x10,0x2a,0x4c,0xa4,0x58,0x86,0x19,0xad,0x6d,0x5e,0x30,0xfb,0x5f,0xb6,0x9f,0x2a,0xac,0x90,0x0d,0xae +.byte 0xf9,0xab,0xc1,0x33,0xd3,0x73,0x1d,0x46,0xe5,0xc8,0x1e,0x1d,0x61,0xf1,0xda,0x53,0x3e,0x61,0xf0,0x9a,0xe4,0xb7,0x04,0xe9,0x5e,0xf6,0x11,0xa6,0x56,0x39,0xed,0xfb,0x06,0xd0,0x92,0xb9,0xb8,0xb5,0x3b,0x39,0xec,0xa5,0xc0,0xb1,0x7e,0x7e,0xfb,0x89,0x86,0xa8,0x70,0x47,0xa5,0x60,0x8c,0xf8,0x47,0x31,0x04,0x54,0x29,0xf3,0xa2,0x79 +.byte 0xac,0x24,0xda,0x33,0x6c,0x1c,0x34,0xc2,0xa0,0x96,0x27,0xbb,0x31,0xbf,0xc1,0xd9,0xc8,0x35,0xbc,0xb3,0x13,0x8a,0xb6,0x25,0x92,0xdc,0xcc,0x3b,0x8a,0x65,0xf3,0xf9,0xd1,0x2a,0xcd,0xb0,0xf4,0xd7,0x44,0xa0,0x27,0xfc,0x0e,0x69,0x46,0x0b,0x56,0x5b,0x58,0x40,0xd9,0xc4,0x37,0x9b,0x4d,0xa1,0x45,0xd8,0xab,0x4d,0x02,0x31,0x4f,0x93 +.byte 0x56,0xd0,0x26,0x99,0x1c,0xc7,0x2b,0xc2,0x80,0xb4,0xbd,0x6e,0xfe,0xa1,0xf7,0x8f,0x13,0x74,0x2c,0xa8,0x63,0xb1,0x3d,0x6d,0x32,0x4a,0x80,0x6a,0x7f,0xcf,0x6c,0x51,0xa9,0x21,0x34,0x4e,0x13,0x19,0x8f,0x33,0xfc,0x06,0x46,0x05,0xf0,0xcf,0xf1,0xce,0x20,0xe0,0x40,0xf2,0x0a,0xd0,0xf6,0xcc,0xcc,0xc2,0xc7,0x07,0x2e,0x9e,0x0a,0x1e +.byte 0x53,0x59,0xbb,0xe3,0x02,0xc8,0x20,0x9f,0x3c,0xe6,0xec,0xf7,0x8a,0x6d,0x3c,0x0f,0xb3,0x14,0x66,0x5c,0x51,0xbe,0x82,0xc2,0x0b,0x10,0x63,0xa9,0xd4,0x7f,0x12,0x88,0x13,0x81,0x8a,0x06,0x8a,0x7f,0xc8,0x89,0xe7,0xbd,0xce,0x51,0xdc,0x93,0x03,0x07,0x6f,0x8c,0xe6,0xcc,0x0d,0x45,0xa8,0xfc,0x02,0xe2,0x3e,0xa7,0xc8,0x83,0x77,0x98 +.byte 0x91,0x4e,0x1f,0x8d,0xed,0xa5,0x38,0x54,0x0e,0x4e,0x53,0x1c,0x0c,0x47,0x11,0x59,0x54,0x15,0xb5,0x47,0xb0,0x21,0xa1,0x3d,0xaa,0xef,0xee,0x9e,0x26,0x3c,0x39,0x75,0xff,0x1a,0x8c,0xbb,0x1a,0x49,0x62,0x21,0x76,0xe8,0x3d,0x10,0x55,0xf5,0x5a,0x44,0xf0,0xb3,0x81,0xd0,0x35,0x96,0x95,0x63,0xf7,0x50,0xb1,0xa0,0xf0,0x29,0x97,0xc9 +.byte 0x27,0x73,0xd8,0x29,0xef,0x74,0xd2,0x6d,0xf4,0xfb,0x72,0xa9,0x4f,0x12,0xd5,0xfd,0xc9,0xba,0xf0,0xbd,0xfd,0x5e,0x5c,0xfa,0x53,0xe3,0x96,0xab,0x57,0xc3,0xb6,0xe8,0x0e,0x43,0xe4,0x77,0x97,0x04,0x69,0xff,0x72,0xd0,0xd8,0xab,0xb9,0x19,0x25,0x89,0xf7,0xbb,0x01,0x03,0xf2,0xc6,0x8d,0xd5,0x86,0xe3,0xfe,0x9c,0xff,0x78,0xd7,0xfc +.byte 0xda,0xd4,0x69,0x8e,0xd6,0x31,0xfb,0x15,0xd3,0x38,0xfd,0x53,0xe2,0x4e,0xce,0xcc,0xfe,0x17,0xc5,0x88,0x92,0x28,0x98,0xb7,0xcf,0x7b,0x53,0x7b,0x96,0x14,0xaf,0xeb,0x5b,0x2d,0x16,0x41,0xcc,0x7b,0x65,0xe1,0x73,0x81,0x4e,0x8f,0xc3,0xad,0xe1,0x3f,0x0c,0xa7,0xbe,0x38,0xed,0x02,0x67,0xf5,0xfa,0x1d,0xb0,0xd5,0x4c,0xe1,0xd8,0x62 +.byte 0xc9,0xb5,0xf8,0x84,0xc4,0x51,0x57,0x14,0x11,0xf8,0x7d,0x1d,0xe7,0x81,0x85,0x61,0xa9,0x9f,0xc8,0x45,0xb9,0x2d,0x8a,0xc9,0xa3,0xfe,0x5a,0xf9,0xe0,0x1c,0x80,0xd8,0x77,0xaa,0x85,0xca,0x93,0x9a,0x2e,0x10,0x03,0x71,0x3d,0xb1,0x2a,0x64,0x2e,0xad,0x64,0xba,0x5c,0xaa,0x8a,0xc2,0x2a,0x80,0x28,0x2e,0xf9,0x93,0xe1,0x71,0x72,0xae +.byte 0xda,0xd8,0x4f,0x4c,0xec,0xb5,0xe3,0x05,0x10,0x5f,0x4c,0xe6,0xe1,0xf4,0x07,0x63,0x75,0x6f,0xc5,0xf9,0xcd,0xfc,0xfc,0x35,0x2f,0xe4,0xca,0x4b,0xfc,0xc3,0x20,0x8b,0x5c,0x4a,0x3c,0xf8,0x92,0xca,0x2b,0xb0,0xce,0xd9,0x4b,0xf0,0x44,0xcb,0x4e,0x83,0xf3,0x9d,0xb0,0xd4,0xab,0xba,0x2a,0x76,0xaa,0x87,0xcd,0xa2,0xd1,0x3f,0xa0,0xb9 +.byte 0xdb,0x7e,0x67,0x2d,0x92,0x4c,0xeb,0x3c,0xa6,0x8c,0x62,0x80,0x18,0x78,0x2b,0x9d,0x8f,0x5e,0xc3,0xa5,0x3b,0x10,0xb3,0x8a,0x3b,0x00,0x96,0xb2,0xab,0xce,0x8d,0xff,0x3c,0xee,0xeb,0x4f,0xfb,0xab,0x96,0x38,0x4c,0x15,0x6e,0x7c,0xf3,0x31,0x5f,0x8f,0x99,0x88,0x52,0x48,0x8b,0x71,0x1b,0x31,0x3f,0x7c,0xe4,0xae,0x9c,0x7b,0xeb,0x64 +.byte 0xe3,0x80,0xd4,0x56,0x9a,0x6a,0xd9,0xca,0xc5,0xf0,0x86,0xe7,0xda,0x80,0x8f,0x17,0x61,0xca,0x24,0x0b,0xb6,0xf9,0x24,0xc5,0x7a,0x28,0x42,0x32,0x7f,0x2b,0xde,0x44,0x30,0xed,0x69,0x63,0x07,0x3f,0xca,0x7b,0x02,0xea,0x6e,0xef,0x27,0x1d,0x76,0x32,0xc2,0x81,0x3d,0x03,0x9a,0xe7,0x0d,0x28,0x07,0x03,0x0c,0x65,0x73,0x58,0x26,0xc6 +.byte 0xfe,0xcc,0x33,0x7f,0x33,0xad,0xea,0x81,0x05,0xcc,0x61,0x1e,0x78,0x69,0x70,0xc9,0x1f,0x6e,0x4f,0xb8,0x19,0x42,0x03,0x03,0x9d,0x56,0x87,0x0e,0x9a,0x32,0x3a,0xba,0xb9,0x11,0x66,0x9f,0x4d,0xd1,0xb0,0x11,0xbf,0x46,0xfc,0xcf,0xe5,0xef,0xf1,0x61,0xeb,0xad,0x31,0x7c,0x0d,0x66,0x0d,0xa9,0x1f,0xe4,0xf9,0x80,0x9e,0xae,0x9e,0x34 +.byte 0x1e,0x95,0x6c,0xa2,0x77,0x69,0x84,0x77,0xb7,0xe8,0xca,0x1f,0xea,0xc1,0x34,0xe6,0x0d,0x4f,0xba,0x77,0x2b,0x8c,0xbe,0xff,0xc4,0x06,0xa3,0xb6,0x1a,0xbe,0x55,0x99,0x57,0x6f,0x54,0x24,0x93,0x7a,0x0d,0x52,0xd6,0xbb,0xd2,0x9c,0xd5,0x76,0x6a,0x22,0x66,0xdc,0x43,0x9a,0x7b,0x1b,0x11,0x80,0x02,0x0c,0x8f,0xc6,0xc6,0x02,0x42,0x29 +.byte 0x00,0xc4,0xb2,0xa1,0x6a,0x7f,0xa9,0x60,0x8d,0x41,0x4f,0xd3,0xde,0x33,0x5a,0x44,0x31,0xb0,0xdc,0xc0,0x0c,0x31,0x03,0x96,0x71,0x0a,0xce,0xe3,0x0b,0xc7,0xe3,0x5d,0xe0,0x88,0x4b,0xfd,0x4c,0x1a,0xce,0xaa,0x89,0xc6,0x99,0xa8,0xd3,0x1e,0xe9,0x6c,0x2a,0xbd,0x26,0x81,0x03,0x6a,0xf2,0xf2,0x0f,0x1e,0x9d,0x8a,0x59,0x45,0xbf,0x6d +.byte 0xb7,0xc8,0xec,0x77,0xb0,0x70,0x1a,0x31,0x21,0xeb,0x25,0x12,0xff,0x13,0x33,0x6b,0x47,0x34,0xd8,0x66,0x11,0x8a,0xc9,0x93,0x5b,0x2c,0x55,0x42,0xb2,0x9b,0x60,0xc6,0xba,0xab,0x12,0x12,0x5d,0x0a,0xd4,0x54,0x79,0x17,0x6d,0x31,0x7d,0x4f,0xf2,0x94,0x16,0x65,0x62,0x38,0x76,0x3a,0x7d,0x55,0x05,0xd9,0x17,0x45,0x62,0xb4,0x1d,0x31 +.byte 0x34,0x40,0xd3,0x8e,0xf9,0x29,0x4d,0x3f,0x93,0x9a,0x2e,0xa4,0x75,0x66,0xf6,0x62,0x8f,0xf9,0x8d,0x79,0x4b,0x51,0x7e,0xfb,0xeb,0x9a,0x86,0x96,0x01,0x79,0xbe,0xe4,0x42,0xb3,0xc8,0x28,0x9e,0xed,0xa8,0xb6,0x6d,0xd3,0x31,0xed,0x30,0x9e,0x6a,0x5b,0x02,0x4b,0xbd,0xb3,0xf2,0xf0,0x9d,0x50,0x09,0x40,0x71,0xfe,0x4b,0x91,0xc9,0xd6 +.byte 0x07,0x87,0x9e,0xdb,0xa9,0xcd,0x0b,0x95,0x18,0x5a,0x55,0x10,0xaa,0xe1,0x70,0xe9,0x2e,0xc2,0x31,0x6b,0x48,0x84,0x2f,0xe5,0x7b,0xdd,0x4c,0x03,0xed,0xb6,0xb6,0x64,0x24,0x38,0x7a,0x5a,0x15,0x35,0x9d,0x66,0x08,0x4d,0xa6,0x3c,0x96,0x1a,0xcd,0x02,0x61,0x40,0xde,0xac,0xc3,0x15,0x8c,0xca,0xe6,0x62,0xe9,0x61,0x68,0xf6,0x60,0xd3 +.byte 0x7e,0x5f,0x44,0xcf,0x09,0x01,0x60,0xc2,0xb1,0xfc,0x2f,0x41,0x4c,0xc1,0x06,0x72,0xcc,0xde,0x25,0xe0,0x8c,0x34,0xb8,0xe0,0xb2,0xeb,0x05,0x5d,0x9e,0x7e,0xf7,0x1e,0x24,0xcd,0x1b,0x14,0x3f,0x1b,0x13,0xc0,0x64,0x38,0x43,0x95,0xba,0x7b,0x61,0xa0,0xdc,0xe0,0xf5,0x80,0x13,0xa1,0xc5,0x48,0x92,0xc5,0xd5,0xd0,0x87,0x0c,0x73,0xae +.byte 0xe2,0xb3,0xe8,0x70,0x4a,0x7e,0xa0,0x13,0xc3,0xc6,0x9c,0x77,0x51,0xca,0x88,0xcf,0xe0,0x1e,0xff,0x6c,0xe2,0xc3,0x33,0xce,0x7f,0x3e,0x7d,0xd5,0x37,0x23,0x09,0xb7,0xbd,0xb7,0xec,0x9a,0x29,0xd6,0x4f,0xea,0x79,0x24,0x4c,0x09,0x74,0x9c,0x97,0x3b,0x08,0x1f,0x82,0xcc,0xae,0xc4,0x3f,0xcf,0xc6,0xcb,0xaf,0x8c,0x89,0x15,0x79,0xeb +.byte 0x88,0xb9,0x03,0xab,0xc6,0xf8,0x6e,0x54,0xde,0x50,0x6e,0xcf,0x8a,0x4b,0x3f,0x64,0xd0,0xcb,0x69,0xc2,0xe3,0x40,0x4a,0x94,0xe2,0x04,0xfa,0x9b,0x4a,0xf6,0x2b,0x93,0x0c,0x0e,0xf8,0x68,0xbc,0x6e,0x6c,0xe6,0xd9,0xb6,0x04,0x40,0xf4,0x60,0xbc,0xc1,0x1e,0x67,0x1f,0xce,0x5c,0x4d,0xba,0x78,0xa8,0xf5,0x96,0x00,0xb9,0x61,0x82,0x65 +.byte 0xb2,0x1d,0x42,0xb8,0x88,0x66,0x43,0xd9,0xfe,0xe0,0x86,0xef,0x5d,0x4d,0xcc,0xeb,0x57,0x9a,0x2b,0x27,0xf2,0xcf,0x68,0xc3,0x05,0x92,0x4d,0x4d,0xb7,0x46,0x7e,0xfd,0xb7,0x4a,0x4d,0x6f,0xac,0xc8,0x8d,0xf2,0xcd,0x52,0xcf,0x91,0x77,0x2d,0x68,0x06,0x7a,0xc9,0xf3,0x17,0xc6,0x8f,0x8f,0xb5,0x8f,0x74,0xfa,0x90,0xcc,0xfc,0xaf,0x4e +.byte 0xd2,0x29,0xd9,0x57,0x71,0xe9,0x52,0xd8,0x50,0xfa,0x4d,0x13,0x7c,0x42,0x15,0x22,0x65,0x26,0x08,0xda,0xaa,0x53,0xcf,0xeb,0xd1,0x87,0xd5,0x7c,0x4e,0x66,0x1c,0x7d,0xc9,0x03,0x59,0xf8,0x09,0x3e,0x1b,0x94,0x4c,0x39,0x56,0xeb,0xfd,0xb6,0xd0,0xf9,0x76,0x8b,0x5d,0x6e,0x44,0x15,0xcf,0x27,0x7f,0x69,0x9a,0x00,0x96,0xbe,0x80,0x5e +.byte 0xbb,0x5a,0x05,0xea,0x15,0xdd,0x44,0x69,0x9e,0x64,0xcd,0xba,0xf2,0x6f,0x67,0x10,0xc5,0xa1,0x75,0x85,0x5f,0xdc,0x61,0x43,0x34,0xc3,0x52,0x06,0xd4,0xe9,0x9f,0xdf,0xd4,0xa6,0x96,0xac,0xb1,0x21,0xdd,0x20,0x46,0x20,0x89,0x5f,0x0e,0x9d,0xa8,0xc7,0x75,0x3a,0x54,0x9e,0x7c,0x3a,0xd5,0xb2,0x68,0x77,0x06,0x1b,0x1c,0xbd,0xb3,0x02 +.byte 0xb5,0xdd,0x87,0x55,0x6b,0x00,0x9f,0x2c,0x30,0xb7,0x4e,0xc3,0x67,0x38,0x37,0x61,0x81,0x68,0xcb,0x14,0x81,0x27,0xd7,0x38,0x18,0x81,0x68,0x45,0xca,0xf4,0xaa,0xae,0x58,0x9e,0xf8,0xbe,0xe9,0x1e,0x05,0x19,0xf0,0xea,0x89,0xf8,0xa1,0x9c,0x7b,0x63,0xc1,0xcd,0x81,0xc8,0x95,0x56,0x81,0x81,0x29,0xb0,0x4d,0xbf,0xe6,0x8d,0xa3,0xb3 +.byte 0xfa,0xae,0x13,0xc8,0xca,0x4d,0x5c,0x5e,0xd9,0x17,0xf8,0x87,0xdb,0x5b,0xe2,0xd9,0xba,0xe3,0xe8,0xdb,0xcb,0x74,0x36,0x7e,0x0e,0x3a,0x94,0x6a,0xe9,0x9e,0x50,0x8e,0xf4,0xd4,0x15,0xb7,0x50,0x60,0x3f,0x14,0x72,0x41,0x9d,0x51,0x63,0x8c,0x31,0x95,0xf2,0xbc,0x14,0xc7,0x64,0x2c,0xee,0x0b,0xe6,0xde,0xf6,0x33,0x85,0x65,0x00,0x54 +.byte 0x54,0x84,0x85,0x94,0x87,0xa0,0xc3,0x95,0x4e,0x74,0xcb,0x2d,0x82,0x9e,0x46,0x7f,0xf5,0x64,0x60,0xfe,0x1a,0x37,0xee,0xa7,0xb6,0x85,0xb5,0x4e,0x30,0x11,0x39,0x4b,0xe9,0x57,0x18,0x3a,0x2c,0x6b,0xb9,0x8e,0x5a,0x54,0xa9,0x31,0xf7,0xe1,0xe0,0xc7,0x52,0xfe,0x76,0x9b,0xc6,0xfe,0xde,0xe0,0xe9,0xf9,0xf6,0x10,0xda,0xef,0x72,0x24 +.byte 0x9c,0xbe,0x4a,0xba,0x58,0x21,0x1b,0xe3,0x1d,0x80,0x10,0x76,0x70,0xde,0x8f,0xf3,0x07,0x93,0x01,0xe0,0xb4,0xd9,0x7d,0x60,0x0d,0x08,0x07,0xa4,0x6d,0x9b,0x2b,0x8c,0x9a,0x58,0x65,0x5e,0x29,0xf1,0x24,0xb2,0x31,0xfb,0xb7,0xad,0xf0,0x50,0x8e,0x25,0x1b,0x75,0xc5,0x82,0x88,0x8c,0x68,0x14,0x2c,0x28,0xa2,0xb6,0x93,0x14,0xe3,0x28 +.byte 0xd0,0x95,0x6f,0x79,0x91,0x03,0x75,0x82,0x5c,0x20,0x46,0x0d,0x53,0x40,0x2c,0x88,0x62,0xa4,0x8c,0xd5,0xf1,0xc1,0xbf,0xde,0x57,0x91,0xb2,0xa6,0x66,0x29,0xf0,0x6b,0xb8,0x5e,0x78,0x5f,0xd1,0x76,0x98,0xf2,0x56,0xc2,0x5f,0x48,0x1f,0xa6,0x98,0xb0,0x87,0x53,0x13,0x1d,0x1a,0xa7,0xdf,0xa5,0xea,0x37,0x12,0x6d,0x64,0x53,0xdc,0x04 +.byte 0x2d,0xb9,0xeb,0x78,0x89,0x7b,0x70,0xd2,0x6d,0x45,0x8d,0x45,0x50,0x57,0xc7,0xb2,0xaf,0xdd,0x72,0x0f,0x9f,0x1b,0x29,0x61,0x68,0xb5,0x4a,0xd4,0xe9,0xd7,0x10,0xe7,0xcd,0xe8,0x22,0xd3,0x54,0x0c,0x0b,0x32,0x77,0x7d,0x3e,0xed,0x6e,0x79,0x4b,0x7b,0x99,0x1f,0x9e,0xbe,0xe7,0x12,0x7c,0x94,0x36,0x1c,0x20,0x8a,0xd0,0xab,0xda,0x95 +.byte 0xf6,0x4f,0xbe,0x6f,0x44,0x0b,0xa3,0x7b,0x4d,0x00,0xf6,0xdf,0x6f,0xc8,0x50,0x9e,0x3e,0x0c,0x1e,0xfe,0xb8,0x39,0x9f,0x83,0x4f,0xb3,0x1f,0x7e,0x53,0x54,0x64,0x04,0xa3,0xf7,0x79,0x01,0x71,0xce,0x18,0x0d,0x47,0x4e,0xae,0x88,0x6a,0xe7,0x26,0x4e,0x59,0xee,0x3a,0x03,0xc2,0x4d,0x0c,0x29,0xf0,0x96,0x9d,0xc0,0xa3,0xb3,0x82,0xf9 +.byte 0xc4,0xf8,0x8b,0xae,0x68,0x47,0x39,0xdc,0x10,0xd7,0x09,0xb4,0x86,0x87,0xfa,0x7e,0x0c,0xe4,0xee,0x3a,0x35,0x1a,0x0e,0x95,0x88,0xce,0xe7,0x9e,0xcc,0xa5,0x58,0x98,0x48,0xbd,0x9c,0x27,0xe6,0xb9,0xf7,0xca,0x66,0xee,0x54,0x87,0xd0,0x6d,0xab,0x31,0x1a,0x57,0x33,0x8b,0x89,0xa0,0xc0,0x18,0x9a,0x87,0x5e,0x58,0x02,0xe5,0x50,0x47 +.byte 0x0f,0x60,0x53,0x9d,0x99,0xe4,0x0a,0xfa,0x4a,0xc3,0x77,0x4b,0x4d,0x4e,0x0c,0xbb,0x68,0xd9,0xb3,0xd3,0x59,0x78,0xdf,0x65,0x97,0x6e,0x22,0x5b,0x24,0x26,0xf9,0x2a,0x14,0x73,0xa7,0xec,0x65,0xfc,0xdf,0x7d,0x35,0x0d,0x44,0x1b,0x4b,0xad,0x6b,0x8f,0x0e,0xa3,0x3b,0x6b,0x40,0xb3,0xe3,0xd9,0x41,0xba,0xbf,0x95,0xbb,0x6e,0x91,0xf6 +.byte 0x63,0xb3,0xde,0xdb,0xc2,0x6f,0xfe,0x00,0xf1,0x53,0x96,0x37,0xa4,0x27,0x48,0x3e,0xf9,0x32,0x23,0x90,0x90,0xe0,0x01,0xde,0x08,0xad,0xc4,0x6c,0x25,0x7a,0x7f,0x2f,0xb7,0xb7,0xc6,0xaf,0xeb,0x91,0x9c,0xa2,0x9c,0xf7,0x7f,0x9f,0x74,0x9b,0x7d,0x54,0x66,0xf9,0xe0,0x73,0xb4,0x15,0x2b,0xaa,0x71,0x50,0xd0,0x74,0x5d,0xcd,0x1c,0x09 +.byte 0x4c,0x80,0xcc,0xdc,0x10,0xd9,0x96,0xb3,0xdc,0x09,0x73,0x1f,0x36,0x4c,0x1b,0x86,0x25,0x13,0x7c,0xd2,0xc6,0x9d,0x5a,0xce,0xd6,0x22,0x97,0x66,0x7b,0x7b,0x84,0xba,0x69,0xd2,0x87,0x9b,0x08,0xda,0x77,0x66,0x90,0xbc,0x7c,0x3c,0x5d,0x43,0x92,0x5f,0x05,0xfb,0x23,0x46,0x88,0xf7,0xa4,0x10,0xbd,0x7d,0x00,0x29,0x2d,0xa5,0x6a,0xab +.byte 0xcc,0xdd,0xcf,0x1e,0x2b,0x9b,0x5f,0xa9,0x94,0x14,0x99,0x6e,0x3b,0x41,0x52,0x61,0x16,0x17,0x44,0xcf,0x5b,0x34,0x5c,0x27,0x29,0x4a,0xc3,0xba,0x9a,0x0c,0x20,0x17,0x2b,0x92,0xd9,0xf1,0x76,0x51,0xd8,0xa5,0x4a,0x4b,0x4a,0x0b,0xe4,0x6b,0x93,0x61,0xc7,0xb3,0x23,0x7a,0x24,0xfa,0x5e,0xee,0x80,0x10,0x65,0x44,0xa5,0xed,0x72,0xd9 +.byte 0x8a,0x06,0x2a,0x86,0xa9,0x26,0x50,0xa1,0xb2,0xb2,0x8b,0x7b,0x4a,0x29,0xf1,0x18,0xef,0xff,0x61,0xf1,0xa1,0x48,0x0f,0x84,0x8c,0xef,0xd8,0x02,0x65,0x44,0x11,0xf2,0xe1,0xba,0x98,0x03,0xbe,0x5a,0x5d,0xb8,0x0a,0x88,0xd8,0x4a,0x49,0x4c,0x70,0xa6,0x98,0x81,0x36,0x56,0x92,0xde,0xcb,0xaf,0x33,0xf5,0x1c,0x0a,0xce,0x7a,0xc0,0xff +.byte 0x24,0x54,0xd3,0x9a,0x0f,0x82,0x76,0xe5,0x0e,0x82,0xb4,0xfe,0xc2,0xac,0xe4,0xba,0xa3,0x4c,0x8a,0x0d,0xa7,0x3e,0x2b,0x71,0x73,0x5f,0xd2,0x35,0xd3,0xae,0xc0,0x3e,0x6f,0x67,0x98,0x51,0xa6,0xdf,0xb2,0xf4,0xd2,0xc1,0x43,0xe2,0x0a,0x7c,0xa0,0xb6,0xff,0xfc,0xc0,0x88,0xe5,0x34,0x20,0x79,0x50,0xc3,0x06,0x5b,0x20,0x9f,0x05,0x33 +.byte 0x22,0x30,0xaf,0xc4,0xc3,0x17,0x09,0xbb,0x30,0x0f,0x42,0xb7,0xc1,0xe0,0x4c,0x71,0xc5,0xf7,0x96,0xb4,0xd4,0x0f,0x44,0x47,0xa3,0x06,0x17,0xbd,0x0f,0x7c,0xc6,0x53,0x07,0x34,0x9a,0x9a,0x2f,0x3f,0x01,0xea,0xdf,0x1c,0x06,0x33,0x15,0x9c,0x5a,0xe3,0x33,0x29,0xce,0x40,0x4b,0xb1,0x99,0xe0,0x80,0x6e,0x0c,0xa1,0x4c,0x34,0x01,0x21 +.byte 0x12,0xbe,0x67,0x26,0xe6,0xdb,0xab,0x8d,0x45,0xdd,0x12,0x60,0x02,0x1a,0xdd,0x85,0xd6,0x33,0x78,0x23,0xe1,0x58,0x2a,0x46,0xf0,0xc2,0x4d,0x71,0x59,0x5b,0x8d,0x65,0xa7,0x97,0xf4,0x71,0x88,0x7d,0x60,0xe0,0x2d,0x2d,0x09,0x2f,0x26,0x15,0xa7,0xbf,0x30,0x0b,0x99,0x08,0xd7,0x85,0xfc,0x0c,0x19,0x31,0xde,0x5e,0x55,0x91,0x13,0x45 +.byte 0x3a,0x6d,0xd0,0x61,0x02,0x81,0xa0,0x42,0x7d,0xd8,0x7d,0x41,0x11,0xd2,0x25,0xb7,0x15,0xa1,0x16,0x3e,0x70,0x77,0x1b,0x80,0xb7,0xf1,0x24,0x8e,0x70,0x8d,0x73,0x6d,0xba,0xf1,0x46,0x32,0x60,0xe4,0xc8,0x4d,0x69,0xc8,0x10,0xf8,0x2d,0x53,0xe1,0x81,0x96,0x20,0x9d,0x59,0x74,0xae,0x93,0x92,0x44,0x5a,0x09,0x79,0x20,0xcb,0xff,0xb2 +.byte 0x08,0x7a,0x81,0xee,0x98,0x83,0x0b,0xa4,0x15,0xb0,0xaa,0x55,0xb0,0xb5,0x60,0x09,0x21,0xeb,0xe2,0x9b,0x57,0x41,0xb9,0xb4,0xd9,0xbe,0x7d,0x60,0x5d,0x25,0xde,0x9f,0x9e,0x5b,0x7c,0xee,0xeb,0x87,0x54,0x6a,0xc3,0xcf,0xec,0x57,0xce,0x97,0x2e,0x47,0x84,0x4c,0x15,0xf4,0xf5,0xe9,0xd4,0x45,0x23,0x20,0xf0,0x0f,0xda,0x97,0xc2,0xb9 +.byte 0xb2,0xe2,0x44,0xea,0xbd,0x95,0x73,0xcc,0x94,0x03,0x0b,0x97,0xeb,0x03,0xc1,0x51,0xc8,0x14,0xa6,0x7d,0x18,0x30,0xa1,0xda,0xa3,0xcd,0x78,0x67,0xb0,0xc1,0x6c,0x88,0xdd,0xd6,0x52,0x4b,0x85,0x1d,0x4a,0xaa,0x44,0xec,0x3b,0xff,0x00,0xd8,0x9e,0x18,0xf8,0xac,0x4f,0x73,0x6d,0xc7,0x4b,0x59,0x15,0x85,0x87,0x02,0xd8,0xf1,0xe6,0xfb +.byte 0x66,0x57,0xcf,0x06,0x84,0x50,0xc5,0x67,0x94,0xc6,0x96,0xb2,0x1a,0x37,0x06,0x3d,0x21,0xf2,0x1e,0xb4,0xe7,0xcb,0x36,0x8b,0xa3,0xe3,0x84,0xa0,0x9a,0x31,0xdb,0x87,0xf9,0xb0,0xef,0x06,0xfe,0xb0,0x8a,0x32,0x53,0xb4,0x41,0x79,0x6b,0xf7,0x7c,0xf7,0x9c,0xc1,0xea,0x61,0xf3,0x75,0xac,0x1f,0x92,0x75,0x44,0x58,0x9a,0x20,0xa4,0x20 +.byte 0xe3,0x19,0x1c,0x0d,0x27,0xe5,0x2e,0xbd,0x14,0xcb,0x40,0x3f,0x1c,0x19,0x7c,0xf9,0x92,0x13,0x1a,0x71,0x87,0xaf,0x77,0x0f,0x50,0x92,0x06,0x75,0x2d,0x75,0xe0,0x2e,0x37,0x54,0xcd,0xac,0xcb,0xca,0x7c,0x0e,0x66,0x53,0x10,0x50,0x70,0x9a,0xa4,0x79,0x76,0x87,0x71,0x4a,0x55,0xd4,0xa3,0x83,0xb3,0x04,0xed,0xa9,0xd6,0x84,0x7d,0x1a +.byte 0x64,0x5d,0xf7,0x4f,0x55,0x97,0x5e,0x26,0x9c,0x03,0x42,0x0a,0x16,0xd3,0xdf,0xc8,0x07,0xb8,0xb3,0xe9,0xac,0xa9,0x99,0x83,0x32,0x5b,0x83,0xde,0x7f,0x2b,0x70,0xca,0x15,0x09,0x33,0x0e,0x28,0xc9,0x89,0xc6,0xa6,0x47,0xd1,0x56,0x04,0x40,0x5d,0xd2,0x17,0x1d,0x32,0x21,0x6d,0xb2,0xc7,0x89,0x14,0x98,0xc6,0x58,0xc4,0xca,0xda,0x0f +.byte 0x32,0xdd,0xe1,0xe1,0x9a,0x25,0x09,0x31,0x16,0xf1,0x48,0x40,0x1c,0xc2,0xf9,0xd0,0xba,0xec,0x07,0x94,0xea,0x17,0xcf,0x6e,0xbc,0xfd,0x70,0xb4,0xbb,0x40,0xae,0xc3,0xae,0xf7,0x56,0xf5,0x13,0x55,0xfb,0x4b,0x81,0x5d,0xab,0xf2,0x3f,0xd7,0xa7,0xe6,0xcf,0x17,0xef,0x1f,0x71,0x1b,0x92,0x67,0xd3,0xd2,0xed,0x89,0x14,0x8f,0x8d,0x83 +.byte 0xef,0x7f,0xca,0x65,0x6d,0x79,0x13,0x5f,0x6e,0xf9,0x5d,0x9a,0x68,0x54,0x71,0x5c,0x9d,0x03,0x7c,0x73,0x7a,0xc2,0x17,0x9b,0x5a,0x7d,0x45,0x24,0x0c,0x41,0x13,0xe4,0xcb,0xdb,0x7b,0xc6,0xfb,0x93,0x48,0xca,0xd3,0x01,0x68,0x3f,0x36,0xc0,0x4b,0x1d,0xfa,0x9f,0x25,0x0e,0xcc,0xd0,0xf7,0xa0,0x7a,0x14,0xac,0xd7,0x6e,0x00,0x9f,0xf1 +.byte 0xc0,0xdc,0xfc,0x3b,0xd9,0xbf,0x68,0xfd,0x65,0x34,0x66,0x18,0xe5,0x02,0x9a,0x2d,0xff,0xaa,0xf7,0x73,0x58,0x21,0xe3,0xff,0x23,0x0f,0x63,0x1f,0xf3,0x8b,0x08,0xc7,0x00,0x46,0xe7,0xef,0x85,0x5f,0x7f,0xd9,0x5f,0xc2,0x36,0xe2,0xb6,0xa3,0x00,0xcb,0xff,0xe0,0x22,0x28,0x8c,0xb1,0xb1,0x17,0x91,0x4a,0x4a,0xc8,0x77,0x5a,0xa9,0xb2 +.byte 0x6e,0xb7,0xf0,0x4f,0x70,0x34,0x7f,0x87,0x2a,0x0c,0xcb,0x16,0x24,0x9b,0x41,0xb2,0x3e,0x0a,0xc1,0x33,0xf3,0xbb,0x48,0x17,0x2f,0xe6,0xfc,0xf4,0x27,0xc0,0xdb,0x58,0x24,0x9b,0x99,0x43,0x25,0xfb,0xd3,0xcf,0x1c,0x5a,0x5f,0xbe,0x28,0x3a,0x84,0x51,0x19,0xc3,0x53,0x6b,0xc8,0x73,0x44,0x6e,0x3d,0x7e,0x01,0x37,0xc2,0x2b,0xf7,0xa8 +.byte 0x1f,0x8e,0xd8,0x02,0x5a,0xae,0x56,0x81,0x2b,0x46,0x1b,0x7d,0xca,0x27,0x1f,0x48,0x99,0x24,0x54,0x59,0x08,0xfd,0xb7,0xdf,0x0a,0x77,0xef,0x4e,0x89,0x21,0x71,0x71,0x3f,0x8c,0xd7,0x52,0x89,0x7a,0x0d,0x68,0x09,0xc8,0x88,0x9c,0x0c,0x60,0xca,0x77,0x96,0xeb,0x05,0xeb,0xeb,0x60,0x5b,0x68,0x51,0x2c,0xcb,0x8f,0xca,0x3b,0x18,0x39 +.byte 0x28,0x8f,0xda,0x17,0x9b,0x53,0x71,0x26,0xa9,0x19,0xfb,0x1e,0x4a,0xd0,0x14,0x93,0x1c,0xee,0xe1,0x21,0xea,0xb3,0x16,0x47,0xaf,0x50,0xe5,0xe5,0xd3,0x21,0x8c,0x67,0x46,0x5d,0x97,0x19,0xda,0x6e,0xd9,0x70,0x7d,0x9f,0xd6,0x25,0xd0,0xfb,0x01,0x62,0x0a,0x9e,0x49,0x3d,0x33,0x0d,0x35,0xe5,0xae,0xfd,0xeb,0xb5,0x9b,0xd8,0xc1,0x2a +.byte 0xee,0x4d,0xf2,0xfc,0x16,0x51,0xab,0x58,0x7a,0x9e,0x5c,0xca,0x0a,0x92,0xbb,0xbb,0xa8,0x5b,0xfb,0xf9,0x33,0x67,0x0e,0x13,0x4c,0x83,0x3a,0x25,0x84,0x23,0xe1,0x41,0xfb,0xf1,0x42,0xc1,0x8d,0x58,0x0c,0x5e,0x75,0x09,0x34,0x58,0x96,0x32,0x54,0xb6,0xd8,0xaa,0x48,0xc1,0xed,0xc0,0x92,0x5a,0xec,0xeb,0xb1,0x75,0x59,0xf6,0x35,0xf5 +.byte 0xfd,0x7d,0x96,0x9b,0x83,0x38,0x31,0x10,0xa4,0xd7,0xfb,0x28,0xf0,0xc9,0xe4,0x33,0x5d,0x66,0x81,0x9c,0x31,0x9a,0xe9,0x9a,0x5e,0x70,0xf7,0x61,0xf9,0x93,0xaf,0x2b,0xbd,0x78,0x9e,0xdc,0x61,0xe0,0xa9,0xd1,0xa0,0x8e,0x3a,0x5f,0xb1,0x71,0xe7,0x9e,0xfd,0x81,0xee,0xf0,0xd6,0x63,0xec,0x4a,0xca,0x30,0xaf,0xb6,0x2d,0xaa,0x2d,0xa1 +.byte 0x5a,0x38,0xb5,0xc6,0x3f,0x5f,0x63,0x48,0xd3,0x18,0xeb,0xe3,0x36,0xca,0x91,0x86,0x4b,0x6f,0x57,0x66,0x47,0x2f,0xce,0xe4,0x44,0x26,0xe4,0xfd,0x8c,0xde,0x74,0xdc,0x17,0x0e,0x7d,0x6a,0xcf,0x89,0x0e,0x7f,0x09,0x65,0xf8,0xeb,0x58,0x00,0x3d,0xc5,0x1b,0x14,0xc5,0xca,0xca,0x28,0xbc,0xb7,0x63,0x6f,0x3b,0xa4,0x62,0x23,0x0e,0xd5 +.byte 0x04,0x76,0x0c,0xe8,0xea,0x64,0x10,0x3a,0x76,0x03,0xd6,0xea,0x69,0x52,0x14,0xa7,0x5e,0x40,0x7e,0x14,0xdb,0x7f,0xbf,0xe8,0xf6,0xf0,0xdd,0x5e,0xac,0x55,0x44,0xfb,0x28,0xf3,0x16,0xcb,0xed,0x8f,0x10,0x01,0x91,0xac,0x2c,0x27,0x46,0x0c,0x51,0xd6,0xf6,0x30,0xa3,0x34,0xd0,0x5e,0x93,0xe8,0x4e,0xc0,0xb4,0x9b,0xc1,0xe8,0x20,0x7d +.byte 0xb7,0x68,0xdd,0xf1,0xc4,0x60,0x20,0x97,0xdd,0x5c,0x7c,0x9b,0xea,0xc0,0x22,0x84,0x2c,0x65,0x78,0xbd,0x18,0xa1,0x62,0x7e,0x06,0x49,0x96,0xde,0xd1,0x89,0x06,0x0d,0x35,0xa0,0xcc,0x22,0xd3,0xf5,0xa6,0x4b,0xb6,0xca,0x43,0x34,0x5a,0x3d,0x39,0x95,0x0b,0x95,0xbe,0xdc,0xe6,0x61,0x72,0xbe,0x2f,0x19,0x1c,0xe8,0x22,0x5e,0x18,0xc9 +.byte 0x59,0x4a,0x08,0xa3,0x85,0x5c,0x06,0x36,0x00,0x2e,0x84,0x3e,0x3e,0x07,0x5b,0xfa,0xda,0xbb,0xbb,0x57,0x20,0x6f,0x1b,0x8d,0xe5,0xc5,0xdb,0x8d,0x23,0x1a,0xfc,0x67,0xa9,0xc8,0xea,0xe1,0x54,0xbb,0x8a,0x8a,0x0b,0xa6,0x02,0x35,0xd6,0xd5,0x4d,0xff,0x09,0x79,0x31,0x9a,0xc2,0xad,0xa7,0x66,0xb5,0x3c,0xbd,0xb7,0xcb,0x17,0x30,0x4b +.byte 0x56,0xf5,0xd2,0x51,0x90,0xbb,0x47,0x00,0xc0,0xf3,0x8b,0xd7,0x10,0x33,0x6d,0xe8,0xe4,0xcf,0xd6,0xbf,0x35,0x75,0x8d,0x40,0x55,0xd7,0x5d,0xb0,0x40,0xf6,0x95,0xfb,0x1a,0x97,0x24,0xb8,0xc1,0x91,0x5f,0x66,0x6c,0xc7,0xdb,0x16,0xba,0xb8,0x07,0xf8,0xf8,0x91,0xb2,0x8c,0x26,0xb9,0xa2,0x59,0xb0,0xde,0x49,0x63,0xcc,0x7c,0x4c,0x48 +.byte 0xb5,0xe4,0xf9,0x81,0x28,0x48,0x9f,0xa0,0xa4,0xf8,0x0d,0xcc,0x7b,0xf3,0xce,0x08,0x85,0x73,0x4a,0x64,0xfc,0xa8,0xc0,0xae,0x7a,0xbf,0xa5,0x3f,0x45,0xaf,0xe7,0x7f,0x41,0x61,0x34,0x08,0x6e,0x09,0x0d,0x9d,0xea,0x90,0xbe,0x62,0x7c,0x38,0x92,0xa7,0x63,0xfa,0x03,0x80,0x10,0xc4,0x53,0x46,0x0b,0x44,0x88,0xea,0x50,0xb6,0x82,0xf8 +.byte 0x0b,0x2d,0x93,0x63,0x82,0x80,0x2b,0x61,0x3e,0x17,0xd1,0xd8,0x6c,0xb1,0xb4,0xbd,0xfd,0xad,0x1c,0x10,0x30,0xc1,0x78,0xd4,0x5f,0x21,0x49,0x54,0x7a,0x08,0x2b,0x25,0x3b,0xc9,0xb7,0x0a,0xf2,0x37,0x83,0xc0,0x43,0x73,0xee,0xd6,0x8b,0x92,0x15,0xde,0xfe,0x14,0xf1,0xfb,0x8b,0x4a,0x85,0x8d,0x78,0xe6,0x36,0x1a,0xbb,0x32,0x6c,0xdd +.byte 0x43,0x76,0xad,0x68,0x90,0x08,0xd2,0xbd,0x24,0x41,0xd4,0x93,0x17,0xa8,0x9f,0xeb,0x33,0x25,0x1f,0x1a,0xfd,0x45,0x20,0xc1,0x47,0xf1,0x25,0x09,0x89,0x14,0x9e,0x4c,0x88,0xa4,0x1c,0xb8,0xba,0x84,0xd5,0x7d,0x73,0xb2,0x9c,0x48,0x9f,0x84,0x31,0xd3,0x2c,0xe1,0x94,0x61,0x3e,0x5f,0x37,0x25,0xc7,0xb7,0x2d,0xc3,0xa9,0xaf,0xcc,0x0e +.byte 0xe6,0xc7,0x9a,0xa7,0x06,0xe3,0x41,0xb8,0xa6,0xa8,0x9a,0xe7,0x76,0xef,0x83,0x5a,0x80,0xa4,0xe3,0x0c,0x04,0xa2,0x0b,0x91,0x33,0x34,0x17,0xa4,0x02,0x2d,0x12,0x84,0x67,0x85,0x6b,0xc0,0x3a,0x0d,0x16,0xf2,0x66,0x04,0x71,0xe9,0xec,0xa6,0xbb,0x58,0x42,0x92,0x70,0xf5,0x0d,0x52,0xcd,0x1e,0x2d,0xd4,0x28,0x0f,0x68,0x35,0xd9,0xa4 +.byte 0x40,0x09,0x30,0xe9,0xbb,0xaf,0x77,0x63,0x4f,0xba,0x56,0x97,0xe8,0x92,0xcc,0xba,0xdb,0xe4,0xe0,0xdf,0x19,0x21,0x71,0x23,0x3d,0xd0,0xb1,0x25,0xd3,0xf8,0x53,0x01,0x30,0x9a,0xea,0x84,0x1b,0x18,0x68,0x4a,0xb9,0x9e,0x60,0xc4,0xfc,0xf7,0x56,0xb7,0x49,0xe1,0x50,0x38,0x7d,0x3d,0x87,0xa2,0xad,0x38,0x5c,0x0c,0x53,0x21,0xa0,0x56 +.byte 0x3a,0x94,0xd7,0xa8,0x23,0x96,0xa9,0x66,0x4e,0x88,0xae,0x4b,0x6e,0xcb,0xc6,0xa6,0xdb,0x1f,0x2e,0xae,0xe7,0x24,0xe2,0x1e,0xf7,0x3a,0x14,0x48,0x5e,0xfa,0x90,0x0a,0x84,0xa6,0x1c,0xaa,0x60,0xc0,0x2c,0x69,0xe8,0x36,0xb3,0xee,0x55,0x2a,0xf7,0x90,0xa1,0x92,0x4f,0x29,0x1e,0x49,0x6e,0x73,0x22,0x1f,0x8b,0x0c,0xb6,0xf4,0x3c,0xbf +.byte 0x82,0x47,0x49,0xc3,0x94,0x0e,0xcf,0x9b,0x86,0x88,0xc2,0xd0,0xd7,0xa7,0x43,0xfb,0x89,0x4b,0xbd,0x5d,0x4c,0x6b,0x7a,0xc7,0x74,0x1b,0xfb,0x48,0x12,0x68,0x61,0x91,0xf9,0xf3,0xb6,0x7f,0x4f,0x72,0x89,0xf0,0x72,0x46,0xf7,0x6f,0x84,0xd1,0x38,0x6d,0xd9,0x1b,0xa5,0xd1,0xe2,0x29,0xe0,0xa6,0xbf,0x1c,0xbd,0xfb,0xdd,0xdc,0xa5,0xae +.byte 0x7a,0x9c,0xd0,0xc3,0xfa,0x6f,0x72,0xa3,0xa2,0x8b,0x87,0x0d,0x9a,0x6a,0xfc,0x53,0x9a,0x08,0x61,0x86,0x67,0x2a,0x90,0x6a,0x09,0x20,0x8e,0xde,0x32,0x35,0x34,0x75,0xc0,0xa8,0xab,0x1b,0xc4,0x7c,0xc8,0xd9,0x90,0xcf,0x32,0x27,0x6c,0x68,0xf9,0x18,0x14,0x05,0x57,0x39,0xc6,0x9e,0x5e,0x38,0x07,0xdb,0x81,0xb4,0xa4,0x54,0x06,0xd6 +.byte 0x79,0x78,0x0e,0xc8,0xb9,0x56,0xda,0x08,0x2e,0x77,0x26,0xcc,0xf7,0xa5,0x2d,0xd8,0x91,0xa6,0xfc,0x25,0x0e,0x91,0xdd,0x3c,0xa8,0x14,0x7a,0x95,0x05,0x5b,0x15,0x7d,0x1d,0x9b,0x3c,0x8c,0xfd,0xdc,0xa5,0xcd,0xec,0xea,0x7a,0x2b,0x7e,0x79,0x21,0x54,0xea,0x7f,0x52,0xb4,0xbb,0x4f,0x07,0x95,0x39,0x4a,0xaf,0x2e,0xb4,0x1e,0x9e,0xc6 +.byte 0x0a,0x07,0x58,0xd4,0xa5,0x44,0x73,0xa8,0x84,0x26,0x67,0xb8,0x0f,0xc7,0x6b,0xa7,0x28,0xf6,0x05,0x91,0x3e,0x22,0xcd,0xd7,0xf5,0xfc,0xae,0x22,0x42,0x96,0x3b,0x57,0x91,0xce,0x44,0xd0,0xfd,0xc3,0x4c,0x8b,0x8b,0x67,0xfe,0x03,0x86,0x92,0x34,0xf7,0xf9,0x53,0xb3,0xdf,0x36,0xcf,0x16,0x1c,0x68,0x36,0x17,0x1f,0x41,0x56,0x1d,0xda +.byte 0x90,0xb3,0xab,0x03,0x97,0x88,0x23,0x65,0x89,0x72,0xe3,0x6d,0x8e,0x37,0x5d,0xee,0x89,0x81,0x11,0x27,0x8b,0xf0,0x9b,0xef,0xa2,0x34,0x45,0xcc,0x41,0xcf,0x2a,0x88,0x70,0xe4,0x78,0xfc,0xe1,0xb5,0x51,0x70,0x84,0x64,0xd1,0x10,0x71,0x5d,0xa4,0xb4,0x6d,0xb5,0x98,0x6e,0xcc,0x9a,0x62,0x14,0x30,0xce,0x1a,0xff,0x49,0xd6,0xaa,0xcc +.byte 0xe1,0x99,0x42,0xb1,0xfe,0x77,0x8a,0x2d,0xdb,0xc0,0x0d,0x50,0x53,0x0d,0x92,0xe5,0x2b,0xd0,0x78,0x83,0x08,0x4a,0x0c,0x1d,0x5b,0x03,0x22,0x65,0x3d,0x9e,0xdb,0xcf,0x01,0x61,0xf7,0x6d,0x2b,0x99,0xef,0xba,0x80,0x50,0xda,0xda,0x2d,0xbf,0x00,0xdf,0x6f,0xec,0x95,0xbc,0x5b,0x4e,0xda,0x83,0xe4,0x5d,0xf0,0xa7,0x1b,0x27,0xf1,0x76 +.byte 0x04,0x5d,0x3d,0x2c,0x12,0x15,0xad,0xef,0x47,0xdc,0x22,0x9b,0xc2,0x80,0x91,0xf3,0xbf,0x16,0xe9,0xd3,0x35,0x94,0x4b,0xfd,0xa3,0xa1,0xee,0x98,0xad,0x99,0xea,0x07,0xe1,0x0f,0xa7,0xbd,0x0b,0xfb,0xc0,0xd5,0xb0,0x49,0x37,0xc6,0x5f,0xe7,0x18,0xc1,0x60,0xe9,0x1d,0x5e,0x0e,0xea,0x73,0xf2,0xa1,0x75,0x7e,0x39,0x51,0x07,0x1e,0xcb +.byte 0x2a,0x5b,0x26,0x75,0xbe,0x02,0x5e,0xde,0x6c,0x37,0xb1,0x3c,0x1f,0x25,0x65,0x7d,0x9e,0x5d,0xa1,0x0b,0x98,0x27,0x53,0xb9,0xbb,0xc2,0x3e,0x8d,0x2d,0x5e,0x5c,0xbf,0xed,0x66,0xe8,0xd1,0x7d,0xaa,0xef,0xca,0x0e,0xd0,0x78,0x2b,0x89,0x07,0x76,0xb6,0xc3,0x92,0x42,0x3a,0x84,0x1d,0x81,0xc1,0xe8,0x1a,0xb8,0xe6,0xf1,0x43,0xcc,0x7a +.byte 0x59,0x4d,0x9f,0x00,0xfe,0x6a,0xe5,0x42,0x71,0x3c,0xcb,0xc8,0x45,0x18,0xf0,0xf2,0x81,0x9d,0x5a,0xb7,0x8d,0xbe,0x31,0xcb,0x7d,0xca,0xb7,0x19,0x57,0xb1,0x61,0x36,0x90,0x42,0xe2,0xc3,0xf5,0xa5,0x4b,0xc3,0xd4,0xe7,0x6c,0xb6,0x0c,0x06,0x19,0x4b,0x54,0x8f,0x2d,0xdc,0xc5,0x2b,0xff,0x1c,0x61,0x29,0xda,0x95,0x4f,0xa1,0x21,0x25 +.byte 0x24,0xbe,0xc7,0x34,0x2f,0xbf,0x33,0x6d,0x82,0x8f,0xf1,0xa9,0x97,0x5a,0x49,0x7f,0x60,0x00,0xf2,0x3e,0x7b,0x64,0xdf,0xc8,0xd3,0x5f,0x6e,0x1f,0xfb,0x71,0x80,0xf3,0x55,0x42,0xbe,0x32,0x7b,0xa9,0xeb,0xf6,0x31,0xe2,0xf0,0xd1,0xe9,0xbe,0x96,0x0e,0xb3,0xdf,0x3e,0xb2,0x2c,0xc3,0xce,0xbd,0xe7,0xfe,0x1c,0xed,0x2c,0x0b,0xaa,0x32 +.byte 0x76,0x82,0xb4,0x6b,0x18,0xa7,0x68,0x19,0xb7,0x27,0x21,0x4c,0xb0,0x22,0x98,0x58,0xd5,0x90,0x80,0xab,0xa1,0xfe,0x83,0xc5,0x66,0xf6,0x3e,0xa2,0xa9,0x6f,0x73,0xce,0x7f,0x0c,0xe6,0xde,0xee,0xb0,0xe6,0x2a,0xcc,0xcc,0xb0,0x53,0x8c,0xce,0xc8,0xdc,0xea,0x83,0xb4,0x0e,0x69,0x8d,0x90,0x86,0xaa,0xe3,0x3b,0xfb,0x88,0xe2,0xe8,0x27 +.byte 0x65,0x36,0x07,0xb3,0x91,0x0e,0x5a,0x6b,0x9f,0x0f,0xbd,0x81,0xb3,0x54,0x65,0x71,0xa4,0x2c,0x8e,0xda,0x47,0x04,0xce,0xfe,0x00,0x52,0xf1,0xdf,0x82,0x27,0x70,0x2a,0xb1,0x79,0x2f,0x27,0x7f,0xae,0x9e,0x5c,0x36,0xec,0xa0,0x2a,0xf3,0x74,0x78,0x01,0x17,0x74,0x2a,0x21,0x4f,0xb8,0xd2,0xe4,0xfe,0x5b,0x06,0x14,0xa5,0xb1,0xb1,0xff +.byte 0xee,0x79,0xf7,0x18,0xb9,0x31,0xa4,0x63,0x47,0x1c,0xdf,0x38,0x04,0x2d,0x18,0xca,0x14,0xf8,0x2f,0xec,0x0d,0x58,0xad,0xbb,0xf4,0x45,0x11,0x0e,0xfa,0x17,0x4c,0x5e,0xd4,0xa6,0xde,0xe4,0x13,0x44,0x2c,0xb9,0xfd,0xcd,0x41,0xe7,0xf9,0xda,0xbc,0x28,0x8f,0x0c,0x41,0x4d,0xa7,0x0d,0xf5,0x96,0xd7,0x8f,0x10,0x96,0xfb,0x75,0x75,0x86 +.byte 0xc9,0x6e,0x23,0x92,0x71,0x69,0x7b,0x94,0x61,0x1c,0x3f,0xcf,0x66,0x34,0x62,0x68,0x5d,0xee,0x7b,0x34,0x5d,0x2a,0x39,0xbb,0x6a,0x34,0xea,0x6e,0xe3,0xe9,0xdb,0xe4,0x34,0x6e,0x29,0x0b,0x21,0x38,0xe7,0x5b,0x79,0x37,0x54,0xf0,0xed,0xaa,0x07,0x2b,0x21,0x29,0x67,0xfe,0x7d,0xa5,0x99,0x0e,0x5d,0x05,0xe7,0x61,0x6e,0xd1,0x4a,0x15 +.byte 0x4a,0x56,0xb1,0x13,0x49,0x8c,0xf4,0x4f,0xd7,0xe9,0x68,0xae,0x09,0x37,0xd3,0x96,0x21,0xe8,0x1f,0x9f,0xa9,0xc6,0x54,0x57,0x63,0x09,0x1e,0x71,0xf2,0x48,0x9e,0x50,0xbb,0xb3,0xf1,0x4e,0x2d,0x1d,0x79,0x69,0x0a,0xa2,0xa9,0xdd,0x1b,0x55,0x62,0x6b,0x0d,0xcc,0x9c,0xb1,0x5e,0xc8,0x4c,0x4f,0x62,0x3c,0xc4,0xa3,0xb4,0xe4,0x34,0xec +.byte 0x9d,0x0c,0x1b,0x46,0x60,0x68,0xd5,0x04,0xd7,0x1b,0x3c,0x7a,0x98,0x0c,0xd9,0x87,0x2b,0x4f,0x97,0x5b,0x56,0x65,0xb0,0x06,0x6e,0x9e,0x06,0x37,0x0e,0xd2,0xa1,0x52,0xf5,0xaa,0x2b,0xec,0xbd,0x0f,0xb6,0xba,0x48,0x63,0x57,0x51,0xe3,0x00,0x53,0xf5,0x77,0xb2,0xa4,0xb1,0x44,0x01,0x3e,0xcf,0xe9,0x2a,0x7a,0xf5,0x19,0x5e,0x43,0x36 +.byte 0xe0,0x38,0x41,0xbc,0xda,0xb5,0xd0,0x69,0xdf,0xd2,0x04,0xd4,0xf8,0x38,0x37,0x1c,0x90,0x30,0xf2,0x3d,0x03,0xe4,0x3f,0x84,0x2c,0x9a,0xa4,0x8a,0x00,0x4e,0x49,0x24,0x62,0x06,0xb4,0x9d,0x33,0x8a,0x8e,0xd2,0xbd,0x1b,0xa1,0x83,0x0b,0xa5,0xa2,0x5c,0xcf,0xb1,0x65,0x85,0x92,0x1f,0xb0,0x2e,0x3b,0xb2,0xf3,0x80,0xff,0x9d,0x41,0x4d +.byte 0xcd,0x25,0x09,0x02,0x85,0xb3,0xa8,0x49,0x12,0x10,0xe7,0x5c,0x94,0x13,0x4b,0x52,0x53,0x35,0x9c,0xbc,0x7a,0xad,0x04,0x19,0x54,0x8a,0xbc,0x42,0x73,0xf1,0x0a,0x22,0x75,0xbf,0x3b,0x12,0xa8,0xa4,0x47,0x5c,0x95,0x48,0x60,0x71,0x5c,0x9a,0x39,0x5c,0xdb,0x44,0xe8,0x74,0x92,0x3e,0x2b,0x3b,0x1b,0xb7,0x21,0x98,0xe1,0x87,0x32,0xaf +.byte 0x4a,0xe3,0xda,0x4a,0x46,0xde,0x15,0x4c,0xdc,0xc6,0x60,0xe6,0xd7,0x92,0x29,0x05,0x21,0x22,0x9b,0xaf,0xc4,0xd7,0x6a,0xea,0x2c,0x82,0x5d,0xc7,0x81,0xe2,0x67,0x85,0xd2,0x16,0x6f,0x83,0xa8,0x82,0x5f,0x8f,0xf5,0x3a,0x50,0xba,0x04,0xcb,0x76,0x4d,0x80,0x16,0x12,0x72,0xa8,0x6c,0xac,0x78,0xf1,0x8c,0x93,0xab,0xe0,0xb5,0xdc,0xd1 +.byte 0xa5,0x40,0x0e,0x50,0x88,0xd2,0x9d,0x56,0xf6,0xa0,0xd4,0x45,0xcf,0xef,0x16,0x1a,0xa4,0xaa,0x91,0x5c,0xa3,0x8f,0x84,0xf8,0x3e,0x30,0x1f,0x5f,0x55,0xf9,0xd3,0x3d,0xb8,0x64,0xbb,0x3c,0x91,0xe4,0x0d,0xa5,0x43,0x14,0x75,0xe7,0xec,0x8c,0x12,0x56,0x34,0xb0,0xa9,0xae,0x93,0x91,0x34,0xfc,0x78,0xa3,0x81,0x51,0x45,0x7d,0x9f,0x7d +.byte 0x5e,0xc7,0x5e,0x51,0x17,0xfa,0x02,0x5d,0xb2,0xf7,0x79,0x4b,0x49,0xd2,0x1b,0x6f,0xfd,0x9e,0xff,0x75,0x74,0xf0,0x26,0x7e,0xd7,0x65,0xb0,0xf3,0x0a,0x0c,0xd2,0xa2,0x26,0x98,0x03,0x26,0xb5,0x67,0xc4,0xc0,0xed,0x80,0xd4,0x20,0xf6,0x7e,0x17,0x54,0xeb,0xde,0xc3,0x86,0x51,0xda,0xf7,0xe5,0xc7,0xfe,0xfc,0x71,0x83,0x80,0xbe,0xde +.byte 0x4b,0xda,0x83,0x76,0x63,0x04,0x03,0xdd,0xe0,0xe0,0x4e,0xb6,0x32,0xd5,0xd0,0xce,0xd7,0xaa,0xcd,0x5f,0x64,0xa6,0xd8,0x9e,0xc5,0x97,0x30,0xad,0xf1,0x82,0x8f,0x7c,0x18,0xec,0x30,0x1d,0x2d,0xb6,0xdb,0x33,0x65,0xed,0xe2,0x24,0xd8,0xba,0x0a,0x1f,0x79,0x2a,0x1c,0xe1,0x4e,0x04,0xa6,0x74,0x74,0x37,0x42,0x94,0xc4,0x99,0x0e,0xf8 +.byte 0x3f,0xf3,0xff,0xeb,0x7f,0x95,0x9c,0x47,0x56,0x68,0x6a,0x0d,0x6e,0x66,0x71,0x3b,0x51,0xd5,0x12,0x7e,0x59,0x39,0x43,0xb5,0x53,0xd3,0x1d,0xa2,0xe9,0xa1,0xc8,0x8d,0xf2,0x8e,0xa1,0x9c,0x36,0xdd,0xda,0xd3,0x61,0xd8,0xe9,0x76,0x5e,0xcb,0x0a,0x52,0xc8,0x5a,0x25,0x00,0x21,0xea,0x6a,0x96,0xde,0x02,0x76,0x02,0x63,0x73,0x28,0x63 +.byte 0x46,0x37,0xe1,0x75,0x2f,0x42,0x8f,0xee,0x2c,0x84,0x82,0x43,0x43,0x2d,0xa9,0x13,0x50,0x46,0x54,0xed,0x76,0xbd,0x10,0x1c,0x9b,0xa1,0x42,0x97,0x68,0xca,0x84,0x2e,0x1d,0x6f,0x86,0x67,0xaf,0xb7,0x20,0xc1,0x7c,0xab,0x70,0x20,0xa1,0x79,0x71,0xe4,0xb7,0x45,0x8a,0x04,0xd3,0x70,0x10,0xa8,0x28,0xc3,0x56,0xff,0x43,0x36,0x13,0x88 +.byte 0xb6,0x2d,0xfd,0x7f,0xbc,0xc9,0x1d,0x11,0x9a,0x7c,0xd0,0xfc,0x11,0xac,0x54,0xd5,0xc3,0x03,0xd1,0xe3,0x9e,0xff,0x03,0xdb,0xd9,0xd8,0x77,0x96,0x08,0xf4,0x1b,0xd9,0xfa,0x70,0xed,0xab,0x53,0x78,0xca,0x28,0xa7,0x29,0x49,0x45,0x37,0x10,0x8f,0x61,0x7d,0x11,0x99,0x2e,0xe8,0x5d,0x45,0x3a,0xe7,0xd2,0x6c,0xb6,0x03,0xc4,0x6d,0xaa +.byte 0x52,0x60,0x8c,0xc6,0x9c,0x17,0xba,0xf6,0x3b,0xd4,0x4b,0x26,0x63,0x92,0x8c,0xb9,0x6a,0xf2,0x26,0x91,0x9d,0x8d,0x99,0x39,0x26,0x7d,0xb5,0x4f,0x4c,0xc6,0x0e,0x2e,0xe1,0xc6,0xcb,0x98,0x93,0x71,0x9b,0xaa,0x01,0x40,0x70,0x93,0x2a,0xe8,0x27,0xc5,0x20,0xa7,0xd2,0x06,0x8b,0xb0,0x29,0xcd,0x4f,0x2c,0x5a,0xde,0x35,0xc7,0x2a,0x8e +.byte 0xa7,0xae,0x02,0xfa,0x8e,0x4d,0xf3,0x77,0x67,0xe0,0xcb,0x84,0x69,0xc6,0x05,0xe4,0x84,0xe3,0x6e,0x02,0x6c,0x3b,0x93,0x30,0x3e,0x89,0x2c,0xc7,0xa5,0x7e,0xaa,0x58,0x59,0x25,0xf6,0xff,0x56,0x9a,0x4a,0x70,0xbf,0x88,0x20,0x8d,0x51,0x5e,0x08,0x13,0x26,0x2c,0x5d,0x88,0x13,0x3e,0x32,0x7a,0xf6,0x17,0x5c,0xdb,0xc4,0xcd,0x5a,0x16 +.byte 0x65,0xe4,0x34,0xeb,0x21,0x6d,0xb9,0x30,0x5d,0xc0,0xa2,0xea,0x4f,0x63,0x0e,0xbe,0x32,0x91,0x89,0x6f,0x96,0x40,0xf3,0x5f,0xa3,0xf2,0x15,0xc3,0x3c,0x3c,0xb8,0x2f,0x0d,0xc2,0xcd,0x4e,0xa0,0xa5,0xf6,0x78,0x40,0x0b,0x90,0x11,0x52,0xff,0x8f,0x7f,0x6a,0x0c,0xd6,0x3b,0x64,0x80,0x47,0xfa,0x70,0xbe,0x01,0xdc,0xdf,0x5b,0x75,0x7c +.byte 0xca,0x66,0xf0,0x2a,0x53,0x89,0x55,0x87,0xf8,0xec,0xd1,0x18,0x22,0x0c,0xd5,0x0e,0xc8,0x1c,0xbc,0x1e,0x66,0x14,0x44,0x10,0x3c,0xd4,0x2e,0xca,0x0b,0xd8,0x3f,0x81,0xd8,0x9f,0x81,0xf6,0x62,0x23,0xe4,0xc7,0x0d,0xb0,0x1b,0x00,0xd8,0xf4,0x1a,0xdd,0x9b,0xa1,0x74,0xeb,0xf0,0x65,0x5c,0x82,0x00,0x17,0xa6,0x68,0x29,0xd5,0xa4,0x64 +.byte 0xd3,0x15,0x90,0xd0,0x91,0x17,0xfc,0xd2,0xd7,0xad,0x4b,0xd8,0x41,0x03,0x51,0xfd,0x61,0xac,0x34,0xd4,0xff,0xaa,0xb1,0x64,0x6c,0x79,0x78,0xf7,0x6b,0x18,0x03,0x2b,0x6b,0x9a,0xd7,0xce,0x55,0x6e,0xdd,0xab,0x2e,0xbc,0x27,0x3a,0x8c,0xa5,0x8d,0xf0,0x55,0x81,0x0c,0x6e,0x8d,0xd8,0xd2,0x24,0x5e,0x2e,0x56,0xa8,0x1e,0x9c,0x98,0x88 +.byte 0xd3,0xbe,0x90,0x56,0x70,0xe5,0xcc,0x49,0x2a,0x13,0x98,0x99,0xbd,0xc9,0x9f,0x53,0x85,0x07,0xbe,0x54,0xa7,0x4c,0xd6,0x96,0x7d,0x8f,0x24,0x79,0x67,0xb2,0x62,0x4c,0x6a,0xc1,0x6c,0xb7,0xdc,0xe9,0x21,0xe3,0x27,0xc7,0x53,0xff,0xe7,0xd1,0xea,0x60,0xa8,0x56,0x08,0x5c,0x29,0x0a,0x04,0x0c,0xda,0x7a,0x70,0x8c,0x3d,0x55,0x3f,0xcf +.byte 0x9e,0xea,0x74,0x8b,0xbc,0xf0,0xf1,0x3a,0x86,0x22,0xe5,0x54,0xa7,0x70,0xc2,0xcd,0xb8,0x9f,0x4e,0x9f,0x48,0xa8,0xc0,0x82,0x0d,0x73,0x8b,0x3c,0xfc,0x20,0xf4,0xbe,0x79,0xde,0x8e,0x3c,0x26,0x85,0xde,0x74,0xd1,0xe3,0xd5,0x8f,0x39,0x71,0x46,0x8c,0xbd,0x68,0x28,0x2d,0x36,0x0d,0x66,0xc1,0x0b,0x96,0x3e,0x11,0x2e,0x44,0x17,0xd5 +.byte 0xfe,0x0d,0x70,0x84,0x96,0x20,0x34,0x2f,0xbe,0xf0,0xf5,0x9b,0xb4,0x5a,0xa9,0x50,0x6a,0xda,0xdb,0x69,0xea,0xef,0xa9,0xaa,0x06,0xc0,0x68,0xa4,0x61,0x1b,0x4b,0xf8,0x0b,0x56,0x91,0xc8,0x6f,0x39,0x15,0xe2,0xcc,0xbf,0x2b,0x36,0x96,0x0c,0x84,0xfb,0x3d,0x4b,0x09,0xe3,0xc2,0x4b,0x05,0x5e,0xfa,0x30,0x75,0xc5,0x54,0xa5,0xbd,0x45 +.byte 0x1e,0x14,0x72,0xd6,0xfd,0xe0,0x8f,0x7b,0x46,0x9b,0x11,0x07,0x27,0x03,0xe1,0x2d,0xcc,0x0a,0x01,0x49,0x61,0xc4,0x61,0x78,0x06,0x5f,0xaa,0x01,0x5b,0x68,0xd7,0x29,0xb4,0x9e,0xd3,0xaf,0xc7,0x45,0xf0,0x23,0xaf,0x28,0xcd,0x96,0x23,0x61,0xb2,0xb4,0x21,0x96,0x5d,0x91,0x3e,0x71,0xb5,0x41,0xf1,0x29,0xf4,0x5b,0x45,0x77,0x16,0x00 +.byte 0x9d,0x39,0x2a,0x1c,0x38,0x6d,0x36,0x97,0x98,0x4c,0x84,0xfc,0xf5,0xf1,0x59,0x7a,0x8c,0x21,0xfb,0xbc,0x9b,0x0c,0x8d,0x60,0xb6,0xc4,0xe3,0x4b,0x33,0x4f,0x04,0x4c,0x27,0xd2,0xa0,0xe1,0x71,0x0b,0x6d,0x40,0x8d,0xba,0xb3,0x11,0x9b,0x07,0x97,0x82,0x01,0x47,0xaa,0x2a,0xd4,0xcc,0x02,0xd3,0x86,0x86,0xb5,0xd7,0x5d,0xbc,0xd0,0x0f +.byte 0x97,0x5c,0xe5,0xac,0xc6,0x53,0xb3,0x39,0x09,0x68,0x2e,0xcc,0xf3,0x43,0xba,0xed,0x15,0x90,0xbe,0x9d,0xeb,0xa4,0xfb,0x4a,0x20,0xcf,0x10,0xb9,0x47,0x99,0xb0,0x89,0x26,0xb9,0xbd,0x4b,0xf6,0xa5,0xbd,0x2f,0xad,0x1a,0x75,0xe8,0xff,0xc6,0x6b,0x6a,0x31,0xbe,0xec,0xd2,0xc4,0x39,0x9e,0x3b,0x05,0x3f,0x24,0xba,0xf1,0x4d,0x0c,0x0c +.byte 0x05,0x60,0x60,0x22,0x0c,0x1b,0x0b,0x6c,0x80,0xd5,0xe8,0x8f,0x81,0xee,0x80,0x41,0x4a,0x69,0x47,0xc6,0x4c,0xeb,0xf6,0x2b,0x91,0x7c,0x9f,0x22,0x74,0x7b,0x43,0x95,0x56,0x55,0xba,0x85,0x23,0xb3,0xc3,0xee,0x6a,0xcc,0x49,0x2c,0x6c,0x86,0x6d,0x60,0x5d,0x84,0x0c,0x3c,0x88,0x61,0x58,0x1d,0xfc,0x00,0x2c,0x84,0x49,0x4d,0x95,0x75 +.byte 0xc0,0x03,0x02,0x59,0xc0,0xe9,0x84,0xea,0xce,0x3f,0x8b,0x76,0xbf,0x19,0xaa,0x13,0x1b,0x8d,0x9f,0xb2,0xeb,0xb3,0x02,0x87,0xee,0xfe,0x73,0xdb,0xc4,0x19,0x27,0xaf,0x15,0x8d,0xf4,0x58,0x97,0x43,0xb9,0x45,0x32,0x5f,0x24,0x2d,0x08,0xfe,0xec,0xf2,0xf1,0x34,0x99,0x7a,0x66,0x44,0x3d,0xd4,0xf7,0x82,0xcf,0xca,0x6f,0x53,0x9f,0x0a +.byte 0x74,0x79,0x9b,0x45,0x5b,0x07,0x92,0x35,0xc6,0xf4,0xd1,0x90,0x2b,0x62,0xec,0x93,0x7b,0x05,0x90,0x75,0xb7,0xb6,0xd9,0x6c,0x30,0xdd,0x9b,0x2a,0x32,0xb1,0xba,0xab,0x1a,0x6c,0x2b,0xd8,0xfb,0x39,0x8e,0x80,0x98,0x6c,0xd0,0xb3,0xf3,0x76,0xe2,0xe6,0x5e,0xee,0xd0,0x29,0xd7,0x57,0x8f,0xc3,0x13,0xcb,0x45,0x90,0x3e,0xa2,0x54,0x88 +.byte 0xd5,0x50,0xd3,0x75,0xed,0x2d,0xa6,0x50,0x11,0x6b,0xb0,0xb6,0xf0,0x1d,0xc9,0x3d,0x1d,0x2a,0xda,0x5e,0x43,0x44,0xf4,0xef,0x3e,0xc7,0xa9,0xe0,0x6d,0x3c,0x38,0xbf,0x84,0x72,0xaf,0xea,0x60,0x15,0x03,0x14,0x77,0xb7,0xb3,0x15,0x4c,0xbc,0xbf,0x55,0x86,0x24,0x73,0x97,0x22,0x9d,0x59,0xa0,0x39,0x76,0x38,0xd1,0x1f,0x25,0xb0,0x64 +.byte 0xf3,0x10,0x67,0xf2,0x7c,0x11,0xf2,0xce,0xbe,0xaf,0x5e,0x2e,0xc5,0xc1,0x01,0xfa,0x80,0xf9,0x87,0xfc,0x5c,0xfd,0x66,0x50,0x01,0xc2,0x00,0x92,0x84,0x0f,0xdc,0xfc,0x10,0xa5,0x6e,0x45,0xf5,0xff,0x58,0x78,0x45,0x5e,0x50,0xbe,0xe3,0xc7,0x25,0x1e,0xdf,0x7f,0x68,0x6f,0xa5,0xb8,0xf8,0x69,0x89,0x5a,0x55,0x65,0xf4,0x96,0xe5,0x7a +.byte 0xa6,0x89,0x69,0x8d,0xdd,0x4f,0x24,0x5a,0x29,0x92,0x1e,0xca,0x74,0x65,0x7f,0xb8,0x32,0x75,0xb5,0x7b,0x15,0xea,0xeb,0xcc,0xf1,0x23,0x69,0xc7,0x58,0x1c,0x3a,0xaa,0x27,0x0a,0x11,0x79,0xcf,0xc9,0xb6,0xbd,0x9d,0x56,0x47,0x36,0x6b,0x7f,0x82,0xb5,0xa7,0x9f,0x79,0x72,0x16,0xba,0x50,0xef,0x37,0x68,0xdf,0xe0,0xd8,0x0c,0x16,0xcc +.byte 0x50,0x6c,0x25,0x63,0xc2,0xd6,0x7b,0xef,0xd9,0xa1,0xef,0x62,0x81,0x97,0x51,0x49,0x69,0xe3,0x13,0x6c,0x1a,0xd0,0x64,0x1b,0x3e,0x48,0x25,0x5b,0x34,0xe9,0xee,0x41,0x34,0xfb,0x8e,0x9d,0x3c,0xbc,0xc8,0xcf,0xe7,0xf8,0x72,0x21,0x0f,0x95,0xde,0x57,0xd7,0x2f,0x80,0x97,0xbd,0x8f,0x2c,0xde,0x19,0xa3,0xba,0x5c,0x92,0xa3,0x75,0x83 +.byte 0xe3,0xc9,0x33,0x3f,0x8f,0x09,0xfa,0x0b,0x60,0x0a,0x2f,0xb3,0x45,0x9d,0x8e,0x9d,0xa3,0x66,0x2d,0xda,0x37,0xe0,0x21,0x52,0x74,0x9d,0x59,0xa4,0x9e,0xea,0x15,0x22,0xb0,0xbf,0x3c,0xd4,0x59,0xef,0x27,0x60,0xf7,0xbf,0x5d,0x1d,0x36,0x9a,0xa5,0xfb,0x53,0x90,0x40,0x83,0x3a,0x20,0x3d,0x6b,0x47,0xbc,0xc3,0xe6,0x07,0xfe,0xd0,0x8e +.byte 0x40,0x42,0x65,0x2b,0x27,0xba,0x69,0x61,0x03,0x36,0x58,0x35,0x7e,0x82,0x53,0xb5,0xe2,0x25,0x31,0xc3,0x77,0xc1,0x91,0x13,0xa4,0x92,0x52,0xea,0x9f,0x43,0x44,0x6b,0x43,0xe9,0x11,0xd4,0x3d,0x53,0xba,0x6b,0x96,0xb5,0x96,0x29,0xa3,0x2a,0x0a,0xf2,0xb5,0x0c,0x5d,0x62,0x37,0xe0,0xd6,0xa2,0xbf,0xcd,0xf9,0x58,0x7f,0xa2,0xfd,0x54 +.byte 0x6a,0xa1,0x90,0xa5,0x61,0x9e,0xa6,0xc2,0xb9,0x80,0x7a,0xb8,0xaf,0x60,0x68,0xa7,0x27,0x77,0x41,0x03,0x4e,0xc1,0x96,0x46,0x23,0x1b,0xff,0xa1,0x37,0x28,0x33,0x27,0xc2,0x99,0xf7,0xcb,0x7f,0x1a,0xfb,0x41,0xc3,0x59,0x11,0xf8,0x39,0x50,0xbd,0x90,0x61,0x4a,0x67,0x4a,0x07,0x5f,0xb1,0x07,0x66,0x0b,0x52,0xad,0x90,0xc2,0xd7,0x4e +.byte 0x42,0x9e,0xcc,0x5c,0xeb,0xf2,0xdc,0xaa,0x52,0xcf,0x0e,0x7d,0xae,0x3e,0x1a,0x2c,0x9e,0x79,0xfb,0x29,0x10,0x29,0x61,0xa4,0x93,0x9d,0xa9,0xe9,0x71,0xc5,0xf7,0x07,0x13,0xe9,0xbd,0x2e,0x2d,0x0c,0xd6,0xaf,0x54,0x48,0x58,0xc2,0x91,0x37,0xf4,0x61,0x3a,0x96,0x81,0xdc,0x82,0x02,0xff,0xc9,0xf7,0xf7,0x9f,0x9f,0x28,0xd1,0xb1,0xe3 +.byte 0x2b,0x3d,0x85,0xef,0x15,0x82,0x3b,0x9a,0x17,0xee,0x7f,0xd3,0xa5,0x7c,0x41,0x27,0xc9,0x4c,0xe9,0x7a,0x30,0x9f,0xc5,0x34,0xaf,0xc8,0x1c,0x8a,0x7c,0xa6,0xf4,0xdc,0xa6,0xdb,0x68,0xc1,0xa1,0x13,0xb0,0x54,0x49,0x25,0x43,0xc0,0xd4,0x93,0xd6,0x70,0x53,0x3e,0x5f,0xd5,0x42,0x6e,0x78,0xb8,0x15,0x07,0x6a,0x91,0xe8,0xf1,0x2f,0xcf +.byte 0x07,0x84,0x25,0xb3,0x20,0xb9,0x35,0x25,0xbb,0x26,0x96,0x02,0x25,0xd5,0x83,0x23,0x71,0x6d,0x62,0xa7,0x99,0x73,0x63,0x2a,0x51,0x25,0x34,0x3d,0x51,0x95,0xc7,0x9b,0x01,0x0a,0xab,0x11,0xb2,0x32,0xcd,0xe3,0xef,0x63,0xa4,0x6d,0xdb,0x7b,0xf6,0x5f,0xc5,0xf3,0xe5,0x8c,0x6b,0x0a,0x04,0x33,0x53,0x0d,0xf6,0x13,0x8c,0xb8,0xc7,0xba +.byte 0xc2,0xf0,0xd4,0xa7,0x1a,0xce,0x7c,0x54,0x72,0x2b,0x89,0xf4,0x05,0x5c,0x30,0x42,0xe5,0x58,0x65,0x3a,0x2e,0xf9,0x40,0xab,0x2b,0xf9,0xc3,0x99,0x40,0x3c,0xb1,0x7b,0x2c,0xdc,0xfe,0x41,0x21,0x71,0x00,0x75,0xbd,0xea,0xf3,0x84,0x88,0x6b,0x9c,0xe2,0x80,0x2f,0xad,0x9f,0x9d,0x0a,0xdf,0xb5,0x38,0x61,0x89,0xfb,0x67,0x45,0x9c,0x39 +.byte 0xf9,0x84,0x54,0xc4,0xd6,0x6f,0x00,0x39,0x90,0x82,0xfa,0xce,0xae,0xe8,0xaf,0xa4,0x97,0x3a,0xfe,0x71,0xaf,0x5e,0x00,0xd1,0x9e,0x33,0x41,0x63,0xca,0xa5,0x5a,0x8b,0x09,0x2a,0x26,0xef,0x96,0xb7,0x5d,0xc4,0x92,0xfa,0x51,0xdb,0x1d,0x63,0x5f,0x7c,0x94,0x53,0x84,0xed,0xa3,0x99,0x07,0x9f,0xdc,0x55,0xb3,0x31,0x67,0x1a,0x63,0x05 +.byte 0xec,0x36,0x79,0x57,0xf8,0x39,0xc3,0xdd,0xd5,0x6a,0x21,0xfc,0x54,0xe6,0x28,0xc4,0xf1,0xd2,0xce,0x02,0x43,0x50,0x30,0x15,0x4d,0x3c,0xd0,0x1c,0xf6,0x7e,0xd0,0xa4,0x86,0xe7,0xf5,0xc2,0x06,0xc5,0xc4,0xa8,0xe2,0xd3,0xc7,0xcf,0xbd,0xab,0x9f,0xe3,0x42,0xc4,0xcd,0x65,0xfa,0xd3,0xcd,0xdf,0x55,0xc4,0xce,0x6e,0xe8,0xfc,0x96,0x0f +.byte 0xe2,0x92,0xca,0xde,0x37,0x7c,0xc9,0x80,0x4a,0x54,0xe9,0xfd,0x3c,0x4b,0x81,0xb8,0xd9,0x1a,0xf1,0x91,0x5d,0x9d,0xef,0x3e,0xd1,0x78,0xe2,0x1e,0x0e,0x09,0x62,0xdd,0xc6,0xb9,0xde,0x29,0xba,0xb0,0x62,0x49,0x53,0xb6,0x8d,0x9f,0xbf,0x4d,0x77,0xa4,0xd1,0x0b,0xf0,0x31,0x2e,0xe5,0x71,0x2e,0x18,0xa4,0xa7,0xcb,0xa6,0x30,0x24,0x11 +.byte 0x8d,0x16,0x21,0x71,0x6a,0x19,0xde,0x3c,0x5a,0x00,0xa6,0xe2,0x43,0x98,0xe8,0x83,0x10,0x76,0xef,0xca,0x67,0x61,0x80,0x98,0x48,0x06,0xa9,0xcd,0x13,0xa6,0x1e,0x5b,0x2b,0xef,0xb7,0x3a,0x24,0xf7,0x10,0x8d,0xc2,0xaa,0x9c,0x78,0x0d,0xd1,0x54,0xb1,0x4e,0x5a,0x21,0xc2,0xb4,0x11,0x15,0xdb,0xb3,0x9c,0xe4,0xf1,0xfc,0xa5,0x66,0x0c +.byte 0x56,0x34,0x05,0x14,0x88,0x2c,0xfc,0x3f,0x97,0x30,0xd5,0xd0,0xba,0xa3,0xf1,0x47,0xc0,0xf1,0x59,0x3c,0xda,0x1a,0xc1,0x90,0xae,0x4b,0x26,0xd3,0x5f,0xc9,0x8f,0x62,0x56,0x9c,0x64,0xec,0xda,0x63,0x37,0xa1,0xa2,0x87,0x74,0xcb,0xcc,0x27,0xcb,0x2a,0x97,0x57,0xa3,0xb9,0xac,0xe2,0xbd,0x97,0x93,0x21,0xb9,0x8b,0x82,0xa1,0xe7,0x76 +.byte 0xc1,0x49,0xd6,0xb2,0x52,0x7b,0xd6,0xbb,0x31,0x0f,0x87,0xc0,0xaa,0x91,0x70,0x19,0x76,0xa5,0xea,0xf0,0x87,0x47,0x50,0xc1,0xff,0xf7,0xa6,0x6c,0x65,0xff,0xdf,0x83,0x5c,0x54,0xf0,0xb1,0x18,0xe0,0x13,0x58,0x74,0xc0,0x67,0x0e,0xb8,0xdc,0x59,0x6c,0x19,0xf4,0xee,0x3a,0x07,0x63,0x68,0x1d,0x62,0x60,0xb5,0x71,0xce,0x21,0x61,0x8c +.byte 0xa5,0x74,0x9b,0x77,0x8e,0x15,0x20,0x18,0x19,0x96,0xf6,0xfa,0xd2,0x6c,0x03,0xcb,0xcb,0x8c,0x91,0x0d,0x29,0x91,0x70,0xc5,0x96,0x60,0x18,0xad,0x65,0x66,0x43,0xf9,0x13,0x97,0xe3,0xe3,0xcb,0xbf,0x68,0x0b,0xb2,0x87,0x9c,0xfa,0x96,0x48,0x14,0xef,0x6e,0xbd,0x45,0xb9,0x2f,0xbb,0x80,0x80,0xc5,0xf6,0x22,0x41,0x9a,0xec,0xdd,0x41 +.byte 0xfc,0xf3,0x0d,0x8e,0x2e,0x3c,0xda,0xef,0x2c,0xbd,0xbc,0x0e,0x88,0xd2,0x97,0x3d,0x40,0x37,0xa6,0xde,0x1d,0x00,0xeb,0x39,0xea,0x44,0xee,0x8a,0x2f,0x77,0xea,0xea,0x1d,0x90,0xd1,0xec,0xe4,0x31,0x0c,0xde,0x6f,0x55,0x17,0x5c,0x1e,0x19,0x91,0xac,0x36,0x00,0x26,0x17,0xa6,0xcd,0x8b,0xe2,0x72,0x6f,0x8f,0x3c,0xc6,0x76,0x6e,0x3d +.byte 0x4e,0x93,0xb3,0x8b,0xad,0x24,0x17,0x39,0xc0,0xfe,0xba,0x90,0xc5,0xbd,0x4b,0xe4,0xae,0xac,0xf6,0x55,0x72,0x3e,0xf0,0x12,0x32,0x5a,0xdd,0x8a,0x3f,0x67,0xb6,0xdf,0xf6,0x11,0x02,0xf5,0x84,0xcc,0x7d,0x36,0xe7,0x1b,0xf0,0x9a,0x52,0xbe,0xf3,0x06,0xd6,0xdb,0x02,0xd4,0x80,0x0b,0xcd,0xf0,0xfe,0xec,0x86,0x3f,0x89,0x34,0xcb,0x88 +.byte 0x34,0x28,0x57,0x00,0x33,0xeb,0x4f,0xfa,0xdb,0xd8,0x09,0xd9,0x56,0x53,0xc1,0x02,0xc0,0xa8,0x4c,0xdc,0xfd,0x26,0xb3,0x55,0x1d,0x47,0x0d,0x68,0x50,0xb8,0xa3,0xb4,0xf1,0x31,0xfa,0x16,0x33,0x94,0x40,0x95,0x53,0x9c,0x9f,0x5b,0x25,0x47,0xb1,0x27,0xbc,0x38,0x7d,0x23,0x01,0x7f,0x70,0x7a,0x61,0x0e,0x46,0x5c,0xcc,0xd7,0xcc,0x15 +.byte 0x15,0x0a,0xed,0x4c,0x99,0x66,0x3a,0xc3,0xc1,0x9a,0x7a,0x38,0x6a,0x0c,0xde,0x13,0x67,0x65,0xfc,0x06,0x99,0x7c,0xa5,0x90,0x8a,0x90,0x58,0xce,0xf3,0x23,0x76,0xfc,0x03,0xfb,0xb3,0x36,0x54,0xa9,0x33,0x35,0xfe,0xe3,0x3d,0x53,0x7e,0xe0,0xae,0xcf,0xc0,0xa2,0xe1,0x28,0xb9,0x97,0x96,0x87,0x90,0xa1,0x13,0xd0,0x1d,0x5b,0x43,0xf1 +.byte 0xa5,0xfa,0x81,0x83,0xe7,0x7b,0xa1,0x5f,0x9f,0xf5,0xd3,0xb6,0x80,0x8b,0x91,0xed,0x31,0x14,0x05,0x78,0x85,0x9d,0xea,0x59,0x69,0xa5,0x29,0xc5,0xf1,0xd7,0x9d,0xa3,0x8b,0x9d,0xe0,0x8d,0xc3,0x4e,0x2d,0xfa,0x1c,0x6c,0xd2,0xd7,0xcb,0xda,0x86,0x5d,0xb3,0x1a,0xb4,0x12,0xe3,0xa8,0xd7,0xe1,0x84,0xce,0x0e,0x06,0xd0,0x9e,0xf0,0xb1 +.byte 0x5b,0x2f,0x77,0x10,0x6f,0x41,0x2f,0x5b,0x48,0x43,0xf3,0xef,0xdb,0x09,0xdb,0x01,0x89,0xfc,0x7a,0x4a,0xc0,0x96,0x33,0xdf,0xbe,0x49,0x85,0xa7,0x88,0x93,0x05,0xf2,0x15,0x12,0x85,0x04,0x20,0x7d,0x8c,0xe2,0x0a,0xea,0xfe,0xed,0xbf,0x98,0xdb,0x9d,0x1f,0xaf,0x0f,0xbf,0xf7,0x12,0x4f,0x69,0x4e,0x87,0x09,0xf0,0xae,0x2a,0x4d,0x4c +.byte 0xbf,0xaa,0x08,0x2c,0x78,0x2d,0xbe,0xb9,0xf5,0x3c,0x4c,0xcd,0x75,0x93,0xc3,0x3c,0xc2,0x86,0x47,0xca,0xc1,0x9c,0x1c,0xe5,0x0d,0x8d,0x36,0x9c,0x44,0x40,0x89,0xfa,0x17,0x57,0x08,0xd4,0x22,0x9a,0x5b,0x94,0xbf,0x39,0xcd,0xbe,0xf7,0xd1,0xcd,0x35,0x74,0xdf,0xfa,0x5d,0x00,0xaa,0xaa,0x82,0x6d,0x9b,0xf8,0x69,0x51,0x9c,0xaa,0xaa +.byte 0xc8,0x2c,0xa2,0x68,0x57,0x3c,0x5f,0x10,0xa2,0x7b,0xee,0xc9,0x97,0x8d,0x5c,0x41,0x08,0x0d,0x30,0xd5,0x2b,0x5f,0x8d,0xdd,0xdc,0x2c,0xa8,0x52,0x6e,0xea,0x61,0x77,0xca,0x75,0xc3,0x56,0x6e,0x17,0x51,0x0e,0x00,0xb6,0x18,0xa0,0xe5,0x9d,0x49,0x4e,0x20,0x78,0x1e,0x5f,0x3e,0xec,0xc3,0x4a,0x41,0xf3,0xfe,0x89,0x64,0xac,0x4c,0x4d +.byte 0xa8,0x73,0x4f,0x31,0xc4,0xe2,0x62,0x69,0x2b,0x40,0xdf,0xef,0xed,0xf0,0x62,0x4e,0xc3,0x65,0xcc,0xcb,0xef,0xc1,0x28,0x61,0x71,0xac,0xa5,0x89,0x52,0x7b,0x32,0x59,0xc2,0x16,0x1a,0x63,0x18,0xb0,0xd8,0xe4,0x28,0x92,0xff,0x45,0xc1,0x24,0x56,0x86,0x66,0x23,0x7a,0xff,0xf7,0x33,0x30,0xdc,0xd1,0x7d,0xaf,0x68,0x10,0x4b,0xde,0x3e +.byte 0x4a,0x70,0xbe,0x31,0x1a,0x37,0x28,0xee,0xe0,0xba,0x65,0x8b,0x7d,0xea,0x07,0xce,0xf2,0x51,0x3d,0xcb,0xb2,0x33,0xd8,0xf3,0xa4,0xa0,0xcd,0x53,0x76,0xf9,0x46,0x5b,0x82,0xf9,0x9d,0x0e,0x29,0x5b,0xcf,0x76,0xd4,0x5c,0x47,0xf1,0x98,0x02,0x5a,0x16,0x18,0xf2,0x61,0x6d,0x3e,0x64,0x7f,0xbe,0x13,0x18,0xc2,0x45,0xd2,0x87,0x17,0xff +.byte 0xf1,0x01,0x0b,0x5d,0x21,0x0d,0x73,0x9a,0xeb,0x82,0xc4,0x9a,0xb3,0xe4,0x31,0x44,0x58,0xa2,0xfd,0x76,0xf6,0xbe,0x6f,0x75,0xcc,0xbb,0xe3,0xa2,0xa9,0x78,0x0f,0x4b,0x1d,0x47,0x2d,0x32,0x2c,0x45,0x5e,0xcd,0x8f,0x13,0xe2,0x9a,0x9d,0xa2,0xce,0x73,0x54,0x20,0xc0,0x44,0x1c,0x26,0xde,0x0d,0x72,0xb2,0xfa,0x4d,0x32,0x35,0xac,0x69 +.byte 0x4d,0x16,0x4a,0xd5,0x51,0x33,0xc1,0xe0,0x90,0x9c,0x93,0x66,0xed,0x16,0xac,0x7e,0x79,0x2b,0x0f,0xb4,0x42,0xaf,0x80,0x22,0x80,0x07,0x7d,0x72,0xe4,0xb3,0x3a,0x2c,0xb8,0x68,0x14,0x4d,0x31,0x5f,0xbb,0xac,0x43,0x3b,0x28,0xd6,0x81,0x81,0x26,0xe5,0xc4,0x67,0x7c,0x4a,0x42,0xc4,0x1a,0x59,0x04,0x2d,0xb8,0x26,0xfc,0x4e,0xc7,0xfc +.byte 0x11,0x61,0xe3,0x4b,0x2c,0x3f,0xdb,0x43,0xe4,0x24,0xb4,0xd1,0xc0,0xc0,0x01,0xe1,0xeb,0x84,0x0b,0x6d,0x93,0x83,0x07,0x9f,0x01,0xb8,0x9d,0xe5,0x7e,0x4d,0xa2,0x05,0x3e,0xf2,0x40,0x59,0x88,0xc8,0x8c,0x62,0x44,0x95,0x20,0x96,0x28,0xa9,0x3f,0x7c,0xed,0x85,0x03,0x65,0x49,0xf7,0x94,0x3d,0x51,0xe2,0x8e,0x21,0x19,0x7b,0x55,0x5f +.byte 0x55,0x70,0xf8,0xf0,0xce,0xd9,0x1a,0x10,0xbb,0xfe,0x65,0x72,0x8a,0x5b,0x6c,0x27,0xd3,0x57,0x61,0x07,0x7b,0x85,0xd6,0x21,0xd2,0x07,0x81,0xaa,0x17,0x73,0xb5,0xef,0x2d,0x84,0x7b,0x8f,0xe0,0xb3,0x9e,0x9f,0x31,0x82,0x33,0x07,0x14,0x84,0x79,0x18,0xc4,0xec,0x20,0xb5,0xec,0x21,0x4b,0x51,0x78,0x96,0xc6,0xe7,0xf0,0x6a,0x7a,0xb5 +.byte 0xe5,0xc2,0xef,0x24,0x4c,0x57,0xb6,0xf5,0xee,0xe5,0x69,0x2b,0x73,0x9e,0x66,0x91,0x9d,0xd4,0x24,0x58,0x4b,0x72,0x68,0xf6,0x62,0xb4,0x0c,0xe3,0xbd,0x1f,0x0b,0x42,0x6c,0xf9,0x6e,0x6a,0x64,0x64,0x69,0xa5,0x6d,0xe7,0x38,0x9f,0xb2,0x65,0x35,0x6b,0xd9,0x20,0x84,0xe4,0x5f,0x8b,0xfd,0x58,0xab,0x5f,0xe1,0x4c,0xf7,0xd7,0xf5,0xe7 +.byte 0xae,0xe8,0xc1,0x68,0xfe,0x0c,0xb1,0xe2,0xe4,0xca,0xf0,0xf1,0x20,0xbc,0xf9,0x99,0xef,0x4e,0x63,0xca,0x89,0xe4,0x7c,0x17,0x49,0x40,0x47,0xce,0x67,0x8e,0xbd,0xd0,0x96,0x8b,0x5a,0x0d,0x2f,0xd0,0x8f,0x4f,0x42,0x06,0x01,0x8e,0x47,0x35,0x13,0x9e,0xd1,0x24,0x85,0xe4,0x17,0x59,0xe8,0x1c,0xb3,0x25,0x53,0xf9,0xb4,0x96,0xb1,0x33 +.byte 0x97,0xb2,0x60,0xc7,0xb3,0x48,0xa2,0xfc,0x7f,0x86,0x94,0x2a,0xd3,0x94,0xfe,0x6d,0xa6,0x7a,0xa1,0xe1,0x96,0x5b,0xe8,0xe4,0x91,0xfb,0xf3,0x2c,0x84,0xb4,0x2f,0xbe,0xc9,0xdd,0x1c,0x9f,0x72,0x12,0xcb,0xbd,0x22,0x07,0xc4,0xec,0x05,0xe8,0x32,0x47,0x21,0x27,0xf6,0xc1,0x36,0x59,0x25,0x6c,0xbe,0xb9,0x3e,0xd4,0x1b,0x59,0x11,0x27 +.byte 0x6b,0xa3,0x64,0x71,0x98,0xeb,0x21,0x65,0xc0,0x4c,0x30,0xbd,0x51,0x2b,0xc3,0xfb,0xb1,0x33,0x56,0x1e,0xf0,0x92,0x0f,0x4b,0x63,0x3a,0x9c,0xfb,0xd1,0xac,0x8c,0xf0,0x3e,0xb7,0x0b,0xd2,0x52,0x62,0xd8,0x37,0x9a,0xef,0x79,0xdc,0xcb,0x87,0x1e,0x3d,0x9d,0x91,0x12,0xba,0x78,0x8a,0x11,0x57,0x96,0x44,0x8e,0x2b,0xd2,0xe3,0x4d,0x27 +.byte 0xec,0xba,0xef,0x1c,0x04,0x8d,0x56,0x56,0x11,0x74,0xc0,0xcc,0x1f,0x3d,0x7a,0xad,0x79,0x49,0x59,0xa3,0x71,0xe0,0xf5,0x89,0x89,0x8f,0xcf,0x1e,0x63,0x77,0x91,0x91,0xf1,0x0c,0x1c,0xcc,0x77,0x00,0xd7,0x28,0x9f,0x68,0xbc,0xb6,0x9d,0x33,0x43,0xb2,0x4a,0x72,0x3e,0x57,0x26,0xd0,0x00,0x93,0xc9,0x4c,0xc9,0x53,0x52,0xd9,0xe2,0x31 +.byte 0xc5,0x7f,0xf6,0xb6,0xc2,0x10,0x51,0x67,0xae,0x63,0x35,0x74,0xcc,0xd4,0x05,0xb3,0x08,0x23,0x35,0x37,0x8e,0xf1,0xbb,0x1d,0x56,0xff,0x62,0xa2,0x13,0x7b,0x01,0x75,0x6d,0xb3,0x92,0x51,0xdc,0x6e,0x08,0x76,0x25,0x52,0xbf,0x9a,0xea,0x89,0x0f,0x96,0xcc,0x79,0xd4,0x72,0xcf,0x65,0x79,0x4e,0x40,0xa3,0xae,0x67,0x0c,0x82,0x85,0x05 +.byte 0xfd,0x43,0x84,0x17,0x24,0x79,0xa9,0xa7,0x7f,0x24,0x76,0x57,0x66,0x11,0xd5,0x33,0x30,0x42,0x5b,0x5f,0x7c,0x04,0x4b,0x45,0xc3,0x69,0x20,0x02,0x92,0xe3,0x6a,0x06,0x8f,0xdf,0x30,0xf6,0x17,0x8f,0xc6,0x8c,0x5e,0x42,0xf3,0x59,0x7a,0x3a,0x55,0x3a,0xc1,0x96,0xd5,0x67,0x3d,0xab,0x32,0xee,0xf0,0x08,0x28,0x73,0xb0,0x11,0x1a,0x92 +.byte 0x4d,0xcc,0x0c,0x86,0xb2,0xa1,0xbf,0x9f,0xcd,0xc7,0x1c,0xbc,0xee,0x39,0x77,0x75,0xfc,0xe6,0x3b,0x62,0xf2,0xaf,0xd5,0xb6,0x77,0x2d,0x86,0x38,0x13,0x00,0xdb,0x71,0x4a,0x87,0x03,0x6d,0x99,0x28,0xf8,0x6a,0x23,0x2e,0xe2,0xb8,0x9c,0x18,0x02,0x00,0x9e,0x5b,0xf0,0x6f,0x9b,0x32,0xdc,0x6b,0x61,0xeb,0xeb,0xe9,0xfc,0xee,0x44,0xbc +.byte 0x4a,0x88,0x04,0xc0,0x10,0xc8,0x65,0x6c,0xa4,0xae,0x9a,0x36,0xb6,0x68,0xd5,0xbf,0x6d,0xe3,0x6f,0x5d,0xad,0xd6,0xf9,0xc8,0x06,0x36,0x25,0x64,0xc9,0x5b,0x71,0x7f,0xbf,0xe3,0x56,0x31,0x2a,0x93,0x47,0x46,0x39,0x91,0x80,0xc5,0xdd,0xdd,0xa1,0x25,0x85,0xd9,0x05,0x49,0x4f,0x1b,0xeb,0x2f,0x6e,0xd9,0xe4,0x65,0x3d,0xcd,0xbd,0x47 +.byte 0x37,0x27,0xb0,0xd1,0x9b,0xa4,0x89,0xd5,0xa0,0x0f,0x8b,0xc5,0xfd,0x91,0xa8,0x86,0x22,0x65,0xf1,0xe1,0x1e,0xb6,0xf7,0x50,0xe6,0x1e,0xf0,0x2b,0x9d,0x02,0xc9,0xe8,0x2a,0xb8,0x9b,0x89,0x28,0x25,0x43,0xcf,0x23,0x08,0xe2,0xa7,0x70,0x31,0x89,0xab,0x5b,0xd9,0x2e,0xa9,0xe4,0xe9,0x1d,0x63,0x7f,0xc6,0xc1,0xfb,0x63,0x45,0x9c,0xf1 +.byte 0xd4,0xc3,0x56,0xb6,0xad,0xb3,0x00,0xce,0x12,0x9e,0x63,0x33,0x25,0xd3,0xb2,0xee,0xa7,0x6b,0xa1,0xfd,0x20,0xa3,0xb2,0x07,0x1a,0x9d,0xed,0xe0,0x1d,0x70,0x5b,0x9f,0xc0,0xbc,0x83,0x09,0x94,0x47,0x8c,0x05,0xef,0x73,0x96,0x31,0xc7,0x35,0xc2,0x2c,0x00,0x2a,0x68,0xd1,0xc4,0xb3,0x3d,0x84,0x44,0x8c,0x93,0xfd,0x64,0x00,0x77,0x46 +.byte 0x18,0xac,0x83,0x9d,0xe5,0xe5,0x46,0x61,0x37,0x72,0x9f,0x0e,0x76,0x55,0xf7,0xca,0x36,0x57,0x24,0x16,0xfc,0x11,0x27,0xaa,0x44,0xa4,0xb0,0x58,0x41,0x46,0x94,0xc7,0x3b,0x9c,0xa3,0xe4,0x89,0xd9,0xdb,0x7b,0x64,0x69,0x84,0x9f,0xc8,0x09,0x6f,0xf7,0xf0,0x58,0x10,0x56,0x9f,0x26,0xf0,0x74,0x0c,0x76,0xcb,0x9d,0x45,0x3d,0xe7,0x94 +.byte 0x54,0xa3,0x84,0x08,0xb5,0x9c,0xff,0xdb,0xba,0x62,0x5e,0x87,0x0d,0x11,0x5d,0x96,0x06,0xd6,0xec,0xf4,0x3e,0x9d,0x66,0xbd,0xc4,0x64,0xed,0x03,0xe0,0xad,0x3f,0x4e,0xb4,0xef,0x16,0xdd,0xee,0xd6,0x00,0x27,0x62,0x74,0x0a,0xe0,0x68,0x72,0x4c,0x6d,0x62,0x15,0x87,0x6a,0xf0,0x25,0x9f,0x33,0x1d,0x92,0x3b,0xa3,0xa4,0xf1,0x81,0xdf +.byte 0xa8,0xed,0xaf,0xa5,0x8d,0x19,0x20,0x72,0x03,0x91,0xf0,0x34,0x60,0x70,0xbe,0xaa,0xdf,0xaa,0x24,0x1a,0x1f,0x1a,0x8d,0xb0,0x7b,0xef,0x10,0x43,0x69,0x24,0x74,0xf2,0x72,0x71,0xa1,0x8f,0x85,0x75,0x3e,0x8c,0xf6,0x0e,0x88,0xe2,0x1d,0x5c,0xb8,0xf1,0xc4,0x8a,0x21,0x76,0x20,0x50,0x3f,0xb3,0x8b,0x9f,0xa4,0x45,0x9e,0x07,0x60,0x22 +.byte 0x2c,0xa6,0xb1,0xc2,0xd2,0xcb,0xc6,0xd8,0xe9,0x94,0x66,0xfb,0x10,0x73,0x92,0x25,0x7e,0x31,0x42,0xf4,0x4a,0x75,0xac,0x78,0x43,0xcb,0xc0,0xc9,0xb0,0xaf,0xb4,0x22,0x8f,0x51,0x36,0x0f,0x5a,0xb8,0xbb,0x44,0x03,0x09,0xd0,0xf9,0x04,0xc8,0x73,0x8e,0xa1,0x76,0x27,0xde,0x72,0xf4,0x3a,0x79,0x63,0x85,0x32,0x09,0xad,0x12,0xe4,0xd7 +.byte 0x8f,0x8e,0x24,0x03,0x4f,0xde,0x39,0xac,0x81,0xe8,0x64,0x09,0x17,0xd7,0x99,0xe6,0x62,0xb7,0x53,0x20,0x9f,0xb9,0x3a,0xb9,0xb1,0x81,0xfa,0x6e,0x33,0xe7,0x4a,0xca,0xd7,0xa7,0xfa,0x7a,0xbf,0x0b,0x0a,0x99,0x3c,0xc7,0xbd,0xef,0xc7,0x90,0xda,0x62,0x30,0xc6,0x94,0x94,0x6b,0xee,0xbd,0xb7,0x0d,0x86,0xc5,0xb1,0x9a,0xb9,0x86,0x34 +.byte 0xc2,0x81,0x2b,0x09,0x7a,0x88,0x09,0x65,0xcf,0x51,0x78,0x19,0x1d,0x5a,0x62,0x2f,0xb3,0x43,0x8d,0xf5,0x9d,0x26,0x2f,0x4a,0x27,0x96,0x22,0x1b,0x4c,0xc8,0xd9,0x73,0x4b,0x32,0x01,0x11,0x7b,0x59,0x85,0xda,0x50,0x92,0x17,0x45,0xd4,0x1f,0xcf,0x98,0xf6,0x2c,0x69,0xba,0x43,0x22,0xdc,0x36,0x31,0xfb,0x1e,0xe8,0x54,0x24,0x0f,0x24 +.byte 0x4c,0xcd,0xbe,0xdb,0xd8,0x23,0x69,0xe2,0x97,0xf5,0x66,0xb2,0x66,0x6c,0xf2,0x90,0xd0,0x15,0x14,0x9a,0x47,0x65,0x97,0xb0,0xf2,0x3e,0x35,0x09,0xd2,0x3d,0x01,0x9c,0xb3,0xfd,0xf3,0x32,0x46,0x4e,0x11,0xab,0x88,0x9e,0x04,0x6d,0xf0,0xe1,0x9d,0x48,0x01,0x24,0xc3,0x87,0xdf,0x58,0xb6,0x6d,0x6d,0x4f,0xb9,0x1b,0x13,0xee,0x03,0x5b +.byte 0x75,0x39,0x28,0x31,0x90,0x70,0x49,0x10,0x71,0x87,0x76,0x30,0xac,0x88,0xb0,0xf6,0x6c,0xaf,0x5b,0xf4,0xf3,0xe7,0x25,0x75,0x8c,0xa3,0xf4,0xa7,0xd8,0x94,0x78,0xc8,0x77,0xc1,0x48,0x6c,0x62,0xf6,0x2c,0xb5,0x41,0x59,0xf6,0xd3,0xae,0x1b,0x55,0xed,0xdf,0xd1,0x59,0x63,0x76,0x03,0x65,0xd3,0xd0,0xcd,0xb6,0x5b,0x8f,0x1a,0x78,0x88 +.byte 0x78,0x07,0x14,0x3f,0xc3,0xd4,0x1c,0x69,0xd8,0x15,0x25,0xca,0x76,0x15,0x24,0x7d,0xed,0x69,0x2a,0xb5,0x04,0xd2,0x3b,0xbd,0x7a,0xb2,0xae,0x04,0x51,0x85,0x2b,0x1b,0xb0,0x3f,0x6d,0xbc,0xa0,0xc7,0x19,0x40,0xab,0x75,0x51,0x4b,0xa8,0x5a,0xd7,0xb5,0xc7,0xa8,0xfc,0x4a,0xcf,0xa9,0x9c,0xe6,0x2e,0x35,0x51,0x3b,0x05,0x41,0x43,0x7c +.byte 0x1f,0x2e,0x16,0x5d,0x2f,0xa8,0xe9,0xce,0x6d,0x06,0xa7,0x5a,0xed,0x07,0x39,0xe4,0x7e,0xc3,0x01,0x2d,0x97,0xe4,0xc1,0x89,0x2c,0xb4,0xb1,0xb5,0x7f,0x0a,0xe2,0x9f,0x82,0x36,0xee,0x9b,0x76,0xbc,0x9d,0x37,0xdf,0x5e,0x81,0x95,0x9b,0x2b,0xc4,0x58,0x20,0x6a,0xd2,0xc7,0xb6,0x82,0xe6,0xa2,0x52,0x73,0x4a,0xaf,0x37,0x5a,0xf6,0x6b +.byte 0xc4,0x2b,0x53,0x4e,0xca,0x44,0x17,0x9f,0x1c,0xeb,0x4d,0xf2,0xd1,0xb0,0x35,0xaa,0xc3,0xfe,0x77,0x34,0x2a,0x4a,0xe8,0x85,0x96,0x2f,0xa4,0x7d,0xdf,0xd0,0x6a,0x4a,0x0c,0x9b,0xd9,0x6a,0x00,0x92,0xb4,0xb1,0x9f,0xc3,0x56,0xee,0xcb,0xa5,0x3a,0x37,0x68,0xc8,0x7c,0x1e,0xa8,0x0a,0x3d,0xbc,0xd1,0xd0,0xd7,0x8b,0x32,0x34,0x20,0xfc +.byte 0xd3,0x9e,0xf5,0x18,0x3a,0xb9,0x87,0xae,0xde,0x6c,0xc0,0x7d,0xbd,0x20,0x00,0xe5,0x7b,0xcb,0xf9,0x7d,0x70,0x9a,0x10,0x45,0xc9,0x33,0x13,0x9d,0x2c,0x16,0x67,0xe6,0x36,0x38,0xcf,0xa2,0xf1,0xad,0xec,0x48,0x7f,0x9b,0x2a,0xdc,0x13,0xe2,0xee,0xef,0xf2,0x5c,0x3f,0x52,0x3a,0x72,0x79,0x9b,0xba,0x50,0xb2,0x2b,0xfb,0x97,0x8e,0xe6 +.byte 0x27,0x39,0x63,0x72,0x05,0x11,0x7d,0x2e,0xa8,0x44,0x08,0xf7,0xf3,0x26,0xe5,0xe4,0x6c,0x98,0x7b,0xb1,0x42,0x6d,0x74,0xd4,0x3b,0xfa,0x35,0xfa,0x0a,0xac,0x5e,0x9e,0x8f,0xc7,0x07,0xc5,0x50,0x25,0xfd,0xbf,0x13,0x52,0x3d,0xf1,0x18,0x1e,0x19,0x8c,0xf3,0x8b,0x4d,0xc8,0xfb,0x76,0xa4,0xe3,0x3f,0xb2,0x47,0x9c,0x50,0x97,0x32,0x65 +.byte 0x9e,0x42,0x81,0x21,0xd1,0x92,0xd2,0x81,0x4a,0x93,0x68,0xa2,0xc1,0x76,0xc8,0x40,0xce,0xfe,0x4e,0xc5,0xa7,0xb2,0x77,0x9f,0xc8,0xe5,0x41,0xb1,0xda,0x15,0xf6,0xfa,0x21,0x3f,0x11,0x5c,0xc6,0x62,0xda,0x01,0x7f,0x0f,0x9f,0x9e,0x98,0xfe,0x38,0x53,0x6c,0x7f,0xba,0x8b,0x55,0x01,0x36,0x33,0x41,0x5e,0xa9,0x78,0xbf,0x2e,0x60,0x4f +.byte 0xcb,0xe9,0x27,0x09,0x8c,0x01,0x2d,0x82,0x7d,0x3f,0xaf,0x8f,0x1e,0x37,0x79,0x35,0xfb,0xce,0x83,0xc5,0xf8,0xc5,0x54,0xfd,0x50,0xec,0x31,0xd1,0xb5,0x8a,0x4d,0x37,0xf6,0x7f,0x0e,0xbe,0x35,0xdd,0xa8,0x9e,0x5e,0xb9,0x3c,0xf4,0x2b,0xd2,0x97,0x56,0xd0,0x28,0xcb,0x60,0x27,0xcf,0x27,0x68,0x8a,0xa1,0xbf,0x9f,0xa3,0x45,0x4a,0x44 +.byte 0x71,0xe2,0xb2,0x9c,0x69,0x0b,0x18,0x69,0xcf,0x03,0xcc,0xc3,0x93,0xe0,0xf5,0xb7,0x4e,0xa4,0xdc,0x96,0xe0,0x2e,0xf8,0x3b,0xc6,0x67,0x30,0x06,0x5e,0xb9,0xb9,0x7d,0xaf,0x97,0x38,0x9a,0xf4,0x22,0x20,0x5a,0x9e,0x83,0x26,0x3c,0xcc,0x93,0x84,0x20,0x15,0x2e,0x85,0x23,0x17,0x1d,0x28,0xb4,0xe2,0x8f,0x2d,0x22,0x99,0x66,0xfd,0x6a +.byte 0xa8,0xe6,0xb7,0x19,0x18,0xec,0xbd,0x54,0xc2,0xcc,0xb7,0xb4,0x6b,0x10,0xdd,0xb5,0xe3,0x3b,0xb7,0x77,0xbf,0x66,0x65,0x82,0x6a,0xc6,0x0d,0x26,0xe6,0xe8,0xe1,0x96,0xe4,0x0b,0x3c,0xe3,0xf2,0xfb,0xd6,0x91,0x5d,0xb6,0x08,0x15,0x67,0x10,0xfa,0xf8,0xdc,0x72,0x84,0xca,0x48,0x29,0x75,0x98,0x62,0x30,0x43,0xa9,0xf1,0xde,0x58,0xb5 +.byte 0x6e,0x67,0x53,0x62,0x0d,0x06,0xa8,0x97,0x35,0x04,0x02,0x34,0x3f,0xd7,0x77,0x38,0xed,0x51,0x32,0x7c,0x6f,0x25,0x94,0x04,0x30,0xa5,0xfc,0xf1,0xb0,0x65,0x77,0x16,0xec,0xb0,0xf9,0x6d,0xaf,0xbc,0x75,0x6e,0x29,0x44,0x20,0x86,0x36,0xbe,0x22,0xe0,0xe1,0xc4,0x0c,0x97,0x10,0x45,0x3e,0x06,0xc3,0xee,0xa5,0x1f,0x97,0xc7,0xde,0xdb +.byte 0xf1,0x05,0xe3,0xb7,0x24,0xc5,0xa5,0xca,0x4e,0x8e,0x9e,0x44,0x7e,0x98,0xb1,0x3c,0xe9,0xa6,0xe5,0xa6,0x08,0xcb,0x08,0xd7,0xf6,0x38,0x37,0xa4,0x46,0xd1,0xdc,0x53,0x6f,0x6c,0x3f,0xca,0xa1,0x9b,0x7c,0xa6,0x44,0xd4,0x08,0x33,0xd2,0xf8,0x32,0xd2,0x4f,0x60,0x75,0x0f,0x49,0xf1,0x70,0x52,0x56,0x16,0x5b,0x3e,0x34,0x0e,0xe4,0x94 +.byte 0xc3,0xa9,0xd4,0x1c,0x9e,0xa4,0x10,0xce,0xc1,0x69,0x5b,0x3a,0xc9,0xd5,0xab,0x98,0x81,0x78,0x42,0x7e,0xf2,0x76,0x10,0xad,0x97,0x85,0x98,0x2f,0xe2,0x3f,0xb1,0x1d,0xc0,0x4d,0xa4,0x0b,0x54,0x7e,0x19,0x16,0x0a,0x71,0x74,0x37,0xfd,0x67,0x23,0x86,0xb2,0x3b,0x1e,0x49,0x92,0x92,0x1b,0x5f,0x65,0x56,0x76,0x6d,0x97,0x3b,0x91,0xc0 +.byte 0x5a,0x7e,0xf1,0x5b,0xe9,0x83,0xb9,0x67,0x2f,0xe1,0x0c,0xcf,0xe9,0x51,0x26,0x45,0x03,0x06,0x63,0xa4,0xb2,0x06,0xe0,0x8e,0xa3,0xbf,0xf5,0x7c,0x19,0xdf,0xfe,0x38,0x28,0x98,0xa1,0x23,0x16,0x69,0xc4,0x9f,0x20,0xe4,0x42,0x27,0x4e,0x7b,0xc9,0x42,0x5e,0xd2,0xb9,0xbf,0x33,0x03,0xbb,0x96,0x6d,0x80,0x65,0x90,0x3b,0x82,0x5b,0x68 +.byte 0x46,0x4f,0xe3,0xe0,0x0e,0xc5,0x90,0x91,0x80,0xf8,0xf4,0x9c,0xfe,0x03,0xaf,0x31,0x44,0xb7,0xfc,0x1f,0x65,0xc8,0x65,0x68,0xcc,0x27,0xb4,0x0d,0x81,0x14,0x9e,0x52,0xab,0xdd,0x71,0xf6,0xd9,0xcf,0x29,0x04,0xcd,0xae,0x6f,0xd6,0x41,0xb5,0xfd,0x1d,0x0f,0xbf,0x71,0xc2,0x60,0x98,0xb9,0xc0,0x6e,0x8a,0x2c,0x7d,0xec,0x31,0xa5,0xea +.byte 0x1a,0xb1,0xe4,0xc2,0x36,0xcb,0xf0,0xf4,0x3f,0x1d,0x03,0x01,0xcd,0xac,0xd0,0x9d,0x2e,0xa3,0xc4,0x54,0x49,0x75,0x90,0xac,0x7e,0x1e,0xc3,0x90,0xab,0x55,0xb0,0x34,0x0d,0xd6,0x99,0xb5,0x40,0xda,0xdd,0x30,0x57,0x61,0x15,0xec,0x8f,0x8c,0xc7,0xda,0xfc,0xf5,0x0a,0x86,0xd8,0x6b,0x0f,0x6e,0x09,0xb8,0x50,0x2a,0xea,0x51,0x84,0x33 +.byte 0x7a,0x97,0x0c,0x56,0x61,0x2c,0xd9,0x83,0xb9,0xb1,0x53,0x31,0x72,0x20,0x79,0x85,0x7f,0xdc,0xb8,0xfe,0xfa,0x9a,0xd4,0x6a,0x3c,0xc7,0xcc,0x75,0x20,0xba,0x9c,0xb9,0x1a,0xff,0x9c,0xbe,0xfd,0x87,0xb4,0xd7,0xe8,0x5e,0x22,0x6a,0x1b,0x91,0x52,0x6a,0x58,0xbc,0xf4,0xde,0xcc,0x18,0x37,0x0e,0xf5,0x22,0x91,0xd2,0x4f,0x08,0x91,0x62 +.byte 0x1c,0xb7,0xa0,0x7e,0x66,0x97,0xda,0xa0,0x3c,0xc8,0xe8,0xdc,0x61,0xa4,0x64,0x8b,0x0a,0x43,0x90,0x0c,0x78,0xd9,0x96,0x8a,0xb0,0x17,0x0f,0x32,0x17,0x11,0x82,0x69,0x9d,0x7c,0xa9,0xfd,0x9b,0xe3,0xeb,0x0d,0x44,0x1d,0xcb,0xf6,0xee,0x26,0x6b,0xd5,0x4c,0x49,0x69,0x18,0xd7,0xf3,0x63,0xd9,0x7e,0x83,0xdd,0xa3,0x2d,0xdf,0x88,0x10 +.byte 0xd1,0x5c,0xb0,0x7e,0x44,0xfe,0x64,0x39,0x33,0x05,0x04,0x54,0x74,0x4d,0xd5,0xbc,0xdf,0x19,0x52,0x81,0x60,0x92,0xc5,0x4e,0xa4,0xff,0xf0,0xa2,0xfd,0x88,0x96,0xde,0xb4,0x8d,0x58,0x06,0xfb,0x96,0x6f,0x0e,0xb0,0x4a,0x2b,0xed,0x15,0xa7,0xfb,0x9f,0xf2,0x30,0xc4,0xce,0x02,0x4d,0x83,0xb8,0x5d,0x10,0x60,0xb8,0xbc,0x05,0xa2,0xd4 +.byte 0xf1,0xae,0x46,0x56,0xb9,0xac,0x68,0x79,0x41,0x90,0xee,0x79,0xda,0x3a,0x91,0x7a,0xf6,0xdb,0xe3,0xea,0x91,0x48,0x77,0x4a,0xa3,0xab,0x9c,0x99,0x49,0x1f,0xc9,0xcd,0xe7,0x2e,0xe3,0xe7,0x78,0x6d,0x07,0x1b,0xc6,0x08,0x48,0xd8,0x20,0xff,0x19,0x8a,0x73,0x1d,0xc6,0xa1,0xd4,0x95,0x33,0xf7,0x45,0xab,0xea,0x05,0x3e,0xdf,0xde,0x68 +.byte 0xb2,0xb6,0xef,0x71,0xb4,0xd1,0x09,0x4b,0x43,0x16,0x35,0x1a,0xb6,0xcb,0x78,0x63,0xca,0x9e,0x9a,0xe3,0x86,0xb2,0x8e,0x7b,0x68,0x89,0xa7,0x5c,0xd3,0x06,0x21,0x88,0x94,0xde,0xa1,0xb1,0x3a,0xe8,0xb7,0xfa,0x58,0xc5,0xc8,0x01,0xfa,0x56,0xe4,0x0e,0x6b,0xeb,0x5d,0x67,0xf4,0x63,0xd4,0x44,0xe2,0xe7,0x42,0xfe,0x09,0x58,0xdf,0xd9 +.byte 0x1d,0xb7,0x14,0x91,0xac,0x88,0x49,0xf6,0x7c,0x03,0x92,0x11,0xb4,0x66,0x68,0x6c,0x94,0x2a,0x22,0xaf,0xa6,0xb1,0x29,0x2a,0xae,0xdd,0xa8,0x65,0xe4,0xa9,0x39,0x00,0x1e,0xca,0x17,0x99,0xba,0xd6,0xf2,0x20,0x21,0xbf,0x1a,0xab,0xca,0x7c,0x92,0x22,0xee,0x3c,0x0c,0xc6,0x63,0xcc,0x86,0xfe,0xc0,0x8f,0xac,0x18,0x4e,0x2b,0xa5,0x2e +.byte 0x46,0x57,0x8a,0xbf,0xdc,0xd1,0xd2,0x2c,0x5b,0xe2,0x96,0x81,0xca,0x41,0xb5,0x17,0x38,0x4a,0xa4,0xd2,0x0e,0xac,0x5d,0xe9,0x44,0x63,0x1b,0xb8,0x81,0xd6,0x69,0x1c,0x99,0xc5,0xdb,0xdd,0x18,0xc1,0x6d,0x28,0x7d,0x36,0x52,0x82,0xaa,0x1a,0x10,0x01,0x9d,0xf1,0x7b,0x09,0x69,0x56,0xb1,0x31,0xa3,0x54,0x3c,0x56,0xf9,0x82,0x8c,0x06 +.byte 0x5a,0x32,0x2d,0xc0,0x7c,0x7e,0x91,0x6d,0x73,0x7b,0x7c,0x45,0x0b,0x2c,0x2a,0x4f,0x3c,0xea,0x6b,0x2b,0x84,0x76,0xab,0x8d,0x4c,0x5c,0x64,0xa3,0x97,0x9f,0x56,0x20,0x05,0xf9,0xc2,0x20,0xf3,0xd0,0x6a,0x7f,0x7d,0x12,0xfc,0x20,0x52,0x5d,0xff,0x92,0xaf,0x4e,0x7f,0x8f,0x2f,0xd0,0x73,0x06,0x23,0x09,0xce,0x11,0xc0,0x1b,0x48,0x7d +.byte 0x11,0x51,0x06,0x0e,0x05,0x95,0xca,0x42,0x71,0x87,0xa3,0xa3,0xc1,0x27,0xf8,0xb1,0x24,0x92,0x38,0x95,0xf6,0x8f,0x3b,0x70,0x74,0x19,0x9b,0x08,0xb3,0x49,0xe9,0x57,0xd4,0xce,0x5b,0xdd,0xab,0x95,0x26,0xe9,0x70,0x21,0xef,0x16,0xdd,0x36,0x89,0xe5,0x9e,0xaf,0xc5,0x28,0x0c,0xd3,0x67,0x64,0xbc,0xfb,0x18,0x17,0x15,0x1e,0xa7,0xb7 +.byte 0x72,0x3d,0xfd,0x10,0x5c,0xa2,0xc1,0xbf,0x62,0x79,0x2b,0xa7,0xb9,0x1f,0x73,0xe6,0x11,0xd8,0xbc,0x74,0x6c,0x45,0x95,0xef,0xa2,0xda,0x90,0xc3,0x00,0x00,0xbb,0xc7,0x28,0x36,0x82,0xd4,0x5e,0x5c,0x11,0xea,0x7c,0xf6,0x79,0x66,0xff,0x93,0x77,0x49,0x05,0xc9,0xc1,0x8d,0x5c,0xf6,0xff,0xb9,0xf9,0xcd,0xb3,0x01,0x83,0x83,0x43,0x2d +.byte 0xa1,0x90,0x73,0xc9,0x32,0xae,0xdb,0xd0,0xf3,0x61,0x63,0x72,0x06,0xde,0x21,0x7b,0x3b,0x2d,0xec,0xd3,0x1d,0xfe,0xbd,0x6e,0xd8,0xe3,0x39,0xe0,0xa1,0x9f,0x67,0xaf,0xab,0x79,0xbc,0x59,0xf9,0xa7,0xdf,0x28,0x75,0xea,0x34,0x6b,0x25,0xde,0x49,0x1b,0x07,0x95,0x19,0x47,0x86,0x46,0x7b,0x68,0x30,0x70,0xec,0x9c,0x05,0xb6,0xc9,0x00 +.byte 0x68,0x10,0x4b,0xc4,0xe5,0xf1,0x67,0x3f,0xd4,0x3c,0xd6,0x49,0x98,0x71,0x23,0xff,0x07,0x6e,0x01,0x01,0x08,0x08,0x3d,0x8a,0xa1,0x71,0xdf,0x25,0x1a,0xef,0x60,0x86,0x6d,0x1c,0xd9,0x90,0x29,0x95,0xf2,0x4c,0x96,0xd3,0x17,0xe8,0x96,0x32,0x25,0x8c,0x65,0x38,0xbc,0x44,0x6a,0x5a,0xef,0x5a,0x72,0x12,0x43,0x2b,0xaf,0xc3,0xdc,0xb3 +.byte 0x6c,0x9f,0x57,0x61,0x2f,0x12,0x3f,0x72,0x16,0x4f,0x34,0xe3,0xb5,0xca,0x72,0xca,0x1c,0xdb,0xd2,0x8d,0x70,0x1f,0x19,0x75,0xb3,0x1b,0xdf,0xdb,0xb3,0xbf,0x6c,0x9a,0x70,0x64,0xa8,0xac,0x30,0x2d,0x4b,0x30,0xf5,0x4f,0x12,0x19,0xbd,0x65,0x25,0x70,0x33,0xe1,0x6f,0x18,0xdf,0x17,0xec,0xa3,0x80,0x51,0x6e,0xbb,0x33,0xa5,0xa8,0x58 +.byte 0x95,0x3c,0xab,0x86,0xd1,0x33,0xbe,0x55,0x04,0x8c,0x20,0x0d,0xfc,0x1a,0xa9,0x9d,0xb1,0x16,0x42,0x56,0x20,0xcc,0xa6,0x73,0xa0,0x85,0x3d,0xbf,0x1e,0xe0,0x01,0x51,0xd2,0xd7,0x2e,0x9d,0xd8,0x3c,0xea,0x03,0xf9,0x9a,0xbf,0x19,0x17,0x04,0x99,0xaf,0x8b,0xfc,0x9c,0x86,0xdf,0x58,0x78,0xfc,0x54,0x0d,0xac,0x26,0x27,0x2f,0x2e,0xbc +.byte 0xdd,0x4a,0xd5,0x6f,0x7c,0xd8,0x93,0xe3,0x51,0x9e,0xcc,0xc8,0xd2,0xfe,0x68,0xfb,0x5b,0x22,0xda,0xef,0x76,0xb9,0xc3,0xdd,0x13,0x52,0x24,0xb6,0x23,0x1f,0x69,0x22,0xb6,0xf5,0x86,0xff,0x2e,0x6e,0xd0,0xe0,0x21,0xbc,0x31,0x81,0xb5,0xc5,0xdb,0x36,0x58,0x44,0xe7,0xb8,0xf7,0xfd,0xd3,0x34,0xee,0xab,0xe6,0x99,0xf2,0x84,0x86,0x9b +.byte 0x67,0x45,0x08,0x07,0x66,0xae,0x6a,0x55,0xa2,0x74,0x46,0xda,0x02,0x82,0x67,0x93,0x60,0x64,0x5d,0x1f,0xac,0xe7,0x36,0xb6,0xcd,0x31,0x28,0x78,0x93,0xcd,0x54,0xe9,0x42,0xbb,0xb4,0xb3,0x15,0x72,0x12,0x31,0x85,0x15,0x68,0x3a,0x31,0x35,0xd6,0xc9,0x0d,0x3f,0xa0,0x4b,0x36,0x03,0xda,0xfd,0x7a,0xd6,0xce,0x0c,0xf5,0x14,0x23,0x71 +.byte 0x47,0x85,0x64,0xe7,0xe7,0x8b,0x8e,0x25,0x03,0x32,0x5f,0xa9,0x3b,0xdb,0x2b,0x27,0x7c,0x02,0xfb,0x79,0xd7,0x7a,0x76,0x75,0x69,0xfd,0x74,0x24,0xd2,0x72,0x8c,0xdd,0xc5,0xa1,0x45,0x90,0x50,0x65,0x95,0x41,0xae,0x7e,0x5c,0x83,0x3e,0x24,0x3c,0x02,0xa9,0x37,0x49,0x36,0x63,0x2f,0x18,0x92,0x3a,0x8a,0xe5,0x2a,0x6a,0x5c,0xa7,0x3e +.byte 0x98,0x24,0xfd,0xd9,0x3b,0x2d,0x4c,0xe2,0x8e,0x05,0x5b,0xdd,0x47,0x0f,0x19,0x5a,0x62,0x94,0xd6,0x6e,0x45,0xd8,0x99,0x43,0x78,0xa0,0xb1,0xdf,0x68,0x8a,0x56,0xa8,0xfb,0x2e,0x52,0x4e,0xfa,0x21,0xec,0x62,0x14,0xf5,0x90,0xdb,0x8c,0x02,0xa7,0xff,0x29,0x22,0xb8,0x40,0x87,0x58,0xda,0x4e,0xfd,0xab,0xeb,0xa2,0x40,0xce,0xfc,0x58 +.byte 0x46,0x37,0x3f,0x04,0x4e,0x36,0x76,0x44,0x3c,0xfc,0x54,0xb8,0x6f,0x4b,0x66,0x6a,0x4a,0x78,0x8f,0x33,0x86,0x07,0xe4,0x3c,0xb5,0x0f,0x86,0x2e,0x21,0x7e,0x44,0xce,0x18,0x77,0xe0,0xcc,0xd7,0x7f,0xc9,0xac,0xb7,0x2b,0x94,0xb5,0x91,0xcd,0x2c,0xfa,0xc7,0x98,0xbd,0xb0,0x2a,0x85,0x77,0xcf,0x82,0xd9,0xae,0x76,0x33,0x34,0xc0,0x9d +.byte 0x3a,0xbc,0x27,0xbc,0x97,0x25,0xf4,0xf1,0x43,0x53,0xac,0xf6,0xde,0xf5,0x1f,0xa6,0x6a,0xd5,0xe3,0x11,0x32,0x49,0x46,0x5b,0x56,0x68,0x07,0xdb,0x03,0xad,0xc2,0x35,0x16,0x8f,0x01,0xcc,0x8a,0xd2,0x0c,0x6b,0xb2,0x62,0x73,0x99,0xb5,0x74,0xf1,0x4b,0x2e,0xbc,0x8e,0xed,0xc0,0x55,0x56,0x40,0xae,0x24,0xf2,0x7e,0x1f,0xba,0x9d,0xc4 +.byte 0xd1,0x69,0xd3,0xba,0x21,0x83,0xf5,0xc4,0xbf,0x78,0x96,0x74,0xa1,0xd8,0x8c,0x35,0xba,0x9f,0xa0,0x0f,0xb5,0x6a,0xb2,0x72,0x52,0xfa,0x02,0x71,0xbb,0x79,0x61,0xbd,0xa9,0xee,0x22,0x7c,0xc5,0xac,0x6b,0x52,0x67,0xab,0xc4,0xd2,0x8d,0x26,0x1c,0x2b,0xaf,0x0c,0xa4,0xce,0xb5,0x11,0x99,0x4d,0x22,0x69,0x68,0xe0,0xc6,0x3e,0x84,0x3d +.byte 0xeb,0xad,0xc9,0x5b,0xb5,0xb4,0xba,0x06,0x9b,0x0a,0xb2,0x54,0x89,0xf2,0xb0,0x5f,0x41,0xb4,0x8b,0x21,0x31,0x29,0x94,0x52,0x1e,0xa7,0xc4,0xc2,0x97,0xb9,0x74,0x95,0xa3,0x30,0xfb,0x02,0x77,0x01,0x4f,0x32,0x03,0x34,0x8f,0x51,0x2d,0x10,0x61,0xee,0xc5,0x2f,0x89,0x42,0x3c,0xbe,0xed,0x66,0xa6,0x7a,0x10,0xc6,0x06,0x7e,0xb2,0x3d +.byte 0xf2,0xc9,0xd1,0x08,0x97,0x6c,0x6f,0x6d,0x06,0x9d,0x72,0xd0,0x5e,0x79,0x3b,0xa5,0xa5,0xd0,0xdc,0xc6,0xda,0x73,0xd2,0xf3,0x0a,0xfd,0x94,0xc2,0x9c,0x4b,0x85,0x38,0x8d,0xb2,0xfb,0x29,0xdd,0x90,0xc2,0xb7,0x8f,0x2c,0x52,0xa2,0x32,0x5e,0xa1,0x0f,0x62,0x38,0x58,0xfa,0x46,0x4e,0x87,0x4b,0xcf,0xc5,0xe9,0xfc,0xf2,0x97,0x62,0xdd +.byte 0x92,0xd2,0x41,0x7b,0xa2,0x2a,0xae,0x6e,0x4d,0xbc,0xef,0x43,0x18,0x6e,0xbb,0xe5,0x06,0x45,0x53,0xa1,0x00,0xef,0xf5,0x4b,0xad,0xbd,0xa5,0x2c,0x77,0x0a,0x37,0x04,0x22,0x95,0xeb,0x7b,0xc1,0x3c,0x20,0x0a,0x44,0xdf,0xa2,0x23,0xc9,0xfc,0x85,0xf3,0x5b,0x9b,0x0f,0x40,0x2a,0xe3,0xc7,0x5a,0xa1,0xf6,0xe4,0x39,0x2a,0xfe,0xd7,0xe7 +.byte 0x33,0xd8,0xbc,0xd6,0x1f,0xef,0xac,0xa9,0x3f,0x2d,0x55,0xb0,0x85,0x74,0xef,0xeb,0xcd,0x9b,0x23,0xa3,0xe6,0x19,0xde,0xea,0x7c,0x9c,0x83,0x48,0x4b,0x12,0xfd,0xe3,0xcb,0x1b,0x70,0x2d,0x9f,0x2c,0x13,0x82,0x87,0x68,0xca,0x60,0x5e,0xc0,0x2e,0x60,0xde,0xf2,0x6b,0x78,0x0a,0x63,0xaa,0x9c,0x9b,0x61,0x63,0xc7,0x0c,0x98,0x92,0x68 +.byte 0xc7,0x44,0x00,0x6a,0x76,0x43,0xa0,0x61,0x7c,0x37,0x62,0x1a,0xd4,0x9b,0x58,0x59,0xe5,0xae,0x78,0x79,0x80,0xf0,0x75,0x68,0x9e,0xab,0x02,0xb8,0x00,0xc5,0x33,0x0d,0xea,0xb1,0x91,0x0f,0x17,0x57,0x96,0x23,0x8d,0x36,0x4d,0x89,0x94,0x42,0xc9,0x61,0x6e,0xf6,0x9f,0x37,0xee,0xa5,0x4b,0x3d,0x06,0x08,0xee,0x9a,0x7c,0x73,0xa9,0x58 +.byte 0xcd,0xcb,0x78,0xa9,0x3d,0x5c,0x11,0x0e,0x5a,0xd9,0xb0,0x7b,0xc4,0x3e,0x83,0xdc,0xe2,0x11,0xe9,0x6d,0x8a,0x8b,0x24,0x28,0x1d,0x7e,0x45,0x1b,0x05,0x5a,0x6b,0x97,0x1c,0x25,0x15,0x84,0x5c,0x3f,0x95,0x44,0xd5,0x4f,0x3c,0x4b,0x52,0xb1,0x0b,0x6a,0xb3,0xae,0x4e,0x1b,0x12,0xcf,0x16,0x78,0xd7,0xcb,0x32,0x43,0x39,0x88,0xf4,0x5e +.byte 0x26,0x29,0xe7,0x93,0x08,0x19,0x14,0x88,0x8f,0x54,0x91,0x13,0xb6,0x57,0xd1,0x87,0xd4,0x9d,0xf7,0xec,0x9b,0x22,0x6b,0x91,0x79,0x9d,0x6c,0x32,0x47,0x4a,0x79,0x55,0x7d,0xac,0x87,0x98,0x59,0x97,0xa5,0x71,0xbc,0xbf,0x1b,0xf0,0x6f,0xbb,0x81,0x8e,0xc2,0xef,0x7c,0x63,0x2f,0x80,0x37,0xb6,0xc5,0xae,0x59,0x5e,0x57,0x5e,0x1f,0x3a +.byte 0xe5,0x6b,0x6b,0x5e,0xdb,0x8e,0xd2,0x87,0xf7,0x94,0x7b,0x11,0x0e,0x4b,0xa6,0x9f,0x49,0xc6,0x68,0xc7,0x52,0x5f,0x28,0x87,0x33,0x84,0x52,0x5f,0xc8,0x5f,0x81,0x85,0x10,0xe8,0x92,0xce,0x13,0x6c,0x01,0x28,0x5e,0x59,0x8f,0xbb,0xa9,0x9c,0xdc,0x85,0xd3,0x73,0xa0,0x5a,0xbf,0x5b,0x04,0x80,0x99,0x90,0xc8,0x16,0x44,0x0d,0x09,0x01 +.byte 0xcd,0x24,0xe7,0x59,0xe7,0x42,0xe0,0xdd,0x01,0x93,0x1f,0x9e,0x1f,0x36,0xdb,0xcd,0x49,0xdb,0xea,0xa9,0x63,0x71,0xb9,0x2c,0xcd,0xca,0x1a,0x64,0xe1,0x95,0xbe,0xe1,0x64,0x2e,0xc7,0x59,0x15,0x61,0xe1,0xf9,0x45,0x0f,0x2a,0x3a,0x85,0xf8,0x7c,0x06,0xae,0x53,0x84,0xd2,0xe7,0xee,0x8b,0xbf,0x7a,0x72,0xa3,0x57,0xf1,0xc2,0x12,0x40 +.byte 0x9c,0x93,0xe1,0x04,0x81,0xde,0xc6,0xa8,0xae,0x4f,0x5c,0x31,0x93,0xc7,0x11,0x1d,0x89,0x70,0x85,0xd5,0x6f,0xab,0x58,0x1f,0x3f,0x76,0x45,0x7e,0x19,0xd0,0x6c,0xc1,0x41,0xa9,0x64,0x0a,0x79,0xb5,0xe0,0x9e,0xbc,0x4f,0x10,0x0c,0xac,0xfc,0x54,0xad,0xcf,0xb8,0xd0,0xfd,0x9b,0xed,0xea,0x54,0x05,0xbf,0x4f,0x91,0xbd,0x16,0x4a,0x57 +.byte 0xa9,0xda,0x38,0xb9,0x40,0x0d,0x63,0x68,0x83,0x7d,0xec,0x1c,0xe6,0x7f,0x9c,0xec,0x16,0x4e,0x0b,0xd0,0x91,0xb4,0x2c,0x04,0x65,0xb8,0x12,0xdf,0x3f,0xff,0x6a,0x08,0x4e,0x65,0xdf,0x09,0xa5,0xea,0xb1,0xac,0xa9,0x67,0xd2,0xbb,0x73,0x51,0xd2,0x37,0x72,0xfc,0x3f,0x69,0xe2,0x3f,0x01,0x94,0x3a,0xf7,0x23,0x0e,0x5d,0x23,0x44,0x82 +.byte 0xc7,0x38,0x35,0x9f,0xfa,0x13,0x15,0x47,0x0d,0x18,0xab,0x02,0x39,0x6e,0xb2,0x7c,0x29,0x11,0x9a,0x5a,0x01,0x2d,0xb2,0x10,0xea,0x9d,0xb7,0x37,0x4b,0xf2,0x2b,0x76,0x22,0xf7,0xaf,0x8a,0x5f,0x1d,0x6b,0xb2,0x13,0x9e,0x84,0xf5,0xbc,0x6e,0xad,0x66,0x5c,0x1b,0x5d,0x12,0xb0,0xe1,0x48,0x94,0x83,0xa0,0x26,0x54,0xd2,0xfd,0x3c,0x8d +.byte 0x81,0xac,0x31,0x9a,0x15,0xc6,0xd8,0xd5,0x07,0x1b,0x21,0x3f,0x04,0x40,0x3a,0x60,0x80,0x5f,0x1f,0x42,0x3e,0xd7,0x2b,0x7a,0x5f,0x71,0x93,0xb4,0x9d,0xf0,0x8b,0x5e,0xf1,0xc6,0x19,0x0a,0xa9,0x43,0xac,0xb2,0xc1,0x73,0x0d,0x44,0x6a,0x92,0x22,0xd0,0xda,0x40,0x14,0x7d,0x88,0xd1,0x5e,0x10,0xc9,0xa4,0x4d,0xd8,0xe0,0x7d,0x74,0x1b +.byte 0x2b,0xcb,0x50,0x24,0xbd,0x50,0x4a,0xe4,0xed,0x0e,0xe8,0xc0,0x5b,0x50,0x6d,0xf5,0x68,0x59,0xd1,0xc3,0x6f,0x32,0x86,0x29,0xe0,0x32,0x3f,0x05,0x86,0xa2,0x7f,0x93,0xd8,0xb7,0x02,0x68,0xb3,0x16,0xaa,0x0c,0xd3,0x4d,0xec,0x9a,0x66,0x06,0x7c,0x74,0x35,0x6f,0xde,0x8b,0xd9,0xdb,0x79,0x0a,0x15,0x84,0xc4,0x63,0xba,0x42,0xa2,0x3c +.byte 0x29,0xc8,0x65,0xdc,0x06,0x60,0x0a,0x08,0x4e,0x80,0x33,0x5c,0xfa,0x4b,0x91,0xdb,0xf6,0x57,0xd6,0x25,0x7d,0x70,0x80,0x09,0xb2,0x27,0xdb,0x80,0x4c,0xa7,0xe8,0x35,0xf5,0x18,0x2d,0x10,0x62,0x22,0xf9,0xb1,0x22,0xf3,0x9b,0x74,0xa0,0xc5,0x25,0xd3,0x44,0xc9,0x27,0x7c,0xba,0x01,0xfe,0x32,0x23,0xf7,0x90,0x90,0xbc,0x0d,0xad,0x9e +.byte 0x22,0x77,0xc5,0xfb,0xf2,0x0e,0xda,0xe5,0x7c,0xb4,0xbb,0xed,0xd4,0xfd,0xb0,0xfb,0x4a,0x4c,0x2a,0x32,0x2d,0x81,0xcd,0xef,0x74,0x3c,0x6a,0x9a,0x0c,0x95,0x58,0x25,0xd0,0x3a,0xb4,0x84,0x8f,0xa5,0xef,0xad,0x91,0xd7,0x2d,0xae,0x61,0xaf,0x9d,0x3f,0x03,0xa8,0xab,0xa4,0x66,0xd4,0x73,0x3a,0x84,0x0d,0x4c,0x6a,0xca,0xbd,0x0c,0x3c +.byte 0xdc,0x1d,0x37,0xea,0xe6,0x5a,0x7f,0x15,0xbe,0x9d,0xc7,0xce,0xbd,0x46,0x97,0xd3,0x07,0x19,0x82,0xaf,0x58,0x39,0x39,0x95,0x5d,0x4b,0x8e,0x1b,0xe9,0xf1,0xf6,0xa9,0xb3,0xfc,0xe6,0xe0,0x68,0x2c,0xbb,0xfa,0xd9,0x9b,0xc1,0x69,0xf3,0x5a,0x8f,0x67,0xd5,0x9c,0x11,0x1e,0x02,0x20,0x20,0xfe,0x4b,0xc9,0x8b,0x62,0x17,0x9a,0xfa,0x47 +.byte 0x7f,0xa2,0x8b,0xc1,0x3b,0x02,0x78,0x38,0xff,0xce,0xe1,0x54,0x40,0x3f,0x27,0x5c,0x9d,0xdd,0x56,0x38,0x48,0xea,0x39,0xbe,0xa0,0x76,0x43,0x82,0xef,0x74,0x50,0xdf,0xda,0x4c,0xca,0x47,0x46,0x7e,0xc5,0xff,0xce,0x66,0xdf,0xeb,0x5b,0x6e,0x45,0x77,0x19,0xac,0x01,0x1f,0x20,0xa1,0xad,0x01,0x5f,0x87,0x3e,0x3a,0xd0,0x83,0x13,0x17 +.byte 0x53,0x40,0xfe,0x26,0x99,0x42,0xfa,0x54,0xa8,0x82,0x79,0xa7,0x44,0xd0,0x9e,0x59,0x64,0x77,0xec,0x70,0x0e,0xcd,0xb9,0xb1,0xc2,0xe2,0x39,0x93,0xb7,0xd1,0xd5,0x67,0x9f,0xb0,0x5b,0xd9,0x50,0x8b,0x17,0xec,0xbc,0x83,0x64,0x35,0xaa,0x43,0x3f,0x4c,0x8c,0x56,0x83,0x76,0xa2,0x72,0x30,0xe7,0xe8,0x9f,0x88,0x35,0x8e,0x8d,0x11,0x31 +.byte 0x8e,0xb5,0x71,0x75,0x31,0xc8,0x28,0x15,0x50,0xe6,0x0a,0x00,0x4d,0x75,0x51,0x7c,0x33,0x14,0x96,0xff,0xe8,0xf3,0xa0,0xb1,0x9c,0xeb,0x9d,0x8a,0x45,0xcf,0x62,0x82,0xeb,0xce,0xea,0xa5,0xb9,0x10,0x83,0x54,0x79,0xf8,0xcf,0x67,0x82,0x1d,0xea,0xce,0x86,0xcf,0xc3,0x94,0xf0,0xe8,0xf4,0x80,0x8b,0x84,0x96,0x06,0x2e,0xe4,0x58,0x21 +.byte 0x98,0x42,0x1a,0xb7,0x8c,0x5d,0x30,0x15,0x83,0xe8,0x17,0xd4,0xb8,0x7b,0x90,0x57,0x35,0x72,0x6d,0x1b,0x7c,0xc0,0x88,0x0a,0xa2,0xea,0xcd,0x58,0xcc,0xf1,0xb4,0x8b,0xcd,0x66,0x3c,0xa5,0xb0,0xd4,0xc9,0xcc,0x42,0x1d,0xef,0x3b,0x42,0x22,0x9b,0xfb,0x45,0x24,0xcc,0x66,0xd7,0x67,0x73,0xb2,0x12,0x03,0xf6,0xa3,0x06,0x61,0xe2,0xab +.byte 0x91,0x8e,0x33,0x0b,0x9f,0x6a,0x80,0x5e,0x0f,0x68,0x41,0x5a,0x7e,0xd8,0xe2,0x32,0x50,0xc2,0x88,0x60,0xca,0xe3,0x23,0x86,0xff,0xdc,0x0c,0x19,0xbb,0xba,0x01,0xa3,0x41,0x89,0xf0,0x79,0x55,0x79,0xa6,0xa4,0x66,0x7b,0x46,0xde,0xac,0xae,0xb1,0xde,0xe1,0x1e,0x8d,0x62,0xc1,0xd6,0xeb,0x39,0x2f,0x1d,0x50,0x27,0x53,0xc9,0xea,0xb6 +.byte 0xd3,0x91,0x9b,0xdd,0xc1,0x68,0x8c,0xb6,0xe1,0x5e,0x9f,0xea,0xbe,0x98,0x88,0xeb,0xa8,0x77,0xf6,0x69,0x64,0xab,0x99,0xf3,0x7a,0x08,0xff,0x8c,0xa6,0x17,0x1b,0x2e,0x6e,0xcc,0xd8,0x33,0x30,0xef,0x5a,0x86,0x07,0x49,0xa5,0x13,0x08,0xbc,0xd6,0x88,0x7e,0x19,0xe0,0x1c,0x23,0xa9,0xe5,0x0a,0xa7,0xaf,0x8a,0xe9,0x81,0x3f,0xd8,0x99 +.byte 0xa6,0x01,0x6b,0xec,0x14,0x08,0x90,0xb1,0x76,0x16,0x3a,0xcb,0x34,0x0b,0x91,0x26,0xe9,0xec,0xe5,0xbc,0xd6,0xdc,0xf0,0xa9,0xfd,0xf2,0xe9,0xcc,0xa1,0x9d,0x7f,0x32,0x0d,0x0a,0x2a,0x92,0xff,0xc4,0x38,0xf8,0x9e,0x31,0x78,0x47,0xbf,0x3f,0x27,0x71,0xe1,0x7a,0x33,0x48,0x91,0xe8,0x8e,0x1a,0x66,0xcf,0xa1,0x61,0xc2,0x62,0x30,0x7c +.byte 0x69,0x35,0x21,0x67,0x9b,0xa7,0x1c,0x72,0x06,0xd8,0x28,0x94,0x6e,0x6d,0xf0,0x22,0x85,0xb4,0x6c,0x89,0xe8,0x2e,0x3a,0xc5,0xdc,0xe3,0xe3,0x0c,0x8a,0xba,0x1c,0x57,0x86,0xef,0x55,0x6a,0x24,0x59,0x5e,0x6e,0x47,0xb8,0xad,0xc5,0x10,0xff,0xbe,0x2d,0x93,0x09,0xfe,0x17,0x03,0x16,0x4d,0x4a,0x9a,0x15,0x38,0x94,0x38,0x18,0x45,0xa7 +.byte 0xcf,0xe4,0x16,0xd3,0x26,0x72,0x49,0xe7,0x89,0x9a,0xb4,0xc7,0x78,0xc3,0x18,0x3b,0xc8,0x08,0x9d,0x66,0x0f,0x48,0xc8,0x23,0x91,0x57,0x61,0xf1,0xf3,0x01,0x3e,0x0a,0xa3,0x4c,0x6c,0x34,0x5b,0x98,0x40,0x47,0x42,0xc1,0xeb,0x58,0x58,0xff,0x1f,0x4b,0x5f,0xf1,0x29,0x2e,0x7e,0x76,0x15,0x56,0x17,0x9c,0xe7,0x55,0x09,0x22,0x0a,0xa2 +.byte 0xd8,0xbf,0xd9,0x44,0x49,0xa9,0x24,0xd7,0x4f,0x12,0x04,0xa2,0x18,0x1c,0xdc,0x54,0xc0,0x22,0x27,0x3c,0xeb,0x1f,0x02,0xae,0xb3,0x33,0xb2,0xa2,0x84,0x23,0x76,0xc6,0x2b,0x94,0x53,0xae,0x7b,0xee,0xbb,0x81,0x64,0x8a,0x3f,0xe0,0x75,0x6b,0x2c,0xd5,0x60,0xad,0x49,0x0c,0xf8,0x65,0x64,0x1a,0x83,0xc7,0xb9,0xd9,0x01,0x5b,0xde,0xb0 +.byte 0x76,0x9b,0x1c,0x0d,0x89,0x2d,0xd5,0x09,0xc7,0xa9,0xbb,0x0a,0x54,0x5c,0xd4,0x5b,0xbf,0xbc,0x5e,0x00,0x29,0x0b,0x30,0x19,0x73,0x66,0xfd,0x3f,0xdb,0xd4,0x1b,0xd4,0xc0,0x27,0xde,0x49,0x90,0x5f,0x65,0x87,0x3c,0xc4,0x43,0xd0,0x49,0x76,0x64,0x39,0x88,0xd7,0x0e,0xfc,0x27,0x52,0xb1,0x8d,0xd0,0x27,0x29,0x84,0xe3,0x49,0xb9,0x0c +.byte 0x2d,0x4e,0x73,0x95,0x57,0xa8,0x07,0xa0,0xe1,0x5b,0x5a,0xb6,0xbc,0xa1,0x7f,0xfd,0x4b,0x9c,0x4d,0x7d,0x0c,0x5c,0x4c,0x4b,0x42,0x70,0xc3,0x0a,0xc1,0x89,0x12,0xb5,0x46,0x04,0x3c,0x56,0x25,0xc6,0x8f,0x49,0x7d,0x3b,0xf1,0xcd,0xfc,0xb8,0xa6,0x66,0xb1,0xc2,0xa3,0xa7,0x98,0x93,0x0e,0xdb,0xcd,0xce,0xdf,0x7f,0x68,0x5e,0xea,0xf2 +.byte 0x85,0x61,0x8f,0xd6,0x23,0xb4,0x5f,0x2f,0xf8,0x78,0x47,0x15,0x59,0x2d,0xca,0x35,0x0f,0xf5,0x91,0x74,0x3b,0x32,0xe1,0xcf,0x54,0x1b,0xf4,0x9d,0xdb,0x20,0x5e,0xf8,0x71,0x10,0xa3,0x31,0xf1,0xb8,0x98,0x8d,0x76,0x70,0xce,0x4c,0xed,0xd3,0x81,0x6b,0xd5,0x8d,0x73,0x5f,0x8c,0x66,0x7c,0x87,0x73,0xfa,0x20,0xbe,0xcd,0xba,0x41,0x88 +.byte 0x46,0xc3,0x38,0xc0,0xd9,0x08,0x79,0x30,0xda,0x7f,0x2a,0xc0,0x72,0x47,0xb0,0xc9,0x41,0x68,0xb1,0xe8,0xb4,0x86,0xcb,0x5d,0xb0,0x5b,0x7a,0x26,0xfd,0xf2,0x1b,0x4e,0x1f,0x4c,0x6a,0x8a,0x84,0xd4,0x07,0x2f,0xf4,0x06,0x73,0x3d,0x1c,0x55,0x04,0x6a,0xa5,0x8a,0xbb,0xaa,0x8a,0x8d,0x8f,0x05,0xcc,0x63,0x04,0xe0,0xc6,0x6f,0x6b,0xf8 +.byte 0x24,0x56,0xbb,0x9d,0xa9,0xe5,0x4c,0xac,0x9d,0xbe,0xfd,0x70,0x9d,0x1f,0x98,0xc4,0xfc,0xdb,0x3c,0x45,0xe7,0xbb,0xea,0x51,0xb6,0x56,0xe0,0x2c,0xb2,0x77,0x1b,0x80,0x9b,0x43,0xa7,0xb2,0x9a,0x40,0x8f,0xdb,0x2d,0x51,0x7b,0x2c,0x89,0xfd,0x14,0xf5,0x77,0xbf,0x40,0x3d,0x32,0xe0,0x10,0x32,0xcd,0xc4,0x3f,0xe2,0xe8,0xb4,0xdf,0xc2 +.byte 0x43,0x7a,0x0b,0x17,0x72,0xa1,0x0e,0xd6,0x66,0x35,0x8f,0xf4,0x21,0xf1,0xe3,0x46,0x13,0xd7,0xcd,0xc7,0x7b,0xb4,0x9b,0x39,0x1e,0x33,0x3c,0x18,0x15,0x7a,0xea,0x77,0xc5,0x57,0x4d,0xf9,0x35,0x8a,0xc1,0xb5,0x78,0x5d,0xc3,0x3e,0xd5,0xfd,0xb5,0x50,0xee,0x44,0x24,0xa2,0x55,0xb6,0xd8,0x3d,0x5d,0x75,0x2a,0x26,0x37,0xe7,0x85,0xb3 +.byte 0xff,0x70,0x5d,0x99,0x8d,0x99,0xba,0x9d,0x09,0x97,0xf2,0x67,0xe5,0xa3,0x86,0x06,0x21,0xb4,0x03,0x9b,0x63,0x76,0x1f,0xf8,0x09,0xd8,0x4e,0x22,0xcb,0x48,0xcf,0x79,0x72,0xc9,0x3f,0x84,0x5e,0xb8,0x39,0x87,0x27,0x92,0x1e,0x59,0xdf,0xc2,0xe6,0xd2,0xc4,0x5f,0xad,0x6e,0x9c,0xa4,0xec,0xd5,0x7d,0xf6,0x2b,0x9b,0x93,0x56,0xcd,0xa3 +.byte 0xc5,0xfa,0x82,0x39,0x46,0x29,0x57,0x43,0x08,0xe2,0xe1,0x3e,0x80,0x3b,0x8e,0x08,0xe5,0xc5,0xfe,0x05,0x17,0xaf,0xe0,0xf0,0xb7,0x5b,0x34,0x33,0x59,0xfa,0x93,0xbf,0x6a,0xb3,0x6c,0xbc,0x99,0x62,0x34,0x2c,0xf2,0x3b,0x62,0xf2,0x1c,0x48,0x07,0xc9,0x60,0x03,0xa5,0xe1,0x66,0x8d,0x84,0x36,0xc7,0xf9,0xc6,0x3b,0xa9,0xee,0x0f,0x48 +.byte 0xff,0xff,0xad,0x95,0x21,0xb5,0x12,0x63,0x7d,0x0f,0x0d,0x09,0x63,0x51,0x64,0x69,0xb4,0x95,0xd3,0x25,0xf0,0x3b,0x6d,0xc4,0xdd,0x8c,0x80,0x0d,0x3b,0xd2,0x4b,0xe0,0x67,0xcb,0xcd,0x7d,0x2e,0xbd,0x61,0x4b,0x0c,0x32,0x1f,0xfd,0xd2,0x31,0xed,0xa8,0xaa,0x98,0xf4,0x85,0x21,0xbc,0x08,0x14,0x2f,0xbb,0xbf,0x01,0xba,0x24,0x5e,0x5c +.byte 0xf3,0x72,0xed,0x05,0xec,0xf3,0xd1,0x9b,0xb0,0x63,0x8a,0x14,0xd1,0x9e,0xae,0x9b,0xce,0x4d,0x6c,0xb6,0x7a,0x78,0x9e,0x1d,0xcd,0x1e,0x50,0x66,0x26,0x70,0x74,0x2b,0x43,0x6a,0xc7,0xd7,0xe9,0xa2,0xcf,0xf3,0x09,0x9a,0x81,0x80,0x04,0xb8,0x5a,0x4f,0x2e,0x10,0x35,0xb2,0xb0,0xc6,0x40,0x97,0xa5,0x6a,0x24,0x5a,0x6b,0x97,0xc7,0xc0 +.byte 0x24,0x50,0x8d,0x65,0x21,0x25,0xce,0xb9,0x19,0xfc,0x40,0x08,0xcf,0xfd,0x1c,0xc4,0x30,0xd4,0x06,0x70,0xac,0x8a,0x3c,0x3f,0xfc,0xc3,0xeb,0xdd,0x43,0x56,0x4a,0xf6,0x50,0x92,0x9d,0xce,0x9c,0xea,0x15,0xdd,0x7c,0x5e,0x40,0xf5,0x7e,0x41,0x70,0xdd,0xc7,0x62,0x21,0x5a,0x20,0xc8,0x71,0x10,0x97,0xd5,0x12,0xfa,0x31,0x96,0xfb,0x38 +.byte 0x17,0x66,0x73,0x32,0x7a,0x93,0xf0,0x82,0xb9,0xf1,0x24,0xc5,0x64,0x0b,0xa9,0x24,0x4a,0x47,0xac,0xfb,0xf1,0x55,0xd7,0xb3,0x9a,0x64,0x63,0x0b,0x2e,0x13,0x9e,0x1a,0xee,0x21,0xd0,0x70,0x5c,0x0c,0x25,0xe7,0x38,0x23,0xd7,0x2f,0x6a,0x20,0x59,0xef,0x70,0xb2,0x8e,0xb4,0x15,0xee,0x6f,0x70,0xd0,0x75,0x19,0x9d,0x42,0xa7,0x17,0xad +.byte 0x99,0xaa,0x0d,0xa3,0x87,0x3d,0xf1,0x7b,0x0e,0xfa,0x62,0x9a,0x20,0x64,0x17,0x64,0x07,0xc2,0x84,0x13,0xb2,0x59,0x81,0x66,0x45,0xab,0x47,0x6d,0xfc,0x7b,0x60,0x05,0xac,0x30,0xb2,0x86,0x7e,0x34,0x6b,0xaf,0x37,0x00,0xa6,0x47,0x4c,0xb9,0x10,0xbd,0x9e,0xce,0x47,0x9e,0xc2,0x0e,0xfd,0x47,0xfa,0xd8,0x08,0xd1,0xc2,0xaa,0x6d,0x8c +.byte 0x91,0x2c,0x18,0x32,0x52,0x84,0x47,0x71,0x3b,0xc9,0xa1,0xf5,0xfc,0x90,0xb8,0x79,0xbf,0xe5,0x59,0x1b,0x91,0x22,0xcb,0xd3,0x87,0x7e,0xd4,0xb5,0x33,0xb2,0xfc,0x7c,0xee,0x22,0xfb,0xe8,0xb0,0x3c,0xa7,0x8b,0x05,0xd7,0x7f,0x17,0x52,0xbe,0xb6,0xe0,0x1e,0x47,0xce,0xfd,0x79,0xdf,0x16,0x5f,0x01,0x70,0x0c,0x47,0x5a,0x01,0x96,0x08 +.byte 0x3e,0x9b,0xc4,0xb2,0x58,0x73,0xc4,0x38,0xd6,0xf2,0x1b,0x0a,0x2c,0xb9,0x2a,0x96,0xb5,0x89,0x2d,0x33,0xdf,0xa4,0x5f,0x24,0x1b,0x79,0x0e,0xb6,0x9f,0xec,0x46,0xd3,0x27,0x4a,0xc1,0x26,0x94,0x95,0x41,0xd5,0xb3,0x84,0x74,0x62,0x47,0xc5,0x4d,0xb4,0xe2,0xe7,0xdb,0xc3,0xc3,0x7b,0x33,0x2a,0xbf,0x69,0xf6,0x5e,0xdc,0xfe,0xa4,0x81 +.byte 0x91,0xf3,0xa8,0x26,0x82,0x44,0x37,0xea,0xe1,0x20,0xff,0x52,0x33,0x5b,0x0b,0x6f,0xf8,0x33,0x4e,0x02,0x4d,0x38,0x93,0xcd,0xc0,0xfc,0x73,0x1a,0xf9,0xf6,0x9f,0x53,0xfc,0xf7,0xe2,0x4b,0x25,0xdd,0xa7,0x4d,0x1e,0x5c,0x17,0xc3,0xa0,0x41,0x1d,0x67,0x45,0xff,0xcb,0x41,0x49,0xc4,0x18,0x68,0x7e,0x7f,0xb6,0x6f,0xdb,0xbc,0x73,0x2f +.byte 0xc7,0x9a,0x46,0x8c,0x0b,0x57,0xa3,0xd3,0x0a,0x34,0xb7,0x27,0x67,0xbb,0xe1,0x64,0xa7,0x7e,0x79,0xac,0x4f,0x09,0x54,0x9b,0x43,0x5e,0x9a,0x33,0x02,0x45,0xdc,0x85,0x0b,0x59,0x8d,0x78,0xe8,0xd8,0xb5,0xd3,0x31,0x9d,0x2a,0x60,0x5b,0x91,0xed,0xf1,0xf1,0x37,0x3f,0xdb,0xda,0xd6,0xd1,0x8f,0x14,0x7e,0xe1,0xfc,0x92,0x60,0xa5,0x33 +.byte 0x86,0xef,0x29,0xbf,0x94,0x84,0x2b,0x24,0x20,0xb4,0x5e,0x23,0x34,0x08,0x63,0xc9,0xe6,0x80,0xa0,0x27,0x27,0x2f,0xab,0xc0,0x52,0x44,0x66,0x29,0x32,0x2e,0x91,0x96,0x02,0x1c,0x3b,0xb4,0x6e,0x33,0x49,0x5b,0x60,0x6f,0x14,0x93,0x65,0x0d,0x97,0x01,0xfb,0xf9,0x42,0x74,0xb6,0x21,0xf7,0xc2,0x5d,0xbf,0x91,0x2b,0xf5,0xb1,0x4e,0xe2 +.byte 0xd6,0x24,0x57,0x41,0x7a,0xcb,0xdd,0xb6,0x96,0x8b,0xfc,0x42,0x19,0x21,0x7f,0x41,0x32,0x3d,0x69,0x9b,0xee,0xda,0x97,0x45,0x26,0x71,0x0d,0x12,0xf0,0x20,0x7f,0x44,0x0f,0x4c,0xd2,0xd3,0x34,0x93,0xc7,0xe5,0xe7,0x83,0x62,0x13,0x0b,0x7d,0xc6,0xe4,0xd2,0xae,0x53,0x2e,0xd1,0x18,0x81,0xd0,0x81,0xf6,0xc0,0x98,0xaf,0x1d,0xb2,0x8a +.byte 0xcb,0xd3,0xde,0x1d,0x53,0x71,0x92,0x0e,0x4b,0x8c,0x7c,0x8e,0x65,0xf6,0xe2,0xc2,0x5a,0x4f,0x8c,0x59,0x0f,0x35,0x5e,0xe4,0x43,0x50,0xab,0xb7,0xdd,0xfc,0x66,0xf9,0xb1,0x9b,0x6b,0x1b,0xaf,0x2e,0x85,0xe6,0x3e,0x4c,0xa2,0xd4,0x55,0x47,0xb9,0x66,0x66,0x7b,0xa3,0xb2,0xd5,0x8a,0x8e,0x88,0x0e,0xfb,0x4e,0xad,0xf4,0x39,0xd2,0xd6 +.byte 0x39,0xef,0xe0,0xee,0x0f,0xf3,0x94,0x47,0xa7,0x32,0x24,0x9a,0xb0,0x82,0x08,0x67,0x00,0x3f,0xe6,0x95,0x76,0x84,0x0a,0x5c,0xb7,0x74,0xc1,0x64,0x5e,0x7c,0xba,0x0b,0x2e,0x6f,0x26,0xc3,0x20,0x2e,0x95,0xc1,0xf0,0x8c,0x55,0x4a,0x45,0x26,0xe6,0xf3,0x55,0x78,0xbd,0xd4,0xdb,0x07,0xbd,0xff,0x61,0x51,0xde,0x7f,0xdb,0x56,0x73,0x6b +.byte 0x9c,0xa4,0xb0,0x72,0xa7,0xd0,0x93,0x4d,0x1d,0x3a,0x92,0x78,0xde,0x77,0x65,0xe8,0x07,0x41,0x92,0xc1,0xbb,0x69,0x79,0x20,0x43,0xab,0x21,0x2e,0x6d,0xdf,0x43,0xeb,0x73,0x49,0x12,0x1f,0x53,0x75,0x01,0xed,0xce,0xf4,0x05,0x05,0x2b,0xc7,0x2a,0x65,0x29,0xe8,0xcf,0x5b,0xf0,0xc1,0x5b,0xd8,0xa8,0xac,0xbb,0xe3,0xac,0x29,0x0a,0x90 +.byte 0x79,0x2f,0x5b,0x92,0x14,0xf2,0xc7,0x2d,0xe5,0x33,0x6e,0x5e,0x31,0xe2,0xab,0xdf,0x21,0x71,0x4a,0x44,0xaa,0xc6,0xe9,0xb8,0x51,0x1d,0xe2,0xf3,0x07,0x19,0xa1,0x98,0x9e,0x8a,0xed,0xe4,0x9e,0x52,0x16,0x1f,0x2f,0xd3,0x4c,0x97,0x1e,0x38,0x49,0x84,0x2e,0x45,0xb5,0x4b,0x4f,0xfe,0xdb,0x25,0x3e,0xa9,0x6e,0x7d,0x60,0x3b,0xa7,0x7e +.byte 0xda,0x32,0x1a,0xd6,0x04,0xbe,0x0c,0x92,0x4e,0x6d,0x85,0xf9,0x9c,0x26,0x9a,0x88,0xf5,0x50,0x95,0x7b,0x9e,0x43,0x07,0x97,0xd4,0xdb,0xa0,0x6e,0x30,0x5d,0x44,0xa9,0x41,0xc2,0xdf,0xdf,0x37,0x35,0xc4,0x85,0x83,0x08,0xea,0x22,0xfa,0xae,0xdd,0x95,0xe5,0x35,0x47,0x23,0x86,0x27,0xfa,0x71,0x88,0xa0,0x12,0x00,0xe0,0xa7,0xd1,0x1b +.byte 0x5e,0x78,0x6f,0x38,0x30,0xa9,0x80,0x75,0xd7,0x61,0xcc,0xfd,0x33,0xd2,0xb8,0xf8,0xd7,0x12,0xf5,0x03,0xf9,0x53,0x6d,0x3b,0x6b,0xff,0x24,0x0a,0x3b,0xe8,0x2a,0xe9,0xae,0xb7,0xc3,0xe3,0x0f,0x26,0x71,0x55,0xc5,0x03,0x60,0xf4,0x47,0x01,0xa3,0x69,0xb2,0x98,0x75,0x5b,0x90,0x4a,0xf9,0x61,0x49,0xd6,0xc4,0xdb,0xab,0x04,0x0c,0x47 +.byte 0x1e,0x31,0x75,0xfa,0xa2,0xc5,0xfa,0x66,0x0c,0x4a,0x93,0xa0,0xea,0x56,0xf9,0x49,0xd4,0xc7,0xcc,0x2c,0xe5,0xdc,0xab,0x61,0x8e,0x0c,0xf3,0x2f,0xb5,0x9f,0x36,0xa1,0x05,0xab,0xb6,0xbc,0x4a,0x6d,0x97,0xe7,0x19,0xe5,0xfe,0x92,0xa5,0x94,0xd5,0xc0,0xf5,0x31,0xf6,0x8a,0xf7,0x24,0x62,0xdd,0x56,0x12,0x84,0xf5,0xc6,0xa0,0x37,0xa3 +.byte 0xfc,0xbd,0x16,0x2a,0xa6,0x36,0x8e,0xd4,0x29,0xfe,0xc4,0xc5,0xcb,0xdd,0xdd,0x8b,0x7e,0xa6,0x9d,0x08,0x28,0x10,0x6b,0xff,0xd7,0x79,0x48,0x35,0x2f,0xbe,0x34,0x9a,0xfb,0xd0,0x7d,0x5c,0xad,0xf0,0xde,0x96,0xea,0x2d,0xc5,0x8b,0xa9,0x7a,0x8b,0xbe,0x97,0xde,0x7a,0x95,0xc7,0x95,0xd9,0x86,0xde,0x3c,0x8d,0x15,0x8e,0x45,0x69,0x27 +.byte 0xd4,0x27,0xa8,0xe3,0xa9,0x1e,0xa0,0x95,0x74,0xf1,0x8b,0xbe,0x3b,0xff,0xa3,0xf6,0x23,0x78,0xd9,0xbd,0xc2,0x44,0x3a,0x93,0xb5,0xa6,0x87,0x7c,0x65,0xd1,0xd8,0xd5,0x43,0x2a,0xb2,0xc8,0x65,0x86,0x83,0x06,0xf7,0x33,0x88,0x3b,0xc0,0x2c,0xb3,0x3b,0x23,0xa3,0x67,0x15,0x49,0x09,0x02,0xbb,0x11,0x08,0xe3,0x37,0x9a,0x9b,0x67,0x8e +.byte 0x63,0xc3,0x8b,0xff,0x21,0xa6,0xbe,0x3b,0xa6,0x57,0xc1,0x56,0x2a,0x02,0xdb,0x24,0x50,0x4a,0x4f,0x60,0x49,0x03,0xcf,0xba,0x55,0x1c,0x64,0xfe,0x0c,0x58,0xb4,0xb0,0x89,0x91,0xd5,0xbc,0xbc,0x85,0xe6,0x96,0x32,0x89,0x1f,0xa0,0x48,0xd1,0x6e,0xa7,0x03,0x86,0x8a,0xf2,0x5f,0xc3,0x5a,0x57,0x8a,0xa3,0x4a,0x61,0x90,0x18,0xb2,0x0d +.byte 0xc7,0x94,0xb9,0x3e,0x40,0x8b,0x1d,0x54,0xd0,0x4c,0xe7,0x2a,0xd5,0x85,0xa7,0x93,0x07,0x10,0x58,0xc4,0x8a,0x18,0x0a,0x49,0x30,0x87,0x93,0x0e,0xcf,0xc7,0x95,0x9f,0xd1,0x3f,0x9b,0x06,0xe3,0xf9,0x4f,0x16,0x58,0x04,0xb4,0xf0,0xf0,0xf3,0x3a,0xab,0x4a,0x35,0xf1,0xec,0x23,0x15,0x0c,0x24,0xba,0x90,0xdc,0xd1,0xfe,0x47,0xca,0xb2 +.byte 0x95,0x33,0x30,0x45,0xba,0x18,0x15,0xec,0x58,0x36,0x02,0xdf,0x28,0x09,0x74,0x4b,0x09,0x01,0x24,0x0f,0x00,0x7b,0xb3,0x65,0x45,0x42,0x63,0x15,0xf8,0x50,0x8b,0x4f,0x28,0x73,0x03,0x3a,0x31,0xe5,0x0d,0x56,0x8f,0x6b,0x4b,0x9e,0xda,0x71,0xee,0x68,0xba,0x85,0x81,0x3d,0x5d,0x74,0x5e,0xda,0x60,0x87,0xf4,0x5a,0x38,0xad,0xc5,0x3f +.byte 0xb5,0x15,0x02,0x59,0x1c,0xd2,0x93,0x66,0x54,0x65,0xf1,0xe7,0x9b,0xf0,0x30,0x2d,0x9e,0xba,0xc5,0x86,0xf4,0xf6,0xc7,0x92,0x73,0x12,0x3b,0x28,0x21,0x1b,0x3d,0x84,0xc0,0x1a,0x7d,0x35,0x8b,0xd4,0x35,0x39,0x35,0xa6,0x51,0xd9,0x19,0x8b,0x92,0xa3,0xea,0x8c,0x7e,0x25,0x05,0x1f,0x1d,0x8f,0x4d,0xba,0xdf,0x20,0x8c,0x8d,0xe2,0xac +.byte 0xdd,0x3d,0xf1,0x04,0x3f,0x77,0x4b,0x8f,0x39,0x7d,0x01,0xb7,0x71,0x4b,0x7b,0xe1,0x6f,0xd4,0x28,0x1a,0x57,0x96,0x4d,0xe2,0x84,0xf6,0x64,0x10,0xbb,0x0f,0xbc,0xe0,0x19,0xed,0x92,0x9e,0x60,0x15,0x78,0xd1,0x30,0xc0,0x53,0x4b,0x94,0xca,0x4b,0x5a,0x44,0x8b,0xa9,0xda,0x2f,0x08,0x70,0x94,0xe4,0x54,0xe1,0x28,0x6e,0xdd,0x34,0x56 +.byte 0x54,0xb0,0xd4,0x87,0x00,0x72,0x1e,0x46,0x10,0x3a,0x27,0x5d,0xc6,0xb5,0x72,0x20,0x2b,0xbe,0x17,0x01,0xbb,0x04,0x11,0x16,0x7d,0xbf,0x91,0xd3,0x7b,0x44,0x58,0x13,0x2a,0x9c,0xda,0x9d,0x26,0x46,0xf5,0x5f,0x51,0xef,0x6c,0xf6,0x36,0xdb,0xb7,0x21,0xde,0xdb,0x87,0xa0,0xd8,0x60,0x24,0x86,0x6d,0x64,0x85,0x9e,0x94,0xd9,0x21,0x0d +.byte 0xed,0xda,0x33,0xea,0x3c,0xdf,0x74,0xe3,0xa5,0xc7,0xc7,0x9e,0xe5,0xb1,0x29,0xdf,0xfa,0x20,0x25,0xcd,0x13,0x08,0xee,0xe6,0xba,0xf1,0x62,0x39,0xcf,0xe3,0x29,0xb8,0xaa,0x65,0x43,0x8a,0x48,0xb5,0xb5,0x70,0x35,0x66,0x42,0xf4,0x32,0x70,0x0b,0x0c,0xa7,0x46,0x79,0xdf,0xb2,0x80,0x13,0x72,0x7a,0xeb,0xf9,0x52,0xcb,0xb8,0x9f,0x4b +.byte 0x4f,0x29,0x2b,0xb3,0x94,0x02,0x0a,0xe1,0x20,0xe5,0x91,0x15,0x6a,0xa1,0x0c,0x71,0x96,0x77,0x01,0x80,0xf7,0x51,0x0b,0xaf,0x54,0x9b,0x3c,0x7b,0x91,0xd2,0xbd,0xaf,0x13,0xa5,0x32,0x17,0x7c,0xca,0xd0,0x22,0xd5,0xe5,0x83,0x44,0x24,0x5c,0xcc,0x24,0x31,0xcd,0x81,0x4e,0x96,0xcd,0x60,0x9f,0x7a,0xe7,0x2e,0x89,0x16,0xd5,0x66,0x6b +.byte 0xac,0x31,0x11,0x7c,0x76,0xc6,0xde,0xbe,0x46,0x55,0x20,0xdf,0x9d,0x2c,0x33,0xa5,0x80,0x76,0xb1,0xc9,0x1c,0x84,0x17,0x4d,0x15,0xe6,0x6d,0xce,0xed,0xea,0xc7,0xe6,0xff,0x01,0x10,0x60,0x26,0xf7,0x63,0x5f,0x91,0x89,0x7e,0xc1,0x7c,0x76,0x67,0x7b,0x7e,0xfa,0x28,0xa0,0xa7,0x82,0x1b,0x28,0x82,0x6a,0x4f,0x78,0x61,0x48,0xbf,0x13 +.byte 0x0b,0x71,0x0c,0xad,0xee,0xd7,0xf8,0xcc,0x0f,0x77,0x74,0x7d,0x2b,0x8a,0x09,0xd8,0x47,0xa0,0xfc,0x45,0x40,0x24,0xf3,0xce,0xdb,0x81,0xa1,0x50,0x9e,0x0a,0xd0,0x58,0xf7,0xaf,0xf1,0x09,0x12,0xa8,0x24,0xb2,0x34,0x99,0x67,0x17,0x53,0x1f,0x9d,0x09,0x7b,0xcb,0x83,0x6e,0x6a,0x0b,0xbf,0x8f,0x6e,0x3d,0xdb,0x29,0xe5,0xd0,0x06,0xdb +.byte 0xb8,0xf2,0xf3,0x43,0x4e,0xa7,0xf3,0x73,0x93,0xe8,0xab,0x2f,0xc8,0x75,0xce,0x62,0xda,0x74,0x39,0x57,0xe4,0xe4,0xb1,0x41,0x8f,0x9d,0xda,0x43,0xb4,0x2c,0x4b,0xd5,0x1c,0x10,0xf0,0x29,0x6b,0x94,0x15,0x04,0x3c,0xd3,0x45,0x73,0x29,0xb3,0x60,0x87,0x93,0xdb,0xbf,0x60,0x4e,0xdf,0x4d,0xbb,0xde,0xb2,0x57,0x67,0x14,0x0d,0x0b,0x60 +.byte 0x63,0xd5,0xc6,0x81,0x82,0xd6,0x0c,0xe6,0x4c,0x43,0x13,0x02,0x74,0x56,0x20,0x6b,0x21,0x28,0xe6,0xe2,0x0b,0xc1,0x7a,0xc3,0x08,0x60,0x82,0xe0,0x4f,0xbf,0x1e,0x3f,0xf0,0xa9,0xb2,0x2e,0x0c,0xbf,0xd6,0x03,0x1d,0x0d,0xd6,0x1c,0x36,0xb5,0xb2,0x14,0x56,0x21,0xc2,0xe0,0x1e,0xff,0xee,0x8a,0x70,0xae,0x3f,0x1e,0xe5,0xac,0x05,0x46 +.byte 0x6b,0x81,0x32,0xce,0x50,0xbb,0x82,0x66,0x32,0x93,0x46,0xf7,0xee,0x77,0x1c,0x9a,0x2f,0x31,0x60,0xa2,0x09,0x7c,0x14,0xd9,0x81,0xe9,0x19,0x27,0x31,0x5e,0xa0,0x98,0x71,0x42,0x2f,0x30,0x71,0xd6,0x31,0x94,0xe0,0x61,0xed,0x50,0x66,0xfa,0xba,0x12,0x5e,0xc6,0xc8,0x67,0xe5,0x8e,0xfd,0x34,0xa9,0xeb,0xde,0x25,0x43,0xbf,0xe7,0xb5 +.byte 0x16,0xf5,0x62,0x66,0x5d,0x0b,0x13,0x9a,0xd4,0x8c,0x2b,0x8f,0xe6,0x91,0x33,0xcb,0xa0,0x70,0x48,0x3e,0x22,0x7d,0xe4,0xf3,0x75,0xc9,0x49,0x82,0x50,0xc9,0x90,0x04,0x32,0xab,0x99,0x6e,0xf1,0xf0,0x0b,0x60,0x80,0x35,0x25,0x45,0x88,0xe9,0x82,0x06,0xe1,0xbb,0x85,0x11,0x40,0xf8,0x0e,0xbd,0x19,0x7a,0xdd,0x78,0xf9,0xc2,0x46,0xe4 +.byte 0xb5,0x27,0xfb,0xb6,0xba,0xbc,0x7d,0xb8,0x27,0xe7,0xbf,0xfe,0x8e,0xfe,0x7e,0x83,0x63,0x43,0x92,0x26,0xf0,0xbb,0xde,0xb6,0x93,0x4f,0x55,0x0c,0x07,0x99,0x3c,0x98,0xa1,0x8c,0x73,0xc1,0x4c,0x9a,0x09,0xa8,0xea,0x16,0x0b,0x49,0x2a,0x43,0xee,0x90,0x61,0x6f,0x09,0x1b,0xc3,0x2d,0x62,0x4b,0xfc,0x90,0xa1,0x8e,0x84,0x2e,0x90,0x8d +.byte 0x5f,0x80,0xff,0x6a,0x3c,0x61,0x0f,0xf2,0xac,0x70,0x20,0xc1,0xf2,0x85,0xcf,0x94,0xc8,0x94,0xe7,0xa0,0x04,0xdf,0xaf,0xef,0x26,0xd2,0xbc,0x07,0x70,0xc1,0x48,0xd6,0x87,0xd6,0xbe,0xea,0x95,0x6a,0xce,0xa2,0x48,0xac,0x46,0x46,0xb1,0x74,0x70,0x96,0x6c,0x26,0x58,0x75,0x9d,0x84,0xd7,0xd9,0x17,0x9a,0x46,0xe9,0xd7,0x3d,0xde,0xfd +.byte 0x7e,0xf4,0xd8,0x7e,0xf8,0x8f,0x1c,0xb5,0xfb,0xe9,0xc4,0xca,0xba,0x52,0x5f,0x17,0xee,0x75,0x7d,0x1d,0x50,0x16,0x9f,0x16,0x1e,0x00,0x8b,0xc1,0x2f,0xab,0x73,0x65,0x88,0x7b,0x80,0xa6,0x71,0xb7,0xfb,0xb0,0xda,0xd1,0x96,0x18,0x5c,0x48,0x6e,0x18,0x45,0x59,0x45,0xef,0x5c,0x65,0x35,0x99,0x5e,0xb9,0xd4,0x1a,0x07,0x7d,0x1e,0xa6 +.byte 0x69,0x42,0x9d,0xfa,0xec,0x02,0xdc,0xc4,0x19,0x6b,0x9c,0xb1,0x5e,0xa3,0xb4,0x6d,0xb4,0xa6,0x25,0xa8,0xe4,0x3f,0x3d,0x6e,0x2c,0x95,0xf7,0xcd,0xa5,0x4e,0x32,0xca,0x7e,0xe0,0x7b,0x11,0xf9,0x0a,0xe1,0x61,0x41,0x60,0xec,0xb3,0xb1,0x92,0x89,0x33,0x17,0xe9,0xaf,0x70,0x7f,0x1c,0x07,0xb5,0x24,0x3a,0x37,0x84,0x38,0xf5,0xb6,0x11 +.byte 0xfc,0x0c,0x12,0xc1,0xfc,0xa9,0x82,0x67,0x4d,0x17,0xe8,0xea,0xd0,0x62,0x17,0xb2,0x9c,0x59,0x01,0x87,0xfb,0x54,0x8e,0xa7,0xa5,0x85,0xa9,0x8a,0xec,0xfe,0x29,0xc0,0x73,0xc6,0xa0,0xbf,0x66,0x9a,0xc5,0xf8,0xee,0xa4,0xcb,0x09,0x44,0x74,0xfe,0x32,0xf5,0x42,0xea,0xf0,0xa6,0xec,0x74,0xea,0x14,0x5c,0x43,0x51,0xfa,0x3a,0x48,0x1e +.byte 0xa0,0x2e,0x59,0x2e,0xdb,0x3a,0x19,0xfe,0x1f,0x95,0x25,0xee,0x27,0x2b,0x99,0xb4,0xe1,0xd0,0xe6,0x33,0x91,0xa1,0xaf,0x30,0xa0,0x89,0x00,0x3c,0x13,0x31,0x18,0x70,0x90,0x42,0x55,0x0a,0xc9,0xc5,0x0c,0x43,0xa5,0xee,0xd6,0x90,0x07,0xae,0xc4,0x8c,0xdc,0xe4,0x07,0xbb,0x61,0x70,0xd1,0x10,0xe4,0x68,0x96,0x70,0x78,0xab,0xe9,0x3a +.byte 0x6e,0xc7,0x75,0x93,0xa0,0xba,0xff,0x6a,0x2d,0x57,0xaa,0x93,0x09,0xc3,0x6b,0x81,0xf3,0xde,0xc2,0xee,0xac,0x86,0x0a,0xfb,0xad,0xdb,0x6f,0x2a,0xa0,0x15,0x7b,0x96,0x77,0x38,0xf8,0x86,0x51,0x33,0x7a,0x6f,0x1c,0xf8,0xd5,0x15,0xcd,0x76,0x7f,0x37,0x68,0x82,0xdf,0xab,0xc3,0xdb,0xbe,0xeb,0x2b,0xa8,0x34,0x72,0x20,0x34,0xfb,0x12 +.byte 0x64,0x17,0x05,0x64,0xc0,0xa1,0xca,0xd3,0xac,0x27,0xc2,0x68,0x28,0x40,0x42,0xe2,0x0a,0xdd,0xd7,0xd6,0xf6,0x92,0x95,0x3c,0x10,0x17,0x4e,0xef,0x75,0xae,0x98,0x2d,0x10,0xc8,0xa8,0xac,0x15,0xf7,0x5b,0x81,0xc1,0xdf,0x5e,0xbe,0x88,0x49,0xe3,0xd1,0x88,0x1c,0xcb,0xce,0x20,0x01,0x12,0x60,0x57,0x0b,0xf6,0x32,0x57,0xaf,0x59,0xef +.byte 0xc9,0xe7,0xbf,0x62,0xf3,0xb6,0xe6,0x5c,0xee,0x36,0x7e,0x11,0x90,0xd1,0xeb,0xfa,0x62,0x0b,0xc6,0xf3,0x1a,0xd5,0x8b,0x95,0xec,0xb4,0x38,0xfe,0x45,0xb0,0xb5,0xff,0x84,0x0a,0x27,0x3a,0xa2,0x5a,0x2a,0xc9,0xa4,0xc0,0x11,0xc6,0x61,0x13,0xb7,0x53,0xa3,0x47,0x45,0x6d,0xc6,0xa9,0x00,0xd1,0x40,0xf4,0x77,0xac,0xb3,0xd3,0x26,0x99 +.byte 0xf1,0x36,0x59,0x28,0xb4,0xd0,0xdd,0x0e,0xed,0x53,0x33,0x45,0x71,0x9c,0x5c,0x11,0x27,0x2c,0x2f,0x10,0x9e,0x5b,0x8a,0x5b,0xc5,0x1f,0x36,0xc9,0x2a,0xba,0xc7,0xa5,0x31,0xd7,0x9f,0x2b,0x0a,0x09,0xcb,0x7c,0x4f,0xa2,0xdc,0xc5,0x64,0x0d,0xe6,0xfe,0xb0,0x9d,0x3b,0xf0,0xa7,0x19,0x8c,0x84,0x21,0x6b,0x9e,0x1c,0xb5,0x7b,0x66,0x77 +.byte 0xd0,0x85,0xb4,0x22,0x93,0x6e,0x84,0x29,0x9b,0x60,0x90,0x37,0x9d,0x8c,0x94,0x95,0x95,0x3b,0xf1,0x2d,0x56,0x5b,0x53,0x60,0x2d,0xe5,0x7f,0x80,0x71,0x56,0xa7,0x6e,0x66,0x76,0x1f,0xaa,0x0d,0xba,0xfb,0x0e,0xcf,0x20,0x68,0x74,0x2b,0x99,0x13,0xe1,0xa8,0x33,0xc9,0xf6,0xbc,0xd3,0xf4,0x46,0x01,0x02,0x85,0x27,0xf4,0x20,0x97,0xa3 +.byte 0xba,0xbc,0x47,0x30,0x48,0xed,0x60,0xe6,0xca,0xbf,0x76,0x8c,0x2c,0x6a,0x43,0x32,0xfd,0x90,0x04,0x95,0xc2,0x42,0xcb,0xca,0xc4,0x33,0xe1,0xd3,0x23,0x92,0xa1,0xde,0x09,0x38,0xce,0x00,0x93,0xb3,0xed,0x82,0x8e,0xfb,0xce,0x4c,0x9a,0x10,0x6e,0xce,0x4a,0x37,0x05,0x75,0x37,0x58,0xc3,0x8e,0x57,0x50,0xa0,0x7d,0x80,0x2d,0x51,0xea +.byte 0x08,0xcd,0x1b,0xd2,0x81,0x85,0x19,0xc1,0xe8,0xce,0x31,0x18,0xcf,0x54,0x37,0x96,0x77,0x3d,0x64,0xfb,0xc2,0xa9,0xdb,0xb8,0x37,0x03,0x83,0x34,0x3c,0x25,0x6a,0x22,0x33,0xfa,0x27,0x70,0xc7,0x0a,0x27,0x12,0x1e,0xb3,0xd0,0x59,0x6f,0xa3,0xc5,0x73,0x95,0x4c,0x1f,0xf1,0x3c,0xb3,0xc2,0xa2,0xc6,0x45,0x17,0x53,0xa8,0xfc,0x00,0xff +.byte 0x77,0x40,0x28,0xd2,0x53,0x90,0x92,0xe9,0x86,0x6c,0xa5,0x40,0xce,0xbc,0x79,0x6f,0x8f,0x12,0xef,0x1b,0x38,0x1f,0xb3,0x24,0xf0,0x75,0x17,0x20,0x9e,0x03,0x9c,0x2b,0x51,0x57,0x93,0x44,0xce,0x74,0xc9,0x12,0xe7,0xcb,0x2f,0x5e,0x1b,0x95,0xf2,0x4d,0x2e,0x51,0x8d,0x52,0xd5,0x21,0xe3,0x1b,0x33,0xe7,0xf2,0x18,0x61,0xa2,0x53,0xdb +.byte 0x73,0xaa,0x6a,0x6c,0xf9,0xf4,0xef,0x3d,0x40,0xa3,0x00,0x80,0x82,0xed,0xe6,0x66,0xd1,0xd6,0xe9,0x93,0xd8,0x92,0xfa,0xdf,0xf9,0x9c,0x7a,0xfb,0x2b,0xc7,0xa7,0x73,0x67,0x2b,0xed,0x76,0xb1,0x52,0xaa,0xcf,0x34,0x84,0xa1,0x6d,0x56,0x85,0xef,0xcb,0xbc,0xa3,0xc6,0xf3,0x5a,0x88,0x04,0xd5,0xd8,0xf1,0x7b,0xf8,0x11,0x6f,0xa0,0x44 +.byte 0xa5,0x0f,0x76,0xed,0xd7,0x98,0xe3,0xda,0xb8,0x1b,0xc7,0xe6,0x89,0x08,0x19,0x1f,0xf8,0xe3,0x32,0x32,0xa5,0x3c,0x71,0x9f,0x11,0xde,0x50,0x29,0xb0,0x54,0x7e,0x3b,0x5e,0xeb,0xf7,0xab,0xa8,0xa0,0x35,0x96,0xc7,0xc5,0xea,0x60,0xc0,0x37,0xca,0x61,0x55,0x96,0xac,0xb4,0xd0,0x29,0x9a,0x1a,0x3f,0x9e,0xf5,0xf5,0x3d,0xed,0xc5,0x7c +.byte 0x2c,0x9d,0x67,0xf8,0x4d,0x82,0x6e,0x2a,0x9a,0xfc,0x5f,0xdc,0x02,0xb0,0x3d,0xa5,0x1c,0x08,0x5d,0x4a,0xaa,0xd0,0x38,0xfb,0xbc,0xbb,0x7f,0x37,0xfb,0xec,0xc0,0x62,0x79,0xaa,0xde,0xfd,0x23,0x9c,0x4c,0x4a,0xe1,0x48,0x40,0x36,0xc0,0x0a,0x6f,0x43,0xb7,0xad,0x4c,0xf6,0x56,0xb5,0x44,0xf4,0x72,0xcd,0x13,0x10,0xea,0x0d,0x24,0xc1 +.byte 0xa9,0x36,0x3b,0x36,0xf2,0x6e,0xf9,0x0a,0x67,0xcd,0x02,0x67,0xb3,0x5c,0x63,0x3a,0x7c,0xc1,0x3b,0xf2,0x1d,0x3d,0xf1,0xff,0xbf,0xf7,0x97,0x9f,0x30,0x1f,0xaa,0xd8,0xdb,0x53,0x9b,0x0a,0xbd,0x38,0xd8,0xb6,0xf1,0x4a,0x78,0x1a,0xc2,0x46,0xd2,0x0c,0xa8,0xcd,0x7b,0x39,0xc7,0x42,0x55,0xc8,0x3e,0x02,0x1d,0xf4,0xad,0x55,0x01,0x6a +.byte 0x11,0x2d,0xfa,0x67,0x48,0xae,0x45,0x31,0x9b,0x09,0x7d,0xd9,0xdd,0xaf,0x5c,0xd5,0x40,0x51,0x2a,0xa1,0x0f,0xb3,0x6e,0xc2,0x94,0xfe,0xde,0x70,0xaf,0x6c,0xea,0x5f,0x7d,0x3c,0x72,0x85,0x86,0x24,0x20,0x0a,0x7a,0xe7,0x69,0x32,0x66,0x7d,0x34,0x13,0x60,0x62,0xc7,0x68,0x32,0xde,0x34,0x30,0x36,0xc8,0x8e,0xb7,0x13,0x66,0xf1,0xce +.byte 0x5f,0x7a,0x3a,0xfe,0x62,0xd6,0x72,0xb6,0x1b,0x80,0x43,0x8a,0x3e,0x13,0x15,0xe4,0x1c,0x7b,0x08,0x70,0x0b,0x6e,0xb3,0xfe,0x07,0x91,0x23,0x21,0x57,0x48,0xc6,0xa9,0xa3,0xa8,0xc7,0x19,0x89,0x8a,0x49,0x12,0x25,0x88,0xd2,0x11,0xa5,0xa8,0x9e,0x0e,0xa7,0x71,0xfe,0xaf,0x88,0xee,0xa7,0x1c,0x3b,0x27,0x27,0x7e,0x79,0x92,0xed,0x77 +.byte 0x74,0x65,0xbd,0x46,0x41,0x25,0xd9,0x8b,0x21,0x73,0x9f,0xaa,0x35,0xa0,0x22,0xb3,0xc8,0x71,0x28,0x72,0xd2,0xcb,0xf4,0x2a,0x06,0x0a,0x63,0x96,0x55,0x2e,0x83,0x0b,0xe8,0x07,0x99,0x9d,0x59,0xde,0xde,0x62,0xbd,0xb4,0x3e,0x70,0x15,0xed,0x95,0xa8,0x2f,0xb7,0xa2,0xb6,0x65,0x56,0x9d,0xe5,0x81,0xa0,0x05,0x5b,0xce,0x00,0xd4,0xb9 +.byte 0x28,0x5a,0xc1,0x9a,0x74,0xc6,0xd7,0x27,0xdd,0x7c,0xbe,0xe8,0x0d,0x47,0xfc,0x81,0x05,0x6b,0x4f,0x68,0xc7,0xcc,0x5d,0xd5,0x66,0x83,0x34,0x72,0x35,0xab,0x39,0x64,0x19,0x67,0xbd,0xff,0x15,0x44,0x20,0x18,0x2a,0xaf,0xbc,0x58,0x94,0xdb,0x18,0x50,0x55,0x11,0x6a,0xc4,0x1d,0xee,0xe2,0xe0,0x75,0x73,0xf1,0xa1,0x83,0xf4,0xcb,0x40 +.byte 0x96,0xf4,0x77,0x45,0x61,0x8b,0x1a,0x8c,0x0c,0xfc,0xd2,0x7e,0x0b,0x1e,0x18,0xd2,0x95,0xa5,0x4c,0x5b,0xd6,0x9d,0x40,0x8b,0xc0,0x51,0xe8,0x2d,0xe5,0x16,0xbf,0xd7,0x98,0x8a,0xa0,0x46,0x1f,0xc4,0xe9,0x12,0x31,0x40,0xc5,0x2d,0x59,0xf8,0x9b,0x5f,0xe3,0x3a,0x10,0xdf,0xda,0x72,0x9e,0xab,0x13,0x7b,0x8f,0xc8,0x52,0x9f,0x58,0x45 +.byte 0x7a,0xe6,0x3a,0xbb,0xdd,0x1d,0xc7,0x3b,0xc4,0x26,0xdc,0x99,0x29,0xf2,0x74,0x16,0x84,0xe9,0x8a,0x86,0xc0,0x1e,0x49,0x96,0x2f,0x5c,0x2a,0x49,0x71,0x88,0xe6,0x82,0xb2,0x18,0x88,0xc1,0x86,0xcb,0x26,0x3c,0xa5,0x50,0x31,0x22,0x9a,0x8f,0x45,0x2b,0xde,0xf0,0x86,0x8e,0x13,0x86,0xc4,0x4a,0x9b,0x35,0x27,0x93,0x0b,0x13,0xc8,0xef +.byte 0x96,0x74,0x97,0x85,0x09,0xc0,0xa0,0x32,0xfe,0xc3,0xe3,0x92,0x2e,0xe8,0x54,0xbd,0xc2,0x23,0xeb,0x4b,0x02,0xf5,0x5a,0x0b,0x0d,0x58,0x50,0x45,0xe7,0x01,0xd4,0x17,0x00,0xdb,0x0d,0xd4,0x2e,0xa0,0xde,0x38,0xf4,0xb1,0x1e,0xd0,0xf0,0xa3,0x6b,0x21,0x0c,0xbd,0xae,0x84,0x7e,0x42,0x36,0x4f,0x2e,0x46,0xae,0x23,0x91,0xb9,0x06,0xac +.byte 0x86,0x7f,0x29,0xca,0xfb,0xe9,0xde,0xdb,0x90,0xfe,0x6f,0xbc,0xdb,0x3c,0x48,0x3d,0x6e,0x06,0x68,0x49,0xbb,0x43,0x8d,0x9d,0xc4,0x5f,0x45,0xcb,0x77,0x28,0xe0,0x35,0xd1,0xb4,0x25,0xb2,0x45,0x6d,0xb4,0x89,0x53,0x26,0x33,0x98,0x83,0x45,0x9d,0xf5,0xad,0xf9,0xa7,0x59,0xb6,0x6e,0xa8,0x25,0xa5,0xef,0xee,0xf6,0x6a,0xd5,0x6c,0x60 +.byte 0x9a,0xea,0x78,0x9e,0xe4,0xa2,0x29,0x0b,0x70,0xb3,0x6e,0x3a,0xfd,0x07,0xc7,0x7f,0x1b,0x07,0xc7,0xca,0x1b,0xb8,0x08,0xe1,0xc9,0x94,0xb2,0x62,0x7c,0x04,0x96,0xa6,0xda,0x65,0x28,0xfd,0xf9,0x70,0x22,0xb7,0x21,0xd3,0xa6,0x38,0x0f,0x1e,0x88,0x7e,0x73,0xec,0x04,0x99,0x8b,0x23,0x91,0x13,0xe6,0x4f,0x74,0x81,0xcc,0x1f,0xdd,0xaf +.byte 0x58,0xc4,0x80,0x00,0x4d,0x1d,0xbe,0x84,0x7d,0xfe,0x85,0xe7,0x77,0x20,0x3c,0x65,0x4e,0x0e,0x2e,0x5d,0xc1,0xd9,0xcb,0xf7,0xbb,0xc8,0x8d,0xbf,0x16,0xa8,0x1e,0x63,0xf5,0x10,0x5e,0xa5,0x9c,0x63,0xb6,0x9a,0xeb,0x98,0xa8,0xb1,0x59,0x82,0x66,0x51,0xae,0x3c,0xfc,0xa8,0x11,0x92,0xf4,0x45,0x88,0x7c,0x03,0x6f,0xe6,0x87,0xe4,0xa8 +.byte 0x79,0xbf,0xb3,0x0d,0xd6,0x0b,0x8d,0xa3,0x16,0x2a,0xfb,0x79,0xb9,0xe7,0xdb,0xa7,0xdb,0x94,0xd3,0xe6,0x3a,0xdd,0xe9,0x5f,0x30,0x7d,0x68,0x90,0x35,0xfd,0x18,0x91,0x8e,0xc5,0x12,0xd6,0xf9,0x98,0xa0,0x5b,0xcd,0x81,0x76,0x84,0x08,0xd0,0xab,0x59,0x2d,0x3b,0x8a,0xf9,0xd9,0x95,0xde,0x8b,0xbb,0x92,0xef,0x35,0xc3,0x3e,0x46,0x73 +.byte 0xf3,0x3b,0x09,0xbf,0x22,0x2b,0x9c,0x0f,0x70,0x9a,0x16,0x0e,0x4b,0xa7,0x1a,0x96,0x98,0xb7,0x5a,0x40,0x06,0x81,0xf4,0xac,0xa6,0xe6,0xab,0xf2,0xda,0x87,0x18,0x61,0xcb,0xc1,0x67,0xbd,0x2f,0x6f,0x06,0x21,0xaf,0x73,0x98,0xe1,0x3f,0x7a,0x17,0x7f,0x44,0xcb,0x1d,0xdd,0x60,0xb3,0x2c,0x58,0x20,0x8a,0x04,0x74,0x56,0x9b,0x26,0x51 +.byte 0x61,0xb0,0x07,0x50,0x53,0x83,0x31,0x42,0x59,0xb3,0x33,0xfa,0xfe,0xbc,0xad,0x7f,0x99,0x9b,0x86,0xf1,0xaa,0x85,0xf1,0xbb,0xc0,0x0c,0x91,0x8d,0x1a,0x0f,0x8f,0x9f,0xfe,0x62,0x2b,0x35,0xae,0xcc,0x8c,0x09,0xe3,0x29,0x96,0xd1,0xbe,0x7f,0x25,0xd6,0x03,0xf0,0x4c,0x53,0xad,0x5b,0x56,0x66,0x68,0x9a,0xa3,0xc4,0x07,0x71,0xde,0x49 +.byte 0x82,0xbb,0xf7,0x9a,0x2b,0x96,0xcf,0x50,0xf6,0x00,0xf7,0x0b,0x27,0xdd,0xf5,0xf6,0xc5,0xc8,0xbd,0x2a,0xa2,0x06,0x2c,0x42,0x3f,0xa0,0xf8,0xcc,0x1d,0x64,0xcf,0xbc,0xb4,0xc4,0x63,0xde,0x6b,0xd3,0xb4,0x61,0xdf,0xbd,0x73,0x50,0x34,0xc3,0x20,0x45,0x06,0x73,0x9b,0xf0,0xfb,0xa6,0x2b,0xec,0x92,0x32,0xa9,0x1f,0x4f,0x1e,0x38,0x78 +.byte 0x2a,0xd2,0x7c,0x1d,0x89,0xf9,0x70,0xbc,0xef,0x09,0x77,0xd3,0x6a,0x56,0xa1,0x8b,0x4b,0x23,0x1b,0xb1,0x2f,0xec,0x84,0xe5,0x59,0xc5,0x20,0x23,0xbc,0x3f,0x0a,0x43,0x97,0x1c,0x5e,0xf7,0xee,0xfe,0x0b,0x2a,0x42,0x08,0x2a,0x39,0x91,0xce,0x8a,0x33,0x9f,0x63,0x77,0x6d,0xf6,0xf3,0x0e,0x1d,0xb3,0xfb,0xcf,0x2f,0x7f,0x95,0xc2,0x71 +.byte 0x1c,0xa0,0x0b,0xc6,0xb8,0xde,0x4d,0xd8,0xcc,0x4c,0x4f,0xaf,0x07,0x87,0x6d,0x3b,0xab,0x95,0xab,0xa1,0x6a,0x50,0x9f,0x7c,0x35,0xb6,0x65,0xdd,0xe3,0x06,0xe5,0xb3,0x42,0x5f,0x4d,0xe5,0x3e,0xfa,0x6c,0xdf,0x19,0x58,0xd1,0xf6,0xc6,0x94,0x1c,0xce,0x30,0x90,0xd3,0xeb,0xa3,0x7c,0xe5,0x3f,0x57,0x99,0x2e,0x22,0x0a,0x94,0x2f,0xfe +.byte 0x39,0x16,0xe6,0xfa,0xd0,0xb5,0xf9,0xb4,0x88,0x61,0xa4,0xa8,0xc3,0xb8,0xb7,0x52,0xaf,0x90,0xc1,0xe0,0x19,0x78,0x04,0x2b,0x71,0x04,0x03,0x2f,0x63,0xbe,0x40,0xf5,0x82,0x3b,0x1b,0x6b,0xde,0x6d,0x1e,0x86,0x87,0x82,0xc3,0x31,0x97,0x20,0xdd,0xdd,0xce,0x61,0x64,0x99,0xf6,0xbe,0xbf,0xec,0x37,0x54,0x8b,0x92,0x29,0xda,0xc5,0x7b +.byte 0x4d,0xc5,0xaf,0xb8,0x4e,0x4b,0x4a,0x2b,0x35,0x30,0xf5,0x19,0x9e,0x32,0xd8,0x2e,0xc1,0x19,0xfe,0xd1,0x61,0xb0,0xaa,0x05,0x58,0x15,0xd9,0x0e,0x4e,0xca,0x4e,0x10,0x83,0xe6,0xe6,0x57,0xe8,0x8d,0x13,0xb4,0x6f,0x85,0x59,0xf2,0x83,0xc8,0x37,0xaa,0xa2,0xe5,0xc8,0x77,0x06,0x82,0x21,0x5d,0x84,0x58,0x67,0x9b,0xcc,0x9c,0xfc,0x1b +.byte 0x28,0x2f,0xac,0xc8,0x96,0x91,0x26,0x46,0x42,0x2b,0x68,0x57,0xb0,0x79,0x1e,0xb1,0x9b,0x92,0x2c,0xeb,0x67,0x00,0xd4,0x26,0x7d,0xca,0x45,0x97,0x55,0xea,0x2a,0x20,0x70,0x7c,0x20,0x14,0x38,0x40,0x3d,0x4f,0xf5,0x3a,0x1f,0x0a,0xe3,0x9a,0x48,0xcc,0xb2,0x7d,0xee,0x5b,0x48,0x90,0x0d,0x12,0x77,0xd8,0xd3,0xb6,0xd7,0x66,0x9e,0x48 +.byte 0xbb,0x92,0xc1,0x7c,0x4e,0x90,0x4d,0xd5,0x96,0x99,0xea,0x86,0x2d,0xb9,0x5a,0x50,0x05,0xc2,0x6b,0xa7,0x0c,0x43,0x44,0x22,0x09,0xb9,0xc0,0x56,0x47,0x5f,0xdf,0xaf,0x6b,0x91,0xe2,0xd7,0x45,0x77,0x17,0x7a,0x71,0x6d,0x27,0x93,0xe2,0xc6,0x10,0x2f,0xc8,0x3b,0x75,0x78,0x11,0xae,0x07,0xe6,0xba,0x64,0xd4,0x06,0xfa,0xf9,0x1d,0x74 +.byte 0x9e,0x4f,0x6d,0x02,0xfc,0x40,0x80,0x9a,0x2e,0xd4,0x15,0x32,0x15,0xe8,0x97,0x0a,0xd4,0x65,0x6a,0x87,0xd3,0x66,0x4b,0xb8,0x66,0x84,0x8e,0xb9,0x4b,0xa7,0xcf,0x58,0x13,0x66,0x3a,0x4e,0xa5,0x76,0x17,0x13,0x92,0x79,0x42,0x67,0x6d,0xb6,0x65,0xec,0xc8,0xb5,0x5f,0x17,0x2a,0x2d,0x4b,0x19,0xe9,0x00,0x6e,0x38,0xaf,0xe9,0x06,0xb6 +.byte 0xe8,0x99,0x69,0x8a,0x74,0xe7,0x7e,0x70,0x69,0x4b,0xbc,0xce,0x5d,0x61,0x94,0x1b,0x47,0x41,0x38,0x5f,0x2e,0xcf,0x2b,0xe1,0xcd,0xa3,0x98,0x71,0xf7,0x09,0x65,0xfe,0x5f,0x62,0x4b,0x9e,0x91,0x88,0x35,0xa2,0x66,0x02,0x1d,0xc9,0x93,0x0c,0x19,0x50,0x4b,0x95,0x71,0x79,0xdd,0x74,0xe1,0xda,0x5a,0xb7,0x38,0x70,0x61,0x18,0x3f,0x68 +.byte 0x08,0x34,0xd8,0xfe,0xbb,0xd1,0xbf,0x57,0xed,0xc2,0x52,0x6d,0x54,0x3e,0xcb,0x0c,0x32,0xc7,0x09,0xa9,0x31,0x10,0xe8,0xbd,0x70,0xe3,0x0e,0xe9,0x4f,0x7a,0xd6,0x42,0x45,0x2e,0x1b,0x3c,0x0d,0x15,0x6d,0xb4,0xad,0xe9,0xc5,0xa2,0x12,0x77,0x34,0x43,0x20,0x95,0xc1,0xb7,0x51,0x72,0xed,0x78,0xa0,0xae,0x3c,0xae,0xb4,0xd4,0xda,0x58 +.byte 0x83,0x62,0xa9,0xc6,0x01,0x3d,0x14,0x19,0x07,0x00,0x3c,0x82,0x16,0x7e,0x8a,0x91,0x78,0xa1,0x65,0x0b,0x5b,0x3a,0x40,0x72,0xe5,0xf0,0xd4,0x82,0x04,0xe4,0x01,0xf1,0x84,0x87,0x96,0x26,0x91,0x66,0x77,0xf7,0x59,0xd6,0xc2,0xca,0x29,0x3b,0x68,0x2a,0x27,0x99,0x64,0x86,0xc2,0x96,0xbf,0x11,0x3c,0xa8,0x0c,0xf7,0x86,0xb8,0xc1,0x40 +.byte 0x15,0x1a,0x84,0xe3,0x93,0x23,0x73,0xa9,0x8b,0xbd,0xb4,0x8a,0xe4,0xf1,0xa5,0x8f,0x56,0xa3,0xdc,0x77,0xbd,0x7d,0x15,0x74,0x2b,0x18,0x92,0x56,0x45,0xbc,0xaf,0xf2,0x55,0xce,0x9d,0xc2,0xab,0x39,0x90,0xec,0x78,0x3f,0xa5,0x14,0xeb,0x40,0x2f,0x01,0xca,0xeb,0xad,0x73,0x85,0xbc,0xe1,0x91,0xaa,0x77,0xa9,0x6c,0x02,0x66,0x6a,0x65 +.byte 0x63,0x6c,0x50,0x62,0x83,0x83,0xef,0x16,0x4f,0x21,0xfd,0x28,0x8e,0x52,0x66,0x5b,0x6f,0x8f,0xbe,0x8d,0x17,0xb9,0xd5,0x99,0xf7,0x39,0xd1,0xbc,0xa2,0x43,0xd7,0x0a,0x80,0xea,0x42,0xf8,0x38,0x53,0x95,0x07,0x6f,0xb7,0x7c,0xc1,0x16,0x88,0xc8,0xb7,0x59,0xde,0x76,0x51,0x2f,0x92,0xd0,0x40,0xfd,0xd9,0x2d,0xca,0x9e,0x8d,0x28,0xae +.byte 0x48,0xc1,0x0a,0xe0,0x76,0x9c,0x02,0x0b,0xc5,0xd1,0xf9,0x83,0x90,0x86,0xa4,0xeb,0x5c,0x64,0x65,0xf8,0x98,0x38,0xc5,0xce,0xef,0x6f,0xc3,0x88,0xb6,0x2f,0x8a,0x40,0x55,0x52,0x47,0x06,0x75,0x16,0x46,0x9c,0xff,0x3c,0x68,0x97,0xc3,0xfb,0x10,0x11,0x7b,0xba,0x04,0xcc,0xad,0xba,0xcf,0xf0,0xae,0xba,0xe6,0x59,0x9c,0xf5,0x27,0xeb +.byte 0xdd,0x5c,0x86,0x25,0xa1,0xb6,0xb8,0x1c,0x94,0x98,0xa5,0x79,0x82,0x4e,0xdf,0x09,0x3f,0x2f,0x8a,0x4e,0x1b,0x5a,0xab,0xd4,0xe6,0x21,0xb3,0x02,0x19,0x39,0xa9,0x2e,0x0e,0xae,0x86,0x30,0xc7,0xa0,0x00,0xed,0x72,0xdc,0x71,0x77,0x42,0x76,0x54,0x68,0xb2,0x8d,0x5d,0xc3,0x5c,0x86,0xf8,0xb1,0x6c,0x67,0xdf,0x24,0x40,0x6a,0x2b,0x1d +.byte 0xbc,0x0d,0x25,0x7d,0x9e,0x1c,0xbd,0x18,0x85,0xda,0x7a,0x86,0x5e,0xed,0x10,0x80,0x83,0xa6,0xef,0x1e,0x93,0xac,0xce,0xe6,0x32,0x35,0xdf,0xb8,0xc7,0x9b,0xf0,0x0f,0x9d,0x37,0xbd,0xd9,0x58,0x33,0x19,0xa1,0x23,0x51,0x5f,0xa7,0x5a,0x99,0x7e,0x2a,0xfd,0x85,0x3c,0x26,0xad,0xcc,0x7e,0x07,0x32,0x7b,0x24,0x5a,0x6b,0x4b,0x71,0x4e +.byte 0xca,0x8b,0xc4,0x03,0x26,0x76,0x02,0x68,0x0d,0xa1,0x09,0xe0,0x2e,0xa4,0x82,0x88,0x05,0x5a,0xc4,0xcb,0x31,0x9d,0x56,0xda,0x0d,0x00,0x04,0xbc,0x07,0xca,0x1f,0xdf,0x9e,0x44,0xed,0x36,0xbd,0xa0,0x22,0xff,0x78,0xd1,0xcb,0x62,0xe0,0x0d,0x2e,0xdc,0x2e,0x36,0x28,0x8e,0xd3,0xa9,0xe0,0x38,0xd4,0xc5,0x2b,0xee,0xaf,0xa4,0x08,0x7d +.byte 0xed,0x2c,0x8a,0xf5,0x86,0x5e,0xed,0x2a,0x0d,0xbf,0xe6,0xfb,0x6f,0xc4,0x02,0x75,0x36,0xe5,0x7b,0xe9,0x4a,0xb3,0xf1,0xf4,0x86,0x6c,0x9a,0x6e,0xaa,0x7a,0xbe,0x4b,0xd6,0xf2,0x6b,0xcb,0x78,0x6f,0xf9,0x42,0x1a,0x19,0x7b,0x7e,0xba,0x59,0x02,0x8b,0xe3,0x5c,0x44,0xa4,0x84,0xa8,0x4a,0x67,0x93,0xee,0xc4,0x17,0x07,0x26,0xfe,0x86 +.byte 0xf1,0xc6,0xba,0xbf,0xc4,0x3d,0x33,0x41,0x4d,0xc4,0xf0,0xa8,0x6d,0xe1,0x06,0x16,0x2d,0xc9,0x5d,0x2a,0xf5,0x4a,0xc6,0xd2,0x8c,0x98,0x55,0xe8,0x8d,0xd0,0x31,0x5f,0xc7,0x05,0xd1,0xca,0xd2,0x72,0xe6,0xd0,0xcb,0x62,0x79,0xac,0x60,0x59,0x94,0x59,0x48,0x9e,0x91,0x17,0xa7,0xa0,0xac,0x4a,0xe5,0x08,0xe5,0x52,0xa4,0xd4,0x83,0x8c +.byte 0x83,0x57,0xe7,0xe5,0xfc,0x9b,0x43,0x78,0xc8,0x7e,0x94,0xc4,0x35,0x3e,0xac,0x4a,0x8d,0x60,0x80,0xdc,0x72,0xe3,0x15,0x09,0x2a,0xbd,0xcc,0x9a,0xe4,0x1a,0x18,0xa8,0xf1,0x29,0x9b,0xca,0x58,0x0b,0x6d,0x7b,0x33,0x91,0x05,0x27,0x6a,0x48,0xbe,0xac,0x08,0xa5,0x2a,0x64,0xf5,0xae,0x2a,0x90,0xf1,0x2d,0x3f,0xa8,0xff,0x17,0x92,0xc4 +.byte 0xec,0x3a,0x09,0xbf,0xae,0xd3,0xe2,0x1c,0x3c,0xc8,0x6f,0x91,0x72,0x99,0xe3,0x82,0x30,0x4f,0x40,0x5c,0x0c,0x8d,0xfd,0xbe,0x10,0xbc,0xce,0x1e,0x0a,0x09,0xbf,0xde,0xdc,0x72,0x7e,0x4c,0xbc,0xec,0x34,0xe2,0x96,0x8a,0xc6,0xee,0x19,0x6c,0xa8,0xf1,0xa5,0xb2,0x71,0x88,0x13,0xe8,0x11,0xda,0x3b,0x77,0x10,0x9c,0x9f,0x74,0x49,0x21 +.byte 0x16,0xcf,0x6f,0x05,0xc5,0xc1,0x4d,0xfe,0xe7,0x4d,0x67,0xe8,0x12,0x14,0xf7,0xaf,0x66,0x8d,0x55,0x34,0x00,0x18,0x10,0x6e,0x6a,0xd2,0x4c,0xd9,0xd3,0x15,0x40,0xbf,0xce,0x7b,0x10,0x69,0xbd,0x15,0x0e,0x60,0x2b,0x76,0x50,0x80,0x92,0x02,0x3c,0x0f,0xea,0x47,0x03,0xd9,0xf6,0x2c,0x00,0xde,0x29,0xb9,0x2e,0xf6,0x80,0x10,0x81,0x28 +.byte 0x6f,0x41,0xfc,0x88,0x65,0xe9,0xb5,0xd4,0x78,0x53,0xff,0x04,0xc4,0xdd,0xd7,0x35,0x34,0x59,0x85,0x33,0x01,0x33,0x67,0xe1,0x4e,0xc2,0xac,0xe6,0x24,0x24,0xb6,0x83,0x48,0x08,0x0c,0x73,0xe5,0x9c,0x98,0xe4,0x4c,0x3c,0x1f,0x6e,0x77,0xea,0x8c,0x76,0x23,0xbb,0x41,0x5e,0xc1,0x8a,0xba,0x3e,0xe5,0x3e,0x86,0x89,0xab,0x32,0x65,0x1b +.byte 0x00,0x92,0x56,0xe0,0x62,0xc1,0x8f,0xeb,0x15,0x7f,0x86,0xdf,0xa2,0xc2,0x8d,0xf5,0xb5,0x88,0x72,0x8c,0xba,0x92,0x30,0x53,0x58,0x3e,0x0b,0xe6,0x4f,0xd4,0xef,0x34,0xab,0xbb,0x61,0xe0,0x31,0x3c,0xe7,0xb2,0x5f,0x64,0xcb,0x52,0xc7,0x1d,0x95,0x96,0xd2,0x8c,0x87,0x34,0x92,0xf2,0xad,0xd9,0x78,0x1d,0xa1,0x67,0x58,0xfa,0xfb,0x06 +.byte 0xc8,0x7f,0x9e,0xf7,0x02,0x12,0xd9,0x8c,0x68,0xbc,0x2b,0xd3,0xe1,0x0e,0x1e,0xbd,0x33,0x7a,0xfd,0x03,0x41,0xb9,0x72,0x2e,0x63,0xfe,0xb1,0x39,0xc3,0x0f,0xa0,0xa9,0x76,0x4f,0x7b,0xab,0xae,0xda,0x22,0xec,0x83,0x32,0xb0,0xec,0xd1,0xfd,0xc2,0x28,0x1e,0x42,0x29,0x31,0xd5,0xb3,0x33,0xcd,0x13,0x1d,0x9f,0xac,0x73,0x27,0xf7,0xea +.byte 0xc6,0x66,0xd2,0x32,0x91,0x60,0x35,0xf4,0x28,0x34,0x43,0x6a,0x74,0x8c,0x05,0x2a,0x84,0x34,0xfd,0x84,0xa5,0xcb,0x1d,0x2b,0x41,0x28,0xa6,0x19,0xed,0xcd,0xad,0xea,0x6e,0xf7,0x14,0x18,0xac,0x56,0x9a,0xf5,0xaa,0x7d,0x4e,0x8a,0x99,0xd1,0xda,0x41,0xaf,0xe8,0xfc,0xef,0x66,0x88,0xd0,0xed,0xfd,0xae,0x2a,0x85,0xc0,0x60,0xa2,0x30 +.byte 0x5d,0x1b,0x48,0xf6,0x3e,0xcf,0x56,0xdf,0x53,0xdc,0x2d,0xf5,0xfd,0x7f,0x2a,0x2a,0x4d,0x4f,0x11,0xcc,0xea,0x72,0xdb,0xb9,0xeb,0x92,0x0e,0x9f,0xc1,0x26,0xe9,0xbf,0x25,0x6a,0x27,0xe1,0x63,0x9b,0xdd,0x62,0x38,0xad,0xd3,0xb2,0x75,0x62,0x45,0xbf,0xbf,0xf4,0xe2,0xd6,0x97,0xe9,0xeb,0xeb,0x98,0xab,0x73,0xdc,0x8a,0xde,0xaa,0x3b +.byte 0x69,0xfd,0x61,0x6f,0xbb,0xfc,0x28,0xc0,0xff,0x37,0x2e,0xeb,0x31,0x59,0x57,0xfb,0xd3,0x0e,0xed,0x01,0x66,0x50,0x63,0x53,0xa2,0xd1,0x24,0x8c,0xc8,0x8d,0x80,0x03,0x2a,0x1e,0x11,0x3a,0xb9,0x6c,0xf4,0x5f,0x58,0xa2,0xd6,0x58,0x6b,0x85,0x61,0xd1,0xe7,0xdc,0x90,0x07,0x34,0x6e,0xb9,0x0b,0x0d,0xcb,0xd5,0xe3,0xc6,0x9d,0xb8,0x51 +.byte 0x37,0x61,0xd0,0x6c,0x2e,0xed,0xe0,0xbc,0x55,0x74,0x63,0x1b,0x42,0x17,0x6a,0x9c,0x91,0x1b,0x96,0x76,0xc8,0xe4,0x2b,0x2e,0x90,0xd9,0xe5,0x3f,0x56,0x1b,0x2f,0x93,0x81,0x86,0x2a,0xb4,0xdf,0x93,0xcb,0xfa,0x01,0x85,0xd9,0x26,0x46,0x46,0x97,0x2a,0x2e,0xb3,0x91,0xe4,0xcf,0xd9,0x01,0x5a,0x37,0xa6,0xca,0x5e,0xed,0xa9,0x94,0x35 +.byte 0x2c,0x69,0x5b,0x1e,0xf8,0x38,0x61,0x41,0x10,0xf6,0xe9,0x6e,0x96,0xee,0xe6,0x5f,0x78,0x14,0x93,0x12,0xd2,0x57,0xe5,0xf4,0x58,0x46,0xca,0xc8,0x75,0x59,0xbd,0xd0,0xe4,0x70,0x35,0xa5,0x4a,0xfd,0x54,0xe2,0x91,0x76,0x0e,0xe6,0xe3,0xbb,0x31,0x65,0x4b,0x18,0xa8,0xb4,0xfa,0xa6,0x7d,0x7a,0xa9,0x47,0x3d,0x2b,0x2e,0x66,0xac,0x5b +.byte 0x3e,0x5e,0x8c,0x27,0x0c,0x33,0x04,0x03,0x4e,0x5f,0xcd,0x6b,0x9c,0xaa,0x13,0x83,0x38,0xe9,0x38,0xcf,0x03,0x70,0x5a,0x0f,0x18,0xf5,0xec,0x64,0xf3,0x0c,0xe8,0xb1,0xa9,0x07,0x70,0xf7,0xde,0x0c,0x35,0xf5,0xe2,0xcd,0xed,0xe6,0x4d,0xac,0x5c,0x4d,0x3e,0x03,0x96,0x90,0x7b,0x4c,0x3e,0x18,0x42,0xc0,0xa7,0x23,0x12,0x8e,0x54,0xc1 +.byte 0xa1,0x2f,0x82,0x13,0xe6,0x1f,0x74,0xae,0x7b,0x4a,0xa4,0xbb,0xdc,0xc0,0x68,0x0f,0x83,0xbc,0xda,0xce,0xa2,0xe7,0xbe,0x18,0xcd,0x8b,0x35,0x05,0xa3,0x4b,0x6f,0xf0,0x53,0x12,0x42,0x2f,0x3c,0x09,0x87,0xb7,0xe3,0x36,0x29,0xe1,0xa2,0xb6,0x60,0x05,0xb9,0x66,0x80,0xe9,0xec,0x40,0x2a,0x55,0x78,0x5f,0x1c,0x5f,0xc3,0xc7,0x49,0x69 +.byte 0x87,0x97,0x5f,0xa5,0x31,0xa8,0x83,0x66,0x5a,0xd7,0xaf,0xf0,0x15,0xf3,0x01,0x62,0x9a,0x88,0x76,0x0f,0xb3,0xdf,0xf1,0xc6,0x34,0xc3,0xac,0x68,0x60,0x9a,0x91,0x03,0x13,0xea,0x0e,0x36,0x9c,0xf5,0x51,0xb7,0x0c,0xa4,0xeb,0xf0,0x41,0x85,0x54,0x05,0xed,0x7a,0xc2,0xba,0x3b,0xb8,0x1c,0x41,0x0d,0xbb,0xad,0x16,0x7e,0x64,0x4f,0x88 +.byte 0x7a,0x17,0xae,0x76,0x55,0x78,0x93,0xe8,0x99,0xa1,0x70,0x1f,0xf6,0x8a,0xb9,0xeb,0x41,0xb9,0x08,0xb8,0x9d,0x78,0x57,0xa1,0xe1,0x23,0xa0,0x03,0xd3,0x16,0xbc,0x16,0x24,0xed,0xc5,0x12,0x16,0x0a,0x8a,0x23,0x11,0x22,0xc2,0xfe,0x49,0x9d,0x3d,0x10,0x3d,0x4b,0xeb,0xab,0xcb,0x21,0x9d,0x9d,0xb1,0x64,0x87,0xe5,0x4d,0xb9,0xe7,0x10 +.byte 0x05,0xa0,0x55,0x2f,0xdf,0x53,0x5e,0x03,0xec,0x7e,0xe4,0x1f,0x9b,0x16,0x0c,0xfc,0xd9,0xf9,0x66,0x39,0x93,0x9e,0x49,0x34,0x97,0xd6,0xa5,0x56,0x00,0xf1,0xaf,0x08,0xeb,0x58,0xcf,0x87,0x02,0xc4,0xf1,0x24,0xe8,0x29,0x83,0xc9,0x5d,0x56,0x68,0xa2,0xaa,0xba,0xb3,0x86,0x23,0x59,0x8d,0x32,0x96,0x4a,0xbb,0xe9,0xf2,0x53,0xb2,0x87 +.byte 0x4a,0xf5,0xdc,0x23,0xd4,0x2f,0x36,0x70,0xb5,0x1d,0xee,0x47,0x51,0x6c,0x35,0x2a,0xad,0x35,0x74,0x1b,0x98,0xb5,0x33,0x2c,0x6d,0x4c,0xf8,0x39,0x07,0x92,0x6c,0xc7,0x65,0x10,0x64,0xcd,0x53,0xa3,0xcb,0xcc,0xe4,0xb2,0x46,0xb3,0xb7,0x44,0x01,0x92,0x44,0x12,0x23,0x25,0x3e,0x00,0xe3,0xeb,0x5f,0xe5,0x76,0x48,0x4e,0x4a,0x7f,0x36 +.byte 0xf0,0x0b,0x5e,0xc0,0x97,0x0d,0xc8,0xcf,0xd5,0xb8,0xc0,0x11,0x8d,0xb9,0x1e,0x31,0x0f,0x84,0x36,0x2e,0xe0,0x42,0xe6,0x02,0x9d,0xa4,0xdb,0xa2,0x76,0xfd,0xa1,0x95,0xe0,0x49,0xe6,0xf1,0xd2,0xae,0x27,0x6b,0x11,0x05,0x47,0xb0,0xaa,0x61,0x01,0xd4,0xe6,0xcd,0x9d,0x7e,0x33,0x5d,0xec,0x22,0x96,0x59,0xb7,0xc5,0x50,0x83,0xa4,0x66 +.byte 0x56,0xc7,0x43,0xa6,0xf7,0x5d,0xb2,0x45,0xc0,0x96,0xa0,0x5b,0xb8,0xed,0xae,0x29,0xb3,0x7d,0xbd,0x01,0xde,0xc0,0xe7,0xcc,0xe9,0x55,0x32,0x32,0xbf,0xdd,0x03,0x1b,0xb0,0x4e,0xff,0x53,0x1f,0x4b,0xc6,0xec,0x16,0x9d,0x5b,0x78,0x74,0xc4,0x75,0x51,0x8a,0x1c,0xae,0x6b,0xcd,0x9c,0x77,0x47,0xbf,0xd1,0x38,0x3e,0x9e,0xc0,0xad,0x16 +.byte 0xb7,0x15,0x6b,0xdc,0xad,0xe9,0x13,0xbc,0x48,0xc1,0xaf,0x69,0xce,0xc4,0xcc,0x9b,0x73,0xf9,0xd5,0x7c,0xab,0xf0,0xf1,0x9b,0xea,0xc6,0x0b,0x19,0x47,0x42,0xc1,0xa0,0x02,0x64,0x17,0xce,0x88,0x4f,0x16,0xa6,0xed,0xdb,0xfe,0x61,0xd3,0xd6,0xc0,0x11,0x30,0x16,0xd2,0x45,0xb3,0x7e,0x52,0xd0,0x94,0x77,0xf0,0x0e,0xbf,0x16,0xc0,0x4a +.byte 0x2a,0x5c,0xac,0x55,0x57,0xb1,0x41,0xb6,0xa3,0x68,0x8c,0x0a,0x66,0x15,0xb4,0xf5,0xd9,0x9a,0xa9,0x68,0xf2,0xbc,0x06,0xc5,0x7c,0xd1,0x18,0x55,0x9a,0x2d,0x94,0x2e,0x04,0x4b,0x7d,0x3c,0xb1,0xe3,0x03,0x7a,0xa7,0xe3,0xe5,0x63,0x49,0x7c,0x3f,0x0a,0xc5,0xbd,0xd3,0x0f,0x04,0xfd,0x99,0xf7,0xe6,0x05,0x35,0x66,0x17,0x05,0x85,0x3b +.byte 0x98,0x92,0x11,0x26,0xe2,0x21,0x52,0x1b,0x54,0x08,0xc8,0xf0,0x4e,0x75,0x22,0x3f,0xe8,0xb6,0x35,0xa4,0x02,0x52,0x70,0xc2,0xce,0x5a,0x00,0xe2,0xe2,0x92,0x8c,0x97,0xa7,0x1d,0x42,0x52,0x8b,0xf1,0x81,0xa7,0xce,0x60,0x46,0xbe,0xf0,0x1d,0x34,0xdf,0x73,0x2a,0xd6,0x9a,0x2d,0xf9,0xe3,0x91,0x05,0xe4,0x1f,0x31,0x11,0x30,0xb0,0xff +.byte 0x8f,0x61,0x74,0xf4,0xef,0xcd,0xf6,0xa4,0x9a,0xd2,0x5e,0xba,0x27,0xe8,0x78,0x38,0xfc,0x75,0xff,0x3b,0x6c,0xde,0x4a,0x46,0x47,0x8e,0x97,0x28,0xe4,0x23,0xe0,0x10,0x07,0xca,0xcb,0x6d,0xed,0x29,0xc0,0xee,0x98,0x96,0x7c,0x90,0x1f,0x89,0x12,0x0f,0xd5,0x28,0xcf,0x6e,0x4b,0x9b,0x2d,0xb3,0xcd,0x97,0xb8,0xeb,0x58,0x23,0x26,0xb1 +.byte 0xb4,0x95,0x11,0x1e,0xee,0x00,0xde,0x24,0x28,0xa6,0x3f,0x15,0xa2,0x9a,0xcb,0x9d,0xe3,0x04,0x5d,0xc3,0x60,0x97,0x14,0x2c,0x84,0x2b,0x69,0x9c,0x2a,0xbf,0x08,0xba,0xc4,0x38,0x36,0xaa,0x89,0x11,0x32,0x63,0x01,0xa2,0x44,0x5f,0x50,0xf0,0x5b,0x11,0x15,0xc8,0x80,0xc9,0xa6,0xe7,0x5d,0x70,0xa8,0x34,0x42,0x97,0x2a,0x60,0x99,0x20 +.byte 0xa6,0x60,0xc0,0x70,0x8d,0x2f,0x3f,0x8a,0x14,0x80,0x8a,0xbe,0x05,0xb3,0x50,0x16,0xaf,0x32,0xb4,0x35,0x3e,0x1d,0x31,0x42,0xdd,0x50,0xeb,0x04,0x82,0x4c,0x83,0x3d,0x8f,0xb6,0x1e,0xc2,0xa9,0xd2,0x30,0xba,0x33,0xdb,0x97,0x6d,0x2d,0x97,0x59,0x33,0xc0,0xf8,0xa5,0x59,0xc5,0x44,0x9c,0xf1,0x06,0xc4,0xf2,0x31,0x3e,0xff,0xb8,0x12 +.byte 0x00,0x4d,0x6c,0x2d,0xa1,0xc7,0x83,0xea,0x55,0x93,0x0e,0x89,0x76,0xbf,0x56,0x2a,0x99,0x62,0x54,0xad,0x2c,0xe8,0xf0,0xf9,0x70,0x18,0xa5,0x2b,0x24,0xac,0x59,0xc9,0x84,0xe3,0x1a,0x9d,0xa0,0xdb,0x1b,0x7f,0xd5,0x7e,0xb5,0xe0,0x86,0x36,0xc5,0x71,0x6a,0xab,0xdb,0xa5,0x84,0xf1,0x9e,0x9e,0xf6,0x1b,0xab,0x47,0x94,0x38,0x8e,0x5d +.byte 0x55,0xb4,0xf5,0xc3,0x59,0xc2,0x2c,0x6d,0x9d,0x28,0x7d,0x33,0xcd,0xc7,0xd6,0xdf,0x10,0xda,0x7c,0xd0,0x6c,0x91,0x88,0xd6,0x6b,0xe7,0x72,0x75,0x18,0xb1,0x87,0xe4,0xbb,0x10,0xe0,0xa3,0x0f,0xea,0x65,0x0a,0x70,0xc8,0xee,0x52,0x05,0x0a,0x27,0x39,0x66,0xda,0xd6,0xa6,0xfe,0x97,0x24,0x09,0x9d,0x20,0x76,0x4e,0x97,0x9d,0xa9,0x9f +.byte 0x76,0x20,0x27,0x57,0x5b,0xf4,0x76,0x1a,0x4b,0xcf,0x13,0x6c,0x9e,0x63,0x53,0x97,0xca,0x10,0xd6,0x90,0x7d,0xfc,0xe3,0x03,0x2c,0x6c,0x79,0x93,0x1a,0xae,0x0f,0x43,0xdb,0x75,0xde,0x56,0xa6,0x69,0x93,0xce,0x2d,0x94,0x56,0x77,0x90,0x19,0x71,0x7f,0x7a,0x99,0xbd,0x9c,0x79,0x62,0x00,0x49,0x3a,0x62,0x49,0x4b,0x92,0x65,0x8b,0xe2 +.byte 0xa8,0x3d,0xa5,0x89,0x23,0xac,0xea,0xf1,0xbf,0x38,0x84,0xd7,0xe2,0x65,0xb6,0xc7,0xbc,0x02,0x11,0xfd,0xe3,0x4c,0x57,0x38,0xd4,0x36,0x54,0xe8,0xbb,0x63,0x17,0xe9,0xda,0x82,0x50,0xf1,0x8c,0x34,0x4d,0x75,0x2a,0x64,0x49,0xaf,0x98,0xc3,0x1d,0xad,0x31,0xf3,0x90,0x23,0x39,0xf5,0xb5,0xf4,0x37,0x88,0x67,0x12,0x5d,0xfc,0xee,0xe5 +.byte 0x44,0x52,0x2c,0x78,0xb1,0x90,0xc1,0xc2,0x77,0x6e,0x31,0x3e,0xa0,0x36,0x87,0xb0,0xc6,0x6c,0x94,0xc2,0x43,0x4a,0x7b,0xa2,0x73,0xe7,0xa0,0xc3,0x4c,0xaf,0x4f,0xa6,0x92,0x1c,0x9a,0x6d,0xee,0xe8,0x4d,0xe1,0xe0,0xc7,0x67,0xcf,0xcf,0x7d,0x7f,0x0f,0x07,0x0d,0x6c,0x06,0x06,0xc2,0xc9,0x28,0xfc,0x8d,0xcd,0x23,0x01,0x97,0x5b,0x4d +.byte 0x1c,0xdb,0x34,0x51,0x6e,0xe2,0x56,0x24,0xd7,0xbd,0x12,0xc4,0x2f,0xb4,0x3b,0x02,0xaa,0x47,0xda,0x61,0xf6,0xca,0x44,0xa8,0x02,0xbf,0xbc,0x58,0xfb,0xa2,0xff,0xf3,0x54,0x59,0x5f,0xd7,0xa0,0x7c,0x83,0xa6,0xef,0xeb,0x71,0x51,0x74,0xa1,0x27,0x10,0x97,0x13,0x1f,0x42,0x91,0xdd,0xa8,0xf8,0xc7,0x60,0x90,0xca,0x2e,0xc8,0xaf,0x9f +.byte 0x65,0x1f,0x24,0x0a,0x30,0x5f,0xb9,0x4c,0xfb,0xcb,0xa3,0x96,0x5e,0xad,0xab,0xac,0x09,0x91,0xf5,0x96,0x1f,0xe0,0x96,0x14,0xc5,0xa0,0x26,0xa1,0xf1,0x91,0x80,0x38,0x7f,0x38,0xdc,0x98,0x96,0x20,0x46,0x50,0x20,0xd2,0x20,0xce,0x79,0xd5,0x81,0x60,0x97,0xb2,0xb0,0xeb,0x58,0x75,0x3c,0x99,0xf0,0xe0,0xfd,0xfc,0x90,0xc5,0xd1,0x3d +.byte 0x68,0x07,0xfd,0xa1,0x3f,0xeb,0x47,0xd0,0x58,0xe3,0xfa,0xbe,0xbf,0x20,0xdf,0x66,0x08,0x91,0xa4,0x5c,0x52,0x3e,0xdf,0x5c,0xb8,0xee,0xca,0xa6,0x89,0x06,0x97,0xb4,0x8d,0x60,0x35,0xb1,0xff,0x1e,0x39,0xf2,0x67,0xbc,0x71,0xee,0xeb,0x48,0x94,0x19,0x1a,0xee,0xc5,0xe2,0x7e,0x0d,0xf1,0xca,0xe8,0x2c,0xb0,0xaa,0x02,0x58,0x23,0x23 +.byte 0xce,0x37,0x5e,0xcb,0x58,0x40,0x2e,0x1a,0xa6,0x09,0x11,0x95,0xc4,0x6f,0x10,0xb0,0x15,0x22,0x48,0x67,0x74,0x6c,0x2f,0x4f,0x4a,0xb4,0x01,0xe5,0xa3,0x77,0xab,0xad,0xa4,0x04,0x22,0x71,0x58,0x4a,0x71,0xb1,0xe8,0xdf,0x43,0x18,0x0e,0x95,0x7c,0x8c,0x23,0x3a,0xf3,0x9c,0x20,0x60,0x20,0x69,0x51,0x28,0x7e,0x13,0x67,0x5c,0x7d,0x35 +.byte 0xfa,0x1b,0x04,0x8b,0xcf,0x42,0x6e,0x15,0x55,0xcd,0x04,0xdb,0x73,0xdb,0x47,0x5f,0x83,0x6e,0xd1,0x5a,0x15,0xa2,0xbb,0xf7,0xbb,0x84,0x58,0xce,0x75,0xe8,0xd2,0x92,0xd5,0xb7,0x76,0xf2,0x94,0x67,0x27,0x5f,0x32,0x91,0x3a,0xaf,0xd4,0x31,0xf8,0x92,0xce,0x63,0xb7,0x45,0x27,0xb4,0xb8,0x7a,0x1e,0x4e,0xde,0xcb,0xc8,0x5e,0xd3,0xbb +.byte 0x52,0x91,0xd5,0x72,0xad,0x98,0xec,0x07,0xa1,0x56,0xb4,0x8e,0x04,0xfa,0x48,0x3f,0x17,0x07,0xf7,0xef,0x92,0x61,0x69,0xaf,0xdd,0xfc,0x76,0x03,0xe2,0xe9,0xe2,0xbe,0x5c,0xf2,0x8a,0xc5,0x99,0x51,0x7f,0xa4,0xf1,0xac,0x16,0xec,0x16,0xf5,0xb8,0x95,0x88,0x87,0xdb,0x27,0x2e,0x63,0x12,0x31,0x7d,0x6b,0x2b,0xa0,0x9b,0xb5,0xf9,0x82 +.byte 0x42,0x04,0x94,0xee,0x60,0x6e,0x4e,0x54,0x9b,0xfd,0xeb,0x01,0x3a,0xad,0x42,0xeb,0x08,0x3c,0x6a,0xa3,0xf2,0x46,0xfb,0x18,0x59,0x2c,0xa3,0x0b,0x22,0x1d,0x5d,0x47,0xa6,0x8c,0x06,0x9c,0xa1,0xcc,0x20,0x67,0xbd,0xf0,0x5b,0x94,0x9f,0xc6,0x10,0x8c,0xc8,0x15,0x52,0xe3,0x19,0xa1,0x89,0xfd,0x99,0xad,0x4f,0x10,0x51,0x0a,0xe4,0x4b +.byte 0x02,0x7b,0x0d,0x73,0x2d,0xae,0xa4,0x68,0x1d,0xb6,0xcf,0x58,0x67,0xc0,0xd0,0xca,0x11,0x34,0x31,0x9e,0xa3,0xbc,0x12,0x28,0x1e,0x8e,0x5a,0x63,0xf5,0xda,0xf2,0x36,0x94,0x63,0x2c,0x39,0x3d,0xf9,0x80,0x9f,0xbf,0x8d,0xef,0x1f,0x15,0xc8,0xdb,0x62,0x58,0x7d,0xdc,0x0a,0x7f,0x87,0xaf,0x6d,0x2e,0xac,0x92,0x4f,0x51,0xdf,0x5e,0x75 +.byte 0x5e,0x0f,0x7c,0x51,0x49,0x88,0x0f,0x7b,0x49,0xa5,0x7c,0x41,0x4e,0x2a,0x0f,0xd0,0x0f,0x78,0xeb,0x42,0xfc,0x07,0x8a,0x8b,0x4e,0x3e,0xf2,0x42,0xc5,0x21,0x01,0x66,0xe2,0x50,0xf6,0x3d,0x28,0x1e,0xbf,0xdc,0x71,0x7f,0xc5,0x6e,0xc1,0xab,0x1a,0x33,0x49,0xdd,0xa2,0xb9,0x52,0xbe,0x93,0x97,0x97,0x7a,0xf0,0x22,0xa8,0xc5,0x01,0xc6 +.byte 0x76,0x6f,0xb6,0x2c,0x09,0x80,0x62,0x5b,0x84,0x05,0x7f,0x79,0x28,0x04,0x67,0xa2,0x0f,0xfc,0xbb,0x17,0xe2,0x85,0xe3,0xa0,0xf3,0x44,0x47,0x96,0x68,0x80,0xb2,0xbf,0xba,0x63,0x53,0x38,0x6c,0x3b,0xcd,0x3c,0xa4,0x10,0x48,0x80,0xd8,0x49,0x5a,0xf0,0x5c,0x38,0x02,0x02,0x5b,0xf2,0x77,0xa4,0xfd,0x16,0xfd,0x13,0xc8,0x8b,0x9b,0xcd +.byte 0xe1,0x8d,0x70,0xb6,0x3d,0x24,0x65,0xda,0x1a,0x42,0x6f,0x90,0x64,0x9a,0x9b,0xda,0x54,0x44,0xc0,0xe0,0xd7,0xfb,0x73,0x10,0x3c,0xcf,0xa6,0x04,0x99,0xd9,0x45,0xe5,0x74,0xfe,0xdf,0x81,0xac,0xc8,0x30,0xe5,0x66,0x45,0x02,0xca,0xcd,0xd7,0xe6,0x7b,0x0d,0xda,0xe1,0xa0,0xa1,0xa1,0x87,0x34,0x63,0x0b,0xa7,0x82,0x39,0x83,0xba,0x18 +.byte 0x0b,0x16,0x35,0x11,0x53,0x8d,0xbe,0x7d,0xa8,0x7e,0x3f,0xf4,0x71,0xc9,0x37,0x6f,0x1a,0xd9,0x3f,0x8e,0xc4,0xc1,0xd3,0x80,0xdf,0xee,0x0e,0x6b,0x23,0xf7,0xbc,0x42,0x93,0x7a,0x36,0x6f,0x03,0x24,0xb4,0x9c,0x62,0xa0,0xed,0xed,0x0b,0x66,0xa8,0x25,0xe6,0x1a,0xd4,0x13,0xd1,0x16,0x14,0x2b,0x90,0x7d,0x2e,0xa4,0xda,0xb2,0xf9,0x33 +.byte 0x54,0xf9,0x0a,0x04,0x27,0x03,0x14,0xd2,0xd7,0xe2,0xc1,0xaa,0xb6,0xe8,0xe5,0x4c,0xf2,0xdb,0x4c,0xc8,0xb3,0xa4,0xeb,0xbf,0x12,0x5c,0x9d,0x65,0xaa,0x9a,0x66,0x77,0x42,0xb4,0xd5,0x5b,0x1f,0x3b,0xd7,0x91,0x89,0x57,0x2f,0xd0,0x86,0x99,0xb2,0xc8,0xc1,0x31,0xde,0x33,0x43,0x36,0x81,0xdb,0x97,0x7b,0x17,0x3b,0xa5,0x99,0xdb,0x63 +.byte 0x2b,0x48,0x4c,0xa6,0x5c,0x6c,0xd8,0xc9,0x6e,0x72,0x39,0xbe,0x6e,0x55,0x7e,0x9d,0xb7,0x20,0x8d,0x8f,0x81,0x20,0x78,0xae,0xc6,0x1d,0xe0,0x2d,0xb1,0xe7,0x64,0xbb,0xd4,0xc8,0x08,0x61,0x14,0x29,0x08,0xbc,0x1a,0xeb,0xfa,0x64,0x33,0x91,0x7d,0x91,0x41,0x65,0x8e,0x4c,0x0c,0xb2,0x79,0xc3,0x01,0x68,0xfc,0xd6,0xbb,0x50,0xcc,0x07 +.byte 0xa5,0xf6,0x2c,0x5e,0x10,0xd6,0xa3,0x62,0x18,0xec,0xa2,0xf2,0x6b,0xad,0xcd,0x02,0x01,0x75,0xbb,0x36,0x27,0x56,0x0f,0x55,0x03,0xe0,0x57,0xe1,0x72,0xeb,0x66,0x00,0x21,0xff,0x9a,0xbc,0xc1,0x1e,0x2c,0x93,0xe6,0x4d,0x93,0x28,0x10,0x7d,0x67,0x6c,0xf1,0xa4,0xe6,0x3a,0xa6,0x30,0xc8,0x50,0x1d,0x8b,0x6e,0x7b,0x76,0x98,0x14,0x4e +.byte 0xed,0x84,0x67,0x2a,0x5f,0xac,0x0b,0x7b,0x47,0x40,0xb3,0x2d,0x7a,0xc1,0x23,0xdc,0x62,0xf8,0x8e,0x90,0x77,0xd4,0xf9,0x00,0x4b,0x67,0x04,0x72,0xf8,0xc9,0x2c,0x2d,0x0e,0x3c,0x3c,0xf3,0xfc,0xa8,0xe2,0x49,0xa4,0x00,0x82,0x98,0x72,0xa9,0xec,0xea,0xbd,0x3a,0x4e,0xd7,0x32,0xf1,0x11,0xf0,0x0d,0x9e,0xa2,0xe8,0xfe,0xcc,0x67,0xec +.byte 0xfc,0xd6,0xfe,0x83,0x5e,0x7c,0x2b,0xb3,0x42,0xf4,0x2d,0x9a,0xbe,0x20,0xd1,0x81,0x62,0xe9,0x59,0x19,0x28,0xdf,0x97,0x10,0x54,0xf7,0xde,0x60,0x51,0x6a,0xce,0x32,0x03,0x75,0x5c,0x25,0x25,0x82,0x9c,0x07,0xf7,0x2d,0xa8,0x1b,0x9f,0xd3,0x32,0x46,0x25,0x1f,0xb1,0xc5,0xbb,0x28,0x14,0x3e,0xed,0xa8,0x83,0x20,0xf4,0x9c,0x75,0xf4 +.byte 0xe6,0xc4,0x2d,0x05,0x88,0x31,0xfd,0x48,0xca,0x6c,0x7f,0xab,0xb4,0x77,0x93,0x1d,0x87,0xc3,0x4e,0xb8,0xad,0xb4,0x3d,0x37,0x7a,0xd2,0x77,0xff,0xc2,0xcb,0x9c,0xc7,0xbf,0x02,0x02,0x70,0xc9,0x9f,0x77,0x8a,0x7d,0xa7,0x9a,0x10,0xd1,0x0e,0xb7,0xec,0x61,0xee,0x77,0x24,0xe9,0x3d,0xcd,0x12,0xca,0xee,0x50,0xb0,0x27,0x5d,0xe5,0xac +.byte 0xa3,0x92,0xc7,0xd0,0x23,0x54,0xb1,0xe5,0x50,0xc3,0x15,0xd7,0x66,0x32,0x38,0x34,0xb1,0x59,0x1b,0xc3,0x59,0xe8,0xad,0x59,0x90,0x58,0x6e,0x02,0x40,0xb1,0x51,0x65,0x78,0x25,0x26,0x01,0xdd,0xcf,0x04,0xa2,0xfe,0xc3,0xbb,0x80,0x1c,0xb0,0x4e,0x9c,0x49,0x48,0xa3,0xe2,0xcc,0x81,0xc5,0xa8,0xd4,0xd5,0xe4,0xab,0x39,0xe7,0xe8,0x97 +.byte 0xc7,0x51,0xb4,0x5e,0x3f,0xe6,0xa7,0xcc,0x45,0x18,0xa2,0x6a,0xb3,0xa8,0x0b,0x7d,0xce,0x1a,0x97,0x4a,0x67,0xe1,0x3c,0x7c,0x4e,0xad,0x90,0xcf,0x2a,0x8f,0xb8,0xb6,0x96,0xaa,0x9a,0xc3,0x73,0xe6,0x71,0xdb,0x11,0x9b,0xd9,0xd9,0xfe,0xba,0x4a,0xf0,0x77,0xa4,0x15,0xb5,0xca,0xe1,0xb4,0x16,0x06,0x46,0xdf,0xc5,0x49,0x07,0x66,0xb3 +.byte 0xf5,0x30,0xe3,0xfb,0x44,0xac,0x80,0x3a,0x21,0xd9,0x5b,0x22,0x54,0x3a,0xae,0xbe,0xbd,0xf0,0x99,0x8d,0xb5,0x2a,0xf7,0xc9,0xf2,0xd3,0xfb,0x07,0x7c,0xd7,0x75,0x30,0x2a,0xcd,0x80,0xa8,0x2a,0x6a,0xb9,0x47,0xe2,0xa1,0xb0,0x76,0x6a,0x0f,0x9f,0x4a,0x56,0x3e,0xde,0xb3,0x89,0x12,0x25,0x63,0x1a,0x9d,0xea,0x64,0x08,0xc5,0x78,0xa7 +.byte 0x53,0xce,0xf8,0xb2,0xe5,0x97,0x3a,0xeb,0xd1,0x92,0xe1,0x4d,0xe0,0xf5,0x93,0x39,0x73,0xad,0x67,0xc9,0x0e,0x6b,0x16,0x4a,0x00,0xaa,0xb4,0xe6,0xa6,0xa5,0x67,0x95,0x90,0x04,0x5e,0x4d,0xc3,0x7f,0x6b,0xa1,0x50,0xb0,0x3b,0x72,0x0d,0xb3,0xec,0x9a,0x18,0x92,0x65,0x0c,0x2d,0x0f,0x94,0xd6,0x0f,0x95,0xba,0x4b,0xe6,0xc3,0x07,0x22 +.byte 0x0d,0x40,0xd4,0x0d,0x97,0x44,0xba,0x54,0x8c,0xf8,0x97,0x52,0x1f,0xa7,0xb2,0xe8,0x1b,0x0a,0xd5,0xde,0xff,0x1b,0x33,0x60,0x6a,0x28,0x68,0x36,0xb9,0x5a,0x3e,0x43,0x84,0x9a,0xb1,0x3d,0x3d,0xdb,0x1b,0xa2,0xc5,0x0e,0x2d,0xb5,0x5a,0xa5,0x36,0xe7,0xbf,0x7e,0xc3,0x76,0xad,0x1e,0xb5,0x49,0xc2,0xd5,0xa2,0x69,0x97,0x45,0x43,0x3e +.byte 0xeb,0xcd,0xdf,0x4f,0xab,0xb3,0xe8,0x49,0xaa,0x9c,0x9c,0x58,0x1e,0xc8,0x1c,0x79,0xe9,0x16,0x1d,0xfe,0x54,0xac,0x55,0x18,0x10,0x73,0x97,0xdc,0xbe,0x45,0x63,0xfb,0x48,0x41,0x88,0xb4,0x0b,0x3a,0x1d,0x65,0x40,0x1b,0x10,0x66,0xeb,0xbe,0xed,0xc7,0x6c,0xd5,0x0c,0x19,0x85,0x23,0xb1,0x38,0xb3,0x4b,0xcd,0xc7,0xc5,0x06,0x18,0x40 +.byte 0xbd,0xef,0x9f,0x2e,0x3a,0x71,0x33,0x05,0x30,0x71,0xca,0xe9,0x7a,0x2c,0xe7,0x83,0x4e,0x3d,0x4b,0xc8,0xc7,0xcb,0x74,0x9c,0xa2,0xc7,0xbb,0x8c,0x44,0x0d,0xd8,0xb3,0x01,0x7c,0xdf,0x79,0xee,0x47,0xcb,0x91,0x6f,0xc3,0xfd,0x0f,0xfb,0xf8,0x6b,0x9b,0x00,0xaf,0xf6,0x69,0x82,0xa5,0x58,0x54,0x22,0x7f,0x4b,0xee,0xa7,0x03,0xdb,0xb6 +.byte 0x5f,0x12,0xe1,0x04,0x43,0x17,0xec,0xd4,0xdd,0x39,0x28,0xfa,0xa3,0x09,0x5e,0x14,0xaf,0x6b,0xfe,0x0c,0x65,0x01,0x13,0x75,0x3d,0xe7,0x6d,0xd9,0xda,0x1d,0x13,0xc1,0x56,0x40,0x50,0x95,0x65,0x8f,0xad,0x51,0x3f,0x13,0x05,0x2f,0x83,0xcd,0xca,0x8b,0x75,0xa2,0x39,0x61,0xde,0xd7,0x36,0xf9,0x1d,0x43,0x5b,0xc4,0x9a,0xc9,0xfc,0xa8 +.byte 0xf4,0x76,0x90,0x91,0xe8,0x52,0x5b,0x84,0xe7,0xc9,0x8e,0x7d,0x84,0xba,0xb1,0x32,0x12,0xce,0x06,0x9e,0x98,0x83,0x1f,0x7f,0x31,0xd7,0xf0,0x8a,0xa2,0xca,0xae,0xb3,0x50,0x51,0x93,0xfb,0x2f,0x43,0x0a,0xee,0x06,0x85,0xec,0xb8,0xf1,0x73,0xb1,0x65,0x37,0x05,0x8e,0x68,0xf7,0x7a,0xff,0xe7,0x17,0x08,0x5e,0x19,0x75,0x3d,0xf9,0x5e +.byte 0xd5,0x25,0xf6,0x3b,0x99,0xb9,0x96,0x42,0x7a,0x37,0x8f,0x0d,0xde,0x22,0x83,0x89,0xf0,0x77,0x1f,0x22,0x42,0xc7,0xb5,0x70,0xcb,0xfd,0xf0,0xa9,0x87,0x8e,0x1f,0x01,0x9a,0x26,0xa6,0x8c,0x41,0xb9,0x12,0xd6,0xf2,0x5b,0xe5,0xfd,0xdc,0x74,0xbd,0xa1,0xc8,0xf7,0x3b,0x8c,0xe1,0x1d,0x42,0xb4,0x07,0x24,0x18,0x84,0x94,0x8a,0xce,0x00 +.byte 0xbd,0xd7,0xb0,0xfd,0x8f,0x0a,0xd3,0x75,0xa4,0xe8,0xfc,0x09,0xa9,0xa3,0x57,0x68,0x79,0x0e,0xef,0x37,0x46,0xd5,0x3b,0x8c,0x0d,0x67,0xbc,0x2c,0x5d,0x3e,0xf7,0xcc,0x9c,0x9e,0x81,0x62,0xc8,0xec,0x38,0x20,0x07,0x66,0xe4,0x83,0x15,0x13,0x3b,0x47,0x23,0xd9,0x46,0xaf,0x65,0xe1,0x40,0x2d,0x14,0x84,0x72,0xc1,0xbf,0xbe,0x81,0xc4 +.byte 0xcb,0x04,0x16,0x5e,0x2f,0x60,0x3a,0x8e,0x1a,0xd3,0xa2,0x00,0x25,0x6c,0xb7,0xdb,0x0d,0x20,0x99,0xb8,0x45,0x54,0xbf,0xc4,0x52,0x52,0x92,0x7d,0xcd,0xa1,0x9a,0x12,0x5e,0x27,0xe9,0xcf,0x79,0x9d,0xa8,0x6c,0xcd,0x37,0x20,0x08,0x09,0xc6,0x94,0x53,0x00,0x04,0xf5,0x3b,0xea,0x00,0x1b,0xc3,0x02,0xff,0xbc,0x18,0x1f,0xb7,0xf7,0x26 +.byte 0xe8,0x8b,0xc4,0x5f,0xf7,0xbe,0x9b,0xb3,0xba,0xae,0xbd,0x9c,0x3f,0x95,0xf7,0xcd,0x2b,0x40,0xf4,0x1c,0x6f,0xd7,0x52,0xe1,0xa7,0xdc,0x79,0xa4,0x88,0xff,0xfc,0xcf,0xfb,0xbb,0xe6,0xef,0xb6,0x31,0xac,0x24,0xa7,0x40,0xea,0x76,0xa2,0x34,0x6c,0xb1,0xfb,0x96,0x6b,0xfa,0xdd,0x60,0x70,0x73,0xb8,0xfd,0x66,0x3d,0xf9,0x63,0xc9,0x04 +.byte 0x70,0x20,0x35,0xca,0x04,0xb8,0xb3,0x4f,0x24,0x64,0x54,0xc2,0xd9,0x4d,0x8b,0xad,0x07,0xad,0xc5,0xb9,0x84,0xac,0x7c,0x65,0x4b,0x98,0x1d,0x09,0x23,0x95,0x5c,0x85,0x26,0xe5,0x8e,0xec,0xeb,0xc3,0xd5,0x15,0x9c,0x37,0x4e,0xf3,0x3c,0x97,0x92,0x75,0x99,0x48,0x48,0x52,0x4b,0x7b,0x93,0x54,0xd7,0x4f,0x7f,0xe5,0x51,0xdc,0x74,0x85 +.byte 0x9a,0xae,0xbd,0xf8,0xe6,0xe8,0x3f,0x1b,0xee,0x8b,0xf4,0xd8,0x5c,0x6c,0x46,0x6e,0x1d,0xaf,0x67,0x27,0x9a,0x39,0x4e,0x6b,0x99,0xcc,0xc0,0x66,0x54,0xbf,0x60,0xf6,0x24,0x64,0xfd,0x16,0xbf,0x56,0xb2,0x07,0x87,0x46,0xa6,0xef,0x40,0x67,0x78,0x2f,0x78,0x49,0x81,0x25,0xbd,0xa1,0xcf,0x78,0x68,0x25,0x8e,0x93,0x0a,0x4b,0xe1,0x92 +.byte 0x33,0x9c,0x13,0x70,0xd4,0xdf,0x74,0x34,0x8f,0x21,0xb9,0x51,0xd7,0x74,0xa9,0x02,0x6e,0xdd,0xb2,0xb4,0x6e,0x2a,0x95,0xdb,0xe4,0xaf,0x17,0xf5,0x9b,0xa5,0xc1,0x72,0x36,0x35,0x02,0x37,0x1c,0x38,0xaa,0x81,0x76,0xc6,0x1c,0xc3,0x2c,0xc5,0x45,0xaf,0x03,0xea,0xe6,0x14,0x51,0x44,0x84,0x9e,0x32,0xfe,0x4b,0x47,0xe9,0xb4,0x12,0x96 +.byte 0x13,0x6f,0x4c,0xed,0xe4,0xb0,0x79,0x7b,0xe5,0xc0,0x37,0x87,0x78,0x28,0x42,0xf7,0xd4,0xde,0xfc,0xd2,0x23,0x11,0x09,0xa5,0x11,0xc3,0xc4,0xf5,0xe0,0x2b,0x47,0x01,0x63,0xf2,0x85,0x1f,0x45,0x28,0xae,0xd3,0x29,0x04,0x1a,0x4b,0x83,0xab,0xf2,0x35,0x3a,0x40,0x2c,0x8d,0xb3,0xc7,0x47,0x0d,0xd1,0x3c,0xd0,0x1c,0x6b,0x5d,0x9b,0x4e +.byte 0xdf,0x36,0x8d,0xc6,0x54,0x9e,0x61,0x51,0xf1,0xd2,0xa4,0x39,0xad,0x4a,0x14,0xa1,0x0b,0xd3,0xae,0x91,0x1a,0x29,0xeb,0xc5,0x75,0x88,0x13,0x1e,0x96,0xdd,0x6f,0x86,0x92,0xaa,0x37,0x16,0x95,0x86,0xbc,0xb1,0x35,0xbf,0x5f,0x75,0x40,0x46,0xe1,0x6f,0x2f,0x33,0x2d,0x13,0x35,0xef,0xca,0x09,0x04,0xe4,0x42,0xef,0x69,0x66,0xda,0xa6 +.byte 0x01,0xda,0x09,0xfd,0xb1,0x40,0x8d,0xaa,0xdd,0x08,0x0d,0xf5,0xf1,0xd6,0xc6,0x11,0x3b,0xbd,0xd3,0x04,0x70,0x76,0xaf,0xec,0x9b,0xcc,0x6a,0x1d,0xeb,0x95,0x4a,0x01,0x0a,0x03,0x62,0x00,0x32,0xb3,0xe0,0xd1,0x36,0xb6,0xeb,0xde,0x4b,0x5f,0x35,0x79,0x07,0x4a,0x0d,0xa1,0x8c,0xde,0x6b,0xd2,0xca,0x71,0x64,0x73,0xf7,0x9c,0x1d,0x95 +.byte 0x5c,0xdc,0xb9,0x4f,0x00,0x2e,0x86,0x3d,0x81,0x7b,0x05,0xa5,0x9e,0x03,0xa3,0x62,0xcf,0x22,0x78,0x0b,0xfe,0x09,0x3e,0x62,0x93,0x19,0x6e,0x47,0x7d,0x92,0x4a,0x0b,0xae,0xcb,0x37,0x4d,0x5a,0x3a,0x7a,0x68,0xde,0xb2,0x7e,0xd7,0xda,0x5c,0x45,0xd2,0x0f,0x1d,0x03,0xbc,0xed,0xd8,0xe5,0x2e,0x26,0x10,0x82,0x46,0x5a,0xe0,0x13,0x32 +.byte 0xf8,0xb9,0x18,0x8c,0xbd,0xb4,0xb3,0x8c,0x2f,0xb0,0x5d,0x0b,0xf3,0x8f,0x5a,0xda,0x8b,0xda,0x39,0xfe,0xe6,0x66,0x95,0x3f,0xfe,0x49,0x89,0xbf,0x43,0x36,0x77,0xc7,0x6d,0xea,0x92,0x5c,0x71,0xa6,0x29,0x50,0xb0,0x2f,0xed,0x89,0x9f,0x2c,0xd6,0x6b,0xfa,0xbe,0x62,0x9f,0x62,0xc7,0xe3,0x2e,0xd4,0xf2,0x2c,0x9c,0x98,0x37,0x38,0x5e +.byte 0x81,0x6c,0x9e,0xcc,0xff,0x0f,0xfa,0xfa,0xe8,0xdd,0x2e,0x2d,0xb5,0x92,0x44,0x5e,0x2f,0xe1,0xd0,0x6c,0xc3,0xb9,0x11,0x95,0x70,0x4b,0x01,0xa0,0xc1,0x5e,0xe8,0x1d,0x40,0x16,0x9b,0x6e,0x29,0x1b,0x13,0xb9,0xda,0x39,0xbd,0x40,0x42,0xe2,0x06,0x35,0x57,0x2f,0xa8,0xf5,0xa7,0x00,0x60,0x07,0x26,0x21,0x6b,0xe6,0x23,0xa2,0x2a,0x70 +.byte 0xeb,0x85,0xcb,0xa9,0x73,0x31,0x62,0xf7,0xb0,0x90,0xd7,0x26,0xc1,0xd3,0xd7,0xcc,0x15,0x72,0x86,0xa6,0x0f,0x4a,0x24,0x14,0x5d,0xcd,0xbe,0xad,0x7d,0xf0,0x05,0x39,0x0c,0x10,0xbe,0x11,0x9a,0x36,0x9f,0x60,0x41,0xc6,0x7c,0xab,0x54,0x8a,0xac,0xc4,0xea,0xbd,0x43,0xeb,0x19,0x5a,0x8d,0x05,0xd1,0x83,0x58,0x92,0xb8,0xc6,0x75,0x56 +.byte 0x2c,0x58,0xb8,0x2d,0xe1,0x42,0xb4,0x0b,0xc9,0x97,0x79,0xb8,0x62,0xd0,0x15,0xd1,0x5d,0x0d,0x57,0x83,0xe4,0xba,0x73,0xa2,0x27,0xb8,0x56,0x64,0x28,0xaf,0xd2,0x58,0xe3,0xe6,0x12,0x01,0x6e,0x6a,0xfb,0x81,0x57,0xcd,0x32,0xc2,0x42,0x2a,0xe2,0x51,0x4a,0x4c,0xf8,0x69,0x0e,0xc0,0xe6,0x9f,0xf4,0x46,0x4b,0x60,0xcc,0x41,0x03,0xa4 +.byte 0x14,0xf0,0x15,0xb5,0xe5,0x39,0xfd,0x69,0xee,0xce,0x23,0x3a,0x50,0x66,0xdb,0xf4,0xe4,0x31,0x23,0xe9,0x06,0x93,0xdd,0x38,0xbc,0x2d,0xb9,0xf2,0x64,0x39,0x2f,0x1b,0xa9,0x71,0x0c,0x68,0xf7,0xb0,0x5b,0x74,0xe5,0x08,0xc6,0x5d,0xbe,0xb8,0xf7,0x40,0x0e,0xb4,0xe6,0x76,0x0c,0x14,0x8f,0x9d,0x25,0x95,0x6c,0x05,0x78,0x68,0x8a,0xa6 +.byte 0x80,0x24,0x8a,0x0b,0x6a,0xd7,0xfc,0xec,0x36,0xba,0x57,0xdd,0x49,0x82,0x3c,0x5f,0x9d,0xf4,0x57,0xac,0x16,0x99,0xed,0x73,0xa6,0xb0,0x2c,0x23,0xdb,0xf8,0x45,0x22,0xf4,0x82,0x16,0xc4,0x68,0x2f,0xe7,0x8c,0x85,0x6e,0x3c,0x43,0xdd,0x3d,0xea,0x90,0xeb,0xf4,0xef,0xf1,0x36,0x48,0x15,0x29,0x07,0x96,0x51,0xb5,0x78,0xa1,0xa3,0x59 +.byte 0x18,0x4d,0x11,0x5d,0x5e,0x67,0x69,0x28,0x29,0xcb,0xeb,0xbc,0x8f,0x17,0x12,0x57,0xaf,0xda,0xb5,0x86,0xef,0x59,0xdf,0xb1,0x6b,0x6a,0x33,0x66,0x67,0xd1,0x42,0xee,0xec,0x65,0xf2,0xeb,0x97,0x17,0x4e,0x01,0x3f,0x4d,0xb4,0x06,0x8e,0xf9,0xa8,0x79,0xb6,0xf1,0x67,0x8b,0xff,0x0b,0x5f,0x93,0x70,0x76,0x54,0xae,0x7b,0x0d,0x4a,0xbc +.byte 0xf7,0xdc,0x11,0x64,0xb3,0x6a,0xd1,0x69,0x45,0x1b,0x57,0xfc,0xb5,0xfe,0x86,0xb2,0xd6,0xde,0x82,0x23,0x86,0x6b,0x21,0x78,0x8b,0x2e,0x96,0xf8,0x04,0x8b,0xba,0x15,0xae,0x33,0x91,0x27,0x88,0xe3,0xc1,0xe7,0xf8,0xc3,0xa6,0xb6,0x73,0xec,0x84,0x95,0x22,0x45,0x58,0xb1,0x50,0x99,0xde,0x8a,0x37,0x41,0x9f,0xb8,0x27,0xd6,0xd8,0xaa +.byte 0x0f,0x0e,0xac,0xe4,0xd0,0x38,0xcf,0x2f,0x03,0x6f,0x3d,0x8a,0xd7,0x51,0xd6,0xf3,0x17,0x76,0xb5,0x0f,0xc5,0xf8,0xa7,0x0a,0x91,0xaa,0x8d,0xbc,0x15,0xd6,0x46,0xb9,0xdc,0x18,0x47,0x9c,0xd9,0x13,0xa5,0xb1,0xb5,0x45,0x2f,0x03,0x32,0x5c,0x8b,0xac,0x42,0x5b,0xd9,0x1a,0x41,0x1e,0x27,0xf9,0x92,0x72,0xc1,0xc7,0xc1,0x50,0x25,0x22 +.byte 0x7a,0x00,0x41,0x1f,0x2d,0x28,0xaf,0x41,0x96,0x8e,0x97,0x3b,0x36,0x80,0x16,0xe6,0x51,0x8f,0x07,0x13,0xd9,0x81,0x79,0x94,0x92,0xaa,0xb9,0xb6,0x39,0xf2,0x4d,0x24,0x6b,0x77,0x25,0x7e,0x47,0x6c,0xc7,0x62,0x3d,0x96,0x21,0xac,0x1a,0xf0,0x5f,0x5d,0x5a,0x7e,0x17,0xdd,0x47,0xd5,0x19,0x0a,0x85,0x3e,0xd5,0x6b,0x52,0x12,0xe2,0xbc +.byte 0x43,0x79,0x28,0x1d,0x72,0xcc,0xa6,0x6c,0xea,0x9b,0xe9,0x04,0x34,0x2c,0x41,0x3a,0x64,0xe8,0xcb,0x12,0xfa,0xd5,0x45,0xad,0xe8,0x3e,0xa2,0x5c,0xb8,0x83,0x52,0xdb,0x0c,0x98,0x24,0x76,0xd2,0x00,0x62,0xff,0xac,0xd7,0x11,0xee,0xcf,0xfb,0xdd,0x65,0xd2,0x75,0xb0,0x25,0x4e,0x76,0x3f,0xa2,0x1a,0xae,0xee,0xc1,0x59,0x1b,0x0c,0x42 +.byte 0x70,0x42,0x06,0x00,0x64,0x31,0xe0,0xce,0x3a,0x91,0x5e,0x9d,0x56,0x83,0xab,0xa7,0x73,0xc2,0x15,0x29,0xba,0xf9,0x1d,0xc8,0x4b,0xc6,0x3a,0x9e,0xab,0xd7,0xfd,0x17,0x8d,0x80,0xf0,0xa1,0x8a,0x5a,0x7a,0x80,0xd8,0x1f,0xa9,0x5b,0xec,0x68,0x99,0x3a,0x66,0xcc,0x5a,0xdf,0x5f,0xe9,0xd5,0x6a,0xf2,0x2c,0x7e,0xf8,0xa7,0xdf,0x0c,0x59 +.byte 0xbd,0x85,0xf0,0xc9,0x91,0x44,0x9c,0x86,0x24,0x60,0xfb,0xe9,0xff,0x3c,0xa7,0xa7,0x6d,0x4b,0x17,0xb3,0x24,0x99,0x14,0xbc,0x64,0xd0,0x41,0xaa,0xcd,0x26,0xd3,0xa3,0x51,0xeb,0x25,0x1d,0xb2,0x7d,0xf1,0xf3,0xf3,0xf0,0x3a,0xe0,0xb5,0xa9,0x24,0xc3,0x78,0x4a,0xef,0x9b,0x34,0x93,0xf8,0x0c,0x71,0x10,0x5b,0xf0,0xe7,0x08,0x4d,0x5f +.byte 0x74,0xbf,0x18,0x8b,0x48,0x8d,0xd7,0x23,0x81,0xed,0xa2,0x29,0xa9,0xdb,0x91,0xf6,0x61,0x7c,0xca,0x1e,0xe0,0xa7,0x21,0x9d,0xfc,0x04,0x3a,0x87,0xbb,0xf9,0xa4,0x3b,0xbb,0xc4,0x89,0xa1,0x7f,0xdc,0x83,0xfa,0x5e,0x0f,0xcf,0xdf,0xf6,0x41,0xd3,0xa3,0x76,0x76,0x44,0x3e,0x01,0xee,0xce,0xf6,0xc3,0xb9,0x49,0x43,0x6e,0xee,0x09,0x4c +.byte 0x87,0xe6,0xa3,0xf5,0xa0,0x8d,0x99,0xb3,0x3b,0xd6,0xeb,0x27,0xf9,0x34,0x68,0xc8,0x04,0x80,0xb2,0x4d,0xb6,0xde,0x98,0x81,0xe0,0xec,0xc9,0x06,0xde,0x86,0xee,0xf0,0x87,0xb8,0x67,0x0e,0xce,0xf8,0xc5,0xb1,0xd2,0xe1,0xe3,0x53,0x1d,0xbe,0x6c,0xdd,0x5e,0x83,0x02,0xf5,0xc8,0xda,0xcf,0x3c,0xcb,0x88,0x2c,0xca,0x65,0x65,0x9e,0x71 +.byte 0x4e,0xf2,0x98,0x96,0xb2,0x54,0xb4,0x96,0xdc,0x84,0xb5,0x39,0x74,0x9b,0x61,0xcf,0x52,0xef,0xb3,0x0c,0x62,0xc9,0x92,0xe1,0xe5,0x6f,0x2f,0x0c,0x61,0x0d,0x6f,0xfd,0xd8,0x84,0x25,0xba,0x20,0x59,0x00,0xf5,0xa9,0xf1,0x77,0x6e,0x9a,0x3d,0x93,0x69,0xde,0xaf,0x9a,0xe6,0xe3,0xfd,0xb9,0xd3,0x04,0x82,0x18,0xa1,0x5b,0x9b,0xe0,0x29 +.byte 0x4c,0x64,0xf5,0x95,0x57,0x25,0xd3,0x04,0x8b,0x4a,0xe9,0x57,0x6f,0xd1,0x8c,0x40,0x73,0x49,0x32,0x93,0x3f,0x26,0xb4,0x6b,0xd3,0xd4,0x90,0xb7,0xe1,0xaf,0xa0,0x9a,0xc0,0x86,0xb7,0x5e,0xec,0x29,0xaa,0x03,0x4e,0x56,0xb5,0xcd,0x46,0x7d,0xe0,0x26,0x3d,0x5f,0xd3,0x55,0x86,0x68,0x4a,0xc5,0x42,0x5d,0x60,0x3a,0x39,0x6f,0x45,0xb9 +.byte 0x6a,0xea,0xf4,0x05,0xc8,0x24,0xf8,0xcd,0xe5,0xeb,0xca,0x3a,0xe7,0xb4,0x59,0x83,0x5a,0xa5,0x1d,0xe4,0x6a,0xaa,0x35,0x00,0x42,0x32,0xa5,0x6c,0x3e,0xc1,0xc2,0xc4,0x9d,0x2e,0x43,0x57,0x79,0x52,0xf6,0x1e,0x02,0xb8,0x9b,0xcd,0xf0,0x3d,0x57,0xa3,0x6f,0xf7,0x12,0x54,0x6c,0x63,0x0d,0xb2,0xba,0xff,0xa1,0xf6,0xf5,0xdf,0xa5,0xed +.byte 0xda,0xdf,0x56,0x72,0x1e,0xc5,0x3f,0xad,0xd0,0xf9,0x38,0x94,0x51,0xe3,0xa4,0xb4,0xbf,0xd5,0x24,0x2a,0x90,0xfe,0xd4,0x34,0x6c,0xa8,0xc8,0x1c,0x9a,0xaf,0xac,0xff,0x5b,0x67,0x44,0x4c,0x4d,0xa7,0x59,0x2c,0x9f,0x67,0x07,0x25,0xe1,0x7f,0x4e,0x4a,0xaa,0x8f,0x5d,0xd1,0x26,0x0d,0x73,0x9b,0x69,0x5d,0xdf,0xb2,0xa5,0x89,0xbb,0x82 +.byte 0x0b,0x09,0xf3,0x11,0x76,0x5d,0x2d,0xad,0xc3,0xc1,0x15,0xbc,0xaf,0xa2,0xe6,0xd5,0xb0,0x6d,0x80,0xa6,0xda,0xfa,0x3b,0x9c,0xaf,0xff,0x98,0x40,0x83,0x3a,0xe1,0xb8,0x98,0x0e,0x97,0x00,0x89,0xfb,0x37,0xcb,0x81,0x36,0x34,0x33,0xbb,0x5c,0xd0,0x51,0x37,0xd6,0xb5,0x6c,0x3a,0x61,0x0a,0x27,0x23,0x96,0xa9,0x79,0x8d,0xf0,0xbe,0x31 +.byte 0xba,0xdc,0x89,0x4e,0x88,0x98,0xe4,0x10,0x15,0x8a,0xe1,0xae,0xe8,0x6d,0xa4,0x61,0x56,0x14,0x84,0x59,0x64,0xc2,0xaa,0xd8,0xfd,0x19,0xfc,0x17,0xf1,0xfc,0x6d,0x17,0xcb,0xea,0x7a,0x47,0x00,0x75,0x17,0xf3,0x62,0xfe,0x3a,0xbc,0x28,0x1a,0x0e,0x88,0x48,0x63,0x4a,0xcb,0x20,0x46,0xa4,0x75,0xf8,0xf1,0x7a,0xd6,0x92,0x7f,0x92,0xfa +.byte 0x91,0x95,0x2f,0xbc,0x5b,0x42,0xf1,0x55,0xaf,0x91,0xa2,0x3b,0x29,0x5c,0xc8,0x5e,0x97,0x91,0xa2,0x2e,0xd2,0xa8,0x1c,0xf6,0x16,0xc5,0x15,0xf2,0x42,0xb3,0x41,0x59,0x52,0x8d,0x94,0x52,0xc4,0xc6,0x2c,0xdd,0x6f,0x01,0xea,0x62,0x42,0x83,0x7e,0x2e,0xf8,0xb8,0xc1,0xf3,0x71,0xd1,0x11,0x14,0x7a,0x3d,0xcd,0xec,0xe0,0x79,0x8b,0xbd +.byte 0x28,0x12,0x60,0xf0,0x66,0xf1,0x1c,0x1c,0x19,0x07,0x8c,0x26,0xff,0xcc,0x72,0x9a,0xbd,0x12,0xe6,0x2b,0x2b,0xb1,0x32,0x04,0x98,0x92,0xd9,0x24,0x97,0x59,0x46,0xc6,0x11,0xe1,0x31,0x14,0x46,0x27,0x96,0xb1,0x06,0x81,0xd5,0xe8,0xff,0x45,0x3d,0x3c,0x04,0x9a,0xd8,0x0b,0x1f,0x41,0x03,0xba,0x1b,0x3e,0x4e,0xd5,0x7d,0x48,0x00,0x68 +.byte 0xb3,0xe8,0xe0,0xc8,0x3c,0xcf,0xdc,0xbe,0x29,0x90,0x64,0x51,0x18,0xdc,0xcd,0x87,0xcb,0xa8,0x3d,0xf8,0xb4,0x73,0x11,0xdc,0x7a,0xcb,0xa4,0x81,0x9e,0x3a,0x72,0xde,0x18,0x36,0x86,0x15,0x91,0xbc,0xeb,0x7f,0xe2,0xfb,0x6b,0xf1,0x5a,0x3d,0x05,0x50,0xeb,0xcf,0xd2,0xcc,0xf2,0x62,0xb1,0x32,0x46,0x14,0x95,0x4e,0xdf,0x73,0x64,0x61 +.byte 0x5f,0x3d,0xbf,0x52,0x3e,0xa7,0x55,0x01,0x9a,0xd8,0x01,0xef,0xf7,0x60,0x6f,0x83,0x43,0x6b,0x4c,0xa2,0xc8,0x04,0x34,0x70,0x70,0xa1,0x99,0xc9,0xa7,0x54,0x1e,0x87,0x99,0xb3,0xec,0xfe,0xe9,0x2d,0x39,0xef,0x6f,0x4d,0x8c,0xf2,0x4b,0xd2,0x12,0x5d,0xb6,0xa7,0x0b,0x04,0x3b,0x69,0xdd,0x9a,0x18,0x2d,0xd9,0x22,0x00,0x38,0x15,0x9a +.byte 0x6e,0x6c,0x0c,0x84,0x32,0x32,0xb2,0xf9,0x61,0xef,0x74,0x35,0xec,0xcc,0xd7,0xbc,0x9d,0xe9,0xcd,0xe3,0xa0,0xa5,0x15,0x0a,0xfe,0x1f,0x37,0x35,0x2b,0x7c,0x42,0x50,0x81,0x67,0x52,0xb7,0xa7,0x9e,0x8f,0xda,0x64,0xc0,0xc0,0xc3,0x93,0xc7,0x9d,0x41,0xb8,0x4b,0x69,0x80,0x13,0x88,0x8a,0x07,0xf9,0x47,0xad,0xc9,0x4f,0x3d,0xc7,0xba +.byte 0xd2,0xf2,0x7a,0xa0,0x38,0xbe,0xe1,0xfa,0x83,0xda,0x79,0x29,0x7f,0x4c,0xfa,0x0e,0x9b,0x59,0x1e,0x89,0x76,0x05,0x60,0x84,0x13,0x63,0x11,0x14,0x20,0xa9,0x2b,0xd0,0xc3,0x58,0xcc,0x73,0x3e,0x2c,0xa8,0xa7,0xa5,0xd0,0x2f,0x03,0xfc,0xa9,0x5d,0xdd,0xcd,0x40,0x91,0x90,0x1f,0xda,0x0a,0x73,0x58,0xd8,0x84,0x05,0x45,0x01,0x84,0x52 +.byte 0x8b,0x9b,0x17,0x98,0xa8,0xc4,0xc3,0xb5,0x94,0xd5,0x32,0x86,0xe9,0x10,0xe5,0xa5,0x99,0x8d,0x57,0x3e,0x32,0x25,0xfa,0xb4,0x5c,0x3a,0x5f,0xa6,0x2d,0x7d,0x4e,0xd3,0x7b,0xee,0x41,0x23,0x5e,0xc2,0xc9,0x91,0xf4,0x21,0xe0,0x4f,0x0d,0x87,0x30,0x53,0xf1,0x0e,0x63,0xe8,0x5b,0x3d,0xee,0x4a,0xc8,0x78,0x38,0xa2,0xa4,0xe8,0x72,0x41 +.byte 0xf1,0x37,0x30,0xe3,0x3d,0x93,0xc6,0x4b,0x10,0x0d,0xf6,0x20,0x15,0x0a,0x77,0x41,0xd5,0x7d,0xcb,0xf9,0xda,0x3b,0x17,0xa6,0xf1,0xe4,0x56,0xd4,0x65,0x7b,0x33,0xe4,0xef,0x34,0xfb,0x8c,0x9f,0x87,0x86,0xfc,0xce,0x90,0x60,0x77,0x57,0xc0,0xe4,0x37,0x2c,0xdf,0x41,0x95,0x85,0x89,0x4e,0x77,0x3f,0xa0,0xc7,0x55,0x4c,0x3f,0xa8,0x10 +.byte 0xd2,0x87,0x7e,0xd2,0x97,0xa1,0x6c,0xe7,0xec,0xaa,0xf6,0x93,0x13,0x2e,0x10,0xed,0x5b,0x7a,0xed,0x53,0xb4,0x55,0xaa,0xb4,0x67,0x78,0x07,0x5f,0xc2,0xd2,0xf1,0x7b,0x98,0xf0,0x82,0xf6,0x7c,0xb2,0xd4,0xa8,0xc2,0x53,0x39,0x21,0x7f,0xa0,0x76,0x37,0x1a,0x69,0xb3,0x49,0xd4,0xc3,0xd1,0xcb,0x31,0x76,0xec,0xaf,0x75,0x66,0x31,0x65 +.byte 0xeb,0x44,0x63,0xa0,0x13,0xf5,0x9e,0x67,0x40,0x41,0x76,0xce,0xd3,0xd6,0x91,0xb1,0x3a,0x07,0xff,0x38,0x1e,0xaf,0x55,0x57,0x55,0xd1,0x94,0x63,0xd3,0x81,0x16,0x59,0x68,0x01,0xe8,0x6d,0x7d,0x7a,0xa1,0x39,0xb9,0xa2,0xba,0x79,0x9d,0x69,0x00,0x13,0x59,0x2f,0x3d,0xef,0x10,0xe7,0x3c,0x02,0x7d,0xa3,0xa8,0xee,0x31,0x1a,0xad,0xa6 +.byte 0xdb,0x1b,0xe3,0x4a,0xdd,0x60,0xfb,0x4e,0xa6,0x49,0xbb,0xea,0x34,0x5d,0x21,0xac,0x83,0xa4,0xb5,0x23,0x8e,0x69,0xb3,0x25,0x14,0x8d,0xc2,0x89,0x8d,0xcf,0x38,0x46,0x18,0xb6,0x0c,0xce,0x45,0x22,0xeb,0xb5,0xb2,0xed,0xe5,0x0f,0x35,0x8f,0xdd,0xa1,0x15,0xd6,0x50,0x5b,0xe1,0x04,0xa7,0x32,0xc0,0xc9,0x03,0x56,0xc2,0x33,0xe8,0x16 +.byte 0x1c,0xd4,0x7a,0xfd,0x6b,0x4d,0x04,0xc0,0x9e,0xf8,0x32,0x9f,0x52,0x24,0xac,0xc5,0xb0,0xa1,0x63,0x77,0xc9,0x14,0xaf,0x46,0x60,0x67,0x52,0x81,0xbb,0x3f,0xf5,0x7f,0xad,0xef,0x7c,0x3a,0x71,0xc1,0x1e,0xea,0x4a,0xe0,0xd7,0xdd,0x31,0xf2,0x4b,0xdf,0x53,0x8a,0xc9,0x59,0x7a,0xb2,0x6f,0x7e,0xc0,0x00,0xa4,0x0d,0x09,0x9c,0xf7,0x22 +.byte 0x22,0xa9,0x37,0xde,0x3b,0xe1,0x74,0x85,0xcf,0xc5,0xb7,0x7b,0x0a,0xfd,0x6b,0xfa,0x98,0x49,0xa9,0x7f,0x52,0x23,0x0e,0xc0,0x4a,0xb3,0x81,0xa6,0x96,0x46,0x24,0xe7,0x01,0xd1,0xf2,0xac,0x31,0xb2,0x5e,0x61,0xe3,0xab,0xf8,0x1b,0x28,0xca,0xa2,0x78,0x3c,0xdf,0x8a,0xc1,0x17,0x46,0x9d,0xbd,0x69,0x31,0x41,0x8b,0xc1,0xc8,0xaa,0x68 +.byte 0xd5,0x35,0x65,0x49,0xfe,0xc6,0xa4,0x99,0xcc,0x62,0x4b,0x81,0x1c,0x21,0xa4,0xd8,0xe3,0xb3,0xe9,0x7c,0xf8,0x33,0x2f,0x21,0xa5,0x88,0xf2,0x8e,0x7d,0xee,0x00,0x00,0x62,0xcf,0x07,0x37,0x00,0x68,0x6c,0xb5,0x2d,0xc6,0x1b,0xcc,0x86,0x71,0xf0,0x4f,0x68,0xaf,0x0c,0x9a,0x25,0x69,0x71,0x2d,0xb5,0x87,0x90,0x02,0xd3,0xfc,0xbb,0x63 +.byte 0xa9,0xf1,0x13,0x4f,0xda,0x71,0x69,0x5c,0x0b,0xfd,0x3f,0x6c,0x2f,0x0b,0x4f,0x07,0x72,0x2d,0x2f,0x77,0xcb,0xa4,0xe4,0xbd,0x30,0xc7,0xe4,0xd9,0xf9,0x5d,0x2f,0x65,0xe4,0x41,0x5c,0xbc,0x03,0xa2,0x01,0xf9,0xfa,0x06,0x14,0x52,0x08,0x44,0x67,0x75,0x4e,0xbd,0x66,0x4a,0x26,0x3a,0x49,0xc4,0xba,0x02,0xb3,0x8e,0xa2,0x42,0xe7,0x92 +.byte 0x03,0x6d,0x61,0x10,0x73,0xd0,0x6f,0xe1,0x6e,0x67,0xff,0xb0,0x29,0x62,0x70,0x3c,0xeb,0x80,0xed,0x11,0x06,0xd6,0x18,0x60,0xe1,0x3d,0x21,0xa9,0xe9,0xd2,0x92,0x00,0x9e,0x13,0xf2,0x5d,0x38,0x71,0xdf,0xf3,0x5f,0x8a,0x90,0x45,0xf0,0x47,0x1f,0x0b,0x2d,0x12,0xf7,0x10,0x07,0x6a,0x52,0xe8,0xe2,0x26,0x9b,0x4b,0x7a,0x5f,0x97,0xb6 +.byte 0xf1,0x6d,0x47,0x3a,0x1e,0xc8,0x1d,0x78,0x5b,0x0a,0xb8,0x03,0xb1,0xe1,0xe7,0xc8,0xf0,0xe7,0x00,0xac,0xfc,0xd7,0x4a,0xde,0xaa,0xcd,0x0f,0xaf,0xf7,0x56,0x8e,0xed,0xfb,0xbe,0x7e,0xfe,0x62,0x75,0x7a,0x07,0x96,0xff,0xc3,0x21,0x35,0x71,0xb9,0x73,0x41,0xc2,0xb0,0xa8,0x6a,0x65,0x48,0xc4,0x50,0x31,0xe2,0xba,0xf4,0xe9,0x6c,0x03 +.byte 0x26,0x2c,0x77,0xfe,0x1a,0xd5,0x96,0xf6,0x6d,0xe4,0x14,0xfc,0xe2,0x1d,0x20,0x0c,0x14,0xa2,0x39,0x63,0xe5,0x16,0xef,0x6a,0xeb,0xe1,0x69,0xb8,0x67,0xa0,0x91,0xc1,0x8f,0xed,0xff,0xdf,0x26,0x1f,0xc3,0xb7,0x5d,0xe9,0xd2,0x72,0xe2,0x54,0x27,0x46,0x4f,0x33,0x25,0x59,0xaf,0xfa,0x87,0x4b,0x5a,0xda,0x7d,0x15,0x71,0x5d,0xb4,0x8d +.byte 0x95,0xb6,0x09,0x5b,0x8b,0xeb,0xe6,0xba,0xc8,0x2f,0x8f,0x9e,0xa8,0xab,0x6a,0xa6,0x26,0xb6,0xf5,0x80,0xd0,0x7d,0xe7,0x4c,0x18,0x5a,0x72,0x8f,0x3e,0x90,0xe5,0xa1,0x16,0x33,0x66,0xc3,0x7b,0xf6,0xb6,0xdd,0x15,0x94,0x6d,0xca,0x8b,0xd7,0xa5,0x05,0xfb,0x5f,0x4e,0x94,0x6a,0xcc,0x54,0xed,0xeb,0xc0,0xb1,0xe1,0xc9,0x7f,0xc4,0x90 +.byte 0x2f,0x50,0x34,0x81,0x3c,0x83,0x47,0x3c,0x5a,0xb2,0x33,0x63,0xb6,0xa7,0xfb,0x59,0x70,0x87,0xea,0x7f,0x30,0x22,0xb4,0x54,0x48,0xfb,0x40,0xd2,0x7b,0xc9,0x49,0x80,0x18,0x27,0xc2,0x75,0x09,0x06,0x0a,0x83,0x1e,0x7a,0xf1,0x97,0xa1,0xc2,0x34,0x3f,0x6d,0xd6,0x2d,0xfe,0x5d,0x8b,0xfd,0x64,0x5d,0x6f,0x7f,0xbf,0x4e,0x01,0xb7,0x46 +.byte 0xfb,0xf7,0xd5,0x6f,0x5f,0x74,0xc8,0xca,0x9a,0x2e,0x74,0x08,0xe9,0x3d,0x8b,0xfd,0x97,0x38,0x72,0x67,0xbb,0x8a,0x34,0xee,0xf5,0x3a,0x2b,0x5e,0x64,0x64,0x06,0x7c,0x60,0x0f,0x7a,0x88,0x45,0x1b,0x69,0x90,0xb8,0xb0,0x4d,0x71,0x80,0x77,0xa8,0xaa,0x9f,0xd3,0xc6,0xfb,0xb8,0x12,0x1e,0x0c,0xf4,0x94,0x67,0x44,0xdc,0xb1,0x95,0x0e +.byte 0x51,0xd1,0x06,0x69,0x92,0xbf,0xe6,0x67,0xe3,0xcd,0x0b,0x87,0x03,0x12,0x2e,0xa7,0x23,0x72,0x13,0xe9,0x89,0xcf,0x15,0x43,0xc0,0xa7,0x68,0xbd,0xce,0xec,0x28,0xb6,0x85,0x36,0xbe,0x52,0x5d,0x57,0xfa,0x7d,0x72,0xd1,0x4b,0x88,0xc9,0x64,0xbc,0x7a,0x18,0xe5,0x0e,0xab,0x19,0x81,0xee,0x11,0xbe,0xe0,0x68,0x44,0x81,0x49,0x3f,0xd8 +.byte 0x12,0xd1,0x8b,0xc1,0xe0,0x51,0xf7,0xc3,0x64,0xa7,0xc5,0x61,0x9b,0x32,0x6d,0xf0,0x6c,0xa6,0xaf,0xf9,0x4a,0xdf,0x94,0xaf,0xc8,0xf2,0x86,0xb1,0x4e,0x2e,0xa9,0xb4,0x35,0x82,0x15,0x8a,0x58,0xf3,0x03,0x2f,0x78,0x07,0x8f,0xb9,0x16,0x7c,0x42,0xfa,0x36,0xaa,0xa5,0x66,0x62,0x44,0xca,0xa6,0x55,0x95,0x27,0xdb,0x48,0xea,0x0a,0x1d +.byte 0x5a,0xae,0x5c,0xad,0x99,0xfe,0x00,0xf1,0xb9,0x94,0xda,0x09,0x48,0x52,0x9d,0xfc,0xb4,0xb2,0x80,0x19,0x16,0xf8,0xcd,0x68,0x10,0xec,0x1c,0x16,0x3f,0xbb,0x42,0xb4,0x10,0xe3,0xdb,0xaa,0xe4,0x3f,0x2e,0x8e,0xb5,0xce,0xba,0x8f,0xf2,0xb5,0x76,0x98,0x15,0xa7,0x77,0x4b,0x1c,0x30,0xb7,0x6f,0xc9,0xa9,0xa4,0x64,0x59,0xab,0x3a,0x43 +.byte 0x74,0x33,0xab,0xe1,0x3e,0x5e,0x79,0x1c,0xa5,0xb4,0x87,0xe1,0xcb,0xea,0x0e,0x02,0x4b,0x01,0x84,0xbc,0xdc,0x75,0xf4,0x2c,0x2b,0x8d,0xc8,0x5f,0xb5,0xba,0x6b,0xb2,0x4a,0x7c,0xe7,0xaa,0x61,0xa5,0x0c,0xf8,0x02,0x73,0xec,0x11,0x13,0x6b,0x31,0x07,0xaa,0x79,0x78,0x86,0x01,0x77,0x5e,0xa3,0x09,0xd1,0xec,0xaf,0x7d,0xb7,0x65,0xa9 +.byte 0xd8,0x99,0xd2,0xd7,0x6d,0x32,0x97,0x0f,0x0e,0x51,0x0d,0x69,0x81,0x7a,0x94,0x48,0x31,0xe1,0xff,0x26,0x4d,0x30,0x49,0x93,0xfb,0x6e,0xdb,0xea,0xaf,0xcb,0xb4,0xa9,0xc9,0x9f,0xeb,0xca,0x52,0x36,0x26,0xac,0x47,0xda,0x02,0x3d,0xd0,0x93,0x8b,0x61,0x78,0x26,0x54,0x32,0xe8,0x14,0xac,0xf3,0xd2,0x46,0x04,0x12,0x89,0x9f,0xf6,0x11 +.byte 0xf5,0x64,0x83,0x66,0x00,0x50,0x55,0x05,0xb5,0xf6,0x58,0x9f,0xbf,0x4b,0x95,0xf1,0x7f,0x0b,0xb4,0xf7,0x63,0xea,0x6f,0xf7,0xb0,0x20,0x53,0xfe,0x95,0xbc,0xc4,0xe2,0xff,0x75,0xbd,0xab,0x73,0x68,0x44,0x18,0xf7,0x6b,0x04,0x46,0xde,0x6c,0x65,0xb2,0x22,0x4e,0x25,0x8e,0xba,0x7c,0x3a,0x6f,0x80,0x99,0xb4,0xe7,0xf9,0x97,0x68,0x40 +.byte 0xa9,0x96,0xfc,0x6b,0xcf,0x08,0x75,0xe4,0xda,0x6f,0xaf,0x71,0x4f,0x31,0x62,0x31,0x18,0xbf,0xb9,0xa0,0xcc,0x9e,0xa7,0xa2,0x27,0x2a,0xb8,0x6b,0xc0,0x93,0xf5,0x1f,0x41,0x25,0xa7,0x4d,0x9f,0xb4,0x12,0x5c,0x27,0x38,0x5d,0x80,0x88,0xa3,0xb8,0xb2,0xc3,0xd2,0xfb,0x1d,0xba,0x7b,0xac,0x51,0x0b,0x71,0x58,0x3f,0xe5,0xfa,0x36,0xb8 +.byte 0xc7,0x90,0x46,0xd0,0x5a,0x94,0xf0,0x7d,0x6e,0x6c,0x4c,0xb1,0xfa,0xdb,0x97,0x1e,0x19,0xf2,0x1f,0x4e,0x05,0x25,0x0e,0xbd,0x47,0x94,0x2a,0xd3,0x1a,0xbe,0x4a,0x04,0xaa,0x57,0x02,0xc9,0x42,0xc1,0x74,0xcd,0xe1,0x78,0x8b,0xff,0xc1,0xc6,0x17,0x4e,0x71,0xc4,0x2c,0x00,0x23,0x56,0x57,0x1f,0x47,0xd8,0x93,0x80,0xc1,0xc5,0x7b,0xd9 +.byte 0x25,0x30,0xac,0x72,0x37,0x00,0xd2,0xbc,0xc7,0x33,0x73,0xf9,0x14,0x86,0x7c,0xb0,0x28,0x14,0x5d,0xbf,0xbd,0x98,0x1c,0x00,0x05,0x19,0x2b,0x0a,0x55,0xad,0xb4,0x06,0x28,0x58,0x03,0xa1,0xe6,0x27,0xa3,0x32,0x5f,0x41,0xd5,0x6a,0x0b,0xbc,0x0f,0xaa,0xf5,0xc1,0xa7,0x09,0x2f,0x86,0xda,0x56,0xb0,0x04,0x49,0xd4,0x20,0xc6,0xa2,0x6c +.byte 0x27,0x56,0x4e,0xcd,0x22,0x46,0xac,0x0f,0xd3,0x99,0x69,0x83,0xc4,0xae,0x9f,0x88,0xed,0x9c,0xba,0xfb,0xf3,0x66,0xc7,0x3d,0x65,0x55,0xd0,0xe3,0x04,0x03,0x6a,0x02,0x5c,0xbf,0x9f,0x23,0x34,0x79,0xe1,0xbe,0x7d,0xad,0xb4,0xc7,0x9e,0x4d,0x80,0x73,0x6d,0xe5,0x37,0x03,0xac,0xa3,0xf4,0x93,0xad,0x1e,0xf3,0xcd,0xb8,0xe2,0xeb,0x30 +.byte 0xc7,0x50,0xfe,0x0a,0x63,0x5e,0x0f,0xc9,0xd0,0x06,0x58,0xc1,0x6e,0x65,0x54,0x54,0x5d,0xaf,0xf1,0xe8,0x3e,0x95,0xe3,0x70,0x40,0x8e,0xb8,0x4d,0x76,0xda,0xa8,0xe8,0x9e,0x88,0xd8,0xaf,0x67,0x83,0x3b,0x77,0x65,0x58,0x00,0xbb,0xf7,0xe9,0x52,0xf0,0xba,0x0d,0x0a,0x59,0x28,0xe4,0xa7,0xfb,0x06,0xe5,0x34,0xbe,0xcf,0x10,0x7c,0x73 +.byte 0xa8,0xf3,0xa2,0x93,0x96,0x9e,0x4f,0x9b,0x3c,0xd1,0x9f,0x64,0x5b,0x8c,0xc1,0x89,0x66,0x67,0x13,0x52,0xb2,0xaa,0x6b,0x8e,0xea,0x97,0x27,0x20,0x2e,0x64,0xec,0xf0,0x72,0xc9,0x54,0x8a,0xed,0x78,0x3a,0xd7,0x4f,0xc2,0xba,0xc3,0xb8,0x64,0x7f,0xe4,0x5f,0x3d,0xf7,0xe5,0xd9,0xf1,0x8d,0xb1,0xd2,0xf6,0xcc,0x34,0xd8,0x7d,0x16,0xca +.byte 0x47,0xaf,0x85,0xe5,0x4a,0x57,0xb9,0x5a,0x9e,0xff,0xb8,0x83,0xec,0x7c,0xb8,0x07,0xf5,0xd3,0x31,0x31,0x2b,0xf0,0x40,0x46,0xc3,0x63,0x27,0xe4,0xb0,0x3b,0x84,0x0d,0x50,0x05,0x80,0x0c,0xfa,0x8b,0x0e,0x33,0x6b,0x10,0xd4,0xf5,0x4f,0x8b,0x2d,0x9e,0xc5,0x01,0x92,0x52,0x62,0x1a,0x89,0x1e,0xca,0x48,0xc3,0xd6,0xfa,0xd2,0x94,0x7c +.byte 0x77,0x6e,0xa7,0xeb,0xd7,0x4f,0xe8,0xc8,0xc2,0x71,0xb2,0x9e,0x86,0x30,0x18,0xfd,0x4c,0x56,0x4c,0xd0,0xa4,0x84,0x37,0x02,0x02,0x6a,0x8d,0x57,0x6b,0xc2,0x06,0xd1,0x8a,0xdb,0xa0,0xcc,0x31,0xf9,0xcf,0xbf,0xf2,0x29,0x7c,0x26,0xac,0x1f,0x03,0x20,0x26,0x76,0x03,0x6f,0xa5,0xb5,0x33,0xfb,0x02,0xe8,0xf6,0xe9,0x5e,0xb1,0x36,0x7c +.byte 0x96,0x56,0xb1,0x98,0x2d,0x9c,0x38,0x9b,0xd4,0x56,0x28,0xcc,0xdb,0x08,0xd3,0x42,0x00,0x35,0x24,0xd9,0x74,0xa2,0x0d,0x55,0x21,0x06,0xb7,0xf9,0x6a,0xa0,0x81,0xc1,0x2d,0xb6,0x67,0x91,0x92,0x24,0x36,0xfd,0x2e,0xd8,0xc0,0xcb,0xc8,0x87,0x1a,0x41,0x11,0x70,0xbf,0xd2,0xe7,0x82,0x10,0x74,0xdf,0x65,0x46,0x19,0x6b,0xb4,0x89,0xeb +.byte 0x9e,0xcf,0x79,0x35,0xba,0x25,0x75,0x32,0x64,0x6a,0xfb,0xaf,0xe5,0xed,0x85,0x98,0x34,0x75,0x31,0x40,0xbb,0xd8,0xe3,0xf5,0xa7,0xa2,0x9a,0x9e,0xcd,0xc4,0xf8,0xd8,0x15,0x6c,0x64,0x0c,0x6c,0x16,0x60,0xe9,0x40,0xf4,0x7a,0x14,0x37,0x7b,0x45,0x9b,0x0e,0x29,0x7a,0x1a,0x88,0x10,0xb9,0x2b,0xee,0x13,0xbd,0x8a,0xde,0x7a,0xe9,0x30 +.byte 0xe8,0x39,0x77,0x74,0xf5,0x2f,0xe3,0x10,0x19,0x89,0x28,0x21,0x3a,0x68,0x38,0xb4,0x4d,0x20,0x8d,0x7d,0xec,0x3f,0xf7,0x61,0xbf,0x53,0x32,0x3b,0xb8,0x6a,0xc9,0x58,0xeb,0xd4,0x33,0x0e,0xee,0xc7,0xb9,0x5e,0x3d,0x17,0x7e,0x36,0xa2,0xa6,0x94,0xb1,0x56,0xb6,0x8e,0x94,0x05,0x50,0x69,0x52,0x4f,0x31,0xe5,0x97,0x18,0xde,0x8f,0xb7 +.byte 0xff,0x2e,0x6f,0x1b,0x6a,0xda,0xfd,0xa1,0xd1,0x9a,0x4e,0x6a,0x1b,0x46,0x71,0x52,0x76,0x66,0xf9,0x70,0x8d,0x7d,0x97,0xb0,0xc3,0x8d,0xbc,0x35,0x26,0xe8,0x0b,0x80,0xc7,0x58,0x19,0x22,0x70,0x33,0x06,0xeb,0xcf,0x26,0x22,0xe0,0x97,0x91,0xbf,0xd6,0x94,0x05,0xe1,0x84,0xe2,0x31,0x66,0x57,0xc7,0x1e,0x36,0x30,0x50,0xaf,0x72,0xb3 +.byte 0x31,0xad,0x84,0xcc,0xb5,0x76,0x03,0xe1,0x56,0x97,0x87,0x36,0xf5,0xaa,0x97,0x99,0x38,0xa5,0xf5,0xb7,0x42,0x86,0x3b,0x2f,0x8a,0xb9,0x8e,0x6a,0x0b,0xe0,0xca,0xbc,0x4c,0x6c,0xc1,0x3f,0xbe,0x45,0xef,0xd2,0x57,0xcd,0x29,0xfb,0xfb,0xa5,0x79,0xf2,0xb1,0xbb,0x4b,0x55,0x26,0x2f,0x5c,0x84,0x5e,0x6a,0xc6,0xa9,0xd5,0x23,0xe4,0xd1 +.byte 0xe5,0xf0,0xbc,0x50,0x6a,0x2a,0xaf,0xa2,0x7c,0xcc,0x36,0x95,0xf9,0x5c,0x04,0x6d,0x04,0x31,0xbe,0x1d,0xb2,0x50,0x97,0x8f,0xdf,0x8a,0xed,0x4e,0x4e,0x0a,0x0b,0xfc,0xfc,0x1d,0xa9,0x6a,0x76,0x6a,0x33,0xd7,0x0a,0xcf,0xd5,0xdd,0xc6,0x62,0xe5,0x59,0x02,0xba,0x9c,0x43,0x32,0x8a,0x0e,0x47,0x91,0x00,0x07,0x47,0x93,0xc4,0xad,0x29 +.byte 0x33,0x57,0x15,0x45,0x44,0xb9,0xf3,0xc4,0xe6,0xd2,0xb9,0x3a,0x44,0x16,0x32,0x8d,0x57,0x78,0xac,0xf5,0xdb,0xa2,0x93,0x97,0x64,0x08,0x9b,0x66,0x4b,0xa0,0x64,0xab,0xa0,0xd6,0x0e,0x2c,0xa1,0x25,0x16,0x5c,0x6f,0x82,0xff,0x8e,0x89,0xfb,0xca,0x03,0xa6,0xf8,0xa1,0xf6,0x87,0x02,0x5c,0x90,0xcb,0x33,0xa0,0xc0,0x90,0xc2,0x1f,0xdd +.byte 0x5c,0x50,0x93,0xf2,0x8b,0x87,0xa1,0x73,0xda,0x5f,0xa3,0x20,0xd4,0xe7,0x45,0xd7,0xea,0x4b,0x5d,0xd6,0x80,0xfc,0x2d,0xdc,0x45,0x6a,0xf6,0xaf,0xd4,0x7a,0x91,0x64,0x15,0x17,0xbf,0xc7,0x58,0x54,0x7c,0x08,0x42,0x4f,0x8d,0xab,0x9b,0xd0,0x1d,0x57,0x71,0x50,0xa7,0xe3,0xb4,0xf2,0x14,0x0c,0xd7,0x2f,0x7c,0x8b,0x17,0x61,0x98,0xfa +.byte 0x19,0x34,0xb9,0x65,0xc5,0x5c,0xfe,0xa3,0x80,0x6f,0x99,0xec,0xfa,0x06,0x22,0x71,0xa9,0x10,0x2a,0xcf,0x12,0xb3,0x17,0xe5,0x59,0x3a,0xaa,0xcb,0x55,0x5f,0x45,0x9d,0xe9,0x29,0x56,0x34,0x11,0x62,0x6e,0x0a,0x95,0x12,0x5d,0xd4,0xa2,0x28,0x05,0xf1,0x0f,0x2d,0xa0,0x1e,0xe1,0x2b,0x42,0x6c,0xf0,0xe6,0x47,0xe0,0xb2,0xbd,0x89,0x20 +.byte 0x5e,0x24,0x05,0xec,0xf1,0x33,0xfc,0xa9,0x2f,0xef,0x3a,0x1f,0xfe,0x39,0xfe,0x01,0x09,0x0a,0x2a,0xe0,0x96,0x1e,0xde,0xad,0x96,0xaa,0x48,0xeb,0x8a,0xe6,0x54,0xbb,0x5d,0x7a,0xbe,0x4a,0xbf,0x96,0xf6,0x15,0x7a,0x70,0x6f,0xee,0xe7,0xf5,0x53,0xaf,0xe1,0xbb,0xaf,0x58,0x51,0xd4,0xa0,0xc6,0x44,0x03,0x47,0x33,0xce,0x58,0x62,0xd3 +.byte 0x93,0x21,0xa5,0xa5,0xb4,0xef,0x1d,0x93,0xcc,0x8c,0xf7,0x14,0xe3,0xec,0x40,0x52,0x47,0xe6,0xbc,0xe6,0x85,0x69,0xd0,0x15,0xad,0x24,0x21,0x4f,0x26,0x01,0x60,0x0f,0x0f,0xcb,0x7e,0x14,0x01,0xe1,0x90,0x11,0x06,0x17,0x38,0x2d,0xd8,0x26,0xe2,0x7c,0xd6,0xef,0xe0,0x59,0xf0,0x8c,0x2a,0xbd,0xba,0xe5,0x8b,0x07,0x56,0xd3,0x35,0xb3 +.byte 0x64,0x83,0x9e,0xb9,0xb9,0xeb,0x88,0x03,0xff,0x14,0xf3,0x8b,0x14,0xd3,0xa4,0xac,0x08,0xd9,0x75,0xf6,0x2c,0x9d,0x7f,0xc8,0x9d,0x11,0x3b,0xd1,0x71,0x14,0x4b,0x2a,0x6d,0x20,0x83,0x32,0x35,0x7e,0x1f,0x20,0xa6,0x69,0xbf,0xcf,0x22,0xd9,0xa2,0x57,0x4b,0x66,0xb1,0x9f,0x5a,0xa8,0xaa,0xb8,0x11,0x1d,0x45,0x28,0xac,0x86,0x09,0x37 +.byte 0xe9,0x1f,0xef,0xb4,0xe0,0x6f,0x75,0xad,0xe5,0xd8,0x25,0x06,0x19,0xb4,0xa8,0x07,0x78,0x79,0x43,0x63,0x40,0x26,0xbd,0x28,0x50,0x2d,0x29,0x26,0xf9,0xfc,0x5c,0x71,0x8f,0xfd,0x62,0x12,0x7c,0xd0,0x67,0xb3,0x65,0xef,0x31,0xc0,0x99,0xc1,0x54,0xfc,0x32,0x6e,0x25,0x56,0x77,0x6e,0xc1,0x6b,0x11,0x50,0x7c,0xa1,0x0b,0x97,0x8a,0xfe +.byte 0x0f,0x5b,0x16,0x93,0x83,0xe0,0xd8,0xb7,0xbf,0xa8,0x90,0x6d,0xd6,0x8b,0x4b,0xd9,0x17,0xbb,0xe8,0xd9,0xbb,0x5f,0x39,0x4a,0x33,0x7c,0xb3,0x12,0x99,0x1e,0xfc,0xb2,0x05,0x91,0x67,0xdf,0x8d,0x0b,0x55,0xfb,0xd1,0x8d,0x0c,0x9b,0x80,0x81,0xee,0x8c,0x05,0xe2,0x16,0x30,0xad,0x1f,0x88,0x04,0x75,0xc1,0xe5,0xec,0x32,0xf8,0xa0,0x5b +.byte 0x21,0xf6,0xd8,0x13,0x26,0xe4,0xa1,0x32,0xa8,0x93,0x91,0x5d,0x33,0x45,0x83,0x72,0x52,0x59,0x23,0x84,0xf6,0x7b,0xe2,0x90,0x20,0xc6,0x40,0x33,0xa9,0x94,0xcd,0xb9,0xab,0xe4,0x44,0x0b,0x06,0xbb,0x4c,0x2c,0x2a,0x5e,0x4d,0x57,0xb7,0xe0,0xb8,0x86,0x74,0xab,0xea,0x37,0x1c,0xa0,0xa6,0x21,0x33,0xc7,0xf5,0x24,0x7d,0x14,0xc8,0x8b +.byte 0x9d,0x8f,0x31,0x23,0x29,0x9d,0x11,0x42,0x07,0xe8,0x2c,0xec,0x7d,0x70,0x8d,0xb5,0xa4,0xca,0x33,0x30,0x03,0x75,0x17,0xa1,0x10,0xe7,0x6b,0x87,0xf9,0x0b,0xef,0x43,0xef,0xf8,0x24,0xc2,0xf1,0x7a,0x1a,0x70,0x7e,0x2f,0xd4,0xeb,0x97,0x40,0xa6,0xe6,0x2d,0xc1,0xd8,0x3b,0xee,0xa4,0xda,0xd3,0x50,0x41,0x18,0xbf,0xad,0x66,0x02,0x85 +.byte 0x60,0x14,0xcf,0xce,0x50,0x88,0x5e,0xb6,0x73,0x11,0xbb,0x6a,0xca,0xb1,0x46,0x8e,0xbb,0x58,0x2c,0x63,0x61,0x20,0xec,0xc9,0x98,0x0c,0xdb,0x5c,0xe5,0x47,0xb5,0x89,0xe9,0x14,0xc8,0xbc,0x35,0xf2,0xa7,0x2d,0x84,0xcc,0x61,0xc8,0xb6,0x9d,0xeb,0xcb,0x8b,0x73,0x90,0x6d,0x06,0xc9,0x42,0xcf,0xd2,0x15,0x80,0x2d,0x39,0xeb,0x71,0x83 +.byte 0x27,0x0d,0x85,0xf9,0xa3,0xce,0xef,0x29,0x3b,0x10,0xb7,0xe9,0xd0,0x86,0x6e,0x88,0x1e,0x3b,0xdd,0xaf,0x52,0xde,0xa2,0xa4,0x13,0x3c,0x1f,0xcb,0x84,0x74,0x12,0x04,0x91,0x40,0xb8,0x1b,0x15,0xfd,0xdb,0xe8,0x74,0xcc,0x4d,0x41,0xb5,0x5a,0x92,0xd3,0x71,0xf7,0x57,0xa5,0xf7,0x18,0x5a,0x57,0x36,0xde,0x8f,0xb2,0x81,0x59,0xc8,0x5c +.byte 0x22,0xcf,0xdc,0x7d,0xff,0x83,0xf2,0xad,0x8c,0x7b,0xd5,0x04,0xc4,0xb9,0x79,0x4a,0x12,0xa7,0xb1,0x7e,0x57,0xa5,0x6b,0x56,0x8a,0x11,0x96,0x57,0xde,0x35,0xdd,0xef,0x9b,0x03,0x41,0xde,0x61,0x5b,0x73,0x8c,0x6a,0x0c,0x6f,0xae,0x45,0x4b,0x56,0x4d,0xbe,0x8a,0x3f,0xdb,0x79,0x58,0x88,0xad,0xcb,0xfa,0x66,0x06,0x0e,0x74,0x21,0x1d +.byte 0xe1,0x94,0xd7,0x06,0xea,0x60,0xe2,0x7d,0x70,0xcf,0xa9,0x4f,0xe6,0x9b,0xba,0x19,0x71,0x69,0x94,0x66,0x5a,0xb8,0x49,0x0c,0xd1,0x9a,0xc4,0x5f,0xa7,0xf4,0x9e,0x3d,0x9e,0xc2,0xd8,0x0e,0xd2,0x6d,0xc6,0xc8,0x99,0xc3,0x5e,0x3b,0xb9,0xd8,0x48,0xc0,0x38,0x48,0x95,0x89,0xff,0x7e,0x1d,0x80,0x53,0xac,0x7b,0xd7,0xfc,0x6f,0x5d,0x25 +.byte 0x2f,0xcf,0x15,0xdb,0x1a,0x64,0xc1,0x16,0x91,0x65,0x84,0x99,0x0a,0xc1,0xbf,0x4d,0x11,0xa5,0x55,0x55,0x35,0x93,0x6f,0x47,0xf1,0x75,0xb8,0xb6,0x11,0x9d,0x6e,0x3b,0xd1,0x11,0x20,0xa2,0xa2,0x5c,0x33,0x85,0x09,0xb8,0x13,0xc9,0xdd,0xf2,0xd4,0x32,0x37,0xf2,0xef,0x47,0xfa,0x25,0x1a,0xcc,0xdf,0xf4,0xe4,0x2c,0x2c,0x7f,0x23,0xb6 +.byte 0xa8,0xd4,0x6a,0xd4,0xb4,0x06,0x2e,0xb0,0xaa,0xa1,0x18,0x8a,0x5c,0xc6,0xb2,0x4c,0x71,0x92,0x4a,0xdc,0x81,0x20,0x51,0x8d,0x3f,0x71,0x7d,0x8c,0x25,0x79,0x07,0x14,0xa9,0x7a,0x8b,0xda,0x00,0xfc,0x51,0xdb,0xa0,0x50,0x2b,0x15,0x39,0xf6,0xad,0xdc,0x9e,0x22,0x93,0x2f,0x43,0xd8,0x5c,0xa2,0x5e,0xfa,0x70,0x8c,0xe0,0x6b,0x0e,0x93 +.byte 0x6c,0x89,0xfe,0x22,0x4c,0xec,0xb0,0x7e,0xc1,0x06,0x69,0xf7,0x2f,0x3e,0xe5,0xa4,0x45,0x53,0xab,0x9c,0xf5,0x40,0x05,0x53,0x64,0xc6,0xa7,0xf9,0xc4,0xd6,0x89,0xd9,0x47,0x72,0x8e,0x42,0xf9,0x64,0x12,0xeb,0xd9,0x25,0xdc,0x4c,0xc6,0xea,0x9c,0x4b,0x93,0xb4,0xa2,0xa6,0xae,0x95,0xc1,0x84,0x75,0xc9,0x22,0xe3,0x22,0x81,0x31,0xd1 +.byte 0xfd,0x2e,0x91,0x4a,0xc3,0x00,0xa6,0x57,0xbb,0x89,0x9f,0x2d,0xc3,0x2e,0x1f,0xa2,0x47,0xc4,0xa3,0xcd,0x2b,0xc2,0x29,0xaf,0x89,0xce,0x2e,0x87,0x8e,0xd8,0xfc,0xee,0xab,0x8a,0xbd,0x2f,0xee,0xcf,0x94,0xe0,0x74,0x70,0x86,0x00,0x42,0x11,0x8b,0x6c,0x81,0xd4,0x82,0xf2,0x29,0x3e,0x9c,0x68,0x71,0xaa,0x20,0x0a,0x51,0x5d,0x80,0x4c +.byte 0xca,0x04,0x23,0x23,0xe2,0x69,0xb3,0xf5,0x65,0x98,0x19,0xee,0xa9,0x4d,0xd8,0xe0,0x06,0x4b,0x17,0xed,0xfa,0xf2,0xe3,0xd3,0x69,0x48,0xe4,0x4e,0xc0,0x5a,0x16,0x90,0xdb,0xb6,0x32,0x6e,0x6b,0xd7,0x7a,0xb6,0xd4,0x82,0xe4,0xcc,0x31,0x31,0x5c,0x18,0x84,0xef,0x75,0x9f,0xda,0xf6,0x62,0x2d,0x96,0x4d,0xa1,0x3c,0xb5,0x4a,0xbb,0xbf +.byte 0x9d,0xb3,0x33,0x00,0xc1,0x73,0xc5,0xb2,0xeb,0x85,0x74,0xb0,0x68,0xed,0x16,0x66,0x71,0xc9,0x7e,0x6f,0x74,0xa6,0xe7,0xed,0xf0,0xfa,0xab,0x41,0xdd,0x10,0xf9,0xff,0x4c,0xb6,0x4f,0x15,0xe3,0x77,0x31,0x17,0x5c,0x5a,0xef,0xb2,0xa9,0x44,0xbe,0x97,0xa9,0x75,0x5a,0xb7,0xe0,0x16,0x17,0x37,0x1b,0x71,0x03,0xb9,0xaa,0x7b,0x7b,0x52 +.byte 0x46,0x58,0x6b,0x9b,0x87,0x27,0xa6,0x8a,0x0e,0x84,0x03,0x45,0x95,0x04,0xf1,0x7e,0xb6,0xf6,0x79,0xd5,0x66,0x6d,0x50,0x8c,0x5a,0x67,0xe0,0xdd,0x69,0xd8,0x92,0x75,0x15,0xcb,0xa5,0x05,0xfe,0x7a,0xc1,0xd6,0x11,0x57,0x10,0xa3,0xc3,0xb6,0xe9,0xe3,0x97,0xa5,0x46,0xc9,0xe9,0x9b,0x68,0xb6,0x55,0x0b,0xf2,0x17,0x9d,0x0e,0x7f,0xd9 +.byte 0x26,0x0c,0x01,0xff,0x95,0xe1,0x05,0xb7,0xbf,0x0d,0x77,0x12,0x96,0x03,0x71,0x01,0xc9,0x98,0xb4,0x44,0x94,0xc0,0xad,0x3d,0xfc,0x6f,0xe5,0x0c,0xa4,0x65,0xd7,0xe7,0x76,0x7c,0xb8,0xa0,0x0a,0xcd,0xe8,0x01,0x26,0x8e,0x94,0xec,0x94,0x65,0x86,0xee,0x4d,0x3b,0xc5,0xb5,0x2e,0x51,0xb7,0xa9,0x68,0xcd,0x14,0x90,0xd8,0x36,0xfb,0x52 +.byte 0x04,0x52,0xb4,0xca,0x9b,0xbf,0xc6,0x94,0x28,0xc5,0x7e,0x27,0x73,0xae,0x6d,0xba,0xe7,0x56,0xce,0x2e,0x00,0xeb,0x36,0x19,0xd7,0x4f,0x20,0x5e,0xfd,0x0f,0xd4,0x4c,0x02,0xaf,0xdb,0x74,0xef,0xf0,0x73,0x1e,0x2a,0x1a,0xe7,0x3a,0xe0,0xa5,0x89,0xcf,0x1a,0x66,0xbd,0x72,0x65,0xb4,0xf4,0x86,0x33,0x44,0xee,0x35,0xf6,0x09,0xbe,0x13 +.byte 0x96,0x84,0x04,0x95,0x3f,0x35,0xbb,0x01,0x2c,0x78,0x25,0xe8,0x1e,0x46,0xdb,0xd9,0xb1,0xe8,0xfb,0x2b,0xa8,0x59,0x72,0x5f,0x91,0xd3,0x7c,0x21,0x95,0xa9,0x50,0xa2,0x45,0x6f,0x48,0x0c,0xf2,0x51,0x10,0x3c,0xcd,0xea,0xeb,0x5d,0xc7,0xf9,0x0e,0xae,0x1a,0x02,0x05,0x15,0x12,0x10,0xc0,0x35,0x12,0x97,0xcd,0x5b,0x61,0x4f,0xd1,0xd3 +.byte 0x5b,0xec,0x2b,0xa0,0x20,0x03,0x2b,0xf3,0xe6,0x71,0x23,0xca,0x1d,0x48,0x64,0x3f,0x7e,0x52,0x8b,0xf9,0x96,0x33,0x31,0xbc,0xbd,0x73,0x2f,0xa6,0x80,0xb8,0x0b,0x3a,0xd7,0xf8,0x05,0xf0,0x06,0xc7,0xa5,0xce,0x6a,0x6a,0x62,0xae,0x06,0x93,0xa4,0x5f,0x0b,0x5d,0x4d,0xb8,0xa4,0xfa,0x2e,0xfc,0xb6,0x58,0x8c,0x2a,0x46,0xa4,0x55,0x1f +.byte 0x9b,0x9b,0x13,0xdd,0x17,0x2a,0x3d,0x04,0x51,0xb6,0xbe,0x9c,0xca,0xf3,0x23,0xb6,0x7b,0x7a,0x92,0xb7,0x2f,0xf9,0x69,0x9a,0xee,0xb3,0xa1,0x60,0x56,0xcf,0x9d,0xab,0xfe,0x86,0x7a,0x41,0x94,0x15,0xbe,0xa3,0xa5,0x85,0x09,0xfb,0x7b,0x89,0xbd,0xc3,0x09,0x10,0xa6,0xfc,0x41,0x8e,0x57,0x27,0xdc,0x58,0xf4,0x01,0x7c,0x31,0x5e,0xca +.byte 0xaf,0x31,0x2f,0x98,0x8b,0xbe,0x19,0x16,0xa1,0x81,0x7e,0xb3,0xa9,0xc5,0x15,0xd2,0xad,0x51,0xa1,0x73,0x56,0xd3,0x6a,0x15,0x35,0xe3,0xb1,0xdb,0x83,0x4c,0xe2,0x85,0x8c,0x03,0x12,0xc4,0x64,0x69,0xc0,0x23,0x16,0x7b,0x68,0x46,0x44,0x22,0x84,0xa6,0xb5,0xe4,0x90,0x91,0xc1,0xdd,0x25,0x7c,0x54,0x0e,0xce,0x5b,0x11,0xe4,0x50,0x1c +.byte 0x3c,0x0d,0xc7,0xc1,0x0c,0x10,0x2d,0x8b,0xb7,0xde,0xe2,0x4f,0x7e,0x22,0x53,0xfc,0x07,0x55,0x19,0x14,0x3b,0x33,0xf5,0xf3,0xd8,0x7b,0x5e,0x40,0xa2,0x81,0x6d,0x40,0x0d,0x20,0x36,0x4b,0xa1,0x34,0x34,0xac,0x43,0x59,0xb5,0xb1,0x90,0x8b,0x48,0xcf,0x15,0x57,0x17,0x0e,0xd0,0xbf,0x28,0xcd,0xa4,0x77,0x4d,0xae,0x09,0x4c,0x67,0x51 +.byte 0x18,0xaa,0xb4,0xc9,0x35,0x41,0x0b,0x34,0x4d,0xb3,0xef,0x3f,0x46,0x97,0x6e,0xae,0x75,0xd7,0x6a,0x2b,0x22,0x9c,0xef,0x8e,0xaf,0x72,0xb0,0x14,0x90,0xbd,0x11,0x90,0xde,0x9a,0x02,0x8c,0x20,0xf5,0xc7,0x33,0x4d,0x94,0x88,0x9a,0x6c,0x18,0xb4,0xc0,0xa9,0x94,0x07,0x9a,0x4b,0x10,0x8f,0xe8,0x25,0xcd,0x9b,0xf5,0xfa,0x91,0x8a,0xc0 +.byte 0x93,0x61,0x1c,0x00,0xd1,0x34,0x9a,0x29,0xa3,0x35,0x38,0xe4,0xa7,0x9f,0xb6,0x88,0x0f,0xad,0x88,0x96,0xa0,0x73,0xe7,0x10,0xea,0x36,0xe8,0x88,0x6c,0x7f,0x03,0xbc,0xfe,0xe0,0xb2,0x4b,0x24,0x98,0xf6,0x73,0x6f,0xab,0x00,0x1e,0x26,0x83,0x0d,0x86,0x5b,0xa6,0x51,0x8f,0x5f,0xa9,0x8f,0xf4,0xa0,0x51,0xff,0xe0,0x64,0x09,0x95,0xfb +.byte 0x56,0x53,0x18,0x61,0xea,0xc5,0x33,0xe8,0x6f,0x8a,0x07,0x97,0x1a,0x6c,0xb5,0xf8,0x73,0xae,0xe4,0x4e,0x6d,0xb2,0x83,0x20,0xfa,0xfd,0x79,0xa6,0x6c,0xaa,0x9b,0x7b,0x2c,0xfe,0x63,0x73,0xbc,0x87,0xd4,0x56,0xd1,0xb1,0xf1,0x0f,0x72,0x2c,0x2f,0xf0,0xf0,0x53,0xe2,0x6c,0x19,0x0d,0x9c,0xad,0xc8,0x0a,0x62,0x72,0xcb,0xc3,0x12,0x90 +.byte 0x4c,0x26,0xe3,0xa0,0x07,0x35,0xee,0xaf,0x81,0x35,0x07,0xa9,0x31,0xa0,0x59,0xc8,0x40,0xa5,0x45,0xb6,0x6d,0x3e,0xa2,0x5f,0x6a,0x79,0x74,0x65,0xa1,0xe3,0x1c,0xca,0xae,0xcc,0xa6,0xb6,0x0a,0x12,0x99,0x8e,0xc3,0xef,0x43,0xcf,0x42,0x92,0xa4,0x12,0xa3,0x8b,0x97,0x7d,0x6f,0xe0,0x35,0xed,0xac,0x69,0xae,0x8c,0xe1,0x32,0x11,0xa4 +.byte 0xe0,0x76,0x7f,0x75,0x92,0xda,0xfe,0x94,0x33,0xeb,0xe1,0xa4,0x3c,0x95,0x7c,0xc6,0xbc,0x3d,0xf2,0x39,0xa1,0x29,0x39,0x24,0x09,0xd4,0x52,0x68,0xfb,0x80,0xd0,0xd4,0x57,0xc6,0x4c,0xa5,0xa6,0x90,0xa6,0x61,0x15,0x2f,0xd3,0x35,0x36,0xf5,0x16,0xb3,0x65,0x0a,0xc4,0xcb,0x7f,0x73,0xe4,0xba,0x9a,0xd8,0x8b,0xc3,0x01,0xa0,0x08,0x57 +.byte 0x9e,0x26,0x54,0xbc,0x55,0xd1,0x5f,0xaa,0xb5,0x0d,0x42,0x75,0x04,0x76,0x8c,0xef,0xcf,0x64,0x3a,0x2e,0x4c,0x78,0xe5,0x37,0x8d,0x55,0xec,0xc1,0x7b,0xce,0x5f,0x5f,0x43,0x8b,0xdd,0x46,0x43,0xf5,0xa8,0x41,0xa6,0x82,0x1b,0x12,0xcb,0xcb,0x6d,0xa1,0x6c,0xb6,0x79,0x46,0x12,0x89,0x12,0x61,0xd6,0x4f,0xf9,0x43,0x2d,0x27,0xa9,0x61 +.byte 0x2e,0x2a,0x29,0x1b,0x6d,0xad,0x32,0x0b,0x6c,0x7c,0xf4,0xb8,0x98,0x91,0xbb,0x78,0xda,0x85,0xe8,0xfb,0x4e,0x11,0xc4,0x2a,0x07,0x54,0xa0,0x67,0x73,0x1b,0xa4,0x60,0x15,0x5c,0x83,0xbf,0x3f,0xd9,0x61,0x30,0x02,0xbb,0xa6,0x67,0xcd,0x0c,0xd1,0xb4,0x11,0x7e,0xca,0xf4,0x1e,0xed,0x83,0x34,0x66,0x54,0x23,0x39,0x36,0x8c,0xa0,0xc6 +.byte 0xef,0xad,0xa1,0x95,0x04,0x20,0x46,0x42,0xa8,0x99,0xd2,0x98,0xc6,0x0a,0x92,0x11,0xd1,0x84,0x4a,0xbf,0x25,0xe5,0xcf,0x78,0x98,0x81,0x80,0xaa,0x31,0x0a,0xa4,0xfb,0xef,0x35,0xfa,0xa4,0xac,0x5f,0x01,0x6b,0xb7,0x8e,0x86,0xc1,0x46,0x97,0x88,0xe2,0xaa,0x3b,0x1f,0xb5,0xf8,0xa9,0x90,0xf0,0x45,0x6d,0xdd,0xa3,0xdd,0xd8,0xef,0x36 +.byte 0x6f,0x87,0x55,0xf6,0x96,0xcd,0x88,0x43,0x03,0x97,0x82,0xea,0x5a,0x1c,0xa1,0x1a,0x7b,0x1b,0xa7,0xfc,0xaa,0x86,0xb4,0x71,0xde,0x0d,0x0a,0x52,0x98,0xd2,0x65,0x5d,0xa4,0xea,0x91,0xc9,0xe4,0x8b,0xd0,0xdb,0x85,0xe3,0x86,0x85,0x50,0xe1,0x41,0x1f,0x48,0x97,0x64,0xec,0x34,0xe4,0x54,0x42,0xf4,0x01,0xed,0x6f,0x4d,0xe3,0x1f,0x86 +.byte 0x14,0xbc,0x01,0x9c,0x7f,0x02,0x0c,0x65,0x94,0xd2,0x90,0x2c,0x1b,0xab,0x41,0x88,0xad,0x58,0xb5,0x71,0xd3,0xd6,0xe1,0x3f,0xf3,0x3c,0xb6,0xab,0x22,0x08,0x17,0xc7,0xf5,0x7e,0x34,0x56,0xae,0x1d,0x1e,0x7e,0xdb,0x24,0xe2,0xc2,0x38,0xf3,0x4d,0x46,0xe4,0x45,0xcb,0xb7,0x2f,0x0f,0x96,0x72,0x7e,0x31,0x89,0x17,0x9c,0xed,0x85,0xb9 +.byte 0xc8,0x8f,0x65,0x93,0xfb,0xb8,0x9e,0x41,0xa2,0xc1,0xcf,0xdb,0xe2,0x4c,0x26,0x4a,0xc7,0x2a,0x72,0xf6,0x28,0xbc,0x18,0x22,0xde,0xa1,0xfa,0x46,0xbe,0x95,0xc8,0xe2,0x19,0xbb,0x20,0x7b,0xd5,0xf8,0x34,0x15,0xaa,0xec,0xe2,0x9e,0xa9,0x3d,0xa1,0xd9,0xaa,0xc9,0x18,0x39,0x07,0x5c,0x81,0x61,0xe7,0x00,0xc5,0x57,0x3e,0xca,0x4d,0x89 +.byte 0x33,0x02,0xa6,0xc8,0x15,0xb7,0x24,0xdd,0x5c,0x55,0x56,0x11,0x5c,0x17,0x1b,0xda,0xc6,0xd5,0x46,0x6e,0x9f,0x70,0xe7,0x1e,0x41,0xee,0x91,0x1a,0xa0,0xad,0x35,0x64,0xdf,0x4a,0x18,0x03,0xa7,0xa8,0x88,0x8f,0x65,0xbc,0x76,0x34,0x08,0xab,0x50,0xc6,0xd3,0x08,0x7c,0xc1,0x4f,0x77,0xcd,0x1a,0xc6,0xed,0x35,0xea,0x4e,0x8a,0x6a,0x38 +.byte 0xa3,0xa3,0xd8,0xa9,0xa2,0x68,0xa7,0xd8,0xe0,0xc8,0x3f,0xfe,0xe7,0x73,0xc6,0x6b,0xd8,0x0c,0xd5,0x8f,0x81,0xe7,0x37,0x08,0x93,0x28,0x73,0xef,0xc4,0x91,0x52,0xa5,0x30,0xff,0x47,0x95,0x02,0x0d,0x8c,0xfd,0xc9,0x28,0x60,0xa9,0xad,0x30,0x00,0xcc,0x3a,0x00,0xbb,0x25,0xab,0xd0,0xf8,0x25,0x46,0x20,0xc0,0x67,0x9b,0xd6,0x10,0xa6 +.byte 0x84,0x6f,0x66,0x60,0x66,0x75,0xb6,0xfb,0x39,0x3a,0x9f,0x7d,0x32,0x7f,0x12,0x6f,0x8c,0xed,0x79,0x40,0x47,0xa3,0x27,0x17,0xa8,0xa4,0x02,0x93,0xb9,0x32,0x03,0x34,0x06,0x76,0x71,0x40,0x90,0x2b,0xe7,0xd0,0x3f,0x59,0xa7,0xfb,0x3a,0x7b,0xc8,0xa5,0x86,0x21,0x0d,0xf6,0xc6,0x49,0x07,0x56,0xe9,0xfc,0xac,0x61,0x30,0xa5,0x7e,0x90 +.byte 0x10,0xc8,0xdb,0x15,0x2b,0x75,0x27,0x77,0x51,0x42,0xcf,0x50,0xe8,0x6c,0x0b,0xb7,0x17,0x1a,0x89,0x7d,0xfe,0xd2,0x75,0xfa,0xb7,0xe5,0x68,0x10,0x1c,0x27,0x85,0x8b,0x52,0x7d,0x87,0x57,0x50,0x77,0x25,0x9d,0xcc,0x08,0x6a,0xad,0x63,0xf8,0x8e,0xe0,0x21,0x62,0x56,0x48,0x29,0xed,0x81,0x1d,0x6b,0x60,0x55,0x78,0x6a,0xce,0xd6,0x79 +.byte 0xe1,0x66,0x18,0x9f,0x71,0xf7,0x0c,0xec,0x35,0x53,0xef,0x39,0xfe,0x57,0x71,0xc0,0x49,0x4b,0x55,0xe8,0x3d,0x9b,0xe3,0x9a,0xbb,0xf8,0x61,0x31,0xa1,0x94,0x94,0x8a,0xb1,0xd2,0x0f,0x01,0xe0,0xd4,0x26,0xa0,0x59,0x70,0xd0,0x5e,0xb8,0x6f,0x63,0x7b,0x71,0x49,0xe1,0x98,0xfb,0xdb,0x22,0x26,0x18,0x16,0x31,0x08,0x90,0x32,0xd5,0x7a +.byte 0xc0,0xd8,0xeb,0xae,0x93,0x3d,0x46,0xeb,0x0e,0xdd,0x08,0xa2,0xde,0x4e,0xc1,0x88,0x26,0xc2,0xf8,0xc6,0x5e,0x8a,0x9b,0x0d,0x9f,0x2b,0xcf,0x4e,0x13,0x43,0x4a,0x65,0xf6,0x47,0x1a,0x0a,0xae,0xf9,0x9f,0x7c,0xc5,0x18,0x65,0x09,0xcb,0x85,0x7d,0x33,0x36,0x43,0x19,0x99,0x20,0xa2,0x64,0xb2,0xf5,0x20,0xd2,0x74,0xc6,0x2c,0x29,0x46 +.byte 0xde,0xa7,0x4a,0x7f,0x3b,0x05,0x3e,0x11,0xb6,0xc1,0x98,0xfb,0xf5,0x9d,0x93,0x95,0x76,0x11,0x80,0x41,0x44,0xd3,0x2f,0xf4,0xfd,0x92,0x1e,0xd7,0xa7,0x5f,0x02,0x4a,0xbc,0xb7,0x96,0x33,0xc0,0x0d,0x2d,0x97,0xb8,0xd4,0x67,0x7a,0x4c,0x74,0x93,0xa7,0x8d,0x68,0x78,0xed,0xc8,0xc9,0x02,0x6e,0xae,0x10,0x97,0x7c,0x56,0x11,0x2a,0x29 +.byte 0x87,0x5c,0x21,0xec,0x75,0x9c,0x17,0x17,0x8d,0x45,0x08,0x31,0x36,0x64,0xc0,0xf7,0x95,0xb6,0x72,0xcf,0xac,0xd8,0x52,0x02,0x6f,0x3b,0x14,0x34,0x30,0xcc,0x39,0x7c,0xe4,0x1f,0x38,0x23,0xcf,0x1f,0xb7,0x7e,0x92,0x66,0xf7,0xda,0x9f,0x27,0xbb,0x83,0x45,0x71,0x67,0x63,0x6c,0x85,0x64,0x34,0xa8,0x93,0x5a,0x13,0x0c,0xff,0x8b,0x3a +.byte 0x2a,0x10,0x1d,0xb6,0x43,0xef,0x57,0xf3,0xf0,0x29,0x2e,0x59,0x72,0x2e,0xc3,0xb6,0xd3,0xd0,0xdd,0x17,0x19,0x82,0x49,0x05,0xd4,0xfc,0xd6,0x2e,0x5d,0xd7,0x0c,0xb6,0x18,0xd5,0x08,0xbb,0xe5,0x3b,0x2e,0x85,0x62,0xc0,0x1e,0xa3,0xb8,0x92,0x21,0x06,0xfa,0xf1,0x2d,0xab,0x62,0x67,0x62,0xee,0x13,0x7f,0x07,0xb6,0x24,0x64,0x94,0x4f +.byte 0x69,0xb9,0x7a,0xdc,0x23,0x5e,0x19,0x96,0xc5,0x4d,0xcb,0xee,0x2d,0x4a,0x7d,0x1d,0xd2,0x72,0x18,0x8f,0x43,0x8f,0x76,0xbf,0x30,0xd8,0xf1,0xfe,0x9c,0xe7,0x63,0x38,0xff,0x1a,0x3f,0x40,0xbd,0x73,0x66,0xf7,0xa9,0xd9,0x17,0x4a,0x8a,0x79,0x04,0x0e,0x20,0xe1,0x39,0x49,0xd9,0x30,0x9c,0x52,0xf9,0x14,0x8f,0xdc,0x9d,0x52,0xd5,0x34 +.byte 0xaa,0x58,0xfe,0x5d,0x68,0xcb,0xab,0x3b,0x3c,0x9e,0x25,0xde,0x6d,0xdd,0x58,0x0d,0x1b,0x99,0xa9,0xcc,0x26,0x4e,0xc0,0x3c,0x8b,0x1e,0xaa,0x52,0x3d,0x4d,0xb8,0x27,0xc1,0xd1,0xa2,0xaa,0x78,0xb9,0xee,0x5f,0x26,0x46,0x5f,0x41,0x0d,0xe1,0x70,0x7d,0xcd,0x3f,0x4a,0xca,0xb2,0xca,0x2f,0x36,0x1f,0x68,0xe6,0x66,0x8a,0xf6,0xe3,0x94 +.byte 0xe5,0xab,0x90,0xeb,0x2f,0xe8,0xb2,0x6c,0xa9,0x69,0xd2,0xe0,0x5f,0x4a,0x65,0xa8,0x6b,0xc1,0xfb,0x03,0x51,0x17,0x3b,0xf8,0xe0,0x67,0xc3,0x5a,0xe8,0x18,0xdf,0xc1,0xf8,0x7f,0x44,0x68,0x4a,0x01,0xbe,0xf8,0xa5,0x7a,0xb9,0x3b,0x0f,0x05,0x8e,0x4b,0x28,0x14,0x61,0x2f,0x2e,0xc7,0xf2,0x96,0xc7,0x60,0x99,0xc4,0xbf,0xe8,0x37,0x98 +.byte 0x00,0x34,0xf7,0x5a,0xd7,0x6f,0x90,0xc4,0x19,0xb5,0x07,0xd1,0x76,0x6e,0x65,0xcc,0xf6,0x51,0x88,0x5c,0x81,0x91,0xa8,0x4d,0xb7,0x33,0x53,0xb6,0x93,0x42,0x52,0x82,0xfa,0x2b,0xca,0xa0,0xbd,0xf3,0x09,0x2b,0x0f,0x09,0x02,0xdd,0x29,0x5f,0xa6,0x49,0x7b,0x97,0xe8,0x96,0xbf,0x6f,0x76,0xb7,0xa2,0x76,0x58,0xda,0x1d,0xb2,0xdb,0x6d +.byte 0x9d,0x3b,0x32,0x6e,0x9c,0xea,0x45,0xfd,0x33,0xeb,0x41,0x91,0x91,0x52,0x2b,0x68,0xa3,0xf3,0xc6,0x92,0x43,0x13,0x49,0x8a,0x10,0xb1,0x2f,0x9a,0x0f,0xe1,0x94,0x21,0x18,0x76,0x87,0xaf,0x50,0xe4,0x71,0x5d,0x0a,0xba,0x75,0xaa,0x17,0xf5,0x37,0xf2,0x84,0x9b,0x29,0xdf,0x44,0x60,0xd0,0xac,0xcf,0x25,0x87,0x66,0x64,0x1f,0x0d,0xba +.byte 0xb3,0xdb,0x14,0xb6,0x1f,0x00,0x70,0x98,0x83,0x1d,0x9e,0xbd,0xf9,0x17,0xf4,0x57,0xae,0xa8,0xae,0x7b,0xa7,0xde,0x1f,0x31,0xc6,0x29,0xb2,0xf7,0xef,0x36,0x31,0xe7,0x50,0x33,0x69,0x4e,0x8c,0xb5,0xe4,0xdd,0x74,0x87,0xc8,0xf5,0x22,0x1b,0x4b,0xec,0xc4,0xe1,0x5a,0x7d,0x5a,0xe8,0xb9,0x2f,0xf4,0xd1,0x83,0xa2,0xb7,0x97,0xe0,0x1e +.byte 0xf7,0x3a,0x74,0xef,0x5f,0xb3,0x30,0xce,0xfa,0x23,0xd5,0x98,0x56,0x19,0x24,0xb5,0xc7,0x60,0x8b,0x03,0x8e,0xe7,0xdf,0x2c,0x36,0x4c,0x3b,0x3b,0x84,0x45,0x97,0x40,0x29,0x30,0x98,0xc3,0xc0,0xa2,0xf0,0xdf,0x69,0x47,0x95,0x26,0xdb,0x6c,0xcc,0xff,0x2d,0x32,0xaa,0xa7,0xb8,0x6b,0x24,0xec,0xff,0x94,0x4d,0x36,0xdd,0x7b,0x4d,0xc5 +.byte 0x8d,0xe2,0x3c,0x14,0x5a,0x37,0x75,0x1f,0xd6,0x98,0x7d,0xd3,0xdc,0xb0,0x24,0x69,0xe7,0x65,0x60,0x2a,0xe7,0x00,0x5b,0x68,0x99,0xa0,0x9e,0x10,0xf0,0x5c,0xa8,0x39,0x85,0x59,0xde,0xe4,0x46,0xf3,0xde,0xda,0xc0,0xb1,0xd2,0xf1,0xd2,0x05,0xd5,0xd4,0x2c,0x2e,0x7e,0x44,0x5c,0x52,0x80,0x85,0xbb,0x54,0x97,0xb6,0xad,0x6d,0x57,0x49 +.byte 0xed,0x67,0xaf,0x27,0xb4,0x5b,0xce,0x0f,0x3c,0x58,0xa2,0x24,0x22,0xa2,0xcb,0xfc,0x4e,0x8e,0xc2,0x3c,0x32,0xc6,0x07,0xc4,0xc6,0xc0,0x50,0xc3,0xe3,0x1b,0x96,0x76,0x62,0xf9,0xea,0x5e,0xdc,0xc5,0x96,0xe8,0xaa,0x20,0x26,0xac,0x44,0xfb,0xf2,0x16,0x72,0x72,0x4c,0x5c,0xee,0x51,0x07,0xb0,0x74,0xf6,0xde,0xd7,0x5d,0x73,0xf4,0xe9 +.byte 0x0d,0x29,0x06,0x5f,0xca,0xe2,0xbb,0xa4,0x3e,0xdc,0xf7,0x74,0x99,0x53,0x7a,0x52,0x60,0x46,0xaa,0xf0,0x34,0x97,0x0c,0x81,0x5b,0xd8,0x95,0x52,0x76,0x55,0xcb,0xc4,0x6d,0x50,0x26,0x3f,0x7e,0xc2,0x93,0x6e,0x14,0x0c,0xd7,0x49,0x5f,0x52,0x8f,0x34,0x49,0xb4,0xe7,0x12,0xfe,0xae,0xd1,0xfa,0xfc,0xc5,0x80,0x38,0x26,0x9c,0xf1,0x81 +.byte 0x01,0x58,0x15,0x99,0x29,0x8d,0x1b,0x2d,0x74,0xca,0xf1,0xf4,0xfa,0xcd,0xae,0xfa,0xa9,0x1d,0xbb,0xf1,0x55,0x2e,0x69,0x46,0x6e,0xe4,0x91,0xa3,0x48,0xb5,0xaa,0xb3,0x85,0xab,0x14,0xd2,0x84,0x8c,0xb1,0xb6,0x0c,0xa5,0x4a,0x90,0xed,0x6e,0xdf,0x1e,0x15,0x36,0x7b,0xa3,0x59,0xd6,0x8d,0x7d,0x7b,0x12,0x7c,0x9a,0x40,0x8a,0x28,0xde +.byte 0xb5,0xbc,0xc4,0x52,0x96,0xfb,0x62,0x1f,0xc9,0xe0,0xc9,0x1d,0xc7,0xc4,0xcb,0x8a,0x96,0x21,0x42,0x7c,0x0a,0xdd,0x42,0x74,0xcf,0xc4,0x57,0x8f,0x28,0x0a,0x7c,0x4f,0x49,0x5a,0xc6,0x21,0xb2,0xd4,0xd0,0x61,0xa5,0x35,0xbd,0x4a,0x0c,0x16,0x68,0x1f,0xe3,0xff,0x3f,0x72,0xf0,0x1d,0x50,0x26,0x48,0x91,0x27,0x1b,0x2b,0x0d,0x8b,0xf2 +.byte 0xa0,0xc0,0xa0,0x5d,0xdb,0xcf,0x71,0x41,0x83,0x00,0xb9,0x3c,0xe0,0x4a,0x96,0x43,0xf8,0x64,0x0f,0x42,0xc5,0x75,0xec,0x26,0x62,0x99,0x13,0xeb,0xf9,0xa6,0x86,0xe4,0xc9,0xaf,0x3c,0x2c,0xc9,0x4f,0x89,0xf4,0xc0,0x46,0x99,0xb8,0xd1,0x9e,0x7b,0xb7,0x41,0x0a,0x5f,0x40,0x98,0x65,0x29,0xdd,0x60,0x6b,0x27,0xbf,0x66,0x08,0x32,0xc2 +.byte 0xcf,0xea,0x91,0x44,0x45,0x49,0x1c,0xb4,0x16,0x7f,0x11,0x1a,0x8c,0xb4,0x59,0x54,0xc6,0xcf,0x40,0xd2,0xe9,0xc1,0x54,0x9c,0xe2,0x6e,0xd5,0xfe,0xfb,0x4a,0xa3,0x98,0x63,0xef,0x86,0xe0,0x63,0x30,0x32,0x5a,0xbd,0xd4,0x7c,0xe8,0xbe,0xf1,0xed,0xa2,0x19,0x98,0xc8,0x34,0x65,0x4c,0xef,0x1a,0xb3,0xbc,0x87,0xbe,0x6b,0x75,0x2c,0xe5 +.byte 0x54,0xcc,0xe5,0x69,0xb2,0xc8,0xdb,0x57,0xf8,0xa7,0x82,0x07,0xf7,0x20,0x95,0x7f,0x6d,0x7b,0x33,0x66,0x67,0xa1,0x38,0x0e,0x9c,0x3b,0x22,0xab,0xc1,0xd3,0xed,0x87,0x32,0xfb,0x4a,0x5d,0xad,0x3a,0xe1,0x90,0xa6,0xe3,0x4d,0x6b,0x00,0xe4,0x5c,0x66,0x59,0x90,0x63,0x24,0x5b,0xe1,0x3b,0x69,0xb6,0xc9,0x05,0x83,0x3a,0x7b,0xf4,0xa5 +.byte 0xc8,0x47,0xf9,0x8e,0xab,0x92,0xbd,0xd3,0x41,0xc7,0x61,0xf4,0xce,0x30,0xdb,0xae,0x27,0x69,0x0f,0xcc,0x69,0x50,0xe8,0x18,0xf2,0x39,0x04,0x5a,0x29,0x12,0x61,0x46,0x5c,0x1b,0x2e,0x15,0x9c,0xfa,0x73,0x50,0xe3,0x51,0xda,0x4d,0x88,0x25,0xb2,0xff,0x55,0x27,0xce,0x86,0xca,0xe6,0x2a,0xb8,0x0c,0xa7,0xd0,0x06,0xbf,0x70,0xb5,0x6b +.byte 0x80,0x44,0x65,0x5d,0x23,0xfa,0x0d,0x74,0x5c,0xfc,0xc7,0x86,0x5e,0x23,0x8a,0xf1,0xff,0x80,0xf0,0x19,0xaa,0x98,0xae,0x56,0xcf,0x12,0x74,0x6c,0x70,0xb2,0x39,0xbe,0x66,0x71,0xee,0xe3,0x43,0x3b,0xfa,0x79,0xa9,0x7e,0x69,0x6a,0x19,0x42,0xd5,0x0e,0x1e,0x92,0xfe,0x8a,0x0f,0xca,0x74,0xf2,0x68,0x71,0xf5,0xcb,0x05,0x94,0xc1,0x06 +.byte 0x1b,0xae,0x55,0xe9,0x16,0x03,0xa9,0x97,0xad,0x49,0xaf,0x88,0x8c,0x26,0x33,0x4d,0x46,0x75,0xb3,0x9c,0xee,0x70,0xe1,0x57,0x43,0xeb,0x59,0xff,0x77,0x89,0x8a,0x77,0x3f,0x7e,0xe6,0xbe,0xa2,0x05,0xb1,0xe3,0x41,0x5e,0xc7,0xd4,0x14,0xda,0xc0,0x84,0xd0,0x05,0x50,0xdd,0x62,0xdb,0x4c,0x3b,0x16,0xb0,0xe0,0xf5,0x2b,0xf1,0x83,0xea +.byte 0x7b,0x89,0xbb,0xde,0x57,0xdb,0xc0,0xb9,0x7d,0xdf,0x53,0x0f,0x6c,0xc5,0x5a,0x0b,0x36,0xeb,0xa3,0xc3,0xe6,0xc5,0x80,0x98,0xf3,0x87,0x29,0x97,0xc9,0x2e,0xd6,0x3b,0x43,0x2a,0x36,0x3b,0xba,0x43,0x85,0xf5,0x0d,0x18,0x2e,0x78,0x43,0xae,0xa4,0x24,0x6d,0xdc,0xab,0x05,0x94,0x09,0x94,0x27,0x17,0xef,0xbc,0x7e,0x52,0xa4,0x80,0xda +.byte 0x28,0xf5,0xc3,0x20,0x99,0xbb,0x5d,0xb6,0x7e,0x0e,0x59,0x3b,0x5e,0x1d,0x1b,0x4f,0xd1,0x91,0xe4,0xe4,0xc7,0x35,0xc7,0x2e,0xc1,0xba,0x60,0x05,0xa4,0xd5,0xca,0x5f,0x09,0xbf,0x79,0x06,0xcb,0xa7,0x32,0x7c,0xf4,0xdc,0xa8,0xb3,0x8b,0x26,0x59,0x6d,0xcb,0x74,0x37,0x56,0x51,0x96,0x0b,0x44,0xf1,0x95,0x16,0xe3,0x9b,0x9b,0x3b,0xb3 +.byte 0xea,0x6a,0x1b,0x76,0x99,0x69,0xd6,0x5b,0x10,0x5a,0x91,0x23,0xb5,0xc3,0xf9,0x6a,0xba,0xc4,0xe6,0x18,0x28,0x50,0x9d,0x09,0x14,0xbe,0xed,0x73,0xd2,0x51,0xff,0xf8,0x14,0x2b,0x8b,0xdd,0x2a,0x1a,0x8e,0x48,0xae,0xd8,0xdf,0xb9,0x5b,0xcb,0x8f,0xc2,0x8c,0xd6,0xb3,0xfb,0x40,0x2f,0xb0,0x6c,0x9a,0xea,0xd0,0x14,0x8c,0xc5,0xc7,0xc7 +.byte 0xf8,0xf5,0x4f,0xe2,0xd7,0x41,0xcd,0xb6,0x34,0x3e,0x81,0x19,0x09,0xa2,0x51,0xb4,0x60,0xfb,0xf2,0x6c,0xe6,0xae,0x68,0x47,0xb9,0x93,0x7b,0xc9,0xe7,0x00,0xc4,0xa7,0xf2,0xef,0x8b,0xd8,0xfc,0x9f,0xe5,0x6d,0x48,0xe2,0x6c,0x32,0x73,0x5c,0x30,0x7c,0x12,0x13,0xca,0xc3,0x31,0xc3,0xa2,0xb4,0xf7,0x23,0xc4,0xd0,0x47,0x39,0x93,0xc8 +.byte 0xa0,0x7b,0xb4,0x09,0x3f,0xe8,0x15,0x15,0x9c,0xa7,0xe6,0xa8,0xbe,0xba,0x60,0xf9,0x28,0x88,0x66,0x7b,0x62,0x32,0x17,0x18,0x68,0x87,0x53,0xf5,0xbc,0xf5,0x77,0x17,0xa1,0x3f,0x62,0xd1,0x10,0x0a,0x54,0x96,0x9c,0x31,0xc3,0xb7,0x1d,0xaf,0xc7,0xb3,0x27,0x9e,0x46,0xfe,0x7e,0x9b,0x88,0xf2,0x9e,0x6e,0x19,0x0f,0xb1,0x88,0xe4,0x08 +.byte 0x76,0x7c,0x77,0x46,0x09,0xa7,0x9e,0xf4,0xd9,0xbf,0x67,0xe8,0x9d,0x6a,0x75,0xa7,0xf5,0xee,0x29,0xba,0x84,0xa0,0x44,0x46,0x35,0x4c,0x22,0xef,0xb3,0xea,0xb0,0xf2,0xd6,0x78,0x20,0x97,0x28,0x5c,0x7e,0x90,0x06,0x80,0x19,0x63,0xa4,0x8a,0xef,0x0a,0xea,0x88,0xa9,0xa2,0xae,0x23,0x2e,0x40,0xce,0xc5,0xc2,0xbf,0xfe,0x5a,0x8f,0x14 +.byte 0xb8,0x66,0x1a,0x2d,0xdb,0x43,0x39,0xbd,0xe7,0x7b,0xbc,0x41,0x58,0x74,0x56,0xd1,0xe7,0xd0,0xba,0x24,0xd2,0x41,0xbf,0xd0,0x4e,0x97,0x38,0x8f,0x6b,0x6f,0xe2,0x7d,0x6d,0x32,0x94,0x43,0xa7,0x66,0xf7,0x90,0x21,0xe0,0xdd,0x19,0x48,0x72,0xc1,0xa5,0xbc,0x9c,0xe2,0xdd,0x2c,0x6e,0x50,0x45,0x2c,0xa0,0x95,0xcb,0x1d,0x2c,0x1d,0xa6 +.byte 0xbe,0x9c,0xd4,0x6c,0x07,0x2e,0x5e,0xc8,0xc1,0x05,0x61,0x7d,0x44,0x28,0xe6,0xad,0xf0,0x9d,0x2d,0x3d,0xce,0x90,0x7d,0x79,0x2e,0xf3,0x08,0xbe,0x7a,0xa9,0x58,0x04,0xa7,0x39,0x05,0xdd,0xb4,0x87,0x6c,0x7b,0xd5,0xb3,0x2d,0x6b,0x43,0xf4,0x37,0xd9,0x6f,0x5c,0xa2,0x23,0x92,0x53,0xb9,0xd7,0x1b,0x2d,0x5d,0xcd,0x6d,0x3f,0xef,0xc8 +.byte 0x66,0x91,0x10,0x1b,0xc5,0x24,0x50,0x87,0x70,0x93,0x03,0x3f,0x7b,0x40,0xc8,0x0c,0x9b,0xec,0x3d,0x82,0x27,0x96,0x2a,0xbe,0xca,0xaf,0x1b,0xbf,0xef,0x14,0x0c,0xdc,0xa6,0xc7,0x48,0x18,0xce,0x8e,0x43,0x58,0x97,0xb3,0x5e,0xd6,0xc9,0x70,0x65,0xd0,0x0e,0x17,0xac,0xa0,0x6b,0xc9,0x55,0x30,0x12,0x7c,0xbe,0xe5,0x46,0xfc,0xd8,0x3f +.byte 0x0e,0xd7,0x96,0x16,0x32,0x8e,0xb7,0x2d,0x07,0xd1,0x26,0x98,0x70,0x4c,0xb1,0x6f,0x92,0x32,0x75,0x4f,0x57,0x6b,0x78,0xe0,0xc5,0x9b,0xf0,0x08,0x59,0x0b,0xfa,0x2d,0x79,0xbe,0xde,0x44,0x3d,0x65,0x77,0x27,0x3b,0xd9,0xea,0x55,0x79,0x22,0xe8,0xf7,0x62,0xb1,0xe3,0x32,0x4e,0x03,0x17,0x65,0xd3,0x5d,0xee,0xa0,0x9b,0xc2,0xbd,0x9f +.byte 0xcd,0xdc,0xde,0xd7,0x6c,0x95,0x7a,0xf1,0x09,0x4c,0x14,0xb9,0x37,0x1d,0xd0,0xdd,0x4b,0x2e,0x93,0x0b,0xfa,0x08,0x40,0x01,0x36,0xdf,0x89,0x46,0xa6,0xbb,0x19,0xd9,0x4f,0xf9,0xe1,0x7b,0x03,0xc9,0xef,0x01,0x25,0xe9,0x6d,0x95,0x84,0x7f,0xf8,0x8e,0x02,0xfd,0x6f,0x30,0xed,0x1b,0x98,0xd0,0xb3,0xdd,0x92,0x65,0x46,0x49,0x61,0xde +.byte 0x76,0xf5,0x4b,0x29,0x03,0x6f,0x79,0xee,0xbe,0x7a,0x07,0x6e,0xa8,0x29,0xb8,0x03,0xb4,0x6c,0x50,0x1f,0x4a,0xa2,0xaf,0xbd,0xde,0x18,0x72,0x90,0xa2,0x12,0xa9,0x59,0x7b,0xf6,0x96,0x2d,0xda,0x3d,0x90,0xba,0x7c,0x79,0x3e,0x6e,0xef,0x94,0x37,0xe2,0xef,0x6b,0x2a,0x74,0x6b,0x52,0xa0,0xc2,0x1e,0xa1,0x24,0x59,0x84,0xeb,0xdc,0xd0 +.byte 0x34,0x60,0xa8,0x81,0xaf,0xdd,0x57,0xc2,0xa6,0x02,0x7f,0xcf,0x9e,0x64,0x28,0x18,0x7c,0x95,0x98,0x90,0x7a,0x76,0x3f,0x78,0x16,0x2c,0xe0,0xa7,0xdf,0x0d,0x4d,0x5e,0xcc,0x0d,0x73,0x12,0x26,0xd7,0xe9,0x32,0x3e,0xa1,0xa9,0xde,0x29,0xb2,0x3b,0x6f,0x3b,0x6e,0x12,0x0c,0x10,0x34,0x86,0xf2,0xa0,0xd4,0x9c,0xf6,0x14,0x5a,0x41,0x06 +.byte 0x31,0xb1,0xe4,0x31,0x52,0xf4,0xcb,0xe3,0x39,0xcd,0x0b,0xc2,0xca,0x90,0xba,0xb3,0x21,0xbf,0x94,0x13,0x75,0x3b,0x0e,0x0a,0xc0,0x05,0x35,0xe6,0x28,0x74,0x63,0xc5,0x34,0x44,0xd8,0x9a,0x0e,0xec,0xb3,0x1b,0x30,0x58,0xfc,0xa0,0xc4,0xd1,0x26,0x50,0x6b,0x22,0x88,0xfc,0xad,0xa9,0xb4,0x3e,0x36,0xb6,0xb1,0x6d,0x62,0x7e,0x60,0x8f +.byte 0xf5,0x17,0x65,0x1c,0xf6,0x51,0x4d,0x89,0x4a,0x7e,0x5d,0x23,0x3b,0x83,0x1f,0xa6,0xc8,0xd2,0x1a,0x90,0xd3,0x53,0xfc,0x48,0x64,0x94,0x6e,0x1c,0x72,0xef,0x5d,0xd4,0x23,0xa2,0x3a,0x93,0xe4,0x29,0x33,0x8a,0xbd,0xe5,0x17,0xc2,0xe9,0x18,0x6a,0x81,0x1e,0x5b,0x03,0x41,0x45,0x35,0x14,0xe7,0xc8,0x45,0x5c,0x37,0x69,0x77,0x62,0xf8 +.byte 0xd7,0xec,0x9d,0x62,0x2e,0xfa,0x43,0x3a,0xdc,0x8b,0x86,0x86,0x1b,0x31,0x71,0x0e,0x92,0x59,0xf7,0xef,0x96,0xfd,0x04,0x1e,0x1d,0x74,0x7d,0x08,0x06,0x21,0x54,0x39,0xd3,0x9f,0x30,0xa1,0x19,0x7f,0xc8,0x19,0x16,0xd1,0x21,0x2a,0xf3,0x21,0xce,0x19,0x1a,0xde,0x70,0x1b,0x87,0x05,0x9e,0xe8,0xf3,0xfd,0x1d,0xaa,0x61,0x6c,0xfb,0xdf +.byte 0x50,0x9a,0xa0,0x32,0x4e,0xe4,0x68,0xda,0x0e,0x2f,0x2a,0x70,0xe1,0x51,0x66,0xb4,0x2d,0x5b,0xb6,0x32,0x3f,0xcb,0xc0,0xaf,0x01,0x03,0xcd,0xd6,0xb8,0x4e,0x3d,0x24,0x17,0xe2,0x30,0x3b,0xa4,0x08,0x0e,0x6a,0xcf,0xbe,0xc2,0x5c,0x79,0x5d,0x25,0xe2,0xae,0xa7,0x7f,0x42,0xff,0xa9,0xa5,0x05,0xbf,0xf4,0x92,0x30,0xaa,0x1d,0x96,0x7a +.byte 0x49,0xbc,0x1c,0xaa,0x5c,0x8d,0xe8,0xf3,0xd3,0x1a,0x67,0x7f,0x47,0x09,0x90,0x35,0x82,0x4e,0xcc,0x2e,0x50,0xfe,0x2c,0xb9,0x29,0x39,0xff,0x49,0x8f,0x7e,0x89,0x8d,0x4a,0x15,0xd1,0xd6,0x83,0xdb,0x25,0xac,0xc1,0x81,0x23,0x70,0x3f,0xb9,0xce,0x7f,0x03,0x46,0xa8,0x39,0xab,0xff,0x71,0xc9,0x7b,0x3c,0xb3,0x5e,0x9f,0xfe,0x8a,0x0a +.byte 0x39,0xad,0x6a,0xc1,0x8e,0x5a,0xa8,0x71,0xb7,0x01,0x25,0x28,0x15,0xd9,0x0a,0xae,0xc1,0xf9,0x23,0x1c,0xc1,0xe8,0x86,0x1d,0xb8,0x71,0x6e,0xa2,0xa4,0x67,0x22,0x4d,0x0e,0xd2,0xaa,0x70,0x26,0x23,0xfc,0x15,0xed,0x67,0x11,0x87,0x69,0x6f,0xc6,0x4c,0xe1,0x4b,0x04,0x86,0xe9,0x56,0x40,0xea,0x07,0xb1,0x6f,0xe9,0x8f,0xdd,0x2f,0xce +.byte 0x8d,0xca,0x0a,0x58,0x01,0x44,0x2c,0x74,0xd0,0x14,0x07,0x9a,0xb7,0x5a,0xc1,0xea,0xa9,0xdd,0xa4,0x94,0x84,0xc2,0x11,0xa5,0xe2,0x00,0xd8,0xfc,0x77,0xb9,0x5e,0xe6,0x72,0xef,0xc5,0x38,0xe0,0x90,0x11,0x16,0xfd,0xa7,0x77,0xbd,0x4c,0x1d,0xeb,0x32,0x54,0xdb,0x2a,0x43,0xa1,0x87,0xbb,0x2e,0x79,0x22,0x4d,0xb3,0xdf,0x1a,0xee,0x75 +.byte 0xb0,0xdd,0xf2,0x09,0x05,0xf4,0x6a,0x3c,0x86,0xc6,0xe7,0x60,0x2a,0xee,0xb6,0x55,0xae,0xdc,0xce,0xf8,0xe4,0xd7,0xdf,0x72,0x42,0x91,0x6d,0xc4,0xd8,0x60,0xf1,0xe8,0x06,0x71,0x38,0xa3,0x03,0x3e,0x1b,0x14,0x47,0x74,0x93,0xb5,0x61,0x28,0xde,0x23,0x8f,0xbe,0x88,0x5e,0xdf,0x87,0x47,0xd4,0x5f,0x91,0x40,0xeb,0x02,0xda,0x27,0x3b +.byte 0x65,0x9f,0xd8,0xf1,0x78,0x7f,0xba,0x9b,0x35,0xb3,0x10,0xaf,0x7f,0x51,0x37,0xa5,0x63,0x64,0x1f,0xf1,0xc3,0x1b,0x9e,0xe4,0xdd,0x93,0x8c,0x3a,0x98,0x20,0x9a,0x75,0x22,0x7b,0x48,0x0a,0x9d,0x55,0xed,0x07,0x1a,0x79,0x3b,0x98,0xe3,0x16,0x9b,0x16,0x2c,0xb2,0x03,0xc1,0xf5,0x6c,0xac,0x00,0x6a,0xb6,0xc1,0xc2,0x49,0x4d,0x9d,0xf5 +.byte 0x0e,0x7b,0x60,0x09,0xcc,0xa7,0x35,0xbb,0x70,0x34,0x18,0x49,0x2c,0xf1,0x41,0x4f,0xce,0x68,0x03,0x60,0x14,0xa7,0x2e,0x59,0x0f,0xa2,0xc4,0x2f,0x33,0xf0,0xb6,0xa4,0x31,0x75,0xdc,0xb4,0x88,0xe4,0xe3,0x0e,0x4b,0x3f,0x58,0xd0,0xa4,0xea,0x9a,0xef,0x47,0xb7,0xf7,0x20,0x71,0x52,0xd3,0x8a,0x1c,0xd9,0x2d,0x88,0x05,0x03,0x8a,0x1c +.byte 0x3d,0x69,0xf0,0x39,0xf0,0x25,0xad,0x95,0xd4,0x47,0x3c,0xbb,0xfa,0x48,0xd7,0x8e,0xf5,0xdc,0x33,0x43,0x0a,0xbb,0xf0,0xd3,0xb1,0xc3,0x94,0x81,0xcd,0x22,0x79,0xdc,0xd0,0x92,0x8b,0xd3,0xc3,0xac,0x73,0x72,0x83,0xaa,0xa2,0x52,0x13,0x27,0x0e,0xc5,0x8c,0xa5,0x69,0x21,0x6e,0x9c,0x9d,0x9b,0xeb,0x7a,0x19,0xfe,0xb6,0xdb,0x4e,0xc1 +.byte 0xa6,0xec,0x42,0xb0,0x86,0x69,0x60,0xde,0x36,0x11,0x6a,0x86,0xd7,0xbf,0x15,0x48,0xa2,0x73,0x8f,0x68,0xde,0xd6,0xb2,0x6d,0xe0,0xc5,0x1f,0x1f,0xd5,0xc5,0xef,0xce,0xa1,0x90,0x5c,0xe6,0x6c,0x15,0x73,0xa7,0xcc,0x2d,0xe8,0xcf,0x4c,0xc8,0x17,0x3c,0xfa,0x5e,0xdb,0x4f,0x54,0xf3,0xa3,0xff,0x50,0x3e,0x42,0x60,0x0d,0xf3,0xf7,0xbb +.byte 0xc6,0xf5,0xe7,0x63,0x50,0x49,0xc1,0x94,0x60,0x68,0xbd,0x62,0xc0,0x81,0x80,0x16,0xfd,0x65,0xfb,0x2e,0x23,0x67,0xb3,0xb6,0xf8,0x95,0xfa,0x00,0x3f,0x1d,0x10,0x16,0xd5,0xd9,0x66,0xf8,0x25,0xb4,0xce,0xf2,0x2e,0x4f,0xa2,0x21,0x14,0xbd,0x2c,0x63,0xec,0x44,0x57,0x07,0x87,0x3c,0x2f,0x22,0xcf,0x48,0xd3,0x20,0x51,0xfc,0x5d,0xd5 +.byte 0x9f,0x67,0x9c,0xaf,0xe3,0x89,0x36,0xc5,0xfa,0x7c,0xca,0x07,0xdc,0x56,0x2a,0x4e,0xa5,0x76,0xe6,0x09,0x99,0xfb,0xb7,0xba,0xaa,0x0b,0x9c,0xe2,0x0f,0x73,0xab,0x9b,0xbe,0x6f,0x50,0xe3,0xf7,0x28,0x32,0xf2,0xab,0x86,0xa3,0x89,0x3a,0xea,0xd7,0x52,0x52,0x6e,0xed,0x1b,0x94,0xf0,0x59,0x9d,0xbb,0x7a,0x88,0x6f,0xbf,0xaf,0x6a,0x87 +.byte 0x47,0x34,0x7f,0xf4,0x8b,0x0d,0x33,0x12,0x2b,0x67,0x6b,0xc9,0x1d,0x18,0x23,0x2e,0x54,0xee,0x07,0x28,0xbd,0x9d,0xa1,0xaf,0x85,0x7a,0x0f,0xe5,0x5d,0xf7,0x8b,0xca,0xd9,0x3d,0x8f,0x4f,0xcc,0xce,0xc3,0x6e,0x3a,0x40,0x08,0xd2,0x14,0xf0,0x28,0x9b,0xc0,0x4a,0x7a,0x3c,0xc2,0xed,0xe0,0x20,0x04,0xf5,0xf9,0xee,0xb8,0x35,0x94,0xbc +.byte 0x53,0x46,0xf2,0x1a,0xab,0xe9,0xde,0xd8,0x27,0x67,0x0d,0x63,0x2a,0x7b,0x3a,0x38,0x91,0xbc,0x48,0x2c,0x38,0x09,0xa0,0xe3,0x66,0xe3,0xeb,0xb9,0x02,0x2d,0x80,0x87,0x81,0x4f,0x5c,0x1c,0xfd,0x2b,0x0f,0x99,0x37,0x3a,0xfa,0x0f,0x8e,0x8c,0x87,0x76,0x72,0xd3,0xcf,0xc8,0x1e,0x8a,0x3b,0x97,0xa0,0xe6,0x32,0x66,0x3c,0x55,0x2c,0xfb +.byte 0xa9,0x41,0xfd,0xf9,0xd4,0x50,0xe0,0x5b,0x03,0xb7,0x1e,0x49,0xfa,0x59,0xeb,0x55,0xb1,0x21,0xd0,0x52,0xeb,0xe6,0x0f,0x21,0x81,0x4f,0x82,0x9a,0x8f,0x67,0x3d,0x0d,0x1d,0x11,0x1f,0x70,0x59,0x09,0x87,0x99,0xe5,0xf2,0x89,0xa6,0x56,0x8d,0x52,0x55,0xa8,0x91,0x5d,0x51,0x48,0xec,0x66,0x05,0xd6,0x18,0xd1,0x61,0x02,0x5a,0x80,0xcc +.byte 0xee,0xf3,0x3b,0x8e,0x73,0x2a,0xb1,0x22,0xda,0x1d,0xca,0xb2,0xd6,0x7f,0xd7,0x7d,0xaf,0x23,0x8d,0xff,0x24,0x8e,0x5e,0x38,0x29,0x23,0x1f,0xbc,0xfd,0xe4,0x3d,0xcd,0x66,0xe3,0xe1,0x0f,0x85,0xe3,0xda,0x34,0xc6,0xba,0x60,0x5f,0xaf,0x32,0x79,0x34,0xc0,0x01,0x93,0xae,0x1e,0x72,0x7f,0xd2,0x32,0xa1,0xdc,0x0b,0xca,0xee,0x5a,0x7a +.byte 0x09,0x98,0x2a,0x46,0x0a,0xe7,0xfd,0x0f,0x76,0xa0,0x3b,0x2b,0x3d,0xe5,0xcd,0x04,0xa2,0x5e,0x9b,0xba,0x4a,0xd5,0x0a,0xce,0x94,0x77,0xbb,0x24,0xa4,0x12,0xbc,0x24,0xb6,0x60,0x40,0x62,0xd2,0x70,0x0e,0x3f,0x62,0x72,0x2f,0xa1,0xc9,0x12,0x03,0x0f,0x39,0x57,0x77,0x7c,0x5c,0x31,0x13,0xcb,0x8c,0x2c,0x84,0xfd,0x7b,0x6f,0x60,0xbb +.byte 0x1a,0x0b,0x65,0x8c,0xc1,0xe6,0x4b,0x60,0x8c,0xe7,0x3e,0x94,0x2a,0xcc,0x70,0x9f,0xd0,0xfd,0x00,0x0e,0x36,0xb2,0xf1,0x62,0x78,0x6a,0xc8,0x9b,0xbe,0x8b,0x54,0xa7,0xad,0xee,0x3e,0x8e,0x1c,0x23,0xbe,0xa2,0x73,0x43,0xbe,0x15,0x32,0x84,0xdd,0x22,0x75,0xd5,0x9a,0xfb,0x93,0x38,0x55,0x2f,0xa4,0x34,0x4c,0x33,0xc3,0xd7,0x7c,0x9f +.byte 0x42,0x2f,0x9f,0xf6,0x27,0x90,0x15,0x6b,0x14,0x4f,0xbc,0x4b,0x07,0x42,0x24,0x98,0xa6,0xc4,0x4c,0x2f,0x22,0xd9,0x80,0x99,0x97,0x6b,0x7d,0xe8,0x2b,0x31,0x37,0xfe,0xd1,0x8b,0xbd,0xbf,0x08,0x4a,0x56,0x3d,0xff,0xb5,0x12,0x6d,0xc4,0xcf,0xbc,0x75,0xe9,0xe6,0x6f,0x1a,0x30,0x34,0x5b,0x2c,0x1d,0x8f,0x85,0xa0,0xe8,0xfd,0xfd,0xe2 +.byte 0xe7,0x13,0x73,0xcd,0x63,0x63,0x90,0xa5,0xa4,0x3f,0x91,0x65,0x77,0xd4,0xed,0x0c,0x1d,0x06,0x95,0x93,0x74,0x85,0xec,0x31,0xde,0xc9,0xb9,0x2e,0x7c,0x6d,0x2c,0x0d,0x15,0xb7,0x6b,0x0c,0xd2,0xe8,0xa8,0xcb,0x90,0x5c,0x11,0x53,0xc5,0x9d,0x54,0xf4,0x90,0xf7,0xc8,0x17,0x65,0xc0,0x3f,0xea,0xf6,0x28,0x8e,0xf0,0x1c,0x51,0xcc,0xfd +.byte 0x99,0x67,0x3d,0xa5,0x82,0x1f,0xb3,0x75,0x08,0x27,0x85,0xa9,0x7b,0x54,0x91,0x6e,0x80,0x9a,0xdb,0x6c,0x17,0x4a,0x36,0x73,0x0e,0x61,0x2e,0x01,0xae,0x32,0xf8,0x54,0xdb,0xcf,0x24,0xa5,0x13,0xb1,0x7e,0x0b,0xf5,0xe7,0x0e,0x27,0x9a,0xef,0x01,0x0b,0x34,0x4f,0x91,0xc2,0x93,0xe0,0xe6,0x14,0x64,0xf8,0x7b,0x41,0x37,0x22,0x39,0xad +.byte 0xf4,0xa9,0x3b,0xfb,0x7e,0x2b,0xd8,0x2b,0x0f,0x7e,0x40,0x55,0x5a,0x48,0x61,0x2f,0x95,0x5e,0x5c,0x25,0xe5,0x06,0x89,0x17,0x23,0xb6,0x1b,0x38,0x2e,0x7b,0x45,0xa5,0x11,0x0a,0x8d,0xd3,0x8d,0xb6,0x8d,0x47,0xc5,0x4f,0x8f,0x8b,0xe2,0x03,0x85,0xa1,0x5a,0xa2,0x8d,0xca,0x4d,0xef,0xc9,0xde,0x7d,0x06,0xa1,0x3f,0x21,0xb9,0x38,0x7b +.byte 0x91,0xf7,0x5c,0x9f,0x97,0xe3,0xeb,0x5d,0xea,0x5e,0xc1,0xa5,0x30,0xb0,0x7f,0xe0,0x4c,0xef,0xe5,0xe3,0xa0,0x2d,0x23,0xb6,0x08,0x21,0xe6,0x67,0x35,0x82,0x07,0x59,0x02,0xd4,0x68,0xa5,0xf1,0x42,0x70,0xb4,0x5e,0x54,0xed,0x1e,0x99,0xb2,0x55,0xf1,0x69,0x2e,0x7c,0xaa,0x6c,0x5e,0xd4,0xfa,0x16,0xa7,0x1f,0xdb,0x46,0x70,0x65,0x26 +.byte 0x98,0xf1,0xb6,0x42,0xb3,0x48,0x99,0x7c,0x07,0xbe,0x2b,0xee,0xb4,0xc1,0xf0,0xb7,0x47,0xf8,0xcf,0xe4,0x8d,0x34,0xa6,0xe5,0x17,0x9a,0xb7,0x2c,0x2e,0x03,0x30,0xfd,0xfb,0x42,0xe7,0xa1,0xe0,0x34,0x49,0x64,0xd8,0x0c,0xd5,0xb8,0x77,0x9f,0x0e,0xe2,0x73,0x0d,0x20,0x0c,0x21,0x07,0xaf,0x0f,0x93,0x94,0xd6,0xdc,0xe3,0xac,0x8d,0x8e +.byte 0xae,0x87,0xbd,0x2c,0x19,0x66,0xef,0x90,0x4a,0xd9,0xb0,0xf6,0xac,0x3a,0xe2,0xb5,0x2e,0xb4,0x63,0x91,0xf1,0x8b,0xac,0xce,0x51,0xc2,0xe0,0x02,0x7d,0xf8,0xab,0xe4,0xd6,0x85,0xd6,0xbb,0xd7,0x72,0xd0,0x5f,0x4e,0x90,0x09,0xcc,0x51,0xee,0x5b,0xad,0xb2,0xf6,0x16,0x37,0x09,0xa8,0xfc,0x74,0xa5,0x2e,0x26,0x27,0xff,0x53,0xd4,0x45 +.byte 0x82,0xb1,0xb6,0x16,0x65,0xc6,0xbb,0x54,0x0b,0x89,0xa1,0x0e,0x09,0x7c,0xc9,0xc9,0x48,0xa7,0x51,0x78,0x1d,0x3a,0x30,0xc5,0xe7,0x02,0x9e,0x91,0xd6,0x39,0xc8,0x35,0xf0,0x33,0xab,0xf6,0x0f,0xf9,0xce,0xef,0x26,0x46,0x48,0x56,0xbc,0x45,0x44,0xe2,0xd7,0xfc,0xdf,0xb2,0x95,0x20,0x07,0xeb,0x47,0x1c,0xde,0x88,0x5e,0x08,0xee,0xa1 +.byte 0x56,0x9a,0x5d,0x8f,0x35,0xc5,0xb3,0xd3,0x7d,0xe3,0x25,0x82,0xcc,0xcb,0xad,0xd8,0xef,0x83,0x76,0x08,0x55,0x9e,0xf4,0x00,0x1f,0x92,0x24,0x0e,0xf6,0x96,0x98,0x34,0x10,0x10,0x93,0x27,0x3b,0x96,0xbd,0x75,0x45,0x9d,0xad,0xc1,0x79,0xa7,0x09,0x68,0x0a,0xbc,0x14,0xe9,0x62,0xf6,0x5e,0x4e,0x6d,0xfb,0xf2,0x25,0x20,0x8b,0x53,0xa6 +.byte 0xc2,0x31,0x71,0xaa,0xfa,0xa2,0x1c,0xa1,0xb3,0xa2,0xd7,0x22,0x5a,0x72,0x61,0x5c,0x30,0x75,0xcc,0x82,0xb0,0xd0,0x07,0x8c,0x95,0x11,0x57,0xa4,0xe2,0x42,0xf3,0x3d,0x87,0x56,0x45,0x38,0xd6,0x1b,0x2b,0x26,0x11,0x99,0xce,0xcc,0x2e,0x96,0x1b,0xa1,0x06,0xa1,0xa9,0x65,0xe1,0x1f,0x53,0xb6,0x1e,0x5c,0x44,0x40,0xa2,0xf2,0x03,0xe7 +.byte 0x39,0x24,0x59,0x5f,0xdd,0x30,0xf0,0x78,0x9f,0x34,0xf1,0xd3,0x5d,0x9a,0xdd,0xf9,0x02,0x16,0x4b,0xfa,0x8d,0xab,0x2f,0x96,0xdb,0x67,0xf6,0x1e,0x7a,0xf8,0xd8,0xe6,0x71,0xdc,0x1a,0xbf,0x44,0xd2,0xbd,0xb3,0x6d,0x47,0x69,0xe0,0x14,0xef,0xe5,0x5e,0x0a,0xe9,0x1a,0x8b,0x3f,0x67,0x1e,0x1c,0x37,0x86,0x25,0x02,0x52,0x3f,0xf5,0xde +.byte 0xe0,0xbe,0x1d,0x61,0x44,0x3d,0xd2,0xe9,0x26,0x3d,0x4b,0xa4,0xb1,0xb9,0x62,0xc5,0x70,0xfb,0x1d,0xaf,0xe6,0x19,0x97,0x0f,0x6e,0x6d,0x4e,0xdf,0x5f,0xc9,0xb2,0xb0,0xb9,0x4b,0x72,0xc7,0x60,0x5d,0xf8,0x7d,0x3b,0xd8,0x74,0x29,0xf2,0x56,0x25,0xd9,0xd9,0x12,0x3a,0x50,0x01,0x54,0xd3,0x0e,0x4c,0xbd,0xc9,0xf5,0x66,0xc4,0x4b,0xa2 +.byte 0x68,0x31,0xb1,0x9d,0x47,0xd8,0x28,0xce,0x6b,0xe4,0x5f,0x78,0x75,0x22,0x7d,0x44,0x08,0x71,0xfb,0xd8,0xa0,0x6e,0xd1,0xbd,0x64,0x4e,0x00,0x99,0xf7,0x85,0xad,0x31,0xde,0x5c,0x4c,0x7c,0xc3,0x89,0x49,0x9f,0xea,0x22,0x86,0xa0,0x48,0x48,0xcf,0x47,0xfb,0x68,0x04,0x4c,0x05,0x62,0x57,0x60,0x9b,0xa0,0x37,0x41,0x77,0xe4,0x7d,0x3e +.byte 0x36,0xda,0xd5,0xfd,0x68,0x47,0x8c,0x68,0x61,0x4c,0xea,0x38,0x20,0xa5,0xe4,0x12,0x6e,0xd5,0x14,0x37,0x01,0xcf,0xbd,0xdd,0x55,0x97,0xb4,0x30,0xf0,0x65,0x15,0xee,0x1f,0xc8,0x5b,0x07,0x82,0xae,0x43,0xad,0x11,0xda,0x0e,0x61,0x23,0x0a,0x5f,0x52,0xf9,0x9d,0xc5,0x98,0x4e,0xaf,0x77,0x21,0xc8,0x9f,0x6d,0x25,0x94,0x4f,0x91,0x1a +.byte 0xb4,0x2d,0xe3,0x15,0xe5,0xe6,0x25,0xb8,0x8e,0xd8,0x33,0xe3,0x05,0x01,0x7b,0x6b,0xa8,0x39,0x44,0x4b,0x58,0x3c,0x17,0x53,0x17,0x5c,0xbc,0xd5,0xcd,0xd4,0x29,0xe7,0x17,0x7a,0x69,0xa6,0x75,0x8e,0x0a,0x00,0x41,0xbe,0xb4,0x8d,0x79,0x1d,0xac,0x2a,0x0f,0x9b,0x7b,0x5a,0xe8,0x17,0xe2,0xb3,0x1d,0x03,0xde,0x5a,0x7c,0x31,0x18,0x8c +.byte 0x1c,0xf9,0x19,0x7b,0x37,0x1f,0x53,0x77,0xce,0x1f,0xad,0xb6,0x0d,0x21,0xe1,0xb0,0xf9,0x42,0x52,0x99,0x02,0xa8,0x58,0xab,0x94,0xf8,0x9f,0x99,0x2d,0x1e,0x68,0x4f,0x5a,0x91,0x2b,0xdf,0xe8,0xe6,0x34,0xb6,0x80,0x9b,0xb1,0x0e,0x87,0xec,0x29,0x17,0x4d,0x98,0x2d,0x40,0xd0,0xf7,0xca,0x55,0x9d,0x56,0x19,0xd5,0x7c,0x4e,0x2e,0x75 +.byte 0x5d,0xe7,0x3e,0xed,0x47,0xdc,0xb1,0x04,0xe5,0x61,0x0f,0xe7,0xc4,0x16,0x71,0xf4,0xf8,0x8a,0xf1,0xfc,0xd5,0xdb,0xeb,0x0b,0x82,0x0f,0xfe,0x64,0xa2,0xb0,0x53,0xab,0xf5,0x01,0xc2,0x8f,0xa0,0x4d,0x5d,0x1b,0x54,0x32,0x48,0xca,0x8a,0x42,0x59,0x4a,0x85,0x68,0x75,0xd1,0x1b,0x03,0x11,0xfe,0x28,0xd7,0xd5,0x37,0x81,0x7a,0xfb,0x84 +.byte 0xfd,0xa8,0x98,0x54,0xf7,0x81,0xb0,0x2d,0x2d,0x5d,0x95,0x0a,0x5b,0x80,0x13,0x95,0xad,0x8f,0x88,0xaa,0x38,0x7e,0xbc,0x88,0xc2,0xf6,0xa6,0x1e,0x6d,0x78,0xc9,0x4f,0xa9,0xb3,0xaa,0x23,0x0c,0x62,0x19,0x6f,0x26,0x5d,0xca,0x36,0x23,0xf8,0xd1,0x76,0x80,0x32,0x59,0xa0,0x47,0x86,0xee,0xc9,0x0f,0x1d,0x37,0xd9,0xc9,0x4e,0x65,0x22 +.byte 0x17,0x95,0x88,0x85,0xb3,0x8a,0x5d,0xb9,0xe6,0x3b,0x6c,0x02,0x81,0x61,0xe0,0xab,0x19,0x6c,0x9a,0x29,0x33,0xf1,0x7b,0x0c,0x22,0x16,0x0c,0xd6,0xfa,0xc2,0x84,0xe5,0x74,0x9e,0x8e,0xf8,0xdb,0x44,0x68,0xa0,0x58,0x52,0x9f,0xad,0xe6,0x2b,0x23,0x70,0xf3,0x6e,0xdc,0xf1,0x2d,0xa5,0xc2,0x7f,0xef,0x5f,0x58,0xc2,0x96,0x66,0x67,0x4b +.byte 0x7c,0xe0,0xd7,0x96,0xda,0xf7,0xd7,0x7a,0x7d,0xb4,0x4f,0x48,0xbd,0x87,0x6b,0xf4,0xbd,0xd1,0x45,0xdc,0xba,0x4f,0xd2,0x00,0x7f,0xde,0x3c,0x57,0xd7,0x3b,0x5b,0xa9,0xf3,0x17,0x76,0x47,0x0c,0xcf,0x48,0x07,0xa8,0xc3,0x30,0x60,0xc6,0x98,0x20,0x29,0xba,0x5f,0x76,0x6d,0x63,0x5f,0x87,0x7e,0x36,0xbc,0xa3,0xe4,0xd6,0x6a,0x55,0x73 +.byte 0x8b,0x8b,0x62,0x40,0xc5,0x7e,0xa3,0x33,0x04,0xce,0xe2,0x9d,0x9f,0x67,0x1c,0xf0,0xa1,0x78,0xd2,0x0b,0x58,0xc1,0x2e,0xec,0x78,0x0a,0xc9,0x0b,0x1d,0xfb,0xcc,0x72,0xd8,0xe4,0x15,0xcb,0x09,0x8b,0xd9,0x33,0xa9,0xb6,0x24,0x7e,0x59,0x48,0xbf,0xda,0xdb,0x5c,0x99,0xd1,0x92,0x1b,0xb6,0xf6,0x75,0x78,0x53,0x69,0x89,0x27,0x6b,0x3c +.byte 0xfb,0xd2,0xa7,0xeb,0xc5,0xf7,0xea,0x8b,0x38,0x59,0x8e,0x02,0xc7,0x6e,0x96,0x8a,0x85,0x1c,0x91,0x1b,0x97,0x97,0x9e,0xa7,0x9d,0x10,0xa4,0x4a,0x6e,0xa8,0x51,0x05,0xbe,0x5f,0x9a,0x5b,0x94,0xf2,0x2c,0xa1,0x1e,0x33,0xc5,0xe8,0x92,0xb8,0xd2,0xfa,0x27,0x07,0x12,0xa1,0xdc,0x24,0x43,0x28,0x06,0xe5,0x43,0x57,0x8f,0x66,0x72,0x2f +.byte 0x26,0xf7,0xea,0xa1,0xcf,0x57,0xd6,0xa6,0xf7,0x37,0x1d,0x6e,0xd9,0xde,0x1a,0x8c,0xf5,0x01,0x76,0xc3,0x56,0x40,0x57,0x3d,0x4a,0x14,0x04,0xf2,0xfc,0xba,0x3b,0x60,0xf1,0x88,0x1e,0x16,0x08,0x99,0x90,0xfe,0x27,0xaa,0x04,0x53,0xd8,0x7e,0x0c,0x58,0x6a,0xd9,0x5a,0xe4,0x11,0xd4,0xcc,0x48,0xbe,0x03,0x08,0xbc,0x61,0x47,0xdd,0xde +.byte 0x5f,0x03,0xc7,0x8f,0x9c,0x08,0x93,0xe3,0xaa,0xee,0x9c,0xe3,0xc6,0x06,0x78,0xda,0x0a,0xdd,0xb0,0xc3,0xf3,0x0b,0xe5,0xa0,0x5f,0x1e,0x3e,0xb3,0x15,0x7f,0xf1,0xf4,0x38,0xb2,0xed,0xf2,0xa6,0x8b,0x1d,0x78,0xb6,0x03,0x19,0xcd,0x17,0xb4,0x18,0x17,0x49,0x61,0x17,0xbd,0xbe,0x4b,0x04,0x00,0xce,0x4b,0xcc,0x47,0x61,0x76,0x85,0xdc +.byte 0x2b,0x85,0x48,0x82,0xf4,0x9b,0xb4,0x62,0x53,0xc7,0x06,0x50,0xf2,0x3e,0xba,0x6d,0xf2,0x19,0x0f,0x7f,0x84,0xce,0xa6,0x4d,0x96,0x97,0x94,0x12,0xb6,0xd0,0xd6,0xa4,0xc1,0xcc,0x14,0x54,0xf6,0x7a,0xf1,0x94,0x62,0xa1,0xc7,0x22,0x9b,0x0d,0x0e,0x69,0xcf,0x38,0x5c,0xda,0x9f,0xc0,0xfa,0x93,0x81,0x24,0xce,0x9f,0xf3,0xc2,0x66,0xad +.byte 0x06,0x21,0xf2,0x48,0x6c,0x4a,0x0d,0xb8,0x41,0x86,0xaf,0xb7,0x6c,0x65,0xcb,0x83,0xd8,0x75,0x11,0x60,0xfa,0x06,0xe5,0xd2,0x11,0x87,0x29,0xb8,0x41,0xcb,0x17,0xb5,0xbd,0xbd,0xf9,0xd5,0xbc,0x89,0xb6,0x60,0x65,0x59,0xbb,0x38,0x9d,0x70,0xf9,0x81,0x6b,0xe6,0x12,0x80,0x08,0x73,0x9f,0xfb,0x2f,0x72,0x4e,0x18,0xff,0x65,0xab,0xa6 +.byte 0xaa,0x78,0xf1,0xa4,0xe9,0x1a,0x7d,0xa5,0xdd,0x91,0x77,0xa9,0xa3,0xf3,0xe3,0xe5,0x5a,0xa2,0x0d,0x3a,0x2a,0x4a,0x11,0x9a,0x8d,0xc3,0x00,0x6e,0xd4,0x4f,0xb9,0xe7,0x39,0x78,0x89,0x64,0xb2,0xc8,0xfd,0x1f,0xe6,0xa9,0x54,0x17,0x83,0x3f,0xeb,0x97,0x77,0xac,0xc8,0xba,0x0e,0x77,0x02,0xb0,0x29,0xbe,0x51,0x62,0xef,0xa5,0xd5,0xab +.byte 0x79,0x98,0xab,0x7a,0x1e,0x13,0xe8,0x87,0x4f,0x61,0xa3,0x37,0xdf,0xe6,0xda,0xb9,0xf5,0x69,0xf7,0x7a,0xee,0xd6,0x5f,0x6a,0xb3,0x95,0x55,0x59,0xd1,0x6c,0x5b,0xd5,0xba,0x8b,0x74,0x85,0xbf,0x1e,0xe5,0xb3,0x24,0x28,0x4b,0xc8,0x4a,0xec,0xa1,0x1d,0xda,0x99,0x3f,0xdf,0xfc,0xe6,0x2e,0x1b,0xa4,0xba,0x1a,0x03,0x89,0xb7,0x93,0x4e +.byte 0xaf,0x40,0xb0,0x7e,0x3f,0x34,0x0d,0x94,0x75,0x8c,0x8a,0xfb,0x88,0xcd,0xd3,0xc2,0x61,0x95,0x63,0x51,0xaa,0x78,0x1f,0x24,0x95,0x5a,0xb5,0x98,0x9a,0xd4,0xb8,0x34,0xe1,0x47,0x1c,0x68,0x0f,0x08,0xf1,0x69,0xe6,0xd4,0xaf,0x23,0xf6,0x32,0x71,0x51,0x01,0xa9,0xf2,0xa1,0x45,0x0b,0x75,0x82,0x09,0xe4,0x9c,0x2a,0x1d,0x0b,0xd6,0xd2 +.byte 0x26,0xe8,0x30,0x44,0xdf,0xa3,0x2b,0x97,0x11,0xc7,0xe7,0x47,0xfd,0xc7,0xbf,0x59,0xf3,0x28,0x32,0x46,0xc0,0xc4,0x7a,0x96,0x08,0x0d,0x2c,0xa1,0x82,0x6c,0x0a,0x33,0x82,0x55,0xd7,0xcf,0x3e,0x08,0xbb,0x22,0x15,0x96,0x12,0x66,0xd2,0xae,0x21,0x3a,0x54,0x6a,0xe0,0x33,0x0c,0xa4,0x96,0x4b,0x5d,0xf2,0x86,0xb9,0x70,0xe4,0x65,0x45 +.byte 0xe4,0x2f,0xa7,0xb4,0xc1,0xd5,0x9a,0x02,0xa1,0x5b,0x4e,0x58,0xca,0xf8,0x63,0xae,0x45,0x1c,0xf4,0xa7,0xc8,0xa5,0x84,0x23,0x87,0xcb,0x3e,0x88,0xca,0xe9,0xa9,0x49,0xc5,0xc6,0x63,0x37,0x99,0xe0,0x27,0x03,0x96,0x7b,0x73,0x8c,0x36,0xde,0x89,0x80,0x30,0x2c,0x00,0x94,0x0b,0xfb,0x1f,0x39,0xe0,0xed,0xb6,0x31,0x21,0x90,0xfe,0xa4 +.byte 0xee,0xa5,0xe5,0x7b,0x9a,0x11,0x41,0x51,0xab,0x89,0x54,0xe0,0x8d,0x5f,0x10,0x1b,0x76,0x27,0x77,0x3d,0xb0,0x58,0x86,0x7b,0xb7,0x45,0xfb,0xd0,0x81,0xa8,0xcd,0xc0,0xc8,0x5f,0xfb,0xfe,0x8c,0x0a,0x3d,0x5d,0x61,0x4b,0x9b,0x32,0x75,0x66,0xa9,0xac,0x32,0x35,0xe9,0x1a,0xdf,0x06,0x8d,0x13,0x5d,0x40,0xcb,0x7d,0x50,0x3e,0x54,0xab +.byte 0x04,0xbc,0x83,0x32,0x8f,0xf5,0x93,0x1d,0x9b,0x5a,0xe1,0x19,0x70,0x4a,0xba,0xfc,0x4c,0x6a,0xf3,0xd6,0xd1,0xfd,0x48,0xd0,0x7c,0xa4,0xab,0x0b,0xb6,0x5f,0xe1,0x31,0xce,0x99,0x10,0x98,0xfc,0x6e,0x1c,0xaa,0x9c,0x34,0xa2,0x55,0xdc,0xe0,0x81,0x1b,0x9e,0xff,0x75,0x2e,0x25,0xe9,0x2c,0x20,0x83,0xf6,0x66,0xf9,0x63,0x31,0xfe,0xa7 +.byte 0xbf,0x4d,0xfd,0xff,0x0b,0x93,0x84,0xd4,0xb4,0x72,0x13,0x38,0x90,0x75,0xc9,0xff,0x61,0x4b,0xf9,0x55,0x62,0x58,0xf0,0x60,0xce,0x2d,0xec,0x94,0x06,0x0a,0xde,0x48,0xc0,0x46,0x89,0xfb,0x5c,0xf7,0x9f,0x37,0xad,0xd2,0xff,0xbe,0xfb,0x81,0x21,0xe0,0x20,0x43,0x88,0xad,0x40,0x47,0x7a,0xa9,0x30,0x88,0x10,0x16,0x41,0xf8,0x25,0xe0 +.byte 0x8f,0xc2,0xe3,0x9f,0x48,0xd3,0xfe,0x61,0x70,0xb9,0xa1,0x9e,0xaa,0xa6,0x73,0xcf,0xc3,0xd6,0xab,0x69,0x65,0x4a,0x3c,0xec,0x28,0x02,0x63,0x62,0xa1,0xb6,0xa3,0xd5,0x8c,0x9e,0x11,0x81,0x98,0x12,0x4f,0xec,0xb6,0xe5,0x3a,0x96,0xa1,0x11,0x13,0x77,0x5f,0x0f,0x19,0x40,0x14,0x28,0xcc,0xf1,0x3e,0x19,0x1d,0x78,0x31,0xac,0x5c,0xce +.byte 0xd7,0x29,0xfa,0x02,0x3b,0x29,0xd8,0x3a,0x37,0xcb,0x94,0xb2,0x38,0xc7,0x7f,0x3a,0x46,0xd2,0xb7,0xfe,0xfb,0x54,0x7c,0x01,0xa2,0x9b,0x53,0x57,0x04,0x73,0x4e,0x06,0x90,0xe5,0x78,0x0a,0x45,0x67,0x12,0x83,0xd7,0x31,0x59,0xa4,0x76,0xaa,0x7c,0xde,0x72,0x92,0x11,0x94,0x4c,0x6a,0xe4,0x35,0x35,0x3a,0x2e,0xef,0x7c,0xc1,0x91,0x76 +.byte 0xd0,0xfe,0x84,0xd1,0xa1,0xf9,0x03,0xc3,0xba,0x09,0xbb,0x2c,0xe2,0xb5,0x06,0x7e,0x23,0xb7,0xe0,0xc1,0xd3,0xfd,0x55,0x01,0xf3,0xba,0xc5,0x1b,0xf8,0x02,0x60,0x92,0x0a,0x93,0x1c,0xc4,0x19,0x03,0x88,0xf5,0x45,0xe5,0x8f,0x7d,0xce,0x2c,0x87,0x2e,0xf6,0x55,0x8c,0xf9,0xb0,0xd2,0x72,0x2d,0x93,0x6d,0x28,0x6e,0x8e,0x3a,0xed,0x68 +.byte 0x02,0xda,0x80,0xd0,0x71,0x4a,0x8f,0x06,0x59,0x38,0x89,0x81,0xcb,0x1a,0x74,0x1e,0x62,0xa3,0xa5,0xb8,0x85,0xc3,0xd2,0x04,0x3d,0x3b,0x93,0x36,0x0c,0x12,0x55,0xfb,0x7b,0xc8,0xa3,0x25,0xa7,0x93,0xb0,0x3e,0x49,0x86,0xbf,0x76,0x8f,0xc4,0x4c,0xfe,0xce,0x4a,0xf6,0x2f,0x15,0x33,0x06,0x3a,0x35,0x49,0xe7,0x08,0xff,0x99,0xac,0xf6 +.byte 0x20,0x6d,0xab,0xb2,0x05,0xa9,0xe4,0x06,0x57,0x9c,0xf4,0x76,0x8c,0x82,0x64,0xd5,0x67,0xe0,0xad,0xe1,0x69,0xdc,0x9e,0x2c,0x59,0x92,0x3a,0xc8,0xc1,0x0a,0x61,0x89,0x45,0x9f,0x8b,0xf8,0x64,0x0a,0x5a,0x75,0x55,0x37,0x24,0xe1,0x42,0x43,0x7c,0x9c,0xcd,0x4e,0x9e,0x19,0xfb,0xd9,0x15,0x29,0x30,0x52,0x33,0xf3,0xc8,0x88,0xdb,0xaa +.byte 0x07,0x27,0xfb,0x2b,0x0c,0xc0,0xa1,0x5f,0x51,0xf1,0x54,0xf8,0x90,0x0a,0x35,0x07,0x6e,0x9c,0x64,0xd8,0x4f,0x2d,0xb3,0x61,0xbc,0x18,0x1f,0x22,0x84,0x94,0x4b,0x85,0xfc,0x4a,0xf9,0xe5,0xfc,0xdd,0x7a,0x07,0xa2,0xbb,0xbe,0x7e,0x1f,0x4e,0xf9,0x29,0xb8,0xde,0x56,0xe9,0x04,0xc1,0xc2,0xb6,0xa8,0xc7,0xb6,0x83,0xf2,0x85,0x3d,0x35 +.byte 0xe3,0xeb,0x2f,0x2f,0x3c,0x1a,0x3a,0xf1,0x61,0x1f,0xe8,0xf0,0xce,0xa2,0x29,0xda,0x3f,0x38,0xf5,0x82,0x7a,0xb8,0x55,0xf1,0x1a,0x6e,0x5b,0x5c,0xd0,0xc8,0xc8,0x3a,0xe2,0xaf,0xb4,0x6f,0xba,0xe4,0x03,0x78,0x5f,0x47,0x4b,0xaf,0xfe,0x2a,0x7e,0x27,0xba,0x17,0xb4,0x92,0x27,0x70,0x13,0xd9,0xbb,0x6b,0x1c,0x9a,0x3e,0x29,0x85,0x9a +.byte 0xb7,0x64,0x5b,0x6d,0x7b,0xec,0xb2,0x26,0x3a,0x4b,0xb7,0x17,0xaf,0xb5,0xa1,0xbc,0x4d,0x67,0x4c,0x86,0xd1,0x53,0x2e,0x5d,0x64,0xe8,0x55,0xd9,0xbb,0xae,0xc1,0x55,0x41,0x99,0x8e,0x4d,0xed,0x3d,0x9e,0xea,0xe3,0xf2,0x76,0x45,0x6d,0xaa,0xbb,0x89,0x0b,0xc0,0x13,0xfe,0x99,0x2c,0xb0,0xd2,0xa9,0xeb,0x58,0x57,0x4d,0x88,0x2e,0x04 +.byte 0x4f,0x7a,0x76,0xaa,0x3a,0xa6,0x08,0x93,0x42,0x74,0x2f,0x3a,0x35,0xb0,0x36,0xcc,0x77,0xec,0x54,0x41,0x2e,0x81,0xf6,0x9f,0xf3,0xe7,0x23,0xc0,0x3f,0xa4,0x52,0x83,0x38,0xe2,0x12,0xed,0xdb,0x23,0xa0,0x0b,0xbf,0x61,0x98,0x89,0xb0,0xa4,0x3d,0xa9,0x6a,0x73,0xa1,0x99,0xc9,0x9e,0x68,0x45,0x37,0x4b,0x6c,0x87,0xfb,0x93,0xf2,0xaa +.byte 0xe8,0x1d,0x53,0x6c,0x4b,0xda,0xc5,0x6f,0xaa,0xde,0x99,0xd2,0xba,0x7c,0x27,0xc2,0x4e,0xd5,0x5b,0xc8,0x13,0x9e,0xa2,0x10,0x6a,0xbb,0x39,0xf9,0xa7,0x55,0x0a,0x65,0x88,0x3c,0x9b,0xff,0x83,0x4e,0xf7,0x9c,0x99,0x69,0xbd,0x64,0x0d,0xd1,0xc0,0xb0,0x43,0xd6,0x63,0x50,0x13,0x68,0x8d,0xd1,0x7e,0x56,0x93,0xb5,0x8e,0x8f,0x12,0xe5 +.byte 0x37,0x96,0x21,0x64,0xd5,0x0b,0xf6,0x27,0xf8,0xaa,0x34,0x8e,0xc4,0x2b,0x7b,0x6a,0x7c,0x89,0x4e,0x15,0x15,0x3d,0x17,0x93,0xd4,0x99,0xfe,0x97,0x95,0x20,0x85,0xcc,0xd4,0xcd,0x73,0x67,0x80,0x22,0x06,0xed,0x5e,0xce,0x90,0x59,0x01,0x31,0x24,0x17,0x37,0x4a,0x63,0x96,0xc2,0xf3,0xe0,0x21,0x0a,0x3b,0x9f,0x94,0xad,0xd6,0xa4,0xa9 +.byte 0xa2,0x54,0x0d,0x2a,0xb3,0x5c,0xfa,0xbe,0xeb,0x21,0xd6,0x13,0x22,0xa5,0x95,0x5e,0x25,0x72,0xf9,0x18,0x1f,0x50,0x64,0x04,0x5b,0xe8,0x0e,0x1f,0x6c,0xe1,0x4e,0xf5,0x7f,0xf0,0x13,0x4f,0xda,0x75,0xab,0x5a,0x98,0xd3,0x07,0x32,0x96,0x2a,0xc7,0x1e,0x0f,0x14,0xdb,0x96,0x5f,0xac,0xc1,0xef,0x5b,0x2d,0xd6,0x6d,0x13,0x01,0xd9,0x04 +.byte 0x9c,0xcd,0xe5,0x5e,0xbe,0x3a,0x47,0x14,0x09,0xbe,0x11,0xad,0x87,0x3f,0x0e,0xe1,0xcb,0x97,0xd0,0x6e,0x1f,0x49,0x07,0xd1,0x8c,0x2b,0xe0,0xf0,0xb2,0xaa,0x8b,0x70,0x18,0x7f,0x29,0xcc,0xc4,0x23,0x66,0x48,0xc4,0xb5,0x5e,0xf1,0x10,0xd7,0x1d,0x2a,0xba,0xe4,0x12,0x64,0x1d,0xf5,0x03,0x35,0x71,0x57,0x5d,0xf4,0xa4,0xb5,0x99,0x0b +.byte 0x4c,0x80,0x65,0x07,0x2f,0xbc,0xf7,0x28,0x8b,0xc0,0x8f,0x84,0x63,0x7e,0xf5,0x01,0x23,0x8c,0xaf,0x71,0x35,0xd4,0xe1,0x70,0xc7,0xef,0x1f,0x66,0xa9,0x34,0x57,0xaa,0x9a,0xbb,0x80,0x43,0x15,0x96,0xc4,0x03,0xd9,0xae,0xbe,0x89,0x1c,0xa1,0x9f,0x65,0x61,0xe5,0x90,0x9f,0xa6,0xf4,0x3b,0xde,0xa1,0xd1,0xf1,0xf9,0x2d,0xd7,0xa7,0x7e +.byte 0x3d,0x42,0x3d,0x1b,0x99,0xed,0x49,0x2e,0x92,0x6b,0x47,0x0e,0x0b,0x90,0x56,0xe0,0x1b,0x6b,0xfe,0x97,0xfe,0x9b,0xa2,0x50,0xcc,0xbf,0xea,0xae,0xe8,0xf0,0xc4,0xe5,0x81,0x20,0x4a,0xb0,0xf7,0xa5,0x23,0x24,0xf6,0x3f,0x9e,0x9c,0xcc,0xce,0xe4,0x95,0x49,0xea,0x66,0x4a,0x35,0x31,0xf3,0x03,0xc3,0x08,0xf9,0x5f,0x95,0x4c,0xbc,0x84 +.byte 0x13,0xbe,0x7f,0x35,0xbb,0xd7,0x35,0x3c,0xfb,0x05,0x43,0x95,0xbf,0x87,0xf2,0xc3,0x2d,0xef,0x13,0x1d,0x65,0x17,0x82,0x75,0x3d,0x67,0x51,0xcd,0x6e,0x42,0x5f,0x49,0x53,0x8b,0xaf,0x34,0x7d,0xa8,0xc1,0x45,0xcd,0x3d,0x29,0x00,0xa3,0xf3,0xbb,0x44,0x00,0x05,0x57,0xa5,0xeb,0xfd,0x98,0xa6,0xae,0xc6,0xc4,0x6c,0x6d,0x7d,0xf6,0x3e +.byte 0x82,0x1d,0x12,0xe7,0xcd,0xd2,0xd5,0xfe,0x41,0xf8,0xa4,0xb3,0x6a,0x04,0x13,0x28,0x10,0x40,0x27,0xc9,0x43,0x74,0xcf,0xaf,0x9b,0x60,0x17,0x43,0x8f,0xd7,0xb7,0x56,0x72,0xf3,0x48,0x0a,0xe6,0x36,0xf2,0x3f,0x51,0xf9,0x6e,0xc8,0xa3,0x04,0x8c,0x01,0x86,0x6e,0x83,0x27,0xe2,0xba,0xf2,0x8f,0x8f,0xa1,0x39,0xe7,0x17,0xdd,0x06,0x10 +.byte 0x0c,0x7f,0xfa,0x22,0x5d,0x88,0x35,0xc6,0xcd,0x60,0xa2,0xf0,0xfd,0xc9,0xed,0x85,0xac,0x88,0xfd,0x7d,0xc0,0x77,0x1b,0x80,0x3d,0x21,0x1e,0x8e,0x4d,0xdb,0x20,0xe2,0x38,0xad,0xd4,0xb5,0x2b,0x2b,0x31,0xbc,0x7b,0x02,0xa2,0x25,0x50,0xc0,0x01,0x20,0x76,0x6f,0x98,0x0b,0x3d,0x46,0xed,0xbb,0x2b,0x39,0x74,0x30,0xce,0x3e,0x6d,0x91 +.byte 0xa1,0x89,0x83,0xde,0x69,0x93,0x1a,0x14,0xa1,0xb0,0xaa,0x80,0xb0,0x1c,0x02,0x3f,0x13,0x9a,0x15,0x7f,0xb4,0x02,0x8f,0x30,0x0b,0xee,0xd9,0x72,0xcb,0x74,0x95,0x4a,0x39,0xb3,0x4e,0x78,0x12,0xb1,0x77,0x89,0xc0,0xaf,0x17,0xfd,0xc1,0x68,0x65,0xd1,0x08,0xae,0x56,0x5c,0xe0,0xe7,0x6f,0xb3,0x1e,0x10,0xce,0xd8,0xdf,0xee,0x67,0xad +.byte 0xd8,0x08,0xe0,0x79,0x36,0xe4,0x57,0x1c,0x45,0x22,0xa7,0x44,0xa8,0x12,0x37,0x92,0x85,0x9f,0x3a,0x48,0xd0,0xfd,0xb3,0x40,0x20,0x10,0xed,0x11,0xe0,0x9a,0xa6,0x09,0x5b,0xe9,0x21,0x95,0xe1,0x45,0x19,0x39,0xcc,0x85,0x5f,0xa5,0x6b,0x46,0x37,0xe1,0xa1,0x17,0x3f,0xb6,0xe9,0xb0,0x81,0x25,0xf6,0xd1,0xb8,0x22,0x5a,0x27,0x48,0x83 +.byte 0x01,0x36,0xd4,0xb8,0xc0,0x9f,0x37,0x52,0x22,0xd2,0x69,0x7b,0x3d,0xfb,0x31,0xc1,0xa3,0xb4,0xa1,0x1d,0x0e,0x24,0x9a,0xda,0x02,0x15,0x4b,0x46,0x24,0x0e,0xb1,0x79,0xc2,0x5b,0x01,0x60,0x4a,0x24,0x8a,0xbb,0x70,0xaa,0xf4,0x45,0xc1,0x0d,0x04,0x26,0x3f,0x74,0xbd,0xdd,0x33,0xaa,0xd6,0x62,0x56,0xb1,0xe7,0x2d,0x7b,0x66,0xa2,0x40 +.byte 0xb4,0xe4,0xbd,0x8e,0x35,0xba,0xf1,0x2f,0x59,0xa7,0x01,0x6d,0x5a,0xa7,0xa6,0x3b,0x82,0xa3,0xb4,0x54,0x51,0x33,0x6b,0xfb,0x78,0x4a,0x74,0x88,0x7f,0x55,0xea,0x08,0x8e,0x19,0x78,0xbc,0x80,0x19,0x2f,0x41,0x97,0x20,0xa0,0x9e,0xbf,0x44,0xae,0x2e,0x26,0x66,0xe3,0x25,0xa0,0x92,0xa9,0xbe,0x8c,0x0d,0x96,0xec,0x93,0x99,0xe2,0xe7 +.byte 0x81,0xd5,0x10,0x62,0x3a,0x97,0x38,0x51,0x36,0x11,0x00,0xe0,0xc1,0x3a,0xc5,0xd4,0xa5,0x19,0xf4,0x82,0x66,0x0c,0xf9,0xb3,0x04,0x3e,0x57,0xc3,0x43,0xab,0xc6,0x52,0x95,0x8f,0xd3,0xf1,0xde,0xd9,0x57,0x6d,0x32,0x4f,0xc7,0x8c,0x1b,0x7a,0x53,0x6a,0xcf,0x56,0xea,0x61,0xb4,0xe5,0x64,0x2d,0x02,0x26,0x5b,0xcf,0x1c,0xc7,0x37,0xc3 +.byte 0x41,0xd2,0x1b,0x6c,0x5b,0x47,0xb8,0x73,0x89,0xfe,0x0e,0x7a,0x35,0x05,0xfc,0xea,0x6a,0x34,0x74,0x69,0xf0,0x12,0x29,0xa9,0x33,0xce,0x93,0x15,0xa0,0x68,0xb3,0x46,0x43,0xdb,0x8d,0xfa,0xef,0x93,0x66,0x72,0x18,0xae,0xe4,0xab,0xf4,0x8a,0xd1,0xb5,0x42,0xbd,0x2d,0xda,0xcb,0xf6,0x44,0x25,0xb1,0x01,0x8a,0xff,0xd5,0x34,0x16,0xec +.byte 0x7e,0x38,0x7b,0x50,0x41,0x61,0xf9,0xdf,0x4c,0x3e,0x02,0xd6,0xc3,0xce,0x19,0x9f,0x12,0x45,0x0c,0x99,0xb1,0xd9,0xeb,0xb9,0xe3,0xd5,0xb6,0x2b,0x25,0x8c,0x0b,0x04,0xf8,0x8d,0x41,0x41,0x3d,0x39,0x1b,0x7f,0x88,0xa7,0x8f,0x61,0x30,0xfe,0x67,0x75,0x35,0xd1,0x41,0x90,0xda,0x73,0x80,0xcf,0xc9,0xf6,0x44,0x00,0x67,0xcd,0xca,0xaf +.byte 0x6d,0x84,0x39,0x9a,0xb2,0xbb,0xfc,0xac,0x9b,0xb2,0x95,0x2f,0xc9,0x06,0x3a,0xa4,0x7b,0x9a,0x25,0xc6,0xe5,0xdb,0x7a,0xc6,0x8b,0x84,0x6a,0xb7,0x1e,0x22,0xaa,0x10,0x96,0xd3,0x55,0x50,0xa2,0x02,0x04,0x69,0x92,0xd7,0x6b,0x1f,0x9b,0x45,0x07,0x71,0xda,0xdc,0x76,0xc5,0xb8,0x34,0xa2,0x32,0x33,0x16,0x2e,0xb0,0x2a,0x90,0x43,0x40 +.byte 0x92,0x77,0x74,0x4e,0xdc,0xb4,0xe2,0x7d,0xc1,0x57,0xaf,0xf4,0x2c,0x20,0x65,0x77,0x88,0xc9,0x6e,0x69,0x38,0xc8,0x19,0x95,0x32,0x54,0x59,0x7f,0x37,0xd7,0x3c,0x07,0x05,0x87,0x2b,0xf9,0x58,0x74,0xc7,0x61,0x13,0x3d,0xc2,0xd9,0xec,0x3b,0x36,0x9f,0x8e,0xae,0x52,0xdd,0x5c,0xaa,0x29,0x6b,0x31,0x34,0x48,0x61,0x34,0x62,0x56,0xce +.byte 0x25,0xa8,0xc0,0x62,0xf5,0x35,0x58,0x4d,0x8e,0x61,0xd4,0xae,0x25,0x50,0xee,0x45,0xdd,0x14,0x7d,0x46,0x81,0x47,0xc3,0x3f,0x3f,0x81,0xdb,0x9a,0x59,0x56,0x4f,0x45,0xed,0x9c,0xe2,0xfc,0x96,0xff,0x5d,0x37,0x70,0xad,0xd2,0xeb,0xd9,0x2d,0x2a,0xaf,0xb9,0x16,0x4a,0x79,0x5d,0x76,0xb5,0x8f,0x74,0x19,0x6f,0x74,0x7d,0x4a,0xee,0x83 +.byte 0xa5,0x81,0xf3,0xd5,0xa0,0x43,0x5e,0x46,0xba,0xbe,0x49,0xa8,0xce,0x72,0x36,0x32,0xcd,0x8c,0x9b,0xa0,0xf9,0x5d,0xb7,0xb9,0xc7,0x8c,0xb2,0x59,0xb4,0x44,0xc1,0x90,0x53,0x92,0xd2,0xa8,0x4c,0xf9,0x35,0x40,0x32,0xd1,0xf0,0x2f,0xcb,0x6a,0x0b,0xe0,0xbe,0x34,0xc9,0x82,0x18,0x8d,0xfb,0xfc,0x50,0x8d,0x67,0xd5,0x86,0xd4,0xf1,0xb1 +.byte 0xaa,0x2f,0x9c,0xbc,0x52,0xbb,0x9f,0x17,0x1c,0x74,0x1d,0xdf,0x2d,0x1a,0x94,0x43,0x9b,0x80,0xb9,0x48,0xa3,0xaf,0x4b,0x30,0x0d,0xd9,0x3f,0x11,0x48,0x79,0x60,0xcc,0x25,0x6a,0xdb,0x8a,0xda,0xab,0xda,0x09,0x7c,0x9c,0x4a,0xaf,0xf9,0x0d,0xfb,0x7a,0x92,0x61,0xa5,0x17,0xf8,0x79,0x1b,0x00,0x52,0x56,0x5e,0x27,0x22,0x37,0xf4,0xbe +.byte 0x52,0x36,0xd3,0xdc,0x9a,0x33,0xf5,0x44,0x0e,0x53,0x0b,0xf6,0x9b,0xb0,0xb6,0x11,0xe4,0xd5,0x45,0x2e,0xdc,0xdb,0x46,0x18,0x9a,0x90,0x8b,0xcc,0xfe,0xc6,0x94,0x4f,0x97,0xb9,0x42,0xb6,0xd3,0x8f,0x7c,0x20,0xd1,0xa8,0xe6,0x85,0xce,0x65,0xeb,0x95,0x38,0x11,0x5c,0x1a,0x9d,0x34,0x25,0xc2,0xf0,0x33,0xbb,0x2c,0xc9,0x8d,0x0a,0x7a +.byte 0xb1,0x90,0x9f,0x24,0xed,0x35,0x3c,0x7e,0x71,0x82,0x12,0x3a,0x79,0x29,0xc8,0xa7,0x3e,0xa2,0x4e,0x50,0x03,0x94,0x7a,0x94,0xb7,0x2b,0x61,0x95,0x3d,0x5e,0x60,0x1c,0x68,0x51,0x82,0x73,0xe0,0x4a,0x2a,0x48,0x26,0xda,0xa3,0x53,0x8c,0x83,0xba,0x9f,0x95,0x37,0x5e,0x68,0x54,0x19,0x21,0xf8,0x31,0xaf,0x6b,0xfc,0x3a,0x3e,0xe3,0x3f +.byte 0xdb,0x16,0xb5,0x7e,0x13,0xf8,0xfd,0x7f,0x36,0xd6,0x8e,0x33,0xaa,0xe9,0xa4,0xa7,0xfd,0xf0,0x32,0xa6,0xdf,0xfa,0x22,0x7d,0xff,0x2a,0xe6,0x0d,0x6f,0xe2,0x21,0x54,0x6c,0x1a,0x99,0x17,0x56,0xad,0xce,0x39,0x6b,0x1a,0xe8,0x27,0x13,0x12,0x9c,0x4b,0x84,0x69,0x73,0xde,0x44,0x14,0xb2,0x7c,0x44,0x54,0x91,0x4f,0xeb,0x83,0xec,0x04 +.byte 0x73,0x85,0xb1,0xa8,0x44,0x72,0xa7,0x77,0xaf,0x0c,0xe0,0x52,0x65,0x04,0xe7,0x2a,0xee,0x0c,0x20,0x83,0x32,0x34,0x17,0x00,0x61,0xf9,0xf5,0x42,0x03,0xa4,0xb8,0x02,0x6f,0xb2,0xd3,0x65,0x51,0x2a,0x8e,0xdf,0x28,0x78,0x8a,0x8a,0x00,0xfb,0x24,0xd6,0xd5,0x86,0xaa,0xfb,0x86,0x93,0x5d,0x11,0xa4,0xf3,0xfd,0x36,0x18,0xf3,0x61,0xea +.byte 0x33,0xa8,0x0c,0xf0,0xb4,0x68,0xee,0xd3,0xe3,0x4f,0x22,0x24,0xde,0x1f,0x29,0x84,0x8b,0x5b,0x73,0x15,0xd6,0x62,0xa3,0x71,0x7d,0xf0,0x65,0x36,0xca,0x68,0x8a,0x6d,0x61,0x9c,0x0d,0x53,0xdd,0xf4,0x12,0xb3,0x5f,0xf0,0xb1,0x86,0xd6,0xe2,0xd6,0x80,0x4a,0x01,0x09,0x99,0x65,0xdb,0xae,0xe6,0xfc,0x68,0x5b,0xf9,0x10,0x99,0x8b,0x9f +.byte 0x08,0x52,0x09,0xae,0x59,0x4d,0x6c,0xf9,0x91,0x2b,0x57,0xea,0xf0,0xa3,0xdb,0xb8,0x99,0x29,0x2f,0xab,0x95,0x01,0x7d,0xec,0xd8,0x77,0x73,0x75,0x4f,0x88,0x44,0x69,0x76,0xc9,0x3c,0xf0,0x2d,0x7b,0x0d,0xbe,0xd4,0x88,0x0d,0xbc,0xa0,0x52,0xf4,0x2a,0xd1,0x62,0x2a,0xa9,0xe2,0x41,0x2f,0x52,0xce,0x96,0x7d,0x65,0x9b,0x74,0x82,0xde +.byte 0x43,0x4d,0xf8,0x8e,0x77,0x1c,0x18,0xf5,0x7e,0xab,0x94,0x3e,0xe7,0x90,0x2b,0xa1,0x16,0x00,0x7f,0x9c,0x9d,0x86,0xd1,0x74,0x7e,0xf7,0xbd,0x5a,0xa7,0x2f,0x0f,0xb0,0x5c,0xfc,0xfb,0x59,0x00,0xf3,0x84,0x09,0x77,0x66,0x17,0xf6,0x5d,0x0e,0xe2,0xe2,0xd4,0xb3,0x9e,0x79,0x88,0x66,0xa5,0x8e,0x30,0xae,0xca,0x7e,0x2b,0x32,0xa2,0x89 +.byte 0xe9,0x7e,0x59,0x21,0xd5,0x99,0xc7,0x10,0xa8,0x6f,0x95,0x8d,0x84,0xb4,0xcf,0x61,0xe7,0x5c,0x09,0xf3,0xbc,0xeb,0xf6,0x0c,0x84,0x1a,0x8d,0x13,0xf8,0x49,0x22,0xeb,0x09,0x55,0xef,0x56,0x12,0x21,0xcb,0x61,0x87,0xbf,0xef,0x43,0x5b,0x82,0xa8,0xc2,0xa2,0x5e,0xad,0x54,0x9a,0xcc,0x95,0xa2,0x01,0x05,0xb2,0xbb,0x26,0xa8,0xfd,0x6b +.byte 0x66,0x95,0x9c,0x0b,0x7b,0x23,0x32,0xff,0xdd,0x6c,0x18,0x1e,0x77,0x01,0x3c,0x82,0xaa,0x97,0x28,0x0f,0x93,0xa5,0x6c,0x85,0xe5,0x94,0x40,0xe0,0xa3,0x01,0x57,0x56,0x43,0x40,0xdd,0xa9,0xaf,0x21,0x79,0x10,0x8b,0xff,0x4b,0x51,0xe4,0xa2,0xe5,0xd7,0x0c,0xe2,0x9e,0x1e,0x38,0xdb,0x64,0xe1,0xb1,0x5b,0xe5,0x40,0xab,0xf6,0x05,0xd2 +.byte 0xba,0x85,0x78,0x61,0x2d,0x2e,0x07,0x06,0x6d,0x86,0x59,0xaa,0xd9,0x2c,0xfb,0x83,0x34,0xd0,0x2d,0x1d,0xad,0x5f,0xe4,0xac,0x05,0x46,0x3a,0x7b,0xd9,0xef,0x9f,0x2b,0x0c,0x18,0x21,0xf1,0x24,0x8a,0xb4,0x6e,0xd2,0x98,0x75,0x08,0x96,0x0c,0x7b,0x41,0xb7,0xf7,0x1f,0xcd,0xa8,0x1f,0x44,0xb1,0xed,0xdc,0x0e,0xcb,0x94,0xa0,0xb8,0x62 +.byte 0x67,0xdc,0x24,0xde,0x9e,0xe9,0x89,0xcd,0x92,0x7c,0x91,0x15,0xff,0xbd,0xfd,0xee,0xf8,0x29,0xd7,0xf9,0xe8,0x51,0xe7,0xc8,0x21,0xc5,0x20,0xe4,0xb8,0xa6,0xdb,0xfb,0x09,0x65,0x1c,0x3b,0x9e,0x39,0x44,0xcf,0xf5,0xc2,0x7b,0xf3,0x14,0x7d,0x69,0xf2,0xd0,0x97,0x63,0xf1,0xa7,0x81,0x56,0xfb,0xdf,0x4d,0x83,0x55,0x4f,0xde,0x50,0x7d +.byte 0xfe,0xb0,0xc0,0xc8,0x3b,0x3d,0x78,0x74,0x58,0x74,0x5e,0xfc,0xb7,0x0d,0x9a,0x26,0x3b,0x39,0xb6,0xf7,0xe0,0xe4,0x12,0x3c,0xd6,0x88,0x1c,0x9b,0x51,0x89,0xe7,0x53,0xcd,0x24,0x2e,0x34,0xa2,0xee,0xfa,0x5a,0x87,0xe5,0x7e,0xd5,0xf2,0x2f,0x15,0x99,0x57,0x5d,0x31,0x02,0xf8,0x08,0x38,0xea,0x8c,0x30,0x21,0xb0,0xff,0x94,0x51,0xcf +.byte 0x23,0xb7,0x02,0x5d,0xa3,0x75,0x7f,0x9d,0x66,0x49,0xe5,0xbe,0xc7,0x06,0x5e,0x1d,0xc9,0xe2,0x82,0x8a,0xc4,0x17,0x83,0x7e,0x65,0x6d,0x85,0x26,0x66,0xc0,0xf4,0xa5,0x1c,0x6e,0xba,0x32,0xfa,0x41,0x7b,0x2b,0x64,0x98,0x58,0x8c,0xce,0x2f,0xf3,0x56,0xf0,0x67,0xef,0x73,0x79,0xc4,0xc2,0x07,0xd7,0x85,0x1d,0x75,0x38,0x1e,0x15,0x82 +.byte 0x9d,0xf3,0xdd,0x3a,0x72,0xa3,0x23,0x0e,0x4a,0x1a,0x3a,0x97,0xc8,0xf1,0xf1,0x58,0x5d,0x1f,0xae,0x6d,0xc8,0x03,0xe0,0x7b,0x0f,0xf5,0x6f,0x35,0x41,0x8d,0xd5,0x03,0x85,0xdd,0xeb,0x3d,0x73,0xb1,0x93,0x35,0xc0,0x0f,0xfb,0x42,0xd4,0xf1,0x6b,0x35,0xe2,0x96,0xc5,0xd9,0xf2,0x69,0xbb,0x70,0x5e,0xf0,0x0c,0xe6,0xb5,0x81,0x94,0xc9 +.byte 0x29,0xa1,0x34,0x89,0xd9,0x9c,0x49,0x01,0x37,0x56,0x16,0x30,0x47,0x6f,0xe4,0x7c,0x5b,0xdd,0xfb,0x80,0x7f,0x0c,0x38,0x53,0x3d,0x57,0xf7,0xc4,0x80,0xf9,0x12,0x3a,0x9f,0xf9,0xb0,0xb6,0x94,0x6d,0xde,0x41,0x4e,0x30,0xac,0x1f,0x25,0x34,0xa0,0x95,0xe8,0x00,0x86,0x32,0x40,0xbb,0xc1,0x49,0x2d,0x07,0x49,0xb8,0x5f,0xcd,0x1b,0xd3 +.byte 0x0e,0x0c,0x54,0x0f,0xe4,0x20,0xe5,0xa1,0xed,0x98,0x65,0x5a,0xe7,0xce,0x68,0x9c,0x4c,0x48,0x03,0x9c,0x5b,0x68,0x4b,0x75,0x71,0x11,0x40,0x69,0xca,0x9a,0x3a,0xb2,0x3d,0x35,0x2c,0x70,0x35,0x8b,0x80,0x53,0x86,0x30,0x7d,0x4c,0xe9,0xc0,0x30,0x60,0xd0,0x06,0xbe,0xc2,0xad,0x39,0xcc,0xb2,0xec,0x90,0xcc,0xbd,0x7c,0xb5,0x57,0x20 +.byte 0x34,0x2e,0xfc,0xce,0xff,0xe3,0xd9,0xac,0xb8,0x62,0x6b,0x45,0x22,0x34,0xdf,0x8e,0x4b,0xf1,0x80,0x28,0x8d,0x0f,0xd5,0x3b,0x61,0x3e,0x91,0xa1,0xb1,0x85,0x27,0x78,0x88,0xbc,0xc4,0xb1,0xa1,0xbe,0x4f,0xc3,0xfd,0x1f,0xb9,0x30,0x31,0x2f,0xc1,0x9d,0xa3,0xb6,0x29,0xa4,0x60,0x82,0x73,0x93,0x74,0xea,0x97,0x67,0xf2,0xa3,0x97,0x50 +.byte 0x2f,0x9f,0x7b,0x23,0x18,0xb6,0xb4,0xee,0x15,0xa0,0xa4,0x07,0x1a,0xe9,0xb6,0x63,0x7e,0x88,0x40,0x57,0x86,0x79,0x6b,0x75,0xbe,0x57,0x8f,0xfe,0x0d,0xdf,0x4c,0x7f,0x39,0x9a,0x97,0xa6,0x87,0xc5,0xfd,0x52,0x77,0x36,0xc9,0x66,0x63,0xcf,0xc7,0x34,0x3b,0xf4,0x7a,0x12,0x56,0xf0,0xbc,0x7a,0x1a,0xa2,0xa2,0x51,0xb8,0xc1,0x70,0x81 +.byte 0xcf,0x1d,0xb5,0xe2,0x82,0xbb,0xfc,0xa3,0x80,0x18,0xf8,0x4b,0x76,0x9c,0xdf,0x9d,0x6c,0xf1,0xd8,0x2a,0xab,0x0c,0x12,0x02,0x29,0x09,0xfd,0x28,0xfb,0x57,0x38,0x05,0x2c,0xc5,0x67,0xd1,0xaa,0xbc,0x98,0xe6,0x22,0x78,0x06,0x4f,0x69,0x6a,0x63,0x1a,0x13,0x0b,0xa5,0xd2,0x61,0xc7,0x45,0x5b,0x21,0xab,0xbf,0x7b,0x7f,0x8c,0x2c,0xba +.byte 0x93,0x9f,0x41,0x67,0xc4,0x5f,0x53,0xac,0x90,0x05,0x86,0xb5,0x80,0x1f,0x5b,0x35,0x4f,0x92,0xf5,0xa8,0x5f,0xfb,0x56,0xdd,0x2d,0x9b,0xea,0xcb,0x0f,0x98,0x3c,0x4e,0xf1,0xa5,0x2c,0x37,0x70,0xe3,0x5c,0xaf,0x96,0x36,0xa8,0x2a,0xec,0xe0,0x2c,0x00,0xcd,0xaf,0x03,0x1d,0x05,0x2f,0x8c,0xe7,0xfe,0x4d,0xe9,0x97,0x6d,0xe1,0xf9,0x23 +.byte 0x60,0x08,0xea,0xfb,0x27,0xc8,0xf9,0xdf,0x49,0xfe,0xd9,0x48,0x35,0x6b,0x43,0xc5,0x19,0x90,0xb1,0xf1,0xee,0x84,0x7a,0x57,0xfa,0xa5,0xd6,0xd8,0xc9,0xf0,0x8a,0xe7,0x13,0x84,0xfc,0x28,0x54,0xae,0x99,0xfd,0x91,0xbe,0x91,0x27,0x98,0x28,0xdc,0xd7,0x2e,0xc1,0x21,0xcb,0x31,0xf8,0x47,0xe6,0x77,0x6d,0xee,0x7b,0x12,0xe4,0x9e,0x9d +.byte 0x07,0x46,0xa9,0x15,0x0b,0x3c,0xbe,0xc7,0x2d,0xe5,0xd6,0x25,0x4c,0xea,0x61,0xdc,0x18,0xb2,0x9d,0xb0,0x9a,0xff,0xa3,0x5f,0x2b,0xab,0x52,0x7d,0x1b,0xc3,0xa3,0x41,0x8f,0x5a,0x29,0xbd,0xc4,0x56,0x54,0x43,0x2d,0x61,0x07,0xed,0xd1,0x81,0x45,0xdb,0x61,0x0f,0xda,0xea,0xa6,0x1e,0xf9,0x9c,0xc0,0x8c,0xc4,0x8e,0xc7,0xca,0x38,0xe2 +.byte 0x45,0xde,0xdc,0xc5,0xc6,0xb0,0x43,0x17,0x8b,0xb1,0x58,0xd1,0x10,0x8e,0xa5,0x17,0x37,0x85,0xca,0x61,0x67,0x5c,0xd0,0x72,0x22,0x6b,0xd3,0x3b,0x53,0xbc,0xfb,0xe1,0x1e,0xa4,0x1b,0xd3,0xc3,0x8a,0x50,0x03,0x39,0xf5,0x36,0xdf,0x51,0x2e,0x05,0x4a,0xa8,0xdb,0x91,0x87,0xae,0xfe,0x3f,0x5c,0x35,0x5e,0xf9,0x8f,0x43,0x9e,0x92,0x36 +.byte 0x91,0x27,0x90,0xe8,0x7c,0xcc,0xc4,0x9c,0x13,0xbb,0x61,0x40,0xec,0x4f,0x49,0xcf,0x04,0x38,0x77,0x3b,0xb5,0xf8,0x69,0x8d,0xbb,0xb2,0x30,0x32,0x42,0x4d,0x7d,0x6c,0x56,0xdc,0xf4,0x8f,0xfc,0xb8,0x53,0xc5,0x11,0x17,0x23,0x94,0xf9,0x6d,0x6f,0xee,0xee,0x31,0xbf,0xce,0x11,0x8b,0x9e,0xd7,0xa5,0x09,0x36,0x89,0x72,0x25,0x18,0x1f +.byte 0x13,0xa7,0xdf,0xc5,0x91,0x7e,0xd6,0x2b,0xb8,0x08,0x9c,0x12,0x83,0x21,0x97,0x3d,0xad,0xac,0x1c,0x54,0xf3,0x65,0x04,0x2f,0x09,0xd1,0xd2,0xe5,0xce,0x24,0xb1,0xd9,0xe4,0x38,0x1f,0xb4,0xce,0xea,0x27,0x7f,0x5f,0x16,0x52,0xa4,0x2f,0x2f,0xaf,0x91,0xec,0x7a,0x21,0xf7,0xa1,0x38,0x78,0x78,0xc5,0xa9,0x94,0x63,0x87,0xf8,0x95,0x9e +.byte 0xf9,0x82,0x98,0x6d,0x9d,0x48,0x80,0xaa,0x7a,0x36,0xf9,0x5f,0xfb,0x39,0x3d,0xae,0xbc,0xcd,0xfc,0x67,0x46,0x07,0x7e,0xdf,0xef,0xff,0x8d,0x67,0xe7,0xd9,0x60,0x90,0x7b,0x49,0x10,0x65,0x3a,0x60,0x87,0x7a,0xed,0x9a,0x44,0x48,0x81,0xcc,0xad,0xe4,0x6a,0x62,0xf8,0x02,0x6f,0x41,0x8a,0x8d,0x44,0x28,0x1a,0xb8,0x52,0x60,0x4b,0x3f +.byte 0xfc,0xdd,0x33,0xad,0x14,0xb1,0x34,0x63,0x1f,0xdc,0xeb,0x9a,0x3f,0x99,0x82,0x28,0x36,0x6f,0x8e,0xd7,0x39,0x2e,0xc0,0x37,0xfb,0xad,0x57,0x6c,0x82,0x1a,0xc6,0xe4,0x4b,0xca,0x00,0x68,0x57,0x34,0xf0,0x57,0x6a,0xcb,0x50,0x5d,0x8d,0xfa,0xcd,0x89,0x41,0x91,0x23,0x98,0x1f,0x4f,0x18,0xb6,0xd2,0x9d,0xde,0x2f,0x5c,0xe6,0x08,0x76 +.byte 0x97,0xba,0x24,0x4e,0x84,0xd7,0xeb,0x80,0xde,0xec,0xee,0x51,0x5a,0x0e,0x5f,0xb7,0x37,0xda,0xa5,0x94,0x2b,0x6d,0x73,0xb7,0x6c,0x22,0x95,0x3a,0xaa,0x5c,0x6f,0x89,0x90,0xec,0xb3,0x31,0x00,0x37,0x28,0x18,0xbb,0x98,0x23,0xfc,0x3e,0x21,0x7c,0xaa,0x44,0x54,0x7b,0xe6,0xa0,0x17,0x58,0xef,0x11,0x3f,0x48,0xb8,0xa8,0x15,0x4a,0x92 +.byte 0xa9,0x39,0xe2,0xa6,0x38,0x03,0xa6,0xd3,0x79,0x8b,0x38,0x06,0xaf,0x4b,0xd4,0xab,0x0a,0x13,0xff,0x2d,0xfa,0xab,0x4b,0x64,0x9e,0xb0,0x3d,0xba,0x18,0x01,0xfd,0xc3,0x6a,0x6f,0x21,0x9c,0xf5,0x2f,0xab,0x2d,0x42,0x12,0xc9,0x72,0xde,0x83,0x42,0x6a,0xf0,0xd4,0x96,0x73,0xf1,0x93,0xa3,0x2d,0x9b,0xb4,0x94,0x51,0x0c,0x6e,0x8e,0xf0 +.byte 0x5e,0xbf,0x98,0xbf,0x08,0x0f,0xd8,0x6c,0x65,0x4e,0xb5,0x47,0xeb,0x7c,0x1b,0x73,0xe0,0xe6,0x2c,0x03,0xd2,0x2a,0x32,0xff,0xa7,0x03,0x6d,0x38,0x47,0x56,0x4b,0x25,0x0b,0x39,0x73,0x87,0x4b,0xa5,0x12,0x79,0x79,0xf3,0x88,0x37,0xe2,0x4f,0xb8,0xbf,0x70,0x0e,0xf7,0x8c,0xe6,0xa3,0xbc,0x35,0x10,0xcd,0x72,0x56,0xd6,0x83,0xc1,0x0b +.byte 0x5b,0xf3,0xa8,0x74,0xc7,0xb9,0x84,0xc8,0x6c,0xff,0x66,0xad,0x95,0x6f,0xbc,0x82,0x84,0x2a,0x11,0x40,0xf9,0xa8,0x3f,0x05,0xf9,0xab,0x19,0x55,0xce,0x80,0x90,0x65,0x49,0x3d,0xe1,0x54,0x2c,0x1a,0xdb,0xf3,0xaa,0x2f,0xeb,0xf5,0x10,0x1f,0x8c,0x35,0x46,0x68,0xb1,0x4c,0x52,0xe7,0xe9,0x58,0x78,0x33,0xfd,0xc6,0x13,0x0e,0x69,0xae +.byte 0xf4,0x1a,0x8a,0x77,0x8f,0xcc,0x98,0x74,0x88,0x20,0x84,0x5b,0x83,0x54,0xa9,0xee,0xc2,0x0f,0x8a,0x46,0xb1,0xc7,0xfb,0xfd,0xf2,0x2c,0xaf,0xfa,0x72,0x34,0x7a,0x79,0x50,0x10,0xc6,0x04,0xfd,0x0a,0x1e,0x4a,0xb5,0xf5,0xe7,0x4d,0x98,0x80,0x5d,0x0b,0x81,0x23,0xc3,0x6e,0xbf,0xc8,0xcd,0x35,0x96,0x5a,0x58,0xec,0xef,0x6a,0x8d,0x48 +.byte 0xda,0x48,0xbb,0x8f,0xcc,0x1f,0x86,0xff,0x7a,0x27,0xef,0xe6,0xb7,0xc7,0x2a,0x47,0x8d,0x6c,0x4a,0xc6,0x0a,0x32,0x67,0x1d,0x2f,0x83,0x3d,0x46,0x41,0x46,0x1c,0x75,0x7b,0x29,0x89,0xa2,0x65,0x9b,0x53,0x3d,0xd9,0x90,0x83,0xce,0xab,0x07,0xbb,0x46,0x61,0xb1,0x54,0xbd,0xc9,0x98,0xf7,0x96,0x76,0x03,0xdc,0x1f,0x1b,0xf2,0x5c,0x07 +.byte 0xdd,0x24,0x94,0x72,0x1e,0x94,0xb1,0x14,0x0b,0x40,0x77,0xde,0x3d,0x3f,0x1c,0xf0,0x8f,0xa4,0xcb,0x34,0xb5,0x2b,0x72,0x53,0x78,0xf3,0x3f,0x8e,0x47,0x30,0xb2,0x7e,0x73,0x3f,0x9a,0xef,0x19,0xb1,0xef,0x82,0x99,0xd4,0x17,0x60,0x94,0xf6,0x15,0x75,0x50,0x1f,0xb3,0xdd,0xae,0x1f,0xf8,0x63,0x9a,0x30,0x2c,0xf0,0xdd,0xbf,0x49,0x70 +.byte 0xd7,0x86,0x4a,0x5c,0x46,0x10,0x48,0x46,0x02,0x18,0xa4,0x39,0xb6,0x75,0x11,0x21,0xae,0x62,0x64,0xd8,0x85,0xc8,0xda,0xd2,0xd6,0x69,0xcc,0x37,0x57,0x49,0x73,0x1a,0x10,0x7b,0xd7,0x58,0xdd,0x0b,0xf3,0x16,0xe7,0x62,0x2c,0x32,0x92,0x0e,0x70,0x6f,0x77,0x74,0x0d,0xff,0xc2,0x8d,0x3b,0x3f,0x29,0x28,0x8f,0x88,0xb8,0x02,0x5b,0x3a +.byte 0x8b,0x65,0x89,0x92,0x2f,0xc7,0x30,0x73,0xc3,0x20,0xbc,0xa4,0xe4,0x5e,0xea,0xf8,0x21,0xb6,0xc5,0x47,0x56,0x35,0x8f,0xf6,0xd5,0xdd,0x77,0x1d,0xdf,0xd0,0x27,0xa3,0x04,0xb9,0xd0,0xc4,0x28,0x16,0xa5,0xaf,0x47,0x55,0x85,0x93,0x38,0xf4,0xac,0x13,0x30,0x7d,0x77,0x1f,0x3d,0xd5,0xd7,0x22,0xbe,0xe2,0x4e,0x6d,0x4b,0x0e,0xbe,0x1d +.byte 0x43,0x79,0x34,0x95,0x6f,0x38,0xa1,0xb3,0xa0,0xed,0xf6,0x17,0xf4,0x24,0x70,0x26,0x18,0x3e,0x1c,0xde,0xdc,0xa9,0x67,0x12,0xd3,0xc8,0xd7,0x70,0x13,0xa5,0xb3,0x25,0xe1,0x0a,0xe9,0xf6,0x4e,0x56,0x82,0x17,0xdc,0xbc,0x96,0x2f,0x59,0x03,0x9b,0xf4,0xc3,0x66,0xd2,0x90,0x95,0x1d,0xe0,0x99,0xfb,0xd8,0xa8,0x14,0xc7,0xa6,0x12,0x6b +.byte 0x08,0x6a,0xc8,0x0f,0x34,0x2a,0xb6,0xc4,0x9a,0xcd,0x61,0xf7,0x61,0xa3,0x59,0x29,0x11,0x30,0x76,0xb5,0x97,0xbc,0x2f,0x87,0xd8,0x12,0xb3,0x1d,0x99,0x8d,0x5d,0x57,0x0c,0xda,0xb0,0x9f,0x51,0x1a,0xb5,0xc6,0x94,0xc3,0xe9,0x5a,0x72,0x0c,0x37,0x76,0xb6,0x3c,0x00,0x02,0x69,0xad,0x8e,0x66,0x8b,0x5c,0x13,0x48,0xb7,0x9e,0xc5,0x7e +.byte 0xe0,0x35,0x07,0xd2,0x04,0x9c,0x35,0x95,0x8b,0x55,0x87,0x03,0x32,0x36,0xeb,0x11,0x88,0x54,0x8d,0x3e,0x88,0x46,0xc2,0xfe,0x24,0xa4,0x4b,0x92,0x19,0x44,0x6c,0xc9,0x69,0x32,0x22,0x95,0x5b,0xda,0x58,0xa4,0x00,0x33,0x83,0x2d,0xa4,0x17,0x2e,0x00,0x4d,0x9a,0x7d,0xef,0x04,0xa8,0x8b,0xf2,0x7c,0xb9,0xdb,0x54,0xcf,0x63,0x14,0x52 +.byte 0x5b,0x79,0xf6,0x89,0x5c,0xfa,0x8a,0x85,0x88,0x7f,0xca,0xed,0xfb,0x62,0xbc,0x1d,0x0d,0x90,0x51,0x27,0x45,0x74,0xa0,0x55,0xfc,0x60,0xea,0xef,0x6e,0x40,0xeb,0x0b,0x61,0x45,0x44,0xee,0xb6,0x20,0x4c,0xe1,0x08,0x62,0x29,0xdd,0xd0,0xa1,0xd5,0x7f,0x42,0xb9,0x0f,0x12,0xef,0xfb,0x13,0xa2,0xf1,0x85,0xaa,0x56,0x18,0x6c,0x70,0x7a +.byte 0x4d,0x52,0x76,0xce,0xa9,0xed,0x0a,0xcc,0x55,0xf0,0x01,0x99,0x44,0xe9,0xc4,0x74,0x33,0x2a,0xce,0x53,0xf3,0x4f,0x8f,0x1c,0x67,0x39,0x2b,0x0e,0x46,0xe2,0x49,0x06,0x52,0xbf,0xc4,0x3f,0x93,0x84,0x46,0x0a,0x9b,0xcb,0x1d,0xa5,0x66,0x9c,0x3e,0x3d,0xd1,0x92,0xda,0xe2,0x11,0x5b,0x89,0x7a,0xc4,0x33,0xba,0xa9,0x19,0xfd,0x3c,0xe3 +.byte 0xf0,0xa0,0x9b,0x83,0x50,0xce,0xa9,0x62,0xe3,0x85,0xc6,0xc4,0xe5,0x22,0xbb,0x1a,0x8e,0x04,0xb5,0x4d,0xca,0x18,0x7d,0xb0,0x99,0x50,0x78,0x88,0x69,0x43,0xe0,0xfd,0x90,0xa6,0xbf,0xdc,0xe3,0x03,0xf2,0x5d,0xa1,0xa2,0x88,0xc7,0xab,0xa9,0xc2,0xda,0x3f,0xff,0x79,0xa6,0x07,0xfd,0xc4,0xb1,0xfb,0x47,0x3d,0x75,0x82,0x26,0x52,0x85 +.byte 0x3f,0xf9,0xc9,0x85,0x46,0x24,0xe9,0x0f,0x96,0x8c,0xbb,0x02,0x83,0x60,0x69,0x49,0x8c,0x38,0xd1,0x4e,0xd0,0x63,0x2c,0xb6,0x12,0xb2,0x8e,0x4b,0xd3,0xe3,0xdf,0x20,0x00,0x99,0xf1,0x06,0x93,0xbf,0x27,0x42,0x8b,0xe3,0x8d,0x4c,0x3b,0x05,0x62,0x64,0x21,0xb1,0xfe,0xce,0x08,0xd2,0x23,0x69,0x11,0x74,0x31,0x3a,0x90,0x10,0x07,0x1a +.byte 0xd5,0xf5,0xc2,0x09,0x61,0x67,0x65,0x99,0x3a,0xf3,0x9e,0x4a,0xd8,0xa1,0xb2,0x50,0xf4,0x07,0xf0,0x7b,0x89,0x6d,0x4d,0x6a,0xd4,0x54,0xb9,0x3c,0xd5,0x4e,0x1c,0x12,0x0f,0x19,0x92,0x97,0x21,0x65,0x83,0x33,0x20,0x92,0x95,0xd4,0x0e,0x78,0xf4,0x92,0x16,0x36,0xd8,0x1b,0xd8,0xbf,0x41,0xe4,0xfb,0xb9,0x81,0x26,0x72,0x7e,0x1b,0x58 +.byte 0x05,0x45,0x97,0x66,0xf2,0x23,0x16,0xca,0x4e,0x95,0xc2,0x6c,0x60,0x84,0x5f,0x77,0x82,0x44,0x0e,0xf7,0x30,0xaa,0x51,0xa9,0x85,0x8b,0x03,0xfc,0x3d,0x6d,0x66,0x91,0x37,0xa5,0x1c,0xf8,0xcf,0x9d,0xd8,0xcd,0x8c,0xa1,0x29,0xbd,0xb5,0x4f,0x47,0xba,0xd1,0x55,0x3b,0x4e,0xc9,0xce,0x4c,0xcf,0x2e,0x19,0xa0,0x95,0xe6,0xcb,0x36,0x97 +.byte 0x3e,0x23,0xbe,0x09,0xfd,0x38,0x47,0x00,0x03,0xec,0x49,0xbb,0x49,0x1f,0x45,0x84,0x0f,0x1e,0x74,0xab,0xc9,0x07,0x00,0x04,0x70,0xe9,0xbd,0x61,0xb1,0x92,0xee,0x67,0x9a,0x5e,0x90,0xdc,0xe7,0x99,0x36,0xd0,0x58,0x15,0xe5,0x15,0xa2,0x1d,0x61,0x18,0x39,0x5f,0x6c,0xc7,0xbe,0xd0,0x23,0x1e,0x41,0xc8,0xaa,0x8e,0xbf,0xb8,0xdb,0x90 +.byte 0x8c,0x60,0x07,0x1e,0xe9,0x6c,0xe4,0xde,0xec,0x73,0x34,0x94,0x54,0xa4,0x6b,0x49,0xcf,0x87,0xb5,0x88,0x98,0xe6,0x2c,0xce,0xb7,0x76,0xa5,0x29,0xf1,0x29,0x50,0xc5,0x9e,0x13,0xe4,0x61,0x6a,0x54,0xb2,0x26,0xfa,0xfa,0x4a,0x41,0x3b,0x0a,0xf5,0x9a,0x60,0xbb,0xfc,0x1e,0x5d,0x21,0x7e,0x91,0x51,0xd6,0x5e,0x92,0xf9,0x21,0x80,0xa8 +.byte 0x35,0xc0,0xbb,0x7a,0xeb,0x75,0xb4,0xa3,0xd3,0x8d,0xaf,0x07,0x53,0x65,0x36,0x11,0xf9,0xb6,0x69,0x29,0x1e,0x5d,0x8f,0x57,0x5d,0xed,0x42,0xf9,0xd5,0xf6,0xc3,0x1e,0x29,0xc4,0x49,0x04,0xe4,0xfb,0xbf,0x9b,0x4a,0x7b,0xdd,0x57,0x51,0xfe,0xc4,0xd1,0xd9,0xe9,0x8f,0x94,0x78,0xbc,0x5c,0xeb,0xb6,0xbc,0x51,0xb0,0x82,0x87,0x47,0xb4 +.byte 0xf7,0xf9,0x02,0xd7,0xac,0x23,0xc0,0xe5,0x9a,0xc3,0x2f,0xd2,0xb8,0xb2,0x62,0xb9,0xdb,0x49,0x85,0x77,0x92,0xa6,0xe5,0x24,0x43,0x4d,0x0d,0x67,0x94,0x01,0x29,0xd6,0x2e,0xee,0xd9,0x2e,0x97,0x0e,0x20,0x7f,0x84,0x19,0x3c,0x3a,0x6f,0xa5,0xb0,0x8b,0x8f,0x8d,0x96,0xbb,0x76,0x61,0x97,0xc2,0x65,0x83,0xd8,0xda,0xab,0x42,0xfa,0xe5 +.byte 0x1e,0x42,0x93,0xa7,0x66,0x03,0x06,0x3b,0xbe,0xb8,0xae,0x71,0xee,0xdb,0x5d,0xdf,0x40,0x64,0x17,0x17,0x2e,0x03,0xca,0x37,0x2a,0x71,0x92,0x0a,0x01,0xa3,0x0f,0x0b,0x09,0xf2,0x0e,0x4b,0x4d,0x18,0xf3,0xc4,0xf2,0x51,0x7b,0x53,0x30,0xab,0x24,0xa2,0x47,0x38,0xc9,0x2c,0xdf,0x0d,0x32,0x3e,0x3f,0x57,0x2d,0xfc,0x44,0x19,0x64,0x8b +.byte 0xe9,0x9a,0xc2,0xf2,0xf6,0x2d,0x30,0x0c,0x0f,0xc3,0xc3,0xfe,0xc2,0xd1,0xbc,0xe0,0xbf,0xaf,0xeb,0x40,0x64,0x28,0xe2,0xd9,0x3c,0x7e,0x24,0x94,0x8f,0xe8,0x54,0x8b,0x26,0x6b,0xe1,0x4e,0x44,0x5a,0x7d,0x7b,0x12,0x36,0x2c,0x12,0xad,0x26,0xbc,0xa7,0xa3,0x2b,0x25,0xb9,0xde,0xe6,0x64,0x2d,0xab,0x7f,0x15,0x22,0x51,0x26,0x1c,0x15 +.byte 0x5d,0x13,0x18,0x93,0xc1,0x19,0x65,0xca,0xf3,0x8b,0xe0,0xcf,0x8c,0x43,0xe9,0xfd,0xa1,0xbd,0xe9,0xde,0x78,0x26,0xcb,0x7c,0xdc,0x68,0x06,0x98,0xf6,0x90,0x44,0x40,0xf0,0x5e,0xe1,0x16,0xf5,0x5d,0x4d,0x9b,0x85,0xe6,0x26,0xbd,0xab,0xcc,0x46,0x62,0x18,0x51,0xd5,0x3c,0x9f,0x6e,0xfa,0xe7,0x94,0xfc,0xc2,0x1a,0x9d,0x63,0x2c,0xdc +.byte 0xc3,0x89,0x67,0x94,0x37,0x58,0x0d,0x13,0xb8,0xdf,0x41,0x3d,0x70,0x78,0x1e,0x61,0x75,0x77,0xcc,0xbf,0x5f,0xa8,0xd3,0x89,0xcc,0xd3,0x40,0x4e,0x65,0xbd,0xce,0x3c,0xf0,0x5a,0x8f,0xe2,0xe1,0x24,0xaa,0xed,0x0f,0xd1,0x03,0x0d,0xf5,0x36,0x98,0xcd,0xa5,0x77,0x40,0x24,0x0a,0x82,0x68,0x79,0x82,0x38,0x68,0x6f,0x2b,0x0b,0xce,0x0f +.byte 0xcd,0x0f,0xba,0xdb,0xb5,0x22,0x38,0xd2,0xb0,0x9f,0x0f,0x08,0x0d,0xd8,0x5e,0xa7,0xd0,0xa9,0x39,0x66,0x4c,0x46,0xce,0x2a,0xc3,0x67,0x8c,0x91,0xdc,0xf1,0xc0,0x3a,0x58,0x50,0x1f,0xb0,0xa4,0x4d,0xbf,0x99,0x57,0xcf,0xae,0xb2,0xaf,0x6a,0x42,0xd2,0x7f,0x85,0x8c,0x40,0xc6,0x9a,0x93,0x57,0x54,0xf5,0xb4,0x83,0x59,0xb5,0x19,0x52 +.byte 0x7c,0x8b,0x76,0xee,0x35,0x90,0xbf,0xbe,0x65,0x58,0x3b,0x25,0x52,0x18,0xd8,0x7f,0x1f,0xe6,0x70,0xce,0x56,0x1a,0x45,0xa0,0x81,0xee,0x95,0x6f,0x55,0x43,0xaa,0x6e,0x87,0xa9,0xab,0x7d,0xe9,0xa1,0xa3,0x63,0xe7,0x1b,0x6b,0xa6,0x2c,0xe5,0x4a,0xb2,0x1e,0x73,0x5e,0xb5,0xae,0x83,0xe6,0x54,0x0b,0xc5,0x6b,0xb6,0xc4,0x73,0x62,0x1a +.byte 0xbf,0x1a,0x65,0xa2,0x5e,0x3a,0x45,0xd9,0xba,0x5b,0xef,0xf7,0x13,0x0c,0x7c,0x68,0xa1,0x98,0x71,0xb7,0x39,0x7c,0xbc,0x69,0xdb,0xd4,0xac,0x3f,0x82,0x63,0x9b,0x71,0x25,0x3a,0x06,0x73,0x60,0x71,0xc3,0x30,0xd3,0x96,0x02,0x4b,0x46,0xbd,0xd4,0x6e,0xc6,0x29,0xcc,0xd0,0xe1,0x0b,0x66,0x62,0xea,0x29,0xc7,0xcf,0x35,0x9e,0x2f,0x1f +.byte 0xa0,0xfc,0x8c,0x4a,0x83,0x8e,0x3b,0xf5,0x7a,0x6f,0x52,0xaf,0x99,0x9c,0x86,0xab,0xe5,0x1b,0x82,0xb3,0x18,0x35,0x77,0x9b,0xa3,0x94,0xc8,0x39,0x30,0x3f,0xad,0xa9,0x0f,0x93,0xb8,0xc8,0xed,0x04,0xf2,0x0b,0x9a,0xb1,0xd1,0xc9,0x9e,0x40,0x4f,0x71,0x21,0x63,0x2a,0x05,0x26,0x53,0xa3,0x3f,0x43,0xe4,0xf8,0x7c,0x2f,0xa3,0x5a,0x6e +.byte 0xc1,0x40,0xa8,0x4d,0xbc,0x03,0xae,0xe9,0x36,0xb6,0x37,0xdc,0x5f,0xef,0xb0,0x35,0x33,0xdf,0x33,0x71,0xaf,0x80,0xf2,0x69,0xd9,0xb5,0xfc,0xff,0xd2,0x5b,0x6a,0xeb,0xdc,0xe0,0x26,0x43,0x38,0x7b,0x24,0xb2,0x79,0x53,0x52,0x57,0xc4,0x1f,0x6d,0xc9,0x50,0xf2,0x63,0x9d,0xc1,0x22,0x5f,0x11,0x82,0x38,0xdb,0xd3,0xb4,0x1d,0x10,0x72 +.byte 0x9e,0x4d,0x03,0x30,0xba,0x5e,0xe9,0x8c,0x21,0x12,0xe6,0x3a,0xd6,0x4c,0x18,0xa4,0x27,0xc9,0xf5,0x50,0xbd,0xbe,0xf0,0x86,0xd8,0x00,0x56,0xf0,0x10,0x81,0xec,0xeb,0xfc,0x5b,0x29,0x88,0xff,0x73,0x60,0x6b,0xf5,0x8c,0x0b,0x30,0x04,0x53,0x85,0x61,0x0c,0xfc,0xff,0x8f,0x21,0xd2,0xa1,0xcb,0xf7,0x90,0x53,0x3b,0xf4,0xf0,0x2c,0x7d +.byte 0xb6,0x84,0xe7,0x4c,0x88,0xea,0x4f,0xdf,0xff,0x0f,0x5d,0x0f,0xd3,0x2d,0x4f,0x7e,0xdc,0xd1,0x22,0x71,0x0d,0xae,0xa8,0xcf,0x05,0x7b,0xfc,0xfe,0x87,0x40,0xa5,0xe8,0xfd,0x3f,0xdb,0x2f,0x00,0x21,0xb9,0x70,0x02,0x2c,0x96,0x24,0xaf,0x35,0xe2,0x87,0xcb,0x50,0xcf,0x7e,0xfa,0xaf,0x39,0x82,0x0c,0xd5,0xa6,0x3f,0x9c,0x77,0x60,0x16 +.byte 0xbf,0x42,0xcc,0x97,0xd1,0x19,0x0d,0x8a,0x50,0x98,0x7d,0x19,0x7b,0x40,0x1c,0x22,0xde,0x50,0x90,0x32,0x9a,0x3d,0x07,0x35,0xc0,0x48,0x4c,0x0a,0xcd,0x91,0xab,0xf7,0xf3,0x06,0x77,0x80,0x96,0x7b,0x59,0x33,0xe6,0xbf,0x93,0xb8,0x59,0xd0,0x3a,0x1f,0xcc,0xe7,0x1d,0xd4,0xb5,0x58,0xee,0xe7,0x95,0xfa,0x75,0xdb,0x37,0x74,0xb0,0x7d +.byte 0x4d,0xee,0xef,0x20,0x13,0xe5,0x82,0x07,0x8e,0xdd,0x57,0x75,0x33,0x56,0xc4,0x80,0xb0,0x06,0x9f,0x6b,0x72,0x31,0xcf,0xac,0x5f,0x96,0x13,0xeb,0xf4,0x34,0xb6,0x6b,0x55,0xef,0x55,0x26,0x4e,0xdb,0x6c,0x2f,0x64,0x29,0x91,0x3c,0x6d,0x29,0xd2,0x94,0xbd,0x2c,0x99,0xb9,0x97,0x76,0xee,0x7d,0xfd,0xb2,0x8d,0x14,0x4f,0x09,0x81,0xb3 +.byte 0x68,0x3e,0x79,0x28,0x56,0x50,0x3f,0x86,0x4c,0x95,0x6c,0xad,0xf6,0xc5,0x43,0x25,0xea,0xbc,0xe2,0xba,0x77,0x18,0xc6,0x82,0x65,0x73,0x38,0x90,0x9d,0xc9,0x57,0xcd,0xa2,0x7c,0xd3,0x26,0x59,0x44,0xd9,0x79,0xae,0xdd,0x6f,0xe9,0xdc,0x16,0x73,0xba,0x05,0x8a,0x40,0x9f,0xe7,0xcf,0x29,0xa4,0xdf,0x49,0x7f,0x1d,0x73,0xc7,0x8b,0x8d +.byte 0xad,0xb5,0x3d,0x1b,0x64,0xb1,0x8f,0x78,0x06,0xbe,0xaa,0x2c,0x08,0x73,0xc7,0x2c,0xdc,0xd8,0x3f,0x9f,0x1b,0xd2,0xe1,0x4f,0x9d,0x87,0xb8,0xa9,0xdc,0xef,0xbc,0x31,0x9f,0xf7,0x84,0x09,0xe7,0xbc,0xec,0x2a,0xcb,0x3b,0x3a,0x30,0xe2,0x5b,0xbc,0xcd,0xa8,0xdb,0x46,0x80,0xec,0xaa,0x06,0x8e,0xd8,0x6c,0x35,0x65,0x52,0xb8,0xc3,0xf9 +.byte 0x97,0x68,0x06,0x2d,0x3e,0x91,0x71,0x44,0x6e,0x01,0x51,0x10,0x5b,0x74,0xb9,0x3f,0xd7,0xf9,0x5c,0x98,0xe6,0xf8,0x98,0x32,0x26,0x9b,0x5e,0x9c,0x88,0xfb,0xaa,0x70,0xd2,0x2e,0xc2,0xf6,0x02,0x92,0x33,0x55,0x92,0xba,0xfb,0x0e,0x0b,0x08,0xdf,0x5d,0xdd,0x47,0x28,0xae,0x32,0xb3,0x27,0x8d,0xd4,0x18,0x43,0x64,0xc4,0x7f,0x60,0x62 +.byte 0xd9,0x63,0xd1,0x28,0xc9,0x75,0x3b,0x44,0xb4,0x8e,0x2a,0x93,0xf9,0x4c,0x4f,0x7e,0x6b,0x98,0xc9,0x1a,0x82,0x51,0x9a,0xb2,0x80,0x70,0x2e,0xff,0x19,0x66,0x1b,0xb6,0xbc,0x15,0x8e,0xe6,0x0f,0x8e,0x04,0x10,0x94,0x44,0x6c,0x32,0x4b,0x61,0xbc,0x4a,0x16,0x7b,0x25,0x2a,0x27,0x96,0xa9,0xa9,0x61,0x10,0xc1,0x46,0xdd,0xf5,0xe3,0xe8 +.byte 0x1f,0x5b,0xa0,0x77,0xe1,0x42,0x9a,0xd4,0x04,0x33,0x68,0x72,0x1c,0x44,0x29,0xce,0x98,0xe0,0xc7,0x3a,0x9e,0x3c,0xb9,0xb4,0x29,0xef,0x57,0xee,0x8c,0x8f,0x7c,0xe6,0xe1,0x43,0x6e,0x45,0x0e,0xdd,0x4e,0x11,0x4b,0x28,0x69,0xde,0xb8,0xfa,0x32,0xbe,0xc6,0x4f,0x11,0x99,0xe5,0xe3,0xe2,0x1f,0x03,0xbe,0x4a,0xad,0x60,0x68,0xc8,0x13 +.byte 0x80,0x4e,0xb6,0xc0,0xc5,0xc7,0x97,0x5c,0x0b,0x0e,0x64,0x43,0x78,0x70,0x95,0x91,0x8e,0x36,0x6b,0xad,0x57,0xc7,0x1e,0x9c,0x54,0xc9,0x89,0xf0,0x13,0xde,0x0a,0xbe,0xc0,0xa9,0x35,0x77,0x0a,0x01,0x7f,0x98,0x51,0x82,0x92,0x14,0xe0,0x9a,0x08,0xa3,0x0c,0x6c,0x67,0xf2,0x05,0xaa,0xa9,0x4e,0xce,0x3b,0xb1,0xb6,0x8c,0x82,0x5d,0x11 +.byte 0xf2,0xe5,0xd7,0xda,0x3a,0x65,0xa0,0xe3,0xa4,0x09,0x01,0x1c,0xb2,0x08,0x90,0x94,0xb5,0x51,0x56,0x24,0x22,0xfd,0x12,0xad,0x7a,0x75,0xcf,0x0f,0x0f,0x23,0xc3,0xa6,0x1f,0xf8,0x39,0xbc,0x2f,0x18,0x53,0x14,0xef,0xdf,0x90,0x6a,0x50,0x2b,0x8c,0x8b,0xa8,0xd4,0x8c,0x59,0x8f,0xd8,0x81,0x86,0x57,0xc1,0xd1,0xfb,0xe7,0xa6,0x20,0x6e +.byte 0x7c,0xbf,0xce,0xe3,0xce,0x28,0x35,0x7c,0x8e,0x1a,0x66,0xea,0x7d,0x81,0x09,0xdb,0xa8,0x64,0xba,0x3c,0x07,0x3f,0x23,0xd3,0x05,0x97,0x4c,0x92,0xc2,0xa4,0xe8,0x6c,0xfb,0xa0,0x9d,0x8b,0x4d,0xcb,0x3a,0x96,0xe7,0x04,0x0f,0x48,0x87,0x2c,0xdd,0x51,0xf3,0x46,0x7e,0x61,0x89,0xbe,0xb8,0xb0,0x9e,0x9c,0xc4,0x37,0x55,0xe6,0x4f,0x78 +.byte 0x7e,0xb0,0x59,0x42,0xca,0xba,0x4a,0xb2,0x50,0xbd,0x16,0x68,0x99,0x42,0xb4,0x8b,0x60,0x3d,0x54,0x41,0x17,0x11,0x39,0x42,0x5d,0x41,0xec,0xc2,0x53,0x82,0x7c,0x32,0xc9,0xd1,0x34,0x49,0xd8,0x4f,0x29,0x21,0xeb,0x97,0x98,0x4c,0xeb,0x21,0xce,0x50,0xd6,0x53,0xd9,0xf1,0x6e,0x26,0xfa,0xe4,0x71,0x34,0xd8,0x38,0xac,0x39,0x4f,0x02 +.byte 0x36,0x93,0xf2,0x08,0x88,0xdc,0x24,0xdd,0x1f,0xf5,0xe9,0x7f,0x83,0xa0,0xa4,0x6b,0xc5,0xef,0x8e,0x82,0xf9,0x92,0xbc,0x82,0x3f,0xce,0x86,0xa6,0x34,0xf8,0x16,0xa7,0xdb,0x97,0xca,0x54,0x43,0xd8,0xfc,0x31,0xde,0x73,0xd0,0x79,0x1a,0xac,0x61,0x15,0xbd,0x38,0x64,0x3b,0xc6,0xb5,0x95,0xeb,0x2e,0x68,0xe4,0x1d,0x6b,0x18,0xab,0x88 +.byte 0xb0,0x96,0x51,0x8c,0xbe,0x41,0x63,0xd6,0x9a,0x21,0x60,0xe8,0x26,0x37,0xb3,0x10,0x76,0x46,0x31,0x90,0xb0,0x9f,0x17,0xab,0x0f,0x93,0xcc,0x12,0x78,0xee,0x17,0x1c,0xd8,0xc7,0x76,0x0a,0x5a,0xb4,0x8b,0xb1,0x67,0x11,0xde,0x48,0x14,0x8a,0x2a,0xc7,0x71,0x46,0x94,0x15,0x29,0x44,0x9e,0x35,0x03,0x10,0xf7,0x51,0x8a,0xaa,0x9c,0x4a +.byte 0x9a,0x44,0xd5,0xc7,0x37,0x9d,0xb4,0xad,0x41,0xd0,0xda,0xd2,0x1a,0xf9,0x93,0xee,0x28,0x32,0x65,0x0b,0x9c,0x12,0xe3,0xad,0x9f,0x82,0xeb,0x3f,0x03,0xe7,0x6a,0x58,0x83,0x3f,0xbe,0x9f,0x27,0xd3,0xd6,0xe2,0x45,0xbf,0x90,0xe2,0x12,0x61,0x0b,0x57,0xd7,0x06,0x72,0x39,0x2c,0x3e,0x65,0xb2,0xf4,0xf7,0x54,0xef,0x32,0x99,0x44,0x0d +.byte 0xf0,0x5c,0xde,0x4c,0x2e,0x22,0xcd,0x3c,0x25,0x02,0xa5,0x0d,0x79,0x16,0xb0,0x51,0x3f,0x3c,0x84,0x56,0xfa,0x00,0xae,0x7a,0x36,0x45,0x3a,0xcc,0x1d,0x66,0xff,0xf4,0x49,0xce,0xb5,0x5c,0x51,0xf4,0x3e,0x07,0xf2,0x83,0x84,0x4d,0x4e,0xb7,0xce,0x03,0x7b,0x23,0x63,0xdf,0x64,0xa2,0x55,0x92,0xf9,0x2e,0xa5,0x21,0x89,0x29,0x42,0x48 +.byte 0x36,0xc5,0xab,0xd6,0x82,0xe3,0xff,0x45,0xfc,0x61,0xa6,0x4f,0xb9,0x51,0xba,0xd5,0x03,0xa9,0x0b,0xe7,0x73,0x83,0x97,0x1d,0xb2,0xc6,0x75,0xa0,0x52,0x99,0xfc,0x1b,0x27,0x7a,0x10,0xc1,0xed,0x70,0x21,0x4b,0x93,0xa4,0x20,0xed,0x16,0x76,0x97,0x82,0xab,0x21,0xfe,0xa4,0x3f,0xd9,0xbd,0x9c,0x2f,0x19,0x42,0xbc,0xb3,0x4f,0x44,0xf3 +.byte 0x9e,0xd0,0xe7,0xc9,0x7e,0x31,0xaa,0xbc,0x4b,0xba,0x73,0xe1,0xc3,0xbf,0x5d,0xa2,0xd8,0xb7,0xb6,0xfc,0x0a,0x32,0xb9,0xff,0x80,0xb6,0x2a,0x8b,0xea,0x81,0xa0,0xeb,0x1e,0x9e,0x69,0xdd,0xbe,0xc1,0x8a,0x5d,0xfb,0x66,0x21,0x98,0x5c,0x6f,0xd8,0xb4,0xcf,0x8a,0x1a,0x4b,0xde,0xa2,0x20,0xe8,0x5a,0x5a,0xee,0x14,0x09,0xcb,0x63,0x1c +.byte 0x14,0x7d,0x9b,0x47,0xf8,0xfa,0xda,0xb7,0x0e,0xc6,0xbd,0xb2,0x13,0xb8,0x10,0xe2,0x71,0x04,0x36,0x78,0x6d,0x3a,0x8b,0x45,0xd3,0x05,0xec,0x8a,0x2d,0xfa,0x85,0x7c,0xdd,0x75,0xb3,0x2d,0xd1,0xae,0xfc,0xdd,0x02,0x2e,0xcc,0x43,0xc5,0xed,0xe4,0x3f,0xee,0x2c,0xd7,0x37,0x81,0x3a,0x44,0xe6,0xed,0x8c,0x9d,0x9d,0xfa,0xb5,0xdc,0xde +.byte 0xb2,0x7c,0x51,0x58,0xa4,0x21,0xac,0xe2,0x79,0x96,0x90,0xe2,0x0b,0xbf,0x51,0x66,0x77,0x02,0xff,0x67,0x0a,0x70,0x1f,0x04,0x6c,0xb0,0x5b,0x2d,0x26,0x23,0x5a,0x85,0x73,0x66,0x6e,0x7c,0xb3,0xeb,0x36,0x73,0x0f,0xcd,0xb2,0x07,0xee,0x78,0xd1,0xbd,0x5e,0xfa,0x31,0xf6,0x82,0x67,0x94,0xaa,0xff,0xef,0xd2,0x23,0xfc,0x82,0xaa,0xe2 +.byte 0xef,0xc3,0x74,0x79,0x6c,0xe9,0x3f,0x8d,0xe1,0x1b,0xc8,0xb4,0xff,0x15,0xf4,0x60,0xe8,0x84,0x3f,0xaa,0xc6,0x53,0x51,0x1a,0x9b,0x04,0x9b,0xab,0xc5,0xee,0x9a,0x98,0x80,0x89,0x8d,0x5b,0xef,0x0a,0x69,0x71,0xd2,0xf3,0x49,0xc1,0xc1,0x87,0xb3,0x18,0x4b,0x82,0x02,0x87,0xb0,0xf1,0x76,0x4b,0x3e,0xad,0x95,0x51,0xb1,0x64,0xb1,0x03 +.byte 0x5b,0xd2,0x10,0x7b,0x4e,0xd4,0x08,0xf8,0xfd,0xea,0xf0,0xc7,0x16,0x43,0x86,0xa6,0xdb,0xcd,0x75,0xce,0xa9,0xfd,0xa8,0x7c,0x51,0xf7,0xa5,0x29,0x6f,0x0d,0xee,0x66,0x8f,0xc6,0xcd,0x9e,0x3f,0x00,0x24,0x21,0xca,0x69,0x79,0x27,0x03,0x62,0xdf,0xad,0xb9,0x8c,0xd8,0x08,0x88,0x0d,0x0c,0xa1,0x29,0xf9,0xba,0x92,0xb5,0xdd,0xb8,0x1a +.byte 0xbb,0xab,0x44,0xb2,0xda,0x1b,0x8b,0xc1,0x3c,0x61,0x9f,0x7a,0x8b,0x89,0x99,0x09,0xc3,0xb4,0xe4,0x24,0xf5,0x3b,0x36,0xa6,0x61,0x0a,0xec,0x2a,0x1c,0x92,0x7c,0xb1,0x7c,0xd8,0x0b,0x98,0x48,0x8d,0x52,0xa2,0x57,0xc1,0x28,0x89,0xbb,0x60,0x5c,0x58,0x62,0x41,0x1c,0xd6,0xfb,0x69,0x09,0x93,0x90,0x31,0xc4,0x72,0x71,0xf0,0x4f,0xcf +.byte 0x10,0xbb,0xb7,0x6c,0x3b,0x53,0xa3,0x0b,0xff,0x44,0x4c,0x37,0xd5,0x26,0x83,0x7e,0x5c,0xb9,0xa5,0xe8,0x8b,0xc4,0x15,0xf6,0xc7,0xd1,0x39,0x67,0x01,0xb7,0xca,0xa7,0x71,0xa8,0x04,0x95,0x0f,0xfc,0x0a,0x9e,0x52,0xb2,0xfb,0x48,0x47,0xb6,0xa5,0x14,0xc2,0x4f,0xa8,0xd5,0x0f,0x10,0x76,0x39,0x23,0x74,0x2e,0xe5,0x17,0xcb,0xad,0x8a +.byte 0x4a,0x25,0xc8,0x9b,0x25,0x94,0x34,0xbc,0x4b,0x2f,0xdc,0x0a,0xcd,0xc1,0x02,0x72,0x7d,0xa0,0x10,0xa7,0x32,0x68,0xe8,0xd5,0x23,0xe8,0xc9,0xbc,0x05,0x05,0x1e,0xac,0x55,0x45,0xfb,0x42,0x2f,0x0f,0x51,0x8d,0x31,0xb1,0xbc,0x10,0xa1,0x03,0xc3,0x6f,0x35,0x08,0xa5,0x2f,0x91,0x4e,0x43,0x6b,0x62,0x3b,0x00,0x4c,0xd0,0xb8,0x33,0xbc +.byte 0xca,0x57,0xb8,0x1b,0xb4,0x52,0x1a,0xa7,0x03,0x78,0xa0,0x4f,0xda,0x86,0xb9,0xd8,0xc6,0x69,0xe6,0x61,0x2e,0x62,0x96,0x60,0x0d,0x76,0xdc,0x5d,0x0e,0xa8,0xf3,0x86,0xde,0xcf,0x39,0x34,0xc7,0x69,0xed,0xcb,0x9a,0xf5,0xc3,0xce,0x6d,0xa5,0x7f,0xae,0x73,0xb9,0xa6,0xbf,0x88,0x93,0x2b,0x0e,0x8b,0x4b,0xa5,0xeb,0x62,0xc6,0x1a,0xc7 +.byte 0x63,0x63,0x58,0x62,0x37,0xc6,0xbc,0x00,0x72,0xac,0x3d,0x7c,0x22,0xa5,0x59,0xf1,0x6e,0x60,0x45,0x3e,0x99,0x76,0x40,0x82,0xa7,0x52,0xf3,0x48,0x8e,0x4a,0xa3,0xe1,0x3b,0xea,0x77,0xa7,0x7d,0x13,0xe7,0xc4,0xc6,0xa6,0x6e,0xda,0xe8,0x50,0xc8,0x39,0x30,0xab,0x8a,0xe1,0x08,0xa9,0xe3,0xbd,0x8d,0xbd,0x83,0x3c,0xbc,0x6c,0x92,0xed +.byte 0xf1,0xa9,0xd3,0x50,0xf2,0x29,0x8b,0x39,0x46,0xaf,0x08,0x7e,0x00,0x64,0x2f,0xa8,0x18,0xab,0x7e,0x07,0xd3,0x63,0x2a,0xd3,0xd3,0xbb,0xf9,0xdd,0x2b,0xec,0x70,0x35,0x1a,0x94,0x6b,0x87,0xe4,0x1a,0x0a,0x44,0x46,0x08,0xa6,0xce,0x1b,0xf7,0xd7,0x20,0x87,0x1a,0x96,0x6c,0xbe,0xdf,0x73,0x3b,0xc9,0xaf,0x89,0x1c,0x2f,0x47,0xe9,0xd8 +.byte 0x03,0xa6,0x03,0x6c,0x73,0xa9,0x65,0x20,0x36,0xea,0x6f,0xe7,0x96,0x7c,0x01,0x87,0xb0,0x21,0xba,0xb4,0xed,0x1f,0x81,0x65,0x97,0x36,0xda,0x68,0x80,0x64,0x99,0xe6,0xda,0x95,0x04,0xdf,0x5d,0xfd,0x86,0xd1,0xfd,0xfa,0x1c,0xd7,0x89,0xbf,0xe6,0x99,0x6c,0xf5,0x01,0x56,0x20,0x88,0x79,0xa7,0x8d,0x88,0x82,0xe5,0x32,0x38,0xe0,0xf0 +.byte 0x98,0x63,0xa9,0xab,0xeb,0x09,0x8d,0xaf,0x3f,0xa8,0x57,0x98,0xde,0xc8,0x9c,0x8d,0x1d,0x18,0xc5,0xa8,0x82,0x51,0x9b,0x6f,0xc6,0xb8,0x09,0xd3,0xea,0xd4,0xe3,0xac,0xd1,0x0e,0x88,0xda,0xdf,0x38,0x53,0x14,0x87,0x28,0x6f,0x13,0x35,0xdb,0xfe,0xa1,0xe7,0x43,0xb5,0x02,0x46,0x08,0x1a,0x31,0x0d,0x9e,0x3d,0x3b,0xbf,0xbb,0x82,0x9c +.byte 0x09,0xf3,0xd9,0x22,0x0a,0x82,0x07,0xd3,0xe8,0x19,0x6e,0x21,0xd2,0xa2,0xa8,0x14,0xbc,0x42,0xb6,0xeb,0x8c,0x40,0x9b,0xb2,0xa9,0x17,0xad,0x2c,0x19,0xaa,0x4b,0x22,0xf9,0x4e,0xde,0x8f,0xbe,0x78,0x9b,0xab,0xb9,0xfa,0xb1,0x3e,0x68,0x86,0x1a,0x4a,0x61,0xba,0x63,0x51,0x25,0x11,0x59,0xd0,0xb7,0x0c,0xb7,0xcc,0x45,0x05,0x6d,0x5a +.byte 0xe2,0xd7,0x10,0x80,0x19,0xd3,0xa9,0xab,0xb6,0x9f,0x53,0x7a,0xaa,0x19,0x74,0x01,0xc9,0xd6,0x45,0x42,0x2c,0xe5,0xc0,0xcf,0x62,0xe6,0x95,0x6f,0x4c,0x90,0x50,0x97,0x61,0x83,0x73,0xd0,0xc2,0xd5,0xf0,0x05,0xca,0xe9,0x6f,0x67,0xa9,0x51,0xb8,0xb4,0x9d,0x30,0x8e,0xe3,0x29,0xf9,0x3b,0x3d,0x17,0x25,0xad,0xbb,0xb0,0x34,0x68,0x29 +.byte 0x06,0xad,0x0e,0xdf,0x41,0xa6,0xf1,0xa6,0x25,0xc4,0xf0,0x0d,0x57,0x84,0x34,0x2c,0x3b,0xb1,0x41,0xd6,0x83,0x00,0x3a,0x91,0x98,0x8e,0xd0,0x59,0x0b,0x2d,0xc9,0x65,0x03,0x91,0xcb,0x03,0x97,0x57,0xde,0x11,0x8b,0x4b,0x1b,0x85,0x0b,0xb6,0x68,0x25,0x3c,0x1a,0x04,0x7d,0xd5,0x2b,0x16,0x69,0x1f,0x64,0x8b,0x47,0x60,0x17,0xaa,0x68 +.byte 0x45,0xf2,0x0b,0xf8,0xa2,0x27,0xf8,0x47,0x86,0x41,0x94,0x3f,0x92,0xc3,0x02,0xab,0x80,0x2b,0x0e,0x3c,0xd0,0x13,0x59,0x08,0xfc,0x13,0x33,0x52,0xbb,0x2d,0x6b,0x22,0xa2,0x8b,0x9f,0x7c,0x8e,0x40,0x35,0xa4,0xc7,0x45,0xb7,0xf8,0x10,0x22,0x95,0xc5,0x48,0xc1,0x50,0x4d,0x4a,0x36,0xe1,0xec,0x1e,0x07,0xf7,0x68,0x63,0xcb,0x13,0x03 +.byte 0x70,0x63,0xb1,0x9b,0xf3,0x60,0x01,0x6e,0x63,0x5c,0x4d,0x2c,0x5c,0x5c,0x58,0x8b,0xbb,0x6e,0xd1,0x69,0xdd,0x19,0xfe,0xfb,0xd6,0xdc,0x68,0x97,0x9c,0x46,0x0d,0xdd,0x4d,0xbd,0x52,0xe4,0xd9,0xc2,0x03,0x4e,0x4c,0xe2,0x66,0x6b,0x4d,0xbe,0x6b,0xf3,0xd6,0xbe,0x2d,0xba,0xdd,0x1b,0x4f,0x60,0x02,0x74,0xa1,0xf0,0xd0,0xfa,0x23,0x33 +.byte 0x29,0x7e,0x00,0x09,0x47,0x15,0xa8,0xd8,0xdb,0xb8,0xe1,0x20,0xd5,0xe2,0x91,0xd0,0xe8,0xfa,0xa1,0x0d,0x80,0xbd,0x7d,0x62,0x9d,0xf2,0xbc,0x03,0xa1,0x44,0x9f,0x8d,0x3d,0xe3,0xb4,0xec,0x32,0xd9,0x66,0xb0,0xc7,0x75,0x11,0xaa,0xab,0xb7,0x84,0x1d,0x5b,0x4f,0x25,0x5c,0x53,0xed,0xbb,0x6d,0x06,0x1f,0x12,0x5f,0xc0,0xeb,0x55,0x3e +.byte 0xd0,0x5b,0x4d,0x07,0xf7,0x84,0x12,0xbc,0xc8,0xd4,0xf4,0x69,0xdb,0x71,0x8a,0x00,0x58,0xf5,0x84,0xff,0xc3,0xbc,0x13,0x6e,0x5f,0xac,0xd6,0x72,0x1b,0x2d,0xbb,0x27,0xfd,0x8d,0xcc,0x59,0x79,0xb9,0x63,0xe8,0x0a,0xf3,0x7f,0xa4,0x9f,0x4c,0x35,0x9a,0xdc,0xff,0x11,0x42,0xf3,0x1c,0x86,0xd0,0x22,0x7e,0x81,0x79,0x04,0x93,0x5c,0xf2 +.byte 0xab,0xdf,0xb7,0x1d,0x84,0xbd,0xde,0xfb,0xd2,0x75,0x43,0xb8,0x19,0x63,0x97,0xfe,0x0e,0x91,0x9d,0x38,0x50,0xc5,0x7a,0xd6,0x51,0xd4,0xfc,0x8d,0xec,0xd5,0xe2,0x07,0xce,0x21,0x03,0x02,0xa1,0x61,0x8d,0xf1,0xf5,0x1f,0xb3,0xaf,0x9f,0x13,0xd8,0x81,0xd2,0xf7,0xe9,0xe2,0x62,0x49,0xca,0x1c,0x15,0x07,0x39,0xe6,0x01,0xec,0x6c,0x7d +.byte 0x3b,0xf1,0x52,0xda,0xf2,0x97,0x55,0xef,0x6f,0x88,0x82,0x0e,0xe6,0xf4,0x3e,0x33,0xf6,0x61,0x6d,0xef,0xbf,0xa8,0x9a,0x91,0x2f,0xb3,0xd2,0x3d,0xaa,0x7a,0x4e,0x80,0xe1,0x04,0xbe,0xc7,0xf8,0xc3,0xc9,0xd8,0xa2,0x01,0x5d,0x30,0xae,0x6d,0x39,0x52,0x60,0x9d,0x07,0xd5,0xa2,0x86,0xf0,0x88,0x00,0xec,0x18,0x11,0x2d,0x69,0x86,0xa9 +.byte 0x5a,0x73,0xda,0x4e,0x4c,0xdb,0xb8,0x02,0xad,0x53,0xec,0x20,0x0f,0x35,0xe0,0x4f,0x6e,0xd5,0x04,0xcc,0xa0,0xf5,0x8c,0x7d,0x31,0x04,0xa4,0xcf,0xf0,0x27,0xd2,0xb6,0x7d,0x8c,0x26,0x5f,0x19,0xba,0x79,0x80,0xec,0x6d,0xfe,0xaf,0xc1,0x3a,0xc2,0x3d,0x14,0x3c,0xa0,0xc5,0x77,0xf4,0x96,0x56,0x51,0x8b,0x7c,0x7e,0xe5,0x23,0x5d,0x46 +.byte 0x1b,0x2e,0x28,0xc0,0x80,0x6b,0x6a,0x85,0x6c,0xcf,0xaa,0x28,0xf3,0x83,0x2d,0x42,0x6f,0xf3,0x5e,0x5d,0xa2,0x7b,0xba,0x5c,0x12,0xb0,0xda,0xa0,0xeb,0xdf,0xad,0x1d,0x4c,0x54,0xcf,0xad,0x02,0x68,0xcd,0xfe,0x5c,0x5b,0x65,0x6d,0xa5,0xcc,0xd3,0xed,0x32,0x74,0x6c,0x58,0x83,0x3a,0xc1,0x71,0xbf,0xb5,0xa2,0xbd,0x10,0xe5,0x46,0xc5 +.byte 0x00,0x82,0xb1,0xeb,0x6f,0x73,0xf9,0x12,0x23,0xe4,0xda,0xff,0xa3,0xc4,0x9c,0xf1,0xcc,0x0e,0x1a,0x7a,0x10,0x62,0x8f,0xa5,0xb2,0x35,0x51,0x67,0xb5,0x95,0xbe,0x4c,0x81,0x53,0xfc,0xdd,0x27,0x26,0x97,0x42,0x01,0xec,0x08,0x91,0xb8,0xf0,0xaf,0x57,0x54,0x73,0x52,0x8f,0xde,0xca,0xed,0x1b,0xca,0x8d,0x97,0x1e,0xdc,0xe7,0xfa,0x68 +.byte 0xaf,0x37,0xb0,0x62,0xa3,0x9f,0xbc,0xac,0x9f,0x28,0x1e,0xb7,0xaa,0xb0,0x91,0xe4,0x95,0xad,0xf9,0xe5,0xd4,0xcc,0x23,0x0f,0x4a,0x2d,0xdd,0xea,0x64,0xd1,0x04,0x3c,0xd0,0xca,0xfe,0xd3,0x19,0x9d,0x28,0xa5,0x1c,0xff,0x3e,0xae,0xe9,0xfb,0x12,0x03,0x6d,0xcf,0xbc,0x5f,0x27,0xce,0x1a,0xb9,0xc0,0x31,0x88,0x6e,0x2e,0xaf,0x35,0x5f +.byte 0xf0,0xce,0x92,0xf8,0x6f,0xd6,0x67,0x1c,0xc6,0x5c,0xee,0x59,0xaa,0xd6,0x8c,0xa8,0x13,0xe6,0xf7,0xe2,0x82,0x2f,0x82,0x1e,0x4c,0x0d,0xab,0x3e,0xdb,0x4d,0xc5,0x90,0x32,0xe4,0xf0,0x74,0xc1,0x92,0x1b,0xdd,0xf3,0xa7,0xf6,0x6b,0x01,0x9d,0x8d,0x78,0x3d,0x5a,0x46,0x74,0x16,0x93,0x44,0xca,0xbe,0x31,0xea,0xb4,0x65,0xcd,0xe6,0xdd +.byte 0x56,0x9d,0x63,0x48,0xf0,0xf3,0x15,0x91,0x6c,0x27,0xf9,0xf7,0x3b,0x9f,0x04,0x6d,0x4d,0x1d,0xf1,0x7c,0xd1,0x81,0x06,0xef,0x04,0x47,0x98,0x5d,0x21,0xf4,0xe0,0xa0,0x13,0xaf,0x1d,0xb0,0xd5,0x45,0x64,0x92,0x46,0x99,0xff,0xb4,0xbf,0x36,0x01,0x2d,0x23,0x6a,0xc4,0x6b,0x3f,0x91,0x10,0x03,0xaf,0x6e,0x79,0x86,0xdb,0x15,0xde,0xfa +.byte 0x0d,0x71,0x04,0x16,0x12,0x31,0x9b,0x69,0xb9,0xe0,0xe7,0x4e,0xfd,0x0e,0xd5,0x71,0xa0,0xc7,0xd7,0x46,0xdb,0xda,0xbd,0xcd,0xdc,0x77,0xe5,0x71,0x9d,0xa1,0xf4,0x02,0x10,0xc6,0x27,0x76,0x4e,0xa6,0x35,0xe6,0x9e,0xda,0xbe,0xd8,0xc0,0x21,0x15,0xd4,0xcc,0xd5,0x4b,0xdf,0x38,0xc5,0x15,0x4b,0xfa,0x4e,0x83,0xf4,0x27,0xdb,0x8a,0xb1 +.byte 0x0e,0x1f,0xc9,0x3c,0x1c,0x36,0x35,0x54,0x8b,0x54,0xf8,0x31,0x1e,0x0e,0x1c,0x4e,0x44,0x29,0x90,0xad,0x28,0x85,0xb4,0x72,0x2d,0x1b,0x8b,0x26,0x2f,0xb6,0xc2,0x14,0x0e,0x81,0xd0,0x37,0x29,0x5c,0x0f,0xdc,0x21,0x62,0x10,0x7a,0xeb,0xa3,0x6e,0xd4,0x5b,0xb4,0x13,0x2e,0xd6,0x8f,0xd9,0x57,0x0d,0x9b,0xfd,0x1e,0x66,0xb7,0x6e,0xac +.byte 0x88,0xb9,0x75,0x60,0x62,0x83,0x72,0x96,0xc6,0x2e,0xdc,0xfe,0x88,0xee,0x07,0x9a,0x62,0x19,0xde,0xf1,0xa5,0xfb,0xcc,0xdb,0x4a,0xeb,0x16,0x60,0x34,0x46,0xfc,0xf2,0x6d,0xee,0xfc,0xa0,0x3a,0xb1,0x11,0x03,0x8b,0xae,0x26,0xef,0x86,0x91,0x20,0x7a,0x19,0x35,0xd6,0x12,0xfc,0x73,0x5a,0xb3,0x13,0xf8,0x65,0x04,0xec,0x35,0xee,0xf8 +.byte 0x70,0xb2,0x0b,0xe1,0xfc,0x16,0x35,0xec,0x6b,0xdd,0x8b,0xdc,0x0d,0xe8,0x91,0xcf,0x18,0xff,0x44,0x1d,0xd9,0x29,0xae,0x33,0x83,0xfe,0x8d,0xe6,0x70,0xbb,0x77,0x48,0xaa,0xe6,0xbc,0x51,0xa7,0x25,0x01,0xcf,0x88,0xc4,0x8b,0xfc,0xb1,0x71,0x01,0xc7,0xfc,0xd6,0x96,0x63,0xee,0x2d,0x04,0x1d,0x80,0x24,0xd0,0x80,0x03,0xd9,0x18,0x96 +.byte 0xec,0x6a,0x98,0xed,0x6e,0x9a,0xe0,0x42,0x5a,0x9d,0xec,0xed,0x46,0x3c,0xb5,0xf0,0xd6,0x88,0x92,0x89,0x38,0x5f,0xd6,0xba,0xfd,0x32,0x31,0x81,0xe9,0xf1,0x56,0x89,0xa3,0x56,0xa6,0x03,0x00,0x60,0xe1,0xa8,0x59,0xdb,0xbe,0x72,0x39,0x6c,0x08,0x4d,0x26,0x57,0xa6,0xf6,0x13,0x7d,0x4a,0x2f,0x64,0xb8,0xa7,0x23,0x2c,0xa4,0x4a,0xad +.byte 0xcf,0xa1,0xa2,0x32,0xbb,0xd1,0x98,0x02,0xe4,0x1a,0x41,0x26,0x23,0xba,0xa2,0x17,0x62,0xaa,0xa6,0xc7,0x74,0x9d,0xea,0xc7,0xa0,0x08,0x0a,0x1a,0x4e,0x71,0xd9,0x45,0xf7,0xe8,0x57,0x79,0x12,0xd0,0x38,0x2f,0xdb,0xbd,0x5a,0x84,0xe1,0xb2,0x62,0x7e,0x56,0xb3,0x50,0x2a,0xa0,0x32,0x1f,0x86,0x71,0xc4,0xa5,0xba,0x93,0x5b,0x22,0x97 +.byte 0xf4,0xe5,0x44,0x27,0x6b,0x06,0x84,0x55,0x19,0x45,0x12,0x75,0x4b,0xf0,0x76,0x6d,0x3c,0x0a,0x17,0xc2,0x9d,0x96,0x72,0xe7,0x5e,0x79,0x84,0x0a,0x39,0x64,0x09,0x6e,0x7e,0xd7,0x77,0x40,0x75,0x2c,0xbd,0x98,0xae,0x3e,0x34,0x08,0x4d,0xda,0x2c,0xcf,0x0c,0xa2,0x8c,0x40,0xfa,0x34,0x43,0x15,0xed,0x4f,0x69,0xa6,0xef,0x2d,0x3c,0x55 +.byte 0x7a,0xe1,0x67,0xd1,0x0a,0x89,0xe0,0x2d,0x02,0x35,0x57,0xc8,0x9a,0x4b,0xc4,0x46,0xa7,0x57,0x03,0x89,0x7d,0x3f,0x70,0x47,0x03,0x06,0xd9,0x81,0x1f,0x8d,0x7e,0x36,0x9b,0xfd,0xad,0x20,0x9d,0x5a,0x29,0xe9,0x40,0x6a,0xb8,0x07,0x6b,0xc7,0x2b,0x58,0xd2,0x1d,0xef,0x88,0xa5,0xfb,0x3b,0xd6,0x9f,0xfd,0x89,0x0e,0x50,0xd4,0xbc,0x89 +.byte 0x3f,0x3c,0x6c,0x50,0xc6,0xe3,0x8b,0x7e,0x34,0x8b,0x26,0x99,0x2a,0xfa,0xa5,0x19,0x53,0xb5,0x5e,0xfd,0x94,0xe8,0x33,0xb2,0x6d,0x9c,0x3c,0x0c,0x14,0x90,0xc4,0xa2,0x4a,0x3a,0xca,0x07,0x72,0x46,0x37,0xfc,0x02,0x5d,0xf4,0x97,0xca,0x8e,0xc6,0xc4,0x63,0xda,0x5c,0x89,0xc3,0x6c,0xb1,0x1a,0xf5,0x2a,0xbc,0x2e,0xe3,0xcd,0x2f,0xe2 +.byte 0x91,0x16,0xf9,0x94,0x0e,0x1b,0xe6,0x01,0x73,0x61,0x1e,0xcf,0x5e,0x21,0x70,0xcb,0x5b,0x87,0xc1,0x46,0x39,0x59,0xa6,0x74,0x82,0x7f,0xa2,0x6c,0x4a,0x50,0x5f,0xbd,0x1c,0x1a,0x65,0x80,0x01,0x44,0x19,0xcf,0xcd,0xef,0x3d,0x5e,0x1b,0x71,0x82,0x4f,0x8b,0xc1,0xa0,0x9a,0x77,0xee,0xac,0x06,0xdc,0x6a,0xa0,0x34,0x50,0xa4,0xe0,0xda +.byte 0x3d,0xa0,0xf7,0x9a,0xb8,0xd5,0x59,0xe0,0x7f,0x05,0x04,0xd5,0x32,0x8c,0x49,0xf5,0x0a,0x0e,0x99,0x83,0xf5,0x47,0x2b,0x7c,0x7b,0x65,0x25,0x02,0xc4,0x88,0xbb,0x6a,0x4f,0x89,0x31,0x60,0xc2,0x47,0x8b,0x22,0xfc,0x4a,0xde,0xb3,0xb9,0xed,0xb8,0xdf,0xd7,0xd5,0x09,0x98,0xcc,0x5f,0xaf,0xbb,0x02,0xc3,0x62,0x62,0xee,0x99,0x42,0x1b +.byte 0xbe,0x5b,0xa8,0x5c,0x40,0x03,0x86,0x29,0x29,0x06,0x0b,0x53,0x46,0x29,0x03,0x3b,0x11,0x64,0xf1,0x09,0xca,0x69,0x69,0xfa,0xcc,0x85,0x23,0x14,0x1b,0xfd,0x65,0xb9,0xf5,0x6b,0xbb,0x2a,0x9d,0x6e,0x64,0x1a,0xe1,0x37,0x39,0xd4,0x85,0x40,0xa3,0xf9,0x04,0xec,0x9e,0x3b,0x74,0x97,0xa4,0x64,0x8a,0x48,0xb2,0x62,0xc1,0x1c,0xed,0x67 +.byte 0x6f,0x23,0xae,0x0f,0x64,0x2e,0xe5,0x92,0xb6,0xb5,0x71,0x24,0xc0,0x60,0x9a,0x10,0x23,0x6b,0x4a,0x22,0xe9,0x0a,0xaa,0x09,0x62,0x39,0xe0,0x40,0xee,0x13,0x27,0x14,0x73,0xeb,0x75,0x7b,0x4a,0xe1,0x42,0x65,0x37,0xae,0x80,0x08,0x26,0xf9,0x53,0x98,0x58,0xdd,0xf5,0xed,0x26,0x37,0x37,0x85,0xb5,0x88,0x91,0x05,0x2d,0x04,0xa6,0xd5 +.byte 0xa6,0x98,0xb0,0x0e,0x4b,0x4c,0x53,0x76,0x79,0xad,0x82,0xc5,0x16,0xba,0xd8,0x20,0x5f,0x4c,0x1d,0x69,0xa0,0xe0,0xe9,0xbc,0xb8,0x5c,0x10,0x4a,0x0a,0xd3,0x52,0x9c,0x2e,0x1b,0x6c,0xf7,0x43,0x83,0x6f,0xa9,0xcc,0x00,0xed,0x16,0x4c,0xc3,0x24,0x79,0x59,0x68,0xfb,0xf9,0xf6,0xb0,0xb4,0x01,0xc2,0xdd,0xf7,0xe5,0x3b,0x60,0x48,0x49 +.byte 0x32,0x48,0x05,0xa8,0x62,0xa3,0x03,0x9f,0x3d,0x91,0xdb,0x84,0x64,0x6f,0x1e,0x50,0x8e,0xdf,0x1a,0xa0,0xb1,0xf4,0x34,0x7c,0xe6,0xb7,0x7c,0x14,0xa1,0x65,0x1a,0xb4,0xdb,0x67,0x78,0xb1,0x88,0x3c,0xc2,0x5e,0x0e,0xea,0x32,0x15,0xc7,0xda,0xe4,0x9a,0x44,0xde,0x61,0x90,0x3b,0x97,0x11,0x5b,0x6d,0xa5,0x9a,0x2f,0x1b,0x8b,0xd7,0xdd +.byte 0x73,0xe4,0xc3,0x19,0x5d,0x68,0xcf,0x0e,0xe4,0x69,0xa5,0xeb,0x50,0x6f,0x79,0xff,0x91,0xc6,0x95,0x83,0xe8,0x72,0x6a,0x01,0x49,0x2b,0xcf,0x8f,0x93,0x1e,0xef,0x31,0x17,0x8f,0xa8,0x2b,0x5f,0x4b,0x79,0x8b,0xe5,0x6c,0xb7,0x61,0xd5,0x9e,0xe0,0xd4,0x25,0xc3,0x93,0x31,0x8f,0x66,0x6c,0x48,0x30,0x65,0xf4,0xd7,0xde,0x64,0xee,0xbd +.byte 0xbd,0xad,0x32,0xfc,0xf3,0xd8,0x7c,0x85,0x7c,0x24,0x40,0xb6,0xd4,0xe0,0x4b,0xc0,0xab,0xcc,0xeb,0x77,0x7c,0xb7,0x33,0x3c,0x90,0x04,0xaf,0x85,0xaa,0xb4,0xaa,0x90,0x67,0x29,0xd9,0x85,0x6a,0x34,0xf4,0xc4,0x6c,0xbc,0xb4,0x86,0x54,0x83,0xd5,0x5e,0xf3,0xdd,0x1a,0x56,0x5e,0xa5,0xd8,0x06,0xc0,0xa7,0x27,0xd4,0x0d,0x5b,0x08,0xf4 +.byte 0xb4,0x15,0xf9,0xb4,0x56,0x1c,0x80,0x98,0xc9,0xcd,0xf0,0x38,0x18,0xbe,0x99,0xec,0x7e,0x0c,0x3d,0xc1,0x98,0x26,0x9d,0x50,0xe4,0x00,0xcf,0x0f,0x0b,0x77,0x86,0x31,0x55,0x38,0xa4,0x31,0x50,0x51,0x64,0x88,0x81,0x05,0x32,0x99,0x38,0xd1,0x62,0x20,0x8e,0xf0,0x29,0x31,0xf5,0x79,0xbb,0x1e,0x0f,0xba,0x51,0x94,0xa9,0x54,0xcd,0x43 +.byte 0xce,0xe5,0x2c,0x29,0xa5,0x51,0x23,0x97,0x5d,0x36,0xff,0x51,0x5c,0x66,0xb7,0x62,0x1b,0x5f,0xd7,0x2f,0x19,0x07,0xff,0x0a,0xfc,0xf6,0x6e,0xb5,0xfd,0xa9,0x92,0x40,0xd3,0xe6,0x99,0x15,0x6f,0x1e,0x91,0xad,0x1f,0x4d,0x1c,0xe2,0xd9,0xcf,0x01,0x71,0xec,0x1a,0xa3,0xba,0x48,0x40,0xfd,0x18,0xb1,0x24,0x2b,0xd2,0x37,0xb5,0x74,0xdd +.byte 0x7e,0xf6,0x18,0xb4,0x7b,0x0e,0x7d,0x65,0x46,0x7b,0xe3,0x51,0x03,0xae,0xe1,0xd0,0x74,0xc6,0xc9,0xda,0x0e,0x79,0x6f,0xf5,0x62,0xc0,0x7e,0x76,0x3e,0x13,0x8b,0xe0,0x4c,0xfa,0x7e,0xe1,0xa2,0xee,0x9d,0x3f,0x91,0x9d,0x21,0xdd,0xc2,0xd0,0xa5,0x1d,0x17,0xd6,0xdc,0xeb,0xa3,0xc0,0x71,0xa0,0xfe,0xf0,0xaf,0x31,0xdc,0xa3,0xd4,0x21 +.byte 0x4a,0x32,0x1d,0x54,0x25,0x3b,0xc8,0x8f,0x68,0xcd,0x99,0xce,0x76,0x39,0x42,0xd8,0xca,0xf2,0x46,0x72,0xfe,0x52,0xc2,0x90,0x83,0xed,0xa0,0x6d,0x1b,0xf5,0xb1,0x09,0xae,0x2b,0x34,0x4f,0xd3,0x78,0x19,0x7f,0xad,0x8d,0x50,0x26,0x9c,0x36,0xa3,0xb5,0x3d,0x0b,0xa6,0x87,0x65,0xa0,0xdb,0x88,0x20,0xff,0xb6,0xfd,0xc5,0xbd,0x0a,0x28 +.byte 0xc8,0x9c,0x42,0x7f,0x24,0x58,0xe9,0x07,0x53,0x4b,0x9a,0x2a,0x1e,0x7b,0x90,0x97,0x78,0x74,0x80,0x5d,0xe5,0x6e,0xae,0x15,0x68,0xd4,0x2a,0x3a,0xd3,0x00,0x4f,0x4b,0xff,0x8f,0x1e,0x8f,0x9f,0x75,0xe5,0xea,0x9d,0xb9,0xed,0x8f,0xa9,0x2b,0x70,0xa8,0xcb,0x08,0x85,0xd3,0x8f,0x5d,0xc7,0x49,0x66,0xcc,0xa8,0x6d,0xbd,0x01,0x93,0xd5 +.byte 0xe6,0x75,0x2e,0x25,0x07,0x59,0x86,0x3f,0x44,0x8b,0x0b,0xb5,0x38,0xd5,0xbd,0xcf,0x48,0x8a,0xf7,0x71,0xd6,0x6b,0x2e,0x93,0x3d,0x0b,0xc0,0x75,0xee,0xa8,0x5d,0x9c,0x3d,0xa5,0xdb,0xc5,0x8d,0xac,0xda,0xf4,0xcd,0x5f,0x24,0xfe,0x86,0x14,0x44,0x65,0x3f,0x89,0x7f,0xd3,0x61,0x48,0xb0,0x43,0xf0,0x1e,0xde,0xbc,0xb7,0x51,0x0f,0xfc +.byte 0x32,0xf2,0x04,0xe2,0x4b,0xcb,0xbb,0x63,0x7d,0x5b,0x9a,0xb1,0x91,0x57,0x89,0xdc,0xed,0xde,0x91,0x2d,0xdd,0x42,0xc8,0x3c,0xb0,0xd7,0xa5,0xbc,0xa7,0x33,0x14,0x32,0xaf,0xf7,0xe9,0x25,0xd2,0x1a,0x64,0xf7,0x1b,0xab,0x0e,0xbc,0x50,0xbc,0x85,0x44,0xe0,0xa6,0xf1,0x4a,0x32,0x2f,0x30,0x27,0x48,0x4f,0xfc,0x8a,0x5a,0x78,0xe7,0x16 +.byte 0x55,0xcf,0xca,0x15,0xa8,0xa8,0xa2,0xef,0x9a,0x16,0x02,0xf4,0xb0,0x44,0xfd,0xc4,0x51,0x01,0x4f,0x1d,0x9d,0x09,0x62,0x42,0xe9,0x8b,0x18,0xa4,0x65,0xef,0x8b,0xfe,0x71,0x9f,0x4b,0x47,0x48,0x41,0x73,0x5c,0x0c,0x52,0x7d,0x79,0xbc,0x93,0x2a,0xaa,0x81,0x99,0x21,0xa5,0x9e,0xac,0xcd,0x57,0x51,0x50,0xbc,0xc9,0x96,0xaf,0xdf,0x1a +.byte 0x8f,0xee,0x36,0x05,0x20,0x32,0xe8,0x51,0x94,0x72,0x12,0xa3,0x17,0x25,0x7f,0x0a,0x3e,0xcc,0x22,0xcf,0x05,0xb2,0x2b,0xaa,0x36,0x01,0xdf,0xd4,0x4e,0xe1,0x02,0x43,0x4e,0xac,0x50,0x64,0xcd,0x2f,0xc2,0xa9,0xb0,0xf2,0xf2,0x4c,0xdf,0x16,0xa6,0x54,0xf7,0xbf,0x1a,0x69,0xeb,0xa1,0x5a,0xc7,0xcf,0x46,0x2d,0xc2,0x3a,0x7f,0x4a,0x14 +.byte 0x22,0x15,0x46,0x46,0x2d,0xc1,0x98,0xf7,0x0b,0xf3,0x27,0xfc,0x78,0x67,0x05,0xd8,0xe0,0xf6,0xb8,0xb6,0x0b,0xdb,0x4d,0x6b,0x7e,0x9b,0xbf,0x5c,0x15,0x97,0x49,0x9f,0x6f,0x11,0x6c,0x6e,0x1d,0x1e,0x65,0x5b,0xb9,0x60,0x8f,0xa3,0xa9,0x99,0x17,0x92,0xb8,0x65,0x25,0xc4,0xef,0xea,0xa6,0xc0,0x57,0xa9,0x4c,0x78,0xe3,0xd6,0xf2,0x19 +.byte 0x9c,0x86,0x9e,0x45,0x3e,0xfd,0x21,0x4c,0x2a,0x56,0x7c,0x23,0xf2,0x22,0xa1,0x81,0xdb,0xe6,0xfa,0x85,0x19,0x3b,0x1d,0x61,0xb3,0x21,0xb5,0x64,0x1d,0x07,0x66,0xd2,0xe5,0x9c,0xb0,0x76,0x9d,0xc9,0x02,0x6a,0x8d,0xd5,0x84,0xd5,0xa7,0x7c,0x70,0x64,0x46,0xd6,0xff,0xc7,0x9f,0x2f,0xed,0xc1,0x5a,0xcb,0x56,0x12,0x31,0x9d,0xff,0x66 +.byte 0x9a,0xf8,0x50,0xc6,0x54,0xfd,0x8d,0x49,0x32,0x8c,0xdd,0x8c,0xbe,0x30,0x79,0xaf,0x1a,0xd5,0x28,0x1d,0x03,0x87,0x12,0x60,0x7a,0xcc,0xe6,0xe8,0x4e,0x21,0x5d,0xa3,0x06,0xfb,0xdf,0xf6,0x31,0xd6,0x10,0x3e,0xec,0x23,0x69,0xc7,0x7b,0xf6,0x78,0xa6,0xd1,0x8a,0x48,0xd9,0xdc,0x35,0x1f,0xd4,0xd5,0xf2,0xe1,0xa2,0x13,0x8a,0xec,0x12 +.byte 0xa7,0xf1,0x5d,0xb2,0xc3,0x6b,0x72,0xd4,0xea,0x4f,0x21,0xff,0x68,0x51,0x51,0xd9,0xd7,0x2f,0x28,0xd7,0xdf,0xbc,0x35,0x4f,0x49,0x7e,0xe7,0x21,0x82,0xd7,0x0c,0x7c,0xf4,0x86,0x86,0x62,0xcd,0xf5,0x23,0x77,0xc1,0x14,0x8a,0xc4,0x2a,0x82,0x74,0x0e,0x90,0x93,0xd5,0x5a,0xc0,0x57,0x93,0x1a,0xe1,0x1c,0x13,0x17,0x72,0xc3,0xa6,0x54 +.byte 0xc4,0xe2,0xfc,0xd3,0xa0,0xce,0x08,0x87,0x9e,0x2a,0xaf,0xa7,0xbb,0x2d,0xaf,0xc0,0x38,0x97,0xc8,0x6d,0xb8,0x7b,0x75,0xc5,0xf2,0x79,0x62,0xdc,0x7c,0xa9,0xfd,0x19,0xa2,0xb1,0xee,0xdf,0x90,0x18,0x5a,0xdb,0x3c,0xba,0x0d,0x84,0xd6,0xaf,0x15,0xee,0xb6,0xa5,0x78,0x38,0x87,0xdf,0x42,0xd6,0xd1,0xa2,0xe9,0xe0,0xa6,0xf2,0x4e,0xa4 +.byte 0xed,0xa5,0xf6,0x66,0x7f,0x99,0xbc,0xfb,0x4b,0x37,0xca,0x5a,0xb3,0x29,0x8e,0x80,0x30,0x8b,0x74,0x7b,0xac,0x61,0xfb,0xca,0x62,0xfe,0x24,0xc4,0x6e,0xac,0x66,0x97,0xaa,0x9a,0x99,0xe6,0xa8,0xa4,0xd8,0x62,0x58,0x7c,0xd1,0xeb,0xee,0xc8,0x08,0xa0,0x54,0xde,0xb1,0xef,0x57,0x2c,0xb6,0x2c,0x78,0x22,0x10,0xbb,0xfe,0x4b,0x77,0xa5 +.byte 0x5a,0xed,0xbb,0xf8,0x97,0x96,0x20,0xa9,0x8c,0x78,0xb5,0xb9,0x55,0xc9,0xaf,0xb9,0xa1,0x1f,0x13,0x52,0xf9,0xbb,0xaa,0x98,0x01,0x57,0xa6,0x88,0xaa,0x5c,0xf0,0x62,0x5b,0x3e,0xe1,0x5f,0xf4,0x98,0x95,0x8b,0x8f,0x48,0xd6,0xd5,0x8b,0xc2,0x1d,0x45,0x7d,0xe2,0x03,0x66,0x84,0xfc,0xbd,0x8e,0x95,0x9f,0x58,0x99,0x7b,0x4c,0xb6,0xe5 +.byte 0xe2,0xf9,0x2e,0x92,0x58,0xca,0xa9,0x24,0x9c,0x7c,0x46,0xdf,0xea,0xb4,0x6e,0x0e,0xa5,0x9c,0x14,0xbf,0x25,0x5b,0x39,0x4a,0xaf,0x31,0xaa,0xd1,0x2c,0xe6,0x06,0x3d,0xc4,0x60,0xc7,0xcd,0x49,0x8d,0xe1,0x50,0x55,0xe4,0x72,0x68,0xed,0x43,0xb8,0x85,0xa3,0xc3,0xf1,0xf5,0xd1,0xcf,0xcb,0x57,0xac,0x04,0x16,0x22,0xe4,0xfc,0x4a,0x13 +.byte 0x60,0x3f,0x09,0xa4,0xf2,0x9b,0x34,0xeb,0x0c,0x10,0x57,0xc3,0x3f,0x15,0xb5,0x1b,0x6a,0xb3,0x7d,0x37,0x02,0x4c,0x0f,0x6f,0x8b,0x4d,0x5d,0x57,0x7d,0xbf,0x00,0x8a,0x74,0xb4,0x4c,0x5f,0x90,0x27,0x76,0x09,0x8c,0x18,0x3f,0x26,0x3a,0x09,0x06,0xdd,0x8b,0xff,0x0e,0xa4,0xae,0xef,0x0c,0x81,0xf2,0xf3,0x1f,0xe0,0x33,0x33,0x37,0xc6 +.byte 0xc3,0xfb,0x14,0xdd,0xa1,0x16,0x84,0x80,0xcb,0x37,0xe7,0x97,0x6d,0x21,0xa7,0x71,0x19,0x2b,0x2d,0x30,0xf5,0x89,0x2d,0x23,0x98,0xfc,0x60,0x64,0x4a,0x26,0x65,0x4a,0xef,0x12,0x59,0xa3,0x8c,0xd9,0xbd,0xdc,0xb7,0x67,0xc9,0x8d,0x51,0x72,0x56,0x6a,0xe5,0x59,0xa2,0x53,0x4f,0xb6,0x53,0xff,0xb0,0xd4,0x06,0x7f,0x79,0x23,0xf9,0xcb +.byte 0xbf,0x9a,0x93,0xde,0x88,0x33,0x58,0x70,0xa7,0xcc,0x07,0xb1,0x44,0xb9,0x99,0x1f,0x0d,0xb9,0xc9,0x18,0xdc,0x3e,0x50,0x22,0xfb,0x4e,0x86,0x0d,0xc0,0xe7,0x7f,0xc6,0xa1,0x52,0x0d,0x8d,0x37,0xe6,0xaf,0xe3,0x13,0xbe,0xa6,0xf9,0x59,0x39,0x0f,0x17,0x66,0xce,0xb1,0x7d,0x7f,0x19,0x1a,0xf8,0x30,0x3a,0xa5,0x72,0x33,0xa4,0x03,0xb6 +.byte 0xb6,0x9b,0xde,0x7a,0x7a,0x62,0x3d,0x85,0x98,0x8e,0x5d,0x8a,0xca,0x03,0xc8,0x2c,0xae,0xf0,0xf7,0x43,0x3f,0x53,0xb2,0xbb,0x1d,0xd0,0xd4,0xa7,0xa9,0x48,0xfa,0x46,0x5e,0x44,0x35,0x50,0x55,0xdc,0xd5,0x30,0xf9,0x94,0xe6,0x5f,0x4a,0x72,0xc2,0x77,0x59,0x68,0x93,0x49,0xb8,0xba,0xb4,0x67,0xd8,0x27,0xda,0x6a,0x97,0x8b,0x37,0x7e +.byte 0xe9,0x59,0x89,0xc7,0x5e,0xd9,0x32,0xe2,0xaa,0xd1,0xe9,0x2b,0x23,0xca,0x9d,0x89,0x7a,0xf5,0xe4,0xfb,0x29,0xcc,0x88,0xfb,0x82,0x0f,0xbf,0x47,0x54,0xca,0x2b,0x4b,0xd8,0x47,0x7f,0x65,0x38,0x5a,0xb3,0xe8,0x0b,0xd7,0xe1,0x8b,0x89,0x57,0x32,0xdb,0xa3,0x85,0xba,0xf9,0xbc,0x52,0x92,0x20,0x10,0x66,0x54,0x81,0xe1,0x49,0x3f,0xe1 +.byte 0x8c,0x2e,0x0b,0x3b,0xe7,0x49,0xb4,0x60,0x5a,0x20,0x33,0xc4,0x4e,0x81,0xef,0x96,0xda,0x73,0x90,0x2b,0xb4,0x86,0xa1,0x5c,0xcd,0xa0,0xc7,0xf3,0x06,0x0d,0x2a,0x5a,0x41,0x96,0xf5,0x40,0x1b,0x0a,0x3a,0xb7,0x38,0xe1,0xbb,0xe3,0x42,0xf9,0x52,0xe5,0x98,0xe2,0x17,0xd4,0xb0,0x09,0x73,0x75,0xc1,0x00,0x18,0x0f,0xa7,0x0b,0x58,0xc1 +.byte 0x78,0x5c,0x0c,0x05,0xd8,0xfb,0xc5,0xfd,0x5c,0x66,0xbe,0x54,0x68,0xd1,0x16,0x54,0xfb,0xc5,0x97,0xd7,0x03,0x82,0x47,0xbb,0x47,0xea,0x9e,0x8b,0x90,0x07,0xb2,0xd2,0x06,0x14,0x79,0xeb,0xb6,0xe1,0x10,0x55,0xa9,0x13,0xea,0x65,0x7a,0xd0,0xe5,0x66,0x5d,0xe7,0x7b,0x10,0x5f,0x7c,0x25,0x7d,0x4e,0x77,0xb3,0x19,0x02,0xb1,0x45,0x1c +.byte 0x1a,0x51,0x24,0x72,0xd4,0xaa,0x03,0x0c,0x37,0x2a,0x78,0x81,0x05,0xca,0x73,0xb9,0xb5,0xd8,0xf5,0x25,0x2b,0x30,0x59,0x00,0x66,0xbd,0x6c,0x38,0xa2,0xc3,0xfb,0x43,0x85,0x6d,0xab,0xca,0xd8,0x73,0xa8,0x76,0xda,0x6e,0x00,0x19,0xd0,0xb9,0x1e,0x9b,0x33,0xe4,0x57,0x68,0xf4,0xb8,0x35,0x44,0xe6,0x74,0xd2,0x33,0x64,0xa1,0x41,0xa6 +.byte 0x5a,0xf6,0x8e,0x29,0xb5,0xa6,0x21,0x8e,0xc4,0x0c,0x0c,0x16,0x81,0x08,0xef,0x0a,0x41,0x08,0x34,0xc7,0xe1,0xd8,0xa8,0x68,0xb1,0xf3,0x9a,0x7a,0xaa,0x90,0xc0,0x77,0x32,0x70,0x50,0x5c,0x92,0xfc,0x38,0x31,0xaf,0x3e,0xd8,0xd8,0x4b,0x90,0x99,0xc4,0x17,0xde,0xa6,0xb5,0x29,0xc0,0x82,0x45,0x20,0x08,0x0c,0x4f,0x76,0x36,0x56,0x7e +.byte 0x07,0x17,0x42,0x78,0xa1,0x2d,0x62,0x48,0x81,0x57,0xc4,0xcf,0xf4,0x89,0x34,0x78,0x10,0xe6,0x98,0x78,0xb0,0x69,0x15,0x06,0xdb,0x2b,0xbb,0x8b,0xa5,0x72,0x50,0x24,0xae,0x6b,0x33,0x49,0x7b,0x9d,0x69,0x74,0xc8,0x7c,0xca,0x7a,0x31,0x39,0x0d,0x72,0x78,0xc1,0x6b,0x97,0x50,0x97,0xea,0x90,0xab,0xe7,0xdf,0x29,0x2e,0xf7,0x6e,0x49 +.byte 0x95,0xab,0xbd,0xea,0x1f,0xd4,0x93,0x4d,0x30,0x6b,0x6d,0xb0,0x86,0x38,0x2c,0xc8,0x77,0x2c,0xb5,0xb5,0x5c,0xd9,0xbb,0xe9,0x7d,0xb2,0xb7,0x6b,0xd1,0x1c,0xd3,0xd0,0x66,0x51,0x63,0x8c,0xf3,0x13,0xad,0xcf,0xeb,0x82,0x12,0x1a,0x6d,0xf5,0x75,0x66,0xa2,0x55,0x30,0x64,0x1d,0x68,0x46,0x50,0x5a,0x93,0xf1,0xc2,0x13,0x68,0x95,0x55 +.byte 0x51,0xe0,0x56,0x3a,0x96,0x86,0x8e,0xfb,0x5f,0x3b,0x1f,0x49,0x9c,0x3d,0xe5,0xf2,0x8c,0x3f,0xd6,0x6d,0x17,0xc7,0x18,0x59,0x1a,0x8a,0x72,0xa8,0xb3,0x39,0xda,0xc4,0xfa,0xc5,0xca,0xdf,0x48,0x48,0xd1,0xd2,0xba,0x14,0x5d,0x28,0x3b,0x4c,0xb3,0xcb,0x8d,0x1b,0x91,0x46,0x6b,0x2d,0x21,0x21,0x99,0x98,0x6d,0xcc,0x6b,0x8e,0x91,0x1d +.byte 0x42,0xc2,0x72,0x1a,0xc6,0xd2,0xaf,0xed,0x10,0xff,0x1e,0xa5,0xae,0x16,0xc0,0x05,0xdf,0x37,0xe2,0x1e,0x2e,0x15,0x21,0x0c,0x33,0x6f,0xfd,0xed,0x3f,0x7e,0xd7,0x69,0xfb,0x76,0x79,0x65,0xe9,0xd9,0x8d,0xf6,0xc0,0x6c,0xf7,0x15,0x7f,0x04,0xd7,0x71,0xcc,0xaa,0x85,0x73,0x23,0xf1,0xc8,0x62,0xd0,0x8e,0x01,0x35,0xff,0x4f,0x4f,0x13 +.byte 0xe6,0x28,0xf1,0xc1,0x7a,0x04,0xc0,0x7b,0x75,0xac,0x1c,0x55,0xb4,0x7c,0x00,0xb9,0xe0,0x14,0x67,0xb6,0xc5,0x69,0x62,0x0b,0xe6,0xb5,0x46,0x86,0x6f,0x09,0xdf,0x84,0x2c,0xa8,0x30,0x89,0x5b,0x24,0x47,0xfa,0x43,0x24,0xd5,0x07,0xf7,0xba,0xab,0x1b,0xfd,0x60,0xad,0x89,0x5f,0x60,0x87,0x78,0x48,0xbb,0xc0,0x63,0xf4,0x27,0x86,0x33 +.byte 0xf4,0x49,0x64,0x4c,0x5c,0x94,0x9a,0xb8,0x0f,0x45,0xe2,0x92,0x7d,0x9a,0x86,0xdb,0xb7,0x05,0xe8,0xd7,0x64,0x44,0xfa,0x74,0x60,0x72,0x89,0x13,0x8f,0x2e,0x96,0x33,0xa9,0x12,0x4a,0x62,0x6b,0xc3,0xcb,0x55,0xd3,0xef,0x17,0x11,0x82,0x4a,0x51,0x77,0xbf,0x63,0xa0,0x21,0xfc,0xbc,0x0c,0x6f,0x9a,0xfd,0xde,0xbe,0x9f,0x2e,0x50,0xd5 +.byte 0x32,0xa4,0xf0,0x1b,0xed,0xfa,0xbf,0xcd,0xc9,0xd8,0xf8,0x06,0xf2,0x17,0x8a,0x92,0x18,0xb8,0xc3,0xe5,0xbf,0xc2,0xf4,0x77,0xb9,0x71,0xfb,0x60,0x6e,0xe7,0xad,0xe4,0x7d,0xd4,0x59,0xa9,0xbd,0x21,0xd5,0x03,0x69,0xb5,0xf1,0xce,0xb5,0x88,0xd9,0x1d,0xc7,0xb3,0x14,0xa6,0xb1,0x30,0x8d,0xaa,0xcd,0xe5,0x50,0xc5,0x0d,0x4b,0x6d,0xde +.byte 0x17,0x4d,0xd2,0x93,0xf3,0xc2,0x8d,0x59,0xf1,0xd0,0x2f,0xb5,0x62,0x18,0x81,0x07,0xb3,0xfb,0x08,0xb3,0xa8,0x15,0xe0,0x9a,0x4c,0xa5,0x24,0xcd,0x47,0x69,0xf9,0xf7,0xda,0xa9,0xff,0xe1,0xe2,0x43,0xe3,0x69,0xf1,0x26,0xac,0xc6,0x42,0xf2,0x32,0x42,0xfb,0x7c,0xa2,0x94,0xc6,0xaa,0xd9,0x05,0x29,0xc6,0x3d,0x45,0x44,0x1d,0x52,0x7e +.byte 0x48,0x47,0x93,0x34,0x08,0xa0,0x93,0xc2,0x5e,0x9b,0x22,0xc1,0x2a,0xaa,0xfe,0xa2,0x26,0x00,0xa8,0xbb,0xd0,0x58,0xfd,0x5a,0x09,0x4f,0xa1,0x0c,0xff,0x66,0xcc,0x88,0x3a,0x69,0x9a,0x12,0xb6,0x05,0x6e,0xdf,0x54,0x5d,0xe7,0x03,0x8e,0x95,0x86,0x68,0x83,0x83,0x6f,0x04,0x0b,0x9c,0x05,0x05,0x77,0x14,0x83,0x47,0x98,0x5f,0x22,0xaf +.byte 0xa8,0xfd,0xf3,0xe7,0x73,0xec,0xef,0xd7,0x57,0xd9,0xef,0xe7,0x1b,0x18,0x24,0x09,0xd9,0x14,0xf9,0x60,0xba,0x05,0x0f,0x8f,0x33,0x48,0xb1,0x06,0x41,0x2e,0x95,0x3d,0xf5,0xcf,0x14,0x50,0x5d,0xb6,0x93,0xeb,0xd5,0xf8,0x9f,0x7c,0x8f,0x23,0x35,0x39,0x30,0xc8,0xf6,0x74,0x07,0xc4,0x4c,0xcf,0xe1,0xdb,0x3e,0x9f,0x0a,0xfd,0x48,0x9e +.byte 0x56,0xe4,0xa7,0xa3,0x07,0x06,0x18,0xbb,0x50,0x75,0x33,0x48,0xb9,0xa1,0x4e,0x63,0x65,0xd3,0xf4,0x40,0xc3,0x2d,0x52,0x9a,0xad,0x56,0x7f,0xff,0xb0,0x46,0x24,0xa1,0x78,0x5f,0xb6,0xa8,0x72,0x28,0xb3,0x6c,0x61,0x6e,0xa0,0xfc,0xcb,0xe8,0xfe,0x07,0x28,0x97,0x1c,0xda,0x76,0xc7,0x98,0x2f,0x00,0x1d,0xf2,0x17,0xbe,0x48,0x3f,0xd3 +.byte 0xc7,0xbe,0x89,0x89,0xe1,0x96,0x75,0x1e,0xee,0xf9,0x78,0x67,0xbf,0x12,0x1e,0xe2,0x14,0xbf,0xd4,0xfd,0x49,0xaa,0xbf,0xc6,0xb8,0x4f,0x84,0xcd,0x5d,0x3c,0x45,0xb3,0xb0,0x14,0x6f,0x2d,0x6f,0x35,0xfa,0x60,0x7f,0x64,0x40,0xc8,0xde,0xa8,0x2b,0x56,0x75,0x74,0xc9,0xe1,0x2c,0xe2,0x2f,0xc2,0x3e,0xba,0xa3,0x20,0xd8,0xa3,0xbc,0x69 +.byte 0x9d,0x1c,0xcf,0x5e,0xe3,0xc0,0x66,0x72,0xce,0x22,0x96,0xad,0x47,0xc9,0x5b,0xac,0x45,0xdc,0x4f,0x8e,0xf6,0xa6,0x2e,0x4a,0x1e,0x01,0xe4,0xb7,0x83,0x68,0x92,0x2b,0x98,0xdf,0x22,0x0f,0xd9,0x4f,0x6f,0x72,0x37,0x56,0xfa,0x1b,0xbb,0x5a,0x4d,0xd8,0x5b,0xc6,0x65,0xf8,0xd4,0x4e,0xa5,0xc0,0x0f,0x2d,0xc2,0x38,0xa4,0x6c,0x33,0x2f +.byte 0x7a,0x52,0x14,0xbb,0xfb,0xb3,0xf2,0xa9,0xbf,0xa0,0xad,0xcb,0x8c,0x81,0x47,0x26,0xe9,0xfb,0xc1,0x8e,0xc6,0xe5,0x39,0x48,0xa5,0xb3,0xbc,0xb2,0xe4,0xac,0xf9,0x49,0xbb,0x34,0x2b,0xc4,0x4d,0x06,0xe4,0xd6,0x0b,0xdd,0x55,0x36,0xe6,0xaf,0x64,0xea,0x84,0xf2,0xa5,0x68,0xe3,0x4e,0x4c,0x77,0x46,0x6c,0x17,0x6e,0x08,0x99,0x96,0x1b +.byte 0xb5,0x44,0x3b,0x94,0x2d,0x0f,0xcd,0x90,0x17,0x8f,0x80,0xcb,0xc2,0x30,0xbe,0xe1,0x36,0xdc,0x1e,0x48,0xe3,0x2c,0xe5,0xc9,0xbc,0xbd,0xff,0x3f,0x95,0x59,0x35,0x58,0x2f,0x9c,0xa6,0x1c,0x45,0xa7,0x61,0xde,0xf2,0x9c,0xa3,0x04,0x0f,0xa0,0x93,0xaf,0x69,0x2b,0x0d,0x1c,0xfc,0xff,0x97,0x1c,0x69,0x7e,0x30,0x06,0x88,0x01,0xa4,0xf1 +.byte 0x32,0x36,0xed,0x56,0x89,0xff,0xa9,0x63,0x3a,0x17,0x91,0xc5,0xba,0x6e,0x38,0x84,0xb1,0xaf,0x28,0xac,0x8a,0xb2,0x60,0xbe,0x1b,0x0a,0xd8,0x05,0x22,0x25,0x56,0xbe,0x75,0x47,0x59,0xcf,0x8c,0x2e,0xb3,0xc3,0x5f,0x06,0x81,0x65,0x39,0x78,0xed,0xe3,0xc9,0x5a,0x99,0x01,0xae,0xfb,0xf6,0xed,0x55,0xf5,0xbd,0x2f,0x93,0xf1,0x62,0x6a +.byte 0x54,0x4f,0xe1,0x9f,0x0a,0x23,0x83,0xbc,0xc2,0xba,0xb4,0x6f,0xd9,0x88,0xc5,0x06,0x7a,0x83,0xd5,0xdb,0xeb,0x49,0x48,0xd6,0xc9,0x45,0xa2,0xd0,0xc4,0x06,0xd9,0x01,0xec,0x2d,0x6d,0xc1,0x95,0x69,0x22,0xd0,0xae,0x88,0x75,0x8b,0xd2,0x02,0x98,0x83,0xd9,0x10,0x27,0x8d,0x68,0x97,0x5e,0x6b,0xdd,0x51,0xbb,0x92,0x38,0xa8,0x12,0xde +.byte 0x0f,0xa4,0x1e,0x2e,0xec,0xd5,0x73,0x55,0x5f,0x46,0x6a,0x0f,0xc9,0x50,0x0d,0xb3,0x55,0x20,0xe0,0x01,0xef,0x92,0x29,0x04,0x38,0x60,0xbd,0xc7,0x0b,0x1e,0x94,0x10,0x37,0xb7,0x02,0x94,0xbc,0xde,0xdb,0xb3,0xe3,0x1e,0xd5,0xe2,0xa8,0xed,0x46,0xe8,0xd4,0x8a,0x6c,0x93,0x4e,0xb7,0x73,0xa6,0x20,0x86,0xd2,0x82,0x2f,0x78,0x80,0x34 +.byte 0x44,0x79,0x84,0x2e,0x54,0xd0,0x30,0xa8,0x06,0x0c,0xcf,0x78,0xb4,0xd7,0xe2,0xc9,0x6e,0xfb,0x37,0x47,0x8f,0xe5,0x9f,0xf8,0xca,0x58,0x9c,0xb6,0x8b,0xbe,0xf4,0x3a,0xfe,0x75,0xec,0x1b,0x22,0xfd,0x93,0x92,0x07,0x09,0xcd,0xe6,0x2f,0xe6,0x51,0x0f,0x19,0x43,0x9c,0x6a,0x32,0x38,0x7d,0xf0,0x0c,0x78,0x81,0xb7,0x5c,0xbe,0x3c,0xf4 +.byte 0xc0,0x12,0x57,0x51,0x8a,0x69,0x84,0x0d,0x1e,0x0a,0xed,0x75,0xde,0x9e,0x31,0x8a,0x9b,0x18,0x82,0x01,0x5a,0xee,0x0e,0x33,0x3c,0x8c,0x95,0xb1,0x0b,0x05,0x3b,0xb2,0x85,0xab,0xaf,0x47,0xa2,0x03,0xb6,0xbb,0xda,0xf5,0xc8,0xbe,0x0e,0x4d,0xf8,0x84,0xe4,0xfb,0xd4,0x54,0x44,0x72,0xe5,0x30,0x57,0xa3,0xb6,0x47,0x8f,0xd3,0x32,0xc2 +.byte 0x83,0x07,0x4f,0x17,0x20,0x88,0xa1,0x0b,0xb3,0xef,0x4b,0x27,0x60,0xe0,0x9d,0xec,0xc2,0xdf,0xaf,0x2e,0x74,0xae,0xa4,0x2b,0x59,0x94,0x75,0xbe,0x54,0xf5,0x18,0x62,0xd9,0xe2,0x35,0xee,0x37,0x2e,0xdf,0x48,0xf8,0x80,0x32,0xcb,0xf1,0x83,0x78,0x03,0x68,0x06,0xd7,0x82,0xc6,0x76,0x2a,0x10,0x2a,0xdb,0x73,0xe6,0x65,0x24,0x9f,0x73 +.byte 0x1f,0x55,0x55,0xb6,0x10,0x65,0x80,0x70,0x5a,0x8e,0x8a,0xc8,0x4c,0xca,0x74,0x47,0x63,0x3f,0xee,0x49,0xc3,0x86,0x0f,0x66,0x56,0x08,0xee,0x9f,0xf5,0x5a,0x89,0x4c,0xb4,0x97,0x6e,0x75,0x61,0xc0,0xa7,0x92,0xa8,0x38,0x99,0x08,0x01,0x12,0x82,0x77,0x80,0x20,0x9d,0x62,0x46,0x92,0xdd,0x39,0x4d,0xcf,0xc0,0x8a,0x3e,0x30,0x9a,0xfa +.byte 0x28,0xe8,0xd8,0xf8,0x07,0x0d,0xab,0x4c,0xd4,0x02,0x4c,0xd7,0xc3,0x16,0x89,0x24,0x84,0x52,0x7c,0xa4,0x1b,0x54,0x7f,0xc4,0x74,0x4f,0x88,0x0a,0x14,0x03,0xd9,0x1a,0x48,0xff,0x2c,0xfb,0xbf,0x33,0xf1,0xf8,0x0e,0xdd,0xc4,0x98,0xf2,0xbd,0x32,0x99,0x03,0x8e,0x56,0xc1,0x84,0x5d,0xa6,0xd7,0x21,0xf2,0x43,0xfb,0x3b,0xf5,0x6a,0x75 +.byte 0x20,0xfb,0x08,0x7b,0x66,0x15,0x47,0x31,0xb6,0xb6,0x7a,0xc9,0xe6,0xf5,0xd6,0x0a,0x14,0xb3,0x68,0x0a,0x32,0x13,0xb5,0xe6,0x56,0xbd,0xa5,0x24,0xe2,0xa3,0x7b,0x3d,0x01,0x23,0xed,0x08,0x09,0xb5,0xdb,0x7c,0xa9,0x4b,0x23,0xdb,0xa2,0x25,0x0c,0xc6,0xa4,0x0d,0xbb,0x1a,0x5d,0x1b,0x42,0x0b,0x86,0x72,0xc3,0xca,0x5b,0x14,0x04,0xa3 +.byte 0xd7,0x01,0xe7,0x17,0x78,0xd0,0x54,0xde,0xd4,0x76,0x3d,0xe1,0x7d,0x26,0x3e,0xb4,0x71,0x42,0x84,0x36,0x58,0x78,0x22,0x32,0x26,0x0e,0xc8,0x99,0x05,0xe3,0x4a,0xa6,0x5a,0x1a,0x06,0x0a,0x88,0x47,0x51,0x5c,0xa8,0x72,0x70,0x0c,0x62,0x5f,0xf3,0x1e,0x02,0x50,0x20,0xc6,0x5c,0x50,0x30,0x1f,0x4e,0x5a,0x3a,0x02,0xc9,0xca,0x3f,0xa4 +.byte 0xf1,0x66,0x05,0xf3,0x19,0xe5,0xaa,0xdb,0x75,0x51,0xc1,0xb8,0x94,0xfa,0x2d,0xb6,0x8b,0x42,0xdc,0x9a,0xa3,0x13,0xeb,0x95,0x8d,0xf0,0x65,0x87,0xc9,0xa1,0x43,0xb4,0xfe,0x76,0xf4,0xc8,0xbb,0x19,0x96,0x84,0x9d,0x2f,0x92,0xe8,0x22,0x9a,0xf0,0xd5,0xf4,0xc4,0x8d,0x19,0x59,0x21,0xbf,0x15,0xfd,0xa6,0xc4,0xde,0x77,0x58,0xae,0x93 +.byte 0xb3,0xff,0x44,0x49,0x6e,0x37,0x94,0x04,0xd2,0x96,0xe9,0x80,0xd8,0xe3,0x93,0xd8,0xb4,0x7f,0x5f,0xcf,0xe5,0x9d,0x51,0x92,0xac,0x5d,0x9f,0x23,0x3a,0x3e,0xdf,0x96,0x68,0x9a,0x46,0x9b,0x1a,0x06,0x44,0x54,0xc4,0x2e,0x19,0x0f,0x50,0xee,0x73,0xda,0x39,0x7e,0xec,0xcb,0x1d,0x39,0xf7,0x9f,0xbc,0xe0,0x6d,0x49,0x56,0xf8,0xa7,0x24 +.byte 0x70,0xab,0xe1,0xc3,0x82,0x99,0x0a,0x4d,0x64,0x41,0x37,0xab,0x92,0x76,0xeb,0x6a,0x2a,0xa5,0xab,0x75,0xd7,0xe3,0x6a,0x72,0x4a,0x2b,0x57,0x02,0xc7,0xbe,0xd5,0x35,0xce,0xdf,0xee,0xf1,0xc6,0xe6,0x69,0xb7,0x76,0x99,0x22,0xb0,0xb9,0xe1,0x18,0x91,0x9a,0x35,0xd9,0x3a,0x19,0xc7,0x77,0xf2,0x2d,0xae,0x04,0x2e,0xb7,0x35,0x97,0xa5 +.byte 0xc6,0x97,0x4e,0x5d,0xbe,0xa9,0x35,0x2b,0x53,0x1a,0x6b,0x4e,0xa8,0xa6,0x22,0x48,0x2c,0x81,0x25,0xac,0x30,0x89,0x7b,0xb3,0x38,0x34,0x42,0x0b,0xa5,0x5f,0x02,0xe8,0xee,0x12,0x9b,0xce,0xe7,0x10,0xf9,0x65,0xb6,0xc5,0x74,0x06,0xef,0xc8,0x95,0xb3,0x40,0x30,0xec,0x1f,0x8e,0xeb,0x93,0x31,0x91,0x5a,0x2f,0xc2,0x90,0x85,0xaa,0x4c +.byte 0x51,0xc4,0xd0,0x3e,0xc8,0xc9,0x61,0x46,0x96,0xd4,0x60,0x56,0x7d,0x91,0xc4,0x24,0x76,0xfb,0x09,0x08,0x48,0x2f,0x4a,0x73,0x90,0x8e,0x9d,0xb2,0x38,0xa8,0x95,0x3e,0x6d,0x10,0x57,0x91,0x8d,0x55,0x62,0x1f,0x21,0xc7,0x01,0x15,0xb0,0x71,0x0b,0x26,0xbc,0x10,0x33,0x3e,0x79,0x37,0x64,0x85,0x98,0x42,0x21,0xcc,0xff,0x51,0x9a,0xc2 +.byte 0xe0,0x51,0xc3,0xff,0xf2,0x14,0x3d,0xe8,0x89,0x12,0xe7,0xcd,0x58,0x2f,0x87,0xfb,0x4a,0x50,0x6c,0x4d,0xdf,0x6f,0x64,0x9c,0x64,0x93,0x49,0x89,0xb6,0x0d,0x10,0x3f,0x13,0x9d,0x9a,0x35,0xf1,0xc0,0xe7,0xf0,0x9b,0xe8,0x39,0xd3,0x32,0xb2,0x23,0x67,0x77,0xdb,0xbc,0x0d,0x19,0x77,0x7a,0xbe,0x54,0x56,0x64,0xec,0xb6,0x2e,0x03,0xc5 +.byte 0x35,0xda,0xf1,0xc7,0x7d,0x0c,0x5a,0x32,0xec,0x86,0xdf,0xdb,0x94,0x73,0x4e,0xe3,0x45,0xf6,0xb2,0x63,0xc4,0xb7,0x80,0x59,0x4b,0x82,0x0b,0x61,0xa0,0xd5,0x43,0x18,0x78,0x35,0x93,0xde,0x46,0xa3,0xa2,0xd5,0xa2,0x71,0xec,0x3e,0xee,0x7a,0x89,0x7f,0xe9,0x70,0xff,0xad,0xae,0xa3,0x64,0xde,0x61,0xea,0x71,0xc2,0x37,0x98,0x8a,0x33 +.byte 0xd1,0x5f,0x03,0x08,0x23,0x24,0xc7,0x6c,0x62,0x24,0x6d,0x3f,0x44,0x8e,0x7c,0x9f,0x64,0x87,0xa5,0x79,0x0b,0x16,0x7e,0x4e,0xc0,0x0e,0xb8,0x77,0x56,0x9c,0xa5,0x7d,0x2d,0x5d,0x7d,0x81,0x13,0x2c,0x08,0xd5,0x83,0x84,0x38,0xfe,0x50,0x6f,0xa7,0x30,0x1f,0x06,0xee,0xab,0x13,0xc2,0x19,0xe6,0xcf,0x7b,0x85,0xfc,0x31,0x5b,0xdf,0xb8 +.byte 0x0e,0xe8,0x72,0xba,0x97,0x03,0x25,0xbc,0xad,0x74,0x7c,0xe1,0x59,0xf7,0x08,0xc1,0xe3,0x2d,0xb1,0x05,0xe7,0x1f,0xb9,0x0f,0x09,0xcd,0xe6,0x4f,0x5a,0xf6,0xcc,0xea,0xc7,0x92,0x35,0xf5,0xbc,0x3f,0xef,0xc9,0x2b,0xb4,0xd7,0x66,0x50,0xaa,0x80,0xb9,0xaf,0x5d,0x02,0x9c,0x77,0xdf,0xc0,0xc7,0xe2,0xbf,0x7d,0xff,0x69,0x63,0x3e,0x7c +.byte 0x91,0x94,0xae,0xa4,0x0a,0x25,0xa3,0x1f,0xf3,0xc6,0x88,0xda,0x82,0xac,0xbc,0x1f,0x8d,0x53,0xd6,0xfd,0x2b,0x5c,0x33,0x6d,0x03,0x68,0x92,0x38,0x07,0xeb,0x85,0x7f,0x55,0x89,0x17,0x58,0x7f,0xc7,0xb4,0x7a,0xff,0x15,0xe5,0xe0,0xea,0xce,0xac,0x3f,0x0f,0x09,0x25,0xfa,0x80,0xe3,0x07,0x89,0x4e,0xbf,0x7e,0xc2,0x42,0xf1,0x18,0x78 +.byte 0x05,0xe3,0x6a,0x2e,0xf7,0x2e,0xe5,0xbf,0x63,0x9e,0x48,0x69,0xe6,0x3c,0x4b,0x12,0x73,0x58,0xde,0x0c,0x73,0x27,0x9a,0x95,0xfa,0x51,0x8c,0xbb,0x74,0x31,0x53,0x4e,0x9a,0x13,0xda,0x49,0xf0,0x8b,0xb4,0xcd,0xc1,0xe9,0xaf,0xd6,0x59,0x59,0xa8,0x24,0x94,0xd9,0x4b,0xf8,0x20,0x79,0xa0,0x79,0x01,0x08,0x84,0x9b,0x04,0xe7,0xda,0x06 +.byte 0x22,0x3e,0x85,0x23,0x0c,0xa9,0xe5,0xcd,0xd3,0xc4,0x27,0x8c,0x4e,0x75,0xe4,0x60,0xb5,0xe9,0xc5,0xb7,0xb1,0x3a,0x84,0x68,0x40,0x3e,0x36,0x1b,0x9a,0x64,0x50,0x45,0x6f,0xc6,0x58,0x70,0x46,0x1a,0xca,0xf6,0x81,0x02,0xa8,0x17,0x4d,0x92,0x0d,0xae,0x88,0x1a,0xbd,0x52,0xc0,0x32,0xb1,0x2d,0x2d,0x12,0x9c,0x29,0xfa,0xa6,0x70,0x5f +.byte 0xe7,0x0b,0xd5,0x5d,0xa5,0x49,0x9e,0x9e,0x5b,0x55,0xbc,0xce,0x5b,0xb4,0xef,0x3f,0xe4,0x7c,0x50,0xef,0x58,0xf5,0xfe,0xcc,0xf6,0xd0,0xf1,0x3a,0x0b,0xf2,0x3e,0x1c,0xce,0x22,0x7e,0x88,0x1c,0x8f,0x9a,0x69,0x76,0xa9,0xf0,0x18,0xa8,0x76,0x7f,0x0c,0xa6,0xfd,0x67,0x43,0xc7,0x43,0x67,0x98,0x6e,0x37,0xd4,0x82,0x29,0x62,0xa6,0xcf +.byte 0x2b,0x7c,0xee,0x14,0x4d,0x2d,0x1a,0xfc,0xc6,0xaf,0x5b,0xea,0x8a,0xa8,0x9a,0x3b,0xab,0x7d,0x76,0x15,0x50,0xe8,0x95,0x31,0xc8,0x5d,0x5d,0x19,0x68,0x07,0xf5,0xb0,0x29,0x5f,0x79,0x4f,0x0d,0x2b,0xba,0x1d,0xd2,0xf2,0x83,0x50,0x89,0x0b,0x96,0x16,0xde,0x7c,0x04,0xea,0x9c,0x75,0x97,0x7e,0xd7,0x2c,0xee,0x82,0x7c,0xbf,0x0b,0x71 +.byte 0x05,0x59,0xd7,0x11,0x70,0x8e,0x41,0x62,0x91,0x38,0x3a,0x69,0x3f,0x3d,0xde,0x8e,0x03,0x0a,0xea,0xfb,0xea,0x36,0xf0,0x5c,0xb6,0xdf,0x9a,0x66,0x9e,0x64,0x43,0xaf,0xb7,0x83,0xd1,0xef,0x7c,0xb6,0x9b,0x40,0xd8,0x0f,0x0e,0x0b,0xa7,0xd0,0x98,0xca,0x8e,0x3b,0xed,0xb7,0xa5,0x19,0xca,0x67,0x30,0x87,0x17,0x0e,0xc4,0xe1,0xaa,0x6e +.byte 0xdb,0x67,0xbd,0xf5,0xed,0x10,0x68,0xb1,0x43,0x73,0xaa,0x99,0x1a,0x83,0x0d,0x1a,0x5a,0x8b,0xc8,0xff,0xe9,0xe0,0x1c,0x15,0xda,0xb0,0x99,0x90,0xce,0x1f,0xfd,0x17,0xd2,0xfa,0x8f,0x3a,0xe8,0x1b,0xd3,0x96,0x2a,0x0d,0xa9,0x4d,0x6d,0x77,0x53,0xe8,0x8f,0xc7,0x6b,0xb4,0x3b,0x6d,0x0c,0x8e,0x35,0x67,0x09,0x6e,0x43,0x36,0x52,0x3e +.byte 0x0e,0xf6,0x4f,0x16,0x40,0x45,0x7f,0xab,0x39,0xf2,0x23,0xfb,0x4e,0xea,0x6e,0xcf,0xa0,0xb6,0xec,0x6d,0x93,0x1b,0x6f,0x9f,0xd6,0xce,0xcd,0x1e,0x90,0x5c,0x7d,0x61,0xc4,0xae,0x02,0xb2,0x7a,0xb2,0x25,0x59,0xac,0x0a,0xcb,0xc6,0x28,0xa2,0x9c,0x7b,0x4b,0x05,0x5a,0x23,0x55,0xc8,0x9a,0x72,0xe6,0x3b,0x91,0xa2,0x9b,0x12,0x1c,0x1f +.byte 0x4b,0x85,0x42,0x9d,0x73,0xf9,0x50,0x3e,0x12,0xc4,0x51,0xb4,0xe1,0x2a,0x08,0xfc,0xf9,0xc8,0x5a,0x53,0x79,0xcc,0xd1,0x24,0x4c,0xc1,0xf6,0xe7,0x10,0x9d,0xe6,0xce,0xcc,0xc7,0x04,0xf8,0x7a,0xd4,0x2f,0x0a,0x97,0x32,0xaf,0x38,0x77,0x97,0x78,0xc8,0xa9,0x9a,0xca,0x65,0xee,0x2b,0x07,0x0e,0xb1,0xaa,0x3c,0xee,0x03,0x85,0xf7,0x09 +.byte 0xd1,0x03,0xe5,0x4f,0x8a,0x6b,0xba,0x83,0xd2,0x6a,0x05,0xe6,0x4e,0x59,0x21,0x26,0xcc,0x8d,0x4a,0x91,0x21,0x6b,0xe5,0x7a,0x83,0xed,0x4e,0x95,0x4b,0x16,0x98,0x3f,0x2d,0x51,0xc5,0x67,0x56,0x58,0xc9,0xc3,0x32,0xff,0x91,0x9d,0x7f,0x6d,0xc7,0x8a,0x40,0x58,0x56,0x35,0xca,0xc1,0xa9,0x07,0xe2,0xc6,0xe1,0x8f,0x7b,0x7c,0x68,0x4e +.byte 0xde,0x19,0xc8,0x9c,0x41,0x65,0x74,0x33,0xb5,0x5b,0xf7,0x47,0x91,0x51,0x41,0x56,0x54,0xaa,0x8e,0xa5,0x1f,0xdb,0x50,0xa4,0x97,0x7a,0xea,0x86,0x2e,0xfd,0xdd,0x64,0x23,0x6e,0x44,0x28,0xfb,0xae,0xe8,0xc2,0x38,0x96,0x56,0x2e,0xd8,0x7e,0x3a,0xc8,0xc6,0x7f,0x20,0x15,0xad,0x9f,0xfa,0x5c,0x55,0xf5,0xe1,0x9a,0x07,0x84,0x5b,0x81 +.byte 0x39,0x4b,0x70,0xc3,0xfd,0x2b,0xc5,0xb7,0x47,0x36,0x74,0x5a,0x85,0xaa,0x45,0x94,0x8e,0xbe,0x7f,0x6c,0x45,0xf5,0x02,0x4e,0x5f,0x16,0x04,0x7e,0xfa,0xb8,0xa9,0x38,0xc4,0xd9,0xca,0x5f,0x7a,0xe3,0x96,0x78,0x82,0xa0,0xac,0xef,0xc4,0x2a,0xb5,0xf4,0x7d,0x28,0x8c,0x25,0xba,0x4e,0xd5,0xd5,0xd1,0x24,0xc6,0x05,0xb2,0x18,0x2d,0x66 +.byte 0xea,0xe3,0x42,0x79,0x33,0x9e,0x70,0x3a,0x1b,0x5a,0x8e,0xcb,0x03,0xa8,0x43,0xf3,0xd5,0x66,0x41,0x10,0xd7,0x09,0xf0,0x28,0xe5,0x25,0xe6,0xac,0x9a,0xe6,0x34,0x36,0xfb,0xc4,0xa6,0x9a,0xd0,0x24,0x4d,0x18,0xf9,0xd1,0x8e,0xca,0x92,0x83,0x0f,0x55,0x54,0x6d,0x72,0x81,0x81,0xdb,0x72,0x1f,0xd6,0x32,0xb9,0x32,0x45,0x84,0x9c,0x66 +.byte 0x68,0x7e,0xab,0xb3,0xca,0xf5,0x4f,0xdd,0xb4,0xee,0xbb,0x05,0x70,0xbe,0x4f,0xd1,0x27,0x01,0xcc,0x7c,0x4f,0x47,0x55,0xce,0x91,0x73,0x6f,0xff,0x8d,0xfc,0x0c,0x4c,0xaa,0xfc,0xce,0x9f,0xf3,0x4a,0x46,0x92,0x89,0x84,0x8f,0x4d,0x94,0x37,0xda,0xe3,0x11,0x0d,0x63,0x60,0xcb,0x40,0x8f,0xe8,0x0f,0xf9,0xa1,0x89,0x64,0x44,0x45,0x74 +.byte 0xc5,0xa2,0x73,0x33,0x08,0xa2,0x59,0xb0,0xeb,0x7b,0x7b,0xa7,0x28,0x4c,0x13,0x6a,0x04,0x15,0x14,0xd0,0x3e,0x5e,0xec,0xe1,0x3f,0xe5,0x93,0x06,0x6b,0x60,0x50,0x1c,0x90,0xc0,0x5c,0xea,0x7e,0x58,0xf1,0xed,0xba,0x43,0x0b,0x84,0xf7,0xa4,0xbd,0x4c,0xed,0x88,0x5b,0xae,0xa2,0x0a,0xf6,0x06,0xfd,0x43,0x63,0xfe,0x8a,0x03,0x21,0x8b +.byte 0x27,0xc6,0xef,0xa3,0xa9,0x3a,0xc1,0x8b,0x65,0x62,0x25,0x85,0xaa,0x2f,0xff,0x22,0x96,0xb7,0x5c,0x82,0xde,0x21,0x4e,0x0d,0x8d,0xd9,0x7f,0x97,0x79,0x95,0x6c,0xe6,0xfd,0xb1,0x7c,0x84,0xc8,0x73,0xbc,0x50,0x2f,0x87,0x03,0x56,0xcf,0xea,0x7f,0xed,0x17,0x7d,0xf7,0x61,0x6b,0x6f,0x5b,0xd3,0xe4,0x83,0xbd,0x8b,0xd3,0x8e,0x51,0x57 +.byte 0x3d,0xcc,0xe4,0x09,0xb9,0x73,0x1f,0xb4,0x47,0x5e,0xf2,0x10,0x3e,0xf4,0x9c,0x86,0x02,0xdf,0x3e,0x75,0x1c,0x9b,0xb5,0x0f,0x31,0xc6,0xbb,0x00,0xb4,0x8a,0x1a,0xe5,0x0d,0x9c,0x3e,0x93,0x61,0x5a,0x61,0x86,0x12,0x64,0xaa,0xfd,0xa2,0x6e,0x8f,0xcc,0xcd,0x60,0xa1,0xad,0x6d,0xdc,0xa2,0x7b,0x5a,0xe0,0xee,0x27,0x5d,0xc5,0xfe,0x1f +.byte 0x7b,0x9f,0x33,0xf1,0xee,0x2a,0x58,0x39,0x56,0x14,0x4f,0x2f,0x11,0x26,0x6b,0x56,0x7c,0x75,0xb7,0xc3,0xa7,0xf6,0x54,0xd8,0xa7,0xbb,0x73,0xb5,0xa5,0x83,0x1e,0x65,0x7e,0xa7,0x85,0x74,0xa4,0x04,0x0e,0x26,0x01,0x88,0xbc,0x8b,0x98,0x0c,0x9b,0x74,0x22,0x44,0x16,0x16,0xed,0x94,0x81,0x81,0x13,0x26,0xc9,0x27,0xa9,0xa7,0xe0,0x45 +.byte 0x69,0x6e,0x33,0xcc,0xa3,0x15,0x10,0x99,0x84,0x06,0x95,0x00,0xbb,0xc6,0x8e,0x4e,0x37,0x1b,0x23,0xb2,0xf7,0x4d,0xd7,0x24,0x68,0x6b,0xaa,0x2e,0x57,0x8d,0xd6,0x4e,0xa2,0x69,0xd8,0x8d,0x84,0xb2,0x85,0x91,0x30,0xbf,0x41,0xab,0xcf,0x5c,0xa6,0x51,0x1e,0xf5,0x79,0x5a,0x20,0xfa,0x3d,0x0a,0xc5,0xd7,0x3f,0xa6,0xcc,0xf6,0x9b,0x76 +.byte 0xe0,0xec,0x9e,0x0b,0x23,0xe4,0x74,0x36,0x14,0x6f,0x24,0x9d,0xe7,0xb2,0x41,0xd7,0x68,0x37,0x67,0xdc,0x01,0xb1,0x20,0xf9,0x8b,0x0b,0xf5,0xa7,0x95,0x78,0xa0,0x6c,0x4b,0xc0,0x44,0x92,0x4a,0x75,0x0f,0x61,0xde,0xc3,0xc2,0x3d,0x17,0xa0,0x4d,0x57,0x8b,0x11,0x35,0xbd,0x49,0x87,0x05,0xba,0x5d,0x1f,0x76,0xd4,0x0f,0xb0,0x5b,0x5f +.byte 0xb7,0xf8,0xcf,0x12,0x54,0x19,0x9a,0x49,0x6a,0x42,0xad,0x93,0x85,0x0b,0xe7,0x8c,0x30,0x59,0x82,0x82,0x2d,0xd9,0x89,0xf5,0x8c,0x39,0x9c,0xf5,0xcd,0x25,0x22,0x74,0xcf,0x56,0xa2,0x15,0x40,0xa6,0xa8,0xfc,0xdc,0x85,0x9e,0xab,0xd6,0x94,0x5d,0xd6,0x73,0x07,0xed,0x7b,0x76,0x11,0x67,0xf5,0x52,0xac,0x1a,0x69,0x1f,0x4a,0xa2,0xaa +.byte 0x4d,0x11,0xe0,0xc4,0x4c,0x6e,0x9e,0x8e,0x13,0x46,0x0b,0x95,0x40,0x53,0x35,0x53,0x58,0x7f,0x81,0x5f,0x17,0xd7,0x5e,0x53,0x86,0xf3,0x1b,0x70,0xf1,0x95,0x8f,0xf6,0xd4,0x6f,0x55,0x92,0xa2,0x38,0xd3,0x43,0x6c,0x7e,0xa2,0x21,0x5b,0x18,0x11,0xdd,0x03,0x52,0xe6,0xe5,0xc0,0xc5,0x4e,0x8e,0xda,0xdb,0x91,0xcf,0xf7,0x75,0xc2,0x33 +.byte 0x69,0xd1,0xd1,0x29,0x9d,0x51,0x79,0x91,0xe4,0x58,0x05,0xa5,0xf6,0x54,0x16,0x3e,0x42,0xf3,0xc4,0x1f,0x88,0x94,0xfc,0x6b,0x53,0xb1,0xd5,0x17,0xe6,0xab,0x77,0x33,0x8a,0xd0,0x93,0x74,0x02,0xe0,0x81,0x5e,0xbe,0x2f,0x4d,0xcd,0x25,0x0b,0xd0,0x06,0xd8,0xc9,0xf9,0xcf,0x8e,0xf8,0xc3,0xe2,0x33,0x60,0xe5,0xfa,0x89,0x68,0xf8,0xb7 +.byte 0xef,0x9d,0xfc,0x9d,0x76,0x13,0x2d,0x9d,0x18,0x7d,0x05,0xb4,0xa7,0xa3,0x8a,0x91,0xe0,0x73,0x65,0x89,0xb4,0xc1,0x53,0x7c,0xdc,0xf2,0xab,0x39,0x94,0xc7,0x3d,0xf8,0x1c,0x8f,0x49,0x37,0xee,0xc1,0x19,0x84,0x15,0x3b,0x36,0xb2,0xc2,0xe1,0x16,0xe2,0xfb,0xde,0x1f,0x0e,0xa4,0xea,0x59,0x67,0x2d,0xea,0x47,0xe5,0x2c,0xd1,0xb5,0xa9 +.byte 0xbd,0x5c,0x92,0x34,0x8b,0xc5,0xab,0x4f,0x2b,0x6b,0xc4,0x8b,0xdb,0xbb,0xcb,0x86,0x34,0x35,0xa0,0x5c,0x29,0x1a,0x8b,0xce,0xdc,0xd7,0x46,0x2b,0x20,0x9d,0xea,0xa8,0x97,0x68,0x37,0x56,0x03,0x7d,0x4f,0xb6,0xfc,0x30,0x82,0x68,0xb4,0x56,0xf3,0xbe,0x58,0xcc,0x20,0xc1,0x53,0x9f,0xbb,0x0b,0x2b,0x6e,0xa0,0x2d,0xc0,0x61,0x02,0x0b +.byte 0xf9,0x0e,0x55,0xb8,0xb8,0x23,0x6e,0x50,0xc0,0x36,0xb8,0xf6,0x5e,0xb3,0xa7,0x8f,0xf8,0x7f,0xd0,0x5d,0x0a,0xc4,0x2b,0xa9,0xd3,0x76,0xcf,0x4d,0x27,0xda,0xac,0xf3,0xb0,0xca,0x00,0xa0,0x94,0x12,0x20,0x89,0x22,0xa9,0x89,0xe4,0x23,0x71,0xe0,0xdb,0xec,0xb0,0xa9,0x2e,0x45,0xf6,0x8d,0x1e,0x4b,0x0e,0xc7,0xf8,0x40,0xd6,0xf4,0x2f +.byte 0x80,0x3e,0xf8,0xfb,0xcf,0x7b,0x54,0xb5,0xbd,0x55,0xf2,0x37,0x46,0x9f,0x32,0x45,0x87,0xa3,0x6a,0x51,0x25,0x43,0x54,0xa2,0x92,0xc6,0xbe,0xa4,0x33,0x54,0x82,0xc7,0xf1,0xe4,0x52,0xf9,0x09,0xac,0xc3,0xb1,0x25,0x86,0xc7,0x89,0x83,0x2c,0xf6,0x35,0x9e,0xd1,0xd8,0xb1,0x71,0xed,0xfa,0xae,0x09,0x83,0xb3,0xf0,0xde,0x24,0xed,0x3c +.byte 0xc6,0x60,0xe8,0x15,0x49,0x93,0x29,0x82,0xbf,0x1d,0x23,0x17,0x11,0xea,0xa7,0x53,0x83,0xa5,0xc1,0x9e,0x02,0x17,0x08,0x99,0xa6,0x72,0xaf,0x82,0x3f,0x0b,0x69,0xca,0xb8,0x72,0xa9,0x31,0x71,0x20,0x32,0x57,0x89,0x9b,0x16,0x92,0x54,0xc0,0x99,0x6d,0xa4,0xbf,0x5a,0xb5,0x53,0xa7,0x4c,0x69,0xd8,0xf7,0xe7,0x4c,0xc0,0x76,0xb6,0x35 +.byte 0xdd,0xe7,0xb2,0xd9,0x1c,0xd5,0xf7,0x39,0x32,0x44,0x48,0x02,0x85,0x69,0x02,0xad,0xe6,0xfc,0xbb,0x07,0x9e,0x7f,0xee,0x6d,0x07,0x12,0x21,0xeb,0x67,0x4d,0x74,0x90,0x8f,0x79,0x51,0x9d,0x8a,0x63,0x24,0xab,0x6f,0x8f,0x73,0xd3,0x91,0x68,0x15,0xa9,0x6a,0x84,0x92,0xc2,0xd4,0x4d,0xa8,0xe1,0x4f,0xa2,0x1e,0x34,0xa3,0x9a,0x04,0xf2 +.byte 0xfc,0xc4,0xe7,0xd0,0x52,0xc4,0x49,0x51,0x8e,0x7d,0xaa,0x74,0xaa,0x08,0xbe,0x08,0xf6,0xe4,0xc1,0x61,0xff,0x2e,0x9c,0x17,0x61,0xb6,0x01,0x44,0x18,0xe8,0x5e,0xa9,0xfb,0x02,0x21,0xbb,0x08,0x5c,0xe0,0xd3,0x0c,0x98,0xc5,0x93,0x2a,0x1c,0x69,0xf3,0xe8,0x8b,0x36,0xa0,0x9d,0x1e,0xda,0x18,0x14,0x06,0x7f,0x75,0x3d,0x42,0x92,0x5a +.byte 0xb9,0xb7,0xc0,0xc0,0xb0,0xc5,0xa9,0xb2,0x67,0x24,0xc2,0x28,0x29,0xcb,0x78,0x8e,0xf3,0xd1,0x37,0x63,0xca,0xc8,0x9a,0x1b,0x38,0xa5,0x9f,0x0e,0x0d,0x26,0x5b,0xfe,0x2f,0xdf,0x4f,0xb9,0x21,0x8c,0xc8,0xe0,0x9f,0x71,0xb9,0xc3,0x6c,0xd8,0xd3,0x2f,0xe4,0x3c,0x67,0x35,0x45,0x74,0x7f,0xcb,0x13,0xda,0x64,0x47,0xff,0x6f,0x05,0xf0 +.byte 0x87,0x8d,0x0d,0x1f,0x10,0x47,0x0e,0xf6,0x9d,0x89,0x6d,0x79,0x04,0x77,0x8a,0x6c,0xeb,0x7d,0x9b,0xd7,0x65,0x82,0xa8,0x95,0xa2,0x8c,0x02,0x91,0x0d,0xf2,0xe8,0x65,0x60,0x0d,0xb6,0x1d,0xf4,0xf3,0x41,0x75,0x33,0x21,0x13,0x22,0x93,0x01,0x2f,0x11,0xe7,0xed,0x45,0x56,0x90,0xec,0x0b,0x99,0x8e,0x84,0xc8,0x76,0x31,0x1d,0xb9,0xcb +.byte 0x87,0x3f,0x5f,0x39,0xeb,0xe8,0x9e,0x5e,0x96,0x9e,0x42,0x64,0xf3,0xef,0x00,0x1f,0x2a,0x6c,0x18,0x67,0xbd,0xdd,0xf9,0x65,0x11,0x1b,0x9c,0xd7,0xf3,0x3d,0xb2,0x6f,0x88,0xf7,0xd2,0x26,0x06,0xef,0xc8,0x23,0x3f,0x46,0x5d,0xf0,0x96,0x40,0xb1,0xdd,0xad,0xe4,0xee,0xb6,0xc2,0x67,0x18,0x46,0x67,0xc4,0xa5,0x7e,0x3e,0xce,0x72,0x47 +.byte 0xca,0xc3,0xa7,0x94,0x56,0xe2,0x23,0x03,0xcf,0xd0,0x18,0x55,0x30,0xe3,0x14,0x00,0xda,0x0f,0xaa,0x7f,0x20,0xaf,0x3b,0x24,0x43,0x7a,0xaa,0xd4,0x12,0x42,0x10,0xe4,0x44,0x8a,0x7f,0xf1,0x74,0x9d,0xe0,0x28,0x60,0xce,0xdd,0x04,0x96,0x03,0x80,0xcb,0xaa,0xa9,0xb5,0xc7,0xb4,0xbb,0xc7,0x9a,0x93,0xd8,0xff,0x3b,0x8f,0x1f,0xb7,0xce +.byte 0xed,0xbc,0xde,0x9f,0x9e,0x56,0x96,0x65,0xba,0xe7,0x89,0x03,0xb2,0xbd,0xfe,0xa7,0x02,0xeb,0x33,0x9a,0x8b,0x5b,0x36,0x64,0x17,0x9f,0xd2,0xe4,0x75,0xb5,0xfb,0x21,0x03,0xa4,0xe7,0xb4,0x49,0x72,0xfd,0xf3,0x1e,0x5f,0xdb,0xe5,0x6c,0x92,0x51,0xe7,0x91,0x55,0xb7,0x82,0x18,0x05,0xc3,0x2c,0xf1,0x23,0x61,0x36,0xad,0x80,0x1b,0xde +.byte 0xe1,0x51,0x4e,0x51,0xa1,0xf6,0x5a,0xb9,0x03,0x48,0xa7,0x12,0x88,0x63,0x30,0xff,0x48,0xfc,0x92,0x30,0x9a,0xca,0x08,0x1b,0x64,0xa9,0x74,0x2a,0x64,0x42,0x7d,0xa9,0xa4,0x9d,0xcb,0x59,0x71,0x53,0xc1,0xa8,0xa6,0xb5,0x47,0xf9,0x87,0xb5,0x41,0x58,0x92,0x14,0xf7,0xbd,0x10,0x45,0x37,0x20,0x1d,0x5b,0x42,0x04,0xed,0x69,0x4c,0xa5 +.byte 0xdc,0x2a,0x58,0xba,0x00,0x1e,0x05,0x9c,0x3c,0xbf,0x65,0x76,0xd1,0x11,0xe0,0x15,0x22,0xb0,0x2a,0x53,0x32,0x0f,0x6e,0x08,0x4e,0x27,0xc2,0x71,0x14,0x20,0xee,0xb0,0x0b,0x60,0xef,0x54,0xae,0x2c,0xe0,0x1d,0x30,0xac,0x0d,0x3a,0x93,0x15,0x0a,0xe7,0x14,0xf3,0x1a,0x67,0xb1,0x43,0x85,0xbd,0x06,0x53,0xab,0x6d,0x5d,0xe7,0xe3,0x82 +.byte 0xb8,0x39,0x35,0x10,0x87,0xe7,0x90,0x4d,0x9c,0x6f,0x83,0xad,0xa2,0x43,0x7a,0x5d,0xc1,0x8a,0x39,0xa3,0xa6,0xda,0x48,0x5c,0x9b,0xe1,0x0d,0x69,0xfc,0x87,0x18,0xdd,0x34,0x9a,0xb4,0x9c,0x04,0x0d,0x49,0x18,0x3e,0x38,0xd8,0x01,0x67,0xb1,0x7f,0x6b,0xb5,0xfe,0x58,0x1c,0x64,0x11,0x10,0x6b,0xc1,0xca,0x56,0xe3,0x12,0x8c,0xb4,0xac +.byte 0x03,0xbd,0xc1,0x54,0xbe,0x5c,0x70,0x6f,0xdd,0x73,0xa3,0x84,0xcd,0x0b,0x1b,0xbf,0x05,0xac,0x27,0x11,0xe8,0x5f,0xc3,0xb9,0x68,0xc2,0xe9,0x3f,0x5a,0x9b,0x28,0xca,0x65,0x5e,0x66,0x4e,0x50,0xa9,0x81,0xb1,0x10,0xc1,0x2c,0xa5,0x62,0xc8,0x52,0x07,0xa5,0xa1,0x99,0x16,0x7b,0x08,0xa4,0x1e,0xf4,0x50,0x8f,0xb2,0x42,0xa5,0x19,0xa2 +.byte 0x34,0x91,0xcf,0xa7,0x5e,0x73,0x6b,0xc2,0xa3,0x4d,0xdd,0x7c,0x26,0x46,0x34,0xe6,0x5d,0x54,0x52,0xe3,0x1e,0xc1,0x10,0x36,0x7c,0xc9,0xd2,0x1e,0xca,0xeb,0x80,0xc5,0x3c,0x04,0xf6,0xb7,0x09,0xd4,0x3e,0x67,0xc3,0xf6,0x6b,0xd4,0x60,0x00,0xc9,0x68,0x17,0x39,0xbc,0xcd,0x14,0x32,0xfc,0x33,0xa4,0xb0,0x6f,0x12,0x6b,0x5f,0xe2,0x15 +.byte 0x1c,0x9a,0x15,0x4f,0x0b,0x7d,0x4c,0xa0,0x89,0x40,0xb3,0x0e,0x84,0x90,0xb3,0xc6,0x3e,0xa5,0x0b,0x81,0x66,0x14,0x5f,0x8d,0xe0,0xbf,0xf7,0x9d,0xa4,0x4e,0x69,0xd5,0xac,0x0f,0x6c,0x29,0x94,0x8f,0x3b,0x4b,0xed,0x5b,0x6e,0xe1,0x58,0x5d,0x32,0x19,0xe6,0xbd,0xfb,0xd5,0xb7,0x0f,0x72,0x0e,0x5b,0x14,0xd3,0xf3,0x09,0xa8,0xea,0xf7 +.byte 0x98,0x2f,0x42,0x07,0x8e,0x72,0x27,0x53,0x8d,0x0b,0xea,0x74,0x38,0xbc,0xaf,0xb8,0x76,0x65,0x97,0xda,0xa7,0x06,0x37,0x29,0x09,0xbe,0xaa,0xe6,0xf7,0xb6,0xb1,0x5f,0x71,0x1f,0x5d,0x14,0x47,0xdf,0x20,0xa3,0x94,0x93,0x7d,0x21,0xe6,0x22,0x7e,0x38,0x1a,0x26,0x83,0xc7,0x32,0xdf,0x58,0xcd,0xab,0x67,0xae,0x94,0xa5,0x68,0xcb,0xe3 +.byte 0x51,0x70,0xc0,0xc4,0x41,0x9f,0xca,0x05,0xc9,0x51,0x2a,0x8e,0x53,0x89,0x3f,0x52,0x6b,0x29,0x64,0xa8,0xb8,0xdf,0x02,0xb1,0x41,0x4e,0x36,0x42,0x32,0xa8,0xc0,0x91,0xf0,0x69,0x69,0x55,0x99,0xb7,0x78,0x4f,0x79,0x5b,0xc5,0xab,0xc6,0xed,0x15,0x88,0x6b,0x94,0x0a,0xdd,0xea,0x47,0xf9,0x0e,0xb8,0x89,0x15,0x68,0x3e,0xc0,0x50,0xf8 +.byte 0xa1,0x2d,0x2a,0x11,0x8a,0xc5,0xb0,0x09,0x4f,0x7d,0x90,0x5f,0x49,0x35,0xe9,0xdd,0xfc,0xac,0xea,0x1b,0x20,0xad,0xd2,0xe6,0xb6,0xbf,0x3c,0x0e,0x7b,0xdf,0x2f,0x55,0x58,0x0e,0x25,0x53,0x62,0xd3,0x73,0xb8,0x3e,0x12,0x91,0xcb,0x23,0xf2,0xc0,0x5d,0x74,0x2b,0x51,0xcc,0xa2,0xb1,0x5a,0xd2,0xf4,0x9b,0xc9,0xa5,0x83,0x2b,0x5a,0x8a +.byte 0x0b,0xe9,0x09,0x59,0xb5,0x44,0xc9,0x55,0xcc,0xbd,0xb6,0x69,0x66,0x9a,0x0c,0x15,0xae,0x76,0x35,0xbe,0xe9,0x37,0x70,0x9e,0xdc,0x97,0x5a,0x82,0x97,0xf6,0x1a,0x45,0xd7,0x27,0xfe,0x1f,0xc3,0x7c,0x3a,0x52,0x85,0x12,0x73,0x8a,0x8e,0x07,0xec,0x1f,0x59,0x3f,0xb0,0x32,0x07,0x92,0x3e,0x81,0xe0,0x7a,0x9a,0xc9,0x91,0xca,0x84,0xf1 +.byte 0xe1,0x32,0x57,0x0a,0x3c,0x9a,0x20,0xa8,0xbe,0x84,0x91,0x44,0x66,0x81,0xdd,0x12,0xa8,0x46,0x15,0x18,0xfc,0xae,0x5e,0x9a,0xf3,0xd9,0xb9,0x6a,0xbb,0x90,0x1c,0x61,0x7f,0x61,0x2c,0xa7,0x12,0x1e,0x05,0xee,0x0c,0x66,0x9e,0xc2,0xc8,0xb9,0xe0,0xc9,0xc4,0xb9,0xee,0x3a,0x6f,0x97,0x2a,0x5e,0xcb,0xd9,0xff,0xd1,0x37,0x5e,0xa0,0x03 +.byte 0x70,0xc1,0x2f,0x15,0xf9,0xf7,0x90,0xbe,0x23,0xe7,0x7c,0x90,0x4b,0xe4,0x5a,0x01,0x65,0x27,0x2d,0x4b,0xd3,0xa8,0x8c,0x1d,0x2d,0x5d,0x48,0xac,0x6b,0x59,0xc9,0x78,0xb2,0xee,0xda,0x6e,0xa8,0x68,0x08,0x99,0x22,0x25,0xfe,0xc2,0xb8,0x83,0xa8,0x08,0xbb,0x6e,0x64,0xae,0x2e,0xbb,0x93,0xaf,0xdc,0xeb,0xa3,0x11,0xa7,0x5d,0x3f,0x22 +.byte 0xf1,0x95,0x27,0xf6,0xd6,0xa6,0xc3,0x56,0x0a,0xd0,0x17,0x43,0x35,0xd2,0xe7,0xa4,0x8f,0x6c,0x1c,0xc4,0x4d,0xa7,0x3b,0xb8,0x7f,0x0c,0xa0,0xd6,0x56,0x82,0xf4,0x16,0x96,0xcd,0xcf,0x6f,0x78,0xec,0xbb,0xb2,0xdb,0x67,0xcf,0x78,0x0c,0x22,0x1d,0x72,0x21,0x8e,0x40,0x85,0xa5,0x07,0x3b,0x0e,0xfa,0x44,0xb0,0xfe,0xbf,0x54,0x80,0x41 +.byte 0xdc,0xa7,0xc7,0xdb,0xaa,0x04,0x42,0x0d,0x42,0x03,0x17,0xc8,0x57,0xd7,0x08,0x34,0x37,0xf5,0x9a,0x90,0x30,0x43,0x54,0x5b,0x58,0x50,0x4e,0xc4,0x56,0x57,0xff,0xf0,0x05,0x82,0xca,0x2e,0x20,0xb0,0xbd,0xd0,0x00,0x7d,0x60,0x3f,0xdb,0x9c,0x08,0x7e,0x21,0x63,0xbc,0x89,0xbf,0xcb,0xcc,0x36,0xb5,0x36,0x41,0xb4,0x9c,0x5c,0x9d,0xa6 +.byte 0x74,0xa4,0x4f,0x6a,0xcb,0x63,0x51,0xb1,0x92,0xa0,0x03,0x9b,0x88,0x03,0xd5,0x82,0x30,0xfb,0x69,0x49,0x20,0xb0,0x37,0x50,0xe4,0x02,0x9e,0x11,0x09,0x20,0x1a,0x41,0x8d,0xdd,0xa0,0x18,0xb4,0x74,0x04,0x1e,0x3a,0xea,0xb4,0x28,0x01,0x7f,0x0b,0x73,0x27,0x5f,0x76,0x2e,0x71,0xfa,0x50,0x1b,0x43,0x8d,0x0d,0x6c,0x87,0xc3,0x10,0x7b +.byte 0x42,0x7d,0x17,0xa6,0x00,0x5b,0x83,0x6c,0x7b,0x7f,0x72,0xd8,0x90,0x4d,0x7f,0x54,0x72,0x17,0x21,0xe4,0x45,0x74,0x20,0x53,0x30,0x46,0x90,0xbf,0x2f,0xac,0x01,0xbd,0x40,0xa9,0xc5,0xbe,0xbd,0x9b,0x59,0x62,0x03,0x30,0x80,0xe3,0x8e,0x23,0x7b,0x2d,0x63,0x4f,0x30,0xe3,0xb8,0x56,0x87,0x57,0x43,0xdc,0x6a,0x3c,0x13,0xed,0x93,0xc9 +.byte 0x1a,0x1b,0xea,0x38,0x67,0x33,0x7f,0x11,0x5c,0x96,0x20,0x4d,0xf6,0x82,0x51,0x45,0xca,0x20,0xfd,0x59,0xef,0x4c,0xb4,0xb0,0xb2,0x0f,0xdb,0x4c,0x00,0x7a,0x18,0x58,0xb0,0xd3,0x65,0x73,0x42,0xe5,0x05,0x76,0xd7,0xa2,0x1e,0x9f,0x59,0xc0,0xd0,0x76,0x29,0x1b,0x12,0x29,0x9b,0xe4,0x7d,0x45,0x13,0xb4,0x57,0xf2,0x0b,0xd1,0xb5,0x60 +.byte 0x6d,0x15,0x0b,0xca,0x5e,0xe4,0x80,0xda,0x56,0x95,0x41,0x18,0x54,0xa7,0xad,0x40,0xe5,0xd7,0xa7,0x3e,0xf7,0x73,0x40,0x70,0xb3,0x23,0xdb,0x22,0x62,0xc7,0x44,0xfb,0x64,0x18,0x18,0x05,0x84,0x07,0x68,0x06,0x7f,0xb9,0xc3,0xf9,0x55,0xe2,0x0d,0x37,0x51,0x34,0xc3,0x55,0x3c,0x29,0x5d,0x1d,0x27,0x77,0xd3,0xe1,0x6a,0x60,0x9f,0x10 +.byte 0xef,0xb1,0x93,0xbf,0x2a,0xb7,0xe8,0x42,0x4d,0xfd,0xa9,0xa9,0x2f,0xb6,0x07,0x5b,0xe8,0xf7,0xd7,0x10,0x47,0x71,0x56,0xba,0x11,0x11,0x32,0xc4,0x22,0xf4,0x12,0x6f,0xc3,0xef,0x81,0xc5,0x82,0xb4,0x1b,0x99,0xbb,0x1a,0x63,0x6b,0x3a,0x70,0x4f,0xec,0x2c,0xf9,0xde,0x1a,0x2e,0x62,0x27,0x1c,0x81,0x21,0x30,0x08,0x30,0xf6,0xf5,0xc1 +.byte 0x6d,0x0b,0xeb,0x34,0xd9,0x3a,0xa2,0xa2,0xc6,0x17,0x60,0x85,0x65,0x43,0xd6,0x3d,0x71,0xac,0xc2,0xaf,0x2b,0x9e,0x62,0xf2,0x08,0x47,0x6f,0x42,0xa8,0x21,0xad,0x42,0x98,0xa0,0xef,0xdf,0xd8,0xda,0x10,0xad,0xf7,0xe5,0xf9,0x22,0x89,0x44,0xbf,0x86,0x86,0x2b,0x02,0xd1,0x9e,0x8f,0xb7,0x10,0x63,0xb1,0xcc,0x40,0x6b,0xa3,0x8e,0x09 +.byte 0xb8,0xe3,0x77,0x3c,0xde,0x36,0x7a,0xb7,0x78,0x4f,0x99,0x5d,0x9a,0x9e,0x19,0x2d,0xb5,0xd9,0x9c,0x95,0x1f,0xa1,0xcc,0x61,0x31,0x1c,0x96,0xe5,0xca,0xeb,0x26,0x34,0xa4,0x63,0x5c,0x7c,0x0f,0x23,0xd1,0xe1,0x09,0xf4,0xab,0xf6,0x73,0x2f,0x8a,0x62,0xf0,0xd3,0x8c,0x44,0xe5,0xe9,0x9d,0x58,0x71,0xfa,0xf5,0x39,0xa5,0x6f,0xf7,0x04 +.byte 0x43,0x0a,0x78,0x54,0xfb,0xa7,0x66,0x57,0x1f,0x61,0xd6,0xda,0xff,0x4f,0x32,0x9d,0x80,0x6b,0x77,0xed,0xda,0xaf,0xbc,0x9e,0xea,0x77,0x04,0xf3,0x47,0x96,0xd1,0x44,0x8e,0xca,0xfe,0xb0,0xa3,0xa6,0x1d,0x8d,0xa4,0xb5,0x8c,0x35,0x28,0xf3,0xaa,0xab,0x28,0x1e,0xc9,0x94,0x12,0x07,0xc6,0xea,0x23,0xf9,0x69,0xc3,0x14,0x27,0xcc,0x55 +.byte 0x27,0x0b,0x27,0x64,0x23,0x38,0x05,0xd9,0xb4,0xf7,0x00,0xf3,0x02,0xae,0xc8,0x5a,0xbd,0x2f,0x20,0xd5,0x45,0xa6,0x09,0x6f,0x1a,0x09,0xb7,0xe7,0x6f,0xf6,0xa6,0x6f,0xc7,0x03,0x4e,0xa3,0x72,0xb5,0xfc,0x17,0xcf,0x1e,0x64,0x8b,0xc4,0xa2,0xba,0x83,0x0e,0x2a,0x11,0xba,0x71,0xe0,0x1c,0x9f,0x70,0x6e,0xf4,0xd9,0x47,0x31,0xf7,0xaf +.byte 0xf7,0x1a,0xe7,0xc1,0xe9,0x66,0xa4,0x48,0xd4,0x25,0x8b,0xf7,0x6f,0x33,0x72,0xff,0x93,0x2e,0xcd,0xc7,0xae,0x3b,0x71,0x3f,0x84,0x7f,0xe6,0xb5,0x58,0x4f,0x95,0x34,0xe7,0x89,0x10,0xd3,0x2b,0x5c,0x30,0x9b,0xd3,0xef,0x98,0xf3,0x33,0x0e,0x6d,0x5f,0x7e,0xba,0x55,0x7a,0xb6,0xf3,0xb6,0xcd,0xa8,0x10,0x68,0x85,0x6f,0xea,0x54,0xc3 +.byte 0x66,0x51,0x5a,0xfc,0x11,0x83,0x9e,0x68,0x95,0xdb,0xec,0x74,0xf0,0x86,0x4a,0x90,0x24,0x66,0xf2,0x61,0x40,0x2e,0x3b,0x53,0xea,0xc1,0x3e,0x1c,0x69,0xaf,0x5f,0x04,0xb5,0xbd,0x3d,0x44,0x1c,0xc6,0x49,0x65,0xf6,0x78,0xfd,0x69,0x49,0x95,0x96,0xa1,0xa0,0xa9,0x78,0x1a,0xf6,0x0f,0xe9,0x52,0x93,0x9c,0x96,0x6c,0x5e,0x67,0x63,0x2d +.byte 0x18,0x22,0x2a,0xcc,0x7f,0x2f,0xd3,0x72,0x82,0x98,0xae,0xb0,0x2b,0xa6,0x96,0x41,0x25,0x47,0x3c,0x92,0xc5,0x0f,0x2c,0xd4,0x43,0x09,0x0b,0x94,0x73,0x73,0x29,0xc2,0x8a,0xa3,0xcc,0x8d,0xed,0x40,0x6d,0x40,0x18,0x7c,0x32,0x1e,0xe1,0x4e,0x26,0xa7,0xa4,0xd5,0xcb,0xfa,0x90,0xba,0xb2,0x04,0x1d,0x5d,0xbe,0x32,0x6c,0x71,0x09,0x51 +.byte 0xdb,0xe3,0xb0,0xe1,0x34,0x74,0xa3,0x2b,0xf2,0xcb,0x9e,0xc0,0xae,0x88,0x40,0x90,0xb6,0x22,0xc8,0xac,0xff,0x45,0xc6,0xfa,0xce,0x0f,0x03,0x9d,0xc0,0xb2,0x2e,0xdb,0x1e,0x6c,0xa5,0xbe,0xb5,0xb3,0xaa,0xd5,0x2d,0x06,0x4d,0x29,0xa3,0xbe,0x25,0x5f,0x21,0x42,0x8d,0x27,0xaa,0x6f,0x59,0x88,0x61,0x4d,0x72,0x9f,0x64,0xfc,0x07,0xaf +.byte 0xeb,0x02,0x5e,0xb9,0x1f,0xfe,0x1a,0x67,0x10,0x35,0xe9,0x9f,0x5f,0x9c,0x8d,0x4a,0xb3,0x10,0x99,0x8d,0x5b,0x9c,0x8b,0x8a,0x0c,0x02,0x8b,0x44,0x1a,0xaa,0xe7,0x14,0x05,0x3d,0x9e,0x62,0xfc,0x76,0x49,0x56,0x46,0xae,0xcc,0x0e,0x47,0x58,0x4d,0x94,0x33,0x4d,0x23,0x24,0x44,0x52,0x2e,0x18,0xf7,0x53,0x6b,0x24,0x67,0xb8,0x88,0x46 +.byte 0x70,0xc8,0xcb,0x60,0xac,0x70,0x85,0xdd,0x00,0xa1,0x5d,0xbb,0x94,0x07,0x0a,0xb6,0x1c,0x88,0x59,0xa7,0x88,0x7e,0x1e,0xc9,0x1d,0x7c,0xa0,0x1c,0xad,0xe4,0xa5,0x36,0xa5,0x35,0xe8,0xda,0x27,0x15,0xbc,0x7b,0x1e,0x8a,0x33,0x74,0x4b,0xc1,0xc7,0x9d,0xa9,0x21,0x98,0x02,0xe5,0xf4,0x8b,0x8e,0x2d,0x64,0x81,0xea,0xa6,0xbe,0xe2,0x05 +.byte 0x16,0xba,0xac,0x75,0x79,0xa4,0xc0,0xd3,0x9d,0xe0,0x25,0x63,0x22,0xb3,0x9c,0xee,0x04,0x8f,0x60,0xab,0x52,0x43,0x05,0x16,0xd4,0xb3,0x88,0xe8,0x68,0xc3,0x81,0x94,0xc4,0xee,0x13,0xaf,0xdd,0x36,0x23,0xe6,0x78,0xc9,0xf6,0x42,0xf0,0xf7,0x89,0x64,0x79,0x13,0xe8,0xed,0x50,0x03,0x16,0x78,0x6d,0xf4,0xdf,0x85,0x2e,0x4e,0x8f,0x2c +.byte 0x5b,0xfe,0x4c,0xf2,0x49,0xde,0xf2,0xa4,0x96,0xe0,0x8a,0x25,0xc8,0x6d,0x22,0xff,0xab,0xfc,0x18,0xe8,0x7f,0xd5,0xc1,0x7e,0x44,0x8e,0x21,0xb4,0xc8,0x79,0xc0,0x55,0xaa,0xb7,0x28,0xa1,0x3a,0xbd,0xc2,0x1d,0xf8,0x87,0xf9,0x35,0x30,0x25,0xb2,0xaa,0x8f,0x3c,0x0d,0x64,0xf2,0xd1,0xa0,0x51,0xbf,0x9b,0x9a,0x9a,0x9c,0x18,0x43,0xea +.byte 0xd2,0x54,0x50,0xe0,0xca,0x1a,0x29,0x16,0x9f,0x49,0x47,0x56,0x65,0x21,0x0f,0xb0,0x53,0x41,0xe3,0xec,0xe0,0x15,0xcb,0xd0,0x61,0x05,0x67,0xd6,0x02,0x1a,0x31,0x80,0xa4,0x9f,0xf5,0x9b,0x28,0xcd,0x43,0xd5,0x70,0x05,0x67,0xe8,0x76,0xb7,0x99,0x98,0x0a,0xd6,0x27,0xe9,0xfb,0x62,0xff,0x66,0x47,0xf7,0xbe,0x5e,0x35,0xa0,0x3b,0x56 +.byte 0x58,0x78,0x9b,0x9c,0x5b,0x9f,0xf5,0x6b,0x1a,0x6a,0xfd,0x8e,0xe3,0xd9,0xa2,0x8b,0x2e,0xef,0xc7,0xd3,0x74,0xb1,0xea,0x6a,0x03,0x8b,0xe2,0x78,0xbe,0xf1,0x75,0x7f,0x02,0x03,0xbc,0xd3,0x15,0x2c,0x87,0x01,0x95,0xa6,0x87,0x2d,0xf8,0x63,0xfe,0x33,0x8f,0xc5,0xc9,0x0a,0x06,0x79,0x93,0x46,0xd7,0x0b,0x61,0x06,0x68,0xae,0x9b,0x46 +.byte 0x6f,0x9e,0x1b,0x21,0x58,0xc1,0x72,0xa9,0x05,0xa7,0xaa,0x88,0xee,0xed,0x8d,0x7f,0x55,0x3b,0xb8,0xb8,0xf8,0x42,0x26,0x4a,0x78,0xe3,0x17,0xe8,0xac,0xb3,0xdb,0x9b,0x90,0x7d,0x8d,0x65,0x00,0x39,0x40,0xc2,0xe2,0x9c,0xc6,0x16,0x35,0x54,0x64,0x09,0xc8,0xc7,0x08,0x77,0x90,0x9d,0xb4,0xd4,0xe1,0x36,0xd4,0x5e,0x63,0xb0,0xba,0x81 +.byte 0x0c,0x4e,0x24,0x20,0xc0,0x7f,0xfc,0x02,0x3d,0x83,0x60,0x8a,0xf5,0xff,0x87,0x60,0x9c,0xd5,0xc0,0x94,0x64,0xe2,0x3f,0xeb,0x9a,0xe5,0xb6,0x50,0x13,0x36,0xf4,0x96,0x5d,0xf4,0xb5,0xab,0xa4,0x28,0x17,0x38,0x7f,0xca,0xf7,0x0c,0xcf,0xae,0xf8,0xef,0x41,0x6d,0x9c,0xa1,0x53,0x33,0xcb,0x8d,0x21,0xab,0x3a,0x8c,0x72,0x8d,0xf3,0xf2 +.byte 0x05,0x69,0xf5,0xe8,0x6b,0x5b,0x42,0x85,0xb1,0x2e,0x6f,0xf8,0x62,0x00,0x1c,0x48,0x6c,0x85,0x72,0x93,0x34,0x67,0x80,0xe7,0x2a,0xfe,0xcf,0x54,0xc6,0x94,0xf2,0x5a,0x48,0xab,0x40,0x52,0x66,0x7d,0x7a,0x75,0x68,0x77,0xfd,0xb2,0xdd,0xb1,0xdb,0x72,0x50,0x31,0x53,0x24,0xbd,0xb0,0x6e,0x1f,0xbd,0xa6,0x90,0x67,0x07,0x1d,0x31,0xf3 +.byte 0x8c,0x82,0xf7,0x53,0x85,0x54,0x64,0x7c,0x76,0x7b,0x5f,0xaa,0xe0,0xe0,0x36,0xa4,0x13,0xb3,0x0b,0x99,0x09,0xfe,0xed,0xbb,0x81,0x4b,0xb3,0x16,0x45,0x2e,0x3a,0xfe,0x60,0x9c,0xdc,0xcb,0x00,0x5a,0x41,0xc4,0x80,0x3c,0x9d,0x15,0x05,0xfa,0x5e,0x37,0x64,0x89,0x9c,0x2d,0xb8,0xf7,0xbc,0x35,0x8c,0x49,0xfe,0x0a,0x43,0x1a,0x59,0xaf +.byte 0x1e,0x50,0x08,0x0f,0x2d,0xb8,0x5d,0x63,0x7f,0x95,0x6a,0xe6,0xad,0x88,0xc3,0xac,0x05,0x14,0x44,0xb0,0x70,0x83,0x5f,0x94,0x45,0x3d,0xe5,0xbd,0xb8,0x92,0x28,0x20,0xd5,0xa0,0x83,0xd2,0xe2,0x41,0x71,0x27,0x29,0x1b,0x2a,0x3a,0x08,0xca,0x75,0xec,0x16,0x4a,0xcf,0x39,0xed,0xbe,0x2a,0x26,0x9b,0xa3,0x26,0xc6,0x89,0xf2,0xc6,0x8d +.byte 0x49,0x3a,0xfe,0xda,0x16,0x54,0x55,0x7e,0x7f,0x65,0x65,0xd2,0x16,0xdd,0xe2,0xa3,0x86,0x7a,0x69,0x82,0x99,0x58,0x45,0x16,0x4c,0x69,0xff,0x72,0xf2,0xbc,0xbb,0xdd,0xe1,0xb4,0x56,0xcf,0xc0,0x84,0xd6,0x2c,0xd8,0xce,0xf4,0x67,0xd8,0x1d,0xb7,0x77,0x6d,0x96,0xf4,0x28,0x7a,0x33,0x03,0x97,0x72,0x37,0xd9,0x35,0xcf,0x20,0x28,0xc2 +.byte 0xc4,0xea,0xf9,0x99,0x89,0xe0,0xcc,0x3d,0xec,0x2c,0xbf,0x06,0x78,0x91,0x1b,0x55,0x1b,0x51,0x9b,0xbe,0xf7,0x4a,0xf8,0x9f,0x46,0xab,0xee,0x5d,0x4e,0x29,0x36,0xf3,0xb9,0xa7,0x85,0x9b,0xf7,0xa1,0x9e,0x2a,0xbb,0xb3,0x0a,0x61,0xb5,0x0f,0x79,0xf4,0xe2,0xd2,0x2c,0x15,0xf7,0x4f,0xca,0xa9,0x46,0x25,0x1c,0xdc,0xfa,0x0f,0x9e,0xfa +.byte 0xf5,0xb8,0x54,0x7a,0xe3,0x98,0x3c,0x3b,0x85,0xf8,0xb3,0x7c,0x70,0x40,0x86,0x2a,0x66,0xd1,0x4d,0x83,0x38,0xc2,0x24,0x8e,0x30,0xc0,0x9e,0x54,0x4c,0x7a,0x62,0x9a,0x55,0x8e,0x11,0x02,0xef,0x30,0x08,0x5c,0xf3,0x57,0xa7,0xbe,0x32,0x04,0xab,0xb1,0x3a,0x51,0x6e,0xcd,0x6f,0xc1,0xd8,0xd0,0x7d,0x4f,0x1b,0xa9,0x1e,0x12,0x92,0x94 +.byte 0xd7,0x40,0xa9,0x99,0x70,0x06,0xcb,0x46,0xa5,0xe0,0x77,0xbe,0x6d,0x48,0xab,0x67,0x4e,0xa7,0x0e,0xfe,0x1f,0x53,0x24,0xbc,0x89,0xcb,0x70,0xac,0x05,0xa2,0xf4,0xa3,0x44,0xde,0xcb,0x18,0x95,0x78,0x70,0x0f,0x69,0xf0,0x5e,0xbd,0xe7,0xfc,0xd3,0x17,0x3e,0x18,0xb0,0x2f,0xa6,0xfe,0x82,0x81,0xe7,0x74,0x44,0xfb,0x43,0x5e,0xda,0xf4 +.byte 0xfb,0xfe,0x5c,0xb4,0x3c,0x1d,0xea,0x0d,0x2d,0xdb,0xee,0x1f,0xc5,0xbd,0xb2,0xa0,0x52,0x76,0x9e,0xad,0xfa,0x19,0x37,0xb0,0x15,0x53,0x82,0x25,0x86,0xd9,0xce,0x99,0x84,0x67,0x5f,0x57,0xb2,0x6f,0x99,0xa4,0x56,0xb5,0x01,0x4f,0xdf,0xa2,0xca,0x8c,0x23,0x51,0xd3,0xc7,0x72,0x9b,0x90,0x72,0x29,0x0c,0xca,0x86,0xff,0xc3,0xd9,0x9e +.byte 0x87,0xe4,0x8d,0xc6,0xac,0xba,0xfb,0x73,0xa9,0xcd,0x5d,0x16,0xfc,0x12,0xea,0x30,0xd5,0x7d,0x7b,0x16,0xa6,0x2c,0xeb,0x3c,0x3e,0x46,0x7c,0xee,0x03,0xd6,0x7a,0xe8,0x88,0x1c,0x17,0xa9,0x08,0xe9,0xd5,0x38,0x59,0x54,0x0b,0xb0,0x77,0x1b,0x76,0x09,0x53,0xca,0x38,0x12,0xd1,0xb5,0x2c,0xe3,0xd6,0xa0,0xca,0x9f,0x65,0x56,0xea,0x95 +.byte 0xab,0xc1,0xf4,0x98,0xaf,0x1a,0xe7,0x2b,0x1e,0x8d,0x75,0x43,0x43,0x9f,0x42,0x5c,0x2c,0xa5,0xd7,0x9a,0xcd,0xc2,0xab,0xd9,0x1f,0x1f,0xde,0x8a,0x3e,0xf8,0x0f,0x56,0x8a,0x01,0xde,0x47,0x41,0xd8,0xa0,0xc8,0x32,0x4d,0xa3,0x75,0x80,0x87,0xb1,0x1e,0x05,0x06,0x5e,0x2c,0x9a,0x7b,0xd3,0x22,0xe0,0x53,0x8f,0x4f,0x35,0x5f,0x46,0x3a +.byte 0xb2,0xfe,0x62,0x44,0x54,0x38,0xe0,0x03,0x5e,0xda,0xcb,0x86,0xdf,0xda,0x67,0x66,0x40,0x27,0x97,0xf0,0xc2,0xbd,0xce,0xce,0x37,0xeb,0x47,0xe2,0x56,0x7e,0x54,0xe9,0x51,0xda,0xec,0xd5,0xe6,0xc1,0x69,0x6e,0x4c,0x3d,0x92,0xdc,0xa0,0x51,0xe2,0x2b,0xb8,0x96,0xb6,0xce,0xdf,0x35,0xdb,0xd0,0xd4,0x42,0xe3,0x94,0x89,0x09,0x1b,0xb4 +.byte 0xe2,0x8f,0xfb,0x23,0x62,0x35,0x56,0xc7,0x94,0x40,0xd7,0x2d,0xdb,0x80,0xc9,0xbd,0x4d,0xe3,0x14,0x30,0x44,0x43,0xad,0xeb,0x3d,0x89,0xe9,0x61,0xd7,0x80,0x15,0x59,0xcd,0xda,0x38,0x11,0x3b,0x84,0x14,0x85,0xef,0x55,0xf2,0x01,0x2c,0xed,0x74,0xf5,0x71,0x75,0x0c,0x52,0x0c,0x41,0x86,0xbe,0x84,0xc5,0x89,0x8b,0xa5,0x6d,0xc3,0xfa +.byte 0x2b,0xe5,0xe7,0xe8,0xdd,0xf9,0xe8,0x27,0x08,0x5d,0xdf,0x61,0xdc,0xb2,0xe0,0x8c,0xe8,0xda,0xa8,0x68,0x22,0x51,0x6b,0xdf,0xd0,0x92,0x87,0x6a,0x43,0xff,0xd1,0x9d,0x9a,0x4c,0x03,0xdf,0x3e,0xc1,0x31,0x33,0x6e,0x2a,0x55,0xc1,0x58,0x59,0x69,0x66,0x05,0xd1,0xa7,0xa1,0x3b,0x98,0x1d,0x44,0x74,0xc7,0x7e,0xc0,0x07,0xd9,0x9c,0x87 +.byte 0x5f,0xc3,0x44,0x25,0x7b,0x96,0xbc,0x20,0x5d,0x14,0x08,0x34,0xe9,0xad,0x34,0xa3,0xc3,0x95,0x1a,0xc1,0xd1,0x37,0x43,0x49,0x66,0xff,0x39,0x70,0x27,0xa0,0x2b,0x39,0x9d,0x1b,0x78,0x52,0x55,0x77,0x30,0xe8,0x72,0x65,0x8a,0xc8,0xa4,0xe6,0xb7,0xd6,0x66,0x82,0xa7,0x1d,0xde,0x3e,0xc2,0x23,0x5a,0x8b,0x51,0xe4,0x44,0x03,0xf3,0x89 +.byte 0x10,0xb0,0x9a,0x09,0x5d,0xe3,0xe9,0x4a,0x0b,0xe3,0x86,0x58,0xf8,0xe3,0x1a,0x3f,0x7f,0x42,0xa5,0xd7,0xb0,0x24,0xb7,0xbc,0x1d,0x40,0xe7,0x2f,0x42,0x8c,0xa8,0x3c,0x33,0xee,0x9f,0xaf,0xd1,0x51,0x8e,0x34,0x82,0xc5,0x16,0xef,0xb1,0xa6,0xa8,0x0e,0xae,0xe6,0xc3,0x2f,0xb3,0x06,0xd4,0x4c,0xec,0xee,0x9e,0xff,0x88,0x82,0x4b,0xb8 +.byte 0xc5,0xef,0x94,0xe2,0x68,0x48,0x23,0xa2,0xc8,0xe4,0xdb,0x33,0xf9,0xee,0x73,0xc2,0xe6,0xa1,0x64,0xf9,0xf6,0xab,0x5a,0xdc,0xa5,0xb3,0xd8,0xae,0xf4,0x1f,0x47,0xfe,0xa0,0xee,0xf5,0xee,0x41,0x30,0xa6,0xbe,0x34,0x2c,0x1a,0x24,0x8a,0x80,0xb1,0x79,0x7e,0x2c,0xc0,0x65,0x68,0x46,0xae,0x0a,0x01,0x77,0xce,0xa2,0x5f,0xc3,0x00,0x8f +.byte 0xd4,0x0f,0xbe,0xbf,0x81,0x20,0x4e,0xb8,0x21,0x5f,0xfa,0xb2,0xf2,0x02,0x83,0x41,0xa8,0xf1,0xe8,0x2c,0x7e,0x0e,0xe6,0xf0,0x6e,0xd5,0x7b,0xcb,0x4e,0xed,0x06,0xc4,0x18,0xfb,0x0e,0x0d,0x8e,0x22,0x8a,0x40,0x4d,0x66,0xa5,0x0c,0x74,0xf3,0x9e,0xd9,0x90,0xf8,0x71,0xe4,0x92,0x05,0x3d,0x2d,0xa0,0xed,0x42,0x88,0x18,0x9a,0xc7,0xe4 +.byte 0x41,0x5d,0xde,0x44,0x2e,0x26,0x30,0xfe,0x51,0xa8,0x91,0xa3,0xa6,0xfd,0x3e,0x04,0x7f,0x3a,0xa9,0x1c,0x21,0x98,0xab,0xaa,0x39,0x9d,0xe4,0x51,0x75,0xeb,0x90,0x6b,0xab,0x11,0x89,0xa9,0x22,0xa8,0xc5,0x92,0x16,0x51,0xe1,0x77,0x09,0x53,0x7f,0xb6,0x80,0x4b,0xf5,0xf5,0xa2,0x0e,0x36,0x24,0x7f,0xe7,0xcc,0x67,0xfb,0x2c,0x6e,0xc2 +.byte 0x16,0x47,0x41,0xc2,0x77,0xf4,0xcf,0x49,0x37,0x17,0x67,0x34,0x14,0x92,0x7d,0x0f,0x14,0xe8,0x4b,0x4c,0xc3,0xbb,0x78,0xf7,0xa0,0x59,0xbe,0x06,0x10,0x38,0xe6,0x2c,0x08,0x15,0xba,0xc6,0x49,0x38,0x9a,0x91,0x2b,0x4d,0x82,0x42,0x0e,0xe4,0x02,0xef,0x2b,0xa2,0x06,0xcc,0x3a,0x3c,0xb9,0xc5,0xb5,0x71,0x1e,0x17,0x5d,0x65,0x35,0x91 +.byte 0x89,0x54,0x97,0xa8,0x7b,0x02,0x24,0xf9,0xdb,0xb5,0x52,0xf7,0xd0,0xa0,0x42,0x48,0x01,0xf4,0x47,0x7c,0x84,0x7c,0x8a,0xb4,0xf4,0x30,0xec,0xb9,0x21,0x44,0x87,0xb2,0x96,0xa4,0x3b,0x0d,0x93,0x26,0x09,0xc8,0xfa,0x28,0x6f,0x09,0xb7,0x03,0x85,0x66,0x21,0x2d,0xf1,0xaa,0x3f,0x0b,0x59,0x15,0xfe,0x8b,0x2b,0xe0,0x81,0x38,0x63,0x70 +.byte 0x09,0x37,0x38,0x62,0x04,0x8e,0x3f,0x23,0x65,0xf8,0xf7,0xc0,0x30,0xb8,0x04,0xb4,0x17,0xd7,0x21,0xcc,0x8b,0x31,0xd3,0x7b,0x11,0xea,0xc5,0x51,0x01,0x93,0x5f,0xe3,0xf3,0x1e,0x0d,0x41,0x52,0x2a,0xfd,0x27,0x02,0x00,0x58,0x0d,0x1f,0x16,0xd7,0x50,0x09,0xea,0x3f,0x9f,0x72,0xae,0x7a,0x79,0x4b,0x69,0x61,0xfc,0xac,0x5c,0x4d,0x6a +.byte 0x65,0x5d,0xa5,0x67,0x76,0xe4,0x24,0x3f,0xa0,0x6f,0xf6,0x60,0xd2,0x70,0x8e,0x2e,0xbe,0xf9,0x8b,0xab,0x22,0xc8,0x9c,0x5b,0x26,0xc5,0x75,0xeb,0x96,0xa2,0x4f,0xdf,0x6c,0x05,0x9a,0x15,0xef,0xbf,0x3e,0x35,0x6d,0x8d,0x48,0xa4,0x33,0xc2,0xe8,0x3b,0x89,0xe4,0x0c,0xb2,0x9a,0xc6,0x89,0x52,0xba,0xc7,0x2a,0xa5,0xfb,0xe5,0xde,0x06 +.byte 0xbd,0xc3,0x4f,0xe8,0xa9,0x9d,0x36,0xa5,0xcc,0x90,0xcd,0x68,0x49,0x52,0x6e,0x9a,0x85,0xd4,0x1b,0xe5,0x3f,0x54,0xc8,0xb4,0x7a,0x76,0xbf,0xa8,0xf4,0x25,0x05,0xeb,0x43,0x0c,0x2b,0x1c,0x59,0x5b,0x51,0x7f,0xd5,0x13,0x54,0x37,0x44,0x37,0x2f,0x79,0x1c,0x1f,0x18,0x57,0x60,0xab,0xf7,0xcc,0x5d,0xd5,0xdd,0x69,0xab,0x7f,0xc7,0x9d +.byte 0x7f,0xd7,0x6a,0xdc,0x34,0x3d,0x6e,0x2c,0x1e,0xb8,0x74,0xef,0xec,0x14,0x83,0x98,0x20,0x85,0x8a,0x95,0x93,0x26,0xed,0xbb,0x7d,0xfe,0x63,0xaa,0x20,0xbb,0x40,0x7b,0x35,0x1d,0xe5,0x64,0xc0,0x64,0x83,0x90,0x59,0xb4,0xae,0xf7,0xfe,0x14,0xb2,0xaa,0x72,0xf7,0x34,0x61,0xe0,0x61,0x06,0xb3,0xdc,0x09,0x5f,0xe1,0x57,0x65,0x83,0x8a +.byte 0x6d,0x46,0x54,0x8f,0xbf,0x38,0x12,0xf5,0xa3,0xfc,0x7b,0x90,0x4f,0x30,0xed,0xc1,0xab,0xb2,0x6e,0xee,0x7c,0x5e,0x35,0x70,0x80,0xb0,0xae,0x93,0xdc,0x4e,0x8f,0x6c,0x37,0xef,0xc9,0x4c,0x3a,0x41,0x14,0x91,0x99,0x0d,0x48,0xbe,0x5e,0x9b,0xc5,0xa6,0x4d,0x07,0x0d,0xd5,0xe6,0x5d,0x26,0x6b,0xa0,0xf3,0xb2,0x28,0x15,0x57,0xdb,0x7b +.byte 0x8e,0x6b,0x88,0xc3,0x81,0xb6,0x16,0xd1,0x3c,0xd0,0x2d,0x5a,0x23,0x35,0x8e,0xb0,0x8b,0x5c,0x99,0x6a,0x7a,0x55,0xb1,0xf9,0x45,0x97,0x94,0x05,0x6e,0x58,0xd4,0x53,0x8d,0x73,0x43,0x02,0x68,0xdf,0x7c,0x37,0x1a,0x6b,0x71,0x04,0xa0,0x31,0x77,0xbc,0xe0,0x16,0x5a,0x2a,0x9a,0xb2,0x40,0xe4,0xbb,0xd0,0xfd,0x35,0xcb,0x7f,0xf4,0x13 +.byte 0x0f,0xb5,0x93,0x9a,0x7d,0x50,0xf8,0xfe,0x56,0x34,0x83,0x20,0xce,0x3d,0x02,0x2e,0x0b,0x95,0x76,0x88,0x47,0x8c,0x75,0x51,0x14,0x52,0x49,0xbc,0xed,0x66,0x0e,0x81,0x65,0x5e,0x64,0xfb,0x45,0x59,0x3d,0x2b,0xd6,0x3a,0xc6,0xfd,0x50,0xe4,0xeb,0x0c,0x68,0x38,0x0f,0xdd,0xa2,0xdc,0xaa,0x26,0xf5,0x7b,0x40,0x6a,0x90,0xf8,0x08,0x2c +.byte 0xe8,0x8f,0x8e,0xc1,0xf2,0x6b,0x87,0xeb,0x7a,0x02,0x9e,0x26,0x3e,0x6b,0xb9,0x71,0x2e,0x6f,0x26,0x20,0xa9,0xc0,0x7c,0xe5,0x6c,0x6b,0xd4,0xc4,0x7b,0x54,0x8e,0x4a,0x7a,0xef,0xfc,0x03,0x02,0x1d,0x6a,0x16,0x99,0x35,0x12,0x49,0xba,0x86,0x37,0x7a,0xb0,0x8d,0x58,0x6f,0x1c,0xba,0xa9,0x5d,0x93,0xdf,0x98,0x50,0x7e,0xea,0x0a,0x88 +.byte 0x1a,0xd4,0x63,0x91,0x23,0x43,0x43,0x17,0x2e,0xe6,0x04,0x95,0x96,0xa8,0x2b,0xb4,0x9e,0x91,0x6c,0x13,0x52,0x8c,0xbf,0x7d,0x50,0xfc,0x79,0xef,0xa1,0x3e,0x90,0xba,0xac,0xd1,0x0d,0xb0,0x4d,0xd5,0x7a,0xc7,0xbd,0x82,0xb7,0x03,0x9c,0x0b,0xbc,0xa7,0x3c,0x05,0x8f,0xbd,0x0d,0x7f,0x80,0xeb,0xe9,0xbd,0x8f,0xdc,0xcd,0x86,0x23,0x26 +.byte 0xb0,0xa4,0xdc,0x63,0xef,0xad,0x61,0x53,0x7e,0x23,0x34,0x0d,0xd9,0x75,0x7c,0xa7,0x57,0xba,0x28,0x0c,0x82,0x7f,0x68,0xe5,0x24,0xdc,0x23,0x99,0xcd,0x6f,0x03,0x59,0x4f,0x35,0x47,0xc4,0x11,0xc0,0x0c,0x2b,0x16,0x94,0xb8,0x28,0xf2,0x0a,0x91,0x2e,0x1c,0xde,0x75,0x50,0x52,0x00,0x0a,0x92,0x80,0xca,0x39,0x3a,0xdf,0x16,0xb7,0xe2 +.byte 0xbd,0x98,0x7b,0x70,0x48,0x85,0x6d,0x48,0xa0,0x1b,0x0a,0xbb,0xa8,0xb6,0xca,0x9c,0x4e,0xda,0x0a,0x17,0x0b,0x30,0xf5,0xa2,0x9b,0x5a,0x89,0xf4,0x53,0x89,0x38,0x34,0x2b,0x7d,0x14,0x04,0x44,0xa3,0x8f,0x70,0x29,0xa5,0x3e,0xdd,0x5a,0x61,0xa1,0x04,0xac,0xd8,0xd3,0xec,0x42,0xc4,0xd9,0x2c,0x13,0x80,0xf8,0xc9,0xec,0x54,0xa7,0xa0 +.byte 0xe6,0x37,0x04,0x38,0x5f,0x1e,0x0b,0xfb,0x38,0x06,0xb9,0xe2,0x05,0x12,0x12,0xa2,0x28,0xff,0x12,0xae,0x44,0xd8,0x0d,0x2c,0x5a,0x8f,0xfb,0x1d,0x98,0x69,0x85,0x69,0x99,0xc0,0x63,0xc5,0x88,0xa7,0x2d,0x56,0x76,0x32,0x23,0x4c,0xf7,0x29,0xd6,0x3e,0x45,0xfa,0xd7,0x61,0xf4,0x9a,0xa6,0x9e,0x4a,0xe7,0xe7,0xf9,0xbf,0x1f,0x09,0x82 +.byte 0xbe,0x36,0xa0,0xdd,0x91,0x47,0x3b,0xbc,0x52,0xf2,0xc2,0x04,0x96,0x85,0xb6,0x93,0xac,0x99,0x94,0xbe,0xfd,0xe6,0x53,0x9f,0x75,0xab,0x38,0xdd,0x81,0xc0,0x79,0x25,0xcd,0x73,0x72,0x5b,0x4d,0xc0,0xba,0xa9,0x18,0xaa,0x76,0x51,0x15,0xef,0xb9,0x22,0xdd,0x5f,0x22,0x62,0x6c,0x36,0xf6,0xc0,0x72,0x34,0x01,0x7a,0xaf,0xe2,0x87,0x1b +.byte 0x5f,0x33,0x9c,0xd5,0xe2,0x81,0x03,0xbe,0x4e,0xac,0xcc,0x17,0xc5,0xc6,0xf8,0x0f,0x24,0xe0,0x26,0x56,0x8a,0x20,0x2e,0xe4,0x05,0xc8,0x0f,0x89,0x24,0x0e,0xd4,0xb7,0x07,0xd1,0x99,0x8c,0x55,0xfd,0x75,0xc1,0xdb,0xaa,0xd1,0xd2,0xa6,0xf2,0xf0,0x3c,0xae,0x62,0x0e,0x1f,0xaa,0xc9,0xa5,0x16,0x09,0x2c,0xc0,0x61,0x55,0x72,0x70,0x63 +.byte 0x22,0xb6,0x41,0xa5,0x08,0x34,0x6a,0x1b,0xfc,0x42,0x81,0xe7,0x25,0x98,0xcf,0xba,0x18,0xb0,0x36,0x90,0x72,0x65,0x75,0xf3,0x57,0x68,0xd0,0x86,0xe4,0xaf,0x33,0xb6,0x2b,0xef,0x96,0x97,0x17,0x42,0x6b,0x8e,0x19,0xaa,0x4b,0x9d,0xc7,0x73,0x34,0x5f,0x41,0x24,0x12,0xfb,0x66,0xa2,0x1e,0x91,0x41,0xc2,0x78,0x08,0x66,0xc4,0xb2,0x86 +.byte 0x67,0x70,0xe6,0x96,0x76,0x8d,0xa4,0x69,0x6f,0xe5,0x35,0x8b,0x20,0x3d,0x6a,0xcb,0x65,0x7b,0x82,0x7b,0xf6,0x2d,0xd8,0xd0,0xda,0x69,0x8b,0xcd,0xdf,0x15,0xf6,0x3a,0x2c,0xfe,0xc7,0x84,0x20,0x11,0xcc,0x18,0x4f,0xc7,0x2e,0x1c,0x46,0x41,0x6b,0x91,0x79,0xa0,0xbb,0xf4,0x48,0xd7,0x0c,0x9a,0x88,0x01,0xda,0xa1,0xd1,0x8f,0x27,0x49 +.byte 0x9d,0xa0,0x3f,0x5a,0xc2,0xf7,0x26,0x9b,0xe5,0xff,0xa4,0xcb,0x86,0x32,0xb3,0x3c,0xd5,0xe5,0x7c,0xbb,0x5e,0xfe,0x3d,0xcf,0x60,0x1c,0x16,0x8e,0x0c,0xc4,0xa9,0xf2,0xb2,0x42,0x1d,0x13,0xb0,0xa8,0xff,0x90,0xbc,0xd9,0x9a,0x6d,0x78,0x7a,0x46,0x1a,0xa8,0x35,0x4e,0xa4,0x79,0xd5,0xb4,0x36,0x47,0x62,0x3c,0x0e,0x23,0x56,0xca,0xa2 +.byte 0x60,0xe6,0xca,0xf6,0xc3,0xd6,0x7c,0x5d,0x54,0x9c,0x0c,0xfa,0x9a,0x0f,0x3a,0x8c,0x64,0x52,0xdb,0x62,0x5e,0x93,0x82,0xef,0x9e,0x8d,0x30,0xa5,0xe7,0x3d,0x52,0x11,0xd4,0x93,0xb1,0x77,0x8f,0xee,0x54,0x9c,0x80,0x47,0xa9,0x21,0xa8,0xf7,0x16,0x4b,0xbb,0xab,0x75,0x52,0xed,0x0c,0x85,0xf8,0x04,0xf4,0x80,0x08,0x4a,0xb5,0x2d,0x2d +.byte 0xd8,0x98,0x57,0x24,0xd5,0xc8,0x77,0xa0,0xd8,0xb5,0xb1,0x83,0x92,0xb4,0xc7,0x42,0x36,0xd1,0xa5,0xd6,0xbd,0x89,0xc6,0x76,0x31,0x92,0x31,0x67,0x2c,0xa4,0xb2,0x2b,0xcf,0x94,0x20,0x6a,0x17,0x63,0xb9,0x76,0xac,0x9c,0x1c,0x95,0x3e,0x57,0xf8,0x87,0x0d,0xef,0x36,0xcd,0x87,0xd1,0x58,0x2c,0x9a,0x5e,0x54,0x0e,0xac,0x97,0xbd,0x15 +.byte 0xc4,0xdb,0xea,0xd3,0x21,0x05,0x2d,0x78,0xce,0x4c,0x60,0xf3,0xf8,0xeb,0xd9,0x19,0x89,0xb0,0x83,0xc0,0xe4,0x42,0x08,0x5c,0x1a,0x1c,0x53,0xf3,0x1e,0x5a,0x28,0x92,0x0d,0x32,0xbe,0x4a,0x9a,0x70,0x78,0x93,0xc1,0x66,0x81,0xda,0xe7,0x3d,0x05,0xc5,0xaa,0xdc,0x51,0x6b,0xaf,0x67,0x4d,0x18,0xfe,0x29,0xe0,0xfa,0x5c,0xe5,0x9a,0x18 +.byte 0x7f,0x8f,0xaa,0x21,0xa5,0xd0,0x8b,0x62,0x32,0x6b,0x93,0x02,0x19,0x62,0xd3,0xd6,0x74,0xea,0x83,0xdb,0x6c,0x57,0xe3,0x1f,0x1f,0x90,0xd0,0x22,0xf7,0x9a,0x4a,0x14,0xf4,0x8a,0xb3,0x86,0xa5,0x4c,0x1e,0xdf,0x49,0xa5,0x78,0x30,0x5e,0xf0,0x9a,0x69,0x0d,0xaa,0xe9,0x47,0x01,0xae,0x51,0xcf,0x32,0x4c,0xec,0x03,0x08,0xe7,0xcb,0x35 +.byte 0x59,0xd2,0x48,0xd4,0xfa,0x6a,0x45,0x6b,0x66,0x1f,0xb8,0x1e,0x45,0x85,0xef,0x14,0x25,0x34,0x48,0x50,0x59,0xf3,0x76,0x09,0x32,0xf5,0xe4,0xa8,0x98,0xb0,0x9a,0x70,0xec,0x0a,0x17,0x87,0xcf,0x6d,0x96,0x7d,0x50,0x5e,0x3a,0xff,0x57,0xa7,0xaf,0x04,0x0d,0xdc,0xcc,0xad,0xe3,0x09,0xd3,0x92,0xab,0xd8,0x3a,0x61,0x1f,0x9c,0xc4,0x36 +.byte 0x3b,0xf3,0xf6,0x87,0x43,0xea,0xc8,0xff,0x29,0x19,0x9e,0x87,0x44,0xc7,0xe5,0x5c,0x43,0x30,0x9a,0xb2,0xd8,0x47,0x4a,0x87,0xcc,0xc7,0x8e,0x99,0x32,0xdd,0x3c,0x37,0xda,0xa0,0x39,0x04,0x55,0xca,0xcf,0x2f,0xce,0x8b,0x22,0x35,0x2c,0x29,0x89,0xef,0x5c,0x05,0x82,0x55,0xf3,0x8d,0x64,0x7f,0x69,0xf7,0x3d,0x43,0x27,0xf3,0x4c,0xd7 +.byte 0x43,0x89,0x47,0xd5,0x0b,0x01,0x1b,0x17,0x6c,0x7e,0x63,0x18,0x87,0x8b,0x8f,0x20,0x0d,0xa4,0x1e,0xa5,0x3b,0xf1,0x5c,0xe5,0xc8,0x23,0xd4,0xee,0x79,0x3e,0xd1,0xbc,0x83,0x30,0x03,0x64,0x80,0x7e,0xda,0x13,0x7c,0x52,0x88,0xc1,0x7c,0xa7,0x8a,0x5d,0x8d,0x7b,0x57,0x4e,0x59,0x97,0x83,0x52,0x03,0x04,0x6b,0xd2,0xf3,0xff,0x1c,0x4e +.byte 0x3b,0xae,0x70,0x61,0x3b,0x8b,0xaf,0x56,0x3d,0x28,0x73,0x24,0x39,0x4b,0xb8,0x6e,0x89,0x28,0xe6,0xc8,0x5c,0xe9,0xf8,0xec,0x8f,0xf7,0x75,0x1a,0x13,0xc1,0x8e,0x53,0x4e,0xe5,0xef,0x37,0xce,0xa1,0x54,0xca,0xcc,0xf5,0x01,0x29,0x2a,0x8f,0x00,0x1c,0xde,0xcd,0x5e,0x24,0x0b,0xa5,0x94,0x0c,0x8a,0xab,0x54,0x1e,0x80,0x2a,0x0d,0x84 +.byte 0x38,0x4c,0x17,0xea,0x84,0x07,0x9c,0xbd,0x85,0xd8,0x1b,0x57,0x6a,0xde,0xb3,0x86,0xa3,0xf8,0x6d,0x03,0x3e,0xf1,0x37,0xae,0x7d,0x02,0x33,0xc5,0x7b,0xf6,0x64,0xdb,0x3e,0xb0,0x48,0xda,0x49,0xec,0x89,0xb4,0x83,0xff,0xe1,0x6f,0x9a,0x7e,0x0a,0xda,0x6e,0xec,0x70,0x0b,0x51,0xac,0x82,0xac,0xb8,0xce,0x16,0xe7,0x47,0xab,0xe8,0xc7 +.byte 0x56,0xd1,0xab,0x73,0x72,0x5c,0xe7,0x9e,0xb8,0x77,0xa7,0xc1,0x47,0x9c,0x4e,0x16,0x68,0xce,0x21,0x23,0x2d,0x6c,0xcf,0x79,0xd6,0xd4,0xdf,0x74,0x30,0xb8,0x0f,0x60,0xea,0xbf,0x39,0x77,0x45,0xdc,0xaf,0x25,0xbd,0xc5,0x8d,0x0b,0x44,0x21,0xc1,0xc1,0x2e,0x54,0x2a,0x32,0x6c,0xea,0x51,0xe0,0x7d,0xa8,0x09,0x94,0x2f,0x4e,0xfe,0x27 +.byte 0xe8,0x63,0xfb,0x71,0xca,0x01,0x7d,0xc9,0x70,0xd8,0xe4,0x82,0xbf,0x3f,0xea,0x64,0x5e,0xa9,0x84,0x1d,0x2c,0xfd,0x8a,0x7d,0x33,0x73,0x5c,0x82,0xbe,0x9e,0x46,0xfc,0x39,0x5e,0x38,0x2a,0x20,0xd9,0xa9,0x20,0x46,0x23,0xc1,0x8b,0x0a,0x9c,0x42,0xb6,0x50,0x9f,0xc8,0x7d,0x4a,0x85,0x98,0xed,0x92,0x13,0xd3,0xd6,0xe6,0x6d,0x50,0x6e +.byte 0x93,0x63,0x41,0xa3,0x63,0x97,0x52,0xe3,0xaf,0x09,0xe1,0x40,0x12,0x41,0xed,0xb3,0xc5,0xb8,0x9f,0xc1,0xf2,0xd2,0xe6,0x16,0x94,0x97,0xdb,0xae,0xdb,0xd4,0x1f,0x5a,0x2f,0xf1,0xb1,0x22,0xf6,0x60,0xa4,0x0e,0xd8,0x2f,0xf7,0xf7,0x3f,0x6c,0x7d,0x73,0xe3,0x1d,0x99,0x04,0x7f,0x4f,0x70,0x2a,0x8c,0x43,0x80,0xa3,0xd0,0x25,0x75,0xd8 +.byte 0xb6,0xc8,0x90,0xa2,0x26,0xee,0xba,0xc5,0x1a,0xdc,0x1f,0x81,0x65,0x54,0xc6,0x57,0x6e,0xa2,0x03,0x32,0xf5,0x14,0xb2,0xdd,0x4d,0x21,0xaa,0xb9,0x78,0x4f,0x76,0xab,0xbe,0xfe,0x5d,0xc6,0xaf,0xed,0x6f,0xf9,0xaa,0x31,0x21,0x08,0xa4,0x6e,0xfb,0x78,0xdc,0xed,0x0c,0x05,0xff,0x1e,0x60,0x38,0x60,0x94,0xa9,0x92,0xa7,0x07,0x6e,0x6f +.byte 0x6d,0x89,0x8a,0x73,0xfb,0xaf,0x01,0x34,0x7d,0x7d,0x33,0x76,0xff,0x1f,0x6b,0x79,0x5e,0xff,0x50,0x14,0x80,0x7d,0x55,0x0e,0x2d,0xc3,0x77,0x85,0x30,0x20,0xf6,0xc8,0xc7,0xb7,0x73,0x1b,0xd1,0x87,0x69,0x44,0xeb,0x02,0x5e,0x45,0x66,0x6f,0x28,0x00,0x1f,0xf8,0x58,0x93,0xe5,0x21,0xbc,0x19,0x8d,0x72,0x19,0xaa,0x9a,0xbb,0xc6,0x47 +.byte 0xe6,0x0b,0xe4,0x76,0x13,0xc7,0xc4,0x1b,0x9d,0x85,0xba,0x17,0xb6,0x30,0x2a,0xdb,0x7c,0x36,0xd7,0xd8,0x8b,0x9c,0x99,0x92,0x64,0x03,0x4f,0xd4,0x1f,0x04,0x2e,0x45,0x34,0x55,0x92,0x99,0x77,0xb8,0x45,0xce,0x59,0x22,0x3c,0x6e,0xe5,0x18,0xb0,0x83,0x42,0x42,0x75,0x1c,0x34,0x0f,0x2e,0x59,0x06,0x94,0x17,0xea,0xc3,0xdb,0x0b,0x2f +.byte 0x44,0x97,0x54,0xe8,0x76,0xd3,0x25,0x24,0xe9,0x21,0x4f,0xd7,0x01,0x7d,0xbe,0x90,0x8a,0x0a,0x7d,0x4e,0x91,0x5f,0x4c,0x32,0x83,0x42,0x55,0x95,0x3c,0x7a,0x3e,0x46,0x8a,0x5d,0x0c,0x05,0xcd,0x0b,0xf6,0x3e,0x4d,0xf3,0x55,0xea,0x42,0x3e,0x19,0x0e,0xda,0xd4,0x22,0x88,0xe2,0x29,0x06,0x9e,0xea,0x1c,0x27,0x96,0x7f,0x3a,0x8a,0x28 +.byte 0x2f,0x7d,0xa2,0x65,0x37,0xae,0xb6,0x6a,0x59,0x41,0x19,0x73,0x91,0x64,0x77,0x4e,0x5a,0x1a,0x85,0x9f,0xc5,0xb0,0x85,0xc1,0x96,0x47,0x69,0x9c,0x36,0x70,0x36,0xa3,0x2e,0x1a,0x7d,0x11,0x59,0x55,0xec,0x4c,0x49,0xa1,0x86,0x3c,0x3d,0x24,0xb8,0x7a,0x84,0xca,0x4c,0x3f,0x7e,0x81,0x95,0x39,0x41,0xfe,0xc4,0x74,0xe5,0x89,0x7e,0xdc +.byte 0x86,0xd2,0xdb,0x8b,0xb8,0xa2,0xbb,0x15,0x64,0x89,0xf9,0x00,0x7d,0x56,0xec,0x8b,0xc8,0x05,0xcd,0x76,0x6c,0xcb,0xaf,0x7e,0xd2,0xdd,0x67,0xb3,0x99,0x16,0x63,0xf2,0x6d,0x49,0x7d,0xeb,0x67,0x24,0x98,0xf1,0x28,0xa3,0xb2,0x14,0xfc,0x95,0xf6,0x55,0xa0,0xb5,0x8c,0x26,0x2f,0xc6,0x08,0x49,0x57,0x4c,0x20,0xbc,0x48,0xab,0x24,0xef +.byte 0xe9,0xab,0x6b,0x77,0x4d,0x3b,0x61,0x84,0x68,0x67,0x72,0xc2,0xcf,0xab,0x8e,0xac,0x39,0xec,0x43,0x03,0xbb,0x4f,0x32,0x7d,0x7d,0x51,0x69,0x30,0xee,0x4f,0xd0,0xb9,0xa5,0x22,0xdd,0x47,0x06,0xad,0xac,0x62,0x20,0xff,0x7b,0x8c,0x90,0x91,0xb3,0xd8,0x89,0xd3,0xea,0x81,0xdc,0xca,0x31,0xc3,0x65,0xca,0x4c,0x50,0x0a,0x85,0xf7,0xaf +.byte 0xe3,0x67,0x57,0x53,0x1d,0x4e,0x42,0x17,0x2d,0x14,0x80,0x29,0x09,0x2b,0x48,0x45,0x43,0xb9,0xad,0x1f,0xb7,0x2d,0xab,0xfa,0x6a,0x1b,0x3c,0x7d,0x76,0xd7,0x36,0x20,0xb0,0xd3,0xc0,0x5e,0xc7,0x20,0x06,0x0c,0xa9,0x6a,0xb2,0x67,0xad,0x91,0x49,0xfc,0x4d,0xb2,0x15,0x61,0x61,0xfa,0x33,0x6c,0x94,0x92,0x58,0xef,0x46,0x82,0x9c,0x04 +.byte 0x52,0x21,0x28,0x08,0xb4,0xa9,0xd4,0x2e,0xd9,0x8c,0x93,0xd0,0xd8,0x4f,0x33,0x1d,0x0b,0x7e,0x07,0x12,0x40,0x64,0x3d,0xa2,0x8f,0xa3,0x96,0x45,0x0e,0xfc,0x9b,0x55,0x5f,0x3c,0xa2,0x57,0x3e,0x51,0x40,0x69,0xdc,0x7a,0x51,0xd2,0x3b,0x79,0x2f,0xd2,0x01,0x18,0xbf,0xd5,0xd2,0xd1,0x0e,0x08,0xcf,0xac,0x07,0x4d,0xd1,0x92,0xc7,0xca +.byte 0x92,0x75,0x0b,0x80,0x29,0xf1,0x46,0x24,0xba,0x47,0x6b,0x4a,0x64,0xfb,0x31,0x69,0xe9,0x40,0x0d,0x69,0x50,0xd0,0xdf,0xf8,0xcb,0x6a,0xe8,0xd4,0xc2,0xbd,0x0b,0x23,0x00,0xe0,0x29,0x0a,0x0a,0x8e,0x19,0xec,0xa9,0x14,0xe4,0x5d,0x4c,0x30,0xc9,0x85,0x42,0xd6,0x9f,0x83,0x8f,0x2a,0x5b,0x22,0x37,0xe4,0x71,0x3b,0x19,0x86,0xd4,0xda +.byte 0xb5,0x81,0x8e,0x84,0x57,0xcd,0x13,0x64,0xc3,0x23,0xfd,0x91,0x8a,0xe4,0xb9,0x32,0x12,0x17,0x02,0xa6,0x8d,0xec,0x44,0x9d,0xa5,0x7c,0x96,0x14,0xd1,0xd5,0x93,0x02,0x0c,0x9d,0xfc,0x26,0xa0,0xd2,0x41,0xaa,0x75,0xe8,0x82,0x6f,0x47,0x1d,0xe8,0xcf,0x94,0xe3,0x35,0xa9,0x76,0x1e,0xdb,0x92,0x5f,0x32,0x49,0xf4,0xd5,0x59,0x9c,0x4e +.byte 0xf7,0x89,0xda,0x23,0x7f,0x46,0x0e,0xfc,0xaf,0x1c,0x6f,0xcc,0x59,0xa5,0x43,0x04,0xbf,0x55,0xab,0x7d,0x36,0xa3,0xa5,0x03,0x7f,0xdf,0x33,0x6c,0x6d,0xd0,0x53,0xaa,0xef,0x54,0xc1,0x62,0xa0,0xd6,0x3a,0x67,0x87,0xe3,0x76,0x17,0x45,0xbe,0x7f,0x55,0xc8,0x8b,0xe8,0x1c,0xa8,0xe6,0xa6,0xb2,0xbf,0xe5,0x45,0xc0,0x88,0x22,0x36,0xa0 +.byte 0xec,0x21,0xdc,0x3e,0x6b,0xd2,0xc7,0xdf,0x5b,0xa4,0x32,0x28,0xca,0x23,0xe1,0x50,0x55,0x72,0x59,0x28,0x1c,0xf7,0x93,0x91,0x07,0x3c,0x4e,0x81,0x20,0x58,0x9b,0x07,0x38,0x37,0x68,0x2c,0x29,0xba,0x20,0x11,0xa9,0xa0,0x29,0x65,0x57,0xb1,0xe3,0xb1,0xfb,0xe2,0x70,0xee,0x1f,0xcd,0xf5,0x61,0xea,0x7a,0x08,0xb4,0x1e,0xfe,0xe7,0x4d +.byte 0x32,0xa0,0xfd,0xb4,0x52,0xa1,0x4b,0x67,0xba,0x5e,0x90,0xe7,0x56,0xec,0x06,0x03,0xb6,0xe6,0xc6,0x98,0xa1,0x41,0xf4,0xaf,0xde,0xe2,0x67,0xef,0xaa,0x05,0x97,0xc5,0x80,0x32,0xd0,0x43,0xc2,0x02,0x7a,0xcc,0x4c,0xdd,0xe9,0x1e,0xd0,0x4f,0xad,0xf3,0x4b,0x2c,0x5e,0xb8,0xd8,0x84,0xc2,0x43,0xc7,0xa9,0x86,0x4d,0x10,0xae,0xb7,0xe3 +.byte 0x5c,0xd5,0x2a,0xba,0x3b,0xd3,0x7b,0x5d,0xc8,0xe0,0x67,0x87,0xbe,0xbf,0x71,0x4e,0x22,0x68,0x12,0x53,0x95,0x73,0x5c,0x30,0x7b,0x2b,0xfd,0xc1,0x3c,0xfc,0xc4,0x0f,0xdd,0x5b,0x3e,0x1b,0x72,0x71,0xa6,0xe3,0x1f,0x2d,0x51,0xe2,0x61,0x3d,0xa0,0x60,0xc2,0x6b,0x41,0x8f,0x94,0x83,0x29,0xa3,0xb6,0xa7,0xc7,0x11,0x8f,0x1c,0xb5,0x19 +.byte 0x66,0x44,0xc7,0x05,0x58,0x83,0x28,0x69,0x0c,0xb6,0x65,0xe5,0x93,0x1c,0xb1,0xf6,0xf9,0xea,0xda,0x84,0x26,0x8e,0xa2,0xbb,0x9b,0x55,0xd3,0xbc,0x42,0x56,0x8f,0xce,0x6e,0x74,0x40,0xf2,0x02,0xa6,0x22,0x22,0x6e,0x20,0x0e,0x4b,0x8b,0x15,0xa5,0x04,0xf0,0xe0,0x7b,0x27,0x0a,0x38,0xe3,0x99,0x04,0xd0,0x5b,0x64,0xd2,0x04,0x92,0x61 +.byte 0x57,0x74,0xbc,0x1e,0x98,0x01,0x4b,0x2f,0x46,0x56,0x1c,0xeb,0x49,0x2d,0x66,0xac,0x85,0x96,0x48,0xfd,0xa1,0xf0,0xf5,0xc0,0xdb,0x7a,0xf2,0x0b,0x57,0x86,0xac,0x4c,0x6a,0x02,0x97,0x13,0xef,0x08,0xf6,0x18,0xe1,0x5c,0xb3,0x18,0x3d,0x70,0xc0,0x76,0x5e,0xd0,0xb8,0x44,0x32,0x25,0x75,0x62,0xa2,0x80,0x78,0x8c,0xc4,0x2a,0x84,0xbc +.byte 0x51,0xd4,0xee,0x44,0x48,0xe5,0xc4,0x48,0xbf,0xc0,0x27,0xc1,0x77,0x25,0xf5,0x59,0x6b,0x60,0xae,0xa5,0x42,0xfe,0xc3,0x06,0x91,0xe3,0xdb,0xa9,0x4b,0xe2,0x73,0x95,0x1f,0xf6,0xb6,0x66,0x71,0x63,0xb3,0x14,0x4a,0x3d,0x36,0x84,0xbe,0x2a,0x7c,0x7c,0xba,0x0e,0x8d,0x9a,0x73,0x52,0x21,0x89,0x02,0x8f,0x94,0xa5,0x9a,0x11,0x2e,0x6e +.byte 0x78,0xf7,0x07,0xf8,0xb1,0x42,0x96,0x06,0x78,0xf0,0x53,0x86,0xec,0x2b,0x1f,0xa7,0x84,0x79,0x37,0xc7,0x61,0x83,0x8e,0x62,0x65,0x49,0xdd,0xfe,0xee,0x97,0x70,0xa2,0x73,0xb5,0x85,0xaf,0x10,0xed,0xb8,0x74,0xec,0x42,0xd0,0x14,0x47,0xa6,0x90,0x7c,0x07,0x22,0xb4,0x4e,0xfc,0x12,0xa1,0x9d,0xd4,0x73,0x8f,0x6a,0x55,0xf8,0x56,0x25 +.byte 0xdb,0x9b,0xe8,0x10,0x87,0x7a,0x4b,0x42,0x9c,0xbb,0x6e,0xf1,0xd7,0x1d,0xf4,0x07,0x31,0x9c,0x94,0x3a,0xb6,0xad,0x4b,0xf4,0x57,0x3d,0x2f,0xba,0x23,0x36,0x34,0x52,0x62,0xf7,0x64,0xc7,0x47,0xeb,0x41,0xad,0x07,0xfb,0x3e,0x08,0x74,0x92,0x58,0x0f,0x73,0xe2,0x53,0x35,0xda,0xae,0x64,0x3c,0x47,0x89,0xaf,0xce,0x59,0x35,0x75,0x8b +.byte 0x50,0xee,0xbf,0xbe,0xd1,0xf4,0x2f,0x11,0xa3,0xfe,0xce,0xfd,0x15,0x0d,0x32,0x17,0x00,0xfb,0xad,0x02,0x70,0x5c,0xeb,0x59,0xfb,0x87,0xe5,0xed,0x0e,0xde,0x97,0xe7,0x75,0xb6,0xdc,0xe9,0xb0,0x08,0x26,0x0e,0x11,0xd4,0x4f,0xc4,0x92,0x71,0x7c,0x63,0xef,0xc0,0x14,0x64,0xe1,0x0f,0x7e,0xe6,0xcb,0x5b,0x4c,0xd4,0x16,0x8b,0x7b,0x8b +.byte 0x2f,0x2a,0x77,0xef,0xd3,0xdf,0x56,0xc0,0x5a,0x94,0x72,0xd5,0x36,0x12,0xfa,0x25,0xd7,0x77,0x52,0xdd,0xea,0x11,0x2f,0x6b,0x16,0x6e,0xe3,0xa2,0x84,0xba,0x55,0xc2,0xb0,0xe2,0x3b,0x53,0xb6,0xa4,0xc6,0xa5,0x3f,0x1b,0xb3,0x38,0xc0,0x2f,0x1a,0x80,0xe0,0xa4,0x60,0x49,0x8c,0xe3,0x23,0x5f,0x59,0xfd,0x2a,0x0f,0xe8,0x4c,0xaf,0xd7 +.byte 0x36,0xc7,0x25,0x21,0xad,0x41,0x54,0x27,0x95,0x15,0x42,0xbc,0xb3,0x77,0x4e,0x97,0xf4,0x3c,0x54,0xcc,0x19,0x63,0x62,0x67,0x97,0x5a,0xd0,0x59,0xfb,0xce,0xcd,0xe1,0x3c,0xb6,0xc9,0x49,0xc4,0xff,0xde,0xf9,0x89,0x87,0x9c,0xdf,0x4e,0x8c,0x9d,0xe5,0xbd,0x0d,0x0c,0x6e,0x93,0xfd,0xea,0x90,0xf2,0x80,0x7e,0x00,0x9a,0x06,0x02,0x87 +.byte 0xae,0xca,0xf4,0x46,0xbb,0xb5,0x52,0xee,0x18,0xb0,0xf1,0x61,0xcb,0xe1,0x65,0x9c,0x0b,0xfb,0xe6,0x3b,0xeb,0x3a,0x1a,0x22,0x41,0x0b,0x99,0xa4,0x8e,0x01,0x5e,0x7c,0x4e,0x1a,0xaa,0xab,0xd3,0x8b,0x99,0x7f,0xba,0x6b,0xec,0xe7,0x3a,0xd6,0x55,0x46,0x20,0x1b,0x10,0x39,0x06,0xcc,0x90,0xc1,0x6a,0xa5,0x27,0x7c,0xca,0xa5,0x58,0x07 +.byte 0xd7,0xaf,0x6d,0x12,0xa6,0x68,0xc7,0x0e,0x19,0x53,0x44,0x22,0x85,0xbb,0x72,0x9c,0x4d,0xfb,0xeb,0x94,0x3a,0xa0,0x64,0xf5,0x25,0xe8,0xee,0x7a,0x3b,0x71,0x0e,0xbb,0x40,0xa2,0xb3,0xc9,0x6b,0x14,0x0f,0xc3,0x75,0xac,0x1b,0x5c,0xf1,0x34,0x51,0xcb,0xeb,0x5f,0x40,0x0f,0x82,0xe9,0xd2,0x6d,0x95,0x88,0x84,0xea,0xe9,0xe3,0xa0,0xe9 +.byte 0xef,0x3b,0x33,0xfe,0x32,0x52,0x93,0xce,0x95,0x4b,0x64,0x3c,0x97,0x76,0x91,0xd8,0xce,0xb5,0xc2,0xda,0x58,0x23,0x27,0xe2,0x3d,0xbe,0xf6,0x31,0x79,0x73,0x0e,0x31,0xd7,0xa3,0xaa,0xac,0xcf,0x31,0x1e,0x75,0x58,0x14,0x21,0x52,0x1c,0x3e,0x4f,0x2a,0x2b,0x9a,0x22,0xbc,0x42,0x68,0x5b,0x83,0xc2,0x8c,0xd4,0xe8,0xd9,0x02,0x0d,0x13 +.byte 0x2f,0x08,0xd3,0x11,0xb7,0x4b,0x84,0x67,0x43,0xda,0x20,0xdb,0x89,0xd5,0x9e,0x14,0x54,0x3d,0x49,0xda,0xac,0x3f,0x8f,0xf5,0x17,0xfe,0xb8,0x5f,0xc3,0x20,0x38,0x27,0x21,0x32,0xbf,0xf3,0x9b,0x2c,0x0b,0x9b,0xeb,0x64,0x87,0xf7,0x9d,0xed,0x15,0x05,0x21,0x69,0xcf,0x2d,0xf8,0xfb,0xf2,0x81,0x51,0x08,0xc7,0x18,0x81,0xdf,0xed,0xa4 +.byte 0x70,0xb3,0x07,0xfa,0x00,0xd5,0x65,0xb9,0x5a,0x82,0x67,0x6f,0x10,0xfc,0x46,0x05,0x9a,0x85,0x64,0x14,0x60,0x64,0x4d,0x1f,0x13,0x57,0xbb,0x7c,0x4a,0x10,0x84,0x8c,0x57,0x36,0x13,0x22,0x00,0x04,0x2d,0xcf,0x27,0x3d,0xf4,0x27,0x3e,0x32,0xb3,0x87,0xda,0x82,0xaa,0xad,0xd7,0xa7,0xc5,0x3c,0x45,0xec,0x28,0x82,0x79,0x95,0x8f,0x56 +.byte 0x50,0x5f,0xc2,0x15,0xab,0x18,0x58,0x4f,0x69,0x46,0xce,0x29,0x33,0x42,0x53,0xe9,0xea,0xe5,0xa8,0x5b,0x90,0xc4,0xf4,0xbf,0x8a,0x20,0x62,0xad,0xa5,0xea,0x6a,0x4e,0xb4,0x20,0x2d,0xca,0x90,0xdf,0xbd,0xab,0x5b,0xc3,0x33,0x7c,0x53,0x1f,0xf5,0x2e,0xc0,0xbf,0x19,0xe1,0xa1,0x5a,0x63,0xf3,0x13,0x4d,0x6e,0xef,0x4f,0x3a,0x94,0x18 +.byte 0xbe,0x79,0xdb,0xbf,0xc2,0x2c,0xb3,0x36,0x59,0xab,0x21,0x1d,0x98,0x60,0x70,0xdd,0x95,0x51,0x19,0x07,0xd6,0x68,0x0e,0x2a,0xd4,0x4c,0x30,0x18,0x1c,0xe4,0xe1,0x89,0x15,0x25,0xea,0x27,0xcf,0x51,0x56,0xc9,0xa9,0xa7,0x31,0x08,0x17,0xfb,0xfc,0xf6,0x0c,0x5d,0xf1,0x7c,0x36,0xcb,0xad,0xef,0x29,0xf5,0x2e,0x23,0x09,0xcf,0x31,0x6f +.byte 0x74,0x12,0xd2,0xc2,0xc7,0x19,0xa5,0x6e,0x20,0x09,0x67,0xdc,0x41,0x69,0xbe,0x15,0xd6,0xeb,0x7b,0xba,0x63,0xae,0x65,0xd8,0x67,0xec,0x6e,0xcc,0x1d,0x04,0x08,0xfb,0x7c,0x34,0x1d,0x5f,0x1e,0x51,0x1c,0x30,0x72,0xd3,0x0c,0x48,0x60,0x3d,0x52,0xae,0xe6,0x78,0x44,0x6d,0xb8,0x40,0x08,0xb7,0x7a,0xa9,0xfc,0xa0,0x86,0xff,0x32,0xd6 +.byte 0x5a,0x31,0x4e,0xe2,0x65,0xab,0xb0,0x84,0xb6,0x74,0x3e,0xa6,0x67,0x7c,0xa2,0x0f,0x23,0x22,0xab,0x72,0x7e,0xeb,0x45,0xa9,0x2a,0xb4,0xd3,0xcc,0x27,0x5c,0x12,0xdb,0x14,0x68,0x73,0x0f,0x36,0xbf,0x9f,0x14,0x12,0xe9,0xef,0x04,0x2a,0x63,0x41,0x4b,0x04,0x9b,0x4c,0xc4,0xb2,0xb9,0x1c,0xc0,0xb8,0xcc,0x23,0x61,0xc4,0xed,0x27,0x1e +.byte 0x1d,0x97,0x3d,0x40,0x4c,0x1f,0xeb,0x6e,0xc4,0xfb,0x5c,0x2d,0xf5,0xf1,0xbb,0x05,0x47,0xa2,0x1a,0x9c,0x2b,0x8f,0xce,0x98,0x09,0x6b,0x86,0x22,0xf8,0x3a,0xae,0xf3,0xb4,0x66,0x2f,0xdb,0x20,0xa5,0xc6,0xb6,0x35,0xb5,0x5a,0x68,0xb5,0x37,0x2c,0xab,0x13,0x3d,0x2d,0xcb,0x38,0xed,0x3c,0x7a,0x1f,0x26,0x08,0x58,0x94,0x52,0x30,0xec +.byte 0x06,0x9f,0x90,0x97,0x4d,0x90,0x49,0x23,0xaf,0x00,0x90,0x6b,0x96,0x37,0x02,0x4c,0x35,0xc0,0x3e,0x66,0x2c,0x52,0xbc,0x75,0x28,0xd7,0x8f,0x25,0xbe,0x91,0x10,0x22,0x67,0xbf,0x4a,0x4d,0x62,0xc4,0xe9,0xda,0xe2,0x79,0xcc,0x76,0xeb,0x99,0x87,0xac,0x39,0x7d,0xf6,0x5a,0x37,0x85,0x30,0x33,0x65,0x3f,0xd9,0xd6,0x17,0xf8,0xf0,0x86 +.byte 0xee,0x5c,0x2f,0xb0,0xb3,0x4f,0x83,0x6c,0x4a,0x8f,0xfc,0x80,0x91,0xaf,0x4b,0x21,0x9c,0x9b,0x44,0x3c,0xed,0x67,0xfb,0xa3,0x31,0x7f,0xd4,0x73,0x72,0xb9,0xc1,0x31,0x96,0x47,0x8e,0x99,0x8e,0x62,0x1a,0xfd,0xc7,0x9d,0x2f,0x4c,0xda,0xe5,0xae,0x17,0xb6,0x40,0x5f,0x9e,0xa8,0xf2,0xcc,0xd7,0xd5,0x40,0x33,0x88,0x57,0x63,0x9b,0xde +.byte 0x82,0x71,0x68,0xfe,0xaf,0x29,0x6c,0xc1,0x2c,0x2f,0x02,0x42,0xd7,0xa5,0x28,0x05,0xca,0xa0,0xb6,0x8c,0x43,0x90,0x05,0xe2,0x1c,0xb7,0x76,0x79,0x39,0xd3,0x23,0xe1,0xe7,0xbb,0x19,0x65,0x1a,0xb4,0xbb,0x5a,0xcf,0x43,0x70,0x26,0x1a,0x2f,0x61,0x78,0x75,0x08,0xb0,0x88,0xe5,0x4a,0x46,0x0a,0xfc,0xcb,0x46,0x18,0xb0,0x8d,0x9b,0xeb +.byte 0xf5,0xe1,0x83,0x04,0x84,0x4f,0xd6,0xa0,0x4f,0xb2,0x4c,0x44,0x08,0xde,0xd6,0x82,0xb5,0x9a,0x45,0x15,0xb8,0x21,0xc7,0xf5,0xe2,0xfd,0x02,0x27,0x18,0x13,0x24,0x18,0x01,0xd1,0x2a,0xff,0x63,0xf2,0xa4,0x97,0xc8,0x4b,0x3b,0xae,0x49,0x47,0x54,0xe8,0x75,0xe7,0x16,0x77,0x22,0x10,0x7b,0x3c,0xf0,0xdb,0x49,0x6e,0xd6,0x55,0x9d,0x43 +.byte 0x6f,0x6e,0x2d,0x97,0xea,0x16,0x2e,0x0c,0x85,0x89,0x67,0xe1,0x7b,0x38,0xa6,0x2b,0x89,0xf0,0xcd,0x90,0xcd,0xba,0x9a,0x70,0xa9,0xe3,0xff,0xe0,0xbd,0x15,0x3e,0x4b,0x13,0x62,0x7b,0x59,0x64,0x18,0x96,0xe9,0x6a,0xf3,0x69,0x2d,0x2d,0x25,0xe7,0x91,0xd3,0xbc,0x74,0x58,0x66,0x2f,0x5e,0x8b,0x52,0xf6,0x91,0x24,0xa8,0x6f,0xa5,0xce +.byte 0xa1,0x4e,0x3b,0xe9,0xc5,0x30,0x7e,0xa5,0xc7,0xe2,0xb3,0x71,0x3b,0x25,0xb9,0x5f,0xe5,0x9c,0xf8,0x46,0x23,0xc5,0xa2,0xc1,0x1f,0x3f,0x43,0xa6,0xaa,0xf1,0x36,0x27,0xc6,0xa8,0xed,0x0d,0x50,0x71,0xf1,0x38,0x27,0xb7,0x16,0x43,0x7c,0x7f,0x77,0x5b,0x25,0x59,0xb7,0x08,0x0d,0xc8,0x84,0xe4,0xc2,0x03,0x95,0xe5,0xf3,0x0a,0x9c,0x1f +.byte 0xde,0x98,0x7c,0xa9,0xe2,0x70,0x9e,0xde,0xf6,0x80,0xd0,0xf8,0x86,0x4a,0x7a,0x0d,0x16,0xaa,0xde,0xba,0x02,0x30,0x8a,0xe6,0x03,0x0f,0xa1,0xf1,0xe8,0xd6,0xf8,0xce,0x7b,0xba,0x74,0xa8,0x25,0xb0,0x49,0x22,0xa6,0x81,0x7e,0x71,0xc5,0x97,0x9e,0xa8,0x46,0xa7,0xe9,0x8b,0x7c,0x7c,0x4c,0xc5,0x3c,0x93,0x08,0xb9,0x8b,0x3c,0x33,0xd6 +.byte 0xc4,0x37,0xc8,0x05,0xe7,0xfe,0xc2,0x7c,0x02,0xe6,0xda,0x09,0x52,0x2c,0xc6,0xa8,0x6e,0x44,0x7e,0x55,0xf0,0x32,0x10,0xcb,0x1e,0xa7,0x77,0x8d,0xc7,0xfe,0xb5,0xf6,0x3b,0x49,0xf2,0xfb,0xe0,0x41,0x98,0xd3,0x17,0xa6,0x5d,0x3f,0x4c,0x95,0xb0,0x02,0x8d,0xab,0x36,0xb7,0xa0,0x92,0x40,0x5e,0x15,0xfb,0xa9,0xb4,0xa3,0x04,0x8b,0x6b +.byte 0x81,0x44,0x59,0x22,0x10,0xcb,0xc5,0x52,0x3f,0x78,0x70,0x00,0xe2,0xa2,0xf7,0x76,0x62,0x72,0x06,0x8b,0xbb,0x56,0x0f,0x8c,0x67,0x2f,0x52,0x3f,0x3b,0xdc,0x15,0x79,0x55,0x89,0x6c,0x61,0x23,0xcc,0x6b,0x41,0x77,0xe5,0xc4,0x90,0x51,0xc3,0x87,0x22,0x1e,0x89,0xf5,0x5b,0x41,0xd7,0x34,0x22,0x3c,0xbd,0x29,0xaa,0x54,0xed,0x5a,0x90 +.byte 0x17,0x24,0xba,0x7a,0x46,0x5f,0x54,0x33,0x56,0x7e,0x2d,0x03,0x59,0xcb,0xbb,0x7a,0xce,0xbb,0x8d,0xf7,0xb6,0x38,0x00,0x18,0x6a,0xa1,0x6c,0xdf,0x42,0x49,0x4d,0x9b,0x4f,0xd6,0x85,0x54,0x1f,0xad,0x17,0xdd,0x66,0x0e,0x7c,0x30,0x86,0x82,0x1c,0x5a,0x81,0x08,0x55,0x51,0x5b,0x06,0x54,0x52,0x3e,0x8b,0x6e,0x72,0x92,0xd2,0x05,0x5d +.byte 0xe4,0xe8,0x0e,0x62,0x1d,0xec,0xb1,0x7f,0x42,0x05,0xd5,0xd3,0x60,0xd4,0xdc,0xa4,0x48,0xc0,0xf0,0x89,0xef,0x5b,0xae,0x5f,0xcd,0xf0,0x62,0xaa,0x3e,0xd5,0x1a,0xbe,0xe3,0x08,0xd5,0xe8,0x00,0x21,0x8c,0x0b,0x0c,0x8e,0x24,0xac,0xb2,0xea,0x44,0x9f,0xce,0x53,0x45,0x9a,0x85,0x67,0x99,0x85,0xea,0x92,0xa7,0x1d,0x86,0xb4,0x3b,0x22 +.byte 0xa2,0xcd,0x35,0x65,0xb5,0xa6,0xdb,0x6d,0x48,0xd1,0xa4,0x76,0x0c,0x00,0x30,0x62,0x86,0x06,0xda,0xa8,0xfe,0xec,0x70,0x87,0x4a,0xe8,0x2e,0x4d,0xe3,0x94,0x0b,0xdf,0x81,0xcd,0xfe,0x23,0x79,0x2c,0x2b,0xae,0xf7,0x75,0x49,0x47,0x24,0x46,0x09,0x10,0x62,0x39,0x3b,0x50,0xf1,0xfa,0xf7,0x5f,0xe4,0x7c,0xa5,0xc0,0x25,0x9e,0x20,0x4d +.byte 0xc8,0x6b,0x93,0xc5,0x4a,0x6b,0x62,0xb8,0x3b,0xe5,0x0d,0x92,0x70,0x26,0xa5,0x2b,0xd0,0x9f,0x03,0x8b,0xd3,0x1a,0xc4,0xb0,0xa3,0xc7,0xf4,0x35,0xe5,0x1d,0xe0,0xaa,0x43,0xab,0x64,0x10,0x2b,0xa4,0x09,0x42,0xee,0xba,0xb7,0xbf,0xfd,0xa6,0xff,0x76,0xe5,0x12,0xd6,0x50,0x9a,0x26,0x6b,0x3a,0xd3,0xe6,0x7d,0x3e,0x0e,0x9b,0x95,0xd7 +.byte 0xbf,0xb6,0x7e,0xfb,0x3c,0x24,0xa4,0x26,0x98,0x88,0x81,0xf4,0x56,0xa4,0xf7,0xe8,0x87,0x15,0x5e,0x9f,0x84,0xdd,0x04,0x66,0x43,0xd8,0x76,0xc2,0xa3,0xfd,0x4b,0x58,0x09,0x06,0xa6,0x60,0x5c,0x3f,0x75,0x80,0xd7,0xc4,0x29,0xf9,0x0b,0x1e,0x4d,0xe5,0x26,0xf6,0xae,0x7a,0xc1,0x05,0xf3,0xf1,0x6c,0xee,0xed,0x56,0x0b,0x51,0x66,0xbe +.byte 0x99,0xec,0x9c,0xc2,0x97,0xe2,0xed,0x09,0x1d,0xa8,0x18,0xaa,0x1c,0x9e,0x20,0x62,0xb1,0x80,0x68,0x3e,0x28,0x1f,0x4f,0x50,0x0e,0x41,0xaf,0x17,0x44,0x79,0x16,0xca,0x17,0xe9,0x13,0x66,0x0a,0x04,0x68,0x41,0xe2,0x1d,0xc7,0x00,0x1e,0x66,0xa3,0x6c,0x2d,0x52,0x8c,0x0b,0x7c,0x03,0x48,0x73,0x3b,0xa9,0x84,0xe5,0x31,0x12,0x0f,0xe8 +.byte 0x1e,0x58,0x4d,0xd0,0x1b,0xb7,0xcf,0x75,0xd5,0x2c,0xca,0x33,0x17,0x95,0x9c,0x30,0xc7,0x7f,0xe9,0xde,0xae,0x19,0x72,0x00,0x2a,0xf5,0xde,0x93,0x3f,0xf5,0x44,0xe5,0xf8,0xc7,0xeb,0x1a,0x5d,0x5b,0x11,0x30,0x09,0xf5,0x49,0x66,0x70,0x1a,0xd5,0xe6,0xfc,0xe6,0x59,0x3d,0x17,0x6c,0xb5,0x0c,0xdf,0x1e,0x9c,0x48,0xd1,0xde,0x12,0xd6 +.byte 0xc8,0x48,0xc8,0x73,0x6d,0xfc,0xec,0x07,0xce,0x02,0xe5,0xb3,0x18,0xb9,0x55,0x4d,0x64,0x07,0xf3,0xaa,0x3c,0xf1,0x71,0x22,0x31,0xbb,0x74,0x2c,0x9f,0x7b,0x68,0x9d,0x80,0x49,0x32,0x48,0x9b,0x54,0xf3,0x74,0x37,0xac,0x4e,0xb2,0x96,0xdf,0x9d,0xeb,0x43,0xe0,0xd0,0xa0,0xe3,0x77,0xbd,0x8b,0x92,0x95,0x9d,0x63,0x8d,0xa8,0x23,0x07 +.byte 0xb0,0xcb,0x9d,0x8d,0x3f,0xe2,0xd5,0x81,0x6a,0xe5,0xc2,0xfe,0xda,0x1c,0x25,0x25,0x5b,0xa8,0xad,0x06,0xec,0x0d,0x4b,0x68,0xc3,0x45,0x81,0x38,0xb0,0x22,0x71,0xa4,0x2b,0xf3,0xa6,0x05,0xae,0x0c,0x48,0x94,0x0d,0x3d,0x48,0x51,0x76,0xdf,0x79,0x66,0x0e,0x28,0xc0,0xc1,0x6f,0xc8,0x8f,0xf7,0x7d,0x37,0x06,0xa2,0x8a,0x3a,0x6b,0xab +.byte 0xe0,0x55,0x8e,0xec,0x89,0xe2,0xca,0xc4,0x01,0x03,0x5d,0xa1,0x84,0x21,0x44,0xbb,0x6b,0x36,0x63,0x57,0x4f,0x54,0x88,0x81,0xbe,0xf8,0x53,0xf7,0x57,0xee,0x30,0x85,0x03,0x11,0x86,0xff,0xe4,0xd6,0xc4,0xf0,0x3c,0xcf,0xfd,0x38,0xd8,0xcb,0xd0,0x96,0x03,0xf2,0xc7,0xfa,0x18,0xc8,0x1b,0xe6,0x77,0x3c,0x61,0xa9,0x14,0xdb,0xb4,0x5c +.byte 0x2d,0xee,0xd7,0xe8,0xc4,0x0c,0x69,0x0c,0x55,0xe2,0x99,0x4b,0xc4,0x89,0xc8,0xee,0x48,0x0e,0x16,0xd7,0xa4,0x78,0x25,0xda,0xd3,0xa8,0xac,0x89,0x66,0x67,0x0d,0x51,0x21,0x0e,0x91,0xfb,0xb5,0xab,0x33,0xcb,0x3e,0xc7,0x0f,0x03,0x22,0x51,0x71,0x03,0xa0,0x3c,0xa9,0x35,0xcb,0x40,0xa7,0xbe,0xe7,0xc3,0x51,0x43,0xd8,0x9a,0x24,0xb7 +.byte 0x7e,0xfb,0x26,0x8d,0xa5,0x1a,0x6b,0xe7,0x97,0xe4,0xdd,0xc0,0x3e,0x98,0x67,0x55,0x79,0x56,0xb9,0x7e,0x25,0x4c,0x5c,0x5a,0x47,0x0a,0xce,0xb6,0x4d,0x2c,0x69,0x73,0xaa,0xf0,0x12,0xbb,0x9d,0xe1,0x60,0xc4,0x5b,0x10,0x32,0x6d,0x89,0x54,0xb1,0xfe,0x36,0xbe,0xb2,0x60,0x9a,0x91,0x73,0x9c,0x32,0x61,0xad,0x9a,0xf7,0x56,0x5f,0x5a +.byte 0x54,0xaf,0xb2,0x0c,0x5b,0x1a,0xe6,0x98,0x94,0xed,0x69,0x0b,0x8d,0x06,0x87,0xc9,0x20,0xdc,0x92,0x2d,0x5e,0xba,0xbb,0x15,0xef,0xc1,0x07,0x18,0x44,0x3f,0xf4,0x48,0x3e,0x7b,0xa4,0x9e,0x14,0x6b,0x97,0xdd,0x68,0x33,0x18,0xdd,0x47,0x08,0xa6,0x3b,0x8d,0x79,0x58,0x92,0xd9,0xda,0x82,0x34,0xa7,0x99,0xbc,0x43,0xa3,0x0a,0x7e,0x85 +.byte 0x0b,0xab,0x0e,0xc2,0x94,0x22,0x2d,0x05,0x99,0x9d,0x5c,0xc7,0xb2,0x7b,0x18,0x3e,0xb2,0xdd,0x47,0xb3,0xd7,0xcf,0x19,0xc7,0x55,0x5e,0x64,0xd8,0x7b,0xb4,0xf6,0x11,0x72,0xed,0xbd,0xfc,0xd8,0xe9,0x9f,0xcd,0x9a,0xeb,0xb2,0x6c,0x04,0xb9,0x88,0xf7,0x60,0x68,0xc3,0xf2,0xfd,0xa0,0x8c,0x82,0xc5,0xf7,0x5d,0xc3,0x9a,0x1e,0x49,0x27 +.byte 0x69,0x35,0xb0,0x8f,0xe9,0xb3,0xe4,0x09,0xd8,0x1a,0x73,0x9e,0x56,0x41,0xfa,0xe0,0x94,0x9e,0x0e,0x65,0xe6,0x5b,0xe2,0x12,0x39,0xca,0x86,0x0c,0xae,0xee,0x24,0x58,0xfd,0x85,0x09,0x7a,0xad,0x54,0xde,0xda,0x06,0x73,0x7d,0x11,0x7e,0x91,0x44,0xf3,0x4b,0x61,0xce,0x8a,0xff,0x76,0x92,0x2e,0x43,0x52,0xcf,0x63,0x3f,0xc4,0x1f,0x7f +.byte 0x4d,0x67,0x21,0xed,0xd7,0x88,0xdb,0x36,0x56,0x11,0xb2,0x3b,0xee,0x5f,0x2d,0x5f,0x17,0x98,0xa1,0xd5,0xcc,0x82,0xfd,0xc2,0x56,0x69,0xaa,0x68,0x86,0xaf,0x48,0x77,0xba,0xe9,0xd9,0x42,0xcd,0xaa,0xe3,0xad,0x2b,0x17,0xef,0xd3,0x54,0xc5,0x4e,0x31,0x0b,0x14,0xb7,0x73,0xc1,0x6f,0xc3,0x06,0x41,0x1a,0x11,0x19,0x9f,0xe9,0x9f,0x61 +.byte 0x4f,0x13,0x9b,0x3e,0xcd,0x7c,0xd6,0x2a,0xb3,0x87,0x84,0x58,0x58,0x10,0x1f,0xa0,0x2e,0x5c,0x15,0x8b,0x5e,0x37,0xd4,0x22,0x93,0xd9,0x67,0xe1,0xa8,0x35,0xe2,0x95,0xd8,0x4c,0x2c,0x65,0xc9,0x21,0xaf,0xf9,0xdd,0x3d,0x2c,0x0e,0x0c,0xcc,0x6b,0xad,0xb3,0x6d,0xd2,0x3e,0x65,0x8e,0x82,0x70,0x41,0xd6,0xaa,0x97,0xab,0x38,0x78,0xe4 +.byte 0x62,0x7c,0x5f,0x22,0xa3,0x1e,0xf2,0x6c,0xfe,0x3c,0xa9,0xb5,0x57,0xcd,0x96,0x11,0xd0,0x8b,0xcf,0x6d,0x06,0xcf,0x7c,0xda,0x1d,0xe4,0x22,0x5c,0x5d,0x9f,0xa8,0x24,0x55,0x45,0x93,0xc6,0xeb,0xfc,0xb5,0x71,0x5a,0x1d,0x52,0x40,0x95,0xc7,0x76,0x32,0xfb,0x2b,0x0c,0x7d,0x64,0xfa,0x5b,0x5e,0x7a,0x3b,0x0b,0xa0,0x99,0x5d,0x19,0x16 +.byte 0xe4,0x8e,0xae,0x49,0xee,0xc5,0xb2,0x24,0xd7,0x0b,0xa4,0x20,0xa6,0x74,0xc4,0x36,0x1d,0x43,0x25,0xd6,0x71,0x54,0x69,0x79,0xea,0xa3,0xd5,0xe9,0x75,0x53,0xcf,0x99,0x4e,0x3b,0xc0,0x52,0x28,0x80,0xe5,0x07,0x65,0x83,0xb3,0x24,0xfe,0x13,0x92,0xd6,0x18,0xf7,0xa3,0xeb,0x9e,0xf0,0xd5,0x69,0x93,0x79,0xda,0xb7,0x2e,0xe2,0x01,0xdd +.byte 0x9a,0xc3,0x7b,0x3b,0x17,0x88,0xe5,0xe9,0x9b,0x46,0x5c,0x5f,0x0e,0x1e,0x80,0x9b,0x11,0x1f,0xa4,0x08,0x90,0x14,0x08,0xb4,0x73,0x32,0x72,0xbe,0x43,0x4f,0x70,0x90,0xe7,0x80,0xdd,0xfd,0xa7,0xea,0x13,0xd9,0x5d,0xae,0x93,0x24,0x2b,0x1e,0xc7,0xf4,0x81,0xbb,0x5f,0xb0,0xb9,0xe4,0x35,0x39,0xf4,0x9a,0x49,0xb5,0xc0,0x47,0x18,0xc3 +.byte 0xcc,0xbe,0x26,0x36,0x44,0x2d,0x65,0x24,0xa3,0x09,0xde,0x69,0x3b,0xb8,0xdc,0x52,0x98,0x2e,0x38,0x5f,0xf7,0xb1,0x84,0xdd,0xea,0xe2,0xe5,0xec,0x96,0x31,0xb1,0x93,0xc0,0x5b,0xc4,0x87,0x4a,0x51,0x58,0x2d,0xea,0x47,0xab,0xfd,0xd3,0x76,0xf1,0xbc,0x52,0xa7,0x94,0x6c,0x74,0x1e,0x84,0x07,0x1f,0x5c,0x18,0xb9,0x06,0x37,0xf0,0xfb +.byte 0xbd,0x5d,0xaf,0xa8,0x06,0xc9,0x86,0xf0,0xd1,0x78,0x84,0x95,0x01,0xdd,0x70,0x9d,0x71,0x51,0xb7,0x80,0x69,0xbe,0xe8,0xfb,0x8f,0x43,0x72,0xd9,0xa9,0xf1,0x90,0xbb,0xf1,0xb5,0xc0,0x75,0x93,0x4e,0x14,0xc5,0x14,0x77,0x59,0xf8,0xe5,0x81,0x11,0x25,0x48,0x51,0x46,0x2a,0x69,0x59,0x92,0xe7,0xa7,0x39,0x96,0xad,0x67,0x30,0xaa,0xb2 +.byte 0x5d,0x95,0x94,0x83,0x83,0x93,0xf3,0x52,0x81,0x1c,0x27,0x78,0x1d,0x19,0x35,0x6e,0x8f,0x16,0xe5,0x3b,0xce,0x80,0x2a,0x3a,0x89,0xb7,0x51,0xfc,0x34,0x24,0xa2,0x61,0x95,0x9e,0xd4,0x69,0xa1,0x2f,0x49,0x16,0x2d,0x12,0x05,0xfe,0x69,0x62,0x12,0xa4,0x2c,0x04,0x7b,0xce,0x3f,0x34,0xc4,0x48,0x1a,0xe6,0x64,0x4b,0x8a,0xbf,0x68,0xdd +.byte 0x54,0x15,0xd3,0x25,0x49,0xdd,0xed,0x5e,0x2c,0x0e,0x25,0xbe,0x77,0xcf,0x94,0xf4,0xe9,0xf3,0xcc,0xe6,0x94,0xf9,0xb2,0x5d,0x24,0x53,0x63,0xbb,0x66,0x8d,0x73,0xef,0x79,0x5c,0x95,0x1a,0x64,0xc3,0xfd,0xc0,0xd3,0x71,0xf4,0x79,0x19,0x79,0xa5,0x30,0xf8,0x2c,0x28,0xc2,0xc2,0x9d,0x12,0x50,0x95,0x38,0xec,0xd5,0xc6,0x28,0x94,0xaa +.byte 0x83,0x66,0x3b,0xe3,0x51,0xc7,0x6a,0x75,0x2a,0x9b,0xb9,0xb0,0xa2,0xe1,0xfd,0xaf,0x58,0xd2,0x4b,0xf4,0x22,0xef,0x77,0x1e,0xa0,0x00,0xd7,0x9e,0x20,0x63,0x87,0x1d,0x98,0xab,0x0e,0x57,0x31,0x4b,0xda,0x90,0x3a,0xe6,0x6e,0x5e,0xd4,0x17,0x06,0x83,0x4f,0x90,0x33,0x1c,0xe5,0xea,0xf7,0x8d,0x95,0xa2,0x1e,0x7d,0x27,0x15,0x49,0x68 +.byte 0x3a,0x54,0xe3,0x1e,0x60,0x72,0x42,0xa6,0x8c,0x5b,0x63,0x1d,0x7d,0xb1,0xe2,0x7e,0x8b,0x19,0xf4,0x25,0x6c,0x77,0x64,0x15,0x5e,0x4c,0xfa,0x35,0x68,0xd2,0x54,0x11,0x5a,0xac,0x85,0xb0,0xb3,0xe8,0xa8,0x70,0x36,0xa8,0xe5,0x04,0xd1,0x82,0xdc,0x62,0x63,0xe6,0x3f,0x86,0x46,0x77,0x08,0x6b,0xa8,0x09,0xd0,0x56,0x09,0x87,0x9c,0x65 +.byte 0x8e,0x53,0xae,0xa6,0x2b,0x59,0x23,0xca,0xe9,0xc7,0xc4,0xb5,0xb9,0xca,0x20,0xf6,0xcc,0x62,0xfd,0xb5,0x66,0x66,0x86,0x99,0xb2,0x5a,0xeb,0xac,0xff,0x22,0xf4,0x94,0x9c,0x6d,0xc9,0xce,0xf3,0x8d,0x26,0x7f,0x06,0x40,0x71,0x8b,0x3e,0x5c,0x3e,0xe6,0x11,0x64,0x91,0x79,0xbe,0x66,0x80,0xd2,0xf6,0x2d,0x28,0x4b,0x6c,0x8d,0x9c,0x5b +.byte 0x1e,0xd1,0x15,0xb0,0xdf,0xfb,0x57,0xaf,0x4a,0xab,0xde,0x12,0xe9,0xb8,0x41,0x3d,0xc3,0xff,0xb2,0xc1,0x86,0xb0,0x06,0x5b,0xaf,0xa4,0x30,0x62,0xd0,0xd8,0x91,0x36,0x28,0xc1,0xc2,0xef,0x60,0x5d,0x42,0x04,0xd5,0x6b,0x10,0xa9,0x6c,0x88,0x5c,0x56,0x59,0x4a,0x87,0xdc,0x7c,0x41,0x03,0xb3,0x7c,0x35,0x8c,0x52,0x0e,0xc1,0xd5,0xdf +.byte 0x9b,0x8a,0x2e,0xc2,0x6b,0x06,0x7f,0xb4,0x93,0xc9,0x52,0xd0,0xc5,0x57,0x78,0x9e,0xf9,0x08,0x36,0xbc,0x4b,0xc1,0xbd,0x71,0x35,0xf8,0x73,0xae,0x9c,0xbc,0xf1,0xd1,0xba,0xe3,0x7f,0x49,0x9b,0x9b,0xb3,0xe2,0x7d,0x7d,0x18,0x6d,0x0d,0x96,0xe3,0x50,0x28,0xf2,0x7c,0x7a,0x71,0x27,0x33,0x3c,0xd3,0xeb,0x3d,0x5a,0x79,0xb5,0x69,0xed +.byte 0x40,0x38,0xbe,0xc9,0xad,0x11,0x7b,0x9d,0xe6,0x71,0xc8,0x89,0x54,0x51,0xf0,0x8f,0xdc,0xad,0x96,0xc3,0x04,0x60,0x5f,0x6d,0xa0,0x37,0xba,0x1c,0x69,0xca,0x42,0x26,0xeb,0x31,0x34,0x8d,0xae,0x25,0xe2,0x29,0x8d,0x19,0x9f,0xfa,0x75,0x91,0x4b,0x51,0xcd,0x76,0xd6,0x8f,0xa2,0x40,0x79,0xc3,0xbb,0x61,0xaf,0xc4,0x69,0xf5,0x8b,0x8a +.byte 0xb6,0x2c,0x25,0xb9,0x3c,0x8e,0x13,0xa4,0x0f,0x52,0x72,0x11,0x4b,0x89,0x63,0x01,0x05,0x54,0xd5,0x0d,0x5f,0x91,0x59,0x84,0x64,0xac,0xf7,0x9c,0xa3,0x48,0x31,0x4a,0x2e,0xea,0xf8,0xf8,0x0e,0xf0,0xd9,0x4d,0x06,0x60,0x11,0x4a,0x72,0x6f,0x93,0x93,0x85,0xf0,0x20,0x55,0x8b,0x37,0xf1,0x29,0x92,0x2d,0x1f,0xa1,0x6c,0x7c,0x90,0x4f +.byte 0xdb,0x78,0xcc,0x6c,0xb2,0x14,0x85,0x07,0x34,0xc8,0x98,0x18,0x52,0x2d,0x6b,0x13,0x63,0xc5,0x31,0x20,0x8e,0xa9,0x88,0x6b,0xb3,0x3f,0x1a,0x68,0x2f,0xf9,0xf3,0x97,0x29,0x68,0x22,0x89,0xb0,0x45,0xc4,0xf4,0x1f,0x31,0xba,0x97,0x14,0x59,0xae,0x05,0xe0,0x99,0x5b,0x29,0xcf,0xe3,0xf0,0x2a,0x0c,0xca,0x5f,0xc1,0xe7,0xe7,0x11,0x48 +.byte 0x73,0xc0,0x86,0x0b,0x59,0xc2,0x8a,0xfa,0x44,0x51,0x1c,0x84,0xdf,0x2f,0x4d,0xab,0xca,0xea,0xe1,0x48,0x9a,0xa1,0x86,0x60,0x47,0x7a,0x86,0x30,0x6a,0xba,0xbe,0x6a,0x9b,0x34,0xf4,0x52,0x0e,0xae,0x7f,0xbd,0xe0,0xf4,0x5f,0xfd,0xbc,0x57,0x02,0x95,0x6f,0xad,0x78,0x2e,0xa7,0x46,0x1c,0x2d,0x98,0x40,0xb7,0xfa,0xb5,0x08,0xee,0xb5 +.byte 0x25,0x51,0xaa,0x1a,0x14,0x41,0x48,0xe0,0x8f,0xe7,0x2f,0xfc,0xfd,0x47,0x10,0x55,0x90,0x02,0xeb,0x7f,0x0d,0x40,0xa8,0x4b,0x82,0xdc,0xab,0x43,0x35,0x62,0xa1,0x1d,0x5a,0xb0,0xc0,0x93,0x75,0x3d,0x68,0xd9,0xf8,0x31,0x22,0xfd,0x30,0xda,0xea,0xea,0x7c,0x30,0xf8,0x6f,0x75,0x5f,0x07,0x39,0xfe,0x69,0x93,0x73,0x22,0xa2,0x72,0xed +.byte 0x39,0x2f,0x00,0x5c,0xc3,0x14,0x86,0x90,0xda,0xc9,0x09,0x43,0x80,0x85,0x22,0x98,0xb0,0x4e,0x05,0x47,0x8f,0xc7,0xba,0x2e,0x4c,0x8f,0x57,0x8a,0xe9,0xb0,0x97,0x3b,0x51,0x12,0xcb,0x88,0xfd,0x5e,0x7f,0xa6,0xc6,0x00,0xd0,0x3a,0x3a,0x70,0x9e,0x56,0x28,0xa0,0x08,0x76,0x58,0x57,0x4a,0x0f,0xff,0x31,0x44,0x08,0x6c,0x23,0x79,0xad +.byte 0x35,0x95,0xc5,0xc8,0x26,0x0f,0xb3,0x17,0x04,0x1d,0xde,0x16,0x5d,0xb8,0x71,0x76,0x89,0x0b,0xd6,0xd8,0x9d,0xa1,0xdf,0xcb,0xb5,0x1c,0x86,0xc3,0x15,0x8d,0xaa,0x25,0x82,0xbf,0x6b,0x06,0xfb,0x1b,0xf5,0x11,0xaa,0x14,0x0e,0x67,0x7f,0xbd,0x46,0x21,0x8f,0x6d,0xbd,0x63,0xe6,0x14,0x05,0xa2,0xee,0x56,0xee,0xe6,0x37,0xf9,0xc0,0x2f +.byte 0xc9,0xe0,0x8e,0xdb,0xf7,0xf6,0xcb,0x83,0x79,0xcc,0xe3,0xf6,0x30,0x9d,0x56,0x31,0x40,0xd2,0x50,0x25,0xb6,0x89,0x16,0x97,0x65,0xd8,0x8d,0x1a,0xa5,0xf4,0x47,0xfc,0x4c,0x73,0x07,0x42,0x9c,0x8f,0x7f,0x10,0xb4,0x96,0x33,0x1e,0xe2,0xff,0x0c,0x33,0x35,0xbc,0x37,0x01,0x2b,0x67,0xda,0xca,0xcf,0x87,0xa2,0x38,0x71,0x6b,0xf4,0xcf +.byte 0xa6,0xc6,0x6a,0x90,0x5c,0xa0,0x8b,0x66,0x44,0xc7,0xc2,0x05,0x24,0xee,0x53,0x99,0xf3,0x07,0x78,0xb0,0x17,0xf8,0x11,0xf9,0x52,0x20,0x41,0xc5,0xdb,0x4e,0x92,0xd3,0xeb,0xd2,0x86,0xea,0x9b,0xc3,0x4c,0x1b,0x75,0xcd,0x15,0x0c,0xe0,0x28,0xe9,0xe1,0x99,0x98,0x96,0x33,0x06,0xea,0xa8,0x4e,0xde,0xc1,0x1c,0xfe,0x6c,0xca,0xac,0x6d +.byte 0xc4,0x3a,0x7d,0xd2,0x41,0xf5,0xb3,0x7d,0x1c,0x28,0x93,0x72,0xf8,0x08,0xc1,0x71,0x72,0x4c,0x41,0x68,0x38,0x80,0x2e,0x4b,0xa6,0xc5,0xc7,0xb4,0x24,0x29,0xd0,0xce,0xb2,0x3d,0xc4,0x60,0x5b,0xeb,0x2d,0x80,0x13,0xee,0x95,0x41,0xfe,0x49,0x6d,0x89,0xc0,0x7a,0x61,0x51,0x3f,0xbb,0x24,0x7c,0x64,0x5e,0x9f,0xf7,0x60,0x88,0x95,0xe8 +.byte 0x60,0xc5,0xf6,0xc3,0xc3,0xd4,0x43,0xce,0xf9,0x4e,0x35,0xf2,0xfa,0xb0,0x2b,0xe3,0xfe,0xb8,0x88,0x19,0xf2,0x89,0xc0,0xb5,0x00,0x61,0xc8,0xe5,0xaa,0xde,0x18,0xb4,0xd4,0x21,0xbe,0xcc,0x61,0xc7,0xc9,0xfe,0x22,0xcc,0x65,0xf6,0x79,0xe8,0x4d,0x1c,0x30,0x31,0x7a,0xd4,0xbc,0x98,0x2d,0x72,0x5e,0x5c,0x4f,0x7e,0x52,0x9c,0x95,0x20 +.byte 0x29,0xa4,0x0b,0xf7,0xb2,0x7d,0xcc,0xc3,0x8c,0x94,0xb0,0x09,0xf4,0x6f,0x59,0x63,0x91,0x2a,0x06,0x80,0x09,0x01,0x3c,0x73,0x83,0x42,0xa1,0x5c,0x0f,0x42,0xf4,0x74,0x3c,0x24,0x8c,0xbe,0x91,0x73,0xdf,0xf1,0xea,0x21,0xbd,0xc9,0x36,0x17,0xca,0x81,0x28,0xd9,0x4a,0xc4,0x2e,0xdf,0x4c,0x4f,0xbd,0x1e,0xbc,0xe9,0x32,0x12,0xd3,0x8f +.byte 0x48,0x9b,0x4f,0x49,0x23,0x54,0x15,0x15,0x14,0x8b,0x18,0x64,0x7d,0x08,0x7f,0xc4,0x56,0x01,0x94,0x4e,0x50,0xe8,0xf2,0x4a,0xb5,0x3c,0xa0,0xb5,0xaf,0x55,0x70,0x44,0x41,0x5c,0xe6,0x61,0x5a,0xbb,0xf2,0xe6,0xc9,0x05,0x33,0x45,0x8f,0xbc,0xe5,0x59,0x7f,0x66,0xc5,0x61,0x4d,0x1b,0xc7,0xee,0x45,0x7d,0x57,0x8f,0x6c,0x9d,0x8b,0x87 +.byte 0x98,0xa8,0x58,0xac,0x4a,0x31,0x79,0xd6,0x26,0x08,0x2f,0x28,0x3f,0x31,0x77,0xad,0xff,0xe1,0x9d,0xa8,0xf7,0xe0,0x76,0x66,0x48,0x00,0x52,0xe8,0x9a,0xb2,0x47,0x5e,0x0a,0x87,0x86,0xaf,0xf6,0x7d,0x46,0x78,0x66,0x68,0xf7,0x68,0x0c,0x6f,0x5c,0xd7,0x09,0xc0,0xd7,0x90,0x98,0xe2,0x5c,0x07,0xe9,0xd1,0x58,0x48,0x57,0x9f,0x48,0x99 +.byte 0x87,0xdf,0x06,0xc1,0x35,0x0f,0xd8,0xb0,0xa9,0xfa,0xdc,0x31,0x76,0xd1,0xad,0x47,0x80,0xe4,0x74,0xe0,0xda,0x4b,0x77,0x8b,0x71,0xab,0x9a,0x8e,0xd7,0x6b,0x91,0xb1,0xdb,0x78,0xd2,0x86,0xf7,0x61,0x1b,0xdc,0x34,0x57,0x32,0x51,0xee,0xd3,0xff,0xb2,0x6c,0x6a,0x79,0x90,0x9c,0x1f,0x6b,0xe7,0x43,0x20,0x05,0x4f,0x66,0x83,0xd0,0x56 +.byte 0xe1,0x21,0x63,0xf4,0xd6,0x96,0x91,0xcb,0x51,0x3c,0x13,0x88,0x97,0x26,0x88,0xda,0x7c,0xd4,0x0d,0xcb,0xdf,0xc2,0x7d,0xcd,0x2c,0x0e,0x28,0x23,0x21,0x5f,0xbe,0x5d,0x62,0x58,0x6c,0xa7,0x45,0xae,0x1f,0xac,0x35,0x53,0xdb,0x2c,0xa6,0x71,0xe4,0x11,0x5e,0x59,0xbe,0xd5,0x20,0x2a,0xc4,0xcd,0x4c,0x1b,0xe0,0x38,0xef,0x02,0x0c,0x5f +.byte 0x5a,0x1b,0xf9,0x1e,0x32,0x63,0xd7,0xa6,0x0f,0x1d,0x98,0xd5,0x3a,0x0f,0xf6,0xcc,0xfc,0xd6,0xb4,0x87,0xc5,0x76,0xd8,0x3e,0x72,0xb0,0x20,0xfe,0xb3,0xfc,0x48,0x4c,0xd1,0x71,0xcd,0x13,0xef,0xe8,0x40,0xd9,0x0d,0xf6,0x1d,0x5b,0xa4,0x26,0x56,0x8c,0x66,0xcb,0x18,0x5a,0x5f,0x86,0x43,0x2c,0xa4,0x1e,0x00,0x3f,0x09,0xbf,0x8e,0x61 +.byte 0xad,0x2a,0x44,0x97,0x35,0xb2,0xf3,0x50,0x5f,0xfa,0x01,0x74,0xbf,0x70,0x46,0x38,0xf1,0x15,0xaa,0x04,0xfe,0xe9,0x3f,0x43,0x2f,0x53,0xcb,0xea,0x5c,0x04,0x8e,0xe6,0x43,0xeb,0xc0,0xd9,0xbf,0x4a,0xc1,0xbc,0xf9,0x11,0xd5,0x33,0xdc,0x41,0x8e,0xfe,0x5e,0xf3,0x8c,0x80,0x47,0x46,0x01,0x9e,0xa9,0x2c,0x2d,0xd2,0x90,0x7f,0xce,0x7c +.byte 0x59,0x78,0xaa,0xbb,0x96,0x52,0x0a,0xf3,0x18,0x1f,0x0b,0x41,0xc1,0xd5,0x12,0x14,0x1a,0xe1,0x4e,0xac,0xf8,0x2a,0x56,0xfe,0x66,0x34,0x21,0xdf,0x1f,0x6a,0x02,0x85,0xd2,0x38,0xc0,0x39,0x5c,0xa7,0x3f,0xcc,0x2b,0x6f,0x69,0xe7,0xa7,0x0a,0x36,0xf1,0xa9,0x77,0x59,0x2c,0x44,0x8b,0x72,0xc9,0xc2,0x74,0x32,0x48,0x76,0x19,0x1e,0x49 +.byte 0x10,0xe6,0x46,0xdf,0x82,0x9b,0xad,0x4e,0x40,0x20,0xd7,0xd3,0xf5,0x5c,0xbc,0x25,0x94,0xd1,0x68,0xaf,0x29,0xc5,0xcd,0x1b,0x86,0x4b,0x88,0x21,0x6e,0xeb,0x06,0x14,0xb5,0x15,0xe7,0x26,0x01,0x05,0x4e,0x3a,0x2a,0x24,0xbe,0xf2,0x64,0x6e,0xf4,0x9c,0x60,0xf8,0xd4,0xfd,0x4b,0xc0,0x0e,0x68,0x0d,0x19,0x26,0x87,0xa5,0xbf,0xe1,0x16 +.byte 0xf0,0x27,0x58,0xa8,0x3a,0xed,0x27,0x5b,0x73,0x4f,0x19,0x40,0x58,0x36,0xf6,0xfd,0x60,0x37,0x09,0x74,0x3c,0xb9,0x76,0x9a,0x32,0xfd,0x98,0x79,0x53,0xb3,0xea,0x3a,0x98,0x21,0xf9,0xb2,0x97,0xe4,0x00,0xb6,0xed,0x67,0xc4,0x76,0x8f,0x1e,0x4d,0xc8,0x2e,0xf4,0x54,0xd9,0x09,0xd7,0xcb,0xa0,0x91,0x1e,0x5a,0x60,0x53,0xbc,0x3e,0x35 +.byte 0x69,0xa6,0xca,0xf3,0xce,0x41,0x84,0x71,0xee,0xf3,0x75,0xd4,0x7a,0x71,0x36,0x62,0xe3,0x08,0xae,0x40,0x05,0xde,0x01,0x34,0x92,0x5f,0x71,0xa9,0x08,0xb3,0x43,0xcd,0xe7,0x2f,0x42,0x7e,0x9c,0x1e,0xfe,0x9a,0x40,0x99,0x58,0x31,0xd9,0x8d,0x5d,0xda,0x75,0x14,0x3f,0xae,0x45,0x27,0x85,0x47,0x7d,0x41,0x0e,0x94,0x20,0xee,0x11,0xd0 +.byte 0x1e,0xcd,0x00,0x56,0xb7,0x59,0xe6,0x58,0xab,0x2c,0xa6,0x44,0x14,0x8c,0xff,0x49,0x7b,0xe5,0xf7,0x93,0xd5,0x78,0x1a,0xe0,0x16,0xd8,0x24,0x08,0x1e,0x70,0xce,0x1a,0x84,0x87,0x6b,0xe5,0xf2,0x43,0x5f,0xb3,0x34,0xaa,0x85,0x3e,0x9e,0x2e,0x86,0x22,0x74,0xe2,0x1a,0x87,0xfb,0x1b,0x6c,0x08,0x8c,0x43,0xb4,0x85,0x75,0x2c,0x13,0xc2 +.byte 0x18,0x94,0xe8,0x0d,0x09,0xd5,0x8f,0xd4,0xca,0x50,0x93,0x9f,0xa3,0x9f,0x3b,0x3c,0x54,0x68,0xa9,0xb1,0xdd,0x0a,0x0b,0xe2,0x15,0x92,0x9c,0x6f,0xfa,0x45,0x6f,0x0a,0xb4,0x6b,0xcb,0xdc,0xa4,0xf3,0xf0,0xa6,0x1c,0x8a,0x60,0x42,0x35,0xa8,0xe3,0xdf,0xc8,0xdc,0xbb,0xbe,0x95,0xa7,0xac,0x08,0x08,0xbc,0x56,0x1a,0xa4,0xc2,0xd2,0x53 +.byte 0xfa,0xb2,0x89,0x4f,0xb8,0xe4,0xb9,0x90,0x95,0x91,0x2f,0x0f,0x93,0xa9,0x8c,0xc6,0xf8,0x01,0x34,0x08,0xe6,0x8c,0x58,0x43,0x57,0x40,0xf9,0x78,0x83,0xea,0x92,0x70,0xa8,0xa5,0xc8,0x9e,0xf8,0xc6,0x39,0x4c,0xb4,0xe9,0xbb,0xdf,0xd2,0x52,0x43,0x6b,0x6c,0x8b,0x2c,0x47,0xd7,0x11,0x42,0x3d,0xc7,0x3f,0xce,0xd1,0xd9,0x28,0x5b,0xce +.byte 0xec,0xb6,0x31,0x3a,0xc9,0xad,0x0c,0x93,0x82,0x2b,0xf6,0xdc,0xd4,0xcd,0x80,0xe1,0x75,0x45,0xeb,0x3b,0xbf,0x12,0x42,0xeb,0x71,0xc1,0x8b,0x27,0xd5,0xcb,0xd9,0xb6,0xe8,0xe9,0xc6,0x79,0xff,0x38,0x88,0x87,0x72,0xf2,0x71,0x4a,0x44,0x55,0x0f,0x9c,0x93,0xcf,0x15,0x18,0x44,0x62,0x2a,0xc5,0x0a,0x80,0x69,0x91,0x6e,0x4b,0x30,0x4e +.byte 0x3f,0x2f,0xb5,0x65,0x9e,0x65,0x07,0x36,0x9b,0xba,0x5f,0x81,0xd9,0x60,0xbe,0x1f,0xf5,0x98,0x20,0xf9,0x9e,0x53,0xf7,0x5d,0x57,0x7f,0x22,0xaf,0x8e,0x82,0x9e,0x0f,0x33,0x74,0x37,0x26,0x61,0x67,0xf6,0xfd,0x2c,0xab,0xd8,0x18,0x1d,0x10,0x48,0x7a,0x1d,0xed,0xbb,0x57,0x83,0xf9,0x82,0xf5,0xe3,0xf9,0x98,0x5c,0xc0,0x3e,0xee,0x38 +.byte 0x0a,0x57,0x10,0x22,0xc4,0xe8,0x1d,0xe3,0x46,0xa3,0x81,0x5e,0x92,0xba,0xcc,0x53,0x48,0x85,0x33,0x58,0xa2,0x3e,0xea,0x0a,0xfb,0x72,0x5c,0xcd,0xd9,0xa4,0x3f,0x56,0x99,0x35,0x92,0x6c,0xe8,0xf2,0x59,0x0f,0xc8,0x6a,0x21,0xb2,0x9f,0xa2,0xf6,0xf3,0x1b,0xec,0x38,0x95,0xed,0xef,0x00,0x09,0x16,0x6e,0xf7,0xf8,0x1a,0xef,0x0d,0x2b +.byte 0xef,0x83,0x8a,0xc2,0x22,0x3d,0x50,0xa3,0x70,0x52,0xe8,0xad,0x11,0x44,0x83,0x80,0xfe,0x88,0x7e,0x40,0x02,0x8f,0x4a,0x5d,0xd3,0x28,0x66,0x75,0x5a,0xf2,0x38,0xb5,0xdc,0x54,0xa8,0xb3,0xaa,0x76,0xdb,0x73,0xe0,0xd1,0xd7,0x51,0x20,0x8c,0x38,0x18,0x46,0x25,0x2e,0x0d,0x5b,0x61,0x9d,0x36,0x9a,0x14,0xfb,0xc8,0x4e,0x5a,0xba,0xa1 +.byte 0x98,0x34,0xfd,0x05,0x2c,0x87,0x58,0x8d,0xe3,0x5d,0x79,0x5a,0x45,0xff,0x75,0x25,0x98,0xbd,0xe4,0x9d,0x1a,0x70,0x79,0xaa,0x44,0x1a,0x10,0x7f,0xfb,0xe9,0x30,0x81,0xc7,0xa2,0x81,0x41,0x49,0x41,0x4e,0x42,0x5f,0x8a,0x9b,0x10,0xe2,0xdc,0xd9,0xdf,0xbd,0x61,0x29,0x72,0xa5,0x39,0xb7,0xf6,0x9f,0x4e,0x98,0xb8,0x04,0xae,0xd7,0xda +.byte 0x9a,0x9f,0x08,0xb8,0x2c,0x40,0x14,0x6d,0x01,0xb7,0x86,0x58,0x55,0x42,0xe5,0xdb,0x5f,0x4a,0xef,0xd8,0xed,0xdf,0x3b,0x24,0x1c,0xe4,0xb1,0x73,0xd1,0xce,0x29,0x96,0xde,0x8e,0xf3,0x1d,0x8d,0x75,0x57,0xd3,0x9a,0xf8,0xff,0x1a,0x4c,0x0c,0x47,0x82,0x83,0x73,0x34,0x43,0x55,0xfa,0xf2,0xd4,0x38,0xed,0xde,0x6d,0x24,0x55,0x90,0x06 +.byte 0xd6,0x03,0x52,0x28,0xc7,0x38,0x4a,0x16,0x95,0x4d,0xf4,0x46,0x56,0xf7,0x63,0x1f,0xe4,0xa9,0x51,0xc6,0x0b,0x85,0x42,0x40,0x8e,0x49,0x1e,0xc2,0xab,0xeb,0xda,0x99,0x26,0xf6,0x6e,0x00,0x8f,0x26,0x82,0xef,0x03,0xb0,0xd4,0xdb,0x54,0x46,0xdf,0xdc,0x23,0xaf,0xa8,0x6a,0x9f,0xb7,0xf9,0x41,0x07,0x5e,0x2d,0xcf,0x85,0xfd,0x9c,0x46 +.byte 0x30,0xb9,0x14,0xca,0xe2,0x30,0x12,0x06,0x88,0x08,0x05,0x2c,0x9a,0x4b,0x52,0x98,0xa9,0x99,0xd7,0xca,0xb5,0x1e,0x60,0x44,0xd9,0x5c,0x19,0x42,0xbe,0xa5,0x04,0xfd,0x7a,0xfc,0xb9,0xdf,0xd6,0xe3,0x6d,0x02,0xe3,0x96,0xf6,0xae,0xf3,0x78,0x1d,0x90,0x6d,0x86,0x17,0xf7,0xb7,0x6b,0x1d,0x52,0x32,0x5b,0xc0,0x31,0xaf,0x09,0x90,0x5e +.byte 0x81,0x75,0x17,0x47,0x6b,0x5e,0x9a,0x40,0xa5,0xa8,0x84,0x60,0xdc,0xdb,0xd2,0x89,0xcd,0xb2,0x72,0xf4,0x74,0xda,0x5d,0x34,0xf8,0xc6,0x1b,0x26,0x3e,0x8b,0xc7,0x73,0xf9,0x0c,0x93,0xf4,0x40,0x02,0xe0,0xed,0xe5,0xa0,0xae,0x91,0x03,0x85,0xa8,0x2f,0xe2,0x72,0xfe,0x17,0x7d,0x2b,0xa6,0x39,0x10,0x80,0x4c,0x58,0xaa,0xd8,0x22,0x7d +.byte 0x2f,0xbf,0x0c,0x40,0x48,0xfa,0xbe,0x40,0x4c,0x32,0x96,0x69,0xa5,0xab,0x0b,0x1e,0x33,0x9b,0xcf,0xe6,0x4e,0x2b,0x41,0x5a,0x21,0x23,0xa1,0xbb,0xd3,0xd6,0xd1,0xfd,0xbd,0x55,0xfc,0x92,0x92,0xcb,0x4b,0x72,0x39,0x8b,0xeb,0x72,0xdd,0xf7,0x77,0x43,0x52,0x2f,0x99,0x14,0x6e,0x41,0xce,0x1d,0x57,0x2c,0x09,0xd2,0x18,0xec,0x1b,0x89 +.byte 0xa0,0xe9,0xfe,0x1e,0x41,0xda,0x0f,0x76,0x02,0x38,0xec,0x9a,0x30,0xb7,0x5a,0x54,0x70,0xbc,0xe8,0xfa,0x06,0xd0,0x80,0xfb,0x27,0xd2,0xd8,0x00,0x80,0x65,0x9d,0x23,0xfd,0xad,0x26,0xb8,0xdc,0x09,0x4f,0xfb,0x52,0xcd,0xe4,0x41,0x68,0xca,0xdd,0xbc,0x2a,0x62,0xeb,0xa6,0x32,0x71,0xb0,0x08,0xb6,0x9f,0x3e,0x74,0xfe,0xb0,0xd4,0x9d +.byte 0x9e,0x6c,0x50,0x96,0x8a,0xde,0xd6,0xe9,0xde,0x2c,0xa6,0xf0,0x9f,0x67,0x00,0x50,0x0a,0x8c,0xe5,0xc2,0x37,0xcc,0xf0,0x53,0xeb,0x72,0xf2,0x87,0x77,0xee,0x80,0xe8,0xb2,0xa1,0x13,0x52,0x70,0xe6,0x8f,0x70,0x17,0x90,0x60,0xcb,0xac,0xb2,0x72,0xef,0xd9,0xb5,0xc3,0x68,0x57,0xdf,0x2d,0xcb,0x5a,0x35,0xf9,0x2e,0xfb,0xef,0x6e,0x77 +.byte 0x5d,0x21,0x37,0x4b,0x36,0x9b,0x3f,0x03,0x65,0xc9,0x84,0xb1,0x12,0x99,0xd1,0x6b,0x00,0x71,0x37,0xc7,0x57,0x82,0x44,0x7f,0xe1,0x81,0x24,0x70,0x96,0xd5,0x27,0xba,0x36,0xf7,0x25,0xc6,0x1c,0x7c,0x1b,0xdb,0xa3,0x6a,0x3e,0xb9,0x69,0x78,0xf7,0x51,0x46,0xe2,0x74,0xd3,0xfc,0xef,0x58,0x63,0x53,0x1d,0xd7,0xd0,0x8a,0x6a,0xd3,0xb0 +.byte 0xb9,0xbb,0xba,0x43,0xbf,0x8b,0x6b,0x04,0xd2,0xb1,0xe8,0xd1,0x72,0x3f,0xdc,0x2b,0x01,0xa6,0x2f,0x9c,0x7d,0x65,0xa1,0x9f,0x9b,0x4d,0x70,0x26,0x11,0x4c,0xb2,0xe1,0x01,0x0e,0x78,0xf2,0x32,0x87,0x2d,0x8e,0x95,0x02,0x76,0xca,0xe5,0x71,0x5f,0x36,0x35,0xb9,0xbb,0xc3,0xdf,0xf3,0x1e,0x1a,0x7a,0xe4,0x2c,0xdf,0x64,0x5d,0x96,0x12 +.byte 0xea,0x5c,0x14,0x73,0xa0,0xf1,0xbc,0xa9,0x6e,0x30,0x8a,0x47,0xf0,0x4b,0x9b,0x4c,0xc5,0xb0,0xbe,0x15,0x32,0x1b,0xde,0x0c,0x39,0x6a,0x6d,0x4e,0x3b,0x69,0x4c,0xb4,0x1f,0x56,0xf0,0xa1,0xb1,0x8c,0x29,0x5c,0x87,0x54,0xf2,0x5b,0x51,0x03,0x20,0x70,0x90,0x38,0x66,0x07,0xcc,0xd7,0xde,0x96,0x40,0x82,0xee,0xb5,0x87,0x2a,0x86,0xec +.byte 0x66,0x09,0xb7,0x4a,0xfe,0x4e,0x92,0x89,0x07,0xde,0x35,0xc4,0x6e,0x91,0x25,0xfd,0x18,0xfa,0xd9,0x8f,0xa7,0xa6,0xa7,0x6b,0x32,0xba,0xd3,0x1c,0x90,0xb9,0x8a,0x6c,0x9f,0x3f,0xb5,0x16,0x81,0x81,0xee,0xd7,0x55,0xc1,0x41,0x62,0xfd,0xe9,0x4c,0x5d,0xd7,0x70,0xdd,0xc6,0x4a,0x2b,0x42,0x77,0xe7,0x74,0xed,0x02,0x80,0x0d,0x7c,0x73 +.byte 0x8e,0xf0,0xd3,0xb0,0x20,0xbb,0xc8,0x82,0x06,0xdd,0x56,0x64,0xcb,0x9c,0xda,0xa1,0xa9,0x92,0xbc,0x8c,0x65,0x03,0xcd,0x68,0x87,0xa2,0x94,0x41,0x3c,0x36,0x96,0x1f,0xa4,0xd2,0x6d,0x5d,0x9f,0x2d,0x0c,0xf9,0x8a,0x82,0x19,0x93,0x47,0x62,0x71,0x8e,0x59,0xaa,0xf1,0x87,0xe0,0xb8,0xab,0x10,0x7f,0x4e,0xa8,0xa3,0xe2,0x32,0x58,0xb0 +.byte 0xcf,0x12,0xc0,0xf8,0x94,0x4a,0x61,0x36,0xdc,0x2d,0xb5,0x91,0xf9,0x0f,0x7d,0x91,0xd3,0xc7,0x03,0x8a,0xae,0x5c,0x22,0x8c,0x60,0x30,0xf4,0x71,0x51,0x00,0xf5,0x5d,0xe9,0x37,0x6c,0xae,0x64,0xff,0x45,0x35,0x4b,0x47,0x08,0xca,0xda,0x7b,0xe9,0xef,0xcb,0x27,0xcb,0x7e,0x3c,0xa6,0xd2,0x38,0x54,0x74,0xc3,0x7c,0xf8,0x71,0xb7,0x47 +.byte 0xe9,0xe0,0x43,0x03,0x3b,0x41,0x57,0xc3,0xda,0xa1,0xcb,0x64,0xb1,0x31,0x0d,0x12,0x45,0x3a,0xa0,0xad,0x6b,0xc7,0x26,0x62,0x50,0xcf,0x94,0x5a,0x30,0x8d,0xf6,0x91,0x49,0x9e,0xd5,0x84,0x0e,0x0c,0xe3,0x47,0x08,0x7f,0xa1,0x54,0x78,0x1b,0xa8,0x2c,0xbc,0x12,0x4f,0x7e,0x53,0x1b,0xca,0xfb,0x09,0x35,0xe0,0x9c,0x15,0xea,0xf6,0x3e +.byte 0xb2,0x20,0x9e,0x2c,0x81,0x6f,0xa4,0xb5,0x6b,0x04,0x6d,0xd1,0x90,0x66,0x46,0xdc,0x4b,0x71,0x7e,0x4b,0x3f,0xd6,0xe1,0xa8,0xc0,0xa7,0x45,0x85,0xe3,0x98,0x30,0xda,0x23,0x68,0x55,0xd8,0x96,0xb1,0xcc,0xeb,0xe1,0x95,0x0b,0x20,0xf3,0x4c,0xf2,0xc5,0xfa,0x0e,0xca,0xf5,0xc9,0xb3,0xd7,0xb4,0x1b,0x9f,0xef,0x82,0x56,0x4c,0xc5,0xa5 +.byte 0x21,0xda,0xcc,0x19,0x69,0x68,0xcb,0x37,0xb2,0x0c,0x73,0xb1,0x13,0x61,0x6b,0xca,0xda,0xfc,0xf7,0x1c,0xbc,0xd1,0x72,0x56,0xb8,0x7d,0xa1,0xef,0xc4,0x32,0x38,0xa3,0xdb,0x8b,0x2d,0x0a,0xce,0xcb,0x86,0x51,0x60,0xd2,0x47,0xf0,0x97,0x58,0xd8,0xa5,0x12,0x77,0xfc,0x32,0x04,0x29,0x61,0xfc,0xab,0xc2,0x42,0x86,0xd9,0x57,0x80,0xad +.byte 0x00,0xf0,0x9a,0x2a,0xac,0x52,0x27,0xd6,0xf8,0xd6,0x38,0xc8,0xfc,0xc1,0xab,0x4f,0x41,0xbf,0x8e,0x60,0x20,0xeb,0x24,0x36,0xd8,0xd8,0x25,0x6f,0xc8,0x5d,0x6b,0x00,0xdd,0x7a,0xe2,0x37,0xe4,0x13,0xd0,0xaa,0x5c,0x56,0x32,0x98,0x00,0x4b,0x8a,0x81,0xb1,0xfa,0xe8,0xf3,0xfa,0x0d,0xbb,0x66,0x6e,0x24,0xfd,0x3c,0x50,0x63,0x3a,0xf1 +.byte 0x72,0x63,0x18,0x71,0x6d,0xee,0x6f,0xf1,0x0e,0x1f,0x9e,0x9d,0x87,0x12,0x5c,0xdf,0x1d,0x9e,0xc0,0x0b,0x39,0x0e,0xd6,0x56,0x79,0x30,0xcb,0x07,0x7b,0x88,0xa5,0xbe,0xfd,0xd4,0x49,0xcc,0x92,0x6a,0xcc,0x78,0x1e,0xaf,0xee,0x89,0xc8,0x51,0x08,0x98,0x14,0x20,0xe5,0x52,0x93,0x18,0x6f,0xbb,0xdc,0xb2,0x68,0x14,0xd1,0xdb,0xe8,0x56 +.byte 0x24,0xd0,0x34,0xab,0xa6,0xfa,0xfe,0x72,0x5a,0xe3,0xe1,0x87,0x0d,0xf4,0xfa,0xa6,0xa6,0x6c,0xb6,0xcb,0xf8,0xfc,0x59,0xac,0xd9,0xb0,0xcd,0x15,0xa4,0x37,0x73,0x6e,0x70,0xc9,0x74,0xef,0x87,0x78,0x61,0xc2,0xd0,0x52,0x51,0xa9,0x2c,0xdb,0x9d,0xd9,0x3d,0xac,0xcd,0x52,0x39,0x69,0x2d,0x2a,0x4f,0xf3,0xb2,0x69,0xb9,0x01,0x3c,0x57 +.byte 0xeb,0x1b,0x0e,0x87,0xe9,0x42,0x58,0x83,0x6b,0xbc,0x72,0xc8,0x46,0x32,0x42,0x17,0x6a,0x19,0xa0,0xb3,0xf1,0x1c,0x96,0x9c,0x11,0x09,0x8b,0xc1,0x9e,0xe9,0x7f,0x18,0x8e,0xca,0xea,0x24,0x1b,0xce,0x12,0x57,0x1d,0x34,0xbe,0x60,0x60,0x2c,0xd8,0xa0,0x61,0x73,0xd6,0xf8,0xaf,0x15,0x26,0x84,0xd7,0xec,0xc0,0xbe,0x7e,0xa1,0xa8,0xba +.byte 0x2b,0xcc,0x20,0x67,0x6e,0xea,0x48,0x79,0x23,0xea,0x14,0x36,0x85,0x0a,0x56,0x3a,0xcd,0x5b,0x51,0xa4,0xf5,0x92,0x49,0xc2,0x55,0x62,0xed,0x88,0xde,0xd0,0x0c,0x01,0x36,0xb9,0x2e,0x94,0x80,0x75,0x8a,0x21,0x0a,0x07,0x45,0x68,0xd8,0x9d,0x49,0x7b,0xa7,0xb2,0x84,0xfa,0x3c,0xc4,0xd5,0x59,0xf9,0xc3,0xff,0xcf,0xe4,0x5f,0xea,0xbb +.byte 0x0f,0xae,0x7d,0x96,0xd3,0xe9,0x38,0xd1,0xb1,0x02,0xf6,0x4b,0x95,0x43,0x1c,0x69,0xa6,0x99,0xf5,0xdb,0x46,0x62,0xea,0x69,0x5a,0x08,0x2d,0x01,0x11,0xed,0x70,0x03,0x60,0x54,0xba,0x32,0x2c,0x0e,0x44,0x1f,0x8d,0xee,0x2e,0x39,0xab,0xc0,0xd4,0x88,0x11,0xef,0x07,0x3a,0x47,0xb9,0x6e,0x0c,0x22,0x9a,0xf3,0x89,0x01,0xfb,0xb8,0x2d +.byte 0x52,0xa0,0x42,0x4c,0xb3,0x9e,0xf5,0x4b,0x0c,0x78,0x0a,0x3b,0x29,0xae,0x4a,0xc0,0xb2,0xa3,0xc0,0x0d,0x38,0x07,0x49,0x9c,0xda,0x7c,0x48,0x81,0xba,0x53,0x0d,0x0d,0x78,0x8c,0xac,0x9b,0x3d,0x1f,0xaa,0xc1,0x32,0x54,0xca,0x54,0xe1,0xef,0x46,0x82,0x61,0xd0,0x88,0x04,0x53,0xb0,0x34,0xc2,0x23,0x9a,0x90,0xe3,0x73,0x9c,0x0d,0x46 +.byte 0x61,0xe5,0xc0,0x42,0x87,0x4a,0x3b,0x3a,0xf9,0xab,0xbe,0x4c,0xba,0x2f,0x88,0x03,0x6b,0x52,0x25,0x8c,0x9b,0xc0,0x13,0xb6,0x80,0x09,0x85,0x97,0x64,0x6d,0x65,0xcd,0x18,0x42,0x00,0xdf,0x76,0x4d,0x67,0xbf,0x04,0x7a,0x5f,0x7e,0x3a,0x5c,0x6f,0x1d,0x12,0x5b,0xbe,0xd2,0xc8,0xe5,0x09,0x45,0x4d,0xae,0xed,0xd8,0x77,0xc5,0x6f,0xb6 +.byte 0x43,0x09,0xe2,0xee,0xc9,0x5a,0x76,0xc5,0xeb,0xdd,0x96,0x23,0xb9,0xe5,0xfc,0xf2,0x3c,0xe1,0x67,0x5f,0x1b,0x10,0x39,0x47,0x67,0x8b,0x48,0x32,0xd0,0xbc,0xa0,0xa8,0x3e,0xc3,0x30,0x21,0x18,0x54,0x49,0xfe,0x8a,0x14,0x7a,0xe5,0x6e,0xbe,0x70,0xec,0xf6,0x97,0xa0,0xa4,0xf4,0xdd,0xaf,0xf2,0xde,0x50,0x1a,0x68,0xb9,0x1a,0x4b,0x37 +.byte 0xf8,0x29,0x16,0x4f,0x8c,0xa5,0x9e,0xd2,0x72,0x7f,0xf6,0x6b,0x7d,0xac,0xe4,0x17,0x93,0x39,0x8f,0xd9,0xdf,0x50,0x1f,0xce,0xf5,0x58,0xdd,0xcd,0xc2,0xb9,0x64,0xfc,0xad,0x8a,0x3c,0x2e,0x52,0x58,0x91,0x3b,0x78,0xb4,0xfd,0x4a,0x3b,0x13,0x5d,0x20,0xd5,0xdf,0xe7,0x52,0x3d,0x4c,0x2f,0x02,0x30,0xfc,0x24,0x17,0x99,0x6e,0x4b,0xfe +.byte 0x1d,0xf0,0xe6,0x86,0x32,0x37,0xb5,0xd5,0x09,0xa3,0xa5,0x3b,0xc1,0x88,0x9f,0x01,0x57,0x12,0x03,0x1d,0x60,0xd8,0x57,0xba,0xc6,0xfc,0xda,0xab,0x02,0xbe,0xab,0x89,0xf9,0x08,0x63,0xbd,0x42,0x11,0xf7,0xbf,0xd3,0x45,0x2b,0xa5,0x34,0x91,0x18,0xb9,0xb3,0x79,0xb4,0x15,0xa1,0x01,0x1a,0xf9,0x74,0x91,0x08,0x94,0xb2,0xf3,0xb2,0xca +.byte 0x0a,0x3a,0x4f,0x42,0x8a,0x16,0xf7,0x9e,0xbf,0x27,0x72,0x7b,0xff,0xd3,0xb9,0x4e,0xf5,0x8e,0x68,0xb5,0x91,0x23,0xef,0xeb,0x5d,0x7d,0xd8,0xc9,0xda,0x07,0x33,0xc9,0x1c,0x4a,0x7a,0xf2,0x72,0x64,0xb3,0x35,0x2e,0x54,0xec,0xc4,0xd9,0xee,0xea,0xda,0xfe,0x8b,0x1c,0x21,0x93,0x52,0x95,0x7c,0x2d,0xfe,0x56,0x05,0xdd,0x57,0x37,0xf2 +.byte 0x54,0x1c,0xe2,0x6c,0xc0,0xaa,0x71,0x67,0xdd,0x73,0x43,0x17,0x3e,0x76,0xdb,0x60,0xb4,0x66,0x62,0xc7,0x74,0x08,0x91,0x1f,0xd5,0x4c,0xa9,0xd0,0x34,0x33,0xea,0xb0,0x2c,0x0a,0x88,0xda,0xf7,0xca,0x91,0xf6,0x5f,0x9e,0x72,0xf6,0x18,0xf9,0x19,0x9d,0x84,0xf8,0x4c,0xe1,0xeb,0x45,0x29,0xaa,0xf2,0xa6,0xfd,0x64,0xf9,0x0b,0xfe,0x09 +.byte 0x1c,0xc2,0xde,0x19,0xdd,0x0f,0x02,0x16,0x65,0x70,0x33,0xd4,0x32,0x67,0x7b,0xc4,0xbb,0x11,0x60,0x4f,0xc3,0x4d,0x29,0x23,0x7e,0x84,0x58,0x51,0x43,0x7e,0x25,0x4f,0x3d,0xd4,0xe0,0x20,0x79,0xfd,0xce,0x59,0x49,0xf8,0xd1,0x53,0xca,0x2d,0x66,0xec,0xe5,0x7f,0xc8,0x14,0x06,0xc1,0x96,0x40,0xf2,0x61,0xa7,0x1b,0xf9,0x5e,0x97,0xfe +.byte 0x62,0x57,0x05,0xcc,0x6f,0x26,0x4b,0xa6,0x40,0x33,0x72,0x20,0xd3,0x1e,0x2b,0xb2,0x60,0xe7,0x56,0xda,0x87,0xd3,0xb4,0x5a,0x73,0x04,0xc9,0xc2,0x68,0xe3,0x18,0x74,0xd9,0x46,0x74,0x31,0xf4,0xf4,0xab,0xc4,0x0a,0xbc,0x66,0x4e,0x23,0x5f,0x92,0x7c,0x0a,0x81,0xdd,0xcc,0x79,0xee,0xb3,0x3d,0xc0,0x91,0x81,0xd0,0x79,0x39,0xd2,0x69 +.byte 0x5d,0xdc,0xc1,0x5c,0x61,0xb9,0x5e,0x87,0x32,0x73,0x70,0xd0,0xa8,0x7d,0xb5,0xd0,0xfc,0xf4,0xb6,0x55,0x9f,0x1f,0x8a,0xec,0xf4,0xb0,0x47,0xeb,0x3b,0x68,0x80,0x0b,0x79,0xd0,0x71,0x99,0xb1,0xd0,0xed,0x1f,0x9f,0x6c,0x2d,0x9d,0xae,0x1c,0x62,0x3b,0xec,0x3e,0x2f,0xb4,0x6f,0xbb,0x2e,0x1e,0xa9,0x7c,0xe8,0x5d,0x14,0x7d,0x0d,0x17 +.byte 0x6d,0x9c,0x54,0xce,0x64,0x93,0x8e,0x3b,0xa4,0xa9,0xfb,0xd9,0x44,0x06,0xbb,0xb8,0x7f,0xdf,0xd3,0xc2,0xa2,0xcf,0x5a,0xa2,0xa7,0xbb,0xb5,0x08,0xe2,0x67,0xdf,0x0e,0x4e,0xc6,0xcf,0x0a,0x79,0x1e,0xa5,0x60,0x1a,0x81,0xb1,0x8e,0x1b,0x27,0x7f,0x8d,0x28,0x50,0xa7,0x4a,0xe4,0x4b,0x61,0x6b,0xa9,0xfa,0xaf,0x82,0x83,0xfb,0x1f,0x2e +.byte 0xfa,0xce,0x18,0x0e,0x32,0x5f,0x5a,0xcf,0xac,0xaf,0x22,0x30,0x16,0xd7,0x97,0x99,0x0d,0xb8,0x92,0xa5,0x1d,0x44,0xb2,0xa5,0xc7,0x74,0xd2,0x81,0x8d,0x5c,0x38,0xda,0x9f,0x76,0xcb,0x47,0x6c,0xb7,0x08,0xd9,0xc1,0x52,0xd0,0x64,0x0a,0xf9,0xdd,0x3e,0xe8,0x99,0x15,0x4d,0xcb,0x7b,0x25,0x53,0x8c,0x13,0xb1,0xbf,0xb7,0xca,0x2d,0xce +.byte 0x71,0x48,0xee,0x5b,0x3a,0x01,0x5b,0xfd,0x22,0xfa,0x6f,0x17,0xcb,0x52,0xcc,0x0a,0x2b,0xbb,0x6d,0xce,0x2d,0x00,0xf5,0x9e,0x0d,0x58,0xf1,0xf4,0xa4,0x9f,0x13,0xf9,0x68,0x15,0xd7,0x02,0x41,0x6c,0x19,0x6b,0x66,0x9a,0x74,0xee,0xb4,0xb3,0xc7,0xec,0x60,0x19,0xbd,0xbb,0x97,0x22,0x7c,0x4e,0xe6,0xc6,0x00,0x03,0xa5,0x36,0x52,0xec +.byte 0x21,0xcf,0xc8,0xda,0x2c,0x14,0xa9,0xd8,0x75,0xab,0xea,0x05,0x8c,0x24,0x28,0x63,0xbd,0x58,0x35,0xd7,0x95,0xcb,0x14,0x89,0x04,0x99,0x7e,0x67,0x0d,0x07,0x35,0xdb,0x17,0x7c,0x72,0x2d,0xbc,0x89,0x9b,0xb4,0x16,0x21,0x2f,0x90,0xe8,0x8f,0xeb,0xc3,0x8d,0x86,0x0d,0x92,0xf6,0x4b,0x80,0x36,0x96,0x6b,0xd8,0x95,0x7b,0xad,0xe8,0xbf +.byte 0x77,0x9e,0xf4,0x93,0xcd,0xa5,0x06,0xbc,0x38,0xf2,0x57,0x25,0x54,0xfa,0x8e,0x19,0x8e,0x25,0x8e,0x3c,0x28,0xaa,0xf2,0x02,0x30,0xd4,0x47,0x89,0x36,0xb9,0xb7,0x01,0x5f,0x0c,0xd1,0x8d,0x93,0x7e,0xf0,0xf0,0xff,0x2f,0x8f,0xb5,0x97,0xa7,0x02,0xe8,0x9b,0xf2,0x51,0xe6,0x51,0x62,0xa5,0x27,0x26,0xc6,0x7a,0x39,0x7a,0xa9,0xaf,0x1e +.byte 0x03,0xd5,0x25,0xbe,0x3b,0x19,0x46,0xc4,0xdd,0xd6,0x5e,0x6a,0x18,0xc0,0x41,0x5f,0x53,0x89,0xd3,0x16,0xfb,0x3a,0x10,0xce,0x0d,0x8c,0x04,0x4c,0xcf,0xab,0xb9,0x0d,0x6c,0x45,0x6c,0x29,0xed,0x77,0x37,0x1f,0xd8,0x10,0x8a,0xfe,0x07,0xbd,0x7e,0xd7,0xa6,0x6b,0x80,0xde,0x3e,0x2c,0xa8,0xb1,0x38,0xcc,0xab,0x10,0x69,0x8f,0x58,0x3d +.byte 0x12,0xc7,0x9c,0xc1,0x0a,0xeb,0x3d,0x5e,0xf1,0x65,0xc6,0x09,0xcb,0x4b,0x09,0x24,0xa7,0x56,0x1d,0x1d,0x4c,0xd7,0x06,0xbd,0xe2,0x72,0x70,0xae,0x7e,0xe9,0xaa,0x97,0x6d,0xec,0xcb,0x55,0x0b,0x5d,0x45,0x3a,0x25,0x3d,0x52,0x0f,0x48,0x2f,0xe4,0xd0,0x5e,0x85,0x87,0xb6,0xa7,0x70,0x2f,0x9c,0x19,0x89,0x95,0x45,0x76,0x00,0xfe,0x27 +.byte 0xff,0xf8,0x73,0x59,0xba,0x98,0x92,0x4e,0x76,0x1a,0x90,0x1d,0xbc,0x1b,0xae,0x44,0xb6,0x63,0x86,0x4c,0x3c,0x8a,0x8f,0x3e,0x03,0x95,0x50,0x30,0xd8,0x0f,0x7f,0x6f,0xb6,0xe9,0xbe,0x2e,0xc9,0x55,0xe7,0x73,0xd6,0x77,0xdc,0xbc,0x67,0x54,0x31,0x47,0x30,0x46,0xe1,0xa4,0xf8,0xf3,0x90,0x4f,0x68,0x5a,0x52,0xe2,0xe7,0xdb,0xd9,0xfd +.byte 0xf6,0x36,0x2a,0xc1,0xdb,0x35,0x82,0x69,0xff,0xf9,0xea,0x53,0xff,0xcd,0x21,0x2c,0x26,0x79,0xd6,0x8c,0x74,0xe7,0x9e,0x85,0x1a,0x04,0xf5,0xed,0x89,0x16,0xf5,0xd7,0xf1,0x89,0xf1,0xb3,0x5b,0x47,0x42,0xcb,0x92,0x2e,0x70,0xf6,0x3e,0xfc,0x20,0x87,0x70,0xec,0x30,0x16,0xcc,0x88,0x64,0x13,0x58,0xf1,0x0d,0x17,0x90,0xc4,0xdb,0x07 +.byte 0xf5,0xe3,0x34,0x31,0x10,0x9c,0xa4,0x6a,0x4a,0xe6,0x6c,0x80,0x49,0x07,0x23,0x21,0xd6,0xf1,0xcb,0x4a,0xd1,0xb5,0xb7,0x63,0x94,0x4c,0x0a,0xce,0x90,0xf2,0x63,0x31,0x4f,0x96,0x6c,0x5d,0x3e,0xaa,0x10,0x20,0xd6,0xb6,0xbe,0xfa,0x3f,0x83,0xbc,0xa8,0x08,0x38,0xec,0x38,0xe4,0xe9,0xf5,0xb3,0x8e,0x32,0x31,0xcd,0x7c,0x08,0x98,0xf6 +.byte 0x0f,0x8a,0x8f,0xc1,0xd8,0x9e,0x05,0xb6,0x74,0x11,0x94,0xef,0x4f,0x8f,0xa1,0xc6,0x8c,0xdb,0xc3,0x27,0x4e,0xa3,0x30,0x94,0xf5,0xe8,0x2a,0x18,0x0a,0x51,0x9b,0x79,0xb2,0x1f,0xc3,0xa0,0x26,0xa9,0xf5,0xc4,0x9e,0x39,0xda,0x6a,0x53,0x8f,0x8c,0x4c,0x54,0x50,0x81,0xa0,0x0a,0xd3,0x7c,0x99,0x91,0xc7,0x3e,0x56,0x7d,0x53,0x8c,0x3c +.byte 0x51,0x44,0xa5,0x22,0x9d,0xd2,0x9b,0x13,0xcf,0xb8,0x0c,0xb8,0xd4,0xaa,0xb4,0xaa,0x8d,0xab,0x7c,0x06,0xca,0xbb,0x85,0xac,0x01,0xee,0xef,0xe7,0x74,0xd5,0x0d,0x64,0x91,0x1c,0xde,0x6c,0x05,0x37,0x1e,0x23,0x05,0x7e,0x38,0xdc,0x17,0xaf,0xa7,0x95,0x85,0x1f,0xaf,0xc8,0xe1,0xc2,0xda,0xda,0xf1,0x14,0x56,0x66,0x68,0x70,0x36,0x38 +.byte 0x7b,0xb8,0x22,0x9f,0xc4,0xeb,0x5d,0x76,0x97,0xc5,0xa3,0xb9,0x06,0x86,0x4f,0x20,0xab,0x7d,0xce,0x7d,0x78,0x59,0xc5,0x1f,0x73,0x81,0xf6,0x6d,0xb4,0xcc,0x10,0xc5,0x4d,0xe3,0x81,0xaf,0xbc,0x37,0x42,0x28,0x5f,0x51,0x1e,0xaa,0xc7,0x81,0x20,0xc3,0x89,0x35,0xf1,0x74,0x3a,0xe8,0x04,0x24,0xef,0x8b,0x70,0xe1,0x74,0xdf,0x87,0xd5 +.byte 0x3c,0x32,0x32,0x7d,0x03,0xd7,0xda,0x6d,0x8b,0x25,0x8d,0x11,0xa3,0xc2,0x27,0xdc,0xa3,0xfc,0xdf,0x70,0xa4,0x41,0xad,0xda,0xce,0x12,0x45,0x14,0xa1,0x96,0x16,0xd8,0x54,0x89,0x9e,0x78,0x7f,0x23,0x12,0xd1,0x15,0x08,0x7f,0xbd,0xf0,0x9a,0xf1,0x5b,0x07,0xd5,0xbc,0xab,0xab,0x15,0xae,0xda,0xf1,0x26,0x12,0x4e,0xd6,0x6c,0x35,0xc1 +.byte 0x6e,0x27,0x4d,0xa8,0x71,0x51,0x1e,0xae,0xa8,0x35,0x26,0x06,0x18,0x03,0xd8,0xae,0x9e,0x8b,0x07,0x30,0x10,0xfb,0x47,0x05,0x02,0xcc,0x0a,0xbd,0x57,0x43,0x15,0x0a,0x7a,0xb5,0x30,0x0b,0xa6,0x3c,0xa8,0xc9,0xf5,0x68,0xe1,0xfb,0xd1,0xe0,0xe7,0x44,0x6c,0xb4,0x44,0xb6,0xd1,0x2b,0x30,0x5e,0x17,0x89,0x40,0xcc,0x10,0x8f,0x97,0x8a +.byte 0xf3,0xf4,0x52,0x55,0xc4,0x8e,0x46,0xe5,0x24,0x0b,0x2a,0x5d,0x84,0xc1,0x4e,0xa8,0x5a,0x53,0xa8,0xce,0xc6,0x3f,0xa2,0xaa,0x3a,0x8f,0x51,0xed,0x4c,0xa6,0x34,0x6a,0x8c,0x18,0x9b,0x36,0x49,0x40,0x34,0xa3,0xe4,0xd8,0x3c,0x8a,0xfc,0x41,0xc9,0x35,0xfe,0x6e,0x3e,0x29,0xbc,0x04,0x61,0xaf,0x04,0x03,0x43,0x79,0xb5,0x77,0x27,0x25 +.byte 0xbe,0x85,0xc9,0x56,0xa4,0x17,0xc4,0x27,0x3d,0x53,0x1b,0x49,0x86,0xb2,0xb6,0x52,0x62,0x12,0x5d,0xe9,0x47,0x6f,0x65,0x78,0xf8,0x95,0x63,0xbc,0x73,0x6d,0xa6,0xb9,0xcd,0x17,0x39,0x56,0xb0,0xab,0x3a,0x15,0x5f,0x9a,0x98,0xfb,0xcd,0x51,0x4a,0x35,0x21,0xaf,0x07,0x4a,0x3d,0xfd,0x39,0x11,0x42,0xed,0xfc,0x7e,0x10,0x24,0xa5,0x0c +.byte 0xb2,0x4f,0x27,0xe4,0x78,0x32,0xfe,0xfc,0x8e,0x46,0x68,0xbb,0x2e,0x85,0x87,0x0f,0x01,0xde,0x1c,0x02,0xdd,0x82,0xa0,0x9e,0x30,0x31,0x8d,0x86,0x36,0x33,0xa6,0x59,0x16,0x78,0xae,0x1f,0x1d,0x27,0x0b,0x29,0x42,0x16,0x93,0x3b,0xe6,0xfb,0x8d,0xd5,0x48,0x42,0x61,0x39,0x5b,0xf7,0xea,0xd0,0x6f,0x67,0xd9,0x03,0x72,0xed,0x54,0xe1 +.byte 0xab,0x3f,0xa0,0xdc,0x4b,0x19,0xe6,0xe3,0xfe,0x5f,0x65,0x64,0x4c,0xa9,0x5c,0x52,0x36,0xb3,0x65,0x28,0x3e,0xe5,0x07,0x50,0xed,0xec,0x2f,0xc9,0xff,0x47,0x27,0xf6,0xfe,0xb8,0x60,0x60,0x52,0xe5,0xec,0x3c,0x4f,0x69,0x9f,0xaa,0x06,0x8a,0x99,0x9f,0xac,0xfc,0x0a,0x6f,0x8a,0xa4,0x0e,0x5c,0x58,0xb4,0x09,0xba,0x93,0x95,0x94,0x12 +.byte 0x9b,0x23,0x4f,0x93,0x28,0x6d,0xd0,0x76,0xfd,0xc9,0x87,0x3b,0xf1,0x8c,0x7d,0x56,0x84,0x5a,0x04,0x08,0x30,0xf7,0xf6,0x52,0x15,0xba,0xd6,0x7a,0x39,0x8c,0x5a,0xbf,0xeb,0x02,0x6d,0x31,0x30,0x92,0xbc,0xe2,0x07,0x21,0x16,0x96,0x70,0x66,0x00,0xe0,0x04,0xc5,0xa8,0xe4,0x08,0x6d,0x08,0x69,0x35,0xe2,0xb1,0x83,0x03,0x37,0xca,0xff +.byte 0x06,0x37,0x80,0xd5,0x1a,0xc5,0x31,0xfc,0x9a,0xb0,0x8a,0x4b,0x58,0xf3,0x00,0x4e,0xa4,0xfe,0x9e,0xe0,0x60,0xc7,0x3d,0x2c,0x52,0xb5,0x39,0xf0,0xa4,0x88,0x39,0x37,0xa5,0x26,0x8a,0xa3,0xe6,0x31,0xce,0xf3,0xa1,0x54,0x73,0xe7,0x69,0x38,0xef,0xa2,0xab,0x52,0x50,0x1a,0x45,0xcc,0x29,0x9c,0xb6,0xf4,0xde,0xc2,0xfe,0x7a,0x26,0xf7 +.byte 0x7a,0x6e,0x07,0xb6,0xd8,0x3f,0x77,0x60,0x35,0xae,0x6a,0x90,0xd6,0xb8,0x37,0xed,0x73,0x59,0x54,0xd9,0x0c,0x87,0x0e,0x81,0xef,0x69,0xc7,0xd4,0x8f,0x00,0x74,0x57,0x12,0xcf,0xa1,0x76,0xe8,0x45,0xf5,0x9a,0x4f,0xe2,0x5d,0x8a,0x89,0xb1,0x8b,0xea,0x9c,0x0a,0x1e,0x00,0x61,0x3b,0x66,0xbd,0xb5,0xd6,0xff,0xa3,0xff,0x52,0xc2,0x35 +.byte 0x81,0x05,0x08,0x2b,0xf9,0x52,0xda,0x74,0xd1,0x76,0x13,0xba,0x28,0x4c,0xb1,0xb1,0x82,0x5b,0x4e,0x79,0x39,0x22,0xf9,0x96,0x91,0x07,0x4f,0xf9,0xf2,0x25,0x25,0xb1,0x3e,0xda,0x07,0x5c,0x01,0x7b,0xfa,0x3e,0x95,0x92,0x1d,0xf8,0x44,0x06,0xc1,0xed,0x64,0x74,0x14,0x84,0x25,0xee,0x75,0xaf,0xe3,0x7c,0xd3,0xbe,0x7a,0x51,0x6b,0x80 +.byte 0x20,0x43,0x20,0x10,0x5f,0xf5,0xfc,0xd5,0xe8,0x06,0x43,0xad,0x10,0x6b,0x67,0x48,0xca,0xca,0x6e,0x3e,0x1c,0xdf,0x8f,0x7a,0x65,0xc8,0x5d,0xba,0x3b,0x67,0xeb,0x1f,0xc4,0x37,0xad,0xef,0x73,0x9e,0x18,0x8e,0xc1,0x99,0xaf,0x75,0xd3,0x91,0x73,0xc3,0x3a,0xb2,0xfe,0xff,0x30,0x81,0xc4,0x4f,0x37,0x37,0x23,0x96,0x17,0xf1,0xa2,0x9b +.byte 0x55,0x6e,0xd6,0xb3,0xc4,0x98,0xa3,0x32,0xb6,0xff,0x86,0x87,0x77,0xf4,0xad,0x16,0x3e,0xf0,0x24,0x01,0xb4,0x8e,0x1e,0x0f,0x10,0xa4,0x2e,0xe4,0x79,0xe6,0x88,0xe7,0x09,0x58,0x5e,0x97,0xad,0x0d,0x72,0x05,0xbf,0x2f,0x3f,0x99,0xee,0x8a,0x84,0xc3,0x62,0x43,0x52,0x6d,0xab,0x66,0xcf,0x9f,0x4e,0xf2,0x0d,0x13,0x15,0x49,0x84,0x5e +.byte 0x6c,0x8d,0x2d,0xef,0x53,0x16,0xa0,0x63,0xbe,0x05,0xb8,0x9b,0x23,0xca,0xca,0xb8,0xdd,0xbc,0x96,0x68,0x35,0x43,0x63,0x30,0x8e,0xaf,0x53,0x98,0xe2,0x76,0xe8,0x89,0x00,0x29,0x11,0x70,0xd5,0x94,0xbd,0x78,0xff,0xf6,0x88,0x4a,0x3d,0x99,0xd9,0x7e,0xdf,0xa8,0x33,0x92,0xa2,0xc0,0x32,0x42,0x73,0x08,0xd4,0x55,0x5d,0x18,0x93,0xca +.byte 0x7e,0x33,0xe3,0x51,0xc7,0xb7,0x24,0x62,0x69,0xf4,0xab,0x36,0xe3,0x22,0x10,0x9b,0xe0,0xbd,0x48,0x65,0x30,0x9c,0xfe,0xeb,0x3f,0x7f,0x22,0x67,0xcc,0x87,0x5a,0x71,0xb0,0xd1,0x19,0x82,0x1c,0xb2,0xf1,0x73,0xd2,0xd6,0x3f,0xef,0xe3,0x2f,0x25,0xf3,0x8b,0x21,0x4e,0xbf,0x0e,0xc1,0xd2,0x8a,0xbb,0x04,0xde,0xcf,0xd1,0x77,0xba,0xaa +.byte 0xc7,0x41,0x68,0xce,0xc4,0x64,0xf9,0x3a,0x2f,0x1c,0x0b,0x22,0xf8,0x60,0x09,0x76,0x31,0x88,0x62,0x3a,0xf3,0x49,0xe6,0xda,0x4b,0xd3,0xf3,0x35,0xaa,0x56,0x4c,0x2f,0x7f,0x03,0x3e,0xf8,0xcb,0x5e,0xed,0x37,0xa1,0x29,0xe8,0x20,0xf5,0x4a,0x32,0x73,0x30,0xfd,0xd1,0xf6,0xb4,0xa1,0x30,0x87,0xcb,0x21,0x63,0xf5,0x3a,0xad,0x05,0x1a +.byte 0x34,0xf5,0x32,0xf6,0x02,0xf3,0x10,0x52,0xfd,0x86,0x37,0x1f,0x5d,0xe4,0x2e,0x31,0xcb,0xb8,0x4c,0xeb,0xdd,0xea,0x01,0x0d,0x94,0x13,0xa8,0x8f,0xf0,0x52,0x4e,0x0d,0x4f,0xd1,0x24,0xeb,0x0f,0x2b,0xb1,0xaa,0xc5,0xc8,0x52,0xb9,0xbe,0x21,0x48,0x2a,0x53,0x98,0xe4,0x00,0x72,0x64,0xdb,0x44,0x48,0x36,0x60,0xe7,0x81,0xdc,0x25,0x85 +.byte 0x4d,0xaf,0xa8,0x0d,0xfb,0x07,0x76,0x4f,0x6a,0x30,0x3c,0x7c,0x3b,0x36,0xa9,0xf8,0xae,0x81,0x03,0xe9,0x19,0xdf,0xdb,0xd9,0x7f,0x59,0xe0,0xd7,0x50,0x14,0x9f,0x67,0x3d,0xc7,0xdf,0xa8,0x44,0x86,0x29,0x81,0x65,0x44,0x9e,0x37,0x27,0xdd,0x2f,0x33,0x59,0xf7,0xaa,0x17,0x34,0x8c,0x1c,0xa7,0x8e,0x06,0x46,0xf1,0x43,0x87,0xa9,0xb7 +.byte 0x85,0xec,0x92,0x0d,0xdd,0x78,0x55,0x99,0xfb,0x1c,0x66,0x85,0x0d,0x59,0x31,0x00,0xbc,0xd9,0x9b,0xbb,0xfb,0xfc,0xb2,0x36,0x3c,0x34,0x8f,0x4a,0xb6,0x74,0x9c,0x32,0x6f,0x69,0x6c,0x3e,0x68,0x7e,0xec,0xeb,0x58,0x6a,0xf5,0xa2,0xbb,0x04,0x68,0xdb,0x8c,0xf0,0x04,0xba,0xf7,0xf7,0x50,0xd0,0x60,0xba,0x45,0x73,0x0f,0x2c,0x2f,0x97 +.byte 0x58,0xcc,0xa2,0xbe,0xfe,0x5e,0xf9,0x44,0x03,0x8b,0x99,0x56,0xb0,0x4f,0xe1,0xd0,0xa5,0x9f,0xd1,0xfc,0x95,0x44,0x4b,0x01,0x24,0xc0,0x4c,0x91,0xc1,0xb5,0x99,0xe7,0x5f,0x2f,0xcf,0x5d,0x4f,0x64,0x6e,0x54,0x51,0x0c,0x35,0x5f,0xa8,0x7b,0x27,0xa0,0x7d,0xb1,0x90,0xc2,0xdd,0x50,0xef,0x09,0x6f,0xed,0x25,0x6b,0xf5,0x6f,0xc1,0x97 +.byte 0xea,0xd5,0x49,0xf5,0x40,0x60,0xc3,0xbb,0x0d,0x82,0x15,0xa5,0xf7,0xfe,0xa1,0x20,0x13,0x9e,0xbb,0x43,0x58,0xba,0xd2,0xe8,0x89,0xaa,0xfc,0xe0,0x47,0x6b,0xac,0x91,0x8b,0xeb,0x4f,0xf5,0xda,0xf5,0xc8,0x11,0x64,0x7c,0x8d,0x43,0x92,0xf2,0x84,0xeb,0xfb,0x5c,0x1b,0x6b,0x68,0x8e,0x3c,0x66,0xb2,0xd1,0x8e,0x67,0x44,0xbf,0x69,0x3b +.byte 0xb9,0x41,0x78,0x8d,0xc8,0x7b,0x81,0x61,0x70,0x6e,0xe2,0xfc,0xd2,0x96,0x31,0x31,0x2f,0x27,0x90,0xf2,0xc4,0xed,0xbd,0xb5,0x0e,0x91,0x7d,0xd0,0xec,0x3c,0xe9,0xcf,0xf2,0x07,0xac,0x54,0x44,0x9a,0x24,0x41,0xcb,0x2a,0x86,0x30,0x18,0xba,0x65,0x59,0x41,0x00,0x59,0xbf,0x3d,0x01,0x8a,0x51,0xe5,0xd2,0x90,0x8c,0x7d,0xd7,0xad,0x71 +.byte 0xdc,0x45,0x62,0x95,0xf9,0x9f,0xe8,0x55,0x6d,0x48,0x22,0x32,0xcb,0x9a,0x55,0x65,0xe5,0xdf,0xee,0x22,0x99,0x91,0xd7,0xed,0x33,0x04,0x72,0xc7,0xc5,0xb2,0x56,0x5e,0x8f,0x38,0x4b,0xd0,0x61,0x4b,0x4b,0x04,0x4c,0x4c,0x2b,0x23,0x00,0xd4,0x5c,0xdd,0x84,0x8d,0x73,0xf4,0xf7,0xef,0xd5,0xdb,0x2b,0xec,0x54,0x86,0x37,0x01,0x64,0x56 +.byte 0xef,0x73,0x9f,0xb4,0xb6,0xd2,0xf4,0x33,0x93,0xbd,0xd7,0xd9,0x6e,0x8f,0x60,0x85,0xbc,0xa6,0x16,0x3f,0x3f,0xc3,0xd7,0xfc,0xb6,0x82,0xf0,0xe5,0x1e,0x2c,0x51,0x48,0x27,0x50,0x3e,0xdb,0xe6,0x86,0x3b,0xa1,0xfa,0x09,0x39,0x04,0x6f,0xb1,0x85,0xbd,0xda,0x4d,0x2f,0xd1,0x40,0x6f,0x2e,0x2b,0xf2,0x9a,0x4d,0x8e,0xb2,0xc5,0x6e,0x21 +.byte 0xf9,0xdd,0xc9,0x2e,0x81,0x18,0x7b,0x88,0xb9,0x86,0x36,0xe5,0xb2,0xdd,0x19,0xb4,0x7f,0x5d,0xc0,0x20,0x34,0xdc,0x63,0x7d,0x8c,0x80,0x0f,0xe6,0x85,0x14,0xbb,0x87,0x6c,0x3e,0x39,0x53,0x60,0x3d,0xc5,0x46,0x11,0xa3,0x96,0x60,0x6f,0xe9,0xfe,0x59,0xcc,0xed,0x4d,0xdb,0xa3,0xa1,0xf1,0x71,0x0b,0xb0,0x1f,0x89,0x4c,0x32,0x59,0xa5 +.byte 0x7d,0xf7,0x3e,0x5b,0xca,0xa4,0xe1,0xc3,0x50,0xac,0xdf,0x00,0xad,0x45,0x59,0x9e,0x23,0x5f,0x52,0xbd,0x36,0x78,0x55,0xcf,0x90,0x91,0x41,0x14,0xdb,0x76,0x3a,0x43,0x39,0x89,0xe1,0x93,0xc8,0x66,0x91,0xc7,0x42,0x06,0x6f,0xbb,0x35,0x1e,0x07,0x52,0x5a,0xe4,0x41,0x9f,0x65,0xe0,0xdc,0x49,0x8c,0xd3,0x5f,0x16,0x21,0xc9,0xb8,0x8a +.byte 0xc2,0x56,0x91,0xcb,0x18,0x6b,0x38,0x7b,0x3a,0xeb,0x91,0x3c,0x0d,0x6a,0x1f,0xd6,0xc6,0xd7,0x56,0x8d,0xd3,0x76,0x1c,0x9d,0xed,0x3d,0xb6,0x92,0x71,0x6e,0x73,0xc6,0xb8,0xa2,0x1c,0x25,0xb9,0x3c,0xd4,0x41,0xf7,0x8f,0x39,0x60,0xe6,0x27,0xf2,0xc6,0x5f,0x56,0x08,0x7c,0xd3,0x16,0x9d,0x06,0xc0,0xca,0x3d,0xc6,0x61,0xb0,0x21,0x51 +.byte 0x6d,0xca,0x82,0x59,0xe6,0xbb,0x99,0xa2,0x4f,0xfc,0x71,0x66,0x2b,0x4e,0x40,0x62,0x97,0x34,0x73,0x4a,0xe5,0xf0,0x4f,0x4c,0x36,0x4c,0xdb,0x03,0xa9,0x87,0x29,0x21,0x5d,0x91,0x5b,0x89,0xb8,0x3d,0x65,0xc7,0x58,0x0a,0x81,0xb5,0x3e,0x22,0xa1,0x57,0x95,0xbe,0x60,0xf5,0xeb,0xb3,0x49,0xdf,0xd9,0xa2,0x31,0x36,0x5f,0xb2,0xa6,0xf6 +.byte 0x66,0x88,0x88,0x8e,0xa3,0x2c,0xac,0x5e,0xa1,0x33,0x16,0x64,0x08,0x47,0xc8,0xbc,0xc2,0xe9,0xdb,0x73,0x57,0x50,0xd4,0x24,0x01,0x26,0x26,0x04,0x4f,0x8a,0xc0,0x7a,0x97,0x14,0xf2,0xd0,0xbe,0x03,0xea,0x8a,0x25,0xcb,0x98,0xe7,0xbd,0x67,0xff,0x32,0xfd,0x8a,0x7d,0x11,0xe1,0xb2,0x91,0xb5,0xa0,0xb6,0x3c,0x2c,0xb3,0x6e,0x35,0x61 +.byte 0x86,0xbc,0x37,0x15,0xf8,0x3b,0x0d,0x84,0x83,0x69,0x76,0xb0,0xaa,0x8f,0x4f,0xca,0xba,0x54,0xfe,0x42,0xc8,0xba,0x9a,0xd5,0x53,0x69,0x67,0x29,0x23,0x3a,0x6a,0x75,0x97,0xb4,0x29,0x2e,0x62,0xe3,0x95,0x82,0xb3,0xa0,0xa1,0xb7,0xdf,0xc2,0x66,0x4d,0xdd,0x0d,0xda,0xda,0xc2,0x42,0xe0,0x69,0xb1,0xab,0x3c,0x44,0x39,0x11,0x3b,0x0a +.byte 0xd6,0x96,0x2c,0x36,0xb0,0xa0,0xed,0x3d,0x0c,0x63,0x8b,0x90,0xe4,0xb9,0x5f,0x4c,0x27,0x70,0x87,0xb3,0x54,0xe2,0x36,0x74,0x6f,0x3e,0x22,0xb1,0x3b,0x1b,0xba,0xdb,0x1c,0xbd,0x9c,0x6d,0x84,0xbd,0x33,0xfb,0xc0,0x98,0x4c,0xcf,0x7a,0xe8,0x41,0xdb,0x32,0x1f,0xb7,0x64,0x19,0xdb,0x87,0xe7,0xf9,0x52,0x40,0x8c,0xc6,0x89,0x98,0x15 +.byte 0x69,0xde,0xfa,0x29,0x9a,0x0f,0xaf,0xb0,0xad,0x71,0x35,0xab,0xab,0x34,0xe0,0xf4,0x03,0x24,0x6f,0x94,0x38,0x87,0xba,0x68,0xd5,0x1f,0x58,0x88,0x3e,0x12,0x20,0x57,0x43,0xde,0xd0,0xbc,0xaa,0x31,0x8f,0xbc,0x88,0xa0,0xdf,0x5a,0xcc,0xd1,0xba,0x9c,0x18,0x80,0x4e,0x8f,0x68,0x91,0x9c,0x57,0x3b,0x5a,0x62,0xc7,0x29,0x3e,0x49,0xc7 +.byte 0x23,0x26,0xfd,0x9e,0xd0,0xb0,0x4f,0xd4,0xb2,0xa9,0xa8,0x4c,0x66,0x54,0x52,0x75,0x6b,0xbf,0x63,0x76,0x49,0x3b,0xa3,0xb2,0x8f,0x87,0x9d,0xb4,0x8f,0x07,0x3c,0x8e,0xae,0xe1,0x0e,0x9a,0x86,0x90,0x58,0x73,0x8a,0xb3,0xa9,0xab,0xe6,0x27,0xd7,0x70,0x94,0x77,0x12,0xdc,0x71,0xdf,0xcf,0xba,0xdd,0x85,0xfe,0x28,0xaa,0xcd,0xcc,0xe8 +.byte 0x5f,0xd4,0xd8,0x45,0x6f,0x20,0xa8,0x5e,0x40,0x91,0x3b,0xd7,0x59,0x92,0xb8,0x7d,0x2b,0x8b,0x38,0xbd,0xfe,0x7b,0xae,0x5c,0xee,0x47,0x9b,0x20,0xb7,0xf3,0xad,0x75,0xa9,0xe1,0x96,0xc8,0xb2,0x30,0xfe,0x0c,0x36,0xa2,0x02,0xf4,0x3b,0x30,0xfd,0x91,0xfa,0x5f,0xd6,0x18,0x1a,0xcb,0xd2,0x26,0xbb,0x67,0xbe,0x1c,0x99,0xa5,0x4f,0x57 +.byte 0x40,0xb5,0xed,0xd6,0x84,0xfd,0x6b,0x00,0xc8,0xe7,0x18,0x1a,0x9f,0xf7,0x3b,0xd1,0xcc,0x12,0xeb,0x9d,0x61,0xf0,0x8d,0x64,0x08,0x93,0x61,0xc4,0x3e,0xdb,0xda,0x15,0xb1,0xd6,0x2c,0x84,0x2a,0xd8,0xd2,0xa1,0x66,0x4e,0xc9,0xd6,0xbf,0x7e,0xb6,0x22,0xfa,0x35,0x5e,0xdc,0xc0,0x31,0x02,0xb8,0x17,0x46,0x9e,0x67,0xd3,0x6a,0x8f,0x33 +.byte 0x85,0xc3,0xfe,0x36,0xbc,0x6f,0x18,0x8a,0xef,0x47,0xf1,0xf2,0x6e,0x15,0x6c,0xb1,0x4a,0x4b,0x13,0x84,0xd5,0x1b,0xf9,0xa2,0x69,0xcd,0xc7,0x49,0xce,0x36,0x8e,0xe5,0xd5,0x35,0x05,0x7c,0x7f,0xc6,0x15,0x29,0x2e,0x64,0xa6,0x91,0x9d,0xe5,0x9d,0x90,0xe7,0x26,0xec,0x75,0x19,0x58,0x57,0xf2,0x19,0x7b,0x24,0x7d,0x19,0xd3,0x72,0x69 +.byte 0xaa,0xa2,0x8c,0xe3,0x3d,0x38,0xb9,0xf0,0x5b,0xe9,0x3b,0xaa,0x96,0xef,0x2c,0xfc,0xf5,0x13,0xa6,0xa9,0x57,0x8c,0xa9,0x3a,0xc1,0xf0,0x2d,0x57,0x06,0x08,0xe3,0x9c,0xfe,0x82,0x8a,0x6a,0x79,0x5b,0xef,0x2b,0x81,0x83,0x01,0x53,0xac,0xdc,0x79,0x93,0x9b,0x23,0xd4,0xae,0x17,0x6f,0x62,0xaa,0x33,0x41,0xa6,0x31,0x1c,0x7b,0x46,0x2b +.byte 0x17,0xd3,0x6f,0x66,0x73,0x54,0xee,0xa1,0x08,0xee,0x8f,0x0f,0x0e,0x53,0xa7,0x49,0x17,0xdb,0x35,0xaf,0x4e,0x94,0x87,0x8e,0xff,0xf4,0x2b,0x29,0x01,0x45,0xa3,0x0a,0xd9,0x13,0x38,0x09,0x46,0x2c,0x56,0x97,0xd7,0xee,0x24,0x43,0xd1,0x20,0xed,0x38,0xde,0x52,0x13,0x38,0x06,0xd3,0x97,0xc7,0x48,0x8b,0x72,0x0a,0xc5,0xca,0x75,0x2c +.byte 0x04,0x9e,0xee,0x14,0xe7,0xda,0x59,0xc2,0x54,0x7a,0x72,0x55,0x35,0x00,0x93,0xb7,0xb9,0x81,0x01,0x46,0xae,0x43,0x81,0x34,0xd7,0xb4,0x7a,0xfc,0xfc,0x98,0x2b,0x29,0xe5,0x5e,0x9d,0x8e,0xef,0xd4,0x44,0x9d,0x9a,0xbe,0xdb,0x83,0x33,0x18,0x9e,0xbd,0x0f,0x34,0x4d,0xd9,0x34,0xe0,0x2c,0x1f,0x10,0xaa,0x06,0x5e,0x54,0x51,0x72,0xec +.byte 0xbf,0x6b,0x3e,0xb9,0xdd,0x37,0xc3,0xe1,0xbe,0xbe,0x1d,0x86,0xde,0x12,0xca,0x82,0xc5,0xe5,0x47,0xf8,0xbe,0xef,0xb6,0x79,0xd5,0x3c,0x69,0x0a,0x35,0x3e,0xd3,0xf8,0xaf,0x5b,0x8e,0x69,0xff,0xb2,0xf7,0x91,0xc2,0x70,0x22,0x97,0x1c,0x5c,0x56,0x25,0x5a,0xcf,0x31,0x7a,0x37,0xce,0xc7,0xf2,0x98,0xdc,0xb5,0x58,0x71,0x5a,0x60,0xe2 +.byte 0xfe,0x4f,0xf3,0xe2,0x2a,0xca,0x22,0x3e,0x07,0xc2,0xea,0x23,0xc8,0x04,0x97,0x7f,0xca,0xf6,0xf8,0x12,0x06,0x88,0x81,0xee,0xb7,0xdd,0x56,0x9e,0x0f,0x36,0xd3,0x09,0xa8,0x74,0x4d,0x8b,0x8f,0x31,0x64,0xbe,0x9d,0x7b,0x68,0x50,0xc8,0x64,0x40,0x3b,0x0c,0x04,0xb9,0x4b,0x9e,0xff,0x7e,0x5d,0xd8,0x57,0xa0,0xe5,0x6d,0xc2,0x37,0xe7 +.byte 0xd1,0xd9,0x96,0xaa,0x16,0x3e,0xa2,0x9d,0x32,0xe7,0x1e,0x11,0x6e,0x41,0xe2,0xa0,0xe1,0x6f,0x32,0x6d,0xd5,0x38,0x0c,0x27,0x27,0xa9,0xc2,0x04,0xc6,0xe7,0x8d,0x7d,0x7b,0x30,0xbe,0x54,0x6b,0x82,0x37,0x39,0x53,0x54,0xc9,0xac,0xcb,0xd1,0x31,0x79,0xd4,0x7b,0x85,0x07,0xf4,0xf4,0x5d,0x33,0xc7,0x91,0x4e,0xe5,0x13,0x78,0x09,0x42 +.byte 0x29,0x48,0xaf,0x82,0xb1,0x88,0xd4,0xd3,0x57,0x50,0x38,0xa7,0x66,0x41,0x63,0x34,0x2a,0x3c,0x5e,0x8f,0xc4,0xc1,0x00,0xa1,0x22,0xbe,0x5e,0x64,0xb0,0x60,0x9b,0x42,0x9d,0xc6,0x59,0x5c,0xcc,0x29,0x6f,0x64,0x5b,0x5c,0x0f,0xb2,0xae,0x21,0x0c,0x9a,0x6a,0x19,0xb9,0xa6,0x32,0xf8,0xdc,0x82,0xea,0xba,0x27,0xcf,0x42,0xd3,0xde,0x78 +.byte 0xfe,0x9c,0xa5,0x36,0xb6,0x24,0xb6,0x0d,0x5b,0x67,0x6c,0xf5,0x16,0xbf,0x67,0x54,0x4f,0xe4,0x83,0x29,0x75,0x42,0x9a,0xbb,0xd5,0xe7,0x01,0x1f,0xbd,0x80,0x1a,0x7a,0xb6,0xe1,0x2b,0x5d,0x71,0x93,0x00,0xad,0xf6,0x11,0x8d,0x67,0xdc,0x9c,0x8f,0xf0,0x09,0x3f,0xf9,0xa4,0xd6,0xe0,0xdd,0x95,0xea,0xfb,0x71,0x76,0x21,0x31,0x6d,0x48 +.byte 0x0a,0x27,0xa8,0xa6,0x3a,0x7f,0x42,0x6b,0x7e,0xd7,0x6e,0xd5,0x42,0x97,0xad,0x55,0xae,0x26,0x3c,0xde,0x3f,0xaf,0xfd,0x1d,0x6d,0xd3,0xeb,0x84,0xad,0x6d,0xd1,0x4a,0x85,0x1a,0xf7,0x99,0xa4,0xd0,0x48,0xfb,0xf6,0xfe,0xc6,0xea,0x61,0x77,0xe2,0x56,0x87,0xc1,0x36,0x44,0xb4,0xe3,0xd7,0xd9,0x6d,0x3e,0x1b,0xf4,0x72,0x3e,0xfe,0xa5 +.byte 0x47,0xf8,0x3f,0x1a,0x6e,0x43,0xf5,0x67,0xfe,0x90,0x96,0x9b,0x52,0xde,0xab,0xfb,0x45,0x7d,0x93,0xea,0xc3,0x40,0xe1,0x5f,0xcd,0xad,0x3b,0xe9,0x4e,0x36,0xc5,0x38,0xf4,0x66,0xde,0x4b,0xc8,0x2a,0xc3,0xa2,0x3a,0x2a,0xf1,0xd1,0xe8,0x01,0x07,0x37,0xca,0x42,0xbf,0x4f,0xd8,0xc5,0x50,0x93,0x1a,0x01,0x1d,0x51,0x41,0x6e,0xbf,0x68 +.byte 0x93,0x2e,0xdc,0x41,0x23,0xf3,0x13,0xe7,0x09,0xfa,0x39,0x6d,0xee,0x41,0x49,0xbb,0x78,0x04,0xcf,0xc9,0xbb,0x11,0xaa,0x57,0xb5,0x3e,0x4c,0x3a,0x77,0xb7,0x0b,0x38,0x34,0x48,0xd0,0x99,0x20,0x55,0xcd,0x43,0x2f,0x68,0x66,0xb0,0xe6,0x75,0x41,0xe4,0xae,0xfd,0x96,0xe8,0x01,0x4c,0x0b,0x5c,0xbc,0x4f,0x45,0x70,0x08,0x9e,0xf7,0x68 +.byte 0x9e,0xbb,0xe5,0x39,0x20,0x3f,0xbe,0xd3,0xe3,0x95,0xba,0x98,0xd5,0x12,0x2e,0x87,0xd4,0xf4,0x12,0xa2,0xcb,0xd4,0x51,0x53,0x93,0x67,0x06,0xf1,0x21,0x0e,0x92,0x8f,0x9f,0x9e,0x6c,0x16,0xa4,0x2c,0x6d,0xb0,0xd0,0xe1,0x87,0x2f,0x09,0x2c,0x8f,0x4b,0x89,0x1f,0xab,0x66,0xf1,0xcd,0x6e,0x67,0xaf,0x07,0x99,0x18,0x1b,0xda,0xc8,0x65 +.byte 0x81,0xa3,0x37,0x8a,0xad,0xe4,0x1d,0xfd,0x82,0xa0,0xf1,0xe1,0x1e,0x8d,0x0b,0xf7,0x07,0x7c,0xb3,0x10,0xc8,0x5a,0xa9,0xcc,0xc8,0xd0,0x2e,0x5a,0x71,0x45,0x4c,0x30,0xf0,0x10,0xe0,0xf6,0x0d,0x0d,0x11,0xb4,0x83,0x40,0x75,0xee,0xb9,0x24,0x04,0xe3,0xba,0xb3,0xd3,0x00,0x57,0x71,0x98,0xf0,0x4b,0x35,0x8d,0xd8,0x71,0xa0,0xcc,0xaf +.byte 0x46,0x54,0x67,0x65,0x70,0x0b,0x9c,0x61,0xf8,0xd4,0xb2,0x35,0xfd,0xcf,0x2b,0x3a,0x48,0x5b,0x03,0x86,0xd8,0x13,0x48,0x8a,0x55,0xa5,0x4d,0xef,0x42,0x41,0xbb,0x6a,0x8c,0x92,0x46,0x87,0x82,0x09,0x43,0xf3,0x94,0x1d,0x23,0x36,0xfe,0x6f,0xb8,0x9f,0xfa,0xf9,0x92,0x27,0x3c,0xcc,0x47,0x89,0x5c,0x7f,0x81,0x42,0x74,0x12,0x14,0xff +.byte 0x98,0x63,0xc0,0xfb,0x70,0xff,0xc7,0x65,0x5a,0xc3,0xb9,0x74,0x1b,0x71,0x3c,0x2c,0x47,0x79,0x07,0xb9,0x3c,0xc2,0x5f,0x48,0x4f,0xbd,0xaf,0x03,0x05,0x57,0xa9,0x84,0x33,0xc8,0x0d,0xd5,0xac,0x42,0xdb,0x4b,0x57,0x46,0x41,0xf0,0xe4,0x08,0x0d,0xf3,0x43,0x41,0xa5,0x14,0xb7,0xcd,0x64,0x23,0xc9,0xfe,0xff,0x12,0x97,0xc6,0x2f,0x8d +.byte 0x9e,0xf2,0x1d,0x33,0x26,0x3c,0x57,0x17,0xe1,0x7b,0x92,0x3f,0xb6,0xf4,0xd9,0xf8,0xe0,0x37,0xe6,0x18,0x7d,0xa7,0x8a,0x1e,0xe8,0xd8,0x56,0xa6,0x63,0xdf,0xa3,0x99,0x16,0x74,0x48,0x01,0xaf,0x95,0x55,0x40,0xce,0xa8,0x0d,0x30,0x01,0x09,0x40,0xc9,0x9d,0x3d,0xdf,0x4e,0x00,0xe0,0x2a,0xe6,0xdb,0xa2,0x79,0x42,0x57,0xd0,0x3d,0x81 +.byte 0x7f,0x67,0x3a,0xa9,0x63,0xb3,0xd4,0x60,0xa7,0xab,0x54,0x46,0xb0,0xbe,0xb0,0x83,0x72,0xec,0x47,0x0f,0xc7,0xd1,0xed,0x16,0x96,0xbc,0xa5,0x62,0x38,0xdb,0x88,0x2b,0x25,0x26,0x27,0x56,0x7f,0x46,0x39,0xe8,0x4e,0xc0,0x6c,0x62,0xf8,0x80,0x68,0x56,0x8a,0x93,0x51,0x95,0x77,0xe3,0x11,0x7b,0xaf,0xc4,0xcf,0x34,0x5a,0xd5,0x26,0xfc +.byte 0xa2,0x18,0xb0,0xc0,0xa5,0x8b,0x25,0x70,0x40,0x70,0x29,0xc3,0xda,0x80,0x3d,0xe2,0x59,0x49,0x7f,0xdd,0x62,0x6e,0x5a,0xe6,0x27,0x73,0xce,0xb6,0x32,0x37,0x5f,0x73,0x12,0x2b,0x34,0x84,0xff,0x85,0xe3,0xb5,0x93,0x41,0x47,0xc5,0xf5,0x0e,0x21,0xfb,0x24,0x0f,0xdf,0x7b,0xb4,0x29,0x7f,0x67,0x2a,0x38,0x79,0xf0,0x54,0x8a,0x94,0x68 +.byte 0xe2,0x0b,0xb0,0xd4,0xb2,0xa4,0xe4,0xfb,0x3b,0xe6,0xe7,0x59,0x41,0xbd,0xed,0x62,0xce,0x50,0x1a,0x47,0x92,0x92,0x8d,0x80,0xa6,0x05,0x7a,0xb0,0xce,0x48,0x9c,0xb0,0x64,0xea,0xe0,0xa5,0x77,0xff,0xc1,0x82,0x99,0x7b,0xfb,0x74,0x53,0xfa,0x41,0x9a,0x2c,0xb4,0xbb,0xd2,0x26,0xa1,0x80,0x68,0x17,0xaa,0x8f,0x14,0x52,0xb6,0x5d,0xe0 +.byte 0x69,0x5b,0x31,0xc5,0xf5,0x32,0x0d,0xff,0xa4,0x7b,0x28,0x38,0x9b,0x61,0xfc,0xd0,0x92,0xb8,0x6e,0x23,0x8a,0xf3,0xc7,0x85,0x11,0xb8,0xd0,0x19,0xaf,0xca,0xa7,0xb4,0xcc,0xeb,0x5d,0xf6,0xa1,0x1c,0x56,0xdf,0x78,0x7a,0xe3,0x6a,0xa4,0x07,0x71,0xce,0xf1,0xb2,0xd5,0x38,0x3c,0xfa,0xf7,0x7a,0xbf,0x4b,0x43,0xa6,0xb3,0x4d,0xff,0x82 +.byte 0x96,0x46,0xb5,0xec,0xda,0xb4,0x5e,0x35,0x78,0xeb,0x4a,0x7e,0xc5,0x7b,0x05,0xd4,0xdd,0xf7,0xb7,0xf3,0xf0,0x04,0x26,0x7e,0x5e,0xc1,0x23,0xca,0x7f,0x14,0x27,0xac,0xda,0xe7,0xdb,0x31,0x05,0x9d,0xd4,0xda,0x20,0xc7,0x6d,0x9a,0x47,0x14,0x38,0xbd,0x7c,0xfe,0xbe,0x8d,0x42,0x7c,0xba,0x36,0xe2,0x2c,0x26,0xd2,0x46,0xa5,0x6b,0xbd +.byte 0x6a,0x75,0x6b,0x52,0x8c,0x10,0xc6,0x0e,0x76,0x60,0x46,0xcc,0x93,0x54,0xc4,0x6e,0xc7,0x70,0x5b,0xb4,0x81,0x51,0x56,0x03,0x22,0x33,0x21,0xe4,0x36,0xee,0x01,0xc3,0x0d,0x17,0x23,0x15,0xae,0x79,0xbc,0xe6,0x13,0x0f,0xfc,0x77,0xa2,0x06,0xed,0x76,0x4a,0xf7,0x2d,0x99,0xc8,0x5c,0xfd,0xac,0xd0,0x11,0xe8,0xfa,0x55,0x17,0x56,0x63 +.byte 0x3e,0xd5,0x23,0x71,0xf8,0xe9,0x1f,0x62,0x95,0xae,0x7c,0x2d,0xcd,0xb8,0x6e,0xb0,0xfe,0xf3,0xd0,0xba,0x72,0x8e,0xe3,0x95,0x82,0x00,0x85,0xdb,0x25,0xe4,0xf2,0xaa,0xbc,0x8d,0xb9,0x4d,0x69,0xa4,0xcd,0x39,0x52,0x9e,0x10,0xae,0x90,0xf0,0x74,0x2f,0xc6,0x5e,0x01,0x99,0x03,0xd5,0x88,0x59,0xfd,0x1b,0x80,0x56,0x0a,0x04,0x27,0xd9 +.byte 0x04,0x51,0xb0,0xb7,0x7a,0x65,0x79,0xa8,0xe2,0x6d,0x7f,0xb2,0xba,0x37,0x40,0xa0,0xbb,0xaf,0x15,0x46,0x23,0x5f,0x22,0xd0,0x2c,0x6c,0x7a,0x58,0x76,0x6f,0xb8,0x19,0xfe,0xb5,0x3d,0xf0,0x77,0x00,0x6b,0x4c,0x83,0x36,0x90,0xe6,0x57,0x29,0x6e,0x27,0x76,0xd4,0x7d,0x9a,0x6a,0xf1,0xf6,0x1b,0x1a,0x45,0xf5,0xf6,0x2d,0xb8,0x30,0x33 +.byte 0x65,0x51,0x37,0x26,0xbc,0xf7,0xb7,0xf9,0x56,0x05,0x6b,0xd4,0xd6,0x00,0x1d,0x13,0x15,0x45,0x24,0x0d,0x28,0x69,0xc6,0x50,0xe1,0x48,0x48,0x34,0x69,0x31,0x3c,0x58,0x71,0xd6,0x4a,0xd9,0xda,0x0d,0x28,0xbd,0xe9,0x5d,0x5d,0x8a,0x6e,0x71,0xc0,0x8b,0x7a,0xba,0x17,0x8e,0x82,0xcb,0xe9,0x95,0xc4,0x43,0x37,0xd0,0x58,0xed,0xec,0x77 +.byte 0x1e,0x22,0xf0,0xf0,0x7c,0x9d,0xeb,0x64,0x30,0x7b,0xb2,0x7b,0x86,0xdb,0xef,0x92,0x79,0xd9,0x9c,0x1c,0x1a,0xf6,0x98,0x26,0x18,0xa2,0x83,0x45,0x08,0xd4,0x1d,0x84,0xd4,0x28,0x6d,0x1f,0xb5,0x1f,0xab,0x97,0xc9,0x0d,0x1f,0x83,0x34,0x18,0xa3,0x20,0x63,0x60,0x6c,0xf3,0xd8,0xb2,0x0a,0xd9,0x35,0xa6,0xce,0x44,0x50,0xc6,0xf3,0x91 +.byte 0xe3,0x95,0x89,0x49,0x99,0x32,0x1d,0xf2,0x54,0x39,0x09,0xca,0xd1,0xc4,0x7f,0xa1,0x1d,0xce,0x94,0x67,0xf1,0x88,0x04,0x29,0xcb,0x5d,0xf7,0xfa,0xcd,0x69,0x16,0x17,0x05,0xc3,0x93,0x45,0xbf,0xd3,0x74,0x63,0xdc,0xe2,0x84,0xab,0x27,0x60,0x56,0x61,0x72,0x5d,0xdf,0xb4,0xa4,0x0f,0xb0,0x21,0x82,0x9b,0x73,0x0a,0x11,0x22,0x2d,0x65 +.byte 0xa2,0xff,0x29,0x8a,0x19,0x28,0x4f,0x4f,0xdd,0x64,0x0a,0x48,0x35,0x70,0x30,0x9f,0x41,0x4d,0x0c,0x7b,0xa6,0xcb,0x63,0x83,0xd1,0x79,0xfa,0x5f,0xc9,0x9b,0x6e,0x09,0x12,0x87,0xcd,0x1e,0x39,0xd6,0x40,0x08,0x0f,0xfd,0x79,0xc8,0xcb,0x77,0x8f,0x7a,0x52,0x42,0xc0,0xb2,0xc8,0xa0,0x2a,0xff,0xbc,0x60,0x13,0xbc,0x41,0x4a,0xc6,0x8b +.byte 0x08,0xb0,0x9f,0x75,0x87,0xa1,0x75,0x42,0x4b,0x3a,0xf7,0xf7,0x84,0x39,0xa5,0x88,0x25,0x2d,0x4f,0x73,0x4e,0x30,0x27,0x92,0xea,0x93,0x70,0x5c,0xb5,0xeb,0xb0,0x10,0xda,0x0f,0xaa,0xb3,0x3f,0xb5,0x55,0x64,0x65,0xae,0xb5,0xf8,0x0a,0xe4,0x9f,0x86,0x02,0x6f,0x63,0x8a,0x0b,0x6b,0x82,0x85,0x3c,0x6a,0xdf,0x68,0x4c,0x1e,0xe9,0x5c +.byte 0xd0,0x99,0xe5,0x0c,0xfc,0x63,0xfb,0xce,0x2d,0x63,0xd5,0x7d,0x8a,0x7d,0x14,0x22,0xbd,0x71,0x5e,0x79,0x3f,0x44,0x95,0xe5,0x6c,0x58,0x94,0x84,0x41,0x65,0x52,0x94,0x50,0xec,0xd3,0x2a,0x16,0x88,0xdb,0x71,0xb9,0xe4,0xb6,0xbf,0xc5,0x3c,0x48,0x37,0x62,0x32,0x79,0xbe,0x1d,0xdb,0xc9,0x79,0x37,0x40,0x65,0x20,0x62,0x45,0xb4,0xda +.byte 0x24,0xef,0x33,0xf1,0x05,0x49,0xef,0x36,0x17,0x17,0x0f,0xdc,0x65,0xb4,0xdc,0x57,0xc3,0xc6,0x82,0x57,0x08,0xf2,0x20,0x57,0x5c,0x25,0x0e,0x46,0x75,0xa7,0x4f,0x9e,0xa4,0x00,0xf7,0x79,0xb9,0x0a,0xef,0x4f,0x50,0x79,0xf8,0x59,0x01,0xf2,0x74,0x9f,0x16,0x27,0xa5,0xc1,0x32,0xcc,0x58,0xa7,0x40,0xa1,0xa1,0x26,0x80,0x00,0xb5,0x64 +.byte 0x0a,0xd8,0x53,0x1f,0x72,0xf7,0x60,0xf7,0x0a,0xaa,0xdf,0x31,0x95,0xff,0xfc,0xb4,0xca,0xbc,0xf8,0x2a,0x33,0x20,0x04,0x16,0x1a,0xe7,0xeb,0x22,0xd1,0x25,0xa6,0x03,0xc9,0x9e,0x9e,0xca,0x7a,0x46,0x7c,0xcb,0x8a,0x63,0x4a,0xf0,0x1b,0xd0,0x34,0xc3,0xbb,0x89,0xcf,0x16,0x38,0xcb,0xe0,0xce,0xd5,0x0b,0xfd,0x4e,0xbc,0xce,0xba,0x28 +.byte 0x68,0x00,0x2a,0x31,0x52,0xe6,0xaf,0x81,0x3c,0x12,0x09,0x2f,0x11,0x0d,0x96,0xc7,0x07,0x42,0xd6,0xa4,0x2e,0xc1,0xa5,0x82,0xa5,0xbe,0xb3,0x67,0x7a,0x38,0xf0,0x5e,0xd8,0xff,0x09,0xf6,0xab,0x6b,0x5d,0xec,0x2b,0x9f,0xf4,0xe6,0xcc,0x9b,0x71,0x72,0xd1,0xcf,0x29,0x10,0xe6,0xe3,0x27,0x1c,0x41,0xc8,0x21,0xdf,0x55,0x27,0xa6,0x73 +.byte 0xb7,0x45,0xa1,0x09,0x66,0x2f,0x08,0x26,0xf1,0x50,0xe0,0xec,0x9d,0xf2,0x08,0xf3,0x49,0x56,0x50,0xe0,0xba,0x73,0x3a,0x93,0xf5,0xab,0x64,0xb6,0x50,0xf4,0xfa,0xce,0x8d,0x79,0x0b,0xad,0x73,0xf2,0x8c,0x1e,0xe4,0xdd,0x24,0x38,0x1a,0xde,0x77,0x99,0xb8,0x92,0xca,0xc0,0xc0,0xbc,0x3d,0x01,0x6f,0x93,0x3a,0x6e,0xc5,0x28,0x6e,0x24 +.byte 0x9c,0xf9,0xd9,0xcb,0x4b,0xbe,0x9e,0xda,0x0d,0x10,0xfb,0x9d,0x15,0xfe,0x28,0xdc,0xd9,0x09,0x72,0xd3,0x9f,0x6d,0x77,0x14,0x84,0x86,0x56,0x10,0xdc,0x8e,0x6a,0xa7,0x62,0xf0,0x0b,0x65,0x2c,0xa2,0xd1,0x7f,0xae,0x32,0xfa,0x9b,0x46,0x0f,0x12,0x08,0x22,0x8c,0x87,0x15,0x4b,0xc4,0x6d,0x85,0xfb,0x69,0xfe,0xce,0xfb,0xb4,0x3e,0x7b +.byte 0xcf,0x88,0xa7,0x97,0x52,0x56,0xd0,0x9f,0xb4,0x33,0xf9,0x08,0xd2,0x28,0x46,0x5e,0xc4,0xec,0x22,0xc6,0x1e,0x7b,0x34,0x99,0x0c,0x5b,0x04,0x19,0xe2,0xca,0x09,0x11,0x50,0x45,0xcc,0xb2,0x90,0x25,0x51,0x68,0xc9,0x20,0x6c,0x99,0x2e,0xdb,0x5b,0x07,0x91,0xb2,0x69,0xbf,0x3c,0x05,0x50,0xfb,0x21,0x33,0x4f,0x6e,0x18,0x19,0xd5,0xff +.byte 0xce,0x9d,0xb5,0x7f,0xd4,0xd5,0x8f,0x41,0x26,0x1f,0xa1,0x4c,0x34,0xd3,0x98,0x08,0x5d,0xb5,0x56,0xa7,0x04,0x63,0x76,0x7d,0xae,0xee,0xea,0xbf,0x69,0x8d,0xff,0xa1,0x62,0x86,0x19,0x7b,0xe5,0x08,0x7a,0xe5,0x9e,0xe5,0x44,0xca,0x24,0xde,0x00,0x43,0xc7,0xcd,0xc8,0x5b,0x21,0x00,0xb9,0x56,0x3f,0xba,0xef,0xcd,0xc4,0xe0,0xd7,0x90 +.byte 0xa7,0xe1,0xf9,0x83,0x2c,0x1d,0x8d,0xc3,0x1b,0xa2,0xab,0xcd,0x7d,0xbc,0xd1,0x2b,0xf8,0x30,0x9e,0xb6,0x95,0xe0,0xd1,0xe6,0x81,0x89,0xa7,0xda,0xf0,0x54,0xc1,0xcb,0x3a,0x85,0x85,0xb5,0x03,0xb4,0x8c,0x7d,0x98,0x16,0xa8,0x83,0x29,0xbb,0x1c,0x1d,0xe1,0x7e,0x0e,0xb5,0x04,0xba,0xbf,0x89,0x30,0x3c,0x44,0xa2,0xc5,0xbf,0xf1,0x70 +.byte 0xdb,0xf3,0x13,0xf4,0x44,0xac,0x63,0xc4,0x9c,0x93,0xa9,0x13,0x1b,0xf1,0xcc,0x16,0x66,0xdf,0x56,0x10,0x88,0x0c,0x76,0xab,0x43,0xcb,0x75,0xf8,0x4f,0x04,0x26,0x95,0x4c,0x6d,0x55,0xc8,0xbd,0xf8,0x94,0x0f,0xca,0x29,0x2b,0xcd,0xce,0x05,0x1e,0xea,0xae,0x02,0x01,0x8b,0x60,0x6a,0x6a,0x03,0x14,0xe5,0xa7,0xdf,0x9e,0x9f,0x94,0x92 +.byte 0x41,0x2c,0xf0,0x1a,0xa7,0xc2,0xc1,0xfc,0x11,0xf3,0x00,0xe1,0xfc,0x7a,0x97,0xc0,0xe1,0x81,0x90,0x3f,0xea,0x1e,0x7f,0xf8,0xb0,0xd8,0x4c,0x2d,0xdc,0x83,0xfa,0x27,0x8b,0xf2,0xef,0x3b,0x3a,0x44,0xdc,0xa5,0xa9,0xd5,0x24,0x5f,0xb1,0xdd,0x1d,0x3f,0x03,0x76,0x3b,0x92,0x0d,0xb4,0x84,0xa4,0x5b,0xef,0x9f,0x89,0x9d,0xef,0xff,0xcf +.byte 0xc2,0x28,0x3b,0x9d,0xd2,0x28,0x75,0x3e,0xdc,0x14,0x79,0x7c,0x0c,0xaa,0x6c,0xf2,0x05,0x9d,0x27,0x01,0x15,0x19,0x60,0x48,0x5a,0x7d,0x04,0x27,0x2d,0x82,0x92,0x3e,0x0b,0x62,0xd7,0x5a,0xfb,0x72,0xfb,0xdd,0x43,0xfa,0xf4,0x6f,0x16,0xd2,0x8f,0x8f,0x21,0xdc,0x81,0x48,0x7a,0xe8,0x39,0xd5,0xdf,0x54,0x0f,0xe1,0xbe,0x65,0xc9,0x49 +.byte 0x98,0xb1,0xff,0x8d,0x52,0x31,0x6a,0xcd,0x5e,0x83,0x17,0x41,0x93,0xcd,0x23,0x76,0x18,0xe9,0x82,0x71,0x15,0xb7,0xd8,0xde,0x0d,0x57,0x8b,0x90,0xe6,0xf4,0x57,0xc1,0xfd,0x3d,0x0d,0x6a,0xae,0xd1,0xd6,0x02,0x3e,0xb9,0x82,0xb2,0x82,0x80,0x48,0xa4,0x14,0x29,0x80,0x55,0x1d,0xaf,0x3e,0xf8,0x7e,0x36,0x5f,0x77,0x4c,0x73,0x6c,0x35 +.byte 0xd2,0x7c,0x36,0xca,0x2f,0xec,0x1e,0x3f,0x74,0xee,0xa5,0xe7,0x7d,0xce,0x81,0xf1,0xd5,0xc1,0xb3,0xaf,0x90,0x2c,0xc6,0x5b,0x81,0x37,0x85,0x98,0x78,0x3c,0x4f,0x2a,0x55,0xea,0x06,0x30,0x77,0x73,0x97,0x39,0x75,0xcf,0x4a,0x9b,0x55,0xb8,0x64,0x5c,0x86,0xfd,0x26,0x3e,0x8d,0x68,0xd2,0x70,0xe8,0xd7,0x99,0x57,0x6f,0x96,0x47,0x6d +.byte 0xa7,0x1a,0x0e,0x85,0xcd,0x00,0xa5,0x3e,0x11,0xec,0x76,0xd2,0x47,0x26,0x71,0xda,0x5c,0xf4,0xb1,0xd5,0x23,0xe1,0x62,0x71,0x43,0x30,0xa7,0x95,0xf6,0xc1,0xcf,0x8a,0x1b,0x75,0x53,0x39,0x6d,0x9d,0x18,0x7c,0xe3,0x48,0x27,0x33,0x1c,0x38,0x45,0xdf,0x75,0x22,0x05,0x6d,0x81,0x5d,0xfc,0xeb,0x0e,0x05,0x26,0x45,0x81,0x9f,0xce,0x0f +.byte 0xc9,0xdd,0x95,0x11,0x04,0x47,0x40,0xa4,0x07,0x3b,0x52,0x92,0xe0,0x91,0xdb,0xdd,0x3c,0x9f,0xd3,0xa1,0xb7,0xf9,0xeb,0xd6,0x6d,0x64,0x88,0xe9,0xf5,0x4e,0x98,0x8e,0x7b,0xd3,0xec,0xc0,0x22,0xe0,0xf2,0x14,0xf2,0x20,0xa2,0xa3,0xb3,0x0d,0x75,0x1a,0xbb,0xde,0x4a,0x41,0x04,0x43,0x0d,0xd9,0xd0,0x1d,0x73,0xc8,0x67,0x8e,0x58,0xe5 +.byte 0x4b,0x28,0x4d,0x8f,0x2f,0xab,0x1a,0x4a,0xfc,0x7c,0xd1,0x27,0x3e,0x4a,0x10,0x6a,0x5f,0x55,0x3a,0xf7,0x63,0x14,0xe9,0xad,0xb4,0x95,0xef,0x3d,0x5c,0xc3,0x7d,0xe4,0xb7,0x15,0xd7,0x0b,0x68,0xf0,0x23,0xa8,0xd4,0x8e,0x27,0xf6,0x55,0x11,0xbc,0xc0,0xff,0x3e,0x2c,0x24,0x59,0xb7,0xb7,0xb5,0x0b,0xd2,0x99,0xa5,0xd5,0xe2,0x24,0x33 +.byte 0x21,0xb8,0x96,0x48,0x18,0x94,0xb5,0xb2,0x50,0x5e,0x04,0x24,0x86,0x17,0x62,0x1e,0xc9,0xf8,0x22,0x6a,0xd0,0xec,0xc5,0xbc,0x90,0xf7,0x55,0xcf,0x3f,0x4c,0x7c,0xf7,0x51,0x19,0x95,0xa4,0x81,0x38,0x0c,0xa5,0x58,0x22,0xf3,0x10,0x05,0x05,0x44,0xbf,0x7e,0x2a,0xbd,0x5f,0x79,0x56,0x08,0xd5,0x68,0xea,0x85,0xa1,0xeb,0x0b,0xe1,0xd4 +.byte 0xfd,0x3a,0x38,0xd2,0x5a,0x49,0x17,0x9a,0x58,0x8f,0x52,0xf5,0xf4,0x7b,0x1f,0x58,0xa8,0xc0,0x1c,0x46,0x38,0xa6,0xe4,0x7d,0xcc,0x88,0x97,0x10,0x2b,0x5e,0x61,0xf5,0x73,0x7d,0x79,0x1b,0x53,0xf1,0xac,0xb4,0x3f,0xbd,0x9d,0xb6,0xc2,0x57,0xd5,0x84,0x4d,0x60,0xd6,0x45,0x56,0xa1,0x36,0x28,0xf5,0x74,0xc6,0x29,0xd7,0xc9,0x63,0x5e +.byte 0x7c,0x97,0x46,0xde,0x56,0x3f,0xd8,0x8e,0x75,0x29,0x87,0xe7,0xd1,0x24,0x78,0x26,0xdc,0x17,0x97,0xc9,0xf0,0x8e,0x95,0xbc,0xe5,0xfe,0xe3,0x3a,0x75,0x70,0x52,0xa9,0x31,0x97,0x79,0x3a,0xc2,0x53,0x6a,0x73,0xe2,0x76,0xf8,0x85,0xe6,0x0d,0x85,0x9b,0xfc,0x72,0x08,0x2a,0xa5,0x8e,0x42,0xb2,0x7c,0x8d,0x8b,0x28,0x4b,0xf5,0xcb,0x66 +.byte 0x80,0x46,0xb3,0x87,0xdf,0x38,0xa7,0x08,0xc8,0xea,0x85,0x0e,0x6f,0x13,0xe0,0x57,0x99,0xc6,0xb8,0xed,0x9c,0xb0,0xa9,0x89,0xd7,0xc5,0xa9,0x71,0xfd,0x8a,0x21,0xb1,0xec,0xc8,0x65,0x78,0x72,0xc6,0x77,0x69,0xd4,0x0b,0x47,0x4d,0x79,0x93,0xcf,0x2a,0x34,0xf1,0x1b,0x0e,0x6f,0x0d,0xd1,0xbb,0xe7,0xd7,0xb5,0x6f,0x57,0x01,0xd4,0xcd +.byte 0x56,0xbe,0xf0,0xd9,0xe2,0x8e,0x0e,0xb8,0x3d,0xdb,0xf6,0x97,0x39,0x0b,0x3e,0xe2,0xb2,0xa3,0x93,0x0b,0x74,0xe5,0x6a,0x21,0x04,0x29,0x5a,0x3e,0x07,0x9c,0x11,0x4e,0xfe,0x01,0x6e,0x96,0x1e,0x8f,0xe0,0xfe,0x24,0x24,0x7e,0x04,0x2f,0x65,0xf4,0xe2,0x1f,0x36,0x56,0x43,0x3a,0x6c,0xeb,0xd7,0x20,0x13,0x71,0x45,0x6a,0xe8,0xc6,0xfa +.byte 0xba,0x26,0x6f,0x7d,0x9a,0x62,0x76,0x34,0x7d,0xed,0x47,0x71,0xd1,0x0e,0x5b,0x04,0x39,0xd6,0xc0,0xe5,0xa5,0xd8,0xf5,0x73,0xf9,0xf4,0xc2,0x2a,0x54,0x25,0x67,0xdf,0x83,0xa3,0xcd,0xfd,0x1e,0x46,0x87,0x06,0x17,0x6d,0x78,0x8e,0x0c,0x7b,0x08,0x06,0x1b,0xd9,0x5d,0x3d,0x03,0x40,0xbc,0xe7,0x02,0xc4,0xe0,0xe0,0x49,0xb2,0x6c,0x6f +.byte 0x97,0x76,0x0f,0xc7,0x14,0xd8,0x7c,0xc0,0xad,0x8a,0xbb,0xbc,0x2a,0x7e,0x68,0x46,0xcd,0xa7,0x26,0x16,0x77,0x1b,0x89,0x38,0xd8,0x2a,0x69,0x43,0xc4,0xaa,0x0d,0xf6,0xd1,0x65,0xda,0x41,0x75,0x77,0xcd,0xf7,0xd2,0x38,0x9c,0xdb,0x81,0x17,0x27,0x2f,0xba,0x2e,0xa5,0xb5,0xbe,0x05,0xe8,0xdd,0x5f,0xa9,0xad,0xbe,0xb2,0x0e,0x0b,0x69 +.byte 0xb6,0x8d,0xd2,0xf2,0xde,0x76,0x32,0x26,0xd9,0x06,0x1d,0x42,0x26,0x8c,0xf7,0xca,0x4c,0xe1,0x59,0x82,0x6c,0xea,0x96,0x70,0x39,0xb8,0x0d,0xf3,0x67,0x9d,0x5e,0x94,0x99,0x77,0xf2,0x0a,0x9a,0xde,0xa5,0xd2,0xe1,0xaa,0x91,0x85,0xc7,0x0f,0x92,0x35,0x04,0xd3,0x7a,0x13,0xfa,0xf2,0x86,0x5a,0x38,0xd1,0x7f,0x10,0xd8,0x30,0x0e,0x33 +.byte 0xe3,0xa0,0x8a,0xad,0x4f,0x6c,0x24,0xdd,0x9d,0x1c,0x4e,0xff,0x4c,0xfc,0x74,0x01,0xab,0x08,0x6c,0xe6,0x4c,0x78,0x75,0xc9,0x67,0x83,0x1f,0x75,0x22,0xb0,0x7c,0x44,0xa0,0xa1,0xee,0x4e,0xf6,0x3e,0xd3,0x35,0x70,0xbe,0x36,0x1e,0x90,0xa6,0xaa,0x64,0x67,0x7f,0x52,0x84,0xd9,0x27,0xab,0x37,0x30,0x68,0x46,0xcc,0x0e,0x57,0x58,0x6f +.byte 0xdb,0xb2,0x5f,0x24,0xf7,0xeb,0x97,0xea,0x64,0xec,0x6c,0x1e,0xe1,0xc4,0x72,0xfb,0x00,0xa7,0x62,0xa0,0x59,0xb9,0x17,0x8a,0x33,0x32,0x59,0xb8,0xbe,0x84,0xd4,0x62,0xb7,0xf6,0x35,0xd4,0xf1,0x1c,0xdb,0x7e,0xa6,0xbc,0x2c,0x54,0x3c,0xf5,0x63,0x4a,0x22,0x26,0x58,0xa0,0x35,0x98,0xa7,0x32,0xb2,0xa0,0x2b,0xd5,0xfa,0x2f,0x9b,0xb4 +.byte 0xea,0xd6,0x58,0x61,0xb2,0x24,0x45,0x46,0x1e,0xac,0x79,0xa4,0xf7,0xc1,0x13,0x2f,0xf5,0x6b,0xfa,0x70,0x50,0x2b,0x83,0xee,0x7c,0xc1,0x55,0x27,0x7b,0x4f,0xa6,0x0a,0x72,0x26,0x82,0xcd,0x4d,0xe2,0xe8,0x45,0xe6,0xd7,0x39,0x7e,0xed,0x35,0xdf,0x9e,0xb1,0x41,0x55,0xa2,0x5d,0x68,0x4b,0x0b,0xd1,0x73,0x5a,0x2b,0x81,0x35,0x28,0xfc +.byte 0x64,0x08,0xd7,0xc4,0x9f,0x30,0x77,0x3d,0x9d,0x80,0x15,0x67,0x9a,0x84,0xe4,0x34,0xea,0x8c,0xf7,0x73,0x9e,0x33,0xb4,0x09,0x33,0xbd,0xd8,0x82,0x43,0x7d,0xc5,0x1f,0x0e,0x7b,0xa0,0x53,0x59,0x20,0x12,0x57,0xed,0xda,0xc7,0x19,0x8e,0x62,0xe4,0x09,0xc1,0x4b,0x20,0x32,0x9e,0x18,0x11,0x1c,0x42,0x49,0x62,0x76,0xa8,0x83,0x72,0x11 +.byte 0x45,0xe7,0xb5,0x60,0xa7,0xc0,0x07,0xbd,0xb4,0x7c,0xc6,0x5c,0x03,0x34,0xa3,0x85,0x47,0x24,0x75,0xd2,0xab,0x46,0xbb,0xc7,0x0d,0xcd,0x40,0xe2,0x5e,0x5b,0xa7,0x98,0x67,0xe4,0xe2,0x02,0xe9,0xdc,0xd7,0xc2,0xaf,0x90,0x43,0x94,0xfe,0xf3,0x53,0xc1,0x10,0x28,0xa7,0x90,0xba,0x73,0x57,0x0c,0x4d,0x6d,0xbd,0xda,0x81,0xd5,0x90,0xce +.byte 0x02,0x40,0xb3,0xf0,0xec,0x50,0x82,0xc9,0xfb,0xf1,0x22,0x6d,0xc8,0xd2,0x7b,0xed,0x0b,0x43,0x7e,0x0b,0x60,0x9b,0x69,0x9e,0x58,0x26,0xc3,0x9f,0x6b,0xd0,0x31,0xeb,0xb7,0x0a,0xf3,0x9a,0x9a,0xf5,0x72,0xcf,0x29,0xc8,0x19,0x08,0x4d,0x67,0xd5,0xa1,0x8f,0x68,0x0e,0xee,0x59,0x14,0xf8,0x86,0xc0,0x08,0x5a,0x56,0xfe,0x6a,0xb7,0xac +.byte 0x78,0x8d,0x77,0x39,0x5e,0xb1,0x01,0x4d,0x31,0x81,0x56,0xdc,0x5b,0x10,0xda,0x4d,0xd2,0xfd,0xfc,0xa3,0xe3,0xaa,0x46,0x29,0x1a,0xea,0x9c,0x47,0x1b,0xd0,0xa6,0x84,0x1f,0x71,0x1a,0xd3,0x35,0x59,0x7f,0xef,0xf7,0x81,0x39,0x7a,0x9f,0x4a,0x01,0x4d,0x46,0xcf,0xa4,0x6a,0x9c,0x7e,0x07,0x8b,0x98,0x17,0x49,0x5c,0x46,0xac,0xc8,0xfd +.byte 0x1c,0xaf,0x91,0x30,0x0c,0x36,0x63,0xef,0x69,0xd3,0x47,0xf4,0x76,0xc1,0xf7,0x40,0x03,0x98,0x9e,0xcb,0x61,0x65,0x46,0x45,0x1c,0x1b,0xfd,0x13,0x36,0xe9,0x19,0xbf,0x2b,0x59,0x51,0xe8,0x04,0x44,0xe3,0xc2,0x4b,0x66,0x78,0x69,0x66,0xa3,0x1a,0xe5,0x2a,0xad,0xf8,0xc5,0x0f,0xb7,0x3e,0xe8,0xab,0xe0,0xe4,0xd9,0xc2,0xb8,0x61,0x5b +.byte 0xef,0x6b,0x4d,0x5f,0xb8,0xdc,0x06,0xa5,0xce,0x08,0x5b,0x1f,0xf4,0x29,0x4d,0x0a,0x3e,0xb3,0x60,0xf4,0x63,0x3c,0x70,0x5d,0x02,0x9c,0x55,0x5e,0x5e,0xd1,0x9b,0xed,0x20,0x75,0x54,0xa1,0x8e,0xae,0xce,0x5a,0xb2,0x2d,0xe4,0xc3,0x9b,0x7d,0x72,0xce,0x7c,0x0c,0xa9,0x99,0xa4,0x12,0xaa,0x31,0xe9,0x61,0x47,0x8a,0x41,0x93,0xd5,0x69 +.byte 0xc5,0xf3,0x9f,0xf4,0x97,0x69,0x64,0x6f,0xf9,0x5b,0xbf,0x58,0xf6,0x3b,0x3e,0xd6,0x93,0x94,0x89,0xcc,0xc0,0x25,0x7d,0xf8,0x40,0x9e,0xb2,0xc8,0x75,0x9d,0x4d,0xf0,0x5f,0xa5,0x3d,0x38,0x67,0xea,0x8d,0x1b,0x60,0x5e,0xfe,0xa8,0x26,0xb9,0xed,0xc0,0xe9,0xc8,0xec,0xb1,0x77,0x0f,0xf2,0xaa,0x77,0x2a,0xcd,0xa8,0x70,0xb7,0xda,0x60 +.byte 0x49,0xb3,0x01,0x95,0xc8,0xac,0x71,0x6a,0xd0,0x49,0x67,0x2a,0x04,0xfc,0x55,0x38,0x08,0x37,0xd9,0x21,0x37,0xce,0x41,0xaf,0x7c,0x33,0xdd,0xcd,0xe0,0x92,0x27,0x38,0x63,0x77,0xea,0x86,0x04,0x99,0x4e,0x61,0x8b,0x8f,0xfe,0x4e,0xc1,0x16,0x6c,0x89,0xac,0x1f,0x0b,0x67,0x75,0x49,0xf4,0xdb,0x6d,0xd3,0xb8,0x1d,0x9c,0xb2,0xe6,0x98 +.byte 0x81,0xae,0x3f,0xe0,0xdd,0xda,0xfa,0x4c,0x8b,0x30,0x18,0x88,0xa1,0x1d,0xa1,0x18,0xb8,0x28,0xc2,0x04,0x6a,0x80,0x02,0x5a,0xe6,0x04,0x85,0xfa,0x54,0x38,0x45,0x64,0xe1,0x50,0x4a,0x38,0x4c,0x85,0xf7,0x00,0x0c,0xd3,0x16,0xcb,0xfa,0x38,0xb4,0x1b,0x6a,0x95,0x3d,0xc3,0x24,0x79,0x0e,0x3e,0x81,0xe6,0xc3,0xd9,0xdb,0x05,0x19,0x7c +.byte 0xb4,0x4d,0xef,0x71,0x22,0x53,0x97,0x8a,0xc9,0xe3,0x69,0x20,0x5b,0x83,0xb1,0x44,0xd7,0xd1,0x1e,0x87,0xa7,0xbf,0xe4,0x84,0x68,0x9c,0x77,0xfe,0x83,0xdb,0x7a,0x53,0xa8,0x53,0x1f,0xc7,0xd1,0x6a,0x26,0x87,0x71,0x06,0x23,0xa7,0xe0,0x18,0x5d,0xfa,0x8c,0xa7,0x24,0xee,0xf6,0x74,0xab,0x17,0xd3,0x46,0x33,0xe9,0xc3,0xcd,0xa6,0xaf +.byte 0xcf,0xa1,0x60,0x75,0x7b,0x77,0xc3,0x58,0xa2,0xe8,0x87,0x7b,0x4b,0x57,0xb1,0x96,0xc1,0x91,0x6d,0xbf,0x71,0xb3,0xbf,0xe2,0x62,0x86,0x72,0xa9,0x01,0x64,0x62,0x32,0x33,0xc8,0xa4,0x26,0x7d,0xfa,0x0d,0xd4,0xd8,0xc3,0xaa,0xc0,0xc8,0x7c,0x51,0xe8,0x10,0x08,0x6f,0xf6,0xc1,0x46,0x89,0xc4,0xd2,0x00,0x1d,0x14,0x05,0x89,0x64,0x52 +.byte 0xcd,0x1f,0x97,0x0b,0x1d,0x94,0xbe,0x9d,0xa0,0x6b,0x03,0x9b,0x83,0x87,0x38,0x0f,0x65,0xdd,0x6a,0xaf,0xf1,0x22,0x74,0x7e,0x11,0xa0,0xdf,0x1e,0x95,0xef,0x1a,0xdc,0x8b,0x29,0x4a,0xbe,0xfd,0x2f,0xc7,0x48,0x94,0x3f,0xb9,0x8c,0x8e,0xe1,0x0c,0x54,0xa6,0x2f,0xa5,0x2b,0x71,0xdd,0x16,0x68,0x91,0x35,0xd0,0x22,0x48,0x1f,0xf2,0xe2 +.byte 0xe8,0x57,0x83,0xd7,0x49,0x43,0xfd,0xf9,0x77,0xb5,0xfa,0x70,0x19,0xeb,0xae,0xf6,0x31,0xfe,0xd6,0x81,0x6c,0xcc,0x14,0x28,0xa6,0x9f,0x74,0x56,0xc5,0xf6,0x51,0xba,0xc8,0xbd,0x32,0x80,0x5f,0xdb,0x28,0x3f,0x4a,0x55,0x01,0xe1,0x39,0xf5,0x9c,0xda,0xb3,0x42,0xee,0x43,0x17,0xc3,0xc7,0xf5,0xd1,0xda,0xd2,0x2e,0x56,0xcf,0x77,0x0e +.byte 0xdd,0x72,0xcf,0xe5,0xab,0xfb,0xd6,0xa2,0x6c,0x03,0xa6,0x77,0x25,0xf8,0x2a,0x8c,0xfa,0x6f,0x45,0x79,0x59,0x84,0x92,0xd1,0x00,0x58,0xc7,0xb8,0x95,0x4d,0xc8,0x49,0xad,0xe0,0x1e,0x64,0x47,0x00,0xfb,0x93,0x7f,0x3e,0xf1,0x65,0x70,0x47,0x64,0xbb,0x36,0x63,0xe3,0x09,0xcb,0xdb,0x5a,0xd1,0x72,0x83,0xfd,0x15,0x91,0xa2,0x03,0x81 +.byte 0x04,0x98,0x45,0x0f,0x7f,0x23,0x48,0x6c,0xb1,0x2d,0xd0,0x2c,0x61,0x52,0x1b,0x4a,0x52,0x08,0x92,0xe1,0x7a,0xf1,0x8c,0x1f,0x1f,0xdf,0x1c,0xfd,0xd9,0x46,0x99,0x71,0x05,0x58,0x71,0x82,0x5c,0x05,0xa0,0xb2,0x6a,0x50,0xd2,0x6e,0x35,0xf4,0x6c,0xfb,0x50,0x99,0xb3,0xc1,0x2b,0x05,0xaf,0x02,0xe5,0x18,0xfa,0x74,0x09,0xcc,0xa5,0x2c +.byte 0x26,0xfd,0xc5,0xe7,0x2c,0x96,0x0f,0xa4,0x7c,0x88,0xc6,0x7f,0xf9,0x74,0x9d,0x1c,0xe5,0xd2,0x27,0xf0,0xae,0x5b,0x4c,0xbf,0x0a,0x99,0x2e,0xaa,0x54,0xba,0x0d,0x75,0xd9,0x48,0x76,0xf3,0xe9,0xd9,0x01,0xbe,0xaa,0x97,0x09,0xfe,0xb2,0x4a,0xcb,0x55,0xd0,0xe1,0x58,0xec,0x31,0x0c,0xd9,0xdf,0xd9,0x01,0xf9,0x3c,0x28,0x40,0x91,0xbb +.byte 0x4d,0x2d,0x88,0x60,0x31,0xc7,0xc9,0x1d,0xaf,0x22,0x44,0x21,0x05,0x06,0xdd,0x07,0x60,0x29,0x7d,0x49,0x30,0x9d,0x35,0x1d,0x9f,0x37,0xbd,0x32,0xb2,0x21,0xa6,0x4f,0x89,0xd8,0xe6,0x85,0x44,0xcf,0x13,0x12,0x4f,0x5f,0x50,0x71,0x01,0x39,0xff,0x6e,0xa0,0x07,0xff,0xf0,0xa6,0x3b,0x39,0x59,0x17,0xae,0x93,0xb2,0x86,0xcc,0xe5,0x59 +.byte 0x5a,0xf2,0x82,0x62,0xc6,0x8d,0x13,0x2f,0x6b,0x92,0x28,0xbe,0xd1,0xc0,0xf6,0xc9,0xe1,0xd6,0x98,0x94,0x65,0xd4,0x2a,0xdb,0x37,0xb1,0xd3,0x83,0xf2,0xaa,0xa5,0x00,0xf9,0x08,0xe6,0x22,0x38,0x30,0xb6,0x49,0x8d,0x9d,0x1c,0xa4,0xf7,0xdb,0x3c,0x6f,0x75,0x08,0xa0,0xda,0xe9,0xc0,0x01,0x54,0x09,0x68,0xc6,0x7c,0x5b,0x4d,0x88,0x71 +.byte 0xa7,0x2f,0xb3,0x50,0x18,0x4a,0xfb,0x55,0x29,0xf2,0x56,0x1d,0x4c,0x12,0x22,0x1c,0x54,0xd2,0x63,0x67,0xfa,0xe9,0x5b,0x74,0x3b,0x38,0xf6,0xa0,0x85,0x63,0x1c,0x41,0x6a,0x6d,0x71,0x1d,0xb1,0x39,0x28,0x88,0x96,0x9b,0x9c,0x50,0x9e,0x57,0x4e,0xf5,0xa7,0xf4,0x17,0xc6,0xca,0x42,0x84,0x83,0xca,0xa4,0x28,0x72,0x08,0x74,0x62,0xe1 +.byte 0xf0,0x73,0xc5,0x86,0x6c,0x76,0x9d,0xd3,0xa6,0xb8,0x5d,0x73,0x1b,0x02,0xe2,0x69,0x8b,0x59,0xd6,0x6a,0x53,0xe9,0x13,0x88,0x41,0x95,0xe9,0x97,0x5f,0x07,0x62,0xa5,0x21,0x97,0x7e,0x5e,0xc2,0x2c,0xc7,0xaf,0x0a,0xdb,0x9e,0x4f,0x44,0x4b,0xd6,0x3d,0xc0,0x24,0x38,0x50,0x47,0x98,0xa3,0xfc,0xda,0xfc,0xae,0x0e,0x2b,0x9b,0x53,0x0f +.byte 0x6b,0xb1,0x2f,0xd5,0xd7,0x68,0xc9,0xab,0xb9,0xff,0x7f,0x54,0xd6,0x2f,0x88,0xbc,0x5e,0x6a,0x22,0x49,0x0f,0x98,0xbe,0x1f,0xef,0x3e,0xcc,0xa2,0x72,0x6b,0x16,0xbe,0xe8,0x5f,0x0e,0x36,0xa2,0x68,0xe0,0x65,0xd9,0x7c,0xdc,0x8c,0x6a,0x66,0xf0,0x6a,0xfc,0x2b,0x85,0x28,0x2a,0x1a,0xfc,0x92,0x64,0x3d,0x38,0x5b,0xc1,0x0c,0x68,0x45 +.byte 0x94,0x85,0x58,0x82,0x99,0xfc,0x20,0xdd,0x62,0xae,0xed,0x35,0x7c,0x02,0x16,0x9b,0x00,0x8a,0x44,0x02,0x80,0x00,0xca,0x7d,0x95,0x03,0x5d,0xa6,0xec,0xe1,0x0c,0x50,0x34,0x61,0x55,0xee,0xb5,0x11,0xff,0xc3,0xaa,0xf2,0xbc,0xa3,0xa9,0xc7,0x6b,0x16,0xab,0x56,0x7b,0x55,0x54,0x95,0x88,0x15,0x15,0x6a,0x2c,0x97,0xd7,0x7c,0x26,0x65 +.byte 0xaf,0x8d,0xd1,0x05,0x57,0xb2,0x63,0xd1,0x22,0xf7,0x7d,0x77,0x54,0x6c,0x87,0x03,0x1f,0x0e,0x2b,0xae,0xa6,0xa4,0xb5,0xd6,0x95,0x34,0xd0,0x62,0x4e,0xfb,0xcb,0xee,0x01,0xc1,0xf7,0x36,0x94,0xa6,0x54,0x94,0x90,0x0e,0x45,0x9c,0x95,0x89,0x96,0x88,0x32,0x90,0x27,0x48,0xc5,0x96,0xf0,0x7e,0x7f,0x69,0x99,0xdf,0x7b,0xfb,0x2b,0x7b +.byte 0x38,0x10,0x6b,0xd1,0x1a,0xfb,0xf2,0xcd,0x2d,0x8b,0x47,0x21,0xca,0x92,0x64,0x28,0xd1,0x53,0x1d,0xed,0xa7,0x7d,0xa4,0x88,0xab,0xd0,0xfe,0x9b,0x2b,0xf8,0x48,0x94,0x8d,0xd5,0xfa,0x5c,0xef,0x12,0x43,0xdf,0xb6,0x5b,0x83,0x43,0xf3,0xf7,0x1d,0x6f,0x3e,0x44,0xe6,0x20,0xd8,0xbc,0x4a,0x9a,0xed,0xa0,0x79,0x66,0x8d,0x23,0xca,0x35 +.byte 0x15,0x87,0x11,0x50,0xa4,0x40,0x6e,0xfa,0xf7,0xaf,0xa2,0xb7,0x3b,0x9b,0x8b,0x44,0x19,0x90,0xb3,0x47,0x92,0x08,0x2f,0x0c,0xe2,0x95,0x5d,0x80,0xb5,0x93,0x5e,0x1c,0xb5,0xce,0x52,0x0b,0x12,0xc1,0x72,0x2e,0x66,0x8c,0xd1,0x13,0x94,0x36,0xf7,0x17,0xe3,0xad,0x69,0xc9,0x2d,0x21,0x64,0xcd,0x8f,0x2d,0x8f,0x0c,0x85,0xa5,0x23,0x8b +.byte 0x6c,0x00,0x13,0xf7,0x6a,0xb4,0x68,0x1a,0xcc,0xc4,0x03,0x5b,0xd6,0x7b,0x5b,0x34,0x90,0x34,0x3e,0x0a,0x07,0x19,0x81,0x99,0xe9,0xd2,0xa8,0x73,0x2c,0xa2,0xcf,0xdf,0x29,0x69,0xbf,0xec,0xdd,0xa5,0xd3,0x16,0xb0,0xd2,0x9c,0x2f,0xeb,0x70,0x50,0x20,0x3c,0x22,0x1a,0x5b,0x55,0x79,0x76,0x0f,0x1f,0xd0,0x34,0xa9,0x55,0xad,0x75,0x75 +.byte 0x7f,0xa7,0x9b,0xa7,0x3d,0x5d,0x73,0xce,0x91,0xf6,0x9b,0xcd,0xa5,0xee,0x48,0x44,0xba,0xd5,0xad,0xbe,0x1e,0xc6,0xd2,0x8b,0x05,0x21,0x20,0xb5,0x7d,0x78,0x88,0x10,0x20,0x85,0x90,0x8f,0x47,0x74,0x68,0xe6,0x32,0x2a,0x13,0x7a,0xb3,0x5d,0xfe,0x24,0x97,0xd1,0x65,0x55,0x60,0xb3,0x88,0xfb,0x59,0xc9,0x29,0x70,0xf1,0x45,0xbd,0xbe +.byte 0x4d,0x01,0x4e,0x5e,0x5f,0x99,0x52,0xf8,0x5f,0x38,0xcf,0xa8,0x5d,0x69,0x54,0x87,0x72,0x41,0xca,0xc4,0x63,0xc1,0x52,0x58,0x66,0x8b,0xda,0x8b,0x61,0xd1,0xab,0x7d,0x8d,0xfe,0x51,0x8d,0xf6,0xd0,0x21,0x4d,0x0b,0xc5,0xea,0x74,0xcd,0x21,0x93,0x4a,0x91,0xe5,0x3f,0xce,0x35,0x3b,0x3f,0xc0,0xab,0xa4,0x23,0x76,0xd1,0x8c,0xa7,0xbe +.byte 0x15,0xab,0x8e,0xd7,0x0d,0x86,0xac,0xc3,0x06,0xff,0x33,0xf2,0x41,0x6f,0x69,0x58,0x49,0xd1,0x73,0xcf,0x5e,0x4e,0x1e,0x46,0x12,0xfa,0x30,0x0d,0x4b,0xb1,0xfb,0xc6,0xe6,0x0d,0xcd,0x8d,0xca,0x34,0x28,0x5a,0xed,0x85,0x55,0x31,0xee,0xba,0xbf,0xa4,0x6f,0x9c,0x7d,0xeb,0x4b,0x1b,0x73,0xea,0x4e,0xb9,0x62,0x5d,0xac,0xe3,0x53,0xdf +.byte 0x27,0x87,0x2f,0x39,0xca,0x5b,0xd6,0x72,0xcf,0x95,0xc6,0x2a,0xa5,0x3f,0x57,0xfd,0xdc,0xa9,0x4a,0x86,0x0f,0xcd,0xd5,0xea,0xfe,0x85,0xeb,0x9b,0x84,0xc6,0xf7,0xba,0xc2,0x37,0xbc,0x18,0x85,0x49,0xa6,0x7f,0xd9,0x3e,0xfb,0xf0,0x0c,0x39,0xe3,0x1c,0x06,0xfe,0xb6,0x49,0xa3,0x8b,0x72,0x2b,0x39,0xa1,0x48,0xfd,0x1f,0xfe,0xa4,0xf7 +.byte 0xcc,0x7a,0xef,0x64,0xa0,0x0d,0xeb,0x78,0x71,0x8c,0xd6,0x59,0x7c,0xf4,0xaa,0x81,0x7a,0x89,0xe6,0x22,0xc9,0x57,0xe8,0x13,0x9c,0xca,0xc4,0x6f,0xb5,0xbf,0x08,0x31,0x93,0x56,0x2a,0x82,0x00,0x95,0xdc,0x4b,0xfd,0x9b,0xc7,0x8b,0x31,0x72,0xa0,0xff,0xbe,0xb4,0xd6,0x07,0x16,0x0a,0x4a,0x0a,0x96,0x02,0x83,0x53,0x2a,0x4d,0x33,0x72 +.byte 0x1f,0x20,0x20,0xc3,0x63,0xee,0x4e,0x05,0x90,0x7d,0x21,0xd0,0xf1,0xda,0xde,0x0d,0x4a,0x59,0xb9,0xca,0x81,0xe3,0x1f,0x83,0x19,0xdc,0x09,0x03,0x5f,0xaa,0xee,0xbc,0x5a,0xfa,0xc6,0x4d,0x3d,0xfe,0xfe,0xf3,0xdb,0xc3,0x77,0x31,0x74,0xb4,0x94,0xb5,0x09,0xb1,0xb5,0x13,0x47,0x2e,0x4f,0x3b,0x38,0x83,0xf5,0xfc,0xe9,0xcc,0x45,0xea +.byte 0x5b,0x88,0x21,0xba,0x53,0xc5,0xf6,0xd4,0x63,0xc5,0x37,0x1d,0xa1,0x42,0x2e,0x9c,0x9a,0x50,0x2c,0xfe,0xdb,0xf6,0x31,0x36,0x5f,0x9d,0xed,0x63,0x42,0x20,0xdd,0x27,0xe5,0x34,0x3c,0x0f,0x06,0x8b,0x8f,0x32,0xb6,0x47,0xce,0x07,0xcb,0x27,0xc1,0xb7,0xfe,0xb2,0x69,0x81,0x79,0x20,0xd7,0x47,0xbb,0xab,0x61,0x5f,0x09,0x99,0xdf,0x9f +.byte 0xde,0x59,0x33,0x75,0xd1,0xcc,0xfe,0x92,0x79,0x1f,0x2d,0x59,0x88,0xef,0x4b,0x80,0x0c,0x38,0xa3,0xb1,0xef,0xae,0x53,0x84,0x2f,0xbd,0xd3,0x0c,0xcf,0xd5,0xf7,0xb7,0x6f,0xa7,0x22,0x1f,0xf1,0x56,0x76,0x0c,0x78,0x52,0xa3,0xc0,0xd0,0x2f,0xbc,0xdf,0x29,0x0d,0xa8,0x54,0x0d,0x2b,0x65,0x1b,0x7f,0xeb,0x21,0x22,0xaf,0x10,0xc1,0xd6 +.byte 0x30,0xa8,0x2f,0xb1,0x25,0xbf,0xdc,0xee,0xe9,0x35,0x40,0x69,0xa0,0xa0,0x27,0x85,0x2e,0x18,0xc1,0x36,0x24,0xc5,0x96,0x9a,0x85,0x3f,0xbb,0xfd,0xf5,0x02,0xa2,0xa1,0x92,0x3c,0x16,0x48,0x9f,0xc5,0x00,0x7c,0x7b,0xaf,0x31,0xba,0x68,0x0e,0x58,0x88,0xf4,0x10,0xb9,0xa6,0xe0,0x46,0x2a,0xb8,0x8d,0xc7,0x8e,0xad,0x7c,0xec,0xd2,0x74 +.byte 0x92,0xfe,0x1b,0xd0,0x73,0x79,0x0b,0x4e,0xcc,0x2d,0x5c,0xe7,0x80,0x2d,0x21,0x1c,0x97,0xfc,0x2a,0xc9,0x9c,0x07,0x10,0x64,0x8b,0xf7,0xf5,0x1c,0x54,0xb6,0x6c,0x73,0x1c,0x50,0xd3,0x1a,0x2a,0x63,0xcb,0xba,0xd3,0x95,0xe2,0xa6,0xc3,0xca,0x45,0xfd,0x5e,0x1b,0xbb,0x6b,0x4d,0xb3,0xf7,0xfd,0xaa,0xf9,0x73,0xb8,0x74,0x4d,0x36,0x7e +.byte 0xcc,0xaa,0x1e,0xf3,0x20,0x68,0xa5,0x0c,0x03,0xe3,0xbe,0xee,0x82,0x03,0x8d,0x10,0xa6,0xf6,0x6c,0x73,0xc2,0x9d,0x74,0xba,0x57,0x17,0xd7,0xfa,0x85,0xf5,0x1e,0x3d,0xf8,0xc7,0x80,0xef,0xcd,0xf0,0xf4,0x46,0xfc,0x07,0xb5,0xc4,0x5f,0xd2,0x04,0x6a,0x90,0xf5,0x76,0xb6,0xf9,0x73,0x22,0xa6,0x09,0x2f,0xbf,0xb5,0x93,0x9a,0x95,0x05 +.byte 0x95,0xaa,0xf9,0x8c,0x71,0xd6,0xc6,0xd9,0x72,0x50,0xf6,0x58,0x77,0x09,0x47,0x97,0x21,0x42,0xf0,0x30,0x5c,0x3c,0xec,0x60,0x67,0xdf,0x5e,0xd2,0xed,0x0f,0xab,0x25,0x11,0xbb,0xf8,0x34,0x1e,0xbd,0x7f,0xc6,0x52,0x19,0xf5,0x53,0x28,0x46,0x75,0x93,0xce,0xc2,0x0b,0xdf,0xfd,0xa5,0xf1,0xb0,0xa2,0x0b,0x97,0xb5,0x76,0xb4,0x8a,0x2b +.byte 0x82,0x55,0x23,0x29,0xc2,0xd3,0x32,0x94,0x2f,0xf0,0xe6,0x77,0x2c,0xe4,0x6a,0x7f,0xd7,0xee,0x84,0xfb,0xba,0xb8,0x4b,0xae,0x13,0x34,0xbd,0xa8,0x12,0x7a,0x3c,0x28,0x40,0x74,0x5d,0x9a,0x11,0x1a,0xe9,0x74,0x31,0x28,0x3d,0x3d,0x64,0xb7,0x54,0xa0,0x51,0x0d,0xed,0x97,0x94,0x56,0x7a,0x48,0x8e,0x36,0xc9,0xae,0x5f,0xc6,0x79,0x45 +.byte 0x4f,0x07,0xdd,0x13,0x52,0x8b,0xfc,0x3b,0x73,0x44,0x68,0x64,0x51,0x0d,0x95,0x6f,0x0f,0x94,0xba,0xf8,0x40,0x64,0x51,0x43,0x49,0x63,0xc1,0xbd,0xf3,0x39,0x7f,0x6e,0x6f,0x45,0xeb,0xd2,0x33,0x44,0x2d,0x10,0xb4,0x68,0xcb,0xcb,0x8c,0x84,0xc5,0xd4,0x63,0x1d,0x23,0x85,0x30,0x4d,0x6c,0xfc,0xc9,0xa4,0x8c,0xd2,0x42,0x69,0x2f,0x17 +.byte 0x86,0xf0,0x17,0xd0,0xb2,0xaa,0xfd,0x62,0xcb,0xb4,0xfd,0xba,0x29,0xf8,0x85,0x45,0x84,0x9d,0xae,0xf8,0x9c,0x8f,0x64,0xd5,0xb8,0xb6,0xa9,0x64,0xf9,0x39,0x86,0x68,0x29,0xac,0x32,0x87,0x84,0x6c,0xb0,0x09,0xd2,0xdd,0xf2,0xec,0xa1,0x3a,0xfd,0x11,0x37,0x54,0x67,0x29,0x62,0x25,0x62,0xe8,0x6a,0x4b,0x5e,0xde,0x9a,0xf0,0x97,0x73 +.byte 0x66,0x69,0x2a,0x21,0xbe,0x95,0x86,0xca,0xf9,0x17,0xe9,0x4b,0x23,0x83,0x1e,0x8c,0x37,0x47,0x91,0x03,0x3f,0x9f,0xb8,0x60,0x2c,0xdd,0x82,0xbd,0x2a,0xc3,0xe7,0x30,0x8f,0x91,0x2b,0xa4,0x23,0x01,0x03,0xb2,0x8b,0xbd,0xd2,0x1d,0x16,0xf7,0x6a,0x86,0xa8,0xe4,0x54,0x6f,0x9c,0x47,0xa5,0x0f,0xbe,0x94,0x56,0xfa,0x18,0x69,0xbe,0x92 +.byte 0xe9,0xf8,0x24,0x4d,0x65,0x42,0x81,0x1f,0x85,0x52,0xb7,0xc9,0x49,0xde,0xa5,0x4c,0x8f,0x0d,0x5f,0x12,0x68,0x68,0x35,0xce,0x29,0x22,0x5c,0x55,0x3e,0xbd,0xce,0xf2,0x2a,0xec,0x7e,0xe1,0x29,0x0a,0x88,0xf3,0x5e,0xeb,0x27,0xe5,0x52,0xee,0x72,0x37,0xba,0xff,0x82,0x97,0xa9,0x5d,0x77,0x6f,0xb9,0xc3,0xa7,0x73,0xba,0x7f,0x2f,0x7a +.byte 0x19,0x32,0x87,0x56,0xa2,0x89,0xb2,0xb4,0x48,0xbe,0x2e,0x30,0x89,0x0a,0x8f,0x75,0x25,0x25,0x5c,0x46,0xe8,0x02,0x45,0xcb,0x03,0xd1,0xa3,0xeb,0x70,0x71,0x08,0x1c,0x46,0xf1,0x2c,0x43,0xe2,0x44,0x30,0x6a,0x61,0x31,0x45,0x3e,0xbb,0x47,0x33,0x24,0x25,0x13,0xeb,0xf7,0x24,0x66,0x15,0x4c,0xf3,0x07,0x2f,0xff,0xdc,0x37,0x0f,0x71 +.byte 0x85,0xc8,0x56,0xa7,0x2a,0x22,0x87,0x8b,0xae,0x35,0x31,0x29,0x96,0xf0,0x81,0xfb,0x2c,0xbf,0x44,0x69,0x69,0x9a,0x77,0xfd,0xc0,0x2b,0x42,0x16,0x67,0xd6,0xbd,0xd0,0xf1,0xb9,0x40,0x8f,0xd2,0x9a,0x1b,0x2c,0x64,0x78,0x6b,0xda,0x37,0x26,0xae,0x4c,0xee,0x36,0xaf,0x84,0x61,0xe4,0x93,0x22,0x64,0xaf,0xee,0x6d,0x69,0x5c,0xe5,0x85 +.byte 0xd8,0xcc,0xcf,0xf3,0xe8,0x05,0xcd,0xd2,0x09,0x66,0xaf,0xbb,0xc4,0x79,0xb2,0xa7,0xa5,0x09,0xd9,0xf5,0xa2,0x83,0x4f,0xd5,0xf5,0xf3,0x7d,0x7a,0xab,0x94,0x83,0xb3,0x15,0xfb,0x0d,0x1a,0x1d,0x77,0xc5,0x63,0x0b,0x54,0xde,0xa8,0x0d,0xc4,0x16,0xe3,0x89,0xeb,0xa3,0x1b,0xd4,0x77,0x13,0xe3,0x55,0x98,0x15,0xab,0x3b,0x32,0xc8,0xd4 +.byte 0x0c,0x91,0x80,0x57,0xf7,0x1e,0x24,0xd0,0x56,0x78,0x29,0xd2,0x03,0xe7,0xc4,0xd2,0x09,0xca,0xee,0x9b,0x60,0x5f,0xa1,0xfd,0xaa,0x85,0x4b,0x68,0x35,0xa4,0x3b,0xef,0x29,0xb8,0x49,0x85,0xee,0xbb,0x39,0xc0,0xc6,0x99,0x97,0xc6,0x86,0x6c,0x27,0xf9,0x1a,0x19,0x6e,0x7c,0xae,0x75,0x41,0x0d,0x08,0x1e,0xf0,0xb4,0xc3,0x9e,0xdb,0x40 +.byte 0x86,0x94,0x9d,0x90,0x09,0x3f,0xdc,0xb9,0xfc,0x59,0x41,0xc5,0x5b,0x89,0x97,0x49,0x4a,0x1a,0x06,0x68,0x83,0xd8,0x7e,0x09,0x51,0xe1,0x86,0xd8,0x88,0xbe,0x8a,0x36,0x48,0xb3,0x83,0x7b,0x57,0xdd,0x8f,0x18,0x67,0x4a,0x7d,0x68,0xab,0xb9,0x05,0xf0,0xe4,0x27,0x4e,0x33,0x44,0xa7,0x13,0x04,0x94,0xc5,0x57,0xaf,0x36,0x03,0xe8,0x09 +.byte 0x36,0x5b,0xe8,0x92,0xad,0x0a,0x79,0x02,0x24,0x43,0x62,0xc7,0xa5,0xce,0x7c,0xac,0x6d,0x0a,0xf2,0x83,0x33,0x05,0x3b,0x6f,0x9d,0xda,0x96,0x9f,0x8b,0x79,0x3e,0x6c,0xd6,0xba,0x7f,0xea,0x84,0xd8,0x23,0xb6,0x92,0xc3,0x9c,0x7f,0x0d,0xcb,0x7b,0x9f,0xbd,0xc2,0xf5,0x6f,0x71,0x67,0x5f,0x0b,0xd1,0x73,0xb5,0x8c,0x46,0x07,0xcd,0xd8 +.byte 0xee,0x28,0xcf,0x8f,0x8e,0x5c,0xde,0x14,0x78,0xc7,0x60,0xd5,0xf4,0x49,0x97,0x46,0x5f,0x49,0x4a,0xb4,0x8f,0xc9,0xd1,0x52,0x34,0x01,0x29,0xa1,0x46,0x55,0xf8,0x29,0x53,0xbb,0x32,0x1e,0x4b,0x89,0x96,0x53,0x0b,0xf2,0x16,0xf9,0xa7,0x70,0x93,0x59,0x78,0xc0,0x77,0x78,0x9f,0x6c,0xb3,0x0e,0x3f,0x6f,0x40,0x09,0x1d,0xd6,0x66,0x4e +.byte 0xe8,0xb0,0xa1,0x14,0x65,0xc8,0xc7,0x3f,0xd2,0xf0,0x1f,0xfd,0x51,0xe0,0x29,0xd6,0x39,0x26,0x60,0xfe,0x62,0xc2,0xe4,0x45,0x6d,0x01,0xdb,0xd3,0x7c,0xdf,0x48,0x10,0x2f,0xf2,0x8e,0x6c,0xc6,0x58,0xc3,0x7d,0x26,0xb1,0x9d,0x52,0x02,0x2a,0x5f,0x2b,0x57,0xca,0x84,0x9d,0x74,0x31,0x01,0x0f,0xda,0x3d,0x7c,0xbb,0xdc,0x71,0x82,0x8b +.byte 0x42,0xaf,0x49,0x9e,0x2c,0xe8,0xdc,0xa1,0xfb,0x23,0x6d,0xdb,0xdc,0x36,0x01,0xc9,0xb3,0x93,0xd4,0x2e,0x8b,0xd1,0xe4,0xed,0x1b,0xd0,0x4c,0xeb,0xaf,0x96,0x57,0xde,0xee,0x90,0xf4,0xa7,0x58,0x46,0x8a,0xd4,0xa9,0x44,0xe0,0xb3,0x13,0x96,0xb2,0x8a,0xb0,0xd3,0xbe,0x71,0x38,0xb7,0x35,0xa9,0xa8,0x48,0x37,0xa3,0x11,0x0e,0x61,0x36 +.byte 0x6c,0xaf,0x6c,0xf2,0x3f,0xd6,0x55,0xb3,0xa5,0xe0,0xaf,0x18,0x6a,0xf5,0x78,0xb5,0x7c,0xc7,0x48,0x24,0x6c,0xea,0x1e,0x7f,0x52,0xb4,0xe8,0x72,0x46,0xd2,0xbd,0x1c,0x9e,0xe6,0x5b,0x3e,0x9c,0x6c,0x6c,0x6b,0x45,0x0c,0x3a,0xb7,0x67,0x3c,0x8e,0x77,0x77,0xbf,0x50,0xb6,0x30,0x6e,0xe1,0x28,0x0d,0x2a,0x85,0x44,0xf8,0xbb,0xf1,0x14 +.byte 0x89,0xaa,0xc2,0x27,0xf5,0x8e,0xa1,0xd3,0x07,0xba,0xe8,0x03,0xcf,0x27,0x1c,0xa6,0xc4,0x63,0x70,0x40,0xe7,0xca,0x1e,0x05,0xb7,0xb7,0xdc,0xc0,0x07,0x4c,0x0d,0x21,0x12,0x60,0x02,0xe3,0x86,0x65,0xe7,0x1c,0x42,0x86,0xdd,0xdb,0x7f,0x26,0x60,0x01,0x3d,0xd8,0x18,0xcd,0x7a,0x9f,0xf8,0xb2,0xf6,0x6d,0xd3,0xe0,0x57,0x1f,0x80,0x30 +.byte 0x2d,0x5e,0x71,0xdf,0x4d,0x7f,0xcd,0x63,0x77,0x19,0x5e,0x2d,0xd5,0xb5,0xfa,0xa9,0x26,0x02,0xb9,0x62,0x2b,0x57,0x80,0x0a,0xe9,0xbc,0xa4,0x3b,0xa7,0xf1,0xf3,0x77,0x2b,0x6b,0x41,0x5e,0xf7,0xe8,0x66,0x23,0x63,0xac,0xcd,0x58,0xfc,0xa9,0x97,0x6b,0x5a,0x1e,0xe5,0x7d,0xfd,0xb1,0x42,0x7f,0x99,0xdd,0x60,0xaf,0x39,0x46,0x36,0xdd +.byte 0xc2,0x70,0x83,0x53,0xd1,0xc3,0x69,0xc8,0x90,0x0e,0x2b,0x34,0xb2,0x0c,0xb9,0x7a,0xb8,0x6b,0x7c,0xc2,0xf3,0xae,0x41,0x24,0xb8,0x94,0x5f,0xdd,0xce,0xda,0x95,0xda,0x49,0x81,0xb6,0xf8,0xa9,0x8e,0xb3,0x79,0xf8,0x55,0xf9,0xcf,0x8c,0x24,0x99,0xfc,0x6b,0x15,0x0f,0x39,0xac,0xd0,0x3e,0x89,0x9d,0xc2,0x46,0x8c,0x99,0x45,0xfd,0xce +.byte 0x13,0x4c,0x9c,0xc8,0x80,0x87,0x8f,0x7b,0x28,0xe3,0x5e,0x2b,0xe3,0x89,0x7e,0x13,0x52,0x52,0xe9,0x3a,0xed,0x33,0xe7,0x28,0xc7,0x7a,0x48,0x8d,0x0e,0xee,0x24,0xc4,0x61,0x04,0x3c,0xd4,0x7e,0xf3,0x30,0x22,0x07,0x58,0xae,0x02,0xc5,0xd1,0x7d,0x04,0x18,0xca,0xd6,0x04,0xd4,0xc5,0xa4,0xff,0x8d,0x0d,0x68,0xd4,0x1a,0x3a,0x72,0x6f +.byte 0x41,0x1e,0xda,0xc0,0x97,0x7c,0x55,0x2c,0x13,0x20,0x9a,0x07,0x35,0xcc,0xc5,0x83,0xee,0x41,0x77,0x51,0x28,0x07,0xe0,0x81,0xe3,0x9b,0x1f,0xdb,0x73,0x5c,0x8d,0x82,0xa2,0x8b,0xf4,0x92,0x4f,0x70,0xa8,0x6a,0xcf,0xbf,0xcf,0x0b,0x71,0xbc,0xeb,0x81,0xb4,0xc9,0x65,0xe7,0x43,0xef,0x25,0x45,0x27,0xea,0xcd,0x60,0x68,0xcd,0x2d,0x7a +.byte 0xfd,0x88,0x6d,0x06,0xd5,0x92,0x32,0xc3,0x18,0x88,0x64,0xa7,0xde,0x39,0xeb,0x0b,0x5c,0x9c,0xf6,0xf6,0x93,0x90,0x24,0x0c,0x9e,0x0b,0x89,0x1c,0xcb,0xc8,0x96,0x72,0x17,0xae,0x46,0x61,0x69,0x6e,0xbe,0x6c,0xf1,0xa4,0xa4,0x50,0xa9,0x2a,0x47,0xd7,0x80,0xe4,0x72,0xd2,0x3f,0x1a,0xdd,0x82,0xdc,0x12,0x66,0x10,0x26,0x15,0x80,0x56 +.byte 0x4d,0xbe,0x02,0xae,0xe1,0x24,0x8a,0x41,0x52,0xc8,0x5d,0x8d,0x62,0x85,0xbe,0x7c,0x35,0xdd,0x88,0xd3,0xf5,0xf7,0x9b,0xf1,0x5a,0x4e,0x70,0x48,0x31,0x5a,0xaa,0x96,0x1e,0xf8,0x73,0xb4,0x0f,0xb2,0x82,0xf4,0x13,0xac,0xba,0x3b,0x12,0x36,0x1e,0x23,0xbf,0x09,0x8a,0x1c,0x96,0x47,0x56,0x2d,0x16,0x24,0xc3,0x23,0x65,0xe2,0x99,0xd0 +.byte 0xf0,0xa0,0x2c,0x64,0x35,0xad,0x16,0x34,0x67,0x52,0xbc,0x8f,0x17,0x90,0xf9,0xc7,0x4f,0x64,0x6c,0x75,0x3f,0xd7,0x48,0xa4,0x6b,0x43,0xe6,0x2e,0x7a,0xe3,0x79,0xe8,0x47,0x51,0xe9,0x52,0x36,0x30,0xa4,0x24,0x89,0x00,0xd5,0x77,0xbd,0x34,0x2e,0xa9,0x74,0x02,0x25,0xc0,0x0c,0x10,0x31,0xf0,0xa7,0xcb,0x01,0xed,0x43,0x70,0x15,0xe6 +.byte 0xda,0x01,0xb4,0x7a,0x13,0xbc,0xf1,0x57,0x34,0xb1,0xb7,0xb3,0x26,0x18,0x5f,0x42,0x6b,0xcb,0x78,0x25,0x48,0xe9,0xe6,0xe8,0xf5,0x45,0xa2,0x61,0x97,0x10,0xa5,0x7e,0x7a,0x48,0xf3,0x23,0xa5,0x88,0xc0,0xc4,0xc7,0x3b,0x5c,0x0c,0xfc,0xe0,0xf4,0x68,0x64,0xc6,0x9f,0xd9,0x17,0xcb,0xe5,0xba,0x4a,0xa4,0xe0,0x27,0xf8,0x2b,0x4e,0x67 +.byte 0x13,0xab,0xd2,0xce,0xbc,0x8d,0xdf,0x6e,0x49,0xaf,0x72,0x8a,0x51,0xa1,0x78,0x38,0x0a,0x58,0x2e,0x72,0xec,0x94,0x70,0x8d,0xdf,0x0b,0x5a,0x52,0x81,0xb1,0x9b,0xda,0x2c,0xd2,0x85,0xbb,0x8f,0xb0,0x99,0x64,0x24,0xbe,0x03,0xd9,0x92,0x8d,0x29,0xf3,0x41,0x9c,0xd6,0xef,0xef,0xb2,0x5c,0x22,0x90,0xff,0x27,0x4d,0xb3,0x91,0x72,0x9f +.byte 0x42,0xca,0x66,0xc5,0x66,0xb7,0x50,0x3e,0x83,0x6f,0x2d,0xe3,0x7b,0x2a,0xc4,0x5a,0x93,0x92,0x80,0xdb,0x1a,0xdd,0xef,0xfd,0x96,0xcb,0x6a,0xd8,0x4a,0xc5,0x6e,0x36,0x4a,0xe4,0x10,0x15,0xb3,0x12,0xb4,0xd9,0x9e,0x37,0x48,0x96,0xcb,0xe5,0x3a,0x4f,0x57,0xa6,0x46,0x2f,0xd3,0x06,0xb8,0x61,0x1c,0x17,0x3a,0xb8,0xad,0x40,0x50,0x57 +.byte 0x10,0xd9,0xd0,0xe9,0x1b,0xe3,0x18,0x8c,0xc4,0xfa,0x08,0x8d,0x82,0x3c,0x22,0x22,0x1b,0x97,0x64,0xa6,0x8b,0x7c,0x70,0x2b,0xa0,0xd8,0x4c,0x64,0xcf,0xbc,0x49,0x78,0xcb,0x92,0x0f,0xe1,0x60,0x12,0x4e,0x92,0x0d,0xaf,0xa4,0x1f,0xe0,0x2a,0xa5,0x69,0xc6,0xa1,0x91,0x5c,0xdd,0xb8,0xae,0xfa,0xc5,0xb9,0x18,0x31,0x81,0x32,0x6e,0x97 +.byte 0x44,0x2a,0xda,0x58,0xcd,0x9e,0x0d,0x57,0xe0,0xe3,0x5f,0x7b,0x04,0xd8,0xc8,0x68,0xf5,0xa2,0xac,0x0c,0x29,0xf0,0x7e,0xff,0x32,0xfb,0x53,0x1a,0xc2,0xe3,0xae,0xa5,0xe4,0x9c,0x50,0xaf,0xf4,0xde,0x0b,0xdd,0x4d,0xfa,0x65,0x3c,0xbe,0x3c,0xb8,0xda,0x88,0xd9,0x6c,0x55,0x58,0xe1,0x4d,0x00,0xa8,0x1e,0xe2,0x3a,0x9c,0x53,0x9b,0xca +.byte 0xb7,0x5d,0x3a,0x83,0xe0,0xbb,0x95,0xc4,0xd5,0x45,0x48,0xdc,0x12,0xab,0x24,0xfc,0x5d,0x91,0xe1,0xc8,0x0a,0x5c,0x10,0xc4,0xc9,0xaf,0xb6,0x54,0x80,0xfd,0xa0,0x70,0xb9,0xab,0xdf,0x34,0x9f,0x5c,0xff,0xde,0x8e,0xa0,0x0b,0x21,0xcf,0x28,0xc4,0xdf,0x67,0xb5,0xc0,0x20,0x49,0x0c,0x7e,0xe6,0xf7,0x41,0x6b,0x75,0xd9,0x1d,0x3b,0x49 +.byte 0xb7,0x4f,0x01,0xd1,0x20,0x62,0x15,0x1e,0x9f,0x16,0xb0,0xbd,0x30,0x09,0x05,0x00,0x0f,0x25,0x5a,0x37,0xe9,0xa6,0xc6,0xef,0xe5,0x39,0x2b,0xd7,0x6b,0xc5,0x96,0xd2,0xad,0x46,0xaf,0xd3,0xc0,0xfd,0xea,0xff,0x4c,0xaa,0x44,0x48,0x9a,0xdb,0x99,0x44,0x3f,0x4a,0xf0,0x3f,0x81,0x75,0xf2,0x79,0x31,0x3c,0xed,0x56,0xc6,0xf0,0xf1,0x8c +.byte 0xdb,0x1d,0x6c,0x6c,0xcc,0xfb,0xc2,0x30,0xf6,0x24,0x14,0x69,0xc4,0x89,0x4d,0xd0,0x10,0x77,0x37,0x00,0xe8,0xc9,0xf2,0x32,0xf1,0x43,0x8b,0xe1,0x09,0xc4,0x59,0x17,0xf9,0x20,0x2b,0x01,0x76,0x20,0xb8,0x03,0x84,0xf6,0xd7,0x2e,0xef,0x20,0xa6,0xfa,0x8b,0x74,0x7f,0x4a,0x14,0x33,0xad,0xac,0x45,0x66,0x18,0x2b,0x6b,0xd2,0xb8,0x20 +.byte 0x1a,0xff,0xca,0x25,0x69,0xfd,0xba,0x4b,0x5b,0x9c,0x38,0x35,0x4c,0x30,0xa2,0x24,0x3d,0xbb,0xd4,0xf3,0x67,0x24,0xa5,0x93,0xc6,0xf5,0xb2,0xb4,0xa5,0x04,0x53,0xb6,0xe4,0xc7,0xdc,0xf1,0xe5,0x43,0xb7,0x73,0xaa,0xab,0x5c,0xea,0xcb,0xf1,0xeb,0x5b,0x04,0x7a,0xff,0x0f,0x5e,0xb4,0xd3,0x2a,0x39,0x50,0x1b,0x54,0x1f,0x32,0xd7,0x7c +.byte 0xea,0x3f,0xee,0xa5,0xc8,0x46,0x48,0x7e,0x75,0x60,0x7a,0x42,0x42,0xd3,0x15,0x07,0x69,0x46,0x1c,0xe2,0x21,0x31,0x94,0x31,0x24,0x9e,0x39,0xab,0x7a,0xf9,0xc2,0x0b,0x2d,0x6b,0x55,0xa3,0x36,0xb2,0x65,0xf2,0x17,0x08,0xde,0x15,0x83,0x07,0x36,0x12,0x54,0x8f,0x0b,0x23,0xa8,0x7e,0xb5,0x57,0x1c,0x9e,0x29,0xd7,0xd4,0x9b,0xc1,0xf6 +.byte 0x94,0x23,0xf3,0x92,0xbf,0xba,0xc8,0xf5,0x78,0x3e,0x67,0x48,0x14,0x3b,0xd4,0xe9,0x8f,0x78,0xc1,0x4b,0x9a,0x59,0x08,0xaa,0x50,0xf4,0x9d,0xc4,0xc3,0x2c,0xbc,0x56,0x2c,0x13,0x30,0x75,0xfb,0xed,0x48,0xab,0x90,0xec,0x64,0x18,0xb5,0xd5,0xb5,0x7f,0xc1,0x7f,0x83,0xf2,0xdb,0xae,0xde,0xf5,0xb5,0x29,0x03,0xbe,0x80,0xb1,0x5d,0x97 +.byte 0xd3,0x7a,0xa4,0xd0,0xe0,0xce,0x04,0xda,0xaa,0x82,0x19,0xc9,0x02,0xb7,0x1c,0xe1,0x66,0xd9,0x3e,0x86,0x6d,0xb5,0xd1,0x35,0x63,0x8e,0x4b,0xc6,0x58,0x41,0xf9,0xb7,0xba,0xf3,0x06,0x91,0xb7,0xa2,0xfb,0xb5,0x5f,0x53,0xf3,0xe0,0xc1,0xf6,0x91,0x66,0xc7,0x93,0x3a,0x0a,0x72,0xb1,0xed,0x36,0x9d,0xde,0x21,0xdd,0x7d,0x0a,0x7b,0x35 +.byte 0x1f,0xc3,0x56,0xde,0xbb,0xcb,0xb2,0x0a,0xb6,0x84,0xce,0xa1,0xc6,0x1a,0x46,0x2f,0x9f,0x48,0xd5,0x98,0x73,0xa4,0xbd,0xbd,0xa3,0xe9,0xc9,0xc4,0x64,0x89,0xb7,0x9c,0x97,0x7c,0x2f,0x88,0x22,0xe4,0x4b,0x71,0x3d,0x2a,0x47,0xee,0xf8,0xfe,0xe0,0xf7,0x03,0x14,0xe6,0x7c,0x9e,0x57,0xbb,0x8e,0xf5,0xea,0x63,0xfc,0x5b,0x18,0x3b,0xa2 +.byte 0xa1,0x4a,0x28,0x82,0x37,0x77,0x5b,0xc4,0xd3,0xc1,0xf2,0x87,0x13,0x2b,0x2a,0xc8,0xac,0x70,0xe1,0x82,0x38,0x9c,0x12,0xa0,0xc4,0x9e,0x6b,0xac,0x33,0x8a,0xe9,0x31,0x6f,0xa1,0x76,0x94,0x48,0xcf,0xbc,0x78,0x22,0x82,0x6a,0xb0,0xb9,0x49,0x71,0xdb,0xde,0x8b,0x90,0x09,0x82,0x4d,0x79,0x17,0xe8,0xcf,0xd8,0x50,0xc3,0x08,0x07,0x81 +.byte 0x5f,0x9a,0x72,0xce,0x0a,0xe4,0x29,0xc9,0xdd,0x95,0x67,0x58,0xa1,0x14,0xec,0xcf,0x2f,0x29,0xcf,0xce,0xb3,0x35,0x54,0x77,0x67,0x56,0xec,0x95,0x68,0xee,0xbf,0x9c,0x9f,0x74,0x78,0x12,0xd5,0x30,0x83,0x28,0xd5,0x36,0x96,0x57,0xa0,0x8d,0x1c,0x99,0x19,0x04,0xaf,0x25,0xe5,0x71,0x83,0x88,0xb0,0x74,0x38,0xdd,0x8a,0xff,0x39,0x7a +.byte 0xfd,0x34,0x8f,0x9c,0x67,0xa8,0xc8,0x6f,0x13,0x5d,0xf2,0x5b,0x22,0xd3,0x8e,0x63,0x51,0x58,0x9b,0xfc,0xaa,0x89,0x65,0x4e,0x36,0xc4,0xa7,0xef,0x98,0xf9,0xaf,0xcd,0x35,0x8c,0x16,0xbc,0x70,0x4f,0xcd,0x71,0x2a,0xf4,0x13,0xb3,0x3d,0xa3,0x92,0x71,0x45,0xe5,0x9a,0x45,0xbd,0xc5,0x1d,0x82,0x60,0x3a,0x97,0xf3,0x0f,0x96,0x21,0x3d +.byte 0xe5,0x6e,0xfb,0x9d,0x9b,0xeb,0x15,0xc2,0xa6,0x73,0x76,0xf2,0xcd,0xec,0xfd,0x0f,0xf4,0x3f,0x46,0xc9,0x9c,0x73,0xa1,0x21,0x08,0xdc,0x31,0x00,0xaa,0x95,0x07,0xf0,0x3d,0x51,0x57,0xfa,0x6b,0xc3,0x8e,0xe9,0xa4,0x65,0xdc,0xff,0x57,0xb9,0x1f,0x4f,0xc6,0x6d,0x03,0x00,0xa7,0x19,0xb8,0x24,0xb5,0x3d,0x87,0xcb,0x84,0xb7,0xf5,0xfe +.byte 0x51,0x16,0x5b,0xc7,0xed,0x4b,0xff,0xa3,0x66,0x17,0x93,0x60,0x69,0x84,0x8c,0x95,0x74,0xa7,0x30,0x2d,0x09,0xf7,0x4e,0x0e,0x2f,0x99,0xda,0x46,0x34,0x0f,0x93,0x90,0x97,0x4c,0xa6,0x25,0x15,0xb8,0x6f,0x1d,0xd5,0xe1,0xc1,0x39,0x50,0xfd,0xd5,0x79,0x4f,0x04,0x2f,0x76,0x50,0x3f,0x67,0x56,0xad,0x02,0x82,0x30,0x1a,0xaa,0x6e,0xe2 +.byte 0x05,0x6a,0x93,0xb7,0xbe,0xde,0x84,0xce,0xd8,0x53,0xed,0xad,0x95,0xab,0x45,0x1f,0x4c,0x3b,0x22,0x36,0x27,0x45,0x19,0xa4,0x7f,0x12,0x20,0x6c,0x9d,0xeb,0xd2,0xfe,0xd6,0x7d,0x25,0xf9,0xe3,0x64,0x77,0x56,0x89,0x12,0x57,0x80,0xd5,0x40,0xbb,0x2a,0xcc,0xac,0x34,0x8e,0x87,0xfd,0x58,0xc3,0xbd,0x92,0x48,0xd8,0x7f,0xc4,0x39,0x6a +.byte 0x4e,0x1c,0x50,0x93,0xef,0xae,0x81,0x93,0x50,0x95,0x6e,0x46,0x7c,0xf5,0x27,0x44,0x6c,0x21,0x06,0x49,0x89,0x7e,0xf4,0xfa,0x08,0xa5,0xbc,0x0a,0xbd,0xb6,0x7b,0x55,0xac,0x87,0x19,0x33,0xfa,0xab,0xf3,0x15,0xc9,0x1b,0x83,0xf2,0x41,0xf1,0x26,0x6f,0xdf,0x15,0x60,0xdb,0xa6,0x03,0x43,0x3e,0x34,0x7a,0xa9,0xb1,0x38,0x57,0xe4,0x09 +.byte 0x1a,0x4a,0xd8,0x6e,0x28,0xee,0x7d,0x74,0x54,0x03,0xb3,0x29,0x24,0xb3,0xf0,0xc6,0x20,0x7c,0x47,0x01,0x66,0x36,0x7a,0x14,0x18,0x09,0xd6,0xaa,0xa6,0x82,0x5b,0xe4,0x0a,0xf9,0x41,0x52,0x3b,0x56,0xa2,0xf8,0xa2,0xa1,0x2b,0xe0,0x0d,0x1f,0x5b,0xe4,0x0e,0xe1,0x94,0x84,0x6f,0xed,0x2e,0x11,0xfa,0x4a,0xbd,0x41,0xf4,0x3c,0x8c,0x7e +.byte 0x94,0x46,0xec,0x79,0x81,0xb0,0x36,0xfd,0x9c,0x73,0x0f,0x84,0x1a,0x59,0x4e,0x1b,0xd5,0xd1,0x0d,0xff,0xfd,0xb7,0xfb,0x73,0x35,0x8a,0x66,0xed,0xf3,0xee,0x6d,0xf7,0x86,0x0a,0xb9,0xc0,0xf1,0xa3,0xb7,0x32,0x49,0x01,0xe8,0xcd,0xfe,0x82,0x7b,0xf6,0x46,0xd8,0x73,0x47,0x8b,0x7b,0x6e,0x31,0x92,0x0f,0x4b,0x16,0x11,0x86,0x1d,0x02 +.byte 0x5d,0x12,0x79,0x59,0xdc,0x8c,0xaa,0x1b,0xc1,0x75,0x63,0xb2,0xd6,0xbf,0x19,0xb0,0x81,0x70,0x34,0x12,0xd2,0x09,0xbe,0x6d,0xa1,0x31,0x77,0xd2,0x9b,0x59,0xdc,0xcb,0x67,0xb5,0x14,0xcd,0x37,0x31,0x2c,0xa6,0x17,0x58,0x2b,0x24,0xfc,0x2a,0x9e,0x8f,0x38,0x38,0x7a,0x80,0xda,0x8b,0x54,0x1d,0xc9,0x99,0xc7,0x1f,0x98,0x7a,0x1f,0x32 +.byte 0x23,0x1c,0xb5,0x6e,0x53,0xd3,0x61,0xe7,0x78,0x19,0x6c,0xd5,0x2f,0x85,0xde,0xd1,0x67,0x6b,0x9b,0xa1,0x09,0x87,0x5e,0x89,0x5e,0x89,0x21,0x36,0xf2,0x94,0xc1,0xfd,0x6c,0x4e,0xd9,0x6b,0xd2,0xb1,0x1b,0x48,0x37,0x9a,0x7b,0xc9,0x52,0xfd,0xe2,0x6d,0x07,0x19,0xf2,0xa5,0x69,0xdc,0x0b,0x52,0x8f,0xb3,0x87,0x03,0x1a,0xd8,0x43,0x20 +.byte 0x68,0xcf,0x08,0xcc,0xce,0x37,0xf6,0x96,0x7f,0x03,0x62,0xb2,0xce,0x6a,0xfb,0x22,0x54,0xd6,0xfc,0x84,0x5c,0xf5,0x55,0x32,0x36,0x77,0x1d,0x15,0x6a,0x2c,0x3a,0x01,0x34,0xff,0x5b,0x7f,0x3f,0xab,0x97,0x8f,0xbd,0x1d,0x07,0xb9,0x47,0xb1,0xcc,0xc0,0xdf,0x17,0x38,0x54,0x07,0xc0,0x1b,0xb9,0xa2,0x29,0xa6,0x25,0x73,0x32,0x4d,0x5e +.byte 0x51,0x60,0xb3,0x27,0xe5,0xb6,0xdb,0x56,0x81,0x95,0x03,0x7e,0xca,0xc6,0x15,0x8f,0x48,0xd4,0xac,0x71,0x41,0xdc,0x9c,0x86,0x5d,0xd8,0x90,0x90,0x54,0xdd,0x3d,0xf3,0xa8,0xbb,0xe5,0x55,0x69,0x26,0xdf,0xd1,0x8e,0x75,0x2a,0xe4,0xfe,0xe0,0x80,0x1d,0x6b,0xd2,0x8a,0x06,0x49,0x4e,0x60,0xf8,0xbd,0x3d,0x99,0x27,0x80,0x27,0x42,0x66 +.byte 0x01,0x32,0xe1,0x9e,0xa6,0xde,0x7b,0x14,0xa4,0x49,0x68,0x70,0xbe,0xa4,0xe1,0x44,0x2e,0xce,0xa3,0xe9,0x1d,0x7a,0xbd,0xf1,0xe4,0x25,0x11,0x47,0xd8,0xaa,0x32,0x34,0xf8,0xca,0x3d,0xec,0xf3,0x5d,0x8a,0x55,0xe7,0xd4,0x7c,0xfb,0xcf,0xe7,0xa6,0x13,0xaa,0x16,0x5f,0xaa,0x02,0x19,0xdd,0xf1,0xf8,0x5c,0xb2,0x1e,0x68,0x9a,0x21,0x93 +.byte 0xd1,0x38,0x31,0xbb,0x26,0x76,0x44,0xf8,0x84,0x3b,0xf5,0xd1,0x52,0xbe,0x1b,0x8e,0x4d,0xa0,0xb4,0x4a,0x5a,0x7e,0x89,0xe5,0x36,0xb0,0x76,0x77,0xc5,0xc2,0x22,0x73,0xc2,0x19,0x12,0x7f,0xdf,0x9c,0xb8,0xc0,0xf5,0x0e,0xd5,0xa3,0x55,0xae,0x61,0xf8,0xf1,0x6b,0x79,0xc8,0x2e,0xbc,0xa5,0xef,0xd4,0xb1,0x84,0x0c,0x15,0xc4,0xed,0xb3 +.byte 0x18,0x29,0xd6,0x31,0x83,0x79,0x30,0x1a,0x8f,0xf0,0x3b,0xe9,0xd1,0xf2,0x1d,0xec,0xcb,0xe8,0xc5,0x1c,0xb5,0xcb,0x8e,0x01,0xd1,0xb2,0x86,0x43,0x33,0x95,0x70,0x7e,0x75,0xa9,0xa1,0xe7,0xcb,0xd9,0xf4,0xd3,0xe1,0xe2,0xe9,0x46,0x21,0x20,0x3b,0xe9,0x48,0x1c,0x3f,0x93,0x57,0x31,0xeb,0x15,0x9c,0xa7,0xa6,0xcb,0xb5,0xb7,0xa7,0x24 +.byte 0xbe,0x66,0x4c,0x92,0x7c,0xe8,0x8e,0x3f,0x9c,0xa9,0xd7,0xad,0x73,0x68,0x19,0x19,0xd4,0xb5,0x57,0x82,0xdc,0x67,0x3c,0xec,0xac,0x06,0xec,0x86,0x9b,0x65,0xff,0xbb,0xc3,0x90,0x48,0xdb,0x52,0xcc,0xa4,0xf5,0xdf,0x2c,0xc5,0x5a,0xe3,0x30,0xed,0xad,0x37,0x40,0x8c,0xaa,0x32,0x4f,0x94,0x1e,0x14,0x59,0x48,0x1d,0xd3,0xaf,0x80,0xe7 +.byte 0xcf,0x6b,0xa7,0x70,0xe7,0x98,0x22,0x4b,0x40,0x02,0x0c,0x29,0x09,0x0a,0x53,0xf7,0xd4,0xeb,0xbb,0x75,0xb4,0x30,0x1c,0x67,0xea,0xd2,0xb5,0x40,0xfe,0x57,0x2c,0x3c,0x44,0x8d,0x8d,0x02,0x78,0xf0,0x76,0x8f,0x92,0xab,0xb4,0xc9,0xc0,0x2f,0xf5,0xde,0xa7,0x09,0x14,0xf1,0xe5,0x34,0xeb,0x86,0xfa,0xcf,0xcc,0x85,0x1c,0x9c,0xa6,0xe1 +.byte 0x72,0x9e,0xc1,0xe4,0x74,0xc4,0x96,0x5d,0xf4,0x4b,0x23,0x4f,0xa5,0x32,0xff,0x38,0x21,0x8f,0x43,0xe5,0x96,0x20,0x3c,0x78,0xb8,0xb4,0xcd,0x29,0x62,0x84,0x59,0xb5,0xb4,0x57,0x07,0xa8,0x79,0x77,0x21,0xf4,0x82,0xa7,0xb1,0x36,0xee,0x16,0x8e,0xb5,0x9a,0xf7,0x03,0xac,0x64,0x03,0x20,0x48,0x24,0xbc,0xbb,0xec,0x50,0xed,0xa1,0xf3 +.byte 0x67,0xd9,0x34,0xe1,0x0c,0x0b,0xc3,0xd0,0x46,0x0b,0x55,0x85,0x59,0x3c,0xb4,0x7d,0xd0,0xc2,0xe7,0x95,0x24,0x1f,0x53,0x76,0xf1,0x81,0x4a,0x61,0x6a,0x2e,0x3b,0x3f,0x92,0x14,0x7c,0xe0,0x33,0x7f,0xb4,0x85,0x92,0x78,0x0c,0x0b,0xe7,0xbd,0x7a,0x08,0x31,0x7d,0x47,0x3b,0xfa,0xdd,0x90,0x9e,0xf0,0xa9,0xd1,0xa7,0x7c,0x2a,0x37,0xb1 +.byte 0x23,0x71,0x34,0xa0,0x63,0xfb,0x9e,0x8f,0x39,0x00,0xa0,0x09,0xd4,0x1f,0xf4,0xba,0x2d,0xc1,0xac,0x6c,0x94,0x18,0x56,0x3e,0x89,0x92,0x63,0x10,0x5e,0xfe,0x76,0xec,0x4e,0xb6,0x5d,0x59,0xf9,0x94,0x46,0x4f,0xda,0xd5,0x3e,0x6c,0x48,0x49,0x7e,0x7c,0x77,0xe7,0x7e,0x22,0x31,0xb5,0x9d,0x15,0xd3,0x08,0x24,0xdb,0x67,0x98,0x6b,0xfc +.byte 0x45,0x54,0x85,0x29,0x9a,0x47,0xa5,0x60,0xe2,0x46,0x36,0x45,0x16,0x54,0xd6,0xb1,0x5c,0x38,0x45,0xf8,0x43,0x28,0x58,0x81,0xc9,0x57,0x10,0xda,0x3b,0xfc,0x3e,0xe4,0xf4,0xb2,0x16,0xb6,0x16,0x1d,0xa4,0x68,0xa6,0xe0,0x36,0xdb,0xe2,0x19,0x1c,0xce,0x9f,0x94,0xa9,0x94,0xad,0x20,0xcb,0x17,0xd0,0x92,0x37,0x75,0x88,0x0d,0xaf,0xdf +.byte 0x98,0x6d,0x19,0x9e,0x8e,0x61,0xe4,0x8c,0xfc,0x27,0x27,0x6a,0xa7,0xa4,0x66,0x7f,0x08,0x03,0xef,0x5c,0x4a,0xb7,0x89,0xa1,0xae,0xe8,0x70,0x3f,0x13,0x27,0x0a,0x7d,0x5d,0x5e,0x2b,0x69,0xb5,0x98,0x1f,0x25,0x1e,0x41,0xff,0x46,0x5a,0x25,0x1f,0xb4,0x90,0x8e,0x81,0x91,0x19,0x63,0x10,0xd4,0xa9,0xdf,0x3b,0xae,0xe6,0x63,0x1a,0xdc +.byte 0x09,0x5f,0xac,0xaa,0xb8,0x6b,0xbd,0x6a,0x90,0x70,0xce,0x2c,0x63,0x6d,0x48,0x78,0xca,0xc1,0x59,0x94,0xe2,0xc7,0x89,0x17,0x73,0xfa,0x73,0x34,0xb7,0xd3,0x9c,0x4e,0xd8,0xac,0x18,0x80,0x25,0xbf,0xbe,0x75,0x0a,0x9a,0x05,0x5e,0x54,0xcb,0xba,0xab,0xca,0x7f,0x96,0xf7,0x26,0x8c,0x82,0xe0,0x23,0xa5,0x86,0xb5,0xdf,0x31,0xd0,0x2f +.byte 0xe3,0x66,0x96,0x83,0xd2,0x04,0x43,0x8a,0x28,0x59,0x49,0xdc,0x11,0x38,0xd9,0x5f,0xc2,0x31,0xaa,0xa8,0x1a,0xff,0x57,0xf1,0x84,0x18,0x28,0xe8,0x04,0xae,0x98,0xa4,0x17,0xc4,0x35,0x75,0xf5,0x37,0xf5,0x27,0x3e,0x7e,0x32,0xa4,0xcb,0xd4,0x43,0x59,0x02,0x63,0x7b,0x7c,0x9d,0xa7,0x61,0x12,0xf7,0xdc,0x12,0xe0,0x07,0xac,0x96,0xf3 +.byte 0x71,0x43,0xe5,0x30,0xe0,0x4c,0x51,0x2a,0x19,0xf5,0x79,0x59,0x5a,0xc5,0x74,0xfa,0x54,0x18,0xb4,0xb1,0xfb,0x4b,0x9b,0xf8,0xe4,0xa4,0x63,0x25,0xc3,0x84,0xeb,0x2e,0xa1,0xf8,0xf8,0x7b,0x25,0x6a,0x7d,0x14,0x38,0x06,0xeb,0xae,0x9f,0xa5,0x80,0x9a,0x8a,0xb6,0x46,0x95,0xdf,0x52,0x11,0xd4,0x30,0xcc,0x11,0x8f,0x4a,0x5e,0x56,0x26 +.byte 0x60,0x3d,0x5f,0x0b,0x04,0x94,0xcd,0xca,0x1d,0x6b,0x83,0x51,0x83,0x8d,0xf8,0x33,0x4a,0x91,0x00,0xa4,0xf5,0x44,0x5b,0xad,0xa0,0x4a,0x72,0xaf,0xe6,0x4a,0x0d,0x1e,0x9f,0x18,0x6b,0xb4,0xdf,0x85,0x61,0x2a,0x3b,0xe1,0x4c,0xaa,0xc3,0x17,0xef,0x51,0x9f,0xae,0xb5,0xca,0xaa,0x6c,0xd9,0xa1,0xf5,0xa3,0x6f,0x1c,0xca,0xb3,0x37,0xda +.byte 0x27,0xea,0xcb,0xb7,0x36,0xb2,0x11,0xda,0x9f,0x07,0x78,0xaa,0x6c,0xad,0x63,0x9b,0x49,0x6b,0xfe,0x1f,0x93,0x82,0x73,0xc9,0xc8,0xf6,0x68,0x54,0x50,0x77,0xba,0x78,0xc7,0x82,0xee,0xbd,0x97,0x66,0xb9,0x22,0x49,0x0d,0x7a,0x1f,0x0f,0x4e,0xe5,0x02,0x8b,0xa6,0x1b,0x11,0xfc,0xa6,0x37,0x2a,0x5c,0x66,0xaf,0xac,0xa5,0x9f,0xbf,0x26 +.byte 0x98,0x9b,0x25,0x44,0x48,0x09,0xe6,0x76,0xb9,0x08,0xf1,0x37,0xcf,0x86,0xc9,0xdf,0xa8,0xf3,0x88,0x2f,0xc1,0x33,0x15,0x95,0x59,0xf7,0x9b,0xf2,0x48,0x76,0xcb,0xd0,0x31,0xe4,0x27,0x74,0x2d,0x6e,0xd2,0xc3,0x29,0xea,0xef,0xff,0x4e,0x3d,0xda,0x3e,0xef,0x94,0x94,0x40,0xcd,0x93,0xcf,0xb8,0x56,0x29,0xf8,0x20,0x20,0xa3,0x66,0x83 +.byte 0xba,0xc8,0x4f,0xe6,0x22,0x96,0xb5,0xb2,0x44,0x75,0x55,0x98,0xed,0x11,0xd0,0x58,0x50,0x26,0xf1,0x4a,0xf6,0x80,0x5c,0x17,0x92,0xba,0xc2,0xd6,0x68,0xd4,0x7a,0x4f,0xdf,0x16,0x97,0xbd,0xad,0xd7,0x1b,0x0c,0xe5,0x23,0xa9,0xaa,0xf4,0x1c,0x8d,0xec,0xbf,0xf0,0xb5,0xaa,0x49,0xfd,0xf1,0x31,0x9b,0xf9,0xe9,0x21,0xa1,0x20,0xab,0xbe +.byte 0x56,0x8c,0xf2,0x85,0xdc,0x1f,0xea,0x25,0xce,0xf5,0x6c,0x18,0x7d,0xc4,0x1a,0x01,0x08,0x01,0xed,0x02,0xa8,0xac,0x7f,0x74,0x2c,0xd7,0x28,0x25,0x6e,0x68,0x19,0x38,0x8d,0x20,0x51,0x8f,0x38,0x8b,0x03,0x36,0xae,0x50,0x35,0x28,0x65,0x7e,0x15,0x2a,0x80,0x2c,0xae,0xcd,0xb3,0xb6,0x91,0xf1,0x8c,0xf2,0x8c,0xc5,0xce,0x3e,0x3a,0x97 +.byte 0x5a,0xff,0xe1,0x37,0x13,0xf7,0x6b,0x07,0xb2,0xaa,0xaa,0x57,0x18,0xb7,0xb2,0x19,0x52,0xbf,0x59,0x0b,0x6f,0xba,0x56,0x54,0x14,0xac,0x21,0xfd,0x7d,0x03,0x4b,0x0b,0x39,0x54,0xba,0xf9,0xba,0x73,0xcd,0x67,0x13,0x30,0xca,0x19,0x80,0x4f,0x18,0xb4,0x75,0x2a,0xec,0x78,0xa7,0xd0,0x5c,0x53,0xe2,0x43,0x2c,0x08,0x5f,0x5c,0xe6,0x60 +.byte 0xde,0x04,0xf6,0x75,0xca,0x35,0x3b,0xf6,0x68,0x53,0x60,0xc0,0xed,0xb0,0x15,0xa1,0xa4,0x89,0x23,0x34,0x49,0x35,0xd2,0x78,0x4b,0x8f,0x7c,0x8d,0x59,0x22,0x9f,0xad,0x72,0x47,0x5b,0xde,0xf2,0x09,0x08,0xa0,0x8d,0x5f,0x4d,0xc3,0xd1,0x83,0x17,0xbc,0x39,0x8e,0xa5,0x53,0xaa,0xe3,0x31,0x03,0x93,0x14,0xb4,0x57,0xf0,0xdf,0x54,0x1d +.byte 0x79,0x4d,0x21,0x1a,0x8f,0x3f,0x6e,0x07,0x41,0xcc,0x2d,0x94,0x55,0x4e,0x50,0xfd,0xac,0xe3,0xef,0xa7,0x50,0x3b,0x3c,0xda,0x32,0x25,0xee,0xd9,0x01,0x37,0x8e,0xb3,0x23,0xc5,0x5e,0x12,0x88,0x6d,0xd5,0x41,0xfd,0x3f,0xfa,0x75,0xb8,0xcb,0x82,0x10,0x81,0x38,0x1b,0x10,0x2d,0x2c,0x6b,0x62,0xa1,0x7c,0xd1,0x75,0xd8,0x8c,0x0c,0x2f +.byte 0xe8,0x97,0xff,0x18,0xb3,0x12,0xa2,0xef,0x6c,0xc5,0x79,0x9f,0x64,0xf3,0xc7,0xdc,0xdb,0x54,0xa4,0x25,0xc7,0x30,0xfb,0x6c,0x5a,0x50,0x24,0xf9,0xb6,0xc9,0xe7,0xda,0x78,0xcc,0x1b,0x5e,0xf3,0xe7,0x32,0xd8,0x36,0x47,0x10,0xe5,0x2c,0xeb,0xea,0xf7,0x25,0x30,0x93,0x64,0x88,0xc8,0x59,0xf8,0x5c,0x02,0x43,0x4c,0x23,0x8e,0x1c,0x42 +.byte 0xe4,0x36,0x39,0xbf,0xba,0x8b,0xe3,0x53,0x01,0x32,0x0d,0x89,0xc2,0xea,0x35,0x94,0xf1,0x0d,0x29,0x45,0x08,0x07,0x15,0xcb,0xd7,0x3e,0x4d,0x9f,0x04,0xd8,0x18,0x8a,0x56,0xa3,0xb1,0x1c,0x46,0x19,0x8b,0xd0,0x51,0x30,0xf3,0xca,0x52,0x2a,0x16,0xc4,0x90,0xc1,0x00,0x50,0x87,0x8b,0x4c,0x71,0x61,0x48,0x69,0xb2,0xf1,0x33,0xaa,0x79 +.byte 0x81,0x8b,0x36,0x33,0x19,0x41,0x6b,0xc1,0x91,0x40,0xf2,0xcc,0x1d,0x83,0x09,0xab,0xcc,0x6f,0x6c,0x54,0x91,0x62,0x80,0xac,0xe6,0x1f,0xcd,0x5d,0x05,0x2b,0xe5,0xac,0xbc,0xd6,0x1b,0x8b,0xef,0x95,0xa0,0xf3,0xfe,0x8e,0x4d,0x32,0x77,0xe8,0x02,0x8f,0x44,0xad,0xc4,0x40,0xc3,0x99,0x68,0x81,0x47,0x15,0xbd,0x3b,0x8f,0x0b,0x9b,0x3a +.byte 0xb3,0x9d,0x8f,0x3d,0x86,0xd1,0x89,0x5f,0x67,0x19,0x33,0x2d,0x18,0x64,0x0e,0x3a,0x13,0xa4,0xe9,0xb4,0xc9,0x90,0x09,0x6a,0xcb,0x5d,0x0d,0x83,0x13,0x04,0x29,0xe5,0xa5,0xf4,0x00,0x56,0xf4,0x80,0x96,0x33,0x93,0xe4,0x9b,0xc4,0x6e,0x38,0xbf,0x0a,0xe0,0xee,0x8c,0x89,0x5d,0x60,0x36,0x7e,0x69,0xc2,0xc7,0x28,0x6f,0x2b,0x97,0xfb +.byte 0xb3,0x5b,0x82,0xe8,0x9a,0x36,0x44,0xd7,0x1f,0x9b,0x1b,0xd0,0x14,0xe4,0xd4,0x0d,0x35,0xcd,0xee,0x88,0x50,0x37,0x5c,0x88,0x09,0xa5,0x16,0x4d,0xe1,0xbc,0xe8,0x79,0x8f,0xa9,0x18,0xb8,0x43,0xb4,0xd7,0x32,0xcd,0x26,0xdd,0x78,0x29,0x59,0xad,0x29,0xe3,0xe0,0xe7,0xcf,0x16,0x03,0xc6,0x8a,0xb6,0xa2,0x09,0x9a,0x6e,0x90,0x7b,0x0c +.byte 0x9d,0x20,0xb6,0xc4,0x28,0x3f,0x44,0x06,0xa9,0x45,0x72,0x27,0xa7,0x56,0x3f,0x07,0xff,0x13,0xd9,0x80,0xda,0xbd,0x25,0xad,0xd3,0x74,0x2c,0xd8,0xd2,0x93,0xa5,0xda,0xbc,0x5f,0xa5,0xde,0xb7,0x3a,0xf0,0xd2,0x17,0xb1,0xc3,0x70,0x2a,0x85,0xde,0xf0,0x97,0x7b,0x96,0xb2,0x0e,0x45,0x7f,0x63,0xd4,0x94,0xd8,0x78,0x05,0xcf,0xea,0xb3 +.byte 0xfb,0x7a,0x79,0xb5,0x91,0x53,0xb8,0x8c,0xa2,0x03,0xf4,0xc3,0xed,0xf0,0xab,0x33,0x5c,0x6e,0xcd,0xbd,0x73,0xe3,0xe9,0xd0,0x83,0x2a,0x2a,0x68,0x32,0xf1,0x69,0x4f,0xd0,0x8b,0xe8,0xa1,0x7d,0x5b,0x0f,0x69,0xc2,0x33,0xbf,0xc1,0x54,0x29,0x47,0xed,0x9f,0xdb,0x35,0x0a,0x3d,0x2b,0x9d,0x8b,0x91,0xb6,0xe0,0xbc,0x53,0xba,0xb7,0xcd +.byte 0x2c,0xd9,0xeb,0x81,0xa0,0x2e,0x14,0x6e,0xdc,0xe1,0x90,0x36,0x14,0x9d,0xa8,0x8b,0x6b,0x1b,0xac,0x4c,0x09,0x8b,0x1a,0x87,0xf4,0x66,0xf6,0xfb,0x62,0x92,0x13,0xcf,0xb2,0x96,0xf0,0xc9,0x8b,0x12,0x99,0xf1,0x16,0xae,0x5c,0x27,0x24,0xa8,0xfd,0xb3,0x4c,0xc2,0xe6,0x3f,0xd2,0xc6,0x0c,0xf2,0x65,0x4e,0xdf,0xf1,0x06,0xb8,0x99,0xc4 +.byte 0x3a,0x35,0xba,0xed,0x18,0x3e,0xfa,0x03,0x51,0x8d,0x45,0x68,0x12,0x7b,0xb6,0xac,0x63,0x99,0x47,0xee,0x6f,0x8b,0xcb,0xc1,0x0a,0xf9,0x23,0xf0,0x05,0xe1,0x03,0x4a,0xb5,0xe0,0x65,0x71,0xc8,0x64,0x7e,0x0d,0x39,0xe7,0x96,0xdb,0x34,0x63,0x2e,0x1a,0x27,0x85,0x52,0x63,0x8e,0x44,0xfb,0x61,0xca,0x79,0xe5,0x91,0x99,0x83,0x2d,0xe0 +.byte 0x26,0x04,0xad,0x43,0x26,0xf2,0x7e,0x56,0xae,0x35,0x6a,0xfb,0xec,0xc6,0x27,0xe4,0x3a,0xa3,0x6b,0x63,0x72,0xba,0x98,0x03,0x9f,0x2a,0x4c,0xb1,0x33,0x22,0x9d,0x53,0xf6,0x00,0xa3,0x1e,0x32,0xcb,0xbe,0xe0,0xc2,0xf8,0x71,0xcd,0x3f,0xe3,0x4d,0x83,0xf2,0x9f,0x1c,0x91,0x35,0x97,0x52,0x95,0xba,0x24,0x04,0x04,0xca,0x32,0x6d,0xd7 +.byte 0x4b,0xd4,0x9e,0x8b,0x73,0x42,0xfb,0x9f,0xfc,0x93,0xea,0xc2,0x41,0x56,0xa9,0xe5,0xdd,0xd0,0x37,0x8a,0xe2,0x92,0x9f,0x45,0x4f,0xd8,0xef,0xe6,0x6f,0x58,0x41,0x5f,0x7b,0xe7,0x0f,0x32,0xce,0x06,0x02,0x7f,0xe2,0x37,0x87,0xb7,0x35,0x72,0x68,0x87,0xc9,0x35,0xa8,0x51,0xce,0xd8,0xde,0xc3,0x8c,0xb4,0xab,0xf4,0xa7,0x3b,0xcd,0xc8 +.byte 0x0a,0x56,0x5b,0x48,0xb1,0xa4,0x27,0xa8,0x9e,0x3e,0x04,0xbc,0xb3,0x63,0x3e,0xd5,0xf7,0xae,0xec,0x0c,0x6e,0x4a,0x73,0xb6,0xed,0x66,0xea,0xc1,0x7a,0xc4,0xaa,0x21,0x27,0x62,0xef,0x3d,0x1d,0x51,0x8b,0x63,0xe6,0xe2,0x8a,0xed,0x7a,0x4b,0x90,0xc3,0x9f,0x91,0xb4,0x8f,0x78,0x65,0x9c,0xdd,0x0a,0x7a,0x50,0x36,0x33,0x30,0x3b,0xb4 +.byte 0xdf,0x67,0xbd,0xfd,0x71,0xfc,0x40,0x49,0xaa,0x01,0xdf,0x68,0x67,0x73,0x31,0x2c,0x98,0x2f,0x8c,0x9e,0x2d,0xce,0x4a,0x71,0xbc,0x6f,0x90,0x1d,0xc0,0x37,0x07,0x30,0x0c,0xa3,0x04,0xfb,0xd1,0xd0,0x0e,0xcb,0xdc,0x94,0x06,0x7f,0x83,0xe5,0x45,0x47,0xd0,0x71,0x06,0x94,0x23,0x7c,0x03,0x80,0x46,0xa5,0x10,0x08,0xd1,0xdb,0xfb,0x9d +.byte 0xd4,0x05,0x01,0x5e,0x66,0x4d,0xf9,0x32,0x9b,0x5b,0xfe,0x7a,0x60,0x63,0x77,0x9a,0x31,0x34,0xe5,0x9a,0x82,0x2d,0x2b,0xb7,0xe0,0x04,0x8f,0x86,0xf3,0xb2,0x16,0x86,0x50,0x37,0x9d,0x80,0xe7,0x62,0xdf,0x77,0xda,0xf4,0xfc,0xb7,0x42,0x9d,0xac,0xcb,0x11,0xff,0x0c,0x6f,0x4e,0x16,0x0c,0x59,0x04,0x05,0x8f,0x88,0x64,0x37,0xe6,0x6c +.byte 0xee,0x64,0x58,0x79,0x60,0xd4,0x2f,0xb7,0x90,0x59,0xfb,0x82,0x3b,0x20,0x2e,0x2b,0xba,0x15,0xfb,0xf7,0x5b,0x1d,0x81,0x8a,0x8a,0x8f,0xe3,0x39,0x92,0x34,0xfc,0x3a,0x67,0xce,0xb6,0xa0,0x9b,0x56,0x78,0x96,0x4d,0x32,0xbf,0x9c,0x83,0x9e,0x19,0x66,0x20,0x42,0xb2,0x78,0x62,0x42,0xdd,0xdf,0x98,0xab,0x0c,0x3d,0x41,0xb5,0x74,0xc1 +.byte 0x2d,0xf0,0x02,0x58,0x6e,0xb3,0x4d,0x7b,0x41,0x1c,0xf1,0x09,0xc1,0xbb,0x84,0x67,0xf8,0x24,0x77,0x32,0xcd,0x7a,0x63,0x87,0x0d,0xf2,0xc5,0xaf,0xe4,0xb5,0xc6,0x3b,0xad,0x66,0x5e,0xae,0x90,0xc2,0x24,0x27,0x7a,0x0b,0xed,0x1b,0x86,0x5d,0x02,0x19,0x85,0x78,0xc8,0xb1,0xce,0xe7,0xc9,0x5c,0xce,0x43,0x58,0xac,0x1c,0x4e,0xcd,0xb8 +.byte 0x3a,0xb8,0x7a,0xf3,0x79,0x4b,0x97,0xcf,0xbe,0x88,0x24,0xd0,0x9a,0x5a,0x55,0x43,0x0c,0x48,0xa2,0x7f,0xaf,0x4b,0xd8,0x16,0x02,0xfb,0xe6,0x0c,0x6b,0x85,0xb4,0xb8,0x5e,0x40,0x60,0x5d,0x93,0x51,0xc6,0x32,0xb9,0x4a,0x23,0x96,0x71,0xeb,0xe8,0xe8,0x01,0x1e,0x85,0xb0,0x47,0xde,0x86,0x15,0x52,0x3a,0xb2,0xd3,0x86,0x4b,0x78,0x09 +.byte 0x9c,0x6e,0x9d,0xd9,0xef,0xe8,0x64,0x2d,0x2a,0xec,0x21,0x5a,0x60,0xa5,0xe4,0x26,0xbb,0x79,0x0c,0xdb,0x48,0xd6,0x4b,0x5c,0x5b,0xe3,0x34,0xc9,0x96,0xf0,0xcb,0x68,0x8a,0x2d,0xee,0xa3,0x37,0x34,0x5f,0x3e,0x65,0x40,0xce,0xe1,0xc8,0x2e,0x11,0xca,0x42,0x51,0x53,0x72,0x3d,0xa9,0x68,0x54,0xb4,0xd8,0xd7,0x72,0x84,0x8d,0xcd,0x6d +.byte 0x1f,0x0e,0x0c,0x0f,0x32,0x3a,0x7d,0xdd,0xc1,0xd3,0xe7,0x2d,0x1f,0x52,0x8b,0x73,0x86,0x70,0x2a,0xcb,0x71,0x37,0xa1,0xab,0xe3,0x94,0x5a,0xd7,0x9d,0x68,0xc1,0x6e,0x5d,0x72,0x25,0x81,0xe8,0x45,0xad,0x6c,0xf8,0xdb,0x9b,0x70,0x31,0xb9,0xf0,0x4f,0x23,0xd7,0x03,0xc8,0x87,0x43,0x51,0x7a,0x55,0xfe,0x6f,0x2d,0x40,0xbc,0xfe,0xdf +.byte 0xe6,0x21,0x4b,0x4d,0xc6,0x02,0x48,0xe7,0x7a,0x2a,0xef,0x91,0xdf,0xbc,0x98,0x91,0x6f,0x59,0xc4,0x47,0x77,0x2e,0x45,0x45,0x23,0x47,0x5d,0xf8,0x50,0x41,0x84,0x75,0x8a,0xe7,0x4d,0xfb,0xeb,0x58,0x00,0xcf,0x42,0xca,0x02,0x05,0xc7,0xfa,0x11,0xfb,0x6e,0x90,0x7d,0x53,0xa0,0x19,0x23,0x24,0x8f,0x89,0x17,0x40,0xbe,0x11,0xfb,0xd9 +.byte 0x04,0xf8,0x84,0xeb,0x90,0x7c,0x84,0x45,0x9c,0x53,0x45,0x5e,0x45,0x51,0x55,0xfc,0xf1,0x6b,0x02,0x24,0xfd,0x95,0x4a,0x40,0x80,0xdc,0xa6,0x94,0x15,0x2c,0x1d,0x85,0xa0,0x07,0x8d,0xf8,0xf2,0x95,0x0c,0xa0,0x4e,0x5a,0x5b,0x29,0x09,0xcc,0xf3,0x4e,0x8e,0xea,0xe8,0x26,0xb8,0xbe,0xb2,0x6f,0x76,0x6f,0xa4,0xe5,0x6a,0x50,0xcf,0xc8 +.byte 0x7d,0xb6,0x1e,0x9d,0x90,0x6b,0xde,0xe2,0x55,0x49,0x97,0x00,0xa5,0xc5,0x1f,0x1c,0x41,0x66,0xe7,0x6b,0x20,0xb2,0x1e,0xc7,0xb3,0xd4,0xa9,0x75,0xbb,0x83,0x24,0xd0,0xdf,0xbd,0xba,0x2c,0x2f,0xa4,0x03,0x1d,0x17,0xc5,0x74,0xc2,0x6a,0x20,0x71,0x18,0xd1,0xc5,0xb0,0x78,0xfe,0xda,0x55,0xd2,0x43,0x2a,0xd8,0x88,0x74,0x75,0x86,0x07 +.byte 0xe9,0x8b,0x0d,0x0f,0xe5,0x8d,0xe8,0x3d,0xf4,0x93,0xde,0x4c,0x97,0x98,0xe2,0x9b,0x22,0xde,0x13,0x18,0x8b,0xc5,0xe1,0x6f,0x6d,0xb4,0x19,0x46,0xff,0xbd,0xa6,0x2e,0xe6,0x48,0xcd,0x66,0x22,0x7d,0xf4,0x0e,0xeb,0x74,0x25,0x5c,0x90,0x0e,0x26,0xce,0x17,0xe9,0xdb,0x30,0xb9,0x25,0x99,0x96,0x46,0x3a,0x78,0xa3,0x76,0x2d,0x9e,0x42 +.byte 0x06,0x8a,0x1e,0x62,0x46,0xa4,0xd0,0x1d,0xe2,0x4c,0x3c,0xb4,0x4c,0xc0,0xd1,0xf7,0x05,0x5b,0xe4,0xd4,0x71,0x73,0x31,0xfc,0x98,0x2a,0x55,0xb0,0x78,0x92,0x59,0x8b,0x25,0x97,0x15,0xf2,0xf9,0x57,0x8b,0x7c,0xd4,0xc4,0x47,0x2f,0x10,0x3b,0x76,0xde,0x5f,0xb1,0xdf,0xdc,0xb0,0x15,0xd5,0x4a,0xd2,0x54,0xad,0x5e,0x32,0xf4,0x5a,0x1a +.byte 0x8d,0xe8,0xa0,0x4a,0x4e,0x04,0xdc,0xdd,0xd2,0x57,0xe5,0x24,0x4b,0x93,0x51,0xef,0xd4,0xba,0x3f,0x77,0xfc,0x0a,0x5c,0x7d,0x6e,0xa7,0x86,0xe5,0x88,0xd1,0xac,0x74,0x46,0x9a,0x39,0xb6,0x98,0x3d,0xae,0x89,0x4e,0xea,0x8d,0xdc,0xc7,0xb9,0x0c,0xd7,0xa6,0x06,0x4d,0x28,0x2b,0x51,0x2b,0xdb,0x30,0x4a,0x91,0x1c,0x40,0x89,0xe4,0xba +.byte 0x72,0xd5,0xed,0x16,0x66,0xb8,0xef,0x81,0xd9,0x51,0xf8,0x1b,0xff,0xab,0x8b,0x52,0xb8,0xf3,0x11,0xb3,0xe5,0x04,0x5a,0xb0,0x60,0xa3,0x35,0x12,0x6a,0xa0,0x75,0x5c,0x21,0xa9,0x5a,0xe8,0xd3,0xd7,0x8a,0x1f,0xe0,0x9b,0xb7,0x1e,0x7d,0xbe,0x81,0xaa,0x56,0x5a,0xd8,0x2d,0x7e,0x0c,0x60,0xb2,0x68,0x26,0x6d,0xaa,0x8b,0xcc,0x11,0x40 +.byte 0x25,0xea,0xc9,0x94,0xfb,0x3b,0x9b,0xa7,0x3a,0xde,0xd9,0xfe,0x6b,0x4b,0xfc,0x3f,0xbf,0xdd,0x51,0x9b,0xa1,0xca,0x2f,0xed,0x33,0xd8,0x3d,0x92,0xa4,0x1d,0xee,0xb2,0x47,0xd0,0x72,0x6a,0x96,0x33,0x0f,0xdd,0x0a,0xd9,0xbd,0x86,0xdb,0x25,0x53,0x0e,0x3c,0x31,0xad,0x05,0xb9,0x24,0x13,0x00,0xdf,0xc2,0x7c,0x3d,0x03,0x9b,0xf6,0x6d +.byte 0x93,0xd9,0xdf,0x73,0xf8,0x1c,0x98,0xe2,0x77,0x46,0x46,0xdc,0x07,0xe6,0xbb,0xc1,0xa7,0xb6,0xbe,0x21,0x07,0xae,0xdb,0xca,0x69,0x2d,0x8a,0x2b,0x59,0x27,0xe0,0x7c,0xf0,0xf1,0x34,0x69,0x97,0x44,0xba,0xbb,0x48,0x9f,0xd9,0xd8,0x16,0x1a,0xef,0x11,0x68,0xb6,0xaf,0x3a,0x10,0xc6,0x7c,0xd1,0x12,0xc7,0x89,0x47,0xe3,0xd1,0x24,0xc6 +.byte 0x44,0x9f,0x7e,0x6a,0x66,0x43,0x48,0xd6,0x9f,0x7b,0xf0,0x1f,0xd2,0x5f,0x2b,0xa7,0x13,0x6a,0x7c,0x70,0x08,0x38,0xb0,0x00,0xbc,0x7c,0xd3,0x01,0x9b,0xf6,0x29,0xd3,0x9c,0xa4,0x11,0x90,0xe4,0x9f,0x04,0xd6,0x21,0xec,0xfd,0xcb,0xb8,0xe6,0xb6,0x49,0x2b,0xfa,0x4b,0x90,0x9e,0xc6,0x0c,0x87,0xff,0x5e,0x2e,0xcc,0xf8,0x09,0x70,0x52 +.byte 0x42,0xec,0x88,0xac,0x1e,0x76,0x2b,0xeb,0xfc,0xb3,0x65,0x81,0x34,0xb1,0x06,0x90,0xde,0xb2,0xc4,0xd3,0xfd,0xd4,0x9c,0x78,0x1a,0x5c,0x8f,0x65,0x0a,0xbd,0x88,0xe5,0x95,0x06,0xb5,0x94,0xe5,0xbf,0x90,0x31,0xbb,0xcb,0xce,0x19,0x51,0x25,0x4a,0x47,0x35,0x26,0x93,0xdb,0xe2,0x93,0x36,0x47,0x7d,0xdd,0x4e,0xd5,0xeb,0xdd,0x63,0x1c +.byte 0xbc,0x2d,0x75,0xdb,0xd4,0xfa,0x60,0x4b,0x51,0x45,0x32,0x0f,0x01,0xf9,0x73,0x9b,0xd8,0xbc,0xee,0xaa,0x7d,0x2e,0xfe,0xbf,0x9d,0x45,0xae,0xe2,0x01,0xe3,0xbf,0x58,0xdc,0xc0,0xb8,0xe8,0x44,0x16,0x3b,0xd8,0xaa,0x3b,0x13,0xca,0xfb,0x5f,0x8d,0xb3,0x2a,0x83,0x66,0x49,0xae,0x54,0x02,0x4e,0xd8,0x68,0xee,0x21,0x1a,0xbb,0xf4,0xf7 +.byte 0xdf,0xf1,0x51,0x7b,0x62,0xa8,0xb2,0xdc,0x4b,0xd4,0x04,0xd2,0x05,0x49,0xdd,0xa4,0x75,0xe6,0x64,0x82,0xe7,0x25,0x55,0x60,0x2c,0x9f,0x8a,0x7a,0x11,0xe9,0xf2,0x72,0xfe,0x89,0xe1,0xaf,0xca,0x0c,0xb9,0xf5,0xcc,0xcf,0x07,0xef,0x8f,0xbb,0xef,0x53,0x1e,0xe2,0xfb,0x98,0xe8,0x05,0xab,0x4e,0x7e,0x38,0x56,0x24,0xd5,0x74,0x1c,0x95 +.byte 0x1a,0x0e,0x62,0x92,0x80,0x16,0x45,0x78,0x2f,0xb1,0xe1,0x83,0x24,0x2b,0x16,0x5c,0x05,0x52,0x17,0xe9,0xe8,0x9e,0x5d,0x63,0x8f,0x77,0xc4,0x89,0x22,0x76,0x43,0x31,0xfd,0x09,0xc0,0x51,0x70,0x57,0x2d,0x51,0x91,0xe5,0x61,0x3f,0x77,0xff,0x17,0xfc,0xa6,0x19,0x9d,0x82,0x46,0x11,0x0c,0x77,0x19,0x2a,0xf5,0x19,0xb4,0x3d,0xa6,0xd4 +.byte 0x8b,0x07,0x4b,0xc6,0xa3,0x1e,0x8c,0xf5,0xe8,0x2d,0xe7,0xcc,0xa1,0x38,0x57,0x66,0x76,0x1d,0xdd,0xe3,0xb9,0x0a,0x1e,0x2c,0xad,0x09,0x07,0x26,0xff,0x7a,0xc0,0xb0,0x51,0x71,0x44,0x6d,0x2c,0x39,0x3d,0xa6,0x14,0x4e,0x74,0x2c,0x54,0x3d,0xfa,0xdc,0x2e,0x0c,0xc4,0x88,0x32,0xda,0xb0,0x9d,0xf4,0x2c,0x0a,0x1b,0xb7,0xb4,0x78,0x6f +.byte 0x1b,0x6a,0x21,0x03,0x4e,0xe0,0x87,0xa0,0x1c,0xd8,0xe6,0x0c,0x97,0x47,0xde,0x98,0x81,0x3d,0x39,0x93,0x3d,0xcb,0x29,0xa3,0x93,0x8d,0x27,0x5d,0x29,0xb5,0x85,0xc4,0x32,0xd8,0xdc,0x19,0xb1,0x63,0xdc,0x76,0x32,0xc3,0x52,0x9a,0xfd,0x3d,0xff,0xf9,0x94,0x55,0x72,0xbb,0x4d,0xe2,0x42,0xd2,0xf7,0xb2,0xac,0xac,0x5d,0x50,0x95,0xda +.byte 0x3a,0x87,0xb6,0x0f,0x27,0x72,0x34,0xe7,0xe8,0x9f,0xc7,0xba,0xca,0x8d,0xf3,0xb9,0xa1,0xdd,0xd7,0xa5,0x70,0x3b,0xcc,0x72,0x0e,0x9d,0x85,0x75,0x01,0x11,0xe1,0xc2,0xca,0xcb,0x40,0x3a,0x31,0xf2,0x5d,0x0c,0x63,0xc8,0xbf,0x38,0xde,0x09,0x3b,0x32,0xaa,0x6c,0x07,0xd2,0x2b,0x3b,0x94,0x37,0xd0,0xd9,0xe0,0x4c,0x25,0xa3,0x22,0x64 +.byte 0x05,0xcc,0x69,0x9e,0x73,0xd4,0x46,0x2c,0x73,0x23,0xd0,0x6f,0x09,0xff,0x8b,0xef,0x7a,0x08,0x3e,0xa2,0xa7,0x9d,0xf5,0xc9,0x40,0xd1,0x06,0xd6,0xe3,0x89,0xa5,0xcc,0x9f,0x40,0x67,0x80,0x11,0xec,0x5d,0x23,0x19,0xf3,0x66,0xaf,0x06,0xcc,0xe4,0xb6,0x5e,0x20,0xf7,0x19,0xce,0x1a,0xb6,0x86,0x0d,0x39,0x1d,0xc8,0x0a,0xdb,0x50,0x52 +.byte 0x7e,0x3b,0x96,0x9f,0x05,0xdd,0xd8,0xdf,0x40,0xdf,0xe4,0x66,0x14,0x4d,0x4e,0xb3,0x9f,0x86,0x7b,0xc2,0x99,0xc3,0x8f,0xb9,0xe7,0xc3,0x50,0xa4,0xab,0xb8,0x8e,0xc5,0x28,0xce,0x8b,0x51,0xcb,0xad,0xd8,0x1a,0x23,0x7d,0x12,0xc2,0xaf,0x1a,0x93,0x4c,0x57,0xe9,0x59,0x6a,0x03,0x65,0x81,0x07,0x40,0x84,0x92,0x9d,0x22,0x8a,0x3d,0x27 +.byte 0x39,0x05,0xdd,0xf7,0x20,0xad,0xc2,0x03,0x27,0x87,0x8e,0xc1,0x23,0xad,0xe5,0x59,0x16,0xe7,0xde,0xe4,0x44,0x6b,0x06,0xb5,0x1d,0xaf,0xda,0x08,0x4a,0xfa,0x75,0x1a,0x0b,0x35,0xe8,0x6e,0x29,0xd3,0x79,0x19,0x80,0xb9,0x5f,0x36,0xec,0x43,0x25,0x3c,0xbc,0xcf,0x70,0x0c,0xc7,0x2c,0xbc,0x2e,0x72,0x40,0x73,0x98,0x11,0xc9,0x72,0x9f +.byte 0xd9,0x95,0x9f,0x8d,0x4a,0x52,0xbb,0x89,0x30,0x5b,0xa2,0x7e,0x0c,0x21,0x11,0xda,0x4e,0xa1,0x7c,0xc1,0x0f,0x95,0x1b,0x5b,0x2e,0xbd,0xae,0x8a,0x56,0x82,0x8f,0x84,0x43,0xdf,0x24,0xac,0x99,0xaa,0x8a,0xaf,0x82,0x33,0xf7,0x0a,0xbf,0x5e,0xfd,0xf2,0x91,0xf0,0xe1,0x5d,0x4e,0xa5,0x16,0x6e,0xb4,0x39,0x8b,0x99,0x32,0x6b,0xc8,0x16 +.byte 0xc1,0x84,0x10,0xc2,0x74,0x54,0xfc,0x02,0x71,0x44,0xfc,0x52,0xfa,0xc2,0x3c,0x8d,0xf7,0x8b,0x1e,0xcc,0x5e,0x43,0x66,0x29,0x29,0x93,0xe7,0xf6,0x9f,0xa8,0xa3,0x35,0xc9,0xde,0xb0,0xbe,0x4d,0xdf,0x8c,0x61,0x5a,0x6b,0x16,0x88,0x33,0x65,0x47,0x98,0xd2,0xf8,0x71,0x09,0x9f,0x00,0xb6,0x9e,0x21,0x37,0x2a,0x0b,0xb4,0x74,0x6b,0x0e +.byte 0x6e,0x4d,0x14,0x45,0x6c,0x1b,0xa8,0x4c,0xa7,0xc6,0xc3,0x36,0x6e,0x9e,0x63,0x5a,0x36,0x76,0x04,0x06,0x7f,0xdd,0x74,0x24,0x19,0xd8,0xb7,0xbc,0x6c,0x52,0x82,0x67,0x6b,0xd5,0xcb,0x81,0xdf,0xd7,0xe4,0xdd,0x14,0x33,0x71,0xcf,0x6b,0x7f,0xaf,0x66,0x27,0x8a,0x70,0xb8,0x45,0xae,0x8c,0x1a,0x65,0xd3,0x16,0x5c,0x05,0x65,0xd0,0xfb +.byte 0x07,0xe3,0x98,0xa9,0x94,0x27,0x6c,0xac,0xfc,0xee,0x1b,0x35,0x43,0xd6,0x3b,0x41,0x1c,0x86,0xc0,0x4f,0xf3,0x63,0xf4,0xba,0x4d,0xdf,0x6a,0xda,0xcf,0xb5,0x9f,0x69,0x3f,0x3d,0x0c,0x80,0x79,0x02,0x34,0x4a,0x9a,0xfd,0xb6,0xea,0x0b,0x61,0x32,0x67,0x2d,0x6a,0x6b,0xcb,0xcf,0xa6,0xee,0x6a,0x93,0x11,0x00,0xb8,0x6e,0x27,0x88,0x62 +.byte 0xf7,0x4c,0x7b,0xe1,0x13,0xe1,0x47,0xaf,0x96,0x24,0x3b,0x46,0x8c,0xf4,0xbe,0x13,0xed,0x65,0xe1,0xf2,0x36,0x2d,0xa4,0x6d,0x5e,0xa6,0x93,0xfb,0x64,0x0e,0xbd,0x50,0xdc,0x29,0x4f,0x90,0x8e,0xe1,0x7f,0x5e,0x47,0x08,0x9b,0x1c,0xb7,0xce,0x06,0x80,0x52,0xc0,0xb5,0x82,0x77,0x49,0x3c,0xe0,0x70,0x1f,0x84,0x75,0x9e,0x19,0xb2,0x83 +.byte 0xda,0x40,0xf8,0xd7,0x27,0x1e,0xbc,0x39,0xb5,0x1d,0x25,0x75,0x63,0x7d,0x85,0x2f,0x09,0x07,0xe9,0x73,0x8e,0x2b,0xb8,0x9a,0xbe,0xd6,0x90,0x91,0x6e,0xdb,0x7c,0x9d,0x9b,0x43,0x1d,0x21,0x88,0x76,0xb0,0xaa,0x7b,0x68,0xe4,0xa7,0x92,0x64,0xe4,0x1f,0xff,0x53,0x1d,0xf7,0xc0,0x44,0x5c,0x0a,0x1e,0xcd,0xa7,0x6e,0x41,0x1c,0x8c,0x7d +.byte 0x66,0xa7,0xf6,0xfc,0xa9,0x0d,0x3f,0x9c,0xfb,0x15,0x87,0x14,0x20,0x43,0x1b,0x05,0xf5,0xea,0x5c,0x07,0x61,0xb3,0x0e,0x7c,0x52,0x57,0x1c,0x09,0x33,0xb4,0xd8,0x3d,0x9d,0x17,0xee,0x86,0x25,0xdc,0x6b,0xcd,0x58,0xb7,0x18,0xbd,0x85,0x39,0x0b,0xb9,0xb8,0x35,0x3a,0x86,0xbb,0x88,0xb5,0x5e,0x4b,0x0a,0x7e,0x9c,0x02,0xb5,0x45,0xe5 +.byte 0xc7,0x38,0x56,0x1e,0xe4,0xe7,0xf7,0x88,0xac,0x75,0x9a,0x97,0xa8,0x15,0xb6,0x2d,0xcf,0x2a,0x59,0x65,0x0e,0x00,0x9f,0x8e,0xa9,0x94,0x23,0x1c,0x40,0xe4,0xb9,0x6b,0xcf,0xf0,0x53,0x7f,0x98,0xd1,0xa7,0x72,0xd7,0xe3,0x22,0xfd,0x5f,0x3d,0x3f,0xd6,0x21,0xb4,0x84,0x0c,0x1b,0x1d,0x00,0x2d,0x8f,0x72,0x22,0x2d,0x2c,0x8c,0x54,0x46 +.byte 0xe5,0x53,0xca,0x66,0x67,0x5e,0xb3,0x62,0x6f,0xaf,0x33,0x81,0xc1,0xf6,0x77,0x92,0x3e,0xdb,0x74,0x68,0x93,0xca,0x38,0xf8,0x18,0x50,0xef,0xe4,0xc9,0x45,0x40,0xc9,0xf0,0xc5,0x7a,0x4b,0xf2,0xd8,0xca,0x72,0x62,0x5f,0x67,0x10,0x10,0xcc,0xff,0x1a,0xc7,0x9c,0x3a,0x7f,0xca,0x11,0x67,0x3e,0xca,0xa6,0x9c,0x48,0x15,0xaf,0x68,0xb7 +.byte 0x2b,0xa7,0xa2,0x68,0x7b,0x40,0xb2,0xe3,0x27,0x18,0x7e,0x94,0x4c,0xca,0x0e,0x5b,0x3a,0x30,0xcb,0xc3,0x72,0x31,0x6b,0xe6,0x3e,0xa7,0x09,0x3e,0xf2,0x53,0xda,0x7d,0x6f,0x55,0x08,0xd2,0x26,0xc3,0x07,0x52,0x38,0x90,0x04,0xc6,0x3c,0xb6,0xb5,0x2a,0x7b,0x38,0x07,0x9e,0xb4,0xa5,0x48,0x36,0xf5,0x5e,0xac,0xa8,0x97,0x4e,0x37,0xc2 +.byte 0xee,0x12,0x88,0x28,0xd0,0x7d,0xd1,0xae,0xc0,0xc7,0x84,0x69,0x25,0x79,0x9a,0x8a,0x16,0x49,0x50,0x72,0x69,0x1a,0x02,0xc9,0xfe,0xd5,0x2c,0x40,0xc6,0xc8,0x8b,0x7d,0xe3,0xab,0x89,0xe3,0x78,0xf1,0xe9,0xbd,0x3c,0xbd,0x02,0x96,0xfe,0x0c,0x5c,0xc4,0x9e,0x89,0x3a,0x4b,0xe9,0xcd,0x41,0x1c,0x59,0x71,0x52,0xb0,0xc9,0x36,0xf1,0x80 +.byte 0xab,0x5e,0xbc,0xf1,0x20,0x99,0xc0,0xab,0x0c,0x59,0x43,0xc2,0xcd,0x09,0xa6,0x30,0x91,0xfa,0x12,0x23,0xbe,0x18,0x24,0xa6,0xbf,0x55,0x4c,0xe8,0x22,0xff,0x01,0xbd,0xde,0x2c,0x72,0x3c,0x0a,0x36,0xd5,0x7e,0xed,0x6a,0xe3,0x63,0x14,0x60,0xa3,0x0a,0x6f,0x04,0x90,0x64,0xc1,0xd1,0x78,0x54,0xae,0x19,0x74,0xe2,0xea,0xec,0x86,0x22 +.byte 0xc7,0xdb,0xf6,0x48,0x0e,0x75,0x43,0x04,0xf7,0x62,0xe6,0xa9,0x46,0x65,0xcc,0xa5,0xa4,0x1a,0xb2,0x94,0x7b,0x7a,0x8c,0x9a,0x80,0x62,0x32,0x17,0x80,0xc3,0xc6,0x54,0x0e,0x4e,0xe3,0x46,0x74,0xa8,0xae,0xcd,0xd0,0xc1,0x19,0x84,0x61,0xb4,0x1d,0x18,0x4d,0x80,0xf1,0x70,0x40,0xbe,0xa2,0xa3,0x38,0xcc,0x21,0x1c,0x2f,0x72,0x85,0x72 +.byte 0x0a,0xa1,0x0d,0xa3,0xdc,0xa2,0xf4,0x64,0x84,0x3c,0x43,0x6d,0xfb,0x45,0x11,0xf9,0x40,0xdc,0x25,0x85,0x80,0x41,0x84,0xa7,0x06,0x2e,0x79,0xbf,0x0c,0xa7,0x8f,0x17,0xea,0xa2,0xc4,0x6f,0xd8,0xc6,0x9e,0xab,0xdc,0x45,0x6f,0xaa,0xda,0xe9,0xe6,0x84,0xf0,0x5f,0x8a,0x90,0x99,0x33,0x9b,0xcf,0x03,0xe6,0xce,0x19,0x0c,0xad,0x2f,0xad +.byte 0x81,0xb8,0x17,0xff,0x6b,0xff,0xc8,0x14,0xa6,0xf4,0x37,0x55,0xdc,0xbb,0x09,0x3c,0x3c,0xe7,0x29,0x95,0x23,0x5c,0x58,0x92,0x2e,0x95,0xe8,0x3b,0x8b,0x81,0x2d,0xfd,0x58,0x8a,0x1f,0xdf,0xf1,0x54,0xa3,0xd0,0x01,0xaa,0x3d,0x32,0x61,0xe5,0x8e,0x62,0xa7,0xf6,0x3b,0x2d,0x0e,0xff,0xf4,0xe9,0x08,0xe7,0xef,0x3a,0x63,0x10,0x34,0x49 +.byte 0x14,0xe1,0x88,0xd0,0xb2,0x1d,0xb7,0x31,0xc9,0xa4,0x48,0xa8,0xaf,0x64,0x29,0xab,0x1f,0x14,0x13,0xa7,0xb8,0xb8,0xa4,0x24,0x1d,0xf9,0xb6,0x3e,0x62,0xa6,0x5e,0x10,0xcb,0x44,0x5c,0x9d,0x2c,0x58,0x3a,0x36,0xa3,0x81,0x9f,0xa9,0xa4,0xa1,0x06,0x1d,0xbf,0x97,0x03,0x88,0xf2,0xf4,0x81,0x3e,0x1b,0x35,0xea,0xd0,0xb6,0x96,0xa1,0xf7 +.byte 0x1e,0x49,0xb7,0xe8,0x23,0x6f,0x05,0x7c,0x9f,0xc4,0x53,0xb1,0x63,0xdc,0x07,0xbb,0xd6,0x57,0x85,0x4d,0x77,0x33,0x21,0xbf,0x77,0xfe,0xfe,0x34,0x52,0x02,0xe7,0xe4,0x87,0x11,0xa0,0xfd,0x11,0x4a,0x34,0x36,0x88,0x69,0xdf,0x77,0xfd,0x83,0x71,0xa8,0x68,0xed,0x49,0x39,0xb4,0x06,0x32,0x48,0xf1,0xd2,0x4e,0x61,0x47,0x65,0x26,0x87 +.byte 0xba,0x2b,0x2e,0xf4,0x12,0xfc,0xd0,0x84,0x81,0xa1,0x59,0xdc,0xe3,0x13,0x51,0x9e,0xea,0x57,0x56,0x3b,0x7c,0x71,0x6b,0xff,0xe9,0xf8,0xec,0x3e,0xe7,0xbe,0x65,0x47,0xe1,0x6f,0x8f,0x7c,0x3a,0x77,0xdb,0x75,0x4a,0x43,0x43,0x39,0x37,0xb2,0x68,0x16,0x72,0xdb,0x49,0xf7,0x13,0x3c,0x09,0x93,0xef,0xc1,0x2a,0x99,0xff,0xc7,0xdb,0xd9 +.byte 0x80,0xd2,0xfe,0x7c,0x39,0x50,0x21,0xdc,0x1d,0xae,0x9b,0xfc,0xd4,0x5f,0x56,0xae,0x6a,0xd9,0x35,0xa1,0x2b,0xd6,0x53,0x90,0xe8,0x8c,0x31,0x73,0x0f,0xa3,0x9e,0xa1,0x2f,0x76,0xa8,0x72,0x4d,0x5e,0x58,0xca,0x9f,0x8f,0xdf,0xf0,0xf9,0x6a,0x54,0xb1,0x5f,0x39,0x03,0x7a,0x26,0x06,0x71,0x74,0x6f,0x42,0xee,0x63,0x76,0x13,0xb9,0xed +.byte 0x74,0xad,0xf9,0xe0,0xa7,0x35,0x9c,0x18,0xe0,0xf7,0xc5,0xb2,0x27,0x14,0x0f,0xd7,0xaa,0x17,0x1c,0x8f,0x50,0xc8,0xb0,0xc2,0x63,0xff,0x38,0x65,0x87,0x69,0xb3,0xd5,0x3f,0xb4,0xf2,0xe8,0x8b,0x7b,0x24,0xdc,0x1f,0x62,0x2f,0x0a,0xd7,0x2d,0x0f,0x6f,0x48,0x1d,0xf0,0x3c,0xb1,0xb4,0x10,0x8d,0xc6,0x5c,0x79,0x30,0xde,0x20,0x9e,0x7b +.byte 0xf1,0xa5,0x73,0x38,0x05,0x1b,0x13,0x78,0xb1,0x02,0x2f,0x32,0x2a,0x07,0x59,0xa4,0xfc,0x88,0x08,0x0c,0xff,0x42,0x72,0x6a,0xb0,0x8a,0xc9,0x3d,0xdb,0x04,0x90,0xdd,0x0b,0xbc,0x3a,0x4e,0xfa,0xd4,0x57,0xd8,0x2f,0x7b,0xcb,0xd9,0x6a,0xe7,0xfd,0x32,0x17,0x99,0x20,0x64,0x1e,0x76,0x07,0xb9,0xa3,0x58,0x7f,0x79,0xda,0x0c,0xe0,0xec +.byte 0x30,0xbf,0xa4,0x85,0x0a,0x39,0xc0,0xe9,0xf7,0xbe,0xd1,0xa7,0x94,0x1f,0xa6,0x6d,0xe8,0xc5,0x1b,0x04,0x27,0xf4,0xdc,0xc2,0x4d,0x9a,0x0e,0x9b,0xe8,0xec,0x56,0x99,0x90,0x5f,0x8b,0x28,0x0a,0x92,0xaf,0x0b,0xa1,0xd2,0x85,0x86,0x26,0xc7,0x8a,0x01,0xa4,0x08,0x29,0x32,0x7d,0x3d,0xa5,0x74,0x9c,0x90,0x63,0x83,0x1f,0xd4,0xee,0x98 +.byte 0xf5,0x14,0xff,0x39,0xeb,0xbf,0x40,0xa4,0xc9,0x70,0x4f,0x81,0x03,0x19,0xef,0xf5,0xdf,0xf7,0x00,0x75,0xcb,0x2e,0x81,0x41,0xc5,0xda,0xfb,0x67,0x6a,0xf0,0xa3,0xd3,0x5a,0x60,0xaf,0x72,0x27,0x3e,0xad,0x37,0x3e,0x3d,0xe6,0x85,0x4c,0xa1,0xb0,0xe9,0xab,0xc5,0xd3,0x8b,0x04,0x0d,0x64,0x7f,0xa2,0xb9,0x6d,0x6d,0x28,0xf8,0x4b,0x43 +.byte 0x78,0x51,0xf4,0x84,0xf1,0x3c,0x67,0xd8,0xdd,0xd7,0x0b,0x67,0xc3,0xd9,0x95,0x7b,0xfc,0x7d,0xc4,0x33,0x05,0x90,0xec,0x0a,0x98,0xfb,0x6b,0x0d,0xe9,0x8c,0x74,0x94,0x20,0xf8,0xcb,0xca,0xb6,0x72,0x07,0x7c,0xef,0xfa,0xd0,0x3f,0x51,0xc5,0x6e,0xf8,0x3f,0x37,0xe3,0xfe,0xb9,0x9a,0x9c,0xb3,0xf6,0x96,0x4e,0x65,0x77,0x21,0xcf,0xaf +.byte 0xe7,0x20,0x06,0xc2,0x93,0xc5,0x2e,0xc0,0x7f,0xe5,0x0a,0x42,0xad,0x89,0x64,0x6e,0x95,0xbf,0x95,0x1d,0x24,0x47,0xf8,0xd5,0xec,0x7c,0x1f,0x98,0x67,0x9c,0x5f,0x6e,0xaf,0x74,0x95,0x65,0x4c,0xb6,0xe0,0xd3,0xb7,0x5b,0xc7,0x76,0xe6,0x87,0x19,0xf5,0xc7,0xb0,0x2d,0xe0,0x8b,0xaf,0x6d,0x3c,0x31,0x6e,0x84,0xc8,0x86,0x51,0xff,0x29 +.byte 0x2a,0x1f,0xea,0xd4,0x2d,0x1a,0x8f,0x04,0xb4,0xc0,0x6a,0x93,0xc2,0xc5,0xe7,0x98,0x8c,0xc7,0xff,0xbf,0xb8,0x8e,0x5b,0x29,0x5b,0xa6,0x87,0xc7,0x02,0x88,0x51,0x29,0x66,0xd8,0xf3,0x68,0x38,0xd4,0xa6,0xbd,0xa2,0x5c,0x1b,0xb7,0x13,0xd7,0x64,0xed,0x68,0x21,0x88,0x2b,0x59,0xba,0x95,0x84,0xda,0xce,0x61,0x3b,0x51,0x04,0x3e,0xc2 +.byte 0xdd,0xec,0x0c,0x6b,0xbe,0x35,0x51,0x63,0x29,0x40,0xcb,0xa5,0x62,0xe4,0x27,0x35,0x15,0x1f,0x7c,0x8b,0xe5,0xd0,0x2e,0xde,0x8c,0x3d,0xa0,0xd2,0xbe,0x51,0x3d,0x65,0xed,0x94,0x8b,0x8c,0x00,0xda,0x0e,0x78,0x4d,0x25,0xef,0x8e,0x3c,0x55,0x77,0xeb,0x58,0x06,0x7d,0xd1,0xfc,0x73,0xad,0x76,0x0a,0x81,0xbe,0xda,0x50,0x30,0xf3,0xfd +.byte 0x58,0x25,0x0a,0x4b,0x1b,0x1e,0x0b,0xd0,0x9b,0xbc,0xb9,0x31,0x26,0xbc,0x4c,0x7b,0x05,0xd7,0x5c,0xe4,0x7a,0xdd,0xff,0x04,0xac,0x5d,0xcb,0xfd,0x91,0x34,0x68,0x26,0x1e,0xb4,0x86,0xcc,0xe3,0x90,0xaf,0x6a,0x65,0xda,0x6b,0x3e,0xec,0x44,0x90,0x72,0x7a,0x34,0xfc,0x7b,0x65,0x83,0x34,0x93,0xbc,0x85,0x50,0xdf,0x03,0x89,0x35,0xb8 +.byte 0x6a,0x39,0xd3,0xb6,0x38,0x66,0x5b,0xa7,0x9e,0x93,0xa2,0x3b,0xb6,0xe7,0xee,0x1e,0x5c,0xd6,0xa8,0xd9,0x1f,0xf7,0xd1,0x0a,0x2f,0x87,0x63,0xf4,0xf9,0x8c,0xd4,0x7c,0x02,0xaf,0x7e,0xb6,0xc7,0xfc,0xc9,0x4d,0x35,0x0c,0x8c,0x3c,0x13,0x9d,0xe6,0xd7,0x2e,0x4b,0x91,0xcc,0x88,0xdb,0xfc,0x68,0x3a,0xd1,0x15,0x07,0x16,0x66,0x11,0x9b +.byte 0x66,0x9f,0x3f,0x37,0xae,0x11,0xba,0x5f,0xc7,0x3a,0x1a,0x49,0xbc,0x14,0x21,0x75,0xdc,0xcc,0xbb,0x5c,0xed,0xdc,0x8b,0x21,0x9a,0x8f,0x5f,0x91,0x6a,0x9b,0x26,0x33,0x64,0x45,0xa0,0xdf,0xc4,0xa1,0x32,0xc4,0x4c,0xc2,0x42,0x1b,0x59,0x37,0x1f,0xdb,0x01,0x6d,0xed,0xd8,0x05,0x5b,0x90,0x59,0x32,0x45,0x50,0x5d,0xf1,0x34,0xc4,0xb7 +.byte 0x52,0x97,0xbb,0x42,0x12,0xf1,0xa5,0x76,0xe4,0x1a,0xbc,0x4a,0x64,0xd3,0x08,0xac,0xe1,0x49,0x70,0x61,0xc8,0xcf,0xb1,0xd3,0xc4,0x7f,0x38,0x31,0x6b,0xd3,0xe1,0xe1,0xe9,0x5b,0xaa,0x7a,0xec,0x26,0x81,0x44,0xd3,0xb9,0x63,0xea,0x37,0x98,0x15,0x41,0xf1,0xa1,0x72,0x87,0xcc,0x3b,0x6a,0x27,0x9b,0x85,0xa8,0x7b,0xb6,0x25,0xf9,0xd4 +.byte 0x84,0x3e,0x66,0x12,0xce,0x24,0xee,0x22,0x51,0x73,0x7e,0xba,0x1e,0x95,0x64,0xc5,0xbf,0x4e,0x4f,0x73,0xc1,0xc3,0x98,0xb9,0x6b,0x90,0x1f,0x39,0xfc,0x03,0x55,0x76,0x8c,0x57,0xea,0xe8,0xc1,0x25,0x09,0x69,0xc0,0xe8,0x54,0x91,0xc1,0x7c,0x52,0x8e,0x82,0x6d,0xf2,0x0e,0x3f,0xa9,0x98,0x04,0x40,0xda,0x1c,0xc0,0xbb,0x42,0xf0,0x7d +.byte 0xed,0x78,0xb0,0x4f,0x94,0xba,0x0d,0xbf,0x60,0xbe,0x09,0x67,0x42,0xc5,0x41,0x4c,0x80,0x8d,0x30,0x10,0xa9,0xd2,0x07,0x8c,0xa8,0x40,0xc6,0xe2,0x08,0x42,0x7f,0x99,0xad,0xc5,0x66,0x1f,0xfd,0xd2,0xc5,0x79,0x77,0x9b,0x60,0x7d,0x25,0x2d,0x69,0x14,0x94,0xa5,0xf0,0x0a,0x14,0xb6,0xf9,0xbe,0x3a,0x4a,0x3d,0xc6,0x45,0x2e,0x27,0x4a +.byte 0xd1,0x1d,0xcf,0x08,0xee,0x93,0x3c,0xb5,0x8a,0xee,0xdd,0xf3,0x33,0xa6,0x35,0x9d,0xd8,0xb4,0x68,0xc5,0x98,0x09,0x78,0xcc,0xb3,0xeb,0x0f,0xcd,0x25,0xf8,0x17,0x9c,0x45,0x77,0xc7,0x06,0x40,0x44,0x90,0xec,0x6a,0xd9,0xf5,0x05,0xd4,0x88,0x17,0x47,0xeb,0x29,0x85,0x32,0x76,0x7b,0xa4,0xe3,0x65,0x30,0x50,0x9a,0x99,0x26,0x91,0x60 +.byte 0xb0,0xb8,0xe5,0x8d,0x35,0x9e,0x9a,0x13,0x65,0x82,0xb2,0x4b,0xf1,0xed,0x1f,0xb7,0xb4,0xc0,0x03,0xe6,0x1d,0x2b,0xaa,0x1e,0x01,0x92,0x0b,0xcb,0x34,0x77,0x80,0x94,0xc2,0x4e,0x3b,0x73,0xd8,0x2e,0xd8,0x95,0x33,0x05,0x65,0xa2,0x99,0x29,0x7a,0xd1,0xb3,0xed,0x5a,0x8d,0x4d,0x6a,0x6d,0x69,0x2b,0x5a,0xa1,0x3a,0xc0,0x81,0x96,0xf1 +.byte 0xc2,0xa7,0x4e,0x07,0x90,0x04,0x99,0x70,0xea,0x1a,0x3a,0x26,0xb5,0xed,0x92,0xbd,0x57,0x80,0x11,0x06,0xf2,0xb4,0x05,0x69,0x7a,0xbf,0x27,0xa1,0xbd,0xdb,0x09,0xe5,0xb3,0x2d,0x86,0x41,0xcc,0x5d,0x68,0x37,0x9e,0x98,0xa5,0x4a,0x20,0x8a,0x5f,0x54,0xae,0x4f,0x73,0xd0,0x22,0x18,0x8d,0x2b,0x91,0xcb,0xbb,0x83,0x1e,0x04,0x93,0xc8 +.byte 0xc3,0x89,0x35,0xfd,0xda,0xeb,0x52,0x53,0x9f,0xdc,0x33,0xf0,0xe0,0x99,0x19,0x11,0xeb,0x55,0xd3,0x3c,0x5f,0xca,0x29,0x52,0xe7,0x6b,0xd1,0xad,0xeb,0xed,0x8e,0x68,0x82,0x91,0x85,0x81,0x68,0x70,0x78,0x61,0x1e,0x0c,0x09,0x3a,0x82,0xdc,0xdb,0x26,0x66,0x1c,0xa3,0x80,0x99,0x23,0x8a,0x45,0xd7,0xb8,0x10,0x97,0x80,0x70,0x49,0x78 +.byte 0xa9,0x4c,0xf0,0xec,0xcc,0x05,0xd0,0x6a,0x6a,0x1a,0xa0,0xf7,0xde,0x78,0xc6,0x42,0xbe,0xbd,0xa0,0x24,0x1d,0x3f,0xdd,0xfb,0x92,0xc2,0xbd,0xd6,0x5c,0x25,0x74,0x3d,0x2b,0xb8,0x60,0x67,0xdb,0x70,0x1e,0xe8,0x9f,0xcd,0xb4,0x82,0x90,0x9e,0x2a,0x94,0xa5,0xa2,0xd4,0xd2,0x24,0xa7,0xca,0xbf,0xe1,0x8b,0xab,0xf3,0xd2,0x7c,0xa6,0xc8 +.byte 0xe6,0xaf,0xef,0xe3,0x86,0xb1,0x42,0x1d,0xc6,0xa2,0x37,0x9b,0x26,0x46,0x0b,0xfd,0xee,0x88,0xa4,0xf1,0xa8,0x72,0xaf,0xda,0x30,0x56,0x22,0xd3,0x1b,0x31,0x76,0xd7,0x03,0xef,0xf3,0x98,0x16,0x4d,0x36,0x57,0x1b,0xd5,0x90,0xb8,0x67,0x50,0x7f,0x22,0xa8,0xdc,0x9c,0xf1,0x6e,0xa4,0x65,0x45,0xf0,0x73,0xd8,0x7e,0x41,0xb0,0x68,0x52 +.byte 0x00,0x0a,0xda,0x99,0x6c,0x84,0xce,0xf0,0x73,0x65,0x93,0x52,0xc8,0x4b,0xb4,0x72,0xda,0x2c,0xa1,0x47,0xb5,0xe3,0x00,0x63,0xc0,0x4e,0x84,0x16,0x00,0xe6,0x1f,0xbd,0xba,0x49,0xcb,0xd3,0x7d,0xd2,0xeb,0x4a,0xb2,0xd5,0xb2,0x53,0x96,0xfb,0x04,0x73,0xc0,0x09,0x31,0xf3,0xf2,0xc0,0xd3,0xa6,0xe1,0xea,0xe1,0x58,0xbe,0x90,0xc9,0xfb +.byte 0x6e,0x13,0x69,0xbe,0x17,0xd4,0x16,0x5b,0xcb,0xf4,0x93,0x0a,0x38,0x46,0xea,0x64,0xad,0xb0,0x0d,0xc0,0x3b,0xfc,0xe3,0xd4,0x20,0x75,0x0c,0x3e,0x71,0x1b,0x5f,0xde,0xff,0xd6,0xfa,0x6f,0xe4,0x10,0xb0,0x14,0x05,0xaa,0x05,0x70,0x5e,0xbd,0x58,0x9f,0x3c,0x9d,0x4f,0xa7,0x5a,0x65,0x57,0x02,0x05,0x44,0xe0,0x95,0x9d,0xa2,0x60,0x06 +.byte 0xcb,0xfd,0x91,0x8e,0x7f,0xce,0xa1,0x80,0x94,0xbb,0x88,0xf2,0xa6,0xe7,0x83,0xf9,0x38,0x8f,0x09,0x8e,0xe4,0xa9,0xc2,0xc7,0x84,0x9d,0x25,0x09,0x52,0x8b,0x32,0xaa,0x3b,0xde,0xb6,0x82,0x9f,0x6d,0xc4,0xdf,0x11,0xf7,0x72,0x1a,0xe4,0x00,0x51,0x41,0x01,0xba,0x21,0xea,0x0a,0xda,0xf2,0xbb,0x66,0xae,0x51,0x2b,0xb0,0x6d,0x1d,0xe8 +.byte 0x4b,0x1e,0x42,0x68,0x3a,0xed,0xe6,0x59,0x13,0x42,0x07,0x54,0xae,0x2e,0x15,0x93,0xd7,0xff,0xad,0x49,0x09,0x41,0x52,0x6b,0x3b,0x9c,0x41,0x43,0x0d,0xed,0xed,0x6f,0xb8,0xe9,0x0d,0xcc,0xde,0x0d,0xaa,0x91,0xef,0x89,0x2f,0x2d,0x94,0xd0,0x03,0x2b,0x51,0x7f,0x85,0x9b,0x7b,0x08,0xc8,0xb6,0xe2,0x82,0x22,0xa9,0x57,0x71,0xf2,0xae +.byte 0x08,0xfa,0x6c,0xd8,0xca,0x78,0x42,0x98,0x23,0xfd,0x38,0x4b,0x6c,0xd3,0x9f,0xc6,0xa3,0xb2,0xc1,0x8c,0x4a,0xa3,0xcd,0x9f,0x56,0xe7,0xc2,0x06,0xd7,0xc5,0xc2,0xd9,0x98,0x57,0xc8,0x5a,0xaa,0xf4,0xaa,0x44,0x02,0x83,0x11,0x1e,0xf6,0x64,0x8d,0xf7,0x3b,0x86,0x3c,0x04,0x53,0x5f,0x62,0xc8,0x7a,0x0e,0x1c,0x4f,0xa8,0xe3,0x5c,0xe8 +.byte 0x64,0xf7,0xe3,0x5d,0xea,0xb5,0x2d,0xdb,0x7b,0x0e,0xdb,0x91,0x34,0xd5,0x87,0x4f,0xe6,0x73,0xee,0x3d,0x79,0x7c,0x67,0x48,0xb5,0xbb,0x42,0x96,0x0d,0x9d,0xbd,0x68,0x98,0xe5,0x59,0x51,0x16,0x45,0x15,0xac,0x80,0x41,0xae,0x45,0xdb,0xe4,0x2a,0x44,0x0d,0xe4,0x25,0xc7,0xd3,0x06,0xf7,0x98,0x15,0xe1,0xc5,0x9b,0x34,0x0e,0x87,0xb8 +.byte 0x90,0x1b,0x24,0x84,0x06,0x24,0xb0,0x80,0xbe,0x03,0xa0,0x95,0x10,0x1e,0x72,0xde,0x0f,0xd4,0x15,0x7b,0xa0,0xf5,0x42,0xc3,0x6f,0x10,0xe9,0x76,0x44,0xe3,0xa9,0xb7,0xef,0xf6,0xc2,0x80,0xe2,0x0c,0x2d,0xad,0xe0,0xb9,0x45,0xca,0x67,0x6f,0xb6,0xc5,0xc0,0x8d,0x25,0xee,0x50,0xeb,0x51,0xc6,0x87,0x87,0x61,0x3a,0x75,0x95,0x41,0x47 +.byte 0x26,0xfd,0x35,0xf6,0x46,0xf4,0xe9,0x42,0xc6,0xef,0x37,0x97,0xb3,0x0a,0x1d,0xc8,0xdf,0x07,0x24,0xb1,0x0d,0x07,0x43,0x67,0x7d,0x81,0x09,0x58,0xdd,0xf6,0xcf,0xf1,0x47,0x42,0xbd,0x3c,0xa3,0xd7,0xe8,0x73,0xf9,0x5b,0xff,0x2c,0xcd,0xe6,0xd1,0xe9,0x47,0x6d,0x19,0x9b,0x6a,0x63,0x69,0xf4,0x4a,0xdf,0x69,0xab,0xa9,0xb7,0xe5,0x8d +.byte 0x1c,0x44,0x52,0x0c,0x7e,0xa1,0xfe,0x9d,0xd5,0xa4,0x71,0x62,0x0b,0x3c,0xf6,0xd2,0xd3,0xe9,0x70,0x09,0x68,0xf7,0xd6,0x0a,0x00,0x61,0xf1,0xf3,0xd0,0x41,0x4a,0x14,0xc6,0xf5,0x49,0xb1,0xde,0x10,0xd3,0x20,0x8b,0xfe,0x78,0x6a,0x87,0x79,0x15,0xd3,0x43,0x00,0xbe,0x71,0x40,0xaa,0xca,0x1a,0x64,0xe3,0x96,0x34,0x2f,0xea,0x0c,0x11 +.byte 0x41,0x21,0xf8,0xa7,0x65,0x9b,0x75,0xe2,0x1e,0x6f,0x5e,0xe0,0x68,0x42,0xca,0xd3,0x19,0x35,0xe8,0x88,0x0f,0x05,0xa3,0xb1,0x73,0xea,0x53,0x79,0x40,0x24,0x00,0x86,0x20,0xbb,0x25,0x58,0x89,0x6b,0xde,0xd6,0xd0,0x36,0xbb,0x33,0x30,0x59,0x4b,0x30,0x92,0xac,0xe5,0x95,0x94,0x22,0xab,0xc1,0x10,0x35,0x9c,0xa1,0x20,0x11,0x5d,0x4f +.byte 0x57,0x5c,0x9c,0xb8,0x3a,0xdc,0x97,0xa5,0xf3,0x0b,0xf5,0x96,0xe7,0xef,0x90,0x72,0x01,0x52,0x70,0x5a,0xf0,0xd9,0x7e,0x59,0x05,0x8c,0xd1,0x45,0x47,0xbf,0x16,0x15,0xa2,0xc9,0xdd,0xe7,0x5f,0x4b,0x94,0x5f,0xe6,0xf9,0x78,0xbb,0x8f,0xf9,0x79,0x9f,0x5e,0xd7,0x1f,0x0b,0xef,0x8d,0xfe,0x75,0xd4,0x8a,0x12,0x28,0xa5,0xf9,0x6e,0x14 +.byte 0x3c,0x52,0x80,0x57,0xc6,0x96,0xae,0x67,0x27,0xc1,0x1c,0xb6,0xd6,0x1c,0x74,0x8c,0x6f,0xc7,0x71,0x3e,0xd5,0x73,0xf2,0x3e,0x02,0x15,0x67,0x18,0xb8,0x5b,0x61,0x9e,0xfa,0x7e,0xba,0x00,0xe9,0xd9,0x51,0x91,0x63,0x7e,0xf7,0xab,0xc0,0xc6,0xee,0x66,0xdd,0x66,0x88,0x7a,0x8a,0xc5,0xc2,0x08,0x45,0x62,0xde,0xe1,0xfb,0x35,0x65,0x34 +.byte 0x00,0x9e,0x1d,0x25,0xdf,0x69,0xb6,0xe3,0xfe,0xbb,0x13,0xac,0xd3,0x13,0xb2,0x64,0x5a,0xf3,0x47,0xf1,0x36,0x55,0x5f,0x1b,0x87,0xea,0x5d,0x5c,0xfd,0x8a,0x68,0x69,0x8a,0x00,0x9f,0x83,0xbe,0x79,0x7d,0x01,0x9e,0xf2,0xb2,0x5d,0x56,0xe0,0xe6,0x49,0xe5,0xe1,0x76,0x57,0x7a,0x85,0xac,0x94,0x16,0xe3,0x68,0x05,0x14,0xb5,0x33,0x54 +.byte 0x64,0x5a,0xbe,0xa3,0x04,0x90,0x5c,0x1c,0xf8,0x97,0x16,0x36,0xce,0x76,0xe7,0xf0,0xaf,0x8a,0xea,0x65,0xa8,0x15,0x5b,0x1e,0x0a,0x91,0xad,0x62,0x62,0x67,0xb4,0xf0,0x94,0x1f,0x64,0x50,0xa8,0xc0,0x6b,0x38,0x80,0xd7,0x53,0xbb,0x70,0xbd,0x54,0x01,0xb0,0xa5,0xbc,0x00,0xe0,0xd6,0x23,0x37,0xe6,0x9f,0x0f,0x2f,0x96,0x21,0xc2,0x90 +.byte 0x55,0x26,0x55,0xa4,0xcd,0x3e,0x54,0x6b,0xa6,0xb0,0x2c,0xf2,0xd4,0xcc,0x6a,0x44,0xea,0x18,0x61,0xc5,0x1a,0x8e,0x60,0x64,0xf4,0x5f,0x21,0x36,0x01,0x5d,0x9f,0xc4,0x2c,0x67,0x1c,0x48,0x94,0x16,0xae,0xa8,0x13,0x5c,0xee,0x18,0x88,0x61,0xe4,0x54,0x6b,0xa2,0xe8,0x7f,0xf0,0x15,0xc3,0xce,0xbc,0x5b,0x91,0x25,0x7b,0x1d,0xd3,0x9f +.byte 0x13,0x1b,0x01,0x5d,0x43,0xe8,0xa1,0x77,0x5a,0x87,0x79,0x8b,0xd5,0x69,0xf7,0xdf,0x66,0xa2,0x84,0x0c,0x66,0xac,0x15,0x65,0xbf,0x74,0xc0,0xd2,0x78,0x6a,0x3a,0x9c,0x98,0x62,0x04,0x41,0x95,0xb2,0x23,0x59,0xc6,0xb0,0xc5,0x22,0xc0,0xfa,0xaa,0xc8,0x94,0x73,0x91,0x5b,0x64,0x1b,0x74,0xbe,0xcb,0xa1,0x81,0xb1,0xc1,0x26,0xa1,0x94 +.byte 0x55,0x04,0xb3,0x9c,0x80,0xb7,0x00,0x6f,0x36,0xc7,0x7f,0x6d,0x97,0xea,0xf3,0xf5,0x55,0xc5,0xfe,0x61,0xd9,0xb1,0x6d,0x8c,0xa1,0x02,0x08,0xb3,0x41,0xe6,0xe6,0x57,0xc6,0xff,0x6e,0x47,0xa4,0x22,0x2e,0x2d,0x21,0x53,0xbe,0xe3,0xbe,0x15,0xec,0x23,0x9d,0x87,0xe0,0x2e,0xcc,0x6c,0xd0,0xc7,0xb7,0x3d,0xa4,0x07,0x5f,0x69,0x4e,0x2b +.byte 0x07,0x69,0x4f,0xc5,0xa3,0x66,0x52,0x91,0x8f,0xa4,0x48,0xb9,0x40,0x76,0xd9,0xcb,0x6e,0x1a,0x35,0x9e,0x50,0x9f,0xd1,0x78,0xb2,0xb8,0x0d,0xa8,0xf8,0x6e,0x07,0xa5,0x3a,0xdf,0x3c,0x32,0xa6,0x10,0xbd,0x73,0x2f,0x07,0x45,0x66,0x0f,0x61,0xce,0xc2,0x08,0x19,0x98,0x33,0x4b,0x59,0x81,0xb5,0x78,0x4f,0x46,0x88,0xae,0x29,0xf8,0xf5 +.byte 0xc2,0x29,0x6f,0x8f,0xe5,0x8f,0xb0,0x53,0xc8,0x7a,0x48,0xda,0x6f,0x7e,0x8a,0x69,0x68,0xab,0xba,0xd9,0x20,0x0f,0x96,0x69,0x41,0xa6,0x92,0x94,0x8e,0x0f,0x86,0xdf,0x8d,0x70,0xaf,0xfe,0xf1,0x20,0x50,0x01,0xff,0xca,0x30,0x24,0x67,0x4a,0x04,0xa2,0xde,0x06,0xdc,0x26,0x1e,0x17,0xbc,0x52,0x9a,0x62,0x72,0xc1,0xd8,0xd7,0xe0,0xed +.byte 0xcf,0x4b,0x13,0x80,0x9a,0xbf,0x72,0x4f,0xf4,0x24,0x26,0xcd,0xe0,0x21,0x99,0x7b,0x5c,0x4f,0xbf,0x5c,0x41,0x08,0x8b,0x17,0x69,0x62,0x60,0x2c,0x74,0xb0,0x2d,0x22,0x7e,0x25,0x95,0x6a,0x84,0x0f,0x45,0x8f,0x9a,0x92,0xa1,0xcd,0xa5,0x50,0xf0,0x52,0x7f,0x60,0xd8,0x91,0xe1,0x17,0xe1,0x66,0x8f,0xd3,0x1f,0x41,0x7f,0x6f,0xf1,0x72 +.byte 0xa3,0xb6,0x12,0x62,0x46,0x16,0xea,0x26,0x9e,0xda,0x61,0x13,0x0b,0x17,0xf7,0xe1,0xec,0xc0,0x38,0xfe,0x40,0x31,0x6b,0x38,0x2a,0x4b,0xa5,0x8e,0xfb,0x99,0x60,0xd6,0x4a,0xbd,0xfb,0x75,0x2b,0x41,0xd4,0x33,0x5d,0x35,0xfe,0x2d,0xfc,0x1a,0xac,0x02,0xb3,0xf0,0xa2,0x6d,0xfa,0x8b,0x12,0x99,0xdd,0x54,0xf2,0x1c,0x35,0xd3,0x60,0x5a +.byte 0xdb,0x65,0xa7,0x58,0x1b,0x82,0xb4,0xf6,0x49,0x77,0xf2,0xea,0xa3,0xa9,0x57,0x94,0xb7,0x6e,0x19,0xda,0x7e,0xa5,0x70,0xb8,0xff,0x39,0x81,0x7d,0xfa,0xea,0xd6,0xc6,0x12,0x84,0x0a,0x8a,0x16,0xde,0x99,0xa6,0xe7,0xe0,0x77,0x76,0xb8,0xa3,0x6f,0xfb,0xb4,0x8f,0xc3,0xbd,0x90,0xd8,0x2a,0x04,0xed,0x42,0x91,0x9b,0x84,0x40,0x2d,0x01 +.byte 0x94,0xdb,0xbb,0x58,0x25,0xed,0xa3,0xdd,0xaa,0x0c,0xce,0x25,0x12,0xcd,0x11,0xbf,0xd0,0x57,0xe9,0x51,0x74,0xa7,0x45,0x6c,0x58,0xe7,0x4d,0x43,0xc6,0xd0,0x09,0x93,0x2d,0xe0,0xe3,0xae,0x7b,0x8f,0x53,0xa0,0x80,0xa1,0xef,0xcb,0xf5,0xfe,0x38,0x4d,0x31,0xa2,0x5c,0xd3,0x4a,0x66,0x1a,0x5c,0x07,0xbe,0x25,0xba,0x30,0xb6,0x00,0x27 +.byte 0x52,0xb9,0x1f,0xa3,0xed,0xd7,0x31,0x33,0x4a,0xf6,0x3f,0xed,0x75,0xe7,0xa4,0xf4,0xdf,0x97,0xc1,0x78,0x90,0x9b,0x4b,0xbd,0x06,0xc6,0x72,0x5c,0xdf,0x57,0x60,0xbe,0xbc,0x88,0x02,0xb6,0x5a,0x65,0xea,0x3a,0x3a,0x74,0x03,0xc8,0x66,0xef,0xf0,0x63,0xc7,0x9d,0x58,0x8e,0xa1,0xb2,0x25,0x4f,0xc4,0x14,0x5f,0x80,0x78,0x08,0x06,0x21 +.byte 0x50,0x34,0x01,0x2b,0x15,0xf4,0x7d,0x1f,0x1f,0x32,0x36,0x0a,0x52,0x1f,0x50,0xa2,0x50,0xbc,0x9a,0xdf,0x4e,0x84,0x49,0x2d,0x08,0xaa,0x46,0xc0,0x0e,0xcf,0x27,0x17,0x91,0x78,0x8c,0xb9,0x72,0xc5,0x8e,0x25,0x85,0x11,0xff,0x2f,0x4a,0x71,0x7c,0x14,0xfe,0x86,0xfe,0xb4,0x3a,0xd0,0x67,0xfd,0xaa,0x9b,0xee,0x89,0x66,0x03,0x59,0x4e +.byte 0x1c,0x96,0xaf,0x2b,0x8d,0x4d,0x6f,0xf6,0x72,0xc6,0x13,0xc7,0x14,0xce,0x19,0x0c,0x0b,0xa3,0x01,0x12,0x7c,0x8e,0x10,0xb8,0x63,0x41,0x57,0xb9,0xfe,0x6e,0x3e,0xda,0x20,0xfb,0x92,0x08,0x7d,0x66,0x31,0x9d,0x4f,0xdb,0x14,0xf4,0xb6,0xb8,0xea,0xee,0x54,0x0f,0xaf,0xc1,0x99,0xf0,0x8f,0x55,0x44,0x20,0x44,0xd0,0xa6,0x98,0xa3,0xa8 +.byte 0x8b,0x8e,0x26,0x03,0xec,0x2d,0x50,0x4f,0xb0,0x8d,0xd0,0xf2,0x96,0xcc,0x18,0xa9,0xb1,0x0f,0x79,0xe3,0x9f,0x08,0xb3,0x53,0x0b,0x9c,0x9f,0x22,0xdb,0x45,0x57,0xd6,0xaa,0x3b,0x6a,0xcb,0xdc,0xc9,0xda,0x57,0x75,0x65,0x0a,0xc1,0x17,0xb3,0x97,0xa9,0x07,0x40,0x20,0xfb,0x72,0x2d,0xc6,0x37,0x1e,0x44,0xb7,0x7e,0x0b,0x38,0xcc,0xfc +.byte 0xa0,0xed,0x48,0xa9,0x9b,0x87,0xbc,0x71,0x0f,0x8b,0xda,0x4f,0x09,0x27,0x1e,0x3d,0x9c,0x03,0x62,0x81,0xa8,0x7c,0x7b,0x8a,0x14,0xa7,0x22,0x69,0xa8,0xba,0x0e,0xcc,0x1f,0x2b,0xb3,0x0f,0x7d,0xce,0x3f,0xec,0xb5,0x9d,0xe0,0x3a,0x67,0x56,0x08,0x5d,0x03,0x8b,0x71,0x01,0x44,0x11,0x1b,0x7b,0xcf,0xcc,0x2e,0xfc,0xa5,0x52,0x9b,0xeb +.byte 0x1e,0x8a,0xa1,0x86,0x64,0xcf,0x32,0x03,0x6b,0x3e,0x29,0xe7,0x9a,0x16,0x7e,0xe2,0x21,0x2f,0x5f,0xe2,0x86,0x7f,0xf8,0x22,0x36,0x10,0x99,0xc8,0x27,0x43,0xa1,0xb9,0xf4,0xb4,0xb8,0xe1,0xa3,0x1d,0x80,0x9c,0x81,0x92,0xef,0x1f,0x28,0x54,0x51,0xf3,0x62,0x9c,0x7a,0x24,0xd4,0x5a,0xdc,0x38,0x4f,0xa5,0x57,0xdd,0x4d,0xa1,0x52,0xf3 +.byte 0xd3,0x9d,0xa1,0x93,0x5e,0xbe,0x9b,0xd1,0x2a,0x52,0xf1,0xbb,0xa5,0x3f,0x3a,0x94,0x7c,0x7d,0x41,0x61,0x36,0x14,0x25,0x5f,0xab,0xef,0x32,0xf3,0x0f,0x6c,0xc5,0xf5,0x5f,0xe5,0x88,0x51,0x17,0x60,0x8b,0xd5,0xa6,0xea,0x8b,0x21,0xec,0x1a,0xa7,0x69,0xa0,0x59,0xf9,0xeb,0x51,0x94,0x70,0x2b,0x96,0x2e,0x71,0xa9,0x8c,0x12,0x15,0xce +.byte 0x7d,0x59,0x6b,0xf2,0xca,0x2c,0xbd,0x85,0xfb,0x23,0xab,0xcb,0x89,0x89,0xda,0x28,0x49,0x7e,0xfc,0x90,0x2a,0x9a,0x3d,0x6d,0x24,0x57,0xba,0xd9,0x30,0xe0,0x10,0x04,0xb1,0x7f,0x8a,0xcf,0xc8,0x27,0x63,0xd6,0xbd,0xea,0xef,0x90,0x6f,0xc2,0xfc,0x78,0xfd,0xc4,0x5b,0x45,0x0c,0x41,0x8a,0x53,0x5b,0xbc,0x62,0x32,0x86,0x7f,0x19,0xb7 +.byte 0x8b,0x03,0x50,0xed,0xca,0x8e,0x8b,0xa0,0xe3,0xc2,0x0e,0x81,0xe5,0x8a,0xe8,0xf1,0x6a,0x0b,0x1a,0xa7,0xb6,0xed,0x74,0x23,0x34,0xad,0x5b,0xd8,0xf7,0x17,0x8d,0xa5,0x05,0xf3,0x00,0x4a,0xad,0x7e,0x91,0xc9,0x6b,0x13,0xff,0x76,0x78,0xf0,0xd1,0xf4,0x99,0x43,0x73,0xd9,0xba,0x59,0xbe,0xb5,0xa3,0xbd,0x5e,0xc5,0xd3,0x88,0x06,0x9c +.byte 0x86,0x32,0xb4,0xd5,0x30,0x77,0x78,0x8e,0xd5,0x6a,0x1d,0xeb,0xfd,0x6b,0xe6,0xf8,0x4b,0xe8,0xf3,0xba,0xbb,0x86,0x8e,0xe6,0x63,0x83,0x92,0x23,0x05,0x58,0x2e,0x61,0xdd,0x38,0xad,0x8d,0x19,0x7d,0xfa,0x7c,0x3e,0xc8,0x9f,0xae,0xea,0x6d,0x12,0xf0,0xa4,0x08,0xed,0x12,0x0c,0x97,0x87,0x58,0xd8,0xbc,0x3f,0xde,0x7c,0xee,0x0c,0xc0 +.byte 0xa2,0x2e,0xf0,0x25,0x6d,0xf3,0x30,0x23,0xa7,0xc2,0xc8,0x09,0x67,0x01,0xe1,0x25,0x26,0x46,0x38,0xf5,0x5e,0x55,0x8b,0xd6,0x43,0x6a,0xb8,0xe4,0xdf,0x0f,0x5d,0x6c,0xc3,0xb2,0x56,0x38,0xda,0xbc,0xbf,0x5e,0x85,0x8c,0xd5,0x2a,0x6a,0xe2,0xff,0x4f,0x36,0xf7,0x52,0x2c,0xe2,0xae,0x65,0x65,0xd1,0xfc,0xd3,0xc6,0xf7,0x26,0xa6,0xd0 +.byte 0x0b,0xc8,0xf0,0x68,0x5d,0x07,0x89,0x06,0xb3,0xfb,0x39,0x1d,0xd8,0xd8,0xd7,0x53,0xd0,0xc9,0x76,0x56,0xc0,0xd3,0xf5,0x66,0x80,0x5b,0xff,0x4a,0xdf,0xae,0x52,0x86,0x54,0x24,0x53,0xcf,0xcf,0xd2,0x89,0xde,0x71,0x62,0x9c,0x31,0xa5,0x3d,0x62,0x07,0xa1,0x33,0x49,0xbb,0x06,0x88,0xd8,0xa1,0xdd,0x0e,0x47,0x8d,0x72,0x00,0x2d,0x51 +.byte 0xa3,0x35,0x6e,0xb6,0x1f,0xbf,0xe5,0x42,0x68,0x6f,0x62,0xfa,0xf3,0x12,0xa9,0x1a,0xbd,0xe8,0xa4,0xf1,0x6d,0x07,0xe7,0x70,0x87,0x44,0xb7,0x3d,0xea,0xdc,0x3a,0x24,0xbd,0xa0,0x9b,0xb8,0xc5,0xa8,0xd9,0x06,0xde,0x02,0x68,0x7e,0xd5,0x2d,0x3b,0x5f,0x12,0x31,0x72,0x35,0x77,0xf6,0x10,0x6e,0x81,0x7d,0x3c,0xac,0x95,0x5b,0xbe,0x90 +.byte 0x74,0xf3,0x3e,0x9b,0x07,0x54,0x97,0xe3,0x1d,0xcf,0xe2,0xc5,0x80,0x6b,0x5f,0x0b,0x96,0x00,0x0f,0x0e,0x53,0x36,0x76,0x6e,0x99,0x0c,0x32,0xa2,0xc9,0xaa,0xa0,0xa1,0xb7,0xee,0x9d,0xd6,0x46,0xe7,0x2d,0x10,0x7a,0xf2,0x22,0x50,0x52,0xbf,0xec,0xcc,0xbc,0x0d,0x81,0x55,0x2d,0xac,0x2e,0xf7,0x99,0xbe,0x68,0x09,0xb0,0x11,0xc3,0xc8 +.byte 0xca,0x63,0xa7,0xc2,0x0f,0x37,0x2a,0x9e,0x85,0x79,0x6b,0x44,0xc1,0x4f,0xb9,0xd6,0x6c,0x56,0x0e,0x59,0x33,0xc3,0x00,0x53,0xe2,0xf4,0x30,0x90,0x4e,0x4b,0x09,0x4d,0x6f,0x9a,0x9e,0xb9,0x8d,0x0b,0xa1,0x80,0xfd,0xfb,0xde,0x74,0x49,0x53,0x04,0x3a,0x35,0xcb,0x45,0xe2,0x67,0x2c,0x4d,0x6e,0x39,0x7b,0xbd,0x68,0xaa,0x93,0x1e,0xee +.byte 0x1e,0x35,0xae,0x1e,0xf2,0xe7,0xb1,0x80,0x92,0x45,0x27,0x85,0xd0,0xc7,0x26,0x17,0x54,0x30,0xba,0x0c,0x8e,0x48,0xf3,0x08,0x51,0xa6,0x41,0x70,0xba,0x5b,0x90,0x69,0x7c,0x64,0x1d,0x61,0xb5,0x23,0x4a,0xef,0x97,0xe4,0x9a,0xd0,0xff,0x47,0x7a,0x93,0x1a,0x28,0xb3,0x8a,0x32,0x29,0xf8,0xe9,0x08,0xc3,0xf3,0x24,0xd7,0x2e,0x18,0x6d +.byte 0x99,0x40,0x77,0x43,0x9f,0x98,0xe4,0xe5,0x3a,0x34,0x9d,0x46,0x52,0x9f,0x84,0x79,0x8c,0x70,0xbc,0x88,0x30,0xaf,0x87,0x69,0x57,0x6e,0xde,0x2e,0xfe,0x0f,0x3b,0x8d,0xc8,0x95,0xcf,0x69,0x78,0xff,0xa1,0xb1,0x81,0x49,0x1e,0x45,0xc0,0x83,0x1b,0xa3,0x5a,0xee,0x3e,0x9a,0x15,0x7c,0xf0,0xa2,0xfd,0x04,0x22,0x55,0x2d,0x74,0x61,0x29 +.byte 0x0e,0x4f,0x31,0xdb,0x35,0x99,0x37,0xb7,0x7d,0x11,0xde,0x87,0x4f,0x84,0xeb,0x6c,0x14,0xcc,0xbb,0x71,0x47,0xab,0x5b,0x61,0x51,0xeb,0xa1,0xc1,0x5f,0xe4,0x5c,0x3c,0xab,0x04,0xf1,0x60,0x50,0xe1,0xd0,0x58,0xdf,0x42,0xed,0x73,0x5f,0x31,0xdf,0x8d,0xb8,0xb8,0xdc,0x4e,0x2f,0xe3,0x7f,0x89,0x9e,0x62,0xc9,0xef,0xfd,0x60,0xae,0x58 +.byte 0xa9,0xa5,0x8b,0xa8,0x3b,0xd8,0x5f,0xd4,0x09,0xff,0x61,0x8c,0x25,0xde,0x84,0x7f,0x35,0xc9,0x5c,0x2b,0xe8,0x46,0xe4,0x1c,0xbd,0x77,0x51,0x31,0x55,0x3d,0xb4,0x35,0xf3,0xdc,0xa5,0x55,0xd3,0xe3,0x24,0xf9,0x41,0xe2,0xf0,0xbd,0xf5,0xff,0x81,0x87,0x64,0xc9,0xe7,0x69,0x29,0x86,0xaf,0x98,0x33,0x33,0x62,0x9c,0x7b,0x16,0xbb,0xfe +.byte 0x0b,0xa7,0x92,0xa5,0x7b,0x81,0xbc,0x50,0x88,0xf6,0xe7,0xfc,0x73,0xd6,0x37,0x43,0x09,0xa5,0xc6,0xd6,0x4d,0x28,0xb5,0xaa,0x53,0x52,0x8c,0x2c,0x06,0x64,0x6c,0x21,0x6b,0xe7,0x67,0x4a,0xa5,0xcc,0xa1,0x32,0xf0,0xd9,0x78,0xb9,0xc3,0xdb,0x41,0xee,0x10,0x11,0x81,0x04,0x03,0x73,0x48,0xc6,0x3e,0x60,0x6d,0x82,0xef,0xe2,0xa8,0xe8 +.byte 0xd7,0xda,0xd9,0xb5,0x34,0x42,0xc8,0x1c,0xa7,0xa4,0x8e,0x88,0x2e,0xbc,0x96,0x0a,0xfc,0x40,0x36,0x80,0xdf,0x60,0xe9,0x03,0x02,0x0c,0x51,0xf7,0x7d,0x01,0xd2,0x21,0x38,0x44,0x4b,0x34,0x80,0xbf,0x5e,0xc1,0x86,0xf2,0x35,0xeb,0xa8,0x21,0x15,0x74,0x7c,0x99,0x55,0x64,0xf4,0x48,0xd6,0xd1,0x47,0x1f,0x4d,0xbf,0x0c,0x20,0x5d,0x86 +.byte 0xb9,0xab,0x4e,0xc8,0x86,0x08,0x71,0x1d,0x13,0xf6,0xd3,0x17,0xac,0x61,0x10,0x5d,0x2a,0xb4,0x48,0xa1,0xb9,0x79,0x5a,0x09,0x3a,0x65,0x4c,0xbd,0x97,0xbe,0x48,0xc6,0x66,0xd8,0xce,0x0c,0x19,0xb5,0x44,0x02,0xfa,0xb7,0xa8,0x3f,0x9b,0x86,0xec,0xd1,0xef,0x1d,0x7d,0xb3,0x82,0x5c,0x92,0x48,0x02,0x2c,0x56,0x0f,0xff,0xf7,0x19,0x74 +.byte 0xc2,0x38,0x24,0x8d,0xb2,0x87,0xb6,0xeb,0x49,0x50,0x6a,0x33,0x74,0x4e,0x2a,0xcb,0xf4,0x13,0x2c,0xfa,0x3b,0x0e,0x3d,0x98,0x3e,0x33,0xd9,0x55,0xfa,0xb9,0x74,0xb8,0x6f,0xc1,0xd8,0xfd,0x8f,0xff,0xb9,0x1a,0x17,0xf8,0xb6,0x21,0xc4,0x9d,0x47,0x5e,0x84,0xf6,0xe5,0xbf,0x93,0x98,0xac,0x8f,0x68,0x85,0xf8,0xe8,0x79,0x7f,0x6f,0x0d +.byte 0x62,0x2c,0xaa,0x1e,0xe4,0xab,0x73,0xf8,0x6f,0x02,0xda,0x6b,0x3c,0x14,0x2e,0xc9,0xdb,0xb0,0x4e,0x39,0xb5,0xcf,0x05,0xae,0x9c,0x63,0x2f,0x6a,0x25,0x61,0x9d,0x40,0xeb,0x7e,0xd8,0x97,0x97,0x33,0x67,0x5c,0x78,0x84,0x68,0xc2,0x7a,0x26,0x58,0xe3,0x6c,0x0a,0x2e,0x6a,0x82,0xd6,0x43,0xed,0x79,0xa5,0x8d,0x4e,0x7c,0xf7,0x80,0x01 +.byte 0xe7,0x02,0x5e,0x3a,0xf7,0x8a,0x4a,0x85,0xe9,0x98,0x1e,0x69,0x33,0xf3,0x54,0x96,0x79,0xc8,0x03,0x0a,0x9f,0x0c,0x5d,0x66,0x44,0x88,0x3c,0xd7,0x9e,0xd1,0xde,0x01,0xfd,0x5e,0xa5,0x6a,0x82,0x00,0x36,0xe6,0x12,0xe3,0x62,0x46,0x45,0x69,0xfb,0x4f,0x44,0x8e,0xe5,0x8d,0x21,0x57,0x6a,0x61,0x8e,0x56,0xcb,0x5b,0x2c,0x5f,0x65,0x41 +.byte 0x2c,0xad,0xf2,0x98,0x34,0xbb,0x06,0x0d,0x8a,0x3c,0x34,0x0d,0xa3,0xe2,0x6e,0x86,0xfa,0xa9,0xfb,0x6f,0xbb,0x32,0xd6,0x0d,0x76,0x6b,0x77,0xf3,0x83,0x41,0xc0,0x80,0x63,0x55,0x47,0xb8,0x13,0x6b,0x99,0x96,0x08,0x9b,0xc0,0x82,0xae,0x49,0x4a,0x51,0x63,0x74,0xf2,0xec,0xfa,0x0d,0xbc,0x3a,0xde,0xf5,0x4b,0x4f,0x08,0x41,0x23,0x88 +.byte 0x14,0x88,0x6a,0x3a,0xf0,0x5f,0x0c,0x45,0x7f,0x65,0x7a,0x67,0xd8,0x17,0xed,0x04,0x47,0x60,0x0e,0x74,0x8f,0xfd,0x48,0xda,0xcd,0xe9,0xfe,0xf5,0x6f,0x43,0xcd,0xa5,0x05,0xa2,0x2e,0x78,0x5b,0xff,0xb8,0x6f,0x2e,0xfd,0x3e,0x4b,0xef,0xcf,0xe0,0x06,0x57,0x28,0xf4,0x2e,0x3b,0xb5,0x9e,0x3c,0xbd,0x63,0xa6,0x78,0x8e,0xd5,0xb8,0x81 +.byte 0x4e,0xf0,0xbf,0x14,0x65,0xc8,0x00,0x9f,0x0e,0x25,0x6a,0x7a,0x63,0x58,0xe4,0xe7,0xa9,0x82,0x16,0xc9,0x86,0x20,0x94,0x71,0x5b,0x9f,0x9b,0xc3,0xc5,0x32,0xb0,0x6c,0x2b,0x8c,0x54,0x67,0x36,0x94,0xb1,0x47,0x33,0xfd,0x9f,0x7c,0x7f,0x7e,0x08,0x51,0x1f,0x7e,0xbf,0x09,0x57,0xf3,0xaa,0x77,0x94,0xf3,0x20,0x1b,0x95,0xf6,0x04,0xb2 +.byte 0x09,0x9d,0xe2,0xbb,0x4d,0xfe,0x6b,0x99,0x06,0x58,0x40,0x84,0x90,0xfa,0x0e,0x9b,0x58,0x6d,0x02,0xbe,0x53,0x73,0xd1,0xc9,0xc7,0x31,0x2a,0x4a,0x12,0x2c,0xb6,0x1c,0xfb,0x49,0xc6,0x1a,0x93,0x33,0x1f,0x29,0x8b,0x94,0xe9,0x20,0xa7,0xe6,0x20,0xe6,0xbf,0xcd,0x5c,0xb6,0x52,0x42,0xf0,0x9c,0x6c,0x21,0x61,0x10,0xe7,0x0e,0x9f,0x33 +.byte 0x5f,0xc8,0xd0,0x20,0xe0,0x3e,0xc5,0x7a,0x10,0xf1,0xe5,0x19,0x52,0xcd,0xe1,0xa8,0x62,0x43,0x20,0x79,0xc3,0xac,0x93,0x27,0x02,0x8e,0x21,0x06,0xb9,0x66,0xd9,0xc8,0x40,0xe0,0xd1,0xf0,0x64,0x81,0xa6,0xc4,0x87,0x85,0x2b,0x92,0x1c,0xd6,0x48,0x85,0xb1,0xbe,0x78,0xf3,0x89,0xa2,0xf0,0xe5,0x39,0xac,0xbf,0x59,0x5d,0xf8,0x4f,0x74 +.byte 0x44,0x85,0x98,0x03,0x81,0x4b,0x7e,0x6f,0x5c,0xa1,0x11,0xd2,0xfd,0x30,0x7f,0xcd,0xd0,0xe2,0xcc,0xd4,0x80,0x16,0x46,0xa6,0x64,0x8b,0x9e,0xfc,0x2a,0x1a,0x65,0x5c,0x90,0x82,0xf9,0x23,0x48,0x11,0xf6,0xf2,0x50,0x3f,0xed,0x44,0xf2,0x9a,0x5a,0xca,0x1c,0x9a,0xd2,0x71,0x1b,0xd6,0x4c,0x51,0xf6,0x89,0x6f,0x65,0xe4,0x97,0x41,0x47 +.byte 0x1b,0x86,0xbd,0x83,0xa0,0xfe,0xac,0x16,0xe8,0xab,0x28,0x96,0x2f,0xa2,0x12,0x5f,0x7c,0xb3,0x18,0x2b,0x05,0x51,0x49,0xba,0xb4,0x1f,0x1e,0xe6,0x8a,0x82,0xca,0x33,0x7d,0xe6,0x8c,0x95,0xba,0x08,0x60,0x47,0x6d,0x79,0xac,0x0f,0xba,0x46,0xff,0xed,0xe0,0x34,0x03,0xfe,0xa7,0x85,0xe5,0x61,0xe3,0xe4,0x6c,0x5c,0x1b,0x9d,0x8a,0x54 +.byte 0x17,0xaf,0x08,0x4c,0x44,0x7f,0xb7,0xb0,0x6a,0x3a,0xff,0xb7,0xf6,0x10,0xc4,0x8f,0x31,0xd6,0x1a,0x25,0x27,0x35,0xca,0x87,0xa9,0x61,0x0b,0x35,0x96,0x89,0x0f,0x1a,0xbd,0x1e,0xf6,0xee,0xaa,0x95,0x16,0xe4,0x38,0x7b,0xb2,0xbe,0xea,0xc9,0x5a,0xcd,0x3b,0xb8,0x9e,0xd7,0x20,0xcd,0x3f,0x90,0xaa,0x8b,0x2a,0x42,0xed,0xab,0xc1,0x53 +.byte 0x83,0xc7,0xb8,0x3f,0xa1,0xb9,0xf4,0xf4,0xb0,0xe0,0x1f,0xb0,0xeb,0xa9,0x81,0x9f,0x31,0x67,0x1e,0x6c,0x96,0x9f,0x09,0xea,0x04,0xfe,0x37,0x22,0x87,0x60,0xb9,0x91,0x8f,0xa9,0x11,0xa3,0x68,0x5e,0x29,0x21,0x41,0xa3,0x02,0x08,0x82,0xd0,0x2b,0x66,0x6d,0x3c,0x46,0xc7,0x23,0x09,0x86,0x7f,0x53,0x11,0x3e,0x83,0x52,0x0a,0x4a,0xe4 +.byte 0x93,0xc6,0xc1,0x96,0x17,0x94,0x51,0x17,0x69,0xea,0x72,0xb8,0x85,0xde,0x7e,0x13,0x4a,0x08,0x26,0xae,0x31,0x19,0x0f,0x6f,0x48,0xa1,0xf2,0x57,0xa2,0x01,0x8e,0x84,0xee,0x63,0x23,0xc0,0x97,0x84,0xa2,0xf5,0x3f,0xeb,0x30,0x9e,0xdd,0xd2,0x43,0x24,0xa2,0x57,0xb7,0x57,0x86,0x26,0xa3,0xe6,0x6e,0xf2,0xcd,0xfb,0x7b,0x34,0x74,0x53 +.byte 0x07,0x95,0x51,0xb7,0xfd,0xf3,0xd1,0x83,0xbd,0x25,0xd6,0x2c,0x69,0x73,0x02,0x8e,0x76,0x19,0xea,0xb0,0x83,0x60,0x8c,0x53,0x9d,0x77,0x86,0x1e,0x65,0xc7,0x57,0x31,0x29,0xd9,0xa9,0x3a,0xb2,0x0d,0xd8,0xf4,0xf9,0x48,0x49,0xfb,0x3c,0x40,0x3d,0x1b,0xc4,0x8b,0x94,0x0e,0x50,0x7f,0xd5,0x39,0x5e,0x57,0x86,0xd1,0xba,0x0c,0x38,0x10 +.byte 0x01,0x5f,0x44,0xf3,0xe5,0xb0,0xf8,0xae,0x17,0xdf,0xd2,0xb3,0x10,0xc5,0x3b,0xfd,0xd9,0x68,0x90,0x9c,0x6c,0x26,0xdf,0x12,0x50,0xfa,0xbf,0x8b,0xce,0x68,0x80,0x8c,0x04,0x60,0xbf,0x34,0x81,0xbd,0x29,0xa3,0xa2,0xe4,0xe0,0x2d,0x25,0xb2,0xff,0x9f,0xd1,0x20,0x07,0xd5,0x8c,0x19,0xfa,0x3f,0x47,0xec,0xc1,0x8d,0xc9,0x36,0xf8,0x51 +.byte 0x4c,0xaa,0x40,0xe3,0x6a,0x21,0xd5,0xe6,0xa6,0xcf,0x8c,0xd9,0x10,0x47,0x66,0xfd,0x32,0x48,0x36,0x8f,0x14,0xed,0x09,0x80,0x50,0x27,0xaa,0xd5,0x1f,0x69,0xb8,0xe4,0x96,0x27,0x56,0x78,0xd6,0xd5,0x2d,0xf0,0x4f,0x14,0x30,0x17,0x9e,0x5b,0x69,0x8c,0x7c,0x1c,0x97,0x38,0x65,0x77,0x75,0x49,0xac,0x4b,0x06,0xda,0x74,0x11,0x86,0xbc +.byte 0xad,0x01,0xf2,0x03,0x29,0x5d,0xa7,0x74,0xd3,0x44,0xae,0x1d,0xbf,0xf9,0xc5,0x5b,0x83,0x8c,0xd6,0x84,0x8a,0x8e,0xe9,0xa6,0x08,0xf4,0x88,0x13,0xcb,0x16,0x45,0x13,0x9c,0xc7,0x75,0xa9,0xa7,0x55,0x04,0x91,0xd6,0xe9,0xd4,0xe5,0x65,0xa0,0x3a,0x53,0xa0,0xfc,0x62,0xce,0x91,0x01,0xb4,0x06,0x8b,0x10,0x79,0x6f,0x2c,0xd6,0x0a,0xa2 +.byte 0x31,0x8f,0x75,0x32,0x0e,0xfa,0x0d,0xec,0xfd,0x71,0x7f,0x74,0x97,0x30,0xe9,0xee,0x9f,0x04,0x21,0xb5,0xc9,0xd1,0x52,0x2a,0x0f,0x18,0xbe,0x3e,0xbb,0x98,0xaf,0x59,0x9b,0x85,0x79,0x5e,0x52,0x93,0x1c,0x42,0x67,0x67,0x6b,0xd5,0x41,0xaf,0xba,0x09,0x3a,0xb4,0x0e,0x97,0x22,0xe6,0xbb,0xe1,0x27,0xa1,0xf9,0xf0,0xcd,0xa2,0x3d,0xdb +.byte 0x81,0x2f,0x65,0x90,0xb7,0xe5,0xe5,0xce,0x1d,0x3b,0xfe,0x34,0x57,0xcd,0x3a,0xbd,0x19,0x59,0x23,0x12,0xf1,0xb6,0xf2,0xf7,0xc1,0xf5,0x1d,0x0b,0x46,0x8f,0x16,0x6a,0x81,0xfe,0xc1,0x97,0x8d,0x69,0x55,0x60,0xdd,0xf0,0x61,0xe9,0x22,0x30,0x72,0x1a,0x24,0x30,0xd7,0xbc,0x1c,0xfa,0x02,0x55,0xfc,0xb9,0x4b,0x0a,0xe4,0x90,0x90,0x3a +.byte 0xe3,0xce,0xd4,0xa0,0x7d,0x21,0x5a,0xf7,0x79,0x6e,0x03,0x4f,0x4e,0x93,0xad,0xc4,0x8e,0x9d,0x9f,0x8a,0x39,0x59,0x20,0xc1,0x5d,0x6a,0x4d,0x8f,0x69,0x78,0xea,0xba,0xde,0xc0,0x87,0xb2,0xf2,0x20,0xd6,0x7a,0x9c,0xf9,0x09,0x03,0x2a,0x4d,0xb9,0x10,0xfc,0xe5,0x05,0x90,0xed,0x45,0x4f,0x5f,0x7c,0x5d,0xfa,0xe6,0x0d,0x07,0xae,0xcc +.byte 0x21,0xc8,0x1c,0x7a,0xfb,0x1d,0xb9,0xe3,0x69,0xa1,0xb7,0x5f,0xb5,0x6a,0xb9,0x58,0x9d,0xcd,0x99,0xf8,0x38,0xbb,0xa0,0xfe,0xf8,0x41,0x51,0x72,0xce,0x76,0x89,0x59,0xa2,0xab,0xef,0xea,0xab,0x79,0xbc,0xda,0x73,0xdb,0x18,0xda,0x60,0x1b,0xc4,0xb7,0x4f,0xb3,0x86,0x21,0x2a,0xc3,0xec,0x7f,0x0e,0x89,0x16,0x0e,0xd2,0xbd,0xea,0x0e +.byte 0xcf,0xc1,0x4b,0x2c,0x97,0x69,0xce,0xd3,0x94,0xad,0x81,0xe9,0x70,0xf4,0xf8,0xe5,0x77,0xe6,0x92,0xe0,0x23,0x38,0xd3,0xc1,0xdd,0x2e,0x58,0x77,0xc5,0xc3,0x29,0x34,0x66,0x48,0xf9,0x75,0x3c,0x8a,0x6a,0xb8,0xbf,0xf8,0xba,0xf0,0xb9,0xa1,0x81,0x0b,0xa1,0xaa,0x17,0x34,0x1a,0xbb,0xa3,0xa2,0xba,0x21,0x45,0xc0,0x1d,0x57,0x11,0x4d +.byte 0x9b,0xd4,0x64,0x84,0xd7,0x0b,0xd6,0xfb,0x72,0x2c,0xdb,0xc3,0xe6,0x24,0xa9,0xf3,0x30,0x9f,0x21,0x05,0x1e,0xcc,0x48,0x58,0xed,0xfd,0xb2,0x34,0xe3,0xf7,0x7e,0x56,0xee,0xdf,0xa4,0xbb,0xb1,0xcc,0x7f,0x81,0x40,0xe9,0xdf,0x3f,0x82,0xc4,0x0d,0x14,0x9b,0x3b,0x80,0x15,0x24,0x6e,0xa4,0xce,0xfa,0x28,0xa7,0x7f,0x89,0xfb,0xc6,0x83 +.byte 0xe8,0x2a,0x70,0xfb,0x9c,0x75,0xb8,0xfd,0xec,0xbc,0xbb,0xf5,0xef,0x0a,0xa5,0x77,0x0b,0x38,0xa0,0x63,0xa5,0x71,0x12,0xc9,0xaa,0xc3,0xf9,0x72,0x30,0x45,0x4e,0x19,0x44,0x2d,0x09,0xf4,0xf1,0xa8,0xe8,0xde,0x58,0x87,0x70,0xa8,0x91,0x86,0xef,0x5d,0x02,0x90,0x55,0x63,0x99,0xde,0xd7,0xb7,0x5f,0x07,0x01,0xdf,0xb1,0xe5,0x55,0xf5 +.byte 0x87,0x69,0xd2,0x7a,0x71,0xbc,0x0e,0x4b,0x8b,0x98,0xf7,0xf6,0x0a,0x01,0xbb,0x9f,0x1b,0x15,0xb6,0x76,0xe0,0xc0,0x4b,0x5d,0x08,0xba,0xba,0x73,0x3f,0x36,0x5a,0x29,0xd7,0x7c,0xc2,0x87,0x03,0x75,0xff,0x26,0x21,0xae,0xbe,0x66,0x70,0xa2,0x99,0x11,0x35,0x49,0x78,0x7b,0x3a,0xfe,0x94,0xf7,0x37,0xe0,0x69,0x56,0x39,0xf7,0x3f,0x71 +.byte 0x39,0x74,0x75,0x32,0x1f,0xfb,0x3a,0x87,0x07,0xab,0xf1,0xed,0xe3,0xe2,0xbf,0x3f,0xb1,0x73,0x11,0xc9,0x34,0x4b,0xb1,0x1e,0x62,0x4e,0xc1,0x8a,0xae,0xcc,0xc7,0xb3,0xa7,0x70,0x01,0x73,0xad,0xb3,0xc3,0x59,0x70,0x14,0x31,0x94,0x9f,0x6b,0x18,0x11,0x50,0x52,0xc9,0xf0,0xf8,0x12,0x9d,0x7c,0x90,0x64,0x9d,0xd9,0x41,0xa6,0x45,0xe3 +.byte 0xc9,0x25,0x73,0xe7,0x48,0x9d,0xdc,0xe0,0x2c,0x71,0xd3,0x68,0xc5,0xab,0xac,0xe3,0x16,0x95,0xe3,0xa5,0xae,0x2f,0x57,0x60,0x4b,0x11,0x90,0xaa,0xe7,0x48,0xca,0xc7,0xde,0x2e,0x56,0x10,0x8e,0xc3,0x0a,0x7d,0x66,0xf1,0xc3,0xf7,0x2d,0xdd,0xfa,0x5e,0xb2,0xcb,0x99,0x4d,0xaa,0x4e,0x91,0xc1,0x94,0x60,0x27,0x33,0x82,0xa6,0x2a,0xba +.byte 0x05,0x32,0x33,0x0a,0x30,0x47,0xb0,0xac,0x68,0x7d,0xef,0x25,0x09,0xcf,0x51,0xf4,0x06,0x28,0x14,0xb2,0xb4,0x1f,0xaf,0x37,0xdc,0x70,0x88,0x4d,0xb9,0xfc,0x2d,0x61,0x25,0x13,0x1f,0x32,0x48,0x6d,0xeb,0x46,0x05,0x66,0x44,0xa1,0xec,0xce,0xe9,0x51,0xa9,0xba,0xf8,0xde,0x95,0x1b,0x20,0xe1,0x21,0x75,0x4b,0x25,0x7f,0x3c,0x16,0xf7 +.byte 0xe2,0xbe,0xeb,0xca,0x2b,0x77,0x92,0x16,0x32,0xe2,0x74,0x21,0x52,0x3f,0x08,0xba,0x41,0xb0,0xd3,0xd2,0xf7,0xf3,0x29,0xb6,0x10,0xfa,0xa5,0x29,0x35,0x29,0x21,0x0d,0xec,0xba,0x5a,0xf3,0x63,0x0f,0x9d,0xbc,0x42,0x02,0x46,0xe9,0x07,0x4a,0x9a,0xe8,0xd3,0x78,0x92,0xa2,0xe5,0x03,0xec,0xd4,0xe2,0xc8,0x8f,0x92,0x4a,0xae,0xbc,0xd7 +.byte 0xdf,0x4b,0x07,0x22,0x47,0xbd,0xb4,0xb5,0xa0,0x7e,0xfb,0x21,0x40,0x62,0xb1,0x6c,0x07,0x00,0x64,0xf6,0xb2,0x75,0x5c,0x29,0x84,0xff,0x38,0x0c,0xc8,0x08,0x38,0x92,0xf9,0xad,0xd7,0xcc,0xc3,0x1c,0x03,0x80,0x49,0x39,0x1c,0xdb,0xae,0x60,0x87,0x8a,0x5c,0xe9,0x17,0xbd,0x2b,0x0f,0xa5,0xa1,0xf9,0x0d,0x4b,0x8c,0x4d,0x39,0xda,0x15 +.byte 0x8c,0xc4,0x69,0xaf,0x2b,0xb0,0xa1,0xfd,0xd9,0x65,0x3c,0x87,0x4b,0xf2,0x5a,0xd7,0xd8,0xb9,0xef,0x78,0x67,0x30,0x4c,0x6c,0x92,0xc5,0x1e,0x15,0xf8,0xd9,0x74,0x1b,0x54,0x0c,0x10,0x1b,0xb5,0x11,0x13,0xd6,0xb4,0xc0,0x53,0x03,0x2c,0x4b,0xee,0xac,0xf9,0x87,0x17,0x51,0x35,0xb8,0x1a,0xdc,0x16,0x61,0x5b,0xe9,0x5a,0x43,0x94,0x42 +.byte 0x8f,0x68,0xbd,0xb6,0x52,0x00,0x63,0xa3,0x52,0x6e,0x5d,0x8e,0xe9,0x4f,0xf5,0x69,0xd8,0x4f,0xf5,0x5c,0x89,0x7e,0x1c,0xb9,0xdc,0x7b,0x92,0x8a,0x2b,0xfc,0xb8,0xad,0xbb,0xff,0x61,0x2e,0xc0,0xdc,0xfb,0x2f,0x78,0x2a,0x50,0x32,0x9b,0x4c,0xfd,0x9e,0xab,0x80,0x5c,0x7d,0xc8,0x6b,0xb3,0x2d,0x0a,0xfe,0x43,0xa2,0x10,0x10,0x79,0xbc +.byte 0x8c,0xa0,0x86,0x09,0x8c,0x8b,0x28,0xf3,0x8a,0xc9,0xeb,0xcb,0xb5,0x0e,0x56,0x19,0xae,0xe0,0xa1,0x22,0x72,0xc5,0xad,0x01,0x12,0x69,0xb6,0x52,0xb8,0xdd,0x36,0x25,0x21,0xae,0x73,0x06,0xc1,0xe0,0x23,0x20,0xe1,0x8e,0xe4,0x99,0xcd,0x86,0xca,0xf5,0x93,0x0e,0x6b,0xb8,0xba,0x18,0x4a,0x36,0xed,0xd0,0x37,0xc8,0xc7,0x8a,0xb2,0x63 +.byte 0x2e,0xa4,0x22,0x76,0x6f,0xf7,0xdd,0x81,0xd6,0x6f,0xcd,0xb9,0x65,0xf0,0x95,0x77,0xae,0xca,0x54,0x62,0xce,0x5d,0x47,0x9e,0x10,0x89,0xb9,0xfa,0x72,0x0a,0xef,0x24,0x17,0x45,0xb0,0xb0,0xc7,0x51,0x85,0xa1,0xb1,0x6a,0xd2,0xea,0x48,0xe2,0x6a,0x03,0x2a,0xdf,0xa8,0x0e,0x62,0xa2,0x1e,0xe2,0xa7,0x20,0x57,0xbd,0x73,0xeb,0xef,0x86 +.byte 0xc9,0xd4,0xfa,0x96,0xfe,0xfa,0xb3,0xc6,0xbf,0x7a,0x16,0xa2,0x43,0x73,0x56,0x71,0x78,0x32,0x3b,0xc1,0xd8,0x26,0xbf,0xde,0x39,0x5d,0xbd,0x3b,0xff,0xd7,0x4f,0xa0,0x67,0xa6,0x09,0x9a,0x81,0xfd,0xec,0x34,0x73,0xcd,0x90,0x15,0x8b,0x3e,0x2d,0x6f,0x7d,0xcc,0xf5,0x20,0x15,0x07,0xa8,0x2f,0xa5,0x5b,0x2b,0x4f,0xb8,0x2f,0x14,0x6c +.byte 0x52,0x78,0xbd,0x92,0x98,0xda,0x69,0x19,0x58,0x4c,0x76,0xe4,0x20,0xb2,0x48,0xa4,0x9f,0x2f,0x4c,0x9b,0x45,0x7f,0x7d,0x1c,0x46,0xe9,0x1e,0x43,0x26,0x49,0x39,0xb6,0x42,0x3a,0x4c,0x59,0x95,0x6b,0x28,0xd5,0xbe,0xa7,0x2e,0xd0,0x0c,0x00,0xa0,0x67,0x06,0x4e,0xee,0xae,0x7f,0xc2,0xb5,0x12,0x46,0x3f,0xb4,0x35,0x16,0x2a,0xda,0xbf +.byte 0x41,0x34,0xbe,0x30,0x2a,0x0f,0x7b,0x60,0xa6,0x8b,0xcd,0xae,0x7a,0x8c,0xd6,0x97,0xab,0x06,0x1e,0x14,0x87,0x45,0xa3,0x3c,0x9c,0xc4,0xa0,0x1d,0xee,0xf0,0xca,0xb8,0xa6,0x8d,0x37,0x92,0xad,0xbc,0xe6,0x1f,0x65,0x75,0xd3,0xbc,0x72,0x66,0xe2,0xff,0xbc,0x19,0x93,0xae,0xee,0xd0,0x63,0x6d,0x97,0x6f,0x57,0xf3,0x77,0xcd,0xe3,0x57 +.byte 0x3f,0x00,0xc8,0xe1,0x63,0x83,0x15,0x84,0xc6,0x08,0xdb,0x03,0xc9,0x27,0x47,0x4c,0x17,0x12,0x40,0x6e,0xac,0x74,0x6f,0x3c,0x22,0x57,0x36,0x29,0xbb,0x6a,0xc7,0x5a,0xfe,0x60,0x1c,0x0f,0x32,0x95,0x1b,0xf2,0x3c,0xed,0x04,0x87,0x4c,0x48,0xc7,0x63,0x79,0x24,0xb3,0x12,0xbf,0x55,0x3b,0x32,0xbf,0x52,0x4e,0x1e,0xc1,0x1f,0xf2,0xfd +.byte 0xe6,0xb8,0x56,0x38,0x0e,0xd2,0x75,0x3d,0x41,0x99,0x0c,0x7a,0x12,0x3f,0xa7,0x3a,0x79,0xa0,0xd7,0x6f,0x47,0x97,0x7e,0x9e,0xf6,0xfe,0x29,0xc0,0x16,0x34,0x38,0x80,0x2f,0xde,0x65,0x79,0xc9,0xfd,0xa0,0x84,0xc3,0x39,0xbc,0x0b,0xbe,0x18,0xba,0x0d,0xe3,0x35,0x11,0xba,0x9f,0xde,0x5d,0x0c,0xae,0x8e,0x0c,0x0f,0x66,0x9c,0xe6,0xfc +.byte 0x3d,0xdb,0x46,0xf1,0x84,0x57,0x62,0xb0,0x00,0xd4,0x8c,0xaa,0x93,0xeb,0xf7,0xa7,0x8e,0x82,0xba,0x89,0x67,0xbb,0x38,0xb0,0xb6,0x13,0x0c,0x96,0x22,0x9c,0x6a,0x86,0xea,0x83,0xad,0x5f,0x7b,0x3a,0x28,0xd8,0x53,0x90,0x2d,0xab,0xc9,0xbe,0x99,0xfb,0x68,0x42,0x27,0xf6,0xe3,0x5a,0xaf,0xf3,0xd6,0xee,0xb6,0xa2,0xe0,0x32,0x3c,0x1d +.byte 0xd4,0x3c,0x2b,0x58,0xc2,0x4f,0x3d,0x20,0x39,0xdb,0x80,0x89,0x20,0x20,0x7b,0xe6,0x1d,0xd0,0xa2,0x1a,0xd4,0x88,0xc9,0xe0,0xb9,0xf6,0xb2,0xa1,0xcd,0xf2,0x67,0x60,0x44,0xd8,0xce,0x6a,0xe2,0x52,0xc3,0xf3,0x61,0xa3,0x14,0x58,0xd6,0xe5,0x43,0x4a,0x8d,0xcc,0x4f,0xf8,0x17,0xdd,0xd2,0x5d,0xd5,0x5a,0x86,0x8e,0xc4,0x74,0xdc,0x1b +.byte 0xad,0xca,0x63,0x75,0xf0,0x43,0x41,0x16,0x02,0x49,0x6a,0x3a,0xe3,0xb9,0xa9,0xdc,0xfb,0x99,0xbc,0x60,0x0d,0xdb,0xa0,0xcf,0x27,0xaa,0xd5,0xc5,0x42,0x0b,0x02,0x00,0x43,0xaf,0xb5,0x4f,0xe1,0x88,0xa1,0x9d,0xca,0xfb,0x9f,0x1f,0x08,0x9c,0x66,0x23,0xca,0x4b,0x88,0xb4,0x40,0xdc,0xd3,0xd3,0x1a,0x64,0xe3,0x9b,0x43,0xea,0x20,0x90 +.byte 0x30,0x2e,0xc4,0x75,0xc5,0x52,0xc5,0x7c,0x0e,0x35,0x56,0xf5,0x1f,0x50,0x2b,0xf6,0x28,0x93,0x6f,0xde,0x10,0xc6,0x49,0x2b,0x77,0xb1,0x6d,0xce,0xfd,0x37,0xd4,0x8d,0x11,0xed,0x88,0x1e,0xca,0x68,0x0c,0x4e,0x38,0x7f,0x0f,0xab,0x6f,0x8d,0x1c,0x7d,0xd4,0x7d,0xd8,0xa9,0x5c,0x24,0x5a,0x7d,0xf4,0x5b,0xb6,0xb7,0x28,0xc7,0x93,0xd6 +.byte 0xa9,0xe5,0xac,0x62,0x16,0x9c,0x4e,0x5c,0x24,0xa0,0x2a,0x76,0xce,0x7d,0x5c,0x4b,0xbe,0xbc,0x83,0x5c,0x9a,0xc8,0x06,0x7b,0x1e,0xac,0x98,0x67,0x17,0x32,0x94,0xda,0xd1,0x8b,0x58,0xad,0x8e,0x26,0x03,0x81,0x7c,0x48,0xd1,0x83,0x03,0xba,0x6c,0x51,0xe9,0x25,0x82,0xd2,0xb9,0x7f,0xd8,0x33,0x3f,0x77,0x29,0x45,0x41,0xa9,0x17,0x3d +.byte 0x62,0xc6,0xd2,0xfb,0xd1,0x24,0xc7,0xee,0x10,0xc0,0x64,0xc3,0x46,0xc6,0x2b,0xe8,0x9c,0xc8,0x99,0x23,0x77,0xa9,0xb5,0x12,0xc4,0x53,0xde,0xbc,0x20,0xb2,0xc4,0x12,0xdb,0xc2,0x0b,0x63,0x70,0x6a,0x41,0x31,0x65,0x48,0xa0,0xfc,0xbc,0xd6,0x3f,0x55,0x18,0x17,0x65,0x35,0x58,0xe3,0x33,0xac,0xaf,0xca,0xb2,0x51,0xc1,0xcc,0x60,0x38 +.byte 0x94,0x8f,0x13,0xb8,0xcc,0x8c,0xc4,0x12,0xea,0xd5,0x39,0xd3,0x46,0x55,0x17,0x27,0x7a,0x07,0x01,0x02,0x74,0xa6,0xe7,0xc8,0xa7,0xd0,0x76,0xc8,0x5e,0x57,0x50,0xc5,0x19,0xf1,0x95,0xa3,0x52,0x10,0xa3,0x1e,0xcd,0xb1,0x05,0x64,0xe5,0x69,0xd9,0x5e,0xfc,0x71,0xef,0xe1,0xf6,0xb3,0xa7,0xf7,0xf9,0x71,0xfd,0xbb,0x5b,0x2b,0x7a,0xd2 +.byte 0x72,0x7c,0xc7,0x73,0x89,0xf7,0xe2,0x0b,0xcd,0x05,0x4f,0x0c,0x10,0xed,0xcc,0xda,0xb6,0x81,0x19,0xe6,0x2b,0x06,0x66,0xef,0xc5,0xfd,0xd5,0xc6,0x66,0x20,0x86,0x2a,0x4f,0x05,0x49,0xf1,0x54,0x4a,0x6e,0x1d,0xcd,0xad,0x18,0xeb,0x6c,0x58,0xd6,0x75,0x3e,0x62,0x48,0xab,0xea,0x1f,0x7f,0x05,0x45,0x6e,0x75,0x2a,0x5e,0x97,0x5b,0xde +.byte 0x5a,0x99,0x42,0xc1,0x62,0xab,0xc7,0x01,0x4d,0xac,0xd6,0xdc,0xc9,0x71,0x24,0xd1,0x33,0xe2,0x4b,0x1f,0x09,0x04,0x1f,0x0d,0x42,0x45,0xcf,0x7c,0xa0,0xee,0x48,0xfd,0x8b,0x1f,0xaa,0x50,0x48,0x6d,0x8e,0x34,0x76,0x09,0x23,0x8a,0x40,0x0d,0x5d,0xc1,0x2a,0xba,0x5f,0x9c,0x86,0xfb,0x37,0xdf,0x24,0xff,0x27,0x88,0xbf,0xf6,0xa4,0xc3 +.byte 0xf0,0xd3,0x02,0xa8,0x7c,0x6d,0xc4,0xc5,0x14,0xc3,0x64,0x28,0xa8,0x05,0x33,0xc2,0xda,0x12,0xfc,0xbe,0x0d,0x8e,0xf4,0xf5,0x48,0x5a,0x8e,0x8a,0xd2,0x50,0x7c,0xc0,0xbc,0xde,0xdb,0x9a,0xf6,0xa0,0x92,0x8d,0x19,0xbc,0x5a,0xdc,0xbf,0xfb,0x13,0x8f,0x41,0x09,0xba,0xd9,0x0b,0x91,0x7a,0xdb,0x92,0x10,0xac,0xf2,0xb5,0x76,0xb5,0x7d +.byte 0x80,0x04,0xd6,0xec,0x98,0x09,0x5f,0x63,0x0d,0x58,0x00,0x8a,0x07,0x76,0xfa,0xe6,0x6e,0xdf,0xbf,0x73,0xe5,0xc9,0xe5,0x12,0x44,0x58,0xf9,0x2e,0xb1,0xe6,0x2c,0xf5,0x0d,0x94,0xa9,0x51,0x0d,0x01,0x03,0xab,0x79,0xf9,0xee,0x7e,0x10,0x4b,0xcb,0x20,0xbb,0x01,0x19,0xd6,0x12,0xd1,0xac,0x96,0xe9,0x0e,0xde,0xbf,0x7e,0x80,0xf6,0x58 +.byte 0xc9,0xec,0xaf,0xf7,0x2d,0x98,0xbc,0x2b,0xb1,0xf1,0x34,0x94,0x39,0x8e,0xbc,0x13,0x13,0x41,0x8f,0xf3,0x4e,0x4e,0x6b,0x2a,0xaa,0xea,0x70,0x5c,0xf8,0x42,0xf7,0xbc,0xfd,0xbd,0x6f,0x62,0x1b,0xcb,0xb9,0x39,0xdc,0x6a,0x47,0x81,0xaf,0xff,0x5b,0x7e,0x80,0xb9,0xbf,0xfa,0x15,0x7e,0xd1,0xc3,0xb2,0x80,0x99,0xbd,0xb9,0x30,0x8d,0xb5 +.byte 0x43,0x6b,0x7a,0x31,0xaf,0x45,0xf7,0xdd,0x21,0x8f,0x54,0xb1,0xf6,0x2d,0x7d,0x96,0x63,0x4a,0x93,0x98,0x37,0x7f,0x48,0x02,0x4b,0x0f,0x71,0xe4,0x70,0xce,0x66,0x6a,0x36,0xde,0x58,0x84,0x69,0xd6,0xbd,0x1a,0x9a,0x8b,0xc5,0xda,0x97,0xc5,0xe1,0x4e,0xec,0x9b,0x7a,0x65,0xe0,0xa5,0xdd,0x39,0x3c,0x9f,0xfd,0x45,0x17,0x4c,0x2f,0xb4 +.byte 0xb1,0xb1,0x42,0xe8,0x88,0x75,0x9f,0xb4,0xc1,0xdf,0x44,0xf9,0x4f,0x9a,0xf7,0x3d,0x35,0xc5,0x32,0xbe,0x43,0xd0,0x0d,0x71,0x4e,0x21,0xbf,0x31,0x99,0x73,0x5a,0x84,0x45,0x2e,0x00,0x8b,0x42,0x2b,0x14,0x86,0x51,0xcb,0xa0,0x98,0xa9,0x68,0x8d,0xdb,0x58,0x3d,0x73,0x9d,0xf9,0x2d,0x86,0x76,0x62,0xcb,0x93,0x29,0x48,0x92,0x38,0xfb +.byte 0xeb,0x1d,0xda,0xc3,0x10,0x1f,0x32,0x68,0xee,0xcb,0xb7,0x8a,0xcb,0xcb,0xe0,0x37,0x31,0xe8,0xad,0x7b,0x4a,0x29,0x2c,0x10,0x9e,0xdf,0x86,0xeb,0x13,0x0c,0xab,0xa4,0x30,0x36,0xf0,0xe0,0xac,0x14,0x41,0xa4,0xf4,0xf8,0x44,0x95,0xe8,0x8f,0x28,0xc2,0x35,0x0a,0x44,0x61,0xc7,0x60,0xc5,0x3b,0xc4,0x1d,0x67,0xfd,0xac,0x0b,0x2e,0x49 +.byte 0x62,0xea,0x17,0x3c,0xf5,0x4b,0xbe,0xba,0xba,0x42,0x02,0x0d,0x13,0xf1,0x15,0xff,0x2e,0x47,0x46,0xd1,0x27,0x64,0xb7,0x35,0x28,0x31,0xb5,0xde,0x1e,0xf9,0x26,0x6c,0x04,0x3c,0x0e,0x06,0x9d,0x4d,0xc7,0x1c,0x97,0x67,0x2c,0x6d,0x36,0x0d,0x4c,0x61,0x08,0xe9,0xbd,0x04,0x1d,0x8d,0xfb,0x0c,0x03,0x3d,0xb4,0x40,0xd5,0x1b,0x69,0x3b +.byte 0x68,0xcf,0x46,0x27,0xcf,0xb3,0xda,0x1e,0xdc,0x85,0x6f,0x4f,0x6b,0x09,0x9d,0xe9,0x6c,0x73,0x40,0x27,0xc9,0x8b,0x12,0x97,0xea,0x34,0xd7,0x51,0x32,0x90,0x4e,0xd7,0x91,0x41,0x3a,0xee,0xbc,0x97,0xb0,0x4a,0x39,0xdb,0xe3,0xe5,0x12,0x73,0xbf,0x5d,0x68,0xe0,0xc6,0x7c,0x6f,0x0d,0x14,0x1c,0xaa,0xde,0x29,0xb7,0xc7,0xa5,0x90,0x62 +.byte 0xe9,0xc5,0x75,0x16,0xe6,0xc0,0x9d,0xc5,0xb8,0xd6,0xfa,0xb0,0x72,0xb7,0x27,0xa6,0xa8,0x3f,0xbf,0x18,0x8b,0xaa,0x94,0xb3,0x47,0x50,0x2f,0x1c,0x49,0xab,0x46,0x38,0x7f,0x3e,0xf3,0xf1,0xb8,0xb3,0x44,0xaa,0x1f,0x76,0xb4,0x67,0xff,0xcf,0x7c,0x4b,0xa9,0xe1,0x62,0x93,0x4d,0x3e,0x96,0xdb,0x56,0xf6,0x26,0x5d,0x95,0x4c,0xfa,0x5f +.byte 0x06,0x2b,0x5c,0x33,0x2d,0xf8,0xfa,0x68,0x8a,0xed,0x28,0x2a,0x6e,0x95,0x86,0x59,0x71,0xef,0x86,0x47,0x60,0xec,0x35,0x79,0xa9,0x98,0x2d,0x6e,0x20,0x26,0x3a,0x21,0xec,0x59,0x15,0x65,0xcd,0xb9,0x91,0x19,0x6e,0x74,0x89,0x3b,0x10,0x00,0xab,0x8a,0x45,0x23,0x20,0x94,0x03,0x02,0x77,0xb7,0xcf,0x9c,0x71,0x18,0x0c,0x5b,0x40,0x62 +.byte 0x3b,0x8f,0xc9,0xf6,0x4c,0x8f,0x60,0x66,0x05,0x87,0x05,0x90,0xd4,0x08,0x76,0xd7,0xa3,0xb6,0x37,0xa8,0x83,0x05,0xb2,0x48,0xe9,0x24,0xc4,0xfb,0x79,0xa1,0xce,0xac,0x29,0x13,0x4e,0x72,0xdf,0xad,0x9e,0x5b,0xcd,0x9c,0x39,0x1d,0x3e,0x57,0x9d,0xf2,0x96,0x13,0xa4,0x79,0x4c,0x76,0x40,0x03,0xb3,0x18,0xcf,0xd7,0x45,0x2a,0x2d,0x07 +.byte 0xe5,0x2e,0xb7,0x74,0xda,0x94,0xea,0x32,0x74,0xb0,0xca,0xf4,0xd1,0x09,0x97,0x3c,0x69,0x17,0xf6,0x5b,0x13,0x7b,0xb8,0xb1,0xd9,0x0e,0x12,0x44,0x29,0xea,0x26,0xd8,0xaa,0x9d,0x26,0x87,0x0c,0x89,0x4e,0xec,0x29,0x48,0x43,0x66,0x21,0x0b,0xab,0xce,0x40,0x57,0x4c,0xa7,0xdd,0x56,0xde,0xac,0x5c,0x62,0xea,0xc4,0x54,0x4a,0xe0,0x8d +.byte 0x54,0xc8,0x65,0x44,0xcc,0x6f,0x2a,0xcd,0x0e,0xb3,0xad,0xa3,0x30,0xd1,0xb7,0x19,0x70,0x51,0xd3,0x9a,0xcf,0xe5,0x42,0x6c,0xa1,0xc1,0x0f,0xe2,0xda,0x86,0xb4,0x51,0x50,0x62,0xdc,0x51,0x3f,0xd2,0xff,0xde,0x7f,0x38,0x5a,0xff,0x2d,0x21,0x1d,0x59,0xb9,0xdd,0xde,0x83,0x13,0xb0,0x25,0xf5,0xbb,0x11,0x47,0x4a,0xaf,0x81,0x15,0xa0 +.byte 0x39,0x5b,0x30,0x17,0x2b,0xbf,0x5a,0x03,0x60,0xb6,0xbb,0x86,0x9f,0x50,0x45,0x15,0x0b,0xba,0x42,0xf4,0x3d,0x05,0x62,0xcd,0x9b,0x8c,0xcf,0x93,0x5c,0x33,0x6c,0xea,0x4b,0xd0,0x1d,0x91,0x3e,0xbf,0xa4,0x9d,0x7c,0x2c,0x87,0x9c,0x42,0x9f,0x03,0x98,0x03,0x1b,0x98,0x66,0x4f,0x8f,0x29,0x12,0xc5,0xb5,0xec,0x81,0xf8,0xb2,0x5e,0x44 +.byte 0x4f,0xb0,0x31,0xe4,0x2a,0x73,0x83,0xac,0x5a,0x3f,0xfa,0xcf,0x8b,0x7c,0xa3,0xf1,0x01,0x14,0xa1,0xca,0x60,0x8d,0x6a,0x6c,0x04,0x31,0xcc,0xba,0x12,0xe0,0x4e,0xaf,0x01,0x8d,0xf5,0x60,0x23,0x79,0x8a,0x80,0xcc,0x32,0x31,0x69,0x83,0xb6,0x83,0xaa,0xd9,0x3b,0x86,0x4a,0xd8,0x10,0x28,0x09,0x82,0x36,0xee,0x6a,0xc0,0x80,0x3f,0xfd +.byte 0xb1,0xd2,0xde,0x34,0xf9,0x4c,0x87,0x5b,0xdd,0xd0,0xb6,0x2d,0x99,0x69,0xd3,0x2c,0xb7,0x0b,0xfc,0x16,0x88,0x7b,0x80,0x21,0xbc,0x30,0x7b,0x56,0xe5,0x7b,0x41,0x43,0x4d,0xaf,0x40,0x5e,0x74,0x14,0x17,0x66,0x32,0xd6,0x81,0x53,0x94,0x35,0xf0,0x0f,0x4f,0x99,0x54,0x9a,0x38,0xc0,0x2a,0xa9,0xd3,0x53,0xdd,0x9a,0xc5,0x29,0x18,0x62 +.byte 0xf6,0x93,0xa3,0x02,0xf0,0x13,0xcb,0xcb,0xcc,0x64,0x0b,0x00,0xf4,0x43,0x03,0x26,0xe6,0x2f,0x39,0xa1,0x83,0xea,0x94,0x2f,0xde,0x61,0xbd,0xe1,0xbe,0x08,0xf8,0xd4,0x01,0x6e,0x61,0x98,0x01,0x39,0x4b,0x93,0x39,0x38,0x34,0x58,0x24,0xc1,0xf5,0x03,0x05,0x15,0x9c,0xf0,0x30,0x20,0x24,0xd4,0x7e,0x73,0xb2,0x60,0x06,0x3b,0xd3,0xb7 +.byte 0x2c,0x47,0x17,0xc4,0x79,0x4e,0x45,0x0b,0x89,0xf0,0xfc,0x42,0xa0,0x0d,0x80,0xd2,0x44,0x36,0x70,0xaa,0x9e,0x72,0x85,0xa8,0xc8,0x1d,0x35,0x28,0xc3,0x5a,0x72,0x4c,0x06,0x6d,0xf4,0xae,0x54,0x86,0x9a,0x32,0x3c,0xa5,0x06,0x63,0xc1,0x37,0xbb,0xaf,0xa6,0xae,0xce,0x94,0xea,0x9c,0x4a,0x9e,0x56,0xb1,0xc3,0x84,0x84,0xef,0x3d,0xe9 +.byte 0x24,0xf4,0xbf,0xc3,0xf6,0x45,0x74,0x4e,0xbb,0x86,0xd3,0x7f,0xab,0x19,0xe3,0x63,0x67,0x81,0xb6,0x18,0xc8,0x78,0x8e,0xf8,0x83,0x5f,0xfb,0x2e,0x49,0x97,0x2b,0x34,0xbb,0x76,0x2e,0x93,0xec,0xe9,0x7f,0x4d,0x7e,0x52,0x0c,0x92,0xbc,0x6d,0x3a,0x34,0x9b,0x5e,0x61,0x6f,0xea,0x45,0xe7,0x5c,0x34,0x6b,0xcb,0xc0,0x31,0x61,0x64,0x9d +.byte 0xad,0x7f,0x98,0xca,0xfe,0x3d,0xad,0xf7,0x21,0xf6,0x4c,0x2a,0x21,0x07,0x80,0x25,0xa2,0xea,0x26,0x85,0xc3,0xb1,0x74,0x04,0x7f,0xd1,0x1c,0x1b,0xa5,0x7e,0x96,0x45,0xfe,0x6f,0xa6,0x34,0xdf,0x94,0x1f,0x7e,0xfb,0xcf,0xfd,0x29,0xeb,0x3a,0xb0,0xfc,0xb6,0xd5,0x80,0x8b,0x37,0x71,0xfb,0x70,0x19,0x30,0xc4,0x6f,0xa0,0x5b,0xae,0x5b +.byte 0x75,0x51,0x98,0x89,0x9e,0xf0,0xf5,0x79,0xaf,0x1c,0x07,0xb6,0x5e,0xcf,0x34,0x70,0x0f,0x0b,0xbc,0x0a,0xa6,0x40,0xc7,0xf8,0xe4,0xef,0xe6,0xb7,0x94,0x6e,0x98,0x75,0x22,0x73,0x5c,0xca,0xcc,0xfb,0x09,0x2f,0x9c,0xfe,0x49,0x0f,0xd3,0x65,0xfe,0xd4,0xf0,0x9b,0xeb,0x8c,0xd7,0x8c,0xff,0x4b,0x18,0x3e,0xf3,0x9d,0x3f,0xf5,0x83,0xd6 +.byte 0x1d,0x3d,0x23,0x79,0x0f,0xae,0x17,0x62,0x33,0x07,0xc3,0xac,0x98,0x07,0x72,0x9b,0xd9,0x26,0x5c,0x1a,0x9d,0xf1,0x35,0x92,0xf9,0x38,0x17,0xf8,0xee,0x26,0xf9,0x64,0xfc,0x5e,0x8b,0x80,0xce,0xdb,0x64,0xf7,0xde,0x20,0x19,0x5c,0x26,0xf6,0x23,0xd6,0x99,0x8e,0x75,0x77,0x3d,0x17,0x0f,0xea,0x31,0x5a,0x65,0x32,0x1b,0x78,0x78,0xe4 +.byte 0xfe,0x76,0xf8,0xa7,0x81,0x34,0xf1,0x2a,0x13,0x22,0xe4,0x8a,0xe1,0x42,0x5a,0x3f,0x44,0x22,0xeb,0x7e,0xcd,0x20,0xcd,0xf7,0x44,0x1a,0x87,0xb9,0x7a,0x0e,0xf8,0xcb,0xb5,0x0a,0x1f,0x6a,0xe6,0x0b,0x70,0x59,0x38,0xa3,0x6b,0x64,0x7b,0x61,0xfe,0xbd,0xa4,0xb7,0x89,0x7a,0x28,0x70,0xfe,0x9d,0x64,0x2c,0xe9,0xc4,0xc9,0x2f,0xc8,0x3e +.byte 0xfa,0x70,0xce,0x21,0x9b,0xa8,0x10,0x6a,0x16,0xdd,0x28,0xce,0x4e,0xd4,0x6c,0x8c,0x47,0x83,0x13,0x8b,0xec,0x1c,0x76,0xdc,0x4d,0x81,0x25,0x08,0xd8,0xf9,0xde,0x66,0x1d,0xe2,0xf3,0xe7,0xdc,0x3e,0x3c,0x6b,0x98,0x25,0x55,0x88,0xe8,0xda,0x7f,0x16,0xe5,0x7d,0xad,0x8a,0x36,0x00,0xf0,0x68,0xc5,0xe4,0xfc,0xe9,0xe3,0x54,0xeb,0x4c +.byte 0xd1,0xff,0x07,0x1a,0x5c,0x5e,0xd4,0xb1,0xff,0x7d,0xfc,0x5b,0x34,0x42,0x95,0x89,0x01,0x24,0x8e,0x30,0xec,0xfe,0x67,0xf8,0xe2,0xaa,0xd5,0x6a,0x9f,0xe3,0xc3,0xa5,0x53,0x7f,0xd3,0xf4,0x98,0xa5,0x47,0x11,0xad,0xac,0xea,0xba,0x20,0x34,0x03,0x65,0x8c,0xec,0xb6,0xa3,0x2b,0xf6,0x93,0xe1,0xc8,0xad,0x34,0x30,0x8f,0x0e,0x3b,0xf6 +.byte 0x63,0xc6,0x58,0xc3,0xe8,0xa3,0x85,0xf8,0x24,0x8e,0x21,0xb9,0x36,0x7c,0xe0,0x11,0x64,0x31,0x6a,0x6a,0xa2,0xad,0xd3,0x94,0xbb,0x13,0x5b,0xb4,0xe9,0xee,0x09,0xdc,0xfe,0xb2,0xad,0xa8,0x43,0x02,0xba,0x85,0x1f,0x56,0xcb,0xb5,0x95,0x32,0xcc,0x7e,0xe0,0x00,0xde,0xfa,0x3f,0x91,0x71,0xde,0x21,0x19,0xff,0xc9,0x97,0x43,0x95,0xd8 +.byte 0x0d,0xc2,0x8a,0xde,0xcc,0x34,0x48,0xf4,0x35,0x41,0xb8,0x56,0x52,0xce,0x06,0xb3,0xcf,0xd4,0xae,0x7a,0xcb,0xe9,0xed,0x37,0xd6,0x76,0xa0,0x77,0x04,0xfb,0xb7,0x41,0x25,0x38,0xe1,0xd1,0xb5,0xde,0x21,0xe0,0x64,0xd8,0x83,0x13,0x7b,0x4b,0xb8,0xc9,0x12,0x02,0x51,0x56,0x52,0xe9,0x1c,0x49,0x48,0x83,0xd0,0x99,0x73,0x60,0x4a,0x4c +.byte 0x7d,0x8d,0x43,0xf9,0x06,0xa4,0xbb,0x0e,0xb6,0xdd,0x5f,0xc7,0x5e,0x35,0xcb,0xa0,0xc1,0x66,0x4a,0xe3,0x4a,0xa9,0xec,0xa4,0x5a,0xd7,0xd6,0xea,0xa5,0x20,0xa6,0xc3,0x1b,0xc0,0xa8,0xd1,0xf1,0x08,0x05,0xab,0x40,0x14,0x35,0xf2,0xdd,0x0f,0xc5,0xda,0xb3,0xa6,0xb1,0x07,0x36,0x17,0x5d,0xe9,0x96,0x23,0x96,0x46,0xd4,0xa7,0x71,0x64 +.byte 0x13,0x72,0x4e,0x83,0xe0,0x65,0x40,0x41,0xaf,0xb6,0x5b,0x00,0xa2,0xab,0x09,0x7f,0xa5,0xd5,0xc2,0xd9,0xc0,0x68,0x2a,0x44,0xdc,0x43,0x37,0x81,0xb8,0x88,0x4c,0x85,0x1b,0xb1,0x83,0xb2,0x56,0xa3,0x91,0x0f,0xa6,0x70,0x3f,0xbd,0xe9,0xda,0x40,0x9b,0xf5,0x9e,0x53,0xed,0x5f,0x84,0x70,0xd2,0x4c,0x1c,0xb6,0x87,0xd6,0xbb,0x3b,0xec +.byte 0xe5,0x35,0x1b,0x2c,0x9b,0xf1,0xe5,0xf8,0x0e,0x07,0x98,0xcc,0x58,0x38,0x57,0x74,0xdb,0x0e,0x08,0xd9,0x56,0xe8,0x08,0x63,0x3d,0x94,0x4a,0xdc,0x59,0xfc,0x3d,0xc1,0xa4,0x36,0xc3,0xe8,0xbe,0x4b,0xd7,0x47,0x69,0x33,0xb8,0x72,0x30,0x59,0x28,0x4e,0xf1,0xc1,0x25,0xa3,0xa4,0xe3,0x12,0xcf,0x31,0xf6,0xf8,0xae,0x31,0x06,0x76,0x92 +.byte 0x64,0x87,0x8e,0xb0,0x9f,0x1d,0xf4,0x56,0x73,0xc5,0x5d,0xbb,0x80,0x0d,0x19,0x3f,0x56,0x8c,0xe4,0xd6,0x8a,0x9a,0x62,0x26,0x4e,0x8a,0x21,0x7d,0x72,0x34,0x87,0xb6,0x7e,0x49,0xdc,0xfd,0x27,0x95,0xba,0x25,0xdd,0xf4,0x58,0x2b,0x11,0x3f,0xd1,0xd7,0x13,0x1d,0xb0,0xec,0xe2,0x55,0x5e,0x72,0xea,0x36,0xc9,0xd8,0x61,0xc0,0xee,0xc4 +.byte 0x9f,0x35,0x7e,0x73,0xd3,0xf6,0xd7,0x6a,0xce,0xd6,0xd2,0x80,0xe6,0x10,0x4b,0x65,0x18,0x6f,0xab,0xd3,0x41,0xbb,0x39,0x36,0x95,0x84,0x3c,0x99,0x9a,0xfd,0xf0,0xa3,0x46,0xdf,0x48,0x7c,0xd5,0x57,0x9d,0x10,0x59,0xca,0x70,0xc4,0xb5,0xbe,0x47,0x9e,0xca,0x2b,0x49,0x54,0xbb,0x34,0x8e,0x39,0xf4,0xf8,0x8c,0xa5,0xa1,0xab,0xf6,0x51 +.byte 0xd8,0x22,0x9a,0xd5,0xc2,0x12,0xf8,0x26,0xc6,0x19,0x2a,0xa6,0x6e,0xab,0xd3,0xac,0xd1,0x21,0x97,0x67,0x3e,0x39,0x90,0x5c,0x37,0x65,0x7b,0x06,0x54,0x1a,0xb8,0x2a,0x56,0x02,0xa3,0x92,0xee,0xf3,0x38,0x53,0x25,0x4d,0x5d,0x0a,0x37,0x9e,0xbb,0xf4,0xb2,0x13,0x77,0xbb,0x93,0xa9,0x85,0xf2,0x15,0xfd,0x71,0x17,0x00,0x89,0xe7,0x7b +.byte 0xa9,0xdc,0x10,0xd9,0xc7,0x44,0xa5,0x7b,0x3f,0x2f,0x1e,0x6d,0xa7,0xfe,0x0c,0x0e,0x83,0x3e,0x38,0x27,0xa7,0x4e,0x85,0x3c,0x84,0xfe,0x95,0x48,0x85,0x09,0x75,0x62,0x1d,0xa4,0x64,0x54,0xed,0x89,0xd5,0x28,0x62,0x52,0x18,0xef,0xf0,0x57,0x05,0x30,0xf0,0xce,0x87,0x05,0x0d,0x81,0xe8,0x2a,0x3c,0x8c,0x22,0xe1,0x4b,0x32,0x42,0x9d +.byte 0x02,0xc5,0xe4,0x6a,0xa4,0x4d,0x9b,0xc4,0x82,0x47,0xdc,0x61,0xbd,0x82,0x01,0xcd,0x5e,0x64,0x9f,0x4c,0xe3,0x31,0xe9,0x48,0x53,0x85,0x07,0xc7,0x47,0x49,0x35,0xd8,0x6a,0xab,0x4f,0x73,0x3f,0xd3,0xde,0x87,0x29,0xac,0xbc,0x35,0x0a,0xb4,0x74,0xc2,0xa7,0x0b,0xb1,0x93,0x92,0x29,0x3b,0x3e,0xa8,0xde,0x12,0x49,0x75,0xda,0x16,0x27 +.byte 0x52,0x2f,0x93,0x23,0xd6,0xf7,0x10,0xfe,0x1e,0x93,0x97,0x06,0x9d,0xef,0x4f,0xe4,0x3d,0x5d,0xde,0x30,0x70,0x3d,0x78,0x3a,0x30,0x00,0x9b,0x77,0x12,0x90,0x62,0xda,0x32,0x9b,0x6a,0x47,0xd7,0x0f,0xee,0x75,0x18,0xdd,0x4d,0x8a,0xe2,0x35,0x5b,0x60,0xb8,0xf9,0xa4,0x6c,0x93,0x3e,0x47,0x23,0xed,0x7a,0xe2,0x58,0x42,0xd6,0x3f,0x90 +.byte 0xc0,0x12,0x38,0x8b,0x70,0xe0,0xf8,0x1a,0xb5,0x8d,0xe1,0x39,0xdf,0x93,0x25,0x72,0x2e,0xa9,0x3f,0x58,0x12,0x40,0xc4,0x92,0x46,0x08,0xf0,0x64,0xdd,0x34,0x42,0xfe,0x74,0x35,0x0c,0xda,0xef,0x06,0x0b,0x33,0x59,0xd9,0xee,0x4c,0xf9,0x02,0x3a,0x93,0x40,0xa3,0x99,0x0e,0x64,0x11,0x2f,0x52,0x9d,0x28,0x4d,0xe8,0x45,0xd0,0x22,0xd7 +.byte 0x8f,0xd6,0x28,0x8c,0x0e,0x18,0x87,0x24,0xf9,0x88,0xd2,0xc0,0xe8,0xd4,0x9d,0xa2,0x5a,0x79,0x83,0x37,0x18,0x84,0x12,0xca,0xc7,0x10,0xd5,0x5a,0xa8,0xe5,0xa8,0xe7,0x79,0xb6,0x2c,0xb3,0x90,0x6c,0xc5,0xa4,0x99,0x1b,0x85,0x29,0x78,0x0b,0x09,0x77,0x05,0xf4,0x23,0x79,0x5c,0x91,0xf3,0xe0,0xe4,0x6f,0x82,0x33,0x4e,0xa2,0x2e,0xa2 +.byte 0x65,0x79,0xad,0x98,0x36,0x34,0x72,0x97,0xd7,0x39,0x89,0x5e,0x82,0x9f,0x4c,0xe2,0xea,0x51,0x85,0x62,0x0c,0x39,0xf6,0xdc,0xc6,0x80,0x48,0xcf,0x98,0x93,0x64,0x7d,0xf9,0x63,0xf4,0xf5,0x18,0x2a,0xb6,0x04,0xb7,0x44,0xc4,0x60,0xc0,0xcf,0x3d,0x88,0xa8,0xb6,0x81,0xa3,0x99,0x2a,0xf0,0x1a,0x8d,0x76,0x20,0x1d,0xcc,0x10,0x50,0x58 +.byte 0x09,0xf9,0xda,0x65,0x60,0xc3,0xb1,0xc1,0xc0,0x4d,0x62,0x52,0x22,0x45,0x32,0xbc,0x11,0x93,0x15,0xb6,0x25,0x8f,0x65,0xa0,0x4c,0x88,0xc9,0x83,0xe1,0x5c,0xbb,0xfb,0x1a,0xab,0xdb,0x35,0x40,0x66,0xc0,0x2f,0xdc,0xf5,0x92,0x08,0x4c,0xc7,0xb8,0x49,0x05,0xe0,0xe1,0x61,0x2b,0xde,0xc7,0x6a,0x04,0x05,0x4d,0x9f,0xe9,0x59,0x22,0x56 +.byte 0x63,0x77,0x9d,0xe3,0x1e,0x36,0xdf,0x87,0x4a,0xeb,0xba,0x42,0x3d,0x1b,0xa5,0xd0,0xc5,0x44,0x07,0xbe,0x37,0x37,0x70,0x10,0x2d,0x02,0x9b,0xf6,0x52,0xf3,0x54,0x6d,0x50,0xdb,0xdb,0x57,0x01,0x0b,0x9b,0xd5,0x99,0x99,0x69,0x9b,0x10,0x76,0x48,0xea,0x28,0x27,0x06,0x30,0x63,0x3b,0xdf,0x06,0x30,0x37,0x28,0x75,0xcf,0x9c,0xe7,0x52 +.byte 0x43,0xe2,0xd5,0x7b,0xfa,0x88,0x98,0x9c,0x3e,0x27,0x30,0x21,0xcc,0x11,0x71,0x14,0x24,0x04,0x1a,0x8c,0xe9,0xfe,0x2f,0x9d,0xec,0xb1,0x10,0x33,0x05,0x31,0x01,0x1b,0xde,0x6b,0x30,0x20,0x6d,0xf4,0x7c,0xbf,0x41,0x04,0x5f,0xb9,0x9c,0x24,0x63,0x74,0x98,0x3e,0x60,0xc7,0xf1,0xb1,0xc6,0x94,0xf3,0x6f,0x95,0x24,0xdf,0x97,0xd5,0xc7 +.byte 0x50,0x19,0xaf,0xa5,0xae,0x51,0xde,0x6d,0x44,0x0c,0x90,0x72,0x11,0x82,0x04,0xf9,0xda,0x17,0xd8,0xf3,0x03,0xf2,0x03,0x3f,0x65,0x7f,0xd7,0x66,0x84,0x9a,0x02,0x90,0x2b,0x65,0x00,0xd9,0x9c,0xfb,0xaa,0xe2,0xde,0x5f,0x1e,0x19,0x1e,0x6d,0x20,0x1e,0x01,0xf1,0xca,0x7b,0x90,0x06,0x96,0x1d,0x7a,0x34,0x0c,0x66,0x57,0xd7,0x61,0x1f +.byte 0x74,0x03,0xcb,0xae,0xea,0xaf,0x65,0x8e,0x32,0xbe,0xb8,0xe6,0xd8,0x6d,0xf7,0x51,0x6d,0xec,0x7e,0xc6,0x9d,0x20,0x01,0xbf,0xd7,0xbc,0xcb,0x34,0x7c,0xe5,0x1f,0x92,0x72,0x2f,0x6f,0xa3,0x1f,0xe8,0x4d,0x7e,0xa5,0x85,0x3b,0xed,0xc7,0x25,0x53,0xe3,0x77,0x90,0x1f,0xda,0xb7,0x48,0x7d,0xbe,0x20,0x48,0x9f,0xb4,0x05,0x5d,0x41,0xc5 +.byte 0x48,0xd0,0xc9,0x83,0xbe,0xf8,0xd8,0x6b,0x0d,0x26,0x66,0x2e,0xef,0x6b,0x13,0x58,0x6b,0x5f,0x0e,0x8b,0x4e,0x57,0xb2,0x6b,0x3d,0x4d,0xcd,0xcb,0x9a,0x9b,0xda,0x4d,0x7f,0xea,0x17,0x06,0x7f,0xcd,0xaf,0x18,0xda,0x3d,0xf0,0x30,0x2e,0xbb,0xc2,0x1d,0xcf,0xde,0xf7,0xee,0xda,0xd6,0x3d,0x75,0xcf,0x19,0xcf,0xfc,0xdf,0x7a,0xb6,0x1f +.byte 0x89,0xf5,0x0c,0xe9,0xd5,0xf1,0xd0,0x40,0xbd,0xae,0xb5,0x16,0xf6,0x05,0x1e,0xba,0xcd,0x18,0x80,0x4a,0xb3,0x87,0x93,0x6b,0x19,0xfc,0x47,0xa8,0x45,0x4b,0x75,0xe8,0x06,0xc0,0xbd,0x86,0xf7,0xcf,0x2c,0x39,0xc6,0x0b,0x3f,0x32,0xcd,0x1c,0x02,0xec,0x4b,0xd5,0x90,0x84,0xaf,0xc9,0x5c,0x9e,0x64,0x82,0x13,0x81,0x05,0x03,0xe4,0xed +.byte 0x48,0x23,0xc3,0x53,0x2c,0x5a,0x22,0x0a,0x27,0x7e,0x55,0x79,0xdc,0x46,0xf5,0x4b,0x04,0xcc,0x43,0x87,0x6c,0xb5,0xa4,0x2d,0x78,0x70,0x02,0x43,0x0e,0x76,0x62,0x99,0x86,0x40,0x2a,0xe4,0x62,0xe6,0xee,0x4e,0x03,0x64,0x83,0x9c,0x38,0x6d,0x62,0xa6,0x85,0xb8,0xce,0xd7,0xf8,0xcb,0x78,0x00,0x7a,0x48,0x72,0x75,0x4e,0x9c,0x6f,0x0c +.byte 0x61,0xc7,0x93,0x4e,0x6d,0x65,0xa3,0x1b,0x17,0x84,0xc6,0xd2,0x29,0xc3,0x4d,0xe3,0x14,0x21,0x5f,0x9e,0xa9,0x28,0x11,0xf3,0xb2,0xe8,0xe7,0x60,0x9e,0x24,0xab,0x88,0x9c,0x9c,0x5e,0x17,0xe4,0xe1,0xa7,0x74,0xb4,0x82,0xd5,0xaa,0x92,0x08,0xa7,0xa2,0x04,0x6f,0x77,0x14,0x54,0x44,0x5d,0x13,0x10,0xa2,0x40,0x1d,0xf0,0x44,0x16,0x17 +.byte 0xda,0x8c,0x80,0x83,0x2b,0x19,0xb8,0xab,0xf2,0xb8,0xb1,0x92,0xb5,0xc5,0x05,0x3e,0xd2,0x1a,0xfc,0xfd,0x21,0xa6,0xb2,0xbd,0x89,0xee,0x9c,0x3c,0x90,0xd9,0xf1,0xd2,0xe8,0xc3,0x21,0xb9,0x0e,0x0c,0x98,0xbc,0x5e,0xa1,0x0d,0x89,0xfe,0x0f,0x3c,0x45,0xea,0xe1,0x6e,0x06,0x59,0xff,0x79,0xf4,0x7e,0xf4,0x82,0xc0,0x6b,0xd9,0x53,0x30 +.byte 0x98,0xed,0x8d,0x6f,0x3d,0x0e,0xfb,0x42,0x66,0xab,0x41,0xa8,0x4a,0xef,0x73,0xa4,0x54,0x99,0x4f,0xb6,0x65,0x44,0xf9,0xd9,0x3c,0x6b,0x59,0x36,0xb0,0xe3,0x7c,0x4a,0x85,0x80,0x6c,0x77,0x6f,0x34,0x4e,0x9e,0x54,0xfd,0x0c,0x25,0x72,0xc3,0x5a,0xb6,0x3b,0xad,0x2b,0xd5,0x29,0x55,0x31,0xab,0x62,0xe4,0x15,0xed,0xef,0x16,0xef,0x43 +.byte 0xd5,0xdd,0x3d,0x64,0x8c,0x13,0xbc,0xcd,0x4d,0xfb,0x4f,0x86,0x3b,0x73,0x1e,0xc4,0xe8,0x54,0xb4,0xcc,0x49,0xba,0x4f,0x81,0xcd,0xe8,0x30,0x92,0x4b,0x57,0xd1,0x7c,0x0c,0x65,0x7d,0xe1,0x59,0xc6,0x8c,0x7d,0xad,0xd5,0xcf,0x6c,0xc4,0x9d,0xc5,0x3f,0x23,0x1f,0xb0,0x6d,0x1c,0x07,0xbf,0x38,0xc9,0x16,0xdc,0x5b,0x51,0xa1,0xdb,0x8f +.byte 0xf8,0x25,0xc6,0x4d,0xc0,0x4d,0xa1,0x02,0xd9,0xd3,0xb5,0x63,0xda,0xe1,0x91,0x60,0x71,0x39,0x46,0x1a,0x13,0xe0,0xf2,0xca,0xcc,0xd3,0xbb,0x6b,0xd0,0x64,0xaa,0x0e,0xc0,0x89,0xa3,0xc6,0x14,0x56,0xe4,0x44,0x97,0xa9,0xcc,0x17,0x68,0xe6,0xfc,0xe5,0xfd,0xf0,0xa6,0x69,0xcd,0xac,0x20,0xc7,0xeb,0x53,0x1b,0x4f,0xdd,0xd3,0xb0,0xed +.byte 0x30,0x4e,0x36,0x73,0x63,0xef,0x51,0x3e,0x9a,0x3e,0x41,0x2b,0x9c,0xda,0x67,0x96,0x46,0x33,0xe3,0x3f,0x87,0x01,0xd8,0xc5,0x26,0x80,0xe4,0x7e,0xf4,0x78,0x8c,0x2b,0x81,0x2a,0x01,0x7c,0xe3,0xfc,0x8d,0x6b,0xdc,0x84,0xb9,0xff,0x43,0x37,0x57,0xce,0x3f,0x5e,0x63,0xd3,0xbe,0xb6,0x4a,0x31,0xbf,0xb8,0x74,0x64,0x9c,0xf3,0xc5,0x8a +.byte 0xae,0xe8,0x5f,0x68,0xcf,0xce,0xff,0x3f,0xc5,0xb5,0xfd,0x13,0x08,0x11,0x9d,0x1a,0x0f,0x06,0x08,0x4d,0x7c,0xf9,0xd4,0x20,0xdf,0x82,0xf9,0x86,0xfc,0xf3,0x67,0xa0,0x14,0x99,0xe5,0x47,0xf0,0x02,0x7b,0x16,0xca,0xcf,0xb9,0x0f,0x68,0x08,0x5d,0x1d,0x65,0xee,0x23,0x56,0xeb,0x11,0x5b,0xca,0xf1,0xa7,0xad,0x50,0xb2,0xd1,0x37,0x65 +.byte 0xe9,0x7e,0xf6,0xe9,0x64,0x42,0x49,0x80,0x40,0x17,0xe3,0x43,0x00,0xda,0xe1,0x7a,0x1c,0xb3,0xde,0xd9,0xf7,0x33,0xeb,0xb3,0xb8,0xf5,0x40,0x1b,0xcd,0x71,0x97,0x30,0xf9,0x9c,0x4d,0xac,0x7e,0x8e,0xd9,0x36,0x92,0x39,0xb5,0x56,0x0f,0x4f,0xbf,0x58,0xb8,0xba,0xc3,0xbd,0x79,0xb0,0xd7,0x6c,0x45,0x49,0xe2,0xde,0x94,0x04,0x9d,0x3e +.byte 0x91,0x0a,0xb2,0x9b,0x90,0x57,0x2e,0x69,0xa4,0x4f,0x61,0xbf,0xdb,0xfb,0xe3,0xe9,0x81,0x26,0xe0,0x48,0x90,0x8c,0x32,0x95,0x8d,0x38,0xec,0x8e,0xa7,0x5e,0xc3,0x36,0xc6,0xd1,0xbc,0x9a,0xb3,0xba,0xdb,0x2c,0xe4,0xa0,0x50,0x74,0xef,0x98,0x48,0x14,0xc9,0x38,0x4d,0xa9,0x48,0x13,0xd4,0x08,0x60,0xfd,0xcf,0x5e,0xf2,0xcd,0xc7,0xeb +.byte 0xaf,0x88,0x32,0x30,0x6f,0x19,0x01,0xec,0x87,0xae,0x6d,0x63,0xa3,0xa7,0x7b,0xcd,0x53,0xa7,0xf2,0xf2,0x9f,0x43,0xcb,0x0a,0x3f,0x8c,0xd2,0x55,0x8d,0xa7,0x95,0xcf,0x5b,0xae,0x64,0x23,0xda,0xb4,0xbd,0x32,0x34,0x95,0x8a,0x03,0xe7,0x6e,0xef,0x3f,0xb4,0xcf,0xc6,0x8a,0x2f,0xc6,0x59,0x99,0xdf,0xad,0x3c,0x15,0xed,0x83,0x0b,0x59 +.byte 0x8b,0xcd,0x0d,0xa6,0xcf,0x3a,0xc3,0xdb,0xc3,0x01,0xa9,0x32,0x38,0x45,0x5c,0xc8,0x56,0x81,0xef,0x21,0x7f,0x52,0xc4,0xb5,0x48,0x97,0x6a,0x60,0x75,0x3a,0x1a,0xd3,0xb0,0x60,0x9a,0x83,0x61,0xad,0x3b,0x4b,0x65,0xaa,0x9e,0x77,0x47,0x6f,0x3b,0x48,0xb0,0xc6,0x36,0x9a,0x59,0x5e,0x26,0xc4,0xb9,0xed,0x04,0xf3,0xc7,0x09,0x33,0xda +.byte 0x81,0x63,0xa6,0x5d,0xe1,0x54,0x6b,0x04,0x17,0x2b,0xb9,0x2f,0xbd,0x55,0xdb,0xa1,0x69,0x00,0xcd,0xba,0xfa,0x36,0xaa,0x47,0x5a,0x7c,0xf4,0x1f,0x53,0x94,0x95,0x2f,0xf8,0x2a,0x4b,0xa8,0xcc,0x73,0xab,0xfd,0x25,0xb2,0x4e,0xd6,0x62,0x90,0x8c,0x8f,0x02,0xe4,0xdc,0x22,0x79,0x04,0x34,0x9b,0x54,0x5c,0x54,0xca,0x9b,0x8a,0xf8,0x05 +.byte 0xd1,0xb0,0x9e,0x8f,0xa3,0x0b,0x53,0xa8,0x6f,0x1b,0x2e,0xf2,0x71,0x78,0x28,0xce,0xa9,0xdb,0x4c,0x5b,0x83,0xfe,0xaa,0xff,0x99,0x2f,0x03,0x14,0xb2,0xe0,0x5f,0xaa,0x65,0x15,0x1f,0xd2,0x31,0x95,0x70,0x3c,0x8b,0x55,0x8e,0x87,0xed,0xbb,0x0c,0x91,0x87,0xaa,0xbe,0x49,0xdb,0x18,0x7b,0x1d,0x26,0xa7,0xdf,0x00,0xff,0x73,0x70,0x2e +.byte 0x10,0xaf,0x46,0xea,0x7f,0xca,0xfa,0x09,0x13,0x02,0xac,0x3f,0xa0,0x02,0xa6,0x67,0xb7,0xec,0x18,0x73,0x91,0x25,0xa0,0x28,0xe3,0xd8,0xfa,0x11,0x6d,0x34,0x79,0x1d,0xe4,0x8f,0x7c,0x73,0x66,0x77,0x3e,0x43,0x23,0xb0,0xee,0x84,0xb5,0x75,0xc9,0x23,0x87,0x6a,0x4f,0x59,0x3d,0xb5,0xf1,0xd6,0x06,0xf8,0xa6,0x5d,0x0c,0x24,0xed,0x94 +.byte 0xd7,0xa8,0x31,0x37,0x10,0x60,0xb6,0x03,0x33,0x27,0x38,0xdd,0xd3,0x74,0x02,0xa3,0xa6,0x01,0x94,0xa9,0x56,0x11,0x23,0x0e,0xdb,0xfd,0x25,0x92,0xa8,0xfb,0x79,0xc8,0x8e,0x0e,0x10,0x1f,0xca,0x95,0xf6,0xad,0x28,0xe7,0xaa,0x2b,0xf1,0x40,0xf6,0xef,0x7b,0x40,0x28,0x57,0xbb,0x4c,0xac,0x0b,0x8b,0xb3,0xe3,0xec,0x53,0xf2,0x15,0x61 +.byte 0x2e,0x91,0xdf,0x91,0xfb,0x55,0xb6,0x7f,0x6c,0xfc,0xb7,0x4b,0x91,0xdc,0xf7,0xe5,0x91,0xd8,0x70,0x92,0x94,0xea,0x3f,0x62,0x98,0x14,0xc3,0x43,0x34,0x02,0x87,0xc7,0xca,0x60,0x4a,0xfb,0x50,0xe4,0xa9,0x92,0x10,0x04,0x7c,0x55,0xd3,0x9a,0x89,0xba,0x8e,0x6f,0x02,0xd6,0xc7,0x6f,0x91,0xb5,0x87,0xb9,0x0e,0xbe,0xe4,0x9f,0x01,0x0b +.byte 0x20,0x60,0xc8,0x16,0xe6,0x23,0x1d,0x5f,0x4d,0x82,0xf4,0x42,0x25,0xe6,0x05,0xe3,0x5b,0xbb,0xd1,0xb0,0xad,0x0b,0x05,0x71,0x3a,0x7b,0xee,0x0e,0xe1,0xe4,0x08,0x9f,0xda,0xdf,0x59,0x57,0x4f,0x05,0x5a,0x51,0x9a,0x60,0xfd,0x85,0x21,0xd1,0x0a,0x3b,0x0a,0x15,0x61,0x28,0x98,0x0a,0x8f,0x1e,0x33,0x15,0xb3,0x5f,0xf3,0xbb,0x89,0x22 +.byte 0x0c,0xaf,0x91,0xce,0x44,0xb1,0x54,0xd0,0x80,0x86,0x43,0xa1,0xb9,0x07,0xde,0xab,0x1f,0x9b,0xae,0xef,0x07,0xf2,0x40,0x33,0x31,0x4d,0xf9,0x45,0x97,0xf6,0xcc,0xe5,0x3c,0x49,0xcd,0x83,0x6e,0x38,0x81,0xab,0x40,0x18,0xda,0xf6,0xfe,0xe7,0x96,0xd1,0x17,0x98,0xae,0xec,0xe9,0x93,0x37,0xbc,0x0b,0xa8,0x12,0xe7,0x65,0xca,0x27,0x37 +.byte 0x6a,0x74,0x81,0xf1,0xe0,0x6c,0x0d,0xba,0x86,0x48,0x94,0xd0,0x72,0xd5,0x4d,0x71,0xcf,0xa8,0x5e,0xd1,0x97,0xd1,0xed,0xf0,0xd3,0xe4,0xe3,0x41,0xc9,0x8f,0xfc,0x89,0xe8,0xbf,0x96,0x8b,0x86,0xb0,0x97,0x79,0x95,0xdf,0x69,0x56,0x6d,0x61,0x0a,0x37,0xcb,0x36,0xe1,0x95,0x88,0xf5,0xf0,0xe2,0x5c,0xb2,0x44,0x73,0xda,0x83,0xa7,0xdc +.byte 0x8b,0x35,0x3e,0xc1,0xd5,0x88,0x17,0x3b,0xeb,0xcf,0x36,0x9c,0xef,0x40,0xb2,0x72,0xde,0x4f,0x16,0x6c,0x8c,0x9d,0x15,0xce,0x7d,0x0d,0xc3,0x2f,0xea,0xab,0x50,0xdf,0x02,0xe0,0x24,0xcc,0xf4,0xa7,0x25,0xba,0x85,0x0d,0x62,0x9a,0x39,0xc7,0x5a,0xd1,0x9a,0xd1,0xa7,0x45,0x5f,0xc2,0x44,0xf5,0xa9,0x8d,0xd8,0xbc,0xd3,0xc8,0x75,0x0d +.byte 0x06,0xc6,0x4b,0x24,0xc6,0xe5,0x72,0xf7,0xd5,0x87,0xca,0x3c,0xc0,0x1c,0x18,0xa9,0x40,0xc6,0x7b,0xe5,0x4c,0xe6,0xb7,0x01,0x57,0xc1,0xcf,0x63,0x83,0x58,0x63,0x47,0xcf,0xa4,0xd3,0xf6,0x1d,0x2c,0xbf,0x17,0xe6,0x0a,0x7b,0x2d,0xa9,0x34,0x23,0xfc,0x1f,0x06,0x31,0x47,0x7b,0x31,0x34,0x8c,0x3c,0x15,0x9b,0xac,0xfd,0x38,0xe6,0xa3 +.byte 0x9e,0xa7,0xdf,0xa6,0x37,0x61,0xfd,0x85,0xb8,0x2e,0x67,0x73,0x7f,0x60,0x12,0x8b,0x62,0xb0,0x38,0xd0,0xaa,0xc4,0xad,0x3b,0xa9,0x04,0x66,0xdd,0xbb,0x9c,0xb1,0x95,0xe1,0x9c,0x0a,0x72,0x80,0x12,0xaa,0xa8,0x0c,0x3f,0x90,0x20,0x33,0xb4,0x76,0xdd,0x26,0xfe,0x1e,0x8f,0x6a,0x2d,0xea,0x4a,0xdc,0x28,0x47,0x66,0x36,0x5b,0x50,0x60 +.byte 0x7e,0x3e,0x93,0xf3,0xe9,0x37,0x31,0x3b,0x43,0x46,0x85,0xb3,0xa9,0xb2,0x14,0x95,0x96,0x49,0xf9,0x2a,0xe7,0x9e,0x3a,0x3e,0xd8,0x12,0xf7,0xbc,0x43,0x8c,0x35,0x31,0x44,0x08,0x7f,0x25,0x39,0x86,0x98,0x6a,0xe8,0xe3,0x2e,0x73,0x2d,0x3b,0xac,0x2d,0x75,0x4c,0xc8,0xca,0x21,0x2d,0x96,0x9b,0x4f,0x56,0xff,0x2d,0xc2,0xe2,0x98,0x3d +.byte 0xe2,0x3f,0xee,0x10,0xb7,0xc3,0x3d,0xa8,0x50,0x88,0x7f,0xd5,0x4e,0xbd,0xc7,0x9d,0xdc,0x01,0x49,0x27,0xf2,0xae,0xea,0x93,0x72,0xdf,0x00,0xcd,0xe6,0xa1,0xdd,0xd1,0x18,0xeb,0xa7,0xe1,0x4a,0x7b,0x38,0x72,0x73,0x29,0x46,0xa3,0xb3,0x25,0x23,0x6d,0x26,0xab,0x86,0xdc,0x67,0x52,0xe5,0x4a,0x5e,0x8f,0x16,0x67,0x8a,0x28,0x13,0xba +.byte 0x44,0x42,0xb5,0x21,0x9f,0x30,0x66,0x7f,0xc9,0x87,0x40,0xcb,0x75,0x58,0x2e,0xcd,0x09,0xb9,0x8a,0x84,0xa3,0xbd,0x63,0x53,0x75,0x2f,0x77,0x8b,0x7e,0x19,0x31,0x33,0x3b,0x9a,0xfb,0x86,0x39,0xa6,0xd9,0xeb,0x9b,0x43,0xc6,0xd9,0xc2,0x10,0xab,0x42,0xe5,0xc6,0x4a,0xe6,0x3e,0xde,0x9d,0xac,0x8e,0x95,0xf0,0xdb,0x48,0x95,0xc2,0x87 +.byte 0x6b,0x7f,0xde,0x09,0xdb,0xed,0x49,0x19,0x73,0x2d,0xa4,0x5c,0xdf,0xfa,0x2e,0x15,0xd0,0xb6,0x46,0x32,0xc9,0x7f,0x7e,0x01,0xd3,0x25,0x45,0x0e,0x5b,0x0d,0xf0,0x67,0xe3,0xd9,0xdf,0x4f,0x3b,0x6f,0xb3,0x15,0xc5,0x6b,0x91,0x75,0xa2,0xaf,0x42,0x3a,0x14,0x50,0xd9,0x4f,0x19,0x65,0x12,0x83,0x5d,0x8f,0x8a,0x01,0x0b,0x89,0xcc,0x7f +.byte 0x1a,0xde,0x5b,0x44,0x34,0x98,0x0f,0x8e,0x5a,0x5e,0x03,0x41,0x3e,0x66,0x9b,0x16,0xf5,0x91,0x7c,0xb0,0xc1,0xbf,0xa2,0x10,0x0b,0x60,0x3a,0x63,0x0c,0xcf,0xd8,0x49,0xdb,0x42,0x88,0x1f,0x36,0x8e,0x15,0xdb,0x5d,0x3f,0xe7,0xf1,0x9a,0x73,0x2b,0x74,0x0c,0xd5,0x09,0xab,0x01,0x2e,0x52,0x6f,0x03,0xf6,0xc9,0x0b,0xeb,0xa5,0xce,0x2e +.byte 0x1c,0x02,0x35,0xca,0xce,0xfe,0x4b,0xad,0x67,0x21,0xf8,0x44,0xea,0x70,0xf2,0x3d,0xfc,0x43,0x77,0x05,0x26,0xbe,0xaf,0x99,0xab,0x41,0xd4,0xcc,0x53,0x33,0x33,0xcd,0xb4,0x2d,0x76,0xfb,0xae,0x0c,0xac,0xc1,0xd0,0x42,0xfb,0x45,0x4a,0x6e,0x55,0xd2,0x93,0xef,0xb9,0x06,0xbc,0x38,0xce,0x94,0xc2,0x01,0xdf,0x27,0xc8,0x47,0xff,0x74 +.byte 0xfb,0x84,0xc5,0xa2,0x78,0x1f,0x4f,0x73,0x12,0xec,0x2d,0x82,0x5b,0xeb,0x3c,0xb6,0x1c,0x5a,0x29,0x9c,0xba,0x9e,0xa4,0x85,0x94,0x84,0x68,0x01,0xd7,0xb1,0x27,0x84,0x4a,0x7d,0x62,0x9c,0x32,0x12,0x89,0xd8,0x66,0xb5,0xe9,0x07,0xf4,0x5f,0x6b,0x0e,0x90,0x87,0xe5,0xc1,0x8b,0xaf,0x8f,0xf7,0xca,0x54,0xe0,0xc6,0x5f,0xa5,0xec,0xd1 +.byte 0xdc,0xdc,0x17,0x9e,0xca,0x4b,0x72,0x72,0x03,0x96,0x62,0xaa,0xc1,0xfe,0x23,0x7e,0xd2,0x06,0x61,0xb6,0xc9,0x0d,0x7e,0xbf,0x72,0x1c,0x66,0x46,0x0b,0x31,0x96,0x81,0x11,0x3d,0xac,0x5e,0xd0,0x35,0xaf,0xac,0x4c,0x74,0xce,0xf9,0x9c,0x64,0x3d,0xe5,0x9d,0xfe,0xc7,0x05,0x09,0xe1,0x70,0xc5,0x37,0xd5,0x4e,0xd8,0x7d,0xdb,0xfa,0x1c +.byte 0x28,0xfc,0x10,0x2a,0xe8,0x62,0x18,0x09,0x97,0xe0,0x98,0x2e,0x9f,0x1d,0x18,0xff,0x22,0xe9,0x5d,0x37,0xd2,0x74,0xf1,0x81,0x08,0x8a,0x55,0xc0,0x40,0x0f,0x70,0xbe,0x82,0x23,0x78,0x35,0xc8,0xf8,0x59,0x6e,0x0d,0x2e,0xd5,0xe7,0xf5,0x2e,0xbd,0xcd,0x1a,0xcf,0x76,0x43,0x1f,0xca,0x15,0x6c,0x4a,0xb7,0xc7,0xb9,0xaf,0x68,0xd7,0x31 +.byte 0x1e,0x0c,0x9c,0x78,0x74,0x66,0x80,0xc6,0x74,0xbe,0x86,0x59,0x0c,0x12,0xdc,0xf3,0x1b,0xaf,0x63,0x74,0xce,0x1e,0xac,0xf0,0x65,0xa0,0xab,0x7f,0x96,0x08,0x32,0xb2,0xca,0x9c,0xfb,0x9d,0x66,0x63,0x76,0xf9,0x69,0x08,0x6e,0xd3,0x46,0xde,0xdf,0x54,0x06,0x0d,0x25,0x81,0xd9,0x5a,0x45,0xeb,0xe5,0xc0,0xf6,0x86,0x0f,0xe9,0x27,0x7c +.byte 0xdc,0x52,0x28,0xb5,0xd0,0x7d,0x07,0xc1,0xb6,0x9b,0xdc,0xea,0xd3,0x2a,0xba,0xb0,0xd5,0xa3,0xd8,0x25,0x07,0x9c,0x6c,0xd6,0x16,0xa5,0x93,0x43,0x52,0xa7,0x5c,0x2b,0xe2,0xfa,0x8e,0x6e,0xaa,0x04,0x84,0x63,0x80,0x0f,0x90,0x10,0x41,0x1c,0xf6,0x67,0xea,0x39,0xb0,0x16,0xfc,0x6f,0x85,0x28,0x8c,0x8e,0xfb,0x79,0x39,0xdf,0xf6,0x6e +.byte 0x57,0xa1,0xaa,0xf1,0x0b,0x99,0xde,0xad,0x69,0xe2,0xf4,0x74,0x8e,0x8c,0x2d,0x20,0xdb,0xf3,0x2d,0xc2,0x75,0xe7,0xd6,0xc8,0x9d,0x46,0x3b,0x8b,0x8b,0x18,0xd8,0x41,0xfd,0xc2,0x7d,0xec,0x66,0x78,0xe7,0xbe,0xee,0x2b,0x07,0xd8,0x7e,0x13,0x61,0x7e,0xab,0x7d,0x2b,0x3f,0x83,0x96,0xf5,0xab,0x0b,0x20,0xd2,0x5b,0xb0,0xeb,0xf7,0x1b +.byte 0xac,0x1a,0x16,0x46,0x21,0x90,0xdb,0x67,0x66,0x42,0xe2,0x54,0x34,0xae,0x34,0xae,0x21,0x33,0x8c,0x48,0x19,0xdb,0x1f,0xa8,0x25,0x76,0xe0,0x03,0x1c,0x35,0x8d,0xd3,0xab,0x6b,0x93,0xf3,0xad,0x7d,0x3c,0x76,0x1d,0xaa,0x43,0x80,0x0f,0x5f,0x20,0xd9,0xf0,0xff,0x8b,0xf4,0xdb,0xbc,0xf2,0xff,0xf2,0x8a,0xfc,0xf5,0x0e,0x4e,0xd9,0xb0 +.byte 0xd6,0xb3,0x86,0x5b,0x3e,0x10,0x87,0x50,0xf1,0xd2,0x8f,0x8d,0xa4,0x39,0x85,0xf5,0x90,0xd6,0x53,0x69,0x40,0x42,0xc1,0xc3,0x7c,0xc1,0x3e,0x97,0xb4,0x08,0x49,0x93,0x4e,0x4c,0x67,0xd9,0x2e,0x05,0x70,0x04,0x98,0x0a,0xed,0xd0,0xff,0x0c,0x13,0xe4,0xde,0x75,0x81,0x24,0xb1,0x27,0x79,0xeb,0x80,0x68,0x52,0x50,0x66,0x77,0x4f,0xf6 +.byte 0x64,0x2f,0x85,0x9e,0xc1,0xbf,0x9f,0x0e,0x31,0x9a,0x36,0x24,0xcd,0xa8,0xe8,0xce,0x41,0x86,0xd1,0x02,0x96,0xdc,0x1a,0xa0,0x48,0xca,0x61,0xd5,0x87,0xdb,0x0a,0xeb,0x69,0x95,0xca,0xf8,0xe5,0xa0,0x5b,0x91,0x8f,0xb9,0x59,0x5f,0x68,0x60,0x58,0xc5,0xe0,0xc7,0x02,0x68,0xa5,0x67,0x1e,0xfc,0xa9,0x27,0x9f,0x83,0x4c,0x05,0x60,0xee +.byte 0xcb,0x79,0x31,0x73,0x36,0xf4,0x39,0x44,0xdb,0xea,0x62,0x89,0x97,0x69,0xd1,0x0d,0xf6,0x27,0xcf,0x47,0xfe,0x3d,0x5c,0xe9,0x92,0x54,0x0a,0x66,0xaf,0x82,0xb1,0x49,0x87,0x3f,0xa2,0x95,0x91,0x0e,0x72,0x1e,0x7b,0xde,0x32,0x31,0x51,0x40,0x24,0x4f,0x30,0x59,0x7d,0x97,0x28,0x30,0x7e,0x93,0xcd,0x1e,0x16,0xef,0xe1,0xb5,0xa8,0xff +.byte 0x3a,0xd0,0x62,0x94,0x8b,0x72,0xe7,0x97,0x8f,0x2f,0x58,0x3e,0x62,0x43,0x6b,0x28,0x05,0xc9,0x0d,0xf0,0x09,0xbd,0x12,0x3b,0xd8,0x15,0xd3,0x7c,0x97,0x96,0x5a,0xf4,0x9f,0x8d,0x25,0xb7,0xc5,0x66,0xf7,0xf7,0x5f,0x7e,0xca,0x2f,0xcd,0x9a,0xf2,0xa3,0x9b,0x4f,0x6f,0xc3,0xd9,0x64,0x38,0xda,0x87,0x97,0x8a,0x49,0x2d,0x80,0x16,0x73 +.byte 0x88,0x62,0xd2,0xdf,0x4f,0xf7,0x79,0xc0,0x83,0xeb,0x2b,0x66,0x5a,0x21,0x3a,0xa2,0x2a,0xed,0x8c,0xe7,0x91,0x6d,0x56,0x18,0xfc,0x59,0x68,0xea,0x9f,0x5c,0x3c,0xd5,0x0f,0x64,0x70,0x89,0x22,0x83,0xed,0xfa,0xc9,0x21,0x68,0x3c,0x69,0xb8,0x3e,0x89,0xb5,0x9d,0x8b,0xc8,0xf7,0x57,0x17,0x27,0x90,0x12,0xa7,0xd2,0x4d,0x2c,0x30,0x64 +.byte 0x42,0xbe,0xa6,0x49,0x4e,0xa3,0x3b,0xdb,0xdb,0x64,0x0e,0x89,0x66,0x87,0x72,0x90,0x86,0x1d,0x0b,0x61,0x32,0x47,0x3d,0x55,0x81,0xb2,0x50,0x5a,0x76,0x6c,0xa3,0x46,0x12,0x1b,0xaf,0x6e,0xbf,0xfd,0x98,0x2f,0xb7,0xd2,0x31,0x92,0xb5,0x26,0x1a,0x3d,0xfa,0x5d,0xc0,0x24,0x44,0xd2,0x6b,0x1c,0x81,0xf5,0x5d,0x50,0xb0,0x33,0x18,0xe0 +.byte 0xc5,0xb3,0x6b,0xf4,0xfd,0xde,0xf7,0x2f,0x69,0x1d,0x5a,0xfe,0x03,0x6d,0xca,0xad,0x29,0xe0,0x6e,0x70,0xcd,0xe3,0x6d,0x38,0xef,0xf1,0x3a,0x76,0x2b,0x2c,0xb6,0xcd,0xff,0xeb,0xbc,0xe7,0xd9,0x40,0xbe,0x23,0x61,0x20,0xd5,0xb8,0x66,0x77,0x65,0xc9,0x33,0xf5,0x75,0x8e,0x15,0x98,0x3f,0xb1,0x4a,0xb8,0x1c,0x47,0x73,0x45,0x0f,0x73 +.byte 0x2a,0xa1,0xb7,0x73,0x76,0x94,0x16,0x45,0xcf,0xd6,0x8f,0xe3,0x62,0x8a,0x42,0xfd,0xe3,0x1e,0xe0,0x7d,0xb5,0x99,0xbd,0x1c,0xf2,0x60,0xb2,0x72,0xa8,0x4b,0x19,0xd6,0xd0,0xdb,0x0b,0x1f,0xc9,0x68,0xc0,0xf3,0x65,0x04,0x50,0x41,0xf0,0xb3,0x0e,0x0a,0x9d,0x7f,0x0b,0x1f,0xeb,0x5b,0x4c,0x58,0x6a,0xf2,0x02,0x95,0xd2,0xf3,0xac,0xe5 +.byte 0x69,0x81,0xb1,0x3f,0x08,0xfc,0xba,0xcb,0x36,0xcd,0x54,0x28,0xac,0x65,0xd8,0x81,0xab,0xc1,0x6a,0x51,0x97,0x21,0xe4,0xc6,0xaf,0xd8,0x76,0x76,0xa4,0xc4,0xd0,0x58,0x63,0xdf,0x32,0xf5,0x04,0xfb,0x11,0xeb,0x76,0x39,0xda,0x55,0xf4,0x7e,0x1c,0x7b,0x04,0x07,0x4d,0x5a,0xeb,0x74,0x0a,0x57,0xcf,0x10,0xf6,0x0e,0x73,0x02,0x25,0x67 +.byte 0x4f,0x8f,0x37,0x75,0x8f,0x44,0x2a,0x1a,0x6d,0x05,0xda,0xe0,0xa0,0xaa,0xd2,0x78,0xaa,0x7e,0x76,0x0a,0xde,0x2a,0x54,0xae,0x1e,0x39,0xcc,0x3c,0x1c,0xa6,0xd5,0x8a,0xca,0xb4,0xcc,0x76,0xb9,0x30,0xd2,0xe2,0x46,0x31,0xb6,0x51,0xcf,0xe2,0x24,0x77,0xc9,0x9b,0x57,0x3c,0xa3,0x84,0x60,0x59,0x28,0x5f,0x23,0x74,0x17,0x79,0x42,0xbe +.byte 0x60,0x3f,0x09,0x6a,0x43,0x8e,0x40,0x25,0x79,0xb5,0xbb,0xbb,0x72,0x50,0xad,0x4f,0xaa,0xa2,0xd4,0xb2,0xc6,0x7d,0x50,0x7b,0x98,0x59,0x22,0x06,0x7d,0x2c,0x35,0xdd,0x44,0x34,0x9c,0x28,0x98,0xf3,0xe5,0xd0,0x7e,0x09,0xbe,0xc4,0x00,0x72,0xd5,0xa6,0x3b,0x0e,0xb1,0x18,0x91,0x0a,0x4d,0x5d,0xe2,0x0a,0x98,0x79,0x30,0x9b,0xaa,0x38 +.byte 0x03,0x2b,0x6c,0xb2,0x8e,0x0a,0x1d,0x30,0x59,0x8a,0xe8,0x6c,0x6d,0xb5,0xd4,0x91,0xc5,0x28,0x1d,0x5e,0x49,0xe0,0xfc,0x26,0x7f,0x40,0xc0,0x6a,0x81,0x0d,0xb9,0xc6,0x05,0xc6,0x18,0x82,0x70,0xf6,0xea,0x0e,0xb4,0x85,0xba,0x5d,0xfa,0xfd,0xe3,0xd6,0x08,0x7c,0x3d,0x99,0x03,0xd4,0xdc,0x9b,0x50,0x12,0xc8,0xbd,0x8c,0x47,0x67,0x28 +.byte 0x83,0x97,0xca,0xef,0xc3,0x1c,0x2b,0x6e,0x3b,0xf7,0xca,0x7a,0x68,0x6e,0x39,0x25,0x58,0xf7,0xa4,0x11,0x9d,0x8d,0x49,0x29,0xd6,0x6e,0x0b,0x0a,0xcf,0xa7,0x04,0x14,0x6f,0xc4,0x4c,0x36,0x1a,0x16,0x3e,0x8f,0x99,0x69,0x94,0x1d,0xa8,0x66,0x93,0xeb,0x1d,0x82,0xfd,0x3f,0x84,0xb0,0x9d,0xa4,0xe1,0xb0,0xd4,0x9d,0xb2,0x60,0x20,0xfb +.byte 0xd3,0xa0,0xdc,0x79,0x83,0xb0,0xfc,0x50,0x18,0x57,0xe1,0xeb,0x44,0x25,0x05,0xab,0x27,0xfb,0x5f,0x83,0xcd,0x51,0xd0,0x3b,0x80,0x4a,0xce,0xbf,0xe9,0xfe,0x46,0xd2,0x5f,0xea,0x8c,0x89,0x48,0xc8,0x65,0xdd,0x2a,0xa4,0xda,0x54,0xc2,0x37,0x7e,0xd7,0xff,0x80,0x5b,0xf0,0xc3,0x40,0x44,0x40,0x72,0x63,0x23,0xc6,0x9a,0x48,0xf3,0x4b +.byte 0x91,0x64,0x26,0xfc,0xf3,0xa0,0xb9,0x06,0x0c,0x88,0xbb,0xc0,0x93,0x73,0x63,0xf6,0x9c,0x0d,0xe2,0xf6,0xee,0xe0,0x51,0xfd,0xae,0x4d,0x21,0xb9,0x6b,0x7d,0x1e,0x34,0xa0,0x4d,0xe4,0x25,0x30,0xe6,0x81,0x2e,0x32,0xef,0xb9,0x9e,0xaf,0xa0,0x22,0xe0,0x67,0xe6,0x07,0x55,0x3a,0xed,0xef,0x4f,0x87,0x2f,0x44,0xd2,0xef,0xc1,0xfb,0xc4 +.byte 0x7b,0x27,0x20,0x44,0xd2,0xd6,0xf9,0xf3,0x67,0xc1,0xbf,0xaa,0xd5,0x9c,0xd9,0x2c,0xd5,0xf1,0x42,0x2d,0xec,0x39,0xb5,0xc1,0x18,0xed,0x6c,0x47,0x80,0xf8,0x6f,0x66,0x10,0xee,0x1d,0xd6,0x79,0x01,0x4e,0x2a,0xd0,0x83,0xa7,0x9d,0x1d,0x81,0xce,0xf5,0x6f,0x26,0x86,0xd2,0xd7,0x56,0x15,0x65,0x48,0x4c,0xf1,0xf9,0x21,0x77,0xd1,0x84 +.byte 0x22,0xce,0x4d,0x8d,0x83,0xda,0x8c,0x50,0x56,0xc8,0x3b,0xc5,0xb6,0xcf,0x3e,0x0d,0x50,0xe5,0x9d,0x6c,0xb5,0x2a,0x5a,0x58,0x28,0xf5,0x0a,0x05,0xf3,0x0e,0x40,0x8e,0xb6,0xb4,0xdf,0x11,0x1b,0x34,0x81,0xc5,0x0e,0x09,0xa6,0xfc,0x46,0x14,0x02,0x78,0x94,0xbb,0x63,0x9d,0x3e,0x25,0x2c,0xc8,0x1b,0x5c,0xef,0x64,0x77,0x0c,0x04,0x40 +.byte 0xe1,0x45,0x85,0xf8,0x07,0xbf,0x14,0x65,0xe9,0xfc,0xba,0xe4,0x9c,0xa7,0x91,0x56,0x2a,0x3a,0x8e,0x33,0xae,0x56,0x04,0x9d,0x35,0xbc,0xad,0x64,0x0e,0x99,0x8e,0xb5,0x84,0x72,0xcf,0xcc,0x81,0x14,0x11,0x9e,0xe6,0xac,0x0d,0x41,0x43,0x4e,0x2a,0x0d,0xda,0x98,0x42,0xfa,0x8c,0x21,0x79,0x93,0xa3,0xdf,0x84,0x88,0x76,0x14,0x5b,0xb9 +.byte 0xff,0xe1,0xab,0x94,0xc3,0xcd,0x10,0x69,0xee,0x53,0xea,0xfe,0xfb,0xaa,0x43,0x8f,0xdd,0x55,0x88,0x34,0x5d,0x55,0x0f,0x42,0x4d,0x1d,0x93,0xce,0x96,0x67,0xf8,0x33,0xc7,0xca,0x34,0x11,0x28,0xb2,0xed,0x0f,0x00,0x40,0x84,0xee,0x51,0x26,0x6e,0x7b,0x2d,0x77,0xeb,0x18,0xb8,0x9a,0xad,0x28,0xb6,0x6c,0x5e,0xde,0x10,0x4c,0x29,0x1d +.byte 0x79,0x3c,0x2e,0x1c,0xf0,0xc8,0xb3,0xee,0x19,0x7a,0x10,0xe1,0xe3,0x05,0x1e,0x63,0xe9,0x00,0xd7,0xfe,0x83,0xe7,0x54,0xff,0x65,0x9a,0x27,0xa3,0x86,0x72,0x5c,0xb6,0xef,0xf5,0x84,0x68,0x1e,0xae,0xe6,0xf8,0x66,0x9c,0x1b,0x86,0xab,0xfa,0x1a,0xe3,0xb8,0x97,0x16,0xb1,0xb7,0x42,0xfa,0x85,0xa3,0x3a,0x0d,0x21,0xd2,0x35,0xb1,0x89 +.byte 0xf0,0x4f,0x1a,0x1d,0x45,0x34,0x2f,0x31,0x12,0x8c,0x19,0xe7,0x4b,0x14,0xa7,0xcf,0x0f,0xf9,0xcd,0x77,0x40,0xbe,0x09,0xeb,0xc3,0x3e,0x4a,0x37,0x55,0xab,0xbb,0x9c,0xe5,0x22,0x56,0x8a,0x66,0xfa,0xb1,0xff,0x73,0x29,0x52,0xb1,0x89,0xf7,0xab,0xa6,0x58,0x53,0x97,0xfd,0x44,0xda,0xbd,0x0b,0x1f,0xc8,0x88,0x01,0xcc,0x5e,0xf7,0x05 +.byte 0xbd,0xf7,0x0a,0x4d,0xcb,0xef,0xbf,0xd9,0x8e,0x15,0xc3,0x40,0xb9,0xc9,0x14,0xe5,0x05,0x3c,0x20,0x67,0xfe,0xdc,0xa6,0xb8,0x92,0xbd,0xf5,0x33,0xb5,0x77,0x11,0x28,0x47,0x21,0x28,0x18,0x61,0xf8,0x1c,0xdb,0x65,0xad,0x89,0x0d,0x98,0x79,0xca,0x2b,0xa3,0x4f,0x16,0xa6,0xb3,0xb9,0xcc,0x47,0x5b,0x13,0x96,0x2e,0x39,0x78,0x24,0xc5 +.byte 0xf9,0xf5,0xae,0xdc,0x34,0x3c,0xf7,0x48,0x0d,0x75,0xaf,0x51,0x75,0x48,0xbe,0x4d,0x73,0x89,0x5a,0xfc,0xd7,0x51,0xd3,0x93,0xa8,0xbc,0xc3,0xa6,0x6b,0x63,0xc1,0xc3,0x7b,0x48,0xf1,0x57,0xe4,0xb4,0xce,0x5f,0x18,0xae,0xdc,0x61,0x99,0xaa,0x7e,0x49,0xd6,0xb5,0x2c,0x62,0xb8,0x8c,0x4a,0x94,0xc1,0xc2,0x13,0x23,0xdc,0x7c,0x48,0xc2 +.byte 0xaa,0xc4,0xd9,0xc0,0x09,0x11,0x6e,0x35,0x07,0x14,0x77,0x7e,0xeb,0x87,0x00,0x05,0x30,0xec,0xb2,0xc6,0xde,0x6e,0x42,0x0b,0x2a,0xb6,0xca,0xb1,0xdc,0x69,0x57,0x1b,0xad,0x52,0xa8,0x22,0x1e,0xb5,0x2b,0xb5,0x8e,0x39,0x4b,0xbf,0x38,0xf4,0xb2,0xf5,0xa1,0x9c,0x7b,0x7f,0x6c,0x14,0x48,0x37,0xa9,0xf9,0xcd,0x85,0x50,0x53,0xb0,0xc1 +.byte 0x15,0x28,0x19,0x3b,0xb1,0x04,0x44,0x93,0x7a,0x16,0x76,0x69,0xa1,0x5c,0x67,0xcc,0x8d,0x02,0x56,0xcd,0xd9,0x91,0x49,0x8c,0x1b,0xc9,0x89,0x98,0x09,0x2e,0x5b,0xf8,0x7c,0xe6,0x0f,0x46,0xb0,0xcc,0xe5,0x75,0x63,0xaf,0x40,0xd5,0xa3,0x45,0x4a,0x76,0x67,0x1d,0x81,0xc2,0x25,0x85,0x7f,0x52,0xc5,0xf8,0x6d,0xd9,0xb6,0xa8,0xa4,0x96 +.byte 0x63,0xcc,0x15,0xc5,0xec,0x40,0x0e,0x08,0xf7,0x6f,0x85,0xa5,0xe7,0x2e,0xbe,0x3f,0xf4,0xc8,0x74,0xc7,0xed,0x86,0x85,0xc0,0x44,0x9e,0x80,0xc8,0x89,0xdc,0x16,0x47,0xb1,0x68,0x0e,0x65,0x66,0x0f,0xbc,0x33,0xb1,0x78,0x1e,0x5e,0xd7,0xde,0x97,0x96,0xb8,0x74,0x5c,0x90,0x7a,0xed,0x36,0xf4,0x10,0x91,0x5a,0x42,0x92,0x81,0x11,0x73 +.byte 0x3e,0xf1,0x5e,0xfb,0xc2,0x38,0xe6,0xe5,0x41,0xce,0x96,0xed,0x44,0x14,0x9c,0xc0,0x1f,0x83,0x5f,0xdd,0x50,0x87,0x90,0x86,0x50,0x61,0x87,0x99,0x7c,0x64,0x2d,0x50,0x17,0xa3,0xb0,0x7e,0x69,0xd3,0x86,0xb4,0x7c,0xe7,0x15,0x34,0x9e,0x3b,0x17,0xc0,0x2d,0x08,0x60,0x8b,0xae,0xec,0xa2,0xf6,0xf1,0xa4,0xbc,0x7b,0xc2,0x75,0x91,0x13 +.byte 0xf6,0xd0,0x71,0xf0,0x3c,0x9c,0x51,0xb3,0x33,0x53,0x57,0x47,0x8b,0x47,0xb0,0x0b,0x95,0x9a,0x39,0x70,0x63,0x91,0xcc,0xd8,0xd0,0x23,0x32,0xc0,0xb6,0x0f,0x91,0x30,0x29,0x45,0xf1,0xfc,0xa1,0x83,0x10,0x9a,0xa4,0x05,0x05,0x9f,0x33,0xbd,0xaf,0x16,0x3e,0x53,0x39,0xb1,0x4b,0x76,0x55,0x3e,0x6f,0x47,0x23,0x59,0x4c,0xbb,0x82,0x31 +.byte 0x19,0xe2,0xb1,0x49,0x20,0x91,0x2d,0xb0,0xfe,0xa6,0xae,0x7f,0x6e,0xd1,0x5b,0xb9,0x84,0x18,0x0f,0x68,0xc6,0x56,0x8a,0x22,0x81,0x3f,0x38,0x42,0x7a,0x31,0xa1,0xc1,0xf7,0x10,0x6a,0xc3,0xb1,0xaf,0x19,0xad,0x06,0x3a,0x53,0x9d,0x44,0x9f,0xe7,0x25,0xac,0x59,0x06,0xb9,0xd2,0xf6,0xce,0xb6,0x1e,0x4d,0x65,0x2e,0x05,0xb4,0x14,0x91 +.byte 0xfb,0x5b,0x26,0xd0,0xee,0xfa,0x45,0x5b,0x0c,0xd5,0x5c,0x1f,0x0c,0xe0,0xf6,0x50,0x78,0x77,0x7e,0x83,0x04,0xec,0x3b,0x53,0x28,0x97,0x56,0x61,0xeb,0xa0,0x78,0xe5,0xc0,0xb2,0x3c,0xcd,0x6f,0x4b,0xda,0x11,0x00,0x93,0x49,0x9f,0x03,0x22,0x39,0x3a,0xc8,0xef,0x01,0x91,0x12,0x36,0x15,0x0c,0x47,0xd5,0x8b,0x77,0x5e,0x5f,0x91,0x4b +.byte 0x44,0x98,0xa0,0xa0,0x46,0x0f,0x17,0xef,0xf9,0x52,0x0b,0x92,0xc1,0xe0,0xfc,0x63,0x9b,0x6d,0xe2,0xde,0x88,0x89,0x32,0x89,0x93,0x44,0x6d,0x69,0xe7,0x26,0xfd,0x77,0xc0,0x18,0x58,0xdb,0x74,0xec,0x04,0x0c,0x60,0x51,0x74,0xca,0x49,0x3e,0x4f,0x5f,0xaa,0x53,0xf2,0xc1,0xcb,0x89,0x1f,0x69,0xaa,0xbb,0x97,0x17,0x04,0x49,0x5e,0x44 +.byte 0xf3,0xf3,0xc4,0x98,0x9d,0x49,0x1e,0xb0,0x27,0x7d,0xff,0x54,0xa5,0xed,0xbe,0xb0,0x52,0xf6,0x00,0x87,0x67,0x2d,0x28,0xdb,0x09,0x4e,0xa2,0xee,0x4f,0x81,0xeb,0xa1,0xca,0x2b,0x07,0x2f,0x54,0x6d,0x5a,0x2e,0x13,0xa4,0xd0,0xac,0x21,0x7c,0x44,0xc0,0x98,0xac,0xe4,0x6e,0x94,0xd1,0x5b,0x5e,0xd6,0xf1,0x3c,0x45,0x88,0xe1,0xbd,0x58 +.byte 0xf1,0xc7,0xba,0x36,0x2c,0x15,0xb9,0xf4,0xa3,0xea,0x73,0xb4,0x91,0x53,0xd8,0x18,0x86,0x23,0x87,0x0b,0x7a,0x4a,0x2d,0x2d,0x3d,0x73,0xcb,0x05,0x11,0x4c,0x19,0x26,0xf2,0x05,0x89,0xc8,0x29,0x26,0xa7,0xe4,0xcb,0x43,0xd0,0xf6,0xbc,0x76,0xbd,0x9a,0x17,0x4a,0xf1,0x39,0xe3,0xde,0x05,0x10,0x8a,0xd3,0x11,0x53,0x61,0xef,0x33,0xd9 +.byte 0x65,0x0d,0x99,0x0b,0x39,0xa4,0x1b,0x4f,0x0b,0xa5,0xf1,0x37,0xa3,0x4f,0x54,0xa7,0x29,0xc1,0xae,0x88,0x5c,0x13,0x2f,0xb2,0xbf,0xcf,0x1b,0x0d,0xa0,0x68,0x21,0xe2,0x20,0x3f,0x02,0x9f,0x08,0x39,0xc6,0x20,0x2d,0x08,0x01,0x5d,0xf1,0x47,0xde,0x88,0xad,0x49,0x09,0xf7,0x1a,0x0c,0xa7,0x29,0x91,0xe5,0xfc,0xc5,0xde,0xd7,0x92,0x3f +.byte 0xe5,0x0c,0x91,0xea,0x24,0xfb,0x02,0x9a,0x13,0x3a,0x61,0x01,0x9d,0x7e,0x9d,0x11,0xf8,0xbd,0xe0,0x05,0xbb,0x13,0xf0,0x00,0x67,0x90,0x6f,0x80,0xe7,0x2e,0xfc,0xe0,0xea,0x8a,0x9d,0x2c,0x13,0x57,0x4c,0x78,0x1c,0x44,0xe2,0xa6,0x62,0x01,0x46,0xf8,0xbe,0xf4,0x51,0x32,0x15,0xd4,0x3c,0x7d,0x3b,0xcc,0xfd,0xc3,0x46,0x43,0xf1,0xfa +.byte 0x9e,0xee,0xad,0x47,0x8f,0x32,0x31,0x94,0x70,0x92,0xea,0x45,0xe3,0x63,0xd6,0x28,0x23,0xa5,0xdf,0x61,0xee,0x19,0x1a,0x5e,0xb0,0xe7,0x17,0xab,0xac,0xb4,0x03,0xed,0xf6,0x9e,0xba,0xdf,0x52,0x88,0xb7,0xca,0x7c,0x27,0xcd,0x7b,0xf8,0x1e,0x54,0x4b,0xe6,0xa3,0x91,0xf7,0xeb,0x22,0x65,0x95,0x13,0xe1,0xac,0xb6,0x22,0x80,0xe3,0xeb +.byte 0xf9,0xde,0xf1,0xb7,0x6a,0xfd,0xc7,0xb8,0x9b,0x9c,0x49,0x4f,0x84,0x7f,0x68,0x93,0x6c,0x3c,0xea,0xb1,0x8a,0xeb,0x23,0xca,0x2d,0x5e,0x29,0xb5,0x52,0x49,0x98,0x12,0x3f,0xed,0xf0,0xb7,0xbc,0x22,0x14,0x73,0x92,0x84,0x1b,0x3e,0x2f,0xed,0x24,0x1e,0x62,0xcc,0x09,0xe8,0x7c,0x5a,0x08,0xd4,0xc6,0xd9,0xd1,0x55,0x66,0x18,0x2c,0x6a +.byte 0x99,0xc3,0x0e,0x1e,0x7b,0xb7,0xd4,0xbd,0x0e,0x1f,0x22,0x85,0x09,0x2c,0xcf,0xff,0x79,0x9f,0x93,0xbe,0xec,0xed,0x63,0xb7,0x97,0xbb,0xeb,0xd6,0x70,0x76,0xa9,0x4f,0xb7,0x9a,0x60,0x5b,0x50,0xdf,0x85,0x46,0x69,0xa0,0x9a,0x86,0xe3,0xe2,0x13,0x2b,0x8c,0x0f,0x3b,0xab,0xa8,0xce,0xa3,0xb0,0x78,0x72,0x40,0xfb,0xd1,0x26,0x72,0xc1 +.byte 0x91,0x25,0x7b,0x29,0xde,0xcf,0x99,0xf3,0x8e,0x87,0x39,0x81,0x04,0xad,0x3b,0x11,0x6a,0xda,0x00,0xdd,0xe9,0x41,0xc1,0xd8,0xcc,0xf9,0x59,0xac,0x9b,0xb1,0x64,0x6f,0xb8,0xf4,0x9f,0x20,0xde,0x67,0x09,0x1b,0xdf,0x11,0xa5,0x94,0x56,0xab,0x76,0xba,0xc5,0xda,0x6c,0x86,0xe6,0xa4,0x73,0x59,0xa9,0xe3,0x68,0xb9,0xc0,0x50,0x1b,0x55 +.byte 0x21,0x9e,0xea,0x8d,0xcc,0x5d,0xee,0x88,0xe1,0x18,0x7c,0xcd,0x8f,0xff,0x18,0xbd,0x13,0xea,0x95,0xc4,0x8e,0xd3,0x92,0xfe,0x3d,0xda,0x6f,0xa5,0xbc,0xa0,0x77,0x5a,0x1d,0x61,0xff,0x7b,0x77,0xc4,0x06,0x25,0xc5,0xa7,0x76,0x36,0x55,0xe7,0xc0,0xf0,0x46,0x7e,0xca,0xe7,0xc1,0xe8,0x88,0x65,0xff,0xa7,0xb6,0x9c,0x83,0x1d,0x2e,0x6e +.byte 0xd6,0xd3,0x07,0x22,0x65,0x79,0x4f,0x3c,0x0a,0x5c,0x4f,0x95,0xb3,0x14,0x37,0x9b,0x0b,0x97,0x69,0xd9,0x5b,0x37,0x09,0xc3,0x70,0x5b,0x4f,0x11,0xcb,0xce,0xc0,0x06,0xf2,0xb9,0x32,0xdd,0x24,0x7b,0x8c,0xe6,0x0c,0x91,0x3b,0xa8,0xb0,0x82,0x56,0x4d,0xde,0xa0,0x5c,0x0b,0x5b,0x70,0x53,0x64,0x9d,0xab,0xbb,0x51,0x6b,0x8c,0x8f,0xe5 +.byte 0x1f,0xc0,0xb8,0xfe,0x1b,0xf6,0x24,0x26,0x62,0xcb,0x78,0x84,0x90,0x76,0x67,0x30,0x18,0x37,0xa9,0xca,0xb7,0x0d,0xac,0x17,0x86,0xb1,0x87,0x59,0x18,0xc3,0x9e,0x62,0x1b,0xb1,0x04,0x52,0xfc,0x7c,0x86,0xa0,0x37,0xb9,0x8b,0x7a,0x85,0x79,0x21,0xe0,0x0f,0x87,0x28,0x91,0xd0,0xe5,0x24,0x63,0x5c,0x7c,0xe8,0x47,0xfa,0x42,0x55,0xe9 +.byte 0x66,0xad,0xdf,0xc3,0x43,0x90,0x47,0x83,0x24,0x09,0x54,0x5f,0x14,0x27,0x53,0xb3,0x22,0x15,0x52,0x84,0x2f,0x61,0x8c,0x01,0x9e,0x34,0x61,0x3f,0x76,0x44,0x1c,0xca,0x79,0x2c,0x40,0x4e,0xa0,0x36,0x11,0xe0,0x23,0x0f,0xa7,0x78,0xf9,0xf9,0x2a,0x2c,0x98,0x5c,0xa9,0x2d,0x66,0xb9,0x87,0x43,0xd5,0xbc,0x64,0xe5,0x52,0x2f,0x1d,0xdc +.byte 0x1d,0xf4,0xb3,0x18,0x6b,0xd1,0x3b,0x8b,0xa3,0x47,0x65,0x62,0xcc,0xca,0x5f,0x00,0xbb,0x78,0x9d,0x35,0xd4,0x79,0x45,0x33,0xc7,0xa8,0x29,0x96,0x98,0xa4,0x23,0x2c,0x23,0x7f,0x5a,0x1d,0x09,0xb4,0xcf,0xac,0x54,0xcd,0x27,0xda,0x88,0x21,0xe2,0xb4,0x85,0xdc,0xc9,0x4a,0x6b,0xc4,0xfa,0x48,0xc5,0x91,0xc1,0x53,0x4b,0xa1,0x7a,0x9c +.byte 0x8a,0x7d,0x35,0x52,0xf1,0x58,0x9d,0x20,0x36,0xc2,0x78,0xdb,0x37,0xf8,0xa4,0x2f,0x50,0x98,0xb0,0x34,0x51,0x66,0x93,0xcf,0xe7,0xf0,0x06,0xf1,0xcd,0x0e,0x4f,0x33,0xcc,0x9b,0x73,0x3b,0xc9,0x51,0x63,0x6d,0x29,0x6b,0xf4,0x9d,0x2c,0x76,0x59,0xcd,0xfc,0x11,0x35,0x52,0xbd,0x3b,0x2e,0x7d,0x8a,0x0d,0xb0,0xbb,0x90,0x9b,0x9c,0xac +.byte 0x1c,0x80,0x89,0xd6,0x6f,0xaf,0xea,0x89,0x38,0x74,0xef,0x83,0x82,0x91,0xf7,0x74,0x96,0x30,0x40,0xe2,0x18,0x2b,0xb4,0xf6,0x15,0xf0,0x8e,0x63,0xe1,0x82,0x55,0x7b,0x65,0x70,0x33,0x14,0xef,0x7a,0x7c,0x2d,0xa9,0x17,0x1b,0x53,0x1e,0xf8,0x98,0x1b,0xbe,0xc8,0x00,0xf5,0xbf,0x79,0xe7,0x8e,0xf2,0xdb,0x59,0x0d,0x46,0xab,0x43,0xd0 +.byte 0xe4,0xa0,0xeb,0x29,0x6a,0x8b,0xc1,0x99,0xa6,0xcc,0x8e,0xe5,0xde,0x67,0xdf,0x49,0x09,0x62,0x8d,0x4b,0xa1,0x1c,0x3b,0x01,0xe2,0x95,0x65,0x10,0xa5,0x91,0xd0,0x48,0x35,0x96,0xcf,0xe4,0x51,0xd2,0x7f,0x93,0x49,0xab,0x1a,0xba,0x08,0x33,0x54,0x34,0xd7,0x00,0xc9,0xa0,0x07,0x03,0xc7,0x8a,0x65,0xa2,0x84,0x60,0xcd,0xaa,0xa2,0x46 +.byte 0x8c,0x67,0xd9,0xc1,0xe7,0x58,0xc5,0x1d,0xc0,0xb3,0xc6,0xb2,0x2a,0xfb,0x70,0x04,0xa2,0x25,0x7f,0x75,0x3c,0xd5,0x8e,0x9c,0x33,0xa2,0xdc,0x20,0x4c,0x26,0x5b,0xbe,0xd9,0x00,0x5d,0xa2,0xbd,0x42,0xbd,0x0d,0xd6,0x52,0x79,0xb5,0x67,0xf6,0x27,0x62,0xc8,0x64,0x05,0xc5,0x0f,0xae,0xe1,0x78,0x39,0xd1,0xb5,0x28,0xe9,0xd4,0x2a,0xaa +.byte 0xd4,0xc4,0x3e,0x43,0x27,0x83,0xfa,0xdb,0x46,0x73,0x20,0xcd,0x2c,0xba,0x33,0xb4,0x77,0x10,0x32,0x3d,0x8e,0x56,0x88,0x81,0xe1,0x4c,0x8b,0x46,0x60,0xcb,0xb7,0x67,0xd7,0x7b,0xc2,0x47,0x7d,0xd8,0x2d,0x4c,0x09,0x9f,0x07,0x8e,0x34,0x45,0xf4,0x50,0x69,0xfd,0x35,0x0a,0x09,0x9e,0xac,0x49,0x5f,0xdf,0x72,0x84,0x97,0x93,0x30,0x2c +.byte 0xc6,0x20,0x6f,0xb5,0x18,0x03,0xb6,0x30,0x23,0xc8,0xcd,0xa1,0x43,0xbd,0xbb,0x6f,0xde,0xb3,0xcb,0x1c,0xdd,0x41,0x71,0xfa,0x37,0xa7,0xa9,0x57,0x5a,0xf7,0xee,0xcd,0xb1,0xc1,0xb6,0x78,0x1c,0xe3,0xde,0x5c,0x02,0xc8,0xce,0xb7,0x8e,0x72,0xce,0xfd,0x79,0xcf,0x1a,0xef,0xcb,0x5b,0x5d,0x3c,0x1d,0xc8,0x1e,0x9f,0x67,0x26,0x86,0xd3 +.byte 0x3b,0x98,0x49,0x04,0xcd,0x1b,0x48,0x7c,0xa6,0xbe,0x37,0x0b,0x19,0xb1,0xb7,0x8a,0x74,0x0a,0xd9,0x4f,0x7b,0xbb,0x8e,0xc6,0x9b,0xdd,0xbc,0x61,0xfd,0xdd,0x86,0x7e,0x70,0x2e,0xe4,0x94,0xb4,0x62,0x47,0x6b,0x7c,0x92,0x41,0xda,0x05,0xdc,0xaf,0x5c,0x93,0xbc,0x7d,0xad,0xce,0x44,0x9e,0x27,0x1c,0x74,0x30,0x01,0xf2,0x8a,0x22,0xce +.byte 0x88,0x61,0xf5,0xb8,0xe2,0xf0,0xca,0x14,0x21,0x53,0xd3,0xbe,0x95,0x8f,0x52,0x10,0x21,0xc5,0x25,0x16,0xa1,0x4f,0xef,0x9a,0x6f,0xce,0xe9,0xee,0x06,0xa8,0x32,0xa4,0xac,0xee,0xd8,0x95,0x0b,0x65,0x10,0xbc,0xb3,0x15,0x48,0xf9,0x96,0xee,0xde,0x5d,0xf6,0x38,0x5f,0x32,0x70,0xd1,0x29,0xa8,0x1d,0xdc,0xf4,0x34,0x2d,0x0c,0x93,0x48 +.byte 0x8c,0x40,0xed,0x35,0x41,0xfe,0x4b,0xab,0x20,0x7d,0x95,0x74,0x02,0xe5,0x71,0x76,0x7e,0x59,0x35,0xb3,0xd7,0x43,0x1f,0xd4,0xe6,0x02,0x86,0xba,0x4f,0x53,0xd9,0xc3,0x7d,0x7f,0x3d,0xb6,0xd8,0x92,0x07,0x89,0x99,0x46,0xf8,0x09,0xcd,0x19,0x43,0x93,0xa7,0xc1,0xb2,0x5d,0xec,0xbf,0x09,0xf4,0xba,0xfc,0xf7,0xf1,0xa7,0x2e,0xfe,0x71 +.byte 0x04,0x58,0xab,0x16,0xd7,0xc0,0xf7,0x03,0xd4,0xc4,0xb9,0xe4,0xd8,0xfc,0x5b,0x66,0xa6,0xb3,0x6a,0x94,0x0e,0xba,0x8c,0x54,0x5c,0x8c,0x02,0x0a,0x33,0xcb,0xde,0x1c,0xad,0x6d,0xef,0x48,0x05,0xa6,0xca,0x9a,0x27,0xd6,0x1c,0xc3,0xea,0x3a,0x46,0x20,0xec,0x72,0xc4,0x94,0x89,0x7e,0xba,0xa9,0x2f,0xe5,0xec,0x1a,0xe4,0x50,0x54,0xeb +.byte 0xd9,0x5a,0x08,0xc5,0x84,0xc1,0x9a,0xdf,0xb0,0xd4,0x9a,0x6d,0xa2,0x93,0x52,0xd2,0x4d,0x69,0x88,0xc8,0x40,0x2d,0x26,0xbd,0x7a,0x37,0x04,0x21,0xe1,0x9d,0xc9,0xed,0xda,0x7a,0x4c,0x11,0x49,0x14,0x42,0xa1,0xdb,0x6e,0xed,0x1b,0x37,0xbf,0x09,0xac,0x35,0xda,0x80,0xf6,0x75,0xd4,0x32,0x54,0xb5,0x18,0xe8,0x79,0x25,0xc4,0x95,0xe8 +.byte 0x74,0xcf,0x6d,0xac,0x34,0x1f,0xea,0xd4,0x2e,0xd1,0x77,0x5e,0x90,0x8f,0x12,0x51,0xbb,0x3c,0xdf,0xe6,0xf4,0x49,0x8c,0x0f,0x9a,0x8e,0xe3,0x96,0xbd,0xba,0xe6,0x47,0x4b,0x50,0xc7,0xa9,0x29,0xea,0x09,0x5d,0xef,0x3c,0x91,0x48,0xc6,0x37,0xfd,0xac,0x7b,0xe5,0x04,0x25,0x93,0x0b,0xe3,0xce,0x32,0x46,0x38,0x81,0x97,0x57,0xbe,0x1f +.byte 0x3c,0x61,0x2d,0xd1,0x4e,0xca,0xbb,0x44,0xc6,0xfd,0xdf,0xdd,0x11,0xbf,0xbf,0xa8,0xc0,0x32,0x67,0xc1,0x2e,0xd7,0xbe,0x3c,0xe3,0xcb,0x57,0xa5,0x6d,0xbb,0x8e,0x0f,0x69,0x22,0x42,0xef,0x53,0x0f,0xce,0x09,0x6a,0xda,0xbf,0xd6,0xed,0x61,0x67,0x82,0x83,0x13,0x63,0x97,0x7d,0x1a,0xad,0x34,0x77,0x37,0xa6,0xe0,0x89,0xaa,0xd4,0xb6 +.byte 0x8f,0x93,0xff,0xb8,0x8f,0x63,0x14,0xfd,0x17,0xff,0xe5,0x7c,0x83,0x23,0xaa,0xe0,0xb9,0xd9,0x94,0x3a,0x1a,0xe7,0xa5,0xbd,0xa6,0x2b,0xd3,0x49,0xca,0xeb,0x7d,0x87,0x1d,0x54,0x16,0x93,0xec,0x14,0x8b,0x77,0x3c,0xb4,0xbe,0x33,0x76,0x5e,0xcb,0x33,0x27,0xd3,0x20,0xd6,0xed,0x0c,0x66,0xb8,0xe0,0x00,0xa6,0x76,0xcd,0x8b,0xb4,0xef +.byte 0x11,0xbc,0xe5,0x59,0xcf,0x1d,0xf5,0x15,0x58,0x4a,0xe1,0xfd,0x87,0x8c,0x7b,0xb9,0xa4,0x42,0x5a,0xed,0x51,0x7e,0x8d,0xa6,0x19,0xaa,0xc4,0xa6,0x14,0x74,0x45,0xb1,0xda,0x87,0x0f,0xd7,0xe7,0x66,0x3b,0xcd,0x04,0x02,0x14,0x20,0x41,0x15,0x4c,0x33,0x79,0x80,0x7d,0xd4,0x44,0x2c,0xab,0x6c,0xf4,0xa8,0xd4,0x31,0x43,0x7b,0xa7,0xc7 +.byte 0x65,0x0e,0x32,0xc8,0xc8,0x6d,0xf5,0x65,0x1b,0x26,0xf1,0xe4,0x68,0x15,0x88,0x1b,0x00,0x60,0x23,0x31,0xd7,0x4b,0x57,0xda,0xf1,0x19,0xa9,0xd9,0xaf,0xe6,0xa9,0x1e,0x2c,0x0d,0x23,0xe4,0x5b,0xcb,0x43,0x38,0xf0,0x93,0xd3,0xfb,0x6a,0x9b,0x83,0x30,0x55,0x96,0x9f,0x53,0x06,0x3f,0xaf,0x40,0x69,0xef,0x9a,0x47,0x6b,0xba,0x7c,0x10 +.byte 0x10,0x44,0x89,0xfa,0xb9,0x9e,0x70,0xed,0x25,0x59,0x68,0xae,0x9b,0x17,0xcf,0x80,0x6f,0x34,0xb8,0x07,0x40,0xe5,0x27,0x6d,0xcd,0x46,0x2c,0x36,0x90,0xf3,0x83,0x74,0x68,0x35,0xf2,0x05,0xa8,0xdf,0x4e,0x34,0xc5,0xb4,0xeb,0x5a,0x7d,0xe6,0x10,0x8a,0x23,0x54,0xeb,0x9b,0x27,0xf2,0x07,0xee,0xf9,0x05,0xc2,0x5a,0x88,0xbd,0x49,0x2e +.byte 0x1b,0x00,0x31,0x68,0x4a,0xc9,0x3a,0xc5,0x93,0x82,0xa8,0x39,0xba,0x55,0xcd,0xc1,0xda,0x49,0xc2,0x4c,0xf4,0x93,0x00,0xcf,0x61,0xa4,0xbb,0x8c,0x64,0x33,0x90,0x14,0x6d,0x1d,0xad,0x75,0x97,0xd9,0x1d,0xfb,0x27,0x67,0x43,0x04,0xdc,0x4e,0xdf,0x0e,0x0c,0x7e,0x1c,0x89,0xfe,0x31,0xb7,0x9b,0x07,0x5e,0x99,0x08,0x22,0xef,0x6e,0x4d +.byte 0x8b,0xd6,0x27,0xe6,0x24,0x1a,0x28,0xb0,0x22,0xa5,0x69,0x17,0x82,0x46,0xe3,0x90,0xe8,0x04,0xae,0x90,0x66,0x14,0xec,0xa2,0x1b,0x7e,0x09,0x13,0x32,0x9d,0xec,0x8b,0x51,0x5f,0xa8,0x96,0x8f,0x4c,0xc6,0xbd,0x5c,0x70,0x29,0x21,0xac,0xe9,0x6e,0xb0,0x0c,0x61,0x50,0xba,0xcc,0x55,0x71,0xda,0x2a,0x92,0x86,0x0c,0xff,0xaf,0x7a,0xcf +.byte 0xaf,0x2a,0xbd,0xd6,0x15,0xa4,0x4c,0x2e,0x76,0x0d,0xcf,0x10,0x11,0x4a,0xd1,0x89,0xdd,0x46,0x5f,0x6b,0x5a,0x02,0x05,0x49,0x6f,0x98,0x6a,0xa7,0x8a,0x66,0x87,0x59,0x23,0xb5,0x3f,0x2e,0x95,0x73,0xfe,0x48,0xe9,0x0d,0x17,0xa6,0xa5,0x4e,0x40,0x98,0x79,0x40,0x1a,0x10,0x1d,0x84,0xdd,0x6f,0x17,0xa7,0xb7,0xfb,0x49,0xbd,0x54,0x97 +.byte 0x0f,0x42,0x25,0x95,0x83,0xf0,0x97,0xe7,0x4c,0x24,0xb5,0xe8,0x23,0x0a,0xd6,0xbf,0xef,0x2c,0x03,0x4f,0x87,0x59,0xe8,0x80,0x87,0xcc,0x51,0x1b,0x94,0xd8,0x60,0xe7,0x10,0x4d,0x01,0xfd,0x83,0xf2,0xd8,0x8d,0x1b,0x33,0xbf,0xaf,0x36,0x41,0x47,0x51,0xe0,0x45,0x2a,0x05,0x5f,0xe1,0x92,0xf8,0xa5,0x15,0x46,0x35,0xd8,0x9b,0xe0,0xff +.byte 0xee,0xa6,0x4e,0x7d,0xfd,0x96,0xa5,0x75,0xdf,0x7e,0xb0,0x7d,0x14,0x73,0xdd,0xbe,0x17,0x6d,0xdd,0xec,0xac,0x9a,0x92,0x68,0xe3,0x44,0x16,0x63,0x22,0xa8,0x15,0x58,0x8c,0x11,0x23,0x46,0x18,0xae,0x47,0x39,0x87,0xc7,0x4c,0x30,0x09,0xce,0xe5,0xc4,0xd8,0x82,0xc6,0xc6,0x3d,0x31,0xf6,0x0f,0xb5,0x69,0x61,0x63,0x88,0xd6,0xb8,0xda +.byte 0x89,0x29,0x87,0x69,0x6e,0x3f,0x55,0x2f,0xbc,0x91,0x91,0x43,0x7d,0xb3,0x7b,0x99,0x5a,0x5a,0xb0,0x7d,0x90,0xa7,0xe7,0x30,0x0d,0x32,0xb2,0x43,0x43,0x78,0x59,0x6e,0xbb,0xd7,0x76,0xd4,0x5b,0x4d,0xc4,0xa9,0x99,0xdd,0xd3,0xce,0x3d,0x13,0x41,0x38,0x33,0xed,0xb8,0x76,0x1a,0xbb,0xfd,0x26,0xcd,0x69,0x89,0x22,0x16,0x9a,0x21,0x35 +.byte 0x38,0x77,0x14,0x10,0x42,0x17,0x1f,0xa1,0xbf,0x55,0xb4,0x51,0x62,0x15,0xac,0xd0,0xa2,0x71,0xe4,0x32,0x89,0x33,0x8b,0x74,0xc6,0x61,0x38,0xd0,0xfe,0x28,0x69,0xe6,0x88,0x1b,0x11,0x7e,0x46,0x39,0xba,0x24,0xdd,0x1f,0x61,0xf4,0x74,0xad,0x58,0x94,0xa9,0x3e,0xc7,0x2a,0x9e,0xc0,0xe1,0x1c,0xee,0x21,0xab,0x3e,0x65,0x0c,0xe8,0xd8 +.byte 0x71,0x52,0xf3,0x6c,0x64,0x53,0x75,0x17,0x87,0x55,0x14,0x42,0x25,0x7f,0xe7,0x0d,0x89,0x1b,0x77,0x26,0xc4,0xaa,0xcc,0x91,0x47,0xe5,0x54,0xae,0x1a,0x0d,0x04,0x99,0xeb,0x56,0xd8,0xb4,0x6d,0xeb,0xec,0x2f,0x6c,0xc5,0x8e,0x76,0xe1,0xa0,0xa7,0x42,0x06,0xc9,0xc3,0x03,0xee,0xa9,0x9b,0x1e,0xfc,0x11,0xf5,0x2f,0x2b,0x14,0xb8,0x9f +.byte 0x87,0x61,0x9b,0xc7,0x38,0x0e,0x58,0xf1,0xd4,0x36,0xca,0x82,0x85,0x9c,0xde,0xec,0xd3,0x1e,0x29,0x4e,0x70,0x9e,0x9a,0xe0,0x8b,0x6f,0xfe,0xd0,0xe9,0x95,0x51,0xcf,0x36,0x31,0x9c,0xff,0x63,0xc6,0x04,0x8e,0x61,0xc2,0xcb,0x3a,0xfa,0xd0,0xd7,0x29,0xbd,0xe7,0x8a,0x2b,0x8e,0xa0,0xac,0x58,0x93,0xb3,0x52,0xca,0x80,0x17,0xd2,0x2d +.byte 0x93,0x5f,0xe0,0x8a,0x47,0x3c,0x67,0x95,0x64,0x91,0xa4,0x76,0xa4,0x5f,0xfa,0x93,0x4d,0xc7,0x6e,0x5d,0x23,0x9f,0xe1,0x4a,0x16,0xff,0xa5,0xf0,0x94,0xa8,0x02,0xcc,0x9a,0x84,0xd5,0x9d,0xb6,0xe5,0x7c,0x76,0x3f,0xc9,0xfd,0xdc,0x8e,0x59,0x9a,0x22,0x18,0x3c,0xe6,0x90,0x85,0x10,0x73,0x2d,0x65,0xa7,0xa7,0xe1,0xeb,0xc5,0x05,0x24 +.byte 0x1e,0x0b,0x31,0x19,0xb5,0xb0,0x8d,0xc0,0xb5,0x04,0xfe,0x9d,0xfa,0xf7,0xcd,0x71,0x29,0x40,0x19,0x23,0xed,0x2c,0xdb,0x89,0x89,0x8d,0x69,0x22,0x4c,0x9c,0xa7,0xf7,0xb1,0x56,0x87,0xa3,0x44,0xa9,0xa3,0x16,0x28,0xce,0x94,0x40,0x6f,0x71,0x77,0x0e,0x6d,0xe9,0x78,0xa2,0x2a,0x17,0x45,0x03,0xeb,0x1e,0xf1,0xfa,0x56,0x3e,0xa7,0x6b +.byte 0x08,0x06,0x6a,0xcb,0x8f,0x5e,0x0f,0xd3,0x6e,0x4b,0x21,0x31,0x73,0x50,0x94,0x56,0xf9,0xb9,0xc7,0x38,0x69,0xe8,0x09,0x3f,0x03,0xb3,0xb5,0xe8,0x2a,0x5e,0xf6,0xad,0xae,0x6f,0xab,0x6a,0x49,0xdd,0x93,0x6d,0xfb,0x8b,0xde,0xea,0x8b,0xb0,0xa1,0x44,0xf0,0xb3,0xf6,0xaa,0xe3,0xc8,0x04,0x87,0x9f,0x8b,0xee,0xab,0x13,0x1d,0x2d,0xeb +.byte 0x09,0x62,0x21,0x49,0x5f,0xb6,0x95,0xab,0xc4,0xee,0x69,0xfb,0x31,0xff,0xbf,0x1a,0xa6,0x4c,0x67,0x66,0x84,0xe6,0x0c,0xb7,0xb2,0x3e,0x3f,0xa4,0xb3,0x52,0xde,0x15,0xc9,0xa7,0xa9,0xb5,0x0d,0xe5,0x0b,0x99,0xa6,0xb6,0x8f,0x69,0xc5,0x6d,0x6c,0xbb,0x83,0x89,0x4e,0xfc,0x49,0x79,0x4d,0x46,0x31,0xa0,0x09,0x5f,0x5d,0xd0,0x5b,0x80 +.byte 0xa1,0xf4,0x36,0x48,0x97,0x6a,0xfd,0x34,0xcb,0x20,0xa8,0x01,0x25,0x04,0xe7,0x13,0x12,0x87,0x66,0x27,0x96,0x36,0xba,0x92,0xbd,0xda,0x94,0x11,0xef,0x90,0xbd,0xbc,0x9e,0xf9,0x63,0xb3,0xa6,0xc1,0xbb,0x46,0xe8,0x86,0x3f,0x2d,0xf9,0x11,0x3a,0x23,0xa8,0x7a,0x33,0x41,0x3e,0x2e,0x5d,0xde,0xc0,0xd2,0x23,0xca,0x41,0xa0,0xb9,0x70 +.byte 0x6d,0x31,0xf3,0x89,0x87,0x9b,0x72,0xd9,0x15,0x4d,0x8b,0x51,0xdd,0x56,0xa1,0xb4,0x68,0x52,0x65,0x81,0x12,0x46,0xea,0x24,0xb4,0x34,0xcc,0xa0,0xdb,0x7d,0x96,0xd9,0x8e,0x64,0x61,0x10,0x7c,0x2a,0x00,0x4d,0x82,0x61,0x54,0xa4,0x70,0x3d,0x9c,0xa5,0x0b,0xd2,0x08,0x71,0xa8,0x94,0xb1,0xb4,0x30,0x61,0x59,0x9f,0x72,0x61,0x56,0x2d +.byte 0xa3,0xf4,0x9d,0x1c,0xfc,0x49,0x9d,0x39,0x27,0xcb,0x54,0xb2,0xce,0x3c,0xb6,0x76,0xe5,0x8e,0xa5,0xe7,0x08,0xd4,0xc7,0x2c,0xa6,0x28,0xc8,0x3e,0x22,0x14,0x06,0x75,0x68,0x0d,0x6b,0xb5,0xa3,0x68,0x14,0x17,0xfe,0xb8,0xcc,0x26,0x5b,0x9d,0x0b,0xcc,0x3e,0xd7,0x6c,0xe0,0xec,0x5e,0x1e,0x1e,0xb8,0x9a,0xbe,0x91,0xb5,0xa6,0xb5,0x83 +.byte 0x28,0xc2,0x35,0x65,0xd3,0xde,0xdd,0x71,0x29,0x13,0xc1,0xee,0x78,0x22,0x34,0x0b,0x77,0x3a,0x48,0x98,0x26,0x43,0xc2,0xce,0x03,0xe8,0x75,0xf8,0x8a,0xdf,0x6a,0xb0,0xb4,0x8c,0x11,0x8c,0xe5,0x95,0x96,0x17,0xfb,0x06,0x5e,0x8f,0x36,0x10,0xc5,0x04,0x43,0x1b,0xed,0xd3,0xad,0xd4,0xa4,0xe0,0x17,0x85,0xed,0x9b,0xd8,0xae,0x98,0x46 +.byte 0x58,0x57,0x0e,0x46,0xea,0x3f,0x07,0x6d,0x0e,0x46,0xda,0x2f,0x68,0x2b,0xd6,0xe7,0x0d,0x4b,0xbe,0x32,0xee,0x10,0x73,0x18,0x7d,0x6b,0x2d,0x04,0x27,0x72,0xb1,0xe1,0xbf,0x89,0xaa,0x4d,0x1a,0xfc,0xbd,0xf2,0xc3,0x9f,0xf0,0x01,0x85,0x62,0x09,0x4d,0x08,0x2c,0x57,0x9a,0x7b,0xad,0x0b,0x79,0xff,0x14,0xa1,0x45,0xde,0x21,0x8f,0xe2 +.byte 0x93,0xd0,0x35,0x26,0xc3,0xbc,0x8c,0xb7,0x57,0x6a,0xdf,0x98,0xa7,0x75,0xc6,0xf6,0x4b,0x5f,0x91,0x6e,0x71,0x3a,0x5c,0x5f,0x57,0x63,0x34,0x87,0xf8,0x20,0x6a,0xa1,0xbf,0xf8,0xca,0x8e,0xf9,0xa9,0x10,0x8b,0xab,0x0b,0xc2,0xcc,0x71,0x89,0x7c,0xef,0x70,0x3a,0xb0,0xf6,0x90,0xcc,0x6b,0x2c,0xcc,0x8b,0x2a,0x21,0x78,0x23,0xa0,0x71 +.byte 0x8c,0x7b,0xc1,0x0f,0x27,0x72,0x40,0xe4,0x9e,0x35,0xf3,0x0a,0xc0,0x7e,0x7f,0xe5,0x9b,0xdb,0x93,0x49,0x08,0xc3,0x6b,0xb7,0xea,0xea,0xd4,0x5a,0x96,0x97,0x3c,0xdf,0xc7,0x02,0x39,0x9f,0xa3,0xca,0xdd,0x62,0xf3,0x68,0xc7,0xae,0x37,0xc1,0x35,0x73,0xb2,0x5d,0x99,0xe4,0xae,0x27,0x55,0x5e,0x6a,0xae,0x6f,0x1a,0x95,0x51,0xb1,0x3b +.byte 0xd7,0xb4,0x4d,0x3d,0x88,0x54,0x01,0xbe,0x2c,0x12,0x17,0x29,0x4f,0xf3,0xed,0x5a,0x1f,0xa9,0xf0,0x67,0xbd,0x7c,0xad,0xe5,0x58,0x52,0xd4,0xd1,0xfe,0x1e,0x1b,0xd6,0xce,0x7c,0xc3,0xa2,0xa9,0x72,0x9b,0x6a,0xe5,0xf9,0x39,0x22,0xaa,0x7f,0x2e,0xa2,0x53,0x75,0xf0,0x99,0x2e,0x36,0x86,0x83,0x10,0x63,0xd7,0xac,0xa3,0x52,0xa6,0x23 +.byte 0x80,0x46,0xe4,0xa9,0x07,0x79,0xe1,0x61,0x75,0xbf,0x08,0x31,0x6c,0xdd,0xe1,0x30,0xd0,0x35,0xc2,0xbd,0x30,0xb8,0x85,0xf3,0xd2,0x2c,0x90,0x7a,0xf0,0xd3,0x80,0xe5,0xf1,0xc2,0x58,0x3d,0xf7,0x3c,0xbc,0xff,0x03,0x4d,0xf7,0xad,0x2f,0xa6,0xfe,0x73,0xde,0xa8,0x60,0xd7,0x89,0x4a,0xcf,0x3d,0xf3,0xab,0x62,0xfa,0x9d,0x46,0xad,0xd0 +.byte 0x97,0x6f,0x89,0x84,0x16,0x9b,0x84,0xb2,0x6c,0x63,0x6d,0x29,0xee,0x8e,0x97,0x3c,0x48,0x19,0x92,0x62,0xdc,0x1d,0x35,0x9d,0xec,0x01,0x00,0x64,0xbf,0x4d,0x8b,0xa3,0x13,0x48,0x9f,0xb4,0x01,0x0d,0xb1,0xc4,0xf2,0xf2,0x6a,0x84,0x1a,0x07,0x3c,0x46,0xa6,0xb5,0x41,0x9a,0x32,0x7e,0xc3,0x4f,0x87,0x95,0x71,0x7a,0xbf,0x74,0xf8,0x0b +.byte 0xfb,0xa5,0xde,0xa8,0x35,0xf1,0xcb,0x04,0x8d,0x8b,0xd3,0xb0,0xc8,0x1d,0x6c,0xaf,0xb4,0x21,0x79,0x1c,0x34,0x71,0x2f,0xf5,0xc4,0xbe,0xad,0xbc,0xaf,0x2f,0x54,0x81,0xd9,0xf8,0xff,0x59,0xf9,0x4e,0x62,0x9f,0x7d,0x7c,0xe9,0xdc,0x67,0xae,0xa3,0x32,0x4b,0xf7,0x4e,0x53,0x4c,0x55,0x7d,0xc5,0xdd,0xd4,0x5d,0x93,0xb8,0x98,0x3e,0xd3 +.byte 0x15,0x65,0x52,0x78,0x5a,0xd2,0x21,0x84,0x5d,0x28,0xaf,0x44,0x7d,0x18,0xf8,0xdd,0x5c,0xc3,0x6e,0xc8,0x05,0x05,0x30,0xd0,0x82,0xf8,0x00,0x0f,0x3d,0x5c,0x62,0x7e,0xa6,0xd5,0x7b,0x9f,0xb1,0x44,0xb7,0x0d,0x22,0x81,0xe1,0x4a,0x2b,0x79,0x7e,0x39,0x4d,0x8a,0x9a,0xfd,0x94,0x0c,0xf7,0x23,0x10,0x99,0xd2,0xd2,0x8b,0x98,0xe5,0x9d +.byte 0xb0,0xbf,0xcf,0x06,0x08,0x80,0x32,0x69,0xfd,0x81,0x5f,0xb3,0x66,0x11,0x63,0xeb,0x30,0x1d,0xcd,0x5b,0x5b,0xec,0x0c,0xca,0x30,0x37,0xa0,0x82,0x79,0x75,0x87,0xc1,0xfa,0x5b,0x38,0x4b,0xe3,0xea,0x46,0x49,0x36,0x92,0x92,0xf0,0xc9,0x15,0xa5,0xec,0x9e,0x21,0xb6,0x9f,0xb4,0x6d,0xf6,0xef,0x5c,0x2f,0x7d,0xa4,0xb3,0x25,0xfb,0x13 +.byte 0x40,0xe1,0xa0,0x20,0x4a,0x3a,0xe2,0x3e,0xf5,0xe0,0x68,0x61,0x11,0x9a,0xfb,0x1e,0xe8,0x1b,0xe0,0x17,0x9c,0x8a,0xe5,0x53,0x74,0xdd,0xec,0xc6,0x03,0xc6,0xd0,0x9b,0xc2,0x0b,0x77,0x4c,0x36,0x2b,0xac,0x4e,0x4d,0xd2,0x26,0x70,0x39,0x96,0xb4,0x11,0x1a,0x5b,0xcc,0x3f,0xb9,0xcf,0x0d,0x04,0x55,0x05,0x00,0x66,0x8f,0xa9,0xec,0x31 +.byte 0xe5,0x47,0x4c,0x9b,0xb7,0x6e,0xa5,0xe7,0x9e,0x70,0xf4,0x02,0x2a,0x3c,0xa2,0x03,0x04,0x30,0x9e,0x3f,0x7c,0xaa,0x0a,0x8f,0x55,0x61,0xca,0x50,0x35,0xe6,0xa4,0x24,0x61,0x26,0x31,0x9e,0x9e,0x77,0x0d,0x15,0x3a,0xc0,0x88,0x32,0xb5,0xbb,0x3d,0x3e,0x59,0x25,0x52,0x81,0x2e,0x4b,0xc6,0x5d,0x9f,0x87,0x0f,0x1f,0x5e,0xec,0xdd,0xbe +.byte 0x32,0x6c,0x71,0xef,0xd2,0x9c,0xfd,0x70,0xc8,0xf6,0x1f,0xb9,0xc9,0xdd,0x4d,0x39,0x61,0x92,0xbd,0x0c,0x48,0x63,0x4b,0xd2,0x2b,0x8c,0x4b,0x35,0xb1,0x8e,0x04,0x44,0x3c,0xe1,0xde,0xfd,0x6e,0xde,0xeb,0x94,0x51,0xea,0x36,0x7b,0xc6,0x87,0x15,0x34,0x68,0xa0,0xb8,0x94,0xb6,0x56,0x33,0xf4,0xab,0x84,0xed,0x1c,0x36,0x91,0xa7,0x1b +.byte 0x03,0xca,0x48,0x64,0x16,0x5b,0x4b,0x69,0x47,0xae,0xd7,0xc9,0xcf,0x74,0xd2,0xbd,0x60,0x04,0x7c,0x66,0xe9,0x12,0x92,0x40,0x78,0x23,0x0b,0x5b,0xa0,0xda,0xf7,0xe4,0x9a,0xad,0x9c,0x31,0xe7,0xaa,0xad,0x5a,0xc3,0x45,0x00,0x6c,0xd3,0x4d,0x93,0xdf,0xb6,0x68,0x11,0x3f,0x2a,0xbc,0x9a,0x8d,0xeb,0x0f,0xb5,0xa9,0x8e,0xa5,0x2c,0x99 +.byte 0x94,0x8d,0x21,0xa9,0x41,0x6b,0x11,0x2e,0x02,0x21,0xd8,0xc1,0xbc,0xf0,0x2a,0x87,0xae,0x35,0xa9,0x78,0x5c,0x43,0xb8,0xb7,0x63,0x2d,0x09,0x31,0xae,0x6f,0xfc,0x39,0x7b,0x18,0xc3,0xce,0xe3,0xfa,0x51,0x70,0xc7,0x6b,0x5e,0xc3,0xce,0xc8,0xa2,0x3a,0x66,0x9e,0xfe,0x45,0xb4,0xa2,0xaf,0x81,0x03,0x74,0xbf,0x0c,0x65,0x4c,0x30,0x27 +.byte 0xd5,0x34,0x29,0x2d,0x83,0xa8,0xb9,0x1d,0xf8,0x12,0x09,0x51,0xdd,0x0e,0x66,0x95,0xf3,0x94,0xaa,0x83,0x3a,0x6f,0x8a,0x7c,0x3a,0x29,0x82,0xbb,0x80,0xa1,0x37,0x8c,0x79,0xf4,0x4a,0xa8,0xe4,0x17,0x72,0x77,0xee,0xc4,0xaa,0x25,0xd3,0x8f,0x2e,0xaf,0xb9,0xb2,0x3c,0xa6,0xd5,0x72,0x97,0x07,0x23,0x38,0xae,0x9e,0x22,0x08,0x85,0x70 +.byte 0xfa,0xff,0x38,0xe6,0x96,0x9f,0x2c,0x11,0x14,0x16,0x9a,0xfa,0x5a,0x7b,0x05,0x31,0x3e,0x20,0xbf,0x4d,0x87,0xaa,0xba,0x94,0xcd,0xdb,0xeb,0xec,0x29,0x58,0x4e,0x43,0x12,0xe8,0xf9,0x01,0x50,0xc8,0x51,0x7a,0x61,0x12,0xe9,0xed,0xc2,0xd6,0x2e,0xd3,0xed,0x54,0x72,0xf7,0x1b,0x0c,0x8c,0xb4,0x65,0xea,0x22,0x31,0x22,0xeb,0xcd,0x53 +.byte 0x66,0xf1,0xa5,0x34,0xe9,0x81,0x74,0xcb,0xb5,0x6b,0x45,0x71,0x69,0x6d,0x84,0xe8,0xc6,0x86,0xc9,0xdd,0x0c,0xa4,0x30,0x12,0x08,0x42,0x10,0x6b,0xcd,0x65,0x6c,0xfd,0x9c,0xde,0x77,0x3c,0x32,0x09,0xef,0x99,0x27,0x0e,0x4a,0x72,0x03,0x8d,0xb5,0x68,0xa0,0x67,0xf7,0xc2,0xae,0xb8,0xce,0x41,0x70,0x4e,0xdd,0x13,0xcb,0x3f,0x05,0x4e +.byte 0xf4,0xbc,0x88,0x98,0x2f,0x42,0x4e,0x5f,0x3e,0xcb,0x2c,0xd3,0x2f,0xb8,0x92,0xbb,0xd8,0x95,0xc8,0xaf,0xa9,0x44,0x8b,0xf0,0x2f,0x81,0xd4,0xe7,0x06,0x19,0xf7,0xa7,0x0a,0x73,0x3e,0x30,0xd9,0x00,0xe4,0x2d,0x76,0xb1,0x0d,0xfa,0x12,0x1f,0xbe,0x59,0x4f,0xf7,0xc8,0x5b,0xab,0xd7,0x16,0x3d,0x7e,0x97,0x9e,0xec,0xf8,0xcb,0x31,0x2e +.byte 0xe0,0x41,0x0b,0x00,0xa6,0x6d,0xe9,0x5e,0xd5,0x4a,0xc5,0xbf,0x1c,0xcc,0xa5,0x71,0x94,0x29,0x3d,0x17,0x43,0x27,0x63,0xc4,0xc7,0x8f,0x1b,0xb7,0x5f,0xcf,0xdf,0x8e,0x6a,0x69,0x87,0xc1,0x29,0xab,0x7b,0x8d,0xdf,0x07,0x95,0x50,0xa3,0x1c,0x8e,0xdc,0x7f,0x8a,0x21,0x37,0x1e,0x26,0xa7,0x67,0x28,0xb2,0xc8,0x23,0x5a,0x1d,0x94,0x46 +.byte 0x1b,0x3e,0x72,0x87,0x73,0x08,0xe2,0x3b,0x46,0x51,0xbe,0x5b,0xa9,0x72,0xb9,0xf8,0x45,0x6d,0x0c,0x89,0x80,0x0d,0x7a,0xfb,0x4c,0x3f,0x7f,0x3d,0x29,0xff,0xef,0xb2,0xec,0x23,0xc2,0x26,0xcf,0x8c,0x2e,0x28,0xbf,0xc5,0x68,0x47,0xd9,0x49,0x95,0xf1,0x67,0x7e,0x3a,0x48,0xe2,0x43,0x5c,0xc8,0x95,0x5b,0xb2,0xf3,0x22,0xc9,0x73,0x91 +.byte 0xb5,0x78,0x96,0x1b,0x9a,0x75,0x5f,0xb2,0x6b,0x8c,0x66,0x8c,0x8e,0xc1,0xe1,0xde,0xd6,0x64,0x31,0xe1,0x7b,0x12,0xd2,0x85,0x8f,0x52,0x68,0xec,0x80,0x26,0x3d,0xcc,0x9b,0xe3,0x57,0xbe,0x19,0x42,0xb9,0xdd,0x7d,0x2b,0x5b,0x6d,0x1b,0x9e,0x96,0xd7,0x75,0x83,0x82,0x3c,0x3e,0x5f,0xf8,0xa9,0x36,0xbe,0x14,0xc7,0xce,0x9d,0x05,0x7e +.byte 0xd7,0x38,0x37,0x35,0xc9,0x37,0x8b,0x9f,0xc6,0x2d,0xff,0x00,0x41,0xff,0x1b,0x09,0xea,0xd2,0xb0,0x04,0x48,0xff,0xfc,0xb5,0x67,0x54,0x39,0x3d,0x23,0x68,0x0b,0x7d,0x97,0xf3,0x65,0x20,0xa2,0xf8,0x33,0x96,0xd1,0xf4,0xc7,0xba,0x6f,0x00,0x95,0x36,0xf6,0x33,0xd1,0x8d,0xde,0xee,0x1e,0xfa,0x60,0x8e,0x5e,0x4c,0x70,0xbb,0x53,0x79 +.byte 0xc9,0x9a,0xdf,0x3c,0x53,0xe4,0x35,0x87,0xc3,0xe6,0x8e,0x0e,0x1a,0xd0,0xf8,0x57,0x2b,0x33,0x51,0x4d,0x7d,0x43,0x17,0x3e,0x6f,0x0e,0xca,0x86,0xb2,0xc6,0x09,0xf3,0x2f,0xc1,0x5f,0x0e,0x9a,0x5e,0x7d,0x9d,0xf7,0xff,0x09,0x46,0xe5,0x30,0x91,0x61,0x93,0xb5,0x2f,0xc5,0x7f,0x09,0x0b,0x55,0x94,0x17,0x25,0x19,0x9b,0xa9,0x0e,0x68 +.byte 0x71,0x18,0x1b,0x4b,0x1b,0xa3,0x75,0x90,0x56,0x96,0x5e,0x33,0x71,0xf2,0x06,0x69,0x07,0x04,0xcb,0x8c,0x79,0x9b,0xa5,0x17,0xd8,0xd8,0x77,0xc7,0xca,0x95,0x58,0x12,0xec,0xdd,0x41,0xc9,0x12,0x16,0x9a,0xc4,0xf0,0x27,0x7a,0x8e,0xeb,0x19,0x79,0x27,0x7b,0x2e,0x55,0x96,0x57,0x19,0xbe,0x55,0x8c,0x7f,0x97,0x90,0x80,0x40,0x5d,0x5a +.byte 0xf6,0x07,0xd6,0xb4,0xc5,0xe8,0x0e,0x54,0xde,0x78,0x23,0xca,0x39,0x90,0x42,0xb6,0x8b,0x14,0x22,0x06,0x71,0x77,0xd5,0xf7,0x8d,0x05,0x9d,0xbf,0xfe,0x38,0x91,0xba,0x79,0x85,0x30,0x47,0x25,0xf0,0xa2,0x72,0x55,0x94,0x2a,0x8a,0xc8,0x28,0xc8,0xa9,0x23,0xab,0xf0,0x4e,0x49,0x2f,0x58,0x53,0x35,0xd1,0xb6,0x16,0x81,0xc2,0x25,0x18 +.byte 0xd9,0x71,0x91,0xc4,0x81,0x3e,0xf4,0xd7,0x87,0x9e,0x57,0x78,0xf7,0x7d,0x4b,0xb2,0xfd,0x91,0x9f,0xa8,0x0e,0x77,0xb3,0xc7,0xe5,0x6a,0x95,0x17,0xc3,0xf4,0xcb,0x7f,0x96,0xc1,0xa8,0xee,0x6a,0x0f,0x1f,0x5d,0x20,0x28,0x93,0xe5,0xf3,0x13,0x46,0x53,0x47,0x9f,0x98,0xc6,0xf5,0x29,0x69,0xb9,0x83,0x36,0x03,0xa1,0x9a,0xb4,0xa9,0x4e +.byte 0xd6,0xda,0x25,0xe2,0x5b,0xbb,0x95,0xdf,0x0f,0x37,0x0b,0x02,0x51,0x03,0xd1,0x0e,0x84,0xef,0xdd,0x85,0xdd,0xae,0x10,0x32,0x65,0x03,0x65,0xf0,0x8e,0x0c,0x69,0x90,0x35,0x26,0x36,0xe8,0x05,0x46,0xe6,0xce,0x52,0x4d,0xb5,0x93,0x9f,0xe3,0xe5,0xb0,0x43,0x57,0x32,0x5d,0xca,0xd4,0xc9,0x89,0x2e,0x5b,0x03,0x8a,0x82,0x78,0x21,0x6b +.byte 0x41,0xa9,0x0a,0x9f,0xe0,0x50,0xec,0x72,0x01,0x67,0xe7,0x1c,0x92,0xe3,0xe4,0x83,0x4d,0x4b,0xcf,0x01,0x37,0x2f,0x34,0x86,0xcf,0x36,0xf7,0x3a,0x57,0xa3,0x89,0x73,0x0f,0x9c,0x06,0x82,0x75,0x7a,0x4b,0xd8,0x44,0x40,0xf2,0xc5,0xc4,0x22,0xa6,0x99,0x1b,0x73,0x2f,0xad,0x09,0xe9,0x84,0x6f,0xc3,0xca,0x72,0x3a,0x8a,0x55,0x55,0x0a +.byte 0xcd,0x33,0x51,0xef,0x5b,0x36,0x77,0x6c,0xb4,0x4a,0xae,0xdd,0xbd,0xec,0x65,0x99,0x43,0xd6,0x8a,0x16,0xba,0x89,0x4d,0x0c,0x11,0xb4,0x0d,0x5d,0x3e,0x76,0xcb,0x48,0x9d,0x31,0x40,0x71,0xe2,0xe4,0xa9,0xd9,0x6e,0x3c,0x3d,0xd1,0x6e,0xaf,0xb9,0x28,0x71,0x5a,0x07,0x6f,0xab,0xdb,0xf8,0x4f,0x11,0xbc,0xe0,0x14,0x01,0x43,0x4d,0xe2 +.byte 0xad,0x5d,0x2a,0xb2,0x58,0x66,0x05,0x50,0x66,0xf6,0x2f,0x66,0x11,0xd1,0xd7,0x05,0x85,0xb0,0x7f,0xa8,0x89,0xbd,0x41,0xda,0x35,0x1e,0xbb,0xff,0x70,0x1a,0xe8,0x65,0x96,0xe9,0x50,0x18,0x7f,0x4c,0xb2,0xe2,0x95,0x26,0xf6,0x37,0x09,0x8c,0x8d,0x7b,0x02,0xb0,0x7f,0x32,0xb5,0x70,0x22,0xd6,0x83,0x0b,0x85,0x25,0x00,0xc5,0x55,0x3f +.byte 0xfa,0x7a,0xc9,0xaf,0x87,0xc1,0x1c,0x11,0x96,0x71,0x18,0xd8,0xdb,0xab,0x86,0x57,0x0a,0x16,0x23,0x32,0x40,0xd3,0xaf,0x17,0x55,0xe3,0xe7,0x01,0x65,0x1f,0x87,0xda,0xb5,0x46,0x67,0x18,0x34,0xcc,0x28,0x77,0xc3,0x12,0x62,0x6c,0x8b,0x8a,0x11,0x7a,0x5a,0xd1,0xdf,0xb3,0x13,0x6b,0x29,0xce,0xf8,0x03,0xba,0xad,0x7c,0x14,0x60,0x42 +.byte 0x17,0xf6,0x7b,0x0c,0xb7,0x5f,0xd6,0xc1,0xb5,0xa5,0x2b,0xb1,0x9f,0x6c,0x65,0x29,0xe5,0xf4,0x84,0x85,0x11,0x82,0xf1,0x4c,0xcd,0xff,0x99,0x29,0x53,0x7b,0x43,0x04,0x60,0xc4,0x6c,0x01,0x5c,0xcb,0x33,0x4f,0xdb,0xc4,0xad,0x8c,0xea,0xff,0xd6,0xcd,0x8e,0x85,0x6e,0x54,0xd5,0x18,0x63,0x84,0x78,0xea,0xff,0x08,0x95,0xdc,0x2a,0x07 +.byte 0xac,0xea,0x44,0x79,0x52,0x07,0xf3,0xf1,0x03,0x7f,0x71,0x53,0xd8,0x85,0xdb,0x70,0xde,0x5e,0xd5,0x9a,0x18,0x9f,0xcc,0x3f,0xc0,0xc0,0x49,0x82,0x70,0x09,0xce,0x29,0x04,0x0a,0x19,0x81,0xd9,0x81,0x22,0x71,0x48,0x8e,0x79,0x08,0x1c,0xb4,0xc8,0x7e,0x60,0x43,0x4a,0xe3,0xd5,0x6b,0x09,0x5c,0x01,0x6e,0x20,0x9e,0xd2,0xaf,0x80,0xb7 +.byte 0xa2,0x0a,0x5b,0x26,0x08,0x32,0x73,0xbc,0xc6,0xfd,0x06,0xaa,0x2e,0x55,0xa0,0x5b,0xa9,0x3c,0x85,0xb2,0x04,0xdc,0x9a,0x94,0x02,0x93,0x96,0x6b,0x3e,0xc3,0x5e,0x37,0x9b,0x6f,0xef,0xb9,0x65,0x52,0x42,0x1c,0xa7,0x84,0x09,0x0c,0x49,0x3a,0x95,0x06,0x94,0xd7,0xc7,0x40,0xf5,0xf1,0x69,0x41,0xfb,0xf8,0x57,0xb5,0x1e,0x0c,0xf3,0xd9 +.byte 0xb1,0x2e,0x58,0x33,0xbe,0xb1,0x3d,0x61,0xc6,0xca,0x01,0xe5,0xda,0x60,0x8f,0x87,0xf7,0x9a,0xb5,0x92,0xb4,0x8c,0x2a,0xaf,0xd4,0x1e,0x9c,0x97,0x39,0x83,0x99,0x4a,0x07,0x54,0x75,0x7d,0xde,0x72,0x06,0xc1,0x8f,0xb4,0xde,0x12,0x43,0xf2,0x62,0xae,0xe7,0xec,0xfe,0xb2,0xe5,0x63,0x35,0xb7,0xee,0xaa,0xf0,0x09,0xb8,0x61,0xf2,0x42 +.byte 0x28,0x87,0xd7,0x47,0xa8,0xfc,0x51,0x85,0x6f,0xa2,0xb1,0xa6,0x82,0xd6,0x0e,0x1b,0x3f,0xea,0xa1,0xe1,0x91,0xc9,0xd2,0x5b,0x3e,0xff,0x18,0x39,0x14,0xe0,0x44,0xda,0x3d,0xd8,0xca,0xdb,0xd9,0xbf,0x3f,0xa4,0xdb,0x99,0x2e,0x31,0x32,0x7c,0xf4,0x61,0x2f,0xa1,0xf9,0xa9,0xbe,0x26,0x94,0xea,0xb4,0xe3,0x25,0x8d,0x93,0x3b,0xa1,0x7e +.byte 0x1e,0x99,0x87,0x6c,0xaf,0x14,0x54,0xd0,0xc0,0x37,0x39,0x76,0x3c,0x07,0x2e,0xce,0x98,0x25,0x81,0xe4,0x01,0x0c,0x07,0x79,0x4e,0xcd,0x82,0x44,0x83,0x04,0x07,0xa6,0x52,0xb7,0x96,0x7c,0x43,0x12,0xe1,0xc5,0x12,0x18,0x25,0x47,0xe4,0x19,0x6d,0x26,0x1e,0x55,0x66,0xca,0x28,0x4c,0xfa,0xd2,0xd9,0xcc,0x7e,0xad,0x9f,0x2a,0x2f,0xc6 +.byte 0x6c,0x77,0xaa,0x0f,0x5b,0xeb,0x15,0x97,0x62,0x52,0x3c,0x6f,0x4b,0xf3,0xcc,0x80,0x7b,0x1f,0x1d,0x58,0xf8,0xfe,0xc1,0x8c,0x3b,0xe3,0xd7,0x05,0xc3,0xd6,0xa9,0xda,0xcf,0x85,0x1c,0x68,0xd6,0x6d,0x2b,0x06,0x30,0x5f,0x58,0x39,0xea,0xfa,0x99,0xaa,0x04,0x10,0x05,0xaf,0xb0,0xf7,0x32,0x60,0x8d,0xe4,0xd1,0x40,0x32,0xd6,0xa3,0xf2 +.byte 0xba,0x5a,0x79,0x58,0x92,0x75,0xf0,0x3a,0xce,0xb2,0xee,0x66,0x3e,0xe3,0xbe,0x4d,0x53,0x9d,0xbb,0xdb,0x45,0xf0,0x09,0xeb,0xd5,0x83,0x39,0x20,0x06,0xa9,0x44,0x35,0xeb,0x6d,0x9b,0xd9,0xa4,0xda,0x4b,0x9d,0xde,0x3d,0x26,0xa2,0x2d,0xcf,0x8e,0x3e,0xbc,0xb4,0x8c,0x3a,0xbf,0x56,0x7c,0x48,0x50,0xb5,0xc5,0xbe,0x84,0x5e,0x63,0x82 +.byte 0x5f,0x87,0x77,0x4a,0xa7,0xf6,0x66,0x07,0x42,0x6a,0xb0,0xcf,0x19,0xaf,0x6c,0x16,0x85,0x78,0x88,0x3b,0xa5,0xbc,0x42,0xd2,0x4c,0xdf,0x51,0x3b,0xc4,0x0e,0xf5,0xc5,0x70,0x57,0x40,0xf6,0xed,0xd2,0x37,0x3e,0x14,0x0c,0x31,0xda,0x94,0x87,0x6b,0xd9,0x8c,0x15,0x41,0xa9,0xc0,0x2a,0x61,0xd3,0x52,0xe0,0xb6,0x0a,0x83,0x6b,0x75,0x1b +.byte 0x1e,0xd1,0x7f,0x26,0x19,0x34,0x9b,0x70,0xc9,0xba,0xdc,0xa2,0x03,0x6d,0xc7,0xac,0xbd,0x2c,0x63,0x8a,0x7b,0xb1,0x62,0x51,0xc1,0x1d,0x54,0x0d,0x34,0x0e,0xfb,0xa6,0xb8,0x9d,0x79,0x4f,0xc3,0xaa,0x8d,0xa0,0xcc,0x80,0x96,0x86,0x37,0xd6,0x80,0x9c,0x3d,0x91,0xd0,0xe7,0xe2,0xb4,0x00,0xba,0x86,0xe9,0xeb,0x86,0xea,0x84,0x78,0x81 +.byte 0x20,0x29,0x28,0x02,0x4d,0xd8,0x1b,0x5e,0x4f,0x41,0xfc,0x13,0x3e,0x4c,0x7f,0x64,0x55,0x35,0x41,0x0d,0x74,0xc5,0x6a,0x7c,0x37,0x82,0x41,0xbd,0x67,0x39,0xd9,0x83,0xfa,0x7f,0x8c,0xe1,0x9f,0x23,0x0d,0xe4,0x1d,0x40,0xe6,0x6e,0x94,0x5d,0xec,0x77,0xf7,0x5e,0xb4,0xa1,0x03,0xfb,0xa0,0x0e,0xba,0xf8,0x28,0x50,0x3c,0x38,0x47,0xf7 +.byte 0xed,0x2d,0xe5,0x0b,0xa8,0x7a,0xbd,0xbf,0x7e,0x38,0xc0,0x60,0xe7,0x7e,0xb1,0x03,0xef,0x4a,0x8c,0xc7,0x98,0xf1,0x94,0xf6,0xa0,0x50,0xb2,0x0b,0x7c,0x66,0x0a,0x62,0x10,0x24,0xb0,0xa1,0x69,0x02,0x33,0x79,0xbf,0xd0,0xb5,0xcb,0x17,0x20,0x55,0x02,0x70,0x44,0x5b,0xac,0x20,0x35,0xea,0x05,0x2d,0x68,0x51,0xe7,0x5f,0x1b,0xcd,0x4c +.byte 0x33,0x4d,0x04,0x21,0xfd,0x06,0x67,0x82,0x60,0x98,0x1f,0x79,0xf4,0x28,0xe0,0xa8,0x18,0xeb,0xf5,0x86,0x58,0xe6,0x9f,0xb5,0x29,0x0f,0xe8,0x37,0xeb,0x09,0xf4,0xc6,0x08,0xf2,0xde,0x4d,0x96,0x48,0x62,0x36,0x63,0x10,0x3f,0x63,0xeb,0x44,0x84,0xc8,0xf5,0x74,0x19,0x03,0x50,0xf7,0x7c,0xd2,0x06,0x20,0x6e,0x9b,0xa2,0x37,0xb0,0x68 +.byte 0x78,0x31,0xb6,0x05,0xfa,0xc9,0xcd,0x1d,0x4c,0xbd,0x33,0xb7,0xf3,0x93,0x38,0x7d,0x5f,0x00,0x85,0x5b,0x10,0x7f,0xc4,0x3f,0x3e,0xfe,0x62,0xca,0x51,0x83,0x95,0xcf,0x00,0x65,0x83,0x0e,0xd3,0x78,0xd0,0x51,0xcb,0x70,0x34,0x42,0xc6,0x3a,0x04,0xb9,0x10,0x92,0xe0,0x09,0x06,0xb0,0x66,0x9b,0x37,0x02,0x8d,0x0d,0x3e,0x2f,0xc5,0x17 +.byte 0x6a,0x87,0x7d,0x48,0xa4,0xcc,0x55,0x20,0x7b,0x77,0x07,0xcf,0x44,0x2f,0x88,0x8a,0xcc,0xf2,0x5d,0xa6,0x3e,0x5f,0xda,0xe2,0xde,0xd2,0x7f,0x7f,0xb7,0x90,0x53,0x64,0x6b,0x79,0x42,0x52,0x69,0xc6,0xd6,0xaa,0x9f,0xf9,0x19,0xbe,0x65,0x10,0x99,0x49,0xaf,0x36,0x49,0x1b,0x8a,0x3d,0x7f,0xdb,0xa2,0x1a,0xb5,0xd6,0x34,0x51,0xc8,0xc8 +.byte 0x06,0xca,0xf6,0xb8,0x76,0xa8,0x9d,0x43,0xae,0xf0,0x51,0xe5,0x9a,0x42,0xa2,0x83,0xed,0x20,0x8d,0xe8,0x1c,0xca,0x15,0x4e,0x37,0x3f,0xd8,0x06,0xa0,0xe1,0xf8,0x05,0xfd,0x42,0xf3,0x7a,0x96,0x44,0x36,0x02,0xca,0x11,0x2a,0xc3,0x24,0x58,0xdd,0x85,0x55,0xb2,0xe5,0x1d,0x92,0xc2,0x2d,0x5f,0x7c,0xb5,0x02,0x37,0x7c,0x07,0x35,0x25 +.byte 0x2b,0x33,0x80,0xe2,0xd4,0xfd,0xc7,0xa7,0x19,0x7e,0xba,0x36,0xaf,0xa0,0x4e,0xab,0x8b,0x28,0x4f,0x3b,0x92,0x72,0x42,0x49,0xaa,0x3b,0x08,0x0f,0x1e,0xff,0x2d,0xbf,0x9c,0x48,0x16,0x72,0xbe,0x28,0x05,0x8b,0x3a,0x20,0x6b,0x38,0x43,0xa2,0x35,0xea,0xf7,0x4e,0x50,0xa0,0x43,0x40,0x5c,0xbf,0xe5,0x75,0x13,0x4c,0x36,0x61,0xa1,0x5d +.byte 0x46,0xd7,0x7a,0x94,0x06,0x2f,0x63,0x32,0x9c,0x6e,0x54,0x18,0x31,0x79,0xf2,0x83,0xcf,0xb4,0x47,0x40,0xe5,0x9a,0xd6,0x99,0x12,0xb3,0x61,0x3d,0x0f,0x5e,0xc8,0x95,0xa3,0x5f,0xc3,0xd5,0x6b,0x6e,0xa0,0xf2,0x2f,0xeb,0x66,0xd0,0x68,0x67,0x10,0x85,0x64,0x27,0xd8,0xb8,0x68,0x00,0x36,0xa5,0xab,0x3e,0xe1,0x43,0x65,0x81,0x2d,0xb9 +.byte 0x0f,0x87,0xfe,0xa1,0x52,0xe9,0x8d,0x82,0x3a,0xd1,0x10,0x52,0x34,0x48,0x7c,0x1c,0xc6,0xd0,0xfe,0xa0,0x1a,0x92,0x07,0x88,0x57,0x9e,0xd7,0x5e,0x9f,0xc8,0xb0,0x93,0x73,0x03,0x28,0x36,0x8c,0x25,0x8c,0x0f,0x4e,0x0f,0x5b,0x26,0x58,0xed,0x5c,0x33,0x75,0x20,0x08,0x11,0x47,0xe1,0x47,0x85,0x47,0xeb,0x54,0xbf,0x58,0xe3,0xd4,0x5b +.byte 0xf9,0xc6,0x5e,0x42,0x58,0xe6,0xaf,0x79,0x66,0x3c,0xa5,0xa3,0x30,0x33,0xe3,0xbe,0x21,0x4b,0x42,0x98,0x6e,0x44,0xd7,0x68,0xc0,0xff,0xbe,0x7f,0xc5,0xb3,0x4f,0x4a,0x93,0xb0,0x11,0x88,0xcf,0x36,0xb2,0x03,0xbe,0x30,0x52,0x71,0x20,0x0d,0x16,0xc5,0xbb,0xf5,0x92,0x12,0x67,0x6a,0x35,0x66,0x00,0x09,0xd7,0xc6,0x67,0xb0,0x6a,0x04 +.byte 0x19,0x3e,0xbf,0xe2,0x82,0x74,0x78,0x2f,0x77,0x44,0xdc,0xad,0x0f,0x66,0x2a,0x23,0x62,0x2c,0x5a,0x4e,0x3a,0x82,0x2a,0x75,0x16,0x0d,0x74,0x64,0x35,0x53,0xc5,0xf6,0xda,0x36,0x44,0xba,0xe2,0xfa,0x1e,0xc2,0xcf,0x29,0x01,0x36,0x66,0xc3,0xca,0x40,0xf7,0xc4,0xba,0x67,0xac,0xf6,0x17,0xcc,0xa3,0x96,0x2d,0x08,0x5f,0x0a,0xea,0x5e +.byte 0x97,0xdc,0xc8,0xf9,0x59,0x24,0x6e,0xc5,0x0b,0x02,0xb9,0x1a,0xde,0xac,0x60,0x1d,0xaf,0x9f,0x5a,0x6f,0xe1,0xa6,0xdf,0x75,0xc5,0x9b,0xb7,0xde,0xa4,0xf7,0xf6,0xa4,0xdc,0xb6,0x96,0x08,0xde,0x2a,0x0e,0xb3,0x9d,0xf5,0x75,0x7d,0x7e,0x96,0x91,0x79,0xd4,0xa7,0x30,0x97,0x3a,0xbd,0x7c,0xe0,0xc5,0x87,0x24,0xb0,0x65,0xb7,0x58,0x00 +.byte 0xd9,0x0e,0x97,0xa6,0xa4,0x6a,0xe8,0x0a,0xac,0xac,0x9f,0x3a,0xe3,0x2a,0x9a,0x43,0x41,0x92,0x6e,0x0e,0xc4,0x63,0xc3,0x18,0xb6,0xe1,0xef,0x3d,0xe8,0x0b,0xb0,0x9f,0x2e,0x19,0xa0,0x98,0x98,0x34,0xf8,0x86,0x6d,0xc5,0x8c,0x41,0x26,0xb7,0xf2,0x1d,0xd4,0x72,0x39,0xeb,0x79,0x06,0xaf,0x53,0xaa,0x34,0x80,0x53,0xf8,0x1b,0xf4,0x53 +.byte 0x19,0xfa,0x16,0x8b,0x39,0xea,0x63,0x7f,0x38,0xc4,0x66,0x1d,0xd1,0x90,0xe4,0x2f,0x20,0x43,0x0d,0x5f,0x98,0xcc,0xae,0xef,0x86,0xc8,0xe5,0xf6,0xd2,0xa5,0x49,0xd0,0x3f,0xb5,0x7e,0x42,0xb5,0x6e,0x5e,0x13,0xa5,0xb4,0x71,0x2c,0x5d,0x57,0x24,0x06,0xd2,0x29,0x7c,0x4c,0x90,0xb6,0xea,0xdb,0x62,0xa4,0x2c,0x6c,0x38,0x57,0x97,0xbd +.byte 0xfd,0x41,0x6e,0x26,0xc1,0xe1,0x6b,0xbb,0xf0,0xe7,0x71,0xf1,0xcf,0x6a,0x7f,0xfa,0xe7,0xfb,0x17,0xe7,0x81,0x19,0x9a,0xf2,0xf6,0x86,0x22,0x4f,0x62,0x59,0xd6,0xc2,0x33,0xbd,0x11,0xe7,0x07,0x3a,0xfe,0x74,0x0d,0xf8,0xd9,0xdb,0xbd,0x05,0xf4,0xf4,0xb1,0x41,0xc9,0xb3,0xf8,0x6a,0x7b,0x98,0x08,0x6c,0xce,0x4c,0x28,0xbf,0x8c,0x77 +.byte 0x68,0xdc,0xee,0xf7,0x11,0xde,0xfc,0x5a,0x58,0x4f,0xf4,0x74,0x9d,0x5b,0x78,0xc3,0x78,0xe5,0x5e,0x26,0x83,0x40,0x17,0x80,0x2a,0x02,0xa4,0xf1,0x0f,0xa0,0xc8,0x22,0xe6,0x09,0x3a,0x52,0x74,0xf0,0xb9,0xb9,0x60,0xaf,0x20,0xa6,0x7e,0x88,0xf4,0xc2,0x38,0xa2,0x21,0x73,0xa9,0x18,0x3f,0x7a,0x04,0x7b,0xc4,0xcd,0x68,0xd9,0x83,0xa4 +.byte 0x8e,0x54,0x0d,0xbc,0xee,0x8b,0x39,0x93,0x66,0xa2,0xd6,0x76,0x4a,0xb2,0x33,0x4f,0x61,0x53,0xde,0x3b,0xff,0x47,0xcb,0x87,0xd9,0x21,0xd0,0x82,0x64,0x54,0xdf,0xf2,0x67,0x62,0x40,0x33,0xc7,0x0d,0xea,0x98,0xaa,0x95,0xfb,0xa9,0x0e,0x90,0xa5,0xd9,0x54,0x81,0x86,0xad,0x9e,0xa4,0x4d,0x36,0xe1,0x77,0xf2,0xe3,0x0a,0x54,0x1a,0x57 +.byte 0x9d,0x62,0x5e,0x0e,0x00,0xc8,0xa6,0x1e,0xf3,0x43,0xe6,0x20,0x0d,0x6a,0x8e,0x90,0x1d,0x4d,0xac,0x2f,0x9f,0x1c,0xb7,0x30,0xec,0x5c,0x99,0x78,0x6f,0x3b,0xe7,0xe0,0x28,0xb9,0x97,0xc5,0x6a,0xf2,0x17,0xc2,0x11,0xac,0x1a,0xe2,0xca,0x57,0x49,0x64,0xc8,0xc7,0x66,0x43,0x8d,0xc8,0xa7,0x0e,0xfc,0xcf,0x05,0x2f,0xae,0x4b,0xfe,0xe4 +.byte 0xbe,0x9c,0xe7,0xe6,0xa8,0x36,0x49,0x0d,0x9c,0x60,0x39,0x0c,0xfd,0x41,0x5b,0xc7,0xa4,0xa5,0x30,0x89,0xe5,0x10,0xf6,0xea,0xf8,0x2c,0xf2,0x3e,0xb1,0x96,0x81,0xa7,0x32,0x8b,0x39,0x14,0x15,0x36,0xfc,0x55,0x3c,0x22,0xcf,0xa3,0x98,0x90,0x68,0x13,0xd8,0x3f,0xf2,0x53,0x19,0x3e,0x9a,0x0c,0x1f,0xc6,0x29,0x43,0x46,0x23,0x58,0xea +.byte 0x49,0x49,0x15,0x46,0x8e,0x63,0x30,0x1f,0x3e,0x2a,0xa0,0x18,0xfd,0x28,0xc5,0x32,0x77,0x75,0xac,0x6e,0x5d,0x39,0xa9,0x44,0xce,0xfe,0x39,0xa6,0xec,0xde,0x69,0xde,0xfa,0xc8,0x40,0x44,0x34,0x29,0x15,0x19,0xa7,0xbe,0xd6,0x5b,0xfd,0x1f,0x7b,0xb9,0x88,0xf1,0x14,0xcf,0x42,0xc5,0xa7,0xa7,0x0e,0x6b,0x6e,0x86,0xb2,0x7c,0x23,0x8e +.byte 0xf6,0xae,0xde,0x3c,0xd7,0x26,0x5e,0xde,0x31,0x94,0xc1,0x19,0x65,0x55,0x03,0x73,0xba,0xdc,0x69,0x95,0x9c,0x9d,0x8e,0x59,0xd8,0x51,0x61,0x9f,0x8f,0xf4,0x29,0x43,0x4b,0x6a,0x75,0xb3,0x4b,0x9d,0xcc,0x46,0xd2,0x6e,0x00,0x49,0x4f,0xf0,0xac,0x80,0x55,0xc0,0x0c,0xbf,0x18,0x52,0x75,0x76,0x3b,0xac,0x92,0x83,0x69,0x1b,0xb4,0x15 +.byte 0xe5,0x9e,0xde,0x10,0x30,0x30,0x0e,0x85,0xc7,0xf9,0xae,0xbc,0x9e,0xaf,0x4b,0xee,0x27,0x6b,0xa5,0x6d,0xe4,0x8e,0xed,0xdd,0x95,0xaa,0x85,0xe2,0xf5,0x38,0x15,0x50,0xd3,0xcd,0x2c,0x88,0x6c,0x2b,0x14,0x37,0x74,0x2d,0x6d,0x30,0xec,0x96,0x78,0xae,0x80,0xb3,0xd9,0x84,0xc1,0xd6,0x71,0x90,0xe4,0x8d,0x3a,0x7c,0x9c,0xc4,0xf5,0xa0 +.byte 0x20,0x7e,0xa2,0x0e,0x75,0x7c,0x25,0x7a,0x7e,0x2b,0x2e,0xdb,0x12,0x23,0x73,0x6a,0x8e,0xe3,0xd7,0x47,0x94,0xfb,0xcc,0xe4,0x5a,0x8c,0xfb,0xdc,0x46,0xb3,0x4a,0x42,0x15,0xe0,0xaf,0x6e,0x81,0x72,0x72,0x04,0x52,0x09,0xc5,0x8b,0x6e,0xdd,0x7d,0xff,0x27,0xa8,0xc1,0x94,0xb5,0x33,0x59,0xc2,0x7d,0x59,0x6c,0x3c,0xaa,0xd9,0xd8,0x05 +.byte 0x43,0x7e,0x8a,0x47,0xdd,0x76,0x36,0xe3,0x05,0x49,0xd1,0x8f,0xdf,0x45,0x46,0x63,0xff,0x17,0xb4,0x52,0xc8,0xee,0x4d,0xf5,0x74,0x65,0xc6,0xca,0x19,0xfd,0xb9,0x51,0xc8,0xc9,0x96,0xd4,0x06,0xd4,0x09,0x1e,0xab,0x6d,0x1b,0x26,0x61,0x80,0x5b,0xa8,0xcb,0x62,0x92,0x5a,0x1a,0x8e,0xa4,0xb7,0x25,0x19,0x96,0x63,0xd5,0xc3,0xc9,0xdc +.byte 0x04,0x83,0x62,0x31,0xe3,0x76,0x00,0x4d,0xf8,0xb3,0x98,0xae,0x4d,0x1a,0x38,0xe3,0xa1,0x27,0x52,0x87,0xbe,0x2c,0x93,0x45,0xd1,0xab,0x56,0xc6,0xf5,0xbc,0xb5,0xe6,0x9c,0xe1,0x1b,0x37,0x42,0x08,0xe7,0x71,0xb5,0xa4,0x67,0xf9,0x48,0xd4,0xc4,0x10,0x25,0x53,0x9c,0x03,0xfc,0x6d,0x5e,0x62,0x5e,0x6d,0x56,0xbc,0x78,0x11,0x0a,0x6d +.byte 0x1b,0x7a,0xdc,0x62,0xb5,0x58,0x86,0x15,0x71,0xff,0x11,0x33,0x94,0x2b,0xa6,0xc7,0x68,0xd5,0x68,0xda,0x5b,0xd5,0xb7,0x38,0x6c,0x1c,0xf4,0x07,0x39,0xef,0x1f,0x72,0x0a,0xb3,0x12,0x13,0x25,0x86,0xd3,0xf8,0x9f,0xb5,0x40,0x58,0xe7,0x5e,0x9f,0xa0,0xbc,0xd7,0xab,0x4f,0xf3,0x94,0xcf,0x0f,0x5a,0x4c,0x98,0xb4,0x70,0x35,0x62,0xee +.byte 0x33,0x24,0x72,0x31,0xd4,0x06,0xd9,0xb4,0x1c,0x1e,0x0f,0xa7,0x48,0xc7,0x75,0x45,0x40,0x02,0xd0,0x60,0x32,0x29,0x4d,0x61,0x7a,0xee,0x65,0x35,0x2b,0xe5,0x50,0xac,0x82,0xdb,0xf7,0x9c,0x8f,0x82,0xe4,0xf0,0xbd,0xdb,0x00,0x3d,0x3a,0x3d,0xa2,0xc3,0x2d,0x0e,0x51,0x20,0xdb,0xdb,0x8d,0x15,0x03,0xbd,0xcb,0xcb,0x24,0x81,0xc5,0xdb +.byte 0x05,0x39,0x48,0xb8,0x3c,0x93,0x35,0x10,0xef,0x19,0xba,0x09,0x9e,0xff,0xf9,0x3f,0x0c,0xdc,0x96,0x98,0x32,0x26,0x76,0xe7,0xfa,0xaa,0xdf,0xdc,0xb9,0x15,0x44,0x42,0x9a,0x8c,0x6c,0x88,0xea,0x43,0x63,0xb5,0x79,0xb6,0x50,0x30,0x78,0xea,0x70,0xba,0x33,0x36,0x8f,0x8c,0xe5,0x78,0xfd,0xbc,0xc0,0xbd,0xde,0x3a,0x3d,0xe6,0xe6,0x57 +.byte 0x0f,0x29,0xf2,0x82,0x05,0xf2,0x5c,0xfd,0x33,0xc1,0xb2,0x2e,0xc2,0xc0,0x42,0xa2,0xc8,0xa5,0xf9,0x70,0x05,0xff,0x7b,0x8d,0xb9,0x68,0xc3,0xf6,0x74,0x00,0xcd,0x9d,0x70,0xfa,0x62,0x34,0xe5,0x05,0xe8,0x5f,0x53,0x9b,0x69,0x01,0x86,0xb9,0x1d,0x68,0x80,0x89,0x51,0x52,0x0d,0xe8,0x28,0xa1,0xdd,0x62,0x2b,0xf3,0x53,0x74,0xaa,0x98 +.byte 0xdb,0x7e,0x74,0x44,0xeb,0x25,0xe7,0xde,0xc4,0x29,0x14,0x11,0x7b,0xc6,0xef,0x14,0xe4,0x04,0xd0,0xf4,0x11,0xca,0xdc,0xdc,0xe6,0x3f,0x9a,0xc9,0xe2,0x0e,0x67,0x30,0x78,0x65,0x94,0x5a,0xa1,0x24,0xd6,0x90,0x2f,0x1c,0x13,0x46,0xf5,0xb5,0xf9,0x74,0x56,0x3e,0xd5,0x1b,0x09,0xb3,0x04,0xbe,0x89,0x00,0xbd,0xe0,0xba,0x13,0x05,0xd1 +.byte 0x98,0xa7,0x93,0x09,0xc5,0x96,0x46,0xb5,0x5a,0x05,0xac,0x1e,0x66,0x03,0xf0,0xaa,0x3d,0xc2,0x54,0xa3,0xc4,0x2b,0x0d,0xa3,0xe4,0x92,0xd6,0xd0,0x44,0xa6,0x37,0x30,0xa5,0xac,0xc2,0xc8,0x58,0x2a,0x2c,0x18,0x68,0x8d,0x9b,0x4f,0x99,0xd0,0x55,0x41,0xf4,0x84,0x3c,0x69,0xda,0x3c,0x6d,0x43,0xb3,0x85,0x15,0x1f,0xdb,0x58,0x0b,0x71 +.byte 0x33,0x24,0xbb,0x21,0x43,0x19,0x16,0xeb,0x83,0xde,0xe5,0xb7,0x68,0x9e,0xb9,0xd9,0xf6,0x2e,0xae,0xdd,0x88,0x2c,0x18,0xd7,0xc3,0x72,0x8b,0xbe,0xaf,0x8d,0xfd,0xcd,0x2f,0x8e,0x3e,0x2b,0xa4,0x20,0x11,0x9d,0x00,0x4f,0xea,0xf0,0xaa,0x2d,0xf3,0x9d,0xfd,0x11,0x7b,0xac,0x2c,0x66,0x74,0x03,0xe5,0xcc,0x70,0x9f,0xfb,0xb7,0x5a,0x16 +.byte 0xc3,0x05,0x61,0x7c,0x8c,0x73,0xcc,0x9c,0x6a,0x2f,0xee,0xae,0x85,0xc9,0x51,0x91,0x13,0xa4,0x09,0x82,0x4d,0x62,0x09,0x24,0x25,0x35,0x1f,0x82,0x88,0xbb,0xdd,0x16,0x5e,0x8d,0x98,0x5f,0x07,0x49,0x32,0x96,0xb7,0xee,0x85,0xb0,0x7b,0xfd,0xf5,0x35,0x4b,0xa9,0xd4,0xee,0xf2,0x37,0xd1,0xfe,0x62,0xf5,0x52,0x13,0xb4,0xb2,0xce,0xc4 +.byte 0xe0,0x09,0x78,0x48,0xd5,0xc6,0x5d,0x36,0x1b,0x90,0x3a,0x6a,0x3c,0x21,0x50,0xf0,0x0a,0xe9,0x46,0x24,0x45,0xc1,0x5e,0x76,0xa3,0xf9,0x70,0xb8,0x62,0x4d,0x0e,0x92,0x87,0x4a,0x6a,0xf9,0x46,0x91,0x64,0xfe,0x7f,0x53,0x24,0x7e,0xc7,0x3e,0xb0,0x37,0x1a,0xc8,0xd6,0x33,0x0b,0x5f,0xa5,0x30,0x03,0x0e,0x85,0x3d,0x7b,0xc1,0xa1,0x18 +.byte 0xb3,0x8c,0xfe,0xca,0x3e,0x71,0xd8,0x92,0x46,0x49,0x60,0x54,0xd9,0x7b,0xf7,0xc3,0x99,0x2f,0xb5,0x79,0xcc,0x32,0x40,0x7d,0x3d,0x0b,0xc6,0x6f,0x04,0xd9,0xf1,0xdd,0x64,0xf5,0xc4,0x60,0x14,0x04,0x5c,0x3a,0xa4,0xda,0xdc,0xad,0x8f,0xc2,0x44,0x37,0x96,0x63,0x00,0xf7,0xb1,0xc0,0x7c,0x8c,0x12,0xb5,0x3a,0xec,0xc0,0x16,0xd8,0x24 +.byte 0xe9,0xc0,0xc4,0xfa,0xb1,0x85,0x5b,0xe3,0x62,0x24,0xa1,0x75,0x92,0x82,0x04,0x59,0x10,0x50,0x4b,0x51,0x51,0x3e,0x39,0xba,0x6d,0xa0,0x65,0x2d,0xfc,0x23,0x1c,0x9d,0x69,0x22,0xe7,0x15,0xfa,0xba,0x76,0xbf,0x53,0x62,0xb0,0x0d,0x0d,0x5d,0x55,0x00,0xbc,0x58,0x01,0xed,0x37,0x53,0xb9,0xa6,0x0d,0x71,0xab,0xec,0x42,0xbf,0x3b,0x52 +.byte 0xfd,0xae,0xe9,0x6d,0x65,0x07,0xf3,0xd9,0x32,0x66,0xc1,0x66,0x1a,0x18,0x73,0x86,0x01,0xaf,0x1d,0xd1,0xd0,0xcf,0xb1,0xea,0x54,0x23,0xdf,0xf2,0x4d,0x7d,0xc7,0xfe,0xfe,0x7d,0x1d,0x2c,0x1b,0xb6,0xa7,0x7a,0x9e,0x90,0x3a,0x3b,0xb0,0x6c,0xb0,0xd2,0xd1,0xd0,0x6a,0x94,0x4c,0x84,0x1c,0x45,0xae,0xda,0x16,0xa9,0x2e,0x63,0x19,0x26 +.byte 0xf6,0x74,0xd3,0x6f,0x9b,0x9c,0x0c,0xb8,0x85,0x9f,0xeb,0x99,0xbc,0xab,0xff,0xc3,0x75,0x86,0xe5,0x3a,0xa0,0xf9,0xfc,0x6b,0x3d,0x5a,0xad,0x46,0x7f,0x17,0x0e,0x94,0xb7,0xa4,0x43,0x61,0x54,0x76,0x29,0x78,0xe4,0x41,0x91,0xbe,0xa5,0x36,0x39,0xdf,0xdc,0xcc,0x8e,0x42,0x40,0x08,0x51,0x26,0xb0,0x53,0x5d,0xb4,0x7a,0x18,0x8e,0xb3 +.byte 0xae,0xf2,0xe0,0xef,0x63,0x51,0x3a,0xbe,0x4c,0x2d,0xce,0xc7,0xe2,0x1b,0xc2,0x40,0xf3,0x82,0x61,0xf0,0x1b,0x05,0xdd,0x1e,0xae,0xed,0x87,0x2c,0xe5,0xad,0xc7,0xec,0xb5,0x63,0xf7,0x3a,0xf9,0xb7,0xd8,0x4e,0xa7,0xef,0xac,0x6d,0x9c,0x27,0xd9,0xcc,0x66,0xf4,0x75,0x40,0x94,0x8b,0x78,0x4f,0x61,0x4f,0x31,0x49,0x5c,0x96,0x72,0x58 +.byte 0xcf,0x55,0xb2,0x66,0x16,0x29,0x27,0x24,0x39,0xc3,0x64,0xb1,0xdf,0x69,0x87,0x85,0x46,0xe3,0xd0,0x82,0x53,0x1a,0xc2,0xf1,0x3a,0xab,0xdf,0xe5,0x29,0x17,0xdd,0xfe,0xbf,0xf9,0x3d,0x7a,0xfb,0xe7,0x74,0x49,0xa9,0xef,0x61,0x93,0x4c,0xfa,0x30,0xea,0x65,0xa7,0x61,0x32,0x88,0x74,0x12,0xc1,0x91,0xf1,0xc2,0x1f,0x38,0x6a,0xfd,0x0d +.byte 0xc8,0x6f,0x87,0xe6,0x15,0x55,0x26,0x13,0x86,0x13,0xb9,0x01,0x98,0x34,0x1c,0x2d,0x1d,0x30,0xae,0x7d,0x8e,0x07,0x7d,0x4d,0xe9,0xfd,0x58,0x18,0xc3,0xa6,0x8e,0x87,0x98,0x33,0xcc,0x80,0xd7,0x70,0x07,0x6a,0x4a,0x97,0xef,0x56,0xf3,0x9d,0xf9,0xef,0x6f,0xa8,0x71,0x7f,0x61,0x07,0x1d,0x9d,0x51,0x06,0x86,0x4a,0x35,0x9e,0xab,0x2c +.byte 0x66,0x8d,0x61,0x62,0xbd,0xed,0x6c,0x76,0x7c,0x67,0xe0,0xe1,0x6e,0x90,0x74,0xb1,0xa6,0x26,0x0d,0x01,0x1f,0xe9,0xb4,0x30,0x9a,0x7e,0x37,0xd1,0xea,0x97,0x9a,0x0f,0x9e,0x8d,0x52,0xd4,0x96,0x36,0x5b,0x6f,0x40,0xbb,0x9e,0x44,0xb4,0x6e,0xee,0x15,0x70,0xef,0x66,0x81,0xf5,0xb4,0xe7,0x69,0xb0,0x40,0x44,0xdc,0x70,0x1e,0x4d,0x3c +.byte 0x9b,0x19,0x2a,0x97,0xbd,0xb2,0xd2,0x9b,0x98,0xac,0x36,0xf1,0x05,0x48,0xdc,0x5d,0x21,0xfb,0x17,0xe3,0x9c,0x3c,0xbf,0xfd,0x1d,0x39,0x1e,0x5b,0x2a,0xa2,0xb3,0x7d,0x4f,0xdf,0x3a,0x41,0x7a,0x31,0x01,0xc2,0xe5,0xd0,0x06,0x50,0x29,0x05,0xce,0xb8,0x28,0xb7,0xdd,0x83,0xc8,0xaa,0x39,0x78,0xc7,0x7d,0x9e,0xcd,0x9a,0x07,0x71,0x7e +.byte 0x20,0x92,0x82,0xce,0x49,0x90,0xce,0xef,0x53,0xa7,0x48,0x2a,0x69,0x86,0xa1,0x5e,0x35,0xe8,0x7d,0x10,0xb8,0x5e,0xa6,0x9a,0x69,0x6f,0x32,0x75,0xf3,0x4a,0xee,0x9c,0x06,0x5c,0xdd,0x84,0x7e,0x38,0x00,0x67,0x39,0x42,0xed,0x72,0xda,0xe3,0x6b,0x5a,0xf4,0xc9,0x80,0x3e,0x0e,0xda,0x39,0xfa,0x83,0x2c,0x60,0x69,0x87,0x85,0x05,0xfc +.byte 0xf4,0x2b,0xd4,0x0a,0xad,0x86,0xca,0xd5,0xf0,0x92,0x1f,0x43,0x3c,0x0e,0xac,0x99,0xf3,0x67,0xa3,0x41,0x6d,0xb9,0x29,0x70,0x57,0x62,0x9f,0x45,0x91,0x72,0xe5,0x53,0xcc,0x89,0x80,0x3f,0xbc,0x1c,0x66,0x21,0xdd,0x90,0x2b,0xa4,0xca,0x2f,0xf0,0x0f,0x9f,0xd0,0xe9,0x28,0xe2,0xd9,0x36,0xaf,0xf9,0x01,0x81,0xce,0xb4,0xe7,0x71,0xfd +.byte 0x92,0xf8,0x56,0x2e,0xc3,0xc8,0x8b,0x54,0xc8,0xc7,0x40,0x79,0x27,0x06,0x18,0x4a,0x7b,0x88,0x3f,0xd6,0x4f,0xd4,0x66,0x1e,0x1f,0x9a,0x14,0x1a,0x0a,0x98,0xc7,0xd6,0x25,0x83,0x37,0x8a,0x5d,0xb2,0x88,0x39,0x68,0x7b,0x1f,0x4e,0x0a,0xed,0x11,0x1a,0x77,0x9b,0xcb,0xb6,0x7d,0x5c,0x36,0xac,0x07,0x07,0x9f,0x05,0xcf,0x90,0x8f,0x3f +.byte 0x4b,0xc5,0xf9,0x42,0x90,0xb4,0x42,0x26,0xa1,0x2c,0x66,0xc6,0xb8,0x98,0x80,0x8a,0xbb,0x9b,0x41,0xe4,0x44,0x8c,0x5e,0x56,0x33,0xe3,0xba,0xcf,0x31,0x8e,0x28,0xd7,0xc5,0xd1,0x3b,0x68,0x47,0x10,0xae,0xda,0xc3,0xbd,0x20,0xe7,0xac,0xe2,0xe1,0xe0,0x7a,0x4b,0x83,0xb1,0xab,0x72,0xf4,0xc4,0xe7,0x0d,0x02,0xaf,0x5b,0x74,0xac,0xda +.byte 0x9d,0xce,0x26,0x1f,0x79,0x05,0x67,0x7e,0xc4,0x98,0x3f,0xde,0xa6,0xf3,0xfe,0x59,0x65,0x88,0xfb,0x14,0x3a,0x43,0x91,0x04,0x1a,0x78,0x7e,0x08,0xba,0x55,0x50,0xc7,0x65,0xd3,0x8e,0xda,0x0a,0xee,0x8e,0x11,0xa9,0xf6,0x9e,0xd3,0x23,0x97,0x05,0x0c,0x98,0x2a,0x36,0x25,0xec,0x5e,0x0b,0xf9,0x31,0x80,0x00,0x8a,0x70,0xf1,0xaa,0x7c +.byte 0x73,0x02,0x98,0x8d,0x42,0x27,0x53,0xf1,0x83,0x37,0xd0,0x2d,0xfa,0xc7,0x4b,0xa5,0xb3,0xc9,0xb8,0xd4,0x56,0x94,0x5a,0x17,0x2e,0x9d,0x1b,0x46,0xaa,0xb6,0xd9,0x2a,0x3a,0x6c,0xaf,0x24,0x59,0xfd,0x08,0xc5,0xca,0x0c,0x79,0x3f,0xe7,0x91,0x8d,0x9d,0x59,0x91,0xd8,0x5f,0xda,0x6d,0x35,0x7b,0x52,0x47,0x35,0xf9,0x81,0x86,0x2c,0xee +.byte 0x1a,0x14,0xc5,0x1f,0xb6,0x85,0xb5,0x74,0xe9,0xb7,0x4f,0xde,0xcd,0x93,0x2d,0xf3,0x10,0xbe,0x34,0xfa,0xca,0x15,0x9f,0x02,0x9d,0x19,0x72,0x7c,0xd6,0xfd,0x81,0x43,0x49,0xb5,0x2b,0x52,0x31,0xd6,0x2c,0x28,0x2e,0x83,0x6d,0xd3,0x0f,0x6e,0x03,0x65,0xf0,0x8a,0xdd,0x0a,0xec,0x58,0x10,0x45,0x5d,0xac,0xda,0xf5,0x32,0x5d,0x18,0x26 +.byte 0xcc,0x2e,0xcf,0xd3,0x41,0x2d,0x1d,0xba,0xdf,0xd8,0x96,0x8f,0x18,0x0f,0xa7,0xec,0x8e,0x6e,0x84,0x2c,0xd6,0x1f,0x4e,0x76,0xfe,0xf3,0x14,0x27,0x4b,0x5b,0x3d,0x7c,0x1c,0x59,0x46,0x97,0x1b,0x59,0x5a,0x2d,0x57,0x80,0x17,0x98,0x7d,0x92,0x5d,0x2f,0x98,0x53,0x10,0x59,0x8e,0x7f,0x55,0x64,0x15,0x62,0x2c,0x16,0x0b,0x8d,0x48,0x54 +.byte 0xaf,0x96,0x17,0xa9,0x8e,0x2c,0xcf,0x41,0x8c,0x8a,0x37,0x55,0xe4,0xf9,0x20,0x3b,0x21,0x5c,0x86,0x8d,0x3f,0xa6,0x5e,0x43,0xf3,0x3b,0xf7,0x7c,0x27,0x88,0x8e,0xa5,0x15,0xca,0x0e,0x9e,0x85,0x30,0x17,0x0d,0xcf,0xf0,0x82,0x87,0xd6,0xe8,0xd2,0xad,0xe9,0x4d,0x3f,0xc9,0x58,0x19,0xf9,0x99,0x4d,0xf9,0x6b,0x1b,0xd3,0xf9,0xdd,0x52 +.byte 0xd1,0x3c,0x64,0x46,0xfd,0x4f,0x2e,0x63,0x39,0xd8,0xe4,0xeb,0xfc,0x07,0xf1,0xa5,0xff,0x84,0xa8,0x92,0xfe,0xbc,0xc5,0x36,0x91,0x2b,0xec,0x2c,0xad,0xf0,0xac,0xc5,0xb0,0xad,0x8a,0x0d,0x6a,0xd9,0x29,0x7a,0xb0,0x87,0x0c,0xaf,0xda,0x75,0x84,0x25,0xbe,0xee,0x0d,0xfd,0x4c,0xf5,0x2d,0x46,0xe9,0x17,0xb9,0x9d,0x3d,0x4b,0x8f,0x3a +.byte 0xe9,0x49,0xb6,0x32,0x99,0x27,0xe2,0x4d,0xff,0x2f,0x2e,0xd5,0x69,0x52,0x56,0x20,0x0a,0xbf,0x62,0x14,0x34,0xfb,0xbf,0x95,0xe8,0xfe,0xb1,0x9f,0x43,0x30,0x02,0x03,0x9e,0xa8,0xe2,0x68,0x64,0xdd,0x37,0xfc,0xb9,0x0f,0x85,0x8c,0x36,0x45,0xdb,0x7c,0x8b,0x97,0x50,0xc3,0x75,0xa1,0xcf,0xf4,0xc2,0x46,0xd8,0xa1,0x8c,0xab,0x8d,0x3a +.byte 0xde,0xe7,0x9e,0xd2,0x1e,0x2d,0x8b,0xe4,0x31,0xe3,0x12,0x3f,0x9f,0x0b,0x2c,0x95,0x75,0x8d,0xf1,0x24,0xb9,0xdf,0x1e,0x64,0x35,0x45,0x2a,0xc2,0xf9,0x96,0x5d,0x10,0x64,0x32,0xae,0xe9,0xf8,0x71,0xd4,0x2d,0x6b,0xc6,0xde,0x08,0x1e,0x5d,0x51,0xf1,0xe7,0xfd,0x3c,0x22,0x43,0x59,0x82,0x83,0x13,0x75,0x36,0xef,0x81,0xe4,0xcf,0xa8 +.byte 0xb8,0x30,0x16,0x44,0xae,0x55,0x06,0xdd,0xb9,0x60,0x3f,0x75,0xc6,0xd1,0x73,0xa9,0xea,0xc9,0x64,0x2b,0x8a,0xde,0x44,0x4b,0x3d,0xc3,0x31,0x12,0x84,0x9a,0xe3,0xda,0x24,0x82,0x99,0x00,0x6d,0x8e,0xb8,0x26,0x82,0xa6,0xc2,0x37,0x6c,0x2a,0x1d,0xcf,0x6d,0x18,0xc7,0xee,0x27,0xca,0xe7,0xad,0x95,0xed,0x7d,0xe0,0xe0,0x6f,0x45,0xc3 +.byte 0x8a,0x2f,0x08,0x49,0x7e,0x09,0x9e,0xc1,0xb7,0x1e,0x8f,0x57,0x61,0xf8,0x3e,0xea,0xd7,0x47,0xfb,0xd0,0xda,0xaa,0x04,0xf9,0x06,0xbb,0xa3,0x80,0x68,0x89,0xb0,0x7f,0x18,0xf3,0xd2,0xeb,0xee,0x48,0x30,0x6a,0x24,0xc8,0x71,0x43,0xc3,0x50,0xcc,0x85,0x68,0xf5,0xca,0x44,0x34,0x43,0xaa,0x2e,0x4f,0x02,0x1b,0x23,0x4f,0xe9,0x07,0x02 +.byte 0xa2,0xfa,0x24,0x57,0x70,0x4e,0x1a,0x78,0x03,0xa2,0xdd,0x53,0x50,0x82,0x05,0xb1,0x0f,0xcb,0x9e,0x2e,0x58,0x04,0x62,0xc8,0xac,0x71,0x31,0x56,0x0f,0xc7,0x70,0x32,0x53,0xda,0x51,0xc3,0x15,0x78,0x82,0xb6,0xe8,0x6e,0x32,0xeb,0x39,0xab,0xba,0x67,0xcc,0xbc,0x99,0x58,0x88,0xc4,0x60,0x0d,0x0b,0xc1,0xfa,0x6f,0x40,0x85,0x04,0xdf +.byte 0x5f,0x17,0x69,0xf1,0xbd,0x44,0x97,0xc8,0x62,0x19,0x49,0x1f,0x23,0xcb,0x3d,0x17,0x04,0xf2,0xbd,0x58,0x15,0xa6,0x37,0x3a,0x3f,0x77,0x98,0x32,0x40,0x8a,0x72,0xf0,0x41,0x0b,0xad,0x88,0xba,0xd3,0xae,0xdc,0x3b,0x9a,0x37,0x89,0xa5,0x09,0xe5,0xbb,0xf2,0xf8,0x5d,0xa5,0xed,0xe8,0x39,0x7b,0xed,0x2b,0x90,0xd6,0x6c,0xd3,0xfa,0x69 +.byte 0xa7,0xca,0x09,0x83,0x15,0x8d,0xd8,0xe3,0x81,0x03,0x4e,0x2d,0xd8,0x96,0x3b,0x4b,0x18,0x91,0xac,0x5f,0x22,0xe6,0x9d,0x4b,0x09,0xaf,0xf0,0xdf,0x16,0xa2,0xf1,0x2c,0xd9,0x35,0x8a,0x6e,0x85,0x7a,0xbc,0xc7,0x10,0xd1,0x5f,0x8a,0x53,0x9c,0x8e,0xbc,0x8c,0x15,0xb3,0x8a,0xb0,0x0b,0x74,0x40,0x2a,0x5f,0x46,0x71,0x1c,0x0b,0xee,0x08 +.byte 0xae,0x17,0x26,0x1e,0xcf,0xbf,0x3d,0xa0,0x5e,0x3a,0xdb,0x39,0x6b,0x4a,0x82,0x53,0x02,0xf4,0xa2,0x15,0x5c,0xb6,0xdb,0x20,0x30,0xa2,0x7d,0xcb,0x9a,0xf7,0x88,0x69,0xb5,0xc8,0xe6,0xcd,0x9e,0xa4,0xaf,0x27,0x0e,0x61,0x41,0xcd,0x8e,0x71,0x83,0x11,0xce,0x5e,0x6c,0xaf,0xa4,0x50,0x81,0xb6,0xf2,0x36,0x05,0xbb,0x36,0x4e,0x4a,0x1b +.byte 0x09,0x9f,0xca,0x1b,0x12,0xb0,0x01,0xc0,0xbf,0x7e,0x3f,0x81,0x60,0x9f,0xfd,0x56,0x81,0x54,0x99,0x2b,0x7f,0x1e,0xb1,0xbf,0xd4,0xb7,0xe1,0x7c,0x71,0xf9,0x00,0x72,0x5f,0x10,0xab,0x60,0x03,0x9d,0x13,0xf1,0xba,0x48,0x93,0x1c,0x1d,0x11,0x04,0x40,0xf6,0xde,0x3b,0xef,0x6c,0x47,0xb3,0x0d,0xcf,0x53,0xbd,0x45,0x7e,0xd7,0x8c,0x34 +.byte 0xd0,0xcb,0x85,0x4b,0x1e,0xd1,0xc5,0xfd,0x5b,0x1a,0x18,0x8a,0x27,0xe3,0x16,0x3c,0x25,0x12,0xf2,0xf1,0xa1,0x40,0x53,0x68,0x27,0x2c,0x81,0x0e,0x20,0x12,0xe3,0xde,0xe2,0x9f,0x08,0x75,0xc0,0x25,0x79,0xf0,0xc4,0xaa,0x10,0xad,0x41,0x3f,0x0b,0xc7,0xb2,0xe0,0x50,0xde,0xec,0x24,0x09,0xeb,0xb5,0xd3,0xbc,0xd3,0xdf,0x44,0x6d,0xc8 +.byte 0xf1,0x79,0xf8,0x33,0xb7,0x75,0x09,0x18,0x04,0x59,0x0f,0x15,0x5e,0xf9,0xca,0xe0,0xa9,0x2a,0xe1,0x1b,0xf0,0x49,0x5f,0xca,0xa3,0x80,0xd5,0x9b,0x1e,0xc1,0x1f,0x98,0x18,0x0a,0x24,0xc3,0x3f,0xfb,0x43,0xfd,0xa3,0x01,0x59,0x50,0xea,0x21,0xe0,0x92,0xfd,0xe1,0xd5,0xe4,0x38,0x24,0x88,0xf3,0xb0,0xc9,0x79,0xfd,0x4e,0xd3,0x3e,0xbf +.byte 0xc6,0xb8,0x9e,0x7f,0xab,0x65,0x79,0xd9,0xb9,0x83,0x38,0xe1,0xf7,0xd0,0x37,0x04,0xb3,0x0c,0x48,0x82,0x74,0xe1,0x0c,0x80,0x13,0x59,0xc4,0x72,0xf9,0x2d,0x88,0x06,0x46,0x08,0x7a,0x6b,0xb4,0xfc,0x5f,0x63,0x31,0x2f,0x4f,0xfd,0x4b,0x1f,0x8e,0x21,0x3c,0x67,0x83,0xdd,0xa9,0x65,0x68,0xc6,0xd0,0xb8,0x1d,0xcd,0x60,0xc5,0xb9,0x3b +.byte 0xea,0xe9,0xc7,0xa5,0x1a,0x98,0x8a,0x87,0xb7,0x73,0x29,0x3a,0x6a,0x3a,0x75,0xbf,0xa4,0x79,0x64,0xcb,0x94,0x68,0x93,0x56,0x55,0x1e,0xd5,0x61,0xda,0x87,0xe1,0x28,0xf0,0xa5,0x64,0x9a,0xd7,0xa0,0x91,0xfd,0x46,0x20,0x6c,0x87,0x1f,0xe8,0x9e,0x7e,0x95,0xc4,0x60,0xdb,0xf4,0xe2,0x3e,0xb2,0x6a,0x4a,0xe7,0x46,0x3f,0xca,0xf3,0x72 +.byte 0xb5,0xe8,0x06,0x3a,0x1b,0xeb,0xcb,0x81,0x46,0x44,0xf6,0x97,0xa0,0x79,0xe4,0xa4,0x8a,0xba,0x5e,0x1b,0x6d,0xf4,0xcf,0x7c,0x12,0x7a,0xec,0xdd,0xf6,0xc8,0xab,0x5f,0x30,0xb3,0xf9,0x8e,0x31,0xfd,0x51,0x95,0x8b,0xa1,0xe9,0xe8,0x2d,0xec,0x86,0x12,0x4a,0xf8,0x8b,0xa5,0xdd,0xb2,0xe4,0xad,0xdd,0xcb,0xf5,0xcd,0x9c,0x9f,0x0a,0x42 +.byte 0x5f,0x83,0x9d,0xa6,0x4f,0xbe,0x11,0x75,0x3c,0xde,0x67,0x6b,0x95,0xcd,0xcf,0xdc,0xfd,0x1f,0x1a,0x14,0x01,0x27,0x68,0xaf,0x9b,0x82,0xd6,0xae,0x29,0x8a,0x1f,0xc8,0xf1,0x1f,0xb8,0xa9,0xa2,0x1d,0x81,0xbb,0x19,0xda,0x06,0xe3,0x34,0x7b,0xce,0x99,0x3c,0x5b,0x0c,0x9b,0x8b,0x35,0xc0,0x6c,0x88,0xef,0xeb,0x9f,0x64,0xe3,0xc3,0xbf +.byte 0x37,0xd7,0xf6,0xdf,0xad,0x28,0xf4,0xd7,0x19,0xb0,0xf2,0xa7,0xd4,0x71,0xbc,0xd3,0xa3,0x09,0x5c,0x1a,0x45,0x30,0x2d,0x53,0xa5,0x19,0x2f,0xb0,0x5d,0xae,0x04,0x28,0xe6,0x16,0x3e,0x75,0x9f,0xcc,0x76,0xc4,0xc2,0xa0,0xfb,0xff,0xdd,0x4c,0xa3,0x8b,0xad,0x05,0x73,0x26,0xf0,0xef,0x48,0xd5,0x25,0x22,0x90,0x78,0x21,0xfd,0xc6,0x23 +.byte 0x14,0xbc,0xed,0x13,0x29,0x76,0x17,0xa6,0x93,0x09,0x6e,0xa7,0x42,0xdd,0x11,0x9e,0x05,0xa3,0xb7,0x48,0x84,0x85,0xf8,0x4e,0xed,0x3d,0xdb,0xfc,0x68,0xd2,0xec,0xec,0x69,0x2b,0x60,0x38,0xd1,0x99,0x44,0xf9,0x60,0xd3,0x5a,0x9e,0xe4,0x26,0x9d,0x12,0xf8,0x6a,0x53,0xde,0x76,0x78,0xa7,0x68,0xb0,0xb4,0xdc,0x33,0x7b,0x8a,0x73,0xa0 +.byte 0xa5,0x5f,0x8f,0x81,0x0e,0x51,0x06,0x13,0x6b,0x56,0x16,0x91,0x1f,0xf5,0x6b,0x68,0xe6,0x8b,0x69,0xda,0x0a,0x9c,0xb1,0x74,0x8f,0x1c,0xb3,0xbf,0x52,0x59,0xaa,0xb1,0xb6,0x3a,0x81,0xc2,0x04,0x54,0x12,0x46,0xa2,0xd5,0x21,0xdf,0xe0,0x57,0x1f,0xe8,0x36,0x56,0x87,0xbf,0xcb,0x7d,0x06,0x6c,0xd5,0xc9,0x4e,0xca,0x47,0x47,0x11,0x91 +.byte 0x7a,0x14,0x13,0x5d,0x5d,0x46,0xd5,0x3a,0xe4,0xa4,0x4d,0x99,0x3a,0x54,0x99,0x62,0xb4,0x70,0xa0,0xf5,0x8a,0xda,0x05,0x75,0xf1,0xa5,0xa1,0x5d,0x9d,0xc4,0x7f,0x83,0x8a,0x5b,0x09,0x54,0x0e,0x69,0x28,0xef,0x66,0xfb,0xe4,0xc4,0xe4,0xc4,0xda,0xb0,0xda,0xe2,0x19,0x33,0x3c,0x76,0xa0,0x35,0xdc,0x31,0x4e,0x40,0xfe,0xb8,0x20,0x26 +.byte 0x8f,0x6f,0x7d,0x02,0x54,0x86,0x1d,0xca,0xa6,0x10,0xa6,0x89,0x87,0x3a,0x5a,0xd5,0x3d,0x0f,0xb5,0x81,0x7d,0xab,0xb6,0xc6,0x36,0x87,0xce,0xd7,0xe4,0xc3,0x9e,0xc2,0x9c,0xf6,0x75,0xd5,0x9a,0x69,0xd2,0x13,0x89,0x5a,0xe9,0x29,0xc9,0xf5,0x6e,0xcc,0x05,0x87,0x0a,0x61,0x49,0xd7,0xa5,0x76,0xd0,0xaf,0x96,0xe0,0x2f,0x91,0xf4,0x45 +.byte 0x70,0x5a,0xdc,0x9f,0x07,0x7f,0x86,0x02,0xa4,0x83,0x8d,0x4a,0x6d,0xfc,0x1b,0xd8,0x9b,0xc2,0x42,0x4f,0xcb,0xdf,0xcb,0xe0,0x55,0xb4,0x8f,0xf7,0x27,0x73,0xd9,0x7e,0xf8,0x3a,0x5c,0x4f,0x29,0x64,0xd8,0x39,0xfa,0xf2,0xc4,0x6b,0xeb,0x55,0xc3,0x13,0x22,0x15,0xdf,0xc5,0x91,0x6d,0xd7,0xf3,0x11,0x34,0x08,0xce,0xe5,0xbd,0x16,0x14 +.byte 0x60,0x14,0x8a,0xed,0x4d,0x38,0x98,0x15,0x5d,0xee,0x70,0xff,0x05,0xd2,0x74,0x3a,0x5f,0x78,0x1a,0x70,0x61,0x2a,0x42,0x4a,0xf3,0x15,0x6f,0x9e,0x33,0xca,0xb8,0x46,0x22,0x64,0xd6,0x24,0xe8,0x10,0x1a,0x89,0xab,0x74,0xdf,0x56,0x35,0x41,0x57,0xe1,0xd9,0x4b,0x67,0x60,0x89,0x6f,0xbf,0x73,0xac,0x6b,0xf9,0x78,0x3f,0xbc,0xf3,0x2a +.byte 0xb5,0x8c,0x1f,0xda,0xe7,0xe2,0xac,0x60,0xbf,0x41,0x96,0xbb,0xd5,0x35,0x9c,0x56,0xe7,0xfd,0x95,0xc7,0x4d,0x32,0xa1,0x07,0x34,0xbc,0x99,0xca,0xcc,0x42,0x71,0xfb,0xec,0x5c,0x1e,0xf9,0x8b,0xde,0x43,0x65,0x84,0x16,0x52,0x0a,0x5e,0x92,0x20,0xd8,0x26,0x4b,0x97,0x71,0xde,0xd2,0x1f,0x2e,0xd1,0xb2,0xb6,0x29,0x6a,0x6d,0x41,0x00 +.byte 0x20,0x3d,0x03,0xf8,0x43,0x7b,0x57,0x87,0x4e,0xf1,0x8e,0x6f,0xd3,0xf4,0x6c,0x6c,0x29,0xf6,0x99,0xe3,0xd3,0x1d,0xd3,0x26,0x21,0x3b,0x02,0xa2,0xc1,0x06,0xcf,0x31,0xec,0x7f,0xc6,0x80,0xbc,0xab,0x86,0x01,0xff,0x11,0x8a,0x24,0xfd,0x1b,0x41,0x49,0xd4,0xbe,0x15,0x34,0x82,0xc5,0x02,0x51,0x67,0x5c,0x41,0x8e,0xbf,0x94,0x12,0x15 +.byte 0x64,0xea,0x00,0x0c,0x51,0x40,0x57,0x66,0x1e,0x6d,0x3e,0x41,0x8e,0x84,0xdf,0x71,0xb8,0xd7,0xfa,0x12,0x17,0x22,0x17,0x05,0xdc,0x82,0xfd,0x7c,0x5e,0xfa,0x62,0x23,0xa8,0xbe,0x14,0xdc,0x84,0x42,0xf0,0x90,0xc5,0xb0,0x68,0xbe,0x64,0x74,0xc3,0xa5,0xd1,0x10,0xcf,0xe3,0xd1,0x09,0x98,0x3b,0xb9,0x19,0xf2,0x9b,0x5d,0x90,0x99,0x3d +.byte 0x30,0x67,0x55,0x34,0x50,0x78,0x3b,0xd2,0x70,0xb1,0xd2,0x91,0x4e,0xfa,0x98,0x7d,0x93,0xad,0x7f,0xb1,0x89,0xb0,0x61,0x4c,0x95,0x3f,0x51,0x95,0xd7,0xc6,0x87,0x7a,0xc5,0x53,0xb6,0x6d,0x61,0xec,0xbe,0x40,0x1f,0xa5,0x7f,0x73,0x4a,0x78,0xd2,0x58,0x1e,0x41,0x8e,0x9a,0x08,0x49,0xce,0x39,0x52,0xf9,0xd1,0xcd,0x41,0xb6,0x39,0x99 +.byte 0xfa,0xfb,0x1c,0x38,0xe1,0xe5,0xe1,0xd6,0x16,0x0f,0xc8,0x12,0x0b,0x88,0xdc,0x00,0xd4,0x7b,0x24,0x69,0x16,0x27,0x37,0xa3,0xd5,0x39,0x27,0x34,0xda,0x23,0x24,0x50,0x13,0xd8,0x02,0x48,0x14,0xd7,0xc9,0x28,0x1b,0xba,0x66,0xa8,0xc8,0x9a,0x7b,0xed,0x92,0x5b,0x78,0x46,0x79,0x5a,0xd1,0xf2,0x75,0xf0,0x98,0xd3,0x9f,0x4c,0x72,0x51 +.byte 0xed,0xe5,0xce,0x83,0xac,0xe1,0xc8,0x2b,0x7f,0x77,0x6a,0x70,0xdd,0x80,0x88,0x62,0x58,0x94,0x15,0x72,0x53,0x34,0x48,0x17,0xb2,0xe8,0x4a,0xab,0x2d,0x4e,0xef,0x93,0xb7,0xba,0xd1,0x1c,0x53,0x69,0xd5,0xac,0xa1,0x61,0x7c,0x44,0xec,0x81,0x72,0xcc,0xe8,0x6f,0x5d,0x67,0x1f,0x65,0x9a,0x34,0xf5,0x95,0x89,0x1c,0x2e,0x54,0x42,0xc0 +.byte 0x85,0x79,0xb0,0xfa,0x44,0x0d,0x28,0xc4,0x20,0x2f,0x2e,0x85,0x73,0xfb,0xf6,0x44,0x0e,0xbc,0xab,0x4f,0x42,0x5c,0xdb,0x1f,0x11,0x6f,0x9a,0x23,0x75,0x70,0x78,0x1a,0xd2,0xb8,0x83,0x72,0xf5,0xf6,0x40,0x48,0x3f,0xc8,0xd5,0xe3,0x2c,0x08,0x5c,0x0c,0x2a,0xb0,0x8e,0x69,0xe6,0xdf,0x4b,0x4a,0x95,0x9c,0x4c,0x5e,0x09,0x24,0xc3,0xd0 +.byte 0x4c,0x20,0x0c,0x9a,0xce,0x95,0x53,0x6a,0x7b,0x54,0x0a,0x7e,0x73,0xa7,0x95,0xe7,0x7c,0x67,0x9d,0x05,0xbc,0x26,0x3a,0xa1,0x43,0x99,0x7a,0xee,0x04,0xcf,0x94,0x02,0x36,0x26,0xb3,0x81,0x74,0x22,0xee,0x1e,0x9e,0xe2,0x82,0xd4,0xe0,0xca,0xf2,0xec,0xd2,0x9e,0xf8,0x3f,0x9f,0xc4,0x5b,0xe8,0xfc,0xbd,0x93,0xaa,0xc3,0x2f,0xce,0xf2 +.byte 0x32,0xa9,0x23,0xf3,0xe1,0x06,0xae,0x7d,0x87,0xe9,0xe7,0xe0,0xc1,0x7c,0x74,0x9c,0xdf,0x86,0x6d,0x5c,0x8a,0x51,0x45,0x9d,0x43,0x49,0x87,0x45,0x75,0xfb,0x40,0x55,0xab,0x9a,0x52,0xf1,0x32,0x5e,0xde,0x8b,0x52,0x50,0x9f,0xb8,0x7a,0xe5,0x1c,0x40,0x4f,0xc7,0xb1,0x29,0x90,0xcc,0x98,0x99,0xa0,0x4e,0x1c,0x43,0x6e,0x91,0x61,0x9c +.byte 0xf7,0xa7,0xf7,0x43,0x89,0x15,0x8c,0x56,0x22,0x9d,0x66,0xac,0x71,0x19,0xdc,0xb9,0xf8,0xd3,0xaf,0x2e,0xd7,0x7b,0xc3,0xe4,0x25,0x0d,0x2c,0xaf,0x15,0x8c,0xea,0x2b,0xdb,0x8c,0x71,0xff,0x55,0x29,0x11,0x35,0x11,0xef,0xb0,0x97,0xb2,0x95,0xab,0xeb,0x4a,0x40,0x1c,0x92,0xc4,0x13,0x36,0x74,0x53,0x78,0x51,0x6c,0xca,0x37,0xcb,0xda +.byte 0x5e,0x6b,0x8c,0x69,0xc5,0xd0,0xf9,0xdb,0xbe,0xd9,0x30,0x42,0x16,0xcf,0x40,0x63,0x87,0x10,0x28,0x7d,0xae,0xa9,0x8c,0x14,0x99,0xe1,0x4f,0x11,0x98,0x7e,0xe9,0x14,0x9c,0x2e,0xe2,0xed,0x20,0x15,0x7c,0xb5,0xf4,0xc9,0x16,0x30,0x8d,0x7c,0x61,0x45,0xf4,0x23,0xf5,0xdb,0x81,0x8f,0x6b,0x41,0xaf,0xa9,0xf8,0x51,0xbe,0xc4,0x5d,0x8c +.byte 0xda,0x5e,0x07,0x62,0x7c,0xc6,0xd1,0xae,0x91,0x5e,0x05,0xa8,0xc6,0xc5,0xfc,0xb7,0x12,0x2e,0x7f,0x85,0xef,0xbd,0x2b,0x56,0x57,0x32,0xad,0x3d,0x97,0x5b,0x26,0xcf,0xd3,0xe7,0x48,0x4e,0x9b,0x15,0x98,0x77,0xb4,0x3e,0xf1,0x3e,0x1c,0x21,0xb0,0x98,0xe2,0x69,0xee,0xd8,0x29,0x10,0x93,0xd5,0xc9,0x71,0x8f,0x28,0xbd,0xe3,0xd9,0x54 +.byte 0xf3,0x72,0xb6,0x85,0xe9,0x2b,0xdc,0x96,0x52,0x53,0x5c,0x61,0x54,0x96,0x4a,0xf5,0x3f,0xee,0x53,0xc3,0x63,0xc9,0x67,0x14,0xdf,0x3a,0xfe,0x46,0x8a,0xa6,0xec,0x06,0x0c,0xea,0xb8,0x82,0x49,0xb5,0xed,0x94,0xf2,0xac,0x76,0xd5,0x87,0x79,0x15,0x4f,0xa1,0x34,0x90,0x8e,0x7b,0x02,0xf7,0x02,0xb0,0x07,0xa5,0x7c,0x6b,0xc2,0x34,0x84 +.byte 0xd4,0xaa,0xbf,0x32,0x81,0xf7,0xed,0x1f,0x61,0xd7,0x6e,0x40,0xa0,0xdc,0x4c,0xb5,0xb7,0x36,0x3a,0x87,0x09,0x82,0xd5,0x5a,0xc8,0x1f,0xe6,0x77,0xa6,0xaa,0xcf,0x3c,0x7b,0x23,0x46,0x58,0x95,0x7f,0x84,0xba,0x4a,0x05,0x0b,0x36,0xdb,0x58,0xf9,0xa4,0x2b,0x24,0xd4,0x8a,0xbc,0xb2,0xb7,0x04,0xac,0x64,0x0e,0x88,0x25,0x9a,0x69,0xe7 +.byte 0x87,0x70,0x0b,0xa6,0x43,0xe9,0xb2,0xbb,0x4e,0x4c,0x10,0x19,0x44,0x4d,0x12,0x4c,0x58,0x2a,0x49,0xe2,0x01,0xd2,0x65,0x23,0xee,0xe9,0xca,0x0b,0xa1,0x28,0x02,0x8d,0xcf,0x37,0x06,0xbc,0x5d,0x35,0xba,0xec,0x97,0x95,0xcc,0xfe,0x7b,0xc9,0x1c,0x0d,0x89,0x4e,0xe1,0x8d,0x9b,0x5e,0x5b,0xb9,0x6c,0x24,0x73,0x9a,0x62,0xd7,0xc5,0xfa +.byte 0x54,0xeb,0x05,0x22,0xd9,0xe7,0xc4,0x68,0x88,0x20,0x43,0xd9,0x14,0x47,0xd7,0xa5,0xd0,0xce,0x10,0x77,0xe8,0x5c,0x85,0x39,0x99,0x3f,0x72,0x88,0x4f,0x22,0x15,0x87,0xa0,0xa3,0x47,0x10,0x81,0x64,0xff,0x94,0x77,0x5d,0xce,0x6d,0xd8,0x29,0xb1,0x9c,0x8e,0xce,0xa8,0x39,0x4f,0xfc,0x36,0x3c,0x50,0xb2,0xf1,0x08,0x66,0x1a,0xf0,0x22 +.byte 0x65,0x1f,0x4d,0x17,0xd3,0x63,0x10,0x64,0xd1,0xc6,0x5a,0x3e,0x82,0x72,0x0c,0x48,0x5e,0x07,0x9c,0x07,0xa0,0x40,0x60,0xab,0x74,0x9a,0x00,0xdf,0xd7,0x7d,0xd4,0x11,0x4e,0xce,0x5a,0xaf,0x12,0x4f,0xe7,0x12,0x36,0x1a,0x12,0x11,0x16,0xb7,0xad,0x4b,0x28,0x84,0x7b,0xd8,0x30,0x0d,0x85,0xb8,0x76,0xde,0xa3,0x78,0x8c,0xb7,0x7c,0xbc +.byte 0x97,0x33,0x53,0x95,0xf8,0x14,0x5f,0xf8,0x0d,0xc1,0x6b,0x79,0xa2,0x42,0x49,0xab,0xae,0x8e,0x78,0xf3,0x51,0x01,0xcc,0x20,0x36,0x80,0xbd,0x32,0x0b,0x1b,0xd2,0xcd,0x27,0x52,0x69,0x1b,0x4a,0x37,0xba,0x31,0xe4,0xc2,0x03,0x8d,0x00,0x48,0x4b,0xcd,0x39,0x2e,0xec,0x94,0x2e,0xe0,0x81,0xfd,0x94,0xd9,0x86,0x39,0x23,0x87,0x3c,0x2f +.byte 0x25,0xe1,0x5b,0x22,0xe0,0x2e,0x37,0x6d,0x9b,0x97,0x9c,0x94,0x37,0x01,0x26,0xb8,0xb1,0x73,0x7c,0xfc,0x0a,0x64,0xe7,0x54,0xf1,0x0f,0x71,0xa1,0xd6,0xc7,0xc8,0xb4,0x86,0x2d,0xfe,0x30,0x8b,0xca,0xb2,0x18,0x21,0xc0,0xc7,0x7d,0x60,0xcf,0x2e,0x25,0xb0,0xa4,0x1a,0x28,0x19,0xa9,0xa9,0x15,0x32,0x5e,0x21,0x89,0x3a,0x99,0x5f,0x50 +.byte 0x86,0x37,0x3b,0x10,0xb8,0xa5,0xad,0x8e,0xbf,0xfc,0x8c,0x85,0xf1,0x76,0x5c,0xe7,0x4d,0xac,0xe7,0x21,0xb3,0x45,0x87,0x3b,0x05,0xc8,0x41,0xf4,0x99,0x83,0x28,0x40,0x6b,0x30,0x37,0x31,0xd2,0xb3,0xdd,0x43,0x3b,0x3f,0xec,0x50,0x58,0x7d,0x20,0xc6,0xb2,0xa9,0x3c,0x22,0x38,0xea,0x16,0x32,0x01,0xc4,0xb0,0x9f,0x7d,0x12,0x91,0x82 +.byte 0x0c,0xd8,0x36,0xfc,0xa4,0xec,0x06,0xb2,0xc2,0xce,0x9b,0xa4,0x53,0x71,0x77,0xdd,0xc3,0xfc,0x34,0x6f,0xd9,0x5c,0xfc,0x36,0xdd,0x63,0x19,0x06,0xfb,0x3c,0xf3,0x3f,0x82,0x28,0x6d,0x00,0xf9,0xfd,0x8d,0x6b,0x79,0x06,0x8a,0xe7,0x6f,0xcc,0x39,0x12,0x80,0x71,0xcb,0x71,0xb3,0xb6,0xa4,0xa8,0xbe,0x61,0x9d,0x1f,0x48,0xa2,0x15,0xa1 +.byte 0xb5,0xf5,0x16,0x70,0xc5,0x39,0xce,0x43,0xa3,0x09,0xe5,0xf4,0x8b,0x77,0x18,0x5e,0xa0,0x77,0xa3,0xa4,0x17,0x2c,0x3e,0x50,0x73,0x2f,0xaa,0x5d,0x58,0x5e,0xdc,0xec,0xaf,0xca,0x6e,0x57,0x80,0xa3,0xd5,0x94,0x30,0x7c,0x11,0x75,0xc4,0xbb,0x9d,0x18,0xc1,0x5a,0x58,0xc7,0x04,0x56,0xb1,0x3a,0x21,0x55,0x02,0xea,0xad,0x58,0x19,0x72 +.byte 0xdc,0x7d,0x0e,0x41,0x62,0x1b,0x5c,0x48,0x97,0x3f,0xed,0xd7,0x4e,0x30,0x1f,0xf5,0xde,0xc5,0x23,0xf2,0xd7,0x22,0xde,0x2f,0x3e,0x80,0x06,0x81,0xf6,0x24,0xb7,0x91,0x09,0x56,0x91,0x00,0x1a,0xea,0xaa,0xa6,0xc2,0x8b,0xc9,0x78,0xd7,0xde,0xf6,0x87,0xb1,0x04,0xcc,0xbb,0xc1,0xc6,0x48,0x43,0xc8,0x03,0xb2,0xdd,0x70,0xc0,0xe3,0xf5 +.byte 0xc0,0xf5,0x13,0xd5,0x11,0x41,0x7f,0x1a,0xdc,0x48,0xf5,0xd6,0x1b,0x0a,0x84,0xd2,0x84,0xcd,0x10,0x4f,0x0a,0xd7,0xcb,0x41,0x61,0x1c,0xcc,0x5c,0xa9,0xbd,0x6e,0x6a,0xf3,0x81,0xd8,0xaa,0x3a,0xff,0x39,0x90,0x8e,0x33,0xe6,0x58,0x13,0x5f,0xec,0x58,0x74,0x35,0xe0,0x06,0x38,0x0f,0xd0,0xbf,0x8d,0xf7,0x26,0x99,0xea,0xdd,0xfb,0xdf +.byte 0x5b,0xcc,0xf1,0x3d,0x9b,0x84,0x8b,0x5b,0xe8,0xc4,0xc6,0x3e,0x0a,0x55,0xec,0x73,0xf7,0x70,0xb1,0xc8,0xfa,0xf8,0xd6,0x72,0x2c,0x6d,0x8d,0xc1,0xa3,0xb2,0x9a,0xe7,0x80,0x6d,0x09,0xa6,0x76,0x06,0x71,0xf9,0x95,0x9a,0xa9,0x2f,0x4b,0x7c,0xad,0x64,0x01,0x01,0x91,0xe4,0x87,0x1d,0xe1,0x46,0xf5,0x4a,0x96,0xc6,0x58,0xd9,0xe0,0xa9 +.byte 0x2f,0x80,0x1e,0xd6,0xe9,0xa6,0xeb,0xfe,0x5a,0xb6,0xd3,0xe8,0x76,0xd2,0x51,0xc6,0x68,0x34,0xc9,0xed,0x76,0x29,0x7e,0x63,0xb1,0x09,0xdf,0x23,0x47,0x41,0x2f,0x70,0x46,0x4d,0xbb,0x36,0xc8,0x84,0xe9,0x58,0x20,0x6b,0x04,0xb2,0xa4,0x1c,0x4d,0xe0,0xa5,0xa2,0x59,0xc9,0xed,0x63,0x25,0x5f,0x3f,0x24,0x18,0x59,0x29,0xe3,0x79,0xbd +.byte 0x35,0x50,0xee,0x81,0x59,0xff,0xd4,0x0e,0x62,0xd3,0x52,0x30,0x81,0xa2,0xe6,0x9e,0xc3,0xc9,0x7a,0x10,0x57,0x36,0x27,0xb7,0x3c,0x61,0x38,0x89,0x70,0xa0,0xc5,0xdf,0x78,0x05,0xa5,0x81,0xe2,0x8a,0x93,0xda,0x7c,0xaf,0xbf,0x6d,0x42,0x09,0x1b,0x43,0x9d,0xf9,0x26,0x87,0xc3,0x84,0x6c,0xb7,0x25,0x31,0x50,0x00,0xd8,0x13,0xc0,0xc0 +.byte 0x6c,0x21,0x82,0x6d,0xf9,0x2f,0xef,0x40,0xe8,0xf8,0xae,0x4d,0x9e,0x1d,0x4a,0xda,0xa0,0x0d,0x77,0x36,0x8b,0xed,0xaf,0x6e,0x2a,0x3d,0xa8,0x36,0xe4,0xff,0x37,0xc2,0xa3,0x11,0x5e,0x68,0x58,0xa8,0xa3,0x19,0xf3,0xc1,0x33,0xea,0x39,0x49,0xfe,0x51,0x87,0xb6,0x31,0x6a,0x61,0x47,0xe7,0xb1,0x46,0xde,0x5a,0xf7,0x93,0x06,0xa7,0x72 +.byte 0xa9,0x2e,0x9e,0x2e,0xc9,0x7f,0xe1,0xb2,0x86,0xb4,0xc9,0xff,0x3b,0xf7,0xaf,0xef,0x91,0x47,0xc2,0xfa,0x42,0x0a,0x4e,0xbb,0x10,0x0d,0xea,0xa4,0x11,0x54,0xa9,0x53,0xde,0xc4,0x01,0xde,0xc7,0x2d,0x1f,0x18,0x40,0x79,0xd1,0x44,0x7d,0x51,0x1d,0xf6,0xdc,0x6f,0xad,0xa2,0x5d,0xd9,0xbe,0x5d,0x11,0x57,0xb7,0x68,0x0d,0x96,0xad,0xb3 +.byte 0x32,0xf7,0x99,0xcc,0x0e,0x03,0xa2,0x79,0x9b,0x63,0xce,0xee,0xf9,0x0c,0xfd,0xfa,0x9a,0x82,0xc9,0x43,0xd3,0xd5,0x23,0xfa,0xac,0x75,0xbe,0x61,0x85,0x18,0xb6,0x75,0x72,0x8d,0x17,0xdd,0xde,0x3f,0x6d,0xb4,0xe8,0x47,0x09,0xe1,0xa7,0xe0,0x4c,0xce,0x93,0x7b,0xc3,0xa3,0x3f,0xc0,0x81,0x21,0x6f,0xe8,0xce,0x68,0x61,0xde,0x1a,0x58 +.byte 0x48,0x7f,0xb4,0xae,0xfd,0x7c,0x80,0x63,0x43,0x5a,0xfc,0xf9,0xf9,0x4d,0xb4,0x8c,0x85,0x27,0x12,0x4f,0x7d,0xe8,0x69,0xc3,0x7d,0x57,0x63,0x0d,0x5f,0xd2,0x85,0x4e,0x0c,0x9a,0x0d,0x1c,0x4d,0xdf,0x3f,0x9a,0x16,0x2f,0x34,0x43,0xc3,0xf0,0xf1,0x16,0x16,0xd2,0x9f,0x2e,0x78,0xd8,0x3c,0x63,0xa0,0x7e,0x02,0x8e,0x65,0xd2,0xb0,0x61 +.byte 0xb0,0x1d,0x7a,0x8f,0xf7,0x30,0x45,0x05,0xf7,0x15,0xc3,0x69,0x24,0x98,0xc3,0x74,0x20,0x16,0x09,0x57,0x39,0x16,0x68,0x23,0x33,0x62,0x4c,0xf5,0xd6,0x34,0xe3,0xad,0x7a,0x14,0x64,0x8c,0x2b,0x48,0x96,0xf9,0x85,0x39,0x19,0x73,0x27,0x04,0xa6,0x55,0x66,0x15,0x8c,0xf1,0x47,0xcd,0x53,0xaf,0x31,0x3a,0xd9,0xfa,0xf9,0xac,0xbd,0xb8 +.byte 0x27,0xe0,0xaa,0xa5,0x62,0x85,0x9f,0xbb,0x4e,0xaf,0xa5,0x72,0x42,0x98,0xa6,0x7f,0xa1,0xb6,0xac,0x17,0xc2,0x2c,0xf3,0xd6,0xc0,0x14,0x4b,0xb3,0x86,0x88,0x89,0x81,0x83,0x7d,0x9d,0xf7,0xe3,0xe4,0x27,0xba,0xa8,0x03,0xb4,0xe3,0x97,0x74,0x1c,0x0d,0xab,0xb4,0x6e,0xc6,0x9e,0x58,0xdd,0x15,0x95,0x2f,0xa6,0xd6,0xaa,0x5a,0x96,0x71 +.byte 0x69,0xca,0xe0,0x5f,0xd2,0x3c,0x66,0x1b,0x58,0x25,0xd6,0xec,0xc0,0x46,0x3e,0x56,0xd0,0xe1,0x36,0x44,0x56,0xc0,0xf2,0x15,0x48,0x9e,0x07,0xce,0x5d,0xb9,0xd4,0x4e,0xcc,0x31,0x26,0xaa,0xdb,0x6a,0x87,0x98,0x0e,0x37,0xfc,0xc5,0x91,0x28,0x1b,0xf8,0x70,0xbf,0x30,0x71,0xbe,0xa0,0x81,0x1e,0x30,0x33,0x37,0x37,0xc8,0x07,0x08,0x9b +.byte 0x8f,0xe4,0x27,0x9f,0x90,0x67,0xb4,0x96,0x08,0xd7,0x30,0x9e,0xa6,0x53,0x39,0xd1,0x9b,0xde,0x02,0x35,0xf3,0xb1,0x19,0x7b,0xd2,0x28,0x5a,0xc3,0x1f,0x69,0x0e,0x48,0xbf,0xa3,0xb4,0x55,0xd1,0x10,0x3d,0x30,0x71,0xc6,0x82,0x2d,0xb8,0x6f,0xe6,0x99,0x6b,0xef,0x9f,0x86,0xed,0x93,0x13,0xb6,0xb0,0x87,0x91,0x77,0x4a,0x00,0xe4,0x5f +.byte 0x4c,0x7d,0x41,0x3b,0xc9,0xda,0x99,0x6b,0xff,0xec,0xef,0x05,0x3c,0xc6,0x0d,0xec,0x68,0x12,0x44,0x31,0xac,0xc9,0x0b,0x9c,0xf5,0xea,0xed,0xda,0x88,0xec,0x6e,0x6e,0x73,0xda,0x85,0x52,0x69,0xa1,0x13,0x52,0xcf,0xc3,0x4d,0x95,0x88,0xec,0x1f,0x53,0x81,0x6f,0xac,0x53,0x60,0x48,0x20,0x9a,0x4d,0x88,0x2c,0x4b,0xb0,0x69,0x5f,0x07 +.byte 0xf9,0xa7,0x2c,0x9a,0x13,0x91,0x86,0xa2,0x98,0x20,0xa9,0x80,0x1e,0xaa,0x8e,0xbc,0x3c,0x3d,0x51,0x34,0x3d,0x5b,0x80,0xe4,0x39,0xfe,0xc8,0xb1,0x6d,0xfe,0x36,0x9d,0x9b,0xde,0x22,0x39,0x41,0xe9,0xff,0xda,0x67,0x67,0xd4,0xeb,0x60,0x44,0xd5,0xc1,0x74,0xcd,0xa0,0x98,0x06,0x34,0x76,0xf8,0xe5,0x0d,0xc8,0x52,0xca,0x83,0xd2,0xdd +.byte 0xf2,0x12,0x36,0x7d,0x3e,0x7f,0xbd,0xa6,0xd8,0x1e,0xc0,0x9d,0x67,0x2a,0x33,0x87,0x86,0x79,0x7a,0x70,0x3a,0x63,0x0b,0x74,0x77,0x89,0xce,0x8f,0x5a,0x3b,0xf3,0x2e,0x52,0x4d,0x1d,0xc6,0xc3,0xc8,0x69,0x98,0xdc,0x81,0x45,0x99,0xfd,0xcd,0x6b,0x6d,0x05,0x33,0x40,0xde,0xb3,0xbd,0x4a,0x27,0xc2,0x9e,0x8b,0xf1,0x4c,0xac,0x92,0x82 +.byte 0x55,0x04,0x79,0xe7,0x28,0x74,0x5b,0x70,0xdc,0xc0,0x4f,0x0c,0xcf,0x3a,0x7f,0x08,0xcc,0x2e,0x1d,0xfd,0x8d,0xd9,0x5c,0xe2,0xa7,0x98,0xc1,0xe8,0x4b,0x96,0xbe,0x27,0xd6,0xfd,0x0a,0x59,0x30,0x33,0x85,0x41,0xc5,0x63,0xab,0xe7,0xda,0x26,0xbd,0xce,0xe7,0x9d,0x50,0xd7,0x2d,0x67,0x7a,0xa1,0x05,0x2b,0x74,0x60,0x5e,0x6c,0x04,0x2b +.byte 0xba,0xe6,0x2d,0x25,0xc9,0x00,0xd0,0xf0,0xa5,0x4f,0x22,0x59,0x34,0xb8,0x43,0x6b,0xb7,0x67,0x25,0x99,0xff,0x75,0x17,0xb1,0x13,0x7e,0x34,0x1d,0x42,0xa3,0x6b,0xb5,0x9d,0xfe,0xa1,0x71,0x0d,0x90,0x81,0x58,0xfc,0xc7,0x85,0xe6,0xbd,0xc2,0xcc,0xc9,0xc9,0x23,0x6e,0xd6,0xbe,0x4a,0x61,0xd4,0xf5,0x9e,0x37,0x6a,0xb1,0x8b,0x91,0x59 +.byte 0xe1,0x3e,0xac,0x87,0x54,0xa6,0xf9,0xf5,0x90,0xd2,0x7c,0xba,0x4b,0x37,0x33,0x1b,0x88,0x5e,0xbd,0x78,0x3f,0xed,0x43,0x40,0x4f,0x16,0x59,0x29,0xbc,0x27,0x98,0x87,0xfe,0x62,0x56,0x93,0x21,0x0a,0xca,0xc1,0x21,0x99,0xb3,0x32,0xbb,0x5a,0x79,0x40,0xab,0xea,0x00,0xf8,0xe9,0x90,0x0d,0x59,0xbd,0x6e,0x7f,0x74,0x01,0x50,0x67,0x3a +.byte 0x8e,0x24,0x1d,0x6c,0xc8,0xd6,0x93,0xca,0x71,0x95,0xec,0xac,0x78,0xe9,0x1f,0x38,0x0d,0xa2,0xe5,0x32,0x90,0xa2,0xaf,0xef,0x15,0x06,0xd6,0x52,0xa4,0xd2,0x94,0x0f,0xbd,0x86,0x81,0x82,0x12,0x9b,0x3a,0xc4,0x0b,0xdf,0x8a,0x5f,0xc6,0x3b,0xb4,0x13,0x9b,0xeb,0xed,0x2d,0x06,0x46,0xa3,0xbe,0xbb,0xe1,0xe1,0x93,0xa1,0xab,0x46,0xf3 +.byte 0xd0,0xd9,0xce,0xb6,0xfb,0xd0,0xd5,0xb6,0xde,0x0c,0xed,0x90,0x18,0x6c,0x1e,0x46,0xb0,0x36,0xa7,0xf1,0x29,0xbe,0x9a,0xa0,0xcf,0xed,0xd6,0xaf,0xb8,0x89,0x9b,0x83,0xa8,0xa0,0x8d,0x26,0xaf,0x8f,0x48,0x66,0xfc,0x22,0x1a,0xc0,0xcf,0xf8,0x90,0x57,0x7e,0x25,0x5f,0xe4,0x0c,0x68,0xd2,0xaa,0x59,0x09,0x2f,0x6d,0x3f,0x80,0x8d,0xe0 +.byte 0xfa,0x25,0xb0,0xe0,0x85,0xe9,0x13,0x39,0x3d,0x1f,0xed,0xd1,0x94,0x9b,0xb5,0xc2,0x65,0xda,0xec,0x7a,0x1f,0x2f,0xe2,0x0a,0x42,0x09,0xbd,0x79,0x7d,0xcb,0xb8,0x4a,0x02,0x2b,0x72,0xaf,0x33,0x85,0x72,0x1b,0x18,0x0c,0xa3,0xec,0x39,0x0e,0x30,0x21,0x41,0xf8,0x2e,0xc7,0x8e,0x5c,0x4c,0xda,0x22,0x49,0x8c,0xa7,0xfb,0x89,0x76,0x2e +.byte 0x45,0x90,0x6c,0xeb,0x70,0x78,0x6d,0x6e,0xee,0x12,0x6c,0xb9,0xb9,0x8d,0xe7,0xf3,0x4d,0x86,0xc4,0x58,0x49,0x55,0xa6,0x86,0xaf,0x39,0x03,0x21,0xfa,0xa7,0xdd,0x51,0x80,0x79,0x6d,0x5b,0xa5,0x58,0x0f,0xfd,0x57,0xb3,0x83,0xe6,0x0d,0x25,0xec,0x55,0xdc,0x0a,0x6f,0xbc,0x7d,0xfd,0x94,0x16,0xdd,0x60,0x9f,0x2a,0x4b,0x6c,0x82,0x03 +.byte 0x4b,0x44,0xbb,0x84,0xdc,0xcb,0x97,0x8e,0x58,0xe7,0xc1,0x79,0xa9,0xf3,0x53,0x78,0x1f,0xf1,0x3e,0xdd,0x94,0x24,0x6d,0xb1,0xd2,0x99,0xbc,0xa1,0xbe,0x7d,0xdd,0xff,0xa8,0x5d,0xd2,0xc2,0xba,0xad,0x60,0x6b,0x40,0x5d,0x7b,0x99,0xd2,0xea,0x45,0x66,0x80,0x6c,0x47,0xf2,0xeb,0x94,0xb8,0xe8,0xe8,0xa0,0x46,0x05,0xe1,0x4f,0x40,0x23 +.byte 0x34,0xdf,0x91,0x63,0xae,0xc9,0xe7,0x32,0x20,0x9a,0x95,0x1e,0xcd,0x5a,0x60,0xe1,0x3d,0xe0,0xf1,0x16,0x3d,0x6e,0x8b,0x96,0x23,0xe0,0xaa,0x1d,0x1a,0xde,0xed,0xc6,0x63,0xb5,0x46,0x8b,0x78,0x71,0x9a,0x14,0x88,0x79,0x61,0x68,0x6b,0xcf,0x80,0xd8,0x9c,0xaa,0xfb,0xb1,0xc0,0xf3,0x39,0x07,0x26,0x56,0x80,0xba,0x9d,0xf5,0xe7,0x95 +.byte 0x99,0xac,0x90,0xea,0xe7,0xe1,0xc9,0x0d,0x40,0x94,0x83,0x58,0xd2,0xc3,0x2b,0xce,0x1e,0xae,0x2a,0xa6,0xfa,0xc7,0x89,0x44,0xcb,0xe2,0x9e,0x74,0x33,0xaa,0x70,0xe5,0x28,0x3a,0x51,0x74,0x53,0xe2,0xfb,0x7c,0x47,0x76,0x22,0xdf,0x46,0xa6,0x01,0x17,0xef,0x88,0x43,0x46,0x3f,0x1a,0x26,0x0c,0xad,0xf4,0x31,0x55,0xf2,0xe7,0xc9,0x35 +.byte 0x6f,0x7c,0x0c,0x5c,0xfd,0x43,0xa4,0x6c,0x6c,0x74,0xf0,0xa4,0xec,0x1d,0x83,0x97,0xc1,0x6c,0x9c,0xd7,0x97,0x90,0x7c,0x07,0x88,0xc0,0xb4,0x79,0x2c,0x7a,0x9c,0x93,0xa2,0x15,0x6c,0xd2,0xa9,0x45,0xa5,0xc1,0x16,0xfe,0x72,0xf4,0x01,0x32,0xe4,0x51,0xdd,0xdb,0x50,0xe3,0x61,0x4e,0x29,0x1e,0x27,0x10,0xe9,0x5e,0x30,0x2b,0x30,0x27 +.byte 0x99,0xff,0x92,0x23,0x04,0x8d,0x28,0x68,0x28,0xd3,0x0f,0xec,0xbb,0xf9,0xfb,0x44,0x1c,0xaa,0x8b,0x38,0x95,0x67,0x1e,0xf5,0x42,0xc9,0xec,0x05,0xeb,0x94,0xe5,0x1c,0x8a,0x2a,0xef,0x3b,0x74,0x46,0x89,0x4f,0xd5,0x6f,0xa0,0xe5,0x74,0xae,0x24,0x8d,0x81,0xae,0x9d,0x3c,0x3e,0x3d,0x41,0x54,0x8f,0xd9,0xc2,0x98,0xf4,0x84,0xeb,0x30 +.byte 0x6a,0x06,0x67,0x11,0x2d,0xb0,0x55,0x70,0x26,0xdf,0x19,0x5f,0x81,0xe9,0x39,0x69,0x3a,0xd6,0x09,0xa4,0x40,0x22,0x1f,0x5c,0xbf,0xd5,0xa6,0xea,0x69,0x99,0x0d,0xea,0x70,0xed,0xfe,0x3a,0xba,0x23,0x8b,0xab,0x08,0xfe,0xfb,0xe9,0x1a,0x88,0x80,0x13,0x45,0x9c,0xca,0x2e,0xda,0x4a,0xc8,0x5d,0x15,0x52,0x87,0x36,0x9b,0x87,0x8a,0x76 +.byte 0x5d,0x31,0x24,0x4a,0xcb,0xf5,0xd3,0xd3,0xc1,0xec,0xde,0x1e,0x48,0x99,0xd5,0xcb,0x93,0xf7,0xca,0x2d,0xa4,0x66,0x5e,0xa4,0xcf,0xc6,0x15,0x20,0x10,0xb1,0xe2,0x8e,0xb9,0x44,0xa7,0xc3,0x54,0x14,0x86,0x08,0xb7,0x89,0x52,0xd5,0x72,0xc5,0x62,0x4d,0x82,0x96,0x23,0xcf,0x6e,0x52,0x3a,0x92,0x53,0x48,0xa2,0xa5,0x9d,0xa4,0xcc,0x32 +.byte 0x45,0x5a,0xdf,0xe2,0xbe,0xce,0x28,0xc8,0xb1,0xb7,0x0f,0x6a,0x38,0x28,0x14,0x66,0x55,0x7a,0xab,0x35,0x56,0xd0,0xc7,0xe5,0xa1,0x8a,0x84,0xf7,0xc5,0xa9,0xdb,0x2a,0x45,0xe9,0x34,0x2d,0xf2,0xed,0x2b,0xa9,0x9e,0x49,0x1b,0x23,0x10,0xeb,0x0e,0x01,0x46,0x6f,0x7a,0x50,0x09,0x5f,0xc3,0xb6,0x1e,0x2f,0x1a,0x3e,0x89,0x32,0xaa,0x5a +.byte 0xaa,0xef,0x23,0x45,0xdc,0xb5,0x7e,0x5f,0x87,0x77,0xde,0x50,0xab,0xbf,0x9e,0x62,0xa8,0xe0,0xf0,0xc8,0x4a,0xf1,0x4e,0xaf,0xe4,0x50,0x8a,0xfe,0xc9,0x68,0xdd,0x19,0x1d,0xc6,0x54,0xe5,0x38,0x0a,0x6f,0x36,0xe4,0x85,0xe8,0xab,0xc4,0x06,0xef,0x07,0x29,0xce,0xea,0x9d,0x2e,0x22,0x97,0x18,0x7e,0x59,0x89,0x92,0x31,0xc5,0x87,0x50 +.byte 0xa8,0x23,0x22,0x58,0x47,0x27,0x1c,0x89,0x5f,0xec,0x94,0x1d,0xb2,0xc8,0x61,0x1e,0x0a,0x80,0xd3,0xe9,0xbf,0x65,0xb9,0x66,0x32,0x56,0xde,0xd2,0x13,0xee,0xea,0xc4,0xc9,0xbf,0x4c,0xb7,0xa4,0x1c,0xc0,0xbf,0xcf,0xa4,0x58,0x1f,0x98,0x1d,0x25,0x4e,0x51,0xd9,0xbe,0x89,0x32,0xdb,0x7a,0xa6,0x39,0xa9,0xbf,0xed,0x65,0x6b,0x92,0xc4 +.byte 0x8d,0xcd,0x63,0x18,0x65,0x44,0x95,0xcf,0x17,0x72,0x8f,0x27,0x79,0x83,0xda,0xe3,0xe7,0xd9,0xca,0x57,0xff,0xa3,0x15,0xbf,0xb6,0xd8,0xc2,0x8c,0xe8,0xdb,0x8c,0xdc,0x54,0x6a,0xc8,0x57,0x6e,0x24,0xc3,0x3c,0x1f,0x33,0xdd,0x68,0xbd,0x7a,0xa3,0xbc,0xa9,0x9a,0xe8,0xfc,0x97,0xa5,0xbe,0x59,0xfb,0x77,0xcd,0x22,0xc6,0x3d,0x95,0x21 +.byte 0xcb,0xf7,0x8d,0xc1,0x77,0xc6,0xe0,0x06,0xb2,0xdb,0xec,0x54,0x19,0xad,0x02,0x25,0xe0,0x0f,0xda,0x4c,0xa5,0xf2,0x47,0x3f,0xc9,0xa0,0x91,0x21,0x39,0xe9,0x74,0x2a,0x9a,0xc1,0x57,0x86,0x3c,0x32,0x27,0x4c,0xc2,0x2d,0x50,0xbd,0x7a,0x04,0x9c,0x45,0x0d,0x7e,0x06,0x1d,0x3e,0xc1,0x6f,0x06,0x7f,0xd4,0x71,0xd3,0x5c,0x66,0x74,0xa7 +.byte 0x33,0x75,0x64,0xa8,0x7d,0xc0,0x23,0xda,0xb0,0x6d,0x12,0xbe,0x83,0x98,0xe7,0x65,0x38,0x4d,0x39,0xc3,0xd7,0x33,0xfb,0x58,0x64,0xfc,0xde,0xd7,0xbf,0x9e,0xdb,0xcc,0x7a,0x35,0xac,0xdf,0x13,0x08,0xbc,0x0a,0x55,0x82,0x5f,0xc3,0x74,0xc5,0xb2,0xdb,0x89,0xdc,0x9c,0x60,0xfa,0x02,0x1c,0xba,0x5b,0x7e,0x0f,0xb1,0x0f,0xad,0x43,0xe1 +.byte 0xe1,0xbe,0x1e,0x06,0x05,0x0f,0x39,0x80,0x3d,0x7d,0xbe,0x8f,0x38,0x25,0x46,0x5e,0xea,0x47,0x36,0x65,0x4c,0x3c,0x6c,0xd6,0xaa,0x46,0xaa,0xb0,0x95,0x1d,0xff,0x67,0x6c,0x70,0x9d,0xec,0x3d,0x3d,0x4c,0x2f,0xd9,0x2b,0xb0,0xbd,0x8c,0x6a,0xca,0xac,0x0c,0x53,0xa1,0xda,0xd8,0xc1,0x3c,0xaa,0xcc,0x50,0x85,0x41,0xa1,0xa7,0xe9,0x7f +.byte 0xf7,0xa8,0x28,0xb1,0x5f,0xd6,0x77,0xc9,0xb5,0xae,0x33,0xa7,0x2d,0x16,0xe0,0x13,0xe8,0xd4,0xf9,0x4e,0x62,0x2e,0xc2,0x9a,0xf3,0x83,0xe0,0x45,0x43,0x68,0x40,0x5a,0x56,0xf3,0x31,0xc8,0x5b,0x46,0x0b,0x38,0x1f,0xa5,0xff,0xe6,0xa1,0x81,0xc0,0x91,0xe5,0x5a,0x63,0x8f,0x47,0x9a,0xe7,0x26,0x0d,0x78,0x8d,0x11,0x7d,0xc8,0xd4,0x9f +.byte 0xc1,0xf7,0x8f,0x93,0xfa,0x2f,0xb5,0xfd,0x6d,0xa4,0x34,0xcf,0x3c,0x6c,0xf6,0x64,0xae,0x5c,0x60,0xa2,0xb4,0xcc,0x18,0x3e,0x08,0x8e,0x36,0x88,0xab,0xc3,0xea,0x53,0x4f,0x1c,0x9e,0xe6,0xef,0x2d,0x9c,0x78,0x4a,0x3a,0x5a,0x60,0x8e,0xf7,0xeb,0x0b,0x36,0xb1,0xbb,0x59,0xe2,0x5e,0x64,0x60,0xe5,0xd6,0x3d,0x2a,0xe1,0x1b,0x03,0x40 +.byte 0x8d,0xde,0x2e,0xd0,0x76,0x0a,0x6b,0x63,0x2a,0x53,0x2d,0x39,0xe0,0x53,0xee,0x7d,0xc4,0x8a,0x39,0xc5,0xda,0xfc,0x31,0x7e,0xa2,0x1b,0x11,0x1d,0x8a,0x8e,0x66,0xf4,0x00,0x17,0xd3,0x78,0x1b,0x94,0xad,0xcf,0xdd,0x56,0xce,0xaf,0xf6,0x34,0xe4,0xb6,0x47,0xe0,0xda,0x1b,0x36,0x4f,0x86,0x26,0xc1,0x65,0xec,0x85,0x8c,0xa9,0xfe,0x96 +.byte 0x75,0x0d,0xe3,0xeb,0x9a,0xa6,0x3f,0xb3,0x10,0x03,0x85,0x24,0xf2,0xb5,0xcd,0x69,0x7d,0xba,0xa2,0x5c,0x8a,0x6d,0x45,0xf4,0xc8,0x4f,0x69,0x8e,0xd4,0x69,0x82,0x42,0xfd,0x00,0x59,0xfd,0x20,0x7a,0x63,0x58,0x56,0x30,0x21,0x73,0xbd,0xd4,0x49,0x84,0x3f,0x51,0x0e,0xfb,0xd3,0xfc,0x93,0x17,0x7f,0x23,0x75,0x25,0xea,0x78,0x79,0xf7 +.byte 0xec,0x22,0xef,0x86,0x91,0x0a,0x90,0x10,0x71,0x3b,0xb8,0x8e,0xb7,0xc9,0xd1,0x26,0x98,0x7d,0x1a,0xab,0x74,0x3e,0x5f,0x10,0xa8,0x47,0xdf,0xc9,0x0a,0x03,0xbb,0xe2,0xbb,0x34,0xbe,0x87,0x1a,0x3e,0x13,0x4b,0xd5,0xdd,0x53,0xb7,0x65,0xb4,0x16,0x38,0xd3,0xfd,0x01,0xde,0xe8,0xba,0x1d,0x33,0x5b,0x7b,0x9b,0x9f,0xfb,0xe7,0x8d,0x82 +.byte 0x21,0x78,0x9e,0xb2,0xf5,0x16,0x37,0x88,0x47,0x9d,0x1a,0x2c,0xfe,0x6a,0xac,0xde,0x3e,0xc4,0xa8,0xed,0x64,0x46,0xdd,0x05,0x07,0x60,0xef,0x99,0x96,0xf0,0x84,0x27,0x38,0x58,0xe5,0xc0,0x53,0x7d,0x07,0xe3,0xa5,0x31,0xb5,0x8a,0xe7,0x50,0x94,0xbb,0x29,0xf9,0x58,0x13,0x91,0x5b,0x54,0x77,0xf6,0x91,0xb8,0x75,0x05,0x3d,0x70,0x3e +.byte 0x07,0x95,0x7d,0x37,0xbd,0x1d,0x29,0x4d,0x33,0x07,0x13,0x2b,0x54,0x70,0x9c,0x31,0xf1,0xcd,0x2d,0x28,0x09,0x43,0x90,0x24,0x8c,0x82,0xb0,0x08,0x71,0x08,0x97,0x7e,0x1a,0xbc,0x82,0xd8,0x31,0x0a,0x13,0xe9,0x22,0xf0,0x8d,0x2b,0x91,0xe5,0x2e,0x34,0x56,0x97,0x86,0xc9,0xbd,0x45,0x1e,0x32,0x03,0xcb,0xa1,0x29,0x00,0x81,0xd4,0x6e +.byte 0x5d,0xbc,0x0f,0x01,0x8d,0x5c,0xb9,0x80,0xcc,0xfe,0x0d,0xa3,0xef,0x8e,0x85,0x59,0x37,0xf7,0x64,0xa7,0xe5,0x2a,0xd5,0x44,0xee,0x91,0xcf,0x6c,0xf5,0x0a,0x9b,0xc7,0xdf,0xb6,0x02,0x2d,0xa4,0xf1,0x22,0x2a,0x97,0xfe,0x1d,0xb7,0x4c,0xc7,0x4f,0x2f,0x0b,0x38,0xd2,0xbf,0xfe,0xe3,0x94,0x55,0xae,0x85,0x0c,0x34,0x59,0x67,0x23,0x7b +.byte 0x4a,0x87,0xd9,0xd2,0xca,0xd5,0x38,0xd2,0x9d,0x05,0x2e,0xd8,0xe3,0x26,0x51,0xa4,0x14,0x66,0xfb,0x38,0x40,0x18,0x3b,0xda,0x43,0x85,0xc9,0xf5,0xf4,0xe7,0x22,0x82,0x45,0xa1,0xdf,0x98,0xa0,0xab,0x5f,0x7a,0x50,0x84,0x75,0x7a,0x70,0xa6,0x3b,0x04,0x20,0xed,0xa8,0x68,0x6d,0x3f,0x43,0xf8,0xb8,0xac,0xc7,0x32,0xa0,0xff,0x47,0xd5 +.byte 0xb3,0x92,0x6a,0x15,0x5a,0xf1,0x7c,0x32,0x30,0xda,0x1e,0x5d,0xab,0xcc,0xd0,0x3a,0xdc,0xcf,0x70,0xd8,0x4d,0xa3,0x50,0xac,0x50,0x42,0x53,0xc6,0xe0,0x3a,0x26,0xdc,0x77,0x30,0x31,0x59,0xa1,0xfc,0x4d,0x48,0x00,0x0d,0xe0,0x66,0xb3,0x9b,0xd3,0x38,0x45,0xbb,0x0c,0x57,0xc5,0x78,0xee,0x8c,0x96,0xea,0xa2,0x16,0xa3,0x12,0xb1,0x06 +.byte 0xd0,0x2a,0x70,0xf7,0xce,0x42,0xae,0x17,0x64,0xbf,0x13,0xa0,0xe9,0x62,0x57,0x1d,0x55,0x78,0xfa,0x72,0x19,0x58,0x15,0xea,0xe5,0xdf,0x72,0x0e,0xc6,0xd3,0xb4,0x3d,0x60,0xee,0x32,0x2a,0xce,0xdc,0xad,0xd0,0x34,0xe6,0xb4,0xcf,0xce,0x5a,0x4a,0x9f,0xaf,0x01,0xb3,0x2a,0xed,0x46,0xa0,0xad,0xaa,0x62,0x8b,0xa4,0xf7,0x4b,0xce,0x32 +.byte 0x35,0x29,0x1e,0x7a,0xda,0x74,0xf8,0xe5,0xda,0x52,0x66,0xaf,0x3d,0x1a,0xff,0x42,0xc0,0xcc,0xb1,0x32,0x36,0x10,0x44,0x34,0x6a,0x16,0xc2,0x5b,0x9a,0x35,0x3f,0xd2,0x29,0xc5,0x76,0x3c,0x24,0xc7,0x2b,0x92,0xae,0xe0,0xe2,0x04,0x6c,0x3b,0x97,0xda,0xfd,0x49,0x43,0x6d,0x35,0xf5,0xc3,0xc1,0x93,0xf8,0x2f,0x25,0xef,0x3e,0xd8,0xf2 +.byte 0xc0,0xb3,0xb5,0x71,0x01,0xe0,0x07,0x11,0xd5,0xf1,0xd3,0x54,0x59,0x93,0x77,0x2e,0x77,0xdc,0x57,0xd7,0x9b,0x0a,0xe2,0xde,0x29,0x04,0x81,0xa1,0x81,0x6f,0x94,0x86,0x39,0xd7,0x29,0x69,0x3f,0xfa,0xe4,0x02,0x01,0x85,0x04,0x21,0xd3,0x17,0xf5,0x68,0x85,0x6e,0x74,0x15,0x56,0xe6,0x5e,0x12,0x1c,0x0d,0x2f,0x7a,0x8d,0xe1,0xc8,0x47 +.byte 0x7b,0xdc,0x35,0x64,0xf1,0x00,0xc0,0x7b,0xd8,0x2c,0x8c,0x60,0x10,0x53,0x11,0x2c,0x5c,0xa2,0xb6,0x05,0xa3,0xcd,0x14,0xb6,0xd0,0x36,0xe9,0x74,0x78,0xc3,0x84,0x6b,0x51,0xa9,0xf9,0xf1,0x05,0xe2,0xd4,0xa3,0x57,0xec,0xb1,0x5e,0xd5,0x75,0x64,0xe3,0xb0,0xf9,0x8f,0x88,0x60,0xdf,0x8e,0x75,0xf9,0x32,0xfc,0x58,0x5b,0x4b,0x17,0xdb +.byte 0x41,0x04,0x6f,0x17,0x7a,0xf8,0xd0,0x47,0x8e,0xeb,0xd1,0xf9,0xa6,0xa8,0x52,0x7e,0x07,0x6b,0x5b,0x4d,0xb9,0xda,0x91,0x40,0x51,0x25,0x67,0x4b,0xf1,0x95,0x12,0x07,0xa9,0xa5,0x33,0x96,0x92,0x5e,0xb4,0x0e,0xf0,0x85,0x2e,0x70,0xd8,0xaf,0xae,0x9a,0x3d,0x0c,0xb0,0xee,0xe1,0x80,0x5a,0xb9,0x17,0xe6,0x00,0xa8,0x82,0xd0,0x9b,0xf5 +.byte 0xe3,0xa0,0x12,0xc4,0x15,0xd6,0x5e,0x57,0x5c,0xd2,0xb9,0xa7,0x8e,0xfd,0x09,0xc3,0xd2,0x66,0xfd,0x86,0xb4,0xdc,0xa3,0xc2,0xfe,0x16,0x86,0xc4,0x98,0xa3,0x2e,0x4c,0xc9,0x2c,0xd6,0x87,0x83,0x1b,0x6f,0xe2,0x44,0xd6,0x72,0x94,0x1d,0xba,0xaf,0x34,0x1f,0xf2,0x40,0x40,0x33,0x24,0x63,0xc1,0x26,0xef,0xbc,0x0f,0x3b,0x3c,0x65,0x2b +.byte 0xa7,0xc7,0xdf,0x96,0x67,0xab,0x92,0x0e,0x04,0x8c,0x82,0x9e,0xbe,0x52,0x61,0x40,0xdf,0x77,0x00,0xc5,0x01,0x9a,0xe9,0xde,0xe1,0xe2,0x45,0xb8,0xed,0x94,0xd5,0xf0,0x28,0x29,0xef,0x0d,0x91,0x07,0x9b,0xfe,0x69,0x78,0x26,0xd7,0xf9,0x51,0xf1,0x9c,0xf2,0xbb,0x83,0x2d,0x79,0x1e,0xff,0x97,0x13,0xdc,0x28,0x93,0x26,0x7c,0x54,0x52 +.byte 0xc0,0x92,0xeb,0x4a,0xa2,0xe3,0x01,0xfc,0x07,0xb9,0x26,0x11,0x03,0xe0,0x19,0xa8,0x9c,0xff,0x3a,0x95,0x26,0x3a,0x17,0xf1,0x7d,0x6a,0x6a,0xb2,0xb5,0x5a,0x07,0x43,0x2b,0xb7,0xdd,0x19,0x14,0xe0,0x05,0x91,0xc5,0xee,0x49,0x35,0x7b,0x1a,0x2d,0x34,0xda,0xa2,0x45,0x7e,0x0d,0x64,0x98,0xb6,0x2e,0x47,0xaa,0x6c,0x73,0x66,0x55,0x01 +.byte 0x27,0xb0,0xa9,0x13,0xa6,0xe0,0x74,0x38,0xb3,0x97,0xfe,0xaf,0xdc,0xc0,0x6a,0x4f,0xd8,0xdb,0x07,0x62,0x61,0x05,0xbb,0xa0,0xa8,0xc5,0xb3,0x89,0x13,0xbb,0x09,0x01,0x6f,0x09,0xcb,0x47,0x62,0x46,0xf0,0x4b,0xf0,0xb7,0x7c,0x39,0x8d,0xe5,0x7b,0x64,0x49,0x32,0x93,0x1e,0x94,0x0a,0x98,0xe0,0xca,0xc6,0x67,0x5b,0xdf,0x88,0x0a,0x26 +.byte 0x83,0x77,0xc3,0xd0,0x11,0x66,0x3d,0x25,0x91,0x61,0x80,0xfc,0x9c,0x50,0xfb,0xe8,0x81,0x6f,0xd8,0xfa,0x77,0x78,0x4c,0x2b,0x44,0xd0,0x92,0x52,0xa4,0x50,0x50,0x7e,0xa2,0xb9,0xe7,0x79,0x33,0x95,0xfe,0x29,0x1c,0x1d,0x43,0x9d,0xa7,0x12,0xfe,0xa1,0x45,0xf4,0xd9,0x1c,0x7e,0x5a,0x67,0x99,0x7f,0x22,0x7c,0xa3,0xb1,0x2d,0xb7,0x1d +.byte 0x6b,0xf6,0xb4,0x94,0xf2,0xd1,0x5c,0x28,0x56,0xe9,0x4f,0x21,0x81,0x96,0x37,0x7c,0x25,0x74,0x0f,0xf9,0xc5,0xf5,0xc6,0xe8,0x8f,0xbb,0xfb,0xe4,0xaf,0x23,0xac,0x4c,0x20,0x35,0x7d,0xb4,0x4a,0xde,0x90,0xec,0x16,0x30,0x95,0x1b,0x79,0xf6,0x77,0xfe,0x80,0x10,0xba,0xd2,0x49,0xda,0xca,0x9e,0x6b,0x63,0x2f,0x24,0x38,0xf9,0xee,0x20 +.byte 0x38,0x5c,0xeb,0xf5,0xbc,0x07,0x7a,0xeb,0xde,0xc4,0x97,0xcf,0x48,0x9b,0x80,0x40,0xfa,0x81,0xf5,0x24,0xa7,0xf3,0xf7,0x16,0xe9,0xba,0xae,0x9f,0xde,0xa1,0x00,0x34,0x74,0x36,0x9f,0x47,0xce,0xcf,0x35,0xdb,0x30,0x7e,0x72,0x81,0xc5,0xe1,0x59,0x07,0x3e,0xc7,0x5b,0x7b,0xd3,0xc6,0xeb,0x4e,0x71,0x9c,0xeb,0x41,0x37,0xd9,0x9e,0x34 +.byte 0x0b,0xc1,0x9c,0xf7,0xfd,0x56,0xb0,0xd6,0xa6,0xe4,0x1d,0xdf,0x43,0xc6,0xf3,0x26,0x0f,0x01,0x07,0x29,0x57,0x9c,0x8f,0xe1,0x31,0xc9,0xa6,0x98,0x0f,0x0e,0x27,0xfd,0xa0,0x59,0xdf,0x92,0x7b,0x0a,0x4c,0x42,0x4b,0x03,0x98,0x2a,0xea,0xcb,0xd8,0x0f,0x6d,0x19,0x0b,0x22,0x69,0x8b,0xaa,0x3b,0xc8,0x41,0x66,0x81,0xc3,0xaa,0x64,0x6d +.byte 0x44,0xdd,0xb9,0xe2,0xc4,0x47,0x6d,0xdf,0x61,0xe0,0xf3,0x26,0x40,0x23,0x2f,0xf9,0x2a,0xb3,0xfa,0xe2,0xe8,0x36,0xc0,0xd9,0x89,0xb0,0x05,0x47,0x36,0x20,0x3b,0x03,0x0c,0xd1,0x46,0x9b,0xc9,0x65,0xfa,0x14,0xba,0x68,0x49,0xfc,0x2a,0xb9,0x04,0x47,0xbb,0x64,0xe1,0x7f,0x5a,0xd3,0x70,0x19,0x0f,0x14,0x09,0xc0,0xbe,0xc3,0x9b,0x2f +.byte 0xd1,0x05,0x90,0x56,0x09,0x47,0xb3,0xc5,0x08,0x6f,0x89,0x59,0x8c,0xf3,0xd4,0x1c,0xaf,0x68,0x00,0x32,0x58,0xe2,0x66,0x55,0xe2,0xc3,0x46,0x73,0xfd,0x4b,0x63,0xc5,0xdd,0x48,0xa8,0x14,0xe9,0x07,0x94,0x8f,0x51,0x6e,0x2d,0x7c,0x62,0x97,0x73,0xa5,0x42,0x7d,0xad,0x43,0xcb,0x65,0x56,0xf0,0x23,0x28,0x72,0xdb,0x1f,0xcf,0x34,0x9a +.byte 0x62,0x06,0x8d,0xc9,0x86,0x40,0x6d,0xee,0x58,0x72,0x02,0xbb,0xce,0x33,0x6a,0xe4,0xcb,0x46,0x25,0xda,0x2f,0x8d,0xc9,0x8e,0xfe,0xcf,0xbb,0xfc,0xb0,0xe8,0xec,0xf2,0xf9,0xff,0x5d,0x70,0x9e,0x2e,0x22,0x0e,0x9a,0x4d,0xb8,0x26,0x7a,0x48,0x3f,0xba,0x5c,0xcd,0x10,0xf4,0x6d,0x89,0x3d,0x5d,0x87,0xd4,0x69,0xb8,0x4a,0x20,0xc6,0xf8 +.byte 0x03,0x6c,0x60,0x1e,0x9c,0xc6,0xe3,0x39,0x9b,0xa1,0x16,0x64,0xed,0xc6,0xd7,0x54,0xfd,0x8d,0xa0,0x2f,0xcf,0xc6,0xde,0x43,0xe4,0xc5,0xb7,0xd6,0x00,0xaf,0x95,0x7a,0xc6,0xde,0x26,0x59,0x39,0xb0,0x12,0x6b,0xe1,0x3c,0xa9,0x09,0xb6,0x15,0xb0,0x62,0xad,0xa9,0x11,0x4f,0x86,0xde,0xc6,0xe8,0x32,0x46,0x78,0xeb,0x60,0x81,0x6b,0x8f +.byte 0xac,0x80,0xbf,0xa4,0xc4,0xb7,0x5f,0x3b,0x2f,0xf8,0xe4,0x05,0xcf,0xbf,0xa3,0x14,0x6f,0x16,0xbc,0x6c,0x4e,0x31,0xd7,0x79,0x09,0xcf,0x9c,0x58,0xa3,0x0b,0x1a,0x31,0x4b,0xda,0xcb,0x11,0x35,0xb1,0xf5,0xbb,0xfb,0x00,0x46,0x6d,0x70,0x5e,0x4a,0x85,0x19,0xdf,0xb5,0xd0,0x03,0x2e,0x5d,0x01,0x95,0x4e,0x5a,0x59,0x99,0x24,0xac,0x3f +.byte 0x2d,0x64,0xaf,0xef,0x40,0x16,0x2a,0xcc,0x6a,0x6c,0x0f,0xe3,0x45,0x15,0x74,0x3d,0xea,0xdb,0xa7,0x3f,0xd2,0x50,0x4d,0xc7,0xc6,0x19,0x36,0x84,0xf4,0xbd,0x09,0xff,0xe7,0xf3,0xc0,0xa5,0x34,0x49,0x8a,0xfe,0x83,0xcd,0xe4,0x80,0x7d,0xe3,0xff,0xc9,0x8a,0xb9,0xd6,0x34,0x01,0xd1,0x47,0x16,0x5e,0x7c,0x16,0xf5,0x7c,0xf8,0xb5,0x53 +.byte 0x26,0x84,0x89,0x73,0xf3,0x7f,0x9c,0xb0,0x2f,0x07,0x9e,0xf2,0x12,0xdf,0xba,0xc0,0x15,0xd0,0x3a,0x59,0x9d,0xde,0x67,0x5e,0x1c,0x2b,0x4b,0x84,0xb8,0x89,0xfb,0x62,0x90,0xe9,0x89,0xd9,0xdb,0xb7,0x21,0x4a,0x9f,0xbd,0xc0,0x02,0x01,0xda,0xb3,0x4c,0x9d,0xfb,0x46,0xa1,0xd0,0x3c,0xf5,0x27,0x6f,0x70,0xb5,0xa9,0x74,0xdc,0xa0,0x76 +.byte 0xb7,0x3a,0x53,0x18,0xdd,0x80,0x5e,0x43,0xb5,0x35,0xe4,0x0e,0x26,0x27,0x0a,0xab,0xe8,0x4d,0x2e,0x89,0x20,0xc3,0xff,0xe4,0x7f,0x03,0x2c,0x5f,0x25,0xc7,0x70,0x53,0x27,0x4c,0xc8,0xb9,0xb1,0x81,0x10,0x7a,0xa2,0x65,0xe4,0x0b,0x65,0x8e,0x3d,0x2f,0x96,0xa0,0xa5,0x7b,0x4f,0x09,0xe9,0x9d,0x10,0x06,0xf7,0x18,0xad,0x2d,0x7f,0xb8 +.byte 0x8f,0x08,0xa7,0x2c,0xda,0x82,0xbe,0x5c,0xd6,0x1d,0xb6,0xe2,0x9b,0xa2,0xfc,0x18,0x8c,0x8d,0xf7,0x81,0xf4,0xc6,0x1e,0xcb,0xe5,0x73,0xa6,0x74,0x06,0x20,0xf3,0xa9,0xcb,0x80,0x01,0x55,0x7e,0xc0,0x6a,0x1f,0x5a,0x5b,0xb1,0x56,0x5d,0xd8,0x2a,0xd5,0xf5,0x57,0xe8,0x48,0x6c,0xfb,0x9e,0x93,0xa7,0x0e,0x13,0x2b,0x68,0xc5,0x6b,0x17 +.byte 0x43,0xb0,0x58,0x04,0x65,0x3d,0x46,0x57,0xa7,0x3d,0x99,0xb8,0xa1,0x48,0x17,0x44,0x67,0x2a,0x0d,0x44,0x87,0x9f,0x63,0xd7,0x92,0x56,0x7b,0xab,0xd3,0x6a,0xbd,0x4f,0xc0,0xc3,0xd2,0xee,0xd1,0x3d,0xd1,0x18,0x2e,0x6a,0xf5,0x3b,0x67,0xa0,0x0a,0xf3,0x11,0x49,0xc5,0x4b,0xef,0xcf,0x00,0xfd,0x22,0x8f,0xa0,0x9c,0x99,0x32,0x2f,0x58 +.byte 0xf9,0x97,0x98,0x13,0x4a,0x88,0x50,0xcc,0x58,0x1e,0x27,0x02,0x34,0x7d,0xec,0xf6,0x88,0x3a,0x74,0xb5,0x34,0x6d,0x6f,0x52,0x2d,0x20,0x02,0x70,0x22,0x27,0xdf,0x7a,0xff,0x30,0x36,0x66,0x1a,0xa0,0x51,0xc3,0x75,0x9a,0x06,0xe5,0x3f,0x6c,0x74,0x0d,0x15,0xa2,0xb6,0xe5,0xcd,0x55,0x4d,0xea,0x65,0x8f,0xbb,0xb2,0xd4,0x95,0x73,0xa4 +.byte 0xcd,0xb9,0xc8,0x82,0x60,0x49,0xe9,0x36,0xc9,0xb1,0xe9,0xcb,0x52,0xae,0xa7,0x7a,0x64,0xab,0x75,0x84,0x03,0x4b,0x37,0xf7,0x07,0x75,0xf7,0x1c,0x32,0x19,0xb6,0x8b,0xca,0x7c,0x43,0x15,0xe8,0xec,0x57,0x89,0x1d,0xe2,0xa0,0x80,0xc5,0xb6,0x02,0x29,0xfd,0xda,0xe0,0x14,0x93,0xb4,0xb3,0x44,0x2e,0x17,0x2f,0xed,0x3b,0x38,0x6e,0x8f +.byte 0xe0,0x3d,0xc6,0x77,0xe9,0xa7,0x76,0xcb,0x98,0x2d,0x08,0x61,0xcf,0x1b,0x25,0x3f,0xfb,0x1d,0x99,0xb1,0x5a,0x3c,0x53,0x96,0x4e,0x09,0x11,0xf6,0x5b,0x09,0x31,0xe1,0xad,0xb0,0xaf,0x7b,0xec,0xf9,0xa8,0x68,0xb7,0x93,0x57,0xf7,0x17,0x77,0x87,0x2b,0xdb,0x00,0x28,0xc6,0x48,0xac,0xff,0xcd,0x26,0x4a,0x8a,0x76,0x9a,0x2a,0x1d,0x37 +.byte 0x4c,0x70,0x4f,0xf6,0x52,0xe3,0x7a,0x78,0x94,0x5b,0x0b,0x50,0xb4,0x48,0x03,0xcd,0x78,0xd0,0x5d,0x89,0x6d,0x76,0xaf,0x9d,0x67,0xc3,0x75,0x6f,0x6a,0x2d,0xe2,0xb7,0x58,0x51,0x10,0x0d,0xef,0xa0,0x1a,0x74,0x28,0x3a,0x97,0x19,0x4f,0x3c,0x8a,0x86,0x3d,0xe4,0x66,0x3d,0x57,0xb4,0x66,0xb3,0x0b,0x4f,0x57,0x57,0x34,0x2e,0xc7,0x0c +.byte 0x11,0xdf,0x3c,0xb4,0x9f,0xe1,0xd5,0x27,0x41,0x08,0xec,0xca,0x18,0x88,0x48,0x5e,0x88,0x55,0x89,0x71,0xe6,0xa5,0x90,0x7c,0x3b,0xe5,0xf3,0x2a,0xd7,0xf5,0x0b,0x3d,0xbb,0x47,0xad,0xd7,0x78,0x41,0xa8,0xef,0xd4,0x36,0x31,0xd1,0xe4,0x9c,0x87,0x9e,0xb1,0x11,0x0e,0xff,0x8f,0x4d,0x79,0x65,0xc4,0x83,0x75,0x33,0xc9,0x89,0xe2,0xc3 +.byte 0x41,0x68,0x11,0xe7,0xe4,0x58,0xb9,0xf1,0xee,0x06,0x48,0x4d,0xc3,0xc7,0x76,0x60,0x42,0x94,0x8f,0x0d,0xb9,0x53,0x46,0x78,0x06,0x97,0x94,0x36,0xf4,0x3e,0xf3,0xdd,0x5b,0x46,0xe1,0x9d,0x3f,0x9e,0x78,0x00,0x9e,0xe7,0xcb,0x9e,0xc8,0x30,0x87,0x4a,0x52,0x91,0xd5,0xe2,0xa3,0x65,0x98,0xb2,0xc9,0x6c,0xfb,0x4e,0x54,0x5a,0x9f,0x57 +.byte 0x2c,0x4a,0x76,0xe4,0x97,0x88,0xd5,0x6a,0x0e,0x6c,0x7c,0xef,0x78,0x2a,0x7c,0x26,0xa3,0x25,0xf6,0x33,0x82,0x46,0x6d,0x91,0x0d,0xe4,0x83,0xec,0xf1,0x24,0xf8,0x0a,0x34,0xec,0xfc,0x7e,0x47,0xda,0x9a,0x17,0x1b,0x33,0xd0,0xf1,0x70,0xe4,0x0b,0xc7,0x70,0x58,0x1d,0x76,0x20,0x89,0xce,0x4f,0xd1,0xcb,0x3b,0x26,0xd1,0x98,0xd9,0x51 +.byte 0xb1,0xd0,0xaa,0x4a,0xd5,0x10,0xf2,0xae,0xaa,0x14,0xa7,0x72,0x99,0x3d,0xc8,0xbf,0xfb,0xec,0x6a,0x14,0xdd,0x97,0x7b,0x2f,0x16,0x96,0x0f,0x41,0xb8,0x33,0x15,0x1b,0xa2,0x6a,0x7e,0x64,0x0d,0xab,0xe7,0x62,0xf5,0x6c,0x56,0x69,0x09,0x46,0x32,0x24,0x60,0x4e,0x21,0xc7,0x5b,0xee,0x0a,0xe2,0x94,0x7c,0x20,0xe2,0x06,0xa0,0xa2,0x36 +.byte 0xa0,0x7d,0xb5,0x37,0x2a,0xee,0x20,0x25,0x4c,0xba,0x9a,0x06,0x4c,0x07,0x9b,0xea,0x55,0xac,0x2a,0xf7,0xb9,0x5c,0x23,0xac,0x43,0xda,0x9d,0xad,0x76,0xe2,0x5f,0xe0,0x27,0xaf,0x0a,0x5e,0x3d,0x54,0x84,0xfc,0x19,0x75,0x8c,0x62,0x4d,0x37,0x17,0x1a,0x90,0x55,0xb8,0x7e,0xa1,0xad,0x31,0x1a,0xc0,0x91,0x96,0x51,0xa9,0x5f,0xbb,0xb9 +.byte 0x95,0xbf,0xe2,0xd5,0x7e,0x31,0xba,0xc4,0x1e,0x63,0x98,0xd3,0xe2,0x7d,0x87,0xa5,0x46,0xe3,0xae,0xe1,0xe8,0x4e,0x74,0x29,0x0e,0x4b,0x10,0xa8,0x7f,0x3a,0xe5,0x60,0x0f,0x49,0x6a,0xcd,0x3d,0x5a,0x8e,0xf1,0x48,0xd0,0x80,0x7b,0xa3,0x7f,0x06,0x47,0x2b,0x60,0xf2,0x17,0xc3,0xe1,0x26,0x1e,0xb7,0x0f,0x2b,0x7c,0xc7,0xb8,0x3a,0x4f +.byte 0xad,0x05,0x97,0x88,0x93,0x82,0x8e,0x06,0x77,0x44,0xd1,0x65,0xfd,0x18,0x48,0xd6,0x88,0xcd,0x5c,0xbd,0xe4,0xaa,0xea,0xf1,0xed,0x16,0x5f,0xb3,0x58,0xe2,0x69,0x82,0xbe,0x9e,0xfc,0xcb,0xf6,0x17,0xa9,0x70,0xeb,0x08,0xd7,0x06,0x86,0xf6,0x5a,0x43,0x68,0x7b,0xcf,0xa3,0xfa,0x26,0x5e,0xe5,0x42,0xd3,0x5a,0xc8,0x1c,0x3b,0x8d,0x2d +.byte 0xf1,0x45,0xb0,0x97,0x90,0x0b,0xe7,0x2d,0xab,0xd7,0xd8,0x8a,0x16,0xf9,0x5f,0xa6,0xcf,0xc5,0x60,0x2c,0x34,0x5a,0x2e,0x2b,0xb9,0xb4,0x9c,0xa7,0x09,0x77,0xd2,0x3f,0x8c,0xf3,0xf6,0xf7,0xe0,0x27,0x79,0xc3,0x4e,0x61,0x7d,0x09,0x50,0x05,0x01,0x35,0x1b,0x33,0x54,0x6f,0x90,0x9a,0x19,0xcd,0x86,0x45,0x23,0xcd,0x6f,0x1b,0x62,0xc5 +.byte 0xce,0x4e,0x8e,0xff,0xe7,0x12,0x32,0x85,0x9a,0xc4,0x11,0x83,0xcf,0x78,0xd7,0x41,0x99,0x64,0x20,0xa6,0x69,0xdd,0xe3,0x53,0x98,0x6b,0xc7,0x98,0x51,0xc5,0xf8,0x3e,0xa3,0x5f,0x0d,0x78,0x2f,0xa7,0x05,0xff,0xe5,0x3a,0x0f,0x7c,0x09,0x58,0x3f,0xaa,0x0d,0x9a,0x9d,0x8d,0xe7,0xbf,0x6b,0x7d,0xfe,0x3a,0x4f,0x5c,0x50,0xb2,0xe7,0xc5 +.byte 0xa5,0x13,0xde,0xc8,0xe8,0x59,0xac,0xb0,0xdd,0xc0,0x81,0xa7,0x0b,0x78,0x32,0x23,0x76,0x85,0x11,0xef,0xe3,0x88,0x6f,0x7f,0xa9,0x09,0x7b,0x0c,0x6f,0x34,0xb2,0x67,0x5e,0xd6,0x11,0xad,0xd7,0x3b,0xf2,0xbb,0x66,0x5b,0xde,0x22,0xfc,0x55,0x26,0xa1,0x89,0x80,0x2e,0xb8,0xf3,0x3c,0xf8,0x1e,0xba,0x99,0x1c,0x24,0x33,0xb4,0xe6,0x17 +.byte 0x2b,0x9c,0x80,0xe5,0x9b,0x58,0x54,0x70,0xcd,0x15,0x81,0xcd,0x51,0x48,0x75,0x24,0x27,0xf5,0x30,0x79,0xc1,0x16,0xff,0x89,0x70,0x12,0x74,0x07,0x9d,0x39,0xf2,0x9c,0xc6,0x89,0x8d,0x94,0x41,0x01,0x04,0xf5,0x16,0x99,0xf3,0xf0,0xd1,0xf5,0x6d,0xd3,0x11,0x19,0x29,0x36,0xfb,0x41,0xf9,0x32,0xb9,0x0f,0x13,0xaf,0xac,0xfb,0x30,0x75 +.byte 0x62,0x8c,0x04,0x5b,0xf1,0xce,0x52,0x9b,0xbe,0x8c,0xf9,0x86,0x5d,0x7d,0xc1,0x8e,0x41,0x76,0x42,0x63,0xd7,0x74,0x8e,0x2c,0x46,0xa1,0x0a,0x51,0xb5,0xec,0xe9,0x91,0x56,0xbc,0xdc,0x32,0xfc,0x10,0xb5,0xca,0x5b,0x4b,0x72,0x99,0x07,0xff,0x01,0x11,0x2c,0xa4,0x60,0xf5,0x6b,0xd4,0xa8,0x96,0x21,0xee,0xbe,0x14,0x8f,0x69,0x99,0xdc +.byte 0x43,0x7f,0x13,0x3d,0x17,0x1e,0xa3,0x1b,0x21,0x23,0x26,0x7e,0xff,0x80,0x6b,0x66,0x3e,0xb2,0x48,0x1a,0x77,0x3c,0x50,0xe2,0xca,0x4d,0xc6,0xdb,0xfd,0xd1,0x23,0xcc,0xcb,0x01,0x25,0xc0,0x62,0x8d,0xe5,0x9c,0xb7,0x13,0x97,0xf5,0x49,0x01,0x19,0x45,0x45,0x83,0x17,0xff,0x8e,0x94,0x8c,0xb0,0xc0,0xaf,0x46,0x62,0x0e,0x62,0xb7,0x8c +.byte 0xd5,0xcf,0xb9,0x82,0x6e,0x8a,0xb9,0x22,0xbc,0x30,0xf9,0x65,0xc2,0x7f,0xce,0x6b,0x4d,0xad,0x87,0xcb,0x23,0xab,0x57,0x36,0x6a,0xb7,0x8c,0x63,0x17,0x60,0x13,0xa1,0x1f,0x3d,0xa4,0xd4,0xab,0x5d,0x97,0xc7,0x18,0xaf,0xf8,0xae,0x13,0x64,0x2a,0x19,0x34,0xe2,0x28,0x28,0x4f,0x32,0x2a,0xd8,0x43,0x79,0xaf,0x1e,0x56,0xfc,0x97,0x51 +.byte 0x67,0x8c,0x63,0x80,0x32,0x63,0x71,0x5c,0x78,0x00,0xeb,0xfd,0xa2,0x96,0x58,0x21,0x36,0x13,0x02,0xe5,0xa4,0xb7,0xcd,0x5a,0x30,0xa0,0x5b,0x7b,0x23,0xa4,0xcc,0x54,0x64,0x6f,0x6d,0x9b,0xaf,0xea,0x49,0x69,0x9e,0x2f,0x51,0x5c,0xe7,0xa3,0xa3,0xb8,0xac,0xed,0x47,0x23,0x7a,0x37,0x38,0xe3,0x15,0x98,0x6f,0x50,0x6c,0x8d,0xa7,0xe6 +.byte 0xa8,0x39,0xcc,0x63,0x08,0xeb,0x8f,0x8c,0xfd,0x83,0xaa,0x34,0x75,0x19,0xc0,0xf4,0xd6,0x25,0x18,0x94,0x9d,0xa1,0x7e,0xc8,0x6b,0x19,0x76,0xc0,0x8d,0xaf,0x51,0xe5,0x7c,0x8a,0x98,0x17,0x80,0x90,0xc0,0xb6,0xed,0x5c,0x8f,0x33,0x56,0xba,0xce,0xbe,0x83,0x87,0x5d,0x51,0x2e,0x64,0x84,0xa6,0x9d,0x49,0x27,0x5b,0x92,0xe0,0xe7,0xac +.byte 0x37,0x3d,0x22,0x5e,0x25,0xe7,0xca,0x2f,0x5d,0x2f,0xa0,0xd5,0xcb,0xe9,0xac,0x84,0x5b,0x19,0x72,0x1c,0x2c,0x0a,0xd1,0xb7,0x73,0x24,0x8a,0x0f,0xe0,0x07,0xd8,0x49,0x4d,0x23,0x1b,0xac,0xb8,0xd1,0x42,0xd4,0xdf,0xf8,0x4d,0x85,0xa2,0x37,0x30,0x46,0x38,0x88,0x55,0x1d,0xea,0x37,0x54,0x8c,0x43,0xb0,0xed,0x01,0x53,0x75,0xe6,0xf7 +.byte 0x9b,0xe6,0x10,0x91,0x6e,0x80,0x11,0xf9,0x96,0x29,0x4f,0x08,0x77,0x2b,0x7e,0xdb,0x5b,0x14,0xbd,0x77,0x37,0xe8,0x36,0x07,0x4a,0xe4,0xd8,0xa2,0x4e,0x38,0xea,0xeb,0xc2,0xd6,0x43,0x59,0x20,0x0c,0x12,0x31,0x6c,0x27,0xc5,0x7b,0xfc,0xfc,0x54,0x94,0x1d,0x5f,0x82,0x73,0xd7,0x1f,0x43,0x3a,0x73,0xc4,0xf3,0xb3,0xbb,0x53,0xfe,0x22 +.byte 0xc0,0xa4,0x7e,0x2b,0x84,0x1b,0xef,0x6d,0x83,0x9d,0xb3,0x8b,0x2a,0x6c,0xea,0x1e,0xfa,0x77,0x01,0x35,0xd2,0x5b,0xc4,0xd3,0xe7,0x1e,0xca,0x73,0x8b,0xb9,0x1f,0xfb,0x67,0xf2,0xdd,0x03,0xe6,0xca,0xfe,0x3b,0x61,0xd7,0xb5,0x96,0xe0,0x85,0xc2,0x23,0xa7,0xea,0x38,0xbf,0x6e,0x29,0x9e,0x8e,0x18,0xd4,0xbf,0x16,0x73,0xf9,0x18,0xef +.byte 0xc9,0xaf,0x6c,0xe2,0xdc,0xa4,0x58,0x9c,0xf5,0x6d,0x4a,0xc8,0xb4,0x8f,0x16,0x02,0xb7,0x65,0xd3,0x32,0x3b,0x83,0xfe,0xf3,0xc7,0xba,0x68,0xf4,0x95,0xa4,0xf6,0x33,0x57,0x43,0xbe,0xae,0x83,0xa9,0xe4,0x0d,0x0b,0x23,0xaa,0xbc,0x15,0x53,0x18,0x4d,0xb4,0x35,0xe3,0x8e,0x86,0xfe,0xe4,0x98,0x5d,0x63,0x23,0xce,0x44,0xea,0x4d,0x64 +.byte 0x86,0xf8,0x06,0x8f,0xc0,0x73,0xa6,0x6d,0x04,0x53,0x47,0x95,0x0f,0x6d,0x6c,0x01,0x1c,0x3f,0x7b,0x83,0xe4,0xc2,0x40,0xb8,0x97,0x26,0x9e,0x35,0xb0,0x76,0xee,0xe4,0xc7,0xd8,0xaa,0x22,0x83,0x96,0xe1,0x34,0x7b,0x78,0x31,0xee,0xd3,0x9a,0x50,0xd4,0x05,0xfd,0xd6,0x15,0xca,0x83,0x2f,0x49,0xfd,0x00,0x23,0x82,0x39,0xac,0x46,0x7a +.byte 0xe4,0xb5,0xcc,0xee,0xbb,0xaa,0x98,0x82,0xb5,0x27,0x45,0xd5,0x96,0x6e,0x89,0x01,0x1e,0x30,0xe4,0x1c,0x3a,0x65,0xcc,0x9f,0xda,0x38,0xf0,0x4c,0x68,0xfa,0xe5,0xf2,0xe2,0xce,0x34,0xc2,0x15,0xfd,0x21,0xf6,0xe2,0x33,0xbd,0xef,0xfd,0x49,0x15,0xdc,0x38,0x3b,0x24,0xba,0x3a,0x80,0x35,0x60,0xbe,0x50,0x17,0x38,0x3e,0xe2,0x96,0x84 +.byte 0x01,0x41,0x6c,0xb2,0x0b,0xc6,0xff,0xce,0xb3,0x37,0xa2,0x46,0x27,0x33,0x8e,0x04,0x44,0x8a,0x7c,0x64,0x0e,0xbc,0xed,0x74,0x4f,0x40,0x58,0xf4,0x8c,0xf8,0xd9,0x92,0xa9,0x0b,0x18,0x7c,0x93,0x95,0xca,0xa7,0x3e,0x1d,0xad,0x68,0x80,0xd9,0xdb,0x81,0x78,0x50,0x37,0x49,0xbc,0x64,0xc2,0x52,0x5c,0x70,0x7e,0x0a,0x26,0x7e,0xc6,0xbf +.byte 0xd2,0x7f,0x05,0x55,0x7a,0x5a,0x3e,0x9e,0xe3,0x8b,0xf5,0x95,0x2b,0xd8,0xb4,0xb8,0xc6,0x5d,0x91,0xb8,0xc7,0x7c,0xe1,0x75,0xf2,0x43,0x6b,0x73,0xb7,0xb1,0x10,0xf2,0xa7,0x1e,0xab,0xaf,0xc9,0xc0,0x3b,0xab,0xbe,0xf7,0x4a,0x43,0x9c,0xca,0x3d,0x00,0x5b,0x02,0xf8,0xa2,0x4f,0x57,0x81,0xb0,0xde,0x1e,0xd1,0x60,0xbe,0x6c,0x0d,0xe6 +.byte 0xcd,0x51,0xb6,0xc7,0x00,0x52,0x37,0x4f,0xfc,0xee,0xe2,0x43,0x5c,0x61,0x76,0xed,0x80,0x72,0x38,0x26,0x94,0xfe,0x28,0x06,0xfb,0x62,0xa6,0x21,0x9b,0x53,0x60,0x1b,0xf0,0x56,0xae,0xba,0x6b,0x52,0x27,0x2a,0xd5,0xed,0x11,0x92,0xa2,0xe2,0xab,0xdd,0x05,0x38,0x38,0xae,0xeb,0x72,0xcb,0x6c,0xa5,0x2a,0x73,0xc5,0xfc,0xb0,0x36,0x83 +.byte 0xd6,0xe6,0xda,0x6b,0x38,0x72,0x5e,0x8d,0xaf,0x11,0x5f,0x5b,0x89,0x58,0x21,0x36,0xf6,0x7d,0x42,0x48,0xdc,0xce,0xaa,0x94,0xf0,0xc3,0xc5,0x2c,0x08,0x2a,0x36,0x35,0x25,0x95,0xc4,0x11,0x09,0xea,0x7a,0xbc,0x2e,0xc6,0x0a,0x5b,0x4f,0x86,0xeb,0xc2,0x38,0x71,0x48,0x8c,0x63,0x79,0x3b,0xe4,0xba,0x14,0x44,0x31,0x28,0x4f,0x9d,0xb4 +.byte 0x26,0xa6,0x3b,0xea,0x3f,0xcb,0x30,0x6c,0x02,0x13,0xdb,0x4c,0x9c,0x76,0xc8,0xd8,0x01,0x52,0x3d,0x2f,0x51,0x70,0x15,0x91,0xec,0x8f,0x80,0xed,0x88,0xb7,0xfa,0x91,0x2c,0x10,0xcd,0x3b,0x92,0x85,0xe7,0xe8,0x11,0xfa,0x50,0x15,0xe2,0xdf,0xf7,0xbe,0xa4,0x2d,0x13,0x75,0xa6,0x00,0x25,0x8d,0xe1,0xb6,0x9b,0xbb,0x64,0xfb,0x5c,0xde +.byte 0x97,0xcc,0x00,0x51,0xd6,0xac,0x67,0xc3,0x91,0x1e,0x56,0x36,0x2b,0x43,0xed,0x8c,0x67,0x7b,0xf6,0x54,0x6f,0x91,0x44,0x28,0x93,0x60,0xac,0xca,0xb9,0x91,0x7e,0xeb,0x49,0xd8,0xfc,0x12,0x6c,0x40,0x9d,0x0a,0x4d,0xb4,0xab,0xe6,0xad,0x5b,0x8e,0x2d,0x3e,0x53,0xa1,0x88,0xf7,0x41,0x71,0xa7,0xff,0x05,0x46,0x04,0x34,0x1f,0x12,0x89 +.byte 0x92,0xc1,0xf9,0x26,0x16,0x23,0xb6,0x59,0x82,0xdc,0xa7,0xb8,0xa4,0x8a,0x0f,0x1d,0x7d,0x8f,0x44,0xe8,0x4f,0x70,0xbb,0xdb,0x8d,0xe6,0x7e,0x9d,0xd9,0x44,0x10,0x41,0x6c,0x3f,0xb7,0xe8,0x6f,0x39,0x93,0xe1,0xde,0xb8,0x6c,0xba,0x99,0x95,0xb7,0xc8,0xb2,0x2a,0xcd,0x81,0x53,0xc3,0xb5,0x2a,0x8a,0xd6,0x62,0x1e,0x74,0x4d,0xde,0xfa +.byte 0xff,0x7b,0xed,0x11,0x1e,0x44,0x3e,0x93,0x1c,0xae,0x7c,0x5c,0xed,0x52,0x75,0x5e,0x0a,0xf3,0x95,0xce,0x47,0x86,0x1b,0x7f,0x17,0x09,0x12,0xcc,0x08,0xca,0x16,0x11,0xf1,0xa1,0x39,0x78,0x89,0x5c,0x11,0x25,0xc7,0x39,0x5f,0x97,0x74,0xbc,0xa9,0x2a,0x25,0x5d,0xdd,0x93,0x0d,0x8c,0x74,0x07,0x1e,0xd9,0x9f,0xc1,0x38,0x9c,0xbf,0xe0 +.byte 0x42,0xad,0xb2,0xe7,0xb1,0x84,0x82,0xb4,0x56,0xbe,0x3c,0x42,0xb0,0xce,0x2c,0x94,0xb7,0xe6,0x78,0xc8,0x04,0x06,0x58,0x15,0x3e,0xdc,0xf6,0x9a,0x58,0xc3,0xe3,0x85,0x16,0xc8,0x84,0xba,0x8f,0xbc,0x94,0xa7,0x44,0x04,0x29,0xc4,0xd8,0xec,0x63,0xc4,0x47,0x58,0x22,0x02,0x08,0x20,0x44,0x39,0x52,0xa5,0x33,0xfe,0x1c,0x30,0x27,0x92 +.byte 0xbf,0x42,0x44,0x4c,0x3f,0x3d,0x00,0x7b,0x21,0xef,0xbb,0x25,0x75,0x4c,0xb2,0xe7,0x66,0xc9,0xc1,0xfb,0x1e,0x13,0x04,0xd0,0xcb,0x69,0x51,0x9d,0x9a,0xb0,0xb0,0xec,0xb0,0x12,0x24,0x84,0x57,0x9f,0xef,0xb4,0x19,0x50,0xa6,0xf5,0x03,0xa3,0x93,0x0f,0x77,0xaf,0xe0,0x4c,0xa5,0xd3,0xb0,0xd8,0x5e,0xc3,0x78,0x94,0xd5,0x6e,0x48,0x58 +.byte 0x7a,0x93,0xb1,0x62,0x60,0xea,0xa1,0xba,0x7a,0x86,0x6e,0x87,0xe9,0x97,0xe0,0x7c,0x1e,0xb6,0x63,0x94,0x76,0x5f,0x9c,0x95,0x65,0x00,0xd4,0x14,0x0e,0x4c,0x87,0xe7,0xcd,0x9e,0xb1,0xe2,0x13,0x1b,0xb1,0x8a,0x83,0xaa,0xaa,0x34,0xcd,0xb2,0xf6,0x7f,0x12,0xb0,0x79,0xff,0x1e,0x04,0xc8,0x9a,0xfc,0x41,0x88,0xbb,0x28,0x42,0xeb,0x45 +.byte 0x47,0x8b,0xcb,0x57,0x03,0xcd,0xe5,0x9a,0x84,0xea,0x0a,0xb5,0x0c,0xb8,0x30,0x33,0xd6,0xde,0x66,0xa8,0x57,0xf9,0x76,0x4f,0x0f,0x8f,0x53,0x56,0x57,0x91,0xd4,0x55,0xf5,0x78,0xde,0xa6,0xa2,0x59,0xc8,0xb0,0xf2,0xb9,0xfa,0x6d,0x4a,0x70,0x86,0x3d,0x24,0x1b,0xc6,0xb8,0x06,0xf5,0xea,0x09,0x63,0x9b,0x1e,0x61,0x18,0x85,0xba,0x08 +.byte 0x20,0xaa,0x33,0x66,0xcf,0xa7,0xff,0xf5,0x30,0xfe,0xf8,0x39,0xd3,0x88,0x9a,0x5b,0x3f,0x55,0xa6,0x00,0x4c,0x57,0x0d,0xd1,0xa4,0x0c,0xe7,0x8a,0x95,0xd8,0x64,0xc7,0x93,0x51,0x84,0xa6,0x41,0x2c,0xfc,0xb0,0xfb,0x99,0x9a,0xcd,0x2c,0x62,0x3a,0xca,0x43,0x15,0xf2,0x5a,0x22,0x25,0xa4,0x91,0xa3,0x7c,0x42,0x69,0xc1,0x67,0xe3,0xf5 +.byte 0xd4,0x92,0x54,0xbd,0xb3,0x57,0xe5,0x19,0xca,0x1b,0x9c,0x19,0x79,0x9d,0xbf,0x89,0xfc,0xaa,0x72,0xcd,0xcb,0xc5,0xbc,0xdd,0x0c,0x7c,0x31,0x42,0xb0,0xc2,0x76,0xe5,0x8b,0x9b,0x7c,0x92,0x13,0x20,0x5c,0xdc,0x94,0xfc,0xa1,0x90,0x34,0x27,0x88,0x9f,0xe5,0x97,0x5f,0xc3,0xa3,0x83,0xca,0x8b,0xf8,0xac,0x36,0x33,0x47,0xc6,0x20,0x2f +.byte 0x04,0x2d,0x13,0xc1,0x3c,0x07,0x6e,0xf0,0xe2,0x3d,0x32,0x5c,0x50,0x41,0xf2,0x92,0x3f,0x25,0x2c,0x80,0x34,0xa5,0x90,0x2b,0x97,0x6e,0xd1,0xa2,0xa6,0xf4,0x4a,0xe0,0x20,0xd9,0xb9,0x2b,0x66,0xe5,0x06,0x73,0x97,0xfe,0x80,0x70,0x28,0xf9,0xb6,0xae,0x93,0x27,0x7a,0x65,0xff,0x23,0xc1,0x78,0x18,0x92,0xc9,0x0b,0x05,0x82,0x93,0xbc +.byte 0x73,0x3f,0x98,0xe9,0xa0,0x6d,0x20,0x8d,0x13,0xb1,0xf0,0x7e,0xe4,0x07,0x21,0x7d,0x6d,0xea,0x03,0x59,0xf8,0x29,0xc0,0xc8,0x7d,0xce,0xd1,0xf8,0x67,0x82,0x7f,0x84,0xe8,0x77,0xa9,0x9c,0xa2,0x34,0xdf,0xa9,0xac,0xec,0x6d,0x54,0xe5,0x0f,0xcb,0xdb,0x86,0xbc,0x01,0x44,0x91,0x3b,0xc8,0x85,0x4e,0x1d,0xe4,0x74,0x19,0xc6,0x39,0x2e +.byte 0xdf,0xf2,0x8f,0x3a,0x7f,0xe3,0x1e,0x55,0x45,0xcb,0x7e,0xde,0xcd,0xa6,0x1c,0xef,0x20,0xf7,0x07,0x31,0x94,0x9a,0x3d,0x04,0xd7,0x5e,0x65,0x20,0x6a,0x4d,0x31,0x1e,0x6f,0x89,0x40,0x45,0x1f,0x37,0xc1,0x7e,0x07,0xd5,0xa6,0x38,0x4a,0xf1,0x39,0xae,0x72,0x26,0x60,0xb0,0xb5,0xc7,0xd3,0x9a,0xaf,0x57,0x12,0xe9,0x34,0x28,0x8b,0xaf +.byte 0xd8,0x62,0x24,0x58,0xe2,0xcd,0xa2,0x9e,0x74,0x23,0x2d,0x52,0xc7,0x09,0xe5,0xb5,0xf5,0xc1,0xd3,0xa3,0x19,0xe5,0x1d,0x8d,0x0c,0xdf,0x13,0x8d,0xa4,0xa7,0xc1,0x41,0xea,0x9e,0x6d,0x61,0xd4,0xa4,0x74,0xe5,0xf8,0x5f,0x9e,0xfd,0x6d,0xf6,0x6e,0x87,0x0f,0xb5,0xa3,0x82,0xac,0x64,0xb4,0xda,0x07,0x49,0x51,0xc2,0xfd,0xcb,0x55,0xa3 +.byte 0x59,0x34,0xdf,0xa1,0xd6,0x90,0x62,0x43,0x1a,0xf9,0xae,0x85,0x5c,0x11,0x40,0xb2,0xbe,0xa5,0x03,0x04,0x4f,0xec,0x2c,0x58,0x2d,0xe9,0xda,0xcf,0xaa,0x2f,0xcf,0x60,0xc3,0x2c,0x6c,0x81,0x4d,0xf2,0x71,0x41,0xe4,0xae,0x4c,0xfa,0x8e,0x05,0x10,0xff,0x40,0xfa,0xea,0x96,0x78,0x6e,0xfc,0x35,0x35,0xec,0x84,0xf6,0x1d,0x24,0x60,0xcd +.byte 0x96,0x21,0x21,0xa7,0x32,0x90,0x3d,0x51,0x72,0x13,0xa4,0x9b,0x7e,0x94,0x3a,0x9d,0x97,0xf6,0x68,0xd8,0x08,0x42,0x54,0x7a,0xbb,0x9a,0x95,0x83,0xac,0xb8,0xb4,0x68,0xe3,0x31,0xdb,0xe2,0x32,0x8b,0x7d,0x57,0x62,0x1d,0x61,0x81,0xa1,0x36,0x7a,0x25,0x00,0x72,0x24,0x4c,0xa7,0x96,0x3b,0xa5,0x82,0xba,0x8e,0x89,0x1e,0x1b,0x8e,0xf4 +.byte 0xab,0x91,0x85,0x7a,0x32,0x4a,0x47,0x9f,0xce,0xd2,0x51,0x77,0xcd,0xc9,0x02,0x54,0xf2,0x7b,0xcb,0xb8,0x83,0xe0,0xe0,0x1b,0x4a,0xa2,0xe0,0xd9,0x15,0xb6,0x02,0x19,0x75,0xa6,0xba,0xa6,0x98,0xd9,0x61,0x74,0xc6,0x48,0xa5,0x59,0x3d,0xc8,0x47,0xc9,0xe8,0x6b,0xbb,0x6d,0xcf,0x0e,0x8d,0x6b,0x58,0x8b,0x7d,0x4e,0x0b,0x3d,0x67,0xc4 +.byte 0x8e,0x78,0x59,0x40,0x88,0x82,0x33,0x27,0x2c,0xfe,0x2a,0x6c,0xe4,0x80,0xee,0x5a,0xd4,0x5f,0xc8,0xf7,0x82,0x02,0x67,0xfd,0xcb,0x55,0x3e,0xd8,0x41,0xb3,0xce,0x93,0xfe,0xe7,0x56,0xf5,0x63,0xba,0xfa,0x2e,0x79,0xfc,0x11,0x5d,0xb0,0xc6,0x32,0x54,0xed,0x71,0x9b,0x15,0xce,0x62,0x09,0xd4,0x28,0x7f,0x7b,0xa1,0x50,0x5b,0x46,0x24 +.byte 0x0e,0x40,0xa2,0xe2,0x7d,0x93,0xa6,0x2b,0x0b,0x9b,0x40,0x25,0xc9,0xca,0x7a,0x01,0x8b,0x7d,0x68,0xeb,0xd7,0x84,0xc1,0x9d,0xf9,0xfb,0xd0,0x1a,0xec,0xef,0x6b,0x4c,0x78,0x31,0x62,0x8e,0x9d,0xdc,0x78,0x8f,0xcb,0xf8,0xf9,0x41,0xdc,0x9f,0x6d,0x0a,0x27,0x67,0xce,0xbd,0xeb,0x87,0xb3,0x26,0xf3,0x51,0xe1,0xd6,0xd1,0x57,0x46,0xfe +.byte 0x21,0xb9,0x88,0x7c,0xdd,0xa2,0x49,0x71,0x24,0xfb,0xc4,0xc0,0x6a,0x6b,0x05,0x7f,0x80,0xb0,0x09,0x3b,0x9e,0x6c,0x59,0x31,0x3e,0xac,0x7a,0x2e,0x5c,0x04,0x03,0xa3,0x6e,0xf5,0x66,0xee,0xc2,0x9b,0x65,0x88,0x06,0xbf,0xf5,0xe3,0x23,0x73,0x38,0x88,0x99,0xf1,0x64,0x68,0xdf,0x7d,0x04,0x06,0x72,0x92,0x0b,0x62,0x5d,0x12,0x1e,0x4e +.byte 0xff,0x60,0x35,0xe3,0x0f,0xd9,0x8c,0xac,0x38,0x5b,0x91,0xc1,0x51,0xbb,0xa5,0x19,0x7d,0xfb,0x79,0xfa,0x42,0x3b,0xaa,0xf8,0xd3,0x0f,0xc3,0xf2,0xb2,0x68,0x91,0xae,0x28,0x83,0x4f,0x75,0xbd,0x20,0x5f,0x20,0xba,0xc2,0x75,0x85,0x74,0x23,0xf3,0x36,0x33,0x99,0x9c,0x64,0x4c,0xd1,0x5d,0xbd,0x06,0x46,0xbd,0x49,0xf0,0x86,0xc0,0xcb +.byte 0x1b,0xbd,0xec,0x98,0x5b,0xb1,0x80,0xba,0x12,0x42,0x22,0x09,0x9a,0x62,0x3c,0xa8,0x33,0xbf,0xce,0x92,0xd4,0x07,0xef,0x34,0x33,0x8f,0x67,0x1d,0x25,0x60,0xeb,0xd3,0xe4,0x31,0x63,0xa8,0xab,0xe3,0xab,0x70,0x50,0xd8,0x44,0x9f,0x39,0x51,0xd2,0xb9,0x4b,0x16,0xe4,0xfa,0xc5,0x47,0xf3,0xae,0xb5,0xfe,0x7d,0x5d,0x43,0x28,0xa6,0x3d +.byte 0xcf,0x71,0x23,0x6d,0x8e,0xd7,0x74,0xa4,0x86,0x9f,0x92,0x86,0x3c,0x1e,0x51,0xd4,0xe0,0xe6,0xd5,0xc4,0x53,0x3c,0x96,0x55,0xb9,0xac,0x63,0x5b,0xee,0x5a,0x03,0x84,0xb9,0x43,0x2c,0x0f,0x6d,0xbb,0xb5,0xca,0xf0,0x4f,0x3e,0x8b,0x3b,0x14,0x01,0x0e,0x81,0x0d,0xe6,0x62,0xa9,0x34,0x4e,0x03,0xc9,0x85,0x9f,0xc8,0x4f,0x52,0x3f,0x84 +.byte 0x1b,0xab,0x7e,0xaf,0x93,0x22,0xe2,0x0d,0x41,0x79,0x50,0xb2,0x17,0xa7,0x9a,0x80,0xd5,0x65,0x40,0x3b,0x56,0x9b,0xc9,0x00,0xcf,0x03,0xf1,0xff,0xcd,0x72,0x27,0xdb,0x74,0x94,0x70,0x02,0xdc,0x3a,0xee,0x00,0xcc,0x08,0x0a,0xab,0x40,0x87,0x24,0xaf,0x7d,0x67,0x18,0xd0,0x7c,0xeb,0x91,0x1f,0x7e,0x9e,0x41,0x7b,0x39,0xf2,0xfe,0xaf +.byte 0xb7,0x6c,0x58,0xe0,0xdb,0xf7,0xf1,0x23,0x0b,0x98,0x08,0xfa,0xde,0xfa,0xf9,0x24,0x23,0xd1,0x7f,0x69,0xd3,0xb1,0x82,0x68,0x03,0x06,0x86,0x7a,0xf4,0x90,0x8d,0xa5,0xbd,0xbe,0x14,0x2f,0xa2,0x5e,0xaf,0x5c,0x1e,0x07,0x68,0x19,0x5a,0xd3,0x53,0x7d,0xe8,0x13,0x6b,0xe3,0x02,0x49,0x0d,0xd2,0x96,0x56,0xae,0x67,0x8a,0x27,0x61,0xa0 +.byte 0x60,0x20,0x2c,0xb4,0x5d,0xdf,0xc3,0x24,0x50,0xa9,0xbc,0x3d,0x5c,0xf3,0x2e,0xb6,0xba,0x71,0xf0,0x04,0x43,0x84,0x4d,0x80,0xe9,0xa5,0xdd,0xb3,0x1e,0x5e,0x56,0x32,0x1a,0xd4,0xe3,0x10,0x57,0x35,0xa8,0xf1,0xe5,0x96,0xc1,0x27,0xef,0xcc,0x21,0x71,0x10,0xd1,0x07,0x7e,0xb3,0xab,0x95,0x64,0x86,0xaf,0xc9,0x15,0xe6,0x98,0x5e,0xb1 +.byte 0xbd,0xde,0x99,0x38,0xfc,0x8d,0xb2,0x5a,0xa4,0x44,0x5b,0x74,0x31,0x31,0x07,0x93,0xf5,0x86,0x78,0xc5,0x82,0x26,0xfc,0x95,0x1f,0x33,0xd8,0xfe,0x70,0x42,0x2a,0xa7,0x3a,0xb1,0xb2,0x63,0xd6,0x5b,0x54,0x9c,0x54,0x45,0x4f,0x1b,0x4a,0xc2,0xb4,0x0e,0x99,0x48,0xde,0x8d,0xa6,0x5d,0xd3,0xdc,0x31,0xa4,0x2b,0x0d,0x44,0x6e,0x1a,0x10 +.byte 0x3f,0x6c,0xa0,0xab,0xcb,0xb4,0xf6,0x18,0xba,0x11,0xd4,0xd4,0x70,0xc4,0xab,0x04,0x4c,0xe7,0xe9,0x53,0xe5,0xd9,0xe7,0xeb,0x21,0xa2,0x2c,0xc4,0xc6,0xc3,0xe7,0x73,0xd9,0xd3,0x84,0xb0,0x12,0x94,0x3b,0xfd,0xd9,0x32,0xba,0xe3,0x37,0xc1,0xb9,0x4d,0xea,0x3e,0x3d,0x31,0x4e,0xa0,0xe7,0x73,0x9d,0x4e,0x26,0xd1,0xdf,0xe6,0x26,0xcd +.byte 0xd7,0x17,0xd7,0x28,0x2c,0x04,0xe9,0x55,0xd5,0x70,0xaf,0xab,0xc1,0x07,0xbc,0xc4,0xd2,0x89,0xdc,0x22,0x59,0x19,0x0e,0xd8,0x8b,0xdd,0x46,0x7f,0xe4,0xad,0xa5,0x70,0xd7,0x18,0x51,0x30,0xd7,0xbc,0x26,0x45,0xe7,0xea,0xce,0xc7,0xf2,0xca,0xb1,0x9c,0x57,0x1e,0x10,0x5f,0x44,0x8d,0x3d,0xe8,0x55,0xa1,0x22,0x68,0x97,0xe8,0x03,0x9c +.byte 0x8b,0x63,0x81,0xd9,0xcd,0x4c,0x6c,0xe3,0x68,0xc9,0x35,0xee,0x94,0x13,0x25,0x0b,0x12,0x61,0xbd,0xee,0x6f,0xc7,0xe8,0xb5,0x01,0x7a,0x9e,0xd0,0x5a,0x46,0xc6,0x19,0x1b,0xc2,0xf1,0x2d,0xaa,0x53,0x29,0xcf,0x23,0x1a,0x4d,0x94,0x0a,0x50,0x64,0xf5,0x3b,0x52,0x55,0xac,0xa5,0x21,0x15,0x47,0xd9,0x14,0x8c,0x7f,0x4d,0x79,0x6b,0xc1 +.byte 0x43,0x0a,0xf2,0x42,0xd2,0xb0,0x95,0x19,0x99,0xdd,0x1d,0x8e,0x84,0x8c,0x7e,0x59,0x69,0x93,0x86,0xae,0xf1,0x67,0x35,0x55,0x7c,0x5b,0x38,0x11,0x56,0xec,0x6c,0xbb,0xe8,0xc0,0x54,0xec,0x5f,0x65,0x13,0xe3,0x86,0xa0,0xb1,0xc1,0x5e,0x34,0x4f,0xdd,0x4d,0x00,0xc6,0x29,0x05,0x78,0x64,0x8c,0x19,0xb0,0xfc,0x8a,0xb2,0xc7,0x86,0x57 +.byte 0xa2,0xdd,0xed,0x43,0xc1,0x7f,0xab,0x89,0x19,0xe8,0xa6,0xf5,0x7a,0x15,0xfe,0xd5,0x4f,0x53,0xde,0x78,0x42,0x76,0xf7,0x8a,0x54,0xe8,0x37,0xfd,0xee,0x82,0x20,0xd5,0xe2,0x32,0xb9,0x32,0x67,0xc7,0xff,0xdc,0xf0,0x40,0x07,0x28,0x55,0x16,0x56,0x84,0xe9,0x17,0x25,0x17,0x8e,0x10,0xef,0x9f,0xed,0x33,0x83,0x6d,0x9e,0x87,0x82,0xb8 +.byte 0xa9,0x6b,0xcb,0xe5,0x04,0xfb,0x87,0x51,0x05,0x1a,0x64,0x64,0x51,0x34,0xa3,0x61,0x4a,0xe3,0xa6,0x35,0xa5,0xc9,0xe3,0xde,0xb0,0xcf,0x5f,0x68,0x49,0xbc,0x98,0xf9,0x0b,0x82,0xde,0xb1,0xf9,0x77,0x16,0x7c,0x1f,0x80,0x0c,0xfc,0xbb,0x6d,0x8e,0x92,0x93,0x00,0xc2,0xa5,0xbe,0xde,0x55,0x09,0x9d,0x83,0xa5,0x6c,0x0a,0xb5,0xc4,0x53 +.byte 0xde,0xbc,0x07,0xca,0x0f,0x43,0xea,0x50,0x25,0xee,0x51,0x3b,0xfb,0x7a,0xcf,0x31,0x8a,0x19,0x1c,0xa2,0x2d,0x72,0x79,0x81,0xc6,0xb8,0xe6,0xe1,0xd8,0x3e,0x0f,0xc0,0xae,0x73,0x40,0x30,0x15,0xaa,0xe3,0x72,0xc3,0x36,0xc1,0x42,0x11,0xc5,0x3f,0xf5,0x69,0x78,0xea,0x95,0x54,0x36,0xe8,0x7e,0x9c,0xad,0xbd,0xcd,0x19,0xfe,0x4a,0x04 +.byte 0xb4,0x54,0x14,0x98,0x58,0x6f,0x06,0x8f,0x8c,0x95,0xa8,0xc9,0xe8,0xc4,0x2b,0x03,0xaa,0x42,0x75,0x74,0xa2,0x63,0xdb,0xca,0xd1,0xf0,0x60,0xc3,0x63,0x84,0xfb,0xd7,0x5a,0x7b,0xca,0x45,0x8d,0x14,0xdc,0xf8,0x71,0x40,0x71,0xbb,0xa1,0x1a,0xd3,0x8c,0xfb,0xf6,0xf7,0xfc,0x82,0x72,0x50,0xc9,0xe3,0xc5,0xe2,0xb1,0x57,0xb1,0x24,0x3e +.byte 0x11,0x4d,0x96,0x1c,0x3a,0xe1,0xb6,0xb7,0x0e,0x55,0x35,0x6c,0xd8,0x2b,0xe3,0x78,0xcd,0xac,0x8f,0x24,0x70,0xc6,0x35,0x5b,0x6e,0x75,0x7a,0xf1,0x7d,0x87,0x53,0xcf,0x0a,0x24,0xb6,0x6a,0xfd,0xef,0x90,0x07,0xcf,0xde,0x30,0xbc,0x8c,0xec,0xda,0x6f,0x45,0xad,0x92,0xb6,0x8d,0x6b,0xb8,0x8e,0xdc,0xe5,0xbf,0x57,0x67,0x5e,0x2f,0x4d +.byte 0x5d,0xee,0x38,0x0a,0xaf,0xeb,0x62,0x84,0x2b,0x4c,0x30,0x7b,0x91,0x99,0x40,0x6f,0x09,0x2b,0x36,0xcd,0x04,0xeb,0x7c,0x8d,0xa5,0xbd,0xd6,0xb0,0xfc,0x27,0xcf,0x6b,0xdd,0xe1,0x94,0xbc,0x21,0xc6,0xc9,0x55,0x24,0xd4,0xa1,0x6f,0x1e,0xa2,0x81,0x31,0x22,0xb7,0x75,0x9e,0xa7,0x01,0x26,0x01,0x6c,0x12,0x91,0x02,0x87,0x40,0x5c,0x91 +.byte 0x1f,0x0c,0x55,0x07,0x12,0xa7,0x48,0xdd,0xed,0xb6,0xfe,0x38,0x05,0xbc,0xe1,0x2e,0x3b,0x89,0x4f,0x98,0x65,0x22,0x93,0xda,0x09,0x9f,0x04,0x90,0x66,0x81,0xd1,0x56,0x27,0x8b,0x26,0x99,0xbe,0x93,0x08,0xf1,0xfb,0x80,0x5b,0xaa,0xc4,0x96,0x88,0x93,0xb6,0x01,0xae,0xf6,0x69,0xaa,0x6f,0x4d,0xde,0x2f,0xc7,0x24,0xbf,0xe9,0xb8,0xeb +.byte 0xcd,0xb2,0x0a,0x50,0x5c,0xd2,0x0b,0xfc,0x57,0x3b,0x96,0xf8,0xd9,0xbe,0xd2,0xb5,0x16,0xac,0x7c,0xe4,0x2f,0x46,0x93,0x86,0x48,0x91,0xfa,0xae,0xca,0x05,0x9e,0xfe,0x6e,0xae,0xa5,0x58,0x94,0xc0,0x58,0x1e,0xc5,0x69,0x28,0xe0,0x99,0x12,0x83,0xcf,0x35,0xe4,0x72,0x7d,0x4e,0x8b,0x66,0x56,0xb3,0xa6,0x2a,0x72,0x06,0x03,0x45,0xd1 +.byte 0x95,0xc9,0x93,0xb7,0xf4,0x8a,0x83,0xce,0x17,0x8b,0xf0,0x8e,0x8f,0x4a,0x68,0x55,0xd8,0xfc,0x54,0x8d,0xb5,0x62,0x17,0xa8,0xe6,0x18,0x03,0x53,0x04,0xb8,0xbe,0xd2,0xd0,0x7a,0x84,0xe1,0x39,0x31,0xc5,0x74,0xf2,0x64,0x1c,0x3b,0xd5,0x52,0x9b,0x81,0x8a,0x8f,0x36,0xc8,0xab,0x3d,0xe1,0xa8,0x2a,0xf2,0x84,0x9a,0xca,0x0c,0xcf,0xc9 +.byte 0x45,0x54,0x06,0xe8,0xd2,0x62,0x61,0x4d,0xeb,0x0b,0x38,0x4e,0x43,0x59,0x85,0x3a,0xe4,0xa3,0x25,0x15,0xc2,0xb5,0x7b,0x5e,0x2f,0xe6,0xc1,0x5d,0x2a,0xb7,0x57,0xb8,0x7e,0x61,0x51,0xc3,0x81,0x53,0x45,0x8a,0x6e,0x4c,0x89,0x84,0x2a,0x6b,0xca,0x15,0xff,0x97,0xfc,0x1f,0x8a,0x44,0xbd,0xcd,0x5e,0x32,0x6b,0x5f,0x78,0x7b,0xdf,0xdd +.byte 0x9d,0x2f,0x21,0xf2,0x14,0x40,0x5f,0x5a,0xd5,0x21,0x27,0x3d,0x0b,0x9f,0x9f,0xb0,0x8e,0xab,0x9e,0x68,0x96,0x02,0xfd,0x4d,0xcc,0x03,0xf0,0x03,0xfb,0x4c,0xac,0xfa,0x00,0x3b,0xea,0x1a,0x53,0x80,0x77,0xec,0x53,0xc3,0x3c,0x6c,0xf8,0xa5,0x3e,0x52,0x34,0xd4,0xa1,0x52,0xb8,0xd6,0x19,0x8c,0xdf,0x85,0x27,0x61,0x22,0xe7,0x43,0xeb +.byte 0x85,0xc0,0xbe,0x58,0xe6,0x60,0x81,0x4c,0xc6,0xbb,0xc0,0xbf,0x63,0x39,0x9d,0xad,0x2e,0xa8,0x2a,0x83,0x3d,0xfa,0xdb,0x0b,0x98,0x16,0x78,0x18,0x43,0xc7,0x17,0x82,0xb8,0xec,0x32,0x45,0x75,0x0c,0xc1,0x4c,0x84,0xbf,0xce,0x83,0x3b,0xb4,0x91,0xf4,0x0d,0x5d,0x83,0xf6,0xd6,0x10,0xab,0xc6,0x26,0x9b,0x68,0x59,0xec,0x48,0x4b,0x1d +.byte 0x35,0x2a,0x5b,0x23,0x83,0x22,0x8e,0x7d,0xfa,0xce,0xde,0xb1,0xd9,0x78,0xf6,0x9e,0x08,0xba,0xfb,0xda,0xf2,0x04,0xc5,0x2a,0xac,0xbf,0xb4,0x04,0x05,0x1f,0x0b,0xeb,0xe8,0x2a,0x3c,0x3f,0x4f,0xb6,0xc8,0x6b,0x97,0x5a,0x9e,0xdb,0x4b,0x3c,0x93,0xc1,0x20,0x1c,0x62,0x91,0x74,0x76,0x49,0x92,0xc2,0xd8,0x0d,0xd8,0xfe,0xb5,0x68,0x77 +.byte 0x48,0x9f,0xbe,0xe0,0x78,0x20,0xe7,0xa4,0x3d,0x3e,0xa1,0x4c,0xc7,0xeb,0xd3,0x30,0xd3,0xf0,0x65,0xcf,0x18,0x3c,0xf8,0x25,0xc2,0x99,0xf4,0xec,0xef,0xdd,0xef,0xf3,0x6b,0x28,0x00,0xaa,0xfd,0x76,0xec,0x19,0x67,0xd6,0x79,0xa6,0x01,0x6e,0x20,0x3a,0x7f,0xd4,0xd0,0x05,0xb4,0xea,0xd4,0xde,0x11,0x06,0x44,0x4a,0x6f,0x15,0x2f,0x62 +.byte 0x9a,0xaa,0xeb,0xaf,0xb5,0xb5,0x46,0xb2,0x28,0x2e,0x74,0x26,0x06,0x91,0xeb,0x15,0xef,0xd4,0xfd,0xc7,0x1b,0x65,0x25,0x01,0x24,0xd2,0x44,0x05,0x18,0x1c,0x71,0x36,0x58,0xc4,0x37,0xfe,0x22,0x29,0xc0,0x2f,0xd2,0x4e,0xeb,0x43,0xb9,0xf9,0x4e,0x87,0xd7,0x92,0x77,0xa8,0x4f,0xa5,0x6e,0x5c,0x4d,0x3a,0xe9,0x16,0x62,0x30,0x51,0xbb +.byte 0x32,0xd8,0x0d,0x86,0x20,0xbf,0x68,0x0f,0x3e,0xef,0x8b,0x0d,0xc5,0xa6,0x94,0x81,0xe9,0x6f,0x85,0xf5,0x22,0x6e,0x9e,0x0a,0x56,0xa3,0x43,0x79,0x50,0xd9,0x45,0x5f,0x5a,0x3f,0x53,0x53,0xb7,0xfe,0xb6,0x1c,0x63,0xab,0x7c,0xed,0x2f,0xc4,0x2b,0xa8,0x53,0xfb,0xad,0x46,0xf0,0x63,0xca,0x7a,0x6e,0xce,0xf4,0xb9,0x34,0xd0,0x9a,0xc8 +.byte 0x0d,0xd2,0x32,0xce,0x26,0x3f,0xcd,0xd9,0xbc,0xa9,0x46,0x65,0x45,0xfe,0x45,0xeb,0x0d,0xab,0xe6,0x31,0xb6,0xb9,0x41,0x53,0x7d,0x55,0xc3,0xfb,0x10,0x46,0x37,0x77,0x1f,0x15,0xf0,0x5f,0xcb,0x8f,0xea,0xc5,0xc0,0xb8,0xc6,0xb1,0x3a,0x06,0x42,0xec,0x38,0xec,0x06,0xd1,0x37,0x3b,0xe1,0x8d,0xad,0xc2,0xce,0x96,0x0b,0xf0,0xab,0xde +.byte 0x9c,0x3c,0x09,0xef,0x59,0xcd,0x67,0xa7,0x6e,0x0e,0xc7,0xee,0x51,0x6d,0x90,0x40,0x0e,0xdf,0xb1,0x13,0xe3,0x0c,0xb6,0xe8,0xcb,0xf5,0x57,0x50,0xeb,0xdf,0x09,0x45,0x72,0x40,0xff,0xdc,0x5c,0x51,0x42,0x47,0xb2,0x9e,0xca,0xf3,0x1b,0x06,0xb1,0x3e,0x04,0x55,0x96,0x63,0x24,0x16,0xdb,0x3e,0xab,0x98,0x33,0x70,0x6f,0xfd,0x8f,0x7b +.byte 0x56,0xb0,0x7f,0x28,0x26,0xc4,0x2a,0x9e,0xf5,0xa7,0xba,0x61,0x75,0xa4,0xb1,0x25,0x60,0xe5,0x9c,0x7e,0xb4,0xaa,0x04,0xa1,0x33,0x5a,0x8d,0x88,0x1d,0xc4,0x38,0x58,0x28,0x23,0xc7,0xac,0x20,0xf8,0xaa,0x18,0xf8,0xc7,0x27,0x05,0x07,0xf7,0x12,0xfe,0xe1,0xa5,0x99,0xaa,0x55,0x79,0x72,0xc4,0x14,0x08,0x14,0x4a,0xfb,0xf7,0x66,0x81 +.byte 0x6e,0xed,0x81,0x12,0x5f,0xb6,0x08,0x00,0x37,0xf9,0xdc,0xdf,0x4d,0xcb,0xfa,0xc6,0xf3,0xc2,0x17,0x17,0x52,0x39,0x7b,0xa0,0x3e,0x25,0xc9,0x48,0xd8,0xa6,0x1b,0x8b,0xdb,0xf8,0x74,0xac,0x6b,0x16,0xec,0xa6,0x4a,0x1e,0x7e,0x5c,0x50,0xbf,0x81,0xef,0x3c,0x7d,0x9d,0x21,0x38,0xa9,0x26,0x3c,0x30,0x7a,0xfb,0xab,0xd8,0x6a,0x0a,0xaa +.byte 0xbb,0x6e,0x91,0x92,0x7c,0x04,0x02,0x0e,0xa2,0x71,0xc7,0xde,0x7d,0x42,0xaf,0xe5,0x92,0xc1,0xb9,0xd7,0x52,0xaa,0x32,0xea,0x39,0x84,0x17,0x40,0xb0,0x83,0x18,0xff,0x46,0xb8,0x59,0xd9,0xa3,0xce,0x82,0x7e,0x65,0x54,0xe0,0xa4,0x6d,0x8a,0xbc,0x6a,0x65,0xb2,0xd5,0x96,0x5b,0x1c,0x9a,0x32,0x72,0xf7,0x81,0x57,0xcd,0xb3,0x22,0xc5 +.byte 0x7d,0x20,0x24,0xea,0xbe,0x51,0x4c,0xb3,0x48,0x36,0x4f,0x73,0xf4,0x3f,0x07,0x92,0x01,0xe2,0x1e,0x78,0x3f,0x8e,0x1f,0x35,0x1a,0xf1,0xe1,0x14,0xd1,0xe7,0xd9,0xfd,0xd8,0xf7,0x20,0xc2,0xf3,0x7a,0x59,0xc9,0x1d,0x13,0x41,0x01,0xf6,0x77,0x69,0xfb,0x0f,0xc7,0xe4,0x58,0x04,0xce,0xe8,0x73,0x87,0x2f,0xef,0xe6,0x36,0x38,0xc7,0x91 +.byte 0x2d,0x17,0xb5,0x56,0x68,0xb1,0x9f,0xbf,0x2e,0x4b,0xe7,0x09,0x7b,0x35,0x33,0x5a,0x6c,0xc1,0x6f,0xb3,0xac,0x6c,0x1e,0xfe,0xc0,0xc9,0xd8,0x77,0xf5,0xcb,0x5e,0xcc,0xd1,0x2f,0xdd,0x23,0x8b,0x3b,0xb5,0x43,0x96,0x1f,0xa9,0xe4,0x84,0x41,0x92,0xe9,0x68,0x47,0x50,0xf7,0xd4,0x85,0x22,0xa1,0x43,0xaa,0xde,0xf7,0xea,0xe0,0x54,0xaa +.byte 0x0d,0xe6,0xa5,0xb8,0x7e,0xec,0x13,0x9a,0x1e,0x6c,0x10,0x9d,0xa8,0xfb,0x97,0xde,0x24,0xda,0x33,0xbb,0xab,0x17,0x7a,0xb4,0x72,0xaf,0xed,0xc9,0xa4,0x62,0x65,0x0c,0x99,0x3d,0x74,0x7f,0xff,0x59,0xa9,0x8e,0x37,0xb9,0x10,0x30,0x26,0x3f,0x2f,0xfc,0x1e,0xe2,0xc6,0xb8,0xff,0x41,0xb3,0x35,0x3f,0x41,0xf4,0x47,0xbc,0x76,0xc6,0x77 +.byte 0x0f,0xf8,0xff,0xb8,0xd2,0x34,0x40,0xac,0x43,0xcb,0xcf,0x1f,0x57,0xaa,0x1a,0xa7,0xe1,0x4a,0x69,0xd7,0x05,0xa7,0x9d,0xff,0x13,0x43,0x91,0xe3,0x09,0x1c,0xb2,0xb2,0x82,0x06,0xa3,0x3c,0x35,0x85,0x9e,0xd0,0xcf,0x1c,0xb9,0x13,0x09,0x7d,0x3d,0x17,0x0f,0xf8,0x2f,0x61,0x97,0x7e,0x02,0xe0,0x78,0x07,0x69,0x8c,0x91,0xbe,0x96,0x92 +.byte 0x4a,0x03,0xa7,0x31,0x5f,0x6c,0xfe,0x55,0xb2,0x17,0xe8,0x4c,0x64,0x48,0x18,0xde,0x4f,0x5a,0xce,0xd2,0xcb,0x83,0x4d,0x1b,0x2a,0x1f,0xce,0x85,0xf7,0xdc,0x74,0x8c,0x42,0xc6,0x5a,0x3a,0x51,0x22,0x79,0x70,0xa0,0xe0,0x29,0x2a,0x73,0xe4,0x53,0xb4,0x47,0x5f,0x54,0xa8,0x65,0xe4,0x89,0x78,0xf9,0xb9,0x5f,0x5f,0x9d,0xa8,0xf7,0x82 +.byte 0x4e,0x34,0x60,0xfc,0xe3,0x88,0x65,0x73,0x99,0x1f,0x53,0xed,0xe8,0xf0,0xf4,0x5a,0x0a,0x49,0x42,0x6e,0x02,0x3f,0xa8,0x63,0x21,0x02,0x2e,0x8f,0x33,0xba,0x0e,0x10,0xd3,0x4c,0x1a,0x8b,0xf5,0x84,0x8e,0x2b,0x37,0x12,0x23,0x77,0x02,0x45,0xc7,0xc3,0x79,0x06,0xc2,0x8c,0xaa,0x32,0x53,0x7c,0x19,0xa2,0x92,0x7e,0x47,0x40,0x8f,0xae +.byte 0x8a,0x64,0x51,0x67,0xe1,0xc1,0xc3,0xd2,0x14,0x1d,0x63,0x0c,0x80,0x04,0x30,0x3d,0xee,0x58,0x44,0xe4,0x14,0x63,0xfc,0x95,0x05,0x3e,0xc1,0x8d,0xd3,0xcb,0x5d,0xc1,0x8e,0xf9,0xd7,0xe5,0x9d,0x97,0xef,0x8a,0xaa,0x50,0x31,0xa3,0x01,0x3a,0xb2,0x8d,0x63,0xb6,0xe7,0x34,0xec,0xa1,0x7a,0xff,0x57,0x95,0xbb,0x1d,0xbe,0x0c,0xa5,0x91 +.byte 0x92,0x08,0x06,0x1c,0x67,0x03,0x2e,0xee,0xf6,0x6f,0xa0,0xb7,0x9a,0x7c,0xe3,0x6a,0x8e,0xd8,0x50,0xc1,0xd6,0xa1,0x8d,0xe9,0x66,0x9a,0x1f,0x62,0x15,0x04,0x93,0x74,0xe8,0x04,0x0d,0x27,0x55,0x2b,0x07,0xb1,0xbd,0x69,0xe4,0xc1,0x34,0x8e,0xe7,0xfb,0xa0,0x3f,0x40,0x31,0x47,0xba,0xcb,0x80,0x88,0xf7,0x4f,0x46,0x05,0x31,0xaf,0x23 +.byte 0xdf,0x93,0x09,0x0a,0x15,0xc9,0x95,0x74,0x52,0x72,0xf4,0xbf,0x0d,0x07,0xb6,0xcc,0x4b,0x40,0x12,0xf3,0x87,0xea,0x29,0xd8,0x29,0x31,0x23,0xac,0x29,0x1a,0x89,0x83,0x5b,0x33,0x4b,0x6b,0x69,0xbe,0xb6,0x15,0x7e,0xfd,0xf2,0x95,0xc4,0xbe,0xeb,0xee,0x59,0x01,0x2a,0xce,0xca,0x80,0xda,0xf8,0x1a,0x01,0x23,0xf7,0xa1,0x4f,0xf5,0x83 +.byte 0x5e,0x16,0xd9,0x12,0xa9,0x4e,0xcb,0x59,0x23,0x4f,0x40,0xd7,0xbf,0xaf,0x76,0xf0,0x50,0x31,0x27,0x3a,0x8b,0x1d,0x9b,0xb1,0x1c,0x41,0xb0,0xed,0xe6,0xf3,0xa8,0x5f,0x6b,0x58,0x54,0x92,0xaf,0xcc,0x44,0x5c,0xea,0xdb,0x09,0xc5,0x26,0x5e,0xbe,0x46,0xbd,0x72,0x49,0x5a,0x4e,0x65,0x7e,0x75,0xcf,0xfc,0xf6,0xd0,0x3c,0x4a,0x7e,0xd6 +.byte 0x8e,0x8e,0xb4,0x19,0x45,0x75,0xbf,0xc3,0x5e,0x46,0xff,0xc9,0x46,0x65,0x8d,0x31,0x01,0x5e,0x1c,0x13,0x93,0x56,0x6f,0x28,0xec,0xf3,0x77,0xfa,0x6e,0xb9,0x0e,0xb6,0x8e,0x0e,0x38,0xf8,0x28,0x64,0xa2,0xa1,0x42,0x9a,0xb4,0xf3,0x14,0x8d,0x17,0x80,0x05,0x82,0x7c,0xf1,0xea,0x8b,0x4b,0x62,0xa0,0xde,0xf6,0xd7,0x36,0xb0,0x70,0x8d +.byte 0x03,0xf6,0xc8,0x2a,0x9e,0xc0,0xbb,0x2f,0xcb,0xef,0x35,0xf7,0x16,0xcd,0xd6,0xd6,0x90,0xd7,0x5d,0x61,0x00,0x33,0x9f,0xd8,0xd1,0xda,0x17,0x67,0x90,0xd1,0xf8,0x59,0xcb,0xf1,0x76,0xc2,0xbe,0x1f,0x5d,0x0d,0xb2,0x02,0xbd,0x19,0x9f,0x5a,0xa0,0x91,0xac,0x51,0xb5,0xf5,0x0a,0x64,0x67,0xf2,0x49,0x30,0x6c,0x57,0x83,0xda,0x90,0xf1 +.byte 0xc6,0xc7,0xe6,0x05,0x13,0x30,0x52,0xfd,0x2a,0x47,0xea,0xae,0xd3,0xed,0xe4,0x64,0x1f,0x6c,0xb1,0xdf,0xca,0x20,0x97,0x2a,0xc8,0xdc,0x00,0x0e,0x5b,0x59,0xc8,0x16,0x95,0x68,0x9a,0x2e,0x44,0xab,0xf6,0x93,0x7c,0x8f,0x66,0x4f,0x07,0x42,0x3f,0xa5,0x81,0xe7,0xab,0x59,0xbb,0xae,0xb1,0x3e,0x9a,0x25,0xf1,0xde,0xac,0x4c,0x1d,0x7a +.byte 0x54,0xb9,0xa9,0x59,0xaf,0xb0,0xab,0xaf,0x6b,0x76,0x66,0x1e,0xbe,0x1a,0xc1,0x61,0x1b,0x81,0x6b,0xe8,0xe4,0x73,0x6a,0x87,0xe9,0x39,0xcb,0x2c,0xab,0x64,0x36,0x9a,0x11,0x46,0xec,0x9f,0x30,0xb6,0x2c,0x14,0xe0,0xec,0xbe,0x33,0xde,0x60,0xc6,0x00,0x29,0x3c,0x55,0xda,0xfc,0x64,0xff,0xaa,0xbf,0x99,0x58,0xe2,0xe3,0xec,0xde,0xca +.byte 0xd1,0x3d,0xd2,0xad,0xaa,0xca,0x36,0x8f,0x93,0xa2,0xdd,0xde,0xaa,0x49,0x7f,0xdd,0x39,0x91,0xa0,0x7b,0x33,0xdf,0x36,0xcd,0xc3,0x3a,0xbc,0x53,0xf0,0x07,0x99,0x78,0x4e,0x63,0x47,0x79,0xbf,0x21,0xfc,0x05,0x47,0x69,0xec,0xee,0xf4,0x21,0x97,0x94,0x0c,0x7a,0x9f,0xa6,0xeb,0x5b,0x23,0xed,0x9d,0xc1,0xe1,0x5e,0x10,0xca,0xe0,0x84 +.byte 0x5a,0xdd,0xf6,0xae,0xd8,0x23,0x98,0xea,0x6c,0x43,0x77,0x41,0xf3,0x84,0x5a,0xe8,0xda,0xb3,0x11,0x0e,0x19,0x33,0xe9,0xf9,0x7a,0x90,0x07,0x68,0xf1,0xe4,0x52,0x0c,0x03,0x67,0xb9,0x42,0x41,0x24,0xa3,0x61,0x67,0x75,0xc9,0xb5,0xdd,0x10,0xf1,0x20,0x93,0x54,0xdb,0x0d,0xc7,0x0d,0x25,0x3e,0xda,0xb3,0xe7,0xce,0x97,0x7e,0xdb,0x1a +.byte 0x8f,0x92,0xff,0xe3,0x44,0x2d,0x6b,0xdb,0xe0,0x69,0x8b,0x16,0xce,0xe8,0xc7,0x93,0xf1,0x19,0xb9,0xd3,0x41,0x45,0x8d,0x95,0xb3,0x03,0xb2,0x66,0x96,0x95,0x91,0x33,0x1c,0xee,0xde,0xd7,0x9d,0xab,0x32,0x2f,0xb8,0x3c,0x7a,0x44,0x8f,0xa6,0xca,0x02,0x03,0x2f,0xa8,0x44,0x85,0x0e,0xf5,0x27,0x90,0x84,0xd9,0x80,0x06,0xf4,0x4f,0xc7 +.byte 0x21,0xc5,0x92,0xa4,0x2d,0x08,0x42,0x4c,0xa7,0x84,0xfa,0x7e,0x2b,0x66,0xfb,0x7c,0x81,0xea,0x5c,0x7d,0xdd,0x86,0xf1,0xf5,0x04,0xef,0xf2,0x50,0x12,0x72,0x42,0x22,0x23,0x74,0x7f,0xe7,0xed,0xd9,0xce,0x78,0x10,0x83,0x37,0xd0,0x81,0x97,0x4a,0xac,0xc2,0xe5,0x13,0x91,0x83,0xe2,0x6e,0xff,0x5a,0x0b,0xc3,0x4d,0xc1,0x3e,0x97,0x16 +.byte 0x96,0x69,0x39,0x9e,0x1d,0x6b,0x16,0x82,0xa2,0x94,0x0d,0x50,0xdd,0xa3,0xda,0x9d,0xda,0x3f,0x46,0xce,0x6c,0xd0,0xdf,0x6e,0x1b,0x17,0x47,0x51,0x74,0x6f,0xe9,0xa4,0x6b,0xae,0xd2,0x6e,0x5b,0xc0,0x26,0xc6,0x0b,0x84,0xb1,0x39,0xcf,0x9e,0x7c,0x18,0x52,0xd7,0x8f,0x33,0xae,0x3d,0xaf,0x3d,0x1a,0xba,0x3f,0x09,0x76,0x22,0x1d,0xf3 +.byte 0x42,0x14,0x4f,0x06,0xc7,0x33,0xc1,0x2d,0x58,0x1b,0x4c,0xc0,0x3a,0x29,0xa6,0x5e,0x19,0x26,0xdf,0x36,0x18,0xa9,0xc5,0xe9,0xd3,0xb1,0xae,0x86,0xa8,0x7f,0xd9,0xb4,0x18,0xef,0x9c,0x46,0xb6,0xf2,0xb2,0xb6,0x6e,0xe2,0xf8,0x5f,0x27,0xea,0x76,0xd3,0x40,0x68,0x94,0x66,0x8a,0xf5,0x9f,0xee,0x0c,0xe5,0xae,0xb6,0xba,0x87,0x42,0x40 +.byte 0xc9,0x83,0xac,0xb4,0x2c,0xec,0x74,0xb7,0x55,0x17,0x0b,0x1e,0x45,0x1a,0x87,0x9d,0x52,0xce,0xb7,0x58,0x2f,0x45,0xc7,0x7d,0xf3,0xd3,0x11,0x2e,0xf4,0xd8,0xc0,0xb8,0xc3,0x31,0x45,0x68,0x40,0xe8,0x8a,0x33,0x20,0x9a,0x06,0xa8,0x18,0x53,0xb2,0x73,0xa1,0x57,0xac,0x8f,0x56,0xeb,0x8e,0xa4,0xfc,0xd6,0x76,0x7e,0x81,0x62,0x2c,0x17 +.byte 0x49,0xb4,0xcc,0x15,0x66,0xcb,0xa2,0x3c,0x29,0xf0,0x73,0x0e,0x9a,0x34,0x16,0x6d,0x43,0x62,0x20,0x89,0x14,0xae,0x8b,0x5d,0x61,0x54,0xa1,0x82,0x49,0x73,0xb9,0x2b,0x48,0xd4,0xe3,0x21,0x37,0x5e,0x4d,0xbf,0xd0,0x72,0xa4,0x23,0xdb,0x7c,0xd9,0x45,0x77,0x8a,0x24,0x23,0x56,0xcd,0x84,0x80,0x44,0x12,0xce,0x99,0x39,0xbd,0x77,0xff +.byte 0x8c,0x62,0x8d,0x56,0x77,0x24,0x40,0x11,0x22,0xab,0x28,0xd6,0x75,0x2b,0xbb,0xc1,0x51,0xd6,0x5e,0x61,0x1c,0xe9,0xac,0x36,0x99,0x52,0x44,0xa5,0x20,0xdb,0xe0,0x12,0x9a,0x45,0x8f,0x7f,0x47,0xf9,0xa3,0x91,0x18,0x2b,0x51,0x9a,0x9f,0x3f,0x7d,0x36,0xde,0x71,0xae,0xca,0x62,0x62,0x16,0xda,0x19,0x9c,0x84,0xce,0xde,0x93,0x22,0xde +.byte 0xaf,0xe7,0x91,0x09,0xe8,0xf0,0x0e,0x07,0x71,0xdf,0x48,0xcd,0x8a,0x77,0x19,0x3c,0xd6,0xef,0x8e,0xe0,0x49,0xdf,0xcb,0xd6,0x34,0x78,0x7f,0x42,0xc2,0x6e,0x7a,0x50,0x53,0xee,0xbf,0x73,0x4b,0xd4,0x4f,0x06,0x18,0x26,0x67,0x51,0x54,0xa3,0x40,0xe6,0xb3,0x61,0x4b,0xfd,0xee,0x62,0x00,0x44,0x6c,0x0d,0x8b,0x2f,0x4d,0x06,0x17,0x41 +.byte 0xee,0x8b,0xde,0x1f,0x80,0x36,0x58,0x3e,0x0a,0x53,0x0a,0x83,0xf9,0xba,0xbd,0x91,0x6a,0x20,0x32,0x42,0x6c,0x85,0xdc,0x84,0xfd,0xce,0x57,0xbe,0xf8,0xa5,0x2c,0x7e,0xf9,0x1b,0x07,0xf4,0x32,0x13,0x32,0x79,0xdc,0x91,0xfc,0xc0,0x18,0xe6,0x1e,0xb2,0x67,0x9d,0x08,0xd2,0x89,0xa2,0xb1,0xbf,0x37,0xe1,0x3f,0x9e,0xb5,0x17,0xf7,0x2f +.byte 0x9a,0x4f,0x3c,0xea,0x5d,0x48,0x56,0x48,0x35,0x17,0xe9,0x5a,0x99,0xa7,0x2e,0x25,0x4f,0x96,0xa6,0x3d,0x3c,0xf8,0xdc,0xe7,0xe5,0x98,0x46,0xf7,0x10,0x16,0x4f,0xb0,0x7b,0x48,0x06,0xbb,0x9a,0x5a,0xad,0x32,0x49,0x92,0x39,0xb2,0xfe,0x01,0x1a,0x5e,0xcc,0xf7,0x0d,0x65,0x1c,0xf5,0x3d,0xb3,0x40,0x28,0x06,0x6e,0xbb,0x74,0x2a,0x95 +.byte 0xe9,0x62,0x2a,0xe2,0x19,0x38,0xc6,0x0d,0x46,0x30,0x6d,0x90,0xa5,0x68,0x4d,0x89,0xf0,0xf4,0xaf,0x52,0x11,0x8a,0x47,0x65,0xc0,0x6d,0xee,0xde,0xbc,0xed,0xf2,0x94,0xf3,0xfb,0xfd,0x2f,0xea,0xd5,0x36,0x89,0x8a,0x22,0xb8,0x75,0x3c,0xda,0x8d,0x3f,0x71,0xe5,0x50,0xb8,0xef,0xfc,0xa1,0x34,0x4a,0xb0,0x56,0x64,0xaf,0x28,0x0c,0x7a +.byte 0x28,0x3e,0xc8,0x83,0xc2,0xbb,0x89,0xc4,0x29,0x7f,0xc9,0xe7,0x4e,0xcb,0xdc,0x8f,0xe8,0xa4,0xdc,0x0d,0xcc,0xa0,0x16,0xda,0xa9,0x34,0x61,0xec,0x64,0xa7,0xf4,0x47,0xe9,0xee,0xbf,0xc6,0x4b,0xc5,0x01,0x65,0xe4,0xe0,0x12,0xd6,0x27,0xda,0x30,0xb5,0x60,0x72,0xe1,0xee,0x38,0x23,0x6c,0x9d,0xbb,0x83,0x01,0x4b,0x26,0x9a,0x68,0xb3 +.byte 0x89,0xb3,0xe0,0x10,0x22,0x58,0xef,0x2d,0xd4,0x86,0xab,0xab,0xc4,0xd8,0x9c,0x56,0xe8,0x54,0x40,0x86,0x11,0xd2,0x6b,0xc0,0xaf,0xfc,0x4a,0xef,0x24,0x38,0x79,0x32,0x54,0x26,0x8b,0x7e,0x02,0xad,0x86,0x9d,0x40,0x65,0x28,0x28,0xa3,0xa6,0xe4,0x07,0x29,0x3a,0xbb,0x81,0xed,0x17,0x54,0x51,0x35,0xc6,0x88,0x9c,0x63,0x7e,0x73,0x02 +.byte 0x28,0x13,0x4b,0x33,0xc0,0x68,0xbc,0xae,0x8c,0x59,0xd4,0x84,0x1d,0x41,0x86,0x5a,0xf6,0x14,0x50,0x13,0x88,0xca,0xc8,0xb8,0xfc,0x61,0xeb,0xe6,0x69,0x70,0x4a,0xa5,0xa5,0x36,0x4b,0xac,0xca,0x00,0x28,0xae,0xb0,0x03,0xef,0xe3,0x92,0xad,0x97,0x32,0x05,0x8c,0x93,0x95,0x45,0xd5,0x75,0x66,0x11,0xd3,0x6f,0x7f,0x5f,0x35,0x44,0xb7 +.byte 0xd7,0x34,0xcf,0x8c,0x4a,0x61,0x68,0x63,0x3f,0x92,0x54,0x01,0x3c,0x25,0x2d,0x6f,0x4a,0x2d,0x55,0xff,0x3f,0x86,0x85,0x9f,0xc2,0xa1,0xde,0x6b,0xbf,0x7e,0xb4,0x7c,0xc1,0x80,0x73,0xf5,0x3b,0x85,0xae,0x36,0x1a,0xdf,0x00,0x52,0xb7,0x70,0xa9,0x42,0x79,0xd2,0x26,0xf8,0x3b,0xeb,0x9f,0x2e,0x15,0x33,0xc8,0x85,0x2d,0x63,0xb2,0x89 +.byte 0x24,0x8e,0xfd,0xe6,0xdf,0x01,0x80,0x8b,0x27,0xe3,0x7e,0x17,0xc2,0x4e,0x26,0xa2,0xe1,0x95,0x81,0x3a,0xdd,0x2a,0xf4,0x75,0x21,0x64,0x11,0x04,0x5e,0x00,0x39,0xf0,0x08,0x68,0x67,0x09,0xa8,0x9b,0xbe,0xb7,0x62,0x0e,0xa8,0x69,0xcd,0x4e,0xaf,0xc8,0x4f,0x92,0x3d,0x8e,0x35,0x60,0x70,0xb3,0xda,0x2f,0x38,0x80,0x6f,0x5e,0xcc,0x3b +.byte 0x6e,0x05,0x26,0x14,0x9d,0x36,0x72,0x7d,0x09,0xb8,0xb7,0xa1,0xf7,0x5f,0xb3,0xe1,0xd6,0xc5,0x54,0x4e,0x80,0x4d,0x06,0x8f,0x84,0xbb,0xb6,0x65,0x87,0x2c,0x19,0x4a,0x74,0x3c,0x34,0x62,0x32,0xad,0x4c,0x06,0xa3,0xbb,0xfb,0x4f,0x4f,0x9d,0x91,0x84,0x63,0x75,0x34,0xcc,0x6b,0x00,0xa1,0x5a,0x63,0x03,0x8d,0x1e,0xdb,0xa4,0x0c,0xe6 +.byte 0x3d,0xd1,0x94,0x77,0xd8,0x77,0x8c,0x39,0x48,0x78,0xb1,0xb5,0xa2,0x41,0xd0,0x6d,0x27,0x20,0x4a,0x41,0x88,0xa5,0x78,0x3f,0x51,0x72,0x8c,0x80,0xe7,0x37,0x81,0x8b,0x06,0x46,0x58,0xab,0x23,0x85,0x47,0x89,0x39,0xf9,0x14,0xfe,0xbf,0x07,0x7c,0x47,0x8e,0xcc,0xd7,0x08,0xfe,0x5d,0xee,0xf9,0x94,0xa2,0x83,0x81,0x8a,0xfd,0x0f,0x9a +.byte 0xa7,0xe4,0x59,0xad,0xe6,0x1f,0xed,0x5d,0xe4,0x20,0xd6,0x2f,0xa7,0xd3,0xcf,0x5b,0x18,0x6d,0x24,0x79,0x66,0xd9,0xaa,0x44,0xfa,0x8d,0x74,0x60,0xcc,0x7e,0xbf,0x4f,0x0e,0xe3,0x9c,0xa5,0xe4,0xff,0x14,0x05,0xff,0x24,0x62,0x94,0x00,0x7a,0x58,0xe5,0x0b,0x3b,0xe8,0xee,0xe1,0x4d,0x4e,0x34,0x26,0xba,0x70,0x10,0x5e,0x14,0x4f,0xa5 +.byte 0x7a,0x9e,0x7b,0x28,0x99,0xbe,0x94,0x4a,0xcb,0x8d,0x65,0x60,0xa0,0x6e,0xc7,0xbc,0x51,0xba,0xb5,0x07,0x97,0x25,0x42,0xb7,0x2c,0x0e,0x9b,0xfc,0xfb,0x35,0x6f,0x74,0x10,0xce,0x25,0xdb,0xa9,0x7c,0x11,0x61,0x43,0xf9,0x19,0xbf,0xe2,0x21,0xa3,0x57,0x3c,0x41,0x0a,0x15,0x4e,0x7f,0x6b,0x38,0xb6,0x73,0x41,0xa2,0x4e,0x8e,0xb9,0x44 +.byte 0xee,0x2a,0x2e,0x0a,0x9e,0x85,0xf1,0x6e,0x93,0x72,0x42,0x50,0x55,0xe1,0xc6,0x18,0x11,0x92,0xf7,0xbf,0x05,0xd8,0xb6,0xbc,0x2b,0xd5,0xe0,0xd3,0x9b,0x64,0xc4,0xdd,0xb0,0xb3,0x46,0xd8,0xfb,0x73,0xea,0xed,0x06,0x96,0x16,0x9e,0xf6,0xc6,0xe8,0xbe,0xae,0x00,0x2f,0x5a,0xf4,0x1f,0xb5,0x28,0x7c,0x75,0x76,0x68,0x74,0xa2,0x57,0x0e +.byte 0x6c,0xfa,0x2d,0xbe,0x34,0xf1,0xc9,0x2b,0x83,0x58,0xe7,0x2a,0x87,0xdb,0x47,0xae,0xc7,0xc2,0x78,0x50,0xed,0x20,0xdf,0x30,0x38,0xdd,0x84,0xa9,0x6b,0x00,0xb1,0x7b,0xbb,0x69,0xd3,0xbe,0xed,0x3d,0x99,0x6e,0x39,0x42,0x75,0x8a,0x6c,0x7c,0xa5,0xcf,0xc9,0xcf,0x11,0x14,0xb3,0xaf,0x72,0x00,0x3b,0x58,0xdd,0x2a,0xe1,0x44,0xa7,0x51 +.byte 0x15,0x05,0x1b,0x18,0x49,0x07,0x90,0x4c,0xbc,0x99,0x88,0x64,0xf6,0x14,0x0b,0x99,0xc0,0x84,0xc9,0x06,0x32,0xf0,0xec,0x19,0x8d,0x4a,0xb8,0xdb,0x32,0xb4,0x5e,0xc9,0x0c,0x24,0xf0,0xad,0xdc,0xf4,0x32,0x3b,0xf6,0x68,0x28,0x4a,0xa5,0x5b,0xb7,0xd5,0x00,0x35,0xf8,0x56,0x03,0xa3,0x86,0xa0,0x8a,0x1b,0x53,0xb5,0x58,0x73,0x8c,0xf9 +.byte 0x2b,0xd8,0xcb,0x88,0xe7,0x7e,0x79,0x68,0x13,0x5d,0x7d,0x23,0xc4,0xec,0x9c,0xf4,0x95,0x97,0xbf,0xb2,0xd9,0xdf,0x38,0xe8,0xa2,0x79,0xf7,0xe8,0x36,0x80,0x59,0x3f,0x58,0x2f,0xf7,0xf9,0x32,0x73,0xdd,0xd6,0x9e,0x20,0x1a,0x29,0xab,0xc1,0x77,0x14,0x71,0x3c,0xde,0x90,0xe9,0xea,0xdb,0x78,0x14,0xa3,0x89,0x43,0xf1,0x42,0x43,0x3f +.byte 0xe7,0x67,0x32,0x3d,0x65,0xdc,0xa4,0x79,0x8f,0x81,0xa5,0xb0,0x94,0x0f,0x96,0xf5,0x82,0xcc,0x47,0xc1,0x29,0x39,0x70,0x7a,0xf3,0x49,0xf5,0x09,0x43,0x50,0x56,0xd6,0xea,0xc4,0x35,0xa5,0xa2,0x8a,0xbe,0xc0,0xe3,0xfe,0x4c,0xa2,0x83,0x09,0xab,0x72,0x8a,0x96,0x7c,0x01,0x70,0xb2,0xd5,0x62,0xb7,0x67,0x59,0x36,0xcf,0x56,0x2d,0x14 +.byte 0xc2,0x69,0x49,0x52,0x4e,0x7c,0x45,0x4b,0xef,0xcd,0x79,0xcd,0xe6,0xa6,0xd0,0xbe,0x10,0x1e,0x18,0xca,0xe7,0x8d,0x65,0xb1,0x17,0xc7,0x2c,0xc8,0x2a,0x5b,0xe8,0x08,0x11,0x15,0xea,0xa9,0x43,0x7b,0x70,0x04,0x0c,0xc8,0xca,0x67,0x18,0x18,0x12,0x16,0xc2,0xd3,0xf2,0x0a,0xc7,0x01,0xa9,0x97,0x61,0xf6,0xa7,0x44,0x9a,0xb3,0x67,0xdc +.byte 0x07,0x63,0x02,0x02,0x2e,0x58,0x80,0xa9,0x95,0xa0,0x8e,0x86,0xb6,0xf6,0x14,0x13,0x0a,0xea,0xf1,0x6d,0xd9,0x98,0x37,0x12,0xdb,0x67,0x1b,0x13,0x8e,0xd1,0xfa,0x2f,0x98,0x53,0x3c,0xd7,0x56,0x55,0x42,0x2f,0x64,0x59,0xd5,0xb7,0x6e,0xa8,0x6c,0xc2,0x40,0x11,0xb5,0xa1,0xc0,0x5c,0x45,0x87,0x91,0xb1,0x1c,0x4e,0xa9,0xf6,0x72,0x57 +.byte 0x50,0x8e,0xc5,0xfc,0x64,0x59,0x52,0x82,0xb0,0x75,0xc3,0x98,0xff,0x32,0xce,0xa4,0x39,0xb8,0xa4,0x61,0xb4,0x53,0x3f,0xc7,0x80,0x35,0x48,0xaf,0xa8,0x67,0xfe,0xa1,0x1d,0x3c,0x95,0xb5,0x63,0x1c,0x3a,0x2c,0x68,0xfa,0x98,0x8b,0xa7,0x19,0x29,0x79,0xe4,0x9b,0xff,0x8f,0x15,0x9c,0x65,0x60,0xd2,0xa9,0x4f,0xd5,0xb2,0x57,0xff,0x32 +.byte 0x4c,0x96,0x82,0x6b,0x09,0x6c,0x74,0x55,0x00,0x5c,0x68,0x68,0xd5,0x9b,0xd4,0xdf,0x3d,0x2d,0xb9,0x0b,0xf5,0x2c,0x87,0x35,0x2a,0xc0,0xc0,0xc9,0xd7,0xa1,0x76,0x30,0x82,0x46,0xd8,0x24,0x6e,0x27,0x02,0x71,0x57,0x5c,0x43,0xf2,0x54,0xd6,0xea,0xd7,0x67,0x7d,0xac,0x76,0x91,0xf1,0x26,0x6e,0xaf,0x87,0x05,0x06,0x48,0x57,0xbd,0x67 +.byte 0x1d,0xd7,0x07,0xcd,0x41,0x02,0x49,0x6c,0x8c,0xe1,0xe3,0x00,0x78,0xbe,0x28,0x84,0x16,0x44,0xb1,0x0d,0x6d,0x40,0xfe,0xab,0x7e,0xf6,0x6b,0xff,0xfa,0xe1,0xc7,0x9d,0x56,0x62,0xf1,0x68,0xba,0x76,0x34,0x8f,0x54,0x20,0x49,0xf5,0xa2,0x54,0x52,0xca,0x42,0xed,0x4f,0x9b,0xdf,0xcf,0xfb,0xf6,0xee,0x12,0x29,0x43,0x8f,0xf9,0xfd,0xf4 +.byte 0x8a,0xbf,0xae,0x50,0xf2,0x8f,0x46,0xa2,0x97,0x3b,0x2d,0xfb,0x84,0x98,0x61,0xae,0xba,0x36,0x25,0x30,0x8b,0xdc,0xd3,0x08,0x8e,0x7e,0xfa,0x91,0xac,0x4b,0x29,0x6d,0x0c,0x81,0x0f,0xc7,0xc8,0xc4,0x5c,0x48,0x68,0xa7,0x83,0xf3,0x6a,0xc8,0x0d,0x3a,0x9b,0x46,0xb9,0xe1,0x31,0xac,0x3c,0x12,0xa2,0xae,0x74,0xb8,0x91,0xed,0x63,0xba +.byte 0x40,0xb8,0x57,0x58,0x1f,0x1d,0x1a,0x2d,0x98,0x60,0xe8,0xe1,0x84,0x16,0xe5,0xf0,0x1e,0x35,0x58,0x31,0xc3,0x0c,0x49,0x6e,0x13,0x2c,0xac,0x14,0xc2,0xde,0x5f,0x62,0xe5,0x37,0x5b,0x1d,0x71,0x8b,0xc3,0x3d,0xd8,0xaf,0x3d,0x0a,0xef,0x80,0x3c,0x9a,0x4b,0x0a,0x3f,0x0e,0x8f,0x90,0x8f,0x73,0x2e,0xff,0x8e,0x8e,0x87,0xf8,0x46,0x52 +.byte 0xed,0x7d,0x76,0xf3,0xff,0xaf,0x5e,0x62,0x87,0x16,0x9c,0xa6,0x12,0x39,0x13,0xc3,0x62,0x4b,0xd2,0x21,0xa2,0x43,0xfa,0x4c,0x5d,0x75,0x61,0x64,0x5b,0x23,0xcd,0x76,0x86,0x81,0xd6,0xa6,0x25,0xe1,0xc1,0xc6,0x04,0x5e,0x65,0xfe,0x89,0x0e,0x67,0x02,0xeb,0xb9,0x26,0x88,0x81,0x97,0x1e,0x62,0x4e,0xf4,0x4e,0x0d,0xef,0xac,0xcf,0xd7 +.byte 0xc5,0x9b,0x9d,0x3a,0xa2,0x71,0xd7,0xd4,0x72,0xa6,0x66,0x90,0xe2,0xf7,0xb7,0xec,0xe4,0xca,0x9f,0xd1,0xd8,0x5a,0x65,0xff,0x39,0x65,0x78,0x47,0x1c,0x64,0xab,0x1a,0x35,0x2e,0xe2,0xf7,0x67,0xa4,0x7f,0xd5,0xea,0x04,0xee,0x4d,0xf6,0x29,0xe4,0xcd,0x1b,0xcf,0x0a,0xef,0xa1,0x14,0x90,0x0e,0xed,0x1a,0x10,0x63,0xa0,0x56,0x11,0x05 +.byte 0x57,0x94,0x3a,0x11,0xff,0xe0,0xc7,0x33,0x19,0x67,0xd7,0xd0,0xcc,0x76,0x52,0x5d,0x9e,0x10,0xe7,0xd6,0xaa,0x13,0xe8,0x8d,0xa5,0x60,0x66,0x98,0x26,0x11,0x66,0x0f,0x2d,0x4d,0xec,0x28,0x93,0x17,0x3a,0x6f,0x99,0x70,0x00,0x2b,0x66,0xb3,0x49,0x69,0x3c,0x3b,0x03,0xb8,0xc0,0x9b,0x1c,0x96,0xd9,0xd1,0xe1,0x6d,0x8f,0x45,0xce,0x22 +.byte 0xcf,0x48,0x61,0x85,0x10,0x1b,0x3f,0x2b,0x74,0x48,0x61,0x68,0x63,0xe3,0xa3,0x83,0xe2,0xcc,0xa0,0x6d,0x82,0x8b,0xe5,0x42,0xab,0xa7,0x62,0x6c,0x05,0xb4,0x7b,0x65,0xf5,0xd8,0x0b,0x7d,0x61,0xd6,0x5c,0xf0,0xc0,0x03,0x0c,0x51,0xec,0x06,0xad,0x79,0x8c,0x62,0x0c,0xf5,0x8e,0xcb,0x97,0x62,0xf9,0x3e,0x39,0x8d,0x3c,0x2e,0xd1,0xc0 +.byte 0x5f,0x98,0xea,0xb5,0x26,0x19,0xf5,0x93,0xbb,0xf8,0xd4,0xd5,0x35,0xee,0x1f,0xf8,0x71,0x81,0x0e,0xe6,0xe9,0xf3,0x2c,0x80,0xa8,0x15,0x35,0x1e,0xda,0x07,0x41,0x39,0x8a,0x19,0x1f,0x70,0x99,0xbe,0x3d,0x5c,0x1f,0xf6,0x72,0x85,0x73,0xea,0xb5,0x61,0xbb,0x77,0xaa,0xef,0xc7,0x2c,0xed,0x1e,0xa6,0xfd,0xc9,0xde,0xa9,0x82,0xba,0x19 +.byte 0x04,0x17,0xf7,0xa1,0x59,0x5c,0x7d,0x8d,0xe7,0x1c,0x89,0x7f,0xe1,0x02,0xd3,0xb0,0x46,0x6c,0xcf,0xde,0xf0,0x0b,0x00,0x43,0x8d,0xd6,0xe6,0xf7,0xc8,0x83,0x20,0x77,0x8b,0x9f,0x14,0xea,0x2b,0xb2,0xd2,0x41,0xfd,0x96,0x7c,0x0d,0x05,0xb9,0x5a,0xa0,0x83,0x50,0xde,0x0e,0xc6,0xa6,0x29,0x55,0x12,0x8e,0x2f,0x0a,0x5c,0xcd,0xae,0x92 +.byte 0x76,0x84,0xc9,0x8a,0x81,0xe5,0x3e,0xf0,0xe6,0x5b,0xe4,0x21,0xfb,0x4c,0xb6,0x0a,0x7b,0x7f,0x7e,0xab,0xdc,0x15,0x44,0xf8,0xeb,0x23,0x21,0x31,0xef,0x98,0xec,0x84,0x69,0x34,0x29,0x99,0x03,0x8a,0x12,0x8e,0x28,0xdd,0x00,0x6a,0xa3,0xe7,0x08,0x17,0x35,0x2a,0x42,0x8a,0xcb,0x4a,0x7b,0x1c,0xd2,0x74,0x4f,0x6a,0x8c,0x85,0x1c,0xd6 +.byte 0x05,0x3a,0xfd,0xdf,0x1c,0xa5,0x59,0xbb,0xdb,0xe3,0xa7,0x59,0xb1,0x67,0x3d,0xa4,0x71,0x4d,0x6c,0x99,0xe0,0xa7,0x8c,0xfa,0x96,0x1f,0x8d,0x0c,0xa7,0xc8,0xce,0xa3,0xbf,0x4d,0xc7,0xa9,0xb7,0xfd,0x04,0x58,0xcd,0xd7,0x20,0xb1,0xb9,0xf5,0x06,0x70,0x1b,0xdd,0xf4,0x1c,0xdc,0x32,0xa0,0x90,0x0d,0xb2,0x91,0x14,0x05,0xa2,0xf7,0xb7 +.byte 0xb6,0xd2,0xf1,0x30,0x75,0xcc,0x78,0x0d,0x56,0x70,0x64,0x02,0xe7,0x83,0x97,0x65,0x63,0x4b,0x64,0xff,0x8b,0x62,0xc9,0xa4,0x6e,0x96,0xbf,0xd3,0xeb,0x74,0xc5,0x1f,0xdb,0x1c,0xf3,0xca,0x54,0x7d,0x8d,0xd9,0xec,0x18,0xd8,0x99,0xd1,0xa5,0x70,0x8a,0xc5,0xdc,0xa0,0xcb,0xb7,0x52,0xe3,0xe6,0x88,0x0c,0x5a,0x42,0xde,0xe6,0xd8,0xc4 +.byte 0x39,0xe5,0x6c,0x0b,0xd4,0xa5,0x9b,0x51,0xa2,0x3d,0xc5,0xc7,0x17,0x17,0xb8,0xd8,0x09,0xad,0xeb,0x67,0x47,0xe0,0x88,0xef,0x1d,0x22,0x18,0x25,0xdc,0x32,0xb2,0xf7,0x47,0xc5,0xb3,0x0b,0x57,0x01,0x67,0xac,0xc3,0x9e,0xb0,0xa8,0xd7,0xce,0xb2,0xcd,0xea,0x3b,0x61,0xbb,0x24,0xad,0x91,0x7b,0xa2,0x9a,0xb3,0x63,0x56,0xe2,0x9d,0x69 +.byte 0x9e,0xd7,0x5f,0x5f,0x47,0x9f,0xae,0xf6,0x09,0xb1,0x9e,0x22,0x35,0xaa,0x55,0x0b,0xfc,0x70,0x96,0xfd,0x53,0x8a,0x37,0xaf,0x2d,0xa2,0xc5,0x49,0x5b,0x1e,0x32,0x47,0x9d,0xc3,0xb4,0x46,0xf3,0x54,0xdb,0x3f,0xb9,0x69,0x9e,0x8b,0xad,0x11,0xb2,0x68,0xe8,0x27,0x0d,0xca,0x33,0x1c,0x86,0xb2,0x2c,0xaa,0xc2,0x15,0xf9,0x6e,0xed,0x30 +.byte 0x71,0x08,0xeb,0x93,0x1d,0x16,0xc5,0x34,0x73,0x65,0x7a,0x19,0x2b,0xa7,0x3d,0xe6,0x88,0xb5,0x0f,0xa0,0x92,0x91,0x22,0x9d,0x01,0xf3,0xf4,0x57,0x9f,0xd9,0x23,0x1b,0xbd,0xd7,0xd5,0x11,0xc9,0x24,0xf6,0x36,0x30,0x30,0x69,0x95,0x17,0x48,0xf9,0x76,0x71,0xef,0xef,0xc0,0x00,0x9c,0x7d,0x87,0xdc,0xdc,0x1a,0x32,0x82,0x7a,0x13,0xc2 +.byte 0x9f,0x53,0xc2,0x7d,0x4d,0xbf,0xbe,0xf5,0x9d,0xc8,0x81,0x5b,0x81,0xe9,0x38,0xb6,0xa5,0x40,0xa5,0xd4,0x6f,0x0c,0xea,0xf1,0x52,0x59,0x37,0x3b,0xc2,0xb2,0x5f,0x10,0xdf,0x22,0xf7,0x77,0xe8,0x66,0xb0,0x97,0x91,0x5f,0xc2,0x18,0x8d,0x17,0x40,0xd1,0x6d,0xde,0x6e,0xf0,0x6c,0x1f,0x4e,0x9b,0x15,0x83,0x9b,0x70,0x21,0x2b,0x98,0x46 +.byte 0xbf,0xa5,0x82,0xac,0x63,0xac,0xd7,0x52,0xec,0x2c,0xf2,0xe4,0xe0,0x2a,0xbf,0x7e,0xa2,0xd2,0x9d,0x0d,0xf2,0x9b,0x79,0x5f,0x22,0xb0,0x6d,0x22,0x2e,0xed,0xe2,0x4f,0x73,0xc5,0x89,0xcc,0x4a,0xaa,0x9a,0x7e,0xab,0x95,0x25,0xa7,0x9d,0xf4,0xc2,0xe8,0x42,0x6e,0xd3,0xf9,0x25,0x54,0xb9,0x1f,0xa9,0x16,0x9c,0x22,0x7a,0xf0,0xa6,0xac +.byte 0x8b,0x9d,0xe6,0xe3,0x93,0x4e,0x65,0x3a,0x39,0x3e,0xf5,0x41,0x38,0x02,0xb7,0x37,0xd4,0xdc,0xea,0xc5,0x53,0x0e,0x52,0x85,0x96,0xc0,0xa7,0x21,0xbf,0xe7,0xca,0x12,0x1c,0x59,0x33,0xe4,0xd5,0x70,0x6b,0x25,0x54,0x24,0x58,0x48,0x1b,0x65,0x6e,0x7e,0xe6,0x84,0x39,0x38,0xbc,0xdf,0x96,0xbc,0x39,0xdf,0x8f,0x36,0x9e,0x3a,0xda,0x02 +.byte 0x86,0xe2,0x9f,0xb7,0x3a,0xd0,0xdb,0xc2,0x5d,0xb0,0xde,0x31,0x73,0x43,0xe5,0x4b,0x6a,0xa1,0x6d,0xaa,0xca,0x34,0xfa,0xa9,0xaf,0xec,0x05,0x2a,0xdb,0x82,0xa1,0xdc,0xdc,0x3d,0xb5,0x92,0x42,0x28,0xdc,0x93,0xec,0xab,0x9b,0x75,0xae,0x7c,0xbf,0x9b,0x25,0x01,0xb1,0xc8,0x3b,0x47,0xb6,0xfd,0x11,0x6f,0x4b,0xaa,0x6f,0xdf,0x1f,0x15 +.byte 0xc2,0xf3,0x87,0x4a,0xaf,0xf7,0x41,0x64,0x5a,0x19,0xa0,0xc4,0x4f,0x58,0xe8,0x19,0xe0,0x84,0x44,0xc7,0x65,0x0c,0xf1,0xff,0xcb,0x73,0xb2,0xac,0x25,0x28,0xe1,0xd4,0x03,0x16,0x3c,0x1c,0x24,0x3a,0xfc,0x2b,0x7e,0xcb,0xa3,0xba,0xb7,0x78,0x87,0xbe,0x95,0x06,0x27,0xb8,0x16,0x72,0xe4,0x24,0xa6,0x5d,0xe7,0x5e,0x93,0xa9,0x96,0xfd +.byte 0x01,0x1d,0xb8,0x7c,0x85,0x3c,0xe3,0xc9,0x56,0x68,0xcd,0xd9,0x79,0x97,0x50,0x39,0xfe,0x96,0x93,0x50,0xae,0xde,0xcd,0x8d,0xa0,0x38,0x31,0xba,0xca,0x21,0xff,0x19,0xea,0x44,0x95,0x4d,0xba,0xae,0xe2,0x62,0xd2,0x82,0x60,0x0c,0xb9,0x10,0x40,0x9a,0xaf,0x9b,0x17,0xcd,0xf3,0x26,0xec,0x38,0x13,0x18,0xd3,0xf2,0xd2,0x11,0xa6,0xc3 +.byte 0x3c,0x3b,0xe8,0xa0,0x49,0xba,0x4e,0x07,0xec,0x44,0x75,0x1c,0xc9,0x2f,0x68,0x64,0x02,0x1d,0x14,0x35,0x80,0xd8,0xa8,0x53,0xde,0x44,0x65,0x72,0x37,0x28,0x61,0x5f,0xa1,0x58,0xea,0x17,0xb3,0x89,0x25,0xf7,0xcb,0x87,0xe6,0x43,0xc5,0xc3,0xf3,0xd1,0xf5,0x1f,0x18,0xe9,0xd1,0x05,0xd9,0x85,0x38,0xf0,0x5e,0x26,0x35,0xf2,0x72,0x92 +.byte 0x34,0x2f,0xea,0xdd,0x7b,0x64,0xac,0x1d,0x78,0x41,0x56,0x83,0x7d,0x83,0x83,0x59,0xbe,0x9f,0x81,0x90,0x00,0x1f,0x04,0xd8,0xd8,0x8e,0xd9,0xeb,0x12,0x16,0x96,0x81,0x61,0x96,0xe8,0x7b,0x36,0x7b,0x26,0x9b,0x43,0x1e,0x0e,0xc2,0x59,0xdf,0x8f,0xb4,0x91,0x74,0x2e,0x1e,0x6d,0x20,0x70,0xe7,0x3c,0x39,0xe3,0xa8,0x62,0x66,0x32,0x63 +.byte 0x7d,0x89,0xb6,0xad,0x69,0x38,0x2c,0x21,0xe5,0x02,0xcc,0x93,0x8a,0x65,0x71,0x65,0x02,0x5c,0xeb,0xc9,0x70,0xf3,0x81,0xce,0x65,0x37,0x22,0xb7,0x47,0x3c,0xd6,0x3d,0x29,0x65,0x29,0xba,0xf9,0xae,0xd9,0x1f,0xd7,0x38,0x88,0x95,0xa9,0x66,0xa8,0x77,0x75,0x4a,0xf9,0x2e,0xd9,0x63,0x75,0x80,0x90,0x82,0x39,0x8b,0x21,0x58,0xf4,0x2e +.byte 0x2d,0x1f,0x7f,0xcb,0x33,0xdb,0x9b,0x9b,0x31,0x21,0x4e,0x6e,0xdb,0x0f,0x1f,0x69,0x22,0x97,0x69,0xd7,0x7f,0x2e,0xd7,0xce,0x6c,0xe4,0xc0,0xe7,0x27,0x82,0xe6,0x8a,0xf8,0xae,0x46,0x2d,0x5a,0x45,0x82,0xce,0xb6,0x49,0x84,0x15,0x4a,0x54,0xa6,0x76,0xf3,0x29,0x28,0xc0,0x05,0x82,0xae,0x7d,0x85,0x41,0xb0,0x87,0x67,0x44,0x37,0x46 +.byte 0x3e,0x47,0xbc,0x00,0x7c,0x05,0xd3,0xdc,0x9a,0x31,0x49,0xf8,0x48,0x99,0x57,0x4a,0x2b,0xe7,0xcf,0xb2,0xa7,0xf0,0xcf,0xc7,0xf5,0xfd,0x73,0x59,0xf1,0xe4,0x86,0xb5,0x5d,0xce,0x6d,0xbf,0xc6,0xe5,0xa9,0xca,0x75,0xe9,0x69,0xe6,0x09,0xab,0x66,0x17,0x09,0xe9,0xbc,0x14,0xd8,0x6f,0xe9,0xc2,0x87,0x39,0x2f,0x87,0x1e,0xb8,0x16,0x08 +.byte 0x10,0xee,0x1c,0x2f,0x47,0x7d,0xa3,0x5b,0x1f,0x1f,0x5d,0x95,0xd0,0xa4,0xbb,0x08,0xc2,0x47,0xab,0x46,0x3c,0xbb,0xbe,0x3a,0x64,0x82,0x40,0x08,0x75,0x03,0x02,0x6e,0x6a,0xab,0x6b,0xd4,0x90,0xa7,0x28,0x7a,0xb4,0x8b,0x1f,0x6b,0xcc,0x16,0x30,0x16,0xf5,0xc6,0xd8,0x4a,0xed,0xc9,0xc7,0xac,0x0f,0x75,0x1b,0x13,0xe3,0x45,0x6d,0x22 +.byte 0x7e,0x3d,0x59,0x55,0x87,0x8d,0x04,0xee,0x85,0xac,0x98,0x0c,0x52,0x5b,0xe6,0x92,0x04,0x31,0xdf,0x7c,0x44,0x4d,0x06,0xbe,0xb2,0x5a,0x95,0xef,0x29,0x75,0x9b,0xb2,0xe7,0xb8,0x83,0x18,0x82,0x23,0x4e,0x66,0xe5,0xdd,0x47,0xa1,0x6b,0x33,0x4e,0x9c,0x13,0x0e,0x0a,0x8a,0x5c,0xba,0x7b,0x2f,0x6c,0x72,0x78,0x86,0xd2,0xf8,0xbd,0x1b +.byte 0x4b,0x9e,0xe0,0x99,0x46,0x7f,0x24,0x0f,0x1b,0xda,0x85,0x87,0xe9,0xda,0x96,0x25,0xc6,0x81,0x77,0x8b,0x56,0xae,0x7a,0x9c,0x47,0x34,0xe1,0xac,0xf2,0xba,0x52,0x95,0xf8,0x56,0x26,0x66,0xf0,0x53,0xcc,0xc4,0x6f,0x46,0x94,0x10,0x22,0x69,0xb1,0x93,0x7b,0x51,0xb7,0xb8,0xdd,0x42,0x67,0x51,0x6d,0x9c,0xb2,0xbd,0xdb,0xdd,0x19,0xa2 +.byte 0x25,0x13,0xfe,0x42,0xca,0x36,0xeb,0xce,0x15,0x41,0xe7,0x35,0xce,0xa8,0x45,0x56,0x58,0x9f,0x46,0xcf,0x11,0xe7,0xcc,0x40,0x54,0xe4,0x85,0x0d,0x73,0x36,0x7e,0xae,0x38,0x8c,0x56,0xab,0xf0,0x5f,0x5c,0xff,0x14,0x9b,0x46,0x1b,0x35,0xbd,0x03,0x0e,0x2f,0x9e,0xde,0xd8,0x82,0xfe,0xa0,0x09,0xb4,0xb4,0xbd,0x58,0xc0,0xe2,0x01,0xb1 +.byte 0xca,0x5c,0x3d,0xc3,0x18,0x5e,0xc1,0xee,0x61,0x60,0x00,0xca,0x1e,0xf3,0x71,0xd8,0x15,0x37,0xf0,0x2e,0x13,0xa0,0xf7,0xac,0x73,0x4b,0xfb,0x6a,0x27,0x6b,0xde,0x69,0x3d,0x19,0x36,0x4b,0x63,0x55,0xae,0xd1,0x2b,0x66,0x69,0x0d,0x64,0xa7,0x86,0xfd,0x3a,0xb8,0xe6,0x87,0xaa,0x32,0x5f,0xbc,0xa7,0x67,0xde,0x7a,0xe0,0xdd,0xff,0x57 +.byte 0x2c,0xc9,0x25,0x92,0x03,0x91,0xa8,0x0e,0x39,0xe4,0x9a,0xdf,0x21,0x29,0xc7,0xbc,0x93,0x01,0x2a,0x02,0xd8,0xaf,0xbc,0x20,0x57,0xc7,0x37,0x77,0xa7,0xad,0x5e,0x15,0x20,0xcf,0x4a,0x3c,0x22,0x1b,0x92,0xa9,0x05,0x91,0x70,0xb3,0x88,0x4e,0x97,0x58,0xf7,0x33,0x1a,0x05,0x33,0x57,0xdc,0xbb,0x2a,0xba,0xd0,0x22,0xac,0x40,0xbe,0x60 +.byte 0xa2,0x89,0xe6,0x6c,0xf3,0x5d,0xef,0x58,0xb4,0x7c,0x4a,0x28,0xb8,0x16,0xd2,0xe0,0x49,0xf5,0xe8,0xaf,0x84,0x39,0xae,0x1e,0xa2,0x34,0x67,0x42,0x26,0x31,0x93,0x87,0x7a,0xd5,0xde,0x79,0xdb,0x4c,0x7e,0xcf,0x1f,0xef,0x9a,0x4c,0xb9,0x70,0xe2,0x72,0x9b,0xcd,0x30,0xe5,0xf1,0x84,0x44,0x5a,0xff,0x36,0xa2,0x37,0xe7,0x49,0x78,0x63 +.byte 0xbe,0xe0,0x90,0xdf,0xef,0x9e,0xf3,0x55,0x9e,0x8a,0x51,0xe8,0xa3,0x32,0x2d,0xed,0xc8,0x99,0xf6,0x92,0xf9,0x62,0x74,0xa7,0x8d,0xcf,0xa5,0x09,0xb3,0x43,0xb9,0x18,0x70,0x59,0x4f,0xd2,0x7f,0x7e,0xce,0x1e,0x7d,0xe8,0xa9,0xb7,0x29,0x0f,0x86,0x8a,0xac,0x22,0x41,0x98,0xb2,0xc3,0x48,0x3b,0x60,0xcb,0x7b,0x1d,0xc3,0x5e,0x19,0x5b +.byte 0x31,0x57,0x12,0x09,0x41,0x54,0xf8,0x01,0x70,0x02,0x03,0x8a,0x6e,0x8e,0x5b,0x23,0xf3,0xd4,0x13,0xbf,0x51,0xba,0xf9,0x2d,0x6c,0xb9,0xb3,0x90,0xd0,0xa3,0x76,0xfb,0xef,0x85,0x17,0x8b,0x2c,0x05,0xa3,0x06,0x0a,0xaa,0xdd,0xbf,0xd4,0xcc,0xe4,0x96,0x19,0x7f,0x51,0xf6,0x7e,0xa1,0x2c,0x14,0x1c,0x21,0x99,0x28,0x3a,0x0e,0x36,0x1b +.byte 0xf1,0xd7,0x3e,0x29,0x94,0xa6,0x03,0xf7,0xe5,0x6f,0x1b,0x56,0xc8,0xfb,0x2d,0x4f,0x12,0x2b,0xc7,0x3a,0xec,0x5e,0xc8,0x88,0x1b,0xd8,0x65,0x21,0x04,0x0e,0xe2,0x95,0x6d,0x62,0xea,0xeb,0xee,0xbe,0x47,0x0a,0x90,0x26,0xe3,0x85,0xd7,0x1d,0xb5,0xd5,0x56,0x8b,0xc0,0x2f,0x7f,0x01,0xc8,0xac,0x90,0xc3,0x2d,0x10,0xf2,0x11,0x30,0x0c +.byte 0xa9,0x4d,0x13,0xde,0x65,0x6d,0x34,0x68,0x5d,0xad,0x3f,0x7a,0x56,0x3a,0x1f,0xb9,0xd6,0x7b,0x8f,0xe8,0x42,0x2a,0x16,0xb6,0x3f,0xf2,0x4f,0x14,0x8e,0x8e,0x29,0x88,0x68,0x1b,0x10,0x80,0x80,0x47,0x36,0xaa,0x82,0xf5,0xa8,0x97,0xc4,0xcb,0xc2,0xef,0xaa,0x9f,0xdc,0x96,0x4f,0x1f,0xaf,0x39,0x71,0x55,0x8f,0x3c,0xbf,0x26,0x91,0x46 +.byte 0x38,0x59,0xa7,0xd1,0xb5,0x87,0xd6,0x81,0x71,0x17,0x83,0x05,0x40,0x9c,0xf3,0x33,0x4b,0x09,0x06,0xb1,0x69,0xfb,0x43,0x1f,0xef,0x9a,0xfe,0xc3,0x4e,0x4e,0x25,0xe1,0x3a,0xfb,0xf9,0xc9,0x97,0xe2,0x1c,0xa1,0x9a,0x06,0x6e,0xbb,0x16,0x4a,0x9f,0xf4,0x87,0x31,0x38,0x78,0xae,0x77,0x4c,0x42,0x28,0xc4,0x63,0xc0,0x49,0x37,0x4f,0xf9 +.byte 0xeb,0x31,0x0d,0x3e,0x0c,0x8a,0xb7,0x17,0xa7,0x90,0x26,0xc2,0xea,0xa5,0x9d,0xe4,0x4d,0xc6,0x3a,0x33,0x2d,0x47,0x42,0x8c,0xeb,0x50,0xea,0xfe,0x74,0x43,0x06,0xcd,0xa5,0xb1,0x49,0xf0,0x98,0x91,0x25,0xf4,0x8d,0x06,0xd1,0xeb,0x56,0x2c,0xf9,0xc4,0x84,0x02,0x9e,0xf2,0x3a,0xfe,0xb4,0x39,0xce,0xee,0x85,0xb6,0x64,0x6c,0xbc,0x1f +.byte 0xe6,0x86,0x00,0xc3,0xa9,0xb4,0x53,0xdf,0x2d,0x7c,0xc6,0xde,0x2e,0x79,0x25,0x5c,0xbb,0xe5,0xbe,0x33,0xe9,0x58,0x49,0x35,0xbe,0xae,0xbc,0x06,0xdc,0x48,0x9d,0xc3,0x08,0x6f,0xe8,0xb8,0x48,0x67,0xea,0x1c,0x05,0xb4,0xf7,0xe3,0xcc,0xc1,0xb3,0xa8,0x61,0xcb,0xa8,0xf6,0x12,0x52,0x68,0x06,0x36,0x2b,0x15,0x43,0xc9,0x98,0xfe,0xe5 +.byte 0x43,0x11,0x0d,0xc3,0x37,0x38,0x7a,0xcb,0x98,0x14,0xc1,0xaf,0x29,0x36,0x35,0x63,0x74,0x98,0xcf,0x0f,0x44,0xe4,0x6e,0xf7,0x3f,0x6e,0x15,0xe8,0xe9,0x93,0x7b,0x96,0x1b,0x84,0xe7,0x8b,0x83,0x30,0xa1,0xdc,0xc3,0xb8,0x18,0x2f,0xc5,0x34,0xd1,0xa5,0xb9,0xee,0x4a,0x04,0xbf,0x26,0x63,0x29,0xba,0x90,0xb5,0x7c,0x83,0x2b,0x1f,0xe8 +.byte 0x5c,0x9f,0x23,0x40,0x7f,0x9c,0x2f,0x76,0x96,0xd6,0xd5,0x13,0xda,0x5c,0x81,0xa4,0x60,0x60,0xbd,0x5e,0xb3,0xd2,0x2c,0xaa,0x48,0x04,0x74,0x31,0x5d,0xbd,0x46,0xd8,0x8d,0x3f,0x62,0x2d,0x1e,0x17,0x97,0x08,0x71,0x06,0x1b,0x96,0x1b,0xd5,0x80,0xa6,0x41,0x06,0x10,0x6e,0x36,0xd4,0xfb,0x36,0x6d,0x96,0xb8,0x86,0x22,0x34,0xda,0x7e +.byte 0x6c,0x5f,0x3b,0x95,0x35,0x1b,0x42,0x3c,0xf2,0x9d,0xe3,0xe9,0x3f,0x44,0xd5,0x4c,0x60,0x55,0xae,0xbe,0x4f,0xf2,0xb3,0x84,0xa1,0x79,0xdf,0x86,0xf0,0x8f,0xad,0xa5,0xa3,0x4a,0xea,0x5d,0x68,0x34,0x17,0x4c,0xb7,0xd8,0x6f,0x67,0x22,0x85,0xe2,0x16,0xcf,0xba,0xee,0x92,0xeb,0x95,0x8e,0x67,0xb1,0xf0,0xbb,0xb0,0x34,0x2f,0x58,0x49 +.byte 0x56,0x3e,0x81,0x31,0xb6,0xc3,0x2c,0xee,0x2b,0x85,0x72,0xbc,0xe9,0x20,0xaa,0x4e,0x34,0xb9,0x8b,0x32,0x2f,0x9e,0xd7,0x98,0x63,0x9d,0xfd,0x3a,0xe9,0x30,0x49,0x23,0x4a,0xb4,0xcb,0xc5,0xe5,0x78,0xcd,0x22,0x90,0xce,0x9f,0x35,0x13,0xda,0x8f,0x14,0xdb,0x36,0x0f,0x66,0x87,0x62,0x50,0xde,0x52,0x15,0x10,0x67,0x8a,0x5c,0xdb,0x76 +.byte 0x51,0x7f,0x72,0x9b,0x8e,0x91,0x39,0xc8,0x3c,0x34,0x0f,0x3d,0x92,0x07,0xb8,0xef,0x2a,0x8b,0x59,0xbd,0x82,0xc1,0x5c,0x95,0x93,0x0d,0x3d,0x9b,0x51,0x53,0x38,0x6b,0xd0,0xe3,0x5b,0xbb,0xe5,0x6c,0xc0,0xb5,0x71,0xa8,0xd8,0x7d,0x5d,0xbd,0xfc,0x69,0xcf,0xcc,0xa1,0xcd,0x83,0x9d,0x8f,0x46,0x47,0xe7,0x36,0x19,0x9f,0x4d,0xda,0x9c +.byte 0xcb,0x2a,0x47,0x58,0x93,0xbb,0x64,0xa3,0x89,0x53,0xbf,0xc7,0xc2,0xe2,0x65,0x0f,0x4f,0x17,0xc6,0x4c,0x15,0xfe,0x4b,0x95,0xb2,0x79,0x4a,0xb8,0xf6,0xae,0xcc,0xba,0xc3,0x5d,0x18,0xb2,0x8e,0xd8,0x6b,0x43,0x1b,0x2f,0xe1,0x36,0xb2,0xa5,0x22,0xa0,0xc7,0xc0,0x26,0x8e,0x48,0x77,0x0c,0x14,0xdd,0xdc,0xde,0x71,0x98,0xce,0xdd,0x61 +.byte 0x85,0xd9,0x23,0x42,0x7f,0x85,0xc8,0x06,0x81,0x3e,0xa2,0x0f,0x1e,0x3e,0xcf,0x33,0xef,0x43,0x6a,0xc7,0xee,0x3f,0x91,0x68,0x32,0x89,0xd9,0xed,0xdf,0x45,0x33,0x10,0xbb,0xd5,0xef,0x1d,0x3c,0x1e,0x26,0x21,0x4d,0x1a,0x06,0x98,0x60,0x71,0x7f,0xce,0x45,0x4e,0xe3,0x3f,0xfa,0xff,0xcd,0xe2,0x92,0x82,0x2e,0x83,0x69,0x9c,0xc6,0x5c +.byte 0x6e,0xb6,0xec,0x28,0xdc,0x7b,0xdb,0xf3,0x02,0x3a,0xf7,0xad,0x9b,0x7a,0x73,0xb2,0x07,0x70,0x76,0x9d,0xa2,0x11,0xcf,0x89,0xea,0xaf,0x6a,0xd2,0x15,0xeb,0x5a,0x99,0x1a,0x17,0x1d,0xce,0xc0,0x7f,0x50,0x26,0x84,0x07,0xd7,0x7e,0x33,0x27,0x74,0x84,0x18,0x32,0x86,0x32,0x34,0x28,0xe8,0x45,0x21,0xb7,0x26,0x3b,0x11,0xbb,0x9a,0x8b +.byte 0x46,0x8e,0x27,0xf8,0x62,0xb5,0x98,0x6e,0x03,0xee,0x9e,0xcb,0xbc,0x74,0xbe,0x63,0x7a,0x86,0xe5,0x75,0xeb,0x7f,0x14,0xa6,0x96,0x76,0x5a,0x46,0xa9,0xda,0xf1,0x4e,0x0e,0x90,0x59,0x56,0x4a,0x48,0x2d,0x91,0xbe,0x78,0x5b,0xfb,0xf7,0xea,0xab,0x1c,0xc0,0x0c,0x5d,0xba,0xb4,0x7b,0xc7,0x21,0xb1,0xc9,0xa3,0x20,0xe6,0xae,0xee,0x0e +.byte 0xf0,0x3b,0x44,0xd6,0xaa,0x57,0x88,0x1f,0x76,0xc8,0x43,0x07,0x91,0x71,0xa5,0xcc,0x04,0x38,0x01,0x13,0xa6,0xea,0x18,0x48,0x8f,0x09,0x8d,0x37,0x8b,0x6f,0x35,0x36,0x51,0xc6,0x30,0xca,0x9e,0xe2,0xaf,0x0c,0x26,0x14,0xe3,0xbf,0xea,0x0e,0x14,0x88,0x97,0xcc,0xf6,0xc1,0x8f,0xad,0xef,0x2d,0xc1,0x0f,0xad,0x45,0x12,0x7a,0xe6,0x37 +.byte 0x97,0xcb,0x34,0x83,0xd8,0xef,0x34,0x2a,0xce,0xd0,0x21,0x8a,0x7d,0x87,0x7a,0x66,0xf7,0x1c,0xdf,0xa0,0x3f,0xa0,0xf6,0xb3,0x24,0xee,0x6e,0x21,0xe9,0xc3,0x73,0xe4,0xd9,0xc6,0xf6,0xf6,0xac,0x25,0xb7,0xb5,0x64,0x7f,0xcc,0x88,0x3e,0x98,0xe1,0xef,0xa9,0xd2,0x03,0x10,0x4b,0xa3,0xbc,0x3c,0x24,0xfc,0x41,0x36,0x30,0x2d,0xca,0x17 +.byte 0x35,0xd6,0x17,0xa2,0x2b,0x48,0xed,0xd3,0xd7,0x18,0x4f,0x45,0xe9,0x59,0x03,0x35,0xa0,0x80,0x75,0x17,0x48,0xd5,0xea,0x07,0x7a,0x6c,0x3f,0x7a,0x2c,0x02,0x0a,0x7f,0xb5,0x17,0xea,0xf4,0xf6,0xb5,0xf4,0x81,0xba,0x69,0x44,0x81,0x6b,0xff,0xb2,0x43,0xae,0x3d,0x37,0x81,0x91,0x3f,0x6a,0x70,0x35,0x2d,0x06,0x9d,0xa8,0xb5,0xb8,0xc7 +.byte 0x19,0x3a,0x5f,0x59,0x79,0x0b,0x62,0x23,0xa4,0x5b,0x46,0x7b,0x17,0x82,0x19,0x87,0xe8,0xdf,0x09,0xb7,0x50,0x7e,0x40,0xe3,0x71,0x2d,0x09,0xde,0x69,0x2e,0x6c,0x35,0x5c,0x44,0xae,0xb7,0x05,0xb8,0x7e,0xb4,0xe4,0x34,0x05,0x1f,0xd2,0x1f,0xe5,0x79,0x2a,0x15,0xf8,0x8f,0x02,0xc7,0xc8,0x1e,0xe6,0x12,0x83,0x08,0x9c,0x7a,0x2f,0xc6 +.byte 0xc9,0x15,0x0f,0x0f,0x0f,0xa9,0x53,0x16,0x19,0x5b,0x74,0x58,0x6c,0xac,0x21,0x72,0x7f,0xa1,0xae,0xbc,0x34,0x76,0xa6,0x9b,0xbe,0x0f,0x13,0x55,0x50,0x5a,0x8b,0x9e,0xb3,0xf3,0x9e,0x8b,0x61,0xbe,0xb4,0x09,0x71,0x61,0xf0,0xd6,0xaa,0x8c,0x0d,0x0c,0x66,0x31,0x88,0xe3,0x71,0x6a,0xb5,0xaa,0xc0,0x9b,0xce,0x0d,0x79,0x90,0xc1,0x0a +.byte 0xf9,0xfe,0x4d,0x49,0xd0,0x5a,0x63,0xf1,0xfc,0x47,0x71,0x9e,0xbb,0xd1,0x2c,0xef,0xfe,0x90,0x28,0x75,0x82,0xf6,0xa5,0x95,0xea,0x65,0xfa,0xe8,0x04,0xcd,0xb4,0xe1,0x0d,0xb2,0xac,0xd5,0x12,0xf5,0x17,0xbb,0x3b,0x2e,0x52,0x9e,0x7b,0xe7,0x8e,0x86,0x03,0xce,0x77,0x01,0xf0,0x4f,0xb5,0xf7,0xef,0x8b,0x37,0x5e,0x97,0x80,0xbb,0x2b +.byte 0xcf,0x9a,0x63,0x18,0xc5,0x0c,0xfb,0x3c,0x91,0x9c,0x37,0x90,0x76,0x71,0x62,0xbc,0x80,0x40,0x1a,0x74,0xb8,0x1b,0x61,0xb1,0x89,0x4d,0xf7,0x8d,0xd4,0x46,0xef,0x1f,0x3b,0xac,0xe8,0x41,0x62,0x8e,0xea,0x2b,0x56,0x22,0x25,0x37,0x70,0x53,0xcd,0x8f,0x57,0xfa,0xad,0x00,0xc5,0x0c,0x9e,0x57,0xde,0x50,0x07,0x8d,0x80,0xbf,0x22,0x5d +.byte 0x4a,0xbd,0x6a,0xcb,0xfc,0x6f,0xd1,0x56,0x8f,0xd5,0x34,0x8a,0xe6,0xe9,0xa0,0x00,0x06,0x12,0xd8,0xb1,0x49,0x0a,0xbb,0x87,0xe5,0xca,0x75,0x11,0x4c,0x85,0x60,0x77,0xc0,0x90,0x1c,0x14,0x38,0x38,0x3e,0x4f,0xff,0xbf,0xfc,0xa1,0xa1,0xe7,0xb0,0x5d,0xd8,0x1f,0x33,0x07,0x5f,0x04,0x4f,0xc7,0x93,0xc6,0xcc,0xe3,0x01,0xd0,0x43,0xe1 +.byte 0xd9,0x00,0xc5,0x9f,0x79,0xab,0xfc,0xe9,0x55,0x51,0x03,0x0c,0xe1,0x73,0xd6,0x09,0xe3,0xb9,0x76,0x72,0x77,0x4c,0x1b,0x7c,0x57,0x1e,0x7f,0x5f,0x02,0x83,0xa3,0xc6,0xde,0x23,0x85,0x76,0x1a,0xbf,0x48,0xc8,0x02,0xdb,0x31,0x30,0x95,0x85,0x68,0x8a,0xf6,0xe9,0x48,0x7f,0xc9,0x26,0xab,0x68,0x36,0x9f,0x1c,0xf0,0x90,0xbc,0x4a,0x68 +.byte 0x94,0xf8,0x7f,0xae,0xa9,0x3b,0x5b,0x63,0x9a,0xcd,0xe3,0xf0,0xac,0x9f,0x6f,0x78,0xa0,0x67,0x58,0xd8,0x2c,0x71,0x8a,0x14,0x31,0x07,0x95,0x0c,0x38,0xa4,0x53,0x33,0x60,0x23,0x21,0x87,0x6b,0x4f,0xf9,0xa8,0xb8,0xfc,0x8e,0xf1,0x3a,0x03,0x0b,0x03,0x02,0x33,0xbc,0x6a,0xb9,0x8e,0x41,0xc8,0x38,0xd8,0x83,0x30,0x6a,0x61,0x5c,0xcf +.byte 0x49,0xdd,0xd7,0xda,0x2c,0xaf,0xc4,0x68,0xad,0x07,0x9c,0xd4,0xaf,0x94,0x64,0xcf,0xe1,0x9b,0x37,0x50,0x65,0x03,0x20,0x3c,0x34,0x43,0xe9,0xb0,0x9b,0xba,0xb1,0x9a,0x3e,0x10,0x99,0x8f,0x93,0xb7,0x3d,0xac,0xbd,0xab,0xa8,0xfa,0x74,0x90,0xe1,0x38,0xe4,0xf3,0x47,0xfc,0xad,0x8b,0xb4,0x98,0xe4,0x65,0xe9,0xd9,0x8a,0x21,0x81,0x4f +.byte 0x0c,0xd7,0xb1,0x84,0xb9,0x69,0x68,0x64,0xa3,0x1f,0x25,0x84,0x5f,0xf7,0x3f,0xca,0x52,0xff,0xda,0xc9,0x3d,0x5e,0x8b,0x57,0xd3,0x9a,0x1d,0xb7,0xae,0x90,0xa4,0xc3,0x78,0x68,0xfd,0x80,0x3f,0xfd,0x5c,0x09,0x83,0x5d,0xc2,0x48,0xd8,0x84,0xeb,0x8a,0xfe,0xbe,0x30,0x12,0x79,0x54,0x5f,0x7f,0x6e,0x4b,0x8a,0x1e,0xcb,0xcd,0xed,0xb6 +.byte 0xe9,0x6d,0x8a,0x1f,0xdc,0xb1,0x46,0xab,0xdc,0x0d,0xbf,0xda,0xd9,0x39,0x3b,0xd2,0x81,0x00,0x83,0x77,0x32,0xf7,0xdf,0x0e,0x31,0x5d,0x1d,0x6c,0xa7,0x4e,0x54,0xa8,0xac,0x81,0x8c,0xb6,0xa5,0x89,0x02,0xd7,0x2e,0xfd,0x26,0xa3,0x9e,0xcf,0xdb,0x1f,0x5a,0xf3,0x54,0xac,0xe5,0xd0,0x1f,0x9b,0xa7,0xab,0x28,0xcc,0x66,0xd3,0xbc,0x4c +.byte 0x54,0x1a,0x54,0x73,0x78,0xde,0x08,0xd5,0xa5,0x08,0xdc,0x00,0x09,0xc5,0x37,0x61,0x1a,0x98,0x12,0x84,0x2d,0xff,0xc3,0x25,0x62,0x93,0x83,0x05,0x66,0x3d,0xfb,0x1d,0x54,0x08,0x8a,0x50,0x03,0xc4,0xc4,0x6e,0xfa,0x16,0x83,0xbb,0x27,0xf1,0xb7,0x31,0x92,0x64,0x76,0xbc,0xf0,0x44,0x62,0xe9,0x5e,0x15,0x94,0xdc,0xe9,0xf3,0xf8,0x20 +.byte 0x93,0x4d,0x11,0xa2,0xc8,0xde,0x83,0xe6,0x75,0x63,0xfe,0x13,0x75,0x0f,0x79,0xd1,0x3d,0x75,0xb7,0x43,0x62,0x57,0x8d,0x96,0x9c,0xa3,0xc4,0xb2,0x84,0x6a,0x14,0x6e,0x17,0x32,0x09,0x76,0x95,0xbb,0xd6,0xc1,0x2e,0xdc,0x8c,0x73,0xd7,0xad,0x5a,0x41,0x8b,0xb3,0x7e,0x8d,0x90,0xec,0xf5,0xa0,0x46,0x90,0x4c,0x52,0xec,0x97,0xc6,0x98 +.byte 0x7d,0x19,0x77,0xa0,0x99,0x85,0x11,0x26,0x77,0x26,0xf9,0xac,0xe3,0x81,0xcf,0x7d,0x22,0xc8,0x00,0x3d,0x5b,0xee,0xa5,0xf8,0x6d,0xfe,0x47,0xe4,0xef,0x60,0xcc,0xd0,0x33,0xf7,0x5b,0xed,0xbd,0x82,0xc9,0xa8,0x41,0xb8,0x47,0x34,0x9f,0x62,0xb2,0x67,0x62,0xb0,0x3a,0x27,0x95,0xe1,0x22,0x76,0x98,0x0f,0x35,0xaf,0xfc,0x4d,0xc7,0x92 +.byte 0x92,0x7e,0xaf,0x3b,0x3a,0x36,0x5e,0x5c,0xbf,0x43,0x02,0x66,0x5a,0x30,0x78,0x82,0x52,0x20,0x98,0xd6,0xa1,0xe9,0x9a,0x61,0x54,0x0b,0x74,0x85,0xb5,0x99,0x69,0x9f,0x9b,0x3b,0x2f,0x49,0xec,0xb3,0x18,0x0c,0x4a,0x53,0x20,0xd7,0x80,0x7b,0xd4,0x20,0x21,0x32,0x89,0x08,0x81,0x50,0x2b,0x16,0x8d,0xbb,0xe6,0xbb,0xc7,0x74,0x80,0x67 +.byte 0x47,0xf1,0x06,0x68,0x02,0x37,0x31,0x00,0x50,0x8b,0xe2,0x44,0x85,0x2e,0x39,0x54,0xda,0x26,0x7b,0xe1,0xb0,0x23,0xd7,0x0c,0x3c,0x3b,0x81,0x9b,0xa6,0xbe,0x24,0xfd,0x09,0x73,0xbe,0xc3,0x2f,0xa0,0x7b,0x85,0x5b,0x1b,0x55,0x4e,0x9e,0x38,0x80,0x61,0xd7,0xe8,0x9b,0xec,0x88,0x00,0x6a,0x64,0x1b,0xd5,0x65,0x20,0x2a,0x62,0x64,0xbc +.byte 0x21,0xca,0xce,0xc3,0xeb,0x2d,0x2b,0x5c,0x4d,0xb8,0x7c,0xb5,0xbe,0x98,0x0d,0x5b,0x88,0x23,0x60,0xff,0xbe,0x0a,0xb6,0xdd,0xdf,0x28,0xd5,0x2c,0xe5,0x9d,0xb5,0x29,0xea,0x6c,0x3a,0xf4,0x78,0x91,0xa3,0xb2,0xab,0x12,0xf9,0x90,0x96,0xc9,0xa4,0xfc,0x4d,0x28,0x2b,0x0c,0x28,0x8b,0xb7,0x8b,0x36,0xd6,0x80,0xbf,0x07,0x09,0xf9,0x62 +.byte 0x32,0xc0,0x50,0x60,0xd9,0x73,0xe3,0xbe,0xfa,0xa6,0x78,0x48,0x47,0xd7,0xb5,0x39,0xd8,0x04,0x6d,0x79,0x98,0x2e,0xd6,0x3a,0xe5,0xc9,0x01,0xd0,0x00,0x2e,0xd2,0x8b,0xd7,0x1f,0xf1,0xba,0xd4,0x0e,0x9f,0x9d,0xab,0xbf,0x2c,0xe1,0x75,0xf6,0x9c,0xc0,0xae,0x73,0x2b,0x58,0xcb,0x6d,0x46,0x6d,0x11,0xb7,0xce,0xc7,0xef,0x34,0x2c,0x11 +.byte 0x93,0x3c,0x17,0xd9,0x3e,0xad,0xc9,0x4c,0xb3,0xd0,0x0a,0xd0,0xfe,0xf3,0x9d,0xc5,0x43,0x03,0xa9,0x78,0x4a,0x42,0x7f,0xfb,0x75,0xd2,0x85,0xfb,0xe7,0xe6,0xa9,0x48,0x2f,0xa6,0xc3,0x16,0xe2,0x2a,0x9d,0x0d,0xcb,0x2e,0x8b,0x75,0xa8,0x14,0x3a,0x2e,0xb1,0xff,0x58,0x1d,0xa8,0xa6,0xc0,0xf6,0x17,0xda,0xc1,0xce,0xaf,0x08,0xa9,0xc2 +.byte 0xa3,0xc1,0xab,0xb6,0xe8,0x10,0x57,0x8a,0xce,0xc0,0x03,0x5c,0x53,0x5c,0x02,0x5d,0xcf,0x5c,0x65,0xc6,0x47,0x3c,0x62,0x0e,0xa3,0xfc,0xe2,0xae,0x10,0x55,0x4a,0xb4,0x27,0xe8,0x59,0x5e,0x45,0xa9,0xbb,0x21,0x10,0x91,0x46,0x1f,0x50,0x3b,0xc6,0x8c,0xa1,0x8a,0xee,0x5e,0x6e,0x32,0xe6,0x42,0x40,0x79,0x7f,0xbb,0xb3,0x5b,0x05,0xde +.byte 0xe0,0xf6,0x7f,0x3d,0x37,0xe6,0xc3,0x3b,0x40,0xc9,0xe0,0x42,0x36,0xd0,0x0e,0x13,0x32,0x3e,0x48,0xce,0xd8,0xa2,0xef,0xae,0x93,0x66,0x7d,0xde,0xb9,0xdd,0x60,0x15,0x53,0xf2,0xd9,0x90,0x3d,0x38,0x8c,0xa6,0x34,0x44,0xb5,0x6c,0x74,0x7d,0x9d,0xe7,0xd0,0xef,0x6c,0xd6,0xfe,0x9b,0x79,0x4e,0x79,0x5e,0x48,0xef,0x93,0xb2,0x81,0x0b +.byte 0x2b,0xee,0x83,0x69,0x3d,0x15,0x8c,0x27,0x69,0x6f,0xca,0xbf,0x75,0x29,0x37,0xc6,0xe6,0xca,0xb2,0x70,0xd0,0xaf,0xc8,0x5e,0x69,0xf1,0x6b,0x2d,0x0d,0xe7,0xe9,0xbf,0x07,0x52,0xe5,0xac,0x98,0xcf,0xcf,0xd6,0xdd,0x7c,0x2b,0xfc,0x8f,0xd2,0x5f,0x81,0x4b,0x1b,0x7b,0x2d,0x84,0xe2,0x69,0x96,0xcb,0xa2,0x59,0x10,0xba,0xda,0x51,0x11 +.byte 0xeb,0xc3,0x4f,0x10,0xbf,0x8e,0x5b,0xbb,0xa3,0x29,0xe9,0xd8,0x0e,0x71,0xa0,0x1b,0xff,0xee,0x36,0x8c,0x00,0x83,0x6b,0x32,0xfe,0x05,0xeb,0x89,0x8f,0xed,0x48,0x22,0xe1,0x76,0x0a,0xac,0xae,0x3c,0x24,0x54,0x84,0xc2,0x0f,0x79,0x33,0x2b,0x49,0x35,0x1c,0x84,0x5a,0xca,0x92,0x6c,0x1f,0x78,0x15,0x5a,0x36,0xad,0xd5,0x1d,0x9d,0x10 +.byte 0xc1,0x5f,0x7c,0x61,0x60,0xba,0x2e,0xe6,0x9b,0x34,0x02,0xe9,0x68,0x1c,0xfb,0xbf,0x02,0xdc,0x79,0x57,0x1c,0x0f,0xc8,0x8c,0x2a,0x66,0x2a,0x50,0xaa,0x81,0x4e,0x1f,0xa8,0x2d,0xe4,0x61,0xe8,0x43,0x84,0xcb,0xda,0x96,0xf9,0x4a,0xd0,0x8f,0xe1,0xd7,0xc4,0x05,0xf5,0x76,0xfa,0x47,0x7a,0x07,0x1a,0x77,0xbb,0x63,0xb3,0x3a,0x85,0x3b +.byte 0x0d,0x32,0x4f,0x14,0x15,0x02,0x5b,0x9c,0xbc,0xc2,0x12,0x90,0x0f,0x7b,0x94,0x27,0x5f,0x70,0x23,0xd8,0x5d,0x54,0xc4,0xca,0x6a,0x69,0x9e,0xd1,0xb3,0x2a,0x75,0x1a,0x07,0x9c,0x20,0xf6,0x76,0x22,0x4d,0x09,0x30,0x24,0x3f,0x3b,0xe5,0xcb,0x4b,0x5a,0x03,0x2d,0xe8,0xbe,0xed,0xf0,0xe3,0x91,0xf2,0x6c,0xb8,0x02,0x2d,0x6c,0x7a,0xa6 +.byte 0xc1,0x8e,0xa7,0xbb,0x73,0xdf,0x40,0xa5,0x60,0x91,0xbf,0xbe,0x28,0x0b,0x37,0x2e,0x5f,0x4b,0xcd,0x14,0x4d,0x2d,0xfc,0x5e,0x43,0xb5,0x78,0x8d,0xea,0xa0,0x86,0x54,0x4f,0xb6,0x25,0x40,0x39,0x3f,0x9c,0x7a,0x26,0x74,0x88,0x42,0x53,0xb0,0x3b,0x81,0x75,0x04,0x67,0x41,0x65,0x66,0x2c,0xdc,0xe9,0xf0,0xb3,0xab,0x2a,0xa5,0xf3,0xef +.byte 0xfa,0xc5,0x10,0x63,0xe2,0x70,0xb5,0x29,0x60,0x86,0x9e,0xb9,0x0b,0xe2,0xc4,0x05,0xa9,0x3c,0x1b,0x60,0x15,0x6b,0x2f,0x74,0x93,0x5e,0x70,0x9a,0x56,0x6a,0xc4,0x92,0x49,0xaa,0x95,0x51,0xc4,0xba,0xfd,0xf6,0x2d,0x36,0x3e,0x66,0xbd,0x74,0xbc,0x2e,0xb3,0xad,0xa1,0x41,0x50,0x33,0x79,0x84,0xac,0x21,0x7a,0xfc,0x3a,0x8e,0xdb,0xcc +.byte 0x27,0xf6,0x2c,0x5c,0x23,0x38,0x73,0xd5,0xaf,0xc9,0x2d,0x9c,0x18,0x58,0xdf,0x8f,0x89,0x9d,0xdd,0x00,0x3c,0x5f,0x23,0x00,0x6e,0x66,0x1d,0xf3,0x1c,0x40,0x9d,0x43,0xb0,0x74,0xf1,0x41,0xa5,0x77,0xcb,0x8d,0x5b,0x94,0x68,0x95,0xb6,0x0e,0xd4,0x4d,0x47,0x9b,0xd2,0xcd,0x9b,0x94,0xa4,0x28,0xf9,0xf0,0x3d,0xcf,0x89,0xb1,0xc3,0x73 +.byte 0x84,0x15,0xb6,0xc8,0x6b,0xf1,0xb1,0xdc,0x1b,0x1a,0x6f,0xb5,0x73,0x87,0x8b,0x63,0xbf,0x4b,0x25,0x9b,0xe4,0xdd,0x44,0xed,0xe7,0x0e,0x6f,0x03,0xae,0xa1,0x5e,0x1f,0x5f,0xa7,0xa4,0xed,0x69,0x7a,0x91,0x6d,0x55,0xac,0xce,0x18,0x32,0x17,0x78,0x49,0x9f,0x1e,0x9c,0xd2,0x7b,0x1f,0x74,0x60,0xa5,0x64,0xb1,0x99,0xe6,0xc5,0x0d,0x69 +.byte 0xfa,0xb2,0xd9,0x05,0x61,0x71,0xa4,0x6f,0xc2,0xb6,0x91,0x0e,0x6c,0xf2,0xa6,0x6c,0xea,0x8e,0x94,0x8b,0xac,0xa7,0xfe,0x70,0x8e,0x8d,0xc2,0x85,0xa6,0xa7,0x8e,0xe8,0xfa,0xbc,0xa1,0xaf,0x0e,0xa9,0x06,0xa4,0x9a,0xb0,0x23,0x93,0xbc,0x93,0x2d,0x97,0x42,0xe2,0x0d,0x3a,0x65,0xb4,0x60,0x5b,0xeb,0xa1,0x20,0x8a,0xdc,0x17,0x6b,0xc5 +.byte 0x19,0xc3,0x67,0xbf,0xae,0xf7,0xb9,0xb1,0x88,0x7f,0xe5,0x1b,0xc2,0x61,0x97,0xa0,0xd3,0x64,0x74,0x6b,0x7a,0x46,0x39,0x3f,0xc8,0xd3,0x53,0x79,0x74,0x4e,0x1e,0x63,0x91,0xc5,0x4a,0x70,0xb0,0x05,0x35,0x19,0xc2,0x26,0x54,0x44,0x3b,0xa9,0x12,0x40,0xd0,0x21,0x19,0xf3,0x8d,0xc7,0x2b,0x88,0x9a,0xec,0x41,0x8f,0x4f,0x23,0x19,0x1a +.byte 0xf3,0x1d,0x0a,0x88,0x0f,0xa7,0x02,0xd4,0x78,0x88,0xe6,0x43,0xb6,0x9e,0x07,0xdf,0x6a,0x1f,0x41,0xbb,0x3e,0xea,0x15,0xff,0x66,0x4c,0x7a,0x8b,0xee,0x27,0x47,0x81,0x81,0x95,0xa2,0x22,0xb4,0x9f,0x1c,0x09,0x1c,0xfc,0x0a,0xef,0x88,0x7f,0x59,0x60,0x91,0x6a,0xe4,0x92,0x8c,0x02,0x54,0xc9,0xee,0xc7,0x5e,0xd1,0xbf,0xc9,0x41,0xde +.byte 0x2f,0xa3,0x22,0x07,0x1d,0x8c,0xe1,0x04,0x59,0x94,0x75,0x3e,0xee,0x56,0x62,0x07,0x80,0x18,0x60,0x78,0x0e,0x55,0x06,0xec,0xe1,0xa5,0xf6,0x21,0x7e,0xf9,0x37,0xab,0x6a,0xed,0x07,0xcb,0xbf,0xa2,0xab,0x50,0xee,0x1f,0x2f,0x54,0x2b,0x82,0x93,0x59,0x03,0x35,0xd9,0xe8,0x2b,0xa6,0x03,0xc2,0xef,0x37,0x85,0xfc,0x89,0x06,0x30,0xe0 +.byte 0xc2,0x00,0xc4,0xaf,0x59,0xb6,0x31,0x52,0x37,0xa4,0x6c,0xdb,0x1b,0x20,0x87,0xf0,0xa4,0x15,0x4b,0xa8,0xd9,0x7e,0x1b,0x96,0x00,0x07,0xf4,0x86,0x07,0x14,0x55,0x70,0x37,0xe3,0xe3,0xf0,0xeb,0xd6,0xf1,0xe0,0xe9,0x6c,0xdf,0x3d,0xaf,0x86,0xb8,0x00,0x9b,0xdf,0xc6,0x5c,0xd2,0x53,0xcb,0xcf,0x63,0xcc,0x3e,0x6d,0x62,0xeb,0xe6,0x97 +.byte 0xd8,0x54,0xed,0x36,0xe4,0xed,0x69,0xaa,0x10,0x83,0xde,0x16,0xfd,0xcc,0xd6,0x24,0xb9,0x3c,0x4f,0x99,0x81,0xc2,0x23,0x16,0x91,0x5d,0x9f,0x46,0xa5,0xdd,0xb4,0x8a,0xe1,0x07,0x89,0x84,0x2e,0x62,0x48,0xf6,0x1a,0x17,0x7b,0xc8,0xf7,0xb4,0x3d,0x9e,0x82,0xe3,0xe3,0xcf,0x0b,0xd9,0x52,0x90,0x61,0xd8,0xdf,0x9e,0xc4,0xc7,0x7c,0xfa +.byte 0xcf,0x09,0xd2,0x94,0x86,0x37,0x94,0xaf,0x7e,0x0a,0x9d,0x16,0xee,0xad,0xfb,0xa2,0x9e,0x2d,0x2f,0xad,0xd5,0xc2,0xf9,0x91,0xf8,0x7e,0x2b,0xb8,0xb2,0x60,0x3c,0x0a,0x89,0x53,0x07,0x87,0x3b,0x83,0x70,0xee,0x71,0xa3,0x94,0x0b,0x77,0x50,0xeb,0xcc,0x23,0xf0,0xbe,0x95,0x51,0x54,0xd2,0xd6,0xd2,0x09,0xa5,0x19,0x3d,0x4e,0xec,0xe3 +.byte 0x88,0x71,0xa7,0xb1,0x10,0x03,0x7e,0xc4,0x92,0x2a,0xe7,0x99,0x75,0xff,0xae,0x10,0x3d,0xbb,0x33,0xc9,0x7f,0xc2,0xe6,0x3c,0xc4,0xe7,0xba,0x37,0xba,0x68,0x69,0x92,0x4a,0xfb,0x32,0x3b,0xb5,0xde,0xdb,0x91,0xd0,0x8e,0x77,0xf2,0x1e,0x2d,0x25,0xb4,0xa0,0x42,0xef,0x78,0x6c,0x75,0xcb,0xa0,0x73,0xdf,0xde,0xd8,0x26,0xfe,0xe3,0xf9 +.byte 0x74,0xe7,0xa0,0xd2,0xbd,0x6c,0x99,0x8d,0x07,0xf2,0xf8,0xff,0x36,0x2d,0x8e,0xda,0x5e,0x5c,0x47,0x06,0xf8,0x08,0x33,0x1d,0x93,0xcf,0xc3,0x1a,0x20,0x86,0xb6,0x8e,0x44,0x10,0xbc,0xba,0x89,0xfc,0xa3,0x57,0x92,0x2c,0x28,0xa1,0xd0,0xab,0xdc,0xba,0x0a,0x7e,0x9d,0xd2,0xfd,0x09,0xd3,0x87,0x6c,0x06,0x44,0x17,0x73,0xfe,0xc9,0x8b +.byte 0x52,0xd3,0x09,0x60,0x14,0x03,0xb1,0x79,0x4c,0x9c,0xc4,0xec,0x42,0x4c,0xd3,0x21,0xe5,0x34,0x21,0x38,0xdd,0x12,0x95,0xd4,0x20,0x50,0xef,0x5f,0x46,0x4f,0x37,0x65,0xd5,0xf1,0xb2,0x2c,0x6c,0x9a,0x06,0x28,0x77,0xbf,0xe3,0xec,0xec,0x2b,0xcb,0x2c,0x8b,0x62,0x2e,0x39,0xaa,0x28,0x0b,0x51,0x01,0xa5,0x02,0x06,0x66,0x4a,0x67,0x0c +.byte 0x96,0xa3,0x12,0x74,0x94,0x2c,0x0f,0x23,0xa3,0xea,0xda,0x1a,0x6d,0x54,0x30,0x33,0xc8,0x33,0x0a,0xfb,0x25,0x2a,0x8b,0x9a,0x87,0xd9,0x9d,0x37,0x4c,0x41,0x3b,0xe5,0x4a,0x81,0x92,0x40,0x38,0x18,0x82,0x13,0x54,0xde,0x56,0x11,0x63,0xf3,0x09,0x61,0x3b,0xdd,0x0c,0x71,0xe8,0x4f,0xc2,0x9a,0x77,0x2f,0xeb,0xf1,0x39,0x1c,0x10,0x0e +.byte 0x01,0xaf,0x92,0x34,0x9a,0xb6,0x7b,0x79,0x86,0x0c,0xf1,0x53,0xb6,0x59,0xbd,0x6d,0x79,0x6e,0x37,0x11,0x25,0x67,0x95,0x31,0x4f,0x43,0xdf,0xb7,0x4b,0x80,0x8d,0x07,0x3c,0x49,0x73,0x8a,0x72,0x61,0x02,0x0f,0x2f,0x13,0xed,0x91,0x10,0xf6,0x08,0xf3,0x50,0x4a,0xd4,0x36,0xcb,0x52,0xb3,0x3b,0xe6,0xef,0x85,0xe9,0xe0,0xad,0x0d,0x3d +.byte 0x84,0x07,0x70,0xdf,0x16,0x47,0xeb,0x26,0x19,0x27,0xaf,0x7a,0x9f,0x2f,0x2b,0x6d,0xbb,0x37,0x68,0x8e,0x19,0x46,0x5a,0x65,0x0d,0x0a,0x67,0xd8,0xe2,0xc2,0xcd,0x49,0xf6,0xc2,0x27,0xac,0x12,0xea,0x1f,0x81,0x60,0xac,0x8b,0x5d,0xcc,0x9a,0x5b,0xec,0xc3,0xcb,0x85,0x0d,0xef,0xa6,0xd5,0x33,0xb3,0x67,0x73,0x3f,0xc9,0x90,0x25,0x3e +.byte 0xe6,0x7c,0x41,0x59,0x83,0xf7,0x90,0x4a,0xbf,0x14,0x72,0x11,0xf2,0x3a,0x38,0x58,0x17,0xd8,0x3d,0x00,0xc6,0x42,0xf2,0xbc,0xfd,0x05,0x37,0x6d,0x11,0xb0,0xd7,0xb2,0xb7,0x73,0x69,0x80,0x47,0x30,0x64,0x13,0x8c,0x24,0xb2,0x42,0x12,0x8c,0xc0,0x8a,0x45,0x0b,0x71,0x23,0xeb,0xac,0x65,0xda,0x44,0x13,0x85,0x77,0xdf,0xb8,0x4b,0x69 +.byte 0xd4,0x8e,0x40,0x54,0x24,0xac,0xc8,0x62,0x36,0x51,0x20,0xaa,0xcd,0x5d,0xa5,0x73,0x2c,0x81,0x92,0x99,0x44,0x6b,0x04,0xac,0x8e,0xee,0x96,0x29,0xca,0xdc,0x2f,0xd1,0x13,0x5c,0x9e,0xc2,0x67,0x6a,0xaf,0xf6,0x3e,0xe2,0xa1,0x6d,0xda,0xbe,0x8a,0x55,0x50,0x27,0xee,0x6d,0xb8,0x35,0x5f,0xb4,0xa8,0x76,0xa1,0xe2,0x52,0x87,0xf6,0xfb +.byte 0xe2,0x16,0x1c,0x90,0x78,0xe4,0x17,0xb0,0xd9,0x56,0xf5,0xd3,0xa4,0xb0,0x3f,0xe9,0x01,0xf9,0xd0,0x67,0x2b,0xeb,0x1d,0x73,0x24,0x90,0x36,0x36,0x0d,0xcf,0xfb,0x3f,0xa1,0xa0,0x25,0x3b,0xf1,0x7f,0x9e,0x90,0xcf,0xb6,0xd0,0x83,0x90,0xcd,0x3f,0xff,0x5f,0xa3,0x33,0x95,0xd7,0xbe,0x78,0xfe,0xcc,0x9a,0xb9,0x64,0x88,0xb7,0xd9,0x5e +.byte 0x46,0x2d,0xf0,0xb1,0xa1,0x81,0x2b,0xab,0x80,0xf5,0x4d,0x3b,0xd8,0x53,0x64,0x8f,0xac,0x7a,0x03,0xb3,0x39,0x7a,0x85,0xef,0x61,0xb5,0x2c,0x8e,0xf4,0x27,0x07,0x9b,0x7b,0xc9,0x8b,0x1a,0xe4,0x4f,0xce,0x8b,0x35,0x32,0xac,0xcf,0x47,0xb8,0x2f,0x9e,0xe5,0x11,0x48,0xc1,0x07,0xea,0x0c,0xee,0x06,0xc6,0xa3,0x48,0xb6,0x1a,0xd8,0xb4 +.byte 0xa7,0xae,0x59,0x7d,0x9e,0x4e,0x66,0x7f,0xe9,0x02,0x40,0xdc,0x21,0x5e,0x74,0x2c,0x1d,0x29,0x22,0xca,0x97,0x4f,0xc8,0xc7,0xea,0x69,0x02,0x89,0xd1,0x43,0xff,0x83,0x89,0x58,0x66,0x92,0xbc,0x11,0xf6,0x02,0x8b,0xa8,0x34,0x8d,0xbe,0x3a,0x70,0xc3,0x10,0xe7,0xb5,0xc4,0xda,0xdb,0xc6,0x87,0xee,0xee,0xe0,0x48,0x62,0x80,0x8d,0xfc +.byte 0xaa,0xc7,0xce,0x1a,0xea,0xb9,0x1b,0x30,0x4a,0x48,0x9b,0xf4,0x58,0xff,0x5d,0x15,0xc8,0xf2,0x84,0x44,0xae,0x63,0xe8,0xb1,0xe0,0x2e,0x38,0x8e,0x47,0xf9,0x09,0xec,0xb9,0x94,0x18,0x37,0x68,0xef,0xbd,0xd5,0x67,0x72,0x01,0x9a,0x15,0xb9,0x7c,0x36,0xc0,0x22,0x80,0x12,0xb1,0x4e,0xab,0x3c,0xea,0x81,0xcf,0x70,0xf3,0xde,0x1f,0xd4 +.byte 0x67,0x94,0xfa,0xe1,0xf0,0xb6,0xd6,0x6b,0xc3,0xa2,0xbb,0x59,0x6b,0x9f,0x58,0x26,0x99,0x0c,0xdc,0xcd,0xb8,0xae,0x49,0xf0,0x8f,0xd3,0x0d,0xb7,0x4c,0x22,0xcf,0xb6,0x6c,0xa3,0x19,0x09,0x42,0x59,0x25,0xf8,0xdc,0xf3,0xc2,0x00,0xc3,0xc3,0xd3,0x9e,0x98,0xd3,0xa3,0xd0,0x96,0xfd,0x4f,0x15,0x57,0x5b,0xa7,0x08,0x3a,0x0e,0x3d,0xd2 +.byte 0x7d,0xa1,0xa0,0x94,0xc0,0x76,0x83,0xf6,0xc1,0xe8,0x7e,0xd3,0x97,0xc1,0xbf,0x38,0x74,0x9b,0xfb,0x35,0xeb,0xf7,0x34,0x20,0xea,0xda,0xd3,0xb1,0x2e,0x10,0x16,0x9c,0x09,0x1c,0x67,0x46,0xa2,0x05,0xf9,0x47,0xde,0x35,0x53,0x18,0x58,0xb0,0xbb,0x7a,0x88,0x58,0xc5,0x3e,0x98,0x29,0x43,0x98,0x07,0x76,0xa3,0xe1,0x95,0x92,0x21,0xe9 +.byte 0x06,0x17,0x15,0xe0,0x6b,0xd5,0x5a,0x6d,0x10,0xa6,0x08,0x92,0xa9,0xf5,0xcf,0x57,0x1a,0x28,0x5d,0x14,0x33,0x99,0xf9,0xa0,0xb3,0xeb,0xee,0xd4,0x6e,0x0b,0x5e,0xf7,0xe9,0xe3,0xc6,0x71,0x34,0x55,0xf3,0xde,0xd5,0xc2,0x52,0xc3,0x7b,0x06,0x87,0xef,0x26,0x81,0xc9,0xbd,0xaf,0x12,0x61,0x95,0x2b,0xa4,0x8e,0xe8,0x08,0x9a,0x13,0x48 +.byte 0x2e,0x84,0x98,0xf6,0x95,0x21,0x22,0xe5,0xcf,0x30,0x8d,0xaf,0x70,0x16,0x27,0x0c,0xcd,0x26,0x7f,0xe8,0xa0,0x35,0x0c,0x01,0x0e,0xdd,0x9d,0x2c,0x89,0x41,0x34,0xc4,0xa2,0xaa,0xf6,0x3f,0xca,0x3b,0x86,0xce,0xd7,0x4c,0xe3,0xb5,0x69,0xe9,0x41,0xbe,0x3c,0x9a,0x4c,0x1a,0xb3,0x88,0xea,0x78,0x12,0x4c,0x1b,0x79,0xc7,0xcd,0x32,0x72 +.byte 0xfa,0x3f,0x0b,0x73,0x1b,0xd9,0xec,0x85,0xd4,0x52,0x6c,0x91,0x2d,0xbe,0x76,0x8b,0xfd,0xb6,0x49,0xcf,0x67,0xd1,0x18,0x7b,0xae,0x86,0x47,0x47,0xfd,0xff,0x63,0xf2,0x88,0x1b,0x58,0xd5,0x30,0x69,0xf9,0x9a,0x03,0x52,0xae,0xe5,0xe2,0x55,0xbf,0x35,0x12,0xb0,0x84,0xa9,0xed,0xb6,0x8d,0x5f,0x6c,0xed,0x1a,0x00,0x7a,0xdc,0xf2,0x03 +.byte 0x9e,0xef,0x59,0x27,0x4c,0xf4,0x83,0xa2,0x36,0x3d,0x3d,0x8c,0x75,0x8c,0x37,0x68,0x93,0x0b,0x30,0x48,0xea,0x91,0x14,0x37,0x88,0x87,0x7f,0xe6,0xd8,0xbd,0x04,0x34,0x1e,0xe8,0x2a,0x41,0x48,0x5c,0x66,0xf9,0xc2,0xd1,0x56,0x25,0x29,0x45,0xfa,0x71,0xe1,0x59,0xa8,0x52,0x99,0x0b,0x92,0xe0,0x33,0x52,0x91,0xd6,0x5f,0x0a,0x70,0x83 +.byte 0x4f,0xa3,0x47,0x6e,0xfa,0x85,0x5e,0xb1,0x0a,0x1d,0xe7,0x35,0xc9,0x88,0x27,0xc9,0x8c,0x3e,0x7f,0x6d,0x34,0x1e,0x11,0x7b,0xcd,0xe7,0x09,0x82,0x3a,0xa1,0x46,0xc6,0x15,0xde,0x0b,0xde,0x35,0x71,0x92,0x5c,0x72,0x50,0x08,0x6b,0x62,0xa7,0xec,0xa2,0xca,0x53,0x6e,0x47,0x7d,0x50,0x32,0xa7,0x32,0x7b,0x49,0x0c,0x97,0xcc,0x98,0x8d +.byte 0xc3,0x29,0x72,0x1e,0x85,0x47,0x1b,0xa7,0x89,0x19,0x85,0xaa,0x3f,0x11,0x6a,0xea,0x61,0x84,0x07,0x9a,0xc8,0xb3,0x25,0xfe,0x72,0xca,0x83,0xa9,0xf0,0x9e,0x01,0xe4,0x9a,0xd6,0x1b,0x87,0xfc,0xd4,0x3a,0x04,0x34,0x8c,0x0b,0x46,0xbc,0xe9,0x3c,0x3f,0xd9,0x93,0xf1,0xca,0x41,0x0b,0xdb,0x28,0xe8,0x28,0x1b,0x84,0x36,0x16,0x84,0x22 +.byte 0x1e,0x1e,0x2b,0xb0,0xfb,0xa6,0xcc,0x95,0x31,0x46,0xd7,0xca,0xc2,0x8b,0xa3,0x3a,0xa5,0xb0,0xaf,0x52,0x66,0x53,0x39,0x5f,0x58,0xb5,0xdf,0x01,0x52,0x07,0xb4,0x82,0xdc,0xb7,0xf9,0x88,0xd8,0x77,0xf8,0x12,0x9d,0xe8,0x21,0xd7,0x0b,0x0f,0x57,0x90,0x40,0xb2,0x64,0x3f,0xce,0xa0,0xa3,0xfa,0x12,0x16,0xec,0x6d,0xcc,0xc7,0x2a,0x43 +.byte 0xc9,0xe7,0xb7,0x90,0x52,0x35,0x22,0x6d,0x46,0x99,0x1e,0x44,0x12,0xd6,0x0f,0xaf,0x5c,0x16,0xd3,0x7a,0xd6,0xb4,0xfe,0x20,0x26,0x11,0xe1,0xc6,0xa5,0x10,0xfd,0x9f,0x0c,0x47,0xae,0x32,0x08,0x15,0x8f,0xef,0xef,0x4c,0x83,0xbc,0xbf,0x6a,0xe5,0xf5,0x69,0x11,0x4d,0x7d,0x47,0x1f,0x10,0x58,0x61,0xb0,0x0d,0x98,0x67,0xc0,0x99,0x3a +.byte 0x2d,0x9a,0x5b,0xd5,0x37,0xe7,0xe5,0xd4,0x56,0x96,0x69,0xf8,0x53,0x7e,0x24,0x70,0x51,0x01,0x83,0x8d,0x49,0x01,0x32,0x7d,0x4f,0x41,0x92,0x54,0x9c,0x15,0xf1,0x3c,0x05,0x32,0x28,0x0d,0x0f,0x67,0xbe,0x65,0xfa,0x1b,0xa3,0xd0,0x28,0x18,0xb8,0x84,0xfe,0x6a,0x30,0xea,0xb9,0x00,0xb1,0x10,0x7c,0xa2,0x94,0x4f,0x86,0x18,0xdd,0xb4 +.byte 0x80,0x18,0x48,0x18,0xe1,0x56,0x70,0x7d,0x5c,0x3b,0xe5,0xd7,0x88,0x66,0x57,0xe3,0xe1,0x04,0x4c,0x68,0x5b,0x64,0x4d,0x0d,0x30,0x76,0x26,0xaa,0x84,0x0e,0xe0,0xed,0x53,0x62,0x20,0x33,0xaf,0x45,0x42,0x40,0x47,0x01,0x15,0xc9,0x0b,0x27,0x7c,0x68,0x4d,0x55,0xc4,0x6a,0x5f,0x96,0x9f,0x96,0x67,0xae,0x13,0x1c,0x84,0x52,0x33,0x41 +.byte 0x80,0xfc,0xae,0xb6,0xb1,0x8c,0xc3,0x19,0x80,0xa8,0x5f,0xe5,0x8c,0xd0,0xa8,0xb4,0x58,0xc9,0x48,0x29,0xab,0x11,0xd1,0x09,0xc6,0x20,0x98,0x4c,0xdb,0xa4,0x83,0x5c,0x26,0x51,0xce,0x80,0xe5,0xc4,0x9b,0xae,0xba,0x8e,0x99,0x4e,0xa4,0xff,0xdc,0x99,0x4c,0x02,0xa0,0x42,0x80,0xca,0xd7,0xea,0x6a,0x58,0x31,0xdb,0x16,0xd8,0x4d,0xab +.byte 0x03,0x2e,0x3a,0xdc,0xe9,0x07,0xfb,0xfb,0x5b,0x57,0x67,0x2a,0x7b,0xdc,0xc1,0x66,0xd1,0x31,0x3a,0x03,0x87,0xd8,0x66,0xda,0xa1,0x24,0x00,0x26,0xc0,0x26,0x78,0xf8,0x59,0x13,0x3f,0x34,0x08,0x35,0x45,0xbd,0x45,0x4f,0x89,0x65,0x97,0xdb,0xe6,0x1e,0x09,0x6e,0x23,0x2a,0xc4,0xf5,0x6a,0x74,0x28,0xb0,0xae,0x8c,0xfb,0x49,0x35,0x99 +.byte 0x06,0x30,0xc6,0xb2,0x8c,0xcd,0x8b,0x41,0xea,0xf2,0x04,0x18,0x29,0x25,0x1b,0x32,0x42,0x45,0xb5,0x92,0x42,0xb4,0x33,0xd2,0x90,0x31,0x08,0xcd,0x35,0x5d,0x50,0x64,0xa8,0x93,0xfd,0xa5,0xfd,0x32,0xbd,0xe8,0x13,0x1c,0x48,0x5c,0x14,0x70,0x03,0x92,0x0f,0x12,0x86,0xf6,0x6c,0xcd,0xc6,0xec,0xbf,0x8e,0x85,0x28,0x1d,0x1c,0x63,0x3f +.byte 0x81,0x93,0xd4,0x80,0x3c,0x29,0x0b,0x63,0xfe,0x87,0xa6,0x24,0xd6,0x3e,0x62,0xb6,0xd9,0xb0,0x58,0xf1,0x41,0x36,0xc7,0x47,0x8b,0xfd,0x4b,0x91,0x4e,0x5d,0x41,0x44,0xb0,0x65,0x3d,0x9e,0x3b,0x70,0x01,0xcc,0x7d,0x77,0xf0,0x23,0xd9,0xca,0x5f,0xda,0xa1,0x8c,0x71,0x11,0x91,0x7d,0x36,0xf5,0xc9,0xcd,0xf4,0x34,0x5f,0x69,0x57,0xd6 +.byte 0x33,0x4c,0xb2,0xe1,0x38,0x5f,0x86,0x3c,0x57,0x7b,0x2e,0x99,0x05,0x80,0x63,0xc4,0x77,0x69,0x06,0xc2,0x47,0x44,0xca,0x17,0x27,0x1d,0x55,0x34,0x02,0xd0,0x89,0x3a,0x3b,0x79,0xf0,0x86,0xd7,0x6b,0x01,0x9c,0xc7,0xa8,0xde,0xdb,0xdf,0x49,0xd1,0xb9,0x11,0xaf,0x7e,0x22,0x8b,0x5d,0xb5,0x0b,0xdc,0xd0,0x36,0xe6,0x9d,0x85,0x41,0x4a +.byte 0x35,0xf0,0xe1,0xcd,0xce,0x7b,0xd1,0xd6,0x00,0xdd,0xb6,0xe4,0x06,0x3e,0x66,0xe9,0x2b,0xa8,0x44,0x0d,0x18,0xd4,0xbc,0xfb,0x3c,0x58,0x6c,0x11,0xe9,0xdc,0x19,0x14,0x08,0x27,0x23,0x0c,0xd0,0xf9,0x97,0xaf,0x97,0x07,0x02,0x1a,0x5e,0xcd,0xae,0xd2,0x80,0x96,0x16,0x49,0xc3,0xfc,0xda,0x25,0x12,0x20,0xe1,0xc0,0x68,0x90,0x4b,0x30 +.byte 0x2d,0x06,0x53,0x2c,0x57,0x63,0x4a,0x7a,0xf6,0xc8,0x5a,0xb7,0x58,0x8c,0x13,0xfe,0x43,0xb3,0xf8,0x25,0x3e,0x7a,0x25,0x3e,0x1d,0x7f,0x8f,0x5e,0xdb,0xad,0x99,0x83,0xfc,0xd9,0x0a,0xdf,0xb5,0x19,0x1c,0x2c,0xf6,0xe8,0x06,0xbe,0xc0,0x9f,0x7e,0x0f,0x95,0xaa,0xac,0x09,0xdc,0x8c,0x37,0xcf,0x35,0x35,0x95,0x62,0xf1,0xff,0x96,0x1c +.byte 0x77,0xe9,0x53,0x7e,0x12,0x56,0x2d,0x4e,0x3e,0x1f,0xdb,0x1d,0x71,0x0e,0xdc,0xf7,0x65,0xb1,0x78,0x7f,0xe4,0xba,0xbf,0x7f,0x6c,0xcb,0x73,0xd3,0xe8,0xd9,0xce,0xfb,0xdb,0x48,0x87,0xe0,0x10,0x00,0x74,0xcb,0xdf,0x32,0xa8,0xdd,0x83,0x24,0x49,0xda,0x86,0x38,0x1c,0x2c,0x93,0x09,0x8a,0x26,0xbb,0x34,0x21,0x1d,0xac,0xb5,0x16,0xae +.byte 0xd8,0xcb,0x94,0x04,0xd6,0xbc,0xde,0x9c,0x70,0x28,0xa5,0x1a,0x15,0x5e,0x35,0xe4,0xe6,0x53,0xea,0x9c,0x3b,0x0c,0x36,0x3b,0x80,0x13,0x28,0x1d,0xc7,0x1a,0xa8,0x8e,0x9e,0x09,0xce,0x5d,0x50,0xd3,0xc7,0x6f,0x3a,0x75,0xa5,0x84,0x1c,0x08,0x66,0xe6,0x05,0xda,0x8b,0xf1,0x4b,0x5c,0xe2,0xc7,0x0f,0xa1,0xf1,0x47,0x02,0xf4,0xa7,0x24 +.byte 0xf3,0x0e,0x2c,0xa9,0xae,0x67,0xdf,0xce,0x30,0x88,0x4a,0x9a,0x39,0x4a,0x97,0x64,0xa8,0x30,0x53,0xf9,0x47,0x66,0x5c,0x19,0x1c,0xfb,0x2f,0x05,0x89,0x4f,0xfe,0x25,0xe7,0xed,0xed,0x17,0x5a,0x86,0xeb,0x25,0xee,0xe4,0x09,0x88,0x05,0x49,0x20,0x54,0x4b,0x7f,0x3e,0xb5,0x23,0x85,0xa9,0x66,0x61,0x73,0xe0,0x61,0x94,0xc6,0xe5,0x29 +.byte 0xb4,0xe1,0x6f,0xa4,0x4d,0x50,0x56,0x2e,0x30,0x75,0x51,0x5d,0xdd,0xa2,0x68,0x56,0x67,0xd8,0xec,0x2d,0x2a,0xfd,0x49,0xc5,0xbc,0xae,0x2f,0x6b,0xc7,0x8d,0x2e,0xca,0x91,0x35,0xe8,0xea,0x65,0xe9,0x9c,0x65,0xaf,0x8e,0xd5,0x16,0xdf,0xac,0x44,0x1e,0xb6,0x16,0xf0,0xb6,0x33,0x6a,0xe6,0x96,0x0f,0x85,0x2e,0xa1,0xaa,0x6a,0xe0,0x12 +.byte 0x0c,0xaa,0x7d,0xae,0xf7,0xe3,0xb2,0x4c,0x3c,0x10,0xc6,0x87,0x8e,0x87,0xfb,0xac,0xf7,0xd7,0x7a,0x2e,0x9a,0x7a,0xa7,0x4f,0xf0,0x75,0xce,0xbd,0xc3,0xe6,0x79,0x1d,0x56,0xab,0xff,0x56,0xfe,0x69,0xbd,0xcf,0x15,0x27,0x64,0x3c,0x83,0x1c,0x08,0xb0,0x91,0x60,0x67,0xe7,0x27,0x44,0x49,0x22,0x78,0xd5,0x1a,0xc8,0x3b,0x35,0x9b,0xa5 +.byte 0x53,0xce,0xde,0x04,0xd2,0x3e,0x67,0x48,0xaf,0x54,0xdf,0x9c,0xf7,0xb9,0xd4,0xe3,0xb6,0x85,0x02,0x68,0x21,0x10,0xdb,0xb5,0xca,0x11,0xa2,0x7c,0xcf,0x13,0x41,0x7a,0xfd,0xe9,0x0a,0x3c,0x53,0xd6,0x07,0xf2,0xdd,0xe2,0x7c,0x16,0xf0,0x44,0x3f,0x5d,0x34,0x09,0x7c,0x7b,0x21,0x8c,0x8e,0xdb,0x0d,0xc5,0x73,0xce,0x61,0xce,0x17,0x46 +.byte 0x6c,0x14,0x07,0xb5,0x70,0x80,0xf0,0x29,0x7c,0x13,0x41,0x2d,0x8e,0xdc,0x53,0xc2,0xbf,0xf0,0xc2,0xfb,0x59,0xa0,0x66,0x5f,0x25,0xda,0x17,0x5f,0xac,0xab,0x75,0x1b,0xc7,0x61,0x87,0x53,0x80,0x2e,0x11,0x4e,0x04,0x48,0xf9,0xee,0x54,0xe6,0x69,0x69,0x57,0xc2,0x46,0xd8,0xb3,0x2e,0x7b,0xc8,0xa5,0xd0,0xb2,0x5e,0xd4,0x6b,0x9b,0x1a +.byte 0xd6,0x79,0x9d,0x99,0xa6,0xbb,0x4d,0xca,0x74,0x2c,0x3d,0xd4,0x86,0xd0,0x64,0xd4,0x81,0x49,0x76,0x42,0xb8,0xf9,0x2c,0x52,0xe7,0x77,0x37,0x31,0xbb,0x2e,0x5b,0x38,0x81,0x01,0x2c,0x27,0x28,0xcb,0x0c,0xba,0xfa,0x8a,0x9a,0x45,0x51,0xa2,0xde,0xf2,0x7b,0xe6,0x65,0xec,0x5b,0x2d,0xe8,0x55,0x8e,0xb4,0x7f,0xf8,0x1a,0x66,0x3a,0x5f +.byte 0x06,0x10,0x15,0xb2,0x3d,0xb2,0x36,0x6e,0x9f,0x8e,0xe2,0x4c,0x78,0xe5,0x3a,0xac,0x21,0x16,0x20,0x30,0x0f,0x51,0x56,0xcb,0x53,0xca,0x70,0x3c,0xa2,0x3f,0x37,0x06,0x6c,0x70,0xec,0xf4,0x3d,0x7c,0x77,0xa0,0x61,0xc7,0x0e,0x26,0x9f,0x25,0xc0,0xf2,0x28,0xdb,0x57,0xbe,0xe6,0x4e,0x9c,0x4d,0x2e,0x48,0x50,0xc2,0xd4,0xfd,0x5e,0x52 +.byte 0x3f,0xd0,0x82,0xd1,0xd4,0x53,0xad,0x42,0x38,0xb1,0x02,0xd6,0xa0,0x34,0x7a,0xb4,0xb3,0xdd,0x91,0x12,0xf4,0x91,0xc9,0xa2,0x35,0x2d,0xdc,0x97,0xa1,0xdb,0x82,0xe7,0x92,0x99,0x66,0x13,0x99,0x20,0x95,0x1f,0x47,0x64,0x80,0x5e,0x5f,0x74,0x6b,0xa6,0xca,0x47,0x0b,0x24,0x72,0xa6,0x27,0xe7,0x56,0x61,0xa7,0x8e,0x62,0xa4,0xff,0x8e +.byte 0x29,0xf8,0x09,0xa4,0xbb,0x70,0x97,0x8a,0x39,0xe8,0x65,0xc8,0x52,0x23,0x9d,0xbf,0x10,0xe8,0x7d,0xbc,0x3c,0xc4,0x8b,0x1e,0x5c,0x75,0x94,0x24,0x62,0x3f,0x5b,0x2b,0x9a,0x08,0x00,0x78,0xfd,0x28,0x44,0x12,0x62,0x2a,0x6f,0x47,0x9d,0x57,0xb0,0x4e,0x3b,0xcd,0x01,0x7d,0x6e,0x62,0xe3,0x99,0x9c,0xae,0x6e,0xe2,0x70,0x7a,0x32,0xb4 +.byte 0xc1,0x19,0xb1,0x03,0x6b,0x92,0x89,0x4f,0x37,0xaf,0x36,0xee,0x5e,0x03,0x31,0x8c,0x41,0x27,0x17,0x21,0xdf,0xe4,0x34,0x97,0x8d,0xe7,0x41,0x47,0xf2,0x80,0x51,0x41,0x01,0xe4,0x0c,0x1a,0x09,0xfc,0x07,0xc3,0x94,0x07,0x6f,0xa7,0x6c,0xff,0x32,0x21,0xa5,0x01,0x8c,0xa2,0x88,0x3c,0xc8,0x57,0xe8,0x68,0x19,0x4a,0x46,0x7a,0x36,0xd2 +.byte 0x75,0x8e,0xc5,0xa4,0x84,0x91,0x13,0x7f,0xdd,0x2b,0x3c,0x2e,0xc4,0x92,0x29,0xb3,0x60,0x74,0xc8,0x81,0x58,0x0e,0xad,0x6a,0x9d,0xaa,0x81,0x49,0x26,0x0f,0xd4,0x2a,0x39,0xdd,0x4d,0x2b,0x13,0xdb,0x2e,0x72,0xe6,0x45,0x99,0xeb,0xe6,0xe5,0xd5,0x76,0xd4,0x19,0xd8,0xd7,0xa9,0x1f,0xce,0x7f,0xc4,0x1c,0x9e,0x6f,0x68,0x32,0xb1,0x26 +.byte 0xc4,0xb6,0x4e,0x9f,0xbf,0xdc,0xe0,0xde,0x54,0x9b,0xe0,0x04,0x03,0xae,0xc9,0xce,0x3a,0xcb,0x93,0xad,0xcc,0x1f,0x46,0xf6,0xbb,0xff,0x40,0x52,0x9c,0x64,0x97,0x5a,0x6f,0x8d,0x28,0x45,0x1c,0xf6,0x8b,0xcb,0xb9,0x38,0xb8,0x00,0xee,0xec,0xac,0x68,0x3f,0x50,0xcb,0x36,0x6e,0x97,0xfd,0xa5,0x1d,0x29,0x6e,0xfa,0x9f,0x4b,0x83,0xcd +.byte 0x0d,0x34,0xf3,0x1e,0x3f,0x0f,0x2e,0x89,0xeb,0xf7,0x8e,0x5f,0xe0,0x3b,0x39,0xd2,0xe8,0x87,0xe3,0xe7,0xe9,0xd0,0x1b,0x32,0x03,0x6b,0x3c,0x75,0x7d,0xe2,0x5c,0x3c,0x42,0xb4,0x46,0x69,0x0b,0xaf,0x0a,0x5d,0x1a,0x83,0x0b,0x0e,0x3c,0x5a,0x36,0xbd,0x5d,0xb6,0xad,0x4c,0xdd,0xf1,0x8d,0xbf,0x2b,0x70,0x8e,0xbc,0x92,0x95,0x1b,0x0f +.byte 0xed,0x3f,0xae,0x9e,0xa2,0x5a,0x50,0xe4,0xda,0xde,0x04,0x51,0x31,0xac,0xa4,0x0b,0x94,0xcc,0x14,0x87,0x59,0xa8,0x30,0x09,0xe6,0x46,0xb9,0x07,0x3e,0x1a,0xbf,0x5a,0x23,0x32,0xfb,0x60,0x63,0x24,0x25,0x12,0xf6,0x3e,0x2d,0xd0,0x8b,0x88,0x9b,0xe9,0x2d,0xab,0xf5,0xaf,0xba,0xbc,0xfe,0xab,0xb2,0x61,0x7a,0x7c,0xbb,0x28,0x6b,0x86 +.byte 0xe5,0xa2,0x9c,0x2c,0x5a,0x23,0x12,0x11,0xe5,0x72,0xe8,0x7b,0x6b,0x40,0xf1,0x91,0x37,0x3b,0x47,0x75,0x65,0xac,0x4d,0x22,0x59,0x75,0x13,0xb0,0x73,0xff,0x59,0xd1,0x1b,0xcc,0x05,0x1f,0xf2,0xc8,0x50,0x83,0xf1,0x28,0x38,0x0b,0xc3,0xa0,0x3b,0xe3,0x86,0xbb,0x9c,0x7e,0xc1,0xe9,0xcc,0xd9,0xb8,0x2b,0x05,0xf3,0x6f,0xc7,0x9d,0xaf +.byte 0x7b,0xb7,0x38,0x41,0xa3,0x50,0x8f,0x92,0xe0,0x63,0x35,0xb3,0x95,0x9f,0x80,0xf8,0x75,0xbb,0xf3,0x2b,0x0e,0xaf,0x32,0x6e,0xff,0xeb,0x79,0xca,0xbf,0x1c,0x4f,0x6c,0x9c,0x06,0xb2,0xeb,0x99,0x57,0x1f,0xf6,0x64,0x0b,0x81,0x57,0xba,0xf4,0x32,0x1e,0x77,0x37,0x55,0xb7,0xbc,0xba,0x70,0x0b,0x0d,0xdd,0x95,0x41,0xb5,0x17,0x5b,0x14 +.byte 0x10,0x9d,0x14,0x52,0x83,0x65,0x0a,0xf4,0x55,0xca,0xf8,0xbe,0xa6,0x3a,0xa0,0x6e,0xcc,0x83,0x84,0x65,0xb4,0x1c,0x7e,0x40,0xdd,0x32,0x36,0x5a,0x23,0x17,0x7d,0xb5,0xb9,0x38,0x48,0x5c,0x6f,0x23,0x54,0x0e,0x93,0x74,0x27,0x0f,0xfd,0x58,0xc1,0x97,0x26,0x78,0x9a,0xd3,0x85,0xc5,0xb2,0xb3,0x44,0xb7,0x36,0x85,0x69,0xde,0x3b,0xa1 +.byte 0x2b,0x11,0xef,0x75,0xfc,0xaa,0x92,0xf1,0xf1,0x72,0xa0,0x5f,0x33,0xf6,0x0b,0x72,0xdb,0xce,0x6c,0x2a,0x15,0x76,0x40,0xd4,0x85,0xff,0x96,0xe1,0x48,0xe1,0x27,0x8f,0x74,0xf3,0xfa,0xa1,0xb7,0x2a,0xb6,0x41,0x90,0x92,0x7e,0xfa,0xfc,0xad,0xa3,0x94,0x91,0x77,0xf1,0x8f,0xee,0xa2,0x64,0x47,0x01,0xb3,0x01,0x99,0x05,0xe7,0x31,0x4a +.byte 0xe8,0xd2,0x65,0x40,0x21,0xc4,0x83,0x8e,0xc9,0x89,0xda,0x16,0x7b,0xe0,0xcb,0xc0,0xc0,0x3d,0x37,0x18,0x66,0xe9,0x70,0x86,0x0b,0x6c,0xe8,0x65,0x44,0xce,0x3a,0xcd,0x84,0x1e,0xce,0x0e,0xe3,0xf9,0x77,0x12,0xfb,0xe6,0x92,0x8b,0x0d,0x7e,0x15,0x7a,0x34,0x94,0x2a,0xa7,0xc5,0x35,0xa4,0xfc,0xbe,0xa3,0x13,0x70,0xe4,0x6b,0x2f,0x71 +.byte 0x31,0xef,0xdb,0x79,0x44,0xf2,0x77,0xc7,0xc9,0x0d,0x1a,0x7b,0xff,0x34,0xf8,0xc9,0xe8,0xc9,0xc2,0xe0,0x0c,0x9e,0xd6,0xb4,0x7a,0xdb,0x1f,0x65,0xb8,0xd4,0x92,0xbf,0x7f,0x06,0x44,0xe3,0xb4,0xd8,0x14,0xe3,0x9b,0x49,0x81,0x12,0xec,0x7d,0x01,0xe2,0x50,0x2c,0x0e,0xfd,0x4b,0x84,0x3b,0x4d,0x89,0x1d,0x2e,0x4b,0xe9,0xda,0xa5,0x3f +.byte 0x19,0xc2,0x53,0x36,0x5d,0xd8,0xdc,0x6e,0xc3,0x48,0x8f,0x09,0xd5,0x95,0x4b,0x0c,0x7c,0x00,0x15,0x33,0x8e,0x1d,0x0c,0xdf,0x32,0x3b,0x93,0x1f,0xf5,0x49,0x4f,0xfd,0x8b,0x64,0xe7,0x96,0xaf,0x2f,0xc8,0xea,0xab,0x91,0x53,0x29,0xe3,0x31,0x0a,0x1c,0x6e,0xe0,0xbb,0x81,0x11,0x83,0xe0,0x07,0xfb,0x29,0x11,0x0f,0x0d,0x85,0xd4,0x61 +.byte 0x3c,0x75,0xbb,0x8a,0x23,0xb6,0xa0,0x7f,0xa4,0xbb,0x11,0xd4,0x75,0xde,0x27,0xe5,0xeb,0x11,0x5d,0x02,0xfe,0x5c,0x62,0x60,0x0f,0x6f,0x45,0x9b,0xfb,0xb7,0x32,0xa8,0x1c,0xd6,0xff,0x43,0x7b,0x53,0xee,0xa4,0x1f,0xf2,0xba,0xb6,0xb7,0xb7,0x39,0x18,0x85,0x79,0x77,0x27,0x30,0x26,0xe4,0xef,0xd1,0x39,0xc9,0xa2,0x0d,0x50,0xd7,0xef +.byte 0x9e,0xd8,0x8e,0xd2,0x74,0x1a,0x3f,0x99,0x24,0xf4,0x8b,0x4d,0x02,0x63,0x18,0x3a,0xaf,0x26,0xef,0xfc,0x1d,0xfe,0x46,0xc1,0x55,0xd7,0x92,0x65,0x2f,0xe7,0x4f,0x47,0xa8,0x2f,0x5d,0x47,0x67,0xeb,0x62,0x1d,0x69,0xa6,0x0e,0x51,0x1d,0x2c,0xed,0x6e,0x94,0xe9,0x48,0x4c,0x22,0xc2,0x93,0x79,0x6f,0x1b,0xc2,0x93,0x61,0x3d,0x8b,0xba +.byte 0xcb,0xe9,0x4a,0x88,0x5e,0x19,0x50,0x14,0xfe,0xda,0x3f,0x4d,0x47,0x54,0xfc,0x1c,0x09,0x77,0x37,0x30,0xfe,0x75,0x9f,0xdd,0xa4,0x74,0x04,0x04,0x88,0xe0,0xac,0x93,0x64,0x6f,0xbf,0x50,0xd8,0xf0,0xf7,0xa0,0xfa,0x98,0x49,0xfa,0xf7,0x6e,0xcf,0xa2,0xbf,0xb6,0x07,0x15,0x0e,0x4e,0x21,0x74,0x0a,0xa6,0xa3,0x67,0xce,0xf9,0x3b,0xd6 +.byte 0x4c,0xc8,0x43,0xe3,0x3b,0x3b,0x6a,0x86,0x62,0x3f,0x5a,0xf3,0x3f,0xf9,0xeb,0xbf,0xa3,0x2a,0x83,0x8a,0x70,0x8f,0x01,0x65,0x17,0x9a,0xa6,0x26,0x3b,0x09,0x06,0x22,0x19,0xed,0xd7,0x25,0x4b,0xd2,0x9a,0x30,0xfe,0x1c,0x82,0x68,0x16,0x04,0x0e,0x04,0x8f,0xc6,0x92,0xbe,0xe4,0x43,0x98,0x1d,0x3b,0x10,0x15,0x5b,0xef,0x4e,0x60,0x5e +.byte 0x6b,0xc9,0xde,0xb8,0x47,0x02,0x86,0x45,0x39,0x7a,0x1a,0xef,0x67,0x28,0xc5,0x40,0x73,0x2a,0xa7,0x12,0x9d,0x58,0x3a,0x34,0xc2,0xda,0x34,0xb0,0x48,0xd9,0x34,0xcd,0x18,0xe9,0x76,0x41,0x78,0x8f,0xe5,0xe8,0x3d,0xb2,0x01,0x3b,0x84,0xd1,0xca,0x5e,0x26,0x1d,0x8c,0xea,0xe1,0x46,0xa3,0xf9,0x11,0xac,0x0d,0x98,0x9f,0xd3,0x46,0x79 +.byte 0xff,0xad,0x99,0x32,0x63,0x96,0xbc,0x57,0x39,0x16,0xce,0x06,0x7e,0x63,0x78,0x7b,0x86,0x92,0x1a,0xe1,0x45,0xc0,0x73,0xe1,0xec,0xfc,0x88,0x8f,0xf8,0x36,0x0f,0x54,0x76,0x02,0x98,0x49,0x40,0xb9,0xef,0xd8,0x13,0x68,0xf5,0x1d,0x0a,0x98,0x65,0x21,0xc5,0x1a,0x22,0x4e,0x8e,0xad,0xa9,0x52,0x57,0xc4,0xc6,0xa8,0x48,0x01,0x7a,0x78 +.byte 0xc9,0xfc,0xdd,0xf3,0xc3,0x83,0xc0,0x06,0xb5,0x56,0x84,0xe2,0x0c,0x6b,0x80,0xd9,0x59,0xa1,0x3d,0xe3,0x56,0xf0,0xe3,0x3f,0x93,0x61,0xf7,0x8c,0x6b,0x40,0x65,0x6e,0x01,0xc2,0xa1,0xc1,0xb8,0x9b,0x15,0x6c,0xa1,0x18,0x4a,0x6c,0x8b,0x18,0x2d,0x8e,0x71,0x7a,0xa1,0x26,0xc1,0x4b,0xac,0x0c,0xca,0x08,0x33,0xef,0x35,0x33,0x63,0xeb +.byte 0x57,0x6e,0x7e,0x36,0xe0,0x31,0xad,0x10,0x76,0xb7,0x45,0xd9,0x3a,0x92,0x66,0x69,0x13,0x61,0x59,0x87,0xfd,0x6b,0xf1,0x46,0x0a,0x7a,0x3f,0x29,0x88,0x5b,0x7d,0xef,0x07,0x02,0xa8,0xa1,0xdc,0xd4,0x0e,0x77,0x8f,0x68,0x32,0xbd,0x8e,0xd6,0x0b,0xe4,0xd1,0x75,0xc1,0xb0,0x74,0x6c,0x0e,0xc3,0x46,0x79,0x36,0x3b,0x5f,0x0e,0xa0,0xad +.byte 0x28,0x8c,0xcb,0x01,0x8e,0x58,0x14,0x09,0xf1,0xd4,0x3b,0x2e,0xdc,0xbf,0x37,0x95,0x26,0xda,0xb6,0xcf,0xc8,0xa1,0xd4,0xec,0x72,0xf3,0x44,0xf5,0x4e,0x27,0x9b,0x2e,0x7c,0xfa,0x37,0x16,0x1d,0x7f,0x90,0x86,0xae,0x96,0x3b,0xe1,0xda,0xf7,0xc4,0x54,0x0b,0x51,0x7e,0x83,0xbe,0xed,0xd6,0x5f,0xd2,0x6d,0xbb,0xd3,0xc6,0x53,0x95,0x65 +.byte 0x3d,0x19,0xc2,0xc5,0xdf,0x47,0x00,0x2c,0x4b,0x2d,0xec,0x32,0xd5,0x28,0xb5,0x30,0xe0,0x79,0x15,0x2e,0xab,0x97,0xa8,0xcf,0xc5,0x40,0x98,0x30,0x22,0x9f,0xbc,0xdb,0x65,0x06,0xfc,0x58,0xe5,0x55,0x5b,0xe2,0xf8,0x6e,0xc6,0xfc,0xec,0x6c,0x14,0xd2,0xe3,0x9a,0x71,0x8a,0x61,0xea,0x39,0xc6,0x77,0x94,0xdf,0x7b,0x99,0x71,0xdd,0x18 +.byte 0xc6,0x03,0x2d,0x49,0xf6,0xc3,0xe8,0x2b,0x7e,0x3f,0x28,0xfc,0xc8,0xa1,0xb0,0x15,0x31,0x7e,0x83,0xb8,0x14,0x34,0x0e,0x7f,0xde,0x74,0x7b,0xbf,0xb7,0x8e,0xd9,0x31,0x90,0x16,0xb6,0x57,0x14,0x4a,0xc6,0x67,0x3d,0xb9,0x46,0x92,0xf2,0xf9,0x94,0x36,0x2b,0xd6,0x1f,0x84,0xa5,0x8c,0x0f,0xd9,0x8c,0x5f,0x97,0x7a,0x7b,0xff,0xc9,0xf5 +.byte 0x5e,0x13,0x5f,0x19,0x58,0xba,0xa6,0xe8,0x29,0xf4,0xb8,0x7e,0x98,0xb7,0xef,0x1b,0x00,0xe8,0x90,0x8f,0x86,0x4c,0xe0,0x51,0x13,0x8b,0xa1,0x37,0x40,0x38,0x51,0x2f,0x5a,0x9b,0x63,0x8f,0xce,0x9a,0x97,0x07,0x0d,0x8e,0xce,0xb1,0x66,0x89,0x78,0xca,0xa6,0x0c,0x20,0xc4,0xf1,0xe3,0xab,0xe2,0x1c,0x83,0x2b,0x46,0x97,0xe8,0x8f,0x94 +.byte 0xb4,0x71,0x40,0xde,0xa1,0x05,0x4b,0xed,0xbf,0x0c,0x46,0xe1,0x25,0xf1,0xd0,0x5a,0xdb,0x9c,0x2a,0x09,0x03,0x80,0x24,0xc1,0x22,0x02,0xa5,0xde,0xf6,0x4c,0xbc,0x93,0x37,0xa9,0x28,0xb3,0x92,0x19,0xa8,0x3f,0x71,0x90,0x62,0x78,0xaa,0x9a,0x0c,0xab,0x50,0xaf,0x89,0x2b,0xf1,0xf4,0x12,0xbd,0xc9,0xd5,0xee,0x64,0x8b,0x48,0x21,0xd6 +.byte 0xa1,0xa1,0xf2,0x68,0x4a,0xf8,0x06,0x3e,0x20,0x31,0x66,0xb7,0x2f,0x64,0x01,0x5a,0x46,0x14,0x85,0xfb,0xde,0x04,0xc3,0xe4,0xd6,0x25,0x14,0xa0,0xbe,0x4d,0x39,0xd8,0xe0,0x9b,0xb7,0x6b,0x00,0xe6,0x46,0xfb,0xcc,0xa8,0xad,0x67,0x12,0x2c,0x53,0x2c,0xb6,0x9f,0x6e,0xfe,0xbc,0xcc,0x2c,0xa8,0x09,0x17,0x00,0x8e,0xf1,0xf4,0x3e,0xa9 +.byte 0x92,0x4d,0x83,0xe6,0x3c,0xf0,0xd3,0x1c,0xaf,0x84,0x2c,0x59,0x7e,0xda,0x1e,0xfd,0x7d,0xf3,0xef,0x93,0x05,0x03,0xb0,0x76,0x69,0xb5,0x51,0xa8,0x65,0x8f,0x8a,0xf8,0x55,0x92,0x08,0xfe,0xbf,0xc1,0x95,0x98,0x58,0xb1,0xd3,0xb6,0x78,0x4f,0x2f,0x25,0xcb,0x9d,0x32,0x4f,0xa6,0xcc,0xf8,0x36,0xff,0x72,0xb3,0x93,0x3d,0xd8,0x0b,0xe6 +.byte 0xc6,0xf6,0xed,0xcc,0x2a,0xa5,0x44,0x6e,0xe2,0x2d,0x6e,0x02,0xb4,0x7c,0x24,0x7f,0x57,0x02,0x84,0x61,0x8e,0xbd,0x32,0x4e,0x41,0x92,0x01,0x1b,0x8b,0x1d,0xd1,0x1e,0x31,0xc1,0x4c,0x5b,0x0c,0xa7,0x48,0x52,0x67,0xc2,0xd9,0xdc,0x86,0x9d,0xbd,0x6c,0x19,0x95,0x00,0xf0,0xd4,0x47,0xaf,0xfe,0x5d,0xa5,0x81,0xbd,0x1b,0x42,0x62,0xce +.byte 0x18,0x1b,0xa3,0x6f,0xf5,0x0b,0xb7,0x6a,0x3d,0xe3,0xcc,0x41,0x27,0xcd,0x49,0x4b,0xe5,0x2b,0xc4,0x28,0xfa,0xbe,0xd5,0x7e,0xb7,0xac,0xab,0x64,0x3b,0xe3,0x87,0xb1,0x33,0x8b,0xa8,0xe5,0x75,0xce,0x61,0x57,0x89,0xad,0x5f,0x61,0xdd,0x7c,0x06,0x2a,0x3f,0x50,0xb8,0x7e,0xd2,0xfb,0x32,0x83,0x07,0xd4,0xc5,0x3f,0xad,0x64,0x59,0x1f +.byte 0x21,0x59,0x6f,0x1b,0xd7,0x40,0x89,0x28,0x18,0xac,0xca,0xee,0x92,0x1c,0x0d,0x88,0x98,0x7a,0x75,0x68,0xe0,0xe2,0x96,0xda,0x88,0xb3,0xc6,0x21,0x02,0x34,0xfa,0xae,0x0b,0x38,0xcf,0x1c,0x6c,0x7a,0xc9,0xd9,0x5f,0xf0,0x4c,0x73,0xfd,0xe6,0x14,0xf3,0x39,0xed,0xbc,0x28,0x2f,0xf8,0x79,0x02,0x39,0x05,0xf3,0x6a,0x88,0xd9,0x03,0xe2 +.byte 0xb9,0x65,0x81,0x3a,0x34,0x80,0x3f,0x17,0x37,0x1e,0xe8,0x7d,0x41,0x49,0xfb,0x70,0x5d,0x58,0x3a,0x71,0x7b,0x3e,0xd3,0x83,0x0b,0x1b,0x11,0xfc,0x53,0xce,0xc6,0xc4,0x39,0x55,0xbe,0xbe,0x32,0xa5,0x88,0xab,0xcd,0x38,0x78,0x3e,0x52,0xaf,0x64,0x42,0x10,0xc3,0x70,0x81,0x76,0xe9,0x7d,0x8e,0x46,0x41,0xca,0x2c,0x0c,0x4c,0x30,0xd3 +.byte 0xca,0x38,0xa3,0x97,0x2e,0x0f,0xa5,0x18,0x3b,0xaa,0x0f,0x00,0x75,0x35,0x9c,0xcd,0x28,0x83,0xd4,0xa7,0x7c,0xb9,0xcd,0xb5,0x55,0x29,0x4c,0x14,0xcd,0xfc,0x8f,0xaf,0x7d,0x69,0x4f,0xf7,0x0f,0xed,0x7c,0xa5,0x79,0x9d,0x36,0xbb,0x72,0xbc,0xf2,0x14,0xfd,0xf0,0x04,0x2a,0x89,0x1e,0xf7,0x80,0x4c,0x5e,0xb8,0xc1,0xdb,0xfa,0x3c,0x27 +.byte 0xbb,0x30,0x08,0x2b,0xd2,0xf8,0xdb,0xe0,0x8c,0x00,0xe4,0xca,0xa9,0xde,0xb0,0x14,0x5b,0xec,0x6b,0xe6,0x5c,0x90,0x17,0x02,0x59,0x5f,0x5f,0x51,0xf8,0x30,0x10,0x11,0xc4,0xdf,0x37,0x30,0x32,0xb1,0x4d,0x49,0xfe,0x82,0x87,0xd2,0x42,0xf5,0x38,0x76,0xf9,0xa5,0x28,0xfc,0x14,0xb2,0xe0,0x72,0x82,0xde,0xc8,0x47,0x9e,0x8f,0x8a,0xb5 +.byte 0x85,0x44,0x42,0x12,0xc6,0xc0,0xa5,0x60,0x5a,0x27,0xd0,0x36,0x14,0x7b,0x2a,0x83,0x98,0x92,0x08,0xe9,0x03,0xc9,0xc3,0xd3,0x36,0x97,0xba,0x5e,0xd5,0x51,0xcc,0x44,0xeb,0x81,0x76,0xae,0x28,0x94,0x0b,0xf6,0xc7,0xeb,0xae,0x61,0x6f,0x7b,0x34,0xb5,0x8c,0x5f,0x31,0xb6,0x23,0xe3,0xe7,0x4b,0x60,0xe6,0xba,0x8d,0x0e,0xd1,0xb2,0x37 +.byte 0x72,0x3d,0xc1,0x75,0x9b,0x5e,0xcb,0x0f,0xf9,0xe4,0xdb,0x82,0x4c,0xc4,0x37,0xef,0x9d,0xde,0x16,0x85,0xe9,0xc2,0x03,0xd8,0x5b,0xa1,0xff,0xfa,0xd4,0xd7,0x5c,0x34,0xb6,0x1e,0x25,0x96,0xf5,0x8b,0xc3,0xee,0x16,0x1f,0xf8,0x55,0x4e,0x1c,0x83,0x80,0x77,0x1d,0x4f,0xb6,0x95,0x1c,0x91,0x7d,0x50,0x25,0xf4,0x2a,0x5d,0x2e,0xc7,0x8a +.byte 0x14,0xf8,0xb9,0xbc,0xab,0x5b,0xcd,0x47,0xb5,0xaf,0x85,0xc0,0x34,0x27,0x7d,0x6a,0x8c,0x84,0x8a,0xae,0x68,0x60,0x0e,0xa1,0x45,0xf7,0x83,0x66,0x91,0x69,0x30,0xed,0x26,0x5e,0xf5,0x48,0x6b,0x20,0xb3,0x11,0x50,0xf7,0x70,0x9d,0x10,0x50,0x44,0x87,0xfe,0x96,0x5c,0xc6,0xa4,0xa4,0xed,0x5e,0x7f,0x3d,0x90,0x19,0xbe,0x31,0xa3,0xdd +.byte 0x44,0xbb,0x9b,0x51,0x5a,0x06,0x1d,0x2e,0xd7,0xef,0xd1,0x81,0xb6,0xec,0xc6,0x89,0xfb,0x13,0xc5,0x21,0xef,0x9a,0x1a,0x48,0xf2,0xf8,0xb3,0xa3,0xec,0x7f,0x85,0xc1,0xc6,0x8c,0x5f,0xa9,0x30,0x38,0x25,0x1e,0x8d,0xcf,0x18,0x24,0xef,0x5a,0x9a,0x14,0x31,0xc0,0x2c,0x88,0xa5,0x3f,0x50,0x8b,0xb1,0xda,0x5d,0x26,0xd9,0xd3,0x81,0xb1 +.byte 0xec,0xf0,0x42,0x88,0xd0,0x81,0x51,0xf9,0x1b,0xbc,0x43,0xa4,0x37,0xf1,0xd7,0x90,0x21,0x7e,0xa0,0x3e,0x63,0xfb,0x21,0xfa,0x12,0xfb,0xde,0xc7,0xbf,0xb3,0x58,0xe7,0x76,0x42,0x20,0x01,0x3d,0x66,0x80,0xf1,0xb8,0xaf,0xfa,0x7d,0x96,0x89,0x36,0x48,0x95,0xd9,0x6e,0x6d,0xe6,0x4f,0xff,0x2a,0x47,0x61,0xf2,0x04,0xb7,0x83,0x14,0xce +.byte 0x0a,0x3c,0x73,0x17,0x50,0x88,0x03,0x25,0x4a,0xe3,0x13,0x55,0x8b,0x7e,0x50,0x38,0xfc,0x14,0x0b,0x04,0x8e,0xa8,0x5b,0xd6,0x72,0x20,0x60,0xe9,0xaa,0x22,0x82,0x11,0xc6,0xc4,0xd7,0xb9,0xc8,0x0c,0x7e,0x05,0xfb,0x90,0xe4,0x9c,0x28,0x89,0x29,0x99,0x63,0x4d,0xec,0x7b,0x50,0xbd,0xd8,0xa3,0x5b,0x50,0x77,0x19,0x81,0x92,0xce,0x82 +.size ecp_nistz256_precomputed,.-ecp_nistz256_precomputed +.align 5 +.Lpoly: +.quad 0xffffffffffffffff,0x00000000ffffffff,0x0000000000000000,0xffffffff00000001 +.LRR: // 2^512 mod P precomputed for NIST P256 polynomial +.quad 0x0000000000000003,0xfffffffbffffffff,0xfffffffffffffffe,0x00000004fffffffd +.Lone_mont: +.quad 0x0000000000000001,0xffffffff00000000,0xffffffffffffffff,0x00000000fffffffe +.Lone: +.quad 1,0,0,0 +.Lord: +.quad 0xf3b9cac2fc632551,0xbce6faada7179e84,0xffffffffffffffff,0xffffffff00000000 +.LordK: +.quad 0xccd1c8aaee00bc4f +.byte 69,67,80,95,78,73,83,84,90,50,53,54,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 2 + +// void ecp_nistz256_to_mont(BN_ULONG x0[4],const BN_ULONG x1[4]); +.globl ecp_nistz256_to_mont +.type ecp_nistz256_to_mont,%function +.align 6 +ecp_nistz256_to_mont: +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-32]! + add x29,sp,#0 + stp x19,x20,[sp,#16] + + ldr x3,.LRR // bp[0] + ldp x4,x5,[x1] + ldp x6,x7,[x1,#16] + ldr x12,.Lpoly+8 + ldr x13,.Lpoly+24 + adr x2,.LRR // &bp[0] + + bl __ecp_nistz256_mul_mont + + ldp x19,x20,[sp,#16] + ldp x29,x30,[sp],#32 +.inst 0xd50323bf // autiasp + ret +.size ecp_nistz256_to_mont,.-ecp_nistz256_to_mont + +// void ecp_nistz256_from_mont(BN_ULONG x0[4],const BN_ULONG x1[4]); +.globl ecp_nistz256_from_mont +.type ecp_nistz256_from_mont,%function +.align 4 +ecp_nistz256_from_mont: +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-32]! + add x29,sp,#0 + stp x19,x20,[sp,#16] + + mov x3,#1 // bp[0] + ldp x4,x5,[x1] + ldp x6,x7,[x1,#16] + ldr x12,.Lpoly+8 + ldr x13,.Lpoly+24 + adr x2,.Lone // &bp[0] + + bl __ecp_nistz256_mul_mont + + ldp x19,x20,[sp,#16] + ldp x29,x30,[sp],#32 +.inst 0xd50323bf // autiasp + ret +.size ecp_nistz256_from_mont,.-ecp_nistz256_from_mont + +// void ecp_nistz256_mul_mont(BN_ULONG x0[4],const BN_ULONG x1[4], +// const BN_ULONG x2[4]); +.globl ecp_nistz256_mul_mont +.type ecp_nistz256_mul_mont,%function +.align 4 +ecp_nistz256_mul_mont: +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-32]! + add x29,sp,#0 + stp x19,x20,[sp,#16] + + ldr x3,[x2] // bp[0] + ldp x4,x5,[x1] + ldp x6,x7,[x1,#16] + ldr x12,.Lpoly+8 + ldr x13,.Lpoly+24 + + bl __ecp_nistz256_mul_mont + + ldp x19,x20,[sp,#16] + ldp x29,x30,[sp],#32 +.inst 0xd50323bf // autiasp + ret +.size ecp_nistz256_mul_mont,.-ecp_nistz256_mul_mont + +// void ecp_nistz256_sqr_mont(BN_ULONG x0[4],const BN_ULONG x1[4]); +.globl ecp_nistz256_sqr_mont +.type ecp_nistz256_sqr_mont,%function +.align 4 +ecp_nistz256_sqr_mont: +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-32]! + add x29,sp,#0 + stp x19,x20,[sp,#16] + + ldp x4,x5,[x1] + ldp x6,x7,[x1,#16] + ldr x12,.Lpoly+8 + ldr x13,.Lpoly+24 + + bl __ecp_nistz256_sqr_mont + + ldp x19,x20,[sp,#16] + ldp x29,x30,[sp],#32 +.inst 0xd50323bf // autiasp + ret +.size ecp_nistz256_sqr_mont,.-ecp_nistz256_sqr_mont + +// void ecp_nistz256_add(BN_ULONG x0[4],const BN_ULONG x1[4], +// const BN_ULONG x2[4]); +.globl ecp_nistz256_add +.type ecp_nistz256_add,%function +.align 4 +ecp_nistz256_add: +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + + ldp x14,x15,[x1] + ldp x8,x9,[x2] + ldp x16,x17,[x1,#16] + ldp x10,x11,[x2,#16] + ldr x12,.Lpoly+8 + ldr x13,.Lpoly+24 + + bl __ecp_nistz256_add + + ldp x29,x30,[sp],#16 +.inst 0xd50323bf // autiasp + ret +.size ecp_nistz256_add,.-ecp_nistz256_add + +// void ecp_nistz256_div_by_2(BN_ULONG x0[4],const BN_ULONG x1[4]); +.globl ecp_nistz256_div_by_2 +.type ecp_nistz256_div_by_2,%function +.align 4 +ecp_nistz256_div_by_2: +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + + ldp x14,x15,[x1] + ldp x16,x17,[x1,#16] + ldr x12,.Lpoly+8 + ldr x13,.Lpoly+24 + + bl __ecp_nistz256_div_by_2 + + ldp x29,x30,[sp],#16 +.inst 0xd50323bf // autiasp + ret +.size ecp_nistz256_div_by_2,.-ecp_nistz256_div_by_2 + +// void ecp_nistz256_mul_by_2(BN_ULONG x0[4],const BN_ULONG x1[4]); +.globl ecp_nistz256_mul_by_2 +.type ecp_nistz256_mul_by_2,%function +.align 4 +ecp_nistz256_mul_by_2: +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + + ldp x14,x15,[x1] + ldp x16,x17,[x1,#16] + ldr x12,.Lpoly+8 + ldr x13,.Lpoly+24 + mov x8,x14 + mov x9,x15 + mov x10,x16 + mov x11,x17 + + bl __ecp_nistz256_add // ret = a+a // 2*a + + ldp x29,x30,[sp],#16 +.inst 0xd50323bf // autiasp + ret +.size ecp_nistz256_mul_by_2,.-ecp_nistz256_mul_by_2 + +// void ecp_nistz256_mul_by_3(BN_ULONG x0[4],const BN_ULONG x1[4]); +.globl ecp_nistz256_mul_by_3 +.type ecp_nistz256_mul_by_3,%function +.align 4 +ecp_nistz256_mul_by_3: +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + + ldp x14,x15,[x1] + ldp x16,x17,[x1,#16] + ldr x12,.Lpoly+8 + ldr x13,.Lpoly+24 + mov x8,x14 + mov x9,x15 + mov x10,x16 + mov x11,x17 + mov x4,x14 + mov x5,x15 + mov x6,x16 + mov x7,x17 + + bl __ecp_nistz256_add // ret = a+a // 2*a + + mov x8,x4 + mov x9,x5 + mov x10,x6 + mov x11,x7 + + bl __ecp_nistz256_add // ret += a // 2*a+a=3*a + + ldp x29,x30,[sp],#16 +.inst 0xd50323bf // autiasp + ret +.size ecp_nistz256_mul_by_3,.-ecp_nistz256_mul_by_3 + +// void ecp_nistz256_sub(BN_ULONG x0[4],const BN_ULONG x1[4], +// const BN_ULONG x2[4]); +.globl ecp_nistz256_sub +.type ecp_nistz256_sub,%function +.align 4 +ecp_nistz256_sub: +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + + ldp x14,x15,[x1] + ldp x16,x17,[x1,#16] + ldr x12,.Lpoly+8 + ldr x13,.Lpoly+24 + + bl __ecp_nistz256_sub_from + + ldp x29,x30,[sp],#16 +.inst 0xd50323bf // autiasp + ret +.size ecp_nistz256_sub,.-ecp_nistz256_sub + +// void ecp_nistz256_neg(BN_ULONG x0[4],const BN_ULONG x1[4]); +.globl ecp_nistz256_neg +.type ecp_nistz256_neg,%function +.align 4 +ecp_nistz256_neg: +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + + mov x2,x1 + mov x14,xzr // a = 0 + mov x15,xzr + mov x16,xzr + mov x17,xzr + ldr x12,.Lpoly+8 + ldr x13,.Lpoly+24 + + bl __ecp_nistz256_sub_from + + ldp x29,x30,[sp],#16 +.inst 0xd50323bf // autiasp + ret +.size ecp_nistz256_neg,.-ecp_nistz256_neg + +// note that __ecp_nistz256_mul_mont expects a[0-3] input pre-loaded +// to x4-x7 and b[0] - to x3 +.type __ecp_nistz256_mul_mont,%function +.align 4 +__ecp_nistz256_mul_mont: + mul x14,x4,x3 // a[0]*b[0] + umulh x8,x4,x3 + + mul x15,x5,x3 // a[1]*b[0] + umulh x9,x5,x3 + + mul x16,x6,x3 // a[2]*b[0] + umulh x10,x6,x3 + + mul x17,x7,x3 // a[3]*b[0] + umulh x11,x7,x3 + ldr x3,[x2,#8] // b[1] + + adds x15,x15,x8 // accumulate high parts of multiplication + lsl x8,x14,#32 + adcs x16,x16,x9 + lsr x9,x14,#32 + adcs x17,x17,x10 + adc x19,xzr,x11 + mov x20,xzr + subs x10,x14,x8 // "*0xffff0001" + sbc x11,x14,x9 + adds x14,x15,x8 // +=acc[0]<<96 and omit acc[0] + mul x8,x4,x3 // lo(a[0]*b[i]) + adcs x15,x16,x9 + mul x9,x5,x3 // lo(a[1]*b[i]) + adcs x16,x17,x10 // +=acc[0]*0xffff0001 + mul x10,x6,x3 // lo(a[2]*b[i]) + adcs x17,x19,x11 + mul x11,x7,x3 // lo(a[3]*b[i]) + adc x19,x20,xzr + + adds x14,x14,x8 // accumulate low parts of multiplication + umulh x8,x4,x3 // hi(a[0]*b[i]) + adcs x15,x15,x9 + umulh x9,x5,x3 // hi(a[1]*b[i]) + adcs x16,x16,x10 + umulh x10,x6,x3 // hi(a[2]*b[i]) + adcs x17,x17,x11 + umulh x11,x7,x3 // hi(a[3]*b[i]) + adc x19,x19,xzr + ldr x3,[x2,#8*(1+1)] // b[1+1] + adds x15,x15,x8 // accumulate high parts of multiplication + lsl x8,x14,#32 + adcs x16,x16,x9 + lsr x9,x14,#32 + adcs x17,x17,x10 + adcs x19,x19,x11 + adc x20,xzr,xzr + subs x10,x14,x8 // "*0xffff0001" + sbc x11,x14,x9 + adds x14,x15,x8 // +=acc[0]<<96 and omit acc[0] + mul x8,x4,x3 // lo(a[0]*b[i]) + adcs x15,x16,x9 + mul x9,x5,x3 // lo(a[1]*b[i]) + adcs x16,x17,x10 // +=acc[0]*0xffff0001 + mul x10,x6,x3 // lo(a[2]*b[i]) + adcs x17,x19,x11 + mul x11,x7,x3 // lo(a[3]*b[i]) + adc x19,x20,xzr + + adds x14,x14,x8 // accumulate low parts of multiplication + umulh x8,x4,x3 // hi(a[0]*b[i]) + adcs x15,x15,x9 + umulh x9,x5,x3 // hi(a[1]*b[i]) + adcs x16,x16,x10 + umulh x10,x6,x3 // hi(a[2]*b[i]) + adcs x17,x17,x11 + umulh x11,x7,x3 // hi(a[3]*b[i]) + adc x19,x19,xzr + ldr x3,[x2,#8*(2+1)] // b[2+1] + adds x15,x15,x8 // accumulate high parts of multiplication + lsl x8,x14,#32 + adcs x16,x16,x9 + lsr x9,x14,#32 + adcs x17,x17,x10 + adcs x19,x19,x11 + adc x20,xzr,xzr + subs x10,x14,x8 // "*0xffff0001" + sbc x11,x14,x9 + adds x14,x15,x8 // +=acc[0]<<96 and omit acc[0] + mul x8,x4,x3 // lo(a[0]*b[i]) + adcs x15,x16,x9 + mul x9,x5,x3 // lo(a[1]*b[i]) + adcs x16,x17,x10 // +=acc[0]*0xffff0001 + mul x10,x6,x3 // lo(a[2]*b[i]) + adcs x17,x19,x11 + mul x11,x7,x3 // lo(a[3]*b[i]) + adc x19,x20,xzr + + adds x14,x14,x8 // accumulate low parts of multiplication + umulh x8,x4,x3 // hi(a[0]*b[i]) + adcs x15,x15,x9 + umulh x9,x5,x3 // hi(a[1]*b[i]) + adcs x16,x16,x10 + umulh x10,x6,x3 // hi(a[2]*b[i]) + adcs x17,x17,x11 + umulh x11,x7,x3 // hi(a[3]*b[i]) + adc x19,x19,xzr + adds x15,x15,x8 // accumulate high parts of multiplication + lsl x8,x14,#32 + adcs x16,x16,x9 + lsr x9,x14,#32 + adcs x17,x17,x10 + adcs x19,x19,x11 + adc x20,xzr,xzr + // last reduction + subs x10,x14,x8 // "*0xffff0001" + sbc x11,x14,x9 + adds x14,x15,x8 // +=acc[0]<<96 and omit acc[0] + adcs x15,x16,x9 + adcs x16,x17,x10 // +=acc[0]*0xffff0001 + adcs x17,x19,x11 + adc x19,x20,xzr + + adds x8,x14,#1 // subs x8,x14,#-1 // tmp = ret-modulus + sbcs x9,x15,x12 + sbcs x10,x16,xzr + sbcs x11,x17,x13 + sbcs xzr,x19,xzr // did it borrow? + + csel x14,x14,x8,lo // ret = borrow ? ret : ret-modulus + csel x15,x15,x9,lo + csel x16,x16,x10,lo + stp x14,x15,[x0] + csel x17,x17,x11,lo + stp x16,x17,[x0,#16] + + ret +.size __ecp_nistz256_mul_mont,.-__ecp_nistz256_mul_mont + +// note that __ecp_nistz256_sqr_mont expects a[0-3] input pre-loaded +// to x4-x7 +.type __ecp_nistz256_sqr_mont,%function +.align 4 +__ecp_nistz256_sqr_mont: + // | | | | | |a1*a0| | + // | | | | |a2*a0| | | + // | |a3*a2|a3*a0| | | | + // | | | |a2*a1| | | | + // | | |a3*a1| | | | | + // *| | | | | | | | 2| + // +|a3*a3|a2*a2|a1*a1|a0*a0| + // |--+--+--+--+--+--+--+--| + // |A7|A6|A5|A4|A3|A2|A1|A0|, where Ax is , i.e. follow + // + // "can't overflow" below mark carrying into high part of + // multiplication result, which can't overflow, because it + // can never be all ones. + + mul x15,x5,x4 // a[1]*a[0] + umulh x9,x5,x4 + mul x16,x6,x4 // a[2]*a[0] + umulh x10,x6,x4 + mul x17,x7,x4 // a[3]*a[0] + umulh x19,x7,x4 + + adds x16,x16,x9 // accumulate high parts of multiplication + mul x8,x6,x5 // a[2]*a[1] + umulh x9,x6,x5 + adcs x17,x17,x10 + mul x10,x7,x5 // a[3]*a[1] + umulh x11,x7,x5 + adc x19,x19,xzr // can't overflow + + mul x20,x7,x6 // a[3]*a[2] + umulh x1,x7,x6 + + adds x9,x9,x10 // accumulate high parts of multiplication + mul x14,x4,x4 // a[0]*a[0] + adc x10,x11,xzr // can't overflow + + adds x17,x17,x8 // accumulate low parts of multiplication + umulh x4,x4,x4 + adcs x19,x19,x9 + mul x9,x5,x5 // a[1]*a[1] + adcs x20,x20,x10 + umulh x5,x5,x5 + adc x1,x1,xzr // can't overflow + + adds x15,x15,x15 // acc[1-6]*=2 + mul x10,x6,x6 // a[2]*a[2] + adcs x16,x16,x16 + umulh x6,x6,x6 + adcs x17,x17,x17 + mul x11,x7,x7 // a[3]*a[3] + adcs x19,x19,x19 + umulh x7,x7,x7 + adcs x20,x20,x20 + adcs x1,x1,x1 + adc x2,xzr,xzr + + adds x15,x15,x4 // +a[i]*a[i] + adcs x16,x16,x9 + adcs x17,x17,x5 + adcs x19,x19,x10 + adcs x20,x20,x6 + lsl x8,x14,#32 + adcs x1,x1,x11 + lsr x9,x14,#32 + adc x2,x2,x7 + subs x10,x14,x8 // "*0xffff0001" + sbc x11,x14,x9 + adds x14,x15,x8 // +=acc[0]<<96 and omit acc[0] + adcs x15,x16,x9 + lsl x8,x14,#32 + adcs x16,x17,x10 // +=acc[0]*0xffff0001 + lsr x9,x14,#32 + adc x17,x11,xzr // can't overflow + subs x10,x14,x8 // "*0xffff0001" + sbc x11,x14,x9 + adds x14,x15,x8 // +=acc[0]<<96 and omit acc[0] + adcs x15,x16,x9 + lsl x8,x14,#32 + adcs x16,x17,x10 // +=acc[0]*0xffff0001 + lsr x9,x14,#32 + adc x17,x11,xzr // can't overflow + subs x10,x14,x8 // "*0xffff0001" + sbc x11,x14,x9 + adds x14,x15,x8 // +=acc[0]<<96 and omit acc[0] + adcs x15,x16,x9 + lsl x8,x14,#32 + adcs x16,x17,x10 // +=acc[0]*0xffff0001 + lsr x9,x14,#32 + adc x17,x11,xzr // can't overflow + subs x10,x14,x8 // "*0xffff0001" + sbc x11,x14,x9 + adds x14,x15,x8 // +=acc[0]<<96 and omit acc[0] + adcs x15,x16,x9 + adcs x16,x17,x10 // +=acc[0]*0xffff0001 + adc x17,x11,xzr // can't overflow + + adds x14,x14,x19 // accumulate upper half + adcs x15,x15,x20 + adcs x16,x16,x1 + adcs x17,x17,x2 + adc x19,xzr,xzr + + adds x8,x14,#1 // subs x8,x14,#-1 // tmp = ret-modulus + sbcs x9,x15,x12 + sbcs x10,x16,xzr + sbcs x11,x17,x13 + sbcs xzr,x19,xzr // did it borrow? + + csel x14,x14,x8,lo // ret = borrow ? ret : ret-modulus + csel x15,x15,x9,lo + csel x16,x16,x10,lo + stp x14,x15,[x0] + csel x17,x17,x11,lo + stp x16,x17,[x0,#16] + + ret +.size __ecp_nistz256_sqr_mont,.-__ecp_nistz256_sqr_mont + +// Note that __ecp_nistz256_add expects both input vectors pre-loaded to +// x4-x7 and x8-x11. This is done because it's used in multiple +// contexts, e.g. in multiplication by 2 and 3... +.type __ecp_nistz256_add,%function +.align 4 +__ecp_nistz256_add: + adds x14,x14,x8 // ret = a+b + adcs x15,x15,x9 + adcs x16,x16,x10 + adcs x17,x17,x11 + adc x1,xzr,xzr // zap x1 + + adds x8,x14,#1 // subs x8,x4,#-1 // tmp = ret-modulus + sbcs x9,x15,x12 + sbcs x10,x16,xzr + sbcs x11,x17,x13 + sbcs xzr,x1,xzr // did subtraction borrow? + + csel x14,x14,x8,lo // ret = borrow ? ret : ret-modulus + csel x15,x15,x9,lo + csel x16,x16,x10,lo + stp x14,x15,[x0] + csel x17,x17,x11,lo + stp x16,x17,[x0,#16] + + ret +.size __ecp_nistz256_add,.-__ecp_nistz256_add + +.type __ecp_nistz256_sub_from,%function +.align 4 +__ecp_nistz256_sub_from: + ldp x8,x9,[x2] + ldp x10,x11,[x2,#16] + subs x14,x14,x8 // ret = a-b + sbcs x15,x15,x9 + sbcs x16,x16,x10 + sbcs x17,x17,x11 + sbc x1,xzr,xzr // zap x1 + + subs x8,x14,#1 // adds x8,x4,#-1 // tmp = ret+modulus + adcs x9,x15,x12 + adcs x10,x16,xzr + adc x11,x17,x13 + cmp x1,xzr // did subtraction borrow? + + csel x14,x14,x8,eq // ret = borrow ? ret+modulus : ret + csel x15,x15,x9,eq + csel x16,x16,x10,eq + stp x14,x15,[x0] + csel x17,x17,x11,eq + stp x16,x17,[x0,#16] + + ret +.size __ecp_nistz256_sub_from,.-__ecp_nistz256_sub_from + +.type __ecp_nistz256_sub_morf,%function +.align 4 +__ecp_nistz256_sub_morf: + ldp x8,x9,[x2] + ldp x10,x11,[x2,#16] + subs x14,x8,x14 // ret = b-a + sbcs x15,x9,x15 + sbcs x16,x10,x16 + sbcs x17,x11,x17 + sbc x1,xzr,xzr // zap x1 + + subs x8,x14,#1 // adds x8,x4,#-1 // tmp = ret+modulus + adcs x9,x15,x12 + adcs x10,x16,xzr + adc x11,x17,x13 + cmp x1,xzr // did subtraction borrow? + + csel x14,x14,x8,eq // ret = borrow ? ret+modulus : ret + csel x15,x15,x9,eq + csel x16,x16,x10,eq + stp x14,x15,[x0] + csel x17,x17,x11,eq + stp x16,x17,[x0,#16] + + ret +.size __ecp_nistz256_sub_morf,.-__ecp_nistz256_sub_morf + +.type __ecp_nistz256_div_by_2,%function +.align 4 +__ecp_nistz256_div_by_2: + subs x8,x14,#1 // adds x8,x4,#-1 // tmp = a+modulus + adcs x9,x15,x12 + adcs x10,x16,xzr + adcs x11,x17,x13 + adc x1,xzr,xzr // zap x1 + tst x14,#1 // is a even? + + csel x14,x14,x8,eq // ret = even ? a : a+modulus + csel x15,x15,x9,eq + csel x16,x16,x10,eq + csel x17,x17,x11,eq + csel x1,xzr,x1,eq + + lsr x14,x14,#1 // ret >>= 1 + orr x14,x14,x15,lsl#63 + lsr x15,x15,#1 + orr x15,x15,x16,lsl#63 + lsr x16,x16,#1 + orr x16,x16,x17,lsl#63 + lsr x17,x17,#1 + stp x14,x15,[x0] + orr x17,x17,x1,lsl#63 + stp x16,x17,[x0,#16] + + ret +.size __ecp_nistz256_div_by_2,.-__ecp_nistz256_div_by_2 +.globl ecp_nistz256_point_double +.type ecp_nistz256_point_double,%function +.align 5 +ecp_nistz256_point_double: +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-96]! + add x29,sp,#0 + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + sub sp,sp,#32*4 + +.Ldouble_shortcut: + ldp x14,x15,[x1,#32] + mov x21,x0 + ldp x16,x17,[x1,#48] + mov x22,x1 + ldr x12,.Lpoly+8 + mov x8,x14 + ldr x13,.Lpoly+24 + mov x9,x15 + ldp x4,x5,[x22,#64] // forward load for p256_sqr_mont + mov x10,x16 + mov x11,x17 + ldp x6,x7,[x22,#64+16] + add x0,sp,#0 + bl __ecp_nistz256_add // p256_mul_by_2(S, in_y); + + add x0,sp,#64 + bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Zsqr, in_z); + + ldp x8,x9,[x22] + ldp x10,x11,[x22,#16] + mov x4,x14 // put Zsqr aside for p256_sub + mov x5,x15 + mov x6,x16 + mov x7,x17 + add x0,sp,#32 + bl __ecp_nistz256_add // p256_add(M, Zsqr, in_x); + + add x2,x22,#0 + mov x14,x4 // restore Zsqr + mov x15,x5 + ldp x4,x5,[sp,#0] // forward load for p256_sqr_mont + mov x16,x6 + mov x17,x7 + ldp x6,x7,[sp,#0+16] + add x0,sp,#64 + bl __ecp_nistz256_sub_morf // p256_sub(Zsqr, in_x, Zsqr); + + add x0,sp,#0 + bl __ecp_nistz256_sqr_mont // p256_sqr_mont(S, S); + + ldr x3,[x22,#32] + ldp x4,x5,[x22,#64] + ldp x6,x7,[x22,#64+16] + add x2,x22,#32 + add x0,sp,#96 + bl __ecp_nistz256_mul_mont // p256_mul_mont(tmp0, in_z, in_y); + + mov x8,x14 + mov x9,x15 + ldp x4,x5,[sp,#0] // forward load for p256_sqr_mont + mov x10,x16 + mov x11,x17 + ldp x6,x7,[sp,#0+16] + add x0,x21,#64 + bl __ecp_nistz256_add // p256_mul_by_2(res_z, tmp0); + + add x0,sp,#96 + bl __ecp_nistz256_sqr_mont // p256_sqr_mont(tmp0, S); + + ldr x3,[sp,#64] // forward load for p256_mul_mont + ldp x4,x5,[sp,#32] + ldp x6,x7,[sp,#32+16] + add x0,x21,#32 + bl __ecp_nistz256_div_by_2 // p256_div_by_2(res_y, tmp0); + + add x2,sp,#64 + add x0,sp,#32 + bl __ecp_nistz256_mul_mont // p256_mul_mont(M, M, Zsqr); + + mov x8,x14 // duplicate M + mov x9,x15 + mov x10,x16 + mov x11,x17 + mov x4,x14 // put M aside + mov x5,x15 + mov x6,x16 + mov x7,x17 + add x0,sp,#32 + bl __ecp_nistz256_add + mov x8,x4 // restore M + mov x9,x5 + ldr x3,[x22] // forward load for p256_mul_mont + mov x10,x6 + ldp x4,x5,[sp,#0] + mov x11,x7 + ldp x6,x7,[sp,#0+16] + bl __ecp_nistz256_add // p256_mul_by_3(M, M); + + add x2,x22,#0 + add x0,sp,#0 + bl __ecp_nistz256_mul_mont // p256_mul_mont(S, S, in_x); + + mov x8,x14 + mov x9,x15 + ldp x4,x5,[sp,#32] // forward load for p256_sqr_mont + mov x10,x16 + mov x11,x17 + ldp x6,x7,[sp,#32+16] + add x0,sp,#96 + bl __ecp_nistz256_add // p256_mul_by_2(tmp0, S); + + add x0,x21,#0 + bl __ecp_nistz256_sqr_mont // p256_sqr_mont(res_x, M); + + add x2,sp,#96 + bl __ecp_nistz256_sub_from // p256_sub(res_x, res_x, tmp0); + + add x2,sp,#0 + add x0,sp,#0 + bl __ecp_nistz256_sub_morf // p256_sub(S, S, res_x); + + ldr x3,[sp,#32] + mov x4,x14 // copy S + mov x5,x15 + mov x6,x16 + mov x7,x17 + add x2,sp,#32 + bl __ecp_nistz256_mul_mont // p256_mul_mont(S, S, M); + + add x2,x21,#32 + add x0,x21,#32 + bl __ecp_nistz256_sub_from // p256_sub(res_y, S, res_y); + + add sp,x29,#0 // destroy frame + ldp x19,x20,[x29,#16] + ldp x21,x22,[x29,#32] + ldp x29,x30,[sp],#96 +.inst 0xd50323bf // autiasp + ret +.size ecp_nistz256_point_double,.-ecp_nistz256_point_double +.globl ecp_nistz256_point_add +.type ecp_nistz256_point_add,%function +.align 5 +ecp_nistz256_point_add: +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-96]! + add x29,sp,#0 + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + stp x23,x24,[sp,#48] + stp x25,x26,[sp,#64] + stp x27,x28,[sp,#80] + sub sp,sp,#32*12 + + ldp x4,x5,[x2,#64] // in2_z + ldp x6,x7,[x2,#64+16] + mov x21,x0 + mov x22,x1 + mov x23,x2 + ldr x12,.Lpoly+8 + ldr x13,.Lpoly+24 + orr x8,x4,x5 + orr x10,x6,x7 + orr x25,x8,x10 + cmp x25,#0 + csetm x25,ne // ~in2infty + add x0,sp,#192 + bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Z2sqr, in2_z); + + ldp x4,x5,[x22,#64] // in1_z + ldp x6,x7,[x22,#64+16] + orr x8,x4,x5 + orr x10,x6,x7 + orr x24,x8,x10 + cmp x24,#0 + csetm x24,ne // ~in1infty + add x0,sp,#128 + bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Z1sqr, in1_z); + + ldr x3,[x23,#64] + ldp x4,x5,[sp,#192] + ldp x6,x7,[sp,#192+16] + add x2,x23,#64 + add x0,sp,#320 + bl __ecp_nistz256_mul_mont // p256_mul_mont(S1, Z2sqr, in2_z); + + ldr x3,[x22,#64] + ldp x4,x5,[sp,#128] + ldp x6,x7,[sp,#128+16] + add x2,x22,#64 + add x0,sp,#352 + bl __ecp_nistz256_mul_mont // p256_mul_mont(S2, Z1sqr, in1_z); + + ldr x3,[x22,#32] + ldp x4,x5,[sp,#320] + ldp x6,x7,[sp,#320+16] + add x2,x22,#32 + add x0,sp,#320 + bl __ecp_nistz256_mul_mont // p256_mul_mont(S1, S1, in1_y); + + ldr x3,[x23,#32] + ldp x4,x5,[sp,#352] + ldp x6,x7,[sp,#352+16] + add x2,x23,#32 + add x0,sp,#352 + bl __ecp_nistz256_mul_mont // p256_mul_mont(S2, S2, in2_y); + + add x2,sp,#320 + ldr x3,[sp,#192] // forward load for p256_mul_mont + ldp x4,x5,[x22] + ldp x6,x7,[x22,#16] + add x0,sp,#160 + bl __ecp_nistz256_sub_from // p256_sub(R, S2, S1); + + orr x14,x14,x15 // see if result is zero + orr x16,x16,x17 + orr x26,x14,x16 // ~is_equal(S1,S2) + + add x2,sp,#192 + add x0,sp,#256 + bl __ecp_nistz256_mul_mont // p256_mul_mont(U1, in1_x, Z2sqr); + + ldr x3,[sp,#128] + ldp x4,x5,[x23] + ldp x6,x7,[x23,#16] + add x2,sp,#128 + add x0,sp,#288 + bl __ecp_nistz256_mul_mont // p256_mul_mont(U2, in2_x, Z1sqr); + + add x2,sp,#256 + ldp x4,x5,[sp,#160] // forward load for p256_sqr_mont + ldp x6,x7,[sp,#160+16] + add x0,sp,#96 + bl __ecp_nistz256_sub_from // p256_sub(H, U2, U1); + + orr x14,x14,x15 // see if result is zero + orr x16,x16,x17 + orr x14,x14,x16 // ~is_equal(U1,U2) + + mvn x27,x24 // -1/0 -> 0/-1 + mvn x28,x25 // -1/0 -> 0/-1 + orr x14,x14,x27 + orr x14,x14,x28 + orr x14,x14,x26 + cbnz x14,.Ladd_proceed // if(~is_equal(U1,U2) | in1infty | in2infty | ~is_equal(S1,S2)) + +.Ladd_double: + mov x1,x22 + mov x0,x21 + ldp x23,x24,[x29,#48] + ldp x25,x26,[x29,#64] + ldp x27,x28,[x29,#80] + add sp,sp,#32*(12-4) // difference in stack frames + b .Ldouble_shortcut + +.align 4 +.Ladd_proceed: + add x0,sp,#192 + bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Rsqr, R); + + ldr x3,[x22,#64] + ldp x4,x5,[sp,#96] + ldp x6,x7,[sp,#96+16] + add x2,x22,#64 + add x0,sp,#64 + bl __ecp_nistz256_mul_mont // p256_mul_mont(res_z, H, in1_z); + + ldp x4,x5,[sp,#96] + ldp x6,x7,[sp,#96+16] + add x0,sp,#128 + bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Hsqr, H); + + ldr x3,[x23,#64] + ldp x4,x5,[sp,#64] + ldp x6,x7,[sp,#64+16] + add x2,x23,#64 + add x0,sp,#64 + bl __ecp_nistz256_mul_mont // p256_mul_mont(res_z, res_z, in2_z); + + ldr x3,[sp,#96] + ldp x4,x5,[sp,#128] + ldp x6,x7,[sp,#128+16] + add x2,sp,#96 + add x0,sp,#224 + bl __ecp_nistz256_mul_mont // p256_mul_mont(Hcub, Hsqr, H); + + ldr x3,[sp,#128] + ldp x4,x5,[sp,#256] + ldp x6,x7,[sp,#256+16] + add x2,sp,#128 + add x0,sp,#288 + bl __ecp_nistz256_mul_mont // p256_mul_mont(U2, U1, Hsqr); + + mov x8,x14 + mov x9,x15 + mov x10,x16 + mov x11,x17 + add x0,sp,#128 + bl __ecp_nistz256_add // p256_mul_by_2(Hsqr, U2); + + add x2,sp,#192 + add x0,sp,#0 + bl __ecp_nistz256_sub_morf // p256_sub(res_x, Rsqr, Hsqr); + + add x2,sp,#224 + bl __ecp_nistz256_sub_from // p256_sub(res_x, res_x, Hcub); + + add x2,sp,#288 + ldr x3,[sp,#224] // forward load for p256_mul_mont + ldp x4,x5,[sp,#320] + ldp x6,x7,[sp,#320+16] + add x0,sp,#32 + bl __ecp_nistz256_sub_morf // p256_sub(res_y, U2, res_x); + + add x2,sp,#224 + add x0,sp,#352 + bl __ecp_nistz256_mul_mont // p256_mul_mont(S2, S1, Hcub); + + ldr x3,[sp,#160] + ldp x4,x5,[sp,#32] + ldp x6,x7,[sp,#32+16] + add x2,sp,#160 + add x0,sp,#32 + bl __ecp_nistz256_mul_mont // p256_mul_mont(res_y, res_y, R); + + add x2,sp,#352 + bl __ecp_nistz256_sub_from // p256_sub(res_y, res_y, S2); + + ldp x4,x5,[sp,#0] // res + ldp x6,x7,[sp,#0+16] + ldp x8,x9,[x23] // in2 + ldp x10,x11,[x23,#16] + ldp x14,x15,[x22,#0] // in1 + cmp x24,#0 // ~, remember? + ldp x16,x17,[x22,#0+16] + csel x8,x4,x8,ne + csel x9,x5,x9,ne + ldp x4,x5,[sp,#0+0+32] // res + csel x10,x6,x10,ne + csel x11,x7,x11,ne + cmp x25,#0 // ~, remember? + ldp x6,x7,[sp,#0+0+48] + csel x14,x8,x14,ne + csel x15,x9,x15,ne + ldp x8,x9,[x23,#0+32] // in2 + csel x16,x10,x16,ne + csel x17,x11,x17,ne + ldp x10,x11,[x23,#0+48] + stp x14,x15,[x21,#0] + stp x16,x17,[x21,#0+16] + ldp x14,x15,[x22,#32] // in1 + cmp x24,#0 // ~, remember? + ldp x16,x17,[x22,#32+16] + csel x8,x4,x8,ne + csel x9,x5,x9,ne + ldp x4,x5,[sp,#0+32+32] // res + csel x10,x6,x10,ne + csel x11,x7,x11,ne + cmp x25,#0 // ~, remember? + ldp x6,x7,[sp,#0+32+48] + csel x14,x8,x14,ne + csel x15,x9,x15,ne + ldp x8,x9,[x23,#32+32] // in2 + csel x16,x10,x16,ne + csel x17,x11,x17,ne + ldp x10,x11,[x23,#32+48] + stp x14,x15,[x21,#32] + stp x16,x17,[x21,#32+16] + ldp x14,x15,[x22,#64] // in1 + cmp x24,#0 // ~, remember? + ldp x16,x17,[x22,#64+16] + csel x8,x4,x8,ne + csel x9,x5,x9,ne + csel x10,x6,x10,ne + csel x11,x7,x11,ne + cmp x25,#0 // ~, remember? + csel x14,x8,x14,ne + csel x15,x9,x15,ne + csel x16,x10,x16,ne + csel x17,x11,x17,ne + stp x14,x15,[x21,#64] + stp x16,x17,[x21,#64+16] + +.Ladd_done: + add sp,x29,#0 // destroy frame + ldp x19,x20,[x29,#16] + ldp x21,x22,[x29,#32] + ldp x23,x24,[x29,#48] + ldp x25,x26,[x29,#64] + ldp x27,x28,[x29,#80] + ldp x29,x30,[sp],#96 +.inst 0xd50323bf // autiasp + ret +.size ecp_nistz256_point_add,.-ecp_nistz256_point_add +.globl ecp_nistz256_point_add_affine +.type ecp_nistz256_point_add_affine,%function +.align 5 +ecp_nistz256_point_add_affine: +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-80]! + add x29,sp,#0 + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + stp x23,x24,[sp,#48] + stp x25,x26,[sp,#64] + sub sp,sp,#32*10 + + mov x21,x0 + mov x22,x1 + mov x23,x2 + ldr x12,.Lpoly+8 + ldr x13,.Lpoly+24 + + ldp x4,x5,[x1,#64] // in1_z + ldp x6,x7,[x1,#64+16] + orr x8,x4,x5 + orr x10,x6,x7 + orr x24,x8,x10 + cmp x24,#0 + csetm x24,ne // ~in1infty + + ldp x14,x15,[x2] // in2_x + ldp x16,x17,[x2,#16] + ldp x8,x9,[x2,#32] // in2_y + ldp x10,x11,[x2,#48] + orr x14,x14,x15 + orr x16,x16,x17 + orr x8,x8,x9 + orr x10,x10,x11 + orr x14,x14,x16 + orr x8,x8,x10 + orr x25,x14,x8 + cmp x25,#0 + csetm x25,ne // ~in2infty + + add x0,sp,#128 + bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Z1sqr, in1_z); + + mov x4,x14 + mov x5,x15 + mov x6,x16 + mov x7,x17 + ldr x3,[x23] + add x2,x23,#0 + add x0,sp,#96 + bl __ecp_nistz256_mul_mont // p256_mul_mont(U2, Z1sqr, in2_x); + + add x2,x22,#0 + ldr x3,[x22,#64] // forward load for p256_mul_mont + ldp x4,x5,[sp,#128] + ldp x6,x7,[sp,#128+16] + add x0,sp,#160 + bl __ecp_nistz256_sub_from // p256_sub(H, U2, in1_x); + + add x2,x22,#64 + add x0,sp,#128 + bl __ecp_nistz256_mul_mont // p256_mul_mont(S2, Z1sqr, in1_z); + + ldr x3,[x22,#64] + ldp x4,x5,[sp,#160] + ldp x6,x7,[sp,#160+16] + add x2,x22,#64 + add x0,sp,#64 + bl __ecp_nistz256_mul_mont // p256_mul_mont(res_z, H, in1_z); + + ldr x3,[x23,#32] + ldp x4,x5,[sp,#128] + ldp x6,x7,[sp,#128+16] + add x2,x23,#32 + add x0,sp,#128 + bl __ecp_nistz256_mul_mont // p256_mul_mont(S2, S2, in2_y); + + add x2,x22,#32 + ldp x4,x5,[sp,#160] // forward load for p256_sqr_mont + ldp x6,x7,[sp,#160+16] + add x0,sp,#192 + bl __ecp_nistz256_sub_from // p256_sub(R, S2, in1_y); + + add x0,sp,#224 + bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Hsqr, H); + + ldp x4,x5,[sp,#192] + ldp x6,x7,[sp,#192+16] + add x0,sp,#288 + bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Rsqr, R); + + ldr x3,[sp,#160] + ldp x4,x5,[sp,#224] + ldp x6,x7,[sp,#224+16] + add x2,sp,#160 + add x0,sp,#256 + bl __ecp_nistz256_mul_mont // p256_mul_mont(Hcub, Hsqr, H); + + ldr x3,[x22] + ldp x4,x5,[sp,#224] + ldp x6,x7,[sp,#224+16] + add x2,x22,#0 + add x0,sp,#96 + bl __ecp_nistz256_mul_mont // p256_mul_mont(U2, in1_x, Hsqr); + + mov x8,x14 + mov x9,x15 + mov x10,x16 + mov x11,x17 + add x0,sp,#224 + bl __ecp_nistz256_add // p256_mul_by_2(Hsqr, U2); + + add x2,sp,#288 + add x0,sp,#0 + bl __ecp_nistz256_sub_morf // p256_sub(res_x, Rsqr, Hsqr); + + add x2,sp,#256 + bl __ecp_nistz256_sub_from // p256_sub(res_x, res_x, Hcub); + + add x2,sp,#96 + ldr x3,[x22,#32] // forward load for p256_mul_mont + ldp x4,x5,[sp,#256] + ldp x6,x7,[sp,#256+16] + add x0,sp,#32 + bl __ecp_nistz256_sub_morf // p256_sub(res_y, U2, res_x); + + add x2,x22,#32 + add x0,sp,#128 + bl __ecp_nistz256_mul_mont // p256_mul_mont(S2, in1_y, Hcub); + + ldr x3,[sp,#192] + ldp x4,x5,[sp,#32] + ldp x6,x7,[sp,#32+16] + add x2,sp,#192 + add x0,sp,#32 + bl __ecp_nistz256_mul_mont // p256_mul_mont(res_y, res_y, R); + + add x2,sp,#128 + bl __ecp_nistz256_sub_from // p256_sub(res_y, res_y, S2); + + ldp x4,x5,[sp,#0] // res + ldp x6,x7,[sp,#0+16] + ldp x8,x9,[x23] // in2 + ldp x10,x11,[x23,#16] + ldp x14,x15,[x22,#0] // in1 + cmp x24,#0 // ~, remember? + ldp x16,x17,[x22,#0+16] + csel x8,x4,x8,ne + csel x9,x5,x9,ne + ldp x4,x5,[sp,#0+0+32] // res + csel x10,x6,x10,ne + csel x11,x7,x11,ne + cmp x25,#0 // ~, remember? + ldp x6,x7,[sp,#0+0+48] + csel x14,x8,x14,ne + csel x15,x9,x15,ne + ldp x8,x9,[x23,#0+32] // in2 + csel x16,x10,x16,ne + csel x17,x11,x17,ne + ldp x10,x11,[x23,#0+48] + stp x14,x15,[x21,#0] + stp x16,x17,[x21,#0+16] + adr x23,.Lone_mont-64 + ldp x14,x15,[x22,#32] // in1 + cmp x24,#0 // ~, remember? + ldp x16,x17,[x22,#32+16] + csel x8,x4,x8,ne + csel x9,x5,x9,ne + ldp x4,x5,[sp,#0+32+32] // res + csel x10,x6,x10,ne + csel x11,x7,x11,ne + cmp x25,#0 // ~, remember? + ldp x6,x7,[sp,#0+32+48] + csel x14,x8,x14,ne + csel x15,x9,x15,ne + ldp x8,x9,[x23,#32+32] // in2 + csel x16,x10,x16,ne + csel x17,x11,x17,ne + ldp x10,x11,[x23,#32+48] + stp x14,x15,[x21,#32] + stp x16,x17,[x21,#32+16] + ldp x14,x15,[x22,#64] // in1 + cmp x24,#0 // ~, remember? + ldp x16,x17,[x22,#64+16] + csel x8,x4,x8,ne + csel x9,x5,x9,ne + csel x10,x6,x10,ne + csel x11,x7,x11,ne + cmp x25,#0 // ~, remember? + csel x14,x8,x14,ne + csel x15,x9,x15,ne + csel x16,x10,x16,ne + csel x17,x11,x17,ne + stp x14,x15,[x21,#64] + stp x16,x17,[x21,#64+16] + + add sp,x29,#0 // destroy frame + ldp x19,x20,[x29,#16] + ldp x21,x22,[x29,#32] + ldp x23,x24,[x29,#48] + ldp x25,x26,[x29,#64] + ldp x29,x30,[sp],#80 +.inst 0xd50323bf // autiasp + ret +.size ecp_nistz256_point_add_affine,.-ecp_nistz256_point_add_affine +//////////////////////////////////////////////////////////////////////// +// void ecp_nistz256_ord_mul_mont(uint64_t res[4], uint64_t a[4], +// uint64_t b[4]); +.globl ecp_nistz256_ord_mul_mont +.type ecp_nistz256_ord_mul_mont,%function +.align 4 +ecp_nistz256_ord_mul_mont: + stp x29,x30,[sp,#-64]! + add x29,sp,#0 + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + stp x23,x24,[sp,#48] + + adr x23,.Lord + ldr x3,[x2] // bp[0] + ldp x4,x5,[x1] + ldp x6,x7,[x1,#16] + + ldp x12,x13,[x23,#0] + ldp x21,x22,[x23,#16] + ldr x23,[x23,#32] + + mul x14,x4,x3 // a[0]*b[0] + umulh x8,x4,x3 + + mul x15,x5,x3 // a[1]*b[0] + umulh x9,x5,x3 + + mul x16,x6,x3 // a[2]*b[0] + umulh x10,x6,x3 + + mul x17,x7,x3 // a[3]*b[0] + umulh x19,x7,x3 + + mul x24,x14,x23 + + adds x15,x15,x8 // accumulate high parts of multiplication + adcs x16,x16,x9 + adcs x17,x17,x10 + adc x19,x19,xzr + mov x20,xzr + ldr x3,[x2,#8*1] // b[i] + + lsl x8,x24,#32 + subs x16,x16,x24 + lsr x9,x24,#32 + sbcs x17,x17,x8 + sbcs x19,x19,x9 + sbc x20,x20,xzr + + subs xzr,x14,#1 + umulh x9,x12,x24 + mul x10,x13,x24 + umulh x11,x13,x24 + + adcs x10,x10,x9 + mul x8,x4,x3 + adc x11,x11,xzr + mul x9,x5,x3 + + adds x14,x15,x10 + mul x10,x6,x3 + adcs x15,x16,x11 + mul x11,x7,x3 + adcs x16,x17,x24 + adcs x17,x19,x24 + adc x19,x20,xzr + + adds x14,x14,x8 // accumulate low parts + umulh x8,x4,x3 + adcs x15,x15,x9 + umulh x9,x5,x3 + adcs x16,x16,x10 + umulh x10,x6,x3 + adcs x17,x17,x11 + umulh x11,x7,x3 + adc x19,x19,xzr + mul x24,x14,x23 + adds x15,x15,x8 // accumulate high parts + adcs x16,x16,x9 + adcs x17,x17,x10 + adcs x19,x19,x11 + adc x20,xzr,xzr + ldr x3,[x2,#8*2] // b[i] + + lsl x8,x24,#32 + subs x16,x16,x24 + lsr x9,x24,#32 + sbcs x17,x17,x8 + sbcs x19,x19,x9 + sbc x20,x20,xzr + + subs xzr,x14,#1 + umulh x9,x12,x24 + mul x10,x13,x24 + umulh x11,x13,x24 + + adcs x10,x10,x9 + mul x8,x4,x3 + adc x11,x11,xzr + mul x9,x5,x3 + + adds x14,x15,x10 + mul x10,x6,x3 + adcs x15,x16,x11 + mul x11,x7,x3 + adcs x16,x17,x24 + adcs x17,x19,x24 + adc x19,x20,xzr + + adds x14,x14,x8 // accumulate low parts + umulh x8,x4,x3 + adcs x15,x15,x9 + umulh x9,x5,x3 + adcs x16,x16,x10 + umulh x10,x6,x3 + adcs x17,x17,x11 + umulh x11,x7,x3 + adc x19,x19,xzr + mul x24,x14,x23 + adds x15,x15,x8 // accumulate high parts + adcs x16,x16,x9 + adcs x17,x17,x10 + adcs x19,x19,x11 + adc x20,xzr,xzr + ldr x3,[x2,#8*3] // b[i] + + lsl x8,x24,#32 + subs x16,x16,x24 + lsr x9,x24,#32 + sbcs x17,x17,x8 + sbcs x19,x19,x9 + sbc x20,x20,xzr + + subs xzr,x14,#1 + umulh x9,x12,x24 + mul x10,x13,x24 + umulh x11,x13,x24 + + adcs x10,x10,x9 + mul x8,x4,x3 + adc x11,x11,xzr + mul x9,x5,x3 + + adds x14,x15,x10 + mul x10,x6,x3 + adcs x15,x16,x11 + mul x11,x7,x3 + adcs x16,x17,x24 + adcs x17,x19,x24 + adc x19,x20,xzr + + adds x14,x14,x8 // accumulate low parts + umulh x8,x4,x3 + adcs x15,x15,x9 + umulh x9,x5,x3 + adcs x16,x16,x10 + umulh x10,x6,x3 + adcs x17,x17,x11 + umulh x11,x7,x3 + adc x19,x19,xzr + mul x24,x14,x23 + adds x15,x15,x8 // accumulate high parts + adcs x16,x16,x9 + adcs x17,x17,x10 + adcs x19,x19,x11 + adc x20,xzr,xzr + lsl x8,x24,#32 // last reduction + subs x16,x16,x24 + lsr x9,x24,#32 + sbcs x17,x17,x8 + sbcs x19,x19,x9 + sbc x20,x20,xzr + + subs xzr,x14,#1 + umulh x9,x12,x24 + mul x10,x13,x24 + umulh x11,x13,x24 + + adcs x10,x10,x9 + adc x11,x11,xzr + + adds x14,x15,x10 + adcs x15,x16,x11 + adcs x16,x17,x24 + adcs x17,x19,x24 + adc x19,x20,xzr + + subs x8,x14,x12 // ret -= modulus + sbcs x9,x15,x13 + sbcs x10,x16,x21 + sbcs x11,x17,x22 + sbcs xzr,x19,xzr + + csel x14,x14,x8,lo // ret = borrow ? ret : ret-modulus + csel x15,x15,x9,lo + csel x16,x16,x10,lo + stp x14,x15,[x0] + csel x17,x17,x11,lo + stp x16,x17,[x0,#16] + + ldp x19,x20,[sp,#16] + ldp x21,x22,[sp,#32] + ldp x23,x24,[sp,#48] + ldr x29,[sp],#64 + ret +.size ecp_nistz256_ord_mul_mont,.-ecp_nistz256_ord_mul_mont + +//////////////////////////////////////////////////////////////////////// +// void ecp_nistz256_ord_sqr_mont(uint64_t res[4], uint64_t a[4], +// int rep); +.globl ecp_nistz256_ord_sqr_mont +.type ecp_nistz256_ord_sqr_mont,%function +.align 4 +ecp_nistz256_ord_sqr_mont: + stp x29,x30,[sp,#-64]! + add x29,sp,#0 + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + stp x23,x24,[sp,#48] + + adr x23,.Lord + ldp x4,x5,[x1] + ldp x6,x7,[x1,#16] + + ldp x12,x13,[x23,#0] + ldp x21,x22,[x23,#16] + ldr x23,[x23,#32] + b .Loop_ord_sqr + +.align 4 +.Loop_ord_sqr: + sub x2,x2,#1 + //////////////////////////////////////////////////////////////// + // | | | | | |a1*a0| | + // | | | | |a2*a0| | | + // | |a3*a2|a3*a0| | | | + // | | | |a2*a1| | | | + // | | |a3*a1| | | | | + // *| | | | | | | | 2| + // +|a3*a3|a2*a2|a1*a1|a0*a0| + // |--+--+--+--+--+--+--+--| + // |A7|A6|A5|A4|A3|A2|A1|A0|, where Ax is , i.e. follow + // + // "can't overflow" below mark carrying into high part of + // multiplication result, which can't overflow, because it + // can never be all ones. + + mul x15,x5,x4 // a[1]*a[0] + umulh x9,x5,x4 + mul x16,x6,x4 // a[2]*a[0] + umulh x10,x6,x4 + mul x17,x7,x4 // a[3]*a[0] + umulh x19,x7,x4 + + adds x16,x16,x9 // accumulate high parts of multiplication + mul x8,x6,x5 // a[2]*a[1] + umulh x9,x6,x5 + adcs x17,x17,x10 + mul x10,x7,x5 // a[3]*a[1] + umulh x11,x7,x5 + adc x19,x19,xzr // can't overflow + + mul x20,x7,x6 // a[3]*a[2] + umulh x1,x7,x6 + + adds x9,x9,x10 // accumulate high parts of multiplication + mul x14,x4,x4 // a[0]*a[0] + adc x10,x11,xzr // can't overflow + + adds x17,x17,x8 // accumulate low parts of multiplication + umulh x4,x4,x4 + adcs x19,x19,x9 + mul x9,x5,x5 // a[1]*a[1] + adcs x20,x20,x10 + umulh x5,x5,x5 + adc x1,x1,xzr // can't overflow + + adds x15,x15,x15 // acc[1-6]*=2 + mul x10,x6,x6 // a[2]*a[2] + adcs x16,x16,x16 + umulh x6,x6,x6 + adcs x17,x17,x17 + mul x11,x7,x7 // a[3]*a[3] + adcs x19,x19,x19 + umulh x7,x7,x7 + adcs x20,x20,x20 + adcs x1,x1,x1 + adc x3,xzr,xzr + + adds x15,x15,x4 // +a[i]*a[i] + mul x24,x14,x23 + adcs x16,x16,x9 + adcs x17,x17,x5 + adcs x19,x19,x10 + adcs x20,x20,x6 + adcs x1,x1,x11 + adc x3,x3,x7 + subs xzr,x14,#1 + umulh x9,x12,x24 + mul x10,x13,x24 + umulh x11,x13,x24 + + adcs x10,x10,x9 + adc x11,x11,xzr + + adds x14,x15,x10 + adcs x15,x16,x11 + adcs x16,x17,x24 + adc x17,xzr,x24 // can't overflow + mul x11,x14,x23 + lsl x8,x24,#32 + subs x15,x15,x24 + lsr x9,x24,#32 + sbcs x16,x16,x8 + sbc x17,x17,x9 // can't borrow + subs xzr,x14,#1 + umulh x9,x12,x11 + mul x10,x13,x11 + umulh x24,x13,x11 + + adcs x10,x10,x9 + adc x24,x24,xzr + + adds x14,x15,x10 + adcs x15,x16,x24 + adcs x16,x17,x11 + adc x17,xzr,x11 // can't overflow + mul x24,x14,x23 + lsl x8,x11,#32 + subs x15,x15,x11 + lsr x9,x11,#32 + sbcs x16,x16,x8 + sbc x17,x17,x9 // can't borrow + subs xzr,x14,#1 + umulh x9,x12,x24 + mul x10,x13,x24 + umulh x11,x13,x24 + + adcs x10,x10,x9 + adc x11,x11,xzr + + adds x14,x15,x10 + adcs x15,x16,x11 + adcs x16,x17,x24 + adc x17,xzr,x24 // can't overflow + mul x11,x14,x23 + lsl x8,x24,#32 + subs x15,x15,x24 + lsr x9,x24,#32 + sbcs x16,x16,x8 + sbc x17,x17,x9 // can't borrow + subs xzr,x14,#1 + umulh x9,x12,x11 + mul x10,x13,x11 + umulh x24,x13,x11 + + adcs x10,x10,x9 + adc x24,x24,xzr + + adds x14,x15,x10 + adcs x15,x16,x24 + adcs x16,x17,x11 + adc x17,xzr,x11 // can't overflow + lsl x8,x11,#32 + subs x15,x15,x11 + lsr x9,x11,#32 + sbcs x16,x16,x8 + sbc x17,x17,x9 // can't borrow + adds x14,x14,x19 // accumulate upper half + adcs x15,x15,x20 + adcs x16,x16,x1 + adcs x17,x17,x3 + adc x19,xzr,xzr + + subs x8,x14,x12 // ret -= modulus + sbcs x9,x15,x13 + sbcs x10,x16,x21 + sbcs x11,x17,x22 + sbcs xzr,x19,xzr + + csel x4,x14,x8,lo // ret = borrow ? ret : ret-modulus + csel x5,x15,x9,lo + csel x6,x16,x10,lo + csel x7,x17,x11,lo + + cbnz x2,.Loop_ord_sqr + + stp x4,x5,[x0] + stp x6,x7,[x0,#16] + + ldp x19,x20,[sp,#16] + ldp x21,x22,[sp,#32] + ldp x23,x24,[sp,#48] + ldr x29,[sp],#64 + ret +.size ecp_nistz256_ord_sqr_mont,.-ecp_nistz256_ord_sqr_mont +// void ecp_nistz256_scatter_w5(void *x0,const P256_POINT *x1, +// int x2); +.globl ecp_nistz256_scatter_w5 +.type ecp_nistz256_scatter_w5,%function +.align 4 +ecp_nistz256_scatter_w5: + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + + add x0,x0,x2,lsl#2 + + ldp x4,x5,[x1] // X + ldp x6,x7,[x1,#16] + str w4,[x0,#64*0-4] + lsr x4,x4,#32 + str w5,[x0,#64*1-4] + lsr x5,x5,#32 + str w6,[x0,#64*2-4] + lsr x6,x6,#32 + str w7,[x0,#64*3-4] + lsr x7,x7,#32 + str w4,[x0,#64*4-4] + str w5,[x0,#64*5-4] + str w6,[x0,#64*6-4] + str w7,[x0,#64*7-4] + add x0,x0,#64*8 + + ldp x4,x5,[x1,#32] // Y + ldp x6,x7,[x1,#48] + str w4,[x0,#64*0-4] + lsr x4,x4,#32 + str w5,[x0,#64*1-4] + lsr x5,x5,#32 + str w6,[x0,#64*2-4] + lsr x6,x6,#32 + str w7,[x0,#64*3-4] + lsr x7,x7,#32 + str w4,[x0,#64*4-4] + str w5,[x0,#64*5-4] + str w6,[x0,#64*6-4] + str w7,[x0,#64*7-4] + add x0,x0,#64*8 + + ldp x4,x5,[x1,#64] // Z + ldp x6,x7,[x1,#80] + str w4,[x0,#64*0-4] + lsr x4,x4,#32 + str w5,[x0,#64*1-4] + lsr x5,x5,#32 + str w6,[x0,#64*2-4] + lsr x6,x6,#32 + str w7,[x0,#64*3-4] + lsr x7,x7,#32 + str w4,[x0,#64*4-4] + str w5,[x0,#64*5-4] + str w6,[x0,#64*6-4] + str w7,[x0,#64*7-4] + + ldr x29,[sp],#16 + ret +.size ecp_nistz256_scatter_w5,.-ecp_nistz256_scatter_w5 + +// void ecp_nistz256_gather_w5(P256_POINT *x0,const void *x1, +// int x2); +.globl ecp_nistz256_gather_w5 +.type ecp_nistz256_gather_w5,%function +.align 4 +ecp_nistz256_gather_w5: + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + + cmp x2,xzr + csetm x3,ne + add x2,x2,x3 + add x1,x1,x2,lsl#2 + + ldr w4,[x1,#64*0] + ldr w5,[x1,#64*1] + ldr w6,[x1,#64*2] + ldr w7,[x1,#64*3] + ldr w8,[x1,#64*4] + ldr w9,[x1,#64*5] + ldr w10,[x1,#64*6] + ldr w11,[x1,#64*7] + add x1,x1,#64*8 + orr x4,x4,x8,lsl#32 + orr x5,x5,x9,lsl#32 + orr x6,x6,x10,lsl#32 + orr x7,x7,x11,lsl#32 + csel x4,x4,xzr,ne + csel x5,x5,xzr,ne + csel x6,x6,xzr,ne + csel x7,x7,xzr,ne + stp x4,x5,[x0] // X + stp x6,x7,[x0,#16] + + ldr w4,[x1,#64*0] + ldr w5,[x1,#64*1] + ldr w6,[x1,#64*2] + ldr w7,[x1,#64*3] + ldr w8,[x1,#64*4] + ldr w9,[x1,#64*5] + ldr w10,[x1,#64*6] + ldr w11,[x1,#64*7] + add x1,x1,#64*8 + orr x4,x4,x8,lsl#32 + orr x5,x5,x9,lsl#32 + orr x6,x6,x10,lsl#32 + orr x7,x7,x11,lsl#32 + csel x4,x4,xzr,ne + csel x5,x5,xzr,ne + csel x6,x6,xzr,ne + csel x7,x7,xzr,ne + stp x4,x5,[x0,#32] // Y + stp x6,x7,[x0,#48] + + ldr w4,[x1,#64*0] + ldr w5,[x1,#64*1] + ldr w6,[x1,#64*2] + ldr w7,[x1,#64*3] + ldr w8,[x1,#64*4] + ldr w9,[x1,#64*5] + ldr w10,[x1,#64*6] + ldr w11,[x1,#64*7] + orr x4,x4,x8,lsl#32 + orr x5,x5,x9,lsl#32 + orr x6,x6,x10,lsl#32 + orr x7,x7,x11,lsl#32 + csel x4,x4,xzr,ne + csel x5,x5,xzr,ne + csel x6,x6,xzr,ne + csel x7,x7,xzr,ne + stp x4,x5,[x0,#64] // Z + stp x6,x7,[x0,#80] + + ldr x29,[sp],#16 + ret +.size ecp_nistz256_gather_w5,.-ecp_nistz256_gather_w5 + +// void ecp_nistz256_scatter_w7(void *x0,const P256_POINT_AFFINE *x1, +// int x2); +.globl ecp_nistz256_scatter_w7 +.type ecp_nistz256_scatter_w7,%function +.align 4 +ecp_nistz256_scatter_w7: + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + + add x0,x0,x2 + mov x2,#64/8 +.Loop_scatter_w7: + ldr x3,[x1],#8 + subs x2,x2,#1 + prfm pstl1strm,[x0,#4096+64*0] + prfm pstl1strm,[x0,#4096+64*1] + prfm pstl1strm,[x0,#4096+64*2] + prfm pstl1strm,[x0,#4096+64*3] + prfm pstl1strm,[x0,#4096+64*4] + prfm pstl1strm,[x0,#4096+64*5] + prfm pstl1strm,[x0,#4096+64*6] + prfm pstl1strm,[x0,#4096+64*7] + strb w3,[x0,#64*0] + lsr x3,x3,#8 + strb w3,[x0,#64*1] + lsr x3,x3,#8 + strb w3,[x0,#64*2] + lsr x3,x3,#8 + strb w3,[x0,#64*3] + lsr x3,x3,#8 + strb w3,[x0,#64*4] + lsr x3,x3,#8 + strb w3,[x0,#64*5] + lsr x3,x3,#8 + strb w3,[x0,#64*6] + lsr x3,x3,#8 + strb w3,[x0,#64*7] + add x0,x0,#64*8 + b.ne .Loop_scatter_w7 + + ldr x29,[sp],#16 + ret +.size ecp_nistz256_scatter_w7,.-ecp_nistz256_scatter_w7 + +// void ecp_nistz256_gather_w7(P256_POINT_AFFINE *x0,const void *x1, +// int x2); +.globl ecp_nistz256_gather_w7 +.type ecp_nistz256_gather_w7,%function +.align 4 +ecp_nistz256_gather_w7: + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + + cmp x2,xzr + csetm x3,ne + add x2,x2,x3 + add x1,x1,x2 + mov x2,#64/8 + nop +.Loop_gather_w7: + ldrb w4,[x1,#64*0] + prfm pldl1strm,[x1,#4096+64*0] + subs x2,x2,#1 + ldrb w5,[x1,#64*1] + prfm pldl1strm,[x1,#4096+64*1] + ldrb w6,[x1,#64*2] + prfm pldl1strm,[x1,#4096+64*2] + ldrb w7,[x1,#64*3] + prfm pldl1strm,[x1,#4096+64*3] + ldrb w8,[x1,#64*4] + prfm pldl1strm,[x1,#4096+64*4] + ldrb w9,[x1,#64*5] + prfm pldl1strm,[x1,#4096+64*5] + ldrb w10,[x1,#64*6] + prfm pldl1strm,[x1,#4096+64*6] + ldrb w11,[x1,#64*7] + prfm pldl1strm,[x1,#4096+64*7] + add x1,x1,#64*8 + orr x4,x4,x5,lsl#8 + orr x6,x6,x7,lsl#8 + orr x8,x8,x9,lsl#8 + orr x4,x4,x6,lsl#16 + orr x10,x10,x11,lsl#8 + orr x4,x4,x8,lsl#32 + orr x4,x4,x10,lsl#48 + and x4,x4,x3 + str x4,[x0],#8 + b.ne .Loop_gather_w7 + + ldr x29,[sp],#16 + ret +.size ecp_nistz256_gather_w7,.-ecp_nistz256_gather_w7 diff --git a/vere/ext/openssl/gen/linux-aarch64/crypto/modes/ghashv8-armx.S b/vere/ext/openssl/gen/linux-aarch64/crypto/modes/ghashv8-armx.S new file mode 100644 index 0000000..17ba12c --- /dev/null +++ b/vere/ext/openssl/gen/linux-aarch64/crypto/modes/ghashv8-armx.S @@ -0,0 +1,552 @@ +#include "arm_arch.h" + +#if __ARM_MAX_ARCH__>=7 +.text +.arch armv8-a+crypto +.globl gcm_init_v8 +.type gcm_init_v8,%function +.align 4 +gcm_init_v8: + ld1 {v17.2d},[x1] //load input H + movi v19.16b,#0xe1 + shl v19.2d,v19.2d,#57 //0xc2.0 + ext v3.16b,v17.16b,v17.16b,#8 + ushr v18.2d,v19.2d,#63 + dup v17.4s,v17.s[1] + ext v16.16b,v18.16b,v19.16b,#8 //t0=0xc2....01 + ushr v18.2d,v3.2d,#63 + sshr v17.4s,v17.4s,#31 //broadcast carry bit + and v18.16b,v18.16b,v16.16b + shl v3.2d,v3.2d,#1 + ext v18.16b,v18.16b,v18.16b,#8 + and v16.16b,v16.16b,v17.16b + orr v3.16b,v3.16b,v18.16b //H<<<=1 + eor v20.16b,v3.16b,v16.16b //twisted H + st1 {v20.2d},[x0],#16 //store Htable[0] + + //calculate H^2 + ext v16.16b,v20.16b,v20.16b,#8 //Karatsuba pre-processing + pmull v0.1q,v20.1d,v20.1d + eor v16.16b,v16.16b,v20.16b + pmull2 v2.1q,v20.2d,v20.2d + pmull v1.1q,v16.1d,v16.1d + + ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing + eor v18.16b,v0.16b,v2.16b + eor v1.16b,v1.16b,v17.16b + eor v1.16b,v1.16b,v18.16b + pmull v18.1q,v0.1d,v19.1d //1st phase + + ins v2.d[0],v1.d[1] + ins v1.d[1],v0.d[0] + eor v0.16b,v1.16b,v18.16b + + ext v18.16b,v0.16b,v0.16b,#8 //2nd phase + pmull v0.1q,v0.1d,v19.1d + eor v18.16b,v18.16b,v2.16b + eor v22.16b,v0.16b,v18.16b + + ext v17.16b,v22.16b,v22.16b,#8 //Karatsuba pre-processing + eor v17.16b,v17.16b,v22.16b + ext v21.16b,v16.16b,v17.16b,#8 //pack Karatsuba pre-processed + st1 {v21.2d,v22.2d},[x0],#32 //store Htable[1..2] + //calculate H^3 and H^4 + pmull v0.1q,v20.1d, v22.1d + pmull v5.1q,v22.1d,v22.1d + pmull2 v2.1q,v20.2d, v22.2d + pmull2 v7.1q,v22.2d,v22.2d + pmull v1.1q,v16.1d,v17.1d + pmull v6.1q,v17.1d,v17.1d + + ext v16.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing + ext v17.16b,v5.16b,v7.16b,#8 + eor v18.16b,v0.16b,v2.16b + eor v1.16b,v1.16b,v16.16b + eor v4.16b,v5.16b,v7.16b + eor v6.16b,v6.16b,v17.16b + eor v1.16b,v1.16b,v18.16b + pmull v18.1q,v0.1d,v19.1d //1st phase + eor v6.16b,v6.16b,v4.16b + pmull v4.1q,v5.1d,v19.1d + + ins v2.d[0],v1.d[1] + ins v7.d[0],v6.d[1] + ins v1.d[1],v0.d[0] + ins v6.d[1],v5.d[0] + eor v0.16b,v1.16b,v18.16b + eor v5.16b,v6.16b,v4.16b + + ext v18.16b,v0.16b,v0.16b,#8 //2nd phase + ext v4.16b,v5.16b,v5.16b,#8 + pmull v0.1q,v0.1d,v19.1d + pmull v5.1q,v5.1d,v19.1d + eor v18.16b,v18.16b,v2.16b + eor v4.16b,v4.16b,v7.16b + eor v20.16b, v0.16b,v18.16b //H^3 + eor v22.16b,v5.16b,v4.16b //H^4 + + ext v16.16b,v20.16b, v20.16b,#8 //Karatsuba pre-processing + ext v17.16b,v22.16b,v22.16b,#8 + eor v16.16b,v16.16b,v20.16b + eor v17.16b,v17.16b,v22.16b + ext v21.16b,v16.16b,v17.16b,#8 //pack Karatsuba pre-processed + st1 {v20.2d,v21.2d,v22.2d},[x0] //store Htable[3..5] + ret +.size gcm_init_v8,.-gcm_init_v8 +.globl gcm_gmult_v8 +.type gcm_gmult_v8,%function +.align 4 +gcm_gmult_v8: + ld1 {v17.2d},[x0] //load Xi + movi v19.16b,#0xe1 + ld1 {v20.2d,v21.2d},[x1] //load twisted H, ... + shl v19.2d,v19.2d,#57 +#ifndef __ARMEB__ + rev64 v17.16b,v17.16b +#endif + ext v3.16b,v17.16b,v17.16b,#8 + + pmull v0.1q,v20.1d,v3.1d //H.lo·Xi.lo + eor v17.16b,v17.16b,v3.16b //Karatsuba pre-processing + pmull2 v2.1q,v20.2d,v3.2d //H.hi·Xi.hi + pmull v1.1q,v21.1d,v17.1d //(H.lo+H.hi)·(Xi.lo+Xi.hi) + + ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing + eor v18.16b,v0.16b,v2.16b + eor v1.16b,v1.16b,v17.16b + eor v1.16b,v1.16b,v18.16b + pmull v18.1q,v0.1d,v19.1d //1st phase of reduction + + ins v2.d[0],v1.d[1] + ins v1.d[1],v0.d[0] + eor v0.16b,v1.16b,v18.16b + + ext v18.16b,v0.16b,v0.16b,#8 //2nd phase of reduction + pmull v0.1q,v0.1d,v19.1d + eor v18.16b,v18.16b,v2.16b + eor v0.16b,v0.16b,v18.16b + +#ifndef __ARMEB__ + rev64 v0.16b,v0.16b +#endif + ext v0.16b,v0.16b,v0.16b,#8 + st1 {v0.2d},[x0] //write out Xi + + ret +.size gcm_gmult_v8,.-gcm_gmult_v8 +.globl gcm_ghash_v8 +.type gcm_ghash_v8,%function +.align 4 +gcm_ghash_v8: + cmp x3,#64 + b.hs .Lgcm_ghash_v8_4x + ld1 {v0.2d},[x0] //load [rotated] Xi + //"[rotated]" means that + //loaded value would have + //to be rotated in order to + //make it appear as in + //algorithm specification + subs x3,x3,#32 //see if x3 is 32 or larger + mov x12,#16 //x12 is used as post- + //increment for input pointer; + //as loop is modulo-scheduled + //x12 is zeroed just in time + //to preclude overstepping + //inp[len], which means that + //last block[s] are actually + //loaded twice, but last + //copy is not processed + ld1 {v20.2d,v21.2d},[x1],#32 //load twisted H, ..., H^2 + movi v19.16b,#0xe1 + ld1 {v22.2d},[x1] + csel x12,xzr,x12,eq //is it time to zero x12? + ext v0.16b,v0.16b,v0.16b,#8 //rotate Xi + ld1 {v16.2d},[x2],#16 //load [rotated] I[0] + shl v19.2d,v19.2d,#57 //compose 0xc2.0 constant +#ifndef __ARMEB__ + rev64 v16.16b,v16.16b + rev64 v0.16b,v0.16b +#endif + ext v3.16b,v16.16b,v16.16b,#8 //rotate I[0] + b.lo .Lodd_tail_v8 //x3 was less than 32 + ld1 {v17.2d},[x2],x12 //load [rotated] I[1] +#ifndef __ARMEB__ + rev64 v17.16b,v17.16b +#endif + ext v7.16b,v17.16b,v17.16b,#8 + eor v3.16b,v3.16b,v0.16b //I[i]^=Xi + pmull v4.1q,v20.1d,v7.1d //H·Ii+1 + eor v17.16b,v17.16b,v7.16b //Karatsuba pre-processing + pmull2 v6.1q,v20.2d,v7.2d + b .Loop_mod2x_v8 + +.align 4 +.Loop_mod2x_v8: + ext v18.16b,v3.16b,v3.16b,#8 + subs x3,x3,#32 //is there more data? + pmull v0.1q,v22.1d,v3.1d //H^2.lo·Xi.lo + csel x12,xzr,x12,lo //is it time to zero x12? + + pmull v5.1q,v21.1d,v17.1d + eor v18.16b,v18.16b,v3.16b //Karatsuba pre-processing + pmull2 v2.1q,v22.2d,v3.2d //H^2.hi·Xi.hi + eor v0.16b,v0.16b,v4.16b //accumulate + pmull2 v1.1q,v21.2d,v18.2d //(H^2.lo+H^2.hi)·(Xi.lo+Xi.hi) + ld1 {v16.2d},[x2],x12 //load [rotated] I[i+2] + + eor v2.16b,v2.16b,v6.16b + csel x12,xzr,x12,eq //is it time to zero x12? + eor v1.16b,v1.16b,v5.16b + + ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing + eor v18.16b,v0.16b,v2.16b + eor v1.16b,v1.16b,v17.16b + ld1 {v17.2d},[x2],x12 //load [rotated] I[i+3] +#ifndef __ARMEB__ + rev64 v16.16b,v16.16b +#endif + eor v1.16b,v1.16b,v18.16b + pmull v18.1q,v0.1d,v19.1d //1st phase of reduction + +#ifndef __ARMEB__ + rev64 v17.16b,v17.16b +#endif + ins v2.d[0],v1.d[1] + ins v1.d[1],v0.d[0] + ext v7.16b,v17.16b,v17.16b,#8 + ext v3.16b,v16.16b,v16.16b,#8 + eor v0.16b,v1.16b,v18.16b + pmull v4.1q,v20.1d,v7.1d //H·Ii+1 + eor v3.16b,v3.16b,v2.16b //accumulate v3.16b early + + ext v18.16b,v0.16b,v0.16b,#8 //2nd phase of reduction + pmull v0.1q,v0.1d,v19.1d + eor v3.16b,v3.16b,v18.16b + eor v17.16b,v17.16b,v7.16b //Karatsuba pre-processing + eor v3.16b,v3.16b,v0.16b + pmull2 v6.1q,v20.2d,v7.2d + b.hs .Loop_mod2x_v8 //there was at least 32 more bytes + + eor v2.16b,v2.16b,v18.16b + ext v3.16b,v16.16b,v16.16b,#8 //re-construct v3.16b + adds x3,x3,#32 //re-construct x3 + eor v0.16b,v0.16b,v2.16b //re-construct v0.16b + b.eq .Ldone_v8 //is x3 zero? +.Lodd_tail_v8: + ext v18.16b,v0.16b,v0.16b,#8 + eor v3.16b,v3.16b,v0.16b //inp^=Xi + eor v17.16b,v16.16b,v18.16b //v17.16b is rotated inp^Xi + + pmull v0.1q,v20.1d,v3.1d //H.lo·Xi.lo + eor v17.16b,v17.16b,v3.16b //Karatsuba pre-processing + pmull2 v2.1q,v20.2d,v3.2d //H.hi·Xi.hi + pmull v1.1q,v21.1d,v17.1d //(H.lo+H.hi)·(Xi.lo+Xi.hi) + + ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing + eor v18.16b,v0.16b,v2.16b + eor v1.16b,v1.16b,v17.16b + eor v1.16b,v1.16b,v18.16b + pmull v18.1q,v0.1d,v19.1d //1st phase of reduction + + ins v2.d[0],v1.d[1] + ins v1.d[1],v0.d[0] + eor v0.16b,v1.16b,v18.16b + + ext v18.16b,v0.16b,v0.16b,#8 //2nd phase of reduction + pmull v0.1q,v0.1d,v19.1d + eor v18.16b,v18.16b,v2.16b + eor v0.16b,v0.16b,v18.16b + +.Ldone_v8: +#ifndef __ARMEB__ + rev64 v0.16b,v0.16b +#endif + ext v0.16b,v0.16b,v0.16b,#8 + st1 {v0.2d},[x0] //write out Xi + + ret +.size gcm_ghash_v8,.-gcm_ghash_v8 +.type gcm_ghash_v8_4x,%function +.align 4 +gcm_ghash_v8_4x: +.Lgcm_ghash_v8_4x: + ld1 {v0.2d},[x0] //load [rotated] Xi + ld1 {v20.2d,v21.2d,v22.2d},[x1],#48 //load twisted H, ..., H^2 + movi v19.16b,#0xe1 + ld1 {v26.2d,v27.2d,v28.2d},[x1] //load twisted H^3, ..., H^4 + shl v19.2d,v19.2d,#57 //compose 0xc2.0 constant + + ld1 {v4.2d,v5.2d,v6.2d,v7.2d},[x2],#64 +#ifndef __ARMEB__ + rev64 v0.16b,v0.16b + rev64 v5.16b,v5.16b + rev64 v6.16b,v6.16b + rev64 v7.16b,v7.16b + rev64 v4.16b,v4.16b +#endif + ext v25.16b,v7.16b,v7.16b,#8 + ext v24.16b,v6.16b,v6.16b,#8 + ext v23.16b,v5.16b,v5.16b,#8 + + pmull v29.1q,v20.1d,v25.1d //H·Ii+3 + eor v7.16b,v7.16b,v25.16b + pmull2 v31.1q,v20.2d,v25.2d + pmull v30.1q,v21.1d,v7.1d + + pmull v16.1q,v22.1d,v24.1d //H^2·Ii+2 + eor v6.16b,v6.16b,v24.16b + pmull2 v24.1q,v22.2d,v24.2d + pmull2 v6.1q,v21.2d,v6.2d + + eor v29.16b,v29.16b,v16.16b + eor v31.16b,v31.16b,v24.16b + eor v30.16b,v30.16b,v6.16b + + pmull v7.1q,v26.1d,v23.1d //H^3·Ii+1 + eor v5.16b,v5.16b,v23.16b + pmull2 v23.1q,v26.2d,v23.2d + pmull v5.1q,v27.1d,v5.1d + + eor v29.16b,v29.16b,v7.16b + eor v31.16b,v31.16b,v23.16b + eor v30.16b,v30.16b,v5.16b + + subs x3,x3,#128 + b.lo .Ltail4x + + b .Loop4x + +.align 4 +.Loop4x: + eor v16.16b,v4.16b,v0.16b + ld1 {v4.2d,v5.2d,v6.2d,v7.2d},[x2],#64 + ext v3.16b,v16.16b,v16.16b,#8 +#ifndef __ARMEB__ + rev64 v5.16b,v5.16b + rev64 v6.16b,v6.16b + rev64 v7.16b,v7.16b + rev64 v4.16b,v4.16b +#endif + + pmull v0.1q,v28.1d,v3.1d //H^4·(Xi+Ii) + eor v16.16b,v16.16b,v3.16b + pmull2 v2.1q,v28.2d,v3.2d + ext v25.16b,v7.16b,v7.16b,#8 + pmull2 v1.1q,v27.2d,v16.2d + + eor v0.16b,v0.16b,v29.16b + eor v2.16b,v2.16b,v31.16b + ext v24.16b,v6.16b,v6.16b,#8 + eor v1.16b,v1.16b,v30.16b + ext v23.16b,v5.16b,v5.16b,#8 + + ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing + eor v18.16b,v0.16b,v2.16b + pmull v29.1q,v20.1d,v25.1d //H·Ii+3 + eor v7.16b,v7.16b,v25.16b + eor v1.16b,v1.16b,v17.16b + pmull2 v31.1q,v20.2d,v25.2d + eor v1.16b,v1.16b,v18.16b + pmull v30.1q,v21.1d,v7.1d + + pmull v18.1q,v0.1d,v19.1d //1st phase of reduction + ins v2.d[0],v1.d[1] + ins v1.d[1],v0.d[0] + pmull v16.1q,v22.1d,v24.1d //H^2·Ii+2 + eor v6.16b,v6.16b,v24.16b + pmull2 v24.1q,v22.2d,v24.2d + eor v0.16b,v1.16b,v18.16b + pmull2 v6.1q,v21.2d,v6.2d + + eor v29.16b,v29.16b,v16.16b + eor v31.16b,v31.16b,v24.16b + eor v30.16b,v30.16b,v6.16b + + ext v18.16b,v0.16b,v0.16b,#8 //2nd phase of reduction + pmull v0.1q,v0.1d,v19.1d + pmull v7.1q,v26.1d,v23.1d //H^3·Ii+1 + eor v5.16b,v5.16b,v23.16b + eor v18.16b,v18.16b,v2.16b + pmull2 v23.1q,v26.2d,v23.2d + pmull v5.1q,v27.1d,v5.1d + + eor v0.16b,v0.16b,v18.16b + eor v29.16b,v29.16b,v7.16b + eor v31.16b,v31.16b,v23.16b + ext v0.16b,v0.16b,v0.16b,#8 + eor v30.16b,v30.16b,v5.16b + + subs x3,x3,#64 + b.hs .Loop4x + +.Ltail4x: + eor v16.16b,v4.16b,v0.16b + ext v3.16b,v16.16b,v16.16b,#8 + + pmull v0.1q,v28.1d,v3.1d //H^4·(Xi+Ii) + eor v16.16b,v16.16b,v3.16b + pmull2 v2.1q,v28.2d,v3.2d + pmull2 v1.1q,v27.2d,v16.2d + + eor v0.16b,v0.16b,v29.16b + eor v2.16b,v2.16b,v31.16b + eor v1.16b,v1.16b,v30.16b + + adds x3,x3,#64 + b.eq .Ldone4x + + cmp x3,#32 + b.lo .Lone + b.eq .Ltwo +.Lthree: + ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing + eor v18.16b,v0.16b,v2.16b + eor v1.16b,v1.16b,v17.16b + ld1 {v4.2d,v5.2d,v6.2d},[x2] + eor v1.16b,v1.16b,v18.16b +#ifndef __ARMEB__ + rev64 v5.16b,v5.16b + rev64 v6.16b,v6.16b + rev64 v4.16b,v4.16b +#endif + + pmull v18.1q,v0.1d,v19.1d //1st phase of reduction + ins v2.d[0],v1.d[1] + ins v1.d[1],v0.d[0] + ext v24.16b,v6.16b,v6.16b,#8 + ext v23.16b,v5.16b,v5.16b,#8 + eor v0.16b,v1.16b,v18.16b + + pmull v29.1q,v20.1d,v24.1d //H·Ii+2 + eor v6.16b,v6.16b,v24.16b + + ext v18.16b,v0.16b,v0.16b,#8 //2nd phase of reduction + pmull v0.1q,v0.1d,v19.1d + eor v18.16b,v18.16b,v2.16b + pmull2 v31.1q,v20.2d,v24.2d + pmull v30.1q,v21.1d,v6.1d + eor v0.16b,v0.16b,v18.16b + pmull v7.1q,v22.1d,v23.1d //H^2·Ii+1 + eor v5.16b,v5.16b,v23.16b + ext v0.16b,v0.16b,v0.16b,#8 + + pmull2 v23.1q,v22.2d,v23.2d + eor v16.16b,v4.16b,v0.16b + pmull2 v5.1q,v21.2d,v5.2d + ext v3.16b,v16.16b,v16.16b,#8 + + eor v29.16b,v29.16b,v7.16b + eor v31.16b,v31.16b,v23.16b + eor v30.16b,v30.16b,v5.16b + + pmull v0.1q,v26.1d,v3.1d //H^3·(Xi+Ii) + eor v16.16b,v16.16b,v3.16b + pmull2 v2.1q,v26.2d,v3.2d + pmull v1.1q,v27.1d,v16.1d + + eor v0.16b,v0.16b,v29.16b + eor v2.16b,v2.16b,v31.16b + eor v1.16b,v1.16b,v30.16b + b .Ldone4x + +.align 4 +.Ltwo: + ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing + eor v18.16b,v0.16b,v2.16b + eor v1.16b,v1.16b,v17.16b + ld1 {v4.2d,v5.2d},[x2] + eor v1.16b,v1.16b,v18.16b +#ifndef __ARMEB__ + rev64 v5.16b,v5.16b + rev64 v4.16b,v4.16b +#endif + + pmull v18.1q,v0.1d,v19.1d //1st phase of reduction + ins v2.d[0],v1.d[1] + ins v1.d[1],v0.d[0] + ext v23.16b,v5.16b,v5.16b,#8 + eor v0.16b,v1.16b,v18.16b + + ext v18.16b,v0.16b,v0.16b,#8 //2nd phase of reduction + pmull v0.1q,v0.1d,v19.1d + eor v18.16b,v18.16b,v2.16b + eor v0.16b,v0.16b,v18.16b + ext v0.16b,v0.16b,v0.16b,#8 + + pmull v29.1q,v20.1d,v23.1d //H·Ii+1 + eor v5.16b,v5.16b,v23.16b + + eor v16.16b,v4.16b,v0.16b + ext v3.16b,v16.16b,v16.16b,#8 + + pmull2 v31.1q,v20.2d,v23.2d + pmull v30.1q,v21.1d,v5.1d + + pmull v0.1q,v22.1d,v3.1d //H^2·(Xi+Ii) + eor v16.16b,v16.16b,v3.16b + pmull2 v2.1q,v22.2d,v3.2d + pmull2 v1.1q,v21.2d,v16.2d + + eor v0.16b,v0.16b,v29.16b + eor v2.16b,v2.16b,v31.16b + eor v1.16b,v1.16b,v30.16b + b .Ldone4x + +.align 4 +.Lone: + ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing + eor v18.16b,v0.16b,v2.16b + eor v1.16b,v1.16b,v17.16b + ld1 {v4.2d},[x2] + eor v1.16b,v1.16b,v18.16b +#ifndef __ARMEB__ + rev64 v4.16b,v4.16b +#endif + + pmull v18.1q,v0.1d,v19.1d //1st phase of reduction + ins v2.d[0],v1.d[1] + ins v1.d[1],v0.d[0] + eor v0.16b,v1.16b,v18.16b + + ext v18.16b,v0.16b,v0.16b,#8 //2nd phase of reduction + pmull v0.1q,v0.1d,v19.1d + eor v18.16b,v18.16b,v2.16b + eor v0.16b,v0.16b,v18.16b + ext v0.16b,v0.16b,v0.16b,#8 + + eor v16.16b,v4.16b,v0.16b + ext v3.16b,v16.16b,v16.16b,#8 + + pmull v0.1q,v20.1d,v3.1d + eor v16.16b,v16.16b,v3.16b + pmull2 v2.1q,v20.2d,v3.2d + pmull v1.1q,v21.1d,v16.1d + +.Ldone4x: + ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing + eor v18.16b,v0.16b,v2.16b + eor v1.16b,v1.16b,v17.16b + eor v1.16b,v1.16b,v18.16b + + pmull v18.1q,v0.1d,v19.1d //1st phase of reduction + ins v2.d[0],v1.d[1] + ins v1.d[1],v0.d[0] + eor v0.16b,v1.16b,v18.16b + + ext v18.16b,v0.16b,v0.16b,#8 //2nd phase of reduction + pmull v0.1q,v0.1d,v19.1d + eor v18.16b,v18.16b,v2.16b + eor v0.16b,v0.16b,v18.16b + ext v0.16b,v0.16b,v0.16b,#8 + +#ifndef __ARMEB__ + rev64 v0.16b,v0.16b +#endif + st1 {v0.2d},[x0] //write out Xi + + ret +.size gcm_ghash_v8_4x,.-gcm_ghash_v8_4x +.byte 71,72,65,83,72,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 2 +.align 2 +#endif diff --git a/vere/ext/openssl/gen/linux-aarch64/crypto/poly1305/poly1305-armv8.S b/vere/ext/openssl/gen/linux-aarch64/crypto/poly1305/poly1305-armv8.S new file mode 100644 index 0000000..62271b4 --- /dev/null +++ b/vere/ext/openssl/gen/linux-aarch64/crypto/poly1305/poly1305-armv8.S @@ -0,0 +1,870 @@ +#include "arm_arch.h" + +.text + +// forward "declarations" are required for Apple + +.hidden OPENSSL_armcap_P +.globl poly1305_init +.hidden poly1305_init +.globl poly1305_blocks +.hidden poly1305_blocks +.globl poly1305_emit +.hidden poly1305_emit + +.type poly1305_init,%function +.align 5 +poly1305_init: + cmp x1,xzr + stp xzr,xzr,[x0] // zero hash value + stp xzr,xzr,[x0,#16] // [along with is_base2_26] + + csel x0,xzr,x0,eq + b.eq .Lno_key + +#ifdef __ILP32__ + ldrsw x11,.LOPENSSL_armcap_P +#else + ldr x11,.LOPENSSL_armcap_P +#endif + adr x10,.LOPENSSL_armcap_P + + ldp x7,x8,[x1] // load key + mov x9,#0xfffffffc0fffffff + movk x9,#0x0fff,lsl#48 + ldr w17,[x10,x11] +#ifdef __ARMEB__ + rev x7,x7 // flip bytes + rev x8,x8 +#endif + and x7,x7,x9 // &=0ffffffc0fffffff + and x9,x9,#-4 + and x8,x8,x9 // &=0ffffffc0ffffffc + stp x7,x8,[x0,#32] // save key value + + tst w17,#ARMV7_NEON + + adr x12,poly1305_blocks + adr x7,poly1305_blocks_neon + adr x13,poly1305_emit + adr x8,poly1305_emit_neon + + csel x12,x12,x7,eq + csel x13,x13,x8,eq + +#ifdef __ILP32__ + stp w12,w13,[x2] +#else + stp x12,x13,[x2] +#endif + + mov x0,#1 +.Lno_key: + ret +.size poly1305_init,.-poly1305_init + +.type poly1305_blocks,%function +.align 5 +poly1305_blocks: + ands x2,x2,#-16 + b.eq .Lno_data + + ldp x4,x5,[x0] // load hash value + ldp x7,x8,[x0,#32] // load key value + ldr x6,[x0,#16] + add x9,x8,x8,lsr#2 // s1 = r1 + (r1 >> 2) + b .Loop + +.align 5 +.Loop: + ldp x10,x11,[x1],#16 // load input + sub x2,x2,#16 +#ifdef __ARMEB__ + rev x10,x10 + rev x11,x11 +#endif + adds x4,x4,x10 // accumulate input + adcs x5,x5,x11 + + mul x12,x4,x7 // h0*r0 + adc x6,x6,x3 + umulh x13,x4,x7 + + mul x10,x5,x9 // h1*5*r1 + umulh x11,x5,x9 + + adds x12,x12,x10 + mul x10,x4,x8 // h0*r1 + adc x13,x13,x11 + umulh x14,x4,x8 + + adds x13,x13,x10 + mul x10,x5,x7 // h1*r0 + adc x14,x14,xzr + umulh x11,x5,x7 + + adds x13,x13,x10 + mul x10,x6,x9 // h2*5*r1 + adc x14,x14,x11 + mul x11,x6,x7 // h2*r0 + + adds x13,x13,x10 + adc x14,x14,x11 + + and x10,x14,#-4 // final reduction + and x6,x14,#3 + add x10,x10,x14,lsr#2 + adds x4,x12,x10 + adcs x5,x13,xzr + adc x6,x6,xzr + + cbnz x2,.Loop + + stp x4,x5,[x0] // store hash value + str x6,[x0,#16] + +.Lno_data: + ret +.size poly1305_blocks,.-poly1305_blocks + +.type poly1305_emit,%function +.align 5 +poly1305_emit: + ldp x4,x5,[x0] // load hash base 2^64 + ldr x6,[x0,#16] + ldp x10,x11,[x2] // load nonce + + adds x12,x4,#5 // compare to modulus + adcs x13,x5,xzr + adc x14,x6,xzr + + tst x14,#-4 // see if it's carried/borrowed + + csel x4,x4,x12,eq + csel x5,x5,x13,eq + +#ifdef __ARMEB__ + ror x10,x10,#32 // flip nonce words + ror x11,x11,#32 +#endif + adds x4,x4,x10 // accumulate nonce + adc x5,x5,x11 +#ifdef __ARMEB__ + rev x4,x4 // flip output bytes + rev x5,x5 +#endif + stp x4,x5,[x1] // write result + + ret +.size poly1305_emit,.-poly1305_emit +.type poly1305_mult,%function +.align 5 +poly1305_mult: + mul x12,x4,x7 // h0*r0 + umulh x13,x4,x7 + + mul x10,x5,x9 // h1*5*r1 + umulh x11,x5,x9 + + adds x12,x12,x10 + mul x10,x4,x8 // h0*r1 + adc x13,x13,x11 + umulh x14,x4,x8 + + adds x13,x13,x10 + mul x10,x5,x7 // h1*r0 + adc x14,x14,xzr + umulh x11,x5,x7 + + adds x13,x13,x10 + mul x10,x6,x9 // h2*5*r1 + adc x14,x14,x11 + mul x11,x6,x7 // h2*r0 + + adds x13,x13,x10 + adc x14,x14,x11 + + and x10,x14,#-4 // final reduction + and x6,x14,#3 + add x10,x10,x14,lsr#2 + adds x4,x12,x10 + adcs x5,x13,xzr + adc x6,x6,xzr + + ret +.size poly1305_mult,.-poly1305_mult + +.type poly1305_splat,%function +.align 5 +poly1305_splat: + and x12,x4,#0x03ffffff // base 2^64 -> base 2^26 + ubfx x13,x4,#26,#26 + extr x14,x5,x4,#52 + and x14,x14,#0x03ffffff + ubfx x15,x5,#14,#26 + extr x16,x6,x5,#40 + + str w12,[x0,#16*0] // r0 + add w12,w13,w13,lsl#2 // r1*5 + str w13,[x0,#16*1] // r1 + add w13,w14,w14,lsl#2 // r2*5 + str w12,[x0,#16*2] // s1 + str w14,[x0,#16*3] // r2 + add w14,w15,w15,lsl#2 // r3*5 + str w13,[x0,#16*4] // s2 + str w15,[x0,#16*5] // r3 + add w15,w16,w16,lsl#2 // r4*5 + str w14,[x0,#16*6] // s3 + str w16,[x0,#16*7] // r4 + str w15,[x0,#16*8] // s4 + + ret +.size poly1305_splat,.-poly1305_splat + +.type poly1305_blocks_neon,%function +.align 5 +poly1305_blocks_neon: + ldr x17,[x0,#24] + cmp x2,#128 + b.hs .Lblocks_neon + cbz x17,poly1305_blocks + +.Lblocks_neon: +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-80]! + add x29,sp,#0 + + ands x2,x2,#-16 + b.eq .Lno_data_neon + + cbz x17,.Lbase2_64_neon + + ldp w10,w11,[x0] // load hash value base 2^26 + ldp w12,w13,[x0,#8] + ldr w14,[x0,#16] + + tst x2,#31 + b.eq .Leven_neon + + ldp x7,x8,[x0,#32] // load key value + + add x4,x10,x11,lsl#26 // base 2^26 -> base 2^64 + lsr x5,x12,#12 + adds x4,x4,x12,lsl#52 + add x5,x5,x13,lsl#14 + adc x5,x5,xzr + lsr x6,x14,#24 + adds x5,x5,x14,lsl#40 + adc x14,x6,xzr // can be partially reduced... + + ldp x12,x13,[x1],#16 // load input + sub x2,x2,#16 + add x9,x8,x8,lsr#2 // s1 = r1 + (r1 >> 2) + + and x10,x14,#-4 // ... so reduce + and x6,x14,#3 + add x10,x10,x14,lsr#2 + adds x4,x4,x10 + adcs x5,x5,xzr + adc x6,x6,xzr + +#ifdef __ARMEB__ + rev x12,x12 + rev x13,x13 +#endif + adds x4,x4,x12 // accumulate input + adcs x5,x5,x13 + adc x6,x6,x3 + + bl poly1305_mult + ldr x30,[sp,#8] + + cbz x3,.Lstore_base2_64_neon + + and x10,x4,#0x03ffffff // base 2^64 -> base 2^26 + ubfx x11,x4,#26,#26 + extr x12,x5,x4,#52 + and x12,x12,#0x03ffffff + ubfx x13,x5,#14,#26 + extr x14,x6,x5,#40 + + cbnz x2,.Leven_neon + + stp w10,w11,[x0] // store hash value base 2^26 + stp w12,w13,[x0,#8] + str w14,[x0,#16] + b .Lno_data_neon + +.align 4 +.Lstore_base2_64_neon: + stp x4,x5,[x0] // store hash value base 2^64 + stp x6,xzr,[x0,#16] // note that is_base2_26 is zeroed + b .Lno_data_neon + +.align 4 +.Lbase2_64_neon: + ldp x7,x8,[x0,#32] // load key value + + ldp x4,x5,[x0] // load hash value base 2^64 + ldr x6,[x0,#16] + + tst x2,#31 + b.eq .Linit_neon + + ldp x12,x13,[x1],#16 // load input + sub x2,x2,#16 + add x9,x8,x8,lsr#2 // s1 = r1 + (r1 >> 2) +#ifdef __ARMEB__ + rev x12,x12 + rev x13,x13 +#endif + adds x4,x4,x12 // accumulate input + adcs x5,x5,x13 + adc x6,x6,x3 + + bl poly1305_mult + +.Linit_neon: + and x10,x4,#0x03ffffff // base 2^64 -> base 2^26 + ubfx x11,x4,#26,#26 + extr x12,x5,x4,#52 + and x12,x12,#0x03ffffff + ubfx x13,x5,#14,#26 + extr x14,x6,x5,#40 + + stp d8,d9,[sp,#16] // meet ABI requirements + stp d10,d11,[sp,#32] + stp d12,d13,[sp,#48] + stp d14,d15,[sp,#64] + + fmov d24,x10 + fmov d25,x11 + fmov d26,x12 + fmov d27,x13 + fmov d28,x14 + + ////////////////////////////////// initialize r^n table + mov x4,x7 // r^1 + add x9,x8,x8,lsr#2 // s1 = r1 + (r1 >> 2) + mov x5,x8 + mov x6,xzr + add x0,x0,#48+12 + bl poly1305_splat + + bl poly1305_mult // r^2 + sub x0,x0,#4 + bl poly1305_splat + + bl poly1305_mult // r^3 + sub x0,x0,#4 + bl poly1305_splat + + bl poly1305_mult // r^4 + sub x0,x0,#4 + bl poly1305_splat + ldr x30,[sp,#8] + + add x16,x1,#32 + adr x17,.Lzeros + subs x2,x2,#64 + csel x16,x17,x16,lo + + mov x4,#1 + str x4,[x0,#-24] // set is_base2_26 + sub x0,x0,#48 // restore original x0 + b .Ldo_neon + +.align 4 +.Leven_neon: + add x16,x1,#32 + adr x17,.Lzeros + subs x2,x2,#64 + csel x16,x17,x16,lo + + stp d8,d9,[sp,#16] // meet ABI requirements + stp d10,d11,[sp,#32] + stp d12,d13,[sp,#48] + stp d14,d15,[sp,#64] + + fmov d24,x10 + fmov d25,x11 + fmov d26,x12 + fmov d27,x13 + fmov d28,x14 + +.Ldo_neon: + ldp x8,x12,[x16],#16 // inp[2:3] (or zero) + ldp x9,x13,[x16],#48 + + lsl x3,x3,#24 + add x15,x0,#48 + +#ifdef __ARMEB__ + rev x8,x8 + rev x12,x12 + rev x9,x9 + rev x13,x13 +#endif + and x4,x8,#0x03ffffff // base 2^64 -> base 2^26 + and x5,x9,#0x03ffffff + ubfx x6,x8,#26,#26 + ubfx x7,x9,#26,#26 + add x4,x4,x5,lsl#32 // bfi x4,x5,#32,#32 + extr x8,x12,x8,#52 + extr x9,x13,x9,#52 + add x6,x6,x7,lsl#32 // bfi x6,x7,#32,#32 + fmov d14,x4 + and x8,x8,#0x03ffffff + and x9,x9,#0x03ffffff + ubfx x10,x12,#14,#26 + ubfx x11,x13,#14,#26 + add x12,x3,x12,lsr#40 + add x13,x3,x13,lsr#40 + add x8,x8,x9,lsl#32 // bfi x8,x9,#32,#32 + fmov d15,x6 + add x10,x10,x11,lsl#32 // bfi x10,x11,#32,#32 + add x12,x12,x13,lsl#32 // bfi x12,x13,#32,#32 + fmov d16,x8 + fmov d17,x10 + fmov d18,x12 + + ldp x8,x12,[x1],#16 // inp[0:1] + ldp x9,x13,[x1],#48 + + ld1 {v0.4s,v1.4s,v2.4s,v3.4s},[x15],#64 + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x15],#64 + ld1 {v8.4s},[x15] + +#ifdef __ARMEB__ + rev x8,x8 + rev x12,x12 + rev x9,x9 + rev x13,x13 +#endif + and x4,x8,#0x03ffffff // base 2^64 -> base 2^26 + and x5,x9,#0x03ffffff + ubfx x6,x8,#26,#26 + ubfx x7,x9,#26,#26 + add x4,x4,x5,lsl#32 // bfi x4,x5,#32,#32 + extr x8,x12,x8,#52 + extr x9,x13,x9,#52 + add x6,x6,x7,lsl#32 // bfi x6,x7,#32,#32 + fmov d9,x4 + and x8,x8,#0x03ffffff + and x9,x9,#0x03ffffff + ubfx x10,x12,#14,#26 + ubfx x11,x13,#14,#26 + add x12,x3,x12,lsr#40 + add x13,x3,x13,lsr#40 + add x8,x8,x9,lsl#32 // bfi x8,x9,#32,#32 + fmov d10,x6 + add x10,x10,x11,lsl#32 // bfi x10,x11,#32,#32 + add x12,x12,x13,lsl#32 // bfi x12,x13,#32,#32 + movi v31.2d,#-1 + fmov d11,x8 + fmov d12,x10 + fmov d13,x12 + ushr v31.2d,v31.2d,#38 + + b.ls .Lskip_loop + +.align 4 +.Loop_neon: + //////////////////////////////////////////////////////////////// + // ((inp[0]*r^4+inp[2]*r^2+inp[4])*r^4+inp[6]*r^2 + // ((inp[1]*r^4+inp[3]*r^2+inp[5])*r^3+inp[7]*r + // ___________________/ + // ((inp[0]*r^4+inp[2]*r^2+inp[4])*r^4+inp[6]*r^2+inp[8])*r^2 + // ((inp[1]*r^4+inp[3]*r^2+inp[5])*r^4+inp[7]*r^2+inp[9])*r + // ___________________/ ____________________/ + // + // Note that we start with inp[2:3]*r^2. This is because it + // doesn't depend on reduction in previous iteration. + //////////////////////////////////////////////////////////////// + // d4 = h0*r4 + h1*r3 + h2*r2 + h3*r1 + h4*r0 + // d3 = h0*r3 + h1*r2 + h2*r1 + h3*r0 + h4*5*r4 + // d2 = h0*r2 + h1*r1 + h2*r0 + h3*5*r4 + h4*5*r3 + // d1 = h0*r1 + h1*r0 + h2*5*r4 + h3*5*r3 + h4*5*r2 + // d0 = h0*r0 + h1*5*r4 + h2*5*r3 + h3*5*r2 + h4*5*r1 + + subs x2,x2,#64 + umull v23.2d,v14.2s,v7.s[2] + csel x16,x17,x16,lo + umull v22.2d,v14.2s,v5.s[2] + umull v21.2d,v14.2s,v3.s[2] + ldp x8,x12,[x16],#16 // inp[2:3] (or zero) + umull v20.2d,v14.2s,v1.s[2] + ldp x9,x13,[x16],#48 + umull v19.2d,v14.2s,v0.s[2] +#ifdef __ARMEB__ + rev x8,x8 + rev x12,x12 + rev x9,x9 + rev x13,x13 +#endif + + umlal v23.2d,v15.2s,v5.s[2] + and x4,x8,#0x03ffffff // base 2^64 -> base 2^26 + umlal v22.2d,v15.2s,v3.s[2] + and x5,x9,#0x03ffffff + umlal v21.2d,v15.2s,v1.s[2] + ubfx x6,x8,#26,#26 + umlal v20.2d,v15.2s,v0.s[2] + ubfx x7,x9,#26,#26 + umlal v19.2d,v15.2s,v8.s[2] + add x4,x4,x5,lsl#32 // bfi x4,x5,#32,#32 + + umlal v23.2d,v16.2s,v3.s[2] + extr x8,x12,x8,#52 + umlal v22.2d,v16.2s,v1.s[2] + extr x9,x13,x9,#52 + umlal v21.2d,v16.2s,v0.s[2] + add x6,x6,x7,lsl#32 // bfi x6,x7,#32,#32 + umlal v20.2d,v16.2s,v8.s[2] + fmov d14,x4 + umlal v19.2d,v16.2s,v6.s[2] + and x8,x8,#0x03ffffff + + umlal v23.2d,v17.2s,v1.s[2] + and x9,x9,#0x03ffffff + umlal v22.2d,v17.2s,v0.s[2] + ubfx x10,x12,#14,#26 + umlal v21.2d,v17.2s,v8.s[2] + ubfx x11,x13,#14,#26 + umlal v20.2d,v17.2s,v6.s[2] + add x8,x8,x9,lsl#32 // bfi x8,x9,#32,#32 + umlal v19.2d,v17.2s,v4.s[2] + fmov d15,x6 + + add v11.2s,v11.2s,v26.2s + add x12,x3,x12,lsr#40 + umlal v23.2d,v18.2s,v0.s[2] + add x13,x3,x13,lsr#40 + umlal v22.2d,v18.2s,v8.s[2] + add x10,x10,x11,lsl#32 // bfi x10,x11,#32,#32 + umlal v21.2d,v18.2s,v6.s[2] + add x12,x12,x13,lsl#32 // bfi x12,x13,#32,#32 + umlal v20.2d,v18.2s,v4.s[2] + fmov d16,x8 + umlal v19.2d,v18.2s,v2.s[2] + fmov d17,x10 + + //////////////////////////////////////////////////////////////// + // (hash+inp[0:1])*r^4 and accumulate + + add v9.2s,v9.2s,v24.2s + fmov d18,x12 + umlal v22.2d,v11.2s,v1.s[0] + ldp x8,x12,[x1],#16 // inp[0:1] + umlal v19.2d,v11.2s,v6.s[0] + ldp x9,x13,[x1],#48 + umlal v23.2d,v11.2s,v3.s[0] + umlal v20.2d,v11.2s,v8.s[0] + umlal v21.2d,v11.2s,v0.s[0] +#ifdef __ARMEB__ + rev x8,x8 + rev x12,x12 + rev x9,x9 + rev x13,x13 +#endif + + add v10.2s,v10.2s,v25.2s + umlal v22.2d,v9.2s,v5.s[0] + umlal v23.2d,v9.2s,v7.s[0] + and x4,x8,#0x03ffffff // base 2^64 -> base 2^26 + umlal v21.2d,v9.2s,v3.s[0] + and x5,x9,#0x03ffffff + umlal v19.2d,v9.2s,v0.s[0] + ubfx x6,x8,#26,#26 + umlal v20.2d,v9.2s,v1.s[0] + ubfx x7,x9,#26,#26 + + add v12.2s,v12.2s,v27.2s + add x4,x4,x5,lsl#32 // bfi x4,x5,#32,#32 + umlal v22.2d,v10.2s,v3.s[0] + extr x8,x12,x8,#52 + umlal v23.2d,v10.2s,v5.s[0] + extr x9,x13,x9,#52 + umlal v19.2d,v10.2s,v8.s[0] + add x6,x6,x7,lsl#32 // bfi x6,x7,#32,#32 + umlal v21.2d,v10.2s,v1.s[0] + fmov d9,x4 + umlal v20.2d,v10.2s,v0.s[0] + and x8,x8,#0x03ffffff + + add v13.2s,v13.2s,v28.2s + and x9,x9,#0x03ffffff + umlal v22.2d,v12.2s,v0.s[0] + ubfx x10,x12,#14,#26 + umlal v19.2d,v12.2s,v4.s[0] + ubfx x11,x13,#14,#26 + umlal v23.2d,v12.2s,v1.s[0] + add x8,x8,x9,lsl#32 // bfi x8,x9,#32,#32 + umlal v20.2d,v12.2s,v6.s[0] + fmov d10,x6 + umlal v21.2d,v12.2s,v8.s[0] + add x12,x3,x12,lsr#40 + + umlal v22.2d,v13.2s,v8.s[0] + add x13,x3,x13,lsr#40 + umlal v19.2d,v13.2s,v2.s[0] + add x10,x10,x11,lsl#32 // bfi x10,x11,#32,#32 + umlal v23.2d,v13.2s,v0.s[0] + add x12,x12,x13,lsl#32 // bfi x12,x13,#32,#32 + umlal v20.2d,v13.2s,v4.s[0] + fmov d11,x8 + umlal v21.2d,v13.2s,v6.s[0] + fmov d12,x10 + fmov d13,x12 + + ///////////////////////////////////////////////////////////////// + // lazy reduction as discussed in "NEON crypto" by D.J. Bernstein + // and P. Schwabe + // + // [see discussion in poly1305-armv4 module] + + ushr v29.2d,v22.2d,#26 + xtn v27.2s,v22.2d + ushr v30.2d,v19.2d,#26 + and v19.16b,v19.16b,v31.16b + add v23.2d,v23.2d,v29.2d // h3 -> h4 + bic v27.2s,#0xfc,lsl#24 // &=0x03ffffff + add v20.2d,v20.2d,v30.2d // h0 -> h1 + + ushr v29.2d,v23.2d,#26 + xtn v28.2s,v23.2d + ushr v30.2d,v20.2d,#26 + xtn v25.2s,v20.2d + bic v28.2s,#0xfc,lsl#24 + add v21.2d,v21.2d,v30.2d // h1 -> h2 + + add v19.2d,v19.2d,v29.2d + shl v29.2d,v29.2d,#2 + shrn v30.2s,v21.2d,#26 + xtn v26.2s,v21.2d + add v19.2d,v19.2d,v29.2d // h4 -> h0 + bic v25.2s,#0xfc,lsl#24 + add v27.2s,v27.2s,v30.2s // h2 -> h3 + bic v26.2s,#0xfc,lsl#24 + + shrn v29.2s,v19.2d,#26 + xtn v24.2s,v19.2d + ushr v30.2s,v27.2s,#26 + bic v27.2s,#0xfc,lsl#24 + bic v24.2s,#0xfc,lsl#24 + add v25.2s,v25.2s,v29.2s // h0 -> h1 + add v28.2s,v28.2s,v30.2s // h3 -> h4 + + b.hi .Loop_neon + +.Lskip_loop: + dup v16.2d,v16.d[0] + add v11.2s,v11.2s,v26.2s + + //////////////////////////////////////////////////////////////// + // multiply (inp[0:1]+hash) or inp[2:3] by r^2:r^1 + + adds x2,x2,#32 + b.ne .Long_tail + + dup v16.2d,v11.d[0] + add v14.2s,v9.2s,v24.2s + add v17.2s,v12.2s,v27.2s + add v15.2s,v10.2s,v25.2s + add v18.2s,v13.2s,v28.2s + +.Long_tail: + dup v14.2d,v14.d[0] + umull2 v19.2d,v16.4s,v6.4s + umull2 v22.2d,v16.4s,v1.4s + umull2 v23.2d,v16.4s,v3.4s + umull2 v21.2d,v16.4s,v0.4s + umull2 v20.2d,v16.4s,v8.4s + + dup v15.2d,v15.d[0] + umlal2 v19.2d,v14.4s,v0.4s + umlal2 v21.2d,v14.4s,v3.4s + umlal2 v22.2d,v14.4s,v5.4s + umlal2 v23.2d,v14.4s,v7.4s + umlal2 v20.2d,v14.4s,v1.4s + + dup v17.2d,v17.d[0] + umlal2 v19.2d,v15.4s,v8.4s + umlal2 v22.2d,v15.4s,v3.4s + umlal2 v21.2d,v15.4s,v1.4s + umlal2 v23.2d,v15.4s,v5.4s + umlal2 v20.2d,v15.4s,v0.4s + + dup v18.2d,v18.d[0] + umlal2 v22.2d,v17.4s,v0.4s + umlal2 v23.2d,v17.4s,v1.4s + umlal2 v19.2d,v17.4s,v4.4s + umlal2 v20.2d,v17.4s,v6.4s + umlal2 v21.2d,v17.4s,v8.4s + + umlal2 v22.2d,v18.4s,v8.4s + umlal2 v19.2d,v18.4s,v2.4s + umlal2 v23.2d,v18.4s,v0.4s + umlal2 v20.2d,v18.4s,v4.4s + umlal2 v21.2d,v18.4s,v6.4s + + b.eq .Lshort_tail + + //////////////////////////////////////////////////////////////// + // (hash+inp[0:1])*r^4:r^3 and accumulate + + add v9.2s,v9.2s,v24.2s + umlal v22.2d,v11.2s,v1.2s + umlal v19.2d,v11.2s,v6.2s + umlal v23.2d,v11.2s,v3.2s + umlal v20.2d,v11.2s,v8.2s + umlal v21.2d,v11.2s,v0.2s + + add v10.2s,v10.2s,v25.2s + umlal v22.2d,v9.2s,v5.2s + umlal v19.2d,v9.2s,v0.2s + umlal v23.2d,v9.2s,v7.2s + umlal v20.2d,v9.2s,v1.2s + umlal v21.2d,v9.2s,v3.2s + + add v12.2s,v12.2s,v27.2s + umlal v22.2d,v10.2s,v3.2s + umlal v19.2d,v10.2s,v8.2s + umlal v23.2d,v10.2s,v5.2s + umlal v20.2d,v10.2s,v0.2s + umlal v21.2d,v10.2s,v1.2s + + add v13.2s,v13.2s,v28.2s + umlal v22.2d,v12.2s,v0.2s + umlal v19.2d,v12.2s,v4.2s + umlal v23.2d,v12.2s,v1.2s + umlal v20.2d,v12.2s,v6.2s + umlal v21.2d,v12.2s,v8.2s + + umlal v22.2d,v13.2s,v8.2s + umlal v19.2d,v13.2s,v2.2s + umlal v23.2d,v13.2s,v0.2s + umlal v20.2d,v13.2s,v4.2s + umlal v21.2d,v13.2s,v6.2s + +.Lshort_tail: + //////////////////////////////////////////////////////////////// + // horizontal add + + addp v22.2d,v22.2d,v22.2d + ldp d8,d9,[sp,#16] // meet ABI requirements + addp v19.2d,v19.2d,v19.2d + ldp d10,d11,[sp,#32] + addp v23.2d,v23.2d,v23.2d + ldp d12,d13,[sp,#48] + addp v20.2d,v20.2d,v20.2d + ldp d14,d15,[sp,#64] + addp v21.2d,v21.2d,v21.2d + + //////////////////////////////////////////////////////////////// + // lazy reduction, but without narrowing + + ushr v29.2d,v22.2d,#26 + and v22.16b,v22.16b,v31.16b + ushr v30.2d,v19.2d,#26 + and v19.16b,v19.16b,v31.16b + + add v23.2d,v23.2d,v29.2d // h3 -> h4 + add v20.2d,v20.2d,v30.2d // h0 -> h1 + + ushr v29.2d,v23.2d,#26 + and v23.16b,v23.16b,v31.16b + ushr v30.2d,v20.2d,#26 + and v20.16b,v20.16b,v31.16b + add v21.2d,v21.2d,v30.2d // h1 -> h2 + + add v19.2d,v19.2d,v29.2d + shl v29.2d,v29.2d,#2 + ushr v30.2d,v21.2d,#26 + and v21.16b,v21.16b,v31.16b + add v19.2d,v19.2d,v29.2d // h4 -> h0 + add v22.2d,v22.2d,v30.2d // h2 -> h3 + + ushr v29.2d,v19.2d,#26 + and v19.16b,v19.16b,v31.16b + ushr v30.2d,v22.2d,#26 + and v22.16b,v22.16b,v31.16b + add v20.2d,v20.2d,v29.2d // h0 -> h1 + add v23.2d,v23.2d,v30.2d // h3 -> h4 + + //////////////////////////////////////////////////////////////// + // write the result, can be partially reduced + + st4 {v19.s,v20.s,v21.s,v22.s}[0],[x0],#16 + st1 {v23.s}[0],[x0] + +.Lno_data_neon: + ldr x29,[sp],#80 +.inst 0xd50323bf // autiasp + ret +.size poly1305_blocks_neon,.-poly1305_blocks_neon + +.type poly1305_emit_neon,%function +.align 5 +poly1305_emit_neon: + ldr x17,[x0,#24] + cbz x17,poly1305_emit + + ldp w10,w11,[x0] // load hash value base 2^26 + ldp w12,w13,[x0,#8] + ldr w14,[x0,#16] + + add x4,x10,x11,lsl#26 // base 2^26 -> base 2^64 + lsr x5,x12,#12 + adds x4,x4,x12,lsl#52 + add x5,x5,x13,lsl#14 + adc x5,x5,xzr + lsr x6,x14,#24 + adds x5,x5,x14,lsl#40 + adc x6,x6,xzr // can be partially reduced... + + ldp x10,x11,[x2] // load nonce + + and x12,x6,#-4 // ... so reduce + add x12,x12,x6,lsr#2 + and x6,x6,#3 + adds x4,x4,x12 + adcs x5,x5,xzr + adc x6,x6,xzr + + adds x12,x4,#5 // compare to modulus + adcs x13,x5,xzr + adc x14,x6,xzr + + tst x14,#-4 // see if it's carried/borrowed + + csel x4,x4,x12,eq + csel x5,x5,x13,eq + +#ifdef __ARMEB__ + ror x10,x10,#32 // flip nonce words + ror x11,x11,#32 +#endif + adds x4,x4,x10 // accumulate nonce + adc x5,x5,x11 +#ifdef __ARMEB__ + rev x4,x4 // flip output bytes + rev x5,x5 +#endif + stp x4,x5,[x1] // write result + + ret +.size poly1305_emit_neon,.-poly1305_emit_neon + +.align 5 +.Lzeros: +.long 0,0,0,0,0,0,0,0 +.LOPENSSL_armcap_P: +#ifdef __ILP32__ +.long OPENSSL_armcap_P-. +#else +.quad OPENSSL_armcap_P-. +#endif +.byte 80,111,108,121,49,51,48,53,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 2 +.align 2 diff --git a/vere/ext/openssl/gen/linux-aarch64/crypto/sha/keccak1600-armv8.S b/vere/ext/openssl/gen/linux-aarch64/crypto/sha/keccak1600-armv8.S new file mode 100644 index 0000000..d8bdc71 --- /dev/null +++ b/vere/ext/openssl/gen/linux-aarch64/crypto/sha/keccak1600-armv8.S @@ -0,0 +1,1095 @@ +.text + +.align 8 // strategic alignment and padding that allows to use + // address value as loop termination condition... +.quad 0,0,0,0,0,0,0,0 +.type iotas,%object +iotas: +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x8000000080008008 +.size iotas,.-iotas +.type KeccakF1600_int,%function +.align 5 +KeccakF1600_int: + adr x28,iotas +.inst 0xd503233f // paciasp + stp x28,x30,[sp,#16] // 32 bytes on top are mine + b .Loop +.align 4 +.Loop: + ////////////////////////////////////////// Theta + eor x26,x0,x5 + stp x4,x9,[sp,#0] // offload pair... + eor x27,x1,x6 + eor x28,x2,x7 + eor x30,x3,x8 + eor x4,x4,x9 + eor x26,x26,x10 + eor x27,x27,x11 + eor x28,x28,x12 + eor x30,x30,x13 + eor x4,x4,x14 + eor x26,x26,x15 + eor x27,x27,x16 + eor x28,x28,x17 + eor x30,x30,x25 + eor x4,x4,x19 + eor x26,x26,x20 + eor x28,x28,x22 + eor x27,x27,x21 + eor x30,x30,x23 + eor x4,x4,x24 + + eor x9,x26,x28,ror#63 + + eor x1,x1,x9 + eor x6,x6,x9 + eor x11,x11,x9 + eor x16,x16,x9 + eor x21,x21,x9 + + eor x9,x27,x30,ror#63 + eor x28,x28,x4,ror#63 + eor x30,x30,x26,ror#63 + eor x4,x4,x27,ror#63 + + eor x27, x2,x9 // mov x27,x2 + eor x7,x7,x9 + eor x12,x12,x9 + eor x17,x17,x9 + eor x22,x22,x9 + + eor x0,x0,x4 + eor x5,x5,x4 + eor x10,x10,x4 + eor x15,x15,x4 + eor x20,x20,x4 + ldp x4,x9,[sp,#0] // re-load offloaded data + eor x26, x3,x28 // mov x26,x3 + eor x8,x8,x28 + eor x13,x13,x28 + eor x25,x25,x28 + eor x23,x23,x28 + + eor x28, x4,x30 // mov x28,x4 + eor x9,x9,x30 + eor x14,x14,x30 + eor x19,x19,x30 + eor x24,x24,x30 + + ////////////////////////////////////////// Rho+Pi + mov x30,x1 + ror x1,x6,#64-44 + //mov x27,x2 + ror x2,x12,#64-43 + //mov x26,x3 + ror x3,x25,#64-21 + //mov x28,x4 + ror x4,x24,#64-14 + + ror x6,x9,#64-20 + ror x12,x13,#64-25 + ror x25,x17,#64-15 + ror x24,x21,#64-2 + + ror x9,x22,#64-61 + ror x13,x19,#64-8 + ror x17,x11,#64-10 + ror x21,x8,#64-55 + + ror x22,x14,#64-39 + ror x19,x23,#64-56 + ror x11,x7,#64-6 + ror x8,x16,#64-45 + + ror x14,x20,#64-18 + ror x23,x15,#64-41 + ror x7,x10,#64-3 + ror x16,x5,#64-36 + + ror x5,x26,#64-28 + ror x10,x30,#64-1 + ror x15,x28,#64-27 + ror x20,x27,#64-62 + + ////////////////////////////////////////// Chi+Iota + bic x26,x2,x1 + bic x27,x3,x2 + bic x28,x0,x4 + bic x30,x1,x0 + eor x0,x0,x26 + bic x26,x4,x3 + eor x1,x1,x27 + ldr x27,[sp,#16] + eor x3,x3,x28 + eor x4,x4,x30 + eor x2,x2,x26 + ldr x30,[x27],#8 // Iota[i++] + + bic x26,x7,x6 + tst x27,#255 // are we done? + str x27,[sp,#16] + bic x27,x8,x7 + bic x28,x5,x9 + eor x0,x0,x30 // A[0][0] ^= Iota + bic x30,x6,x5 + eor x5,x5,x26 + bic x26,x9,x8 + eor x6,x6,x27 + eor x8,x8,x28 + eor x9,x9,x30 + eor x7,x7,x26 + + bic x26,x12,x11 + bic x27,x13,x12 + bic x28,x10,x14 + bic x30,x11,x10 + eor x10,x10,x26 + bic x26,x14,x13 + eor x11,x11,x27 + eor x13,x13,x28 + eor x14,x14,x30 + eor x12,x12,x26 + + bic x26,x17,x16 + bic x27,x25,x17 + bic x28,x15,x19 + bic x30,x16,x15 + eor x15,x15,x26 + bic x26,x19,x25 + eor x16,x16,x27 + eor x25,x25,x28 + eor x19,x19,x30 + eor x17,x17,x26 + + bic x26,x22,x21 + bic x27,x23,x22 + bic x28,x20,x24 + bic x30,x21,x20 + eor x20,x20,x26 + bic x26,x24,x23 + eor x21,x21,x27 + eor x23,x23,x28 + eor x24,x24,x30 + eor x22,x22,x26 + + bne .Loop + + ldr x30,[sp,#24] +.inst 0xd50323bf // autiasp + ret +.size KeccakF1600_int,.-KeccakF1600_int + +.type KeccakF1600,%function +.align 5 +KeccakF1600: +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-128]! + add x29,sp,#0 + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + stp x23,x24,[sp,#48] + stp x25,x26,[sp,#64] + stp x27,x28,[sp,#80] + sub sp,sp,#48 + + str x0,[sp,#32] // offload argument + mov x26,x0 + ldp x0,x1,[x0,#16*0] + ldp x2,x3,[x26,#16*1] + ldp x4,x5,[x26,#16*2] + ldp x6,x7,[x26,#16*3] + ldp x8,x9,[x26,#16*4] + ldp x10,x11,[x26,#16*5] + ldp x12,x13,[x26,#16*6] + ldp x14,x15,[x26,#16*7] + ldp x16,x17,[x26,#16*8] + ldp x25,x19,[x26,#16*9] + ldp x20,x21,[x26,#16*10] + ldp x22,x23,[x26,#16*11] + ldr x24,[x26,#16*12] + + bl KeccakF1600_int + + ldr x26,[sp,#32] + stp x0,x1,[x26,#16*0] + stp x2,x3,[x26,#16*1] + stp x4,x5,[x26,#16*2] + stp x6,x7,[x26,#16*3] + stp x8,x9,[x26,#16*4] + stp x10,x11,[x26,#16*5] + stp x12,x13,[x26,#16*6] + stp x14,x15,[x26,#16*7] + stp x16,x17,[x26,#16*8] + stp x25,x19,[x26,#16*9] + stp x20,x21,[x26,#16*10] + stp x22,x23,[x26,#16*11] + str x24,[x26,#16*12] + + ldp x19,x20,[x29,#16] + add sp,sp,#48 + ldp x21,x22,[x29,#32] + ldp x23,x24,[x29,#48] + ldp x25,x26,[x29,#64] + ldp x27,x28,[x29,#80] + ldp x29,x30,[sp],#128 +.inst 0xd50323bf // autiasp + ret +.size KeccakF1600,.-KeccakF1600 + +.globl SHA3_absorb +.type SHA3_absorb,%function +.align 5 +SHA3_absorb: +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-128]! + add x29,sp,#0 + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + stp x23,x24,[sp,#48] + stp x25,x26,[sp,#64] + stp x27,x28,[sp,#80] + sub sp,sp,#64 + + stp x0,x1,[sp,#32] // offload arguments + stp x2,x3,[sp,#48] + + mov x26,x0 // uint64_t A[5][5] + mov x27,x1 // const void *inp + mov x28,x2 // size_t len + mov x30,x3 // size_t bsz + ldp x0,x1,[x26,#16*0] + ldp x2,x3,[x26,#16*1] + ldp x4,x5,[x26,#16*2] + ldp x6,x7,[x26,#16*3] + ldp x8,x9,[x26,#16*4] + ldp x10,x11,[x26,#16*5] + ldp x12,x13,[x26,#16*6] + ldp x14,x15,[x26,#16*7] + ldp x16,x17,[x26,#16*8] + ldp x25,x19,[x26,#16*9] + ldp x20,x21,[x26,#16*10] + ldp x22,x23,[x26,#16*11] + ldr x24,[x26,#16*12] + b .Loop_absorb + +.align 4 +.Loop_absorb: + subs x26,x28,x30 // len - bsz + blo .Labsorbed + + str x26,[sp,#48] // save len - bsz + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x0,x0,x26 + cmp x30,#8*(0+2) + blo .Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x1,x1,x26 + beq .Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x2,x2,x26 + cmp x30,#8*(2+2) + blo .Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x3,x3,x26 + beq .Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x4,x4,x26 + cmp x30,#8*(4+2) + blo .Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x5,x5,x26 + beq .Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x6,x6,x26 + cmp x30,#8*(6+2) + blo .Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x7,x7,x26 + beq .Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x8,x8,x26 + cmp x30,#8*(8+2) + blo .Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x9,x9,x26 + beq .Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x10,x10,x26 + cmp x30,#8*(10+2) + blo .Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x11,x11,x26 + beq .Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x12,x12,x26 + cmp x30,#8*(12+2) + blo .Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x13,x13,x26 + beq .Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x14,x14,x26 + cmp x30,#8*(14+2) + blo .Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x15,x15,x26 + beq .Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x16,x16,x26 + cmp x30,#8*(16+2) + blo .Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x17,x17,x26 + beq .Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x25,x25,x26 + cmp x30,#8*(18+2) + blo .Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x19,x19,x26 + beq .Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x20,x20,x26 + cmp x30,#8*(20+2) + blo .Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x21,x21,x26 + beq .Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x22,x22,x26 + cmp x30,#8*(22+2) + blo .Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x23,x23,x26 + beq .Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x24,x24,x26 + +.Lprocess_block: + str x27,[sp,#40] // save inp + + bl KeccakF1600_int + + ldr x27,[sp,#40] // restore arguments + ldp x28,x30,[sp,#48] + b .Loop_absorb + +.align 4 +.Labsorbed: + ldr x27,[sp,#32] + stp x0,x1,[x27,#16*0] + stp x2,x3,[x27,#16*1] + stp x4,x5,[x27,#16*2] + stp x6,x7,[x27,#16*3] + stp x8,x9,[x27,#16*4] + stp x10,x11,[x27,#16*5] + stp x12,x13,[x27,#16*6] + stp x14,x15,[x27,#16*7] + stp x16,x17,[x27,#16*8] + stp x25,x19,[x27,#16*9] + stp x20,x21,[x27,#16*10] + stp x22,x23,[x27,#16*11] + str x24,[x27,#16*12] + + mov x0,x28 // return value + ldp x19,x20,[x29,#16] + add sp,sp,#64 + ldp x21,x22,[x29,#32] + ldp x23,x24,[x29,#48] + ldp x25,x26,[x29,#64] + ldp x27,x28,[x29,#80] + ldp x29,x30,[sp],#128 +.inst 0xd50323bf // autiasp + ret +.size SHA3_absorb,.-SHA3_absorb +.globl SHA3_squeeze +.type SHA3_squeeze,%function +.align 5 +SHA3_squeeze: +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-48]! + add x29,sp,#0 + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + + mov x19,x0 // put aside arguments + mov x20,x1 + mov x21,x2 + mov x22,x3 + +.Loop_squeeze: + ldr x4,[x0],#8 + cmp x21,#8 + blo .Lsqueeze_tail +#ifdef __AARCH64EB__ + rev x4,x4 +#endif + str x4,[x20],#8 + subs x21,x21,#8 + beq .Lsqueeze_done + + subs x3,x3,#8 + bhi .Loop_squeeze + + mov x0,x19 + bl KeccakF1600 + mov x0,x19 + mov x3,x22 + b .Loop_squeeze + +.align 4 +.Lsqueeze_tail: + strb w4,[x20],#1 + lsr x4,x4,#8 + subs x21,x21,#1 + beq .Lsqueeze_done + strb w4,[x20],#1 + lsr x4,x4,#8 + subs x21,x21,#1 + beq .Lsqueeze_done + strb w4,[x20],#1 + lsr x4,x4,#8 + subs x21,x21,#1 + beq .Lsqueeze_done + strb w4,[x20],#1 + lsr x4,x4,#8 + subs x21,x21,#1 + beq .Lsqueeze_done + strb w4,[x20],#1 + lsr x4,x4,#8 + subs x21,x21,#1 + beq .Lsqueeze_done + strb w4,[x20],#1 + lsr x4,x4,#8 + subs x21,x21,#1 + beq .Lsqueeze_done + strb w4,[x20],#1 + +.Lsqueeze_done: + ldp x19,x20,[sp,#16] + ldp x21,x22,[sp,#32] + ldp x29,x30,[sp],#48 +.inst 0xd50323bf // autiasp + ret +.size SHA3_squeeze,.-SHA3_squeeze +.type KeccakF1600_ce,%function +.align 5 +KeccakF1600_ce: + mov x9,#12 + adr x10,iotas + b .Loop_ce +.align 4 +.Loop_ce: + ////////////////////////////////////////////////// Theta +.inst 0xce052819 //eor3 v25.16b,v0.16b,v5.16b,v10.16b +.inst 0xce062c3a //eor3 v26.16b,v1.16b,v6.16b,v11.16b +.inst 0xce07305b //eor3 v27.16b,v2.16b,v7.16b,v12.16b +.inst 0xce08347c //eor3 v28.16b,v3.16b,v8.16b,v13.16b +.inst 0xce09389d //eor3 v29.16b,v4.16b,v9.16b,v14.16b +.inst 0xce0f5339 //eor3 v25.16b,v25.16b, v15.16b,v20.16b +.inst 0xce10575a //eor3 v26.16b,v26.16b, v16.16b,v21.16b +.inst 0xce115b7b //eor3 v27.16b,v27.16b, v17.16b,v22.16b +.inst 0xce125f9c //eor3 v28.16b,v28.16b, v18.16b,v23.16b +.inst 0xce1363bd //eor3 v29.16b,v29.16b, v19.16b,v24.16b + +.inst 0xce7b8f3e //rax1 v30.16b,v25.16b,v27.16b // D[1] +.inst 0xce7c8f5f //rax1 v31.16b,v26.16b,v28.16b // D[2] +.inst 0xce7d8f7b //rax1 v27.16b,v27.16b,v29.16b // D[3] +.inst 0xce798f9c //rax1 v28.16b,v28.16b,v25.16b // D[4] +.inst 0xce7a8fbd //rax1 v29.16b,v29.16b,v26.16b // D[0] + + ////////////////////////////////////////////////// Theta+Rho+Pi +.inst 0xce9e50d9 //xar v25.16b, v6.16b,v30.16b,#64-44 // C[0]=A[0][1] +.inst 0xce9cb126 //xar v6.16b,v9.16b,v28.16b,#64-20 +.inst 0xce9f0ec9 //xar v9.16b,v22.16b,v31.16b,#64-61 +.inst 0xce9c65d6 //xar v22.16b,v14.16b,v28.16b,#64-39 +.inst 0xce9dba8e //xar v14.16b,v20.16b,v29.16b,#64-18 + +.inst 0xce9f0854 //xar v20.16b,v2.16b,v31.16b,#64-62 + +.inst 0xce9f5582 //xar v2.16b,v12.16b,v31.16b,#64-43 +.inst 0xce9b9dac //xar v12.16b,v13.16b,v27.16b,#64-25 +.inst 0xce9ce26d //xar v13.16b,v19.16b,v28.16b,#64-8 +.inst 0xce9b22f3 //xar v19.16b,v23.16b,v27.16b,#64-56 +.inst 0xce9d5df7 //xar v23.16b,v15.16b,v29.16b,#64-41 + +.inst 0xce9c948f //xar v15.16b,v4.16b,v28.16b,#64-27 + + eor v0.16b,v0.16b,v29.16b + ldr x11,[x10],#8 + +.inst 0xce9bae5a //xar v26.16b, v18.16b,v27.16b,#64-21 // C[1]=A[0][3] +.inst 0xce9fc632 //xar v18.16b,v17.16b,v31.16b,#64-15 +.inst 0xce9ed971 //xar v17.16b,v11.16b,v30.16b,#64-10 +.inst 0xce9fe8eb //xar v11.16b,v7.16b,v31.16b,#64-6 +.inst 0xce9df547 //xar v7.16b,v10.16b,v29.16b,#64-3 + +.inst 0xce9efc2a //xar v10.16b,v1.16b,v30.16b,#64-1 // * + +.inst 0xce9ccb04 //xar v4.16b,v24.16b,v28.16b,#64-14 +.inst 0xce9efab8 //xar v24.16b,v21.16b,v30.16b,#64-2 +.inst 0xce9b2515 //xar v21.16b,v8.16b,v27.16b,#64-55 +.inst 0xce9e4e08 //xar v8.16b,v16.16b,v30.16b,#64-45 +.inst 0xce9d70b0 //xar v16.16b,v5.16b,v29.16b,#64-36 + +.inst 0xce9b907b //xar v27.16b, v3.16b,v27.16b,#64-28 // C[2]=A[1][0] + + ////////////////////////////////////////////////// Chi+Iota + dup v31.2d,x11 // borrow C[6] +.inst 0xce22641c //bcax v28.16b, v0.16b,v2.16b,v25.16b // * +.inst 0xce3a0b21 //bcax v1.16b,v25.16b, v26.16b, v2.16b // * +.inst 0xce246842 //bcax v2.16b,v2.16b,v4.16b,v26.16b +.inst 0xce201343 //bcax v3.16b,v26.16b, v0.16b,v4.16b +.inst 0xce390084 //bcax v4.16b,v4.16b,v25.16b, v0.16b + +.inst 0xce271b65 //bcax v5.16b,v27.16b, v7.16b,v6.16b // * +.inst 0xce281cd9 //bcax v25.16b, v6.16b,v8.16b,v7.16b // * +.inst 0xce2920e7 //bcax v7.16b,v7.16b,v9.16b,v8.16b +.inst 0xce3b2508 //bcax v8.16b,v8.16b,v27.16b, v9.16b +.inst 0xce266d29 //bcax v9.16b,v9.16b,v6.16b,v27.16b + + eor v0.16b,v28.16b,v31.16b // Iota + +.inst 0xce2c2d5a //bcax v26.16b, v10.16b,v12.16b,v11.16b // * +.inst 0xce2d317b //bcax v27.16b, v11.16b,v13.16b,v12.16b // * +.inst 0xce2e358c //bcax v12.16b,v12.16b,v14.16b,v13.16b +.inst 0xce2a39ad //bcax v13.16b,v13.16b,v10.16b,v14.16b +.inst 0xce2b29ce //bcax v14.16b,v14.16b,v11.16b,v10.16b + +.inst 0xce3141fc //bcax v28.16b, v15.16b,v17.16b,v16.16b // * +.inst 0xce32461d //bcax v29.16b, v16.16b,v18.16b,v17.16b // * +.inst 0xce334a31 //bcax v17.16b,v17.16b,v19.16b,v18.16b +.inst 0xce2f4e52 //bcax v18.16b,v18.16b,v15.16b,v19.16b +.inst 0xce303e73 //bcax v19.16b,v19.16b,v16.16b,v15.16b + +.inst 0xce36569e //bcax v30.16b, v20.16b,v22.16b,v21.16b // * +.inst 0xce375abf //bcax v31.16b, v21.16b,v23.16b,v22.16b // * +.inst 0xce385ed6 //bcax v22.16b,v22.16b,v24.16b,v23.16b +.inst 0xce3462f7 //bcax v23.16b,v23.16b,v20.16b,v24.16b +.inst 0xce355318 //bcax v24.16b,v24.16b,v21.16b,v20.16b + ////////////////////////////////////////////////// Theta +.inst 0xce056806 //eor3 v6.16b,v0.16b,v5.16b,v26.16b +.inst 0xce196c2a //eor3 v10.16b,v1.16b,v25.16b,v27.16b +.inst 0xce07304b //eor3 v11.16b,v2.16b,v7.16b,v12.16b +.inst 0xce08346f //eor3 v15.16b,v3.16b,v8.16b,v13.16b +.inst 0xce093890 //eor3 v16.16b,v4.16b,v9.16b,v14.16b +.inst 0xce1c78c6 //eor3 v6.16b,v6.16b, v28.16b,v30.16b +.inst 0xce1d7d4a //eor3 v10.16b,v10.16b, v29.16b,v31.16b +.inst 0xce11596b //eor3 v11.16b,v11.16b, v17.16b,v22.16b +.inst 0xce125def //eor3 v15.16b,v15.16b, v18.16b,v23.16b +.inst 0xce136210 //eor3 v16.16b,v16.16b, v19.16b,v24.16b + +.inst 0xce6b8cd4 //rax1 v20.16b,v6.16b,v11.16b // D[1] +.inst 0xce6f8d55 //rax1 v21.16b,v10.16b,v15.16b // D[2] +.inst 0xce708d6b //rax1 v11.16b,v11.16b,v16.16b // D[3] +.inst 0xce668def //rax1 v15.16b,v15.16b,v6.16b // D[4] +.inst 0xce6a8e10 //rax1 v16.16b,v16.16b,v10.16b // D[0] + + ////////////////////////////////////////////////// Theta+Rho+Pi +.inst 0xce945326 //xar v6.16b, v25.16b,v20.16b,#64-44 // C[0]=A[0][1] +.inst 0xce8fb139 //xar v25.16b,v9.16b,v15.16b,#64-20 +.inst 0xce950ec9 //xar v9.16b,v22.16b,v21.16b,#64-61 +.inst 0xce8f65d6 //xar v22.16b,v14.16b,v15.16b,#64-39 +.inst 0xce90bbce //xar v14.16b,v30.16b,v16.16b,#64-18 + +.inst 0xce95085e //xar v30.16b,v2.16b,v21.16b,#64-62 + +.inst 0xce955582 //xar v2.16b,v12.16b,v21.16b,#64-43 +.inst 0xce8b9dac //xar v12.16b,v13.16b,v11.16b,#64-25 +.inst 0xce8fe26d //xar v13.16b,v19.16b,v15.16b,#64-8 +.inst 0xce8b22f3 //xar v19.16b,v23.16b,v11.16b,#64-56 +.inst 0xce905f97 //xar v23.16b,v28.16b,v16.16b,#64-41 + +.inst 0xce8f949c //xar v28.16b,v4.16b,v15.16b,#64-27 + + eor v0.16b,v0.16b,v16.16b + ldr x11,[x10],#8 + +.inst 0xce8bae4a //xar v10.16b, v18.16b,v11.16b,#64-21 // C[1]=A[0][3] +.inst 0xce95c632 //xar v18.16b,v17.16b,v21.16b,#64-15 +.inst 0xce94db71 //xar v17.16b,v27.16b,v20.16b,#64-10 +.inst 0xce95e8fb //xar v27.16b,v7.16b,v21.16b,#64-6 +.inst 0xce90f747 //xar v7.16b,v26.16b,v16.16b,#64-3 + +.inst 0xce94fc3a //xar v26.16b,v1.16b,v20.16b,#64-1 // * + +.inst 0xce8fcb04 //xar v4.16b,v24.16b,v15.16b,#64-14 +.inst 0xce94fbf8 //xar v24.16b,v31.16b,v20.16b,#64-2 +.inst 0xce8b251f //xar v31.16b,v8.16b,v11.16b,#64-55 +.inst 0xce944fa8 //xar v8.16b,v29.16b,v20.16b,#64-45 +.inst 0xce9070bd //xar v29.16b,v5.16b,v16.16b,#64-36 + +.inst 0xce8b906b //xar v11.16b, v3.16b,v11.16b,#64-28 // C[2]=A[1][0] + + ////////////////////////////////////////////////// Chi+Iota + dup v21.2d,x11 // borrow C[6] +.inst 0xce22180f //bcax v15.16b, v0.16b,v2.16b,v6.16b // * +.inst 0xce2a08c1 //bcax v1.16b,v6.16b, v10.16b, v2.16b // * +.inst 0xce242842 //bcax v2.16b,v2.16b,v4.16b,v10.16b +.inst 0xce201143 //bcax v3.16b,v10.16b, v0.16b,v4.16b +.inst 0xce260084 //bcax v4.16b,v4.16b,v6.16b, v0.16b + +.inst 0xce276565 //bcax v5.16b,v11.16b, v7.16b,v25.16b // * +.inst 0xce281f26 //bcax v6.16b, v25.16b,v8.16b,v7.16b // * +.inst 0xce2920e7 //bcax v7.16b,v7.16b,v9.16b,v8.16b +.inst 0xce2b2508 //bcax v8.16b,v8.16b,v11.16b, v9.16b +.inst 0xce392d29 //bcax v9.16b,v9.16b,v25.16b,v11.16b + + eor v0.16b,v15.16b,v21.16b // Iota + +.inst 0xce2c6f4a //bcax v10.16b, v26.16b,v12.16b,v27.16b // * +.inst 0xce2d336b //bcax v11.16b, v27.16b,v13.16b,v12.16b // * +.inst 0xce2e358c //bcax v12.16b,v12.16b,v14.16b,v13.16b +.inst 0xce3a39ad //bcax v13.16b,v13.16b,v26.16b,v14.16b +.inst 0xce3b69ce //bcax v14.16b,v14.16b,v27.16b,v26.16b + +.inst 0xce31778f //bcax v15.16b, v28.16b,v17.16b,v29.16b // * +.inst 0xce3247b0 //bcax v16.16b, v29.16b,v18.16b,v17.16b // * +.inst 0xce334a31 //bcax v17.16b,v17.16b,v19.16b,v18.16b +.inst 0xce3c4e52 //bcax v18.16b,v18.16b,v28.16b,v19.16b +.inst 0xce3d7273 //bcax v19.16b,v19.16b,v29.16b,v28.16b + +.inst 0xce367fd4 //bcax v20.16b, v30.16b,v22.16b,v31.16b // * +.inst 0xce375bf5 //bcax v21.16b, v31.16b,v23.16b,v22.16b // * +.inst 0xce385ed6 //bcax v22.16b,v22.16b,v24.16b,v23.16b +.inst 0xce3e62f7 //bcax v23.16b,v23.16b,v30.16b,v24.16b +.inst 0xce3f7b18 //bcax v24.16b,v24.16b,v31.16b,v30.16b + subs x9,x9,#1 + bne .Loop_ce + + ret +.size KeccakF1600_ce,.-KeccakF1600_ce + +.type KeccakF1600_cext,%function +.align 5 +KeccakF1600_cext: +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-80]! + add x29,sp,#0 + stp d8,d9,[sp,#16] // per ABI requirement + stp d10,d11,[sp,#32] + stp d12,d13,[sp,#48] + stp d14,d15,[sp,#64] + ldp d0,d1,[x0,#8*0] + ldp d2,d3,[x0,#8*2] + ldp d4,d5,[x0,#8*4] + ldp d6,d7,[x0,#8*6] + ldp d8,d9,[x0,#8*8] + ldp d10,d11,[x0,#8*10] + ldp d12,d13,[x0,#8*12] + ldp d14,d15,[x0,#8*14] + ldp d16,d17,[x0,#8*16] + ldp d18,d19,[x0,#8*18] + ldp d20,d21,[x0,#8*20] + ldp d22,d23,[x0,#8*22] + ldr d24,[x0,#8*24] + bl KeccakF1600_ce + ldr x30,[sp,#8] + stp d0,d1,[x0,#8*0] + stp d2,d3,[x0,#8*2] + stp d4,d5,[x0,#8*4] + stp d6,d7,[x0,#8*6] + stp d8,d9,[x0,#8*8] + stp d10,d11,[x0,#8*10] + stp d12,d13,[x0,#8*12] + stp d14,d15,[x0,#8*14] + stp d16,d17,[x0,#8*16] + stp d18,d19,[x0,#8*18] + stp d20,d21,[x0,#8*20] + stp d22,d23,[x0,#8*22] + str d24,[x0,#8*24] + + ldp d8,d9,[sp,#16] + ldp d10,d11,[sp,#32] + ldp d12,d13,[sp,#48] + ldp d14,d15,[sp,#64] + ldr x29,[sp],#80 +.inst 0xd50323bf // autiasp + ret +.size KeccakF1600_cext,.-KeccakF1600_cext +.globl SHA3_absorb_cext +.type SHA3_absorb_cext,%function +.align 5 +SHA3_absorb_cext: +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-80]! + add x29,sp,#0 + stp d8,d9,[sp,#16] // per ABI requirement + stp d10,d11,[sp,#32] + stp d12,d13,[sp,#48] + stp d14,d15,[sp,#64] + ldp d0,d1,[x0,#8*0] + ldp d2,d3,[x0,#8*2] + ldp d4,d5,[x0,#8*4] + ldp d6,d7,[x0,#8*6] + ldp d8,d9,[x0,#8*8] + ldp d10,d11,[x0,#8*10] + ldp d12,d13,[x0,#8*12] + ldp d14,d15,[x0,#8*14] + ldp d16,d17,[x0,#8*16] + ldp d18,d19,[x0,#8*18] + ldp d20,d21,[x0,#8*20] + ldp d22,d23,[x0,#8*22] + ldr d24,[x0,#8*24] + b .Loop_absorb_ce + +.align 4 +.Loop_absorb_ce: + subs x2,x2,x3 // len - bsz + blo .Labsorbed_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v0.16b,v0.16b,v31.16b + cmp x3,#8*(0+2) + blo .Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v1.16b,v1.16b,v31.16b + beq .Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v2.16b,v2.16b,v31.16b + cmp x3,#8*(2+2) + blo .Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v3.16b,v3.16b,v31.16b + beq .Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v4.16b,v4.16b,v31.16b + cmp x3,#8*(4+2) + blo .Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v5.16b,v5.16b,v31.16b + beq .Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v6.16b,v6.16b,v31.16b + cmp x3,#8*(6+2) + blo .Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v7.16b,v7.16b,v31.16b + beq .Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v8.16b,v8.16b,v31.16b + cmp x3,#8*(8+2) + blo .Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v9.16b,v9.16b,v31.16b + beq .Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v10.16b,v10.16b,v31.16b + cmp x3,#8*(10+2) + blo .Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v11.16b,v11.16b,v31.16b + beq .Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v12.16b,v12.16b,v31.16b + cmp x3,#8*(12+2) + blo .Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v13.16b,v13.16b,v31.16b + beq .Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v14.16b,v14.16b,v31.16b + cmp x3,#8*(14+2) + blo .Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v15.16b,v15.16b,v31.16b + beq .Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v16.16b,v16.16b,v31.16b + cmp x3,#8*(16+2) + blo .Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v17.16b,v17.16b,v31.16b + beq .Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v18.16b,v18.16b,v31.16b + cmp x3,#8*(18+2) + blo .Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v19.16b,v19.16b,v31.16b + beq .Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v20.16b,v20.16b,v31.16b + cmp x3,#8*(20+2) + blo .Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v21.16b,v21.16b,v31.16b + beq .Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v22.16b,v22.16b,v31.16b + cmp x3,#8*(22+2) + blo .Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v23.16b,v23.16b,v31.16b + beq .Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v24.16b,v24.16b,v31.16b + +.Lprocess_block_ce: + + bl KeccakF1600_ce + + b .Loop_absorb_ce + +.align 4 +.Labsorbed_ce: + stp d0,d1,[x0,#8*0] + stp d2,d3,[x0,#8*2] + stp d4,d5,[x0,#8*4] + stp d6,d7,[x0,#8*6] + stp d8,d9,[x0,#8*8] + stp d10,d11,[x0,#8*10] + stp d12,d13,[x0,#8*12] + stp d14,d15,[x0,#8*14] + stp d16,d17,[x0,#8*16] + stp d18,d19,[x0,#8*18] + stp d20,d21,[x0,#8*20] + stp d22,d23,[x0,#8*22] + str d24,[x0,#8*24] + add x0,x2,x3 // return value + + ldp d8,d9,[sp,#16] + ldp d10,d11,[sp,#32] + ldp d12,d13,[sp,#48] + ldp d14,d15,[sp,#64] + ldp x29,x30,[sp],#80 +.inst 0xd50323bf // autiasp + ret +.size SHA3_absorb_cext,.-SHA3_absorb_cext +.globl SHA3_squeeze_cext +.type SHA3_squeeze_cext,%function +.align 5 +SHA3_squeeze_cext: +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + mov x9,x0 + mov x10,x3 + +.Loop_squeeze_ce: + ldr x4,[x9],#8 + cmp x2,#8 + blo .Lsqueeze_tail_ce +#ifdef __AARCH64EB__ + rev x4,x4 +#endif + str x4,[x1],#8 + beq .Lsqueeze_done_ce + + sub x2,x2,#8 + subs x10,x10,#8 + bhi .Loop_squeeze_ce + + bl KeccakF1600_cext + ldr x30,[sp,#8] + mov x9,x0 + mov x10,x3 + b .Loop_squeeze_ce + +.align 4 +.Lsqueeze_tail_ce: + strb w4,[x1],#1 + lsr x4,x4,#8 + subs x2,x2,#1 + beq .Lsqueeze_done_ce + strb w4,[x1],#1 + lsr x4,x4,#8 + subs x2,x2,#1 + beq .Lsqueeze_done_ce + strb w4,[x1],#1 + lsr x4,x4,#8 + subs x2,x2,#1 + beq .Lsqueeze_done_ce + strb w4,[x1],#1 + lsr x4,x4,#8 + subs x2,x2,#1 + beq .Lsqueeze_done_ce + strb w4,[x1],#1 + lsr x4,x4,#8 + subs x2,x2,#1 + beq .Lsqueeze_done_ce + strb w4,[x1],#1 + lsr x4,x4,#8 + subs x2,x2,#1 + beq .Lsqueeze_done_ce + strb w4,[x1],#1 + +.Lsqueeze_done_ce: + ldr x29,[sp],#16 +.inst 0xd50323bf // autiasp + ret +.size SHA3_squeeze_cext,.-SHA3_squeeze_cext +.byte 75,101,99,99,97,107,45,49,54,48,48,32,97,98,115,111,114,98,32,97,110,100,32,115,113,117,101,101,122,101,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 2 diff --git a/vere/ext/openssl/gen/linux-aarch64/crypto/sha/sha1-armv8.S b/vere/ext/openssl/gen/linux-aarch64/crypto/sha/sha1-armv8.S new file mode 100644 index 0000000..d64f46a --- /dev/null +++ b/vere/ext/openssl/gen/linux-aarch64/crypto/sha/sha1-armv8.S @@ -0,0 +1,1221 @@ +#include "arm_arch.h" + +.text + + +.hidden OPENSSL_armcap_P +.globl sha1_block_data_order +.type sha1_block_data_order,%function +.align 6 +sha1_block_data_order: +#ifdef __ILP32__ + ldrsw x16,.LOPENSSL_armcap_P +#else + ldr x16,.LOPENSSL_armcap_P +#endif + adr x17,.LOPENSSL_armcap_P + add x16,x16,x17 + ldr w16,[x16] + tst w16,#ARMV8_SHA1 + b.ne .Lv8_entry + + stp x29,x30,[sp,#-96]! + add x29,sp,#0 + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + stp x23,x24,[sp,#48] + stp x25,x26,[sp,#64] + stp x27,x28,[sp,#80] + + ldp w20,w21,[x0] + ldp w22,w23,[x0,#8] + ldr w24,[x0,#16] + +.Loop: + ldr x3,[x1],#64 + movz w28,#0x7999 + sub x2,x2,#1 + movk w28,#0x5a82,lsl#16 +#ifdef __ARMEB__ + ror x3,x3,#32 +#else + rev32 x3,x3 +#endif + add w24,w24,w28 // warm it up + add w24,w24,w3 + lsr x4,x3,#32 + ldr x5,[x1,#-56] + bic w25,w23,w21 + and w26,w22,w21 + ror w27,w20,#27 + add w23,w23,w28 // future e+=K + orr w25,w25,w26 + add w24,w24,w27 // e+=rot(a,5) + ror w21,w21,#2 + add w23,w23,w4 // future e+=X[i] + add w24,w24,w25 // e+=F(b,c,d) +#ifdef __ARMEB__ + ror x5,x5,#32 +#else + rev32 x5,x5 +#endif + bic w25,w22,w20 + and w26,w21,w20 + ror w27,w24,#27 + add w22,w22,w28 // future e+=K + orr w25,w25,w26 + add w23,w23,w27 // e+=rot(a,5) + ror w20,w20,#2 + add w22,w22,w5 // future e+=X[i] + add w23,w23,w25 // e+=F(b,c,d) + lsr x6,x5,#32 + ldr x7,[x1,#-48] + bic w25,w21,w24 + and w26,w20,w24 + ror w27,w23,#27 + add w21,w21,w28 // future e+=K + orr w25,w25,w26 + add w22,w22,w27 // e+=rot(a,5) + ror w24,w24,#2 + add w21,w21,w6 // future e+=X[i] + add w22,w22,w25 // e+=F(b,c,d) +#ifdef __ARMEB__ + ror x7,x7,#32 +#else + rev32 x7,x7 +#endif + bic w25,w20,w23 + and w26,w24,w23 + ror w27,w22,#27 + add w20,w20,w28 // future e+=K + orr w25,w25,w26 + add w21,w21,w27 // e+=rot(a,5) + ror w23,w23,#2 + add w20,w20,w7 // future e+=X[i] + add w21,w21,w25 // e+=F(b,c,d) + lsr x8,x7,#32 + ldr x9,[x1,#-40] + bic w25,w24,w22 + and w26,w23,w22 + ror w27,w21,#27 + add w24,w24,w28 // future e+=K + orr w25,w25,w26 + add w20,w20,w27 // e+=rot(a,5) + ror w22,w22,#2 + add w24,w24,w8 // future e+=X[i] + add w20,w20,w25 // e+=F(b,c,d) +#ifdef __ARMEB__ + ror x9,x9,#32 +#else + rev32 x9,x9 +#endif + bic w25,w23,w21 + and w26,w22,w21 + ror w27,w20,#27 + add w23,w23,w28 // future e+=K + orr w25,w25,w26 + add w24,w24,w27 // e+=rot(a,5) + ror w21,w21,#2 + add w23,w23,w9 // future e+=X[i] + add w24,w24,w25 // e+=F(b,c,d) + lsr x10,x9,#32 + ldr x11,[x1,#-32] + bic w25,w22,w20 + and w26,w21,w20 + ror w27,w24,#27 + add w22,w22,w28 // future e+=K + orr w25,w25,w26 + add w23,w23,w27 // e+=rot(a,5) + ror w20,w20,#2 + add w22,w22,w10 // future e+=X[i] + add w23,w23,w25 // e+=F(b,c,d) +#ifdef __ARMEB__ + ror x11,x11,#32 +#else + rev32 x11,x11 +#endif + bic w25,w21,w24 + and w26,w20,w24 + ror w27,w23,#27 + add w21,w21,w28 // future e+=K + orr w25,w25,w26 + add w22,w22,w27 // e+=rot(a,5) + ror w24,w24,#2 + add w21,w21,w11 // future e+=X[i] + add w22,w22,w25 // e+=F(b,c,d) + lsr x12,x11,#32 + ldr x13,[x1,#-24] + bic w25,w20,w23 + and w26,w24,w23 + ror w27,w22,#27 + add w20,w20,w28 // future e+=K + orr w25,w25,w26 + add w21,w21,w27 // e+=rot(a,5) + ror w23,w23,#2 + add w20,w20,w12 // future e+=X[i] + add w21,w21,w25 // e+=F(b,c,d) +#ifdef __ARMEB__ + ror x13,x13,#32 +#else + rev32 x13,x13 +#endif + bic w25,w24,w22 + and w26,w23,w22 + ror w27,w21,#27 + add w24,w24,w28 // future e+=K + orr w25,w25,w26 + add w20,w20,w27 // e+=rot(a,5) + ror w22,w22,#2 + add w24,w24,w13 // future e+=X[i] + add w20,w20,w25 // e+=F(b,c,d) + lsr x14,x13,#32 + ldr x15,[x1,#-16] + bic w25,w23,w21 + and w26,w22,w21 + ror w27,w20,#27 + add w23,w23,w28 // future e+=K + orr w25,w25,w26 + add w24,w24,w27 // e+=rot(a,5) + ror w21,w21,#2 + add w23,w23,w14 // future e+=X[i] + add w24,w24,w25 // e+=F(b,c,d) +#ifdef __ARMEB__ + ror x15,x15,#32 +#else + rev32 x15,x15 +#endif + bic w25,w22,w20 + and w26,w21,w20 + ror w27,w24,#27 + add w22,w22,w28 // future e+=K + orr w25,w25,w26 + add w23,w23,w27 // e+=rot(a,5) + ror w20,w20,#2 + add w22,w22,w15 // future e+=X[i] + add w23,w23,w25 // e+=F(b,c,d) + lsr x16,x15,#32 + ldr x17,[x1,#-8] + bic w25,w21,w24 + and w26,w20,w24 + ror w27,w23,#27 + add w21,w21,w28 // future e+=K + orr w25,w25,w26 + add w22,w22,w27 // e+=rot(a,5) + ror w24,w24,#2 + add w21,w21,w16 // future e+=X[i] + add w22,w22,w25 // e+=F(b,c,d) +#ifdef __ARMEB__ + ror x17,x17,#32 +#else + rev32 x17,x17 +#endif + bic w25,w20,w23 + and w26,w24,w23 + ror w27,w22,#27 + add w20,w20,w28 // future e+=K + orr w25,w25,w26 + add w21,w21,w27 // e+=rot(a,5) + ror w23,w23,#2 + add w20,w20,w17 // future e+=X[i] + add w21,w21,w25 // e+=F(b,c,d) + lsr x19,x17,#32 + eor w3,w3,w5 + bic w25,w24,w22 + and w26,w23,w22 + ror w27,w21,#27 + eor w3,w3,w11 + add w24,w24,w28 // future e+=K + orr w25,w25,w26 + add w20,w20,w27 // e+=rot(a,5) + eor w3,w3,w16 + ror w22,w22,#2 + add w24,w24,w19 // future e+=X[i] + add w20,w20,w25 // e+=F(b,c,d) + ror w3,w3,#31 + eor w4,w4,w6 + bic w25,w23,w21 + and w26,w22,w21 + ror w27,w20,#27 + eor w4,w4,w12 + add w23,w23,w28 // future e+=K + orr w25,w25,w26 + add w24,w24,w27 // e+=rot(a,5) + eor w4,w4,w17 + ror w21,w21,#2 + add w23,w23,w3 // future e+=X[i] + add w24,w24,w25 // e+=F(b,c,d) + ror w4,w4,#31 + eor w5,w5,w7 + bic w25,w22,w20 + and w26,w21,w20 + ror w27,w24,#27 + eor w5,w5,w13 + add w22,w22,w28 // future e+=K + orr w25,w25,w26 + add w23,w23,w27 // e+=rot(a,5) + eor w5,w5,w19 + ror w20,w20,#2 + add w22,w22,w4 // future e+=X[i] + add w23,w23,w25 // e+=F(b,c,d) + ror w5,w5,#31 + eor w6,w6,w8 + bic w25,w21,w24 + and w26,w20,w24 + ror w27,w23,#27 + eor w6,w6,w14 + add w21,w21,w28 // future e+=K + orr w25,w25,w26 + add w22,w22,w27 // e+=rot(a,5) + eor w6,w6,w3 + ror w24,w24,#2 + add w21,w21,w5 // future e+=X[i] + add w22,w22,w25 // e+=F(b,c,d) + ror w6,w6,#31 + eor w7,w7,w9 + bic w25,w20,w23 + and w26,w24,w23 + ror w27,w22,#27 + eor w7,w7,w15 + add w20,w20,w28 // future e+=K + orr w25,w25,w26 + add w21,w21,w27 // e+=rot(a,5) + eor w7,w7,w4 + ror w23,w23,#2 + add w20,w20,w6 // future e+=X[i] + add w21,w21,w25 // e+=F(b,c,d) + ror w7,w7,#31 + movz w28,#0xeba1 + movk w28,#0x6ed9,lsl#16 + eor w8,w8,w10 + bic w25,w24,w22 + and w26,w23,w22 + ror w27,w21,#27 + eor w8,w8,w16 + add w24,w24,w28 // future e+=K + orr w25,w25,w26 + add w20,w20,w27 // e+=rot(a,5) + eor w8,w8,w5 + ror w22,w22,#2 + add w24,w24,w7 // future e+=X[i] + add w20,w20,w25 // e+=F(b,c,d) + ror w8,w8,#31 + eor w9,w9,w11 + eor w25,w23,w21 + ror w27,w20,#27 + add w23,w23,w28 // future e+=K + eor w9,w9,w17 + eor w25,w25,w22 + add w24,w24,w27 // e+=rot(a,5) + ror w21,w21,#2 + eor w9,w9,w6 + add w23,w23,w8 // future e+=X[i] + add w24,w24,w25 // e+=F(b,c,d) + ror w9,w9,#31 + eor w10,w10,w12 + eor w25,w22,w20 + ror w27,w24,#27 + add w22,w22,w28 // future e+=K + eor w10,w10,w19 + eor w25,w25,w21 + add w23,w23,w27 // e+=rot(a,5) + ror w20,w20,#2 + eor w10,w10,w7 + add w22,w22,w9 // future e+=X[i] + add w23,w23,w25 // e+=F(b,c,d) + ror w10,w10,#31 + eor w11,w11,w13 + eor w25,w21,w24 + ror w27,w23,#27 + add w21,w21,w28 // future e+=K + eor w11,w11,w3 + eor w25,w25,w20 + add w22,w22,w27 // e+=rot(a,5) + ror w24,w24,#2 + eor w11,w11,w8 + add w21,w21,w10 // future e+=X[i] + add w22,w22,w25 // e+=F(b,c,d) + ror w11,w11,#31 + eor w12,w12,w14 + eor w25,w20,w23 + ror w27,w22,#27 + add w20,w20,w28 // future e+=K + eor w12,w12,w4 + eor w25,w25,w24 + add w21,w21,w27 // e+=rot(a,5) + ror w23,w23,#2 + eor w12,w12,w9 + add w20,w20,w11 // future e+=X[i] + add w21,w21,w25 // e+=F(b,c,d) + ror w12,w12,#31 + eor w13,w13,w15 + eor w25,w24,w22 + ror w27,w21,#27 + add w24,w24,w28 // future e+=K + eor w13,w13,w5 + eor w25,w25,w23 + add w20,w20,w27 // e+=rot(a,5) + ror w22,w22,#2 + eor w13,w13,w10 + add w24,w24,w12 // future e+=X[i] + add w20,w20,w25 // e+=F(b,c,d) + ror w13,w13,#31 + eor w14,w14,w16 + eor w25,w23,w21 + ror w27,w20,#27 + add w23,w23,w28 // future e+=K + eor w14,w14,w6 + eor w25,w25,w22 + add w24,w24,w27 // e+=rot(a,5) + ror w21,w21,#2 + eor w14,w14,w11 + add w23,w23,w13 // future e+=X[i] + add w24,w24,w25 // e+=F(b,c,d) + ror w14,w14,#31 + eor w15,w15,w17 + eor w25,w22,w20 + ror w27,w24,#27 + add w22,w22,w28 // future e+=K + eor w15,w15,w7 + eor w25,w25,w21 + add w23,w23,w27 // e+=rot(a,5) + ror w20,w20,#2 + eor w15,w15,w12 + add w22,w22,w14 // future e+=X[i] + add w23,w23,w25 // e+=F(b,c,d) + ror w15,w15,#31 + eor w16,w16,w19 + eor w25,w21,w24 + ror w27,w23,#27 + add w21,w21,w28 // future e+=K + eor w16,w16,w8 + eor w25,w25,w20 + add w22,w22,w27 // e+=rot(a,5) + ror w24,w24,#2 + eor w16,w16,w13 + add w21,w21,w15 // future e+=X[i] + add w22,w22,w25 // e+=F(b,c,d) + ror w16,w16,#31 + eor w17,w17,w3 + eor w25,w20,w23 + ror w27,w22,#27 + add w20,w20,w28 // future e+=K + eor w17,w17,w9 + eor w25,w25,w24 + add w21,w21,w27 // e+=rot(a,5) + ror w23,w23,#2 + eor w17,w17,w14 + add w20,w20,w16 // future e+=X[i] + add w21,w21,w25 // e+=F(b,c,d) + ror w17,w17,#31 + eor w19,w19,w4 + eor w25,w24,w22 + ror w27,w21,#27 + add w24,w24,w28 // future e+=K + eor w19,w19,w10 + eor w25,w25,w23 + add w20,w20,w27 // e+=rot(a,5) + ror w22,w22,#2 + eor w19,w19,w15 + add w24,w24,w17 // future e+=X[i] + add w20,w20,w25 // e+=F(b,c,d) + ror w19,w19,#31 + eor w3,w3,w5 + eor w25,w23,w21 + ror w27,w20,#27 + add w23,w23,w28 // future e+=K + eor w3,w3,w11 + eor w25,w25,w22 + add w24,w24,w27 // e+=rot(a,5) + ror w21,w21,#2 + eor w3,w3,w16 + add w23,w23,w19 // future e+=X[i] + add w24,w24,w25 // e+=F(b,c,d) + ror w3,w3,#31 + eor w4,w4,w6 + eor w25,w22,w20 + ror w27,w24,#27 + add w22,w22,w28 // future e+=K + eor w4,w4,w12 + eor w25,w25,w21 + add w23,w23,w27 // e+=rot(a,5) + ror w20,w20,#2 + eor w4,w4,w17 + add w22,w22,w3 // future e+=X[i] + add w23,w23,w25 // e+=F(b,c,d) + ror w4,w4,#31 + eor w5,w5,w7 + eor w25,w21,w24 + ror w27,w23,#27 + add w21,w21,w28 // future e+=K + eor w5,w5,w13 + eor w25,w25,w20 + add w22,w22,w27 // e+=rot(a,5) + ror w24,w24,#2 + eor w5,w5,w19 + add w21,w21,w4 // future e+=X[i] + add w22,w22,w25 // e+=F(b,c,d) + ror w5,w5,#31 + eor w6,w6,w8 + eor w25,w20,w23 + ror w27,w22,#27 + add w20,w20,w28 // future e+=K + eor w6,w6,w14 + eor w25,w25,w24 + add w21,w21,w27 // e+=rot(a,5) + ror w23,w23,#2 + eor w6,w6,w3 + add w20,w20,w5 // future e+=X[i] + add w21,w21,w25 // e+=F(b,c,d) + ror w6,w6,#31 + eor w7,w7,w9 + eor w25,w24,w22 + ror w27,w21,#27 + add w24,w24,w28 // future e+=K + eor w7,w7,w15 + eor w25,w25,w23 + add w20,w20,w27 // e+=rot(a,5) + ror w22,w22,#2 + eor w7,w7,w4 + add w24,w24,w6 // future e+=X[i] + add w20,w20,w25 // e+=F(b,c,d) + ror w7,w7,#31 + eor w8,w8,w10 + eor w25,w23,w21 + ror w27,w20,#27 + add w23,w23,w28 // future e+=K + eor w8,w8,w16 + eor w25,w25,w22 + add w24,w24,w27 // e+=rot(a,5) + ror w21,w21,#2 + eor w8,w8,w5 + add w23,w23,w7 // future e+=X[i] + add w24,w24,w25 // e+=F(b,c,d) + ror w8,w8,#31 + eor w9,w9,w11 + eor w25,w22,w20 + ror w27,w24,#27 + add w22,w22,w28 // future e+=K + eor w9,w9,w17 + eor w25,w25,w21 + add w23,w23,w27 // e+=rot(a,5) + ror w20,w20,#2 + eor w9,w9,w6 + add w22,w22,w8 // future e+=X[i] + add w23,w23,w25 // e+=F(b,c,d) + ror w9,w9,#31 + eor w10,w10,w12 + eor w25,w21,w24 + ror w27,w23,#27 + add w21,w21,w28 // future e+=K + eor w10,w10,w19 + eor w25,w25,w20 + add w22,w22,w27 // e+=rot(a,5) + ror w24,w24,#2 + eor w10,w10,w7 + add w21,w21,w9 // future e+=X[i] + add w22,w22,w25 // e+=F(b,c,d) + ror w10,w10,#31 + eor w11,w11,w13 + eor w25,w20,w23 + ror w27,w22,#27 + add w20,w20,w28 // future e+=K + eor w11,w11,w3 + eor w25,w25,w24 + add w21,w21,w27 // e+=rot(a,5) + ror w23,w23,#2 + eor w11,w11,w8 + add w20,w20,w10 // future e+=X[i] + add w21,w21,w25 // e+=F(b,c,d) + ror w11,w11,#31 + movz w28,#0xbcdc + movk w28,#0x8f1b,lsl#16 + eor w12,w12,w14 + eor w25,w24,w22 + ror w27,w21,#27 + add w24,w24,w28 // future e+=K + eor w12,w12,w4 + eor w25,w25,w23 + add w20,w20,w27 // e+=rot(a,5) + ror w22,w22,#2 + eor w12,w12,w9 + add w24,w24,w11 // future e+=X[i] + add w20,w20,w25 // e+=F(b,c,d) + ror w12,w12,#31 + orr w25,w21,w22 + and w26,w21,w22 + eor w13,w13,w15 + ror w27,w20,#27 + and w25,w25,w23 + add w23,w23,w28 // future e+=K + eor w13,w13,w5 + add w24,w24,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w21,w21,#2 + eor w13,w13,w10 + add w23,w23,w12 // future e+=X[i] + add w24,w24,w25 // e+=F(b,c,d) + ror w13,w13,#31 + orr w25,w20,w21 + and w26,w20,w21 + eor w14,w14,w16 + ror w27,w24,#27 + and w25,w25,w22 + add w22,w22,w28 // future e+=K + eor w14,w14,w6 + add w23,w23,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w20,w20,#2 + eor w14,w14,w11 + add w22,w22,w13 // future e+=X[i] + add w23,w23,w25 // e+=F(b,c,d) + ror w14,w14,#31 + orr w25,w24,w20 + and w26,w24,w20 + eor w15,w15,w17 + ror w27,w23,#27 + and w25,w25,w21 + add w21,w21,w28 // future e+=K + eor w15,w15,w7 + add w22,w22,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w24,w24,#2 + eor w15,w15,w12 + add w21,w21,w14 // future e+=X[i] + add w22,w22,w25 // e+=F(b,c,d) + ror w15,w15,#31 + orr w25,w23,w24 + and w26,w23,w24 + eor w16,w16,w19 + ror w27,w22,#27 + and w25,w25,w20 + add w20,w20,w28 // future e+=K + eor w16,w16,w8 + add w21,w21,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w23,w23,#2 + eor w16,w16,w13 + add w20,w20,w15 // future e+=X[i] + add w21,w21,w25 // e+=F(b,c,d) + ror w16,w16,#31 + orr w25,w22,w23 + and w26,w22,w23 + eor w17,w17,w3 + ror w27,w21,#27 + and w25,w25,w24 + add w24,w24,w28 // future e+=K + eor w17,w17,w9 + add w20,w20,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w22,w22,#2 + eor w17,w17,w14 + add w24,w24,w16 // future e+=X[i] + add w20,w20,w25 // e+=F(b,c,d) + ror w17,w17,#31 + orr w25,w21,w22 + and w26,w21,w22 + eor w19,w19,w4 + ror w27,w20,#27 + and w25,w25,w23 + add w23,w23,w28 // future e+=K + eor w19,w19,w10 + add w24,w24,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w21,w21,#2 + eor w19,w19,w15 + add w23,w23,w17 // future e+=X[i] + add w24,w24,w25 // e+=F(b,c,d) + ror w19,w19,#31 + orr w25,w20,w21 + and w26,w20,w21 + eor w3,w3,w5 + ror w27,w24,#27 + and w25,w25,w22 + add w22,w22,w28 // future e+=K + eor w3,w3,w11 + add w23,w23,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w20,w20,#2 + eor w3,w3,w16 + add w22,w22,w19 // future e+=X[i] + add w23,w23,w25 // e+=F(b,c,d) + ror w3,w3,#31 + orr w25,w24,w20 + and w26,w24,w20 + eor w4,w4,w6 + ror w27,w23,#27 + and w25,w25,w21 + add w21,w21,w28 // future e+=K + eor w4,w4,w12 + add w22,w22,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w24,w24,#2 + eor w4,w4,w17 + add w21,w21,w3 // future e+=X[i] + add w22,w22,w25 // e+=F(b,c,d) + ror w4,w4,#31 + orr w25,w23,w24 + and w26,w23,w24 + eor w5,w5,w7 + ror w27,w22,#27 + and w25,w25,w20 + add w20,w20,w28 // future e+=K + eor w5,w5,w13 + add w21,w21,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w23,w23,#2 + eor w5,w5,w19 + add w20,w20,w4 // future e+=X[i] + add w21,w21,w25 // e+=F(b,c,d) + ror w5,w5,#31 + orr w25,w22,w23 + and w26,w22,w23 + eor w6,w6,w8 + ror w27,w21,#27 + and w25,w25,w24 + add w24,w24,w28 // future e+=K + eor w6,w6,w14 + add w20,w20,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w22,w22,#2 + eor w6,w6,w3 + add w24,w24,w5 // future e+=X[i] + add w20,w20,w25 // e+=F(b,c,d) + ror w6,w6,#31 + orr w25,w21,w22 + and w26,w21,w22 + eor w7,w7,w9 + ror w27,w20,#27 + and w25,w25,w23 + add w23,w23,w28 // future e+=K + eor w7,w7,w15 + add w24,w24,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w21,w21,#2 + eor w7,w7,w4 + add w23,w23,w6 // future e+=X[i] + add w24,w24,w25 // e+=F(b,c,d) + ror w7,w7,#31 + orr w25,w20,w21 + and w26,w20,w21 + eor w8,w8,w10 + ror w27,w24,#27 + and w25,w25,w22 + add w22,w22,w28 // future e+=K + eor w8,w8,w16 + add w23,w23,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w20,w20,#2 + eor w8,w8,w5 + add w22,w22,w7 // future e+=X[i] + add w23,w23,w25 // e+=F(b,c,d) + ror w8,w8,#31 + orr w25,w24,w20 + and w26,w24,w20 + eor w9,w9,w11 + ror w27,w23,#27 + and w25,w25,w21 + add w21,w21,w28 // future e+=K + eor w9,w9,w17 + add w22,w22,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w24,w24,#2 + eor w9,w9,w6 + add w21,w21,w8 // future e+=X[i] + add w22,w22,w25 // e+=F(b,c,d) + ror w9,w9,#31 + orr w25,w23,w24 + and w26,w23,w24 + eor w10,w10,w12 + ror w27,w22,#27 + and w25,w25,w20 + add w20,w20,w28 // future e+=K + eor w10,w10,w19 + add w21,w21,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w23,w23,#2 + eor w10,w10,w7 + add w20,w20,w9 // future e+=X[i] + add w21,w21,w25 // e+=F(b,c,d) + ror w10,w10,#31 + orr w25,w22,w23 + and w26,w22,w23 + eor w11,w11,w13 + ror w27,w21,#27 + and w25,w25,w24 + add w24,w24,w28 // future e+=K + eor w11,w11,w3 + add w20,w20,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w22,w22,#2 + eor w11,w11,w8 + add w24,w24,w10 // future e+=X[i] + add w20,w20,w25 // e+=F(b,c,d) + ror w11,w11,#31 + orr w25,w21,w22 + and w26,w21,w22 + eor w12,w12,w14 + ror w27,w20,#27 + and w25,w25,w23 + add w23,w23,w28 // future e+=K + eor w12,w12,w4 + add w24,w24,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w21,w21,#2 + eor w12,w12,w9 + add w23,w23,w11 // future e+=X[i] + add w24,w24,w25 // e+=F(b,c,d) + ror w12,w12,#31 + orr w25,w20,w21 + and w26,w20,w21 + eor w13,w13,w15 + ror w27,w24,#27 + and w25,w25,w22 + add w22,w22,w28 // future e+=K + eor w13,w13,w5 + add w23,w23,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w20,w20,#2 + eor w13,w13,w10 + add w22,w22,w12 // future e+=X[i] + add w23,w23,w25 // e+=F(b,c,d) + ror w13,w13,#31 + orr w25,w24,w20 + and w26,w24,w20 + eor w14,w14,w16 + ror w27,w23,#27 + and w25,w25,w21 + add w21,w21,w28 // future e+=K + eor w14,w14,w6 + add w22,w22,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w24,w24,#2 + eor w14,w14,w11 + add w21,w21,w13 // future e+=X[i] + add w22,w22,w25 // e+=F(b,c,d) + ror w14,w14,#31 + orr w25,w23,w24 + and w26,w23,w24 + eor w15,w15,w17 + ror w27,w22,#27 + and w25,w25,w20 + add w20,w20,w28 // future e+=K + eor w15,w15,w7 + add w21,w21,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w23,w23,#2 + eor w15,w15,w12 + add w20,w20,w14 // future e+=X[i] + add w21,w21,w25 // e+=F(b,c,d) + ror w15,w15,#31 + movz w28,#0xc1d6 + movk w28,#0xca62,lsl#16 + orr w25,w22,w23 + and w26,w22,w23 + eor w16,w16,w19 + ror w27,w21,#27 + and w25,w25,w24 + add w24,w24,w28 // future e+=K + eor w16,w16,w8 + add w20,w20,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w22,w22,#2 + eor w16,w16,w13 + add w24,w24,w15 // future e+=X[i] + add w20,w20,w25 // e+=F(b,c,d) + ror w16,w16,#31 + eor w17,w17,w3 + eor w25,w23,w21 + ror w27,w20,#27 + add w23,w23,w28 // future e+=K + eor w17,w17,w9 + eor w25,w25,w22 + add w24,w24,w27 // e+=rot(a,5) + ror w21,w21,#2 + eor w17,w17,w14 + add w23,w23,w16 // future e+=X[i] + add w24,w24,w25 // e+=F(b,c,d) + ror w17,w17,#31 + eor w19,w19,w4 + eor w25,w22,w20 + ror w27,w24,#27 + add w22,w22,w28 // future e+=K + eor w19,w19,w10 + eor w25,w25,w21 + add w23,w23,w27 // e+=rot(a,5) + ror w20,w20,#2 + eor w19,w19,w15 + add w22,w22,w17 // future e+=X[i] + add w23,w23,w25 // e+=F(b,c,d) + ror w19,w19,#31 + eor w3,w3,w5 + eor w25,w21,w24 + ror w27,w23,#27 + add w21,w21,w28 // future e+=K + eor w3,w3,w11 + eor w25,w25,w20 + add w22,w22,w27 // e+=rot(a,5) + ror w24,w24,#2 + eor w3,w3,w16 + add w21,w21,w19 // future e+=X[i] + add w22,w22,w25 // e+=F(b,c,d) + ror w3,w3,#31 + eor w4,w4,w6 + eor w25,w20,w23 + ror w27,w22,#27 + add w20,w20,w28 // future e+=K + eor w4,w4,w12 + eor w25,w25,w24 + add w21,w21,w27 // e+=rot(a,5) + ror w23,w23,#2 + eor w4,w4,w17 + add w20,w20,w3 // future e+=X[i] + add w21,w21,w25 // e+=F(b,c,d) + ror w4,w4,#31 + eor w5,w5,w7 + eor w25,w24,w22 + ror w27,w21,#27 + add w24,w24,w28 // future e+=K + eor w5,w5,w13 + eor w25,w25,w23 + add w20,w20,w27 // e+=rot(a,5) + ror w22,w22,#2 + eor w5,w5,w19 + add w24,w24,w4 // future e+=X[i] + add w20,w20,w25 // e+=F(b,c,d) + ror w5,w5,#31 + eor w6,w6,w8 + eor w25,w23,w21 + ror w27,w20,#27 + add w23,w23,w28 // future e+=K + eor w6,w6,w14 + eor w25,w25,w22 + add w24,w24,w27 // e+=rot(a,5) + ror w21,w21,#2 + eor w6,w6,w3 + add w23,w23,w5 // future e+=X[i] + add w24,w24,w25 // e+=F(b,c,d) + ror w6,w6,#31 + eor w7,w7,w9 + eor w25,w22,w20 + ror w27,w24,#27 + add w22,w22,w28 // future e+=K + eor w7,w7,w15 + eor w25,w25,w21 + add w23,w23,w27 // e+=rot(a,5) + ror w20,w20,#2 + eor w7,w7,w4 + add w22,w22,w6 // future e+=X[i] + add w23,w23,w25 // e+=F(b,c,d) + ror w7,w7,#31 + eor w8,w8,w10 + eor w25,w21,w24 + ror w27,w23,#27 + add w21,w21,w28 // future e+=K + eor w8,w8,w16 + eor w25,w25,w20 + add w22,w22,w27 // e+=rot(a,5) + ror w24,w24,#2 + eor w8,w8,w5 + add w21,w21,w7 // future e+=X[i] + add w22,w22,w25 // e+=F(b,c,d) + ror w8,w8,#31 + eor w9,w9,w11 + eor w25,w20,w23 + ror w27,w22,#27 + add w20,w20,w28 // future e+=K + eor w9,w9,w17 + eor w25,w25,w24 + add w21,w21,w27 // e+=rot(a,5) + ror w23,w23,#2 + eor w9,w9,w6 + add w20,w20,w8 // future e+=X[i] + add w21,w21,w25 // e+=F(b,c,d) + ror w9,w9,#31 + eor w10,w10,w12 + eor w25,w24,w22 + ror w27,w21,#27 + add w24,w24,w28 // future e+=K + eor w10,w10,w19 + eor w25,w25,w23 + add w20,w20,w27 // e+=rot(a,5) + ror w22,w22,#2 + eor w10,w10,w7 + add w24,w24,w9 // future e+=X[i] + add w20,w20,w25 // e+=F(b,c,d) + ror w10,w10,#31 + eor w11,w11,w13 + eor w25,w23,w21 + ror w27,w20,#27 + add w23,w23,w28 // future e+=K + eor w11,w11,w3 + eor w25,w25,w22 + add w24,w24,w27 // e+=rot(a,5) + ror w21,w21,#2 + eor w11,w11,w8 + add w23,w23,w10 // future e+=X[i] + add w24,w24,w25 // e+=F(b,c,d) + ror w11,w11,#31 + eor w12,w12,w14 + eor w25,w22,w20 + ror w27,w24,#27 + add w22,w22,w28 // future e+=K + eor w12,w12,w4 + eor w25,w25,w21 + add w23,w23,w27 // e+=rot(a,5) + ror w20,w20,#2 + eor w12,w12,w9 + add w22,w22,w11 // future e+=X[i] + add w23,w23,w25 // e+=F(b,c,d) + ror w12,w12,#31 + eor w13,w13,w15 + eor w25,w21,w24 + ror w27,w23,#27 + add w21,w21,w28 // future e+=K + eor w13,w13,w5 + eor w25,w25,w20 + add w22,w22,w27 // e+=rot(a,5) + ror w24,w24,#2 + eor w13,w13,w10 + add w21,w21,w12 // future e+=X[i] + add w22,w22,w25 // e+=F(b,c,d) + ror w13,w13,#31 + eor w14,w14,w16 + eor w25,w20,w23 + ror w27,w22,#27 + add w20,w20,w28 // future e+=K + eor w14,w14,w6 + eor w25,w25,w24 + add w21,w21,w27 // e+=rot(a,5) + ror w23,w23,#2 + eor w14,w14,w11 + add w20,w20,w13 // future e+=X[i] + add w21,w21,w25 // e+=F(b,c,d) + ror w14,w14,#31 + eor w15,w15,w17 + eor w25,w24,w22 + ror w27,w21,#27 + add w24,w24,w28 // future e+=K + eor w15,w15,w7 + eor w25,w25,w23 + add w20,w20,w27 // e+=rot(a,5) + ror w22,w22,#2 + eor w15,w15,w12 + add w24,w24,w14 // future e+=X[i] + add w20,w20,w25 // e+=F(b,c,d) + ror w15,w15,#31 + eor w16,w16,w19 + eor w25,w23,w21 + ror w27,w20,#27 + add w23,w23,w28 // future e+=K + eor w16,w16,w8 + eor w25,w25,w22 + add w24,w24,w27 // e+=rot(a,5) + ror w21,w21,#2 + eor w16,w16,w13 + add w23,w23,w15 // future e+=X[i] + add w24,w24,w25 // e+=F(b,c,d) + ror w16,w16,#31 + eor w17,w17,w3 + eor w25,w22,w20 + ror w27,w24,#27 + add w22,w22,w28 // future e+=K + eor w17,w17,w9 + eor w25,w25,w21 + add w23,w23,w27 // e+=rot(a,5) + ror w20,w20,#2 + eor w17,w17,w14 + add w22,w22,w16 // future e+=X[i] + add w23,w23,w25 // e+=F(b,c,d) + ror w17,w17,#31 + eor w19,w19,w4 + eor w25,w21,w24 + ror w27,w23,#27 + add w21,w21,w28 // future e+=K + eor w19,w19,w10 + eor w25,w25,w20 + add w22,w22,w27 // e+=rot(a,5) + ror w24,w24,#2 + eor w19,w19,w15 + add w21,w21,w17 // future e+=X[i] + add w22,w22,w25 // e+=F(b,c,d) + ror w19,w19,#31 + ldp w4,w5,[x0] + eor w25,w20,w23 + ror w27,w22,#27 + add w20,w20,w28 // future e+=K + eor w25,w25,w24 + add w21,w21,w27 // e+=rot(a,5) + ror w23,w23,#2 + add w20,w20,w19 // future e+=X[i] + add w21,w21,w25 // e+=F(b,c,d) + ldp w6,w7,[x0,#8] + eor w25,w24,w22 + ror w27,w21,#27 + eor w25,w25,w23 + add w20,w20,w27 // e+=rot(a,5) + ror w22,w22,#2 + ldr w8,[x0,#16] + add w20,w20,w25 // e+=F(b,c,d) + add w21,w21,w5 + add w22,w22,w6 + add w20,w20,w4 + add w23,w23,w7 + add w24,w24,w8 + stp w20,w21,[x0] + stp w22,w23,[x0,#8] + str w24,[x0,#16] + cbnz x2,.Loop + + ldp x19,x20,[sp,#16] + ldp x21,x22,[sp,#32] + ldp x23,x24,[sp,#48] + ldp x25,x26,[sp,#64] + ldp x27,x28,[sp,#80] + ldr x29,[sp],#96 + ret +.size sha1_block_data_order,.-sha1_block_data_order +.type sha1_block_armv8,%function +.align 6 +sha1_block_armv8: +.Lv8_entry: + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + + adr x4,.Lconst + eor v1.16b,v1.16b,v1.16b + ld1 {v0.4s},[x0],#16 + ld1 {v1.s}[0],[x0] + sub x0,x0,#16 + ld1 {v16.4s,v17.4s,v18.4s,v19.4s},[x4] + +.Loop_hw: + ld1 {v4.16b,v5.16b,v6.16b,v7.16b},[x1],#64 + sub x2,x2,#1 + rev32 v4.16b,v4.16b + rev32 v5.16b,v5.16b + + add v20.4s,v16.4s,v4.4s + rev32 v6.16b,v6.16b + orr v22.16b,v0.16b,v0.16b // offload + + add v21.4s,v16.4s,v5.4s + rev32 v7.16b,v7.16b +.inst 0x5e280803 //sha1h v3.16b,v0.16b +.inst 0x5e140020 //sha1c v0.16b,v1.16b,v20.4s // 0 + add v20.4s,v16.4s,v6.4s +.inst 0x5e0630a4 //sha1su0 v4.16b,v5.16b,v6.16b +.inst 0x5e280802 //sha1h v2.16b,v0.16b // 1 +.inst 0x5e150060 //sha1c v0.16b,v3.16b,v21.4s + add v21.4s,v16.4s,v7.4s +.inst 0x5e2818e4 //sha1su1 v4.16b,v7.16b +.inst 0x5e0730c5 //sha1su0 v5.16b,v6.16b,v7.16b +.inst 0x5e280803 //sha1h v3.16b,v0.16b // 2 +.inst 0x5e140040 //sha1c v0.16b,v2.16b,v20.4s + add v20.4s,v16.4s,v4.4s +.inst 0x5e281885 //sha1su1 v5.16b,v4.16b +.inst 0x5e0430e6 //sha1su0 v6.16b,v7.16b,v4.16b +.inst 0x5e280802 //sha1h v2.16b,v0.16b // 3 +.inst 0x5e150060 //sha1c v0.16b,v3.16b,v21.4s + add v21.4s,v17.4s,v5.4s +.inst 0x5e2818a6 //sha1su1 v6.16b,v5.16b +.inst 0x5e053087 //sha1su0 v7.16b,v4.16b,v5.16b +.inst 0x5e280803 //sha1h v3.16b,v0.16b // 4 +.inst 0x5e140040 //sha1c v0.16b,v2.16b,v20.4s + add v20.4s,v17.4s,v6.4s +.inst 0x5e2818c7 //sha1su1 v7.16b,v6.16b +.inst 0x5e0630a4 //sha1su0 v4.16b,v5.16b,v6.16b +.inst 0x5e280802 //sha1h v2.16b,v0.16b // 5 +.inst 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s + add v21.4s,v17.4s,v7.4s +.inst 0x5e2818e4 //sha1su1 v4.16b,v7.16b +.inst 0x5e0730c5 //sha1su0 v5.16b,v6.16b,v7.16b +.inst 0x5e280803 //sha1h v3.16b,v0.16b // 6 +.inst 0x5e141040 //sha1p v0.16b,v2.16b,v20.4s + add v20.4s,v17.4s,v4.4s +.inst 0x5e281885 //sha1su1 v5.16b,v4.16b +.inst 0x5e0430e6 //sha1su0 v6.16b,v7.16b,v4.16b +.inst 0x5e280802 //sha1h v2.16b,v0.16b // 7 +.inst 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s + add v21.4s,v17.4s,v5.4s +.inst 0x5e2818a6 //sha1su1 v6.16b,v5.16b +.inst 0x5e053087 //sha1su0 v7.16b,v4.16b,v5.16b +.inst 0x5e280803 //sha1h v3.16b,v0.16b // 8 +.inst 0x5e141040 //sha1p v0.16b,v2.16b,v20.4s + add v20.4s,v18.4s,v6.4s +.inst 0x5e2818c7 //sha1su1 v7.16b,v6.16b +.inst 0x5e0630a4 //sha1su0 v4.16b,v5.16b,v6.16b +.inst 0x5e280802 //sha1h v2.16b,v0.16b // 9 +.inst 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s + add v21.4s,v18.4s,v7.4s +.inst 0x5e2818e4 //sha1su1 v4.16b,v7.16b +.inst 0x5e0730c5 //sha1su0 v5.16b,v6.16b,v7.16b +.inst 0x5e280803 //sha1h v3.16b,v0.16b // 10 +.inst 0x5e142040 //sha1m v0.16b,v2.16b,v20.4s + add v20.4s,v18.4s,v4.4s +.inst 0x5e281885 //sha1su1 v5.16b,v4.16b +.inst 0x5e0430e6 //sha1su0 v6.16b,v7.16b,v4.16b +.inst 0x5e280802 //sha1h v2.16b,v0.16b // 11 +.inst 0x5e152060 //sha1m v0.16b,v3.16b,v21.4s + add v21.4s,v18.4s,v5.4s +.inst 0x5e2818a6 //sha1su1 v6.16b,v5.16b +.inst 0x5e053087 //sha1su0 v7.16b,v4.16b,v5.16b +.inst 0x5e280803 //sha1h v3.16b,v0.16b // 12 +.inst 0x5e142040 //sha1m v0.16b,v2.16b,v20.4s + add v20.4s,v18.4s,v6.4s +.inst 0x5e2818c7 //sha1su1 v7.16b,v6.16b +.inst 0x5e0630a4 //sha1su0 v4.16b,v5.16b,v6.16b +.inst 0x5e280802 //sha1h v2.16b,v0.16b // 13 +.inst 0x5e152060 //sha1m v0.16b,v3.16b,v21.4s + add v21.4s,v19.4s,v7.4s +.inst 0x5e2818e4 //sha1su1 v4.16b,v7.16b +.inst 0x5e0730c5 //sha1su0 v5.16b,v6.16b,v7.16b +.inst 0x5e280803 //sha1h v3.16b,v0.16b // 14 +.inst 0x5e142040 //sha1m v0.16b,v2.16b,v20.4s + add v20.4s,v19.4s,v4.4s +.inst 0x5e281885 //sha1su1 v5.16b,v4.16b +.inst 0x5e0430e6 //sha1su0 v6.16b,v7.16b,v4.16b +.inst 0x5e280802 //sha1h v2.16b,v0.16b // 15 +.inst 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s + add v21.4s,v19.4s,v5.4s +.inst 0x5e2818a6 //sha1su1 v6.16b,v5.16b +.inst 0x5e053087 //sha1su0 v7.16b,v4.16b,v5.16b +.inst 0x5e280803 //sha1h v3.16b,v0.16b // 16 +.inst 0x5e141040 //sha1p v0.16b,v2.16b,v20.4s + add v20.4s,v19.4s,v6.4s +.inst 0x5e2818c7 //sha1su1 v7.16b,v6.16b +.inst 0x5e280802 //sha1h v2.16b,v0.16b // 17 +.inst 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s + add v21.4s,v19.4s,v7.4s + +.inst 0x5e280803 //sha1h v3.16b,v0.16b // 18 +.inst 0x5e141040 //sha1p v0.16b,v2.16b,v20.4s + +.inst 0x5e280802 //sha1h v2.16b,v0.16b // 19 +.inst 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s + + add v1.4s,v1.4s,v2.4s + add v0.4s,v0.4s,v22.4s + + cbnz x2,.Loop_hw + + st1 {v0.4s},[x0],#16 + st1 {v1.s}[0],[x0] + + ldr x29,[sp],#16 + ret +.size sha1_block_armv8,.-sha1_block_armv8 +.align 6 +.Lconst: +.long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 //K_00_19 +.long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1 //K_20_39 +.long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc //K_40_59 +.long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6 //K_60_79 +.LOPENSSL_armcap_P: +#ifdef __ILP32__ +.long OPENSSL_armcap_P-. +#else +.quad OPENSSL_armcap_P-. +#endif +.byte 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 2 +.align 2 diff --git a/vere/ext/openssl/gen/linux-aarch64/crypto/sha/sha256-armv8.S b/vere/ext/openssl/gen/linux-aarch64/crypto/sha/sha256-armv8.S new file mode 100644 index 0000000..52ca2ef --- /dev/null +++ b/vere/ext/openssl/gen/linux-aarch64/crypto/sha/sha256-armv8.S @@ -0,0 +1,2063 @@ +// Copyright 2014-2020 The OpenSSL Project Authors. All Rights Reserved. +// +// Licensed under the OpenSSL license (the "License"). You may not use +// this file except in compliance with the License. You can obtain a copy +// in the file LICENSE in the source distribution or at +// https://www.openssl.org/source/license.html + +// ==================================================================== +// Written by Andy Polyakov for the OpenSSL +// project. The module is, however, dual licensed under OpenSSL and +// CRYPTOGAMS licenses depending on where you obtain it. For further +// details see http://www.openssl.org/~appro/cryptogams/. +// +// Permission to use under GPLv2 terms is granted. +// ==================================================================== +// +// SHA256/512 for ARMv8. +// +// Performance in cycles per processed byte and improvement coefficient +// over code generated with "default" compiler: +// +// SHA256-hw SHA256(*) SHA512 +// Apple A7 1.97 10.5 (+33%) 6.73 (-1%(**)) +// Cortex-A53 2.38 15.5 (+115%) 10.0 (+150%(***)) +// Cortex-A57 2.31 11.6 (+86%) 7.51 (+260%(***)) +// Denver 2.01 10.5 (+26%) 6.70 (+8%) +// X-Gene 20.0 (+100%) 12.8 (+300%(***)) +// Mongoose 2.36 13.0 (+50%) 8.36 (+33%) +// Kryo 1.92 17.4 (+30%) 11.2 (+8%) +// +// (*) Software SHA256 results are of lesser relevance, presented +// mostly for informational purposes. +// (**) The result is a trade-off: it's possible to improve it by +// 10% (or by 1 cycle per round), but at the cost of 20% loss +// on Cortex-A53 (or by 4 cycles per round). +// (***) Super-impressive coefficients over gcc-generated code are +// indication of some compiler "pathology", most notably code +// generated with -mgeneral-regs-only is significantly faster +// and the gap is only 40-90%. +// +// October 2016. +// +// Originally it was reckoned that it makes no sense to implement NEON +// version of SHA256 for 64-bit processors. This is because performance +// improvement on most wide-spread Cortex-A5x processors was observed +// to be marginal, same on Cortex-A53 and ~10% on A57. But then it was +// observed that 32-bit NEON SHA256 performs significantly better than +// 64-bit scalar version on *some* of the more recent processors. As +// result 64-bit NEON version of SHA256 was added to provide best +// all-round performance. For example it executes ~30% faster on X-Gene +// and Mongoose. [For reference, NEON version of SHA512 is bound to +// deliver much less improvement, likely *negative* on Cortex-A5x. +// Which is why NEON support is limited to SHA256.] + +#ifndef __KERNEL__ +# include "arm_arch.h" +#endif + +.text + + +.hidden OPENSSL_armcap_P +.globl sha256_block_data_order +.type sha256_block_data_order,%function +.align 6 +sha256_block_data_order: +#ifndef __KERNEL__ +# ifdef __ILP32__ + ldrsw x16,.LOPENSSL_armcap_P +# else + ldr x16,.LOPENSSL_armcap_P +# endif + adr x17,.LOPENSSL_armcap_P + add x16,x16,x17 + ldr w16,[x16] + tst w16,#ARMV8_SHA256 + b.ne .Lv8_entry + tst w16,#ARMV7_NEON + b.ne .Lneon_entry +#endif +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-128]! + add x29,sp,#0 + + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + stp x23,x24,[sp,#48] + stp x25,x26,[sp,#64] + stp x27,x28,[sp,#80] + sub sp,sp,#4*4 + + ldp w20,w21,[x0] // load context + ldp w22,w23,[x0,#2*4] + ldp w24,w25,[x0,#4*4] + add x2,x1,x2,lsl#6 // end of input + ldp w26,w27,[x0,#6*4] + adr x30,.LK256 + stp x0,x2,[x29,#96] + +.Loop: + ldp w3,w4,[x1],#2*4 + ldr w19,[x30],#4 // *K++ + eor w28,w21,w22 // magic seed + str x1,[x29,#112] +#ifndef __AARCH64EB__ + rev w3,w3 // 0 +#endif + ror w16,w24,#6 + add w27,w27,w19 // h+=K[i] + eor w6,w24,w24,ror#14 + and w17,w25,w24 + bic w19,w26,w24 + add w27,w27,w3 // h+=X[i] + orr w17,w17,w19 // Ch(e,f,g) + eor w19,w20,w21 // a^b, b^c in next round + eor w16,w16,w6,ror#11 // Sigma1(e) + ror w6,w20,#2 + add w27,w27,w17 // h+=Ch(e,f,g) + eor w17,w20,w20,ror#9 + add w27,w27,w16 // h+=Sigma1(e) + and w28,w28,w19 // (b^c)&=(a^b) + add w23,w23,w27 // d+=h + eor w28,w28,w21 // Maj(a,b,c) + eor w17,w6,w17,ror#13 // Sigma0(a) + add w27,w27,w28 // h+=Maj(a,b,c) + ldr w28,[x30],#4 // *K++, w19 in next round + //add w27,w27,w17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev w4,w4 // 1 +#endif + ldp w5,w6,[x1],#2*4 + add w27,w27,w17 // h+=Sigma0(a) + ror w16,w23,#6 + add w26,w26,w28 // h+=K[i] + eor w7,w23,w23,ror#14 + and w17,w24,w23 + bic w28,w25,w23 + add w26,w26,w4 // h+=X[i] + orr w17,w17,w28 // Ch(e,f,g) + eor w28,w27,w20 // a^b, b^c in next round + eor w16,w16,w7,ror#11 // Sigma1(e) + ror w7,w27,#2 + add w26,w26,w17 // h+=Ch(e,f,g) + eor w17,w27,w27,ror#9 + add w26,w26,w16 // h+=Sigma1(e) + and w19,w19,w28 // (b^c)&=(a^b) + add w22,w22,w26 // d+=h + eor w19,w19,w20 // Maj(a,b,c) + eor w17,w7,w17,ror#13 // Sigma0(a) + add w26,w26,w19 // h+=Maj(a,b,c) + ldr w19,[x30],#4 // *K++, w28 in next round + //add w26,w26,w17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev w5,w5 // 2 +#endif + add w26,w26,w17 // h+=Sigma0(a) + ror w16,w22,#6 + add w25,w25,w19 // h+=K[i] + eor w8,w22,w22,ror#14 + and w17,w23,w22 + bic w19,w24,w22 + add w25,w25,w5 // h+=X[i] + orr w17,w17,w19 // Ch(e,f,g) + eor w19,w26,w27 // a^b, b^c in next round + eor w16,w16,w8,ror#11 // Sigma1(e) + ror w8,w26,#2 + add w25,w25,w17 // h+=Ch(e,f,g) + eor w17,w26,w26,ror#9 + add w25,w25,w16 // h+=Sigma1(e) + and w28,w28,w19 // (b^c)&=(a^b) + add w21,w21,w25 // d+=h + eor w28,w28,w27 // Maj(a,b,c) + eor w17,w8,w17,ror#13 // Sigma0(a) + add w25,w25,w28 // h+=Maj(a,b,c) + ldr w28,[x30],#4 // *K++, w19 in next round + //add w25,w25,w17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev w6,w6 // 3 +#endif + ldp w7,w8,[x1],#2*4 + add w25,w25,w17 // h+=Sigma0(a) + ror w16,w21,#6 + add w24,w24,w28 // h+=K[i] + eor w9,w21,w21,ror#14 + and w17,w22,w21 + bic w28,w23,w21 + add w24,w24,w6 // h+=X[i] + orr w17,w17,w28 // Ch(e,f,g) + eor w28,w25,w26 // a^b, b^c in next round + eor w16,w16,w9,ror#11 // Sigma1(e) + ror w9,w25,#2 + add w24,w24,w17 // h+=Ch(e,f,g) + eor w17,w25,w25,ror#9 + add w24,w24,w16 // h+=Sigma1(e) + and w19,w19,w28 // (b^c)&=(a^b) + add w20,w20,w24 // d+=h + eor w19,w19,w26 // Maj(a,b,c) + eor w17,w9,w17,ror#13 // Sigma0(a) + add w24,w24,w19 // h+=Maj(a,b,c) + ldr w19,[x30],#4 // *K++, w28 in next round + //add w24,w24,w17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev w7,w7 // 4 +#endif + add w24,w24,w17 // h+=Sigma0(a) + ror w16,w20,#6 + add w23,w23,w19 // h+=K[i] + eor w10,w20,w20,ror#14 + and w17,w21,w20 + bic w19,w22,w20 + add w23,w23,w7 // h+=X[i] + orr w17,w17,w19 // Ch(e,f,g) + eor w19,w24,w25 // a^b, b^c in next round + eor w16,w16,w10,ror#11 // Sigma1(e) + ror w10,w24,#2 + add w23,w23,w17 // h+=Ch(e,f,g) + eor w17,w24,w24,ror#9 + add w23,w23,w16 // h+=Sigma1(e) + and w28,w28,w19 // (b^c)&=(a^b) + add w27,w27,w23 // d+=h + eor w28,w28,w25 // Maj(a,b,c) + eor w17,w10,w17,ror#13 // Sigma0(a) + add w23,w23,w28 // h+=Maj(a,b,c) + ldr w28,[x30],#4 // *K++, w19 in next round + //add w23,w23,w17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev w8,w8 // 5 +#endif + ldp w9,w10,[x1],#2*4 + add w23,w23,w17 // h+=Sigma0(a) + ror w16,w27,#6 + add w22,w22,w28 // h+=K[i] + eor w11,w27,w27,ror#14 + and w17,w20,w27 + bic w28,w21,w27 + add w22,w22,w8 // h+=X[i] + orr w17,w17,w28 // Ch(e,f,g) + eor w28,w23,w24 // a^b, b^c in next round + eor w16,w16,w11,ror#11 // Sigma1(e) + ror w11,w23,#2 + add w22,w22,w17 // h+=Ch(e,f,g) + eor w17,w23,w23,ror#9 + add w22,w22,w16 // h+=Sigma1(e) + and w19,w19,w28 // (b^c)&=(a^b) + add w26,w26,w22 // d+=h + eor w19,w19,w24 // Maj(a,b,c) + eor w17,w11,w17,ror#13 // Sigma0(a) + add w22,w22,w19 // h+=Maj(a,b,c) + ldr w19,[x30],#4 // *K++, w28 in next round + //add w22,w22,w17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev w9,w9 // 6 +#endif + add w22,w22,w17 // h+=Sigma0(a) + ror w16,w26,#6 + add w21,w21,w19 // h+=K[i] + eor w12,w26,w26,ror#14 + and w17,w27,w26 + bic w19,w20,w26 + add w21,w21,w9 // h+=X[i] + orr w17,w17,w19 // Ch(e,f,g) + eor w19,w22,w23 // a^b, b^c in next round + eor w16,w16,w12,ror#11 // Sigma1(e) + ror w12,w22,#2 + add w21,w21,w17 // h+=Ch(e,f,g) + eor w17,w22,w22,ror#9 + add w21,w21,w16 // h+=Sigma1(e) + and w28,w28,w19 // (b^c)&=(a^b) + add w25,w25,w21 // d+=h + eor w28,w28,w23 // Maj(a,b,c) + eor w17,w12,w17,ror#13 // Sigma0(a) + add w21,w21,w28 // h+=Maj(a,b,c) + ldr w28,[x30],#4 // *K++, w19 in next round + //add w21,w21,w17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev w10,w10 // 7 +#endif + ldp w11,w12,[x1],#2*4 + add w21,w21,w17 // h+=Sigma0(a) + ror w16,w25,#6 + add w20,w20,w28 // h+=K[i] + eor w13,w25,w25,ror#14 + and w17,w26,w25 + bic w28,w27,w25 + add w20,w20,w10 // h+=X[i] + orr w17,w17,w28 // Ch(e,f,g) + eor w28,w21,w22 // a^b, b^c in next round + eor w16,w16,w13,ror#11 // Sigma1(e) + ror w13,w21,#2 + add w20,w20,w17 // h+=Ch(e,f,g) + eor w17,w21,w21,ror#9 + add w20,w20,w16 // h+=Sigma1(e) + and w19,w19,w28 // (b^c)&=(a^b) + add w24,w24,w20 // d+=h + eor w19,w19,w22 // Maj(a,b,c) + eor w17,w13,w17,ror#13 // Sigma0(a) + add w20,w20,w19 // h+=Maj(a,b,c) + ldr w19,[x30],#4 // *K++, w28 in next round + //add w20,w20,w17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev w11,w11 // 8 +#endif + add w20,w20,w17 // h+=Sigma0(a) + ror w16,w24,#6 + add w27,w27,w19 // h+=K[i] + eor w14,w24,w24,ror#14 + and w17,w25,w24 + bic w19,w26,w24 + add w27,w27,w11 // h+=X[i] + orr w17,w17,w19 // Ch(e,f,g) + eor w19,w20,w21 // a^b, b^c in next round + eor w16,w16,w14,ror#11 // Sigma1(e) + ror w14,w20,#2 + add w27,w27,w17 // h+=Ch(e,f,g) + eor w17,w20,w20,ror#9 + add w27,w27,w16 // h+=Sigma1(e) + and w28,w28,w19 // (b^c)&=(a^b) + add w23,w23,w27 // d+=h + eor w28,w28,w21 // Maj(a,b,c) + eor w17,w14,w17,ror#13 // Sigma0(a) + add w27,w27,w28 // h+=Maj(a,b,c) + ldr w28,[x30],#4 // *K++, w19 in next round + //add w27,w27,w17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev w12,w12 // 9 +#endif + ldp w13,w14,[x1],#2*4 + add w27,w27,w17 // h+=Sigma0(a) + ror w16,w23,#6 + add w26,w26,w28 // h+=K[i] + eor w15,w23,w23,ror#14 + and w17,w24,w23 + bic w28,w25,w23 + add w26,w26,w12 // h+=X[i] + orr w17,w17,w28 // Ch(e,f,g) + eor w28,w27,w20 // a^b, b^c in next round + eor w16,w16,w15,ror#11 // Sigma1(e) + ror w15,w27,#2 + add w26,w26,w17 // h+=Ch(e,f,g) + eor w17,w27,w27,ror#9 + add w26,w26,w16 // h+=Sigma1(e) + and w19,w19,w28 // (b^c)&=(a^b) + add w22,w22,w26 // d+=h + eor w19,w19,w20 // Maj(a,b,c) + eor w17,w15,w17,ror#13 // Sigma0(a) + add w26,w26,w19 // h+=Maj(a,b,c) + ldr w19,[x30],#4 // *K++, w28 in next round + //add w26,w26,w17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev w13,w13 // 10 +#endif + add w26,w26,w17 // h+=Sigma0(a) + ror w16,w22,#6 + add w25,w25,w19 // h+=K[i] + eor w0,w22,w22,ror#14 + and w17,w23,w22 + bic w19,w24,w22 + add w25,w25,w13 // h+=X[i] + orr w17,w17,w19 // Ch(e,f,g) + eor w19,w26,w27 // a^b, b^c in next round + eor w16,w16,w0,ror#11 // Sigma1(e) + ror w0,w26,#2 + add w25,w25,w17 // h+=Ch(e,f,g) + eor w17,w26,w26,ror#9 + add w25,w25,w16 // h+=Sigma1(e) + and w28,w28,w19 // (b^c)&=(a^b) + add w21,w21,w25 // d+=h + eor w28,w28,w27 // Maj(a,b,c) + eor w17,w0,w17,ror#13 // Sigma0(a) + add w25,w25,w28 // h+=Maj(a,b,c) + ldr w28,[x30],#4 // *K++, w19 in next round + //add w25,w25,w17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev w14,w14 // 11 +#endif + ldp w15,w0,[x1],#2*4 + add w25,w25,w17 // h+=Sigma0(a) + str w6,[sp,#12] + ror w16,w21,#6 + add w24,w24,w28 // h+=K[i] + eor w6,w21,w21,ror#14 + and w17,w22,w21 + bic w28,w23,w21 + add w24,w24,w14 // h+=X[i] + orr w17,w17,w28 // Ch(e,f,g) + eor w28,w25,w26 // a^b, b^c in next round + eor w16,w16,w6,ror#11 // Sigma1(e) + ror w6,w25,#2 + add w24,w24,w17 // h+=Ch(e,f,g) + eor w17,w25,w25,ror#9 + add w24,w24,w16 // h+=Sigma1(e) + and w19,w19,w28 // (b^c)&=(a^b) + add w20,w20,w24 // d+=h + eor w19,w19,w26 // Maj(a,b,c) + eor w17,w6,w17,ror#13 // Sigma0(a) + add w24,w24,w19 // h+=Maj(a,b,c) + ldr w19,[x30],#4 // *K++, w28 in next round + //add w24,w24,w17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev w15,w15 // 12 +#endif + add w24,w24,w17 // h+=Sigma0(a) + str w7,[sp,#0] + ror w16,w20,#6 + add w23,w23,w19 // h+=K[i] + eor w7,w20,w20,ror#14 + and w17,w21,w20 + bic w19,w22,w20 + add w23,w23,w15 // h+=X[i] + orr w17,w17,w19 // Ch(e,f,g) + eor w19,w24,w25 // a^b, b^c in next round + eor w16,w16,w7,ror#11 // Sigma1(e) + ror w7,w24,#2 + add w23,w23,w17 // h+=Ch(e,f,g) + eor w17,w24,w24,ror#9 + add w23,w23,w16 // h+=Sigma1(e) + and w28,w28,w19 // (b^c)&=(a^b) + add w27,w27,w23 // d+=h + eor w28,w28,w25 // Maj(a,b,c) + eor w17,w7,w17,ror#13 // Sigma0(a) + add w23,w23,w28 // h+=Maj(a,b,c) + ldr w28,[x30],#4 // *K++, w19 in next round + //add w23,w23,w17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev w0,w0 // 13 +#endif + ldp w1,w2,[x1] + add w23,w23,w17 // h+=Sigma0(a) + str w8,[sp,#4] + ror w16,w27,#6 + add w22,w22,w28 // h+=K[i] + eor w8,w27,w27,ror#14 + and w17,w20,w27 + bic w28,w21,w27 + add w22,w22,w0 // h+=X[i] + orr w17,w17,w28 // Ch(e,f,g) + eor w28,w23,w24 // a^b, b^c in next round + eor w16,w16,w8,ror#11 // Sigma1(e) + ror w8,w23,#2 + add w22,w22,w17 // h+=Ch(e,f,g) + eor w17,w23,w23,ror#9 + add w22,w22,w16 // h+=Sigma1(e) + and w19,w19,w28 // (b^c)&=(a^b) + add w26,w26,w22 // d+=h + eor w19,w19,w24 // Maj(a,b,c) + eor w17,w8,w17,ror#13 // Sigma0(a) + add w22,w22,w19 // h+=Maj(a,b,c) + ldr w19,[x30],#4 // *K++, w28 in next round + //add w22,w22,w17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev w1,w1 // 14 +#endif + ldr w6,[sp,#12] + add w22,w22,w17 // h+=Sigma0(a) + str w9,[sp,#8] + ror w16,w26,#6 + add w21,w21,w19 // h+=K[i] + eor w9,w26,w26,ror#14 + and w17,w27,w26 + bic w19,w20,w26 + add w21,w21,w1 // h+=X[i] + orr w17,w17,w19 // Ch(e,f,g) + eor w19,w22,w23 // a^b, b^c in next round + eor w16,w16,w9,ror#11 // Sigma1(e) + ror w9,w22,#2 + add w21,w21,w17 // h+=Ch(e,f,g) + eor w17,w22,w22,ror#9 + add w21,w21,w16 // h+=Sigma1(e) + and w28,w28,w19 // (b^c)&=(a^b) + add w25,w25,w21 // d+=h + eor w28,w28,w23 // Maj(a,b,c) + eor w17,w9,w17,ror#13 // Sigma0(a) + add w21,w21,w28 // h+=Maj(a,b,c) + ldr w28,[x30],#4 // *K++, w19 in next round + //add w21,w21,w17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev w2,w2 // 15 +#endif + ldr w7,[sp,#0] + add w21,w21,w17 // h+=Sigma0(a) + str w10,[sp,#12] + ror w16,w25,#6 + add w20,w20,w28 // h+=K[i] + ror w9,w4,#7 + and w17,w26,w25 + ror w8,w1,#17 + bic w28,w27,w25 + ror w10,w21,#2 + add w20,w20,w2 // h+=X[i] + eor w16,w16,w25,ror#11 + eor w9,w9,w4,ror#18 + orr w17,w17,w28 // Ch(e,f,g) + eor w28,w21,w22 // a^b, b^c in next round + eor w16,w16,w25,ror#25 // Sigma1(e) + eor w10,w10,w21,ror#13 + add w20,w20,w17 // h+=Ch(e,f,g) + and w19,w19,w28 // (b^c)&=(a^b) + eor w8,w8,w1,ror#19 + eor w9,w9,w4,lsr#3 // sigma0(X[i+1]) + add w20,w20,w16 // h+=Sigma1(e) + eor w19,w19,w22 // Maj(a,b,c) + eor w17,w10,w21,ror#22 // Sigma0(a) + eor w8,w8,w1,lsr#10 // sigma1(X[i+14]) + add w3,w3,w12 + add w24,w24,w20 // d+=h + add w20,w20,w19 // h+=Maj(a,b,c) + ldr w19,[x30],#4 // *K++, w28 in next round + add w3,w3,w9 + add w20,w20,w17 // h+=Sigma0(a) + add w3,w3,w8 +.Loop_16_xx: + ldr w8,[sp,#4] + str w11,[sp,#0] + ror w16,w24,#6 + add w27,w27,w19 // h+=K[i] + ror w10,w5,#7 + and w17,w25,w24 + ror w9,w2,#17 + bic w19,w26,w24 + ror w11,w20,#2 + add w27,w27,w3 // h+=X[i] + eor w16,w16,w24,ror#11 + eor w10,w10,w5,ror#18 + orr w17,w17,w19 // Ch(e,f,g) + eor w19,w20,w21 // a^b, b^c in next round + eor w16,w16,w24,ror#25 // Sigma1(e) + eor w11,w11,w20,ror#13 + add w27,w27,w17 // h+=Ch(e,f,g) + and w28,w28,w19 // (b^c)&=(a^b) + eor w9,w9,w2,ror#19 + eor w10,w10,w5,lsr#3 // sigma0(X[i+1]) + add w27,w27,w16 // h+=Sigma1(e) + eor w28,w28,w21 // Maj(a,b,c) + eor w17,w11,w20,ror#22 // Sigma0(a) + eor w9,w9,w2,lsr#10 // sigma1(X[i+14]) + add w4,w4,w13 + add w23,w23,w27 // d+=h + add w27,w27,w28 // h+=Maj(a,b,c) + ldr w28,[x30],#4 // *K++, w19 in next round + add w4,w4,w10 + add w27,w27,w17 // h+=Sigma0(a) + add w4,w4,w9 + ldr w9,[sp,#8] + str w12,[sp,#4] + ror w16,w23,#6 + add w26,w26,w28 // h+=K[i] + ror w11,w6,#7 + and w17,w24,w23 + ror w10,w3,#17 + bic w28,w25,w23 + ror w12,w27,#2 + add w26,w26,w4 // h+=X[i] + eor w16,w16,w23,ror#11 + eor w11,w11,w6,ror#18 + orr w17,w17,w28 // Ch(e,f,g) + eor w28,w27,w20 // a^b, b^c in next round + eor w16,w16,w23,ror#25 // Sigma1(e) + eor w12,w12,w27,ror#13 + add w26,w26,w17 // h+=Ch(e,f,g) + and w19,w19,w28 // (b^c)&=(a^b) + eor w10,w10,w3,ror#19 + eor w11,w11,w6,lsr#3 // sigma0(X[i+1]) + add w26,w26,w16 // h+=Sigma1(e) + eor w19,w19,w20 // Maj(a,b,c) + eor w17,w12,w27,ror#22 // Sigma0(a) + eor w10,w10,w3,lsr#10 // sigma1(X[i+14]) + add w5,w5,w14 + add w22,w22,w26 // d+=h + add w26,w26,w19 // h+=Maj(a,b,c) + ldr w19,[x30],#4 // *K++, w28 in next round + add w5,w5,w11 + add w26,w26,w17 // h+=Sigma0(a) + add w5,w5,w10 + ldr w10,[sp,#12] + str w13,[sp,#8] + ror w16,w22,#6 + add w25,w25,w19 // h+=K[i] + ror w12,w7,#7 + and w17,w23,w22 + ror w11,w4,#17 + bic w19,w24,w22 + ror w13,w26,#2 + add w25,w25,w5 // h+=X[i] + eor w16,w16,w22,ror#11 + eor w12,w12,w7,ror#18 + orr w17,w17,w19 // Ch(e,f,g) + eor w19,w26,w27 // a^b, b^c in next round + eor w16,w16,w22,ror#25 // Sigma1(e) + eor w13,w13,w26,ror#13 + add w25,w25,w17 // h+=Ch(e,f,g) + and w28,w28,w19 // (b^c)&=(a^b) + eor w11,w11,w4,ror#19 + eor w12,w12,w7,lsr#3 // sigma0(X[i+1]) + add w25,w25,w16 // h+=Sigma1(e) + eor w28,w28,w27 // Maj(a,b,c) + eor w17,w13,w26,ror#22 // Sigma0(a) + eor w11,w11,w4,lsr#10 // sigma1(X[i+14]) + add w6,w6,w15 + add w21,w21,w25 // d+=h + add w25,w25,w28 // h+=Maj(a,b,c) + ldr w28,[x30],#4 // *K++, w19 in next round + add w6,w6,w12 + add w25,w25,w17 // h+=Sigma0(a) + add w6,w6,w11 + ldr w11,[sp,#0] + str w14,[sp,#12] + ror w16,w21,#6 + add w24,w24,w28 // h+=K[i] + ror w13,w8,#7 + and w17,w22,w21 + ror w12,w5,#17 + bic w28,w23,w21 + ror w14,w25,#2 + add w24,w24,w6 // h+=X[i] + eor w16,w16,w21,ror#11 + eor w13,w13,w8,ror#18 + orr w17,w17,w28 // Ch(e,f,g) + eor w28,w25,w26 // a^b, b^c in next round + eor w16,w16,w21,ror#25 // Sigma1(e) + eor w14,w14,w25,ror#13 + add w24,w24,w17 // h+=Ch(e,f,g) + and w19,w19,w28 // (b^c)&=(a^b) + eor w12,w12,w5,ror#19 + eor w13,w13,w8,lsr#3 // sigma0(X[i+1]) + add w24,w24,w16 // h+=Sigma1(e) + eor w19,w19,w26 // Maj(a,b,c) + eor w17,w14,w25,ror#22 // Sigma0(a) + eor w12,w12,w5,lsr#10 // sigma1(X[i+14]) + add w7,w7,w0 + add w20,w20,w24 // d+=h + add w24,w24,w19 // h+=Maj(a,b,c) + ldr w19,[x30],#4 // *K++, w28 in next round + add w7,w7,w13 + add w24,w24,w17 // h+=Sigma0(a) + add w7,w7,w12 + ldr w12,[sp,#4] + str w15,[sp,#0] + ror w16,w20,#6 + add w23,w23,w19 // h+=K[i] + ror w14,w9,#7 + and w17,w21,w20 + ror w13,w6,#17 + bic w19,w22,w20 + ror w15,w24,#2 + add w23,w23,w7 // h+=X[i] + eor w16,w16,w20,ror#11 + eor w14,w14,w9,ror#18 + orr w17,w17,w19 // Ch(e,f,g) + eor w19,w24,w25 // a^b, b^c in next round + eor w16,w16,w20,ror#25 // Sigma1(e) + eor w15,w15,w24,ror#13 + add w23,w23,w17 // h+=Ch(e,f,g) + and w28,w28,w19 // (b^c)&=(a^b) + eor w13,w13,w6,ror#19 + eor w14,w14,w9,lsr#3 // sigma0(X[i+1]) + add w23,w23,w16 // h+=Sigma1(e) + eor w28,w28,w25 // Maj(a,b,c) + eor w17,w15,w24,ror#22 // Sigma0(a) + eor w13,w13,w6,lsr#10 // sigma1(X[i+14]) + add w8,w8,w1 + add w27,w27,w23 // d+=h + add w23,w23,w28 // h+=Maj(a,b,c) + ldr w28,[x30],#4 // *K++, w19 in next round + add w8,w8,w14 + add w23,w23,w17 // h+=Sigma0(a) + add w8,w8,w13 + ldr w13,[sp,#8] + str w0,[sp,#4] + ror w16,w27,#6 + add w22,w22,w28 // h+=K[i] + ror w15,w10,#7 + and w17,w20,w27 + ror w14,w7,#17 + bic w28,w21,w27 + ror w0,w23,#2 + add w22,w22,w8 // h+=X[i] + eor w16,w16,w27,ror#11 + eor w15,w15,w10,ror#18 + orr w17,w17,w28 // Ch(e,f,g) + eor w28,w23,w24 // a^b, b^c in next round + eor w16,w16,w27,ror#25 // Sigma1(e) + eor w0,w0,w23,ror#13 + add w22,w22,w17 // h+=Ch(e,f,g) + and w19,w19,w28 // (b^c)&=(a^b) + eor w14,w14,w7,ror#19 + eor w15,w15,w10,lsr#3 // sigma0(X[i+1]) + add w22,w22,w16 // h+=Sigma1(e) + eor w19,w19,w24 // Maj(a,b,c) + eor w17,w0,w23,ror#22 // Sigma0(a) + eor w14,w14,w7,lsr#10 // sigma1(X[i+14]) + add w9,w9,w2 + add w26,w26,w22 // d+=h + add w22,w22,w19 // h+=Maj(a,b,c) + ldr w19,[x30],#4 // *K++, w28 in next round + add w9,w9,w15 + add w22,w22,w17 // h+=Sigma0(a) + add w9,w9,w14 + ldr w14,[sp,#12] + str w1,[sp,#8] + ror w16,w26,#6 + add w21,w21,w19 // h+=K[i] + ror w0,w11,#7 + and w17,w27,w26 + ror w15,w8,#17 + bic w19,w20,w26 + ror w1,w22,#2 + add w21,w21,w9 // h+=X[i] + eor w16,w16,w26,ror#11 + eor w0,w0,w11,ror#18 + orr w17,w17,w19 // Ch(e,f,g) + eor w19,w22,w23 // a^b, b^c in next round + eor w16,w16,w26,ror#25 // Sigma1(e) + eor w1,w1,w22,ror#13 + add w21,w21,w17 // h+=Ch(e,f,g) + and w28,w28,w19 // (b^c)&=(a^b) + eor w15,w15,w8,ror#19 + eor w0,w0,w11,lsr#3 // sigma0(X[i+1]) + add w21,w21,w16 // h+=Sigma1(e) + eor w28,w28,w23 // Maj(a,b,c) + eor w17,w1,w22,ror#22 // Sigma0(a) + eor w15,w15,w8,lsr#10 // sigma1(X[i+14]) + add w10,w10,w3 + add w25,w25,w21 // d+=h + add w21,w21,w28 // h+=Maj(a,b,c) + ldr w28,[x30],#4 // *K++, w19 in next round + add w10,w10,w0 + add w21,w21,w17 // h+=Sigma0(a) + add w10,w10,w15 + ldr w15,[sp,#0] + str w2,[sp,#12] + ror w16,w25,#6 + add w20,w20,w28 // h+=K[i] + ror w1,w12,#7 + and w17,w26,w25 + ror w0,w9,#17 + bic w28,w27,w25 + ror w2,w21,#2 + add w20,w20,w10 // h+=X[i] + eor w16,w16,w25,ror#11 + eor w1,w1,w12,ror#18 + orr w17,w17,w28 // Ch(e,f,g) + eor w28,w21,w22 // a^b, b^c in next round + eor w16,w16,w25,ror#25 // Sigma1(e) + eor w2,w2,w21,ror#13 + add w20,w20,w17 // h+=Ch(e,f,g) + and w19,w19,w28 // (b^c)&=(a^b) + eor w0,w0,w9,ror#19 + eor w1,w1,w12,lsr#3 // sigma0(X[i+1]) + add w20,w20,w16 // h+=Sigma1(e) + eor w19,w19,w22 // Maj(a,b,c) + eor w17,w2,w21,ror#22 // Sigma0(a) + eor w0,w0,w9,lsr#10 // sigma1(X[i+14]) + add w11,w11,w4 + add w24,w24,w20 // d+=h + add w20,w20,w19 // h+=Maj(a,b,c) + ldr w19,[x30],#4 // *K++, w28 in next round + add w11,w11,w1 + add w20,w20,w17 // h+=Sigma0(a) + add w11,w11,w0 + ldr w0,[sp,#4] + str w3,[sp,#0] + ror w16,w24,#6 + add w27,w27,w19 // h+=K[i] + ror w2,w13,#7 + and w17,w25,w24 + ror w1,w10,#17 + bic w19,w26,w24 + ror w3,w20,#2 + add w27,w27,w11 // h+=X[i] + eor w16,w16,w24,ror#11 + eor w2,w2,w13,ror#18 + orr w17,w17,w19 // Ch(e,f,g) + eor w19,w20,w21 // a^b, b^c in next round + eor w16,w16,w24,ror#25 // Sigma1(e) + eor w3,w3,w20,ror#13 + add w27,w27,w17 // h+=Ch(e,f,g) + and w28,w28,w19 // (b^c)&=(a^b) + eor w1,w1,w10,ror#19 + eor w2,w2,w13,lsr#3 // sigma0(X[i+1]) + add w27,w27,w16 // h+=Sigma1(e) + eor w28,w28,w21 // Maj(a,b,c) + eor w17,w3,w20,ror#22 // Sigma0(a) + eor w1,w1,w10,lsr#10 // sigma1(X[i+14]) + add w12,w12,w5 + add w23,w23,w27 // d+=h + add w27,w27,w28 // h+=Maj(a,b,c) + ldr w28,[x30],#4 // *K++, w19 in next round + add w12,w12,w2 + add w27,w27,w17 // h+=Sigma0(a) + add w12,w12,w1 + ldr w1,[sp,#8] + str w4,[sp,#4] + ror w16,w23,#6 + add w26,w26,w28 // h+=K[i] + ror w3,w14,#7 + and w17,w24,w23 + ror w2,w11,#17 + bic w28,w25,w23 + ror w4,w27,#2 + add w26,w26,w12 // h+=X[i] + eor w16,w16,w23,ror#11 + eor w3,w3,w14,ror#18 + orr w17,w17,w28 // Ch(e,f,g) + eor w28,w27,w20 // a^b, b^c in next round + eor w16,w16,w23,ror#25 // Sigma1(e) + eor w4,w4,w27,ror#13 + add w26,w26,w17 // h+=Ch(e,f,g) + and w19,w19,w28 // (b^c)&=(a^b) + eor w2,w2,w11,ror#19 + eor w3,w3,w14,lsr#3 // sigma0(X[i+1]) + add w26,w26,w16 // h+=Sigma1(e) + eor w19,w19,w20 // Maj(a,b,c) + eor w17,w4,w27,ror#22 // Sigma0(a) + eor w2,w2,w11,lsr#10 // sigma1(X[i+14]) + add w13,w13,w6 + add w22,w22,w26 // d+=h + add w26,w26,w19 // h+=Maj(a,b,c) + ldr w19,[x30],#4 // *K++, w28 in next round + add w13,w13,w3 + add w26,w26,w17 // h+=Sigma0(a) + add w13,w13,w2 + ldr w2,[sp,#12] + str w5,[sp,#8] + ror w16,w22,#6 + add w25,w25,w19 // h+=K[i] + ror w4,w15,#7 + and w17,w23,w22 + ror w3,w12,#17 + bic w19,w24,w22 + ror w5,w26,#2 + add w25,w25,w13 // h+=X[i] + eor w16,w16,w22,ror#11 + eor w4,w4,w15,ror#18 + orr w17,w17,w19 // Ch(e,f,g) + eor w19,w26,w27 // a^b, b^c in next round + eor w16,w16,w22,ror#25 // Sigma1(e) + eor w5,w5,w26,ror#13 + add w25,w25,w17 // h+=Ch(e,f,g) + and w28,w28,w19 // (b^c)&=(a^b) + eor w3,w3,w12,ror#19 + eor w4,w4,w15,lsr#3 // sigma0(X[i+1]) + add w25,w25,w16 // h+=Sigma1(e) + eor w28,w28,w27 // Maj(a,b,c) + eor w17,w5,w26,ror#22 // Sigma0(a) + eor w3,w3,w12,lsr#10 // sigma1(X[i+14]) + add w14,w14,w7 + add w21,w21,w25 // d+=h + add w25,w25,w28 // h+=Maj(a,b,c) + ldr w28,[x30],#4 // *K++, w19 in next round + add w14,w14,w4 + add w25,w25,w17 // h+=Sigma0(a) + add w14,w14,w3 + ldr w3,[sp,#0] + str w6,[sp,#12] + ror w16,w21,#6 + add w24,w24,w28 // h+=K[i] + ror w5,w0,#7 + and w17,w22,w21 + ror w4,w13,#17 + bic w28,w23,w21 + ror w6,w25,#2 + add w24,w24,w14 // h+=X[i] + eor w16,w16,w21,ror#11 + eor w5,w5,w0,ror#18 + orr w17,w17,w28 // Ch(e,f,g) + eor w28,w25,w26 // a^b, b^c in next round + eor w16,w16,w21,ror#25 // Sigma1(e) + eor w6,w6,w25,ror#13 + add w24,w24,w17 // h+=Ch(e,f,g) + and w19,w19,w28 // (b^c)&=(a^b) + eor w4,w4,w13,ror#19 + eor w5,w5,w0,lsr#3 // sigma0(X[i+1]) + add w24,w24,w16 // h+=Sigma1(e) + eor w19,w19,w26 // Maj(a,b,c) + eor w17,w6,w25,ror#22 // Sigma0(a) + eor w4,w4,w13,lsr#10 // sigma1(X[i+14]) + add w15,w15,w8 + add w20,w20,w24 // d+=h + add w24,w24,w19 // h+=Maj(a,b,c) + ldr w19,[x30],#4 // *K++, w28 in next round + add w15,w15,w5 + add w24,w24,w17 // h+=Sigma0(a) + add w15,w15,w4 + ldr w4,[sp,#4] + str w7,[sp,#0] + ror w16,w20,#6 + add w23,w23,w19 // h+=K[i] + ror w6,w1,#7 + and w17,w21,w20 + ror w5,w14,#17 + bic w19,w22,w20 + ror w7,w24,#2 + add w23,w23,w15 // h+=X[i] + eor w16,w16,w20,ror#11 + eor w6,w6,w1,ror#18 + orr w17,w17,w19 // Ch(e,f,g) + eor w19,w24,w25 // a^b, b^c in next round + eor w16,w16,w20,ror#25 // Sigma1(e) + eor w7,w7,w24,ror#13 + add w23,w23,w17 // h+=Ch(e,f,g) + and w28,w28,w19 // (b^c)&=(a^b) + eor w5,w5,w14,ror#19 + eor w6,w6,w1,lsr#3 // sigma0(X[i+1]) + add w23,w23,w16 // h+=Sigma1(e) + eor w28,w28,w25 // Maj(a,b,c) + eor w17,w7,w24,ror#22 // Sigma0(a) + eor w5,w5,w14,lsr#10 // sigma1(X[i+14]) + add w0,w0,w9 + add w27,w27,w23 // d+=h + add w23,w23,w28 // h+=Maj(a,b,c) + ldr w28,[x30],#4 // *K++, w19 in next round + add w0,w0,w6 + add w23,w23,w17 // h+=Sigma0(a) + add w0,w0,w5 + ldr w5,[sp,#8] + str w8,[sp,#4] + ror w16,w27,#6 + add w22,w22,w28 // h+=K[i] + ror w7,w2,#7 + and w17,w20,w27 + ror w6,w15,#17 + bic w28,w21,w27 + ror w8,w23,#2 + add w22,w22,w0 // h+=X[i] + eor w16,w16,w27,ror#11 + eor w7,w7,w2,ror#18 + orr w17,w17,w28 // Ch(e,f,g) + eor w28,w23,w24 // a^b, b^c in next round + eor w16,w16,w27,ror#25 // Sigma1(e) + eor w8,w8,w23,ror#13 + add w22,w22,w17 // h+=Ch(e,f,g) + and w19,w19,w28 // (b^c)&=(a^b) + eor w6,w6,w15,ror#19 + eor w7,w7,w2,lsr#3 // sigma0(X[i+1]) + add w22,w22,w16 // h+=Sigma1(e) + eor w19,w19,w24 // Maj(a,b,c) + eor w17,w8,w23,ror#22 // Sigma0(a) + eor w6,w6,w15,lsr#10 // sigma1(X[i+14]) + add w1,w1,w10 + add w26,w26,w22 // d+=h + add w22,w22,w19 // h+=Maj(a,b,c) + ldr w19,[x30],#4 // *K++, w28 in next round + add w1,w1,w7 + add w22,w22,w17 // h+=Sigma0(a) + add w1,w1,w6 + ldr w6,[sp,#12] + str w9,[sp,#8] + ror w16,w26,#6 + add w21,w21,w19 // h+=K[i] + ror w8,w3,#7 + and w17,w27,w26 + ror w7,w0,#17 + bic w19,w20,w26 + ror w9,w22,#2 + add w21,w21,w1 // h+=X[i] + eor w16,w16,w26,ror#11 + eor w8,w8,w3,ror#18 + orr w17,w17,w19 // Ch(e,f,g) + eor w19,w22,w23 // a^b, b^c in next round + eor w16,w16,w26,ror#25 // Sigma1(e) + eor w9,w9,w22,ror#13 + add w21,w21,w17 // h+=Ch(e,f,g) + and w28,w28,w19 // (b^c)&=(a^b) + eor w7,w7,w0,ror#19 + eor w8,w8,w3,lsr#3 // sigma0(X[i+1]) + add w21,w21,w16 // h+=Sigma1(e) + eor w28,w28,w23 // Maj(a,b,c) + eor w17,w9,w22,ror#22 // Sigma0(a) + eor w7,w7,w0,lsr#10 // sigma1(X[i+14]) + add w2,w2,w11 + add w25,w25,w21 // d+=h + add w21,w21,w28 // h+=Maj(a,b,c) + ldr w28,[x30],#4 // *K++, w19 in next round + add w2,w2,w8 + add w21,w21,w17 // h+=Sigma0(a) + add w2,w2,w7 + ldr w7,[sp,#0] + str w10,[sp,#12] + ror w16,w25,#6 + add w20,w20,w28 // h+=K[i] + ror w9,w4,#7 + and w17,w26,w25 + ror w8,w1,#17 + bic w28,w27,w25 + ror w10,w21,#2 + add w20,w20,w2 // h+=X[i] + eor w16,w16,w25,ror#11 + eor w9,w9,w4,ror#18 + orr w17,w17,w28 // Ch(e,f,g) + eor w28,w21,w22 // a^b, b^c in next round + eor w16,w16,w25,ror#25 // Sigma1(e) + eor w10,w10,w21,ror#13 + add w20,w20,w17 // h+=Ch(e,f,g) + and w19,w19,w28 // (b^c)&=(a^b) + eor w8,w8,w1,ror#19 + eor w9,w9,w4,lsr#3 // sigma0(X[i+1]) + add w20,w20,w16 // h+=Sigma1(e) + eor w19,w19,w22 // Maj(a,b,c) + eor w17,w10,w21,ror#22 // Sigma0(a) + eor w8,w8,w1,lsr#10 // sigma1(X[i+14]) + add w3,w3,w12 + add w24,w24,w20 // d+=h + add w20,w20,w19 // h+=Maj(a,b,c) + ldr w19,[x30],#4 // *K++, w28 in next round + add w3,w3,w9 + add w20,w20,w17 // h+=Sigma0(a) + add w3,w3,w8 + cbnz w19,.Loop_16_xx + + ldp x0,x2,[x29,#96] + ldr x1,[x29,#112] + sub x30,x30,#260 // rewind + + ldp w3,w4,[x0] + ldp w5,w6,[x0,#2*4] + add x1,x1,#14*4 // advance input pointer + ldp w7,w8,[x0,#4*4] + add w20,w20,w3 + ldp w9,w10,[x0,#6*4] + add w21,w21,w4 + add w22,w22,w5 + add w23,w23,w6 + stp w20,w21,[x0] + add w24,w24,w7 + add w25,w25,w8 + stp w22,w23,[x0,#2*4] + add w26,w26,w9 + add w27,w27,w10 + cmp x1,x2 + stp w24,w25,[x0,#4*4] + stp w26,w27,[x0,#6*4] + b.ne .Loop + + ldp x19,x20,[x29,#16] + add sp,sp,#4*4 + ldp x21,x22,[x29,#32] + ldp x23,x24,[x29,#48] + ldp x25,x26,[x29,#64] + ldp x27,x28,[x29,#80] + ldp x29,x30,[sp],#128 +.inst 0xd50323bf // autiasp + ret +.size sha256_block_data_order,.-sha256_block_data_order + +.align 6 +.type .LK256,%object +.LK256: +.long 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5 +.long 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5 +.long 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3 +.long 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174 +.long 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc +.long 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da +.long 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7 +.long 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967 +.long 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13 +.long 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85 +.long 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3 +.long 0xd192e819,0xd6990624,0xf40e3585,0x106aa070 +.long 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5 +.long 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3 +.long 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208 +.long 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 +.long 0 //terminator +.size .LK256,.-.LK256 +#ifndef __KERNEL__ +.align 3 +.LOPENSSL_armcap_P: +# ifdef __ILP32__ +.long OPENSSL_armcap_P-. +# else +.quad OPENSSL_armcap_P-. +# endif +#endif +.byte 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 2 +.align 2 +#ifndef __KERNEL__ +.type sha256_block_armv8,%function +.align 6 +sha256_block_armv8: +.Lv8_entry: + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + + ld1 {v0.4s,v1.4s},[x0] + adr x3,.LK256 + +.Loop_hw: + ld1 {v4.16b,v5.16b,v6.16b,v7.16b},[x1],#64 + sub x2,x2,#1 + ld1 {v16.4s},[x3],#16 + rev32 v4.16b,v4.16b + rev32 v5.16b,v5.16b + rev32 v6.16b,v6.16b + rev32 v7.16b,v7.16b + orr v18.16b,v0.16b,v0.16b // offload + orr v19.16b,v1.16b,v1.16b + ld1 {v17.4s},[x3],#16 + add v16.4s,v16.4s,v4.4s +.inst 0x5e2828a4 //sha256su0 v4.16b,v5.16b + orr v2.16b,v0.16b,v0.16b +.inst 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s +.inst 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s +.inst 0x5e0760c4 //sha256su1 v4.16b,v6.16b,v7.16b + ld1 {v16.4s},[x3],#16 + add v17.4s,v17.4s,v5.4s +.inst 0x5e2828c5 //sha256su0 v5.16b,v6.16b + orr v2.16b,v0.16b,v0.16b +.inst 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s +.inst 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s +.inst 0x5e0460e5 //sha256su1 v5.16b,v7.16b,v4.16b + ld1 {v17.4s},[x3],#16 + add v16.4s,v16.4s,v6.4s +.inst 0x5e2828e6 //sha256su0 v6.16b,v7.16b + orr v2.16b,v0.16b,v0.16b +.inst 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s +.inst 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s +.inst 0x5e056086 //sha256su1 v6.16b,v4.16b,v5.16b + ld1 {v16.4s},[x3],#16 + add v17.4s,v17.4s,v7.4s +.inst 0x5e282887 //sha256su0 v7.16b,v4.16b + orr v2.16b,v0.16b,v0.16b +.inst 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s +.inst 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s +.inst 0x5e0660a7 //sha256su1 v7.16b,v5.16b,v6.16b + ld1 {v17.4s},[x3],#16 + add v16.4s,v16.4s,v4.4s +.inst 0x5e2828a4 //sha256su0 v4.16b,v5.16b + orr v2.16b,v0.16b,v0.16b +.inst 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s +.inst 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s +.inst 0x5e0760c4 //sha256su1 v4.16b,v6.16b,v7.16b + ld1 {v16.4s},[x3],#16 + add v17.4s,v17.4s,v5.4s +.inst 0x5e2828c5 //sha256su0 v5.16b,v6.16b + orr v2.16b,v0.16b,v0.16b +.inst 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s +.inst 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s +.inst 0x5e0460e5 //sha256su1 v5.16b,v7.16b,v4.16b + ld1 {v17.4s},[x3],#16 + add v16.4s,v16.4s,v6.4s +.inst 0x5e2828e6 //sha256su0 v6.16b,v7.16b + orr v2.16b,v0.16b,v0.16b +.inst 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s +.inst 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s +.inst 0x5e056086 //sha256su1 v6.16b,v4.16b,v5.16b + ld1 {v16.4s},[x3],#16 + add v17.4s,v17.4s,v7.4s +.inst 0x5e282887 //sha256su0 v7.16b,v4.16b + orr v2.16b,v0.16b,v0.16b +.inst 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s +.inst 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s +.inst 0x5e0660a7 //sha256su1 v7.16b,v5.16b,v6.16b + ld1 {v17.4s},[x3],#16 + add v16.4s,v16.4s,v4.4s +.inst 0x5e2828a4 //sha256su0 v4.16b,v5.16b + orr v2.16b,v0.16b,v0.16b +.inst 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s +.inst 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s +.inst 0x5e0760c4 //sha256su1 v4.16b,v6.16b,v7.16b + ld1 {v16.4s},[x3],#16 + add v17.4s,v17.4s,v5.4s +.inst 0x5e2828c5 //sha256su0 v5.16b,v6.16b + orr v2.16b,v0.16b,v0.16b +.inst 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s +.inst 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s +.inst 0x5e0460e5 //sha256su1 v5.16b,v7.16b,v4.16b + ld1 {v17.4s},[x3],#16 + add v16.4s,v16.4s,v6.4s +.inst 0x5e2828e6 //sha256su0 v6.16b,v7.16b + orr v2.16b,v0.16b,v0.16b +.inst 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s +.inst 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s +.inst 0x5e056086 //sha256su1 v6.16b,v4.16b,v5.16b + ld1 {v16.4s},[x3],#16 + add v17.4s,v17.4s,v7.4s +.inst 0x5e282887 //sha256su0 v7.16b,v4.16b + orr v2.16b,v0.16b,v0.16b +.inst 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s +.inst 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s +.inst 0x5e0660a7 //sha256su1 v7.16b,v5.16b,v6.16b + ld1 {v17.4s},[x3],#16 + add v16.4s,v16.4s,v4.4s + orr v2.16b,v0.16b,v0.16b +.inst 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s +.inst 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s + + ld1 {v16.4s},[x3],#16 + add v17.4s,v17.4s,v5.4s + orr v2.16b,v0.16b,v0.16b +.inst 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s +.inst 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s + + ld1 {v17.4s},[x3] + add v16.4s,v16.4s,v6.4s + sub x3,x3,#64*4-16 // rewind + orr v2.16b,v0.16b,v0.16b +.inst 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s +.inst 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s + + add v17.4s,v17.4s,v7.4s + orr v2.16b,v0.16b,v0.16b +.inst 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s +.inst 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s + + add v0.4s,v0.4s,v18.4s + add v1.4s,v1.4s,v19.4s + + cbnz x2,.Loop_hw + + st1 {v0.4s,v1.4s},[x0] + + ldr x29,[sp],#16 + ret +.size sha256_block_armv8,.-sha256_block_armv8 +#endif +#ifdef __KERNEL__ +.globl sha256_block_neon +#endif +.type sha256_block_neon,%function +.align 4 +sha256_block_neon: +.Lneon_entry: + stp x29, x30, [sp, #-16]! + mov x29, sp + sub sp,sp,#16*4 + + adr x16,.LK256 + add x2,x1,x2,lsl#6 // len to point at the end of inp + + ld1 {v0.16b},[x1], #16 + ld1 {v1.16b},[x1], #16 + ld1 {v2.16b},[x1], #16 + ld1 {v3.16b},[x1], #16 + ld1 {v4.4s},[x16], #16 + ld1 {v5.4s},[x16], #16 + ld1 {v6.4s},[x16], #16 + ld1 {v7.4s},[x16], #16 + rev32 v0.16b,v0.16b // yes, even on + rev32 v1.16b,v1.16b // big-endian + rev32 v2.16b,v2.16b + rev32 v3.16b,v3.16b + mov x17,sp + add v4.4s,v4.4s,v0.4s + add v5.4s,v5.4s,v1.4s + add v6.4s,v6.4s,v2.4s + st1 {v4.4s,v5.4s},[x17], #32 + add v7.4s,v7.4s,v3.4s + st1 {v6.4s,v7.4s},[x17] + sub x17,x17,#32 + + ldp w3,w4,[x0] + ldp w5,w6,[x0,#8] + ldp w7,w8,[x0,#16] + ldp w9,w10,[x0,#24] + ldr w12,[sp,#0] + mov w13,wzr + eor w14,w4,w5 + mov w15,wzr + b .L_00_48 + +.align 4 +.L_00_48: + ext v4.16b,v0.16b,v1.16b,#4 + add w10,w10,w12 + add w3,w3,w15 + and w12,w8,w7 + bic w15,w9,w7 + ext v7.16b,v2.16b,v3.16b,#4 + eor w11,w7,w7,ror#5 + add w3,w3,w13 + mov d19,v3.d[1] + orr w12,w12,w15 + eor w11,w11,w7,ror#19 + ushr v6.4s,v4.4s,#7 + eor w15,w3,w3,ror#11 + ushr v5.4s,v4.4s,#3 + add w10,w10,w12 + add v0.4s,v0.4s,v7.4s + ror w11,w11,#6 + sli v6.4s,v4.4s,#25 + eor w13,w3,w4 + eor w15,w15,w3,ror#20 + ushr v7.4s,v4.4s,#18 + add w10,w10,w11 + ldr w12,[sp,#4] + and w14,w14,w13 + eor v5.16b,v5.16b,v6.16b + ror w15,w15,#2 + add w6,w6,w10 + sli v7.4s,v4.4s,#14 + eor w14,w14,w4 + ushr v16.4s,v19.4s,#17 + add w9,w9,w12 + add w10,w10,w15 + and w12,w7,w6 + eor v5.16b,v5.16b,v7.16b + bic w15,w8,w6 + eor w11,w6,w6,ror#5 + sli v16.4s,v19.4s,#15 + add w10,w10,w14 + orr w12,w12,w15 + ushr v17.4s,v19.4s,#10 + eor w11,w11,w6,ror#19 + eor w15,w10,w10,ror#11 + ushr v7.4s,v19.4s,#19 + add w9,w9,w12 + ror w11,w11,#6 + add v0.4s,v0.4s,v5.4s + eor w14,w10,w3 + eor w15,w15,w10,ror#20 + sli v7.4s,v19.4s,#13 + add w9,w9,w11 + ldr w12,[sp,#8] + and w13,w13,w14 + eor v17.16b,v17.16b,v16.16b + ror w15,w15,#2 + add w5,w5,w9 + eor w13,w13,w3 + eor v17.16b,v17.16b,v7.16b + add w8,w8,w12 + add w9,w9,w15 + and w12,w6,w5 + add v0.4s,v0.4s,v17.4s + bic w15,w7,w5 + eor w11,w5,w5,ror#5 + add w9,w9,w13 + ushr v18.4s,v0.4s,#17 + orr w12,w12,w15 + ushr v19.4s,v0.4s,#10 + eor w11,w11,w5,ror#19 + eor w15,w9,w9,ror#11 + sli v18.4s,v0.4s,#15 + add w8,w8,w12 + ushr v17.4s,v0.4s,#19 + ror w11,w11,#6 + eor w13,w9,w10 + eor v19.16b,v19.16b,v18.16b + eor w15,w15,w9,ror#20 + add w8,w8,w11 + sli v17.4s,v0.4s,#13 + ldr w12,[sp,#12] + and w14,w14,w13 + ror w15,w15,#2 + ld1 {v4.4s},[x16], #16 + add w4,w4,w8 + eor v19.16b,v19.16b,v17.16b + eor w14,w14,w10 + eor v17.16b,v17.16b,v17.16b + add w7,w7,w12 + add w8,w8,w15 + and w12,w5,w4 + mov v17.d[1],v19.d[0] + bic w15,w6,w4 + eor w11,w4,w4,ror#5 + add w8,w8,w14 + add v0.4s,v0.4s,v17.4s + orr w12,w12,w15 + eor w11,w11,w4,ror#19 + eor w15,w8,w8,ror#11 + add v4.4s,v4.4s,v0.4s + add w7,w7,w12 + ror w11,w11,#6 + eor w14,w8,w9 + eor w15,w15,w8,ror#20 + add w7,w7,w11 + ldr w12,[sp,#16] + and w13,w13,w14 + ror w15,w15,#2 + add w3,w3,w7 + eor w13,w13,w9 + st1 {v4.4s},[x17], #16 + ext v4.16b,v1.16b,v2.16b,#4 + add w6,w6,w12 + add w7,w7,w15 + and w12,w4,w3 + bic w15,w5,w3 + ext v7.16b,v3.16b,v0.16b,#4 + eor w11,w3,w3,ror#5 + add w7,w7,w13 + mov d19,v0.d[1] + orr w12,w12,w15 + eor w11,w11,w3,ror#19 + ushr v6.4s,v4.4s,#7 + eor w15,w7,w7,ror#11 + ushr v5.4s,v4.4s,#3 + add w6,w6,w12 + add v1.4s,v1.4s,v7.4s + ror w11,w11,#6 + sli v6.4s,v4.4s,#25 + eor w13,w7,w8 + eor w15,w15,w7,ror#20 + ushr v7.4s,v4.4s,#18 + add w6,w6,w11 + ldr w12,[sp,#20] + and w14,w14,w13 + eor v5.16b,v5.16b,v6.16b + ror w15,w15,#2 + add w10,w10,w6 + sli v7.4s,v4.4s,#14 + eor w14,w14,w8 + ushr v16.4s,v19.4s,#17 + add w5,w5,w12 + add w6,w6,w15 + and w12,w3,w10 + eor v5.16b,v5.16b,v7.16b + bic w15,w4,w10 + eor w11,w10,w10,ror#5 + sli v16.4s,v19.4s,#15 + add w6,w6,w14 + orr w12,w12,w15 + ushr v17.4s,v19.4s,#10 + eor w11,w11,w10,ror#19 + eor w15,w6,w6,ror#11 + ushr v7.4s,v19.4s,#19 + add w5,w5,w12 + ror w11,w11,#6 + add v1.4s,v1.4s,v5.4s + eor w14,w6,w7 + eor w15,w15,w6,ror#20 + sli v7.4s,v19.4s,#13 + add w5,w5,w11 + ldr w12,[sp,#24] + and w13,w13,w14 + eor v17.16b,v17.16b,v16.16b + ror w15,w15,#2 + add w9,w9,w5 + eor w13,w13,w7 + eor v17.16b,v17.16b,v7.16b + add w4,w4,w12 + add w5,w5,w15 + and w12,w10,w9 + add v1.4s,v1.4s,v17.4s + bic w15,w3,w9 + eor w11,w9,w9,ror#5 + add w5,w5,w13 + ushr v18.4s,v1.4s,#17 + orr w12,w12,w15 + ushr v19.4s,v1.4s,#10 + eor w11,w11,w9,ror#19 + eor w15,w5,w5,ror#11 + sli v18.4s,v1.4s,#15 + add w4,w4,w12 + ushr v17.4s,v1.4s,#19 + ror w11,w11,#6 + eor w13,w5,w6 + eor v19.16b,v19.16b,v18.16b + eor w15,w15,w5,ror#20 + add w4,w4,w11 + sli v17.4s,v1.4s,#13 + ldr w12,[sp,#28] + and w14,w14,w13 + ror w15,w15,#2 + ld1 {v4.4s},[x16], #16 + add w8,w8,w4 + eor v19.16b,v19.16b,v17.16b + eor w14,w14,w6 + eor v17.16b,v17.16b,v17.16b + add w3,w3,w12 + add w4,w4,w15 + and w12,w9,w8 + mov v17.d[1],v19.d[0] + bic w15,w10,w8 + eor w11,w8,w8,ror#5 + add w4,w4,w14 + add v1.4s,v1.4s,v17.4s + orr w12,w12,w15 + eor w11,w11,w8,ror#19 + eor w15,w4,w4,ror#11 + add v4.4s,v4.4s,v1.4s + add w3,w3,w12 + ror w11,w11,#6 + eor w14,w4,w5 + eor w15,w15,w4,ror#20 + add w3,w3,w11 + ldr w12,[sp,#32] + and w13,w13,w14 + ror w15,w15,#2 + add w7,w7,w3 + eor w13,w13,w5 + st1 {v4.4s},[x17], #16 + ext v4.16b,v2.16b,v3.16b,#4 + add w10,w10,w12 + add w3,w3,w15 + and w12,w8,w7 + bic w15,w9,w7 + ext v7.16b,v0.16b,v1.16b,#4 + eor w11,w7,w7,ror#5 + add w3,w3,w13 + mov d19,v1.d[1] + orr w12,w12,w15 + eor w11,w11,w7,ror#19 + ushr v6.4s,v4.4s,#7 + eor w15,w3,w3,ror#11 + ushr v5.4s,v4.4s,#3 + add w10,w10,w12 + add v2.4s,v2.4s,v7.4s + ror w11,w11,#6 + sli v6.4s,v4.4s,#25 + eor w13,w3,w4 + eor w15,w15,w3,ror#20 + ushr v7.4s,v4.4s,#18 + add w10,w10,w11 + ldr w12,[sp,#36] + and w14,w14,w13 + eor v5.16b,v5.16b,v6.16b + ror w15,w15,#2 + add w6,w6,w10 + sli v7.4s,v4.4s,#14 + eor w14,w14,w4 + ushr v16.4s,v19.4s,#17 + add w9,w9,w12 + add w10,w10,w15 + and w12,w7,w6 + eor v5.16b,v5.16b,v7.16b + bic w15,w8,w6 + eor w11,w6,w6,ror#5 + sli v16.4s,v19.4s,#15 + add w10,w10,w14 + orr w12,w12,w15 + ushr v17.4s,v19.4s,#10 + eor w11,w11,w6,ror#19 + eor w15,w10,w10,ror#11 + ushr v7.4s,v19.4s,#19 + add w9,w9,w12 + ror w11,w11,#6 + add v2.4s,v2.4s,v5.4s + eor w14,w10,w3 + eor w15,w15,w10,ror#20 + sli v7.4s,v19.4s,#13 + add w9,w9,w11 + ldr w12,[sp,#40] + and w13,w13,w14 + eor v17.16b,v17.16b,v16.16b + ror w15,w15,#2 + add w5,w5,w9 + eor w13,w13,w3 + eor v17.16b,v17.16b,v7.16b + add w8,w8,w12 + add w9,w9,w15 + and w12,w6,w5 + add v2.4s,v2.4s,v17.4s + bic w15,w7,w5 + eor w11,w5,w5,ror#5 + add w9,w9,w13 + ushr v18.4s,v2.4s,#17 + orr w12,w12,w15 + ushr v19.4s,v2.4s,#10 + eor w11,w11,w5,ror#19 + eor w15,w9,w9,ror#11 + sli v18.4s,v2.4s,#15 + add w8,w8,w12 + ushr v17.4s,v2.4s,#19 + ror w11,w11,#6 + eor w13,w9,w10 + eor v19.16b,v19.16b,v18.16b + eor w15,w15,w9,ror#20 + add w8,w8,w11 + sli v17.4s,v2.4s,#13 + ldr w12,[sp,#44] + and w14,w14,w13 + ror w15,w15,#2 + ld1 {v4.4s},[x16], #16 + add w4,w4,w8 + eor v19.16b,v19.16b,v17.16b + eor w14,w14,w10 + eor v17.16b,v17.16b,v17.16b + add w7,w7,w12 + add w8,w8,w15 + and w12,w5,w4 + mov v17.d[1],v19.d[0] + bic w15,w6,w4 + eor w11,w4,w4,ror#5 + add w8,w8,w14 + add v2.4s,v2.4s,v17.4s + orr w12,w12,w15 + eor w11,w11,w4,ror#19 + eor w15,w8,w8,ror#11 + add v4.4s,v4.4s,v2.4s + add w7,w7,w12 + ror w11,w11,#6 + eor w14,w8,w9 + eor w15,w15,w8,ror#20 + add w7,w7,w11 + ldr w12,[sp,#48] + and w13,w13,w14 + ror w15,w15,#2 + add w3,w3,w7 + eor w13,w13,w9 + st1 {v4.4s},[x17], #16 + ext v4.16b,v3.16b,v0.16b,#4 + add w6,w6,w12 + add w7,w7,w15 + and w12,w4,w3 + bic w15,w5,w3 + ext v7.16b,v1.16b,v2.16b,#4 + eor w11,w3,w3,ror#5 + add w7,w7,w13 + mov d19,v2.d[1] + orr w12,w12,w15 + eor w11,w11,w3,ror#19 + ushr v6.4s,v4.4s,#7 + eor w15,w7,w7,ror#11 + ushr v5.4s,v4.4s,#3 + add w6,w6,w12 + add v3.4s,v3.4s,v7.4s + ror w11,w11,#6 + sli v6.4s,v4.4s,#25 + eor w13,w7,w8 + eor w15,w15,w7,ror#20 + ushr v7.4s,v4.4s,#18 + add w6,w6,w11 + ldr w12,[sp,#52] + and w14,w14,w13 + eor v5.16b,v5.16b,v6.16b + ror w15,w15,#2 + add w10,w10,w6 + sli v7.4s,v4.4s,#14 + eor w14,w14,w8 + ushr v16.4s,v19.4s,#17 + add w5,w5,w12 + add w6,w6,w15 + and w12,w3,w10 + eor v5.16b,v5.16b,v7.16b + bic w15,w4,w10 + eor w11,w10,w10,ror#5 + sli v16.4s,v19.4s,#15 + add w6,w6,w14 + orr w12,w12,w15 + ushr v17.4s,v19.4s,#10 + eor w11,w11,w10,ror#19 + eor w15,w6,w6,ror#11 + ushr v7.4s,v19.4s,#19 + add w5,w5,w12 + ror w11,w11,#6 + add v3.4s,v3.4s,v5.4s + eor w14,w6,w7 + eor w15,w15,w6,ror#20 + sli v7.4s,v19.4s,#13 + add w5,w5,w11 + ldr w12,[sp,#56] + and w13,w13,w14 + eor v17.16b,v17.16b,v16.16b + ror w15,w15,#2 + add w9,w9,w5 + eor w13,w13,w7 + eor v17.16b,v17.16b,v7.16b + add w4,w4,w12 + add w5,w5,w15 + and w12,w10,w9 + add v3.4s,v3.4s,v17.4s + bic w15,w3,w9 + eor w11,w9,w9,ror#5 + add w5,w5,w13 + ushr v18.4s,v3.4s,#17 + orr w12,w12,w15 + ushr v19.4s,v3.4s,#10 + eor w11,w11,w9,ror#19 + eor w15,w5,w5,ror#11 + sli v18.4s,v3.4s,#15 + add w4,w4,w12 + ushr v17.4s,v3.4s,#19 + ror w11,w11,#6 + eor w13,w5,w6 + eor v19.16b,v19.16b,v18.16b + eor w15,w15,w5,ror#20 + add w4,w4,w11 + sli v17.4s,v3.4s,#13 + ldr w12,[sp,#60] + and w14,w14,w13 + ror w15,w15,#2 + ld1 {v4.4s},[x16], #16 + add w8,w8,w4 + eor v19.16b,v19.16b,v17.16b + eor w14,w14,w6 + eor v17.16b,v17.16b,v17.16b + add w3,w3,w12 + add w4,w4,w15 + and w12,w9,w8 + mov v17.d[1],v19.d[0] + bic w15,w10,w8 + eor w11,w8,w8,ror#5 + add w4,w4,w14 + add v3.4s,v3.4s,v17.4s + orr w12,w12,w15 + eor w11,w11,w8,ror#19 + eor w15,w4,w4,ror#11 + add v4.4s,v4.4s,v3.4s + add w3,w3,w12 + ror w11,w11,#6 + eor w14,w4,w5 + eor w15,w15,w4,ror#20 + add w3,w3,w11 + ldr w12,[x16] + and w13,w13,w14 + ror w15,w15,#2 + add w7,w7,w3 + eor w13,w13,w5 + st1 {v4.4s},[x17], #16 + cmp w12,#0 // check for K256 terminator + ldr w12,[sp,#0] + sub x17,x17,#64 + bne .L_00_48 + + sub x16,x16,#256 // rewind x16 + cmp x1,x2 + mov x17, #64 + csel x17, x17, xzr, eq + sub x1,x1,x17 // avoid SEGV + mov x17,sp + add w10,w10,w12 + add w3,w3,w15 + and w12,w8,w7 + ld1 {v0.16b},[x1],#16 + bic w15,w9,w7 + eor w11,w7,w7,ror#5 + ld1 {v4.4s},[x16],#16 + add w3,w3,w13 + orr w12,w12,w15 + eor w11,w11,w7,ror#19 + eor w15,w3,w3,ror#11 + rev32 v0.16b,v0.16b + add w10,w10,w12 + ror w11,w11,#6 + eor w13,w3,w4 + eor w15,w15,w3,ror#20 + add v4.4s,v4.4s,v0.4s + add w10,w10,w11 + ldr w12,[sp,#4] + and w14,w14,w13 + ror w15,w15,#2 + add w6,w6,w10 + eor w14,w14,w4 + add w9,w9,w12 + add w10,w10,w15 + and w12,w7,w6 + bic w15,w8,w6 + eor w11,w6,w6,ror#5 + add w10,w10,w14 + orr w12,w12,w15 + eor w11,w11,w6,ror#19 + eor w15,w10,w10,ror#11 + add w9,w9,w12 + ror w11,w11,#6 + eor w14,w10,w3 + eor w15,w15,w10,ror#20 + add w9,w9,w11 + ldr w12,[sp,#8] + and w13,w13,w14 + ror w15,w15,#2 + add w5,w5,w9 + eor w13,w13,w3 + add w8,w8,w12 + add w9,w9,w15 + and w12,w6,w5 + bic w15,w7,w5 + eor w11,w5,w5,ror#5 + add w9,w9,w13 + orr w12,w12,w15 + eor w11,w11,w5,ror#19 + eor w15,w9,w9,ror#11 + add w8,w8,w12 + ror w11,w11,#6 + eor w13,w9,w10 + eor w15,w15,w9,ror#20 + add w8,w8,w11 + ldr w12,[sp,#12] + and w14,w14,w13 + ror w15,w15,#2 + add w4,w4,w8 + eor w14,w14,w10 + add w7,w7,w12 + add w8,w8,w15 + and w12,w5,w4 + bic w15,w6,w4 + eor w11,w4,w4,ror#5 + add w8,w8,w14 + orr w12,w12,w15 + eor w11,w11,w4,ror#19 + eor w15,w8,w8,ror#11 + add w7,w7,w12 + ror w11,w11,#6 + eor w14,w8,w9 + eor w15,w15,w8,ror#20 + add w7,w7,w11 + ldr w12,[sp,#16] + and w13,w13,w14 + ror w15,w15,#2 + add w3,w3,w7 + eor w13,w13,w9 + st1 {v4.4s},[x17], #16 + add w6,w6,w12 + add w7,w7,w15 + and w12,w4,w3 + ld1 {v1.16b},[x1],#16 + bic w15,w5,w3 + eor w11,w3,w3,ror#5 + ld1 {v4.4s},[x16],#16 + add w7,w7,w13 + orr w12,w12,w15 + eor w11,w11,w3,ror#19 + eor w15,w7,w7,ror#11 + rev32 v1.16b,v1.16b + add w6,w6,w12 + ror w11,w11,#6 + eor w13,w7,w8 + eor w15,w15,w7,ror#20 + add v4.4s,v4.4s,v1.4s + add w6,w6,w11 + ldr w12,[sp,#20] + and w14,w14,w13 + ror w15,w15,#2 + add w10,w10,w6 + eor w14,w14,w8 + add w5,w5,w12 + add w6,w6,w15 + and w12,w3,w10 + bic w15,w4,w10 + eor w11,w10,w10,ror#5 + add w6,w6,w14 + orr w12,w12,w15 + eor w11,w11,w10,ror#19 + eor w15,w6,w6,ror#11 + add w5,w5,w12 + ror w11,w11,#6 + eor w14,w6,w7 + eor w15,w15,w6,ror#20 + add w5,w5,w11 + ldr w12,[sp,#24] + and w13,w13,w14 + ror w15,w15,#2 + add w9,w9,w5 + eor w13,w13,w7 + add w4,w4,w12 + add w5,w5,w15 + and w12,w10,w9 + bic w15,w3,w9 + eor w11,w9,w9,ror#5 + add w5,w5,w13 + orr w12,w12,w15 + eor w11,w11,w9,ror#19 + eor w15,w5,w5,ror#11 + add w4,w4,w12 + ror w11,w11,#6 + eor w13,w5,w6 + eor w15,w15,w5,ror#20 + add w4,w4,w11 + ldr w12,[sp,#28] + and w14,w14,w13 + ror w15,w15,#2 + add w8,w8,w4 + eor w14,w14,w6 + add w3,w3,w12 + add w4,w4,w15 + and w12,w9,w8 + bic w15,w10,w8 + eor w11,w8,w8,ror#5 + add w4,w4,w14 + orr w12,w12,w15 + eor w11,w11,w8,ror#19 + eor w15,w4,w4,ror#11 + add w3,w3,w12 + ror w11,w11,#6 + eor w14,w4,w5 + eor w15,w15,w4,ror#20 + add w3,w3,w11 + ldr w12,[sp,#32] + and w13,w13,w14 + ror w15,w15,#2 + add w7,w7,w3 + eor w13,w13,w5 + st1 {v4.4s},[x17], #16 + add w10,w10,w12 + add w3,w3,w15 + and w12,w8,w7 + ld1 {v2.16b},[x1],#16 + bic w15,w9,w7 + eor w11,w7,w7,ror#5 + ld1 {v4.4s},[x16],#16 + add w3,w3,w13 + orr w12,w12,w15 + eor w11,w11,w7,ror#19 + eor w15,w3,w3,ror#11 + rev32 v2.16b,v2.16b + add w10,w10,w12 + ror w11,w11,#6 + eor w13,w3,w4 + eor w15,w15,w3,ror#20 + add v4.4s,v4.4s,v2.4s + add w10,w10,w11 + ldr w12,[sp,#36] + and w14,w14,w13 + ror w15,w15,#2 + add w6,w6,w10 + eor w14,w14,w4 + add w9,w9,w12 + add w10,w10,w15 + and w12,w7,w6 + bic w15,w8,w6 + eor w11,w6,w6,ror#5 + add w10,w10,w14 + orr w12,w12,w15 + eor w11,w11,w6,ror#19 + eor w15,w10,w10,ror#11 + add w9,w9,w12 + ror w11,w11,#6 + eor w14,w10,w3 + eor w15,w15,w10,ror#20 + add w9,w9,w11 + ldr w12,[sp,#40] + and w13,w13,w14 + ror w15,w15,#2 + add w5,w5,w9 + eor w13,w13,w3 + add w8,w8,w12 + add w9,w9,w15 + and w12,w6,w5 + bic w15,w7,w5 + eor w11,w5,w5,ror#5 + add w9,w9,w13 + orr w12,w12,w15 + eor w11,w11,w5,ror#19 + eor w15,w9,w9,ror#11 + add w8,w8,w12 + ror w11,w11,#6 + eor w13,w9,w10 + eor w15,w15,w9,ror#20 + add w8,w8,w11 + ldr w12,[sp,#44] + and w14,w14,w13 + ror w15,w15,#2 + add w4,w4,w8 + eor w14,w14,w10 + add w7,w7,w12 + add w8,w8,w15 + and w12,w5,w4 + bic w15,w6,w4 + eor w11,w4,w4,ror#5 + add w8,w8,w14 + orr w12,w12,w15 + eor w11,w11,w4,ror#19 + eor w15,w8,w8,ror#11 + add w7,w7,w12 + ror w11,w11,#6 + eor w14,w8,w9 + eor w15,w15,w8,ror#20 + add w7,w7,w11 + ldr w12,[sp,#48] + and w13,w13,w14 + ror w15,w15,#2 + add w3,w3,w7 + eor w13,w13,w9 + st1 {v4.4s},[x17], #16 + add w6,w6,w12 + add w7,w7,w15 + and w12,w4,w3 + ld1 {v3.16b},[x1],#16 + bic w15,w5,w3 + eor w11,w3,w3,ror#5 + ld1 {v4.4s},[x16],#16 + add w7,w7,w13 + orr w12,w12,w15 + eor w11,w11,w3,ror#19 + eor w15,w7,w7,ror#11 + rev32 v3.16b,v3.16b + add w6,w6,w12 + ror w11,w11,#6 + eor w13,w7,w8 + eor w15,w15,w7,ror#20 + add v4.4s,v4.4s,v3.4s + add w6,w6,w11 + ldr w12,[sp,#52] + and w14,w14,w13 + ror w15,w15,#2 + add w10,w10,w6 + eor w14,w14,w8 + add w5,w5,w12 + add w6,w6,w15 + and w12,w3,w10 + bic w15,w4,w10 + eor w11,w10,w10,ror#5 + add w6,w6,w14 + orr w12,w12,w15 + eor w11,w11,w10,ror#19 + eor w15,w6,w6,ror#11 + add w5,w5,w12 + ror w11,w11,#6 + eor w14,w6,w7 + eor w15,w15,w6,ror#20 + add w5,w5,w11 + ldr w12,[sp,#56] + and w13,w13,w14 + ror w15,w15,#2 + add w9,w9,w5 + eor w13,w13,w7 + add w4,w4,w12 + add w5,w5,w15 + and w12,w10,w9 + bic w15,w3,w9 + eor w11,w9,w9,ror#5 + add w5,w5,w13 + orr w12,w12,w15 + eor w11,w11,w9,ror#19 + eor w15,w5,w5,ror#11 + add w4,w4,w12 + ror w11,w11,#6 + eor w13,w5,w6 + eor w15,w15,w5,ror#20 + add w4,w4,w11 + ldr w12,[sp,#60] + and w14,w14,w13 + ror w15,w15,#2 + add w8,w8,w4 + eor w14,w14,w6 + add w3,w3,w12 + add w4,w4,w15 + and w12,w9,w8 + bic w15,w10,w8 + eor w11,w8,w8,ror#5 + add w4,w4,w14 + orr w12,w12,w15 + eor w11,w11,w8,ror#19 + eor w15,w4,w4,ror#11 + add w3,w3,w12 + ror w11,w11,#6 + eor w14,w4,w5 + eor w15,w15,w4,ror#20 + add w3,w3,w11 + and w13,w13,w14 + ror w15,w15,#2 + add w7,w7,w3 + eor w13,w13,w5 + st1 {v4.4s},[x17], #16 + add w3,w3,w15 // h+=Sigma0(a) from the past + ldp w11,w12,[x0,#0] + add w3,w3,w13 // h+=Maj(a,b,c) from the past + ldp w13,w14,[x0,#8] + add w3,w3,w11 // accumulate + add w4,w4,w12 + ldp w11,w12,[x0,#16] + add w5,w5,w13 + add w6,w6,w14 + ldp w13,w14,[x0,#24] + add w7,w7,w11 + add w8,w8,w12 + ldr w12,[sp,#0] + stp w3,w4,[x0,#0] + add w9,w9,w13 + mov w13,wzr + stp w5,w6,[x0,#8] + add w10,w10,w14 + stp w7,w8,[x0,#16] + eor w14,w4,w5 + stp w9,w10,[x0,#24] + mov w15,wzr + mov x17,sp + b.ne .L_00_48 + + ldr x29,[x29] + add sp,sp,#16*4+16 + ret +.size sha256_block_neon,.-sha256_block_neon diff --git a/vere/ext/openssl/gen/linux-aarch64/crypto/sha/sha512-armv8.S b/vere/ext/openssl/gen/linux-aarch64/crypto/sha/sha512-armv8.S new file mode 100644 index 0000000..31e4550 --- /dev/null +++ b/vere/ext/openssl/gen/linux-aarch64/crypto/sha/sha512-armv8.S @@ -0,0 +1,1618 @@ +// Copyright 2014-2020 The OpenSSL Project Authors. All Rights Reserved. +// +// Licensed under the OpenSSL license (the "License"). You may not use +// this file except in compliance with the License. You can obtain a copy +// in the file LICENSE in the source distribution or at +// https://www.openssl.org/source/license.html + +// ==================================================================== +// Written by Andy Polyakov for the OpenSSL +// project. The module is, however, dual licensed under OpenSSL and +// CRYPTOGAMS licenses depending on where you obtain it. For further +// details see http://www.openssl.org/~appro/cryptogams/. +// +// Permission to use under GPLv2 terms is granted. +// ==================================================================== +// +// SHA256/512 for ARMv8. +// +// Performance in cycles per processed byte and improvement coefficient +// over code generated with "default" compiler: +// +// SHA256-hw SHA256(*) SHA512 +// Apple A7 1.97 10.5 (+33%) 6.73 (-1%(**)) +// Cortex-A53 2.38 15.5 (+115%) 10.0 (+150%(***)) +// Cortex-A57 2.31 11.6 (+86%) 7.51 (+260%(***)) +// Denver 2.01 10.5 (+26%) 6.70 (+8%) +// X-Gene 20.0 (+100%) 12.8 (+300%(***)) +// Mongoose 2.36 13.0 (+50%) 8.36 (+33%) +// Kryo 1.92 17.4 (+30%) 11.2 (+8%) +// +// (*) Software SHA256 results are of lesser relevance, presented +// mostly for informational purposes. +// (**) The result is a trade-off: it's possible to improve it by +// 10% (or by 1 cycle per round), but at the cost of 20% loss +// on Cortex-A53 (or by 4 cycles per round). +// (***) Super-impressive coefficients over gcc-generated code are +// indication of some compiler "pathology", most notably code +// generated with -mgeneral-regs-only is significantly faster +// and the gap is only 40-90%. +// +// October 2016. +// +// Originally it was reckoned that it makes no sense to implement NEON +// version of SHA256 for 64-bit processors. This is because performance +// improvement on most wide-spread Cortex-A5x processors was observed +// to be marginal, same on Cortex-A53 and ~10% on A57. But then it was +// observed that 32-bit NEON SHA256 performs significantly better than +// 64-bit scalar version on *some* of the more recent processors. As +// result 64-bit NEON version of SHA256 was added to provide best +// all-round performance. For example it executes ~30% faster on X-Gene +// and Mongoose. [For reference, NEON version of SHA512 is bound to +// deliver much less improvement, likely *negative* on Cortex-A5x. +// Which is why NEON support is limited to SHA256.] + +#ifndef __KERNEL__ +# include "arm_arch.h" +#endif + +.text + + +.hidden OPENSSL_armcap_P +.globl sha512_block_data_order +.type sha512_block_data_order,%function +.align 6 +sha512_block_data_order: +#ifndef __KERNEL__ +# ifdef __ILP32__ + ldrsw x16,.LOPENSSL_armcap_P +# else + ldr x16,.LOPENSSL_armcap_P +# endif + adr x17,.LOPENSSL_armcap_P + add x16,x16,x17 + ldr w16,[x16] + tst w16,#ARMV8_SHA512 + b.ne .Lv8_entry +#endif +.inst 0xd503233f // paciasp + stp x29,x30,[sp,#-128]! + add x29,sp,#0 + + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + stp x23,x24,[sp,#48] + stp x25,x26,[sp,#64] + stp x27,x28,[sp,#80] + sub sp,sp,#4*8 + + ldp x20,x21,[x0] // load context + ldp x22,x23,[x0,#2*8] + ldp x24,x25,[x0,#4*8] + add x2,x1,x2,lsl#7 // end of input + ldp x26,x27,[x0,#6*8] + adr x30,.LK512 + stp x0,x2,[x29,#96] + +.Loop: + ldp x3,x4,[x1],#2*8 + ldr x19,[x30],#8 // *K++ + eor x28,x21,x22 // magic seed + str x1,[x29,#112] +#ifndef __AARCH64EB__ + rev x3,x3 // 0 +#endif + ror x16,x24,#14 + add x27,x27,x19 // h+=K[i] + eor x6,x24,x24,ror#23 + and x17,x25,x24 + bic x19,x26,x24 + add x27,x27,x3 // h+=X[i] + orr x17,x17,x19 // Ch(e,f,g) + eor x19,x20,x21 // a^b, b^c in next round + eor x16,x16,x6,ror#18 // Sigma1(e) + ror x6,x20,#28 + add x27,x27,x17 // h+=Ch(e,f,g) + eor x17,x20,x20,ror#5 + add x27,x27,x16 // h+=Sigma1(e) + and x28,x28,x19 // (b^c)&=(a^b) + add x23,x23,x27 // d+=h + eor x28,x28,x21 // Maj(a,b,c) + eor x17,x6,x17,ror#34 // Sigma0(a) + add x27,x27,x28 // h+=Maj(a,b,c) + ldr x28,[x30],#8 // *K++, x19 in next round + //add x27,x27,x17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev x4,x4 // 1 +#endif + ldp x5,x6,[x1],#2*8 + add x27,x27,x17 // h+=Sigma0(a) + ror x16,x23,#14 + add x26,x26,x28 // h+=K[i] + eor x7,x23,x23,ror#23 + and x17,x24,x23 + bic x28,x25,x23 + add x26,x26,x4 // h+=X[i] + orr x17,x17,x28 // Ch(e,f,g) + eor x28,x27,x20 // a^b, b^c in next round + eor x16,x16,x7,ror#18 // Sigma1(e) + ror x7,x27,#28 + add x26,x26,x17 // h+=Ch(e,f,g) + eor x17,x27,x27,ror#5 + add x26,x26,x16 // h+=Sigma1(e) + and x19,x19,x28 // (b^c)&=(a^b) + add x22,x22,x26 // d+=h + eor x19,x19,x20 // Maj(a,b,c) + eor x17,x7,x17,ror#34 // Sigma0(a) + add x26,x26,x19 // h+=Maj(a,b,c) + ldr x19,[x30],#8 // *K++, x28 in next round + //add x26,x26,x17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev x5,x5 // 2 +#endif + add x26,x26,x17 // h+=Sigma0(a) + ror x16,x22,#14 + add x25,x25,x19 // h+=K[i] + eor x8,x22,x22,ror#23 + and x17,x23,x22 + bic x19,x24,x22 + add x25,x25,x5 // h+=X[i] + orr x17,x17,x19 // Ch(e,f,g) + eor x19,x26,x27 // a^b, b^c in next round + eor x16,x16,x8,ror#18 // Sigma1(e) + ror x8,x26,#28 + add x25,x25,x17 // h+=Ch(e,f,g) + eor x17,x26,x26,ror#5 + add x25,x25,x16 // h+=Sigma1(e) + and x28,x28,x19 // (b^c)&=(a^b) + add x21,x21,x25 // d+=h + eor x28,x28,x27 // Maj(a,b,c) + eor x17,x8,x17,ror#34 // Sigma0(a) + add x25,x25,x28 // h+=Maj(a,b,c) + ldr x28,[x30],#8 // *K++, x19 in next round + //add x25,x25,x17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev x6,x6 // 3 +#endif + ldp x7,x8,[x1],#2*8 + add x25,x25,x17 // h+=Sigma0(a) + ror x16,x21,#14 + add x24,x24,x28 // h+=K[i] + eor x9,x21,x21,ror#23 + and x17,x22,x21 + bic x28,x23,x21 + add x24,x24,x6 // h+=X[i] + orr x17,x17,x28 // Ch(e,f,g) + eor x28,x25,x26 // a^b, b^c in next round + eor x16,x16,x9,ror#18 // Sigma1(e) + ror x9,x25,#28 + add x24,x24,x17 // h+=Ch(e,f,g) + eor x17,x25,x25,ror#5 + add x24,x24,x16 // h+=Sigma1(e) + and x19,x19,x28 // (b^c)&=(a^b) + add x20,x20,x24 // d+=h + eor x19,x19,x26 // Maj(a,b,c) + eor x17,x9,x17,ror#34 // Sigma0(a) + add x24,x24,x19 // h+=Maj(a,b,c) + ldr x19,[x30],#8 // *K++, x28 in next round + //add x24,x24,x17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev x7,x7 // 4 +#endif + add x24,x24,x17 // h+=Sigma0(a) + ror x16,x20,#14 + add x23,x23,x19 // h+=K[i] + eor x10,x20,x20,ror#23 + and x17,x21,x20 + bic x19,x22,x20 + add x23,x23,x7 // h+=X[i] + orr x17,x17,x19 // Ch(e,f,g) + eor x19,x24,x25 // a^b, b^c in next round + eor x16,x16,x10,ror#18 // Sigma1(e) + ror x10,x24,#28 + add x23,x23,x17 // h+=Ch(e,f,g) + eor x17,x24,x24,ror#5 + add x23,x23,x16 // h+=Sigma1(e) + and x28,x28,x19 // (b^c)&=(a^b) + add x27,x27,x23 // d+=h + eor x28,x28,x25 // Maj(a,b,c) + eor x17,x10,x17,ror#34 // Sigma0(a) + add x23,x23,x28 // h+=Maj(a,b,c) + ldr x28,[x30],#8 // *K++, x19 in next round + //add x23,x23,x17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev x8,x8 // 5 +#endif + ldp x9,x10,[x1],#2*8 + add x23,x23,x17 // h+=Sigma0(a) + ror x16,x27,#14 + add x22,x22,x28 // h+=K[i] + eor x11,x27,x27,ror#23 + and x17,x20,x27 + bic x28,x21,x27 + add x22,x22,x8 // h+=X[i] + orr x17,x17,x28 // Ch(e,f,g) + eor x28,x23,x24 // a^b, b^c in next round + eor x16,x16,x11,ror#18 // Sigma1(e) + ror x11,x23,#28 + add x22,x22,x17 // h+=Ch(e,f,g) + eor x17,x23,x23,ror#5 + add x22,x22,x16 // h+=Sigma1(e) + and x19,x19,x28 // (b^c)&=(a^b) + add x26,x26,x22 // d+=h + eor x19,x19,x24 // Maj(a,b,c) + eor x17,x11,x17,ror#34 // Sigma0(a) + add x22,x22,x19 // h+=Maj(a,b,c) + ldr x19,[x30],#8 // *K++, x28 in next round + //add x22,x22,x17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev x9,x9 // 6 +#endif + add x22,x22,x17 // h+=Sigma0(a) + ror x16,x26,#14 + add x21,x21,x19 // h+=K[i] + eor x12,x26,x26,ror#23 + and x17,x27,x26 + bic x19,x20,x26 + add x21,x21,x9 // h+=X[i] + orr x17,x17,x19 // Ch(e,f,g) + eor x19,x22,x23 // a^b, b^c in next round + eor x16,x16,x12,ror#18 // Sigma1(e) + ror x12,x22,#28 + add x21,x21,x17 // h+=Ch(e,f,g) + eor x17,x22,x22,ror#5 + add x21,x21,x16 // h+=Sigma1(e) + and x28,x28,x19 // (b^c)&=(a^b) + add x25,x25,x21 // d+=h + eor x28,x28,x23 // Maj(a,b,c) + eor x17,x12,x17,ror#34 // Sigma0(a) + add x21,x21,x28 // h+=Maj(a,b,c) + ldr x28,[x30],#8 // *K++, x19 in next round + //add x21,x21,x17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev x10,x10 // 7 +#endif + ldp x11,x12,[x1],#2*8 + add x21,x21,x17 // h+=Sigma0(a) + ror x16,x25,#14 + add x20,x20,x28 // h+=K[i] + eor x13,x25,x25,ror#23 + and x17,x26,x25 + bic x28,x27,x25 + add x20,x20,x10 // h+=X[i] + orr x17,x17,x28 // Ch(e,f,g) + eor x28,x21,x22 // a^b, b^c in next round + eor x16,x16,x13,ror#18 // Sigma1(e) + ror x13,x21,#28 + add x20,x20,x17 // h+=Ch(e,f,g) + eor x17,x21,x21,ror#5 + add x20,x20,x16 // h+=Sigma1(e) + and x19,x19,x28 // (b^c)&=(a^b) + add x24,x24,x20 // d+=h + eor x19,x19,x22 // Maj(a,b,c) + eor x17,x13,x17,ror#34 // Sigma0(a) + add x20,x20,x19 // h+=Maj(a,b,c) + ldr x19,[x30],#8 // *K++, x28 in next round + //add x20,x20,x17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev x11,x11 // 8 +#endif + add x20,x20,x17 // h+=Sigma0(a) + ror x16,x24,#14 + add x27,x27,x19 // h+=K[i] + eor x14,x24,x24,ror#23 + and x17,x25,x24 + bic x19,x26,x24 + add x27,x27,x11 // h+=X[i] + orr x17,x17,x19 // Ch(e,f,g) + eor x19,x20,x21 // a^b, b^c in next round + eor x16,x16,x14,ror#18 // Sigma1(e) + ror x14,x20,#28 + add x27,x27,x17 // h+=Ch(e,f,g) + eor x17,x20,x20,ror#5 + add x27,x27,x16 // h+=Sigma1(e) + and x28,x28,x19 // (b^c)&=(a^b) + add x23,x23,x27 // d+=h + eor x28,x28,x21 // Maj(a,b,c) + eor x17,x14,x17,ror#34 // Sigma0(a) + add x27,x27,x28 // h+=Maj(a,b,c) + ldr x28,[x30],#8 // *K++, x19 in next round + //add x27,x27,x17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev x12,x12 // 9 +#endif + ldp x13,x14,[x1],#2*8 + add x27,x27,x17 // h+=Sigma0(a) + ror x16,x23,#14 + add x26,x26,x28 // h+=K[i] + eor x15,x23,x23,ror#23 + and x17,x24,x23 + bic x28,x25,x23 + add x26,x26,x12 // h+=X[i] + orr x17,x17,x28 // Ch(e,f,g) + eor x28,x27,x20 // a^b, b^c in next round + eor x16,x16,x15,ror#18 // Sigma1(e) + ror x15,x27,#28 + add x26,x26,x17 // h+=Ch(e,f,g) + eor x17,x27,x27,ror#5 + add x26,x26,x16 // h+=Sigma1(e) + and x19,x19,x28 // (b^c)&=(a^b) + add x22,x22,x26 // d+=h + eor x19,x19,x20 // Maj(a,b,c) + eor x17,x15,x17,ror#34 // Sigma0(a) + add x26,x26,x19 // h+=Maj(a,b,c) + ldr x19,[x30],#8 // *K++, x28 in next round + //add x26,x26,x17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev x13,x13 // 10 +#endif + add x26,x26,x17 // h+=Sigma0(a) + ror x16,x22,#14 + add x25,x25,x19 // h+=K[i] + eor x0,x22,x22,ror#23 + and x17,x23,x22 + bic x19,x24,x22 + add x25,x25,x13 // h+=X[i] + orr x17,x17,x19 // Ch(e,f,g) + eor x19,x26,x27 // a^b, b^c in next round + eor x16,x16,x0,ror#18 // Sigma1(e) + ror x0,x26,#28 + add x25,x25,x17 // h+=Ch(e,f,g) + eor x17,x26,x26,ror#5 + add x25,x25,x16 // h+=Sigma1(e) + and x28,x28,x19 // (b^c)&=(a^b) + add x21,x21,x25 // d+=h + eor x28,x28,x27 // Maj(a,b,c) + eor x17,x0,x17,ror#34 // Sigma0(a) + add x25,x25,x28 // h+=Maj(a,b,c) + ldr x28,[x30],#8 // *K++, x19 in next round + //add x25,x25,x17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev x14,x14 // 11 +#endif + ldp x15,x0,[x1],#2*8 + add x25,x25,x17 // h+=Sigma0(a) + str x6,[sp,#24] + ror x16,x21,#14 + add x24,x24,x28 // h+=K[i] + eor x6,x21,x21,ror#23 + and x17,x22,x21 + bic x28,x23,x21 + add x24,x24,x14 // h+=X[i] + orr x17,x17,x28 // Ch(e,f,g) + eor x28,x25,x26 // a^b, b^c in next round + eor x16,x16,x6,ror#18 // Sigma1(e) + ror x6,x25,#28 + add x24,x24,x17 // h+=Ch(e,f,g) + eor x17,x25,x25,ror#5 + add x24,x24,x16 // h+=Sigma1(e) + and x19,x19,x28 // (b^c)&=(a^b) + add x20,x20,x24 // d+=h + eor x19,x19,x26 // Maj(a,b,c) + eor x17,x6,x17,ror#34 // Sigma0(a) + add x24,x24,x19 // h+=Maj(a,b,c) + ldr x19,[x30],#8 // *K++, x28 in next round + //add x24,x24,x17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev x15,x15 // 12 +#endif + add x24,x24,x17 // h+=Sigma0(a) + str x7,[sp,#0] + ror x16,x20,#14 + add x23,x23,x19 // h+=K[i] + eor x7,x20,x20,ror#23 + and x17,x21,x20 + bic x19,x22,x20 + add x23,x23,x15 // h+=X[i] + orr x17,x17,x19 // Ch(e,f,g) + eor x19,x24,x25 // a^b, b^c in next round + eor x16,x16,x7,ror#18 // Sigma1(e) + ror x7,x24,#28 + add x23,x23,x17 // h+=Ch(e,f,g) + eor x17,x24,x24,ror#5 + add x23,x23,x16 // h+=Sigma1(e) + and x28,x28,x19 // (b^c)&=(a^b) + add x27,x27,x23 // d+=h + eor x28,x28,x25 // Maj(a,b,c) + eor x17,x7,x17,ror#34 // Sigma0(a) + add x23,x23,x28 // h+=Maj(a,b,c) + ldr x28,[x30],#8 // *K++, x19 in next round + //add x23,x23,x17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev x0,x0 // 13 +#endif + ldp x1,x2,[x1] + add x23,x23,x17 // h+=Sigma0(a) + str x8,[sp,#8] + ror x16,x27,#14 + add x22,x22,x28 // h+=K[i] + eor x8,x27,x27,ror#23 + and x17,x20,x27 + bic x28,x21,x27 + add x22,x22,x0 // h+=X[i] + orr x17,x17,x28 // Ch(e,f,g) + eor x28,x23,x24 // a^b, b^c in next round + eor x16,x16,x8,ror#18 // Sigma1(e) + ror x8,x23,#28 + add x22,x22,x17 // h+=Ch(e,f,g) + eor x17,x23,x23,ror#5 + add x22,x22,x16 // h+=Sigma1(e) + and x19,x19,x28 // (b^c)&=(a^b) + add x26,x26,x22 // d+=h + eor x19,x19,x24 // Maj(a,b,c) + eor x17,x8,x17,ror#34 // Sigma0(a) + add x22,x22,x19 // h+=Maj(a,b,c) + ldr x19,[x30],#8 // *K++, x28 in next round + //add x22,x22,x17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev x1,x1 // 14 +#endif + ldr x6,[sp,#24] + add x22,x22,x17 // h+=Sigma0(a) + str x9,[sp,#16] + ror x16,x26,#14 + add x21,x21,x19 // h+=K[i] + eor x9,x26,x26,ror#23 + and x17,x27,x26 + bic x19,x20,x26 + add x21,x21,x1 // h+=X[i] + orr x17,x17,x19 // Ch(e,f,g) + eor x19,x22,x23 // a^b, b^c in next round + eor x16,x16,x9,ror#18 // Sigma1(e) + ror x9,x22,#28 + add x21,x21,x17 // h+=Ch(e,f,g) + eor x17,x22,x22,ror#5 + add x21,x21,x16 // h+=Sigma1(e) + and x28,x28,x19 // (b^c)&=(a^b) + add x25,x25,x21 // d+=h + eor x28,x28,x23 // Maj(a,b,c) + eor x17,x9,x17,ror#34 // Sigma0(a) + add x21,x21,x28 // h+=Maj(a,b,c) + ldr x28,[x30],#8 // *K++, x19 in next round + //add x21,x21,x17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev x2,x2 // 15 +#endif + ldr x7,[sp,#0] + add x21,x21,x17 // h+=Sigma0(a) + str x10,[sp,#24] + ror x16,x25,#14 + add x20,x20,x28 // h+=K[i] + ror x9,x4,#1 + and x17,x26,x25 + ror x8,x1,#19 + bic x28,x27,x25 + ror x10,x21,#28 + add x20,x20,x2 // h+=X[i] + eor x16,x16,x25,ror#18 + eor x9,x9,x4,ror#8 + orr x17,x17,x28 // Ch(e,f,g) + eor x28,x21,x22 // a^b, b^c in next round + eor x16,x16,x25,ror#41 // Sigma1(e) + eor x10,x10,x21,ror#34 + add x20,x20,x17 // h+=Ch(e,f,g) + and x19,x19,x28 // (b^c)&=(a^b) + eor x8,x8,x1,ror#61 + eor x9,x9,x4,lsr#7 // sigma0(X[i+1]) + add x20,x20,x16 // h+=Sigma1(e) + eor x19,x19,x22 // Maj(a,b,c) + eor x17,x10,x21,ror#39 // Sigma0(a) + eor x8,x8,x1,lsr#6 // sigma1(X[i+14]) + add x3,x3,x12 + add x24,x24,x20 // d+=h + add x20,x20,x19 // h+=Maj(a,b,c) + ldr x19,[x30],#8 // *K++, x28 in next round + add x3,x3,x9 + add x20,x20,x17 // h+=Sigma0(a) + add x3,x3,x8 +.Loop_16_xx: + ldr x8,[sp,#8] + str x11,[sp,#0] + ror x16,x24,#14 + add x27,x27,x19 // h+=K[i] + ror x10,x5,#1 + and x17,x25,x24 + ror x9,x2,#19 + bic x19,x26,x24 + ror x11,x20,#28 + add x27,x27,x3 // h+=X[i] + eor x16,x16,x24,ror#18 + eor x10,x10,x5,ror#8 + orr x17,x17,x19 // Ch(e,f,g) + eor x19,x20,x21 // a^b, b^c in next round + eor x16,x16,x24,ror#41 // Sigma1(e) + eor x11,x11,x20,ror#34 + add x27,x27,x17 // h+=Ch(e,f,g) + and x28,x28,x19 // (b^c)&=(a^b) + eor x9,x9,x2,ror#61 + eor x10,x10,x5,lsr#7 // sigma0(X[i+1]) + add x27,x27,x16 // h+=Sigma1(e) + eor x28,x28,x21 // Maj(a,b,c) + eor x17,x11,x20,ror#39 // Sigma0(a) + eor x9,x9,x2,lsr#6 // sigma1(X[i+14]) + add x4,x4,x13 + add x23,x23,x27 // d+=h + add x27,x27,x28 // h+=Maj(a,b,c) + ldr x28,[x30],#8 // *K++, x19 in next round + add x4,x4,x10 + add x27,x27,x17 // h+=Sigma0(a) + add x4,x4,x9 + ldr x9,[sp,#16] + str x12,[sp,#8] + ror x16,x23,#14 + add x26,x26,x28 // h+=K[i] + ror x11,x6,#1 + and x17,x24,x23 + ror x10,x3,#19 + bic x28,x25,x23 + ror x12,x27,#28 + add x26,x26,x4 // h+=X[i] + eor x16,x16,x23,ror#18 + eor x11,x11,x6,ror#8 + orr x17,x17,x28 // Ch(e,f,g) + eor x28,x27,x20 // a^b, b^c in next round + eor x16,x16,x23,ror#41 // Sigma1(e) + eor x12,x12,x27,ror#34 + add x26,x26,x17 // h+=Ch(e,f,g) + and x19,x19,x28 // (b^c)&=(a^b) + eor x10,x10,x3,ror#61 + eor x11,x11,x6,lsr#7 // sigma0(X[i+1]) + add x26,x26,x16 // h+=Sigma1(e) + eor x19,x19,x20 // Maj(a,b,c) + eor x17,x12,x27,ror#39 // Sigma0(a) + eor x10,x10,x3,lsr#6 // sigma1(X[i+14]) + add x5,x5,x14 + add x22,x22,x26 // d+=h + add x26,x26,x19 // h+=Maj(a,b,c) + ldr x19,[x30],#8 // *K++, x28 in next round + add x5,x5,x11 + add x26,x26,x17 // h+=Sigma0(a) + add x5,x5,x10 + ldr x10,[sp,#24] + str x13,[sp,#16] + ror x16,x22,#14 + add x25,x25,x19 // h+=K[i] + ror x12,x7,#1 + and x17,x23,x22 + ror x11,x4,#19 + bic x19,x24,x22 + ror x13,x26,#28 + add x25,x25,x5 // h+=X[i] + eor x16,x16,x22,ror#18 + eor x12,x12,x7,ror#8 + orr x17,x17,x19 // Ch(e,f,g) + eor x19,x26,x27 // a^b, b^c in next round + eor x16,x16,x22,ror#41 // Sigma1(e) + eor x13,x13,x26,ror#34 + add x25,x25,x17 // h+=Ch(e,f,g) + and x28,x28,x19 // (b^c)&=(a^b) + eor x11,x11,x4,ror#61 + eor x12,x12,x7,lsr#7 // sigma0(X[i+1]) + add x25,x25,x16 // h+=Sigma1(e) + eor x28,x28,x27 // Maj(a,b,c) + eor x17,x13,x26,ror#39 // Sigma0(a) + eor x11,x11,x4,lsr#6 // sigma1(X[i+14]) + add x6,x6,x15 + add x21,x21,x25 // d+=h + add x25,x25,x28 // h+=Maj(a,b,c) + ldr x28,[x30],#8 // *K++, x19 in next round + add x6,x6,x12 + add x25,x25,x17 // h+=Sigma0(a) + add x6,x6,x11 + ldr x11,[sp,#0] + str x14,[sp,#24] + ror x16,x21,#14 + add x24,x24,x28 // h+=K[i] + ror x13,x8,#1 + and x17,x22,x21 + ror x12,x5,#19 + bic x28,x23,x21 + ror x14,x25,#28 + add x24,x24,x6 // h+=X[i] + eor x16,x16,x21,ror#18 + eor x13,x13,x8,ror#8 + orr x17,x17,x28 // Ch(e,f,g) + eor x28,x25,x26 // a^b, b^c in next round + eor x16,x16,x21,ror#41 // Sigma1(e) + eor x14,x14,x25,ror#34 + add x24,x24,x17 // h+=Ch(e,f,g) + and x19,x19,x28 // (b^c)&=(a^b) + eor x12,x12,x5,ror#61 + eor x13,x13,x8,lsr#7 // sigma0(X[i+1]) + add x24,x24,x16 // h+=Sigma1(e) + eor x19,x19,x26 // Maj(a,b,c) + eor x17,x14,x25,ror#39 // Sigma0(a) + eor x12,x12,x5,lsr#6 // sigma1(X[i+14]) + add x7,x7,x0 + add x20,x20,x24 // d+=h + add x24,x24,x19 // h+=Maj(a,b,c) + ldr x19,[x30],#8 // *K++, x28 in next round + add x7,x7,x13 + add x24,x24,x17 // h+=Sigma0(a) + add x7,x7,x12 + ldr x12,[sp,#8] + str x15,[sp,#0] + ror x16,x20,#14 + add x23,x23,x19 // h+=K[i] + ror x14,x9,#1 + and x17,x21,x20 + ror x13,x6,#19 + bic x19,x22,x20 + ror x15,x24,#28 + add x23,x23,x7 // h+=X[i] + eor x16,x16,x20,ror#18 + eor x14,x14,x9,ror#8 + orr x17,x17,x19 // Ch(e,f,g) + eor x19,x24,x25 // a^b, b^c in next round + eor x16,x16,x20,ror#41 // Sigma1(e) + eor x15,x15,x24,ror#34 + add x23,x23,x17 // h+=Ch(e,f,g) + and x28,x28,x19 // (b^c)&=(a^b) + eor x13,x13,x6,ror#61 + eor x14,x14,x9,lsr#7 // sigma0(X[i+1]) + add x23,x23,x16 // h+=Sigma1(e) + eor x28,x28,x25 // Maj(a,b,c) + eor x17,x15,x24,ror#39 // Sigma0(a) + eor x13,x13,x6,lsr#6 // sigma1(X[i+14]) + add x8,x8,x1 + add x27,x27,x23 // d+=h + add x23,x23,x28 // h+=Maj(a,b,c) + ldr x28,[x30],#8 // *K++, x19 in next round + add x8,x8,x14 + add x23,x23,x17 // h+=Sigma0(a) + add x8,x8,x13 + ldr x13,[sp,#16] + str x0,[sp,#8] + ror x16,x27,#14 + add x22,x22,x28 // h+=K[i] + ror x15,x10,#1 + and x17,x20,x27 + ror x14,x7,#19 + bic x28,x21,x27 + ror x0,x23,#28 + add x22,x22,x8 // h+=X[i] + eor x16,x16,x27,ror#18 + eor x15,x15,x10,ror#8 + orr x17,x17,x28 // Ch(e,f,g) + eor x28,x23,x24 // a^b, b^c in next round + eor x16,x16,x27,ror#41 // Sigma1(e) + eor x0,x0,x23,ror#34 + add x22,x22,x17 // h+=Ch(e,f,g) + and x19,x19,x28 // (b^c)&=(a^b) + eor x14,x14,x7,ror#61 + eor x15,x15,x10,lsr#7 // sigma0(X[i+1]) + add x22,x22,x16 // h+=Sigma1(e) + eor x19,x19,x24 // Maj(a,b,c) + eor x17,x0,x23,ror#39 // Sigma0(a) + eor x14,x14,x7,lsr#6 // sigma1(X[i+14]) + add x9,x9,x2 + add x26,x26,x22 // d+=h + add x22,x22,x19 // h+=Maj(a,b,c) + ldr x19,[x30],#8 // *K++, x28 in next round + add x9,x9,x15 + add x22,x22,x17 // h+=Sigma0(a) + add x9,x9,x14 + ldr x14,[sp,#24] + str x1,[sp,#16] + ror x16,x26,#14 + add x21,x21,x19 // h+=K[i] + ror x0,x11,#1 + and x17,x27,x26 + ror x15,x8,#19 + bic x19,x20,x26 + ror x1,x22,#28 + add x21,x21,x9 // h+=X[i] + eor x16,x16,x26,ror#18 + eor x0,x0,x11,ror#8 + orr x17,x17,x19 // Ch(e,f,g) + eor x19,x22,x23 // a^b, b^c in next round + eor x16,x16,x26,ror#41 // Sigma1(e) + eor x1,x1,x22,ror#34 + add x21,x21,x17 // h+=Ch(e,f,g) + and x28,x28,x19 // (b^c)&=(a^b) + eor x15,x15,x8,ror#61 + eor x0,x0,x11,lsr#7 // sigma0(X[i+1]) + add x21,x21,x16 // h+=Sigma1(e) + eor x28,x28,x23 // Maj(a,b,c) + eor x17,x1,x22,ror#39 // Sigma0(a) + eor x15,x15,x8,lsr#6 // sigma1(X[i+14]) + add x10,x10,x3 + add x25,x25,x21 // d+=h + add x21,x21,x28 // h+=Maj(a,b,c) + ldr x28,[x30],#8 // *K++, x19 in next round + add x10,x10,x0 + add x21,x21,x17 // h+=Sigma0(a) + add x10,x10,x15 + ldr x15,[sp,#0] + str x2,[sp,#24] + ror x16,x25,#14 + add x20,x20,x28 // h+=K[i] + ror x1,x12,#1 + and x17,x26,x25 + ror x0,x9,#19 + bic x28,x27,x25 + ror x2,x21,#28 + add x20,x20,x10 // h+=X[i] + eor x16,x16,x25,ror#18 + eor x1,x1,x12,ror#8 + orr x17,x17,x28 // Ch(e,f,g) + eor x28,x21,x22 // a^b, b^c in next round + eor x16,x16,x25,ror#41 // Sigma1(e) + eor x2,x2,x21,ror#34 + add x20,x20,x17 // h+=Ch(e,f,g) + and x19,x19,x28 // (b^c)&=(a^b) + eor x0,x0,x9,ror#61 + eor x1,x1,x12,lsr#7 // sigma0(X[i+1]) + add x20,x20,x16 // h+=Sigma1(e) + eor x19,x19,x22 // Maj(a,b,c) + eor x17,x2,x21,ror#39 // Sigma0(a) + eor x0,x0,x9,lsr#6 // sigma1(X[i+14]) + add x11,x11,x4 + add x24,x24,x20 // d+=h + add x20,x20,x19 // h+=Maj(a,b,c) + ldr x19,[x30],#8 // *K++, x28 in next round + add x11,x11,x1 + add x20,x20,x17 // h+=Sigma0(a) + add x11,x11,x0 + ldr x0,[sp,#8] + str x3,[sp,#0] + ror x16,x24,#14 + add x27,x27,x19 // h+=K[i] + ror x2,x13,#1 + and x17,x25,x24 + ror x1,x10,#19 + bic x19,x26,x24 + ror x3,x20,#28 + add x27,x27,x11 // h+=X[i] + eor x16,x16,x24,ror#18 + eor x2,x2,x13,ror#8 + orr x17,x17,x19 // Ch(e,f,g) + eor x19,x20,x21 // a^b, b^c in next round + eor x16,x16,x24,ror#41 // Sigma1(e) + eor x3,x3,x20,ror#34 + add x27,x27,x17 // h+=Ch(e,f,g) + and x28,x28,x19 // (b^c)&=(a^b) + eor x1,x1,x10,ror#61 + eor x2,x2,x13,lsr#7 // sigma0(X[i+1]) + add x27,x27,x16 // h+=Sigma1(e) + eor x28,x28,x21 // Maj(a,b,c) + eor x17,x3,x20,ror#39 // Sigma0(a) + eor x1,x1,x10,lsr#6 // sigma1(X[i+14]) + add x12,x12,x5 + add x23,x23,x27 // d+=h + add x27,x27,x28 // h+=Maj(a,b,c) + ldr x28,[x30],#8 // *K++, x19 in next round + add x12,x12,x2 + add x27,x27,x17 // h+=Sigma0(a) + add x12,x12,x1 + ldr x1,[sp,#16] + str x4,[sp,#8] + ror x16,x23,#14 + add x26,x26,x28 // h+=K[i] + ror x3,x14,#1 + and x17,x24,x23 + ror x2,x11,#19 + bic x28,x25,x23 + ror x4,x27,#28 + add x26,x26,x12 // h+=X[i] + eor x16,x16,x23,ror#18 + eor x3,x3,x14,ror#8 + orr x17,x17,x28 // Ch(e,f,g) + eor x28,x27,x20 // a^b, b^c in next round + eor x16,x16,x23,ror#41 // Sigma1(e) + eor x4,x4,x27,ror#34 + add x26,x26,x17 // h+=Ch(e,f,g) + and x19,x19,x28 // (b^c)&=(a^b) + eor x2,x2,x11,ror#61 + eor x3,x3,x14,lsr#7 // sigma0(X[i+1]) + add x26,x26,x16 // h+=Sigma1(e) + eor x19,x19,x20 // Maj(a,b,c) + eor x17,x4,x27,ror#39 // Sigma0(a) + eor x2,x2,x11,lsr#6 // sigma1(X[i+14]) + add x13,x13,x6 + add x22,x22,x26 // d+=h + add x26,x26,x19 // h+=Maj(a,b,c) + ldr x19,[x30],#8 // *K++, x28 in next round + add x13,x13,x3 + add x26,x26,x17 // h+=Sigma0(a) + add x13,x13,x2 + ldr x2,[sp,#24] + str x5,[sp,#16] + ror x16,x22,#14 + add x25,x25,x19 // h+=K[i] + ror x4,x15,#1 + and x17,x23,x22 + ror x3,x12,#19 + bic x19,x24,x22 + ror x5,x26,#28 + add x25,x25,x13 // h+=X[i] + eor x16,x16,x22,ror#18 + eor x4,x4,x15,ror#8 + orr x17,x17,x19 // Ch(e,f,g) + eor x19,x26,x27 // a^b, b^c in next round + eor x16,x16,x22,ror#41 // Sigma1(e) + eor x5,x5,x26,ror#34 + add x25,x25,x17 // h+=Ch(e,f,g) + and x28,x28,x19 // (b^c)&=(a^b) + eor x3,x3,x12,ror#61 + eor x4,x4,x15,lsr#7 // sigma0(X[i+1]) + add x25,x25,x16 // h+=Sigma1(e) + eor x28,x28,x27 // Maj(a,b,c) + eor x17,x5,x26,ror#39 // Sigma0(a) + eor x3,x3,x12,lsr#6 // sigma1(X[i+14]) + add x14,x14,x7 + add x21,x21,x25 // d+=h + add x25,x25,x28 // h+=Maj(a,b,c) + ldr x28,[x30],#8 // *K++, x19 in next round + add x14,x14,x4 + add x25,x25,x17 // h+=Sigma0(a) + add x14,x14,x3 + ldr x3,[sp,#0] + str x6,[sp,#24] + ror x16,x21,#14 + add x24,x24,x28 // h+=K[i] + ror x5,x0,#1 + and x17,x22,x21 + ror x4,x13,#19 + bic x28,x23,x21 + ror x6,x25,#28 + add x24,x24,x14 // h+=X[i] + eor x16,x16,x21,ror#18 + eor x5,x5,x0,ror#8 + orr x17,x17,x28 // Ch(e,f,g) + eor x28,x25,x26 // a^b, b^c in next round + eor x16,x16,x21,ror#41 // Sigma1(e) + eor x6,x6,x25,ror#34 + add x24,x24,x17 // h+=Ch(e,f,g) + and x19,x19,x28 // (b^c)&=(a^b) + eor x4,x4,x13,ror#61 + eor x5,x5,x0,lsr#7 // sigma0(X[i+1]) + add x24,x24,x16 // h+=Sigma1(e) + eor x19,x19,x26 // Maj(a,b,c) + eor x17,x6,x25,ror#39 // Sigma0(a) + eor x4,x4,x13,lsr#6 // sigma1(X[i+14]) + add x15,x15,x8 + add x20,x20,x24 // d+=h + add x24,x24,x19 // h+=Maj(a,b,c) + ldr x19,[x30],#8 // *K++, x28 in next round + add x15,x15,x5 + add x24,x24,x17 // h+=Sigma0(a) + add x15,x15,x4 + ldr x4,[sp,#8] + str x7,[sp,#0] + ror x16,x20,#14 + add x23,x23,x19 // h+=K[i] + ror x6,x1,#1 + and x17,x21,x20 + ror x5,x14,#19 + bic x19,x22,x20 + ror x7,x24,#28 + add x23,x23,x15 // h+=X[i] + eor x16,x16,x20,ror#18 + eor x6,x6,x1,ror#8 + orr x17,x17,x19 // Ch(e,f,g) + eor x19,x24,x25 // a^b, b^c in next round + eor x16,x16,x20,ror#41 // Sigma1(e) + eor x7,x7,x24,ror#34 + add x23,x23,x17 // h+=Ch(e,f,g) + and x28,x28,x19 // (b^c)&=(a^b) + eor x5,x5,x14,ror#61 + eor x6,x6,x1,lsr#7 // sigma0(X[i+1]) + add x23,x23,x16 // h+=Sigma1(e) + eor x28,x28,x25 // Maj(a,b,c) + eor x17,x7,x24,ror#39 // Sigma0(a) + eor x5,x5,x14,lsr#6 // sigma1(X[i+14]) + add x0,x0,x9 + add x27,x27,x23 // d+=h + add x23,x23,x28 // h+=Maj(a,b,c) + ldr x28,[x30],#8 // *K++, x19 in next round + add x0,x0,x6 + add x23,x23,x17 // h+=Sigma0(a) + add x0,x0,x5 + ldr x5,[sp,#16] + str x8,[sp,#8] + ror x16,x27,#14 + add x22,x22,x28 // h+=K[i] + ror x7,x2,#1 + and x17,x20,x27 + ror x6,x15,#19 + bic x28,x21,x27 + ror x8,x23,#28 + add x22,x22,x0 // h+=X[i] + eor x16,x16,x27,ror#18 + eor x7,x7,x2,ror#8 + orr x17,x17,x28 // Ch(e,f,g) + eor x28,x23,x24 // a^b, b^c in next round + eor x16,x16,x27,ror#41 // Sigma1(e) + eor x8,x8,x23,ror#34 + add x22,x22,x17 // h+=Ch(e,f,g) + and x19,x19,x28 // (b^c)&=(a^b) + eor x6,x6,x15,ror#61 + eor x7,x7,x2,lsr#7 // sigma0(X[i+1]) + add x22,x22,x16 // h+=Sigma1(e) + eor x19,x19,x24 // Maj(a,b,c) + eor x17,x8,x23,ror#39 // Sigma0(a) + eor x6,x6,x15,lsr#6 // sigma1(X[i+14]) + add x1,x1,x10 + add x26,x26,x22 // d+=h + add x22,x22,x19 // h+=Maj(a,b,c) + ldr x19,[x30],#8 // *K++, x28 in next round + add x1,x1,x7 + add x22,x22,x17 // h+=Sigma0(a) + add x1,x1,x6 + ldr x6,[sp,#24] + str x9,[sp,#16] + ror x16,x26,#14 + add x21,x21,x19 // h+=K[i] + ror x8,x3,#1 + and x17,x27,x26 + ror x7,x0,#19 + bic x19,x20,x26 + ror x9,x22,#28 + add x21,x21,x1 // h+=X[i] + eor x16,x16,x26,ror#18 + eor x8,x8,x3,ror#8 + orr x17,x17,x19 // Ch(e,f,g) + eor x19,x22,x23 // a^b, b^c in next round + eor x16,x16,x26,ror#41 // Sigma1(e) + eor x9,x9,x22,ror#34 + add x21,x21,x17 // h+=Ch(e,f,g) + and x28,x28,x19 // (b^c)&=(a^b) + eor x7,x7,x0,ror#61 + eor x8,x8,x3,lsr#7 // sigma0(X[i+1]) + add x21,x21,x16 // h+=Sigma1(e) + eor x28,x28,x23 // Maj(a,b,c) + eor x17,x9,x22,ror#39 // Sigma0(a) + eor x7,x7,x0,lsr#6 // sigma1(X[i+14]) + add x2,x2,x11 + add x25,x25,x21 // d+=h + add x21,x21,x28 // h+=Maj(a,b,c) + ldr x28,[x30],#8 // *K++, x19 in next round + add x2,x2,x8 + add x21,x21,x17 // h+=Sigma0(a) + add x2,x2,x7 + ldr x7,[sp,#0] + str x10,[sp,#24] + ror x16,x25,#14 + add x20,x20,x28 // h+=K[i] + ror x9,x4,#1 + and x17,x26,x25 + ror x8,x1,#19 + bic x28,x27,x25 + ror x10,x21,#28 + add x20,x20,x2 // h+=X[i] + eor x16,x16,x25,ror#18 + eor x9,x9,x4,ror#8 + orr x17,x17,x28 // Ch(e,f,g) + eor x28,x21,x22 // a^b, b^c in next round + eor x16,x16,x25,ror#41 // Sigma1(e) + eor x10,x10,x21,ror#34 + add x20,x20,x17 // h+=Ch(e,f,g) + and x19,x19,x28 // (b^c)&=(a^b) + eor x8,x8,x1,ror#61 + eor x9,x9,x4,lsr#7 // sigma0(X[i+1]) + add x20,x20,x16 // h+=Sigma1(e) + eor x19,x19,x22 // Maj(a,b,c) + eor x17,x10,x21,ror#39 // Sigma0(a) + eor x8,x8,x1,lsr#6 // sigma1(X[i+14]) + add x3,x3,x12 + add x24,x24,x20 // d+=h + add x20,x20,x19 // h+=Maj(a,b,c) + ldr x19,[x30],#8 // *K++, x28 in next round + add x3,x3,x9 + add x20,x20,x17 // h+=Sigma0(a) + add x3,x3,x8 + cbnz x19,.Loop_16_xx + + ldp x0,x2,[x29,#96] + ldr x1,[x29,#112] + sub x30,x30,#648 // rewind + + ldp x3,x4,[x0] + ldp x5,x6,[x0,#2*8] + add x1,x1,#14*8 // advance input pointer + ldp x7,x8,[x0,#4*8] + add x20,x20,x3 + ldp x9,x10,[x0,#6*8] + add x21,x21,x4 + add x22,x22,x5 + add x23,x23,x6 + stp x20,x21,[x0] + add x24,x24,x7 + add x25,x25,x8 + stp x22,x23,[x0,#2*8] + add x26,x26,x9 + add x27,x27,x10 + cmp x1,x2 + stp x24,x25,[x0,#4*8] + stp x26,x27,[x0,#6*8] + b.ne .Loop + + ldp x19,x20,[x29,#16] + add sp,sp,#4*8 + ldp x21,x22,[x29,#32] + ldp x23,x24,[x29,#48] + ldp x25,x26,[x29,#64] + ldp x27,x28,[x29,#80] + ldp x29,x30,[sp],#128 +.inst 0xd50323bf // autiasp + ret +.size sha512_block_data_order,.-sha512_block_data_order + +.align 6 +.type .LK512,%object +.LK512: +.quad 0x428a2f98d728ae22,0x7137449123ef65cd +.quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc +.quad 0x3956c25bf348b538,0x59f111f1b605d019 +.quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118 +.quad 0xd807aa98a3030242,0x12835b0145706fbe +.quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2 +.quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1 +.quad 0x9bdc06a725c71235,0xc19bf174cf692694 +.quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3 +.quad 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65 +.quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483 +.quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5 +.quad 0x983e5152ee66dfab,0xa831c66d2db43210 +.quad 0xb00327c898fb213f,0xbf597fc7beef0ee4 +.quad 0xc6e00bf33da88fc2,0xd5a79147930aa725 +.quad 0x06ca6351e003826f,0x142929670a0e6e70 +.quad 0x27b70a8546d22ffc,0x2e1b21385c26c926 +.quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df +.quad 0x650a73548baf63de,0x766a0abb3c77b2a8 +.quad 0x81c2c92e47edaee6,0x92722c851482353b +.quad 0xa2bfe8a14cf10364,0xa81a664bbc423001 +.quad 0xc24b8b70d0f89791,0xc76c51a30654be30 +.quad 0xd192e819d6ef5218,0xd69906245565a910 +.quad 0xf40e35855771202a,0x106aa07032bbd1b8 +.quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53 +.quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8 +.quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb +.quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3 +.quad 0x748f82ee5defb2fc,0x78a5636f43172f60 +.quad 0x84c87814a1f0ab72,0x8cc702081a6439ec +.quad 0x90befffa23631e28,0xa4506cebde82bde9 +.quad 0xbef9a3f7b2c67915,0xc67178f2e372532b +.quad 0xca273eceea26619c,0xd186b8c721c0c207 +.quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178 +.quad 0x06f067aa72176fba,0x0a637dc5a2c898a6 +.quad 0x113f9804bef90dae,0x1b710b35131c471b +.quad 0x28db77f523047d84,0x32caab7b40c72493 +.quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c +.quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a +.quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817 +.quad 0 // terminator +.size .LK512,.-.LK512 +#ifndef __KERNEL__ +.align 3 +.LOPENSSL_armcap_P: +# ifdef __ILP32__ +.long OPENSSL_armcap_P-. +# else +.quad OPENSSL_armcap_P-. +# endif +#endif +.byte 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 2 +.align 2 +#ifndef __KERNEL__ +.type sha512_block_armv8,%function +.align 6 +sha512_block_armv8: +.Lv8_entry: + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x1],#64 // load input + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x1],#64 + + ld1 {v0.2d,v1.2d,v2.2d,v3.2d},[x0] // load context + adr x3,.LK512 + + rev64 v16.16b,v16.16b + rev64 v17.16b,v17.16b + rev64 v18.16b,v18.16b + rev64 v19.16b,v19.16b + rev64 v20.16b,v20.16b + rev64 v21.16b,v21.16b + rev64 v22.16b,v22.16b + rev64 v23.16b,v23.16b + b .Loop_hw + +.align 4 +.Loop_hw: + ld1 {v24.2d},[x3],#16 + subs x2,x2,#1 + sub x4,x1,#128 + orr v26.16b,v0.16b,v0.16b // offload + orr v27.16b,v1.16b,v1.16b + orr v28.16b,v2.16b,v2.16b + orr v29.16b,v3.16b,v3.16b + csel x1,x1,x4,ne // conditional rewind + add v24.2d,v24.2d,v16.2d + ld1 {v25.2d},[x3],#16 + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v2.16b,v3.16b,#8 + ext v6.16b,v1.16b,v2.16b,#8 + add v3.2d,v3.2d,v24.2d // "T1 + H + K512[i]" +.inst 0xcec08230 //sha512su0 v16.16b,v17.16b + ext v7.16b,v20.16b,v21.16b,#8 +.inst 0xce6680a3 //sha512h v3.16b,v5.16b,v6.16b +.inst 0xce678af0 //sha512su1 v16.16b,v23.16b,v7.16b + add v4.2d,v1.2d,v3.2d // "D + T1" +.inst 0xce608423 //sha512h2 v3.16b,v1.16b,v0.16b + add v25.2d,v25.2d,v17.2d + ld1 {v24.2d},[x3],#16 + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v4.16b,v2.16b,#8 + ext v6.16b,v0.16b,v4.16b,#8 + add v2.2d,v2.2d,v25.2d // "T1 + H + K512[i]" +.inst 0xcec08251 //sha512su0 v17.16b,v18.16b + ext v7.16b,v21.16b,v22.16b,#8 +.inst 0xce6680a2 //sha512h v2.16b,v5.16b,v6.16b +.inst 0xce678a11 //sha512su1 v17.16b,v16.16b,v7.16b + add v1.2d,v0.2d,v2.2d // "D + T1" +.inst 0xce638402 //sha512h2 v2.16b,v0.16b,v3.16b + add v24.2d,v24.2d,v18.2d + ld1 {v25.2d},[x3],#16 + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v1.16b,v4.16b,#8 + ext v6.16b,v3.16b,v1.16b,#8 + add v4.2d,v4.2d,v24.2d // "T1 + H + K512[i]" +.inst 0xcec08272 //sha512su0 v18.16b,v19.16b + ext v7.16b,v22.16b,v23.16b,#8 +.inst 0xce6680a4 //sha512h v4.16b,v5.16b,v6.16b +.inst 0xce678a32 //sha512su1 v18.16b,v17.16b,v7.16b + add v0.2d,v3.2d,v4.2d // "D + T1" +.inst 0xce628464 //sha512h2 v4.16b,v3.16b,v2.16b + add v25.2d,v25.2d,v19.2d + ld1 {v24.2d},[x3],#16 + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v0.16b,v1.16b,#8 + ext v6.16b,v2.16b,v0.16b,#8 + add v1.2d,v1.2d,v25.2d // "T1 + H + K512[i]" +.inst 0xcec08293 //sha512su0 v19.16b,v20.16b + ext v7.16b,v23.16b,v16.16b,#8 +.inst 0xce6680a1 //sha512h v1.16b,v5.16b,v6.16b +.inst 0xce678a53 //sha512su1 v19.16b,v18.16b,v7.16b + add v3.2d,v2.2d,v1.2d // "D + T1" +.inst 0xce648441 //sha512h2 v1.16b,v2.16b,v4.16b + add v24.2d,v24.2d,v20.2d + ld1 {v25.2d},[x3],#16 + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v3.16b,v0.16b,#8 + ext v6.16b,v4.16b,v3.16b,#8 + add v0.2d,v0.2d,v24.2d // "T1 + H + K512[i]" +.inst 0xcec082b4 //sha512su0 v20.16b,v21.16b + ext v7.16b,v16.16b,v17.16b,#8 +.inst 0xce6680a0 //sha512h v0.16b,v5.16b,v6.16b +.inst 0xce678a74 //sha512su1 v20.16b,v19.16b,v7.16b + add v2.2d,v4.2d,v0.2d // "D + T1" +.inst 0xce618480 //sha512h2 v0.16b,v4.16b,v1.16b + add v25.2d,v25.2d,v21.2d + ld1 {v24.2d},[x3],#16 + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v2.16b,v3.16b,#8 + ext v6.16b,v1.16b,v2.16b,#8 + add v3.2d,v3.2d,v25.2d // "T1 + H + K512[i]" +.inst 0xcec082d5 //sha512su0 v21.16b,v22.16b + ext v7.16b,v17.16b,v18.16b,#8 +.inst 0xce6680a3 //sha512h v3.16b,v5.16b,v6.16b +.inst 0xce678a95 //sha512su1 v21.16b,v20.16b,v7.16b + add v4.2d,v1.2d,v3.2d // "D + T1" +.inst 0xce608423 //sha512h2 v3.16b,v1.16b,v0.16b + add v24.2d,v24.2d,v22.2d + ld1 {v25.2d},[x3],#16 + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v4.16b,v2.16b,#8 + ext v6.16b,v0.16b,v4.16b,#8 + add v2.2d,v2.2d,v24.2d // "T1 + H + K512[i]" +.inst 0xcec082f6 //sha512su0 v22.16b,v23.16b + ext v7.16b,v18.16b,v19.16b,#8 +.inst 0xce6680a2 //sha512h v2.16b,v5.16b,v6.16b +.inst 0xce678ab6 //sha512su1 v22.16b,v21.16b,v7.16b + add v1.2d,v0.2d,v2.2d // "D + T1" +.inst 0xce638402 //sha512h2 v2.16b,v0.16b,v3.16b + add v25.2d,v25.2d,v23.2d + ld1 {v24.2d},[x3],#16 + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v1.16b,v4.16b,#8 + ext v6.16b,v3.16b,v1.16b,#8 + add v4.2d,v4.2d,v25.2d // "T1 + H + K512[i]" +.inst 0xcec08217 //sha512su0 v23.16b,v16.16b + ext v7.16b,v19.16b,v20.16b,#8 +.inst 0xce6680a4 //sha512h v4.16b,v5.16b,v6.16b +.inst 0xce678ad7 //sha512su1 v23.16b,v22.16b,v7.16b + add v0.2d,v3.2d,v4.2d // "D + T1" +.inst 0xce628464 //sha512h2 v4.16b,v3.16b,v2.16b + add v24.2d,v24.2d,v16.2d + ld1 {v25.2d},[x3],#16 + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v0.16b,v1.16b,#8 + ext v6.16b,v2.16b,v0.16b,#8 + add v1.2d,v1.2d,v24.2d // "T1 + H + K512[i]" +.inst 0xcec08230 //sha512su0 v16.16b,v17.16b + ext v7.16b,v20.16b,v21.16b,#8 +.inst 0xce6680a1 //sha512h v1.16b,v5.16b,v6.16b +.inst 0xce678af0 //sha512su1 v16.16b,v23.16b,v7.16b + add v3.2d,v2.2d,v1.2d // "D + T1" +.inst 0xce648441 //sha512h2 v1.16b,v2.16b,v4.16b + add v25.2d,v25.2d,v17.2d + ld1 {v24.2d},[x3],#16 + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v3.16b,v0.16b,#8 + ext v6.16b,v4.16b,v3.16b,#8 + add v0.2d,v0.2d,v25.2d // "T1 + H + K512[i]" +.inst 0xcec08251 //sha512su0 v17.16b,v18.16b + ext v7.16b,v21.16b,v22.16b,#8 +.inst 0xce6680a0 //sha512h v0.16b,v5.16b,v6.16b +.inst 0xce678a11 //sha512su1 v17.16b,v16.16b,v7.16b + add v2.2d,v4.2d,v0.2d // "D + T1" +.inst 0xce618480 //sha512h2 v0.16b,v4.16b,v1.16b + add v24.2d,v24.2d,v18.2d + ld1 {v25.2d},[x3],#16 + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v2.16b,v3.16b,#8 + ext v6.16b,v1.16b,v2.16b,#8 + add v3.2d,v3.2d,v24.2d // "T1 + H + K512[i]" +.inst 0xcec08272 //sha512su0 v18.16b,v19.16b + ext v7.16b,v22.16b,v23.16b,#8 +.inst 0xce6680a3 //sha512h v3.16b,v5.16b,v6.16b +.inst 0xce678a32 //sha512su1 v18.16b,v17.16b,v7.16b + add v4.2d,v1.2d,v3.2d // "D + T1" +.inst 0xce608423 //sha512h2 v3.16b,v1.16b,v0.16b + add v25.2d,v25.2d,v19.2d + ld1 {v24.2d},[x3],#16 + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v4.16b,v2.16b,#8 + ext v6.16b,v0.16b,v4.16b,#8 + add v2.2d,v2.2d,v25.2d // "T1 + H + K512[i]" +.inst 0xcec08293 //sha512su0 v19.16b,v20.16b + ext v7.16b,v23.16b,v16.16b,#8 +.inst 0xce6680a2 //sha512h v2.16b,v5.16b,v6.16b +.inst 0xce678a53 //sha512su1 v19.16b,v18.16b,v7.16b + add v1.2d,v0.2d,v2.2d // "D + T1" +.inst 0xce638402 //sha512h2 v2.16b,v0.16b,v3.16b + add v24.2d,v24.2d,v20.2d + ld1 {v25.2d},[x3],#16 + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v1.16b,v4.16b,#8 + ext v6.16b,v3.16b,v1.16b,#8 + add v4.2d,v4.2d,v24.2d // "T1 + H + K512[i]" +.inst 0xcec082b4 //sha512su0 v20.16b,v21.16b + ext v7.16b,v16.16b,v17.16b,#8 +.inst 0xce6680a4 //sha512h v4.16b,v5.16b,v6.16b +.inst 0xce678a74 //sha512su1 v20.16b,v19.16b,v7.16b + add v0.2d,v3.2d,v4.2d // "D + T1" +.inst 0xce628464 //sha512h2 v4.16b,v3.16b,v2.16b + add v25.2d,v25.2d,v21.2d + ld1 {v24.2d},[x3],#16 + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v0.16b,v1.16b,#8 + ext v6.16b,v2.16b,v0.16b,#8 + add v1.2d,v1.2d,v25.2d // "T1 + H + K512[i]" +.inst 0xcec082d5 //sha512su0 v21.16b,v22.16b + ext v7.16b,v17.16b,v18.16b,#8 +.inst 0xce6680a1 //sha512h v1.16b,v5.16b,v6.16b +.inst 0xce678a95 //sha512su1 v21.16b,v20.16b,v7.16b + add v3.2d,v2.2d,v1.2d // "D + T1" +.inst 0xce648441 //sha512h2 v1.16b,v2.16b,v4.16b + add v24.2d,v24.2d,v22.2d + ld1 {v25.2d},[x3],#16 + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v3.16b,v0.16b,#8 + ext v6.16b,v4.16b,v3.16b,#8 + add v0.2d,v0.2d,v24.2d // "T1 + H + K512[i]" +.inst 0xcec082f6 //sha512su0 v22.16b,v23.16b + ext v7.16b,v18.16b,v19.16b,#8 +.inst 0xce6680a0 //sha512h v0.16b,v5.16b,v6.16b +.inst 0xce678ab6 //sha512su1 v22.16b,v21.16b,v7.16b + add v2.2d,v4.2d,v0.2d // "D + T1" +.inst 0xce618480 //sha512h2 v0.16b,v4.16b,v1.16b + add v25.2d,v25.2d,v23.2d + ld1 {v24.2d},[x3],#16 + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v2.16b,v3.16b,#8 + ext v6.16b,v1.16b,v2.16b,#8 + add v3.2d,v3.2d,v25.2d // "T1 + H + K512[i]" +.inst 0xcec08217 //sha512su0 v23.16b,v16.16b + ext v7.16b,v19.16b,v20.16b,#8 +.inst 0xce6680a3 //sha512h v3.16b,v5.16b,v6.16b +.inst 0xce678ad7 //sha512su1 v23.16b,v22.16b,v7.16b + add v4.2d,v1.2d,v3.2d // "D + T1" +.inst 0xce608423 //sha512h2 v3.16b,v1.16b,v0.16b + add v24.2d,v24.2d,v16.2d + ld1 {v25.2d},[x3],#16 + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v4.16b,v2.16b,#8 + ext v6.16b,v0.16b,v4.16b,#8 + add v2.2d,v2.2d,v24.2d // "T1 + H + K512[i]" +.inst 0xcec08230 //sha512su0 v16.16b,v17.16b + ext v7.16b,v20.16b,v21.16b,#8 +.inst 0xce6680a2 //sha512h v2.16b,v5.16b,v6.16b +.inst 0xce678af0 //sha512su1 v16.16b,v23.16b,v7.16b + add v1.2d,v0.2d,v2.2d // "D + T1" +.inst 0xce638402 //sha512h2 v2.16b,v0.16b,v3.16b + add v25.2d,v25.2d,v17.2d + ld1 {v24.2d},[x3],#16 + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v1.16b,v4.16b,#8 + ext v6.16b,v3.16b,v1.16b,#8 + add v4.2d,v4.2d,v25.2d // "T1 + H + K512[i]" +.inst 0xcec08251 //sha512su0 v17.16b,v18.16b + ext v7.16b,v21.16b,v22.16b,#8 +.inst 0xce6680a4 //sha512h v4.16b,v5.16b,v6.16b +.inst 0xce678a11 //sha512su1 v17.16b,v16.16b,v7.16b + add v0.2d,v3.2d,v4.2d // "D + T1" +.inst 0xce628464 //sha512h2 v4.16b,v3.16b,v2.16b + add v24.2d,v24.2d,v18.2d + ld1 {v25.2d},[x3],#16 + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v0.16b,v1.16b,#8 + ext v6.16b,v2.16b,v0.16b,#8 + add v1.2d,v1.2d,v24.2d // "T1 + H + K512[i]" +.inst 0xcec08272 //sha512su0 v18.16b,v19.16b + ext v7.16b,v22.16b,v23.16b,#8 +.inst 0xce6680a1 //sha512h v1.16b,v5.16b,v6.16b +.inst 0xce678a32 //sha512su1 v18.16b,v17.16b,v7.16b + add v3.2d,v2.2d,v1.2d // "D + T1" +.inst 0xce648441 //sha512h2 v1.16b,v2.16b,v4.16b + add v25.2d,v25.2d,v19.2d + ld1 {v24.2d},[x3],#16 + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v3.16b,v0.16b,#8 + ext v6.16b,v4.16b,v3.16b,#8 + add v0.2d,v0.2d,v25.2d // "T1 + H + K512[i]" +.inst 0xcec08293 //sha512su0 v19.16b,v20.16b + ext v7.16b,v23.16b,v16.16b,#8 +.inst 0xce6680a0 //sha512h v0.16b,v5.16b,v6.16b +.inst 0xce678a53 //sha512su1 v19.16b,v18.16b,v7.16b + add v2.2d,v4.2d,v0.2d // "D + T1" +.inst 0xce618480 //sha512h2 v0.16b,v4.16b,v1.16b + add v24.2d,v24.2d,v20.2d + ld1 {v25.2d},[x3],#16 + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v2.16b,v3.16b,#8 + ext v6.16b,v1.16b,v2.16b,#8 + add v3.2d,v3.2d,v24.2d // "T1 + H + K512[i]" +.inst 0xcec082b4 //sha512su0 v20.16b,v21.16b + ext v7.16b,v16.16b,v17.16b,#8 +.inst 0xce6680a3 //sha512h v3.16b,v5.16b,v6.16b +.inst 0xce678a74 //sha512su1 v20.16b,v19.16b,v7.16b + add v4.2d,v1.2d,v3.2d // "D + T1" +.inst 0xce608423 //sha512h2 v3.16b,v1.16b,v0.16b + add v25.2d,v25.2d,v21.2d + ld1 {v24.2d},[x3],#16 + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v4.16b,v2.16b,#8 + ext v6.16b,v0.16b,v4.16b,#8 + add v2.2d,v2.2d,v25.2d // "T1 + H + K512[i]" +.inst 0xcec082d5 //sha512su0 v21.16b,v22.16b + ext v7.16b,v17.16b,v18.16b,#8 +.inst 0xce6680a2 //sha512h v2.16b,v5.16b,v6.16b +.inst 0xce678a95 //sha512su1 v21.16b,v20.16b,v7.16b + add v1.2d,v0.2d,v2.2d // "D + T1" +.inst 0xce638402 //sha512h2 v2.16b,v0.16b,v3.16b + add v24.2d,v24.2d,v22.2d + ld1 {v25.2d},[x3],#16 + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v1.16b,v4.16b,#8 + ext v6.16b,v3.16b,v1.16b,#8 + add v4.2d,v4.2d,v24.2d // "T1 + H + K512[i]" +.inst 0xcec082f6 //sha512su0 v22.16b,v23.16b + ext v7.16b,v18.16b,v19.16b,#8 +.inst 0xce6680a4 //sha512h v4.16b,v5.16b,v6.16b +.inst 0xce678ab6 //sha512su1 v22.16b,v21.16b,v7.16b + add v0.2d,v3.2d,v4.2d // "D + T1" +.inst 0xce628464 //sha512h2 v4.16b,v3.16b,v2.16b + add v25.2d,v25.2d,v23.2d + ld1 {v24.2d},[x3],#16 + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v0.16b,v1.16b,#8 + ext v6.16b,v2.16b,v0.16b,#8 + add v1.2d,v1.2d,v25.2d // "T1 + H + K512[i]" +.inst 0xcec08217 //sha512su0 v23.16b,v16.16b + ext v7.16b,v19.16b,v20.16b,#8 +.inst 0xce6680a1 //sha512h v1.16b,v5.16b,v6.16b +.inst 0xce678ad7 //sha512su1 v23.16b,v22.16b,v7.16b + add v3.2d,v2.2d,v1.2d // "D + T1" +.inst 0xce648441 //sha512h2 v1.16b,v2.16b,v4.16b + add v24.2d,v24.2d,v16.2d + ld1 {v25.2d},[x3],#16 + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v3.16b,v0.16b,#8 + ext v6.16b,v4.16b,v3.16b,#8 + add v0.2d,v0.2d,v24.2d // "T1 + H + K512[i]" +.inst 0xcec08230 //sha512su0 v16.16b,v17.16b + ext v7.16b,v20.16b,v21.16b,#8 +.inst 0xce6680a0 //sha512h v0.16b,v5.16b,v6.16b +.inst 0xce678af0 //sha512su1 v16.16b,v23.16b,v7.16b + add v2.2d,v4.2d,v0.2d // "D + T1" +.inst 0xce618480 //sha512h2 v0.16b,v4.16b,v1.16b + add v25.2d,v25.2d,v17.2d + ld1 {v24.2d},[x3],#16 + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v2.16b,v3.16b,#8 + ext v6.16b,v1.16b,v2.16b,#8 + add v3.2d,v3.2d,v25.2d // "T1 + H + K512[i]" +.inst 0xcec08251 //sha512su0 v17.16b,v18.16b + ext v7.16b,v21.16b,v22.16b,#8 +.inst 0xce6680a3 //sha512h v3.16b,v5.16b,v6.16b +.inst 0xce678a11 //sha512su1 v17.16b,v16.16b,v7.16b + add v4.2d,v1.2d,v3.2d // "D + T1" +.inst 0xce608423 //sha512h2 v3.16b,v1.16b,v0.16b + add v24.2d,v24.2d,v18.2d + ld1 {v25.2d},[x3],#16 + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v4.16b,v2.16b,#8 + ext v6.16b,v0.16b,v4.16b,#8 + add v2.2d,v2.2d,v24.2d // "T1 + H + K512[i]" +.inst 0xcec08272 //sha512su0 v18.16b,v19.16b + ext v7.16b,v22.16b,v23.16b,#8 +.inst 0xce6680a2 //sha512h v2.16b,v5.16b,v6.16b +.inst 0xce678a32 //sha512su1 v18.16b,v17.16b,v7.16b + add v1.2d,v0.2d,v2.2d // "D + T1" +.inst 0xce638402 //sha512h2 v2.16b,v0.16b,v3.16b + add v25.2d,v25.2d,v19.2d + ld1 {v24.2d},[x3],#16 + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v1.16b,v4.16b,#8 + ext v6.16b,v3.16b,v1.16b,#8 + add v4.2d,v4.2d,v25.2d // "T1 + H + K512[i]" +.inst 0xcec08293 //sha512su0 v19.16b,v20.16b + ext v7.16b,v23.16b,v16.16b,#8 +.inst 0xce6680a4 //sha512h v4.16b,v5.16b,v6.16b +.inst 0xce678a53 //sha512su1 v19.16b,v18.16b,v7.16b + add v0.2d,v3.2d,v4.2d // "D + T1" +.inst 0xce628464 //sha512h2 v4.16b,v3.16b,v2.16b + add v24.2d,v24.2d,v20.2d + ld1 {v25.2d},[x3],#16 + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v0.16b,v1.16b,#8 + ext v6.16b,v2.16b,v0.16b,#8 + add v1.2d,v1.2d,v24.2d // "T1 + H + K512[i]" +.inst 0xcec082b4 //sha512su0 v20.16b,v21.16b + ext v7.16b,v16.16b,v17.16b,#8 +.inst 0xce6680a1 //sha512h v1.16b,v5.16b,v6.16b +.inst 0xce678a74 //sha512su1 v20.16b,v19.16b,v7.16b + add v3.2d,v2.2d,v1.2d // "D + T1" +.inst 0xce648441 //sha512h2 v1.16b,v2.16b,v4.16b + add v25.2d,v25.2d,v21.2d + ld1 {v24.2d},[x3],#16 + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v3.16b,v0.16b,#8 + ext v6.16b,v4.16b,v3.16b,#8 + add v0.2d,v0.2d,v25.2d // "T1 + H + K512[i]" +.inst 0xcec082d5 //sha512su0 v21.16b,v22.16b + ext v7.16b,v17.16b,v18.16b,#8 +.inst 0xce6680a0 //sha512h v0.16b,v5.16b,v6.16b +.inst 0xce678a95 //sha512su1 v21.16b,v20.16b,v7.16b + add v2.2d,v4.2d,v0.2d // "D + T1" +.inst 0xce618480 //sha512h2 v0.16b,v4.16b,v1.16b + add v24.2d,v24.2d,v22.2d + ld1 {v25.2d},[x3],#16 + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v2.16b,v3.16b,#8 + ext v6.16b,v1.16b,v2.16b,#8 + add v3.2d,v3.2d,v24.2d // "T1 + H + K512[i]" +.inst 0xcec082f6 //sha512su0 v22.16b,v23.16b + ext v7.16b,v18.16b,v19.16b,#8 +.inst 0xce6680a3 //sha512h v3.16b,v5.16b,v6.16b +.inst 0xce678ab6 //sha512su1 v22.16b,v21.16b,v7.16b + add v4.2d,v1.2d,v3.2d // "D + T1" +.inst 0xce608423 //sha512h2 v3.16b,v1.16b,v0.16b + add v25.2d,v25.2d,v23.2d + ld1 {v24.2d},[x3],#16 + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v4.16b,v2.16b,#8 + ext v6.16b,v0.16b,v4.16b,#8 + add v2.2d,v2.2d,v25.2d // "T1 + H + K512[i]" +.inst 0xcec08217 //sha512su0 v23.16b,v16.16b + ext v7.16b,v19.16b,v20.16b,#8 +.inst 0xce6680a2 //sha512h v2.16b,v5.16b,v6.16b +.inst 0xce678ad7 //sha512su1 v23.16b,v22.16b,v7.16b + add v1.2d,v0.2d,v2.2d // "D + T1" +.inst 0xce638402 //sha512h2 v2.16b,v0.16b,v3.16b + ld1 {v25.2d},[x3],#16 + add v24.2d,v24.2d,v16.2d + ld1 {v16.16b},[x1],#16 // load next input + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v1.16b,v4.16b,#8 + ext v6.16b,v3.16b,v1.16b,#8 + add v4.2d,v4.2d,v24.2d // "T1 + H + K512[i]" +.inst 0xce6680a4 //sha512h v4.16b,v5.16b,v6.16b + rev64 v16.16b,v16.16b + add v0.2d,v3.2d,v4.2d // "D + T1" +.inst 0xce628464 //sha512h2 v4.16b,v3.16b,v2.16b + ld1 {v24.2d},[x3],#16 + add v25.2d,v25.2d,v17.2d + ld1 {v17.16b},[x1],#16 // load next input + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v0.16b,v1.16b,#8 + ext v6.16b,v2.16b,v0.16b,#8 + add v1.2d,v1.2d,v25.2d // "T1 + H + K512[i]" +.inst 0xce6680a1 //sha512h v1.16b,v5.16b,v6.16b + rev64 v17.16b,v17.16b + add v3.2d,v2.2d,v1.2d // "D + T1" +.inst 0xce648441 //sha512h2 v1.16b,v2.16b,v4.16b + ld1 {v25.2d},[x3],#16 + add v24.2d,v24.2d,v18.2d + ld1 {v18.16b},[x1],#16 // load next input + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v3.16b,v0.16b,#8 + ext v6.16b,v4.16b,v3.16b,#8 + add v0.2d,v0.2d,v24.2d // "T1 + H + K512[i]" +.inst 0xce6680a0 //sha512h v0.16b,v5.16b,v6.16b + rev64 v18.16b,v18.16b + add v2.2d,v4.2d,v0.2d // "D + T1" +.inst 0xce618480 //sha512h2 v0.16b,v4.16b,v1.16b + ld1 {v24.2d},[x3],#16 + add v25.2d,v25.2d,v19.2d + ld1 {v19.16b},[x1],#16 // load next input + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v2.16b,v3.16b,#8 + ext v6.16b,v1.16b,v2.16b,#8 + add v3.2d,v3.2d,v25.2d // "T1 + H + K512[i]" +.inst 0xce6680a3 //sha512h v3.16b,v5.16b,v6.16b + rev64 v19.16b,v19.16b + add v4.2d,v1.2d,v3.2d // "D + T1" +.inst 0xce608423 //sha512h2 v3.16b,v1.16b,v0.16b + ld1 {v25.2d},[x3],#16 + add v24.2d,v24.2d,v20.2d + ld1 {v20.16b},[x1],#16 // load next input + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v4.16b,v2.16b,#8 + ext v6.16b,v0.16b,v4.16b,#8 + add v2.2d,v2.2d,v24.2d // "T1 + H + K512[i]" +.inst 0xce6680a2 //sha512h v2.16b,v5.16b,v6.16b + rev64 v20.16b,v20.16b + add v1.2d,v0.2d,v2.2d // "D + T1" +.inst 0xce638402 //sha512h2 v2.16b,v0.16b,v3.16b + ld1 {v24.2d},[x3],#16 + add v25.2d,v25.2d,v21.2d + ld1 {v21.16b},[x1],#16 // load next input + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v1.16b,v4.16b,#8 + ext v6.16b,v3.16b,v1.16b,#8 + add v4.2d,v4.2d,v25.2d // "T1 + H + K512[i]" +.inst 0xce6680a4 //sha512h v4.16b,v5.16b,v6.16b + rev64 v21.16b,v21.16b + add v0.2d,v3.2d,v4.2d // "D + T1" +.inst 0xce628464 //sha512h2 v4.16b,v3.16b,v2.16b + ld1 {v25.2d},[x3],#16 + add v24.2d,v24.2d,v22.2d + ld1 {v22.16b},[x1],#16 // load next input + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v0.16b,v1.16b,#8 + ext v6.16b,v2.16b,v0.16b,#8 + add v1.2d,v1.2d,v24.2d // "T1 + H + K512[i]" +.inst 0xce6680a1 //sha512h v1.16b,v5.16b,v6.16b + rev64 v22.16b,v22.16b + add v3.2d,v2.2d,v1.2d // "D + T1" +.inst 0xce648441 //sha512h2 v1.16b,v2.16b,v4.16b + sub x3,x3,#80*8 // rewind + add v25.2d,v25.2d,v23.2d + ld1 {v23.16b},[x1],#16 // load next input + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v3.16b,v0.16b,#8 + ext v6.16b,v4.16b,v3.16b,#8 + add v0.2d,v0.2d,v25.2d // "T1 + H + K512[i]" +.inst 0xce6680a0 //sha512h v0.16b,v5.16b,v6.16b + rev64 v23.16b,v23.16b + add v2.2d,v4.2d,v0.2d // "D + T1" +.inst 0xce618480 //sha512h2 v0.16b,v4.16b,v1.16b + add v0.2d,v0.2d,v26.2d // accumulate + add v1.2d,v1.2d,v27.2d + add v2.2d,v2.2d,v28.2d + add v3.2d,v3.2d,v29.2d + + cbnz x2,.Loop_hw + + st1 {v0.2d,v1.2d,v2.2d,v3.2d},[x0] // store context + + ldr x29,[sp],#16 + ret +.size sha512_block_armv8,.-sha512_block_armv8 +#endif diff --git a/vere/ext/openssl/gen/linux-aarch64/include/crypto/bn_conf.h b/vere/ext/openssl/gen/linux-aarch64/include/crypto/bn_conf.h new file mode 100644 index 0000000..5312ef5 --- /dev/null +++ b/vere/ext/openssl/gen/linux-aarch64/include/crypto/bn_conf.h @@ -0,0 +1,28 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from include/crypto/bn_conf.h.in */ +/* + * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef OSSL_CRYPTO_BN_CONF_H +# define OSSL_CRYPTO_BN_CONF_H + +/* + * The contents of this file are not used in the UEFI build, as + * both 32-bit and 64-bit builds are supported from a single run + * of the Configure script. + */ + +/* Should we define BN_DIV2W here? */ + +/* Only one for the following should be defined */ +#define SIXTY_FOUR_BIT_LONG +#undef SIXTY_FOUR_BIT +#undef THIRTY_TWO_BIT + +#endif diff --git a/vere/ext/openssl/gen/linux-aarch64/include/crypto/buildinf.h b/vere/ext/openssl/gen/linux-aarch64/include/crypto/buildinf.h new file mode 100644 index 0000000..99e3de0 --- /dev/null +++ b/vere/ext/openssl/gen/linux-aarch64/include/crypto/buildinf.h @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux-aarch64" +#define DATE "built on: Thu Sep 19 13:35:11 2024 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a + * workaround for the situation where CFLAGS gets too long for a C90 string + * literal + */ +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f', + 'P','I','C',' ','-','p','t','h','r','e','a','d',' ','-','W','a', + 'l','l',' ','-','O','3',' ','-','D','O','P','E','N','S','S','L', + '_','U','S','E','_','N','O','D','E','L','E','T','E',' ','-','D', + 'O','P','E','N','S','S','L','_','P','I','C',' ','-','D','O','P', + 'E','N','S','S','L','_','C','P','U','I','D','_','O','B','J',' ', + '-','D','O','P','E','N','S','S','L','_','B','N','_','A','S','M', + '_','M','O','N','T',' ','-','D','S','H','A','1','_','A','S','M', + ' ','-','D','S','H','A','2','5','6','_','A','S','M',' ','-','D', + 'S','H','A','5','1','2','_','A','S','M',' ','-','D','K','E','C', + 'C','A','K','1','6','0','0','_','A','S','M',' ','-','D','V','P', + 'A','E','S','_','A','S','M',' ','-','D','E','C','P','_','N','I', + 'S','T','Z','2','5','6','_','A','S','M',' ','-','D','P','O','L', + 'Y','1','3','0','5','_','A','S','M',' ','-','D','N','D','E','B', + 'U','G','\0' +}; diff --git a/vere/ext/openssl/gen/linux-aarch64/include/crypto/dso_conf.h b/vere/ext/openssl/gen/linux-aarch64/include/crypto/dso_conf.h new file mode 100644 index 0000000..4b1167c --- /dev/null +++ b/vere/ext/openssl/gen/linux-aarch64/include/crypto/dso_conf.h @@ -0,0 +1,17 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from include/crypto/dso_conf.h.in */ +/* + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef OSSL_CRYPTO_DSO_CONF_H +# define OSSL_CRYPTO_DSO_CONF_H +# define DSO_DLFCN +# define HAVE_DLFCN_H +# define DSO_EXTENSION ".so" +#endif diff --git a/vere/ext/openssl/gen/linux-aarch64/include/openssl/opensslconf.h b/vere/ext/openssl/gen/linux-aarch64/include/openssl/opensslconf.h new file mode 100644 index 0000000..9ecdb8f --- /dev/null +++ b/vere/ext/openssl/gen/linux-aarch64/include/openssl/opensslconf.h @@ -0,0 +1,197 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/opensslconf.h.in + * + * Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef OPENSSL_ALGORITHM_DEFINES +# error OPENSSL_ALGORITHM_DEFINES no longer supported +#endif + +/* + * OpenSSL was configured with the following options: + */ + +#ifndef OPENSSL_NO_MD2 +# define OPENSSL_NO_MD2 +#endif +#ifndef OPENSSL_NO_RC5 +# define OPENSSL_NO_RC5 +#endif +#ifndef OPENSSL_THREADS +# define OPENSSL_THREADS +#endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif +#ifndef OPENSSL_NO_ASAN +# define OPENSSL_NO_ASAN +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG +# define OPENSSL_NO_CRYPTO_MDEBUG +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +#endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif +#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +# define OPENSSL_NO_EC_NISTP_64_GCC_128 +#endif +#ifndef OPENSSL_NO_EGD +# define OPENSSL_NO_EGD +#endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif +#ifndef OPENSSL_NO_FUZZ_AFL +# define OPENSSL_NO_FUZZ_AFL +#endif +#ifndef OPENSSL_NO_FUZZ_LIBFUZZER +# define OPENSSL_NO_FUZZ_LIBFUZZER +#endif +#ifndef OPENSSL_NO_HEARTBEATS +# define OPENSSL_NO_HEARTBEATS +#endif +#ifndef OPENSSL_NO_MSAN +# define OPENSSL_NO_MSAN +#endif +#ifndef OPENSSL_NO_SCTP +# define OPENSSL_NO_SCTP +#endif +#ifndef OPENSSL_NO_SSL_TRACE +# define OPENSSL_NO_SSL_TRACE +#endif +#ifndef OPENSSL_NO_SSL3 +# define OPENSSL_NO_SSL3 +#endif +#ifndef OPENSSL_NO_SSL3_METHOD +# define OPENSSL_NO_SSL3_METHOD +#endif +#ifndef OPENSSL_NO_UBSAN +# define OPENSSL_NO_UBSAN +#endif +#ifndef OPENSSL_NO_UNIT_TEST +# define OPENSSL_NO_UNIT_TEST +#endif +#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS +# define OPENSSL_NO_WEAK_SSL_CIPHERS +#endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif + + +/* + * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers + * don't like that. This will hopefully silence them. + */ +#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; + +/* + * Applications should use -DOPENSSL_API_COMPAT= to suppress the + * declarations of functions deprecated in or before . Otherwise, they + * still won't see them if the library has been built to disable deprecated + * functions. + */ +#ifndef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# elif defined(__SUNPRO_C) +# if (__SUNPRO_C >= 0x5130) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +#endif + +#ifndef OPENSSL_FILE +# ifdef OPENSSL_NO_FILENAMES +# define OPENSSL_FILE "" +# define OPENSSL_LINE 0 +# else +# define OPENSSL_FILE __FILE__ +# define OPENSSL_LINE __LINE__ +# endif +#endif + +#ifndef OPENSSL_MIN_API +# define OPENSSL_MIN_API 0 +#endif + +#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API +# undef OPENSSL_API_COMPAT +# define OPENSSL_API_COMPAT OPENSSL_MIN_API +#endif + +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10100000L +# define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_1_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10000000L +# define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_0_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x00908000L +# define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_0_9_8(f) +#endif + +/* Generate 80386 code? */ +#undef I386_ONLY + +#undef OPENSSL_UNISTD +#define OPENSSL_UNISTD + +#undef OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* + * The following are cipher-specific, but are part of the public API. + */ +#if !defined(OPENSSL_SYS_UEFI) +# undef BN_LLONG +/* Only one for the following should be defined */ +# define SIXTY_FOUR_BIT_LONG +# undef SIXTY_FOUR_BIT +# undef THIRTY_TWO_BIT +#endif + +#define RC4_INT unsigned char + +#ifdef __cplusplus +} +#endif diff --git a/vere/ext/openssl/gen/linux-x86_64/crypto/aes/aesni-mb-x86_64.s b/vere/ext/openssl/gen/linux-x86_64/crypto/aes/aesni-mb-x86_64.s new file mode 100644 index 0000000..f2b5662 --- /dev/null +++ b/vere/ext/openssl/gen/linux-x86_64/crypto/aes/aesni-mb-x86_64.s @@ -0,0 +1,1507 @@ +.text + + + +.globl aesni_multi_cbc_encrypt +.type aesni_multi_cbc_encrypt,@function +.align 32 +aesni_multi_cbc_encrypt: +.cfi_startproc + cmpl $2,%edx + jb .Lenc_non_avx + movl OPENSSL_ia32cap_P+4(%rip),%ecx + testl $268435456,%ecx + jnz _avx_cbc_enc_shortcut + jmp .Lenc_non_avx +.align 16 +.Lenc_non_avx: + movq %rsp,%rax +.cfi_def_cfa_register %rax + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_offset %r15,-56 + + + + + + + subq $48,%rsp + andq $-64,%rsp + movq %rax,16(%rsp) +.cfi_escape 0x0f,0x05,0x77,0x10,0x06,0x23,0x08 + +.Lenc4x_body: + movdqu (%rsi),%xmm12 + leaq 120(%rsi),%rsi + leaq 80(%rdi),%rdi + +.Lenc4x_loop_grande: + movl %edx,24(%rsp) + xorl %edx,%edx + movl -64(%rdi),%ecx + movq -80(%rdi),%r8 + cmpl %edx,%ecx + movq -72(%rdi),%r12 + cmovgl %ecx,%edx + testl %ecx,%ecx + movdqu -56(%rdi),%xmm2 + movl %ecx,32(%rsp) + cmovleq %rsp,%r8 + movl -24(%rdi),%ecx + movq -40(%rdi),%r9 + cmpl %edx,%ecx + movq -32(%rdi),%r13 + cmovgl %ecx,%edx + testl %ecx,%ecx + movdqu -16(%rdi),%xmm3 + movl %ecx,36(%rsp) + cmovleq %rsp,%r9 + movl 16(%rdi),%ecx + movq 0(%rdi),%r10 + cmpl %edx,%ecx + movq 8(%rdi),%r14 + cmovgl %ecx,%edx + testl %ecx,%ecx + movdqu 24(%rdi),%xmm4 + movl %ecx,40(%rsp) + cmovleq %rsp,%r10 + movl 56(%rdi),%ecx + movq 40(%rdi),%r11 + cmpl %edx,%ecx + movq 48(%rdi),%r15 + cmovgl %ecx,%edx + testl %ecx,%ecx + movdqu 64(%rdi),%xmm5 + movl %ecx,44(%rsp) + cmovleq %rsp,%r11 + testl %edx,%edx + jz .Lenc4x_done + + movups 16-120(%rsi),%xmm1 + pxor %xmm12,%xmm2 + movups 32-120(%rsi),%xmm0 + pxor %xmm12,%xmm3 + movl 240-120(%rsi),%eax + pxor %xmm12,%xmm4 + movdqu (%r8),%xmm6 + pxor %xmm12,%xmm5 + movdqu (%r9),%xmm7 + pxor %xmm6,%xmm2 + movdqu (%r10),%xmm8 + pxor %xmm7,%xmm3 + movdqu (%r11),%xmm9 + pxor %xmm8,%xmm4 + pxor %xmm9,%xmm5 + movdqa 32(%rsp),%xmm10 + xorq %rbx,%rbx + jmp .Loop_enc4x + +.align 32 +.Loop_enc4x: + addq $16,%rbx + leaq 16(%rsp),%rbp + movl $1,%ecx + subq %rbx,%rbp + +.byte 102,15,56,220,209 + prefetcht0 31(%r8,%rbx,1) + prefetcht0 31(%r9,%rbx,1) +.byte 102,15,56,220,217 + prefetcht0 31(%r10,%rbx,1) + prefetcht0 31(%r10,%rbx,1) +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 + movups 48-120(%rsi),%xmm1 + cmpl 32(%rsp),%ecx +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 + cmovgeq %rbp,%r8 + cmovgq %rbp,%r12 +.byte 102,15,56,220,232 + movups -56(%rsi),%xmm0 + cmpl 36(%rsp),%ecx +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 + cmovgeq %rbp,%r9 + cmovgq %rbp,%r13 +.byte 102,15,56,220,233 + movups -40(%rsi),%xmm1 + cmpl 40(%rsp),%ecx +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 + cmovgeq %rbp,%r10 + cmovgq %rbp,%r14 +.byte 102,15,56,220,232 + movups -24(%rsi),%xmm0 + cmpl 44(%rsp),%ecx +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 + cmovgeq %rbp,%r11 + cmovgq %rbp,%r15 +.byte 102,15,56,220,233 + movups -8(%rsi),%xmm1 + movdqa %xmm10,%xmm11 +.byte 102,15,56,220,208 + prefetcht0 15(%r12,%rbx,1) + prefetcht0 15(%r13,%rbx,1) +.byte 102,15,56,220,216 + prefetcht0 15(%r14,%rbx,1) + prefetcht0 15(%r15,%rbx,1) +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 + movups 128-120(%rsi),%xmm0 + pxor %xmm12,%xmm12 + +.byte 102,15,56,220,209 + pcmpgtd %xmm12,%xmm11 + movdqu -120(%rsi),%xmm12 +.byte 102,15,56,220,217 + paddd %xmm11,%xmm10 + movdqa %xmm10,32(%rsp) +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 + movups 144-120(%rsi),%xmm1 + + cmpl $11,%eax + +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 + movups 160-120(%rsi),%xmm0 + + jb .Lenc4x_tail + +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 + movups 176-120(%rsi),%xmm1 + +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 + movups 192-120(%rsi),%xmm0 + + je .Lenc4x_tail + +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 + movups 208-120(%rsi),%xmm1 + +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 + movups 224-120(%rsi),%xmm0 + jmp .Lenc4x_tail + +.align 32 +.Lenc4x_tail: +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 + movdqu (%r8,%rbx,1),%xmm6 + movdqu 16-120(%rsi),%xmm1 + +.byte 102,15,56,221,208 + movdqu (%r9,%rbx,1),%xmm7 + pxor %xmm12,%xmm6 +.byte 102,15,56,221,216 + movdqu (%r10,%rbx,1),%xmm8 + pxor %xmm12,%xmm7 +.byte 102,15,56,221,224 + movdqu (%r11,%rbx,1),%xmm9 + pxor %xmm12,%xmm8 +.byte 102,15,56,221,232 + movdqu 32-120(%rsi),%xmm0 + pxor %xmm12,%xmm9 + + movups %xmm2,-16(%r12,%rbx,1) + pxor %xmm6,%xmm2 + movups %xmm3,-16(%r13,%rbx,1) + pxor %xmm7,%xmm3 + movups %xmm4,-16(%r14,%rbx,1) + pxor %xmm8,%xmm4 + movups %xmm5,-16(%r15,%rbx,1) + pxor %xmm9,%xmm5 + + decl %edx + jnz .Loop_enc4x + + movq 16(%rsp),%rax +.cfi_def_cfa %rax,8 + movl 24(%rsp),%edx + + + + + + + + + + + leaq 160(%rdi),%rdi + decl %edx + jnz .Lenc4x_loop_grande + +.Lenc4x_done: + movq -48(%rax),%r15 +.cfi_restore %r15 + movq -40(%rax),%r14 +.cfi_restore %r14 + movq -32(%rax),%r13 +.cfi_restore %r13 + movq -24(%rax),%r12 +.cfi_restore %r12 + movq -16(%rax),%rbp +.cfi_restore %rbp + movq -8(%rax),%rbx +.cfi_restore %rbx + leaq (%rax),%rsp +.cfi_def_cfa_register %rsp +.Lenc4x_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size aesni_multi_cbc_encrypt,.-aesni_multi_cbc_encrypt + +.globl aesni_multi_cbc_decrypt +.type aesni_multi_cbc_decrypt,@function +.align 32 +aesni_multi_cbc_decrypt: +.cfi_startproc + cmpl $2,%edx + jb .Ldec_non_avx + movl OPENSSL_ia32cap_P+4(%rip),%ecx + testl $268435456,%ecx + jnz _avx_cbc_dec_shortcut + jmp .Ldec_non_avx +.align 16 +.Ldec_non_avx: + movq %rsp,%rax +.cfi_def_cfa_register %rax + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_offset %r15,-56 + + + + + + + subq $48,%rsp + andq $-64,%rsp + movq %rax,16(%rsp) +.cfi_escape 0x0f,0x05,0x77,0x10,0x06,0x23,0x08 + +.Ldec4x_body: + movdqu (%rsi),%xmm12 + leaq 120(%rsi),%rsi + leaq 80(%rdi),%rdi + +.Ldec4x_loop_grande: + movl %edx,24(%rsp) + xorl %edx,%edx + movl -64(%rdi),%ecx + movq -80(%rdi),%r8 + cmpl %edx,%ecx + movq -72(%rdi),%r12 + cmovgl %ecx,%edx + testl %ecx,%ecx + movdqu -56(%rdi),%xmm6 + movl %ecx,32(%rsp) + cmovleq %rsp,%r8 + movl -24(%rdi),%ecx + movq -40(%rdi),%r9 + cmpl %edx,%ecx + movq -32(%rdi),%r13 + cmovgl %ecx,%edx + testl %ecx,%ecx + movdqu -16(%rdi),%xmm7 + movl %ecx,36(%rsp) + cmovleq %rsp,%r9 + movl 16(%rdi),%ecx + movq 0(%rdi),%r10 + cmpl %edx,%ecx + movq 8(%rdi),%r14 + cmovgl %ecx,%edx + testl %ecx,%ecx + movdqu 24(%rdi),%xmm8 + movl %ecx,40(%rsp) + cmovleq %rsp,%r10 + movl 56(%rdi),%ecx + movq 40(%rdi),%r11 + cmpl %edx,%ecx + movq 48(%rdi),%r15 + cmovgl %ecx,%edx + testl %ecx,%ecx + movdqu 64(%rdi),%xmm9 + movl %ecx,44(%rsp) + cmovleq %rsp,%r11 + testl %edx,%edx + jz .Ldec4x_done + + movups 16-120(%rsi),%xmm1 + movups 32-120(%rsi),%xmm0 + movl 240-120(%rsi),%eax + movdqu (%r8),%xmm2 + movdqu (%r9),%xmm3 + pxor %xmm12,%xmm2 + movdqu (%r10),%xmm4 + pxor %xmm12,%xmm3 + movdqu (%r11),%xmm5 + pxor %xmm12,%xmm4 + pxor %xmm12,%xmm5 + movdqa 32(%rsp),%xmm10 + xorq %rbx,%rbx + jmp .Loop_dec4x + +.align 32 +.Loop_dec4x: + addq $16,%rbx + leaq 16(%rsp),%rbp + movl $1,%ecx + subq %rbx,%rbp + +.byte 102,15,56,222,209 + prefetcht0 31(%r8,%rbx,1) + prefetcht0 31(%r9,%rbx,1) +.byte 102,15,56,222,217 + prefetcht0 31(%r10,%rbx,1) + prefetcht0 31(%r11,%rbx,1) +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 + movups 48-120(%rsi),%xmm1 + cmpl 32(%rsp),%ecx +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 + cmovgeq %rbp,%r8 + cmovgq %rbp,%r12 +.byte 102,15,56,222,232 + movups -56(%rsi),%xmm0 + cmpl 36(%rsp),%ecx +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 + cmovgeq %rbp,%r9 + cmovgq %rbp,%r13 +.byte 102,15,56,222,233 + movups -40(%rsi),%xmm1 + cmpl 40(%rsp),%ecx +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 + cmovgeq %rbp,%r10 + cmovgq %rbp,%r14 +.byte 102,15,56,222,232 + movups -24(%rsi),%xmm0 + cmpl 44(%rsp),%ecx +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 + cmovgeq %rbp,%r11 + cmovgq %rbp,%r15 +.byte 102,15,56,222,233 + movups -8(%rsi),%xmm1 + movdqa %xmm10,%xmm11 +.byte 102,15,56,222,208 + prefetcht0 15(%r12,%rbx,1) + prefetcht0 15(%r13,%rbx,1) +.byte 102,15,56,222,216 + prefetcht0 15(%r14,%rbx,1) + prefetcht0 15(%r15,%rbx,1) +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 + movups 128-120(%rsi),%xmm0 + pxor %xmm12,%xmm12 + +.byte 102,15,56,222,209 + pcmpgtd %xmm12,%xmm11 + movdqu -120(%rsi),%xmm12 +.byte 102,15,56,222,217 + paddd %xmm11,%xmm10 + movdqa %xmm10,32(%rsp) +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 + movups 144-120(%rsi),%xmm1 + + cmpl $11,%eax + +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 + movups 160-120(%rsi),%xmm0 + + jb .Ldec4x_tail + +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 + movups 176-120(%rsi),%xmm1 + +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 + movups 192-120(%rsi),%xmm0 + + je .Ldec4x_tail + +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 + movups 208-120(%rsi),%xmm1 + +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 + movups 224-120(%rsi),%xmm0 + jmp .Ldec4x_tail + +.align 32 +.Ldec4x_tail: +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 + pxor %xmm0,%xmm6 + pxor %xmm0,%xmm7 +.byte 102,15,56,222,233 + movdqu 16-120(%rsi),%xmm1 + pxor %xmm0,%xmm8 + pxor %xmm0,%xmm9 + movdqu 32-120(%rsi),%xmm0 + +.byte 102,15,56,223,214 +.byte 102,15,56,223,223 + movdqu -16(%r8,%rbx,1),%xmm6 + movdqu -16(%r9,%rbx,1),%xmm7 +.byte 102,65,15,56,223,224 +.byte 102,65,15,56,223,233 + movdqu -16(%r10,%rbx,1),%xmm8 + movdqu -16(%r11,%rbx,1),%xmm9 + + movups %xmm2,-16(%r12,%rbx,1) + movdqu (%r8,%rbx,1),%xmm2 + movups %xmm3,-16(%r13,%rbx,1) + movdqu (%r9,%rbx,1),%xmm3 + pxor %xmm12,%xmm2 + movups %xmm4,-16(%r14,%rbx,1) + movdqu (%r10,%rbx,1),%xmm4 + pxor %xmm12,%xmm3 + movups %xmm5,-16(%r15,%rbx,1) + movdqu (%r11,%rbx,1),%xmm5 + pxor %xmm12,%xmm4 + pxor %xmm12,%xmm5 + + decl %edx + jnz .Loop_dec4x + + movq 16(%rsp),%rax +.cfi_def_cfa %rax,8 + movl 24(%rsp),%edx + + leaq 160(%rdi),%rdi + decl %edx + jnz .Ldec4x_loop_grande + +.Ldec4x_done: + movq -48(%rax),%r15 +.cfi_restore %r15 + movq -40(%rax),%r14 +.cfi_restore %r14 + movq -32(%rax),%r13 +.cfi_restore %r13 + movq -24(%rax),%r12 +.cfi_restore %r12 + movq -16(%rax),%rbp +.cfi_restore %rbp + movq -8(%rax),%rbx +.cfi_restore %rbx + leaq (%rax),%rsp +.cfi_def_cfa_register %rsp +.Ldec4x_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size aesni_multi_cbc_decrypt,.-aesni_multi_cbc_decrypt +.type aesni_multi_cbc_encrypt_avx,@function +.align 32 +aesni_multi_cbc_encrypt_avx: +.cfi_startproc +_avx_cbc_enc_shortcut: + movq %rsp,%rax +.cfi_def_cfa_register %rax + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_offset %r15,-56 + + + + + + + + + subq $192,%rsp + andq $-128,%rsp + movq %rax,16(%rsp) +.cfi_escape 0x0f,0x05,0x77,0x10,0x06,0x23,0x08 + +.Lenc8x_body: + vzeroupper + vmovdqu (%rsi),%xmm15 + leaq 120(%rsi),%rsi + leaq 160(%rdi),%rdi + shrl $1,%edx + +.Lenc8x_loop_grande: + + xorl %edx,%edx + movl -144(%rdi),%ecx + movq -160(%rdi),%r8 + cmpl %edx,%ecx + movq -152(%rdi),%rbx + cmovgl %ecx,%edx + testl %ecx,%ecx + vmovdqu -136(%rdi),%xmm2 + movl %ecx,32(%rsp) + cmovleq %rsp,%r8 + subq %r8,%rbx + movq %rbx,64(%rsp) + movl -104(%rdi),%ecx + movq -120(%rdi),%r9 + cmpl %edx,%ecx + movq -112(%rdi),%rbp + cmovgl %ecx,%edx + testl %ecx,%ecx + vmovdqu -96(%rdi),%xmm3 + movl %ecx,36(%rsp) + cmovleq %rsp,%r9 + subq %r9,%rbp + movq %rbp,72(%rsp) + movl -64(%rdi),%ecx + movq -80(%rdi),%r10 + cmpl %edx,%ecx + movq -72(%rdi),%rbp + cmovgl %ecx,%edx + testl %ecx,%ecx + vmovdqu -56(%rdi),%xmm4 + movl %ecx,40(%rsp) + cmovleq %rsp,%r10 + subq %r10,%rbp + movq %rbp,80(%rsp) + movl -24(%rdi),%ecx + movq -40(%rdi),%r11 + cmpl %edx,%ecx + movq -32(%rdi),%rbp + cmovgl %ecx,%edx + testl %ecx,%ecx + vmovdqu -16(%rdi),%xmm5 + movl %ecx,44(%rsp) + cmovleq %rsp,%r11 + subq %r11,%rbp + movq %rbp,88(%rsp) + movl 16(%rdi),%ecx + movq 0(%rdi),%r12 + cmpl %edx,%ecx + movq 8(%rdi),%rbp + cmovgl %ecx,%edx + testl %ecx,%ecx + vmovdqu 24(%rdi),%xmm6 + movl %ecx,48(%rsp) + cmovleq %rsp,%r12 + subq %r12,%rbp + movq %rbp,96(%rsp) + movl 56(%rdi),%ecx + movq 40(%rdi),%r13 + cmpl %edx,%ecx + movq 48(%rdi),%rbp + cmovgl %ecx,%edx + testl %ecx,%ecx + vmovdqu 64(%rdi),%xmm7 + movl %ecx,52(%rsp) + cmovleq %rsp,%r13 + subq %r13,%rbp + movq %rbp,104(%rsp) + movl 96(%rdi),%ecx + movq 80(%rdi),%r14 + cmpl %edx,%ecx + movq 88(%rdi),%rbp + cmovgl %ecx,%edx + testl %ecx,%ecx + vmovdqu 104(%rdi),%xmm8 + movl %ecx,56(%rsp) + cmovleq %rsp,%r14 + subq %r14,%rbp + movq %rbp,112(%rsp) + movl 136(%rdi),%ecx + movq 120(%rdi),%r15 + cmpl %edx,%ecx + movq 128(%rdi),%rbp + cmovgl %ecx,%edx + testl %ecx,%ecx + vmovdqu 144(%rdi),%xmm9 + movl %ecx,60(%rsp) + cmovleq %rsp,%r15 + subq %r15,%rbp + movq %rbp,120(%rsp) + testl %edx,%edx + jz .Lenc8x_done + + vmovups 16-120(%rsi),%xmm1 + vmovups 32-120(%rsi),%xmm0 + movl 240-120(%rsi),%eax + + vpxor (%r8),%xmm15,%xmm10 + leaq 128(%rsp),%rbp + vpxor (%r9),%xmm15,%xmm11 + vpxor (%r10),%xmm15,%xmm12 + vpxor (%r11),%xmm15,%xmm13 + vpxor %xmm10,%xmm2,%xmm2 + vpxor (%r12),%xmm15,%xmm10 + vpxor %xmm11,%xmm3,%xmm3 + vpxor (%r13),%xmm15,%xmm11 + vpxor %xmm12,%xmm4,%xmm4 + vpxor (%r14),%xmm15,%xmm12 + vpxor %xmm13,%xmm5,%xmm5 + vpxor (%r15),%xmm15,%xmm13 + vpxor %xmm10,%xmm6,%xmm6 + movl $1,%ecx + vpxor %xmm11,%xmm7,%xmm7 + vpxor %xmm12,%xmm8,%xmm8 + vpxor %xmm13,%xmm9,%xmm9 + jmp .Loop_enc8x + +.align 32 +.Loop_enc8x: + vaesenc %xmm1,%xmm2,%xmm2 + cmpl 32+0(%rsp),%ecx + vaesenc %xmm1,%xmm3,%xmm3 + prefetcht0 31(%r8) + vaesenc %xmm1,%xmm4,%xmm4 + vaesenc %xmm1,%xmm5,%xmm5 + leaq (%r8,%rbx,1),%rbx + cmovgeq %rsp,%r8 + vaesenc %xmm1,%xmm6,%xmm6 + cmovgq %rsp,%rbx + vaesenc %xmm1,%xmm7,%xmm7 + subq %r8,%rbx + vaesenc %xmm1,%xmm8,%xmm8 + vpxor 16(%r8),%xmm15,%xmm10 + movq %rbx,64+0(%rsp) + vaesenc %xmm1,%xmm9,%xmm9 + vmovups -72(%rsi),%xmm1 + leaq 16(%r8,%rbx,1),%r8 + vmovdqu %xmm10,0(%rbp) + vaesenc %xmm0,%xmm2,%xmm2 + cmpl 32+4(%rsp),%ecx + movq 64+8(%rsp),%rbx + vaesenc %xmm0,%xmm3,%xmm3 + prefetcht0 31(%r9) + vaesenc %xmm0,%xmm4,%xmm4 + vaesenc %xmm0,%xmm5,%xmm5 + leaq (%r9,%rbx,1),%rbx + cmovgeq %rsp,%r9 + vaesenc %xmm0,%xmm6,%xmm6 + cmovgq %rsp,%rbx + vaesenc %xmm0,%xmm7,%xmm7 + subq %r9,%rbx + vaesenc %xmm0,%xmm8,%xmm8 + vpxor 16(%r9),%xmm15,%xmm11 + movq %rbx,64+8(%rsp) + vaesenc %xmm0,%xmm9,%xmm9 + vmovups -56(%rsi),%xmm0 + leaq 16(%r9,%rbx,1),%r9 + vmovdqu %xmm11,16(%rbp) + vaesenc %xmm1,%xmm2,%xmm2 + cmpl 32+8(%rsp),%ecx + movq 64+16(%rsp),%rbx + vaesenc %xmm1,%xmm3,%xmm3 + prefetcht0 31(%r10) + vaesenc %xmm1,%xmm4,%xmm4 + prefetcht0 15(%r8) + vaesenc %xmm1,%xmm5,%xmm5 + leaq (%r10,%rbx,1),%rbx + cmovgeq %rsp,%r10 + vaesenc %xmm1,%xmm6,%xmm6 + cmovgq %rsp,%rbx + vaesenc %xmm1,%xmm7,%xmm7 + subq %r10,%rbx + vaesenc %xmm1,%xmm8,%xmm8 + vpxor 16(%r10),%xmm15,%xmm12 + movq %rbx,64+16(%rsp) + vaesenc %xmm1,%xmm9,%xmm9 + vmovups -40(%rsi),%xmm1 + leaq 16(%r10,%rbx,1),%r10 + vmovdqu %xmm12,32(%rbp) + vaesenc %xmm0,%xmm2,%xmm2 + cmpl 32+12(%rsp),%ecx + movq 64+24(%rsp),%rbx + vaesenc %xmm0,%xmm3,%xmm3 + prefetcht0 31(%r11) + vaesenc %xmm0,%xmm4,%xmm4 + prefetcht0 15(%r9) + vaesenc %xmm0,%xmm5,%xmm5 + leaq (%r11,%rbx,1),%rbx + cmovgeq %rsp,%r11 + vaesenc %xmm0,%xmm6,%xmm6 + cmovgq %rsp,%rbx + vaesenc %xmm0,%xmm7,%xmm7 + subq %r11,%rbx + vaesenc %xmm0,%xmm8,%xmm8 + vpxor 16(%r11),%xmm15,%xmm13 + movq %rbx,64+24(%rsp) + vaesenc %xmm0,%xmm9,%xmm9 + vmovups -24(%rsi),%xmm0 + leaq 16(%r11,%rbx,1),%r11 + vmovdqu %xmm13,48(%rbp) + vaesenc %xmm1,%xmm2,%xmm2 + cmpl 32+16(%rsp),%ecx + movq 64+32(%rsp),%rbx + vaesenc %xmm1,%xmm3,%xmm3 + prefetcht0 31(%r12) + vaesenc %xmm1,%xmm4,%xmm4 + prefetcht0 15(%r10) + vaesenc %xmm1,%xmm5,%xmm5 + leaq (%r12,%rbx,1),%rbx + cmovgeq %rsp,%r12 + vaesenc %xmm1,%xmm6,%xmm6 + cmovgq %rsp,%rbx + vaesenc %xmm1,%xmm7,%xmm7 + subq %r12,%rbx + vaesenc %xmm1,%xmm8,%xmm8 + vpxor 16(%r12),%xmm15,%xmm10 + movq %rbx,64+32(%rsp) + vaesenc %xmm1,%xmm9,%xmm9 + vmovups -8(%rsi),%xmm1 + leaq 16(%r12,%rbx,1),%r12 + vaesenc %xmm0,%xmm2,%xmm2 + cmpl 32+20(%rsp),%ecx + movq 64+40(%rsp),%rbx + vaesenc %xmm0,%xmm3,%xmm3 + prefetcht0 31(%r13) + vaesenc %xmm0,%xmm4,%xmm4 + prefetcht0 15(%r11) + vaesenc %xmm0,%xmm5,%xmm5 + leaq (%rbx,%r13,1),%rbx + cmovgeq %rsp,%r13 + vaesenc %xmm0,%xmm6,%xmm6 + cmovgq %rsp,%rbx + vaesenc %xmm0,%xmm7,%xmm7 + subq %r13,%rbx + vaesenc %xmm0,%xmm8,%xmm8 + vpxor 16(%r13),%xmm15,%xmm11 + movq %rbx,64+40(%rsp) + vaesenc %xmm0,%xmm9,%xmm9 + vmovups 8(%rsi),%xmm0 + leaq 16(%r13,%rbx,1),%r13 + vaesenc %xmm1,%xmm2,%xmm2 + cmpl 32+24(%rsp),%ecx + movq 64+48(%rsp),%rbx + vaesenc %xmm1,%xmm3,%xmm3 + prefetcht0 31(%r14) + vaesenc %xmm1,%xmm4,%xmm4 + prefetcht0 15(%r12) + vaesenc %xmm1,%xmm5,%xmm5 + leaq (%r14,%rbx,1),%rbx + cmovgeq %rsp,%r14 + vaesenc %xmm1,%xmm6,%xmm6 + cmovgq %rsp,%rbx + vaesenc %xmm1,%xmm7,%xmm7 + subq %r14,%rbx + vaesenc %xmm1,%xmm8,%xmm8 + vpxor 16(%r14),%xmm15,%xmm12 + movq %rbx,64+48(%rsp) + vaesenc %xmm1,%xmm9,%xmm9 + vmovups 24(%rsi),%xmm1 + leaq 16(%r14,%rbx,1),%r14 + vaesenc %xmm0,%xmm2,%xmm2 + cmpl 32+28(%rsp),%ecx + movq 64+56(%rsp),%rbx + vaesenc %xmm0,%xmm3,%xmm3 + prefetcht0 31(%r15) + vaesenc %xmm0,%xmm4,%xmm4 + prefetcht0 15(%r13) + vaesenc %xmm0,%xmm5,%xmm5 + leaq (%r15,%rbx,1),%rbx + cmovgeq %rsp,%r15 + vaesenc %xmm0,%xmm6,%xmm6 + cmovgq %rsp,%rbx + vaesenc %xmm0,%xmm7,%xmm7 + subq %r15,%rbx + vaesenc %xmm0,%xmm8,%xmm8 + vpxor 16(%r15),%xmm15,%xmm13 + movq %rbx,64+56(%rsp) + vaesenc %xmm0,%xmm9,%xmm9 + vmovups 40(%rsi),%xmm0 + leaq 16(%r15,%rbx,1),%r15 + vmovdqu 32(%rsp),%xmm14 + prefetcht0 15(%r14) + prefetcht0 15(%r15) + cmpl $11,%eax + jb .Lenc8x_tail + + vaesenc %xmm1,%xmm2,%xmm2 + vaesenc %xmm1,%xmm3,%xmm3 + vaesenc %xmm1,%xmm4,%xmm4 + vaesenc %xmm1,%xmm5,%xmm5 + vaesenc %xmm1,%xmm6,%xmm6 + vaesenc %xmm1,%xmm7,%xmm7 + vaesenc %xmm1,%xmm8,%xmm8 + vaesenc %xmm1,%xmm9,%xmm9 + vmovups 176-120(%rsi),%xmm1 + + vaesenc %xmm0,%xmm2,%xmm2 + vaesenc %xmm0,%xmm3,%xmm3 + vaesenc %xmm0,%xmm4,%xmm4 + vaesenc %xmm0,%xmm5,%xmm5 + vaesenc %xmm0,%xmm6,%xmm6 + vaesenc %xmm0,%xmm7,%xmm7 + vaesenc %xmm0,%xmm8,%xmm8 + vaesenc %xmm0,%xmm9,%xmm9 + vmovups 192-120(%rsi),%xmm0 + je .Lenc8x_tail + + vaesenc %xmm1,%xmm2,%xmm2 + vaesenc %xmm1,%xmm3,%xmm3 + vaesenc %xmm1,%xmm4,%xmm4 + vaesenc %xmm1,%xmm5,%xmm5 + vaesenc %xmm1,%xmm6,%xmm6 + vaesenc %xmm1,%xmm7,%xmm7 + vaesenc %xmm1,%xmm8,%xmm8 + vaesenc %xmm1,%xmm9,%xmm9 + vmovups 208-120(%rsi),%xmm1 + + vaesenc %xmm0,%xmm2,%xmm2 + vaesenc %xmm0,%xmm3,%xmm3 + vaesenc %xmm0,%xmm4,%xmm4 + vaesenc %xmm0,%xmm5,%xmm5 + vaesenc %xmm0,%xmm6,%xmm6 + vaesenc %xmm0,%xmm7,%xmm7 + vaesenc %xmm0,%xmm8,%xmm8 + vaesenc %xmm0,%xmm9,%xmm9 + vmovups 224-120(%rsi),%xmm0 + +.Lenc8x_tail: + vaesenc %xmm1,%xmm2,%xmm2 + vpxor %xmm15,%xmm15,%xmm15 + vaesenc %xmm1,%xmm3,%xmm3 + vaesenc %xmm1,%xmm4,%xmm4 + vpcmpgtd %xmm15,%xmm14,%xmm15 + vaesenc %xmm1,%xmm5,%xmm5 + vaesenc %xmm1,%xmm6,%xmm6 + vpaddd %xmm14,%xmm15,%xmm15 + vmovdqu 48(%rsp),%xmm14 + vaesenc %xmm1,%xmm7,%xmm7 + movq 64(%rsp),%rbx + vaesenc %xmm1,%xmm8,%xmm8 + vaesenc %xmm1,%xmm9,%xmm9 + vmovups 16-120(%rsi),%xmm1 + + vaesenclast %xmm0,%xmm2,%xmm2 + vmovdqa %xmm15,32(%rsp) + vpxor %xmm15,%xmm15,%xmm15 + vaesenclast %xmm0,%xmm3,%xmm3 + vaesenclast %xmm0,%xmm4,%xmm4 + vpcmpgtd %xmm15,%xmm14,%xmm15 + vaesenclast %xmm0,%xmm5,%xmm5 + vaesenclast %xmm0,%xmm6,%xmm6 + vpaddd %xmm15,%xmm14,%xmm14 + vmovdqu -120(%rsi),%xmm15 + vaesenclast %xmm0,%xmm7,%xmm7 + vaesenclast %xmm0,%xmm8,%xmm8 + vmovdqa %xmm14,48(%rsp) + vaesenclast %xmm0,%xmm9,%xmm9 + vmovups 32-120(%rsi),%xmm0 + + vmovups %xmm2,-16(%r8) + subq %rbx,%r8 + vpxor 0(%rbp),%xmm2,%xmm2 + vmovups %xmm3,-16(%r9) + subq 72(%rsp),%r9 + vpxor 16(%rbp),%xmm3,%xmm3 + vmovups %xmm4,-16(%r10) + subq 80(%rsp),%r10 + vpxor 32(%rbp),%xmm4,%xmm4 + vmovups %xmm5,-16(%r11) + subq 88(%rsp),%r11 + vpxor 48(%rbp),%xmm5,%xmm5 + vmovups %xmm6,-16(%r12) + subq 96(%rsp),%r12 + vpxor %xmm10,%xmm6,%xmm6 + vmovups %xmm7,-16(%r13) + subq 104(%rsp),%r13 + vpxor %xmm11,%xmm7,%xmm7 + vmovups %xmm8,-16(%r14) + subq 112(%rsp),%r14 + vpxor %xmm12,%xmm8,%xmm8 + vmovups %xmm9,-16(%r15) + subq 120(%rsp),%r15 + vpxor %xmm13,%xmm9,%xmm9 + + decl %edx + jnz .Loop_enc8x + + movq 16(%rsp),%rax +.cfi_def_cfa %rax,8 + + + + + +.Lenc8x_done: + vzeroupper + movq -48(%rax),%r15 +.cfi_restore %r15 + movq -40(%rax),%r14 +.cfi_restore %r14 + movq -32(%rax),%r13 +.cfi_restore %r13 + movq -24(%rax),%r12 +.cfi_restore %r12 + movq -16(%rax),%rbp +.cfi_restore %rbp + movq -8(%rax),%rbx +.cfi_restore %rbx + leaq (%rax),%rsp +.cfi_def_cfa_register %rsp +.Lenc8x_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size aesni_multi_cbc_encrypt_avx,.-aesni_multi_cbc_encrypt_avx + +.type aesni_multi_cbc_decrypt_avx,@function +.align 32 +aesni_multi_cbc_decrypt_avx: +.cfi_startproc +_avx_cbc_dec_shortcut: + movq %rsp,%rax +.cfi_def_cfa_register %rax + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_offset %r15,-56 + + + + + + + + + + subq $256,%rsp + andq $-256,%rsp + subq $192,%rsp + movq %rax,16(%rsp) +.cfi_escape 0x0f,0x05,0x77,0x10,0x06,0x23,0x08 + +.Ldec8x_body: + vzeroupper + vmovdqu (%rsi),%xmm15 + leaq 120(%rsi),%rsi + leaq 160(%rdi),%rdi + shrl $1,%edx + +.Ldec8x_loop_grande: + + xorl %edx,%edx + movl -144(%rdi),%ecx + movq -160(%rdi),%r8 + cmpl %edx,%ecx + movq -152(%rdi),%rbx + cmovgl %ecx,%edx + testl %ecx,%ecx + vmovdqu -136(%rdi),%xmm2 + movl %ecx,32(%rsp) + cmovleq %rsp,%r8 + subq %r8,%rbx + movq %rbx,64(%rsp) + vmovdqu %xmm2,192(%rsp) + movl -104(%rdi),%ecx + movq -120(%rdi),%r9 + cmpl %edx,%ecx + movq -112(%rdi),%rbp + cmovgl %ecx,%edx + testl %ecx,%ecx + vmovdqu -96(%rdi),%xmm3 + movl %ecx,36(%rsp) + cmovleq %rsp,%r9 + subq %r9,%rbp + movq %rbp,72(%rsp) + vmovdqu %xmm3,208(%rsp) + movl -64(%rdi),%ecx + movq -80(%rdi),%r10 + cmpl %edx,%ecx + movq -72(%rdi),%rbp + cmovgl %ecx,%edx + testl %ecx,%ecx + vmovdqu -56(%rdi),%xmm4 + movl %ecx,40(%rsp) + cmovleq %rsp,%r10 + subq %r10,%rbp + movq %rbp,80(%rsp) + vmovdqu %xmm4,224(%rsp) + movl -24(%rdi),%ecx + movq -40(%rdi),%r11 + cmpl %edx,%ecx + movq -32(%rdi),%rbp + cmovgl %ecx,%edx + testl %ecx,%ecx + vmovdqu -16(%rdi),%xmm5 + movl %ecx,44(%rsp) + cmovleq %rsp,%r11 + subq %r11,%rbp + movq %rbp,88(%rsp) + vmovdqu %xmm5,240(%rsp) + movl 16(%rdi),%ecx + movq 0(%rdi),%r12 + cmpl %edx,%ecx + movq 8(%rdi),%rbp + cmovgl %ecx,%edx + testl %ecx,%ecx + vmovdqu 24(%rdi),%xmm6 + movl %ecx,48(%rsp) + cmovleq %rsp,%r12 + subq %r12,%rbp + movq %rbp,96(%rsp) + vmovdqu %xmm6,256(%rsp) + movl 56(%rdi),%ecx + movq 40(%rdi),%r13 + cmpl %edx,%ecx + movq 48(%rdi),%rbp + cmovgl %ecx,%edx + testl %ecx,%ecx + vmovdqu 64(%rdi),%xmm7 + movl %ecx,52(%rsp) + cmovleq %rsp,%r13 + subq %r13,%rbp + movq %rbp,104(%rsp) + vmovdqu %xmm7,272(%rsp) + movl 96(%rdi),%ecx + movq 80(%rdi),%r14 + cmpl %edx,%ecx + movq 88(%rdi),%rbp + cmovgl %ecx,%edx + testl %ecx,%ecx + vmovdqu 104(%rdi),%xmm8 + movl %ecx,56(%rsp) + cmovleq %rsp,%r14 + subq %r14,%rbp + movq %rbp,112(%rsp) + vmovdqu %xmm8,288(%rsp) + movl 136(%rdi),%ecx + movq 120(%rdi),%r15 + cmpl %edx,%ecx + movq 128(%rdi),%rbp + cmovgl %ecx,%edx + testl %ecx,%ecx + vmovdqu 144(%rdi),%xmm9 + movl %ecx,60(%rsp) + cmovleq %rsp,%r15 + subq %r15,%rbp + movq %rbp,120(%rsp) + vmovdqu %xmm9,304(%rsp) + testl %edx,%edx + jz .Ldec8x_done + + vmovups 16-120(%rsi),%xmm1 + vmovups 32-120(%rsi),%xmm0 + movl 240-120(%rsi),%eax + leaq 192+128(%rsp),%rbp + + vmovdqu (%r8),%xmm2 + vmovdqu (%r9),%xmm3 + vmovdqu (%r10),%xmm4 + vmovdqu (%r11),%xmm5 + vmovdqu (%r12),%xmm6 + vmovdqu (%r13),%xmm7 + vmovdqu (%r14),%xmm8 + vmovdqu (%r15),%xmm9 + vmovdqu %xmm2,0(%rbp) + vpxor %xmm15,%xmm2,%xmm2 + vmovdqu %xmm3,16(%rbp) + vpxor %xmm15,%xmm3,%xmm3 + vmovdqu %xmm4,32(%rbp) + vpxor %xmm15,%xmm4,%xmm4 + vmovdqu %xmm5,48(%rbp) + vpxor %xmm15,%xmm5,%xmm5 + vmovdqu %xmm6,64(%rbp) + vpxor %xmm15,%xmm6,%xmm6 + vmovdqu %xmm7,80(%rbp) + vpxor %xmm15,%xmm7,%xmm7 + vmovdqu %xmm8,96(%rbp) + vpxor %xmm15,%xmm8,%xmm8 + vmovdqu %xmm9,112(%rbp) + vpxor %xmm15,%xmm9,%xmm9 + xorq $0x80,%rbp + movl $1,%ecx + jmp .Loop_dec8x + +.align 32 +.Loop_dec8x: + vaesdec %xmm1,%xmm2,%xmm2 + cmpl 32+0(%rsp),%ecx + vaesdec %xmm1,%xmm3,%xmm3 + prefetcht0 31(%r8) + vaesdec %xmm1,%xmm4,%xmm4 + vaesdec %xmm1,%xmm5,%xmm5 + leaq (%r8,%rbx,1),%rbx + cmovgeq %rsp,%r8 + vaesdec %xmm1,%xmm6,%xmm6 + cmovgq %rsp,%rbx + vaesdec %xmm1,%xmm7,%xmm7 + subq %r8,%rbx + vaesdec %xmm1,%xmm8,%xmm8 + vmovdqu 16(%r8),%xmm10 + movq %rbx,64+0(%rsp) + vaesdec %xmm1,%xmm9,%xmm9 + vmovups -72(%rsi),%xmm1 + leaq 16(%r8,%rbx,1),%r8 + vmovdqu %xmm10,128(%rsp) + vaesdec %xmm0,%xmm2,%xmm2 + cmpl 32+4(%rsp),%ecx + movq 64+8(%rsp),%rbx + vaesdec %xmm0,%xmm3,%xmm3 + prefetcht0 31(%r9) + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + leaq (%r9,%rbx,1),%rbx + cmovgeq %rsp,%r9 + vaesdec %xmm0,%xmm6,%xmm6 + cmovgq %rsp,%rbx + vaesdec %xmm0,%xmm7,%xmm7 + subq %r9,%rbx + vaesdec %xmm0,%xmm8,%xmm8 + vmovdqu 16(%r9),%xmm11 + movq %rbx,64+8(%rsp) + vaesdec %xmm0,%xmm9,%xmm9 + vmovups -56(%rsi),%xmm0 + leaq 16(%r9,%rbx,1),%r9 + vmovdqu %xmm11,144(%rsp) + vaesdec %xmm1,%xmm2,%xmm2 + cmpl 32+8(%rsp),%ecx + movq 64+16(%rsp),%rbx + vaesdec %xmm1,%xmm3,%xmm3 + prefetcht0 31(%r10) + vaesdec %xmm1,%xmm4,%xmm4 + prefetcht0 15(%r8) + vaesdec %xmm1,%xmm5,%xmm5 + leaq (%r10,%rbx,1),%rbx + cmovgeq %rsp,%r10 + vaesdec %xmm1,%xmm6,%xmm6 + cmovgq %rsp,%rbx + vaesdec %xmm1,%xmm7,%xmm7 + subq %r10,%rbx + vaesdec %xmm1,%xmm8,%xmm8 + vmovdqu 16(%r10),%xmm12 + movq %rbx,64+16(%rsp) + vaesdec %xmm1,%xmm9,%xmm9 + vmovups -40(%rsi),%xmm1 + leaq 16(%r10,%rbx,1),%r10 + vmovdqu %xmm12,160(%rsp) + vaesdec %xmm0,%xmm2,%xmm2 + cmpl 32+12(%rsp),%ecx + movq 64+24(%rsp),%rbx + vaesdec %xmm0,%xmm3,%xmm3 + prefetcht0 31(%r11) + vaesdec %xmm0,%xmm4,%xmm4 + prefetcht0 15(%r9) + vaesdec %xmm0,%xmm5,%xmm5 + leaq (%r11,%rbx,1),%rbx + cmovgeq %rsp,%r11 + vaesdec %xmm0,%xmm6,%xmm6 + cmovgq %rsp,%rbx + vaesdec %xmm0,%xmm7,%xmm7 + subq %r11,%rbx + vaesdec %xmm0,%xmm8,%xmm8 + vmovdqu 16(%r11),%xmm13 + movq %rbx,64+24(%rsp) + vaesdec %xmm0,%xmm9,%xmm9 + vmovups -24(%rsi),%xmm0 + leaq 16(%r11,%rbx,1),%r11 + vmovdqu %xmm13,176(%rsp) + vaesdec %xmm1,%xmm2,%xmm2 + cmpl 32+16(%rsp),%ecx + movq 64+32(%rsp),%rbx + vaesdec %xmm1,%xmm3,%xmm3 + prefetcht0 31(%r12) + vaesdec %xmm1,%xmm4,%xmm4 + prefetcht0 15(%r10) + vaesdec %xmm1,%xmm5,%xmm5 + leaq (%r12,%rbx,1),%rbx + cmovgeq %rsp,%r12 + vaesdec %xmm1,%xmm6,%xmm6 + cmovgq %rsp,%rbx + vaesdec %xmm1,%xmm7,%xmm7 + subq %r12,%rbx + vaesdec %xmm1,%xmm8,%xmm8 + vmovdqu 16(%r12),%xmm10 + movq %rbx,64+32(%rsp) + vaesdec %xmm1,%xmm9,%xmm9 + vmovups -8(%rsi),%xmm1 + leaq 16(%r12,%rbx,1),%r12 + vaesdec %xmm0,%xmm2,%xmm2 + cmpl 32+20(%rsp),%ecx + movq 64+40(%rsp),%rbx + vaesdec %xmm0,%xmm3,%xmm3 + prefetcht0 31(%r13) + vaesdec %xmm0,%xmm4,%xmm4 + prefetcht0 15(%r11) + vaesdec %xmm0,%xmm5,%xmm5 + leaq (%rbx,%r13,1),%rbx + cmovgeq %rsp,%r13 + vaesdec %xmm0,%xmm6,%xmm6 + cmovgq %rsp,%rbx + vaesdec %xmm0,%xmm7,%xmm7 + subq %r13,%rbx + vaesdec %xmm0,%xmm8,%xmm8 + vmovdqu 16(%r13),%xmm11 + movq %rbx,64+40(%rsp) + vaesdec %xmm0,%xmm9,%xmm9 + vmovups 8(%rsi),%xmm0 + leaq 16(%r13,%rbx,1),%r13 + vaesdec %xmm1,%xmm2,%xmm2 + cmpl 32+24(%rsp),%ecx + movq 64+48(%rsp),%rbx + vaesdec %xmm1,%xmm3,%xmm3 + prefetcht0 31(%r14) + vaesdec %xmm1,%xmm4,%xmm4 + prefetcht0 15(%r12) + vaesdec %xmm1,%xmm5,%xmm5 + leaq (%r14,%rbx,1),%rbx + cmovgeq %rsp,%r14 + vaesdec %xmm1,%xmm6,%xmm6 + cmovgq %rsp,%rbx + vaesdec %xmm1,%xmm7,%xmm7 + subq %r14,%rbx + vaesdec %xmm1,%xmm8,%xmm8 + vmovdqu 16(%r14),%xmm12 + movq %rbx,64+48(%rsp) + vaesdec %xmm1,%xmm9,%xmm9 + vmovups 24(%rsi),%xmm1 + leaq 16(%r14,%rbx,1),%r14 + vaesdec %xmm0,%xmm2,%xmm2 + cmpl 32+28(%rsp),%ecx + movq 64+56(%rsp),%rbx + vaesdec %xmm0,%xmm3,%xmm3 + prefetcht0 31(%r15) + vaesdec %xmm0,%xmm4,%xmm4 + prefetcht0 15(%r13) + vaesdec %xmm0,%xmm5,%xmm5 + leaq (%r15,%rbx,1),%rbx + cmovgeq %rsp,%r15 + vaesdec %xmm0,%xmm6,%xmm6 + cmovgq %rsp,%rbx + vaesdec %xmm0,%xmm7,%xmm7 + subq %r15,%rbx + vaesdec %xmm0,%xmm8,%xmm8 + vmovdqu 16(%r15),%xmm13 + movq %rbx,64+56(%rsp) + vaesdec %xmm0,%xmm9,%xmm9 + vmovups 40(%rsi),%xmm0 + leaq 16(%r15,%rbx,1),%r15 + vmovdqu 32(%rsp),%xmm14 + prefetcht0 15(%r14) + prefetcht0 15(%r15) + cmpl $11,%eax + jb .Ldec8x_tail + + vaesdec %xmm1,%xmm2,%xmm2 + vaesdec %xmm1,%xmm3,%xmm3 + vaesdec %xmm1,%xmm4,%xmm4 + vaesdec %xmm1,%xmm5,%xmm5 + vaesdec %xmm1,%xmm6,%xmm6 + vaesdec %xmm1,%xmm7,%xmm7 + vaesdec %xmm1,%xmm8,%xmm8 + vaesdec %xmm1,%xmm9,%xmm9 + vmovups 176-120(%rsi),%xmm1 + + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vaesdec %xmm0,%xmm8,%xmm8 + vaesdec %xmm0,%xmm9,%xmm9 + vmovups 192-120(%rsi),%xmm0 + je .Ldec8x_tail + + vaesdec %xmm1,%xmm2,%xmm2 + vaesdec %xmm1,%xmm3,%xmm3 + vaesdec %xmm1,%xmm4,%xmm4 + vaesdec %xmm1,%xmm5,%xmm5 + vaesdec %xmm1,%xmm6,%xmm6 + vaesdec %xmm1,%xmm7,%xmm7 + vaesdec %xmm1,%xmm8,%xmm8 + vaesdec %xmm1,%xmm9,%xmm9 + vmovups 208-120(%rsi),%xmm1 + + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vaesdec %xmm0,%xmm8,%xmm8 + vaesdec %xmm0,%xmm9,%xmm9 + vmovups 224-120(%rsi),%xmm0 + +.Ldec8x_tail: + vaesdec %xmm1,%xmm2,%xmm2 + vpxor %xmm15,%xmm15,%xmm15 + vaesdec %xmm1,%xmm3,%xmm3 + vaesdec %xmm1,%xmm4,%xmm4 + vpcmpgtd %xmm15,%xmm14,%xmm15 + vaesdec %xmm1,%xmm5,%xmm5 + vaesdec %xmm1,%xmm6,%xmm6 + vpaddd %xmm14,%xmm15,%xmm15 + vmovdqu 48(%rsp),%xmm14 + vaesdec %xmm1,%xmm7,%xmm7 + movq 64(%rsp),%rbx + vaesdec %xmm1,%xmm8,%xmm8 + vaesdec %xmm1,%xmm9,%xmm9 + vmovups 16-120(%rsi),%xmm1 + + vaesdeclast %xmm0,%xmm2,%xmm2 + vmovdqa %xmm15,32(%rsp) + vpxor %xmm15,%xmm15,%xmm15 + vaesdeclast %xmm0,%xmm3,%xmm3 + vpxor 0(%rbp),%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm4,%xmm4 + vpxor 16(%rbp),%xmm3,%xmm3 + vpcmpgtd %xmm15,%xmm14,%xmm15 + vaesdeclast %xmm0,%xmm5,%xmm5 + vpxor 32(%rbp),%xmm4,%xmm4 + vaesdeclast %xmm0,%xmm6,%xmm6 + vpxor 48(%rbp),%xmm5,%xmm5 + vpaddd %xmm15,%xmm14,%xmm14 + vmovdqu -120(%rsi),%xmm15 + vaesdeclast %xmm0,%xmm7,%xmm7 + vpxor 64(%rbp),%xmm6,%xmm6 + vaesdeclast %xmm0,%xmm8,%xmm8 + vpxor 80(%rbp),%xmm7,%xmm7 + vmovdqa %xmm14,48(%rsp) + vaesdeclast %xmm0,%xmm9,%xmm9 + vpxor 96(%rbp),%xmm8,%xmm8 + vmovups 32-120(%rsi),%xmm0 + + vmovups %xmm2,-16(%r8) + subq %rbx,%r8 + vmovdqu 128+0(%rsp),%xmm2 + vpxor 112(%rbp),%xmm9,%xmm9 + vmovups %xmm3,-16(%r9) + subq 72(%rsp),%r9 + vmovdqu %xmm2,0(%rbp) + vpxor %xmm15,%xmm2,%xmm2 + vmovdqu 128+16(%rsp),%xmm3 + vmovups %xmm4,-16(%r10) + subq 80(%rsp),%r10 + vmovdqu %xmm3,16(%rbp) + vpxor %xmm15,%xmm3,%xmm3 + vmovdqu 128+32(%rsp),%xmm4 + vmovups %xmm5,-16(%r11) + subq 88(%rsp),%r11 + vmovdqu %xmm4,32(%rbp) + vpxor %xmm15,%xmm4,%xmm4 + vmovdqu 128+48(%rsp),%xmm5 + vmovups %xmm6,-16(%r12) + subq 96(%rsp),%r12 + vmovdqu %xmm5,48(%rbp) + vpxor %xmm15,%xmm5,%xmm5 + vmovdqu %xmm10,64(%rbp) + vpxor %xmm10,%xmm15,%xmm6 + vmovups %xmm7,-16(%r13) + subq 104(%rsp),%r13 + vmovdqu %xmm11,80(%rbp) + vpxor %xmm11,%xmm15,%xmm7 + vmovups %xmm8,-16(%r14) + subq 112(%rsp),%r14 + vmovdqu %xmm12,96(%rbp) + vpxor %xmm12,%xmm15,%xmm8 + vmovups %xmm9,-16(%r15) + subq 120(%rsp),%r15 + vmovdqu %xmm13,112(%rbp) + vpxor %xmm13,%xmm15,%xmm9 + + xorq $128,%rbp + decl %edx + jnz .Loop_dec8x + + movq 16(%rsp),%rax +.cfi_def_cfa %rax,8 + + + + + +.Ldec8x_done: + vzeroupper + movq -48(%rax),%r15 +.cfi_restore %r15 + movq -40(%rax),%r14 +.cfi_restore %r14 + movq -32(%rax),%r13 +.cfi_restore %r13 + movq -24(%rax),%r12 +.cfi_restore %r12 + movq -16(%rax),%rbp +.cfi_restore %rbp + movq -8(%rax),%rbx +.cfi_restore %rbx + leaq (%rax),%rsp +.cfi_def_cfa_register %rsp +.Ldec8x_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size aesni_multi_cbc_decrypt_avx,.-aesni_multi_cbc_decrypt_avx diff --git a/vere/ext/openssl/gen/linux-x86_64/crypto/aes/aesni-sha1-x86_64.s b/vere/ext/openssl/gen/linux-x86_64/crypto/aes/aesni-sha1-x86_64.s new file mode 100644 index 0000000..a38e21f --- /dev/null +++ b/vere/ext/openssl/gen/linux-x86_64/crypto/aes/aesni-sha1-x86_64.s @@ -0,0 +1,3035 @@ +.text + + +.globl aesni_cbc_sha1_enc +.type aesni_cbc_sha1_enc,@function +.align 32 +aesni_cbc_sha1_enc: +.cfi_startproc + + movl OPENSSL_ia32cap_P+0(%rip),%r10d + movq OPENSSL_ia32cap_P+4(%rip),%r11 + btq $61,%r11 + jc aesni_cbc_sha1_enc_shaext + andl $268435456,%r11d + andl $1073741824,%r10d + orl %r11d,%r10d + cmpl $1342177280,%r10d + je aesni_cbc_sha1_enc_avx + jmp aesni_cbc_sha1_enc_ssse3 + .byte 0xf3,0xc3 +.cfi_endproc +.size aesni_cbc_sha1_enc,.-aesni_cbc_sha1_enc +.type aesni_cbc_sha1_enc_ssse3,@function +.align 32 +aesni_cbc_sha1_enc_ssse3: +.cfi_startproc + movq 8(%rsp),%r10 + + + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 + leaq -104(%rsp),%rsp +.cfi_adjust_cfa_offset 104 + + + movq %rdi,%r12 + movq %rsi,%r13 + movq %rdx,%r14 + leaq 112(%rcx),%r15 + movdqu (%r8),%xmm2 + movq %r8,88(%rsp) + shlq $6,%r14 + subq %r12,%r13 + movl 240-112(%r15),%r8d + addq %r10,%r14 + + leaq K_XX_XX(%rip),%r11 + movl 0(%r9),%eax + movl 4(%r9),%ebx + movl 8(%r9),%ecx + movl 12(%r9),%edx + movl %ebx,%esi + movl 16(%r9),%ebp + movl %ecx,%edi + xorl %edx,%edi + andl %edi,%esi + + movdqa 64(%r11),%xmm3 + movdqa 0(%r11),%xmm13 + movdqu 0(%r10),%xmm4 + movdqu 16(%r10),%xmm5 + movdqu 32(%r10),%xmm6 + movdqu 48(%r10),%xmm7 +.byte 102,15,56,0,227 +.byte 102,15,56,0,235 +.byte 102,15,56,0,243 + addq $64,%r10 + paddd %xmm13,%xmm4 +.byte 102,15,56,0,251 + paddd %xmm13,%xmm5 + paddd %xmm13,%xmm6 + movdqa %xmm4,0(%rsp) + psubd %xmm13,%xmm4 + movdqa %xmm5,16(%rsp) + psubd %xmm13,%xmm5 + movdqa %xmm6,32(%rsp) + psubd %xmm13,%xmm6 + movups -112(%r15),%xmm15 + movups 16-112(%r15),%xmm0 + jmp .Loop_ssse3 +.align 32 +.Loop_ssse3: + rorl $2,%ebx + movups 0(%r12),%xmm14 + xorps %xmm15,%xmm14 + xorps %xmm14,%xmm2 + movups -80(%r15),%xmm1 +.byte 102,15,56,220,208 + pshufd $238,%xmm4,%xmm8 + xorl %edx,%esi + movdqa %xmm7,%xmm12 + paddd %xmm7,%xmm13 + movl %eax,%edi + addl 0(%rsp),%ebp + punpcklqdq %xmm5,%xmm8 + xorl %ecx,%ebx + roll $5,%eax + addl %esi,%ebp + psrldq $4,%xmm12 + andl %ebx,%edi + xorl %ecx,%ebx + pxor %xmm4,%xmm8 + addl %eax,%ebp + rorl $7,%eax + pxor %xmm6,%xmm12 + xorl %ecx,%edi + movl %ebp,%esi + addl 4(%rsp),%edx + pxor %xmm12,%xmm8 + xorl %ebx,%eax + roll $5,%ebp + movdqa %xmm13,48(%rsp) + addl %edi,%edx + movups -64(%r15),%xmm0 +.byte 102,15,56,220,209 + andl %eax,%esi + movdqa %xmm8,%xmm3 + xorl %ebx,%eax + addl %ebp,%edx + rorl $7,%ebp + movdqa %xmm8,%xmm12 + xorl %ebx,%esi + pslldq $12,%xmm3 + paddd %xmm8,%xmm8 + movl %edx,%edi + addl 8(%rsp),%ecx + psrld $31,%xmm12 + xorl %eax,%ebp + roll $5,%edx + addl %esi,%ecx + movdqa %xmm3,%xmm13 + andl %ebp,%edi + xorl %eax,%ebp + psrld $30,%xmm3 + addl %edx,%ecx + rorl $7,%edx + por %xmm12,%xmm8 + xorl %eax,%edi + movl %ecx,%esi + addl 12(%rsp),%ebx + movups -48(%r15),%xmm1 +.byte 102,15,56,220,208 + pslld $2,%xmm13 + pxor %xmm3,%xmm8 + xorl %ebp,%edx + movdqa 0(%r11),%xmm3 + roll $5,%ecx + addl %edi,%ebx + andl %edx,%esi + pxor %xmm13,%xmm8 + xorl %ebp,%edx + addl %ecx,%ebx + rorl $7,%ecx + pshufd $238,%xmm5,%xmm9 + xorl %ebp,%esi + movdqa %xmm8,%xmm13 + paddd %xmm8,%xmm3 + movl %ebx,%edi + addl 16(%rsp),%eax + punpcklqdq %xmm6,%xmm9 + xorl %edx,%ecx + roll $5,%ebx + addl %esi,%eax + psrldq $4,%xmm13 + andl %ecx,%edi + xorl %edx,%ecx + pxor %xmm5,%xmm9 + addl %ebx,%eax + rorl $7,%ebx + movups -32(%r15),%xmm0 +.byte 102,15,56,220,209 + pxor %xmm7,%xmm13 + xorl %edx,%edi + movl %eax,%esi + addl 20(%rsp),%ebp + pxor %xmm13,%xmm9 + xorl %ecx,%ebx + roll $5,%eax + movdqa %xmm3,0(%rsp) + addl %edi,%ebp + andl %ebx,%esi + movdqa %xmm9,%xmm12 + xorl %ecx,%ebx + addl %eax,%ebp + rorl $7,%eax + movdqa %xmm9,%xmm13 + xorl %ecx,%esi + pslldq $12,%xmm12 + paddd %xmm9,%xmm9 + movl %ebp,%edi + addl 24(%rsp),%edx + psrld $31,%xmm13 + xorl %ebx,%eax + roll $5,%ebp + addl %esi,%edx + movups -16(%r15),%xmm1 +.byte 102,15,56,220,208 + movdqa %xmm12,%xmm3 + andl %eax,%edi + xorl %ebx,%eax + psrld $30,%xmm12 + addl %ebp,%edx + rorl $7,%ebp + por %xmm13,%xmm9 + xorl %ebx,%edi + movl %edx,%esi + addl 28(%rsp),%ecx + pslld $2,%xmm3 + pxor %xmm12,%xmm9 + xorl %eax,%ebp + movdqa 16(%r11),%xmm12 + roll $5,%edx + addl %edi,%ecx + andl %ebp,%esi + pxor %xmm3,%xmm9 + xorl %eax,%ebp + addl %edx,%ecx + rorl $7,%edx + pshufd $238,%xmm6,%xmm10 + xorl %eax,%esi + movdqa %xmm9,%xmm3 + paddd %xmm9,%xmm12 + movl %ecx,%edi + addl 32(%rsp),%ebx + movups 0(%r15),%xmm0 +.byte 102,15,56,220,209 + punpcklqdq %xmm7,%xmm10 + xorl %ebp,%edx + roll $5,%ecx + addl %esi,%ebx + psrldq $4,%xmm3 + andl %edx,%edi + xorl %ebp,%edx + pxor %xmm6,%xmm10 + addl %ecx,%ebx + rorl $7,%ecx + pxor %xmm8,%xmm3 + xorl %ebp,%edi + movl %ebx,%esi + addl 36(%rsp),%eax + pxor %xmm3,%xmm10 + xorl %edx,%ecx + roll $5,%ebx + movdqa %xmm12,16(%rsp) + addl %edi,%eax + andl %ecx,%esi + movdqa %xmm10,%xmm13 + xorl %edx,%ecx + addl %ebx,%eax + rorl $7,%ebx + movups 16(%r15),%xmm1 +.byte 102,15,56,220,208 + movdqa %xmm10,%xmm3 + xorl %edx,%esi + pslldq $12,%xmm13 + paddd %xmm10,%xmm10 + movl %eax,%edi + addl 40(%rsp),%ebp + psrld $31,%xmm3 + xorl %ecx,%ebx + roll $5,%eax + addl %esi,%ebp + movdqa %xmm13,%xmm12 + andl %ebx,%edi + xorl %ecx,%ebx + psrld $30,%xmm13 + addl %eax,%ebp + rorl $7,%eax + por %xmm3,%xmm10 + xorl %ecx,%edi + movl %ebp,%esi + addl 44(%rsp),%edx + pslld $2,%xmm12 + pxor %xmm13,%xmm10 + xorl %ebx,%eax + movdqa 16(%r11),%xmm13 + roll $5,%ebp + addl %edi,%edx + movups 32(%r15),%xmm0 +.byte 102,15,56,220,209 + andl %eax,%esi + pxor %xmm12,%xmm10 + xorl %ebx,%eax + addl %ebp,%edx + rorl $7,%ebp + pshufd $238,%xmm7,%xmm11 + xorl %ebx,%esi + movdqa %xmm10,%xmm12 + paddd %xmm10,%xmm13 + movl %edx,%edi + addl 48(%rsp),%ecx + punpcklqdq %xmm8,%xmm11 + xorl %eax,%ebp + roll $5,%edx + addl %esi,%ecx + psrldq $4,%xmm12 + andl %ebp,%edi + xorl %eax,%ebp + pxor %xmm7,%xmm11 + addl %edx,%ecx + rorl $7,%edx + pxor %xmm9,%xmm12 + xorl %eax,%edi + movl %ecx,%esi + addl 52(%rsp),%ebx + movups 48(%r15),%xmm1 +.byte 102,15,56,220,208 + pxor %xmm12,%xmm11 + xorl %ebp,%edx + roll $5,%ecx + movdqa %xmm13,32(%rsp) + addl %edi,%ebx + andl %edx,%esi + movdqa %xmm11,%xmm3 + xorl %ebp,%edx + addl %ecx,%ebx + rorl $7,%ecx + movdqa %xmm11,%xmm12 + xorl %ebp,%esi + pslldq $12,%xmm3 + paddd %xmm11,%xmm11 + movl %ebx,%edi + addl 56(%rsp),%eax + psrld $31,%xmm12 + xorl %edx,%ecx + roll $5,%ebx + addl %esi,%eax + movdqa %xmm3,%xmm13 + andl %ecx,%edi + xorl %edx,%ecx + psrld $30,%xmm3 + addl %ebx,%eax + rorl $7,%ebx + cmpl $11,%r8d + jb .Laesenclast1 + movups 64(%r15),%xmm0 +.byte 102,15,56,220,209 + movups 80(%r15),%xmm1 +.byte 102,15,56,220,208 + je .Laesenclast1 + movups 96(%r15),%xmm0 +.byte 102,15,56,220,209 + movups 112(%r15),%xmm1 +.byte 102,15,56,220,208 +.Laesenclast1: +.byte 102,15,56,221,209 + movups 16-112(%r15),%xmm0 + por %xmm12,%xmm11 + xorl %edx,%edi + movl %eax,%esi + addl 60(%rsp),%ebp + pslld $2,%xmm13 + pxor %xmm3,%xmm11 + xorl %ecx,%ebx + movdqa 16(%r11),%xmm3 + roll $5,%eax + addl %edi,%ebp + andl %ebx,%esi + pxor %xmm13,%xmm11 + pshufd $238,%xmm10,%xmm13 + xorl %ecx,%ebx + addl %eax,%ebp + rorl $7,%eax + pxor %xmm8,%xmm4 + xorl %ecx,%esi + movl %ebp,%edi + addl 0(%rsp),%edx + punpcklqdq %xmm11,%xmm13 + xorl %ebx,%eax + roll $5,%ebp + pxor %xmm5,%xmm4 + addl %esi,%edx + movups 16(%r12),%xmm14 + xorps %xmm15,%xmm14 + movups %xmm2,0(%r12,%r13,1) + xorps %xmm14,%xmm2 + movups -80(%r15),%xmm1 +.byte 102,15,56,220,208 + andl %eax,%edi + movdqa %xmm3,%xmm12 + xorl %ebx,%eax + paddd %xmm11,%xmm3 + addl %ebp,%edx + pxor %xmm13,%xmm4 + rorl $7,%ebp + xorl %ebx,%edi + movl %edx,%esi + addl 4(%rsp),%ecx + movdqa %xmm4,%xmm13 + xorl %eax,%ebp + roll $5,%edx + movdqa %xmm3,48(%rsp) + addl %edi,%ecx + andl %ebp,%esi + xorl %eax,%ebp + pslld $2,%xmm4 + addl %edx,%ecx + rorl $7,%edx + psrld $30,%xmm13 + xorl %eax,%esi + movl %ecx,%edi + addl 8(%rsp),%ebx + movups -64(%r15),%xmm0 +.byte 102,15,56,220,209 + por %xmm13,%xmm4 + xorl %ebp,%edx + roll $5,%ecx + pshufd $238,%xmm11,%xmm3 + addl %esi,%ebx + andl %edx,%edi + xorl %ebp,%edx + addl %ecx,%ebx + addl 12(%rsp),%eax + xorl %ebp,%edi + movl %ebx,%esi + roll $5,%ebx + addl %edi,%eax + xorl %edx,%esi + rorl $7,%ecx + addl %ebx,%eax + pxor %xmm9,%xmm5 + addl 16(%rsp),%ebp + movups -48(%r15),%xmm1 +.byte 102,15,56,220,208 + xorl %ecx,%esi + punpcklqdq %xmm4,%xmm3 + movl %eax,%edi + roll $5,%eax + pxor %xmm6,%xmm5 + addl %esi,%ebp + xorl %ecx,%edi + movdqa %xmm12,%xmm13 + rorl $7,%ebx + paddd %xmm4,%xmm12 + addl %eax,%ebp + pxor %xmm3,%xmm5 + addl 20(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + roll $5,%ebp + movdqa %xmm5,%xmm3 + addl %edi,%edx + xorl %ebx,%esi + movdqa %xmm12,0(%rsp) + rorl $7,%eax + addl %ebp,%edx + addl 24(%rsp),%ecx + pslld $2,%xmm5 + xorl %eax,%esi + movl %edx,%edi + psrld $30,%xmm3 + roll $5,%edx + addl %esi,%ecx + movups -32(%r15),%xmm0 +.byte 102,15,56,220,209 + xorl %eax,%edi + rorl $7,%ebp + por %xmm3,%xmm5 + addl %edx,%ecx + addl 28(%rsp),%ebx + pshufd $238,%xmm4,%xmm12 + xorl %ebp,%edi + movl %ecx,%esi + roll $5,%ecx + addl %edi,%ebx + xorl %ebp,%esi + rorl $7,%edx + addl %ecx,%ebx + pxor %xmm10,%xmm6 + addl 32(%rsp),%eax + xorl %edx,%esi + punpcklqdq %xmm5,%xmm12 + movl %ebx,%edi + roll $5,%ebx + pxor %xmm7,%xmm6 + addl %esi,%eax + xorl %edx,%edi + movdqa 32(%r11),%xmm3 + rorl $7,%ecx + paddd %xmm5,%xmm13 + addl %ebx,%eax + pxor %xmm12,%xmm6 + addl 36(%rsp),%ebp + movups -16(%r15),%xmm1 +.byte 102,15,56,220,208 + xorl %ecx,%edi + movl %eax,%esi + roll $5,%eax + movdqa %xmm6,%xmm12 + addl %edi,%ebp + xorl %ecx,%esi + movdqa %xmm13,16(%rsp) + rorl $7,%ebx + addl %eax,%ebp + addl 40(%rsp),%edx + pslld $2,%xmm6 + xorl %ebx,%esi + movl %ebp,%edi + psrld $30,%xmm12 + roll $5,%ebp + addl %esi,%edx + xorl %ebx,%edi + rorl $7,%eax + por %xmm12,%xmm6 + addl %ebp,%edx + addl 44(%rsp),%ecx + pshufd $238,%xmm5,%xmm13 + xorl %eax,%edi + movl %edx,%esi + roll $5,%edx + addl %edi,%ecx + movups 0(%r15),%xmm0 +.byte 102,15,56,220,209 + xorl %eax,%esi + rorl $7,%ebp + addl %edx,%ecx + pxor %xmm11,%xmm7 + addl 48(%rsp),%ebx + xorl %ebp,%esi + punpcklqdq %xmm6,%xmm13 + movl %ecx,%edi + roll $5,%ecx + pxor %xmm8,%xmm7 + addl %esi,%ebx + xorl %ebp,%edi + movdqa %xmm3,%xmm12 + rorl $7,%edx + paddd %xmm6,%xmm3 + addl %ecx,%ebx + pxor %xmm13,%xmm7 + addl 52(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + roll $5,%ebx + movdqa %xmm7,%xmm13 + addl %edi,%eax + xorl %edx,%esi + movdqa %xmm3,32(%rsp) + rorl $7,%ecx + addl %ebx,%eax + addl 56(%rsp),%ebp + movups 16(%r15),%xmm1 +.byte 102,15,56,220,208 + pslld $2,%xmm7 + xorl %ecx,%esi + movl %eax,%edi + psrld $30,%xmm13 + roll $5,%eax + addl %esi,%ebp + xorl %ecx,%edi + rorl $7,%ebx + por %xmm13,%xmm7 + addl %eax,%ebp + addl 60(%rsp),%edx + pshufd $238,%xmm6,%xmm3 + xorl %ebx,%edi + movl %ebp,%esi + roll $5,%ebp + addl %edi,%edx + xorl %ebx,%esi + rorl $7,%eax + addl %ebp,%edx + pxor %xmm4,%xmm8 + addl 0(%rsp),%ecx + xorl %eax,%esi + punpcklqdq %xmm7,%xmm3 + movl %edx,%edi + roll $5,%edx + pxor %xmm9,%xmm8 + addl %esi,%ecx + movups 32(%r15),%xmm0 +.byte 102,15,56,220,209 + xorl %eax,%edi + movdqa %xmm12,%xmm13 + rorl $7,%ebp + paddd %xmm7,%xmm12 + addl %edx,%ecx + pxor %xmm3,%xmm8 + addl 4(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + roll $5,%ecx + movdqa %xmm8,%xmm3 + addl %edi,%ebx + xorl %ebp,%esi + movdqa %xmm12,48(%rsp) + rorl $7,%edx + addl %ecx,%ebx + addl 8(%rsp),%eax + pslld $2,%xmm8 + xorl %edx,%esi + movl %ebx,%edi + psrld $30,%xmm3 + roll $5,%ebx + addl %esi,%eax + xorl %edx,%edi + rorl $7,%ecx + por %xmm3,%xmm8 + addl %ebx,%eax + addl 12(%rsp),%ebp + movups 48(%r15),%xmm1 +.byte 102,15,56,220,208 + pshufd $238,%xmm7,%xmm12 + xorl %ecx,%edi + movl %eax,%esi + roll $5,%eax + addl %edi,%ebp + xorl %ecx,%esi + rorl $7,%ebx + addl %eax,%ebp + pxor %xmm5,%xmm9 + addl 16(%rsp),%edx + xorl %ebx,%esi + punpcklqdq %xmm8,%xmm12 + movl %ebp,%edi + roll $5,%ebp + pxor %xmm10,%xmm9 + addl %esi,%edx + xorl %ebx,%edi + movdqa %xmm13,%xmm3 + rorl $7,%eax + paddd %xmm8,%xmm13 + addl %ebp,%edx + pxor %xmm12,%xmm9 + addl 20(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + roll $5,%edx + movdqa %xmm9,%xmm12 + addl %edi,%ecx + cmpl $11,%r8d + jb .Laesenclast2 + movups 64(%r15),%xmm0 +.byte 102,15,56,220,209 + movups 80(%r15),%xmm1 +.byte 102,15,56,220,208 + je .Laesenclast2 + movups 96(%r15),%xmm0 +.byte 102,15,56,220,209 + movups 112(%r15),%xmm1 +.byte 102,15,56,220,208 +.Laesenclast2: +.byte 102,15,56,221,209 + movups 16-112(%r15),%xmm0 + xorl %eax,%esi + movdqa %xmm13,0(%rsp) + rorl $7,%ebp + addl %edx,%ecx + addl 24(%rsp),%ebx + pslld $2,%xmm9 + xorl %ebp,%esi + movl %ecx,%edi + psrld $30,%xmm12 + roll $5,%ecx + addl %esi,%ebx + xorl %ebp,%edi + rorl $7,%edx + por %xmm12,%xmm9 + addl %ecx,%ebx + addl 28(%rsp),%eax + pshufd $238,%xmm8,%xmm13 + rorl $7,%ecx + movl %ebx,%esi + xorl %edx,%edi + roll $5,%ebx + addl %edi,%eax + xorl %ecx,%esi + xorl %edx,%ecx + addl %ebx,%eax + pxor %xmm6,%xmm10 + addl 32(%rsp),%ebp + movups 32(%r12),%xmm14 + xorps %xmm15,%xmm14 + movups %xmm2,16(%r13,%r12,1) + xorps %xmm14,%xmm2 + movups -80(%r15),%xmm1 +.byte 102,15,56,220,208 + andl %ecx,%esi + xorl %edx,%ecx + rorl $7,%ebx + punpcklqdq %xmm9,%xmm13 + movl %eax,%edi + xorl %ecx,%esi + pxor %xmm11,%xmm10 + roll $5,%eax + addl %esi,%ebp + movdqa %xmm3,%xmm12 + xorl %ebx,%edi + paddd %xmm9,%xmm3 + xorl %ecx,%ebx + pxor %xmm13,%xmm10 + addl %eax,%ebp + addl 36(%rsp),%edx + andl %ebx,%edi + xorl %ecx,%ebx + rorl $7,%eax + movdqa %xmm10,%xmm13 + movl %ebp,%esi + xorl %ebx,%edi + movdqa %xmm3,16(%rsp) + roll $5,%ebp + addl %edi,%edx + movups -64(%r15),%xmm0 +.byte 102,15,56,220,209 + xorl %eax,%esi + pslld $2,%xmm10 + xorl %ebx,%eax + addl %ebp,%edx + psrld $30,%xmm13 + addl 40(%rsp),%ecx + andl %eax,%esi + xorl %ebx,%eax + por %xmm13,%xmm10 + rorl $7,%ebp + movl %edx,%edi + xorl %eax,%esi + roll $5,%edx + pshufd $238,%xmm9,%xmm3 + addl %esi,%ecx + xorl %ebp,%edi + xorl %eax,%ebp + addl %edx,%ecx + addl 44(%rsp),%ebx + andl %ebp,%edi + xorl %eax,%ebp + rorl $7,%edx + movups -48(%r15),%xmm1 +.byte 102,15,56,220,208 + movl %ecx,%esi + xorl %ebp,%edi + roll $5,%ecx + addl %edi,%ebx + xorl %edx,%esi + xorl %ebp,%edx + addl %ecx,%ebx + pxor %xmm7,%xmm11 + addl 48(%rsp),%eax + andl %edx,%esi + xorl %ebp,%edx + rorl $7,%ecx + punpcklqdq %xmm10,%xmm3 + movl %ebx,%edi + xorl %edx,%esi + pxor %xmm4,%xmm11 + roll $5,%ebx + addl %esi,%eax + movdqa 48(%r11),%xmm13 + xorl %ecx,%edi + paddd %xmm10,%xmm12 + xorl %edx,%ecx + pxor %xmm3,%xmm11 + addl %ebx,%eax + addl 52(%rsp),%ebp + movups -32(%r15),%xmm0 +.byte 102,15,56,220,209 + andl %ecx,%edi + xorl %edx,%ecx + rorl $7,%ebx + movdqa %xmm11,%xmm3 + movl %eax,%esi + xorl %ecx,%edi + movdqa %xmm12,32(%rsp) + roll $5,%eax + addl %edi,%ebp + xorl %ebx,%esi + pslld $2,%xmm11 + xorl %ecx,%ebx + addl %eax,%ebp + psrld $30,%xmm3 + addl 56(%rsp),%edx + andl %ebx,%esi + xorl %ecx,%ebx + por %xmm3,%xmm11 + rorl $7,%eax + movl %ebp,%edi + xorl %ebx,%esi + roll $5,%ebp + pshufd $238,%xmm10,%xmm12 + addl %esi,%edx + movups -16(%r15),%xmm1 +.byte 102,15,56,220,208 + xorl %eax,%edi + xorl %ebx,%eax + addl %ebp,%edx + addl 60(%rsp),%ecx + andl %eax,%edi + xorl %ebx,%eax + rorl $7,%ebp + movl %edx,%esi + xorl %eax,%edi + roll $5,%edx + addl %edi,%ecx + xorl %ebp,%esi + xorl %eax,%ebp + addl %edx,%ecx + pxor %xmm8,%xmm4 + addl 0(%rsp),%ebx + andl %ebp,%esi + xorl %eax,%ebp + rorl $7,%edx + movups 0(%r15),%xmm0 +.byte 102,15,56,220,209 + punpcklqdq %xmm11,%xmm12 + movl %ecx,%edi + xorl %ebp,%esi + pxor %xmm5,%xmm4 + roll $5,%ecx + addl %esi,%ebx + movdqa %xmm13,%xmm3 + xorl %edx,%edi + paddd %xmm11,%xmm13 + xorl %ebp,%edx + pxor %xmm12,%xmm4 + addl %ecx,%ebx + addl 4(%rsp),%eax + andl %edx,%edi + xorl %ebp,%edx + rorl $7,%ecx + movdqa %xmm4,%xmm12 + movl %ebx,%esi + xorl %edx,%edi + movdqa %xmm13,48(%rsp) + roll $5,%ebx + addl %edi,%eax + xorl %ecx,%esi + pslld $2,%xmm4 + xorl %edx,%ecx + addl %ebx,%eax + psrld $30,%xmm12 + addl 8(%rsp),%ebp + movups 16(%r15),%xmm1 +.byte 102,15,56,220,208 + andl %ecx,%esi + xorl %edx,%ecx + por %xmm12,%xmm4 + rorl $7,%ebx + movl %eax,%edi + xorl %ecx,%esi + roll $5,%eax + pshufd $238,%xmm11,%xmm13 + addl %esi,%ebp + xorl %ebx,%edi + xorl %ecx,%ebx + addl %eax,%ebp + addl 12(%rsp),%edx + andl %ebx,%edi + xorl %ecx,%ebx + rorl $7,%eax + movl %ebp,%esi + xorl %ebx,%edi + roll $5,%ebp + addl %edi,%edx + movups 32(%r15),%xmm0 +.byte 102,15,56,220,209 + xorl %eax,%esi + xorl %ebx,%eax + addl %ebp,%edx + pxor %xmm9,%xmm5 + addl 16(%rsp),%ecx + andl %eax,%esi + xorl %ebx,%eax + rorl $7,%ebp + punpcklqdq %xmm4,%xmm13 + movl %edx,%edi + xorl %eax,%esi + pxor %xmm6,%xmm5 + roll $5,%edx + addl %esi,%ecx + movdqa %xmm3,%xmm12 + xorl %ebp,%edi + paddd %xmm4,%xmm3 + xorl %eax,%ebp + pxor %xmm13,%xmm5 + addl %edx,%ecx + addl 20(%rsp),%ebx + andl %ebp,%edi + xorl %eax,%ebp + rorl $7,%edx + movups 48(%r15),%xmm1 +.byte 102,15,56,220,208 + movdqa %xmm5,%xmm13 + movl %ecx,%esi + xorl %ebp,%edi + movdqa %xmm3,0(%rsp) + roll $5,%ecx + addl %edi,%ebx + xorl %edx,%esi + pslld $2,%xmm5 + xorl %ebp,%edx + addl %ecx,%ebx + psrld $30,%xmm13 + addl 24(%rsp),%eax + andl %edx,%esi + xorl %ebp,%edx + por %xmm13,%xmm5 + rorl $7,%ecx + movl %ebx,%edi + xorl %edx,%esi + roll $5,%ebx + pshufd $238,%xmm4,%xmm3 + addl %esi,%eax + xorl %ecx,%edi + xorl %edx,%ecx + addl %ebx,%eax + addl 28(%rsp),%ebp + cmpl $11,%r8d + jb .Laesenclast3 + movups 64(%r15),%xmm0 +.byte 102,15,56,220,209 + movups 80(%r15),%xmm1 +.byte 102,15,56,220,208 + je .Laesenclast3 + movups 96(%r15),%xmm0 +.byte 102,15,56,220,209 + movups 112(%r15),%xmm1 +.byte 102,15,56,220,208 +.Laesenclast3: +.byte 102,15,56,221,209 + movups 16-112(%r15),%xmm0 + andl %ecx,%edi + xorl %edx,%ecx + rorl $7,%ebx + movl %eax,%esi + xorl %ecx,%edi + roll $5,%eax + addl %edi,%ebp + xorl %ebx,%esi + xorl %ecx,%ebx + addl %eax,%ebp + pxor %xmm10,%xmm6 + addl 32(%rsp),%edx + andl %ebx,%esi + xorl %ecx,%ebx + rorl $7,%eax + punpcklqdq %xmm5,%xmm3 + movl %ebp,%edi + xorl %ebx,%esi + pxor %xmm7,%xmm6 + roll $5,%ebp + addl %esi,%edx + movups 48(%r12),%xmm14 + xorps %xmm15,%xmm14 + movups %xmm2,32(%r13,%r12,1) + xorps %xmm14,%xmm2 + movups -80(%r15),%xmm1 +.byte 102,15,56,220,208 + movdqa %xmm12,%xmm13 + xorl %eax,%edi + paddd %xmm5,%xmm12 + xorl %ebx,%eax + pxor %xmm3,%xmm6 + addl %ebp,%edx + addl 36(%rsp),%ecx + andl %eax,%edi + xorl %ebx,%eax + rorl $7,%ebp + movdqa %xmm6,%xmm3 + movl %edx,%esi + xorl %eax,%edi + movdqa %xmm12,16(%rsp) + roll $5,%edx + addl %edi,%ecx + xorl %ebp,%esi + pslld $2,%xmm6 + xorl %eax,%ebp + addl %edx,%ecx + psrld $30,%xmm3 + addl 40(%rsp),%ebx + andl %ebp,%esi + xorl %eax,%ebp + por %xmm3,%xmm6 + rorl $7,%edx + movups -64(%r15),%xmm0 +.byte 102,15,56,220,209 + movl %ecx,%edi + xorl %ebp,%esi + roll $5,%ecx + pshufd $238,%xmm5,%xmm12 + addl %esi,%ebx + xorl %edx,%edi + xorl %ebp,%edx + addl %ecx,%ebx + addl 44(%rsp),%eax + andl %edx,%edi + xorl %ebp,%edx + rorl $7,%ecx + movl %ebx,%esi + xorl %edx,%edi + roll $5,%ebx + addl %edi,%eax + xorl %edx,%esi + addl %ebx,%eax + pxor %xmm11,%xmm7 + addl 48(%rsp),%ebp + movups -48(%r15),%xmm1 +.byte 102,15,56,220,208 + xorl %ecx,%esi + punpcklqdq %xmm6,%xmm12 + movl %eax,%edi + roll $5,%eax + pxor %xmm8,%xmm7 + addl %esi,%ebp + xorl %ecx,%edi + movdqa %xmm13,%xmm3 + rorl $7,%ebx + paddd %xmm6,%xmm13 + addl %eax,%ebp + pxor %xmm12,%xmm7 + addl 52(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + roll $5,%ebp + movdqa %xmm7,%xmm12 + addl %edi,%edx + xorl %ebx,%esi + movdqa %xmm13,32(%rsp) + rorl $7,%eax + addl %ebp,%edx + addl 56(%rsp),%ecx + pslld $2,%xmm7 + xorl %eax,%esi + movl %edx,%edi + psrld $30,%xmm12 + roll $5,%edx + addl %esi,%ecx + movups -32(%r15),%xmm0 +.byte 102,15,56,220,209 + xorl %eax,%edi + rorl $7,%ebp + por %xmm12,%xmm7 + addl %edx,%ecx + addl 60(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + roll $5,%ecx + addl %edi,%ebx + xorl %ebp,%esi + rorl $7,%edx + addl %ecx,%ebx + addl 0(%rsp),%eax + xorl %edx,%esi + movl %ebx,%edi + roll $5,%ebx + paddd %xmm7,%xmm3 + addl %esi,%eax + xorl %edx,%edi + movdqa %xmm3,48(%rsp) + rorl $7,%ecx + addl %ebx,%eax + addl 4(%rsp),%ebp + movups -16(%r15),%xmm1 +.byte 102,15,56,220,208 + xorl %ecx,%edi + movl %eax,%esi + roll $5,%eax + addl %edi,%ebp + xorl %ecx,%esi + rorl $7,%ebx + addl %eax,%ebp + addl 8(%rsp),%edx + xorl %ebx,%esi + movl %ebp,%edi + roll $5,%ebp + addl %esi,%edx + xorl %ebx,%edi + rorl $7,%eax + addl %ebp,%edx + addl 12(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + roll $5,%edx + addl %edi,%ecx + movups 0(%r15),%xmm0 +.byte 102,15,56,220,209 + xorl %eax,%esi + rorl $7,%ebp + addl %edx,%ecx + cmpq %r14,%r10 + je .Ldone_ssse3 + movdqa 64(%r11),%xmm3 + movdqa 0(%r11),%xmm13 + movdqu 0(%r10),%xmm4 + movdqu 16(%r10),%xmm5 + movdqu 32(%r10),%xmm6 + movdqu 48(%r10),%xmm7 +.byte 102,15,56,0,227 + addq $64,%r10 + addl 16(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi +.byte 102,15,56,0,235 + roll $5,%ecx + addl %esi,%ebx + xorl %ebp,%edi + rorl $7,%edx + paddd %xmm13,%xmm4 + addl %ecx,%ebx + addl 20(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + movdqa %xmm4,0(%rsp) + roll $5,%ebx + addl %edi,%eax + xorl %edx,%esi + rorl $7,%ecx + psubd %xmm13,%xmm4 + addl %ebx,%eax + addl 24(%rsp),%ebp + movups 16(%r15),%xmm1 +.byte 102,15,56,220,208 + xorl %ecx,%esi + movl %eax,%edi + roll $5,%eax + addl %esi,%ebp + xorl %ecx,%edi + rorl $7,%ebx + addl %eax,%ebp + addl 28(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + roll $5,%ebp + addl %edi,%edx + xorl %ebx,%esi + rorl $7,%eax + addl %ebp,%edx + addl 32(%rsp),%ecx + xorl %eax,%esi + movl %edx,%edi +.byte 102,15,56,0,243 + roll $5,%edx + addl %esi,%ecx + movups 32(%r15),%xmm0 +.byte 102,15,56,220,209 + xorl %eax,%edi + rorl $7,%ebp + paddd %xmm13,%xmm5 + addl %edx,%ecx + addl 36(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + movdqa %xmm5,16(%rsp) + roll $5,%ecx + addl %edi,%ebx + xorl %ebp,%esi + rorl $7,%edx + psubd %xmm13,%xmm5 + addl %ecx,%ebx + addl 40(%rsp),%eax + xorl %edx,%esi + movl %ebx,%edi + roll $5,%ebx + addl %esi,%eax + xorl %edx,%edi + rorl $7,%ecx + addl %ebx,%eax + addl 44(%rsp),%ebp + movups 48(%r15),%xmm1 +.byte 102,15,56,220,208 + xorl %ecx,%edi + movl %eax,%esi + roll $5,%eax + addl %edi,%ebp + xorl %ecx,%esi + rorl $7,%ebx + addl %eax,%ebp + addl 48(%rsp),%edx + xorl %ebx,%esi + movl %ebp,%edi +.byte 102,15,56,0,251 + roll $5,%ebp + addl %esi,%edx + xorl %ebx,%edi + rorl $7,%eax + paddd %xmm13,%xmm6 + addl %ebp,%edx + addl 52(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + movdqa %xmm6,32(%rsp) + roll $5,%edx + addl %edi,%ecx + cmpl $11,%r8d + jb .Laesenclast4 + movups 64(%r15),%xmm0 +.byte 102,15,56,220,209 + movups 80(%r15),%xmm1 +.byte 102,15,56,220,208 + je .Laesenclast4 + movups 96(%r15),%xmm0 +.byte 102,15,56,220,209 + movups 112(%r15),%xmm1 +.byte 102,15,56,220,208 +.Laesenclast4: +.byte 102,15,56,221,209 + movups 16-112(%r15),%xmm0 + xorl %eax,%esi + rorl $7,%ebp + psubd %xmm13,%xmm6 + addl %edx,%ecx + addl 56(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi + roll $5,%ecx + addl %esi,%ebx + xorl %ebp,%edi + rorl $7,%edx + addl %ecx,%ebx + addl 60(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + roll $5,%ebx + addl %edi,%eax + rorl $7,%ecx + addl %ebx,%eax + movups %xmm2,48(%r13,%r12,1) + leaq 64(%r12),%r12 + + addl 0(%r9),%eax + addl 4(%r9),%esi + addl 8(%r9),%ecx + addl 12(%r9),%edx + movl %eax,0(%r9) + addl 16(%r9),%ebp + movl %esi,4(%r9) + movl %esi,%ebx + movl %ecx,8(%r9) + movl %ecx,%edi + movl %edx,12(%r9) + xorl %edx,%edi + movl %ebp,16(%r9) + andl %edi,%esi + jmp .Loop_ssse3 + +.Ldone_ssse3: + addl 16(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi + roll $5,%ecx + addl %esi,%ebx + xorl %ebp,%edi + rorl $7,%edx + addl %ecx,%ebx + addl 20(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + roll $5,%ebx + addl %edi,%eax + xorl %edx,%esi + rorl $7,%ecx + addl %ebx,%eax + addl 24(%rsp),%ebp + movups 16(%r15),%xmm1 +.byte 102,15,56,220,208 + xorl %ecx,%esi + movl %eax,%edi + roll $5,%eax + addl %esi,%ebp + xorl %ecx,%edi + rorl $7,%ebx + addl %eax,%ebp + addl 28(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + roll $5,%ebp + addl %edi,%edx + xorl %ebx,%esi + rorl $7,%eax + addl %ebp,%edx + addl 32(%rsp),%ecx + xorl %eax,%esi + movl %edx,%edi + roll $5,%edx + addl %esi,%ecx + movups 32(%r15),%xmm0 +.byte 102,15,56,220,209 + xorl %eax,%edi + rorl $7,%ebp + addl %edx,%ecx + addl 36(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + roll $5,%ecx + addl %edi,%ebx + xorl %ebp,%esi + rorl $7,%edx + addl %ecx,%ebx + addl 40(%rsp),%eax + xorl %edx,%esi + movl %ebx,%edi + roll $5,%ebx + addl %esi,%eax + xorl %edx,%edi + rorl $7,%ecx + addl %ebx,%eax + addl 44(%rsp),%ebp + movups 48(%r15),%xmm1 +.byte 102,15,56,220,208 + xorl %ecx,%edi + movl %eax,%esi + roll $5,%eax + addl %edi,%ebp + xorl %ecx,%esi + rorl $7,%ebx + addl %eax,%ebp + addl 48(%rsp),%edx + xorl %ebx,%esi + movl %ebp,%edi + roll $5,%ebp + addl %esi,%edx + xorl %ebx,%edi + rorl $7,%eax + addl %ebp,%edx + addl 52(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + roll $5,%edx + addl %edi,%ecx + cmpl $11,%r8d + jb .Laesenclast5 + movups 64(%r15),%xmm0 +.byte 102,15,56,220,209 + movups 80(%r15),%xmm1 +.byte 102,15,56,220,208 + je .Laesenclast5 + movups 96(%r15),%xmm0 +.byte 102,15,56,220,209 + movups 112(%r15),%xmm1 +.byte 102,15,56,220,208 +.Laesenclast5: +.byte 102,15,56,221,209 + movups 16-112(%r15),%xmm0 + xorl %eax,%esi + rorl $7,%ebp + addl %edx,%ecx + addl 56(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi + roll $5,%ecx + addl %esi,%ebx + xorl %ebp,%edi + rorl $7,%edx + addl %ecx,%ebx + addl 60(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + roll $5,%ebx + addl %edi,%eax + rorl $7,%ecx + addl %ebx,%eax + movups %xmm2,48(%r13,%r12,1) + movq 88(%rsp),%r8 + + addl 0(%r9),%eax + addl 4(%r9),%esi + addl 8(%r9),%ecx + movl %eax,0(%r9) + addl 12(%r9),%edx + movl %esi,4(%r9) + addl 16(%r9),%ebp + movl %ecx,8(%r9) + movl %edx,12(%r9) + movl %ebp,16(%r9) + movups %xmm2,(%r8) + leaq 104(%rsp),%rsi +.cfi_def_cfa %rsi,56 + movq 0(%rsi),%r15 +.cfi_restore %r15 + movq 8(%rsi),%r14 +.cfi_restore %r14 + movq 16(%rsi),%r13 +.cfi_restore %r13 + movq 24(%rsi),%r12 +.cfi_restore %r12 + movq 32(%rsi),%rbp +.cfi_restore %rbp + movq 40(%rsi),%rbx +.cfi_restore %rbx + leaq 48(%rsi),%rsp +.cfi_def_cfa %rsp,8 +.Lepilogue_ssse3: + .byte 0xf3,0xc3 +.cfi_endproc +.size aesni_cbc_sha1_enc_ssse3,.-aesni_cbc_sha1_enc_ssse3 +.type aesni_cbc_sha1_enc_avx,@function +.align 32 +aesni_cbc_sha1_enc_avx: +.cfi_startproc + movq 8(%rsp),%r10 + + + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 + leaq -104(%rsp),%rsp +.cfi_adjust_cfa_offset 104 + + + vzeroall + movq %rdi,%r12 + movq %rsi,%r13 + movq %rdx,%r14 + leaq 112(%rcx),%r15 + vmovdqu (%r8),%xmm12 + movq %r8,88(%rsp) + shlq $6,%r14 + subq %r12,%r13 + movl 240-112(%r15),%r8d + addq %r10,%r14 + + leaq K_XX_XX(%rip),%r11 + movl 0(%r9),%eax + movl 4(%r9),%ebx + movl 8(%r9),%ecx + movl 12(%r9),%edx + movl %ebx,%esi + movl 16(%r9),%ebp + movl %ecx,%edi + xorl %edx,%edi + andl %edi,%esi + + vmovdqa 64(%r11),%xmm6 + vmovdqa 0(%r11),%xmm10 + vmovdqu 0(%r10),%xmm0 + vmovdqu 16(%r10),%xmm1 + vmovdqu 32(%r10),%xmm2 + vmovdqu 48(%r10),%xmm3 + vpshufb %xmm6,%xmm0,%xmm0 + addq $64,%r10 + vpshufb %xmm6,%xmm1,%xmm1 + vpshufb %xmm6,%xmm2,%xmm2 + vpshufb %xmm6,%xmm3,%xmm3 + vpaddd %xmm10,%xmm0,%xmm4 + vpaddd %xmm10,%xmm1,%xmm5 + vpaddd %xmm10,%xmm2,%xmm6 + vmovdqa %xmm4,0(%rsp) + vmovdqa %xmm5,16(%rsp) + vmovdqa %xmm6,32(%rsp) + vmovups -112(%r15),%xmm15 + vmovups 16-112(%r15),%xmm14 + jmp .Loop_avx +.align 32 +.Loop_avx: + shrdl $2,%ebx,%ebx + vmovdqu 0(%r12),%xmm13 + vpxor %xmm15,%xmm13,%xmm13 + vpxor %xmm13,%xmm12,%xmm12 + vaesenc %xmm14,%xmm12,%xmm12 + vmovups -80(%r15),%xmm15 + xorl %edx,%esi + vpalignr $8,%xmm0,%xmm1,%xmm4 + movl %eax,%edi + addl 0(%rsp),%ebp + vpaddd %xmm3,%xmm10,%xmm9 + xorl %ecx,%ebx + shldl $5,%eax,%eax + vpsrldq $4,%xmm3,%xmm8 + addl %esi,%ebp + andl %ebx,%edi + vpxor %xmm0,%xmm4,%xmm4 + xorl %ecx,%ebx + addl %eax,%ebp + vpxor %xmm2,%xmm8,%xmm8 + shrdl $7,%eax,%eax + xorl %ecx,%edi + movl %ebp,%esi + addl 4(%rsp),%edx + vpxor %xmm8,%xmm4,%xmm4 + xorl %ebx,%eax + shldl $5,%ebp,%ebp + vmovdqa %xmm9,48(%rsp) + addl %edi,%edx + vaesenc %xmm15,%xmm12,%xmm12 + vmovups -64(%r15),%xmm14 + andl %eax,%esi + vpsrld $31,%xmm4,%xmm8 + xorl %ebx,%eax + addl %ebp,%edx + shrdl $7,%ebp,%ebp + xorl %ebx,%esi + vpslldq $12,%xmm4,%xmm9 + vpaddd %xmm4,%xmm4,%xmm4 + movl %edx,%edi + addl 8(%rsp),%ecx + xorl %eax,%ebp + shldl $5,%edx,%edx + vpor %xmm8,%xmm4,%xmm4 + vpsrld $30,%xmm9,%xmm8 + addl %esi,%ecx + andl %ebp,%edi + xorl %eax,%ebp + addl %edx,%ecx + vpslld $2,%xmm9,%xmm9 + vpxor %xmm8,%xmm4,%xmm4 + shrdl $7,%edx,%edx + xorl %eax,%edi + movl %ecx,%esi + addl 12(%rsp),%ebx + vaesenc %xmm14,%xmm12,%xmm12 + vmovups -48(%r15),%xmm15 + vpxor %xmm9,%xmm4,%xmm4 + xorl %ebp,%edx + shldl $5,%ecx,%ecx + addl %edi,%ebx + andl %edx,%esi + xorl %ebp,%edx + addl %ecx,%ebx + shrdl $7,%ecx,%ecx + xorl %ebp,%esi + vpalignr $8,%xmm1,%xmm2,%xmm5 + movl %ebx,%edi + addl 16(%rsp),%eax + vpaddd %xmm4,%xmm10,%xmm9 + xorl %edx,%ecx + shldl $5,%ebx,%ebx + vpsrldq $4,%xmm4,%xmm8 + addl %esi,%eax + andl %ecx,%edi + vpxor %xmm1,%xmm5,%xmm5 + xorl %edx,%ecx + addl %ebx,%eax + vpxor %xmm3,%xmm8,%xmm8 + shrdl $7,%ebx,%ebx + vaesenc %xmm15,%xmm12,%xmm12 + vmovups -32(%r15),%xmm14 + xorl %edx,%edi + movl %eax,%esi + addl 20(%rsp),%ebp + vpxor %xmm8,%xmm5,%xmm5 + xorl %ecx,%ebx + shldl $5,%eax,%eax + vmovdqa %xmm9,0(%rsp) + addl %edi,%ebp + andl %ebx,%esi + vpsrld $31,%xmm5,%xmm8 + xorl %ecx,%ebx + addl %eax,%ebp + shrdl $7,%eax,%eax + xorl %ecx,%esi + vpslldq $12,%xmm5,%xmm9 + vpaddd %xmm5,%xmm5,%xmm5 + movl %ebp,%edi + addl 24(%rsp),%edx + xorl %ebx,%eax + shldl $5,%ebp,%ebp + vpor %xmm8,%xmm5,%xmm5 + vpsrld $30,%xmm9,%xmm8 + addl %esi,%edx + vaesenc %xmm14,%xmm12,%xmm12 + vmovups -16(%r15),%xmm15 + andl %eax,%edi + xorl %ebx,%eax + addl %ebp,%edx + vpslld $2,%xmm9,%xmm9 + vpxor %xmm8,%xmm5,%xmm5 + shrdl $7,%ebp,%ebp + xorl %ebx,%edi + movl %edx,%esi + addl 28(%rsp),%ecx + vpxor %xmm9,%xmm5,%xmm5 + xorl %eax,%ebp + shldl $5,%edx,%edx + vmovdqa 16(%r11),%xmm10 + addl %edi,%ecx + andl %ebp,%esi + xorl %eax,%ebp + addl %edx,%ecx + shrdl $7,%edx,%edx + xorl %eax,%esi + vpalignr $8,%xmm2,%xmm3,%xmm6 + movl %ecx,%edi + addl 32(%rsp),%ebx + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 0(%r15),%xmm14 + vpaddd %xmm5,%xmm10,%xmm9 + xorl %ebp,%edx + shldl $5,%ecx,%ecx + vpsrldq $4,%xmm5,%xmm8 + addl %esi,%ebx + andl %edx,%edi + vpxor %xmm2,%xmm6,%xmm6 + xorl %ebp,%edx + addl %ecx,%ebx + vpxor %xmm4,%xmm8,%xmm8 + shrdl $7,%ecx,%ecx + xorl %ebp,%edi + movl %ebx,%esi + addl 36(%rsp),%eax + vpxor %xmm8,%xmm6,%xmm6 + xorl %edx,%ecx + shldl $5,%ebx,%ebx + vmovdqa %xmm9,16(%rsp) + addl %edi,%eax + andl %ecx,%esi + vpsrld $31,%xmm6,%xmm8 + xorl %edx,%ecx + addl %ebx,%eax + shrdl $7,%ebx,%ebx + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 16(%r15),%xmm15 + xorl %edx,%esi + vpslldq $12,%xmm6,%xmm9 + vpaddd %xmm6,%xmm6,%xmm6 + movl %eax,%edi + addl 40(%rsp),%ebp + xorl %ecx,%ebx + shldl $5,%eax,%eax + vpor %xmm8,%xmm6,%xmm6 + vpsrld $30,%xmm9,%xmm8 + addl %esi,%ebp + andl %ebx,%edi + xorl %ecx,%ebx + addl %eax,%ebp + vpslld $2,%xmm9,%xmm9 + vpxor %xmm8,%xmm6,%xmm6 + shrdl $7,%eax,%eax + xorl %ecx,%edi + movl %ebp,%esi + addl 44(%rsp),%edx + vpxor %xmm9,%xmm6,%xmm6 + xorl %ebx,%eax + shldl $5,%ebp,%ebp + addl %edi,%edx + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 32(%r15),%xmm14 + andl %eax,%esi + xorl %ebx,%eax + addl %ebp,%edx + shrdl $7,%ebp,%ebp + xorl %ebx,%esi + vpalignr $8,%xmm3,%xmm4,%xmm7 + movl %edx,%edi + addl 48(%rsp),%ecx + vpaddd %xmm6,%xmm10,%xmm9 + xorl %eax,%ebp + shldl $5,%edx,%edx + vpsrldq $4,%xmm6,%xmm8 + addl %esi,%ecx + andl %ebp,%edi + vpxor %xmm3,%xmm7,%xmm7 + xorl %eax,%ebp + addl %edx,%ecx + vpxor %xmm5,%xmm8,%xmm8 + shrdl $7,%edx,%edx + xorl %eax,%edi + movl %ecx,%esi + addl 52(%rsp),%ebx + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 48(%r15),%xmm15 + vpxor %xmm8,%xmm7,%xmm7 + xorl %ebp,%edx + shldl $5,%ecx,%ecx + vmovdqa %xmm9,32(%rsp) + addl %edi,%ebx + andl %edx,%esi + vpsrld $31,%xmm7,%xmm8 + xorl %ebp,%edx + addl %ecx,%ebx + shrdl $7,%ecx,%ecx + xorl %ebp,%esi + vpslldq $12,%xmm7,%xmm9 + vpaddd %xmm7,%xmm7,%xmm7 + movl %ebx,%edi + addl 56(%rsp),%eax + xorl %edx,%ecx + shldl $5,%ebx,%ebx + vpor %xmm8,%xmm7,%xmm7 + vpsrld $30,%xmm9,%xmm8 + addl %esi,%eax + andl %ecx,%edi + xorl %edx,%ecx + addl %ebx,%eax + vpslld $2,%xmm9,%xmm9 + vpxor %xmm8,%xmm7,%xmm7 + shrdl $7,%ebx,%ebx + cmpl $11,%r8d + jb .Lvaesenclast6 + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 64(%r15),%xmm14 + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 80(%r15),%xmm15 + je .Lvaesenclast6 + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 96(%r15),%xmm14 + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 112(%r15),%xmm15 +.Lvaesenclast6: + vaesenclast %xmm15,%xmm12,%xmm12 + vmovups -112(%r15),%xmm15 + vmovups 16-112(%r15),%xmm14 + xorl %edx,%edi + movl %eax,%esi + addl 60(%rsp),%ebp + vpxor %xmm9,%xmm7,%xmm7 + xorl %ecx,%ebx + shldl $5,%eax,%eax + addl %edi,%ebp + andl %ebx,%esi + xorl %ecx,%ebx + addl %eax,%ebp + vpalignr $8,%xmm6,%xmm7,%xmm8 + vpxor %xmm4,%xmm0,%xmm0 + shrdl $7,%eax,%eax + xorl %ecx,%esi + movl %ebp,%edi + addl 0(%rsp),%edx + vpxor %xmm1,%xmm0,%xmm0 + xorl %ebx,%eax + shldl $5,%ebp,%ebp + vpaddd %xmm7,%xmm10,%xmm9 + addl %esi,%edx + vmovdqu 16(%r12),%xmm13 + vpxor %xmm15,%xmm13,%xmm13 + vmovups %xmm12,0(%r12,%r13,1) + vpxor %xmm13,%xmm12,%xmm12 + vaesenc %xmm14,%xmm12,%xmm12 + vmovups -80(%r15),%xmm15 + andl %eax,%edi + vpxor %xmm8,%xmm0,%xmm0 + xorl %ebx,%eax + addl %ebp,%edx + shrdl $7,%ebp,%ebp + xorl %ebx,%edi + vpsrld $30,%xmm0,%xmm8 + vmovdqa %xmm9,48(%rsp) + movl %edx,%esi + addl 4(%rsp),%ecx + xorl %eax,%ebp + shldl $5,%edx,%edx + vpslld $2,%xmm0,%xmm0 + addl %edi,%ecx + andl %ebp,%esi + xorl %eax,%ebp + addl %edx,%ecx + shrdl $7,%edx,%edx + xorl %eax,%esi + movl %ecx,%edi + addl 8(%rsp),%ebx + vaesenc %xmm15,%xmm12,%xmm12 + vmovups -64(%r15),%xmm14 + vpor %xmm8,%xmm0,%xmm0 + xorl %ebp,%edx + shldl $5,%ecx,%ecx + addl %esi,%ebx + andl %edx,%edi + xorl %ebp,%edx + addl %ecx,%ebx + addl 12(%rsp),%eax + xorl %ebp,%edi + movl %ebx,%esi + shldl $5,%ebx,%ebx + addl %edi,%eax + xorl %edx,%esi + shrdl $7,%ecx,%ecx + addl %ebx,%eax + vpalignr $8,%xmm7,%xmm0,%xmm8 + vpxor %xmm5,%xmm1,%xmm1 + addl 16(%rsp),%ebp + vaesenc %xmm14,%xmm12,%xmm12 + vmovups -48(%r15),%xmm15 + xorl %ecx,%esi + movl %eax,%edi + shldl $5,%eax,%eax + vpxor %xmm2,%xmm1,%xmm1 + addl %esi,%ebp + xorl %ecx,%edi + vpaddd %xmm0,%xmm10,%xmm9 + shrdl $7,%ebx,%ebx + addl %eax,%ebp + vpxor %xmm8,%xmm1,%xmm1 + addl 20(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + shldl $5,%ebp,%ebp + vpsrld $30,%xmm1,%xmm8 + vmovdqa %xmm9,0(%rsp) + addl %edi,%edx + xorl %ebx,%esi + shrdl $7,%eax,%eax + addl %ebp,%edx + vpslld $2,%xmm1,%xmm1 + addl 24(%rsp),%ecx + xorl %eax,%esi + movl %edx,%edi + shldl $5,%edx,%edx + addl %esi,%ecx + vaesenc %xmm15,%xmm12,%xmm12 + vmovups -32(%r15),%xmm14 + xorl %eax,%edi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + vpor %xmm8,%xmm1,%xmm1 + addl 28(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + shldl $5,%ecx,%ecx + addl %edi,%ebx + xorl %ebp,%esi + shrdl $7,%edx,%edx + addl %ecx,%ebx + vpalignr $8,%xmm0,%xmm1,%xmm8 + vpxor %xmm6,%xmm2,%xmm2 + addl 32(%rsp),%eax + xorl %edx,%esi + movl %ebx,%edi + shldl $5,%ebx,%ebx + vpxor %xmm3,%xmm2,%xmm2 + addl %esi,%eax + xorl %edx,%edi + vpaddd %xmm1,%xmm10,%xmm9 + vmovdqa 32(%r11),%xmm10 + shrdl $7,%ecx,%ecx + addl %ebx,%eax + vpxor %xmm8,%xmm2,%xmm2 + addl 36(%rsp),%ebp + vaesenc %xmm14,%xmm12,%xmm12 + vmovups -16(%r15),%xmm15 + xorl %ecx,%edi + movl %eax,%esi + shldl $5,%eax,%eax + vpsrld $30,%xmm2,%xmm8 + vmovdqa %xmm9,16(%rsp) + addl %edi,%ebp + xorl %ecx,%esi + shrdl $7,%ebx,%ebx + addl %eax,%ebp + vpslld $2,%xmm2,%xmm2 + addl 40(%rsp),%edx + xorl %ebx,%esi + movl %ebp,%edi + shldl $5,%ebp,%ebp + addl %esi,%edx + xorl %ebx,%edi + shrdl $7,%eax,%eax + addl %ebp,%edx + vpor %xmm8,%xmm2,%xmm2 + addl 44(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + shldl $5,%edx,%edx + addl %edi,%ecx + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 0(%r15),%xmm14 + xorl %eax,%esi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + vpalignr $8,%xmm1,%xmm2,%xmm8 + vpxor %xmm7,%xmm3,%xmm3 + addl 48(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi + shldl $5,%ecx,%ecx + vpxor %xmm4,%xmm3,%xmm3 + addl %esi,%ebx + xorl %ebp,%edi + vpaddd %xmm2,%xmm10,%xmm9 + shrdl $7,%edx,%edx + addl %ecx,%ebx + vpxor %xmm8,%xmm3,%xmm3 + addl 52(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + shldl $5,%ebx,%ebx + vpsrld $30,%xmm3,%xmm8 + vmovdqa %xmm9,32(%rsp) + addl %edi,%eax + xorl %edx,%esi + shrdl $7,%ecx,%ecx + addl %ebx,%eax + vpslld $2,%xmm3,%xmm3 + addl 56(%rsp),%ebp + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 16(%r15),%xmm15 + xorl %ecx,%esi + movl %eax,%edi + shldl $5,%eax,%eax + addl %esi,%ebp + xorl %ecx,%edi + shrdl $7,%ebx,%ebx + addl %eax,%ebp + vpor %xmm8,%xmm3,%xmm3 + addl 60(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + shldl $5,%ebp,%ebp + addl %edi,%edx + xorl %ebx,%esi + shrdl $7,%eax,%eax + addl %ebp,%edx + vpalignr $8,%xmm2,%xmm3,%xmm8 + vpxor %xmm0,%xmm4,%xmm4 + addl 0(%rsp),%ecx + xorl %eax,%esi + movl %edx,%edi + shldl $5,%edx,%edx + vpxor %xmm5,%xmm4,%xmm4 + addl %esi,%ecx + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 32(%r15),%xmm14 + xorl %eax,%edi + vpaddd %xmm3,%xmm10,%xmm9 + shrdl $7,%ebp,%ebp + addl %edx,%ecx + vpxor %xmm8,%xmm4,%xmm4 + addl 4(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + shldl $5,%ecx,%ecx + vpsrld $30,%xmm4,%xmm8 + vmovdqa %xmm9,48(%rsp) + addl %edi,%ebx + xorl %ebp,%esi + shrdl $7,%edx,%edx + addl %ecx,%ebx + vpslld $2,%xmm4,%xmm4 + addl 8(%rsp),%eax + xorl %edx,%esi + movl %ebx,%edi + shldl $5,%ebx,%ebx + addl %esi,%eax + xorl %edx,%edi + shrdl $7,%ecx,%ecx + addl %ebx,%eax + vpor %xmm8,%xmm4,%xmm4 + addl 12(%rsp),%ebp + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 48(%r15),%xmm15 + xorl %ecx,%edi + movl %eax,%esi + shldl $5,%eax,%eax + addl %edi,%ebp + xorl %ecx,%esi + shrdl $7,%ebx,%ebx + addl %eax,%ebp + vpalignr $8,%xmm3,%xmm4,%xmm8 + vpxor %xmm1,%xmm5,%xmm5 + addl 16(%rsp),%edx + xorl %ebx,%esi + movl %ebp,%edi + shldl $5,%ebp,%ebp + vpxor %xmm6,%xmm5,%xmm5 + addl %esi,%edx + xorl %ebx,%edi + vpaddd %xmm4,%xmm10,%xmm9 + shrdl $7,%eax,%eax + addl %ebp,%edx + vpxor %xmm8,%xmm5,%xmm5 + addl 20(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + shldl $5,%edx,%edx + vpsrld $30,%xmm5,%xmm8 + vmovdqa %xmm9,0(%rsp) + addl %edi,%ecx + cmpl $11,%r8d + jb .Lvaesenclast7 + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 64(%r15),%xmm14 + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 80(%r15),%xmm15 + je .Lvaesenclast7 + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 96(%r15),%xmm14 + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 112(%r15),%xmm15 +.Lvaesenclast7: + vaesenclast %xmm15,%xmm12,%xmm12 + vmovups -112(%r15),%xmm15 + vmovups 16-112(%r15),%xmm14 + xorl %eax,%esi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + vpslld $2,%xmm5,%xmm5 + addl 24(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi + shldl $5,%ecx,%ecx + addl %esi,%ebx + xorl %ebp,%edi + shrdl $7,%edx,%edx + addl %ecx,%ebx + vpor %xmm8,%xmm5,%xmm5 + addl 28(%rsp),%eax + shrdl $7,%ecx,%ecx + movl %ebx,%esi + xorl %edx,%edi + shldl $5,%ebx,%ebx + addl %edi,%eax + xorl %ecx,%esi + xorl %edx,%ecx + addl %ebx,%eax + vpalignr $8,%xmm4,%xmm5,%xmm8 + vpxor %xmm2,%xmm6,%xmm6 + addl 32(%rsp),%ebp + vmovdqu 32(%r12),%xmm13 + vpxor %xmm15,%xmm13,%xmm13 + vmovups %xmm12,16(%r13,%r12,1) + vpxor %xmm13,%xmm12,%xmm12 + vaesenc %xmm14,%xmm12,%xmm12 + vmovups -80(%r15),%xmm15 + andl %ecx,%esi + xorl %edx,%ecx + shrdl $7,%ebx,%ebx + vpxor %xmm7,%xmm6,%xmm6 + movl %eax,%edi + xorl %ecx,%esi + vpaddd %xmm5,%xmm10,%xmm9 + shldl $5,%eax,%eax + addl %esi,%ebp + vpxor %xmm8,%xmm6,%xmm6 + xorl %ebx,%edi + xorl %ecx,%ebx + addl %eax,%ebp + addl 36(%rsp),%edx + vpsrld $30,%xmm6,%xmm8 + vmovdqa %xmm9,16(%rsp) + andl %ebx,%edi + xorl %ecx,%ebx + shrdl $7,%eax,%eax + movl %ebp,%esi + vpslld $2,%xmm6,%xmm6 + xorl %ebx,%edi + shldl $5,%ebp,%ebp + addl %edi,%edx + vaesenc %xmm15,%xmm12,%xmm12 + vmovups -64(%r15),%xmm14 + xorl %eax,%esi + xorl %ebx,%eax + addl %ebp,%edx + addl 40(%rsp),%ecx + andl %eax,%esi + vpor %xmm8,%xmm6,%xmm6 + xorl %ebx,%eax + shrdl $7,%ebp,%ebp + movl %edx,%edi + xorl %eax,%esi + shldl $5,%edx,%edx + addl %esi,%ecx + xorl %ebp,%edi + xorl %eax,%ebp + addl %edx,%ecx + addl 44(%rsp),%ebx + andl %ebp,%edi + xorl %eax,%ebp + shrdl $7,%edx,%edx + vaesenc %xmm14,%xmm12,%xmm12 + vmovups -48(%r15),%xmm15 + movl %ecx,%esi + xorl %ebp,%edi + shldl $5,%ecx,%ecx + addl %edi,%ebx + xorl %edx,%esi + xorl %ebp,%edx + addl %ecx,%ebx + vpalignr $8,%xmm5,%xmm6,%xmm8 + vpxor %xmm3,%xmm7,%xmm7 + addl 48(%rsp),%eax + andl %edx,%esi + xorl %ebp,%edx + shrdl $7,%ecx,%ecx + vpxor %xmm0,%xmm7,%xmm7 + movl %ebx,%edi + xorl %edx,%esi + vpaddd %xmm6,%xmm10,%xmm9 + vmovdqa 48(%r11),%xmm10 + shldl $5,%ebx,%ebx + addl %esi,%eax + vpxor %xmm8,%xmm7,%xmm7 + xorl %ecx,%edi + xorl %edx,%ecx + addl %ebx,%eax + addl 52(%rsp),%ebp + vaesenc %xmm15,%xmm12,%xmm12 + vmovups -32(%r15),%xmm14 + vpsrld $30,%xmm7,%xmm8 + vmovdqa %xmm9,32(%rsp) + andl %ecx,%edi + xorl %edx,%ecx + shrdl $7,%ebx,%ebx + movl %eax,%esi + vpslld $2,%xmm7,%xmm7 + xorl %ecx,%edi + shldl $5,%eax,%eax + addl %edi,%ebp + xorl %ebx,%esi + xorl %ecx,%ebx + addl %eax,%ebp + addl 56(%rsp),%edx + andl %ebx,%esi + vpor %xmm8,%xmm7,%xmm7 + xorl %ecx,%ebx + shrdl $7,%eax,%eax + movl %ebp,%edi + xorl %ebx,%esi + shldl $5,%ebp,%ebp + addl %esi,%edx + vaesenc %xmm14,%xmm12,%xmm12 + vmovups -16(%r15),%xmm15 + xorl %eax,%edi + xorl %ebx,%eax + addl %ebp,%edx + addl 60(%rsp),%ecx + andl %eax,%edi + xorl %ebx,%eax + shrdl $7,%ebp,%ebp + movl %edx,%esi + xorl %eax,%edi + shldl $5,%edx,%edx + addl %edi,%ecx + xorl %ebp,%esi + xorl %eax,%ebp + addl %edx,%ecx + vpalignr $8,%xmm6,%xmm7,%xmm8 + vpxor %xmm4,%xmm0,%xmm0 + addl 0(%rsp),%ebx + andl %ebp,%esi + xorl %eax,%ebp + shrdl $7,%edx,%edx + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 0(%r15),%xmm14 + vpxor %xmm1,%xmm0,%xmm0 + movl %ecx,%edi + xorl %ebp,%esi + vpaddd %xmm7,%xmm10,%xmm9 + shldl $5,%ecx,%ecx + addl %esi,%ebx + vpxor %xmm8,%xmm0,%xmm0 + xorl %edx,%edi + xorl %ebp,%edx + addl %ecx,%ebx + addl 4(%rsp),%eax + vpsrld $30,%xmm0,%xmm8 + vmovdqa %xmm9,48(%rsp) + andl %edx,%edi + xorl %ebp,%edx + shrdl $7,%ecx,%ecx + movl %ebx,%esi + vpslld $2,%xmm0,%xmm0 + xorl %edx,%edi + shldl $5,%ebx,%ebx + addl %edi,%eax + xorl %ecx,%esi + xorl %edx,%ecx + addl %ebx,%eax + addl 8(%rsp),%ebp + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 16(%r15),%xmm15 + andl %ecx,%esi + vpor %xmm8,%xmm0,%xmm0 + xorl %edx,%ecx + shrdl $7,%ebx,%ebx + movl %eax,%edi + xorl %ecx,%esi + shldl $5,%eax,%eax + addl %esi,%ebp + xorl %ebx,%edi + xorl %ecx,%ebx + addl %eax,%ebp + addl 12(%rsp),%edx + andl %ebx,%edi + xorl %ecx,%ebx + shrdl $7,%eax,%eax + movl %ebp,%esi + xorl %ebx,%edi + shldl $5,%ebp,%ebp + addl %edi,%edx + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 32(%r15),%xmm14 + xorl %eax,%esi + xorl %ebx,%eax + addl %ebp,%edx + vpalignr $8,%xmm7,%xmm0,%xmm8 + vpxor %xmm5,%xmm1,%xmm1 + addl 16(%rsp),%ecx + andl %eax,%esi + xorl %ebx,%eax + shrdl $7,%ebp,%ebp + vpxor %xmm2,%xmm1,%xmm1 + movl %edx,%edi + xorl %eax,%esi + vpaddd %xmm0,%xmm10,%xmm9 + shldl $5,%edx,%edx + addl %esi,%ecx + vpxor %xmm8,%xmm1,%xmm1 + xorl %ebp,%edi + xorl %eax,%ebp + addl %edx,%ecx + addl 20(%rsp),%ebx + vpsrld $30,%xmm1,%xmm8 + vmovdqa %xmm9,0(%rsp) + andl %ebp,%edi + xorl %eax,%ebp + shrdl $7,%edx,%edx + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 48(%r15),%xmm15 + movl %ecx,%esi + vpslld $2,%xmm1,%xmm1 + xorl %ebp,%edi + shldl $5,%ecx,%ecx + addl %edi,%ebx + xorl %edx,%esi + xorl %ebp,%edx + addl %ecx,%ebx + addl 24(%rsp),%eax + andl %edx,%esi + vpor %xmm8,%xmm1,%xmm1 + xorl %ebp,%edx + shrdl $7,%ecx,%ecx + movl %ebx,%edi + xorl %edx,%esi + shldl $5,%ebx,%ebx + addl %esi,%eax + xorl %ecx,%edi + xorl %edx,%ecx + addl %ebx,%eax + addl 28(%rsp),%ebp + cmpl $11,%r8d + jb .Lvaesenclast8 + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 64(%r15),%xmm14 + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 80(%r15),%xmm15 + je .Lvaesenclast8 + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 96(%r15),%xmm14 + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 112(%r15),%xmm15 +.Lvaesenclast8: + vaesenclast %xmm15,%xmm12,%xmm12 + vmovups -112(%r15),%xmm15 + vmovups 16-112(%r15),%xmm14 + andl %ecx,%edi + xorl %edx,%ecx + shrdl $7,%ebx,%ebx + movl %eax,%esi + xorl %ecx,%edi + shldl $5,%eax,%eax + addl %edi,%ebp + xorl %ebx,%esi + xorl %ecx,%ebx + addl %eax,%ebp + vpalignr $8,%xmm0,%xmm1,%xmm8 + vpxor %xmm6,%xmm2,%xmm2 + addl 32(%rsp),%edx + andl %ebx,%esi + xorl %ecx,%ebx + shrdl $7,%eax,%eax + vpxor %xmm3,%xmm2,%xmm2 + movl %ebp,%edi + xorl %ebx,%esi + vpaddd %xmm1,%xmm10,%xmm9 + shldl $5,%ebp,%ebp + addl %esi,%edx + vmovdqu 48(%r12),%xmm13 + vpxor %xmm15,%xmm13,%xmm13 + vmovups %xmm12,32(%r13,%r12,1) + vpxor %xmm13,%xmm12,%xmm12 + vaesenc %xmm14,%xmm12,%xmm12 + vmovups -80(%r15),%xmm15 + vpxor %xmm8,%xmm2,%xmm2 + xorl %eax,%edi + xorl %ebx,%eax + addl %ebp,%edx + addl 36(%rsp),%ecx + vpsrld $30,%xmm2,%xmm8 + vmovdqa %xmm9,16(%rsp) + andl %eax,%edi + xorl %ebx,%eax + shrdl $7,%ebp,%ebp + movl %edx,%esi + vpslld $2,%xmm2,%xmm2 + xorl %eax,%edi + shldl $5,%edx,%edx + addl %edi,%ecx + xorl %ebp,%esi + xorl %eax,%ebp + addl %edx,%ecx + addl 40(%rsp),%ebx + andl %ebp,%esi + vpor %xmm8,%xmm2,%xmm2 + xorl %eax,%ebp + shrdl $7,%edx,%edx + vaesenc %xmm15,%xmm12,%xmm12 + vmovups -64(%r15),%xmm14 + movl %ecx,%edi + xorl %ebp,%esi + shldl $5,%ecx,%ecx + addl %esi,%ebx + xorl %edx,%edi + xorl %ebp,%edx + addl %ecx,%ebx + addl 44(%rsp),%eax + andl %edx,%edi + xorl %ebp,%edx + shrdl $7,%ecx,%ecx + movl %ebx,%esi + xorl %edx,%edi + shldl $5,%ebx,%ebx + addl %edi,%eax + xorl %edx,%esi + addl %ebx,%eax + vpalignr $8,%xmm1,%xmm2,%xmm8 + vpxor %xmm7,%xmm3,%xmm3 + addl 48(%rsp),%ebp + vaesenc %xmm14,%xmm12,%xmm12 + vmovups -48(%r15),%xmm15 + xorl %ecx,%esi + movl %eax,%edi + shldl $5,%eax,%eax + vpxor %xmm4,%xmm3,%xmm3 + addl %esi,%ebp + xorl %ecx,%edi + vpaddd %xmm2,%xmm10,%xmm9 + shrdl $7,%ebx,%ebx + addl %eax,%ebp + vpxor %xmm8,%xmm3,%xmm3 + addl 52(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + shldl $5,%ebp,%ebp + vpsrld $30,%xmm3,%xmm8 + vmovdqa %xmm9,32(%rsp) + addl %edi,%edx + xorl %ebx,%esi + shrdl $7,%eax,%eax + addl %ebp,%edx + vpslld $2,%xmm3,%xmm3 + addl 56(%rsp),%ecx + xorl %eax,%esi + movl %edx,%edi + shldl $5,%edx,%edx + addl %esi,%ecx + vaesenc %xmm15,%xmm12,%xmm12 + vmovups -32(%r15),%xmm14 + xorl %eax,%edi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + vpor %xmm8,%xmm3,%xmm3 + addl 60(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + shldl $5,%ecx,%ecx + addl %edi,%ebx + xorl %ebp,%esi + shrdl $7,%edx,%edx + addl %ecx,%ebx + addl 0(%rsp),%eax + vpaddd %xmm3,%xmm10,%xmm9 + xorl %edx,%esi + movl %ebx,%edi + shldl $5,%ebx,%ebx + addl %esi,%eax + vmovdqa %xmm9,48(%rsp) + xorl %edx,%edi + shrdl $7,%ecx,%ecx + addl %ebx,%eax + addl 4(%rsp),%ebp + vaesenc %xmm14,%xmm12,%xmm12 + vmovups -16(%r15),%xmm15 + xorl %ecx,%edi + movl %eax,%esi + shldl $5,%eax,%eax + addl %edi,%ebp + xorl %ecx,%esi + shrdl $7,%ebx,%ebx + addl %eax,%ebp + addl 8(%rsp),%edx + xorl %ebx,%esi + movl %ebp,%edi + shldl $5,%ebp,%ebp + addl %esi,%edx + xorl %ebx,%edi + shrdl $7,%eax,%eax + addl %ebp,%edx + addl 12(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + shldl $5,%edx,%edx + addl %edi,%ecx + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 0(%r15),%xmm14 + xorl %eax,%esi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + cmpq %r14,%r10 + je .Ldone_avx + vmovdqa 64(%r11),%xmm9 + vmovdqa 0(%r11),%xmm10 + vmovdqu 0(%r10),%xmm0 + vmovdqu 16(%r10),%xmm1 + vmovdqu 32(%r10),%xmm2 + vmovdqu 48(%r10),%xmm3 + vpshufb %xmm9,%xmm0,%xmm0 + addq $64,%r10 + addl 16(%rsp),%ebx + xorl %ebp,%esi + vpshufb %xmm9,%xmm1,%xmm1 + movl %ecx,%edi + shldl $5,%ecx,%ecx + vpaddd %xmm10,%xmm0,%xmm8 + addl %esi,%ebx + xorl %ebp,%edi + shrdl $7,%edx,%edx + addl %ecx,%ebx + vmovdqa %xmm8,0(%rsp) + addl 20(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + shldl $5,%ebx,%ebx + addl %edi,%eax + xorl %edx,%esi + shrdl $7,%ecx,%ecx + addl %ebx,%eax + addl 24(%rsp),%ebp + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 16(%r15),%xmm15 + xorl %ecx,%esi + movl %eax,%edi + shldl $5,%eax,%eax + addl %esi,%ebp + xorl %ecx,%edi + shrdl $7,%ebx,%ebx + addl %eax,%ebp + addl 28(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + shldl $5,%ebp,%ebp + addl %edi,%edx + xorl %ebx,%esi + shrdl $7,%eax,%eax + addl %ebp,%edx + addl 32(%rsp),%ecx + xorl %eax,%esi + vpshufb %xmm9,%xmm2,%xmm2 + movl %edx,%edi + shldl $5,%edx,%edx + vpaddd %xmm10,%xmm1,%xmm8 + addl %esi,%ecx + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 32(%r15),%xmm14 + xorl %eax,%edi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + vmovdqa %xmm8,16(%rsp) + addl 36(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + shldl $5,%ecx,%ecx + addl %edi,%ebx + xorl %ebp,%esi + shrdl $7,%edx,%edx + addl %ecx,%ebx + addl 40(%rsp),%eax + xorl %edx,%esi + movl %ebx,%edi + shldl $5,%ebx,%ebx + addl %esi,%eax + xorl %edx,%edi + shrdl $7,%ecx,%ecx + addl %ebx,%eax + addl 44(%rsp),%ebp + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 48(%r15),%xmm15 + xorl %ecx,%edi + movl %eax,%esi + shldl $5,%eax,%eax + addl %edi,%ebp + xorl %ecx,%esi + shrdl $7,%ebx,%ebx + addl %eax,%ebp + addl 48(%rsp),%edx + xorl %ebx,%esi + vpshufb %xmm9,%xmm3,%xmm3 + movl %ebp,%edi + shldl $5,%ebp,%ebp + vpaddd %xmm10,%xmm2,%xmm8 + addl %esi,%edx + xorl %ebx,%edi + shrdl $7,%eax,%eax + addl %ebp,%edx + vmovdqa %xmm8,32(%rsp) + addl 52(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + shldl $5,%edx,%edx + addl %edi,%ecx + cmpl $11,%r8d + jb .Lvaesenclast9 + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 64(%r15),%xmm14 + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 80(%r15),%xmm15 + je .Lvaesenclast9 + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 96(%r15),%xmm14 + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 112(%r15),%xmm15 +.Lvaesenclast9: + vaesenclast %xmm15,%xmm12,%xmm12 + vmovups -112(%r15),%xmm15 + vmovups 16-112(%r15),%xmm14 + xorl %eax,%esi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + addl 56(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi + shldl $5,%ecx,%ecx + addl %esi,%ebx + xorl %ebp,%edi + shrdl $7,%edx,%edx + addl %ecx,%ebx + addl 60(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + shldl $5,%ebx,%ebx + addl %edi,%eax + shrdl $7,%ecx,%ecx + addl %ebx,%eax + vmovups %xmm12,48(%r13,%r12,1) + leaq 64(%r12),%r12 + + addl 0(%r9),%eax + addl 4(%r9),%esi + addl 8(%r9),%ecx + addl 12(%r9),%edx + movl %eax,0(%r9) + addl 16(%r9),%ebp + movl %esi,4(%r9) + movl %esi,%ebx + movl %ecx,8(%r9) + movl %ecx,%edi + movl %edx,12(%r9) + xorl %edx,%edi + movl %ebp,16(%r9) + andl %edi,%esi + jmp .Loop_avx + +.Ldone_avx: + addl 16(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi + shldl $5,%ecx,%ecx + addl %esi,%ebx + xorl %ebp,%edi + shrdl $7,%edx,%edx + addl %ecx,%ebx + addl 20(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + shldl $5,%ebx,%ebx + addl %edi,%eax + xorl %edx,%esi + shrdl $7,%ecx,%ecx + addl %ebx,%eax + addl 24(%rsp),%ebp + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 16(%r15),%xmm15 + xorl %ecx,%esi + movl %eax,%edi + shldl $5,%eax,%eax + addl %esi,%ebp + xorl %ecx,%edi + shrdl $7,%ebx,%ebx + addl %eax,%ebp + addl 28(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + shldl $5,%ebp,%ebp + addl %edi,%edx + xorl %ebx,%esi + shrdl $7,%eax,%eax + addl %ebp,%edx + addl 32(%rsp),%ecx + xorl %eax,%esi + movl %edx,%edi + shldl $5,%edx,%edx + addl %esi,%ecx + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 32(%r15),%xmm14 + xorl %eax,%edi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + addl 36(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + shldl $5,%ecx,%ecx + addl %edi,%ebx + xorl %ebp,%esi + shrdl $7,%edx,%edx + addl %ecx,%ebx + addl 40(%rsp),%eax + xorl %edx,%esi + movl %ebx,%edi + shldl $5,%ebx,%ebx + addl %esi,%eax + xorl %edx,%edi + shrdl $7,%ecx,%ecx + addl %ebx,%eax + addl 44(%rsp),%ebp + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 48(%r15),%xmm15 + xorl %ecx,%edi + movl %eax,%esi + shldl $5,%eax,%eax + addl %edi,%ebp + xorl %ecx,%esi + shrdl $7,%ebx,%ebx + addl %eax,%ebp + addl 48(%rsp),%edx + xorl %ebx,%esi + movl %ebp,%edi + shldl $5,%ebp,%ebp + addl %esi,%edx + xorl %ebx,%edi + shrdl $7,%eax,%eax + addl %ebp,%edx + addl 52(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + shldl $5,%edx,%edx + addl %edi,%ecx + cmpl $11,%r8d + jb .Lvaesenclast10 + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 64(%r15),%xmm14 + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 80(%r15),%xmm15 + je .Lvaesenclast10 + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 96(%r15),%xmm14 + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 112(%r15),%xmm15 +.Lvaesenclast10: + vaesenclast %xmm15,%xmm12,%xmm12 + vmovups -112(%r15),%xmm15 + vmovups 16-112(%r15),%xmm14 + xorl %eax,%esi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + addl 56(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi + shldl $5,%ecx,%ecx + addl %esi,%ebx + xorl %ebp,%edi + shrdl $7,%edx,%edx + addl %ecx,%ebx + addl 60(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + shldl $5,%ebx,%ebx + addl %edi,%eax + shrdl $7,%ecx,%ecx + addl %ebx,%eax + vmovups %xmm12,48(%r13,%r12,1) + movq 88(%rsp),%r8 + + addl 0(%r9),%eax + addl 4(%r9),%esi + addl 8(%r9),%ecx + movl %eax,0(%r9) + addl 12(%r9),%edx + movl %esi,4(%r9) + addl 16(%r9),%ebp + movl %ecx,8(%r9) + movl %edx,12(%r9) + movl %ebp,16(%r9) + vmovups %xmm12,(%r8) + vzeroall + leaq 104(%rsp),%rsi +.cfi_def_cfa %rsi,56 + movq 0(%rsi),%r15 +.cfi_restore %r15 + movq 8(%rsi),%r14 +.cfi_restore %r14 + movq 16(%rsi),%r13 +.cfi_restore %r13 + movq 24(%rsi),%r12 +.cfi_restore %r12 + movq 32(%rsi),%rbp +.cfi_restore %rbp + movq 40(%rsi),%rbx +.cfi_restore %rbx + leaq 48(%rsi),%rsp +.cfi_def_cfa %rsp,8 +.Lepilogue_avx: + .byte 0xf3,0xc3 +.cfi_endproc +.size aesni_cbc_sha1_enc_avx,.-aesni_cbc_sha1_enc_avx +.align 64 +K_XX_XX: +.long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 +.long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1 +.long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc +.long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6 +.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f +.byte 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0 + +.byte 65,69,83,78,73,45,67,66,67,43,83,72,65,49,32,115,116,105,116,99,104,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 64 +.type aesni_cbc_sha1_enc_shaext,@function +.align 32 +aesni_cbc_sha1_enc_shaext: +.cfi_startproc + movq 8(%rsp),%r10 + movdqu (%r9),%xmm8 + movd 16(%r9),%xmm9 + movdqa K_XX_XX+80(%rip),%xmm7 + + movl 240(%rcx),%r11d + subq %rdi,%rsi + movups (%rcx),%xmm15 + movups (%r8),%xmm2 + movups 16(%rcx),%xmm0 + leaq 112(%rcx),%rcx + + pshufd $27,%xmm8,%xmm8 + pshufd $27,%xmm9,%xmm9 + jmp .Loop_shaext + +.align 16 +.Loop_shaext: + movups 0(%rdi),%xmm14 + xorps %xmm15,%xmm14 + xorps %xmm14,%xmm2 + movups -80(%rcx),%xmm1 +.byte 102,15,56,220,208 + movdqu (%r10),%xmm3 + movdqa %xmm9,%xmm12 +.byte 102,15,56,0,223 + movdqu 16(%r10),%xmm4 + movdqa %xmm8,%xmm11 + movups -64(%rcx),%xmm0 +.byte 102,15,56,220,209 +.byte 102,15,56,0,231 + + paddd %xmm3,%xmm9 + movdqu 32(%r10),%xmm5 + leaq 64(%r10),%r10 + pxor %xmm12,%xmm3 + movups -48(%rcx),%xmm1 +.byte 102,15,56,220,208 + pxor %xmm12,%xmm3 + movdqa %xmm8,%xmm10 +.byte 102,15,56,0,239 +.byte 69,15,58,204,193,0 +.byte 68,15,56,200,212 + movups -32(%rcx),%xmm0 +.byte 102,15,56,220,209 +.byte 15,56,201,220 + movdqu -16(%r10),%xmm6 + movdqa %xmm8,%xmm9 +.byte 102,15,56,0,247 + movups -16(%rcx),%xmm1 +.byte 102,15,56,220,208 +.byte 69,15,58,204,194,0 +.byte 68,15,56,200,205 + pxor %xmm5,%xmm3 +.byte 15,56,201,229 + movups 0(%rcx),%xmm0 +.byte 102,15,56,220,209 + movdqa %xmm8,%xmm10 +.byte 69,15,58,204,193,0 +.byte 68,15,56,200,214 + movups 16(%rcx),%xmm1 +.byte 102,15,56,220,208 +.byte 15,56,202,222 + pxor %xmm6,%xmm4 +.byte 15,56,201,238 + movups 32(%rcx),%xmm0 +.byte 102,15,56,220,209 + movdqa %xmm8,%xmm9 +.byte 69,15,58,204,194,0 +.byte 68,15,56,200,203 + movups 48(%rcx),%xmm1 +.byte 102,15,56,220,208 +.byte 15,56,202,227 + pxor %xmm3,%xmm5 +.byte 15,56,201,243 + cmpl $11,%r11d + jb .Laesenclast11 + movups 64(%rcx),%xmm0 +.byte 102,15,56,220,209 + movups 80(%rcx),%xmm1 +.byte 102,15,56,220,208 + je .Laesenclast11 + movups 96(%rcx),%xmm0 +.byte 102,15,56,220,209 + movups 112(%rcx),%xmm1 +.byte 102,15,56,220,208 +.Laesenclast11: +.byte 102,15,56,221,209 + movups 16-112(%rcx),%xmm0 + movdqa %xmm8,%xmm10 +.byte 69,15,58,204,193,0 +.byte 68,15,56,200,212 + movups 16(%rdi),%xmm14 + xorps %xmm15,%xmm14 + movups %xmm2,0(%rsi,%rdi,1) + xorps %xmm14,%xmm2 + movups -80(%rcx),%xmm1 +.byte 102,15,56,220,208 +.byte 15,56,202,236 + pxor %xmm4,%xmm6 +.byte 15,56,201,220 + movups -64(%rcx),%xmm0 +.byte 102,15,56,220,209 + movdqa %xmm8,%xmm9 +.byte 69,15,58,204,194,1 +.byte 68,15,56,200,205 + movups -48(%rcx),%xmm1 +.byte 102,15,56,220,208 +.byte 15,56,202,245 + pxor %xmm5,%xmm3 +.byte 15,56,201,229 + movups -32(%rcx),%xmm0 +.byte 102,15,56,220,209 + movdqa %xmm8,%xmm10 +.byte 69,15,58,204,193,1 +.byte 68,15,56,200,214 + movups -16(%rcx),%xmm1 +.byte 102,15,56,220,208 +.byte 15,56,202,222 + pxor %xmm6,%xmm4 +.byte 15,56,201,238 + movups 0(%rcx),%xmm0 +.byte 102,15,56,220,209 + movdqa %xmm8,%xmm9 +.byte 69,15,58,204,194,1 +.byte 68,15,56,200,203 + movups 16(%rcx),%xmm1 +.byte 102,15,56,220,208 +.byte 15,56,202,227 + pxor %xmm3,%xmm5 +.byte 15,56,201,243 + movups 32(%rcx),%xmm0 +.byte 102,15,56,220,209 + movdqa %xmm8,%xmm10 +.byte 69,15,58,204,193,1 +.byte 68,15,56,200,212 + movups 48(%rcx),%xmm1 +.byte 102,15,56,220,208 +.byte 15,56,202,236 + pxor %xmm4,%xmm6 +.byte 15,56,201,220 + cmpl $11,%r11d + jb .Laesenclast12 + movups 64(%rcx),%xmm0 +.byte 102,15,56,220,209 + movups 80(%rcx),%xmm1 +.byte 102,15,56,220,208 + je .Laesenclast12 + movups 96(%rcx),%xmm0 +.byte 102,15,56,220,209 + movups 112(%rcx),%xmm1 +.byte 102,15,56,220,208 +.Laesenclast12: +.byte 102,15,56,221,209 + movups 16-112(%rcx),%xmm0 + movdqa %xmm8,%xmm9 +.byte 69,15,58,204,194,1 +.byte 68,15,56,200,205 + movups 32(%rdi),%xmm14 + xorps %xmm15,%xmm14 + movups %xmm2,16(%rsi,%rdi,1) + xorps %xmm14,%xmm2 + movups -80(%rcx),%xmm1 +.byte 102,15,56,220,208 +.byte 15,56,202,245 + pxor %xmm5,%xmm3 +.byte 15,56,201,229 + movups -64(%rcx),%xmm0 +.byte 102,15,56,220,209 + movdqa %xmm8,%xmm10 +.byte 69,15,58,204,193,2 +.byte 68,15,56,200,214 + movups -48(%rcx),%xmm1 +.byte 102,15,56,220,208 +.byte 15,56,202,222 + pxor %xmm6,%xmm4 +.byte 15,56,201,238 + movups -32(%rcx),%xmm0 +.byte 102,15,56,220,209 + movdqa %xmm8,%xmm9 +.byte 69,15,58,204,194,2 +.byte 68,15,56,200,203 + movups -16(%rcx),%xmm1 +.byte 102,15,56,220,208 +.byte 15,56,202,227 + pxor %xmm3,%xmm5 +.byte 15,56,201,243 + movups 0(%rcx),%xmm0 +.byte 102,15,56,220,209 + movdqa %xmm8,%xmm10 +.byte 69,15,58,204,193,2 +.byte 68,15,56,200,212 + movups 16(%rcx),%xmm1 +.byte 102,15,56,220,208 +.byte 15,56,202,236 + pxor %xmm4,%xmm6 +.byte 15,56,201,220 + movups 32(%rcx),%xmm0 +.byte 102,15,56,220,209 + movdqa %xmm8,%xmm9 +.byte 69,15,58,204,194,2 +.byte 68,15,56,200,205 + movups 48(%rcx),%xmm1 +.byte 102,15,56,220,208 +.byte 15,56,202,245 + pxor %xmm5,%xmm3 +.byte 15,56,201,229 + cmpl $11,%r11d + jb .Laesenclast13 + movups 64(%rcx),%xmm0 +.byte 102,15,56,220,209 + movups 80(%rcx),%xmm1 +.byte 102,15,56,220,208 + je .Laesenclast13 + movups 96(%rcx),%xmm0 +.byte 102,15,56,220,209 + movups 112(%rcx),%xmm1 +.byte 102,15,56,220,208 +.Laesenclast13: +.byte 102,15,56,221,209 + movups 16-112(%rcx),%xmm0 + movdqa %xmm8,%xmm10 +.byte 69,15,58,204,193,2 +.byte 68,15,56,200,214 + movups 48(%rdi),%xmm14 + xorps %xmm15,%xmm14 + movups %xmm2,32(%rsi,%rdi,1) + xorps %xmm14,%xmm2 + movups -80(%rcx),%xmm1 +.byte 102,15,56,220,208 +.byte 15,56,202,222 + pxor %xmm6,%xmm4 +.byte 15,56,201,238 + movups -64(%rcx),%xmm0 +.byte 102,15,56,220,209 + movdqa %xmm8,%xmm9 +.byte 69,15,58,204,194,3 +.byte 68,15,56,200,203 + movups -48(%rcx),%xmm1 +.byte 102,15,56,220,208 +.byte 15,56,202,227 + pxor %xmm3,%xmm5 +.byte 15,56,201,243 + movups -32(%rcx),%xmm0 +.byte 102,15,56,220,209 + movdqa %xmm8,%xmm10 +.byte 69,15,58,204,193,3 +.byte 68,15,56,200,212 +.byte 15,56,202,236 + pxor %xmm4,%xmm6 + movups -16(%rcx),%xmm1 +.byte 102,15,56,220,208 + movdqa %xmm8,%xmm9 +.byte 69,15,58,204,194,3 +.byte 68,15,56,200,205 +.byte 15,56,202,245 + movups 0(%rcx),%xmm0 +.byte 102,15,56,220,209 + movdqa %xmm12,%xmm5 + movdqa %xmm8,%xmm10 +.byte 69,15,58,204,193,3 +.byte 68,15,56,200,214 + movups 16(%rcx),%xmm1 +.byte 102,15,56,220,208 + movdqa %xmm8,%xmm9 +.byte 69,15,58,204,194,3 +.byte 68,15,56,200,205 + movups 32(%rcx),%xmm0 +.byte 102,15,56,220,209 + movups 48(%rcx),%xmm1 +.byte 102,15,56,220,208 + cmpl $11,%r11d + jb .Laesenclast14 + movups 64(%rcx),%xmm0 +.byte 102,15,56,220,209 + movups 80(%rcx),%xmm1 +.byte 102,15,56,220,208 + je .Laesenclast14 + movups 96(%rcx),%xmm0 +.byte 102,15,56,220,209 + movups 112(%rcx),%xmm1 +.byte 102,15,56,220,208 +.Laesenclast14: +.byte 102,15,56,221,209 + movups 16-112(%rcx),%xmm0 + decq %rdx + + paddd %xmm11,%xmm8 + movups %xmm2,48(%rsi,%rdi,1) + leaq 64(%rdi),%rdi + jnz .Loop_shaext + + pshufd $27,%xmm8,%xmm8 + pshufd $27,%xmm9,%xmm9 + movups %xmm2,(%r8) + movdqu %xmm8,(%r9) + movd %xmm9,16(%r9) + .byte 0xf3,0xc3 +.cfi_endproc +.size aesni_cbc_sha1_enc_shaext,.-aesni_cbc_sha1_enc_shaext diff --git a/vere/ext/openssl/gen/linux-x86_64/crypto/aes/aesni-sha256-x86_64.s b/vere/ext/openssl/gen/linux-x86_64/crypto/aes/aesni-sha256-x86_64.s new file mode 100644 index 0000000..3e56a82 --- /dev/null +++ b/vere/ext/openssl/gen/linux-x86_64/crypto/aes/aesni-sha256-x86_64.s @@ -0,0 +1,4435 @@ +.text + + +.globl aesni_cbc_sha256_enc +.type aesni_cbc_sha256_enc,@function +.align 16 +aesni_cbc_sha256_enc: +.cfi_startproc + leaq OPENSSL_ia32cap_P(%rip),%r11 + movl $1,%eax + cmpq $0,%rdi + je .Lprobe + movl 0(%r11),%eax + movq 4(%r11),%r10 + btq $61,%r10 + jc aesni_cbc_sha256_enc_shaext + movq %r10,%r11 + shrq $32,%r11 + + testl $2048,%r10d + jnz aesni_cbc_sha256_enc_xop + andl $296,%r11d + cmpl $296,%r11d + je aesni_cbc_sha256_enc_avx2 + andl $268435456,%r10d + jnz aesni_cbc_sha256_enc_avx + ud2 + xorl %eax,%eax + cmpq $0,%rdi + je .Lprobe + ud2 +.Lprobe: + .byte 0xf3,0xc3 +.cfi_endproc +.size aesni_cbc_sha256_enc,.-aesni_cbc_sha256_enc + +.align 64 +.type K256,@object +K256: +.long 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5 +.long 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5 +.long 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5 +.long 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5 +.long 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3 +.long 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3 +.long 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174 +.long 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174 +.long 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc +.long 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc +.long 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da +.long 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da +.long 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7 +.long 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7 +.long 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967 +.long 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967 +.long 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13 +.long 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13 +.long 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85 +.long 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85 +.long 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3 +.long 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3 +.long 0xd192e819,0xd6990624,0xf40e3585,0x106aa070 +.long 0xd192e819,0xd6990624,0xf40e3585,0x106aa070 +.long 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5 +.long 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5 +.long 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3 +.long 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3 +.long 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208 +.long 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208 +.long 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 +.long 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 + +.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f +.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f +.long 0,0,0,0, 0,0,0,0, -1,-1,-1,-1 +.long 0,0,0,0, 0,0,0,0 +.byte 65,69,83,78,73,45,67,66,67,43,83,72,65,50,53,54,32,115,116,105,116,99,104,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 64 +.type aesni_cbc_sha256_enc_xop,@function +.align 64 +aesni_cbc_sha256_enc_xop: +.cfi_startproc +.Lxop_shortcut: + movq 8(%rsp),%r10 + movq %rsp,%rax +.cfi_def_cfa_register %rax + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_offset %r15,-56 + subq $128,%rsp + andq $-64,%rsp + + shlq $6,%rdx + subq %rdi,%rsi + subq %rdi,%r10 + addq %rdi,%rdx + + + movq %rsi,64+8(%rsp) + movq %rdx,64+16(%rsp) + + movq %r8,64+32(%rsp) + movq %r9,64+40(%rsp) + movq %r10,64+48(%rsp) + movq %rax,120(%rsp) +.cfi_escape 0x0f,0x06,0x77,0xf8,0x00,0x06,0x23,0x08 +.Lprologue_xop: + vzeroall + + movq %rdi,%r12 + leaq 128(%rcx),%rdi + leaq K256+544(%rip),%r13 + movl 240-128(%rdi),%r14d + movq %r9,%r15 + movq %r10,%rsi + vmovdqu (%r8),%xmm8 + subq $9,%r14 + + movl 0(%r15),%eax + movl 4(%r15),%ebx + movl 8(%r15),%ecx + movl 12(%r15),%edx + movl 16(%r15),%r8d + movl 20(%r15),%r9d + movl 24(%r15),%r10d + movl 28(%r15),%r11d + + vmovdqa 0(%r13,%r14,8),%xmm14 + vmovdqa 16(%r13,%r14,8),%xmm13 + vmovdqa 32(%r13,%r14,8),%xmm12 + vmovdqu 0-128(%rdi),%xmm10 + jmp .Lloop_xop +.align 16 +.Lloop_xop: + vmovdqa K256+512(%rip),%xmm7 + vmovdqu 0(%rsi,%r12,1),%xmm0 + vmovdqu 16(%rsi,%r12,1),%xmm1 + vmovdqu 32(%rsi,%r12,1),%xmm2 + vmovdqu 48(%rsi,%r12,1),%xmm3 + vpshufb %xmm7,%xmm0,%xmm0 + leaq K256(%rip),%rbp + vpshufb %xmm7,%xmm1,%xmm1 + vpshufb %xmm7,%xmm2,%xmm2 + vpaddd 0(%rbp),%xmm0,%xmm4 + vpshufb %xmm7,%xmm3,%xmm3 + vpaddd 32(%rbp),%xmm1,%xmm5 + vpaddd 64(%rbp),%xmm2,%xmm6 + vpaddd 96(%rbp),%xmm3,%xmm7 + vmovdqa %xmm4,0(%rsp) + movl %eax,%r14d + vmovdqa %xmm5,16(%rsp) + movl %ebx,%esi + vmovdqa %xmm6,32(%rsp) + xorl %ecx,%esi + vmovdqa %xmm7,48(%rsp) + movl %r8d,%r13d + jmp .Lxop_00_47 + +.align 16 +.Lxop_00_47: + subq $-32*4,%rbp + vmovdqu (%r12),%xmm9 + movq %r12,64+0(%rsp) + vpalignr $4,%xmm0,%xmm1,%xmm4 + rorl $14,%r13d + movl %r14d,%eax + vpalignr $4,%xmm2,%xmm3,%xmm7 + movl %r9d,%r12d + xorl %r8d,%r13d +.byte 143,232,120,194,236,14 + rorl $9,%r14d + xorl %r10d,%r12d + vpsrld $3,%xmm4,%xmm4 + rorl $5,%r13d + xorl %eax,%r14d + vpaddd %xmm7,%xmm0,%xmm0 + andl %r8d,%r12d + vpxor %xmm10,%xmm9,%xmm9 + vmovdqu 16-128(%rdi),%xmm10 + xorl %r8d,%r13d + addl 0(%rsp),%r11d + movl %eax,%r15d +.byte 143,232,120,194,245,11 + rorl $11,%r14d + xorl %r10d,%r12d + vpxor %xmm5,%xmm4,%xmm4 + xorl %ebx,%r15d + rorl $6,%r13d + addl %r12d,%r11d + andl %r15d,%esi +.byte 143,232,120,194,251,13 + xorl %eax,%r14d + addl %r13d,%r11d + vpxor %xmm6,%xmm4,%xmm4 + xorl %ebx,%esi + addl %r11d,%edx + vpsrld $10,%xmm3,%xmm6 + rorl $2,%r14d + addl %esi,%r11d + vpaddd %xmm4,%xmm0,%xmm0 + movl %edx,%r13d + addl %r11d,%r14d +.byte 143,232,120,194,239,2 + rorl $14,%r13d + movl %r14d,%r11d + vpxor %xmm6,%xmm7,%xmm7 + movl %r8d,%r12d + xorl %edx,%r13d + rorl $9,%r14d + xorl %r9d,%r12d + vpxor %xmm5,%xmm7,%xmm7 + rorl $5,%r13d + xorl %r11d,%r14d + andl %edx,%r12d + vpxor %xmm8,%xmm9,%xmm9 + xorl %edx,%r13d + vpsrldq $8,%xmm7,%xmm7 + addl 4(%rsp),%r10d + movl %r11d,%esi + rorl $11,%r14d + xorl %r9d,%r12d + vpaddd %xmm7,%xmm0,%xmm0 + xorl %eax,%esi + rorl $6,%r13d + addl %r12d,%r10d + andl %esi,%r15d +.byte 143,232,120,194,248,13 + xorl %r11d,%r14d + addl %r13d,%r10d + vpsrld $10,%xmm0,%xmm6 + xorl %eax,%r15d + addl %r10d,%ecx +.byte 143,232,120,194,239,2 + rorl $2,%r14d + addl %r15d,%r10d + vpxor %xmm6,%xmm7,%xmm7 + movl %ecx,%r13d + addl %r10d,%r14d + rorl $14,%r13d + movl %r14d,%r10d + vpxor %xmm5,%xmm7,%xmm7 + movl %edx,%r12d + xorl %ecx,%r13d + rorl $9,%r14d + xorl %r8d,%r12d + vpslldq $8,%xmm7,%xmm7 + rorl $5,%r13d + xorl %r10d,%r14d + andl %ecx,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 32-128(%rdi),%xmm10 + xorl %ecx,%r13d + vpaddd %xmm7,%xmm0,%xmm0 + addl 8(%rsp),%r9d + movl %r10d,%r15d + rorl $11,%r14d + xorl %r8d,%r12d + vpaddd 0(%rbp),%xmm0,%xmm6 + xorl %r11d,%r15d + rorl $6,%r13d + addl %r12d,%r9d + andl %r15d,%esi + xorl %r10d,%r14d + addl %r13d,%r9d + xorl %r11d,%esi + addl %r9d,%ebx + rorl $2,%r14d + addl %esi,%r9d + movl %ebx,%r13d + addl %r9d,%r14d + rorl $14,%r13d + movl %r14d,%r9d + movl %ecx,%r12d + xorl %ebx,%r13d + rorl $9,%r14d + xorl %edx,%r12d + rorl $5,%r13d + xorl %r9d,%r14d + andl %ebx,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 48-128(%rdi),%xmm10 + xorl %ebx,%r13d + addl 12(%rsp),%r8d + movl %r9d,%esi + rorl $11,%r14d + xorl %edx,%r12d + xorl %r10d,%esi + rorl $6,%r13d + addl %r12d,%r8d + andl %esi,%r15d + xorl %r9d,%r14d + addl %r13d,%r8d + xorl %r10d,%r15d + addl %r8d,%eax + rorl $2,%r14d + addl %r15d,%r8d + movl %eax,%r13d + addl %r8d,%r14d + vmovdqa %xmm6,0(%rsp) + vpalignr $4,%xmm1,%xmm2,%xmm4 + rorl $14,%r13d + movl %r14d,%r8d + vpalignr $4,%xmm3,%xmm0,%xmm7 + movl %ebx,%r12d + xorl %eax,%r13d +.byte 143,232,120,194,236,14 + rorl $9,%r14d + xorl %ecx,%r12d + vpsrld $3,%xmm4,%xmm4 + rorl $5,%r13d + xorl %r8d,%r14d + vpaddd %xmm7,%xmm1,%xmm1 + andl %eax,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 64-128(%rdi),%xmm10 + xorl %eax,%r13d + addl 16(%rsp),%edx + movl %r8d,%r15d +.byte 143,232,120,194,245,11 + rorl $11,%r14d + xorl %ecx,%r12d + vpxor %xmm5,%xmm4,%xmm4 + xorl %r9d,%r15d + rorl $6,%r13d + addl %r12d,%edx + andl %r15d,%esi +.byte 143,232,120,194,248,13 + xorl %r8d,%r14d + addl %r13d,%edx + vpxor %xmm6,%xmm4,%xmm4 + xorl %r9d,%esi + addl %edx,%r11d + vpsrld $10,%xmm0,%xmm6 + rorl $2,%r14d + addl %esi,%edx + vpaddd %xmm4,%xmm1,%xmm1 + movl %r11d,%r13d + addl %edx,%r14d +.byte 143,232,120,194,239,2 + rorl $14,%r13d + movl %r14d,%edx + vpxor %xmm6,%xmm7,%xmm7 + movl %eax,%r12d + xorl %r11d,%r13d + rorl $9,%r14d + xorl %ebx,%r12d + vpxor %xmm5,%xmm7,%xmm7 + rorl $5,%r13d + xorl %edx,%r14d + andl %r11d,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 80-128(%rdi),%xmm10 + xorl %r11d,%r13d + vpsrldq $8,%xmm7,%xmm7 + addl 20(%rsp),%ecx + movl %edx,%esi + rorl $11,%r14d + xorl %ebx,%r12d + vpaddd %xmm7,%xmm1,%xmm1 + xorl %r8d,%esi + rorl $6,%r13d + addl %r12d,%ecx + andl %esi,%r15d +.byte 143,232,120,194,249,13 + xorl %edx,%r14d + addl %r13d,%ecx + vpsrld $10,%xmm1,%xmm6 + xorl %r8d,%r15d + addl %ecx,%r10d +.byte 143,232,120,194,239,2 + rorl $2,%r14d + addl %r15d,%ecx + vpxor %xmm6,%xmm7,%xmm7 + movl %r10d,%r13d + addl %ecx,%r14d + rorl $14,%r13d + movl %r14d,%ecx + vpxor %xmm5,%xmm7,%xmm7 + movl %r11d,%r12d + xorl %r10d,%r13d + rorl $9,%r14d + xorl %eax,%r12d + vpslldq $8,%xmm7,%xmm7 + rorl $5,%r13d + xorl %ecx,%r14d + andl %r10d,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 96-128(%rdi),%xmm10 + xorl %r10d,%r13d + vpaddd %xmm7,%xmm1,%xmm1 + addl 24(%rsp),%ebx + movl %ecx,%r15d + rorl $11,%r14d + xorl %eax,%r12d + vpaddd 32(%rbp),%xmm1,%xmm6 + xorl %edx,%r15d + rorl $6,%r13d + addl %r12d,%ebx + andl %r15d,%esi + xorl %ecx,%r14d + addl %r13d,%ebx + xorl %edx,%esi + addl %ebx,%r9d + rorl $2,%r14d + addl %esi,%ebx + movl %r9d,%r13d + addl %ebx,%r14d + rorl $14,%r13d + movl %r14d,%ebx + movl %r10d,%r12d + xorl %r9d,%r13d + rorl $9,%r14d + xorl %r11d,%r12d + rorl $5,%r13d + xorl %ebx,%r14d + andl %r9d,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 112-128(%rdi),%xmm10 + xorl %r9d,%r13d + addl 28(%rsp),%eax + movl %ebx,%esi + rorl $11,%r14d + xorl %r11d,%r12d + xorl %ecx,%esi + rorl $6,%r13d + addl %r12d,%eax + andl %esi,%r15d + xorl %ebx,%r14d + addl %r13d,%eax + xorl %ecx,%r15d + addl %eax,%r8d + rorl $2,%r14d + addl %r15d,%eax + movl %r8d,%r13d + addl %eax,%r14d + vmovdqa %xmm6,16(%rsp) + vpalignr $4,%xmm2,%xmm3,%xmm4 + rorl $14,%r13d + movl %r14d,%eax + vpalignr $4,%xmm0,%xmm1,%xmm7 + movl %r9d,%r12d + xorl %r8d,%r13d +.byte 143,232,120,194,236,14 + rorl $9,%r14d + xorl %r10d,%r12d + vpsrld $3,%xmm4,%xmm4 + rorl $5,%r13d + xorl %eax,%r14d + vpaddd %xmm7,%xmm2,%xmm2 + andl %r8d,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 128-128(%rdi),%xmm10 + xorl %r8d,%r13d + addl 32(%rsp),%r11d + movl %eax,%r15d +.byte 143,232,120,194,245,11 + rorl $11,%r14d + xorl %r10d,%r12d + vpxor %xmm5,%xmm4,%xmm4 + xorl %ebx,%r15d + rorl $6,%r13d + addl %r12d,%r11d + andl %r15d,%esi +.byte 143,232,120,194,249,13 + xorl %eax,%r14d + addl %r13d,%r11d + vpxor %xmm6,%xmm4,%xmm4 + xorl %ebx,%esi + addl %r11d,%edx + vpsrld $10,%xmm1,%xmm6 + rorl $2,%r14d + addl %esi,%r11d + vpaddd %xmm4,%xmm2,%xmm2 + movl %edx,%r13d + addl %r11d,%r14d +.byte 143,232,120,194,239,2 + rorl $14,%r13d + movl %r14d,%r11d + vpxor %xmm6,%xmm7,%xmm7 + movl %r8d,%r12d + xorl %edx,%r13d + rorl $9,%r14d + xorl %r9d,%r12d + vpxor %xmm5,%xmm7,%xmm7 + rorl $5,%r13d + xorl %r11d,%r14d + andl %edx,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 144-128(%rdi),%xmm10 + xorl %edx,%r13d + vpsrldq $8,%xmm7,%xmm7 + addl 36(%rsp),%r10d + movl %r11d,%esi + rorl $11,%r14d + xorl %r9d,%r12d + vpaddd %xmm7,%xmm2,%xmm2 + xorl %eax,%esi + rorl $6,%r13d + addl %r12d,%r10d + andl %esi,%r15d +.byte 143,232,120,194,250,13 + xorl %r11d,%r14d + addl %r13d,%r10d + vpsrld $10,%xmm2,%xmm6 + xorl %eax,%r15d + addl %r10d,%ecx +.byte 143,232,120,194,239,2 + rorl $2,%r14d + addl %r15d,%r10d + vpxor %xmm6,%xmm7,%xmm7 + movl %ecx,%r13d + addl %r10d,%r14d + rorl $14,%r13d + movl %r14d,%r10d + vpxor %xmm5,%xmm7,%xmm7 + movl %edx,%r12d + xorl %ecx,%r13d + rorl $9,%r14d + xorl %r8d,%r12d + vpslldq $8,%xmm7,%xmm7 + rorl $5,%r13d + xorl %r10d,%r14d + andl %ecx,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 160-128(%rdi),%xmm10 + xorl %ecx,%r13d + vpaddd %xmm7,%xmm2,%xmm2 + addl 40(%rsp),%r9d + movl %r10d,%r15d + rorl $11,%r14d + xorl %r8d,%r12d + vpaddd 64(%rbp),%xmm2,%xmm6 + xorl %r11d,%r15d + rorl $6,%r13d + addl %r12d,%r9d + andl %r15d,%esi + xorl %r10d,%r14d + addl %r13d,%r9d + xorl %r11d,%esi + addl %r9d,%ebx + rorl $2,%r14d + addl %esi,%r9d + movl %ebx,%r13d + addl %r9d,%r14d + rorl $14,%r13d + movl %r14d,%r9d + movl %ecx,%r12d + xorl %ebx,%r13d + rorl $9,%r14d + xorl %edx,%r12d + rorl $5,%r13d + xorl %r9d,%r14d + andl %ebx,%r12d + vaesenclast %xmm10,%xmm9,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 176-128(%rdi),%xmm10 + xorl %ebx,%r13d + addl 44(%rsp),%r8d + movl %r9d,%esi + rorl $11,%r14d + xorl %edx,%r12d + xorl %r10d,%esi + rorl $6,%r13d + addl %r12d,%r8d + andl %esi,%r15d + xorl %r9d,%r14d + addl %r13d,%r8d + xorl %r10d,%r15d + addl %r8d,%eax + rorl $2,%r14d + addl %r15d,%r8d + movl %eax,%r13d + addl %r8d,%r14d + vmovdqa %xmm6,32(%rsp) + vpalignr $4,%xmm3,%xmm0,%xmm4 + rorl $14,%r13d + movl %r14d,%r8d + vpalignr $4,%xmm1,%xmm2,%xmm7 + movl %ebx,%r12d + xorl %eax,%r13d +.byte 143,232,120,194,236,14 + rorl $9,%r14d + xorl %ecx,%r12d + vpsrld $3,%xmm4,%xmm4 + rorl $5,%r13d + xorl %r8d,%r14d + vpaddd %xmm7,%xmm3,%xmm3 + andl %eax,%r12d + vpand %xmm12,%xmm11,%xmm8 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 192-128(%rdi),%xmm10 + xorl %eax,%r13d + addl 48(%rsp),%edx + movl %r8d,%r15d +.byte 143,232,120,194,245,11 + rorl $11,%r14d + xorl %ecx,%r12d + vpxor %xmm5,%xmm4,%xmm4 + xorl %r9d,%r15d + rorl $6,%r13d + addl %r12d,%edx + andl %r15d,%esi +.byte 143,232,120,194,250,13 + xorl %r8d,%r14d + addl %r13d,%edx + vpxor %xmm6,%xmm4,%xmm4 + xorl %r9d,%esi + addl %edx,%r11d + vpsrld $10,%xmm2,%xmm6 + rorl $2,%r14d + addl %esi,%edx + vpaddd %xmm4,%xmm3,%xmm3 + movl %r11d,%r13d + addl %edx,%r14d +.byte 143,232,120,194,239,2 + rorl $14,%r13d + movl %r14d,%edx + vpxor %xmm6,%xmm7,%xmm7 + movl %eax,%r12d + xorl %r11d,%r13d + rorl $9,%r14d + xorl %ebx,%r12d + vpxor %xmm5,%xmm7,%xmm7 + rorl $5,%r13d + xorl %edx,%r14d + andl %r11d,%r12d + vaesenclast %xmm10,%xmm9,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 208-128(%rdi),%xmm10 + xorl %r11d,%r13d + vpsrldq $8,%xmm7,%xmm7 + addl 52(%rsp),%ecx + movl %edx,%esi + rorl $11,%r14d + xorl %ebx,%r12d + vpaddd %xmm7,%xmm3,%xmm3 + xorl %r8d,%esi + rorl $6,%r13d + addl %r12d,%ecx + andl %esi,%r15d +.byte 143,232,120,194,251,13 + xorl %edx,%r14d + addl %r13d,%ecx + vpsrld $10,%xmm3,%xmm6 + xorl %r8d,%r15d + addl %ecx,%r10d +.byte 143,232,120,194,239,2 + rorl $2,%r14d + addl %r15d,%ecx + vpxor %xmm6,%xmm7,%xmm7 + movl %r10d,%r13d + addl %ecx,%r14d + rorl $14,%r13d + movl %r14d,%ecx + vpxor %xmm5,%xmm7,%xmm7 + movl %r11d,%r12d + xorl %r10d,%r13d + rorl $9,%r14d + xorl %eax,%r12d + vpslldq $8,%xmm7,%xmm7 + rorl $5,%r13d + xorl %ecx,%r14d + andl %r10d,%r12d + vpand %xmm13,%xmm11,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 224-128(%rdi),%xmm10 + xorl %r10d,%r13d + vpaddd %xmm7,%xmm3,%xmm3 + addl 56(%rsp),%ebx + movl %ecx,%r15d + rorl $11,%r14d + xorl %eax,%r12d + vpaddd 96(%rbp),%xmm3,%xmm6 + xorl %edx,%r15d + rorl $6,%r13d + addl %r12d,%ebx + andl %r15d,%esi + xorl %ecx,%r14d + addl %r13d,%ebx + xorl %edx,%esi + addl %ebx,%r9d + rorl $2,%r14d + addl %esi,%ebx + movl %r9d,%r13d + addl %ebx,%r14d + rorl $14,%r13d + movl %r14d,%ebx + movl %r10d,%r12d + xorl %r9d,%r13d + rorl $9,%r14d + xorl %r11d,%r12d + rorl $5,%r13d + xorl %ebx,%r14d + andl %r9d,%r12d + vpor %xmm11,%xmm8,%xmm8 + vaesenclast %xmm10,%xmm9,%xmm11 + vmovdqu 0-128(%rdi),%xmm10 + xorl %r9d,%r13d + addl 60(%rsp),%eax + movl %ebx,%esi + rorl $11,%r14d + xorl %r11d,%r12d + xorl %ecx,%esi + rorl $6,%r13d + addl %r12d,%eax + andl %esi,%r15d + xorl %ebx,%r14d + addl %r13d,%eax + xorl %ecx,%r15d + addl %eax,%r8d + rorl $2,%r14d + addl %r15d,%eax + movl %r8d,%r13d + addl %eax,%r14d + vmovdqa %xmm6,48(%rsp) + movq 64+0(%rsp),%r12 + vpand %xmm14,%xmm11,%xmm11 + movq 64+8(%rsp),%r15 + vpor %xmm11,%xmm8,%xmm8 + vmovdqu %xmm8,(%r15,%r12,1) + leaq 16(%r12),%r12 + cmpb $0,131(%rbp) + jne .Lxop_00_47 + vmovdqu (%r12),%xmm9 + movq %r12,64+0(%rsp) + rorl $14,%r13d + movl %r14d,%eax + movl %r9d,%r12d + xorl %r8d,%r13d + rorl $9,%r14d + xorl %r10d,%r12d + rorl $5,%r13d + xorl %eax,%r14d + andl %r8d,%r12d + vpxor %xmm10,%xmm9,%xmm9 + vmovdqu 16-128(%rdi),%xmm10 + xorl %r8d,%r13d + addl 0(%rsp),%r11d + movl %eax,%r15d + rorl $11,%r14d + xorl %r10d,%r12d + xorl %ebx,%r15d + rorl $6,%r13d + addl %r12d,%r11d + andl %r15d,%esi + xorl %eax,%r14d + addl %r13d,%r11d + xorl %ebx,%esi + addl %r11d,%edx + rorl $2,%r14d + addl %esi,%r11d + movl %edx,%r13d + addl %r11d,%r14d + rorl $14,%r13d + movl %r14d,%r11d + movl %r8d,%r12d + xorl %edx,%r13d + rorl $9,%r14d + xorl %r9d,%r12d + rorl $5,%r13d + xorl %r11d,%r14d + andl %edx,%r12d + vpxor %xmm8,%xmm9,%xmm9 + xorl %edx,%r13d + addl 4(%rsp),%r10d + movl %r11d,%esi + rorl $11,%r14d + xorl %r9d,%r12d + xorl %eax,%esi + rorl $6,%r13d + addl %r12d,%r10d + andl %esi,%r15d + xorl %r11d,%r14d + addl %r13d,%r10d + xorl %eax,%r15d + addl %r10d,%ecx + rorl $2,%r14d + addl %r15d,%r10d + movl %ecx,%r13d + addl %r10d,%r14d + rorl $14,%r13d + movl %r14d,%r10d + movl %edx,%r12d + xorl %ecx,%r13d + rorl $9,%r14d + xorl %r8d,%r12d + rorl $5,%r13d + xorl %r10d,%r14d + andl %ecx,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 32-128(%rdi),%xmm10 + xorl %ecx,%r13d + addl 8(%rsp),%r9d + movl %r10d,%r15d + rorl $11,%r14d + xorl %r8d,%r12d + xorl %r11d,%r15d + rorl $6,%r13d + addl %r12d,%r9d + andl %r15d,%esi + xorl %r10d,%r14d + addl %r13d,%r9d + xorl %r11d,%esi + addl %r9d,%ebx + rorl $2,%r14d + addl %esi,%r9d + movl %ebx,%r13d + addl %r9d,%r14d + rorl $14,%r13d + movl %r14d,%r9d + movl %ecx,%r12d + xorl %ebx,%r13d + rorl $9,%r14d + xorl %edx,%r12d + rorl $5,%r13d + xorl %r9d,%r14d + andl %ebx,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 48-128(%rdi),%xmm10 + xorl %ebx,%r13d + addl 12(%rsp),%r8d + movl %r9d,%esi + rorl $11,%r14d + xorl %edx,%r12d + xorl %r10d,%esi + rorl $6,%r13d + addl %r12d,%r8d + andl %esi,%r15d + xorl %r9d,%r14d + addl %r13d,%r8d + xorl %r10d,%r15d + addl %r8d,%eax + rorl $2,%r14d + addl %r15d,%r8d + movl %eax,%r13d + addl %r8d,%r14d + rorl $14,%r13d + movl %r14d,%r8d + movl %ebx,%r12d + xorl %eax,%r13d + rorl $9,%r14d + xorl %ecx,%r12d + rorl $5,%r13d + xorl %r8d,%r14d + andl %eax,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 64-128(%rdi),%xmm10 + xorl %eax,%r13d + addl 16(%rsp),%edx + movl %r8d,%r15d + rorl $11,%r14d + xorl %ecx,%r12d + xorl %r9d,%r15d + rorl $6,%r13d + addl %r12d,%edx + andl %r15d,%esi + xorl %r8d,%r14d + addl %r13d,%edx + xorl %r9d,%esi + addl %edx,%r11d + rorl $2,%r14d + addl %esi,%edx + movl %r11d,%r13d + addl %edx,%r14d + rorl $14,%r13d + movl %r14d,%edx + movl %eax,%r12d + xorl %r11d,%r13d + rorl $9,%r14d + xorl %ebx,%r12d + rorl $5,%r13d + xorl %edx,%r14d + andl %r11d,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 80-128(%rdi),%xmm10 + xorl %r11d,%r13d + addl 20(%rsp),%ecx + movl %edx,%esi + rorl $11,%r14d + xorl %ebx,%r12d + xorl %r8d,%esi + rorl $6,%r13d + addl %r12d,%ecx + andl %esi,%r15d + xorl %edx,%r14d + addl %r13d,%ecx + xorl %r8d,%r15d + addl %ecx,%r10d + rorl $2,%r14d + addl %r15d,%ecx + movl %r10d,%r13d + addl %ecx,%r14d + rorl $14,%r13d + movl %r14d,%ecx + movl %r11d,%r12d + xorl %r10d,%r13d + rorl $9,%r14d + xorl %eax,%r12d + rorl $5,%r13d + xorl %ecx,%r14d + andl %r10d,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 96-128(%rdi),%xmm10 + xorl %r10d,%r13d + addl 24(%rsp),%ebx + movl %ecx,%r15d + rorl $11,%r14d + xorl %eax,%r12d + xorl %edx,%r15d + rorl $6,%r13d + addl %r12d,%ebx + andl %r15d,%esi + xorl %ecx,%r14d + addl %r13d,%ebx + xorl %edx,%esi + addl %ebx,%r9d + rorl $2,%r14d + addl %esi,%ebx + movl %r9d,%r13d + addl %ebx,%r14d + rorl $14,%r13d + movl %r14d,%ebx + movl %r10d,%r12d + xorl %r9d,%r13d + rorl $9,%r14d + xorl %r11d,%r12d + rorl $5,%r13d + xorl %ebx,%r14d + andl %r9d,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 112-128(%rdi),%xmm10 + xorl %r9d,%r13d + addl 28(%rsp),%eax + movl %ebx,%esi + rorl $11,%r14d + xorl %r11d,%r12d + xorl %ecx,%esi + rorl $6,%r13d + addl %r12d,%eax + andl %esi,%r15d + xorl %ebx,%r14d + addl %r13d,%eax + xorl %ecx,%r15d + addl %eax,%r8d + rorl $2,%r14d + addl %r15d,%eax + movl %r8d,%r13d + addl %eax,%r14d + rorl $14,%r13d + movl %r14d,%eax + movl %r9d,%r12d + xorl %r8d,%r13d + rorl $9,%r14d + xorl %r10d,%r12d + rorl $5,%r13d + xorl %eax,%r14d + andl %r8d,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 128-128(%rdi),%xmm10 + xorl %r8d,%r13d + addl 32(%rsp),%r11d + movl %eax,%r15d + rorl $11,%r14d + xorl %r10d,%r12d + xorl %ebx,%r15d + rorl $6,%r13d + addl %r12d,%r11d + andl %r15d,%esi + xorl %eax,%r14d + addl %r13d,%r11d + xorl %ebx,%esi + addl %r11d,%edx + rorl $2,%r14d + addl %esi,%r11d + movl %edx,%r13d + addl %r11d,%r14d + rorl $14,%r13d + movl %r14d,%r11d + movl %r8d,%r12d + xorl %edx,%r13d + rorl $9,%r14d + xorl %r9d,%r12d + rorl $5,%r13d + xorl %r11d,%r14d + andl %edx,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 144-128(%rdi),%xmm10 + xorl %edx,%r13d + addl 36(%rsp),%r10d + movl %r11d,%esi + rorl $11,%r14d + xorl %r9d,%r12d + xorl %eax,%esi + rorl $6,%r13d + addl %r12d,%r10d + andl %esi,%r15d + xorl %r11d,%r14d + addl %r13d,%r10d + xorl %eax,%r15d + addl %r10d,%ecx + rorl $2,%r14d + addl %r15d,%r10d + movl %ecx,%r13d + addl %r10d,%r14d + rorl $14,%r13d + movl %r14d,%r10d + movl %edx,%r12d + xorl %ecx,%r13d + rorl $9,%r14d + xorl %r8d,%r12d + rorl $5,%r13d + xorl %r10d,%r14d + andl %ecx,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 160-128(%rdi),%xmm10 + xorl %ecx,%r13d + addl 40(%rsp),%r9d + movl %r10d,%r15d + rorl $11,%r14d + xorl %r8d,%r12d + xorl %r11d,%r15d + rorl $6,%r13d + addl %r12d,%r9d + andl %r15d,%esi + xorl %r10d,%r14d + addl %r13d,%r9d + xorl %r11d,%esi + addl %r9d,%ebx + rorl $2,%r14d + addl %esi,%r9d + movl %ebx,%r13d + addl %r9d,%r14d + rorl $14,%r13d + movl %r14d,%r9d + movl %ecx,%r12d + xorl %ebx,%r13d + rorl $9,%r14d + xorl %edx,%r12d + rorl $5,%r13d + xorl %r9d,%r14d + andl %ebx,%r12d + vaesenclast %xmm10,%xmm9,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 176-128(%rdi),%xmm10 + xorl %ebx,%r13d + addl 44(%rsp),%r8d + movl %r9d,%esi + rorl $11,%r14d + xorl %edx,%r12d + xorl %r10d,%esi + rorl $6,%r13d + addl %r12d,%r8d + andl %esi,%r15d + xorl %r9d,%r14d + addl %r13d,%r8d + xorl %r10d,%r15d + addl %r8d,%eax + rorl $2,%r14d + addl %r15d,%r8d + movl %eax,%r13d + addl %r8d,%r14d + rorl $14,%r13d + movl %r14d,%r8d + movl %ebx,%r12d + xorl %eax,%r13d + rorl $9,%r14d + xorl %ecx,%r12d + rorl $5,%r13d + xorl %r8d,%r14d + andl %eax,%r12d + vpand %xmm12,%xmm11,%xmm8 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 192-128(%rdi),%xmm10 + xorl %eax,%r13d + addl 48(%rsp),%edx + movl %r8d,%r15d + rorl $11,%r14d + xorl %ecx,%r12d + xorl %r9d,%r15d + rorl $6,%r13d + addl %r12d,%edx + andl %r15d,%esi + xorl %r8d,%r14d + addl %r13d,%edx + xorl %r9d,%esi + addl %edx,%r11d + rorl $2,%r14d + addl %esi,%edx + movl %r11d,%r13d + addl %edx,%r14d + rorl $14,%r13d + movl %r14d,%edx + movl %eax,%r12d + xorl %r11d,%r13d + rorl $9,%r14d + xorl %ebx,%r12d + rorl $5,%r13d + xorl %edx,%r14d + andl %r11d,%r12d + vaesenclast %xmm10,%xmm9,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 208-128(%rdi),%xmm10 + xorl %r11d,%r13d + addl 52(%rsp),%ecx + movl %edx,%esi + rorl $11,%r14d + xorl %ebx,%r12d + xorl %r8d,%esi + rorl $6,%r13d + addl %r12d,%ecx + andl %esi,%r15d + xorl %edx,%r14d + addl %r13d,%ecx + xorl %r8d,%r15d + addl %ecx,%r10d + rorl $2,%r14d + addl %r15d,%ecx + movl %r10d,%r13d + addl %ecx,%r14d + rorl $14,%r13d + movl %r14d,%ecx + movl %r11d,%r12d + xorl %r10d,%r13d + rorl $9,%r14d + xorl %eax,%r12d + rorl $5,%r13d + xorl %ecx,%r14d + andl %r10d,%r12d + vpand %xmm13,%xmm11,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 224-128(%rdi),%xmm10 + xorl %r10d,%r13d + addl 56(%rsp),%ebx + movl %ecx,%r15d + rorl $11,%r14d + xorl %eax,%r12d + xorl %edx,%r15d + rorl $6,%r13d + addl %r12d,%ebx + andl %r15d,%esi + xorl %ecx,%r14d + addl %r13d,%ebx + xorl %edx,%esi + addl %ebx,%r9d + rorl $2,%r14d + addl %esi,%ebx + movl %r9d,%r13d + addl %ebx,%r14d + rorl $14,%r13d + movl %r14d,%ebx + movl %r10d,%r12d + xorl %r9d,%r13d + rorl $9,%r14d + xorl %r11d,%r12d + rorl $5,%r13d + xorl %ebx,%r14d + andl %r9d,%r12d + vpor %xmm11,%xmm8,%xmm8 + vaesenclast %xmm10,%xmm9,%xmm11 + vmovdqu 0-128(%rdi),%xmm10 + xorl %r9d,%r13d + addl 60(%rsp),%eax + movl %ebx,%esi + rorl $11,%r14d + xorl %r11d,%r12d + xorl %ecx,%esi + rorl $6,%r13d + addl %r12d,%eax + andl %esi,%r15d + xorl %ebx,%r14d + addl %r13d,%eax + xorl %ecx,%r15d + addl %eax,%r8d + rorl $2,%r14d + addl %r15d,%eax + movl %r8d,%r13d + addl %eax,%r14d + movq 64+0(%rsp),%r12 + movq 64+8(%rsp),%r13 + movq 64+40(%rsp),%r15 + movq 64+48(%rsp),%rsi + + vpand %xmm14,%xmm11,%xmm11 + movl %r14d,%eax + vpor %xmm11,%xmm8,%xmm8 + vmovdqu %xmm8,(%r12,%r13,1) + leaq 16(%r12),%r12 + + addl 0(%r15),%eax + addl 4(%r15),%ebx + addl 8(%r15),%ecx + addl 12(%r15),%edx + addl 16(%r15),%r8d + addl 20(%r15),%r9d + addl 24(%r15),%r10d + addl 28(%r15),%r11d + + cmpq 64+16(%rsp),%r12 + + movl %eax,0(%r15) + movl %ebx,4(%r15) + movl %ecx,8(%r15) + movl %edx,12(%r15) + movl %r8d,16(%r15) + movl %r9d,20(%r15) + movl %r10d,24(%r15) + movl %r11d,28(%r15) + + jb .Lloop_xop + + movq 64+32(%rsp),%r8 + movq 120(%rsp),%rsi +.cfi_def_cfa %rsi,8 + vmovdqu %xmm8,(%r8) + vzeroall + movq -48(%rsi),%r15 +.cfi_restore %r15 + movq -40(%rsi),%r14 +.cfi_restore %r14 + movq -32(%rsi),%r13 +.cfi_restore %r13 + movq -24(%rsi),%r12 +.cfi_restore %r12 + movq -16(%rsi),%rbp +.cfi_restore %rbp + movq -8(%rsi),%rbx +.cfi_restore %rbx + leaq (%rsi),%rsp +.cfi_def_cfa_register %rsp +.Lepilogue_xop: + .byte 0xf3,0xc3 +.cfi_endproc +.size aesni_cbc_sha256_enc_xop,.-aesni_cbc_sha256_enc_xop +.type aesni_cbc_sha256_enc_avx,@function +.align 64 +aesni_cbc_sha256_enc_avx: +.cfi_startproc +.Lavx_shortcut: + movq 8(%rsp),%r10 + movq %rsp,%rax +.cfi_def_cfa_register %rax + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_offset %r15,-56 + subq $128,%rsp + andq $-64,%rsp + + shlq $6,%rdx + subq %rdi,%rsi + subq %rdi,%r10 + addq %rdi,%rdx + + + movq %rsi,64+8(%rsp) + movq %rdx,64+16(%rsp) + + movq %r8,64+32(%rsp) + movq %r9,64+40(%rsp) + movq %r10,64+48(%rsp) + movq %rax,120(%rsp) +.cfi_escape 0x0f,0x06,0x77,0xf8,0x00,0x06,0x23,0x08 +.Lprologue_avx: + vzeroall + + movq %rdi,%r12 + leaq 128(%rcx),%rdi + leaq K256+544(%rip),%r13 + movl 240-128(%rdi),%r14d + movq %r9,%r15 + movq %r10,%rsi + vmovdqu (%r8),%xmm8 + subq $9,%r14 + + movl 0(%r15),%eax + movl 4(%r15),%ebx + movl 8(%r15),%ecx + movl 12(%r15),%edx + movl 16(%r15),%r8d + movl 20(%r15),%r9d + movl 24(%r15),%r10d + movl 28(%r15),%r11d + + vmovdqa 0(%r13,%r14,8),%xmm14 + vmovdqa 16(%r13,%r14,8),%xmm13 + vmovdqa 32(%r13,%r14,8),%xmm12 + vmovdqu 0-128(%rdi),%xmm10 + jmp .Lloop_avx +.align 16 +.Lloop_avx: + vmovdqa K256+512(%rip),%xmm7 + vmovdqu 0(%rsi,%r12,1),%xmm0 + vmovdqu 16(%rsi,%r12,1),%xmm1 + vmovdqu 32(%rsi,%r12,1),%xmm2 + vmovdqu 48(%rsi,%r12,1),%xmm3 + vpshufb %xmm7,%xmm0,%xmm0 + leaq K256(%rip),%rbp + vpshufb %xmm7,%xmm1,%xmm1 + vpshufb %xmm7,%xmm2,%xmm2 + vpaddd 0(%rbp),%xmm0,%xmm4 + vpshufb %xmm7,%xmm3,%xmm3 + vpaddd 32(%rbp),%xmm1,%xmm5 + vpaddd 64(%rbp),%xmm2,%xmm6 + vpaddd 96(%rbp),%xmm3,%xmm7 + vmovdqa %xmm4,0(%rsp) + movl %eax,%r14d + vmovdqa %xmm5,16(%rsp) + movl %ebx,%esi + vmovdqa %xmm6,32(%rsp) + xorl %ecx,%esi + vmovdqa %xmm7,48(%rsp) + movl %r8d,%r13d + jmp .Lavx_00_47 + +.align 16 +.Lavx_00_47: + subq $-32*4,%rbp + vmovdqu (%r12),%xmm9 + movq %r12,64+0(%rsp) + vpalignr $4,%xmm0,%xmm1,%xmm4 + shrdl $14,%r13d,%r13d + movl %r14d,%eax + movl %r9d,%r12d + vpalignr $4,%xmm2,%xmm3,%xmm7 + xorl %r8d,%r13d + shrdl $9,%r14d,%r14d + xorl %r10d,%r12d + vpsrld $7,%xmm4,%xmm6 + shrdl $5,%r13d,%r13d + xorl %eax,%r14d + andl %r8d,%r12d + vpaddd %xmm7,%xmm0,%xmm0 + vpxor %xmm10,%xmm9,%xmm9 + vmovdqu 16-128(%rdi),%xmm10 + xorl %r8d,%r13d + addl 0(%rsp),%r11d + movl %eax,%r15d + vpsrld $3,%xmm4,%xmm7 + shrdl $11,%r14d,%r14d + xorl %r10d,%r12d + xorl %ebx,%r15d + vpslld $14,%xmm4,%xmm5 + shrdl $6,%r13d,%r13d + addl %r12d,%r11d + andl %r15d,%esi + vpxor %xmm6,%xmm7,%xmm4 + xorl %eax,%r14d + addl %r13d,%r11d + xorl %ebx,%esi + vpshufd $250,%xmm3,%xmm7 + addl %r11d,%edx + shrdl $2,%r14d,%r14d + addl %esi,%r11d + vpsrld $11,%xmm6,%xmm6 + movl %edx,%r13d + addl %r11d,%r14d + shrdl $14,%r13d,%r13d + vpxor %xmm5,%xmm4,%xmm4 + movl %r14d,%r11d + movl %r8d,%r12d + xorl %edx,%r13d + vpslld $11,%xmm5,%xmm5 + shrdl $9,%r14d,%r14d + xorl %r9d,%r12d + shrdl $5,%r13d,%r13d + vpxor %xmm6,%xmm4,%xmm4 + xorl %r11d,%r14d + andl %edx,%r12d + vpxor %xmm8,%xmm9,%xmm9 + xorl %edx,%r13d + vpsrld $10,%xmm7,%xmm6 + addl 4(%rsp),%r10d + movl %r11d,%esi + shrdl $11,%r14d,%r14d + vpxor %xmm5,%xmm4,%xmm4 + xorl %r9d,%r12d + xorl %eax,%esi + shrdl $6,%r13d,%r13d + vpsrlq $17,%xmm7,%xmm7 + addl %r12d,%r10d + andl %esi,%r15d + xorl %r11d,%r14d + vpaddd %xmm4,%xmm0,%xmm0 + addl %r13d,%r10d + xorl %eax,%r15d + addl %r10d,%ecx + vpxor %xmm7,%xmm6,%xmm6 + shrdl $2,%r14d,%r14d + addl %r15d,%r10d + movl %ecx,%r13d + vpsrlq $2,%xmm7,%xmm7 + addl %r10d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r10d + vpxor %xmm7,%xmm6,%xmm6 + movl %edx,%r12d + xorl %ecx,%r13d + shrdl $9,%r14d,%r14d + vpshufd $132,%xmm6,%xmm6 + xorl %r8d,%r12d + shrdl $5,%r13d,%r13d + xorl %r10d,%r14d + vpsrldq $8,%xmm6,%xmm6 + andl %ecx,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 32-128(%rdi),%xmm10 + xorl %ecx,%r13d + addl 8(%rsp),%r9d + vpaddd %xmm6,%xmm0,%xmm0 + movl %r10d,%r15d + shrdl $11,%r14d,%r14d + xorl %r8d,%r12d + vpshufd $80,%xmm0,%xmm7 + xorl %r11d,%r15d + shrdl $6,%r13d,%r13d + addl %r12d,%r9d + vpsrld $10,%xmm7,%xmm6 + andl %r15d,%esi + xorl %r10d,%r14d + addl %r13d,%r9d + vpsrlq $17,%xmm7,%xmm7 + xorl %r11d,%esi + addl %r9d,%ebx + shrdl $2,%r14d,%r14d + vpxor %xmm7,%xmm6,%xmm6 + addl %esi,%r9d + movl %ebx,%r13d + addl %r9d,%r14d + vpsrlq $2,%xmm7,%xmm7 + shrdl $14,%r13d,%r13d + movl %r14d,%r9d + movl %ecx,%r12d + vpxor %xmm7,%xmm6,%xmm6 + xorl %ebx,%r13d + shrdl $9,%r14d,%r14d + xorl %edx,%r12d + vpshufd $232,%xmm6,%xmm6 + shrdl $5,%r13d,%r13d + xorl %r9d,%r14d + andl %ebx,%r12d + vpslldq $8,%xmm6,%xmm6 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 48-128(%rdi),%xmm10 + xorl %ebx,%r13d + addl 12(%rsp),%r8d + movl %r9d,%esi + vpaddd %xmm6,%xmm0,%xmm0 + shrdl $11,%r14d,%r14d + xorl %edx,%r12d + xorl %r10d,%esi + vpaddd 0(%rbp),%xmm0,%xmm6 + shrdl $6,%r13d,%r13d + addl %r12d,%r8d + andl %esi,%r15d + xorl %r9d,%r14d + addl %r13d,%r8d + xorl %r10d,%r15d + addl %r8d,%eax + shrdl $2,%r14d,%r14d + addl %r15d,%r8d + movl %eax,%r13d + addl %r8d,%r14d + vmovdqa %xmm6,0(%rsp) + vpalignr $4,%xmm1,%xmm2,%xmm4 + shrdl $14,%r13d,%r13d + movl %r14d,%r8d + movl %ebx,%r12d + vpalignr $4,%xmm3,%xmm0,%xmm7 + xorl %eax,%r13d + shrdl $9,%r14d,%r14d + xorl %ecx,%r12d + vpsrld $7,%xmm4,%xmm6 + shrdl $5,%r13d,%r13d + xorl %r8d,%r14d + andl %eax,%r12d + vpaddd %xmm7,%xmm1,%xmm1 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 64-128(%rdi),%xmm10 + xorl %eax,%r13d + addl 16(%rsp),%edx + movl %r8d,%r15d + vpsrld $3,%xmm4,%xmm7 + shrdl $11,%r14d,%r14d + xorl %ecx,%r12d + xorl %r9d,%r15d + vpslld $14,%xmm4,%xmm5 + shrdl $6,%r13d,%r13d + addl %r12d,%edx + andl %r15d,%esi + vpxor %xmm6,%xmm7,%xmm4 + xorl %r8d,%r14d + addl %r13d,%edx + xorl %r9d,%esi + vpshufd $250,%xmm0,%xmm7 + addl %edx,%r11d + shrdl $2,%r14d,%r14d + addl %esi,%edx + vpsrld $11,%xmm6,%xmm6 + movl %r11d,%r13d + addl %edx,%r14d + shrdl $14,%r13d,%r13d + vpxor %xmm5,%xmm4,%xmm4 + movl %r14d,%edx + movl %eax,%r12d + xorl %r11d,%r13d + vpslld $11,%xmm5,%xmm5 + shrdl $9,%r14d,%r14d + xorl %ebx,%r12d + shrdl $5,%r13d,%r13d + vpxor %xmm6,%xmm4,%xmm4 + xorl %edx,%r14d + andl %r11d,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 80-128(%rdi),%xmm10 + xorl %r11d,%r13d + vpsrld $10,%xmm7,%xmm6 + addl 20(%rsp),%ecx + movl %edx,%esi + shrdl $11,%r14d,%r14d + vpxor %xmm5,%xmm4,%xmm4 + xorl %ebx,%r12d + xorl %r8d,%esi + shrdl $6,%r13d,%r13d + vpsrlq $17,%xmm7,%xmm7 + addl %r12d,%ecx + andl %esi,%r15d + xorl %edx,%r14d + vpaddd %xmm4,%xmm1,%xmm1 + addl %r13d,%ecx + xorl %r8d,%r15d + addl %ecx,%r10d + vpxor %xmm7,%xmm6,%xmm6 + shrdl $2,%r14d,%r14d + addl %r15d,%ecx + movl %r10d,%r13d + vpsrlq $2,%xmm7,%xmm7 + addl %ecx,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%ecx + vpxor %xmm7,%xmm6,%xmm6 + movl %r11d,%r12d + xorl %r10d,%r13d + shrdl $9,%r14d,%r14d + vpshufd $132,%xmm6,%xmm6 + xorl %eax,%r12d + shrdl $5,%r13d,%r13d + xorl %ecx,%r14d + vpsrldq $8,%xmm6,%xmm6 + andl %r10d,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 96-128(%rdi),%xmm10 + xorl %r10d,%r13d + addl 24(%rsp),%ebx + vpaddd %xmm6,%xmm1,%xmm1 + movl %ecx,%r15d + shrdl $11,%r14d,%r14d + xorl %eax,%r12d + vpshufd $80,%xmm1,%xmm7 + xorl %edx,%r15d + shrdl $6,%r13d,%r13d + addl %r12d,%ebx + vpsrld $10,%xmm7,%xmm6 + andl %r15d,%esi + xorl %ecx,%r14d + addl %r13d,%ebx + vpsrlq $17,%xmm7,%xmm7 + xorl %edx,%esi + addl %ebx,%r9d + shrdl $2,%r14d,%r14d + vpxor %xmm7,%xmm6,%xmm6 + addl %esi,%ebx + movl %r9d,%r13d + addl %ebx,%r14d + vpsrlq $2,%xmm7,%xmm7 + shrdl $14,%r13d,%r13d + movl %r14d,%ebx + movl %r10d,%r12d + vpxor %xmm7,%xmm6,%xmm6 + xorl %r9d,%r13d + shrdl $9,%r14d,%r14d + xorl %r11d,%r12d + vpshufd $232,%xmm6,%xmm6 + shrdl $5,%r13d,%r13d + xorl %ebx,%r14d + andl %r9d,%r12d + vpslldq $8,%xmm6,%xmm6 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 112-128(%rdi),%xmm10 + xorl %r9d,%r13d + addl 28(%rsp),%eax + movl %ebx,%esi + vpaddd %xmm6,%xmm1,%xmm1 + shrdl $11,%r14d,%r14d + xorl %r11d,%r12d + xorl %ecx,%esi + vpaddd 32(%rbp),%xmm1,%xmm6 + shrdl $6,%r13d,%r13d + addl %r12d,%eax + andl %esi,%r15d + xorl %ebx,%r14d + addl %r13d,%eax + xorl %ecx,%r15d + addl %eax,%r8d + shrdl $2,%r14d,%r14d + addl %r15d,%eax + movl %r8d,%r13d + addl %eax,%r14d + vmovdqa %xmm6,16(%rsp) + vpalignr $4,%xmm2,%xmm3,%xmm4 + shrdl $14,%r13d,%r13d + movl %r14d,%eax + movl %r9d,%r12d + vpalignr $4,%xmm0,%xmm1,%xmm7 + xorl %r8d,%r13d + shrdl $9,%r14d,%r14d + xorl %r10d,%r12d + vpsrld $7,%xmm4,%xmm6 + shrdl $5,%r13d,%r13d + xorl %eax,%r14d + andl %r8d,%r12d + vpaddd %xmm7,%xmm2,%xmm2 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 128-128(%rdi),%xmm10 + xorl %r8d,%r13d + addl 32(%rsp),%r11d + movl %eax,%r15d + vpsrld $3,%xmm4,%xmm7 + shrdl $11,%r14d,%r14d + xorl %r10d,%r12d + xorl %ebx,%r15d + vpslld $14,%xmm4,%xmm5 + shrdl $6,%r13d,%r13d + addl %r12d,%r11d + andl %r15d,%esi + vpxor %xmm6,%xmm7,%xmm4 + xorl %eax,%r14d + addl %r13d,%r11d + xorl %ebx,%esi + vpshufd $250,%xmm1,%xmm7 + addl %r11d,%edx + shrdl $2,%r14d,%r14d + addl %esi,%r11d + vpsrld $11,%xmm6,%xmm6 + movl %edx,%r13d + addl %r11d,%r14d + shrdl $14,%r13d,%r13d + vpxor %xmm5,%xmm4,%xmm4 + movl %r14d,%r11d + movl %r8d,%r12d + xorl %edx,%r13d + vpslld $11,%xmm5,%xmm5 + shrdl $9,%r14d,%r14d + xorl %r9d,%r12d + shrdl $5,%r13d,%r13d + vpxor %xmm6,%xmm4,%xmm4 + xorl %r11d,%r14d + andl %edx,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 144-128(%rdi),%xmm10 + xorl %edx,%r13d + vpsrld $10,%xmm7,%xmm6 + addl 36(%rsp),%r10d + movl %r11d,%esi + shrdl $11,%r14d,%r14d + vpxor %xmm5,%xmm4,%xmm4 + xorl %r9d,%r12d + xorl %eax,%esi + shrdl $6,%r13d,%r13d + vpsrlq $17,%xmm7,%xmm7 + addl %r12d,%r10d + andl %esi,%r15d + xorl %r11d,%r14d + vpaddd %xmm4,%xmm2,%xmm2 + addl %r13d,%r10d + xorl %eax,%r15d + addl %r10d,%ecx + vpxor %xmm7,%xmm6,%xmm6 + shrdl $2,%r14d,%r14d + addl %r15d,%r10d + movl %ecx,%r13d + vpsrlq $2,%xmm7,%xmm7 + addl %r10d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r10d + vpxor %xmm7,%xmm6,%xmm6 + movl %edx,%r12d + xorl %ecx,%r13d + shrdl $9,%r14d,%r14d + vpshufd $132,%xmm6,%xmm6 + xorl %r8d,%r12d + shrdl $5,%r13d,%r13d + xorl %r10d,%r14d + vpsrldq $8,%xmm6,%xmm6 + andl %ecx,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 160-128(%rdi),%xmm10 + xorl %ecx,%r13d + addl 40(%rsp),%r9d + vpaddd %xmm6,%xmm2,%xmm2 + movl %r10d,%r15d + shrdl $11,%r14d,%r14d + xorl %r8d,%r12d + vpshufd $80,%xmm2,%xmm7 + xorl %r11d,%r15d + shrdl $6,%r13d,%r13d + addl %r12d,%r9d + vpsrld $10,%xmm7,%xmm6 + andl %r15d,%esi + xorl %r10d,%r14d + addl %r13d,%r9d + vpsrlq $17,%xmm7,%xmm7 + xorl %r11d,%esi + addl %r9d,%ebx + shrdl $2,%r14d,%r14d + vpxor %xmm7,%xmm6,%xmm6 + addl %esi,%r9d + movl %ebx,%r13d + addl %r9d,%r14d + vpsrlq $2,%xmm7,%xmm7 + shrdl $14,%r13d,%r13d + movl %r14d,%r9d + movl %ecx,%r12d + vpxor %xmm7,%xmm6,%xmm6 + xorl %ebx,%r13d + shrdl $9,%r14d,%r14d + xorl %edx,%r12d + vpshufd $232,%xmm6,%xmm6 + shrdl $5,%r13d,%r13d + xorl %r9d,%r14d + andl %ebx,%r12d + vpslldq $8,%xmm6,%xmm6 + vaesenclast %xmm10,%xmm9,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 176-128(%rdi),%xmm10 + xorl %ebx,%r13d + addl 44(%rsp),%r8d + movl %r9d,%esi + vpaddd %xmm6,%xmm2,%xmm2 + shrdl $11,%r14d,%r14d + xorl %edx,%r12d + xorl %r10d,%esi + vpaddd 64(%rbp),%xmm2,%xmm6 + shrdl $6,%r13d,%r13d + addl %r12d,%r8d + andl %esi,%r15d + xorl %r9d,%r14d + addl %r13d,%r8d + xorl %r10d,%r15d + addl %r8d,%eax + shrdl $2,%r14d,%r14d + addl %r15d,%r8d + movl %eax,%r13d + addl %r8d,%r14d + vmovdqa %xmm6,32(%rsp) + vpalignr $4,%xmm3,%xmm0,%xmm4 + shrdl $14,%r13d,%r13d + movl %r14d,%r8d + movl %ebx,%r12d + vpalignr $4,%xmm1,%xmm2,%xmm7 + xorl %eax,%r13d + shrdl $9,%r14d,%r14d + xorl %ecx,%r12d + vpsrld $7,%xmm4,%xmm6 + shrdl $5,%r13d,%r13d + xorl %r8d,%r14d + andl %eax,%r12d + vpaddd %xmm7,%xmm3,%xmm3 + vpand %xmm12,%xmm11,%xmm8 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 192-128(%rdi),%xmm10 + xorl %eax,%r13d + addl 48(%rsp),%edx + movl %r8d,%r15d + vpsrld $3,%xmm4,%xmm7 + shrdl $11,%r14d,%r14d + xorl %ecx,%r12d + xorl %r9d,%r15d + vpslld $14,%xmm4,%xmm5 + shrdl $6,%r13d,%r13d + addl %r12d,%edx + andl %r15d,%esi + vpxor %xmm6,%xmm7,%xmm4 + xorl %r8d,%r14d + addl %r13d,%edx + xorl %r9d,%esi + vpshufd $250,%xmm2,%xmm7 + addl %edx,%r11d + shrdl $2,%r14d,%r14d + addl %esi,%edx + vpsrld $11,%xmm6,%xmm6 + movl %r11d,%r13d + addl %edx,%r14d + shrdl $14,%r13d,%r13d + vpxor %xmm5,%xmm4,%xmm4 + movl %r14d,%edx + movl %eax,%r12d + xorl %r11d,%r13d + vpslld $11,%xmm5,%xmm5 + shrdl $9,%r14d,%r14d + xorl %ebx,%r12d + shrdl $5,%r13d,%r13d + vpxor %xmm6,%xmm4,%xmm4 + xorl %edx,%r14d + andl %r11d,%r12d + vaesenclast %xmm10,%xmm9,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 208-128(%rdi),%xmm10 + xorl %r11d,%r13d + vpsrld $10,%xmm7,%xmm6 + addl 52(%rsp),%ecx + movl %edx,%esi + shrdl $11,%r14d,%r14d + vpxor %xmm5,%xmm4,%xmm4 + xorl %ebx,%r12d + xorl %r8d,%esi + shrdl $6,%r13d,%r13d + vpsrlq $17,%xmm7,%xmm7 + addl %r12d,%ecx + andl %esi,%r15d + xorl %edx,%r14d + vpaddd %xmm4,%xmm3,%xmm3 + addl %r13d,%ecx + xorl %r8d,%r15d + addl %ecx,%r10d + vpxor %xmm7,%xmm6,%xmm6 + shrdl $2,%r14d,%r14d + addl %r15d,%ecx + movl %r10d,%r13d + vpsrlq $2,%xmm7,%xmm7 + addl %ecx,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%ecx + vpxor %xmm7,%xmm6,%xmm6 + movl %r11d,%r12d + xorl %r10d,%r13d + shrdl $9,%r14d,%r14d + vpshufd $132,%xmm6,%xmm6 + xorl %eax,%r12d + shrdl $5,%r13d,%r13d + xorl %ecx,%r14d + vpsrldq $8,%xmm6,%xmm6 + andl %r10d,%r12d + vpand %xmm13,%xmm11,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 224-128(%rdi),%xmm10 + xorl %r10d,%r13d + addl 56(%rsp),%ebx + vpaddd %xmm6,%xmm3,%xmm3 + movl %ecx,%r15d + shrdl $11,%r14d,%r14d + xorl %eax,%r12d + vpshufd $80,%xmm3,%xmm7 + xorl %edx,%r15d + shrdl $6,%r13d,%r13d + addl %r12d,%ebx + vpsrld $10,%xmm7,%xmm6 + andl %r15d,%esi + xorl %ecx,%r14d + addl %r13d,%ebx + vpsrlq $17,%xmm7,%xmm7 + xorl %edx,%esi + addl %ebx,%r9d + shrdl $2,%r14d,%r14d + vpxor %xmm7,%xmm6,%xmm6 + addl %esi,%ebx + movl %r9d,%r13d + addl %ebx,%r14d + vpsrlq $2,%xmm7,%xmm7 + shrdl $14,%r13d,%r13d + movl %r14d,%ebx + movl %r10d,%r12d + vpxor %xmm7,%xmm6,%xmm6 + xorl %r9d,%r13d + shrdl $9,%r14d,%r14d + xorl %r11d,%r12d + vpshufd $232,%xmm6,%xmm6 + shrdl $5,%r13d,%r13d + xorl %ebx,%r14d + andl %r9d,%r12d + vpslldq $8,%xmm6,%xmm6 + vpor %xmm11,%xmm8,%xmm8 + vaesenclast %xmm10,%xmm9,%xmm11 + vmovdqu 0-128(%rdi),%xmm10 + xorl %r9d,%r13d + addl 60(%rsp),%eax + movl %ebx,%esi + vpaddd %xmm6,%xmm3,%xmm3 + shrdl $11,%r14d,%r14d + xorl %r11d,%r12d + xorl %ecx,%esi + vpaddd 96(%rbp),%xmm3,%xmm6 + shrdl $6,%r13d,%r13d + addl %r12d,%eax + andl %esi,%r15d + xorl %ebx,%r14d + addl %r13d,%eax + xorl %ecx,%r15d + addl %eax,%r8d + shrdl $2,%r14d,%r14d + addl %r15d,%eax + movl %r8d,%r13d + addl %eax,%r14d + vmovdqa %xmm6,48(%rsp) + movq 64+0(%rsp),%r12 + vpand %xmm14,%xmm11,%xmm11 + movq 64+8(%rsp),%r15 + vpor %xmm11,%xmm8,%xmm8 + vmovdqu %xmm8,(%r15,%r12,1) + leaq 16(%r12),%r12 + cmpb $0,131(%rbp) + jne .Lavx_00_47 + vmovdqu (%r12),%xmm9 + movq %r12,64+0(%rsp) + shrdl $14,%r13d,%r13d + movl %r14d,%eax + movl %r9d,%r12d + xorl %r8d,%r13d + shrdl $9,%r14d,%r14d + xorl %r10d,%r12d + shrdl $5,%r13d,%r13d + xorl %eax,%r14d + andl %r8d,%r12d + vpxor %xmm10,%xmm9,%xmm9 + vmovdqu 16-128(%rdi),%xmm10 + xorl %r8d,%r13d + addl 0(%rsp),%r11d + movl %eax,%r15d + shrdl $11,%r14d,%r14d + xorl %r10d,%r12d + xorl %ebx,%r15d + shrdl $6,%r13d,%r13d + addl %r12d,%r11d + andl %r15d,%esi + xorl %eax,%r14d + addl %r13d,%r11d + xorl %ebx,%esi + addl %r11d,%edx + shrdl $2,%r14d,%r14d + addl %esi,%r11d + movl %edx,%r13d + addl %r11d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r11d + movl %r8d,%r12d + xorl %edx,%r13d + shrdl $9,%r14d,%r14d + xorl %r9d,%r12d + shrdl $5,%r13d,%r13d + xorl %r11d,%r14d + andl %edx,%r12d + vpxor %xmm8,%xmm9,%xmm9 + xorl %edx,%r13d + addl 4(%rsp),%r10d + movl %r11d,%esi + shrdl $11,%r14d,%r14d + xorl %r9d,%r12d + xorl %eax,%esi + shrdl $6,%r13d,%r13d + addl %r12d,%r10d + andl %esi,%r15d + xorl %r11d,%r14d + addl %r13d,%r10d + xorl %eax,%r15d + addl %r10d,%ecx + shrdl $2,%r14d,%r14d + addl %r15d,%r10d + movl %ecx,%r13d + addl %r10d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r10d + movl %edx,%r12d + xorl %ecx,%r13d + shrdl $9,%r14d,%r14d + xorl %r8d,%r12d + shrdl $5,%r13d,%r13d + xorl %r10d,%r14d + andl %ecx,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 32-128(%rdi),%xmm10 + xorl %ecx,%r13d + addl 8(%rsp),%r9d + movl %r10d,%r15d + shrdl $11,%r14d,%r14d + xorl %r8d,%r12d + xorl %r11d,%r15d + shrdl $6,%r13d,%r13d + addl %r12d,%r9d + andl %r15d,%esi + xorl %r10d,%r14d + addl %r13d,%r9d + xorl %r11d,%esi + addl %r9d,%ebx + shrdl $2,%r14d,%r14d + addl %esi,%r9d + movl %ebx,%r13d + addl %r9d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r9d + movl %ecx,%r12d + xorl %ebx,%r13d + shrdl $9,%r14d,%r14d + xorl %edx,%r12d + shrdl $5,%r13d,%r13d + xorl %r9d,%r14d + andl %ebx,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 48-128(%rdi),%xmm10 + xorl %ebx,%r13d + addl 12(%rsp),%r8d + movl %r9d,%esi + shrdl $11,%r14d,%r14d + xorl %edx,%r12d + xorl %r10d,%esi + shrdl $6,%r13d,%r13d + addl %r12d,%r8d + andl %esi,%r15d + xorl %r9d,%r14d + addl %r13d,%r8d + xorl %r10d,%r15d + addl %r8d,%eax + shrdl $2,%r14d,%r14d + addl %r15d,%r8d + movl %eax,%r13d + addl %r8d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r8d + movl %ebx,%r12d + xorl %eax,%r13d + shrdl $9,%r14d,%r14d + xorl %ecx,%r12d + shrdl $5,%r13d,%r13d + xorl %r8d,%r14d + andl %eax,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 64-128(%rdi),%xmm10 + xorl %eax,%r13d + addl 16(%rsp),%edx + movl %r8d,%r15d + shrdl $11,%r14d,%r14d + xorl %ecx,%r12d + xorl %r9d,%r15d + shrdl $6,%r13d,%r13d + addl %r12d,%edx + andl %r15d,%esi + xorl %r8d,%r14d + addl %r13d,%edx + xorl %r9d,%esi + addl %edx,%r11d + shrdl $2,%r14d,%r14d + addl %esi,%edx + movl %r11d,%r13d + addl %edx,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%edx + movl %eax,%r12d + xorl %r11d,%r13d + shrdl $9,%r14d,%r14d + xorl %ebx,%r12d + shrdl $5,%r13d,%r13d + xorl %edx,%r14d + andl %r11d,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 80-128(%rdi),%xmm10 + xorl %r11d,%r13d + addl 20(%rsp),%ecx + movl %edx,%esi + shrdl $11,%r14d,%r14d + xorl %ebx,%r12d + xorl %r8d,%esi + shrdl $6,%r13d,%r13d + addl %r12d,%ecx + andl %esi,%r15d + xorl %edx,%r14d + addl %r13d,%ecx + xorl %r8d,%r15d + addl %ecx,%r10d + shrdl $2,%r14d,%r14d + addl %r15d,%ecx + movl %r10d,%r13d + addl %ecx,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%ecx + movl %r11d,%r12d + xorl %r10d,%r13d + shrdl $9,%r14d,%r14d + xorl %eax,%r12d + shrdl $5,%r13d,%r13d + xorl %ecx,%r14d + andl %r10d,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 96-128(%rdi),%xmm10 + xorl %r10d,%r13d + addl 24(%rsp),%ebx + movl %ecx,%r15d + shrdl $11,%r14d,%r14d + xorl %eax,%r12d + xorl %edx,%r15d + shrdl $6,%r13d,%r13d + addl %r12d,%ebx + andl %r15d,%esi + xorl %ecx,%r14d + addl %r13d,%ebx + xorl %edx,%esi + addl %ebx,%r9d + shrdl $2,%r14d,%r14d + addl %esi,%ebx + movl %r9d,%r13d + addl %ebx,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%ebx + movl %r10d,%r12d + xorl %r9d,%r13d + shrdl $9,%r14d,%r14d + xorl %r11d,%r12d + shrdl $5,%r13d,%r13d + xorl %ebx,%r14d + andl %r9d,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 112-128(%rdi),%xmm10 + xorl %r9d,%r13d + addl 28(%rsp),%eax + movl %ebx,%esi + shrdl $11,%r14d,%r14d + xorl %r11d,%r12d + xorl %ecx,%esi + shrdl $6,%r13d,%r13d + addl %r12d,%eax + andl %esi,%r15d + xorl %ebx,%r14d + addl %r13d,%eax + xorl %ecx,%r15d + addl %eax,%r8d + shrdl $2,%r14d,%r14d + addl %r15d,%eax + movl %r8d,%r13d + addl %eax,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%eax + movl %r9d,%r12d + xorl %r8d,%r13d + shrdl $9,%r14d,%r14d + xorl %r10d,%r12d + shrdl $5,%r13d,%r13d + xorl %eax,%r14d + andl %r8d,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 128-128(%rdi),%xmm10 + xorl %r8d,%r13d + addl 32(%rsp),%r11d + movl %eax,%r15d + shrdl $11,%r14d,%r14d + xorl %r10d,%r12d + xorl %ebx,%r15d + shrdl $6,%r13d,%r13d + addl %r12d,%r11d + andl %r15d,%esi + xorl %eax,%r14d + addl %r13d,%r11d + xorl %ebx,%esi + addl %r11d,%edx + shrdl $2,%r14d,%r14d + addl %esi,%r11d + movl %edx,%r13d + addl %r11d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r11d + movl %r8d,%r12d + xorl %edx,%r13d + shrdl $9,%r14d,%r14d + xorl %r9d,%r12d + shrdl $5,%r13d,%r13d + xorl %r11d,%r14d + andl %edx,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 144-128(%rdi),%xmm10 + xorl %edx,%r13d + addl 36(%rsp),%r10d + movl %r11d,%esi + shrdl $11,%r14d,%r14d + xorl %r9d,%r12d + xorl %eax,%esi + shrdl $6,%r13d,%r13d + addl %r12d,%r10d + andl %esi,%r15d + xorl %r11d,%r14d + addl %r13d,%r10d + xorl %eax,%r15d + addl %r10d,%ecx + shrdl $2,%r14d,%r14d + addl %r15d,%r10d + movl %ecx,%r13d + addl %r10d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r10d + movl %edx,%r12d + xorl %ecx,%r13d + shrdl $9,%r14d,%r14d + xorl %r8d,%r12d + shrdl $5,%r13d,%r13d + xorl %r10d,%r14d + andl %ecx,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 160-128(%rdi),%xmm10 + xorl %ecx,%r13d + addl 40(%rsp),%r9d + movl %r10d,%r15d + shrdl $11,%r14d,%r14d + xorl %r8d,%r12d + xorl %r11d,%r15d + shrdl $6,%r13d,%r13d + addl %r12d,%r9d + andl %r15d,%esi + xorl %r10d,%r14d + addl %r13d,%r9d + xorl %r11d,%esi + addl %r9d,%ebx + shrdl $2,%r14d,%r14d + addl %esi,%r9d + movl %ebx,%r13d + addl %r9d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r9d + movl %ecx,%r12d + xorl %ebx,%r13d + shrdl $9,%r14d,%r14d + xorl %edx,%r12d + shrdl $5,%r13d,%r13d + xorl %r9d,%r14d + andl %ebx,%r12d + vaesenclast %xmm10,%xmm9,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 176-128(%rdi),%xmm10 + xorl %ebx,%r13d + addl 44(%rsp),%r8d + movl %r9d,%esi + shrdl $11,%r14d,%r14d + xorl %edx,%r12d + xorl %r10d,%esi + shrdl $6,%r13d,%r13d + addl %r12d,%r8d + andl %esi,%r15d + xorl %r9d,%r14d + addl %r13d,%r8d + xorl %r10d,%r15d + addl %r8d,%eax + shrdl $2,%r14d,%r14d + addl %r15d,%r8d + movl %eax,%r13d + addl %r8d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r8d + movl %ebx,%r12d + xorl %eax,%r13d + shrdl $9,%r14d,%r14d + xorl %ecx,%r12d + shrdl $5,%r13d,%r13d + xorl %r8d,%r14d + andl %eax,%r12d + vpand %xmm12,%xmm11,%xmm8 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 192-128(%rdi),%xmm10 + xorl %eax,%r13d + addl 48(%rsp),%edx + movl %r8d,%r15d + shrdl $11,%r14d,%r14d + xorl %ecx,%r12d + xorl %r9d,%r15d + shrdl $6,%r13d,%r13d + addl %r12d,%edx + andl %r15d,%esi + xorl %r8d,%r14d + addl %r13d,%edx + xorl %r9d,%esi + addl %edx,%r11d + shrdl $2,%r14d,%r14d + addl %esi,%edx + movl %r11d,%r13d + addl %edx,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%edx + movl %eax,%r12d + xorl %r11d,%r13d + shrdl $9,%r14d,%r14d + xorl %ebx,%r12d + shrdl $5,%r13d,%r13d + xorl %edx,%r14d + andl %r11d,%r12d + vaesenclast %xmm10,%xmm9,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 208-128(%rdi),%xmm10 + xorl %r11d,%r13d + addl 52(%rsp),%ecx + movl %edx,%esi + shrdl $11,%r14d,%r14d + xorl %ebx,%r12d + xorl %r8d,%esi + shrdl $6,%r13d,%r13d + addl %r12d,%ecx + andl %esi,%r15d + xorl %edx,%r14d + addl %r13d,%ecx + xorl %r8d,%r15d + addl %ecx,%r10d + shrdl $2,%r14d,%r14d + addl %r15d,%ecx + movl %r10d,%r13d + addl %ecx,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%ecx + movl %r11d,%r12d + xorl %r10d,%r13d + shrdl $9,%r14d,%r14d + xorl %eax,%r12d + shrdl $5,%r13d,%r13d + xorl %ecx,%r14d + andl %r10d,%r12d + vpand %xmm13,%xmm11,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 224-128(%rdi),%xmm10 + xorl %r10d,%r13d + addl 56(%rsp),%ebx + movl %ecx,%r15d + shrdl $11,%r14d,%r14d + xorl %eax,%r12d + xorl %edx,%r15d + shrdl $6,%r13d,%r13d + addl %r12d,%ebx + andl %r15d,%esi + xorl %ecx,%r14d + addl %r13d,%ebx + xorl %edx,%esi + addl %ebx,%r9d + shrdl $2,%r14d,%r14d + addl %esi,%ebx + movl %r9d,%r13d + addl %ebx,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%ebx + movl %r10d,%r12d + xorl %r9d,%r13d + shrdl $9,%r14d,%r14d + xorl %r11d,%r12d + shrdl $5,%r13d,%r13d + xorl %ebx,%r14d + andl %r9d,%r12d + vpor %xmm11,%xmm8,%xmm8 + vaesenclast %xmm10,%xmm9,%xmm11 + vmovdqu 0-128(%rdi),%xmm10 + xorl %r9d,%r13d + addl 60(%rsp),%eax + movl %ebx,%esi + shrdl $11,%r14d,%r14d + xorl %r11d,%r12d + xorl %ecx,%esi + shrdl $6,%r13d,%r13d + addl %r12d,%eax + andl %esi,%r15d + xorl %ebx,%r14d + addl %r13d,%eax + xorl %ecx,%r15d + addl %eax,%r8d + shrdl $2,%r14d,%r14d + addl %r15d,%eax + movl %r8d,%r13d + addl %eax,%r14d + movq 64+0(%rsp),%r12 + movq 64+8(%rsp),%r13 + movq 64+40(%rsp),%r15 + movq 64+48(%rsp),%rsi + + vpand %xmm14,%xmm11,%xmm11 + movl %r14d,%eax + vpor %xmm11,%xmm8,%xmm8 + vmovdqu %xmm8,(%r12,%r13,1) + leaq 16(%r12),%r12 + + addl 0(%r15),%eax + addl 4(%r15),%ebx + addl 8(%r15),%ecx + addl 12(%r15),%edx + addl 16(%r15),%r8d + addl 20(%r15),%r9d + addl 24(%r15),%r10d + addl 28(%r15),%r11d + + cmpq 64+16(%rsp),%r12 + + movl %eax,0(%r15) + movl %ebx,4(%r15) + movl %ecx,8(%r15) + movl %edx,12(%r15) + movl %r8d,16(%r15) + movl %r9d,20(%r15) + movl %r10d,24(%r15) + movl %r11d,28(%r15) + jb .Lloop_avx + + movq 64+32(%rsp),%r8 + movq 120(%rsp),%rsi +.cfi_def_cfa %rsi,8 + vmovdqu %xmm8,(%r8) + vzeroall + movq -48(%rsi),%r15 +.cfi_restore %r15 + movq -40(%rsi),%r14 +.cfi_restore %r14 + movq -32(%rsi),%r13 +.cfi_restore %r13 + movq -24(%rsi),%r12 +.cfi_restore %r12 + movq -16(%rsi),%rbp +.cfi_restore %rbp + movq -8(%rsi),%rbx +.cfi_restore %rbx + leaq (%rsi),%rsp +.cfi_def_cfa_register %rsp +.Lepilogue_avx: + .byte 0xf3,0xc3 +.cfi_endproc +.size aesni_cbc_sha256_enc_avx,.-aesni_cbc_sha256_enc_avx +.type aesni_cbc_sha256_enc_avx2,@function +.align 64 +aesni_cbc_sha256_enc_avx2: +.cfi_startproc +.Lavx2_shortcut: + movq 8(%rsp),%r10 + movq %rsp,%rax +.cfi_def_cfa_register %rax + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_offset %r15,-56 + subq $576,%rsp + andq $-1024,%rsp + addq $448,%rsp + + shlq $6,%rdx + subq %rdi,%rsi + subq %rdi,%r10 + addq %rdi,%rdx + + + + movq %rdx,64+16(%rsp) + + movq %r8,64+32(%rsp) + movq %r9,64+40(%rsp) + movq %r10,64+48(%rsp) + movq %rax,120(%rsp) +.cfi_escape 0x0f,0x06,0x77,0xf8,0x00,0x06,0x23,0x08 +.Lprologue_avx2: + vzeroall + + movq %rdi,%r13 + vpinsrq $1,%rsi,%xmm15,%xmm15 + leaq 128(%rcx),%rdi + leaq K256+544(%rip),%r12 + movl 240-128(%rdi),%r14d + movq %r9,%r15 + movq %r10,%rsi + vmovdqu (%r8),%xmm8 + leaq -9(%r14),%r14 + + vmovdqa 0(%r12,%r14,8),%xmm14 + vmovdqa 16(%r12,%r14,8),%xmm13 + vmovdqa 32(%r12,%r14,8),%xmm12 + + subq $-64,%r13 + movl 0(%r15),%eax + leaq (%rsi,%r13,1),%r12 + movl 4(%r15),%ebx + cmpq %rdx,%r13 + movl 8(%r15),%ecx + cmoveq %rsp,%r12 + movl 12(%r15),%edx + movl 16(%r15),%r8d + movl 20(%r15),%r9d + movl 24(%r15),%r10d + movl 28(%r15),%r11d + vmovdqu 0-128(%rdi),%xmm10 + jmp .Loop_avx2 +.align 16 +.Loop_avx2: + vmovdqa K256+512(%rip),%ymm7 + vmovdqu -64+0(%rsi,%r13,1),%xmm0 + vmovdqu -64+16(%rsi,%r13,1),%xmm1 + vmovdqu -64+32(%rsi,%r13,1),%xmm2 + vmovdqu -64+48(%rsi,%r13,1),%xmm3 + + vinserti128 $1,(%r12),%ymm0,%ymm0 + vinserti128 $1,16(%r12),%ymm1,%ymm1 + vpshufb %ymm7,%ymm0,%ymm0 + vinserti128 $1,32(%r12),%ymm2,%ymm2 + vpshufb %ymm7,%ymm1,%ymm1 + vinserti128 $1,48(%r12),%ymm3,%ymm3 + + leaq K256(%rip),%rbp + vpshufb %ymm7,%ymm2,%ymm2 + leaq -64(%r13),%r13 + vpaddd 0(%rbp),%ymm0,%ymm4 + vpshufb %ymm7,%ymm3,%ymm3 + vpaddd 32(%rbp),%ymm1,%ymm5 + vpaddd 64(%rbp),%ymm2,%ymm6 + vpaddd 96(%rbp),%ymm3,%ymm7 + vmovdqa %ymm4,0(%rsp) + xorl %r14d,%r14d + vmovdqa %ymm5,32(%rsp) + + movq 120(%rsp),%rsi +.cfi_def_cfa %rsi,8 + leaq -64(%rsp),%rsp + + + + movq %rsi,-8(%rsp) +.cfi_escape 0x0f,0x05,0x77,0x78,0x06,0x23,0x08 + movl %ebx,%esi + vmovdqa %ymm6,0(%rsp) + xorl %ecx,%esi + vmovdqa %ymm7,32(%rsp) + movl %r9d,%r12d + subq $-32*4,%rbp + jmp .Lavx2_00_47 + +.align 16 +.Lavx2_00_47: + vmovdqu (%r13),%xmm9 + vpinsrq $0,%r13,%xmm15,%xmm15 + leaq -64(%rsp),%rsp +.cfi_escape 0x0f,0x05,0x77,0x38,0x06,0x23,0x08 + + pushq 64-8(%rsp) +.cfi_escape 0x0f,0x05,0x77,0x00,0x06,0x23,0x08 + leaq 8(%rsp),%rsp +.cfi_escape 0x0f,0x05,0x77,0x78,0x06,0x23,0x08 + vpalignr $4,%ymm0,%ymm1,%ymm4 + addl 0+128(%rsp),%r11d + andl %r8d,%r12d + rorxl $25,%r8d,%r13d + vpalignr $4,%ymm2,%ymm3,%ymm7 + rorxl $11,%r8d,%r15d + leal (%rax,%r14,1),%eax + leal (%r11,%r12,1),%r11d + vpsrld $7,%ymm4,%ymm6 + andnl %r10d,%r8d,%r12d + xorl %r15d,%r13d + rorxl $6,%r8d,%r14d + vpaddd %ymm7,%ymm0,%ymm0 + leal (%r11,%r12,1),%r11d + xorl %r14d,%r13d + movl %eax,%r15d + vpsrld $3,%ymm4,%ymm7 + rorxl $22,%eax,%r12d + leal (%r11,%r13,1),%r11d + xorl %ebx,%r15d + vpslld $14,%ymm4,%ymm5 + rorxl $13,%eax,%r14d + rorxl $2,%eax,%r13d + leal (%rdx,%r11,1),%edx + vpxor %ymm6,%ymm7,%ymm4 + andl %r15d,%esi + vpxor %xmm10,%xmm9,%xmm9 + vmovdqu 16-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %ebx,%esi + vpshufd $250,%ymm3,%ymm7 + xorl %r13d,%r14d + leal (%r11,%rsi,1),%r11d + movl %r8d,%r12d + vpsrld $11,%ymm6,%ymm6 + addl 4+128(%rsp),%r10d + andl %edx,%r12d + rorxl $25,%edx,%r13d + vpxor %ymm5,%ymm4,%ymm4 + rorxl $11,%edx,%esi + leal (%r11,%r14,1),%r11d + leal (%r10,%r12,1),%r10d + vpslld $11,%ymm5,%ymm5 + andnl %r9d,%edx,%r12d + xorl %esi,%r13d + rorxl $6,%edx,%r14d + vpxor %ymm6,%ymm4,%ymm4 + leal (%r10,%r12,1),%r10d + xorl %r14d,%r13d + movl %r11d,%esi + vpsrld $10,%ymm7,%ymm6 + rorxl $22,%r11d,%r12d + leal (%r10,%r13,1),%r10d + xorl %eax,%esi + vpxor %ymm5,%ymm4,%ymm4 + rorxl $13,%r11d,%r14d + rorxl $2,%r11d,%r13d + leal (%rcx,%r10,1),%ecx + vpsrlq $17,%ymm7,%ymm7 + andl %esi,%r15d + vpxor %xmm8,%xmm9,%xmm9 + xorl %r12d,%r14d + xorl %eax,%r15d + vpaddd %ymm4,%ymm0,%ymm0 + xorl %r13d,%r14d + leal (%r10,%r15,1),%r10d + movl %edx,%r12d + vpxor %ymm7,%ymm6,%ymm6 + addl 8+128(%rsp),%r9d + andl %ecx,%r12d + rorxl $25,%ecx,%r13d + vpsrlq $2,%ymm7,%ymm7 + rorxl $11,%ecx,%r15d + leal (%r10,%r14,1),%r10d + leal (%r9,%r12,1),%r9d + vpxor %ymm7,%ymm6,%ymm6 + andnl %r8d,%ecx,%r12d + xorl %r15d,%r13d + rorxl $6,%ecx,%r14d + vpshufd $132,%ymm6,%ymm6 + leal (%r9,%r12,1),%r9d + xorl %r14d,%r13d + movl %r10d,%r15d + vpsrldq $8,%ymm6,%ymm6 + rorxl $22,%r10d,%r12d + leal (%r9,%r13,1),%r9d + xorl %r11d,%r15d + vpaddd %ymm6,%ymm0,%ymm0 + rorxl $13,%r10d,%r14d + rorxl $2,%r10d,%r13d + leal (%rbx,%r9,1),%ebx + vpshufd $80,%ymm0,%ymm7 + andl %r15d,%esi + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 32-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r11d,%esi + vpsrld $10,%ymm7,%ymm6 + xorl %r13d,%r14d + leal (%r9,%rsi,1),%r9d + movl %ecx,%r12d + vpsrlq $17,%ymm7,%ymm7 + addl 12+128(%rsp),%r8d + andl %ebx,%r12d + rorxl $25,%ebx,%r13d + vpxor %ymm7,%ymm6,%ymm6 + rorxl $11,%ebx,%esi + leal (%r9,%r14,1),%r9d + leal (%r8,%r12,1),%r8d + vpsrlq $2,%ymm7,%ymm7 + andnl %edx,%ebx,%r12d + xorl %esi,%r13d + rorxl $6,%ebx,%r14d + vpxor %ymm7,%ymm6,%ymm6 + leal (%r8,%r12,1),%r8d + xorl %r14d,%r13d + movl %r9d,%esi + vpshufd $232,%ymm6,%ymm6 + rorxl $22,%r9d,%r12d + leal (%r8,%r13,1),%r8d + xorl %r10d,%esi + vpslldq $8,%ymm6,%ymm6 + rorxl $13,%r9d,%r14d + rorxl $2,%r9d,%r13d + leal (%rax,%r8,1),%eax + vpaddd %ymm6,%ymm0,%ymm0 + andl %esi,%r15d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 48-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r10d,%r15d + vpaddd 0(%rbp),%ymm0,%ymm6 + xorl %r13d,%r14d + leal (%r8,%r15,1),%r8d + movl %ebx,%r12d + vmovdqa %ymm6,0(%rsp) + vpalignr $4,%ymm1,%ymm2,%ymm4 + addl 32+128(%rsp),%edx + andl %eax,%r12d + rorxl $25,%eax,%r13d + vpalignr $4,%ymm3,%ymm0,%ymm7 + rorxl $11,%eax,%r15d + leal (%r8,%r14,1),%r8d + leal (%rdx,%r12,1),%edx + vpsrld $7,%ymm4,%ymm6 + andnl %ecx,%eax,%r12d + xorl %r15d,%r13d + rorxl $6,%eax,%r14d + vpaddd %ymm7,%ymm1,%ymm1 + leal (%rdx,%r12,1),%edx + xorl %r14d,%r13d + movl %r8d,%r15d + vpsrld $3,%ymm4,%ymm7 + rorxl $22,%r8d,%r12d + leal (%rdx,%r13,1),%edx + xorl %r9d,%r15d + vpslld $14,%ymm4,%ymm5 + rorxl $13,%r8d,%r14d + rorxl $2,%r8d,%r13d + leal (%r11,%rdx,1),%r11d + vpxor %ymm6,%ymm7,%ymm4 + andl %r15d,%esi + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 64-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r9d,%esi + vpshufd $250,%ymm0,%ymm7 + xorl %r13d,%r14d + leal (%rdx,%rsi,1),%edx + movl %eax,%r12d + vpsrld $11,%ymm6,%ymm6 + addl 36+128(%rsp),%ecx + andl %r11d,%r12d + rorxl $25,%r11d,%r13d + vpxor %ymm5,%ymm4,%ymm4 + rorxl $11,%r11d,%esi + leal (%rdx,%r14,1),%edx + leal (%rcx,%r12,1),%ecx + vpslld $11,%ymm5,%ymm5 + andnl %ebx,%r11d,%r12d + xorl %esi,%r13d + rorxl $6,%r11d,%r14d + vpxor %ymm6,%ymm4,%ymm4 + leal (%rcx,%r12,1),%ecx + xorl %r14d,%r13d + movl %edx,%esi + vpsrld $10,%ymm7,%ymm6 + rorxl $22,%edx,%r12d + leal (%rcx,%r13,1),%ecx + xorl %r8d,%esi + vpxor %ymm5,%ymm4,%ymm4 + rorxl $13,%edx,%r14d + rorxl $2,%edx,%r13d + leal (%r10,%rcx,1),%r10d + vpsrlq $17,%ymm7,%ymm7 + andl %esi,%r15d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 80-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r8d,%r15d + vpaddd %ymm4,%ymm1,%ymm1 + xorl %r13d,%r14d + leal (%rcx,%r15,1),%ecx + movl %r11d,%r12d + vpxor %ymm7,%ymm6,%ymm6 + addl 40+128(%rsp),%ebx + andl %r10d,%r12d + rorxl $25,%r10d,%r13d + vpsrlq $2,%ymm7,%ymm7 + rorxl $11,%r10d,%r15d + leal (%rcx,%r14,1),%ecx + leal (%rbx,%r12,1),%ebx + vpxor %ymm7,%ymm6,%ymm6 + andnl %eax,%r10d,%r12d + xorl %r15d,%r13d + rorxl $6,%r10d,%r14d + vpshufd $132,%ymm6,%ymm6 + leal (%rbx,%r12,1),%ebx + xorl %r14d,%r13d + movl %ecx,%r15d + vpsrldq $8,%ymm6,%ymm6 + rorxl $22,%ecx,%r12d + leal (%rbx,%r13,1),%ebx + xorl %edx,%r15d + vpaddd %ymm6,%ymm1,%ymm1 + rorxl $13,%ecx,%r14d + rorxl $2,%ecx,%r13d + leal (%r9,%rbx,1),%r9d + vpshufd $80,%ymm1,%ymm7 + andl %r15d,%esi + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 96-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %edx,%esi + vpsrld $10,%ymm7,%ymm6 + xorl %r13d,%r14d + leal (%rbx,%rsi,1),%ebx + movl %r10d,%r12d + vpsrlq $17,%ymm7,%ymm7 + addl 44+128(%rsp),%eax + andl %r9d,%r12d + rorxl $25,%r9d,%r13d + vpxor %ymm7,%ymm6,%ymm6 + rorxl $11,%r9d,%esi + leal (%rbx,%r14,1),%ebx + leal (%rax,%r12,1),%eax + vpsrlq $2,%ymm7,%ymm7 + andnl %r11d,%r9d,%r12d + xorl %esi,%r13d + rorxl $6,%r9d,%r14d + vpxor %ymm7,%ymm6,%ymm6 + leal (%rax,%r12,1),%eax + xorl %r14d,%r13d + movl %ebx,%esi + vpshufd $232,%ymm6,%ymm6 + rorxl $22,%ebx,%r12d + leal (%rax,%r13,1),%eax + xorl %ecx,%esi + vpslldq $8,%ymm6,%ymm6 + rorxl $13,%ebx,%r14d + rorxl $2,%ebx,%r13d + leal (%r8,%rax,1),%r8d + vpaddd %ymm6,%ymm1,%ymm1 + andl %esi,%r15d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 112-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %ecx,%r15d + vpaddd 32(%rbp),%ymm1,%ymm6 + xorl %r13d,%r14d + leal (%rax,%r15,1),%eax + movl %r9d,%r12d + vmovdqa %ymm6,32(%rsp) + leaq -64(%rsp),%rsp +.cfi_escape 0x0f,0x05,0x77,0x38,0x06,0x23,0x08 + + pushq 64-8(%rsp) +.cfi_escape 0x0f,0x05,0x77,0x00,0x06,0x23,0x08 + leaq 8(%rsp),%rsp +.cfi_escape 0x0f,0x05,0x77,0x78,0x06,0x23,0x08 + vpalignr $4,%ymm2,%ymm3,%ymm4 + addl 0+128(%rsp),%r11d + andl %r8d,%r12d + rorxl $25,%r8d,%r13d + vpalignr $4,%ymm0,%ymm1,%ymm7 + rorxl $11,%r8d,%r15d + leal (%rax,%r14,1),%eax + leal (%r11,%r12,1),%r11d + vpsrld $7,%ymm4,%ymm6 + andnl %r10d,%r8d,%r12d + xorl %r15d,%r13d + rorxl $6,%r8d,%r14d + vpaddd %ymm7,%ymm2,%ymm2 + leal (%r11,%r12,1),%r11d + xorl %r14d,%r13d + movl %eax,%r15d + vpsrld $3,%ymm4,%ymm7 + rorxl $22,%eax,%r12d + leal (%r11,%r13,1),%r11d + xorl %ebx,%r15d + vpslld $14,%ymm4,%ymm5 + rorxl $13,%eax,%r14d + rorxl $2,%eax,%r13d + leal (%rdx,%r11,1),%edx + vpxor %ymm6,%ymm7,%ymm4 + andl %r15d,%esi + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 128-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %ebx,%esi + vpshufd $250,%ymm1,%ymm7 + xorl %r13d,%r14d + leal (%r11,%rsi,1),%r11d + movl %r8d,%r12d + vpsrld $11,%ymm6,%ymm6 + addl 4+128(%rsp),%r10d + andl %edx,%r12d + rorxl $25,%edx,%r13d + vpxor %ymm5,%ymm4,%ymm4 + rorxl $11,%edx,%esi + leal (%r11,%r14,1),%r11d + leal (%r10,%r12,1),%r10d + vpslld $11,%ymm5,%ymm5 + andnl %r9d,%edx,%r12d + xorl %esi,%r13d + rorxl $6,%edx,%r14d + vpxor %ymm6,%ymm4,%ymm4 + leal (%r10,%r12,1),%r10d + xorl %r14d,%r13d + movl %r11d,%esi + vpsrld $10,%ymm7,%ymm6 + rorxl $22,%r11d,%r12d + leal (%r10,%r13,1),%r10d + xorl %eax,%esi + vpxor %ymm5,%ymm4,%ymm4 + rorxl $13,%r11d,%r14d + rorxl $2,%r11d,%r13d + leal (%rcx,%r10,1),%ecx + vpsrlq $17,%ymm7,%ymm7 + andl %esi,%r15d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 144-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %eax,%r15d + vpaddd %ymm4,%ymm2,%ymm2 + xorl %r13d,%r14d + leal (%r10,%r15,1),%r10d + movl %edx,%r12d + vpxor %ymm7,%ymm6,%ymm6 + addl 8+128(%rsp),%r9d + andl %ecx,%r12d + rorxl $25,%ecx,%r13d + vpsrlq $2,%ymm7,%ymm7 + rorxl $11,%ecx,%r15d + leal (%r10,%r14,1),%r10d + leal (%r9,%r12,1),%r9d + vpxor %ymm7,%ymm6,%ymm6 + andnl %r8d,%ecx,%r12d + xorl %r15d,%r13d + rorxl $6,%ecx,%r14d + vpshufd $132,%ymm6,%ymm6 + leal (%r9,%r12,1),%r9d + xorl %r14d,%r13d + movl %r10d,%r15d + vpsrldq $8,%ymm6,%ymm6 + rorxl $22,%r10d,%r12d + leal (%r9,%r13,1),%r9d + xorl %r11d,%r15d + vpaddd %ymm6,%ymm2,%ymm2 + rorxl $13,%r10d,%r14d + rorxl $2,%r10d,%r13d + leal (%rbx,%r9,1),%ebx + vpshufd $80,%ymm2,%ymm7 + andl %r15d,%esi + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 160-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r11d,%esi + vpsrld $10,%ymm7,%ymm6 + xorl %r13d,%r14d + leal (%r9,%rsi,1),%r9d + movl %ecx,%r12d + vpsrlq $17,%ymm7,%ymm7 + addl 12+128(%rsp),%r8d + andl %ebx,%r12d + rorxl $25,%ebx,%r13d + vpxor %ymm7,%ymm6,%ymm6 + rorxl $11,%ebx,%esi + leal (%r9,%r14,1),%r9d + leal (%r8,%r12,1),%r8d + vpsrlq $2,%ymm7,%ymm7 + andnl %edx,%ebx,%r12d + xorl %esi,%r13d + rorxl $6,%ebx,%r14d + vpxor %ymm7,%ymm6,%ymm6 + leal (%r8,%r12,1),%r8d + xorl %r14d,%r13d + movl %r9d,%esi + vpshufd $232,%ymm6,%ymm6 + rorxl $22,%r9d,%r12d + leal (%r8,%r13,1),%r8d + xorl %r10d,%esi + vpslldq $8,%ymm6,%ymm6 + rorxl $13,%r9d,%r14d + rorxl $2,%r9d,%r13d + leal (%rax,%r8,1),%eax + vpaddd %ymm6,%ymm2,%ymm2 + andl %esi,%r15d + vaesenclast %xmm10,%xmm9,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 176-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r10d,%r15d + vpaddd 64(%rbp),%ymm2,%ymm6 + xorl %r13d,%r14d + leal (%r8,%r15,1),%r8d + movl %ebx,%r12d + vmovdqa %ymm6,0(%rsp) + vpalignr $4,%ymm3,%ymm0,%ymm4 + addl 32+128(%rsp),%edx + andl %eax,%r12d + rorxl $25,%eax,%r13d + vpalignr $4,%ymm1,%ymm2,%ymm7 + rorxl $11,%eax,%r15d + leal (%r8,%r14,1),%r8d + leal (%rdx,%r12,1),%edx + vpsrld $7,%ymm4,%ymm6 + andnl %ecx,%eax,%r12d + xorl %r15d,%r13d + rorxl $6,%eax,%r14d + vpaddd %ymm7,%ymm3,%ymm3 + leal (%rdx,%r12,1),%edx + xorl %r14d,%r13d + movl %r8d,%r15d + vpsrld $3,%ymm4,%ymm7 + rorxl $22,%r8d,%r12d + leal (%rdx,%r13,1),%edx + xorl %r9d,%r15d + vpslld $14,%ymm4,%ymm5 + rorxl $13,%r8d,%r14d + rorxl $2,%r8d,%r13d + leal (%r11,%rdx,1),%r11d + vpxor %ymm6,%ymm7,%ymm4 + andl %r15d,%esi + vpand %xmm12,%xmm11,%xmm8 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 192-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r9d,%esi + vpshufd $250,%ymm2,%ymm7 + xorl %r13d,%r14d + leal (%rdx,%rsi,1),%edx + movl %eax,%r12d + vpsrld $11,%ymm6,%ymm6 + addl 36+128(%rsp),%ecx + andl %r11d,%r12d + rorxl $25,%r11d,%r13d + vpxor %ymm5,%ymm4,%ymm4 + rorxl $11,%r11d,%esi + leal (%rdx,%r14,1),%edx + leal (%rcx,%r12,1),%ecx + vpslld $11,%ymm5,%ymm5 + andnl %ebx,%r11d,%r12d + xorl %esi,%r13d + rorxl $6,%r11d,%r14d + vpxor %ymm6,%ymm4,%ymm4 + leal (%rcx,%r12,1),%ecx + xorl %r14d,%r13d + movl %edx,%esi + vpsrld $10,%ymm7,%ymm6 + rorxl $22,%edx,%r12d + leal (%rcx,%r13,1),%ecx + xorl %r8d,%esi + vpxor %ymm5,%ymm4,%ymm4 + rorxl $13,%edx,%r14d + rorxl $2,%edx,%r13d + leal (%r10,%rcx,1),%r10d + vpsrlq $17,%ymm7,%ymm7 + andl %esi,%r15d + vaesenclast %xmm10,%xmm9,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 208-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r8d,%r15d + vpaddd %ymm4,%ymm3,%ymm3 + xorl %r13d,%r14d + leal (%rcx,%r15,1),%ecx + movl %r11d,%r12d + vpxor %ymm7,%ymm6,%ymm6 + addl 40+128(%rsp),%ebx + andl %r10d,%r12d + rorxl $25,%r10d,%r13d + vpsrlq $2,%ymm7,%ymm7 + rorxl $11,%r10d,%r15d + leal (%rcx,%r14,1),%ecx + leal (%rbx,%r12,1),%ebx + vpxor %ymm7,%ymm6,%ymm6 + andnl %eax,%r10d,%r12d + xorl %r15d,%r13d + rorxl $6,%r10d,%r14d + vpshufd $132,%ymm6,%ymm6 + leal (%rbx,%r12,1),%ebx + xorl %r14d,%r13d + movl %ecx,%r15d + vpsrldq $8,%ymm6,%ymm6 + rorxl $22,%ecx,%r12d + leal (%rbx,%r13,1),%ebx + xorl %edx,%r15d + vpaddd %ymm6,%ymm3,%ymm3 + rorxl $13,%ecx,%r14d + rorxl $2,%ecx,%r13d + leal (%r9,%rbx,1),%r9d + vpshufd $80,%ymm3,%ymm7 + andl %r15d,%esi + vpand %xmm13,%xmm11,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 224-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %edx,%esi + vpsrld $10,%ymm7,%ymm6 + xorl %r13d,%r14d + leal (%rbx,%rsi,1),%ebx + movl %r10d,%r12d + vpsrlq $17,%ymm7,%ymm7 + addl 44+128(%rsp),%eax + andl %r9d,%r12d + rorxl $25,%r9d,%r13d + vpxor %ymm7,%ymm6,%ymm6 + rorxl $11,%r9d,%esi + leal (%rbx,%r14,1),%ebx + leal (%rax,%r12,1),%eax + vpsrlq $2,%ymm7,%ymm7 + andnl %r11d,%r9d,%r12d + xorl %esi,%r13d + rorxl $6,%r9d,%r14d + vpxor %ymm7,%ymm6,%ymm6 + leal (%rax,%r12,1),%eax + xorl %r14d,%r13d + movl %ebx,%esi + vpshufd $232,%ymm6,%ymm6 + rorxl $22,%ebx,%r12d + leal (%rax,%r13,1),%eax + xorl %ecx,%esi + vpslldq $8,%ymm6,%ymm6 + rorxl $13,%ebx,%r14d + rorxl $2,%ebx,%r13d + leal (%r8,%rax,1),%r8d + vpaddd %ymm6,%ymm3,%ymm3 + andl %esi,%r15d + vpor %xmm11,%xmm8,%xmm8 + vaesenclast %xmm10,%xmm9,%xmm11 + vmovdqu 0-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %ecx,%r15d + vpaddd 96(%rbp),%ymm3,%ymm6 + xorl %r13d,%r14d + leal (%rax,%r15,1),%eax + movl %r9d,%r12d + vmovdqa %ymm6,32(%rsp) + vmovq %xmm15,%r13 + vpextrq $1,%xmm15,%r15 + vpand %xmm14,%xmm11,%xmm11 + vpor %xmm11,%xmm8,%xmm8 + vmovdqu %xmm8,(%r15,%r13,1) + leaq 16(%r13),%r13 + leaq 128(%rbp),%rbp + cmpb $0,3(%rbp) + jne .Lavx2_00_47 + vmovdqu (%r13),%xmm9 + vpinsrq $0,%r13,%xmm15,%xmm15 + addl 0+64(%rsp),%r11d + andl %r8d,%r12d + rorxl $25,%r8d,%r13d + rorxl $11,%r8d,%r15d + leal (%rax,%r14,1),%eax + leal (%r11,%r12,1),%r11d + andnl %r10d,%r8d,%r12d + xorl %r15d,%r13d + rorxl $6,%r8d,%r14d + leal (%r11,%r12,1),%r11d + xorl %r14d,%r13d + movl %eax,%r15d + rorxl $22,%eax,%r12d + leal (%r11,%r13,1),%r11d + xorl %ebx,%r15d + rorxl $13,%eax,%r14d + rorxl $2,%eax,%r13d + leal (%rdx,%r11,1),%edx + andl %r15d,%esi + vpxor %xmm10,%xmm9,%xmm9 + vmovdqu 16-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %ebx,%esi + xorl %r13d,%r14d + leal (%r11,%rsi,1),%r11d + movl %r8d,%r12d + addl 4+64(%rsp),%r10d + andl %edx,%r12d + rorxl $25,%edx,%r13d + rorxl $11,%edx,%esi + leal (%r11,%r14,1),%r11d + leal (%r10,%r12,1),%r10d + andnl %r9d,%edx,%r12d + xorl %esi,%r13d + rorxl $6,%edx,%r14d + leal (%r10,%r12,1),%r10d + xorl %r14d,%r13d + movl %r11d,%esi + rorxl $22,%r11d,%r12d + leal (%r10,%r13,1),%r10d + xorl %eax,%esi + rorxl $13,%r11d,%r14d + rorxl $2,%r11d,%r13d + leal (%rcx,%r10,1),%ecx + andl %esi,%r15d + vpxor %xmm8,%xmm9,%xmm9 + xorl %r12d,%r14d + xorl %eax,%r15d + xorl %r13d,%r14d + leal (%r10,%r15,1),%r10d + movl %edx,%r12d + addl 8+64(%rsp),%r9d + andl %ecx,%r12d + rorxl $25,%ecx,%r13d + rorxl $11,%ecx,%r15d + leal (%r10,%r14,1),%r10d + leal (%r9,%r12,1),%r9d + andnl %r8d,%ecx,%r12d + xorl %r15d,%r13d + rorxl $6,%ecx,%r14d + leal (%r9,%r12,1),%r9d + xorl %r14d,%r13d + movl %r10d,%r15d + rorxl $22,%r10d,%r12d + leal (%r9,%r13,1),%r9d + xorl %r11d,%r15d + rorxl $13,%r10d,%r14d + rorxl $2,%r10d,%r13d + leal (%rbx,%r9,1),%ebx + andl %r15d,%esi + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 32-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r11d,%esi + xorl %r13d,%r14d + leal (%r9,%rsi,1),%r9d + movl %ecx,%r12d + addl 12+64(%rsp),%r8d + andl %ebx,%r12d + rorxl $25,%ebx,%r13d + rorxl $11,%ebx,%esi + leal (%r9,%r14,1),%r9d + leal (%r8,%r12,1),%r8d + andnl %edx,%ebx,%r12d + xorl %esi,%r13d + rorxl $6,%ebx,%r14d + leal (%r8,%r12,1),%r8d + xorl %r14d,%r13d + movl %r9d,%esi + rorxl $22,%r9d,%r12d + leal (%r8,%r13,1),%r8d + xorl %r10d,%esi + rorxl $13,%r9d,%r14d + rorxl $2,%r9d,%r13d + leal (%rax,%r8,1),%eax + andl %esi,%r15d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 48-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r10d,%r15d + xorl %r13d,%r14d + leal (%r8,%r15,1),%r8d + movl %ebx,%r12d + addl 32+64(%rsp),%edx + andl %eax,%r12d + rorxl $25,%eax,%r13d + rorxl $11,%eax,%r15d + leal (%r8,%r14,1),%r8d + leal (%rdx,%r12,1),%edx + andnl %ecx,%eax,%r12d + xorl %r15d,%r13d + rorxl $6,%eax,%r14d + leal (%rdx,%r12,1),%edx + xorl %r14d,%r13d + movl %r8d,%r15d + rorxl $22,%r8d,%r12d + leal (%rdx,%r13,1),%edx + xorl %r9d,%r15d + rorxl $13,%r8d,%r14d + rorxl $2,%r8d,%r13d + leal (%r11,%rdx,1),%r11d + andl %r15d,%esi + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 64-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r9d,%esi + xorl %r13d,%r14d + leal (%rdx,%rsi,1),%edx + movl %eax,%r12d + addl 36+64(%rsp),%ecx + andl %r11d,%r12d + rorxl $25,%r11d,%r13d + rorxl $11,%r11d,%esi + leal (%rdx,%r14,1),%edx + leal (%rcx,%r12,1),%ecx + andnl %ebx,%r11d,%r12d + xorl %esi,%r13d + rorxl $6,%r11d,%r14d + leal (%rcx,%r12,1),%ecx + xorl %r14d,%r13d + movl %edx,%esi + rorxl $22,%edx,%r12d + leal (%rcx,%r13,1),%ecx + xorl %r8d,%esi + rorxl $13,%edx,%r14d + rorxl $2,%edx,%r13d + leal (%r10,%rcx,1),%r10d + andl %esi,%r15d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 80-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r8d,%r15d + xorl %r13d,%r14d + leal (%rcx,%r15,1),%ecx + movl %r11d,%r12d + addl 40+64(%rsp),%ebx + andl %r10d,%r12d + rorxl $25,%r10d,%r13d + rorxl $11,%r10d,%r15d + leal (%rcx,%r14,1),%ecx + leal (%rbx,%r12,1),%ebx + andnl %eax,%r10d,%r12d + xorl %r15d,%r13d + rorxl $6,%r10d,%r14d + leal (%rbx,%r12,1),%ebx + xorl %r14d,%r13d + movl %ecx,%r15d + rorxl $22,%ecx,%r12d + leal (%rbx,%r13,1),%ebx + xorl %edx,%r15d + rorxl $13,%ecx,%r14d + rorxl $2,%ecx,%r13d + leal (%r9,%rbx,1),%r9d + andl %r15d,%esi + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 96-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %edx,%esi + xorl %r13d,%r14d + leal (%rbx,%rsi,1),%ebx + movl %r10d,%r12d + addl 44+64(%rsp),%eax + andl %r9d,%r12d + rorxl $25,%r9d,%r13d + rorxl $11,%r9d,%esi + leal (%rbx,%r14,1),%ebx + leal (%rax,%r12,1),%eax + andnl %r11d,%r9d,%r12d + xorl %esi,%r13d + rorxl $6,%r9d,%r14d + leal (%rax,%r12,1),%eax + xorl %r14d,%r13d + movl %ebx,%esi + rorxl $22,%ebx,%r12d + leal (%rax,%r13,1),%eax + xorl %ecx,%esi + rorxl $13,%ebx,%r14d + rorxl $2,%ebx,%r13d + leal (%r8,%rax,1),%r8d + andl %esi,%r15d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 112-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %ecx,%r15d + xorl %r13d,%r14d + leal (%rax,%r15,1),%eax + movl %r9d,%r12d + addl 0(%rsp),%r11d + andl %r8d,%r12d + rorxl $25,%r8d,%r13d + rorxl $11,%r8d,%r15d + leal (%rax,%r14,1),%eax + leal (%r11,%r12,1),%r11d + andnl %r10d,%r8d,%r12d + xorl %r15d,%r13d + rorxl $6,%r8d,%r14d + leal (%r11,%r12,1),%r11d + xorl %r14d,%r13d + movl %eax,%r15d + rorxl $22,%eax,%r12d + leal (%r11,%r13,1),%r11d + xorl %ebx,%r15d + rorxl $13,%eax,%r14d + rorxl $2,%eax,%r13d + leal (%rdx,%r11,1),%edx + andl %r15d,%esi + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 128-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %ebx,%esi + xorl %r13d,%r14d + leal (%r11,%rsi,1),%r11d + movl %r8d,%r12d + addl 4(%rsp),%r10d + andl %edx,%r12d + rorxl $25,%edx,%r13d + rorxl $11,%edx,%esi + leal (%r11,%r14,1),%r11d + leal (%r10,%r12,1),%r10d + andnl %r9d,%edx,%r12d + xorl %esi,%r13d + rorxl $6,%edx,%r14d + leal (%r10,%r12,1),%r10d + xorl %r14d,%r13d + movl %r11d,%esi + rorxl $22,%r11d,%r12d + leal (%r10,%r13,1),%r10d + xorl %eax,%esi + rorxl $13,%r11d,%r14d + rorxl $2,%r11d,%r13d + leal (%rcx,%r10,1),%ecx + andl %esi,%r15d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 144-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %eax,%r15d + xorl %r13d,%r14d + leal (%r10,%r15,1),%r10d + movl %edx,%r12d + addl 8(%rsp),%r9d + andl %ecx,%r12d + rorxl $25,%ecx,%r13d + rorxl $11,%ecx,%r15d + leal (%r10,%r14,1),%r10d + leal (%r9,%r12,1),%r9d + andnl %r8d,%ecx,%r12d + xorl %r15d,%r13d + rorxl $6,%ecx,%r14d + leal (%r9,%r12,1),%r9d + xorl %r14d,%r13d + movl %r10d,%r15d + rorxl $22,%r10d,%r12d + leal (%r9,%r13,1),%r9d + xorl %r11d,%r15d + rorxl $13,%r10d,%r14d + rorxl $2,%r10d,%r13d + leal (%rbx,%r9,1),%ebx + andl %r15d,%esi + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 160-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r11d,%esi + xorl %r13d,%r14d + leal (%r9,%rsi,1),%r9d + movl %ecx,%r12d + addl 12(%rsp),%r8d + andl %ebx,%r12d + rorxl $25,%ebx,%r13d + rorxl $11,%ebx,%esi + leal (%r9,%r14,1),%r9d + leal (%r8,%r12,1),%r8d + andnl %edx,%ebx,%r12d + xorl %esi,%r13d + rorxl $6,%ebx,%r14d + leal (%r8,%r12,1),%r8d + xorl %r14d,%r13d + movl %r9d,%esi + rorxl $22,%r9d,%r12d + leal (%r8,%r13,1),%r8d + xorl %r10d,%esi + rorxl $13,%r9d,%r14d + rorxl $2,%r9d,%r13d + leal (%rax,%r8,1),%eax + andl %esi,%r15d + vaesenclast %xmm10,%xmm9,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 176-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r10d,%r15d + xorl %r13d,%r14d + leal (%r8,%r15,1),%r8d + movl %ebx,%r12d + addl 32(%rsp),%edx + andl %eax,%r12d + rorxl $25,%eax,%r13d + rorxl $11,%eax,%r15d + leal (%r8,%r14,1),%r8d + leal (%rdx,%r12,1),%edx + andnl %ecx,%eax,%r12d + xorl %r15d,%r13d + rorxl $6,%eax,%r14d + leal (%rdx,%r12,1),%edx + xorl %r14d,%r13d + movl %r8d,%r15d + rorxl $22,%r8d,%r12d + leal (%rdx,%r13,1),%edx + xorl %r9d,%r15d + rorxl $13,%r8d,%r14d + rorxl $2,%r8d,%r13d + leal (%r11,%rdx,1),%r11d + andl %r15d,%esi + vpand %xmm12,%xmm11,%xmm8 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 192-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r9d,%esi + xorl %r13d,%r14d + leal (%rdx,%rsi,1),%edx + movl %eax,%r12d + addl 36(%rsp),%ecx + andl %r11d,%r12d + rorxl $25,%r11d,%r13d + rorxl $11,%r11d,%esi + leal (%rdx,%r14,1),%edx + leal (%rcx,%r12,1),%ecx + andnl %ebx,%r11d,%r12d + xorl %esi,%r13d + rorxl $6,%r11d,%r14d + leal (%rcx,%r12,1),%ecx + xorl %r14d,%r13d + movl %edx,%esi + rorxl $22,%edx,%r12d + leal (%rcx,%r13,1),%ecx + xorl %r8d,%esi + rorxl $13,%edx,%r14d + rorxl $2,%edx,%r13d + leal (%r10,%rcx,1),%r10d + andl %esi,%r15d + vaesenclast %xmm10,%xmm9,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 208-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r8d,%r15d + xorl %r13d,%r14d + leal (%rcx,%r15,1),%ecx + movl %r11d,%r12d + addl 40(%rsp),%ebx + andl %r10d,%r12d + rorxl $25,%r10d,%r13d + rorxl $11,%r10d,%r15d + leal (%rcx,%r14,1),%ecx + leal (%rbx,%r12,1),%ebx + andnl %eax,%r10d,%r12d + xorl %r15d,%r13d + rorxl $6,%r10d,%r14d + leal (%rbx,%r12,1),%ebx + xorl %r14d,%r13d + movl %ecx,%r15d + rorxl $22,%ecx,%r12d + leal (%rbx,%r13,1),%ebx + xorl %edx,%r15d + rorxl $13,%ecx,%r14d + rorxl $2,%ecx,%r13d + leal (%r9,%rbx,1),%r9d + andl %r15d,%esi + vpand %xmm13,%xmm11,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 224-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %edx,%esi + xorl %r13d,%r14d + leal (%rbx,%rsi,1),%ebx + movl %r10d,%r12d + addl 44(%rsp),%eax + andl %r9d,%r12d + rorxl $25,%r9d,%r13d + rorxl $11,%r9d,%esi + leal (%rbx,%r14,1),%ebx + leal (%rax,%r12,1),%eax + andnl %r11d,%r9d,%r12d + xorl %esi,%r13d + rorxl $6,%r9d,%r14d + leal (%rax,%r12,1),%eax + xorl %r14d,%r13d + movl %ebx,%esi + rorxl $22,%ebx,%r12d + leal (%rax,%r13,1),%eax + xorl %ecx,%esi + rorxl $13,%ebx,%r14d + rorxl $2,%ebx,%r13d + leal (%r8,%rax,1),%r8d + andl %esi,%r15d + vpor %xmm11,%xmm8,%xmm8 + vaesenclast %xmm10,%xmm9,%xmm11 + vmovdqu 0-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %ecx,%r15d + xorl %r13d,%r14d + leal (%rax,%r15,1),%eax + movl %r9d,%r12d + vpextrq $1,%xmm15,%r12 + vmovq %xmm15,%r13 + movq 552(%rsp),%r15 + addl %r14d,%eax + leaq 448(%rsp),%rbp + + vpand %xmm14,%xmm11,%xmm11 + vpor %xmm11,%xmm8,%xmm8 + vmovdqu %xmm8,(%r12,%r13,1) + leaq 16(%r13),%r13 + + addl 0(%r15),%eax + addl 4(%r15),%ebx + addl 8(%r15),%ecx + addl 12(%r15),%edx + addl 16(%r15),%r8d + addl 20(%r15),%r9d + addl 24(%r15),%r10d + addl 28(%r15),%r11d + + movl %eax,0(%r15) + movl %ebx,4(%r15) + movl %ecx,8(%r15) + movl %edx,12(%r15) + movl %r8d,16(%r15) + movl %r9d,20(%r15) + movl %r10d,24(%r15) + movl %r11d,28(%r15) + + cmpq 80(%rbp),%r13 + je .Ldone_avx2 + + xorl %r14d,%r14d + movl %ebx,%esi + movl %r9d,%r12d + xorl %ecx,%esi + jmp .Lower_avx2 +.align 16 +.Lower_avx2: + vmovdqu (%r13),%xmm9 + vpinsrq $0,%r13,%xmm15,%xmm15 + addl 0+16(%rbp),%r11d + andl %r8d,%r12d + rorxl $25,%r8d,%r13d + rorxl $11,%r8d,%r15d + leal (%rax,%r14,1),%eax + leal (%r11,%r12,1),%r11d + andnl %r10d,%r8d,%r12d + xorl %r15d,%r13d + rorxl $6,%r8d,%r14d + leal (%r11,%r12,1),%r11d + xorl %r14d,%r13d + movl %eax,%r15d + rorxl $22,%eax,%r12d + leal (%r11,%r13,1),%r11d + xorl %ebx,%r15d + rorxl $13,%eax,%r14d + rorxl $2,%eax,%r13d + leal (%rdx,%r11,1),%edx + andl %r15d,%esi + vpxor %xmm10,%xmm9,%xmm9 + vmovdqu 16-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %ebx,%esi + xorl %r13d,%r14d + leal (%r11,%rsi,1),%r11d + movl %r8d,%r12d + addl 4+16(%rbp),%r10d + andl %edx,%r12d + rorxl $25,%edx,%r13d + rorxl $11,%edx,%esi + leal (%r11,%r14,1),%r11d + leal (%r10,%r12,1),%r10d + andnl %r9d,%edx,%r12d + xorl %esi,%r13d + rorxl $6,%edx,%r14d + leal (%r10,%r12,1),%r10d + xorl %r14d,%r13d + movl %r11d,%esi + rorxl $22,%r11d,%r12d + leal (%r10,%r13,1),%r10d + xorl %eax,%esi + rorxl $13,%r11d,%r14d + rorxl $2,%r11d,%r13d + leal (%rcx,%r10,1),%ecx + andl %esi,%r15d + vpxor %xmm8,%xmm9,%xmm9 + xorl %r12d,%r14d + xorl %eax,%r15d + xorl %r13d,%r14d + leal (%r10,%r15,1),%r10d + movl %edx,%r12d + addl 8+16(%rbp),%r9d + andl %ecx,%r12d + rorxl $25,%ecx,%r13d + rorxl $11,%ecx,%r15d + leal (%r10,%r14,1),%r10d + leal (%r9,%r12,1),%r9d + andnl %r8d,%ecx,%r12d + xorl %r15d,%r13d + rorxl $6,%ecx,%r14d + leal (%r9,%r12,1),%r9d + xorl %r14d,%r13d + movl %r10d,%r15d + rorxl $22,%r10d,%r12d + leal (%r9,%r13,1),%r9d + xorl %r11d,%r15d + rorxl $13,%r10d,%r14d + rorxl $2,%r10d,%r13d + leal (%rbx,%r9,1),%ebx + andl %r15d,%esi + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 32-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r11d,%esi + xorl %r13d,%r14d + leal (%r9,%rsi,1),%r9d + movl %ecx,%r12d + addl 12+16(%rbp),%r8d + andl %ebx,%r12d + rorxl $25,%ebx,%r13d + rorxl $11,%ebx,%esi + leal (%r9,%r14,1),%r9d + leal (%r8,%r12,1),%r8d + andnl %edx,%ebx,%r12d + xorl %esi,%r13d + rorxl $6,%ebx,%r14d + leal (%r8,%r12,1),%r8d + xorl %r14d,%r13d + movl %r9d,%esi + rorxl $22,%r9d,%r12d + leal (%r8,%r13,1),%r8d + xorl %r10d,%esi + rorxl $13,%r9d,%r14d + rorxl $2,%r9d,%r13d + leal (%rax,%r8,1),%eax + andl %esi,%r15d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 48-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r10d,%r15d + xorl %r13d,%r14d + leal (%r8,%r15,1),%r8d + movl %ebx,%r12d + addl 32+16(%rbp),%edx + andl %eax,%r12d + rorxl $25,%eax,%r13d + rorxl $11,%eax,%r15d + leal (%r8,%r14,1),%r8d + leal (%rdx,%r12,1),%edx + andnl %ecx,%eax,%r12d + xorl %r15d,%r13d + rorxl $6,%eax,%r14d + leal (%rdx,%r12,1),%edx + xorl %r14d,%r13d + movl %r8d,%r15d + rorxl $22,%r8d,%r12d + leal (%rdx,%r13,1),%edx + xorl %r9d,%r15d + rorxl $13,%r8d,%r14d + rorxl $2,%r8d,%r13d + leal (%r11,%rdx,1),%r11d + andl %r15d,%esi + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 64-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r9d,%esi + xorl %r13d,%r14d + leal (%rdx,%rsi,1),%edx + movl %eax,%r12d + addl 36+16(%rbp),%ecx + andl %r11d,%r12d + rorxl $25,%r11d,%r13d + rorxl $11,%r11d,%esi + leal (%rdx,%r14,1),%edx + leal (%rcx,%r12,1),%ecx + andnl %ebx,%r11d,%r12d + xorl %esi,%r13d + rorxl $6,%r11d,%r14d + leal (%rcx,%r12,1),%ecx + xorl %r14d,%r13d + movl %edx,%esi + rorxl $22,%edx,%r12d + leal (%rcx,%r13,1),%ecx + xorl %r8d,%esi + rorxl $13,%edx,%r14d + rorxl $2,%edx,%r13d + leal (%r10,%rcx,1),%r10d + andl %esi,%r15d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 80-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r8d,%r15d + xorl %r13d,%r14d + leal (%rcx,%r15,1),%ecx + movl %r11d,%r12d + addl 40+16(%rbp),%ebx + andl %r10d,%r12d + rorxl $25,%r10d,%r13d + rorxl $11,%r10d,%r15d + leal (%rcx,%r14,1),%ecx + leal (%rbx,%r12,1),%ebx + andnl %eax,%r10d,%r12d + xorl %r15d,%r13d + rorxl $6,%r10d,%r14d + leal (%rbx,%r12,1),%ebx + xorl %r14d,%r13d + movl %ecx,%r15d + rorxl $22,%ecx,%r12d + leal (%rbx,%r13,1),%ebx + xorl %edx,%r15d + rorxl $13,%ecx,%r14d + rorxl $2,%ecx,%r13d + leal (%r9,%rbx,1),%r9d + andl %r15d,%esi + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 96-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %edx,%esi + xorl %r13d,%r14d + leal (%rbx,%rsi,1),%ebx + movl %r10d,%r12d + addl 44+16(%rbp),%eax + andl %r9d,%r12d + rorxl $25,%r9d,%r13d + rorxl $11,%r9d,%esi + leal (%rbx,%r14,1),%ebx + leal (%rax,%r12,1),%eax + andnl %r11d,%r9d,%r12d + xorl %esi,%r13d + rorxl $6,%r9d,%r14d + leal (%rax,%r12,1),%eax + xorl %r14d,%r13d + movl %ebx,%esi + rorxl $22,%ebx,%r12d + leal (%rax,%r13,1),%eax + xorl %ecx,%esi + rorxl $13,%ebx,%r14d + rorxl $2,%ebx,%r13d + leal (%r8,%rax,1),%r8d + andl %esi,%r15d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 112-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %ecx,%r15d + xorl %r13d,%r14d + leal (%rax,%r15,1),%eax + movl %r9d,%r12d + leaq -64(%rbp),%rbp + addl 0+16(%rbp),%r11d + andl %r8d,%r12d + rorxl $25,%r8d,%r13d + rorxl $11,%r8d,%r15d + leal (%rax,%r14,1),%eax + leal (%r11,%r12,1),%r11d + andnl %r10d,%r8d,%r12d + xorl %r15d,%r13d + rorxl $6,%r8d,%r14d + leal (%r11,%r12,1),%r11d + xorl %r14d,%r13d + movl %eax,%r15d + rorxl $22,%eax,%r12d + leal (%r11,%r13,1),%r11d + xorl %ebx,%r15d + rorxl $13,%eax,%r14d + rorxl $2,%eax,%r13d + leal (%rdx,%r11,1),%edx + andl %r15d,%esi + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 128-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %ebx,%esi + xorl %r13d,%r14d + leal (%r11,%rsi,1),%r11d + movl %r8d,%r12d + addl 4+16(%rbp),%r10d + andl %edx,%r12d + rorxl $25,%edx,%r13d + rorxl $11,%edx,%esi + leal (%r11,%r14,1),%r11d + leal (%r10,%r12,1),%r10d + andnl %r9d,%edx,%r12d + xorl %esi,%r13d + rorxl $6,%edx,%r14d + leal (%r10,%r12,1),%r10d + xorl %r14d,%r13d + movl %r11d,%esi + rorxl $22,%r11d,%r12d + leal (%r10,%r13,1),%r10d + xorl %eax,%esi + rorxl $13,%r11d,%r14d + rorxl $2,%r11d,%r13d + leal (%rcx,%r10,1),%ecx + andl %esi,%r15d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 144-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %eax,%r15d + xorl %r13d,%r14d + leal (%r10,%r15,1),%r10d + movl %edx,%r12d + addl 8+16(%rbp),%r9d + andl %ecx,%r12d + rorxl $25,%ecx,%r13d + rorxl $11,%ecx,%r15d + leal (%r10,%r14,1),%r10d + leal (%r9,%r12,1),%r9d + andnl %r8d,%ecx,%r12d + xorl %r15d,%r13d + rorxl $6,%ecx,%r14d + leal (%r9,%r12,1),%r9d + xorl %r14d,%r13d + movl %r10d,%r15d + rorxl $22,%r10d,%r12d + leal (%r9,%r13,1),%r9d + xorl %r11d,%r15d + rorxl $13,%r10d,%r14d + rorxl $2,%r10d,%r13d + leal (%rbx,%r9,1),%ebx + andl %r15d,%esi + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 160-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r11d,%esi + xorl %r13d,%r14d + leal (%r9,%rsi,1),%r9d + movl %ecx,%r12d + addl 12+16(%rbp),%r8d + andl %ebx,%r12d + rorxl $25,%ebx,%r13d + rorxl $11,%ebx,%esi + leal (%r9,%r14,1),%r9d + leal (%r8,%r12,1),%r8d + andnl %edx,%ebx,%r12d + xorl %esi,%r13d + rorxl $6,%ebx,%r14d + leal (%r8,%r12,1),%r8d + xorl %r14d,%r13d + movl %r9d,%esi + rorxl $22,%r9d,%r12d + leal (%r8,%r13,1),%r8d + xorl %r10d,%esi + rorxl $13,%r9d,%r14d + rorxl $2,%r9d,%r13d + leal (%rax,%r8,1),%eax + andl %esi,%r15d + vaesenclast %xmm10,%xmm9,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 176-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r10d,%r15d + xorl %r13d,%r14d + leal (%r8,%r15,1),%r8d + movl %ebx,%r12d + addl 32+16(%rbp),%edx + andl %eax,%r12d + rorxl $25,%eax,%r13d + rorxl $11,%eax,%r15d + leal (%r8,%r14,1),%r8d + leal (%rdx,%r12,1),%edx + andnl %ecx,%eax,%r12d + xorl %r15d,%r13d + rorxl $6,%eax,%r14d + leal (%rdx,%r12,1),%edx + xorl %r14d,%r13d + movl %r8d,%r15d + rorxl $22,%r8d,%r12d + leal (%rdx,%r13,1),%edx + xorl %r9d,%r15d + rorxl $13,%r8d,%r14d + rorxl $2,%r8d,%r13d + leal (%r11,%rdx,1),%r11d + andl %r15d,%esi + vpand %xmm12,%xmm11,%xmm8 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 192-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r9d,%esi + xorl %r13d,%r14d + leal (%rdx,%rsi,1),%edx + movl %eax,%r12d + addl 36+16(%rbp),%ecx + andl %r11d,%r12d + rorxl $25,%r11d,%r13d + rorxl $11,%r11d,%esi + leal (%rdx,%r14,1),%edx + leal (%rcx,%r12,1),%ecx + andnl %ebx,%r11d,%r12d + xorl %esi,%r13d + rorxl $6,%r11d,%r14d + leal (%rcx,%r12,1),%ecx + xorl %r14d,%r13d + movl %edx,%esi + rorxl $22,%edx,%r12d + leal (%rcx,%r13,1),%ecx + xorl %r8d,%esi + rorxl $13,%edx,%r14d + rorxl $2,%edx,%r13d + leal (%r10,%rcx,1),%r10d + andl %esi,%r15d + vaesenclast %xmm10,%xmm9,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 208-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r8d,%r15d + xorl %r13d,%r14d + leal (%rcx,%r15,1),%ecx + movl %r11d,%r12d + addl 40+16(%rbp),%ebx + andl %r10d,%r12d + rorxl $25,%r10d,%r13d + rorxl $11,%r10d,%r15d + leal (%rcx,%r14,1),%ecx + leal (%rbx,%r12,1),%ebx + andnl %eax,%r10d,%r12d + xorl %r15d,%r13d + rorxl $6,%r10d,%r14d + leal (%rbx,%r12,1),%ebx + xorl %r14d,%r13d + movl %ecx,%r15d + rorxl $22,%ecx,%r12d + leal (%rbx,%r13,1),%ebx + xorl %edx,%r15d + rorxl $13,%ecx,%r14d + rorxl $2,%ecx,%r13d + leal (%r9,%rbx,1),%r9d + andl %r15d,%esi + vpand %xmm13,%xmm11,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 224-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %edx,%esi + xorl %r13d,%r14d + leal (%rbx,%rsi,1),%ebx + movl %r10d,%r12d + addl 44+16(%rbp),%eax + andl %r9d,%r12d + rorxl $25,%r9d,%r13d + rorxl $11,%r9d,%esi + leal (%rbx,%r14,1),%ebx + leal (%rax,%r12,1),%eax + andnl %r11d,%r9d,%r12d + xorl %esi,%r13d + rorxl $6,%r9d,%r14d + leal (%rax,%r12,1),%eax + xorl %r14d,%r13d + movl %ebx,%esi + rorxl $22,%ebx,%r12d + leal (%rax,%r13,1),%eax + xorl %ecx,%esi + rorxl $13,%ebx,%r14d + rorxl $2,%ebx,%r13d + leal (%r8,%rax,1),%r8d + andl %esi,%r15d + vpor %xmm11,%xmm8,%xmm8 + vaesenclast %xmm10,%xmm9,%xmm11 + vmovdqu 0-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %ecx,%r15d + xorl %r13d,%r14d + leal (%rax,%r15,1),%eax + movl %r9d,%r12d + vmovq %xmm15,%r13 + vpextrq $1,%xmm15,%r15 + vpand %xmm14,%xmm11,%xmm11 + vpor %xmm11,%xmm8,%xmm8 + leaq -64(%rbp),%rbp + vmovdqu %xmm8,(%r15,%r13,1) + leaq 16(%r13),%r13 + cmpq %rsp,%rbp + jae .Lower_avx2 + + movq 552(%rsp),%r15 + leaq 64(%r13),%r13 + movq 560(%rsp),%rsi + addl %r14d,%eax + leaq 448(%rsp),%rsp + + addl 0(%r15),%eax + addl 4(%r15),%ebx + addl 8(%r15),%ecx + addl 12(%r15),%edx + addl 16(%r15),%r8d + addl 20(%r15),%r9d + addl 24(%r15),%r10d + leaq (%rsi,%r13,1),%r12 + addl 28(%r15),%r11d + + cmpq 64+16(%rsp),%r13 + + movl %eax,0(%r15) + cmoveq %rsp,%r12 + movl %ebx,4(%r15) + movl %ecx,8(%r15) + movl %edx,12(%r15) + movl %r8d,16(%r15) + movl %r9d,20(%r15) + movl %r10d,24(%r15) + movl %r11d,28(%r15) + + jbe .Loop_avx2 + leaq (%rsp),%rbp + + +.cfi_escape 0x0f,0x06,0x76,0xf8,0x00,0x06,0x23,0x08 + +.Ldone_avx2: + movq 64+32(%rbp),%r8 + movq 64+56(%rbp),%rsi +.cfi_def_cfa %rsi,8 + vmovdqu %xmm8,(%r8) + vzeroall + movq -48(%rsi),%r15 +.cfi_restore %r15 + movq -40(%rsi),%r14 +.cfi_restore %r14 + movq -32(%rsi),%r13 +.cfi_restore %r13 + movq -24(%rsi),%r12 +.cfi_restore %r12 + movq -16(%rsi),%rbp +.cfi_restore %rbp + movq -8(%rsi),%rbx +.cfi_restore %rbx + leaq (%rsi),%rsp +.cfi_def_cfa_register %rsp +.Lepilogue_avx2: + .byte 0xf3,0xc3 +.cfi_endproc +.size aesni_cbc_sha256_enc_avx2,.-aesni_cbc_sha256_enc_avx2 +.type aesni_cbc_sha256_enc_shaext,@function +.align 32 +aesni_cbc_sha256_enc_shaext: +.cfi_startproc + movq 8(%rsp),%r10 + leaq K256+128(%rip),%rax + movdqu (%r9),%xmm1 + movdqu 16(%r9),%xmm2 + movdqa 512-128(%rax),%xmm3 + + movl 240(%rcx),%r11d + subq %rdi,%rsi + movups (%rcx),%xmm15 + movups (%r8),%xmm6 + movups 16(%rcx),%xmm4 + leaq 112(%rcx),%rcx + + pshufd $0x1b,%xmm1,%xmm0 + pshufd $0xb1,%xmm1,%xmm1 + pshufd $0x1b,%xmm2,%xmm2 + movdqa %xmm3,%xmm7 +.byte 102,15,58,15,202,8 + punpcklqdq %xmm0,%xmm2 + + jmp .Loop_shaext + +.align 16 +.Loop_shaext: + movdqu (%r10),%xmm10 + movdqu 16(%r10),%xmm11 + movdqu 32(%r10),%xmm12 +.byte 102,68,15,56,0,211 + movdqu 48(%r10),%xmm13 + + movdqa 0-128(%rax),%xmm0 + paddd %xmm10,%xmm0 +.byte 102,68,15,56,0,219 + movdqa %xmm2,%xmm9 + movdqa %xmm1,%xmm8 + movups 0(%rdi),%xmm14 + xorps %xmm15,%xmm14 + xorps %xmm14,%xmm6 + movups -80(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movups -64(%rcx),%xmm4 + aesenc %xmm5,%xmm6 +.byte 15,56,203,202 + + movdqa 32-128(%rax),%xmm0 + paddd %xmm11,%xmm0 +.byte 102,68,15,56,0,227 + leaq 64(%r10),%r10 + movups -48(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movups -32(%rcx),%xmm4 + aesenc %xmm5,%xmm6 +.byte 15,56,203,202 + + movdqa 64-128(%rax),%xmm0 + paddd %xmm12,%xmm0 +.byte 102,68,15,56,0,235 +.byte 69,15,56,204,211 + movups -16(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm13,%xmm3 +.byte 102,65,15,58,15,220,4 + paddd %xmm3,%xmm10 + movups 0(%rcx),%xmm4 + aesenc %xmm5,%xmm6 +.byte 15,56,203,202 + + movdqa 96-128(%rax),%xmm0 + paddd %xmm13,%xmm0 +.byte 69,15,56,205,213 +.byte 69,15,56,204,220 + movups 16(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movups 32(%rcx),%xmm4 + aesenc %xmm5,%xmm6 + movdqa %xmm10,%xmm3 +.byte 102,65,15,58,15,221,4 + paddd %xmm3,%xmm11 +.byte 15,56,203,202 + movdqa 128-128(%rax),%xmm0 + paddd %xmm10,%xmm0 +.byte 69,15,56,205,218 +.byte 69,15,56,204,229 + movups 48(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm11,%xmm3 +.byte 102,65,15,58,15,218,4 + paddd %xmm3,%xmm12 + cmpl $11,%r11d + jb .Laesenclast1 + movups 64(%rcx),%xmm4 + aesenc %xmm5,%xmm6 + movups 80(%rcx),%xmm5 + aesenc %xmm4,%xmm6 + je .Laesenclast1 + movups 96(%rcx),%xmm4 + aesenc %xmm5,%xmm6 + movups 112(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +.Laesenclast1: + aesenclast %xmm5,%xmm6 + movups 16-112(%rcx),%xmm4 + nop +.byte 15,56,203,202 + movups 16(%rdi),%xmm14 + xorps %xmm15,%xmm14 + movups %xmm6,0(%rsi,%rdi,1) + xorps %xmm14,%xmm6 + movups -80(%rcx),%xmm5 + aesenc %xmm4,%xmm6 + movdqa 160-128(%rax),%xmm0 + paddd %xmm11,%xmm0 +.byte 69,15,56,205,227 +.byte 69,15,56,204,234 + movups -64(%rcx),%xmm4 + aesenc %xmm5,%xmm6 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm12,%xmm3 +.byte 102,65,15,58,15,219,4 + paddd %xmm3,%xmm13 + movups -48(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +.byte 15,56,203,202 + movdqa 192-128(%rax),%xmm0 + paddd %xmm12,%xmm0 +.byte 69,15,56,205,236 +.byte 69,15,56,204,211 + movups -32(%rcx),%xmm4 + aesenc %xmm5,%xmm6 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm13,%xmm3 +.byte 102,65,15,58,15,220,4 + paddd %xmm3,%xmm10 + movups -16(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +.byte 15,56,203,202 + movdqa 224-128(%rax),%xmm0 + paddd %xmm13,%xmm0 +.byte 69,15,56,205,213 +.byte 69,15,56,204,220 + movups 0(%rcx),%xmm4 + aesenc %xmm5,%xmm6 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm10,%xmm3 +.byte 102,65,15,58,15,221,4 + paddd %xmm3,%xmm11 + movups 16(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +.byte 15,56,203,202 + movdqa 256-128(%rax),%xmm0 + paddd %xmm10,%xmm0 +.byte 69,15,56,205,218 +.byte 69,15,56,204,229 + movups 32(%rcx),%xmm4 + aesenc %xmm5,%xmm6 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm11,%xmm3 +.byte 102,65,15,58,15,218,4 + paddd %xmm3,%xmm12 + movups 48(%rcx),%xmm5 + aesenc %xmm4,%xmm6 + cmpl $11,%r11d + jb .Laesenclast2 + movups 64(%rcx),%xmm4 + aesenc %xmm5,%xmm6 + movups 80(%rcx),%xmm5 + aesenc %xmm4,%xmm6 + je .Laesenclast2 + movups 96(%rcx),%xmm4 + aesenc %xmm5,%xmm6 + movups 112(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +.Laesenclast2: + aesenclast %xmm5,%xmm6 + movups 16-112(%rcx),%xmm4 + nop +.byte 15,56,203,202 + movups 32(%rdi),%xmm14 + xorps %xmm15,%xmm14 + movups %xmm6,16(%rsi,%rdi,1) + xorps %xmm14,%xmm6 + movups -80(%rcx),%xmm5 + aesenc %xmm4,%xmm6 + movdqa 288-128(%rax),%xmm0 + paddd %xmm11,%xmm0 +.byte 69,15,56,205,227 +.byte 69,15,56,204,234 + movups -64(%rcx),%xmm4 + aesenc %xmm5,%xmm6 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm12,%xmm3 +.byte 102,65,15,58,15,219,4 + paddd %xmm3,%xmm13 + movups -48(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +.byte 15,56,203,202 + movdqa 320-128(%rax),%xmm0 + paddd %xmm12,%xmm0 +.byte 69,15,56,205,236 +.byte 69,15,56,204,211 + movups -32(%rcx),%xmm4 + aesenc %xmm5,%xmm6 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm13,%xmm3 +.byte 102,65,15,58,15,220,4 + paddd %xmm3,%xmm10 + movups -16(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +.byte 15,56,203,202 + movdqa 352-128(%rax),%xmm0 + paddd %xmm13,%xmm0 +.byte 69,15,56,205,213 +.byte 69,15,56,204,220 + movups 0(%rcx),%xmm4 + aesenc %xmm5,%xmm6 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm10,%xmm3 +.byte 102,65,15,58,15,221,4 + paddd %xmm3,%xmm11 + movups 16(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +.byte 15,56,203,202 + movdqa 384-128(%rax),%xmm0 + paddd %xmm10,%xmm0 +.byte 69,15,56,205,218 +.byte 69,15,56,204,229 + movups 32(%rcx),%xmm4 + aesenc %xmm5,%xmm6 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm11,%xmm3 +.byte 102,65,15,58,15,218,4 + paddd %xmm3,%xmm12 + movups 48(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +.byte 15,56,203,202 + movdqa 416-128(%rax),%xmm0 + paddd %xmm11,%xmm0 +.byte 69,15,56,205,227 +.byte 69,15,56,204,234 + cmpl $11,%r11d + jb .Laesenclast3 + movups 64(%rcx),%xmm4 + aesenc %xmm5,%xmm6 + movups 80(%rcx),%xmm5 + aesenc %xmm4,%xmm6 + je .Laesenclast3 + movups 96(%rcx),%xmm4 + aesenc %xmm5,%xmm6 + movups 112(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +.Laesenclast3: + aesenclast %xmm5,%xmm6 + movups 16-112(%rcx),%xmm4 + nop +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm12,%xmm3 +.byte 102,65,15,58,15,219,4 + paddd %xmm3,%xmm13 + movups 48(%rdi),%xmm14 + xorps %xmm15,%xmm14 + movups %xmm6,32(%rsi,%rdi,1) + xorps %xmm14,%xmm6 + movups -80(%rcx),%xmm5 + aesenc %xmm4,%xmm6 + movups -64(%rcx),%xmm4 + aesenc %xmm5,%xmm6 +.byte 15,56,203,202 + + movdqa 448-128(%rax),%xmm0 + paddd %xmm12,%xmm0 +.byte 69,15,56,205,236 + movdqa %xmm7,%xmm3 + movups -48(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movups -32(%rcx),%xmm4 + aesenc %xmm5,%xmm6 +.byte 15,56,203,202 + + movdqa 480-128(%rax),%xmm0 + paddd %xmm13,%xmm0 + movups -16(%rcx),%xmm5 + aesenc %xmm4,%xmm6 + movups 0(%rcx),%xmm4 + aesenc %xmm5,%xmm6 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movups 16(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +.byte 15,56,203,202 + + movups 32(%rcx),%xmm4 + aesenc %xmm5,%xmm6 + movups 48(%rcx),%xmm5 + aesenc %xmm4,%xmm6 + cmpl $11,%r11d + jb .Laesenclast4 + movups 64(%rcx),%xmm4 + aesenc %xmm5,%xmm6 + movups 80(%rcx),%xmm5 + aesenc %xmm4,%xmm6 + je .Laesenclast4 + movups 96(%rcx),%xmm4 + aesenc %xmm5,%xmm6 + movups 112(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +.Laesenclast4: + aesenclast %xmm5,%xmm6 + movups 16-112(%rcx),%xmm4 + nop + + paddd %xmm9,%xmm2 + paddd %xmm8,%xmm1 + + decq %rdx + movups %xmm6,48(%rsi,%rdi,1) + leaq 64(%rdi),%rdi + jnz .Loop_shaext + + pshufd $0xb1,%xmm2,%xmm2 + pshufd $0x1b,%xmm1,%xmm3 + pshufd $0xb1,%xmm1,%xmm1 + punpckhqdq %xmm2,%xmm1 +.byte 102,15,58,15,211,8 + + movups %xmm6,(%r8) + movdqu %xmm1,(%r9) + movdqu %xmm2,16(%r9) + .byte 0xf3,0xc3 +.cfi_endproc +.size aesni_cbc_sha256_enc_shaext,.-aesni_cbc_sha256_enc_shaext diff --git a/vere/ext/openssl/gen/linux-x86_64/crypto/aes/aesni-x86_64.s b/vere/ext/openssl/gen/linux-x86_64/crypto/aes/aesni-x86_64.s new file mode 100644 index 0000000..1a4b22e --- /dev/null +++ b/vere/ext/openssl/gen/linux-x86_64/crypto/aes/aesni-x86_64.s @@ -0,0 +1,4474 @@ +.text + +.globl aesni_encrypt +.type aesni_encrypt,@function +.align 16 +aesni_encrypt: +.cfi_startproc + movups (%rdi),%xmm2 + movl 240(%rdx),%eax + movups (%rdx),%xmm0 + movups 16(%rdx),%xmm1 + leaq 32(%rdx),%rdx + xorps %xmm0,%xmm2 +.Loop_enc1_1: +.byte 102,15,56,220,209 + decl %eax + movups (%rdx),%xmm1 + leaq 16(%rdx),%rdx + jnz .Loop_enc1_1 +.byte 102,15,56,221,209 + pxor %xmm0,%xmm0 + pxor %xmm1,%xmm1 + movups %xmm2,(%rsi) + pxor %xmm2,%xmm2 + .byte 0xf3,0xc3 +.cfi_endproc +.size aesni_encrypt,.-aesni_encrypt + +.globl aesni_decrypt +.type aesni_decrypt,@function +.align 16 +aesni_decrypt: +.cfi_startproc + movups (%rdi),%xmm2 + movl 240(%rdx),%eax + movups (%rdx),%xmm0 + movups 16(%rdx),%xmm1 + leaq 32(%rdx),%rdx + xorps %xmm0,%xmm2 +.Loop_dec1_2: +.byte 102,15,56,222,209 + decl %eax + movups (%rdx),%xmm1 + leaq 16(%rdx),%rdx + jnz .Loop_dec1_2 +.byte 102,15,56,223,209 + pxor %xmm0,%xmm0 + pxor %xmm1,%xmm1 + movups %xmm2,(%rsi) + pxor %xmm2,%xmm2 + .byte 0xf3,0xc3 +.cfi_endproc +.size aesni_decrypt, .-aesni_decrypt +.type _aesni_encrypt2,@function +.align 16 +_aesni_encrypt2: +.cfi_startproc + movups (%rcx),%xmm0 + shll $4,%eax + movups 16(%rcx),%xmm1 + xorps %xmm0,%xmm2 + xorps %xmm0,%xmm3 + movups 32(%rcx),%xmm0 + leaq 32(%rcx,%rax,1),%rcx + negq %rax + addq $16,%rax + +.Lenc_loop2: +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 + movups -16(%rcx,%rax,1),%xmm0 + jnz .Lenc_loop2 + +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,221,208 +.byte 102,15,56,221,216 + .byte 0xf3,0xc3 +.cfi_endproc +.size _aesni_encrypt2,.-_aesni_encrypt2 +.type _aesni_decrypt2,@function +.align 16 +_aesni_decrypt2: +.cfi_startproc + movups (%rcx),%xmm0 + shll $4,%eax + movups 16(%rcx),%xmm1 + xorps %xmm0,%xmm2 + xorps %xmm0,%xmm3 + movups 32(%rcx),%xmm0 + leaq 32(%rcx,%rax,1),%rcx + negq %rax + addq $16,%rax + +.Ldec_loop2: +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 + movups -16(%rcx,%rax,1),%xmm0 + jnz .Ldec_loop2 + +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,223,208 +.byte 102,15,56,223,216 + .byte 0xf3,0xc3 +.cfi_endproc +.size _aesni_decrypt2,.-_aesni_decrypt2 +.type _aesni_encrypt3,@function +.align 16 +_aesni_encrypt3: +.cfi_startproc + movups (%rcx),%xmm0 + shll $4,%eax + movups 16(%rcx),%xmm1 + xorps %xmm0,%xmm2 + xorps %xmm0,%xmm3 + xorps %xmm0,%xmm4 + movups 32(%rcx),%xmm0 + leaq 32(%rcx,%rax,1),%rcx + negq %rax + addq $16,%rax + +.Lenc_loop3: +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 + movups -16(%rcx,%rax,1),%xmm0 + jnz .Lenc_loop3 + +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,221,208 +.byte 102,15,56,221,216 +.byte 102,15,56,221,224 + .byte 0xf3,0xc3 +.cfi_endproc +.size _aesni_encrypt3,.-_aesni_encrypt3 +.type _aesni_decrypt3,@function +.align 16 +_aesni_decrypt3: +.cfi_startproc + movups (%rcx),%xmm0 + shll $4,%eax + movups 16(%rcx),%xmm1 + xorps %xmm0,%xmm2 + xorps %xmm0,%xmm3 + xorps %xmm0,%xmm4 + movups 32(%rcx),%xmm0 + leaq 32(%rcx,%rax,1),%rcx + negq %rax + addq $16,%rax + +.Ldec_loop3: +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 + movups -16(%rcx,%rax,1),%xmm0 + jnz .Ldec_loop3 + +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,223,208 +.byte 102,15,56,223,216 +.byte 102,15,56,223,224 + .byte 0xf3,0xc3 +.cfi_endproc +.size _aesni_decrypt3,.-_aesni_decrypt3 +.type _aesni_encrypt4,@function +.align 16 +_aesni_encrypt4: +.cfi_startproc + movups (%rcx),%xmm0 + shll $4,%eax + movups 16(%rcx),%xmm1 + xorps %xmm0,%xmm2 + xorps %xmm0,%xmm3 + xorps %xmm0,%xmm4 + xorps %xmm0,%xmm5 + movups 32(%rcx),%xmm0 + leaq 32(%rcx,%rax,1),%rcx + negq %rax +.byte 0x0f,0x1f,0x00 + addq $16,%rax + +.Lenc_loop4: +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 + movups -16(%rcx,%rax,1),%xmm0 + jnz .Lenc_loop4 + +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 +.byte 102,15,56,221,208 +.byte 102,15,56,221,216 +.byte 102,15,56,221,224 +.byte 102,15,56,221,232 + .byte 0xf3,0xc3 +.cfi_endproc +.size _aesni_encrypt4,.-_aesni_encrypt4 +.type _aesni_decrypt4,@function +.align 16 +_aesni_decrypt4: +.cfi_startproc + movups (%rcx),%xmm0 + shll $4,%eax + movups 16(%rcx),%xmm1 + xorps %xmm0,%xmm2 + xorps %xmm0,%xmm3 + xorps %xmm0,%xmm4 + xorps %xmm0,%xmm5 + movups 32(%rcx),%xmm0 + leaq 32(%rcx,%rax,1),%rcx + negq %rax +.byte 0x0f,0x1f,0x00 + addq $16,%rax + +.Ldec_loop4: +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 + movups -16(%rcx,%rax,1),%xmm0 + jnz .Ldec_loop4 + +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 +.byte 102,15,56,223,208 +.byte 102,15,56,223,216 +.byte 102,15,56,223,224 +.byte 102,15,56,223,232 + .byte 0xf3,0xc3 +.cfi_endproc +.size _aesni_decrypt4,.-_aesni_decrypt4 +.type _aesni_encrypt6,@function +.align 16 +_aesni_encrypt6: +.cfi_startproc + movups (%rcx),%xmm0 + shll $4,%eax + movups 16(%rcx),%xmm1 + xorps %xmm0,%xmm2 + pxor %xmm0,%xmm3 + pxor %xmm0,%xmm4 +.byte 102,15,56,220,209 + leaq 32(%rcx,%rax,1),%rcx + negq %rax +.byte 102,15,56,220,217 + pxor %xmm0,%xmm5 + pxor %xmm0,%xmm6 +.byte 102,15,56,220,225 + pxor %xmm0,%xmm7 + movups (%rcx,%rax,1),%xmm0 + addq $16,%rax + jmp .Lenc_loop6_enter +.align 16 +.Lenc_loop6: +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.Lenc_loop6_enter: +.byte 102,15,56,220,233 +.byte 102,15,56,220,241 +.byte 102,15,56,220,249 + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 +.byte 102,15,56,220,240 +.byte 102,15,56,220,248 + movups -16(%rcx,%rax,1),%xmm0 + jnz .Lenc_loop6 + +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 +.byte 102,15,56,220,241 +.byte 102,15,56,220,249 +.byte 102,15,56,221,208 +.byte 102,15,56,221,216 +.byte 102,15,56,221,224 +.byte 102,15,56,221,232 +.byte 102,15,56,221,240 +.byte 102,15,56,221,248 + .byte 0xf3,0xc3 +.cfi_endproc +.size _aesni_encrypt6,.-_aesni_encrypt6 +.type _aesni_decrypt6,@function +.align 16 +_aesni_decrypt6: +.cfi_startproc + movups (%rcx),%xmm0 + shll $4,%eax + movups 16(%rcx),%xmm1 + xorps %xmm0,%xmm2 + pxor %xmm0,%xmm3 + pxor %xmm0,%xmm4 +.byte 102,15,56,222,209 + leaq 32(%rcx,%rax,1),%rcx + negq %rax +.byte 102,15,56,222,217 + pxor %xmm0,%xmm5 + pxor %xmm0,%xmm6 +.byte 102,15,56,222,225 + pxor %xmm0,%xmm7 + movups (%rcx,%rax,1),%xmm0 + addq $16,%rax + jmp .Ldec_loop6_enter +.align 16 +.Ldec_loop6: +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.Ldec_loop6_enter: +.byte 102,15,56,222,233 +.byte 102,15,56,222,241 +.byte 102,15,56,222,249 + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 +.byte 102,15,56,222,240 +.byte 102,15,56,222,248 + movups -16(%rcx,%rax,1),%xmm0 + jnz .Ldec_loop6 + +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 +.byte 102,15,56,222,241 +.byte 102,15,56,222,249 +.byte 102,15,56,223,208 +.byte 102,15,56,223,216 +.byte 102,15,56,223,224 +.byte 102,15,56,223,232 +.byte 102,15,56,223,240 +.byte 102,15,56,223,248 + .byte 0xf3,0xc3 +.cfi_endproc +.size _aesni_decrypt6,.-_aesni_decrypt6 +.type _aesni_encrypt8,@function +.align 16 +_aesni_encrypt8: +.cfi_startproc + movups (%rcx),%xmm0 + shll $4,%eax + movups 16(%rcx),%xmm1 + xorps %xmm0,%xmm2 + xorps %xmm0,%xmm3 + pxor %xmm0,%xmm4 + pxor %xmm0,%xmm5 + pxor %xmm0,%xmm6 + leaq 32(%rcx,%rax,1),%rcx + negq %rax +.byte 102,15,56,220,209 + pxor %xmm0,%xmm7 + pxor %xmm0,%xmm8 +.byte 102,15,56,220,217 + pxor %xmm0,%xmm9 + movups (%rcx,%rax,1),%xmm0 + addq $16,%rax + jmp .Lenc_loop8_inner +.align 16 +.Lenc_loop8: +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.Lenc_loop8_inner: +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 +.byte 102,15,56,220,241 +.byte 102,15,56,220,249 +.byte 102,68,15,56,220,193 +.byte 102,68,15,56,220,201 +.Lenc_loop8_enter: + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 +.byte 102,15,56,220,240 +.byte 102,15,56,220,248 +.byte 102,68,15,56,220,192 +.byte 102,68,15,56,220,200 + movups -16(%rcx,%rax,1),%xmm0 + jnz .Lenc_loop8 + +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 +.byte 102,15,56,220,241 +.byte 102,15,56,220,249 +.byte 102,68,15,56,220,193 +.byte 102,68,15,56,220,201 +.byte 102,15,56,221,208 +.byte 102,15,56,221,216 +.byte 102,15,56,221,224 +.byte 102,15,56,221,232 +.byte 102,15,56,221,240 +.byte 102,15,56,221,248 +.byte 102,68,15,56,221,192 +.byte 102,68,15,56,221,200 + .byte 0xf3,0xc3 +.cfi_endproc +.size _aesni_encrypt8,.-_aesni_encrypt8 +.type _aesni_decrypt8,@function +.align 16 +_aesni_decrypt8: +.cfi_startproc + movups (%rcx),%xmm0 + shll $4,%eax + movups 16(%rcx),%xmm1 + xorps %xmm0,%xmm2 + xorps %xmm0,%xmm3 + pxor %xmm0,%xmm4 + pxor %xmm0,%xmm5 + pxor %xmm0,%xmm6 + leaq 32(%rcx,%rax,1),%rcx + negq %rax +.byte 102,15,56,222,209 + pxor %xmm0,%xmm7 + pxor %xmm0,%xmm8 +.byte 102,15,56,222,217 + pxor %xmm0,%xmm9 + movups (%rcx,%rax,1),%xmm0 + addq $16,%rax + jmp .Ldec_loop8_inner +.align 16 +.Ldec_loop8: +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.Ldec_loop8_inner: +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 +.byte 102,15,56,222,241 +.byte 102,15,56,222,249 +.byte 102,68,15,56,222,193 +.byte 102,68,15,56,222,201 +.Ldec_loop8_enter: + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 +.byte 102,15,56,222,240 +.byte 102,15,56,222,248 +.byte 102,68,15,56,222,192 +.byte 102,68,15,56,222,200 + movups -16(%rcx,%rax,1),%xmm0 + jnz .Ldec_loop8 + +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 +.byte 102,15,56,222,241 +.byte 102,15,56,222,249 +.byte 102,68,15,56,222,193 +.byte 102,68,15,56,222,201 +.byte 102,15,56,223,208 +.byte 102,15,56,223,216 +.byte 102,15,56,223,224 +.byte 102,15,56,223,232 +.byte 102,15,56,223,240 +.byte 102,15,56,223,248 +.byte 102,68,15,56,223,192 +.byte 102,68,15,56,223,200 + .byte 0xf3,0xc3 +.cfi_endproc +.size _aesni_decrypt8,.-_aesni_decrypt8 +.globl aesni_ecb_encrypt +.type aesni_ecb_encrypt,@function +.align 16 +aesni_ecb_encrypt: +.cfi_startproc + andq $-16,%rdx + jz .Lecb_ret + + movl 240(%rcx),%eax + movups (%rcx),%xmm0 + movq %rcx,%r11 + movl %eax,%r10d + testl %r8d,%r8d + jz .Lecb_decrypt + + cmpq $0x80,%rdx + jb .Lecb_enc_tail + + movdqu (%rdi),%xmm2 + movdqu 16(%rdi),%xmm3 + movdqu 32(%rdi),%xmm4 + movdqu 48(%rdi),%xmm5 + movdqu 64(%rdi),%xmm6 + movdqu 80(%rdi),%xmm7 + movdqu 96(%rdi),%xmm8 + movdqu 112(%rdi),%xmm9 + leaq 128(%rdi),%rdi + subq $0x80,%rdx + jmp .Lecb_enc_loop8_enter +.align 16 +.Lecb_enc_loop8: + movups %xmm2,(%rsi) + movq %r11,%rcx + movdqu (%rdi),%xmm2 + movl %r10d,%eax + movups %xmm3,16(%rsi) + movdqu 16(%rdi),%xmm3 + movups %xmm4,32(%rsi) + movdqu 32(%rdi),%xmm4 + movups %xmm5,48(%rsi) + movdqu 48(%rdi),%xmm5 + movups %xmm6,64(%rsi) + movdqu 64(%rdi),%xmm6 + movups %xmm7,80(%rsi) + movdqu 80(%rdi),%xmm7 + movups %xmm8,96(%rsi) + movdqu 96(%rdi),%xmm8 + movups %xmm9,112(%rsi) + leaq 128(%rsi),%rsi + movdqu 112(%rdi),%xmm9 + leaq 128(%rdi),%rdi +.Lecb_enc_loop8_enter: + + call _aesni_encrypt8 + + subq $0x80,%rdx + jnc .Lecb_enc_loop8 + + movups %xmm2,(%rsi) + movq %r11,%rcx + movups %xmm3,16(%rsi) + movl %r10d,%eax + movups %xmm4,32(%rsi) + movups %xmm5,48(%rsi) + movups %xmm6,64(%rsi) + movups %xmm7,80(%rsi) + movups %xmm8,96(%rsi) + movups %xmm9,112(%rsi) + leaq 128(%rsi),%rsi + addq $0x80,%rdx + jz .Lecb_ret + +.Lecb_enc_tail: + movups (%rdi),%xmm2 + cmpq $0x20,%rdx + jb .Lecb_enc_one + movups 16(%rdi),%xmm3 + je .Lecb_enc_two + movups 32(%rdi),%xmm4 + cmpq $0x40,%rdx + jb .Lecb_enc_three + movups 48(%rdi),%xmm5 + je .Lecb_enc_four + movups 64(%rdi),%xmm6 + cmpq $0x60,%rdx + jb .Lecb_enc_five + movups 80(%rdi),%xmm7 + je .Lecb_enc_six + movdqu 96(%rdi),%xmm8 + xorps %xmm9,%xmm9 + call _aesni_encrypt8 + movups %xmm2,(%rsi) + movups %xmm3,16(%rsi) + movups %xmm4,32(%rsi) + movups %xmm5,48(%rsi) + movups %xmm6,64(%rsi) + movups %xmm7,80(%rsi) + movups %xmm8,96(%rsi) + jmp .Lecb_ret +.align 16 +.Lecb_enc_one: + movups (%rcx),%xmm0 + movups 16(%rcx),%xmm1 + leaq 32(%rcx),%rcx + xorps %xmm0,%xmm2 +.Loop_enc1_3: +.byte 102,15,56,220,209 + decl %eax + movups (%rcx),%xmm1 + leaq 16(%rcx),%rcx + jnz .Loop_enc1_3 +.byte 102,15,56,221,209 + movups %xmm2,(%rsi) + jmp .Lecb_ret +.align 16 +.Lecb_enc_two: + call _aesni_encrypt2 + movups %xmm2,(%rsi) + movups %xmm3,16(%rsi) + jmp .Lecb_ret +.align 16 +.Lecb_enc_three: + call _aesni_encrypt3 + movups %xmm2,(%rsi) + movups %xmm3,16(%rsi) + movups %xmm4,32(%rsi) + jmp .Lecb_ret +.align 16 +.Lecb_enc_four: + call _aesni_encrypt4 + movups %xmm2,(%rsi) + movups %xmm3,16(%rsi) + movups %xmm4,32(%rsi) + movups %xmm5,48(%rsi) + jmp .Lecb_ret +.align 16 +.Lecb_enc_five: + xorps %xmm7,%xmm7 + call _aesni_encrypt6 + movups %xmm2,(%rsi) + movups %xmm3,16(%rsi) + movups %xmm4,32(%rsi) + movups %xmm5,48(%rsi) + movups %xmm6,64(%rsi) + jmp .Lecb_ret +.align 16 +.Lecb_enc_six: + call _aesni_encrypt6 + movups %xmm2,(%rsi) + movups %xmm3,16(%rsi) + movups %xmm4,32(%rsi) + movups %xmm5,48(%rsi) + movups %xmm6,64(%rsi) + movups %xmm7,80(%rsi) + jmp .Lecb_ret + +.align 16 +.Lecb_decrypt: + cmpq $0x80,%rdx + jb .Lecb_dec_tail + + movdqu (%rdi),%xmm2 + movdqu 16(%rdi),%xmm3 + movdqu 32(%rdi),%xmm4 + movdqu 48(%rdi),%xmm5 + movdqu 64(%rdi),%xmm6 + movdqu 80(%rdi),%xmm7 + movdqu 96(%rdi),%xmm8 + movdqu 112(%rdi),%xmm9 + leaq 128(%rdi),%rdi + subq $0x80,%rdx + jmp .Lecb_dec_loop8_enter +.align 16 +.Lecb_dec_loop8: + movups %xmm2,(%rsi) + movq %r11,%rcx + movdqu (%rdi),%xmm2 + movl %r10d,%eax + movups %xmm3,16(%rsi) + movdqu 16(%rdi),%xmm3 + movups %xmm4,32(%rsi) + movdqu 32(%rdi),%xmm4 + movups %xmm5,48(%rsi) + movdqu 48(%rdi),%xmm5 + movups %xmm6,64(%rsi) + movdqu 64(%rdi),%xmm6 + movups %xmm7,80(%rsi) + movdqu 80(%rdi),%xmm7 + movups %xmm8,96(%rsi) + movdqu 96(%rdi),%xmm8 + movups %xmm9,112(%rsi) + leaq 128(%rsi),%rsi + movdqu 112(%rdi),%xmm9 + leaq 128(%rdi),%rdi +.Lecb_dec_loop8_enter: + + call _aesni_decrypt8 + + movups (%r11),%xmm0 + subq $0x80,%rdx + jnc .Lecb_dec_loop8 + + movups %xmm2,(%rsi) + pxor %xmm2,%xmm2 + movq %r11,%rcx + movups %xmm3,16(%rsi) + pxor %xmm3,%xmm3 + movl %r10d,%eax + movups %xmm4,32(%rsi) + pxor %xmm4,%xmm4 + movups %xmm5,48(%rsi) + pxor %xmm5,%xmm5 + movups %xmm6,64(%rsi) + pxor %xmm6,%xmm6 + movups %xmm7,80(%rsi) + pxor %xmm7,%xmm7 + movups %xmm8,96(%rsi) + pxor %xmm8,%xmm8 + movups %xmm9,112(%rsi) + pxor %xmm9,%xmm9 + leaq 128(%rsi),%rsi + addq $0x80,%rdx + jz .Lecb_ret + +.Lecb_dec_tail: + movups (%rdi),%xmm2 + cmpq $0x20,%rdx + jb .Lecb_dec_one + movups 16(%rdi),%xmm3 + je .Lecb_dec_two + movups 32(%rdi),%xmm4 + cmpq $0x40,%rdx + jb .Lecb_dec_three + movups 48(%rdi),%xmm5 + je .Lecb_dec_four + movups 64(%rdi),%xmm6 + cmpq $0x60,%rdx + jb .Lecb_dec_five + movups 80(%rdi),%xmm7 + je .Lecb_dec_six + movups 96(%rdi),%xmm8 + movups (%rcx),%xmm0 + xorps %xmm9,%xmm9 + call _aesni_decrypt8 + movups %xmm2,(%rsi) + pxor %xmm2,%xmm2 + movups %xmm3,16(%rsi) + pxor %xmm3,%xmm3 + movups %xmm4,32(%rsi) + pxor %xmm4,%xmm4 + movups %xmm5,48(%rsi) + pxor %xmm5,%xmm5 + movups %xmm6,64(%rsi) + pxor %xmm6,%xmm6 + movups %xmm7,80(%rsi) + pxor %xmm7,%xmm7 + movups %xmm8,96(%rsi) + pxor %xmm8,%xmm8 + pxor %xmm9,%xmm9 + jmp .Lecb_ret +.align 16 +.Lecb_dec_one: + movups (%rcx),%xmm0 + movups 16(%rcx),%xmm1 + leaq 32(%rcx),%rcx + xorps %xmm0,%xmm2 +.Loop_dec1_4: +.byte 102,15,56,222,209 + decl %eax + movups (%rcx),%xmm1 + leaq 16(%rcx),%rcx + jnz .Loop_dec1_4 +.byte 102,15,56,223,209 + movups %xmm2,(%rsi) + pxor %xmm2,%xmm2 + jmp .Lecb_ret +.align 16 +.Lecb_dec_two: + call _aesni_decrypt2 + movups %xmm2,(%rsi) + pxor %xmm2,%xmm2 + movups %xmm3,16(%rsi) + pxor %xmm3,%xmm3 + jmp .Lecb_ret +.align 16 +.Lecb_dec_three: + call _aesni_decrypt3 + movups %xmm2,(%rsi) + pxor %xmm2,%xmm2 + movups %xmm3,16(%rsi) + pxor %xmm3,%xmm3 + movups %xmm4,32(%rsi) + pxor %xmm4,%xmm4 + jmp .Lecb_ret +.align 16 +.Lecb_dec_four: + call _aesni_decrypt4 + movups %xmm2,(%rsi) + pxor %xmm2,%xmm2 + movups %xmm3,16(%rsi) + pxor %xmm3,%xmm3 + movups %xmm4,32(%rsi) + pxor %xmm4,%xmm4 + movups %xmm5,48(%rsi) + pxor %xmm5,%xmm5 + jmp .Lecb_ret +.align 16 +.Lecb_dec_five: + xorps %xmm7,%xmm7 + call _aesni_decrypt6 + movups %xmm2,(%rsi) + pxor %xmm2,%xmm2 + movups %xmm3,16(%rsi) + pxor %xmm3,%xmm3 + movups %xmm4,32(%rsi) + pxor %xmm4,%xmm4 + movups %xmm5,48(%rsi) + pxor %xmm5,%xmm5 + movups %xmm6,64(%rsi) + pxor %xmm6,%xmm6 + pxor %xmm7,%xmm7 + jmp .Lecb_ret +.align 16 +.Lecb_dec_six: + call _aesni_decrypt6 + movups %xmm2,(%rsi) + pxor %xmm2,%xmm2 + movups %xmm3,16(%rsi) + pxor %xmm3,%xmm3 + movups %xmm4,32(%rsi) + pxor %xmm4,%xmm4 + movups %xmm5,48(%rsi) + pxor %xmm5,%xmm5 + movups %xmm6,64(%rsi) + pxor %xmm6,%xmm6 + movups %xmm7,80(%rsi) + pxor %xmm7,%xmm7 + +.Lecb_ret: + xorps %xmm0,%xmm0 + pxor %xmm1,%xmm1 + .byte 0xf3,0xc3 +.cfi_endproc +.size aesni_ecb_encrypt,.-aesni_ecb_encrypt +.globl aesni_ccm64_encrypt_blocks +.type aesni_ccm64_encrypt_blocks,@function +.align 16 +aesni_ccm64_encrypt_blocks: +.cfi_startproc + movl 240(%rcx),%eax + movdqu (%r8),%xmm6 + movdqa .Lincrement64(%rip),%xmm9 + movdqa .Lbswap_mask(%rip),%xmm7 + + shll $4,%eax + movl $16,%r10d + leaq 0(%rcx),%r11 + movdqu (%r9),%xmm3 + movdqa %xmm6,%xmm2 + leaq 32(%rcx,%rax,1),%rcx +.byte 102,15,56,0,247 + subq %rax,%r10 + jmp .Lccm64_enc_outer +.align 16 +.Lccm64_enc_outer: + movups (%r11),%xmm0 + movq %r10,%rax + movups (%rdi),%xmm8 + + xorps %xmm0,%xmm2 + movups 16(%r11),%xmm1 + xorps %xmm8,%xmm0 + xorps %xmm0,%xmm3 + movups 32(%r11),%xmm0 + +.Lccm64_enc2_loop: +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 + movups -16(%rcx,%rax,1),%xmm0 + jnz .Lccm64_enc2_loop +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 + paddq %xmm9,%xmm6 + decq %rdx +.byte 102,15,56,221,208 +.byte 102,15,56,221,216 + + leaq 16(%rdi),%rdi + xorps %xmm2,%xmm8 + movdqa %xmm6,%xmm2 + movups %xmm8,(%rsi) +.byte 102,15,56,0,215 + leaq 16(%rsi),%rsi + jnz .Lccm64_enc_outer + + pxor %xmm0,%xmm0 + pxor %xmm1,%xmm1 + pxor %xmm2,%xmm2 + movups %xmm3,(%r9) + pxor %xmm3,%xmm3 + pxor %xmm8,%xmm8 + pxor %xmm6,%xmm6 + .byte 0xf3,0xc3 +.cfi_endproc +.size aesni_ccm64_encrypt_blocks,.-aesni_ccm64_encrypt_blocks +.globl aesni_ccm64_decrypt_blocks +.type aesni_ccm64_decrypt_blocks,@function +.align 16 +aesni_ccm64_decrypt_blocks: +.cfi_startproc + movl 240(%rcx),%eax + movups (%r8),%xmm6 + movdqu (%r9),%xmm3 + movdqa .Lincrement64(%rip),%xmm9 + movdqa .Lbswap_mask(%rip),%xmm7 + + movaps %xmm6,%xmm2 + movl %eax,%r10d + movq %rcx,%r11 +.byte 102,15,56,0,247 + movups (%rcx),%xmm0 + movups 16(%rcx),%xmm1 + leaq 32(%rcx),%rcx + xorps %xmm0,%xmm2 +.Loop_enc1_5: +.byte 102,15,56,220,209 + decl %eax + movups (%rcx),%xmm1 + leaq 16(%rcx),%rcx + jnz .Loop_enc1_5 +.byte 102,15,56,221,209 + shll $4,%r10d + movl $16,%eax + movups (%rdi),%xmm8 + paddq %xmm9,%xmm6 + leaq 16(%rdi),%rdi + subq %r10,%rax + leaq 32(%r11,%r10,1),%rcx + movq %rax,%r10 + jmp .Lccm64_dec_outer +.align 16 +.Lccm64_dec_outer: + xorps %xmm2,%xmm8 + movdqa %xmm6,%xmm2 + movups %xmm8,(%rsi) + leaq 16(%rsi),%rsi +.byte 102,15,56,0,215 + + subq $1,%rdx + jz .Lccm64_dec_break + + movups (%r11),%xmm0 + movq %r10,%rax + movups 16(%r11),%xmm1 + xorps %xmm0,%xmm8 + xorps %xmm0,%xmm2 + xorps %xmm8,%xmm3 + movups 32(%r11),%xmm0 + jmp .Lccm64_dec2_loop +.align 16 +.Lccm64_dec2_loop: +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 + movups -16(%rcx,%rax,1),%xmm0 + jnz .Lccm64_dec2_loop + movups (%rdi),%xmm8 + paddq %xmm9,%xmm6 +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,221,208 +.byte 102,15,56,221,216 + leaq 16(%rdi),%rdi + jmp .Lccm64_dec_outer + +.align 16 +.Lccm64_dec_break: + + movl 240(%r11),%eax + movups (%r11),%xmm0 + movups 16(%r11),%xmm1 + xorps %xmm0,%xmm8 + leaq 32(%r11),%r11 + xorps %xmm8,%xmm3 +.Loop_enc1_6: +.byte 102,15,56,220,217 + decl %eax + movups (%r11),%xmm1 + leaq 16(%r11),%r11 + jnz .Loop_enc1_6 +.byte 102,15,56,221,217 + pxor %xmm0,%xmm0 + pxor %xmm1,%xmm1 + pxor %xmm2,%xmm2 + movups %xmm3,(%r9) + pxor %xmm3,%xmm3 + pxor %xmm8,%xmm8 + pxor %xmm6,%xmm6 + .byte 0xf3,0xc3 +.cfi_endproc +.size aesni_ccm64_decrypt_blocks,.-aesni_ccm64_decrypt_blocks +.globl aesni_ctr32_encrypt_blocks +.type aesni_ctr32_encrypt_blocks,@function +.align 16 +aesni_ctr32_encrypt_blocks: +.cfi_startproc + cmpq $1,%rdx + jne .Lctr32_bulk + + + + movups (%r8),%xmm2 + movups (%rdi),%xmm3 + movl 240(%rcx),%edx + movups (%rcx),%xmm0 + movups 16(%rcx),%xmm1 + leaq 32(%rcx),%rcx + xorps %xmm0,%xmm2 +.Loop_enc1_7: +.byte 102,15,56,220,209 + decl %edx + movups (%rcx),%xmm1 + leaq 16(%rcx),%rcx + jnz .Loop_enc1_7 +.byte 102,15,56,221,209 + pxor %xmm0,%xmm0 + pxor %xmm1,%xmm1 + xorps %xmm3,%xmm2 + pxor %xmm3,%xmm3 + movups %xmm2,(%rsi) + xorps %xmm2,%xmm2 + jmp .Lctr32_epilogue + +.align 16 +.Lctr32_bulk: + leaq (%rsp),%r11 +.cfi_def_cfa_register %r11 + pushq %rbp +.cfi_offset %rbp,-16 + subq $128,%rsp + andq $-16,%rsp + + + + + movdqu (%r8),%xmm2 + movdqu (%rcx),%xmm0 + movl 12(%r8),%r8d + pxor %xmm0,%xmm2 + movl 12(%rcx),%ebp + movdqa %xmm2,0(%rsp) + bswapl %r8d + movdqa %xmm2,%xmm3 + movdqa %xmm2,%xmm4 + movdqa %xmm2,%xmm5 + movdqa %xmm2,64(%rsp) + movdqa %xmm2,80(%rsp) + movdqa %xmm2,96(%rsp) + movq %rdx,%r10 + movdqa %xmm2,112(%rsp) + + leaq 1(%r8),%rax + leaq 2(%r8),%rdx + bswapl %eax + bswapl %edx + xorl %ebp,%eax + xorl %ebp,%edx +.byte 102,15,58,34,216,3 + leaq 3(%r8),%rax + movdqa %xmm3,16(%rsp) +.byte 102,15,58,34,226,3 + bswapl %eax + movq %r10,%rdx + leaq 4(%r8),%r10 + movdqa %xmm4,32(%rsp) + xorl %ebp,%eax + bswapl %r10d +.byte 102,15,58,34,232,3 + xorl %ebp,%r10d + movdqa %xmm5,48(%rsp) + leaq 5(%r8),%r9 + movl %r10d,64+12(%rsp) + bswapl %r9d + leaq 6(%r8),%r10 + movl 240(%rcx),%eax + xorl %ebp,%r9d + bswapl %r10d + movl %r9d,80+12(%rsp) + xorl %ebp,%r10d + leaq 7(%r8),%r9 + movl %r10d,96+12(%rsp) + bswapl %r9d + movl OPENSSL_ia32cap_P+4(%rip),%r10d + xorl %ebp,%r9d + andl $71303168,%r10d + movl %r9d,112+12(%rsp) + + movups 16(%rcx),%xmm1 + + movdqa 64(%rsp),%xmm6 + movdqa 80(%rsp),%xmm7 + + cmpq $8,%rdx + jb .Lctr32_tail + + subq $6,%rdx + cmpl $4194304,%r10d + je .Lctr32_6x + + leaq 128(%rcx),%rcx + subq $2,%rdx + jmp .Lctr32_loop8 + +.align 16 +.Lctr32_6x: + shll $4,%eax + movl $48,%r10d + bswapl %ebp + leaq 32(%rcx,%rax,1),%rcx + subq %rax,%r10 + jmp .Lctr32_loop6 + +.align 16 +.Lctr32_loop6: + addl $6,%r8d + movups -48(%rcx,%r10,1),%xmm0 +.byte 102,15,56,220,209 + movl %r8d,%eax + xorl %ebp,%eax +.byte 102,15,56,220,217 +.byte 0x0f,0x38,0xf1,0x44,0x24,12 + leal 1(%r8),%eax +.byte 102,15,56,220,225 + xorl %ebp,%eax +.byte 0x0f,0x38,0xf1,0x44,0x24,28 +.byte 102,15,56,220,233 + leal 2(%r8),%eax + xorl %ebp,%eax +.byte 102,15,56,220,241 +.byte 0x0f,0x38,0xf1,0x44,0x24,44 + leal 3(%r8),%eax +.byte 102,15,56,220,249 + movups -32(%rcx,%r10,1),%xmm1 + xorl %ebp,%eax + +.byte 102,15,56,220,208 +.byte 0x0f,0x38,0xf1,0x44,0x24,60 + leal 4(%r8),%eax +.byte 102,15,56,220,216 + xorl %ebp,%eax +.byte 0x0f,0x38,0xf1,0x44,0x24,76 +.byte 102,15,56,220,224 + leal 5(%r8),%eax + xorl %ebp,%eax +.byte 102,15,56,220,232 +.byte 0x0f,0x38,0xf1,0x44,0x24,92 + movq %r10,%rax +.byte 102,15,56,220,240 +.byte 102,15,56,220,248 + movups -16(%rcx,%r10,1),%xmm0 + + call .Lenc_loop6 + + movdqu (%rdi),%xmm8 + movdqu 16(%rdi),%xmm9 + movdqu 32(%rdi),%xmm10 + movdqu 48(%rdi),%xmm11 + movdqu 64(%rdi),%xmm12 + movdqu 80(%rdi),%xmm13 + leaq 96(%rdi),%rdi + movups -64(%rcx,%r10,1),%xmm1 + pxor %xmm2,%xmm8 + movaps 0(%rsp),%xmm2 + pxor %xmm3,%xmm9 + movaps 16(%rsp),%xmm3 + pxor %xmm4,%xmm10 + movaps 32(%rsp),%xmm4 + pxor %xmm5,%xmm11 + movaps 48(%rsp),%xmm5 + pxor %xmm6,%xmm12 + movaps 64(%rsp),%xmm6 + pxor %xmm7,%xmm13 + movaps 80(%rsp),%xmm7 + movdqu %xmm8,(%rsi) + movdqu %xmm9,16(%rsi) + movdqu %xmm10,32(%rsi) + movdqu %xmm11,48(%rsi) + movdqu %xmm12,64(%rsi) + movdqu %xmm13,80(%rsi) + leaq 96(%rsi),%rsi + + subq $6,%rdx + jnc .Lctr32_loop6 + + addq $6,%rdx + jz .Lctr32_done + + leal -48(%r10),%eax + leaq -80(%rcx,%r10,1),%rcx + negl %eax + shrl $4,%eax + jmp .Lctr32_tail + +.align 32 +.Lctr32_loop8: + addl $8,%r8d + movdqa 96(%rsp),%xmm8 +.byte 102,15,56,220,209 + movl %r8d,%r9d + movdqa 112(%rsp),%xmm9 +.byte 102,15,56,220,217 + bswapl %r9d + movups 32-128(%rcx),%xmm0 +.byte 102,15,56,220,225 + xorl %ebp,%r9d + nop +.byte 102,15,56,220,233 + movl %r9d,0+12(%rsp) + leaq 1(%r8),%r9 +.byte 102,15,56,220,241 +.byte 102,15,56,220,249 +.byte 102,68,15,56,220,193 +.byte 102,68,15,56,220,201 + movups 48-128(%rcx),%xmm1 + bswapl %r9d +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 + xorl %ebp,%r9d +.byte 0x66,0x90 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 + movl %r9d,16+12(%rsp) + leaq 2(%r8),%r9 +.byte 102,15,56,220,240 +.byte 102,15,56,220,248 +.byte 102,68,15,56,220,192 +.byte 102,68,15,56,220,200 + movups 64-128(%rcx),%xmm0 + bswapl %r9d +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 + xorl %ebp,%r9d +.byte 0x66,0x90 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 + movl %r9d,32+12(%rsp) + leaq 3(%r8),%r9 +.byte 102,15,56,220,241 +.byte 102,15,56,220,249 +.byte 102,68,15,56,220,193 +.byte 102,68,15,56,220,201 + movups 80-128(%rcx),%xmm1 + bswapl %r9d +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 + xorl %ebp,%r9d +.byte 0x66,0x90 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 + movl %r9d,48+12(%rsp) + leaq 4(%r8),%r9 +.byte 102,15,56,220,240 +.byte 102,15,56,220,248 +.byte 102,68,15,56,220,192 +.byte 102,68,15,56,220,200 + movups 96-128(%rcx),%xmm0 + bswapl %r9d +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 + xorl %ebp,%r9d +.byte 0x66,0x90 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 + movl %r9d,64+12(%rsp) + leaq 5(%r8),%r9 +.byte 102,15,56,220,241 +.byte 102,15,56,220,249 +.byte 102,68,15,56,220,193 +.byte 102,68,15,56,220,201 + movups 112-128(%rcx),%xmm1 + bswapl %r9d +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 + xorl %ebp,%r9d +.byte 0x66,0x90 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 + movl %r9d,80+12(%rsp) + leaq 6(%r8),%r9 +.byte 102,15,56,220,240 +.byte 102,15,56,220,248 +.byte 102,68,15,56,220,192 +.byte 102,68,15,56,220,200 + movups 128-128(%rcx),%xmm0 + bswapl %r9d +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 + xorl %ebp,%r9d +.byte 0x66,0x90 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 + movl %r9d,96+12(%rsp) + leaq 7(%r8),%r9 +.byte 102,15,56,220,241 +.byte 102,15,56,220,249 +.byte 102,68,15,56,220,193 +.byte 102,68,15,56,220,201 + movups 144-128(%rcx),%xmm1 + bswapl %r9d +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 + xorl %ebp,%r9d + movdqu 0(%rdi),%xmm10 +.byte 102,15,56,220,232 + movl %r9d,112+12(%rsp) + cmpl $11,%eax +.byte 102,15,56,220,240 +.byte 102,15,56,220,248 +.byte 102,68,15,56,220,192 +.byte 102,68,15,56,220,200 + movups 160-128(%rcx),%xmm0 + + jb .Lctr32_enc_done + +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 +.byte 102,15,56,220,241 +.byte 102,15,56,220,249 +.byte 102,68,15,56,220,193 +.byte 102,68,15,56,220,201 + movups 176-128(%rcx),%xmm1 + +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 +.byte 102,15,56,220,240 +.byte 102,15,56,220,248 +.byte 102,68,15,56,220,192 +.byte 102,68,15,56,220,200 + movups 192-128(%rcx),%xmm0 + je .Lctr32_enc_done + +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 +.byte 102,15,56,220,241 +.byte 102,15,56,220,249 +.byte 102,68,15,56,220,193 +.byte 102,68,15,56,220,201 + movups 208-128(%rcx),%xmm1 + +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 +.byte 102,15,56,220,240 +.byte 102,15,56,220,248 +.byte 102,68,15,56,220,192 +.byte 102,68,15,56,220,200 + movups 224-128(%rcx),%xmm0 + jmp .Lctr32_enc_done + +.align 16 +.Lctr32_enc_done: + movdqu 16(%rdi),%xmm11 + pxor %xmm0,%xmm10 + movdqu 32(%rdi),%xmm12 + pxor %xmm0,%xmm11 + movdqu 48(%rdi),%xmm13 + pxor %xmm0,%xmm12 + movdqu 64(%rdi),%xmm14 + pxor %xmm0,%xmm13 + movdqu 80(%rdi),%xmm15 + pxor %xmm0,%xmm14 + pxor %xmm0,%xmm15 +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 +.byte 102,15,56,220,241 +.byte 102,15,56,220,249 +.byte 102,68,15,56,220,193 +.byte 102,68,15,56,220,201 + movdqu 96(%rdi),%xmm1 + leaq 128(%rdi),%rdi + +.byte 102,65,15,56,221,210 + pxor %xmm0,%xmm1 + movdqu 112-128(%rdi),%xmm10 +.byte 102,65,15,56,221,219 + pxor %xmm0,%xmm10 + movdqa 0(%rsp),%xmm11 +.byte 102,65,15,56,221,228 +.byte 102,65,15,56,221,237 + movdqa 16(%rsp),%xmm12 + movdqa 32(%rsp),%xmm13 +.byte 102,65,15,56,221,246 +.byte 102,65,15,56,221,255 + movdqa 48(%rsp),%xmm14 + movdqa 64(%rsp),%xmm15 +.byte 102,68,15,56,221,193 + movdqa 80(%rsp),%xmm0 + movups 16-128(%rcx),%xmm1 +.byte 102,69,15,56,221,202 + + movups %xmm2,(%rsi) + movdqa %xmm11,%xmm2 + movups %xmm3,16(%rsi) + movdqa %xmm12,%xmm3 + movups %xmm4,32(%rsi) + movdqa %xmm13,%xmm4 + movups %xmm5,48(%rsi) + movdqa %xmm14,%xmm5 + movups %xmm6,64(%rsi) + movdqa %xmm15,%xmm6 + movups %xmm7,80(%rsi) + movdqa %xmm0,%xmm7 + movups %xmm8,96(%rsi) + movups %xmm9,112(%rsi) + leaq 128(%rsi),%rsi + + subq $8,%rdx + jnc .Lctr32_loop8 + + addq $8,%rdx + jz .Lctr32_done + leaq -128(%rcx),%rcx + +.Lctr32_tail: + + + leaq 16(%rcx),%rcx + cmpq $4,%rdx + jb .Lctr32_loop3 + je .Lctr32_loop4 + + + shll $4,%eax + movdqa 96(%rsp),%xmm8 + pxor %xmm9,%xmm9 + + movups 16(%rcx),%xmm0 +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 + leaq 32-16(%rcx,%rax,1),%rcx + negq %rax +.byte 102,15,56,220,225 + addq $16,%rax + movups (%rdi),%xmm10 +.byte 102,15,56,220,233 +.byte 102,15,56,220,241 + movups 16(%rdi),%xmm11 + movups 32(%rdi),%xmm12 +.byte 102,15,56,220,249 +.byte 102,68,15,56,220,193 + + call .Lenc_loop8_enter + + movdqu 48(%rdi),%xmm13 + pxor %xmm10,%xmm2 + movdqu 64(%rdi),%xmm10 + pxor %xmm11,%xmm3 + movdqu %xmm2,(%rsi) + pxor %xmm12,%xmm4 + movdqu %xmm3,16(%rsi) + pxor %xmm13,%xmm5 + movdqu %xmm4,32(%rsi) + pxor %xmm10,%xmm6 + movdqu %xmm5,48(%rsi) + movdqu %xmm6,64(%rsi) + cmpq $6,%rdx + jb .Lctr32_done + + movups 80(%rdi),%xmm11 + xorps %xmm11,%xmm7 + movups %xmm7,80(%rsi) + je .Lctr32_done + + movups 96(%rdi),%xmm12 + xorps %xmm12,%xmm8 + movups %xmm8,96(%rsi) + jmp .Lctr32_done + +.align 32 +.Lctr32_loop4: +.byte 102,15,56,220,209 + leaq 16(%rcx),%rcx + decl %eax +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 + movups (%rcx),%xmm1 + jnz .Lctr32_loop4 +.byte 102,15,56,221,209 +.byte 102,15,56,221,217 + movups (%rdi),%xmm10 + movups 16(%rdi),%xmm11 +.byte 102,15,56,221,225 +.byte 102,15,56,221,233 + movups 32(%rdi),%xmm12 + movups 48(%rdi),%xmm13 + + xorps %xmm10,%xmm2 + movups %xmm2,(%rsi) + xorps %xmm11,%xmm3 + movups %xmm3,16(%rsi) + pxor %xmm12,%xmm4 + movdqu %xmm4,32(%rsi) + pxor %xmm13,%xmm5 + movdqu %xmm5,48(%rsi) + jmp .Lctr32_done + +.align 32 +.Lctr32_loop3: +.byte 102,15,56,220,209 + leaq 16(%rcx),%rcx + decl %eax +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 + movups (%rcx),%xmm1 + jnz .Lctr32_loop3 +.byte 102,15,56,221,209 +.byte 102,15,56,221,217 +.byte 102,15,56,221,225 + + movups (%rdi),%xmm10 + xorps %xmm10,%xmm2 + movups %xmm2,(%rsi) + cmpq $2,%rdx + jb .Lctr32_done + + movups 16(%rdi),%xmm11 + xorps %xmm11,%xmm3 + movups %xmm3,16(%rsi) + je .Lctr32_done + + movups 32(%rdi),%xmm12 + xorps %xmm12,%xmm4 + movups %xmm4,32(%rsi) + +.Lctr32_done: + xorps %xmm0,%xmm0 + xorl %ebp,%ebp + pxor %xmm1,%xmm1 + pxor %xmm2,%xmm2 + pxor %xmm3,%xmm3 + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + pxor %xmm6,%xmm6 + pxor %xmm7,%xmm7 + movaps %xmm0,0(%rsp) + pxor %xmm8,%xmm8 + movaps %xmm0,16(%rsp) + pxor %xmm9,%xmm9 + movaps %xmm0,32(%rsp) + pxor %xmm10,%xmm10 + movaps %xmm0,48(%rsp) + pxor %xmm11,%xmm11 + movaps %xmm0,64(%rsp) + pxor %xmm12,%xmm12 + movaps %xmm0,80(%rsp) + pxor %xmm13,%xmm13 + movaps %xmm0,96(%rsp) + pxor %xmm14,%xmm14 + movaps %xmm0,112(%rsp) + pxor %xmm15,%xmm15 + movq -8(%r11),%rbp +.cfi_restore %rbp + leaq (%r11),%rsp +.cfi_def_cfa_register %rsp +.Lctr32_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size aesni_ctr32_encrypt_blocks,.-aesni_ctr32_encrypt_blocks +.globl aesni_xts_encrypt +.type aesni_xts_encrypt,@function +.align 16 +aesni_xts_encrypt: +.cfi_startproc + leaq (%rsp),%r11 +.cfi_def_cfa_register %r11 + pushq %rbp +.cfi_offset %rbp,-16 + subq $112,%rsp + andq $-16,%rsp + movups (%r9),%xmm2 + movl 240(%r8),%eax + movl 240(%rcx),%r10d + movups (%r8),%xmm0 + movups 16(%r8),%xmm1 + leaq 32(%r8),%r8 + xorps %xmm0,%xmm2 +.Loop_enc1_8: +.byte 102,15,56,220,209 + decl %eax + movups (%r8),%xmm1 + leaq 16(%r8),%r8 + jnz .Loop_enc1_8 +.byte 102,15,56,221,209 + movups (%rcx),%xmm0 + movq %rcx,%rbp + movl %r10d,%eax + shll $4,%r10d + movq %rdx,%r9 + andq $-16,%rdx + + movups 16(%rcx,%r10,1),%xmm1 + + movdqa .Lxts_magic(%rip),%xmm8 + movdqa %xmm2,%xmm15 + pshufd $0x5f,%xmm2,%xmm9 + pxor %xmm0,%xmm1 + movdqa %xmm9,%xmm14 + paddd %xmm9,%xmm9 + movdqa %xmm15,%xmm10 + psrad $31,%xmm14 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm14 + pxor %xmm0,%xmm10 + pxor %xmm14,%xmm15 + movdqa %xmm9,%xmm14 + paddd %xmm9,%xmm9 + movdqa %xmm15,%xmm11 + psrad $31,%xmm14 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm14 + pxor %xmm0,%xmm11 + pxor %xmm14,%xmm15 + movdqa %xmm9,%xmm14 + paddd %xmm9,%xmm9 + movdqa %xmm15,%xmm12 + psrad $31,%xmm14 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm14 + pxor %xmm0,%xmm12 + pxor %xmm14,%xmm15 + movdqa %xmm9,%xmm14 + paddd %xmm9,%xmm9 + movdqa %xmm15,%xmm13 + psrad $31,%xmm14 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm14 + pxor %xmm0,%xmm13 + pxor %xmm14,%xmm15 + movdqa %xmm15,%xmm14 + psrad $31,%xmm9 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm9 + pxor %xmm0,%xmm14 + pxor %xmm9,%xmm15 + movaps %xmm1,96(%rsp) + + subq $96,%rdx + jc .Lxts_enc_short + + movl $16+96,%eax + leaq 32(%rbp,%r10,1),%rcx + subq %r10,%rax + movups 16(%rbp),%xmm1 + movq %rax,%r10 + leaq .Lxts_magic(%rip),%r8 + jmp .Lxts_enc_grandloop + +.align 32 +.Lxts_enc_grandloop: + movdqu 0(%rdi),%xmm2 + movdqa %xmm0,%xmm8 + movdqu 16(%rdi),%xmm3 + pxor %xmm10,%xmm2 + movdqu 32(%rdi),%xmm4 + pxor %xmm11,%xmm3 +.byte 102,15,56,220,209 + movdqu 48(%rdi),%xmm5 + pxor %xmm12,%xmm4 +.byte 102,15,56,220,217 + movdqu 64(%rdi),%xmm6 + pxor %xmm13,%xmm5 +.byte 102,15,56,220,225 + movdqu 80(%rdi),%xmm7 + pxor %xmm15,%xmm8 + movdqa 96(%rsp),%xmm9 + pxor %xmm14,%xmm6 +.byte 102,15,56,220,233 + movups 32(%rbp),%xmm0 + leaq 96(%rdi),%rdi + pxor %xmm8,%xmm7 + + pxor %xmm9,%xmm10 +.byte 102,15,56,220,241 + pxor %xmm9,%xmm11 + movdqa %xmm10,0(%rsp) +.byte 102,15,56,220,249 + movups 48(%rbp),%xmm1 + pxor %xmm9,%xmm12 + +.byte 102,15,56,220,208 + pxor %xmm9,%xmm13 + movdqa %xmm11,16(%rsp) +.byte 102,15,56,220,216 + pxor %xmm9,%xmm14 + movdqa %xmm12,32(%rsp) +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 + pxor %xmm9,%xmm8 + movdqa %xmm14,64(%rsp) +.byte 102,15,56,220,240 +.byte 102,15,56,220,248 + movups 64(%rbp),%xmm0 + movdqa %xmm8,80(%rsp) + pshufd $0x5f,%xmm15,%xmm9 + jmp .Lxts_enc_loop6 +.align 32 +.Lxts_enc_loop6: +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 +.byte 102,15,56,220,241 +.byte 102,15,56,220,249 + movups -64(%rcx,%rax,1),%xmm1 + addq $32,%rax + +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 +.byte 102,15,56,220,240 +.byte 102,15,56,220,248 + movups -80(%rcx,%rax,1),%xmm0 + jnz .Lxts_enc_loop6 + + movdqa (%r8),%xmm8 + movdqa %xmm9,%xmm14 + paddd %xmm9,%xmm9 +.byte 102,15,56,220,209 + paddq %xmm15,%xmm15 + psrad $31,%xmm14 +.byte 102,15,56,220,217 + pand %xmm8,%xmm14 + movups (%rbp),%xmm10 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 +.byte 102,15,56,220,241 + pxor %xmm14,%xmm15 + movaps %xmm10,%xmm11 +.byte 102,15,56,220,249 + movups -64(%rcx),%xmm1 + + movdqa %xmm9,%xmm14 +.byte 102,15,56,220,208 + paddd %xmm9,%xmm9 + pxor %xmm15,%xmm10 +.byte 102,15,56,220,216 + psrad $31,%xmm14 + paddq %xmm15,%xmm15 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 + pand %xmm8,%xmm14 + movaps %xmm11,%xmm12 +.byte 102,15,56,220,240 + pxor %xmm14,%xmm15 + movdqa %xmm9,%xmm14 +.byte 102,15,56,220,248 + movups -48(%rcx),%xmm0 + + paddd %xmm9,%xmm9 +.byte 102,15,56,220,209 + pxor %xmm15,%xmm11 + psrad $31,%xmm14 +.byte 102,15,56,220,217 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm14 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 + movdqa %xmm13,48(%rsp) + pxor %xmm14,%xmm15 +.byte 102,15,56,220,241 + movaps %xmm12,%xmm13 + movdqa %xmm9,%xmm14 +.byte 102,15,56,220,249 + movups -32(%rcx),%xmm1 + + paddd %xmm9,%xmm9 +.byte 102,15,56,220,208 + pxor %xmm15,%xmm12 + psrad $31,%xmm14 +.byte 102,15,56,220,216 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm14 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 +.byte 102,15,56,220,240 + pxor %xmm14,%xmm15 + movaps %xmm13,%xmm14 +.byte 102,15,56,220,248 + + movdqa %xmm9,%xmm0 + paddd %xmm9,%xmm9 +.byte 102,15,56,220,209 + pxor %xmm15,%xmm13 + psrad $31,%xmm0 +.byte 102,15,56,220,217 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm0 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 + pxor %xmm0,%xmm15 + movups (%rbp),%xmm0 +.byte 102,15,56,220,241 +.byte 102,15,56,220,249 + movups 16(%rbp),%xmm1 + + pxor %xmm15,%xmm14 +.byte 102,15,56,221,84,36,0 + psrad $31,%xmm9 + paddq %xmm15,%xmm15 +.byte 102,15,56,221,92,36,16 +.byte 102,15,56,221,100,36,32 + pand %xmm8,%xmm9 + movq %r10,%rax +.byte 102,15,56,221,108,36,48 +.byte 102,15,56,221,116,36,64 +.byte 102,15,56,221,124,36,80 + pxor %xmm9,%xmm15 + + leaq 96(%rsi),%rsi + movups %xmm2,-96(%rsi) + movups %xmm3,-80(%rsi) + movups %xmm4,-64(%rsi) + movups %xmm5,-48(%rsi) + movups %xmm6,-32(%rsi) + movups %xmm7,-16(%rsi) + subq $96,%rdx + jnc .Lxts_enc_grandloop + + movl $16+96,%eax + subl %r10d,%eax + movq %rbp,%rcx + shrl $4,%eax + +.Lxts_enc_short: + + movl %eax,%r10d + pxor %xmm0,%xmm10 + addq $96,%rdx + jz .Lxts_enc_done + + pxor %xmm0,%xmm11 + cmpq $0x20,%rdx + jb .Lxts_enc_one + pxor %xmm0,%xmm12 + je .Lxts_enc_two + + pxor %xmm0,%xmm13 + cmpq $0x40,%rdx + jb .Lxts_enc_three + pxor %xmm0,%xmm14 + je .Lxts_enc_four + + movdqu (%rdi),%xmm2 + movdqu 16(%rdi),%xmm3 + movdqu 32(%rdi),%xmm4 + pxor %xmm10,%xmm2 + movdqu 48(%rdi),%xmm5 + pxor %xmm11,%xmm3 + movdqu 64(%rdi),%xmm6 + leaq 80(%rdi),%rdi + pxor %xmm12,%xmm4 + pxor %xmm13,%xmm5 + pxor %xmm14,%xmm6 + pxor %xmm7,%xmm7 + + call _aesni_encrypt6 + + xorps %xmm10,%xmm2 + movdqa %xmm15,%xmm10 + xorps %xmm11,%xmm3 + xorps %xmm12,%xmm4 + movdqu %xmm2,(%rsi) + xorps %xmm13,%xmm5 + movdqu %xmm3,16(%rsi) + xorps %xmm14,%xmm6 + movdqu %xmm4,32(%rsi) + movdqu %xmm5,48(%rsi) + movdqu %xmm6,64(%rsi) + leaq 80(%rsi),%rsi + jmp .Lxts_enc_done + +.align 16 +.Lxts_enc_one: + movups (%rdi),%xmm2 + leaq 16(%rdi),%rdi + xorps %xmm10,%xmm2 + movups (%rcx),%xmm0 + movups 16(%rcx),%xmm1 + leaq 32(%rcx),%rcx + xorps %xmm0,%xmm2 +.Loop_enc1_9: +.byte 102,15,56,220,209 + decl %eax + movups (%rcx),%xmm1 + leaq 16(%rcx),%rcx + jnz .Loop_enc1_9 +.byte 102,15,56,221,209 + xorps %xmm10,%xmm2 + movdqa %xmm11,%xmm10 + movups %xmm2,(%rsi) + leaq 16(%rsi),%rsi + jmp .Lxts_enc_done + +.align 16 +.Lxts_enc_two: + movups (%rdi),%xmm2 + movups 16(%rdi),%xmm3 + leaq 32(%rdi),%rdi + xorps %xmm10,%xmm2 + xorps %xmm11,%xmm3 + + call _aesni_encrypt2 + + xorps %xmm10,%xmm2 + movdqa %xmm12,%xmm10 + xorps %xmm11,%xmm3 + movups %xmm2,(%rsi) + movups %xmm3,16(%rsi) + leaq 32(%rsi),%rsi + jmp .Lxts_enc_done + +.align 16 +.Lxts_enc_three: + movups (%rdi),%xmm2 + movups 16(%rdi),%xmm3 + movups 32(%rdi),%xmm4 + leaq 48(%rdi),%rdi + xorps %xmm10,%xmm2 + xorps %xmm11,%xmm3 + xorps %xmm12,%xmm4 + + call _aesni_encrypt3 + + xorps %xmm10,%xmm2 + movdqa %xmm13,%xmm10 + xorps %xmm11,%xmm3 + xorps %xmm12,%xmm4 + movups %xmm2,(%rsi) + movups %xmm3,16(%rsi) + movups %xmm4,32(%rsi) + leaq 48(%rsi),%rsi + jmp .Lxts_enc_done + +.align 16 +.Lxts_enc_four: + movups (%rdi),%xmm2 + movups 16(%rdi),%xmm3 + movups 32(%rdi),%xmm4 + xorps %xmm10,%xmm2 + movups 48(%rdi),%xmm5 + leaq 64(%rdi),%rdi + xorps %xmm11,%xmm3 + xorps %xmm12,%xmm4 + xorps %xmm13,%xmm5 + + call _aesni_encrypt4 + + pxor %xmm10,%xmm2 + movdqa %xmm14,%xmm10 + pxor %xmm11,%xmm3 + pxor %xmm12,%xmm4 + movdqu %xmm2,(%rsi) + pxor %xmm13,%xmm5 + movdqu %xmm3,16(%rsi) + movdqu %xmm4,32(%rsi) + movdqu %xmm5,48(%rsi) + leaq 64(%rsi),%rsi + jmp .Lxts_enc_done + +.align 16 +.Lxts_enc_done: + andq $15,%r9 + jz .Lxts_enc_ret + movq %r9,%rdx + +.Lxts_enc_steal: + movzbl (%rdi),%eax + movzbl -16(%rsi),%ecx + leaq 1(%rdi),%rdi + movb %al,-16(%rsi) + movb %cl,0(%rsi) + leaq 1(%rsi),%rsi + subq $1,%rdx + jnz .Lxts_enc_steal + + subq %r9,%rsi + movq %rbp,%rcx + movl %r10d,%eax + + movups -16(%rsi),%xmm2 + xorps %xmm10,%xmm2 + movups (%rcx),%xmm0 + movups 16(%rcx),%xmm1 + leaq 32(%rcx),%rcx + xorps %xmm0,%xmm2 +.Loop_enc1_10: +.byte 102,15,56,220,209 + decl %eax + movups (%rcx),%xmm1 + leaq 16(%rcx),%rcx + jnz .Loop_enc1_10 +.byte 102,15,56,221,209 + xorps %xmm10,%xmm2 + movups %xmm2,-16(%rsi) + +.Lxts_enc_ret: + xorps %xmm0,%xmm0 + pxor %xmm1,%xmm1 + pxor %xmm2,%xmm2 + pxor %xmm3,%xmm3 + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + pxor %xmm6,%xmm6 + pxor %xmm7,%xmm7 + movaps %xmm0,0(%rsp) + pxor %xmm8,%xmm8 + movaps %xmm0,16(%rsp) + pxor %xmm9,%xmm9 + movaps %xmm0,32(%rsp) + pxor %xmm10,%xmm10 + movaps %xmm0,48(%rsp) + pxor %xmm11,%xmm11 + movaps %xmm0,64(%rsp) + pxor %xmm12,%xmm12 + movaps %xmm0,80(%rsp) + pxor %xmm13,%xmm13 + movaps %xmm0,96(%rsp) + pxor %xmm14,%xmm14 + pxor %xmm15,%xmm15 + movq -8(%r11),%rbp +.cfi_restore %rbp + leaq (%r11),%rsp +.cfi_def_cfa_register %rsp +.Lxts_enc_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size aesni_xts_encrypt,.-aesni_xts_encrypt +.globl aesni_xts_decrypt +.type aesni_xts_decrypt,@function +.align 16 +aesni_xts_decrypt: +.cfi_startproc + leaq (%rsp),%r11 +.cfi_def_cfa_register %r11 + pushq %rbp +.cfi_offset %rbp,-16 + subq $112,%rsp + andq $-16,%rsp + movups (%r9),%xmm2 + movl 240(%r8),%eax + movl 240(%rcx),%r10d + movups (%r8),%xmm0 + movups 16(%r8),%xmm1 + leaq 32(%r8),%r8 + xorps %xmm0,%xmm2 +.Loop_enc1_11: +.byte 102,15,56,220,209 + decl %eax + movups (%r8),%xmm1 + leaq 16(%r8),%r8 + jnz .Loop_enc1_11 +.byte 102,15,56,221,209 + xorl %eax,%eax + testq $15,%rdx + setnz %al + shlq $4,%rax + subq %rax,%rdx + + movups (%rcx),%xmm0 + movq %rcx,%rbp + movl %r10d,%eax + shll $4,%r10d + movq %rdx,%r9 + andq $-16,%rdx + + movups 16(%rcx,%r10,1),%xmm1 + + movdqa .Lxts_magic(%rip),%xmm8 + movdqa %xmm2,%xmm15 + pshufd $0x5f,%xmm2,%xmm9 + pxor %xmm0,%xmm1 + movdqa %xmm9,%xmm14 + paddd %xmm9,%xmm9 + movdqa %xmm15,%xmm10 + psrad $31,%xmm14 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm14 + pxor %xmm0,%xmm10 + pxor %xmm14,%xmm15 + movdqa %xmm9,%xmm14 + paddd %xmm9,%xmm9 + movdqa %xmm15,%xmm11 + psrad $31,%xmm14 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm14 + pxor %xmm0,%xmm11 + pxor %xmm14,%xmm15 + movdqa %xmm9,%xmm14 + paddd %xmm9,%xmm9 + movdqa %xmm15,%xmm12 + psrad $31,%xmm14 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm14 + pxor %xmm0,%xmm12 + pxor %xmm14,%xmm15 + movdqa %xmm9,%xmm14 + paddd %xmm9,%xmm9 + movdqa %xmm15,%xmm13 + psrad $31,%xmm14 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm14 + pxor %xmm0,%xmm13 + pxor %xmm14,%xmm15 + movdqa %xmm15,%xmm14 + psrad $31,%xmm9 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm9 + pxor %xmm0,%xmm14 + pxor %xmm9,%xmm15 + movaps %xmm1,96(%rsp) + + subq $96,%rdx + jc .Lxts_dec_short + + movl $16+96,%eax + leaq 32(%rbp,%r10,1),%rcx + subq %r10,%rax + movups 16(%rbp),%xmm1 + movq %rax,%r10 + leaq .Lxts_magic(%rip),%r8 + jmp .Lxts_dec_grandloop + +.align 32 +.Lxts_dec_grandloop: + movdqu 0(%rdi),%xmm2 + movdqa %xmm0,%xmm8 + movdqu 16(%rdi),%xmm3 + pxor %xmm10,%xmm2 + movdqu 32(%rdi),%xmm4 + pxor %xmm11,%xmm3 +.byte 102,15,56,222,209 + movdqu 48(%rdi),%xmm5 + pxor %xmm12,%xmm4 +.byte 102,15,56,222,217 + movdqu 64(%rdi),%xmm6 + pxor %xmm13,%xmm5 +.byte 102,15,56,222,225 + movdqu 80(%rdi),%xmm7 + pxor %xmm15,%xmm8 + movdqa 96(%rsp),%xmm9 + pxor %xmm14,%xmm6 +.byte 102,15,56,222,233 + movups 32(%rbp),%xmm0 + leaq 96(%rdi),%rdi + pxor %xmm8,%xmm7 + + pxor %xmm9,%xmm10 +.byte 102,15,56,222,241 + pxor %xmm9,%xmm11 + movdqa %xmm10,0(%rsp) +.byte 102,15,56,222,249 + movups 48(%rbp),%xmm1 + pxor %xmm9,%xmm12 + +.byte 102,15,56,222,208 + pxor %xmm9,%xmm13 + movdqa %xmm11,16(%rsp) +.byte 102,15,56,222,216 + pxor %xmm9,%xmm14 + movdqa %xmm12,32(%rsp) +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 + pxor %xmm9,%xmm8 + movdqa %xmm14,64(%rsp) +.byte 102,15,56,222,240 +.byte 102,15,56,222,248 + movups 64(%rbp),%xmm0 + movdqa %xmm8,80(%rsp) + pshufd $0x5f,%xmm15,%xmm9 + jmp .Lxts_dec_loop6 +.align 32 +.Lxts_dec_loop6: +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 +.byte 102,15,56,222,241 +.byte 102,15,56,222,249 + movups -64(%rcx,%rax,1),%xmm1 + addq $32,%rax + +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 +.byte 102,15,56,222,240 +.byte 102,15,56,222,248 + movups -80(%rcx,%rax,1),%xmm0 + jnz .Lxts_dec_loop6 + + movdqa (%r8),%xmm8 + movdqa %xmm9,%xmm14 + paddd %xmm9,%xmm9 +.byte 102,15,56,222,209 + paddq %xmm15,%xmm15 + psrad $31,%xmm14 +.byte 102,15,56,222,217 + pand %xmm8,%xmm14 + movups (%rbp),%xmm10 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 +.byte 102,15,56,222,241 + pxor %xmm14,%xmm15 + movaps %xmm10,%xmm11 +.byte 102,15,56,222,249 + movups -64(%rcx),%xmm1 + + movdqa %xmm9,%xmm14 +.byte 102,15,56,222,208 + paddd %xmm9,%xmm9 + pxor %xmm15,%xmm10 +.byte 102,15,56,222,216 + psrad $31,%xmm14 + paddq %xmm15,%xmm15 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 + pand %xmm8,%xmm14 + movaps %xmm11,%xmm12 +.byte 102,15,56,222,240 + pxor %xmm14,%xmm15 + movdqa %xmm9,%xmm14 +.byte 102,15,56,222,248 + movups -48(%rcx),%xmm0 + + paddd %xmm9,%xmm9 +.byte 102,15,56,222,209 + pxor %xmm15,%xmm11 + psrad $31,%xmm14 +.byte 102,15,56,222,217 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm14 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 + movdqa %xmm13,48(%rsp) + pxor %xmm14,%xmm15 +.byte 102,15,56,222,241 + movaps %xmm12,%xmm13 + movdqa %xmm9,%xmm14 +.byte 102,15,56,222,249 + movups -32(%rcx),%xmm1 + + paddd %xmm9,%xmm9 +.byte 102,15,56,222,208 + pxor %xmm15,%xmm12 + psrad $31,%xmm14 +.byte 102,15,56,222,216 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm14 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 +.byte 102,15,56,222,240 + pxor %xmm14,%xmm15 + movaps %xmm13,%xmm14 +.byte 102,15,56,222,248 + + movdqa %xmm9,%xmm0 + paddd %xmm9,%xmm9 +.byte 102,15,56,222,209 + pxor %xmm15,%xmm13 + psrad $31,%xmm0 +.byte 102,15,56,222,217 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm0 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 + pxor %xmm0,%xmm15 + movups (%rbp),%xmm0 +.byte 102,15,56,222,241 +.byte 102,15,56,222,249 + movups 16(%rbp),%xmm1 + + pxor %xmm15,%xmm14 +.byte 102,15,56,223,84,36,0 + psrad $31,%xmm9 + paddq %xmm15,%xmm15 +.byte 102,15,56,223,92,36,16 +.byte 102,15,56,223,100,36,32 + pand %xmm8,%xmm9 + movq %r10,%rax +.byte 102,15,56,223,108,36,48 +.byte 102,15,56,223,116,36,64 +.byte 102,15,56,223,124,36,80 + pxor %xmm9,%xmm15 + + leaq 96(%rsi),%rsi + movups %xmm2,-96(%rsi) + movups %xmm3,-80(%rsi) + movups %xmm4,-64(%rsi) + movups %xmm5,-48(%rsi) + movups %xmm6,-32(%rsi) + movups %xmm7,-16(%rsi) + subq $96,%rdx + jnc .Lxts_dec_grandloop + + movl $16+96,%eax + subl %r10d,%eax + movq %rbp,%rcx + shrl $4,%eax + +.Lxts_dec_short: + + movl %eax,%r10d + pxor %xmm0,%xmm10 + pxor %xmm0,%xmm11 + addq $96,%rdx + jz .Lxts_dec_done + + pxor %xmm0,%xmm12 + cmpq $0x20,%rdx + jb .Lxts_dec_one + pxor %xmm0,%xmm13 + je .Lxts_dec_two + + pxor %xmm0,%xmm14 + cmpq $0x40,%rdx + jb .Lxts_dec_three + je .Lxts_dec_four + + movdqu (%rdi),%xmm2 + movdqu 16(%rdi),%xmm3 + movdqu 32(%rdi),%xmm4 + pxor %xmm10,%xmm2 + movdqu 48(%rdi),%xmm5 + pxor %xmm11,%xmm3 + movdqu 64(%rdi),%xmm6 + leaq 80(%rdi),%rdi + pxor %xmm12,%xmm4 + pxor %xmm13,%xmm5 + pxor %xmm14,%xmm6 + + call _aesni_decrypt6 + + xorps %xmm10,%xmm2 + xorps %xmm11,%xmm3 + xorps %xmm12,%xmm4 + movdqu %xmm2,(%rsi) + xorps %xmm13,%xmm5 + movdqu %xmm3,16(%rsi) + xorps %xmm14,%xmm6 + movdqu %xmm4,32(%rsi) + pxor %xmm14,%xmm14 + movdqu %xmm5,48(%rsi) + pcmpgtd %xmm15,%xmm14 + movdqu %xmm6,64(%rsi) + leaq 80(%rsi),%rsi + pshufd $0x13,%xmm14,%xmm11 + andq $15,%r9 + jz .Lxts_dec_ret + + movdqa %xmm15,%xmm10 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm11 + pxor %xmm15,%xmm11 + jmp .Lxts_dec_done2 + +.align 16 +.Lxts_dec_one: + movups (%rdi),%xmm2 + leaq 16(%rdi),%rdi + xorps %xmm10,%xmm2 + movups (%rcx),%xmm0 + movups 16(%rcx),%xmm1 + leaq 32(%rcx),%rcx + xorps %xmm0,%xmm2 +.Loop_dec1_12: +.byte 102,15,56,222,209 + decl %eax + movups (%rcx),%xmm1 + leaq 16(%rcx),%rcx + jnz .Loop_dec1_12 +.byte 102,15,56,223,209 + xorps %xmm10,%xmm2 + movdqa %xmm11,%xmm10 + movups %xmm2,(%rsi) + movdqa %xmm12,%xmm11 + leaq 16(%rsi),%rsi + jmp .Lxts_dec_done + +.align 16 +.Lxts_dec_two: + movups (%rdi),%xmm2 + movups 16(%rdi),%xmm3 + leaq 32(%rdi),%rdi + xorps %xmm10,%xmm2 + xorps %xmm11,%xmm3 + + call _aesni_decrypt2 + + xorps %xmm10,%xmm2 + movdqa %xmm12,%xmm10 + xorps %xmm11,%xmm3 + movdqa %xmm13,%xmm11 + movups %xmm2,(%rsi) + movups %xmm3,16(%rsi) + leaq 32(%rsi),%rsi + jmp .Lxts_dec_done + +.align 16 +.Lxts_dec_three: + movups (%rdi),%xmm2 + movups 16(%rdi),%xmm3 + movups 32(%rdi),%xmm4 + leaq 48(%rdi),%rdi + xorps %xmm10,%xmm2 + xorps %xmm11,%xmm3 + xorps %xmm12,%xmm4 + + call _aesni_decrypt3 + + xorps %xmm10,%xmm2 + movdqa %xmm13,%xmm10 + xorps %xmm11,%xmm3 + movdqa %xmm14,%xmm11 + xorps %xmm12,%xmm4 + movups %xmm2,(%rsi) + movups %xmm3,16(%rsi) + movups %xmm4,32(%rsi) + leaq 48(%rsi),%rsi + jmp .Lxts_dec_done + +.align 16 +.Lxts_dec_four: + movups (%rdi),%xmm2 + movups 16(%rdi),%xmm3 + movups 32(%rdi),%xmm4 + xorps %xmm10,%xmm2 + movups 48(%rdi),%xmm5 + leaq 64(%rdi),%rdi + xorps %xmm11,%xmm3 + xorps %xmm12,%xmm4 + xorps %xmm13,%xmm5 + + call _aesni_decrypt4 + + pxor %xmm10,%xmm2 + movdqa %xmm14,%xmm10 + pxor %xmm11,%xmm3 + movdqa %xmm15,%xmm11 + pxor %xmm12,%xmm4 + movdqu %xmm2,(%rsi) + pxor %xmm13,%xmm5 + movdqu %xmm3,16(%rsi) + movdqu %xmm4,32(%rsi) + movdqu %xmm5,48(%rsi) + leaq 64(%rsi),%rsi + jmp .Lxts_dec_done + +.align 16 +.Lxts_dec_done: + andq $15,%r9 + jz .Lxts_dec_ret +.Lxts_dec_done2: + movq %r9,%rdx + movq %rbp,%rcx + movl %r10d,%eax + + movups (%rdi),%xmm2 + xorps %xmm11,%xmm2 + movups (%rcx),%xmm0 + movups 16(%rcx),%xmm1 + leaq 32(%rcx),%rcx + xorps %xmm0,%xmm2 +.Loop_dec1_13: +.byte 102,15,56,222,209 + decl %eax + movups (%rcx),%xmm1 + leaq 16(%rcx),%rcx + jnz .Loop_dec1_13 +.byte 102,15,56,223,209 + xorps %xmm11,%xmm2 + movups %xmm2,(%rsi) + +.Lxts_dec_steal: + movzbl 16(%rdi),%eax + movzbl (%rsi),%ecx + leaq 1(%rdi),%rdi + movb %al,(%rsi) + movb %cl,16(%rsi) + leaq 1(%rsi),%rsi + subq $1,%rdx + jnz .Lxts_dec_steal + + subq %r9,%rsi + movq %rbp,%rcx + movl %r10d,%eax + + movups (%rsi),%xmm2 + xorps %xmm10,%xmm2 + movups (%rcx),%xmm0 + movups 16(%rcx),%xmm1 + leaq 32(%rcx),%rcx + xorps %xmm0,%xmm2 +.Loop_dec1_14: +.byte 102,15,56,222,209 + decl %eax + movups (%rcx),%xmm1 + leaq 16(%rcx),%rcx + jnz .Loop_dec1_14 +.byte 102,15,56,223,209 + xorps %xmm10,%xmm2 + movups %xmm2,(%rsi) + +.Lxts_dec_ret: + xorps %xmm0,%xmm0 + pxor %xmm1,%xmm1 + pxor %xmm2,%xmm2 + pxor %xmm3,%xmm3 + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + pxor %xmm6,%xmm6 + pxor %xmm7,%xmm7 + movaps %xmm0,0(%rsp) + pxor %xmm8,%xmm8 + movaps %xmm0,16(%rsp) + pxor %xmm9,%xmm9 + movaps %xmm0,32(%rsp) + pxor %xmm10,%xmm10 + movaps %xmm0,48(%rsp) + pxor %xmm11,%xmm11 + movaps %xmm0,64(%rsp) + pxor %xmm12,%xmm12 + movaps %xmm0,80(%rsp) + pxor %xmm13,%xmm13 + movaps %xmm0,96(%rsp) + pxor %xmm14,%xmm14 + pxor %xmm15,%xmm15 + movq -8(%r11),%rbp +.cfi_restore %rbp + leaq (%r11),%rsp +.cfi_def_cfa_register %rsp +.Lxts_dec_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size aesni_xts_decrypt,.-aesni_xts_decrypt +.globl aesni_ocb_encrypt +.type aesni_ocb_encrypt,@function +.align 32 +aesni_ocb_encrypt: +.cfi_startproc + leaq (%rsp),%rax + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + movq 8(%rax),%rbx + movq 8+8(%rax),%rbp + + movl 240(%rcx),%r10d + movq %rcx,%r11 + shll $4,%r10d + movups (%rcx),%xmm9 + movups 16(%rcx,%r10,1),%xmm1 + + movdqu (%r9),%xmm15 + pxor %xmm1,%xmm9 + pxor %xmm1,%xmm15 + + movl $16+32,%eax + leaq 32(%r11,%r10,1),%rcx + movups 16(%r11),%xmm1 + subq %r10,%rax + movq %rax,%r10 + + movdqu (%rbx),%xmm10 + movdqu (%rbp),%xmm8 + + testq $1,%r8 + jnz .Locb_enc_odd + + bsfq %r8,%r12 + addq $1,%r8 + shlq $4,%r12 + movdqu (%rbx,%r12,1),%xmm7 + movdqu (%rdi),%xmm2 + leaq 16(%rdi),%rdi + + call __ocb_encrypt1 + + movdqa %xmm7,%xmm15 + movups %xmm2,(%rsi) + leaq 16(%rsi),%rsi + subq $1,%rdx + jz .Locb_enc_done + +.Locb_enc_odd: + leaq 1(%r8),%r12 + leaq 3(%r8),%r13 + leaq 5(%r8),%r14 + leaq 6(%r8),%r8 + bsfq %r12,%r12 + bsfq %r13,%r13 + bsfq %r14,%r14 + shlq $4,%r12 + shlq $4,%r13 + shlq $4,%r14 + + subq $6,%rdx + jc .Locb_enc_short + jmp .Locb_enc_grandloop + +.align 32 +.Locb_enc_grandloop: + movdqu 0(%rdi),%xmm2 + movdqu 16(%rdi),%xmm3 + movdqu 32(%rdi),%xmm4 + movdqu 48(%rdi),%xmm5 + movdqu 64(%rdi),%xmm6 + movdqu 80(%rdi),%xmm7 + leaq 96(%rdi),%rdi + + call __ocb_encrypt6 + + movups %xmm2,0(%rsi) + movups %xmm3,16(%rsi) + movups %xmm4,32(%rsi) + movups %xmm5,48(%rsi) + movups %xmm6,64(%rsi) + movups %xmm7,80(%rsi) + leaq 96(%rsi),%rsi + subq $6,%rdx + jnc .Locb_enc_grandloop + +.Locb_enc_short: + addq $6,%rdx + jz .Locb_enc_done + + movdqu 0(%rdi),%xmm2 + cmpq $2,%rdx + jb .Locb_enc_one + movdqu 16(%rdi),%xmm3 + je .Locb_enc_two + + movdqu 32(%rdi),%xmm4 + cmpq $4,%rdx + jb .Locb_enc_three + movdqu 48(%rdi),%xmm5 + je .Locb_enc_four + + movdqu 64(%rdi),%xmm6 + pxor %xmm7,%xmm7 + + call __ocb_encrypt6 + + movdqa %xmm14,%xmm15 + movups %xmm2,0(%rsi) + movups %xmm3,16(%rsi) + movups %xmm4,32(%rsi) + movups %xmm5,48(%rsi) + movups %xmm6,64(%rsi) + + jmp .Locb_enc_done + +.align 16 +.Locb_enc_one: + movdqa %xmm10,%xmm7 + + call __ocb_encrypt1 + + movdqa %xmm7,%xmm15 + movups %xmm2,0(%rsi) + jmp .Locb_enc_done + +.align 16 +.Locb_enc_two: + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + + call __ocb_encrypt4 + + movdqa %xmm11,%xmm15 + movups %xmm2,0(%rsi) + movups %xmm3,16(%rsi) + + jmp .Locb_enc_done + +.align 16 +.Locb_enc_three: + pxor %xmm5,%xmm5 + + call __ocb_encrypt4 + + movdqa %xmm12,%xmm15 + movups %xmm2,0(%rsi) + movups %xmm3,16(%rsi) + movups %xmm4,32(%rsi) + + jmp .Locb_enc_done + +.align 16 +.Locb_enc_four: + call __ocb_encrypt4 + + movdqa %xmm13,%xmm15 + movups %xmm2,0(%rsi) + movups %xmm3,16(%rsi) + movups %xmm4,32(%rsi) + movups %xmm5,48(%rsi) + +.Locb_enc_done: + pxor %xmm0,%xmm15 + movdqu %xmm8,(%rbp) + movdqu %xmm15,(%r9) + + xorps %xmm0,%xmm0 + pxor %xmm1,%xmm1 + pxor %xmm2,%xmm2 + pxor %xmm3,%xmm3 + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + pxor %xmm6,%xmm6 + pxor %xmm7,%xmm7 + pxor %xmm8,%xmm8 + pxor %xmm9,%xmm9 + pxor %xmm10,%xmm10 + pxor %xmm11,%xmm11 + pxor %xmm12,%xmm12 + pxor %xmm13,%xmm13 + pxor %xmm14,%xmm14 + pxor %xmm15,%xmm15 + leaq 40(%rsp),%rax +.cfi_def_cfa %rax,8 + movq -40(%rax),%r14 +.cfi_restore %r14 + movq -32(%rax),%r13 +.cfi_restore %r13 + movq -24(%rax),%r12 +.cfi_restore %r12 + movq -16(%rax),%rbp +.cfi_restore %rbp + movq -8(%rax),%rbx +.cfi_restore %rbx + leaq (%rax),%rsp +.cfi_def_cfa_register %rsp +.Locb_enc_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size aesni_ocb_encrypt,.-aesni_ocb_encrypt + +.type __ocb_encrypt6,@function +.align 32 +__ocb_encrypt6: +.cfi_startproc + pxor %xmm9,%xmm15 + movdqu (%rbx,%r12,1),%xmm11 + movdqa %xmm10,%xmm12 + movdqu (%rbx,%r13,1),%xmm13 + movdqa %xmm10,%xmm14 + pxor %xmm15,%xmm10 + movdqu (%rbx,%r14,1),%xmm15 + pxor %xmm10,%xmm11 + pxor %xmm2,%xmm8 + pxor %xmm10,%xmm2 + pxor %xmm11,%xmm12 + pxor %xmm3,%xmm8 + pxor %xmm11,%xmm3 + pxor %xmm12,%xmm13 + pxor %xmm4,%xmm8 + pxor %xmm12,%xmm4 + pxor %xmm13,%xmm14 + pxor %xmm5,%xmm8 + pxor %xmm13,%xmm5 + pxor %xmm14,%xmm15 + pxor %xmm6,%xmm8 + pxor %xmm14,%xmm6 + pxor %xmm7,%xmm8 + pxor %xmm15,%xmm7 + movups 32(%r11),%xmm0 + + leaq 1(%r8),%r12 + leaq 3(%r8),%r13 + leaq 5(%r8),%r14 + addq $6,%r8 + pxor %xmm9,%xmm10 + bsfq %r12,%r12 + bsfq %r13,%r13 + bsfq %r14,%r14 + +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 + pxor %xmm9,%xmm11 + pxor %xmm9,%xmm12 +.byte 102,15,56,220,241 + pxor %xmm9,%xmm13 + pxor %xmm9,%xmm14 +.byte 102,15,56,220,249 + movups 48(%r11),%xmm1 + pxor %xmm9,%xmm15 + +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 +.byte 102,15,56,220,240 +.byte 102,15,56,220,248 + movups 64(%r11),%xmm0 + shlq $4,%r12 + shlq $4,%r13 + jmp .Locb_enc_loop6 + +.align 32 +.Locb_enc_loop6: +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 +.byte 102,15,56,220,241 +.byte 102,15,56,220,249 + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax + +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 +.byte 102,15,56,220,240 +.byte 102,15,56,220,248 + movups -16(%rcx,%rax,1),%xmm0 + jnz .Locb_enc_loop6 + +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 +.byte 102,15,56,220,241 +.byte 102,15,56,220,249 + movups 16(%r11),%xmm1 + shlq $4,%r14 + +.byte 102,65,15,56,221,210 + movdqu (%rbx),%xmm10 + movq %r10,%rax +.byte 102,65,15,56,221,219 +.byte 102,65,15,56,221,228 +.byte 102,65,15,56,221,237 +.byte 102,65,15,56,221,246 +.byte 102,65,15,56,221,255 + .byte 0xf3,0xc3 +.cfi_endproc +.size __ocb_encrypt6,.-__ocb_encrypt6 + +.type __ocb_encrypt4,@function +.align 32 +__ocb_encrypt4: +.cfi_startproc + pxor %xmm9,%xmm15 + movdqu (%rbx,%r12,1),%xmm11 + movdqa %xmm10,%xmm12 + movdqu (%rbx,%r13,1),%xmm13 + pxor %xmm15,%xmm10 + pxor %xmm10,%xmm11 + pxor %xmm2,%xmm8 + pxor %xmm10,%xmm2 + pxor %xmm11,%xmm12 + pxor %xmm3,%xmm8 + pxor %xmm11,%xmm3 + pxor %xmm12,%xmm13 + pxor %xmm4,%xmm8 + pxor %xmm12,%xmm4 + pxor %xmm5,%xmm8 + pxor %xmm13,%xmm5 + movups 32(%r11),%xmm0 + + pxor %xmm9,%xmm10 + pxor %xmm9,%xmm11 + pxor %xmm9,%xmm12 + pxor %xmm9,%xmm13 + +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 + movups 48(%r11),%xmm1 + +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 + movups 64(%r11),%xmm0 + jmp .Locb_enc_loop4 + +.align 32 +.Locb_enc_loop4: +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax + +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 + movups -16(%rcx,%rax,1),%xmm0 + jnz .Locb_enc_loop4 + +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 + movups 16(%r11),%xmm1 + movq %r10,%rax + +.byte 102,65,15,56,221,210 +.byte 102,65,15,56,221,219 +.byte 102,65,15,56,221,228 +.byte 102,65,15,56,221,237 + .byte 0xf3,0xc3 +.cfi_endproc +.size __ocb_encrypt4,.-__ocb_encrypt4 + +.type __ocb_encrypt1,@function +.align 32 +__ocb_encrypt1: +.cfi_startproc + pxor %xmm15,%xmm7 + pxor %xmm9,%xmm7 + pxor %xmm2,%xmm8 + pxor %xmm7,%xmm2 + movups 32(%r11),%xmm0 + +.byte 102,15,56,220,209 + movups 48(%r11),%xmm1 + pxor %xmm9,%xmm7 + +.byte 102,15,56,220,208 + movups 64(%r11),%xmm0 + jmp .Locb_enc_loop1 + +.align 32 +.Locb_enc_loop1: +.byte 102,15,56,220,209 + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax + +.byte 102,15,56,220,208 + movups -16(%rcx,%rax,1),%xmm0 + jnz .Locb_enc_loop1 + +.byte 102,15,56,220,209 + movups 16(%r11),%xmm1 + movq %r10,%rax + +.byte 102,15,56,221,215 + .byte 0xf3,0xc3 +.cfi_endproc +.size __ocb_encrypt1,.-__ocb_encrypt1 + +.globl aesni_ocb_decrypt +.type aesni_ocb_decrypt,@function +.align 32 +aesni_ocb_decrypt: +.cfi_startproc + leaq (%rsp),%rax + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + movq 8(%rax),%rbx + movq 8+8(%rax),%rbp + + movl 240(%rcx),%r10d + movq %rcx,%r11 + shll $4,%r10d + movups (%rcx),%xmm9 + movups 16(%rcx,%r10,1),%xmm1 + + movdqu (%r9),%xmm15 + pxor %xmm1,%xmm9 + pxor %xmm1,%xmm15 + + movl $16+32,%eax + leaq 32(%r11,%r10,1),%rcx + movups 16(%r11),%xmm1 + subq %r10,%rax + movq %rax,%r10 + + movdqu (%rbx),%xmm10 + movdqu (%rbp),%xmm8 + + testq $1,%r8 + jnz .Locb_dec_odd + + bsfq %r8,%r12 + addq $1,%r8 + shlq $4,%r12 + movdqu (%rbx,%r12,1),%xmm7 + movdqu (%rdi),%xmm2 + leaq 16(%rdi),%rdi + + call __ocb_decrypt1 + + movdqa %xmm7,%xmm15 + movups %xmm2,(%rsi) + xorps %xmm2,%xmm8 + leaq 16(%rsi),%rsi + subq $1,%rdx + jz .Locb_dec_done + +.Locb_dec_odd: + leaq 1(%r8),%r12 + leaq 3(%r8),%r13 + leaq 5(%r8),%r14 + leaq 6(%r8),%r8 + bsfq %r12,%r12 + bsfq %r13,%r13 + bsfq %r14,%r14 + shlq $4,%r12 + shlq $4,%r13 + shlq $4,%r14 + + subq $6,%rdx + jc .Locb_dec_short + jmp .Locb_dec_grandloop + +.align 32 +.Locb_dec_grandloop: + movdqu 0(%rdi),%xmm2 + movdqu 16(%rdi),%xmm3 + movdqu 32(%rdi),%xmm4 + movdqu 48(%rdi),%xmm5 + movdqu 64(%rdi),%xmm6 + movdqu 80(%rdi),%xmm7 + leaq 96(%rdi),%rdi + + call __ocb_decrypt6 + + movups %xmm2,0(%rsi) + pxor %xmm2,%xmm8 + movups %xmm3,16(%rsi) + pxor %xmm3,%xmm8 + movups %xmm4,32(%rsi) + pxor %xmm4,%xmm8 + movups %xmm5,48(%rsi) + pxor %xmm5,%xmm8 + movups %xmm6,64(%rsi) + pxor %xmm6,%xmm8 + movups %xmm7,80(%rsi) + pxor %xmm7,%xmm8 + leaq 96(%rsi),%rsi + subq $6,%rdx + jnc .Locb_dec_grandloop + +.Locb_dec_short: + addq $6,%rdx + jz .Locb_dec_done + + movdqu 0(%rdi),%xmm2 + cmpq $2,%rdx + jb .Locb_dec_one + movdqu 16(%rdi),%xmm3 + je .Locb_dec_two + + movdqu 32(%rdi),%xmm4 + cmpq $4,%rdx + jb .Locb_dec_three + movdqu 48(%rdi),%xmm5 + je .Locb_dec_four + + movdqu 64(%rdi),%xmm6 + pxor %xmm7,%xmm7 + + call __ocb_decrypt6 + + movdqa %xmm14,%xmm15 + movups %xmm2,0(%rsi) + pxor %xmm2,%xmm8 + movups %xmm3,16(%rsi) + pxor %xmm3,%xmm8 + movups %xmm4,32(%rsi) + pxor %xmm4,%xmm8 + movups %xmm5,48(%rsi) + pxor %xmm5,%xmm8 + movups %xmm6,64(%rsi) + pxor %xmm6,%xmm8 + + jmp .Locb_dec_done + +.align 16 +.Locb_dec_one: + movdqa %xmm10,%xmm7 + + call __ocb_decrypt1 + + movdqa %xmm7,%xmm15 + movups %xmm2,0(%rsi) + xorps %xmm2,%xmm8 + jmp .Locb_dec_done + +.align 16 +.Locb_dec_two: + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + + call __ocb_decrypt4 + + movdqa %xmm11,%xmm15 + movups %xmm2,0(%rsi) + xorps %xmm2,%xmm8 + movups %xmm3,16(%rsi) + xorps %xmm3,%xmm8 + + jmp .Locb_dec_done + +.align 16 +.Locb_dec_three: + pxor %xmm5,%xmm5 + + call __ocb_decrypt4 + + movdqa %xmm12,%xmm15 + movups %xmm2,0(%rsi) + xorps %xmm2,%xmm8 + movups %xmm3,16(%rsi) + xorps %xmm3,%xmm8 + movups %xmm4,32(%rsi) + xorps %xmm4,%xmm8 + + jmp .Locb_dec_done + +.align 16 +.Locb_dec_four: + call __ocb_decrypt4 + + movdqa %xmm13,%xmm15 + movups %xmm2,0(%rsi) + pxor %xmm2,%xmm8 + movups %xmm3,16(%rsi) + pxor %xmm3,%xmm8 + movups %xmm4,32(%rsi) + pxor %xmm4,%xmm8 + movups %xmm5,48(%rsi) + pxor %xmm5,%xmm8 + +.Locb_dec_done: + pxor %xmm0,%xmm15 + movdqu %xmm8,(%rbp) + movdqu %xmm15,(%r9) + + xorps %xmm0,%xmm0 + pxor %xmm1,%xmm1 + pxor %xmm2,%xmm2 + pxor %xmm3,%xmm3 + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + pxor %xmm6,%xmm6 + pxor %xmm7,%xmm7 + pxor %xmm8,%xmm8 + pxor %xmm9,%xmm9 + pxor %xmm10,%xmm10 + pxor %xmm11,%xmm11 + pxor %xmm12,%xmm12 + pxor %xmm13,%xmm13 + pxor %xmm14,%xmm14 + pxor %xmm15,%xmm15 + leaq 40(%rsp),%rax +.cfi_def_cfa %rax,8 + movq -40(%rax),%r14 +.cfi_restore %r14 + movq -32(%rax),%r13 +.cfi_restore %r13 + movq -24(%rax),%r12 +.cfi_restore %r12 + movq -16(%rax),%rbp +.cfi_restore %rbp + movq -8(%rax),%rbx +.cfi_restore %rbx + leaq (%rax),%rsp +.cfi_def_cfa_register %rsp +.Locb_dec_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size aesni_ocb_decrypt,.-aesni_ocb_decrypt + +.type __ocb_decrypt6,@function +.align 32 +__ocb_decrypt6: +.cfi_startproc + pxor %xmm9,%xmm15 + movdqu (%rbx,%r12,1),%xmm11 + movdqa %xmm10,%xmm12 + movdqu (%rbx,%r13,1),%xmm13 + movdqa %xmm10,%xmm14 + pxor %xmm15,%xmm10 + movdqu (%rbx,%r14,1),%xmm15 + pxor %xmm10,%xmm11 + pxor %xmm10,%xmm2 + pxor %xmm11,%xmm12 + pxor %xmm11,%xmm3 + pxor %xmm12,%xmm13 + pxor %xmm12,%xmm4 + pxor %xmm13,%xmm14 + pxor %xmm13,%xmm5 + pxor %xmm14,%xmm15 + pxor %xmm14,%xmm6 + pxor %xmm15,%xmm7 + movups 32(%r11),%xmm0 + + leaq 1(%r8),%r12 + leaq 3(%r8),%r13 + leaq 5(%r8),%r14 + addq $6,%r8 + pxor %xmm9,%xmm10 + bsfq %r12,%r12 + bsfq %r13,%r13 + bsfq %r14,%r14 + +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 + pxor %xmm9,%xmm11 + pxor %xmm9,%xmm12 +.byte 102,15,56,222,241 + pxor %xmm9,%xmm13 + pxor %xmm9,%xmm14 +.byte 102,15,56,222,249 + movups 48(%r11),%xmm1 + pxor %xmm9,%xmm15 + +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 +.byte 102,15,56,222,240 +.byte 102,15,56,222,248 + movups 64(%r11),%xmm0 + shlq $4,%r12 + shlq $4,%r13 + jmp .Locb_dec_loop6 + +.align 32 +.Locb_dec_loop6: +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 +.byte 102,15,56,222,241 +.byte 102,15,56,222,249 + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax + +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 +.byte 102,15,56,222,240 +.byte 102,15,56,222,248 + movups -16(%rcx,%rax,1),%xmm0 + jnz .Locb_dec_loop6 + +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 +.byte 102,15,56,222,241 +.byte 102,15,56,222,249 + movups 16(%r11),%xmm1 + shlq $4,%r14 + +.byte 102,65,15,56,223,210 + movdqu (%rbx),%xmm10 + movq %r10,%rax +.byte 102,65,15,56,223,219 +.byte 102,65,15,56,223,228 +.byte 102,65,15,56,223,237 +.byte 102,65,15,56,223,246 +.byte 102,65,15,56,223,255 + .byte 0xf3,0xc3 +.cfi_endproc +.size __ocb_decrypt6,.-__ocb_decrypt6 + +.type __ocb_decrypt4,@function +.align 32 +__ocb_decrypt4: +.cfi_startproc + pxor %xmm9,%xmm15 + movdqu (%rbx,%r12,1),%xmm11 + movdqa %xmm10,%xmm12 + movdqu (%rbx,%r13,1),%xmm13 + pxor %xmm15,%xmm10 + pxor %xmm10,%xmm11 + pxor %xmm10,%xmm2 + pxor %xmm11,%xmm12 + pxor %xmm11,%xmm3 + pxor %xmm12,%xmm13 + pxor %xmm12,%xmm4 + pxor %xmm13,%xmm5 + movups 32(%r11),%xmm0 + + pxor %xmm9,%xmm10 + pxor %xmm9,%xmm11 + pxor %xmm9,%xmm12 + pxor %xmm9,%xmm13 + +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 + movups 48(%r11),%xmm1 + +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 + movups 64(%r11),%xmm0 + jmp .Locb_dec_loop4 + +.align 32 +.Locb_dec_loop4: +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax + +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 + movups -16(%rcx,%rax,1),%xmm0 + jnz .Locb_dec_loop4 + +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 + movups 16(%r11),%xmm1 + movq %r10,%rax + +.byte 102,65,15,56,223,210 +.byte 102,65,15,56,223,219 +.byte 102,65,15,56,223,228 +.byte 102,65,15,56,223,237 + .byte 0xf3,0xc3 +.cfi_endproc +.size __ocb_decrypt4,.-__ocb_decrypt4 + +.type __ocb_decrypt1,@function +.align 32 +__ocb_decrypt1: +.cfi_startproc + pxor %xmm15,%xmm7 + pxor %xmm9,%xmm7 + pxor %xmm7,%xmm2 + movups 32(%r11),%xmm0 + +.byte 102,15,56,222,209 + movups 48(%r11),%xmm1 + pxor %xmm9,%xmm7 + +.byte 102,15,56,222,208 + movups 64(%r11),%xmm0 + jmp .Locb_dec_loop1 + +.align 32 +.Locb_dec_loop1: +.byte 102,15,56,222,209 + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax + +.byte 102,15,56,222,208 + movups -16(%rcx,%rax,1),%xmm0 + jnz .Locb_dec_loop1 + +.byte 102,15,56,222,209 + movups 16(%r11),%xmm1 + movq %r10,%rax + +.byte 102,15,56,223,215 + .byte 0xf3,0xc3 +.cfi_endproc +.size __ocb_decrypt1,.-__ocb_decrypt1 +.globl aesni_cbc_encrypt +.type aesni_cbc_encrypt,@function +.align 16 +aesni_cbc_encrypt: +.cfi_startproc + testq %rdx,%rdx + jz .Lcbc_ret + + movl 240(%rcx),%r10d + movq %rcx,%r11 + testl %r9d,%r9d + jz .Lcbc_decrypt + + movups (%r8),%xmm2 + movl %r10d,%eax + cmpq $16,%rdx + jb .Lcbc_enc_tail + subq $16,%rdx + jmp .Lcbc_enc_loop +.align 16 +.Lcbc_enc_loop: + movups (%rdi),%xmm3 + leaq 16(%rdi),%rdi + + movups (%rcx),%xmm0 + movups 16(%rcx),%xmm1 + xorps %xmm0,%xmm3 + leaq 32(%rcx),%rcx + xorps %xmm3,%xmm2 +.Loop_enc1_15: +.byte 102,15,56,220,209 + decl %eax + movups (%rcx),%xmm1 + leaq 16(%rcx),%rcx + jnz .Loop_enc1_15 +.byte 102,15,56,221,209 + movl %r10d,%eax + movq %r11,%rcx + movups %xmm2,0(%rsi) + leaq 16(%rsi),%rsi + subq $16,%rdx + jnc .Lcbc_enc_loop + addq $16,%rdx + jnz .Lcbc_enc_tail + pxor %xmm0,%xmm0 + pxor %xmm1,%xmm1 + movups %xmm2,(%r8) + pxor %xmm2,%xmm2 + pxor %xmm3,%xmm3 + jmp .Lcbc_ret + +.Lcbc_enc_tail: + movq %rdx,%rcx + xchgq %rdi,%rsi +.long 0x9066A4F3 + movl $16,%ecx + subq %rdx,%rcx + xorl %eax,%eax +.long 0x9066AAF3 + leaq -16(%rdi),%rdi + movl %r10d,%eax + movq %rdi,%rsi + movq %r11,%rcx + xorq %rdx,%rdx + jmp .Lcbc_enc_loop + +.align 16 +.Lcbc_decrypt: + cmpq $16,%rdx + jne .Lcbc_decrypt_bulk + + + + movdqu (%rdi),%xmm2 + movdqu (%r8),%xmm3 + movdqa %xmm2,%xmm4 + movups (%rcx),%xmm0 + movups 16(%rcx),%xmm1 + leaq 32(%rcx),%rcx + xorps %xmm0,%xmm2 +.Loop_dec1_16: +.byte 102,15,56,222,209 + decl %r10d + movups (%rcx),%xmm1 + leaq 16(%rcx),%rcx + jnz .Loop_dec1_16 +.byte 102,15,56,223,209 + pxor %xmm0,%xmm0 + pxor %xmm1,%xmm1 + movdqu %xmm4,(%r8) + xorps %xmm3,%xmm2 + pxor %xmm3,%xmm3 + movups %xmm2,(%rsi) + pxor %xmm2,%xmm2 + jmp .Lcbc_ret +.align 16 +.Lcbc_decrypt_bulk: + leaq (%rsp),%r11 +.cfi_def_cfa_register %r11 + pushq %rbp +.cfi_offset %rbp,-16 + subq $16,%rsp + andq $-16,%rsp + movq %rcx,%rbp + movups (%r8),%xmm10 + movl %r10d,%eax + cmpq $0x50,%rdx + jbe .Lcbc_dec_tail + + movups (%rcx),%xmm0 + movdqu 0(%rdi),%xmm2 + movdqu 16(%rdi),%xmm3 + movdqa %xmm2,%xmm11 + movdqu 32(%rdi),%xmm4 + movdqa %xmm3,%xmm12 + movdqu 48(%rdi),%xmm5 + movdqa %xmm4,%xmm13 + movdqu 64(%rdi),%xmm6 + movdqa %xmm5,%xmm14 + movdqu 80(%rdi),%xmm7 + movdqa %xmm6,%xmm15 + movl OPENSSL_ia32cap_P+4(%rip),%r9d + cmpq $0x70,%rdx + jbe .Lcbc_dec_six_or_seven + + andl $71303168,%r9d + subq $0x50,%rdx + cmpl $4194304,%r9d + je .Lcbc_dec_loop6_enter + subq $0x20,%rdx + leaq 112(%rcx),%rcx + jmp .Lcbc_dec_loop8_enter +.align 16 +.Lcbc_dec_loop8: + movups %xmm9,(%rsi) + leaq 16(%rsi),%rsi +.Lcbc_dec_loop8_enter: + movdqu 96(%rdi),%xmm8 + pxor %xmm0,%xmm2 + movdqu 112(%rdi),%xmm9 + pxor %xmm0,%xmm3 + movups 16-112(%rcx),%xmm1 + pxor %xmm0,%xmm4 + movq $-1,%rbp + cmpq $0x70,%rdx + pxor %xmm0,%xmm5 + pxor %xmm0,%xmm6 + pxor %xmm0,%xmm7 + pxor %xmm0,%xmm8 + +.byte 102,15,56,222,209 + pxor %xmm0,%xmm9 + movups 32-112(%rcx),%xmm0 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 +.byte 102,15,56,222,241 +.byte 102,15,56,222,249 +.byte 102,68,15,56,222,193 + adcq $0,%rbp + andq $128,%rbp +.byte 102,68,15,56,222,201 + addq %rdi,%rbp + movups 48-112(%rcx),%xmm1 +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 +.byte 102,15,56,222,240 +.byte 102,15,56,222,248 +.byte 102,68,15,56,222,192 +.byte 102,68,15,56,222,200 + movups 64-112(%rcx),%xmm0 + nop +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 +.byte 102,15,56,222,241 +.byte 102,15,56,222,249 +.byte 102,68,15,56,222,193 +.byte 102,68,15,56,222,201 + movups 80-112(%rcx),%xmm1 + nop +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 +.byte 102,15,56,222,240 +.byte 102,15,56,222,248 +.byte 102,68,15,56,222,192 +.byte 102,68,15,56,222,200 + movups 96-112(%rcx),%xmm0 + nop +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 +.byte 102,15,56,222,241 +.byte 102,15,56,222,249 +.byte 102,68,15,56,222,193 +.byte 102,68,15,56,222,201 + movups 112-112(%rcx),%xmm1 + nop +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 +.byte 102,15,56,222,240 +.byte 102,15,56,222,248 +.byte 102,68,15,56,222,192 +.byte 102,68,15,56,222,200 + movups 128-112(%rcx),%xmm0 + nop +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 +.byte 102,15,56,222,241 +.byte 102,15,56,222,249 +.byte 102,68,15,56,222,193 +.byte 102,68,15,56,222,201 + movups 144-112(%rcx),%xmm1 + cmpl $11,%eax +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 +.byte 102,15,56,222,240 +.byte 102,15,56,222,248 +.byte 102,68,15,56,222,192 +.byte 102,68,15,56,222,200 + movups 160-112(%rcx),%xmm0 + jb .Lcbc_dec_done +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 +.byte 102,15,56,222,241 +.byte 102,15,56,222,249 +.byte 102,68,15,56,222,193 +.byte 102,68,15,56,222,201 + movups 176-112(%rcx),%xmm1 + nop +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 +.byte 102,15,56,222,240 +.byte 102,15,56,222,248 +.byte 102,68,15,56,222,192 +.byte 102,68,15,56,222,200 + movups 192-112(%rcx),%xmm0 + je .Lcbc_dec_done +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 +.byte 102,15,56,222,241 +.byte 102,15,56,222,249 +.byte 102,68,15,56,222,193 +.byte 102,68,15,56,222,201 + movups 208-112(%rcx),%xmm1 + nop +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 +.byte 102,15,56,222,240 +.byte 102,15,56,222,248 +.byte 102,68,15,56,222,192 +.byte 102,68,15,56,222,200 + movups 224-112(%rcx),%xmm0 + jmp .Lcbc_dec_done +.align 16 +.Lcbc_dec_done: +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 + pxor %xmm0,%xmm10 + pxor %xmm0,%xmm11 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 + pxor %xmm0,%xmm12 + pxor %xmm0,%xmm13 +.byte 102,15,56,222,241 +.byte 102,15,56,222,249 + pxor %xmm0,%xmm14 + pxor %xmm0,%xmm15 +.byte 102,68,15,56,222,193 +.byte 102,68,15,56,222,201 + movdqu 80(%rdi),%xmm1 + +.byte 102,65,15,56,223,210 + movdqu 96(%rdi),%xmm10 + pxor %xmm0,%xmm1 +.byte 102,65,15,56,223,219 + pxor %xmm0,%xmm10 + movdqu 112(%rdi),%xmm0 +.byte 102,65,15,56,223,228 + leaq 128(%rdi),%rdi + movdqu 0(%rbp),%xmm11 +.byte 102,65,15,56,223,237 +.byte 102,65,15,56,223,246 + movdqu 16(%rbp),%xmm12 + movdqu 32(%rbp),%xmm13 +.byte 102,65,15,56,223,255 +.byte 102,68,15,56,223,193 + movdqu 48(%rbp),%xmm14 + movdqu 64(%rbp),%xmm15 +.byte 102,69,15,56,223,202 + movdqa %xmm0,%xmm10 + movdqu 80(%rbp),%xmm1 + movups -112(%rcx),%xmm0 + + movups %xmm2,(%rsi) + movdqa %xmm11,%xmm2 + movups %xmm3,16(%rsi) + movdqa %xmm12,%xmm3 + movups %xmm4,32(%rsi) + movdqa %xmm13,%xmm4 + movups %xmm5,48(%rsi) + movdqa %xmm14,%xmm5 + movups %xmm6,64(%rsi) + movdqa %xmm15,%xmm6 + movups %xmm7,80(%rsi) + movdqa %xmm1,%xmm7 + movups %xmm8,96(%rsi) + leaq 112(%rsi),%rsi + + subq $0x80,%rdx + ja .Lcbc_dec_loop8 + + movaps %xmm9,%xmm2 + leaq -112(%rcx),%rcx + addq $0x70,%rdx + jle .Lcbc_dec_clear_tail_collected + movups %xmm9,(%rsi) + leaq 16(%rsi),%rsi + cmpq $0x50,%rdx + jbe .Lcbc_dec_tail + + movaps %xmm11,%xmm2 +.Lcbc_dec_six_or_seven: + cmpq $0x60,%rdx + ja .Lcbc_dec_seven + + movaps %xmm7,%xmm8 + call _aesni_decrypt6 + pxor %xmm10,%xmm2 + movaps %xmm8,%xmm10 + pxor %xmm11,%xmm3 + movdqu %xmm2,(%rsi) + pxor %xmm12,%xmm4 + movdqu %xmm3,16(%rsi) + pxor %xmm3,%xmm3 + pxor %xmm13,%xmm5 + movdqu %xmm4,32(%rsi) + pxor %xmm4,%xmm4 + pxor %xmm14,%xmm6 + movdqu %xmm5,48(%rsi) + pxor %xmm5,%xmm5 + pxor %xmm15,%xmm7 + movdqu %xmm6,64(%rsi) + pxor %xmm6,%xmm6 + leaq 80(%rsi),%rsi + movdqa %xmm7,%xmm2 + pxor %xmm7,%xmm7 + jmp .Lcbc_dec_tail_collected + +.align 16 +.Lcbc_dec_seven: + movups 96(%rdi),%xmm8 + xorps %xmm9,%xmm9 + call _aesni_decrypt8 + movups 80(%rdi),%xmm9 + pxor %xmm10,%xmm2 + movups 96(%rdi),%xmm10 + pxor %xmm11,%xmm3 + movdqu %xmm2,(%rsi) + pxor %xmm12,%xmm4 + movdqu %xmm3,16(%rsi) + pxor %xmm3,%xmm3 + pxor %xmm13,%xmm5 + movdqu %xmm4,32(%rsi) + pxor %xmm4,%xmm4 + pxor %xmm14,%xmm6 + movdqu %xmm5,48(%rsi) + pxor %xmm5,%xmm5 + pxor %xmm15,%xmm7 + movdqu %xmm6,64(%rsi) + pxor %xmm6,%xmm6 + pxor %xmm9,%xmm8 + movdqu %xmm7,80(%rsi) + pxor %xmm7,%xmm7 + leaq 96(%rsi),%rsi + movdqa %xmm8,%xmm2 + pxor %xmm8,%xmm8 + pxor %xmm9,%xmm9 + jmp .Lcbc_dec_tail_collected + +.align 16 +.Lcbc_dec_loop6: + movups %xmm7,(%rsi) + leaq 16(%rsi),%rsi + movdqu 0(%rdi),%xmm2 + movdqu 16(%rdi),%xmm3 + movdqa %xmm2,%xmm11 + movdqu 32(%rdi),%xmm4 + movdqa %xmm3,%xmm12 + movdqu 48(%rdi),%xmm5 + movdqa %xmm4,%xmm13 + movdqu 64(%rdi),%xmm6 + movdqa %xmm5,%xmm14 + movdqu 80(%rdi),%xmm7 + movdqa %xmm6,%xmm15 +.Lcbc_dec_loop6_enter: + leaq 96(%rdi),%rdi + movdqa %xmm7,%xmm8 + + call _aesni_decrypt6 + + pxor %xmm10,%xmm2 + movdqa %xmm8,%xmm10 + pxor %xmm11,%xmm3 + movdqu %xmm2,(%rsi) + pxor %xmm12,%xmm4 + movdqu %xmm3,16(%rsi) + pxor %xmm13,%xmm5 + movdqu %xmm4,32(%rsi) + pxor %xmm14,%xmm6 + movq %rbp,%rcx + movdqu %xmm5,48(%rsi) + pxor %xmm15,%xmm7 + movl %r10d,%eax + movdqu %xmm6,64(%rsi) + leaq 80(%rsi),%rsi + subq $0x60,%rdx + ja .Lcbc_dec_loop6 + + movdqa %xmm7,%xmm2 + addq $0x50,%rdx + jle .Lcbc_dec_clear_tail_collected + movups %xmm7,(%rsi) + leaq 16(%rsi),%rsi + +.Lcbc_dec_tail: + movups (%rdi),%xmm2 + subq $0x10,%rdx + jbe .Lcbc_dec_one + + movups 16(%rdi),%xmm3 + movaps %xmm2,%xmm11 + subq $0x10,%rdx + jbe .Lcbc_dec_two + + movups 32(%rdi),%xmm4 + movaps %xmm3,%xmm12 + subq $0x10,%rdx + jbe .Lcbc_dec_three + + movups 48(%rdi),%xmm5 + movaps %xmm4,%xmm13 + subq $0x10,%rdx + jbe .Lcbc_dec_four + + movups 64(%rdi),%xmm6 + movaps %xmm5,%xmm14 + movaps %xmm6,%xmm15 + xorps %xmm7,%xmm7 + call _aesni_decrypt6 + pxor %xmm10,%xmm2 + movaps %xmm15,%xmm10 + pxor %xmm11,%xmm3 + movdqu %xmm2,(%rsi) + pxor %xmm12,%xmm4 + movdqu %xmm3,16(%rsi) + pxor %xmm3,%xmm3 + pxor %xmm13,%xmm5 + movdqu %xmm4,32(%rsi) + pxor %xmm4,%xmm4 + pxor %xmm14,%xmm6 + movdqu %xmm5,48(%rsi) + pxor %xmm5,%xmm5 + leaq 64(%rsi),%rsi + movdqa %xmm6,%xmm2 + pxor %xmm6,%xmm6 + pxor %xmm7,%xmm7 + subq $0x10,%rdx + jmp .Lcbc_dec_tail_collected + +.align 16 +.Lcbc_dec_one: + movaps %xmm2,%xmm11 + movups (%rcx),%xmm0 + movups 16(%rcx),%xmm1 + leaq 32(%rcx),%rcx + xorps %xmm0,%xmm2 +.Loop_dec1_17: +.byte 102,15,56,222,209 + decl %eax + movups (%rcx),%xmm1 + leaq 16(%rcx),%rcx + jnz .Loop_dec1_17 +.byte 102,15,56,223,209 + xorps %xmm10,%xmm2 + movaps %xmm11,%xmm10 + jmp .Lcbc_dec_tail_collected +.align 16 +.Lcbc_dec_two: + movaps %xmm3,%xmm12 + call _aesni_decrypt2 + pxor %xmm10,%xmm2 + movaps %xmm12,%xmm10 + pxor %xmm11,%xmm3 + movdqu %xmm2,(%rsi) + movdqa %xmm3,%xmm2 + pxor %xmm3,%xmm3 + leaq 16(%rsi),%rsi + jmp .Lcbc_dec_tail_collected +.align 16 +.Lcbc_dec_three: + movaps %xmm4,%xmm13 + call _aesni_decrypt3 + pxor %xmm10,%xmm2 + movaps %xmm13,%xmm10 + pxor %xmm11,%xmm3 + movdqu %xmm2,(%rsi) + pxor %xmm12,%xmm4 + movdqu %xmm3,16(%rsi) + pxor %xmm3,%xmm3 + movdqa %xmm4,%xmm2 + pxor %xmm4,%xmm4 + leaq 32(%rsi),%rsi + jmp .Lcbc_dec_tail_collected +.align 16 +.Lcbc_dec_four: + movaps %xmm5,%xmm14 + call _aesni_decrypt4 + pxor %xmm10,%xmm2 + movaps %xmm14,%xmm10 + pxor %xmm11,%xmm3 + movdqu %xmm2,(%rsi) + pxor %xmm12,%xmm4 + movdqu %xmm3,16(%rsi) + pxor %xmm3,%xmm3 + pxor %xmm13,%xmm5 + movdqu %xmm4,32(%rsi) + pxor %xmm4,%xmm4 + movdqa %xmm5,%xmm2 + pxor %xmm5,%xmm5 + leaq 48(%rsi),%rsi + jmp .Lcbc_dec_tail_collected + +.align 16 +.Lcbc_dec_clear_tail_collected: + pxor %xmm3,%xmm3 + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + pxor %xmm6,%xmm6 + pxor %xmm7,%xmm7 + pxor %xmm8,%xmm8 + pxor %xmm9,%xmm9 +.Lcbc_dec_tail_collected: + movups %xmm10,(%r8) + andq $15,%rdx + jnz .Lcbc_dec_tail_partial + movups %xmm2,(%rsi) + pxor %xmm2,%xmm2 + jmp .Lcbc_dec_ret +.align 16 +.Lcbc_dec_tail_partial: + movaps %xmm2,(%rsp) + pxor %xmm2,%xmm2 + movq $16,%rcx + movq %rsi,%rdi + subq %rdx,%rcx + leaq (%rsp),%rsi +.long 0x9066A4F3 + movdqa %xmm2,(%rsp) + +.Lcbc_dec_ret: + xorps %xmm0,%xmm0 + pxor %xmm1,%xmm1 + movq -8(%r11),%rbp +.cfi_restore %rbp + leaq (%r11),%rsp +.cfi_def_cfa_register %rsp +.Lcbc_ret: + .byte 0xf3,0xc3 +.cfi_endproc +.size aesni_cbc_encrypt,.-aesni_cbc_encrypt +.globl aesni_set_decrypt_key +.type aesni_set_decrypt_key,@function +.align 16 +aesni_set_decrypt_key: +.cfi_startproc +.byte 0x48,0x83,0xEC,0x08 +.cfi_adjust_cfa_offset 8 + call __aesni_set_encrypt_key + shll $4,%esi + testl %eax,%eax + jnz .Ldec_key_ret + leaq 16(%rdx,%rsi,1),%rdi + + movups (%rdx),%xmm0 + movups (%rdi),%xmm1 + movups %xmm0,(%rdi) + movups %xmm1,(%rdx) + leaq 16(%rdx),%rdx + leaq -16(%rdi),%rdi + +.Ldec_key_inverse: + movups (%rdx),%xmm0 + movups (%rdi),%xmm1 +.byte 102,15,56,219,192 +.byte 102,15,56,219,201 + leaq 16(%rdx),%rdx + leaq -16(%rdi),%rdi + movups %xmm0,16(%rdi) + movups %xmm1,-16(%rdx) + cmpq %rdx,%rdi + ja .Ldec_key_inverse + + movups (%rdx),%xmm0 +.byte 102,15,56,219,192 + pxor %xmm1,%xmm1 + movups %xmm0,(%rdi) + pxor %xmm0,%xmm0 +.Ldec_key_ret: + addq $8,%rsp +.cfi_adjust_cfa_offset -8 + .byte 0xf3,0xc3 +.cfi_endproc +.LSEH_end_set_decrypt_key: +.size aesni_set_decrypt_key,.-aesni_set_decrypt_key +.globl aesni_set_encrypt_key +.type aesni_set_encrypt_key,@function +.align 16 +aesni_set_encrypt_key: +__aesni_set_encrypt_key: +.cfi_startproc +.byte 0x48,0x83,0xEC,0x08 +.cfi_adjust_cfa_offset 8 + movq $-1,%rax + testq %rdi,%rdi + jz .Lenc_key_ret + testq %rdx,%rdx + jz .Lenc_key_ret + + movl $268437504,%r10d + movups (%rdi),%xmm0 + xorps %xmm4,%xmm4 + andl OPENSSL_ia32cap_P+4(%rip),%r10d + leaq 16(%rdx),%rax + cmpl $256,%esi + je .L14rounds + cmpl $192,%esi + je .L12rounds + cmpl $128,%esi + jne .Lbad_keybits + +.L10rounds: + movl $9,%esi + cmpl $268435456,%r10d + je .L10rounds_alt + + movups %xmm0,(%rdx) +.byte 102,15,58,223,200,1 + call .Lkey_expansion_128_cold +.byte 102,15,58,223,200,2 + call .Lkey_expansion_128 +.byte 102,15,58,223,200,4 + call .Lkey_expansion_128 +.byte 102,15,58,223,200,8 + call .Lkey_expansion_128 +.byte 102,15,58,223,200,16 + call .Lkey_expansion_128 +.byte 102,15,58,223,200,32 + call .Lkey_expansion_128 +.byte 102,15,58,223,200,64 + call .Lkey_expansion_128 +.byte 102,15,58,223,200,128 + call .Lkey_expansion_128 +.byte 102,15,58,223,200,27 + call .Lkey_expansion_128 +.byte 102,15,58,223,200,54 + call .Lkey_expansion_128 + movups %xmm0,(%rax) + movl %esi,80(%rax) + xorl %eax,%eax + jmp .Lenc_key_ret + +.align 16 +.L10rounds_alt: + movdqa .Lkey_rotate(%rip),%xmm5 + movl $8,%r10d + movdqa .Lkey_rcon1(%rip),%xmm4 + movdqa %xmm0,%xmm2 + movdqu %xmm0,(%rdx) + jmp .Loop_key128 + +.align 16 +.Loop_key128: +.byte 102,15,56,0,197 +.byte 102,15,56,221,196 + pslld $1,%xmm4 + leaq 16(%rax),%rax + + movdqa %xmm2,%xmm3 + pslldq $4,%xmm2 + pxor %xmm2,%xmm3 + pslldq $4,%xmm2 + pxor %xmm2,%xmm3 + pslldq $4,%xmm2 + pxor %xmm3,%xmm2 + + pxor %xmm2,%xmm0 + movdqu %xmm0,-16(%rax) + movdqa %xmm0,%xmm2 + + decl %r10d + jnz .Loop_key128 + + movdqa .Lkey_rcon1b(%rip),%xmm4 + +.byte 102,15,56,0,197 +.byte 102,15,56,221,196 + pslld $1,%xmm4 + + movdqa %xmm2,%xmm3 + pslldq $4,%xmm2 + pxor %xmm2,%xmm3 + pslldq $4,%xmm2 + pxor %xmm2,%xmm3 + pslldq $4,%xmm2 + pxor %xmm3,%xmm2 + + pxor %xmm2,%xmm0 + movdqu %xmm0,(%rax) + + movdqa %xmm0,%xmm2 +.byte 102,15,56,0,197 +.byte 102,15,56,221,196 + + movdqa %xmm2,%xmm3 + pslldq $4,%xmm2 + pxor %xmm2,%xmm3 + pslldq $4,%xmm2 + pxor %xmm2,%xmm3 + pslldq $4,%xmm2 + pxor %xmm3,%xmm2 + + pxor %xmm2,%xmm0 + movdqu %xmm0,16(%rax) + + movl %esi,96(%rax) + xorl %eax,%eax + jmp .Lenc_key_ret + +.align 16 +.L12rounds: + movq 16(%rdi),%xmm2 + movl $11,%esi + cmpl $268435456,%r10d + je .L12rounds_alt + + movups %xmm0,(%rdx) +.byte 102,15,58,223,202,1 + call .Lkey_expansion_192a_cold +.byte 102,15,58,223,202,2 + call .Lkey_expansion_192b +.byte 102,15,58,223,202,4 + call .Lkey_expansion_192a +.byte 102,15,58,223,202,8 + call .Lkey_expansion_192b +.byte 102,15,58,223,202,16 + call .Lkey_expansion_192a +.byte 102,15,58,223,202,32 + call .Lkey_expansion_192b +.byte 102,15,58,223,202,64 + call .Lkey_expansion_192a +.byte 102,15,58,223,202,128 + call .Lkey_expansion_192b + movups %xmm0,(%rax) + movl %esi,48(%rax) + xorq %rax,%rax + jmp .Lenc_key_ret + +.align 16 +.L12rounds_alt: + movdqa .Lkey_rotate192(%rip),%xmm5 + movdqa .Lkey_rcon1(%rip),%xmm4 + movl $8,%r10d + movdqu %xmm0,(%rdx) + jmp .Loop_key192 + +.align 16 +.Loop_key192: + movq %xmm2,0(%rax) + movdqa %xmm2,%xmm1 +.byte 102,15,56,0,213 +.byte 102,15,56,221,212 + pslld $1,%xmm4 + leaq 24(%rax),%rax + + movdqa %xmm0,%xmm3 + pslldq $4,%xmm0 + pxor %xmm0,%xmm3 + pslldq $4,%xmm0 + pxor %xmm0,%xmm3 + pslldq $4,%xmm0 + pxor %xmm3,%xmm0 + + pshufd $0xff,%xmm0,%xmm3 + pxor %xmm1,%xmm3 + pslldq $4,%xmm1 + pxor %xmm1,%xmm3 + + pxor %xmm2,%xmm0 + pxor %xmm3,%xmm2 + movdqu %xmm0,-16(%rax) + + decl %r10d + jnz .Loop_key192 + + movl %esi,32(%rax) + xorl %eax,%eax + jmp .Lenc_key_ret + +.align 16 +.L14rounds: + movups 16(%rdi),%xmm2 + movl $13,%esi + leaq 16(%rax),%rax + cmpl $268435456,%r10d + je .L14rounds_alt + + movups %xmm0,(%rdx) + movups %xmm2,16(%rdx) +.byte 102,15,58,223,202,1 + call .Lkey_expansion_256a_cold +.byte 102,15,58,223,200,1 + call .Lkey_expansion_256b +.byte 102,15,58,223,202,2 + call .Lkey_expansion_256a +.byte 102,15,58,223,200,2 + call .Lkey_expansion_256b +.byte 102,15,58,223,202,4 + call .Lkey_expansion_256a +.byte 102,15,58,223,200,4 + call .Lkey_expansion_256b +.byte 102,15,58,223,202,8 + call .Lkey_expansion_256a +.byte 102,15,58,223,200,8 + call .Lkey_expansion_256b +.byte 102,15,58,223,202,16 + call .Lkey_expansion_256a +.byte 102,15,58,223,200,16 + call .Lkey_expansion_256b +.byte 102,15,58,223,202,32 + call .Lkey_expansion_256a +.byte 102,15,58,223,200,32 + call .Lkey_expansion_256b +.byte 102,15,58,223,202,64 + call .Lkey_expansion_256a + movups %xmm0,(%rax) + movl %esi,16(%rax) + xorq %rax,%rax + jmp .Lenc_key_ret + +.align 16 +.L14rounds_alt: + movdqa .Lkey_rotate(%rip),%xmm5 + movdqa .Lkey_rcon1(%rip),%xmm4 + movl $7,%r10d + movdqu %xmm0,0(%rdx) + movdqa %xmm2,%xmm1 + movdqu %xmm2,16(%rdx) + jmp .Loop_key256 + +.align 16 +.Loop_key256: +.byte 102,15,56,0,213 +.byte 102,15,56,221,212 + + movdqa %xmm0,%xmm3 + pslldq $4,%xmm0 + pxor %xmm0,%xmm3 + pslldq $4,%xmm0 + pxor %xmm0,%xmm3 + pslldq $4,%xmm0 + pxor %xmm3,%xmm0 + pslld $1,%xmm4 + + pxor %xmm2,%xmm0 + movdqu %xmm0,(%rax) + + decl %r10d + jz .Ldone_key256 + + pshufd $0xff,%xmm0,%xmm2 + pxor %xmm3,%xmm3 +.byte 102,15,56,221,211 + + movdqa %xmm1,%xmm3 + pslldq $4,%xmm1 + pxor %xmm1,%xmm3 + pslldq $4,%xmm1 + pxor %xmm1,%xmm3 + pslldq $4,%xmm1 + pxor %xmm3,%xmm1 + + pxor %xmm1,%xmm2 + movdqu %xmm2,16(%rax) + leaq 32(%rax),%rax + movdqa %xmm2,%xmm1 + + jmp .Loop_key256 + +.Ldone_key256: + movl %esi,16(%rax) + xorl %eax,%eax + jmp .Lenc_key_ret + +.align 16 +.Lbad_keybits: + movq $-2,%rax +.Lenc_key_ret: + pxor %xmm0,%xmm0 + pxor %xmm1,%xmm1 + pxor %xmm2,%xmm2 + pxor %xmm3,%xmm3 + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + addq $8,%rsp +.cfi_adjust_cfa_offset -8 + .byte 0xf3,0xc3 +.LSEH_end_set_encrypt_key: + +.align 16 +.Lkey_expansion_128: + movups %xmm0,(%rax) + leaq 16(%rax),%rax +.Lkey_expansion_128_cold: + shufps $16,%xmm0,%xmm4 + xorps %xmm4,%xmm0 + shufps $140,%xmm0,%xmm4 + xorps %xmm4,%xmm0 + shufps $255,%xmm1,%xmm1 + xorps %xmm1,%xmm0 + .byte 0xf3,0xc3 + +.align 16 +.Lkey_expansion_192a: + movups %xmm0,(%rax) + leaq 16(%rax),%rax +.Lkey_expansion_192a_cold: + movaps %xmm2,%xmm5 +.Lkey_expansion_192b_warm: + shufps $16,%xmm0,%xmm4 + movdqa %xmm2,%xmm3 + xorps %xmm4,%xmm0 + shufps $140,%xmm0,%xmm4 + pslldq $4,%xmm3 + xorps %xmm4,%xmm0 + pshufd $85,%xmm1,%xmm1 + pxor %xmm3,%xmm2 + pxor %xmm1,%xmm0 + pshufd $255,%xmm0,%xmm3 + pxor %xmm3,%xmm2 + .byte 0xf3,0xc3 + +.align 16 +.Lkey_expansion_192b: + movaps %xmm0,%xmm3 + shufps $68,%xmm0,%xmm5 + movups %xmm5,(%rax) + shufps $78,%xmm2,%xmm3 + movups %xmm3,16(%rax) + leaq 32(%rax),%rax + jmp .Lkey_expansion_192b_warm + +.align 16 +.Lkey_expansion_256a: + movups %xmm2,(%rax) + leaq 16(%rax),%rax +.Lkey_expansion_256a_cold: + shufps $16,%xmm0,%xmm4 + xorps %xmm4,%xmm0 + shufps $140,%xmm0,%xmm4 + xorps %xmm4,%xmm0 + shufps $255,%xmm1,%xmm1 + xorps %xmm1,%xmm0 + .byte 0xf3,0xc3 + +.align 16 +.Lkey_expansion_256b: + movups %xmm0,(%rax) + leaq 16(%rax),%rax + + shufps $16,%xmm2,%xmm4 + xorps %xmm4,%xmm2 + shufps $140,%xmm2,%xmm4 + xorps %xmm4,%xmm2 + shufps $170,%xmm1,%xmm1 + xorps %xmm1,%xmm2 + .byte 0xf3,0xc3 +.cfi_endproc +.size aesni_set_encrypt_key,.-aesni_set_encrypt_key +.size __aesni_set_encrypt_key,.-__aesni_set_encrypt_key +.align 64 +.Lbswap_mask: +.byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 +.Lincrement32: +.long 6,6,6,0 +.Lincrement64: +.long 1,0,0,0 +.Lxts_magic: +.long 0x87,0,1,0 +.Lincrement1: +.byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +.Lkey_rotate: +.long 0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d +.Lkey_rotate192: +.long 0x04070605,0x04070605,0x04070605,0x04070605 +.Lkey_rcon1: +.long 1,1,1,1 +.Lkey_rcon1b: +.long 0x1b,0x1b,0x1b,0x1b + +.byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69,83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 64 diff --git a/vere/ext/openssl/gen/linux-x86_64/crypto/aes/vpaes-x86_64.s b/vere/ext/openssl/gen/linux-x86_64/crypto/aes/vpaes-x86_64.s new file mode 100644 index 0000000..5bf0fb1 --- /dev/null +++ b/vere/ext/openssl/gen/linux-x86_64/crypto/aes/vpaes-x86_64.s @@ -0,0 +1,853 @@ +.text + + + + + + + + + + + + + + + + +.type _vpaes_encrypt_core,@function +.align 16 +_vpaes_encrypt_core: +.cfi_startproc + movq %rdx,%r9 + movq $16,%r11 + movl 240(%rdx),%eax + movdqa %xmm9,%xmm1 + movdqa .Lk_ipt(%rip),%xmm2 + pandn %xmm0,%xmm1 + movdqu (%r9),%xmm5 + psrld $4,%xmm1 + pand %xmm9,%xmm0 +.byte 102,15,56,0,208 + movdqa .Lk_ipt+16(%rip),%xmm0 +.byte 102,15,56,0,193 + pxor %xmm5,%xmm2 + addq $16,%r9 + pxor %xmm2,%xmm0 + leaq .Lk_mc_backward(%rip),%r10 + jmp .Lenc_entry + +.align 16 +.Lenc_loop: + + movdqa %xmm13,%xmm4 + movdqa %xmm12,%xmm0 +.byte 102,15,56,0,226 +.byte 102,15,56,0,195 + pxor %xmm5,%xmm4 + movdqa %xmm15,%xmm5 + pxor %xmm4,%xmm0 + movdqa -64(%r11,%r10,1),%xmm1 +.byte 102,15,56,0,234 + movdqa (%r11,%r10,1),%xmm4 + movdqa %xmm14,%xmm2 +.byte 102,15,56,0,211 + movdqa %xmm0,%xmm3 + pxor %xmm5,%xmm2 +.byte 102,15,56,0,193 + addq $16,%r9 + pxor %xmm2,%xmm0 +.byte 102,15,56,0,220 + addq $16,%r11 + pxor %xmm0,%xmm3 +.byte 102,15,56,0,193 + andq $0x30,%r11 + subq $1,%rax + pxor %xmm3,%xmm0 + +.Lenc_entry: + + movdqa %xmm9,%xmm1 + movdqa %xmm11,%xmm5 + pandn %xmm0,%xmm1 + psrld $4,%xmm1 + pand %xmm9,%xmm0 +.byte 102,15,56,0,232 + movdqa %xmm10,%xmm3 + pxor %xmm1,%xmm0 +.byte 102,15,56,0,217 + movdqa %xmm10,%xmm4 + pxor %xmm5,%xmm3 +.byte 102,15,56,0,224 + movdqa %xmm10,%xmm2 + pxor %xmm5,%xmm4 +.byte 102,15,56,0,211 + movdqa %xmm10,%xmm3 + pxor %xmm0,%xmm2 +.byte 102,15,56,0,220 + movdqu (%r9),%xmm5 + pxor %xmm1,%xmm3 + jnz .Lenc_loop + + + movdqa -96(%r10),%xmm4 + movdqa -80(%r10),%xmm0 +.byte 102,15,56,0,226 + pxor %xmm5,%xmm4 +.byte 102,15,56,0,195 + movdqa 64(%r11,%r10,1),%xmm1 + pxor %xmm4,%xmm0 +.byte 102,15,56,0,193 + .byte 0xf3,0xc3 +.cfi_endproc +.size _vpaes_encrypt_core,.-_vpaes_encrypt_core + + + + + + +.type _vpaes_decrypt_core,@function +.align 16 +_vpaes_decrypt_core: +.cfi_startproc + movq %rdx,%r9 + movl 240(%rdx),%eax + movdqa %xmm9,%xmm1 + movdqa .Lk_dipt(%rip),%xmm2 + pandn %xmm0,%xmm1 + movq %rax,%r11 + psrld $4,%xmm1 + movdqu (%r9),%xmm5 + shlq $4,%r11 + pand %xmm9,%xmm0 +.byte 102,15,56,0,208 + movdqa .Lk_dipt+16(%rip),%xmm0 + xorq $0x30,%r11 + leaq .Lk_dsbd(%rip),%r10 +.byte 102,15,56,0,193 + andq $0x30,%r11 + pxor %xmm5,%xmm2 + movdqa .Lk_mc_forward+48(%rip),%xmm5 + pxor %xmm2,%xmm0 + addq $16,%r9 + addq %r10,%r11 + jmp .Ldec_entry + +.align 16 +.Ldec_loop: + + + + movdqa -32(%r10),%xmm4 + movdqa -16(%r10),%xmm1 +.byte 102,15,56,0,226 +.byte 102,15,56,0,203 + pxor %xmm4,%xmm0 + movdqa 0(%r10),%xmm4 + pxor %xmm1,%xmm0 + movdqa 16(%r10),%xmm1 + +.byte 102,15,56,0,226 +.byte 102,15,56,0,197 +.byte 102,15,56,0,203 + pxor %xmm4,%xmm0 + movdqa 32(%r10),%xmm4 + pxor %xmm1,%xmm0 + movdqa 48(%r10),%xmm1 + +.byte 102,15,56,0,226 +.byte 102,15,56,0,197 +.byte 102,15,56,0,203 + pxor %xmm4,%xmm0 + movdqa 64(%r10),%xmm4 + pxor %xmm1,%xmm0 + movdqa 80(%r10),%xmm1 + +.byte 102,15,56,0,226 +.byte 102,15,56,0,197 +.byte 102,15,56,0,203 + pxor %xmm4,%xmm0 + addq $16,%r9 +.byte 102,15,58,15,237,12 + pxor %xmm1,%xmm0 + subq $1,%rax + +.Ldec_entry: + + movdqa %xmm9,%xmm1 + pandn %xmm0,%xmm1 + movdqa %xmm11,%xmm2 + psrld $4,%xmm1 + pand %xmm9,%xmm0 +.byte 102,15,56,0,208 + movdqa %xmm10,%xmm3 + pxor %xmm1,%xmm0 +.byte 102,15,56,0,217 + movdqa %xmm10,%xmm4 + pxor %xmm2,%xmm3 +.byte 102,15,56,0,224 + pxor %xmm2,%xmm4 + movdqa %xmm10,%xmm2 +.byte 102,15,56,0,211 + movdqa %xmm10,%xmm3 + pxor %xmm0,%xmm2 +.byte 102,15,56,0,220 + movdqu (%r9),%xmm0 + pxor %xmm1,%xmm3 + jnz .Ldec_loop + + + movdqa 96(%r10),%xmm4 +.byte 102,15,56,0,226 + pxor %xmm0,%xmm4 + movdqa 112(%r10),%xmm0 + movdqa -352(%r11),%xmm2 +.byte 102,15,56,0,195 + pxor %xmm4,%xmm0 +.byte 102,15,56,0,194 + .byte 0xf3,0xc3 +.cfi_endproc +.size _vpaes_decrypt_core,.-_vpaes_decrypt_core + + + + + + +.type _vpaes_schedule_core,@function +.align 16 +_vpaes_schedule_core: +.cfi_startproc + + + + + + call _vpaes_preheat + movdqa .Lk_rcon(%rip),%xmm8 + movdqu (%rdi),%xmm0 + + + movdqa %xmm0,%xmm3 + leaq .Lk_ipt(%rip),%r11 + call _vpaes_schedule_transform + movdqa %xmm0,%xmm7 + + leaq .Lk_sr(%rip),%r10 + testq %rcx,%rcx + jnz .Lschedule_am_decrypting + + + movdqu %xmm0,(%rdx) + jmp .Lschedule_go + +.Lschedule_am_decrypting: + + movdqa (%r8,%r10,1),%xmm1 +.byte 102,15,56,0,217 + movdqu %xmm3,(%rdx) + xorq $0x30,%r8 + +.Lschedule_go: + cmpl $192,%esi + ja .Lschedule_256 + je .Lschedule_192 + + + + + + + + + + +.Lschedule_128: + movl $10,%esi + +.Loop_schedule_128: + call _vpaes_schedule_round + decq %rsi + jz .Lschedule_mangle_last + call _vpaes_schedule_mangle + jmp .Loop_schedule_128 + + + + + + + + + + + + + + + + +.align 16 +.Lschedule_192: + movdqu 8(%rdi),%xmm0 + call _vpaes_schedule_transform + movdqa %xmm0,%xmm6 + pxor %xmm4,%xmm4 + movhlps %xmm4,%xmm6 + movl $4,%esi + +.Loop_schedule_192: + call _vpaes_schedule_round +.byte 102,15,58,15,198,8 + call _vpaes_schedule_mangle + call _vpaes_schedule_192_smear + call _vpaes_schedule_mangle + call _vpaes_schedule_round + decq %rsi + jz .Lschedule_mangle_last + call _vpaes_schedule_mangle + call _vpaes_schedule_192_smear + jmp .Loop_schedule_192 + + + + + + + + + + + +.align 16 +.Lschedule_256: + movdqu 16(%rdi),%xmm0 + call _vpaes_schedule_transform + movl $7,%esi + +.Loop_schedule_256: + call _vpaes_schedule_mangle + movdqa %xmm0,%xmm6 + + + call _vpaes_schedule_round + decq %rsi + jz .Lschedule_mangle_last + call _vpaes_schedule_mangle + + + pshufd $0xFF,%xmm0,%xmm0 + movdqa %xmm7,%xmm5 + movdqa %xmm6,%xmm7 + call _vpaes_schedule_low_round + movdqa %xmm5,%xmm7 + + jmp .Loop_schedule_256 + + + + + + + + + + + + +.align 16 +.Lschedule_mangle_last: + + leaq .Lk_deskew(%rip),%r11 + testq %rcx,%rcx + jnz .Lschedule_mangle_last_dec + + + movdqa (%r8,%r10,1),%xmm1 +.byte 102,15,56,0,193 + leaq .Lk_opt(%rip),%r11 + addq $32,%rdx + +.Lschedule_mangle_last_dec: + addq $-16,%rdx + pxor .Lk_s63(%rip),%xmm0 + call _vpaes_schedule_transform + movdqu %xmm0,(%rdx) + + + pxor %xmm0,%xmm0 + pxor %xmm1,%xmm1 + pxor %xmm2,%xmm2 + pxor %xmm3,%xmm3 + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + pxor %xmm6,%xmm6 + pxor %xmm7,%xmm7 + .byte 0xf3,0xc3 +.cfi_endproc +.size _vpaes_schedule_core,.-_vpaes_schedule_core + + + + + + + + + + + + + + + +.type _vpaes_schedule_192_smear,@function +.align 16 +_vpaes_schedule_192_smear: +.cfi_startproc + pshufd $0x80,%xmm6,%xmm1 + pshufd $0xFE,%xmm7,%xmm0 + pxor %xmm1,%xmm6 + pxor %xmm1,%xmm1 + pxor %xmm0,%xmm6 + movdqa %xmm6,%xmm0 + movhlps %xmm1,%xmm6 + .byte 0xf3,0xc3 +.cfi_endproc +.size _vpaes_schedule_192_smear,.-_vpaes_schedule_192_smear + + + + + + + + + + + + + + + + + + + +.type _vpaes_schedule_round,@function +.align 16 +_vpaes_schedule_round: +.cfi_startproc + + pxor %xmm1,%xmm1 +.byte 102,65,15,58,15,200,15 +.byte 102,69,15,58,15,192,15 + pxor %xmm1,%xmm7 + + + pshufd $0xFF,%xmm0,%xmm0 +.byte 102,15,58,15,192,1 + + + + +_vpaes_schedule_low_round: + + movdqa %xmm7,%xmm1 + pslldq $4,%xmm7 + pxor %xmm1,%xmm7 + movdqa %xmm7,%xmm1 + pslldq $8,%xmm7 + pxor %xmm1,%xmm7 + pxor .Lk_s63(%rip),%xmm7 + + + movdqa %xmm9,%xmm1 + pandn %xmm0,%xmm1 + psrld $4,%xmm1 + pand %xmm9,%xmm0 + movdqa %xmm11,%xmm2 +.byte 102,15,56,0,208 + pxor %xmm1,%xmm0 + movdqa %xmm10,%xmm3 +.byte 102,15,56,0,217 + pxor %xmm2,%xmm3 + movdqa %xmm10,%xmm4 +.byte 102,15,56,0,224 + pxor %xmm2,%xmm4 + movdqa %xmm10,%xmm2 +.byte 102,15,56,0,211 + pxor %xmm0,%xmm2 + movdqa %xmm10,%xmm3 +.byte 102,15,56,0,220 + pxor %xmm1,%xmm3 + movdqa %xmm13,%xmm4 +.byte 102,15,56,0,226 + movdqa %xmm12,%xmm0 +.byte 102,15,56,0,195 + pxor %xmm4,%xmm0 + + + pxor %xmm7,%xmm0 + movdqa %xmm0,%xmm7 + .byte 0xf3,0xc3 +.cfi_endproc +.size _vpaes_schedule_round,.-_vpaes_schedule_round + + + + + + + + + + +.type _vpaes_schedule_transform,@function +.align 16 +_vpaes_schedule_transform: +.cfi_startproc + movdqa %xmm9,%xmm1 + pandn %xmm0,%xmm1 + psrld $4,%xmm1 + pand %xmm9,%xmm0 + movdqa (%r11),%xmm2 +.byte 102,15,56,0,208 + movdqa 16(%r11),%xmm0 +.byte 102,15,56,0,193 + pxor %xmm2,%xmm0 + .byte 0xf3,0xc3 +.cfi_endproc +.size _vpaes_schedule_transform,.-_vpaes_schedule_transform + + + + + + + + + + + + + + + + + + + + + + + + +.type _vpaes_schedule_mangle,@function +.align 16 +_vpaes_schedule_mangle: +.cfi_startproc + movdqa %xmm0,%xmm4 + movdqa .Lk_mc_forward(%rip),%xmm5 + testq %rcx,%rcx + jnz .Lschedule_mangle_dec + + + addq $16,%rdx + pxor .Lk_s63(%rip),%xmm4 +.byte 102,15,56,0,229 + movdqa %xmm4,%xmm3 +.byte 102,15,56,0,229 + pxor %xmm4,%xmm3 +.byte 102,15,56,0,229 + pxor %xmm4,%xmm3 + + jmp .Lschedule_mangle_both +.align 16 +.Lschedule_mangle_dec: + + leaq .Lk_dksd(%rip),%r11 + movdqa %xmm9,%xmm1 + pandn %xmm4,%xmm1 + psrld $4,%xmm1 + pand %xmm9,%xmm4 + + movdqa 0(%r11),%xmm2 +.byte 102,15,56,0,212 + movdqa 16(%r11),%xmm3 +.byte 102,15,56,0,217 + pxor %xmm2,%xmm3 +.byte 102,15,56,0,221 + + movdqa 32(%r11),%xmm2 +.byte 102,15,56,0,212 + pxor %xmm3,%xmm2 + movdqa 48(%r11),%xmm3 +.byte 102,15,56,0,217 + pxor %xmm2,%xmm3 +.byte 102,15,56,0,221 + + movdqa 64(%r11),%xmm2 +.byte 102,15,56,0,212 + pxor %xmm3,%xmm2 + movdqa 80(%r11),%xmm3 +.byte 102,15,56,0,217 + pxor %xmm2,%xmm3 +.byte 102,15,56,0,221 + + movdqa 96(%r11),%xmm2 +.byte 102,15,56,0,212 + pxor %xmm3,%xmm2 + movdqa 112(%r11),%xmm3 +.byte 102,15,56,0,217 + pxor %xmm2,%xmm3 + + addq $-16,%rdx + +.Lschedule_mangle_both: + movdqa (%r8,%r10,1),%xmm1 +.byte 102,15,56,0,217 + addq $-16,%r8 + andq $0x30,%r8 + movdqu %xmm3,(%rdx) + .byte 0xf3,0xc3 +.cfi_endproc +.size _vpaes_schedule_mangle,.-_vpaes_schedule_mangle + + + + +.globl vpaes_set_encrypt_key +.type vpaes_set_encrypt_key,@function +.align 16 +vpaes_set_encrypt_key: +.cfi_startproc + movl %esi,%eax + shrl $5,%eax + addl $5,%eax + movl %eax,240(%rdx) + + movl $0,%ecx + movl $0x30,%r8d + call _vpaes_schedule_core + xorl %eax,%eax + .byte 0xf3,0xc3 +.cfi_endproc +.size vpaes_set_encrypt_key,.-vpaes_set_encrypt_key + +.globl vpaes_set_decrypt_key +.type vpaes_set_decrypt_key,@function +.align 16 +vpaes_set_decrypt_key: +.cfi_startproc + movl %esi,%eax + shrl $5,%eax + addl $5,%eax + movl %eax,240(%rdx) + shll $4,%eax + leaq 16(%rdx,%rax,1),%rdx + + movl $1,%ecx + movl %esi,%r8d + shrl $1,%r8d + andl $32,%r8d + xorl $32,%r8d + call _vpaes_schedule_core + xorl %eax,%eax + .byte 0xf3,0xc3 +.cfi_endproc +.size vpaes_set_decrypt_key,.-vpaes_set_decrypt_key + +.globl vpaes_encrypt +.type vpaes_encrypt,@function +.align 16 +vpaes_encrypt: +.cfi_startproc + movdqu (%rdi),%xmm0 + call _vpaes_preheat + call _vpaes_encrypt_core + movdqu %xmm0,(%rsi) + .byte 0xf3,0xc3 +.cfi_endproc +.size vpaes_encrypt,.-vpaes_encrypt + +.globl vpaes_decrypt +.type vpaes_decrypt,@function +.align 16 +vpaes_decrypt: +.cfi_startproc + movdqu (%rdi),%xmm0 + call _vpaes_preheat + call _vpaes_decrypt_core + movdqu %xmm0,(%rsi) + .byte 0xf3,0xc3 +.cfi_endproc +.size vpaes_decrypt,.-vpaes_decrypt +.globl vpaes_cbc_encrypt +.type vpaes_cbc_encrypt,@function +.align 16 +vpaes_cbc_encrypt: +.cfi_startproc + xchgq %rcx,%rdx + subq $16,%rcx + jc .Lcbc_abort + movdqu (%r8),%xmm6 + subq %rdi,%rsi + call _vpaes_preheat + cmpl $0,%r9d + je .Lcbc_dec_loop + jmp .Lcbc_enc_loop +.align 16 +.Lcbc_enc_loop: + movdqu (%rdi),%xmm0 + pxor %xmm6,%xmm0 + call _vpaes_encrypt_core + movdqa %xmm0,%xmm6 + movdqu %xmm0,(%rsi,%rdi,1) + leaq 16(%rdi),%rdi + subq $16,%rcx + jnc .Lcbc_enc_loop + jmp .Lcbc_done +.align 16 +.Lcbc_dec_loop: + movdqu (%rdi),%xmm0 + movdqa %xmm0,%xmm7 + call _vpaes_decrypt_core + pxor %xmm6,%xmm0 + movdqa %xmm7,%xmm6 + movdqu %xmm0,(%rsi,%rdi,1) + leaq 16(%rdi),%rdi + subq $16,%rcx + jnc .Lcbc_dec_loop +.Lcbc_done: + movdqu %xmm6,(%r8) +.Lcbc_abort: + .byte 0xf3,0xc3 +.cfi_endproc +.size vpaes_cbc_encrypt,.-vpaes_cbc_encrypt + + + + + + +.type _vpaes_preheat,@function +.align 16 +_vpaes_preheat: +.cfi_startproc + leaq .Lk_s0F(%rip),%r10 + movdqa -32(%r10),%xmm10 + movdqa -16(%r10),%xmm11 + movdqa 0(%r10),%xmm9 + movdqa 48(%r10),%xmm13 + movdqa 64(%r10),%xmm12 + movdqa 80(%r10),%xmm15 + movdqa 96(%r10),%xmm14 + .byte 0xf3,0xc3 +.cfi_endproc +.size _vpaes_preheat,.-_vpaes_preheat + + + + + +.type _vpaes_consts,@object +.align 64 +_vpaes_consts: +.Lk_inv: +.quad 0x0E05060F0D080180, 0x040703090A0B0C02 +.quad 0x01040A060F0B0780, 0x030D0E0C02050809 + +.Lk_s0F: +.quad 0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F + +.Lk_ipt: +.quad 0xC2B2E8985A2A7000, 0xCABAE09052227808 +.quad 0x4C01307D317C4D00, 0xCD80B1FCB0FDCC81 + +.Lk_sb1: +.quad 0xB19BE18FCB503E00, 0xA5DF7A6E142AF544 +.quad 0x3618D415FAE22300, 0x3BF7CCC10D2ED9EF +.Lk_sb2: +.quad 0xE27A93C60B712400, 0x5EB7E955BC982FCD +.quad 0x69EB88400AE12900, 0xC2A163C8AB82234A +.Lk_sbo: +.quad 0xD0D26D176FBDC700, 0x15AABF7AC502A878 +.quad 0xCFE474A55FBB6A00, 0x8E1E90D1412B35FA + +.Lk_mc_forward: +.quad 0x0407060500030201, 0x0C0F0E0D080B0A09 +.quad 0x080B0A0904070605, 0x000302010C0F0E0D +.quad 0x0C0F0E0D080B0A09, 0x0407060500030201 +.quad 0x000302010C0F0E0D, 0x080B0A0904070605 + +.Lk_mc_backward: +.quad 0x0605040702010003, 0x0E0D0C0F0A09080B +.quad 0x020100030E0D0C0F, 0x0A09080B06050407 +.quad 0x0E0D0C0F0A09080B, 0x0605040702010003 +.quad 0x0A09080B06050407, 0x020100030E0D0C0F + +.Lk_sr: +.quad 0x0706050403020100, 0x0F0E0D0C0B0A0908 +.quad 0x030E09040F0A0500, 0x0B06010C07020D08 +.quad 0x0F060D040B020900, 0x070E050C030A0108 +.quad 0x0B0E0104070A0D00, 0x0306090C0F020508 + +.Lk_rcon: +.quad 0x1F8391B9AF9DEEB6, 0x702A98084D7C7D81 + +.Lk_s63: +.quad 0x5B5B5B5B5B5B5B5B, 0x5B5B5B5B5B5B5B5B + +.Lk_opt: +.quad 0xFF9F4929D6B66000, 0xF7974121DEBE6808 +.quad 0x01EDBD5150BCEC00, 0xE10D5DB1B05C0CE0 + +.Lk_deskew: +.quad 0x07E4A34047A4E300, 0x1DFEB95A5DBEF91A +.quad 0x5F36B5DC83EA6900, 0x2841C2ABF49D1E77 + + + + + +.Lk_dksd: +.quad 0xFEB91A5DA3E44700, 0x0740E3A45A1DBEF9 +.quad 0x41C277F4B5368300, 0x5FDC69EAAB289D1E +.Lk_dksb: +.quad 0x9A4FCA1F8550D500, 0x03D653861CC94C99 +.quad 0x115BEDA7B6FC4A00, 0xD993256F7E3482C8 +.Lk_dkse: +.quad 0xD5031CCA1FC9D600, 0x53859A4C994F5086 +.quad 0xA23196054FDC7BE8, 0xCD5EF96A20B31487 +.Lk_dks9: +.quad 0xB6116FC87ED9A700, 0x4AED933482255BFC +.quad 0x4576516227143300, 0x8BB89FACE9DAFDCE + + + + + +.Lk_dipt: +.quad 0x0F505B040B545F00, 0x154A411E114E451A +.quad 0x86E383E660056500, 0x12771772F491F194 + +.Lk_dsb9: +.quad 0x851C03539A86D600, 0xCAD51F504F994CC9 +.quad 0xC03B1789ECD74900, 0x725E2C9EB2FBA565 +.Lk_dsbd: +.quad 0x7D57CCDFE6B1A200, 0xF56E9B13882A4439 +.quad 0x3CE2FAF724C6CB00, 0x2931180D15DEEFD3 +.Lk_dsbb: +.quad 0xD022649296B44200, 0x602646F6B0F2D404 +.quad 0xC19498A6CD596700, 0xF3FF0C3E3255AA6B +.Lk_dsbe: +.quad 0x46F2929626D4D000, 0x2242600464B4F6B0 +.quad 0x0C55A6CDFFAAC100, 0x9467F36B98593E32 +.Lk_dsbo: +.quad 0x1387EA537EF94000, 0xC7AA6DB9D4943E2D +.quad 0x12D7560F93441D00, 0xCA4B8159D8C58E9C +.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0 +.align 64 +.size _vpaes_consts,.-_vpaes_consts diff --git a/vere/ext/openssl/gen/linux-x86_64/crypto/bn/rsaz-avx2.s b/vere/ext/openssl/gen/linux-x86_64/crypto/bn/rsaz-avx2.s new file mode 100644 index 0000000..ebba040 --- /dev/null +++ b/vere/ext/openssl/gen/linux-x86_64/crypto/bn/rsaz-avx2.s @@ -0,0 +1,1744 @@ +.text + +.globl rsaz_1024_sqr_avx2 +.type rsaz_1024_sqr_avx2,@function +.align 64 +rsaz_1024_sqr_avx2: +.cfi_startproc + leaq (%rsp),%rax +.cfi_def_cfa_register %rax + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_offset %r15,-56 + vzeroupper + movq %rax,%rbp +.cfi_def_cfa_register %rbp + movq %rdx,%r13 + subq $832,%rsp + movq %r13,%r15 + subq $-128,%rdi + subq $-128,%rsi + subq $-128,%r13 + + andq $4095,%r15 + addq $320,%r15 + shrq $12,%r15 + vpxor %ymm9,%ymm9,%ymm9 + jz .Lsqr_1024_no_n_copy + + + + + + subq $320,%rsp + vmovdqu 0-128(%r13),%ymm0 + andq $-2048,%rsp + vmovdqu 32-128(%r13),%ymm1 + vmovdqu 64-128(%r13),%ymm2 + vmovdqu 96-128(%r13),%ymm3 + vmovdqu 128-128(%r13),%ymm4 + vmovdqu 160-128(%r13),%ymm5 + vmovdqu 192-128(%r13),%ymm6 + vmovdqu 224-128(%r13),%ymm7 + vmovdqu 256-128(%r13),%ymm8 + leaq 832+128(%rsp),%r13 + vmovdqu %ymm0,0-128(%r13) + vmovdqu %ymm1,32-128(%r13) + vmovdqu %ymm2,64-128(%r13) + vmovdqu %ymm3,96-128(%r13) + vmovdqu %ymm4,128-128(%r13) + vmovdqu %ymm5,160-128(%r13) + vmovdqu %ymm6,192-128(%r13) + vmovdqu %ymm7,224-128(%r13) + vmovdqu %ymm8,256-128(%r13) + vmovdqu %ymm9,288-128(%r13) + +.Lsqr_1024_no_n_copy: + andq $-1024,%rsp + + vmovdqu 32-128(%rsi),%ymm1 + vmovdqu 64-128(%rsi),%ymm2 + vmovdqu 96-128(%rsi),%ymm3 + vmovdqu 128-128(%rsi),%ymm4 + vmovdqu 160-128(%rsi),%ymm5 + vmovdqu 192-128(%rsi),%ymm6 + vmovdqu 224-128(%rsi),%ymm7 + vmovdqu 256-128(%rsi),%ymm8 + + leaq 192(%rsp),%rbx + vmovdqu .Land_mask(%rip),%ymm15 + jmp .LOOP_GRANDE_SQR_1024 + +.align 32 +.LOOP_GRANDE_SQR_1024: + leaq 576+128(%rsp),%r9 + leaq 448(%rsp),%r12 + + + + + vpaddq %ymm1,%ymm1,%ymm1 + vpbroadcastq 0-128(%rsi),%ymm10 + vpaddq %ymm2,%ymm2,%ymm2 + vmovdqa %ymm1,0-128(%r9) + vpaddq %ymm3,%ymm3,%ymm3 + vmovdqa %ymm2,32-128(%r9) + vpaddq %ymm4,%ymm4,%ymm4 + vmovdqa %ymm3,64-128(%r9) + vpaddq %ymm5,%ymm5,%ymm5 + vmovdqa %ymm4,96-128(%r9) + vpaddq %ymm6,%ymm6,%ymm6 + vmovdqa %ymm5,128-128(%r9) + vpaddq %ymm7,%ymm7,%ymm7 + vmovdqa %ymm6,160-128(%r9) + vpaddq %ymm8,%ymm8,%ymm8 + vmovdqa %ymm7,192-128(%r9) + vpxor %ymm9,%ymm9,%ymm9 + vmovdqa %ymm8,224-128(%r9) + + vpmuludq 0-128(%rsi),%ymm10,%ymm0 + vpbroadcastq 32-128(%rsi),%ymm11 + vmovdqu %ymm9,288-192(%rbx) + vpmuludq %ymm10,%ymm1,%ymm1 + vmovdqu %ymm9,320-448(%r12) + vpmuludq %ymm10,%ymm2,%ymm2 + vmovdqu %ymm9,352-448(%r12) + vpmuludq %ymm10,%ymm3,%ymm3 + vmovdqu %ymm9,384-448(%r12) + vpmuludq %ymm10,%ymm4,%ymm4 + vmovdqu %ymm9,416-448(%r12) + vpmuludq %ymm10,%ymm5,%ymm5 + vmovdqu %ymm9,448-448(%r12) + vpmuludq %ymm10,%ymm6,%ymm6 + vmovdqu %ymm9,480-448(%r12) + vpmuludq %ymm10,%ymm7,%ymm7 + vmovdqu %ymm9,512-448(%r12) + vpmuludq %ymm10,%ymm8,%ymm8 + vpbroadcastq 64-128(%rsi),%ymm10 + vmovdqu %ymm9,544-448(%r12) + + movq %rsi,%r15 + movl $4,%r14d + jmp .Lsqr_entry_1024 +.align 32 +.LOOP_SQR_1024: + vpbroadcastq 32-128(%r15),%ymm11 + vpmuludq 0-128(%rsi),%ymm10,%ymm0 + vpaddq 0-192(%rbx),%ymm0,%ymm0 + vpmuludq 0-128(%r9),%ymm10,%ymm1 + vpaddq 32-192(%rbx),%ymm1,%ymm1 + vpmuludq 32-128(%r9),%ymm10,%ymm2 + vpaddq 64-192(%rbx),%ymm2,%ymm2 + vpmuludq 64-128(%r9),%ymm10,%ymm3 + vpaddq 96-192(%rbx),%ymm3,%ymm3 + vpmuludq 96-128(%r9),%ymm10,%ymm4 + vpaddq 128-192(%rbx),%ymm4,%ymm4 + vpmuludq 128-128(%r9),%ymm10,%ymm5 + vpaddq 160-192(%rbx),%ymm5,%ymm5 + vpmuludq 160-128(%r9),%ymm10,%ymm6 + vpaddq 192-192(%rbx),%ymm6,%ymm6 + vpmuludq 192-128(%r9),%ymm10,%ymm7 + vpaddq 224-192(%rbx),%ymm7,%ymm7 + vpmuludq 224-128(%r9),%ymm10,%ymm8 + vpbroadcastq 64-128(%r15),%ymm10 + vpaddq 256-192(%rbx),%ymm8,%ymm8 +.Lsqr_entry_1024: + vmovdqu %ymm0,0-192(%rbx) + vmovdqu %ymm1,32-192(%rbx) + + vpmuludq 32-128(%rsi),%ymm11,%ymm12 + vpaddq %ymm12,%ymm2,%ymm2 + vpmuludq 32-128(%r9),%ymm11,%ymm14 + vpaddq %ymm14,%ymm3,%ymm3 + vpmuludq 64-128(%r9),%ymm11,%ymm13 + vpaddq %ymm13,%ymm4,%ymm4 + vpmuludq 96-128(%r9),%ymm11,%ymm12 + vpaddq %ymm12,%ymm5,%ymm5 + vpmuludq 128-128(%r9),%ymm11,%ymm14 + vpaddq %ymm14,%ymm6,%ymm6 + vpmuludq 160-128(%r9),%ymm11,%ymm13 + vpaddq %ymm13,%ymm7,%ymm7 + vpmuludq 192-128(%r9),%ymm11,%ymm12 + vpaddq %ymm12,%ymm8,%ymm8 + vpmuludq 224-128(%r9),%ymm11,%ymm0 + vpbroadcastq 96-128(%r15),%ymm11 + vpaddq 288-192(%rbx),%ymm0,%ymm0 + + vmovdqu %ymm2,64-192(%rbx) + vmovdqu %ymm3,96-192(%rbx) + + vpmuludq 64-128(%rsi),%ymm10,%ymm13 + vpaddq %ymm13,%ymm4,%ymm4 + vpmuludq 64-128(%r9),%ymm10,%ymm12 + vpaddq %ymm12,%ymm5,%ymm5 + vpmuludq 96-128(%r9),%ymm10,%ymm14 + vpaddq %ymm14,%ymm6,%ymm6 + vpmuludq 128-128(%r9),%ymm10,%ymm13 + vpaddq %ymm13,%ymm7,%ymm7 + vpmuludq 160-128(%r9),%ymm10,%ymm12 + vpaddq %ymm12,%ymm8,%ymm8 + vpmuludq 192-128(%r9),%ymm10,%ymm14 + vpaddq %ymm14,%ymm0,%ymm0 + vpmuludq 224-128(%r9),%ymm10,%ymm1 + vpbroadcastq 128-128(%r15),%ymm10 + vpaddq 320-448(%r12),%ymm1,%ymm1 + + vmovdqu %ymm4,128-192(%rbx) + vmovdqu %ymm5,160-192(%rbx) + + vpmuludq 96-128(%rsi),%ymm11,%ymm12 + vpaddq %ymm12,%ymm6,%ymm6 + vpmuludq 96-128(%r9),%ymm11,%ymm14 + vpaddq %ymm14,%ymm7,%ymm7 + vpmuludq 128-128(%r9),%ymm11,%ymm13 + vpaddq %ymm13,%ymm8,%ymm8 + vpmuludq 160-128(%r9),%ymm11,%ymm12 + vpaddq %ymm12,%ymm0,%ymm0 + vpmuludq 192-128(%r9),%ymm11,%ymm14 + vpaddq %ymm14,%ymm1,%ymm1 + vpmuludq 224-128(%r9),%ymm11,%ymm2 + vpbroadcastq 160-128(%r15),%ymm11 + vpaddq 352-448(%r12),%ymm2,%ymm2 + + vmovdqu %ymm6,192-192(%rbx) + vmovdqu %ymm7,224-192(%rbx) + + vpmuludq 128-128(%rsi),%ymm10,%ymm12 + vpaddq %ymm12,%ymm8,%ymm8 + vpmuludq 128-128(%r9),%ymm10,%ymm14 + vpaddq %ymm14,%ymm0,%ymm0 + vpmuludq 160-128(%r9),%ymm10,%ymm13 + vpaddq %ymm13,%ymm1,%ymm1 + vpmuludq 192-128(%r9),%ymm10,%ymm12 + vpaddq %ymm12,%ymm2,%ymm2 + vpmuludq 224-128(%r9),%ymm10,%ymm3 + vpbroadcastq 192-128(%r15),%ymm10 + vpaddq 384-448(%r12),%ymm3,%ymm3 + + vmovdqu %ymm8,256-192(%rbx) + vmovdqu %ymm0,288-192(%rbx) + leaq 8(%rbx),%rbx + + vpmuludq 160-128(%rsi),%ymm11,%ymm13 + vpaddq %ymm13,%ymm1,%ymm1 + vpmuludq 160-128(%r9),%ymm11,%ymm12 + vpaddq %ymm12,%ymm2,%ymm2 + vpmuludq 192-128(%r9),%ymm11,%ymm14 + vpaddq %ymm14,%ymm3,%ymm3 + vpmuludq 224-128(%r9),%ymm11,%ymm4 + vpbroadcastq 224-128(%r15),%ymm11 + vpaddq 416-448(%r12),%ymm4,%ymm4 + + vmovdqu %ymm1,320-448(%r12) + vmovdqu %ymm2,352-448(%r12) + + vpmuludq 192-128(%rsi),%ymm10,%ymm12 + vpaddq %ymm12,%ymm3,%ymm3 + vpmuludq 192-128(%r9),%ymm10,%ymm14 + vpbroadcastq 256-128(%r15),%ymm0 + vpaddq %ymm14,%ymm4,%ymm4 + vpmuludq 224-128(%r9),%ymm10,%ymm5 + vpbroadcastq 0+8-128(%r15),%ymm10 + vpaddq 448-448(%r12),%ymm5,%ymm5 + + vmovdqu %ymm3,384-448(%r12) + vmovdqu %ymm4,416-448(%r12) + leaq 8(%r15),%r15 + + vpmuludq 224-128(%rsi),%ymm11,%ymm12 + vpaddq %ymm12,%ymm5,%ymm5 + vpmuludq 224-128(%r9),%ymm11,%ymm6 + vpaddq 480-448(%r12),%ymm6,%ymm6 + + vpmuludq 256-128(%rsi),%ymm0,%ymm7 + vmovdqu %ymm5,448-448(%r12) + vpaddq 512-448(%r12),%ymm7,%ymm7 + vmovdqu %ymm6,480-448(%r12) + vmovdqu %ymm7,512-448(%r12) + leaq 8(%r12),%r12 + + decl %r14d + jnz .LOOP_SQR_1024 + + vmovdqu 256(%rsp),%ymm8 + vmovdqu 288(%rsp),%ymm1 + vmovdqu 320(%rsp),%ymm2 + leaq 192(%rsp),%rbx + + vpsrlq $29,%ymm8,%ymm14 + vpand %ymm15,%ymm8,%ymm8 + vpsrlq $29,%ymm1,%ymm11 + vpand %ymm15,%ymm1,%ymm1 + + vpermq $0x93,%ymm14,%ymm14 + vpxor %ymm9,%ymm9,%ymm9 + vpermq $0x93,%ymm11,%ymm11 + + vpblendd $3,%ymm9,%ymm14,%ymm10 + vpblendd $3,%ymm14,%ymm11,%ymm14 + vpaddq %ymm10,%ymm8,%ymm8 + vpblendd $3,%ymm11,%ymm9,%ymm11 + vpaddq %ymm14,%ymm1,%ymm1 + vpaddq %ymm11,%ymm2,%ymm2 + vmovdqu %ymm1,288-192(%rbx) + vmovdqu %ymm2,320-192(%rbx) + + movq (%rsp),%rax + movq 8(%rsp),%r10 + movq 16(%rsp),%r11 + movq 24(%rsp),%r12 + vmovdqu 32(%rsp),%ymm1 + vmovdqu 64-192(%rbx),%ymm2 + vmovdqu 96-192(%rbx),%ymm3 + vmovdqu 128-192(%rbx),%ymm4 + vmovdqu 160-192(%rbx),%ymm5 + vmovdqu 192-192(%rbx),%ymm6 + vmovdqu 224-192(%rbx),%ymm7 + + movq %rax,%r9 + imull %ecx,%eax + andl $0x1fffffff,%eax + vmovd %eax,%xmm12 + + movq %rax,%rdx + imulq -128(%r13),%rax + vpbroadcastq %xmm12,%ymm12 + addq %rax,%r9 + movq %rdx,%rax + imulq 8-128(%r13),%rax + shrq $29,%r9 + addq %rax,%r10 + movq %rdx,%rax + imulq 16-128(%r13),%rax + addq %r9,%r10 + addq %rax,%r11 + imulq 24-128(%r13),%rdx + addq %rdx,%r12 + + movq %r10,%rax + imull %ecx,%eax + andl $0x1fffffff,%eax + + movl $9,%r14d + jmp .LOOP_REDUCE_1024 + +.align 32 +.LOOP_REDUCE_1024: + vmovd %eax,%xmm13 + vpbroadcastq %xmm13,%ymm13 + + vpmuludq 32-128(%r13),%ymm12,%ymm10 + movq %rax,%rdx + imulq -128(%r13),%rax + vpaddq %ymm10,%ymm1,%ymm1 + addq %rax,%r10 + vpmuludq 64-128(%r13),%ymm12,%ymm14 + movq %rdx,%rax + imulq 8-128(%r13),%rax + vpaddq %ymm14,%ymm2,%ymm2 + vpmuludq 96-128(%r13),%ymm12,%ymm11 +.byte 0x67 + addq %rax,%r11 +.byte 0x67 + movq %rdx,%rax + imulq 16-128(%r13),%rax + shrq $29,%r10 + vpaddq %ymm11,%ymm3,%ymm3 + vpmuludq 128-128(%r13),%ymm12,%ymm10 + addq %rax,%r12 + addq %r10,%r11 + vpaddq %ymm10,%ymm4,%ymm4 + vpmuludq 160-128(%r13),%ymm12,%ymm14 + movq %r11,%rax + imull %ecx,%eax + vpaddq %ymm14,%ymm5,%ymm5 + vpmuludq 192-128(%r13),%ymm12,%ymm11 + andl $0x1fffffff,%eax + vpaddq %ymm11,%ymm6,%ymm6 + vpmuludq 224-128(%r13),%ymm12,%ymm10 + vpaddq %ymm10,%ymm7,%ymm7 + vpmuludq 256-128(%r13),%ymm12,%ymm14 + vmovd %eax,%xmm12 + + vpaddq %ymm14,%ymm8,%ymm8 + + vpbroadcastq %xmm12,%ymm12 + + vpmuludq 32-8-128(%r13),%ymm13,%ymm11 + vmovdqu 96-8-128(%r13),%ymm14 + movq %rax,%rdx + imulq -128(%r13),%rax + vpaddq %ymm11,%ymm1,%ymm1 + vpmuludq 64-8-128(%r13),%ymm13,%ymm10 + vmovdqu 128-8-128(%r13),%ymm11 + addq %rax,%r11 + movq %rdx,%rax + imulq 8-128(%r13),%rax + vpaddq %ymm10,%ymm2,%ymm2 + addq %r12,%rax + shrq $29,%r11 + vpmuludq %ymm13,%ymm14,%ymm14 + vmovdqu 160-8-128(%r13),%ymm10 + addq %r11,%rax + vpaddq %ymm14,%ymm3,%ymm3 + vpmuludq %ymm13,%ymm11,%ymm11 + vmovdqu 192-8-128(%r13),%ymm14 +.byte 0x67 + movq %rax,%r12 + imull %ecx,%eax + vpaddq %ymm11,%ymm4,%ymm4 + vpmuludq %ymm13,%ymm10,%ymm10 +.byte 0xc4,0x41,0x7e,0x6f,0x9d,0x58,0x00,0x00,0x00 + andl $0x1fffffff,%eax + vpaddq %ymm10,%ymm5,%ymm5 + vpmuludq %ymm13,%ymm14,%ymm14 + vmovdqu 256-8-128(%r13),%ymm10 + vpaddq %ymm14,%ymm6,%ymm6 + vpmuludq %ymm13,%ymm11,%ymm11 + vmovdqu 288-8-128(%r13),%ymm9 + vmovd %eax,%xmm0 + imulq -128(%r13),%rax + vpaddq %ymm11,%ymm7,%ymm7 + vpmuludq %ymm13,%ymm10,%ymm10 + vmovdqu 32-16-128(%r13),%ymm14 + vpbroadcastq %xmm0,%ymm0 + vpaddq %ymm10,%ymm8,%ymm8 + vpmuludq %ymm13,%ymm9,%ymm9 + vmovdqu 64-16-128(%r13),%ymm11 + addq %rax,%r12 + + vmovdqu 32-24-128(%r13),%ymm13 + vpmuludq %ymm12,%ymm14,%ymm14 + vmovdqu 96-16-128(%r13),%ymm10 + vpaddq %ymm14,%ymm1,%ymm1 + vpmuludq %ymm0,%ymm13,%ymm13 + vpmuludq %ymm12,%ymm11,%ymm11 +.byte 0xc4,0x41,0x7e,0x6f,0xb5,0xf0,0xff,0xff,0xff + vpaddq %ymm1,%ymm13,%ymm13 + vpaddq %ymm11,%ymm2,%ymm2 + vpmuludq %ymm12,%ymm10,%ymm10 + vmovdqu 160-16-128(%r13),%ymm11 +.byte 0x67 + vmovq %xmm13,%rax + vmovdqu %ymm13,(%rsp) + vpaddq %ymm10,%ymm3,%ymm3 + vpmuludq %ymm12,%ymm14,%ymm14 + vmovdqu 192-16-128(%r13),%ymm10 + vpaddq %ymm14,%ymm4,%ymm4 + vpmuludq %ymm12,%ymm11,%ymm11 + vmovdqu 224-16-128(%r13),%ymm14 + vpaddq %ymm11,%ymm5,%ymm5 + vpmuludq %ymm12,%ymm10,%ymm10 + vmovdqu 256-16-128(%r13),%ymm11 + vpaddq %ymm10,%ymm6,%ymm6 + vpmuludq %ymm12,%ymm14,%ymm14 + shrq $29,%r12 + vmovdqu 288-16-128(%r13),%ymm10 + addq %r12,%rax + vpaddq %ymm14,%ymm7,%ymm7 + vpmuludq %ymm12,%ymm11,%ymm11 + + movq %rax,%r9 + imull %ecx,%eax + vpaddq %ymm11,%ymm8,%ymm8 + vpmuludq %ymm12,%ymm10,%ymm10 + andl $0x1fffffff,%eax + vmovd %eax,%xmm12 + vmovdqu 96-24-128(%r13),%ymm11 +.byte 0x67 + vpaddq %ymm10,%ymm9,%ymm9 + vpbroadcastq %xmm12,%ymm12 + + vpmuludq 64-24-128(%r13),%ymm0,%ymm14 + vmovdqu 128-24-128(%r13),%ymm10 + movq %rax,%rdx + imulq -128(%r13),%rax + movq 8(%rsp),%r10 + vpaddq %ymm14,%ymm2,%ymm1 + vpmuludq %ymm0,%ymm11,%ymm11 + vmovdqu 160-24-128(%r13),%ymm14 + addq %rax,%r9 + movq %rdx,%rax + imulq 8-128(%r13),%rax +.byte 0x67 + shrq $29,%r9 + movq 16(%rsp),%r11 + vpaddq %ymm11,%ymm3,%ymm2 + vpmuludq %ymm0,%ymm10,%ymm10 + vmovdqu 192-24-128(%r13),%ymm11 + addq %rax,%r10 + movq %rdx,%rax + imulq 16-128(%r13),%rax + vpaddq %ymm10,%ymm4,%ymm3 + vpmuludq %ymm0,%ymm14,%ymm14 + vmovdqu 224-24-128(%r13),%ymm10 + imulq 24-128(%r13),%rdx + addq %rax,%r11 + leaq (%r9,%r10,1),%rax + vpaddq %ymm14,%ymm5,%ymm4 + vpmuludq %ymm0,%ymm11,%ymm11 + vmovdqu 256-24-128(%r13),%ymm14 + movq %rax,%r10 + imull %ecx,%eax + vpmuludq %ymm0,%ymm10,%ymm10 + vpaddq %ymm11,%ymm6,%ymm5 + vmovdqu 288-24-128(%r13),%ymm11 + andl $0x1fffffff,%eax + vpaddq %ymm10,%ymm7,%ymm6 + vpmuludq %ymm0,%ymm14,%ymm14 + addq 24(%rsp),%rdx + vpaddq %ymm14,%ymm8,%ymm7 + vpmuludq %ymm0,%ymm11,%ymm11 + vpaddq %ymm11,%ymm9,%ymm8 + vmovq %r12,%xmm9 + movq %rdx,%r12 + + decl %r14d + jnz .LOOP_REDUCE_1024 + leaq 448(%rsp),%r12 + vpaddq %ymm9,%ymm13,%ymm0 + vpxor %ymm9,%ymm9,%ymm9 + + vpaddq 288-192(%rbx),%ymm0,%ymm0 + vpaddq 320-448(%r12),%ymm1,%ymm1 + vpaddq 352-448(%r12),%ymm2,%ymm2 + vpaddq 384-448(%r12),%ymm3,%ymm3 + vpaddq 416-448(%r12),%ymm4,%ymm4 + vpaddq 448-448(%r12),%ymm5,%ymm5 + vpaddq 480-448(%r12),%ymm6,%ymm6 + vpaddq 512-448(%r12),%ymm7,%ymm7 + vpaddq 544-448(%r12),%ymm8,%ymm8 + + vpsrlq $29,%ymm0,%ymm14 + vpand %ymm15,%ymm0,%ymm0 + vpsrlq $29,%ymm1,%ymm11 + vpand %ymm15,%ymm1,%ymm1 + vpsrlq $29,%ymm2,%ymm12 + vpermq $0x93,%ymm14,%ymm14 + vpand %ymm15,%ymm2,%ymm2 + vpsrlq $29,%ymm3,%ymm13 + vpermq $0x93,%ymm11,%ymm11 + vpand %ymm15,%ymm3,%ymm3 + vpermq $0x93,%ymm12,%ymm12 + + vpblendd $3,%ymm9,%ymm14,%ymm10 + vpermq $0x93,%ymm13,%ymm13 + vpblendd $3,%ymm14,%ymm11,%ymm14 + vpaddq %ymm10,%ymm0,%ymm0 + vpblendd $3,%ymm11,%ymm12,%ymm11 + vpaddq %ymm14,%ymm1,%ymm1 + vpblendd $3,%ymm12,%ymm13,%ymm12 + vpaddq %ymm11,%ymm2,%ymm2 + vpblendd $3,%ymm13,%ymm9,%ymm13 + vpaddq %ymm12,%ymm3,%ymm3 + vpaddq %ymm13,%ymm4,%ymm4 + + vpsrlq $29,%ymm0,%ymm14 + vpand %ymm15,%ymm0,%ymm0 + vpsrlq $29,%ymm1,%ymm11 + vpand %ymm15,%ymm1,%ymm1 + vpsrlq $29,%ymm2,%ymm12 + vpermq $0x93,%ymm14,%ymm14 + vpand %ymm15,%ymm2,%ymm2 + vpsrlq $29,%ymm3,%ymm13 + vpermq $0x93,%ymm11,%ymm11 + vpand %ymm15,%ymm3,%ymm3 + vpermq $0x93,%ymm12,%ymm12 + + vpblendd $3,%ymm9,%ymm14,%ymm10 + vpermq $0x93,%ymm13,%ymm13 + vpblendd $3,%ymm14,%ymm11,%ymm14 + vpaddq %ymm10,%ymm0,%ymm0 + vpblendd $3,%ymm11,%ymm12,%ymm11 + vpaddq %ymm14,%ymm1,%ymm1 + vmovdqu %ymm0,0-128(%rdi) + vpblendd $3,%ymm12,%ymm13,%ymm12 + vpaddq %ymm11,%ymm2,%ymm2 + vmovdqu %ymm1,32-128(%rdi) + vpblendd $3,%ymm13,%ymm9,%ymm13 + vpaddq %ymm12,%ymm3,%ymm3 + vmovdqu %ymm2,64-128(%rdi) + vpaddq %ymm13,%ymm4,%ymm4 + vmovdqu %ymm3,96-128(%rdi) + vpsrlq $29,%ymm4,%ymm14 + vpand %ymm15,%ymm4,%ymm4 + vpsrlq $29,%ymm5,%ymm11 + vpand %ymm15,%ymm5,%ymm5 + vpsrlq $29,%ymm6,%ymm12 + vpermq $0x93,%ymm14,%ymm14 + vpand %ymm15,%ymm6,%ymm6 + vpsrlq $29,%ymm7,%ymm13 + vpermq $0x93,%ymm11,%ymm11 + vpand %ymm15,%ymm7,%ymm7 + vpsrlq $29,%ymm8,%ymm0 + vpermq $0x93,%ymm12,%ymm12 + vpand %ymm15,%ymm8,%ymm8 + vpermq $0x93,%ymm13,%ymm13 + + vpblendd $3,%ymm9,%ymm14,%ymm10 + vpermq $0x93,%ymm0,%ymm0 + vpblendd $3,%ymm14,%ymm11,%ymm14 + vpaddq %ymm10,%ymm4,%ymm4 + vpblendd $3,%ymm11,%ymm12,%ymm11 + vpaddq %ymm14,%ymm5,%ymm5 + vpblendd $3,%ymm12,%ymm13,%ymm12 + vpaddq %ymm11,%ymm6,%ymm6 + vpblendd $3,%ymm13,%ymm0,%ymm13 + vpaddq %ymm12,%ymm7,%ymm7 + vpaddq %ymm13,%ymm8,%ymm8 + + vpsrlq $29,%ymm4,%ymm14 + vpand %ymm15,%ymm4,%ymm4 + vpsrlq $29,%ymm5,%ymm11 + vpand %ymm15,%ymm5,%ymm5 + vpsrlq $29,%ymm6,%ymm12 + vpermq $0x93,%ymm14,%ymm14 + vpand %ymm15,%ymm6,%ymm6 + vpsrlq $29,%ymm7,%ymm13 + vpermq $0x93,%ymm11,%ymm11 + vpand %ymm15,%ymm7,%ymm7 + vpsrlq $29,%ymm8,%ymm0 + vpermq $0x93,%ymm12,%ymm12 + vpand %ymm15,%ymm8,%ymm8 + vpermq $0x93,%ymm13,%ymm13 + + vpblendd $3,%ymm9,%ymm14,%ymm10 + vpermq $0x93,%ymm0,%ymm0 + vpblendd $3,%ymm14,%ymm11,%ymm14 + vpaddq %ymm10,%ymm4,%ymm4 + vpblendd $3,%ymm11,%ymm12,%ymm11 + vpaddq %ymm14,%ymm5,%ymm5 + vmovdqu %ymm4,128-128(%rdi) + vpblendd $3,%ymm12,%ymm13,%ymm12 + vpaddq %ymm11,%ymm6,%ymm6 + vmovdqu %ymm5,160-128(%rdi) + vpblendd $3,%ymm13,%ymm0,%ymm13 + vpaddq %ymm12,%ymm7,%ymm7 + vmovdqu %ymm6,192-128(%rdi) + vpaddq %ymm13,%ymm8,%ymm8 + vmovdqu %ymm7,224-128(%rdi) + vmovdqu %ymm8,256-128(%rdi) + + movq %rdi,%rsi + decl %r8d + jne .LOOP_GRANDE_SQR_1024 + + vzeroall + movq %rbp,%rax +.cfi_def_cfa_register %rax + movq -48(%rax),%r15 +.cfi_restore %r15 + movq -40(%rax),%r14 +.cfi_restore %r14 + movq -32(%rax),%r13 +.cfi_restore %r13 + movq -24(%rax),%r12 +.cfi_restore %r12 + movq -16(%rax),%rbp +.cfi_restore %rbp + movq -8(%rax),%rbx +.cfi_restore %rbx + leaq (%rax),%rsp +.cfi_def_cfa_register %rsp +.Lsqr_1024_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size rsaz_1024_sqr_avx2,.-rsaz_1024_sqr_avx2 +.globl rsaz_1024_mul_avx2 +.type rsaz_1024_mul_avx2,@function +.align 64 +rsaz_1024_mul_avx2: +.cfi_startproc + leaq (%rsp),%rax +.cfi_def_cfa_register %rax + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_offset %r15,-56 + movq %rax,%rbp +.cfi_def_cfa_register %rbp + vzeroall + movq %rdx,%r13 + subq $64,%rsp + + + + + + +.byte 0x67,0x67 + movq %rsi,%r15 + andq $4095,%r15 + addq $320,%r15 + shrq $12,%r15 + movq %rsi,%r15 + cmovnzq %r13,%rsi + cmovnzq %r15,%r13 + + movq %rcx,%r15 + subq $-128,%rsi + subq $-128,%rcx + subq $-128,%rdi + + andq $4095,%r15 + addq $320,%r15 +.byte 0x67,0x67 + shrq $12,%r15 + jz .Lmul_1024_no_n_copy + + + + + + subq $320,%rsp + vmovdqu 0-128(%rcx),%ymm0 + andq $-512,%rsp + vmovdqu 32-128(%rcx),%ymm1 + vmovdqu 64-128(%rcx),%ymm2 + vmovdqu 96-128(%rcx),%ymm3 + vmovdqu 128-128(%rcx),%ymm4 + vmovdqu 160-128(%rcx),%ymm5 + vmovdqu 192-128(%rcx),%ymm6 + vmovdqu 224-128(%rcx),%ymm7 + vmovdqu 256-128(%rcx),%ymm8 + leaq 64+128(%rsp),%rcx + vmovdqu %ymm0,0-128(%rcx) + vpxor %ymm0,%ymm0,%ymm0 + vmovdqu %ymm1,32-128(%rcx) + vpxor %ymm1,%ymm1,%ymm1 + vmovdqu %ymm2,64-128(%rcx) + vpxor %ymm2,%ymm2,%ymm2 + vmovdqu %ymm3,96-128(%rcx) + vpxor %ymm3,%ymm3,%ymm3 + vmovdqu %ymm4,128-128(%rcx) + vpxor %ymm4,%ymm4,%ymm4 + vmovdqu %ymm5,160-128(%rcx) + vpxor %ymm5,%ymm5,%ymm5 + vmovdqu %ymm6,192-128(%rcx) + vpxor %ymm6,%ymm6,%ymm6 + vmovdqu %ymm7,224-128(%rcx) + vpxor %ymm7,%ymm7,%ymm7 + vmovdqu %ymm8,256-128(%rcx) + vmovdqa %ymm0,%ymm8 + vmovdqu %ymm9,288-128(%rcx) +.Lmul_1024_no_n_copy: + andq $-64,%rsp + + movq (%r13),%rbx + vpbroadcastq (%r13),%ymm10 + vmovdqu %ymm0,(%rsp) + xorq %r9,%r9 +.byte 0x67 + xorq %r10,%r10 + xorq %r11,%r11 + xorq %r12,%r12 + + vmovdqu .Land_mask(%rip),%ymm15 + movl $9,%r14d + vmovdqu %ymm9,288-128(%rdi) + jmp .Loop_mul_1024 + +.align 32 +.Loop_mul_1024: + vpsrlq $29,%ymm3,%ymm9 + movq %rbx,%rax + imulq -128(%rsi),%rax + addq %r9,%rax + movq %rbx,%r10 + imulq 8-128(%rsi),%r10 + addq 8(%rsp),%r10 + + movq %rax,%r9 + imull %r8d,%eax + andl $0x1fffffff,%eax + + movq %rbx,%r11 + imulq 16-128(%rsi),%r11 + addq 16(%rsp),%r11 + + movq %rbx,%r12 + imulq 24-128(%rsi),%r12 + addq 24(%rsp),%r12 + vpmuludq 32-128(%rsi),%ymm10,%ymm0 + vmovd %eax,%xmm11 + vpaddq %ymm0,%ymm1,%ymm1 + vpmuludq 64-128(%rsi),%ymm10,%ymm12 + vpbroadcastq %xmm11,%ymm11 + vpaddq %ymm12,%ymm2,%ymm2 + vpmuludq 96-128(%rsi),%ymm10,%ymm13 + vpand %ymm15,%ymm3,%ymm3 + vpaddq %ymm13,%ymm3,%ymm3 + vpmuludq 128-128(%rsi),%ymm10,%ymm0 + vpaddq %ymm0,%ymm4,%ymm4 + vpmuludq 160-128(%rsi),%ymm10,%ymm12 + vpaddq %ymm12,%ymm5,%ymm5 + vpmuludq 192-128(%rsi),%ymm10,%ymm13 + vpaddq %ymm13,%ymm6,%ymm6 + vpmuludq 224-128(%rsi),%ymm10,%ymm0 + vpermq $0x93,%ymm9,%ymm9 + vpaddq %ymm0,%ymm7,%ymm7 + vpmuludq 256-128(%rsi),%ymm10,%ymm12 + vpbroadcastq 8(%r13),%ymm10 + vpaddq %ymm12,%ymm8,%ymm8 + + movq %rax,%rdx + imulq -128(%rcx),%rax + addq %rax,%r9 + movq %rdx,%rax + imulq 8-128(%rcx),%rax + addq %rax,%r10 + movq %rdx,%rax + imulq 16-128(%rcx),%rax + addq %rax,%r11 + shrq $29,%r9 + imulq 24-128(%rcx),%rdx + addq %rdx,%r12 + addq %r9,%r10 + + vpmuludq 32-128(%rcx),%ymm11,%ymm13 + vmovq %xmm10,%rbx + vpaddq %ymm13,%ymm1,%ymm1 + vpmuludq 64-128(%rcx),%ymm11,%ymm0 + vpaddq %ymm0,%ymm2,%ymm2 + vpmuludq 96-128(%rcx),%ymm11,%ymm12 + vpaddq %ymm12,%ymm3,%ymm3 + vpmuludq 128-128(%rcx),%ymm11,%ymm13 + vpaddq %ymm13,%ymm4,%ymm4 + vpmuludq 160-128(%rcx),%ymm11,%ymm0 + vpaddq %ymm0,%ymm5,%ymm5 + vpmuludq 192-128(%rcx),%ymm11,%ymm12 + vpaddq %ymm12,%ymm6,%ymm6 + vpmuludq 224-128(%rcx),%ymm11,%ymm13 + vpblendd $3,%ymm14,%ymm9,%ymm12 + vpaddq %ymm13,%ymm7,%ymm7 + vpmuludq 256-128(%rcx),%ymm11,%ymm0 + vpaddq %ymm12,%ymm3,%ymm3 + vpaddq %ymm0,%ymm8,%ymm8 + + movq %rbx,%rax + imulq -128(%rsi),%rax + addq %rax,%r10 + vmovdqu -8+32-128(%rsi),%ymm12 + movq %rbx,%rax + imulq 8-128(%rsi),%rax + addq %rax,%r11 + vmovdqu -8+64-128(%rsi),%ymm13 + + movq %r10,%rax + vpblendd $0xfc,%ymm14,%ymm9,%ymm9 + imull %r8d,%eax + vpaddq %ymm9,%ymm4,%ymm4 + andl $0x1fffffff,%eax + + imulq 16-128(%rsi),%rbx + addq %rbx,%r12 + vpmuludq %ymm10,%ymm12,%ymm12 + vmovd %eax,%xmm11 + vmovdqu -8+96-128(%rsi),%ymm0 + vpaddq %ymm12,%ymm1,%ymm1 + vpmuludq %ymm10,%ymm13,%ymm13 + vpbroadcastq %xmm11,%ymm11 + vmovdqu -8+128-128(%rsi),%ymm12 + vpaddq %ymm13,%ymm2,%ymm2 + vpmuludq %ymm10,%ymm0,%ymm0 + vmovdqu -8+160-128(%rsi),%ymm13 + vpaddq %ymm0,%ymm3,%ymm3 + vpmuludq %ymm10,%ymm12,%ymm12 + vmovdqu -8+192-128(%rsi),%ymm0 + vpaddq %ymm12,%ymm4,%ymm4 + vpmuludq %ymm10,%ymm13,%ymm13 + vmovdqu -8+224-128(%rsi),%ymm12 + vpaddq %ymm13,%ymm5,%ymm5 + vpmuludq %ymm10,%ymm0,%ymm0 + vmovdqu -8+256-128(%rsi),%ymm13 + vpaddq %ymm0,%ymm6,%ymm6 + vpmuludq %ymm10,%ymm12,%ymm12 + vmovdqu -8+288-128(%rsi),%ymm9 + vpaddq %ymm12,%ymm7,%ymm7 + vpmuludq %ymm10,%ymm13,%ymm13 + vpaddq %ymm13,%ymm8,%ymm8 + vpmuludq %ymm10,%ymm9,%ymm9 + vpbroadcastq 16(%r13),%ymm10 + + movq %rax,%rdx + imulq -128(%rcx),%rax + addq %rax,%r10 + vmovdqu -8+32-128(%rcx),%ymm0 + movq %rdx,%rax + imulq 8-128(%rcx),%rax + addq %rax,%r11 + vmovdqu -8+64-128(%rcx),%ymm12 + shrq $29,%r10 + imulq 16-128(%rcx),%rdx + addq %rdx,%r12 + addq %r10,%r11 + + vpmuludq %ymm11,%ymm0,%ymm0 + vmovq %xmm10,%rbx + vmovdqu -8+96-128(%rcx),%ymm13 + vpaddq %ymm0,%ymm1,%ymm1 + vpmuludq %ymm11,%ymm12,%ymm12 + vmovdqu -8+128-128(%rcx),%ymm0 + vpaddq %ymm12,%ymm2,%ymm2 + vpmuludq %ymm11,%ymm13,%ymm13 + vmovdqu -8+160-128(%rcx),%ymm12 + vpaddq %ymm13,%ymm3,%ymm3 + vpmuludq %ymm11,%ymm0,%ymm0 + vmovdqu -8+192-128(%rcx),%ymm13 + vpaddq %ymm0,%ymm4,%ymm4 + vpmuludq %ymm11,%ymm12,%ymm12 + vmovdqu -8+224-128(%rcx),%ymm0 + vpaddq %ymm12,%ymm5,%ymm5 + vpmuludq %ymm11,%ymm13,%ymm13 + vmovdqu -8+256-128(%rcx),%ymm12 + vpaddq %ymm13,%ymm6,%ymm6 + vpmuludq %ymm11,%ymm0,%ymm0 + vmovdqu -8+288-128(%rcx),%ymm13 + vpaddq %ymm0,%ymm7,%ymm7 + vpmuludq %ymm11,%ymm12,%ymm12 + vpaddq %ymm12,%ymm8,%ymm8 + vpmuludq %ymm11,%ymm13,%ymm13 + vpaddq %ymm13,%ymm9,%ymm9 + + vmovdqu -16+32-128(%rsi),%ymm0 + movq %rbx,%rax + imulq -128(%rsi),%rax + addq %r11,%rax + + vmovdqu -16+64-128(%rsi),%ymm12 + movq %rax,%r11 + imull %r8d,%eax + andl $0x1fffffff,%eax + + imulq 8-128(%rsi),%rbx + addq %rbx,%r12 + vpmuludq %ymm10,%ymm0,%ymm0 + vmovd %eax,%xmm11 + vmovdqu -16+96-128(%rsi),%ymm13 + vpaddq %ymm0,%ymm1,%ymm1 + vpmuludq %ymm10,%ymm12,%ymm12 + vpbroadcastq %xmm11,%ymm11 + vmovdqu -16+128-128(%rsi),%ymm0 + vpaddq %ymm12,%ymm2,%ymm2 + vpmuludq %ymm10,%ymm13,%ymm13 + vmovdqu -16+160-128(%rsi),%ymm12 + vpaddq %ymm13,%ymm3,%ymm3 + vpmuludq %ymm10,%ymm0,%ymm0 + vmovdqu -16+192-128(%rsi),%ymm13 + vpaddq %ymm0,%ymm4,%ymm4 + vpmuludq %ymm10,%ymm12,%ymm12 + vmovdqu -16+224-128(%rsi),%ymm0 + vpaddq %ymm12,%ymm5,%ymm5 + vpmuludq %ymm10,%ymm13,%ymm13 + vmovdqu -16+256-128(%rsi),%ymm12 + vpaddq %ymm13,%ymm6,%ymm6 + vpmuludq %ymm10,%ymm0,%ymm0 + vmovdqu -16+288-128(%rsi),%ymm13 + vpaddq %ymm0,%ymm7,%ymm7 + vpmuludq %ymm10,%ymm12,%ymm12 + vpaddq %ymm12,%ymm8,%ymm8 + vpmuludq %ymm10,%ymm13,%ymm13 + vpbroadcastq 24(%r13),%ymm10 + vpaddq %ymm13,%ymm9,%ymm9 + + vmovdqu -16+32-128(%rcx),%ymm0 + movq %rax,%rdx + imulq -128(%rcx),%rax + addq %rax,%r11 + vmovdqu -16+64-128(%rcx),%ymm12 + imulq 8-128(%rcx),%rdx + addq %rdx,%r12 + shrq $29,%r11 + + vpmuludq %ymm11,%ymm0,%ymm0 + vmovq %xmm10,%rbx + vmovdqu -16+96-128(%rcx),%ymm13 + vpaddq %ymm0,%ymm1,%ymm1 + vpmuludq %ymm11,%ymm12,%ymm12 + vmovdqu -16+128-128(%rcx),%ymm0 + vpaddq %ymm12,%ymm2,%ymm2 + vpmuludq %ymm11,%ymm13,%ymm13 + vmovdqu -16+160-128(%rcx),%ymm12 + vpaddq %ymm13,%ymm3,%ymm3 + vpmuludq %ymm11,%ymm0,%ymm0 + vmovdqu -16+192-128(%rcx),%ymm13 + vpaddq %ymm0,%ymm4,%ymm4 + vpmuludq %ymm11,%ymm12,%ymm12 + vmovdqu -16+224-128(%rcx),%ymm0 + vpaddq %ymm12,%ymm5,%ymm5 + vpmuludq %ymm11,%ymm13,%ymm13 + vmovdqu -16+256-128(%rcx),%ymm12 + vpaddq %ymm13,%ymm6,%ymm6 + vpmuludq %ymm11,%ymm0,%ymm0 + vmovdqu -16+288-128(%rcx),%ymm13 + vpaddq %ymm0,%ymm7,%ymm7 + vpmuludq %ymm11,%ymm12,%ymm12 + vmovdqu -24+32-128(%rsi),%ymm0 + vpaddq %ymm12,%ymm8,%ymm8 + vpmuludq %ymm11,%ymm13,%ymm13 + vmovdqu -24+64-128(%rsi),%ymm12 + vpaddq %ymm13,%ymm9,%ymm9 + + addq %r11,%r12 + imulq -128(%rsi),%rbx + addq %rbx,%r12 + + movq %r12,%rax + imull %r8d,%eax + andl $0x1fffffff,%eax + + vpmuludq %ymm10,%ymm0,%ymm0 + vmovd %eax,%xmm11 + vmovdqu -24+96-128(%rsi),%ymm13 + vpaddq %ymm0,%ymm1,%ymm1 + vpmuludq %ymm10,%ymm12,%ymm12 + vpbroadcastq %xmm11,%ymm11 + vmovdqu -24+128-128(%rsi),%ymm0 + vpaddq %ymm12,%ymm2,%ymm2 + vpmuludq %ymm10,%ymm13,%ymm13 + vmovdqu -24+160-128(%rsi),%ymm12 + vpaddq %ymm13,%ymm3,%ymm3 + vpmuludq %ymm10,%ymm0,%ymm0 + vmovdqu -24+192-128(%rsi),%ymm13 + vpaddq %ymm0,%ymm4,%ymm4 + vpmuludq %ymm10,%ymm12,%ymm12 + vmovdqu -24+224-128(%rsi),%ymm0 + vpaddq %ymm12,%ymm5,%ymm5 + vpmuludq %ymm10,%ymm13,%ymm13 + vmovdqu -24+256-128(%rsi),%ymm12 + vpaddq %ymm13,%ymm6,%ymm6 + vpmuludq %ymm10,%ymm0,%ymm0 + vmovdqu -24+288-128(%rsi),%ymm13 + vpaddq %ymm0,%ymm7,%ymm7 + vpmuludq %ymm10,%ymm12,%ymm12 + vpaddq %ymm12,%ymm8,%ymm8 + vpmuludq %ymm10,%ymm13,%ymm13 + vpbroadcastq 32(%r13),%ymm10 + vpaddq %ymm13,%ymm9,%ymm9 + addq $32,%r13 + + vmovdqu -24+32-128(%rcx),%ymm0 + imulq -128(%rcx),%rax + addq %rax,%r12 + shrq $29,%r12 + + vmovdqu -24+64-128(%rcx),%ymm12 + vpmuludq %ymm11,%ymm0,%ymm0 + vmovq %xmm10,%rbx + vmovdqu -24+96-128(%rcx),%ymm13 + vpaddq %ymm0,%ymm1,%ymm0 + vpmuludq %ymm11,%ymm12,%ymm12 + vmovdqu %ymm0,(%rsp) + vpaddq %ymm12,%ymm2,%ymm1 + vmovdqu -24+128-128(%rcx),%ymm0 + vpmuludq %ymm11,%ymm13,%ymm13 + vmovdqu -24+160-128(%rcx),%ymm12 + vpaddq %ymm13,%ymm3,%ymm2 + vpmuludq %ymm11,%ymm0,%ymm0 + vmovdqu -24+192-128(%rcx),%ymm13 + vpaddq %ymm0,%ymm4,%ymm3 + vpmuludq %ymm11,%ymm12,%ymm12 + vmovdqu -24+224-128(%rcx),%ymm0 + vpaddq %ymm12,%ymm5,%ymm4 + vpmuludq %ymm11,%ymm13,%ymm13 + vmovdqu -24+256-128(%rcx),%ymm12 + vpaddq %ymm13,%ymm6,%ymm5 + vpmuludq %ymm11,%ymm0,%ymm0 + vmovdqu -24+288-128(%rcx),%ymm13 + movq %r12,%r9 + vpaddq %ymm0,%ymm7,%ymm6 + vpmuludq %ymm11,%ymm12,%ymm12 + addq (%rsp),%r9 + vpaddq %ymm12,%ymm8,%ymm7 + vpmuludq %ymm11,%ymm13,%ymm13 + vmovq %r12,%xmm12 + vpaddq %ymm13,%ymm9,%ymm8 + + decl %r14d + jnz .Loop_mul_1024 + vpaddq (%rsp),%ymm12,%ymm0 + + vpsrlq $29,%ymm0,%ymm12 + vpand %ymm15,%ymm0,%ymm0 + vpsrlq $29,%ymm1,%ymm13 + vpand %ymm15,%ymm1,%ymm1 + vpsrlq $29,%ymm2,%ymm10 + vpermq $0x93,%ymm12,%ymm12 + vpand %ymm15,%ymm2,%ymm2 + vpsrlq $29,%ymm3,%ymm11 + vpermq $0x93,%ymm13,%ymm13 + vpand %ymm15,%ymm3,%ymm3 + + vpblendd $3,%ymm14,%ymm12,%ymm9 + vpermq $0x93,%ymm10,%ymm10 + vpblendd $3,%ymm12,%ymm13,%ymm12 + vpermq $0x93,%ymm11,%ymm11 + vpaddq %ymm9,%ymm0,%ymm0 + vpblendd $3,%ymm13,%ymm10,%ymm13 + vpaddq %ymm12,%ymm1,%ymm1 + vpblendd $3,%ymm10,%ymm11,%ymm10 + vpaddq %ymm13,%ymm2,%ymm2 + vpblendd $3,%ymm11,%ymm14,%ymm11 + vpaddq %ymm10,%ymm3,%ymm3 + vpaddq %ymm11,%ymm4,%ymm4 + + vpsrlq $29,%ymm0,%ymm12 + vpand %ymm15,%ymm0,%ymm0 + vpsrlq $29,%ymm1,%ymm13 + vpand %ymm15,%ymm1,%ymm1 + vpsrlq $29,%ymm2,%ymm10 + vpermq $0x93,%ymm12,%ymm12 + vpand %ymm15,%ymm2,%ymm2 + vpsrlq $29,%ymm3,%ymm11 + vpermq $0x93,%ymm13,%ymm13 + vpand %ymm15,%ymm3,%ymm3 + vpermq $0x93,%ymm10,%ymm10 + + vpblendd $3,%ymm14,%ymm12,%ymm9 + vpermq $0x93,%ymm11,%ymm11 + vpblendd $3,%ymm12,%ymm13,%ymm12 + vpaddq %ymm9,%ymm0,%ymm0 + vpblendd $3,%ymm13,%ymm10,%ymm13 + vpaddq %ymm12,%ymm1,%ymm1 + vpblendd $3,%ymm10,%ymm11,%ymm10 + vpaddq %ymm13,%ymm2,%ymm2 + vpblendd $3,%ymm11,%ymm14,%ymm11 + vpaddq %ymm10,%ymm3,%ymm3 + vpaddq %ymm11,%ymm4,%ymm4 + + vmovdqu %ymm0,0-128(%rdi) + vmovdqu %ymm1,32-128(%rdi) + vmovdqu %ymm2,64-128(%rdi) + vmovdqu %ymm3,96-128(%rdi) + vpsrlq $29,%ymm4,%ymm12 + vpand %ymm15,%ymm4,%ymm4 + vpsrlq $29,%ymm5,%ymm13 + vpand %ymm15,%ymm5,%ymm5 + vpsrlq $29,%ymm6,%ymm10 + vpermq $0x93,%ymm12,%ymm12 + vpand %ymm15,%ymm6,%ymm6 + vpsrlq $29,%ymm7,%ymm11 + vpermq $0x93,%ymm13,%ymm13 + vpand %ymm15,%ymm7,%ymm7 + vpsrlq $29,%ymm8,%ymm0 + vpermq $0x93,%ymm10,%ymm10 + vpand %ymm15,%ymm8,%ymm8 + vpermq $0x93,%ymm11,%ymm11 + + vpblendd $3,%ymm14,%ymm12,%ymm9 + vpermq $0x93,%ymm0,%ymm0 + vpblendd $3,%ymm12,%ymm13,%ymm12 + vpaddq %ymm9,%ymm4,%ymm4 + vpblendd $3,%ymm13,%ymm10,%ymm13 + vpaddq %ymm12,%ymm5,%ymm5 + vpblendd $3,%ymm10,%ymm11,%ymm10 + vpaddq %ymm13,%ymm6,%ymm6 + vpblendd $3,%ymm11,%ymm0,%ymm11 + vpaddq %ymm10,%ymm7,%ymm7 + vpaddq %ymm11,%ymm8,%ymm8 + + vpsrlq $29,%ymm4,%ymm12 + vpand %ymm15,%ymm4,%ymm4 + vpsrlq $29,%ymm5,%ymm13 + vpand %ymm15,%ymm5,%ymm5 + vpsrlq $29,%ymm6,%ymm10 + vpermq $0x93,%ymm12,%ymm12 + vpand %ymm15,%ymm6,%ymm6 + vpsrlq $29,%ymm7,%ymm11 + vpermq $0x93,%ymm13,%ymm13 + vpand %ymm15,%ymm7,%ymm7 + vpsrlq $29,%ymm8,%ymm0 + vpermq $0x93,%ymm10,%ymm10 + vpand %ymm15,%ymm8,%ymm8 + vpermq $0x93,%ymm11,%ymm11 + + vpblendd $3,%ymm14,%ymm12,%ymm9 + vpermq $0x93,%ymm0,%ymm0 + vpblendd $3,%ymm12,%ymm13,%ymm12 + vpaddq %ymm9,%ymm4,%ymm4 + vpblendd $3,%ymm13,%ymm10,%ymm13 + vpaddq %ymm12,%ymm5,%ymm5 + vpblendd $3,%ymm10,%ymm11,%ymm10 + vpaddq %ymm13,%ymm6,%ymm6 + vpblendd $3,%ymm11,%ymm0,%ymm11 + vpaddq %ymm10,%ymm7,%ymm7 + vpaddq %ymm11,%ymm8,%ymm8 + + vmovdqu %ymm4,128-128(%rdi) + vmovdqu %ymm5,160-128(%rdi) + vmovdqu %ymm6,192-128(%rdi) + vmovdqu %ymm7,224-128(%rdi) + vmovdqu %ymm8,256-128(%rdi) + vzeroupper + + movq %rbp,%rax +.cfi_def_cfa_register %rax + movq -48(%rax),%r15 +.cfi_restore %r15 + movq -40(%rax),%r14 +.cfi_restore %r14 + movq -32(%rax),%r13 +.cfi_restore %r13 + movq -24(%rax),%r12 +.cfi_restore %r12 + movq -16(%rax),%rbp +.cfi_restore %rbp + movq -8(%rax),%rbx +.cfi_restore %rbx + leaq (%rax),%rsp +.cfi_def_cfa_register %rsp +.Lmul_1024_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size rsaz_1024_mul_avx2,.-rsaz_1024_mul_avx2 +.globl rsaz_1024_red2norm_avx2 +.type rsaz_1024_red2norm_avx2,@function +.align 32 +rsaz_1024_red2norm_avx2: +.cfi_startproc + subq $-128,%rsi + xorq %rax,%rax + movq -128(%rsi),%r8 + movq -120(%rsi),%r9 + movq -112(%rsi),%r10 + shlq $0,%r8 + shlq $29,%r9 + movq %r10,%r11 + shlq $58,%r10 + shrq $6,%r11 + addq %r8,%rax + addq %r9,%rax + addq %r10,%rax + adcq $0,%r11 + movq %rax,0(%rdi) + movq %r11,%rax + movq -104(%rsi),%r8 + movq -96(%rsi),%r9 + shlq $23,%r8 + movq %r9,%r10 + shlq $52,%r9 + shrq $12,%r10 + addq %r8,%rax + addq %r9,%rax + adcq $0,%r10 + movq %rax,8(%rdi) + movq %r10,%rax + movq -88(%rsi),%r11 + movq -80(%rsi),%r8 + shlq $17,%r11 + movq %r8,%r9 + shlq $46,%r8 + shrq $18,%r9 + addq %r11,%rax + addq %r8,%rax + adcq $0,%r9 + movq %rax,16(%rdi) + movq %r9,%rax + movq -72(%rsi),%r10 + movq -64(%rsi),%r11 + shlq $11,%r10 + movq %r11,%r8 + shlq $40,%r11 + shrq $24,%r8 + addq %r10,%rax + addq %r11,%rax + adcq $0,%r8 + movq %rax,24(%rdi) + movq %r8,%rax + movq -56(%rsi),%r9 + movq -48(%rsi),%r10 + movq -40(%rsi),%r11 + shlq $5,%r9 + shlq $34,%r10 + movq %r11,%r8 + shlq $63,%r11 + shrq $1,%r8 + addq %r9,%rax + addq %r10,%rax + addq %r11,%rax + adcq $0,%r8 + movq %rax,32(%rdi) + movq %r8,%rax + movq -32(%rsi),%r9 + movq -24(%rsi),%r10 + shlq $28,%r9 + movq %r10,%r11 + shlq $57,%r10 + shrq $7,%r11 + addq %r9,%rax + addq %r10,%rax + adcq $0,%r11 + movq %rax,40(%rdi) + movq %r11,%rax + movq -16(%rsi),%r8 + movq -8(%rsi),%r9 + shlq $22,%r8 + movq %r9,%r10 + shlq $51,%r9 + shrq $13,%r10 + addq %r8,%rax + addq %r9,%rax + adcq $0,%r10 + movq %rax,48(%rdi) + movq %r10,%rax + movq 0(%rsi),%r11 + movq 8(%rsi),%r8 + shlq $16,%r11 + movq %r8,%r9 + shlq $45,%r8 + shrq $19,%r9 + addq %r11,%rax + addq %r8,%rax + adcq $0,%r9 + movq %rax,56(%rdi) + movq %r9,%rax + movq 16(%rsi),%r10 + movq 24(%rsi),%r11 + shlq $10,%r10 + movq %r11,%r8 + shlq $39,%r11 + shrq $25,%r8 + addq %r10,%rax + addq %r11,%rax + adcq $0,%r8 + movq %rax,64(%rdi) + movq %r8,%rax + movq 32(%rsi),%r9 + movq 40(%rsi),%r10 + movq 48(%rsi),%r11 + shlq $4,%r9 + shlq $33,%r10 + movq %r11,%r8 + shlq $62,%r11 + shrq $2,%r8 + addq %r9,%rax + addq %r10,%rax + addq %r11,%rax + adcq $0,%r8 + movq %rax,72(%rdi) + movq %r8,%rax + movq 56(%rsi),%r9 + movq 64(%rsi),%r10 + shlq $27,%r9 + movq %r10,%r11 + shlq $56,%r10 + shrq $8,%r11 + addq %r9,%rax + addq %r10,%rax + adcq $0,%r11 + movq %rax,80(%rdi) + movq %r11,%rax + movq 72(%rsi),%r8 + movq 80(%rsi),%r9 + shlq $21,%r8 + movq %r9,%r10 + shlq $50,%r9 + shrq $14,%r10 + addq %r8,%rax + addq %r9,%rax + adcq $0,%r10 + movq %rax,88(%rdi) + movq %r10,%rax + movq 88(%rsi),%r11 + movq 96(%rsi),%r8 + shlq $15,%r11 + movq %r8,%r9 + shlq $44,%r8 + shrq $20,%r9 + addq %r11,%rax + addq %r8,%rax + adcq $0,%r9 + movq %rax,96(%rdi) + movq %r9,%rax + movq 104(%rsi),%r10 + movq 112(%rsi),%r11 + shlq $9,%r10 + movq %r11,%r8 + shlq $38,%r11 + shrq $26,%r8 + addq %r10,%rax + addq %r11,%rax + adcq $0,%r8 + movq %rax,104(%rdi) + movq %r8,%rax + movq 120(%rsi),%r9 + movq 128(%rsi),%r10 + movq 136(%rsi),%r11 + shlq $3,%r9 + shlq $32,%r10 + movq %r11,%r8 + shlq $61,%r11 + shrq $3,%r8 + addq %r9,%rax + addq %r10,%rax + addq %r11,%rax + adcq $0,%r8 + movq %rax,112(%rdi) + movq %r8,%rax + movq 144(%rsi),%r9 + movq 152(%rsi),%r10 + shlq $26,%r9 + movq %r10,%r11 + shlq $55,%r10 + shrq $9,%r11 + addq %r9,%rax + addq %r10,%rax + adcq $0,%r11 + movq %rax,120(%rdi) + movq %r11,%rax + .byte 0xf3,0xc3 +.cfi_endproc +.size rsaz_1024_red2norm_avx2,.-rsaz_1024_red2norm_avx2 + +.globl rsaz_1024_norm2red_avx2 +.type rsaz_1024_norm2red_avx2,@function +.align 32 +rsaz_1024_norm2red_avx2: +.cfi_startproc + subq $-128,%rdi + movq (%rsi),%r8 + movl $0x1fffffff,%eax + movq 8(%rsi),%r9 + movq %r8,%r11 + shrq $0,%r11 + andq %rax,%r11 + movq %r11,-128(%rdi) + movq %r8,%r10 + shrq $29,%r10 + andq %rax,%r10 + movq %r10,-120(%rdi) + shrdq $58,%r9,%r8 + andq %rax,%r8 + movq %r8,-112(%rdi) + movq 16(%rsi),%r10 + movq %r9,%r8 + shrq $23,%r8 + andq %rax,%r8 + movq %r8,-104(%rdi) + shrdq $52,%r10,%r9 + andq %rax,%r9 + movq %r9,-96(%rdi) + movq 24(%rsi),%r11 + movq %r10,%r9 + shrq $17,%r9 + andq %rax,%r9 + movq %r9,-88(%rdi) + shrdq $46,%r11,%r10 + andq %rax,%r10 + movq %r10,-80(%rdi) + movq 32(%rsi),%r8 + movq %r11,%r10 + shrq $11,%r10 + andq %rax,%r10 + movq %r10,-72(%rdi) + shrdq $40,%r8,%r11 + andq %rax,%r11 + movq %r11,-64(%rdi) + movq 40(%rsi),%r9 + movq %r8,%r11 + shrq $5,%r11 + andq %rax,%r11 + movq %r11,-56(%rdi) + movq %r8,%r10 + shrq $34,%r10 + andq %rax,%r10 + movq %r10,-48(%rdi) + shrdq $63,%r9,%r8 + andq %rax,%r8 + movq %r8,-40(%rdi) + movq 48(%rsi),%r10 + movq %r9,%r8 + shrq $28,%r8 + andq %rax,%r8 + movq %r8,-32(%rdi) + shrdq $57,%r10,%r9 + andq %rax,%r9 + movq %r9,-24(%rdi) + movq 56(%rsi),%r11 + movq %r10,%r9 + shrq $22,%r9 + andq %rax,%r9 + movq %r9,-16(%rdi) + shrdq $51,%r11,%r10 + andq %rax,%r10 + movq %r10,-8(%rdi) + movq 64(%rsi),%r8 + movq %r11,%r10 + shrq $16,%r10 + andq %rax,%r10 + movq %r10,0(%rdi) + shrdq $45,%r8,%r11 + andq %rax,%r11 + movq %r11,8(%rdi) + movq 72(%rsi),%r9 + movq %r8,%r11 + shrq $10,%r11 + andq %rax,%r11 + movq %r11,16(%rdi) + shrdq $39,%r9,%r8 + andq %rax,%r8 + movq %r8,24(%rdi) + movq 80(%rsi),%r10 + movq %r9,%r8 + shrq $4,%r8 + andq %rax,%r8 + movq %r8,32(%rdi) + movq %r9,%r11 + shrq $33,%r11 + andq %rax,%r11 + movq %r11,40(%rdi) + shrdq $62,%r10,%r9 + andq %rax,%r9 + movq %r9,48(%rdi) + movq 88(%rsi),%r11 + movq %r10,%r9 + shrq $27,%r9 + andq %rax,%r9 + movq %r9,56(%rdi) + shrdq $56,%r11,%r10 + andq %rax,%r10 + movq %r10,64(%rdi) + movq 96(%rsi),%r8 + movq %r11,%r10 + shrq $21,%r10 + andq %rax,%r10 + movq %r10,72(%rdi) + shrdq $50,%r8,%r11 + andq %rax,%r11 + movq %r11,80(%rdi) + movq 104(%rsi),%r9 + movq %r8,%r11 + shrq $15,%r11 + andq %rax,%r11 + movq %r11,88(%rdi) + shrdq $44,%r9,%r8 + andq %rax,%r8 + movq %r8,96(%rdi) + movq 112(%rsi),%r10 + movq %r9,%r8 + shrq $9,%r8 + andq %rax,%r8 + movq %r8,104(%rdi) + shrdq $38,%r10,%r9 + andq %rax,%r9 + movq %r9,112(%rdi) + movq 120(%rsi),%r11 + movq %r10,%r9 + shrq $3,%r9 + andq %rax,%r9 + movq %r9,120(%rdi) + movq %r10,%r8 + shrq $32,%r8 + andq %rax,%r8 + movq %r8,128(%rdi) + shrdq $61,%r11,%r10 + andq %rax,%r10 + movq %r10,136(%rdi) + xorq %r8,%r8 + movq %r11,%r10 + shrq $26,%r10 + andq %rax,%r10 + movq %r10,144(%rdi) + shrdq $55,%r8,%r11 + andq %rax,%r11 + movq %r11,152(%rdi) + movq %r8,160(%rdi) + movq %r8,168(%rdi) + movq %r8,176(%rdi) + movq %r8,184(%rdi) + .byte 0xf3,0xc3 +.cfi_endproc +.size rsaz_1024_norm2red_avx2,.-rsaz_1024_norm2red_avx2 +.globl rsaz_1024_scatter5_avx2 +.type rsaz_1024_scatter5_avx2,@function +.align 32 +rsaz_1024_scatter5_avx2: +.cfi_startproc + vzeroupper + vmovdqu .Lscatter_permd(%rip),%ymm5 + shll $4,%edx + leaq (%rdi,%rdx,1),%rdi + movl $9,%eax + jmp .Loop_scatter_1024 + +.align 32 +.Loop_scatter_1024: + vmovdqu (%rsi),%ymm0 + leaq 32(%rsi),%rsi + vpermd %ymm0,%ymm5,%ymm0 + vmovdqu %xmm0,(%rdi) + leaq 512(%rdi),%rdi + decl %eax + jnz .Loop_scatter_1024 + + vzeroupper + .byte 0xf3,0xc3 +.cfi_endproc +.size rsaz_1024_scatter5_avx2,.-rsaz_1024_scatter5_avx2 + +.globl rsaz_1024_gather5_avx2 +.type rsaz_1024_gather5_avx2,@function +.align 32 +rsaz_1024_gather5_avx2: +.cfi_startproc + vzeroupper + movq %rsp,%r11 +.cfi_def_cfa_register %r11 + leaq -256(%rsp),%rsp + andq $-32,%rsp + leaq .Linc(%rip),%r10 + leaq -128(%rsp),%rax + + vmovd %edx,%xmm4 + vmovdqa (%r10),%ymm0 + vmovdqa 32(%r10),%ymm1 + vmovdqa 64(%r10),%ymm5 + vpbroadcastd %xmm4,%ymm4 + + vpaddd %ymm5,%ymm0,%ymm2 + vpcmpeqd %ymm4,%ymm0,%ymm0 + vpaddd %ymm5,%ymm1,%ymm3 + vpcmpeqd %ymm4,%ymm1,%ymm1 + vmovdqa %ymm0,0+128(%rax) + vpaddd %ymm5,%ymm2,%ymm0 + vpcmpeqd %ymm4,%ymm2,%ymm2 + vmovdqa %ymm1,32+128(%rax) + vpaddd %ymm5,%ymm3,%ymm1 + vpcmpeqd %ymm4,%ymm3,%ymm3 + vmovdqa %ymm2,64+128(%rax) + vpaddd %ymm5,%ymm0,%ymm2 + vpcmpeqd %ymm4,%ymm0,%ymm0 + vmovdqa %ymm3,96+128(%rax) + vpaddd %ymm5,%ymm1,%ymm3 + vpcmpeqd %ymm4,%ymm1,%ymm1 + vmovdqa %ymm0,128+128(%rax) + vpaddd %ymm5,%ymm2,%ymm8 + vpcmpeqd %ymm4,%ymm2,%ymm2 + vmovdqa %ymm1,160+128(%rax) + vpaddd %ymm5,%ymm3,%ymm9 + vpcmpeqd %ymm4,%ymm3,%ymm3 + vmovdqa %ymm2,192+128(%rax) + vpaddd %ymm5,%ymm8,%ymm10 + vpcmpeqd %ymm4,%ymm8,%ymm8 + vmovdqa %ymm3,224+128(%rax) + vpaddd %ymm5,%ymm9,%ymm11 + vpcmpeqd %ymm4,%ymm9,%ymm9 + vpaddd %ymm5,%ymm10,%ymm12 + vpcmpeqd %ymm4,%ymm10,%ymm10 + vpaddd %ymm5,%ymm11,%ymm13 + vpcmpeqd %ymm4,%ymm11,%ymm11 + vpaddd %ymm5,%ymm12,%ymm14 + vpcmpeqd %ymm4,%ymm12,%ymm12 + vpaddd %ymm5,%ymm13,%ymm15 + vpcmpeqd %ymm4,%ymm13,%ymm13 + vpcmpeqd %ymm4,%ymm14,%ymm14 + vpcmpeqd %ymm4,%ymm15,%ymm15 + + vmovdqa -32(%r10),%ymm7 + leaq 128(%rsi),%rsi + movl $9,%edx + +.Loop_gather_1024: + vmovdqa 0-128(%rsi),%ymm0 + vmovdqa 32-128(%rsi),%ymm1 + vmovdqa 64-128(%rsi),%ymm2 + vmovdqa 96-128(%rsi),%ymm3 + vpand 0+128(%rax),%ymm0,%ymm0 + vpand 32+128(%rax),%ymm1,%ymm1 + vpand 64+128(%rax),%ymm2,%ymm2 + vpor %ymm0,%ymm1,%ymm4 + vpand 96+128(%rax),%ymm3,%ymm3 + vmovdqa 128-128(%rsi),%ymm0 + vmovdqa 160-128(%rsi),%ymm1 + vpor %ymm2,%ymm3,%ymm5 + vmovdqa 192-128(%rsi),%ymm2 + vmovdqa 224-128(%rsi),%ymm3 + vpand 128+128(%rax),%ymm0,%ymm0 + vpand 160+128(%rax),%ymm1,%ymm1 + vpand 192+128(%rax),%ymm2,%ymm2 + vpor %ymm0,%ymm4,%ymm4 + vpand 224+128(%rax),%ymm3,%ymm3 + vpand 256-128(%rsi),%ymm8,%ymm0 + vpor %ymm1,%ymm5,%ymm5 + vpand 288-128(%rsi),%ymm9,%ymm1 + vpor %ymm2,%ymm4,%ymm4 + vpand 320-128(%rsi),%ymm10,%ymm2 + vpor %ymm3,%ymm5,%ymm5 + vpand 352-128(%rsi),%ymm11,%ymm3 + vpor %ymm0,%ymm4,%ymm4 + vpand 384-128(%rsi),%ymm12,%ymm0 + vpor %ymm1,%ymm5,%ymm5 + vpand 416-128(%rsi),%ymm13,%ymm1 + vpor %ymm2,%ymm4,%ymm4 + vpand 448-128(%rsi),%ymm14,%ymm2 + vpor %ymm3,%ymm5,%ymm5 + vpand 480-128(%rsi),%ymm15,%ymm3 + leaq 512(%rsi),%rsi + vpor %ymm0,%ymm4,%ymm4 + vpor %ymm1,%ymm5,%ymm5 + vpor %ymm2,%ymm4,%ymm4 + vpor %ymm3,%ymm5,%ymm5 + + vpor %ymm5,%ymm4,%ymm4 + vextracti128 $1,%ymm4,%xmm5 + vpor %xmm4,%xmm5,%xmm5 + vpermd %ymm5,%ymm7,%ymm5 + vmovdqu %ymm5,(%rdi) + leaq 32(%rdi),%rdi + decl %edx + jnz .Loop_gather_1024 + + vpxor %ymm0,%ymm0,%ymm0 + vmovdqu %ymm0,(%rdi) + vzeroupper + leaq (%r11),%rsp +.cfi_def_cfa_register %rsp + .byte 0xf3,0xc3 +.cfi_endproc +.LSEH_end_rsaz_1024_gather5: +.size rsaz_1024_gather5_avx2,.-rsaz_1024_gather5_avx2 + +.globl rsaz_avx2_eligible +.type rsaz_avx2_eligible,@function +.align 32 +rsaz_avx2_eligible: + movl OPENSSL_ia32cap_P+8(%rip),%eax + movl $524544,%ecx + movl $0,%edx + andl %eax,%ecx + cmpl $524544,%ecx + cmovel %edx,%eax + andl $32,%eax + shrl $5,%eax + .byte 0xf3,0xc3 +.size rsaz_avx2_eligible,.-rsaz_avx2_eligible + +.align 64 +.Land_mask: +.quad 0x1fffffff,0x1fffffff,0x1fffffff,0x1fffffff +.Lscatter_permd: +.long 0,2,4,6,7,7,7,7 +.Lgather_permd: +.long 0,7,1,7,2,7,3,7 +.Linc: +.long 0,0,0,0, 1,1,1,1 +.long 2,2,2,2, 3,3,3,3 +.long 4,4,4,4, 4,4,4,4 +.align 64 diff --git a/vere/ext/openssl/gen/linux-x86_64/crypto/bn/rsaz-x86_64.s b/vere/ext/openssl/gen/linux-x86_64/crypto/bn/rsaz-x86_64.s new file mode 100644 index 0000000..d5025b2 --- /dev/null +++ b/vere/ext/openssl/gen/linux-x86_64/crypto/bn/rsaz-x86_64.s @@ -0,0 +1,2015 @@ +.text + + + +.globl rsaz_512_sqr +.type rsaz_512_sqr,@function +.align 32 +rsaz_512_sqr: +.cfi_startproc + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 + + subq $128+24,%rsp +.cfi_adjust_cfa_offset 128+24 +.Lsqr_body: +.byte 102,72,15,110,202 + movq (%rsi),%rdx + movq 8(%rsi),%rax + movq %rcx,128(%rsp) + movl $0x80100,%r11d + andl OPENSSL_ia32cap_P+8(%rip),%r11d + cmpl $0x80100,%r11d + je .Loop_sqrx + jmp .Loop_sqr + +.align 32 +.Loop_sqr: + movl %r8d,128+8(%rsp) + + movq %rdx,%rbx + movq %rax,%rbp + mulq %rdx + movq %rax,%r8 + movq 16(%rsi),%rax + movq %rdx,%r9 + + mulq %rbx + addq %rax,%r9 + movq 24(%rsi),%rax + movq %rdx,%r10 + adcq $0,%r10 + + mulq %rbx + addq %rax,%r10 + movq 32(%rsi),%rax + movq %rdx,%r11 + adcq $0,%r11 + + mulq %rbx + addq %rax,%r11 + movq 40(%rsi),%rax + movq %rdx,%r12 + adcq $0,%r12 + + mulq %rbx + addq %rax,%r12 + movq 48(%rsi),%rax + movq %rdx,%r13 + adcq $0,%r13 + + mulq %rbx + addq %rax,%r13 + movq 56(%rsi),%rax + movq %rdx,%r14 + adcq $0,%r14 + + mulq %rbx + addq %rax,%r14 + movq %rbx,%rax + adcq $0,%rdx + + xorq %rcx,%rcx + addq %r8,%r8 + movq %rdx,%r15 + adcq $0,%rcx + + mulq %rax + addq %r8,%rdx + adcq $0,%rcx + + movq %rax,(%rsp) + movq %rdx,8(%rsp) + + + movq 16(%rsi),%rax + mulq %rbp + addq %rax,%r10 + movq 24(%rsi),%rax + movq %rdx,%rbx + adcq $0,%rbx + + mulq %rbp + addq %rax,%r11 + movq 32(%rsi),%rax + adcq $0,%rdx + addq %rbx,%r11 + movq %rdx,%rbx + adcq $0,%rbx + + mulq %rbp + addq %rax,%r12 + movq 40(%rsi),%rax + adcq $0,%rdx + addq %rbx,%r12 + movq %rdx,%rbx + adcq $0,%rbx + + mulq %rbp + addq %rax,%r13 + movq 48(%rsi),%rax + adcq $0,%rdx + addq %rbx,%r13 + movq %rdx,%rbx + adcq $0,%rbx + + mulq %rbp + addq %rax,%r14 + movq 56(%rsi),%rax + adcq $0,%rdx + addq %rbx,%r14 + movq %rdx,%rbx + adcq $0,%rbx + + mulq %rbp + addq %rax,%r15 + movq %rbp,%rax + adcq $0,%rdx + addq %rbx,%r15 + adcq $0,%rdx + + xorq %rbx,%rbx + addq %r9,%r9 + movq %rdx,%r8 + adcq %r10,%r10 + adcq $0,%rbx + + mulq %rax + + addq %rcx,%rax + movq 16(%rsi),%rbp + addq %rax,%r9 + movq 24(%rsi),%rax + adcq %rdx,%r10 + adcq $0,%rbx + + movq %r9,16(%rsp) + movq %r10,24(%rsp) + + + mulq %rbp + addq %rax,%r12 + movq 32(%rsi),%rax + movq %rdx,%rcx + adcq $0,%rcx + + mulq %rbp + addq %rax,%r13 + movq 40(%rsi),%rax + adcq $0,%rdx + addq %rcx,%r13 + movq %rdx,%rcx + adcq $0,%rcx + + mulq %rbp + addq %rax,%r14 + movq 48(%rsi),%rax + adcq $0,%rdx + addq %rcx,%r14 + movq %rdx,%rcx + adcq $0,%rcx + + mulq %rbp + addq %rax,%r15 + movq 56(%rsi),%rax + adcq $0,%rdx + addq %rcx,%r15 + movq %rdx,%rcx + adcq $0,%rcx + + mulq %rbp + addq %rax,%r8 + movq %rbp,%rax + adcq $0,%rdx + addq %rcx,%r8 + adcq $0,%rdx + + xorq %rcx,%rcx + addq %r11,%r11 + movq %rdx,%r9 + adcq %r12,%r12 + adcq $0,%rcx + + mulq %rax + + addq %rbx,%rax + movq 24(%rsi),%r10 + addq %rax,%r11 + movq 32(%rsi),%rax + adcq %rdx,%r12 + adcq $0,%rcx + + movq %r11,32(%rsp) + movq %r12,40(%rsp) + + + movq %rax,%r11 + mulq %r10 + addq %rax,%r14 + movq 40(%rsi),%rax + movq %rdx,%rbx + adcq $0,%rbx + + movq %rax,%r12 + mulq %r10 + addq %rax,%r15 + movq 48(%rsi),%rax + adcq $0,%rdx + addq %rbx,%r15 + movq %rdx,%rbx + adcq $0,%rbx + + movq %rax,%rbp + mulq %r10 + addq %rax,%r8 + movq 56(%rsi),%rax + adcq $0,%rdx + addq %rbx,%r8 + movq %rdx,%rbx + adcq $0,%rbx + + mulq %r10 + addq %rax,%r9 + movq %r10,%rax + adcq $0,%rdx + addq %rbx,%r9 + adcq $0,%rdx + + xorq %rbx,%rbx + addq %r13,%r13 + movq %rdx,%r10 + adcq %r14,%r14 + adcq $0,%rbx + + mulq %rax + + addq %rcx,%rax + addq %rax,%r13 + movq %r12,%rax + adcq %rdx,%r14 + adcq $0,%rbx + + movq %r13,48(%rsp) + movq %r14,56(%rsp) + + + mulq %r11 + addq %rax,%r8 + movq %rbp,%rax + movq %rdx,%rcx + adcq $0,%rcx + + mulq %r11 + addq %rax,%r9 + movq 56(%rsi),%rax + adcq $0,%rdx + addq %rcx,%r9 + movq %rdx,%rcx + adcq $0,%rcx + + movq %rax,%r14 + mulq %r11 + addq %rax,%r10 + movq %r11,%rax + adcq $0,%rdx + addq %rcx,%r10 + adcq $0,%rdx + + xorq %rcx,%rcx + addq %r15,%r15 + movq %rdx,%r11 + adcq %r8,%r8 + adcq $0,%rcx + + mulq %rax + + addq %rbx,%rax + addq %rax,%r15 + movq %rbp,%rax + adcq %rdx,%r8 + adcq $0,%rcx + + movq %r15,64(%rsp) + movq %r8,72(%rsp) + + + mulq %r12 + addq %rax,%r10 + movq %r14,%rax + movq %rdx,%rbx + adcq $0,%rbx + + mulq %r12 + addq %rax,%r11 + movq %r12,%rax + adcq $0,%rdx + addq %rbx,%r11 + adcq $0,%rdx + + xorq %rbx,%rbx + addq %r9,%r9 + movq %rdx,%r12 + adcq %r10,%r10 + adcq $0,%rbx + + mulq %rax + + addq %rcx,%rax + addq %rax,%r9 + movq %r14,%rax + adcq %rdx,%r10 + adcq $0,%rbx + + movq %r9,80(%rsp) + movq %r10,88(%rsp) + + + mulq %rbp + addq %rax,%r12 + movq %rbp,%rax + adcq $0,%rdx + + xorq %rcx,%rcx + addq %r11,%r11 + movq %rdx,%r13 + adcq %r12,%r12 + adcq $0,%rcx + + mulq %rax + + addq %rbx,%rax + addq %rax,%r11 + movq %r14,%rax + adcq %rdx,%r12 + adcq $0,%rcx + + movq %r11,96(%rsp) + movq %r12,104(%rsp) + + + xorq %rbx,%rbx + addq %r13,%r13 + adcq $0,%rbx + + mulq %rax + + addq %rcx,%rax + addq %r13,%rax + adcq %rbx,%rdx + + movq (%rsp),%r8 + movq 8(%rsp),%r9 + movq 16(%rsp),%r10 + movq 24(%rsp),%r11 + movq 32(%rsp),%r12 + movq 40(%rsp),%r13 + movq 48(%rsp),%r14 + movq 56(%rsp),%r15 +.byte 102,72,15,126,205 + + movq %rax,112(%rsp) + movq %rdx,120(%rsp) + + call __rsaz_512_reduce + + addq 64(%rsp),%r8 + adcq 72(%rsp),%r9 + adcq 80(%rsp),%r10 + adcq 88(%rsp),%r11 + adcq 96(%rsp),%r12 + adcq 104(%rsp),%r13 + adcq 112(%rsp),%r14 + adcq 120(%rsp),%r15 + sbbq %rcx,%rcx + + call __rsaz_512_subtract + + movq %r8,%rdx + movq %r9,%rax + movl 128+8(%rsp),%r8d + movq %rdi,%rsi + + decl %r8d + jnz .Loop_sqr + jmp .Lsqr_tail + +.align 32 +.Loop_sqrx: + movl %r8d,128+8(%rsp) +.byte 102,72,15,110,199 + + mulxq %rax,%r8,%r9 + movq %rax,%rbx + + mulxq 16(%rsi),%rcx,%r10 + xorq %rbp,%rbp + + mulxq 24(%rsi),%rax,%r11 + adcxq %rcx,%r9 + +.byte 0xc4,0x62,0xf3,0xf6,0xa6,0x20,0x00,0x00,0x00 + adcxq %rax,%r10 + +.byte 0xc4,0x62,0xfb,0xf6,0xae,0x28,0x00,0x00,0x00 + adcxq %rcx,%r11 + + mulxq 48(%rsi),%rcx,%r14 + adcxq %rax,%r12 + adcxq %rcx,%r13 + + mulxq 56(%rsi),%rax,%r15 + adcxq %rax,%r14 + adcxq %rbp,%r15 + + mulxq %rdx,%rax,%rdi + movq %rbx,%rdx + xorq %rcx,%rcx + adoxq %r8,%r8 + adcxq %rdi,%r8 + adoxq %rbp,%rcx + adcxq %rbp,%rcx + + movq %rax,(%rsp) + movq %r8,8(%rsp) + + +.byte 0xc4,0xe2,0xfb,0xf6,0x9e,0x10,0x00,0x00,0x00 + adoxq %rax,%r10 + adcxq %rbx,%r11 + + mulxq 24(%rsi),%rdi,%r8 + adoxq %rdi,%r11 +.byte 0x66 + adcxq %r8,%r12 + + mulxq 32(%rsi),%rax,%rbx + adoxq %rax,%r12 + adcxq %rbx,%r13 + + mulxq 40(%rsi),%rdi,%r8 + adoxq %rdi,%r13 + adcxq %r8,%r14 + +.byte 0xc4,0xe2,0xfb,0xf6,0x9e,0x30,0x00,0x00,0x00 + adoxq %rax,%r14 + adcxq %rbx,%r15 + +.byte 0xc4,0x62,0xc3,0xf6,0x86,0x38,0x00,0x00,0x00 + adoxq %rdi,%r15 + adcxq %rbp,%r8 + mulxq %rdx,%rax,%rdi + adoxq %rbp,%r8 +.byte 0x48,0x8b,0x96,0x10,0x00,0x00,0x00 + + xorq %rbx,%rbx + adoxq %r9,%r9 + + adcxq %rcx,%rax + adoxq %r10,%r10 + adcxq %rax,%r9 + adoxq %rbp,%rbx + adcxq %rdi,%r10 + adcxq %rbp,%rbx + + movq %r9,16(%rsp) +.byte 0x4c,0x89,0x94,0x24,0x18,0x00,0x00,0x00 + + + mulxq 24(%rsi),%rdi,%r9 + adoxq %rdi,%r12 + adcxq %r9,%r13 + + mulxq 32(%rsi),%rax,%rcx + adoxq %rax,%r13 + adcxq %rcx,%r14 + +.byte 0xc4,0x62,0xc3,0xf6,0x8e,0x28,0x00,0x00,0x00 + adoxq %rdi,%r14 + adcxq %r9,%r15 + +.byte 0xc4,0xe2,0xfb,0xf6,0x8e,0x30,0x00,0x00,0x00 + adoxq %rax,%r15 + adcxq %rcx,%r8 + + mulxq 56(%rsi),%rdi,%r9 + adoxq %rdi,%r8 + adcxq %rbp,%r9 + mulxq %rdx,%rax,%rdi + adoxq %rbp,%r9 + movq 24(%rsi),%rdx + + xorq %rcx,%rcx + adoxq %r11,%r11 + + adcxq %rbx,%rax + adoxq %r12,%r12 + adcxq %rax,%r11 + adoxq %rbp,%rcx + adcxq %rdi,%r12 + adcxq %rbp,%rcx + + movq %r11,32(%rsp) + movq %r12,40(%rsp) + + + mulxq 32(%rsi),%rax,%rbx + adoxq %rax,%r14 + adcxq %rbx,%r15 + + mulxq 40(%rsi),%rdi,%r10 + adoxq %rdi,%r15 + adcxq %r10,%r8 + + mulxq 48(%rsi),%rax,%rbx + adoxq %rax,%r8 + adcxq %rbx,%r9 + + mulxq 56(%rsi),%rdi,%r10 + adoxq %rdi,%r9 + adcxq %rbp,%r10 + mulxq %rdx,%rax,%rdi + adoxq %rbp,%r10 + movq 32(%rsi),%rdx + + xorq %rbx,%rbx + adoxq %r13,%r13 + + adcxq %rcx,%rax + adoxq %r14,%r14 + adcxq %rax,%r13 + adoxq %rbp,%rbx + adcxq %rdi,%r14 + adcxq %rbp,%rbx + + movq %r13,48(%rsp) + movq %r14,56(%rsp) + + + mulxq 40(%rsi),%rdi,%r11 + adoxq %rdi,%r8 + adcxq %r11,%r9 + + mulxq 48(%rsi),%rax,%rcx + adoxq %rax,%r9 + adcxq %rcx,%r10 + + mulxq 56(%rsi),%rdi,%r11 + adoxq %rdi,%r10 + adcxq %rbp,%r11 + mulxq %rdx,%rax,%rdi + movq 40(%rsi),%rdx + adoxq %rbp,%r11 + + xorq %rcx,%rcx + adoxq %r15,%r15 + + adcxq %rbx,%rax + adoxq %r8,%r8 + adcxq %rax,%r15 + adoxq %rbp,%rcx + adcxq %rdi,%r8 + adcxq %rbp,%rcx + + movq %r15,64(%rsp) + movq %r8,72(%rsp) + + +.byte 0xc4,0xe2,0xfb,0xf6,0x9e,0x30,0x00,0x00,0x00 + adoxq %rax,%r10 + adcxq %rbx,%r11 + +.byte 0xc4,0x62,0xc3,0xf6,0xa6,0x38,0x00,0x00,0x00 + adoxq %rdi,%r11 + adcxq %rbp,%r12 + mulxq %rdx,%rax,%rdi + adoxq %rbp,%r12 + movq 48(%rsi),%rdx + + xorq %rbx,%rbx + adoxq %r9,%r9 + + adcxq %rcx,%rax + adoxq %r10,%r10 + adcxq %rax,%r9 + adcxq %rdi,%r10 + adoxq %rbp,%rbx + adcxq %rbp,%rbx + + movq %r9,80(%rsp) + movq %r10,88(%rsp) + + +.byte 0xc4,0x62,0xfb,0xf6,0xae,0x38,0x00,0x00,0x00 + adoxq %rax,%r12 + adoxq %rbp,%r13 + + mulxq %rdx,%rax,%rdi + xorq %rcx,%rcx + movq 56(%rsi),%rdx + adoxq %r11,%r11 + + adcxq %rbx,%rax + adoxq %r12,%r12 + adcxq %rax,%r11 + adoxq %rbp,%rcx + adcxq %rdi,%r12 + adcxq %rbp,%rcx + +.byte 0x4c,0x89,0x9c,0x24,0x60,0x00,0x00,0x00 +.byte 0x4c,0x89,0xa4,0x24,0x68,0x00,0x00,0x00 + + + mulxq %rdx,%rax,%rdx + xorq %rbx,%rbx + adoxq %r13,%r13 + + adcxq %rcx,%rax + adoxq %rbp,%rbx + adcxq %r13,%rax + adcxq %rdx,%rbx + +.byte 102,72,15,126,199 +.byte 102,72,15,126,205 + + movq 128(%rsp),%rdx + movq (%rsp),%r8 + movq 8(%rsp),%r9 + movq 16(%rsp),%r10 + movq 24(%rsp),%r11 + movq 32(%rsp),%r12 + movq 40(%rsp),%r13 + movq 48(%rsp),%r14 + movq 56(%rsp),%r15 + + movq %rax,112(%rsp) + movq %rbx,120(%rsp) + + call __rsaz_512_reducex + + addq 64(%rsp),%r8 + adcq 72(%rsp),%r9 + adcq 80(%rsp),%r10 + adcq 88(%rsp),%r11 + adcq 96(%rsp),%r12 + adcq 104(%rsp),%r13 + adcq 112(%rsp),%r14 + adcq 120(%rsp),%r15 + sbbq %rcx,%rcx + + call __rsaz_512_subtract + + movq %r8,%rdx + movq %r9,%rax + movl 128+8(%rsp),%r8d + movq %rdi,%rsi + + decl %r8d + jnz .Loop_sqrx + +.Lsqr_tail: + + leaq 128+24+48(%rsp),%rax +.cfi_def_cfa %rax,8 + movq -48(%rax),%r15 +.cfi_restore %r15 + movq -40(%rax),%r14 +.cfi_restore %r14 + movq -32(%rax),%r13 +.cfi_restore %r13 + movq -24(%rax),%r12 +.cfi_restore %r12 + movq -16(%rax),%rbp +.cfi_restore %rbp + movq -8(%rax),%rbx +.cfi_restore %rbx + leaq (%rax),%rsp +.cfi_def_cfa_register %rsp +.Lsqr_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size rsaz_512_sqr,.-rsaz_512_sqr +.globl rsaz_512_mul +.type rsaz_512_mul,@function +.align 32 +rsaz_512_mul: +.cfi_startproc + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 + + subq $128+24,%rsp +.cfi_adjust_cfa_offset 128+24 +.Lmul_body: +.byte 102,72,15,110,199 +.byte 102,72,15,110,201 + movq %r8,128(%rsp) + movl $0x80100,%r11d + andl OPENSSL_ia32cap_P+8(%rip),%r11d + cmpl $0x80100,%r11d + je .Lmulx + movq (%rdx),%rbx + movq %rdx,%rbp + call __rsaz_512_mul + +.byte 102,72,15,126,199 +.byte 102,72,15,126,205 + + movq (%rsp),%r8 + movq 8(%rsp),%r9 + movq 16(%rsp),%r10 + movq 24(%rsp),%r11 + movq 32(%rsp),%r12 + movq 40(%rsp),%r13 + movq 48(%rsp),%r14 + movq 56(%rsp),%r15 + + call __rsaz_512_reduce + jmp .Lmul_tail + +.align 32 +.Lmulx: + movq %rdx,%rbp + movq (%rdx),%rdx + call __rsaz_512_mulx + +.byte 102,72,15,126,199 +.byte 102,72,15,126,205 + + movq 128(%rsp),%rdx + movq (%rsp),%r8 + movq 8(%rsp),%r9 + movq 16(%rsp),%r10 + movq 24(%rsp),%r11 + movq 32(%rsp),%r12 + movq 40(%rsp),%r13 + movq 48(%rsp),%r14 + movq 56(%rsp),%r15 + + call __rsaz_512_reducex +.Lmul_tail: + addq 64(%rsp),%r8 + adcq 72(%rsp),%r9 + adcq 80(%rsp),%r10 + adcq 88(%rsp),%r11 + adcq 96(%rsp),%r12 + adcq 104(%rsp),%r13 + adcq 112(%rsp),%r14 + adcq 120(%rsp),%r15 + sbbq %rcx,%rcx + + call __rsaz_512_subtract + + leaq 128+24+48(%rsp),%rax +.cfi_def_cfa %rax,8 + movq -48(%rax),%r15 +.cfi_restore %r15 + movq -40(%rax),%r14 +.cfi_restore %r14 + movq -32(%rax),%r13 +.cfi_restore %r13 + movq -24(%rax),%r12 +.cfi_restore %r12 + movq -16(%rax),%rbp +.cfi_restore %rbp + movq -8(%rax),%rbx +.cfi_restore %rbx + leaq (%rax),%rsp +.cfi_def_cfa_register %rsp +.Lmul_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size rsaz_512_mul,.-rsaz_512_mul +.globl rsaz_512_mul_gather4 +.type rsaz_512_mul_gather4,@function +.align 32 +rsaz_512_mul_gather4: +.cfi_startproc + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 + + subq $152,%rsp +.cfi_adjust_cfa_offset 152 +.Lmul_gather4_body: + movd %r9d,%xmm8 + movdqa .Linc+16(%rip),%xmm1 + movdqa .Linc(%rip),%xmm0 + + pshufd $0,%xmm8,%xmm8 + movdqa %xmm1,%xmm7 + movdqa %xmm1,%xmm2 + paddd %xmm0,%xmm1 + pcmpeqd %xmm8,%xmm0 + movdqa %xmm7,%xmm3 + paddd %xmm1,%xmm2 + pcmpeqd %xmm8,%xmm1 + movdqa %xmm7,%xmm4 + paddd %xmm2,%xmm3 + pcmpeqd %xmm8,%xmm2 + movdqa %xmm7,%xmm5 + paddd %xmm3,%xmm4 + pcmpeqd %xmm8,%xmm3 + movdqa %xmm7,%xmm6 + paddd %xmm4,%xmm5 + pcmpeqd %xmm8,%xmm4 + paddd %xmm5,%xmm6 + pcmpeqd %xmm8,%xmm5 + paddd %xmm6,%xmm7 + pcmpeqd %xmm8,%xmm6 + pcmpeqd %xmm8,%xmm7 + + movdqa 0(%rdx),%xmm8 + movdqa 16(%rdx),%xmm9 + movdqa 32(%rdx),%xmm10 + movdqa 48(%rdx),%xmm11 + pand %xmm0,%xmm8 + movdqa 64(%rdx),%xmm12 + pand %xmm1,%xmm9 + movdqa 80(%rdx),%xmm13 + pand %xmm2,%xmm10 + movdqa 96(%rdx),%xmm14 + pand %xmm3,%xmm11 + movdqa 112(%rdx),%xmm15 + leaq 128(%rdx),%rbp + pand %xmm4,%xmm12 + pand %xmm5,%xmm13 + pand %xmm6,%xmm14 + pand %xmm7,%xmm15 + por %xmm10,%xmm8 + por %xmm11,%xmm9 + por %xmm12,%xmm8 + por %xmm13,%xmm9 + por %xmm14,%xmm8 + por %xmm15,%xmm9 + + por %xmm9,%xmm8 + pshufd $0x4e,%xmm8,%xmm9 + por %xmm9,%xmm8 + movl $0x80100,%r11d + andl OPENSSL_ia32cap_P+8(%rip),%r11d + cmpl $0x80100,%r11d + je .Lmulx_gather +.byte 102,76,15,126,195 + + movq %r8,128(%rsp) + movq %rdi,128+8(%rsp) + movq %rcx,128+16(%rsp) + + movq (%rsi),%rax + movq 8(%rsi),%rcx + mulq %rbx + movq %rax,(%rsp) + movq %rcx,%rax + movq %rdx,%r8 + + mulq %rbx + addq %rax,%r8 + movq 16(%rsi),%rax + movq %rdx,%r9 + adcq $0,%r9 + + mulq %rbx + addq %rax,%r9 + movq 24(%rsi),%rax + movq %rdx,%r10 + adcq $0,%r10 + + mulq %rbx + addq %rax,%r10 + movq 32(%rsi),%rax + movq %rdx,%r11 + adcq $0,%r11 + + mulq %rbx + addq %rax,%r11 + movq 40(%rsi),%rax + movq %rdx,%r12 + adcq $0,%r12 + + mulq %rbx + addq %rax,%r12 + movq 48(%rsi),%rax + movq %rdx,%r13 + adcq $0,%r13 + + mulq %rbx + addq %rax,%r13 + movq 56(%rsi),%rax + movq %rdx,%r14 + adcq $0,%r14 + + mulq %rbx + addq %rax,%r14 + movq (%rsi),%rax + movq %rdx,%r15 + adcq $0,%r15 + + leaq 8(%rsp),%rdi + movl $7,%ecx + jmp .Loop_mul_gather + +.align 32 +.Loop_mul_gather: + movdqa 0(%rbp),%xmm8 + movdqa 16(%rbp),%xmm9 + movdqa 32(%rbp),%xmm10 + movdqa 48(%rbp),%xmm11 + pand %xmm0,%xmm8 + movdqa 64(%rbp),%xmm12 + pand %xmm1,%xmm9 + movdqa 80(%rbp),%xmm13 + pand %xmm2,%xmm10 + movdqa 96(%rbp),%xmm14 + pand %xmm3,%xmm11 + movdqa 112(%rbp),%xmm15 + leaq 128(%rbp),%rbp + pand %xmm4,%xmm12 + pand %xmm5,%xmm13 + pand %xmm6,%xmm14 + pand %xmm7,%xmm15 + por %xmm10,%xmm8 + por %xmm11,%xmm9 + por %xmm12,%xmm8 + por %xmm13,%xmm9 + por %xmm14,%xmm8 + por %xmm15,%xmm9 + + por %xmm9,%xmm8 + pshufd $0x4e,%xmm8,%xmm9 + por %xmm9,%xmm8 +.byte 102,76,15,126,195 + + mulq %rbx + addq %rax,%r8 + movq 8(%rsi),%rax + movq %r8,(%rdi) + movq %rdx,%r8 + adcq $0,%r8 + + mulq %rbx + addq %rax,%r9 + movq 16(%rsi),%rax + adcq $0,%rdx + addq %r9,%r8 + movq %rdx,%r9 + adcq $0,%r9 + + mulq %rbx + addq %rax,%r10 + movq 24(%rsi),%rax + adcq $0,%rdx + addq %r10,%r9 + movq %rdx,%r10 + adcq $0,%r10 + + mulq %rbx + addq %rax,%r11 + movq 32(%rsi),%rax + adcq $0,%rdx + addq %r11,%r10 + movq %rdx,%r11 + adcq $0,%r11 + + mulq %rbx + addq %rax,%r12 + movq 40(%rsi),%rax + adcq $0,%rdx + addq %r12,%r11 + movq %rdx,%r12 + adcq $0,%r12 + + mulq %rbx + addq %rax,%r13 + movq 48(%rsi),%rax + adcq $0,%rdx + addq %r13,%r12 + movq %rdx,%r13 + adcq $0,%r13 + + mulq %rbx + addq %rax,%r14 + movq 56(%rsi),%rax + adcq $0,%rdx + addq %r14,%r13 + movq %rdx,%r14 + adcq $0,%r14 + + mulq %rbx + addq %rax,%r15 + movq (%rsi),%rax + adcq $0,%rdx + addq %r15,%r14 + movq %rdx,%r15 + adcq $0,%r15 + + leaq 8(%rdi),%rdi + + decl %ecx + jnz .Loop_mul_gather + + movq %r8,(%rdi) + movq %r9,8(%rdi) + movq %r10,16(%rdi) + movq %r11,24(%rdi) + movq %r12,32(%rdi) + movq %r13,40(%rdi) + movq %r14,48(%rdi) + movq %r15,56(%rdi) + + movq 128+8(%rsp),%rdi + movq 128+16(%rsp),%rbp + + movq (%rsp),%r8 + movq 8(%rsp),%r9 + movq 16(%rsp),%r10 + movq 24(%rsp),%r11 + movq 32(%rsp),%r12 + movq 40(%rsp),%r13 + movq 48(%rsp),%r14 + movq 56(%rsp),%r15 + + call __rsaz_512_reduce + jmp .Lmul_gather_tail + +.align 32 +.Lmulx_gather: +.byte 102,76,15,126,194 + + movq %r8,128(%rsp) + movq %rdi,128+8(%rsp) + movq %rcx,128+16(%rsp) + + mulxq (%rsi),%rbx,%r8 + movq %rbx,(%rsp) + xorl %edi,%edi + + mulxq 8(%rsi),%rax,%r9 + + mulxq 16(%rsi),%rbx,%r10 + adcxq %rax,%r8 + + mulxq 24(%rsi),%rax,%r11 + adcxq %rbx,%r9 + + mulxq 32(%rsi),%rbx,%r12 + adcxq %rax,%r10 + + mulxq 40(%rsi),%rax,%r13 + adcxq %rbx,%r11 + + mulxq 48(%rsi),%rbx,%r14 + adcxq %rax,%r12 + + mulxq 56(%rsi),%rax,%r15 + adcxq %rbx,%r13 + adcxq %rax,%r14 +.byte 0x67 + movq %r8,%rbx + adcxq %rdi,%r15 + + movq $-7,%rcx + jmp .Loop_mulx_gather + +.align 32 +.Loop_mulx_gather: + movdqa 0(%rbp),%xmm8 + movdqa 16(%rbp),%xmm9 + movdqa 32(%rbp),%xmm10 + movdqa 48(%rbp),%xmm11 + pand %xmm0,%xmm8 + movdqa 64(%rbp),%xmm12 + pand %xmm1,%xmm9 + movdqa 80(%rbp),%xmm13 + pand %xmm2,%xmm10 + movdqa 96(%rbp),%xmm14 + pand %xmm3,%xmm11 + movdqa 112(%rbp),%xmm15 + leaq 128(%rbp),%rbp + pand %xmm4,%xmm12 + pand %xmm5,%xmm13 + pand %xmm6,%xmm14 + pand %xmm7,%xmm15 + por %xmm10,%xmm8 + por %xmm11,%xmm9 + por %xmm12,%xmm8 + por %xmm13,%xmm9 + por %xmm14,%xmm8 + por %xmm15,%xmm9 + + por %xmm9,%xmm8 + pshufd $0x4e,%xmm8,%xmm9 + por %xmm9,%xmm8 +.byte 102,76,15,126,194 + +.byte 0xc4,0x62,0xfb,0xf6,0x86,0x00,0x00,0x00,0x00 + adcxq %rax,%rbx + adoxq %r9,%r8 + + mulxq 8(%rsi),%rax,%r9 + adcxq %rax,%r8 + adoxq %r10,%r9 + + mulxq 16(%rsi),%rax,%r10 + adcxq %rax,%r9 + adoxq %r11,%r10 + +.byte 0xc4,0x62,0xfb,0xf6,0x9e,0x18,0x00,0x00,0x00 + adcxq %rax,%r10 + adoxq %r12,%r11 + + mulxq 32(%rsi),%rax,%r12 + adcxq %rax,%r11 + adoxq %r13,%r12 + + mulxq 40(%rsi),%rax,%r13 + adcxq %rax,%r12 + adoxq %r14,%r13 + +.byte 0xc4,0x62,0xfb,0xf6,0xb6,0x30,0x00,0x00,0x00 + adcxq %rax,%r13 +.byte 0x67 + adoxq %r15,%r14 + + mulxq 56(%rsi),%rax,%r15 + movq %rbx,64(%rsp,%rcx,8) + adcxq %rax,%r14 + adoxq %rdi,%r15 + movq %r8,%rbx + adcxq %rdi,%r15 + + incq %rcx + jnz .Loop_mulx_gather + + movq %r8,64(%rsp) + movq %r9,64+8(%rsp) + movq %r10,64+16(%rsp) + movq %r11,64+24(%rsp) + movq %r12,64+32(%rsp) + movq %r13,64+40(%rsp) + movq %r14,64+48(%rsp) + movq %r15,64+56(%rsp) + + movq 128(%rsp),%rdx + movq 128+8(%rsp),%rdi + movq 128+16(%rsp),%rbp + + movq (%rsp),%r8 + movq 8(%rsp),%r9 + movq 16(%rsp),%r10 + movq 24(%rsp),%r11 + movq 32(%rsp),%r12 + movq 40(%rsp),%r13 + movq 48(%rsp),%r14 + movq 56(%rsp),%r15 + + call __rsaz_512_reducex + +.Lmul_gather_tail: + addq 64(%rsp),%r8 + adcq 72(%rsp),%r9 + adcq 80(%rsp),%r10 + adcq 88(%rsp),%r11 + adcq 96(%rsp),%r12 + adcq 104(%rsp),%r13 + adcq 112(%rsp),%r14 + adcq 120(%rsp),%r15 + sbbq %rcx,%rcx + + call __rsaz_512_subtract + + leaq 128+24+48(%rsp),%rax +.cfi_def_cfa %rax,8 + movq -48(%rax),%r15 +.cfi_restore %r15 + movq -40(%rax),%r14 +.cfi_restore %r14 + movq -32(%rax),%r13 +.cfi_restore %r13 + movq -24(%rax),%r12 +.cfi_restore %r12 + movq -16(%rax),%rbp +.cfi_restore %rbp + movq -8(%rax),%rbx +.cfi_restore %rbx + leaq (%rax),%rsp +.cfi_def_cfa_register %rsp +.Lmul_gather4_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size rsaz_512_mul_gather4,.-rsaz_512_mul_gather4 +.globl rsaz_512_mul_scatter4 +.type rsaz_512_mul_scatter4,@function +.align 32 +rsaz_512_mul_scatter4: +.cfi_startproc + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 + + movl %r9d,%r9d + subq $128+24,%rsp +.cfi_adjust_cfa_offset 128+24 +.Lmul_scatter4_body: + leaq (%r8,%r9,8),%r8 +.byte 102,72,15,110,199 +.byte 102,72,15,110,202 +.byte 102,73,15,110,208 + movq %rcx,128(%rsp) + + movq %rdi,%rbp + movl $0x80100,%r11d + andl OPENSSL_ia32cap_P+8(%rip),%r11d + cmpl $0x80100,%r11d + je .Lmulx_scatter + movq (%rdi),%rbx + call __rsaz_512_mul + +.byte 102,72,15,126,199 +.byte 102,72,15,126,205 + + movq (%rsp),%r8 + movq 8(%rsp),%r9 + movq 16(%rsp),%r10 + movq 24(%rsp),%r11 + movq 32(%rsp),%r12 + movq 40(%rsp),%r13 + movq 48(%rsp),%r14 + movq 56(%rsp),%r15 + + call __rsaz_512_reduce + jmp .Lmul_scatter_tail + +.align 32 +.Lmulx_scatter: + movq (%rdi),%rdx + call __rsaz_512_mulx + +.byte 102,72,15,126,199 +.byte 102,72,15,126,205 + + movq 128(%rsp),%rdx + movq (%rsp),%r8 + movq 8(%rsp),%r9 + movq 16(%rsp),%r10 + movq 24(%rsp),%r11 + movq 32(%rsp),%r12 + movq 40(%rsp),%r13 + movq 48(%rsp),%r14 + movq 56(%rsp),%r15 + + call __rsaz_512_reducex + +.Lmul_scatter_tail: + addq 64(%rsp),%r8 + adcq 72(%rsp),%r9 + adcq 80(%rsp),%r10 + adcq 88(%rsp),%r11 + adcq 96(%rsp),%r12 + adcq 104(%rsp),%r13 + adcq 112(%rsp),%r14 + adcq 120(%rsp),%r15 +.byte 102,72,15,126,214 + sbbq %rcx,%rcx + + call __rsaz_512_subtract + + movq %r8,0(%rsi) + movq %r9,128(%rsi) + movq %r10,256(%rsi) + movq %r11,384(%rsi) + movq %r12,512(%rsi) + movq %r13,640(%rsi) + movq %r14,768(%rsi) + movq %r15,896(%rsi) + + leaq 128+24+48(%rsp),%rax +.cfi_def_cfa %rax,8 + movq -48(%rax),%r15 +.cfi_restore %r15 + movq -40(%rax),%r14 +.cfi_restore %r14 + movq -32(%rax),%r13 +.cfi_restore %r13 + movq -24(%rax),%r12 +.cfi_restore %r12 + movq -16(%rax),%rbp +.cfi_restore %rbp + movq -8(%rax),%rbx +.cfi_restore %rbx + leaq (%rax),%rsp +.cfi_def_cfa_register %rsp +.Lmul_scatter4_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size rsaz_512_mul_scatter4,.-rsaz_512_mul_scatter4 +.globl rsaz_512_mul_by_one +.type rsaz_512_mul_by_one,@function +.align 32 +rsaz_512_mul_by_one: +.cfi_startproc + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 + + subq $128+24,%rsp +.cfi_adjust_cfa_offset 128+24 +.Lmul_by_one_body: + movl OPENSSL_ia32cap_P+8(%rip),%eax + movq %rdx,%rbp + movq %rcx,128(%rsp) + + movq (%rsi),%r8 + pxor %xmm0,%xmm0 + movq 8(%rsi),%r9 + movq 16(%rsi),%r10 + movq 24(%rsi),%r11 + movq 32(%rsi),%r12 + movq 40(%rsi),%r13 + movq 48(%rsi),%r14 + movq 56(%rsi),%r15 + + movdqa %xmm0,(%rsp) + movdqa %xmm0,16(%rsp) + movdqa %xmm0,32(%rsp) + movdqa %xmm0,48(%rsp) + movdqa %xmm0,64(%rsp) + movdqa %xmm0,80(%rsp) + movdqa %xmm0,96(%rsp) + andl $0x80100,%eax + cmpl $0x80100,%eax + je .Lby_one_callx + call __rsaz_512_reduce + jmp .Lby_one_tail +.align 32 +.Lby_one_callx: + movq 128(%rsp),%rdx + call __rsaz_512_reducex +.Lby_one_tail: + movq %r8,(%rdi) + movq %r9,8(%rdi) + movq %r10,16(%rdi) + movq %r11,24(%rdi) + movq %r12,32(%rdi) + movq %r13,40(%rdi) + movq %r14,48(%rdi) + movq %r15,56(%rdi) + + leaq 128+24+48(%rsp),%rax +.cfi_def_cfa %rax,8 + movq -48(%rax),%r15 +.cfi_restore %r15 + movq -40(%rax),%r14 +.cfi_restore %r14 + movq -32(%rax),%r13 +.cfi_restore %r13 + movq -24(%rax),%r12 +.cfi_restore %r12 + movq -16(%rax),%rbp +.cfi_restore %rbp + movq -8(%rax),%rbx +.cfi_restore %rbx + leaq (%rax),%rsp +.cfi_def_cfa_register %rsp +.Lmul_by_one_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size rsaz_512_mul_by_one,.-rsaz_512_mul_by_one +.type __rsaz_512_reduce,@function +.align 32 +__rsaz_512_reduce: +.cfi_startproc + movq %r8,%rbx + imulq 128+8(%rsp),%rbx + movq 0(%rbp),%rax + movl $8,%ecx + jmp .Lreduction_loop + +.align 32 +.Lreduction_loop: + mulq %rbx + movq 8(%rbp),%rax + negq %r8 + movq %rdx,%r8 + adcq $0,%r8 + + mulq %rbx + addq %rax,%r9 + movq 16(%rbp),%rax + adcq $0,%rdx + addq %r9,%r8 + movq %rdx,%r9 + adcq $0,%r9 + + mulq %rbx + addq %rax,%r10 + movq 24(%rbp),%rax + adcq $0,%rdx + addq %r10,%r9 + movq %rdx,%r10 + adcq $0,%r10 + + mulq %rbx + addq %rax,%r11 + movq 32(%rbp),%rax + adcq $0,%rdx + addq %r11,%r10 + movq 128+8(%rsp),%rsi + + + adcq $0,%rdx + movq %rdx,%r11 + + mulq %rbx + addq %rax,%r12 + movq 40(%rbp),%rax + adcq $0,%rdx + imulq %r8,%rsi + addq %r12,%r11 + movq %rdx,%r12 + adcq $0,%r12 + + mulq %rbx + addq %rax,%r13 + movq 48(%rbp),%rax + adcq $0,%rdx + addq %r13,%r12 + movq %rdx,%r13 + adcq $0,%r13 + + mulq %rbx + addq %rax,%r14 + movq 56(%rbp),%rax + adcq $0,%rdx + addq %r14,%r13 + movq %rdx,%r14 + adcq $0,%r14 + + mulq %rbx + movq %rsi,%rbx + addq %rax,%r15 + movq 0(%rbp),%rax + adcq $0,%rdx + addq %r15,%r14 + movq %rdx,%r15 + adcq $0,%r15 + + decl %ecx + jne .Lreduction_loop + + .byte 0xf3,0xc3 +.cfi_endproc +.size __rsaz_512_reduce,.-__rsaz_512_reduce +.type __rsaz_512_reducex,@function +.align 32 +__rsaz_512_reducex: +.cfi_startproc + + imulq %r8,%rdx + xorq %rsi,%rsi + movl $8,%ecx + jmp .Lreduction_loopx + +.align 32 +.Lreduction_loopx: + movq %r8,%rbx + mulxq 0(%rbp),%rax,%r8 + adcxq %rbx,%rax + adoxq %r9,%r8 + + mulxq 8(%rbp),%rax,%r9 + adcxq %rax,%r8 + adoxq %r10,%r9 + + mulxq 16(%rbp),%rbx,%r10 + adcxq %rbx,%r9 + adoxq %r11,%r10 + + mulxq 24(%rbp),%rbx,%r11 + adcxq %rbx,%r10 + adoxq %r12,%r11 + +.byte 0xc4,0x62,0xe3,0xf6,0xa5,0x20,0x00,0x00,0x00 + movq %rdx,%rax + movq %r8,%rdx + adcxq %rbx,%r11 + adoxq %r13,%r12 + + mulxq 128+8(%rsp),%rbx,%rdx + movq %rax,%rdx + + mulxq 40(%rbp),%rax,%r13 + adcxq %rax,%r12 + adoxq %r14,%r13 + +.byte 0xc4,0x62,0xfb,0xf6,0xb5,0x30,0x00,0x00,0x00 + adcxq %rax,%r13 + adoxq %r15,%r14 + + mulxq 56(%rbp),%rax,%r15 + movq %rbx,%rdx + adcxq %rax,%r14 + adoxq %rsi,%r15 + adcxq %rsi,%r15 + + decl %ecx + jne .Lreduction_loopx + + .byte 0xf3,0xc3 +.cfi_endproc +.size __rsaz_512_reducex,.-__rsaz_512_reducex +.type __rsaz_512_subtract,@function +.align 32 +__rsaz_512_subtract: +.cfi_startproc + movq %r8,(%rdi) + movq %r9,8(%rdi) + movq %r10,16(%rdi) + movq %r11,24(%rdi) + movq %r12,32(%rdi) + movq %r13,40(%rdi) + movq %r14,48(%rdi) + movq %r15,56(%rdi) + + movq 0(%rbp),%r8 + movq 8(%rbp),%r9 + negq %r8 + notq %r9 + andq %rcx,%r8 + movq 16(%rbp),%r10 + andq %rcx,%r9 + notq %r10 + movq 24(%rbp),%r11 + andq %rcx,%r10 + notq %r11 + movq 32(%rbp),%r12 + andq %rcx,%r11 + notq %r12 + movq 40(%rbp),%r13 + andq %rcx,%r12 + notq %r13 + movq 48(%rbp),%r14 + andq %rcx,%r13 + notq %r14 + movq 56(%rbp),%r15 + andq %rcx,%r14 + notq %r15 + andq %rcx,%r15 + + addq (%rdi),%r8 + adcq 8(%rdi),%r9 + adcq 16(%rdi),%r10 + adcq 24(%rdi),%r11 + adcq 32(%rdi),%r12 + adcq 40(%rdi),%r13 + adcq 48(%rdi),%r14 + adcq 56(%rdi),%r15 + + movq %r8,(%rdi) + movq %r9,8(%rdi) + movq %r10,16(%rdi) + movq %r11,24(%rdi) + movq %r12,32(%rdi) + movq %r13,40(%rdi) + movq %r14,48(%rdi) + movq %r15,56(%rdi) + + .byte 0xf3,0xc3 +.cfi_endproc +.size __rsaz_512_subtract,.-__rsaz_512_subtract +.type __rsaz_512_mul,@function +.align 32 +__rsaz_512_mul: +.cfi_startproc + leaq 8(%rsp),%rdi + + movq (%rsi),%rax + mulq %rbx + movq %rax,(%rdi) + movq 8(%rsi),%rax + movq %rdx,%r8 + + mulq %rbx + addq %rax,%r8 + movq 16(%rsi),%rax + movq %rdx,%r9 + adcq $0,%r9 + + mulq %rbx + addq %rax,%r9 + movq 24(%rsi),%rax + movq %rdx,%r10 + adcq $0,%r10 + + mulq %rbx + addq %rax,%r10 + movq 32(%rsi),%rax + movq %rdx,%r11 + adcq $0,%r11 + + mulq %rbx + addq %rax,%r11 + movq 40(%rsi),%rax + movq %rdx,%r12 + adcq $0,%r12 + + mulq %rbx + addq %rax,%r12 + movq 48(%rsi),%rax + movq %rdx,%r13 + adcq $0,%r13 + + mulq %rbx + addq %rax,%r13 + movq 56(%rsi),%rax + movq %rdx,%r14 + adcq $0,%r14 + + mulq %rbx + addq %rax,%r14 + movq (%rsi),%rax + movq %rdx,%r15 + adcq $0,%r15 + + leaq 8(%rbp),%rbp + leaq 8(%rdi),%rdi + + movl $7,%ecx + jmp .Loop_mul + +.align 32 +.Loop_mul: + movq (%rbp),%rbx + mulq %rbx + addq %rax,%r8 + movq 8(%rsi),%rax + movq %r8,(%rdi) + movq %rdx,%r8 + adcq $0,%r8 + + mulq %rbx + addq %rax,%r9 + movq 16(%rsi),%rax + adcq $0,%rdx + addq %r9,%r8 + movq %rdx,%r9 + adcq $0,%r9 + + mulq %rbx + addq %rax,%r10 + movq 24(%rsi),%rax + adcq $0,%rdx + addq %r10,%r9 + movq %rdx,%r10 + adcq $0,%r10 + + mulq %rbx + addq %rax,%r11 + movq 32(%rsi),%rax + adcq $0,%rdx + addq %r11,%r10 + movq %rdx,%r11 + adcq $0,%r11 + + mulq %rbx + addq %rax,%r12 + movq 40(%rsi),%rax + adcq $0,%rdx + addq %r12,%r11 + movq %rdx,%r12 + adcq $0,%r12 + + mulq %rbx + addq %rax,%r13 + movq 48(%rsi),%rax + adcq $0,%rdx + addq %r13,%r12 + movq %rdx,%r13 + adcq $0,%r13 + + mulq %rbx + addq %rax,%r14 + movq 56(%rsi),%rax + adcq $0,%rdx + addq %r14,%r13 + movq %rdx,%r14 + leaq 8(%rbp),%rbp + adcq $0,%r14 + + mulq %rbx + addq %rax,%r15 + movq (%rsi),%rax + adcq $0,%rdx + addq %r15,%r14 + movq %rdx,%r15 + adcq $0,%r15 + + leaq 8(%rdi),%rdi + + decl %ecx + jnz .Loop_mul + + movq %r8,(%rdi) + movq %r9,8(%rdi) + movq %r10,16(%rdi) + movq %r11,24(%rdi) + movq %r12,32(%rdi) + movq %r13,40(%rdi) + movq %r14,48(%rdi) + movq %r15,56(%rdi) + + .byte 0xf3,0xc3 +.cfi_endproc +.size __rsaz_512_mul,.-__rsaz_512_mul +.type __rsaz_512_mulx,@function +.align 32 +__rsaz_512_mulx: +.cfi_startproc + mulxq (%rsi),%rbx,%r8 + movq $-6,%rcx + + mulxq 8(%rsi),%rax,%r9 + movq %rbx,8(%rsp) + + mulxq 16(%rsi),%rbx,%r10 + adcq %rax,%r8 + + mulxq 24(%rsi),%rax,%r11 + adcq %rbx,%r9 + + mulxq 32(%rsi),%rbx,%r12 + adcq %rax,%r10 + + mulxq 40(%rsi),%rax,%r13 + adcq %rbx,%r11 + + mulxq 48(%rsi),%rbx,%r14 + adcq %rax,%r12 + + mulxq 56(%rsi),%rax,%r15 + movq 8(%rbp),%rdx + adcq %rbx,%r13 + adcq %rax,%r14 + adcq $0,%r15 + + xorq %rdi,%rdi + jmp .Loop_mulx + +.align 32 +.Loop_mulx: + movq %r8,%rbx + mulxq (%rsi),%rax,%r8 + adcxq %rax,%rbx + adoxq %r9,%r8 + + mulxq 8(%rsi),%rax,%r9 + adcxq %rax,%r8 + adoxq %r10,%r9 + + mulxq 16(%rsi),%rax,%r10 + adcxq %rax,%r9 + adoxq %r11,%r10 + + mulxq 24(%rsi),%rax,%r11 + adcxq %rax,%r10 + adoxq %r12,%r11 + +.byte 0x3e,0xc4,0x62,0xfb,0xf6,0xa6,0x20,0x00,0x00,0x00 + adcxq %rax,%r11 + adoxq %r13,%r12 + + mulxq 40(%rsi),%rax,%r13 + adcxq %rax,%r12 + adoxq %r14,%r13 + + mulxq 48(%rsi),%rax,%r14 + adcxq %rax,%r13 + adoxq %r15,%r14 + + mulxq 56(%rsi),%rax,%r15 + movq 64(%rbp,%rcx,8),%rdx + movq %rbx,8+64-8(%rsp,%rcx,8) + adcxq %rax,%r14 + adoxq %rdi,%r15 + adcxq %rdi,%r15 + + incq %rcx + jnz .Loop_mulx + + movq %r8,%rbx + mulxq (%rsi),%rax,%r8 + adcxq %rax,%rbx + adoxq %r9,%r8 + +.byte 0xc4,0x62,0xfb,0xf6,0x8e,0x08,0x00,0x00,0x00 + adcxq %rax,%r8 + adoxq %r10,%r9 + +.byte 0xc4,0x62,0xfb,0xf6,0x96,0x10,0x00,0x00,0x00 + adcxq %rax,%r9 + adoxq %r11,%r10 + + mulxq 24(%rsi),%rax,%r11 + adcxq %rax,%r10 + adoxq %r12,%r11 + + mulxq 32(%rsi),%rax,%r12 + adcxq %rax,%r11 + adoxq %r13,%r12 + + mulxq 40(%rsi),%rax,%r13 + adcxq %rax,%r12 + adoxq %r14,%r13 + +.byte 0xc4,0x62,0xfb,0xf6,0xb6,0x30,0x00,0x00,0x00 + adcxq %rax,%r13 + adoxq %r15,%r14 + +.byte 0xc4,0x62,0xfb,0xf6,0xbe,0x38,0x00,0x00,0x00 + adcxq %rax,%r14 + adoxq %rdi,%r15 + adcxq %rdi,%r15 + + movq %rbx,8+64-8(%rsp) + movq %r8,8+64(%rsp) + movq %r9,8+64+8(%rsp) + movq %r10,8+64+16(%rsp) + movq %r11,8+64+24(%rsp) + movq %r12,8+64+32(%rsp) + movq %r13,8+64+40(%rsp) + movq %r14,8+64+48(%rsp) + movq %r15,8+64+56(%rsp) + + .byte 0xf3,0xc3 +.cfi_endproc +.size __rsaz_512_mulx,.-__rsaz_512_mulx +.globl rsaz_512_scatter4 +.type rsaz_512_scatter4,@function +.align 16 +rsaz_512_scatter4: +.cfi_startproc + leaq (%rdi,%rdx,8),%rdi + movl $8,%r9d + jmp .Loop_scatter +.align 16 +.Loop_scatter: + movq (%rsi),%rax + leaq 8(%rsi),%rsi + movq %rax,(%rdi) + leaq 128(%rdi),%rdi + decl %r9d + jnz .Loop_scatter + .byte 0xf3,0xc3 +.cfi_endproc +.size rsaz_512_scatter4,.-rsaz_512_scatter4 + +.globl rsaz_512_gather4 +.type rsaz_512_gather4,@function +.align 16 +rsaz_512_gather4: +.cfi_startproc + movd %edx,%xmm8 + movdqa .Linc+16(%rip),%xmm1 + movdqa .Linc(%rip),%xmm0 + + pshufd $0,%xmm8,%xmm8 + movdqa %xmm1,%xmm7 + movdqa %xmm1,%xmm2 + paddd %xmm0,%xmm1 + pcmpeqd %xmm8,%xmm0 + movdqa %xmm7,%xmm3 + paddd %xmm1,%xmm2 + pcmpeqd %xmm8,%xmm1 + movdqa %xmm7,%xmm4 + paddd %xmm2,%xmm3 + pcmpeqd %xmm8,%xmm2 + movdqa %xmm7,%xmm5 + paddd %xmm3,%xmm4 + pcmpeqd %xmm8,%xmm3 + movdqa %xmm7,%xmm6 + paddd %xmm4,%xmm5 + pcmpeqd %xmm8,%xmm4 + paddd %xmm5,%xmm6 + pcmpeqd %xmm8,%xmm5 + paddd %xmm6,%xmm7 + pcmpeqd %xmm8,%xmm6 + pcmpeqd %xmm8,%xmm7 + movl $8,%r9d + jmp .Loop_gather +.align 16 +.Loop_gather: + movdqa 0(%rsi),%xmm8 + movdqa 16(%rsi),%xmm9 + movdqa 32(%rsi),%xmm10 + movdqa 48(%rsi),%xmm11 + pand %xmm0,%xmm8 + movdqa 64(%rsi),%xmm12 + pand %xmm1,%xmm9 + movdqa 80(%rsi),%xmm13 + pand %xmm2,%xmm10 + movdqa 96(%rsi),%xmm14 + pand %xmm3,%xmm11 + movdqa 112(%rsi),%xmm15 + leaq 128(%rsi),%rsi + pand %xmm4,%xmm12 + pand %xmm5,%xmm13 + pand %xmm6,%xmm14 + pand %xmm7,%xmm15 + por %xmm10,%xmm8 + por %xmm11,%xmm9 + por %xmm12,%xmm8 + por %xmm13,%xmm9 + por %xmm14,%xmm8 + por %xmm15,%xmm9 + + por %xmm9,%xmm8 + pshufd $0x4e,%xmm8,%xmm9 + por %xmm9,%xmm8 + movq %xmm8,(%rdi) + leaq 8(%rdi),%rdi + decl %r9d + jnz .Loop_gather + .byte 0xf3,0xc3 +.LSEH_end_rsaz_512_gather4: +.cfi_endproc +.size rsaz_512_gather4,.-rsaz_512_gather4 + +.align 64 +.Linc: +.long 0,0, 1,1 +.long 2,2, 2,2 diff --git a/vere/ext/openssl/gen/linux-x86_64/crypto/bn/x86_64-gf2m.s b/vere/ext/openssl/gen/linux-x86_64/crypto/bn/x86_64-gf2m.s new file mode 100644 index 0000000..0846c44 --- /dev/null +++ b/vere/ext/openssl/gen/linux-x86_64/crypto/bn/x86_64-gf2m.s @@ -0,0 +1,311 @@ +.text + +.type _mul_1x1,@function +.align 16 +_mul_1x1: +.cfi_startproc + subq $128+8,%rsp +.cfi_adjust_cfa_offset 128+8 + movq $-1,%r9 + leaq (%rax,%rax,1),%rsi + shrq $3,%r9 + leaq (,%rax,4),%rdi + andq %rax,%r9 + leaq (,%rax,8),%r12 + sarq $63,%rax + leaq (%r9,%r9,1),%r10 + sarq $63,%rsi + leaq (,%r9,4),%r11 + andq %rbp,%rax + sarq $63,%rdi + movq %rax,%rdx + shlq $63,%rax + andq %rbp,%rsi + shrq $1,%rdx + movq %rsi,%rcx + shlq $62,%rsi + andq %rbp,%rdi + shrq $2,%rcx + xorq %rsi,%rax + movq %rdi,%rbx + shlq $61,%rdi + xorq %rcx,%rdx + shrq $3,%rbx + xorq %rdi,%rax + xorq %rbx,%rdx + + movq %r9,%r13 + movq $0,0(%rsp) + xorq %r10,%r13 + movq %r9,8(%rsp) + movq %r11,%r14 + movq %r10,16(%rsp) + xorq %r12,%r14 + movq %r13,24(%rsp) + + xorq %r11,%r9 + movq %r11,32(%rsp) + xorq %r11,%r10 + movq %r9,40(%rsp) + xorq %r11,%r13 + movq %r10,48(%rsp) + xorq %r14,%r9 + movq %r13,56(%rsp) + xorq %r14,%r10 + + movq %r12,64(%rsp) + xorq %r14,%r13 + movq %r9,72(%rsp) + xorq %r11,%r9 + movq %r10,80(%rsp) + xorq %r11,%r10 + movq %r13,88(%rsp) + + xorq %r11,%r13 + movq %r14,96(%rsp) + movq %r8,%rsi + movq %r9,104(%rsp) + andq %rbp,%rsi + movq %r10,112(%rsp) + shrq $4,%rbp + movq %r13,120(%rsp) + movq %r8,%rdi + andq %rbp,%rdi + shrq $4,%rbp + + movq (%rsp,%rsi,8),%xmm0 + movq %r8,%rsi + andq %rbp,%rsi + shrq $4,%rbp + movq (%rsp,%rdi,8),%rcx + movq %r8,%rdi + movq %rcx,%rbx + shlq $4,%rcx + andq %rbp,%rdi + movq (%rsp,%rsi,8),%xmm1 + shrq $60,%rbx + xorq %rcx,%rax + pslldq $1,%xmm1 + movq %r8,%rsi + shrq $4,%rbp + xorq %rbx,%rdx + andq %rbp,%rsi + shrq $4,%rbp + pxor %xmm1,%xmm0 + movq (%rsp,%rdi,8),%rcx + movq %r8,%rdi + movq %rcx,%rbx + shlq $12,%rcx + andq %rbp,%rdi + movq (%rsp,%rsi,8),%xmm1 + shrq $52,%rbx + xorq %rcx,%rax + pslldq $2,%xmm1 + movq %r8,%rsi + shrq $4,%rbp + xorq %rbx,%rdx + andq %rbp,%rsi + shrq $4,%rbp + pxor %xmm1,%xmm0 + movq (%rsp,%rdi,8),%rcx + movq %r8,%rdi + movq %rcx,%rbx + shlq $20,%rcx + andq %rbp,%rdi + movq (%rsp,%rsi,8),%xmm1 + shrq $44,%rbx + xorq %rcx,%rax + pslldq $3,%xmm1 + movq %r8,%rsi + shrq $4,%rbp + xorq %rbx,%rdx + andq %rbp,%rsi + shrq $4,%rbp + pxor %xmm1,%xmm0 + movq (%rsp,%rdi,8),%rcx + movq %r8,%rdi + movq %rcx,%rbx + shlq $28,%rcx + andq %rbp,%rdi + movq (%rsp,%rsi,8),%xmm1 + shrq $36,%rbx + xorq %rcx,%rax + pslldq $4,%xmm1 + movq %r8,%rsi + shrq $4,%rbp + xorq %rbx,%rdx + andq %rbp,%rsi + shrq $4,%rbp + pxor %xmm1,%xmm0 + movq (%rsp,%rdi,8),%rcx + movq %r8,%rdi + movq %rcx,%rbx + shlq $36,%rcx + andq %rbp,%rdi + movq (%rsp,%rsi,8),%xmm1 + shrq $28,%rbx + xorq %rcx,%rax + pslldq $5,%xmm1 + movq %r8,%rsi + shrq $4,%rbp + xorq %rbx,%rdx + andq %rbp,%rsi + shrq $4,%rbp + pxor %xmm1,%xmm0 + movq (%rsp,%rdi,8),%rcx + movq %r8,%rdi + movq %rcx,%rbx + shlq $44,%rcx + andq %rbp,%rdi + movq (%rsp,%rsi,8),%xmm1 + shrq $20,%rbx + xorq %rcx,%rax + pslldq $6,%xmm1 + movq %r8,%rsi + shrq $4,%rbp + xorq %rbx,%rdx + andq %rbp,%rsi + shrq $4,%rbp + pxor %xmm1,%xmm0 + movq (%rsp,%rdi,8),%rcx + movq %r8,%rdi + movq %rcx,%rbx + shlq $52,%rcx + andq %rbp,%rdi + movq (%rsp,%rsi,8),%xmm1 + shrq $12,%rbx + xorq %rcx,%rax + pslldq $7,%xmm1 + movq %r8,%rsi + shrq $4,%rbp + xorq %rbx,%rdx + andq %rbp,%rsi + shrq $4,%rbp + pxor %xmm1,%xmm0 + movq (%rsp,%rdi,8),%rcx + movq %rcx,%rbx + shlq $60,%rcx +.byte 102,72,15,126,198 + shrq $4,%rbx + xorq %rcx,%rax + psrldq $8,%xmm0 + xorq %rbx,%rdx +.byte 102,72,15,126,199 + xorq %rsi,%rax + xorq %rdi,%rdx + + addq $128+8,%rsp +.cfi_adjust_cfa_offset -128-8 + .byte 0xf3,0xc3 +.Lend_mul_1x1: +.cfi_endproc +.size _mul_1x1,.-_mul_1x1 + +.globl bn_GF2m_mul_2x2 +.type bn_GF2m_mul_2x2,@function +.align 16 +bn_GF2m_mul_2x2: +.cfi_startproc + movq %rsp,%rax + movq OPENSSL_ia32cap_P(%rip),%r10 + btq $33,%r10 + jnc .Lvanilla_mul_2x2 + +.byte 102,72,15,110,198 +.byte 102,72,15,110,201 +.byte 102,72,15,110,210 +.byte 102,73,15,110,216 + movdqa %xmm0,%xmm4 + movdqa %xmm1,%xmm5 +.byte 102,15,58,68,193,0 + pxor %xmm2,%xmm4 + pxor %xmm3,%xmm5 +.byte 102,15,58,68,211,0 +.byte 102,15,58,68,229,0 + xorps %xmm0,%xmm4 + xorps %xmm2,%xmm4 + movdqa %xmm4,%xmm5 + pslldq $8,%xmm4 + psrldq $8,%xmm5 + pxor %xmm4,%xmm2 + pxor %xmm5,%xmm0 + movdqu %xmm2,0(%rdi) + movdqu %xmm0,16(%rdi) + .byte 0xf3,0xc3 + +.align 16 +.Lvanilla_mul_2x2: + leaq -136(%rsp),%rsp +.cfi_adjust_cfa_offset 8*17 + movq %r14,80(%rsp) +.cfi_rel_offset %r14,8*10 + movq %r13,88(%rsp) +.cfi_rel_offset %r13,8*11 + movq %r12,96(%rsp) +.cfi_rel_offset %r12,8*12 + movq %rbp,104(%rsp) +.cfi_rel_offset %rbp,8*13 + movq %rbx,112(%rsp) +.cfi_rel_offset %rbx,8*14 +.Lbody_mul_2x2: + movq %rdi,32(%rsp) + movq %rsi,40(%rsp) + movq %rdx,48(%rsp) + movq %rcx,56(%rsp) + movq %r8,64(%rsp) + + movq $0xf,%r8 + movq %rsi,%rax + movq %rcx,%rbp + call _mul_1x1 + movq %rax,16(%rsp) + movq %rdx,24(%rsp) + + movq 48(%rsp),%rax + movq 64(%rsp),%rbp + call _mul_1x1 + movq %rax,0(%rsp) + movq %rdx,8(%rsp) + + movq 40(%rsp),%rax + movq 56(%rsp),%rbp + xorq 48(%rsp),%rax + xorq 64(%rsp),%rbp + call _mul_1x1 + movq 0(%rsp),%rbx + movq 8(%rsp),%rcx + movq 16(%rsp),%rdi + movq 24(%rsp),%rsi + movq 32(%rsp),%rbp + + xorq %rdx,%rax + xorq %rcx,%rdx + xorq %rbx,%rax + movq %rbx,0(%rbp) + xorq %rdi,%rdx + movq %rsi,24(%rbp) + xorq %rsi,%rax + xorq %rsi,%rdx + xorq %rdx,%rax + movq %rdx,16(%rbp) + movq %rax,8(%rbp) + + movq 80(%rsp),%r14 +.cfi_restore %r14 + movq 88(%rsp),%r13 +.cfi_restore %r13 + movq 96(%rsp),%r12 +.cfi_restore %r12 + movq 104(%rsp),%rbp +.cfi_restore %rbp + movq 112(%rsp),%rbx +.cfi_restore %rbx + leaq 136(%rsp),%rsp +.cfi_adjust_cfa_offset -8*17 +.Lepilogue_mul_2x2: + .byte 0xf3,0xc3 +.Lend_mul_2x2: +.cfi_endproc +.size bn_GF2m_mul_2x2,.-bn_GF2m_mul_2x2 +.byte 71,70,40,50,94,109,41,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 16 diff --git a/vere/ext/openssl/gen/linux-x86_64/crypto/bn/x86_64-mont.s b/vere/ext/openssl/gen/linux-x86_64/crypto/bn/x86_64-mont.s new file mode 100644 index 0000000..414be6a --- /dev/null +++ b/vere/ext/openssl/gen/linux-x86_64/crypto/bn/x86_64-mont.s @@ -0,0 +1,1239 @@ +.text + + + +.globl bn_mul_mont +.type bn_mul_mont,@function +.align 16 +bn_mul_mont: +.cfi_startproc + movl %r9d,%r9d + movq %rsp,%rax +.cfi_def_cfa_register %rax + testl $3,%r9d + jnz .Lmul_enter + cmpl $8,%r9d + jb .Lmul_enter + movl OPENSSL_ia32cap_P+8(%rip),%r11d + cmpq %rsi,%rdx + jne .Lmul4x_enter + testl $7,%r9d + jz .Lsqr8x_enter + jmp .Lmul4x_enter + +.align 16 +.Lmul_enter: + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_offset %r15,-56 + + negq %r9 + movq %rsp,%r11 + leaq -16(%rsp,%r9,8),%r10 + negq %r9 + andq $-1024,%r10 + + + + + + + + + + subq %r10,%r11 + andq $-4096,%r11 + leaq (%r10,%r11,1),%rsp + movq (%rsp),%r11 + cmpq %r10,%rsp + ja .Lmul_page_walk + jmp .Lmul_page_walk_done + +.align 16 +.Lmul_page_walk: + leaq -4096(%rsp),%rsp + movq (%rsp),%r11 + cmpq %r10,%rsp + ja .Lmul_page_walk +.Lmul_page_walk_done: + + movq %rax,8(%rsp,%r9,8) +.cfi_escape 0x0f,0x0a,0x77,0x08,0x79,0x00,0x38,0x1e,0x22,0x06,0x23,0x08 +.Lmul_body: + movq %rdx,%r12 + movq (%r8),%r8 + movq (%r12),%rbx + movq (%rsi),%rax + + xorq %r14,%r14 + xorq %r15,%r15 + + movq %r8,%rbp + mulq %rbx + movq %rax,%r10 + movq (%rcx),%rax + + imulq %r10,%rbp + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r10 + movq 8(%rsi),%rax + adcq $0,%rdx + movq %rdx,%r13 + + leaq 1(%r15),%r15 + jmp .L1st_enter + +.align 16 +.L1st: + addq %rax,%r13 + movq (%rsi,%r15,8),%rax + adcq $0,%rdx + addq %r11,%r13 + movq %r10,%r11 + adcq $0,%rdx + movq %r13,-16(%rsp,%r15,8) + movq %rdx,%r13 + +.L1st_enter: + mulq %rbx + addq %rax,%r11 + movq (%rcx,%r15,8),%rax + adcq $0,%rdx + leaq 1(%r15),%r15 + movq %rdx,%r10 + + mulq %rbp + cmpq %r9,%r15 + jne .L1st + + addq %rax,%r13 + movq (%rsi),%rax + adcq $0,%rdx + addq %r11,%r13 + adcq $0,%rdx + movq %r13,-16(%rsp,%r15,8) + movq %rdx,%r13 + movq %r10,%r11 + + xorq %rdx,%rdx + addq %r11,%r13 + adcq $0,%rdx + movq %r13,-8(%rsp,%r9,8) + movq %rdx,(%rsp,%r9,8) + + leaq 1(%r14),%r14 + jmp .Louter +.align 16 +.Louter: + movq (%r12,%r14,8),%rbx + xorq %r15,%r15 + movq %r8,%rbp + movq (%rsp),%r10 + mulq %rbx + addq %rax,%r10 + movq (%rcx),%rax + adcq $0,%rdx + + imulq %r10,%rbp + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r10 + movq 8(%rsi),%rax + adcq $0,%rdx + movq 8(%rsp),%r10 + movq %rdx,%r13 + + leaq 1(%r15),%r15 + jmp .Linner_enter + +.align 16 +.Linner: + addq %rax,%r13 + movq (%rsi,%r15,8),%rax + adcq $0,%rdx + addq %r10,%r13 + movq (%rsp,%r15,8),%r10 + adcq $0,%rdx + movq %r13,-16(%rsp,%r15,8) + movq %rdx,%r13 + +.Linner_enter: + mulq %rbx + addq %rax,%r11 + movq (%rcx,%r15,8),%rax + adcq $0,%rdx + addq %r11,%r10 + movq %rdx,%r11 + adcq $0,%r11 + leaq 1(%r15),%r15 + + mulq %rbp + cmpq %r9,%r15 + jne .Linner + + addq %rax,%r13 + movq (%rsi),%rax + adcq $0,%rdx + addq %r10,%r13 + movq (%rsp,%r15,8),%r10 + adcq $0,%rdx + movq %r13,-16(%rsp,%r15,8) + movq %rdx,%r13 + + xorq %rdx,%rdx + addq %r11,%r13 + adcq $0,%rdx + addq %r10,%r13 + adcq $0,%rdx + movq %r13,-8(%rsp,%r9,8) + movq %rdx,(%rsp,%r9,8) + + leaq 1(%r14),%r14 + cmpq %r9,%r14 + jb .Louter + + xorq %r14,%r14 + movq (%rsp),%rax + movq %r9,%r15 + +.align 16 +.Lsub: sbbq (%rcx,%r14,8),%rax + movq %rax,(%rdi,%r14,8) + movq 8(%rsp,%r14,8),%rax + leaq 1(%r14),%r14 + decq %r15 + jnz .Lsub + + sbbq $0,%rax + movq $-1,%rbx + xorq %rax,%rbx + xorq %r14,%r14 + movq %r9,%r15 + +.Lcopy: + movq (%rdi,%r14,8),%rcx + movq (%rsp,%r14,8),%rdx + andq %rbx,%rcx + andq %rax,%rdx + movq %r9,(%rsp,%r14,8) + orq %rcx,%rdx + movq %rdx,(%rdi,%r14,8) + leaq 1(%r14),%r14 + subq $1,%r15 + jnz .Lcopy + + movq 8(%rsp,%r9,8),%rsi +.cfi_def_cfa %rsi,8 + movq $1,%rax + movq -48(%rsi),%r15 +.cfi_restore %r15 + movq -40(%rsi),%r14 +.cfi_restore %r14 + movq -32(%rsi),%r13 +.cfi_restore %r13 + movq -24(%rsi),%r12 +.cfi_restore %r12 + movq -16(%rsi),%rbp +.cfi_restore %rbp + movq -8(%rsi),%rbx +.cfi_restore %rbx + leaq (%rsi),%rsp +.cfi_def_cfa_register %rsp +.Lmul_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size bn_mul_mont,.-bn_mul_mont +.type bn_mul4x_mont,@function +.align 16 +bn_mul4x_mont: +.cfi_startproc + movl %r9d,%r9d + movq %rsp,%rax +.cfi_def_cfa_register %rax +.Lmul4x_enter: + andl $0x80100,%r11d + cmpl $0x80100,%r11d + je .Lmulx4x_enter + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_offset %r15,-56 + + negq %r9 + movq %rsp,%r11 + leaq -32(%rsp,%r9,8),%r10 + negq %r9 + andq $-1024,%r10 + + subq %r10,%r11 + andq $-4096,%r11 + leaq (%r10,%r11,1),%rsp + movq (%rsp),%r11 + cmpq %r10,%rsp + ja .Lmul4x_page_walk + jmp .Lmul4x_page_walk_done + +.Lmul4x_page_walk: + leaq -4096(%rsp),%rsp + movq (%rsp),%r11 + cmpq %r10,%rsp + ja .Lmul4x_page_walk +.Lmul4x_page_walk_done: + + movq %rax,8(%rsp,%r9,8) +.cfi_escape 0x0f,0x0a,0x77,0x08,0x79,0x00,0x38,0x1e,0x22,0x06,0x23,0x08 +.Lmul4x_body: + movq %rdi,16(%rsp,%r9,8) + movq %rdx,%r12 + movq (%r8),%r8 + movq (%r12),%rbx + movq (%rsi),%rax + + xorq %r14,%r14 + xorq %r15,%r15 + + movq %r8,%rbp + mulq %rbx + movq %rax,%r10 + movq (%rcx),%rax + + imulq %r10,%rbp + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r10 + movq 8(%rsi),%rax + adcq $0,%rdx + movq %rdx,%rdi + + mulq %rbx + addq %rax,%r11 + movq 8(%rcx),%rax + adcq $0,%rdx + movq %rdx,%r10 + + mulq %rbp + addq %rax,%rdi + movq 16(%rsi),%rax + adcq $0,%rdx + addq %r11,%rdi + leaq 4(%r15),%r15 + adcq $0,%rdx + movq %rdi,(%rsp) + movq %rdx,%r13 + jmp .L1st4x +.align 16 +.L1st4x: + mulq %rbx + addq %rax,%r10 + movq -16(%rcx,%r15,8),%rax + adcq $0,%rdx + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r13 + movq -8(%rsi,%r15,8),%rax + adcq $0,%rdx + addq %r10,%r13 + adcq $0,%rdx + movq %r13,-24(%rsp,%r15,8) + movq %rdx,%rdi + + mulq %rbx + addq %rax,%r11 + movq -8(%rcx,%r15,8),%rax + adcq $0,%rdx + movq %rdx,%r10 + + mulq %rbp + addq %rax,%rdi + movq (%rsi,%r15,8),%rax + adcq $0,%rdx + addq %r11,%rdi + adcq $0,%rdx + movq %rdi,-16(%rsp,%r15,8) + movq %rdx,%r13 + + mulq %rbx + addq %rax,%r10 + movq (%rcx,%r15,8),%rax + adcq $0,%rdx + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r13 + movq 8(%rsi,%r15,8),%rax + adcq $0,%rdx + addq %r10,%r13 + adcq $0,%rdx + movq %r13,-8(%rsp,%r15,8) + movq %rdx,%rdi + + mulq %rbx + addq %rax,%r11 + movq 8(%rcx,%r15,8),%rax + adcq $0,%rdx + leaq 4(%r15),%r15 + movq %rdx,%r10 + + mulq %rbp + addq %rax,%rdi + movq -16(%rsi,%r15,8),%rax + adcq $0,%rdx + addq %r11,%rdi + adcq $0,%rdx + movq %rdi,-32(%rsp,%r15,8) + movq %rdx,%r13 + cmpq %r9,%r15 + jb .L1st4x + + mulq %rbx + addq %rax,%r10 + movq -16(%rcx,%r15,8),%rax + adcq $0,%rdx + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r13 + movq -8(%rsi,%r15,8),%rax + adcq $0,%rdx + addq %r10,%r13 + adcq $0,%rdx + movq %r13,-24(%rsp,%r15,8) + movq %rdx,%rdi + + mulq %rbx + addq %rax,%r11 + movq -8(%rcx,%r15,8),%rax + adcq $0,%rdx + movq %rdx,%r10 + + mulq %rbp + addq %rax,%rdi + movq (%rsi),%rax + adcq $0,%rdx + addq %r11,%rdi + adcq $0,%rdx + movq %rdi,-16(%rsp,%r15,8) + movq %rdx,%r13 + + xorq %rdi,%rdi + addq %r10,%r13 + adcq $0,%rdi + movq %r13,-8(%rsp,%r15,8) + movq %rdi,(%rsp,%r15,8) + + leaq 1(%r14),%r14 +.align 4 +.Louter4x: + movq (%r12,%r14,8),%rbx + xorq %r15,%r15 + movq (%rsp),%r10 + movq %r8,%rbp + mulq %rbx + addq %rax,%r10 + movq (%rcx),%rax + adcq $0,%rdx + + imulq %r10,%rbp + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r10 + movq 8(%rsi),%rax + adcq $0,%rdx + movq %rdx,%rdi + + mulq %rbx + addq %rax,%r11 + movq 8(%rcx),%rax + adcq $0,%rdx + addq 8(%rsp),%r11 + adcq $0,%rdx + movq %rdx,%r10 + + mulq %rbp + addq %rax,%rdi + movq 16(%rsi),%rax + adcq $0,%rdx + addq %r11,%rdi + leaq 4(%r15),%r15 + adcq $0,%rdx + movq %rdi,(%rsp) + movq %rdx,%r13 + jmp .Linner4x +.align 16 +.Linner4x: + mulq %rbx + addq %rax,%r10 + movq -16(%rcx,%r15,8),%rax + adcq $0,%rdx + addq -16(%rsp,%r15,8),%r10 + adcq $0,%rdx + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r13 + movq -8(%rsi,%r15,8),%rax + adcq $0,%rdx + addq %r10,%r13 + adcq $0,%rdx + movq %r13,-24(%rsp,%r15,8) + movq %rdx,%rdi + + mulq %rbx + addq %rax,%r11 + movq -8(%rcx,%r15,8),%rax + adcq $0,%rdx + addq -8(%rsp,%r15,8),%r11 + adcq $0,%rdx + movq %rdx,%r10 + + mulq %rbp + addq %rax,%rdi + movq (%rsi,%r15,8),%rax + adcq $0,%rdx + addq %r11,%rdi + adcq $0,%rdx + movq %rdi,-16(%rsp,%r15,8) + movq %rdx,%r13 + + mulq %rbx + addq %rax,%r10 + movq (%rcx,%r15,8),%rax + adcq $0,%rdx + addq (%rsp,%r15,8),%r10 + adcq $0,%rdx + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r13 + movq 8(%rsi,%r15,8),%rax + adcq $0,%rdx + addq %r10,%r13 + adcq $0,%rdx + movq %r13,-8(%rsp,%r15,8) + movq %rdx,%rdi + + mulq %rbx + addq %rax,%r11 + movq 8(%rcx,%r15,8),%rax + adcq $0,%rdx + addq 8(%rsp,%r15,8),%r11 + adcq $0,%rdx + leaq 4(%r15),%r15 + movq %rdx,%r10 + + mulq %rbp + addq %rax,%rdi + movq -16(%rsi,%r15,8),%rax + adcq $0,%rdx + addq %r11,%rdi + adcq $0,%rdx + movq %rdi,-32(%rsp,%r15,8) + movq %rdx,%r13 + cmpq %r9,%r15 + jb .Linner4x + + mulq %rbx + addq %rax,%r10 + movq -16(%rcx,%r15,8),%rax + adcq $0,%rdx + addq -16(%rsp,%r15,8),%r10 + adcq $0,%rdx + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r13 + movq -8(%rsi,%r15,8),%rax + adcq $0,%rdx + addq %r10,%r13 + adcq $0,%rdx + movq %r13,-24(%rsp,%r15,8) + movq %rdx,%rdi + + mulq %rbx + addq %rax,%r11 + movq -8(%rcx,%r15,8),%rax + adcq $0,%rdx + addq -8(%rsp,%r15,8),%r11 + adcq $0,%rdx + leaq 1(%r14),%r14 + movq %rdx,%r10 + + mulq %rbp + addq %rax,%rdi + movq (%rsi),%rax + adcq $0,%rdx + addq %r11,%rdi + adcq $0,%rdx + movq %rdi,-16(%rsp,%r15,8) + movq %rdx,%r13 + + xorq %rdi,%rdi + addq %r10,%r13 + adcq $0,%rdi + addq (%rsp,%r9,8),%r13 + adcq $0,%rdi + movq %r13,-8(%rsp,%r15,8) + movq %rdi,(%rsp,%r15,8) + + cmpq %r9,%r14 + jb .Louter4x + movq 16(%rsp,%r9,8),%rdi + leaq -4(%r9),%r15 + movq 0(%rsp),%rax + movq 8(%rsp),%rdx + shrq $2,%r15 + leaq (%rsp),%rsi + xorq %r14,%r14 + + subq 0(%rcx),%rax + movq 16(%rsi),%rbx + movq 24(%rsi),%rbp + sbbq 8(%rcx),%rdx + +.Lsub4x: + movq %rax,0(%rdi,%r14,8) + movq %rdx,8(%rdi,%r14,8) + sbbq 16(%rcx,%r14,8),%rbx + movq 32(%rsi,%r14,8),%rax + movq 40(%rsi,%r14,8),%rdx + sbbq 24(%rcx,%r14,8),%rbp + movq %rbx,16(%rdi,%r14,8) + movq %rbp,24(%rdi,%r14,8) + sbbq 32(%rcx,%r14,8),%rax + movq 48(%rsi,%r14,8),%rbx + movq 56(%rsi,%r14,8),%rbp + sbbq 40(%rcx,%r14,8),%rdx + leaq 4(%r14),%r14 + decq %r15 + jnz .Lsub4x + + movq %rax,0(%rdi,%r14,8) + movq 32(%rsi,%r14,8),%rax + sbbq 16(%rcx,%r14,8),%rbx + movq %rdx,8(%rdi,%r14,8) + sbbq 24(%rcx,%r14,8),%rbp + movq %rbx,16(%rdi,%r14,8) + + sbbq $0,%rax + movq %rbp,24(%rdi,%r14,8) + pxor %xmm0,%xmm0 +.byte 102,72,15,110,224 + pcmpeqd %xmm5,%xmm5 + pshufd $0,%xmm4,%xmm4 + movq %r9,%r15 + pxor %xmm4,%xmm5 + shrq $2,%r15 + xorl %eax,%eax + + jmp .Lcopy4x +.align 16 +.Lcopy4x: + movdqa (%rsp,%rax,1),%xmm1 + movdqu (%rdi,%rax,1),%xmm2 + pand %xmm4,%xmm1 + pand %xmm5,%xmm2 + movdqa 16(%rsp,%rax,1),%xmm3 + movdqa %xmm0,(%rsp,%rax,1) + por %xmm2,%xmm1 + movdqu 16(%rdi,%rax,1),%xmm2 + movdqu %xmm1,(%rdi,%rax,1) + pand %xmm4,%xmm3 + pand %xmm5,%xmm2 + movdqa %xmm0,16(%rsp,%rax,1) + por %xmm2,%xmm3 + movdqu %xmm3,16(%rdi,%rax,1) + leaq 32(%rax),%rax + decq %r15 + jnz .Lcopy4x + movq 8(%rsp,%r9,8),%rsi +.cfi_def_cfa %rsi, 8 + movq $1,%rax + movq -48(%rsi),%r15 +.cfi_restore %r15 + movq -40(%rsi),%r14 +.cfi_restore %r14 + movq -32(%rsi),%r13 +.cfi_restore %r13 + movq -24(%rsi),%r12 +.cfi_restore %r12 + movq -16(%rsi),%rbp +.cfi_restore %rbp + movq -8(%rsi),%rbx +.cfi_restore %rbx + leaq (%rsi),%rsp +.cfi_def_cfa_register %rsp +.Lmul4x_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size bn_mul4x_mont,.-bn_mul4x_mont + + + +.type bn_sqr8x_mont,@function +.align 32 +bn_sqr8x_mont: +.cfi_startproc + movq %rsp,%rax +.cfi_def_cfa_register %rax +.Lsqr8x_enter: + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_offset %r15,-56 +.Lsqr8x_prologue: + + movl %r9d,%r10d + shll $3,%r9d + shlq $3+2,%r10 + negq %r9 + + + + + + + leaq -64(%rsp,%r9,2),%r11 + movq %rsp,%rbp + movq (%r8),%r8 + subq %rsi,%r11 + andq $4095,%r11 + cmpq %r11,%r10 + jb .Lsqr8x_sp_alt + subq %r11,%rbp + leaq -64(%rbp,%r9,2),%rbp + jmp .Lsqr8x_sp_done + +.align 32 +.Lsqr8x_sp_alt: + leaq 4096-64(,%r9,2),%r10 + leaq -64(%rbp,%r9,2),%rbp + subq %r10,%r11 + movq $0,%r10 + cmovcq %r10,%r11 + subq %r11,%rbp +.Lsqr8x_sp_done: + andq $-64,%rbp + movq %rsp,%r11 + subq %rbp,%r11 + andq $-4096,%r11 + leaq (%r11,%rbp,1),%rsp + movq (%rsp),%r10 + cmpq %rbp,%rsp + ja .Lsqr8x_page_walk + jmp .Lsqr8x_page_walk_done + +.align 16 +.Lsqr8x_page_walk: + leaq -4096(%rsp),%rsp + movq (%rsp),%r10 + cmpq %rbp,%rsp + ja .Lsqr8x_page_walk +.Lsqr8x_page_walk_done: + + movq %r9,%r10 + negq %r9 + + movq %r8,32(%rsp) + movq %rax,40(%rsp) +.cfi_escape 0x0f,0x05,0x77,0x28,0x06,0x23,0x08 +.Lsqr8x_body: + +.byte 102,72,15,110,209 + pxor %xmm0,%xmm0 +.byte 102,72,15,110,207 +.byte 102,73,15,110,218 + movl OPENSSL_ia32cap_P+8(%rip),%eax + andl $0x80100,%eax + cmpl $0x80100,%eax + jne .Lsqr8x_nox + + call bn_sqrx8x_internal + + + + + leaq (%r8,%rcx,1),%rbx + movq %rcx,%r9 + movq %rcx,%rdx +.byte 102,72,15,126,207 + sarq $3+2,%rcx + jmp .Lsqr8x_sub + +.align 32 +.Lsqr8x_nox: + call bn_sqr8x_internal + + + + + leaq (%rdi,%r9,1),%rbx + movq %r9,%rcx + movq %r9,%rdx +.byte 102,72,15,126,207 + sarq $3+2,%rcx + jmp .Lsqr8x_sub + +.align 32 +.Lsqr8x_sub: + movq 0(%rbx),%r12 + movq 8(%rbx),%r13 + movq 16(%rbx),%r14 + movq 24(%rbx),%r15 + leaq 32(%rbx),%rbx + sbbq 0(%rbp),%r12 + sbbq 8(%rbp),%r13 + sbbq 16(%rbp),%r14 + sbbq 24(%rbp),%r15 + leaq 32(%rbp),%rbp + movq %r12,0(%rdi) + movq %r13,8(%rdi) + movq %r14,16(%rdi) + movq %r15,24(%rdi) + leaq 32(%rdi),%rdi + incq %rcx + jnz .Lsqr8x_sub + + sbbq $0,%rax + leaq (%rbx,%r9,1),%rbx + leaq (%rdi,%r9,1),%rdi + +.byte 102,72,15,110,200 + pxor %xmm0,%xmm0 + pshufd $0,%xmm1,%xmm1 + movq 40(%rsp),%rsi +.cfi_def_cfa %rsi,8 + jmp .Lsqr8x_cond_copy + +.align 32 +.Lsqr8x_cond_copy: + movdqa 0(%rbx),%xmm2 + movdqa 16(%rbx),%xmm3 + leaq 32(%rbx),%rbx + movdqu 0(%rdi),%xmm4 + movdqu 16(%rdi),%xmm5 + leaq 32(%rdi),%rdi + movdqa %xmm0,-32(%rbx) + movdqa %xmm0,-16(%rbx) + movdqa %xmm0,-32(%rbx,%rdx,1) + movdqa %xmm0,-16(%rbx,%rdx,1) + pcmpeqd %xmm1,%xmm0 + pand %xmm1,%xmm2 + pand %xmm1,%xmm3 + pand %xmm0,%xmm4 + pand %xmm0,%xmm5 + pxor %xmm0,%xmm0 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + movdqu %xmm4,-32(%rdi) + movdqu %xmm5,-16(%rdi) + addq $32,%r9 + jnz .Lsqr8x_cond_copy + + movq $1,%rax + movq -48(%rsi),%r15 +.cfi_restore %r15 + movq -40(%rsi),%r14 +.cfi_restore %r14 + movq -32(%rsi),%r13 +.cfi_restore %r13 + movq -24(%rsi),%r12 +.cfi_restore %r12 + movq -16(%rsi),%rbp +.cfi_restore %rbp + movq -8(%rsi),%rbx +.cfi_restore %rbx + leaq (%rsi),%rsp +.cfi_def_cfa_register %rsp +.Lsqr8x_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size bn_sqr8x_mont,.-bn_sqr8x_mont +.type bn_mulx4x_mont,@function +.align 32 +bn_mulx4x_mont: +.cfi_startproc + movq %rsp,%rax +.cfi_def_cfa_register %rax +.Lmulx4x_enter: + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_offset %r15,-56 +.Lmulx4x_prologue: + + shll $3,%r9d + xorq %r10,%r10 + subq %r9,%r10 + movq (%r8),%r8 + leaq -72(%rsp,%r10,1),%rbp + andq $-128,%rbp + movq %rsp,%r11 + subq %rbp,%r11 + andq $-4096,%r11 + leaq (%r11,%rbp,1),%rsp + movq (%rsp),%r10 + cmpq %rbp,%rsp + ja .Lmulx4x_page_walk + jmp .Lmulx4x_page_walk_done + +.align 16 +.Lmulx4x_page_walk: + leaq -4096(%rsp),%rsp + movq (%rsp),%r10 + cmpq %rbp,%rsp + ja .Lmulx4x_page_walk +.Lmulx4x_page_walk_done: + + leaq (%rdx,%r9,1),%r10 + + + + + + + + + + + + + movq %r9,0(%rsp) + shrq $5,%r9 + movq %r10,16(%rsp) + subq $1,%r9 + movq %r8,24(%rsp) + movq %rdi,32(%rsp) + movq %rax,40(%rsp) +.cfi_escape 0x0f,0x05,0x77,0x28,0x06,0x23,0x08 + movq %r9,48(%rsp) + jmp .Lmulx4x_body + +.align 32 +.Lmulx4x_body: + leaq 8(%rdx),%rdi + movq (%rdx),%rdx + leaq 64+32(%rsp),%rbx + movq %rdx,%r9 + + mulxq 0(%rsi),%r8,%rax + mulxq 8(%rsi),%r11,%r14 + addq %rax,%r11 + movq %rdi,8(%rsp) + mulxq 16(%rsi),%r12,%r13 + adcq %r14,%r12 + adcq $0,%r13 + + movq %r8,%rdi + imulq 24(%rsp),%r8 + xorq %rbp,%rbp + + mulxq 24(%rsi),%rax,%r14 + movq %r8,%rdx + leaq 32(%rsi),%rsi + adcxq %rax,%r13 + adcxq %rbp,%r14 + + mulxq 0(%rcx),%rax,%r10 + adcxq %rax,%rdi + adoxq %r11,%r10 + mulxq 8(%rcx),%rax,%r11 + adcxq %rax,%r10 + adoxq %r12,%r11 +.byte 0xc4,0x62,0xfb,0xf6,0xa1,0x10,0x00,0x00,0x00 + movq 48(%rsp),%rdi + movq %r10,-32(%rbx) + adcxq %rax,%r11 + adoxq %r13,%r12 + mulxq 24(%rcx),%rax,%r15 + movq %r9,%rdx + movq %r11,-24(%rbx) + adcxq %rax,%r12 + adoxq %rbp,%r15 + leaq 32(%rcx),%rcx + movq %r12,-16(%rbx) + + jmp .Lmulx4x_1st + +.align 32 +.Lmulx4x_1st: + adcxq %rbp,%r15 + mulxq 0(%rsi),%r10,%rax + adcxq %r14,%r10 + mulxq 8(%rsi),%r11,%r14 + adcxq %rax,%r11 + mulxq 16(%rsi),%r12,%rax + adcxq %r14,%r12 + mulxq 24(%rsi),%r13,%r14 +.byte 0x67,0x67 + movq %r8,%rdx + adcxq %rax,%r13 + adcxq %rbp,%r14 + leaq 32(%rsi),%rsi + leaq 32(%rbx),%rbx + + adoxq %r15,%r10 + mulxq 0(%rcx),%rax,%r15 + adcxq %rax,%r10 + adoxq %r15,%r11 + mulxq 8(%rcx),%rax,%r15 + adcxq %rax,%r11 + adoxq %r15,%r12 + mulxq 16(%rcx),%rax,%r15 + movq %r10,-40(%rbx) + adcxq %rax,%r12 + movq %r11,-32(%rbx) + adoxq %r15,%r13 + mulxq 24(%rcx),%rax,%r15 + movq %r9,%rdx + movq %r12,-24(%rbx) + adcxq %rax,%r13 + adoxq %rbp,%r15 + leaq 32(%rcx),%rcx + movq %r13,-16(%rbx) + + decq %rdi + jnz .Lmulx4x_1st + + movq 0(%rsp),%rax + movq 8(%rsp),%rdi + adcq %rbp,%r15 + addq %r15,%r14 + sbbq %r15,%r15 + movq %r14,-8(%rbx) + jmp .Lmulx4x_outer + +.align 32 +.Lmulx4x_outer: + movq (%rdi),%rdx + leaq 8(%rdi),%rdi + subq %rax,%rsi + movq %r15,(%rbx) + leaq 64+32(%rsp),%rbx + subq %rax,%rcx + + mulxq 0(%rsi),%r8,%r11 + xorl %ebp,%ebp + movq %rdx,%r9 + mulxq 8(%rsi),%r14,%r12 + adoxq -32(%rbx),%r8 + adcxq %r14,%r11 + mulxq 16(%rsi),%r15,%r13 + adoxq -24(%rbx),%r11 + adcxq %r15,%r12 + adoxq -16(%rbx),%r12 + adcxq %rbp,%r13 + adoxq %rbp,%r13 + + movq %rdi,8(%rsp) + movq %r8,%r15 + imulq 24(%rsp),%r8 + xorl %ebp,%ebp + + mulxq 24(%rsi),%rax,%r14 + movq %r8,%rdx + adcxq %rax,%r13 + adoxq -8(%rbx),%r13 + adcxq %rbp,%r14 + leaq 32(%rsi),%rsi + adoxq %rbp,%r14 + + mulxq 0(%rcx),%rax,%r10 + adcxq %rax,%r15 + adoxq %r11,%r10 + mulxq 8(%rcx),%rax,%r11 + adcxq %rax,%r10 + adoxq %r12,%r11 + mulxq 16(%rcx),%rax,%r12 + movq %r10,-32(%rbx) + adcxq %rax,%r11 + adoxq %r13,%r12 + mulxq 24(%rcx),%rax,%r15 + movq %r9,%rdx + movq %r11,-24(%rbx) + leaq 32(%rcx),%rcx + adcxq %rax,%r12 + adoxq %rbp,%r15 + movq 48(%rsp),%rdi + movq %r12,-16(%rbx) + + jmp .Lmulx4x_inner + +.align 32 +.Lmulx4x_inner: + mulxq 0(%rsi),%r10,%rax + adcxq %rbp,%r15 + adoxq %r14,%r10 + mulxq 8(%rsi),%r11,%r14 + adcxq 0(%rbx),%r10 + adoxq %rax,%r11 + mulxq 16(%rsi),%r12,%rax + adcxq 8(%rbx),%r11 + adoxq %r14,%r12 + mulxq 24(%rsi),%r13,%r14 + movq %r8,%rdx + adcxq 16(%rbx),%r12 + adoxq %rax,%r13 + adcxq 24(%rbx),%r13 + adoxq %rbp,%r14 + leaq 32(%rsi),%rsi + leaq 32(%rbx),%rbx + adcxq %rbp,%r14 + + adoxq %r15,%r10 + mulxq 0(%rcx),%rax,%r15 + adcxq %rax,%r10 + adoxq %r15,%r11 + mulxq 8(%rcx),%rax,%r15 + adcxq %rax,%r11 + adoxq %r15,%r12 + mulxq 16(%rcx),%rax,%r15 + movq %r10,-40(%rbx) + adcxq %rax,%r12 + adoxq %r15,%r13 + mulxq 24(%rcx),%rax,%r15 + movq %r9,%rdx + movq %r11,-32(%rbx) + movq %r12,-24(%rbx) + adcxq %rax,%r13 + adoxq %rbp,%r15 + leaq 32(%rcx),%rcx + movq %r13,-16(%rbx) + + decq %rdi + jnz .Lmulx4x_inner + + movq 0(%rsp),%rax + movq 8(%rsp),%rdi + adcq %rbp,%r15 + subq 0(%rbx),%rbp + adcq %r15,%r14 + sbbq %r15,%r15 + movq %r14,-8(%rbx) + + cmpq 16(%rsp),%rdi + jne .Lmulx4x_outer + + leaq 64(%rsp),%rbx + subq %rax,%rcx + negq %r15 + movq %rax,%rdx + shrq $3+2,%rax + movq 32(%rsp),%rdi + jmp .Lmulx4x_sub + +.align 32 +.Lmulx4x_sub: + movq 0(%rbx),%r11 + movq 8(%rbx),%r12 + movq 16(%rbx),%r13 + movq 24(%rbx),%r14 + leaq 32(%rbx),%rbx + sbbq 0(%rcx),%r11 + sbbq 8(%rcx),%r12 + sbbq 16(%rcx),%r13 + sbbq 24(%rcx),%r14 + leaq 32(%rcx),%rcx + movq %r11,0(%rdi) + movq %r12,8(%rdi) + movq %r13,16(%rdi) + movq %r14,24(%rdi) + leaq 32(%rdi),%rdi + decq %rax + jnz .Lmulx4x_sub + + sbbq $0,%r15 + leaq 64(%rsp),%rbx + subq %rdx,%rdi + +.byte 102,73,15,110,207 + pxor %xmm0,%xmm0 + pshufd $0,%xmm1,%xmm1 + movq 40(%rsp),%rsi +.cfi_def_cfa %rsi,8 + jmp .Lmulx4x_cond_copy + +.align 32 +.Lmulx4x_cond_copy: + movdqa 0(%rbx),%xmm2 + movdqa 16(%rbx),%xmm3 + leaq 32(%rbx),%rbx + movdqu 0(%rdi),%xmm4 + movdqu 16(%rdi),%xmm5 + leaq 32(%rdi),%rdi + movdqa %xmm0,-32(%rbx) + movdqa %xmm0,-16(%rbx) + pcmpeqd %xmm1,%xmm0 + pand %xmm1,%xmm2 + pand %xmm1,%xmm3 + pand %xmm0,%xmm4 + pand %xmm0,%xmm5 + pxor %xmm0,%xmm0 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + movdqu %xmm4,-32(%rdi) + movdqu %xmm5,-16(%rdi) + subq $32,%rdx + jnz .Lmulx4x_cond_copy + + movq %rdx,(%rbx) + + movq $1,%rax + movq -48(%rsi),%r15 +.cfi_restore %r15 + movq -40(%rsi),%r14 +.cfi_restore %r14 + movq -32(%rsi),%r13 +.cfi_restore %r13 + movq -24(%rsi),%r12 +.cfi_restore %r12 + movq -16(%rsi),%rbp +.cfi_restore %rbp + movq -8(%rsi),%rbx +.cfi_restore %rbx + leaq (%rsi),%rsp +.cfi_def_cfa_register %rsp +.Lmulx4x_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size bn_mulx4x_mont,.-bn_mulx4x_mont +.byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 16 diff --git a/vere/ext/openssl/gen/linux-x86_64/crypto/bn/x86_64-mont5.s b/vere/ext/openssl/gen/linux-x86_64/crypto/bn/x86_64-mont5.s new file mode 100644 index 0000000..3a3b874 --- /dev/null +++ b/vere/ext/openssl/gen/linux-x86_64/crypto/bn/x86_64-mont5.s @@ -0,0 +1,3603 @@ +.text + + + +.globl bn_mul_mont_gather5 +.type bn_mul_mont_gather5,@function +.align 64 +bn_mul_mont_gather5: +.cfi_startproc + movl %r9d,%r9d + movq %rsp,%rax +.cfi_def_cfa_register %rax + testl $7,%r9d + jnz .Lmul_enter + movl OPENSSL_ia32cap_P+8(%rip),%r11d + jmp .Lmul4x_enter + +.align 16 +.Lmul_enter: + movd 8(%rsp),%xmm5 + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_offset %r15,-56 + + negq %r9 + movq %rsp,%r11 + leaq -280(%rsp,%r9,8),%r10 + negq %r9 + andq $-1024,%r10 + + + + + + + + + + subq %r10,%r11 + andq $-4096,%r11 + leaq (%r10,%r11,1),%rsp + movq (%rsp),%r11 + cmpq %r10,%rsp + ja .Lmul_page_walk + jmp .Lmul_page_walk_done + +.Lmul_page_walk: + leaq -4096(%rsp),%rsp + movq (%rsp),%r11 + cmpq %r10,%rsp + ja .Lmul_page_walk +.Lmul_page_walk_done: + + leaq .Linc(%rip),%r10 + movq %rax,8(%rsp,%r9,8) +.cfi_escape 0x0f,0x0a,0x77,0x08,0x79,0x00,0x38,0x1e,0x22,0x06,0x23,0x08 +.Lmul_body: + + leaq 128(%rdx),%r12 + movdqa 0(%r10),%xmm0 + movdqa 16(%r10),%xmm1 + leaq 24-112(%rsp,%r9,8),%r10 + andq $-16,%r10 + + pshufd $0,%xmm5,%xmm5 + movdqa %xmm1,%xmm4 + movdqa %xmm1,%xmm2 + paddd %xmm0,%xmm1 + pcmpeqd %xmm5,%xmm0 +.byte 0x67 + movdqa %xmm4,%xmm3 + paddd %xmm1,%xmm2 + pcmpeqd %xmm5,%xmm1 + movdqa %xmm0,112(%r10) + movdqa %xmm4,%xmm0 + + paddd %xmm2,%xmm3 + pcmpeqd %xmm5,%xmm2 + movdqa %xmm1,128(%r10) + movdqa %xmm4,%xmm1 + + paddd %xmm3,%xmm0 + pcmpeqd %xmm5,%xmm3 + movdqa %xmm2,144(%r10) + movdqa %xmm4,%xmm2 + + paddd %xmm0,%xmm1 + pcmpeqd %xmm5,%xmm0 + movdqa %xmm3,160(%r10) + movdqa %xmm4,%xmm3 + paddd %xmm1,%xmm2 + pcmpeqd %xmm5,%xmm1 + movdqa %xmm0,176(%r10) + movdqa %xmm4,%xmm0 + + paddd %xmm2,%xmm3 + pcmpeqd %xmm5,%xmm2 + movdqa %xmm1,192(%r10) + movdqa %xmm4,%xmm1 + + paddd %xmm3,%xmm0 + pcmpeqd %xmm5,%xmm3 + movdqa %xmm2,208(%r10) + movdqa %xmm4,%xmm2 + + paddd %xmm0,%xmm1 + pcmpeqd %xmm5,%xmm0 + movdqa %xmm3,224(%r10) + movdqa %xmm4,%xmm3 + paddd %xmm1,%xmm2 + pcmpeqd %xmm5,%xmm1 + movdqa %xmm0,240(%r10) + movdqa %xmm4,%xmm0 + + paddd %xmm2,%xmm3 + pcmpeqd %xmm5,%xmm2 + movdqa %xmm1,256(%r10) + movdqa %xmm4,%xmm1 + + paddd %xmm3,%xmm0 + pcmpeqd %xmm5,%xmm3 + movdqa %xmm2,272(%r10) + movdqa %xmm4,%xmm2 + + paddd %xmm0,%xmm1 + pcmpeqd %xmm5,%xmm0 + movdqa %xmm3,288(%r10) + movdqa %xmm4,%xmm3 + paddd %xmm1,%xmm2 + pcmpeqd %xmm5,%xmm1 + movdqa %xmm0,304(%r10) + + paddd %xmm2,%xmm3 +.byte 0x67 + pcmpeqd %xmm5,%xmm2 + movdqa %xmm1,320(%r10) + + pcmpeqd %xmm5,%xmm3 + movdqa %xmm2,336(%r10) + pand 64(%r12),%xmm0 + + pand 80(%r12),%xmm1 + pand 96(%r12),%xmm2 + movdqa %xmm3,352(%r10) + pand 112(%r12),%xmm3 + por %xmm2,%xmm0 + por %xmm3,%xmm1 + movdqa -128(%r12),%xmm4 + movdqa -112(%r12),%xmm5 + movdqa -96(%r12),%xmm2 + pand 112(%r10),%xmm4 + movdqa -80(%r12),%xmm3 + pand 128(%r10),%xmm5 + por %xmm4,%xmm0 + pand 144(%r10),%xmm2 + por %xmm5,%xmm1 + pand 160(%r10),%xmm3 + por %xmm2,%xmm0 + por %xmm3,%xmm1 + movdqa -64(%r12),%xmm4 + movdqa -48(%r12),%xmm5 + movdqa -32(%r12),%xmm2 + pand 176(%r10),%xmm4 + movdqa -16(%r12),%xmm3 + pand 192(%r10),%xmm5 + por %xmm4,%xmm0 + pand 208(%r10),%xmm2 + por %xmm5,%xmm1 + pand 224(%r10),%xmm3 + por %xmm2,%xmm0 + por %xmm3,%xmm1 + movdqa 0(%r12),%xmm4 + movdqa 16(%r12),%xmm5 + movdqa 32(%r12),%xmm2 + pand 240(%r10),%xmm4 + movdqa 48(%r12),%xmm3 + pand 256(%r10),%xmm5 + por %xmm4,%xmm0 + pand 272(%r10),%xmm2 + por %xmm5,%xmm1 + pand 288(%r10),%xmm3 + por %xmm2,%xmm0 + por %xmm3,%xmm1 + por %xmm1,%xmm0 + pshufd $0x4e,%xmm0,%xmm1 + por %xmm1,%xmm0 + leaq 256(%r12),%r12 +.byte 102,72,15,126,195 + + movq (%r8),%r8 + movq (%rsi),%rax + + xorq %r14,%r14 + xorq %r15,%r15 + + movq %r8,%rbp + mulq %rbx + movq %rax,%r10 + movq (%rcx),%rax + + imulq %r10,%rbp + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r10 + movq 8(%rsi),%rax + adcq $0,%rdx + movq %rdx,%r13 + + leaq 1(%r15),%r15 + jmp .L1st_enter + +.align 16 +.L1st: + addq %rax,%r13 + movq (%rsi,%r15,8),%rax + adcq $0,%rdx + addq %r11,%r13 + movq %r10,%r11 + adcq $0,%rdx + movq %r13,-16(%rsp,%r15,8) + movq %rdx,%r13 + +.L1st_enter: + mulq %rbx + addq %rax,%r11 + movq (%rcx,%r15,8),%rax + adcq $0,%rdx + leaq 1(%r15),%r15 + movq %rdx,%r10 + + mulq %rbp + cmpq %r9,%r15 + jne .L1st + + + addq %rax,%r13 + adcq $0,%rdx + addq %r11,%r13 + adcq $0,%rdx + movq %r13,-16(%rsp,%r9,8) + movq %rdx,%r13 + movq %r10,%r11 + + xorq %rdx,%rdx + addq %r11,%r13 + adcq $0,%rdx + movq %r13,-8(%rsp,%r9,8) + movq %rdx,(%rsp,%r9,8) + + leaq 1(%r14),%r14 + jmp .Louter +.align 16 +.Louter: + leaq 24+128(%rsp,%r9,8),%rdx + andq $-16,%rdx + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + movdqa -128(%r12),%xmm0 + movdqa -112(%r12),%xmm1 + movdqa -96(%r12),%xmm2 + movdqa -80(%r12),%xmm3 + pand -128(%rdx),%xmm0 + pand -112(%rdx),%xmm1 + por %xmm0,%xmm4 + pand -96(%rdx),%xmm2 + por %xmm1,%xmm5 + pand -80(%rdx),%xmm3 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + movdqa -64(%r12),%xmm0 + movdqa -48(%r12),%xmm1 + movdqa -32(%r12),%xmm2 + movdqa -16(%r12),%xmm3 + pand -64(%rdx),%xmm0 + pand -48(%rdx),%xmm1 + por %xmm0,%xmm4 + pand -32(%rdx),%xmm2 + por %xmm1,%xmm5 + pand -16(%rdx),%xmm3 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + movdqa 0(%r12),%xmm0 + movdqa 16(%r12),%xmm1 + movdqa 32(%r12),%xmm2 + movdqa 48(%r12),%xmm3 + pand 0(%rdx),%xmm0 + pand 16(%rdx),%xmm1 + por %xmm0,%xmm4 + pand 32(%rdx),%xmm2 + por %xmm1,%xmm5 + pand 48(%rdx),%xmm3 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + movdqa 64(%r12),%xmm0 + movdqa 80(%r12),%xmm1 + movdqa 96(%r12),%xmm2 + movdqa 112(%r12),%xmm3 + pand 64(%rdx),%xmm0 + pand 80(%rdx),%xmm1 + por %xmm0,%xmm4 + pand 96(%rdx),%xmm2 + por %xmm1,%xmm5 + pand 112(%rdx),%xmm3 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + por %xmm5,%xmm4 + pshufd $0x4e,%xmm4,%xmm0 + por %xmm4,%xmm0 + leaq 256(%r12),%r12 + + movq (%rsi),%rax +.byte 102,72,15,126,195 + + xorq %r15,%r15 + movq %r8,%rbp + movq (%rsp),%r10 + + mulq %rbx + addq %rax,%r10 + movq (%rcx),%rax + adcq $0,%rdx + + imulq %r10,%rbp + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r10 + movq 8(%rsi),%rax + adcq $0,%rdx + movq 8(%rsp),%r10 + movq %rdx,%r13 + + leaq 1(%r15),%r15 + jmp .Linner_enter + +.align 16 +.Linner: + addq %rax,%r13 + movq (%rsi,%r15,8),%rax + adcq $0,%rdx + addq %r10,%r13 + movq (%rsp,%r15,8),%r10 + adcq $0,%rdx + movq %r13,-16(%rsp,%r15,8) + movq %rdx,%r13 + +.Linner_enter: + mulq %rbx + addq %rax,%r11 + movq (%rcx,%r15,8),%rax + adcq $0,%rdx + addq %r11,%r10 + movq %rdx,%r11 + adcq $0,%r11 + leaq 1(%r15),%r15 + + mulq %rbp + cmpq %r9,%r15 + jne .Linner + + addq %rax,%r13 + adcq $0,%rdx + addq %r10,%r13 + movq (%rsp,%r9,8),%r10 + adcq $0,%rdx + movq %r13,-16(%rsp,%r9,8) + movq %rdx,%r13 + + xorq %rdx,%rdx + addq %r11,%r13 + adcq $0,%rdx + addq %r10,%r13 + adcq $0,%rdx + movq %r13,-8(%rsp,%r9,8) + movq %rdx,(%rsp,%r9,8) + + leaq 1(%r14),%r14 + cmpq %r9,%r14 + jb .Louter + + xorq %r14,%r14 + movq (%rsp),%rax + leaq (%rsp),%rsi + movq %r9,%r15 + jmp .Lsub +.align 16 +.Lsub: sbbq (%rcx,%r14,8),%rax + movq %rax,(%rdi,%r14,8) + movq 8(%rsi,%r14,8),%rax + leaq 1(%r14),%r14 + decq %r15 + jnz .Lsub + + sbbq $0,%rax + movq $-1,%rbx + xorq %rax,%rbx + xorq %r14,%r14 + movq %r9,%r15 + +.Lcopy: + movq (%rdi,%r14,8),%rcx + movq (%rsp,%r14,8),%rdx + andq %rbx,%rcx + andq %rax,%rdx + movq %r14,(%rsp,%r14,8) + orq %rcx,%rdx + movq %rdx,(%rdi,%r14,8) + leaq 1(%r14),%r14 + subq $1,%r15 + jnz .Lcopy + + movq 8(%rsp,%r9,8),%rsi +.cfi_def_cfa %rsi,8 + movq $1,%rax + + movq -48(%rsi),%r15 +.cfi_restore %r15 + movq -40(%rsi),%r14 +.cfi_restore %r14 + movq -32(%rsi),%r13 +.cfi_restore %r13 + movq -24(%rsi),%r12 +.cfi_restore %r12 + movq -16(%rsi),%rbp +.cfi_restore %rbp + movq -8(%rsi),%rbx +.cfi_restore %rbx + leaq (%rsi),%rsp +.cfi_def_cfa_register %rsp +.Lmul_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size bn_mul_mont_gather5,.-bn_mul_mont_gather5 +.type bn_mul4x_mont_gather5,@function +.align 32 +bn_mul4x_mont_gather5: +.cfi_startproc +.byte 0x67 + movq %rsp,%rax +.cfi_def_cfa_register %rax +.Lmul4x_enter: + andl $0x80108,%r11d + cmpl $0x80108,%r11d + je .Lmulx4x_enter + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_offset %r15,-56 +.Lmul4x_prologue: + +.byte 0x67 + shll $3,%r9d + leaq (%r9,%r9,2),%r10 + negq %r9 + + + + + + + + + + + leaq -320(%rsp,%r9,2),%r11 + movq %rsp,%rbp + subq %rdi,%r11 + andq $4095,%r11 + cmpq %r11,%r10 + jb .Lmul4xsp_alt + subq %r11,%rbp + leaq -320(%rbp,%r9,2),%rbp + jmp .Lmul4xsp_done + +.align 32 +.Lmul4xsp_alt: + leaq 4096-320(,%r9,2),%r10 + leaq -320(%rbp,%r9,2),%rbp + subq %r10,%r11 + movq $0,%r10 + cmovcq %r10,%r11 + subq %r11,%rbp +.Lmul4xsp_done: + andq $-64,%rbp + movq %rsp,%r11 + subq %rbp,%r11 + andq $-4096,%r11 + leaq (%r11,%rbp,1),%rsp + movq (%rsp),%r10 + cmpq %rbp,%rsp + ja .Lmul4x_page_walk + jmp .Lmul4x_page_walk_done + +.Lmul4x_page_walk: + leaq -4096(%rsp),%rsp + movq (%rsp),%r10 + cmpq %rbp,%rsp + ja .Lmul4x_page_walk +.Lmul4x_page_walk_done: + + negq %r9 + + movq %rax,40(%rsp) +.cfi_escape 0x0f,0x05,0x77,0x28,0x06,0x23,0x08 +.Lmul4x_body: + + call mul4x_internal + + movq 40(%rsp),%rsi +.cfi_def_cfa %rsi,8 + movq $1,%rax + + movq -48(%rsi),%r15 +.cfi_restore %r15 + movq -40(%rsi),%r14 +.cfi_restore %r14 + movq -32(%rsi),%r13 +.cfi_restore %r13 + movq -24(%rsi),%r12 +.cfi_restore %r12 + movq -16(%rsi),%rbp +.cfi_restore %rbp + movq -8(%rsi),%rbx +.cfi_restore %rbx + leaq (%rsi),%rsp +.cfi_def_cfa_register %rsp +.Lmul4x_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size bn_mul4x_mont_gather5,.-bn_mul4x_mont_gather5 + +.type mul4x_internal,@function +.align 32 +mul4x_internal: +.cfi_startproc + shlq $5,%r9 + movd 8(%rax),%xmm5 + leaq .Linc(%rip),%rax + leaq 128(%rdx,%r9,1),%r13 + shrq $5,%r9 + movdqa 0(%rax),%xmm0 + movdqa 16(%rax),%xmm1 + leaq 88-112(%rsp,%r9,1),%r10 + leaq 128(%rdx),%r12 + + pshufd $0,%xmm5,%xmm5 + movdqa %xmm1,%xmm4 +.byte 0x67,0x67 + movdqa %xmm1,%xmm2 + paddd %xmm0,%xmm1 + pcmpeqd %xmm5,%xmm0 +.byte 0x67 + movdqa %xmm4,%xmm3 + paddd %xmm1,%xmm2 + pcmpeqd %xmm5,%xmm1 + movdqa %xmm0,112(%r10) + movdqa %xmm4,%xmm0 + + paddd %xmm2,%xmm3 + pcmpeqd %xmm5,%xmm2 + movdqa %xmm1,128(%r10) + movdqa %xmm4,%xmm1 + + paddd %xmm3,%xmm0 + pcmpeqd %xmm5,%xmm3 + movdqa %xmm2,144(%r10) + movdqa %xmm4,%xmm2 + + paddd %xmm0,%xmm1 + pcmpeqd %xmm5,%xmm0 + movdqa %xmm3,160(%r10) + movdqa %xmm4,%xmm3 + paddd %xmm1,%xmm2 + pcmpeqd %xmm5,%xmm1 + movdqa %xmm0,176(%r10) + movdqa %xmm4,%xmm0 + + paddd %xmm2,%xmm3 + pcmpeqd %xmm5,%xmm2 + movdqa %xmm1,192(%r10) + movdqa %xmm4,%xmm1 + + paddd %xmm3,%xmm0 + pcmpeqd %xmm5,%xmm3 + movdqa %xmm2,208(%r10) + movdqa %xmm4,%xmm2 + + paddd %xmm0,%xmm1 + pcmpeqd %xmm5,%xmm0 + movdqa %xmm3,224(%r10) + movdqa %xmm4,%xmm3 + paddd %xmm1,%xmm2 + pcmpeqd %xmm5,%xmm1 + movdqa %xmm0,240(%r10) + movdqa %xmm4,%xmm0 + + paddd %xmm2,%xmm3 + pcmpeqd %xmm5,%xmm2 + movdqa %xmm1,256(%r10) + movdqa %xmm4,%xmm1 + + paddd %xmm3,%xmm0 + pcmpeqd %xmm5,%xmm3 + movdqa %xmm2,272(%r10) + movdqa %xmm4,%xmm2 + + paddd %xmm0,%xmm1 + pcmpeqd %xmm5,%xmm0 + movdqa %xmm3,288(%r10) + movdqa %xmm4,%xmm3 + paddd %xmm1,%xmm2 + pcmpeqd %xmm5,%xmm1 + movdqa %xmm0,304(%r10) + + paddd %xmm2,%xmm3 +.byte 0x67 + pcmpeqd %xmm5,%xmm2 + movdqa %xmm1,320(%r10) + + pcmpeqd %xmm5,%xmm3 + movdqa %xmm2,336(%r10) + pand 64(%r12),%xmm0 + + pand 80(%r12),%xmm1 + pand 96(%r12),%xmm2 + movdqa %xmm3,352(%r10) + pand 112(%r12),%xmm3 + por %xmm2,%xmm0 + por %xmm3,%xmm1 + movdqa -128(%r12),%xmm4 + movdqa -112(%r12),%xmm5 + movdqa -96(%r12),%xmm2 + pand 112(%r10),%xmm4 + movdqa -80(%r12),%xmm3 + pand 128(%r10),%xmm5 + por %xmm4,%xmm0 + pand 144(%r10),%xmm2 + por %xmm5,%xmm1 + pand 160(%r10),%xmm3 + por %xmm2,%xmm0 + por %xmm3,%xmm1 + movdqa -64(%r12),%xmm4 + movdqa -48(%r12),%xmm5 + movdqa -32(%r12),%xmm2 + pand 176(%r10),%xmm4 + movdqa -16(%r12),%xmm3 + pand 192(%r10),%xmm5 + por %xmm4,%xmm0 + pand 208(%r10),%xmm2 + por %xmm5,%xmm1 + pand 224(%r10),%xmm3 + por %xmm2,%xmm0 + por %xmm3,%xmm1 + movdqa 0(%r12),%xmm4 + movdqa 16(%r12),%xmm5 + movdqa 32(%r12),%xmm2 + pand 240(%r10),%xmm4 + movdqa 48(%r12),%xmm3 + pand 256(%r10),%xmm5 + por %xmm4,%xmm0 + pand 272(%r10),%xmm2 + por %xmm5,%xmm1 + pand 288(%r10),%xmm3 + por %xmm2,%xmm0 + por %xmm3,%xmm1 + por %xmm1,%xmm0 + pshufd $0x4e,%xmm0,%xmm1 + por %xmm1,%xmm0 + leaq 256(%r12),%r12 +.byte 102,72,15,126,195 + + movq %r13,16+8(%rsp) + movq %rdi,56+8(%rsp) + + movq (%r8),%r8 + movq (%rsi),%rax + leaq (%rsi,%r9,1),%rsi + negq %r9 + + movq %r8,%rbp + mulq %rbx + movq %rax,%r10 + movq (%rcx),%rax + + imulq %r10,%rbp + leaq 64+8(%rsp),%r14 + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r10 + movq 8(%rsi,%r9,1),%rax + adcq $0,%rdx + movq %rdx,%rdi + + mulq %rbx + addq %rax,%r11 + movq 8(%rcx),%rax + adcq $0,%rdx + movq %rdx,%r10 + + mulq %rbp + addq %rax,%rdi + movq 16(%rsi,%r9,1),%rax + adcq $0,%rdx + addq %r11,%rdi + leaq 32(%r9),%r15 + leaq 32(%rcx),%rcx + adcq $0,%rdx + movq %rdi,(%r14) + movq %rdx,%r13 + jmp .L1st4x + +.align 32 +.L1st4x: + mulq %rbx + addq %rax,%r10 + movq -16(%rcx),%rax + leaq 32(%r14),%r14 + adcq $0,%rdx + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r13 + movq -8(%rsi,%r15,1),%rax + adcq $0,%rdx + addq %r10,%r13 + adcq $0,%rdx + movq %r13,-24(%r14) + movq %rdx,%rdi + + mulq %rbx + addq %rax,%r11 + movq -8(%rcx),%rax + adcq $0,%rdx + movq %rdx,%r10 + + mulq %rbp + addq %rax,%rdi + movq (%rsi,%r15,1),%rax + adcq $0,%rdx + addq %r11,%rdi + adcq $0,%rdx + movq %rdi,-16(%r14) + movq %rdx,%r13 + + mulq %rbx + addq %rax,%r10 + movq 0(%rcx),%rax + adcq $0,%rdx + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r13 + movq 8(%rsi,%r15,1),%rax + adcq $0,%rdx + addq %r10,%r13 + adcq $0,%rdx + movq %r13,-8(%r14) + movq %rdx,%rdi + + mulq %rbx + addq %rax,%r11 + movq 8(%rcx),%rax + adcq $0,%rdx + movq %rdx,%r10 + + mulq %rbp + addq %rax,%rdi + movq 16(%rsi,%r15,1),%rax + adcq $0,%rdx + addq %r11,%rdi + leaq 32(%rcx),%rcx + adcq $0,%rdx + movq %rdi,(%r14) + movq %rdx,%r13 + + addq $32,%r15 + jnz .L1st4x + + mulq %rbx + addq %rax,%r10 + movq -16(%rcx),%rax + leaq 32(%r14),%r14 + adcq $0,%rdx + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r13 + movq -8(%rsi),%rax + adcq $0,%rdx + addq %r10,%r13 + adcq $0,%rdx + movq %r13,-24(%r14) + movq %rdx,%rdi + + mulq %rbx + addq %rax,%r11 + movq -8(%rcx),%rax + adcq $0,%rdx + movq %rdx,%r10 + + mulq %rbp + addq %rax,%rdi + movq (%rsi,%r9,1),%rax + adcq $0,%rdx + addq %r11,%rdi + adcq $0,%rdx + movq %rdi,-16(%r14) + movq %rdx,%r13 + + leaq (%rcx,%r9,1),%rcx + + xorq %rdi,%rdi + addq %r10,%r13 + adcq $0,%rdi + movq %r13,-8(%r14) + + jmp .Louter4x + +.align 32 +.Louter4x: + leaq 16+128(%r14),%rdx + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + movdqa -128(%r12),%xmm0 + movdqa -112(%r12),%xmm1 + movdqa -96(%r12),%xmm2 + movdqa -80(%r12),%xmm3 + pand -128(%rdx),%xmm0 + pand -112(%rdx),%xmm1 + por %xmm0,%xmm4 + pand -96(%rdx),%xmm2 + por %xmm1,%xmm5 + pand -80(%rdx),%xmm3 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + movdqa -64(%r12),%xmm0 + movdqa -48(%r12),%xmm1 + movdqa -32(%r12),%xmm2 + movdqa -16(%r12),%xmm3 + pand -64(%rdx),%xmm0 + pand -48(%rdx),%xmm1 + por %xmm0,%xmm4 + pand -32(%rdx),%xmm2 + por %xmm1,%xmm5 + pand -16(%rdx),%xmm3 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + movdqa 0(%r12),%xmm0 + movdqa 16(%r12),%xmm1 + movdqa 32(%r12),%xmm2 + movdqa 48(%r12),%xmm3 + pand 0(%rdx),%xmm0 + pand 16(%rdx),%xmm1 + por %xmm0,%xmm4 + pand 32(%rdx),%xmm2 + por %xmm1,%xmm5 + pand 48(%rdx),%xmm3 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + movdqa 64(%r12),%xmm0 + movdqa 80(%r12),%xmm1 + movdqa 96(%r12),%xmm2 + movdqa 112(%r12),%xmm3 + pand 64(%rdx),%xmm0 + pand 80(%rdx),%xmm1 + por %xmm0,%xmm4 + pand 96(%rdx),%xmm2 + por %xmm1,%xmm5 + pand 112(%rdx),%xmm3 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + por %xmm5,%xmm4 + pshufd $0x4e,%xmm4,%xmm0 + por %xmm4,%xmm0 + leaq 256(%r12),%r12 +.byte 102,72,15,126,195 + + movq (%r14,%r9,1),%r10 + movq %r8,%rbp + mulq %rbx + addq %rax,%r10 + movq (%rcx),%rax + adcq $0,%rdx + + imulq %r10,%rbp + movq %rdx,%r11 + movq %rdi,(%r14) + + leaq (%r14,%r9,1),%r14 + + mulq %rbp + addq %rax,%r10 + movq 8(%rsi,%r9,1),%rax + adcq $0,%rdx + movq %rdx,%rdi + + mulq %rbx + addq %rax,%r11 + movq 8(%rcx),%rax + adcq $0,%rdx + addq 8(%r14),%r11 + adcq $0,%rdx + movq %rdx,%r10 + + mulq %rbp + addq %rax,%rdi + movq 16(%rsi,%r9,1),%rax + adcq $0,%rdx + addq %r11,%rdi + leaq 32(%r9),%r15 + leaq 32(%rcx),%rcx + adcq $0,%rdx + movq %rdx,%r13 + jmp .Linner4x + +.align 32 +.Linner4x: + mulq %rbx + addq %rax,%r10 + movq -16(%rcx),%rax + adcq $0,%rdx + addq 16(%r14),%r10 + leaq 32(%r14),%r14 + adcq $0,%rdx + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r13 + movq -8(%rsi,%r15,1),%rax + adcq $0,%rdx + addq %r10,%r13 + adcq $0,%rdx + movq %rdi,-32(%r14) + movq %rdx,%rdi + + mulq %rbx + addq %rax,%r11 + movq -8(%rcx),%rax + adcq $0,%rdx + addq -8(%r14),%r11 + adcq $0,%rdx + movq %rdx,%r10 + + mulq %rbp + addq %rax,%rdi + movq (%rsi,%r15,1),%rax + adcq $0,%rdx + addq %r11,%rdi + adcq $0,%rdx + movq %r13,-24(%r14) + movq %rdx,%r13 + + mulq %rbx + addq %rax,%r10 + movq 0(%rcx),%rax + adcq $0,%rdx + addq (%r14),%r10 + adcq $0,%rdx + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r13 + movq 8(%rsi,%r15,1),%rax + adcq $0,%rdx + addq %r10,%r13 + adcq $0,%rdx + movq %rdi,-16(%r14) + movq %rdx,%rdi + + mulq %rbx + addq %rax,%r11 + movq 8(%rcx),%rax + adcq $0,%rdx + addq 8(%r14),%r11 + adcq $0,%rdx + movq %rdx,%r10 + + mulq %rbp + addq %rax,%rdi + movq 16(%rsi,%r15,1),%rax + adcq $0,%rdx + addq %r11,%rdi + leaq 32(%rcx),%rcx + adcq $0,%rdx + movq %r13,-8(%r14) + movq %rdx,%r13 + + addq $32,%r15 + jnz .Linner4x + + mulq %rbx + addq %rax,%r10 + movq -16(%rcx),%rax + adcq $0,%rdx + addq 16(%r14),%r10 + leaq 32(%r14),%r14 + adcq $0,%rdx + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r13 + movq -8(%rsi),%rax + adcq $0,%rdx + addq %r10,%r13 + adcq $0,%rdx + movq %rdi,-32(%r14) + movq %rdx,%rdi + + mulq %rbx + addq %rax,%r11 + movq %rbp,%rax + movq -8(%rcx),%rbp + adcq $0,%rdx + addq -8(%r14),%r11 + adcq $0,%rdx + movq %rdx,%r10 + + mulq %rbp + addq %rax,%rdi + movq (%rsi,%r9,1),%rax + adcq $0,%rdx + addq %r11,%rdi + adcq $0,%rdx + movq %r13,-24(%r14) + movq %rdx,%r13 + + movq %rdi,-16(%r14) + leaq (%rcx,%r9,1),%rcx + + xorq %rdi,%rdi + addq %r10,%r13 + adcq $0,%rdi + addq (%r14),%r13 + adcq $0,%rdi + movq %r13,-8(%r14) + + cmpq 16+8(%rsp),%r12 + jb .Louter4x + xorq %rax,%rax + subq %r13,%rbp + adcq %r15,%r15 + orq %r15,%rdi + subq %rdi,%rax + leaq (%r14,%r9,1),%rbx + movq (%rcx),%r12 + leaq (%rcx),%rbp + movq %r9,%rcx + sarq $3+2,%rcx + movq 56+8(%rsp),%rdi + decq %r12 + xorq %r10,%r10 + movq 8(%rbp),%r13 + movq 16(%rbp),%r14 + movq 24(%rbp),%r15 + jmp .Lsqr4x_sub_entry +.cfi_endproc +.size mul4x_internal,.-mul4x_internal +.globl bn_power5 +.type bn_power5,@function +.align 32 +bn_power5: +.cfi_startproc + movq %rsp,%rax +.cfi_def_cfa_register %rax + movl OPENSSL_ia32cap_P+8(%rip),%r11d + andl $0x80108,%r11d + cmpl $0x80108,%r11d + je .Lpowerx5_enter + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_offset %r15,-56 +.Lpower5_prologue: + + shll $3,%r9d + leal (%r9,%r9,2),%r10d + negq %r9 + movq (%r8),%r8 + + + + + + + + + leaq -320(%rsp,%r9,2),%r11 + movq %rsp,%rbp + subq %rdi,%r11 + andq $4095,%r11 + cmpq %r11,%r10 + jb .Lpwr_sp_alt + subq %r11,%rbp + leaq -320(%rbp,%r9,2),%rbp + jmp .Lpwr_sp_done + +.align 32 +.Lpwr_sp_alt: + leaq 4096-320(,%r9,2),%r10 + leaq -320(%rbp,%r9,2),%rbp + subq %r10,%r11 + movq $0,%r10 + cmovcq %r10,%r11 + subq %r11,%rbp +.Lpwr_sp_done: + andq $-64,%rbp + movq %rsp,%r11 + subq %rbp,%r11 + andq $-4096,%r11 + leaq (%r11,%rbp,1),%rsp + movq (%rsp),%r10 + cmpq %rbp,%rsp + ja .Lpwr_page_walk + jmp .Lpwr_page_walk_done + +.Lpwr_page_walk: + leaq -4096(%rsp),%rsp + movq (%rsp),%r10 + cmpq %rbp,%rsp + ja .Lpwr_page_walk +.Lpwr_page_walk_done: + + movq %r9,%r10 + negq %r9 + + + + + + + + + + + movq %r8,32(%rsp) + movq %rax,40(%rsp) +.cfi_escape 0x0f,0x05,0x77,0x28,0x06,0x23,0x08 +.Lpower5_body: +.byte 102,72,15,110,207 +.byte 102,72,15,110,209 +.byte 102,73,15,110,218 +.byte 102,72,15,110,226 + + call __bn_sqr8x_internal + call __bn_post4x_internal + call __bn_sqr8x_internal + call __bn_post4x_internal + call __bn_sqr8x_internal + call __bn_post4x_internal + call __bn_sqr8x_internal + call __bn_post4x_internal + call __bn_sqr8x_internal + call __bn_post4x_internal + +.byte 102,72,15,126,209 +.byte 102,72,15,126,226 + movq %rsi,%rdi + movq 40(%rsp),%rax + leaq 32(%rsp),%r8 + + call mul4x_internal + + movq 40(%rsp),%rsi +.cfi_def_cfa %rsi,8 + movq $1,%rax + movq -48(%rsi),%r15 +.cfi_restore %r15 + movq -40(%rsi),%r14 +.cfi_restore %r14 + movq -32(%rsi),%r13 +.cfi_restore %r13 + movq -24(%rsi),%r12 +.cfi_restore %r12 + movq -16(%rsi),%rbp +.cfi_restore %rbp + movq -8(%rsi),%rbx +.cfi_restore %rbx + leaq (%rsi),%rsp +.cfi_def_cfa_register %rsp +.Lpower5_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size bn_power5,.-bn_power5 + +.globl bn_sqr8x_internal +.hidden bn_sqr8x_internal +.type bn_sqr8x_internal,@function +.align 32 +bn_sqr8x_internal: +__bn_sqr8x_internal: +.cfi_startproc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + leaq 32(%r10),%rbp + leaq (%rsi,%r9,1),%rsi + + movq %r9,%rcx + + + movq -32(%rsi,%rbp,1),%r14 + leaq 48+8(%rsp,%r9,2),%rdi + movq -24(%rsi,%rbp,1),%rax + leaq -32(%rdi,%rbp,1),%rdi + movq -16(%rsi,%rbp,1),%rbx + movq %rax,%r15 + + mulq %r14 + movq %rax,%r10 + movq %rbx,%rax + movq %rdx,%r11 + movq %r10,-24(%rdi,%rbp,1) + + mulq %r14 + addq %rax,%r11 + movq %rbx,%rax + adcq $0,%rdx + movq %r11,-16(%rdi,%rbp,1) + movq %rdx,%r10 + + + movq -8(%rsi,%rbp,1),%rbx + mulq %r15 + movq %rax,%r12 + movq %rbx,%rax + movq %rdx,%r13 + + leaq (%rbp),%rcx + mulq %r14 + addq %rax,%r10 + movq %rbx,%rax + movq %rdx,%r11 + adcq $0,%r11 + addq %r12,%r10 + adcq $0,%r11 + movq %r10,-8(%rdi,%rcx,1) + jmp .Lsqr4x_1st + +.align 32 +.Lsqr4x_1st: + movq (%rsi,%rcx,1),%rbx + mulq %r15 + addq %rax,%r13 + movq %rbx,%rax + movq %rdx,%r12 + adcq $0,%r12 + + mulq %r14 + addq %rax,%r11 + movq %rbx,%rax + movq 8(%rsi,%rcx,1),%rbx + movq %rdx,%r10 + adcq $0,%r10 + addq %r13,%r11 + adcq $0,%r10 + + + mulq %r15 + addq %rax,%r12 + movq %rbx,%rax + movq %r11,(%rdi,%rcx,1) + movq %rdx,%r13 + adcq $0,%r13 + + mulq %r14 + addq %rax,%r10 + movq %rbx,%rax + movq 16(%rsi,%rcx,1),%rbx + movq %rdx,%r11 + adcq $0,%r11 + addq %r12,%r10 + adcq $0,%r11 + + mulq %r15 + addq %rax,%r13 + movq %rbx,%rax + movq %r10,8(%rdi,%rcx,1) + movq %rdx,%r12 + adcq $0,%r12 + + mulq %r14 + addq %rax,%r11 + movq %rbx,%rax + movq 24(%rsi,%rcx,1),%rbx + movq %rdx,%r10 + adcq $0,%r10 + addq %r13,%r11 + adcq $0,%r10 + + + mulq %r15 + addq %rax,%r12 + movq %rbx,%rax + movq %r11,16(%rdi,%rcx,1) + movq %rdx,%r13 + adcq $0,%r13 + leaq 32(%rcx),%rcx + + mulq %r14 + addq %rax,%r10 + movq %rbx,%rax + movq %rdx,%r11 + adcq $0,%r11 + addq %r12,%r10 + adcq $0,%r11 + movq %r10,-8(%rdi,%rcx,1) + + cmpq $0,%rcx + jne .Lsqr4x_1st + + mulq %r15 + addq %rax,%r13 + leaq 16(%rbp),%rbp + adcq $0,%rdx + addq %r11,%r13 + adcq $0,%rdx + + movq %r13,(%rdi) + movq %rdx,%r12 + movq %rdx,8(%rdi) + jmp .Lsqr4x_outer + +.align 32 +.Lsqr4x_outer: + movq -32(%rsi,%rbp,1),%r14 + leaq 48+8(%rsp,%r9,2),%rdi + movq -24(%rsi,%rbp,1),%rax + leaq -32(%rdi,%rbp,1),%rdi + movq -16(%rsi,%rbp,1),%rbx + movq %rax,%r15 + + mulq %r14 + movq -24(%rdi,%rbp,1),%r10 + addq %rax,%r10 + movq %rbx,%rax + adcq $0,%rdx + movq %r10,-24(%rdi,%rbp,1) + movq %rdx,%r11 + + mulq %r14 + addq %rax,%r11 + movq %rbx,%rax + adcq $0,%rdx + addq -16(%rdi,%rbp,1),%r11 + movq %rdx,%r10 + adcq $0,%r10 + movq %r11,-16(%rdi,%rbp,1) + + xorq %r12,%r12 + + movq -8(%rsi,%rbp,1),%rbx + mulq %r15 + addq %rax,%r12 + movq %rbx,%rax + adcq $0,%rdx + addq -8(%rdi,%rbp,1),%r12 + movq %rdx,%r13 + adcq $0,%r13 + + mulq %r14 + addq %rax,%r10 + movq %rbx,%rax + adcq $0,%rdx + addq %r12,%r10 + movq %rdx,%r11 + adcq $0,%r11 + movq %r10,-8(%rdi,%rbp,1) + + leaq (%rbp),%rcx + jmp .Lsqr4x_inner + +.align 32 +.Lsqr4x_inner: + movq (%rsi,%rcx,1),%rbx + mulq %r15 + addq %rax,%r13 + movq %rbx,%rax + movq %rdx,%r12 + adcq $0,%r12 + addq (%rdi,%rcx,1),%r13 + adcq $0,%r12 + +.byte 0x67 + mulq %r14 + addq %rax,%r11 + movq %rbx,%rax + movq 8(%rsi,%rcx,1),%rbx + movq %rdx,%r10 + adcq $0,%r10 + addq %r13,%r11 + adcq $0,%r10 + + mulq %r15 + addq %rax,%r12 + movq %r11,(%rdi,%rcx,1) + movq %rbx,%rax + movq %rdx,%r13 + adcq $0,%r13 + addq 8(%rdi,%rcx,1),%r12 + leaq 16(%rcx),%rcx + adcq $0,%r13 + + mulq %r14 + addq %rax,%r10 + movq %rbx,%rax + adcq $0,%rdx + addq %r12,%r10 + movq %rdx,%r11 + adcq $0,%r11 + movq %r10,-8(%rdi,%rcx,1) + + cmpq $0,%rcx + jne .Lsqr4x_inner + +.byte 0x67 + mulq %r15 + addq %rax,%r13 + adcq $0,%rdx + addq %r11,%r13 + adcq $0,%rdx + + movq %r13,(%rdi) + movq %rdx,%r12 + movq %rdx,8(%rdi) + + addq $16,%rbp + jnz .Lsqr4x_outer + + + movq -32(%rsi),%r14 + leaq 48+8(%rsp,%r9,2),%rdi + movq -24(%rsi),%rax + leaq -32(%rdi,%rbp,1),%rdi + movq -16(%rsi),%rbx + movq %rax,%r15 + + mulq %r14 + addq %rax,%r10 + movq %rbx,%rax + movq %rdx,%r11 + adcq $0,%r11 + + mulq %r14 + addq %rax,%r11 + movq %rbx,%rax + movq %r10,-24(%rdi) + movq %rdx,%r10 + adcq $0,%r10 + addq %r13,%r11 + movq -8(%rsi),%rbx + adcq $0,%r10 + + mulq %r15 + addq %rax,%r12 + movq %rbx,%rax + movq %r11,-16(%rdi) + movq %rdx,%r13 + adcq $0,%r13 + + mulq %r14 + addq %rax,%r10 + movq %rbx,%rax + movq %rdx,%r11 + adcq $0,%r11 + addq %r12,%r10 + adcq $0,%r11 + movq %r10,-8(%rdi) + + mulq %r15 + addq %rax,%r13 + movq -16(%rsi),%rax + adcq $0,%rdx + addq %r11,%r13 + adcq $0,%rdx + + movq %r13,(%rdi) + movq %rdx,%r12 + movq %rdx,8(%rdi) + + mulq %rbx + addq $16,%rbp + xorq %r14,%r14 + subq %r9,%rbp + xorq %r15,%r15 + + addq %r12,%rax + adcq $0,%rdx + movq %rax,8(%rdi) + movq %rdx,16(%rdi) + movq %r15,24(%rdi) + + movq -16(%rsi,%rbp,1),%rax + leaq 48+8(%rsp),%rdi + xorq %r10,%r10 + movq 8(%rdi),%r11 + + leaq (%r14,%r10,2),%r12 + shrq $63,%r10 + leaq (%rcx,%r11,2),%r13 + shrq $63,%r11 + orq %r10,%r13 + movq 16(%rdi),%r10 + movq %r11,%r14 + mulq %rax + negq %r15 + movq 24(%rdi),%r11 + adcq %rax,%r12 + movq -8(%rsi,%rbp,1),%rax + movq %r12,(%rdi) + adcq %rdx,%r13 + + leaq (%r14,%r10,2),%rbx + movq %r13,8(%rdi) + sbbq %r15,%r15 + shrq $63,%r10 + leaq (%rcx,%r11,2),%r8 + shrq $63,%r11 + orq %r10,%r8 + movq 32(%rdi),%r10 + movq %r11,%r14 + mulq %rax + negq %r15 + movq 40(%rdi),%r11 + adcq %rax,%rbx + movq 0(%rsi,%rbp,1),%rax + movq %rbx,16(%rdi) + adcq %rdx,%r8 + leaq 16(%rbp),%rbp + movq %r8,24(%rdi) + sbbq %r15,%r15 + leaq 64(%rdi),%rdi + jmp .Lsqr4x_shift_n_add + +.align 32 +.Lsqr4x_shift_n_add: + leaq (%r14,%r10,2),%r12 + shrq $63,%r10 + leaq (%rcx,%r11,2),%r13 + shrq $63,%r11 + orq %r10,%r13 + movq -16(%rdi),%r10 + movq %r11,%r14 + mulq %rax + negq %r15 + movq -8(%rdi),%r11 + adcq %rax,%r12 + movq -8(%rsi,%rbp,1),%rax + movq %r12,-32(%rdi) + adcq %rdx,%r13 + + leaq (%r14,%r10,2),%rbx + movq %r13,-24(%rdi) + sbbq %r15,%r15 + shrq $63,%r10 + leaq (%rcx,%r11,2),%r8 + shrq $63,%r11 + orq %r10,%r8 + movq 0(%rdi),%r10 + movq %r11,%r14 + mulq %rax + negq %r15 + movq 8(%rdi),%r11 + adcq %rax,%rbx + movq 0(%rsi,%rbp,1),%rax + movq %rbx,-16(%rdi) + adcq %rdx,%r8 + + leaq (%r14,%r10,2),%r12 + movq %r8,-8(%rdi) + sbbq %r15,%r15 + shrq $63,%r10 + leaq (%rcx,%r11,2),%r13 + shrq $63,%r11 + orq %r10,%r13 + movq 16(%rdi),%r10 + movq %r11,%r14 + mulq %rax + negq %r15 + movq 24(%rdi),%r11 + adcq %rax,%r12 + movq 8(%rsi,%rbp,1),%rax + movq %r12,0(%rdi) + adcq %rdx,%r13 + + leaq (%r14,%r10,2),%rbx + movq %r13,8(%rdi) + sbbq %r15,%r15 + shrq $63,%r10 + leaq (%rcx,%r11,2),%r8 + shrq $63,%r11 + orq %r10,%r8 + movq 32(%rdi),%r10 + movq %r11,%r14 + mulq %rax + negq %r15 + movq 40(%rdi),%r11 + adcq %rax,%rbx + movq 16(%rsi,%rbp,1),%rax + movq %rbx,16(%rdi) + adcq %rdx,%r8 + movq %r8,24(%rdi) + sbbq %r15,%r15 + leaq 64(%rdi),%rdi + addq $32,%rbp + jnz .Lsqr4x_shift_n_add + + leaq (%r14,%r10,2),%r12 +.byte 0x67 + shrq $63,%r10 + leaq (%rcx,%r11,2),%r13 + shrq $63,%r11 + orq %r10,%r13 + movq -16(%rdi),%r10 + movq %r11,%r14 + mulq %rax + negq %r15 + movq -8(%rdi),%r11 + adcq %rax,%r12 + movq -8(%rsi),%rax + movq %r12,-32(%rdi) + adcq %rdx,%r13 + + leaq (%r14,%r10,2),%rbx + movq %r13,-24(%rdi) + sbbq %r15,%r15 + shrq $63,%r10 + leaq (%rcx,%r11,2),%r8 + shrq $63,%r11 + orq %r10,%r8 + mulq %rax + negq %r15 + adcq %rax,%rbx + adcq %rdx,%r8 + movq %rbx,-16(%rdi) + movq %r8,-8(%rdi) +.byte 102,72,15,126,213 +__bn_sqr8x_reduction: + xorq %rax,%rax + leaq (%r9,%rbp,1),%rcx + leaq 48+8(%rsp,%r9,2),%rdx + movq %rcx,0+8(%rsp) + leaq 48+8(%rsp,%r9,1),%rdi + movq %rdx,8+8(%rsp) + negq %r9 + jmp .L8x_reduction_loop + +.align 32 +.L8x_reduction_loop: + leaq (%rdi,%r9,1),%rdi +.byte 0x66 + movq 0(%rdi),%rbx + movq 8(%rdi),%r9 + movq 16(%rdi),%r10 + movq 24(%rdi),%r11 + movq 32(%rdi),%r12 + movq 40(%rdi),%r13 + movq 48(%rdi),%r14 + movq 56(%rdi),%r15 + movq %rax,(%rdx) + leaq 64(%rdi),%rdi + +.byte 0x67 + movq %rbx,%r8 + imulq 32+8(%rsp),%rbx + movq 0(%rbp),%rax + movl $8,%ecx + jmp .L8x_reduce + +.align 32 +.L8x_reduce: + mulq %rbx + movq 8(%rbp),%rax + negq %r8 + movq %rdx,%r8 + adcq $0,%r8 + + mulq %rbx + addq %rax,%r9 + movq 16(%rbp),%rax + adcq $0,%rdx + addq %r9,%r8 + movq %rbx,48-8+8(%rsp,%rcx,8) + movq %rdx,%r9 + adcq $0,%r9 + + mulq %rbx + addq %rax,%r10 + movq 24(%rbp),%rax + adcq $0,%rdx + addq %r10,%r9 + movq 32+8(%rsp),%rsi + movq %rdx,%r10 + adcq $0,%r10 + + mulq %rbx + addq %rax,%r11 + movq 32(%rbp),%rax + adcq $0,%rdx + imulq %r8,%rsi + addq %r11,%r10 + movq %rdx,%r11 + adcq $0,%r11 + + mulq %rbx + addq %rax,%r12 + movq 40(%rbp),%rax + adcq $0,%rdx + addq %r12,%r11 + movq %rdx,%r12 + adcq $0,%r12 + + mulq %rbx + addq %rax,%r13 + movq 48(%rbp),%rax + adcq $0,%rdx + addq %r13,%r12 + movq %rdx,%r13 + adcq $0,%r13 + + mulq %rbx + addq %rax,%r14 + movq 56(%rbp),%rax + adcq $0,%rdx + addq %r14,%r13 + movq %rdx,%r14 + adcq $0,%r14 + + mulq %rbx + movq %rsi,%rbx + addq %rax,%r15 + movq 0(%rbp),%rax + adcq $0,%rdx + addq %r15,%r14 + movq %rdx,%r15 + adcq $0,%r15 + + decl %ecx + jnz .L8x_reduce + + leaq 64(%rbp),%rbp + xorq %rax,%rax + movq 8+8(%rsp),%rdx + cmpq 0+8(%rsp),%rbp + jae .L8x_no_tail + +.byte 0x66 + addq 0(%rdi),%r8 + adcq 8(%rdi),%r9 + adcq 16(%rdi),%r10 + adcq 24(%rdi),%r11 + adcq 32(%rdi),%r12 + adcq 40(%rdi),%r13 + adcq 48(%rdi),%r14 + adcq 56(%rdi),%r15 + sbbq %rsi,%rsi + + movq 48+56+8(%rsp),%rbx + movl $8,%ecx + movq 0(%rbp),%rax + jmp .L8x_tail + +.align 32 +.L8x_tail: + mulq %rbx + addq %rax,%r8 + movq 8(%rbp),%rax + movq %r8,(%rdi) + movq %rdx,%r8 + adcq $0,%r8 + + mulq %rbx + addq %rax,%r9 + movq 16(%rbp),%rax + adcq $0,%rdx + addq %r9,%r8 + leaq 8(%rdi),%rdi + movq %rdx,%r9 + adcq $0,%r9 + + mulq %rbx + addq %rax,%r10 + movq 24(%rbp),%rax + adcq $0,%rdx + addq %r10,%r9 + movq %rdx,%r10 + adcq $0,%r10 + + mulq %rbx + addq %rax,%r11 + movq 32(%rbp),%rax + adcq $0,%rdx + addq %r11,%r10 + movq %rdx,%r11 + adcq $0,%r11 + + mulq %rbx + addq %rax,%r12 + movq 40(%rbp),%rax + adcq $0,%rdx + addq %r12,%r11 + movq %rdx,%r12 + adcq $0,%r12 + + mulq %rbx + addq %rax,%r13 + movq 48(%rbp),%rax + adcq $0,%rdx + addq %r13,%r12 + movq %rdx,%r13 + adcq $0,%r13 + + mulq %rbx + addq %rax,%r14 + movq 56(%rbp),%rax + adcq $0,%rdx + addq %r14,%r13 + movq %rdx,%r14 + adcq $0,%r14 + + mulq %rbx + movq 48-16+8(%rsp,%rcx,8),%rbx + addq %rax,%r15 + adcq $0,%rdx + addq %r15,%r14 + movq 0(%rbp),%rax + movq %rdx,%r15 + adcq $0,%r15 + + decl %ecx + jnz .L8x_tail + + leaq 64(%rbp),%rbp + movq 8+8(%rsp),%rdx + cmpq 0+8(%rsp),%rbp + jae .L8x_tail_done + + movq 48+56+8(%rsp),%rbx + negq %rsi + movq 0(%rbp),%rax + adcq 0(%rdi),%r8 + adcq 8(%rdi),%r9 + adcq 16(%rdi),%r10 + adcq 24(%rdi),%r11 + adcq 32(%rdi),%r12 + adcq 40(%rdi),%r13 + adcq 48(%rdi),%r14 + adcq 56(%rdi),%r15 + sbbq %rsi,%rsi + + movl $8,%ecx + jmp .L8x_tail + +.align 32 +.L8x_tail_done: + xorq %rax,%rax + addq (%rdx),%r8 + adcq $0,%r9 + adcq $0,%r10 + adcq $0,%r11 + adcq $0,%r12 + adcq $0,%r13 + adcq $0,%r14 + adcq $0,%r15 + adcq $0,%rax + + negq %rsi +.L8x_no_tail: + adcq 0(%rdi),%r8 + adcq 8(%rdi),%r9 + adcq 16(%rdi),%r10 + adcq 24(%rdi),%r11 + adcq 32(%rdi),%r12 + adcq 40(%rdi),%r13 + adcq 48(%rdi),%r14 + adcq 56(%rdi),%r15 + adcq $0,%rax + movq -8(%rbp),%rcx + xorq %rsi,%rsi + +.byte 102,72,15,126,213 + + movq %r8,0(%rdi) + movq %r9,8(%rdi) +.byte 102,73,15,126,217 + movq %r10,16(%rdi) + movq %r11,24(%rdi) + movq %r12,32(%rdi) + movq %r13,40(%rdi) + movq %r14,48(%rdi) + movq %r15,56(%rdi) + leaq 64(%rdi),%rdi + + cmpq %rdx,%rdi + jb .L8x_reduction_loop + .byte 0xf3,0xc3 +.cfi_endproc +.size bn_sqr8x_internal,.-bn_sqr8x_internal +.type __bn_post4x_internal,@function +.align 32 +__bn_post4x_internal: +.cfi_startproc + movq 0(%rbp),%r12 + leaq (%rdi,%r9,1),%rbx + movq %r9,%rcx +.byte 102,72,15,126,207 + negq %rax +.byte 102,72,15,126,206 + sarq $3+2,%rcx + decq %r12 + xorq %r10,%r10 + movq 8(%rbp),%r13 + movq 16(%rbp),%r14 + movq 24(%rbp),%r15 + jmp .Lsqr4x_sub_entry + +.align 16 +.Lsqr4x_sub: + movq 0(%rbp),%r12 + movq 8(%rbp),%r13 + movq 16(%rbp),%r14 + movq 24(%rbp),%r15 +.Lsqr4x_sub_entry: + leaq 32(%rbp),%rbp + notq %r12 + notq %r13 + notq %r14 + notq %r15 + andq %rax,%r12 + andq %rax,%r13 + andq %rax,%r14 + andq %rax,%r15 + + negq %r10 + adcq 0(%rbx),%r12 + adcq 8(%rbx),%r13 + adcq 16(%rbx),%r14 + adcq 24(%rbx),%r15 + movq %r12,0(%rdi) + leaq 32(%rbx),%rbx + movq %r13,8(%rdi) + sbbq %r10,%r10 + movq %r14,16(%rdi) + movq %r15,24(%rdi) + leaq 32(%rdi),%rdi + + incq %rcx + jnz .Lsqr4x_sub + + movq %r9,%r10 + negq %r9 + .byte 0xf3,0xc3 +.cfi_endproc +.size __bn_post4x_internal,.-__bn_post4x_internal +.type bn_mulx4x_mont_gather5,@function +.align 32 +bn_mulx4x_mont_gather5: +.cfi_startproc + movq %rsp,%rax +.cfi_def_cfa_register %rax +.Lmulx4x_enter: + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_offset %r15,-56 +.Lmulx4x_prologue: + + shll $3,%r9d + leaq (%r9,%r9,2),%r10 + negq %r9 + movq (%r8),%r8 + + + + + + + + + + + leaq -320(%rsp,%r9,2),%r11 + movq %rsp,%rbp + subq %rdi,%r11 + andq $4095,%r11 + cmpq %r11,%r10 + jb .Lmulx4xsp_alt + subq %r11,%rbp + leaq -320(%rbp,%r9,2),%rbp + jmp .Lmulx4xsp_done + +.Lmulx4xsp_alt: + leaq 4096-320(,%r9,2),%r10 + leaq -320(%rbp,%r9,2),%rbp + subq %r10,%r11 + movq $0,%r10 + cmovcq %r10,%r11 + subq %r11,%rbp +.Lmulx4xsp_done: + andq $-64,%rbp + movq %rsp,%r11 + subq %rbp,%r11 + andq $-4096,%r11 + leaq (%r11,%rbp,1),%rsp + movq (%rsp),%r10 + cmpq %rbp,%rsp + ja .Lmulx4x_page_walk + jmp .Lmulx4x_page_walk_done + +.Lmulx4x_page_walk: + leaq -4096(%rsp),%rsp + movq (%rsp),%r10 + cmpq %rbp,%rsp + ja .Lmulx4x_page_walk +.Lmulx4x_page_walk_done: + + + + + + + + + + + + + + movq %r8,32(%rsp) + movq %rax,40(%rsp) +.cfi_escape 0x0f,0x05,0x77,0x28,0x06,0x23,0x08 +.Lmulx4x_body: + call mulx4x_internal + + movq 40(%rsp),%rsi +.cfi_def_cfa %rsi,8 + movq $1,%rax + + movq -48(%rsi),%r15 +.cfi_restore %r15 + movq -40(%rsi),%r14 +.cfi_restore %r14 + movq -32(%rsi),%r13 +.cfi_restore %r13 + movq -24(%rsi),%r12 +.cfi_restore %r12 + movq -16(%rsi),%rbp +.cfi_restore %rbp + movq -8(%rsi),%rbx +.cfi_restore %rbx + leaq (%rsi),%rsp +.cfi_def_cfa_register %rsp +.Lmulx4x_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size bn_mulx4x_mont_gather5,.-bn_mulx4x_mont_gather5 + +.type mulx4x_internal,@function +.align 32 +mulx4x_internal: +.cfi_startproc + movq %r9,8(%rsp) + movq %r9,%r10 + negq %r9 + shlq $5,%r9 + negq %r10 + leaq 128(%rdx,%r9,1),%r13 + shrq $5+5,%r9 + movd 8(%rax),%xmm5 + subq $1,%r9 + leaq .Linc(%rip),%rax + movq %r13,16+8(%rsp) + movq %r9,24+8(%rsp) + movq %rdi,56+8(%rsp) + movdqa 0(%rax),%xmm0 + movdqa 16(%rax),%xmm1 + leaq 88-112(%rsp,%r10,1),%r10 + leaq 128(%rdx),%rdi + + pshufd $0,%xmm5,%xmm5 + movdqa %xmm1,%xmm4 +.byte 0x67 + movdqa %xmm1,%xmm2 +.byte 0x67 + paddd %xmm0,%xmm1 + pcmpeqd %xmm5,%xmm0 + movdqa %xmm4,%xmm3 + paddd %xmm1,%xmm2 + pcmpeqd %xmm5,%xmm1 + movdqa %xmm0,112(%r10) + movdqa %xmm4,%xmm0 + + paddd %xmm2,%xmm3 + pcmpeqd %xmm5,%xmm2 + movdqa %xmm1,128(%r10) + movdqa %xmm4,%xmm1 + + paddd %xmm3,%xmm0 + pcmpeqd %xmm5,%xmm3 + movdqa %xmm2,144(%r10) + movdqa %xmm4,%xmm2 + + paddd %xmm0,%xmm1 + pcmpeqd %xmm5,%xmm0 + movdqa %xmm3,160(%r10) + movdqa %xmm4,%xmm3 + paddd %xmm1,%xmm2 + pcmpeqd %xmm5,%xmm1 + movdqa %xmm0,176(%r10) + movdqa %xmm4,%xmm0 + + paddd %xmm2,%xmm3 + pcmpeqd %xmm5,%xmm2 + movdqa %xmm1,192(%r10) + movdqa %xmm4,%xmm1 + + paddd %xmm3,%xmm0 + pcmpeqd %xmm5,%xmm3 + movdqa %xmm2,208(%r10) + movdqa %xmm4,%xmm2 + + paddd %xmm0,%xmm1 + pcmpeqd %xmm5,%xmm0 + movdqa %xmm3,224(%r10) + movdqa %xmm4,%xmm3 + paddd %xmm1,%xmm2 + pcmpeqd %xmm5,%xmm1 + movdqa %xmm0,240(%r10) + movdqa %xmm4,%xmm0 + + paddd %xmm2,%xmm3 + pcmpeqd %xmm5,%xmm2 + movdqa %xmm1,256(%r10) + movdqa %xmm4,%xmm1 + + paddd %xmm3,%xmm0 + pcmpeqd %xmm5,%xmm3 + movdqa %xmm2,272(%r10) + movdqa %xmm4,%xmm2 + + paddd %xmm0,%xmm1 + pcmpeqd %xmm5,%xmm0 + movdqa %xmm3,288(%r10) + movdqa %xmm4,%xmm3 +.byte 0x67 + paddd %xmm1,%xmm2 + pcmpeqd %xmm5,%xmm1 + movdqa %xmm0,304(%r10) + + paddd %xmm2,%xmm3 + pcmpeqd %xmm5,%xmm2 + movdqa %xmm1,320(%r10) + + pcmpeqd %xmm5,%xmm3 + movdqa %xmm2,336(%r10) + + pand 64(%rdi),%xmm0 + pand 80(%rdi),%xmm1 + pand 96(%rdi),%xmm2 + movdqa %xmm3,352(%r10) + pand 112(%rdi),%xmm3 + por %xmm2,%xmm0 + por %xmm3,%xmm1 + movdqa -128(%rdi),%xmm4 + movdqa -112(%rdi),%xmm5 + movdqa -96(%rdi),%xmm2 + pand 112(%r10),%xmm4 + movdqa -80(%rdi),%xmm3 + pand 128(%r10),%xmm5 + por %xmm4,%xmm0 + pand 144(%r10),%xmm2 + por %xmm5,%xmm1 + pand 160(%r10),%xmm3 + por %xmm2,%xmm0 + por %xmm3,%xmm1 + movdqa -64(%rdi),%xmm4 + movdqa -48(%rdi),%xmm5 + movdqa -32(%rdi),%xmm2 + pand 176(%r10),%xmm4 + movdqa -16(%rdi),%xmm3 + pand 192(%r10),%xmm5 + por %xmm4,%xmm0 + pand 208(%r10),%xmm2 + por %xmm5,%xmm1 + pand 224(%r10),%xmm3 + por %xmm2,%xmm0 + por %xmm3,%xmm1 + movdqa 0(%rdi),%xmm4 + movdqa 16(%rdi),%xmm5 + movdqa 32(%rdi),%xmm2 + pand 240(%r10),%xmm4 + movdqa 48(%rdi),%xmm3 + pand 256(%r10),%xmm5 + por %xmm4,%xmm0 + pand 272(%r10),%xmm2 + por %xmm5,%xmm1 + pand 288(%r10),%xmm3 + por %xmm2,%xmm0 + por %xmm3,%xmm1 + pxor %xmm1,%xmm0 + pshufd $0x4e,%xmm0,%xmm1 + por %xmm1,%xmm0 + leaq 256(%rdi),%rdi +.byte 102,72,15,126,194 + leaq 64+32+8(%rsp),%rbx + + movq %rdx,%r9 + mulxq 0(%rsi),%r8,%rax + mulxq 8(%rsi),%r11,%r12 + addq %rax,%r11 + mulxq 16(%rsi),%rax,%r13 + adcq %rax,%r12 + adcq $0,%r13 + mulxq 24(%rsi),%rax,%r14 + + movq %r8,%r15 + imulq 32+8(%rsp),%r8 + xorq %rbp,%rbp + movq %r8,%rdx + + movq %rdi,8+8(%rsp) + + leaq 32(%rsi),%rsi + adcxq %rax,%r13 + adcxq %rbp,%r14 + + mulxq 0(%rcx),%rax,%r10 + adcxq %rax,%r15 + adoxq %r11,%r10 + mulxq 8(%rcx),%rax,%r11 + adcxq %rax,%r10 + adoxq %r12,%r11 + mulxq 16(%rcx),%rax,%r12 + movq 24+8(%rsp),%rdi + movq %r10,-32(%rbx) + adcxq %rax,%r11 + adoxq %r13,%r12 + mulxq 24(%rcx),%rax,%r15 + movq %r9,%rdx + movq %r11,-24(%rbx) + adcxq %rax,%r12 + adoxq %rbp,%r15 + leaq 32(%rcx),%rcx + movq %r12,-16(%rbx) + jmp .Lmulx4x_1st + +.align 32 +.Lmulx4x_1st: + adcxq %rbp,%r15 + mulxq 0(%rsi),%r10,%rax + adcxq %r14,%r10 + mulxq 8(%rsi),%r11,%r14 + adcxq %rax,%r11 + mulxq 16(%rsi),%r12,%rax + adcxq %r14,%r12 + mulxq 24(%rsi),%r13,%r14 +.byte 0x67,0x67 + movq %r8,%rdx + adcxq %rax,%r13 + adcxq %rbp,%r14 + leaq 32(%rsi),%rsi + leaq 32(%rbx),%rbx + + adoxq %r15,%r10 + mulxq 0(%rcx),%rax,%r15 + adcxq %rax,%r10 + adoxq %r15,%r11 + mulxq 8(%rcx),%rax,%r15 + adcxq %rax,%r11 + adoxq %r15,%r12 + mulxq 16(%rcx),%rax,%r15 + movq %r10,-40(%rbx) + adcxq %rax,%r12 + movq %r11,-32(%rbx) + adoxq %r15,%r13 + mulxq 24(%rcx),%rax,%r15 + movq %r9,%rdx + movq %r12,-24(%rbx) + adcxq %rax,%r13 + adoxq %rbp,%r15 + leaq 32(%rcx),%rcx + movq %r13,-16(%rbx) + + decq %rdi + jnz .Lmulx4x_1st + + movq 8(%rsp),%rax + adcq %rbp,%r15 + leaq (%rsi,%rax,1),%rsi + addq %r15,%r14 + movq 8+8(%rsp),%rdi + adcq %rbp,%rbp + movq %r14,-8(%rbx) + jmp .Lmulx4x_outer + +.align 32 +.Lmulx4x_outer: + leaq 16-256(%rbx),%r10 + pxor %xmm4,%xmm4 +.byte 0x67,0x67 + pxor %xmm5,%xmm5 + movdqa -128(%rdi),%xmm0 + movdqa -112(%rdi),%xmm1 + movdqa -96(%rdi),%xmm2 + pand 256(%r10),%xmm0 + movdqa -80(%rdi),%xmm3 + pand 272(%r10),%xmm1 + por %xmm0,%xmm4 + pand 288(%r10),%xmm2 + por %xmm1,%xmm5 + pand 304(%r10),%xmm3 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + movdqa -64(%rdi),%xmm0 + movdqa -48(%rdi),%xmm1 + movdqa -32(%rdi),%xmm2 + pand 320(%r10),%xmm0 + movdqa -16(%rdi),%xmm3 + pand 336(%r10),%xmm1 + por %xmm0,%xmm4 + pand 352(%r10),%xmm2 + por %xmm1,%xmm5 + pand 368(%r10),%xmm3 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + movdqa 0(%rdi),%xmm0 + movdqa 16(%rdi),%xmm1 + movdqa 32(%rdi),%xmm2 + pand 384(%r10),%xmm0 + movdqa 48(%rdi),%xmm3 + pand 400(%r10),%xmm1 + por %xmm0,%xmm4 + pand 416(%r10),%xmm2 + por %xmm1,%xmm5 + pand 432(%r10),%xmm3 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + movdqa 64(%rdi),%xmm0 + movdqa 80(%rdi),%xmm1 + movdqa 96(%rdi),%xmm2 + pand 448(%r10),%xmm0 + movdqa 112(%rdi),%xmm3 + pand 464(%r10),%xmm1 + por %xmm0,%xmm4 + pand 480(%r10),%xmm2 + por %xmm1,%xmm5 + pand 496(%r10),%xmm3 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + por %xmm5,%xmm4 + pshufd $0x4e,%xmm4,%xmm0 + por %xmm4,%xmm0 + leaq 256(%rdi),%rdi +.byte 102,72,15,126,194 + + movq %rbp,(%rbx) + leaq 32(%rbx,%rax,1),%rbx + mulxq 0(%rsi),%r8,%r11 + xorq %rbp,%rbp + movq %rdx,%r9 + mulxq 8(%rsi),%r14,%r12 + adoxq -32(%rbx),%r8 + adcxq %r14,%r11 + mulxq 16(%rsi),%r15,%r13 + adoxq -24(%rbx),%r11 + adcxq %r15,%r12 + mulxq 24(%rsi),%rdx,%r14 + adoxq -16(%rbx),%r12 + adcxq %rdx,%r13 + leaq (%rcx,%rax,1),%rcx + leaq 32(%rsi),%rsi + adoxq -8(%rbx),%r13 + adcxq %rbp,%r14 + adoxq %rbp,%r14 + + movq %r8,%r15 + imulq 32+8(%rsp),%r8 + + movq %r8,%rdx + xorq %rbp,%rbp + movq %rdi,8+8(%rsp) + + mulxq 0(%rcx),%rax,%r10 + adcxq %rax,%r15 + adoxq %r11,%r10 + mulxq 8(%rcx),%rax,%r11 + adcxq %rax,%r10 + adoxq %r12,%r11 + mulxq 16(%rcx),%rax,%r12 + adcxq %rax,%r11 + adoxq %r13,%r12 + mulxq 24(%rcx),%rax,%r15 + movq %r9,%rdx + movq 24+8(%rsp),%rdi + movq %r10,-32(%rbx) + adcxq %rax,%r12 + movq %r11,-24(%rbx) + adoxq %rbp,%r15 + movq %r12,-16(%rbx) + leaq 32(%rcx),%rcx + jmp .Lmulx4x_inner + +.align 32 +.Lmulx4x_inner: + mulxq 0(%rsi),%r10,%rax + adcxq %rbp,%r15 + adoxq %r14,%r10 + mulxq 8(%rsi),%r11,%r14 + adcxq 0(%rbx),%r10 + adoxq %rax,%r11 + mulxq 16(%rsi),%r12,%rax + adcxq 8(%rbx),%r11 + adoxq %r14,%r12 + mulxq 24(%rsi),%r13,%r14 + movq %r8,%rdx + adcxq 16(%rbx),%r12 + adoxq %rax,%r13 + adcxq 24(%rbx),%r13 + adoxq %rbp,%r14 + leaq 32(%rsi),%rsi + leaq 32(%rbx),%rbx + adcxq %rbp,%r14 + + adoxq %r15,%r10 + mulxq 0(%rcx),%rax,%r15 + adcxq %rax,%r10 + adoxq %r15,%r11 + mulxq 8(%rcx),%rax,%r15 + adcxq %rax,%r11 + adoxq %r15,%r12 + mulxq 16(%rcx),%rax,%r15 + movq %r10,-40(%rbx) + adcxq %rax,%r12 + adoxq %r15,%r13 + movq %r11,-32(%rbx) + mulxq 24(%rcx),%rax,%r15 + movq %r9,%rdx + leaq 32(%rcx),%rcx + movq %r12,-24(%rbx) + adcxq %rax,%r13 + adoxq %rbp,%r15 + movq %r13,-16(%rbx) + + decq %rdi + jnz .Lmulx4x_inner + + movq 0+8(%rsp),%rax + adcq %rbp,%r15 + subq 0(%rbx),%rdi + movq 8+8(%rsp),%rdi + movq 16+8(%rsp),%r10 + adcq %r15,%r14 + leaq (%rsi,%rax,1),%rsi + adcq %rbp,%rbp + movq %r14,-8(%rbx) + + cmpq %r10,%rdi + jb .Lmulx4x_outer + + movq -8(%rcx),%r10 + movq %rbp,%r8 + movq (%rcx,%rax,1),%r12 + leaq (%rcx,%rax,1),%rbp + movq %rax,%rcx + leaq (%rbx,%rax,1),%rdi + xorl %eax,%eax + xorq %r15,%r15 + subq %r14,%r10 + adcq %r15,%r15 + orq %r15,%r8 + sarq $3+2,%rcx + subq %r8,%rax + movq 56+8(%rsp),%rdx + decq %r12 + movq 8(%rbp),%r13 + xorq %r8,%r8 + movq 16(%rbp),%r14 + movq 24(%rbp),%r15 + jmp .Lsqrx4x_sub_entry +.cfi_endproc +.size mulx4x_internal,.-mulx4x_internal +.type bn_powerx5,@function +.align 32 +bn_powerx5: +.cfi_startproc + movq %rsp,%rax +.cfi_def_cfa_register %rax +.Lpowerx5_enter: + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_offset %r15,-56 +.Lpowerx5_prologue: + + shll $3,%r9d + leaq (%r9,%r9,2),%r10 + negq %r9 + movq (%r8),%r8 + + + + + + + + + leaq -320(%rsp,%r9,2),%r11 + movq %rsp,%rbp + subq %rdi,%r11 + andq $4095,%r11 + cmpq %r11,%r10 + jb .Lpwrx_sp_alt + subq %r11,%rbp + leaq -320(%rbp,%r9,2),%rbp + jmp .Lpwrx_sp_done + +.align 32 +.Lpwrx_sp_alt: + leaq 4096-320(,%r9,2),%r10 + leaq -320(%rbp,%r9,2),%rbp + subq %r10,%r11 + movq $0,%r10 + cmovcq %r10,%r11 + subq %r11,%rbp +.Lpwrx_sp_done: + andq $-64,%rbp + movq %rsp,%r11 + subq %rbp,%r11 + andq $-4096,%r11 + leaq (%r11,%rbp,1),%rsp + movq (%rsp),%r10 + cmpq %rbp,%rsp + ja .Lpwrx_page_walk + jmp .Lpwrx_page_walk_done + +.Lpwrx_page_walk: + leaq -4096(%rsp),%rsp + movq (%rsp),%r10 + cmpq %rbp,%rsp + ja .Lpwrx_page_walk +.Lpwrx_page_walk_done: + + movq %r9,%r10 + negq %r9 + + + + + + + + + + + + + pxor %xmm0,%xmm0 +.byte 102,72,15,110,207 +.byte 102,72,15,110,209 +.byte 102,73,15,110,218 +.byte 102,72,15,110,226 + movq %r8,32(%rsp) + movq %rax,40(%rsp) +.cfi_escape 0x0f,0x05,0x77,0x28,0x06,0x23,0x08 +.Lpowerx5_body: + + call __bn_sqrx8x_internal + call __bn_postx4x_internal + call __bn_sqrx8x_internal + call __bn_postx4x_internal + call __bn_sqrx8x_internal + call __bn_postx4x_internal + call __bn_sqrx8x_internal + call __bn_postx4x_internal + call __bn_sqrx8x_internal + call __bn_postx4x_internal + + movq %r10,%r9 + movq %rsi,%rdi +.byte 102,72,15,126,209 +.byte 102,72,15,126,226 + movq 40(%rsp),%rax + + call mulx4x_internal + + movq 40(%rsp),%rsi +.cfi_def_cfa %rsi,8 + movq $1,%rax + + movq -48(%rsi),%r15 +.cfi_restore %r15 + movq -40(%rsi),%r14 +.cfi_restore %r14 + movq -32(%rsi),%r13 +.cfi_restore %r13 + movq -24(%rsi),%r12 +.cfi_restore %r12 + movq -16(%rsi),%rbp +.cfi_restore %rbp + movq -8(%rsi),%rbx +.cfi_restore %rbx + leaq (%rsi),%rsp +.cfi_def_cfa_register %rsp +.Lpowerx5_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size bn_powerx5,.-bn_powerx5 + +.globl bn_sqrx8x_internal +.hidden bn_sqrx8x_internal +.type bn_sqrx8x_internal,@function +.align 32 +bn_sqrx8x_internal: +__bn_sqrx8x_internal: +.cfi_startproc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + leaq 48+8(%rsp),%rdi + leaq (%rsi,%r9,1),%rbp + movq %r9,0+8(%rsp) + movq %rbp,8+8(%rsp) + jmp .Lsqr8x_zero_start + +.align 32 +.byte 0x66,0x66,0x66,0x2e,0x0f,0x1f,0x84,0x00,0x00,0x00,0x00,0x00 +.Lsqrx8x_zero: +.byte 0x3e + movdqa %xmm0,0(%rdi) + movdqa %xmm0,16(%rdi) + movdqa %xmm0,32(%rdi) + movdqa %xmm0,48(%rdi) +.Lsqr8x_zero_start: + movdqa %xmm0,64(%rdi) + movdqa %xmm0,80(%rdi) + movdqa %xmm0,96(%rdi) + movdqa %xmm0,112(%rdi) + leaq 128(%rdi),%rdi + subq $64,%r9 + jnz .Lsqrx8x_zero + + movq 0(%rsi),%rdx + + xorq %r10,%r10 + xorq %r11,%r11 + xorq %r12,%r12 + xorq %r13,%r13 + xorq %r14,%r14 + xorq %r15,%r15 + leaq 48+8(%rsp),%rdi + xorq %rbp,%rbp + jmp .Lsqrx8x_outer_loop + +.align 32 +.Lsqrx8x_outer_loop: + mulxq 8(%rsi),%r8,%rax + adcxq %r9,%r8 + adoxq %rax,%r10 + mulxq 16(%rsi),%r9,%rax + adcxq %r10,%r9 + adoxq %rax,%r11 +.byte 0xc4,0xe2,0xab,0xf6,0x86,0x18,0x00,0x00,0x00 + adcxq %r11,%r10 + adoxq %rax,%r12 +.byte 0xc4,0xe2,0xa3,0xf6,0x86,0x20,0x00,0x00,0x00 + adcxq %r12,%r11 + adoxq %rax,%r13 + mulxq 40(%rsi),%r12,%rax + adcxq %r13,%r12 + adoxq %rax,%r14 + mulxq 48(%rsi),%r13,%rax + adcxq %r14,%r13 + adoxq %r15,%rax + mulxq 56(%rsi),%r14,%r15 + movq 8(%rsi),%rdx + adcxq %rax,%r14 + adoxq %rbp,%r15 + adcq 64(%rdi),%r15 + movq %r8,8(%rdi) + movq %r9,16(%rdi) + sbbq %rcx,%rcx + xorq %rbp,%rbp + + + mulxq 16(%rsi),%r8,%rbx + mulxq 24(%rsi),%r9,%rax + adcxq %r10,%r8 + adoxq %rbx,%r9 + mulxq 32(%rsi),%r10,%rbx + adcxq %r11,%r9 + adoxq %rax,%r10 +.byte 0xc4,0xe2,0xa3,0xf6,0x86,0x28,0x00,0x00,0x00 + adcxq %r12,%r10 + adoxq %rbx,%r11 +.byte 0xc4,0xe2,0x9b,0xf6,0x9e,0x30,0x00,0x00,0x00 + adcxq %r13,%r11 + adoxq %r14,%r12 +.byte 0xc4,0x62,0x93,0xf6,0xb6,0x38,0x00,0x00,0x00 + movq 16(%rsi),%rdx + adcxq %rax,%r12 + adoxq %rbx,%r13 + adcxq %r15,%r13 + adoxq %rbp,%r14 + adcxq %rbp,%r14 + + movq %r8,24(%rdi) + movq %r9,32(%rdi) + + mulxq 24(%rsi),%r8,%rbx + mulxq 32(%rsi),%r9,%rax + adcxq %r10,%r8 + adoxq %rbx,%r9 + mulxq 40(%rsi),%r10,%rbx + adcxq %r11,%r9 + adoxq %rax,%r10 +.byte 0xc4,0xe2,0xa3,0xf6,0x86,0x30,0x00,0x00,0x00 + adcxq %r12,%r10 + adoxq %r13,%r11 +.byte 0xc4,0x62,0x9b,0xf6,0xae,0x38,0x00,0x00,0x00 +.byte 0x3e + movq 24(%rsi),%rdx + adcxq %rbx,%r11 + adoxq %rax,%r12 + adcxq %r14,%r12 + movq %r8,40(%rdi) + movq %r9,48(%rdi) + mulxq 32(%rsi),%r8,%rax + adoxq %rbp,%r13 + adcxq %rbp,%r13 + + mulxq 40(%rsi),%r9,%rbx + adcxq %r10,%r8 + adoxq %rax,%r9 + mulxq 48(%rsi),%r10,%rax + adcxq %r11,%r9 + adoxq %r12,%r10 + mulxq 56(%rsi),%r11,%r12 + movq 32(%rsi),%rdx + movq 40(%rsi),%r14 + adcxq %rbx,%r10 + adoxq %rax,%r11 + movq 48(%rsi),%r15 + adcxq %r13,%r11 + adoxq %rbp,%r12 + adcxq %rbp,%r12 + + movq %r8,56(%rdi) + movq %r9,64(%rdi) + + mulxq %r14,%r9,%rax + movq 56(%rsi),%r8 + adcxq %r10,%r9 + mulxq %r15,%r10,%rbx + adoxq %rax,%r10 + adcxq %r11,%r10 + mulxq %r8,%r11,%rax + movq %r14,%rdx + adoxq %rbx,%r11 + adcxq %r12,%r11 + + adcxq %rbp,%rax + + mulxq %r15,%r14,%rbx + mulxq %r8,%r12,%r13 + movq %r15,%rdx + leaq 64(%rsi),%rsi + adcxq %r14,%r11 + adoxq %rbx,%r12 + adcxq %rax,%r12 + adoxq %rbp,%r13 + +.byte 0x67,0x67 + mulxq %r8,%r8,%r14 + adcxq %r8,%r13 + adcxq %rbp,%r14 + + cmpq 8+8(%rsp),%rsi + je .Lsqrx8x_outer_break + + negq %rcx + movq $-8,%rcx + movq %rbp,%r15 + movq 64(%rdi),%r8 + adcxq 72(%rdi),%r9 + adcxq 80(%rdi),%r10 + adcxq 88(%rdi),%r11 + adcq 96(%rdi),%r12 + adcq 104(%rdi),%r13 + adcq 112(%rdi),%r14 + adcq 120(%rdi),%r15 + leaq (%rsi),%rbp + leaq 128(%rdi),%rdi + sbbq %rax,%rax + + movq -64(%rsi),%rdx + movq %rax,16+8(%rsp) + movq %rdi,24+8(%rsp) + + + xorl %eax,%eax + jmp .Lsqrx8x_loop + +.align 32 +.Lsqrx8x_loop: + movq %r8,%rbx + mulxq 0(%rbp),%rax,%r8 + adcxq %rax,%rbx + adoxq %r9,%r8 + + mulxq 8(%rbp),%rax,%r9 + adcxq %rax,%r8 + adoxq %r10,%r9 + + mulxq 16(%rbp),%rax,%r10 + adcxq %rax,%r9 + adoxq %r11,%r10 + + mulxq 24(%rbp),%rax,%r11 + adcxq %rax,%r10 + adoxq %r12,%r11 + +.byte 0xc4,0x62,0xfb,0xf6,0xa5,0x20,0x00,0x00,0x00 + adcxq %rax,%r11 + adoxq %r13,%r12 + + mulxq 40(%rbp),%rax,%r13 + adcxq %rax,%r12 + adoxq %r14,%r13 + + mulxq 48(%rbp),%rax,%r14 + movq %rbx,(%rdi,%rcx,8) + movl $0,%ebx + adcxq %rax,%r13 + adoxq %r15,%r14 + +.byte 0xc4,0x62,0xfb,0xf6,0xbd,0x38,0x00,0x00,0x00 + movq 8(%rsi,%rcx,8),%rdx + adcxq %rax,%r14 + adoxq %rbx,%r15 + adcxq %rbx,%r15 + +.byte 0x67 + incq %rcx + jnz .Lsqrx8x_loop + + leaq 64(%rbp),%rbp + movq $-8,%rcx + cmpq 8+8(%rsp),%rbp + je .Lsqrx8x_break + + subq 16+8(%rsp),%rbx +.byte 0x66 + movq -64(%rsi),%rdx + adcxq 0(%rdi),%r8 + adcxq 8(%rdi),%r9 + adcq 16(%rdi),%r10 + adcq 24(%rdi),%r11 + adcq 32(%rdi),%r12 + adcq 40(%rdi),%r13 + adcq 48(%rdi),%r14 + adcq 56(%rdi),%r15 + leaq 64(%rdi),%rdi +.byte 0x67 + sbbq %rax,%rax + xorl %ebx,%ebx + movq %rax,16+8(%rsp) + jmp .Lsqrx8x_loop + +.align 32 +.Lsqrx8x_break: + xorq %rbp,%rbp + subq 16+8(%rsp),%rbx + adcxq %rbp,%r8 + movq 24+8(%rsp),%rcx + adcxq %rbp,%r9 + movq 0(%rsi),%rdx + adcq $0,%r10 + movq %r8,0(%rdi) + adcq $0,%r11 + adcq $0,%r12 + adcq $0,%r13 + adcq $0,%r14 + adcq $0,%r15 + cmpq %rcx,%rdi + je .Lsqrx8x_outer_loop + + movq %r9,8(%rdi) + movq 8(%rcx),%r9 + movq %r10,16(%rdi) + movq 16(%rcx),%r10 + movq %r11,24(%rdi) + movq 24(%rcx),%r11 + movq %r12,32(%rdi) + movq 32(%rcx),%r12 + movq %r13,40(%rdi) + movq 40(%rcx),%r13 + movq %r14,48(%rdi) + movq 48(%rcx),%r14 + movq %r15,56(%rdi) + movq 56(%rcx),%r15 + movq %rcx,%rdi + jmp .Lsqrx8x_outer_loop + +.align 32 +.Lsqrx8x_outer_break: + movq %r9,72(%rdi) +.byte 102,72,15,126,217 + movq %r10,80(%rdi) + movq %r11,88(%rdi) + movq %r12,96(%rdi) + movq %r13,104(%rdi) + movq %r14,112(%rdi) + leaq 48+8(%rsp),%rdi + movq (%rsi,%rcx,1),%rdx + + movq 8(%rdi),%r11 + xorq %r10,%r10 + movq 0+8(%rsp),%r9 + adoxq %r11,%r11 + movq 16(%rdi),%r12 + movq 24(%rdi),%r13 + + +.align 32 +.Lsqrx4x_shift_n_add: + mulxq %rdx,%rax,%rbx + adoxq %r12,%r12 + adcxq %r10,%rax +.byte 0x48,0x8b,0x94,0x0e,0x08,0x00,0x00,0x00 +.byte 0x4c,0x8b,0x97,0x20,0x00,0x00,0x00 + adoxq %r13,%r13 + adcxq %r11,%rbx + movq 40(%rdi),%r11 + movq %rax,0(%rdi) + movq %rbx,8(%rdi) + + mulxq %rdx,%rax,%rbx + adoxq %r10,%r10 + adcxq %r12,%rax + movq 16(%rsi,%rcx,1),%rdx + movq 48(%rdi),%r12 + adoxq %r11,%r11 + adcxq %r13,%rbx + movq 56(%rdi),%r13 + movq %rax,16(%rdi) + movq %rbx,24(%rdi) + + mulxq %rdx,%rax,%rbx + adoxq %r12,%r12 + adcxq %r10,%rax + movq 24(%rsi,%rcx,1),%rdx + leaq 32(%rcx),%rcx + movq 64(%rdi),%r10 + adoxq %r13,%r13 + adcxq %r11,%rbx + movq 72(%rdi),%r11 + movq %rax,32(%rdi) + movq %rbx,40(%rdi) + + mulxq %rdx,%rax,%rbx + adoxq %r10,%r10 + adcxq %r12,%rax + jrcxz .Lsqrx4x_shift_n_add_break +.byte 0x48,0x8b,0x94,0x0e,0x00,0x00,0x00,0x00 + adoxq %r11,%r11 + adcxq %r13,%rbx + movq 80(%rdi),%r12 + movq 88(%rdi),%r13 + movq %rax,48(%rdi) + movq %rbx,56(%rdi) + leaq 64(%rdi),%rdi + nop + jmp .Lsqrx4x_shift_n_add + +.align 32 +.Lsqrx4x_shift_n_add_break: + adcxq %r13,%rbx + movq %rax,48(%rdi) + movq %rbx,56(%rdi) + leaq 64(%rdi),%rdi +.byte 102,72,15,126,213 +__bn_sqrx8x_reduction: + xorl %eax,%eax + movq 32+8(%rsp),%rbx + movq 48+8(%rsp),%rdx + leaq -64(%rbp,%r9,1),%rcx + + movq %rcx,0+8(%rsp) + movq %rdi,8+8(%rsp) + + leaq 48+8(%rsp),%rdi + jmp .Lsqrx8x_reduction_loop + +.align 32 +.Lsqrx8x_reduction_loop: + movq 8(%rdi),%r9 + movq 16(%rdi),%r10 + movq 24(%rdi),%r11 + movq 32(%rdi),%r12 + movq %rdx,%r8 + imulq %rbx,%rdx + movq 40(%rdi),%r13 + movq 48(%rdi),%r14 + movq 56(%rdi),%r15 + movq %rax,24+8(%rsp) + + leaq 64(%rdi),%rdi + xorq %rsi,%rsi + movq $-8,%rcx + jmp .Lsqrx8x_reduce + +.align 32 +.Lsqrx8x_reduce: + movq %r8,%rbx + mulxq 0(%rbp),%rax,%r8 + adcxq %rbx,%rax + adoxq %r9,%r8 + + mulxq 8(%rbp),%rbx,%r9 + adcxq %rbx,%r8 + adoxq %r10,%r9 + + mulxq 16(%rbp),%rbx,%r10 + adcxq %rbx,%r9 + adoxq %r11,%r10 + + mulxq 24(%rbp),%rbx,%r11 + adcxq %rbx,%r10 + adoxq %r12,%r11 + +.byte 0xc4,0x62,0xe3,0xf6,0xa5,0x20,0x00,0x00,0x00 + movq %rdx,%rax + movq %r8,%rdx + adcxq %rbx,%r11 + adoxq %r13,%r12 + + mulxq 32+8(%rsp),%rbx,%rdx + movq %rax,%rdx + movq %rax,64+48+8(%rsp,%rcx,8) + + mulxq 40(%rbp),%rax,%r13 + adcxq %rax,%r12 + adoxq %r14,%r13 + + mulxq 48(%rbp),%rax,%r14 + adcxq %rax,%r13 + adoxq %r15,%r14 + + mulxq 56(%rbp),%rax,%r15 + movq %rbx,%rdx + adcxq %rax,%r14 + adoxq %rsi,%r15 + adcxq %rsi,%r15 + +.byte 0x67,0x67,0x67 + incq %rcx + jnz .Lsqrx8x_reduce + + movq %rsi,%rax + cmpq 0+8(%rsp),%rbp + jae .Lsqrx8x_no_tail + + movq 48+8(%rsp),%rdx + addq 0(%rdi),%r8 + leaq 64(%rbp),%rbp + movq $-8,%rcx + adcxq 8(%rdi),%r9 + adcxq 16(%rdi),%r10 + adcq 24(%rdi),%r11 + adcq 32(%rdi),%r12 + adcq 40(%rdi),%r13 + adcq 48(%rdi),%r14 + adcq 56(%rdi),%r15 + leaq 64(%rdi),%rdi + sbbq %rax,%rax + + xorq %rsi,%rsi + movq %rax,16+8(%rsp) + jmp .Lsqrx8x_tail + +.align 32 +.Lsqrx8x_tail: + movq %r8,%rbx + mulxq 0(%rbp),%rax,%r8 + adcxq %rax,%rbx + adoxq %r9,%r8 + + mulxq 8(%rbp),%rax,%r9 + adcxq %rax,%r8 + adoxq %r10,%r9 + + mulxq 16(%rbp),%rax,%r10 + adcxq %rax,%r9 + adoxq %r11,%r10 + + mulxq 24(%rbp),%rax,%r11 + adcxq %rax,%r10 + adoxq %r12,%r11 + +.byte 0xc4,0x62,0xfb,0xf6,0xa5,0x20,0x00,0x00,0x00 + adcxq %rax,%r11 + adoxq %r13,%r12 + + mulxq 40(%rbp),%rax,%r13 + adcxq %rax,%r12 + adoxq %r14,%r13 + + mulxq 48(%rbp),%rax,%r14 + adcxq %rax,%r13 + adoxq %r15,%r14 + + mulxq 56(%rbp),%rax,%r15 + movq 72+48+8(%rsp,%rcx,8),%rdx + adcxq %rax,%r14 + adoxq %rsi,%r15 + movq %rbx,(%rdi,%rcx,8) + movq %r8,%rbx + adcxq %rsi,%r15 + + incq %rcx + jnz .Lsqrx8x_tail + + cmpq 0+8(%rsp),%rbp + jae .Lsqrx8x_tail_done + + subq 16+8(%rsp),%rsi + movq 48+8(%rsp),%rdx + leaq 64(%rbp),%rbp + adcq 0(%rdi),%r8 + adcq 8(%rdi),%r9 + adcq 16(%rdi),%r10 + adcq 24(%rdi),%r11 + adcq 32(%rdi),%r12 + adcq 40(%rdi),%r13 + adcq 48(%rdi),%r14 + adcq 56(%rdi),%r15 + leaq 64(%rdi),%rdi + sbbq %rax,%rax + subq $8,%rcx + + xorq %rsi,%rsi + movq %rax,16+8(%rsp) + jmp .Lsqrx8x_tail + +.align 32 +.Lsqrx8x_tail_done: + xorq %rax,%rax + addq 24+8(%rsp),%r8 + adcq $0,%r9 + adcq $0,%r10 + adcq $0,%r11 + adcq $0,%r12 + adcq $0,%r13 + adcq $0,%r14 + adcq $0,%r15 + adcq $0,%rax + + subq 16+8(%rsp),%rsi +.Lsqrx8x_no_tail: + adcq 0(%rdi),%r8 +.byte 102,72,15,126,217 + adcq 8(%rdi),%r9 + movq 56(%rbp),%rsi +.byte 102,72,15,126,213 + adcq 16(%rdi),%r10 + adcq 24(%rdi),%r11 + adcq 32(%rdi),%r12 + adcq 40(%rdi),%r13 + adcq 48(%rdi),%r14 + adcq 56(%rdi),%r15 + adcq $0,%rax + + movq 32+8(%rsp),%rbx + movq 64(%rdi,%rcx,1),%rdx + + movq %r8,0(%rdi) + leaq 64(%rdi),%r8 + movq %r9,8(%rdi) + movq %r10,16(%rdi) + movq %r11,24(%rdi) + movq %r12,32(%rdi) + movq %r13,40(%rdi) + movq %r14,48(%rdi) + movq %r15,56(%rdi) + + leaq 64(%rdi,%rcx,1),%rdi + cmpq 8+8(%rsp),%r8 + jb .Lsqrx8x_reduction_loop + .byte 0xf3,0xc3 +.cfi_endproc +.size bn_sqrx8x_internal,.-bn_sqrx8x_internal +.align 32 +__bn_postx4x_internal: +.cfi_startproc + movq 0(%rbp),%r12 + movq %rcx,%r10 + movq %rcx,%r9 + negq %rax + sarq $3+2,%rcx + +.byte 102,72,15,126,202 +.byte 102,72,15,126,206 + decq %r12 + movq 8(%rbp),%r13 + xorq %r8,%r8 + movq 16(%rbp),%r14 + movq 24(%rbp),%r15 + jmp .Lsqrx4x_sub_entry + +.align 16 +.Lsqrx4x_sub: + movq 0(%rbp),%r12 + movq 8(%rbp),%r13 + movq 16(%rbp),%r14 + movq 24(%rbp),%r15 +.Lsqrx4x_sub_entry: + andnq %rax,%r12,%r12 + leaq 32(%rbp),%rbp + andnq %rax,%r13,%r13 + andnq %rax,%r14,%r14 + andnq %rax,%r15,%r15 + + negq %r8 + adcq 0(%rdi),%r12 + adcq 8(%rdi),%r13 + adcq 16(%rdi),%r14 + adcq 24(%rdi),%r15 + movq %r12,0(%rdx) + leaq 32(%rdi),%rdi + movq %r13,8(%rdx) + sbbq %r8,%r8 + movq %r14,16(%rdx) + movq %r15,24(%rdx) + leaq 32(%rdx),%rdx + + incq %rcx + jnz .Lsqrx4x_sub + + negq %r9 + + .byte 0xf3,0xc3 +.cfi_endproc +.size __bn_postx4x_internal,.-__bn_postx4x_internal +.globl bn_get_bits5 +.type bn_get_bits5,@function +.align 16 +bn_get_bits5: +.cfi_startproc + leaq 0(%rdi),%r10 + leaq 1(%rdi),%r11 + movl %esi,%ecx + shrl $4,%esi + andl $15,%ecx + leal -8(%rcx),%eax + cmpl $11,%ecx + cmovaq %r11,%r10 + cmoval %eax,%ecx + movzwl (%r10,%rsi,2),%eax + shrl %cl,%eax + andl $31,%eax + .byte 0xf3,0xc3 +.cfi_endproc +.size bn_get_bits5,.-bn_get_bits5 + +.globl bn_scatter5 +.type bn_scatter5,@function +.align 16 +bn_scatter5: +.cfi_startproc + cmpl $0,%esi + jz .Lscatter_epilogue + leaq (%rdx,%rcx,8),%rdx +.Lscatter: + movq (%rdi),%rax + leaq 8(%rdi),%rdi + movq %rax,(%rdx) + leaq 256(%rdx),%rdx + subl $1,%esi + jnz .Lscatter +.Lscatter_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size bn_scatter5,.-bn_scatter5 + +.globl bn_gather5 +.type bn_gather5,@function +.align 32 +bn_gather5: +.LSEH_begin_bn_gather5: +.cfi_startproc + +.byte 0x4c,0x8d,0x14,0x24 +.byte 0x48,0x81,0xec,0x08,0x01,0x00,0x00 + leaq .Linc(%rip),%rax + andq $-16,%rsp + + movd %ecx,%xmm5 + movdqa 0(%rax),%xmm0 + movdqa 16(%rax),%xmm1 + leaq 128(%rdx),%r11 + leaq 128(%rsp),%rax + + pshufd $0,%xmm5,%xmm5 + movdqa %xmm1,%xmm4 + movdqa %xmm1,%xmm2 + paddd %xmm0,%xmm1 + pcmpeqd %xmm5,%xmm0 + movdqa %xmm4,%xmm3 + + paddd %xmm1,%xmm2 + pcmpeqd %xmm5,%xmm1 + movdqa %xmm0,-128(%rax) + movdqa %xmm4,%xmm0 + + paddd %xmm2,%xmm3 + pcmpeqd %xmm5,%xmm2 + movdqa %xmm1,-112(%rax) + movdqa %xmm4,%xmm1 + + paddd %xmm3,%xmm0 + pcmpeqd %xmm5,%xmm3 + movdqa %xmm2,-96(%rax) + movdqa %xmm4,%xmm2 + paddd %xmm0,%xmm1 + pcmpeqd %xmm5,%xmm0 + movdqa %xmm3,-80(%rax) + movdqa %xmm4,%xmm3 + + paddd %xmm1,%xmm2 + pcmpeqd %xmm5,%xmm1 + movdqa %xmm0,-64(%rax) + movdqa %xmm4,%xmm0 + + paddd %xmm2,%xmm3 + pcmpeqd %xmm5,%xmm2 + movdqa %xmm1,-48(%rax) + movdqa %xmm4,%xmm1 + + paddd %xmm3,%xmm0 + pcmpeqd %xmm5,%xmm3 + movdqa %xmm2,-32(%rax) + movdqa %xmm4,%xmm2 + paddd %xmm0,%xmm1 + pcmpeqd %xmm5,%xmm0 + movdqa %xmm3,-16(%rax) + movdqa %xmm4,%xmm3 + + paddd %xmm1,%xmm2 + pcmpeqd %xmm5,%xmm1 + movdqa %xmm0,0(%rax) + movdqa %xmm4,%xmm0 + + paddd %xmm2,%xmm3 + pcmpeqd %xmm5,%xmm2 + movdqa %xmm1,16(%rax) + movdqa %xmm4,%xmm1 + + paddd %xmm3,%xmm0 + pcmpeqd %xmm5,%xmm3 + movdqa %xmm2,32(%rax) + movdqa %xmm4,%xmm2 + paddd %xmm0,%xmm1 + pcmpeqd %xmm5,%xmm0 + movdqa %xmm3,48(%rax) + movdqa %xmm4,%xmm3 + + paddd %xmm1,%xmm2 + pcmpeqd %xmm5,%xmm1 + movdqa %xmm0,64(%rax) + movdqa %xmm4,%xmm0 + + paddd %xmm2,%xmm3 + pcmpeqd %xmm5,%xmm2 + movdqa %xmm1,80(%rax) + movdqa %xmm4,%xmm1 + + paddd %xmm3,%xmm0 + pcmpeqd %xmm5,%xmm3 + movdqa %xmm2,96(%rax) + movdqa %xmm4,%xmm2 + movdqa %xmm3,112(%rax) + jmp .Lgather + +.align 32 +.Lgather: + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + movdqa -128(%r11),%xmm0 + movdqa -112(%r11),%xmm1 + movdqa -96(%r11),%xmm2 + pand -128(%rax),%xmm0 + movdqa -80(%r11),%xmm3 + pand -112(%rax),%xmm1 + por %xmm0,%xmm4 + pand -96(%rax),%xmm2 + por %xmm1,%xmm5 + pand -80(%rax),%xmm3 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + movdqa -64(%r11),%xmm0 + movdqa -48(%r11),%xmm1 + movdqa -32(%r11),%xmm2 + pand -64(%rax),%xmm0 + movdqa -16(%r11),%xmm3 + pand -48(%rax),%xmm1 + por %xmm0,%xmm4 + pand -32(%rax),%xmm2 + por %xmm1,%xmm5 + pand -16(%rax),%xmm3 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + movdqa 0(%r11),%xmm0 + movdqa 16(%r11),%xmm1 + movdqa 32(%r11),%xmm2 + pand 0(%rax),%xmm0 + movdqa 48(%r11),%xmm3 + pand 16(%rax),%xmm1 + por %xmm0,%xmm4 + pand 32(%rax),%xmm2 + por %xmm1,%xmm5 + pand 48(%rax),%xmm3 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + movdqa 64(%r11),%xmm0 + movdqa 80(%r11),%xmm1 + movdqa 96(%r11),%xmm2 + pand 64(%rax),%xmm0 + movdqa 112(%r11),%xmm3 + pand 80(%rax),%xmm1 + por %xmm0,%xmm4 + pand 96(%rax),%xmm2 + por %xmm1,%xmm5 + pand 112(%rax),%xmm3 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + por %xmm5,%xmm4 + leaq 256(%r11),%r11 + pshufd $0x4e,%xmm4,%xmm0 + por %xmm4,%xmm0 + movq %xmm0,(%rdi) + leaq 8(%rdi),%rdi + subl $1,%esi + jnz .Lgather + + leaq (%r10),%rsp + .byte 0xf3,0xc3 +.LSEH_end_bn_gather5: +.cfi_endproc +.size bn_gather5,.-bn_gather5 +.align 64 +.Linc: +.long 0,0, 1,1 +.long 2,2, 2,2 +.byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,119,105,116,104,32,115,99,97,116,116,101,114,47,103,97,116,104,101,114,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 diff --git a/vere/ext/openssl/gen/linux-x86_64/crypto/camellia/cmll-x86_64.s b/vere/ext/openssl/gen/linux-x86_64/crypto/camellia/cmll-x86_64.s new file mode 100644 index 0000000..92056f8 --- /dev/null +++ b/vere/ext/openssl/gen/linux-x86_64/crypto/camellia/cmll-x86_64.s @@ -0,0 +1,1924 @@ +.text + + +.globl Camellia_EncryptBlock +.type Camellia_EncryptBlock,@function +.align 16 +Camellia_EncryptBlock: +.cfi_startproc + movl $128,%eax + subl %edi,%eax + movl $3,%edi + adcl $0,%edi + jmp .Lenc_rounds +.cfi_endproc +.size Camellia_EncryptBlock,.-Camellia_EncryptBlock + +.globl Camellia_EncryptBlock_Rounds +.type Camellia_EncryptBlock_Rounds,@function +.align 16 +.Lenc_rounds: +Camellia_EncryptBlock_Rounds: +.cfi_startproc + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-32 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-40 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-48 +.Lenc_prologue: + + + movq %rcx,%r13 + movq %rdx,%r14 + + shll $6,%edi + leaq .LCamellia_SBOX(%rip),%rbp + leaq (%r14,%rdi,1),%r15 + + movl 0(%rsi),%r8d + movl 4(%rsi),%r9d + movl 8(%rsi),%r10d + bswapl %r8d + movl 12(%rsi),%r11d + bswapl %r9d + bswapl %r10d + bswapl %r11d + + call _x86_64_Camellia_encrypt + + bswapl %r8d + bswapl %r9d + bswapl %r10d + movl %r8d,0(%r13) + bswapl %r11d + movl %r9d,4(%r13) + movl %r10d,8(%r13) + movl %r11d,12(%r13) + + movq 0(%rsp),%r15 +.cfi_restore %r15 + movq 8(%rsp),%r14 +.cfi_restore %r14 + movq 16(%rsp),%r13 +.cfi_restore %r13 + movq 24(%rsp),%rbp +.cfi_restore %rbp + movq 32(%rsp),%rbx +.cfi_restore %rbx + leaq 40(%rsp),%rsp +.cfi_adjust_cfa_offset -40 +.Lenc_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size Camellia_EncryptBlock_Rounds,.-Camellia_EncryptBlock_Rounds + +.type _x86_64_Camellia_encrypt,@function +.align 16 +_x86_64_Camellia_encrypt: +.cfi_startproc + xorl 0(%r14),%r9d + xorl 4(%r14),%r8d + xorl 8(%r14),%r11d + xorl 12(%r14),%r10d +.align 16 +.Leloop: + movl 16(%r14),%ebx + movl 20(%r14),%eax + + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 24(%r14),%ebx + movl 28(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 32(%r14),%ebx + movl 36(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 40(%r14),%ebx + movl 44(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 48(%r14),%ebx + movl 52(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 56(%r14),%ebx + movl 60(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 64(%r14),%ebx + movl 68(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + leaq 64(%r14),%r14 + cmpq %r15,%r14 + movl 8(%r14),%edx + movl 12(%r14),%ecx + je .Ledone + + andl %r8d,%eax + orl %r11d,%edx + roll $1,%eax + xorl %edx,%r10d + xorl %eax,%r9d + andl %r10d,%ecx + orl %r9d,%ebx + roll $1,%ecx + xorl %ebx,%r8d + xorl %ecx,%r11d + jmp .Leloop + +.align 16 +.Ledone: + xorl %r10d,%eax + xorl %r11d,%ebx + xorl %r8d,%ecx + xorl %r9d,%edx + + movl %eax,%r8d + movl %ebx,%r9d + movl %ecx,%r10d + movl %edx,%r11d + +.byte 0xf3,0xc3 +.cfi_endproc +.size _x86_64_Camellia_encrypt,.-_x86_64_Camellia_encrypt + + +.globl Camellia_DecryptBlock +.type Camellia_DecryptBlock,@function +.align 16 +Camellia_DecryptBlock: +.cfi_startproc + movl $128,%eax + subl %edi,%eax + movl $3,%edi + adcl $0,%edi + jmp .Ldec_rounds +.cfi_endproc +.size Camellia_DecryptBlock,.-Camellia_DecryptBlock + +.globl Camellia_DecryptBlock_Rounds +.type Camellia_DecryptBlock_Rounds,@function +.align 16 +.Ldec_rounds: +Camellia_DecryptBlock_Rounds: +.cfi_startproc + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-32 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-40 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-48 +.Ldec_prologue: + + + movq %rcx,%r13 + movq %rdx,%r15 + + shll $6,%edi + leaq .LCamellia_SBOX(%rip),%rbp + leaq (%r15,%rdi,1),%r14 + + movl 0(%rsi),%r8d + movl 4(%rsi),%r9d + movl 8(%rsi),%r10d + bswapl %r8d + movl 12(%rsi),%r11d + bswapl %r9d + bswapl %r10d + bswapl %r11d + + call _x86_64_Camellia_decrypt + + bswapl %r8d + bswapl %r9d + bswapl %r10d + movl %r8d,0(%r13) + bswapl %r11d + movl %r9d,4(%r13) + movl %r10d,8(%r13) + movl %r11d,12(%r13) + + movq 0(%rsp),%r15 +.cfi_restore %r15 + movq 8(%rsp),%r14 +.cfi_restore %r14 + movq 16(%rsp),%r13 +.cfi_restore %r13 + movq 24(%rsp),%rbp +.cfi_restore %rbp + movq 32(%rsp),%rbx +.cfi_restore %rbx + leaq 40(%rsp),%rsp +.cfi_adjust_cfa_offset -40 +.Ldec_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size Camellia_DecryptBlock_Rounds,.-Camellia_DecryptBlock_Rounds + +.type _x86_64_Camellia_decrypt,@function +.align 16 +_x86_64_Camellia_decrypt: +.cfi_startproc + xorl 0(%r14),%r9d + xorl 4(%r14),%r8d + xorl 8(%r14),%r11d + xorl 12(%r14),%r10d +.align 16 +.Ldloop: + movl -8(%r14),%ebx + movl -4(%r14),%eax + + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl -16(%r14),%ebx + movl -12(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl -24(%r14),%ebx + movl -20(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl -32(%r14),%ebx + movl -28(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl -40(%r14),%ebx + movl -36(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl -48(%r14),%ebx + movl -44(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl -56(%r14),%ebx + movl -52(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + leaq -64(%r14),%r14 + cmpq %r15,%r14 + movl 0(%r14),%edx + movl 4(%r14),%ecx + je .Lddone + + andl %r8d,%eax + orl %r11d,%edx + roll $1,%eax + xorl %edx,%r10d + xorl %eax,%r9d + andl %r10d,%ecx + orl %r9d,%ebx + roll $1,%ecx + xorl %ebx,%r8d + xorl %ecx,%r11d + + jmp .Ldloop + +.align 16 +.Lddone: + xorl %r10d,%ecx + xorl %r11d,%edx + xorl %r8d,%eax + xorl %r9d,%ebx + + movl %ecx,%r8d + movl %edx,%r9d + movl %eax,%r10d + movl %ebx,%r11d + +.byte 0xf3,0xc3 +.cfi_endproc +.size _x86_64_Camellia_decrypt,.-_x86_64_Camellia_decrypt +.globl Camellia_Ekeygen +.type Camellia_Ekeygen,@function +.align 16 +Camellia_Ekeygen: +.cfi_startproc + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-32 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-40 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-48 +.Lkey_prologue: + + movl %edi,%r15d + movq %rdx,%r13 + + movl 0(%rsi),%r8d + movl 4(%rsi),%r9d + movl 8(%rsi),%r10d + movl 12(%rsi),%r11d + + bswapl %r8d + bswapl %r9d + bswapl %r10d + bswapl %r11d + movl %r9d,0(%r13) + movl %r8d,4(%r13) + movl %r11d,8(%r13) + movl %r10d,12(%r13) + cmpq $128,%r15 + je .L1st128 + + movl 16(%rsi),%r8d + movl 20(%rsi),%r9d + cmpq $192,%r15 + je .L1st192 + movl 24(%rsi),%r10d + movl 28(%rsi),%r11d + jmp .L1st256 +.L1st192: + movl %r8d,%r10d + movl %r9d,%r11d + notl %r10d + notl %r11d +.L1st256: + bswapl %r8d + bswapl %r9d + bswapl %r10d + bswapl %r11d + movl %r9d,32(%r13) + movl %r8d,36(%r13) + movl %r11d,40(%r13) + movl %r10d,44(%r13) + xorl 0(%r13),%r9d + xorl 4(%r13),%r8d + xorl 8(%r13),%r11d + xorl 12(%r13),%r10d + +.L1st128: + leaq .LCamellia_SIGMA(%rip),%r14 + leaq .LCamellia_SBOX(%rip),%rbp + + movl 0(%r14),%ebx + movl 4(%r14),%eax + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 8(%r14),%ebx + movl 12(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 16(%r14),%ebx + movl 20(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + xorl 0(%r13),%r9d + xorl 4(%r13),%r8d + xorl 8(%r13),%r11d + xorl 12(%r13),%r10d + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 24(%r14),%ebx + movl 28(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 32(%r14),%ebx + movl 36(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + cmpq $128,%r15 + jne .L2nd256 + + leaq 128(%r13),%r13 + shlq $32,%r8 + shlq $32,%r10 + orq %r9,%r8 + orq %r11,%r10 + movq -128(%r13),%rax + movq -120(%r13),%rbx + movq %r8,-112(%r13) + movq %r10,-104(%r13) + movq %rax,%r11 + shlq $15,%rax + movq %rbx,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%rax + shlq $15,%rbx + orq %r11,%rbx + movq %rax,-96(%r13) + movq %rbx,-88(%r13) + movq %r8,%r11 + shlq $15,%r8 + movq %r10,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%r8 + shlq $15,%r10 + orq %r11,%r10 + movq %r8,-80(%r13) + movq %r10,-72(%r13) + movq %r8,%r11 + shlq $15,%r8 + movq %r10,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%r8 + shlq $15,%r10 + orq %r11,%r10 + movq %r8,-64(%r13) + movq %r10,-56(%r13) + movq %rax,%r11 + shlq $30,%rax + movq %rbx,%r9 + shrq $34,%r9 + shrq $34,%r11 + orq %r9,%rax + shlq $30,%rbx + orq %r11,%rbx + movq %rax,-48(%r13) + movq %rbx,-40(%r13) + movq %r8,%r11 + shlq $15,%r8 + movq %r10,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%r8 + shlq $15,%r10 + orq %r11,%r10 + movq %r8,-32(%r13) + movq %rax,%r11 + shlq $15,%rax + movq %rbx,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%rax + shlq $15,%rbx + orq %r11,%rbx + movq %rbx,-24(%r13) + movq %r8,%r11 + shlq $15,%r8 + movq %r10,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%r8 + shlq $15,%r10 + orq %r11,%r10 + movq %r8,-16(%r13) + movq %r10,-8(%r13) + movq %rax,%r11 + shlq $17,%rax + movq %rbx,%r9 + shrq $47,%r9 + shrq $47,%r11 + orq %r9,%rax + shlq $17,%rbx + orq %r11,%rbx + movq %rax,0(%r13) + movq %rbx,8(%r13) + movq %rax,%r11 + shlq $17,%rax + movq %rbx,%r9 + shrq $47,%r9 + shrq $47,%r11 + orq %r9,%rax + shlq $17,%rbx + orq %r11,%rbx + movq %rax,16(%r13) + movq %rbx,24(%r13) + movq %r8,%r11 + shlq $34,%r8 + movq %r10,%r9 + shrq $30,%r9 + shrq $30,%r11 + orq %r9,%r8 + shlq $34,%r10 + orq %r11,%r10 + movq %r8,32(%r13) + movq %r10,40(%r13) + movq %rax,%r11 + shlq $17,%rax + movq %rbx,%r9 + shrq $47,%r9 + shrq $47,%r11 + orq %r9,%rax + shlq $17,%rbx + orq %r11,%rbx + movq %rax,48(%r13) + movq %rbx,56(%r13) + movq %r8,%r11 + shlq $17,%r8 + movq %r10,%r9 + shrq $47,%r9 + shrq $47,%r11 + orq %r9,%r8 + shlq $17,%r10 + orq %r11,%r10 + movq %r8,64(%r13) + movq %r10,72(%r13) + movl $3,%eax + jmp .Ldone +.align 16 +.L2nd256: + movl %r9d,48(%r13) + movl %r8d,52(%r13) + movl %r11d,56(%r13) + movl %r10d,60(%r13) + xorl 32(%r13),%r9d + xorl 36(%r13),%r8d + xorl 40(%r13),%r11d + xorl 44(%r13),%r10d + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 40(%r14),%ebx + movl 44(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 48(%r14),%ebx + movl 52(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + movq 0(%r13),%rax + movq 8(%r13),%rbx + movq 32(%r13),%rcx + movq 40(%r13),%rdx + movq 48(%r13),%r14 + movq 56(%r13),%r15 + leaq 128(%r13),%r13 + shlq $32,%r8 + shlq $32,%r10 + orq %r9,%r8 + orq %r11,%r10 + movq %r8,-112(%r13) + movq %r10,-104(%r13) + movq %rcx,%r11 + shlq $15,%rcx + movq %rdx,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%rcx + shlq $15,%rdx + orq %r11,%rdx + movq %rcx,-96(%r13) + movq %rdx,-88(%r13) + movq %r14,%r11 + shlq $15,%r14 + movq %r15,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%r14 + shlq $15,%r15 + orq %r11,%r15 + movq %r14,-80(%r13) + movq %r15,-72(%r13) + movq %rcx,%r11 + shlq $15,%rcx + movq %rdx,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%rcx + shlq $15,%rdx + orq %r11,%rdx + movq %rcx,-64(%r13) + movq %rdx,-56(%r13) + movq %r8,%r11 + shlq $30,%r8 + movq %r10,%r9 + shrq $34,%r9 + shrq $34,%r11 + orq %r9,%r8 + shlq $30,%r10 + orq %r11,%r10 + movq %r8,-48(%r13) + movq %r10,-40(%r13) + movq %rax,%r11 + shlq $45,%rax + movq %rbx,%r9 + shrq $19,%r9 + shrq $19,%r11 + orq %r9,%rax + shlq $45,%rbx + orq %r11,%rbx + movq %rax,-32(%r13) + movq %rbx,-24(%r13) + movq %r14,%r11 + shlq $30,%r14 + movq %r15,%r9 + shrq $34,%r9 + shrq $34,%r11 + orq %r9,%r14 + shlq $30,%r15 + orq %r11,%r15 + movq %r14,-16(%r13) + movq %r15,-8(%r13) + movq %rax,%r11 + shlq $15,%rax + movq %rbx,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%rax + shlq $15,%rbx + orq %r11,%rbx + movq %rax,0(%r13) + movq %rbx,8(%r13) + movq %rcx,%r11 + shlq $30,%rcx + movq %rdx,%r9 + shrq $34,%r9 + shrq $34,%r11 + orq %r9,%rcx + shlq $30,%rdx + orq %r11,%rdx + movq %rcx,16(%r13) + movq %rdx,24(%r13) + movq %r8,%r11 + shlq $30,%r8 + movq %r10,%r9 + shrq $34,%r9 + shrq $34,%r11 + orq %r9,%r8 + shlq $30,%r10 + orq %r11,%r10 + movq %r8,32(%r13) + movq %r10,40(%r13) + movq %rax,%r11 + shlq $17,%rax + movq %rbx,%r9 + shrq $47,%r9 + shrq $47,%r11 + orq %r9,%rax + shlq $17,%rbx + orq %r11,%rbx + movq %rax,48(%r13) + movq %rbx,56(%r13) + movq %r14,%r11 + shlq $32,%r14 + movq %r15,%r9 + shrq $32,%r9 + shrq $32,%r11 + orq %r9,%r14 + shlq $32,%r15 + orq %r11,%r15 + movq %r14,64(%r13) + movq %r15,72(%r13) + movq %rcx,%r11 + shlq $34,%rcx + movq %rdx,%r9 + shrq $30,%r9 + shrq $30,%r11 + orq %r9,%rcx + shlq $34,%rdx + orq %r11,%rdx + movq %rcx,80(%r13) + movq %rdx,88(%r13) + movq %r14,%r11 + shlq $17,%r14 + movq %r15,%r9 + shrq $47,%r9 + shrq $47,%r11 + orq %r9,%r14 + shlq $17,%r15 + orq %r11,%r15 + movq %r14,96(%r13) + movq %r15,104(%r13) + movq %rax,%r11 + shlq $34,%rax + movq %rbx,%r9 + shrq $30,%r9 + shrq $30,%r11 + orq %r9,%rax + shlq $34,%rbx + orq %r11,%rbx + movq %rax,112(%r13) + movq %rbx,120(%r13) + movq %r8,%r11 + shlq $51,%r8 + movq %r10,%r9 + shrq $13,%r9 + shrq $13,%r11 + orq %r9,%r8 + shlq $51,%r10 + orq %r11,%r10 + movq %r8,128(%r13) + movq %r10,136(%r13) + movl $4,%eax +.Ldone: + movq 0(%rsp),%r15 +.cfi_restore %r15 + movq 8(%rsp),%r14 +.cfi_restore %r14 + movq 16(%rsp),%r13 +.cfi_restore %r13 + movq 24(%rsp),%rbp +.cfi_restore %rbp + movq 32(%rsp),%rbx +.cfi_restore %rbx + leaq 40(%rsp),%rsp +.cfi_adjust_cfa_offset -40 +.Lkey_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size Camellia_Ekeygen,.-Camellia_Ekeygen +.align 64 +.LCamellia_SIGMA: +.long 0x3bcc908b, 0xa09e667f, 0x4caa73b2, 0xb67ae858 +.long 0xe94f82be, 0xc6ef372f, 0xf1d36f1c, 0x54ff53a5 +.long 0xde682d1d, 0x10e527fa, 0xb3e6c1fd, 0xb05688c2 +.long 0, 0, 0, 0 +.LCamellia_SBOX: +.long 0x70707000,0x70700070 +.long 0x82828200,0x2c2c002c +.long 0x2c2c2c00,0xb3b300b3 +.long 0xececec00,0xc0c000c0 +.long 0xb3b3b300,0xe4e400e4 +.long 0x27272700,0x57570057 +.long 0xc0c0c000,0xeaea00ea +.long 0xe5e5e500,0xaeae00ae +.long 0xe4e4e400,0x23230023 +.long 0x85858500,0x6b6b006b +.long 0x57575700,0x45450045 +.long 0x35353500,0xa5a500a5 +.long 0xeaeaea00,0xeded00ed +.long 0x0c0c0c00,0x4f4f004f +.long 0xaeaeae00,0x1d1d001d +.long 0x41414100,0x92920092 +.long 0x23232300,0x86860086 +.long 0xefefef00,0xafaf00af +.long 0x6b6b6b00,0x7c7c007c +.long 0x93939300,0x1f1f001f +.long 0x45454500,0x3e3e003e +.long 0x19191900,0xdcdc00dc +.long 0xa5a5a500,0x5e5e005e +.long 0x21212100,0x0b0b000b +.long 0xededed00,0xa6a600a6 +.long 0x0e0e0e00,0x39390039 +.long 0x4f4f4f00,0xd5d500d5 +.long 0x4e4e4e00,0x5d5d005d +.long 0x1d1d1d00,0xd9d900d9 +.long 0x65656500,0x5a5a005a +.long 0x92929200,0x51510051 +.long 0xbdbdbd00,0x6c6c006c +.long 0x86868600,0x8b8b008b +.long 0xb8b8b800,0x9a9a009a +.long 0xafafaf00,0xfbfb00fb +.long 0x8f8f8f00,0xb0b000b0 +.long 0x7c7c7c00,0x74740074 +.long 0xebebeb00,0x2b2b002b +.long 0x1f1f1f00,0xf0f000f0 +.long 0xcecece00,0x84840084 +.long 0x3e3e3e00,0xdfdf00df +.long 0x30303000,0xcbcb00cb +.long 0xdcdcdc00,0x34340034 +.long 0x5f5f5f00,0x76760076 +.long 0x5e5e5e00,0x6d6d006d +.long 0xc5c5c500,0xa9a900a9 +.long 0x0b0b0b00,0xd1d100d1 +.long 0x1a1a1a00,0x04040004 +.long 0xa6a6a600,0x14140014 +.long 0xe1e1e100,0x3a3a003a +.long 0x39393900,0xdede00de +.long 0xcacaca00,0x11110011 +.long 0xd5d5d500,0x32320032 +.long 0x47474700,0x9c9c009c +.long 0x5d5d5d00,0x53530053 +.long 0x3d3d3d00,0xf2f200f2 +.long 0xd9d9d900,0xfefe00fe +.long 0x01010100,0xcfcf00cf +.long 0x5a5a5a00,0xc3c300c3 +.long 0xd6d6d600,0x7a7a007a +.long 0x51515100,0x24240024 +.long 0x56565600,0xe8e800e8 +.long 0x6c6c6c00,0x60600060 +.long 0x4d4d4d00,0x69690069 +.long 0x8b8b8b00,0xaaaa00aa +.long 0x0d0d0d00,0xa0a000a0 +.long 0x9a9a9a00,0xa1a100a1 +.long 0x66666600,0x62620062 +.long 0xfbfbfb00,0x54540054 +.long 0xcccccc00,0x1e1e001e +.long 0xb0b0b000,0xe0e000e0 +.long 0x2d2d2d00,0x64640064 +.long 0x74747400,0x10100010 +.long 0x12121200,0x00000000 +.long 0x2b2b2b00,0xa3a300a3 +.long 0x20202000,0x75750075 +.long 0xf0f0f000,0x8a8a008a +.long 0xb1b1b100,0xe6e600e6 +.long 0x84848400,0x09090009 +.long 0x99999900,0xdddd00dd +.long 0xdfdfdf00,0x87870087 +.long 0x4c4c4c00,0x83830083 +.long 0xcbcbcb00,0xcdcd00cd +.long 0xc2c2c200,0x90900090 +.long 0x34343400,0x73730073 +.long 0x7e7e7e00,0xf6f600f6 +.long 0x76767600,0x9d9d009d +.long 0x05050500,0xbfbf00bf +.long 0x6d6d6d00,0x52520052 +.long 0xb7b7b700,0xd8d800d8 +.long 0xa9a9a900,0xc8c800c8 +.long 0x31313100,0xc6c600c6 +.long 0xd1d1d100,0x81810081 +.long 0x17171700,0x6f6f006f +.long 0x04040400,0x13130013 +.long 0xd7d7d700,0x63630063 +.long 0x14141400,0xe9e900e9 +.long 0x58585800,0xa7a700a7 +.long 0x3a3a3a00,0x9f9f009f +.long 0x61616100,0xbcbc00bc +.long 0xdedede00,0x29290029 +.long 0x1b1b1b00,0xf9f900f9 +.long 0x11111100,0x2f2f002f +.long 0x1c1c1c00,0xb4b400b4 +.long 0x32323200,0x78780078 +.long 0x0f0f0f00,0x06060006 +.long 0x9c9c9c00,0xe7e700e7 +.long 0x16161600,0x71710071 +.long 0x53535300,0xd4d400d4 +.long 0x18181800,0xabab00ab +.long 0xf2f2f200,0x88880088 +.long 0x22222200,0x8d8d008d +.long 0xfefefe00,0x72720072 +.long 0x44444400,0xb9b900b9 +.long 0xcfcfcf00,0xf8f800f8 +.long 0xb2b2b200,0xacac00ac +.long 0xc3c3c300,0x36360036 +.long 0xb5b5b500,0x2a2a002a +.long 0x7a7a7a00,0x3c3c003c +.long 0x91919100,0xf1f100f1 +.long 0x24242400,0x40400040 +.long 0x08080800,0xd3d300d3 +.long 0xe8e8e800,0xbbbb00bb +.long 0xa8a8a800,0x43430043 +.long 0x60606000,0x15150015 +.long 0xfcfcfc00,0xadad00ad +.long 0x69696900,0x77770077 +.long 0x50505000,0x80800080 +.long 0xaaaaaa00,0x82820082 +.long 0xd0d0d000,0xecec00ec +.long 0xa0a0a000,0x27270027 +.long 0x7d7d7d00,0xe5e500e5 +.long 0xa1a1a100,0x85850085 +.long 0x89898900,0x35350035 +.long 0x62626200,0x0c0c000c +.long 0x97979700,0x41410041 +.long 0x54545400,0xefef00ef +.long 0x5b5b5b00,0x93930093 +.long 0x1e1e1e00,0x19190019 +.long 0x95959500,0x21210021 +.long 0xe0e0e000,0x0e0e000e +.long 0xffffff00,0x4e4e004e +.long 0x64646400,0x65650065 +.long 0xd2d2d200,0xbdbd00bd +.long 0x10101000,0xb8b800b8 +.long 0xc4c4c400,0x8f8f008f +.long 0x00000000,0xebeb00eb +.long 0x48484800,0xcece00ce +.long 0xa3a3a300,0x30300030 +.long 0xf7f7f700,0x5f5f005f +.long 0x75757500,0xc5c500c5 +.long 0xdbdbdb00,0x1a1a001a +.long 0x8a8a8a00,0xe1e100e1 +.long 0x03030300,0xcaca00ca +.long 0xe6e6e600,0x47470047 +.long 0xdadada00,0x3d3d003d +.long 0x09090900,0x01010001 +.long 0x3f3f3f00,0xd6d600d6 +.long 0xdddddd00,0x56560056 +.long 0x94949400,0x4d4d004d +.long 0x87878700,0x0d0d000d +.long 0x5c5c5c00,0x66660066 +.long 0x83838300,0xcccc00cc +.long 0x02020200,0x2d2d002d +.long 0xcdcdcd00,0x12120012 +.long 0x4a4a4a00,0x20200020 +.long 0x90909000,0xb1b100b1 +.long 0x33333300,0x99990099 +.long 0x73737300,0x4c4c004c +.long 0x67676700,0xc2c200c2 +.long 0xf6f6f600,0x7e7e007e +.long 0xf3f3f300,0x05050005 +.long 0x9d9d9d00,0xb7b700b7 +.long 0x7f7f7f00,0x31310031 +.long 0xbfbfbf00,0x17170017 +.long 0xe2e2e200,0xd7d700d7 +.long 0x52525200,0x58580058 +.long 0x9b9b9b00,0x61610061 +.long 0xd8d8d800,0x1b1b001b +.long 0x26262600,0x1c1c001c +.long 0xc8c8c800,0x0f0f000f +.long 0x37373700,0x16160016 +.long 0xc6c6c600,0x18180018 +.long 0x3b3b3b00,0x22220022 +.long 0x81818100,0x44440044 +.long 0x96969600,0xb2b200b2 +.long 0x6f6f6f00,0xb5b500b5 +.long 0x4b4b4b00,0x91910091 +.long 0x13131300,0x08080008 +.long 0xbebebe00,0xa8a800a8 +.long 0x63636300,0xfcfc00fc +.long 0x2e2e2e00,0x50500050 +.long 0xe9e9e900,0xd0d000d0 +.long 0x79797900,0x7d7d007d +.long 0xa7a7a700,0x89890089 +.long 0x8c8c8c00,0x97970097 +.long 0x9f9f9f00,0x5b5b005b +.long 0x6e6e6e00,0x95950095 +.long 0xbcbcbc00,0xffff00ff +.long 0x8e8e8e00,0xd2d200d2 +.long 0x29292900,0xc4c400c4 +.long 0xf5f5f500,0x48480048 +.long 0xf9f9f900,0xf7f700f7 +.long 0xb6b6b600,0xdbdb00db +.long 0x2f2f2f00,0x03030003 +.long 0xfdfdfd00,0xdada00da +.long 0xb4b4b400,0x3f3f003f +.long 0x59595900,0x94940094 +.long 0x78787800,0x5c5c005c +.long 0x98989800,0x02020002 +.long 0x06060600,0x4a4a004a +.long 0x6a6a6a00,0x33330033 +.long 0xe7e7e700,0x67670067 +.long 0x46464600,0xf3f300f3 +.long 0x71717100,0x7f7f007f +.long 0xbababa00,0xe2e200e2 +.long 0xd4d4d400,0x9b9b009b +.long 0x25252500,0x26260026 +.long 0xababab00,0x37370037 +.long 0x42424200,0x3b3b003b +.long 0x88888800,0x96960096 +.long 0xa2a2a200,0x4b4b004b +.long 0x8d8d8d00,0xbebe00be +.long 0xfafafa00,0x2e2e002e +.long 0x72727200,0x79790079 +.long 0x07070700,0x8c8c008c +.long 0xb9b9b900,0x6e6e006e +.long 0x55555500,0x8e8e008e +.long 0xf8f8f800,0xf5f500f5 +.long 0xeeeeee00,0xb6b600b6 +.long 0xacacac00,0xfdfd00fd +.long 0x0a0a0a00,0x59590059 +.long 0x36363600,0x98980098 +.long 0x49494900,0x6a6a006a +.long 0x2a2a2a00,0x46460046 +.long 0x68686800,0xbaba00ba +.long 0x3c3c3c00,0x25250025 +.long 0x38383800,0x42420042 +.long 0xf1f1f100,0xa2a200a2 +.long 0xa4a4a400,0xfafa00fa +.long 0x40404000,0x07070007 +.long 0x28282800,0x55550055 +.long 0xd3d3d300,0xeeee00ee +.long 0x7b7b7b00,0x0a0a000a +.long 0xbbbbbb00,0x49490049 +.long 0xc9c9c900,0x68680068 +.long 0x43434300,0x38380038 +.long 0xc1c1c100,0xa4a400a4 +.long 0x15151500,0x28280028 +.long 0xe3e3e300,0x7b7b007b +.long 0xadadad00,0xc9c900c9 +.long 0xf4f4f400,0xc1c100c1 +.long 0x77777700,0xe3e300e3 +.long 0xc7c7c700,0xf4f400f4 +.long 0x80808000,0xc7c700c7 +.long 0x9e9e9e00,0x9e9e009e +.long 0x00e0e0e0,0x38003838 +.long 0x00050505,0x41004141 +.long 0x00585858,0x16001616 +.long 0x00d9d9d9,0x76007676 +.long 0x00676767,0xd900d9d9 +.long 0x004e4e4e,0x93009393 +.long 0x00818181,0x60006060 +.long 0x00cbcbcb,0xf200f2f2 +.long 0x00c9c9c9,0x72007272 +.long 0x000b0b0b,0xc200c2c2 +.long 0x00aeaeae,0xab00abab +.long 0x006a6a6a,0x9a009a9a +.long 0x00d5d5d5,0x75007575 +.long 0x00181818,0x06000606 +.long 0x005d5d5d,0x57005757 +.long 0x00828282,0xa000a0a0 +.long 0x00464646,0x91009191 +.long 0x00dfdfdf,0xf700f7f7 +.long 0x00d6d6d6,0xb500b5b5 +.long 0x00272727,0xc900c9c9 +.long 0x008a8a8a,0xa200a2a2 +.long 0x00323232,0x8c008c8c +.long 0x004b4b4b,0xd200d2d2 +.long 0x00424242,0x90009090 +.long 0x00dbdbdb,0xf600f6f6 +.long 0x001c1c1c,0x07000707 +.long 0x009e9e9e,0xa700a7a7 +.long 0x009c9c9c,0x27002727 +.long 0x003a3a3a,0x8e008e8e +.long 0x00cacaca,0xb200b2b2 +.long 0x00252525,0x49004949 +.long 0x007b7b7b,0xde00dede +.long 0x000d0d0d,0x43004343 +.long 0x00717171,0x5c005c5c +.long 0x005f5f5f,0xd700d7d7 +.long 0x001f1f1f,0xc700c7c7 +.long 0x00f8f8f8,0x3e003e3e +.long 0x00d7d7d7,0xf500f5f5 +.long 0x003e3e3e,0x8f008f8f +.long 0x009d9d9d,0x67006767 +.long 0x007c7c7c,0x1f001f1f +.long 0x00606060,0x18001818 +.long 0x00b9b9b9,0x6e006e6e +.long 0x00bebebe,0xaf00afaf +.long 0x00bcbcbc,0x2f002f2f +.long 0x008b8b8b,0xe200e2e2 +.long 0x00161616,0x85008585 +.long 0x00343434,0x0d000d0d +.long 0x004d4d4d,0x53005353 +.long 0x00c3c3c3,0xf000f0f0 +.long 0x00727272,0x9c009c9c +.long 0x00959595,0x65006565 +.long 0x00ababab,0xea00eaea +.long 0x008e8e8e,0xa300a3a3 +.long 0x00bababa,0xae00aeae +.long 0x007a7a7a,0x9e009e9e +.long 0x00b3b3b3,0xec00ecec +.long 0x00020202,0x80008080 +.long 0x00b4b4b4,0x2d002d2d +.long 0x00adadad,0x6b006b6b +.long 0x00a2a2a2,0xa800a8a8 +.long 0x00acacac,0x2b002b2b +.long 0x00d8d8d8,0x36003636 +.long 0x009a9a9a,0xa600a6a6 +.long 0x00171717,0xc500c5c5 +.long 0x001a1a1a,0x86008686 +.long 0x00353535,0x4d004d4d +.long 0x00cccccc,0x33003333 +.long 0x00f7f7f7,0xfd00fdfd +.long 0x00999999,0x66006666 +.long 0x00616161,0x58005858 +.long 0x005a5a5a,0x96009696 +.long 0x00e8e8e8,0x3a003a3a +.long 0x00242424,0x09000909 +.long 0x00565656,0x95009595 +.long 0x00404040,0x10001010 +.long 0x00e1e1e1,0x78007878 +.long 0x00636363,0xd800d8d8 +.long 0x00090909,0x42004242 +.long 0x00333333,0xcc00cccc +.long 0x00bfbfbf,0xef00efef +.long 0x00989898,0x26002626 +.long 0x00979797,0xe500e5e5 +.long 0x00858585,0x61006161 +.long 0x00686868,0x1a001a1a +.long 0x00fcfcfc,0x3f003f3f +.long 0x00ececec,0x3b003b3b +.long 0x000a0a0a,0x82008282 +.long 0x00dadada,0xb600b6b6 +.long 0x006f6f6f,0xdb00dbdb +.long 0x00535353,0xd400d4d4 +.long 0x00626262,0x98009898 +.long 0x00a3a3a3,0xe800e8e8 +.long 0x002e2e2e,0x8b008b8b +.long 0x00080808,0x02000202 +.long 0x00afafaf,0xeb00ebeb +.long 0x00282828,0x0a000a0a +.long 0x00b0b0b0,0x2c002c2c +.long 0x00747474,0x1d001d1d +.long 0x00c2c2c2,0xb000b0b0 +.long 0x00bdbdbd,0x6f006f6f +.long 0x00363636,0x8d008d8d +.long 0x00222222,0x88008888 +.long 0x00383838,0x0e000e0e +.long 0x00646464,0x19001919 +.long 0x001e1e1e,0x87008787 +.long 0x00393939,0x4e004e4e +.long 0x002c2c2c,0x0b000b0b +.long 0x00a6a6a6,0xa900a9a9 +.long 0x00303030,0x0c000c0c +.long 0x00e5e5e5,0x79007979 +.long 0x00444444,0x11001111 +.long 0x00fdfdfd,0x7f007f7f +.long 0x00888888,0x22002222 +.long 0x009f9f9f,0xe700e7e7 +.long 0x00656565,0x59005959 +.long 0x00878787,0xe100e1e1 +.long 0x006b6b6b,0xda00dada +.long 0x00f4f4f4,0x3d003d3d +.long 0x00232323,0xc800c8c8 +.long 0x00484848,0x12001212 +.long 0x00101010,0x04000404 +.long 0x00d1d1d1,0x74007474 +.long 0x00515151,0x54005454 +.long 0x00c0c0c0,0x30003030 +.long 0x00f9f9f9,0x7e007e7e +.long 0x00d2d2d2,0xb400b4b4 +.long 0x00a0a0a0,0x28002828 +.long 0x00555555,0x55005555 +.long 0x00a1a1a1,0x68006868 +.long 0x00414141,0x50005050 +.long 0x00fafafa,0xbe00bebe +.long 0x00434343,0xd000d0d0 +.long 0x00131313,0xc400c4c4 +.long 0x00c4c4c4,0x31003131 +.long 0x002f2f2f,0xcb00cbcb +.long 0x00a8a8a8,0x2a002a2a +.long 0x00b6b6b6,0xad00adad +.long 0x003c3c3c,0x0f000f0f +.long 0x002b2b2b,0xca00caca +.long 0x00c1c1c1,0x70007070 +.long 0x00ffffff,0xff00ffff +.long 0x00c8c8c8,0x32003232 +.long 0x00a5a5a5,0x69006969 +.long 0x00202020,0x08000808 +.long 0x00898989,0x62006262 +.long 0x00000000,0x00000000 +.long 0x00909090,0x24002424 +.long 0x00474747,0xd100d1d1 +.long 0x00efefef,0xfb00fbfb +.long 0x00eaeaea,0xba00baba +.long 0x00b7b7b7,0xed00eded +.long 0x00151515,0x45004545 +.long 0x00060606,0x81008181 +.long 0x00cdcdcd,0x73007373 +.long 0x00b5b5b5,0x6d006d6d +.long 0x00121212,0x84008484 +.long 0x007e7e7e,0x9f009f9f +.long 0x00bbbbbb,0xee00eeee +.long 0x00292929,0x4a004a4a +.long 0x000f0f0f,0xc300c3c3 +.long 0x00b8b8b8,0x2e002e2e +.long 0x00070707,0xc100c1c1 +.long 0x00040404,0x01000101 +.long 0x009b9b9b,0xe600e6e6 +.long 0x00949494,0x25002525 +.long 0x00212121,0x48004848 +.long 0x00666666,0x99009999 +.long 0x00e6e6e6,0xb900b9b9 +.long 0x00cecece,0xb300b3b3 +.long 0x00ededed,0x7b007b7b +.long 0x00e7e7e7,0xf900f9f9 +.long 0x003b3b3b,0xce00cece +.long 0x00fefefe,0xbf00bfbf +.long 0x007f7f7f,0xdf00dfdf +.long 0x00c5c5c5,0x71007171 +.long 0x00a4a4a4,0x29002929 +.long 0x00373737,0xcd00cdcd +.long 0x00b1b1b1,0x6c006c6c +.long 0x004c4c4c,0x13001313 +.long 0x00919191,0x64006464 +.long 0x006e6e6e,0x9b009b9b +.long 0x008d8d8d,0x63006363 +.long 0x00767676,0x9d009d9d +.long 0x00030303,0xc000c0c0 +.long 0x002d2d2d,0x4b004b4b +.long 0x00dedede,0xb700b7b7 +.long 0x00969696,0xa500a5a5 +.long 0x00262626,0x89008989 +.long 0x007d7d7d,0x5f005f5f +.long 0x00c6c6c6,0xb100b1b1 +.long 0x005c5c5c,0x17001717 +.long 0x00d3d3d3,0xf400f4f4 +.long 0x00f2f2f2,0xbc00bcbc +.long 0x004f4f4f,0xd300d3d3 +.long 0x00191919,0x46004646 +.long 0x003f3f3f,0xcf00cfcf +.long 0x00dcdcdc,0x37003737 +.long 0x00797979,0x5e005e5e +.long 0x001d1d1d,0x47004747 +.long 0x00525252,0x94009494 +.long 0x00ebebeb,0xfa00fafa +.long 0x00f3f3f3,0xfc00fcfc +.long 0x006d6d6d,0x5b005b5b +.long 0x005e5e5e,0x97009797 +.long 0x00fbfbfb,0xfe00fefe +.long 0x00696969,0x5a005a5a +.long 0x00b2b2b2,0xac00acac +.long 0x00f0f0f0,0x3c003c3c +.long 0x00313131,0x4c004c4c +.long 0x000c0c0c,0x03000303 +.long 0x00d4d4d4,0x35003535 +.long 0x00cfcfcf,0xf300f3f3 +.long 0x008c8c8c,0x23002323 +.long 0x00e2e2e2,0xb800b8b8 +.long 0x00757575,0x5d005d5d +.long 0x00a9a9a9,0x6a006a6a +.long 0x004a4a4a,0x92009292 +.long 0x00575757,0xd500d5d5 +.long 0x00848484,0x21002121 +.long 0x00111111,0x44004444 +.long 0x00454545,0x51005151 +.long 0x001b1b1b,0xc600c6c6 +.long 0x00f5f5f5,0x7d007d7d +.long 0x00e4e4e4,0x39003939 +.long 0x000e0e0e,0x83008383 +.long 0x00737373,0xdc00dcdc +.long 0x00aaaaaa,0xaa00aaaa +.long 0x00f1f1f1,0x7c007c7c +.long 0x00dddddd,0x77007777 +.long 0x00595959,0x56005656 +.long 0x00141414,0x05000505 +.long 0x006c6c6c,0x1b001b1b +.long 0x00929292,0xa400a4a4 +.long 0x00545454,0x15001515 +.long 0x00d0d0d0,0x34003434 +.long 0x00787878,0x1e001e1e +.long 0x00707070,0x1c001c1c +.long 0x00e3e3e3,0xf800f8f8 +.long 0x00494949,0x52005252 +.long 0x00808080,0x20002020 +.long 0x00505050,0x14001414 +.long 0x00a7a7a7,0xe900e9e9 +.long 0x00f6f6f6,0xbd00bdbd +.long 0x00777777,0xdd00dddd +.long 0x00939393,0xe400e4e4 +.long 0x00868686,0xa100a1a1 +.long 0x00838383,0xe000e0e0 +.long 0x002a2a2a,0x8a008a8a +.long 0x00c7c7c7,0xf100f1f1 +.long 0x005b5b5b,0xd600d6d6 +.long 0x00e9e9e9,0x7a007a7a +.long 0x00eeeeee,0xbb00bbbb +.long 0x008f8f8f,0xe300e3e3 +.long 0x00010101,0x40004040 +.long 0x003d3d3d,0x4f004f4f +.globl Camellia_cbc_encrypt +.type Camellia_cbc_encrypt,@function +.align 16 +Camellia_cbc_encrypt: +.cfi_startproc + cmpq $0,%rdx + je .Lcbc_abort + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 +.Lcbc_prologue: + + movq %rsp,%rbp +.cfi_def_cfa_register %rbp + subq $64,%rsp + andq $-64,%rsp + + + + leaq -64-63(%rcx),%r10 + subq %rsp,%r10 + negq %r10 + andq $0x3C0,%r10 + subq %r10,%rsp + + + movq %rdi,%r12 + movq %rsi,%r13 + movq %r8,%rbx + movq %rcx,%r14 + movl 272(%rcx),%r15d + + movq %r8,40(%rsp) + movq %rbp,48(%rsp) +.cfi_escape 0x0f,0x05,0x77,0x30,0x06,0x23,0x38 + +.Lcbc_body: + leaq .LCamellia_SBOX(%rip),%rbp + + movl $32,%ecx +.align 4 +.Lcbc_prefetch_sbox: + movq 0(%rbp),%rax + movq 32(%rbp),%rsi + movq 64(%rbp),%rdi + movq 96(%rbp),%r11 + leaq 128(%rbp),%rbp + loop .Lcbc_prefetch_sbox + subq $4096,%rbp + shlq $6,%r15 + movq %rdx,%rcx + leaq (%r14,%r15,1),%r15 + + cmpl $0,%r9d + je .LCBC_DECRYPT + + andq $-16,%rdx + andq $15,%rcx + leaq (%r12,%rdx,1),%rdx + movq %r14,0(%rsp) + movq %rdx,8(%rsp) + movq %rcx,16(%rsp) + + cmpq %r12,%rdx + movl 0(%rbx),%r8d + movl 4(%rbx),%r9d + movl 8(%rbx),%r10d + movl 12(%rbx),%r11d + je .Lcbc_enc_tail + jmp .Lcbc_eloop + +.align 16 +.Lcbc_eloop: + xorl 0(%r12),%r8d + xorl 4(%r12),%r9d + xorl 8(%r12),%r10d + bswapl %r8d + xorl 12(%r12),%r11d + bswapl %r9d + bswapl %r10d + bswapl %r11d + + call _x86_64_Camellia_encrypt + + movq 0(%rsp),%r14 + bswapl %r8d + movq 8(%rsp),%rdx + bswapl %r9d + movq 16(%rsp),%rcx + bswapl %r10d + movl %r8d,0(%r13) + bswapl %r11d + movl %r9d,4(%r13) + movl %r10d,8(%r13) + leaq 16(%r12),%r12 + movl %r11d,12(%r13) + cmpq %rdx,%r12 + leaq 16(%r13),%r13 + jne .Lcbc_eloop + + cmpq $0,%rcx + jne .Lcbc_enc_tail + + movq 40(%rsp),%r13 + movl %r8d,0(%r13) + movl %r9d,4(%r13) + movl %r10d,8(%r13) + movl %r11d,12(%r13) + jmp .Lcbc_done + +.align 16 +.Lcbc_enc_tail: + xorq %rax,%rax + movq %rax,0+24(%rsp) + movq %rax,8+24(%rsp) + movq %rax,16(%rsp) + +.Lcbc_enc_pushf: + pushfq + cld + movq %r12,%rsi + leaq 8+24(%rsp),%rdi +.long 0x9066A4F3 + popfq +.Lcbc_enc_popf: + + leaq 24(%rsp),%r12 + leaq 16+24(%rsp),%rax + movq %rax,8(%rsp) + jmp .Lcbc_eloop + +.align 16 +.LCBC_DECRYPT: + xchgq %r14,%r15 + addq $15,%rdx + andq $15,%rcx + andq $-16,%rdx + movq %r14,0(%rsp) + leaq (%r12,%rdx,1),%rdx + movq %rdx,8(%rsp) + movq %rcx,16(%rsp) + + movq (%rbx),%rax + movq 8(%rbx),%rbx + jmp .Lcbc_dloop +.align 16 +.Lcbc_dloop: + movl 0(%r12),%r8d + movl 4(%r12),%r9d + movl 8(%r12),%r10d + bswapl %r8d + movl 12(%r12),%r11d + bswapl %r9d + movq %rax,0+24(%rsp) + bswapl %r10d + movq %rbx,8+24(%rsp) + bswapl %r11d + + call _x86_64_Camellia_decrypt + + movq 0(%rsp),%r14 + movq 8(%rsp),%rdx + movq 16(%rsp),%rcx + + bswapl %r8d + movq (%r12),%rax + bswapl %r9d + movq 8(%r12),%rbx + bswapl %r10d + xorl 0+24(%rsp),%r8d + bswapl %r11d + xorl 4+24(%rsp),%r9d + xorl 8+24(%rsp),%r10d + leaq 16(%r12),%r12 + xorl 12+24(%rsp),%r11d + cmpq %rdx,%r12 + je .Lcbc_ddone + + movl %r8d,0(%r13) + movl %r9d,4(%r13) + movl %r10d,8(%r13) + movl %r11d,12(%r13) + + leaq 16(%r13),%r13 + jmp .Lcbc_dloop + +.align 16 +.Lcbc_ddone: + movq 40(%rsp),%rdx + cmpq $0,%rcx + jne .Lcbc_dec_tail + + movl %r8d,0(%r13) + movl %r9d,4(%r13) + movl %r10d,8(%r13) + movl %r11d,12(%r13) + + movq %rax,(%rdx) + movq %rbx,8(%rdx) + jmp .Lcbc_done +.align 16 +.Lcbc_dec_tail: + movl %r8d,0+24(%rsp) + movl %r9d,4+24(%rsp) + movl %r10d,8+24(%rsp) + movl %r11d,12+24(%rsp) + +.Lcbc_dec_pushf: + pushfq + cld + leaq 8+24(%rsp),%rsi + leaq (%r13),%rdi +.long 0x9066A4F3 + popfq +.Lcbc_dec_popf: + + movq %rax,(%rdx) + movq %rbx,8(%rdx) + jmp .Lcbc_done + +.align 16 +.Lcbc_done: + movq 48(%rsp),%rcx +.cfi_def_cfa %rcx,56 + movq 0(%rcx),%r15 +.cfi_restore %r15 + movq 8(%rcx),%r14 +.cfi_restore %r14 + movq 16(%rcx),%r13 +.cfi_restore %r13 + movq 24(%rcx),%r12 +.cfi_restore %r12 + movq 32(%rcx),%rbp +.cfi_restore %rbp + movq 40(%rcx),%rbx +.cfi_restore %rbx + leaq 48(%rcx),%rsp +.cfi_def_cfa %rsp,8 +.Lcbc_abort: + .byte 0xf3,0xc3 +.cfi_endproc +.size Camellia_cbc_encrypt,.-Camellia_cbc_encrypt + +.byte 67,97,109,101,108,108,105,97,32,102,111,114,32,120,56,54,95,54,52,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 diff --git a/vere/ext/openssl/gen/linux-x86_64/crypto/chacha/chacha-x86_64.s b/vere/ext/openssl/gen/linux-x86_64/crypto/chacha/chacha-x86_64.s new file mode 100644 index 0000000..64bc213 --- /dev/null +++ b/vere/ext/openssl/gen/linux-x86_64/crypto/chacha/chacha-x86_64.s @@ -0,0 +1,2193 @@ +.text + + + +.align 64 +.Lzero: +.long 0,0,0,0 +.Lone: +.long 1,0,0,0 +.Linc: +.long 0,1,2,3 +.Lfour: +.long 4,4,4,4 +.Lincy: +.long 0,2,4,6,1,3,5,7 +.Leight: +.long 8,8,8,8,8,8,8,8 +.Lrot16: +.byte 0x2,0x3,0x0,0x1, 0x6,0x7,0x4,0x5, 0xa,0xb,0x8,0x9, 0xe,0xf,0xc,0xd +.Lrot24: +.byte 0x3,0x0,0x1,0x2, 0x7,0x4,0x5,0x6, 0xb,0x8,0x9,0xa, 0xf,0xc,0xd,0xe +.Ltwoy: +.long 2,0,0,0, 2,0,0,0 +.align 64 +.Lzeroz: +.long 0,0,0,0, 1,0,0,0, 2,0,0,0, 3,0,0,0 +.Lfourz: +.long 4,0,0,0, 4,0,0,0, 4,0,0,0, 4,0,0,0 +.Lincz: +.long 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 +.Lsixteen: +.long 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16 +.Lsigma: +.byte 101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107,0 +.byte 67,104,97,67,104,97,50,48,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.globl ChaCha20_ctr32 +.type ChaCha20_ctr32,@function +.align 64 +ChaCha20_ctr32: +.cfi_startproc + cmpq $0,%rdx + je .Lno_data + movq OPENSSL_ia32cap_P+4(%rip),%r10 + testl $512,%r10d + jnz .LChaCha20_ssse3 + + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 + subq $64+24,%rsp +.cfi_adjust_cfa_offset 64+24 +.Lctr32_body: + + + movdqu (%rcx),%xmm1 + movdqu 16(%rcx),%xmm2 + movdqu (%r8),%xmm3 + movdqa .Lone(%rip),%xmm4 + + + movdqa %xmm1,16(%rsp) + movdqa %xmm2,32(%rsp) + movdqa %xmm3,48(%rsp) + movq %rdx,%rbp + jmp .Loop_outer + +.align 32 +.Loop_outer: + movl $0x61707865,%eax + movl $0x3320646e,%ebx + movl $0x79622d32,%ecx + movl $0x6b206574,%edx + movl 16(%rsp),%r8d + movl 20(%rsp),%r9d + movl 24(%rsp),%r10d + movl 28(%rsp),%r11d + movd %xmm3,%r12d + movl 52(%rsp),%r13d + movl 56(%rsp),%r14d + movl 60(%rsp),%r15d + + movq %rbp,64+0(%rsp) + movl $10,%ebp + movq %rsi,64+8(%rsp) +.byte 102,72,15,126,214 + movq %rdi,64+16(%rsp) + movq %rsi,%rdi + shrq $32,%rdi + jmp .Loop + +.align 32 +.Loop: + addl %r8d,%eax + xorl %eax,%r12d + roll $16,%r12d + addl %r9d,%ebx + xorl %ebx,%r13d + roll $16,%r13d + addl %r12d,%esi + xorl %esi,%r8d + roll $12,%r8d + addl %r13d,%edi + xorl %edi,%r9d + roll $12,%r9d + addl %r8d,%eax + xorl %eax,%r12d + roll $8,%r12d + addl %r9d,%ebx + xorl %ebx,%r13d + roll $8,%r13d + addl %r12d,%esi + xorl %esi,%r8d + roll $7,%r8d + addl %r13d,%edi + xorl %edi,%r9d + roll $7,%r9d + movl %esi,32(%rsp) + movl %edi,36(%rsp) + movl 40(%rsp),%esi + movl 44(%rsp),%edi + addl %r10d,%ecx + xorl %ecx,%r14d + roll $16,%r14d + addl %r11d,%edx + xorl %edx,%r15d + roll $16,%r15d + addl %r14d,%esi + xorl %esi,%r10d + roll $12,%r10d + addl %r15d,%edi + xorl %edi,%r11d + roll $12,%r11d + addl %r10d,%ecx + xorl %ecx,%r14d + roll $8,%r14d + addl %r11d,%edx + xorl %edx,%r15d + roll $8,%r15d + addl %r14d,%esi + xorl %esi,%r10d + roll $7,%r10d + addl %r15d,%edi + xorl %edi,%r11d + roll $7,%r11d + addl %r9d,%eax + xorl %eax,%r15d + roll $16,%r15d + addl %r10d,%ebx + xorl %ebx,%r12d + roll $16,%r12d + addl %r15d,%esi + xorl %esi,%r9d + roll $12,%r9d + addl %r12d,%edi + xorl %edi,%r10d + roll $12,%r10d + addl %r9d,%eax + xorl %eax,%r15d + roll $8,%r15d + addl %r10d,%ebx + xorl %ebx,%r12d + roll $8,%r12d + addl %r15d,%esi + xorl %esi,%r9d + roll $7,%r9d + addl %r12d,%edi + xorl %edi,%r10d + roll $7,%r10d + movl %esi,40(%rsp) + movl %edi,44(%rsp) + movl 32(%rsp),%esi + movl 36(%rsp),%edi + addl %r11d,%ecx + xorl %ecx,%r13d + roll $16,%r13d + addl %r8d,%edx + xorl %edx,%r14d + roll $16,%r14d + addl %r13d,%esi + xorl %esi,%r11d + roll $12,%r11d + addl %r14d,%edi + xorl %edi,%r8d + roll $12,%r8d + addl %r11d,%ecx + xorl %ecx,%r13d + roll $8,%r13d + addl %r8d,%edx + xorl %edx,%r14d + roll $8,%r14d + addl %r13d,%esi + xorl %esi,%r11d + roll $7,%r11d + addl %r14d,%edi + xorl %edi,%r8d + roll $7,%r8d + decl %ebp + jnz .Loop + movl %edi,36(%rsp) + movl %esi,32(%rsp) + movq 64(%rsp),%rbp + movdqa %xmm2,%xmm1 + movq 64+8(%rsp),%rsi + paddd %xmm4,%xmm3 + movq 64+16(%rsp),%rdi + + addl $0x61707865,%eax + addl $0x3320646e,%ebx + addl $0x79622d32,%ecx + addl $0x6b206574,%edx + addl 16(%rsp),%r8d + addl 20(%rsp),%r9d + addl 24(%rsp),%r10d + addl 28(%rsp),%r11d + addl 48(%rsp),%r12d + addl 52(%rsp),%r13d + addl 56(%rsp),%r14d + addl 60(%rsp),%r15d + paddd 32(%rsp),%xmm1 + + cmpq $64,%rbp + jb .Ltail + + xorl 0(%rsi),%eax + xorl 4(%rsi),%ebx + xorl 8(%rsi),%ecx + xorl 12(%rsi),%edx + xorl 16(%rsi),%r8d + xorl 20(%rsi),%r9d + xorl 24(%rsi),%r10d + xorl 28(%rsi),%r11d + movdqu 32(%rsi),%xmm0 + xorl 48(%rsi),%r12d + xorl 52(%rsi),%r13d + xorl 56(%rsi),%r14d + xorl 60(%rsi),%r15d + leaq 64(%rsi),%rsi + pxor %xmm1,%xmm0 + + movdqa %xmm2,32(%rsp) + movd %xmm3,48(%rsp) + + movl %eax,0(%rdi) + movl %ebx,4(%rdi) + movl %ecx,8(%rdi) + movl %edx,12(%rdi) + movl %r8d,16(%rdi) + movl %r9d,20(%rdi) + movl %r10d,24(%rdi) + movl %r11d,28(%rdi) + movdqu %xmm0,32(%rdi) + movl %r12d,48(%rdi) + movl %r13d,52(%rdi) + movl %r14d,56(%rdi) + movl %r15d,60(%rdi) + leaq 64(%rdi),%rdi + + subq $64,%rbp + jnz .Loop_outer + + jmp .Ldone + +.align 16 +.Ltail: + movl %eax,0(%rsp) + movl %ebx,4(%rsp) + xorq %rbx,%rbx + movl %ecx,8(%rsp) + movl %edx,12(%rsp) + movl %r8d,16(%rsp) + movl %r9d,20(%rsp) + movl %r10d,24(%rsp) + movl %r11d,28(%rsp) + movdqa %xmm1,32(%rsp) + movl %r12d,48(%rsp) + movl %r13d,52(%rsp) + movl %r14d,56(%rsp) + movl %r15d,60(%rsp) + +.Loop_tail: + movzbl (%rsi,%rbx,1),%eax + movzbl (%rsp,%rbx,1),%edx + leaq 1(%rbx),%rbx + xorl %edx,%eax + movb %al,-1(%rdi,%rbx,1) + decq %rbp + jnz .Loop_tail + +.Ldone: + leaq 64+24+48(%rsp),%rsi +.cfi_def_cfa %rsi,8 + movq -48(%rsi),%r15 +.cfi_restore %r15 + movq -40(%rsi),%r14 +.cfi_restore %r14 + movq -32(%rsi),%r13 +.cfi_restore %r13 + movq -24(%rsi),%r12 +.cfi_restore %r12 + movq -16(%rsi),%rbp +.cfi_restore %rbp + movq -8(%rsi),%rbx +.cfi_restore %rbx + leaq (%rsi),%rsp +.cfi_def_cfa_register %rsp +.Lno_data: + .byte 0xf3,0xc3 +.cfi_endproc +.size ChaCha20_ctr32,.-ChaCha20_ctr32 +.type ChaCha20_ssse3,@function +.align 32 +ChaCha20_ssse3: +.cfi_startproc +.LChaCha20_ssse3: + movq %rsp,%r9 +.cfi_def_cfa_register %r9 + testl $2048,%r10d + jnz .LChaCha20_4xop + cmpq $128,%rdx + je .LChaCha20_128 + ja .LChaCha20_4x + +.Ldo_sse3_after_all: + subq $64+8,%rsp + movdqa .Lsigma(%rip),%xmm0 + movdqu (%rcx),%xmm1 + movdqu 16(%rcx),%xmm2 + movdqu (%r8),%xmm3 + movdqa .Lrot16(%rip),%xmm6 + movdqa .Lrot24(%rip),%xmm7 + + movdqa %xmm0,0(%rsp) + movdqa %xmm1,16(%rsp) + movdqa %xmm2,32(%rsp) + movdqa %xmm3,48(%rsp) + movq $10,%r8 + jmp .Loop_ssse3 + +.align 32 +.Loop_outer_ssse3: + movdqa .Lone(%rip),%xmm3 + movdqa 0(%rsp),%xmm0 + movdqa 16(%rsp),%xmm1 + movdqa 32(%rsp),%xmm2 + paddd 48(%rsp),%xmm3 + movq $10,%r8 + movdqa %xmm3,48(%rsp) + jmp .Loop_ssse3 + +.align 32 +.Loop_ssse3: + paddd %xmm1,%xmm0 + pxor %xmm0,%xmm3 +.byte 102,15,56,0,222 + paddd %xmm3,%xmm2 + pxor %xmm2,%xmm1 + movdqa %xmm1,%xmm4 + psrld $20,%xmm1 + pslld $12,%xmm4 + por %xmm4,%xmm1 + paddd %xmm1,%xmm0 + pxor %xmm0,%xmm3 +.byte 102,15,56,0,223 + paddd %xmm3,%xmm2 + pxor %xmm2,%xmm1 + movdqa %xmm1,%xmm4 + psrld $25,%xmm1 + pslld $7,%xmm4 + por %xmm4,%xmm1 + pshufd $78,%xmm2,%xmm2 + pshufd $57,%xmm1,%xmm1 + pshufd $147,%xmm3,%xmm3 + nop + paddd %xmm1,%xmm0 + pxor %xmm0,%xmm3 +.byte 102,15,56,0,222 + paddd %xmm3,%xmm2 + pxor %xmm2,%xmm1 + movdqa %xmm1,%xmm4 + psrld $20,%xmm1 + pslld $12,%xmm4 + por %xmm4,%xmm1 + paddd %xmm1,%xmm0 + pxor %xmm0,%xmm3 +.byte 102,15,56,0,223 + paddd %xmm3,%xmm2 + pxor %xmm2,%xmm1 + movdqa %xmm1,%xmm4 + psrld $25,%xmm1 + pslld $7,%xmm4 + por %xmm4,%xmm1 + pshufd $78,%xmm2,%xmm2 + pshufd $147,%xmm1,%xmm1 + pshufd $57,%xmm3,%xmm3 + decq %r8 + jnz .Loop_ssse3 + paddd 0(%rsp),%xmm0 + paddd 16(%rsp),%xmm1 + paddd 32(%rsp),%xmm2 + paddd 48(%rsp),%xmm3 + + cmpq $64,%rdx + jb .Ltail_ssse3 + + movdqu 0(%rsi),%xmm4 + movdqu 16(%rsi),%xmm5 + pxor %xmm4,%xmm0 + movdqu 32(%rsi),%xmm4 + pxor %xmm5,%xmm1 + movdqu 48(%rsi),%xmm5 + leaq 64(%rsi),%rsi + pxor %xmm4,%xmm2 + pxor %xmm5,%xmm3 + + movdqu %xmm0,0(%rdi) + movdqu %xmm1,16(%rdi) + movdqu %xmm2,32(%rdi) + movdqu %xmm3,48(%rdi) + leaq 64(%rdi),%rdi + + subq $64,%rdx + jnz .Loop_outer_ssse3 + + jmp .Ldone_ssse3 + +.align 16 +.Ltail_ssse3: + movdqa %xmm0,0(%rsp) + movdqa %xmm1,16(%rsp) + movdqa %xmm2,32(%rsp) + movdqa %xmm3,48(%rsp) + xorq %r8,%r8 + +.Loop_tail_ssse3: + movzbl (%rsi,%r8,1),%eax + movzbl (%rsp,%r8,1),%ecx + leaq 1(%r8),%r8 + xorl %ecx,%eax + movb %al,-1(%rdi,%r8,1) + decq %rdx + jnz .Loop_tail_ssse3 + +.Ldone_ssse3: + leaq (%r9),%rsp +.cfi_def_cfa_register %rsp +.Lssse3_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size ChaCha20_ssse3,.-ChaCha20_ssse3 +.type ChaCha20_128,@function +.align 32 +ChaCha20_128: +.cfi_startproc +.LChaCha20_128: + movq %rsp,%r9 +.cfi_def_cfa_register %r9 + subq $64+8,%rsp + movdqa .Lsigma(%rip),%xmm8 + movdqu (%rcx),%xmm9 + movdqu 16(%rcx),%xmm2 + movdqu (%r8),%xmm3 + movdqa .Lone(%rip),%xmm1 + movdqa .Lrot16(%rip),%xmm6 + movdqa .Lrot24(%rip),%xmm7 + + movdqa %xmm8,%xmm10 + movdqa %xmm8,0(%rsp) + movdqa %xmm9,%xmm11 + movdqa %xmm9,16(%rsp) + movdqa %xmm2,%xmm0 + movdqa %xmm2,32(%rsp) + paddd %xmm3,%xmm1 + movdqa %xmm3,48(%rsp) + movq $10,%r8 + jmp .Loop_128 + +.align 32 +.Loop_128: + paddd %xmm9,%xmm8 + pxor %xmm8,%xmm3 + paddd %xmm11,%xmm10 + pxor %xmm10,%xmm1 +.byte 102,15,56,0,222 +.byte 102,15,56,0,206 + paddd %xmm3,%xmm2 + paddd %xmm1,%xmm0 + pxor %xmm2,%xmm9 + pxor %xmm0,%xmm11 + movdqa %xmm9,%xmm4 + psrld $20,%xmm9 + movdqa %xmm11,%xmm5 + pslld $12,%xmm4 + psrld $20,%xmm11 + por %xmm4,%xmm9 + pslld $12,%xmm5 + por %xmm5,%xmm11 + paddd %xmm9,%xmm8 + pxor %xmm8,%xmm3 + paddd %xmm11,%xmm10 + pxor %xmm10,%xmm1 +.byte 102,15,56,0,223 +.byte 102,15,56,0,207 + paddd %xmm3,%xmm2 + paddd %xmm1,%xmm0 + pxor %xmm2,%xmm9 + pxor %xmm0,%xmm11 + movdqa %xmm9,%xmm4 + psrld $25,%xmm9 + movdqa %xmm11,%xmm5 + pslld $7,%xmm4 + psrld $25,%xmm11 + por %xmm4,%xmm9 + pslld $7,%xmm5 + por %xmm5,%xmm11 + pshufd $78,%xmm2,%xmm2 + pshufd $57,%xmm9,%xmm9 + pshufd $147,%xmm3,%xmm3 + pshufd $78,%xmm0,%xmm0 + pshufd $57,%xmm11,%xmm11 + pshufd $147,%xmm1,%xmm1 + paddd %xmm9,%xmm8 + pxor %xmm8,%xmm3 + paddd %xmm11,%xmm10 + pxor %xmm10,%xmm1 +.byte 102,15,56,0,222 +.byte 102,15,56,0,206 + paddd %xmm3,%xmm2 + paddd %xmm1,%xmm0 + pxor %xmm2,%xmm9 + pxor %xmm0,%xmm11 + movdqa %xmm9,%xmm4 + psrld $20,%xmm9 + movdqa %xmm11,%xmm5 + pslld $12,%xmm4 + psrld $20,%xmm11 + por %xmm4,%xmm9 + pslld $12,%xmm5 + por %xmm5,%xmm11 + paddd %xmm9,%xmm8 + pxor %xmm8,%xmm3 + paddd %xmm11,%xmm10 + pxor %xmm10,%xmm1 +.byte 102,15,56,0,223 +.byte 102,15,56,0,207 + paddd %xmm3,%xmm2 + paddd %xmm1,%xmm0 + pxor %xmm2,%xmm9 + pxor %xmm0,%xmm11 + movdqa %xmm9,%xmm4 + psrld $25,%xmm9 + movdqa %xmm11,%xmm5 + pslld $7,%xmm4 + psrld $25,%xmm11 + por %xmm4,%xmm9 + pslld $7,%xmm5 + por %xmm5,%xmm11 + pshufd $78,%xmm2,%xmm2 + pshufd $147,%xmm9,%xmm9 + pshufd $57,%xmm3,%xmm3 + pshufd $78,%xmm0,%xmm0 + pshufd $147,%xmm11,%xmm11 + pshufd $57,%xmm1,%xmm1 + decq %r8 + jnz .Loop_128 + paddd 0(%rsp),%xmm8 + paddd 16(%rsp),%xmm9 + paddd 32(%rsp),%xmm2 + paddd 48(%rsp),%xmm3 + paddd .Lone(%rip),%xmm1 + paddd 0(%rsp),%xmm10 + paddd 16(%rsp),%xmm11 + paddd 32(%rsp),%xmm0 + paddd 48(%rsp),%xmm1 + + movdqu 0(%rsi),%xmm4 + movdqu 16(%rsi),%xmm5 + pxor %xmm4,%xmm8 + movdqu 32(%rsi),%xmm4 + pxor %xmm5,%xmm9 + movdqu 48(%rsi),%xmm5 + pxor %xmm4,%xmm2 + movdqu 64(%rsi),%xmm4 + pxor %xmm5,%xmm3 + movdqu 80(%rsi),%xmm5 + pxor %xmm4,%xmm10 + movdqu 96(%rsi),%xmm4 + pxor %xmm5,%xmm11 + movdqu 112(%rsi),%xmm5 + pxor %xmm4,%xmm0 + pxor %xmm5,%xmm1 + + movdqu %xmm8,0(%rdi) + movdqu %xmm9,16(%rdi) + movdqu %xmm2,32(%rdi) + movdqu %xmm3,48(%rdi) + movdqu %xmm10,64(%rdi) + movdqu %xmm11,80(%rdi) + movdqu %xmm0,96(%rdi) + movdqu %xmm1,112(%rdi) + leaq (%r9),%rsp +.cfi_def_cfa_register %rsp +.L128_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size ChaCha20_128,.-ChaCha20_128 +.type ChaCha20_4x,@function +.align 32 +ChaCha20_4x: +.cfi_startproc +.LChaCha20_4x: + movq %rsp,%r9 +.cfi_def_cfa_register %r9 + movq %r10,%r11 + shrq $32,%r10 + testq $32,%r10 + jnz .LChaCha20_8x + cmpq $192,%rdx + ja .Lproceed4x + + andq $71303168,%r11 + cmpq $4194304,%r11 + je .Ldo_sse3_after_all + +.Lproceed4x: + subq $0x140+8,%rsp + movdqa .Lsigma(%rip),%xmm11 + movdqu (%rcx),%xmm15 + movdqu 16(%rcx),%xmm7 + movdqu (%r8),%xmm3 + leaq 256(%rsp),%rcx + leaq .Lrot16(%rip),%r10 + leaq .Lrot24(%rip),%r11 + + pshufd $0x00,%xmm11,%xmm8 + pshufd $0x55,%xmm11,%xmm9 + movdqa %xmm8,64(%rsp) + pshufd $0xaa,%xmm11,%xmm10 + movdqa %xmm9,80(%rsp) + pshufd $0xff,%xmm11,%xmm11 + movdqa %xmm10,96(%rsp) + movdqa %xmm11,112(%rsp) + + pshufd $0x00,%xmm15,%xmm12 + pshufd $0x55,%xmm15,%xmm13 + movdqa %xmm12,128-256(%rcx) + pshufd $0xaa,%xmm15,%xmm14 + movdqa %xmm13,144-256(%rcx) + pshufd $0xff,%xmm15,%xmm15 + movdqa %xmm14,160-256(%rcx) + movdqa %xmm15,176-256(%rcx) + + pshufd $0x00,%xmm7,%xmm4 + pshufd $0x55,%xmm7,%xmm5 + movdqa %xmm4,192-256(%rcx) + pshufd $0xaa,%xmm7,%xmm6 + movdqa %xmm5,208-256(%rcx) + pshufd $0xff,%xmm7,%xmm7 + movdqa %xmm6,224-256(%rcx) + movdqa %xmm7,240-256(%rcx) + + pshufd $0x00,%xmm3,%xmm0 + pshufd $0x55,%xmm3,%xmm1 + paddd .Linc(%rip),%xmm0 + pshufd $0xaa,%xmm3,%xmm2 + movdqa %xmm1,272-256(%rcx) + pshufd $0xff,%xmm3,%xmm3 + movdqa %xmm2,288-256(%rcx) + movdqa %xmm3,304-256(%rcx) + + jmp .Loop_enter4x + +.align 32 +.Loop_outer4x: + movdqa 64(%rsp),%xmm8 + movdqa 80(%rsp),%xmm9 + movdqa 96(%rsp),%xmm10 + movdqa 112(%rsp),%xmm11 + movdqa 128-256(%rcx),%xmm12 + movdqa 144-256(%rcx),%xmm13 + movdqa 160-256(%rcx),%xmm14 + movdqa 176-256(%rcx),%xmm15 + movdqa 192-256(%rcx),%xmm4 + movdqa 208-256(%rcx),%xmm5 + movdqa 224-256(%rcx),%xmm6 + movdqa 240-256(%rcx),%xmm7 + movdqa 256-256(%rcx),%xmm0 + movdqa 272-256(%rcx),%xmm1 + movdqa 288-256(%rcx),%xmm2 + movdqa 304-256(%rcx),%xmm3 + paddd .Lfour(%rip),%xmm0 + +.Loop_enter4x: + movdqa %xmm6,32(%rsp) + movdqa %xmm7,48(%rsp) + movdqa (%r10),%xmm7 + movl $10,%eax + movdqa %xmm0,256-256(%rcx) + jmp .Loop4x + +.align 32 +.Loop4x: + paddd %xmm12,%xmm8 + paddd %xmm13,%xmm9 + pxor %xmm8,%xmm0 + pxor %xmm9,%xmm1 +.byte 102,15,56,0,199 +.byte 102,15,56,0,207 + paddd %xmm0,%xmm4 + paddd %xmm1,%xmm5 + pxor %xmm4,%xmm12 + pxor %xmm5,%xmm13 + movdqa %xmm12,%xmm6 + pslld $12,%xmm12 + psrld $20,%xmm6 + movdqa %xmm13,%xmm7 + pslld $12,%xmm13 + por %xmm6,%xmm12 + psrld $20,%xmm7 + movdqa (%r11),%xmm6 + por %xmm7,%xmm13 + paddd %xmm12,%xmm8 + paddd %xmm13,%xmm9 + pxor %xmm8,%xmm0 + pxor %xmm9,%xmm1 +.byte 102,15,56,0,198 +.byte 102,15,56,0,206 + paddd %xmm0,%xmm4 + paddd %xmm1,%xmm5 + pxor %xmm4,%xmm12 + pxor %xmm5,%xmm13 + movdqa %xmm12,%xmm7 + pslld $7,%xmm12 + psrld $25,%xmm7 + movdqa %xmm13,%xmm6 + pslld $7,%xmm13 + por %xmm7,%xmm12 + psrld $25,%xmm6 + movdqa (%r10),%xmm7 + por %xmm6,%xmm13 + movdqa %xmm4,0(%rsp) + movdqa %xmm5,16(%rsp) + movdqa 32(%rsp),%xmm4 + movdqa 48(%rsp),%xmm5 + paddd %xmm14,%xmm10 + paddd %xmm15,%xmm11 + pxor %xmm10,%xmm2 + pxor %xmm11,%xmm3 +.byte 102,15,56,0,215 +.byte 102,15,56,0,223 + paddd %xmm2,%xmm4 + paddd %xmm3,%xmm5 + pxor %xmm4,%xmm14 + pxor %xmm5,%xmm15 + movdqa %xmm14,%xmm6 + pslld $12,%xmm14 + psrld $20,%xmm6 + movdqa %xmm15,%xmm7 + pslld $12,%xmm15 + por %xmm6,%xmm14 + psrld $20,%xmm7 + movdqa (%r11),%xmm6 + por %xmm7,%xmm15 + paddd %xmm14,%xmm10 + paddd %xmm15,%xmm11 + pxor %xmm10,%xmm2 + pxor %xmm11,%xmm3 +.byte 102,15,56,0,214 +.byte 102,15,56,0,222 + paddd %xmm2,%xmm4 + paddd %xmm3,%xmm5 + pxor %xmm4,%xmm14 + pxor %xmm5,%xmm15 + movdqa %xmm14,%xmm7 + pslld $7,%xmm14 + psrld $25,%xmm7 + movdqa %xmm15,%xmm6 + pslld $7,%xmm15 + por %xmm7,%xmm14 + psrld $25,%xmm6 + movdqa (%r10),%xmm7 + por %xmm6,%xmm15 + paddd %xmm13,%xmm8 + paddd %xmm14,%xmm9 + pxor %xmm8,%xmm3 + pxor %xmm9,%xmm0 +.byte 102,15,56,0,223 +.byte 102,15,56,0,199 + paddd %xmm3,%xmm4 + paddd %xmm0,%xmm5 + pxor %xmm4,%xmm13 + pxor %xmm5,%xmm14 + movdqa %xmm13,%xmm6 + pslld $12,%xmm13 + psrld $20,%xmm6 + movdqa %xmm14,%xmm7 + pslld $12,%xmm14 + por %xmm6,%xmm13 + psrld $20,%xmm7 + movdqa (%r11),%xmm6 + por %xmm7,%xmm14 + paddd %xmm13,%xmm8 + paddd %xmm14,%xmm9 + pxor %xmm8,%xmm3 + pxor %xmm9,%xmm0 +.byte 102,15,56,0,222 +.byte 102,15,56,0,198 + paddd %xmm3,%xmm4 + paddd %xmm0,%xmm5 + pxor %xmm4,%xmm13 + pxor %xmm5,%xmm14 + movdqa %xmm13,%xmm7 + pslld $7,%xmm13 + psrld $25,%xmm7 + movdqa %xmm14,%xmm6 + pslld $7,%xmm14 + por %xmm7,%xmm13 + psrld $25,%xmm6 + movdqa (%r10),%xmm7 + por %xmm6,%xmm14 + movdqa %xmm4,32(%rsp) + movdqa %xmm5,48(%rsp) + movdqa 0(%rsp),%xmm4 + movdqa 16(%rsp),%xmm5 + paddd %xmm15,%xmm10 + paddd %xmm12,%xmm11 + pxor %xmm10,%xmm1 + pxor %xmm11,%xmm2 +.byte 102,15,56,0,207 +.byte 102,15,56,0,215 + paddd %xmm1,%xmm4 + paddd %xmm2,%xmm5 + pxor %xmm4,%xmm15 + pxor %xmm5,%xmm12 + movdqa %xmm15,%xmm6 + pslld $12,%xmm15 + psrld $20,%xmm6 + movdqa %xmm12,%xmm7 + pslld $12,%xmm12 + por %xmm6,%xmm15 + psrld $20,%xmm7 + movdqa (%r11),%xmm6 + por %xmm7,%xmm12 + paddd %xmm15,%xmm10 + paddd %xmm12,%xmm11 + pxor %xmm10,%xmm1 + pxor %xmm11,%xmm2 +.byte 102,15,56,0,206 +.byte 102,15,56,0,214 + paddd %xmm1,%xmm4 + paddd %xmm2,%xmm5 + pxor %xmm4,%xmm15 + pxor %xmm5,%xmm12 + movdqa %xmm15,%xmm7 + pslld $7,%xmm15 + psrld $25,%xmm7 + movdqa %xmm12,%xmm6 + pslld $7,%xmm12 + por %xmm7,%xmm15 + psrld $25,%xmm6 + movdqa (%r10),%xmm7 + por %xmm6,%xmm12 + decl %eax + jnz .Loop4x + + paddd 64(%rsp),%xmm8 + paddd 80(%rsp),%xmm9 + paddd 96(%rsp),%xmm10 + paddd 112(%rsp),%xmm11 + + movdqa %xmm8,%xmm6 + punpckldq %xmm9,%xmm8 + movdqa %xmm10,%xmm7 + punpckldq %xmm11,%xmm10 + punpckhdq %xmm9,%xmm6 + punpckhdq %xmm11,%xmm7 + movdqa %xmm8,%xmm9 + punpcklqdq %xmm10,%xmm8 + movdqa %xmm6,%xmm11 + punpcklqdq %xmm7,%xmm6 + punpckhqdq %xmm10,%xmm9 + punpckhqdq %xmm7,%xmm11 + paddd 128-256(%rcx),%xmm12 + paddd 144-256(%rcx),%xmm13 + paddd 160-256(%rcx),%xmm14 + paddd 176-256(%rcx),%xmm15 + + movdqa %xmm8,0(%rsp) + movdqa %xmm9,16(%rsp) + movdqa 32(%rsp),%xmm8 + movdqa 48(%rsp),%xmm9 + + movdqa %xmm12,%xmm10 + punpckldq %xmm13,%xmm12 + movdqa %xmm14,%xmm7 + punpckldq %xmm15,%xmm14 + punpckhdq %xmm13,%xmm10 + punpckhdq %xmm15,%xmm7 + movdqa %xmm12,%xmm13 + punpcklqdq %xmm14,%xmm12 + movdqa %xmm10,%xmm15 + punpcklqdq %xmm7,%xmm10 + punpckhqdq %xmm14,%xmm13 + punpckhqdq %xmm7,%xmm15 + paddd 192-256(%rcx),%xmm4 + paddd 208-256(%rcx),%xmm5 + paddd 224-256(%rcx),%xmm8 + paddd 240-256(%rcx),%xmm9 + + movdqa %xmm6,32(%rsp) + movdqa %xmm11,48(%rsp) + + movdqa %xmm4,%xmm14 + punpckldq %xmm5,%xmm4 + movdqa %xmm8,%xmm7 + punpckldq %xmm9,%xmm8 + punpckhdq %xmm5,%xmm14 + punpckhdq %xmm9,%xmm7 + movdqa %xmm4,%xmm5 + punpcklqdq %xmm8,%xmm4 + movdqa %xmm14,%xmm9 + punpcklqdq %xmm7,%xmm14 + punpckhqdq %xmm8,%xmm5 + punpckhqdq %xmm7,%xmm9 + paddd 256-256(%rcx),%xmm0 + paddd 272-256(%rcx),%xmm1 + paddd 288-256(%rcx),%xmm2 + paddd 304-256(%rcx),%xmm3 + + movdqa %xmm0,%xmm8 + punpckldq %xmm1,%xmm0 + movdqa %xmm2,%xmm7 + punpckldq %xmm3,%xmm2 + punpckhdq %xmm1,%xmm8 + punpckhdq %xmm3,%xmm7 + movdqa %xmm0,%xmm1 + punpcklqdq %xmm2,%xmm0 + movdqa %xmm8,%xmm3 + punpcklqdq %xmm7,%xmm8 + punpckhqdq %xmm2,%xmm1 + punpckhqdq %xmm7,%xmm3 + cmpq $256,%rdx + jb .Ltail4x + + movdqu 0(%rsi),%xmm6 + movdqu 16(%rsi),%xmm11 + movdqu 32(%rsi),%xmm2 + movdqu 48(%rsi),%xmm7 + pxor 0(%rsp),%xmm6 + pxor %xmm12,%xmm11 + pxor %xmm4,%xmm2 + pxor %xmm0,%xmm7 + + movdqu %xmm6,0(%rdi) + movdqu 64(%rsi),%xmm6 + movdqu %xmm11,16(%rdi) + movdqu 80(%rsi),%xmm11 + movdqu %xmm2,32(%rdi) + movdqu 96(%rsi),%xmm2 + movdqu %xmm7,48(%rdi) + movdqu 112(%rsi),%xmm7 + leaq 128(%rsi),%rsi + pxor 16(%rsp),%xmm6 + pxor %xmm13,%xmm11 + pxor %xmm5,%xmm2 + pxor %xmm1,%xmm7 + + movdqu %xmm6,64(%rdi) + movdqu 0(%rsi),%xmm6 + movdqu %xmm11,80(%rdi) + movdqu 16(%rsi),%xmm11 + movdqu %xmm2,96(%rdi) + movdqu 32(%rsi),%xmm2 + movdqu %xmm7,112(%rdi) + leaq 128(%rdi),%rdi + movdqu 48(%rsi),%xmm7 + pxor 32(%rsp),%xmm6 + pxor %xmm10,%xmm11 + pxor %xmm14,%xmm2 + pxor %xmm8,%xmm7 + + movdqu %xmm6,0(%rdi) + movdqu 64(%rsi),%xmm6 + movdqu %xmm11,16(%rdi) + movdqu 80(%rsi),%xmm11 + movdqu %xmm2,32(%rdi) + movdqu 96(%rsi),%xmm2 + movdqu %xmm7,48(%rdi) + movdqu 112(%rsi),%xmm7 + leaq 128(%rsi),%rsi + pxor 48(%rsp),%xmm6 + pxor %xmm15,%xmm11 + pxor %xmm9,%xmm2 + pxor %xmm3,%xmm7 + movdqu %xmm6,64(%rdi) + movdqu %xmm11,80(%rdi) + movdqu %xmm2,96(%rdi) + movdqu %xmm7,112(%rdi) + leaq 128(%rdi),%rdi + + subq $256,%rdx + jnz .Loop_outer4x + + jmp .Ldone4x + +.Ltail4x: + cmpq $192,%rdx + jae .L192_or_more4x + cmpq $128,%rdx + jae .L128_or_more4x + cmpq $64,%rdx + jae .L64_or_more4x + + + xorq %r10,%r10 + + movdqa %xmm12,16(%rsp) + movdqa %xmm4,32(%rsp) + movdqa %xmm0,48(%rsp) + jmp .Loop_tail4x + +.align 32 +.L64_or_more4x: + movdqu 0(%rsi),%xmm6 + movdqu 16(%rsi),%xmm11 + movdqu 32(%rsi),%xmm2 + movdqu 48(%rsi),%xmm7 + pxor 0(%rsp),%xmm6 + pxor %xmm12,%xmm11 + pxor %xmm4,%xmm2 + pxor %xmm0,%xmm7 + movdqu %xmm6,0(%rdi) + movdqu %xmm11,16(%rdi) + movdqu %xmm2,32(%rdi) + movdqu %xmm7,48(%rdi) + je .Ldone4x + + movdqa 16(%rsp),%xmm6 + leaq 64(%rsi),%rsi + xorq %r10,%r10 + movdqa %xmm6,0(%rsp) + movdqa %xmm13,16(%rsp) + leaq 64(%rdi),%rdi + movdqa %xmm5,32(%rsp) + subq $64,%rdx + movdqa %xmm1,48(%rsp) + jmp .Loop_tail4x + +.align 32 +.L128_or_more4x: + movdqu 0(%rsi),%xmm6 + movdqu 16(%rsi),%xmm11 + movdqu 32(%rsi),%xmm2 + movdqu 48(%rsi),%xmm7 + pxor 0(%rsp),%xmm6 + pxor %xmm12,%xmm11 + pxor %xmm4,%xmm2 + pxor %xmm0,%xmm7 + + movdqu %xmm6,0(%rdi) + movdqu 64(%rsi),%xmm6 + movdqu %xmm11,16(%rdi) + movdqu 80(%rsi),%xmm11 + movdqu %xmm2,32(%rdi) + movdqu 96(%rsi),%xmm2 + movdqu %xmm7,48(%rdi) + movdqu 112(%rsi),%xmm7 + pxor 16(%rsp),%xmm6 + pxor %xmm13,%xmm11 + pxor %xmm5,%xmm2 + pxor %xmm1,%xmm7 + movdqu %xmm6,64(%rdi) + movdqu %xmm11,80(%rdi) + movdqu %xmm2,96(%rdi) + movdqu %xmm7,112(%rdi) + je .Ldone4x + + movdqa 32(%rsp),%xmm6 + leaq 128(%rsi),%rsi + xorq %r10,%r10 + movdqa %xmm6,0(%rsp) + movdqa %xmm10,16(%rsp) + leaq 128(%rdi),%rdi + movdqa %xmm14,32(%rsp) + subq $128,%rdx + movdqa %xmm8,48(%rsp) + jmp .Loop_tail4x + +.align 32 +.L192_or_more4x: + movdqu 0(%rsi),%xmm6 + movdqu 16(%rsi),%xmm11 + movdqu 32(%rsi),%xmm2 + movdqu 48(%rsi),%xmm7 + pxor 0(%rsp),%xmm6 + pxor %xmm12,%xmm11 + pxor %xmm4,%xmm2 + pxor %xmm0,%xmm7 + + movdqu %xmm6,0(%rdi) + movdqu 64(%rsi),%xmm6 + movdqu %xmm11,16(%rdi) + movdqu 80(%rsi),%xmm11 + movdqu %xmm2,32(%rdi) + movdqu 96(%rsi),%xmm2 + movdqu %xmm7,48(%rdi) + movdqu 112(%rsi),%xmm7 + leaq 128(%rsi),%rsi + pxor 16(%rsp),%xmm6 + pxor %xmm13,%xmm11 + pxor %xmm5,%xmm2 + pxor %xmm1,%xmm7 + + movdqu %xmm6,64(%rdi) + movdqu 0(%rsi),%xmm6 + movdqu %xmm11,80(%rdi) + movdqu 16(%rsi),%xmm11 + movdqu %xmm2,96(%rdi) + movdqu 32(%rsi),%xmm2 + movdqu %xmm7,112(%rdi) + leaq 128(%rdi),%rdi + movdqu 48(%rsi),%xmm7 + pxor 32(%rsp),%xmm6 + pxor %xmm10,%xmm11 + pxor %xmm14,%xmm2 + pxor %xmm8,%xmm7 + movdqu %xmm6,0(%rdi) + movdqu %xmm11,16(%rdi) + movdqu %xmm2,32(%rdi) + movdqu %xmm7,48(%rdi) + je .Ldone4x + + movdqa 48(%rsp),%xmm6 + leaq 64(%rsi),%rsi + xorq %r10,%r10 + movdqa %xmm6,0(%rsp) + movdqa %xmm15,16(%rsp) + leaq 64(%rdi),%rdi + movdqa %xmm9,32(%rsp) + subq $192,%rdx + movdqa %xmm3,48(%rsp) + +.Loop_tail4x: + movzbl (%rsi,%r10,1),%eax + movzbl (%rsp,%r10,1),%ecx + leaq 1(%r10),%r10 + xorl %ecx,%eax + movb %al,-1(%rdi,%r10,1) + decq %rdx + jnz .Loop_tail4x + +.Ldone4x: + leaq (%r9),%rsp +.cfi_def_cfa_register %rsp +.L4x_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size ChaCha20_4x,.-ChaCha20_4x +.type ChaCha20_4xop,@function +.align 32 +ChaCha20_4xop: +.cfi_startproc +.LChaCha20_4xop: + movq %rsp,%r9 +.cfi_def_cfa_register %r9 + subq $0x140+8,%rsp + vzeroupper + + vmovdqa .Lsigma(%rip),%xmm11 + vmovdqu (%rcx),%xmm3 + vmovdqu 16(%rcx),%xmm15 + vmovdqu (%r8),%xmm7 + leaq 256(%rsp),%rcx + + vpshufd $0x00,%xmm11,%xmm8 + vpshufd $0x55,%xmm11,%xmm9 + vmovdqa %xmm8,64(%rsp) + vpshufd $0xaa,%xmm11,%xmm10 + vmovdqa %xmm9,80(%rsp) + vpshufd $0xff,%xmm11,%xmm11 + vmovdqa %xmm10,96(%rsp) + vmovdqa %xmm11,112(%rsp) + + vpshufd $0x00,%xmm3,%xmm0 + vpshufd $0x55,%xmm3,%xmm1 + vmovdqa %xmm0,128-256(%rcx) + vpshufd $0xaa,%xmm3,%xmm2 + vmovdqa %xmm1,144-256(%rcx) + vpshufd $0xff,%xmm3,%xmm3 + vmovdqa %xmm2,160-256(%rcx) + vmovdqa %xmm3,176-256(%rcx) + + vpshufd $0x00,%xmm15,%xmm12 + vpshufd $0x55,%xmm15,%xmm13 + vmovdqa %xmm12,192-256(%rcx) + vpshufd $0xaa,%xmm15,%xmm14 + vmovdqa %xmm13,208-256(%rcx) + vpshufd $0xff,%xmm15,%xmm15 + vmovdqa %xmm14,224-256(%rcx) + vmovdqa %xmm15,240-256(%rcx) + + vpshufd $0x00,%xmm7,%xmm4 + vpshufd $0x55,%xmm7,%xmm5 + vpaddd .Linc(%rip),%xmm4,%xmm4 + vpshufd $0xaa,%xmm7,%xmm6 + vmovdqa %xmm5,272-256(%rcx) + vpshufd $0xff,%xmm7,%xmm7 + vmovdqa %xmm6,288-256(%rcx) + vmovdqa %xmm7,304-256(%rcx) + + jmp .Loop_enter4xop + +.align 32 +.Loop_outer4xop: + vmovdqa 64(%rsp),%xmm8 + vmovdqa 80(%rsp),%xmm9 + vmovdqa 96(%rsp),%xmm10 + vmovdqa 112(%rsp),%xmm11 + vmovdqa 128-256(%rcx),%xmm0 + vmovdqa 144-256(%rcx),%xmm1 + vmovdqa 160-256(%rcx),%xmm2 + vmovdqa 176-256(%rcx),%xmm3 + vmovdqa 192-256(%rcx),%xmm12 + vmovdqa 208-256(%rcx),%xmm13 + vmovdqa 224-256(%rcx),%xmm14 + vmovdqa 240-256(%rcx),%xmm15 + vmovdqa 256-256(%rcx),%xmm4 + vmovdqa 272-256(%rcx),%xmm5 + vmovdqa 288-256(%rcx),%xmm6 + vmovdqa 304-256(%rcx),%xmm7 + vpaddd .Lfour(%rip),%xmm4,%xmm4 + +.Loop_enter4xop: + movl $10,%eax + vmovdqa %xmm4,256-256(%rcx) + jmp .Loop4xop + +.align 32 +.Loop4xop: + vpaddd %xmm0,%xmm8,%xmm8 + vpaddd %xmm1,%xmm9,%xmm9 + vpaddd %xmm2,%xmm10,%xmm10 + vpaddd %xmm3,%xmm11,%xmm11 + vpxor %xmm4,%xmm8,%xmm4 + vpxor %xmm5,%xmm9,%xmm5 + vpxor %xmm6,%xmm10,%xmm6 + vpxor %xmm7,%xmm11,%xmm7 +.byte 143,232,120,194,228,16 +.byte 143,232,120,194,237,16 +.byte 143,232,120,194,246,16 +.byte 143,232,120,194,255,16 + vpaddd %xmm4,%xmm12,%xmm12 + vpaddd %xmm5,%xmm13,%xmm13 + vpaddd %xmm6,%xmm14,%xmm14 + vpaddd %xmm7,%xmm15,%xmm15 + vpxor %xmm0,%xmm12,%xmm0 + vpxor %xmm1,%xmm13,%xmm1 + vpxor %xmm14,%xmm2,%xmm2 + vpxor %xmm15,%xmm3,%xmm3 +.byte 143,232,120,194,192,12 +.byte 143,232,120,194,201,12 +.byte 143,232,120,194,210,12 +.byte 143,232,120,194,219,12 + vpaddd %xmm8,%xmm0,%xmm8 + vpaddd %xmm9,%xmm1,%xmm9 + vpaddd %xmm2,%xmm10,%xmm10 + vpaddd %xmm3,%xmm11,%xmm11 + vpxor %xmm4,%xmm8,%xmm4 + vpxor %xmm5,%xmm9,%xmm5 + vpxor %xmm6,%xmm10,%xmm6 + vpxor %xmm7,%xmm11,%xmm7 +.byte 143,232,120,194,228,8 +.byte 143,232,120,194,237,8 +.byte 143,232,120,194,246,8 +.byte 143,232,120,194,255,8 + vpaddd %xmm4,%xmm12,%xmm12 + vpaddd %xmm5,%xmm13,%xmm13 + vpaddd %xmm6,%xmm14,%xmm14 + vpaddd %xmm7,%xmm15,%xmm15 + vpxor %xmm0,%xmm12,%xmm0 + vpxor %xmm1,%xmm13,%xmm1 + vpxor %xmm14,%xmm2,%xmm2 + vpxor %xmm15,%xmm3,%xmm3 +.byte 143,232,120,194,192,7 +.byte 143,232,120,194,201,7 +.byte 143,232,120,194,210,7 +.byte 143,232,120,194,219,7 + vpaddd %xmm1,%xmm8,%xmm8 + vpaddd %xmm2,%xmm9,%xmm9 + vpaddd %xmm3,%xmm10,%xmm10 + vpaddd %xmm0,%xmm11,%xmm11 + vpxor %xmm7,%xmm8,%xmm7 + vpxor %xmm4,%xmm9,%xmm4 + vpxor %xmm5,%xmm10,%xmm5 + vpxor %xmm6,%xmm11,%xmm6 +.byte 143,232,120,194,255,16 +.byte 143,232,120,194,228,16 +.byte 143,232,120,194,237,16 +.byte 143,232,120,194,246,16 + vpaddd %xmm7,%xmm14,%xmm14 + vpaddd %xmm4,%xmm15,%xmm15 + vpaddd %xmm5,%xmm12,%xmm12 + vpaddd %xmm6,%xmm13,%xmm13 + vpxor %xmm1,%xmm14,%xmm1 + vpxor %xmm2,%xmm15,%xmm2 + vpxor %xmm12,%xmm3,%xmm3 + vpxor %xmm13,%xmm0,%xmm0 +.byte 143,232,120,194,201,12 +.byte 143,232,120,194,210,12 +.byte 143,232,120,194,219,12 +.byte 143,232,120,194,192,12 + vpaddd %xmm8,%xmm1,%xmm8 + vpaddd %xmm9,%xmm2,%xmm9 + vpaddd %xmm3,%xmm10,%xmm10 + vpaddd %xmm0,%xmm11,%xmm11 + vpxor %xmm7,%xmm8,%xmm7 + vpxor %xmm4,%xmm9,%xmm4 + vpxor %xmm5,%xmm10,%xmm5 + vpxor %xmm6,%xmm11,%xmm6 +.byte 143,232,120,194,255,8 +.byte 143,232,120,194,228,8 +.byte 143,232,120,194,237,8 +.byte 143,232,120,194,246,8 + vpaddd %xmm7,%xmm14,%xmm14 + vpaddd %xmm4,%xmm15,%xmm15 + vpaddd %xmm5,%xmm12,%xmm12 + vpaddd %xmm6,%xmm13,%xmm13 + vpxor %xmm1,%xmm14,%xmm1 + vpxor %xmm2,%xmm15,%xmm2 + vpxor %xmm12,%xmm3,%xmm3 + vpxor %xmm13,%xmm0,%xmm0 +.byte 143,232,120,194,201,7 +.byte 143,232,120,194,210,7 +.byte 143,232,120,194,219,7 +.byte 143,232,120,194,192,7 + decl %eax + jnz .Loop4xop + + vpaddd 64(%rsp),%xmm8,%xmm8 + vpaddd 80(%rsp),%xmm9,%xmm9 + vpaddd 96(%rsp),%xmm10,%xmm10 + vpaddd 112(%rsp),%xmm11,%xmm11 + + vmovdqa %xmm14,32(%rsp) + vmovdqa %xmm15,48(%rsp) + + vpunpckldq %xmm9,%xmm8,%xmm14 + vpunpckldq %xmm11,%xmm10,%xmm15 + vpunpckhdq %xmm9,%xmm8,%xmm8 + vpunpckhdq %xmm11,%xmm10,%xmm10 + vpunpcklqdq %xmm15,%xmm14,%xmm9 + vpunpckhqdq %xmm15,%xmm14,%xmm14 + vpunpcklqdq %xmm10,%xmm8,%xmm11 + vpunpckhqdq %xmm10,%xmm8,%xmm8 + vpaddd 128-256(%rcx),%xmm0,%xmm0 + vpaddd 144-256(%rcx),%xmm1,%xmm1 + vpaddd 160-256(%rcx),%xmm2,%xmm2 + vpaddd 176-256(%rcx),%xmm3,%xmm3 + + vmovdqa %xmm9,0(%rsp) + vmovdqa %xmm14,16(%rsp) + vmovdqa 32(%rsp),%xmm9 + vmovdqa 48(%rsp),%xmm14 + + vpunpckldq %xmm1,%xmm0,%xmm10 + vpunpckldq %xmm3,%xmm2,%xmm15 + vpunpckhdq %xmm1,%xmm0,%xmm0 + vpunpckhdq %xmm3,%xmm2,%xmm2 + vpunpcklqdq %xmm15,%xmm10,%xmm1 + vpunpckhqdq %xmm15,%xmm10,%xmm10 + vpunpcklqdq %xmm2,%xmm0,%xmm3 + vpunpckhqdq %xmm2,%xmm0,%xmm0 + vpaddd 192-256(%rcx),%xmm12,%xmm12 + vpaddd 208-256(%rcx),%xmm13,%xmm13 + vpaddd 224-256(%rcx),%xmm9,%xmm9 + vpaddd 240-256(%rcx),%xmm14,%xmm14 + + vpunpckldq %xmm13,%xmm12,%xmm2 + vpunpckldq %xmm14,%xmm9,%xmm15 + vpunpckhdq %xmm13,%xmm12,%xmm12 + vpunpckhdq %xmm14,%xmm9,%xmm9 + vpunpcklqdq %xmm15,%xmm2,%xmm13 + vpunpckhqdq %xmm15,%xmm2,%xmm2 + vpunpcklqdq %xmm9,%xmm12,%xmm14 + vpunpckhqdq %xmm9,%xmm12,%xmm12 + vpaddd 256-256(%rcx),%xmm4,%xmm4 + vpaddd 272-256(%rcx),%xmm5,%xmm5 + vpaddd 288-256(%rcx),%xmm6,%xmm6 + vpaddd 304-256(%rcx),%xmm7,%xmm7 + + vpunpckldq %xmm5,%xmm4,%xmm9 + vpunpckldq %xmm7,%xmm6,%xmm15 + vpunpckhdq %xmm5,%xmm4,%xmm4 + vpunpckhdq %xmm7,%xmm6,%xmm6 + vpunpcklqdq %xmm15,%xmm9,%xmm5 + vpunpckhqdq %xmm15,%xmm9,%xmm9 + vpunpcklqdq %xmm6,%xmm4,%xmm7 + vpunpckhqdq %xmm6,%xmm4,%xmm4 + vmovdqa 0(%rsp),%xmm6 + vmovdqa 16(%rsp),%xmm15 + + cmpq $256,%rdx + jb .Ltail4xop + + vpxor 0(%rsi),%xmm6,%xmm6 + vpxor 16(%rsi),%xmm1,%xmm1 + vpxor 32(%rsi),%xmm13,%xmm13 + vpxor 48(%rsi),%xmm5,%xmm5 + vpxor 64(%rsi),%xmm15,%xmm15 + vpxor 80(%rsi),%xmm10,%xmm10 + vpxor 96(%rsi),%xmm2,%xmm2 + vpxor 112(%rsi),%xmm9,%xmm9 + leaq 128(%rsi),%rsi + vpxor 0(%rsi),%xmm11,%xmm11 + vpxor 16(%rsi),%xmm3,%xmm3 + vpxor 32(%rsi),%xmm14,%xmm14 + vpxor 48(%rsi),%xmm7,%xmm7 + vpxor 64(%rsi),%xmm8,%xmm8 + vpxor 80(%rsi),%xmm0,%xmm0 + vpxor 96(%rsi),%xmm12,%xmm12 + vpxor 112(%rsi),%xmm4,%xmm4 + leaq 128(%rsi),%rsi + + vmovdqu %xmm6,0(%rdi) + vmovdqu %xmm1,16(%rdi) + vmovdqu %xmm13,32(%rdi) + vmovdqu %xmm5,48(%rdi) + vmovdqu %xmm15,64(%rdi) + vmovdqu %xmm10,80(%rdi) + vmovdqu %xmm2,96(%rdi) + vmovdqu %xmm9,112(%rdi) + leaq 128(%rdi),%rdi + vmovdqu %xmm11,0(%rdi) + vmovdqu %xmm3,16(%rdi) + vmovdqu %xmm14,32(%rdi) + vmovdqu %xmm7,48(%rdi) + vmovdqu %xmm8,64(%rdi) + vmovdqu %xmm0,80(%rdi) + vmovdqu %xmm12,96(%rdi) + vmovdqu %xmm4,112(%rdi) + leaq 128(%rdi),%rdi + + subq $256,%rdx + jnz .Loop_outer4xop + + jmp .Ldone4xop + +.align 32 +.Ltail4xop: + cmpq $192,%rdx + jae .L192_or_more4xop + cmpq $128,%rdx + jae .L128_or_more4xop + cmpq $64,%rdx + jae .L64_or_more4xop + + xorq %r10,%r10 + vmovdqa %xmm6,0(%rsp) + vmovdqa %xmm1,16(%rsp) + vmovdqa %xmm13,32(%rsp) + vmovdqa %xmm5,48(%rsp) + jmp .Loop_tail4xop + +.align 32 +.L64_or_more4xop: + vpxor 0(%rsi),%xmm6,%xmm6 + vpxor 16(%rsi),%xmm1,%xmm1 + vpxor 32(%rsi),%xmm13,%xmm13 + vpxor 48(%rsi),%xmm5,%xmm5 + vmovdqu %xmm6,0(%rdi) + vmovdqu %xmm1,16(%rdi) + vmovdqu %xmm13,32(%rdi) + vmovdqu %xmm5,48(%rdi) + je .Ldone4xop + + leaq 64(%rsi),%rsi + vmovdqa %xmm15,0(%rsp) + xorq %r10,%r10 + vmovdqa %xmm10,16(%rsp) + leaq 64(%rdi),%rdi + vmovdqa %xmm2,32(%rsp) + subq $64,%rdx + vmovdqa %xmm9,48(%rsp) + jmp .Loop_tail4xop + +.align 32 +.L128_or_more4xop: + vpxor 0(%rsi),%xmm6,%xmm6 + vpxor 16(%rsi),%xmm1,%xmm1 + vpxor 32(%rsi),%xmm13,%xmm13 + vpxor 48(%rsi),%xmm5,%xmm5 + vpxor 64(%rsi),%xmm15,%xmm15 + vpxor 80(%rsi),%xmm10,%xmm10 + vpxor 96(%rsi),%xmm2,%xmm2 + vpxor 112(%rsi),%xmm9,%xmm9 + + vmovdqu %xmm6,0(%rdi) + vmovdqu %xmm1,16(%rdi) + vmovdqu %xmm13,32(%rdi) + vmovdqu %xmm5,48(%rdi) + vmovdqu %xmm15,64(%rdi) + vmovdqu %xmm10,80(%rdi) + vmovdqu %xmm2,96(%rdi) + vmovdqu %xmm9,112(%rdi) + je .Ldone4xop + + leaq 128(%rsi),%rsi + vmovdqa %xmm11,0(%rsp) + xorq %r10,%r10 + vmovdqa %xmm3,16(%rsp) + leaq 128(%rdi),%rdi + vmovdqa %xmm14,32(%rsp) + subq $128,%rdx + vmovdqa %xmm7,48(%rsp) + jmp .Loop_tail4xop + +.align 32 +.L192_or_more4xop: + vpxor 0(%rsi),%xmm6,%xmm6 + vpxor 16(%rsi),%xmm1,%xmm1 + vpxor 32(%rsi),%xmm13,%xmm13 + vpxor 48(%rsi),%xmm5,%xmm5 + vpxor 64(%rsi),%xmm15,%xmm15 + vpxor 80(%rsi),%xmm10,%xmm10 + vpxor 96(%rsi),%xmm2,%xmm2 + vpxor 112(%rsi),%xmm9,%xmm9 + leaq 128(%rsi),%rsi + vpxor 0(%rsi),%xmm11,%xmm11 + vpxor 16(%rsi),%xmm3,%xmm3 + vpxor 32(%rsi),%xmm14,%xmm14 + vpxor 48(%rsi),%xmm7,%xmm7 + + vmovdqu %xmm6,0(%rdi) + vmovdqu %xmm1,16(%rdi) + vmovdqu %xmm13,32(%rdi) + vmovdqu %xmm5,48(%rdi) + vmovdqu %xmm15,64(%rdi) + vmovdqu %xmm10,80(%rdi) + vmovdqu %xmm2,96(%rdi) + vmovdqu %xmm9,112(%rdi) + leaq 128(%rdi),%rdi + vmovdqu %xmm11,0(%rdi) + vmovdqu %xmm3,16(%rdi) + vmovdqu %xmm14,32(%rdi) + vmovdqu %xmm7,48(%rdi) + je .Ldone4xop + + leaq 64(%rsi),%rsi + vmovdqa %xmm8,0(%rsp) + xorq %r10,%r10 + vmovdqa %xmm0,16(%rsp) + leaq 64(%rdi),%rdi + vmovdqa %xmm12,32(%rsp) + subq $192,%rdx + vmovdqa %xmm4,48(%rsp) + +.Loop_tail4xop: + movzbl (%rsi,%r10,1),%eax + movzbl (%rsp,%r10,1),%ecx + leaq 1(%r10),%r10 + xorl %ecx,%eax + movb %al,-1(%rdi,%r10,1) + decq %rdx + jnz .Loop_tail4xop + +.Ldone4xop: + vzeroupper + leaq (%r9),%rsp +.cfi_def_cfa_register %rsp +.L4xop_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size ChaCha20_4xop,.-ChaCha20_4xop +.type ChaCha20_8x,@function +.align 32 +ChaCha20_8x: +.cfi_startproc +.LChaCha20_8x: + movq %rsp,%r9 +.cfi_def_cfa_register %r9 + subq $0x280+8,%rsp + andq $-32,%rsp + vzeroupper + + + + + + + + + + + vbroadcasti128 .Lsigma(%rip),%ymm11 + vbroadcasti128 (%rcx),%ymm3 + vbroadcasti128 16(%rcx),%ymm15 + vbroadcasti128 (%r8),%ymm7 + leaq 256(%rsp),%rcx + leaq 512(%rsp),%rax + leaq .Lrot16(%rip),%r10 + leaq .Lrot24(%rip),%r11 + + vpshufd $0x00,%ymm11,%ymm8 + vpshufd $0x55,%ymm11,%ymm9 + vmovdqa %ymm8,128-256(%rcx) + vpshufd $0xaa,%ymm11,%ymm10 + vmovdqa %ymm9,160-256(%rcx) + vpshufd $0xff,%ymm11,%ymm11 + vmovdqa %ymm10,192-256(%rcx) + vmovdqa %ymm11,224-256(%rcx) + + vpshufd $0x00,%ymm3,%ymm0 + vpshufd $0x55,%ymm3,%ymm1 + vmovdqa %ymm0,256-256(%rcx) + vpshufd $0xaa,%ymm3,%ymm2 + vmovdqa %ymm1,288-256(%rcx) + vpshufd $0xff,%ymm3,%ymm3 + vmovdqa %ymm2,320-256(%rcx) + vmovdqa %ymm3,352-256(%rcx) + + vpshufd $0x00,%ymm15,%ymm12 + vpshufd $0x55,%ymm15,%ymm13 + vmovdqa %ymm12,384-512(%rax) + vpshufd $0xaa,%ymm15,%ymm14 + vmovdqa %ymm13,416-512(%rax) + vpshufd $0xff,%ymm15,%ymm15 + vmovdqa %ymm14,448-512(%rax) + vmovdqa %ymm15,480-512(%rax) + + vpshufd $0x00,%ymm7,%ymm4 + vpshufd $0x55,%ymm7,%ymm5 + vpaddd .Lincy(%rip),%ymm4,%ymm4 + vpshufd $0xaa,%ymm7,%ymm6 + vmovdqa %ymm5,544-512(%rax) + vpshufd $0xff,%ymm7,%ymm7 + vmovdqa %ymm6,576-512(%rax) + vmovdqa %ymm7,608-512(%rax) + + jmp .Loop_enter8x + +.align 32 +.Loop_outer8x: + vmovdqa 128-256(%rcx),%ymm8 + vmovdqa 160-256(%rcx),%ymm9 + vmovdqa 192-256(%rcx),%ymm10 + vmovdqa 224-256(%rcx),%ymm11 + vmovdqa 256-256(%rcx),%ymm0 + vmovdqa 288-256(%rcx),%ymm1 + vmovdqa 320-256(%rcx),%ymm2 + vmovdqa 352-256(%rcx),%ymm3 + vmovdqa 384-512(%rax),%ymm12 + vmovdqa 416-512(%rax),%ymm13 + vmovdqa 448-512(%rax),%ymm14 + vmovdqa 480-512(%rax),%ymm15 + vmovdqa 512-512(%rax),%ymm4 + vmovdqa 544-512(%rax),%ymm5 + vmovdqa 576-512(%rax),%ymm6 + vmovdqa 608-512(%rax),%ymm7 + vpaddd .Leight(%rip),%ymm4,%ymm4 + +.Loop_enter8x: + vmovdqa %ymm14,64(%rsp) + vmovdqa %ymm15,96(%rsp) + vbroadcasti128 (%r10),%ymm15 + vmovdqa %ymm4,512-512(%rax) + movl $10,%eax + jmp .Loop8x + +.align 32 +.Loop8x: + vpaddd %ymm0,%ymm8,%ymm8 + vpxor %ymm4,%ymm8,%ymm4 + vpshufb %ymm15,%ymm4,%ymm4 + vpaddd %ymm1,%ymm9,%ymm9 + vpxor %ymm5,%ymm9,%ymm5 + vpshufb %ymm15,%ymm5,%ymm5 + vpaddd %ymm4,%ymm12,%ymm12 + vpxor %ymm0,%ymm12,%ymm0 + vpslld $12,%ymm0,%ymm14 + vpsrld $20,%ymm0,%ymm0 + vpor %ymm0,%ymm14,%ymm0 + vbroadcasti128 (%r11),%ymm14 + vpaddd %ymm5,%ymm13,%ymm13 + vpxor %ymm1,%ymm13,%ymm1 + vpslld $12,%ymm1,%ymm15 + vpsrld $20,%ymm1,%ymm1 + vpor %ymm1,%ymm15,%ymm1 + vpaddd %ymm0,%ymm8,%ymm8 + vpxor %ymm4,%ymm8,%ymm4 + vpshufb %ymm14,%ymm4,%ymm4 + vpaddd %ymm1,%ymm9,%ymm9 + vpxor %ymm5,%ymm9,%ymm5 + vpshufb %ymm14,%ymm5,%ymm5 + vpaddd %ymm4,%ymm12,%ymm12 + vpxor %ymm0,%ymm12,%ymm0 + vpslld $7,%ymm0,%ymm15 + vpsrld $25,%ymm0,%ymm0 + vpor %ymm0,%ymm15,%ymm0 + vbroadcasti128 (%r10),%ymm15 + vpaddd %ymm5,%ymm13,%ymm13 + vpxor %ymm1,%ymm13,%ymm1 + vpslld $7,%ymm1,%ymm14 + vpsrld $25,%ymm1,%ymm1 + vpor %ymm1,%ymm14,%ymm1 + vmovdqa %ymm12,0(%rsp) + vmovdqa %ymm13,32(%rsp) + vmovdqa 64(%rsp),%ymm12 + vmovdqa 96(%rsp),%ymm13 + vpaddd %ymm2,%ymm10,%ymm10 + vpxor %ymm6,%ymm10,%ymm6 + vpshufb %ymm15,%ymm6,%ymm6 + vpaddd %ymm3,%ymm11,%ymm11 + vpxor %ymm7,%ymm11,%ymm7 + vpshufb %ymm15,%ymm7,%ymm7 + vpaddd %ymm6,%ymm12,%ymm12 + vpxor %ymm2,%ymm12,%ymm2 + vpslld $12,%ymm2,%ymm14 + vpsrld $20,%ymm2,%ymm2 + vpor %ymm2,%ymm14,%ymm2 + vbroadcasti128 (%r11),%ymm14 + vpaddd %ymm7,%ymm13,%ymm13 + vpxor %ymm3,%ymm13,%ymm3 + vpslld $12,%ymm3,%ymm15 + vpsrld $20,%ymm3,%ymm3 + vpor %ymm3,%ymm15,%ymm3 + vpaddd %ymm2,%ymm10,%ymm10 + vpxor %ymm6,%ymm10,%ymm6 + vpshufb %ymm14,%ymm6,%ymm6 + vpaddd %ymm3,%ymm11,%ymm11 + vpxor %ymm7,%ymm11,%ymm7 + vpshufb %ymm14,%ymm7,%ymm7 + vpaddd %ymm6,%ymm12,%ymm12 + vpxor %ymm2,%ymm12,%ymm2 + vpslld $7,%ymm2,%ymm15 + vpsrld $25,%ymm2,%ymm2 + vpor %ymm2,%ymm15,%ymm2 + vbroadcasti128 (%r10),%ymm15 + vpaddd %ymm7,%ymm13,%ymm13 + vpxor %ymm3,%ymm13,%ymm3 + vpslld $7,%ymm3,%ymm14 + vpsrld $25,%ymm3,%ymm3 + vpor %ymm3,%ymm14,%ymm3 + vpaddd %ymm1,%ymm8,%ymm8 + vpxor %ymm7,%ymm8,%ymm7 + vpshufb %ymm15,%ymm7,%ymm7 + vpaddd %ymm2,%ymm9,%ymm9 + vpxor %ymm4,%ymm9,%ymm4 + vpshufb %ymm15,%ymm4,%ymm4 + vpaddd %ymm7,%ymm12,%ymm12 + vpxor %ymm1,%ymm12,%ymm1 + vpslld $12,%ymm1,%ymm14 + vpsrld $20,%ymm1,%ymm1 + vpor %ymm1,%ymm14,%ymm1 + vbroadcasti128 (%r11),%ymm14 + vpaddd %ymm4,%ymm13,%ymm13 + vpxor %ymm2,%ymm13,%ymm2 + vpslld $12,%ymm2,%ymm15 + vpsrld $20,%ymm2,%ymm2 + vpor %ymm2,%ymm15,%ymm2 + vpaddd %ymm1,%ymm8,%ymm8 + vpxor %ymm7,%ymm8,%ymm7 + vpshufb %ymm14,%ymm7,%ymm7 + vpaddd %ymm2,%ymm9,%ymm9 + vpxor %ymm4,%ymm9,%ymm4 + vpshufb %ymm14,%ymm4,%ymm4 + vpaddd %ymm7,%ymm12,%ymm12 + vpxor %ymm1,%ymm12,%ymm1 + vpslld $7,%ymm1,%ymm15 + vpsrld $25,%ymm1,%ymm1 + vpor %ymm1,%ymm15,%ymm1 + vbroadcasti128 (%r10),%ymm15 + vpaddd %ymm4,%ymm13,%ymm13 + vpxor %ymm2,%ymm13,%ymm2 + vpslld $7,%ymm2,%ymm14 + vpsrld $25,%ymm2,%ymm2 + vpor %ymm2,%ymm14,%ymm2 + vmovdqa %ymm12,64(%rsp) + vmovdqa %ymm13,96(%rsp) + vmovdqa 0(%rsp),%ymm12 + vmovdqa 32(%rsp),%ymm13 + vpaddd %ymm3,%ymm10,%ymm10 + vpxor %ymm5,%ymm10,%ymm5 + vpshufb %ymm15,%ymm5,%ymm5 + vpaddd %ymm0,%ymm11,%ymm11 + vpxor %ymm6,%ymm11,%ymm6 + vpshufb %ymm15,%ymm6,%ymm6 + vpaddd %ymm5,%ymm12,%ymm12 + vpxor %ymm3,%ymm12,%ymm3 + vpslld $12,%ymm3,%ymm14 + vpsrld $20,%ymm3,%ymm3 + vpor %ymm3,%ymm14,%ymm3 + vbroadcasti128 (%r11),%ymm14 + vpaddd %ymm6,%ymm13,%ymm13 + vpxor %ymm0,%ymm13,%ymm0 + vpslld $12,%ymm0,%ymm15 + vpsrld $20,%ymm0,%ymm0 + vpor %ymm0,%ymm15,%ymm0 + vpaddd %ymm3,%ymm10,%ymm10 + vpxor %ymm5,%ymm10,%ymm5 + vpshufb %ymm14,%ymm5,%ymm5 + vpaddd %ymm0,%ymm11,%ymm11 + vpxor %ymm6,%ymm11,%ymm6 + vpshufb %ymm14,%ymm6,%ymm6 + vpaddd %ymm5,%ymm12,%ymm12 + vpxor %ymm3,%ymm12,%ymm3 + vpslld $7,%ymm3,%ymm15 + vpsrld $25,%ymm3,%ymm3 + vpor %ymm3,%ymm15,%ymm3 + vbroadcasti128 (%r10),%ymm15 + vpaddd %ymm6,%ymm13,%ymm13 + vpxor %ymm0,%ymm13,%ymm0 + vpslld $7,%ymm0,%ymm14 + vpsrld $25,%ymm0,%ymm0 + vpor %ymm0,%ymm14,%ymm0 + decl %eax + jnz .Loop8x + + leaq 512(%rsp),%rax + vpaddd 128-256(%rcx),%ymm8,%ymm8 + vpaddd 160-256(%rcx),%ymm9,%ymm9 + vpaddd 192-256(%rcx),%ymm10,%ymm10 + vpaddd 224-256(%rcx),%ymm11,%ymm11 + + vpunpckldq %ymm9,%ymm8,%ymm14 + vpunpckldq %ymm11,%ymm10,%ymm15 + vpunpckhdq %ymm9,%ymm8,%ymm8 + vpunpckhdq %ymm11,%ymm10,%ymm10 + vpunpcklqdq %ymm15,%ymm14,%ymm9 + vpunpckhqdq %ymm15,%ymm14,%ymm14 + vpunpcklqdq %ymm10,%ymm8,%ymm11 + vpunpckhqdq %ymm10,%ymm8,%ymm8 + vpaddd 256-256(%rcx),%ymm0,%ymm0 + vpaddd 288-256(%rcx),%ymm1,%ymm1 + vpaddd 320-256(%rcx),%ymm2,%ymm2 + vpaddd 352-256(%rcx),%ymm3,%ymm3 + + vpunpckldq %ymm1,%ymm0,%ymm10 + vpunpckldq %ymm3,%ymm2,%ymm15 + vpunpckhdq %ymm1,%ymm0,%ymm0 + vpunpckhdq %ymm3,%ymm2,%ymm2 + vpunpcklqdq %ymm15,%ymm10,%ymm1 + vpunpckhqdq %ymm15,%ymm10,%ymm10 + vpunpcklqdq %ymm2,%ymm0,%ymm3 + vpunpckhqdq %ymm2,%ymm0,%ymm0 + vperm2i128 $0x20,%ymm1,%ymm9,%ymm15 + vperm2i128 $0x31,%ymm1,%ymm9,%ymm1 + vperm2i128 $0x20,%ymm10,%ymm14,%ymm9 + vperm2i128 $0x31,%ymm10,%ymm14,%ymm10 + vperm2i128 $0x20,%ymm3,%ymm11,%ymm14 + vperm2i128 $0x31,%ymm3,%ymm11,%ymm3 + vperm2i128 $0x20,%ymm0,%ymm8,%ymm11 + vperm2i128 $0x31,%ymm0,%ymm8,%ymm0 + vmovdqa %ymm15,0(%rsp) + vmovdqa %ymm9,32(%rsp) + vmovdqa 64(%rsp),%ymm15 + vmovdqa 96(%rsp),%ymm9 + + vpaddd 384-512(%rax),%ymm12,%ymm12 + vpaddd 416-512(%rax),%ymm13,%ymm13 + vpaddd 448-512(%rax),%ymm15,%ymm15 + vpaddd 480-512(%rax),%ymm9,%ymm9 + + vpunpckldq %ymm13,%ymm12,%ymm2 + vpunpckldq %ymm9,%ymm15,%ymm8 + vpunpckhdq %ymm13,%ymm12,%ymm12 + vpunpckhdq %ymm9,%ymm15,%ymm15 + vpunpcklqdq %ymm8,%ymm2,%ymm13 + vpunpckhqdq %ymm8,%ymm2,%ymm2 + vpunpcklqdq %ymm15,%ymm12,%ymm9 + vpunpckhqdq %ymm15,%ymm12,%ymm12 + vpaddd 512-512(%rax),%ymm4,%ymm4 + vpaddd 544-512(%rax),%ymm5,%ymm5 + vpaddd 576-512(%rax),%ymm6,%ymm6 + vpaddd 608-512(%rax),%ymm7,%ymm7 + + vpunpckldq %ymm5,%ymm4,%ymm15 + vpunpckldq %ymm7,%ymm6,%ymm8 + vpunpckhdq %ymm5,%ymm4,%ymm4 + vpunpckhdq %ymm7,%ymm6,%ymm6 + vpunpcklqdq %ymm8,%ymm15,%ymm5 + vpunpckhqdq %ymm8,%ymm15,%ymm15 + vpunpcklqdq %ymm6,%ymm4,%ymm7 + vpunpckhqdq %ymm6,%ymm4,%ymm4 + vperm2i128 $0x20,%ymm5,%ymm13,%ymm8 + vperm2i128 $0x31,%ymm5,%ymm13,%ymm5 + vperm2i128 $0x20,%ymm15,%ymm2,%ymm13 + vperm2i128 $0x31,%ymm15,%ymm2,%ymm15 + vperm2i128 $0x20,%ymm7,%ymm9,%ymm2 + vperm2i128 $0x31,%ymm7,%ymm9,%ymm7 + vperm2i128 $0x20,%ymm4,%ymm12,%ymm9 + vperm2i128 $0x31,%ymm4,%ymm12,%ymm4 + vmovdqa 0(%rsp),%ymm6 + vmovdqa 32(%rsp),%ymm12 + + cmpq $512,%rdx + jb .Ltail8x + + vpxor 0(%rsi),%ymm6,%ymm6 + vpxor 32(%rsi),%ymm8,%ymm8 + vpxor 64(%rsi),%ymm1,%ymm1 + vpxor 96(%rsi),%ymm5,%ymm5 + leaq 128(%rsi),%rsi + vmovdqu %ymm6,0(%rdi) + vmovdqu %ymm8,32(%rdi) + vmovdqu %ymm1,64(%rdi) + vmovdqu %ymm5,96(%rdi) + leaq 128(%rdi),%rdi + + vpxor 0(%rsi),%ymm12,%ymm12 + vpxor 32(%rsi),%ymm13,%ymm13 + vpxor 64(%rsi),%ymm10,%ymm10 + vpxor 96(%rsi),%ymm15,%ymm15 + leaq 128(%rsi),%rsi + vmovdqu %ymm12,0(%rdi) + vmovdqu %ymm13,32(%rdi) + vmovdqu %ymm10,64(%rdi) + vmovdqu %ymm15,96(%rdi) + leaq 128(%rdi),%rdi + + vpxor 0(%rsi),%ymm14,%ymm14 + vpxor 32(%rsi),%ymm2,%ymm2 + vpxor 64(%rsi),%ymm3,%ymm3 + vpxor 96(%rsi),%ymm7,%ymm7 + leaq 128(%rsi),%rsi + vmovdqu %ymm14,0(%rdi) + vmovdqu %ymm2,32(%rdi) + vmovdqu %ymm3,64(%rdi) + vmovdqu %ymm7,96(%rdi) + leaq 128(%rdi),%rdi + + vpxor 0(%rsi),%ymm11,%ymm11 + vpxor 32(%rsi),%ymm9,%ymm9 + vpxor 64(%rsi),%ymm0,%ymm0 + vpxor 96(%rsi),%ymm4,%ymm4 + leaq 128(%rsi),%rsi + vmovdqu %ymm11,0(%rdi) + vmovdqu %ymm9,32(%rdi) + vmovdqu %ymm0,64(%rdi) + vmovdqu %ymm4,96(%rdi) + leaq 128(%rdi),%rdi + + subq $512,%rdx + jnz .Loop_outer8x + + jmp .Ldone8x + +.Ltail8x: + cmpq $448,%rdx + jae .L448_or_more8x + cmpq $384,%rdx + jae .L384_or_more8x + cmpq $320,%rdx + jae .L320_or_more8x + cmpq $256,%rdx + jae .L256_or_more8x + cmpq $192,%rdx + jae .L192_or_more8x + cmpq $128,%rdx + jae .L128_or_more8x + cmpq $64,%rdx + jae .L64_or_more8x + + xorq %r10,%r10 + vmovdqa %ymm6,0(%rsp) + vmovdqa %ymm8,32(%rsp) + jmp .Loop_tail8x + +.align 32 +.L64_or_more8x: + vpxor 0(%rsi),%ymm6,%ymm6 + vpxor 32(%rsi),%ymm8,%ymm8 + vmovdqu %ymm6,0(%rdi) + vmovdqu %ymm8,32(%rdi) + je .Ldone8x + + leaq 64(%rsi),%rsi + xorq %r10,%r10 + vmovdqa %ymm1,0(%rsp) + leaq 64(%rdi),%rdi + subq $64,%rdx + vmovdqa %ymm5,32(%rsp) + jmp .Loop_tail8x + +.align 32 +.L128_or_more8x: + vpxor 0(%rsi),%ymm6,%ymm6 + vpxor 32(%rsi),%ymm8,%ymm8 + vpxor 64(%rsi),%ymm1,%ymm1 + vpxor 96(%rsi),%ymm5,%ymm5 + vmovdqu %ymm6,0(%rdi) + vmovdqu %ymm8,32(%rdi) + vmovdqu %ymm1,64(%rdi) + vmovdqu %ymm5,96(%rdi) + je .Ldone8x + + leaq 128(%rsi),%rsi + xorq %r10,%r10 + vmovdqa %ymm12,0(%rsp) + leaq 128(%rdi),%rdi + subq $128,%rdx + vmovdqa %ymm13,32(%rsp) + jmp .Loop_tail8x + +.align 32 +.L192_or_more8x: + vpxor 0(%rsi),%ymm6,%ymm6 + vpxor 32(%rsi),%ymm8,%ymm8 + vpxor 64(%rsi),%ymm1,%ymm1 + vpxor 96(%rsi),%ymm5,%ymm5 + vpxor 128(%rsi),%ymm12,%ymm12 + vpxor 160(%rsi),%ymm13,%ymm13 + vmovdqu %ymm6,0(%rdi) + vmovdqu %ymm8,32(%rdi) + vmovdqu %ymm1,64(%rdi) + vmovdqu %ymm5,96(%rdi) + vmovdqu %ymm12,128(%rdi) + vmovdqu %ymm13,160(%rdi) + je .Ldone8x + + leaq 192(%rsi),%rsi + xorq %r10,%r10 + vmovdqa %ymm10,0(%rsp) + leaq 192(%rdi),%rdi + subq $192,%rdx + vmovdqa %ymm15,32(%rsp) + jmp .Loop_tail8x + +.align 32 +.L256_or_more8x: + vpxor 0(%rsi),%ymm6,%ymm6 + vpxor 32(%rsi),%ymm8,%ymm8 + vpxor 64(%rsi),%ymm1,%ymm1 + vpxor 96(%rsi),%ymm5,%ymm5 + vpxor 128(%rsi),%ymm12,%ymm12 + vpxor 160(%rsi),%ymm13,%ymm13 + vpxor 192(%rsi),%ymm10,%ymm10 + vpxor 224(%rsi),%ymm15,%ymm15 + vmovdqu %ymm6,0(%rdi) + vmovdqu %ymm8,32(%rdi) + vmovdqu %ymm1,64(%rdi) + vmovdqu %ymm5,96(%rdi) + vmovdqu %ymm12,128(%rdi) + vmovdqu %ymm13,160(%rdi) + vmovdqu %ymm10,192(%rdi) + vmovdqu %ymm15,224(%rdi) + je .Ldone8x + + leaq 256(%rsi),%rsi + xorq %r10,%r10 + vmovdqa %ymm14,0(%rsp) + leaq 256(%rdi),%rdi + subq $256,%rdx + vmovdqa %ymm2,32(%rsp) + jmp .Loop_tail8x + +.align 32 +.L320_or_more8x: + vpxor 0(%rsi),%ymm6,%ymm6 + vpxor 32(%rsi),%ymm8,%ymm8 + vpxor 64(%rsi),%ymm1,%ymm1 + vpxor 96(%rsi),%ymm5,%ymm5 + vpxor 128(%rsi),%ymm12,%ymm12 + vpxor 160(%rsi),%ymm13,%ymm13 + vpxor 192(%rsi),%ymm10,%ymm10 + vpxor 224(%rsi),%ymm15,%ymm15 + vpxor 256(%rsi),%ymm14,%ymm14 + vpxor 288(%rsi),%ymm2,%ymm2 + vmovdqu %ymm6,0(%rdi) + vmovdqu %ymm8,32(%rdi) + vmovdqu %ymm1,64(%rdi) + vmovdqu %ymm5,96(%rdi) + vmovdqu %ymm12,128(%rdi) + vmovdqu %ymm13,160(%rdi) + vmovdqu %ymm10,192(%rdi) + vmovdqu %ymm15,224(%rdi) + vmovdqu %ymm14,256(%rdi) + vmovdqu %ymm2,288(%rdi) + je .Ldone8x + + leaq 320(%rsi),%rsi + xorq %r10,%r10 + vmovdqa %ymm3,0(%rsp) + leaq 320(%rdi),%rdi + subq $320,%rdx + vmovdqa %ymm7,32(%rsp) + jmp .Loop_tail8x + +.align 32 +.L384_or_more8x: + vpxor 0(%rsi),%ymm6,%ymm6 + vpxor 32(%rsi),%ymm8,%ymm8 + vpxor 64(%rsi),%ymm1,%ymm1 + vpxor 96(%rsi),%ymm5,%ymm5 + vpxor 128(%rsi),%ymm12,%ymm12 + vpxor 160(%rsi),%ymm13,%ymm13 + vpxor 192(%rsi),%ymm10,%ymm10 + vpxor 224(%rsi),%ymm15,%ymm15 + vpxor 256(%rsi),%ymm14,%ymm14 + vpxor 288(%rsi),%ymm2,%ymm2 + vpxor 320(%rsi),%ymm3,%ymm3 + vpxor 352(%rsi),%ymm7,%ymm7 + vmovdqu %ymm6,0(%rdi) + vmovdqu %ymm8,32(%rdi) + vmovdqu %ymm1,64(%rdi) + vmovdqu %ymm5,96(%rdi) + vmovdqu %ymm12,128(%rdi) + vmovdqu %ymm13,160(%rdi) + vmovdqu %ymm10,192(%rdi) + vmovdqu %ymm15,224(%rdi) + vmovdqu %ymm14,256(%rdi) + vmovdqu %ymm2,288(%rdi) + vmovdqu %ymm3,320(%rdi) + vmovdqu %ymm7,352(%rdi) + je .Ldone8x + + leaq 384(%rsi),%rsi + xorq %r10,%r10 + vmovdqa %ymm11,0(%rsp) + leaq 384(%rdi),%rdi + subq $384,%rdx + vmovdqa %ymm9,32(%rsp) + jmp .Loop_tail8x + +.align 32 +.L448_or_more8x: + vpxor 0(%rsi),%ymm6,%ymm6 + vpxor 32(%rsi),%ymm8,%ymm8 + vpxor 64(%rsi),%ymm1,%ymm1 + vpxor 96(%rsi),%ymm5,%ymm5 + vpxor 128(%rsi),%ymm12,%ymm12 + vpxor 160(%rsi),%ymm13,%ymm13 + vpxor 192(%rsi),%ymm10,%ymm10 + vpxor 224(%rsi),%ymm15,%ymm15 + vpxor 256(%rsi),%ymm14,%ymm14 + vpxor 288(%rsi),%ymm2,%ymm2 + vpxor 320(%rsi),%ymm3,%ymm3 + vpxor 352(%rsi),%ymm7,%ymm7 + vpxor 384(%rsi),%ymm11,%ymm11 + vpxor 416(%rsi),%ymm9,%ymm9 + vmovdqu %ymm6,0(%rdi) + vmovdqu %ymm8,32(%rdi) + vmovdqu %ymm1,64(%rdi) + vmovdqu %ymm5,96(%rdi) + vmovdqu %ymm12,128(%rdi) + vmovdqu %ymm13,160(%rdi) + vmovdqu %ymm10,192(%rdi) + vmovdqu %ymm15,224(%rdi) + vmovdqu %ymm14,256(%rdi) + vmovdqu %ymm2,288(%rdi) + vmovdqu %ymm3,320(%rdi) + vmovdqu %ymm7,352(%rdi) + vmovdqu %ymm11,384(%rdi) + vmovdqu %ymm9,416(%rdi) + je .Ldone8x + + leaq 448(%rsi),%rsi + xorq %r10,%r10 + vmovdqa %ymm0,0(%rsp) + leaq 448(%rdi),%rdi + subq $448,%rdx + vmovdqa %ymm4,32(%rsp) + +.Loop_tail8x: + movzbl (%rsi,%r10,1),%eax + movzbl (%rsp,%r10,1),%ecx + leaq 1(%r10),%r10 + xorl %ecx,%eax + movb %al,-1(%rdi,%r10,1) + decq %rdx + jnz .Loop_tail8x + +.Ldone8x: + vzeroall + leaq (%r9),%rsp +.cfi_def_cfa_register %rsp +.L8x_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size ChaCha20_8x,.-ChaCha20_8x diff --git a/vere/ext/openssl/gen/linux-x86_64/crypto/ec/ecp_nistz256-x86_64.s b/vere/ext/openssl/gen/linux-x86_64/crypto/ec/ecp_nistz256-x86_64.s new file mode 100644 index 0000000..80569ca --- /dev/null +++ b/vere/ext/openssl/gen/linux-x86_64/crypto/ec/ecp_nistz256-x86_64.s @@ -0,0 +1,7343 @@ +.text +.globl ecp_nistz256_precomputed +.type ecp_nistz256_precomputed,@object +.align 4096 +ecp_nistz256_precomputed: +.long 0x18a9143c,0x79e730d4,0x5fedb601,0x75ba95fc,0x77622510,0x79fb732b,0xa53755c6,0x18905f76,0xce95560a,0xddf25357,0xba19e45c,0x8b4ab8e4,0xdd21f325,0xd2e88688,0x25885d85,0x8571ff18 +.long 0x10ddd64d,0x850046d4,0xa433827d,0xaa6ae3c1,0x8d1490d9,0x73220503,0x3dcf3a3b,0xf6bb32e4,0x61bee1a5,0x2f3648d3,0xeb236ff8,0x152cd7cb,0x92042dbe,0x19a8fb0e,0x0a5b8a3b,0x78c57751 +.long 0x4eebc127,0xffac3f90,0x087d81fb,0xb027f84a,0x87cbbc98,0x66ad77dd,0xb6ff747e,0x26936a3f,0xc983a7eb,0xb04c5c1f,0x0861fe1a,0x583e47ad,0x1a2ee98e,0x78820831,0xe587cc07,0xd5f06a29 +.long 0x46918dcc,0x74b0b50d,0xc623c173,0x4650a6ed,0xe8100af2,0x0cdaacac,0x41b0176b,0x577362f5,0xe4cbaba6,0x2d96f24c,0xfad6f447,0x17628471,0xe5ddd22e,0x6b6c36de,0x4c5ab863,0x84b14c39 +.long 0xc45c61f5,0xbe1b8aae,0x94b9537d,0x90ec649a,0xd076c20c,0x941cb5aa,0x890523c8,0xc9079605,0xe7ba4f10,0xeb309b4a,0xe5eb882b,0x73c568ef,0x7e7a1f68,0x3540a987,0x2dd1e916,0x73a076bb +.long 0x3e77664a,0x40394737,0x346cee3e,0x55ae744f,0x5b17a3ad,0xd50a961a,0x54213673,0x13074b59,0xd377e44b,0x93d36220,0xadff14b5,0x299c2b53,0xef639f11,0xf424d44c,0x4a07f75f,0xa4c9916d +.long 0xa0173b4f,0x0746354e,0xd23c00f7,0x2bd20213,0x0c23bb08,0xf43eaab5,0xc3123e03,0x13ba5119,0x3f5b9d4d,0x2847d030,0x5da67bdd,0x6742f2f2,0x77c94195,0xef933bdc,0x6e240867,0xeaedd915 +.long 0x9499a78f,0x27f14cd1,0x6f9b3455,0x462ab5c5,0xf02cfc6b,0x8f90f02a,0xb265230d,0xb763891e,0x532d4977,0xf59da3a9,0xcf9eba15,0x21e3327d,0xbe60bbf0,0x123c7b84,0x7706df76,0x56ec12f2 +.long 0x264e20e8,0x75c96e8f,0x59a7a841,0xabe6bfed,0x44c8eb00,0x2cc09c04,0xf0c4e16b,0xe05b3080,0xa45f3314,0x1eb7777a,0xce5d45e3,0x56af7bed,0x88b12f1a,0x2b6e019a,0xfd835f9b,0x086659cd +.long 0x9dc21ec8,0x2c18dbd1,0x0fcf8139,0x98f9868a,0x48250b49,0x737d2cd6,0x24b3428f,0xcc61c947,0x80dd9e76,0x0c2b4078,0x383fbe08,0xc43a8991,0x779be5d2,0x5f7d2d65,0xeb3b4ab5,0x78719a54 +.long 0x6245e404,0xea7d260a,0x6e7fdfe0,0x9de40795,0x8dac1ab5,0x1ff3a415,0x649c9073,0x3e7090f1,0x2b944e88,0x1a768561,0xe57f61c8,0x250f939e,0x1ead643d,0x0c0daa89,0xe125b88e,0x68930023 +.long 0xd2697768,0x04b71aa7,0xca345a33,0xabdedef5,0xee37385e,0x2409d29d,0xcb83e156,0x4ee1df77,0x1cbb5b43,0x0cac12d9,0xca895637,0x170ed2f6,0x8ade6d66,0x28228cfa,0x53238aca,0x7ff57c95 +.long 0x4b2ed709,0xccc42563,0x856fd30d,0x0e356769,0x559e9811,0xbcbcd43f,0x5395b759,0x738477ac,0xc00ee17f,0x35752b90,0x742ed2e3,0x68748390,0xbd1f5bc1,0x7cd06422,0xc9e7b797,0xfbc08769 +.long 0xb0cf664a,0xa242a35b,0x7f9707e3,0x126e48f7,0xc6832660,0x1717bf54,0xfd12c72e,0xfaae7332,0x995d586b,0x27b52db7,0x832237c2,0xbe29569e,0x2a65e7db,0xe8e4193e,0x2eaa1bbb,0x152706dc +.long 0xbc60055b,0x72bcd8b7,0x56e27e4b,0x03cc23ee,0xe4819370,0xee337424,0x0ad3da09,0xe2aa0e43,0x6383c45d,0x40b8524f,0x42a41b25,0xd7663554,0x778a4797,0x64efa6de,0x7079adf4,0x2042170a +.long 0x0bc6fb80,0x808b0b65,0x3ffe2e6b,0x5882e075,0x2c83f549,0xd5ef2f7c,0x9103b723,0x54d63c80,0x52a23f9b,0xf2f11bd6,0x4b0b6587,0x3670c319,0xb1580e9e,0x55c4623b,0x01efe220,0x64edf7b2 +.long 0xd53c5c9d,0x97091dcb,0xac0a177b,0xf17624b6,0x2cfe2dff,0xb0f13975,0x6c7a574e,0xc1a35c0a,0x93e79987,0x227d3146,0xe89cb80e,0x0575bf30,0x0d1883bb,0x2f4e247f,0x3274c3d0,0xebd51226 +.long 0x56ada97a,0x5f3e51c8,0x8f8b403e,0x4afc964d,0x412e2979,0xa6f247ab,0x6f80ebda,0x675abd1b,0x5e485a1d,0x66a2bd72,0x8f4f0b3c,0x4b2a5caf,0x1b847bba,0x2626927f,0x0502394d,0x6c6fc7d9 +.long 0xa5659ae8,0xfea912ba,0x25e1a16e,0x68363aba,0x752c41ac,0xb8842277,0x2897c3fc,0xfe545c28,0xdc4c696b,0x2d36e9e7,0xfba977c5,0x5806244a,0xe39508c1,0x85665e9b,0x6d12597b,0xf720ee25 +.long 0xd2337a31,0x8a979129,0x0f862bdc,0x5916868f,0x5dd283ba,0x048099d9,0xfe5bfb4e,0xe2d1eeb6,0x7884005d,0x82ef1c41,0xffffcbae,0xa2d4ec17,0x8aa95e66,0x9161c53f,0xc5fee0d0,0x5ee104e1 +.long 0xc135b208,0x562e4cec,0x4783f47d,0x74e1b265,0x5a3f3b30,0x6d2a506c,0xc16762fc,0xecead9f4,0xe286e5b9,0xf29dd4b2,0x83bb3c61,0x1b0fadc0,0x7fac29a4,0x7a75023e,0xc9477fa3,0xc086d5f1 +.long 0x2f6f3076,0x0fc61135,0xe3912a9a,0xc99ffa23,0xd2f8ba3d,0x6a0b0685,0xe93358a4,0xfdc777e8,0x35415f04,0x94a787bb,0x4d23fea4,0x640c2d6a,0x153a35b5,0x9de917da,0x5d5cd074,0x793e8d07 +.long 0x2de45068,0xf4f87653,0x9e2e1f6e,0x37c7a7e8,0xa3584069,0xd0825fa2,0x1727bf42,0xaf2cea7c,0x9e4785a9,0x0360a4fb,0x27299f4a,0xe5fda49c,0x71ac2f71,0x48068e13,0x9077666f,0x83d0687b +.long 0x15d02819,0x6d3883b2,0x40dd9a35,0x6d0d7550,0x1d2b469f,0x61d7cbf9,0x2efc3115,0xf97b232f,0xb24bcbc7,0xa551d750,0x88a1e356,0x11ea4949,0x93cb7501,0x7669f031,0xca737b8a,0x595dc55e +.long 0xd837879f,0xa4a319ac,0xed6b67b0,0x6fc1b49e,0x32f1f3af,0xe3959933,0x65432a2e,0x966742eb,0xb4966228,0x4b8dc9fe,0x43f43950,0x96cc6312,0xc9b731ee,0x12068859,0x56f79968,0x7b948dc3 +.long 0xed1f8008,0x61e4ad32,0xd8b17538,0xe6c9267a,0x857ff6fb,0x1ac7c5eb,0x55f2fb10,0x994baaa8,0x1d248018,0x84cf14e1,0x628ac508,0x5a39898b,0x5fa944f5,0x14fde97b,0xd12e5ac7,0xed178030 +.long 0x97e2feb4,0x042c2af4,0xaebf7313,0xd36a42d7,0x084ffdd7,0x49d2c9eb,0x2ef7c76a,0x9f8aa54b,0x09895e70,0x9200b7ba,0xddb7fb58,0x3bd0c66f,0x78eb4cbb,0x2d97d108,0xd84bde31,0x2d431068 +.long 0x172ccd1f,0x4b523eb7,0x30a6a892,0x7323cb28,0xcfe153eb,0x97082ec0,0xf2aadb97,0xe97f6b6a,0xd1a83da1,0x1d3d393e,0x804b2a68,0xa6a7f9c7,0x2d0cb71e,0x4a688b48,0x40585278,0xa9b4cc5f +.long 0xcb66e132,0x5e5db46a,0x0d925880,0xf1be963a,0x0317b9e2,0x944a7027,0x48603d48,0xe266f959,0x5c208899,0x98db6673,0xa2fb18a3,0x90472447,0x777c619f,0x8a966939,0x2a3be21b,0x3798142a +.long 0x3298b343,0xb4241cb1,0xb44f65a1,0xa3a14e49,0x3ac77acd,0xc5f4d6cd,0x52b6fc3c,0xd0288cb5,0x1c040abc,0xd5cc8c2f,0x06bf9b4a,0xb675511e,0x9b3aa441,0xd667da37,0x51601f72,0x460d45ce +.long 0x6755ff89,0xe2f73c69,0x473017e6,0xdd3cf7e7,0x3cf7600d,0x8ef5689d,0xb1fc87b4,0x948dc4f8,0x4ea53299,0xd9e9fe81,0x98eb6028,0x2d921ca2,0x0c9803fc,0xfaecedfd,0x4d7b4745,0xf38ae891 +.long 0xc5e3a3d8,0xd8c5fccf,0x4079dfbf,0xbefd904c,0xfead0197,0xbc6d6a58,0x695532a4,0x39227077,0xdbef42f5,0x09e23e6d,0x480a9908,0x7e449b64,0xad9a2e40,0x7b969c1a,0x9591c2a4,0x6231d792 +.long 0x0f664534,0x87151456,0x4b68f103,0x85ceae7c,0x65578ab9,0xac09c4ae,0xf044b10c,0x33ec6868,0x3a8ec1f1,0x6ac4832b,0x5847d5ef,0x5509d128,0x763f1574,0xf909604f,0xc32f63c4,0xb16c4303 +.long 0x7ca23cd3,0xb6ab2014,0xa391849d,0xcaa7a5c6,0x75678d94,0x5b0673a3,0xdd303e64,0xc982ddd4,0x5db6f971,0xfd7b000b,0x6f876f92,0xbba2cb1f,0x3c569426,0xc77332a3,0x570d74f8,0xa159100c +.long 0xdec67ef5,0xfd16847f,0x233e76b7,0x742ee464,0xefc2b4c8,0x0b8e4134,0x42a3e521,0xca640b86,0x8ceb6aa9,0x653a0190,0x547852d5,0x313c300c,0x6b237af7,0x24e4ab12,0x8bb47af8,0x2ba90162 +.long 0xa8219bb7,0x3d5e58d6,0x1b06c57f,0xc691d0bd,0xd257576e,0x0ae4cb10,0xd54a3dc3,0x3569656c,0x94cda03a,0xe5ebaebd,0x162bfe13,0x934e82d3,0xe251a0c6,0x450ac0ba,0xdd6da526,0x480b9e11 +.long 0x8cce08b5,0x00467bc5,0x7f178d55,0xb636458c,0xa677d806,0xc5748bae,0xdfa394eb,0x2763a387,0x7d3cebb6,0xa12b448a,0x6f20d850,0xe7adda3e,0x1558462c,0xf63ebce5,0x620088a8,0x58b36143 +.long 0x4d63c0ee,0x8a2cc3ca,0x0fe948ce,0x51233117,0x222ef33b,0x7463fd85,0x7c603d6c,0xadf0c7dc,0xfe7765e5,0x0ec32d3b,0xbf380409,0xccaab359,0x8e59319c,0xbdaa84d6,0x9c80c34d,0xd9a4c280 +.long 0xa059c142,0xa9d89488,0xff0b9346,0x6f5ae714,0x16fb3664,0x068f237d,0x363186ac,0x5853e4c4,0x63c52f98,0xe2d87d23,0x81828876,0x2ec4a766,0xe14e7b1c,0x47b864fa,0x69192408,0x0c0bc0e5 +.long 0xb82e9f3e,0xe4d7681d,0xdf25e13c,0x83200f0b,0x66f27280,0x8909984c,0x75f73227,0x462d7b00,0xf2651798,0xd90ba188,0x36ab1c34,0x74c6e18c,0x5ef54359,0xab256ea3,0xd1aa702f,0x03466612 +.long 0x2ed22e91,0x624d6049,0x6f072822,0x6fdfe0b5,0x39ce2271,0xeeca1115,0xdb01614f,0x98100a4f,0xa35c628f,0xb6b0daa2,0xc87e9a47,0xb6f94d2e,0x1d57d9ce,0xc6773259,0x03884a7b,0xf70bfeec +.long 0xed2bad01,0x5fb35ccf,0x1da6a5c7,0xa155cbe3,0x30a92f8f,0xc2e2594c,0x5bfafe43,0x649c89ce,0xe9ff257a,0xd158667d,0xf32c50ae,0x9b359611,0x906014cf,0x4b00b20b,0x89bc7d3d,0xf3a8cfe3 +.long 0x248a7d06,0x4ff23ffd,0x878873fa,0x80c5bfb4,0x05745981,0xb7d9ad90,0x3db01994,0x179c85db,0x61a6966c,0xba41b062,0xeadce5a8,0x4d82d052,0xa5e6a318,0x9e91cd3b,0x95b2dda0,0x47795f4f +.long 0xd55a897c,0xecfd7c1f,0xb29110fb,0x009194ab,0xe381d3b0,0x5f0e2046,0xa98dd291,0x5f3425f6,0x730d50da,0xbfa06687,0x4b083b7f,0x0423446c,0xd69d3417,0x397a247d,0x387ba42a,0xeb629f90 +.long 0xd5cd79bf,0x1ee426cc,0x946c6e18,0x0032940b,0x57477f58,0x1b1e8ae0,0x6d823278,0xe94f7d34,0x782ba21a,0xc747cb96,0xf72b33a5,0xc5254469,0xc7f80c81,0x772ef6de,0x2cd9e6b5,0xd73acbfe +.long 0x49ee90d9,0x4075b5b1,0xa06e9eba,0x785c339a,0xabf825e0,0xa1030d5b,0xa42931dc,0xcec684c3,0xc1586e63,0x42ab62c9,0x5ab43f2b,0x45431d66,0x55f7835d,0x57c8b2c0,0xc1b7f865,0x033da338 +.long 0xcaa76097,0x283c7513,0x36c83906,0x0a624fa9,0x715af2c7,0x6b20afec,0xeba78bfd,0x4b969974,0xd921d60e,0x220755cc,0x7baeca13,0x9b944e10,0x5ded93d4,0x04819d51,0x6dddfd27,0x9bbff86e +.long 0x77adc612,0x6b344130,0xbbd803a0,0xa7496529,0x6d8805bd,0x1a1baaa7,0x470343ad,0xc8403902,0x175adff1,0x39f59f66,0xb7d8c5b7,0x0b26d7fb,0x529d75e3,0xa875f5ce,0x41325cc2,0x85efc7e9 +.long 0x1ff6acd3,0x21950b42,0x53dc6909,0xffe70484,0x28766127,0xff4cd0b2,0x4fb7db2b,0xabdbe608,0x5e1109e8,0x837c9228,0xf4645b5a,0x26147d27,0xf7818ed8,0x4d78f592,0xf247fa36,0xd394077e +.long 0x488c171a,0x0fb9c2d0,0x13685278,0xa78bfbaa,0xd5b1fa6a,0xedfbe268,0x2b7eaba7,0x0dceb8db,0x9ae2b710,0xbf9e8089,0xa4449c96,0xefde7ae6,0xcc143a46,0x43b7716b,0xc3628c13,0xd7d34194 +.long 0x3b3f64c9,0x508cec1c,0x1e5edf3f,0xe20bc0ba,0x2f4318d4,0xda1deb85,0x5c3fa443,0xd20ebe0d,0x73241ea3,0x370b4ea7,0x5e1a5f65,0x61f1511c,0x82681c62,0x99a5e23d,0xa2f54c2d,0xd731e383 +.long 0x83445904,0x2692f36e,0xaf45f9c0,0x2e0ec469,0xc67528b7,0x905a3201,0xd0e5e542,0x88f77f34,0x5864687c,0xf67a8d29,0x22df3562,0x23b92eae,0x9bbec39e,0x5c27014b,0x9c0f0f8d,0x7ef2f226 +.long 0x546c4d8d,0x97359638,0x92f24679,0x5f9c3fc4,0xa8c8acd9,0x912e8bed,0x306634b0,0xec3a318d,0xc31cb264,0x80167f41,0x522113f2,0x3db82f6f,0xdcafe197,0xb155bcd2,0x43465283,0xfba1da59 +.long 0xb212cf53,0xa0425b8e,0xf8557c5f,0x4f2e512e,0x25c4d56c,0xc1286ff9,0xee26c851,0xbb8a0fea,0xe7d6107e,0xc28f70d2,0xe76265aa,0x7ee0c444,0x1d1936b1,0x3df277a4,0xea9595eb,0x1a556e3f +.long 0xe7305683,0x258bbbf9,0x07ef5be6,0x31eea5bf,0x46c814c1,0x0deb0e4a,0xa7b730dd,0x5cee8449,0xa0182bde,0xeab495c5,0x9e27a6b4,0xee759f87,0x80e518ca,0xc2cf6a68,0xf14cf3f4,0x25e8013f +.long 0x7e8d7a14,0x8fc44140,0x9556f36a,0xbb1ff3ca,0x14600044,0x6a844385,0x7451ae63,0xba3f0c4a,0x1f9af32a,0xdfcac25b,0xb1f2214b,0x01e0db86,0xa4b596ac,0x4e9a5bc2,0x026c2c08,0x83927681 +.long 0x7acaca28,0x3ec832e7,0xc7385b29,0x1bfeea57,0xfd1eaf38,0x068212e3,0x6acf8ccc,0xc1329830,0x2aac9e59,0xb909f2db,0xb661782a,0x5748060d,0xc79b7a01,0xc5ab2632,0x00017626,0xda44c6c6 +.long 0xa7ea82f0,0xf26c00e8,0xe4299aaf,0x99cac80d,0x7ed78be1,0xd66fe3b6,0x648d02cd,0x305f725f,0x623fb21b,0x33ed1bc4,0x7a6319ad,0xfa70533e,0xbe5ffb3e,0x17ab562d,0x56674741,0x06374994 +.long 0x5c46aa8e,0x69d44ed6,0xa8d063d1,0x2100d5d3,0xa2d17c36,0xcb9727ea,0x8add53b7,0x4c2bab1b,0x15426704,0xa084e90c,0xa837ebea,0x778afcd3,0x7ce477f8,0x6651f701,0x46fb7a8b,0xa0624998 +.long 0xed8a6e19,0xdc1e6828,0x4189d9c7,0x33fc2336,0x671c39bc,0x026f8fe2,0xbc6f9915,0xd40c4ccd,0xf80e75ca,0xafa135bb,0x22adff2c,0x12c651a0,0x4f51ad96,0xc40a04bd,0xbbe4e832,0x04820109 +.long 0x7f4c04cc,0x3667eb1a,0xa9404f84,0x59556621,0x7eceb50a,0x71cdf653,0x9b8335fa,0x994a44a6,0xdbeb9b69,0xd7faf819,0xeed4350d,0x473c5680,0xda44bba2,0xb6658466,0x872bdbf3,0x0d1bc780 +.long 0xa1962f91,0xe535f175,0xed58f5a7,0x6ed7e061,0x2089a233,0x177aa4c0,0xe539b413,0x0dbcb03a,0xbb32e38e,0xe3dc424e,0x6806701e,0x6472e5ef,0x814be9ee,0xdd47ff98,0x35ace009,0x6b60cfff +.long 0x9ff91fe5,0xb8d3d931,0xf0518eed,0x039c4800,0x9182cb26,0x95c37632,0x82fc568d,0x0763a434,0x383e76ba,0x707c04d5,0x824e8197,0xac98b930,0x91230de0,0x92bf7c8f,0x40959b70,0x90876a01 +.long 0x05968b80,0xdb6d96f3,0x089f73b9,0x380a0913,0xc2c61e01,0x7da70b83,0x569b38c7,0x95fb8394,0x80edfe2f,0x9a3c6512,0x8faeaf82,0x8f726bb9,0x78424bf8,0x8010a4a0,0x0e844970,0x29672044 +.long 0x7a2ad62a,0x63c5cb81,0xac62ff54,0x7ef2b6b9,0xb3ad9db5,0x3749bba4,0x46d5a617,0xad311f2c,0xc2ff3b6d,0xb77a8087,0x367834ff,0xb46feaf3,0x75d6b138,0xf8aa266d,0xec008188,0xfa38d320 +.long 0x696946fc,0x486d8ffa,0xb9cba56d,0x50fbc6d8,0x90f35a15,0x7e3d423e,0xc0dd962c,0x7c3da195,0x3cfd5d8b,0xe673fdb0,0x889dfca5,0x0704b7c2,0xf52305aa,0xf6ce581f,0x914d5e53,0x399d49eb +.long 0x6ec293cd,0x380a496d,0x8e7051f5,0x733dbda7,0xb849140a,0x037e388d,0x5946dbf6,0xee4b32b0,0xcae368d1,0xb1c4fda9,0xfdb0b2f3,0x5001a7b0,0x2e3ac46e,0x6df59374,0x39b3e656,0x4af675f2 +.long 0x39949296,0x44e38110,0x361db1b5,0x5b63827b,0x206eaff5,0x3e5323ed,0xc21f4290,0x942370d2,0xe0d985a1,0xf2caaf2e,0x7239846d,0x192cc64b,0xae6312f8,0x7c0b8f47,0x96620108,0x7dc61f91 +.long 0xc2da7de9,0xb830fb5b,0x0ff8d3be,0xd0e643df,0x188a9641,0x31ee77ba,0xbcf6d502,0x4e8aa3aa,0x9a49110f,0xf9fb6532,0x2dd6b220,0xd18317f6,0x52c3ea5a,0x7e3ced41,0x7d579c4a,0x0d296a14 +.long 0xed4c3717,0x35d6a53e,0x3d0ed2a3,0x9f8240cf,0xe5543aa5,0x8c0d4d05,0xdd33b4b4,0x45d5bbfb,0x137fd28e,0xfa04cc73,0xc73b3ffd,0x862ac6ef,0x31f51ef2,0x403ff9f5,0xbc73f5a2,0x34d5e0fc +.long 0x08913f4f,0xf2526820,0xeac93d95,0xea20ed61,0x6ca6b26c,0x51ed38b4,0xea4327b0,0x8662dcbc,0x725d2aaa,0x6daf295c,0x8e52dcda,0xbad2752f,0x0b17dacc,0x2210e721,0xd51e8232,0xa37f7912 +.long 0x44cc3add,0x4f7081e1,0x87be82cf,0xd5ffa1d6,0x0edd6472,0x89890b6c,0x3ed17863,0xada26e1a,0x63483caa,0x276f2715,0x2f6077fd,0xe6924cd9,0x0a466e3c,0x05a7fe98,0xb1902d1f,0xf1c794b0 +.long 0x82a8042c,0xe5213688,0xcd278298,0xd931cfaf,0xf597a740,0x069a0ae0,0xeb59107c,0x0adbb3f3,0x5eaa8eb8,0x983e951e,0x11b48e78,0xe663a8b5,0x8a03f2c5,0x1631cc0d,0x11e271e2,0x7577c11e +.long 0x08369a90,0x33b2385c,0x190eb4f8,0x2990c59b,0xc68eac80,0x819a6145,0x2ec4a014,0x7a786d62,0x20ac3a8d,0x33faadbe,0x5aba2d30,0x31a21781,0xdba4f565,0x209d2742,0x55aa0fbb,0xdb2ce9e3 +.long 0x168984df,0x8cef334b,0x33879638,0xe81dce17,0x263720f0,0xf6e6949c,0xf593cbec,0x5c56feaf,0xfde58c84,0x8bff5601,0x2eccb314,0x74e24117,0x4c9a8a78,0xbcf01b61,0x544c9868,0xa233e35e +.long 0x8bd7aff1,0xb3156bf3,0x1d81b146,0x1b5ee4cb,0xd628a915,0x7ba1ac41,0xfd89699e,0x8f3a8f9c,0xa0748be7,0x7329b9c9,0xa92e621f,0x1d391c95,0x4d10a837,0xe51e6b21,0x4947b435,0xd255f53a +.long 0xf1788ee3,0x07669e04,0xa86938a2,0xc14f27af,0xe93a01c0,0x8b47a334,0xd9366808,0xff627438,0xca2a5965,0x7a0985d8,0xd6e9b9b3,0x3d9a5542,0x4cf972e8,0xc23eb80b,0x4fdf72fd,0x5c1c33bb +.long 0x74a86108,0x0c4a58d4,0xee4c5d90,0xf8048a8f,0xe86d4c80,0xe3c7c924,0x056a1e60,0x28c889de,0xb214a040,0x57e2662e,0x37e10347,0xe8c48e98,0x80ac748a,0x87742862,0x186b06f2,0xf1c24022 +.long 0x5f74040a,0xac2dd4c3,0xfceac957,0x409aeb71,0x55c4ec23,0x4fbad782,0x8a7b76ec,0xb359ed61,0xed6f4a60,0x12744926,0x4b912de3,0xe21e8d7f,0xfc705a59,0xe2575a59,0xed2dbc0e,0x72f1d4de +.long 0xeb7926b8,0x3d2b24b9,0xcdbe5509,0xbff88cb3,0xe4dd640b,0xd0f399af,0x2f76ed45,0x3c5fe130,0x3764fb3d,0x6f3562f4,0x3151b62d,0x7b5af318,0xd79ce5f3,0xd5bd0bc7,0xec66890f,0xfdaf6b20 +.long 0x6063540c,0x735c67ec,0xe5f9cb8f,0x50b259c2,0x3f99c6ab,0xb8734f9a,0xa3a7bc85,0xf8cc13d5,0xc5217659,0x80c1b305,0x4ec12a54,0xfe5364d4,0x681345fe,0xbd87045e,0x582f897f,0x7f8efeb1 +.long 0xd5923359,0xe8cbf1e5,0x539b9fb0,0xdb0cea9d,0x49859b98,0x0c5b34cf,0xa4403cc6,0x5e583c56,0xd48185b7,0x11fc1a2d,0x6e521787,0xc93fbc7e,0x05105b8b,0x47e7a058,0xdb8260c8,0x7b4d4d58 +.long 0x46eb842a,0xe33930b0,0x7bdae56d,0x8e844a9a,0x13f7fdfc,0x34ef3a9e,0x636ca176,0xb3768f82,0x4e09e61c,0x2821f4e0,0xa0c7cddc,0x414dc3a1,0x54945fcd,0xd5379437,0xb3555ff1,0x151b6eef +.long 0x6339c083,0xb31bd613,0xdfb64701,0x39ff8155,0xe29604ab,0x7c3388d2,0xa6b10442,0x1e19084b,0xeccd47ef,0x17cf54c0,0x4a5dfb30,0x89693385,0x47daf9f6,0x69d023fb,0x7d91d959,0x9222840b +.long 0x803bac62,0x439108f5,0x379bd45f,0x0b7dd91d,0xca63c581,0xd651e827,0x509c104f,0x5c5d75f6,0x1f2dc308,0x7d5fc738,0xd98454be,0x20faa7bf,0xa517b031,0x95374bee,0x642692ac,0xf036b9b1 +.long 0x39842194,0xc5106109,0x49d05295,0xb7e2353e,0xefb42ee0,0xfc8c1d5c,0x08ce811c,0xe04884eb,0x7419f40e,0xf1f75d81,0xa995c241,0x5b0ac162,0xc4c55646,0x120921bb,0x8d33cf97,0x713520c2 +.long 0xe98c5100,0xb4a65a5c,0x2ddd0f5a,0x6cec871d,0x9ba2e78b,0x251f0b7f,0xce3a2a5f,0x224a8434,0x25f5c46f,0x26827f61,0x48545ec0,0x6a22bedc,0xb1bb5cdc,0x25ae5fa0,0xfcb9b98f,0xd693682f +.long 0x91e5d7d3,0x32027fe8,0x73a07678,0xf14b7d17,0xc0dfdd61,0xf88497b3,0x2a8c4f48,0xf7c2eec0,0x3756e621,0xaa5573f4,0x1825b948,0xc013a240,0x63878572,0x1c03b345,0x653a4184,0xa0472bea +.long 0x0ac69a80,0xf4222e27,0xf51e54f6,0x34096d25,0x8fffa591,0x00a648cb,0x69b6527f,0x4e87acdc,0xe285ccb4,0x0575e037,0x50ddcf52,0x188089e4,0x870ff719,0xaa96c9a8,0x1fc7e369,0x74a56cd8 +.long 0x1726931a,0x41d04ee2,0x3660ecfd,0x0bbbb2c8,0x24818e18,0xa6ef6de5,0xe7d57887,0xe421cc51,0xbea87be6,0xf127d208,0xb1cdd682,0x16a475d3,0x439b63f7,0x9db1b684,0xf0f113b6,0x5359b3db +.long 0x8bf06e31,0xdfccf1de,0xdd383901,0x1fdf8f44,0x5017e7d2,0x10775cad,0x58d11eef,0xdfc3a597,0xb1ecff10,0x6ec9c8a0,0x28400549,0xee6ed6cc,0x1b4f8d73,0xb5ad7bae,0xe00aaab9,0x61b4f11d +.long 0xd4eff2d7,0x7b32d69b,0x4288b60f,0x88ae6771,0x37a1e723,0x159461b4,0x570aae8c,0x1f3d4789,0x7f9871da,0x869118c0,0xf635e278,0x35fbda78,0xe1541dac,0x738f3641,0xc0dae45f,0x6794b13a +.long 0x09cc0917,0x065064ac,0xc68540fd,0x27c53729,0xef227671,0x0d2d4c8e,0xa1785a04,0xd23a9f80,0x52650359,0x98c59528,0x74a1acad,0xfa09ad01,0x0b55bf5c,0x082d5a29,0x419b8084,0xa40f1c67 +.long 0xdcc18770,0x3a5c752e,0x8825c3a5,0x4baf1f2f,0x21b153ed,0xebd63f74,0xb2f64723,0xa2383e47,0x2646d19a,0xe7bf620a,0x03c83ffd,0x56cb44ec,0x4f6be9f1,0xaf7267c9,0xc06bb5e9,0x8b2dfd7b +.long 0xa672c5c7,0xb87072f2,0x0d53c5e2,0xeacb11c8,0xff435932,0x22dac29d,0x4408693c,0x37bdb99d,0x2899c20f,0xf6e62fb6,0x447ece24,0x3535d512,0xff577ce3,0xfbdc6b88,0x190575f2,0x726693bd +.long 0xab4b35a2,0x6772b0e5,0xf5eeaacf,0x1d8b6001,0x795b9580,0x728f7ce4,0x41fb81da,0x4a20ed2a,0x4fec01e6,0x9f685cd4,0xa7ff50ad,0x3ed7ddcc,0x0c2d97fd,0x460fd264,0xeb82f4f9,0x3a241426 +.long 0x6a8ea820,0x17d1df2c,0xf22cc254,0xb2b50d3b,0xb7291426,0x03856cba,0x04f5ee39,0x87fd26ae,0x02bee4ba,0x9cb696cc,0x06820fd6,0x53121804,0x0212e985,0xa5dfc269,0x160f9a09,0x666f7ffa +.long 0xbccd9617,0xc503cd33,0xba7730a3,0x365dede4,0x5ddb0786,0x798c6355,0xfc9cd3bc,0xa6c3200e,0xe5e35efd,0x060ffb2c,0x5555a1c1,0x99a4e25b,0xf70b3751,0x11d95375,0x160e1bf6,0x0a57354a +.long 0xf8e4b065,0xecb3ae4b,0x2e53022b,0x07a834c4,0x8692ed96,0x1cd300b3,0x61ee14ec,0x16a6f792,0x6a8649ed,0x8f1063c6,0x869f3e14,0xfbcdfcfe,0x00a7b3ec,0x2cfb97c1,0x7130c2f1,0xcea49b3c +.long 0xe9d96488,0x462d044f,0x8182a0c1,0x4b53d52e,0x0391e9e9,0x84b6ddd3,0xb1741a09,0x80ab7b48,0x27d3317f,0xec0e15d4,0x1a64671e,0x8dfc1ddb,0xd49c5b92,0x93cc5d5f,0x3674a331,0xc995d53d +.long 0x090090ae,0x302e41ec,0xedb06830,0x2278a0cc,0xfbc99690,0x1d025932,0xb80d68da,0x0c32fbd2,0xf341a6c1,0xd79146da,0x1bef68a0,0xae0ba139,0x8d774b3a,0xc6b8a563,0x880ba4d7,0x1cf307bd +.long 0x19803511,0xc033bdc7,0x8888c3be,0xa9f97b3b,0x85c6d05e,0x3d68aebc,0x193919eb,0xc3b88a9d,0xc48b0ee3,0x2d300748,0x07a746c1,0x7506bc7c,0x6e6d57f3,0xfc48437c,0xcfeaa91a,0x5bd71587 +.long 0xc1bc5225,0xa4ed0408,0x2719226d,0xd0b946db,0x758d2d43,0x109ecd62,0x2751759b,0x75c8485a,0x9ce4177a,0xb0b75f49,0x79c10c3d,0x4fa61a1e,0xa167fcd7,0xc062d300,0x750f0fa8,0x4df3874c +.long 0x83dfedc9,0x29ae2cf9,0x8d87631a,0xf8437134,0x7429c8d2,0xaf571711,0x146d9272,0x18d15867,0x69769bb7,0x83053ecf,0xc479ab82,0xc55eb856,0x21b0f4b2,0x5ef7791c,0x3d491525,0xaa5956ba +.long 0x9fe20eba,0x407a96c2,0xe52a5ad3,0xf27168bb,0xbf1d9d89,0x43b60ab3,0x710e727a,0xe45c51ef,0x099b4221,0xdfca5276,0x2557a159,0x8dc6407c,0x91035895,0x0ead8335,0x9c55dc32,0x0a9db957 +.long 0xdf61bc76,0xe40736d3,0x3f778cdb,0x13a619c0,0xc56ea28f,0x6dd921a4,0x2fa647b4,0x76a52433,0xac5bdc5d,0x23591891,0xbac7dc01,0xff4a1a72,0x62df8453,0x9905e261,0xe63b265f,0x3ac045df +.long 0xad53dba7,0x8a3f341b,0x837b625a,0x8ec269cc,0x3ae31189,0xd71a2782,0x55e96120,0x8fb4f9a3,0xff9875cf,0x804af823,0x5d442a9b,0x23224f57,0xecc62679,0x1c4d3b9e,0xa0e7ddb1,0x91da22fb +.long 0x6c04a661,0xa370324d,0x5e376d17,0x9710d3b6,0x3044e357,0xed8c98f0,0x6422701c,0xc364ebbe,0x7733d61c,0x347f5d51,0xcea826c3,0xd55644b9,0x55a25548,0x80c6e0ad,0x844220a7,0x0aa7641d +.long 0x31810660,0x1438ec81,0xde4b4043,0x9dfa6507,0xcc3e0273,0x10b515d8,0x28d8cfb2,0x1b6066dd,0x9c9efebd,0xd3b04591,0xa21c1ff4,0x425d4bdf,0xd57607d3,0x5fe5af19,0x54481084,0xbbf773f7 +.long 0x94b03ed1,0x8435bd69,0x634cc546,0xd9ad1de3,0x00e420ca,0x2cf423fc,0xa03096dd,0xeed26d80,0xa4db09d2,0xd7f60be7,0x960622f7,0xf47f569d,0x7296c729,0xe5925fd7,0x26ca2715,0xeff2db26 +.long 0xb913e759,0xa6fcd014,0x8ff4de93,0x53da4786,0xc32068e1,0x14616d79,0xccdf352e,0xb187d664,0x1dc90b59,0xf7afb650,0x7daa1b26,0x8170e943,0x700c0a84,0xc8e3bdd8,0x6482bdfa,0x6e8d345f +.long 0xc5c5ea50,0x84cfbfa1,0x67960681,0xd3baf14c,0x0dd50942,0x26398403,0x4716a663,0xe4b7839c,0xe7de6dc0,0xd5f1f794,0x622aa7ce,0x5cd0f4d4,0x59acfeec,0x5295f3f1,0x953e0607,0x8d933552 +.long 0x776c5722,0xc7db8ec5,0x2b5f290c,0xdc467e62,0x4ff425a9,0xd4297e70,0x0cf7bb72,0x4be924c1,0xa1892131,0x0d5dc5ae,0xa705c992,0x8bf8a8e3,0x7a305ac5,0x73a0b064,0x9a8c77a8,0x00c9ca4e +.long 0x83774bdd,0x5dfee80f,0x85734485,0x63131602,0x914a69a9,0xa1b524ae,0xd4e300d7,0xebc2ffaf,0x7cfa46a5,0x52c93db7,0x21653b50,0x71e6161f,0xa4bc580a,0x3574fc57,0xe1bc1253,0xc09015dd +.long 0xd174d7aa,0x4b7b47b2,0xf3a15d04,0x4072d8e8,0xd6fa07ed,0xeeb7d47f,0xedbdafb1,0x6f2b9ff9,0x3760fe8a,0x18c51615,0xf06c6c13,0x7a96e6bf,0x0ea2d071,0x4d7a0410,0x0be2a5ce,0xa1914e9b +.long 0xd8a3c5cf,0x5726e357,0x2abb2b13,0x1197ecc3,0x31ae88dd,0x6c0d7f7f,0xfdbb3efe,0x15b20d1a,0x70584039,0xcd06aa26,0xa7dc9747,0x2277c969,0x7855d815,0xbca69587,0x5188b32a,0x899ea238 +.long 0x760c1c9d,0x37d9228b,0x9b5c18da,0xc7efbb11,0x19f6dbc5,0x7f0d1bc8,0x07e6905b,0x4875384b,0x3ba8cd86,0xc7c50baa,0xc2905de0,0xb0ce40fb,0x7a231952,0x70840673,0xcf43de26,0xa912a262 +.long 0xeb5b76c1,0x9c38ddcc,0x26fc0ab4,0x746f5285,0xd62c269f,0x52a63a50,0x99458621,0x60049c55,0x3c2f7c9e,0xe7f48f82,0x917d5cf3,0x6bd99043,0x8701f469,0xeb1317a8,0x9a449fe0,0xbd3fe2ed +.long 0x12ef3d36,0x421e79ca,0x3e7ea5de,0x9ee3c36c,0xcdff36f7,0xe48198b5,0xc6b82228,0xaff4f967,0xc47adb7e,0x15e19dd0,0x032e7dfa,0x45699b23,0x1fae026a,0x40680c8b,0x550dbf4d,0x5a347a48 +.long 0x3cef0d7d,0xe652533b,0x2bbb4381,0xd94f7b18,0x0e80f500,0x838752be,0x9e9c9bfb,0x8e6e2488,0x16caca6a,0xc9751697,0x38531ad9,0x866c49d8,0x7151ade1,0xc917e239,0x6037c407,0x2d016ec1 +.long 0x00eac3f9,0xa407ccc9,0xe2ed4748,0x835f6280,0x1cc98e0d,0xcc54c347,0xdcb572eb,0x0e969937,0x8f30c9cb,0x1b16c8e8,0x373c4661,0xa606ae75,0x35502cab,0x47aa689b,0x4d9bb64f,0xf89014ae +.long 0x31c71f7b,0x202f6a9c,0x296ffe5c,0x01f95aa3,0x53cec3a3,0x5fc06014,0x5f498a45,0xeb991237,0x5d91ba87,0xae9a935e,0x0b564a19,0xc6ac6281,0x3bd44e69,0x8a8fe81c,0x9dd11d45,0x7c8b467f +.long 0xea5b8e69,0xf772251f,0xc5b75fbc,0xaeecb3bd,0x887ff0e5,0x1aca3331,0x19f0a131,0xbe5d49ff,0xe5c8646f,0x582c13aa,0x20e19980,0xdbaa12e8,0xf7abbd94,0x8f40f31a,0x1dfc7663,0x1f13f5a8 +.long 0xaceb4fc0,0x5d81f1ee,0x5e6f0f42,0x36256002,0x751370c8,0x4b67d6d7,0x03e80589,0x2608b698,0x05268301,0xcfc0d2fc,0x40309212,0xa6943d39,0x1fd0e1c2,0x192a90c2,0x37f1dc76,0xb209f113 +.long 0x97bf1298,0xefcc5e06,0x219d639e,0xcbdb6730,0xb81e8c6f,0xd009c116,0x1a7ce2e5,0xa3ffdde3,0xa914d3ba,0xc53fbaaa,0x88df85ee,0x836d500f,0x66ee0751,0xd98dc71b,0x714516fd,0x5a3d7005 +.long 0x39eedbba,0x21d3634d,0x0455a46d,0x35cd2e68,0xf9d7eb0c,0xc8cafe65,0x00cefb3e,0xbda3ce9e,0x2c9cf7a4,0xddc17a60,0x7bcb8773,0x01572ee4,0x8c7548df,0xa92b2b01,0xa84600e3,0x732fd309 +.long 0x16543a40,0xe22109c7,0xfede3c6c,0x9acafd36,0x6824e614,0xfb206852,0xda25dca0,0x2a4544a9,0x91d60b06,0x25985262,0x28753545,0x281b7be9,0x90f13b27,0xec667b1a,0x940e2eb4,0x33a83aff +.long 0xd5d721d5,0x80009862,0x5bd3a182,0x0c3357a3,0x7aa2cda4,0x27f3a83b,0xf6f83085,0xb58ae74e,0x2e6dad6b,0x2a911a81,0xf43d6c5b,0xde286051,0xf996c4d8,0x4bdccc41,0x0ae1e24e,0xe7312ec0 +.long 0x6e6485b3,0xf8d112e7,0x771c52f8,0x4d3e24db,0x684a2f6d,0x48e3ee41,0x21d95551,0x7161957d,0xcdb12a6c,0x19631283,0x2e50e164,0xbf3fa882,0x3166cc73,0xf6254b63,0xaee8cc38,0x3aefa7ae +.long 0x3b36f9fd,0x79b0fe62,0xfde19fc0,0x26543b23,0x958482ef,0x136e64a0,0x9b095825,0x23f63771,0xb6a1142e,0x14cfd596,0x335aac0b,0x5ea6aac6,0xf3081dd5,0x86a0e8bd,0x003dc12a,0x5fb89d79 +.long 0xf72e34d4,0xf615c33a,0x110eec35,0x0bd9ea40,0xc1dea34e,0x1c12bc5b,0x49ae4699,0x686584c9,0x8c97b942,0x13ad95d3,0x4e5c7562,0x4609561a,0xf2737f89,0x9e94a4ae,0x371c78b6,0xf57594c6 +.long 0xe3779ee3,0x0f0165fc,0xbd495d9e,0xe00e7f9d,0x20284e7a,0x1fa4efa2,0x47ac6219,0x4564bade,0xc4708e8e,0x90e6312a,0xa71e9adf,0x4f5725fb,0x3d684b9f,0xe95f55ae,0x1e94b415,0x47f7ccb1 +.long 0x8d946581,0x7322851b,0xbdf4a012,0xf0d13133,0x6584dae0,0xa3510f69,0x3c9f6c6d,0x03a7c171,0xe475381a,0x5be97f38,0x85823334,0xca1ba422,0x0be17dda,0xf83cc5c7,0x0b918c0f,0x158b1494 +.long 0x522e6b69,0xda3a77e5,0xbbcd6c18,0x69c908c3,0xd924fd56,0x1f1b9e48,0xaa4bb3f7,0x37c64e36,0xee478d7d,0x5a4fdbdf,0x0193f7a0,0xba75c8bc,0x56cd16df,0x84bc1e84,0x46fad151,0x1fb08f08 +.long 0x842e9f30,0x8a7cabf9,0x5eab83af,0xa331d4bf,0x017f2a6a,0xd272cfba,0x83aba0e3,0x27560abc,0x0e3a6b75,0x94b83387,0x6b9f50f5,0x25c6aea2,0xb5fdf6d0,0x803d691d,0xe6333514,0x03b77509 +.long 0x61a341c1,0x36178903,0x0cfd6142,0x3604dc60,0x8533316c,0x022295eb,0x44af2922,0x3dbde4ac,0x1c7eef69,0x898afc5d,0xd14f4fa1,0x58896805,0x203c21ca,0x05002160,0x40ef730b,0x6f0d1f30 +.long 0x196224f8,0x8e8c44d4,0x374d079d,0x75a4ab95,0x7d48f123,0x79085ecc,0x1bf65ad8,0x56f04d31,0xbda602b2,0xe220bf1c,0xf9612c69,0x73ee1742,0x084fd06b,0x76008fc8,0xf11380d1,0x4000ef9f +.long 0x12cfe297,0x48201b4b,0x292f74e5,0x3eee129c,0xc9e874e8,0xe1fe114e,0x92c5fc41,0x899b055c,0x3a39c8cf,0x4e477a64,0x78963cc9,0x82f09efe,0xd333f863,0x6fd3fd8f,0xdc949c63,0x85132b2a +.long 0x516eb17b,0x7e06a3ab,0xd2c7372b,0x73bec06f,0xba896da6,0xe4f74f55,0x8e9eb40f,0xbb4afef8,0xe61d66b0,0x2d75bec8,0xef29300b,0x02bda4b4,0x026baa5a,0x8bbaa8de,0xa07f4440,0xff54befd +.long 0xbe7a2af3,0xbd9b8b1d,0x4fb74a72,0xec51caa9,0x63879697,0xb9937a4b,0xec2687d5,0x7c9a9d20,0x6ef5f014,0x1773e44f,0xe90c6900,0x8abcf412,0x8142161e,0x387bd022,0xfcb6ff2a,0x50393755 +.long 0xed6def63,0x9813fd56,0x7d53106c,0x53cf6482,0x431f7ac1,0x991a35bd,0x63e65faf,0xf1e274dd,0x44cc7880,0xf63ffa3c,0x7c256981,0x411a426b,0x93a420e0,0xb698b9fd,0xae53f8fe,0x89fdddc0 +.long 0x32398baa,0x766e0722,0x5cfca031,0x205fee42,0x7a029cf2,0xa49f5341,0x4023890d,0xa88c68b8,0x7337aaa8,0xbc275041,0x0eb384f4,0x9ed364ad,0x29aba92f,0xe0816f85,0x04e38a88,0x2e9e1941 +.long 0x3dafd2d5,0x57eef44a,0x97ed98d8,0x35d1fae5,0x2307f9b1,0x50628c09,0xd6cba5c6,0x09d84aae,0x88aaa691,0x67071bc7,0xafe6cb03,0x2dea57a9,0x3d78ac01,0xdfe11bb4,0x7fd7aa51,0x7286418c +.long 0x77f7195a,0xfabf7709,0xadeb838f,0x8ec86167,0xbb4f012d,0xea1285a8,0x9a3eab3f,0xd6883503,0x309004c2,0xee5d24f8,0x13ffe95e,0xa96e4b76,0xbd223ea4,0x0cdffe12,0xb6739a53,0x8f5c2ee5 +.long 0xdd968198,0x5cb4aaa5,0x72413a6c,0xfa131c52,0x9536d903,0x53d46a90,0x48606d8e,0xb270f0d3,0xa053a3bc,0x518c7564,0x1a86caef,0x088254b7,0x0ab5efd0,0xb3ba8cb4,0x4605945d,0x5c59900e +.long 0xa1887395,0xecace1dd,0x932a65de,0x40960f36,0x3aa95529,0x9611ff5c,0x7c1e5a36,0xc58215b0,0xf0e1a524,0xd48c9b58,0xf590dfb8,0xb406856b,0x9cd95662,0xc7605e04,0xa33ecf82,0x0dd036ee +.long 0xc33156b3,0xa50171ac,0x4a80172e,0xf09d24ea,0x76dc8eef,0x4e1f72c6,0x5e3d44ee,0xe60caadc,0x979b1d8f,0x006ef8a6,0x97788d26,0x60908a1c,0x266feec0,0x6e08f95b,0x22e8c94e,0x618427c2 +.long 0x59145a65,0x3d613339,0xfa406337,0xcd9bc368,0x2d8a52a0,0x82d11be3,0x97a1c590,0xf6877b27,0xf5cbdb25,0x837a819b,0xde090249,0x2a4fd1d8,0x74990e5f,0x622a7de7,0x7945511b,0x840fa5a0 +.long 0x6558842d,0x30b974be,0x17f3d0a6,0x70df8c64,0x7542e46d,0x7c803520,0xe4ecc823,0x7251fe7f,0x5e9aac9a,0xe59134cb,0xf0045d71,0x11bb0934,0xdbcb1d4e,0x53e5d9b5,0x92defc91,0x8d97a905 +.long 0x7946d3f9,0xfe289327,0x07472273,0xe132bd24,0x1eb6ae86,0xeeeb510c,0xf0595067,0x777708c5,0x1297029e,0x18e2c8cd,0xbbf9305e,0x2c61095c,0x6b85d6d9,0xe466c258,0xda1ea530,0x8ac06c36 +.long 0xa1304668,0xa365dc39,0x07f89606,0xe4a9c885,0xacc7228d,0x65a4898f,0x84ca8303,0x3e2347ff,0xea7d23a3,0xa5f6fb77,0x672a71cd,0x2fac257d,0x7e6a44d3,0x6908bef8,0x891d3d7a,0x8ff87566 +.long 0x6b0cf82e,0xe58e90b3,0x2615b5e7,0x6438d246,0x669c145a,0x07b1f8fc,0x36f1e1cb,0xb0d8b2da,0xd9184c4d,0x54d5dadb,0xf93d9976,0x3dbb18d5,0xd1147d47,0x0a3e0f56,0xa0a48609,0x2afa8c8d +.long 0xbc36742c,0x275353e8,0xeea0ed90,0x898f427e,0x3e477b00,0x26f4947e,0x308741e3,0x8ad8848a,0xd74a2a46,0x6c703c38,0x9ba17ba2,0x5e3e05a9,0x4ab9a9e4,0xc1fa6f66,0x3841d6ec,0x474a2d9a +.long 0x653ae326,0x871239ad,0xa74cbb43,0x14bcf72a,0x20d4c083,0x8737650e,0x110ed4af,0x3df86536,0xb53ca555,0xd2d86fe7,0xabd5d538,0x688cb00d,0x1ad38468,0xcf81bda3,0xf01167b6,0x7ccfe3cc +.long 0x6c4c1fe6,0xcf4f47e0,0x298bbb79,0x557e1f1a,0x30d45a14,0xf93b974f,0x0baf97c4,0x174a1d2d,0xc51fbf53,0x7a003b30,0xee68b225,0xd8940991,0x1c0f4173,0x5b0aa7b7,0xa20a7153,0x975797c9 +.long 0xe3533d77,0x26e08c07,0x2e341c99,0xd7222e6a,0x8d2dc4ed,0x9d60ec3d,0x7c476cf8,0xbdfe0d8f,0x1d056605,0x1fe59ab6,0x86a8551f,0xa9ea9df6,0x47fb8d8c,0x8489941e,0x4a7f1b10,0xfeb874eb +.long 0x7ee0d98f,0xfe5fea86,0xdbf61864,0x201ad34b,0x37c031d4,0x45d8fe47,0x795f0822,0xd5f49fae,0xc7f4a40c,0xdb0fb291,0x730ddd92,0x2e69d9c1,0x49d76987,0x754e1054,0x7662db87,0x8a24911d +.long 0x60a71676,0x61fc1810,0xf66a8ad1,0xe852d1a8,0x6417231e,0x172bbd65,0x3babb11f,0x0d6de7bd,0xc8e347f8,0x6fde6f88,0x9bd99cc3,0x1c587547,0x34076950,0x78e54ed0,0x796e83ba,0x97f0f334 +.long 0x4924867a,0xe4dbe1ce,0x60b84917,0xbd5f51b0,0x3cb09a79,0x37530040,0xff1743d8,0xdb3fe0f8,0x556fa9db,0xed7894d8,0x23412fbf,0xfa262169,0xba7b9291,0x563be0db,0x0c9fb234,0x6ca8b8c0 +.long 0xbd763802,0xed406aa9,0x65303da1,0xc21486a0,0xc7e62ec4,0x61ae291e,0xdf99333e,0x622a0492,0xbb7a8ee0,0x7fd80c9d,0x6c01aedb,0xdc2ed3bc,0x08be74ec,0x35c35a12,0x469f671f,0xd540cb1a +.long 0xcf84f6c7,0xd16ced4e,0x2d090f43,0x8561fb9c,0x6f239db4,0x7e693d79,0x77bd0d94,0xa736f928,0x2c1950ee,0x07b4d929,0x56dc11b3,0xda177543,0x7a6a878e,0xa5dfbbaa,0x4decb08a,0x1c70cb29 +.long 0x6f0f7c50,0xfba28c8b,0x854dcc6d,0xa8eba2b8,0x36b78642,0x5ff8e89a,0xf6873adf,0x070c1c8e,0x6484d2e4,0xbbd3c371,0x0d414129,0xfb78318f,0x6ad93b0b,0x2621a39c,0xa9e917f7,0x979d74c2 +.long 0x61fb0428,0xfc195647,0xbee624d4,0x4d78954a,0xb8ae86fd,0xb94896e0,0xc91c8b13,0x6667ac0c,0x43bcf832,0x9f180512,0xa0010137,0xfbadf8b7,0xb3ba8aa7,0xc69b4089,0xe687ce85,0xfac4bacd +.long 0x977eab40,0x9164088d,0x2760b390,0x51f4c5b6,0x340dd553,0xd238238f,0xdb1d31c9,0x358566c3,0x5068f5ff,0x3a5ad69e,0xdaff6b06,0xf31435fc,0xd6debff0,0xae549a5b,0x75e01331,0x59e5f0b7 +.long 0x98559acf,0x5d492fb8,0x4db79b50,0x96018c2e,0x609f66aa,0x55f4a48f,0x4900a14f,0x1943b3af,0x15a40d39,0xc22496df,0x4c20f7c5,0xb2a44684,0x3b98404c,0x76a35afa,0xff5d1b77,0xbec75725 +.long 0xbea06444,0xb67aa163,0xf724b6f2,0x27e95bb2,0xd238c8ab,0x3c20e3e9,0xddd6ae17,0x1213754e,0x716e0f74,0x8c431020,0xffc095c2,0x6679c82e,0xd0ac2932,0x2eb3adf4,0x01bb7a76,0x2cc970d3 +.long 0x740f0e66,0x70c71f2f,0x2b6b23cc,0x545c616b,0xb40a8bd7,0x4528cfcb,0x2ab27722,0xff839633,0x025ac99a,0x049127d9,0x2b63e33b,0xd314d4a0,0x28d84519,0xc8c310e7,0xb3bc84ba,0x0fcb8983 +.long 0x38634818,0x2cc52261,0xb44c2e0b,0x501814f4,0x54dfdba3,0xf7e181aa,0xe759718c,0xcfd58ff0,0xd3b507a8,0xf90cdb14,0xc50bdad8,0x57bd478e,0x50e5f9aa,0x29c197e2,0xe40bc855,0x4db6eef8 +.long 0xd1fc0654,0x2cc8f21a,0x81269d73,0xc71cc963,0x077f49f9,0xecfbb204,0xca56b793,0xdde92571,0xf97ad8f7,0x9abed6a3,0x924de3bd,0xe6c19d3f,0xa140a800,0x8dce92f4,0x1337af07,0x85f44d1e +.long 0x09d64c52,0x5953c08b,0xf5df9749,0xa1b5e49f,0x52735f7d,0x336a8fb8,0x9add676b,0xb332b6db,0xb4511aa4,0x558b88a0,0xdbd5cc55,0x09788752,0xd8cd52bd,0x16b43b9c,0xc2a2696b,0x7f0bc5a0 +.long 0xc11f61ef,0x146e12d4,0x3a83e79e,0x9ce10754,0x6cbfca15,0x08ec73d9,0x5b49653f,0x09ff29ad,0xe7da946e,0xe31b72bd,0xee80a4f2,0xebf9eb3b,0x17598ce4,0xd1aabd08,0x53f37e80,0x18b5fef4 +.long 0x5958cd79,0xd5d5cdd3,0x1d373114,0x3580a1b5,0xfa935726,0xa36e4c91,0xef20d760,0xa38c534d,0x2ff5845b,0x7088e40a,0xbd78177f,0xe5bb40bd,0x857f9920,0x4f06a7a8,0xe968f05d,0xe3cc3e50 +.long 0xe5682d26,0x1d68b7fe,0xaec7f87c,0x5206f76f,0x041951ab,0x41110530,0xd4b5a71a,0x58ec52c1,0x0f75cf9a,0xf3488f99,0xba82d0d5,0xf411951f,0x618895ab,0x27ee75be,0x6d8aab14,0xeae060d4 +.long 0x7fb54dc2,0x9ae1df73,0x25963649,0x1f3e391b,0xfe055081,0x242ec32a,0x8491c9bd,0x5bd450ef,0x981eb389,0x367efc67,0x3a0550d5,0xed7e1928,0xab3ce75c,0x362e776b,0x1f24c523,0xe890e308 +.long 0xfeccef76,0xb961b682,0x8bba6d92,0x8b8e11f5,0x2b2375c4,0x8f2ccc4c,0xe2f86cfa,0x0d7f7a52,0x9efe5633,0xfd94d30a,0x5451f934,0x2d8d246b,0x244e6a00,0x2234c6e3,0xddec8c50,0xde2b5b0d +.long 0xbf776f5b,0x2ce53c5a,0x60357b05,0x6f724071,0x71bf3f7a,0xb2593717,0x440c4a9f,0x87d2501c,0x87b05340,0x440552e1,0x21624c32,0xb7bf7cc8,0x22facddb,0x4155a6ce,0x889837ef,0x5a4228cb +.long 0xfd4fd671,0xef87d6d6,0xc2daa10e,0xa233687e,0x03c0eb96,0x75622244,0x8bf19be6,0x7632d184,0x40735ff4,0x05d0f8e9,0xc00931f1,0x3a3e6e13,0xdafe3f18,0x31ccde6a,0xcfe51207,0xf381366a +.long 0x60167d92,0x24c222a9,0x7529f18c,0x62f9d6f8,0x0353b114,0x412397c0,0xef808043,0x334d89dc,0x2a4383ce,0xd9ec63ba,0x5cf92ba0,0xcec8e937,0xc8be74c0,0xfb8b4288,0x105d4391,0x67d6912f +.long 0x1b913149,0x7b996c46,0x3a4e02da,0x36aae2ef,0x972de594,0xb68aa003,0x4ec6d545,0x284ec70d,0x61391d54,0xf3d2b2d0,0xfe114e92,0x69c5d5d6,0xb4482dff,0xbe0f00b5,0xf5bf33c5,0xe1596fa5 +.long 0x96a71cba,0x10595b56,0xfdcadeb7,0x944938b2,0xfccd8471,0xa282da4c,0x0d37bfe1,0x98ec05f3,0x0698304a,0xe171ce1b,0x21bdf79b,0x2d691444,0x1b21dec1,0xd0cd3b74,0x16a15f71,0x712ecd8b +.long 0x00fd56e1,0x8d4c00a7,0xf9527c18,0x02ec9692,0x4a3e42e1,0x21c44937,0x1392ae0a,0x9176fbab,0x44b7b618,0x8726f1ba,0xf1de491c,0xb4d7aae9,0x07b582c0,0xf91df7b9,0xef60aa3a,0x7e116c30 +.long 0x466265d7,0x99270f81,0x4df7adf0,0xb15b6fe2,0xf9738f7f,0xfe33b2d3,0xd6d70f95,0x48553ab9,0xc21e94db,0x2cc72ac8,0xbdc0bbee,0x795ac38d,0x2e40478f,0x0a1be449,0x052bde55,0x81bd3394 +.long 0x56b3c4f2,0x63c8dbe9,0x904177cc,0x017a99cf,0x4d010fc1,0x947bbddb,0xbb2c9b21,0xacf9b00b,0x47173611,0x2970bc8d,0xac7d756f,0x1a4cbe08,0x67d541a2,0x06d9f4aa,0x59c2cf44,0xa3e8b689 +.long 0x4d88f1dd,0xaad066da,0x7ad35dea,0xc604f165,0x4478ca67,0x7edc0720,0xba02ce06,0xa10dfae0,0xaf36f4e4,0xeceb1c76,0xaf3f8f48,0x994b2292,0x77c8a68c,0xbf9ed77b,0x51744c9d,0x74f544ea +.long 0x8113a757,0x82d05bb9,0x8a9885e4,0x4ef2d2b4,0x1aa7865f,0x1e332be5,0x290d1a52,0x22b76b18,0x44351683,0x308a2310,0xa3f22840,0x9d861896,0x841ed947,0x5959ddcd,0x154b73bf,0x0def0c94 +.long 0x4c7c15e0,0xf0105417,0x3a277c32,0x539bfb02,0xf9dccf5f,0xe699268e,0x0247a3bd,0x9f5796a5,0x4f157269,0x8b839de8,0x7a30196b,0xc825c1e5,0xdc8a5a91,0x6ef0aabc,0x498b7fe6,0xf4a8ce6c +.long 0x70cbac78,0x1cce35a7,0xf6b23958,0x83488e9b,0xd76cb011,0x0341a070,0xae1b2658,0xda6c9d06,0xdd648c52,0xb701fb30,0x52fb9fd1,0x994ca02c,0x6f563086,0x06933117,0x17856bab,0x3d2b8100 +.long 0x5963a46e,0xe89f48c8,0xa99e61c7,0x658ab875,0x4b8517b4,0x6e296f87,0xfc1bc656,0x36c4fcdc,0xa3906def,0xde5227a1,0x62418945,0x9fe95f57,0xfdd96cde,0x20c91e81,0xda4480de,0x5adbe47e +.long 0x396de2b6,0xa009370f,0xf0ecc7bd,0x98583d4b,0xe51d0672,0xf44f6b57,0x556b1984,0x03d6b078,0xb0b64912,0x27dbdd93,0x15687b09,0x9b3a3434,0x51ec20a9,0x0dba6461,0xff28187c,0xec93db7f +.long 0x66e48bdd,0x00ff8c24,0x11ccd78e,0x2514f2f9,0xe1250603,0xeba11f4f,0x243fa156,0x8a22cd41,0xb283e4c6,0xa4e58df4,0x8b39783f,0x78c29859,0xa5259809,0x5235aee2,0x0e0227dd,0xc16284b5 +.long 0x1338830d,0xa5f57916,0xd2123fca,0x6d4b8a6b,0xf9c546f8,0x236ea68a,0xfa608d36,0xc1d36873,0x8d436d13,0xcd76e495,0x8fb080af,0xd4d9c221,0xe8ad3fb5,0x665c1728,0xb3d572e0,0xcf1ebe4d +.long 0x584c5e20,0xa7a8746a,0xb9dc7035,0x267e4ea1,0xb9548c9b,0x593a15cf,0x4bd012f3,0x5e6e2135,0x8c8f936e,0xdf31cc6a,0xb5c241dc,0x8af84d04,0x345efb86,0x63990a6f,0xb9b962cb,0x6fef4e61 +.long 0x25722608,0xf6368f09,0x131cf5c6,0x131260db,0xfab4f7ac,0x40eb353b,0x37eee829,0x85c78880,0xc3bdf24e,0x4c1581ff,0xf5c3c5a8,0x5bff75cb,0xa14e6f40,0x35e8c83f,0x0295e0ca,0xb81d1c0f +.long 0xf43a730f,0xfcde7cc8,0x33ab590e,0xe89b6f3c,0xad03240b,0xc823f529,0x98bea5db,0x82b79afe,0x962fe5de,0x568f2856,0x60c591f3,0x0c590adb,0x4a28a858,0x1fc74a14,0xb3203f4c,0x3b662498 +.long 0x6c39765a,0x91e3cf0d,0xac3cca0b,0xa2db3acd,0xcb953b50,0x288f2f08,0xcf43cf1a,0x2414582c,0x60eee9a8,0x8dec8bbc,0x729aa042,0x54c79f02,0x6532f5d5,0xd81cd5ec,0xcf82e15f,0xa672303a +.long 0x719c0563,0x376aafa8,0xbc5fc79f,0xcd8ad2dc,0xcb750cd3,0x303fdb9f,0x4418b08e,0x14ff052f,0x3e2d6520,0xf75084cf,0x144ed509,0x7ebdf0f8,0xd3f25b98,0xf43bf0f2,0xa354d837,0x86ad71cf +.long 0x26f43572,0xb827fe92,0x5d824758,0xdfd3ab5b,0x539094c1,0x315dd23a,0x66623d68,0x85c0e37a,0x7be19ae0,0x575c7972,0xdf0d36b5,0x616a3396,0x26b1ff7e,0xa1ebb3c8,0x140ad453,0x635b9485 +.long 0xda430c0b,0x92bf3cda,0x3a96dac6,0x4702850e,0x15ac326a,0xc91cf0a5,0xab8c25e4,0x95de4f49,0xe265c17c,0xb01bad09,0x087b3881,0x24e45464,0xe1fac5ca,0xd43e583c,0x6ead97a6,0xe17cb318 +.long 0x74dcec46,0x6cc39243,0x54c2b73f,0x33cfc02d,0xf26cd99c,0x82917844,0xd1773f89,0x8819dd95,0x0871f427,0x09572aa6,0xf6f01c34,0x8e0cf365,0xbff1f5af,0x7fa52988,0xe75e8e50,0x4eb357ea +.long 0x868af75d,0xd9d0c8c4,0x45c8c7ea,0xd7325cff,0xcc81ecb0,0xab471996,0x611824ed,0xff5d55f3,0x1977a0ee,0xbe314541,0x722038c6,0x5085c4c5,0xf94bb495,0x2d5335bf,0xc8e2a082,0x894ad8a6 +.long 0xada35438,0x5c3e2341,0x049b8c4e,0xf4a9fc89,0x9f17cf34,0xbeeb355a,0x6c91fe10,0x3f311e0e,0x92ab9891,0xc2d20038,0x3e8ce9a9,0x257bdcc1,0x88c53bee,0x1b2d9789,0xcdba143a,0x927ce89a +.long 0x523db280,0xb0a32cca,0x50d43783,0x5c889f8a,0x4897d16f,0x503e04b3,0x08f5f2e8,0x8cdb6e78,0x179c8e74,0x6ab91cf0,0x48211d60,0xd8874e52,0xea851200,0xf948d4d5,0xe6f9840a,0x4076d41e +.long 0x47b517ea,0xc20e263c,0x30685e5e,0x79a448fd,0xf90631a0,0xe55f6f78,0xa79e6346,0x88a790b1,0x80969fe8,0x62160c7d,0x41491bb9,0x54f92fd4,0x5c957526,0xa6645c23,0xbea3ce7b,0xf44cc5ae +.long 0x8b1e68b7,0xf7628327,0x303f29d3,0xc731ad7a,0x57d03ecb,0xfe5a9ca9,0x41bc97a7,0x96c0d50c,0x9b4f7f24,0xc4669fe7,0x3d9967ef,0xfdd781d8,0x5d2c208d,0x7892c7c3,0xae545cb3,0x8bf64f7c +.long 0x467be912,0xc01f862c,0xc73d30cc,0xf4c85ee9,0x6ab83ec7,0x1fa6f4be,0x4e3e3cf9,0xa07a3c1c,0x0c00beb3,0x87f8ef45,0x000d4c3e,0x30e2c2b3,0xfe08bf5b,0x1aa00b94,0x9224ef52,0x32c133aa +.long 0x32e5685d,0x38df16bb,0x58e6f544,0x68a9e069,0xcdc5ebc6,0x495aaff7,0x378b135f,0xf894a645,0x09e27ecf,0xf316350a,0x58f7179d,0xeced201e,0xe97861ba,0x2eec273c,0xd693be2e,0x47ec2cae +.long 0xf68367ce,0xfa4c97c4,0xbe5a5755,0xe4f47d0b,0xb298a979,0x17de815d,0xc177dc7d,0xd7eca659,0x49ded0a3,0x20fdbb71,0xfb34d3c5,0x4cb2aad4,0x60858a33,0x2cf31d28,0xa24aa40f,0x3b6873ef +.long 0x2c11bb37,0x540234b2,0xed4c74a3,0x2d0366dd,0xeec5f25d,0xf9a968da,0x67b63142,0x36601068,0x68d7b6d4,0x07cd6d2c,0x0c842942,0xa8f74f09,0x7768b1ee,0xe2751404,0xfe62aee4,0x4b5f7e89 +.long 0x89070d26,0xc6a77177,0xdd1c8bc7,0xa1f28e4e,0x469e1f17,0xea5f4f06,0xfbdb78e0,0x78fc242a,0x8b0588f1,0xc9c7c592,0x1535921e,0xb6b7a0fd,0xbde5ae35,0xcc5bdb91,0x12ff1864,0xb42c485e +.long 0xdbab98aa,0xa1113e13,0xa17b1024,0xde9d469b,0xc0462d3a,0x23f48b37,0x7c5c078d,0x3752e537,0x15544eb9,0xe3a86add,0x80fba279,0xf013aea7,0xf22001b5,0x8b5bb76c,0xf02891ab,0xe617ba14 +.long 0x936219d3,0xd39182a6,0xae51cb19,0x5ce1f194,0xbf07a74c,0xc78f8598,0x22cbf1bc,0x6d7158f2,0xe300ce18,0x3b846b21,0x2d11275d,0x35fba630,0xa0239b9b,0x5fe25c36,0xdf05d940,0xd8beb35d +.long 0x1f7e320d,0x4db02bb0,0x6da320ea,0x0641c364,0x821389a3,0x6d95fa5d,0x8fcd8e3d,0x92699748,0xceb6c143,0x316fef17,0xd933762b,0x67fcb841,0x118b17f8,0xbb837e35,0x9fd24821,0x4b92552f +.long 0x46aca793,0xae6bc70e,0xe579311b,0x1cf0b0e4,0x5802f716,0x8dc631be,0xbddbee4d,0x099bdc6f,0x0caf8b05,0xcc352bb2,0x72d63df2,0xf74d505a,0x91c4f408,0xb9876d4b,0x9e229b2d,0x1ce18473 +.long 0x83abdb4a,0x49507597,0xdee84b18,0x850fbcb6,0x609e67dc,0x6325236e,0x9336c6d8,0x04d831d9,0xfa12d45d,0x8deaae3b,0x4746e246,0xe425f8ce,0x24f5f31e,0x8004c175,0xad62c3b7,0xaca16d8f +.long 0x9152f934,0x0dc15a6a,0xed0e12c1,0xf1235e5d,0xda477dac,0xc33c06ec,0xb2ea0006,0x76be8732,0x0c0cd313,0xcf3f7831,0xa614260d,0x3c524553,0xcab22d15,0x31a756f8,0x77827a20,0x03ee10d1 +.long 0x1994ef20,0xd1e059b2,0x638ae318,0x2a653b69,0x2f699010,0x70d5eb58,0x09f5f84a,0x279739f7,0x8b799336,0x5da4663c,0x203c37eb,0xfdfdf14d,0xa1dbfb2d,0x32d8a9dc,0x77d48f9b,0xab40cff0 +.long 0xd20b42d5,0xc018b383,0x9f78845f,0xf9a810ef,0xbdba9df0,0x40af3753,0x131dfdf9,0xb90bdcfc,0xf01ab782,0x18720591,0x6af12a88,0xc823f211,0x0dc14401,0xa51b80f3,0xfb2dfbe3,0xde248f77 +.long 0x0cafe751,0xef5a44e5,0xd4dcd221,0x73997c9c,0xde854024,0x32fd86d1,0xa09b84bb,0xd5b53adc,0xdcedd8d1,0x008d7a11,0x74b32c84,0x406bd1c8,0x05dde8b1,0x5d4472ff,0xfce2b32f,0x2e25f2cd +.long 0x29dfc254,0xbec0dd5e,0x2b98b267,0x4455fcf6,0xc72df2ad,0x0b4d43a5,0x48a75397,0xea70e6be,0x5820f3bf,0x2aad6169,0x9e37f68f,0xf410d2dd,0x7be5ac83,0x70fb7dba,0x36ec3eec,0x636bb645 +.long 0x9754e21c,0x27104ea3,0x8d63c373,0xbc87a3e6,0x4109db9a,0x483351d7,0x60134da7,0x0fa724e3,0xb0720b16,0x9ff44c29,0x06aceead,0x2dd0cf13,0xe26929a6,0x5942758c,0xb766a92b,0x96c5db92 +.long 0x5f18395e,0xcec7d4c0,0x1f80d032,0xd3f22744,0xcb86075b,0x7a68b37a,0xafef92db,0x074764dd,0x7bc7f389,0xded1e950,0xb9756460,0xc580c850,0x7da48157,0xaeeec2a4,0x82c587b3,0x3f0b4e7f +.long 0xa9f19c53,0x231c6de8,0x6974e34e,0x5717bd73,0xf1508fa9,0xd9e1d216,0xdadaa124,0x9f112361,0x823b7348,0x80145e31,0xac634069,0x4dd8f0d5,0x2297c258,0xe3d82fc7,0x9cee7431,0x276fcfee +.long 0x2bc0aea9,0x8eb61b5e,0xde329431,0x4f668fd5,0x38e4b87e,0x03a32ab1,0x73d0ef0b,0xe1374517,0x853ac983,0x1a46f7e6,0x68e78a57,0xc3bdf42e,0x2ea96dd1,0xacf20785,0xf1638460,0xa10649b9 +.long 0x879fbbed,0xf2369f0b,0xda9d1869,0x0ff0ae86,0x56766f45,0x5251d759,0x2be8d0fc,0x4984d8c0,0xd21008f0,0x7ecc95a6,0x3a1a1c49,0x29bd54a0,0xd26c50f3,0xab9828c5,0x51d0d251,0x32c0087c +.long 0x0c1cdb26,0x9bac3ce6,0x557ca205,0xcd94d947,0x9db1fdcd,0x1b1bd598,0xa3d8b149,0x0eda0108,0x56152fcc,0x95066610,0xe7192b33,0xc2f037e6,0xc92e05a4,0xdeffb41a,0xc2f6c62e,0x1105f6c2 +.long 0x8733913c,0x68e73500,0x3f3adc40,0xcce86163,0x38a278e9,0xf407a942,0x2ab21292,0xd13c1b9d,0x1c74cf5c,0x93ed7ec7,0xf1a4c1b4,0x8887dc48,0x4b3a11f1,0x3830ff30,0x58937cb6,0x358c5a3c +.long 0x89022829,0x027dc404,0x3b798f79,0x40e93977,0x38be6ead,0x90ad3337,0xf34c0a5d,0x9c23f6bc,0xfbffd8bb,0xd1711a35,0x1949d3dd,0x60fcfb49,0x7825d93a,0x09c8ef4b,0xa0a8c968,0x24233cff +.long 0xe6d982af,0x67ade46c,0xe7544d7c,0xebb6bf3e,0x3d8bd087,0xd6b9ba76,0x4dc61280,0x46fe382d,0xb5bdbd75,0xbd39a7e8,0xb8f228fe,0xab381331,0xce1c4300,0x0709a77c,0xf337ceac,0x6a247e56 +.long 0x636288be,0x8f34f21b,0xc8a7c305,0x9dfdca74,0xea919e04,0x6decfd1b,0x8e1991f8,0xcdf2688d,0xd0f8a67e,0xe607df44,0x0b58d010,0xd985df4b,0x0c24f8f4,0x57f834c5,0xa0bf01ae,0xe976ef56 +.long 0xa1c32373,0x536395ac,0x734c0a13,0x351027aa,0x5e6bd5bc,0xd2f1b5d6,0x223debed,0x2b539e24,0x0eaa1d71,0xd4994cec,0x661dcf65,0x2a83381d,0x7b54c740,0x5f1aed2f,0xd6dda5ee,0x0bea3fa5 +.long 0x36cc6134,0x9d4fb684,0xc0a443dd,0x8eb9bbf3,0x383b7d2a,0xfc500e2e,0x5b775257,0x7aad621c,0x0a8f7cc0,0x69284d74,0x07562d65,0xe820c2ce,0x499758ee,0xbf9531b9,0x6ee0cc2d,0x73e95ca5 +.long 0xfbaf50a5,0xf61790ab,0x684e0750,0xdf55e76b,0xf176b005,0xec516da7,0x7a2dddc7,0x575553bb,0x553afa73,0x37c87ca3,0x4d55c251,0x315f3ffc,0xaf3e5d35,0xe846442a,0x6495ff28,0x61b91149 +.long 0xfa326dc3,0x23cc95d3,0x18fc2cea,0x1df4da1f,0xd0a37d59,0x24bf9adc,0x320d6e1e,0xb6710053,0x618344d1,0x96f9667e,0xa06445af,0xcc7ce042,0xd68dbc3a,0xa02d8514,0x280b5a5b,0x4ea109e4 +.long 0xb40961bf,0x5741a7ac,0x6aa56bfa,0x4ada5937,0x02b765d1,0x7feb9145,0xe6ad1582,0x561e97be,0xda3982f5,0xbbc4a5b6,0xb546f468,0x0c2659ed,0x59612d20,0xb8e7e6aa,0xac19e8e0,0xd83dfe20 +.long 0xb835398c,0x8530c45f,0xb38a41c2,0x6106a8bf,0x35f5dcdb,0x21e8f9a6,0xcae498ed,0x39707137,0xd8249f00,0x70c23834,0xab2537a0,0x9f14b58f,0x5f61c0c2,0xd043c365,0x09a194a7,0xdc5926d6 +.long 0x8e77738a,0xddec0339,0xfba46426,0xd07a63ef,0xee7f6e86,0x2e58e79c,0xff32d241,0xe59b0459,0x20fa0338,0xc5ec84e5,0xeaff5ace,0x97939ac8,0xb4a38313,0x0310a4e3,0x8f9d9885,0x9115fba2 +.long 0x5fadf8c3,0x8dd710c2,0xce19c0e2,0x66be38a2,0x4cfe5022,0xd42a279c,0x0e24e1b8,0x597bb530,0xc153ca7f,0x3cde86b7,0x707d63bd,0xa8d30fb3,0xbd60d21e,0xac905f92,0x7b9a54ab,0x98e7ffb6 +.long 0xe9726a30,0xd7147df8,0xafce3533,0xb5e216ff,0x2ff1ec40,0xb550b799,0xa1e953fd,0x6b613b87,0x792d5610,0x87b88dba,0xa190fbe1,0x2ee1270a,0x2ef581da,0x02f4e2dc,0xeff82a95,0x016530e4 +.long 0x8fd6ee89,0xcbb93dfd,0x46848fff,0x16d3d986,0x1da47adf,0x600eff24,0x0ad47a71,0x1b9754a0,0x70c33b98,0x8f9266df,0xdf34186e,0xaadc87ae,0x4ad24132,0x0d2ce8e1,0x19946eba,0x8a47cbfc +.long 0x62b5f3af,0x47feeb66,0x0abb3734,0xcefab561,0x19f35cb1,0x449de60e,0x157f0eb9,0x39f8db14,0x3c61bfd6,0xffaecc5b,0x41216703,0xa5a4d41d,0x224e1cc2,0x7f8fabed,0x871ad953,0x0d5a8186 +.long 0xd22da9a9,0xf10774f7,0xcc8a9b0d,0x45b8a678,0xbdc32cff,0xd9c2e722,0x337202a5,0xbf71b5f5,0x69fc4db9,0x95c57f2f,0x765d01e1,0xb6dad34c,0xcb904635,0x7e0bd13f,0x763a588c,0x61751253 +.long 0x81af2c2d,0xd85c2997,0x81b9d7da,0xc0f7d9c4,0x08533e8d,0x838a34ae,0x311d8311,0x15c4cb08,0x8e121e14,0x97f83285,0x85000a5f,0xeea7dc1e,0x5d256274,0x0c6059b6,0xb95075c0,0xec9beace +.long 0x1df97828,0x173daad7,0xa8937877,0xbf851cb5,0x01646f3c,0xb083c594,0x50c6d352,0x3bad30cf,0x496bbcea,0xfeb2b202,0x18a1e8ba,0x3cf9fd4f,0x1c066029,0xd26de7ff,0x4e9ed4f8,0x39c81e9e +.long 0x7b390d35,0xd8be0cb9,0x964aab27,0x01df2bbd,0xc3ef64f8,0x3e8c1a65,0x716ed1dd,0x567291d1,0x5f5406d3,0x95499c6c,0x5ba8e23f,0x71fdda39,0xd5096ece,0xcfeb320e,0xca66dd16,0xbe7ba92b +.long 0xc6fb5a7d,0x4608d36b,0x6d2dd0e0,0xe3eea15a,0x8f97a36a,0x75b0a3eb,0x1c83de1e,0xf59814cc,0x1c33c23f,0x56c9c5b0,0x6faa4136,0xa96c1da4,0xde316551,0x46bf2074,0x1f756c8f,0x3b866e7b +.long 0x1495ed6b,0x727727d8,0xb682dce7,0xb2394243,0x758610f3,0x8ab8454e,0x857d72a4,0xc243ce84,0xdbbf370f,0x7b320d71,0x78e0f7ca,0xff9afa37,0xea7b523f,0x0119d1e0,0x058c7d42,0xb997f8cb +.long 0x37bbb184,0x285bcd2a,0xa45d1fa6,0x51dcec49,0xe29634cb,0x6ade3b64,0x26b86ef1,0x080c94a7,0x2283fbe3,0xba583db1,0x5a9315ed,0x902bddc8,0x86964bec,0x07c1ccb3,0xb6258301,0x78f4eacf +.long 0x56f90823,0x4bdf3a49,0x741d777b,0xba0f5080,0xf38bf760,0x091d71c3,0x9b625b02,0x9633d50f,0xb8c9de61,0x03ecb743,0x5de74720,0xb4751254,0x74ce1cb2,0x9f9defc9,0x00bd32ef,0x774a4f6a +.long 0x73848f22,0xaca385f7,0xf3f8558e,0x53dad716,0x93c471f9,0xab7b34b0,0x19644bc7,0xf530e069,0xdd59d31a,0x3d9fb1ff,0x08daa795,0x4382e0df,0xd5cc88d7,0x165c6f4b,0x4a18c900,0xeaa392d5 +.long 0x648024ee,0x94203c67,0x8c2fabcd,0x188763f2,0xbbaec835,0xa80f87ac,0xf29d8d54,0x632c96e0,0x4c00a95e,0x29b0a60e,0xe011e9fa,0x2ef17f40,0x15b77223,0xf6c0e1d1,0x14b04e32,0xaaec2c62 +.long 0x3d84e58c,0xd35688d8,0x958571db,0x2af5094c,0x760682a6,0x4fff7e19,0xe39a407c,0x4cb27077,0x4ff0e321,0x0f59c547,0x1b34c8ff,0x169f34a6,0x52bc1ba7,0x2bff1096,0x83583544,0xa25423b7 +.long 0x0ac8b782,0x5d55d5d5,0x2db3c892,0xff6622ec,0x6b8bb642,0x48fce741,0x69d7e3dc,0x31d6998c,0xcadcaed0,0xdbaf8004,0xd81d053c,0x801b0142,0x59630ec6,0x94b189fc,0xaf762c8e,0x120e9934 +.long 0xfdc6a404,0x53a29aa4,0xa1909948,0x19d8e01e,0xd7e89681,0x3cfcabf1,0x4e132d37,0x3321a50d,0xe9a86111,0xd0496863,0x06a3bc65,0x8c0cde61,0xfc9f8eef,0xaf866c49,0xff7f5141,0x2066350e +.long 0xe56ddfbd,0x4f8a4689,0xfe32983a,0xea1b0c07,0x873cb8cb,0x2b317462,0x2d93229f,0x658deddc,0x0f64ef58,0x65efaf4d,0x730cc7a8,0xfe43287d,0x3d047d70,0xaebc0c72,0xd92d26c9,0x92efa539 +.long 0x94b56526,0x06e78457,0x0961002d,0x415cb80f,0x76dcb10f,0x89e5c565,0xff9259fe,0x8bbb6982,0x9abc2668,0x4fe8795b,0x1e678fb1,0xb5d4f534,0x7b7da2b9,0x6601f3be,0xa13d6805,0x98da59e2 +.long 0x01799a52,0x190d8ea6,0xb86d2952,0xa20cec41,0x7fff2a7c,0x3062ffb2,0x79f19d37,0x741b32e5,0x4eb57d47,0xf80d8181,0x16aef06b,0x7a2d0ed4,0x1cecb588,0x09735fb0,0xc6061f5b,0x1641caaa +.long 0x20151427,0x7f99824f,0x92430206,0x206828b6,0xe1112357,0xaa9097d7,0x09e414ec,0xacf9a2f2,0x27915356,0xdbdac9da,0x001efee3,0x7e0734b7,0xd2b288e2,0x54fab5bb,0xf62dd09c,0x4c630fc4 +.long 0x1ac2703b,0x8537107a,0x6bc857b5,0xb49258d8,0xbcdaccd1,0x57df14de,0xc4ae8529,0x24ab68d7,0x734e59d0,0x7ed8b5d4,0xc495cc80,0x5f8740c8,0x291db9b3,0x84aedd5a,0x4fb995be,0x80b360f8 +.long 0x5fa067d1,0xae915f5d,0x9668960c,0x4134b57f,0xa48edaac,0xbd3656d6,0xfc1d7436,0xdac1e3e4,0xd81fbb26,0x674ff869,0xb26c33d4,0x449ed3ec,0xd94203e8,0x85138705,0xbeeb6f4a,0xccde538b +.long 0xa61a76fa,0x55d5c68d,0xca1554dc,0x598b441d,0x773b279c,0xd39923b9,0x36bf9efc,0x33331d3c,0x298de399,0x2d4c848e,0xa1a27f56,0xcfdb8e77,0x57b8ab70,0x94c855ea,0x6f7879ba,0xdcdb9dae +.long 0x019f2a59,0x7bdff8c2,0xcb4fbc74,0xb3ce5bb3,0x8a9173dd,0xea907f68,0x95a75439,0x6cd3d0d3,0xefed021c,0x92ecc4d6,0x6a77339a,0x09a9f9b0,0x7188c64a,0x87ca6b15,0x44899158,0x10c29968 +.long 0xed6e82ef,0x5859a229,0x65ebaf4e,0x16f338e3,0x5ead67ae,0x0cd31387,0x54ef0bb4,0x1c73d228,0x74a5c8c7,0x4cb55131,0x7f69ad6a,0x01cd2970,0xe966f87e,0xa04d00dd,0x0b7b0321,0xd96fe447 +.long 0x88fbd381,0x342ac06e,0x5c35a493,0x02cd4a84,0x54f1bbcd,0xe8fa89de,0x2575ed4c,0x341d6367,0xd238202b,0xebe357fb,0xa984ead9,0x600b4d1a,0x52436ea0,0xc35c9f44,0xa370751b,0x96fe0a39 +.long 0x7f636a38,0x4c4f0736,0x0e76d5cb,0x9f943fb7,0xa8b68b8b,0xb03510ba,0x9ed07a1f,0xc246780a,0x6d549fc2,0x3c051415,0x607781ca,0xc2953f31,0xd8d95413,0x955e2c69,0x7bd282e3,0xb300fadc +.long 0x87e9189f,0x81fe7b50,0xf42dda27,0xdb17375c,0xcf0a5904,0x22f7d896,0xebe348e6,0xa0e57c5a,0xf40e3c80,0xa61011d3,0x8db705c5,0xb1189321,0x50fedec3,0x4ed9309e,0x4d6d5c1d,0xdcf14a10 +.long 0x55691342,0x056c265b,0x91049dc7,0xe8e08504,0xc9bae20a,0x131329f5,0xd9dccdb4,0x96c8b3e8,0xfb4ee6b4,0x8c5ff838,0x41e8ccf0,0xfc5a9aeb,0xfae050c6,0x7417b764,0x00452080,0x0953c3d7 +.long 0x38dfe7e8,0x21372682,0x2bb79d4b,0xea417e15,0x76e7cf2d,0x59641f1c,0xea0bcfcc,0x271e3059,0x7253ecbd,0x624c7dfd,0x4fca6186,0x2f552e25,0x4d866e9c,0xcbf84ecd,0xf68d4610,0x73967709 +.long 0xc27901b4,0xa14b1163,0x899b8bf3,0xfd9236e0,0xcbc6da0a,0x42b091ec,0x5ad1d297,0xbb1dac6f,0xa91cf76e,0x80e61d53,0xd31f1ee7,0x4110a412,0x13efcf77,0x2d87c3ba,0xdf450d76,0x1f374bb4 +.long 0x0d188dab,0x5e78e2f2,0xf4b885ef,0xe3968ed0,0x7314570f,0x46c0568e,0x01170521,0x31616338,0x4f0c8afe,0x18e1e7e2,0xdeea78da,0x4caa75ff,0x7c5d8a51,0x82db67f2,0x6f505370,0x36a44d86 +.long 0x0333974f,0xd72c5bda,0x27a70146,0x5db516ae,0x210ef921,0x34705281,0x0c9c38e5,0xbff17a8f,0x12476da1,0x78f4814e,0x33c16980,0xc1e16613,0x424d4bca,0x9e5b386f,0xc85740de,0x4c274e87 +.long 0x6c2f5226,0xb6a9b88d,0x550d7ca8,0x14d1b944,0x1fc41709,0x580c85fc,0x54c6d519,0xc1da368b,0xd5113cf7,0x2b0785ce,0x5a34708f,0x0670f633,0x15cc3f88,0x46e23767,0x50c72c8f,0x1b480cfa +.long 0x4147519a,0x20288602,0x26b372f0,0xd0981eac,0xa785ebc8,0xa9d4a7ca,0xdbdf58e9,0xd953c50d,0xfd590f8f,0x9d6361cc,0x44e6c917,0x72e9626b,0x22eb64cf,0x7fd96110,0x9eb288f3,0x863ebb7e +.long 0x6aca8ee7,0x6e6ab761,0xd7b40358,0x97d10b39,0x1e5feb0d,0x1687d377,0x8265a27a,0xc83e50e4,0xc954b313,0x8f75a9fe,0x310d1f61,0xcc2e8f47,0x6557d0e0,0xf5ba81c5,0x3eaf6207,0x25f9680c +.long 0x4354080b,0xf95c6609,0x7bf2fe1c,0x5225bfa5,0x5c7d98fa,0xc5c004e2,0x019aaf60,0x3561bf1c,0xba151474,0x5e6f9f17,0xb04f6eca,0xdec2f934,0x269acb1e,0x64e368a1,0x0cdda493,0x1332d9e4 +.long 0xdf23de05,0x60d6cf69,0x009339a0,0x66d17da2,0x0a693923,0x9fcac985,0xed7c6a6d,0xbcf057fc,0xf0b5662c,0xc3c5c8c5,0xdcba4f24,0x25318dd8,0x082b69ff,0x60e8cb75,0x1e728c01,0x7c23b3ee +.long 0x097e4403,0x15e10a0a,0x19854665,0xcb3d0a86,0xd67d4826,0x88d8e211,0x0b9d2839,0xb39af66e,0xbd475ca8,0xa5f94588,0xc077b80b,0xe06b7966,0xda27c26c,0xfedb1485,0xfe0fd5e0,0xd290d33a +.long 0xf34fb0fa,0xa40bcc47,0x1fb1ab09,0xb4760cc8,0xa273bfe3,0x8fca0993,0xf70b213c,0x13e4fe07,0xfdb05163,0x3bcdb992,0x0c2b19b6,0x8c484b11,0xaaf2e3e2,0x1acb815f,0xb89ff1b4,0xc6905935 +.long 0x586e74e1,0xb2ad6f9d,0x67b80484,0x488883ad,0x369c3ddb,0x758aa2c7,0x9f9afd31,0x8ab74e69,0x5e21beb1,0x10fc2d28,0x318c42f9,0x3484518a,0x53cf40c3,0x377427dc,0x391bc1d9,0x9de0781a +.long 0x693807e1,0x8faee858,0x4e81ccc7,0xa3865327,0x6f835b84,0x02c30ff2,0x0d3d38d4,0xb604437b,0x5ca1823d,0xb3fc8a98,0x03be0324,0xb82f7ec9,0xcf684a33,0xee36d761,0x9f29bf7d,0x5a01df0e +.long 0x1306583d,0x686202f3,0x437c622e,0x05b10da0,0x076a7bc8,0xbf9aaa0f,0x8f8f4e43,0x25e94efb,0xfa3dc26d,0x8a35c9b7,0x96ff03c5,0xe0e5fb93,0xebc394ce,0xa77e3843,0x8361de60,0xcede6595 +.long 0xa1993545,0xd27c22f6,0x24d671ba,0xab01cc36,0xa169c28e,0x63fa2877,0x2eb08376,0x925ef904,0x53aa0b32,0x3b2fa3cf,0x71c49d7a,0xb27beb5b,0xd105e27f,0xb60e1834,0x4f68570d,0xd6089788 +.long 0xd6fbc2ac,0x23094ce0,0x815ff551,0x738037a1,0x6bef119c,0xda73b1bb,0xeef506ba,0xdcf6c430,0xe3ef104a,0x00e4fe7b,0x0a065628,0xebdd9a2c,0x8792043e,0x853a81c3,0xb3b59108,0x22ad6ece +.long 0x39cd297d,0x9fb813c0,0x05bda5d9,0x8ec7e16e,0x0d104b96,0x2834797c,0x7c511510,0xcc11a2e7,0x96ee6380,0x96ca5a53,0xcea38742,0x054c8655,0xd54dfa7d,0xb5946852,0x1f4ab207,0x97c422e7 +.long 0x0c22b540,0xbf907509,0xb7c267d4,0x2cde42aa,0x5ab0d693,0xba18f9ed,0x6e4660d9,0x3ba62aa6,0xab9ea96a,0xb24bf97b,0xe3b60e32,0x5d039642,0x7c4d9bd5,0x4e6a4506,0x7ed4a6a4,0x666c5b9e +.long 0x8edbd7cc,0xfa3fdcd9,0xc6ccd753,0x4660bb87,0x21e6b64f,0x9ae90820,0xb36bfb3f,0x8a56a713,0x5726d47f,0xabfce096,0x0b1a9a7f,0x9eed01b2,0x4eb74a37,0x30e9cad4,0x53e9666d,0x7b2524cc +.long 0x8f4b002f,0x6a29683b,0x41f4fc20,0xc2200d7a,0x3a338acc,0xcf3af47a,0xe7128975,0x6539a4fb,0xc33c7fcf,0xcec31c14,0xc7be322b,0x7eb6799b,0x6646f623,0x119ef4e9,0x54d7299b,0x7b7a26a5 +.long 0x403f46f2,0xcb37f08d,0x1a0ec0c7,0x94b8fc43,0xc332142f,0xbb8514e3,0xe80d2a7a,0xf3ed2c33,0xb639126c,0x8d2080af,0xe3553ade,0xf7b6be60,0x1c7e2b09,0x3950aa9f,0x6410f02b,0x847ff958 +.long 0x678a31b0,0x877b7cf5,0x3998b620,0xd50301ae,0xc00fb396,0x734257c5,0x04e672a6,0xf9fb18a0,0xe8758851,0xff8bd8eb,0x5d99ba44,0x1e64e4c6,0x7dfd93b7,0x4b8eaedf,0x04e76b8c,0xba2f2a98 +.long 0xe8053433,0x7d790cba,0x3d2c9585,0xc8e725a0,0xcdd8f5ed,0x58c5c476,0xefa9fe1d,0xd106b952,0x0eff13a9,0x3c5c775b,0xe057b930,0x242442ba,0xc9b70cbd,0xe9f458d4,0xa3cdb89a,0x69b71448 +.long 0x0e2ed742,0x41ee46f6,0x40067493,0x573f1045,0x9d54c304,0xb1e154ff,0x8d3a7502,0x2ad0436a,0x431a8121,0xee4aaa2d,0x886f11ed,0xcd38b3ab,0x034a0eb7,0x57d49ea6,0xf7e85e58,0xd2b773bd +.long 0x9b5c1f14,0x4a559ac4,0x3e54df2b,0xc444be1a,0xeda41891,0x13aad704,0x5eb5c788,0xcd927bec,0xe48c8a34,0xeb3c8516,0x4b546669,0x1b7ac812,0x594df8ec,0x1815f896,0x79227865,0x87c6a79c +.long 0x9b56ddbd,0xae02a2f0,0x8a2f1cf3,0x1339b5ac,0x839dff0d,0xf2b569c7,0xfee9a43d,0xb0b9e864,0x77bb064e,0x4ff8ca41,0xfd249f63,0x145a2812,0xf86f689a,0x3ab7beac,0x01d35f5e,0x9bafec27 +.long 0x4265aa91,0x28054c65,0x035efe42,0xa4b18304,0x9639dec7,0x6887b0e6,0x3d52aea5,0xf4b8f6ad,0x971a8a13,0xfb9293cc,0x4c934d07,0x3f159e5d,0x09acbc29,0x2c50e9b1,0x7154d129,0x08eb65e6 +.long 0x30b75c3e,0x4feff589,0x94491c93,0x0bb82fe2,0x89af62bb,0xd8ac377a,0x9685e49f,0xd7b51490,0x04497f19,0xabca9a7b,0x1a7ad13f,0x1b35ed0a,0x3ec86ed6,0x6b601e21,0xce0c76f1,0xda91fcb9 +.long 0xd7ab27e1,0x9e28507b,0x63945b7b,0x7c19a555,0xaafc9827,0x6b43f0a1,0x3aa55b91,0x443b4fbd,0x6962c88f,0x962b2e65,0xce0db0ca,0x139da8d4,0x1b8d6c4f,0xb93f05dd,0x180b9824,0x779cdff7 +.long 0xae57c7b7,0xbba23fdd,0x1b932522,0x345342f2,0x556d4aa3,0xfd9c80fe,0x6525bb61,0xa03907ba,0xff218933,0x38b010e1,0xaa52117b,0xc066b654,0x94f2e6ea,0x8e141920,0x0d32f2b2,0x66a27dca +.long 0x048b3717,0x69c7f993,0xb178ae1c,0xbf5a989a,0x564f1d6b,0x49fa9058,0xd31fde4e,0x27ec6e15,0x7276e7fc,0x4cce0373,0x89d6bf02,0x64086d79,0x4ccdd979,0x5a72f046,0x47775631,0x909c3566 +.long 0x75dd7125,0x1c07bc6b,0x87a0428d,0xb4c6bc97,0xfdeb6b9d,0x507ece52,0xb2c95432,0xfca56512,0xd0e8bd06,0x15d97181,0xc6bb46ea,0x384dd317,0x3952b624,0x5441ea20,0x4e7dc2fb,0xbcf70dee +.long 0x6628e8c3,0x372b016e,0xb60a7522,0x07a0d667,0x0a344ee2,0xcf05751b,0x118bdeec,0x0ec09a48,0xd83dce46,0x6e4b3d4e,0x99d2fc6e,0x43a6316d,0x56cf044c,0xa99d8989,0xae3e5fb7,0x7c7f4454 +.long 0xfbabbe92,0xb2e6b121,0xe1330076,0x281850fb,0x97890015,0x093581ec,0x75ff77f5,0x69b1dded,0xab105105,0x7cf0b18f,0xa89ccfef,0x953ced31,0xeb914009,0x3151f85f,0x88ed48ad,0x3c9f1b87 +.long 0x4a7eadcb,0xc9aba1a1,0x522e71cf,0x928e7501,0x3a2e4f83,0xeaede727,0x1ce3bbd3,0x467e10d1,0xb955dcf0,0xf3442ac3,0xd3d5e527,0xba96307d,0xfd77f474,0xf763a10e,0x6a6e1ff0,0x5d744bd0 +.long 0xa777899e,0xd287282a,0xd03f3cde,0xe20eda8f,0x50b07d31,0x6a7e75bb,0x6f379de4,0x0b7e2a94,0x19f593cf,0x31cb64ad,0x1e76ef1d,0x7b1a9e4f,0xb62d609c,0xe18c9c9d,0xe779a650,0x439bad6d +.long 0xe032f144,0x219d9066,0xe8b2ec6a,0x1db632b8,0xfda12f78,0xff0d0fd4,0x2a25d265,0x56fb4c2d,0x255a03f1,0x5f4e2ee1,0xe96af176,0x61cd6af2,0xd068bc97,0xe0317ba8,0x264b988e,0x927d6bab +.long 0xe90fb21e,0xa18f07e0,0xbba7fca1,0x00fd2b80,0x95cd67b5,0x20387f27,0xd39707f7,0x5b89a4e7,0x894407ce,0x8f83ad3f,0x6c226132,0xa0025b94,0xf906c13b,0xc79563c7,0x4e7bb025,0x5f548f31 +.long 0xeac6d113,0x2b4c6b8f,0x0e813c76,0xa67e3f9c,0x3fe1f4b9,0x3982717c,0x26d8050e,0x58865819,0xf7f06f20,0x99f3640c,0x2a66ebc2,0xdc610216,0x767a1e08,0x52f2c175,0x5999871b,0x05660e1a +.long 0x6d3c4693,0x6b0f1762,0x37ed7bea,0xf0e7d627,0xb75b226d,0xc51758c7,0x1f91613b,0x40a88628,0xbbb38ce0,0x889dbaa7,0xbddcad81,0xe0404b65,0x8bc9671f,0xfebccd3a,0xee1f5375,0xfbf9a357 +.long 0x28f33398,0x5dc169b0,0x72e90f65,0xb07ec11d,0xfaab1eb1,0xae7f3b4a,0x5f17538a,0xd970195e,0x0181e640,0x52b05cbe,0x2643313d,0xf5debd62,0x5df31f82,0x76148154,0x3a9e13c5,0x23e03b33 +.long 0x4fde0c1f,0xff758949,0xe5b6ec20,0xbf8a1abe,0x87e1db6c,0x702278fb,0x35ed658f,0xc447ad7a,0x03d0ccf2,0x48d4aa38,0x819a7c03,0x80acb338,0x6e17cecc,0x9bc7c89e,0x03be1d82,0x46736b8b +.long 0xc0432f96,0xd65d7b60,0xdeb5442f,0xddebe7a3,0x7dff69a2,0x79a25307,0x02cf3122,0x37a56d94,0xf2350d0a,0x8bab8aed,0x037b0d9a,0x13c3f276,0x44c65cae,0xc664957c,0xc2e71a88,0x88b44089 +.long 0x5cb02664,0xdb88e5a3,0x8686c72e,0x5d4c0bf1,0xa682d53e,0xea3d9b62,0x0b2ad431,0x9b605ef4,0xc69645d0,0x71bac202,0x6a1b66e7,0xa115f03a,0x158f4dc4,0xfe2c563a,0x4d12a78c,0xf715b3a0 +.long 0xd413213a,0x8f7f0a48,0xc04becdb,0x2035806d,0x5d8587f5,0xecd34a99,0x9f6d3a71,0x4d8c3079,0x8d95a8f6,0x1b2a2a67,0xf2110d0d,0xc58c9d7d,0xcf8fba3f,0xdeee81d5,0x0c7cdf68,0xa42be3c0 +.long 0xd43b5eaa,0x2126f742,0xdfa59b85,0x054a0766,0x126bfd45,0x9d0d5e36,0x384f8a8f,0xa1f8fbd7,0xd563fccc,0x317680f5,0xf280a928,0x48ca5055,0x27b578cf,0xe00b81b2,0x2994a514,0x10aad918 +.long 0xb7bdc953,0xd9e07b62,0x5bc086dd,0x9f0f6ff2,0x655eee77,0x09d1ccff,0x5bef7df1,0x45475f79,0x86f702cc,0x3faa28fa,0x0f021f07,0x92e60905,0x7f8fa8c6,0xe9e62968,0xf036ea2c,0xbd71419a +.long 0x6028da9a,0x171ee1cc,0xc251f573,0x5352fe1a,0x3fa997f4,0xf8ff236e,0xa5749d5f,0xd831b6c9,0xe350e2c2,0x7c872e1d,0x1e0ce403,0xc56240d9,0x6974f5cb,0xf9deb077,0x961c3728,0x7d50ba87 +.long 0x5a3a2518,0xd6f89426,0xc6303d43,0xcf817799,0x619e5696,0x510a0471,0x3a5e307b,0xab049ff6,0xfeb13ec7,0xe4cdf9b0,0x9d8ff90c,0xd5e97117,0x9afa96af,0xf6f64d06,0x9d2012a2,0x00d0bf5e +.long 0x358bcdc0,0xe63f301f,0x0a9d47f8,0x07689e99,0x4f43d43a,0x1f689e2f,0x90920904,0x4d542a16,0x9ca0a707,0xaea293d5,0x8ac68065,0xd061fe45,0x0090008c,0x1033bf1b,0xc08a6db6,0x29749558 +.long 0xc1d5d034,0x74b5fc59,0x67e215e0,0xf712e9f6,0x860200e6,0xfd520cbd,0x3ea22588,0x0229acb4,0xfff0c82e,0x9cd1e14c,0x59c69e73,0x87684b62,0x96ccb989,0xda85e61c,0xa3d06493,0x2d5dbb02 +.long 0xe86b173c,0xf22ad33a,0xa79ff0e3,0xe8e41ea5,0xdd0d0c10,0x01d2d725,0x032d28f9,0x31f39088,0x7829839e,0x7b3f71e1,0x4502ae58,0x0cf691b4,0xbefc6115,0xef658dbd,0xb3ab5314,0xa5cd6ee5 +.long 0x5f1d2347,0x206c8d7b,0x4cc2253a,0x794645ba,0x58389e08,0xd517d8ff,0x9f847288,0x4fa20dee,0xd797770a,0xeba072d8,0xbf429e26,0x7360c91d,0x80af8279,0x7200a3b3,0x82dadce3,0x6a1c9150 +.long 0xc35d8794,0x0ee6d3a7,0x0356bae5,0x042e6558,0x643322fd,0x9f59698d,0x50a61967,0x9379ae15,0xfcc9981e,0x64b9ae62,0x6d2934c6,0xaed3d631,0x5e4e65eb,0x2454b302,0xf9950428,0xab09f647 +.long 0x22248acc,0xb2083a12,0x3264e366,0x1f6ec0ef,0x5afdee28,0x5659b704,0xe6430bb5,0x7a823a40,0xe1900a79,0x24592a04,0xc9ee6576,0xcde09d4a,0x4b5ea54a,0x52b6463f,0xd3ca65a7,0x1efe9ed3 +.long 0x305406dd,0xe27a6dbe,0xdd5d1957,0x8eb7dc7f,0x387d4d8f,0xf54a6876,0xc7762de4,0x9c479409,0x99b30778,0xbe4d5b5d,0x6e793682,0x25380c56,0xdac740e3,0x602d37f3,0x1566e4ae,0x140deabe +.long 0xafd32acf,0x4481d067,0xe1f71ccf,0xd8f0fcca,0xb596f2da,0xd208dd0c,0x9aad93f9,0xd049d730,0x42ab580e,0xc79f263d,0x23f707b4,0x09411bb1,0x835e0eda,0x8cfde1ff,0x90f03402,0x72707490 +.long 0xc49a861e,0xeaee6126,0xe14f0d06,0x024f3b65,0xc69bfc17,0x51a3f1e8,0xa7686381,0xc3c3a8e9,0xb103d4c8,0x3400752c,0x9218b36b,0x02bc4613,0x7651504a,0xc67f75eb,0xd02aebfa,0xd6848b56 +.long 0xc30fa92b,0xbd9802e6,0x9a552784,0x5a70d96d,0x3f83169b,0x9085c4ea,0x06908228,0xfa9423bb,0xfe97a5b9,0x2ffebe12,0x71b99118,0x85da6049,0x63178846,0x9cbc2f7f,0x9153218e,0xfd96bc70 +.long 0x1782269b,0x958381db,0x2597e550,0xae34bf79,0x5f385153,0xbb5c6064,0xe3088048,0x6f0e96af,0x77884456,0xbf6a0215,0x69310ea7,0xb3b5688c,0x04fad2de,0x17c94295,0x17896d4d,0xe020f0e5 +.long 0x0976505f,0x730ba0ab,0x095e2ec5,0x567f6813,0x6331ab71,0x47062010,0x41d22b9f,0x72cfa977,0x8a2373da,0x33e55ead,0x7ba45a68,0xa8d0d5f4,0x03029d15,0xba1d8f9c,0xfc55b9f3,0x8f34f1cc +.long 0xbbe5a1a9,0xcca4428d,0x3126bd67,0x8187fd5f,0x48105826,0x0036973a,0xb8bd61a0,0xa39b6663,0x2d65a808,0x6d42deef,0x94636b19,0x4969044f,0xdd5d564c,0xf611ee47,0xd2873077,0x7b2f3a49 +.long 0x300eb294,0x94157d45,0x169c1494,0x2b2a656e,0xd3a47aa9,0xc000dd76,0xa6243ea4,0xa2864e4f,0xdb89842e,0x82716c47,0x61479fb7,0x12dfd7d7,0xe0b2f6dc,0x3b9a2c56,0xd7f85d67,0x46be862a +.long 0x0f82b214,0x03b0d8dd,0xf103cbc6,0x460c34f9,0x18d79e19,0xf32e5c03,0xa84117f8,0x8b8888ba,0xc0722677,0x8f3c37dc,0x1c1c0f27,0x10d21be9,0xe0f7a0c6,0xd47c8468,0xadecc0e0,0x9bf02213 +.long 0x42b48b99,0x0baa7d12,0x48424096,0x1bcb665d,0xebfb5cfb,0x8b847cd6,0x9ad4d10d,0x87c2ae56,0x0de36726,0xf1cbb122,0x3fdfbd21,0xe7043c68,0x4e79d460,0x4bd0826a,0x4bd1a2cb,0x11f5e598 +.long 0xb7fe7b6e,0x97554160,0x400a3fb2,0x7d16189a,0xe328ca1e,0xd73e9bea,0xe793d8cc,0x0dd04b97,0x506db8cc,0xa9c83c9b,0xcf38814c,0x5cd47aae,0xb64b45e6,0x26fc430d,0xd818ea84,0x079b5499 +.long 0xc1c24a3b,0xebb01102,0x1c161c1a,0xca24e568,0x36f00a4a,0x103eea69,0x76176c7b,0x9ad76ee8,0x538e0ff7,0x97451fc2,0x6604b3b0,0x94f89809,0x3249cfd7,0x6311436e,0x41224f69,0x27b4a7bd +.long 0xe0ac2941,0x03b5d21a,0xc2d31937,0x279b0254,0xcac992d0,0x3307c052,0xefa8b1f3,0x6aa7cb92,0x0d37c7a5,0x5a182580,0x342d5422,0x13380c37,0xd5d2ef92,0x92ac2d66,0x030c63c6,0x035a70c9 +.long 0x4ce4f152,0xc16025dd,0xf9df7c06,0x1f419a71,0x91e4bb14,0x6d5b2214,0x839fb4ce,0xfc43c6cc,0x925d6b2d,0x49f06591,0x62186598,0x4b37d9d3,0xd01b1629,0x8c54a971,0x51d50e05,0xe1a9c29f +.long 0x71ba1861,0x5109b785,0xd0c8f93d,0x48b22d5c,0x8633bb93,0xe8fa84a7,0x5aebbd08,0x53fba6ba,0xe5eea7d8,0x7ff27df3,0x68ca7158,0x521c8796,0xce6f1a05,0xb9d5133b,0xfd0ebee4,0x2d50cd53 +.long 0xc5a3ef16,0xc82115d6,0xba079221,0x993eff9d,0x4b5da81c,0xe4da2c5e,0x8033fd85,0x9a89dbdb,0x2b892891,0x60819ebf,0x5d14a4d5,0x53902b21,0xd7fda421,0x6ac35051,0x61c83284,0xcc6ab885 +.long 0xf74cff17,0x14eba133,0xecb813f2,0x240aaa03,0x6f665bee,0xcfbb6540,0xa425ad73,0x084b1fe4,0xd081f6a6,0x009d5d16,0xeef82c90,0x35304fe8,0xaa9eaa22,0xf20346d5,0xac1c91e3,0x0ada9f07 +.long 0x968a6144,0xa6e21678,0x07b31a1e,0x54c1f77c,0x5781fbe1,0xd6bb787e,0xe31f1c4a,0x61bd2ee0,0x781105fc,0xf25aa1e9,0x7b2f8e80,0x9cf2971f,0xcdff919b,0x26d15412,0x34bc896e,0x01db4ebe +.long 0xb40df1cf,0x7d9b3e23,0x94e971b4,0x59337373,0x669cf921,0xbf57bd14,0x0c1a1064,0x865daedf,0x83279125,0x3eb70bd3,0x34ecdaab,0xbc3d5b9f,0x5f755caf,0x91e3ed7e,0xd41e6f02,0x49699f54 +.long 0xd4a7a15b,0x185770e1,0xeaac87e7,0x08f3587a,0x473133ea,0x352018db,0x04fd30fc,0x674ce719,0x088b3e0e,0x7b8d9835,0x5d0d47a1,0x7a0356a9,0x6474a3c4,0x9d9e7659,0xff66966c,0x61ea48a7 +.long 0x0f3e4834,0x30417758,0x17a9afcb,0xfdbb21c2,0x2f9a67b3,0x756fa17f,0xa245c1a8,0x2a6b2421,0x4af02291,0x64be2794,0x2a5804fe,0xade465c6,0xa6f08fd7,0x8dffbd39,0xaa14403b,0xc4efa84c +.long 0x442b0f5c,0xa1b91b2a,0xcf997736,0xb748e317,0xcee90e16,0x8d1b62bf,0x0b2078c0,0x907ae271,0x0c9bcddd,0xdf31534b,0x39adce83,0x043fb054,0xd826846a,0x99031043,0xb144f393,0x61a9c0d6 +.long 0x47718427,0xdab48046,0x6e830f8b,0xdf17ff9b,0xe49a1347,0x408d7ee8,0x91c1d4ae,0x6ac71e23,0x1defd73c,0xc8cbb9fd,0xbbbbfec5,0x19840657,0x9e7ef8ea,0x39db1cb5,0x64105f30,0x78aa8296 +.long 0xa3738c29,0xa3d9b7f0,0xbc3250a3,0x0a2f235a,0x445e4caf,0x55e506f6,0x33475f7a,0x0974f73d,0x5ba2f5a8,0xd37dbba3,0x6af40066,0x542c6e63,0xc5d73e2c,0x26d99b53,0x6c3ca33e,0x06060d7d +.long 0x065fef4a,0xcdbef1c2,0xfd5b92e3,0x77e60f7d,0x26708350,0xd7c549f0,0x34f121bf,0x201b3ad0,0x0334fc14,0x5fcac2a1,0x344552f6,0x8a9a9e09,0x97653082,0x7dd8a1d3,0x79d4f289,0x5fc0738f +.long 0x17d2d8c3,0x787d244d,0x70830684,0xeffc6345,0xe4f73ae5,0x5ddb96dd,0x172549a5,0x8efb14b1,0x2245ae7a,0x6eb73eee,0xea11f13e,0xbca4061e,0x30b01f5d,0xb577421d,0x782e152c,0xaa688b24 +.long 0xbd3502ba,0x67608e71,0xb4de75a0,0x4ef41f24,0xfd6125e5,0xb08dde5e,0xa409543f,0xde484825,0x65cc2295,0x1f198d98,0x6e0edfa2,0x428a3771,0xadf35fc7,0x4f9697a2,0xf7cac3c7,0x01a43c79 +.long 0x0fd3659a,0xb05d7059,0xbb7f2d9a,0x8927f30c,0x8cf984d3,0x4023d1ac,0x02897a45,0x32125ed3,0x3d414205,0xfb572dad,0xe3fa82a9,0x73000ef2,0xf10a5581,0x4c0868e9,0x6b0b3ca5,0x5b61fc67 +.long 0x7cae440c,0xc1258d5b,0x402b7531,0x21c08b41,0xde932321,0xf61a8955,0x2d1408af,0x3568faf8,0x9ecf965b,0x71b15e99,0xe917276f,0xf14ed248,0x820cf9e2,0xc6f4caa1,0x18d83c7e,0x681b20b2 +.long 0xc6c01120,0x6cde738d,0xae70e0db,0x71db0813,0x74afe18c,0x95fc0644,0x129e2be7,0x34619053,0xdb2a3b15,0x80615cea,0xdb4c7073,0x0a49a19e,0x8fd2d367,0x0e1b84c8,0x033fb8aa,0xd74bf462 +.long 0x533ef217,0x889f6d65,0xc3ca2e87,0x7158c7e4,0xdc2b4167,0xfb670dfb,0x844c257f,0x75910a01,0xcf88577d,0xf336bf07,0xe45e2ace,0x22245250,0x7ca23d85,0x2ed92e8d,0x2b812f58,0x29f8be4c +.long 0x076fe12b,0xdd9ebaa7,0xae1537f9,0x3f2400cb,0x17bdfb46,0x1aa93528,0x67883b41,0xc0f98430,0x0170911d,0x5590ede1,0x34d4b17f,0x7562f5bb,0x1826b8d2,0xe1fa1df2,0x6bd80d59,0xb40b796a +.long 0x3467ba92,0xd65bf197,0xf70954b0,0x8c9b46db,0x0e78f15d,0x97c8a0f3,0x85a4c961,0xa8f3a69a,0x61e4ce9b,0x4242660f,0x6ea6790c,0xbf06aab3,0xec986416,0xc6706f8e,0x9a9fc225,0x9e56dec1 +.long 0x9a9898d9,0x527c46f4,0x5633cdef,0xd799e77b,0x7d9e4297,0x24eacc16,0x6b1cb734,0xabb61cea,0xf778443c,0xbee2e8a7,0x29de2fe6,0x3bb42bf1,0x3003bb6f,0xcbed86a1,0xd781cdf6,0xd3918e6c +.long 0x9a5103f1,0x4bee3271,0xf50eac06,0x5243efc6,0x6adcc119,0xb8e122cb,0xc0b80a08,0x1b7faa84,0x6dfcd08c,0x32c3d1bd,0x0be427de,0x129dec4e,0x1d263c83,0x98ab679c,0xcef64eff,0xafc83cb7 +.long 0x2fa6be76,0x85eb6088,0x1328cbfe,0x892585fb,0xcf618dda,0xc154d3ed,0x3abaf26e,0xc44f601b,0x2be1fdfd,0x7bf57d0b,0x21137fee,0xa833bd2d,0x2db591a8,0x9353af36,0x5562a056,0xc76f26dc +.long 0x3fdf5a51,0x1d87e47d,0x55c9cab0,0x7afb5f93,0x89e0586e,0x91bbf58f,0x0d843709,0x7c72c018,0x99b5c3dc,0xa9a5aafb,0x3844aeb0,0xa48a0f1d,0xb667e482,0x7178b7dd,0x6e23a59a,0x453985e9 +.long 0x01b25dd8,0x4a54c860,0xfb897c8a,0x0dd37f48,0x0ea90cd9,0x5f8aa610,0x16d5830d,0xc8892c68,0xef514ca5,0xeb4befc0,0xe72c9ee6,0x478eb679,0xdbc40d5f,0x9bca20da,0xdde4f64a,0xf015de21 +.long 0xeaf4b8a5,0xaa6a4de0,0x4bc60e32,0x68cfd9ca,0x7fd15e70,0x668a4b01,0xf27dc09d,0xd9f0694a,0xba708bcd,0xf6c3cad5,0x5bb95c2a,0x5cd2ba69,0x33c0a58f,0xaa28c1d3,0xabc77870,0x23e274e3 +.long 0xdfd20a4a,0x44c3692d,0x81a66653,0x091c5fd3,0x09a0757d,0x6c0bb691,0x667343ea,0x9072e8b9,0x80848bec,0x31d40eb0,0x79fd36cc,0x95bd480a,0x65ed43f5,0x01a77c61,0x2e0d40bf,0xafccd127 +.long 0x1cc1884b,0xeccfc82d,0x5d4753b4,0xc85ac201,0x658e099f,0xc7a6caac,0x04b27390,0xcf46369e,0x506467ea,0xe2e7d049,0x37cdeccc,0x481b63a2,0xed80143a,0x4029abd8,0xbcb00b88,0x28bfe3c7 +.long 0x0643d84a,0x3bec1009,0xabd11041,0x885f3668,0xf83a34d6,0xdb02432c,0x719ceebe,0x32f7b360,0xdad1fe7a,0xf06c7837,0x5441a0b0,0x60a157a9,0xe2d47550,0x704970e9,0x271b9020,0xcd2bd553 +.long 0x33e24a0b,0xff57f82f,0xf2565079,0x9cbee23f,0xeb5f5825,0x16353427,0xe948d662,0x276feec4,0xda10032b,0xd1b62bc6,0xf0e72a53,0x718351dd,0x2420e7ba,0x93452076,0x3a00118d,0x96368fff +.long 0x150a49e4,0x00ce2d26,0x3f04706b,0x0c28b636,0x58b196d0,0xbad65a46,0xec9f8b7c,0x6c8455fc,0x2d71867e,0xe90c895f,0xedf9f38c,0x5c0be31b,0xd8f6ec04,0x2a37a15e,0x8cd85251,0x239639e7 +.long 0x9c7c4c6b,0xd8975315,0xd7409af7,0x603aa3c0,0x007132fb,0xb8d53d0c,0xa6849238,0x68d12af7,0xbf5d9279,0xbe0607e7,0xaada74ce,0x9aa50055,0xba7e8ccb,0xe81079cb,0xa5f4ff5e,0x610c71d1 +.long 0x5aa07093,0x9e2ee1a7,0xa75da47c,0xca84004b,0x3de75401,0x074d3951,0xbb311592,0xf938f756,0x00a43421,0x96197618,0x07bc78c8,0x39a25362,0x0a171276,0x278f710a,0x8d1a8f08,0xb28446ea +.long 0xe3b6a661,0x184781bf,0xe6d279f7,0x7751cb1d,0xc59eb662,0xf8ff95d6,0x58d3dea7,0x186d90b7,0xdfb4f754,0x0e4bb6c1,0x2b2801dc,0x5c5cf56b,0x1f54564d,0xc561e452,0xf0dd7f13,0xb4fb8c60 +.long 0x33ff98c7,0xf8849630,0xcf17769c,0x9619fffa,0x1bfdd80a,0xf8090bf6,0x422cfe63,0x14d9a149,0x6f6df9ea,0xb354c360,0x218f17ea,0xdbcf770d,0x79eb3480,0x207db7c8,0x559b6a26,0x213dbda8 +.long 0x29fc81b3,0xac4c200b,0x171d87c1,0xebc3e09f,0x1481aa9e,0x91799530,0x92e114fa,0x051b92e1,0xecb5537f,0xdf8f92e9,0x290c7483,0x44b1b2cc,0x2adeb016,0xa711455a,0x81a10c2c,0x964b6856 +.long 0xcec03623,0x4f159d99,0xef3271ea,0x05532225,0xc5ee4849,0xb231bea3,0x7094f103,0x57a54f50,0x9598b352,0x3e2d421d,0x67412ab4,0xe865a49c,0x1cc3a912,0xd2998a25,0x0c74d65d,0x5d092808 +.long 0x4088567a,0x73f45908,0x1f214a61,0xeb6b280e,0xcaf0c13d,0x8c9adc34,0xf561fb80,0x39d12938,0xbc6edfb4,0xb2dc3a5e,0xfe4d210e,0x7485b1b1,0xe186ae72,0x062e0400,0x6eeb3b88,0x91e32d5c +.long 0x4be59224,0x6df574d7,0x716d55f3,0xebc88ccc,0xcad6ed33,0x26c2e6d0,0x0d3e8b10,0xc6e21e7d,0x5bcc36bb,0x2cc5840e,0x7da74f69,0x9292445e,0x4e5193a8,0x8be8d321,0x8df06413,0x3ec23629 +.long 0xb134defa,0xc7e9ae85,0x1bb2d475,0x6073b1d0,0x2863c00d,0xb9ad615e,0x525f4ac4,0x9e29493d,0x4e9acf4f,0xc32b1dea,0xa50db88d,0x3e1f01c8,0x04da916c,0xb05d70ea,0xd865803e,0x714b0d0a +.long 0x9920cb5e,0x4bd493fc,0x92c7a3ac,0x5b44b1f7,0xbcec9235,0xa2a77293,0xcd378553,0x5ee06e87,0xda621607,0xceff8173,0x99f5d290,0x2bb03e4c,0xa6f734ac,0x2945106a,0xd25c4732,0xb5056604 +.long 0xe079afee,0x5945920c,0x6789831f,0x686e17a0,0xb74a5ae5,0x5966bee8,0x1e258d46,0x38a673a2,0x83141c95,0xbd1cc1f2,0x0e96e486,0x3b2ecf4f,0x74e5fc78,0xcd3aa896,0x2482fa7a,0x415ec10c +.long 0x80503380,0x15234419,0xd314b392,0x513d917a,0x63caecae,0xb0b52f4e,0x2dc7780b,0x07bf22ad,0xe4306839,0xe761e8a1,0x5dd7feaa,0x1b3be962,0x74c778f1,0x4fe728de,0x5e0070f6,0xf1fa0bda +.long 0x6ec3f510,0x85205a31,0xd2980475,0x2c7e4a14,0x6f30ebfd,0xde3c19c0,0xd4b7e644,0xdb1c1f38,0x5dce364a,0xfe291a75,0x058f5be3,0xb7b22a3c,0x37fea38c,0x2cd2c302,0x2e17be17,0x2930967a +.long 0x0c061c65,0x87f009de,0xedc6ed44,0xcb014aac,0x3bafb1eb,0x49bd1cb4,0x282d3688,0x81bd8b5c,0xf01a17af,0x1cdab87e,0xe710063b,0x21f37ac4,0x42fc8193,0x5a6c5676,0x56a6015c,0xf4753e70 +.long 0xa15b0a44,0x020f795e,0x8958a958,0x8f37c8d7,0xa4b675b5,0x63b7e89b,0x0fc31aea,0xb4fb0c0c,0xa7ff1f2e,0xed95e639,0x619614fb,0x9880f5a3,0x947151ab,0xdeb6ff02,0xa868dcdb,0x5bc5118c +.long 0x4c20cea5,0xd8da2055,0x14c4d69a,0xcac2776e,0x622d599b,0xcccb22c1,0x68a9bb50,0xa4ddb653,0x1b4941b4,0x2c4ff151,0x6efba588,0xe1ff19b4,0xc48345e0,0x35034363,0x1e29dfc4,0x45542e3d +.long 0x349f7aed,0xf197cb91,0x8fca8420,0x3b2b5a00,0x23aaf6d8,0x7c175ee8,0x35af32b6,0x54dcf421,0x27d6561e,0x0ba14307,0xd175b1e2,0x879d5ee4,0x99807db5,0xc7c43673,0x9cd55bcd,0x77a54455 +.long 0x0105c072,0xe6c2ff13,0x8dda7da4,0x18f7a99f,0x0e2d35c1,0x4c301820,0xd9cc6c82,0x06a53ca0,0xf1aa1d9e,0xaa21cc1e,0x4a75b1e8,0x32414334,0x0ebe9fdc,0x2a6d1328,0x98a4755a,0x16bd173f +.long 0x2133ffd9,0xfbb9b245,0x830f1a20,0x39a8b2f1,0xd5a1f52a,0x484bc97d,0xa40eddf8,0xd6aebf56,0x76ccdac6,0x32257acb,0x1586ff27,0xaf4d36ec,0xf8de7dd1,0x8eaa8863,0x88647c16,0x0045d5cf +.long 0xc005979d,0xa6f3d574,0x6a40e350,0xc2072b42,0x8de2ecf9,0xfca5c156,0xa515344e,0xa8c8bf5b,0x114df14a,0x97aee555,0xfdc5ec6b,0xd4374a4d,0x2ca85418,0x754cc28f,0xd3c41f78,0x71cb9e27 +.long 0x03605c39,0x89105079,0xa142c96c,0xf0843d9e,0x16923684,0xf3744934,0xfa0a2893,0x732caa2f,0x61160170,0xb2e8c270,0x437fbaa3,0xc32788cc,0xa6eda3ac,0x39cd818e,0x9e2b2e07,0xe2e94239 +.long 0x0260e52a,0x6967d39b,0x90653325,0xd42585cc,0x21ca7954,0x0d9bd605,0x81ed57b3,0x4fa20877,0xe34a0bbe,0x60c1eff8,0x84f6ef64,0x56b0040c,0xb1af8483,0x28be2b24,0xf5531614,0xb2278163 +.long 0x5922ac1c,0x8df27545,0xa52b3f63,0xa7b3ef5c,0x71de57c4,0x8e77b214,0x834c008b,0x31682c10,0x4bd55d31,0xc76824f0,0x17b61c71,0xb6d1c086,0xc2a5089d,0x31db0903,0x184e5d3f,0x9c092172 +.long 0xc00cc638,0xdd7ced5b,0x61278fc2,0x1a2015eb,0x6a37f8d6,0x2e8e5288,0xe79933ad,0xc457786f,0x2c51211a,0xb3fe4cce,0x24c20498,0xad9b10b2,0xd28db5e5,0x90d87a4f,0x3aca2fc3,0x698cd105 +.long 0xe91b536d,0x4f112d07,0x9eba09d6,0xceb982f2,0x197c396f,0x3c157b2c,0x7b66eb24,0xe23c2d41,0x3f330d37,0x480c57d9,0x79108deb,0xb3a4c8a1,0xcb199ce5,0x702388de,0xb944a8d4,0x0b019211 +.long 0x840bb336,0x24f2a692,0xa669fa7b,0x7c353bdc,0xdec9c300,0xda20d6fc,0xa13a4f17,0x625fbe2f,0xdbc17328,0xa2b1b61a,0xa9515621,0x008965bf,0xc620ff46,0x49690939,0x8717e91c,0x182dd27d +.long 0xea6c3997,0x5ace5035,0xc2610bef,0x54259aaa,0x3c80dd39,0xef18bb3f,0x5fc3fa39,0x6910b95b,0x43e09aee,0xfce2f510,0xa7675665,0xced56c9f,0xd872db61,0x10e265ac,0xae9fce69,0x6982812e +.long 0xce800998,0x29be11c6,0xb90360d9,0x72bb1752,0x5a4ad590,0x2c193197,0x9fc1dbc0,0x2ba2f548,0xe490ebe0,0x7fe4eebb,0x7fae11c0,0x12a0a4cd,0xe903ba37,0x7197cf81,0xde1c6dd8,0xcf7d4aa8 +.long 0x3fd5684c,0x92af6bf4,0x80360aa1,0x2b26eecf,0x00546a82,0xbd960f30,0xf59ad8fe,0x407b3c43,0x249c82ba,0x86cae5fe,0x2463744c,0x9e0faec7,0x94916272,0x87f551e8,0x6ceb0615,0x033f9344 +.long 0x8be82e84,0x1e5eb0d1,0x7a582fef,0x89967f0e,0xa6e921fa,0xbcf687d5,0xd37a09ba,0xdfee4cf3,0xb493c465,0x94f06965,0x7635c030,0x638b9a1c,0x66f05e9f,0x76667864,0xc04da725,0xccaf6808 +.long 0x768fccfc,0xca2eb690,0xb835b362,0xf402d37d,0xe2fdfcce,0x0efac0d0,0xb638d990,0xefc9cdef,0xd1669a8b,0x2af12b72,0x5774ccbd,0x33c536bc,0xfb34870e,0x30b21909,0x7df25aca,0xc38fa2f7 +.long 0xbf81f3f5,0x74c5f02b,0xaf7e4581,0x0525a5ae,0x433c54ae,0x88d2aaba,0x806a56c5,0xed9775db,0xc0edb37d,0xd320738a,0x66cc1f51,0x25fdb6ee,0x10600d76,0xac661d17,0xbdd1ed76,0x931ec1f3 +.long 0x19ee43f1,0x65c11d62,0x60829d97,0x5cd57c3e,0x984be6e8,0xd26c91a3,0x8b0c53bd,0xf08d9309,0xc016e4ea,0x94bc9e5b,0x11d43d2b,0xd3916839,0x73701155,0x886c5ad7,0x20b00715,0xe0377626 +.long 0xaa80ba59,0x7f01c9ec,0x68538e51,0x3083411a,0xe88128af,0x970370f1,0x91dec14b,0x625cc3db,0x01ac3107,0xfef9666c,0xd5057ac3,0xb2a8d577,0x92be5df7,0xb0f26299,0x00353924,0xf579c8e5 +.long 0x1341ed7a,0xb8fa3d93,0xa7b59d49,0x4223272c,0x83b8c4a4,0x3dcb1947,0xed1302e4,0x4e413c01,0xe17e44ce,0x6d999127,0x33b3adfb,0xee86bf75,0x25aa96ca,0xf6902fe6,0xe5aae47d,0xb73540e4 +.long 0x1b4a158c,0x32801d7b,0x27e2a369,0xe571c99e,0x10d9f197,0x40cb76c0,0x3167c0ae,0xc308c289,0xeb7958f2,0xa6ef9dd3,0x300879b1,0xa7226dfc,0x7edf0636,0x6cd0b362,0x7bc37eed,0x4efbce6c +.long 0x8d699021,0x75f92a05,0x772566e3,0x586d4c79,0x761ad23a,0x378ca5f1,0x1465a8ac,0x650d86fc,0x842ba251,0x7a4ed457,0x42234933,0x6b65e3e6,0x31aad657,0xaf1543b7,0xcbfec369,0xa4cefe98 +.long 0x9f47befb,0xb587da90,0x41312d13,0x6562e9fb,0xeff1cefe,0xa691ea59,0x05fc4cf6,0xcc30477a,0x0b0ffd3d,0xa1632461,0x5b355956,0xa1f16f3b,0x4224ec24,0x5b148d53,0xf977012a,0xdc834e7b +.long 0xb2c69dbc,0x7bfc5e75,0x03c3da6c,0x3aa77a29,0xca910271,0xde0df03c,0x7806dc55,0xcbd5ca4a,0x6db476cb,0xe1ca5807,0x5f37a31e,0xfde15d62,0xf41af416,0xf49af520,0x7d342db5,0x96c5c5b1 +.long 0xeb4ceb9b,0x155c43b7,0x4e77371a,0x2e993010,0x675d43af,0x1d2987da,0x8599fd72,0xef2bc1c0,0x9342f6b2,0x96894b7b,0x7c8e71f0,0x201eadf2,0x4a1f3efc,0xf3479d9f,0x702a9704,0xe0f8a742 +.long 0xb3eba40c,0xeafd44b6,0xc1c1e0d0,0xf9739f29,0x619d505e,0x0091471a,0x9d7c263e,0xc15f9c96,0x83afbe33,0x5be47285,0x04f1e092,0xa3b6d6af,0x751a9d11,0xe76526b9,0x9a4ae4d2,0x2ec5b26d +.long 0x02f6fb8d,0xeb66f4d9,0x96912164,0x4063c561,0x80ef3000,0xeb7050c1,0xeaa5b3f0,0x288d1c33,0x07806fd8,0xe87c68d6,0x4bbbf50f,0xb2f7f9d5,0xac8d6627,0x25972f3a,0x10e8c13b,0xf8547774 +.long 0x872b4a60,0xcc50ef6c,0x4613521b,0xab2a34a4,0x983e15d1,0x39c5c190,0x59905512,0x61dde5df,0x9f2275f3,0xe417f621,0x451d894b,0x0750c8b6,0x78b0bdaa,0x75b04ab9,0x458589bd,0x3bfd9fd4 +.long 0xee9120b6,0xf1013e30,0x23a4743e,0x2b51af93,0x48d14d9e,0xea96ffae,0x698a1d32,0x71dc0dbe,0x0180cca4,0x914962d2,0xc3568963,0x1ae60677,0x437bc444,0x8cf227b1,0xc9962c7a,0xc650c83b +.long 0xfe7ccfc4,0x23c2c7dd,0x1b929d48,0xf925c89d,0x06783c33,0x4460f74b,0xa590475a,0xac2c8d49,0xb807bba0,0xfb40b407,0x69ff8f3a,0x9d1e362d,0xcbef64a4,0xa33e9681,0x332fb4b2,0x67ece5fa +.long 0x739f10e3,0x6900a99b,0xff525925,0xc3341ca9,0xa9e2d041,0xee18a626,0x29580ddd,0xa5a83685,0x9d7de3cd,0xf3470c81,0x2062cf9c,0xedf02586,0xc010edb0,0xf43522fa,0x13a4b1ae,0x30314135 +.long 0xdb22b94b,0xc792e02a,0xa1eaa45b,0x993d8ae9,0xcd1e1c63,0x8aad6cd3,0xc5ce688a,0x89529ca7,0xe572a253,0x2ccee3aa,0x02a21efb,0xe02b6438,0xc9430358,0xa7091b6e,0x9d7db504,0x06d1b1fa +.long 0xc4744733,0x58846d32,0x379f9e34,0x40517c71,0x130ef6ca,0x2f65655f,0xf1f3503f,0x526e4488,0x7ee4a976,0x8467bd17,0x921363d1,0x1d9dc913,0xb069e041,0xd8d24c33,0x2cdf7f51,0x5eb5da0a +.long 0x197b994f,0x1c0f3cb1,0x2843eae9,0x3c95a6c5,0xa6097ea5,0x7766ffc9,0xd723b867,0x7bea4093,0x4db378f9,0xb48e1f73,0xe37b77ac,0x70025b00,0xaf24ad46,0x943dc8e7,0x16d00a85,0xb98a15ac +.long 0x2743b004,0x3adc38ba,0x334415ee,0xb1c7f4f7,0x1e62d05a,0xea43df8f,0x9d76a3b6,0x32618905,0xa23a0f46,0x2fbd0bb5,0x6a01918c,0x5bc971db,0xb4743f94,0x7801d94a,0x676ae22b,0xb94df65e +.long 0xaf95894c,0xaafcbfab,0x276b2241,0x7b9bdc07,0x5bdda48b,0xeaf98362,0xa3fcb4df,0x5977faf2,0x052c4b5b,0xbed042ef,0x067591f0,0x9fe87f71,0x22f24ec7,0xc89c73ca,0xe64a9f1b,0x7d37fa9e +.long 0x15562627,0x2710841a,0xc243b034,0x2c01a613,0x2bc68609,0x1d135c56,0x8b03f1f6,0xc2ca1715,0x3eb81d82,0xc9966c2d,0x8f6df13e,0xc02abf4a,0x8f72b43b,0x77b34bd7,0x360c82b0,0xaff6218f +.long 0x8d55b9d2,0x0aa5726c,0x99e9bffb,0xdc0adbe9,0xefb9e72a,0x9097549c,0x9dfb3111,0x16755712,0xf26847f9,0xdd8bf984,0xdfb30cb7,0xbcb8e387,0x5171ef9c,0xc1fd32a7,0x389b363f,0x977f3fc7 +.long 0xf4babda0,0x116eaf2b,0xf7113c8e,0xfeab68bd,0xb7def526,0xd1e3f064,0xe0b3fa02,0x1ac30885,0x40142d9d,0x1c5a6e7b,0x30921c0b,0x839b5603,0x36a116a3,0x48f301fa,0xcfd9ee6d,0x380e1107 +.long 0x58854be1,0x7945ead8,0xcbd4d49d,0x4111c12e,0x3a29c2ef,0xece3b1ec,0x8d3616f5,0x6356d404,0x594d320e,0x9f0d6a8f,0xf651ccd2,0x0989316d,0x0f8fdde4,0x6c32117a,0xa26a9bbc,0x9abe5cc5 +.long 0x9723f671,0xcff560fb,0x7f3d593c,0x21b2a12d,0x24ba0696,0xe4cb18da,0xc3543384,0x186e2220,0x88312c29,0x722f64e0,0x17dc7752,0x94282a99,0x5a85ee89,0x62467bbf,0xf10076a0,0xf435c650 +.long 0x43b3a50b,0xc9ff1539,0x1a53efbc,0x7132130c,0xf7b0c5b7,0x31bfe063,0x4ea994cc,0xb0179a7d,0xc85f455b,0x12d064b3,0x8f6e0062,0x47259328,0xb875d6d9,0xf64e590b,0xad92bcc7,0x22dd6225 +.long 0xb9c3bd6d,0xb658038e,0xfbba27c8,0x00cdb0d6,0x1062c45d,0x0c681337,0x2d33407d,0xd8515b8c,0x8cbb5ecf,0xcb8f699e,0xc608d7d8,0x8c4347f8,0xbb3e00db,0x2c11850a,0xecb49d19,0x20a8dafd +.long 0x45ee2f40,0xbd781480,0x416b60cf,0x75e354af,0x8d49a8c4,0xde0b58a1,0xfa359536,0xe40e94e2,0x62accd76,0xbd4fa59f,0x8c762837,0x05cf466a,0x448c277b,0xb5abda99,0x48b13740,0x5a9e01bf +.long 0x326aad8d,0x9d457798,0xc396f7e7,0xbdef4954,0xc253e292,0x6fb274a2,0x1cfe53e7,0x2800bf0a,0x44438fd4,0x22426d31,0x5e259f9a,0xef233923,0x03f66264,0x4188503c,0x7f9fdfab,0x9e5e7f13 +.long 0x5fcc1aba,0x565eb76c,0x59b5bff8,0xea632548,0xaab6d3fa,0x5587c087,0x6ce39c1b,0x92b639ea,0x953b135c,0x0706e782,0x425268ef,0x7308912e,0x090e7469,0x599e92c7,0x9bc35e75,0x83b90f52 +.long 0x244975b3,0x4750b3d0,0x11965d72,0xf3a44358,0x9c8dc751,0x179c6774,0xd23d9ff0,0xff18cdfe,0x2028e247,0xc4013833,0xf3bfbc79,0x96e280e2,0xd0880a84,0xf60417bd,0x2a568151,0x263c9f3d +.long 0x2d2ce811,0x36be15b3,0xf8291d21,0x846dc0c2,0x789fcfdb,0x5cfa0ecb,0xd7535b9a,0x45a0beed,0x96d69af1,0xec8e9f07,0x599ab6dc,0x31a7c5b8,0xf9e2e09f,0xd36d45ef,0xdcee954b,0x3cf49ef1 +.long 0x086cff9b,0x6be34cf3,0x39a3360f,0x88dbd491,0x0dbfbd1d,0x1e96b8cc,0xcb7e2552,0xc1e5f7bf,0x28819d98,0x0547b214,0x7aea9dcb,0xc770dd9c,0x041d68c8,0xaef0d4c7,0x13cb9ba8,0xcc2b9818 +.long 0xfe86c607,0x7fc7bc76,0x502a9a95,0x6b7b9337,0xd14dab63,0x1948dc27,0xdae047be,0x249dd198,0xa981a202,0xe8356584,0x3a893387,0x3531dd18,0xc85c7209,0x1be11f90,0xe2a52b5a,0x93d2fe1e +.long 0xec6d6b97,0x8225bfe2,0xbd0aa5de,0x9cf6d6f4,0x54779f5f,0x911459cb,0x86aeb1f3,0x5649cddb,0x3f26ce5a,0x32133579,0x550f431e,0xc289a102,0x73b84c6f,0x559dcfda,0xee3ac4d7,0x84973819 +.long 0xf2606a82,0xb51e55e6,0x90f2fb57,0xe25f7061,0xb1a4e37c,0xacef6c2a,0x5dcf2706,0x864e359d,0x7ce57316,0x479e6b18,0x3a96b23d,0x2cab2500,0x8ef16df7,0xed489862,0xef3758b5,0x2056538c +.long 0xf15d3101,0xa7df865e,0x61b553d7,0x80c5533a,0x4ed14294,0x366e1997,0xb3c0bcd6,0x6620741f,0xedc45418,0x21d1d9c4,0xc1cc4a9d,0x005b859e,0xa1c462f0,0xdf01f630,0xf26820c7,0x15d06cf3 +.long 0x3484be47,0x9f7f24ee,0x4a0c902f,0x2ff33e96,0x5a0bc453,0x00bdf457,0x1aa238db,0x2378dfaf,0x856720f2,0x272420ec,0x96797291,0x2ad9d95b,0x768a1558,0xd1242cc6,0x5cc86aa8,0x2e287f8b +.long 0x990cecaa,0x796873d0,0x675d4080,0xade55f81,0x21f0cd84,0x2645eea3,0xb4e17d02,0x7a1efa0f,0x037cc061,0xf6858420,0xd5d43e12,0x682e05f0,0x27218710,0x59c36994,0x3f7cd2fc,0x85cbba4d +.long 0x7a3cd22a,0x726f9729,0x4a628397,0x9f8cd5dc,0xc23165ed,0x17b93ab9,0x122823d4,0xff5f5dbf,0x654a446d,0xc1e4e4b5,0x677257ba,0xd1a9496f,0xde766a56,0x6387ba94,0x521ec74a,0x23608bc8 +.long 0x6688c4d4,0x16a522d7,0x07373abd,0x9d6b4282,0xb42efaa3,0xa62f07ac,0xe3b90180,0xf73e00f7,0x49421c3e,0x36175fec,0x3dcf2678,0xc4e44f9b,0x7220f09f,0x76df436b,0x3aa8b6cf,0x172755fb +.long 0x446139cc,0xbab89d57,0x5fe0208f,0x0a0a6e02,0x11e5d399,0xcdbb63e2,0xa8977f0b,0x33ecaa12,0xf7c42664,0x59598b21,0xab65d08a,0xb3e91b32,0xf4502526,0x035822ee,0x720a82a9,0x1dcf0176 +.long 0x3d589e02,0x50f8598f,0xb1d63d2c,0xdf0478ff,0x1571cd07,0x8b8068bd,0xd79670cd,0x30c3aa4f,0x941ade7f,0x25e8fd4b,0x32790011,0x3d1debdc,0x3a3f9ff0,0x65b6dcbd,0x793de69c,0x282736a4 +.long 0xd41d3bd3,0xef69a0c3,0x07a26bde,0xb533b8c9,0xdb2edf9f,0xe2801d97,0xe1877af0,0xdc4a8269,0x3d590dbe,0x6c1c5851,0xee4e9357,0x84632f6b,0x79b33374,0xd36d36b7,0x9bbca2e6,0xb46833e3 +.long 0xf7fc0586,0x37893913,0x66bf4719,0x385315f7,0xb31855dc,0x72c56293,0x849061fe,0xd1416d4e,0x51047213,0xbeb3ab78,0xf040c996,0x447f6e61,0x638b1d0c,0xd06d310d,0xbad1522e,0xe28a413f +.long 0x82003f86,0x685a76cb,0x0bcdbca3,0x610d07f7,0x9ca4c455,0x6ff66021,0xcea10eec,0x7df39b87,0xe22db218,0xb9255f96,0x08a34c44,0x8cc6d9eb,0x859f9276,0xcd4ffb86,0x50d07335,0x8fa15eb2 +.long 0xcf2c24b5,0xdf553845,0x52f9c3ba,0x89f66a9f,0xe4a7ceb3,0x8f22b5b9,0x0e134686,0xaffef809,0x8eb8fac2,0x3e53e1c6,0x28aec98e,0x93c1e4eb,0x32a43bcb,0xb6b91ec5,0xb2d74a51,0x2dbfa947 +.long 0xca84bad7,0xe065d190,0xad58e65c,0xfb13919f,0xf1cb6e31,0x3c41718b,0x06d05c3f,0x688969f0,0x21264d45,0xd4f94ce7,0x7367532b,0xfdfb65e9,0x0945a39d,0x5b1be8b1,0x2b8baf3b,0x229f789c +.long 0x6f49f15d,0xd8f41f3e,0x907f0792,0x678ce828,0xfca6e867,0xc69ace82,0xd01dcc89,0x106451ae,0x19fc32d2,0x1bb4f7f0,0xb00c52d2,0x64633dfc,0xad9ea445,0x8f13549a,0xfb323705,0x99a3bf50 +.long 0x534d4dbc,0x0c9625a2,0xc2a2fea3,0x45b8f1d1,0xa530fc1a,0x76ec21a1,0x9e5bd734,0x4bac9c2a,0x7b4e3587,0x5996d76a,0x1182d9e3,0x0045cdee,0x1207f13d,0x1aee24b9,0x97345a41,0x66452e97 +.long 0x9f950cd0,0x16e5b054,0xd7fdd075,0x9cc72fb1,0x66249663,0x6edd61e7,0xf043cccb,0xde4caa4d,0x55c7ac17,0x11b1f57a,0x1a85e24d,0x779cbd44,0xe46081e7,0x78030f86,0x8e20f643,0xfd4a6032 +.long 0x0a750c0f,0xcc7a6488,0x4e548e83,0x39bacfe3,0x0c110f05,0x3d418c76,0xb1f11588,0x3e4daa4c,0x5ffc69ff,0x2733e7b5,0x92053127,0x46f147bc,0xd722df94,0x885b2434,0xe6fc6b7c,0x6a444f65 +.long 0xc3f16ea8,0x7a1a465a,0xb2f1d11c,0x115a461d,0x6c68a172,0x4767dd95,0xd13a4698,0x3392f2eb,0xe526cdc7,0xc7a99ccd,0x22292b81,0x8e537fdc,0xa6d39198,0x76d8cf69,0x2446852d,0xffc5ff43 +.long 0xa90567e6,0x97b14f7e,0xb6ae5cb7,0x513257b7,0x9f10903d,0x85454a3c,0x69bc3724,0xd8d2c9ad,0x6b29cb44,0x38da9324,0x77c8cbac,0xb540a21d,0x01918e42,0x9bbfe435,0x56c3614e,0xfffa707a +.long 0xd4e353b7,0x0ce4e3f1,0xef46b0a0,0x062d8a14,0x574b73fd,0x6408d5ab,0xd3273ffd,0xbc41d1c9,0x6be77800,0x3538e1e7,0xc5655031,0x71fe8b37,0x6b9b331a,0x1cd91621,0xbb388f73,0xad825d0b +.long 0x1cb76219,0x56c2e05b,0x71567e7e,0x0ec0bf91,0x61c4c910,0xe7076f86,0xbabc04d9,0xd67b085b,0x5e93a96a,0x9fb90459,0xfbdc249a,0x7526c1ea,0xecdd0bb7,0x0d44d367,0x9dc0d695,0x95399917 +.long 0x9e240d18,0x61360ee9,0xb4b94466,0x057cdcac,0x2fe5325c,0xe7667cd1,0x21974e3b,0x1fa297b5,0xdb083d76,0xfa4081e7,0xf206bd15,0x31993be6,0x14c19f8c,0x8949269b,0xa9d92357,0x21468d72 +.long 0xa4c506ec,0x2ccbc583,0xd1acfe97,0x957ed188,0x12f1aea2,0x8baed833,0x8325362d,0xef2a6cb4,0x8e195c43,0x130dde42,0x0e6050c6,0xc842025a,0x08686a5d,0x2da972a7,0xe508b4a8,0xb52999a1 +.long 0x10a5a8bd,0xd9f090b9,0x096864da,0xca91d249,0x3f67dbc1,0x8e6a93be,0xf5f4764c,0xacae6fba,0xd21411a0,0x1563c6e0,0xda0a4ad8,0x28fa787f,0x908c8030,0xd524491c,0x4c795f07,0x1257ba0e +.long 0xceca9754,0x83f49167,0x4b7939a0,0x426d2cf6,0x723fd0bf,0x2555e355,0xc4f144e2,0xa96e6d06,0x87880e61,0x4768a8dd,0xe508e4d5,0x15543815,0xb1b65e15,0x09d7e772,0xac302fa0,0x63439dd6 +.long 0xc14e35c2,0xb93f802f,0x4341333c,0x71735b7c,0x16d4f362,0x03a25104,0xbf433c8e,0x3f4d069b,0xf78f5a7c,0x0d83ae01,0x7c4eed07,0x50a8ffbe,0x76e10f83,0xc74f8906,0x9ddaf8e1,0x7d080966 +.long 0x698e04cc,0xb11df8e1,0x169005c8,0x877be203,0x4f3c6179,0x32749e8c,0x7853fc05,0x2dbc9d0a,0x9454d937,0x187d4f93,0xb4800e1b,0xe682ce9d,0x165e68e8,0xa9129ad8,0xbe7f785b,0x0fe29735 +.long 0x5b9e02b7,0x5303f40c,0x35ee04e8,0xa37c9692,0x34d6632b,0x5f46cc20,0x96ac545b,0x55ef72b2,0x7b91b062,0xabec5c1f,0xbb33e821,0x0a79e1c7,0x3a9f4117,0xbb04b428,0xfd2a475a,0x0de1f28f +.long 0x3a4434b4,0x31019ccf,0x1a7954dc,0xa3458111,0xe34972a7,0xa9dac80d,0x74f6b8dd,0xb043d054,0x11137b1a,0x021c319e,0xed5cc03f,0x00a754ce,0xcbea5ad4,0x0aa2c794,0x70c015b6,0x093e67f4 +.long 0xc97e3f6b,0x72cdfee9,0xb6da7461,0xc10bcab4,0xb59806b9,0x3b02d2fc,0xa1de6f47,0x85185e89,0x0eb6c4d4,0x39e6931f,0xd4fa5b04,0x4d4440bd,0x34be7eb8,0x5418786e,0x9d7259bc,0x6380e521 +.long 0xd598d710,0x20ac0351,0xcb3a4da4,0x272c4166,0xca71de1f,0xdb82fe1a,0xd8f54b0f,0x746e79f2,0x4b573e9b,0x6e7fc736,0xfd4b5040,0x75d03f46,0x0b98d87b,0x5c1cc36d,0x1f472da1,0x513ba3f1 +.long 0xabb177dd,0x79d0af26,0x7891d564,0xf82ab568,0x72232173,0x2b6768a9,0x8c1f6619,0xefbb3bb0,0xa6d18358,0xb29c11db,0xb0916d3a,0x519e2797,0x9188e290,0xd4dc18f0,0x98b0ca7f,0x648e86e3 +.long 0x983c38b5,0x859d3145,0x637abc8b,0xb14f176c,0xcaff7be6,0x2793fb9d,0x35a66a5a,0xebe5a55f,0x9f87dc59,0x7cec1dcd,0xfbdbf560,0x7c595cd3,0x26eb3257,0x5b543b22,0xc4c935fd,0x69080646 +.long 0x81e9ede3,0x7f2e4403,0xcaf6df0a,0x243c3894,0x1c073b11,0x7c605bb1,0xba6a4a62,0xcd06a541,0x49d4e2e5,0x29168949,0x4af66880,0x33649d07,0xe9a85035,0xbfc0c885,0xfc410f4b,0xb4e52113 +.long 0x78a6513b,0xdca3b706,0x9edb1943,0x92ea4a2a,0xdb6e2dd8,0x02642216,0x9fd57894,0x9b45d0b4,0xc69d11ae,0x114e70db,0x4c57595f,0x1477dd19,0xec77c272,0xbc2208b4,0xdb68f59c,0x95c5b4d7 +.long 0x42e532b7,0xb8c4fc63,0x9ae35290,0x386ba422,0xd201ecbc,0xfb5dda42,0xa0e38fd6,0x2353dc8b,0x68f7e978,0x9a0b85ea,0x2ad6d11f,0x96ec5682,0xe5f6886d,0x5e279d6c,0x3cb1914d,0xd3fe03cd +.long 0x7ea67c77,0xfe541fa4,0xe3ea810c,0x952bd2af,0x8d01d374,0x791fef56,0x0f11336e,0xa3a1c621,0xc7ec6d79,0x5ad0d5a9,0x3225c342,0xff7038af,0xbc69601b,0x003c6689,0x45e8747d,0x25059bc7 +.long 0xf2086fbf,0xfa4965b2,0x86916078,0xf6840ea6,0x70081d6c,0xd7ac7620,0xb5328645,0xe600da31,0x529b8a80,0x01916f63,0x2d7d6f3e,0xe80e4858,0xd664ca7c,0x29eb0fe8,0xe7b43b0c,0xf017637b +.long 0x76cb2566,0x9a75c806,0xb24892d9,0x8f76acb1,0x1f08fe45,0x7ae7b9cc,0x6a4907d8,0x19ef7329,0x5f228bf0,0x2db4ab71,0x817032d7,0xf3cdea39,0xdcabe3c0,0x0b1f482e,0xbb86325c,0x3baf76b4 +.long 0x10089465,0xd49065e0,0x8e77c596,0x3bab5d29,0x193dbd95,0x7636c3a6,0xb246e499,0xdef5d294,0x286b2475,0xb22c58b9,0xcd80862b,0xa0b93939,0xf0992388,0x3002c83a,0xeacbe14c,0x6de01f9b +.long 0xadd70482,0x6aac688e,0x7b4a4e8a,0x708de92a,0x758a6eef,0x75b6dd73,0x725b3c43,0xea4bf352,0x87912868,0x10041f2c,0xef09297a,0xb1b1be95,0xa9f3860a,0x19ae23c5,0x515dcf4b,0xc4f0f839 +.long 0x97f6306a,0x3c7ecca3,0x68a3a4b0,0x744c44ae,0xb3a1d8a2,0x69cd13a0,0x5256b578,0x7cad0a1e,0x33791d9e,0xea653fcd,0x74b2e05f,0x9cc2a05d,0xfd7affa2,0x73b391dc,0xb6b05442,0xddb7091e +.long 0x8538a5c6,0xc71e27bf,0x89abff17,0x195c63dd,0x1b71e3da,0xfd315285,0xfa680fa0,0x9cbdfda7,0x849d7eab,0x9db876ca,0x3c273271,0xebe2764b,0xf208dcea,0x663357e3,0x565b1b70,0x8c5bd833 +.long 0x9837fc0d,0xccc3b4f5,0xa79cf00f,0x9b641ba8,0xdfdf3990,0x7428243d,0x020786b1,0x83a594c4,0x526c4502,0xb712451a,0x6adb3f93,0x9d39438e,0xe9ff0ccd,0xfdb261e3,0xe07af4c3,0x80344e3c +.long 0x2fa4f126,0x75900d7c,0x5c99a232,0x08a3b865,0xdb25e0c3,0x2478b6bf,0x71db2edf,0x482cc2c2,0x5f321bb8,0x37df7e64,0x9a8005b4,0x8a93821b,0xcc8c1958,0x3fa2f10c,0x2c269d0a,0x0d332218 +.long 0xe246b0e6,0x20ab8119,0xd349fd17,0xb39781e4,0xb31aa100,0xd293231e,0xbb032168,0x4b779c97,0xc8470500,0x4b3f19e1,0x0c4c869d,0x45b7efe9,0xa1a6bbcc,0xdb84f38a,0xb2fddbc1,0x3b59cb15 +.long 0x3fd165e8,0xba5514df,0x061f8811,0x499fd6a9,0xbfef9f00,0x72cd1fe0,0x79ad7e8a,0x120a4bb9,0x5f4a5ac5,0xf2ffd095,0x95a7a2f0,0xcfd174f1,0x9d17baf1,0xd42301ba,0x77f22089,0xd2fa487a +.long 0xb1dc77e1,0x9cb09efe,0x21c99682,0xe9566939,0x6c6067bb,0x8c546901,0x61c24456,0xfd378574,0x81796b33,0x2b6a6cbe,0x58e87f8b,0x62d550f6,0x7f1b01b4,0x1b763e1c,0x1b1b5e12,0x4b93cfea +.long 0x1d531696,0xb9345238,0x88cdde69,0x57201c00,0x9a86afc7,0xdde92251,0xbd35cea8,0xe3043895,0x8555970d,0x7608c1e1,0x2535935e,0x8267dfa9,0x322ea38b,0xd4c60a57,0x804ef8b5,0xe0bf7977 +.long 0xc06fece4,0x1a0dab28,0x94e7b49d,0xd405991e,0x706dab28,0xc542b6d2,0xa91618fb,0xcb228da3,0x107d1cea,0x224e4164,0xd0f5d8f1,0xeb9fdab3,0x0d6e41cd,0xc02ba386,0x9b1f7146,0x676a72c5 +.long 0x4d6cb00b,0xffd6dd98,0xde2e8d7c,0xcef9c5ca,0x641c7936,0xa1bbf5d7,0xee8f772e,0x1b95b230,0xe8ac25b1,0xf765a92e,0x3a18b7c6,0xceb04cfc,0x0acc8966,0x27944cef,0x434c1004,0xcbb3c957 +.long 0xa43ff93c,0x9c9971a1,0xa1e358a9,0x5bc2db17,0xa8d9bc82,0x45b4862e,0x2201e052,0x70ebfbfb,0x92871591,0xafdf64c7,0xb42d0219,0xea5bcae6,0x2ad8f03c,0xde536c55,0xa76aa33c,0xcd6c3f4d +.long 0x0bca6de3,0xbeb5f623,0xb1e706fd,0xdd20dd99,0xac9059d4,0x90b3ff9d,0x7ccccc4e,0x2d7b2902,0xce98840f,0x8a090a59,0x8410680a,0xa5d947e0,0x923379a5,0x49ae346a,0xb28a3156,0x7dbc84f9 +.long 0x54a1aff2,0xfd40d916,0x3a78fb9b,0xabf318ba,0x3029f95e,0x50152ed8,0xc58ad7fa,0x9fc1dd77,0x13595c17,0x5fa57915,0x8f62b3a9,0xb9504668,0xff3055b0,0x907b5b24,0x9a84f125,0x2e995e35 +.long 0x7e9bbcfb,0x87dacf69,0xe86d96e3,0x95d0c1d6,0x2d95a75c,0x65726e3c,0xacd27f21,0x2c3c9001,0x6c973f57,0x1deab561,0xa5221643,0x108b7e2c,0xc4ef79d4,0x5fee9859,0x40d4b8c6,0xbd62b88a +.long 0x197c75d6,0xb4dd29c4,0xb7076feb,0x266a6df2,0x4bf2df11,0x9512d0ea,0x6b0cc9ec,0x1320c24f,0x01a59596,0x6bb1e0e1,0xeff9aaac,0x8317c5bb,0x385aa6c9,0x65bb405e,0x8f07988f,0x613439c1 +.long 0x16a66e91,0xd730049f,0xfa1b0e0d,0xe97f2820,0x304c28ea,0x4131e003,0x526bac62,0x820ab732,0x28714423,0xb2ac9ef9,0xadb10cb2,0x54ecfffa,0xf886a4cc,0x8781476e,0xdb2f8d49,0x4b2c87b5 +.long 0x0a44295d,0xe857cd20,0x58c6b044,0x707d7d21,0xf596757c,0xae8521f9,0x67b2b714,0x87448f03,0x5ebcd58d,0x13a9bc45,0x9122d3c1,0x79bcced9,0x9e076642,0x3c644247,0x2df4767d,0x0cf22778 +.long 0x71d444b6,0x5e61aee4,0xc5084a1d,0x211236bf,0x4fd3eaf6,0x7e15bc9a,0xab622bf5,0x68df2c34,0x59bf4f36,0x9e674f0f,0xd7f34d73,0xf883669b,0x31497b1d,0xc48ac1b8,0x5106703b,0x323b925d +.long 0x74082008,0x22156f42,0xc8482bcb,0xeffc521a,0x12173479,0x5c6831bf,0xc4739490,0xcaa2528f,0x8f1b3c4d,0x84d2102a,0x2d9bec0d,0xcf64dfc1,0x78a546ef,0x433febad,0x7b73cef1,0x1f621ec3 +.long 0x37338615,0x6aecd627,0x01d8edf6,0x162082ab,0x19e86b66,0x833a8119,0xd299b5db,0x6023a251,0xbbf04b89,0xf5bb0c3a,0xae749a44,0x6735eb69,0x4713de3b,0xd0e058c5,0x2c3d4ccd,0xfdf2593e +.long 0xfdd23667,0x1b8f414e,0xfa2015ee,0xdd52aaca,0xbd9625ff,0x3e31b517,0x8db5918c,0x5ec9322d,0xa96f5294,0xbc73ac85,0x61a0666a,0x82aa5bf3,0xbf08ac42,0x49755810,0x891cedfc,0xd21cdfd5 +.long 0x67f8be10,0x918cb57b,0x56ffa726,0x365d1a7c,0x6532de93,0x2435c504,0x2674cd02,0xc0fc5e10,0x9cbbb142,0x6e51fcf8,0xafc50692,0x1d436e5a,0x3fbcae22,0x766bffff,0xfd55d3b8,0x3148c2fd +.long 0x233222fa,0x52c7fdc9,0xe419fb6b,0x89ff1092,0x25254977,0x3cd6db99,0x1cf12ca7,0x2e85a161,0xdc810bc9,0xadd2547c,0x9d257c22,0xea3f458f,0x27d6b19b,0x642c1fbe,0x140481a6,0xed07e6b5 +.long 0x86d2e0f8,0x6ada1d42,0x0e8a9fd5,0xe5920122,0x708c1b49,0x02c936af,0x2b4bfaff,0x60f30fee,0x858e6a61,0x6637ad06,0x3fd374d0,0xce4c7767,0x7188defb,0x39d54b2d,0xf56a6b66,0xa8c9d250 +.long 0xb24fe1dc,0x58fc0f5e,0x6b73f24c,0x9eaf9dee,0x33650705,0xa90d588b,0xaf2ec729,0xde5b62c5,0xd3c2b36e,0x5c72cfae,0x034435da,0x868c19d5,0xe17ee145,0x88605f93,0x77a5d5b1,0xaa60c4ee +.long 0x3b60c472,0xbcf5bfd2,0xeb1d3049,0xaf4ef13c,0xe13895c9,0x373f44fc,0x0cbc9822,0xf29b382f,0x73efaef6,0x1bfcb853,0xa8c96f40,0xcf56ac9c,0x7a191e24,0xd7adf109,0xbf8a8dc2,0x98035f44 +.long 0x1e750c84,0xf40a71b9,0x5dc6c469,0xc57f7b0c,0x6fbc19c1,0x49a0e79c,0xa48ebdb8,0x6b0f5889,0xa07c4e9f,0x5d3fd084,0xab27de14,0xc3830111,0x33e08dcc,0x0e4929fe,0x40bb73a3,0xf4a5ad24 +.long 0x490f97ca,0xde86c2bf,0x67a1ce18,0x288f09c6,0x1844478d,0x364bb886,0xceedb040,0x7840fa42,0x5a631b37,0x1269fdd2,0xa47c8b7d,0x94761f1e,0x481c6266,0xfc0c2e17,0x3daa5fa7,0x85e16ea2 +.long 0x92491048,0xccd86033,0xf4d402d7,0x0c2f6963,0xdf6a865c,0x6336f7df,0xb5c02a87,0x0a2a463c,0xbf2f12ee,0xb0e29be7,0x66bad988,0xf0a22002,0x9123c1d7,0x27f87e03,0x328a8c98,0x21669c55 +.long 0x92f14529,0x186b9803,0x63954df3,0xd3d056cc,0x175a46f6,0x2f03fd58,0x11558558,0x63e34ebe,0x5b80cfa5,0xe13fedee,0xd401dbd1,0xe872a120,0xe8a9d667,0x52657616,0xe08d6693,0xbc8da4b6 +.long 0x1b703e75,0x370fb9bb,0xd4338363,0x6773b186,0xecef7bff,0x18dad378,0x995677da,0xaac787ed,0x0437164b,0x4801ea8b,0x73fe795e,0xf430ad20,0x8ee5eb73,0xb164154d,0x108f7c0e,0x0884ecd8 +.long 0x5f520698,0x0e6ec096,0x44f7b8d9,0x640631fe,0xa35a68b9,0x92fd34fc,0x4d40cf4e,0x9c5a4b66,0x80b6783d,0x949454bf,0x3a320a10,0x80e701fe,0x1a0a39b2,0x8d1a564a,0x320587db,0x1436d53d +.long 0x6556c362,0xf5096e6d,0xe2455d7e,0xbc23a3c0,0x807230f9,0x3a7aee54,0x22ae82fd,0x9ba1cfa6,0x99c5d706,0x833a057a,0x842315c9,0x8be85f4b,0x66a72f12,0xd083179a,0xcdcc73cd,0x2fc77d5d +.long 0x5616ee30,0x22b88a80,0xe7ab1083,0xfb09548f,0x511270cd,0x8ad6ab0d,0x6924d9ab,0x61f6c57a,0x90aecb08,0xa0f7bf72,0x0df784a4,0x849f87c9,0xcfaf1d03,0x27c79c15,0xc463face,0xbbf9f675 +.long 0x765ba543,0x91502c65,0x42ea60dd,0x18ce3cac,0x6e43ecb3,0xe5cee6ac,0x68f2aeeb,0x63e4e910,0xc85932ee,0x26234fa3,0x4c90c44d,0x96883e8b,0xa18a50f6,0x29b9e738,0x3f0420df,0xbfc62b2a +.long 0x6d3e1fa9,0xd22a7d90,0xfe05b8a3,0x17115618,0xbb2b9c01,0x2a0c9926,0xe07e76a2,0xc739fcc6,0x165e439a,0x540e9157,0x6a9063d8,0x06353a62,0x61e927a3,0x84d95594,0xe2e0be7f,0x013b9b26 +.long 0x973497f1,0x4feaec3b,0x093ebc2d,0x15c0f94e,0x33af0583,0x6af5f227,0xc61f3340,0x0c2af206,0x4457397c,0xd25dbdf1,0xcabcbae0,0x2e8ed017,0xc2815306,0xe3010938,0xe8c6cd68,0xbaa99337 +.long 0x3b0ec7de,0x08513182,0x58df05df,0x1e1b822b,0xa5c3b683,0x5c14842f,0x3eba34ce,0x98fe977e,0x0d5e8873,0xfd2316c2,0xbd0d427d,0xe48d839a,0x623fc961,0x495b2218,0xb46fba5e,0x24ee56e7 +.long 0x91e4de58,0x9184a55b,0xdfdea288,0xa7488ca5,0xa8dcc943,0xa723862e,0x849dc0fc,0x92d762b2,0x091ff4a9,0x3c444a12,0x0cada274,0x581113fa,0x30d8eae2,0xb9de0a45,0xdf6b41ea,0x5e0fcd85 +.long 0xc094dbb5,0x6233ea68,0xd968d410,0xb77d062e,0x58b3002d,0x3e719bbc,0x3dc49d58,0x68e7dd3d,0x013a5e58,0x8d825740,0x3c9e3c1b,0x21311747,0x7c99b6ab,0x0cb0a2a7,0xc2f888f2,0x5c48a3b3 +.long 0x991724f3,0xc7913e91,0x39cbd686,0x5eda799c,0x63d4fc1e,0xddb595c7,0xac4fed54,0x6b63b80b,0x7e5fb516,0x6ea0fc69,0xd0f1c964,0x737708ba,0x11a92ca5,0x9628745f,0x9a86967a,0x61f37958 +.long 0xaa665072,0x9af39b2c,0xefd324ef,0x78322fa4,0xc327bd31,0x3d153394,0x3129dab0,0x81d5f271,0xf48027f5,0xc72e0c42,0x8536e717,0xaa40cdbc,0x2d369d0f,0xf45a657a,0xea7f74e6,0xb03bbfc4 +.long 0x0d738ded,0x46a8c418,0xe0de5729,0x6f1a5bb0,0x8ba81675,0xf10230b9,0x112b33d4,0x32c6f30c,0xd8fffb62,0x7559129d,0xb459bf05,0x6a281b47,0xfa3b6776,0x77c1bd3a,0x7829973a,0x0709b380 +.long 0xa3326505,0x8c26b232,0xee1d41bf,0x38d69272,0xffe32afa,0x0459453e,0x7cb3ea87,0xce8143ad,0x7e6ab666,0x932ec1fa,0x22286264,0x6cd2d230,0x6736f8ed,0x459a46fe,0x9eca85bb,0x50bf0d00 +.long 0x877a21ec,0x0b825852,0x0f537a94,0x300414a7,0x21a9a6a2,0x3f1cba40,0x76943c00,0x50824eee,0xf83cba5d,0xa0dbfcec,0x93b4f3c0,0xf9538148,0x48f24dd7,0x61744162,0xe4fb09dd,0x5322d64d +.long 0x3d9325f3,0x57447384,0xf371cb84,0xa9bef2d0,0xa61e36c5,0x77d2188b,0xc602df72,0xbbd6a7d7,0x8f61bc0b,0xba3aa902,0x6ed0b6a1,0xf49085ed,0xae6e8298,0x8bc625d6,0xa2e9c01d,0x832b0b1d +.long 0xf1f0ced1,0xa337c447,0x9492dd2b,0x800cc793,0xbea08efa,0x4b93151d,0xde0a741e,0x820cf3f8,0x1c0f7d13,0xff1982dc,0x84dde6ca,0xef921960,0x45f96ee3,0x1ad7d972,0x29dea0c7,0x319c8dbe +.long 0x7b82b99b,0xd3ea3871,0x470eb624,0x75922d4d,0x3b95d466,0x8f66ec54,0xbee1e346,0x66e673cc,0xb5f2b89a,0x6afe67c4,0x290e5cd3,0x3de9c1e6,0x310a2ada,0x8c278bb6,0x0bdb323b,0x420fa384 +.long 0x0eb919b0,0x0ae1d63b,0xa74b9620,0xd74ee51d,0xa674290c,0x395458d0,0x4620a510,0x324c930f,0xfbac27d4,0x2d1f4d19,0x9bedeeac,0x4086e8ca,0x9b679ab8,0x0cdd211b,0x7090fec4,0x5970167d +.long 0xfaf1fc63,0x3420f2c9,0x328c8bb4,0x616d333a,0x57f1fe4a,0x7d65364c,0x55e5c73a,0x9343e877,0xe970e78c,0x5795176b,0x60533627,0xa36ccebf,0x09cdfc1b,0xfc7c7380,0xb3fec326,0xb39a2afe +.long 0x6224408a,0xb7ff1ba1,0x247cfc5e,0xcc856e92,0xc18bc493,0x01f102e7,0x2091c727,0x4613ab74,0xc420bf2b,0xaa25e89c,0x90337ec2,0x00a53176,0x7d025fc7,0xd2be9f43,0x6e6fe3dc,0x3316fb85 +.long 0x9ac50814,0x27520af5,0x9a8e4223,0xfdf95e78,0x56bec5a0,0xb7e7df2a,0xdf159e5d,0xf7022f7d,0xcac1fe8f,0x93eeeab1,0x37451168,0x8040188c,0xd967dce6,0x7ee8aa8a,0x3abc9299,0xfa0e79e7 +.long 0x2064cfd1,0x67332cfc,0xb0651934,0x339c31de,0x2a3bcbea,0x719b28d5,0x9d6ae5c6,0xee74c82b,0xbaf28ee6,0x0927d05e,0x9d719028,0x82cecf2c,0xddb30289,0x0b0d353e,0xfddb2e29,0xfe4bb977 +.long 0x640bfd9e,0xbb5bb990,0x82f62108,0xd226e277,0x02ffdd56,0x4bf00985,0x2ca1b1b5,0x7756758a,0x5285fe91,0xc32b62a3,0x8c9cd140,0xedbc546a,0xaf5cb008,0x1e47a013,0x073ce8f2,0xbca7e720 +.long 0x17a91cae,0xe10b2ab8,0x08e27f63,0xb89aab65,0xdba3ddf9,0x7b3074a7,0x330c2972,0x1c20ce09,0x5fcf7e33,0x6b9917b4,0x945ceb42,0xe6793743,0x5c633d19,0x18fc2215,0xc7485474,0xad1adb3c +.long 0x6424c49b,0x646f9679,0x67c241c9,0xf888dfe8,0x24f68b49,0xe12d4b93,0xa571df20,0x9a6b62d8,0x179483cb,0x81b4b26d,0x9511fae2,0x666f9632,0xd53aa51f,0xd281b3e4,0x7f3dbd16,0x7f96a765 +.long 0x074a30ce,0xa7f8b5bf,0x005a32e6,0xd7f52107,0x50237ed4,0x6f9e0907,0x8096fa2b,0x2f21da47,0xeec863a0,0xf3e19cb4,0x9527620a,0xd18f77fd,0x407c1cf8,0x9505c81c,0x1b6ec284,0x9998db4e +.long 0xc247d44d,0x7e3389e5,0x3f4f3d80,0x12507141,0x4a78a6c7,0xd4ba0110,0x767720be,0x312874a0,0x75944370,0xded059a6,0x3b2c0bdd,0xd6123d90,0x51c108e3,0xa56b717b,0x070623e9,0x9bb7940e +.long 0x84ac066c,0x794e2d59,0xe68c69a0,0xf5954a92,0x4fd99dcc,0x28c52458,0xb1012517,0x60e639fc,0x7de79248,0xc2e60125,0xf12fc6d7,0xe9ef6404,0x2a3b5d32,0x4c4f2808,0xc768eb8a,0x865ad32e +.long 0x13fb70b6,0xac02331b,0x95599b27,0x037b44c1,0x60bd082c,0x1a860fc4,0xc980cd01,0xa2e25745,0x1da0263e,0xee3387a8,0x2d10f3d6,0x931bfb95,0xa1f24a32,0x5b687270,0xca494b86,0xf140e65d +.long 0xb2f1ac7a,0x4f4ddf91,0x760fee27,0xf99eaabb,0x49c228e5,0x57f4008a,0x1cf713bb,0x090be440,0x5004f022,0xac91fbe4,0x569e1af6,0xd838c2c2,0x0f1daaa5,0xd6c7d20b,0x1bbb02c0,0xaa063ac1 +.long 0x59558a78,0x0938a422,0x8435da2f,0x5343c669,0x034410dc,0x96f67b18,0x84510804,0x7cc1e424,0x16dfbb7d,0x86a1543f,0x5b5bd592,0x921fa942,0xb33dd03c,0x9dcccb6e,0xb843f51e,0x8581ddd9 +.long 0x81d73c9e,0x54935fcb,0x0a5e97ab,0x6d07e979,0xcf3a6bab,0x4dc7b30a,0x170bee11,0x147ab1f3,0x9fafdee4,0x0aaf8e3d,0x538a8b95,0xfab3dbcb,0x6ef13871,0x405df4b3,0x088d5a49,0xf1f4e9cb +.long 0x66b33f1d,0x9bcd24d3,0x5ce445c0,0x3b97b820,0xba93ff61,0xe2926549,0x4dafe616,0xd9c341ce,0x16efb6f3,0xfb30a76e,0x605b953c,0xdf24b8ca,0xc2fffb9f,0x8bd52afe,0xe19d0b96,0xbbac5ff7 +.long 0x459afccd,0x43c01b87,0xb7432652,0x6bd45143,0x55b5d78e,0x84734530,0x1554ba7d,0x81088fdb,0x1e269375,0xada0a52c,0x2dc5ec10,0xf9f037c4,0x94bfbc11,0xc0660607,0xc9c40d2f,0xc0a630bb +.long 0xab64c31e,0x5efc797e,0x74507144,0xffdb1dab,0x1ca6790c,0xf6124287,0xe69bf1bf,0xe9609d81,0x00d24fc9,0xdb898595,0xe51fb417,0x9c750333,0xfef7bbde,0x51830a91,0x945f585c,0x0ce67dc8 +.long 0x4763eb50,0x9a730ed4,0xc1ab0d66,0x24a0e221,0x648748f3,0x643b6393,0x6d3c6291,0x1982daa1,0x8bbc5549,0x6f00a9f7,0x7f36384e,0x7a1783e1,0xde977f50,0xe8346323,0xb245502a,0x91ab688d +.long 0x6d0bdd66,0x331ab6b5,0x64b71229,0x0a6ef32e,0xfe7c352f,0x1028150e,0xce7b39d3,0x27e04350,0xc1070c82,0x2a3c8acd,0x80c9feef,0xfb2034d3,0x709f3729,0x2d729621,0x62cb4549,0x8df290bf +.long 0xfc2e4326,0x02f99f33,0x5eddf032,0x3b30076d,0x0c652fb5,0xbb21f8cf,0xed91cf7b,0x314fb49e,0x2f700750,0xa013eca5,0x712a4575,0x2b9e3c23,0xaf30fbb0,0xe5355557,0x7c77e771,0x1ada3516 +.long 0x7b135670,0x45f6ecb2,0x7cfc202e,0xe85d19df,0x58d1be9f,0x0f1b50c7,0xead2e344,0x5ebf2c0a,0xabc199c9,0x1531fe4e,0x56bab0ae,0xc7032592,0x6c1fec54,0x16ab2e48,0x04280188,0x0f87fda8 +.long 0x609e4a74,0xdc9f46fc,0xba667f91,0x2a44a143,0xb4d83436,0xbc3d8b95,0xc7bd2958,0xa01e4bd0,0x73483c90,0x7b182932,0xa7c7b598,0xa79c6aa1,0xeaaac07e,0xbf3983c6,0x96e0d4e6,0x8f18181e +.long 0x051af62b,0x8553d37c,0x0bf94496,0xe9a998eb,0xb0d59aa1,0xe0844f9f,0xe6afb813,0x983fd558,0x65d69804,0x9670c0ca,0x6ea5ff2d,0x732b22de,0x5fd8623b,0xd7640ba9,0xa6351782,0x9f619163 +.long 0xacee5043,0x0bfc27ee,0x2eb10f02,0xae419e73,0x8943fb05,0x19c028d1,0xff13aa2a,0x71f01cf7,0x8887a132,0x7790737e,0x66318410,0x67513309,0x7ddb795e,0x9819e8a3,0xdad100b2,0xfecb8ef5 +.long 0x3021926a,0x59f74a22,0x6f9b4c1c,0xb7c28a49,0x912ad0ab,0xed1a733f,0x01a5659c,0x42a910af,0x7bd68cab,0x3842c6e0,0x76d70ac8,0x2b57fa38,0x3c53aaeb,0x8a6707a8,0x65b4db18,0x62c1c510 +.long 0xb2d09dc7,0x8de2c1fb,0x266bd23b,0xc3dfed12,0xd5b27db6,0x927d039b,0x103243da,0x2fb2f0f1,0x80be7399,0xf855a07b,0x1f9f27a8,0xed9327ce,0x729bdef7,0xa0bd99c7,0x28250d88,0x2b67125e +.long 0x8670ced7,0x784b26e8,0xc31bd3b4,0xe3dfe41f,0xbcc85cbc,0x9e353a06,0x60178a9d,0x302e2909,0xa6eac16e,0x860abf11,0xaa2b3aac,0x76447000,0x850afdab,0x46ff9d19,0xfdb2d4c1,0x35bdd6a5 +.long 0x7e5c9ce9,0xe82594b0,0x20af346e,0x0f379e53,0xbc65ad4a,0x608b31e3,0x267c4826,0x710c6b12,0x71954cf1,0x51c966f9,0x0d0aa215,0xb1cec793,0x86bd23a8,0x1f155989,0xf9452e86,0xae2ff99c +.long 0x340ceaa2,0xd8dd953c,0x2e2e9333,0x26355275,0x8586f06d,0x15d4e5f9,0xf7cab546,0xd6bf94a8,0xb76a9af0,0x33c59a0a,0xba095af7,0x52740ab3,0x24389ca0,0xc444de8a,0x706da0cb,0xcc6f9863 +.long 0x6b2515cf,0xb5a741a7,0x9585c749,0x71c41601,0xe683de97,0x78350d4f,0x63d0b5f5,0x31d61524,0xfbce090b,0x7a0cc5e1,0xfbcb2a5b,0xaac927ed,0x20d84c35,0xe920de49,0x22b4de26,0x8c06a0b6 +.long 0xafe7ddf3,0xd34dd58b,0xc1e6e55b,0x55851fed,0x960696e7,0xd1395616,0x5f22705f,0x940304b2,0xb0a2a860,0x6f43f861,0x0e7cc981,0xcf121282,0x0ab64a96,0x12186212,0xb789383c,0x09215b9a +.long 0x37387c09,0x311eb305,0xf03ee760,0xc5832fce,0x32f7ea19,0x30358f58,0x91d53551,0xe01d3c34,0xda48ea80,0x1ca5ee41,0xcf4fa4c1,0x34e71e8e,0x7af1e1c7,0x312abd25,0x2153f4a5,0xe3afcdeb +.long 0x00235e9a,0x9d5c84d7,0x8c4c836f,0x0308d3f4,0x89332de5,0xc0a66b04,0x89e566ef,0x610dd399,0xd1ac1635,0xf8eea460,0x20a2c0df,0x84cbb3fb,0xe74a48c5,0x40afb488,0xd326b150,0x29738198 +.long 0xa6d74081,0x2a17747f,0x55a26214,0x60ea4c05,0x1f88c5fe,0x53514bb4,0x7e83426c,0xedd64567,0x96460b25,0xd5d6cbec,0x68dc115e,0xa12fd0ce,0x697840ea,0xc5bc3ed2,0xa6331e31,0x969876a8 +.long 0x472ff580,0x60c36217,0x4ad41393,0xf4229705,0xa03b8b92,0x4bd99ef0,0xc144f4f6,0x501c7317,0x18464945,0x159009b3,0x74c5c6be,0x6d5e594c,0x321a3660,0x2d587011,0x3898d022,0xd1e184b1 +.long 0x4c6a7e04,0x5ba04752,0x45550b65,0x47fa1e2b,0x48c0a9a5,0x9419daf0,0x7c243236,0x66362953,0x5cb12a88,0xcd0744b1,0x2b646188,0x561b6f9a,0x66c2c0c0,0x599415a5,0x0f83f09a,0xbe3f0859 +.long 0xb92041b8,0x9141c5be,0x26477d0d,0x01ae38c7,0xd12c7a94,0xca8b71f3,0x765c70db,0xfab5b31f,0x487443e9,0x76ae7492,0x990d1349,0x8595a310,0x7d460a37,0xf8dbeda8,0x1e45a38f,0x7f7ad082 +.long 0x1059705a,0xed1d4db6,0xe6b9c697,0xa3dd492a,0x6eb38bd5,0x4b92ee3a,0x67cc0bb7,0xbab2609d,0x6e70ee82,0x7fc4fe89,0x13e6b7e3,0xeff2c56e,0x34d26fca,0x9b18959e,0x889d6b45,0x2517ab66 +.long 0xbdefdd4f,0xf167b4e0,0xf366e401,0x69958465,0xa73bbec0,0x5aa368ab,0x7b240c21,0x12148709,0x18969006,0x378c3233,0xe1fe53d1,0xcb4d73ce,0x130c4361,0x5f50a80e,0x7ef5212b,0xd67f5951 +.long 0x9e70c72e,0xf145e21e,0x5566d2fb,0xb2e52e29,0x032397f5,0x44eaba4a,0x7e31a7de,0x5e56937b,0x456c61e1,0x68dcf517,0xa8b0a388,0xbc2e954a,0x60a8b755,0xe3552fa7,0x73ad0cde,0x03442dae +.long 0xceb26210,0x37ffe747,0x787baef9,0x983545e8,0x86a3de31,0x8b8c8535,0xfacd46db,0xc621dbcb,0x59266fbb,0x82e442e9,0x339d471c,0xa3514c37,0x62cdad96,0x3a11b771,0xecf9bdf0,0xf0cb3b3c +.long 0x478e2135,0x3fcbdbce,0xbda35342,0x7547b5cf,0x8a677af6,0xa97e81f1,0x28817987,0xc8c2bf83,0x45580985,0xdf07eaaf,0xc93b45cb,0xc68d1f05,0xc77b4cac,0x106aa2fe,0x04a7ae86,0x4c1d8afc +.long 0x9eb45ab2,0xdb41c3fd,0xd4b22e74,0x5b234b5b,0xf215958a,0xda253dec,0xa04edfa0,0x67e0606e,0xef751b11,0xabbbf070,0xf6f06dce,0xf352f175,0x6839f6b4,0xdfc4b6af,0x9959848e,0x53ddf9a8 +.long 0xc21520b0,0xda49c379,0xdbd5d1b6,0x90864ff0,0x5f49c7f7,0x2f055d23,0xa796b2d8,0xe51e4e6a,0x5c9dc340,0xc361a67f,0xbca7c620,0x5ad53c37,0x32c756d0,0xda1d6588,0x8bb67e13,0xad60d911 +.long 0x0eeec8c6,0xd6c47bdf,0x078a1821,0x4a27fec1,0xc3099524,0x081f7415,0x82cd8060,0x8effdf0b,0x65842df8,0xdb70ec1c,0xd319a901,0x8821b358,0xde42b529,0x72ee56ee,0x236e4286,0x5bb39592 +.long 0xfd6f7140,0xd1183316,0xbd8e81f7,0xf9fadb5b,0x5a02d962,0x701d5e0c,0x1b601324,0xfdee4dbf,0x35d7620e,0xbed17407,0xf48c0012,0x04e3c2c3,0x3455449a,0x9ee29da7,0x91a836c4,0x562cdef4 +.long 0x47701097,0x8f682a5f,0xff88d0c2,0x617125d8,0x57bb86dd,0x948fda24,0x289f7286,0x348abb8f,0x99d94bbd,0xeb10eab5,0x4684d160,0xd51ba28e,0x30c8f41a,0xabe0e51c,0x13254f4a,0x66588b45 +.long 0xfad097a5,0x147ebf01,0x610e815d,0x49883ea8,0x8a11de56,0xe44d60ba,0x827a7a6d,0xa970de6e,0x5e17fc19,0x2be41424,0x01214057,0xd833c657,0x363e723f,0x1375813b,0xe6a52e9b,0x6820bb88 +.long 0xd875d56a,0x7e7f6970,0x51fbf6bf,0xd6a0a9ac,0xa3083c12,0x54ba8790,0x6ae7eb64,0xebaeb23d,0xb99a907a,0xa8685c3a,0x026bf40b,0xf1e74550,0xc802cd9e,0x7b73a027,0x4fef4635,0x9a8a927c +.long 0x08191224,0xe1b6f60c,0xde4ec091,0xc4126ebb,0x4ae38d84,0xe1dff4dc,0x4f2ef985,0xde3f57db,0xd446a1dd,0x34964337,0x859e77f6,0x7bf217a0,0x8e1d13f5,0x8ff10527,0x74eeae27,0xa304ef03 +.long 0xd19dfa5a,0xfc6f5e47,0x7fad982b,0xdb007de3,0x613715f5,0x28205ad1,0x7889529e,0x251e6729,0x1ae98e78,0x72705184,0x271cac32,0xf818537d,0xb7f410f5,0xc8a15b7e,0x81f62393,0xc474356f +.long 0xc242316b,0x92dbdc5a,0xdbf4aff5,0xabe060ac,0x909a8ec6,0x6e8c38fe,0x6116cb94,0x43e514e5,0x07d784f9,0x2078fa38,0xf4b5b357,0x1161a880,0x13adea3d,0x5283ce79,0xcc6a910b,0x0756c3e6 +.long 0xaaa79697,0x60bcfe01,0x56391db1,0x04a73b29,0x189b45a0,0xdd8dad47,0x48d5b8d9,0xbfac0dd0,0x7d3d2ec2,0x34ab3af5,0x207bd3af,0x6fa2fc2d,0x66550ded,0x9ff40092,0x1fd5b913,0x719b3e87 +.long 0x6d17fbc7,0xa573a496,0x73d2b24e,0x0cd1a70a,0xb2676937,0x34e2c5ca,0xbf669f21,0xe7050b06,0x1ede9046,0xfbe948b6,0x97662659,0xa0530051,0xf10124c5,0x58cbd4ed,0xdd6c06c8,0xde2646e4 +.long 0x8cad38c0,0x332f8108,0x6bd68ae2,0x471b7e90,0x0d8e27a3,0x56ac3fb2,0x136b4b0d,0xb54660db,0xa6fd8de4,0x123a1e11,0xa37799ef,0x44dbffea,0xce6ac17c,0x4540b977,0xaf60acef,0x495173a8 +.long 0x391c2a82,0x9ebb284d,0x158308e8,0xbcdd4863,0x83f1edca,0x006f16ec,0x695dc6c8,0xa13e2c37,0x4a057a87,0x2ab756f0,0xa6b48f98,0xa8765500,0x68651c44,0x4252face,0xe1765e02,0xa52b540b +.long 0x16a0d2bb,0x4f922fc5,0x1a623499,0x0d5cc16c,0x57c62c8b,0x9241cf3a,0xfd1b667f,0x2f5e6961,0xf5a01797,0x5c15c70b,0x60956192,0x3d20b44d,0x071fdb52,0x04911b37,0x8d6f0f7b,0xf648f916 +.long 0xe60b7cf7,0x6dc1acaf,0x84a9d869,0x25860a50,0xe7ba8ac4,0x56fc6f09,0x6148d29e,0x828c5bd0,0xdc55ae5f,0xac6b435e,0xc0117411,0xa527f56c,0xfd24342c,0x94d5045e,0x70b67c0d,0x2c4c0a35 +.long 0xfac61d9a,0x027cc8b8,0xe3c6fe8a,0x7d25e062,0xe5bff503,0xe08805bf,0x6ff632f7,0x13271e6c,0x232f76a5,0x55dca6c0,0x701ef426,0x8957c32d,0xa10a5178,0xee728bcb,0xb62c5173,0x5ea60411 +.long 0xd0b8892b,0xfc4e964e,0x9301bb74,0x9ea17683,0xfcc48626,0x6265c5ae,0xbb3e9102,0xe60cf82e,0xd4df5531,0x57adf797,0x8deeefe2,0x235b59a1,0x3f306eb1,0x60adcf58,0x3d09492d,0x105c2753 +.long 0xb5def996,0x4090914b,0x233dd1e7,0x1cb69c83,0x9b3d5e76,0xc1e9c1d3,0xfccf6012,0x1f3338ed,0x2f5378a8,0xb1e95d0d,0x2f00cd21,0xacf4c2c7,0xeb5fe290,0x6e984240,0x248088ae,0xd66c038d +.long 0xf94d70cf,0x804d264a,0x7314bf7e,0xbdb802ef,0x4333ed02,0x8fb54de2,0x285635d9,0x740461e0,0x365e9383,0x4113b2c8,0x3fdef652,0xea762c83,0x47b956c1,0x4eec6e2e,0x65620fa4,0xa3d814be +.long 0xb4d8bc50,0x9ad5462b,0xa9195770,0x181c0b16,0x78412a68,0xebd4fe1c,0xc0dff48c,0xae0341bc,0x7003e866,0xb6bc45cf,0x8a24a41b,0xf11a6dea,0xd04c24c2,0x5407151a,0xda5b7b68,0x62c9d27d +.long 0x88cceff6,0x2e964235,0x8b07ed69,0x8594c54f,0xc84d0d0d,0x1578e73c,0xff532868,0x7b4e1055,0xb5ec995a,0xa348c0d5,0x14289a54,0xbf4b9d55,0x58fbd777,0x9ba155a6,0x1a84491d,0x186ed7a8 +.long 0x614c0900,0xd4992b30,0xbd00c24b,0xda98d121,0x7ec4bfa1,0x7f534dc8,0x37dc34bc,0x4a5ff674,0x1d7ea1d7,0x68c196b8,0x80a6d208,0x38cf2893,0xe3cbbd6e,0xfd56cd09,0x4205a5b6,0xec72e27e +.long 0xa44f77f7,0x15ea68f5,0xb43c52bc,0x7aa5f9fd,0x94f0e609,0x86ff676f,0x2e2d432b,0xa4cde963,0xeee470af,0x8cafa0c0,0x8a3f5ec8,0x84137d0e,0xfaa31231,0xebb40411,0x6f7f7ccf,0xa239c13f +.long 0xa8afd30b,0x32865719,0x8a826dce,0x86798328,0xc4a8fbe0,0xdf04e891,0xebf56ad3,0xbb6b6e1b,0x471f1ff0,0x0a695b11,0xbe15baf0,0xd76c3389,0xbe96c43e,0x018edb95,0x90794158,0xf2beaaf4 +.long 0xc3076a27,0x152db09e,0xe416545d,0x5e82908e,0x356d6f2e,0xa2c41272,0x31fd74e1,0xdc9c9642,0x519bf615,0x66ceb88d,0x05a2274e,0xe29ecd76,0xbf5e2fa0,0x3a0473c4,0x64284e67,0x6b6eb671 +.long 0xb88756dd,0xe8b97932,0xf17e3e61,0xed4e8652,0x3ee1c4a4,0xc2dd1499,0x597f8c0e,0xc0aaee17,0x6c168af3,0x15c4edb9,0xb39ae875,0x6563c7bf,0x20adb436,0xadfadb6f,0x9a042ac0,0xad55e8c9 +.long 0xb76da1f5,0x975a1ed8,0xa58acb94,0x10dfa466,0xac060282,0x8dd7f7e3,0x572a051e,0x6813e66a,0x350cb901,0xb4ccae1e,0x50cb7822,0xb653d656,0xdfab3b87,0x42484710,0x9b670fd0,0xcd7ee537 +.long 0x523b8bf6,0x0a50b12e,0x8f910c1b,0x8009eb5b,0x4a167588,0xf535af82,0xfb2a2abd,0x0f835f9c,0x2afceb62,0xf59b2931,0x169d383f,0xc797df2a,0x66ac02b0,0xeb3f5fb0,0xdaa2d0ca,0x029d4c6f +.long 0xafab4bc5,0xd4059bc1,0x56783247,0x833f5c6f,0x8d2d3605,0xb5346630,0xd34d8433,0x83387891,0xadd9419a,0xd973b30f,0xafe3fce8,0xbcca1099,0x0809aac6,0x08178315,0x540f0f11,0x01b7f21a +.long 0x909523c8,0x65c29219,0xa3a1c741,0xa62f648f,0x60c9e55a,0x88598d4f,0x0e4f347a,0xbce9141b,0x35f9b988,0x9af97d84,0x320475b6,0x0210da62,0x9191476c,0x3c076e22,0x44fc7834,0x7520dbd9 +.long 0xc1ab1bbd,0x6a6b2cfe,0xdc650938,0xef8a65be,0x805d7bc4,0x72855540,0xed11fdfd,0xda389396,0x74660876,0xa9d5bd36,0xb45dff35,0x11d67c54,0xa4f5da94,0x6af7d148,0xc0bbeb31,0xbb8d4c3f +.long 0xe0a1b12a,0x87a7ebd1,0x770ba95f,0x1e4ef88d,0xdc2ae9cb,0x8c33345c,0x01cc8403,0xcecf1276,0x1b39b80f,0x687c012e,0x35c33ba4,0xfd90d0ad,0x5c9661c2,0xa3ef5a67,0xe017429e,0x368fc88e +.long 0x196a2fa2,0xd30c6761,0xbd5b312e,0x931b9817,0x72f54a31,0xba01000c,0x66eaa541,0xa203d2c8,0x98939db3,0xf2abdee0,0x3e606c02,0xe37d6c2c,0x521ff643,0xf2921574,0xd7e2fca3,0x2781b3c4 +.long 0x7850ec06,0x664300b0,0x7d3a10cf,0xac5a38b9,0xe34ab39d,0x9233188d,0x5072cbb9,0xe77057e4,0xb59e78df,0xbcf0c042,0x1d97de52,0x4cfc91e8,0x3ee0ca4a,0x4661a26c,0xfb8507bc,0x5620a4c1 +.long 0x049f842c,0x4b44d4aa,0x1540e82b,0xceabc5d5,0x15c6f156,0x306710fd,0x63db1d72,0xbe5ae52b,0x334957f1,0x06f1e7e6,0x31144a70,0x57e388f0,0xdf96447b,0xfb69bb2f,0x73e38a12,0x0f78ebd3 +.long 0x2b7ce542,0xb8222605,0x7472bde1,0xe6d4ce99,0x09d2f4da,0x53e16ebe,0x53b92b2e,0x180ff42e,0x2c34a1c6,0xc59bcc02,0x422c46c2,0x3803d6f9,0x5c14a8a2,0x18aff74f,0x10a08b28,0x55aebf80 +.long 0x7135593f,0x66097d58,0x2be570cd,0x32e6eff7,0x2a8c860d,0x584e6a10,0xa2eb4163,0xcd185890,0x6d97e134,0x7ceae99d,0xdd8447ce,0xd42c6b70,0xb8c50273,0x59ddbb4a,0x3cf34e1e,0x03c612df +.long 0x04b6c5a0,0x84b9ca15,0x18f0e3a3,0x35216f39,0xbd986c00,0x3ec2d2bc,0xd19228fe,0x8bf546d9,0x4cd623c3,0xd1c655a4,0x502b8e5a,0x366ce718,0xeea0bfe7,0x2cfc84b4,0xcf443e8e,0xe01d5cee +.long 0x036520f8,0x8ec045d9,0x92d40e98,0xdfb3c3d1,0xcc559a04,0x0bac4cce,0x240ea6b1,0x35eccae5,0xf8a5a0ac,0x180b32db,0xeb699700,0x547972a5,0xca26bca0,0xa3765801,0xa647f25a,0x57e09d0e +.long 0x2fdd23cc,0xb956970e,0x5682e971,0xb80288bc,0x9ae86ebc,0xe6e6d91e,0x8c9f1939,0x0564c83f,0x39560368,0x551932a2,0x049c28e2,0xe893752b,0xa6a158c3,0x0b03cee5,0x04964263,0xe12d656b +.long 0x63e3bc1d,0x4b47554e,0x45044ff7,0xc719b6a2,0xe48daa07,0x4f24d30a,0xc8c1edc3,0xa3f37556,0x0700d360,0x9a47bf76,0x822ae4e2,0xbb1a1824,0x89f1fb4c,0x22e275a3,0x9968c5f5,0x72b1aa23 +.long 0xbe063f64,0xa75feaca,0xbce47a09,0x9b392f43,0x1ad07aca,0xd4241509,0x8d26cd0f,0x4b0c591b,0x92f1169a,0x2d42ddfd,0x4cbf2392,0x63aeb1ac,0x0691a2af,0x1de9e877,0xd98021da,0xebe79af7 +.long 0x40e50acf,0xcfdf2a4e,0xaf01d665,0xf0a98ad7,0x1831be1f,0xefb640bf,0x80e9ada0,0x6fe8bd2f,0x6cafbc91,0x94c103a1,0x8308e08c,0x170f8759,0x9780ff4f,0x5de2d2ab,0x45b201f2,0x666466bc +.long 0xf5b343bc,0x58af2010,0xf2f142fe,0x0f2e400a,0xa85f4bdf,0x3483bfde,0x03bfeaa9,0xf0b1d093,0xc7081603,0x2ea01b95,0x3dba1097,0xe943e4c9,0xb438f3a6,0x47be92ad,0xe5bf6636,0x00bb7742 +.long 0x824297b4,0x136b7083,0x5584455f,0x9d0e5580,0xf1c7d69e,0xab48cedc,0x2a256e76,0x53a9e481,0x65eb2413,0x0402b0e0,0x8fc407a7,0xdadbbb84,0x8d7f5492,0xa65cd5a4,0x74bae294,0x21d44293 +.long 0x3b5f1cc4,0x66917ce6,0xce872e62,0x37ae52ea,0x2905f244,0xbb087b72,0x1e6af74f,0x12077086,0x1058edea,0x4b644e49,0xb638ca1d,0x827510e3,0x6038591c,0x8cf2b704,0xfe635063,0xffc8b47a +.long 0x1b4d5e63,0x3ae220e6,0x9d961b4b,0xbd864742,0x9bd16bed,0x610c107e,0x1127147b,0x4270352a,0x64cfc50e,0x7d17ffe6,0x1e36cb42,0x50dee01a,0x35dc5f9a,0x068a7622,0xdf53f62c,0x9a08d536 +.long 0x6be5f7de,0x4ed71457,0xc2263c9e,0xd93006f8,0xcacacb36,0xe073694c,0x3ae118ab,0x2ff7a5b4,0xcd871236,0x3cce53f1,0xc2aa6d52,0xf156a39d,0xb198d76d,0x9cc5f271,0x81383d39,0xbc615b6f +.long 0xde3eee6b,0xa54538e8,0xab910d91,0x58c77538,0x58d278bd,0x31e5bdbc,0xb963acae,0x3cde4adf,0x5302169c,0xb1881fd2,0xa989ed8b,0x8ca60fa0,0xff96a0ee,0xa1999458,0xac6c283d,0xc1141f03 +.long 0x6dfafed3,0x7677408d,0x39661588,0x33a01653,0x0b726fa0,0x3c9c15ec,0x6c9b56da,0x090cfd93,0xa3c40af5,0xe34f4bae,0xd21129f1,0x3469eadb,0x1e207ce8,0xcc51674a,0xc83b1ef9,0x1e293b24 +.long 0x1e6c0bb4,0x17173d13,0x90776d35,0x19004695,0x6de6f922,0xe7980e34,0xf4dd9a22,0x873554cb,0xcbf18a51,0x0316c627,0x3032c081,0x4d93651b,0x3946834d,0x207f2771,0x30cdbf80,0x2c08d7b4 +.long 0x86df2a61,0x137a4fb4,0xecf7b4a2,0xa1ed9c07,0x7bd042ff,0xb2e460e2,0x5f62f5ec,0xb7f5e2fa,0xcc2423b7,0x7aa6ec6b,0xba63eea7,0x75ce0a7f,0xf250a6e1,0x67a45fb1,0xe53cdc9f,0x93bc919c +.long 0x871942df,0x9271f56f,0x7859ad66,0x2372ff6f,0x33cb1a78,0x5f4c2b96,0x5838aa83,0xe3e29101,0xe4e8110c,0xa7ed1611,0x330198ce,0x2a2d70d5,0x6720efe0,0xbdf132e8,0x66a471bf,0xe61a8962 +.long 0x825808bd,0x796d3a85,0x3fd6e902,0x51dc3cb7,0x916219d1,0x643c768a,0xa2ad7d32,0x36cd7685,0xb22922a4,0xe3db9d05,0xdba29660,0x6494c87e,0xbcd2ebc7,0xf0ac91df,0x45107f8d,0x4deb57a0 +.long 0xc3d12a73,0x42271f59,0xa5c2c51d,0x5f71687c,0x05797bcb,0xcb1f50c6,0xd6d34eb0,0x29ed0ed9,0x4683c2eb,0xe5fe5b47,0x97447c46,0x4956eeb5,0x71207167,0x5b163a43,0x0248c5ef,0x93fa2fed +.long 0x31f63950,0x67930af2,0x14caa2c9,0xa77797c1,0x27ac7e62,0x526e80ee,0x58b28aec,0xe1e6e626,0xb3c9fef0,0x636178b0,0x6d5f90be,0xaf7752e0,0xeece51cf,0x94ecaf18,0xca806e1f,0x2864d0ed +.long 0x97c69134,0x6de2e383,0xeb291293,0x5a42c316,0x6a60bae0,0xc7779219,0x6b7599d1,0xa24de346,0xb75d4941,0x49d374aa,0x2d501ff0,0x98900586,0xeb7974cf,0x9f16d40e,0xcdd8c115,0x1033860b +.long 0x2094cec3,0xb6c69ac8,0x403b770c,0x9976fb88,0x4859590d,0x1dea026c,0x8562d1fd,0xb6acbb46,0x44569d85,0x7cd6c461,0x97f0891d,0xc3190a36,0x48d5a17d,0xc6f53195,0xd749abc8,0x7d919966 +.long 0xdd1c8a20,0x65104837,0x2f683419,0x7e5410c8,0xbe94022e,0x958c3ca8,0x6145dac2,0x605c3197,0x01683d54,0x3fc07501,0x595b1234,0x1d7127c5,0x9481277f,0x10b8f87c,0xe65a1adb,0x677db2a8 +.long 0xddce3345,0xec2fccaa,0x012a4350,0x2a6811b7,0xac598bdc,0x96760ff1,0xd1bf4128,0x054d652a,0x92a21005,0x0a1151d4,0x33110fdf,0xad7f3971,0x1960100f,0x8c95928c,0x7bf03362,0x6c91c825 +.long 0xce309f06,0xc8c8b2a2,0xca27204b,0xfdb27b59,0x0848e32e,0xd223eaa5,0xe7bfaf1e,0xb93e4b2e,0x44aa3ded,0xc5308ae6,0xc015d573,0x317a666a,0x1a979707,0xc888ce23,0x0d5c4958,0xf141c1e6 +.long 0x61906373,0xb53b7de5,0xeb999595,0x858dbade,0xa59e5c36,0x8cbb47b2,0xdcf4e842,0x660318b3,0x12ba4b7a,0xbd161ccd,0xf8c8282a,0xf399daab,0xeeb2130d,0x1587633a,0xda38dd7d,0xa465311a +.long 0x64d3779b,0x5f75eec8,0xad64c171,0x3c5d0476,0x2a914428,0x87410371,0x90e2fc29,0x8096a891,0x23b3ebc2,0xd3d2ae9d,0xa580cfd6,0x90bdd6db,0xc5b01f6c,0x52dbb7f3,0xe102a2dc,0xe68eded4 +.long 0x99eb6df0,0x17785b77,0x7386b779,0x26c3cc51,0x6417a48e,0x345ed988,0x07d6ef31,0xe990b4e4,0x2586abba,0x0f456b7e,0x59c96e9a,0x239ca6a5,0xe2eb4206,0xe327459c,0xa002b90a,0x3a4c3313 +.long 0xf6a3f6fb,0x2a114806,0x85c251dd,0xad5cad2f,0xf5a784d3,0x92c1f613,0x349766d5,0xec7bfacf,0x3e23cb3b,0x04b3cd33,0xc5a64b2d,0x3979fe84,0x7e589106,0x192e2720,0xa15b527f,0xa60c43d1 +.long 0xbe7cf3a6,0x2dae9082,0xbc967274,0xcc86ba92,0xaea0a8a9,0xf28a2ce8,0x6ee988b3,0x404ca6d9,0x005921b8,0xfd7e9c5d,0x44e79bf9,0xf56297f1,0x0d75ddc2,0xa163b460,0xa1f2be87,0x30b23616 +.long 0xbfe50e2b,0x4b070d21,0xe1bfede1,0x7ef8cfd0,0x2aac4ae0,0xadba0011,0xb9ebd033,0x2a3e7d01,0xe38d9d1c,0x995277ec,0x9c5d2de3,0xb500249e,0xf13ca8c9,0x8912b820,0x877793af,0xc8798114 +.long 0xec3f1dec,0x19e6125d,0x911178da,0x07b1f040,0x904a6738,0xd93ededa,0x0bebedcd,0x55187a5a,0xeb329d41,0xf7d04722,0xf170b391,0xf449099e,0xca99f828,0xfd317a69,0x34a4976d,0x50c3db2b +.long 0x3757b392,0xe9ba7784,0xaa3ca05a,0x326caefd,0xf1e593d4,0x78e5293b,0x0d98fd13,0x7842a937,0x5f96b10d,0xe694bf96,0x06a8cd05,0x373a9df6,0xe8f0c7fc,0x997d1e51,0x63fd972e,0x1d019790 +.long 0x5499fb32,0x0064d858,0x77a8aeb7,0x7b67bad9,0x2d08eec5,0x1d3eb977,0xcbabae1d,0x5fc047a6,0xe54a64bb,0x0577d159,0xc43497e4,0x8862201b,0x2ce0608d,0xad6b4e28,0x0b167aac,0x8b687b7d +.long 0x8b2ecfa9,0x6ed4d367,0xa90c3c38,0x24dfe62d,0x3fe5c42b,0xa1862e10,0xd5732a9f,0x1ca73dca,0x76bb87ad,0x35f038b7,0xf242b81f,0x674976ab,0xb0fd90cd,0x4f2bde7e,0xa7fdf092,0x6efc172e +.long 0x92222f1f,0x3806b69b,0x6cf7ae70,0x5a2459ca,0xa85217ee,0x6789f69c,0xe3dc85ac,0x5f232b5e,0x48e9e516,0x660e3ec5,0x3197eb31,0x124b4e47,0xaafcca23,0x10a0cb13,0x8213224f,0x7bd63ba4 +.long 0x290a7f4f,0xaffad7cc,0x0286b461,0x6b409c9e,0xffa407af,0x58ab809f,0xc68ac073,0xc3122eed,0x4ef24d7e,0x17bf9e50,0x3e2a5811,0x5d929794,0x02902e01,0x519bc867,0x39c8a851,0x76bba5da +.long 0xda94951e,0xe9f9669c,0x66b8d418,0x4b6af58d,0x17d426a4,0xfa321074,0x9dde6027,0xc78e66a9,0x4a53b964,0x0516c083,0xff602330,0xfc659d38,0x58c5c897,0x0ab55e5c,0x838bc5df,0x985099b2 +.long 0xc52fc238,0x061d9efc,0x6ac1da3f,0x712b2728,0x9283fe08,0xfb658149,0xb8aaa2f7,0x4954ac94,0x7fb2e74f,0x85c0ada4,0xb89926b0,0xee8ba98e,0x23d1af5b,0xe4f9d37d,0xba9b015e,0x14ccdbf9 +.long 0x7bfe7178,0xb674481b,0x65405868,0x4e1debae,0xc48c867d,0x061b2821,0x513b30ea,0x69c15b35,0x36871088,0x3b4a1666,0x1220b1ff,0xe5e29f5d,0x233d9f4d,0x4b82bb35,0x18cdc675,0x4e076333 +.long 0xa3e6fced,0x0d53f5c7,0xf45fbdeb,0xe8cbbdd5,0x13339a70,0xf85c01df,0x142ceb81,0x0ff71880,0xbd70437a,0x4c4e8774,0xba0bda6a,0x5fb32891,0xf18bd26e,0x1cdbebd2,0x03a9d522,0x2f9526f1 +.long 0x92c4d684,0x40ce3051,0x7612efcd,0x8b04d725,0x6f9cae20,0xb9dcda36,0xf058856c,0x0edc4d24,0x85427900,0x64f2e6bf,0xdc09dfea,0x3de81295,0x379bf26c,0xd41b4487,0x6df135a9,0x50b62c6d +.long 0xc72dfe67,0xd4f8e3b4,0x90e19fdf,0xc416b0f6,0x4c13bd35,0x18b9098d,0x15b8cb9e,0xac11118a,0xf0062841,0xf598a318,0x89f356f4,0xbfe0602f,0x30177a0c,0x7ae3637e,0x61136537,0x34097747 +.long 0xd005832a,0x0db2fb5e,0x91042e4f,0x5f5efd3b,0xed70f8ca,0x8c4ffdc6,0xb52da9cc,0xe4645d0b,0xc9001d1f,0x9596f58b,0x4e117205,0x52c8f0bc,0xe398a084,0xfd4aa0d2,0x104f49de,0x815bfe3a +.long 0x23885e5f,0x97e5443f,0xe8433aab,0xf72f8f99,0xe4d4e604,0xbd00b154,0xe5e173ff,0xd0b35e6a,0x9164722d,0x57b2a048,0x88761ec8,0x3e3c665b,0x3da83832,0x6bdd1397,0x73dafe3b,0x3c8b1a1e +.long 0x54317cac,0x4497ace6,0x521771b3,0xbe600ab9,0xb0dfe8b8,0xb42e409e,0x3942310f,0x386a67d7,0x4431cc28,0x25548d8d,0x985dc524,0xa7cff142,0x93c4be32,0x4d60f5a1,0xd071c6e1,0x83ebd5c8 +.long 0xb1fd2b0b,0xba3a80a7,0x5bec33e8,0x9b3ad396,0x79743fb3,0xb3868d61,0xfdb462fa,0xcfd169fc,0x9ce0a6af,0xd3b499d7,0xe42d3ff8,0x55dc1cf1,0xc6c3e1b2,0x04fb9e6c,0x6f69a474,0x47e6961d +.long 0xe548b37b,0x54eb3acc,0x84d40549,0xb38e7542,0x7b341b4f,0x8c3daa51,0x690bf7fa,0x2f6928ec,0x86ce6c41,0x0496b323,0x10adadcd,0x01be1c55,0x4bb5faf9,0xc04e67e7,0xe15c9985,0x3cbaf678 +.long 0x50ca4247,0x8cd12145,0xe7dd30aa,0xba1aa47a,0xe58fee24,0x2f81ddf1,0xeec9b0e8,0x03452936,0x243aea96,0x8bdc3b81,0x15c3d0e5,0x9a2919af,0x10948361,0x9ea640ec,0x6e0bcccf,0x5ac86d5b +.long 0xc36cf440,0xf892d918,0xc939719c,0xaed3e837,0xc0218b64,0xb07b08d2,0xce9790dd,0x6f1bcbba,0x60919b8e,0x4a84d6ed,0x8ac1f9eb,0xd8900791,0x0dd5daef,0xf84941aa,0x67fd62c5,0xb22fe40a +.long 0x157f2db3,0x97e15ba2,0x8e28ca9c,0xbda2fc8f,0x37b9f454,0x5d050da4,0x2379d72e,0x3d57eb57,0xfb5ee997,0xe9b5eba2,0xe11538ca,0x01648ca2,0xf6327974,0x32bb76f6,0xff3f4bb7,0x338f14b8 +.long 0xd7ab9a2d,0x524d226a,0x7dfae958,0x9c00090d,0x8751d8c2,0x0ba5f539,0x3ab8262d,0x8afcbcdd,0xe99d043b,0x57392729,0xaebc943a,0xef51263b,0x20862935,0x9feace93,0xb06c817b,0x639efc03 +.long 0x66b4be7a,0x1fe054b3,0x84a37a1e,0x3f25a9de,0x78d75cd9,0xf39ef1ad,0x5062c1b5,0xd7b58f49,0xff563436,0x6f74f9a9,0xe8af51e7,0xf718ff29,0x15e97fec,0x5234d313,0x292f1c0a,0xb6a8e2b1 +.long 0x327720c1,0xa7f53aa8,0xba092cc8,0x956ca322,0x28746c4d,0x8f03d64a,0x66d0d392,0x51fe1782,0x3c832c80,0xd19b34db,0x6da2e3b4,0x60dccc5c,0x0a104ccc,0x245dd62e,0x620b21fd,0xa7ab1de1 +.long 0x3893d123,0xb293ae0b,0xb15ee71c,0xf7b75783,0x42a9468b,0x5aa3c614,0xdb15d744,0xd686123c,0xa7ab4116,0x8c616891,0xa4e6a459,0x6fcd72c8,0x77e5fad7,0xac219110,0x704fa46b,0xfb6a20e7 +.long 0x341d81dc,0xe839be7d,0x32148379,0xcddb6889,0xf7026ead,0xda6211a1,0xf4d1cc5e,0xf3b2575f,0xa7a73ae6,0x40cfc8f6,0x61d5b483,0x83879a5e,0x41a50ebc,0xc5acb1ed,0x3c07d8fa,0x59a60cc8 +.long 0xb1876262,0x1b73bdce,0x12af4ee9,0x2b0d79f0,0xd46e1d07,0x8bcf3b0b,0xe45d152f,0x17d6af9d,0x6d736451,0x73520461,0x56b0bf5a,0x43cbbd97,0xd5999b9d,0xb0833a5b,0xeb72e398,0x702614f0 +.long 0x59c3e9f8,0x0aadf01a,0xce6b3d16,0x40200e77,0xdeddafad,0xda22bdd3,0x310d72e1,0x76dedaf4,0x4bc2e88f,0x49ef807c,0x146dd5a5,0x6ba81291,0x7d8d59e9,0xa1a4077a,0x802db349,0x87b6a2e7 +.long 0x1b4e598e,0xd5679997,0x06fe4b1d,0xf499ef1f,0xfcb267c5,0x3978d3ae,0x235786d0,0xb582b557,0x1715cb07,0x32b3b2ca,0x8480241d,0x4c3de6a2,0xcb571ecd,0x63b5ffed,0xed2fe9a9,0xeaf53900 +.long 0xc3b81990,0xdec98d4a,0x9e0cc8fe,0x1cb83722,0xd2b427b9,0xfe0b0491,0xe983a66c,0x0f2386ac,0xb3291213,0x930c4d1e,0x59a62ae4,0xa2f82b2e,0xf93e89e3,0x77233853,0x11777c7f,0x7f8063ac +.long 0x59ad2877,0xff0eb567,0x9865c754,0x6f454642,0x236e9a84,0xe6fe701a,0x06e40fc3,0xc586ef16,0x24bafad9,0x3f62b6e0,0x64da906a,0xc8b42bd2,0xda3276a0,0xc98e1eb4,0x06cbf852,0x30d0e5fc +.long 0xe8b4dfd4,0x1b6b2ae1,0x8301cbac,0xd754d5c7,0x112a39ac,0x66097629,0x93ba4ab9,0xf86b5999,0x99f9d581,0x26c9dea7,0xc2fafeaa,0x0473b1a8,0x3b2505a5,0x1469af55,0xd6a43323,0x227d16d7 +.long 0xad3d97f9,0x3316f73c,0x1f137455,0x52bf3bb5,0x09954e7c,0x953eafeb,0xdd732411,0xa721dfed,0x141d4579,0xb4929821,0xaa3bd435,0x3411321c,0x17fa6015,0xafb355aa,0x18e42f0e,0xb4e7ef4a +.long 0x59371000,0x604ac97c,0x7f759c18,0xe1c48c70,0xa5db6b65,0x3f62ecc5,0x38a21495,0x0a78b173,0xbcc8ad94,0x6be1819d,0xd89c3400,0x70dc04f6,0xa6b4840a,0x462557b4,0x60bd21c0,0x544c6ade +.long 0x907a544b,0x6a00f24e,0x313da210,0xa7520dcb,0x11e4994b,0xfe939b75,0xbc275d70,0x918b6ba6,0x644be892,0xd3e5e0fc,0xfdaf6c42,0x707a9816,0xf15c13fe,0x60145567,0xe130a54a,0x4818ebaa +.long 0x58d2f767,0x28aad3ad,0xd7e7c773,0xdc5267fd,0xc3afcc98,0x4919cc88,0x2db8cd4b,0xaa2e6ab0,0xd0c63eaa,0xd46fec04,0x19ffa832,0xa1cb92c5,0xe43a631f,0x678dd178,0x3dc788b3,0xfb5ae1cd +.long 0x6e77de04,0x68b4fb90,0xf06dbb97,0x7992bcf0,0xc417c01d,0x896e6a13,0xb956be01,0x8d96332c,0x413aa2b9,0x902fc93a,0xfc98c8a5,0x99a4d915,0x565f1137,0x52c29407,0x21e4f281,0x4072690f +.long 0x02ff6072,0x36e607cf,0x8ad98cdc,0xa47d2ca9,0xf5f56609,0xbf471d1e,0xf264ada0,0xbcf86623,0xaa9e5cb6,0xb70c0687,0x17401c6c,0xc98124f2,0xd4a61435,0x8189635f,0xa9d98ea6,0xd28fb8af +.long 0x40c251f8,0xb9a67c2a,0xa2da44be,0x88cd5d87,0xe09b5423,0x437deb96,0x64287dc1,0x150467db,0xcdabb839,0xe161debb,0xf1839a3e,0xa79e9742,0x652d202b,0xbb8dd3c2,0xe9f97d96,0x7b3e67f7 +.long 0xb1cb6ac9,0x5aa5d78f,0xca1d0d45,0xffa13e8e,0x2ba5bf95,0x369295dd,0x39aff05e,0xd68bd1f8,0x26d783f2,0xaf0d86f9,0xfc3aafc1,0x543a59b3,0x7b7da97c,0x3fcf81d2,0xd25dee46,0xc990a056 +.long 0x519cce2c,0x3e6775b8,0xae13d863,0xfc9af71f,0x47c1605c,0x774a4a6f,0x2fd205e8,0x46ba4245,0xd3fd524d,0xa06feea4,0x6de1acc2,0x1e724641,0x334e2b42,0xf53816f1,0x922f0024,0x49e5918e +.long 0x65c7322d,0x439530b6,0xb3c1b3fb,0xcf12cc01,0x0172f685,0xc70b0186,0x1b58391d,0xb915ee22,0xa317db24,0x9afdf03b,0x17b8ffc4,0x87dec659,0xe4d3d050,0x7f46597b,0x006500e7,0x80a1c1ed +.long 0x78bf030e,0x84902a96,0x50560148,0xfb5e9c9a,0x63362426,0x6dae0a92,0xa9e30c40,0xdcaeecf4,0x518d0c6b,0xc0d887bb,0xcb985b9d,0x99181152,0xef7bc381,0xad186898,0x9ee46201,0x18168ffb +.long 0x2502753c,0x9a04cdaa,0x51407c41,0xbb279e26,0xf23564e5,0xeacb03aa,0x71e61016,0x18336582,0xeb809877,0x8684b8c4,0xea0e672e,0xb336e18d,0x34ee5867,0xefb601f0,0x1341cfd1,0x2733edbe +.long 0x26025c3c,0xb15e809a,0x9350df88,0xe6e981a6,0x8502fd8e,0x92376237,0x0c12be9b,0x4791f216,0x25f02425,0xb7256789,0x7a974443,0xec863194,0xfb41cc52,0x7c0ce882,0xf25c07f2,0xc266ff7e +.long 0x017025f3,0x3d4da8c3,0xfb9579b4,0xefcf628c,0x1f3716ec,0x5c4d0016,0x6801116e,0x9c27ebc4,0x1da1767e,0x5eba0ea1,0x47004c57,0xfe151452,0x8c2373b7,0x3ace6df6,0x5dbc37ac,0x75c3dffe +.long 0xddc925fc,0x3dc32a73,0x2f65ee0b,0xb679c841,0x451cbfeb,0x715a3295,0xf76e9a29,0xd9889768,0xb28ad247,0xec20ce7f,0x00894d79,0xe99146c4,0x9f5e3ea7,0x71457d7c,0x38030031,0x097b2662 +.long 0xcf9f82a8,0xdb7f6ae6,0x438f473a,0x319decb9,0x283856c3,0xa63ab386,0xb06a361b,0x13e3172f,0x7d5a006c,0x2959f8dc,0x75fba752,0x2dbc27c6,0x87c22c9e,0xc1227ab2,0x71a268b2,0x06f61f75 +.long 0x04779ce2,0x1b6bb971,0x0aadcb1d,0xaca83812,0xaeaab2d5,0x297ae0bc,0x5bfb9f13,0xa5c14ee7,0xf17a62c7,0xaa00c583,0x173759f6,0x39eb962c,0x86c9a88f,0x1eeba1d4,0xdf016c5e,0x0ab6c37a +.long 0xa28a0749,0xa2a147db,0xee519165,0x246c20d6,0xd3810715,0x5068d1b1,0x748160b9,0xb1e7018c,0xf380ff62,0x03f5b1fa,0xf3cb2c1e,0xef7fb1dd,0xfc91a7da,0xeab539a8,0xf3f9b561,0x83ddb707 +.long 0xfe7df7a4,0xc550e211,0x063f6f40,0xa7cd07f2,0x2976879c,0xb0de3635,0xe55741da,0xb5f83f85,0xf3d8ac3d,0x4ea9d25e,0x62819f02,0x6fe2066f,0xcef4a564,0x4ab2b9c2,0x5ffa2de3,0x1e155d96 +.long 0xc3a72d00,0x0eb0a19b,0x8513c31b,0x4037665b,0x04c64637,0x2fb2b6bf,0x08cdc639,0x45c34d6e,0xf01fd796,0x56f1e10f,0xfe3667b8,0x4dfb8101,0x9021d0c0,0xe0eda253,0x8a06c6ab,0x7a94e9ff +.long 0xbb9aa882,0x2d3bb0d9,0xec05fd10,0xea20e4e5,0x1a1ca64e,0xed7eeb5f,0xc6327cbd,0x2fa6b43c,0x3aa91121,0xb577e3cf,0x3a34079b,0x8c6bd5ea,0x60e02fc0,0xd7e5ba39,0x90141bf8,0xf16dd2c3 +.long 0x80101b98,0xb57276d9,0xb82f0f66,0x760883fd,0x4bc3eff3,0x89d7de75,0x5dc2ab40,0x03b60643,0xe05beeac,0xcd6e53df,0xbc3325cd,0xf2f1e862,0x774f03c3,0xdd0f7921,0x4552cc1b,0x97ca7221 +.long 0x1cd19f72,0x5a0d6afe,0xf183fbeb,0xa20915dc,0x832c403c,0x9fda4b40,0xbe425442,0x32738edd,0xb5eccf1a,0x469a1df6,0x28bbe1f0,0x4b5aff42,0x570dfc93,0x31359d7f,0xf0088628,0xa18be235 +.long 0xb00ed3a9,0xa5b30fba,0x73cdf8be,0x34c61374,0xabc56797,0x2c5c5f46,0xb82a8ae2,0x5cecf93d,0xa968fbf0,0x7d3dbe41,0x1a5c7f3d,0xd23d4583,0xc087a9c7,0xf28f69a0,0x474471ca,0xc2d75471 +.long 0x4eb732ec,0x36ec9f4a,0xb1ca6bed,0x6c943bbd,0xf2457892,0xd64535e1,0xf7e2ac06,0x8b84a8ea,0x2499dd5f,0xe0936cd3,0x0ed04e57,0x12053d7e,0xe4305d9d,0x4bdd0076,0x1f67f0a2,0x34a527b9 +.long 0x9cec46ea,0xe79a4af0,0x658b9bc7,0xb15347a1,0x35af2f75,0x6bd2796f,0x4051c435,0xac957990,0xc33a655d,0x2669dda3,0x88514aa3,0x5d503c2e,0x3753dd41,0xdfa11337,0x0b754f78,0x3f054673 +.long 0x496125bd,0xbf185677,0x3775006c,0xfb0023c8,0x3a037899,0xfa0f072f,0x0e4aea57,0x4222b6eb,0x7866d25a,0x3dde5e76,0x4837aa6f,0xb6eb04f8,0x2cf1cdb8,0x5315591a,0x2d4e683c,0x6dfb4f41 +.long 0x48ee1f3a,0x7e923ea4,0x05a2afd5,0x9604d9f7,0x40ea4948,0xbe1d4a33,0xb44cbd2f,0x5b45f1f4,0x4acc757e,0x5faf8376,0x63d68ff7,0xa7cf9ab8,0xdf0e404b,0x8ad62f69,0x12bdafdf,0xd65f33c2 +.long 0xa377b14e,0xc365de15,0x8e39f60c,0x6bf5463b,0x2ce68148,0x62030d2d,0xe6f843a8,0xd95867ef,0xef5ab017,0xd39a0244,0x4ab55d12,0x0bd2d8c1,0x41639169,0xc9503db3,0xf7660c8a,0x2d4e25b0 +.long 0xe224c5d7,0x760cb3b5,0x68616919,0xfa3baf8c,0x8d142552,0x9fbca113,0x7669ebf5,0x1ab18bf1,0x9bdf25dd,0x55e6f53e,0xcb6cd154,0x04cc0bf3,0x95e89080,0x595bef49,0x104a9ac1,0xfe9459a8 +.long 0xcce9bb32,0xad2d89ca,0xf7de8285,0xddea65e1,0xb351bd4b,0x62ed8c35,0x0c0e19a7,0x4150ff36,0x345f4e47,0x86e3c801,0x203a266c,0x3bf21f71,0x855b1f13,0x7ae110d4,0x07262517,0x5d6aaf6a +.long 0x813d28f1,0x1e0f12e1,0x7ad7a523,0x6000e11d,0xc744a17b,0xc7d8deef,0x14c05a00,0x1e990b48,0x93e976d5,0x68fddaee,0x46610d63,0x696241d1,0x893dda88,0xb204e7c3,0x6a3a6946,0x8bccfa65 +.long 0xc5cd1411,0xb59425b4,0xff3658b1,0x701b4042,0x4784cf93,0xe3e56bca,0x8fe68d60,0x27de5f15,0xf8d53f19,0x4ab9cfce,0xa40a730d,0xddb10311,0x4eee0a8a,0x6fa73cd1,0x5249719d,0xfd548748 +.long 0xa8123ef0,0x49d66316,0xe7f95438,0x73c32db4,0x0d9e7854,0x2e2ed209,0x9d9f0507,0xf98a9329,0x0c6aa20a,0xc5d33cf6,0x75279bb2,0x9a32ba14,0x774a7307,0x7e3202cb,0xe8c42dbd,0x64ed4bc4 +.long 0xd4caed0d,0xc20f1a06,0x171d22b3,0xb8021407,0xd13268d7,0xd426ca04,0x25f4d126,0x92377007,0x71f21a85,0x4204cbc3,0xf82369ba,0x18461b7a,0x3fc858f9,0xc0c07d31,0xe2bab569,0x5deb5a50 +.long 0xd5eea89e,0xd5959d46,0x08437f4b,0xfdff8424,0x3cfe254f,0xf21071e4,0x95468321,0x72417696,0x102cae3e,0x5d8288b9,0xf1965dff,0x2d143e3d,0xa078d847,0x00c9a376,0x26028731,0x6fc0da31 +.long 0xe45083a2,0xa2baeadf,0x5e5b4bcd,0x66bc7218,0xd04b8e7f,0x2c826442,0x6c4b586b,0xc19f5451,0x5b7eeed5,0x60182c49,0x7aa9dfa1,0xd9954ecd,0xc73884ad,0xa403a8ec,0x9bb39041,0x7fb17de2 +.long 0xabb020e8,0x694b64c5,0x19c4eec7,0x3d18c184,0x1c4793e5,0x9c4673ef,0x056092e6,0xc7b8aeb5,0xf0f8c16b,0x3aa1ca43,0xd679b2f6,0x224ed5ec,0x55a205c9,0x0d56eeaf,0x4b8e028b,0xbfe115ba +.long 0x3927f4fe,0x97e60849,0x759aa7c5,0xf91fbf94,0x6be90a51,0x985af769,0x78ccb823,0xc1277b78,0xe7a75952,0x395b656e,0x928da5f5,0x00df7de0,0x4ca4454f,0x09c23175,0x7aa2d3c1,0x4ec971f4 +.long 0xe75d9ccc,0x45c3c507,0x3dc90306,0x63b7be8a,0x5db44bdc,0x37e09c66,0x6841c6a2,0x50d60da1,0x08df1b12,0x6f9b65ee,0x7ff089df,0x38734879,0x3fe8013d,0x9c331a66,0x5f42fcc8,0x017f5de9 +.long 0xe8e57567,0x43077866,0xf9fcdb18,0xc9f781ce,0x9b12e174,0x38131dda,0x8a03752a,0x25d84aa3,0x4d0c0ce2,0x45e09e09,0x92bebba5,0x1564008b,0xa87284c7,0xf7e8ad31,0x97e7bbaa,0xb7c4b46c +.long 0x97acf4ec,0x3e22a7b3,0x5ea8b640,0x0426c400,0x4e969285,0x5e3295a6,0xa6a45670,0x22aabc59,0x5f5942bc,0xb929714c,0xfa3182ed,0x9a6168bd,0x104152ba,0x2216a665,0xb6926368,0x46908d03 +.long 0x5a1251fb,0xa9f5d874,0xc72725c7,0x967747a8,0x31ffe89e,0x195c33e5,0xe964935e,0x609d210f,0x2fe12227,0xcafd6ca8,0x0426469d,0xaf9b5b96,0x5693183c,0x2e9ee04c,0xc8146fef,0x1084a333 +.long 0xaed1d1f7,0x96649933,0x50563090,0x566eaff3,0xad2e39cf,0x345057f0,0x1f832124,0x148ff65b,0xcf94cf0d,0x042e89d4,0x520c58b3,0x319bec84,0x5361aa0d,0x2a267626,0x8fbc87ad,0xc86fa302 +.long 0x5c8b06d5,0xfc83d2ab,0xfe4eac46,0xb1a785a2,0x846f7779,0xb99315bc,0xef9ea505,0xcf31d816,0x15d7dc85,0x2391fe6a,0xb4016b33,0x2f132b04,0x181cb4c7,0x29547fe3,0x650155a1,0xdb66d8a6 +.long 0xadc1696f,0x6b66d7e1,0x0acd72d0,0x98ebe593,0xcc1b7435,0x65f24550,0xb4b9a5ec,0xce231393,0xdb067df9,0x234a22d4,0xcaff9b00,0x98dda095,0x6100c9c1,0x1bbc75a0,0x939cf695,0x1560a9c8 +.long 0x99e0925f,0xcf006d3e,0x6322375a,0x2dd74a96,0xb56af5ba,0xc58b446a,0xe0b9b4f1,0x50292683,0x1aeaffa3,0xe2c34cb4,0x9b9587c1,0x8b17203f,0xead1350c,0x6d559207,0xfb7f9604,0x2b66a215 +.long 0xfe51bf74,0x0850325e,0x5e460094,0x9c4f579e,0x76da2f25,0x5c87b92a,0x6febef33,0x889de4e0,0x646083ce,0x6900ec06,0xbfe12773,0xbe2a0335,0xc5344110,0xadd1da35,0xb802cd20,0x757568b7 +.long 0x00f7e6c8,0x75559779,0x0facd2f0,0x38e8b94f,0x03fde375,0xfea1f3af,0x75881dfc,0x5e11a1d8,0xc1e2f2ef,0xb3a6b02e,0xc605a6c5,0x193d2bbb,0x339a0b2d,0x325ffeee,0x9e0c8846,0x27b6a724 +.long 0xf1c367ca,0xe4050f1c,0xc90fbc7d,0x9bc85a9b,0xe1a11032,0xa373c4a2,0xad0393a9,0xb64232b7,0x167dad29,0xf5577eb0,0x94b78ab2,0x1604f301,0xe829348b,0x0baa94af,0x41654342,0x77fbd8dd +.long 0xb964e39a,0xdab50ea5,0xd0d3c76e,0xd4c29e3c,0x56d11964,0x80dae67c,0xe5ffcc2f,0x7307a8bf,0x91708c3b,0x65bbc1aa,0x28bf0eeb,0xa151e62c,0x6fa34db7,0x6cb53381,0xa29403a8,0x5139e05c +.long 0x94a7cd2e,0x6ff651b4,0x0699336c,0x5671ffd1,0x979a896a,0x6f5fd2cc,0xd8148cef,0x11e893a8,0x65cf7b10,0x988906a1,0xc50d8485,0x81b67178,0x8a35b3de,0x7c0deb35,0xc1d29799,0x423ac855 +.long 0xdac50b74,0xaf580d87,0x5869734c,0x28b2b89f,0x874e28fb,0x99a3b936,0x25f3f73a,0xbb2c9190,0x84a9d5b7,0x199f6918,0x7e770374,0x7ebe2325,0x0738efe2,0xf442e107,0xcf9082d2,0xcf9f3f56 +.long 0x09618708,0x719f69e1,0xc183f9b1,0xcc9e8364,0x366a21af,0xec203a95,0x068b141f,0x6aec5d6d,0x994f04e9,0xee2df78a,0x271245b0,0xb39ccae8,0x97e43f4f,0xb875a4a9,0xdb2cea98,0x507dfe11 +.long 0x489b03e9,0x4fbf81cb,0x6ec414fa,0xdb86ec5b,0xf51b3ae5,0xfad444f9,0x1914e3fe,0xca7d33d6,0x0ae6c4d0,0xa9c32f5c,0x73969568,0xa9ca1d1e,0x1aa7467e,0x98043c31,0xe21b5ac6,0xe832e75c +.long 0x5232123d,0x314b7aea,0x65ae86db,0x08307c8c,0xaa4668ed,0x06e7165c,0xb4d3ec39,0xb170458b,0xc19bb986,0x4d2e3ec6,0xae0304ed,0xc5f34846,0x6c9f9722,0x917695a0,0x4cab1c0a,0x6c7f7317 +.long 0x9d6d2e8b,0x6295940e,0x549f7c97,0xd318b8c1,0x97713885,0x22453204,0xa8a440fe,0x468d834b,0xbfba796e,0xd81fe5b2,0x6d71f116,0x152364db,0xb5b66e53,0xbb8c7c59,0x2641a192,0x0b12c61b +.long 0xfcf0a7fd,0x31f14802,0x5488b01e,0x42fd0789,0x9952b498,0x71d78d6d,0x07ac5201,0x8eb572d9,0x4d194a88,0xe0a2a44c,0xba017e66,0xd2b63fd9,0xf888aefc,0x78efc6c8,0x4a881a11,0xb76f6bda +.long 0xb46c2397,0x187f314b,0x5ded2819,0x004cf566,0x38764d34,0xa9ea5704,0x78084709,0xbba45217,0x1171121e,0x06474571,0xe7c9b671,0xad7b7eb1,0x730f7507,0xdacfbc40,0xc7ad7bd1,0x178cd8c6 +.long 0xb2a67238,0xbf0be101,0xaf9c14f2,0x3556d367,0xa5662075,0x104b7831,0x79d9e60a,0x58ca59bb,0xa569a73b,0x4bc45392,0x5698f6c9,0x517a52e8,0xaeadd755,0x85643da5,0x2a581b84,0x1aed0cd5 +.long 0x80af1372,0xb9b4ff84,0xf1ba5d1f,0x244c3113,0xf5f98d31,0x2a5dacbe,0x4375bc2a,0x2c3323e8,0x5594b1dd,0x17a3ab4a,0xceb4797e,0xa1928bfb,0xe4886a19,0xe83af245,0x72b5a74a,0x8979d546 +.long 0x19f9e967,0xa0f726bc,0xe8fbbf4e,0xd9d03152,0xb7707d40,0xcfd6f51d,0x63f6e6e0,0x633084d9,0x55667eaf,0xedcd9cdc,0x2e44d56f,0x73b7f92b,0x4e962b14,0xfb2e39b6,0xf671fcbf,0x7d408f6e +.long 0x164a89bb,0xcc634ddc,0x3ef3bd05,0x74a42bb2,0x428decbb,0x1280dbb2,0x402c8596,0x6103f6bb,0x355a5752,0xfa2bf581,0x00946674,0x562f96a8,0x6da0223b,0x4e4ca16d,0x28d3aa25,0xfe47819f +.long 0xf8dfcf8a,0x9eea3075,0x95669825,0xa284f0aa,0x867d3fd8,0xb3fca250,0x269d691e,0x20757b5f,0x93b8a5de,0xf2c24020,0xebc06da6,0xd3f93359,0xb2739c33,0x1178293e,0xbcd686e5,0xd2a3e770 +.long 0xcd941534,0xa76f49f4,0xe3c71c0e,0x0d37406b,0x3b97f7e3,0x172d9397,0xbd7fd0de,0xec17e239,0x6f496ba2,0xe3290551,0x36ad50e7,0x6a693172,0x83e7eff5,0xc4e539a2,0x18e1b4cf,0x752737e7 +.long 0x68af43ee,0xa2f7932c,0x703d00bd,0x5502468e,0x2fb061f5,0xe5dc978f,0x28c815ad,0xc9a1904a,0x470c56a4,0xd3af538d,0x193d8ced,0x159abc5f,0x20108ef3,0x2a37245f,0x223f7178,0xfa17081e +.long 0x10c8c0f5,0x27b0fb2b,0x40650547,0x2102c3ea,0x8ac3bfa7,0x594564df,0x509dad96,0x98102033,0xf1d18a13,0x6989643f,0xd7fc5af0,0x35eebd91,0xfaeaafd8,0x078d096a,0xdef3de98,0xb7a89341 +.long 0xecf2a73a,0x2a206e8d,0x8e551994,0x066a6397,0xb98d53a2,0x3a6a088a,0x2d1124aa,0x0ce7c67c,0x759a113c,0x48cec671,0x4f6f67fa,0xe3b373d3,0xfd36727b,0x5455d479,0xa13c0d81,0xe5a428ee +.long 0x1c86682b,0xb853dbc8,0xb8d02b2a,0xb78d2727,0x8ebc329a,0xaaf69bed,0x293b2148,0xdb6b40b3,0xb8c4961f,0xe42ea77d,0x20e5e0ab,0xb1a12f7c,0x79e8b05e,0xa0ec5274,0xfab60a80,0x68027391 +.long 0x16b1bd5e,0x6bfeea5f,0x4de30ad3,0xf957e420,0x6a353b9e,0xcbaf664e,0x26d14feb,0x5c873312,0xb65f57cb,0x4e87f98c,0x5e0cdd41,0xdb60a621,0xa6881440,0x67c16865,0x46ab52aa,0x1093ef1a +.long 0x3f4ece64,0xc095afb5,0x7604551a,0x6a6bb02e,0x0b26b8cd,0x55d44b4e,0xf971268a,0xe5f9a999,0x11a7de84,0xc08ec425,0xfda469dd,0x83568095,0x6c6c90a2,0x737bfba1,0xbe229831,0x1cb9c4a0 +.long 0xbb2eec64,0x93bccbba,0xda03adbe,0xa0c23b64,0xe0e86ac4,0x5f7aa00a,0xfc1401e6,0x470b941e,0x9df43574,0x5ad8d679,0x0f65d810,0x4ccfb8a9,0xaa7fbd81,0x1bce80e3,0x9508d20a,0x273291ad +.long 0x42a92806,0xf5c4b46b,0xa86ab44a,0x810684ec,0xca0bc9f8,0x4591640b,0x5c4b6054,0xb5efcdfc,0x6e9edd12,0x16fc8907,0xd4d792f9,0xe29d0b50,0x9b03116d,0xa45fd01c,0xc81765a4,0x85035235 +.long 0xb4b4b67c,0x1fe2a9b2,0xe8020604,0xc1d10df0,0xbc8058d8,0x9d64abfc,0x712a0fbb,0x8943b9b2,0x3b3def04,0x90eed914,0x4ce775ff,0x85ab3aa2,0x7bbc9040,0x605fd4ca,0xe2c75dfb,0x8b34a564 +.long 0x10358560,0x41ffc94a,0x9e5c28aa,0x2d8a5072,0x4cc7eb15,0xe915a0fc,0x8f6d0f5d,0xe9efab05,0xd19e9b91,0xdbab47a9,0x0276154c,0x8cfed745,0x2cfede0d,0x154357ae,0x19f5a4ef,0x520630df +.long 0xe382360f,0x25759f7c,0x88bf5857,0xb6db05c9,0x6c58d46c,0x2917d61d,0xfd20cb7a,0x14f8e491,0x11c20340,0xb68a727a,0xaf7ccbb6,0x0386f86f,0xfee09a20,0x5c8bc6cc,0xbb7eea35,0x7d76ff4a +.long 0xdb15be7a,0xa7bdebe7,0xd89f0302,0x67a08054,0xc1193364,0x56bf0ea9,0x62837ebe,0xc8244467,0x20d841b8,0x32bd8e8b,0xdbb8a54f,0x127a0548,0x63b20236,0x83dd4ca6,0x203491fa,0x87714718 +.long 0xaa8a5288,0x4dabcaaa,0xaf23a1c9,0x91cc0c8a,0x3f220e0c,0x34c72c6a,0x1232144a,0xbcc20bdf,0xa20ede1b,0x6e2f42da,0x74a00515,0xc441f00c,0x734b8c4b,0xbf46a5b6,0x7b56c9a4,0x57409503 +.long 0xe4585d45,0x9f735261,0x6734e642,0x9231faed,0xbe70ee6c,0x1158a176,0x7c3501bf,0x35f1068d,0xa2d26115,0x6beef900,0xef0afee3,0x649406f2,0xbc2420a1,0x3f43a60a,0xd5aee4ac,0x509002a7 +.long 0x3ff3571b,0xb46836a5,0x837927c1,0x24f98b78,0x4533c716,0x6254256a,0xd07ee196,0xf27abb0b,0x5c6d5bfd,0xd7cf64fc,0xf0cd7a77,0x6915c751,0x8798f534,0xd9f59012,0xf81d8b5f,0x772b0da8 +.long 0x2e03fa69,0x1244260c,0x3be1a374,0x36cf0e3a,0xef06b960,0x6e7c1633,0x671f90f6,0xa71a4c55,0x33c673db,0x7a941251,0x73e8c131,0xc0bea510,0xd4f6c734,0x61a8a699,0x341ed001,0x25e78c88 +.long 0x8e2f7d90,0x5c18acf8,0x77be32cd,0xfdbf33d7,0xd2eb5ee9,0x0a085cd7,0xb3201115,0x2d702cfb,0x85c88ce8,0xb6e0ebdb,0x1e01d617,0x23a3ce3c,0x567333ac,0x3041618e,0x157edb6b,0x9dd0fd8f +.long 0xb57872b8,0x27f74702,0x657d5fe1,0x2ef26b4f,0x57cf3d40,0x95426f0a,0x65a6067a,0x847e2ad1,0x09996a74,0xd474d9a0,0x2a26115c,0x16a56acd,0xd16f4d43,0x02a615c3,0xaadb85b7,0xcc3fc965 +.long 0xce07d1b0,0x386bda73,0x58ad4178,0xd82910c2,0xcd2617f4,0x124f82cf,0xef691770,0xcc2f5e8d,0xb8c30ccc,0x82702550,0x1a8e575a,0x7b856aea,0xb1ab9459,0xbb822fef,0xec24e38e,0x085928bc +.long 0xba8f4b4d,0x5d0402ec,0x00b4d58b,0xc07cd4ba,0x29227e7a,0x5d8dffd5,0x31bf386f,0x61d44d0c,0x135e6f4d,0xe486dc2b,0xe79410ef,0x680962eb,0xf10088b5,0xa61bd343,0xe2e28686,0x6aa76076 +.long 0x8fb98871,0x80463d11,0xbbc76aff,0xcb26f5c3,0xfbe03614,0xd4ab8edd,0xc0cf2dee,0xc8eb579b,0xc93bae41,0xcc004c15,0x3aeca3b2,0x46fbae5d,0x0f1e9ab1,0x671235cf,0x9ec285c1,0xadfba934 +.long 0xf216c980,0x88ded013,0xf79e0bc1,0xc8ac4fb8,0xfb97a237,0xa29b89c6,0x9922d8e7,0xb697b780,0xddb945b5,0x3142c639,0xe094c3a9,0x447b06c7,0x72266c90,0xcdcb3642,0xa9385046,0x633aad08 +.long 0xb57c6477,0xa36c936b,0xe94dbcc6,0x871f8b64,0xa591a67b,0x28d0fb62,0xc1d926f5,0x9d40e081,0xf2d84b5a,0x3111eaf6,0xa565b644,0x228993f9,0x2c83188b,0x0ccbf592,0x3df3e197,0xf87b30ab +.long 0x7642bca8,0xb8658b31,0x52800f17,0x1a032d7f,0x79bf9445,0x051dcae5,0x54a2e253,0xeba6b8ee,0xd4485692,0x5c8b9cad,0x8986e9be,0x84bda40e,0x2f0db448,0xd16d16a4,0xa14d4188,0x8ec80050 +.long 0x98fa7aaa,0xb2b26107,0xf073aa4e,0x41209ee4,0xf2d6b19b,0xf1570359,0xfc577caf,0xcbe6868c,0x32c04dd3,0x186c4bdc,0xcfeee397,0xa6c35fae,0xf086c0cf,0xb4a1b312,0xd9461fe2,0xe0a5ccc6 +.long 0x1536189f,0xc32278aa,0xba6df571,0x1126c55f,0xb194560e,0x0f71a602,0x324bd6e1,0x8b2d7405,0x3738be71,0x8481939e,0x1a4d97a9,0xb5090b1a,0xf05ba915,0x116c65a3,0xaae448aa,0x21863ad3 +.long 0xa7aae5d3,0xd24e2679,0x0de5c1c4,0x7076013d,0xbb05b629,0x2d50f8ba,0x6e66efbb,0x73c1abe2,0xf2488af7,0xefd4b422,0x663ba575,0xe4105d02,0x53a69457,0x7eb60a8b,0xc945973b,0x62210008 +.long 0x77a50ec6,0xfb255478,0x0a37a72c,0xbf0392f7,0x4be18e7a,0xa0a7a19c,0x25b1e0af,0x90d8ea16,0xef953f57,0x7582a293,0xbdc5465a,0x90a64d05,0xe2510717,0xca79c497,0x18cb641f,0x560dbb7c +.long 0x4b66abfb,0x1d8e3286,0x59030900,0xd26f52e5,0x5584941a,0x1ee3f643,0x569f5958,0x6d3b3730,0x4789dba5,0x9ff2a62f,0x72b5c9b7,0x91fcb815,0x6c8f9a0e,0xf446cb7d,0x39b7ecb5,0x48f625c1 +.long 0x1c6219b8,0xbabae801,0x28ac2f23,0xe7a562d9,0x26e20588,0xe1b48732,0x775af051,0x06ee1cad,0xfaff79f7,0xda29ae43,0x652ee9e0,0xc141a412,0x195f4bd0,0x1e127f6f,0x072f34f8,0x29c6ab4f +.long 0x30448112,0x7b7c1477,0xe4a38656,0x82b51af1,0x2f315010,0x2bf2028a,0x6ea88cd4,0xc9a4a01f,0x257e5818,0xf63e95d8,0xb4519b16,0xdd8efa10,0x0da910bf,0xed8973e0,0x5c0fe4a9,0xed49d077 +.long 0xb7caee1e,0xac3aac5e,0xa7f4da57,0x1033898d,0x5c6669b9,0x42145c0e,0xc1aa2aa0,0x42daa688,0x1a1d885a,0x629cc15c,0xf4b76817,0x25572ec0,0x9c8f8f28,0x8312e435,0x81965490,0x8107f8cd +.long 0x6fa6110c,0x516ff3a3,0xfb93561f,0x74fb1eb1,0x8457522b,0x6c0c9047,0x6bb8bdc6,0xcfd32104,0xcc80ad57,0x2d6884a2,0x86a9b637,0x7c27fc35,0xadf4e8cd,0x3461baed,0x617242f0,0x1d56251a +.long 0xc955bef4,0x0b80d209,0x06adb047,0xdf02cad2,0x5ec74fee,0xf0d7cb91,0x1111ba44,0xd2503375,0xdf53cb36,0x9671755e,0x3368551b,0x54dcb612,0xc8a025a4,0x66d69aac,0xe77ef445,0x6be946c6 +.long 0xa995e094,0x719946d1,0xe51e04d8,0x65e848f6,0x6a1e3113,0xe62f3300,0x501de503,0x1541c7c1,0xf4acfade,0x4daac9fa,0x44cd0b71,0x0e585897,0x0a51cd77,0x544fd869,0x0031016d,0x60fc20ed +.long 0xa4276867,0x58b404ec,0x34f34993,0x46f6c3cc,0xc636e5bd,0x477ca007,0x7c458b47,0x8018f5e5,0xe47b668f,0xa1202270,0xee14f203,0xcef48ccd,0x62ff9b4d,0x23f98bae,0xc589eddd,0x55acc035 +.long 0x64db4444,0x3fe712af,0xbecdd480,0x19e9d634,0xa930978a,0xe08bc047,0xa1280733,0x2dbf24ec,0x2cd706b2,0x3c0ae38c,0x359017b9,0x5b012a5b,0x72e0f5ae,0x3943c38c,0x57176fa3,0x786167ea +.long 0x594881dc,0xe5f9897d,0xcfb820c1,0x6b5efad8,0xd55018de,0xb2179093,0x0bac56ce,0x39ad7d32,0x2cfc0e81,0xb55122e0,0xf6d89daa,0x117c4661,0xcb64fa09,0x362d01e1,0x3e9c4ddd,0x6a309b4e +.long 0xabea49b1,0xfa979fb7,0x10e2c6c5,0xb4b1d27d,0x23afde7a,0xbd61c2c4,0x9786d358,0xeb6614f8,0x7f6f7459,0x4a5d816b,0x09360e7b,0xe431a44f,0xc309914c,0x8c27a032,0xcaede3d8,0xcea5d68a +.long 0x3a0a3f95,0x3668f665,0x7ceba27b,0x89369416,0xe4728fe9,0x89981fad,0x8a093562,0x7102c8a0,0x235d21c8,0xbb80310e,0xbefb7f7b,0x505e55d1,0x12958a67,0xa0a90811,0x4d851fef,0xd67e106a +.long 0x431dd80e,0xb84011a9,0x73306cd9,0xeb7c7cca,0xd1b3b730,0x20fadd29,0xfe37b3d3,0x83858b5b,0xb6251d5c,0xbf4cd193,0x1352d952,0x1cca1fd3,0x90fbc051,0xc66157a4,0x89b98636,0x7990a638 +.long 0x87dec0e1,0xe5aa692a,0xf7b39d00,0x010ded8d,0x54cfa0b5,0x7b1b80c8,0xa0f8ea28,0x66beb876,0x3476cd0e,0x50d7f531,0xb08d3949,0xa63d0e65,0x53479fc6,0x1a09eea9,0xf499e742,0x82ae9891 +.long 0x5ca7d866,0xab58b910,0x3adb3b34,0x582967e2,0xcceac0bc,0x89ae4447,0x7bf56af5,0x919c667c,0x60f5dcd7,0x9aec17b1,0xddcaadbc,0xec697b9f,0x463467f5,0x0b98f341,0xa967132f,0xb187f1f7 +.long 0x214aeb18,0x90fe7a1d,0x741432f7,0x1506af3c,0xe591a0c4,0xbb5565f9,0xb44f1bc3,0x10d41a77,0xa84bde96,0xa09d65e4,0xf20a6a1c,0x42f060d8,0xf27f9ce7,0x652a3bfd,0x3b3d739f,0xb6bdb65c +.long 0xec7fae9f,0xeb5ddcb6,0xefb66e5a,0x995f2714,0x69445d52,0xdee95d8e,0x09e27620,0x1b6c2d46,0x8129d716,0x32621c31,0x0958c1aa,0xb03909f1,0x1af4af63,0x8c468ef9,0xfba5cdf6,0x162c429f +.long 0x753b9371,0x2f682343,0x5f1f9cd7,0x29cab45a,0xb245db96,0x571623ab,0x3fd79999,0xc507db09,0xaf036c32,0x4e2ef652,0x05018e5c,0x86f0cc78,0xab8be350,0xc10a73d4,0x7e826327,0x6519b397 +.long 0x9c053df7,0xe8cb5eef,0xb300ea6f,0x8de25b37,0xc849cffb,0xdb03fa92,0xe84169bb,0x242e43a7,0xdd6f958e,0xe4fa51f4,0xf4445a8d,0x6925a77f,0xe90d8949,0xe6e72a50,0x2b1f6390,0xc66648e3 +.long 0x173e460c,0xb2ab1957,0x30704590,0x1bbbce75,0xdb1c7162,0xc0a90dbd,0x15cdd65d,0x505e399e,0x57797ab7,0x68434dcb,0x6a2ca8e8,0x60ad35ba,0xde3336c1,0x4bfdb1e0,0xd8b39015,0xbbef99eb +.long 0x1711ebec,0x6c3b96f3,0xce98fdc4,0x2da40f1f,0x57b4411f,0xb99774d3,0x15b65bb6,0x87c8bdf4,0xc2eef12d,0xda3a89e3,0x3c7471f3,0xde95bb9b,0xd812c594,0x600f225b,0x2b75a56b,0x54907c5d +.long 0x8db60e35,0xa93cc5f0,0xfa833319,0x743e3cd6,0xf81683c9,0x7dad5c41,0x9c34107e,0x70c1e7d9,0xa6be0907,0x0edc4a39,0x86d0b7d3,0x36d47035,0x272bfa60,0x8c76da03,0x0f08a414,0x0b4a07ea +.long 0x45c1dd53,0x699e4d29,0x231debb5,0xcadc5898,0xa77f00e0,0xdf49fcc7,0xa73e5a0e,0x93057bbf,0x027a4cd1,0x2f8b7ecd,0xc614011a,0x114734b3,0x67677c68,0xe7a01db7,0x7e273f4f,0x89d9be5e +.long 0x089808ef,0xd225cb2e,0xd59e4107,0xf1f7a27d,0x8211b9c9,0x53afc761,0xe6819159,0x0361bc67,0x7f071426,0x2a865d0b,0xe7072567,0x6a3c1810,0x0d6bcabd,0x3e3bca1e,0x408591bc,0xa1b02bc1 +.long 0x31fba239,0xe0deee59,0x98bd91d1,0xf47424d3,0x071a3c1d,0x0f8886f4,0xa819233b,0x3f7d41e8,0xcf6eb998,0x708623c2,0x609a287f,0x86bb49af,0x63c90762,0x942bb249,0x55a9654b,0x0ef6eea5 +.long 0x36f5defe,0x5f6d2d72,0x56f99176,0xfa9922dc,0xf78ce0c7,0x6c8c5ece,0xbe09b55e,0x7b44589d,0x9ea83770,0xe11b3bca,0x2ab71547,0xd7fa2c7f,0x2a1ddcc0,0x2a3dd6fa,0x5a7b7707,0x09acb430 +.long 0x649d4e57,0x4add4a2e,0x1917526e,0xcd53a2b0,0x20b44ac4,0xc5262330,0xbaa2c31d,0x4028746a,0x64291d4c,0x51318390,0xee5ad909,0xbf48f151,0x7b185681,0xcce57f59,0x4854d442,0x7c3ac1b0 +.long 0xc093c171,0x65587dc3,0x24f42b65,0xae7acb24,0x955996cb,0x5a338adb,0x6051f91b,0xc8e65675,0x28b8d0b1,0x66711fba,0xb6c10a90,0x15d74137,0x3a232a80,0x70cdd7eb,0x6191ed24,0xc9e2f07f +.long 0xf79588c0,0xa80d1db6,0xb55768cc,0xfa52fc69,0x7f54438a,0x0b4df1ae,0xf9b46a4f,0x0cadd1a7,0x1803dd6f,0xb40ea6b3,0x55eaae35,0x488e4fa5,0x382e4e16,0x9f047d55,0x2f6e0c98,0xc9b5b7e0 +.long 0x95762649,0x6b1bd2d3,0xc7aea3f6,0xa9604ee7,0x6dc6f896,0x3646ff27,0x2860bad1,0x9bf0e7f5,0x7cb44b92,0x2d92c821,0xaea9c182,0xa2f5ce63,0x9154a5fd,0xd0a2afb1,0x95801da6,0x482e474c +.long 0xb611c24b,0xc19972d0,0x60a8f351,0x1d468e65,0x7bcf6421,0xeb758069,0x88fbc491,0xec9dd0ee,0x956c2e32,0x5b59d2bf,0xdcddf94e,0x73dc6864,0xbcee7665,0xfd5e2321,0x5e9a06c4,0xa7b4f8ef +.long 0x7280f855,0xfba918dd,0x8baec688,0xbbaac260,0x33400f42,0xa3b3f00f,0x66f2e6e4,0x3d2dba29,0x98509375,0xb6f71a94,0xcea423cc,0x8f33031f,0x4807e6fb,0x009b8dd0,0x5cdb954c,0x5163cfe5 +.long 0xcf41c6e8,0x03cc8f17,0x037b925c,0xf1f03c2a,0x66d2427c,0xc39c19cc,0x7b6c18e4,0x823d24ba,0x901f0b4f,0x32ef9013,0xf8941c2e,0x684360f1,0x2c28092e,0x0ebaff52,0x256c932f,0x7891e4e3 +.long 0xac445e3d,0x51264319,0x8ea74381,0x553432e7,0x67e9c50a,0xe6eeaa69,0x62e628c7,0x27ced284,0x7a4afa57,0x3f96d375,0xe484c150,0xde0a14c3,0x38bd9923,0x364a24eb,0xe5177422,0x1df18da0 +.long 0xd8d38a9b,0x174e8f82,0xe7de1391,0x2e97c600,0xa1c175dd,0xc5709850,0x32ae5035,0x969041a0,0x76a2086b,0xcbfd533b,0xd7c2e8fe,0xd6bba71b,0x099dfb67,0xb2d58ee6,0x064a85d9,0x3a8b342d +.long 0x522f9be3,0x3bc07649,0xdf1f49a8,0x690c075b,0x3854ec42,0x80e1aee8,0x17689dc7,0x2a7dbf44,0x3faf4078,0xc004fc0e,0xdf11862c,0xb2f02e9e,0xa0a1b7b3,0xf10a5e0f,0x8936ec80,0x30aca623 +.long 0x02f40d9a,0xf83cbf05,0x2c318a4d,0x4681c468,0x0e9c2674,0x98575618,0x1847092e,0xbe79d046,0x78bd01e0,0xaf1e480a,0x72a51db9,0x6dd359e4,0xe3afbab6,0x62ce3821,0x17733199,0xc5cee5b6 +.long 0x6ffd9fbb,0xe08b30d4,0x36c610b7,0x6e5bc699,0x9ce262cf,0xf343cff2,0x68b914c1,0xca2e4e35,0x16de36c5,0x011d64c0,0x42e2b829,0xe0b10fdd,0x6685aaf8,0x78942981,0x230ede97,0xe7511708 +.long 0x3b922bf8,0x671ed8fc,0x4c29b133,0xe4d8c0a0,0x3b6e99c4,0x87eb1239,0x8793beba,0xaff3974c,0x2c18df9b,0x03749405,0x91007139,0xc5c3a293,0xe37a0b95,0x6a77234f,0xb661c96b,0x02c29a21 +.long 0x141ecf61,0xc3aaf1d6,0x3bb22f53,0x9195509e,0x22d51357,0x29597404,0x537bed60,0x1b083822,0xe07289f0,0xcd7d6e35,0x6dd86eff,0x1f94c48c,0xeb0f9cfa,0xc8bb1f82,0x1b2eb97d,0x9ee0b7e6 +.long 0x34d74e31,0x5a52fe2e,0x3bf79ab6,0xa352c310,0xabfeeb8f,0x97ff6c5a,0xf5c97305,0xbfbe8fef,0xa7904608,0xd6081ce6,0xc4fca249,0x1f812f3a,0xb9e5e200,0x9b24bc9a,0x38012ee8,0x91022c67 +.long 0x30a713a1,0xe83d9c5d,0x84ef0f93,0x4876e3f0,0xc1fbf928,0xc9777029,0xbce7d2a4,0xef7a6bb3,0xdfa2a659,0xb8067228,0xd877a48f,0xd5cd3398,0x025d0f3f,0xbea4fd8f,0x2eae7c2b,0xd67d2e35 +.long 0xcc5f4394,0x184de7d7,0x4536e142,0xb5551b5c,0xd34aa60a,0x2e89b212,0xf50051d5,0x14a96fea,0x0d12bb0b,0x4e21ef74,0x60b9677e,0xc522f020,0x2df7731d,0x8b12e467,0x7b326d31,0x39f80382 +.long 0x39024a94,0xdfb8630c,0x97319452,0xaacb96a8,0xeda3867c,0xd68a3961,0x77c4ffca,0x0c58e2b0,0x4da919fa,0x3d545d63,0xf15e2289,0xef79b69a,0x808bab10,0x54bc3d3d,0x45f82c37,0xc8ab3007 +.long 0x7c4a658a,0xc12738b6,0x40e72182,0xb3c47639,0x8798e44f,0x3b77be46,0x17a7f85f,0xdc047df2,0x5e59d92d,0x2439d4c5,0xe8e64d8d,0xcedca475,0x87ca9b16,0xa724cd0d,0xa5540dfe,0x35e4fd59 +.long 0xe4bcf6b1,0xf8c1ff18,0x295018fa,0x856d6285,0x3263c949,0x433f665c,0xa1f21409,0xa6a76dd6,0xcc7b4f79,0x17d32334,0x06720e4a,0xa1d03122,0x81d9bed5,0xadb6661d,0x11db15d1,0xf0d6fb02 +.long 0x1fb747d2,0x7fd11ad5,0x3033762b,0xab50f959,0xfbefaf5a,0x2a7e711b,0x3fef2bbf,0xc7393278,0x0df6f9be,0xe29fa244,0x71efd215,0x9092757b,0x4f3d6fd9,0xee60e311,0x0acfb78b,0x338542d4 +.long 0x38961a0f,0x44a23f08,0x986987ca,0x1426eade,0x4a863cc6,0x36e6ee2e,0x628b8b79,0x48059420,0x7396e1de,0x30303ad8,0x38c5aad1,0x5c8bdc48,0x5c8f5066,0x3e40e11f,0x8d246bbd,0xabd6e768 +.long 0x23330a01,0x68aa40bb,0xc34eafa0,0xd23f5ee4,0x5de02c21,0x3bbee315,0xd1d8dd06,0x18dd4397,0x122d7b44,0x3ba1939a,0xa33870d6,0xe6d3b40a,0x1c4fe3f8,0x8e620f70,0xd3a50cbf,0xf6bba1a5 +.long 0xcfc0aee0,0x4a78bde5,0xc08c50bd,0x847edc46,0xad63c9b2,0xbaa2439c,0x10fc2acb,0xceb4a728,0x26da033d,0xa419e40e,0x03e02683,0x6cc3889d,0xfdccf725,0x1cd28559,0x8d13d208,0x0fd7e0f1 +.long 0x1f0df9d4,0x01b9733b,0xa2b5e4f3,0x8cc2c5f3,0x3a304fd4,0x43053bfa,0x0a9f1aa7,0x8e87665c,0xd73dc965,0x087f29ec,0x3e9023db,0x15ace455,0x2bce28b4,0x2370e309,0xb6b1e84a,0xf9723442 +.long 0xb72d9f26,0xbeee662e,0xf0e47109,0xb19396de,0xe13289d0,0x85b1fa73,0x54e58e32,0x436cf77e,0xe990ef77,0x0ec833b3,0x1b11fc25,0x7373e3ed,0x0fc332ce,0xbe0eda87,0x8d7ea856,0xced04970 +.long 0x7e977ca0,0xf85ff785,0xdfdd5d2b,0xb66ee8da,0x905af461,0xf5e37950,0x966d487c,0x587b9090,0x32ba0127,0x6a198a1b,0x141615ac,0xa7720e07,0x996ef2f2,0xa23f3499,0x470bcb3d,0xef5f64b4 +.long 0x92b8c559,0xa526a962,0x69740a0f,0x0c14aac0,0xa6bdc0a5,0x0d41a9e3,0x9c48aef4,0x97d52106,0x3e7c253b,0xcf16bd30,0x47fdedc1,0xcc834b1a,0x373aab2e,0x7362c6e5,0xc5f590ff,0x264ed85e +.long 0x66d41870,0x7a46d9c0,0x4787ba09,0xa50c20b1,0xe3d44635,0x185e7e51,0x31e2d8dc,0xb3b3e080,0xa179e9d9,0xbed1e558,0x74a76781,0x2daa3f79,0x3a40864f,0x4372baf2,0x4fe75cb5,0x46900c54 +.long 0xf76765d0,0xb95f171e,0x95c87502,0x4ad726d2,0x4d7c99bd,0x2ec769da,0xc36cdfa8,0x5e2ddd19,0xa93e6dea,0xc22117fc,0x93771123,0xe8a2583b,0xfa08a3a2,0xbe2f6089,0x8f0e1112,0x4809d5ed +.long 0xda7a095e,0x3b414aa3,0x26f5aadd,0x9049acf1,0x6be8b84a,0x78d46a4d,0xb732b9b3,0xd66b1963,0xde6e9555,0x5c2ac2a0,0xb5bd8770,0xcf52d098,0x0fd28921,0x15a15fa6,0x8b27536d,0x56ccb81e +.long 0x9f4ccbb8,0x0f0d8ab8,0xdb221729,0xed5f44d2,0x00bed10c,0x43141988,0x1d735b8b,0xc94348a4,0x29ef8479,0x79f3e9c4,0x614c693f,0x4c13a4e3,0x8e143a14,0x32c9af56,0xe29ac5c4,0xbc517799 +.long 0x2774856f,0x05e17992,0x6c1bf55f,0x6e52fb05,0xe4f19e16,0xaeda4225,0xaf5ccb26,0x70f4728a,0xb2947f22,0x5d2118d1,0x281d6fb9,0xc827ea16,0x8cf0eabd,0x8412328d,0x03ef9dcf,0x45ee9fb2 +.long 0xbb937d63,0x8e700421,0xcc4b37a6,0xdf8ff2d5,0x5ced7b68,0xa4c0d5b2,0xc7308f59,0x6537c1ef,0x3b37f8e8,0x25ce6a26,0xdeebc6ce,0x170e9a9b,0x8728d72c,0xdd037952,0x850154bc,0x445b0e55 +.long 0x83a7337b,0x4b7d0e06,0xffecf249,0x1e3416d4,0x66a2b71f,0x24840eff,0xb37cc26d,0xd0d9a50a,0x6fe28ef7,0xe2198150,0x23324c7f,0x3cc5ef16,0x769b5263,0x220f3455,0xa10bf475,0xe2ade2f1 +.long 0x458d3671,0x28cd20fa,0x2dc4847b,0x1549722c,0x591941e3,0x6dd01e55,0x27128ccb,0x0e6fbcea,0x3bef0262,0xae1a1e6b,0x8f54e103,0xfa8c472c,0x72c052ec,0x7539c0a8,0x5a3490e9,0xd7b27369 +.long 0x71684349,0x143fe1f1,0x32e19b97,0x36b4722e,0x90980aff,0xdc059227,0x9e13d674,0x175c9c88,0x6e6bfdb1,0xa7de5b22,0xbedb4b46,0x5ea5b7b2,0xd34a6e44,0xd5570191,0xa24ff7e6,0xfcf60d2e +.long 0x677819e1,0x614a392d,0xaa5a29e8,0x7be74c7e,0x63c85f3f,0xab50fece,0x46cab337,0xaca2e2a9,0x122a6fe3,0x7f700388,0x882a04a8,0xdb69f703,0xcf7aed57,0x9a77935d,0x8d91c86f,0xdf16207c +.long 0x63ed9998,0x2fca49ab,0xa77ddf96,0xa3125c44,0x24344072,0x05dd8a86,0xfec3fb56,0xa023dda2,0x0c743032,0x421b41fc,0x5e438639,0x4f2120c1,0xc83c1b07,0xfb7cae51,0xcac2171a,0xb2370caa +.long 0x6cc820fb,0x2eb2d962,0xb85a44bf,0x59feee5c,0x5b6598f0,0x94620fca,0x7e314051,0x6b922cae,0x106bed4e,0xff8745ad,0xdfa1e9ab,0x546e71f5,0x1ec29487,0x935c1e48,0x4d936530,0x9509216c +.long 0x85c9a2db,0xc7ca3067,0x6be8606f,0xd6ae5152,0xe14c651d,0x09dbcae6,0x9bc32f96,0xc9536e23,0x34521b03,0xa90535a9,0x878756ff,0xf39c526c,0x8aedf03c,0x383172ec,0xefe0c034,0x20a8075e +.long 0x64026422,0xf22f9c62,0x24b9d076,0x8dd10780,0x3bef2950,0x944c742a,0x88a2b00b,0x55b9502e,0x86a09817,0xa59e14b4,0x47bb4071,0xa39dd3ac,0x3be0592f,0x55137f66,0xc9e63f5b,0x07fcafd4 +.long 0x346eb226,0x963652ee,0xec2facb7,0x7dfab085,0x691add26,0x273bf2b8,0xf2b46c44,0x30d74540,0xf2c2d065,0x05e8e73e,0xd42eeac9,0xff9b8a00,0x97209d22,0x2fcbd205,0xde14ea2c,0xeb740ffa +.long 0xa8aef518,0xc71ff913,0xfff4cfa2,0x7bfc74bb,0xb6b36048,0x1716680c,0x9ef79af1,0x121b2cce,0xa01eb3d3,0xbff3c836,0x5f79077b,0x50eb1c6a,0xa004bbcf,0xa48c32d6,0x7d64f61d,0x47a59316 +.long 0x93102016,0x6068147f,0x94d12576,0x12c5f654,0xc9bc6b91,0xefb071a7,0x6e23ea95,0x7c2da0c5,0xd4a1dd5d,0xf4fd45b6,0x9122b13c,0x3e7ad9b6,0xe6f57a48,0x342ca118,0x06f8288f,0x1c2e94a7 +.long 0x5a97d231,0x99e68f07,0x4d838758,0x7c80de97,0x05872727,0xbce0f5d0,0x19c4d016,0xbe5d95c2,0x9c2492ee,0x921d5cb1,0x404d6fb3,0x42192dc1,0x32f988d3,0x4c84dcd1,0xa17b8e85,0xde26d61f +.long 0x137c7408,0xc466dcb6,0x36a266da,0x9a38d7b6,0x83bebf1b,0x7ef5cb06,0x0fd014e3,0xe5cdcbbf,0xf65965a0,0x30aa376d,0xebb3e95e,0x60fe88c2,0x66ee6f20,0x33fd0b61,0x3f41f0a0,0x8827dcdb +.long 0x0c56c690,0xbf8a9d24,0xddb7641d,0x40265dad,0x3a6b662b,0x522b05bf,0xb1478c9b,0x466d1dfe,0x1484469b,0xaa616962,0x02df8f9f,0x0db60549,0x3cb8bf51,0xc37bca02,0x21371ce8,0x5effe346 +.long 0xff112c32,0xe8f65264,0x7b971fb2,0x8a9c736d,0x7b75080d,0xa4f19470,0x8839c59b,0xfc3f2c5a,0x5aeb49c2,0x1d6c777e,0xda1addfe,0xf3db034d,0x5535affc,0xd76fee5a,0xb92251fd,0x0853ac70 +.long 0x8b2a29d5,0x37e3d594,0x4de00ddb,0x28f1f457,0xf42c328b,0x8083c1b5,0xe493c73b,0xd8ef1d8f,0x41dc61bd,0x96fb6260,0x27ee2f8a,0xf74e8a9d,0x2c946a5d,0x7c605a80,0x3839ccfd,0xeed48d65 +.long 0x3a29467a,0x9894344f,0xc51eba6d,0xde81e949,0xa5e5c2f2,0xdaea066b,0x08c8c7b3,0x3fc8a614,0x06d0de9f,0x7adff88f,0x3b75ce0a,0xbbc11cf5,0xfbbc87d5,0x9fbb7acc,0x7badfde2,0xa1458e26 +.long 0xe039c256,0x1cb43668,0x7c17fd5d,0x5f26fb8b,0x79aa062b,0xeee426af,0xd78fbf04,0x072002d0,0xe84fb7e3,0x4c9ca237,0x0c82133d,0xb401d8a1,0x6d7e4181,0xaaa52592,0x73dbb152,0xe9430833 +.long 0xbe24319a,0xf92dda31,0xe095a8e7,0x03f7d28b,0x98782185,0xa52fe840,0x29c24dbc,0x276ddafe,0x1d7a64eb,0x80cd5496,0x7f1dbe42,0xe4360889,0x8438d2d5,0x2f81a877,0x85169036,0x7e4d52a8 +.long 0x1d59715d,0x19e3d5b1,0xd788983e,0xc7eaa762,0xabf1f248,0xe5a730b0,0xfae3fd83,0xfbab8084,0x53765b2f,0x65e50d21,0xfa127f3d,0xbdd4e083,0x397b1b10,0x9cf3c074,0xb1b59fd3,0x59f8090c +.long 0x615faa8f,0x7b15fd9d,0x968554ed,0x8fa1eb40,0x7aa44882,0x7bb4447e,0x029fff32,0x2bb2d0d1,0x6caa6d2f,0x075e2a64,0x22e7351b,0x8eb879de,0x9a506c62,0xbcd5624e,0xa87e24dc,0x218eaef0 +.long 0x44ddfa35,0x37e56847,0xdab3f747,0x9ccfc5c5,0x1ee96cf4,0x9ac1df3f,0x3b480b8f,0x0c0571a1,0x4b3a7b3c,0x2fbeb3d5,0x5dcdbb99,0x35c03669,0xb2415b3a,0x52a0f5dc,0x4413ed9a,0xd57759b4 +.long 0x3d30a2c5,0x1fe647d8,0xf78a81dc,0x0857f77e,0x131a4a9b,0x11d5a334,0x29d393f5,0xc0a94af9,0xdaa6ec1a,0xbc3a5c0b,0x88d2d7ed,0xba9fe493,0xbb614797,0xbb4335b4,0x72f83533,0x991c4d68 +.long 0xd2f01cb3,0x53258c28,0xd75db0b1,0x93d6eaa3,0xe87d0db4,0x419a2b0d,0xd8fe8493,0xa1e48f03,0xc508b23a,0xf747faf6,0x35d53549,0xf137571a,0xfcf9b838,0x9f5e58e2,0xa7fd3cf5,0xc7186cee +.long 0xe978a1d3,0x77b868ce,0x7ab92d04,0xe3a68b33,0x87a5b862,0x51029794,0x3a61d41d,0x5f0606c3,0x6f9326f1,0x2814be27,0xc6fe3c2e,0x2f521c14,0xacdf7351,0x17464d7d,0x777f7e44,0x10f5f9d3 +.long 0x269fb37d,0xce8e616b,0x7de62de5,0xaaf73804,0x4fdd4153,0xaba11175,0x3770b49b,0x515759ba,0xaa423a61,0x8b09ebf8,0xcd41fb92,0x592245a1,0x9b4c8936,0x1cba8ec1,0xaf36710e,0xa87e91e3 +.long 0x3d34a2e3,0x1fd84ce4,0xb43b5d61,0xee3759ce,0x619186c7,0x895bc78c,0xcbb9725a,0xf19c3809,0xde744b1f,0xc0be21aa,0x60f8056b,0xa7d222b0,0xb23efe11,0x74be6157,0x0cd68253,0x6fab2b4f +.long 0x4bf1d725,0xad33ea5f,0x4f6c950f,0x9c1d8ee2,0xa377af06,0x544ee78a,0x94a113e1,0x54f489bb,0x992fb7e8,0x8f11d634,0xa2a44347,0x0169a7aa,0x95020e00,0x1d49d4af,0xe08e120b,0x95945722 +.long 0xa4d32282,0xb6e33878,0x48020ae7,0xe36e029d,0x37a9b750,0xe05847fb,0xb29e3819,0xf876812c,0xd23a17f0,0x84ad138e,0xf0b3950e,0x6d7b4480,0x2fd67ae0,0xdfa8aef4,0x52333af6,0x8d3eea24 +.long 0xb15d5acc,0x0d052075,0xbd815bc4,0xc6d9c79f,0xdfa36cf2,0x8dcafd88,0x38aa9070,0x908ccbe2,0xba35afce,0x638722c4,0xfd6abf0b,0x5a3da8b0,0xc9c335c1,0x2dce252c,0x65aa799b,0x84e7f0de +.long 0xb99a72cb,0x2101a522,0x87618016,0x06de6e67,0xe6f3653e,0x5ff8c7cd,0xc7a6754a,0x0a821ab5,0x7cb0b5a2,0x7e3fa52b,0xc9048790,0xa7fb121c,0x06ce053a,0x1a725020,0x04e929b0,0xb490a31f +.long 0x62dd61ad,0xe17be47d,0x6be01371,0x781a961c,0xdae3cbba,0x1063bfd3,0x7f73c9ba,0x35647406,0x2736a129,0xf50e957b,0xed13f256,0xa6313702,0x3a19fcc5,0x9436ee65,0xe7a4c8b6,0xcf2bdb29 +.long 0xc5f95cd8,0xb06b1244,0xf4ab95f4,0xda8c8af0,0xb9e5836d,0x1bae59c2,0x3acffffc,0x07d51e7e,0xc2ccbcda,0x01e15e6a,0x8528c3e0,0x3bc1923f,0xa49fead4,0x43324577,0x2aa7a711,0x61a1b884 +.long 0x700230ef,0xf9a86e08,0xbd19adf8,0x0af585a1,0xf55ad8f2,0x7645f361,0x46c3614c,0x6e676223,0x4e774d3f,0x23cb257c,0xac102d1b,0x82a38513,0x7b126aa5,0x9bcddd88,0xeefd3ee4,0xe716998b +.long 0xfb167583,0x4239d571,0xd16c8f8a,0xdd011c78,0x69a27519,0x271c2895,0xd2d64b6a,0x9ce0a3b7,0xd5ec6738,0x8c977289,0x8840ef6b,0xa3b49f9a,0x9a453419,0x808c14c9,0x0cf0a2d5,0x5c00295b +.long 0x1d4bcc76,0x524414fb,0x459a88f1,0xb07691d2,0xf70d110f,0x77f43263,0xb7abf9f3,0x64ada5e0,0x5b544cf5,0xafd0f94e,0xfd2713fe,0xb4a13a15,0x250c74f4,0xb99b7d6e,0x20324e45,0x097f2f73 +.long 0xaffa8208,0x994b37d8,0xdc29aafc,0xc3c31b0b,0x7a3a607f,0x3da74651,0xfe6955d6,0xd8e1b8c1,0xc8418682,0x716e1815,0x7dc91d97,0x541d487f,0xc6996982,0x48a04669,0x83a6502e,0xf39cab15 +.long 0xe68db055,0x025801a0,0xba3338d5,0xf3569758,0xee2afa84,0xb0c8c0aa,0xfb6562d1,0x4f6985d3,0x132ed17a,0x351f1f15,0xc04365fe,0x510ed0b4,0xe5b1f066,0xa3f98138,0x32df03dc,0xbc9d95d6 +.long 0x19abd09e,0xa83ccf6e,0x4ff17edb,0x0b4097c1,0xd64a06ce,0x58a5c478,0x544a58fd,0x2ddcc3fd,0x9e8153b8,0xd449503d,0x7774179b,0x3324fd02,0xdbd9120c,0xaf5d47c8,0x34fa94db,0xeb860162 +.long 0x972f07f4,0x5817bdd1,0xd27bbceb,0xe5579e2e,0x5f11e5a6,0x86847a1f,0x7c3cf048,0xb39ed255,0xa2f62e55,0xe1076417,0x1bcf82a2,0x6b9ab38f,0x7aeb29f9,0x4bb7c319,0x17227a46,0xf6d17da3 +.long 0x0f968c00,0xab53ddbd,0x000c880b,0xa03da7ec,0x6a9ad24d,0x7b239624,0x01ec60d0,0x612c0401,0x109f5df1,0x70d10493,0x80af7550,0xfbda4030,0xc6b9a9b3,0x30b93f95,0x007d9418,0x0c74ec71 +.long 0x6edb951f,0x94175564,0x7f22c282,0x5f4a9d78,0xb38d1196,0xb7870895,0xa228ce7c,0xbc593df3,0x6af3641a,0xc78c5bd4,0x3d9b3dcc,0x7802200b,0x8be33304,0x0dc73f32,0x61ffb79a,0x847ed87d +.long 0x6d671192,0xf85c974e,0xde16f60f,0x1e14100a,0x95c38797,0x45cb0d5a,0x9b022da4,0x18923bba,0xbbe7e86e,0xef2be899,0x216067bf,0x4a1510ee,0x84d5ce3e,0xd98c8154,0xf92a2b90,0x1af777f0 +.long 0x4ef65724,0x9fbcb400,0x3c0ca6fe,0x3e04a4c9,0x55002994,0xfb3e2cb5,0x5363ecab,0x1f3a93c5,0x3923555b,0x1fe00efe,0x1e1751ea,0x744bedd9,0x6ab69357,0x3fb2db59,0xf5e6618b,0x8dbd7365 +.long 0xdf1ea40e,0x99d53099,0x57d61e64,0xb3f24a0b,0x596eb812,0xd088a198,0x5762940b,0x22c8361b,0xf9c0d95c,0x66f01f97,0x8e43cdae,0x88461172,0xb72b15c3,0x11599a7f,0x420d95cc,0x135a7536 +.long 0x5f7ae2f6,0x2dcdf0f7,0xd7fa6da2,0x15fc6e1d,0xd1d441b6,0x81ca829a,0x04a106b6,0x84c10cf8,0xa73fbbd0,0xa9b26c95,0x4d8f6ee8,0x7f24e0cb,0x1e25a043,0x48b45937,0x036f3dfe,0xf8a74fca +.long 0xc9f84296,0x1ed46585,0x3bc278b0,0x7fbaa8fb,0x6c4fcbd0,0xa8e96cd4,0x73b60a5f,0x940a1202,0x55a4aec8,0x34aae120,0xdbd742f0,0x550e9a74,0x228c68ab,0x794456d7,0xa4e25ec6,0x492f8868 +.long 0xb2d8f398,0x682915ad,0x5b84c953,0xf13b51cc,0x5bb917d6,0xcda90ab8,0x4ea3dee1,0x4b615560,0x0a52c1c8,0x578b4e85,0x20b75fc4,0xeab1a695,0xaa0bb3c6,0x60c14f3c,0xb8216094,0x220f448a +.long 0xb0e63d34,0x4fe7ee31,0xa9e54fab,0xf4600572,0xd5e7b5a4,0xc0493334,0x06d54831,0x8589fb92,0x6583553a,0xaa70f5cc,0xe25649e5,0x0879094a,0x10044652,0xcc904507,0x02541c4f,0xebb0696d +.long 0xb9718710,0x5a171fde,0xf374a9f5,0x38f1bed8,0xba39bdc1,0xc8c582e1,0x908cc0ce,0xfc457b0a,0x883841e2,0x9a187fd4,0x38725381,0x8ec25b39,0x96f84395,0x2553ed05,0x6f6c6897,0x095c7661 +.long 0x4bdc5610,0x917ac85c,0x179eb301,0xb2885fe4,0x8b78bdcc,0x5fc65547,0xe59e4699,0x4a9fc893,0x3ce299af,0xbb7ff0cd,0xadf38b20,0x195be9b3,0xd38ddb8f,0x6a929c87,0xb21a51b9,0x55fcc99c +.long 0x721a4593,0x2b695b4c,0x768eaac2,0xed1e9a15,0x7489f914,0xfb63d71c,0x78118910,0xf98ba31c,0x9b128eb4,0x80291373,0xd448af4a,0x7801214e,0x55418dd3,0xdbd2e22b,0xd3998242,0xeffb3c0d +.long 0xc7bf3827,0xdfa6077c,0x47f8238f,0xf2165bcb,0x8564d554,0xfe37cf68,0x0a81fb98,0xe5f825c4,0xffed4d6f,0x43cc4f67,0xb50a34b0,0xbc609578,0x5041faf1,0x8aa8fcf9,0x651773b6,0x5659f053 +.long 0x6044d63b,0xe87582c3,0x0cdb0ca0,0xa6089409,0xbfb2bcf6,0x8c993e0f,0x45985cfc,0xfc64a719,0x83dbedba,0x15c4da80,0x2be67df7,0x804ae112,0xa23defde,0xda4c9658,0x5156e0d3,0x12002ddd +.long 0x5dd21b96,0xe68eae89,0xcf44624d,0x8b99f28b,0x1ec8897a,0x0ae00808,0x6712f76e,0xdd0a9303,0x4e233de4,0x96237522,0x2b36a8a5,0x192445b1,0x023993d9,0xabf9ff74,0x2aad4a8f,0x21f37bf4 +.long 0xf8bd2bbd,0x340a4349,0x4868195d,0x1d902cd9,0xe5fdb6f1,0x3d27bbf1,0x124f9f1c,0x7a5ab088,0xf7a09e03,0xc466ab06,0x31f2c123,0x2f8a1977,0x041b6657,0xda355dc7,0x8ece2a7c,0xcb840d12 +.long 0x7db32675,0xb600ad9f,0x07a06f1b,0x78fea133,0xb31f6094,0x5d032269,0x83ec37aa,0x07753ef5,0x9c0bea78,0x03485aed,0xbc3f4524,0x41bb3989,0x697f726d,0x09403761,0xdf394820,0x6109beb3 +.long 0x3b6d1145,0x804111ea,0xa8582654,0xb6271ea9,0x24e66562,0x619615e6,0xd7b6ad9c,0xa2554945,0x99bfe35f,0xd9c4985e,0x7b51cdf6,0x9770ccc0,0x92881832,0x7c327013,0x286b26d1,0x8777d45f +.long 0xd847999d,0x9bbeda22,0xc3525d32,0x03aa33b6,0x28a959a1,0x4b7b96d4,0x31e5d234,0xbb3786e5,0x6961f247,0xaeb5d3ce,0x02f93d3f,0x20aa85af,0xd7a7ae4f,0x9cd1ad3d,0x781adaa8,0xbf6688f0 +.long 0x7469cead,0xb1b40e86,0x309fca48,0x1904c524,0x4b54bbc7,0x9b7312af,0x593affa2,0xbe24bf8f,0xbd98764b,0xbe5e0790,0xa26e299e,0xa0f45f17,0x6b8fe4c7,0x4af0d2c2,0x8ae8a3e6,0xef170db1 +.long 0x29e0ccc1,0x0e8d61a0,0x60ad36ca,0xcd53e87e,0xc8173822,0x328c6623,0xa496be55,0x7ee1767d,0x648945af,0x89f13259,0x25c8009c,0x9e45a5fd,0x1f61ab8c,0xaf2febd9,0x8a275385,0x43f6bc86 +.long 0xf2142e79,0x87792348,0xc6e6238a,0x17d89259,0x4a839d9b,0x7536d2f6,0x76a1fbdc,0x1f428fce,0x0db06dfe,0x1c109601,0x50a3a3cc,0xbfc16bc1,0x9b30f41b,0xf9cbd9ec,0x00138cce,0x5b5da0d6 +.long 0x56ef96a7,0xec1d0a48,0x982bf842,0xb47eb848,0xec3f700d,0x66deae32,0xaa1181e0,0x4e43c42c,0xd1a4aa2a,0xa1d72a31,0xc004f3ce,0x440d4668,0x45fe8a7a,0x0d6a2d3b,0xfb128365,0x820e52e2 +.long 0x25e51b09,0x29ac5fcf,0x2023d159,0x180cd2bf,0xa1ebf90e,0xa9892171,0x7c132181,0xf97c4c87,0xc03dbb7e,0x9f1dc724,0x018cbbe4,0xae043765,0x0767d153,0xfb0b2a36,0x249cbaeb,0xa8e2f4d6 +.long 0xd95ea168,0x172a5247,0x2970764a,0x1758fada,0x1d978169,0xac803a51,0xde77e01b,0x299cfe2e,0xb0a98927,0x652a1e17,0x20014495,0x2e26e1d1,0x7175b56a,0x7ae0af9f,0xd64b9f95,0xc2e22a80 +.long 0xd90a060a,0x4d0ff9fb,0xbaf38085,0x496a27db,0xda776bcf,0x32305401,0x725f209e,0xb8cdcef6,0x436a0bba,0x61ba0f37,0x76860049,0x263fa108,0xda3542cf,0x92beb98e,0xd5849538,0xa2d4d14a +.long 0x12e9a1bc,0x989b9d68,0x5f6e3268,0x61d9075c,0x99ace638,0x352c6aa9,0x920f43ff,0xde4e4a55,0xd673c017,0xe5e4144a,0x6f6e05ea,0x667417ae,0xdcd1bd56,0x613416ae,0x86693711,0x5eb36201 +.long 0x3a1aa914,0x2d7bc504,0x76dc5975,0x175a1299,0x3fc8125c,0xe900e0f2,0x11198875,0x569ef68c,0x63a113b4,0x9012db63,0x98835766,0xe3bd3f56,0x76412dea,0xa5c94a52,0xaa735e5c,0xad9e2a09 +.long 0x508b65e9,0x405a984c,0x6df1a0d1,0xbde4a1d1,0xdfba80da,0x1a9433a1,0x9440ad2e,0xe9192ff9,0x5099fe92,0x9f649696,0x0b27a54a,0x25ddb65c,0xc590da61,0x178279dd,0xfbde681a,0x5479a999 +.long 0x013fe162,0xd0e84e05,0x632d471b,0xbe11dc92,0xfc0e089f,0xdf0b0c45,0x4c144025,0x04fb15b0,0x13c99927,0xa61d5fc2,0x3de2eb35,0xa033e9e0,0xb8dacbb4,0xf8185d5c,0x8644549d,0x9a88e265 +.long 0x54671ff6,0xf717af62,0x5fa58603,0x4bd4241b,0xe67773c0,0x06fba40b,0x6a2847e9,0xc1d933d2,0x689e2c70,0xf4f5acf3,0x46bafd31,0x92aab0e7,0x3473f6e5,0x798d76aa,0x93141934,0xcc6641db +.long 0xd31e535e,0xcae27757,0x87c2ee11,0x04cc43b6,0x2e029ffa,0x8d1f9675,0xe4cc7a2c,0xc2150672,0x8d68b013,0x3b03c1e0,0xedf298f3,0xa9d6816f,0xa2804464,0x1bfbb529,0x5db22125,0x95a52fae +.long 0x0e1cb64e,0x55b32160,0x7e7fc9fe,0x004828f6,0x1bb0fb93,0x13394b82,0x35f1a920,0xb6293a2d,0xd145d2d9,0xde35ef21,0xbb8fa603,0xbe6225b3,0x32cf252d,0x00fc8f6b,0x117cf8c2,0xa28e52e6 +.long 0x4c371e6d,0x9d1dc89b,0x36ef0f28,0xcebe0675,0xa4292f81,0x5de05d09,0x353e3083,0xa8303593,0x7e37a9bb,0xa1715b0a,0x2b8faec3,0x8c56f61e,0x33c9b102,0x52507431,0xa44431f0,0x0130cefc +.long 0xbd865cfb,0x56039fa0,0xbc5f1dd7,0x4b03e578,0xbabe7224,0x40edf2e4,0x3a1988f6,0xc752496d,0x564beb6b,0xd1572d3b,0x39a1c608,0x0db1d110,0x16f60126,0x568d1934,0xf354af33,0x05ae9668 +.long 0xc92544f2,0x19de6d37,0xa35837d5,0xcc084353,0x1a514ece,0xcbb6869c,0x2e1d1066,0xb633e728,0x936c581c,0xf15dd69f,0x7439c4f9,0x96e7b8ce,0x2e448a5b,0x5e676f48,0xfd916bbb,0xb2ca7d5b +.long 0xf5024025,0xd55a2541,0xe4c2d937,0x47bc5769,0x0362189f,0x7d31b92a,0xef7816f9,0x83f3086e,0xb587579a,0xf9f46d94,0x30e76c5f,0xec2d22d8,0xb000ffcf,0x27d57461,0x364ffc2c,0xbb7e65f9 +.long 0x6652a220,0x7c7c9477,0xd696c981,0x61618f89,0x89effff3,0x5021701d,0x7c314163,0xf2c8ff8e,0x8efb4d3e,0x2da413ad,0xce176d95,0x937b5adf,0x2a67d51c,0x22867d34,0x18eb3ac9,0x262b9b10 +.long 0xc43ff28b,0x4e314fe4,0x6a664e7a,0x76476627,0xb7a565c2,0x3e90e40b,0xc1acf831,0x8588993a,0x8f938829,0xd7b501d6,0x3edd7d4c,0x996627ee,0x90cd34c7,0x37d44a62,0xf3833e8d,0xa8327499 +.long 0x4bf50353,0x2e18917d,0x556765fb,0x85dd726b,0x93d5ab66,0x54fe65d6,0x915c25fe,0x3ddbaced,0x12f22e85,0xa799d9a4,0x6d06f6bc,0xe2a24867,0x43ca1637,0xf4f1ee56,0x61ece30a,0xfda2828b +.long 0xa2dee7a6,0x758c1a3e,0x734b2284,0xdcde2f3c,0x4eaba6ad,0xaba445d2,0x76cee0a7,0x35aaf668,0xe5aa049a,0x7e0b04a9,0x91103e84,0xe74083ad,0x40afecc3,0xbeb183ce,0xea043f7a,0x6b89de9f +.long 0xfe67ba66,0x0e299d23,0x93cf2f34,0x91450760,0x97fcf913,0xf45b5ea9,0x8bd7ddda,0x5be00843,0xd53ff04d,0x358c3e05,0x5de91ef7,0xbf7ccdc3,0xb69ec1a0,0xad684dbf,0x801fd997,0x367e7cf2 +.long 0xb0dc8595,0x0ca1f3b7,0x9f1d9f2e,0x27de4608,0xbadd82a7,0x1af3bf39,0x65862448,0x79356a79,0xf5f9a052,0xc0602345,0x139a42f9,0x1a8b0f89,0x844d40fc,0xb53eee42,0x4e5b6368,0x93b0bfe5 +.long 0xc024789c,0x5434dd02,0x41b57bfc,0x90dca9ea,0x243398df,0x8aa898e2,0x894a94bb,0xf607c834,0xc2c99b76,0xbb07be97,0x18c29302,0x6576ba67,0xe703a88c,0x3d79efcc,0xb6a0d106,0xf259ced7 +.long 0xc8de610b,0x0f893a5d,0x67e223ce,0xe8c515fb,0x4ead6dc5,0x7774bfa6,0x925c728f,0x89d20f95,0x098583ce,0x7a1e0966,0x93f2a7d7,0xa2eedb94,0x4c304d4a,0x1b282097,0xc077282d,0x0842e3da +.long 0x3b9e2d7b,0xe4d972a3,0xc48218ff,0x7cc60b27,0x84149d91,0x8fc70838,0x2f461ecc,0x5c04346f,0x614650a9,0xebe9fdf2,0xc1f666ac,0x5e35b537,0x88babc83,0x645613d1,0xc5e1c93e,0x88cace3a +.long 0x3de92e23,0x209ca375,0x5fbbb6e3,0xccb03cc8,0xd7b1487e,0xccb90f03,0xc710941f,0xfa9c2a38,0x6724ceed,0x756c3823,0x192d0323,0x3a902258,0xea5e038e,0xb150e519,0xc7427591,0xdcba2865 +.long 0x78890732,0xe549237f,0x53fcb4d9,0xc443bef9,0xeb3480d6,0x9884d8a6,0x3048b186,0x8a35b6a1,0x65e9a90a,0xb4e44716,0x653006c0,0x45bf380d,0x4fe9ae3b,0x8f3f820d,0x979a3b71,0x244a35a0 +.long 0x74cd06ff,0xa1010e9d,0xaca3eeac,0x9c17c7df,0x8063aa2b,0x74c86cd3,0x734614ff,0x8595c4b3,0x990f62cc,0xa3de00ca,0xca0c3be5,0xd9bed213,0xdf8ce9f5,0x7886078a,0x5cd44444,0xddb27ce3 +.long 0x58926ddd,0xed374a66,0x908015b8,0x138b2d49,0xde1f7ab8,0x886c6579,0xc3020b7a,0x888b9aa0,0x3a96e355,0xd3ec034e,0xf30fbe9a,0xba65b0b8,0xff21367a,0x064c8e50,0x0b04b46e,0x1f508ea4 +.long 0x747c866c,0x98561a49,0x0518a062,0xbbb1e5fe,0xecdc3608,0x20ff4e8b,0x20184027,0x7f55cded,0xf38c85f0,0x8d73ec95,0x8bc3b8c3,0x5b589fdf,0x0f12b66f,0xbe95dd98,0x0e338e01,0xf5bd1a09 +.long 0x5e915918,0x65163ae5,0x86f8a46b,0x6158d6d9,0xeeebf99c,0x8466b538,0xbca477ef,0xca8761f6,0x9ebbc601,0xaf3449c2,0xe0c3ae2f,0xef3b0f41,0x5de63752,0xaa6c577d,0x64682a51,0xe9166601 +.long 0xfc15aa1e,0x5a3097be,0xb54b0745,0x40d12548,0x519a5f12,0x5bad4706,0xa439dee6,0xed03f717,0x4a02c499,0x0794bb6c,0xcffe71d2,0xf725083d,0x0f3adcaf,0x2cad7519,0x43729310,0x7f68ea1c +.long 0xb7ffd977,0xe747c8c7,0x80761a22,0xec104c35,0x5a3ffb83,0x8395ebaf,0xe4b63db7,0xfb3261f4,0xd883e544,0x53544960,0x8cc2eeb8,0x13520d70,0xd3d65f99,0x08f6337b,0x781cf95b,0x83997db2 +.long 0x0dbd2c01,0xce6ff106,0x1f9ce934,0x4f8eea6b,0x0e993921,0x546f7c4b,0x5e753fc7,0x6236a324,0xa16022e9,0x65a41f84,0x43d1dbb2,0x0c18d878,0x2d4cef9c,0x73c55640,0x70444c74,0xa0428108 +.long 0x9afdfb3c,0x68e4f15e,0x5bdfb6df,0x49a56143,0x5f823d97,0xa9bc1bd4,0xea111c2a,0xbceb5970,0xb269bbc4,0x366b455f,0xe9bc5d62,0x7cd85e1e,0x4f18b086,0xc743c41c,0x95294fb9,0xa4b40990 +.long 0x26ee8382,0x9c7c581d,0x359d638e,0xcf17dcc5,0xb728ae3d,0xee8273ab,0xf821f047,0x1d112926,0x50491a74,0x11498477,0xfde0dfb9,0x687fa761,0x7ea435ab,0x2c258022,0x91ce7e3f,0x6b8bdb94 +.long 0x3bf834aa,0x4c5b5dc9,0x4f6c7e4b,0x04371819,0x3736bcad,0xc284e00a,0x21ae8f8d,0x0d881118,0xf48c8e33,0xf9cf0f82,0xa1bf40db,0xa11fd075,0xdc2733e5,0xdceab0de,0x8e986bd7,0xc560a8b5 +.long 0x3929d097,0x48dd1fe2,0x92f188f1,0x3885b290,0xda6fcdac,0x0f2ae613,0xb662a46c,0x9054303e,0x0738042a,0xb6871e44,0xbdaf6449,0x98e6a977,0xd1c9df1b,0xd8bc0650,0x36e098f9,0xef3d6451 +.long 0xb6d72d28,0x03fbae82,0xf5d84080,0x77ca9db1,0xa58efc1c,0x8a112cff,0xc564cb4a,0x518d761c,0xf0d1b5ce,0x69b5740e,0xe9eb1785,0x717039cc,0x22f53382,0x3fe29f90,0x6bc7c95c,0x8e54ba56 +.long 0xf7f91d0f,0x9c806d8a,0xa82a5728,0x3b61b0f1,0x94d76754,0x4640032d,0x47d834c6,0x273eb5de,0x7b4e4d53,0x2988abf7,0xde401777,0xb7ce66bf,0x715071b3,0x9fba6b32,0xad3a1a98,0x82413c24 +.long 0xe0e8ad93,0x5b7fc8c4,0x5fab868d,0xb5679aee,0x2b3946f3,0xb1f9d2fa,0x5685b50a,0x458897dc,0x89d0caf3,0x1e98c930,0x78642e92,0x39564c5f,0x0dbdaf18,0x1b77729a,0x579e82e6,0xf9170722 +.long 0xe4515fa5,0x680c0317,0xfb0c790f,0xf85cff84,0x6d2e0765,0xc7a82aab,0x35c82b32,0x7446bca9,0x6d63184f,0x5de607aa,0x262803a6,0x7c1a46a8,0xaebe8035,0xd218313d,0xc73c51f8,0x92113ffd +.long 0x12e7e46c,0x4b38e083,0x56126bd5,0x69d0a37a,0x73c07e04,0xfb3f324b,0x8fda7267,0xa0c22f67,0x4d2c7d8f,0x8f2c0051,0xcbe2cae5,0xbc45ced3,0xa8f0f277,0xe1c6cf07,0x1eb99a98,0xbc392312 +.long 0x3cc8ac85,0x75537b7e,0xdd02753b,0x8d725f57,0xb737df2f,0xfd05ff64,0xf6d2531d,0x55fe8712,0x6ab6b01c,0x57ce04a9,0x7cd93724,0x69a02a89,0xcf86699b,0x4f82ac35,0x9cb4b232,0x8242d3ad +.long 0xd62105e5,0x713d0f65,0x2d29be61,0xbb222bfa,0x6cfbef09,0xf2f9a79e,0xd5d6782f,0xfc24d8d3,0xd4129967,0x5db77085,0xdc3c2a43,0xdb81c3cc,0x05d8d9a3,0x9d655fc0,0x54298026,0x3f5d057a +.long 0x88c54694,0x1157f56d,0x9b09573e,0xb26baba5,0x22adffd1,0x2cab03b0,0xdd69f383,0x60a412c8,0x54b25039,0xed76e98b,0x687e714d,0xd4ee67d3,0x7b00b594,0x87739648,0xc9ef709b,0xce419775 +.long 0x1c203a40,0x40f76f85,0xeafd8f91,0x30d352d6,0x95578dd2,0xaf196d3d,0x77cc3f3d,0xea4bb3d7,0xb98e782b,0x42a5bd03,0x0624920d,0xac958c40,0xfc56fcc8,0xb838134c,0x89572e5e,0x86ec4ccf +.long 0x9be47be0,0x69c43526,0xcb28fea1,0x323b7dd8,0x3a6c67e5,0xfa5538ba,0x1d378e46,0xef921d70,0x3c4b880e,0xf92961fc,0x98940a67,0x3f6f914e,0xfef0ff39,0xa990eb0a,0xf0eeff9c,0xa6c2920f +.long 0x51b8d9a3,0xca804166,0x0ffb0db1,0x42531bc9,0xaa82e7ce,0x72ce4718,0xdf574741,0x6e199913,0xd5d36946,0xd5f1b13d,0xf68f0194,0x8255dc65,0x8710d230,0xdc9df4cd,0x138c1988,0x3453c20f +.long 0x89a6ef01,0x9af98dc0,0x9857df85,0x4dbcc3f0,0x5c1ad924,0x34805601,0xd0493046,0x40448da5,0x4ee343e2,0xf629926d,0x90e8a301,0x6343f1bd,0x40815b3f,0xefc93491,0xde8f66fb,0xf882a423 +.long 0xe7db9f57,0x3a12d5f4,0x3c384c27,0x7dfba38a,0x6fc660b1,0x7a904bfd,0x2773b21c,0xeb6c5db3,0x1cdfe049,0xc350ee66,0x44540f29,0x9baac0ce,0xa5ec6aad,0xbc57b6ab,0x0a7c1baa,0x167ce8c3 +.long 0x53fb2b56,0xb23a03a5,0x4e057f78,0x6ce141e7,0x89e490d9,0x796525c3,0xa31a7e75,0x0bc95725,0x1220fd06,0x1ec56791,0x408b0bd6,0x716e3a3c,0xe8ebeba9,0x31cd6bf7,0xbee6b670,0xa7326ca6 +.long 0xcd090c43,0x3d9f851c,0xf12c3988,0x561e8f13,0x904b7be4,0x50490b6a,0x0410737b,0x61690ce1,0x0f009052,0x299e9a37,0xf026092e,0x258758f0,0xfdfcdc0f,0x9fa255f3,0xc0e1bcd2,0xdbc9fb1f +.long 0x24651840,0x35f9dd6e,0xa5c59abc,0xdca45a84,0xecca4938,0x103d396f,0xb97b3f29,0x4532da0a,0x1999a6bf,0xc4135ea5,0x5e6bf2ee,0x3aa9505a,0x3f5be093,0xf77cef06,0xa943152e,0x97d1a0f8 +.long 0x2e1c21dd,0x2cb0ebba,0x2c6797c4,0xf41b29fc,0xb300101f,0xc6e17321,0xd0d79a89,0x4422b0e9,0x92f1bfc4,0x49e4901c,0xe1e10ed9,0x06ab1f8f,0xdb2926b8,0x84d35577,0x356e8ec2,0xca349d39 +.long 0x343bf1a9,0x70b63d32,0x37d1a6b1,0x8fd3bd28,0x316865b4,0x0454879c,0xc458efa2,0xee959ff6,0x9706dc3f,0x0461dcf8,0x164e4b2e,0x737db0e2,0x2f8843c8,0x09262680,0x7745e6f6,0x54498bbc +.long 0xa29e24af,0x359473fa,0x70aa87a1,0xfcc3c454,0x00573ace,0xfd2c4bf5,0x28dd1965,0xb65b514e,0x2193e393,0xe46ae7cf,0xf5444d97,0x60e9a4e1,0x00ff38ed,0xe7594e96,0x0a0e0f02,0x43d84d2f +.long 0xee398a21,0x8b6db141,0xe3bcc5be,0xb88a56ae,0x373460ea,0x0a1aa52f,0x160bb19b,0x20da1a56,0x65bf0384,0xfb54999d,0x5d5a180e,0x71a14d24,0x21737b04,0xbc44db7b,0x01dd8e92,0xd84fcb18 +.long 0xfa44b479,0x80de937b,0x5c98fd4f,0x53505499,0x28f08727,0x1edb12ab,0xa5f3ef53,0x4c58b582,0x8327f246,0xbfb236d8,0x4d7df320,0xc3a3bfaa,0xb96024f2,0xecd96c59,0x7f4e0433,0xfc293a53 +.long 0x5acf6e10,0x5341352b,0xafe652c3,0xc50343fd,0x18577a7f,0x4af3792d,0xaf16823d,0xe1a4c617,0x33425d0a,0x9b26d0cd,0x9b7bc47f,0x306399ed,0x706bb20b,0x2a792f33,0x98111055,0x31219614 +.long 0x87f5d28b,0x864ec064,0x962277fd,0x11392d91,0xbb6aed5f,0xb5aa7942,0x47e799d9,0x080094dc,0x208ba19b,0x4afa588c,0x8512f284,0xd3e7570f,0x02f5799a,0xcbae64e6,0x514b9492,0xdeebe7ef +.long 0xe5c298ff,0x30300f98,0x3678361f,0x17f561be,0x98cb9a16,0xf52ff312,0x5562d490,0x6233c3bc,0x92e3a2cb,0x7bfa15a1,0xe6365119,0x961bcfd1,0x2c8c53b1,0x3bdd29bf,0x822844ba,0x739704df +.long 0x7e7b754b,0x7dacfb58,0xa806c9b9,0x23360791,0x23504452,0xe7eb88c9,0x852c1783,0x2983e996,0x958d881d,0xdd4ae529,0x262c7b3c,0x026bae03,0x960b52d1,0x3a6f9193,0x92696cfb,0xd0980f90 +.long 0xd5f30851,0x4c1f428c,0x2a4f6630,0x94dfed27,0xfc5d48a4,0x4df53772,0x933260ce,0xdd2d5a2f,0xd44cc7a5,0x574115bd,0xbd12533a,0x4ba6b20d,0x243057c9,0x30e93cb8,0x14de320e,0x794c486a +.long 0xf21496e4,0xe925d4ce,0xec696331,0xf951d198,0x3e8d812f,0x9810e2de,0x389294ab,0xd0a47259,0x0e3bab66,0x513ba2b5,0xabad306f,0x462caff5,0xaf04c49e,0xe2dc6d59,0xe0b84b0b,0x1aeb8750 +.long 0x2f7d0ca2,0xc034f12f,0xe06acf2f,0x6d2e8128,0x21facc2f,0x801f4f83,0xf40ef607,0xa1170c03,0x7805a99c,0xfe0a1d4f,0xcc26aba5,0xbde56a36,0x35531f40,0x5b1629d0,0x9afa6108,0xac212c2b +.long 0x15697be5,0x30a06bf3,0x2c63c7c1,0x6f0545dc,0x7ccdadaf,0x5d8cb842,0xac7015bb,0xd52e379b,0xf462c23e,0xc4f56147,0x46bc24b0,0xd44a4298,0xe2856d4f,0xbc73d23a,0x0832bcdf,0x61cedd8c +.long 0x99f241d7,0x60953556,0x001a349d,0xee4adbd7,0xaa89e491,0x0b35bf6a,0x136f7546,0x7f0076f4,0x9264da3d,0xd19a18ba,0x62a7a28b,0x6eb2d2cd,0x8761c971,0xcdba941f,0xa3be4a5d,0x1550518b +.long 0x57d0b70c,0xd0e8e2f0,0xcd133ba3,0xeea8612e,0x44416aec,0x814670f0,0x30775061,0x424db6c3,0x16213fd1,0xd96039d1,0x18a3478f,0xc61e7fa5,0xcb0c5021,0xa805bdcc,0x0cc616dd,0xbdd6f3a8 +.long 0x5d97f7e2,0x06009667,0xaf0bf4b6,0x31db0fc1,0x5491627a,0x23680ed4,0x7d741fb1,0xb99a3c66,0x36b1ff92,0xe9bb5f55,0x512b388d,0x29738577,0x50fcf263,0xdb8a2ce7,0x6c4f7b47,0x385346d4 +.long 0x31631f9e,0xbe86c5ef,0x03a57a29,0xbf91da21,0x7b23f821,0xc3b1f796,0x770db354,0x0f7d00d2,0xd8fe79da,0x8ffc6c3b,0xd525c996,0xcc5e8c40,0xcfff632a,0x4640991d,0x67112528,0x64d97e8c +.long 0x02f1cd1e,0xc232d973,0x1dd212a4,0xce87eacb,0xe69802f7,0x6e4c8c73,0x1fffddbd,0x12ef0290,0x1bcea6e2,0x941ec74e,0x3cb92cbb,0xd0b54024,0x7e8f9d05,0x809fb9d4,0xf2992aae,0x3bf16159 +.long 0xf8a7a838,0xad40f279,0x05615660,0x11aea631,0xa01f6fa1,0xbf52e6f1,0x3dc2aec9,0xef046995,0xd8080711,0x785dbec9,0x9fdedf76,0xe1aec60a,0xfa21c126,0xece797b5,0x05e52732,0xc66e898f +.long 0x08811fdb,0x39bb69c4,0x2fc7f082,0x8bfe1ef8,0x174f4138,0xc8e7a393,0xd58d1f98,0xfba8ad1d,0xbfd2fd5b,0xbc21d0ce,0x6ee60d61,0x0b839a82,0xafd22253,0xaacf7658,0xaae396b3,0xb526bed8 +.long 0x38564464,0xccc1bbc2,0x8c45bc73,0x9e3ff947,0x58188a78,0xcde9bca3,0xd73bf8f7,0x138b8ee0,0x4123c489,0x5c7e234c,0xfa643297,0x66e69368,0x39a15fa3,0x0629eeee,0xa9e2a927,0x95fab881 +.long 0xeafbb1e1,0xb2497007,0xe75b7a93,0xd75c9ce6,0xefb68d78,0x3558352d,0x223f6396,0xa2f26699,0xe469b17a,0xeb911ecf,0xe72d3ec2,0x62545779,0x82cb113f,0x8ea47de7,0x4e1fa98d,0xebe4b086 +.long 0x8cdfedb1,0xec2d5ed7,0xfe211a74,0xa535c077,0x11d244c5,0x9678109b,0xbe299a76,0xf17c8bfb,0xfb11fbc4,0xb651412e,0x94ab3f65,0xea0b5482,0x0cf78243,0xd8dffd95,0xce0361d4,0x2e719e57 +.long 0x304ddc5b,0x9007f085,0x4daba2ea,0x095e8c6d,0x3f9d28a9,0x5a33cdb4,0xe2283003,0x85b95cd8,0xb9744733,0xbcd6c819,0xfc7f5783,0x29c5f538,0xd59038e4,0x6c49b2fa,0x3bbe1018,0x68349cc1 +.long 0x21830ee5,0xcc490c1d,0xe9bfa297,0x36f9c4ee,0x48de1a94,0x58fd7294,0x4e8f2cdc,0xaadb13a8,0x81313dba,0x515eaaa0,0xc2152dd8,0xc76bb468,0xa653dbf8,0x357f8d75,0xb14ac143,0xe4d8c4d1 +.long 0xb055cb40,0xbdb8e675,0x977b5167,0x898f8e7b,0xb82fb863,0xecc65651,0x6d88f01f,0x56544814,0x263a75a9,0xb0928e95,0x1a22fcda,0xcfb6836f,0x3f3bd37c,0x651d14db,0xb6ad4664,0x1d3837fb +.long 0xff4f94ab,0x7c5fb538,0x6d7fb8f2,0x7243c712,0xa85c5287,0xef13d60c,0x4bb8dd1b,0x18cfb7c7,0x72908219,0x82f9bfe6,0x9d5144ab,0x35c4592b,0x9cf4b42f,0x52734f37,0x8c60ddc4,0x6bac55e7 +.long 0x94dea0f6,0xb5cd811e,0xe18cc1a3,0x259ecae4,0x15e660f8,0x6a0e836e,0x0e02bff2,0x6c639ea6,0x7e1026fd,0x8721b8cb,0x63261942,0x9e73b50b,0x77f01da3,0xb8c70974,0x8268f57f,0x1839e6a6 +.long 0x5150b805,0x571b9415,0xf92c7097,0x1892389e,0x4a084b95,0x8d69c18e,0xbe5b495c,0x7014c512,0x1b07523c,0x4780db36,0x2c1c64fa,0x2f6219ce,0x602c105a,0xc38b81b0,0x5dc8e360,0xab4f4f20 +.long 0xcf7d62d2,0x20d3c982,0x23ba8150,0x1f36e29d,0x92763f9e,0x48ae0bf0,0x1d3a7007,0x7a527e6b,0x581a85e3,0xb4a89097,0xdc158be5,0x1f1a520f,0x167d726e,0xf98db37d,0x1113e862,0x8802786e +.long 0x36f09ab0,0xefb2149e,0x4a10bb5b,0x03f163ca,0x06e20998,0xd0297045,0x1b5a3bab,0x56f0af00,0x70880e0d,0x7af4cfec,0xbe3d913f,0x7332a66f,0x7eceb4bd,0x32e6c84a,0x9c228f55,0xedc4a79a +.long 0xc55c4496,0xc37c7dd0,0x25bbabd2,0xa6a96357,0xadd7f363,0x5b7e63f2,0x2e73f1df,0x9dce3782,0xb2b91f71,0xe1e5a16a,0x5ba0163c,0xe4489823,0xf6e515ad,0xf2759c32,0x8615eecf,0xa5e2f1f8 +.long 0xabded551,0x74519be7,0xc8b74410,0x03d358b8,0x0e10d9a9,0x4d00b10b,0x28da52b7,0x6392b0b1,0x0b75c904,0x6744a298,0xa8f7f96c,0xc305b0ae,0x182cf932,0x042e421d,0x9e4636ca,0xf6fc5d50 +.long 0xd64cc78c,0x795847c9,0x9b6cb27b,0x6c50621b,0xdf8022ab,0x07099bf8,0xc04eda1d,0x48f862eb,0xe1603c16,0xd12732ed,0x5c9a9450,0x19a80e0f,0xb429b4fc,0xe2257f54,0x45460515,0x66d3b2c6 +.long 0x822e37be,0x6ca4f87e,0x253bda4e,0x73f237b4,0x41190aeb,0xf747f3a2,0x804cf284,0xf06fa36f,0xfc621c12,0x0a6bbb6e,0x40b80ec6,0x5d624b64,0x7ba556f3,0x4b072425,0x3e2d20a8,0x7fa0c354 +.long 0xe3229d41,0xe921fa31,0x94531bd4,0xa929c652,0xa6d38209,0x84156027,0x6bdb97bd,0xf3d69f73,0x16833631,0x8906d19a,0x03d51be3,0x68a34c2e,0x0e511cd8,0xcb59583b,0xfdc132a8,0x99ce6bfd +.long 0xffcdb463,0x3facdaaa,0x34a38b08,0x658bbc1a,0xf1a9078d,0x12a801f8,0x6ab855de,0x1567bcf9,0x3572359b,0xe08498e0,0x8659e68b,0xcf0353e5,0x7d23807c,0xbb86e9c8,0x2198e8a2,0xbc08728d +.long 0x453cadd6,0x8de2b7bc,0xbc0bc1f8,0x203900a7,0xa6abd3af,0xbcd86e47,0x8502effb,0x911cac12,0xec965469,0x2d550242,0x29e0017e,0x0e9f7692,0x65979885,0x633f078f,0x4cf751ef,0xfb87d449 +.long 0xfc25419a,0xe1790e4b,0x4bff3cfd,0x36467203,0x25b6e83f,0xc8db6386,0x6cad6fd2,0x6cc69f23,0x6bc68bb9,0x0219e45a,0x297f7334,0xe43d79b6,0x465dc97c,0x7d445368,0x2a0b949a,0x4b9eea32 +.long 0x6102d021,0x1b96c6ba,0x2f4461ea,0xeaafac78,0xc49f19a8,0xd4b85c41,0xcf538875,0x275c28e4,0xdd2e54e0,0x35451a9d,0x0605618b,0x6991adb5,0x7b36cd24,0x5b8b4bcd,0x56f37216,0x372a4f8c +.long 0xa6a5da60,0xc890bd73,0xdc4c9ff0,0x6f083da0,0xf0536e57,0xf4e14d94,0xaaec8243,0xf9ee1eda,0x8bdcf8e7,0x571241ec,0x0b041e26,0xa5db8271,0xe3fff040,0x9a0b9a99,0x7c271202,0xcaaf21dd +.long 0x4f0dd2e8,0xb4e2b2e1,0x0a377ac7,0xe77e7c4f,0x0d7a2198,0x69202c3f,0x28200eb8,0xf759b7ff,0xdcfe314e,0xc87526ed,0x53d5cf99,0xeb84c524,0x515138b6,0xb1b52ace,0x23fca3f4,0x5aa7ff8c +.long 0xb9791a26,0xff0b13c3,0xcdd58b16,0x960022da,0x57aad2de,0xdbd55c92,0xf30fe619,0x3baaaaa3,0x0d881efd,0x9a4b2346,0x46325e2a,0x506416c0,0x035c18d4,0x91381e76,0xf27817b0,0xb3bb68be +.long 0x5116f937,0x15bfb8bf,0xc1268943,0x7c64a586,0x8419a2c8,0x71e25cc3,0x8335f463,0x9fd6b0c4,0xe8ee0e0e,0x4bf0ba3c,0x298c21fa,0x6f6fba60,0xae66bee0,0x57d57b39,0x22672544,0x292d5130 +.long 0xbab093b3,0xf451105d,0x02839986,0x012f59b9,0x3474a89c,0x8a915802,0x2de03e97,0x048c919c,0x91071cd5,0xc476a2b5,0x034970a5,0x791ed89a,0xe1b7994b,0x89bd9042,0xa1057ffd,0x8eaf5179 +.long 0xd551ee10,0x6066e2a2,0x727e09a6,0x87a8f1d8,0x2c01148d,0x00d08bab,0x424f33fe,0x6da8e4f1,0xcf9a4e71,0x466d17f0,0x3bf5cb19,0xff502010,0xd062ecc0,0xdccf97d8,0x81d80ac4,0x80c0d9af +.long 0x033f2876,0xe87771d8,0x7d5cc3db,0xb0186ec6,0x3bc9bc1d,0x58e8bb80,0x6f6ef60e,0x4d1395cc,0x186244a0,0xa73c62d6,0x110a5b53,0x918e5f23,0x741b7eab,0xed4878ca,0xdbe03e51,0x3038d71a +.long 0xa93c3246,0x840204b7,0xa0b9b4cd,0x21ab6069,0xb1d64218,0xf5fa6e2b,0xf3d56191,0x1de6ad0e,0xff1929c7,0x570aaa88,0x640e87b5,0xc6df4c6b,0xc65f0ccc,0xde8a74f2,0xe6f6cc01,0x8b972fd5 +.long 0x0b846531,0x3fff36b6,0x10a5e475,0xba7e45e6,0x4145b6c5,0x84a1d10e,0x5e046d9d,0xf1f7f91a,0x44de90d7,0x0317a692,0xf199c15e,0x951a1d4a,0xc9d73deb,0x91f78046,0xfab8224f,0x74c82828 +.long 0xe7560b90,0xaa6778fc,0xa7e824ce,0xb4073e61,0xd642eba8,0xff0d693c,0x5dccef38,0x7ce2e57a,0x1df1ad46,0x89c2c789,0x098346fd,0x83a06922,0xda2fc177,0x2d715d72,0x85b6cf1d,0x7b6dd71d +.long 0x73fa9cb0,0xc60a6d0a,0x328bf5a9,0xedd3992e,0x832c8c82,0xc380ddd0,0xa2a0bf50,0xd182d410,0xd9a528db,0x7d9d7438,0xcaf53994,0xe8b1a0e9,0x0e19987c,0xddd6e5fe,0x190b059d,0xacb8df03 +.long 0x8300129f,0x53703a32,0x68c43bfd,0x1f637662,0x00e54051,0xbcbd1913,0x7bf5a8c5,0x812fcc62,0x29fb85da,0x3f969d5f,0x694759e8,0x72f4e00a,0x790726b7,0x426b6e52,0x3bdbb209,0x617bbc87 +.long 0x97aee317,0x511f8bb9,0xe81536a8,0x812a4096,0x3ac09b9b,0x137dfe59,0xba8c9a7a,0x0682238f,0xaeccb4bd,0x7072ead6,0x692ba633,0x6a34e9aa,0x6fff9d33,0xc82eaec2,0x1d4d2b62,0xfb753512 +.long 0x1d7aadab,0x1a0445ff,0xd5f6a67c,0x65d38260,0x91cfb26f,0x6e62fb08,0x5c7d91d6,0xef1e0fa5,0x33db72cd,0x47e7c7ba,0xfa7c74b2,0x017cbc09,0xf50a503c,0x3c931590,0x616baa42,0xcac54f60 +.long 0xb2369f0f,0x9b6cd380,0x23c76151,0x97d3a70d,0x9862a9c6,0x5f9dd6fc,0x12312f51,0x044c4ab2,0x834a2ddc,0x035ea0fd,0xcc7b826d,0x49e6b862,0x62fce490,0xb03d6883,0xb37e36e9,0x62f2497a +.long 0xc6458293,0x04b005b6,0xe8d10af7,0x36bb5276,0x8ee617b8,0xacf2dc13,0xb004b3d4,0x470d2d35,0xfeeb1b77,0x06790832,0x85657f9c,0x2bb75c39,0xc0f60004,0xd70bd4ed,0x219b018b,0xfe797ecc +.long 0x753aebcc,0x9b5bec2a,0xc939eca5,0xdaf9f3dc,0xd095ad09,0xd6bc6833,0xdaa4d2fc,0x98abdd51,0x8d168be5,0xd9840a31,0x2325a23c,0xcf7c10e0,0x7e6ecfaf,0xa5c02aa0,0xb5bfdf18,0x2462e7e6 +.long 0xa0cc3f12,0xab2d8a8b,0xbc672a29,0x68dd485d,0x596f2cd3,0x72039752,0xa0cf3d8d,0x5d3eea67,0xe6602671,0x810a1a81,0x14026c0c,0x8f144a40,0x76b50f85,0xbc753a6d,0x645cd4a4,0xc4dc21e8 +.long 0x521d0378,0xc5262dea,0x05011c6f,0x802b8e0e,0x0b4c19ea,0x1ba19cbb,0xebf0aaec,0x21db64b5,0x70342f9d,0x1f394ee9,0x1bc44a14,0x93a10aee,0x3efd0baa,0xa7eed31b,0x1d154e65,0x6e7c824e +.long 0x9966e7ee,0xee23fa81,0x05b7920d,0x64ec4aa8,0x2d90aad4,0x2d44462d,0xdf277ad5,0xf44dd195,0xbb46b6a1,0x8d6471f1,0xfd885090,0x1e65d313,0x13a977b4,0x33a800f5,0x0797e1ef,0xaca9d721 +.long 0xfcff6a17,0x9a5a85a0,0x1eca7cee,0x9970a3f3,0xc9504be3,0xbb9f0d6b,0xadd24ee2,0xe0c504be,0x77fcc2f4,0x7e09d956,0x65bb5fc4,0xef1a5227,0x8b9286aa,0x145d4fb1,0x6649028b,0x66fd0c5d +.long 0x1bf4581c,0x98857ceb,0xaca7b166,0xe635e186,0x659722ac,0x278ddd22,0x1db68007,0xa0903c4c,0x48f21402,0x366e4589,0xb96abda2,0x31b49c14,0xe0403190,0x329c4b09,0xd29f43fe,0x97197ca3 +.long 0x274983d8,0x8073dd1e,0x55717c8f,0xda1a3bde,0x0361f9d1,0xfd3d4da2,0x4c7de1ce,0x1332d081,0xaa6d0e10,0x9b7ef7a3,0xf54f1c4a,0x17db2e73,0x4cd35567,0xaf3dffae,0xe56f4e71,0xaaa2f406 +.long 0x7ace3fc7,0x8966759e,0x45a8d8c6,0x9594eacf,0x91834e0e,0x8de3bd8b,0x548c0421,0xafe4ca53,0xe6ee81c6,0xfdd7e856,0x6b891a3a,0x8f671beb,0xfae63829,0xf7a58f2b,0x9c11ac9f,0x9ab186fb +.long 0x10b5be76,0x8d6eb369,0xfb040bcd,0x046b7739,0xcb73de88,0xccb4529f,0xcf26be03,0x1df0fefc,0xbcfcd027,0xad7757a6,0xbb3165ca,0xa8786c75,0x7e99a4d9,0xe9db1e34,0xb06c504b,0x99ee86df +.long 0xc15c9f0a,0x5b7c2ddd,0x4295989e,0xdf87a734,0x03d08fda,0x59ece47c,0xad5fc702,0xb074d3dd,0x51a03776,0x20407903,0x2a608007,0x2bb1f77b,0xe1153185,0x25c58f4f,0x766e6447,0xe6df62f6 +.long 0xed51275a,0xefb3d1be,0x2f0f483f,0x5de47dc7,0x97c2bedf,0x7932d98e,0x0219f8a1,0xd5c11927,0xa73a294e,0x9d751200,0x9dc20172,0x5f88434a,0xa26f506a,0xd28d9fd3,0x9d1dcd48,0xa890cd31 +.long 0x70f4d3b4,0x0aebaec1,0x0ffc8d00,0xfd1a1369,0x57d57838,0xb9d9c240,0x68bac361,0x45929d26,0x25b15ca6,0x5a2cd060,0x6e474446,0x4b3c83e1,0xee1e5134,0x1aac7578,0xc91e2f41,0xa418f5d6 +.long 0x213ed68b,0x6936fc8a,0x510a5224,0x860ae7ed,0xdef09b53,0x63660335,0xcd79c98d,0x641b2897,0x01110f35,0x29bd38e1,0x648b1937,0x79c26f42,0x9d9164f4,0x64dae519,0x0265c273,0xd85a2310 +.long 0x4b07e2b1,0x7173dd5d,0x8d9ea221,0xd144c4cb,0x1105ab14,0xe8b04ea4,0xfe80d8f1,0x92dda542,0xcf03dce6,0xe9982fa8,0x1a22cffc,0x8b5ea965,0x3fad88c4,0xf7f4ea7f,0x6a5ba95c,0x62db773e +.long 0x93f24567,0xd20f02fb,0x315257ca,0xfd46c69a,0x8bcab987,0x0ac74cc7,0x5ceca2f5,0x46f31c01,0x888b219e,0x40aedb59,0xe1fccd02,0xe50ecc37,0x911f816c,0x1bcd9dad,0x8db9b00c,0x583cc1ec +.long 0xa483bf11,0xf3cd2e66,0xb1b2c169,0xfa08a6f5,0x4be9fa28,0xf375e245,0x5b6d011f,0x99a7ffec,0xc4ae62da,0x6a3ebddb,0x374aef5d,0x6cea00ae,0x9d4d05bc,0xab5fb98d,0xd560f252,0x7cba1423 +.long 0x208490de,0x49b2cc21,0xbcfb2879,0x1ca66ec3,0x1b6fb16f,0x7f1166b7,0x65fe5db3,0xfff63e08,0x8b2610be,0xb8345abe,0x39de3df4,0xb732ed80,0x211c32b4,0x0e24ed50,0x848ff27d,0xd10d8a69 +.long 0xed4de248,0xc1074398,0x10488927,0xd7cedace,0x85673e13,0xa4aa6bf8,0x6daf30af,0xb46bae91,0xfcef7ad8,0x07088472,0xd4b35e97,0x61151608,0xdde29986,0xbcfe8f26,0xd5a34c79,0xeb84c4c7 +.long 0x164e1214,0xc1eec55c,0xa147bb03,0x891be86d,0x0ba96835,0x9fab4d10,0xa5c1ae9f,0xbf01e9b8,0xb186ebc0,0x6b4de139,0x85b91bca,0xd5c74c26,0xc2d93854,0x5086a99c,0xa7a9dfbc,0xeed62a7b +.long 0x76b7618a,0x8778ed6f,0x03b66062,0xbff750a5,0xb65186db,0x4cb7be22,0xcc3a6d13,0x369dfbf0,0x7191a321,0xc7dab26c,0x40ed718e,0x9edac3f9,0xd0cfd183,0xbc142b36,0x7c991693,0xc8af82f6 +.long 0x97ce0b2a,0xb3d1e4d8,0xc3a55cdf,0xe6d7c87f,0x68b81afe,0x35846b95,0xd3c239d8,0x018d12af,0x01206e15,0x2b2c6208,0xa3b882c6,0xe0e42453,0xa50162d5,0x854470a3,0x7017a62a,0x08157478 +.long 0x820357c7,0x18bd3fb4,0x6f1458ad,0x992039ae,0x25b44aa1,0x9a1df3c5,0xed3d5281,0x2d780357,0xc77ad4d4,0x58cf7e4d,0xf9df4fc4,0xd49a7998,0x1d71205e,0x4465a8b5,0x649254aa,0xa0ee0ea6 +.long 0xab7bd771,0x4b5eeecf,0x35c262b9,0x6c873073,0x3c9d61e7,0xdc5bd648,0x321460d2,0x233d6d54,0xfc195bcc,0xd20c5626,0x04d78b63,0x25445958,0x17ec8ef3,0xe03fcb3d,0x46b8f781,0x54b690d1 +.long 0x21230646,0x82fa2c8a,0x084f418c,0xf51aabb9,0x1a30ba43,0xff4fbec1,0x743c9df7,0x6a5acf73,0xd635b4d5,0x1da2b357,0xecd5c1da,0xc3de68dd,0xd61af0dd,0xa689080b,0xd665bf99,0xdea5938a +.long 0xfe637294,0x0231d71a,0xa5a81cd8,0x01968aa6,0x048e63b5,0x11252d50,0x6ca007e9,0xc446bc52,0x96d6134b,0xef8c50a6,0x9e09a05c,0x9361fbf5,0xdca3291a,0xf17f85a6,0xff251a21,0xb178d548 +.long 0xa4df3915,0x87f6374b,0x2fd5d608,0x566ce1bf,0x7de35102,0x425cba4d,0x58c5d5e2,0x6b745f8f,0x63122edf,0x88402af6,0x3b989a89,0x3190f9ed,0xebba3156,0x4ad3d387,0xc7c469a5,0xef385ad9 +.long 0x3f642c29,0xb08281de,0x910ffb88,0x20be0888,0xd5292546,0xf353dd4a,0x8377a262,0x3f1627de,0xeefcd638,0xa5faa013,0x74cc77c3,0x8f3bf626,0xa348f55e,0x32618f65,0x9fefeb9e,0x5787c0dc +.long 0xd9a23e44,0xf1673aa2,0x4e10690d,0x88dfa993,0x2bf91108,0x1ced1b36,0x3af48649,0x9193ceca,0x2d738fc5,0xfb34327d,0x975fee6c,0x6697b037,0xc04079a5,0x2f485da0,0x2feaa1ac,0x2cdf5735 +.long 0xbd55659e,0x76944420,0x4376090c,0x7973e32b,0x163b591a,0x86bb4fe1,0xc196f0ca,0x10441aed,0x045ad915,0x3b431f4a,0xa4afacb1,0x6c11b437,0x71fdbbd8,0x30b0c7db,0xeda65acd,0xb642931f +.long 0x9c92b235,0x4baae6e8,0x6b3993a1,0xa73bbd0e,0x693dd031,0xd06d60ec,0x7156881c,0x03cab91b,0x1db3574b,0xd615862f,0x64bb061a,0x485b0185,0xa0181e06,0x27434988,0xc1c0c757,0x2cd61ad4 +.long 0x2ff9f403,0x3effed5a,0x62239029,0x8dc98d8b,0x1f17b70d,0x2206021e,0xbf510015,0xafbec0ca,0x80130dfa,0x9fed7164,0x8a02dcf5,0x306dc2b5,0xfeb10fc0,0x48f06620,0x5a57cf51,0x78d1e1d5 +.long 0x192ef710,0xadef8c5a,0x3b7431f9,0x88afbd4b,0x64250c9e,0x7e1f7407,0xb58bec07,0x6e31318d,0x24f89b4e,0xfd4fc4b8,0x48c36a2a,0x65a5dd88,0xf024baa7,0x4f1eccff,0xcba94650,0x22a21cf2 +.long 0x42a554f7,0x95d29dee,0x002ec4ba,0x828983a5,0x8badb73d,0x8112a1f7,0xa27c1839,0x79ea8897,0xd065fd83,0x8969a5a7,0xb262a0bc,0xf49af791,0xaf2b5127,0xfcdea8b6,0x564c2dbc,0x10e913e1 +.long 0xbc21ef51,0x51239d14,0x4ce57292,0xe51c3ceb,0x47bbcc3b,0x795ff068,0xbd7e11e6,0x86b46e1e,0x80041ef4,0x0ea6ba23,0x6262342e,0xd72fe505,0x31d294d4,0x8abc6dfd,0x1278c2c9,0xbbe017a2 +.long 0xb389328a,0xb1fcfa09,0xd01771b5,0x322fbc62,0x60b045bf,0x04c0d063,0x10e52d01,0xdb652edc,0x03ec6627,0x50ef932c,0xc1ee50e3,0xde1b3b2d,0xdc37a90d,0x5ab7bdc5,0x31e33a96,0xfea67213 +.long 0x4f2999aa,0x6482b5cb,0xb8cbf0dd,0x38476cc6,0x173405bb,0x93ebfacb,0xe52369ec,0x15cdafe7,0xd935b7db,0xd42d5ba4,0x1c99a4cd,0x648b6004,0xa3b5545b,0x785101bd,0x9dd67faf,0x4bf2c38a +.long 0x4442449c,0xb1aadc63,0x33ad4fb8,0xe0e9921a,0xaa686d82,0x5c552313,0x465d866c,0xdee635fa,0x18ee6e8a,0xbc3c224a,0xed42e02f,0xeed748a6,0xd474cd08,0xe70f930a,0xfff24adf,0x774ea6ec +.long 0xf3480d4a,0x03e2de1c,0xbc8acf1a,0xf0d8edc7,0x68295a9c,0xf23e3303,0xc546a97d,0xfadd5f68,0x96f8acb1,0x895597ad,0x671bdae2,0xbddd49d5,0x21dd43f4,0x16fcd528,0x6619141a,0xa5a45412 +.long 0xc360e25a,0x8ce9b6bf,0x075a1a78,0xe6425195,0x481732f4,0x9dc756a8,0x5432b57a,0x83c0440f,0xd720281f,0xc670b3f1,0xd135e051,0x2205910e,0xdb052be7,0xded14b0e,0xc568ea39,0x697b3d27 +.long 0xfb3ff9ed,0x2e599b9a,0x17f6515c,0x28c2e0ab,0x474da449,0x1cbee4fd,0x4f364452,0x071279a4,0x01fbe855,0x97abff66,0x5fda51c4,0x3ee394e8,0x67597c0b,0x190385f6,0xa27ee34b,0x6e9fccc6 +.long 0x14092ebb,0x0b89de93,0x428e240c,0xf17256bd,0x93d2f064,0xcf89a7f3,0xe1ed3b14,0x4f57841e,0xe708d855,0x4ee14405,0x03f1c3d0,0x856aae72,0xbdd7eed5,0xc8e5424f,0x73ab4270,0x3333e4ef +.long 0xdda492f8,0x3bc77ade,0x78297205,0xc11a3aea,0x34931b4c,0x5e89a3e7,0x9f5694bb,0x17512e2e,0x177bf8b6,0x5dc349f3,0x08c7ff3e,0x232ea4ba,0xf511145d,0x9c4f9d16,0x33b379c3,0xccf109a3 +.long 0xa1f25897,0xe75e7a88,0xa1b5d4d8,0x7ac6961f,0x08f3ed5c,0xe3e10773,0x0a892dfb,0x208a54ec,0x78660710,0xbe826e19,0x237df2c8,0x0cf70a97,0xed704da5,0x418a7340,0x08ca33fd,0xa3eeb9a9 +.long 0x169bca96,0x49d96233,0x2da6aafb,0x04d286d4,0xa0c2fa94,0xc09606ec,0x23ff0fb3,0x8869d0d5,0xd0150d65,0xa99937e5,0x240c14c9,0xa92e2503,0x108e2d49,0x656bf945,0xa2f59e2b,0x152a733a +.long 0x8434a920,0xb4323d58,0x622103c5,0xc0af8e93,0x938dbf9a,0x667518ef,0x83a9cdf2,0xa1843073,0x5447ab80,0x350a94aa,0xc75a3d61,0xe5e5a325,0x68411a9e,0x74ba507f,0x594f70c5,0x10581fc1 +.long 0x80eb24a9,0x60e28570,0x488e0cfd,0x7bedfb4d,0xc259cdb8,0x721ebbd7,0xbc6390a9,0x0b0da855,0xde314c70,0x2b4d04db,0x6c32e846,0xcdbf1fbc,0xb162fc9e,0x33833eab,0xb0dd3ab7,0x9939b48b +.long 0xcb0c9c8c,0x5aaa98a7,0x81c4375c,0x75105f30,0x5ef1c90f,0xceee5057,0xc23a17bf,0xb31e065f,0xd4b6d45a,0x5364d275,0x62ec8996,0xd363f3ad,0x4391c65b,0xb5d21239,0xebb41b47,0x84564765 +.long 0x37107c78,0x20d18ecc,0x570c2a66,0xacff3b6b,0x9bd0d845,0x22f975d9,0xba178fa0,0xef0a0c46,0x76b6028e,0x1a419651,0x248612d4,0xc49ec674,0x7338af55,0x5b6ac4f2,0x7bee5a36,0x06145e62 +.long 0xe75746b5,0x33e95d07,0xc40c78be,0x1c1e1f6d,0x222ff8e2,0x967833ef,0xb49180ad,0x4bedcf6a,0x3d7a4c8a,0x6b37e9c1,0x6ddfe760,0x2748887c,0xaa3a5bbc,0xf7055123,0x7bbb8e74,0x954ff225 +.long 0x97c3dfb9,0xc42b8ab1,0xcf168154,0x55a549b0,0xc1b50692,0xad6748e7,0x6fc5cbcb,0x2775780f,0xe1c9d7c8,0x4eab80b8,0x3fdbcd56,0x8c69dae1,0x9969eace,0x47e6b4fb,0xa705cb5a,0x002f1085 +.long 0x6d3fea55,0x4e23ca44,0xf4810568,0xb4ae9c86,0x2a62f27d,0x47bfb91b,0xd9bac28c,0x60deb4c9,0x7de6c34c,0xa892d894,0x4494587d,0x4ee68259,0x1a3f8a5b,0x914ee14e,0x28700385,0xbb113eaa +.long 0x2115b4c9,0x81ca03b9,0x8908cad1,0x7c163d38,0xaa18179a,0xc912a118,0x886e3081,0xe09ed750,0x26f516ca,0xa676e3fa,0x8e732f91,0x753cacf7,0x833da8b4,0x51592aea,0x4cbea8aa,0xc626f42f +.long 0xa7b56eaf,0xef9dc899,0x34ef7316,0x00c0e52c,0xfe818a86,0x5b1e4e24,0xc538be47,0x9d31e20d,0x3ed68974,0x22eb932d,0x7c4e87c4,0xe44bbc08,0x0dde9aef,0x4121086e,0x134f4345,0x8e6b9cff +.long 0x711b0eb9,0x96892c1f,0x780ab954,0xb905f2c8,0xa20792db,0xace26309,0x0684e126,0xec8ac9b3,0xb40a2447,0x486ad8b6,0x9fe3fb24,0x60121fc1,0x1a8e3b3f,0x5626fccf,0x6ad1f394,0x4e568622 +.long 0x196aa5a1,0xda7aae0d,0x1041b5fb,0xe0df8c77,0x26b318b7,0x451465d9,0x7ab136e9,0xc29b6e55,0x71148463,0x2c2ab48b,0x64454a76,0xb5738de3,0x5a03abe4,0x54ccf9a0,0x0427d58e,0x377c0296 +.long 0x2bb39c1f,0x73f5f0b9,0xe608d8c5,0x14373f2c,0x00fbb805,0xdcbfd314,0x83afdcfb,0xdf18fb20,0x42b3523f,0x81a57f42,0x87f650fb,0xe958532d,0x8b0a7d7c,0xaa8dc8b6,0x150166be,0x1b75dfb7 +.long 0x2d7d1413,0x90e4f7c9,0x9834f597,0x67e2d6b5,0xa808c3e8,0x4fd4f4f9,0xd5281ec1,0xaf8237e0,0x84687cee,0x25ab5fdc,0xa5b26c09,0xc5ded6b1,0xc8ea7650,0x8e4a5aec,0x14cc417f,0x23b73e5c +.long 0x3037bf52,0x2bfb4318,0x78c725d7,0xb61e6db5,0xbbb3e5d7,0x8efd4060,0xdbac488e,0x2e014701,0x360aa449,0xac75cf9a,0x79634d08,0xb70cfd05,0xfffb15ef,0xa591536d,0xd07c106c,0xb2c37582 +.long 0xf50225f9,0xb4293fdc,0xb0e12b03,0xc52e175c,0xd0a8bf64,0xf649c3ba,0xeb8ae3c6,0x745a8fef,0x58321bc3,0x30d7e5a3,0x0bc4df48,0xb1732be7,0xe9ea5058,0x1f217993,0x3e4fd745,0xf7a71cde +.long 0x894c5bbb,0x86cc533e,0x69d83082,0x6915c7d9,0x5815c244,0xa6aa2d05,0x49b22ce5,0xaeeee592,0x78135486,0x89e39d13,0x16b76f2f,0x3a275c1f,0xe036e8f5,0xdb6bcc1b,0x5e4709f5,0x4df69b21 +.long 0x2d0f39aa,0xa188b250,0x15a85947,0x622118bb,0xfde0f4fa,0x2ebf520f,0x4860e539,0xa40e9f29,0x22b57f0f,0x7b6a51eb,0x7e80644a,0x849a33b9,0x1cf095fe,0x50e5d16f,0xec55f002,0xd754b54e +.long 0x236f4a98,0x5cfbbb22,0x066800bb,0x0b0c59e9,0x5a9a7774,0x4ac69a8f,0xd6bec948,0x2b33f804,0x32e6c466,0xb3729295,0x4e599c73,0x68956d0f,0x155c31cc,0xa47a249f,0xe1ce284e,0x24d80f0d +.long 0x988baf01,0xcd821dfb,0xdbb16647,0xe6331a7d,0x094cb960,0x1eb8ad33,0xc91bbca5,0x593cca38,0x26567456,0x384aac8d,0xc04b6490,0x40fa0309,0xdab6c8f6,0x97834cd6,0x3f91e55f,0x68a7318d +.long 0xfc4d3157,0xa00fd04e,0x2bf3bdea,0xb56f8ab2,0x4fa57172,0x014f5648,0x450abdb3,0x948c5860,0x0ebd4f08,0x342b5df0,0x0e82938e,0x3e5168cd,0xb0df5dd0,0x7aedc1ce,0xe5732516,0x6bbbc6d9 +.long 0x605daaa6,0xc7bfd486,0xbb9a6c9e,0x46fd72b7,0xa124fb89,0xe4847fb1,0xa2d8ffbc,0x75959cbd,0xc8a588ee,0x42579f65,0xb80b499d,0x368c92e6,0x999a5df1,0xea4ef6cd,0x936fe604,0xaa73bb7f +.long 0x6457d188,0xf347a70d,0x8b7a388b,0x86eda86b,0x0ccd6013,0xb7cdff06,0xd0053fb2,0xbeb1b6c7,0x99240a9f,0x0b022387,0x776189b2,0x1bbb384f,0x9066193a,0x8695e71e,0x06ffac7e,0x2eb50097 +.long 0x4a7d2caa,0x0654a9c0,0xa5aaa290,0x6f3fb3d1,0xff476e8f,0x835db041,0xc42295e4,0x540b8b0b,0x05e214f5,0xa5c73ac9,0x56a0b638,0x9a74075a,0xce9e680b,0x2e4b1090,0x6b8d9afa,0x57a5b479 +.long 0x26bfe65c,0x0dca48e7,0x7290c307,0x097e391c,0x6669e72e,0x683c462e,0x062559ac,0xf505be1e,0xe3a3035a,0x5fbe3ea1,0x9cd50da8,0x6431ebf6,0x1f6407f2,0xfd169d5c,0x60fce6b8,0x8d838a95 +.long 0x650006f0,0x2a2bfa7f,0x50c0fbb2,0xdfd7dad3,0xccf9ad96,0x92452495,0xd95635f9,0x183bf494,0x4a7bd989,0x02d5df43,0xa5431095,0x505385cc,0xfd43f53e,0xdd98e67d,0x500c34a9,0xd61e1a6c +.long 0x4a8a3d62,0x5a4b46c6,0x247743d2,0x8469c4d0,0x88f7e433,0x2bb3a13d,0x01be5849,0x62b23a10,0xa63d1a4c,0xe83596b4,0x7d183f3e,0x454e7fea,0x17afb01c,0x643fce61,0x1c4c3638,0x4e65e5e6 +.long 0xef74c45b,0x41d85ea1,0xae328506,0x2cfbfa66,0x3ada7da9,0x98b078f5,0xec752fbb,0xd985fe37,0x5a0148b4,0xeece68fe,0x2d78136d,0x6f9a55c7,0xd2b729ce,0x232dccc4,0x90aafbc4,0xa27e0dfd +.long 0x12b4603e,0x96474452,0x6b706d14,0xa876c551,0x69a9d412,0xdf145fcf,0x2d479c34,0xe2ab75b7,0x1a23ff97,0x12df9a76,0x5d359d10,0xc6138992,0xfa835f22,0x6e51c7ae,0xc0fcc4d9,0x69a79cb1 +.long 0x594cc7e1,0xf57f350d,0x3350ab79,0x3079ca63,0x9aff594a,0x226fb614,0x6d59a62b,0x35afec02,0x06ed2c6e,0x9bee46f4,0x7d939a57,0x58da1735,0x8fd1797e,0x44c50402,0x5ccea6ca,0xd8853e7c +.long 0xa35fcd5f,0x4065508d,0x495ccaeb,0x8965df8c,0x12e1a962,0x0f2da850,0xc1cf1cc4,0xee471b94,0x0a08fb75,0xcef19bc8,0x81de3591,0x704958f5,0x3aef4f88,0x2867f8b2,0xea9f9a5f,0x8d749384 +.long 0x8c9049f4,0x1b385537,0x7b92d8b6,0x5be948f3,0xb6e2bd6b,0xd96f725d,0x958c454d,0x37a222bc,0x8809bf61,0xe7c61abb,0x1346f18d,0x46f07fbc,0xe87c0d1c,0xfb567a7a,0x7ef3d07a,0x84a461c8 +.long 0xd9278d98,0x0a5adce6,0x9dfc73e1,0x24d94813,0x054321c3,0x4f3528b6,0x692ea706,0x2e03fdde,0x47b533c0,0x10e60619,0x2ca3c055,0x1a8bc73f,0x1bb62b8f,0xae58d4b2,0x584a24e3,0xb2045a73 +.long 0xbd76e195,0x3ab3d5af,0x6938a810,0x478dd1ad,0x6ee3d5cb,0x6ffab393,0x22b361e4,0xdfb693db,0x51dbf1a7,0xf9694496,0x08a2e762,0xcab4b4ef,0xd39bba9a,0xe8c92f25,0xf1464d96,0x850e61bc +.long 0xdc09508b,0xb7e830e3,0x74317655,0xfaf6d2cf,0xdf690355,0x72606ceb,0xd0c3ded6,0x48bb92b3,0x5c7cf892,0x65b75484,0xd5d5f01f,0xf6cd7ac9,0x96401d69,0xc2c30a59,0xed921878,0x91268650 +.long 0xb78c558f,0x380bf913,0xc8afdaa9,0x43c0baeb,0x54f169d3,0x377f61d5,0xae5ff20b,0xf8da07e3,0xa8a90ea8,0xb676c49d,0x83a29b21,0x81c1ff2b,0x2ad8d276,0x383297ac,0xba89f982,0x3001122f +.long 0x6718e448,0xe1d794be,0x7c3e6e13,0x246c1482,0x5d26b5ef,0x56646ef8,0x88069cdd,0x80f5091e,0x724bdd38,0xc5992e2f,0x8471e8c7,0x02e915b4,0x0d0ff2a9,0x96ff320a,0x4384d1a0,0xbf886487 +.long 0xc93f72d6,0xbbe1e6a6,0xcad800ea,0xd5f75d12,0xe7acf117,0xfa40a09f,0x7581a355,0x32c8cdd5,0x7023c499,0x74221992,0x38ec3901,0xa8afe5d7,0xa90e83f0,0x5691afcb,0x0b8f8eac,0x41bcaa03 +.long 0x8d2668d5,0xe38b5ff9,0x7ad81965,0x0715281a,0x03c6ce11,0x1bc8fc7c,0x8b650436,0xcbbee6e2,0x0cdb9808,0x06b00fe8,0xfe3ed315,0x17d6e066,0x4d0b5018,0x2e9d38c6,0x844dcaef,0xab8bfd56 +.long 0x513aed8b,0x42894a59,0x314bd07a,0xf77f3b6d,0x8e42b582,0xbbdecb8f,0xd2390fe6,0xf10e2fa8,0x62a2f201,0xefb95022,0x50ee32b0,0x4d59ea50,0x6da789a8,0xd87f7728,0xf79492c4,0xcf98a2cf +.long 0x720943c2,0xf9577239,0x3990b9d0,0xba044cf5,0x95f2884a,0x5aa8e823,0x0278a0af,0x834de6ed,0x5f25bd12,0xc8e1ee9a,0x6f7ab271,0x9259ceaa,0x77d00b76,0x7e6d97a2,0xa437832a,0x5c0c6eea +.long 0x5606b81d,0x5232c20f,0x0d991ee5,0xabd7b375,0x8632d951,0x4d2bfe35,0x98ed9364,0x78f85146,0xf30c3282,0x951873f0,0xa789230b,0x0da8ac80,0x5398967f,0x3ac7789c,0xbdda0fb5,0xa69b8f7f +.long 0x6add8545,0xe5db7717,0x72c49b66,0x1b71cb66,0x68421d77,0xd8560739,0x83e3afea,0x03840fe8,0x1ec69977,0xb391dad5,0x307f6726,0xae243fb9,0xe8ca160c,0xc88ac87b,0x4ce355f4,0x5174cced +.long 0xe58ba37d,0x98a35966,0x7817335d,0xfdcc8da2,0x83fbc7bf,0x5b752830,0xd9c96984,0x68e419d4,0x02a40380,0x409a39f4,0x1fe977bc,0x88940faf,0x8f8edea6,0xc640a94b,0xed11547d,0x1e22cd17 +.long 0x59ffc3e2,0xe28568ce,0xc1dee4e7,0x60aa1b55,0x837cb363,0xc67497c8,0x105a2bf2,0x06fb438a,0x500d8e20,0x30357ec4,0x0670db10,0x1ad9095d,0xc73b7cfd,0x7f589a05,0x880d6d28,0xf544607d +.long 0xa20ef103,0x17ba93b1,0x6ba6577b,0xad859130,0x6fa214a0,0x65c91cf6,0x27990da5,0xd7d49c6c,0x20bb569d,0xecd9ec8d,0xeeffbc33,0xbd4b2502,0x6bed0467,0x2056ca5a,0x5b63728c,0x7916a1f7 +.long 0x53a4f566,0xd4f9497d,0x97b56810,0x89734664,0x0494a621,0xf8e1da74,0x8d011c68,0x82546a93,0xc61ac162,0x1f3acb19,0xabad0d3e,0x52f8fa9c,0xb4b7ea43,0x15356523,0xae608125,0x5a16ad61 +.long 0x4faed184,0xb0bcb87f,0x5029f45f,0x5f236b1d,0x0bc6b1fc,0xd42c7607,0x68aefce3,0xc644324e,0x5c5d8446,0x8e191d59,0x13ae1979,0xc0208077,0x3ba59cc7,0xadcaee55,0xa2cb81ba,0x20ed6d6b +.long 0xb6efcffc,0x0952ba19,0x97c0b87c,0x60f12d68,0x9caa30bc,0x4ee2c7c4,0x97fbff4e,0x767238b7,0x501b5d92,0xebc73921,0xc2a37737,0x3279e3df,0x6d197543,0x9fc12bc8,0x0a40db4e,0xfa94dc6f +.long 0x530ccbbd,0x7392b41a,0xea823525,0x87c82146,0x05d98d0c,0xa52f984c,0x5ef6974c,0x2ae57d73,0x3042a6dd,0x9377f7bf,0x19647a64,0xb1a007c0,0x0cca9767,0xfaa9079a,0xf68f72d5,0x3d81a25b +.long 0xff81578e,0x752067f8,0x9045447d,0x78622150,0x0505aa6f,0xc0c22fcf,0x6bed1c77,0x1030f0a6,0x1f0bd739,0x31f29f15,0xe6debe85,0x2d7989c7,0x8e677e98,0x5c070e72,0x06e81fd5,0x0a817bd3 +.long 0xb0f2ac95,0xc110d830,0xab20e64e,0x48d0995a,0x7729cd9a,0x0f3e00e1,0xdd556946,0x2a570c20,0x4e86214d,0x912dbcfd,0xcf615498,0x2d014ee2,0x3530d76e,0x55e2b1e6,0xfd0fd6d1,0xc5135ae4 +.long 0xd4f3049f,0x0066273a,0xe7087477,0xbb8e9893,0x14c6e5fd,0x2dba1ddb,0x51f57e6c,0xdba37886,0x5a72f2cf,0x5aaee0a6,0x7bea5642,0x1208bfbf,0x67872c37,0xf5c6aa3b,0x43f93224,0xd726e083 +.long 0x061f1658,0x1854daa5,0xdf0cd2b3,0xc0016df1,0x833d50de,0xc2a3f23e,0xbbbd3017,0x73b681d2,0x3ac343c0,0x2f046dc4,0x85716421,0x9c847e7d,0x0917eed4,0xe1e13c91,0x63a1b9c6,0x3fc9eebd +.long 0x7fe02299,0x0f816a72,0x294f3319,0x6335ccc2,0x4745c5be,0x3820179f,0x922f066e,0xe647b782,0x02cafb8a,0xc22e49de,0xfcc2eccc,0x299bc2ff,0x6e0e8282,0x9a8feea2,0xfe893205,0xa627278b +.long 0x7933e47b,0xa7e19733,0x2e766402,0xf4ff6b13,0x98440d9f,0xa4d8be0a,0x38938808,0x658f5c2f,0xc95b3b3e,0x90b75677,0x3137b6ff,0xfa044269,0x43c47c29,0x077b039b,0x8a6445b2,0xcca95dd3 +.long 0x2333fc4c,0x0b498ba4,0xf736a1b1,0x274f8e68,0x5f1d4b2e,0x6ca348fd,0xa8f10199,0x24d3be78,0xca14f530,0x8535f858,0x5b982e51,0xa6e7f163,0x36e1bf62,0x847c8512,0x03448418,0xf6a7c58e +.long 0xf9374ab6,0x583f3703,0x6e564145,0x864f9195,0x22526d50,0x33bc3f48,0x1262a496,0x9f323c80,0x3f046a9a,0xaa97a7ae,0xdf8a039a,0x70da183e,0x52aa0ba6,0x5b68f71c,0x21459c2d,0x9be0fe51 +.long 0xcbc613e5,0xc1e17eb6,0x497ea61c,0x33131d55,0xaf7eded5,0x2f69d39e,0xde6af11b,0x73c2f434,0xa4a375fa,0x4ca52493,0xb833c5c2,0x5f06787c,0x3e6e71cf,0x814e091f,0x8b746666,0x76451f57 +.long 0x694db7e0,0x80f9bdef,0xb9fcddc6,0xedca8787,0x03b8dce1,0x51981c34,0x70e10ba1,0x4274dcf1,0x6def6d1a,0xf72743b8,0xebdb1866,0xd25b1670,0x050c6f58,0xc4491e8c,0x87fbd7f5,0x2be2b2ab +.long 0xd111f8ec,0x3e0e5c9d,0xb7c4e760,0xbcc33f8d,0xbd392a51,0x702f9a91,0xc132e92d,0x7da4a795,0x0bb1151b,0x1a0b0ae3,0x02e32251,0x54febac8,0x694e9e78,0xea3a5082,0xe4fe40b8,0xe58ffec1 +.long 0xd1e0cf9e,0xf85592fc,0xc0e7b2e8,0xdea75f0d,0xc135584e,0xc04215cf,0x2f57092a,0x174fc727,0xeb930bea,0xe7277877,0x5eb02a5a,0x504caccb,0xf5241b9b,0xf9fe08f7,0x8d5ca954,0xe7fb62f4 +.long 0x29c4120b,0xfbb8349d,0xc0d0d915,0x9f94391f,0x5410ba51,0xc4074fa7,0x150a5911,0xa66adbf6,0x34bfca38,0xc164543c,0xb9e1ccfc,0xe0f27560,0xe820219c,0x99da0f53,0xc6b4997a,0xe8234498 +.long 0x9d4c5423,0xcfb88b76,0xb0521c49,0x9e56eb10,0xbe8700a1,0x418e0b5e,0xf93cb58a,0x00cbaad6,0xd92a5e67,0xe923fbde,0x1f347f11,0xca4979ac,0x6bc0585b,0x89162d85,0xac3c70e3,0xdd6254af +.long 0x516e19e4,0x7b23c513,0xc5c4d593,0x56e2e847,0x5ce71ef6,0x9f727d73,0xf79a44c5,0x5b6304a6,0x3ab7e433,0x6638a736,0xfe742f83,0x1adea470,0x5b7fc19f,0xe054b854,0xba1d0698,0xf935381a +.long 0x799e9a74,0x546eab2d,0xa949f729,0x96239e0e,0x7090055a,0xca274c6b,0x9020c9b0,0x835142c3,0xa2e8807f,0xa405667a,0x1aa3d39e,0x29f2c085,0x42fc72f5,0xcc555d64,0xfbeacb3c,0xe856e0e7 +.long 0x918e4936,0xb5504f9d,0xb2513982,0x65035ef6,0x6f4d9cb9,0x0553a0c2,0xbea85509,0x6cb10d56,0xa242da11,0x48d957b7,0x672b7268,0x16a4d3dd,0x8502a96b,0x3d7e637c,0x730d463b,0x27c7032b +.long 0xe4136a14,0xbdc02b18,0x678e32bf,0xbacf969d,0xdd9c3c03,0xc98d89a3,0x23becc4f,0x7b92420a,0xc64d565c,0xd4b41f78,0x10f28295,0x9f969d00,0xb13d051a,0xec7f7f76,0xa92da585,0x08945e1e +.long 0x5846426f,0x55366b7d,0x247d441d,0xe7d09e89,0x736fbf48,0x510b404d,0xe784bd7d,0x7fa003d0,0x17fd9596,0x25f7614f,0x35cb98db,0x49e0e0a1,0x2e83a76a,0x2c65957b,0xcddbe0f8,0x5d40da8d +.long 0x050bad24,0xf2b8c405,0xc2aa4823,0x8918426d,0xa38365a7,0x2aeab3dd,0x7c91b690,0x72031717,0x60a94120,0x8b00d699,0xe99eaeec,0x478a255d,0x6f60aafd,0xbf656a5f,0x5dee77b3,0xdfd7cb75 +.long 0xa595939d,0x37f68bb4,0x28740217,0x03556479,0x84ad7612,0x8e740e7c,0x9044695f,0xd89bc843,0x85a9184d,0xf7f3da5d,0x9fc0b074,0x562563bb,0xf88a888e,0x06d2e6aa,0x161fbe7c,0x612d8643 +.long 0xf64085e7,0x465edba7,0x29aa8511,0xb230f304,0xcda2d188,0x53388426,0x4b666649,0x90885735,0x652f54f6,0x6f02ff9a,0x5fae2bf0,0x65c82294,0x62f5eee3,0x7816ade0,0xfcc56d70,0xdcdbdf43 +.long 0x54530bb2,0x9fb3bba3,0xcb0869ea,0xbde3ef77,0x0b431163,0x89bc9046,0xe4819a35,0x4d03d7d2,0x43b6a782,0x33ae4f9e,0x9c88a686,0x216db307,0x00ffedd9,0x91dd88e0,0x12bd4840,0xb280da9f +.long 0x1635e741,0x32a7cb8a,0x78be02a7,0xfe14008a,0x1b7ae030,0x3fafb334,0x5add0ce9,0x7fd508e7,0xd607ad51,0x72c83219,0x8d40964a,0x0f229c0a,0x1c878da2,0x1be2c336,0xeab2ab86,0xe0c96742 +.long 0x3e538cd7,0x458f8691,0x8e08ad53,0xa7001f6c,0xbf5d15ff,0x52b8c6e6,0x011215dd,0x548234a4,0x3d5b4045,0xff5a9d2d,0x4a904190,0xb0ffeeb6,0x48607f8b,0x55a3aca4,0x30a0672a,0x8cbd665c +.long 0x42583068,0x87f834e0,0xf3f6e683,0x02da2aeb,0x05c12248,0x6b763e5d,0x65a8aefc,0x7230378f,0x71e8e5ca,0x93bd80b5,0xb3b62524,0x53ab041c,0x6c9c552e,0x1b860513,0xd5524e66,0xe84d402c +.long 0xf37f5937,0xa37f3573,0xd1e4fca5,0xeb0f6c7d,0xac8ab0fc,0x2965a554,0x274676ac,0x17fbf56c,0xacf7d720,0x2e2f6bd9,0x10224766,0x41fc8f88,0x85d53bef,0x517a14b3,0x7d76a7d1,0xdae327a5 +.long 0xc4818267,0x6ad0a065,0x37c1bbc1,0x33aa189b,0x27392a92,0x64970b52,0x2d1535ea,0x21699a1c,0xc2d7a7fd,0xcd20779c,0x99c83cf2,0xe3186059,0x72c0b8c7,0x9b69440b,0x7b9e0e4d,0xa81497d7 +.long 0x1f5f82dc,0x515d5c89,0x6361079e,0x9a7f67d7,0x11a35330,0xa8da81e3,0x4b18be1b,0xe44990c4,0xaf103e59,0xc7d5ed95,0x8dac9261,0xece8aba7,0x9394b8d3,0xbe82b099,0x16adfe83,0x6830f09a +.long 0x88172d01,0x250a29b4,0xcaff9e02,0x8b20bd65,0xe8a6329a,0xb8a7661e,0xd3fce920,0x4520304d,0x2b47f7ef,0xae45da1f,0x5bffc540,0xe07f5288,0x3464f874,0xf7997009,0xa6fa1f38,0x2244c2cd +.long 0x94d7d9b1,0x43c41ac1,0xc82e7f17,0x5bafdd82,0x5fda0fca,0xdf0614c1,0xa8ae37ad,0x74b043a7,0x9e71734c,0x3ba6afa1,0x9c450f2e,0x15d5437e,0x67e242b1,0x4a5883fe,0x2c1953c2,0x5143bdc2 +.long 0xfc5e8920,0x542b8b53,0x9a9cee08,0x363bf9a8,0xc3486e08,0x02375f10,0x8c5e70d2,0x2037543b,0x625640b4,0x7109bccc,0x8bc62c3b,0xcbc1051e,0x803f26ea,0xf8455fed,0xeb372424,0x6badceab +.long 0x6b53f5f9,0xa2a9ce7c,0x1b176d99,0x64246595,0xb95c081b,0xb1298d36,0x1d9a9ee6,0x53505bb8,0xf2ba70b0,0x3f6f9e61,0x8afad453,0xd07e16c9,0xe7eb4a6a,0x9f1694bb,0x3cb0bc8e,0xdfebced9 +.long 0x53868c8b,0x92d3dcdc,0x386107a6,0x174311a2,0x689b4e64,0x4109e07c,0x2df3dcb6,0x30e4587f,0x0811b3b2,0x841aea31,0x0cce43ea,0x6144d41d,0x2a9a7803,0x464c4581,0x3e158930,0xd03d371f +.long 0xb1f3390b,0xc676d7f2,0xa5b61272,0x9f7a1b8c,0xc2e127a9,0x4ebebfc9,0x5dd997bf,0x4602500c,0x4711230f,0x7f09771c,0x020f09c1,0x058eb37c,0xfee5e38b,0xab693d4b,0x4653cbc0,0x9289eb1f +.long 0xd51b9cf5,0xbecf46ab,0x9f0121af,0xd2aa9c02,0xe90dc274,0x36aaf7d2,0x48b95a3c,0x909e4ea0,0x6f32dbdb,0xe6b70496,0x8b030b3e,0x672188a0,0xcfb617e2,0xeeffe5b3,0x7c82709e,0x87e947de +.long 0x1770f5a7,0xa44d2b39,0x0e44eb82,0xe4d4d791,0x3f69712a,0x42e69d1e,0xac6a820e,0xbf11c4d6,0x42c4224c,0xb5e7f3e5,0x449d941c,0xd6b4e81c,0x5450e878,0x5d72bd16,0xee25ac54,0x6a61e28a +.long 0xe6f1cd95,0x33272094,0x0d18673f,0x7512f30d,0x5afc1464,0x32f7a4ca,0x6bbb977b,0x2f095656,0xa8226200,0x586f47ca,0x1ac07369,0x02c868ad,0xc613acbe,0x4ef2b845,0x0386054c,0x43d7563e +.long 0xab952578,0x54da9dc7,0x26e84d0b,0xb5423df2,0x9b872042,0xa8b64eeb,0x5990f6df,0xac205782,0x21f4c77a,0x4ff696eb,0xaab273af,0x1a79c3e4,0x9436b3f1,0x29bc922e,0xd6d9a27a,0xff807ef8 +.long 0x778f22a0,0x82acea3d,0x5b5e7469,0xfb10b2e8,0x2818ee7d,0xc0b16980,0xc91c1a2f,0x011afff4,0xad124418,0x95a6d126,0xe72e295f,0x31c081a5,0xf2f4db75,0x36bb283a,0x7acef462,0xd115540f +.long 0x33f6746c,0xc7f3a8f8,0xfea990ca,0x21e46f65,0xcaddb0a9,0x915fd5c5,0x78614555,0xbd41f016,0x426ffb58,0x346f4434,0x14dbc204,0x80559436,0x5a969b7f,0xf3dd20fe,0xe899a39a,0x9d59e956 +.long 0x8ad4cf4b,0xf1b0971c,0x2ffb8fb8,0x03448860,0x65340ba4,0xf071ac3c,0xb27fd758,0x408d0596,0x98c364b0,0xe7c78ea4,0x051e8ab5,0xa4aac4a5,0x485d9002,0xb9e1d560,0x88844455,0x9acd518a +.long 0xd06f56c0,0xe4ca688f,0xdf027972,0xa48af70d,0x5e9a609d,0x691f0f04,0xee61270e,0xa9dd82cd,0xa0ef18d3,0x8903ca63,0x3d6ca3bd,0x9fb7ee35,0xabf47d03,0xa7b4a09c,0x1c67de8e,0x4cdada01 +.long 0x9355a244,0x52003749,0x4f2151a9,0xe77fd2b6,0x66b4efcb,0x695d6cf6,0xda2cfe25,0xc5a0cacf,0xef811865,0x104efe5c,0x9ea5cc3d,0xf52813e8,0x40b58dbc,0x855683dc,0x175fcb11,0x0338ecde +.long 0x74921592,0xf9a05637,0xb9bb9d31,0xb4f1261d,0x4e9c5459,0x551429b7,0x6ea71f53,0xbe182e6f,0xdfc50573,0xd3a3b07c,0x62be8d44,0x9ba1afda,0x52ab65d3,0x9bcfd2cb,0xa9571802,0xdf11d547 +.long 0x02a2404a,0x099403ee,0x21088a71,0x497406f4,0x5004ae71,0x99479409,0xa812c362,0xbdb42078,0xd8828442,0x2b72a30f,0xfcb5ed1c,0x283add27,0x66a40015,0xf7c0e200,0x08b295ef,0x3e3be641 +.long 0xe038a675,0xac127dc1,0x8c5c6320,0x729deff3,0xa90d2c53,0xb7df8fd4,0x681e7cd3,0x9b74b0ec,0xdab407e5,0x5cb5a623,0x76b340c6,0xcdbd3615,0x7d28392c,0xa184415a,0xe96f7830,0xc184c1d8 +.long 0x81d3a80f,0xc3204f19,0xc8e02432,0xfde0c841,0x8149e0c1,0x78203b3e,0x08053a73,0x5904bdbb,0x101b6805,0x30fc1dd1,0x49aa6d49,0x43c223bc,0x7a174087,0x9ed67141,0xd5997008,0x311469a0 +.long 0x5e43fc61,0xb189b684,0xe0d3ab57,0xf3282375,0xb1181da8,0x4fa34b67,0x99ee52b8,0x621ed0b2,0xad990676,0x9b178de1,0x56d54065,0xd51de67b,0x7538c201,0x2a2c27c4,0x38a40f5c,0x33856ec8 +.long 0xbe6cdcde,0x2522fc15,0x9f0c6f89,0x1e603f33,0x103e30a6,0x7994edc3,0x220c853e,0x033a00db,0xf7bb7fd7,0xd3cfa409,0x462d18f6,0x70f8781e,0x687fe295,0xbbd82980,0x595669f3,0x6eef4c32 +.long 0x2f7e85c3,0x86a9303b,0x71988f9b,0x5fce4621,0xc138acb5,0x5b935bf6,0x25661212,0x30ea7d67,0xe51ab9a2,0xef1eb5f4,0xae067c78,0x0587c98a,0x77ca9ca6,0xb3ce1b3c,0x54b5f057,0x2a553d4d +.long 0x4da29ec2,0xc7898236,0xb9c57316,0xdbdd5d13,0x2cd80d47,0xc57d6e6b,0xfe9e7391,0x80b460cf,0xf963c31e,0x98648cab,0xcc4d32fd,0x67f9f633,0xfdf7c687,0x0af42a9d,0x0b015ea7,0x55f292a3 +.long 0xcd21ab3d,0x89e468b2,0xc393d392,0xe504f022,0xa5013af9,0xab21e1d4,0xc2c28acb,0xe3283f78,0x226bf99f,0xf38b35f6,0x0e291e69,0xe8354274,0xb20c162d,0x61673a15,0xb04fbdbe,0xc101dc75 +.long 0x255bd617,0x8323b4c2,0x6c2a9154,0x6c969693,0x62679387,0xc6e65860,0xb8c88e23,0x8e01db0c,0x893a5559,0x33c42873,0x47a3e149,0x7630f04b,0xddcf35f8,0xb5d80805,0x77dfe732,0x582ca080 +.long 0x0b1894a0,0x2c7156e1,0xd81c68c0,0x92034001,0xc8b115b5,0xed225d00,0x83b907f2,0x237f9c22,0x4470e2c0,0x0ea2f32f,0x58be4e95,0xb725f7c1,0xb1ae5463,0x0f1dcafa,0x1ba2fc04,0x59ed5187 +.long 0xd0115d4d,0xf6e0f316,0xd3691599,0x5180b12f,0x527f0a41,0x157e32c9,0xa8e0ecc0,0x7b0b081d,0xbf4f0dd0,0x6dbaaa8a,0x4d252696,0x99b289c7,0xdbf864fe,0x79b7755e,0x76cad3ab,0x6974e2b1 +.long 0x06ddd657,0x35dbbee2,0x2ff3a96d,0xe7cbdd11,0x076be758,0x88381968,0x08c91f5d,0x2d737e72,0x86ec3776,0x5f83ab62,0x945fa7a1,0x98aa649d,0x72ef0933,0xf477ec37,0x098c17b1,0x66f52b1e +.long 0xd803738b,0x9eec58fb,0xe4e86aa4,0x91aaade7,0xa5b51492,0x6b1ae617,0xbbc45974,0x63272121,0x862c5129,0x7e0e28f0,0x3321a4a0,0x0a8f79a9,0x5041c88f,0xe26d1664,0x53233e3a,0x0571b805 +.long 0xc9520711,0xd1b0ccde,0x3c8b84bf,0x55a9e4ed,0xa1fef314,0x9426bd39,0x6eb93f2b,0x4f5f638e,0x2bf9341b,0xba2a1ed3,0x4d42d5a9,0xd63c1321,0x316dc7c5,0xd2964a89,0xca511851,0xd1759606 +.long 0xf9e6ed35,0xd8a9201f,0x6736925a,0xb7b5ee45,0x99581af7,0x0a83fbbc,0x64eeb051,0x3076bc40,0x02dec312,0x5511c98c,0x238dcb78,0x270de898,0x539c08c9,0x2cf4cf9c,0x38d3b06e,0xa70cb65e +.long 0xcfe57bbd,0xb12ec10e,0x35a0c2b5,0x82c7b656,0x161c67bd,0xddc7d5cd,0xae3a32cc,0xe32e8985,0xd11a5529,0x7aba9444,0x2427fa1a,0xe964ed02,0x24a1770a,0x1528392d,0x12c72fcd,0xa152ce2c +.long 0x8ec07649,0x714553a4,0x459dd453,0x18b4c290,0x7b64b110,0xea32b714,0x2e6f07a2,0xb871bfa5,0x9e2e3c9b,0xb67112e5,0x44aa90f6,0xfbf250e5,0xbd539006,0xf77aedb8,0xd172a66f,0x3b0cdf9a +.long 0xf8c51187,0xedf69fea,0x741e4da7,0x05bb67ec,0x08114345,0x47df0f32,0xbb9792b1,0x56facb07,0x8f6229e4,0xf3e007e9,0x526fba0f,0x62d103f4,0xb0339d79,0x4f33bef7,0xb59bfec1,0x9841357b +.long 0xc34e6705,0xfa8dbb59,0x7fdaa84c,0xc3c7180b,0xa4108537,0xf95872fc,0x932a3e5a,0x8750cc3b,0xb7275d7d,0xb61cc69d,0x2e59b2e9,0xffa0168b,0x6ecbb493,0xca032abc,0x2c9082d8,0x1d86dbd3 +.long 0xe28ef5ba,0xae1e0b67,0xcb18e169,0x2c9a4699,0x1e6bbd20,0x0ecd0e33,0xaf5e81d2,0x571b360e,0x101c1d45,0xcd9fea58,0x18880452,0x6651788e,0x1f8dd446,0xa9972635,0xe37281d0,0x44bed022 +.long 0x33da525d,0x094b2b2d,0x13144fd8,0xf193678e,0xf4c1061d,0xb8ab5ba4,0xdccbe0f4,0x4343b5fa,0x63812713,0xa8702371,0xf7611d93,0x47bf6d2d,0xbd21e1d7,0x46729b8c,0xd629e77d,0x7484d4e0 +.long 0x60dbac1f,0x830e6eea,0xda06a2f7,0x23d8c484,0x50ca535b,0x896714b0,0xebd97a9b,0xdc8d3644,0xb12177b4,0x106ef9fa,0x534d5d9c,0xf79bf464,0xa6ab360b,0x2537a349,0xa00c744f,0xc7c54253 +.long 0xe5911a76,0xb3c7a047,0x647f1ee7,0x61ffa5c8,0x8f56ab42,0x15aed36f,0xa3ff9ac9,0x6a0d41b0,0xcc30d357,0x68f469f5,0x6b72be96,0xbe9adf81,0x903ad461,0x1cd926fe,0xcaca441b,0x7e89e38f +.long 0xfacf69d4,0xf0f82de5,0x4775344c,0x363b7e76,0xb2e36d04,0x6894f312,0x11d1c9a5,0x3c6cb4fe,0x4008e1f2,0x85d9c339,0x249f326c,0x5e9a85ea,0x678c5e06,0xdc35c60a,0x9f86fba9,0xc08b944f +.long 0x89f71f0f,0xde40c02c,0xff3da3c0,0xad8f3e31,0x42125ded,0x3ea5096b,0xa7379183,0x13879cbf,0x6b306a0b,0x6f4714a5,0x67646c5e,0x359c2ea6,0x07726368,0xfacf8943,0x65ff431e,0x07a58935 +.long 0x68754ab0,0x24d661d1,0x6f429a76,0x801fce1d,0xa58ce769,0xc068a85f,0x5d5eca2b,0xedc35c54,0xa3f660d1,0xea31276f,0xb8fc7167,0xa0184ebe,0x1d8db0ae,0x0f20f21a,0x56c35e12,0xd96d095f +.long 0xf8c2a25b,0xedf402b5,0x059204b6,0x1bb772b9,0x19b4e34c,0x50cbeae2,0x3fa0845a,0x93109d80,0x8ef59fb5,0x54f7ccf7,0x88070963,0x3b438fe2,0x31f3ba9b,0x9e28c659,0xead9da92,0x9cc31b46 +.long 0xb733aa5f,0x3c2f0ba9,0xf05af235,0xdece47cb,0xa2ac82a5,0xf8e3f715,0x2203f18a,0xc97ba641,0x09c11060,0xc3af5504,0x46af512d,0x56ea2c05,0xf3f28146,0xfac28daf,0x959ef494,0x87fab43a +.long 0xd4c5105f,0x09891641,0x6d7fbd65,0x1ae80f8e,0xbee6bdb0,0x9d67225f,0x7fc4d860,0x3b433b59,0x93e85638,0x44e66db6,0xe3e9862f,0xf7b59252,0x665c32ec,0xdb785157,0xae362f50,0x702fefd7 +.long 0x0fefb0c3,0x3754475d,0x46d7c35d,0xd48fb56b,0x363798a4,0xa070b633,0x8fdb98e6,0xae89f3d2,0x6363d14c,0x970b89c8,0x67abd27d,0x89817521,0x44d5a021,0x9bf7d474,0xcac72aee,0xb3083baf +.long 0xbe949a44,0x389741de,0x546a4fa5,0x638e9388,0xa0047bdc,0x3fe6419c,0xaaea57ca,0x7047f648,0x41fbab17,0x54e48a90,0x576bdba2,0xda8e0b28,0xc72afddc,0xe807eebc,0xf42577bf,0x07d3336d +.long 0xbfe20925,0x62a8c244,0x8fdce867,0x91c19ac3,0xdd387063,0x5a96a5d5,0x21d324f6,0x61d587d4,0xa37173ea,0xe87673a2,0x53778b65,0x23848008,0x05bab43e,0x10f8441e,0x4621efbe,0xfa11fe12 +.long 0x81685d7b,0x047b772e,0xbf34a976,0x23f27d81,0x915f48ef,0xc27608e2,0xa521d5c3,0x3b0b43fa,0x63ca7284,0x7613fb26,0x1d4db837,0x7f5729b4,0x583b526b,0x87b14898,0xbbadd3d1,0x00b732a6 +.long 0x2048e396,0x8e02f426,0x383d9de4,0x436b50b6,0x471e85ad,0xf78d3481,0xd005c8d6,0x8b01ea6a,0x97015c07,0xd3c7afee,0x4e3ba2ae,0x46cdf1a9,0x83d3a1d2,0x7a42e501,0xb541dff4,0xd54b5268 +.long 0x4e23e9bc,0x3f24cf30,0x126e3624,0x4387f816,0x3b0b6d61,0x26a46a03,0x8b2d777c,0xaf1bc845,0x527de79c,0x25c401ba,0x4261bbb6,0x0e1346d4,0x287b4bc7,0x4b96c44b,0x5254562f,0x658493c7 +.long 0xb8a24a20,0x23f949fe,0xf52ca53f,0x17ebfed1,0xbcfb4853,0x9b691bbe,0x6278a05d,0x5617ff6b,0xe3c99ebd,0x241b34c5,0x1784156a,0xfc64242e,0x695d67df,0x4206482f,0xee27c011,0xb967ce0e +.long 0x21c80b5d,0x65db3751,0xa31ecca0,0x2e7a563c,0x5238a07e,0xe56ffc4e,0x32ced854,0x3d6c2966,0xaf70b885,0xe99d7d1a,0x2d686459,0xafc3bad9,0x0cc8ba5b,0x9c78bf46,0x18955aa3,0x5a439519 +.long 0x5fe4e314,0xf8b517a8,0xfcb8906f,0xe60234d0,0xf2061b23,0xffe542ac,0x6b4cb59c,0x287e191f,0x09d877d8,0x21857ddc,0x14678941,0x1c23478c,0xb6e05ea4,0xbbf0c056,0xb01594fe,0x82da4b53 +.long 0xfadb8608,0xf7526791,0x7b74cdf6,0x049e832d,0xc2b90a34,0xa43581cc,0x9360b10c,0x73639eb8,0xe1e4a71b,0x4fba331f,0x8072f919,0x6ffd6b93,0x65679032,0x6e53271c,0xf14272ce,0x67206444 +.long 0xb2335834,0xc0f734a3,0x90ef6860,0x9526205a,0x04e2bb0d,0xcb8be717,0x02f383fa,0x2418871e,0x4082c157,0xd7177681,0x29c20073,0xcc914ad0,0xe587e728,0xf186c1eb,0x61bcd5fd,0x6fdb3c22 +.long 0xf2f9f8e9,0x30d014a6,0x4fec49d2,0x963ece23,0x9605a8d9,0x862025c5,0x19f8929a,0x39874445,0x12bf476a,0x01b6ff65,0x09cf7d91,0x598a64d8,0x93be56ca,0xd7ec7749,0xcbb33615,0x10899785 +.long 0x02eee3ad,0xb8a092fd,0x30145270,0xa86b3d35,0x8512b675,0x323d98c6,0x62ebb40f,0x4b8bc785,0x413f9cde,0x7d301f54,0x2bab5664,0xa5e4fb4f,0x1cbfec23,0x1d2b252d,0xe177120d,0xfcd576bb +.long 0x83731a34,0x04427d3e,0xed836e8e,0x2bb9028e,0xb612ca7c,0xb36acff8,0xd3d9c73a,0xb88fe5ef,0xedea4eb3,0xbe2a6bc6,0x488eec77,0x43b93133,0xb17106e1,0xf41ff566,0x654efa32,0x469e9172 +.long 0x41c23fa3,0xb4480f04,0xc1989a2e,0xb4712eb0,0x93a29ca7,0x3ccbba0f,0xd619428c,0x6e205c14,0xb3641686,0x90db7957,0x45ac8b4e,0x0432691d,0xf64e0350,0x07a759ac,0x9c972517,0x0514d89c +.long 0xa8e67fc3,0x1701147f,0xab2085be,0x9e2e0b8b,0xac284e57,0xd5651824,0x74893664,0x890d4325,0xc55e68a3,0x8a7c5e6e,0x4339c85a,0xbf12e90b,0xf922b655,0x31846b85,0x0bf4d700,0x9a54ce4d +.long 0xf1a14295,0xd7f4e83a,0xb285d4f9,0x916f955c,0x99ffdaba,0xe57bb0e0,0xeab0d152,0x28a43034,0xb8a9cef8,0x0a36ffa2,0xb9ec051a,0x5517407e,0xea68e672,0x9c796096,0xfb3c77fb,0x853db5fb +.long 0xe864a51a,0x21474ba9,0x6e8a1b8b,0x6c267699,0x94120a28,0x7c823626,0x8383a5db,0xe61e9a48,0x9f84216d,0x7dd75003,0xad43cd85,0xab020d07,0xda12c659,0x9437ae48,0xe65452ad,0x6449c2eb +.long 0x2cf9d7c1,0xcc7c4c1c,0xee95e5ab,0x1320886a,0xbeae170c,0xbb7b9056,0xdbc0d662,0xc8a5b250,0xc11d2303,0x4ed81432,0x1f03769f,0x7da66912,0x84539828,0x3ac7a5fd,0x3bccdd02,0x14dada94 +.long 0x7ef6b0d1,0x8b84c321,0x7c933f22,0x52a9477a,0xfd440b82,0x5ef6728a,0x6ce4bd5e,0x5c3bd859,0xf22c2d3e,0x918b80f5,0xb7bb6cc5,0x368d5040,0x2695a11c,0xb66142a1,0xeb19ea70,0x60ac583a +.long 0x0eab2437,0x317cbb98,0x5e2654c8,0x8cc08c55,0xe6d8307f,0xfe2d6520,0x57428993,0xe9f147f3,0xd2fd6cf1,0x5f9c7d14,0x2d4fcbb0,0xa3ecd064,0x8e7341f7,0xad83fef0,0x3a63115c,0x643f23a0 +.long 0xe65ab743,0xd38a78ab,0x35edc89c,0xbf7c75b1,0x530df568,0x3dd8752e,0xe308c682,0xf85c4a76,0xe68acf37,0x4c9955b2,0xab32af85,0xa544df3d,0xa25cf493,0x4b8ec3f5,0x1a622feb,0x4d8f2764 +.long 0xf0dcbc49,0x7bb4f7aa,0x70bbb45b,0x7de551f9,0x9f2ca2e5,0xcfd0f3e4,0x1f5c76ef,0xece58709,0x167d79ae,0x32920edd,0xfa7d7ec1,0x039df8a2,0xbb30af91,0xf46206c0,0x22676b59,0x1ff5e2f5 +.long 0x6ea51d66,0x11f4a039,0x807d7a26,0x506c1445,0x755a9b24,0x60da5705,0x1f1a319e,0x8fc8cc32,0x9433d67d,0x83642d4d,0x6a7dd296,0x7fa5cb8f,0x9b7bde07,0x576591db,0x419716fb,0x13173d25 +.long 0xd5b340ff,0xea30599d,0xb0fe76c5,0xfc6b5297,0xab8f5adc,0x1c6968c8,0x901c928d,0xf723c7f5,0x9773d402,0x4203c321,0x1b51dd47,0xdf7c6aa3,0x552be23c,0x3d49e37a,0x0b5a6e87,0x57febee8 +.long 0x7bd8e739,0xc5ecbee4,0xae63bf75,0x79d44994,0x38fb8923,0x168bd00f,0xd0533130,0x75d48ee4,0xdb5cdf33,0x554f77aa,0x3c696769,0x3396e896,0xd3fd674e,0x2fdddbf2,0x99d0e3e5,0xbbb8f6ee +.long 0xcbae2f70,0x51b90651,0x93aaa8eb,0xefc4bc05,0xdd1df499,0x8ecd8689,0x22f367a5,0x1aee99a8,0xae8274c5,0x95d485b9,0x7d30b39c,0x6c14d445,0xbcc1ef81,0xbafea90b,0xa459a2ed,0x7c5f317a +.long 0x4ef44227,0x01211075,0xdc20f496,0xa17bed6e,0x819853cd,0x0cdfe424,0xf71e2ce7,0x13793298,0xdbbe307b,0x3c1f3078,0x76ee9936,0x6dd1c20e,0x423caa20,0x23ee4b57,0x8efb840e,0x4ac3793b +.long 0xed1f8ca0,0x934438eb,0x4ebb25a2,0x3e546658,0xc069896f,0xc415af0e,0x9a5aa43d,0xc13eddb0,0xd49eb8f6,0x7a04204f,0xd74f1670,0xd0d5bdfc,0x56fc0558,0x3697e286,0x01cebade,0x10207371 +.long 0x0647a82b,0x5f87e690,0x8f40054f,0x908e0ed4,0x79853803,0xa9f633d4,0x4a28b252,0x8ed13c9a,0x1f460f64,0x3e2ef676,0x36d06336,0x53930b9b,0x8fc4979b,0x347073ac,0x5ecd5597,0x84380e0e +.long 0xc4fe3c39,0xe3b22c6b,0x6c7bebdf,0xba4a8153,0x25693459,0xf23ab6b7,0x14922b11,0x53bc3770,0x5afc60db,0x4645c8ab,0x20b9f2a3,0xaa022355,0xce0fc507,0x52a2954c,0x7ce1c2e7,0x8c2731bb +.long 0x18a0339d,0xf39608ab,0x3735436c,0xac7a658d,0xcd992b4f,0xb22c2b07,0xf40dcfd4,0x4e83daec,0x2f39ea3e,0x8a34c7be,0xb0a56d2e,0xef0c005f,0x6edd8038,0x62731f6a,0x4e3cb075,0x5721d740 +.long 0xfbeeee1b,0x1ea41511,0xef1d0c05,0xd1ef5e73,0x73c07d35,0x42feefd1,0x8a329493,0xe530a00a,0xf15ebfb0,0x5d55b7fe,0xd322491a,0x549de03c,0x745b3237,0xf7b5f602,0x1ab6e2b6,0x3632a3a2 +.long 0x0ef59f78,0x0d3bba89,0xc9e52b9a,0x0dfc6443,0x72631447,0x1dc79699,0xb3be20b1,0xef033917,0xb1383948,0x0c92735d,0xc0dd7d7d,0xc1fc29a2,0x403ed068,0x6485b697,0xaac93bdc,0x13bfaab3 +.long 0x0deeaf52,0x410dc6a9,0x4c641c15,0xb003fb02,0x5bc504c4,0x1384978c,0x864a6a77,0x37640487,0x222a77da,0x05991bc6,0x5e47eb11,0x62260a57,0xf21b432c,0xc7af6613,0xab4953e9,0x22f3acc9 +.long 0x8e41d155,0x52934922,0x3ac059ef,0x4d024568,0x4d884411,0xb0201755,0xa59a178f,0xce8055cf,0xf6204549,0xcd77d1af,0xc7066759,0xa0a00a3e,0x0272c229,0x471071ef,0xd3c4b6b0,0x009bcf6b +.long 0x22305177,0x2a2638a8,0x41645bbf,0xd51d59df,0xc0a7a3c0,0xa81142fd,0x4c7063ee,0xa17eca6d,0x60d9dcec,0x0bb887ed,0x20ad2455,0xd6d28e51,0xa67102ba,0xebed6308,0x8bffa408,0x042c3114 +.long 0x8aa68e30,0xfd099ac5,0x1483513e,0x7a6a3d7c,0xba2d8f0c,0xffcc6b75,0x1e78b954,0x54dacf96,0xa4a9af89,0xf645696f,0x06ac98ec,0x3a411940,0x22a67a20,0x41b8b3f6,0x99dec626,0x2d0b1e0f +.long 0x40be34e8,0x27c89192,0x91907f35,0xc7162b37,0xa956702b,0x90188ec1,0xdf93769c,0xca132f7d,0x0e2025b4,0x3ece44f9,0x0c62f14c,0x67aaec69,0x22e3cc11,0xad741418,0x7ff9a50e,0xcf9b75c3 +.long 0x4d348272,0x02fa2b16,0x9959d56d,0xbd99d61a,0x18762916,0xbc4f19db,0x49c1ac80,0xcc7cce50,0xd846bd83,0x4d59ebaa,0xa9202849,0x8775a9dc,0x6e1f4ca9,0x07ec4ae1,0xba893f11,0x27eb5875 +.long 0x662cc565,0x00284d51,0x0db4138d,0x82353a6b,0xaa32a594,0xd9c7aaaa,0xa5669c47,0xf5528b5e,0x2f23c5ff,0xf3220231,0x6affa3a1,0xe3e8147a,0x202ddda0,0xfb423d5c,0x6b871bd4,0x3d6414ac +.long 0xa51a168a,0x586f82e1,0x48ae5448,0xb712c671,0x76233eb8,0x9a2e4bd1,0x78811ca9,0x0188223a,0xf7c18de1,0x553c5e21,0xb27bb286,0x7682e451,0x0e51e929,0x3ed036b3,0xec9cb34f,0xf487211b +.long 0x0c24efc8,0x0d094277,0xbef737a4,0x0349fd04,0x514cdd28,0x6d1c9dd2,0x30da9521,0x29c135ff,0xf78b0b6f,0xea6e4508,0x678c143c,0x176f5dd2,0x4be21e65,0x08148418,0xe7df38c4,0x27f7525c +.long 0x748ab1a4,0x1fb70e09,0x5efe4433,0x9cba50a0,0x15f75af2,0x7846c7a6,0x5ee73ea8,0x2a7c2c57,0x3f0a449a,0x42e566a4,0xad90fc3d,0x45474c3b,0x8b61d057,0x7447be3d,0x3a4ec092,0x3e9d1cf1 +.long 0xf380a6e6,0x1603e453,0x9b1437c2,0x0b86e431,0xef29610a,0x7a4173f2,0xf03d57f7,0x8fa729a7,0x6c9c217e,0x3e186f6e,0x91919524,0xbe1d3079,0x153d4fb1,0x92a62a70,0xd68c2f71,0x32ed3e34 +.long 0x9eb1a8b7,0xd785027f,0xc5b22fe8,0xbc37eb77,0xb9d6a191,0x466b34f0,0x9a05f816,0x008a89af,0x7d42c10a,0x19b028fb,0x49b3f6b8,0x7fe8c92f,0xa5a0ade3,0x58907cc0,0x559d1a7c,0xb3154f51 +.long 0xd9790ed6,0x5066efb6,0xa6aa793b,0xa77a0cbc,0x223e042e,0x1a915f3c,0x69c5874b,0x1c5def04,0x73b6c1da,0x0e830078,0xfcd8557a,0x55cf85d2,0x0460f3b1,0x0f7c7c76,0x46e58063,0x87052acb +.long 0x907eae66,0x09212b80,0x4d721c89,0x3cb068e0,0xdd45ac1c,0xa87941ae,0x0daa0dbb,0xde8d5c0d,0xe3502e6e,0xda421fdc,0x4d89a084,0xc8944201,0xf0c24bfb,0x7307ba5e,0x20bde0ef,0xda212beb +.long 0xf82ce682,0xea2da24b,0x07f71fe4,0x058d3816,0x5ffad8de,0x35a02462,0xaadcefab,0xcd7b05dc,0x1d9f54ec,0xd442f8ed,0xb2d3b5ca,0x8be3d618,0xe06b2ce2,0xe2220ed0,0x1b0da4c0,0x82699a5f +.long 0x71c0c3a7,0x3ff106f5,0x0d34180c,0x8f580f5a,0x22d7d375,0x4ebb120e,0xe9513675,0x5e5782cc,0x99c82a70,0x2275580c,0x15ea8c4c,0xe8359fbf,0x7b415e70,0x53b48db8,0x100c6014,0xaacf2240 +.long 0xe4652f1d,0x9faaccf5,0xd56157b2,0xbd6fdd2a,0x6261ec50,0xa4f4fb1f,0x476bcd52,0x244e55ad,0x047d320b,0x881c9305,0x6181263f,0x1ca983d5,0x278fb8ee,0x354e9a44,0x396e4964,0xad2dbc0f +.long 0x9268b3de,0x723f3aa2,0xe6e0609a,0x0d1ca29a,0x6cf44252,0x794866aa,0x01af87ed,0x0b59f3e3,0x7f4a6c51,0xe234e5ff,0x61dc2f7e,0xa8768fd2,0x0a94d81f,0xdafc7332,0x06938ce1,0xd7f84282 +.long 0x0546063e,0xae0b3c0e,0x5d61abc6,0x7fbadcb2,0x369ac400,0xd5d7a2c9,0xae67d10c,0xa5978d09,0x4f85eaac,0x290f211e,0xfacac681,0xe61e2ad1,0x388384cd,0xae125225,0xccfde30f,0xa7fb68e9 +.long 0x3daed4c2,0x7a59b936,0x2606f789,0x80a9aa40,0xf6a6d90a,0xb40c1ea5,0x514d5885,0x948364d3,0x70985182,0x062ebc60,0x33310895,0xa6db5b0e,0xe329c2f5,0x64a12175,0x90ea237e,0xc5f25bd2 +.long 0x2d0a4c23,0x7915c524,0x6bb3cc52,0xeb5d26e4,0xc09e2c92,0x369a9116,0xcf182cf8,0x0c527f92,0x2aede0ac,0x9e591938,0x6cc34939,0xb2922208,0x99a34361,0x3c9d8962,0xc1905fe6,0x3c81836d +.long 0xa001ec5a,0x4bfeb57f,0xa0dc5dba,0xe993f5bb,0x724a1380,0x47884109,0x32fe9a04,0x8a0369ab,0x8c927db8,0xea068d60,0x94655741,0xbf5f37cf,0x04b6c7ea,0x47d402a2,0x6af259cb,0x4551c295 +.long 0xed77ee8b,0x698b71e7,0xf309d5c7,0xbddf7bd0,0x34e780ca,0x6201c22c,0x4c295ef4,0xab04f7d8,0x4313a8ce,0x1c947294,0x92ca4cfe,0xe532e4ac,0xd0a7a97a,0x89738f80,0xa580fd5b,0xec088c88 +.long 0x42ce9e51,0x612b1ecc,0xb25fdd2a,0x8f9840fd,0x01e7f839,0x3cda78c0,0xece05480,0x546b3d3a,0x80d30916,0x271719a9,0x584c20c4,0x45497107,0x5bc78608,0xaf8f9478,0x277e2a4c,0x28c7d484 +.long 0x88a2ffe4,0xfce01767,0x28e169a5,0xdc506a35,0x7af9c93a,0x0ea10861,0x03fa0e08,0x1ed24361,0xa3d694e7,0x96eaaa92,0xef50bc74,0xc0f43b4d,0x64114db4,0xce6aa58c,0x7c000fd4,0x8218e8ea +.long 0x185f8844,0xac815dfb,0x1557abfb,0xcd7e90cb,0xafbfecdf,0x23d16655,0x085cac4a,0x80f3271f,0xd0e62f47,0x7fc39aa7,0x460a48e5,0x88d519d1,0xd28f101e,0x59559ac4,0xca9ae816,0x7981d9e9 +.long 0x9ac38203,0x5c38652c,0x57657fe5,0x86eaf87f,0xe21f5416,0x568fc472,0xe7e597b5,0x2afff39c,0x256d4eab,0x3adbbb07,0x8285ab89,0x22598692,0x041caefe,0x35f8112a,0xa5064c8b,0x95df02e3 +.long 0xc7004bf3,0x4d63356e,0xdb83c7de,0x230a08f4,0x8709a7b7,0xca27b270,0xcb9abd2d,0x0d1c4cc4,0x7550fee8,0x8a0bc66e,0x9cf7247e,0x369cd4c7,0x92b5b7e7,0x75562e84,0x5802af7b,0x8fed0da0 +.long 0xe48fb889,0x6a7091c2,0x7b8a9d06,0x26882c13,0x1b82a0e2,0xa2498663,0x3518152d,0x844ed736,0xd86e27c7,0x282f476f,0x04afefdc,0xa04edaca,0x6119e34d,0x8b256ebc,0x0787d78b,0x56a413e9 +.long 0x5a74be50,0x82ee061d,0xdea16ff5,0xe41781c4,0x99bfc8a2,0xe0b0c81e,0x0b547e2d,0x624f4d69,0xbdcc9ae4,0x3a83545d,0x409b1e8e,0x2573dbb6,0xa6c93539,0x482960c4,0x5ae18798,0xf01059ad +.long 0x3112795f,0x715c9f97,0x984e6ee1,0xe8244437,0xecb66bcd,0x55cb4858,0xabaffbee,0x7c136735,0x5dbec38e,0x54661595,0x388ad153,0x51c0782c,0xc6e0952f,0x9ba4c53a,0x1b21dfa8,0x27e6782a +.long 0x4ed2dbc2,0x682f903d,0x7c3b2d83,0x0eba59c8,0x9c7e9335,0x8e9dc84d,0x0eb226d7,0x5f9b21b0,0xaf267bae,0xe33bd394,0xbe2e15ae,0xaa86cc25,0x6a8ec500,0x4f0bf67d,0xf9630658,0x5846aa44 +.long 0xe2c2bf15,0xfeb09740,0xa9e99704,0x627a2205,0xc2fbc565,0xec8d73d0,0xc20c8de8,0x223eed8f,0xa8363b49,0x1ee32583,0xc9c2b0a6,0x1a0b6cb9,0x90dbc85c,0x49f7c3d2,0x1ef4c1ac,0xa8dfbb97 +.long 0x65c7c2ab,0xafb34d4c,0xe2c5ea84,0x1d4610e7,0x973c4ab5,0x893f6d1b,0x945ba5c4,0xa3cdd7e9,0x064417ee,0x60514983,0xad6bdf2b,0x1459b23c,0x5cf726c3,0x23b2c341,0x32d6354a,0x3a829635 +.long 0xab192c18,0x294f901f,0x7030164f,0xec5fcbfe,0xe2246ba6,0xe2e2fcb7,0x221a1a0c,0x1e7c88b3,0xc92d88c5,0x72c7dd93,0x1106fb59,0x41c2148e,0xa0f60f14,0x547dd4f5,0x63960f31,0xed9b52b2 +.long 0xb0a5b358,0x6c8349eb,0x9e7e2ed6,0xb154c5c2,0xeda462db,0xcad5eccf,0x2de66b69,0xf2d6dbe4,0x8665e5b2,0x426aedf3,0x7b7f5723,0x488a8513,0x8bcbb386,0x15cc43b3,0xd791d879,0x27ad0af3 +.long 0x846e364f,0xc16c236e,0xdea50ca0,0x7f33527c,0x0926b86d,0xc4810775,0x0598e70c,0x6c2a3609,0xf024e924,0xa6755e52,0x9db4afca,0xe0fa07a4,0x66831790,0x15c3ce7d,0xa6cbb0d6,0x5b4ef350 +.long 0xb6205969,0x2c4aafc4,0xf6c7854f,0x42563f02,0x1d983b48,0x016aced5,0x99949755,0xfeb356d8,0xd1a39bd7,0x8c2a2c81,0xe6934ae9,0x8f44340f,0x447904da,0x148cf91c,0x0f51a926,0x7340185f +.long 0x7409ab46,0x2f8f00fb,0x80e289b2,0x057e78e6,0xa888e5d1,0x03e5022c,0x9dede4e2,0x3c87111a,0x7809460b,0x5b9b0e1c,0x71c9abc7,0xe751c852,0xc7cc1dc9,0x8b944e28,0x1d3cfa08,0x4f201ffa +.long 0x3e6721ce,0x02fc905c,0xd0b3674c,0xd52d70da,0x18810da4,0x5dc2e5ca,0x5c69dd99,0xa984b273,0x84de5ca4,0x63b92527,0xc852dec4,0x2f1c9872,0xc2e3de09,0x18b03593,0x9813dc2f,0x19d70b01 +.long 0xa6dc1d29,0x42806b2d,0xf871e144,0xd3030009,0xaaf49276,0xa1feb333,0xc70bc04b,0xb5583b9e,0x95695f20,0x1db0be78,0x89d012b5,0xfc841811,0x05f61643,0x6409f272,0xd5883128,0x40d34174 +.long 0x67419833,0xd79196f5,0x863b7b08,0x6059e252,0x1c56700c,0x84da1817,0xb28d3ec4,0x5758ee56,0x013b0ea6,0x7da2771d,0x54c5e9b9,0xfddf524b,0x24305d80,0x7df4faf8,0x3a97763f,0x58f5c1bf +.long 0x7c696042,0xa5af37f1,0x4a2538de,0xd4cba22c,0x9ea42600,0x211cb995,0x7b069889,0xcd105f41,0xddb81e74,0xb1e1cf19,0x5157b8ca,0x472f2d89,0xee9db885,0x086fb008,0x0f26d131,0x365cd570 +.long 0xa2be7053,0x284b02bb,0x7ab9a6d6,0xdcbbf7c6,0x20f7a530,0x4425559c,0x188767c8,0x961f2dfa,0x70dc80c4,0xe2fd9435,0xf0784120,0x104d6b63,0x53567122,0x7f592bc1,0xf688ad77,0xf6bc1246 +.long 0x0f15dde9,0x05214c05,0x0d5f2b82,0xa47a76a8,0x62e82b62,0xbb254d30,0x3ec955ee,0x11a05fe0,0x9d529b36,0x7eaff46e,0x8f9e3df6,0x55ab1301,0x99317698,0xc463e371,0xccda47ad,0xfd251438 +.long 0x23d695ea,0xca9c3547,0x16e589b5,0x48ce626e,0xb187d086,0x6b5b64c7,0xb2207948,0xd02e1794,0x7198111d,0x8b58e98f,0xdcf9c3cc,0x90ca6305,0xf34089b0,0x5691fe72,0xfc7c80ff,0x60941af1 +.long 0x22eb51e5,0xa09bc0a2,0xaa9cf09a,0xc0bb7244,0x80159f06,0x36a8077f,0xdddc560e,0x8b5c989e,0x512e1f43,0x19d2f316,0xad08ff62,0x02eac554,0x07d20b4e,0x012ab84c,0xd6d4e4e1,0x37d1e115 +.long 0xab7b19a8,0xb6443e1a,0xdef8cd45,0xf08d067e,0x685e03da,0x63adf3e9,0x4792b916,0xcf15a10e,0xb738a425,0xf44bcce5,0x9636b2fd,0xebe131d5,0x7850d605,0x94068841,0xb40d749d,0x09684eaa +.long 0x72ba075b,0x8c3c669c,0xba469015,0x89f78b55,0x3e9f8ba8,0x5706aade,0xb32d7ed7,0x6d8bd565,0x805f08d6,0x25f4e63b,0xc3bcc1b5,0x7f48200d,0xb025d847,0x4e801968,0x87cbe0a8,0x74afac04 +.long 0x7e63d690,0x43ed2c2b,0x0223cdb8,0xefb6bbf0,0x2884d3fe,0x4fec3cae,0xd75e25a4,0x065ecce6,0x69f79071,0x6c2294ce,0x044b8666,0x0d9a8e5f,0x17b69d8f,0x5009f238,0xc5dfdaf7,0x3c29f8fe +.long 0xebae68c4,0x9067528f,0x30c5ba21,0x5b385632,0x1fdd1aec,0x540df119,0xcfba4c78,0xcf37825b,0xbeb11454,0x77eff980,0x60c1b066,0x40a1a991,0xf889a1c7,0xe8018980,0x76c24be0,0xb9c52ae9 +.long 0x45650ef4,0x05fbbcce,0x8aa29ac7,0xae000f10,0x4f04c470,0x884b7172,0x19bb5c25,0x7cd4fde2,0xe8840869,0x6477b22a,0x5fbd0686,0xa8868859,0x1116dfba,0xf23cc02e,0xd87d7776,0x76cd563f +.long 0xa9d82abf,0xe2a37598,0xe6c170f5,0x5f188ccb,0x5066b087,0x81682200,0xc7155ada,0xda22c212,0xfbddb479,0x151e5d3a,0x6d715b99,0x4b606b84,0xf997cb2e,0x4a73b54b,0x3ecd8b66,0x9a1bfe43 +.long 0x2a67d48a,0x1c312809,0x031fa9e2,0xcd6a671e,0x0e43a34a,0xbec3312a,0x55ef47d3,0x1d935639,0x8fea73ea,0x5ea02489,0xa035afb2,0x8247b364,0x5265b54c,0xb58300a6,0x722c7148,0x3286662f +.long 0xb4ec4c20,0xb77fd76b,0x0f3fe3fd,0xf0a12fa7,0x41d8c7e8,0xf845bbf5,0x5ec10aa8,0xe4d969ca,0x43e232a3,0x4c0053b7,0x37f8a45a,0xdc7a3fac,0x20d81c8f,0x3c4261c5,0xb00eab00,0xfd4b3453 +.long 0xd36e3062,0x76d48f86,0xa143ff02,0x626c5277,0xaf76f42e,0x538174de,0x6407ceac,0x2267aa86,0x72e572d5,0xfad76351,0xba7330eb,0xab861af7,0x418d8657,0xa0a1c8c7,0x20289a52,0x988821cb +.long 0xcccc18ad,0x79732522,0xf1a6e027,0xaadf3f8d,0x17c2354d,0xf7382c93,0xd818b689,0x5ce1680c,0xd9ecbee9,0x359ebbfc,0x1cae62ac,0x4330689c,0xc51ac38a,0xb55ce5b4,0xfe238ee8,0x7921dfea +.long 0x271d1ca5,0x3972bef8,0xe8aabd18,0x3e423bc7,0x44a3e5e3,0x57b09f3f,0x7b444d66,0x5da886ae,0xa9964375,0x68206634,0x699cd0ff,0x356a2fa3,0xdba515e9,0xaf0faa24,0xb321d79a,0x536e1f5c +.long 0x5c04e4ea,0xd3b9913a,0xd6f11513,0xd549dcfe,0x79fd1d94,0xee227bf5,0xb43f2c67,0x9f35afee,0xf1314f53,0xd2638d24,0xcabcd822,0x62baf948,0x4ef48db0,0x5542de29,0xfc5f6bb2,0xb3eb6a04 +.long 0x1208e16a,0x23c110ae,0xf8363e24,0x1a4d15b5,0x164be00b,0x30716844,0xf6f4690d,0xa8e24824,0x90b170cf,0x548773a2,0x42f191f4,0xa1bef331,0x9247aa97,0x70f418d0,0x48be9147,0xea06028e +.long 0xdbfb894e,0xe13122f3,0xce274b18,0xbe9b79f6,0xca58aadf,0x85a49de5,0x11487351,0x24957758,0xbb939099,0x111def61,0x26d13694,0x1d6a974a,0xd3fc253b,0x4474b4ce,0x4c5db15e,0x3a1485e6 +.long 0x147c15b4,0xe79667b4,0x7bc61301,0xe34f553b,0x17094381,0x032b80f8,0x723eaa21,0x55d8bafd,0xf1c0e74e,0x5a987995,0xebba289c,0x5a9b292e,0xeb4c8251,0x413cd4b2,0xd162db0a,0x98b5d243 +.long 0x68342520,0xbb47bf66,0xbaa862d1,0x08d68949,0xe906abcd,0x11f349c7,0xed7bf00e,0x454ce985,0xb55b803b,0xacab5c9e,0x31e3c16d,0xb03468ea,0xd273bf12,0x5c24213d,0x71587887,0x211538eb +.long 0x731dea2d,0x198e4a2f,0x74ed7b2a,0xd5856cf2,0x13a664fe,0x86a632eb,0xbda41291,0x932cd909,0xc0c4ddc0,0x850e95d4,0x347fc2c9,0xc0f422f8,0x86076bcb,0xe68cbec4,0xcd6cd286,0xf9e7c0c0 +.long 0x0f5f27ca,0x65994ddb,0xa80d59ff,0xe85461fb,0x66601023,0xff05481a,0xfc9ebbfb,0xc665427a,0x7587fd52,0xb0571a69,0x8d49efce,0x935289f8,0xea420688,0x61becc60,0x13a786af,0xb22639d9 +.long 0x361ecf90,0x1a8e6220,0x25506463,0x001f23e0,0x0a5c2b79,0xe4ae9b5d,0xd8149db5,0xebc9cdad,0x934aa728,0xb33164a1,0xae9b60f3,0x750eb00e,0x9b9cfbfd,0x5a91615b,0xef45f7f6,0x97015cbf +.long 0xbf5151df,0xb462c4a5,0xb07118f2,0x21adcc41,0x043fa42c,0xd60c545b,0xe96be1ab,0xfc21aa54,0x4e51ea80,0xe84bc32f,0x259b5d8d,0x3dae45f0,0xc38f1b5e,0xbb73c7eb,0xe8ae617d,0xe405a74a +.long 0x9f1c56bd,0xbb1ae9c6,0x49f196a4,0x8c176b98,0x6875092b,0xc448f311,0x9f976033,0xb5afe3de,0x145813e5,0xa8dafd49,0xe2b34226,0x687fc4d9,0x4c7ff57f,0xf2dfc92d,0x401f1b46,0x004e3fc1 +.long 0x1430c9ab,0x5afddab6,0x2238e997,0x0bdd41d3,0x418042ae,0xf0947430,0xcdddc4cb,0x71f9adda,0xc52dd907,0x7090c016,0x29e2047f,0xd9bdf44d,0x1b1011a6,0xe6f1fe80,0xd9acdc78,0xb63accbc +.long 0x1272a95b,0xcfc7e235,0xa6276ac8,0x0c667717,0xe2d7eef7,0x3c0d3709,0x9a685b3e,0x5add2b06,0x14ea5d65,0x363ad32d,0x8d7dd506,0xf8e01f06,0x75b4aac6,0xc9ea2213,0x0d353466,0xed2a2bf9 +.long 0xe9d3a7c3,0x439d79b5,0x81b7f34b,0x8e0ee5a6,0x1dc4ba75,0xcf3dacf5,0xeb3310c7,0x1d3d1773,0x7747ae83,0xa8e67112,0x197d6b40,0x31f43160,0xcd961400,0x0521ccee,0xf6535768,0x67246f11 +.long 0xef0c3133,0x702fcc5a,0x7e16693b,0x247cc45d,0xc729b749,0xfd484e49,0xb218320f,0x522cef7d,0x59ab93b3,0xe56ef405,0x9f181071,0x225fba11,0x15330ed0,0x33bd6595,0x1ddb32f7,0xc4be69d5 +.long 0x0448087c,0x264c7668,0x71432dae,0xac30903f,0x00f9bf47,0x3851b266,0x6cdd6d03,0x400ed311,0xf8fd2424,0x045e79fe,0xfa6da98b,0xfdfd974a,0x0c1e673a,0x45c9f641,0x5b2c5168,0x76f2e733 +.long 0x2a601753,0x1adaebb5,0xc57c2d49,0xb286514c,0x1e0bfd24,0xd8769670,0x04478922,0x950c547e,0xe5d32bfe,0xd1d41969,0x750d6c3e,0x30bc1472,0xe0e27f3a,0x8f3679fe,0xa4a6ee0c,0x8f64a7dc +.long 0x633dfb1f,0x2fe59937,0x977f2547,0xea82c395,0x661ea646,0xcbdfdf1a,0xb9085451,0xc7ccc591,0x81761e13,0x82177962,0x9196885c,0xda57596f,0x28ffbd70,0xbc17e849,0x2671d36f,0x1e6e0a41 +.long 0x4152fcf5,0x61ae872c,0x9e77e754,0x441c87b0,0xa34dff09,0xd0799dd5,0x88a6b171,0x766b4e44,0x11f1c792,0xdc06a512,0x4be35c3e,0xea02ae93,0xe90c469e,0xe5ca4d6d,0x56e4ff5c,0x4df4368e +.long 0x4baef62e,0x7817acab,0xa85b91e8,0x9f5a2202,0x6ce57610,0x9666ebe6,0xf73bfe03,0x32ad31f3,0x25bcf4d6,0x628330a4,0x515056e6,0xea950593,0xe1332156,0x59811c89,0x8c11b2d7,0xc89cf1fe +.long 0x04e60cc0,0x75b63913,0x4625d375,0xce811e8d,0x2d26e562,0x030e43fc,0x608d36a0,0xfbb30b4b,0x48528118,0x634ff82c,0xcd285911,0x7c6fe085,0x99358f28,0x7f2830c0,0x665e6c09,0x2e60a95e +.long 0x9b785dbf,0x08407d3d,0xa759bce7,0x530889ab,0x52f61239,0xf228e0e6,0x6879be3c,0x2b6d1461,0x51a7bbf7,0xe6902c04,0x76f24a64,0x30ad99f0,0x98bc6da0,0x66d9317a,0xcb596ac0,0xf4f877f3 +.long 0x4c44f119,0xb05ff62d,0xe9b77416,0x4555f536,0x8caed63b,0xc7c0d059,0xc358b2a9,0x0cd2b7ce,0x46945fa3,0x3f33287b,0xd67c8791,0xf8785b20,0x9637bd08,0xc54a7a61,0x18be79d7,0x54d4598c +.long 0xc46d7ce1,0x889e5acb,0x8b085877,0x9a515bb7,0x0b7a5050,0xfac1a03d,0xf2926035,0x7d3e738a,0x2a6cb0eb,0x861cc2ce,0x8f7adc79,0x6f2e2955,0x33016376,0x61c4d451,0x5ad59090,0xd9fd2c80 +.long 0xb2b836a1,0xe5a83738,0x7c0d6622,0x855b41a0,0x7cc19af1,0x186fe317,0xfdd99acb,0x6465c1ff,0x6974b99e,0x46e5c23f,0xa2717cbe,0x75a7cf8b,0x062be658,0x4d2ebc3f,0x5f209c98,0x094b4447 +.long 0xb940cb5a,0x4af285ed,0x7cc82f10,0x6706d792,0x030526fa,0xc8c8776c,0xa0da9140,0xfa8e6f76,0x591ee4f0,0x77ea9d34,0x40274166,0x5f46e337,0xea671457,0x1bdf98bb,0x862a1fe2,0xd7c08b46 +.long 0x1c08ad63,0x46cc303c,0x4c845e7b,0x99543440,0x48f36bf7,0x1b8fbdb5,0x8c8273a7,0x5b82c392,0x928435d5,0x08f712c4,0x79330380,0x071cf0f1,0xa8da054a,0xc74c2d24,0x43c46b5c,0xcb0e7201 +.long 0xc0b7eff3,0x0ad7337a,0xc5e48b3c,0x8552225e,0x73f13a5f,0xe6f78b0c,0x82349cbe,0x5e70062e,0xe7073969,0x6b8d5048,0xc33cb3d2,0x392d2a29,0x4ecaa20f,0xee4f727c,0x2ccde707,0xa068c99e +.long 0xb87a2913,0xfcd5651f,0x3cc252f0,0xea3e3c15,0x3b6cd3e4,0x777d92df,0xc5a732e7,0x7a414143,0xa71ff493,0xa895951a,0xbbd37cf6,0xfe980c92,0xdecfeeff,0x45bd5e64,0xa44c43e9,0x910dc2a9 +.long 0xcca9f54d,0xcb403f26,0x9303f6db,0x928bbdfb,0xa9eee67c,0x3c37951e,0xf79961c3,0x3bd61a52,0x395c9a79,0x09a238e6,0x61eb352d,0x6940ca2d,0xc1875631,0x7d1e5c5e,0x1e1b20d1,0x1e19742c +.long 0x23fc2e6e,0x4633d908,0x08959149,0xa76e29a9,0x84ed7da5,0x61069d9c,0x5dbcad51,0x0baa11cf,0x961849da,0xd01eec64,0xaf3d8c28,0x93b75f1f,0x1ca2ee44,0x57bc4f9f,0x00e00558,0x5a26322d +.long 0x61a023ef,0x1888d658,0xb9e5246e,0x1d72aab4,0xe5563ec0,0xa9a26348,0xc3439a43,0xa0971963,0xadb9b5b7,0x567dd54b,0xc45a524b,0x73fac1a1,0xfe38e608,0x8fe97ef7,0x3f384f48,0x608748d2 +.long 0xc486094f,0xb0571794,0x8bf3a8d6,0x869254a3,0x310b0e25,0x148a8dd1,0x9aa3f7d8,0x99ab9f3f,0x6706c02e,0x0927c68a,0x69790e6c,0x22b5e76c,0x6c71376c,0x6c325260,0x09ef6657,0x53a57690 +.long 0xedffcf3a,0x8d63f852,0x3c0a6f55,0xb4d2ed04,0x12519b9e,0xdb3aa8de,0x1e0a569a,0x5d38e9c4,0x303747e2,0x871528bf,0xf5b5c18d,0xa208e77c,0xca6bf923,0x9d129c88,0xbf02839f,0xbcbf197f +.long 0x27323194,0x9b9bf030,0x339ca59d,0x3b055a8b,0x0f669520,0xb46b2312,0x497e5f24,0x19789f1f,0xaaf01801,0x9c499468,0x8b69d59c,0x72ee1190,0xacf4c079,0x8bd39595,0x8e0cd048,0x3ee11ece +.long 0x1ed66f18,0xebde86ec,0xd61fce43,0x225d906b,0xe8bed74d,0x5cab07d6,0x27855ab7,0x16e4617f,0xb2fbc3dd,0x6568aadd,0x8aeddf5b,0xedb5484f,0x6dcf2fad,0x878f20e8,0x615f5699,0x3516497c +.long 0xfa181e69,0xef0a3fec,0x30d69a98,0x9ea02f81,0x66eab95d,0xb2e9cf8e,0x24720021,0x520f2beb,0x1df84361,0x621c540a,0x71fa6d5d,0x12037721,0x0ff5f6ff,0x6e3c7b51,0xabb2bef3,0x817a069b +.long 0xb294cda6,0x83572fb6,0xb9039f34,0x6ce9bf75,0x095cbb21,0x20e012f0,0xd063f0da,0xa0aecc1b,0xf02909e5,0x57c21c3a,0x48ce9cdc,0xc7d59ecf,0x8ae336f8,0x2732b844,0x3f4f85f4,0x056e3723 +.long 0x89e800ca,0x8a10b531,0x145208fd,0x50fe0c17,0xb714ba37,0x9e43c0d3,0x34189acc,0x427d200e,0xe616e2c0,0x05dee24f,0xee1854c1,0x9c25f4c8,0x8f342a73,0x4d3222a5,0xa027c952,0x0807804f +.long 0x4f0d56f3,0xc222653a,0xca28b805,0x961e4047,0x4a73434b,0x2c03f8b0,0xab712a19,0x4c966787,0x864fee42,0xcc196c42,0x5b0ece5c,0xc1be93da,0xc131c159,0xa87d9f22,0xdce45655,0x2bb6d593 +.long 0xb809b7ce,0x22c49ec9,0xe2c72c2c,0x8a41486b,0xfea0bf36,0x813b9420,0xa66dac69,0xb3d36ee9,0x328cc987,0x6fddc08a,0x3a326461,0x0a3bcd2c,0xd810dbba,0x7103c49d,0x4b78a4c4,0xf9d81a28 +.long 0xe4d55941,0x3de865ad,0x30384087,0xdedafa5e,0x4ef18b9b,0x6f414abb,0xfaee5268,0x9ee9ea42,0x37a55a4a,0x260faa16,0x015f93b9,0xeb19a514,0x9e9c3598,0x51d7ebd2,0x1932178e,0x523fc56d +.long 0xb98fe684,0x501d070c,0x124a1458,0xd60fbe9a,0x92bc6b3f,0xa45761c8,0xfe6f27cb,0xf5384858,0xb59e763b,0x4b0271f7,0x5b5a8e5e,0x3d4606a9,0x05a48292,0x1eda5d9b,0xe6fec446,0xda7731d0 +.long 0x90d45871,0xa3e33693,0x06166d8d,0xe9764040,0x89a90403,0xb5c33682,0x72f1d637,0x4bd17983,0xd5d2c53a,0xa616679e,0xfdcf3b87,0x5ec4bcd8,0xb66a694e,0xae6d7613,0xe3fc27e5,0x7460fc76 +.long 0x95caabee,0x70469b82,0x889501e3,0xde024ca5,0x076ed265,0x6bdadc06,0x5a0ef8b2,0x0cb1236b,0x0972ebf9,0x4065ddbf,0x22aca432,0xf1dd3875,0x744aff76,0xa88b97cf,0xfe8e3d24,0xd1359afd +.long 0x91502cf3,0x52a3ba2b,0x084db75d,0x2c3832a8,0xde30b1c9,0x04a12ddd,0xe31fd60c,0x7802eabc,0xa37fddab,0x33707327,0xfaafa973,0x65d6f2ab,0x11e6f91a,0x3525c5b8,0x5f46530b,0x76aeb0c9 +.long 0x2f93a675,0xe8815ff6,0x05f48679,0xa6ec9684,0x358ae884,0x6dcbb556,0xe19e3873,0x0af61472,0xa5f696be,0x72334372,0x6f22fb70,0xc65e57ea,0x946cea90,0x268da30c,0x65681b2a,0x136a8a87 +.long 0x0f9f44d4,0xad5e81dc,0x2c46585a,0xf09a6960,0xc447d1b1,0xd1649164,0x879dc8b1,0x3b4b36c8,0x3b6b234c,0x20d4177b,0x1730d9d0,0x096a2505,0xef80531d,0x0611b9b8,0x64bb495d,0xba904b3b +.long 0x93a3147a,0x1192d9d4,0x9a565545,0x9f30a5dc,0x6ef07212,0x90b1f9cb,0x0d87fc13,0x29958546,0xc17db9ba,0xd3323eff,0xcb1644a8,0xcb18548c,0x4f49ffbc,0x18a306d4,0x4c2e8684,0x28d658f1 +.long 0xa99f8c71,0x44ba60cd,0x4bf742ff,0x67b7abdb,0x914b3f99,0x66310f9c,0xf412c161,0xae430a32,0x88ace52f,0x1e6776d3,0x52d7067d,0x4bc0fa24,0x8f07cd1b,0x03c286aa,0xa985b2c1,0x4cb8f38c +.long 0x8c3bff36,0x83ccbe80,0x5263e575,0x005a0bd2,0x259bdcd1,0x460d7dda,0xfa5cab6b,0x4a1c5642,0x9fe4fc88,0x2b7bdbb9,0xcc97bbb5,0x09418e28,0xa12321ae,0xd8274fb4,0x5c87b64e,0xb137007d +.long 0xc63c4962,0x80531fe1,0x981fdb25,0x50541e89,0xfd4c2b6b,0xdc1291a1,0xa6df4fca,0xc0693a17,0x0117f203,0xb2c4604e,0x0a99b8d0,0x245f1963,0xc6212c44,0xaedc20aa,0x520f52a8,0xb1ed4e56 +.long 0xf8547be3,0xfe48f575,0xa9e45f98,0x0a7033cd,0x18c50100,0x4b45d3a9,0xa61d41da,0xb2a6cd6a,0x57933c6b,0x60bbb4f5,0x2b0d7ffc,0xa7538ebd,0x8cd626b6,0x9ea3ab8d,0x3601625a,0x8273a484 +.long 0x0168e508,0x88859845,0x99a94abd,0x8cbc9bb2,0xfab0a671,0x713ac792,0x6c9ebffc,0xa3995b19,0x1239e152,0xe711668e,0xbbb8dff4,0x56892558,0xdbf17963,0x8bfc7dab,0xb3de1253,0x5b59fe5a +.long 0x34a9f7ae,0x7e3320eb,0xd751efe4,0xe5e8cf72,0xd9be2f37,0x7ea003bc,0xb6c08ef7,0xc0f551a0,0x038f6725,0x56606268,0x6d92d3b6,0x1dd38e35,0xc3cbd686,0x07dfce7c,0x651c5da8,0x4e549e04 +.long 0x08b19340,0x4058f93b,0xcac6d89d,0xc2fae6f4,0x8f159cc7,0x4bad8a8c,0xcb0b601c,0x0ddba4b3,0x1dd95f8c,0xda4fc7b5,0xcea5c255,0x1d163cd7,0x274a8c4c,0x30707d06,0x2802e9ce,0x79d9e008 +.long 0xe6ddd505,0x02a29ebf,0xb50bed1a,0x37064e74,0xa7327d57,0x3f6bae65,0xf83920bc,0x3846f5f1,0x60df1b9b,0x87c37491,0x2d1da29f,0x4cfb2895,0x4ed1743c,0x10a478ca,0x3edd47c6,0x390c6030 +.long 0x8c0a78de,0x8f3e5312,0x1e85df70,0xccd02bda,0xa61b6582,0xd6c75c03,0xfc0eebd1,0x0762921c,0xd85010c0,0xd34d0823,0x0044cf1f,0xd73aaacb,0xa3b5e78a,0xfb4159bb,0xe5826f3f,0x2287c7f7 +.long 0x580b1a01,0x4aeaf742,0x60423b79,0xf080415d,0xa7dea144,0xe12622cd,0x59d62472,0x49ea4996,0x571f3913,0xb42991ef,0xf5b25a8a,0x0610f214,0x30b79e8f,0x47adc585,0x07a065a2,0xf90e3df6 +.long 0x43e2e034,0x5d0a5deb,0x444024aa,0x53fb5a34,0x6b0c9f7f,0xa8628c68,0xac563656,0x9c69c29c,0xbace47b6,0x5a231feb,0x9ea5a2ec,0xbdce0289,0x9463853e,0x05da1fac,0x509e78aa,0x96812c52 +.long 0x57151692,0xd3fb5771,0xd98e1c44,0xeb2721f8,0x32399be1,0xc0506087,0xd979d8b8,0xda5a5511,0xc6f56780,0x737ed55d,0x0dc7a7f4,0xe20d3004,0xf5941a03,0x02ce7301,0xed30f83a,0x91ef5215 +.long 0x4092d85f,0x28727fc1,0x5c49e41a,0x72d223c6,0xba6a4d81,0xa7cf30a2,0xb030d87d,0x7c086209,0xfc588b09,0x04844c7d,0x5874bbb0,0x728cd499,0xe84c0495,0xcc1281ee,0xec31958f,0x0769b5ba +.long 0xf99c2471,0x665c228b,0x191eb110,0xf2d8a11b,0xd36d7024,0x4594f494,0xcdcb25a1,0x482ded8b,0xdadd4885,0xc958a9d8,0xf1d2b547,0x7004477e,0x2a0af550,0x0a45f6ef,0x2f8d6351,0x4fc739d6 +.long 0x786f08a9,0x75cdaf27,0x42c2737f,0x8700bb26,0x1c4e2670,0x855a7141,0x15076fef,0x810188c1,0xabcd3297,0xc251d0c9,0xf48108eb,0xae4c8967,0x18ceed30,0xbd146de7,0xc986bced,0xf9d4f07a +.long 0x83fa1e08,0x5ad98ed5,0xbeabd1fb,0x7780d33e,0x903b1196,0xe330513c,0xa47bc8c4,0xba11de9e,0x02c2d064,0x684334da,0xa48de23b,0x7ecf360d,0x0a9089d8,0x57a1b474,0xff36734c,0xf28fa439 +.long 0xea4570b3,0xf2a482cb,0xa5ebcee9,0xee65d68b,0xb9694cd5,0x988d0036,0x37885d32,0x53edd0e9,0xbeb9bc6d,0xe37e3307,0x9f5c6768,0xe9abb907,0x51f2160f,0x4396ccd5,0x47336da6,0x2500888c +.long 0x926fce43,0x383f9ed9,0x04da2930,0x809dd1c7,0x8a4cb227,0x30f6f596,0x73a56b38,0x0d700c7f,0xab64a065,0x1825ea33,0x1338df80,0xaab9b735,0x9b63f57f,0x1516100d,0x27a6a634,0x2574395a +.long 0x700a1acd,0xb5560fb6,0xfd999681,0xe823fd73,0x6cb4e1ba,0xda915d1f,0x6ebe00a3,0x0d030118,0x89fca8cd,0x744fb0c9,0xf9da0e0b,0x970d01db,0x7931d76f,0x0ad8c564,0xf659b96a,0xb15737bf +.long 0xa8b484e7,0xdc9933e8,0x7a26dec7,0xb2fdbdf9,0x9f1f0136,0x2349e9a4,0x70fddddb,0x7860368e,0xf9ad3e18,0xd93d2c1c,0x689f4e79,0x6d6c5f17,0xb24ff1b6,0x7a544d91,0xfe16cd8c,0x3e12a5eb +.long 0xa56b872f,0x543574e9,0xfcf68ea2,0xa1ad550c,0x3f560ef7,0x689e37d2,0xc9d47a8b,0x8c54b9ca,0x088ac342,0x46d40a4a,0x1576c6d0,0xec450c7c,0x1f9689e9,0xb589e31c,0xb8781718,0xdacf2602 +.long 0xc8cb6b42,0xa89237c6,0xb96ef381,0x1326fc93,0xb5f07825,0x55d56c6d,0x7449e22d,0xacba2eea,0x633c3000,0x74e0887a,0xd7cbcf71,0xcb6cd172,0xc36cf1be,0x309e81de,0x60ae399b,0x07a18a6d +.long 0x9edce57e,0xb36c2679,0xdf001d41,0x52b892f4,0x16a1f2c6,0xd884ae5d,0xefcc370a,0x9b329424,0xbd2e21df,0x3120daf2,0x02470a99,0x55298d2d,0xa05db32e,0x0b78af6c,0x601f5636,0x5c76a331 +.long 0xf8a4f29c,0xaae861ff,0xd68f8d49,0x70dc9240,0x81b1321c,0x960e649f,0x8792e4ce,0x3d2c801b,0x42521876,0xf479f772,0x416c79b1,0x0bed93bc,0x263e5bc9,0xa67fbc05,0x521db049,0x01e8e630 +.long 0xc6f3431e,0x76f26738,0xe3267541,0xe609cb02,0x818c877c,0xb10cff2d,0x786a13cb,0x1f0e75ce,0x1158544d,0xf4fdca64,0x6cb71ed0,0x5d777e89,0xa9aa4755,0x3c233737,0xe527ab40,0x7b453192 +.long 0x39f05ffe,0xdb59f688,0x6d82574e,0x8f4f4be0,0xee292d1b,0xcce3450c,0x61ccd086,0xaa448a12,0xf7914967,0xabce91b3,0x1908a5ed,0x4537f09b,0xf51042e7,0xa812421e,0xec0b3a34,0xfaf5cebc +.long 0x4ca6b39a,0x730ffd87,0x02efd342,0x70fb72ed,0xd75c8edb,0xeb4735f9,0xc278aa51,0xc11f2157,0xbf3bfebf,0xc459f635,0x6bd9601f,0x3a1ff0b4,0xc420cb73,0xc9d12823,0x3c2915a3,0x3e9af3e2 +.long 0xb41c3440,0xe0c82c72,0xe3039a5f,0x175239e5,0x558795a3,0xe1084b8a,0xd01e5c60,0x328d0a1d,0xd3788a04,0x0a495f2e,0x66c11a9f,0x25d8ff16,0x9ed692d6,0xf5155f05,0x4f425fe4,0x954fa107 +.long 0xe98aaa99,0xd16aabf2,0x96b0f88a,0x90cd8ba0,0xc154026a,0x957f4782,0x52af56d2,0x54ee0734,0x45b4147a,0xbcf89e54,0x9a52816c,0x3d102f21,0x39b62e77,0x6808517e,0x69169ad8,0x92e25421 +.long 0xbb608558,0xd721d871,0xf6d4ff9b,0x60e4ebae,0x41f2763e,0x0ba10819,0x51ee3247,0xca2e45be,0x2bfd7a5f,0x66d172ec,0x74d0b12d,0x528a8f2f,0xdabe70dc,0xe17f1e38,0x9f93983c,0x1d5d7316 +.long 0xdf423e31,0x51b2184a,0xaedb1a10,0xcb417291,0x625bcab9,0x2054ca93,0xa98998f0,0x54396860,0xa54ae57e,0x4e53f6c4,0xee648e9d,0x0ffeb590,0x6afaf6bc,0xfbbdaadc,0xaa3bfb8a,0xf88ae796 +.long 0xd2359ed9,0x209f1d44,0xf3544ce2,0xac68dd03,0xfd51e569,0xf378da47,0x2cc80097,0xe1abd860,0x343b6e3a,0x23ca18d9,0xb40a1bae,0x480797e8,0x533f3e67,0xd1f0c717,0x06e6cdfc,0x44896970 +.long 0x52a82e8d,0x8ca21055,0x78460cdc,0xb2caf785,0xe9037178,0x4c1b7b62,0xdb514b58,0xefc09d2c,0x9113be5c,0x5f2df9ee,0xb3f9271c,0x2fbda78f,0x8f83fc54,0xe09a81af,0x8afb5141,0x06b13866 +.long 0x43e3865d,0x38f6480f,0x1ddf47d9,0x72dd77a8,0x4c205ff7,0xf2a8e971,0x9d088ad8,0x46d449d8,0x185d706f,0x926619ea,0xc7dd7f62,0xe47e02eb,0x8cbc2031,0xe7f120a7,0x998d4ac9,0xc18bef00 +.long 0x6bdf22da,0x18f37a9c,0x90dc82df,0xefbc432f,0x5d703651,0xc52cef8e,0xd99881a5,0x82887ba0,0xb920ec1d,0x7cec9dda,0xec3e8d3b,0xd0d7e8c3,0x4ca88747,0x445bc395,0x9fd53535,0xedeaa2e0 +.long 0x6cc87475,0x461b1d93,0x6d2383bd,0xd92a52e2,0xd7903546,0xfabccb59,0x3d14b112,0x6111a761,0xb3d5f612,0x0ae584fe,0x60e828ec,0x5ea69b8d,0x54087030,0x6c078985,0xac4821fe,0x649cab04 +.long 0x8bdce214,0x25ecedcf,0x86af7361,0xb5622f72,0x7038b9e2,0x0e1227aa,0xac20fa77,0xd0efb273,0x79df975b,0x817ff88b,0x1999503e,0x856bf286,0x5038ec46,0xb4d5351f,0xfc42af6e,0x740a52c5 +.long 0x2cbb1a3f,0x2e38bb15,0x17a83429,0xc3eb99fe,0xdd66bb74,0xca4fcbf1,0xcde5e8fc,0x880784d6,0xb4e7a0be,0xddc84c1c,0xbd15a72f,0x8780510d,0x81ec30e1,0x44bcf1af,0x0a61073e,0x141e50a8 +.long 0x47be87ae,0x0d955718,0xf76a4372,0x68a61417,0xc607c3d3,0xf57e7e87,0x5252f332,0x043afaf8,0x1552a4d2,0xcc14e121,0xbb4d4ab4,0xb6dee692,0xa03816a4,0xb6ab74c8,0x6f394a29,0x84001ae4 +.long 0xd795fb45,0x5bed8344,0xb79f55a5,0x57326e7d,0x4accdffc,0xc9533ce0,0x3993fa04,0x53473caf,0xa13df4c8,0x7906eb93,0x97cbe46f,0xa73e51f6,0x0ae4ccf8,0xd1ab3ae1,0x8a5b3dbc,0x25614508 +.long 0x11a71b27,0x61eff962,0x6bb7fa39,0xdf71412b,0x2bd7f3ef,0xb31ba6b8,0x69180d29,0xb0b9c415,0x014cdde5,0xeec14552,0x227b4bbb,0x702c624b,0xd3e988f3,0x2b15e8c2,0xa4f7fd04,0xee3bcc6d +.long 0x42ac6c85,0x9d00822a,0x1df9f2b7,0x2db0cea6,0x42de1e58,0xd7cad2ab,0x2d6fbb61,0x346ed526,0x1a2faf09,0xb3962995,0x7c25612e,0x2fa8a580,0x7cf56490,0x30ae04da,0x0eea3961,0x75662908 +.long 0x3d080847,0x3609f5c5,0x5241d4f6,0xcb081d39,0x77961a63,0xb4fb3810,0x2abb66fc,0xc20c5984,0xf902f245,0x3d40aa7c,0x4e536b1e,0x9cb12736,0x99b3134f,0x5eda24da,0x5cd011af,0xafbd9c69 +.long 0xc7088c7d,0x9a16e30a,0x3207389f,0x5ab65710,0xe7407a53,0x1b09547f,0x4fdc6eab,0x2322f9d7,0x7430de4d,0xc0f2f22d,0xe68ca9a9,0x19382696,0x918e5868,0x17f1eff1,0x586f4204,0xe3b5b635 +.long 0x3fbc4341,0x146ef980,0x5b5eed4e,0x359f2c80,0x7482e41d,0x9f35744e,0xf3b224c2,0x9a9ac3ec,0x91fc50ae,0x9161a6fe,0xc613fa7c,0x89ccc66b,0xc732f15a,0x89268b14,0xb467ed03,0x7cd6f4e2 +.long 0xce56b40e,0xfbf79869,0xc02dde98,0xf93e094c,0xedee2cd7,0xefe0c3a8,0xb268fd42,0x90f3ffc0,0x08241aed,0x81a7fd56,0x00b1afe8,0x95ab7ad8,0x3e310d52,0x40127056,0x09d9fc43,0xd3ffdeb1 +.long 0xd11a8594,0xc8f85c91,0x31cf6db8,0x2e74d258,0x02b5dfd0,0x829c7ca3,0x69143c86,0xe389cfbe,0x941768d8,0xd01b6405,0x03bf825d,0x45103995,0x56cd17e2,0xcc4ee166,0xba037e79,0xbea3c283 +.long 0xd9a47520,0x4e1ac06e,0xaf852404,0xfbfe18aa,0x8087648a,0x5615f8e2,0xb9d150d9,0x7301e47e,0xb299b977,0x79f9f9dd,0xa5b78314,0x76697a7b,0x7d7c90e7,0x10d67468,0x937210b5,0x7afffe03 +.long 0x28c22cee,0x5aef3e4b,0x09fd55ae,0xefb0ecd8,0x0d2a5d6a,0x4cea7132,0x01db6357,0x9cfb5fa1,0xf36e1ac5,0x395e0b57,0x36cafb7d,0x008fa9ad,0x5308c4db,0x8f6cdf70,0x95ed2477,0x51527a37 +.long 0x5bd21311,0xba0dee30,0x909c90d7,0x6ed41b22,0x7c8696d3,0xc5f6b758,0x3ce83a80,0x0db8eaa8,0xb24b4b6f,0xd297fe37,0x522d1f0d,0xfe58afe8,0x8c98dbd9,0x97358736,0x9454a527,0x6bc226ca +.long 0xce53c2d0,0xa12b384e,0x5e4606da,0x779d897d,0x73ec12b0,0xa53e47b0,0x5756f1ad,0x462dbbba,0xcafe37b6,0x69fe09f2,0xecce2e17,0x273d1ebf,0x3cf607fd,0x8ac1d538,0x12e10c25,0x8035f7ff +.long 0x7e6c5520,0x854d34c7,0xdcb9ea58,0xc27df9ef,0xd686666d,0x405f2369,0x0417aa85,0x29d1febf,0x93470afe,0x9846819e,0xe2a27f9e,0x3e6a9669,0xe31e6504,0x24d008a2,0x9cb7680a,0xdba7cecf +.long 0x338d6e43,0xecaff541,0x4541d5cc,0x56f7dd73,0x96bc88ca,0xb5d426de,0x9ed3a2c3,0x48d94f6b,0x2ef8279c,0x6354a3bb,0x0b1867f2,0xd575465b,0x95225151,0xef99b0ff,0xf94500d8,0xf3e19d88 +.long 0xe32dd620,0x92a83268,0x627849a2,0x913ec99f,0x2c378882,0xedd8fdfa,0xee6f8cfe,0xaf96f33e,0xdc3fa8a5,0xc06737e5,0xb0b03a1d,0x236bb531,0x89f037b0,0x33e59f29,0xd9a12a53,0x13f9b5a7 +.long 0x51efb310,0x0d0df6ce,0x958df5be,0xcb5b2eb4,0x36158e59,0xd6459e29,0x1466e336,0x82aae2b9,0x411aa636,0xfb658a39,0xd4c0a933,0x7152ecc5,0x49f026b7,0xf10c758a,0xcb09311f,0xf4837f97 +.long 0xc753c45f,0xddfb02c4,0xf9c840fe,0x18ca81b6,0xb0f8a3e6,0x846fd09a,0xe7733dbc,0xb1162add,0x236e3ab6,0x7070ad20,0xb2a56326,0xf88cdaf5,0x997cbc7a,0x05fc8719,0x4b665272,0x442cd452 +.long 0xb71698f5,0x7807f364,0x9f7b605e,0x6ba418d2,0xa03b2cbb,0xfd20b00f,0xda54386f,0x883eca37,0xf3437f24,0xff0be43f,0xa48bb33c,0xe910b432,0x329df765,0x4963a128,0xbe2fe6f7,0xac1dd556 +.long 0x24a0a3fc,0x557610f9,0xe881c3f9,0x38e17bf4,0xed0dac99,0x6ba84faf,0x59eeb918,0xd4a222c3,0x13f542b6,0xc79c1dbe,0xe425d457,0x1fc65e0d,0x1debb779,0xeffb754f,0x9e08af60,0x638d8fd0 +.long 0x626332d5,0x994f523a,0x5561bb44,0x7bc38833,0x3d845ea2,0x005ed4b0,0xc2a1f08a,0xd39d3ee1,0xe7676b0d,0x6561fdd3,0xfb706017,0x620e35ff,0xf264f9a8,0x36ce424f,0xda2681f7,0xc4c3419f +.long 0x69beb6e8,0xfb6afd2f,0x6d700d03,0x3a50b993,0x0c83a14f,0xc840b2ad,0x54085bef,0x573207be,0x09fe7e5b,0x5af882e3,0x3b40a7e1,0x957678a4,0x543056e2,0x172d4bdd,0x0df13c0a,0x9c1b26b4 +.long 0xf405ff06,0x1c30861c,0x486e828b,0xebac86bd,0x636933fc,0xe791a971,0x7aeee947,0x50e7c2be,0xfa90d767,0xc3d4a095,0xe670ab7b,0xae60eb7b,0x397b056d,0x17633a64,0x105012aa,0x93a21f33 +.long 0xabb88643,0x663c370b,0x22e21599,0x91df36d7,0x8b761671,0x183ba835,0x728f3bf1,0x381eea1d,0x39966e6c,0xb9b2f1ba,0xe7295492,0x7c464a28,0x09b26b7f,0x0fd5f70a,0xfbe009df,0xa9aba1f9 +.long 0x369b87ad,0x857c1f22,0x32fca556,0x3c00e5d9,0x90b06466,0x1ad74cab,0x550faaf2,0xa7112386,0x6d9bd5f5,0x7435e198,0x59c3463f,0x2dcc7e38,0xca7bd4b2,0xdc7df748,0x9dec2f31,0x13cd4c08 +.long 0xe3237710,0x0d3b5df8,0xcbd2f7b0,0x0dadb26e,0xe4aa082b,0x9f5966ab,0x350e966e,0x666ec8de,0xee524216,0x1bfd1ed5,0x41dab0b6,0xcd93c59b,0xd186d6ba,0x658a8435,0x159d1195,0x1b7d34d2 +.long 0x22caf46b,0x5936e460,0x9a96fe4f,0x6a45dd8f,0xb98f474e,0xf7925434,0x0053ef15,0x41410412,0x41de97bf,0x71cf8d12,0xbd80bef4,0xb8547b61,0xc4db0037,0xb47d3970,0xfef20dff,0xf1bcd328 +.long 0x10caad67,0x31a92e09,0x5531a1e1,0x1f591960,0x5f4fc840,0x3bb852e0,0x93a72c6c,0x63e297ca,0x49abad67,0x3c2b0b2e,0xed3db0d9,0x6ec405fc,0x7fef1d40,0xdc14a530,0x280896fc,0xccd19846 +.long 0x9bb81648,0x00f83176,0x653120d0,0xd69eb485,0x4ccabc62,0xd17d75f4,0xb749fcb1,0x34a07f82,0xbbfb5554,0x2c3af787,0x62e283f8,0xb06ed4d0,0xa19213a0,0x5722889f,0xdcf3c7b4,0x162b085e +.long 0xe0dd3eca,0xbcaecb31,0xe52f13a5,0xc6237fbc,0x27bac297,0xcc2b6b03,0xb917f54a,0x2ae1cac5,0x7845ae4f,0x474807d4,0xce5972e0,0xfec7dd92,0x1d7915bb,0xc3bd2541,0xd94907ca,0x66f85dc4 +.long 0xbdbcf0ca,0xd981b888,0xdf279e9f,0xd75f5da6,0x7054e934,0x128bbf24,0x81db134b,0x3c6ff6e5,0x047d26e4,0x795b7cf4,0x5049ec37,0xf370f7b8,0xced945af,0xc6712d4d,0x095642bc,0xdf30b5ec +.long 0x4896246e,0x9b034c62,0xee90bbd1,0x5652c016,0x87fedb73,0xeb38636f,0x0135a613,0x5e32f847,0xcf933c83,0x0703b312,0x1a7f47e6,0xd05bb76e,0x949c2415,0x825e4f0c,0x7250d6f8,0x569e5622 +.long 0x6568013e,0xbbe9eb3a,0x22f243fc,0x8dbd203f,0xb342734a,0x9dbd7694,0x46afa984,0x8f6d12f8,0xc9eade29,0xb98610a2,0x47dd0f18,0xbab4f323,0x671c0d46,0x5779737b,0xd3e0a42a,0x10b6a7c6 +.long 0x3035b41c,0xfb19ddf3,0x99c45895,0xd336343f,0x54c857e5,0x61fe4938,0xae4e57d5,0xc4d506be,0xbbc33f75,0x3cd8c8cb,0x9262c77d,0x7281f08a,0xf11a2823,0x083f4ea6,0x9fba2e33,0x8895041e +.long 0x9c438edf,0xfcdfea49,0x91edba44,0x7678dcc3,0xe2ba50f0,0xf07b3b87,0x43948c1b,0xc13888ef,0x1140af42,0xc2135ad4,0x926ed1a7,0x8e5104f3,0x88f6695f,0xf24430cb,0x6d73c120,0x0ce0637b +.long 0xfe631e8f,0xb2db01e6,0xd7bdd24b,0x1c5563d7,0x369ad44f,0x8daea3ba,0x8187a9f9,0x000c81b6,0xaae1fd9a,0x5f48a951,0x8d5aed8a,0xe35626c7,0x0498c622,0x20952763,0x773aa504,0x76d17634 +.long 0xeb300f7a,0x36d90dda,0xedb5e801,0x9dcf7dfc,0x74d5244c,0x645cb268,0x348e3aa2,0xa127ee79,0x575f1dbb,0x488acc53,0x80e6161e,0x95037e85,0x292650d0,0x57e59283,0x14938216,0xabe67d99 +.long 0x3f8e1065,0x3c7f944b,0x330e8924,0xed908cb6,0x6f530136,0x08ee8fd5,0xd7ffc169,0x2227b7d5,0xb5cd6dd5,0x4f55c893,0xa62796e8,0x82225e11,0xcb18e12c,0x5c6cead1,0x84f5a51a,0x4381ae0c +.long 0x7fafa4c8,0x345913d3,0x0491aac0,0x3d918082,0x3e69264c,0x9347871f,0xb4f4f0cd,0xbea9dd3c,0x3eadd3e7,0xbda5d067,0x0573bcd8,0x0033c1b8,0x5da2486c,0x25589379,0x86abbee7,0xcb89ee5b +.long 0x22532e5d,0x8fe0a8f3,0x727dfc4c,0xb6410ff0,0x226726db,0x619b9d58,0x7a2b2dc7,0x5ec25669,0x4c3beb01,0xaf4d2e06,0x7acea556,0x852123d0,0xf783487a,0x0e9470fa,0x5664b3eb,0x75a7ea04 +.long 0x6798e4ba,0x4ad78f35,0xc7d0e091,0x9214e6e5,0xb1290403,0xc420b488,0xfc295749,0x64049e0a,0x3ae9841f,0x03ef5af1,0xb0b662a6,0xdbe4ca19,0xfa453458,0x46845c5f,0x10b66722,0xf8dabf19 +.long 0xcce2793b,0xb650f0aa,0xc5ec47c1,0x71db851e,0x3b234fa9,0x3eb78f3e,0xfc0106ce,0xb0c60f35,0x774eadbd,0x05427121,0xce323863,0x25367faf,0xcd086976,0x7541b5c9,0xdc507ad1,0x4ff069e2 +.long 0x8776e667,0x74145256,0xb23c6bb5,0x6e76142c,0x1b3a8a87,0xdbf30712,0x98450836,0x60e7363e,0xb7366d80,0x5741450e,0x4837dbdf,0xe4ee14ca,0x69d4316f,0xa765eb9b,0x8ef43825,0x04548dca +.long 0x5ae888eb,0x9c9f4e4c,0x56e9ac99,0x733abb51,0xba6ac029,0xdaad3c20,0x2ba3e38e,0x9b8dd3d3,0x0bc5d11a,0xa9bb4c92,0x9c5f88a3,0xf20127a7,0x161d3cb8,0x4f52b06e,0x6afaf0a6,0x26c1ff09 +.long 0x7189e71f,0x32670d2f,0x5ecf91e7,0xc6438748,0xdb757a21,0x15758e57,0x290a9ce5,0x427d09f8,0x38384a7a,0x846a308f,0xb0732b99,0xaac3acb4,0x17845819,0x9e941009,0xa7ce5e03,0x95cba111 +.long 0xb00009c4,0x6f3d4f7f,0x8ff28b5f,0xb8396c27,0x1c97975d,0xb1a9ae43,0xe5d9fed5,0x9d7ba8af,0x34f485b6,0x338cf09f,0x64122516,0xbc0ddacc,0x05d471fe,0xa450da12,0x628dd8c9,0x4c3a6250 +.long 0xd1295837,0x69c7d103,0x3807eb2f,0xa2893e50,0xbdb41491,0xd6e1e1de,0x5e138235,0xc630745b,0x48661ae1,0xc892109e,0xea2b2674,0x8d17e7eb,0xc328d6b5,0x00ec0f87,0xf079ff9e,0x6d858645 +.long 0x19115ead,0x6cdf243e,0x4bac4fcf,0x1ce1393e,0x9c29f25b,0x2c960ed0,0x9d388a05,0x59be4d8e,0xd0def72b,0x0d46e06c,0xe0342748,0xb923db5d,0x936d4a3d,0xf7d3aacd,0x0b0b099e,0x558519cc +.long 0x827097ef,0x3ea8ebf8,0xd054f55d,0x259353db,0x6d2ed089,0x84c89abc,0x8e096a7c,0x5c548b69,0x994b995d,0xd587f616,0xa5845601,0x4d1531f6,0x451fd9f0,0x792ab31e,0x65adf6ca,0xc8b57bb2 +.long 0x1cd5ad73,0x68440fcb,0x6144da4f,0xb9c860e6,0x8462beb8,0x2ab286aa,0xef46797f,0xcc6b8fff,0x20c8a471,0xac820da4,0x77ff7faf,0x69ae05a1,0xbfb5da77,0xb9163f39,0x2c73ab7a,0xbd03e590 +.long 0xb2940d9e,0x7e862b5e,0x4b9af564,0x3c663d86,0xbde3033d,0xd8309031,0xd42c5bc6,0x298231b2,0x552ad093,0x42090d2c,0xff854695,0xa4799d1c,0xd31f0d00,0x0a88b5d6,0xa2f26b46,0xf8b40825 +.long 0xf1bd7218,0xec29b1ed,0x4b24c86e,0xd491c53b,0x3395ea65,0xd2fe588f,0x4456ef15,0x6f3764f7,0xcdc34800,0xdb43116d,0xc1e33955,0xcdbcd456,0x74ab286b,0xefdb5540,0xd18c5d7c,0x948c7a51 +.long 0x7378058e,0xeb81aa37,0x04411154,0x41c746a1,0xfb828ac7,0xa10c73bc,0x9d972b29,0x6439be91,0x43a2fbad,0x4bf3b4b0,0x82b5e840,0x39e6dadf,0x6397bd4c,0x4f716408,0x7f1eeccb,0x0f7de568 +.long 0xd2ffbfc1,0x5865c5a1,0x4ccb6451,0xf74211fa,0xc0b32558,0x66368a88,0x9ad7812e,0x5b539dc2,0x2f3af6f6,0x579483d0,0x99934ece,0x52132078,0xdcc9e983,0x50b9650f,0xaee42b8a,0xca989ec9 +.long 0xd6f62f99,0x6a44c829,0x4c2a7c0c,0x8f06a309,0x98a0cb0a,0x4ea2b3a0,0xbeee8364,0x5c547b70,0x682afe11,0x461d40e1,0x7b41c0a8,0x9e0fc77a,0xe20d5d36,0x79e4aefd,0x32dd9f63,0x2916e520 +.long 0x3f883faf,0xf59e52e8,0x2b868d35,0x396f9639,0x4ca19881,0xc902a9df,0xdb2401a6,0x0fc96822,0x66f1c68d,0x41237587,0xfb476c0d,0x10fc6de3,0x841f5d90,0xf8b6b579,0xfa24f44a,0x2ba8446c +.long 0xef4a9975,0xa237b920,0x2330435f,0x60bb6004,0xcfb7e7b5,0xd6f4ab5a,0x83435391,0xb2ac5097,0xb0d1ea67,0xf036ee2f,0x74c56230,0xae779a6a,0xab838ae6,0x59bff8c8,0x9b38e6f0,0xcd83ca99 +.long 0xe33deed3,0xbb27bef5,0x001892a8,0xe6356f6f,0x7adfbd3e,0xbf3be6cc,0x33d1ac9d,0xaecbc81c,0xe6e861dc,0xe4feb909,0x53f5f801,0x90a247a4,0x27346e57,0x01c50acb,0x461acc1b,0xce29242e +.long 0x2f998a91,0x04dd214a,0xd4baf27b,0x271ee9b1,0xe8c26722,0x7e3027d1,0x1820dce5,0x21d1645c,0x7501779c,0x086f242c,0xfa0e8009,0xf0061407,0x60187129,0xf23ce477,0x0fde9bd0,0x05bbdedb +.long 0x25d98473,0x682f4832,0x5c658427,0xf207fe85,0x4166ffa1,0xb6fdd7ba,0x9eed799d,0x0c314056,0x4107e28f,0x0db8048f,0x41216840,0x74ed3871,0x56a3c06e,0x74489f8f,0x12777134,0x1e1c005b +.long 0xf37ec3c3,0xdb332a73,0xdd59eba0,0xc65259bd,0xdb4d3257,0x2291709c,0xbd389390,0x9a793b25,0xe43756f0,0xf39fe34b,0x9afb56c9,0x2f76bdce,0x61208b27,0x9f37867a,0x089972c3,0xea1d4307 +.long 0x8bdf623a,0x8c595330,0x8441fb7d,0x5f5accda,0x32ddfd95,0xfafa9418,0x0fde9be7,0x6ad40c5a,0xaeca8709,0x43faba89,0x2c248a9d,0xc64a7cf1,0x72637a76,0x16620252,0x22b8d1bb,0xaee1c791 +.long 0x21a843b2,0xf0f798fd,0x8d005cb1,0x56e4ed4d,0x1f0d8abe,0x355f7780,0x34522326,0x197b04cf,0xfd42c13f,0x41f9b31f,0xb40f933d,0x5ef7feb2,0x5d60bad4,0x27326f42,0x8c92cf89,0x027ecdb2 +.long 0x4e3352fe,0x04aae4d1,0x73591b90,0x08414d2f,0xb7da7d60,0x5ed6124e,0x4d13d4ec,0xb985b931,0x96bf36f9,0xa592d3ab,0xbbdf51df,0x012dbed5,0xdf6c177d,0xa57963c0,0x87ca29cf,0x010ec869 +.long 0xbf926dff,0xba1700f6,0xf4bf6bc2,0x7c9fdbd1,0x64da11f5,0xdc18dc8f,0xd938ae75,0xa6074b7a,0xe84f44a4,0x14270066,0xd27b954e,0x99998d38,0xb4f38e9a,0xc1be8ab2,0x15c01016,0x8bb55bbf +.long 0x0ea2ab30,0xf73472b4,0xf73d68dd,0xd365a340,0x19c2e1eb,0xc01a7168,0x34061719,0x32f49e37,0x01d8b4d6,0xb73c57f1,0x26b47700,0x03c8423c,0xa4d8826a,0x321d0bc8,0x4bc0e638,0x6004213c +.long 0xc1c06681,0xf78c64a1,0xef018e50,0x16e0a16f,0xdb42b2b3,0x31cbdf91,0xe0d36f58,0xf8f4ffce,0x4cc5e3e0,0xcdcc71cd,0xa129e3e0,0xd55c7cfa,0x0fb2cbf1,0xccdb6ba0,0xc4bce3cb,0x6aba0005 +.long 0xd232cfc4,0x501cdb30,0xd58a3cef,0x9ddcf12e,0x87e09149,0x02d2cf9c,0x2c976257,0xdc5d7ec7,0x0b50d7dd,0x6447986e,0x807f112a,0x88fdbaf7,0xb00ae9f6,0x58c9822a,0x6d3d27e0,0x6abfb950 +.long 0x8a429f4f,0xd0a74487,0xdb516609,0x0649712b,0xe769b5df,0xb826ba57,0x1fc7aaf2,0x82335df2,0x5c93d995,0x2389f067,0x68677be6,0x59ac367a,0x21d9951b,0xa77985ff,0x85011cce,0x038956fb +.long 0xbb734e37,0x608e48cb,0x2be5b26f,0xc08c0bf2,0xf9b1a0d9,0x17bbdd3b,0x10483319,0xeac7d898,0xbc1a6dea,0xc95c4baf,0x172aafdb,0xfdd0e2bf,0x8235c41a,0x40373cbc,0xfb6f41d5,0x14303f21 +.long 0x0408f237,0xba063621,0xecd2d1ed,0xcad3b09a,0x52abb6a2,0x4667855a,0xaa8b417b,0xba9157dc,0x4f013efb,0xfe7f3507,0xaa38c4a2,0x1b112c4b,0x9ba64345,0xa1406a60,0x6993c80b,0xe53cba33 +.long 0xded40d23,0x45466063,0x54908e25,0x3d5f1f4d,0x403c3c31,0x9ebefe62,0x0672a624,0x274ea0b5,0x451d1b71,0xff818d99,0x8f79cf79,0x80e82643,0x73ce37f5,0xa165df13,0xfe3a21fd,0xa744ef4f +.long 0xcf551396,0x73f1e7f5,0x868c676b,0xc616898e,0x8c442c36,0x671c28c7,0x5e0a317d,0xcfe5e558,0x7051f476,0x1242d818,0x14f03442,0x56fad2a6,0x0a44d0f6,0x262068bc,0xce6edf4e,0xdfa2cd6e +.long 0xd15d1517,0x0f43813a,0x377d44f5,0x61214cb2,0xc639b35f,0xd399aa29,0x54c51c19,0x42136d71,0x08417221,0x9774711b,0x52545a57,0x0a5546b3,0x1150582d,0x80624c41,0xfbc555bc,0x9ec5c418 +.long 0x771849f1,0x2c87dcad,0x01d7bf6f,0xb0c932c5,0x89116eb2,0x6aa5cd3e,0x51ca7bd3,0xd378c25a,0x9e6e3e31,0xc612a0da,0xb68ad5d0,0x0417a54d,0x22c6edb8,0x00451e4a,0xb42827ce,0x9fbfe019 +.long 0xba9384a2,0x2fa92505,0x64ad69c1,0x21b8596e,0x983b35a6,0x8f4fcc49,0x72754672,0xde093760,0xf7bffe6d,0x2f14ccc8,0x5d94263d,0x27566bff,0x2df3ec30,0xb5b4e9c6,0x3e6ea6ba,0x94f1d7d5 +.long 0xaaca5e9b,0x97b7851a,0x56713b97,0x518aa521,0x150a61f6,0x3357e8c7,0xec2c2b69,0x7842e7e2,0x6868a548,0x8dffaf65,0xe068fc81,0xd963bd82,0x65917733,0x64da5c8b,0x7b247328,0x927090ff +.long 0xd298c241,0x214bc9a7,0x56807cfd,0xe3b697ba,0x4564eadb,0xef1c7802,0xb48149c5,0xdde8cdcf,0x5a4d2604,0x946bf0a7,0x6c1538af,0x27154d7f,0xde5b1fcc,0x95cc9230,0x66864f82,0xd88519e9 +.long 0x7cb1282c,0xb828dd1a,0xbe46973a,0xa08d7626,0xe708d6b2,0x6baf8d40,0x4daeb3f3,0x72571fa1,0xf22dfd98,0x85b1732f,0x0087108d,0x87ab01a7,0x5988207a,0xaaaafea8,0x69f00755,0xccc832f8 +.long 0x36ff3bf0,0x964d950e,0xf0b34638,0x8ad20f6f,0xb5d7585f,0x4d9177b3,0xef3f019f,0xcf839760,0x8288c545,0x582fc5b3,0x13116bd1,0x2f8e4e9b,0x332120ef,0xf91e1b2f,0x2a17dd23,0xcf568724 +.long 0xca8d9d1a,0x488f1185,0xd987ded2,0xadf2c77d,0x60c46124,0x5f3039f0,0x71e095f4,0xe5d70b75,0x6260e70f,0x82d58650,0xf750d105,0x39d75ea7,0x75bac364,0x8cf3d0b1,0x21d01329,0xf3a7564d +.long 0x2f52d2a7,0x182f04cd,0xe2df565a,0x4fde149a,0xa79fb2f7,0xb80c5eec,0x22ddc897,0xab491d7b,0xc6312c7f,0x99d76c18,0x6aa41a57,0xca0d5f3d,0xd15363a0,0x71207325,0xbeb252c2,0xe82aa265 +.long 0xec3128c2,0x94ab4700,0x8e383f49,0x6c76d862,0xc03024eb,0xdc36b150,0x53daac69,0xfb439477,0x8dc79623,0xfc68764a,0xb440fbb2,0x5b86995d,0xccc5ee0d,0xd66879bf,0x95aa8bd3,0x05228942 +.long 0x1e6a75c1,0xb51a40a5,0x0ea7d817,0x24327c76,0x07774597,0x06630182,0x97fa7164,0xd6fdbec3,0x13c90f48,0x20c99dfb,0x686ef263,0xd6ac5273,0xfef64eeb,0xc6a50bdc,0x86fdfc32,0xcd87b281 +.long 0x3fcd3efc,0xb24aa43e,0xb8088e9a,0xdd26c034,0xbd3d46ea,0xa5ef4dc9,0x8a4c6a6f,0xa2f99d58,0x2f1da46c,0xddabd355,0x1afacdd1,0x72c3f8ce,0x92d40578,0xd90c4eee,0xca623b94,0xd28bb41f +.long 0x745edc11,0x50fc0711,0x3dc87558,0x9dd9ad7d,0xb49d1e64,0xce6931fb,0xc98bd0f9,0x6c77a0a2,0x6baf7cb1,0x62b9a629,0xccf72d22,0xcf065f91,0x79639071,0x7203cce9,0xf9cb732f,0x09ae4885 +.long 0xee8314f3,0x5e7c3bec,0xdbea298f,0x1c068aed,0x7c80acec,0x08d381f1,0xe330495b,0x03b56be8,0x9222882d,0xaeffb8f2,0xc4af8bf7,0x95ff38f6,0x1fc57d8c,0x50e32d35,0x17b444f0,0x6635be52 +.long 0xa5177900,0x04d15276,0xf6858752,0x4e1dbb47,0xc615796c,0x5b475622,0x691867bf,0xa6fa0387,0x2844c6d0,0xed7f5d56,0x03a2477d,0xc633cf9b,0x2d3721d6,0xf6be5c40,0xe9fd68e6,0xaf312eb7 +.long 0xe7417ce1,0x242792d2,0x970ee7f5,0xff42bc71,0x5c67a41e,0x1ff4dc6d,0x20882a58,0x77709b7b,0xbe217f2c,0x3554731d,0x5bb72177,0x2af2a8cd,0x591dd059,0x58eee769,0x4bba6477,0xbb2930c9 +.long 0x7d930cfc,0x863ee047,0x396fd1f4,0x4c262ad1,0x039af7e1,0xf4765bc8,0x5ba104f6,0x2519834b,0xd105f961,0x7cd61b4c,0xd63bca54,0xa5415da5,0x88a1f17c,0x778280a0,0x2329512c,0xc4968949 +.long 0xcecdaa7a,0x174a9126,0x0b13247b,0xfc8c7e0e,0x3484c1c4,0x29c110d2,0x831dfc3b,0xf8eb8757,0xc0067452,0x022f0212,0x7b9b926c,0x3f6f69ee,0xef42daf4,0x09032da0,0x83f80de4,0x79f00ade +.long 0x81236c97,0x6210db71,0x3ee0781f,0x74f7685b,0xa3e41372,0x4df7da7b,0xb1a1553e,0x2aae38b1,0xf6dd9d1b,0x1688e222,0x5b8b6487,0x57695448,0x4b2edeaa,0x478d2127,0x1e85956a,0xb2818fa5 +.long 0xf176f2c0,0x1e6addda,0xe2572658,0x01ca4604,0x85342ffb,0x0a404ded,0x441838d6,0x8cf60f96,0xc9071c4a,0x9bbc691c,0x34442803,0xfd588744,0x809c0d81,0x97101c85,0x8c456f7f,0xa7fb754c +.long 0xd51805e1,0xc95f3c5c,0xb299dca8,0xab4ccd39,0x47eaf500,0x3e03d20b,0xd7b80893,0xfa3165c1,0xe160e552,0x005e8b54,0x9019d11f,0xdc4972ba,0x0c9a4a7a,0x21a6972e,0x37840fd7,0xa52c258f +.long 0xc1e99d81,0xf8559ff4,0xa3c617c0,0x08e1a7d6,0x248c6ba7,0xb398fd43,0xd1283794,0x6ffedd91,0xd629d208,0x8a6a59d2,0x3490530e,0xa9d141d5,0x38505989,0x42f6fc18,0x479d94ee,0x09bf250d +.long 0xb3822790,0x223ad3b1,0x93b8971c,0x6c5926c0,0x75f7fa62,0x609efc7e,0x1ec2d989,0x45d66a6d,0x987d2792,0x4422d663,0x3eb31d2b,0x4a73caad,0xa32cb9e6,0xf06c2ac1,0x91aeba84,0xd9445c5f +.long 0xaf71013f,0x6af7a1d5,0x0bedc946,0xe68216e5,0xd27370a0,0xf4cba30b,0x870421cc,0x7981afbf,0x9449f0e1,0x02496a67,0x0a47edae,0x86cfc4be,0xb1feca22,0x3073c936,0x03f8f8fb,0xf5694612 +.long 0x901515ea,0xd063b723,0x749cf038,0x4c6c77a5,0xab9e5059,0x6361e360,0xa76a37c0,0x596cf171,0x6530ae7a,0x800f53fa,0x0792a7a6,0x0f5e631e,0xefdb81c9,0x5cc29c24,0x3f9c40ba,0xa269e868 +.long 0x2cb7191e,0xec14f9e1,0xe5b08ea6,0x78ea1bd8,0x46332bb9,0x3c65aa9b,0xbf80ce25,0x84cc22b3,0xd49d5bf1,0x0098e9e9,0x19087da4,0xcd4ec1c6,0xaef6e357,0x3c9d07c5,0x9f8f64b8,0x839a0268 +.long 0xc6d8607f,0xc5e9eb62,0x6aa995e4,0x759689f5,0xbbb48317,0x70464669,0xe402417d,0x921474bf,0x2a354c8c,0xcabe135b,0x812fa4b5,0xd51e52d2,0x53311fe8,0xec741096,0xb864514b,0x4f774535 +.long 0x5bde48f8,0xbcadd671,0x2189bc7d,0xc9703873,0xc709ee8a,0x5d45299e,0x845aaff8,0xd1287ee2,0xdb1dbf1f,0x7d1f8874,0x990c88d6,0xea46588b,0x84368313,0x60ba649a,0x60d543ae,0xd5fdcbce +.long 0x810d5ab0,0x90b46d43,0x04d7e5cc,0x6739d8f9,0x0d337c33,0x021c1a58,0x68e67c40,0x00a61162,0x379f0a1f,0x95ef413b,0xe9e2ab95,0xfe126605,0x2f5f199c,0x67578b85,0x2cb84913,0xf5c00329 +.long 0x37577dd8,0xf7956430,0x29c5fe88,0x83b82af4,0xcdbdc132,0x9c1bea26,0x9c04339e,0x589fa086,0xb13799df,0x033e9538,0xd295d034,0x85fa8b21,0xbd9ddcca,0xdf17f73f,0xddb66334,0xf32bd122 +.long 0x858b044c,0x55ef88a7,0x5aa9e397,0x1f0d69c2,0x40d85559,0x55fd9cc3,0x7785ddb2,0xc774df72,0xd3bd2e1c,0x5dcce9f6,0xa85dfed0,0xeb30da20,0xd3ed09c4,0x5ed7f5bb,0x82a9c1bd,0x7d42a35c +.long 0x9890272d,0xcf3de995,0x3e713a10,0x75f3432a,0xe28227b8,0x5e13479f,0xfefacdc8,0xb8561ea9,0x8332aafd,0xa6a297a0,0x73809b62,0x9b0d8bb5,0x0c63036f,0xd2fa1cfd,0xbd64bda8,0x7a16eb55 +.long 0x78e62ddc,0x3f5cf5f6,0x07fd752b,0x2267c454,0x5e437bbe,0x5e361b6b,0x8354e075,0x95c59501,0xf2b254d9,0xec725f85,0x2cb52b4e,0x844b617d,0xcf425fb5,0xed8554f5,0x2af9f312,0xab67703e +.long 0x3cf48283,0x4cc34ec1,0x9c8a705e,0xb09daa25,0x5b7d4f84,0xd1e9d0d0,0xdb38929d,0x4df6ef64,0xaa21ba46,0xe16b0763,0xa293f8fb,0xc6b1d178,0xd520aabf,0x0ff5b602,0xc339397a,0x94d671bd +.long 0x4f5792fa,0x7c7d98cf,0x11215261,0x7c5e0d67,0xa7c5a6d4,0x9b19a631,0x7a45274d,0xc8511a62,0xa5a60d99,0x0c16621c,0xcf5e48cb,0xf7fbab88,0xf7ddee08,0xab1e6ca2,0xe7867f3c,0x83bd08ce +.long 0x2ac13e27,0xf7e48e8a,0x4eb1a9f5,0x4494f6df,0x981f0a62,0xedbf84eb,0x536438f0,0x49badc32,0x004f7571,0x50bea541,0xdf1c94ee,0xbac67d10,0xb727bc31,0x253d73a1,0x30686e28,0xb3d01cf2 +.long 0x55fd0b8b,0x51b77b1b,0xfeec3173,0xa099d183,0x670e72b7,0x202b1fb7,0xa8e1635f,0xadc88b33,0xf989d905,0x34e8216a,0x29b58d01,0xc2e68d20,0x6fe55a93,0x11f81c92,0x8f296f40,0x15f1462a +.long 0xea3d62f2,0x1915d375,0x01c8977d,0xa17765a3,0xe47b26f6,0x7559710a,0x535077a5,0xe0bd29c8,0x08d84858,0x615f976d,0x69ced5c1,0x370dfe85,0xa734fa56,0xbbc7503c,0x91ac4574,0xfbb9f1ec +.long 0x060dd7ef,0x95d7ec53,0x6e657979,0xeef2dacd,0xe2a08235,0x54511af3,0x1f4aea3d,0x1e324aa4,0xe6e67671,0x550e7e71,0xbf52faf7,0xbccd5190,0x223cc62a,0xf880d316,0x2b32eb5d,0x0d402c7e +.long 0x306a5a3b,0xa40bc039,0x96783a1b,0x4e0a41fd,0x0253cdd4,0xa1e8d39a,0xc7388638,0x6480be26,0x2285f382,0xee365e1d,0xec0b5c36,0x188d8d8f,0x1f0f4d82,0x34ef1a48,0xa487d29a,0x1a8f43e1 +.long 0x77aefb3a,0x8168226d,0x1e72c253,0xf69a751e,0xe9594df1,0x8e04359a,0xd14c0467,0x475ffd7d,0x3844e95c,0xb5a2c2b1,0xdd12ef94,0x85caf647,0xf1063d00,0x1ecd2a9f,0x23843311,0x1dd2e229 +.long 0x73d17244,0x38f0e09d,0x8fc653f1,0x3ede7746,0xdc20e21c,0xae4459f5,0x6a8599ea,0x00db2ffa,0x30cfd905,0x11682c39,0xa5c112a6,0x4934d074,0x568bfe95,0xbdf063c5,0x016c441a,0x779a440a +.long 0x97d6fbdc,0x0c23f218,0xe0776aac,0xd3a5cd87,0xd712e8db,0xcee37f72,0x26f74e8d,0xfb28c70d,0xb61301a0,0xffe0c728,0xd3724354,0xa6282168,0x768ffedc,0x7ff4cb00,0x03b02de9,0xc51b3088 +.long 0x3902dda5,0xa5a8147c,0xfe6973b4,0x35d2f706,0xc257457e,0x5ac2efcf,0x8700611b,0x933f48d4,0x4912beb2,0xc365af88,0x162edf94,0x7f5a4de6,0x0c32f34b,0xc646ba7c,0xb2091074,0x632c6af3 +.long 0x753e43a9,0x58d4f2e3,0x24d4e23f,0x70e1d217,0xafede6a6,0xb24bf729,0x710c8b60,0x7f4a94d8,0x8d4faa6a,0xaad90a96,0xb066b690,0xd9ed0b32,0x78b6dbfd,0x52fcd37b,0x8bd2b431,0x0b64615e +.long 0xcfb9fad5,0x228e2048,0x240b76bd,0xbeaa386d,0x90dad7bc,0x2d6681c8,0x06d38f5e,0x3e553fc3,0x9d5f9750,0xf27cdb9b,0xd28c5b0e,0x3e85c52a,0x5247c39b,0x190795af,0xbddd6828,0x547831eb +.long 0x4a82f424,0xf327a227,0x7e47f89d,0x36919c78,0x43c7392c,0xe4783919,0x2316fefe,0xf101b9aa,0x1c5009d2,0xbcdc9e9c,0x9cd18345,0xfb55ea13,0xa3ce77c7,0xf5b5e231,0xd2f2cb3d,0xde6b4527 +.long 0x9bb26f5f,0x10f6a333,0x044d85b6,0x1e85db8e,0x94197e54,0xc3697a08,0xa7cb4ea8,0x65e18cc0,0xa471fe6e,0xa38c4f50,0x2f13439c,0xf031747a,0xc007318b,0x53c4a6ba,0x1deccb3d,0xa8da3ee5 +.long 0x558216b1,0x0555b31c,0x2f79e6c2,0x90c7810c,0xfe8eed3c,0x9b669f4d,0xe0fac126,0x70398ec8,0xf701b235,0xa96a449e,0xeb94f395,0x0ceecdb3,0xd0cb7431,0x285fc368,0x16a18c64,0x0d37bb52 +.long 0xb880d2dd,0x05110d38,0x65930d57,0xa60f177b,0xf36235f5,0x7da34a67,0x183816b9,0x47f5e17c,0xdb394af4,0xc7664b57,0x7036f789,0x39ba215d,0x2f27b472,0x46d2ca0e,0xf73a84b7,0xc42647ee +.long 0x64488f1d,0x44bc7545,0xf4cf85d5,0xaa922708,0x53e4df63,0x721a01d5,0x5db46ced,0x649c0c51,0x3cffcb6c,0x6bf0d64e,0x50f71d96,0xe3bf93fe,0xbcc194a0,0x75044558,0x6afdc554,0x16ae3372 +.long 0x5ca48f3f,0xbfc01adf,0xe22a9b84,0x64352f06,0xc1099e4a,0xcee54da1,0xfa1b89c0,0xbbda54e8,0x6f6e55fb,0x166a3df5,0x20176f88,0x1ca44a24,0xdfb7b5ff,0x936afd88,0x8611d4a0,0xe34c2437 +.long 0x86142103,0x7effbb75,0x1f34fc4d,0x6704ba1b,0x10c1b122,0x7c2a468f,0x8c6aace9,0x36b3a610,0x75a0d050,0xabfcc0a7,0x3ce33e32,0x066f9197,0x29fe09be,0xce905ef4,0xa8376351,0x89ee25ba +.long 0xfd29dc76,0x2a3ede22,0x36f17260,0x7fd32ed9,0x284b4126,0x0cadcf68,0xa7951fc8,0x63422f08,0x0807e199,0x562b24f4,0x22ad4490,0xfe9ce5d1,0x0db2b1b4,0xc2f51b10,0xe4541d0d,0xeb3613ff +.long 0x2680813b,0xbd2c4a05,0x561b08d6,0x527aa55d,0xa7205558,0xa9f8a40e,0x243d0bec,0xe3eea56f,0xa0ff58b3,0x7b853817,0x1a69e627,0xb67d3f65,0xa869b5d6,0x0b76bbb9,0x546723ed,0xa3afeb82 +.long 0x3e554892,0x5f24416d,0x430e2a45,0x8413b53d,0x9032a2a0,0x99c56aee,0xeec367b1,0x09432bf6,0xdaf0ecc1,0x552850c6,0x5bc92048,0x49ebce55,0x54811307,0xdfb66ba6,0x6f298597,0x1b84f797 +.long 0x8d1d7a0d,0x79590481,0x3a6fa556,0xd9fabe03,0xba9e5d35,0xa40f9c59,0xf6247577,0xcb1771c1,0xe9a6312b,0x542a47ca,0x552dd8c5,0xa34b3560,0x0d794716,0xfdf94de0,0x9c623094,0xd46124a9 +.long 0x68afe8b4,0x56b7435d,0x6c0d8ea1,0x27f20540,0x73186898,0x12b77e14,0x7479490f,0xdbc3dd46,0xc03b0c05,0x951a9842,0x7921bc96,0x8b1b3bb3,0x2b202e0a,0xa573b346,0x47254d56,0x77e4665d +.long 0xd23e3984,0x08b70dfc,0xebd14236,0xab86e8bc,0x57114ba7,0xaa3e07f8,0xab0ef4f2,0x5ac71689,0x0139d9af,0x88fca384,0x76644af0,0x72733f88,0x65d74f4a,0xf122f72a,0xa5626c7a,0x13931577 +.long 0x70f8d5a4,0xd5b5d9eb,0xd7bbb228,0x375adde7,0x0c1c0b32,0x31e88b86,0x173edbaa,0xd1f568c4,0x5459df02,0x1592fc83,0x0fcd9a7e,0x2beac0fb,0x1b473b0a,0xb0a6fdb8,0x0fe8fc48,0xe3224c6f +.long 0xe87edf5b,0x680bd00e,0x20e77cf5,0x30385f02,0x4d42d1b2,0xe9ab98c0,0xd3816d77,0x72d191d2,0x0917d9e5,0x1564daca,0x1f8fed7f,0x394eab59,0x7fbb3896,0xa209aa8d,0xbe6ac98e,0x5564f3b9 +.long 0xd73654ef,0xead21d05,0x13d78d74,0x68d1a9c4,0x6d4973a0,0x61e01708,0x46e6d32a,0x83da3500,0x68ae0118,0x6a3dfca4,0xd02da069,0xa1b9a4c9,0xebab8302,0x0b2ff9c7,0x944ba436,0x98af07c3 +.long 0x995f0f9f,0x85997326,0x71b58bc6,0x467fade0,0xbd625a2b,0x47e4495a,0x33c3b8cd,0xfdd2d01d,0xc693f9fa,0x2c38ae28,0x348f7999,0x48622329,0x2161f583,0x97bf738e,0x565e8cc9,0x15ee2fa7 +.long 0x5777e189,0xa1a5c845,0x456f2829,0xcc10bee0,0xda762bd5,0x8ad95c56,0xe9d91da8,0x152e2214,0x7cb23c74,0x975b0e72,0xa90c66df,0xfd5d7670,0x225ffc53,0xb5b5b8ad,0xfaded2ae,0xab6dff73 +.long 0x6f4cbe9d,0xebd56781,0x6a574bd7,0x0ed8b249,0x81a881fa,0x41c246fe,0xc3db9c70,0x91564805,0x5b862809,0xd7c12b08,0x55858d7b,0x1facd1f1,0xaf09e92a,0x7693747c,0x189a425f,0x3b69dcba +.long 0x967365ef,0x0be28e9f,0xe801f5c9,0x57300eb2,0xd583352f,0x93b8ac6a,0xcd05b2b7,0xa2cf1f89,0x4dcc40cc,0x7c0c9b74,0xada523fb,0xfee38c45,0x1099cc4d,0xb49a4dec,0x69f069c6,0x325c377f +.long 0x476cc9ff,0xe12458ce,0xc6d4cb63,0x580e0b6c,0x9072289b,0xd561c8b7,0xa619e6da,0x0377f264,0x88e591a5,0x26685362,0x7523ca2b,0xa453a7bd,0xc1df4533,0x8a9536d2,0xbe972f79,0xc8e50f2f +.long 0x6d3549cf,0xd433e50f,0xfacd665e,0x6f33696f,0xce11fcb4,0x695bfdac,0xaf7c9860,0x810ee252,0x7159bb2c,0x65450fe1,0x758b357b,0xf7dfbebe,0xd69fea72,0x2b057e74,0x92731745,0xd485717a +.long 0xee36860c,0x896c42e8,0x4113c22d,0xdaf04dfd,0x44104213,0x1adbb7b7,0x1fd394ea,0xe5fd5fa1,0x1a4e0551,0x68235d94,0x18d10151,0x6772cfbe,0x09984523,0x276071e3,0x5a56ba98,0xe4e879de +.long 0x285b9491,0xaaafafb0,0x1e4c705e,0x01a0be88,0x2ad9caab,0xff1d4f5d,0xc37a233f,0x6e349a4a,0x4a1c6a16,0xcf1c1246,0x29383260,0xd99e6b66,0x5f6d5471,0xea3d4366,0xff8cc89b,0x36974d04 +.long 0xcfe89d80,0xc26c49a1,0xda9c8371,0xb42c026d,0xdad066d2,0xca6c013a,0x56a4f3ee,0xfb8f7228,0xd850935b,0x08b579ec,0xd631e1b3,0x34c1a74c,0xac198534,0xcb5fe596,0xe1f24f25,0x39ff21f6 +.long 0x8f929057,0x27f29e14,0xc0c853df,0x7a64ae06,0x58e9c5ce,0x256cd183,0xded092a5,0x9d9cce82,0x6e93b7c7,0xcc6e5979,0x31bb9e27,0xe1e47092,0xaa9e29a0,0xb70b3083,0x3785e644,0xbf181a75 +.long 0x8ead09f7,0xf53f2c65,0x9780d14d,0x1335e1d5,0xcd1b66bc,0x69cc20e0,0xbbe0bfc8,0x9b670a37,0x28efbeed,0xce53dc81,0x8326a6e5,0x0c74e77c,0xb88e9a63,0x3604e0d2,0x13dc2248,0xbab38fca +.long 0x5c0a3f1e,0x8ed6e8c8,0x7c87c37f,0xbcad2492,0x9ee3b78d,0xfdfb62bb,0xcbceba46,0xeba8e477,0xeeaede4b,0x37d38cb0,0x7976deb6,0x0bc498e8,0x6b6147fb,0xb2944c04,0xf71f9609,0x8b123f35 +.long 0xde79dc24,0xa155dcc7,0x558f69cd,0xf1168a32,0x0d1850df,0xbac21595,0xb204c848,0x15c8295b,0x7d8184ff,0xf661aa36,0x30447bdb,0xc396228e,0xbde4a59e,0x11cd5143,0x6beab5e6,0xe3a26e3b +.long 0x1402b9d0,0xd3b3a13f,0x2c7bc863,0x573441c3,0x578c3e6e,0x4b301ec4,0x0adaf57e,0xc26fc9c4,0x7493cea3,0x96e71bfd,0x1af81456,0xd05d4b3f,0x6a8c608f,0xdaca2a8a,0x0725b276,0x53ef07f6 +.long 0x7824fc56,0x07a5fbd2,0x13289077,0x34675218,0xe0c48349,0x5bf69fd5,0xb6aa7875,0xa613ddd3,0x5450d866,0x7f78c19c,0x8f84a481,0x46f4409c,0x90fce239,0x9f1d1928,0xb2ce44b9,0x016c4168 +.long 0xc7435978,0xbae023f0,0x20e30e19,0xb152c888,0xe3fa6faf,0x9c241645,0x84823e60,0x735d95c1,0x03955317,0x03197573,0xf03b4995,0x0b4b02a9,0x70274600,0x076bf559,0xaaf57508,0x32c5cc53 +.long 0x60624129,0xe8af6d1f,0x9a5e2b5e,0xb7bc5d64,0x5f082d72,0x3814b048,0xce19677a,0x76f267f2,0xb36eed93,0x626c630f,0x3bf56803,0x55230cd7,0xce2736a0,0x78837949,0xaa6c55f1,0x0d792d60 +.long 0xd5c7c5d2,0x0318dbfd,0x072b342d,0xb38f8da7,0x7b8de38a,0x3569bddc,0xa1c94842,0xf25b5887,0x2946ad60,0xb2d5b284,0xe9d1707e,0x854f29ad,0x2c6a4509,0xaa5159dc,0x57189837,0x899f94c0 +.long 0xf4a55b03,0xcf6adc51,0x35e3b2d5,0x261762de,0x04827b51,0x4cc43012,0xc6021442,0xcd22a113,0x247c9569,0xce2fd61a,0xd152beca,0x59a50973,0x63a716d4,0x6c835a11,0x187dedcf,0xc26455ed +.long 0x49ce89e7,0x27f536e0,0xcc890cb5,0x18908539,0xd83c2aa1,0x308909ab,0x1ab73bd3,0xecd3142b,0xb3f5ab84,0x6a85bf59,0xf2bea4c6,0x3c320a68,0x6da4541f,0xad8dc538,0xb7c41186,0xeaf34eb0 +.long 0x977c97c4,0x1c780129,0xc57eb9fa,0x5ff9beeb,0xc822c478,0xa24d0524,0x461cd415,0xfd8eec2a,0xf027458c,0xfbde194e,0x1d1be115,0xb4ff5319,0x4866d6f4,0x63f874d9,0xb21ad0c9,0x35c75015 +.long 0x46ac49d2,0xa6b5c9d6,0x83137aa9,0x42c77c0b,0x68225a38,0x24d000fc,0x2fe1e907,0x0f63cfc8,0xc6441f95,0x22d1b01b,0xec8e448f,0x7d38f719,0x787fb1ba,0x9b33fa5f,0x190158df,0x94dcfda1 +.long 0x5f6d4a09,0xc47cb339,0xee52b826,0x6b4f355c,0xf51b930a,0x3d100f5d,0x9f668f69,0xf4512fac,0x206c4c74,0x546781d5,0xcb4d2e48,0xd021d4d4,0xca085c2d,0x494a54c2,0x520850a8,0xf1dbaca4 +.long 0x490a1aca,0x63c79326,0x41526b02,0xcb64dd9c,0xa2979258,0xbb772591,0x48d97846,0x3f582970,0x7c213ba7,0xd66b70d1,0xe8a0ced4,0xc28febb5,0xc10338c1,0x6b911831,0xbf0126f3,0x0d54e389 +.long 0x4af206ee,0x7048d460,0x77e97cb9,0x786c88f6,0xac64802e,0xd4375ae1,0xd53ec11c,0x469bcfe1,0x47062230,0xfc9b340d,0xc5b4a3ac,0xe743bb57,0x59ef45ac,0xfe00b4aa,0x59edf188,0x29a4ef23 +.long 0xb483689b,0x40242efe,0x513ac262,0x2575d3f6,0x0ca6db72,0xf30037c8,0x98864be2,0xc9fcce82,0x0149362d,0x84a112ff,0x1c4ae971,0x95e57582,0x945cf86c,0x1fa4b1a8,0x0b024a2f,0x4525a734 +.long 0x8f338360,0xe76c8b62,0x28edf32b,0x483ff593,0x298b1aec,0x67e8e90a,0x736d9a21,0x9caab338,0x66892709,0x5c09d2fd,0xb55a1d41,0x2496b4dc,0xe24a4394,0x93f5fb1a,0x6fa8f6c1,0x08c75049 +.long 0xc905d85f,0xcaead1c2,0x0733ae57,0xe9d7f790,0xf07cdd94,0x24c9a65c,0xa4b55931,0x7389359c,0x367e45f7,0xf58709b7,0xcb7e7adc,0x1f203067,0xc7b72818,0x82444bff,0xbaac8033,0x07303b35 +.long 0xd13b7ea1,0x1e1ee4e4,0xe0e74180,0xe6489b24,0x7e70ef70,0xa5f2c610,0xbdd10894,0xa1655412,0x7af4194e,0x555ebefb,0x8e89bd9c,0x533c1c3c,0x89895856,0x735b9b57,0x567f5c15,0x15fb3cd2 +.long 0x526f09fd,0x057fed45,0x8128240a,0xe8a4f10c,0xff2bfd8d,0x9332efc4,0xbd35aa31,0x214e77a0,0x14faa40e,0x32896d73,0x01e5f186,0x767867ec,0x17a1813e,0xc9adf8f1,0x54741795,0xcb6cda78 +.long 0x349d51aa,0xb7521b6d,0xe3c7b8e9,0xf56b5a9e,0x32a096df,0xc6f1e5c9,0xa3635024,0x083667c4,0x18087f2f,0x365ea135,0xd136e45d,0xf1b8eaac,0x73aec989,0xc8a0e484,0x142c9259,0xd75a324b +.long 0x01dae185,0xb7b4d001,0x9b7a94bc,0x45434e0b,0xfbd8cb0b,0xf54339af,0xe98ef49e,0xdcc4569e,0x09a51299,0x7789318a,0xb2b025d8,0x81b4d206,0xfae85792,0xf64aa418,0xacd7baf7,0x3e50258f +.long 0x2996864b,0xdce84cdb,0x1f485fa4,0xa2e67089,0x534c6a5a,0xb28b2bb6,0xc94b9d39,0x31a7ec6b,0xd6bc20da,0x1d217766,0x86761190,0x4acdb5ec,0x73701063,0x68726328,0x2128c29b,0x4d24ee7c +.long 0xa19fd868,0xc072ebd3,0xdb8ddd3b,0x612e481c,0x1a64d852,0xb4e1d754,0xc4c6c4ab,0x00ef95ac,0xaa0a6c46,0x1536d2ed,0x43774790,0x61294086,0x343fda10,0x54af25e8,0xfd25d6f2,0x9ff9d98d +.long 0x468b8835,0x0746af7c,0x730ecea7,0x977a31cb,0xc2cf4a81,0xa5096b80,0x6458c37a,0xaa986833,0xa6bd9d34,0x6af29bf3,0x33c5d854,0x6a62fe9b,0xb7133b5e,0x50e6c304,0x7d6e6848,0x04b60159 +.long 0x5579bea4,0x4cd296df,0x5ceedaf1,0x10e35ac8,0xe3bcc5b1,0x04c4c5fd,0x89412cf9,0x95f9ee8a,0x82b6eb0f,0x2c9459ee,0x95c2aadd,0x2e845765,0xd327fcfe,0x774a84ae,0x0368d476,0xd8c93722 +.long 0xf83e8a3b,0x0dbd5748,0x8d2495f3,0xa579aa96,0xae496e9b,0x535996a0,0xb7f9bcc2,0x07afbfe9,0x5b7bd293,0x3ac1dc6d,0x7022323d,0x3b592cff,0x9c0a3e76,0xba0deb98,0x4b197acb,0x18e78e9f +.long 0x296c36ef,0x211cde10,0x82c4da77,0x7ee89672,0xa57836da,0xb617d270,0x9cb7560b,0xf0cd9c31,0xe455fe90,0x01fdcbf7,0x7e7334f3,0x3fb53cbb,0x4e7de4ec,0x781e2ea4,0x0b384fd0,0x8adab3ad +.long 0x53d64829,0x129eee2f,0xa261492b,0x7a471e17,0xe4cb4a2c,0xe4f9adb9,0x97ba2c2d,0x3d359f6f,0x0aacd697,0x346c6786,0x75c2f8a8,0x92b444c3,0xd85df44e,0xc79fa117,0x398ddf31,0x56782372 +.long 0xbbbab3b8,0x60e690f2,0x8b04816b,0x4851f8ae,0x9c92e4d2,0xc72046ab,0x7cf3136b,0x518c74a1,0xf9877d4c,0xff4eb50a,0xa919cabb,0x14578d90,0xac5eb2b6,0x8218f8c4,0x542016e4,0xa3ccc547 +.long 0x327f8349,0x025bf48e,0xf43cb641,0xf3e97346,0x500f1085,0xdc2bafdf,0x2f063055,0x57167876,0x411925a6,0x5bd914b9,0xa1123de5,0x7c078d48,0x182b165d,0xee6bf835,0xba519727,0xb11b5e5b +.long 0x1eea7b85,0xe33ea76c,0x92d4f85e,0x2352b461,0xafe115bb,0xf101d334,0x889175a3,0xfabc1294,0x5233f925,0x7f6bcdc0,0xe77fec55,0xe0a802db,0x8069b659,0xbdb47b75,0xf98fbd74,0x1c5e12de +.long 0x4b8457ee,0x869c58c6,0x4f7ea9f7,0xa5360f69,0xf460b38f,0xe576c09f,0x22b7fb36,0x6b70d548,0x3bfae315,0x3fd237f1,0xcbdff369,0x33797852,0x25b516f9,0x97df25f5,0xba38ad2d,0x46f388f2 +.long 0x89d8ddbb,0x656c4658,0x70f38ee8,0x8830b26e,0xde1212b0,0x4320fd5c,0xe4a2edb2,0xc34f30cf,0x56ab64b8,0xabb131a3,0xd99c5d26,0x7f77f0cc,0xbf981d94,0x66856a37,0x738bd76e,0x19e76d09 +.long 0x96238f39,0xe76c8ac3,0xa830b366,0xc0a482be,0x0b4eb499,0xb7b8eaff,0x4bfb4865,0x8ecd83bc,0xa2f3776f,0x971b2cb7,0xf4b88adf,0xb42176a4,0xbe1fa446,0xb9617df5,0xcd031bd2,0x8b32d508 +.long 0x53b618c0,0x1c6bd47d,0x6a227923,0xc424f46c,0xdd92d964,0x7303ffde,0x71b5abf2,0xe9712878,0xf815561d,0x8f48a632,0xd3c055d1,0x85f48ff5,0x7525684f,0x222a1427,0x67360cc3,0xd0d841a0 +.long 0x0b9267c6,0x4245a926,0xcf07f863,0xc78913f1,0x4d0d9e24,0xaa844c8e,0x3d5f9017,0xa42ad522,0xa2c989d5,0xbd371749,0xe1f5e78e,0x928292df,0x0a1ea6da,0x493b383e,0x13aee529,0x5136fd8d +.long 0xf2c34a99,0x860c44b1,0xbf5855ac,0x3b00aca4,0xfaaf37be,0xabf6aaa0,0x2a53ec08,0x65f43682,0xa11b12e1,0x1d9a5801,0xe20ed475,0x78a7ab2c,0x9a41e0d5,0x0de1067e,0x305023ea,0x30473f5f +.long 0x169c7d97,0xdd3ae09d,0xcfaef9cd,0x5cd5baa4,0x65a44803,0x5cd7440b,0x47f364de,0xdc13966a,0x2b8357c1,0x077b2be8,0xe9d57c2a,0x0cb1b4c5,0x05ff363e,0x7a4ceb32,0xca35a9ef,0xf310fa4d +.long 0xf97f68c6,0xdbb7b352,0x0b02cf58,0x0c773b50,0x3c1f96d9,0xea2e4821,0xeee01815,0xffb357b0,0xe0f28039,0xb9c924cd,0x46a3fbe4,0x0b36c95a,0x5e46db6c,0x1faaaea4,0x1928aaff,0xcae575c3 +.long 0xa70dab86,0x7f671302,0x71c58cfc,0xfcbd12a9,0xbee0cb92,0xcbef9acf,0xf8c1b583,0x573da0b9,0x0d41d550,0x4752fcfe,0x2155cffe,0xe7eec0e3,0x545ae248,0x0fc39fcb,0x8065f44e,0x522cb8d1 +.long 0x70cbb96c,0x263c962a,0xbcd124a9,0xe034362a,0x3c2ae58d,0xf120db28,0xfef6d507,0xb9a38d49,0x1ff140fd,0xb1fd2a82,0x20aee7e0,0xbd162f30,0xcb251949,0x4e17a5d4,0x4f7e1c3d,0x2aebcb83 +.long 0x937b0527,0x608eb25f,0xeb7d9997,0xf42e1e47,0xb8a53a29,0xeba699c4,0xe091b536,0x1f921c71,0x5b26bbd5,0xcce29e7b,0x3b61a680,0x7a8ef5ed,0xba1f1c7e,0xe5ef8043,0x18158dda,0x16ea8217 +.long 0x599ff0f9,0x01778a2b,0x8104fc6b,0x68a923d7,0xda694ff3,0x5bfa44df,0xf7667f12,0x4f7199db,0xe46f2a79,0xc06d8ff6,0xe9f8131d,0x08b5dead,0xabb4ce7c,0x02519a59,0xb42aec3e,0xc4f710bc +.long 0x78bde41a,0x3d77b057,0xb4186b5a,0x6474bf80,0x88c65741,0x048b3f67,0x03c7c154,0xc64519de,0x0edfcc4f,0xdf073846,0x48f1aa6b,0x319aa737,0xca909f77,0x8b9f8a02,0x7580bfef,0x90258139 +.long 0xc0c22719,0xd8bfd3ca,0xc9ca151e,0xc60209e4,0xd9a1a69c,0x7a744ab5,0x14937f8f,0x6de5048b,0xe115ac04,0x171938d8,0x1c6b16d2,0x7df70940,0x7f8e94e7,0xa6aeb663,0x2a2cf094,0xc130388e +.long 0x77f54e6e,0x1850be84,0x65d60fe5,0x9f258a72,0x6c9146d6,0xff7ff0c0,0xe63a830b,0x039aaf90,0x9460342f,0x38f27a73,0x3f795f8a,0x4703148c,0x9681a97e,0x1bb5467b,0xecaeb594,0x00931ba5 +.long 0x786f337c,0xcdb6719d,0xe704397d,0xd9c01cd2,0x555c2fef,0x0f4a3f20,0x7c0af223,0x00452509,0x84db8e76,0x54a58047,0x93c8aa06,0x3bacf1aa,0xf7919422,0x11ca957c,0x78cdaa40,0x50641053 +.long 0x9f7144ae,0x7a303874,0x43d4acfd,0x170c963f,0x58ddd3ef,0x5e148149,0x9e72dba8,0xa7bde582,0x6fa68750,0x0769da8b,0x572e0249,0xfa64e532,0x2619ad31,0xfcaadf9d,0xa7b349cd,0x87882daa +.long 0x6c67a775,0x9f6eb731,0xefc5d0b1,0xcb10471a,0xe1b806b2,0xb433750c,0x57b1ae7e,0x19c5714d,0xed03fd3f,0xc0dc8b7b,0x31bc194e,0xdd03344f,0x8c6320b5,0xa66c52a7,0xd0b6fd93,0x8bc82ce3 +.long 0xb35f1341,0xf8e13501,0x25a43e42,0xe53156dd,0x4daeb85c,0xd3adf27e,0xbbeddeb5,0xb81d8379,0x2e435867,0x1b0b546e,0xeba5dd60,0x9020eb94,0x8210cb9d,0x37d91161,0x5c91f1cf,0x4c596b31 +.long 0x0e0b040d,0xb228a90f,0x45ff897f,0xbaf02d82,0x00fa6122,0x2aac79e6,0x8e36f557,0x24828817,0x113ec356,0xb9521d31,0x15eff1f8,0x9e48861e,0xe0d41715,0x2aa1d412,0x53f131b8,0x71f86203 +.long 0x3fd19408,0xf60da8da,0x278d9d99,0x4aa716dc,0xa8c51c90,0x394531f7,0xf59db51c,0xb560b0e8,0xfa34bdad,0xa28fc992,0x9cd4f8bd,0xf024fa14,0x23a9d0d3,0x5cf530f7,0xe28c9b56,0x615ca193 +.long 0x6f73c51e,0x6d2a483d,0xea0dc2dd,0xa4cb2412,0x1eb917ff,0x50663c41,0xeade299e,0x3d3a74cf,0x4a7a9202,0x29b3990f,0xa7b15c3d,0xa9bccf59,0xa5df9208,0x66a3ccdc,0x43f2f929,0x48027c14 +.long 0x40b557f0,0xd385377c,0xcd684660,0xe001c366,0xe2183a27,0x1b18ed6b,0x63210329,0x879738d8,0xbda94882,0xa687c74b,0xa684b299,0xd1bbcc48,0x863b3724,0xaf6f1112,0x2c8ce9f8,0x6943d1b4 +.long 0x098cafb4,0xe044a3bb,0x60d48caf,0x27ed2310,0x3a31b84d,0x542b5675,0xfcddbed7,0xcbf3dd50,0x41b1d830,0x25031f16,0xcb0c1e27,0xa7ec851d,0xb5ae75db,0xac1c8fe0,0x08c52120,0xb24c7557 +.long 0x1d4636c3,0x57f811dc,0x681a9939,0xf8436526,0x9c81adb3,0x1f6bc6d9,0x5b7d80d4,0x840f8ac3,0xf4387f1a,0x731a9811,0xb5156880,0x7c501cd3,0xdfe68867,0xa5ca4a07,0x5fcea120,0xf123d8f0 +.long 0xd607039e,0x1fbb0e71,0xcd3a4546,0x2b70e215,0x53324091,0x32d2f01d,0x180ab19b,0xb796ff08,0x3c57c4aa,0x32d87a86,0xb7c49a27,0x2aed9caf,0x31630d98,0x9fb35eac,0x5c3e20a3,0x338e8cdf +.long 0x66cde8db,0x80f16182,0x2d72fd36,0x4e159980,0x9b6e5072,0xd7b8f13b,0x3b7b5dc1,0xf5213907,0x8ce4396e,0x4d431f1d,0xa7ed2142,0x37a1a680,0xd01aaf6b,0xbf375696,0xe63aab66,0xaa1c0c54 +.long 0x4ed80940,0x3014368b,0x7a6fcedd,0x67e6d056,0xca97579f,0x7c208c49,0xa23597f6,0xfe3d7a81,0x7e096ae2,0x5e203202,0x24b39366,0xb1f3e1e7,0x2fdcdffc,0x26da26f3,0x6097be83,0x79422f1d +.long 0x9db3b381,0x263a2cfb,0xd4df0a4b,0x9c3a2dee,0x7d04e61f,0x728d06e9,0x42449325,0x8b1adfbc,0x7e053a1b,0x6ec1d939,0x66daf707,0xee2be5c7,0x810ac7ab,0x80ba1e14,0xf530f174,0xdd2ae778 +.long 0x205b9d8b,0x0435d97a,0x056756d4,0x6eb8f064,0xb6f8210e,0xd5e88a8b,0xec9fd9ea,0x070ef12d,0x3bcc876a,0x4d849505,0xa7404ce3,0x12a75338,0xb8a1db5e,0xd22b49e1,0x14bfa5ad,0xec1f2051 +.long 0xb6828f36,0xadbaeb79,0x01bd5b9e,0x9d7a0258,0x1e844b0c,0xeda01e0d,0x887edfc9,0x4b625175,0x9669b621,0x14109fdd,0xf6f87b98,0x88a2ca56,0x170df6bc,0xfe2eb788,0xffa473f9,0x0cea06f4 +.long 0xc4e83d33,0x43ed81b5,0x5efd488b,0xd9f35879,0x9deb4d0f,0x164a620f,0xac6a7394,0xc6927bdb,0x9f9e0f03,0x45c28df7,0xfcd7e1a9,0x2868661e,0xffa348f1,0x7cf4e8d0,0x398538e0,0x6bd4c284 +.long 0x289a8619,0x2618a091,0x6671b173,0xef796e60,0x9090c632,0x664e46e5,0x1e66f8fb,0xa38062d4,0x0573274e,0x6c744a20,0xa9271394,0xd07b67e4,0x6bdc0e20,0x391223b2,0xeb0a05a7,0xbe2d93f1 +.long 0x3f36d141,0xf23e2e53,0x4dfca442,0xe84bb3d4,0x6b7c023a,0xb804a48d,0x76431c3b,0x1e16a8fa,0xddd472e0,0x1b5452ad,0x0d1ee127,0x7d405ee7,0xffa27599,0x50fc6f1d,0xbf391b35,0x351ac53c +.long 0x4444896b,0x7efa14b8,0xf94027fb,0x64974d2f,0xde84487d,0xefdcd0e8,0x2b48989b,0x8c45b260,0xd8463487,0xa8fcbbc2,0x3fbc476c,0xd1b2b3f7,0xc8f443c0,0x21d005b7,0x40c0139c,0x518f2e67 +.long 0x06d75fc1,0x56036e8c,0x3249a89f,0x2dcf7bb7,0xe245e7dd,0x81dd1d3d,0xebd6e2a7,0xf578dc4b,0xdf2ce7a0,0x4c028903,0x9c39afac,0xaee36288,0x146404ab,0xdc847c31,0xa4e97818,0x6304c0d8 +.long 0xa91f6791,0xae51dca2,0x9baa9efc,0x2abe4190,0x559c7ac1,0xd9d2e2f4,0xfc9f773a,0xe82f4b51,0x4073e81c,0xa7713027,0xfbb596fc,0xc0276fac,0xa684f70c,0x1d819fc9,0xc9f7b1e0,0x29b47fdd +.long 0x459b1940,0x358de103,0x5b013e93,0xec881c59,0x49532ad3,0x51574c93,0xb37b46de,0x2db1d445,0xdf239fd8,0xc6445b87,0x151d24ee,0xc718af75,0xf43c6259,0xaea1c4a4,0x70be02f7,0x40c0e5d7 +.long 0x721b33f2,0x6a4590f4,0xfedf04ea,0x2124f1fb,0x9745efe7,0xf8e53cde,0x65f046d9,0xe7e10432,0xe4d0c7e6,0xc3fca28e,0x87253b1b,0x847e339a,0x3743e643,0x9b595348,0x4fd12fc5,0xcb6a0a0b +.long 0x27d02dcc,0xfb6836c3,0x7a68bcc2,0x5ad00982,0x005e912d,0x1b24b44c,0x811fdcfe,0xcc83d20f,0x666fba0c,0x36527ec1,0x14754635,0x69948197,0x556da9c2,0xfcdcb1a8,0x81a732b2,0xa5934267 +.long 0xa714181d,0xec1214ed,0x6067b341,0x609ac13b,0xa545df1f,0xff4b4c97,0x34d2076b,0xa1240501,0x1409ca97,0x6efa0c23,0x20638c43,0x254cc1a8,0xdcfb46cd,0xd4e363af,0x03942a27,0x62c2adc3 +.long 0x56e46483,0xc67b9df0,0x63736356,0xa55abb20,0xc551bc52,0xab93c098,0xb15fe64b,0x382b49f9,0x4dff8d47,0x9ec221ad,0x437df4d6,0x79caf615,0xbb456509,0x5f13dc64,0x191f0714,0xe4c589d9 +.long 0x3fd40e09,0x27b6a8ab,0x77313ea9,0xe455842e,0x1f55988b,0x8b51d1e2,0x062bbbfc,0x5716dd73,0x4e8bf3de,0x633c11e5,0x1b85be3b,0x9a0e77b6,0x0911cca6,0x56510729,0xefa6590f,0x27e76495 +.long 0x070d3aab,0xe4ac8b33,0x9a2cd5e5,0x2643672b,0x1cfc9173,0x52eff79b,0x90a7c13f,0x665ca49b,0xb3efb998,0x5a8dda59,0x052f1341,0x8a5b922d,0x3cf9a530,0xae9ebbab,0xf56da4d7,0x35986e7b +.long 0xff3513cc,0x3a636b5c,0x3198f7dd,0xbb0cf8ba,0x41f16f86,0xb8d40522,0xde13a7bf,0x760575d8,0x9f7aa181,0x36f74e16,0xf509ed1c,0x163a3ecf,0x3c40a491,0x6aead61f,0xdfe8fcaa,0x158c95fc +.long 0x13cda46f,0xa3991b6e,0x342faed0,0x79482415,0x666b5970,0xf3ba5bde,0xb26ab6dd,0x1d52e6bc,0x8608dd3d,0x768ba1e7,0xea076586,0x4930db2a,0xe7dc1afa,0xd9575714,0xf7c58817,0x1fc7bf7d +.long 0xd9eee96c,0x6b47accd,0xe58cec37,0x0ca277fb,0xe702c42a,0x113fe413,0xc47cbe51,0xdd1764ee,0x7b3ed739,0x041e7cde,0x5ce9e1c0,0x50cb7459,0x2925b212,0x35568513,0x001b081c,0x7cff95c4 +.long 0x8088b454,0x63ee4cbd,0x9a9e0c8a,0xdb7f32f7,0x6b2447cb,0xb377d418,0xd370219b,0xe3e982aa,0xc2a2a593,0x06ccc1e4,0x0773f24f,0x72c36865,0x95859423,0xa13b4da7,0x75040c8f,0x8bbf1d33 +.long 0xda50c991,0x726f0973,0x822d6ee2,0x48afcd5b,0x20fd7771,0xe5fc718b,0xfd0807a1,0xb9e8e77d,0x99a7703d,0x7f5e0f44,0x618e36f3,0x6972930e,0x23807bbe,0x2b7c77b8,0xcb27ff50,0xe5b82405 +.long 0xbd379062,0xba8b8be3,0x2dce4a92,0xd64b7a1d,0xb2952e37,0x040a73c5,0xd438aeca,0x0a9e252e,0xc39d3bcb,0xdd43956b,0xb32b2d63,0x1a31ca00,0x5c417a18,0xd67133b8,0x2ef442c8,0xd08e4790 +.long 0x255c0980,0x98cb1ae9,0x2b4a739f,0x4bd86381,0x1e4a45a1,0x5a5c31e1,0x9cb0db2f,0x1e5d55fe,0x8ff5cc29,0x74661b06,0x0eb8a4f4,0x026b389f,0x58848c24,0x536b21a4,0x81dc72b0,0x2e5bf8ec +.long 0xad886aac,0x03c187d0,0xb771b645,0x5c16878a,0xc74045ab,0xb07dfc6f,0x7800caed,0x2c6360bf,0xb9c972a3,0x24295bb5,0x7c9a6dba,0xc9e6f88e,0x92a79aa6,0x90ffbf24,0x41c26ac2,0xde29d50a +.long 0xd309cbe6,0x9f0af483,0xe0bced4f,0x5b020d8a,0xb38023e3,0x606e986d,0x1abc6933,0xad8f2c9d,0xe7400e93,0x19292e1d,0x52be5e4d,0xfe3e18a9,0x2e0680bf,0xe8e9771d,0xc54db063,0x8c5bec98 +.long 0x74a55d1f,0x2af9662a,0x046f66d8,0xe3fbf28f,0xd4dc4794,0xa3a72ab4,0x5c7c2dd8,0x09779f45,0xc3d19d8d,0xd893bdaf,0x57d6a6df,0xd5a75094,0x952e6255,0x8cf8fef9,0xda9a8aff,0x3da67cfb +.long 0x2c160dcd,0x4c23f62a,0x8f90eaef,0x34e6c5e3,0xa9a65d5a,0x35865519,0x8fd38a3d,0x07c48aae,0x50068527,0xb7e7aeda,0x1c90936a,0x2c09ef23,0xe879324c,0x31ecfeb6,0xfb0ec938,0xa0871f6b +.long 0xd84d835d,0xb1f0fb68,0x861dc1e6,0xc90caf39,0x7594f8d7,0x12e5b046,0x65012b92,0x26897ae2,0xa4d6755d,0xbcf68a08,0x0991fbda,0x403ee41c,0x3bbf17e8,0x733e343e,0x679b3d65,0xd2c7980d +.long 0xd2e11305,0x33056232,0xf3c07a6f,0x966be492,0xbb15509d,0x6a8878ff,0x0a9b59a4,0xff221101,0xabe30129,0x6c9f564a,0x336e64cf,0xc6f2c940,0x8b0c8022,0x0fe75262,0x6ae8db87,0xbe0267e9 +.long 0x93bc042b,0x22e192f1,0xb237c458,0xf085b534,0x832c4168,0xa0d192bd,0xbdf6271d,0x7a76e9e3,0xb88911b5,0x52a882fa,0xb4db0eb5,0xc85345e4,0x81a7c3ff,0xa3be02a6,0xf0ec0469,0x51889c8c +.long 0xa5e829e5,0x9d031369,0x1607aa41,0xcbb4c6fc,0x241d84c1,0x75ac59a6,0x8829e0ee,0xc043f2bf,0x8ea5e185,0x82a38f75,0xd87cbd9f,0x8bda40b9,0x2d8fc601,0x9e65e75e,0xa35690b3,0x3d515f74 +.long 0xda79e5ac,0x534acf4f,0x8630215f,0x68b83b3a,0xd085756e,0x5c748b2e,0xe5d37cb2,0xb0317258,0xc5ccc2c4,0x6735841a,0x3d9d5069,0x7d7dc96b,0xfd1754bd,0xa147e410,0xd399ddd5,0x65296e94 +.long 0xbc8fa5bc,0xf6b5b2d0,0x500c277b,0x8a5ead67,0xdfa08a5d,0x214625e6,0x959cf047,0x51fdfedc,0x289fca32,0x6bc9430b,0x9d9bdc3f,0xe36ff0cf,0x58ea0ede,0x2fe187cb,0x5a900b3f,0xed66af20 +.long 0x5fa9f4d6,0x00e0968b,0x37a362e7,0x2d4066ce,0xbd07e772,0xa99a9748,0x06a4f1d0,0x710989c0,0xce40cbd8,0xd5dedf35,0x1743293d,0xab55c5f0,0x8aa24e2c,0x766f1144,0x605fbcb4,0x94d874f8 +.long 0xa518001b,0xa365f0e8,0x9d04ef0f,0xee605eb6,0xba8d4d25,0x5a3915cd,0xb5113472,0x44c0e1b8,0x8b6740dc,0xcbb024e8,0xee1d4f0c,0x89087a53,0x1fc4e372,0xa88fa05c,0xaf8b3af2,0x8bf395cb +.long 0xdeb8568b,0x1e71c9a1,0x80fb3d32,0xa35daea0,0x2cf8fb81,0xe8b6f266,0x9490696a,0x6d51afe8,0x51803a19,0x81beac6e,0x86219080,0xe3d24b7f,0xdf6f463c,0x727cfd9d,0x72284ee8,0x8c6865ca +.long 0xb743f4ef,0x32c88b7d,0xe7d11dce,0x3793909b,0x2ff2ebe8,0xd398f922,0xe5e49796,0x2c70ca44,0xcb1131b1,0xdf4d9929,0x25888e79,0x7826f298,0xf1d8740a,0x4d3a112c,0x270afa8b,0x00384cb6 +.long 0x3ab48095,0xcb64125b,0x62d05106,0x3451c256,0xa4955845,0xd73d577d,0xbf9f4433,0x39570c16,0xadecf263,0xd7dfaad3,0xdc76e102,0xf1c3d8d1,0x54c6a836,0x5e774a58,0x3e92d47b,0xdad4b672 +.long 0xf0d796a0,0xbe7e990f,0xdf0e8b02,0x5fc62478,0x030c00ad,0x8aae8bf4,0x9004ba0f,0x3d2db93b,0xd85d5ddc,0xe48c8a79,0x6bb07f34,0xe907caa7,0xa39eaed5,0x58db343a,0xadaf5724,0x0ea6e007 +.long 0xd23233f3,0xe00df169,0x77cb637f,0x3e322796,0x1da0cf6c,0x1f897c0e,0x31d6bbdd,0xa651f5d8,0x1a230c76,0xdd61af19,0xcdaa5e4a,0xbd527272,0xd0abcd7e,0xca753636,0x370bd8dc,0x78bdd37c +.long 0x17cd93fe,0xc23916c2,0xdadce6e2,0x65b97a4d,0x174e42f8,0xe04ed4eb,0xbb21480a,0x1491ccaa,0x23196332,0x145a8280,0x587b479a,0x3c3862d7,0x01dcd0ed,0x9f4a88a3,0x3ea12f1f,0x4da2b7ef +.long 0xb126e48e,0xf8e7ae33,0xf494e237,0x404a0b32,0xc55acadb,0x9beac474,0xcbec9fd9,0x4ee5cf3b,0x7df3c8c3,0x336b33b9,0xb76808fd,0xbd905fe3,0xaa45c16a,0x8f436981,0x3dd27b62,0x255c5bfa +.long 0xc3dd9b4d,0x71965cbf,0xfc068a87,0xce23edbf,0x745b029b,0xb78d4725,0xcefdd9bd,0x74610713,0x1266bf52,0x7116f75f,0x18e49bb6,0x02046722,0x3d6f19e3,0xdf43df9f,0xe685cb2f,0xef1bc7d0 +.long 0x7078c432,0xcddb27c1,0xb77fedb7,0xe1961b9c,0xc2290570,0x1edc2f5c,0x19cbd886,0x2c3fefca,0xc2af389a,0xcf880a36,0xbda71cea,0x96c610fd,0x32aa8463,0xf03977a9,0x8586d90a,0x8eb7763f +.long 0x2a296e77,0x3f342454,0x42837a35,0xc8718683,0x6a09c731,0x7dc71090,0x51b816db,0x54778ffb,0xaf06defd,0x6b33bfec,0x8592b70b,0xfe3c105f,0x61da6114,0xf937fda4,0x4c266ad7,0x3c13e651 +.long 0x855938e8,0xe363a829,0x9de54b72,0x2eeb5d9e,0x20ccfab9,0xbeb93b0e,0x25e61a25,0x3dffbb5f,0x1acc093d,0x7f655e43,0x3964ce61,0x0cb6cc3d,0xe5e9b460,0x6ab283a1,0xa1c7e72d,0x55d787c5 +.long 0xdeadbf02,0x4d2efd47,0xac459068,0x11e80219,0x71f311f0,0x810c7626,0x4ab6ef53,0xfa17ef8d,0x93e43bff,0xaf47fd25,0x0be40632,0x5cb5ff3f,0x8ee61da3,0x54687106,0xb08afd0f,0x7764196e +.long 0xf0290a8f,0x831ab3ed,0xcb47c387,0xcae81966,0x184efb4f,0xaad7dece,0x4749110e,0xdcfc53b3,0x4cb632f9,0x6698f23c,0xb91f8067,0xc42a1ad6,0x6284180a,0xb116a81d,0xe901326f,0xebedf5f8 +.long 0x97e3e044,0xf2274c9f,0x11d09fc9,0x42018520,0xd18e6e23,0x56a65f17,0x352b683c,0x2ea61e2a,0x575eaa94,0x27d291bc,0xb8ff522d,0x9e7bc721,0xa7f04d6f,0x5f7268bf,0xaba41748,0x5868c73f +.long 0x7be0eead,0x9f85c2db,0xff719135,0x511e7842,0xc5ea90d7,0x5a06b1e9,0x26fab631,0x0c19e283,0xe9206c55,0x8af8f0cf,0x3553c06a,0x89389cb4,0xf65f8004,0x39dbed97,0xc508991d,0x0621b037 +.long 0x96e78cc4,0x1c52e635,0x0c06b4a8,0x5385c8b2,0xb0e87d03,0xd84ddfdb,0x934bafad,0xc49dfb66,0x59f70772,0x7071e170,0x3a1db56b,0x3a073a84,0x3b8af190,0x03494903,0xd32920f0,0x7d882de3 +.long 0xb2cf8940,0x91633f0a,0x6f948f51,0x72b0b178,0x782653c8,0x2d28dc30,0xdb903a05,0x88829849,0x6a19d2bb,0xb8095d0c,0x86f782cb,0x4b9e7f0c,0x2d907064,0x7af73988,0x8b32643c,0xd12be0fe +.long 0x0e165dc3,0x358ed23d,0x4e2378ce,0x3d47ce62,0xfeb8a087,0x7e2bb0b9,0xe29e10b9,0x3246e8ae,0x03ce2b4d,0x459f4ec7,0xbbc077cf,0xe9b4ca1b,0x0e9940c1,0x2613b4f2,0x047d1eb1,0xfc598bb9 +.long 0x45036099,0x9744c62b,0x167c65d8,0xa9dee742,0xdabe1943,0x0c511525,0x93c6c624,0xda110554,0x651a3be2,0xae00a52c,0x884449a6,0xcda5111d,0xff33bed1,0x063c06f4,0x0d3d76b4,0x73baaf9a +.long 0x7fc63668,0x52fb0c9d,0x0c039cde,0x6886c9dd,0x55b22351,0x602bd599,0x360c7c13,0xb00cab02,0x81b69442,0x8cb616bc,0xb55c3cee,0x41486700,0xf49ba278,0x71093281,0x64a50710,0xad956d9c +.long 0x638a7e81,0x9561f28b,0x5980ddc3,0x54155cdf,0xd26f247a,0xb2db4a96,0x4787d100,0x9d774e4e,0x078637d2,0x1a9e6e2e,0x5e0ae06a,0x1c363e2d,0xe9cfa354,0x7493483e,0x7f74b98d,0x76843cb3 +.long 0xd4b66947,0xbaca6591,0x04460a8c,0xb452ce98,0x43768f55,0x6830d246,0x7dff12df,0xf4197ed8,0x400dd0f7,0x6521b472,0x4b1e7093,0x59f5ca8f,0x080338ae,0x6feff11b,0xa29ca3c6,0x0ada31f6 +.long 0x94a2c215,0x24794eb6,0x05a57ab4,0xd83a43ab,0x2a6f89fe,0x264a543a,0xdd5ec7c2,0x2c2a3868,0x8439d9b2,0xd3373940,0x0acd1f11,0x715ea672,0xe7e6cc19,0x42c1d235,0xb990585c,0x81ce6e96 +.long 0xd809c7bd,0x04e5dfe0,0x8f1050ab,0xd7b2580c,0xd8a4176f,0x6d91ad78,0x4e2e897c,0x0af556ee,0x921de0ac,0x162a8b73,0x7ea78400,0x52ac9c22,0xefce2174,0xee2a4eea,0x6d637f79,0xbe61844e +.long 0x789a283b,0x0491f1bc,0x880836f4,0x72d3ac3d,0x88e5402d,0xaa1c5ea3,0xd5cc473d,0x1b192421,0x9dc84cac,0x5c0b9998,0x9c6e75b8,0xb0a8482d,0x3a191ce2,0x639961d0,0x6d837930,0xda3bc865 +.long 0x056e6f8f,0xca990653,0x64d133a7,0x84861c41,0x746abe40,0x8b403276,0xebf8e303,0xb7b4d51a,0x220a255d,0x05b43211,0x02419e6e,0xc997152c,0x630c2fea,0x76ff47b6,0x281fdade,0x50518677 +.long 0xcf902b0b,0x3283b8ba,0x37db303b,0x8d4b4eb5,0x755011bc,0xcc89f42d,0xdd09d19b,0xb43d74bb,0x8adba350,0x65746bc9,0xb51c1927,0x364eaf8c,0x10ad72ec,0x13c76596,0xf8d40c20,0x30045121 +.long 0xea7b979b,0x6d2d99b7,0xe6fb3bcd,0xcd78cd74,0x86cffbfe,0x11e45a9e,0x637024f6,0x78a61cf4,0x3d502295,0xd06bc872,0x458cb288,0xf1376854,0x342f8586,0xb9db26a1,0x4beee09e,0xf33effcf +.long 0xb30cfb3a,0xd7e0c4cd,0x6c9db4c8,0x6d09b8c1,0x07c8d9df,0x40ba1a42,0x1c52c66d,0x6fd495f7,0x275264da,0xfb0e169f,0xe57d8362,0x80c2b746,0x49ad7222,0xedd987f7,0x4398ec7b,0xfdc229af +.long 0x52666a58,0xb0d1ed84,0xe6a9c3c2,0x4bcb6e00,0x26906408,0x3c57411c,0x13556400,0xcfc20755,0x5294dba3,0xa08b1c50,0x8b7dd31e,0xa30ba286,0x991eca74,0xd70ba90e,0xe762c2b9,0x094e142c +.long 0x979f3925,0xb81d783e,0xaf4c89a7,0x1efd130a,0xfd1bf7fa,0x525c2144,0x1b265a9e,0x4b296904,0xb9db65b6,0xed8e9634,0x03599d8a,0x35c82e32,0x403563f3,0xdaa7a54f,0x022c38ab,0x9df088ad +.long 0xbb3fd30a,0xe5cfb066,0xeff0354e,0x429169da,0x3524e36c,0x809cf852,0x0155be1d,0x136f4fb3,0x1fbba712,0x4826af01,0x506ba1a1,0x6ef0f0b4,0x77aea73e,0xd9928b31,0x5eaa244e,0xe2bf6af2 +.long 0x4237b64b,0x8d084f12,0xe3ecfd07,0x688ebe99,0xf6845dd8,0x57b8a70c,0x5da4a325,0x808fc59c,0xa3585862,0xa9032b2b,0xedf29386,0xb66825d5,0x431ec29b,0xb5a5a8db,0x3a1e8dc8,0xbb143a98 +.long 0x12ae381b,0x35ee94ce,0x86ccda90,0x3a7f176c,0x4606eaca,0xc63a657e,0x43cd04df,0x9ae5a380,0xed251b46,0x9bec8d15,0xcaca5e64,0x1f5d6d30,0x9ff20f07,0x347b3b35,0xf7e4b286,0x4d65f034 +.long 0xf111661e,0x9e93ba24,0xb105eb04,0xedced484,0xf424b578,0x96dc9ba1,0xe83e9069,0xbf8f66b7,0xd7ed8216,0x872d4df4,0x8e2cbecf,0xbf07f377,0x98e73754,0x4281d899,0x8aab8708,0xfec85fbb +.long 0xa5ba5b0b,0x9a3c0dee,0x42d05299,0xe6a116ce,0xe9b02d42,0xae9775fe,0xa1545cb6,0x72b05200,0x31a3b4ea,0xbc506f7d,0x8bbd9b32,0xe5893078,0xe4b12a97,0xc8bc5f37,0x4a73b671,0x6b000c06 +.long 0x765fa7d0,0x13b5bf22,0x1d6a5370,0x59805bf0,0x4280db98,0x67a5e29d,0x776b1ce3,0x4f53916f,0x33ddf626,0x714ff61f,0xa085d103,0x4206238e,0xe5809ee3,0x1c50d4b7,0x85f8eb1d,0x999f450d +.long 0xe4c79e9b,0x658a6051,0xc66a9fea,0x1394cb73,0xc6be7b23,0x27f31ed5,0x5aa6f8fe,0xf4c88f36,0x4aaa499e,0x0fb0721f,0xe3fb2a6b,0x68b3a7d5,0x3a92851d,0xa788097d,0xe96f4913,0x060e7f8a +.long 0x1a3a93bc,0x82eebe73,0xa21adc1a,0x42bbf465,0xef030efd,0xc10b6fa4,0x87b097bb,0x247aa4c7,0xf60c77da,0x8b8dc632,0xc223523e,0x6ffbc26a,0x344579cf,0xa4f6ff11,0x980250f6,0x5825653c +.long 0xbc1aa2b9,0xb2dd097e,0x37a0333a,0x07889393,0x37a0db38,0x1cf55e71,0x792c1613,0x2648487f,0x3fcef261,0xdad01336,0x0eabf129,0x6239c81d,0x9d276be2,0x8ee761de,0x1eda6ad3,0x406a7a34 +.long 0x4a493b31,0x4bf367ba,0x9bf7f026,0x54f20a52,0x9795914b,0xb696e062,0x8bf236ac,0xcddab96d,0xed25ea13,0x4ff2c70a,0x81cbbbe7,0xfa1d09eb,0x468544c5,0x88fc8c87,0x696b3317,0x847a670d +.long 0x64bcb626,0xf133421e,0x26dee0b5,0xaea638c8,0xb310346c,0xd6e7680b,0xd5d4ced3,0xe06f4097,0x7512a30b,0x09961452,0xe589a59a,0xf3d867fd,0x52d0c180,0x2e73254f,0x333c74ac,0x9063d8a3 +.long 0xd314e7bc,0xeda6c595,0x467899ed,0x2ee7464b,0x0a1ed5d3,0x1cef423c,0x69cc7613,0x217e76ea,0xe7cda917,0x27ccce1f,0x8a893f16,0x12d8016b,0x9fc74f6b,0xbcd6de84,0xf3144e61,0xfa5817e2 +.long 0x0821ee4c,0x1f354164,0x0bc61992,0x1583eab4,0x1d72879f,0x7490caf6,0xf76ae7b2,0x998ad9f3,0xa41157f7,0x1e181950,0xe8da3a7e,0xa9d7e1e6,0x8426b95f,0x963784eb,0x542e2a10,0x0ee4ed6e +.long 0xac751e7b,0xb79d4cc5,0xfd4211bd,0x93f96472,0xc8de4fc6,0x8c72d3d2,0xdf44f064,0x7b69cbf5,0xf4bf94e1,0x3da90ca2,0xf12894e2,0x1a5325f8,0x7917d60b,0x0a437f6c,0x96c9cb5d,0x9be70486 +.long 0xe1dc5c05,0xb4d880bf,0xeebeeb57,0xd738adda,0xdf0fe6a3,0x6f0119d3,0x66eaaf5a,0x5c686e55,0xdfd0b7ec,0x9cb10b50,0x6a497c21,0xbdd0264b,0x8c546c96,0xfc093514,0x79dbf42a,0x58a947fa +.long 0x49ccd6d7,0xc0b48d4e,0x88bd5580,0xff8fb02c,0x07d473b2,0xc75235e9,0xa2188af3,0x4fab1ac5,0x97576ec0,0x030fa3bc,0x0b7e7d2f,0xe8c946e8,0x70305600,0x40a5c9cc,0xc8b013b4,0x6d8260a9 +.long 0x70bba85c,0x0368304f,0xa4a0d311,0xad090da1,0x2415eec1,0x7170e870,0x8461ea47,0xbfba35fe,0xc1e91938,0x6279019a,0x1afc415f,0xa47638f3,0xbcba0e0f,0x36c65cbb,0x034e2c48,0x02160efb +.long 0x615cd9e4,0xe6c51073,0xf1243c06,0x498ec047,0xb17b3d8c,0x3e5a8809,0x0cc565f1,0x5cd99e61,0x7851dafe,0x81e312df,0xa79061e2,0xf156f5ba,0x880c590e,0x80d62b71,0x0a39faa1,0xbec9746f +.long 0xc8ed1f7a,0x1d98a9c1,0xa81d5ff2,0x09e43bb5,0x0da0794a,0xd5f00f68,0x661aa836,0x412050d9,0x90747e40,0xa89f7c4e,0xb62a3686,0x6dc05ebb,0x308e3353,0xdf4de847,0x9fb53bb9,0x53868fbb +.long 0xcfdcf7dd,0x2b09d2c3,0x723fcab4,0x41a9fce3,0x07f57ca3,0x73d905f7,0xac8e1555,0x080f9fb1,0x9ba7a531,0x7c088e84,0xed9a147f,0x07d35586,0xaf48c336,0x602846ab,0x0ccf0e79,0x7320fd32 +.long 0xb18bd1ff,0xaa780798,0xafdd2905,0x52c2e300,0x434267cd,0xf27ea3d6,0x15605b5f,0x8b96d16d,0x4b45706b,0x7bb31049,0x743d25f8,0xe7f58b8e,0x87f30076,0xe9b5e45b,0x5d053d5a,0xd19448d6 +.long 0xd3210a04,0x1ecc8cb9,0xdafb5269,0x6bc7d463,0x67c3489f,0x3e59b10a,0x65641e1b,0x1769788c,0xbd6cb838,0x8a53b82d,0x236d5f22,0x7066d6e6,0x6908536e,0x03aa1c61,0x66ae9809,0xc971da0d +.long 0xc49a2fac,0x01b3a86b,0x3092e77a,0x3b8420c0,0x7d6fb556,0x02057300,0xbff40a87,0x6941b2a1,0x0658ff2a,0x140b6308,0x3424ab36,0x87804363,0x5751e299,0x0253bd51,0x449c3e3a,0xc75bcd76 +.long 0x7f8f875d,0x92eb4090,0x56c26bbf,0x9c9d754e,0x8110bbe7,0x158cea61,0x745f91ea,0x62a6b802,0xc6e7394b,0xa79c41aa,0xad57ef10,0x445b6a83,0x6ea6f40c,0x0c5277eb,0x88633365,0x319fe96b +.long 0x385f63cb,0x0b0fc61f,0x22bdd127,0x41250c84,0x09e942c2,0x67d153f1,0xc021ad5d,0x60920d08,0x724d81a5,0x229f5746,0x5bba3299,0xb7ffb892,0xde413032,0x518c51a1,0x3c2fd94c,0x2a9bfe77 +.long 0x3191f4fd,0xcbcde239,0xd3d6ada1,0x43093e16,0x58769606,0x184579f3,0xd236625c,0x2c94a8b3,0x5c437d8e,0x6922b9c0,0xd8d9f3c8,0x3d4ae423,0x2e7090a2,0xf72c31c1,0xd76a55bd,0x4ac3f5f3 +.long 0x6b6af991,0x342508fc,0x1b5cebbd,0x0d527100,0xdd440dd7,0xb84740d0,0x780162fd,0x748ef841,0xdfc6fafb,0xa8dbfe0e,0xf7300f27,0xeadfdf05,0xfeba4ec9,0x7d06555f,0x9e25fa97,0x12c56f83 +.long 0xd39b8c34,0x77f84203,0x3125eddb,0xed8b1be6,0xf6e39dc5,0x5bbf2441,0x6a5d678a,0xb00f6ee6,0x57d0ea99,0xba456ecf,0x17e06c43,0xdcae0f58,0x0f5b4baa,0x01643de4,0xd161b9be,0x2c324341 +.long 0xe126d468,0x80177f55,0x76748e09,0xed325f1f,0xcfa9bdc2,0x6116004a,0x3a9fb468,0x2d8607e6,0x6009d660,0x0e573e27,0x8d10c5a1,0x3a525d2e,0x3b9009a0,0xd26cb45c,0xde9d7448,0xb6b0cdc0 +.long 0xe1337c26,0x949c9976,0xd73d68e5,0x6faadebd,0xf1b768d9,0x9e158614,0x9cc4f069,0x22dfa557,0xbe93c6d6,0xccd6da17,0xa504f5b9,0x24866c61,0x8d694da1,0x2121353c,0x0140b8c6,0x1c6ca580 +.long 0xe964021e,0xc245ad8c,0x032b82b3,0xb83bffba,0x47ef9898,0xfaa220c6,0x982c948a,0x7e8d3ac6,0xbc2d124a,0x1faa2091,0x05b15ff4,0xbd54c3dd,0xc87c6fb7,0x386bf3ab,0xfdeb6f66,0xfb2b0563 +.long 0x5b45afb4,0x4e77c557,0xefb8912d,0xe9ded649,0x42f6e557,0x7ec9bbf5,0x62671f00,0x2570dfff,0x88e084bd,0x2b3bfb78,0xf37fe5b4,0xa024b238,0x95649aee,0x44e7dc04,0x5e7ec1d8,0x498ca255 +.long 0xaaa07e86,0x3bc766ea,0xf3608586,0x0db6facb,0xbdc259c8,0xbadd2549,0x041c649f,0x95af3c6e,0x02e30afb,0xb36a928c,0x008a88b8,0x9b5356ad,0xcf1d9e9d,0x4b67a5f1,0xa5d8d8ce,0xc6542e47 +.long 0x7adfb6cc,0x73061fe8,0x98678141,0xcc826fd3,0x3c80515a,0x00e758b1,0x41485083,0x6afe3247,0xb6ae8a75,0x0fcb08b9,0x4acf51e1,0xb8cf388d,0x6961b9d6,0x344a5560,0x6a97fd0c,0x1a6778b8 +.long 0xecc4c7e3,0xd840fdc1,0x16db68cc,0xde9fe47d,0xa3e216aa,0xe95f89de,0x9594a8be,0x84f1a6a4,0x5a7b162b,0x7ddc7d72,0xadc817a3,0xc5cfda19,0x78b58d46,0x80a5d350,0x82978f19,0x93365b13 +.long 0x26a1fc90,0x2e44d225,0x4d70705d,0x0d6d10d2,0xd70c45f4,0xd94b6b10,0xb216c079,0x0f201022,0x658fde41,0xcec966c5,0x7e27601d,0xa8d2bc7d,0xff230be7,0xbfcce3e1,0x0033ffb5,0x3394ff6b +.long 0x8132c9af,0xd890c509,0x361e7868,0xaac4b0eb,0xe82d15aa,0x5194ded3,0x23ae6b7d,0x4550bd2e,0xea5399d4,0x3fda318e,0x91638b80,0xd989bffa,0xa14aa12d,0x5ea124d0,0x3667b944,0x1fb1b899 +.long 0x44c44d6a,0x95ec7969,0x57e86137,0x91df144a,0x73adac44,0x915fd620,0x59a83801,0x8f01732d,0x3aa0a633,0xec579d25,0xc9d6d59c,0x06de5e7c,0xb1ef8010,0xc132f958,0xe65c1a02,0x29476f96 +.long 0xd34c3565,0x336a77c0,0x1b9f1e9e,0xef1105b2,0xf9e08002,0x63e6d08b,0xc613809e,0x9aff2f21,0x3a80e75d,0xb5754f85,0x6bbda681,0xde71853e,0x8197fd7a,0x86f041df,0x127817fa,0x8b332e08 +.long 0xb9c20cda,0x05d99be8,0xd5cd0c98,0x89f7aad5,0x5bb94183,0x7ef936fe,0xb05cd7f2,0x92ca0753,0x74a1e035,0x9d65db11,0x13eaea92,0x02628cc8,0x49e4fbf2,0xf2d9e242,0xe384f8b7,0x94fdfd9b +.long 0x63428c6b,0x65f56054,0x90b409a5,0x2f7205b2,0xff45ae11,0xf778bb78,0xc5ee53b2,0xa13045be,0x03ef77fe,0xe00a14ff,0xffef8bef,0x689cd59f,0x1e9ade22,0x3578f0ed,0x6268b6a8,0xe99f3ec0 +.long 0xea1b3c3e,0xa2057d91,0xb8823a4a,0x2d1a7053,0x2cca451e,0xabbb336a,0x2218bb5d,0xcd2466e3,0xc8cb762d,0x3ac1f42f,0x7690211f,0x7e312aae,0x45d07450,0xebb9bd73,0x46c2213f,0x207c4b82 +.long 0x375913ec,0x99d425c1,0x67908220,0x94e45e96,0xcd67dbf6,0xc08f3087,0xc0887056,0xa5670fbe,0x66f5b8fc,0x6717b64a,0x786fec28,0xd5a56aea,0xc0ff4952,0xa8c3f55f,0x457ac49b,0xa77fefae +.long 0x98379d44,0x29882d7c,0x509edc8a,0xd000bdfb,0xe66fe464,0xc6f95979,0xfa61bde0,0x504a6115,0xeffea31a,0x56b3b871,0xf0c21a54,0x2d3de26d,0x834753bf,0x21dbff31,0x69269d86,0xe67ecf49 +.long 0x151fe690,0x7a176952,0x7f2adb5f,0x03515804,0xd1b62a8d,0xee794b15,0xaae454e6,0xf004ceec,0xf0386fac,0x0897ea7c,0xd1fca751,0x3b62ff12,0x1b7a04ec,0x154181df,0xfb5847ec,0x2008e04a +.long 0x41dbd772,0xd147148e,0x22942654,0x2b419f73,0xe9c544f7,0x669f30d3,0xc8540149,0x52a2c223,0x634dfb02,0x5da9ee14,0xf47869f3,0x5f074ff0,0xa3933acc,0x74ee878d,0x4fe35ed1,0xe6510651 +.long 0xf1012e7a,0xb3eb9482,0xa8a566ae,0x51013cc0,0x47c00d3b,0xdd5e9243,0x946bb0e5,0x7fde089d,0xc731b4b3,0x030754fe,0x99fda062,0x12a136a4,0x5a1a35bc,0x7c1064b8,0x446c84ef,0xbf1f5763 +.long 0xa16d4b34,0xed29a56d,0xdca21c4f,0x7fba9d09,0x6d8de486,0x66d7ac00,0x73a2a5e1,0x60061987,0x9da28ff0,0x8b400f86,0x43c4599c,0x3133f708,0xee28cb0d,0x9911c9b8,0x8e0af61d,0xcd7e2874 +.long 0x72ed91fc,0x5a85f0f2,0x9cd4a373,0x85214f31,0x1925253c,0x881fe5be,0x91e8bc76,0xd8dc98e0,0x585cc3a2,0x7120affe,0x735bf97a,0x724952ed,0x3eb34581,0x5581e7dc,0xe52ee57d,0x5cbff4f2 +.long 0x87d8cc7b,0x8d320a0e,0xf1d280d0,0x9beaa7f3,0x9beec704,0x7a0b9571,0x5b7f0057,0x9126332e,0x8ed3bd6d,0x01fbc1b4,0xd945eb24,0x35bb2c12,0x9a8ae255,0x6404694e,0x8d6abfb3,0xb6092eec +.long 0xcc058865,0x4d76143f,0x6e249922,0x7b0a5af2,0x6a50d353,0x8aef9440,0x64f0e07a,0xe11e4bcc,0xa14a90fa,0x4472993a,0xba0c51d4,0x7706e20c,0x1532672d,0xf403292f,0x21829382,0x52573bfa +.long 0x3b5bdb83,0x6a7bb6a9,0xa4a72318,0x08da65c0,0x63eb065f,0xc58d22aa,0x1b15d685,0x1717596c,0xb266d88b,0x112df0d0,0x5941945a,0xf688ae97,0x7c292cac,0x487386e3,0x57d6985c,0x42f3b50d +.long 0x6a90fc34,0x6da4f998,0x65ca8a8d,0xc8f257d3,0x6951f762,0xc2feabca,0x74c323ac,0xe1bc81d0,0x251a2a12,0x1bc68f67,0xbe8a70dc,0x10d86587,0xf0f84d2e,0xd648af7f,0x6a43ac92,0xf0aa9ebc +.long 0x27596893,0x69e3be04,0x45bf452b,0xb6bb02a6,0xf4c698c8,0x0875c11a,0xbece3794,0x6652b5c7,0x4f5c0499,0x7b3755fd,0xb5532b38,0x6ea16558,0xa2e96ef7,0xd1c69889,0x61ed8f48,0x9c773c3a +.long 0x9b323abc,0x2b653a40,0xf0e1d791,0xe26605e1,0x4a87157a,0x45d41064,0xcbbce616,0x8f9a78b7,0xc407eddd,0xcf1e44aa,0xa35b964f,0x81ddd1d8,0xfd083999,0x473e339e,0x8e796802,0x6c94bdde +.long 0x8545d185,0x5a304ada,0x738bb8cb,0x82ae44ea,0xdf87e10e,0x628a35e3,0xa15b9fe3,0xd3624f3d,0x14be4254,0xcc44209b,0xbdbc2ea5,0x7d0efcbc,0x04c37bbe,0x1f603362,0x56a5852c,0x21f363f5 +.long 0xa8501550,0xa1503d1c,0xd8ab10bb,0x2251e0e1,0x6961c51c,0xde129c96,0x81910f68,0x1f7246a4,0x5f2591f2,0x2eb744ee,0x5e627157,0x3c47d33f,0x22f3bd68,0x4d6d62c9,0xcb8df856,0x6120a64b +.long 0x7b5d07df,0x3a9ac6c0,0x7ef39783,0xa92b9558,0xab3a9b4f,0xe128a134,0xb1252f05,0x41c18807,0x80ba9b1c,0xfc7ed089,0xc532a9dd,0xac8dc6de,0x55246809,0xbf829cef,0x5b4ee80f,0x101b784f +.long 0xb6f11603,0xc09945bb,0x41d2801e,0x57b09dbe,0xa97534a8,0xfba5202f,0xc17b9614,0x7fd8ae5f,0x78308435,0xa50ba666,0xd3868c4d,0x9572f77c,0x2dd7aab0,0x0cef7bfd,0x2c7c79ff,0xe7958e08 +.long 0x25346689,0x81262e42,0xb07c7004,0x716da290,0xb7950ee3,0x35f911ea,0x261d21b5,0x6fd72969,0x08b640d3,0x52389803,0x887f12a1,0x5b0026ee,0x742e9311,0x20e21660,0x5ff77ff7,0x0ef6d541 +.long 0xf9c41135,0x969127f0,0x68a64993,0xf21d60c9,0xe541875c,0x656e5d0c,0xa1d3c233,0xf1e0f84e,0x06002d60,0x9bcca359,0x06191552,0xbe2da60c,0x61181ec3,0x5da8bbae,0x65806f19,0x9f04b823 +.long 0xd4b79bb8,0xf1604a7d,0x52c878c8,0xaee806fb,0x8d47b8e8,0x34144f11,0x949f9054,0x72edf52b,0x2127015a,0xebfca84e,0x9cb7cef3,0x9051d0c0,0x296deec8,0x86e8fe58,0x41010d74,0x33b28188 +.long 0x171b445f,0x01079383,0x8131ad4c,0x9bcf21e3,0xc93987e8,0x8cdfe205,0xc92e8c8f,0xe63f4152,0x30add43d,0x729462a9,0xc980f05a,0x62ebb143,0x3b06e968,0x4f3954e5,0x242cf6b1,0xfe1d75ad +.long 0xaf8685c8,0x5f95c6c7,0x2f8f01aa,0xd4c1c8ce,0x2574692a,0xc44bbe32,0xd4a4a068,0xb8003478,0x2eca3cdb,0x7c8fc6e5,0xec04d399,0xea1db16b,0x8f2bc5cf,0xb05bc82e,0xf44793d2,0x763d517f +.long 0x08bd98d0,0x4451c1b8,0x6575f240,0x644b1cd4,0x7375d270,0x6907eb33,0xfa2286bd,0x56c8bebd,0xc4632b46,0xc713d2ac,0xafd60242,0x17da427a,0xc95c7546,0x313065b7,0xbf17a3de,0xf8239898 +.long 0x4c830320,0xf3b7963f,0x903203e3,0x842c7aa0,0xe7327afb,0xaf22ca0a,0x967609b6,0x38e13092,0x757558f1,0x73b8fb62,0xf7eca8c1,0x3cc3e831,0xf6331627,0xe4174474,0xc3c40234,0xa77989ca +.long 0x44a081e0,0xe5fd17a1,0xb70e296a,0xd797fb7d,0x481f719c,0x2b472b30,0xfe6f8c52,0x0e632a98,0xc5f0c284,0x89ccd116,0x2d987c62,0xf51088af,0x4c2de6cf,0x2a2bccda,0xf679f0f9,0x810f9efe +.long 0x7ffe4b3e,0xb0f394b9,0xe5fa5d21,0x0b691d21,0x9dfbbc75,0xb0bd7747,0xfaf78b00,0xd2830fda,0x52434f57,0xf78c249c,0x98096dab,0x4b1f7545,0x8ff8c0b3,0x73bf6f94,0x454e134c,0x34aef03d +.long 0xb7ac7ec5,0xf8d151f4,0xe50da7d5,0xd6ceb95a,0xdc3a0eb8,0xa1b492b0,0xb3dd2863,0x75157b69,0xc5413d62,0xe2c4c74e,0xbc5fc4c7,0xbe329ff7,0x60fa9dda,0x835a2aea,0x7445cb87,0xf117f5ad +.long 0xb0166f7a,0xae8317f4,0xceec74e6,0xfbd3e3f7,0xe0874bfd,0xfdb516ac,0xc681f3a3,0x3d846019,0x7c1620b0,0x0b12ee5c,0x2b63c501,0xba68b4dd,0x6668c51e,0xac03cd32,0x4e0bcb5b,0x2a6279f7 +.long 0x6ae85c10,0x17bd69b0,0x1dfdd3a6,0x72946979,0x2c078bec,0xd9a03268,0xbfd68a52,0x41c6a658,0x0e023900,0xcdea1024,0xb10d144d,0xbaeec121,0x058ab8dc,0x5a600e74,0xbb89ccdd,0x1333af21 +.long 0x3aaba1f1,0xdf25eae0,0x3b7144cf,0x2cada16e,0x71ab98bc,0x657ee27d,0x7a6fc96e,0x99088b4c,0x3549dbd4,0x05d5c0a0,0xf158c3ac,0x42cbdf8f,0x87edd685,0x3fb6b3b0,0x86f064d0,0x22071cf6 +.long 0xff2811e5,0xd2d6721f,0xfe7fae8c,0xdb81b703,0xd3f1f7bb,0x3cfb74ef,0x16cdeb5d,0x0cdbcd76,0x566a808c,0x4f39642a,0x340064d6,0x02b74454,0x0528fa6f,0xfabbadca,0xd3fc0bb6,0xe4c3074c +.long 0xb796d219,0xb32cb8b0,0x34741dd9,0xc3e95f4f,0x68edf6f5,0x87212125,0xa2b9cb8e,0x7a03aee4,0xf53a89aa,0x0cd3c376,0x948a28dc,0x0d8af9b1,0x902ab04f,0xcf86a3f4,0x7f42002d,0x8aacb62a +.long 0xf62ffd52,0x106985eb,0x5797bf10,0xe670b54e,0xc5e30aef,0x4b405209,0x4365b5e9,0x12c97a20,0x1fe32093,0x104646ce,0x3907a8c9,0x13cb4ff6,0xd46e726b,0x8b9f30d1,0xaba0f499,0xe1985e21 +.long 0x10a230cd,0xc573dea9,0xcd30f947,0x24f46a93,0xabe2010a,0xf2623fcf,0x73f00e4f,0x3f278cb2,0x50b920eb,0xed55c67d,0x8e760571,0xf1cb9a2d,0x0895b709,0x7c50d109,0x190d4369,0x4207cf07 +.long 0xc4127fe1,0x3b027e81,0x3ae9c566,0xa9f8b9ad,0xacbfbba5,0x5ab10851,0x569556f5,0xa747d648,0x2ba97bf7,0xcc172b5c,0xbcfa3324,0x15e0f77d,0x7686279d,0xa345b797,0xe38003d3,0x5a723480 +.long 0x8f5fcda8,0xfd8e139f,0xbdee5bfd,0xf3e558c4,0xe33f9f77,0xd76cbaf4,0x71771969,0x3a4c97a4,0xf6dce6a7,0xda27e84b,0x13e6c2d1,0xff373d96,0xd759a6e9,0xf115193c,0x63d2262c,0x3f9b7025 +.long 0x317cd062,0xd9764a31,0x199f8332,0x30779d8e,0x16b11b0b,0xd8074106,0x78aeaed8,0x7917ab9f,0x28fb1d8e,0xb67a9cbe,0x136eda33,0x2e313563,0xa371a86c,0x010b7069,0x6744e6b7,0x44d90fa2 +.long 0xd6b3e243,0x68190867,0x59048c48,0x9fe6cd9d,0x95731538,0xb900b028,0x32cae04f,0xa012062f,0x9399d082,0x8107c8bc,0x41df12e2,0x47e8c54a,0xb6ef3f73,0x14ba5117,0x81362f0b,0x22260bea +.long 0x1a18cc20,0x90ea261e,0x2321d636,0x2192999f,0xe311b6a0,0xef64d314,0x3b54a1f5,0xd7401e4c,0x6fbca2ba,0x19019983,0x8fbffc4b,0x46ad3293,0x3786bf40,0xa142d3f6,0xb67039fc,0xeb5cbc26 +.long 0x252bd479,0x9cb0ae6c,0x12b5848f,0x05e0f88a,0xa5c97663,0x78f6d2b2,0xc162225c,0x6f6e149b,0xde601a89,0xe602235c,0xf373be1f,0xd17bbe98,0xa8471827,0xcaf49a5b,0x18aaa116,0x7e1a0a85 +.long 0x270580c3,0x6c833196,0xf1c98a14,0x1e233839,0xae34e0a5,0x67b2f7b4,0xd8ce7289,0x47ac8745,0x100dd467,0x2b74779a,0x4ee50d09,0x274a4337,0x83608bc9,0x603dcf13,0xc89e8388,0xcd9da6c3 +.long 0x355116ac,0x2660199f,0xb6d18eed,0xcc38bb59,0x2f4bc071,0x3075f31f,0x265dc57e,0x9774457f,0xc6db88bb,0x06a6a9c8,0x4ec98e04,0x6429d07f,0x05ecaa8b,0x8d05e57b,0x7872ea7b,0x20f140b1 +.long 0xca494693,0xdf8c0f09,0xf252e909,0x48d3a020,0x57b14b12,0x4c5c29af,0xbf47ad1c,0x7e6fa37d,0x49a0c938,0x66e7b506,0x6be5f41f,0xb72c0d48,0xb2359412,0x6a6242b8,0x8e859480,0xcd35c774 +.long 0x87baa627,0x12536fea,0xf72aa680,0x58c1fec1,0x601e5dc9,0x6c29b637,0xde9e01b9,0x9e3c3c1c,0x2bcfe0b0,0xefc8127b,0x2a12f50d,0x35107102,0x4879b397,0x6ccd6cb1,0xf8a82f21,0xf792f804 +.long 0xa9b46402,0x509d4804,0xc10f0850,0xedddf85d,0x4b6208aa,0x928410dc,0x391012dc,0xf6229c46,0x7727b9b6,0xc5a7c41e,0xaa444842,0x289e4e4b,0xe9a947ea,0x049ba1d9,0x83c8debc,0x44f9e47f +.long 0x611f8b8e,0xfa77a1fe,0xf518f427,0xfd2e416a,0x114ebac3,0xc5fffa70,0x5d89697b,0xfe57c4e9,0xb1aaf613,0xfdd053ac,0xea585a45,0x31df210f,0x24985034,0x318cc10e,0x5f1d6130,0x1a38efd1 +.long 0x0b1e9e21,0xbf86f237,0x1dbe88aa,0xb258514d,0x90c1baf9,0x1e38a588,0xbdb9b692,0x2936a01e,0x6dd5b20c,0xd576de98,0x70f98ecf,0xb586bf71,0xc42d2fd7,0xcccf0f12,0xfb35bd7b,0x8717e61c +.long 0x35e6fc06,0x8b1e5722,0x0b3e13d5,0x3477728f,0xaa8a7372,0x150c294d,0x3bfa528a,0xc0291d43,0xcec5a196,0xc6c8bc67,0x5c2e8a7c,0xdeeb31e4,0xfb6e1c51,0xba93e244,0x2e28e156,0xb9f8b71b +.long 0x968a2ab9,0xce65a287,0x46bbcb1f,0xe3c5ce69,0xe7ae3f30,0xf8c835b9,0xff72b82b,0x16bbee26,0xfd42cd22,0x665e2017,0xf8b1d2a0,0x1e139970,0x79204932,0x125cda29,0x49c3bee5,0x7aee94a5 +.long 0x89821a66,0x68c70160,0x8f981669,0xf7c37678,0x48cc3645,0xd90829fc,0xd70addfc,0x346af049,0x370bf29c,0x2057b232,0x42e650ee,0xf90c73ce,0xa126ab90,0xe03386ea,0x975a087b,0x0e266e7e +.long 0x0fca65d9,0x80578eb9,0x16af45b8,0x7e2989ea,0xcac75a4e,0x7438212d,0x4fef36b8,0x38c7ca39,0xd402676a,0x8650c494,0xf72c7c48,0x26ab5a66,0xce3a464e,0x4e6cb426,0x2b72f841,0xf8f99896 +.long 0x1a335cc8,0x8c318491,0x6a5913e4,0x563459ba,0xc7b32919,0x1b920d61,0xa02425ad,0x805ab8b6,0x8d006086,0x2ac512da,0xbcf5c0fd,0x6ca4846a,0xac2138d7,0xafea51d8,0x344cd443,0xcb647545 +.long 0xbd7d9040,0x0429ee8f,0x819b9c96,0xee66a2de,0xdea7d744,0x54f9ec25,0x671721bb,0x2ffea642,0x114344ea,0x4f19dbd1,0xfd0dbc8b,0x04304536,0x29ec7f91,0x014b50aa,0xbb06014d,0xb5fc22fe +.long 0x1ee682e0,0x60d963a9,0xfe85c727,0xdf48abc0,0x2e707c2d,0x0cadba13,0xa645aeff,0xde608d3a,0xedafd883,0x05f1c28b,0xbd94de1f,0x3c362ede,0x13593e41,0x8dd0629d,0x766d6eaf,0x0a5e736f +.long 0xf68cf9d1,0xbfa92311,0xc1797556,0xa4f9ef87,0x5601c209,0x10d75a1f,0x09b07361,0x651c374c,0x88b5cead,0x49950b58,0x6fa9dbaa,0x0ef00058,0x4e15f33a,0xf51ddc26,0x2ef46140,0x1f8b5ca6 +.long 0xee9523f0,0x343ac0a3,0x975ea978,0xbb75eab2,0x107387f4,0x1bccf332,0x9ab0062e,0x790f9259,0x1e4f6a5f,0xf1a363ad,0x62519a50,0x06e08b84,0x7265f1ee,0x60915187,0x93ae985e,0x6a80ca34 +.long 0xaaba4864,0x81b29768,0x8d52a7d6,0xb13cabf2,0x8ead03f1,0xb5c36348,0x81c7c1c0,0xc932ad95,0xcae1e27b,0x5452708e,0x1b0df648,0x9dac4269,0xdfcdb8bc,0x233e3f0c,0xec540174,0xe6ceccdf +.long 0x95081181,0xbd0d845e,0x699355d5,0xcc8a7920,0xc3b375a8,0x111c0f6d,0xfd51e0dc,0xfd95bc6b,0x6888523a,0x4a106a26,0xcb01a06d,0x4d142bd6,0xadb9b397,0x79bfd289,0xe9863914,0x0bdbfb94 +.long 0x1660f6a6,0x29d8a229,0x551c042d,0x7f6abcd6,0x0ac3ffe8,0x13039deb,0xec8523fb,0xa01be628,0x0ca1c328,0x6ea34103,0xb903928e,0xc74114bd,0x9e9144b0,0x8aa4ff4e,0x7f9a4b17,0x7064091f +.long 0xe447f2c4,0xa3f4f521,0x604291f0,0x81b8da7a,0x7d5926de,0xd680bc46,0x34a1202f,0x84f21fd5,0x4e9df3d8,0x1d1e3181,0x39ab8d34,0x1ca4861a,0x5b19aa4a,0x809ddeec,0x4d329366,0x59f72f7e +.long 0x386d5087,0xa2f93f41,0xdd67d64f,0x40bf739c,0x66702158,0xb4494205,0x73b1e178,0xc33c65be,0x38ca6153,0xcdcd657c,0xdc791976,0x97f4519a,0xcd6e1f39,0xcc7c7f29,0x7e3c3932,0x38de9cfb +.long 0x7b793f85,0xe448eba3,0xf067e914,0xe9f8dbf9,0xf114ae87,0xc0390266,0xcd6a8e2a,0x39ed75a7,0x7ffba390,0xadb14848,0x6af9bc09,0x67f8cb8b,0x9c7476db,0x322c3848,0x52a538d6,0xa320fecf +.long 0xb2aced2b,0xe0493002,0x616bd430,0xdfba1809,0xc331be70,0x531c4644,0x90d2e450,0xbc04d32e,0x0f9f142d,0x1805a0d1,0x47ee5a23,0x2c44a0c5,0x3989b4e3,0x31875a43,0x0c063481,0x6b1949fd +.long 0xbe0f4492,0x2dfb9e08,0xe9d5e517,0x3ff0da03,0xf79466a8,0x03dbe9a1,0x15ea9932,0x0b87bcd0,0xab1f58ab,0xeb64fc83,0x817edc8a,0x6d9598da,0x1d3b67e5,0x699cff66,0x92635853,0x645c0f29 +.long 0xeabaf21c,0x253cdd82,0x2241659e,0x82b9602a,0x2d9f7091,0x2cae07ec,0x8b48cd9b,0xbe4c720c,0x6f08d6c9,0x6ce5bc03,0xaf10bf40,0x36e8a997,0x3e10ff12,0x83422d21,0xbcc12494,0x7b26d3eb +.long 0xc9469ad6,0xb240d2d0,0x30afa05b,0xc4a11b4d,0xdd6ba286,0x4b604ace,0x3ee2864c,0x18486600,0x8d9ce5be,0x5869d6ba,0xff4bfb0d,0x0d8f68c5,0x5700cf73,0xb69f210b,0x6d37c135,0x61f6653a +.long 0x5aff5a48,0xff3d432b,0x72ba3a69,0x0d81c4b9,0xfa1899ef,0xee879ae9,0x2d6acafd,0xbac7e2a0,0x1c664399,0xd6d93f6c,0x5bcb135d,0x4c288de1,0x9dab7cbf,0x83031dab,0x3abbf5f0,0xfe23feb0 +.long 0xcdedca85,0x9f1b2466,0x1a09538c,0x140bb710,0x5e11115d,0xac8ae851,0x6f03f59e,0x0d63ff67,0x7d234afb,0x755e5551,0x7e208fc1,0x61c2db4e,0xf28a4b5d,0xaa9859ce,0x34af030f,0xbdd6d4fc +.long 0x3be01cb1,0xd1c4a26d,0x243aa07c,0x9ba14ffc,0xb2503502,0xf95cd3a9,0x7d2a93ab,0xe379bc06,0xd4ca8d68,0x3efc18e9,0x80bb412a,0x083558ec,0x9645a968,0xd903b940,0x9ba6054f,0xa499f0b6 +.long 0xb8349abe,0x208b573c,0x30b4fc1c,0x3baab3e5,0xcb524990,0x87e978ba,0xccdf0e80,0x3524194e,0x7d4bcc42,0x62711725,0xb90109ba,0xe90a3d9b,0x1323e1e0,0x3b1bdd57,0x5eae1599,0xb78e9bd5 +.long 0x9e03d278,0x0794b746,0xd70e6297,0x80178605,0x99c97855,0x171792f8,0xf5a86b5c,0x11b393ee,0xd8884f27,0x48ef6582,0xbf19ba5f,0xbd44737a,0xa42062c6,0x8698de4c,0x61ce9c54,0x8975eb80 +.long 0xd7fe71f3,0xd50e57c7,0xbc97ce38,0x15342190,0x4df07b63,0x51bda2de,0x200eb87d,0xba12aeae,0xa9b4f8f6,0xabe135d2,0xfad6d99c,0x04619d65,0x7994937c,0x4a6683a7,0x6f94f09a,0x7a778c8b +.long 0x20a71b89,0x8c508623,0x1c229165,0x241a2aed,0xaaf83a99,0x352be595,0x1562bac8,0x9fbfee7f,0x5c4017e3,0xeaf658b9,0x15120b86,0x1dc7f9e0,0x4c034d6f,0xd84f13dd,0xeaea3038,0x283dd737 +.long 0xcd85d6a2,0x197f2609,0xfae60177,0x6ebbc345,0x4e12fede,0xb80f031b,0x07a2186b,0xde55d0c2,0x24dcdd5a,0x1fb3e37f,0x7ed191fb,0x8d602da5,0x76023e0d,0x108fb056,0x459c20c0,0x70178c71 +.long 0x3fe54cf0,0xfad5a386,0x02bbb475,0xa4a3ec4f,0x919d94d7,0x1aa5ec20,0xa81e4ab3,0x5d3b63b5,0x5ad3d2af,0x7fa733d8,0xd1ac7a37,0xfbc586dd,0x40779614,0x282925de,0xe74a242a,0xfe0ffffb +.long 0x906151e5,0x3f39e67f,0x55e10649,0xcea27f5f,0xc17cf7b7,0xdca1d4e1,0x2fe2362d,0x0c326d12,0x7dd35df3,0x05f7ac33,0xc396dbdf,0x0c3b7639,0x03b7db1c,0x0912f5ac,0x5c9ed4a9,0x9dea4b70 +.long 0xaae3f639,0x475e6e53,0xfc278bac,0xfaba0e7c,0x9490375f,0x16f9e221,0xa5a7ed0a,0xaebf9746,0xf41ad5d6,0x45f9af3f,0xb2e99224,0x03c4623c,0xb3cf56aa,0x82c5bb5c,0x34567ed3,0x64311819 +.long 0x8be489ac,0xec57f211,0xb9a1104b,0x2821895d,0x6064e007,0x610dc875,0x5b20d0fe,0x8e526f3f,0x5b645aee,0x6e71ca77,0x800e10ff,0x3d1dcb9f,0x189cf6de,0x36b51162,0x6bb17353,0x2c5a3e30 +.long 0x2a6c6fbf,0xc186cd3e,0x4bf97906,0xa74516fa,0x279d6901,0x5b4b8f4b,0x2b573743,0x0c4e57b4,0xb6e386b6,0x75fdb229,0x99deac27,0xb46793fd,0xcf712629,0xeeec47ea,0xcbc3b2dd,0xe965f3c4 +.long 0x425c6559,0x8dd1fb83,0x0af06fda,0x7fc00ee6,0x33d956df,0xe98c9225,0x4fbdc8a2,0x0f1ef335,0xb79b8ea2,0x2abb5145,0xbdbff288,0x40fd2945,0xd7185db7,0x6a814ac4,0xc084609a,0xc4329d6f +.long 0xed1be45d,0xc9ba7b52,0xe4cd2c74,0x891dd20d,0x824139b1,0x5a4d4a7f,0xb873c710,0x66c17716,0x2843c4e0,0x5e5bc141,0xb97eb5bf,0xd5ac4817,0x450c95c7,0xc0f8af54,0x318406c5,0xc91b3fa0 +.long 0xab9d97f8,0x360c340a,0x90a2d611,0xfb57bd07,0xa6a6f7e5,0x4339ae3c,0x2feb8a10,0x9c1fcd2a,0xc7ea7432,0x972bcca9,0x308076f6,0x1b0b924c,0x2a5b4ca5,0x80b2814a,0x61ef3b29,0x2f78f55b +.long 0xc18a414f,0xf838744a,0x903d0a86,0xc611eaae,0x2a453f55,0x94dabc16,0x14efb279,0xe6f2e3da,0x9320dc3c,0x5b7a6017,0x8df6b5a4,0x692e382f,0x2d40fa90,0x3f5e15e0,0x643dd318,0xc87883ae +.long 0x53544774,0x511053e4,0x3adba2bc,0x834d0ecc,0xbae371f5,0x4215d7f7,0x6c8663bc,0xfcfd57bf,0xd6901b1d,0xded2383d,0xb5587dc3,0x3b49fbb4,0x07625f62,0xfd44a08d,0x9de9b762,0x3ee4d65b +.long 0x0d63d1fa,0x64e5137d,0x02a9d89f,0x658fc052,0x50436309,0x48894874,0xd598da61,0xe9ae30f8,0x818baf91,0x2ed710d1,0x8b6a0c20,0xe27e9e06,0x1c1a6b44,0x1e28dcfb,0xd6ac57dc,0x883acb64 +.long 0xc2c6ff70,0x8735728d,0xc5dc2235,0x79d6122f,0x19e277f9,0x23f5d003,0xdded8cc7,0x7ee84e25,0x63cd880a,0x91a8afb0,0x3574af60,0x3f3ea7c6,0x02de7f42,0x0cfcdc84,0xb31aa152,0x62d0792f +.long 0x8a5807ce,0x8e1b4e43,0xe4109a7e,0xad283893,0xafd59dda,0xc30cc9cb,0x3d8d8093,0xf65f36c6,0xa60d32b2,0xdf31469e,0x3e8191c8,0xee93df4b,0x355bdeb5,0x9c1017c5,0x8616aa28,0xd2623185 +.long 0xdec31a21,0xb02c83f9,0x6ad9d573,0x988c8b23,0xa57be365,0x53e983ae,0x646f834e,0xe968734d,0x5da6309b,0x9137ea8f,0xc1f1ce16,0x10f3a624,0xca440921,0x782a9ea2,0x5b46f1b5,0xdf94739e +.long 0xcce85c9b,0x9f9be006,0xa4c7c2d3,0x360e70d6,0xaefa1e60,0x2cd5beea,0x8c3d2b6d,0x64cf63c0,0xe1cf6f90,0xfb107fa3,0xd5e044e6,0xb7e937c6,0xce34db9f,0x74e8ca78,0x3e210bd0,0x4f8b36c1 +.long 0x34a35ea8,0x1df165a4,0x4d4412f6,0x3418e0f7,0x518836c3,0x5af1f8af,0x130e1965,0x42ceef4d,0x543a1957,0x5560ca0b,0x886cb123,0xc33761e5,0xfe98ed30,0x66624b1f,0x1090997d,0xf772f4bf +.long 0x4885d410,0xf4e540bb,0x9ba5f8d7,0x7287f810,0xde98dfb1,0x22d0d865,0xbcfbb8a3,0x49ff51a1,0x6bc3012e,0xb6b6fa53,0x170d541d,0x3d31fd72,0x4b0f4966,0x8018724f,0x87dbde07,0x79e7399f +.long 0xf4f8b16a,0x56f8410e,0xc47b266a,0x97241afe,0x6d9c87c1,0x0a406b8e,0xcd42ab1b,0x803f3e02,0x04dbec69,0x7f0309a8,0x3bbad05f,0xa83b85f7,0xad8e197f,0xc6097273,0x5067adc1,0xc097440e +.long 0x3524ff16,0x730eafb6,0x823fc6ce,0xd7f9b51e,0x443e4ac0,0x27bd0d32,0x4d66f217,0x40c59ad9,0x17c387a4,0x6c33136f,0xeb86804d,0x5043b8d5,0x675a73c9,0x74970312,0xf16669b6,0x838fdb31 +.long 0x418e7ddd,0xc507b6dd,0x472f19d6,0x39888d93,0x0c27eb4d,0x7eae26be,0xfbabb884,0x17b53ed3,0x2b01ae4f,0xfc27021b,0xcf488682,0x88462e87,0x215e2d87,0xbee096ec,0xd242e29b,0xeb2fea9a +.long 0xb821fc28,0x5d985b5f,0xdc1e2ad2,0x89d2e197,0x9030ba62,0x55b566b8,0x4f41b1c6,0xe3fd41b5,0xb9a96d61,0xb738ac2e,0x369443f4,0x7f8567ca,0xf803a440,0x8698622d,0x8fe2f4dc,0x2b586236 +.long 0x56b95bce,0xbbcc00c7,0x616da680,0x5ec03906,0x72214252,0x79162ee6,0x86a892d2,0x43132b63,0x2f3263bf,0x4bdd3ff2,0x9cd0a142,0xd5b3733c,0x44415ccb,0x592eaa82,0x8d5474ea,0x663e8924 +.long 0x5236344e,0x8058a25e,0xbda76ee6,0x82e8df9d,0x11cc3d22,0xdcf6efd8,0x3b4ab529,0x00089cda,0xbd38a3db,0x91d3a071,0xef72b925,0x4ea97fc0,0xea3edf75,0x0c9fc15b,0xa4348ed3,0x5a6297cd +.long 0xce7c42d4,0x0d38ab35,0x82feab10,0x9fd493ef,0x82111b45,0x46056b6d,0x73efc5c3,0xda11dae1,0x5545a7fb,0xdc740278,0x40d507e6,0xbdb2601c,0x7066fa58,0x121dfeeb,0x39ae8c2a,0x214369a8 +.long 0x06e0956c,0x195709cb,0x010cd34b,0x4c9d254f,0x0471a532,0xf51e13f7,0x1e73054d,0xe19d6791,0xdb5c7be3,0xf702a628,0xb24dde05,0xc7141218,0xf29b2e2e,0xdc18233c,0x85342dba,0x3a6bd1e8 +.long 0xb311898c,0x3f747fa0,0xcd0eac65,0xe2a272e4,0xf914d0bc,0x4bba5851,0xc4a43ee3,0x7a1a9660,0xa1c8cde9,0xe5a367ce,0x7271abe3,0x9d958ba9,0x3d1615cd,0xf3ff7eb6,0xf5ae20b0,0xa2280dce +.long 0xcf640147,0x56dba5c1,0x5e83d118,0xea5a2e3d,0xda24c511,0x04cd6b6d,0xe854d214,0x1c0f4671,0x69565381,0x91a6b7a9,0xdecf1f5b,0xdc966240,0xfcf5d009,0x1b22d21c,0x9021dbd5,0x2a05f641 +.long 0xd4312483,0x8c0ed566,0x643e216f,0x5179a95d,0x17044493,0xcc185fec,0x54991a21,0xb3063339,0x0081a726,0xd801ecdb,0x4fa89bbb,0x0149b0c6,0x4391b6b9,0xafe9065a,0xd633f3a3,0xedc92786 +.long 0xae6a8e13,0xe408c24a,0x9f3897ab,0x85833fde,0xd81a0715,0x43800e7e,0xb44ffc5f,0xde08e346,0xcdeff2e0,0x7094184c,0x165eaed1,0x49f9387b,0x777c468a,0x635d6129,0x538c2dd8,0x8c0dcfd1 +.long 0x7a6a308b,0xd6d9d9e3,0x4c2767d3,0x62375830,0xf38cbeb6,0x874a8bc6,0xccb6fd9e,0xd94d3f1a,0xba21f248,0x92a9735b,0x6cd1efb0,0x272ad0e5,0x05b03284,0x7437b69c,0x6948c225,0xe7f04702 +.long 0xcba2ecec,0x8a56c04a,0xe3a73e41,0x0c181270,0x03e93725,0x6cb34e9d,0x496521a9,0xf77c8713,0xfa7f9f90,0x94569183,0x8c9707ad,0xf2e7aa4c,0x26c1c9a3,0xced2c9ba,0x40197507,0x9109fe96 +.long 0xe9adfe1c,0x9ae868a9,0x314e39bb,0x3984403d,0xf2fe378f,0xb5875720,0xba44a628,0x33f901e0,0x3652438c,0xea1125fe,0x9dd1f20b,0xae9ec4e6,0xbebf7fbd,0x1e740d9e,0x42dbe79c,0x6dbd3ddc +.long 0xedd36776,0x62082aec,0xe9859039,0xf612c478,0x032f7065,0xa493b201,0x4ff9b211,0xebd4d8f2,0xaac4cb32,0x3f23a0aa,0x15ed4005,0xea3aadb7,0xafa27e63,0xacf17ea4,0xc11fd66c,0x56125c1a +.long 0x3794f8dc,0x266344a4,0x483c5c36,0xdcca923a,0x3f9d10a0,0x2d6b6bbf,0x81d9bdf3,0xb320c5ca,0x47b50a95,0x620e28ff,0xcef03371,0x933e3b01,0x99100153,0xf081bf85,0xc3a8c8d6,0x183be9a0 +.long 0xd6bbe24d,0x4e3ddc5a,0x53843795,0xc6c74630,0x65ec2d4c,0x78193dd7,0xcd3c89b2,0xb8df26cc,0x5a483f8d,0x98dbe399,0x7dd3313a,0x72d8a957,0xab0bd375,0x65087294,0x7c259d16,0xfcd89248 +.long 0x7613aa81,0x8a9443d7,0x85fe6584,0x80100800,0x7fb10288,0x70fc4dbc,0xe86beee8,0xf58280d3,0x7c978c38,0x14fdd82f,0x0de44d7b,0xdf1204c1,0x4160252f,0xa08a1c84,0xc17646a5,0x591554ca +.long 0xa05bd525,0x214a37d6,0x07957b3c,0x48d5f09b,0xd7109bc9,0x0247cdcb,0x30599ce7,0x40f9e4bb,0xf46ad2ec,0xc325fa03,0xc3e3f9ee,0x00f766cf,0xd43a4577,0xab556668,0x3ee03b93,0x68d30a61 +.long 0x77b46a08,0x7ddc81ea,0xc7480699,0xcf5a6477,0x6633f683,0x43a8cb34,0x92363c60,0x1b867e6b,0x1f60558e,0x43921114,0x2f41450e,0xcdbcdd63,0xcc630e8b,0x7fc04601,0x97038b43,0xea7c66d5 +.long 0x04e99fd8,0x7259b8a5,0x4785549a,0x98a8dd12,0x840552e1,0x0e459a7c,0x4bb0909e,0xcdfcf4d0,0x53758da7,0x34a86db2,0xeac997e1,0xe643bb83,0x530c5b7e,0x96400bd7,0xb41c8b52,0x9f97af87 +.long 0xfbeee3f9,0x34fc8820,0x49091afd,0x93e53490,0x9a31f35c,0x764b9be5,0x57e3d924,0x71f37864,0x943aa75e,0x02fb34e0,0xab8ff6e4,0xa18c9c58,0x33cf0d19,0x080f31b1,0x083518a7,0x5c9682db +.long 0xb709c3de,0x873d4ca6,0x3575b8f0,0x64a84262,0x020154bb,0x6275da1f,0xd17cf1ab,0x97678caa,0x951a95c3,0x8779795f,0x50fccc08,0xdd35b163,0x33d8f031,0x32709627,0x498dd85c,0x3c5ab10a +.long 0x41dca566,0xb6c185c3,0xd8622aa3,0x7de7feda,0x901b6dfb,0x99e84d92,0x7c4ad288,0x30a02b0e,0x2fd3cf36,0xc7c81daa,0xdf89e59f,0xd1319547,0xcd496733,0xb2be8184,0x93d3412b,0xd5f449eb +.long 0x25fe531d,0x7ea41b1b,0x6a1d5646,0xf9797432,0x2bde501a,0x86067f72,0x0c85e89c,0xf91481c0,0xf8b05bc6,0xca8ee465,0x02e83cda,0x1844e1cf,0xb4dbe33b,0xca82114a,0x4eabfde2,0x0f9f8769 +.long 0x38b27fe2,0x4936b1c0,0xaba402df,0x63b6359b,0x656bdbab,0x40c0ea2f,0x6580c39c,0x9c992a89,0x2a60aed1,0x600e8f15,0xe0bf49df,0xeb089ca4,0x2d42d99a,0x9c233d7d,0x4c6bc2fa,0x648d3f95 +.long 0xe1add3f3,0xdcc383a8,0x4f64a348,0xf42c0c6a,0x0030dbdb,0x2abd176f,0x7d6c215e,0x4de501a3,0x4b9a64bc,0x4a107c1f,0x2496cd59,0xa77f0ad3,0x7688dffb,0xfb78ac62,0x67937d8e,0x7025a2ca +.long 0xd1a8f4e7,0xfde8b2d1,0x7354927c,0xf5b3da47,0xd9205735,0xe48606a3,0xe177b917,0xac477cc6,0xa883239a,0xfb1f73d2,0xcc8b8357,0xe12572f6,0xfb1f4f86,0x9d355e9c,0xd9f3ec6e,0x89b795f8 +.long 0xb54398dc,0x27be56f1,0x3fedeed5,0x1890efd7,0x9c6d0140,0x62f77f1f,0x596f0ee4,0x7ef0e314,0xcc61dab3,0x50ca6631,0xf4866e4f,0x4a39801d,0xae363b39,0x66c8d032,0x2ead66aa,0x22c591e5 +.long 0xde02a53e,0x954ba308,0xd389f357,0x2a6c060f,0xfbf40b66,0xe6cfcde8,0xc6340ce1,0x8e02fc56,0x73adb4ba,0xe4957795,0xa7b03805,0x7b86122c,0x0c8e6fa6,0x63f83512,0x057d7804,0x83660ea0 +.long 0x21ba473c,0xbad79105,0xded5389d,0xb6c50bee,0xaa7c9bc0,0xee2caf4d,0x8c4e98a7,0xd97b8de4,0xab3bbddb,0xa9f63e70,0x2597815a,0x3898aabf,0xac15b3d9,0x7659af89,0x703ce784,0xedf7725b +.long 0xe085116b,0x25470fab,0x87285310,0x04a43375,0xe2bfd52f,0x4e39187e,0x7d9ebc74,0x36166b44,0xfd4b322c,0x92ad433c,0xba79ab51,0x726aa817,0xc1db15eb,0xf96eacd8,0x0476be63,0xfaf71e91 +.long 0x641fad98,0xdd69a640,0x29622559,0xb7995918,0xde4199dc,0x03c6daa5,0xad545eb4,0x92cadc97,0x256534e4,0x1028238b,0x8595409a,0x73e80ce6,0xd05dc59b,0x690d4c66,0x981dee80,0xc95f7b8f +.long 0xd856ac25,0xf4337014,0xac524dca,0x441bd9dd,0x5f0499f5,0x640b3d85,0xd5fda182,0x39cf84a9,0xb2aa95a0,0x04e7b055,0x0ddf1860,0x29e33f0a,0x423f6b43,0x082e74b5,0x0aaa2b0f,0x217edeb9 +.long 0x83cbea55,0x58b83f35,0xbc185d70,0xc485ee4d,0x1e5f6992,0x833ff03b,0xcf0c0dd5,0xb5b9b9cc,0x4e9e8a50,0x7caaee8e,0x6269dafd,0x462e907b,0xfbe791c6,0x6ed5cee9,0xed430790,0x68ca3259 +.long 0x13b5ba88,0x2b72bdf2,0x35ef0ac4,0x60294c8a,0x19b99b08,0x9c3230ed,0x6c2589aa,0x560fff17,0xd6770374,0x552b8487,0x9a56f685,0xa373202d,0x45f175d9,0xd3e7f907,0xd080d810,0x3c2f315f +.long 0x7b9520e8,0x1130e9dd,0x0af037b5,0xc078f9e2,0x1e9c104c,0x38cd2ec7,0xc472fe92,0x0f684368,0x6247e7ef,0xd3f1b5ed,0x396dfe21,0xb32d33a9,0x4a9aa2c2,0x46f59cf4,0xff0f7e41,0x69cd5168 +.long 0x4b3234da,0x3f59da0f,0xb4579ebe,0xcf0b0235,0x6d2476c7,0x6d1cbb25,0x9dc30f08,0x4f0837e6,0x906f6e98,0x9a4075bb,0xc761e7d1,0x253bb434,0x6e73af10,0xde2e645f,0x0c5f131c,0xb89a4060 +.long 0xb8cc037f,0xd12840c5,0x7405bb47,0x3d093a5b,0x206348b8,0x6202c253,0xc55a3ca7,0xbf5d57fc,0x8c3bef48,0x89f6c90c,0x5a0a960a,0x23ac7623,0x552b42ab,0xdfbd3d6b,0x132061f6,0x3ef22458 +.long 0xc97e6516,0xd74e9bda,0xc230f49e,0x88779360,0x1e74ea49,0xa6ec1de3,0x3fb645a2,0x581dcee5,0x8f483f14,0xbaef2391,0xd137d13b,0x6d2dddfc,0xd2743a42,0x54cde50e,0xe4d97e67,0x89a34fc5 +.long 0x12e08ce5,0x13f1f5b3,0xa7f0b2ca,0xa80540b8,0x01982805,0x854bcf77,0x233bea04,0xb8653ffd,0x02b0b4c9,0x8e7b8787,0x9acb170a,0x2675261f,0x930c14e5,0x061a9d90,0xdef0abea,0xb59b30e0 +.long 0x0200ec7d,0x1dc19ea6,0x0bce132b,0xb6f4a3f9,0xf13e27e0,0xb8d5de90,0x1fade16f,0xbaee5ef0,0xe4c6cf38,0x6f406aaa,0xd1369815,0xab4cfe06,0xefd550c6,0x0dcffe87,0x75ff7d39,0x9d4f59c7 +.long 0x51deb6ad,0xb02553b1,0xb1877749,0x812399a4,0xca6006e1,0xce90f71f,0xb02b6e77,0xc32363a6,0xdc36c64d,0x02284fbe,0xa7e1ae61,0x86c81e31,0xb909d94a,0x2576c7e5,0x818b2bb0,0x8b6f7d02 +.long 0x56faa38a,0xeca3ed07,0x9305bb54,0xa3790e6c,0x7bc73061,0xd784eeda,0x6dd50614,0xbd56d369,0x229a8aa9,0xd6575949,0x4595ec28,0xdcca8f47,0x06ab4fe6,0x814305c1,0x24f43f16,0xc8c39768 +.long 0x523f2b36,0xe2a45f36,0x920d93bb,0x995c6493,0x90f1632b,0xf8afdab7,0x1c295954,0x79ebbecd,0x79592f48,0xc7bb3ddb,0x5f88e998,0x67216a7b,0xbc01193e,0xd91f098b,0xb1db83fc,0xf7d928a5 +.long 0xe991f600,0x55e38417,0x2981a934,0x2a91113e,0x06b13bde,0xcbc9d648,0x0755ff44,0xb011b6ac,0x045ec613,0x6f4cb518,0xc2f5930a,0x522d2d31,0x382e65de,0x5acae1af,0x27bc966f,0x57643067 +.long 0x1c7193f0,0x5e12705d,0x3be8858e,0xf0f32f47,0x96c6dfc7,0x785c3d7d,0xbf31795d,0xd75b4a20,0x342659d4,0x91acf17b,0x44f0378f,0xe596ea34,0xce52129d,0x4515708f,0x79f2f585,0x17387e1e +.long 0x49dee168,0x72cfd2e9,0x3e2af239,0x1ae05223,0x1d94066a,0x009e75be,0x38abf413,0x6cca31c7,0x9bc49908,0xb50bd61d,0xf5e2bc1e,0x4a9b4a8c,0x946f83ac,0xeb6cc5f7,0xebffab28,0x27da93fc +.long 0x4821c8c5,0xea314c96,0xa83c15f4,0x8de49ded,0x7af33004,0x7a64cf20,0xc9627e10,0x45f1bfeb,0x54b9df60,0x878b0626,0xa95c0b33,0x5e4fdc3c,0xc2035d8e,0xe54a37ca,0x80f20b8c,0x9087cda9 +.long 0x8319ade4,0x36f61c23,0xde8cfdf8,0x766f287a,0x346f3705,0x48821948,0x16e4f4a2,0x49a7b853,0x5cedadfd,0xb9b3f8a7,0x8db2a815,0x8f562815,0x01f68f95,0xc0b7d554,0x688a208e,0x12971e27 +.long 0xd0ff34fc,0xc9f8b696,0x1222718c,0x20824de2,0x0c95284d,0x7213cf9f,0xdc158240,0xe2ad741b,0x54043ccf,0x0ee3a6df,0xd84412b3,0x16ff479b,0xdfc98af0,0xf6c74ee0,0x52fcd2fb,0xa78a169f +.long 0x99c930e9,0xd8ae8746,0x49e117a5,0x1d33e858,0x6624759f,0x7581fcb4,0x5bedc01d,0xde50644f,0xcaf3155e,0xbeec5d00,0xbc73e75f,0x672d66ac,0x270b01db,0x86b9d8c6,0x50f55b79,0xd249ef83 +.long 0x73978fe3,0x6131d6d4,0x754b00a1,0xcc4e4542,0x57dfcfe9,0x4e05df05,0x51ef6bf0,0x94b29cdd,0x9bc7edf2,0xe4530cff,0xd3da65f3,0x8ac236fd,0xc8eb0b48,0x0faf7d5f,0x660eb039,0x4d2de14c +.long 0x60430e54,0xc006bba7,0xda3289ab,0x10a2d0d6,0xd7979c59,0x9c037a5d,0xa116d944,0x04d1f3d3,0x8a0983cd,0x9ff22473,0xc883cabb,0x28e25b38,0x47a58995,0xe968dba5,0x774eebdf,0x2c80b505 +.long 0x4a953beb,0xee763b71,0x1642e7f6,0x502e223f,0x61d5e722,0x6fe4b641,0xdbef5316,0x9d37c5b0,0xf8330bc7,0x0115ed70,0x75a72789,0x139850e6,0xffceccc2,0x27d7faec,0x4fd9f7f6,0x3016a860 +.long 0x4cd8f64c,0xc492ec64,0x279d7b51,0x58a2d790,0x1fc75256,0x0ced1fc5,0x8f433017,0x3e658aed,0x05da59eb,0x0b61942e,0x0ddc3722,0xba3d60a3,0x742e7f87,0x7c311cd1,0xf6b01b6e,0x6473ffee +.long 0x692ac542,0x8303604f,0x227b91d3,0xf079ffe1,0x15aaf9bd,0x19f63e63,0xf1f344fb,0xf99ee565,0xd6219199,0x8a1d661f,0xd48ce41c,0x8c883bc6,0x3c74d904,0x1065118f,0x0faf8b1b,0x713889ee +.long 0x81a1b3be,0x972b3f8f,0xce2764a0,0x4f3ce145,0x28c4f5f7,0xe2d0f1cc,0xc7f3985b,0xdeee0c0d,0xd39e25c3,0x7df4adc0,0xc467a080,0x40619820,0x61cf5a58,0x440ebc93,0x422ad600,0x527729a6 +.long 0xb1b76ba6,0xca6c0937,0x4d2026dc,0x1a2eab85,0x19d9ae0a,0xb1715e15,0xbac4a026,0xf1ad9199,0x07ea7b0e,0x35b3dfb8,0x3ed9eb89,0xedf5496f,0x2d6d08ab,0x8932e5ff,0x25bd2731,0xf314874e +.long 0x3f73f449,0xefb26a75,0x8d44fc79,0x1d1c94f8,0x3bc0dc4d,0x49f0fbc5,0x3698a0d0,0xb747ea0b,0x228d291e,0x5218c3fe,0x43c129d6,0x35b804b5,0xd1acc516,0xfac859b8,0x95d6e668,0x6c10697d +.long 0x0876fd4e,0xc38e438f,0x83d2f383,0x45f0c307,0xb10934cb,0x203cc2ec,0x2c9d46ee,0x6a8f2439,0x65ccde7b,0xf16b431b,0x27e76a6f,0x41e2cd18,0x4e3484d7,0xb9c8cf8f,0x8315244a,0x64426efd +.long 0xfc94dea3,0x1c0a8e44,0xdad6a0b0,0x34c8cdbf,0x04113cef,0x919c3840,0x15490ffa,0xfd32fba4,0x795dcfb7,0x58d190f6,0x83588baf,0xfef01b03,0xca1fc1c0,0x9e6d1d63,0xf0a41ac9,0x53173f96 +.long 0xba16f73b,0x2b1d402a,0x8cf9b9fc,0x2fb31014,0x446ef7bf,0x2d51e60e,0xb91e1745,0xc731021b,0x4fee99d4,0x9d3b4724,0xfac5c1ea,0x4bca48b6,0xbbea9af7,0x70f5f514,0x974c283a,0x751f55a5 +.long 0xcb452fdb,0x6e30251a,0x50f30650,0x31ee6965,0x933548d9,0xb0b3e508,0xf4b0ef5b,0xb8949a4f,0x3c88f3bd,0x208b8326,0xdb1d9989,0xab147c30,0x44d4df03,0xed6515fd,0xe72eb0c5,0x17a12f75 +.long 0x36cf69db,0x3b59796d,0x56670c18,0x1219eee9,0x7a070d8e,0xfe3341f7,0xa327f90c,0x9b70130b,0x0ae18e0e,0x36a32462,0x46c0a638,0x2021a623,0xc62eb0d4,0x251b5817,0x4c762293,0x87bfbcdf +.long 0xcdd61d64,0xf78ab505,0xc8c18857,0x8c7a53fc,0x16147515,0xa653ce6f,0xea7d52d5,0x9c923aa5,0x5c18871f,0xc24709cb,0x73b3cc74,0x7d53bec8,0xfdd1d4c4,0x59264aff,0x240da582,0x5555917e +.long 0x548f5a0e,0xcae8bbda,0x3bbfbbe1,0x1910eaba,0x7677afc3,0xae579685,0x73ff0b5c,0x49ea61f1,0x4f7c3922,0x78655478,0x20c68eef,0x95d337cd,0xdf779ab9,0x68f1e1e5,0xb5cf69a8,0x14b491b0 +.long 0x28e3fe89,0x7a6cbbe0,0xc5aac0eb,0xe7e1fee4,0x697e5140,0x7f47eda5,0xb454921f,0x4f450137,0x95cd8185,0xdb625f84,0xcdb2e583,0x74be0ba1,0xdd5e6de4,0xaee4fd7c,0xe8101739,0x4251437d +.long 0xac620366,0x686d72a0,0xb6d59344,0x4be3fb9c,0xa1eb75b9,0x6e8b44e7,0x91a5c10c,0x84e39da3,0xb38f0409,0x37cc1490,0x2c2ade82,0x02951943,0x1190a2d8,0x9b688783,0x231182ba,0x25627d14 +.long 0x658a6d87,0x6eb550aa,0xcf9c7325,0x1405aaa7,0x5c8748c9,0xd147142e,0x53ede0e0,0x7f637e4f,0x14ffad2c,0xf8ca2776,0xbafb6791,0xe58fb1bd,0xbf8f93fc,0x17158c23,0x0a4a4655,0x7f15b373 +.long 0xd842ca72,0x39d4add2,0x3ed96305,0xa71e4391,0x6700be14,0x5bb09cbe,0xd8befcf6,0x68d69d54,0x37183bcf,0xa45f5367,0x3370dff7,0x7152b7bb,0xbf12525b,0xcf887baa,0xd6d1e3cd,0xe7ac7bdd +.long 0x81fdad90,0x25914f78,0x0d2cf6ab,0xcf638f56,0xcc054de5,0xb90bc03f,0x18b06350,0x932811a7,0x9bbd11ff,0x2f00b330,0xb4044974,0x76108a6f,0xa851d266,0x801bb9e0,0xbf8990c1,0x0dd099be +.long 0xabe32986,0x58c5aaaa,0x50d59c27,0x0fe9dd2a,0x8d307305,0x84951ff4,0x86529b78,0x6c23f829,0x0b136a79,0x50bb2218,0x77a20996,0x7e2174de,0xc0bb4da6,0x6f00a4b9,0xefdde8da,0x89a25a17 +.long 0xc11ee01d,0xf728a27e,0xe5f10dfb,0xf900553a,0x02ec893c,0x189a83c8,0x23f66d77,0x3ca5bdc1,0x97eada9f,0x98781537,0x10256230,0x59c50ab3,0x323c69b3,0x346042d9,0x2c460449,0x1b715a6d +.long 0x6ae06e0b,0xa41dd476,0x9d42e25f,0xcdd7888e,0x56b25a20,0x0f395f74,0x8700e27e,0xeadfe0ae,0x69950093,0xb09d52a9,0x327f8d40,0x3525d9cb,0x67df886a,0xb8235a94,0x035faec2,0x77e4b0dd +.long 0x517d7061,0x115eb20a,0x6c2df683,0x77fe3433,0xcdc6fc67,0x6870ddc7,0x0b87de83,0xb1610588,0xd9c4ddbe,0x343584ca,0x3d754be2,0xb3164f1c,0xc1e6c894,0x0731ed3a,0x4f6b904c,0x26327dec +.long 0x97b5cd32,0x9d49c6de,0xb5eceecd,0x40835dae,0xd9ded7fe,0xc66350ed,0x7a678804,0x8aeebb5c,0x5b8ee9ec,0x51d42fb7,0x8e3ca118,0xd7a17bdd,0x2ef4400e,0x40d7511a,0x875a66f4,0xc48990ac +.long 0x2199e347,0x8de07d2a,0x2a39e051,0xbee75556,0x916e51dc,0x56918786,0x4a2d89ec,0xeb191313,0x37d341ed,0x6679610d,0x56d51c2b,0x434fbb41,0xd7492dba,0xe54b7ee7,0x59021493,0xaa33a79a +.long 0xe4bd6d3d,0x49fc5054,0x5ab551d0,0x09540f04,0x4942d3a6,0x8acc9085,0x2d28323b,0x231af02f,0x0992c163,0x93458cac,0x888e3bb4,0x1fef8e71,0xbe8c268c,0x27578da5,0xe805ec00,0xcc8be792 +.long 0xc61c3855,0x29267bae,0x58c1fd3b,0xebff429d,0x8c0b93b8,0x22d886c0,0x2ddb8953,0xca5e00b2,0xc3fed8b7,0xcf330117,0x819c01f6,0xd49ac6fa,0x3c0fbd54,0x6ddaa6bd,0x8049a2cf,0x91743068 +.long 0xaff2ef81,0xd67f981e,0x2818ae80,0xc3654d35,0x1b2aa892,0x81d05044,0x3d099328,0x2db067bf,0x703dcc97,0xe7c79e86,0xe133e215,0xe66f9b37,0xe39a7a5c,0xcdf119a6,0x876f1b61,0x47c60de3 +.long 0xd860f1b2,0x6e405939,0xf5ed4d4a,0x3e9a1dbc,0xc9b6bcbd,0x3f23619e,0x734e4497,0x5ee790cf,0x5bdaf9bb,0xf0a834b1,0x4ca295f0,0x02cedda7,0xcb8e378c,0x4619aa2b,0xcc987ea4,0xe5613244 +.long 0x76b23a50,0x0bc022cc,0x0a6c21ce,0x4a2793ad,0x89cac3f5,0x38328780,0xcba26d56,0x29176f1b,0x4f6f59eb,0x06296187,0x8bdc658e,0x86e9bca9,0x57e30402,0x2ca9c4d3,0x516a09bb,0x5438b216 +.long 0x7672765a,0x0a6a063c,0x0547b9bf,0x37a3ce64,0x98b1a633,0x42c099c8,0x05ee6961,0xb5ab800d,0x11a5acd6,0xf1963f59,0x46201063,0xbaee6157,0xa596210a,0x36d9a649,0x1ba7138c,0xaed04363 +.long 0xa4a82b76,0xcf817d1c,0xf3806be9,0x5586960e,0x09dc6bb5,0x7ab67c89,0x114fe7eb,0x52ace7a0,0xcbbc9b70,0xcd987618,0x604ca5e1,0x4f06fd5a,0x6dbde133,0x90af14ca,0x948a3264,0x1afe4322 +.long 0xc44b2c6c,0xa70d2ca6,0x0ef87dfe,0xab726799,0x2e696377,0x310f64dc,0x4c8126a0,0x49b42e68,0xcea0b176,0x0ea444c3,0xcb269182,0x53a8ddf7,0xbbba9dcb,0xf3e674eb,0xd8669d33,0x0d2878a8 +.long 0xd019b6a3,0x04b935d5,0x406f1e46,0xbb5cf88e,0x5b57c111,0xa1912d16,0x19ebfd78,0x9803fc21,0xc07764a9,0x4f231c9e,0xb75bd055,0xd93286ee,0x8ee6c9de,0x83a9457d,0x6087ec90,0x04695915 +.long 0x58d6cd46,0x14c6dd8a,0x8e6634d2,0x9cb633b5,0xf81bc328,0xc1305047,0x26a177e5,0x12ede0e2,0x065a6f4f,0x332cca62,0x67be487b,0xc3a47ecd,0x0f47ed1c,0x741eb187,0xe7598b14,0x99e66e58 +.long 0x63d0ff12,0x6f0544ca,0xb610a05f,0xe5efc784,0x7cad7b47,0xf72917b1,0xf2cac0c0,0x3ff6ea20,0xf21db8b7,0xcc23791b,0xd7d93565,0x7dac70b1,0x694bdaad,0x682cda1d,0x1023516d,0xeb88bb8c +.long 0xdfdbeb1b,0xc4c634b4,0xb4ee4dea,0x22f5ca72,0xe6524821,0x1045a368,0x052b18b2,0xed9e8a3f,0xb961f49a,0x9b7f2cb1,0x7b009670,0x7fee2ec1,0x22507a6d,0x350d8754,0x4db55f1d,0x561bd711 +.long 0x320bbcaf,0x4c189ccc,0xdf1de48c,0x568434cf,0x0fa8f128,0x6af1b00e,0x8907583c,0xf0ba9d02,0x32ff9f60,0x735a4004,0xc25dcf33,0x3dd8e4b6,0x42c74cef,0xf2230f16,0x013fa8ad,0xd8117623 +.long 0xf51fe76e,0x36822876,0x11d62589,0x8a6811cc,0x46225718,0xc3fc7e65,0xc82fdbcd,0xb7df2c9f,0xdd7b205b,0x3b1d4e52,0x47a2e414,0xb6959478,0xefa91148,0x05e4d793,0xfd2e9675,0xb47ed446 +.long 0x04c9d9bf,0x1a7098b9,0x1b793048,0x661e2881,0xb01ee461,0xb1a16966,0x2954746f,0xbc521308,0x2477de50,0xc909a0fc,0x7dbd51ef,0xd80bb41c,0x53294905,0xa85be7ec,0x83958f97,0x6d465b18 +.long 0xfb6840fd,0x16f6f330,0x3401e6c8,0xfaaeb214,0xccb5b4f8,0xaf83d30f,0x266dec4b,0x22885739,0x7bc467df,0x51b4367c,0xd842d27a,0x926562e3,0x0fea14a6,0xdfcb6614,0xf2734cd9,0xeb394dae +.long 0x11c0be98,0x3eeae5d2,0x814e8165,0xb1e6ed11,0xe52bce1c,0x191086bc,0xa75a04da,0x14b74cc6,0x8c060985,0x63cf1186,0x2dbd7f7c,0x071047de,0xce0942ca,0x4e433b8b,0xd8fec61d,0xecbac447 +.long 0xebf3232f,0x8f0ed0e2,0xc52a2edd,0xfff80f9e,0x75b55fdb,0xad9ab433,0xe42e0c11,0x73ca7820,0xe6251b46,0x6dace0a0,0x4c0d932d,0x89bc6b5c,0x095da19a,0x3438cd77,0x8d48bdfb,0x2f24a939 +.long 0x766561b7,0x99b47e46,0x0ed0322a,0x736600e6,0x638e1865,0x06a47cb1,0xcb136000,0x927c1c2d,0x0cc5df69,0x29542337,0x09d649a9,0x99b37c02,0x6aefdb27,0xc5f0043c,0x1be95c27,0x6cdd9987 +.long 0x390420d2,0x69850931,0x0983efa4,0x299c40ac,0xaf39aead,0x3a05e778,0x43a45193,0x84274408,0x91a711a0,0x6bcd0fb9,0x9f52ab17,0x461592c8,0xda3c6ed6,0xb49302b4,0x330d7067,0xc51fddc7 +.long 0xda50d531,0x94babeb6,0xa6a7b9da,0x521b840d,0x404bdc89,0x5305151e,0xd0d07449,0x1bcde201,0x3b76a59a,0xf427a78b,0x07791a1b,0xf84841ce,0xbf91ed1c,0xebd314be,0xbf172943,0x8e61d34c +.long 0x5541b892,0x1d5dc451,0xfc9d9e54,0xb186ee41,0xd5bf610d,0x9d9f345e,0xf6acca9f,0x3e7ba65d,0xa8369486,0x9dda787a,0x8eb5ba53,0x09f9dab7,0xd6481bc3,0x5afb2033,0xafa62104,0x76f4ce30 +.long 0xf4f066b5,0xa8fa00cf,0x461dafc2,0x89ab5143,0xa3389998,0x44339ed7,0xbc214903,0x2ff862f1,0xb05556e3,0x2c88f985,0x3467081e,0xcd96058e,0xedc637ea,0x7d6a4176,0x36a5acdc,0xe1743d09 +.long 0x7eb37726,0x66fd72e2,0x1481a037,0xf7fa264e,0x45f4aa79,0x9fbd3bde,0x767c3e22,0xed1e0147,0x82e7abe2,0x7621f979,0x45f633f8,0x19eedc72,0x6137bf3a,0xe69b155e,0x414ee94e,0xa0ad13ce +.long 0x1c0e651a,0x93e3d524,0x02ce227e,0xab1a6e2a,0x4ab27eca,0xe7af1797,0xbd444f39,0x245446de,0x56c07613,0x59e22a21,0xf4275498,0x43deafce,0x67fd0946,0x10834ccb,0x47406edf,0xa75841e5 +.long 0x7b0ac93d,0xebd6a677,0x78f5e0d7,0xa6e37b0d,0x76f5492b,0x2516c096,0x9ac05f3a,0x1e4bf888,0x4df0ba2b,0xcdb42ce0,0x5062341b,0x935d5cfd,0x82acac20,0x8a303333,0x5198b00e,0x429438c4 +.long 0x049d33fa,0x1d083bc9,0x946f67ff,0x58b82dda,0x67a1d6a3,0xac3e2db8,0x1798aac8,0x62e6bead,0xde46c58c,0xfc85980f,0x69c8d7be,0xa7f69379,0x837b35ec,0x23557927,0xe0790c0c,0x06a933d8 +.long 0x077ff55d,0x827c0e9b,0xbb26e680,0x53977798,0x1d9cb54f,0x59530874,0x4aac53ef,0xcca3f449,0xa07eda0f,0x11dc5c87,0xfd6400c8,0xc138bccf,0x13e5da72,0x549680d3,0x4540617e,0xc93eed82 +.long 0x4d0b75c0,0xfd3db157,0x6386075b,0x9716eb42,0x817b2c16,0x0639605c,0xf1e4f201,0x09915109,0x5cca6c3b,0x35c9a928,0x3505c900,0xb25f7d1a,0x630480c4,0xeb9f7d20,0x2a1a501c,0xc3c7b8c6 +.long 0x5a1f8e24,0x3f99183c,0x9dd255f0,0xfdb118fa,0xc27f62a6,0xb9b18b90,0x396ec191,0xe8f732f7,0x0be786ab,0x524a2d91,0x0ac5a0f5,0x5d32adef,0x9725f694,0x9b53d4d6,0x0510ba89,0x032a76c6 +.long 0xebeb1544,0x840391a3,0x3ed73ac3,0x44b7b88c,0x256cb8b3,0xd24bae7a,0xe394cb12,0x7ceb151a,0x5bc1e6a8,0xbd6b66d0,0x090f07bf,0xec70cecb,0x7d937589,0x270644ed,0x5f1dccfe,0xee9e1a3d +.long 0x745b98d2,0xb0d40a84,0x2556ed40,0xda429a21,0x85148cb9,0xf676eced,0xded18936,0x5a22d40c,0x70e8a4ce,0x3bc4b9e5,0x9eae0379,0xbfd1445b,0x1a0bd47e,0xf23f2c0c,0xe1845531,0xa9c0bb31 +.long 0x0a4c3f6b,0x9ddc4d60,0x2c15ef44,0xbdfaad79,0x7f484acc,0xce55a236,0x055b1f15,0x08653ca7,0x538873a3,0x2efa8724,0xace1c7e7,0x09299e5d,0xade332ba,0x07afab66,0x92dd71b7,0x9be1fdf6 +.long 0x5758b11c,0xa49b5d59,0xc8654f40,0x0b852893,0x52379447,0xb63ef6f4,0x105e690c,0xd4957d29,0x646559b0,0x7d484363,0x49788a8e,0xf4a8273c,0x34ce54a9,0xee406cb8,0xf86fda9b,0x1e1c260f +.long 0xcf6a4a81,0xe150e228,0x1b488772,0x1fa3b6a3,0xc5a9c15b,0x1e6ff110,0x8ad6aa47,0xc6133b91,0x9dffa978,0x8ac5d55c,0x5f3965f2,0xba1d1c1d,0x7732b52f,0xf969f4e0,0xa5172a07,0xfceecdb5 +.long 0x10f2b8f5,0xb0120a5f,0x5c4c2f63,0xc83a6cdf,0xf8f9c213,0x4d47a491,0xd3f1bbd5,0xd9e1cce5,0xaba7e372,0x0d91bc7c,0xdfd1a2db,0xfcdc74c8,0x374618e5,0x05efa800,0x15a7925e,0x11216969 +.long 0xf6021c5d,0xd4c89823,0xeff14423,0x880d5e84,0x6dcd1396,0x6523bc5a,0x113c978b,0xd1acfdfc,0xbbb66840,0xb0c164e8,0x72b58459,0xf7f4301e,0xa638e8ec,0xc29ad4a6,0x46b78699,0xf5ab8961 +.long 0x0e954750,0x9dbd7974,0x64f9d2c6,0x0121de88,0xd985232e,0x2e597b42,0x53451777,0x55b6c3c5,0x519cb9fb,0xbb53e547,0x8428600d,0xf134019f,0xe081791a,0x5a473176,0x35fb0c08,0x2f3e2263 +.long 0x73d273b0,0xb28c3017,0x7721ef9a,0xccd21076,0xb650dc39,0x054cc292,0x6188045e,0x662246de,0x6b83c0d1,0x904b52fa,0x97e9cd46,0xa72df267,0x899725e4,0x886b43cd,0xd849ff22,0x2b651688 +.long 0x02f34533,0x60479b79,0x0c77c148,0x5e354c14,0xa8537c78,0xb4bb7581,0xefe1495f,0x188043d7,0x8c1d5026,0x9ba12f42,0x93d4aaab,0x2e0c8a26,0xaa57c450,0xbdba7b8b,0x9bbdafef,0x140c9ad6 +.long 0x25ac0f18,0x2067aa42,0x04d1fbf3,0xf7b1295b,0xa4b04824,0x14829111,0x33bd5e91,0x2ce3f192,0x8f2e1b72,0x9c7a1d55,0x302aa243,0xfe932286,0xd4be9554,0x497ca7b4,0xe0547a6e,0xb8e821b8 +.long 0x67e573e0,0xfb2838be,0x4084c44b,0x05891db9,0x96c1c2c5,0x91311373,0xd958444b,0x6aebfa3f,0xe56e55c1,0xac9cdce9,0x2caa46d0,0x7148ced3,0xb61fe8eb,0x2e10c7ef,0xff97cf4d,0x9fd835da +.long 0x081e9387,0xa36da109,0x8c935828,0xfb9780d7,0xe540b015,0xd5940332,0xe0f466fa,0xc9d7b51b,0xd6d9f671,0xfaadcd41,0xb1a2ac17,0xba6c1e28,0xed201e5f,0x066a7833,0xf90f462b,0x19d99719 +.long 0x060b5f61,0xf431f462,0x7bd057c2,0xa56f46b4,0x47e1bf65,0x348dca6c,0x41bcf1ff,0x9a38783e,0xda710718,0x7a5d33a9,0x2e0aeaf6,0x5a779987,0x2d29d187,0xca87314d,0xc687d733,0xfa0edc3e +.long 0x6a31e09b,0x9df33621,0xc1350e35,0xde89e44d,0x4ca0cf52,0x29214871,0x0b88a538,0xdf379672,0x2591d61b,0xc92a510a,0x585b447b,0x79aa87d7,0xe5287f77,0xf67db604,0x5efe7a80,0x1697c8bf +.long 0xcb198ac7,0x1c894849,0x0f264665,0xa884a93d,0x9b200678,0x2da964ef,0x009834e6,0x3c351b87,0xe2c4b44b,0xafb2ef9f,0x3326790c,0x580f6c47,0x0b02264a,0xb8480521,0x42a194e2,0x8ba6f9e2 +.long 0x8fb54738,0xfc87975f,0x27c3ead3,0x35160788,0xb74a085a,0x834116d2,0xa62fe996,0x53c99a73,0x5b81c51b,0x87585be0,0xbe0852b7,0x925bafa8,0xa84d19a7,0x76a4fafd,0x585206d4,0x39a45982 +.long 0x5eb03c0e,0x499b6ab6,0x72bc3fde,0xf19b7954,0x6e3a80d2,0xa86b5b9c,0x6d42819f,0xe4377508,0xbb3ee8a3,0xc1663650,0xb132075f,0x75eb14fc,0x7ad834f6,0xa8ccc906,0xe6e92ffd,0xea6a2474 +.long 0x0f8d6758,0x9d72fd95,0x408c07dd,0xcb84e101,0xa5e23221,0xb9114bfd,0xe94e742c,0x358b5fe2,0x95f40e75,0x1c0577ec,0x3d73f3d6,0xf0155451,0xbd1b9b66,0x9d55cd67,0xaf8d63c7,0x63e86e78 +.long 0xd3c095f1,0x39d934ab,0xe4b76d71,0x04b261be,0xe73e6984,0x1d2e6970,0x5e5fcb11,0x879fb23b,0xdfd75490,0x11506c72,0x61bcf1c1,0x3a97d085,0xbf5e7007,0x43201d82,0x798232a7,0x7f0ac52f +.long 0x6eb564d4,0x2715cbc4,0x9e570e29,0x8d6c752c,0x9ef5fd5d,0xf80247c8,0xd53eb514,0xc3c66b46,0x0f87de56,0x9666b401,0xc6c603b5,0xce62c06f,0x7e4fc942,0xae7b4c60,0x663a9c19,0x38ac0b77 +.long 0x4b049136,0xcb4d20ee,0x356a4613,0x8b63bf12,0x70e08128,0x1221aef6,0x4acb6b16,0xe62d8c51,0x379e7896,0x71f64a67,0xcafd7fa5,0xb25237a2,0x3841ba6a,0xf077bd98,0x3cd16e7e,0xc4ac0244 +.long 0x21fea4ca,0x548ba869,0xf3dfdac1,0xd36d0817,0xf4685faf,0x09d8d71f,0xc52c459a,0x8eff66be,0x0b57235e,0x182faee7,0x0106712b,0xee3c39b1,0xc0fcdcb0,0x5107331f,0xa51054ba,0x669fb9dc +.long 0x319d7682,0xb25101fb,0x0a982fee,0xb0293129,0x0261b344,0x51c1c9b9,0xbfd371fa,0x0e008c5b,0x0278ca33,0xd866dd1c,0xe5aa53b1,0x666f76a6,0x6013a2cf,0xe5cfb779,0xa3521836,0x1d3a1aad +.long 0x73faa485,0xcedd2531,0xc0a76878,0xc8ee6c4f,0x2a11667d,0xddbccfc9,0x1c2f695a,0x1a418ea9,0x51f73971,0xdb11bd92,0xda2ed89f,0x3e4b3c82,0xe73e0319,0x9a44f3f4,0x303431af,0xd1e3de0f +.long 0x50f75f9c,0x3c5604ff,0x7e752b22,0x1d8eddf3,0x3c9a1118,0x0ef074dd,0xccb86d7b,0xd0ffc172,0x037d90f2,0xabd1ece3,0x6055856c,0xe3f307d6,0x7e4c6daf,0x422f9328,0x334879a0,0x902aac66 +.long 0x94cdfade,0xb6a1e7bf,0x7fc6d634,0x6c97e1ed,0xa2fb63f8,0x662ad24d,0xa5928405,0xf81be1b9,0xd14b4206,0x86d765e4,0x8fa0db65,0xbecc2e0e,0xb17fc76c,0xa28838e0,0xe37cf24e,0xe49a602a +.long 0x567193ec,0x76b4131a,0xe5f6e70b,0xaf3c305a,0x031eebdd,0x9587bd39,0x71bbe831,0x5709def8,0x0eb2b669,0x57059983,0x875b7029,0x4d80ce1b,0x0364ac16,0x838a7da8,0xbe1c83ab,0x2f431d23 +.long 0xf9294dd3,0xe56812a6,0x9b4b0d77,0xb448d01f,0x04e8305c,0xf3ae6061,0x94d8c63e,0x2bead645,0x84fd8b07,0x0a85434d,0xf7a9dee5,0x537b983f,0xef55bd85,0xedcc5f18,0x21c6cf8b,0x2041af62 +.long 0xb940c71e,0x8e52874c,0xdb5f4b3a,0x211935a9,0x301b1dc3,0x94350492,0x29958620,0x33d2646d,0xef911404,0x16b0d64b,0x9a3c5ef4,0x9d1f25ea,0x4a352c78,0x20f200eb,0x4bd0b428,0x43929f2c +.long 0xc7196e29,0xa5656667,0x9391be48,0x7992c2f0,0x9ee0cd6e,0xaaa97cbd,0x3dc8c9bf,0x51b0310c,0xdd9f22cb,0x237f8acf,0xb585d584,0xbb1d81a1,0x8c416388,0x8d5d85f5,0x42fe474f,0x0d6e5a5a +.long 0x38235d4e,0xe7812766,0x496e3298,0x1c62bd67,0x3f175bc8,0x8378660c,0x17afdd4d,0x4d04e189,0x85a8068c,0x32a81601,0x92b29a85,0xdb58e4e1,0xc70d8a3b,0xe8a65b86,0x98a0403b,0x5f0e6f4e +.long 0x69ed2370,0x08129684,0x0871ee26,0x34dc30bd,0x7c9c5b05,0x3a5ce948,0x43a90c87,0x7d487b80,0xdd0e7179,0x4089ba37,0xb4041811,0x45f80191,0x98747ba5,0x1c3e1058,0x6e1ae592,0x98c4e13a +.long 0xe82c9f9e,0xd44636e6,0xc33a1043,0x711db87c,0xaa8aec05,0x6f431263,0x2744a4aa,0x43ff120d,0xae77779b,0xd3bd892f,0x8cdc9f82,0xf0fe0cc9,0xf1c5b1bc,0xca5f7fe6,0x44929a72,0xcc63a682 +.long 0x09dbe19a,0xc7eaba0c,0x6b5c73c2,0x2f3585ad,0x0ae50c30,0x8ab8924b,0x638b30ba,0x17fcd27a,0x10b3d5a5,0xaf414d34,0x2a9accf1,0x09c107d2,0x946a6242,0x15dac49f,0xd707d642,0xaec3df2a +.long 0x3f894ae0,0x2c2492b7,0xb75f18ce,0xf59df3e5,0x8f53cad0,0x7cb740d2,0xc4f01294,0x3eb585fb,0x32c7f717,0x17da0c86,0xaf943f4c,0xeb8c795b,0xf67c51d2,0x4ee23fb5,0x68889949,0xef187575 +.long 0x0389168b,0xa6b4bdb2,0xea577d03,0xc4ecd258,0x55743082,0x3a63782b,0xc72f08cd,0x6f678f4c,0x65e58dd8,0x553511cf,0xd402c0cd,0xd53b4e3e,0xa037c14c,0x37de3e29,0xc05712aa,0x86b6c516 +.long 0xb38dff6f,0x2834da3e,0xea636be8,0xbe012c52,0x61dd37f8,0x292d238c,0x8f8142db,0x0e54523f,0x036a05d8,0xe31eb436,0x1e93c0ff,0x83e3cdff,0x50821ddf,0x3fd2fe0f,0xff9eb33b,0xc8e19b0d +.long 0xb569a5fe,0xc8cc943f,0xd4342d75,0xad0090d4,0xcaeca000,0x82090b4b,0x1bd410eb,0xca39687f,0x65959d77,0xe7bb0df7,0x9c964999,0x39d78218,0xb2415451,0xd87f62e8,0xbed76108,0xe5efb774 +.long 0xe822f0d0,0x3ea011a4,0x5a8704f8,0xbc647ad1,0x50c6820f,0xbb315b35,0xb7e76bec,0x863dec3d,0xf017bfc7,0x01ff5d3a,0x976b8229,0x20054439,0x0bbd0d3b,0x067fca37,0x7f5e3d0f,0xf63dde64 +.long 0x2a4c94e9,0x22dbefb3,0x96f8278a,0xafbff0fe,0x3503793d,0x80aea0b1,0x5f06cd29,0xb2238029,0x8ec3feca,0x65703e57,0x393e7053,0x06c38314,0x7c6734c4,0xa0b751eb,0xc59f0f1e,0xd2e8a435 +.long 0x5e9ca895,0x147d9052,0x972072df,0x2f4dd31e,0xe6c6755c,0xa16fda8e,0xcf196558,0xc66826ff,0x0cf43895,0x1f1a76a3,0x83c3097b,0xa9d604e0,0x66390e0e,0xe1908309,0xb3c85eff,0xa50bf753 +.long 0xf6a70251,0x0696bdde,0x3c6ab16a,0x548b801b,0xa4d08762,0x37fcf704,0xdff76c4e,0x090b3def,0x69cb9158,0x87e8cb89,0x995ece43,0x44a90744,0x0ad9fbf5,0xf85395f4,0x4fb0c82d,0x49b0f6c5 +.long 0xadf7cccf,0x75d9bc15,0xdfa1e1b0,0x81a3e5d6,0x249bc17e,0x8c39e444,0x8ea7fd43,0xf37dccb2,0x907fba12,0xda654873,0x4a372904,0x35daa6da,0x6283a6c5,0x0564cfc6,0x4a9395bf,0xd09fa4f6 +.long 0xaeb19a36,0x688e9ec9,0xc7bfbfb4,0xd913f1ce,0x61c2faa6,0x797b9a3c,0x6a0a9c12,0x2f979bec,0x359679ec,0xb5969d0f,0x079b0460,0xebcf523d,0x10fab870,0xfd6b0008,0x9373a39c,0x3f2edcda +.long 0x6f568431,0x0d64f9a7,0x02f8898c,0xf848c27c,0x260b5bd5,0xf418ade1,0x6973dee8,0xc1f3e323,0x26c185dd,0x46e9319c,0x546f0ac4,0x6d85b7d8,0x247f9d57,0x427965f2,0xb0035f48,0xb519b636 +.long 0xab87d59c,0x6b6163a9,0x39caaa11,0xff9f58c3,0x3177387b,0x4ac39cde,0x873e77f9,0x5f6557c2,0x36a83041,0x67504006,0x75ef196c,0x9b1c96ca,0xb08c7940,0xf34283de,0x1128c316,0x7ea09644 +.long 0x6aa39dff,0xb510b3b5,0x9f8e4d8c,0x59b43da2,0x9e4c4b9f,0xa8ce31fd,0xc1303c01,0x0e20be26,0xe8ee47c9,0x18187182,0x7db98101,0xd9687cdb,0xa1e14ff6,0x7a520e4d,0x8836d572,0x429808ba +.long 0x4944b663,0xa37ca60d,0xa3f91ae5,0xf901f7a9,0x9e36e3b1,0xe4e3e76e,0x29d93250,0x9aa219cf,0x056a2512,0x347fe275,0xde65d95c,0xa4d643d9,0x699fc3ed,0x9669d396,0xcf8c6bbe,0xb598dee2 +.long 0xdda9e5c6,0x682ac1e5,0xcaa9fc95,0x4e0d3c72,0x772bea44,0x17faaade,0xab0009c8,0x5ef8428c,0x460ff016,0xcc4ce47a,0x725281cb,0xda6d12bf,0x0223aad2,0x44c67848,0x36256e28,0x6e342afa +.long 0x93a37c04,0x1400bb0b,0xdd10bd96,0x62b1bc9b,0x0dac46b7,0x7251adeb,0x7be4ef51,0x7d33b92e,0xe61fa29a,0x28b2a94b,0x06422233,0x4b2be13f,0x330d8d37,0x36d6d062,0xb28ca005,0x5ef80e1e +.long 0x6d16768e,0x174d4699,0x628bf217,0x9fc4ff6a,0x154e490d,0x77705a94,0x8d2d997a,0x9d96dd28,0xce5d72c4,0x77e2d9d8,0xc11c714f,0x9d06c5a4,0x79e4a03e,0x02aa5136,0x030ff28b,0x1386b3c2 +.long 0xfb283f61,0xfe82e8a6,0xf3abc3fb,0x7df203e5,0x3a4d3622,0xeec7c351,0xdf762761,0xf7d17dbf,0x522055f0,0xc3956e44,0x8fa748db,0xde3012db,0xbf1dcc14,0xca9fcb63,0xbe4e2f3a,0xa56d9dcf +.long 0x8bcec9c2,0xb86186b6,0x680b9f06,0x7cf24df9,0xc0d29281,0xc46b45ea,0x07b10e12,0xfff42bc5,0x4d289427,0x12263c40,0xb4848ec4,0x3d5f1899,0xd040800c,0x11f97010,0x300feb20,0xb4c5f529 +.long 0xde94fdcb,0xcc543f8f,0xc7c2f05e,0xe96af739,0x882692e1,0xaa5e0036,0x950d4ae9,0x09c75b68,0xb5932a7a,0x62f63df2,0xde0979ad,0x2658252e,0xb5e69631,0x2a19343f,0x525b666b,0x718c7501 +.long 0xea40dc3a,0x26a42d69,0xaecc018f,0xdc84ad22,0x3270f04a,0x25c36c7b,0x50fa72ed,0x46ba6d47,0x93e58a8e,0x6c37d1c5,0x120c088c,0xa2394731,0xcb6e86da,0xc3be4263,0x7126d038,0x2c417d36 +.long 0x8b6f8efa,0x5b70f9c5,0x37718536,0x671a2faa,0xb539c92b,0xd3ced3c6,0xa31203c2,0xe56f1bd9,0x9ff3c8eb,0x8b096ec4,0x43491cea,0x2deae432,0x17943794,0x2465c6eb,0x20586843,0x5d267e66 +.long 0xb07159d0,0x9d3d116d,0xc1896210,0xae07a67f,0xbb961579,0x8fc84d87,0x1c1f8dd6,0x30009e49,0xe3132819,0x8a8caf22,0xf23ab4ff,0xcffa197c,0x205dd687,0x58103a44,0x0ded67a2,0x57b796c3 +.long 0xa1779ad7,0x0b9c3a6c,0x357c09c5,0xa33cfe2e,0x3db4a57e,0x2ea29315,0x8ebeb52e,0x91959695,0xe546c879,0x118db9a6,0x6295c8d6,0x8e996df4,0x55ec806b,0xdd990484,0x165c1035,0x24f291ca +.long 0x440e2229,0xcca523bb,0x73ef4d04,0x324673a2,0x3e11ec39,0xaf3adf34,0xdc5968d3,0x6136d7f1,0xb053a927,0x7a7b2899,0xae067ecd,0x3eaa2661,0x02779cd9,0x8549b9c8,0xc53385ea,0x061d7940 +.long 0xf06d18bd,0x3e0ba883,0xb2700843,0x4ba6de53,0x591a9e4d,0xb966b668,0x7f4fa0ed,0x93f67567,0x4347237b,0x5a02711b,0xe794608e,0xbc041e2f,0x70f73d8c,0x55af10f5,0xbb7564f7,0xd2d4d4f7 +.long 0xb3e93ce7,0xd7d27a89,0x5d3a2c1b,0xf7b5a875,0x255b218a,0xb29e68a0,0x8af76754,0xb533837e,0x579fab2e,0xd1b05a73,0xecd74385,0xb41055a1,0x445e9115,0xb2369274,0xf520274e,0x2972a7c4 +.long 0xf678e68a,0x6c08334e,0x99b057ed,0x4e4160f0,0x52ccb69a,0x3cfe11b8,0x21c8f772,0x2fd1823a,0x3298f055,0xdf7f072f,0xfec74a6e,0x8c0566f9,0x5bb4d041,0xe549e019,0x9208d850,0x7c3930ba +.long 0xaaa2902b,0xe07141fc,0xe4f69ad3,0x539ad799,0x813f9ffd,0xa6453f94,0x375bc2f7,0xc58d3c48,0x5dc64e96,0xb3326fad,0xb240e354,0x3aafcaa9,0xaca1e7a9,0x1d1b0903,0x1211b8a0,0x4ceb9767 +.long 0xe32a858e,0xeca83e49,0xae907bad,0x4c32892e,0x2eb9b494,0xd5b42ab6,0x1eabae1b,0x7fde3ee2,0xcaf54957,0x13b5ab09,0xe5f5d5d5,0xbfb028be,0x2003e2c0,0x928a0650,0x67476843,0x90793aac +.long 0xc81710a0,0x5e942e79,0x27ccadd4,0x557e4a36,0x4bcf6d0c,0x72a2bc56,0x26d7b80c,0x09ee5f43,0xd4292f19,0x6b70dbe9,0x63f16b18,0x56f74c26,0x35fbb42a,0xc23db0f7,0x6ae10040,0xb606bdf6 +.long 0x044573ac,0x1eb15d4d,0x556b0ba4,0x7dc3cf86,0xc60df6f7,0x97af9a33,0xa716ce8c,0x0b1ef85c,0xc96958be,0x2922f884,0x35690963,0x7c32fa94,0xeaa00061,0x2d7f667c,0x3547365c,0xeaaf7c17 +.long 0x87032d58,0x1eb4de46,0x5e2c79e0,0xc54f3d83,0x5d04ef23,0x07818df4,0x673d41b4,0x55faa9c8,0x89b95355,0xced64f6f,0xb7415c84,0x4860d2ea,0x050ebad3,0x5fdb9bd2,0x6685a5bf,0xdb53e0cc +.long 0x9feb6593,0xb830c031,0x6accff17,0xdd87f310,0x9f555c10,0x2303ebab,0x287e7065,0x94603695,0x2e83358c,0xf88311c3,0xeefb0178,0x508dd9b4,0x2dba8652,0x7ca23706,0x0047abe5,0x62aac5a3 +.long 0x8b1ea7b3,0x9a61d2a0,0xae8b1485,0xd495ab63,0x87052f99,0x38740f84,0xb2974eea,0x178ebe5b,0x5b36d17f,0x030bbcca,0xaaf86eea,0xb5e4cce3,0x68f8e9e0,0xb51a0220,0x09eb3e75,0xa4348796 +.long 0xeef1a752,0xbe592309,0x6f2aa1ed,0x5d7162d7,0x0f007dd2,0xaebfb5ed,0xc89edd22,0x255e14b2,0x0303b697,0xba85e072,0xf05720ff,0xc5d17e25,0x5128ebb6,0x02b58d6e,0xd754e113,0x2c80242d +.long 0xabfae1ca,0x919fca5f,0x1a21459b,0x937afaac,0x1f66a4d2,0x9e0ca91c,0x23ec1331,0x194cc7f3,0x8aa11690,0xad25143a,0x09b59e08,0xbe40ad8d,0xe750860a,0x37d60d9b,0xc6bf434c,0x6c53b008 +.long 0x1356eb80,0xb572415d,0x9578ded8,0xb8bf9da3,0x5e8fb38b,0x22658e36,0x5af8cb22,0x9b70ce22,0x829a8180,0x7c00018a,0xb81ed295,0x84329f93,0x5f3cea83,0x7c343ea2,0x67586536,0x38f8655f +.long 0x1d3ec517,0xa661a0d0,0x512321ae,0x98744652,0xeca92598,0x084ca591,0x1dcb3feb,0xa9bb9dc9,0x78b4c240,0x14c54355,0x610cafdc,0x5ed62a3b,0x1b38846b,0x07512f37,0xb0e38161,0x571bb70a +.long 0x2da705d2,0xb556b95b,0xb1a08f98,0x3ef8ada6,0xddecfbe5,0x85302ca7,0x943105cd,0x0e530573,0x21a9255d,0x60554d55,0xf2f3802a,0x63a32fa1,0xcd477875,0x35c8c5b0,0x6ad42da1,0x97f458ea +.long 0xeb6b242d,0x832d7080,0x3b71e246,0xd30bd023,0xbe31139d,0x7027991b,0x462e4e53,0x68797e91,0x6b4e185a,0x423fe20a,0x42d9b707,0x82f2c67e,0x4cf7811b,0x25c81768,0x045bb95d,0xbd53005e +.long 0x9d8e68fd,0xe5f649be,0x1b044320,0xdb0f0533,0xe0c33398,0xf6fde9b3,0x66c8cfae,0x92f4209b,0x1a739d4b,0xe9d1afcc,0xa28ab8de,0x09aea75f,0xeac6f1d0,0x14375fb5,0x708f7aa5,0x6420b560 +.long 0x6254dc41,0x9eae499c,0x7a837e7e,0x7e293924,0x090524a7,0x74aec08c,0x8d6f55f2,0xf82b9219,0x1402cec5,0x493c962e,0xfa2f30e7,0x9f17ca17,0xe9b879cb,0xbcd783e8,0x5a6f145f,0xea3d8c14 +.long 0x5e0dee6e,0xdede15e7,0xdc628aa2,0x74f24872,0x7861bb93,0xd3e9c4fe,0x6187b2e0,0x56d4822a,0xc59826f9,0xb66417cf,0x2408169e,0xca260969,0xc79ef885,0xedf69d06,0xdc7d138f,0x00031f8a +.long 0x0ebcf726,0x103c46e6,0x6231470e,0x4482b831,0x487c2109,0x6f6dfaca,0x62e666ef,0x2e0ace97,0x1f8d1f42,0x3246a9d3,0x574944d2,0x1b1e83f1,0xa57f334b,0x13dfa63a,0x9f025d81,0x0cf8daed +.long 0x00ee11c1,0x30d78ea8,0xb5e3dd75,0xeb053cd4,0xd58c43c5,0x9b65b13e,0xbd151663,0xc3ad49bd,0xb6427990,0x99fd8e41,0x707eae1e,0x12cf15bd,0x1aabb71e,0x29ad4f1b,0x07545d0e,0x5143e74d +.long 0xc88bdee1,0x30266336,0x5876767c,0x25f29306,0xc6731996,0x9c078571,0xed552951,0xc88690b2,0x852705b4,0x274f2c2d,0x4e09552d,0xb0bf8d44,0x986575d1,0x7628beeb,0x7f864651,0x407be238 +.long 0xa639fc6b,0x0e5e3049,0x86003625,0xe75c35d9,0x5dcc1646,0x0cf35bd8,0x6c26273a,0x8bcaced2,0xb5536742,0xe22ecf1d,0x1a9e068b,0x013dd897,0x8a7909c5,0x17f411cb,0x861dd506,0x5757ac98 +.long 0x1e935abb,0x85de1f0d,0x154de37a,0xdefd10b4,0x369cebb5,0xb8d9e392,0x761324be,0x54d5ef9b,0x74f17e26,0x4d6341ba,0x78c1dde4,0xc0a0e3c8,0x87d918fd,0xa6d77581,0x02ca3a13,0x66876015 +.long 0xf36658f0,0xc7313e9c,0x71f8057e,0xc433ef1c,0x1b6a835a,0x85326246,0x7c86394c,0xc8f05398,0xe983c4a1,0xff398cdf,0x03b7b931,0xbf5e8162,0xb7b9045b,0x93193c46,0xa4a6e46b,0x1e4ebf5d +.long 0x43a24fe7,0xf9942a60,0xffb3492b,0x29c1191e,0x902fde05,0x9f662449,0x6713c32d,0xc792a7ac,0xb737982c,0x2fd88ad8,0xa21e60e3,0x7e3a0319,0x7383591a,0x09b0de44,0x8310a456,0x6df141ee +.long 0xe6d6f471,0xaec1a039,0x1198d12e,0x14b2ba0f,0x3aeee5ac,0xebc1a160,0xe0b964ce,0x401f4836,0x4fd03f66,0x2ee43796,0xdd8f3f12,0x3fdb4e49,0x29380f18,0x6ef267f6,0x8da64d16,0x3e8e9670 +.long 0x207674f1,0xbc19180c,0x33ae8fdb,0x112e09a7,0x6aaeb71e,0x99667554,0xe101b1c7,0x79432af1,0xde2ddec6,0xd5eb558f,0x5357753f,0x81392d1f,0x3ae1158a,0xa7a76b97,0x4a899991,0x416fbbff +.long 0x0d4a9dcf,0x9e65fdfd,0x944ddf12,0x7bc29e48,0x3c856866,0xbc1a92d9,0x6e98dfe2,0x273c6905,0xcdfaa6b8,0x69fce418,0x5061c69f,0x606bd823,0x6af75e27,0x42d495a0,0x6d873a1f,0x8ed3d505 +.long 0x6ab25b6a,0xaf552841,0x2b1a4523,0xc6c0ffc7,0x21c99e03,0xab18827b,0x9034691b,0x060e8648,0x93c7f398,0x5207f90f,0x82f8d10b,0x9f4a96cb,0x3ad0f9e3,0xdd71cd79,0xfc3a54f5,0x84f435d2 +.long 0x8e33787f,0x4b03c55b,0xa6384673,0xef42f975,0x5051b9f0,0xff7304f7,0x741c87c2,0x18aca1dc,0x2d4bfe80,0x56f120a7,0x053e732c,0xfd823b3d,0x7537ca16,0x11bccfe4,0x1b5a996b,0xdf6c9c74 +.long 0x904fc3fa,0xee7332c7,0xc7e3636a,0x14a23f45,0xf091d9aa,0xc38659c3,0xb12d8540,0x4a995e5d,0xf3a5598a,0x20a53bec,0xb1eaa995,0x56534b17,0xbf04e03c,0x9ed3dca4,0xd8d56268,0x716c563a +.long 0x1d6178e7,0x27ba77a4,0x68a1ff8e,0xe4c80c40,0x0a13f63d,0x75011099,0xa61d46f3,0x7bf33521,0x10b365bb,0x0aff218e,0x0fd7ea75,0x81021804,0xa4b3a925,0x05a3fd8a,0x9b3db4e6,0xb829e75f +.long 0x4d53e5fb,0x6bdc75a5,0xd52717e3,0x04a5dc02,0xe9a42ec2,0x86af502f,0x2630e382,0x8867e8fb,0xbec9889b,0xbf845c6e,0xcb47c98d,0x54f491f2,0x790c2a12,0xa3091fba,0xc20f708b,0xd7f6fd78 +.long 0xacde5e17,0xa569ac30,0x6852b4d7,0xd0f996d0,0x4609ae54,0xe51d4bb5,0x0daed061,0x3fa37d17,0x34b8fb41,0x62a88684,0x9efb64f1,0x99a2acbd,0x6448e1f2,0xb75c1a5e,0x42b5a069,0xfa99951a +.long 0x2f3b26e7,0x6d956e89,0xda875247,0xf4709860,0x2482dda3,0x3ad15179,0x017d82f0,0xd64110e3,0xfad414e4,0x14928d2c,0x2ed02b24,0x2b155f58,0xcb821bf1,0x481a141b,0x4f81f5da,0x12e3c770 +.long 0x9fff8381,0xe49c5de5,0x5bbec894,0x11053232,0x454d88c4,0xa0d051cc,0x1f8e531b,0x4f6db89c,0xca563a44,0x34fe3fd6,0x58da8ab9,0x7f5c2215,0x9474f0a1,0x8445016d,0xcb7d8a0a,0x17d34d61 +.long 0x1c474019,0x8e9d3910,0xd52ceefb,0xcaff2629,0xc1622c2b,0xf9cf3e32,0xe9071a05,0xd4b95e3c,0x1594438c,0xfbbca61f,0x04aadedf,0x1eb6e6a6,0x68e14940,0x853027f4,0xdfabda9c,0x221d322a +.long 0xb7cb179a,0xed8ea9f6,0xb7934dcc,0xdc7b764d,0x5e09180d,0xfcb13940,0xb47dc2dd,0x6629a6bf,0x9f5a915e,0xbfc55e4e,0x6204441e,0xb1db9d37,0x930c5f53,0xf82d68cf,0xcbb605b1,0x17d3a142 +.long 0x308780f2,0xdd5944ea,0x3845f5e4,0xdc8de761,0x7624d7a3,0x6beaba7d,0x304df11e,0x1e709afd,0x02170456,0x95364376,0xc8f94b64,0xbf204b3a,0x5680ca68,0x4e53af7c,0xe0c67574,0x0526074a +.long 0xecd92af6,0x95d8cef8,0x6cd1745a,0xe6b9fa7a,0xa325c3e4,0x3d546d3d,0x9ae93aae,0x1f57691d,0x9d2e1a33,0xe891f3fe,0xac063d35,0xd430093f,0x5513a327,0xeda59b12,0x5536f18f,0xdc2134f3 +.long 0x5c210286,0xaa51fe2c,0x1cab658c,0x3f68aaee,0xf9357292,0x5a23a00b,0x7efdabed,0x9a626f39,0x199d78e3,0xfe2b3bf3,0x71bbc345,0xb7a2af77,0x1e59802c,0x3d19827a,0xb487a51c,0x823bbc15 +.long 0x99d0a422,0x856139f2,0xf456c6fb,0x9ac3df65,0x701f8bd6,0xaddf65c6,0x3758df87,0x149f321e,0x721b7eba,0xb1ecf714,0x31a3312a,0xe17df098,0xd5c4d581,0xdb2fd6ec,0x8fcea1b3,0xfd02996f +.long 0x7882f14f,0xe29fa63e,0x07c6cadc,0xc9f6dc35,0xb882bed0,0x46f22d6f,0xd118e52c,0x1a45755b,0x7c4608cf,0x9f2c7c27,0x568012c2,0x7ccbdf32,0x61729b0e,0xfcb0aedd,0xf7d75dbf,0x7ca2ca9e +.long 0x6f640f62,0xf58fecb1,0x39f51946,0xe274b92b,0x6288af44,0x7f4dfc04,0xeac329e5,0x0a91f32a,0xd6aaba31,0x43ad274b,0x0f6884f9,0x719a1640,0xdaf91e20,0x685d29f6,0x27e49d52,0x5ec1cc33 +.long 0x3b54a059,0x38f4de96,0xefbcfdb3,0x0e0015e5,0x4dbb8da6,0x177d23d9,0x97a617ad,0x98724aa2,0xfdb6558e,0x30f0885b,0xc7899a96,0xf9f7a28a,0x872dc112,0xd2ae8ac8,0x73c3c459,0xfa0642ca +.long 0xe7dfc8d6,0x15296981,0x1fb5b94a,0x67cd4450,0x0eddfd37,0x0ec71cf1,0x9a8eddc7,0xc7e5eeb3,0x81d95028,0x02ac8e3d,0x70b0e35d,0x0088f172,0xe1881fe3,0xec041fab,0xd99e7faa,0x62cf71b8 +.long 0xe0f222c2,0x5043dea7,0x72e65142,0x309d42ac,0x9216cd30,0x94fe9ddd,0x0f87feec,0xd6539c7d,0x432ac7d7,0x03c5a57c,0x327fda10,0x72692cf0,0x280698de,0xec28c85f,0x7ec283b1,0x2331fb46 +.long 0x2867e633,0xd34bfa32,0x0a9cc815,0x78709a82,0x875e2fa5,0xb7fe6964,0x9e98bfb5,0x25cc064f,0x493a65c5,0x9eb0151c,0x53182464,0x5fb5d941,0xf04618e2,0x69e6f130,0xf89c8ab6,0xa8ecec22 +.long 0xb96209bd,0xcd6ac88b,0xb3e1c9e0,0x65fa8cdb,0x4a8d8eac,0xa47d22f5,0x8d33f963,0x83895cdf,0xb56cd3d1,0xa8adca59,0xdaf38232,0x10c8350b,0xa5080a9f,0x2b161fb3,0x3af65b3a,0xbe7f5c64 +.long 0x97403a11,0x2c754039,0x121b96af,0x94626cf7,0x6a983ec2,0x431de7c4,0x52cc3df7,0x3780dd3a,0x2baf8e3b,0xe28a0e46,0x51d299ae,0xabe68aad,0x647a2408,0x603eb8f9,0x5c750981,0x14c61ed6 +.long 0xc53352e7,0x88b34414,0x1337d46e,0x5a34889c,0xf95f2bc8,0x612c1560,0xd4807a3a,0x8a3f8441,0x5224da68,0x680d9e97,0xc3eb00e9,0x60cd6e88,0x9a6bc375,0x3875a98e,0x4fd554c2,0xdc80f924 +.long 0x6ac77407,0x6c4b3415,0x25420681,0xa1e5ea8f,0x4607a458,0x541bfa14,0x96d7fbf9,0x5dbc7e7a,0x31590a47,0x646a851b,0x15ee6df8,0x039e85ba,0xd7b43fc0,0xd19fa231,0x299a0e04,0x84bc8be8 +.long 0xf20df03a,0x2b9d2936,0x8608d472,0x24054382,0x9149202a,0x76b6ba04,0x3670e7b7,0xb21c3831,0xd6fdee10,0xddd93059,0x78488e71,0x9da47ad3,0xa0fcfb25,0x99cc1dfd,0x64696954,0x42abde10 +.long 0x17eab9fe,0x14cc15fc,0xd3e70972,0xd6e863e4,0x6432112c,0x29a7765c,0x5b0774d8,0x88660001,0x2c088eae,0x3729175a,0x8230b8d4,0x13afbcae,0x915f4379,0x44768151,0xd8d22812,0xf086431a +.long 0xc298b974,0x37461955,0xf8711e04,0x905fb5f0,0xfe969d18,0x787abf3a,0x6f6a494e,0x392167c2,0x28c511da,0xfc7a0d2d,0xb66a262d,0xf127c7dc,0xfd63fdf0,0xf9c4bb95,0x3913ef46,0x90016589 +.long 0x11aa600d,0x74d2a73c,0x9fb5ab52,0x2f5379bd,0x7fb70068,0xe49e53a4,0x404aa9a7,0x68dd39e5,0x2ecaa9c3,0xb9b0cf57,0xe824826b,0xba0e103b,0x4631a3c4,0x60c2198b,0xfa8966a2,0xc5ff84ab +.long 0xac95aff8,0x2d6ebe22,0xb5a46d09,0x1c9bb6db,0x53ee4f8d,0x419062da,0xbb97efef,0x7b9042d0,0x830cf6bd,0x0f87f080,0x6ec8a6c6,0x4861d19a,0x202f01aa,0xd3a0daa1,0xf25afbd5,0xb0111674 +.long 0x1afb20d9,0x6d00d6cf,0x40671bc5,0x13695000,0x2485ea9b,0x913ab0dc,0x9eef61ac,0x1f2bed06,0x6d799e20,0x850c8217,0x3271c2de,0x93415f37,0x6c4f5910,0x5afb06e9,0xc4e9e421,0x688a52df +.long 0xe2a9a6db,0x30495ba3,0x58f9268b,0x4601303d,0x7eb0f04f,0xbe3b0dad,0x4456936d,0x4ea47250,0xd33fd3e7,0x8caf8798,0xeb433708,0x1ccd8a89,0x87fd50ad,0x9effe3e8,0x6b29c4df,0xbe240a56 +.long 0xca0e7ebd,0xec4ffd98,0xe748616e,0xf586783a,0xc77baa99,0xa5b00d8f,0xb4f34c9c,0x0acada29,0x0fe723ac,0x36dad67d,0x39c36c1e,0x1d8e53a5,0x1f4bea41,0xe4dd342d,0xebc9e4e0,0x64fd5e35 +.long 0x57908805,0x96f01f90,0x5ed480dd,0xb5b9ea3d,0x3efd2dd0,0x366c5dc2,0x6e9dfa27,0xed2fe305,0x6e9197e2,0x4575e892,0xab502a5d,0x11719c09,0xe81f213f,0x264c7bec,0x55f5c457,0x741b9241 +.long 0x49a5f4f4,0x78ac7b68,0x9fc45b7d,0xf91d70a2,0xb0f5f355,0x39b05544,0xeef930d9,0x11f06bce,0x038d05e1,0xdb84d25d,0xbacc1d51,0x04838ee5,0x9e8ee00b,0x9da3ce86,0xc36eda1f,0xc3412057 +.long 0x64d9c2f4,0xae80b913,0xa010a8ff,0x7468bac3,0x37359d41,0xdfd20037,0x15efeacc,0x1a0f5ab8,0x659d0ce0,0x7c25ad2f,0x6785cff1,0x4011bcbb,0x7e2192c7,0x128b9912,0x13ccb0e8,0xa549d8e1 +.long 0xc85438b1,0x805588d8,0xbc25cb27,0x5680332d,0x1a4bfdf4,0xdcd1bc96,0x706f6566,0x779ff428,0xf059987a,0x8bbee998,0xcc686de7,0xf6ce8cf2,0x953cfdb2,0xf8ad3c4a,0x2205da36,0xd1d426d9 +.long 0xc781a241,0xb3c0f13f,0xd75362a8,0x3e89360e,0xc8a91184,0xccd05863,0xefa8a7f4,0x9bd0c9b7,0x8a912a4b,0x97ee4d53,0xbcf518fd,0xde5e15f8,0xc467e1e0,0x6a055bf8,0x1587e256,0x10be4b4b +.long 0x668621c9,0xd90c14f2,0xab9c92c1,0xd5518f51,0xd6d47b3c,0x8e6a0100,0x66716175,0xcbe980dd,0xddd83683,0x500d3f10,0x99cac73c,0x3b6cb35d,0x6083d550,0x53730c8b,0xdf0a1987,0xcf159767 +.long 0x43ad73b3,0x84bfcf53,0x4f035a94,0x1b528c20,0x33eeac69,0x4294edf7,0x817f3240,0xb6283e83,0x0a5f25b1,0xc3fdc959,0x5844ee22,0xefaf8aa5,0xdbdde4de,0xde269ba5,0xc56133bf,0xe3347160 +.long 0x8d9ea9f8,0xc1184219,0xf3fc1ab5,0x090de5db,0x0bf22cda,0x404c37b1,0xf5618894,0x7de20ec8,0xecdaecab,0x754c588e,0x88342743,0x6ca4b0ed,0xf4a938ec,0x76f08bdd,0x91493ccb,0xd182de89 +.long 0xc8a4186a,0xd652c53e,0x946d8e33,0xb3e878db,0x5f37663c,0x088453c0,0xb407748b,0x5cd9daaa,0x586d5e72,0xa1f5197f,0xc443ca59,0x47500be8,0xe2652424,0x78ef35b2,0x6dd7767d,0x09c5d26f +.long 0xa74d3f7b,0x7175a79a,0xcf5ea459,0x0428fd8d,0xa5d1746d,0x511cb97c,0xe71d1278,0x36363939,0x10350bf4,0xcf2df955,0x60aae782,0xb3817439,0x3e688809,0xa748c0e4,0xd7a5a006,0x98021fbf +.long 0x0e367a98,0x9076a70c,0x0f62b7c2,0xbea1bc15,0x30fe0343,0x2645a68c,0x699dc14f,0xacaffa78,0x457bf9c4,0xf4469964,0x0d2ead83,0x0db6407b,0xb2c6f3eb,0x68d56cad,0xf376356c,0x3b512e73 +.long 0xfce10408,0xe43b0e1f,0x5a5e257d,0x89ddc003,0x0362e5b3,0xb0ae0d12,0xb0519161,0x07f983c7,0x5d5231e7,0xc2e94d15,0x0b4f9513,0xcff22aed,0x6ad0b0b5,0xb02588dd,0x11d0dcd5,0xb967d1ac +.long 0xcf777b6c,0x8dac6bc6,0x4c6d1959,0x0062bdbd,0x0ef5cc85,0x53da71b5,0x4006f14f,0x07012c7d,0xac47800d,0x4617f962,0xc102ed75,0x53365f2b,0x4ab8c9d3,0xb422efcb,0x34af31c9,0x195cb26b +.long 0x05f2c4ce,0x3a926e29,0x9856966c,0xbd2bdecb,0x85527015,0x5d16ab3a,0x4486c231,0x9f81609e,0xda350002,0xd8b96b2c,0xfa1b7d36,0xbd054690,0xe71d79bc,0xdc90ebf5,0x08964e4e,0xf241b6f9 +.long 0x2fe3cd4c,0x7c838643,0xb4bc633c,0xe0f33acb,0x3d139f1f,0xb4a9ecec,0xdc4a1f49,0x05ce69cd,0xf5f98aaf,0xa19d1b16,0x6f23e0ef,0x45bb71d6,0x46cdfdd3,0x33789fcd,0xcee040ca,0x9b8e2978 +.long 0xae0a6828,0x9c69b246,0x7078d5aa,0xba533d24,0x7bb4fbdb,0x7a2e42c0,0x7035385c,0xcfb4879a,0x3281705b,0x8c3dd30b,0x404fe081,0x7e361c6c,0x3f604edf,0x7b21649c,0xe52ffe47,0x5dbf6a3f +.long 0x4b54d9bf,0xc41b7c23,0x3511c3d9,0x1374e681,0xc1b2b758,0x1863bf16,0x1e9e6a96,0x90e78507,0x5d86f174,0xab4bf98d,0x85e96fe4,0xd74e0bd3,0xcac5d344,0x8afde39f,0xbd91b847,0x90946dbc +.long 0xfe1a838c,0xf5b42358,0x620ac9d8,0x05aae6c5,0xa1ce5a0b,0x8e193bd8,0x4dabfd72,0x8f710571,0x182caaac,0x8d8fdd48,0x040745cf,0x8c4aeefa,0xf3b93e6d,0x73c6c30a,0x16f42011,0x991241f3 +.long 0xe457a477,0xa0158eea,0xee6ddc05,0xd19857db,0x18c41671,0xb3265224,0x3c2c0d58,0x3ffdfc7e,0x26ee7cda,0x3a3a5254,0xdf02c3a8,0x341b0869,0x723bbfc8,0xa023bf42,0x14452691,0x3d15002a +.long 0x85edfa30,0x5ef7324c,0x87d4f3da,0x25976554,0xdcb50c86,0x352f5bc0,0x4832a96c,0x8f6927b0,0x55f2f94c,0xd08ee1ba,0x344b45fa,0x6a996f99,0xa8aa455d,0xe133cb8d,0x758dc1f7,0x5d0721ec +.long 0x79e5fb67,0x6ba7a920,0x70aa725e,0xe1331feb,0x7df5d837,0x5080ccf5,0x7ff72e21,0xe4cae01d,0x0412a77d,0xd9243ee6,0xdf449025,0x06ff7cac,0x23ef5a31,0xbe75f7cd,0x0ddef7a8,0xbc957822 +.long 0xb0ce1c55,0x8cf7230c,0x0bbfb607,0x5b534d05,0x0e16363b,0xee1ef113,0xb4999e82,0x27e0aa7a,0x79362c41,0xce1dac2d,0x91bb6cb0,0x67920c90,0x2223df24,0x1e648d63,0xe32e8f28,0x0f7d9eef +.long 0xfa833834,0x6943f39a,0xa6328562,0x22951722,0x4170fc10,0x81d63dd5,0xaecc2e6d,0x9f5fa58f,0xe77d9a3b,0xb66c8725,0x6384ebe0,0x11235cea,0x5845e24a,0x06a8c118,0xebd093b1,0x0137b286 +.long 0x44ace150,0xc589e1ce,0x4381e97c,0xe0f8d3d9,0x62c5a4b8,0x59e99b11,0xfd0ec9f9,0x90d262f7,0x283e13c9,0xfbc854c9,0xaedc7085,0x2d04fde7,0x47dcbecb,0x057d7765,0x9a76fa5f,0x8dbdf591 +.long 0x0de1e578,0xd0150695,0xe9f72bc6,0x2e1463e7,0x1b39eca5,0xffa68441,0x7c037f2f,0x673c8530,0x747f91da,0xd0d6a600,0xc9cb78e9,0xb08d43e1,0x27b5cef5,0x0fc0c644,0xa60a2fd6,0x5c1d160a +.long 0x28c8e13b,0xf98cae53,0xb2eddcd1,0x375f10c4,0x5cce06ad,0xd4eb8b7f,0x80a2e1ef,0xb4669f45,0x5bbd8699,0xd593f9d0,0xe7976d13,0x5528a4c9,0x1c7e28d3,0x3923e095,0x3f6bb577,0xb9293790 +.long 0xc42bd6d2,0xdb567d6a,0xbb1f96ae,0x6df86468,0x4843b28e,0x0efe5b1a,0x6379b240,0x961bbb05,0x70a6a26b,0xb6caf5f0,0x328e6e39,0x70686c0d,0x895fc8d3,0x80da06cf,0xb363fdc9,0x804d8810 +.long 0x207f1670,0xbe22877b,0x4e615291,0x9b0dd188,0x97a3c2bf,0x625ae8dc,0x439b86e8,0x08584ef7,0xdcd898ff,0xde7190a5,0x2058ee3d,0x26286c40,0x5f87b1c1,0x3db0b217,0x102a6db5,0xcc334771 +.long 0x2f770fb1,0xd99de954,0x4cd7535e,0x97c1c620,0x3f09cefc,0xd3b6c448,0x5a63b4f8,0xd725af15,0xc01e20ec,0x0c95d24f,0x9ae7121f,0xdfd37494,0xec77b7ec,0x7d6ddb72,0x0353a4ae,0xfe079d3b +.long 0x2e6ac8d2,0x3066e70a,0x106e5c05,0x9c6b5a43,0xede59b8c,0x52d3c6f5,0xfccec9ae,0x30d6a5c3,0x4fc0a9ef,0xedec7c22,0x95c16ced,0x190ff083,0x94de0fde,0xbe12ec8f,0x852d3433,0x0d131ab8 +.long 0x85701291,0x42ace07e,0x194061a8,0x94793ed9,0xd7f4a485,0x30e83ed6,0xf9eeff4d,0x9eec7269,0x0c9d8005,0x90acba59,0x1e79b9d1,0x5feca458,0x1d506a1e,0x8fbe5427,0x2439cfa7,0xa32b2c8e +.long 0x73dd0b4e,0x1671c173,0x44a054c6,0x37a28214,0x4e8b53f1,0x81760a1b,0xf9f93b9e,0xa6c04224,0xcf671e3c,0x18784b34,0xcda9b994,0x81bbecd2,0xb2ab3848,0x38831979,0xf2e03c2d,0xef54feb7 +.long 0xfb8088fa,0xcf197ca7,0x4ddc96c5,0x01427247,0x30777176,0xa2d2550a,0x4d0cf71d,0x53469898,0x3a2aaac6,0x6ce937b8,0x5af38d9b,0xe9f91dc3,0xc8bf2899,0x2598ad83,0xb5536c16,0x8e706ac9 +.long 0xf688dc98,0x40dc7495,0x124c4afc,0x26490cd7,0x1f18775c,0xe651ec84,0xb4fdaf4a,0x393ea6c3,0x7f338e0d,0x1e1f3343,0x6053e7b5,0x39fb832b,0x619e14d5,0x46e702da,0xcdeef6e0,0x859cacd1 +.long 0x4462007d,0x63b99ce7,0x4cb5f5b7,0xb8ab48a5,0xf55edde7,0x9ec673d2,0x8cfaefda,0xd1567f74,0x0887bcec,0x46381b6b,0xe178f3c2,0x694497ce,0x1e6266cb,0x5e6525e3,0x697d6413,0x5931de26 +.long 0x0e58d493,0x87f8df7c,0x58b73f12,0xb1ae5ed0,0xdea0c34d,0xc368f784,0x859a91a0,0x9bd0a120,0xcc863c68,0xb00d88b7,0x3d1f4d65,0x3a1cc11e,0x0aa85593,0xea38e0e7,0x7dc4aee8,0x37f13e98 +.long 0xbc947bad,0x10d38667,0x2a36ee2e,0x738e07ce,0xc577fcac,0xc93470cd,0x2782470d,0xdee1b616,0x2e793d12,0x36a25e67,0xe0f186da,0xd6aa6cae,0x80e07af7,0x474d0fd9,0xba8a5cd4,0xf7cdc47d +.long 0xab15247f,0x28af6d9d,0x493a537f,0x7c789c10,0x23a334e7,0x7ac9b110,0x12c9c277,0x0236ac09,0x1d7a5144,0xa7e5bd25,0xf13ec4ec,0x098b9c2a,0xd3f0abca,0x3639daca,0xa23960f9,0x642da81a +.long 0x4f7269b1,0x7d2e5c05,0xe287c385,0xfcf30777,0xf2a46f21,0x10edc84f,0x4f43fa36,0x35441757,0xfd703431,0xf1327899,0x16dd587a,0xa438d7a6,0xe9c8352d,0x65c34c57,0x5cc5a24e,0xa728edab +.long 0x42531689,0xaed78abc,0x010963ef,0x0a51a0e8,0xd717d9b3,0x5776fa0a,0x7dd3428b,0xf356c239,0x8d3a3dac,0x29903fff,0x3d94491f,0x409597fa,0xbf4a56a4,0x4cd7a5ff,0x8adab462,0xe5096474 +.long 0x5c3427b0,0xa97b5126,0xd282c9bd,0x6401405c,0x222c5c45,0x3629f8d7,0xe8d50aed,0xb1c02c16,0xd9635bc9,0xbea2ed75,0x6e24552f,0x226790c7,0x65f1d066,0x3c33f2a3,0x6dfccc2e,0x2a43463e +.long 0xdb483761,0x8cc3453a,0x65d5672b,0xe7cc6085,0xde3efc87,0x277ed6cb,0x69234eaf,0x19f2f368,0x5c0b800b,0x9aaf4317,0x8b6da6e2,0x1f1e7c89,0xb94ec75e,0x6cfb4715,0x453118c2,0xd590dd5f +.long 0x1f17a34c,0x14e49da1,0x235a1456,0x5420ab39,0x2f50363b,0xb7637241,0xc3fabb6e,0x7b15d623,0xe274e49c,0xa0ef40b1,0x96b1860a,0x5cf50744,0x66afe5a4,0xd6583fbf,0xf47e3e9a,0x44240510 +.long 0x11b2d595,0x99254343,0xeec8df57,0xf1367499,0x3e73dd05,0x3cb12c61,0x7dac102a,0xd248c033,0xa77739f5,0xcf154f13,0x23d2af42,0xbf4288cb,0x32e4a1cf,0xaa64c9b6,0xc8a208f3,0xee8c07a8 +.long 0x6fe8393f,0xe10d4999,0xe91f3a32,0x0f809a3f,0x802f63c8,0x61096d1c,0x57750d3d,0x289e1462,0x9889feea,0xed06167e,0xe0993909,0xd5c9c0e2,0x56508ac6,0x46fca0d8,0x4f1b8e83,0x91826047 +.long 0x9a4a2751,0x4f2c877a,0xcae6fead,0x71bd0072,0x06aa1941,0x38df8dcc,0x63beeaa8,0x5a074b4c,0xc1cec8ed,0xd6d65934,0xaabc03bd,0xa6ecb49e,0xde8a8415,0xaade91c2,0x691136e0,0xcfb0efdf +.long 0x23ab3495,0x11af45ee,0x0b77463d,0xa132df88,0x815d06f4,0x8923c15c,0x0d61a436,0xc3ceb3f5,0xe88fb1da,0xaf52291d,0x1da12179,0xea057974,0xd2fef720,0xb0d7218c,0x8e1d8845,0x6c0899c9 +.long 0x752ddad7,0x98157504,0xa1a68a97,0xd60bd74f,0xf658fb99,0x7047a3a9,0x5f8511e4,0x1f5d86d6,0x4b5a6d88,0xb8a4bc42,0x1abefa7d,0x69eb2c33,0x13c9c510,0x95bf39e8,0xd48aab43,0xf571960a +.long 0x704e23c6,0x7e8cfbcf,0x28aaa65b,0xc71b7d22,0x245e3c83,0xa041b2bd,0xd21854ff,0x69b98834,0x963bfeec,0x89d227a3,0xde7da7cb,0x99947aaa,0xee68a9b1,0x1d9ee9db,0x698ec368,0x0a08f003 +.long 0x78ef2487,0xe9ea4094,0x02cfec26,0xc8d2d415,0xb7dcf328,0xc52f9a6e,0x85b6a937,0x0ed489e3,0xbef3366e,0x9b94986b,0xedddddb8,0x0de59c70,0xeadddbe2,0xffdb748c,0x8266ea40,0x9b9784bb +.long 0x1a93507a,0x142b5502,0x8d3c06cf,0xb4cd1187,0x91ec3f40,0xdf70e76a,0x4e7553c2,0x484e81ad,0x272e9d6e,0x830f87b5,0xc6ff514a,0xea1c93e5,0xc4192a8e,0x67cc2adc,0x42f4535a,0xc77e27e2 +.long 0xd2b713c5,0x9cdbab36,0xcf7b0cd3,0x86274ea0,0x09af826b,0x784680f3,0x0c72dea3,0xbfcc837a,0xd6529b73,0xa8bdfe9d,0x63a88002,0x708aa228,0xc91d45b9,0x6c7a9a54,0xfd004f56,0xdf1a38bb +.long 0xb8bad853,0x2e8c9a26,0x3723eae7,0x2d52cea3,0x56ca2830,0x054d6d81,0x9a8dc411,0xa3317d14,0xfd4ddeda,0xa08662fe,0xb55d792b,0xed2a153a,0xbfc6e944,0x7035c16a,0x00171cf3,0xb6bc5834 +.long 0x83d102b6,0xe27152b3,0x0646b848,0xfe695a47,0x916e6d37,0xa5bb09d8,0x0d17015e,0xb4269d64,0x0a1d2285,0x8d8156a1,0x46d26d72,0xfeef6c51,0x4c5434a7,0x9dac57c8,0x59d39e31,0x0282e5be +.long 0x721c486d,0xedfff181,0xbc58824e,0x301baf10,0x00570031,0x8136a6aa,0x1cddde68,0x55aaf78c,0x59c63952,0x26829371,0x8bc25baf,0x3a3bd274,0xb7e52dc3,0xecdf8657,0xfd78e6c8,0x2dd8c087 +.long 0xf5531461,0x20553274,0x5d95499b,0x8b4a1281,0x1a80f9d2,0xe2c8763a,0x4ddec758,0xd1dbe32b,0x30c34169,0xaf12210d,0x78baa533,0xba74a953,0xa438f254,0x3d133c6e,0x201bef5b,0xa431531a +.long 0xf669d7ec,0x15295e22,0x357fb515,0xca374f64,0xeaa3fdb3,0x8a8406ff,0xdf3f2da8,0x106ae448,0x33c8e9a1,0x8f9b0a90,0x71ad5885,0x234645e2,0x1c0aed14,0x3d083224,0x7a942d46,0xf10a7d3e +.long 0x40d5c9be,0x7c11deee,0xba84ed98,0xb2bae7ff,0xaad58ddd,0x93e97139,0x3f6d1fa3,0x3d872796,0x8569ff13,0x483aca81,0x9a600f72,0x8b89a5fb,0xc06f2b86,0x4cbc27c3,0x63ad9c0b,0x22130713 +.long 0x48ac2840,0xb5358b1e,0xecba9477,0x18311294,0xa6946b43,0xda58f990,0x9ab41819,0x3098baf9,0x4198da52,0x66c4c158,0x146bfd1b,0xab4fc17c,0xbf36a908,0x2f0a4c3c,0x58cf7838,0x2ae9e34b +.long 0x3fa11b1f,0xf411529e,0x974af2b4,0x21e43677,0xc230793b,0x7c20958e,0x16e840f3,0x710ea885,0xc5dc67cf,0xfc0b21fc,0x88405718,0x08d51647,0xcfe49eb7,0xd955c21f,0x56dd4a1f,0x9722a5d5 +.long 0xc861baa5,0xc9ef50e2,0x9505ac3e,0xc0c21a5d,0x8b7c063f,0xaf6b9a33,0x2f4779c1,0xc6370339,0x638167c3,0x22df99c7,0x795db30c,0xfe6ffe76,0xa4854989,0x2b822d33,0x30563aa5,0xfef031dd +.long 0xd57c667f,0x16b09f82,0xcc0b76f1,0xc70312ce,0xc9118aec,0xbf04a9e6,0x3409d133,0x82fcb419,0xab45d44d,0x1a8ab385,0x617b83a3,0xfba07222,0x58e81b52,0xb05f50dd,0x21ce5aff,0x1d8db553 +.long 0xe344a873,0x3097b8d4,0xfe36d53e,0x7d8d116d,0x7875e750,0x6db22f58,0x43e144ea,0x2dc5e373,0xe799eb95,0xc05f32e6,0x6899e6ec,0xe9e5f4df,0x1fab23d5,0xbdc3bd68,0x73af60e6,0xb72b8ab7 +.long 0x2cecc84a,0x8db27ae0,0x7bdb871c,0x600016d8,0xd7c46f58,0x42a44b13,0xc3a77d39,0xb8919727,0xdafd6088,0xcfc6bbbd,0x6bd20d39,0x1a740146,0x98c41072,0x8c747abd,0xbdf68ea1,0x4c91e765 +.long 0x08819a78,0x7c95e5ca,0xc9587921,0xcf48b729,0xdebbcc7d,0x091c7c5f,0xf0e05149,0x6f287404,0x26cd44ec,0xf83b5ac2,0xcfea250e,0x88ae32a6,0x1d06ebc5,0x6ac5047a,0xd434f781,0xc7e550b4 +.long 0x5c727bd2,0x61ab1cf2,0x1cf915b0,0x2e4badb1,0xf69d3920,0x1b4dadec,0xf14c1dfe,0xe61b1ca6,0xbd6bd51f,0x90b479cc,0x8045ec30,0x8024e401,0x25ef0e62,0xcab29ca3,0x49e4ebc0,0x4f2e9416 +.long 0x0ccced58,0x45eb40ec,0x0da44f98,0x25cd4b9c,0x871812c6,0x43e06458,0x16cef651,0x99f80d55,0xce6dc153,0x571340c9,0xd8665521,0x138d5117,0x4e07014d,0xacdb45bc,0x84b60b91,0x2f34bb38 +.long 0x2ae8921e,0xf44a4fd2,0x892ba1e2,0xb039288e,0xb1c180b2,0x9da50174,0x1693dc87,0x6b70ab66,0xe7057481,0x7e9babc9,0x9c80dc41,0x4581ddef,0x51294682,0x0c890da9,0x3f4736e5,0x0b5629d3 +.long 0xb06f5b41,0x2340c79e,0x4e243469,0xa42e84ce,0x045a71a9,0xf9a20135,0xd27b6fb6,0xefbfb415,0x9d33cd6f,0x25ebea23,0xaa6c0af8,0x9caedb88,0xd9ce6f96,0x53dc7e9a,0x51e0b15a,0x3897f9fd +.long 0x8e5d788e,0xf51cb1f8,0xe1d490ee,0x1aec7ba8,0xcc58cb3c,0x265991e0,0x9fc3ad31,0x9f306e8c,0x5040a0ac,0x5fed006e,0xfb476f2e,0xca9d5043,0xbeea7a23,0xa19c06e8,0x0edabb63,0xd2865801 +.long 0x6967469a,0xdb92293f,0x8d8a8ed8,0x2894d839,0xbbc77122,0x87c9e406,0x2ea3a26a,0x8671c6f1,0xd7de9853,0xe42df8d6,0xb1f2bcc7,0x2e3ce346,0x899d50cf,0xda601dfc,0xfb1b598f,0xbfc913de +.long 0xe61f7908,0x81c4909f,0x9bbc7b29,0x192e304f,0xc104b338,0xc3ed8738,0x783f5d61,0xedbe9e47,0x2db30660,0x0c06e9be,0xc0eb7d8e,0xda3e613f,0x322e096e,0xd8fa3e97,0xd336e247,0xfebd91e8 +.long 0xdf655a49,0x8f13ccc4,0x5eb20210,0xa9e00dfc,0xc656b6ea,0x84631d0f,0xd8c0d947,0x93a058cd,0x67bd3448,0x6846904a,0xf394fd5c,0x4a3d4e1a,0xdb225f52,0xc102c1a5,0xfc4f5e9a,0xe3455bba +.long 0x4b9ad1ce,0x6b36985b,0x5bb7f793,0xa9818536,0x48b1a416,0x6c25e1d0,0x3c81bee7,0x1381dd53,0x7a4a7620,0xd2a30d61,0x39b8944c,0xc8412926,0x7a97c33a,0x3c1c6fbe,0x938664e7,0x941e541d +.long 0x4a34f239,0x417499e8,0xb90402d5,0x15fdb83c,0x433aa832,0xb75f46bf,0x63215db1,0xb61e15af,0xa127f89a,0xaabe59d4,0x07e816da,0x5d541e0c,0xa618b692,0xaaba0659,0x17266026,0x55327733 +.long 0x95f57552,0xaf53a0fc,0x6cacb0c9,0x32947650,0xc821be01,0x253ff58d,0xa06f1146,0xb0309531,0x05c2e54d,0x59bbbdf5,0x26e8dd22,0x158f27ad,0x397e1e53,0xcc5b7ffb,0x7fc1e50d,0xae03f65b +.long 0x9c95f0f9,0xa9784ebd,0x24640771,0x5ed9deb2,0x035561c4,0x31244af7,0x7ee857de,0x87332f3a,0x2b9e0d88,0x09e16e9e,0x56a06049,0x52d910f4,0xa9592f48,0x507ed477,0x2365d678,0x85cb917b +.long 0x4c8998d1,0xf8511c93,0x730ea58f,0x2186a3f1,0xb2029db0,0x50189626,0x02ceb75a,0x9137a6d9,0x748bc82c,0x2fe17f37,0x80469f8c,0x87c2e931,0xbf891aa2,0x850f71cd,0x75ec3d8d,0x0ca1b89b +.long 0x5e1cd3cd,0x516c43aa,0x9a887c28,0x89397808,0xddea1f9f,0x0059c699,0x8e6868f7,0x7737d6fa,0x60f1524b,0x6d93746a,0xba052aa7,0x36985e55,0xed923ea5,0x41b1d322,0x25852a11,0x3429759f +.long 0x092e9f41,0xbeca6ec3,0x62256bbd,0x3a238c66,0x70ad487d,0xd82958ea,0x65610d93,0x4ac8aaf9,0x5e4ccab0,0x3fa101b1,0x9de14bfb,0x9bf430f2,0x6531899d,0xa10f5cc6,0xea8ce17d,0x590005fb +.long 0x24544cb6,0xc437912f,0xd79ac2e3,0x9987b71a,0xc058a212,0x13e3d9dd,0xd2de9606,0x00075aac,0x6cac8369,0x80ab508b,0xf54f6c89,0x87842be7,0x6bc532a4,0xa7ad663d,0x78a91bc8,0x67813de7 +.long 0xc3427239,0x5dcb61ce,0xc56934d9,0x5f3c7cf0,0xe3191591,0xc079e0fb,0xb01aada7,0xe40896bd,0x0492d25f,0x8d466791,0xe7408276,0x8aeb30c9,0x9287aacc,0xe9437495,0x79fe03d4,0x23d4708d +.long 0xd0c05199,0x8cda9cf2,0xfae78454,0x502fbc22,0xf572a182,0xc0bda9df,0x6158b372,0x5f9b71b8,0x2b82dd07,0xe0f33a59,0x9523032e,0x76302735,0xc4505a32,0x7fe1a721,0xf796409f,0x7b6e3e82 +.long 0x35d0b34a,0xe3417bc0,0x8327c0a7,0x440b386b,0xac0362d1,0x8fb7262d,0xe0cdf943,0x2c41114c,0xad95a0b1,0x2ba5cef1,0x67d54362,0xc09b37a8,0x01e486c9,0x26d6cdd2,0x42ff9297,0x20477abf +.long 0x292a9287,0xa004dcb3,0x77b092c7,0xddc15cf6,0x806c0605,0x083a8464,0x3db997b0,0x4a68df70,0x05bf7dd0,0x9c134e45,0x8ccf7f8c,0xa4e63d39,0x41b5f8af,0xa6e6517f,0xad7bc1cc,0xaa8b9342 +.long 0x1e706ad9,0x126f35b5,0xc3a9ebdf,0xb99cebb4,0xbf608d90,0xa75389af,0xc6c89858,0x76113c4f,0x97e2b5aa,0x80de8eb0,0x63b91304,0x7e1022cc,0x6ccc066c,0x3bdab605,0xb2edf900,0x33cbb144 +.long 0x7af715d2,0xc4176471,0xd0134a96,0xe2f7f594,0xa41ec956,0x2c1873ef,0x77821304,0xe4e7b4f6,0x88d5374a,0xe5c8ff97,0x80823d5b,0x2b915e63,0xb2ee8fe2,0xea6bc755,0xe7112651,0x6657624c +.long 0xdace5aca,0x157af101,0x11a6a267,0xc4fdbcf2,0xc49c8609,0xdaddf340,0xe9604a65,0x97e49f52,0x937e2ad5,0x9be8e790,0x326e17f1,0x846e2508,0x0bbbc0dc,0x3f38007a,0xb11e16d6,0xcf03603f +.long 0x7442f1d5,0xd6f800e0,0x66e0e3ab,0x475607d1,0xb7c64047,0x82807f16,0xa749883d,0x8858e1e3,0x8231ee10,0x5859120b,0x638a1ece,0x1b80e7eb,0xc6aa73a4,0xcb72525a,0x844423ac,0xa7cdea3d +.long 0xf8ae7c38,0x5ed0c007,0x3d740192,0x6db07a5c,0x5fe36db3,0xbe5e9c2a,0x76e95046,0xd5b9d57a,0x8eba20f2,0x54ac32e7,0x71b9a352,0xef11ca8f,0xff98a658,0x305e373e,0x823eb667,0xffe5a100 +.long 0xe51732d2,0x57477b11,0x2538fc0e,0xdfd6eb28,0x3b39eec5,0x5c43b0cc,0xcb36cc57,0x6af12778,0x06c425ae,0x70b0852d,0x5c221b9b,0x6df92f8c,0xce826d9c,0x6c8d4f9e,0xb49359c3,0xf59aba7b +.long 0xda64309d,0x5c8ed8d5,0x91b30704,0x61a6de56,0x2f9b5808,0xd6b52f6a,0x98c958a7,0x0eee4194,0x771e4caa,0xcddd9aab,0x78bc21be,0x83965dfd,0xb3b504f5,0x02affce3,0x561c8291,0x30847a21 +.long 0x52bfda05,0xd2eb2cf1,0x6197b98c,0xe0e4c4e9,0xf8a1726f,0x1d35076c,0x2db11e3d,0x6c06085b,0x4463ba14,0x15c0c4d7,0x0030238c,0x9d292f83,0x3727536d,0x1311ee8b,0xbeaedc1e,0xfeea86ef +.long 0x66131e2e,0xb9d18cd3,0x80fe2682,0xf31d974f,0xe4160289,0xb6e49e0f,0x08e92799,0x7c48ec0b,0xd1989aa7,0x818111d8,0xebf926f9,0xb34fa0aa,0xa245474a,0xdb5fe2f5,0x3c7ca756,0xf80a6ebb +.long 0xafa05dd8,0xa7f96054,0xfcaf119e,0x26dfcf21,0x0564bb59,0xe20ef2e3,0x61cb02b8,0xef4dca50,0x65d30672,0xcda7838a,0xfd657e86,0x8b08d534,0x46d595c8,0x4c5b4395,0x425cb836,0x39b58725 +.long 0x3de9abe3,0x8ea61059,0x9cdc03be,0x40434881,0xcfedce8c,0x9b261245,0xcf5234a1,0x78c318b4,0xfde24c99,0x510bcf16,0xa2c2ff5d,0x2a77cb75,0x27960fb4,0x9c895c2b,0xb0eda42b,0xd30ce975 +.long 0x1a62cc26,0xfda85393,0x50c0e052,0x23c69b96,0xbfc633f3,0xa227df15,0x1bae7d48,0x2ac78848,0x187d073d,0x487878f9,0x967f807d,0x6c2be919,0x336e6d8f,0x765861d8,0xce528a43,0x88b8974c +.long 0xff57d051,0x09521177,0xfb6a1961,0x2ff38037,0xa3d76ad4,0xfc0aba74,0x25a7ec17,0x7c764803,0x48879bc8,0x7532d75f,0x58ce6bc1,0xea7eacc0,0x8e896c16,0xc82176b4,0x2c750fed,0x9a30e0b2 +.long 0x421d3aa4,0xc37e2c2e,0xe84fa840,0xf926407c,0x1454e41c,0x18abc03d,0x3f7af644,0x26605ecd,0xd6a5eabf,0x242341a6,0x216b668e,0x1edb84f4,0x04010102,0xd836edb8,0x945e1d8c,0x5b337ce7 +.long 0xc055dc14,0xd2075c77,0x81d89cdf,0x2a0ffa25,0x6ffdcbaf,0x8ce815ea,0xfb648867,0xa3428878,0x884655fb,0x277699cf,0x364d3e41,0xfa5b5bd6,0x441e1cb7,0x01f680c6,0xb70a7d67,0x3fd61e66 +.long 0xcc78cf66,0x666ba2dc,0x6fdbff77,0xb3018174,0x168d4668,0x8d4dd0db,0x1dab3a2a,0x259455d0,0xcde3acec,0xf58564c5,0x13adb276,0x77141925,0x8a303f65,0x527d725d,0xe6f38f7b,0x55deb6c9 +.long 0xb1fa70fb,0xfd5bb657,0xd8073a00,0xfa07f50f,0xbca02500,0xf72e3aa7,0x9975740d,0xf68f895d,0x5cae2a6a,0x30112060,0x02874842,0x01bd7218,0x7ce47bd3,0x3d423891,0x789544f6,0xa66663c1 +.long 0x3272d838,0x864d05d7,0xfa6295c5,0xe22924f9,0x6c2fda32,0x8189593f,0xb184b544,0x330d7189,0xbde1f714,0x79efa62c,0xe5cb1a63,0x35771c94,0x641c8332,0x2f4826b8,0xc8cee854,0x00a894fb +.long 0x36194d40,0xb4b9a39b,0x77612601,0xe857a7c5,0x4ecf2f58,0xf4209dd2,0x5a033487,0x82b9e66d,0xe4e8b9dd,0xc1e36934,0xa42377d7,0xd2372c9d,0x0e3ae43b,0x51dc94c7,0x04474f6f,0x4c57761e +.long 0x1058a318,0xdcdacd0a,0x78053a9a,0x369cf3f5,0x31c68de2,0xc6c3de50,0x3c4b6d9f,0x4653a576,0xaa4e5c97,0x1688dd5a,0xb7ab3c74,0x5be80aa1,0xbc65c283,0x70cefe7c,0x06867091,0x57f95f13 +.long 0x4415503b,0xa39114e2,0x4cbb17e9,0xc08ff7c6,0xd7dec966,0x1eff674d,0x53376f63,0x6d4690af,0xea74237b,0xff6fe32e,0xcd57508e,0xc436d17e,0xedcc40fe,0x15aa28e1,0x581bbb44,0x0d769c04 +.long 0x34eaacda,0xc240b6de,0x2ba0f1de,0xd9e116e8,0x79438e55,0xcbe45ec7,0x96f752d7,0x91787c9d,0xf129ac2f,0x897f532b,0x5a36e22c,0xd307b7c8,0x749fb8f3,0x91940675,0x157fdb28,0xd14f95d0 +.long 0x6ae55043,0xfe51d029,0x44a87de1,0x8931e98f,0x09e4fee2,0xe57f1cc6,0x4e072d92,0x0d063b67,0xed0e4316,0x70a998b9,0x306aca46,0xe74a736b,0x4fda97c7,0xecf0fbf2,0x3e178d93,0xa40f65cb +.long 0x16df4285,0x16253604,0xd0c56ae2,0xb0c9babb,0xcfc5cfc3,0x73032b19,0x09752056,0xe497e5c3,0x164bda96,0x12096bb4,0xa0b74da1,0x1ee42419,0x403826ba,0x8fc36243,0xdc09e660,0x0c8f0069 +.long 0xc27253c9,0x8667e981,0x92b36a45,0x05a6aefb,0x9cb7bb46,0xa62c4b36,0x11f7027b,0x8394f375,0x5f109d0f,0x747bc79c,0x5b8cc60a,0xcad88a76,0x58f09e68,0x80c5a66b,0xf6127eac,0xe753d451 +.long 0x5b0ec6f5,0xc44b74a1,0x5289b2b8,0x47989fe4,0x58d6fc73,0x745f8484,0xf61c70ab,0xec362a6f,0xb3a8ad41,0x070c98a7,0x7b63db51,0x73a20fc0,0xf44c35f4,0xed2c2173,0x9acc9dca,0x8a56149d +.long 0x9ac6e0f4,0x98f17881,0xa413b5ed,0x360fdeaf,0xa300b0fd,0x0625b8f4,0x5b3222d3,0xf1f4d76a,0x587f76b8,0x9d6f5109,0x2317fdb5,0x8b4ee08d,0x8c68b095,0x88089bb7,0x5808d9b9,0x95570e9a +.long 0x35d33ae7,0xa395c36f,0x50bb5a94,0x200ea123,0x0bafe84b,0x20c789bd,0x0919276a,0x243ef52d,0xe23ae233,0x3934c577,0xa460d1ec,0xb93807af,0xf8fa76a4,0xb72a53b1,0xc3ca4491,0xd8914cb0 +.long 0x3fb42622,0x2e128494,0x500907d5,0x3b2700ac,0x1a95ec63,0xf370fb09,0x31b6dfbd,0xf8f30be2,0x69e55f15,0xf2b2f8d2,0xcc1323e9,0x1fead851,0xd9e5eef6,0xfa366010,0xe316107e,0x64d487b0 +.long 0xd23ddc82,0x4c076b86,0x7e0143f0,0x03fd344c,0x317af2c5,0xa95362ff,0xe18b7a4f,0x0add3db7,0x8260e01b,0x9c673e3f,0x54a1cc91,0xfbeb49e5,0x92f2e433,0x91351bf2,0x851141eb,0xc755e7ec +.long 0x29607745,0xc9a95139,0xa26f2b28,0x0ca07420,0x4bc6f9dd,0xcb2790e7,0xadcaffc0,0x345bbb58,0xbe0f27a2,0xc65ea38c,0x641fcb56,0x67c24d7c,0xa9e2c757,0x2c25f0a7,0x16f16c49,0x93f5cdb0 +.long 0xc5ee30a1,0x2ca5a9d7,0xb909b729,0xd1593635,0xdadeff48,0x804ce9f3,0xb07c30c3,0xec464751,0x9e49af6a,0x89d65ff3,0x6f3d01bc,0xf2d6238a,0x0bced843,0x1095561e,0xc8a13fd8,0x51789e12 +.long 0x763231df,0xd633f929,0xe7cbddef,0x46df9f7d,0xcb265da8,0x01c889c0,0xaf4336d2,0xfce1ad10,0xfc6a0a7e,0x8d110df6,0x6da425dc,0xdd431b98,0x1834aabe,0xcdc4aeab,0x8439b7fc,0x84deb124 +.long 0x3c2a5998,0x8796f169,0x7947190d,0x9b9247b4,0x11597014,0x55b9d9a5,0x7b1566ee,0x7e9dd70d,0xcbcd5e64,0x94ad78f7,0x9bd4c032,0x0359ac17,0x7cc222ae,0x3b11baaf,0xba78e812,0xa6a6e284 +.long 0x24cea1a0,0x8392053f,0x33621491,0xc97bce4a,0x35399ee9,0x7eb1db34,0xece81ad1,0x473f78ef,0xf63d3d0d,0x41d72fe0,0xafab62fc,0xe620b880,0x93158383,0x92096bc9,0x8f896f6c,0x41a21357 +.long 0xc7dcfcab,0x1b5ee2fa,0x9546e007,0x650acfde,0xb1b02e07,0xc081b749,0xf9eca03d,0xda9e41a0,0x175a54ab,0x013ba727,0xea5d8d10,0xca0cd190,0x95fd96a9,0x85ea52c0,0xbc5c3940,0x2c591b9f +.long 0x2bad4d5f,0x6fb4d4e4,0xfef0059b,0xfa4c3590,0xf5122294,0x6a10218a,0xa85751d1,0x9a78a81a,0xa98e84e7,0x04f20579,0x4997e5b5,0xfe1242c0,0xca21e1e4,0xe77a273b,0x9411939d,0xfcc8b1ef +.long 0x92d0487a,0xe20ea302,0x294b91fe,0x1442dbec,0xbb6b0e8f,0x1f7a4afe,0x6889c318,0x1700ef74,0x70f1fc62,0xf5bbffc3,0x69c79cca,0x3b31d4b6,0xa7f6340d,0xe8bc2aab,0xa725e10a,0xb0b08ab4 +.long 0xae340050,0x44f05701,0x1cf0c569,0xba4b3016,0xfbe19a51,0x5aa29f83,0xb71d752e,0x1b9ed428,0xeb4819f5,0x1666e54e,0x9e18b75b,0x616cdfed,0x3ee27b0b,0x112ed5be,0x44c7de4d,0xfbf28319 +.long 0xe0e60d84,0xd685ec85,0x1db7ee78,0x68037e30,0x003c4d6e,0x5b65bdcd,0x93e29a6a,0x33e7363a,0x08d0756c,0x995b3a61,0x2faf134b,0xd727f85c,0x1d337823,0xfac6edf7,0x0439b8b4,0x99b9aa50 +.long 0xe2b4e075,0x722eb104,0x437c4926,0x49987295,0x46a9b82d,0xb1e4c0e4,0x57a006f5,0xd0cb3197,0xd7808c56,0xf3de0f7d,0x51f89772,0xb5c54d8f,0xadbd31aa,0x500a114a,0x295f6cab,0x9afaaaa6 +.long 0x04cf667a,0x94705e21,0x9d3935d7,0xfc2a811b,0x6d09267c,0x560b0280,0xf780e53b,0xf19ed119,0x067b6269,0xf0227c09,0x5caef599,0x967b8533,0x68efeebc,0x155b9243,0xc497bae6,0xcd6d34f5 +.long 0x6cceb370,0x1dd8d5d3,0xa78d7bf9,0x2aeac579,0x70b67a62,0x5d65017d,0x17c53f67,0x70c8e44f,0x86a34d09,0xd1fc0950,0xe7134907,0xe0fca256,0x80fdd315,0xe24fa29c,0xd87499ad,0x2c4acd03 +.long 0x3b5a9ba6,0xbaaf7517,0x12e51a51,0xb9cbe1f6,0x5e154897,0xd88edae3,0x77b66ca0,0xe4309c3c,0xf67f3746,0xf5555805,0xa36401ff,0x85fc37ba,0xd9499a53,0xdf86e2ca,0xecbc955b,0x6270b2a3 +.long 0x974ad33b,0xafae64f5,0xfe7b2df1,0x04d85977,0x4ab03f73,0x2a3db3ff,0x8702740a,0x0b87878a,0x5a061732,0x6d263f01,0xa32a1901,0xc25430ce,0xdb155018,0xf7ebab3d,0x63a9b78e,0x3a86f693 +.long 0xda9f3804,0x349ae368,0xa164349c,0x470f07fe,0x8562baa5,0xd52f4cc9,0x2b290df3,0xc74a9e86,0x43471a24,0xd3a1aa35,0xb8194511,0x239446be,0x81dcd44d,0xbec2dd00,0xc42ac82d,0xca3d7f0f +.long 0xfdaf4520,0x1f3db085,0x4549daf2,0xbb6d3e80,0x19ad5c42,0xf5969d8a,0xdbfd1511,0x7052b13d,0x682b9060,0x11890d1b,0xac34452c,0xa71d3883,0x783805b4,0xa438055b,0x4725b23e,0x43241277 +.long 0x4901bbed,0xf20cf96e,0xf432a2bb,0x6419c710,0xdfa9cd7d,0x57a0fbb9,0x00daa249,0x589111e4,0x7b60554e,0x19809a33,0xede283a4,0xea5f8887,0x503bfd35,0x2d713802,0x585d2a53,0x151bb0af +.long 0x43b30ca8,0x40b08f74,0xd9934583,0xe10b5bba,0xb51110ad,0xe8a546d6,0x28e0b6c5,0x1dd50e66,0xcff2b821,0x292e9d54,0x47281760,0x3882555d,0x3724d6e3,0x134838f8,0x22ddcda1,0xf2c679e0 +.long 0x6d2a5768,0x40ee8815,0x1c1e7e2d,0x7f227bd2,0xd04ff443,0x487ba134,0xc614e54b,0x76e2ff3d,0xa3177ec7,0x36b88d6f,0x2328fff5,0xbf731d51,0x49ba158e,0x758caea2,0x02938188,0x5ab8ff4c +.long 0x35edc56d,0x33e16056,0x7e940d79,0x5a69d349,0x03866dcb,0x6c4fd001,0x4893cdef,0x20a38f57,0xfac3a15b,0xfbf3e790,0x7a4f8e6b,0x6ed7ea2e,0xbc3aca86,0xa663eb4f,0x080d53f7,0x22061ea5 +.long 0xf546783f,0x2480dfe6,0x5a0a641e,0xd38bc6da,0x2ede8965,0xfb093cd1,0xacb455cf,0x89654db4,0x26e1adee,0x413cbf9a,0x373294d4,0x291f3764,0x648083fe,0x00797257,0x208cc341,0x25f504d3 +.long 0xc3a0ee43,0x635a8e5e,0x679898ff,0x70aaebca,0x5dc63d56,0x9ee9f547,0xffb34d00,0xce987966,0x5e26310a,0xf9f86b19,0x382a8ca8,0x9e435484,0xc2352fe4,0x253bcb81,0x4474b571,0xa4eac8b0 +.long 0xc1ad8cf8,0xc1b97512,0x99e0b697,0x193b4e9e,0x01e85df0,0x939d2716,0xcd44eafd,0x4fb265b3,0xe51e1ae2,0x321e7dcd,0xe3d8b096,0x8e3a8ca6,0x52604998,0x8de46cb0,0x39072aa7,0x91099ad8 +.long 0x93aa96b8,0x2617f91c,0x7fca2e13,0x0fc8716b,0x95328723,0xa7106f5e,0x262e6522,0xd1c9c40b,0x42b7c094,0xb9bafe86,0x1543c021,0x1873439d,0x5cbefd5d,0xe1baa5de,0x521e8aff,0xa363fc5e +.long 0xf862eaac,0xefe6320d,0x22c647dc,0x14419c63,0x4e46d428,0x0e06707c,0x4a178f8f,0xcb6c834f,0xd30f917c,0x0f993a45,0x9879afee,0xd4c4b049,0x70500063,0xb6142a1e,0xa5d9d605,0x7c9b41c3 +.long 0x2f8ba2c7,0xbc00fc2f,0x7c67aa28,0x0966eb2f,0x5a786972,0x13f7b516,0x8a2fbba0,0x3bfb7557,0x5a2b9620,0x131c4f23,0x6faf46be,0xbff3ed27,0x7e172323,0x9b4473d1,0x339f6246,0x421e8878 +.long 0x25a41632,0x0fa8587a,0xa35b6c93,0xc0814124,0x59ebb8db,0x2b18a9f5,0x76edb29c,0x264e3357,0xc87c51e2,0xaf245ccd,0x501e6214,0x16b3015b,0x0a3882ce,0xbb31c560,0xfec11e04,0x6961bb94 +.long 0xeff7a3a0,0x3b825b8d,0xb1df7326,0xbec33738,0x99604a1f,0x68ad747c,0x9a3bd499,0xd154c934,0x1cc7a906,0xac33506f,0x6c560e8f,0x73bb5392,0x263e3944,0x6428fcbe,0x1c387434,0xc11828d5 +.long 0x3e4b12ff,0x3cd04be1,0x2d88667c,0xc3aad9f9,0x248120cf,0xc52ddcf8,0x2a389532,0x985a892e,0x3bb85fa0,0xfbb4b21b,0x8dfc6269,0xf95375e0,0x7ee2acea,0xfb4fb06c,0x309c4d1f,0x6785426e +.long 0xd8ceb147,0x659b17c8,0xb70a5554,0x9b649eee,0xac6bc634,0x6b7fa0b5,0x1d6e732f,0xd99fe2c7,0x8d3abba2,0x30e6e762,0xa797b799,0x18fee6e7,0xc696464d,0x5c9d360d,0x27bfde12,0xe3baeb48 +.long 0xf23206d5,0x2bf5db47,0x1d260152,0x2f6d3420,0x3f8ff89a,0x17b87653,0x378fa458,0x5157c30c,0x2d4fb936,0x7517c5c5,0xe6518cdc,0xef22f7ac,0xbf847a64,0xdeb483e6,0x92e0fa89,0xf5084558 +.long 0xdf7304d4,0xab9659d8,0xff210e8e,0xb71bcf1b,0xd73fbd60,0xa9a2438b,0x5d11b4de,0x4595cd1f,0x4835859d,0x9c0d329a,0x7dbb6e56,0x4a0f0d2d,0xdf928a4e,0xc6038e5e,0x8f5ad154,0xc9429621 +.long 0xf23f2d92,0x91213462,0x60b94078,0x6cab71bd,0x176cde20,0x6bdd0a63,0xee4d54bc,0x54c9b20c,0x9f2ac02f,0x3cd2d8aa,0x206eedb0,0x03f8e617,0x93086434,0xc7f68e16,0x92dd3db9,0x831469c5 +.long 0x8f981354,0x8521df24,0x3588a259,0x587e23ec,0xd7a0992c,0xcbedf281,0x38961407,0x06930a55,0xbe5bbe21,0x09320deb,0x2491817f,0xa7ffa5b5,0x09065160,0xe6c8b4d9,0xfff6d2a9,0xac4f3992 +.long 0x3ae9c1bd,0x7aa7a158,0xe37ce240,0xe0af6d98,0x28ab38b4,0xe54342d9,0x0a1c98ca,0xe8b75007,0xe02358f2,0xefce86af,0xea921228,0x31b8b856,0x0a1c67fc,0x052a1912,0xe3aead59,0xb4069ea4 +.long 0x7fa03cb3,0x3232d6e2,0x0fdd7d88,0xdb938e5b,0x2ccbfc5d,0x04c1d2cd,0xaf3a580f,0xd2f45c12,0x7883e614,0x592620b5,0xbe7c5f26,0x5fd27e68,0x1567e1e3,0x139e45a9,0x44d8aaaf,0x2cc71d2d +.long 0xe36d0757,0x4a9090cd,0xd9a29382,0xf722d7b1,0x04b48ddf,0xfb7fb04c,0xebe16f43,0x628ad2a7,0x20226040,0xcd3fbfb5,0x5104b6c4,0x6c34ecb1,0xc903c188,0x30c0754e,0x2d23cab0,0xec336b08 +.long 0x1e206ee5,0x473d62a2,0x8c49a633,0xf1e27480,0xe9f6b2c3,0x87ab956c,0x62b606ea,0x61830b48,0xe78e815f,0x67cd6846,0x4c02082a,0xfe40139f,0x952ec365,0x52bbbfcb,0x6b9836ab,0x74c11642 +.long 0x558df019,0x9f51439e,0xac712b27,0x230da4ba,0x55185a24,0x518919e3,0x84b78f50,0x4dcefcdd,0xa47d4c5a,0xa7d90fb2,0xb30e009e,0x55ac9abf,0x74eed273,0xfd2fc359,0xdbea8faf,0xb72d824c +.long 0x4513e2ca,0xce721a74,0x38240b2c,0x0b418612,0xd5baa450,0x05199968,0x2b0e8c25,0xeb1757ed,0x3dfac6d5,0x6ebc3e28,0x48a237f5,0xb2431e2e,0x52f61499,0x2acb5e23,0xe06c936b,0x5558a2a7 +.long 0xcbb13d1b,0xd213f923,0x5bfb9bfe,0x98799f42,0x701144a9,0x1ae8ddc9,0x4c5595ee,0x0b8b3bb6,0x3ecebb21,0x0ea9ef2e,0x3671f9a7,0x17cb6c4b,0x726f1d1f,0x47ef464f,0x6943a276,0x171b9484 +.long 0x7ef0329c,0x51a4ae2d,0x91c4402a,0x08509222,0xafd45bbc,0x64a61d35,0x3035a851,0x38f096fe,0xa1dec027,0xc7468b74,0x4fc7dcba,0xe8cf10e7,0xf4a06353,0xea35ff40,0x8b77dd66,0x0b4c0dfa +.long 0xde7e5c19,0x779b8552,0xc1c0256c,0xfab28609,0xabd4743d,0x64f58eee,0x7b6cc93b,0x4e8ef838,0x4cb1bf3d,0xee650d26,0x73dedf61,0x4c1f9d09,0xbfb70ced,0xaef7c9d7,0x1641de1e,0x1ec0507e +.long 0xcde45079,0xcd7e5cc7,0x516ac9e4,0xde173c9a,0xc170315c,0x517a8494,0x91d8e8fb,0x438fd905,0xc7d9630b,0x5145c506,0xf47d4d75,0x6457a87b,0x0d9a80e8,0xd31646bf,0xcef3aabe,0x453add2b +.long 0xa607419d,0xc9941109,0xbb6bca80,0xfaa71e62,0x07c431f3,0x34158c13,0x992bc47a,0x594abebc,0xeb78399f,0x6dfea691,0x3f42cba4,0x48aafb35,0x077c04f0,0xedcd65af,0xe884491a,0x1a29a366 +.long 0x1c21f2bf,0x023a40e5,0xa5057aee,0xf99a513c,0xbcab072e,0xa3fe7e25,0x40e32bcf,0x8568d2e1,0xd3f69d9f,0x904594eb,0x07affab1,0x181a9733,0xb6e330f4,0xe4d68d76,0xc75a7fc1,0x87a6dafb +.long 0xef7d9289,0x549db2b5,0x197f015a,0x2480d4a8,0xc40493b6,0x61d5590b,0x6f780331,0x3a55b52e,0x309eadb0,0x40eb8115,0x92e5c625,0xdea7de5a,0xcc6a3d5a,0x64d631f0,0x93e8dd61,0x9d5e9d7c +.long 0x206d3ffc,0xf297bef5,0x7d808bd4,0x23d5e033,0xd24cf5ba,0x4a4f6912,0x09cdaa8a,0xe4d8163b,0xd3082e8e,0x0e0de9ef,0x0192f360,0x4fe1246c,0x4b8eee0a,0x1f900150,0xf1da391b,0x5219da81 +.long 0xf7ea25aa,0x7bf6a5c1,0xfbb07d5f,0xd165e6bf,0x89e78671,0xe3539361,0x2bac4219,0xa3fcac89,0xf0baa8ab,0xdfab6fd4,0xe2c1c2e5,0x5a4adac1,0x40d85849,0x6cd75e31,0x19b39181,0xce263fea +.long 0x07032c72,0xcb6803d3,0x790968c8,0x7f40d5ce,0xdce978f0,0xa6de86bd,0x368f751c,0x25547c4f,0x65fb2a9e,0xb1e685fd,0x1eb9179c,0xce69336f,0x12504442,0xb15d1c27,0xb911a06b,0xb7df465c +.long 0x315980cd,0xb8d804a3,0xfa3bebf7,0x693bc492,0x2253c504,0x3578aeee,0xcd2474a2,0x158de498,0xcfda8368,0x1331f5c7,0x78d7177e,0xd2d7bbb3,0xf3c1e46e,0xdf61133a,0xd30e7be8,0x5836ce7d +.long 0x94f834cb,0x83084f19,0x429ed782,0xd35653d4,0x59e58243,0xa542f16f,0x0470a22d,0xc2b52f65,0x18f23d96,0xe3b6221b,0x3f5252b4,0xcb05abac,0x87d61402,0xca00938b,0x411933e4,0x2f186cdd +.long 0x9a29a5c5,0xe042ece5,0x3b6c8402,0xb19b3c07,0x19d92684,0xc97667c7,0xebc66372,0xb5624622,0x3c04fa02,0x0cb96e65,0x8eaa39aa,0x83a7176c,0xeaa1633f,0x2033561d,0x4533df73,0x45a9d086 +.long 0x3dc090bc,0xe0542c1d,0xaa59c167,0x82c996ef,0x0ee7fc4d,0xe3f735e8,0x7c35db79,0x7b179393,0xf8c5dbfd,0xb6419e25,0x1f327b04,0x4d9d7a1e,0x298dfca8,0x979f6f9b,0x8de9366a,0xc7c5dff1 +.long 0x04c82bdd,0x1b7a588d,0xf8319dfd,0x68005534,0xd8eb9580,0xde8a55b5,0x8d5bca81,0x5ea886da,0x252a0b4d,0xe8530a01,0x35eaa0a1,0x1bffb4fe,0xd8e99563,0x2ad828b1,0x95f9cd87,0x7de96ef5 +.long 0xd77d970c,0x4abb2d0c,0xd33ef9cb,0x03cfb933,0x8b211fe9,0xb0547c01,0xa56ed1c6,0x2fe64809,0xc2ac98cc,0xcb7d5624,0x1a393e33,0x2a1372c0,0x29660521,0xc8d1ec1c,0xb37ac3e9,0xf3d31b04 +.long 0x5ece6e7c,0xa29ae9df,0x0facfb55,0x0603ac8f,0xdda233a5,0xcfe85b7a,0xbd75f0b8,0xe618919f,0x99bf1603,0xf555a3d2,0xf184255a,0x1f43afc9,0x319a3e02,0xdcdaf341,0x03903a39,0xd3b117ef +.long 0x65d1d131,0xe095da13,0xc37ad03e,0x86f16367,0x462cd8dd,0x5f37389e,0xd67a60e6,0xc103fa04,0xf4b478f0,0x57c34344,0xe117c98d,0xce91edd8,0x231fc12e,0x001777b0,0xb207bccb,0x11ae47f2 +.long 0x20f8a242,0xd983cf8d,0xf22e1ad8,0x7aff5b1d,0x7fc4feb3,0x68fd11d0,0xb0f1c3e1,0x5d53ae90,0xec041803,0x50fb7905,0x14404888,0x85e3c977,0xac628d8f,0x0e67faed,0x6668532c,0x2e865150 +.long 0x6a67a6b0,0x15acaaa4,0xb25cec41,0xf4cdee25,0xe4c6701e,0x49ee565a,0xfc7d63d8,0x2a04ca66,0xef0543fb,0xeb105018,0xd1b0d81d,0xf709a4f5,0x2915d333,0x5b906ee6,0x96f1f0ab,0xf4a87412 +.long 0x4d82f4c2,0xb6b82fa7,0x6804efb3,0x90725a60,0xadc3425e,0xbc82ec46,0x2787843e,0xb7b80581,0xdd1fc74c,0xdf46d91c,0xe783a6c4,0xdc1c62cb,0x1a04cbba,0x59d1b9f3,0x95e40764,0xd87f6f72 +.long 0x317f4a76,0x02b4cfc1,0x91036bce,0x8d2703eb,0xa5e72a56,0x98206cc6,0xcf53fb0f,0x57be9ed1,0xef0b17ac,0x09374571,0xd9181b38,0x74b2655e,0x89935d0e,0xc8f80ea8,0x91529936,0xc0d9e942 +.long 0x1e84e0e5,0x19686041,0xaea34c93,0xa5db84d3,0x7073a732,0xf9d5bb19,0x6bcfd7c0,0xb8d2fe56,0xf3eb82fa,0x45775f36,0xfdff8b58,0x8cb20ccc,0x8374c110,0x1659b65f,0x330c789a,0xb8b4a422 +.long 0x6fe8208b,0x75e3c3ea,0x286e78fe,0xbd74b9e4,0xd7d93a1a,0x0be2e81b,0xdd0a5aae,0x7ed06e27,0x6be8b800,0x721f5a58,0xd846db28,0x428299d1,0x5be88ed3,0x95cb8e6b,0x1c034e11,0xc3186b23 +.long 0x8977d99b,0xa6312c9e,0x83f531e7,0xbe944331,0x18d3b1d4,0x8232c0c2,0xe1247b73,0x617aae8b,0x282aec3b,0x40153fc4,0xf7b8f823,0xc6063d2f,0x3304f94c,0x68f10e58,0xee676346,0x31efae74 +.long 0x40a9b97c,0xbadb6c6d,0x4f666256,0x14702c63,0x5184b2e3,0xdeb954f1,0x94b6ca40,0x5184a526,0x003c32ea,0xfff05337,0x205974c7,0x5aa374dd,0x4b0dd71a,0x9a763854,0xdeb947ec,0x459cd27f +.long 0x459c2b92,0xa6e28161,0x75ee8ef5,0x2f020fa8,0x30b06310,0xb132ec2d,0xbc6a4530,0xc3e15899,0xaa3f451a,0xdc5f53fe,0xc2d9acac,0x3a3c7f23,0x6b27e58b,0x2ec2f892,0xd742799f,0x68466ee7 +.long 0x1fa26613,0x98324dd4,0xbdc29d63,0xa2dc6dab,0xd712d657,0xf9675faa,0x21fd8d15,0x813994be,0xfd4f7553,0x5ccbb722,0xf3a36b20,0x5135ff8b,0x69559df5,0x44be28af,0x9d41bf30,0x40b65bed +.long 0x3734e520,0xd98bf2a4,0x209bdcba,0x5e3abbe3,0xbc945b35,0x77c76553,0xc6ef14aa,0x5331c093,0x76b60c80,0x518ffe29,0x7ace16f8,0x2285593b,0xbe2b9784,0xab1f64cc,0xab2421b6,0xe8f2c0d9 +.long 0xc1df065c,0x617d7174,0x5f6578fa,0xafeeb5ab,0x263b54a8,0x16ff1329,0xc990dce3,0x45c55808,0xecc8c177,0x42eab6c0,0x5982ecaa,0x799ea9b5,0xb607ef8e,0xf65da244,0x32a3fc2c,0x8ab226ce +.long 0x7ea973dc,0x745741e5,0x20888f2e,0x5c00ca70,0x45fd9cf1,0x7cdce3cf,0x5507f872,0x8a741ef1,0x196b4cec,0x47c51c2f,0xc97ea618,0x70d08e43,0x15b18a2b,0x930da15c,0x2f610514,0x33b6c678 +.long 0x07ac9794,0xc662e4f8,0xba06cb79,0x1eccf050,0xe7d954e5,0x1ff08623,0x24cf71c3,0x6ef2c5fb,0x67978453,0xb2c063d2,0x1d654af8,0xa0cf3796,0x7ebdaa37,0x7cb242ea,0xb86747e0,0x206e0b10 +.long 0xd5ecfefc,0x481dae5f,0xc2bff8fc,0x07084fd8,0xea324596,0x8040a01a,0xd4de4036,0x4c646980,0xd65abfc3,0x9eb8ab4e,0x13541ec7,0xe01cb91f,0xfd695012,0x8f029adb,0x3c7569ec,0x9ae28483 +.long 0xa66d80a1,0xa5614c9e,0x75f5f911,0x680a3e44,0xceba4fc1,0x0c07b14d,0xa13071c1,0x891c285b,0x799ece3c,0xcac67ceb,0x41e07e27,0x29b910a9,0xf2e43123,0x66bdb409,0x7ac9ecbe,0x06f8b137 +.long 0x38547090,0x5981fafd,0x85e3415d,0x19ab8b9f,0xc7e31b27,0xfc28c194,0x6fbcbb42,0x843be0aa,0xa6db836c,0xf3b1ed43,0x01a45c05,0x2a1330e4,0x95c1a377,0x4f19f3c5,0x44b5ee33,0xa85f39d0 +.long 0x4ae52834,0x3da18e6d,0x7423dcb0,0x5a403b39,0xf2374aef,0xbb555e0a,0x1e8ca111,0x2ad599c4,0x014b3bf8,0x1b3a2fb9,0xf66d5007,0x73092684,0xc4340102,0x079f1426,0x8fddf4de,0x1827cf81 +.long 0xf10ff927,0xc83605f6,0x23739fc6,0xd3871451,0xcac1c2cc,0x6d163450,0xa2ec1ac5,0x6b521296,0x6e3cb4a5,0x0606c4f9,0x778abff7,0xe47d3f41,0xbe8e3a45,0x425a8d5e,0xa6102160,0x53ea9e97 +.long 0x39cbb688,0x477a106e,0xf3386d32,0x532401d2,0xb1b9b421,0x8e564f64,0x81dad33f,0xca9b8388,0x2093913e,0xb1422b4e,0x69bc8112,0x533d2f92,0xebe7b2c7,0x3fa017be,0xcaf197c6,0xb2767c4a +.long 0xaedbae9f,0xc925ff87,0x36880a54,0x7daf0eb9,0x9c4d0e71,0x9284ddf5,0x316f8cf5,0x1581cf93,0x3ac1f452,0x3eeca887,0xfb6aeffe,0xb417fce9,0xeefb8dc3,0xa5918046,0x02209400,0x73d318ac +.long 0x728693e5,0xe800400f,0x339927ed,0xe87d814b,0x57ea9910,0x93e94d3b,0x2245fb69,0xff8a35b6,0x7f200d34,0x043853d7,0x0f653ce1,0x470f1e68,0x59a06379,0x81ac05bd,0x03930c29,0xa14052c2 +.long 0x26bc2797,0x6b72fab5,0x99f16771,0x13670d16,0x1e3e48d1,0x00170052,0xb7adf678,0x978fe401,0xd41c5dd4,0x55ecfb92,0xc7b27da5,0x5ff8e247,0x013fb606,0xe7518272,0x2f547a3c,0x5768d7e5 +.long 0x60017a5f,0xbb24eaa3,0x9c64ce9b,0x6b18e6e4,0x103dde07,0xc225c655,0x7592f7ea,0xfc3672ae,0xd06283a1,0x9606ad77,0xe4d59d99,0x542fc650,0x2a40e7c2,0xabb57c49,0xa8db9f55,0xac948f13 +.long 0xb04465c3,0x6d4c9682,0x6468bd15,0xe3d062fa,0x5f318d7e,0xa51729ac,0x9eb6fc95,0x1fc87df6,0x0591f652,0x63d146a8,0x589621aa,0xa861b8f7,0xce31348c,0x59f5f15a,0x440da6da,0x8f663391 +.long 0xb591ffa3,0xcfa778ac,0x4cdfebce,0x027ca9c5,0x444ea6b3,0xbe8e05a5,0xa78d8254,0x8aab4e69,0xb474d6b8,0x2437f04f,0x045b3855,0x6597ffd4,0xca47ecaa,0xbb0aea4e,0x85c7ebfc,0x568aae83 +.long 0xc73b2383,0x0e966e64,0xd17d8762,0x49eb3447,0x8da05dab,0xde107821,0x016b7236,0x443d8baa,0xea7610d6,0x163b63a5,0xce1ca979,0xe47e4185,0x80baa132,0xae648b65,0x0e0d5b64,0xebf53de2 +.long 0xd3c8c1ca,0x8d3bfcb4,0x5d04b309,0x0d914ef3,0x3de7d395,0x55ef6415,0x26b850e8,0xbde1666f,0xd449ab19,0xdbe1ca6e,0xe89a2672,0x8902b322,0xdacb7a53,0xb1674b7e,0xf52523ff,0x8e9faf6e +.long 0x9a85788b,0x6ba535da,0xbd0626d4,0xd21f03ae,0xe873dc64,0x099f8c47,0x018ec97e,0xcda8564d,0xde92c68c,0x3e8d7a5c,0x73323cc4,0x78e035a1,0xf880ff7c,0x3ef26275,0x273eedaa,0xa4ee3dff +.long 0xaf4e18f8,0x58823507,0x0672f328,0x967ec9b5,0x559d3186,0x9ded19d9,0x6cdce39c,0x5e2ab3de,0x11c226df,0xabad6e4d,0x87723014,0xf9783f43,0x1a885719,0x9a49a0cf,0x90da9dbf,0xfc0c1a5a +.long 0x571d92ac,0x8bbaec49,0x4692517f,0x569e85fe,0xa14ea4af,0x8333b014,0x12e5c5ad,0x32f2a62f,0x06d89b85,0x98c2ce3a,0x2ff77a08,0xb90741aa,0x01f795a2,0x2530defc,0x84b3c199,0xd6e5ba0b +.long 0x12e4c936,0x7d8e8451,0xbd0be17b,0xae419f7d,0x22262bc9,0xa583fc8c,0x91bfe2bd,0x6b842ac7,0x440d6827,0x33cef4e9,0xef81fb14,0x5f69f4de,0x234fbb92,0xf16cf6f6,0xd9e7e158,0x76ae3fc3 +.long 0xe9740b33,0x4e89f6c2,0x4962d6a1,0x677bc85d,0x68d10d15,0x6c6d8a7f,0x0257b1cd,0x5f9a7224,0x4ad85961,0x7096b916,0xe657ab4a,0x5f8c47f7,0xf7461d7e,0xde57d7d0,0x80ce5ee2,0x7eb6094d +.long 0x34190547,0x0b1e1dfd,0xf05dd150,0x8a394f43,0x97df44e6,0x0a9eb24d,0x87675719,0x78ca06bf,0x6ffeec22,0x6f0b3462,0x36cdd8fb,0x9d91bcea,0xa105be47,0xac83363c,0x069710e3,0x81ba76c1 +.long 0x28c682c6,0x3d1b24cb,0x8612575b,0x27f25228,0xe8e66e98,0xb587c779,0x405eb1fe,0x7b0c03e9,0x15b548e7,0xfdf0d030,0x38b36af7,0xa8be76e0,0x4f310c40,0x4cdab04a,0xf47ecaec,0x6287223e +.long 0x8b399320,0x678e6055,0xc01e4646,0x61fe3fa6,0x03261a5e,0xc482866b,0x5c2f244a,0xdfcf45b8,0x2f684b43,0x8fab9a51,0xc7220a66,0xf796c654,0xf5afa58f,0x1d90707e,0x4fdbe0de,0x2c421d97 +.long 0xaf2ebc2f,0xc4f4cda3,0xcb4efe24,0xa0af843d,0x9ccd10b1,0x53b857c1,0x914d3e04,0xddc9d1eb,0x62771deb,0x7bdec8bb,0x91c5aa81,0x829277aa,0x832391ae,0x7af18dd6,0xc71a84ca,0x1740f316 +.long 0xeeaf8c49,0x8928e99a,0x6e24d728,0xee7aa73d,0xe72b156c,0x4c5007c2,0xed408a1d,0x5fcf57c5,0xb6057604,0x9f719e39,0xc2868bbf,0x7d343c01,0x7e103e2d,0x2cca254b,0xf131bea2,0xe6eb38a9 +.long 0x8be762b4,0xb33e624f,0x058e3413,0x2a9ee4d1,0x67d805fa,0x968e6369,0x7db8bfd7,0x9848949b,0xd23a8417,0x5308d7e5,0xf3e29da5,0x892f3b1d,0x3dee471f,0xc95c139e,0xd757e089,0x8631594d +.long 0xde918dcc,0xe0c82a3c,0x26fdcf4b,0x2e7b5994,0x32cb1b2d,0x82c50249,0x7657ae07,0xea613a9d,0xf1fdc9f7,0xc2eb5f6c,0x879fe682,0xb6eae8b8,0x591cbc7f,0x253dfee0,0x3e1290e6,0x000da713 +.long 0x1f095615,0x1083e2ea,0x14e68c33,0x0a28ad77,0x3d8818be,0x6bfc0252,0xf35850cd,0xb585113a,0x30df8aa1,0x7d935f0b,0x4ab7e3ac,0xaddda07c,0x552f00cb,0x92c34299,0x2909df6c,0xc33ed1de +.long 0x80e87766,0x22c2195d,0x9ddf4ac0,0x9e99e6d8,0x65e74934,0x09642e4e,0xff1ff241,0x2610ffa2,0x751c8159,0x4d1d47d4,0xaf3a9363,0x697b4985,0x87477c33,0x0318ca46,0x9441eff3,0xa90cb565 +.long 0x36f024cb,0x58bb3848,0x36016168,0x85be1f77,0xdc7e07f1,0x6c59587c,0xaf1d8f02,0x191be071,0xcca5e55c,0xbf169fa5,0xf7d04eac,0x3864ba3c,0x8d7d05db,0x915e367f,0xa6549e5d,0xb48a876d +.long 0x580e40a2,0xef89c656,0x728068bc,0xf194ed8c,0xa47990c9,0x74528045,0x5e1a4649,0xf53fc7d7,0x78593e7d,0xbec5ae9b,0x41db65d7,0x2cac4ee3,0x04a3d39b,0xa8c1eb24,0x03f8f3ef,0x53b7d634 +.long 0x3e07113c,0x2dc40d48,0x7d8b63ae,0x6e4a5d39,0x79684c2b,0x5582a94b,0x622da26c,0x932b33d4,0x0dbbf08d,0xf534f651,0x64c23a52,0x211d07c9,0xee5bdc9b,0x0eeece0f,0xf7015558,0xdf178168 +.long 0x0a712229,0xd4294635,0x09273f8c,0x93cbe448,0x8f13bc83,0x00b095ef,0x8798978c,0xbb741972,0x56dbe6e7,0x9d7309a2,0x5a5d39ec,0xe578ec56,0x851f9a31,0x3961151b,0xe5709eb4,0x2da7715d +.long 0x53dfabf0,0x867f3017,0xb8e39259,0x728d2078,0x815d9958,0x5c75a0cd,0x16603be1,0xf84867a6,0x70e35b1c,0xc865b13d,0x19b03e2c,0x02414468,0xac1f3121,0xe46041da,0x6f028a7c,0x7c9017ad +.long 0x0a482873,0xabc96de9,0xb77e54d4,0x4265d6b1,0xa57d88e7,0x68c38e79,0x9ce82de3,0xd461d766,0x64a7e489,0x817a9ec5,0xa0def5f2,0xcc5675cd,0x985d494e,0x9a00e785,0x1b03514a,0xc626833f +.long 0x83cdd60e,0xabe7905a,0xa1170184,0x50602fb5,0xb023642a,0x689886cd,0xa6e1fb00,0xd568d090,0x0259217f,0x5b1922c7,0xc43141e4,0x93831cd9,0x0c95f86e,0xdfca3587,0x568ae828,0xdec2057a +.long 0xf98a759a,0xc44ea599,0xf7c23c1d,0x55a0a7a2,0x94c4f687,0xd5ffb6e6,0x12848478,0x3563cce2,0xe7b1fbe1,0x812b3517,0x4f7338e0,0x8a7dc979,0x52d048db,0x211ecee9,0xc86ea3b8,0x2eea4056 +.long 0xba772b34,0xd8cb68a7,0x5f4e2541,0xe16ed341,0x0fec14db,0x9b32f6a6,0x391698be,0xeee376f7,0x83674c02,0xe9a7aa17,0x5843022a,0x65832f97,0x5ba4990f,0x29f3a8da,0xfb8e3216,0x79a59c3a +.long 0xbd19bb16,0x9cdc4d2e,0xb3262d86,0xc6c7cfd0,0x969c0b47,0xd4ce14d0,0x13e56128,0x1fa352b7,0x973db6d3,0x383d55b8,0xe8e5b7bf,0x71836850,0xe6bb571f,0xc7714596,0x2d5b2dd2,0x259df31f +.long 0x913cc16d,0x568f8925,0xe1a26f5a,0x18bc5b6d,0xf5f499ae,0xdfa413be,0xc3f0ae84,0xf8835dec,0x65a40ab0,0xb6e60bd8,0x194b377e,0x65596439,0x92084a69,0xbcd85625,0x4f23ede0,0x5ce433b9 +.long 0x6ad65143,0xe8e8f04f,0xd6e14af6,0x11511827,0x8295c0c7,0x3d390a10,0x621eba16,0x71e29ee4,0x63717b46,0xa588fc09,0xe06ad4a2,0x02be02fe,0x04c22b22,0x931558c6,0x12f3c849,0xbb4d4bd6 +.long 0x20efd662,0x54a4f496,0xc5952d14,0x92ba6d20,0xcc9784c2,0x2db8ea1e,0x4b353644,0x81cc10ca,0x4b4d7f6c,0x40b570ad,0x84a1dcd2,0x5c9f1d96,0x3147e797,0x01379f81,0x2bd499f5,0xe5c6097b +.long 0x328e5e20,0x40dcafa6,0x54815550,0xf7b5244a,0x47bfc978,0xb9a4f118,0xd25825b1,0x0ea0e79f,0x646c7ecf,0xa50f96eb,0x446dea9d,0xeb811493,0xdfabcf69,0x2af04677,0xc713f6e8,0xbe3a068f +.long 0x42e06189,0x860d523d,0x4e3aff13,0xbf077941,0xc1b20650,0x0b616dca,0x2131300d,0xe66dd6d1,0xff99abde,0xd4a0fd67,0xc7aac50d,0xc9903550,0x7c46b2d7,0x022ecf8b,0x3abf92af,0x3333b1e8 +.long 0x6c491c14,0x11cc113c,0x80dd3f88,0x05976688,0x29d932ed,0xf5b4d9e7,0xa2c38b6d,0xe982aad8,0x8be0dcf0,0x6f925347,0x65ca53f2,0x700080ae,0x443ca77f,0xd8131156,0xec51f984,0xe92d6942 +.long 0x85dfe9ae,0xd2a08af8,0x4d2a86ca,0xd825d9a5,0x39dff020,0x2c53988d,0x430cdc40,0xf38b135a,0x62a7150b,0x0c918ae0,0x0c340e9b,0xf31fd8de,0x4dbbf02e,0xafa0e7ae,0x5eba6239,0x5847fb2a +.long 0xdccbac8b,0x6b1647dc,0x06f485c8,0xb642aa78,0x7038ecdf,0x873f3765,0xfa49d3fe,0x2ce5e865,0xc98c4400,0xea223788,0xf1fa5279,0x8104a8cd,0x06becfd7,0xbcf7cc7a,0xc8f974ae,0x49424316 +.long 0x84d6365d,0xc0da65e7,0x8f759fb8,0xbcb7443f,0x7ae81930,0x35c712b1,0x4c6e08ab,0x80428dff,0xa4faf843,0xf19dafef,0xffa9855f,0xced8538d,0xbe3ac7ce,0x20ac409c,0x882da71e,0x358c1fb6 +.long 0xfd349961,0xafa9c0e5,0x8421c2fc,0x2b2cfa51,0xf3a28d38,0x2a80db17,0x5d138e7e,0xa8aba539,0x6e96eb8d,0x52012d1d,0xcbaf9622,0x65d8dea0,0xb264f56c,0x57735447,0x1b6c8da2,0xbeebef3f +.long 0xce785254,0xfc346d98,0xbb64a161,0xd50e8d72,0x49794add,0xc03567c7,0x752c7ef6,0x15a76065,0x961f23d6,0x59f3a222,0x73ecc0b0,0x378e4438,0x5a82fde4,0xc74be434,0xd8b9cf34,0xae509af2 +.long 0x577f44a1,0x4a61ee46,0xb611deeb,0xe09b748c,0xf5f7b884,0xc0481b2c,0x61acfa6b,0x35626678,0xbf8d21e6,0x37f4c518,0xb205a76d,0x22d96531,0x954073c0,0x37fb85e1,0x65b3a567,0xbceafe4f +.long 0xbe42a582,0xefecdef7,0x65046be6,0xd3fc6080,0x09e8dba9,0xc9af13c8,0x641491ff,0x1e6c9847,0xd30c31f7,0x3b574925,0xac2a2122,0xb7eb72ba,0xef0859e7,0x776a0dac,0x21900942,0x06fec314 +.long 0xf8c22049,0x2464bc10,0x875ebf69,0x9bfbcce7,0x4336326b,0xd7a88e2a,0x5bc2acfa,0xda05261c,0xeba7efc8,0xc29f5bdc,0x25dbbf2e,0x471237ca,0x2975f127,0xa72773f2,0x04d0b326,0xdc744e8e +.long 0xa56edb73,0x38a7ed16,0x2c007e70,0x64357e37,0x5080b400,0xa167d15b,0x23de4be1,0x07b41164,0x74c89883,0xb2d91e32,0x2882e7ed,0x3c162821,0x7503e482,0xad6b36ba,0x0ea34331,0x48434e8e +.long 0x2c7ae0b9,0x79f4f24f,0x1939b44a,0xc46fbf81,0x56595eb1,0x76fefae8,0xcd5f29c7,0x417b66ab,0xc5ceec20,0x5f2332b2,0xe1a1cae2,0xd69661ff,0x9b0286e6,0x5ede7e52,0xe276b993,0x9d062529 +.long 0x7e50122b,0x324794b0,0x4af07ca5,0xdd744f8b,0xd63fc97b,0x30a12f08,0x76626d9d,0x39650f1a,0x1fa38477,0x101b47f7,0xd4dc124f,0x3d815f19,0xb26eb58a,0x1569ae95,0x95fb1887,0xc3cde188 +.long 0xf9539a48,0x54e9f37b,0x7408c1a5,0xb0100e06,0xea580cbb,0x821d9811,0x86e50c56,0x8af52d35,0xdbbf698b,0xdfbd9d47,0x03dc1c73,0x2961a1ea,0xe76a5df8,0x203d38f8,0x6def707a,0x08a53a68 +.long 0x1bee45d4,0x26eefb48,0x3c688036,0xb3cee346,0xc42f2469,0x463c5315,0x81378162,0x19d84d2e,0x1c4d349f,0x22d7c3c5,0x163d59c5,0x65965844,0xb8abceae,0xcf198c56,0x628559d5,0x6fb1fb1b +.long 0x07bf8fe3,0x8bbffd06,0x3467734b,0x46259c58,0x35f7f0d3,0xd8953cea,0xd65b0ff1,0x1f0bece2,0xf3c72914,0xf7d5b4b3,0x3cb53389,0x29e8ea95,0x836b6d46,0x4a365626,0xea174fde,0xe849f910 +.long 0xf4737f21,0x7ec62fbb,0x6209f5ac,0xd8dba5ab,0xa5f9adbe,0x24b5d7a9,0xa61dc768,0x707d28f7,0xcaa999ea,0x7711460b,0x1c92e4cc,0xba7b174d,0x18d4bf2d,0x3c4bab66,0xeb8bd279,0xb8f0c980 +.long 0x324b4737,0x024bea9a,0x32a83bca,0xfba9e423,0xa232dced,0x6e635643,0x2571c8ba,0x99619367,0x54b7032b,0xe8c9f357,0x2442d54a,0xf936b3ba,0x8290c65a,0x2263f0f0,0xee2c7fdb,0x48989780 +.long 0x13d4f95e,0xadc5d55a,0xad9b8500,0x737cff85,0x8a73f43d,0x271c557b,0xe18bc476,0xbed617a4,0x7dfd8ab2,0x66245401,0x3a2870aa,0xae7b89ae,0x23a7e545,0x1b555f53,0xbe057e4c,0x6791e247 +.long 0x324fa34d,0x860136ad,0x4cbeae28,0xea111447,0xbedd3299,0x023a4270,0xc1c35c34,0x3d5c3a7f,0x8d0412d2,0xb0f6db67,0xfcdc6b9a,0xd92625e2,0x4e28a982,0x92ae5ccc,0x47a3ce7e,0xea251c36 +.long 0x790691bf,0x9d658932,0x06b736ae,0xed610589,0xc0d63b6e,0x712c2f04,0xc63d488f,0x5cf06fd5,0xd9588e41,0x97363fac,0x2b93257e,0x1f9bf762,0x667acace,0xa9d1ffc4,0x0a061ecf,0x1cf4a1aa +.long 0xdc1818d0,0x40e48a49,0xa3621ab0,0x0643ff39,0xe39ef639,0x5768640c,0x04d86854,0x1fc099ea,0xeccd28fd,0x9130b9c3,0x7eec54ab,0xd743cbd2,0xe5b475b6,0x052b146f,0x900a7d1f,0x058d9a82 +.long 0x91262b72,0x65e02292,0xbb0edf03,0x96f924f9,0xfe206842,0x5cfa59c8,0x5eafa720,0xf6037004,0x18d7dd96,0x5f30699e,0xcbab2495,0x381e8782,0xdd8be949,0x91669b46,0x26aae8ef,0xb40606f5 +.long 0xfc6751a4,0x2812b839,0xfba800ef,0x16196214,0x4c1a2875,0x4398d5ca,0x653d8349,0x720c00ee,0xd820007c,0xc2699eb0,0xa39b5825,0x880ee660,0x471f6984,0x70694694,0xe3dda99a,0xf7d16ea8 +.long 0xc0519a23,0x28d675b2,0x4f6952e3,0x9ebf94fe,0xa2294a8a,0xf28bb767,0xfe0af3f5,0x85512b4d,0x99b16a0d,0x18958ba8,0xba7548a7,0x95c2430c,0xa16be615,0xb30d1b10,0x85bfb74c,0xe3ebbb97 +.long 0x18549fdb,0xa3273cfe,0x4fcdb792,0xf6e200bf,0x83aba56c,0x54a76e18,0x89ef6aa2,0x73ec66f6,0xd1b9a305,0x8d17add7,0xb7ae1b9d,0xa959c5b9,0x6bcc094a,0x88643522,0xd7d429b9,0xcc5616c4 +.long 0xe6a33f7c,0xa6dada01,0x9d4e70ad,0xc6217a07,0x09c15b7c,0xd619a818,0x0e80c854,0xea06b329,0xa5f5e7b9,0x174811ce,0x787c65f4,0x66dfc310,0x3316ab54,0x4ea7bd69,0x1dcc0f70,0xc12c4acb +.long 0x1e407dd9,0xe4308d1a,0x91afa997,0xe8a3587c,0xab77b7a5,0xea296c12,0x673c0d52,0xb5ad49e4,0x7006085a,0x40f9b2b2,0x87bf6ec2,0xa88ff340,0x4e3066a6,0x978603b1,0xb5e486e2,0xb3f99fc2 +.long 0xb2e63645,0x07b53f5e,0x84c84232,0xbe57e547,0x7214d5cf,0xd779c216,0x029a3aca,0x617969cd,0x8a7017a0,0xd17668cd,0xbe9b7ee8,0x77b4d19a,0x9c161776,0x58fd0e93,0xd5968a72,0xa8c4f4ef +.long 0x67b3de77,0x296071cc,0x634f7905,0xae3c0b8e,0x8a7100c9,0x67e440c2,0xeb4b9b42,0xbb8c3c1b,0xc51b3583,0x6d71e8ea,0x9525e642,0x7591f5af,0x13f509f3,0xf73a2f7b,0x5619ac9b,0x618487aa +.long 0x9d61718a,0x3a72e5f7,0x7592d28c,0x00413bcc,0x963c35cf,0x7d9b11d3,0xb90a46ed,0x77623bcf,0xdcdd2a50,0xdeef273b,0x0601846e,0x4a741f9b,0x0ec6e929,0x33b89e51,0x8b7f22cd,0xcb02319f +.long 0x084bae24,0xbbe1500d,0x343d2693,0x2f0ae8d7,0x7cdef811,0xacffb5f2,0x263fb94f,0xaa0c030a,0xa0f442de,0x6eef0d61,0x27b139d3,0xf92e1817,0x0ad8bc28,0x1ae6deb7,0xc0514130,0xa89e38dc +.long 0xd2fdca23,0x81eeb865,0xcc8ef895,0x5a15ee08,0x01905614,0x768fa10a,0x880ee19b,0xeff5b8ef,0xcb1c8a0e,0xf0c0cabb,0xb8c838f9,0x2e1ee9cd,0x8a4a14c0,0x0587d8b8,0x2ff698e5,0xf6f27896 +.long 0x89ee6256,0xed38ef1c,0x6b353b45,0xf44ee1fe,0x70e903b3,0x9115c0c7,0x818f31df,0xc78ec0a1,0xb7dccbc6,0x6c003324,0x163bbc25,0xd96dd1f3,0x5cedd805,0x33aa82dd,0x7f7eb2f1,0x123aae4f +.long 0xa26262cd,0x1723fcf5,0x0060ebd5,0x1f7f4d5d,0xb2eaa3af,0xf19c5c01,0x9790accf,0x2ccb9b14,0x52324aa6,0x1f9c1cad,0x7247df54,0x63200526,0xbac96f82,0x5732fe42,0x01a1c384,0x52fe771f +.long 0xb1001684,0x546ca13d,0xa1709f75,0xb56b4eee,0xd5db8672,0x266545a9,0x1e8f3cfb,0xed971c90,0xe3a07b29,0x4e7d8691,0xe4b696b9,0x7570d9ec,0x7bc7e9ae,0xdc5fa067,0xc82c4844,0x68b44caf +.long 0xbf44da80,0x519d34b3,0x5ab32e66,0x283834f9,0x6278a000,0x6e608797,0x627312f6,0x1e62960e,0xe6901c55,0x9b87b27b,0x24fdbc1f,0x80e78538,0x2facc27d,0xbbbc0951,0xac143b5a,0x06394239 +.long 0x376c1944,0x35bb4a40,0x63da1511,0x7cb62694,0xb7148a3b,0xafd29161,0x4e2ea2ee,0xa6f9d9ed,0x880dd212,0x15dc2ca2,0xa61139a9,0x903c3813,0x6c0f8785,0x2aa7b46d,0x901c60ff,0x36ce2871 +.long 0xe10d9c12,0xc683b028,0x032f33d3,0x7573baa2,0x67a31b58,0x87a9b1f6,0xf4ffae12,0xfd3ed11a,0x0cb2748e,0x83dcaa9a,0x5d6fdf16,0x8239f018,0x72753941,0xba67b49c,0xc321cb36,0x2beec455 +.long 0x3f8b84ce,0x88015606,0x8d38c86f,0x76417083,0x598953dd,0x054f1ca7,0x4e8e7429,0xc939e110,0x5a914f2f,0x9b1ac2b3,0xe74b8f9c,0x39e35ed3,0x781b2fb0,0xd0debdb2,0x2d997ba2,0x1585638f +.long 0x9e2fce99,0x9c4b646e,0x1e80857f,0x68a21081,0x3643b52a,0x06d54e44,0x0d8eb843,0xde8d6d63,0x42146a0a,0x70321563,0x5eaa3622,0x8ba826f2,0x86138787,0x227a58bd,0x10281d37,0x43b6c03c +.long 0xb54dde39,0x6326afbb,0xdb6f2d5f,0x744e5e8a,0xcff158e1,0x48b2a99a,0xef87918f,0xa93c8fa0,0xde058c5c,0x2182f956,0x936f9e7a,0x216235d2,0xd2e31e67,0xace0c0db,0xf23ac3e7,0xc96449bf +.long 0x170693bd,0x7e9a2874,0xa45e6335,0xa28e14fd,0x56427344,0x5757f6b3,0xacf8edf9,0x822e4556,0xe6a285cd,0x2b7a6ee2,0xa9df3af0,0x5866f211,0xf845b844,0x40dde2dd,0x110e5e49,0x986c3726 +.long 0xf7172277,0x73680c2a,0x0cccb244,0x57b94f0f,0x2d438ca7,0xbdff7267,0xcf4663fd,0xbad1ce11,0xd8f71cae,0x9813ed9d,0x961fdaa6,0xf43272a6,0xbd6d1637,0xbeff0119,0x30361978,0xfebc4f91 +.long 0x2f41deff,0x02b37a95,0xe63b89b7,0x0e44a59a,0x143ff951,0x673257dc,0xd752baf4,0x19c02205,0xc4b7d692,0x46c23069,0xfd1502ac,0x2e6392c3,0x1b220846,0x6057b1a2,0x0c1b5b63,0xe51ff946 +.long 0x566c5c43,0x6e85cb51,0x3597f046,0xcff9c919,0x4994d94a,0x9354e90c,0x2147927d,0xe0a39332,0x0dc1eb2b,0x8427fac1,0x2ff319fa,0x88cfd8c2,0x01965274,0xe2d4e684,0x67aaa746,0xfa2e067d +.long 0x3e5f9f11,0xb6d92a7f,0xd6cb3b8e,0x9afe153a,0xddf800bd,0x4d1a6dd7,0xcaf17e19,0xf6c13cc0,0x325fc3ee,0x15f6c58e,0xa31dc3b2,0x71095400,0xafa3d3e7,0x168e7c07,0x94c7ae2d,0x3f8417a1 +.long 0x813b230d,0xec234772,0x17344427,0x634d0f5f,0xd77fc56a,0x11548ab1,0xce06af77,0x7fab1750,0x4f7c4f83,0xb62c10a7,0x220a67d9,0xa7d2edc4,0x921209a0,0x1c404170,0xface59f0,0x0b9815a0 +.long 0x319540c3,0x2842589b,0xa283d6f8,0x18490f59,0xdaae9fcb,0xa2731f84,0xc3683ba0,0x3db6d960,0x14611069,0xc85c63bb,0x0788bf05,0xb19436af,0x347460d2,0x905459df,0xe11a7db1,0x73f6e094 +.long 0xb6357f37,0xdc7f938e,0x2bd8aa62,0xc5d00f79,0x2ca979fc,0xc878dcb9,0xeb023a99,0x37e83ed9,0x1560bf3d,0x6b23e273,0x1d0fae61,0x1086e459,0x9a9414bd,0x78248316,0xf0ea9ea1,0x1b956bc0 +.long 0xc31b9c38,0x7b85bb91,0x48ef57b5,0x0c5aa90b,0xaf3bab6f,0xdedeb169,0x2d373685,0xe610ad73,0x02ba8e15,0xf13870df,0x8ca7f771,0x0337edb6,0xb62c036c,0xe4acf747,0xb6b94e81,0xd921d576 +.long 0x2c422f7a,0xdbc86439,0xed348898,0xfb635362,0xc45bfcd1,0x83084668,0x2b315e11,0xc357c9e3,0x5b2e5b8c,0xb173b540,0xe102b9a4,0x7e946931,0x7b0fb199,0x17c890eb,0xd61b662b,0xec225a83 +.long 0xee3c76cb,0xf306a3c8,0xd32a1f6e,0x3cf11623,0x6863e956,0xe6d5ab64,0x5c005c26,0x3b8a4cbe,0x9ce6bb27,0xdcd529a5,0x04d4b16f,0xc4afaa52,0x7923798d,0xb0624a26,0x6b307fab,0x85e56df6 +.long 0x2bf29698,0x0281893c,0xd7ce7603,0x91fc19a4,0xad9a558f,0x75a5dca3,0x4d50bf77,0x40ceb3fa,0xbc9ba369,0x1baf6060,0x597888c2,0x927e1037,0x86a34c07,0xd936bf19,0xc34ae980,0xd4cf10c1 +.long 0x859dd614,0x3a3e5334,0x18d0c8ee,0x9c475b5b,0x07cd51d5,0x63080d1f,0xb88b4326,0xc9c0d0a6,0xc234296f,0x1ac98691,0x94887fb6,0x2a0a83a4,0x0cea9cf2,0x56511427,0xa24802f5,0x5230a6e8 +.long 0x72e3d5c1,0xf7a2bf0f,0x4f21439e,0x37717446,0x9ce30334,0xfedcbf25,0x7ce202f9,0xe0030a78,0x1202e9ca,0x6f2d9ebf,0x75e6e591,0xe79dde6c,0xf1dac4f8,0xf52072af,0xbb9b404d,0x6c8d087e +.long 0xbce913af,0xad0fc73d,0x458a07cb,0x909e587b,0xd4f00c8a,0x1300da84,0xb54466ac,0x425cd048,0x90e9d8bf,0xb59cb9be,0x3e431b0e,0x991616db,0x531aecff,0xd3aa117a,0x59f4dc3b,0x91af92d3 +.long 0xe93fda29,0x9b1ec292,0xe97d91bc,0x76bb6c17,0xaface1e6,0x7509d95f,0xbe855ae3,0x3653fe47,0x0f680e75,0x73180b28,0xeeb6c26c,0x75eefd1b,0xb66d4236,0xa4cdf29f,0x6b5821d8,0x2d70a997 +.long 0x20445c36,0x7a3ee207,0x59877174,0x71d1ac82,0x949f73e9,0x0fc539f7,0x982e3081,0xd05cf3d7,0x7b1c7129,0x8758e20b,0x569e61f2,0xffadcc20,0x59544c2d,0xb05d3a2f,0x9fff5e53,0xbe16f5c1 +.long 0xaad58135,0x73cf65b8,0x037aa5be,0x622c2119,0x646fd6a0,0x79373b3f,0x0d3978cf,0x0e029db5,0x94fba037,0x8bdfc437,0x620797a6,0xaefbd687,0xbd30d38e,0x3fa5382b,0x585d7464,0x7627cfbf +.long 0x4e4ca463,0xb2330fef,0x3566cc63,0xbcef7287,0xcf780900,0xd161d2ca,0x5b54827d,0x135dc539,0x27bf1bc6,0x638f052e,0x07dfa06c,0x10a224f0,0x6d3321da,0xe973586d,0x26152c8f,0x8b0c5738 +.long 0x34606074,0x07ef4f2a,0xa0f7047a,0x80fe7fe8,0xe1a0e306,0x3d1a8152,0x88da5222,0x32cf43d8,0x5f02ffe6,0xbf89a95f,0x806ad3ea,0x3d9eb9a4,0x79c8e55e,0x012c17bb,0x99c81dac,0xfdcd1a74 +.long 0xb9556098,0x7043178b,0x801c3886,0x4090a1df,0x9b67b912,0x759800ff,0x232620c8,0x3e5c0304,0x70dceeca,0x4b9d3c4b,0x181f648e,0xbb2d3c15,0x6e33345c,0xf981d837,0x0cf2297a,0xb626289b +.long 0x8baebdcf,0x766ac659,0x75df01e5,0x1a28ae09,0x375876d8,0xb71283da,0x607b9800,0x4865a96d,0x237936b2,0x25dd1bcd,0x60417494,0x332f4f4b,0x370a2147,0xd0923d68,0xdc842203,0x497f5dfb +.long 0x32be5e0f,0x9dc74cbd,0x17a01375,0x7475bcb7,0x50d872b1,0x438477c9,0xffe1d63d,0xcec67879,0xd8578c70,0x9b006014,0x78bb6b8b,0xc9ad99a8,0x11fb3806,0x6799008e,0xcd44cab3,0xcfe81435 +.long 0x2f4fb344,0xa2ee1582,0x483fa6eb,0xb8823450,0x652c7749,0x622d323d,0xbeb0a15b,0xd8474a98,0x5d1c00d0,0xe43c154d,0x0e3e7aac,0x7fd581d9,0x2525ddf8,0x2b44c619,0xb8ae9739,0x67a033eb +.long 0x9ef2d2e4,0x113ffec1,0xd5a0ea7f,0x1bf6767e,0x03714c0a,0x57fff75e,0x0a23e9ee,0xa23c422e,0x540f83af,0xdd5f6b2d,0x55ea46a7,0xc2c2c27e,0x672a1208,0xeb6b4246,0xae634f7a,0xd13599f7 +.long 0xd7b32c6e,0xcf914b5c,0xeaf61814,0x61a5a640,0x208a1bbb,0x8dc3df8b,0xb6d79aa5,0xef627fd6,0xc4c86bc8,0x44232ffc,0x061539fe,0xe6f9231b,0x958b9533,0x1d04f25a,0x49e8c885,0x180cf934 +.long 0x9884aaf7,0x89689595,0x07b348a6,0xb1959be3,0x3c147c87,0x96250e57,0xdd0c61f8,0xae0efb3a,0xca8c325e,0xed00745e,0xecff3f70,0x3c911696,0x319ad41d,0x73acbc65,0xf0b1c7ef,0x7b01a020 +.long 0x63a1483f,0xea32b293,0x7a248f96,0x89eabe71,0x343157e5,0x9c6231d3,0xdf3c546d,0x93a375e5,0x6a2afe69,0xe76e9343,0xe166c88e,0xc4f89100,0x4f872093,0x248efd0d,0x8fe0ea61,0xae0eb3ea +.long 0x9d79046e,0xaf89790d,0x6cee0976,0x4d650f2d,0x43071eca,0xa3935d9a,0x283b0bfe,0x66fcd2c9,0x696605f1,0x0e665eb5,0xa54cd38d,0xe77e5d07,0x43d950cf,0x90ee050a,0xd32e69b5,0x86ddebda +.long 0xfddf7415,0x6ad94a3d,0x3f6e8d5a,0xf7fa1309,0xe9957f75,0xc4831d1d,0xd5817447,0x7de28501,0x9e2aeb6b,0x6f1d7078,0xf67a53c2,0xba2b9ff4,0xdf9defc3,0x36963767,0x0d38022c,0x479deed3 +.long 0x3a8631e8,0xd2edb89b,0x7a213746,0x8de855de,0xb00c5f11,0xb2056cb7,0x2c9b85e4,0xdeaefbd0,0xd150892d,0x03f39a8d,0x218b7985,0x37b84686,0xb7375f1a,0x36296dd8,0xb78e898e,0x472cd4b1 +.long 0xe9f05de9,0x15dff651,0x2ce98ba9,0xd4045069,0x9b38024c,0x8466a7ae,0xe5a6b5ef,0xb910e700,0xb3aa8f0d,0xae1c56ea,0x7eee74a6,0xbab2a507,0x4b4c4620,0x0dca11e2,0x4c47d1f4,0xfd896e2e +.long 0x308fbd93,0xeb45ae53,0x02c36fda,0x46cd5a2e,0xbaa48385,0x6a3d4e90,0x9dbe9960,0xdd55e62e,0x2a81ede7,0xa1406aa0,0xf9274ea7,0x6860dd14,0x80414f86,0xcfdcb0c2,0x22f94327,0xff410b10 +.long 0x49ad467b,0x5a33cc38,0x0a7335f1,0xefb48b6c,0xb153a360,0x14fb54a4,0xb52469cc,0x604aa9d2,0x754e48e9,0x5e9dc486,0x37471e8e,0x693cb455,0x8d3b37b6,0xfb2fd7cd,0xcf09ff07,0x63345e16 +.long 0x23a5d896,0x9910ba6b,0x7fe4364e,0x1fe19e35,0x9a33c677,0x6e1da8c3,0x29fd9fd0,0x15b4488b,0x1a1f22bf,0x1f439254,0xab8163e8,0x920a8a70,0x07e5658e,0x3fd1b249,0xb6ec839b,0xf2c4f79c +.long 0x4aa38d1b,0x1abbc3d0,0xb5d9510e,0x3b0db35c,0x3e60dec0,0x1754ac78,0xea099b33,0x53272fd7,0x07a8e107,0x5fb0494f,0x6a8191fa,0x4a89e137,0x3c4ad544,0xa113b7f6,0x6cb9897b,0x88a2e909 +.long 0xb44a3f84,0x17d55de3,0x17c6c690,0xacb2f344,0x10232390,0x32088168,0x6c733bf7,0xf2e8a61f,0x9c2d7652,0xa774aab6,0xed95c5bc,0xfb5307e3,0x4981f110,0xa05c73c2,0xa39458c9,0x1baae31c +.long 0xcbea62e7,0x1def185b,0xeaf63059,0xe8ac9eae,0x9921851c,0x098a8cfd,0x3abe2f5b,0xd959c3f1,0x20e40ae5,0xa4f19525,0x07a24aa1,0x320789e3,0x7392b2bc,0x259e6927,0x1918668b,0x58f6c667 +.long 0xc55d2d8b,0xce1db2bb,0xf4f6ca56,0x41d58bb7,0x8f877614,0x7650b680,0xf4c349ed,0x905e16ba,0xf661acac,0xed415140,0xcb2270af,0x3b8784f0,0x8a402cba,0x3bc280ac,0x0937921a,0xd53f7146 +.long 0xe5681e83,0xc03c8ee5,0xf6ac9e4a,0x62126105,0x936b1a38,0x9503a53f,0x782fecbd,0x3d45e2d4,0x76e8ae98,0x69a5c439,0xbfb4b00e,0xb53b2eeb,0x72386c89,0xf1674712,0x4268bce4,0x30ca34a2 +.long 0x78341730,0x7f1ed86c,0xb525e248,0x8ef5beb8,0xb74fbf38,0xbbc489fd,0x91a0b382,0x38a92a0e,0x22433ccf,0x7a77ba3f,0xa29f05a9,0xde8362d6,0x61189afc,0x7f6a30ea,0x59ef114f,0x693b5505 +.long 0xcd1797a1,0x50266bc0,0xf4b7af2d,0xea17b47e,0x3df9483e,0xd6c4025c,0xa37b18c9,0x8cbb9d9f,0x4d8424cf,0x91cbfd9c,0xab1c3506,0xdb7048f1,0x028206a3,0x9eaf641f,0x25bdf6ce,0xf986f3f9 +.long 0x224c08dc,0x262143b5,0x81b50c91,0x2bbb09b4,0xaca8c84f,0xc16ed709,0xb2850ca8,0xa6210d9d,0x09cb54d6,0x6d8df67a,0x500919a4,0x91eef6e0,0x0f132857,0x90f61381,0xf8d5028b,0x9acede47 +.long 0x90b771c3,0x844d1b71,0xba6426be,0x563b71e4,0xbdb802ff,0x2efa2e83,0xab5b4a41,0x3410cbab,0x30da84dd,0x555b2d26,0xee1cc29a,0xd0711ae9,0x2f547792,0xcf3e8c60,0xdc678b35,0x03d7d5de +.long 0xced806b8,0x071a2fa8,0x697f1478,0x222e6134,0xabfcdbbf,0xdc16fd5d,0x121b53b8,0x44912ebf,0x2496c27c,0xac943674,0x1ffc26b0,0x8ea3176c,0x13debf2c,0xb6e224ac,0xf372a832,0x524cc235 +.long 0x9f6f1b18,0xd706e1d8,0x44cce35b,0x2552f005,0xa88e31fc,0x8c8326c2,0xf9552047,0xb5468b2c,0x3ff90f2b,0xce683e88,0x2f0a5423,0x77947bdf,0xed56e328,0xd0a1b28b,0xc20134ac,0xaee35253 +.long 0x3567962f,0x7e98367d,0x8188bffb,0x379ed61f,0xfaf130a1,0x73bba348,0x904ed734,0x6c1f75e1,0x3b4a79fc,0x18956642,0x54ef4493,0xf20bc83d,0x9111eca1,0x836d425d,0x009a8dcf,0xe5b5c318 +.long 0x13221bc5,0x3360b25d,0x6b3eeaf7,0x707baad2,0x743a95a1,0xd7279ed8,0x969e809f,0x7450a875,0xe5d0338f,0x32b6bd53,0x2b883bbc,0x1e77f7af,0x1063ecd0,0x90da12cc,0xc315be47,0xe2697b58 +.long 0xda85d534,0x2771a5bd,0xff980eea,0x53e78c1f,0x900385e7,0xadf1cf84,0xc9387b62,0x7d3b14f6,0xcb8f2bd2,0x170e74b0,0x827fa993,0x2d50b486,0xf6f32bab,0xcdbe8c9a,0xc3b93ab8,0x55e906b0 +.long 0x8fe280d1,0x747f22fc,0xb2e114ab,0xcd8e0de5,0xe10b68b0,0x5ab7dbeb,0xa480d4b2,0x9dc63a9c,0x4be1495f,0x78d4bc3b,0x9359122d,0x25eb3db8,0x0809cbdc,0x3f8ac05b,0xd37c702f,0xbf4187bb +.long 0x1416a6a5,0x84cea069,0x43ef881c,0x8f860c79,0x38038a5d,0x41311f8a,0xfc612067,0xe78c2ec0,0x5ad73581,0x494d2e81,0x59604097,0xb4cc9e00,0xf3612cba,0xff558aec,0x9e36c39e,0x35beef7a +.long 0xdbcf41b9,0x1845c7cf,0xaea997c0,0x5703662a,0xe402f6d8,0x8b925afe,0x4dd72162,0xd0a1b1ae,0x03c41c4b,0x9f47b375,0x0391d042,0xa023829b,0x503b8b0a,0x5f5045c3,0x98c010e5,0x123c2688 +.long 0x36ba06ee,0x324ec0cc,0x3dd2cc0c,0xface3115,0xf333e91f,0xb364f3be,0x28e832b0,0xef8aff73,0x2d05841b,0x1e9bad04,0x356a21e2,0x42f0e3df,0x4add627e,0xa3270bcb,0xd322e711,0xb09a8158 +.long 0x0fee104a,0x86e326a1,0x3703f65d,0xad7788f8,0x47bc4833,0x7e765430,0x2b9b893a,0x6cee582b,0xe8f55a7b,0x9cd2a167,0xd9e4190d,0xefbee3c6,0xd40c2e9d,0x33ee7185,0xa380b548,0x844cc9c5 +.long 0x66926e04,0x323f8ecd,0x8110c1ba,0x0001e38f,0xfc6a7f07,0x8dbcac12,0x0cec0827,0xd65e1d58,0xbe76ca2d,0xd2cd4141,0xe892f33a,0x7895cf5c,0x367139d2,0x956d230d,0xd012c4c1,0xa91abd3e +.long 0x87eb36bf,0x34fa4883,0x914b8fb4,0xc5f07102,0xadb9c95f,0x90f0e579,0x28888195,0xfe6ea8cb,0xedfa9284,0x7b9b5065,0x2b8c8d65,0x6c510bd2,0xcbe8aafd,0xd7b8ebef,0x96b1da07,0xedb3af98 +.long 0x6295d426,0x28ff779d,0x3fa3ad7b,0x0c4f6ac7,0x8b8e2604,0xec44d054,0x8b0050e1,0x9b32a66d,0xf0476ce2,0x1f943366,0xa602c7b4,0x7554d953,0x524f2809,0xbe35aca6,0xfd4edbea,0xb6881229 +.long 0x508efb63,0xe8cd0c8f,0x6abcefc7,0x9eb5b5c8,0xb441ab4f,0xf5621f5f,0xb76a2b22,0x79e6c046,0xe37a1f69,0x74a4792c,0x03542b60,0xcbd252cb,0xb3c20bd3,0x785f65d5,0x4fabc60c,0x8dea6143 +.long 0xde673629,0x45e21446,0x703c2d21,0x57f7aa1e,0x98c868c7,0xa0e99b7f,0x8b641676,0x4e42f66d,0x91077896,0x602884dc,0xc2c9885b,0xa0d690cf,0x3b9a5187,0xfeb4da33,0x153c87ee,0x5f789598 +.long 0x52b16dba,0x2192dd47,0x3524c1b1,0xdeefc0e6,0xe4383693,0x465ea76e,0x361b8d98,0x79401711,0xf21a15cb,0xa5f9ace9,0xefee9aeb,0x73d26163,0xe677016c,0xcca844b3,0x57eaee06,0x6c122b07 +.long 0x15f09690,0xb782dce7,0x2dfc0fc9,0x508b9b12,0x65d89fc6,0x9015ab4b,0xd6d5bb0f,0x5e79dab7,0x6c775aa2,0x64f021f0,0x37c7eca1,0xdf09d8cc,0xef2fa506,0x9a761367,0x5b81eec6,0xed4ca476 +.long 0x10bbb8b5,0x262ede36,0x0641ada3,0x0737ce83,0xe9831ccc,0x4c94288a,0x8065e635,0x487fc1ce,0xb8bb3659,0xb13d7ab3,0x855e4120,0xdea5df3e,0x85eb0244,0xb9a18573,0xa7cfe0a3,0x1a1b8ea3 +.long 0x67b0867c,0x3b837119,0x9d364520,0x8d5e0d08,0xd930f0e3,0x52dccc1e,0xbf20bbaf,0xefbbcec7,0x0263ad10,0x99cffcab,0xfcd18f8a,0xd8199e6d,0xe9f10617,0x64e2773f,0x08704848,0x0079e8e1 +.long 0x8a342283,0x1169989f,0xa83012e6,0x8097799c,0x8a6a9001,0xece966cb,0x072ac7fc,0x93b3afef,0x2db3d5ba,0xe6893a2a,0x89bf4fdc,0x263dc462,0xe0396673,0x8852dfc9,0x3af362b6,0x7ac70895 +.long 0x5c2f342b,0xbb9cce4d,0xb52d7aae,0xbf80907a,0x2161bcd0,0x97f3d3cd,0x0962744d,0xb25b0834,0x6c3a1dda,0xc5b18ea5,0x06c92317,0xfe4ec7eb,0xad1c4afe,0xb787b890,0x0ede801a,0xdccd9a92 +.long 0xdb58da1f,0x9ac6ddda,0xb8cae6ee,0x22bbc12f,0x815c4a43,0xc6f8bced,0xf96480c7,0x8105a92c,0x7a859d51,0x0dc3dbf3,0x3041196b,0xe3ec7ce6,0x0d1067c9,0xd9f64b25,0x3d1f8dd8,0xf2321321 +.long 0x76497ee8,0x8b5c619c,0xc717370e,0x5d2b0ac6,0x4fcf68e1,0x98204cb6,0x62bc6792,0x0bdec211,0xa63b1011,0x6973ccef,0xe0de1ac5,0xf9e3fa97,0x3d0e0c8b,0x5efb693e,0xd2d4fcb4,0x037248e9 +.long 0x1ec34f9e,0x80802dc9,0x33810603,0xd8772d35,0x530cb4f3,0x3f06d66c,0xc475c129,0x7be5ed0d,0x31e82b10,0xcb9e3c19,0xc9ff6b4c,0xc63d2857,0x92a1b45e,0xb92118c6,0x7285bbca,0x0aec4414 +.long 0x1e29a3ef,0xfc189ae7,0x4c93302e,0xcbe906f0,0xceaae10e,0xd0107914,0xb68e19f8,0xb7a23f34,0xefd2119d,0xe9d875c2,0xfcadc9c8,0x03198c6e,0x4da17113,0x65591bf6,0x3d443038,0x3cf0bbf8 +.long 0x2b724759,0xae485bb7,0xb2d4c63a,0x945353e1,0xde7d6f2c,0x82159d07,0x4ec5b109,0x389caef3,0xdb65ef14,0x4a8ebb53,0xdd99de43,0x2dc2cb7e,0x83f2405f,0x816fa3ed,0xc14208a3,0x73429bb9 +.long 0xb01e6e27,0xb618d590,0xe180b2dc,0x047e2ccd,0x04aea4a9,0xd1b299b5,0x9fa403a4,0x412c9e1e,0x79407552,0x88d28a36,0xf332b8e3,0x49c50136,0xe668de19,0x3a1b6fcc,0x75122b97,0x178851bc +.long 0xfb85fa4c,0xb1e13752,0x383c8ce9,0xd61257ce,0xd2f74dae,0xd43da670,0xbf846bbb,0xa35aa23f,0x4421fc83,0x5e74235d,0xc363473b,0xf6df8ee0,0x3c4aa158,0x34d7f52a,0x9bc6d22e,0x50d05aab +.long 0xa64785f4,0x8c56e735,0x5f29cd07,0xbc56637b,0x3ee35067,0x53b2bb80,0xdc919270,0x50235a0f,0xf2c4aa65,0x191ab6d8,0x8396023b,0xc3475831,0xf0f805ba,0x80400ba5,0x5ec0f80f,0x8881065b +.long 0xcc1b5e83,0xc370e522,0x860b8bfb,0xde2d4ad1,0x67b256df,0xad364df0,0xe0138997,0x8f12502e,0x7783920a,0x503fa0dc,0xc0bc866a,0xe80014ad,0xd3064ba6,0x3f89b744,0xcba5dba5,0x03511dcd +.long 0x95a7b1a2,0x197dd46d,0x3c6341fb,0x9c4e7ad6,0x484c2ece,0x426eca29,0xde7f4f8a,0x9211e489,0xc78ef1f4,0x14997f6e,0x06574586,0x2b2c0910,0x1c3eede8,0x17286a6e,0x0f60e018,0x25f92e47 +.long 0x31890a36,0x805c5646,0x57feea5b,0x703ef600,0xaf3c3030,0x389f747c,0x54dd3739,0xe0e5daeb,0xc9c9f155,0xfe24a4c3,0xb5393962,0x7e4bf176,0xaf20bf29,0x37183de2,0xf95a8c3b,0x4a1bd7b5 +.long 0x46191d3d,0xa83b9699,0x7b87f257,0x281fc8dd,0x54107588,0xb18e2c13,0x9b2bafe8,0x6372def7,0x0d8972ca,0xdaf4bb48,0x56167a3f,0x3f2dd4b7,0x84310cf4,0x1eace32d,0xe42700aa,0xe3bcefaf +.long 0xd785e73d,0x5fe5691e,0x2ea60467,0xa5db5ab6,0xdfc6514a,0x02e23d41,0xe03c3665,0x35e8048e,0x1adaa0f8,0x3f8b118f,0x84ce1a5a,0x28ec3b45,0x2c6646b8,0xe8cacc6e,0xdbd0e40f,0x1343d185 +.long 0xcaaa358c,0xe5d7f844,0x9924182a,0x1a1db7e4,0x9c875d9a,0xd64cd42d,0x042eeec8,0xb37b515f,0x7b165fbe,0x4d4dd409,0xe206eff3,0xfc322ed9,0x59b7e17e,0x7dee4102,0x8236ca00,0x55a481c0 +.long 0xc23fc975,0x8c885312,0x05d6297b,0x15715806,0xf78edd39,0xa078868e,0x03c45e52,0x956b31e0,0xff7b33a6,0x470275d5,0x0c7e673f,0xc8d5dc3a,0x7e2f2598,0x419227b4,0x4c14a975,0x8b37b634 +.long 0x8b11888c,0xd0667ed6,0x803e25dc,0x5e0e8c3e,0xb987a24a,0x34e5d0dc,0xae920323,0x9f40ac3b,0x34e0f63a,0x5463de95,0x6b6328f9,0xa128bf92,0xda64f1b7,0x491ccd7c,0xc47bde35,0x7ef1ec27 +.long 0xa36a2737,0xa857240f,0x63621bc1,0x35dc1366,0xd4fb6897,0x7a3a6453,0xc929319d,0x80f1a439,0xf8cb0ba0,0xfc18274b,0x8078c5eb,0xb0b53766,0x1e01d0ef,0xfb0d4924,0x372ab09c,0x50d7c67d +.long 0x3aeac968,0xb4e370af,0xc4b63266,0xe4f7fee9,0xe3ac5664,0xb4acd4c2,0xceb38cbf,0xf8910bd2,0xc9c0726e,0x1c3ae50c,0xd97b40bf,0x15309569,0xfd5a5a1b,0x70884b7f,0xef8314cd,0x3890896a +.long 0xa5618c93,0x58e1515c,0x77d942d1,0xe665432b,0xb6f767a8,0xb32181bf,0x3a604110,0x753794e8,0xe8c0dbcc,0x09afeb7c,0x598673a3,0x31e02613,0x7d46db00,0x5d98e557,0x9d985b28,0xfc21fb8c +.long 0xb0843e0b,0xc9040116,0x69b04531,0x53b1b3a8,0x85d7d830,0xdd1649f0,0xcb7427e8,0xbb3bcc87,0xc93dce83,0x77261100,0xa1922a2a,0x7e79da61,0xf3149ce8,0x587a2b02,0xde92ec83,0x147e1384 +.long 0xaf077f30,0x484c83d3,0x0658b53a,0xea78f844,0x027aec53,0x912076c2,0x93c8177d,0xf34714e3,0xc2376c84,0x37ef5d15,0x3d1aa783,0x8315b659,0xef852a90,0x3a75c484,0x16086bd4,0x0ba0c58a +.long 0x529a6d48,0x29688d7a,0xc2f19203,0x9c7f250d,0x682e2df9,0x123042fb,0xad8121bc,0x2b7587e7,0xe0182a65,0x30fc0233,0xe3e1128a,0xb82ecf87,0x93fb098f,0x71682861,0x85e9e6a7,0x043e21ae +.long 0x66c834ea,0xab5b49d6,0x47414287,0x3be43e18,0x219a2a47,0xf40fb859,0xcc58df3c,0x0e6559e9,0x0c6615b4,0xfe1dfe8e,0x56459d70,0x14abc8fd,0x05de0386,0x7be0fa8e,0xe9035c7c,0x8e63ef68 +.long 0x53b31e91,0x116401b4,0x4436b4d8,0x0cba7ad4,0x107afd66,0x9151f9a0,0x1f0ee4c4,0xafaca8d0,0x9ee9761c,0x75fe5c1d,0xf0c0588f,0x3497a16b,0x0304804c,0x3ee2bebd,0xc2c990b9,0xa8fb9a60 +.long 0x39251114,0xd14d32fe,0xcac73366,0x36bf25bc,0xdba7495c,0xc9562c66,0x46ad348b,0x324d301b,0xd670407e,0x9f46620c,0xe3733a01,0x0ea8d4f1,0xb0c324e0,0xd396d532,0x03c317cd,0x5b211a0e +.long 0x5ffe7b37,0x090d7d20,0x1747d2da,0x3b7f3efb,0xb54fc519,0xa2cb525f,0xf66a971e,0x6e220932,0xb486d440,0xddc160df,0x3fe13465,0x7fcfec46,0x76e4c151,0x83da7e4e,0xd8d302b5,0xd6fa48a1 +.long 0x5872cd88,0xc6304f26,0x278b90a1,0x806c1d3c,0xcaf0bc1c,0x3553e725,0xbb9d8d5c,0xff59e603,0x7a0b85dd,0xa4550f32,0x93ecc217,0xdec5720a,0x69d62213,0x0b88b741,0x5b365955,0x7212f245 +.long 0xb5cae787,0x20764111,0x1dfd3124,0x13cb7f58,0x1175aefb,0x2dca77da,0xffaae775,0xeb75466b,0xdb6cff32,0x74d76f3b,0x61fcda9a,0x7440f37a,0xb525028b,0x1bb3ac92,0xa1975f29,0x20fbf8f7 +.long 0xdf83097f,0x982692e1,0x554b0800,0x28738f6c,0xa2ce2f2f,0xdc703717,0x40814194,0x7913b93c,0x1fe89636,0x04924593,0xf78834a6,0x7b98443f,0x5114a5a1,0x11c6ab01,0xffba5f4c,0x60deb383 +.long 0x01a982e6,0x4caa54c6,0x3491cd26,0x1dd35e11,0x7cbd6b05,0x973c315f,0x52494724,0xcab00775,0x6565e15a,0x04659b1f,0x8c8fb026,0xbf30f529,0xa8a0de37,0xfc21641b,0xfa5e5114,0xe9c7a366 +.long 0x52f03ad8,0xdb849ca5,0x024e35c0,0xc7e8dbe9,0xcfc3c789,0xa1a2bbac,0x9c26f262,0xbf733e7d,0xb8444823,0x882ffbf5,0x6bf8483b,0xb7224e88,0x65bef640,0x53023b8b,0xd4d5f8cd,0xaabfec91 +.long 0x079ea1bd,0xa40e1510,0xd05d5d26,0x1ad9addc,0x13e68d4f,0xdb3f2eab,0x640f803f,0x1cff1ae2,0xd4cee117,0xe0e7b749,0x4036d909,0x8e9f275b,0x8f4d4c38,0xce34e31d,0xd75130fc,0x22b37f69 +.long 0xb4014604,0x83e0f1fd,0x89415078,0xa8ce9919,0x41792efe,0x82375b75,0x97d4515b,0x4f59bf5c,0x923a277d,0xac4f324f,0x650f3406,0xd9bc9b7d,0x8a39bc51,0xc6fa87d1,0x5ccc108f,0x82588530 +.long 0x82e4c634,0x5ced3c9f,0x3a4464f8,0x8efb8314,0x7a1dca25,0xe706381b,0x5a2a412b,0x6cd15a3c,0xbfcd8fb5,0x9347a8fd,0x6e54cd22,0x31db2eef,0xf8d8932f,0xc4aeb11e,0x344411af,0x11e7c1ed +.long 0xdc9a151e,0x2653050c,0x3bb0a859,0x9edbfc08,0xfd5691e7,0x926c81c7,0x6f39019a,0x9c1b2342,0x7f8474b9,0x64a81c8b,0x01761819,0x90657c07,0x55e0375a,0x390b3331,0xb6ebc47d,0xc676c626 +.long 0xb7d6dee8,0x51623247,0x79659313,0x0948d927,0xe9ab35ed,0x99700161,0x8ddde408,0x06cc32b4,0x061ef338,0x6f2fd664,0xc202e9ed,0x1606fa02,0x929ba99b,0x55388bc1,0x1e81df69,0xc4428c5e +.long 0xf91b0b2a,0xce2028ae,0xf03dfd3f,0xce870a23,0x0affe8ed,0x66ec2c87,0x284d0c00,0xb205fb46,0x44cefa48,0xbf5dffe7,0xa19876d7,0xb6fc37a8,0x08b72863,0xbecfa84c,0x2576374f,0xd7205ff5 +.long 0x8887de41,0x80330d32,0x869ea534,0x5de0df0c,0x3c56ea17,0x13f42753,0x452b1a78,0xeb1f6069,0xe30ea15c,0x50474396,0xc1494125,0x575816a1,0xfe6bb38f,0xbe1ce55b,0x96ae30f7,0xb901a948 +.long 0xd8fc3548,0xe5af0f08,0xd73bfd08,0x5010b5d0,0x53fe655a,0x993d2880,0x1c1309fd,0x99f2630b,0xb4e3b76f,0xd8677baf,0xb840784b,0x14e51ddc,0xbf0092ce,0x326c750c,0xf528320f,0xc83d306b +.long 0x77d4715c,0xc4456715,0x6b703235,0xd30019f9,0xd669e986,0x207ccb2e,0xf6dbfc28,0x57c824af,0xd8f92a23,0xf0eb532f,0x9bb98fd2,0x4a557fd4,0xc1e6199a,0xa57acea7,0x8b94b1ed,0x0c663820 +.long 0xf83a9266,0x9b42be8f,0x0101bd45,0xc7741c97,0x07bd9ceb,0x95770c11,0x8b2e0744,0x1f50250a,0x1477b654,0xf762eec8,0x15efe59a,0xc65b900e,0x9546a897,0x88c96148,0xc30b4d7c,0x7e8025b3 +.long 0x12045cf9,0xae4065ef,0x9ccce8bd,0x6fcb2caf,0xf2cf6525,0x1fa0ba4e,0xcb72c312,0xf683125d,0xe312410e,0xa01da4ea,0x6cd8e830,0x67e28677,0x98fb3f07,0xabd95752,0xeef649a5,0x05f11e11 +.long 0x9d3472c2,0xba47faef,0xc77d1345,0x3adff697,0xdd15afee,0x4761fa04,0xb9e69462,0x64f1f61a,0x9bfb9093,0xfa691fab,0xa1133dfe,0x3df8ae8f,0x58cc710d,0xcd5f8967,0x16c7fe79,0xfbb88d50 +.long 0xe88c50d1,0x8e011b4c,0xa8771c4f,0x7532e807,0xe2278ee4,0x64c78a48,0x3845072a,0x0b283e83,0x49e69274,0x98a6f291,0x1868b21c,0xb96e9668,0xb1a8908e,0x38f0adc2,0x1feb829d,0x90afcff7 +.long 0x210b0856,0x9915a383,0xdef04889,0xa5a80602,0x7c64d509,0x800e9af9,0xb8996f6f,0x81382d0b,0x81927e27,0x490eba53,0x4af50182,0x46c63b32,0xd3ad62ce,0x784c5fd9,0xf8ae8736,0xe4fa1870 +.long 0xd7466b25,0x4ec9d0bc,0xdb235c65,0x84ddbe1a,0x163c1688,0x5e2645ee,0x00eba747,0x570bd00e,0x128bfa0f,0xfa51b629,0x6c1d3b68,0x92fce1bd,0xb66778b1,0x3e7361dc,0x5561d2bb,0x9c7d249d +.long 0x0bbc6229,0xa40b28bf,0xdfd91497,0x1c83c05e,0xf083df05,0x5f9f5154,0xeee66c9d,0xbac38b3c,0xec0dfcfd,0xf71db7e3,0x8b0a8416,0xf2ecda8e,0x7812aa66,0x52fddd86,0x4e6f4272,0x2896ef10 +.long 0x0fe9a745,0xff27186a,0x49ca70db,0x08249fcd,0x441cac49,0x7425a2e6,0xece5ff57,0xf4a0885a,0x7d7ead58,0x6e2cb731,0x1898d104,0xf96cf7d6,0x4f2c9a89,0xafe67c9d,0x1c7bf5bc,0x89895a50 +.long 0x573cecfa,0xdc7cb8e5,0xd15f03e6,0x66497eae,0x3f084420,0x6bc0de69,0xacd532b0,0x323b9b36,0x0115a3c1,0xcfed390a,0x2d65ca0e,0x9414c40b,0x2f530c78,0x641406bd,0x833438f2,0x29369a44 +.long 0x903fa271,0x996884f5,0xb9da921e,0xe6da0fd2,0x5db01e54,0xa6f2f269,0x6876214e,0x1ee3e9bd,0xe27a9497,0xa26e181c,0x8e215e04,0x36d254e4,0x252cabca,0x42f32a6c,0x80b57614,0x99481487 +.long 0x40d9cae1,0x4c4dfe69,0x11a10f09,0x05869580,0x3491b64b,0xca287b57,0x3fd4a53b,0x77862d5d,0x50349126,0xbf94856e,0x71c5268f,0x2be30bd1,0xcbb650a6,0x10393f19,0x778cf9fd,0x639531fe +.long 0xb2935359,0x02556a11,0xaf8c126e,0xda38aa96,0x0960167f,0x47dbe6c2,0x501901cd,0x37bbabb6,0x2c947778,0xb6e979e0,0x7a1a1dc6,0xd69a5175,0x9d9faf0c,0xc3ed5095,0x1d5fa5f0,0x4dd9c096 +.long 0x64f16ea8,0xa0c4304d,0x7e718623,0x8b1cac16,0x7c67f03e,0x0b576546,0xcbd88c01,0x559cf5ad,0x0e2af19a,0x074877bb,0xa1228c92,0x1f717ec1,0x326e8920,0x70bcb800,0x4f312804,0xec6e2c5c +.long 0x3fca4752,0x426aea7d,0x2211f62a,0xf12c0949,0x7be7b6b5,0x24beecd8,0x36d7a27d,0xb77eaf4c,0xfda78fd3,0x154c2781,0x264eeabe,0x848a83b0,0x4ffe2bc4,0x81287ef0,0xb6b6fc2a,0x7b6d88c6 +.long 0xce417d99,0x805fb947,0x8b916cc4,0x4b93dcc3,0x21273323,0x72e65bb3,0x6ea9886e,0xbcc1badd,0x4bc5ee85,0x0e223011,0xc18ee1e4,0xa561be74,0xa6bcf1f1,0x762fd2d4,0x95231489,0x50e6a5a4 +.long 0xa00b500b,0xca96001f,0x5d7dcdf5,0x5c098cfc,0x8c446a85,0xa64e2d2e,0x971f3c62,0xbae9bcf1,0x8435a2c5,0x4ec22683,0x4bad4643,0x8ceaed6c,0xccccf4e3,0xe9f8fb47,0x1ce3b21e,0xbd4f3fa4 +.long 0xa3db3292,0xd79fb110,0xb536c66a,0xe28a37da,0x8e49e6a9,0x279ce87b,0xfdcec8e3,0x70ccfe8d,0x3ba464b2,0x2193e4e0,0xaca9a398,0x0f39d60e,0xf82c12ab,0x7d7932af,0x91e7e0f7,0xd8ff50ed +.long 0xfa28a7e0,0xea961058,0x0bf5ec74,0xc726cf25,0xdb229666,0xe74d55c8,0xa57f5799,0x0bd9abbf,0x4dfc47b3,0x7479ef07,0x0c52f91d,0xd9c65fc3,0x36a8bde2,0x8e0283fe,0x7d4b7280,0xa32a8b5e +.long 0x12e83233,0x6a677c61,0xdcc9bf28,0x0fbb3512,0x0d780f61,0x562e8ea5,0x1dc4e89c,0x0db8b22b,0x89be0144,0x0a6fd1fb,0xca57113b,0x8c77d246,0xff09c91c,0x4639075d,0x5060824c,0x5b47b17f +.long 0x16287b52,0x58aea2b0,0xd0cd8eb0,0xa1343520,0xc5d58573,0x6148b4d0,0x291c68ae,0xdd2b6170,0x1da3b3b7,0xa61b3929,0x08c4ac10,0x5f946d79,0x7217d583,0x4105d4a5,0x25e6de5e,0x5061da3d +.long 0xec1b4991,0x3113940d,0x36f485ae,0xf12195e1,0x731a2ee0,0xa7507fb2,0x6e9e196e,0x95057a8e,0x2e130136,0xa3c2c911,0x33c60d15,0x97dfbb36,0xb300ee2b,0xcaf3c581,0xf4bac8b8,0x77f25d90 +.long 0x6d840cd6,0xdb1c4f98,0xe634288c,0x471d62c0,0xcec8a161,0x8ec2f85e,0xfa6f4ae2,0x41f37cbc,0x4b709985,0x6793a20f,0xefa8985b,0x7a7bd33b,0x938e6446,0x2c6a3fbd,0x2a8d47c1,0x19042619 +.long 0xcc36975f,0x16848667,0x9d5f1dfb,0x02acf168,0x613baa94,0x62d41ad4,0x9f684670,0xb56fbb92,0xe9e40569,0xce610d0d,0x35489fef,0x7b99c65f,0x3df18b97,0x0c88ad1b,0x5d0e9edb,0x81b7d9be +.long 0xc716cc0a,0xd85218c0,0x85691c49,0xf4b5ff90,0xce356ac6,0xa4fd666b,0x4b327a7a,0x17c72895,0xda6be7de,0xf93d5085,0x3301d34e,0xff71530e,0xd8f448e8,0x4cd96442,0x2ed18ffa,0x9283d331 +.long 0x2a849870,0x4d33dd99,0x41576335,0xa716964b,0x179be0e5,0xff5e3a9b,0x83b13632,0x5b9d6b1b,0xa52f313b,0x3b8bd7d4,0x637a4660,0xc9dd95a0,0x0b3e218f,0x30035962,0xc7b28a3c,0xce1481a3 +.long 0x43228d83,0xab41b43a,0x4ad63f99,0x24ae1c30,0x46a51229,0x8e525f1a,0xcd26d2b4,0x14af860f,0x3f714aa1,0xd6baef61,0xeb78795e,0xf51865ad,0xe6a9d694,0xd3e21fce,0x8a37b527,0x82ceb1dd +.size ecp_nistz256_precomputed,.-ecp_nistz256_precomputed +.text + + + +.align 64 +.Lpoly: +.quad 0xffffffffffffffff, 0x00000000ffffffff, 0x0000000000000000, 0xffffffff00000001 + + +.LRR: +.quad 0x0000000000000003, 0xfffffffbffffffff, 0xfffffffffffffffe, 0x00000004fffffffd + +.LOne: +.long 1,1,1,1,1,1,1,1 +.LTwo: +.long 2,2,2,2,2,2,2,2 +.LThree: +.long 3,3,3,3,3,3,3,3 +.LONE_mont: +.quad 0x0000000000000001, 0xffffffff00000000, 0xffffffffffffffff, 0x00000000fffffffe + + +.Lord: +.quad 0xf3b9cac2fc632551, 0xbce6faada7179e84, 0xffffffffffffffff, 0xffffffff00000000 +.LordK: +.quad 0xccd1c8aaee00bc4f + +.globl ecp_nistz256_mul_by_2 +.type ecp_nistz256_mul_by_2,@function +.align 64 +ecp_nistz256_mul_by_2: +.cfi_startproc + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-16 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-24 +.Lmul_by_2_body: + + movq 0(%rsi),%r8 + xorq %r13,%r13 + movq 8(%rsi),%r9 + addq %r8,%r8 + movq 16(%rsi),%r10 + adcq %r9,%r9 + movq 24(%rsi),%r11 + leaq .Lpoly(%rip),%rsi + movq %r8,%rax + adcq %r10,%r10 + adcq %r11,%r11 + movq %r9,%rdx + adcq $0,%r13 + + subq 0(%rsi),%r8 + movq %r10,%rcx + sbbq 8(%rsi),%r9 + sbbq 16(%rsi),%r10 + movq %r11,%r12 + sbbq 24(%rsi),%r11 + sbbq $0,%r13 + + cmovcq %rax,%r8 + cmovcq %rdx,%r9 + movq %r8,0(%rdi) + cmovcq %rcx,%r10 + movq %r9,8(%rdi) + cmovcq %r12,%r11 + movq %r10,16(%rdi) + movq %r11,24(%rdi) + + movq 0(%rsp),%r13 +.cfi_restore %r13 + movq 8(%rsp),%r12 +.cfi_restore %r12 + leaq 16(%rsp),%rsp +.cfi_adjust_cfa_offset -16 +.Lmul_by_2_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size ecp_nistz256_mul_by_2,.-ecp_nistz256_mul_by_2 + + + +.globl ecp_nistz256_div_by_2 +.type ecp_nistz256_div_by_2,@function +.align 32 +ecp_nistz256_div_by_2: +.cfi_startproc + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-16 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-24 +.Ldiv_by_2_body: + + movq 0(%rsi),%r8 + movq 8(%rsi),%r9 + movq 16(%rsi),%r10 + movq %r8,%rax + movq 24(%rsi),%r11 + leaq .Lpoly(%rip),%rsi + + movq %r9,%rdx + xorq %r13,%r13 + addq 0(%rsi),%r8 + movq %r10,%rcx + adcq 8(%rsi),%r9 + adcq 16(%rsi),%r10 + movq %r11,%r12 + adcq 24(%rsi),%r11 + adcq $0,%r13 + xorq %rsi,%rsi + testq $1,%rax + + cmovzq %rax,%r8 + cmovzq %rdx,%r9 + cmovzq %rcx,%r10 + cmovzq %r12,%r11 + cmovzq %rsi,%r13 + + movq %r9,%rax + shrq $1,%r8 + shlq $63,%rax + movq %r10,%rdx + shrq $1,%r9 + orq %rax,%r8 + shlq $63,%rdx + movq %r11,%rcx + shrq $1,%r10 + orq %rdx,%r9 + shlq $63,%rcx + shrq $1,%r11 + shlq $63,%r13 + orq %rcx,%r10 + orq %r13,%r11 + + movq %r8,0(%rdi) + movq %r9,8(%rdi) + movq %r10,16(%rdi) + movq %r11,24(%rdi) + + movq 0(%rsp),%r13 +.cfi_restore %r13 + movq 8(%rsp),%r12 +.cfi_restore %r12 + leaq 16(%rsp),%rsp +.cfi_adjust_cfa_offset -16 +.Ldiv_by_2_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size ecp_nistz256_div_by_2,.-ecp_nistz256_div_by_2 + + + +.globl ecp_nistz256_mul_by_3 +.type ecp_nistz256_mul_by_3,@function +.align 32 +ecp_nistz256_mul_by_3: +.cfi_startproc + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-16 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-24 +.Lmul_by_3_body: + + movq 0(%rsi),%r8 + xorq %r13,%r13 + movq 8(%rsi),%r9 + addq %r8,%r8 + movq 16(%rsi),%r10 + adcq %r9,%r9 + movq 24(%rsi),%r11 + movq %r8,%rax + adcq %r10,%r10 + adcq %r11,%r11 + movq %r9,%rdx + adcq $0,%r13 + + subq $-1,%r8 + movq %r10,%rcx + sbbq .Lpoly+8(%rip),%r9 + sbbq $0,%r10 + movq %r11,%r12 + sbbq .Lpoly+24(%rip),%r11 + sbbq $0,%r13 + + cmovcq %rax,%r8 + cmovcq %rdx,%r9 + cmovcq %rcx,%r10 + cmovcq %r12,%r11 + + xorq %r13,%r13 + addq 0(%rsi),%r8 + adcq 8(%rsi),%r9 + movq %r8,%rax + adcq 16(%rsi),%r10 + adcq 24(%rsi),%r11 + movq %r9,%rdx + adcq $0,%r13 + + subq $-1,%r8 + movq %r10,%rcx + sbbq .Lpoly+8(%rip),%r9 + sbbq $0,%r10 + movq %r11,%r12 + sbbq .Lpoly+24(%rip),%r11 + sbbq $0,%r13 + + cmovcq %rax,%r8 + cmovcq %rdx,%r9 + movq %r8,0(%rdi) + cmovcq %rcx,%r10 + movq %r9,8(%rdi) + cmovcq %r12,%r11 + movq %r10,16(%rdi) + movq %r11,24(%rdi) + + movq 0(%rsp),%r13 +.cfi_restore %r13 + movq 8(%rsp),%r12 +.cfi_restore %r12 + leaq 16(%rsp),%rsp +.cfi_adjust_cfa_offset -16 +.Lmul_by_3_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size ecp_nistz256_mul_by_3,.-ecp_nistz256_mul_by_3 + + + +.globl ecp_nistz256_add +.type ecp_nistz256_add,@function +.align 32 +ecp_nistz256_add: +.cfi_startproc + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-16 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-24 +.Ladd_body: + + movq 0(%rsi),%r8 + xorq %r13,%r13 + movq 8(%rsi),%r9 + movq 16(%rsi),%r10 + movq 24(%rsi),%r11 + leaq .Lpoly(%rip),%rsi + + addq 0(%rdx),%r8 + adcq 8(%rdx),%r9 + movq %r8,%rax + adcq 16(%rdx),%r10 + adcq 24(%rdx),%r11 + movq %r9,%rdx + adcq $0,%r13 + + subq 0(%rsi),%r8 + movq %r10,%rcx + sbbq 8(%rsi),%r9 + sbbq 16(%rsi),%r10 + movq %r11,%r12 + sbbq 24(%rsi),%r11 + sbbq $0,%r13 + + cmovcq %rax,%r8 + cmovcq %rdx,%r9 + movq %r8,0(%rdi) + cmovcq %rcx,%r10 + movq %r9,8(%rdi) + cmovcq %r12,%r11 + movq %r10,16(%rdi) + movq %r11,24(%rdi) + + movq 0(%rsp),%r13 +.cfi_restore %r13 + movq 8(%rsp),%r12 +.cfi_restore %r12 + leaq 16(%rsp),%rsp +.cfi_adjust_cfa_offset -16 +.Ladd_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size ecp_nistz256_add,.-ecp_nistz256_add + + + +.globl ecp_nistz256_sub +.type ecp_nistz256_sub,@function +.align 32 +ecp_nistz256_sub: +.cfi_startproc + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-16 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-24 +.Lsub_body: + + movq 0(%rsi),%r8 + xorq %r13,%r13 + movq 8(%rsi),%r9 + movq 16(%rsi),%r10 + movq 24(%rsi),%r11 + leaq .Lpoly(%rip),%rsi + + subq 0(%rdx),%r8 + sbbq 8(%rdx),%r9 + movq %r8,%rax + sbbq 16(%rdx),%r10 + sbbq 24(%rdx),%r11 + movq %r9,%rdx + sbbq $0,%r13 + + addq 0(%rsi),%r8 + movq %r10,%rcx + adcq 8(%rsi),%r9 + adcq 16(%rsi),%r10 + movq %r11,%r12 + adcq 24(%rsi),%r11 + testq %r13,%r13 + + cmovzq %rax,%r8 + cmovzq %rdx,%r9 + movq %r8,0(%rdi) + cmovzq %rcx,%r10 + movq %r9,8(%rdi) + cmovzq %r12,%r11 + movq %r10,16(%rdi) + movq %r11,24(%rdi) + + movq 0(%rsp),%r13 +.cfi_restore %r13 + movq 8(%rsp),%r12 +.cfi_restore %r12 + leaq 16(%rsp),%rsp +.cfi_adjust_cfa_offset -16 +.Lsub_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size ecp_nistz256_sub,.-ecp_nistz256_sub + + + +.globl ecp_nistz256_neg +.type ecp_nistz256_neg,@function +.align 32 +ecp_nistz256_neg: +.cfi_startproc + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-16 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-24 +.Lneg_body: + + xorq %r8,%r8 + xorq %r9,%r9 + xorq %r10,%r10 + xorq %r11,%r11 + xorq %r13,%r13 + + subq 0(%rsi),%r8 + sbbq 8(%rsi),%r9 + sbbq 16(%rsi),%r10 + movq %r8,%rax + sbbq 24(%rsi),%r11 + leaq .Lpoly(%rip),%rsi + movq %r9,%rdx + sbbq $0,%r13 + + addq 0(%rsi),%r8 + movq %r10,%rcx + adcq 8(%rsi),%r9 + adcq 16(%rsi),%r10 + movq %r11,%r12 + adcq 24(%rsi),%r11 + testq %r13,%r13 + + cmovzq %rax,%r8 + cmovzq %rdx,%r9 + movq %r8,0(%rdi) + cmovzq %rcx,%r10 + movq %r9,8(%rdi) + cmovzq %r12,%r11 + movq %r10,16(%rdi) + movq %r11,24(%rdi) + + movq 0(%rsp),%r13 +.cfi_restore %r13 + movq 8(%rsp),%r12 +.cfi_restore %r12 + leaq 16(%rsp),%rsp +.cfi_adjust_cfa_offset -16 +.Lneg_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size ecp_nistz256_neg,.-ecp_nistz256_neg + + + + + + +.globl ecp_nistz256_ord_mul_mont +.type ecp_nistz256_ord_mul_mont,@function +.align 32 +ecp_nistz256_ord_mul_mont: +.cfi_startproc + movl $0x80100,%ecx + andl OPENSSL_ia32cap_P+8(%rip),%ecx + cmpl $0x80100,%ecx + je .Lecp_nistz256_ord_mul_montx + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-16 + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 +.Lord_mul_body: + + movq 0(%rdx),%rax + movq %rdx,%rbx + leaq .Lord(%rip),%r14 + movq .LordK(%rip),%r15 + + + movq %rax,%rcx + mulq 0(%rsi) + movq %rax,%r8 + movq %rcx,%rax + movq %rdx,%r9 + + mulq 8(%rsi) + addq %rax,%r9 + movq %rcx,%rax + adcq $0,%rdx + movq %rdx,%r10 + + mulq 16(%rsi) + addq %rax,%r10 + movq %rcx,%rax + adcq $0,%rdx + + movq %r8,%r13 + imulq %r15,%r8 + + movq %rdx,%r11 + mulq 24(%rsi) + addq %rax,%r11 + movq %r8,%rax + adcq $0,%rdx + movq %rdx,%r12 + + + mulq 0(%r14) + movq %r8,%rbp + addq %rax,%r13 + movq %r8,%rax + adcq $0,%rdx + movq %rdx,%rcx + + subq %r8,%r10 + sbbq $0,%r8 + + mulq 8(%r14) + addq %rcx,%r9 + adcq $0,%rdx + addq %rax,%r9 + movq %rbp,%rax + adcq %rdx,%r10 + movq %rbp,%rdx + adcq $0,%r8 + + shlq $32,%rax + shrq $32,%rdx + subq %rax,%r11 + movq 8(%rbx),%rax + sbbq %rdx,%rbp + + addq %r8,%r11 + adcq %rbp,%r12 + adcq $0,%r13 + + + movq %rax,%rcx + mulq 0(%rsi) + addq %rax,%r9 + movq %rcx,%rax + adcq $0,%rdx + movq %rdx,%rbp + + mulq 8(%rsi) + addq %rbp,%r10 + adcq $0,%rdx + addq %rax,%r10 + movq %rcx,%rax + adcq $0,%rdx + movq %rdx,%rbp + + mulq 16(%rsi) + addq %rbp,%r11 + adcq $0,%rdx + addq %rax,%r11 + movq %rcx,%rax + adcq $0,%rdx + + movq %r9,%rcx + imulq %r15,%r9 + + movq %rdx,%rbp + mulq 24(%rsi) + addq %rbp,%r12 + adcq $0,%rdx + xorq %r8,%r8 + addq %rax,%r12 + movq %r9,%rax + adcq %rdx,%r13 + adcq $0,%r8 + + + mulq 0(%r14) + movq %r9,%rbp + addq %rax,%rcx + movq %r9,%rax + adcq %rdx,%rcx + + subq %r9,%r11 + sbbq $0,%r9 + + mulq 8(%r14) + addq %rcx,%r10 + adcq $0,%rdx + addq %rax,%r10 + movq %rbp,%rax + adcq %rdx,%r11 + movq %rbp,%rdx + adcq $0,%r9 + + shlq $32,%rax + shrq $32,%rdx + subq %rax,%r12 + movq 16(%rbx),%rax + sbbq %rdx,%rbp + + addq %r9,%r12 + adcq %rbp,%r13 + adcq $0,%r8 + + + movq %rax,%rcx + mulq 0(%rsi) + addq %rax,%r10 + movq %rcx,%rax + adcq $0,%rdx + movq %rdx,%rbp + + mulq 8(%rsi) + addq %rbp,%r11 + adcq $0,%rdx + addq %rax,%r11 + movq %rcx,%rax + adcq $0,%rdx + movq %rdx,%rbp + + mulq 16(%rsi) + addq %rbp,%r12 + adcq $0,%rdx + addq %rax,%r12 + movq %rcx,%rax + adcq $0,%rdx + + movq %r10,%rcx + imulq %r15,%r10 + + movq %rdx,%rbp + mulq 24(%rsi) + addq %rbp,%r13 + adcq $0,%rdx + xorq %r9,%r9 + addq %rax,%r13 + movq %r10,%rax + adcq %rdx,%r8 + adcq $0,%r9 + + + mulq 0(%r14) + movq %r10,%rbp + addq %rax,%rcx + movq %r10,%rax + adcq %rdx,%rcx + + subq %r10,%r12 + sbbq $0,%r10 + + mulq 8(%r14) + addq %rcx,%r11 + adcq $0,%rdx + addq %rax,%r11 + movq %rbp,%rax + adcq %rdx,%r12 + movq %rbp,%rdx + adcq $0,%r10 + + shlq $32,%rax + shrq $32,%rdx + subq %rax,%r13 + movq 24(%rbx),%rax + sbbq %rdx,%rbp + + addq %r10,%r13 + adcq %rbp,%r8 + adcq $0,%r9 + + + movq %rax,%rcx + mulq 0(%rsi) + addq %rax,%r11 + movq %rcx,%rax + adcq $0,%rdx + movq %rdx,%rbp + + mulq 8(%rsi) + addq %rbp,%r12 + adcq $0,%rdx + addq %rax,%r12 + movq %rcx,%rax + adcq $0,%rdx + movq %rdx,%rbp + + mulq 16(%rsi) + addq %rbp,%r13 + adcq $0,%rdx + addq %rax,%r13 + movq %rcx,%rax + adcq $0,%rdx + + movq %r11,%rcx + imulq %r15,%r11 + + movq %rdx,%rbp + mulq 24(%rsi) + addq %rbp,%r8 + adcq $0,%rdx + xorq %r10,%r10 + addq %rax,%r8 + movq %r11,%rax + adcq %rdx,%r9 + adcq $0,%r10 + + + mulq 0(%r14) + movq %r11,%rbp + addq %rax,%rcx + movq %r11,%rax + adcq %rdx,%rcx + + subq %r11,%r13 + sbbq $0,%r11 + + mulq 8(%r14) + addq %rcx,%r12 + adcq $0,%rdx + addq %rax,%r12 + movq %rbp,%rax + adcq %rdx,%r13 + movq %rbp,%rdx + adcq $0,%r11 + + shlq $32,%rax + shrq $32,%rdx + subq %rax,%r8 + sbbq %rdx,%rbp + + addq %r11,%r8 + adcq %rbp,%r9 + adcq $0,%r10 + + + movq %r12,%rsi + subq 0(%r14),%r12 + movq %r13,%r11 + sbbq 8(%r14),%r13 + movq %r8,%rcx + sbbq 16(%r14),%r8 + movq %r9,%rbp + sbbq 24(%r14),%r9 + sbbq $0,%r10 + + cmovcq %rsi,%r12 + cmovcq %r11,%r13 + cmovcq %rcx,%r8 + cmovcq %rbp,%r9 + + movq %r12,0(%rdi) + movq %r13,8(%rdi) + movq %r8,16(%rdi) + movq %r9,24(%rdi) + + movq 0(%rsp),%r15 +.cfi_restore %r15 + movq 8(%rsp),%r14 +.cfi_restore %r14 + movq 16(%rsp),%r13 +.cfi_restore %r13 + movq 24(%rsp),%r12 +.cfi_restore %r12 + movq 32(%rsp),%rbx +.cfi_restore %rbx + movq 40(%rsp),%rbp +.cfi_restore %rbp + leaq 48(%rsp),%rsp +.cfi_adjust_cfa_offset -48 +.Lord_mul_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size ecp_nistz256_ord_mul_mont,.-ecp_nistz256_ord_mul_mont + + + + + + + +.globl ecp_nistz256_ord_sqr_mont +.type ecp_nistz256_ord_sqr_mont,@function +.align 32 +ecp_nistz256_ord_sqr_mont: +.cfi_startproc + movl $0x80100,%ecx + andl OPENSSL_ia32cap_P+8(%rip),%ecx + cmpl $0x80100,%ecx + je .Lecp_nistz256_ord_sqr_montx + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-16 + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 +.Lord_sqr_body: + + movq 0(%rsi),%r8 + movq 8(%rsi),%rax + movq 16(%rsi),%r14 + movq 24(%rsi),%r15 + leaq .Lord(%rip),%rsi + movq %rdx,%rbx + jmp .Loop_ord_sqr + +.align 32 +.Loop_ord_sqr: + + movq %rax,%rbp + mulq %r8 + movq %rax,%r9 +.byte 102,72,15,110,205 + movq %r14,%rax + movq %rdx,%r10 + + mulq %r8 + addq %rax,%r10 + movq %r15,%rax +.byte 102,73,15,110,214 + adcq $0,%rdx + movq %rdx,%r11 + + mulq %r8 + addq %rax,%r11 + movq %r15,%rax +.byte 102,73,15,110,223 + adcq $0,%rdx + movq %rdx,%r12 + + + mulq %r14 + movq %rax,%r13 + movq %r14,%rax + movq %rdx,%r14 + + + mulq %rbp + addq %rax,%r11 + movq %r15,%rax + adcq $0,%rdx + movq %rdx,%r15 + + mulq %rbp + addq %rax,%r12 + adcq $0,%rdx + + addq %r15,%r12 + adcq %rdx,%r13 + adcq $0,%r14 + + + xorq %r15,%r15 + movq %r8,%rax + addq %r9,%r9 + adcq %r10,%r10 + adcq %r11,%r11 + adcq %r12,%r12 + adcq %r13,%r13 + adcq %r14,%r14 + adcq $0,%r15 + + + mulq %rax + movq %rax,%r8 +.byte 102,72,15,126,200 + movq %rdx,%rbp + + mulq %rax + addq %rbp,%r9 + adcq %rax,%r10 +.byte 102,72,15,126,208 + adcq $0,%rdx + movq %rdx,%rbp + + mulq %rax + addq %rbp,%r11 + adcq %rax,%r12 +.byte 102,72,15,126,216 + adcq $0,%rdx + movq %rdx,%rbp + + movq %r8,%rcx + imulq 32(%rsi),%r8 + + mulq %rax + addq %rbp,%r13 + adcq %rax,%r14 + movq 0(%rsi),%rax + adcq %rdx,%r15 + + + mulq %r8 + movq %r8,%rbp + addq %rax,%rcx + movq 8(%rsi),%rax + adcq %rdx,%rcx + + subq %r8,%r10 + sbbq $0,%rbp + + mulq %r8 + addq %rcx,%r9 + adcq $0,%rdx + addq %rax,%r9 + movq %r8,%rax + adcq %rdx,%r10 + movq %r8,%rdx + adcq $0,%rbp + + movq %r9,%rcx + imulq 32(%rsi),%r9 + + shlq $32,%rax + shrq $32,%rdx + subq %rax,%r11 + movq 0(%rsi),%rax + sbbq %rdx,%r8 + + addq %rbp,%r11 + adcq $0,%r8 + + + mulq %r9 + movq %r9,%rbp + addq %rax,%rcx + movq 8(%rsi),%rax + adcq %rdx,%rcx + + subq %r9,%r11 + sbbq $0,%rbp + + mulq %r9 + addq %rcx,%r10 + adcq $0,%rdx + addq %rax,%r10 + movq %r9,%rax + adcq %rdx,%r11 + movq %r9,%rdx + adcq $0,%rbp + + movq %r10,%rcx + imulq 32(%rsi),%r10 + + shlq $32,%rax + shrq $32,%rdx + subq %rax,%r8 + movq 0(%rsi),%rax + sbbq %rdx,%r9 + + addq %rbp,%r8 + adcq $0,%r9 + + + mulq %r10 + movq %r10,%rbp + addq %rax,%rcx + movq 8(%rsi),%rax + adcq %rdx,%rcx + + subq %r10,%r8 + sbbq $0,%rbp + + mulq %r10 + addq %rcx,%r11 + adcq $0,%rdx + addq %rax,%r11 + movq %r10,%rax + adcq %rdx,%r8 + movq %r10,%rdx + adcq $0,%rbp + + movq %r11,%rcx + imulq 32(%rsi),%r11 + + shlq $32,%rax + shrq $32,%rdx + subq %rax,%r9 + movq 0(%rsi),%rax + sbbq %rdx,%r10 + + addq %rbp,%r9 + adcq $0,%r10 + + + mulq %r11 + movq %r11,%rbp + addq %rax,%rcx + movq 8(%rsi),%rax + adcq %rdx,%rcx + + subq %r11,%r9 + sbbq $0,%rbp + + mulq %r11 + addq %rcx,%r8 + adcq $0,%rdx + addq %rax,%r8 + movq %r11,%rax + adcq %rdx,%r9 + movq %r11,%rdx + adcq $0,%rbp + + shlq $32,%rax + shrq $32,%rdx + subq %rax,%r10 + sbbq %rdx,%r11 + + addq %rbp,%r10 + adcq $0,%r11 + + + xorq %rdx,%rdx + addq %r12,%r8 + adcq %r13,%r9 + movq %r8,%r12 + adcq %r14,%r10 + adcq %r15,%r11 + movq %r9,%rax + adcq $0,%rdx + + + subq 0(%rsi),%r8 + movq %r10,%r14 + sbbq 8(%rsi),%r9 + sbbq 16(%rsi),%r10 + movq %r11,%r15 + sbbq 24(%rsi),%r11 + sbbq $0,%rdx + + cmovcq %r12,%r8 + cmovncq %r9,%rax + cmovncq %r10,%r14 + cmovncq %r11,%r15 + + decq %rbx + jnz .Loop_ord_sqr + + movq %r8,0(%rdi) + movq %rax,8(%rdi) + pxor %xmm1,%xmm1 + movq %r14,16(%rdi) + pxor %xmm2,%xmm2 + movq %r15,24(%rdi) + pxor %xmm3,%xmm3 + + movq 0(%rsp),%r15 +.cfi_restore %r15 + movq 8(%rsp),%r14 +.cfi_restore %r14 + movq 16(%rsp),%r13 +.cfi_restore %r13 + movq 24(%rsp),%r12 +.cfi_restore %r12 + movq 32(%rsp),%rbx +.cfi_restore %rbx + movq 40(%rsp),%rbp +.cfi_restore %rbp + leaq 48(%rsp),%rsp +.cfi_adjust_cfa_offset -48 +.Lord_sqr_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size ecp_nistz256_ord_sqr_mont,.-ecp_nistz256_ord_sqr_mont + +.type ecp_nistz256_ord_mul_montx,@function +.align 32 +ecp_nistz256_ord_mul_montx: +.cfi_startproc +.Lecp_nistz256_ord_mul_montx: + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-16 + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 +.Lord_mulx_body: + + movq %rdx,%rbx + movq 0(%rdx),%rdx + movq 0(%rsi),%r9 + movq 8(%rsi),%r10 + movq 16(%rsi),%r11 + movq 24(%rsi),%r12 + leaq -128(%rsi),%rsi + leaq .Lord-128(%rip),%r14 + movq .LordK(%rip),%r15 + + + mulxq %r9,%r8,%r9 + mulxq %r10,%rcx,%r10 + mulxq %r11,%rbp,%r11 + addq %rcx,%r9 + mulxq %r12,%rcx,%r12 + movq %r8,%rdx + mulxq %r15,%rdx,%rax + adcq %rbp,%r10 + adcq %rcx,%r11 + adcq $0,%r12 + + + xorq %r13,%r13 + mulxq 0+128(%r14),%rcx,%rbp + adcxq %rcx,%r8 + adoxq %rbp,%r9 + + mulxq 8+128(%r14),%rcx,%rbp + adcxq %rcx,%r9 + adoxq %rbp,%r10 + + mulxq 16+128(%r14),%rcx,%rbp + adcxq %rcx,%r10 + adoxq %rbp,%r11 + + mulxq 24+128(%r14),%rcx,%rbp + movq 8(%rbx),%rdx + adcxq %rcx,%r11 + adoxq %rbp,%r12 + adcxq %r8,%r12 + adoxq %r8,%r13 + adcq $0,%r13 + + + mulxq 0+128(%rsi),%rcx,%rbp + adcxq %rcx,%r9 + adoxq %rbp,%r10 + + mulxq 8+128(%rsi),%rcx,%rbp + adcxq %rcx,%r10 + adoxq %rbp,%r11 + + mulxq 16+128(%rsi),%rcx,%rbp + adcxq %rcx,%r11 + adoxq %rbp,%r12 + + mulxq 24+128(%rsi),%rcx,%rbp + movq %r9,%rdx + mulxq %r15,%rdx,%rax + adcxq %rcx,%r12 + adoxq %rbp,%r13 + + adcxq %r8,%r13 + adoxq %r8,%r8 + adcq $0,%r8 + + + mulxq 0+128(%r14),%rcx,%rbp + adcxq %rcx,%r9 + adoxq %rbp,%r10 + + mulxq 8+128(%r14),%rcx,%rbp + adcxq %rcx,%r10 + adoxq %rbp,%r11 + + mulxq 16+128(%r14),%rcx,%rbp + adcxq %rcx,%r11 + adoxq %rbp,%r12 + + mulxq 24+128(%r14),%rcx,%rbp + movq 16(%rbx),%rdx + adcxq %rcx,%r12 + adoxq %rbp,%r13 + adcxq %r9,%r13 + adoxq %r9,%r8 + adcq $0,%r8 + + + mulxq 0+128(%rsi),%rcx,%rbp + adcxq %rcx,%r10 + adoxq %rbp,%r11 + + mulxq 8+128(%rsi),%rcx,%rbp + adcxq %rcx,%r11 + adoxq %rbp,%r12 + + mulxq 16+128(%rsi),%rcx,%rbp + adcxq %rcx,%r12 + adoxq %rbp,%r13 + + mulxq 24+128(%rsi),%rcx,%rbp + movq %r10,%rdx + mulxq %r15,%rdx,%rax + adcxq %rcx,%r13 + adoxq %rbp,%r8 + + adcxq %r9,%r8 + adoxq %r9,%r9 + adcq $0,%r9 + + + mulxq 0+128(%r14),%rcx,%rbp + adcxq %rcx,%r10 + adoxq %rbp,%r11 + + mulxq 8+128(%r14),%rcx,%rbp + adcxq %rcx,%r11 + adoxq %rbp,%r12 + + mulxq 16+128(%r14),%rcx,%rbp + adcxq %rcx,%r12 + adoxq %rbp,%r13 + + mulxq 24+128(%r14),%rcx,%rbp + movq 24(%rbx),%rdx + adcxq %rcx,%r13 + adoxq %rbp,%r8 + adcxq %r10,%r8 + adoxq %r10,%r9 + adcq $0,%r9 + + + mulxq 0+128(%rsi),%rcx,%rbp + adcxq %rcx,%r11 + adoxq %rbp,%r12 + + mulxq 8+128(%rsi),%rcx,%rbp + adcxq %rcx,%r12 + adoxq %rbp,%r13 + + mulxq 16+128(%rsi),%rcx,%rbp + adcxq %rcx,%r13 + adoxq %rbp,%r8 + + mulxq 24+128(%rsi),%rcx,%rbp + movq %r11,%rdx + mulxq %r15,%rdx,%rax + adcxq %rcx,%r8 + adoxq %rbp,%r9 + + adcxq %r10,%r9 + adoxq %r10,%r10 + adcq $0,%r10 + + + mulxq 0+128(%r14),%rcx,%rbp + adcxq %rcx,%r11 + adoxq %rbp,%r12 + + mulxq 8+128(%r14),%rcx,%rbp + adcxq %rcx,%r12 + adoxq %rbp,%r13 + + mulxq 16+128(%r14),%rcx,%rbp + adcxq %rcx,%r13 + adoxq %rbp,%r8 + + mulxq 24+128(%r14),%rcx,%rbp + leaq 128(%r14),%r14 + movq %r12,%rbx + adcxq %rcx,%r8 + adoxq %rbp,%r9 + movq %r13,%rdx + adcxq %r11,%r9 + adoxq %r11,%r10 + adcq $0,%r10 + + + + movq %r8,%rcx + subq 0(%r14),%r12 + sbbq 8(%r14),%r13 + sbbq 16(%r14),%r8 + movq %r9,%rbp + sbbq 24(%r14),%r9 + sbbq $0,%r10 + + cmovcq %rbx,%r12 + cmovcq %rdx,%r13 + cmovcq %rcx,%r8 + cmovcq %rbp,%r9 + + movq %r12,0(%rdi) + movq %r13,8(%rdi) + movq %r8,16(%rdi) + movq %r9,24(%rdi) + + movq 0(%rsp),%r15 +.cfi_restore %r15 + movq 8(%rsp),%r14 +.cfi_restore %r14 + movq 16(%rsp),%r13 +.cfi_restore %r13 + movq 24(%rsp),%r12 +.cfi_restore %r12 + movq 32(%rsp),%rbx +.cfi_restore %rbx + movq 40(%rsp),%rbp +.cfi_restore %rbp + leaq 48(%rsp),%rsp +.cfi_adjust_cfa_offset -48 +.Lord_mulx_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size ecp_nistz256_ord_mul_montx,.-ecp_nistz256_ord_mul_montx + +.type ecp_nistz256_ord_sqr_montx,@function +.align 32 +ecp_nistz256_ord_sqr_montx: +.cfi_startproc +.Lecp_nistz256_ord_sqr_montx: + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-16 + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 +.Lord_sqrx_body: + + movq %rdx,%rbx + movq 0(%rsi),%rdx + movq 8(%rsi),%r14 + movq 16(%rsi),%r15 + movq 24(%rsi),%r8 + leaq .Lord(%rip),%rsi + jmp .Loop_ord_sqrx + +.align 32 +.Loop_ord_sqrx: + mulxq %r14,%r9,%r10 + mulxq %r15,%rcx,%r11 + movq %rdx,%rax +.byte 102,73,15,110,206 + mulxq %r8,%rbp,%r12 + movq %r14,%rdx + addq %rcx,%r10 +.byte 102,73,15,110,215 + adcq %rbp,%r11 + adcq $0,%r12 + xorq %r13,%r13 + + mulxq %r15,%rcx,%rbp + adcxq %rcx,%r11 + adoxq %rbp,%r12 + + mulxq %r8,%rcx,%rbp + movq %r15,%rdx + adcxq %rcx,%r12 + adoxq %rbp,%r13 + adcq $0,%r13 + + mulxq %r8,%rcx,%r14 + movq %rax,%rdx +.byte 102,73,15,110,216 + xorq %r15,%r15 + adcxq %r9,%r9 + adoxq %rcx,%r13 + adcxq %r10,%r10 + adoxq %r15,%r14 + + + mulxq %rdx,%r8,%rbp +.byte 102,72,15,126,202 + adcxq %r11,%r11 + adoxq %rbp,%r9 + adcxq %r12,%r12 + mulxq %rdx,%rcx,%rax +.byte 102,72,15,126,210 + adcxq %r13,%r13 + adoxq %rcx,%r10 + adcxq %r14,%r14 + mulxq %rdx,%rcx,%rbp +.byte 0x67 +.byte 102,72,15,126,218 + adoxq %rax,%r11 + adcxq %r15,%r15 + adoxq %rcx,%r12 + adoxq %rbp,%r13 + mulxq %rdx,%rcx,%rax + adoxq %rcx,%r14 + adoxq %rax,%r15 + + + movq %r8,%rdx + mulxq 32(%rsi),%rdx,%rcx + + xorq %rax,%rax + mulxq 0(%rsi),%rcx,%rbp + adcxq %rcx,%r8 + adoxq %rbp,%r9 + mulxq 8(%rsi),%rcx,%rbp + adcxq %rcx,%r9 + adoxq %rbp,%r10 + mulxq 16(%rsi),%rcx,%rbp + adcxq %rcx,%r10 + adoxq %rbp,%r11 + mulxq 24(%rsi),%rcx,%rbp + adcxq %rcx,%r11 + adoxq %rbp,%r8 + adcxq %rax,%r8 + + + movq %r9,%rdx + mulxq 32(%rsi),%rdx,%rcx + + mulxq 0(%rsi),%rcx,%rbp + adoxq %rcx,%r9 + adcxq %rbp,%r10 + mulxq 8(%rsi),%rcx,%rbp + adoxq %rcx,%r10 + adcxq %rbp,%r11 + mulxq 16(%rsi),%rcx,%rbp + adoxq %rcx,%r11 + adcxq %rbp,%r8 + mulxq 24(%rsi),%rcx,%rbp + adoxq %rcx,%r8 + adcxq %rbp,%r9 + adoxq %rax,%r9 + + + movq %r10,%rdx + mulxq 32(%rsi),%rdx,%rcx + + mulxq 0(%rsi),%rcx,%rbp + adcxq %rcx,%r10 + adoxq %rbp,%r11 + mulxq 8(%rsi),%rcx,%rbp + adcxq %rcx,%r11 + adoxq %rbp,%r8 + mulxq 16(%rsi),%rcx,%rbp + adcxq %rcx,%r8 + adoxq %rbp,%r9 + mulxq 24(%rsi),%rcx,%rbp + adcxq %rcx,%r9 + adoxq %rbp,%r10 + adcxq %rax,%r10 + + + movq %r11,%rdx + mulxq 32(%rsi),%rdx,%rcx + + mulxq 0(%rsi),%rcx,%rbp + adoxq %rcx,%r11 + adcxq %rbp,%r8 + mulxq 8(%rsi),%rcx,%rbp + adoxq %rcx,%r8 + adcxq %rbp,%r9 + mulxq 16(%rsi),%rcx,%rbp + adoxq %rcx,%r9 + adcxq %rbp,%r10 + mulxq 24(%rsi),%rcx,%rbp + adoxq %rcx,%r10 + adcxq %rbp,%r11 + adoxq %rax,%r11 + + + addq %r8,%r12 + adcq %r13,%r9 + movq %r12,%rdx + adcq %r14,%r10 + adcq %r15,%r11 + movq %r9,%r14 + adcq $0,%rax + + + subq 0(%rsi),%r12 + movq %r10,%r15 + sbbq 8(%rsi),%r9 + sbbq 16(%rsi),%r10 + movq %r11,%r8 + sbbq 24(%rsi),%r11 + sbbq $0,%rax + + cmovncq %r12,%rdx + cmovncq %r9,%r14 + cmovncq %r10,%r15 + cmovncq %r11,%r8 + + decq %rbx + jnz .Loop_ord_sqrx + + movq %rdx,0(%rdi) + movq %r14,8(%rdi) + pxor %xmm1,%xmm1 + movq %r15,16(%rdi) + pxor %xmm2,%xmm2 + movq %r8,24(%rdi) + pxor %xmm3,%xmm3 + + movq 0(%rsp),%r15 +.cfi_restore %r15 + movq 8(%rsp),%r14 +.cfi_restore %r14 + movq 16(%rsp),%r13 +.cfi_restore %r13 + movq 24(%rsp),%r12 +.cfi_restore %r12 + movq 32(%rsp),%rbx +.cfi_restore %rbx + movq 40(%rsp),%rbp +.cfi_restore %rbp + leaq 48(%rsp),%rsp +.cfi_adjust_cfa_offset -48 +.Lord_sqrx_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size ecp_nistz256_ord_sqr_montx,.-ecp_nistz256_ord_sqr_montx + + + + +.globl ecp_nistz256_to_mont +.type ecp_nistz256_to_mont,@function +.align 32 +ecp_nistz256_to_mont: +.cfi_startproc + movl $0x80100,%ecx + andl OPENSSL_ia32cap_P+8(%rip),%ecx + leaq .LRR(%rip),%rdx + jmp .Lmul_mont +.cfi_endproc +.size ecp_nistz256_to_mont,.-ecp_nistz256_to_mont + + + + + + + +.globl ecp_nistz256_mul_mont +.type ecp_nistz256_mul_mont,@function +.align 32 +ecp_nistz256_mul_mont: +.cfi_startproc + movl $0x80100,%ecx + andl OPENSSL_ia32cap_P+8(%rip),%ecx +.Lmul_mont: + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-16 + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 +.Lmul_body: + cmpl $0x80100,%ecx + je .Lmul_montx + movq %rdx,%rbx + movq 0(%rdx),%rax + movq 0(%rsi),%r9 + movq 8(%rsi),%r10 + movq 16(%rsi),%r11 + movq 24(%rsi),%r12 + + call __ecp_nistz256_mul_montq + jmp .Lmul_mont_done + +.align 32 +.Lmul_montx: + movq %rdx,%rbx + movq 0(%rdx),%rdx + movq 0(%rsi),%r9 + movq 8(%rsi),%r10 + movq 16(%rsi),%r11 + movq 24(%rsi),%r12 + leaq -128(%rsi),%rsi + + call __ecp_nistz256_mul_montx +.Lmul_mont_done: + movq 0(%rsp),%r15 +.cfi_restore %r15 + movq 8(%rsp),%r14 +.cfi_restore %r14 + movq 16(%rsp),%r13 +.cfi_restore %r13 + movq 24(%rsp),%r12 +.cfi_restore %r12 + movq 32(%rsp),%rbx +.cfi_restore %rbx + movq 40(%rsp),%rbp +.cfi_restore %rbp + leaq 48(%rsp),%rsp +.cfi_adjust_cfa_offset -48 +.Lmul_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size ecp_nistz256_mul_mont,.-ecp_nistz256_mul_mont + +.type __ecp_nistz256_mul_montq,@function +.align 32 +__ecp_nistz256_mul_montq: +.cfi_startproc + + + movq %rax,%rbp + mulq %r9 + movq .Lpoly+8(%rip),%r14 + movq %rax,%r8 + movq %rbp,%rax + movq %rdx,%r9 + + mulq %r10 + movq .Lpoly+24(%rip),%r15 + addq %rax,%r9 + movq %rbp,%rax + adcq $0,%rdx + movq %rdx,%r10 + + mulq %r11 + addq %rax,%r10 + movq %rbp,%rax + adcq $0,%rdx + movq %rdx,%r11 + + mulq %r12 + addq %rax,%r11 + movq %r8,%rax + adcq $0,%rdx + xorq %r13,%r13 + movq %rdx,%r12 + + + + + + + + + + + movq %r8,%rbp + shlq $32,%r8 + mulq %r15 + shrq $32,%rbp + addq %r8,%r9 + adcq %rbp,%r10 + adcq %rax,%r11 + movq 8(%rbx),%rax + adcq %rdx,%r12 + adcq $0,%r13 + xorq %r8,%r8 + + + + movq %rax,%rbp + mulq 0(%rsi) + addq %rax,%r9 + movq %rbp,%rax + adcq $0,%rdx + movq %rdx,%rcx + + mulq 8(%rsi) + addq %rcx,%r10 + adcq $0,%rdx + addq %rax,%r10 + movq %rbp,%rax + adcq $0,%rdx + movq %rdx,%rcx + + mulq 16(%rsi) + addq %rcx,%r11 + adcq $0,%rdx + addq %rax,%r11 + movq %rbp,%rax + adcq $0,%rdx + movq %rdx,%rcx + + mulq 24(%rsi) + addq %rcx,%r12 + adcq $0,%rdx + addq %rax,%r12 + movq %r9,%rax + adcq %rdx,%r13 + adcq $0,%r8 + + + + movq %r9,%rbp + shlq $32,%r9 + mulq %r15 + shrq $32,%rbp + addq %r9,%r10 + adcq %rbp,%r11 + adcq %rax,%r12 + movq 16(%rbx),%rax + adcq %rdx,%r13 + adcq $0,%r8 + xorq %r9,%r9 + + + + movq %rax,%rbp + mulq 0(%rsi) + addq %rax,%r10 + movq %rbp,%rax + adcq $0,%rdx + movq %rdx,%rcx + + mulq 8(%rsi) + addq %rcx,%r11 + adcq $0,%rdx + addq %rax,%r11 + movq %rbp,%rax + adcq $0,%rdx + movq %rdx,%rcx + + mulq 16(%rsi) + addq %rcx,%r12 + adcq $0,%rdx + addq %rax,%r12 + movq %rbp,%rax + adcq $0,%rdx + movq %rdx,%rcx + + mulq 24(%rsi) + addq %rcx,%r13 + adcq $0,%rdx + addq %rax,%r13 + movq %r10,%rax + adcq %rdx,%r8 + adcq $0,%r9 + + + + movq %r10,%rbp + shlq $32,%r10 + mulq %r15 + shrq $32,%rbp + addq %r10,%r11 + adcq %rbp,%r12 + adcq %rax,%r13 + movq 24(%rbx),%rax + adcq %rdx,%r8 + adcq $0,%r9 + xorq %r10,%r10 + + + + movq %rax,%rbp + mulq 0(%rsi) + addq %rax,%r11 + movq %rbp,%rax + adcq $0,%rdx + movq %rdx,%rcx + + mulq 8(%rsi) + addq %rcx,%r12 + adcq $0,%rdx + addq %rax,%r12 + movq %rbp,%rax + adcq $0,%rdx + movq %rdx,%rcx + + mulq 16(%rsi) + addq %rcx,%r13 + adcq $0,%rdx + addq %rax,%r13 + movq %rbp,%rax + adcq $0,%rdx + movq %rdx,%rcx + + mulq 24(%rsi) + addq %rcx,%r8 + adcq $0,%rdx + addq %rax,%r8 + movq %r11,%rax + adcq %rdx,%r9 + adcq $0,%r10 + + + + movq %r11,%rbp + shlq $32,%r11 + mulq %r15 + shrq $32,%rbp + addq %r11,%r12 + adcq %rbp,%r13 + movq %r12,%rcx + adcq %rax,%r8 + adcq %rdx,%r9 + movq %r13,%rbp + adcq $0,%r10 + + + + subq $-1,%r12 + movq %r8,%rbx + sbbq %r14,%r13 + sbbq $0,%r8 + movq %r9,%rdx + sbbq %r15,%r9 + sbbq $0,%r10 + + cmovcq %rcx,%r12 + cmovcq %rbp,%r13 + movq %r12,0(%rdi) + cmovcq %rbx,%r8 + movq %r13,8(%rdi) + cmovcq %rdx,%r9 + movq %r8,16(%rdi) + movq %r9,24(%rdi) + + .byte 0xf3,0xc3 +.cfi_endproc +.size __ecp_nistz256_mul_montq,.-__ecp_nistz256_mul_montq + + + + + + + + +.globl ecp_nistz256_sqr_mont +.type ecp_nistz256_sqr_mont,@function +.align 32 +ecp_nistz256_sqr_mont: +.cfi_startproc + movl $0x80100,%ecx + andl OPENSSL_ia32cap_P+8(%rip),%ecx + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-16 + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 +.Lsqr_body: + cmpl $0x80100,%ecx + je .Lsqr_montx + movq 0(%rsi),%rax + movq 8(%rsi),%r14 + movq 16(%rsi),%r15 + movq 24(%rsi),%r8 + + call __ecp_nistz256_sqr_montq + jmp .Lsqr_mont_done + +.align 32 +.Lsqr_montx: + movq 0(%rsi),%rdx + movq 8(%rsi),%r14 + movq 16(%rsi),%r15 + movq 24(%rsi),%r8 + leaq -128(%rsi),%rsi + + call __ecp_nistz256_sqr_montx +.Lsqr_mont_done: + movq 0(%rsp),%r15 +.cfi_restore %r15 + movq 8(%rsp),%r14 +.cfi_restore %r14 + movq 16(%rsp),%r13 +.cfi_restore %r13 + movq 24(%rsp),%r12 +.cfi_restore %r12 + movq 32(%rsp),%rbx +.cfi_restore %rbx + movq 40(%rsp),%rbp +.cfi_restore %rbp + leaq 48(%rsp),%rsp +.cfi_adjust_cfa_offset -48 +.Lsqr_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size ecp_nistz256_sqr_mont,.-ecp_nistz256_sqr_mont + +.type __ecp_nistz256_sqr_montq,@function +.align 32 +__ecp_nistz256_sqr_montq: +.cfi_startproc + movq %rax,%r13 + mulq %r14 + movq %rax,%r9 + movq %r15,%rax + movq %rdx,%r10 + + mulq %r13 + addq %rax,%r10 + movq %r8,%rax + adcq $0,%rdx + movq %rdx,%r11 + + mulq %r13 + addq %rax,%r11 + movq %r15,%rax + adcq $0,%rdx + movq %rdx,%r12 + + + mulq %r14 + addq %rax,%r11 + movq %r8,%rax + adcq $0,%rdx + movq %rdx,%rbp + + mulq %r14 + addq %rax,%r12 + movq %r8,%rax + adcq $0,%rdx + addq %rbp,%r12 + movq %rdx,%r13 + adcq $0,%r13 + + + mulq %r15 + xorq %r15,%r15 + addq %rax,%r13 + movq 0(%rsi),%rax + movq %rdx,%r14 + adcq $0,%r14 + + addq %r9,%r9 + adcq %r10,%r10 + adcq %r11,%r11 + adcq %r12,%r12 + adcq %r13,%r13 + adcq %r14,%r14 + adcq $0,%r15 + + mulq %rax + movq %rax,%r8 + movq 8(%rsi),%rax + movq %rdx,%rcx + + mulq %rax + addq %rcx,%r9 + adcq %rax,%r10 + movq 16(%rsi),%rax + adcq $0,%rdx + movq %rdx,%rcx + + mulq %rax + addq %rcx,%r11 + adcq %rax,%r12 + movq 24(%rsi),%rax + adcq $0,%rdx + movq %rdx,%rcx + + mulq %rax + addq %rcx,%r13 + adcq %rax,%r14 + movq %r8,%rax + adcq %rdx,%r15 + + movq .Lpoly+8(%rip),%rsi + movq .Lpoly+24(%rip),%rbp + + + + + movq %r8,%rcx + shlq $32,%r8 + mulq %rbp + shrq $32,%rcx + addq %r8,%r9 + adcq %rcx,%r10 + adcq %rax,%r11 + movq %r9,%rax + adcq $0,%rdx + + + + movq %r9,%rcx + shlq $32,%r9 + movq %rdx,%r8 + mulq %rbp + shrq $32,%rcx + addq %r9,%r10 + adcq %rcx,%r11 + adcq %rax,%r8 + movq %r10,%rax + adcq $0,%rdx + + + + movq %r10,%rcx + shlq $32,%r10 + movq %rdx,%r9 + mulq %rbp + shrq $32,%rcx + addq %r10,%r11 + adcq %rcx,%r8 + adcq %rax,%r9 + movq %r11,%rax + adcq $0,%rdx + + + + movq %r11,%rcx + shlq $32,%r11 + movq %rdx,%r10 + mulq %rbp + shrq $32,%rcx + addq %r11,%r8 + adcq %rcx,%r9 + adcq %rax,%r10 + adcq $0,%rdx + xorq %r11,%r11 + + + + addq %r8,%r12 + adcq %r9,%r13 + movq %r12,%r8 + adcq %r10,%r14 + adcq %rdx,%r15 + movq %r13,%r9 + adcq $0,%r11 + + subq $-1,%r12 + movq %r14,%r10 + sbbq %rsi,%r13 + sbbq $0,%r14 + movq %r15,%rcx + sbbq %rbp,%r15 + sbbq $0,%r11 + + cmovcq %r8,%r12 + cmovcq %r9,%r13 + movq %r12,0(%rdi) + cmovcq %r10,%r14 + movq %r13,8(%rdi) + cmovcq %rcx,%r15 + movq %r14,16(%rdi) + movq %r15,24(%rdi) + + .byte 0xf3,0xc3 +.cfi_endproc +.size __ecp_nistz256_sqr_montq,.-__ecp_nistz256_sqr_montq +.type __ecp_nistz256_mul_montx,@function +.align 32 +__ecp_nistz256_mul_montx: +.cfi_startproc + + + mulxq %r9,%r8,%r9 + mulxq %r10,%rcx,%r10 + movq $32,%r14 + xorq %r13,%r13 + mulxq %r11,%rbp,%r11 + movq .Lpoly+24(%rip),%r15 + adcq %rcx,%r9 + mulxq %r12,%rcx,%r12 + movq %r8,%rdx + adcq %rbp,%r10 + shlxq %r14,%r8,%rbp + adcq %rcx,%r11 + shrxq %r14,%r8,%rcx + adcq $0,%r12 + + + + addq %rbp,%r9 + adcq %rcx,%r10 + + mulxq %r15,%rcx,%rbp + movq 8(%rbx),%rdx + adcq %rcx,%r11 + adcq %rbp,%r12 + adcq $0,%r13 + xorq %r8,%r8 + + + + mulxq 0+128(%rsi),%rcx,%rbp + adcxq %rcx,%r9 + adoxq %rbp,%r10 + + mulxq 8+128(%rsi),%rcx,%rbp + adcxq %rcx,%r10 + adoxq %rbp,%r11 + + mulxq 16+128(%rsi),%rcx,%rbp + adcxq %rcx,%r11 + adoxq %rbp,%r12 + + mulxq 24+128(%rsi),%rcx,%rbp + movq %r9,%rdx + adcxq %rcx,%r12 + shlxq %r14,%r9,%rcx + adoxq %rbp,%r13 + shrxq %r14,%r9,%rbp + + adcxq %r8,%r13 + adoxq %r8,%r8 + adcq $0,%r8 + + + + addq %rcx,%r10 + adcq %rbp,%r11 + + mulxq %r15,%rcx,%rbp + movq 16(%rbx),%rdx + adcq %rcx,%r12 + adcq %rbp,%r13 + adcq $0,%r8 + xorq %r9,%r9 + + + + mulxq 0+128(%rsi),%rcx,%rbp + adcxq %rcx,%r10 + adoxq %rbp,%r11 + + mulxq 8+128(%rsi),%rcx,%rbp + adcxq %rcx,%r11 + adoxq %rbp,%r12 + + mulxq 16+128(%rsi),%rcx,%rbp + adcxq %rcx,%r12 + adoxq %rbp,%r13 + + mulxq 24+128(%rsi),%rcx,%rbp + movq %r10,%rdx + adcxq %rcx,%r13 + shlxq %r14,%r10,%rcx + adoxq %rbp,%r8 + shrxq %r14,%r10,%rbp + + adcxq %r9,%r8 + adoxq %r9,%r9 + adcq $0,%r9 + + + + addq %rcx,%r11 + adcq %rbp,%r12 + + mulxq %r15,%rcx,%rbp + movq 24(%rbx),%rdx + adcq %rcx,%r13 + adcq %rbp,%r8 + adcq $0,%r9 + xorq %r10,%r10 + + + + mulxq 0+128(%rsi),%rcx,%rbp + adcxq %rcx,%r11 + adoxq %rbp,%r12 + + mulxq 8+128(%rsi),%rcx,%rbp + adcxq %rcx,%r12 + adoxq %rbp,%r13 + + mulxq 16+128(%rsi),%rcx,%rbp + adcxq %rcx,%r13 + adoxq %rbp,%r8 + + mulxq 24+128(%rsi),%rcx,%rbp + movq %r11,%rdx + adcxq %rcx,%r8 + shlxq %r14,%r11,%rcx + adoxq %rbp,%r9 + shrxq %r14,%r11,%rbp + + adcxq %r10,%r9 + adoxq %r10,%r10 + adcq $0,%r10 + + + + addq %rcx,%r12 + adcq %rbp,%r13 + + mulxq %r15,%rcx,%rbp + movq %r12,%rbx + movq .Lpoly+8(%rip),%r14 + adcq %rcx,%r8 + movq %r13,%rdx + adcq %rbp,%r9 + adcq $0,%r10 + + + + xorl %eax,%eax + movq %r8,%rcx + sbbq $-1,%r12 + sbbq %r14,%r13 + sbbq $0,%r8 + movq %r9,%rbp + sbbq %r15,%r9 + sbbq $0,%r10 + + cmovcq %rbx,%r12 + cmovcq %rdx,%r13 + movq %r12,0(%rdi) + cmovcq %rcx,%r8 + movq %r13,8(%rdi) + cmovcq %rbp,%r9 + movq %r8,16(%rdi) + movq %r9,24(%rdi) + + .byte 0xf3,0xc3 +.cfi_endproc +.size __ecp_nistz256_mul_montx,.-__ecp_nistz256_mul_montx + +.type __ecp_nistz256_sqr_montx,@function +.align 32 +__ecp_nistz256_sqr_montx: +.cfi_startproc + mulxq %r14,%r9,%r10 + mulxq %r15,%rcx,%r11 + xorl %eax,%eax + adcq %rcx,%r10 + mulxq %r8,%rbp,%r12 + movq %r14,%rdx + adcq %rbp,%r11 + adcq $0,%r12 + xorq %r13,%r13 + + + mulxq %r15,%rcx,%rbp + adcxq %rcx,%r11 + adoxq %rbp,%r12 + + mulxq %r8,%rcx,%rbp + movq %r15,%rdx + adcxq %rcx,%r12 + adoxq %rbp,%r13 + adcq $0,%r13 + + + mulxq %r8,%rcx,%r14 + movq 0+128(%rsi),%rdx + xorq %r15,%r15 + adcxq %r9,%r9 + adoxq %rcx,%r13 + adcxq %r10,%r10 + adoxq %r15,%r14 + + mulxq %rdx,%r8,%rbp + movq 8+128(%rsi),%rdx + adcxq %r11,%r11 + adoxq %rbp,%r9 + adcxq %r12,%r12 + mulxq %rdx,%rcx,%rax + movq 16+128(%rsi),%rdx + adcxq %r13,%r13 + adoxq %rcx,%r10 + adcxq %r14,%r14 +.byte 0x67 + mulxq %rdx,%rcx,%rbp + movq 24+128(%rsi),%rdx + adoxq %rax,%r11 + adcxq %r15,%r15 + adoxq %rcx,%r12 + movq $32,%rsi + adoxq %rbp,%r13 +.byte 0x67,0x67 + mulxq %rdx,%rcx,%rax + movq .Lpoly+24(%rip),%rdx + adoxq %rcx,%r14 + shlxq %rsi,%r8,%rcx + adoxq %rax,%r15 + shrxq %rsi,%r8,%rax + movq %rdx,%rbp + + + addq %rcx,%r9 + adcq %rax,%r10 + + mulxq %r8,%rcx,%r8 + adcq %rcx,%r11 + shlxq %rsi,%r9,%rcx + adcq $0,%r8 + shrxq %rsi,%r9,%rax + + + addq %rcx,%r10 + adcq %rax,%r11 + + mulxq %r9,%rcx,%r9 + adcq %rcx,%r8 + shlxq %rsi,%r10,%rcx + adcq $0,%r9 + shrxq %rsi,%r10,%rax + + + addq %rcx,%r11 + adcq %rax,%r8 + + mulxq %r10,%rcx,%r10 + adcq %rcx,%r9 + shlxq %rsi,%r11,%rcx + adcq $0,%r10 + shrxq %rsi,%r11,%rax + + + addq %rcx,%r8 + adcq %rax,%r9 + + mulxq %r11,%rcx,%r11 + adcq %rcx,%r10 + adcq $0,%r11 + + xorq %rdx,%rdx + addq %r8,%r12 + movq .Lpoly+8(%rip),%rsi + adcq %r9,%r13 + movq %r12,%r8 + adcq %r10,%r14 + adcq %r11,%r15 + movq %r13,%r9 + adcq $0,%rdx + + subq $-1,%r12 + movq %r14,%r10 + sbbq %rsi,%r13 + sbbq $0,%r14 + movq %r15,%r11 + sbbq %rbp,%r15 + sbbq $0,%rdx + + cmovcq %r8,%r12 + cmovcq %r9,%r13 + movq %r12,0(%rdi) + cmovcq %r10,%r14 + movq %r13,8(%rdi) + cmovcq %r11,%r15 + movq %r14,16(%rdi) + movq %r15,24(%rdi) + + .byte 0xf3,0xc3 +.cfi_endproc +.size __ecp_nistz256_sqr_montx,.-__ecp_nistz256_sqr_montx + + + + + + +.globl ecp_nistz256_from_mont +.type ecp_nistz256_from_mont,@function +.align 32 +ecp_nistz256_from_mont: +.cfi_startproc + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-16 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-24 +.Lfrom_body: + + movq 0(%rsi),%rax + movq .Lpoly+24(%rip),%r13 + movq 8(%rsi),%r9 + movq 16(%rsi),%r10 + movq 24(%rsi),%r11 + movq %rax,%r8 + movq .Lpoly+8(%rip),%r12 + + + + movq %rax,%rcx + shlq $32,%r8 + mulq %r13 + shrq $32,%rcx + addq %r8,%r9 + adcq %rcx,%r10 + adcq %rax,%r11 + movq %r9,%rax + adcq $0,%rdx + + + + movq %r9,%rcx + shlq $32,%r9 + movq %rdx,%r8 + mulq %r13 + shrq $32,%rcx + addq %r9,%r10 + adcq %rcx,%r11 + adcq %rax,%r8 + movq %r10,%rax + adcq $0,%rdx + + + + movq %r10,%rcx + shlq $32,%r10 + movq %rdx,%r9 + mulq %r13 + shrq $32,%rcx + addq %r10,%r11 + adcq %rcx,%r8 + adcq %rax,%r9 + movq %r11,%rax + adcq $0,%rdx + + + + movq %r11,%rcx + shlq $32,%r11 + movq %rdx,%r10 + mulq %r13 + shrq $32,%rcx + addq %r11,%r8 + adcq %rcx,%r9 + movq %r8,%rcx + adcq %rax,%r10 + movq %r9,%rsi + adcq $0,%rdx + + + + subq $-1,%r8 + movq %r10,%rax + sbbq %r12,%r9 + sbbq $0,%r10 + movq %rdx,%r11 + sbbq %r13,%rdx + sbbq %r13,%r13 + + cmovnzq %rcx,%r8 + cmovnzq %rsi,%r9 + movq %r8,0(%rdi) + cmovnzq %rax,%r10 + movq %r9,8(%rdi) + cmovzq %rdx,%r11 + movq %r10,16(%rdi) + movq %r11,24(%rdi) + + movq 0(%rsp),%r13 +.cfi_restore %r13 + movq 8(%rsp),%r12 +.cfi_restore %r12 + leaq 16(%rsp),%rsp +.cfi_adjust_cfa_offset -16 +.Lfrom_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size ecp_nistz256_from_mont,.-ecp_nistz256_from_mont + + +.globl ecp_nistz256_scatter_w5 +.type ecp_nistz256_scatter_w5,@function +.align 32 +ecp_nistz256_scatter_w5: +.cfi_startproc + leal -3(%rdx,%rdx,2),%edx + movdqa 0(%rsi),%xmm0 + shll $5,%edx + movdqa 16(%rsi),%xmm1 + movdqa 32(%rsi),%xmm2 + movdqa 48(%rsi),%xmm3 + movdqa 64(%rsi),%xmm4 + movdqa 80(%rsi),%xmm5 + movdqa %xmm0,0(%rdi,%rdx,1) + movdqa %xmm1,16(%rdi,%rdx,1) + movdqa %xmm2,32(%rdi,%rdx,1) + movdqa %xmm3,48(%rdi,%rdx,1) + movdqa %xmm4,64(%rdi,%rdx,1) + movdqa %xmm5,80(%rdi,%rdx,1) + + .byte 0xf3,0xc3 +.cfi_endproc +.size ecp_nistz256_scatter_w5,.-ecp_nistz256_scatter_w5 + + + +.globl ecp_nistz256_gather_w5 +.type ecp_nistz256_gather_w5,@function +.align 32 +ecp_nistz256_gather_w5: +.cfi_startproc + movl OPENSSL_ia32cap_P+8(%rip),%eax + testl $32,%eax + jnz .Lavx2_gather_w5 + movdqa .LOne(%rip),%xmm0 + movd %edx,%xmm1 + + pxor %xmm2,%xmm2 + pxor %xmm3,%xmm3 + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + pxor %xmm6,%xmm6 + pxor %xmm7,%xmm7 + + movdqa %xmm0,%xmm8 + pshufd $0,%xmm1,%xmm1 + + movq $16,%rax +.Lselect_loop_sse_w5: + + movdqa %xmm8,%xmm15 + paddd %xmm0,%xmm8 + pcmpeqd %xmm1,%xmm15 + + movdqa 0(%rsi),%xmm9 + movdqa 16(%rsi),%xmm10 + movdqa 32(%rsi),%xmm11 + movdqa 48(%rsi),%xmm12 + movdqa 64(%rsi),%xmm13 + movdqa 80(%rsi),%xmm14 + leaq 96(%rsi),%rsi + + pand %xmm15,%xmm9 + pand %xmm15,%xmm10 + por %xmm9,%xmm2 + pand %xmm15,%xmm11 + por %xmm10,%xmm3 + pand %xmm15,%xmm12 + por %xmm11,%xmm4 + pand %xmm15,%xmm13 + por %xmm12,%xmm5 + pand %xmm15,%xmm14 + por %xmm13,%xmm6 + por %xmm14,%xmm7 + + decq %rax + jnz .Lselect_loop_sse_w5 + + movdqu %xmm2,0(%rdi) + movdqu %xmm3,16(%rdi) + movdqu %xmm4,32(%rdi) + movdqu %xmm5,48(%rdi) + movdqu %xmm6,64(%rdi) + movdqu %xmm7,80(%rdi) + .byte 0xf3,0xc3 +.cfi_endproc +.LSEH_end_ecp_nistz256_gather_w5: +.size ecp_nistz256_gather_w5,.-ecp_nistz256_gather_w5 + + + +.globl ecp_nistz256_scatter_w7 +.type ecp_nistz256_scatter_w7,@function +.align 32 +ecp_nistz256_scatter_w7: +.cfi_startproc + movdqu 0(%rsi),%xmm0 + shll $6,%edx + movdqu 16(%rsi),%xmm1 + movdqu 32(%rsi),%xmm2 + movdqu 48(%rsi),%xmm3 + movdqa %xmm0,0(%rdi,%rdx,1) + movdqa %xmm1,16(%rdi,%rdx,1) + movdqa %xmm2,32(%rdi,%rdx,1) + movdqa %xmm3,48(%rdi,%rdx,1) + + .byte 0xf3,0xc3 +.cfi_endproc +.size ecp_nistz256_scatter_w7,.-ecp_nistz256_scatter_w7 + + + +.globl ecp_nistz256_gather_w7 +.type ecp_nistz256_gather_w7,@function +.align 32 +ecp_nistz256_gather_w7: +.cfi_startproc + movl OPENSSL_ia32cap_P+8(%rip),%eax + testl $32,%eax + jnz .Lavx2_gather_w7 + movdqa .LOne(%rip),%xmm8 + movd %edx,%xmm1 + + pxor %xmm2,%xmm2 + pxor %xmm3,%xmm3 + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + + movdqa %xmm8,%xmm0 + pshufd $0,%xmm1,%xmm1 + movq $64,%rax + +.Lselect_loop_sse_w7: + movdqa %xmm8,%xmm15 + paddd %xmm0,%xmm8 + movdqa 0(%rsi),%xmm9 + movdqa 16(%rsi),%xmm10 + pcmpeqd %xmm1,%xmm15 + movdqa 32(%rsi),%xmm11 + movdqa 48(%rsi),%xmm12 + leaq 64(%rsi),%rsi + + pand %xmm15,%xmm9 + pand %xmm15,%xmm10 + por %xmm9,%xmm2 + pand %xmm15,%xmm11 + por %xmm10,%xmm3 + pand %xmm15,%xmm12 + por %xmm11,%xmm4 + prefetcht0 255(%rsi) + por %xmm12,%xmm5 + + decq %rax + jnz .Lselect_loop_sse_w7 + + movdqu %xmm2,0(%rdi) + movdqu %xmm3,16(%rdi) + movdqu %xmm4,32(%rdi) + movdqu %xmm5,48(%rdi) + .byte 0xf3,0xc3 +.cfi_endproc +.LSEH_end_ecp_nistz256_gather_w7: +.size ecp_nistz256_gather_w7,.-ecp_nistz256_gather_w7 + + +.type ecp_nistz256_avx2_gather_w5,@function +.align 32 +ecp_nistz256_avx2_gather_w5: +.cfi_startproc +.Lavx2_gather_w5: + vzeroupper + vmovdqa .LTwo(%rip),%ymm0 + + vpxor %ymm2,%ymm2,%ymm2 + vpxor %ymm3,%ymm3,%ymm3 + vpxor %ymm4,%ymm4,%ymm4 + + vmovdqa .LOne(%rip),%ymm5 + vmovdqa .LTwo(%rip),%ymm10 + + vmovd %edx,%xmm1 + vpermd %ymm1,%ymm2,%ymm1 + + movq $8,%rax +.Lselect_loop_avx2_w5: + + vmovdqa 0(%rsi),%ymm6 + vmovdqa 32(%rsi),%ymm7 + vmovdqa 64(%rsi),%ymm8 + + vmovdqa 96(%rsi),%ymm11 + vmovdqa 128(%rsi),%ymm12 + vmovdqa 160(%rsi),%ymm13 + + vpcmpeqd %ymm1,%ymm5,%ymm9 + vpcmpeqd %ymm1,%ymm10,%ymm14 + + vpaddd %ymm0,%ymm5,%ymm5 + vpaddd %ymm0,%ymm10,%ymm10 + leaq 192(%rsi),%rsi + + vpand %ymm9,%ymm6,%ymm6 + vpand %ymm9,%ymm7,%ymm7 + vpand %ymm9,%ymm8,%ymm8 + vpand %ymm14,%ymm11,%ymm11 + vpand %ymm14,%ymm12,%ymm12 + vpand %ymm14,%ymm13,%ymm13 + + vpxor %ymm6,%ymm2,%ymm2 + vpxor %ymm7,%ymm3,%ymm3 + vpxor %ymm8,%ymm4,%ymm4 + vpxor %ymm11,%ymm2,%ymm2 + vpxor %ymm12,%ymm3,%ymm3 + vpxor %ymm13,%ymm4,%ymm4 + + decq %rax + jnz .Lselect_loop_avx2_w5 + + vmovdqu %ymm2,0(%rdi) + vmovdqu %ymm3,32(%rdi) + vmovdqu %ymm4,64(%rdi) + vzeroupper + .byte 0xf3,0xc3 +.cfi_endproc +.LSEH_end_ecp_nistz256_avx2_gather_w5: +.size ecp_nistz256_avx2_gather_w5,.-ecp_nistz256_avx2_gather_w5 + + + +.globl ecp_nistz256_avx2_gather_w7 +.type ecp_nistz256_avx2_gather_w7,@function +.align 32 +ecp_nistz256_avx2_gather_w7: +.cfi_startproc +.Lavx2_gather_w7: + vzeroupper + vmovdqa .LThree(%rip),%ymm0 + + vpxor %ymm2,%ymm2,%ymm2 + vpxor %ymm3,%ymm3,%ymm3 + + vmovdqa .LOne(%rip),%ymm4 + vmovdqa .LTwo(%rip),%ymm8 + vmovdqa .LThree(%rip),%ymm12 + + vmovd %edx,%xmm1 + vpermd %ymm1,%ymm2,%ymm1 + + + movq $21,%rax +.Lselect_loop_avx2_w7: + + vmovdqa 0(%rsi),%ymm5 + vmovdqa 32(%rsi),%ymm6 + + vmovdqa 64(%rsi),%ymm9 + vmovdqa 96(%rsi),%ymm10 + + vmovdqa 128(%rsi),%ymm13 + vmovdqa 160(%rsi),%ymm14 + + vpcmpeqd %ymm1,%ymm4,%ymm7 + vpcmpeqd %ymm1,%ymm8,%ymm11 + vpcmpeqd %ymm1,%ymm12,%ymm15 + + vpaddd %ymm0,%ymm4,%ymm4 + vpaddd %ymm0,%ymm8,%ymm8 + vpaddd %ymm0,%ymm12,%ymm12 + leaq 192(%rsi),%rsi + + vpand %ymm7,%ymm5,%ymm5 + vpand %ymm7,%ymm6,%ymm6 + vpand %ymm11,%ymm9,%ymm9 + vpand %ymm11,%ymm10,%ymm10 + vpand %ymm15,%ymm13,%ymm13 + vpand %ymm15,%ymm14,%ymm14 + + vpxor %ymm5,%ymm2,%ymm2 + vpxor %ymm6,%ymm3,%ymm3 + vpxor %ymm9,%ymm2,%ymm2 + vpxor %ymm10,%ymm3,%ymm3 + vpxor %ymm13,%ymm2,%ymm2 + vpxor %ymm14,%ymm3,%ymm3 + + decq %rax + jnz .Lselect_loop_avx2_w7 + + + vmovdqa 0(%rsi),%ymm5 + vmovdqa 32(%rsi),%ymm6 + + vpcmpeqd %ymm1,%ymm4,%ymm7 + + vpand %ymm7,%ymm5,%ymm5 + vpand %ymm7,%ymm6,%ymm6 + + vpxor %ymm5,%ymm2,%ymm2 + vpxor %ymm6,%ymm3,%ymm3 + + vmovdqu %ymm2,0(%rdi) + vmovdqu %ymm3,32(%rdi) + vzeroupper + .byte 0xf3,0xc3 +.cfi_endproc +.LSEH_end_ecp_nistz256_avx2_gather_w7: +.size ecp_nistz256_avx2_gather_w7,.-ecp_nistz256_avx2_gather_w7 +.type __ecp_nistz256_add_toq,@function +.align 32 +__ecp_nistz256_add_toq: +.cfi_startproc + xorq %r11,%r11 + addq 0(%rbx),%r12 + adcq 8(%rbx),%r13 + movq %r12,%rax + adcq 16(%rbx),%r8 + adcq 24(%rbx),%r9 + movq %r13,%rbp + adcq $0,%r11 + + subq $-1,%r12 + movq %r8,%rcx + sbbq %r14,%r13 + sbbq $0,%r8 + movq %r9,%r10 + sbbq %r15,%r9 + sbbq $0,%r11 + + cmovcq %rax,%r12 + cmovcq %rbp,%r13 + movq %r12,0(%rdi) + cmovcq %rcx,%r8 + movq %r13,8(%rdi) + cmovcq %r10,%r9 + movq %r8,16(%rdi) + movq %r9,24(%rdi) + + .byte 0xf3,0xc3 +.cfi_endproc +.size __ecp_nistz256_add_toq,.-__ecp_nistz256_add_toq + +.type __ecp_nistz256_sub_fromq,@function +.align 32 +__ecp_nistz256_sub_fromq: +.cfi_startproc + subq 0(%rbx),%r12 + sbbq 8(%rbx),%r13 + movq %r12,%rax + sbbq 16(%rbx),%r8 + sbbq 24(%rbx),%r9 + movq %r13,%rbp + sbbq %r11,%r11 + + addq $-1,%r12 + movq %r8,%rcx + adcq %r14,%r13 + adcq $0,%r8 + movq %r9,%r10 + adcq %r15,%r9 + testq %r11,%r11 + + cmovzq %rax,%r12 + cmovzq %rbp,%r13 + movq %r12,0(%rdi) + cmovzq %rcx,%r8 + movq %r13,8(%rdi) + cmovzq %r10,%r9 + movq %r8,16(%rdi) + movq %r9,24(%rdi) + + .byte 0xf3,0xc3 +.cfi_endproc +.size __ecp_nistz256_sub_fromq,.-__ecp_nistz256_sub_fromq + +.type __ecp_nistz256_subq,@function +.align 32 +__ecp_nistz256_subq: +.cfi_startproc + subq %r12,%rax + sbbq %r13,%rbp + movq %rax,%r12 + sbbq %r8,%rcx + sbbq %r9,%r10 + movq %rbp,%r13 + sbbq %r11,%r11 + + addq $-1,%rax + movq %rcx,%r8 + adcq %r14,%rbp + adcq $0,%rcx + movq %r10,%r9 + adcq %r15,%r10 + testq %r11,%r11 + + cmovnzq %rax,%r12 + cmovnzq %rbp,%r13 + cmovnzq %rcx,%r8 + cmovnzq %r10,%r9 + + .byte 0xf3,0xc3 +.cfi_endproc +.size __ecp_nistz256_subq,.-__ecp_nistz256_subq + +.type __ecp_nistz256_mul_by_2q,@function +.align 32 +__ecp_nistz256_mul_by_2q: +.cfi_startproc + xorq %r11,%r11 + addq %r12,%r12 + adcq %r13,%r13 + movq %r12,%rax + adcq %r8,%r8 + adcq %r9,%r9 + movq %r13,%rbp + adcq $0,%r11 + + subq $-1,%r12 + movq %r8,%rcx + sbbq %r14,%r13 + sbbq $0,%r8 + movq %r9,%r10 + sbbq %r15,%r9 + sbbq $0,%r11 + + cmovcq %rax,%r12 + cmovcq %rbp,%r13 + movq %r12,0(%rdi) + cmovcq %rcx,%r8 + movq %r13,8(%rdi) + cmovcq %r10,%r9 + movq %r8,16(%rdi) + movq %r9,24(%rdi) + + .byte 0xf3,0xc3 +.cfi_endproc +.size __ecp_nistz256_mul_by_2q,.-__ecp_nistz256_mul_by_2q +.globl ecp_nistz256_point_double +.type ecp_nistz256_point_double,@function +.align 32 +ecp_nistz256_point_double: +.cfi_startproc + movl $0x80100,%ecx + andl OPENSSL_ia32cap_P+8(%rip),%ecx + cmpl $0x80100,%ecx + je .Lpoint_doublex + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-16 + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 + subq $160+8,%rsp +.cfi_adjust_cfa_offset 32*5+8 +.Lpoint_doubleq_body: + +.Lpoint_double_shortcutq: + movdqu 0(%rsi),%xmm0 + movq %rsi,%rbx + movdqu 16(%rsi),%xmm1 + movq 32+0(%rsi),%r12 + movq 32+8(%rsi),%r13 + movq 32+16(%rsi),%r8 + movq 32+24(%rsi),%r9 + movq .Lpoly+8(%rip),%r14 + movq .Lpoly+24(%rip),%r15 + movdqa %xmm0,96(%rsp) + movdqa %xmm1,96+16(%rsp) + leaq 32(%rdi),%r10 + leaq 64(%rdi),%r11 +.byte 102,72,15,110,199 +.byte 102,73,15,110,202 +.byte 102,73,15,110,211 + + leaq 0(%rsp),%rdi + call __ecp_nistz256_mul_by_2q + + movq 64+0(%rsi),%rax + movq 64+8(%rsi),%r14 + movq 64+16(%rsi),%r15 + movq 64+24(%rsi),%r8 + leaq 64-0(%rsi),%rsi + leaq 64(%rsp),%rdi + call __ecp_nistz256_sqr_montq + + movq 0+0(%rsp),%rax + movq 8+0(%rsp),%r14 + leaq 0+0(%rsp),%rsi + movq 16+0(%rsp),%r15 + movq 24+0(%rsp),%r8 + leaq 0(%rsp),%rdi + call __ecp_nistz256_sqr_montq + + movq 32(%rbx),%rax + movq 64+0(%rbx),%r9 + movq 64+8(%rbx),%r10 + movq 64+16(%rbx),%r11 + movq 64+24(%rbx),%r12 + leaq 64-0(%rbx),%rsi + leaq 32(%rbx),%rbx +.byte 102,72,15,126,215 + call __ecp_nistz256_mul_montq + call __ecp_nistz256_mul_by_2q + + movq 96+0(%rsp),%r12 + movq 96+8(%rsp),%r13 + leaq 64(%rsp),%rbx + movq 96+16(%rsp),%r8 + movq 96+24(%rsp),%r9 + leaq 32(%rsp),%rdi + call __ecp_nistz256_add_toq + + movq 96+0(%rsp),%r12 + movq 96+8(%rsp),%r13 + leaq 64(%rsp),%rbx + movq 96+16(%rsp),%r8 + movq 96+24(%rsp),%r9 + leaq 64(%rsp),%rdi + call __ecp_nistz256_sub_fromq + + movq 0+0(%rsp),%rax + movq 8+0(%rsp),%r14 + leaq 0+0(%rsp),%rsi + movq 16+0(%rsp),%r15 + movq 24+0(%rsp),%r8 +.byte 102,72,15,126,207 + call __ecp_nistz256_sqr_montq + xorq %r9,%r9 + movq %r12,%rax + addq $-1,%r12 + movq %r13,%r10 + adcq %rsi,%r13 + movq %r14,%rcx + adcq $0,%r14 + movq %r15,%r8 + adcq %rbp,%r15 + adcq $0,%r9 + xorq %rsi,%rsi + testq $1,%rax + + cmovzq %rax,%r12 + cmovzq %r10,%r13 + cmovzq %rcx,%r14 + cmovzq %r8,%r15 + cmovzq %rsi,%r9 + + movq %r13,%rax + shrq $1,%r12 + shlq $63,%rax + movq %r14,%r10 + shrq $1,%r13 + orq %rax,%r12 + shlq $63,%r10 + movq %r15,%rcx + shrq $1,%r14 + orq %r10,%r13 + shlq $63,%rcx + movq %r12,0(%rdi) + shrq $1,%r15 + movq %r13,8(%rdi) + shlq $63,%r9 + orq %rcx,%r14 + orq %r9,%r15 + movq %r14,16(%rdi) + movq %r15,24(%rdi) + movq 64(%rsp),%rax + leaq 64(%rsp),%rbx + movq 0+32(%rsp),%r9 + movq 8+32(%rsp),%r10 + leaq 0+32(%rsp),%rsi + movq 16+32(%rsp),%r11 + movq 24+32(%rsp),%r12 + leaq 32(%rsp),%rdi + call __ecp_nistz256_mul_montq + + leaq 128(%rsp),%rdi + call __ecp_nistz256_mul_by_2q + + leaq 32(%rsp),%rbx + leaq 32(%rsp),%rdi + call __ecp_nistz256_add_toq + + movq 96(%rsp),%rax + leaq 96(%rsp),%rbx + movq 0+0(%rsp),%r9 + movq 8+0(%rsp),%r10 + leaq 0+0(%rsp),%rsi + movq 16+0(%rsp),%r11 + movq 24+0(%rsp),%r12 + leaq 0(%rsp),%rdi + call __ecp_nistz256_mul_montq + + leaq 128(%rsp),%rdi + call __ecp_nistz256_mul_by_2q + + movq 0+32(%rsp),%rax + movq 8+32(%rsp),%r14 + leaq 0+32(%rsp),%rsi + movq 16+32(%rsp),%r15 + movq 24+32(%rsp),%r8 +.byte 102,72,15,126,199 + call __ecp_nistz256_sqr_montq + + leaq 128(%rsp),%rbx + movq %r14,%r8 + movq %r15,%r9 + movq %rsi,%r14 + movq %rbp,%r15 + call __ecp_nistz256_sub_fromq + + movq 0+0(%rsp),%rax + movq 0+8(%rsp),%rbp + movq 0+16(%rsp),%rcx + movq 0+24(%rsp),%r10 + leaq 0(%rsp),%rdi + call __ecp_nistz256_subq + + movq 32(%rsp),%rax + leaq 32(%rsp),%rbx + movq %r12,%r14 + xorl %ecx,%ecx + movq %r12,0+0(%rsp) + movq %r13,%r10 + movq %r13,0+8(%rsp) + cmovzq %r8,%r11 + movq %r8,0+16(%rsp) + leaq 0-0(%rsp),%rsi + cmovzq %r9,%r12 + movq %r9,0+24(%rsp) + movq %r14,%r9 + leaq 0(%rsp),%rdi + call __ecp_nistz256_mul_montq + +.byte 102,72,15,126,203 +.byte 102,72,15,126,207 + call __ecp_nistz256_sub_fromq + + leaq 160+56(%rsp),%rsi +.cfi_def_cfa %rsi,8 + movq -48(%rsi),%r15 +.cfi_restore %r15 + movq -40(%rsi),%r14 +.cfi_restore %r14 + movq -32(%rsi),%r13 +.cfi_restore %r13 + movq -24(%rsi),%r12 +.cfi_restore %r12 + movq -16(%rsi),%rbx +.cfi_restore %rbx + movq -8(%rsi),%rbp +.cfi_restore %rbp + leaq (%rsi),%rsp +.cfi_def_cfa_register %rsp +.Lpoint_doubleq_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size ecp_nistz256_point_double,.-ecp_nistz256_point_double +.globl ecp_nistz256_point_add +.type ecp_nistz256_point_add,@function +.align 32 +ecp_nistz256_point_add: +.cfi_startproc + movl $0x80100,%ecx + andl OPENSSL_ia32cap_P+8(%rip),%ecx + cmpl $0x80100,%ecx + je .Lpoint_addx + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-16 + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 + subq $576+8,%rsp +.cfi_adjust_cfa_offset 32*18+8 +.Lpoint_addq_body: + + movdqu 0(%rsi),%xmm0 + movdqu 16(%rsi),%xmm1 + movdqu 32(%rsi),%xmm2 + movdqu 48(%rsi),%xmm3 + movdqu 64(%rsi),%xmm4 + movdqu 80(%rsi),%xmm5 + movq %rsi,%rbx + movq %rdx,%rsi + movdqa %xmm0,384(%rsp) + movdqa %xmm1,384+16(%rsp) + movdqa %xmm2,416(%rsp) + movdqa %xmm3,416+16(%rsp) + movdqa %xmm4,448(%rsp) + movdqa %xmm5,448+16(%rsp) + por %xmm4,%xmm5 + + movdqu 0(%rsi),%xmm0 + pshufd $0xb1,%xmm5,%xmm3 + movdqu 16(%rsi),%xmm1 + movdqu 32(%rsi),%xmm2 + por %xmm3,%xmm5 + movdqu 48(%rsi),%xmm3 + movq 64+0(%rsi),%rax + movq 64+8(%rsi),%r14 + movq 64+16(%rsi),%r15 + movq 64+24(%rsi),%r8 + movdqa %xmm0,480(%rsp) + pshufd $0x1e,%xmm5,%xmm4 + movdqa %xmm1,480+16(%rsp) + movdqu 64(%rsi),%xmm0 + movdqu 80(%rsi),%xmm1 + movdqa %xmm2,512(%rsp) + movdqa %xmm3,512+16(%rsp) + por %xmm4,%xmm5 + pxor %xmm4,%xmm4 + por %xmm0,%xmm1 +.byte 102,72,15,110,199 + + leaq 64-0(%rsi),%rsi + movq %rax,544+0(%rsp) + movq %r14,544+8(%rsp) + movq %r15,544+16(%rsp) + movq %r8,544+24(%rsp) + leaq 96(%rsp),%rdi + call __ecp_nistz256_sqr_montq + + pcmpeqd %xmm4,%xmm5 + pshufd $0xb1,%xmm1,%xmm4 + por %xmm1,%xmm4 + pshufd $0,%xmm5,%xmm5 + pshufd $0x1e,%xmm4,%xmm3 + por %xmm3,%xmm4 + pxor %xmm3,%xmm3 + pcmpeqd %xmm3,%xmm4 + pshufd $0,%xmm4,%xmm4 + movq 64+0(%rbx),%rax + movq 64+8(%rbx),%r14 + movq 64+16(%rbx),%r15 + movq 64+24(%rbx),%r8 +.byte 102,72,15,110,203 + + leaq 64-0(%rbx),%rsi + leaq 32(%rsp),%rdi + call __ecp_nistz256_sqr_montq + + movq 544(%rsp),%rax + leaq 544(%rsp),%rbx + movq 0+96(%rsp),%r9 + movq 8+96(%rsp),%r10 + leaq 0+96(%rsp),%rsi + movq 16+96(%rsp),%r11 + movq 24+96(%rsp),%r12 + leaq 224(%rsp),%rdi + call __ecp_nistz256_mul_montq + + movq 448(%rsp),%rax + leaq 448(%rsp),%rbx + movq 0+32(%rsp),%r9 + movq 8+32(%rsp),%r10 + leaq 0+32(%rsp),%rsi + movq 16+32(%rsp),%r11 + movq 24+32(%rsp),%r12 + leaq 256(%rsp),%rdi + call __ecp_nistz256_mul_montq + + movq 416(%rsp),%rax + leaq 416(%rsp),%rbx + movq 0+224(%rsp),%r9 + movq 8+224(%rsp),%r10 + leaq 0+224(%rsp),%rsi + movq 16+224(%rsp),%r11 + movq 24+224(%rsp),%r12 + leaq 224(%rsp),%rdi + call __ecp_nistz256_mul_montq + + movq 512(%rsp),%rax + leaq 512(%rsp),%rbx + movq 0+256(%rsp),%r9 + movq 8+256(%rsp),%r10 + leaq 0+256(%rsp),%rsi + movq 16+256(%rsp),%r11 + movq 24+256(%rsp),%r12 + leaq 256(%rsp),%rdi + call __ecp_nistz256_mul_montq + + leaq 224(%rsp),%rbx + leaq 64(%rsp),%rdi + call __ecp_nistz256_sub_fromq + + orq %r13,%r12 + movdqa %xmm4,%xmm2 + orq %r8,%r12 + orq %r9,%r12 + por %xmm5,%xmm2 +.byte 102,73,15,110,220 + + movq 384(%rsp),%rax + leaq 384(%rsp),%rbx + movq 0+96(%rsp),%r9 + movq 8+96(%rsp),%r10 + leaq 0+96(%rsp),%rsi + movq 16+96(%rsp),%r11 + movq 24+96(%rsp),%r12 + leaq 160(%rsp),%rdi + call __ecp_nistz256_mul_montq + + movq 480(%rsp),%rax + leaq 480(%rsp),%rbx + movq 0+32(%rsp),%r9 + movq 8+32(%rsp),%r10 + leaq 0+32(%rsp),%rsi + movq 16+32(%rsp),%r11 + movq 24+32(%rsp),%r12 + leaq 192(%rsp),%rdi + call __ecp_nistz256_mul_montq + + leaq 160(%rsp),%rbx + leaq 0(%rsp),%rdi + call __ecp_nistz256_sub_fromq + + orq %r13,%r12 + orq %r8,%r12 + orq %r9,%r12 + +.byte 102,73,15,126,208 +.byte 102,73,15,126,217 + + orq %r8,%r12 + orq %r9,%r12 + + +.byte 0x3e + jnz .Ladd_proceedq + +.Ladd_doubleq: +.byte 102,72,15,126,206 +.byte 102,72,15,126,199 + addq $416,%rsp +.cfi_adjust_cfa_offset -416 + jmp .Lpoint_double_shortcutq +.cfi_adjust_cfa_offset 416 + +.align 32 +.Ladd_proceedq: + movq 0+64(%rsp),%rax + movq 8+64(%rsp),%r14 + leaq 0+64(%rsp),%rsi + movq 16+64(%rsp),%r15 + movq 24+64(%rsp),%r8 + leaq 96(%rsp),%rdi + call __ecp_nistz256_sqr_montq + + movq 448(%rsp),%rax + leaq 448(%rsp),%rbx + movq 0+0(%rsp),%r9 + movq 8+0(%rsp),%r10 + leaq 0+0(%rsp),%rsi + movq 16+0(%rsp),%r11 + movq 24+0(%rsp),%r12 + leaq 352(%rsp),%rdi + call __ecp_nistz256_mul_montq + + movq 0+0(%rsp),%rax + movq 8+0(%rsp),%r14 + leaq 0+0(%rsp),%rsi + movq 16+0(%rsp),%r15 + movq 24+0(%rsp),%r8 + leaq 32(%rsp),%rdi + call __ecp_nistz256_sqr_montq + + movq 544(%rsp),%rax + leaq 544(%rsp),%rbx + movq 0+352(%rsp),%r9 + movq 8+352(%rsp),%r10 + leaq 0+352(%rsp),%rsi + movq 16+352(%rsp),%r11 + movq 24+352(%rsp),%r12 + leaq 352(%rsp),%rdi + call __ecp_nistz256_mul_montq + + movq 0(%rsp),%rax + leaq 0(%rsp),%rbx + movq 0+32(%rsp),%r9 + movq 8+32(%rsp),%r10 + leaq 0+32(%rsp),%rsi + movq 16+32(%rsp),%r11 + movq 24+32(%rsp),%r12 + leaq 128(%rsp),%rdi + call __ecp_nistz256_mul_montq + + movq 160(%rsp),%rax + leaq 160(%rsp),%rbx + movq 0+32(%rsp),%r9 + movq 8+32(%rsp),%r10 + leaq 0+32(%rsp),%rsi + movq 16+32(%rsp),%r11 + movq 24+32(%rsp),%r12 + leaq 192(%rsp),%rdi + call __ecp_nistz256_mul_montq + + + + + xorq %r11,%r11 + addq %r12,%r12 + leaq 96(%rsp),%rsi + adcq %r13,%r13 + movq %r12,%rax + adcq %r8,%r8 + adcq %r9,%r9 + movq %r13,%rbp + adcq $0,%r11 + + subq $-1,%r12 + movq %r8,%rcx + sbbq %r14,%r13 + sbbq $0,%r8 + movq %r9,%r10 + sbbq %r15,%r9 + sbbq $0,%r11 + + cmovcq %rax,%r12 + movq 0(%rsi),%rax + cmovcq %rbp,%r13 + movq 8(%rsi),%rbp + cmovcq %rcx,%r8 + movq 16(%rsi),%rcx + cmovcq %r10,%r9 + movq 24(%rsi),%r10 + + call __ecp_nistz256_subq + + leaq 128(%rsp),%rbx + leaq 288(%rsp),%rdi + call __ecp_nistz256_sub_fromq + + movq 192+0(%rsp),%rax + movq 192+8(%rsp),%rbp + movq 192+16(%rsp),%rcx + movq 192+24(%rsp),%r10 + leaq 320(%rsp),%rdi + + call __ecp_nistz256_subq + + movq %r12,0(%rdi) + movq %r13,8(%rdi) + movq %r8,16(%rdi) + movq %r9,24(%rdi) + movq 128(%rsp),%rax + leaq 128(%rsp),%rbx + movq 0+224(%rsp),%r9 + movq 8+224(%rsp),%r10 + leaq 0+224(%rsp),%rsi + movq 16+224(%rsp),%r11 + movq 24+224(%rsp),%r12 + leaq 256(%rsp),%rdi + call __ecp_nistz256_mul_montq + + movq 320(%rsp),%rax + leaq 320(%rsp),%rbx + movq 0+64(%rsp),%r9 + movq 8+64(%rsp),%r10 + leaq 0+64(%rsp),%rsi + movq 16+64(%rsp),%r11 + movq 24+64(%rsp),%r12 + leaq 320(%rsp),%rdi + call __ecp_nistz256_mul_montq + + leaq 256(%rsp),%rbx + leaq 320(%rsp),%rdi + call __ecp_nistz256_sub_fromq + +.byte 102,72,15,126,199 + + movdqa %xmm5,%xmm0 + movdqa %xmm5,%xmm1 + pandn 352(%rsp),%xmm0 + movdqa %xmm5,%xmm2 + pandn 352+16(%rsp),%xmm1 + movdqa %xmm5,%xmm3 + pand 544(%rsp),%xmm2 + pand 544+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + + movdqa %xmm4,%xmm0 + movdqa %xmm4,%xmm1 + pandn %xmm2,%xmm0 + movdqa %xmm4,%xmm2 + pandn %xmm3,%xmm1 + movdqa %xmm4,%xmm3 + pand 448(%rsp),%xmm2 + pand 448+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + movdqu %xmm2,64(%rdi) + movdqu %xmm3,80(%rdi) + + movdqa %xmm5,%xmm0 + movdqa %xmm5,%xmm1 + pandn 288(%rsp),%xmm0 + movdqa %xmm5,%xmm2 + pandn 288+16(%rsp),%xmm1 + movdqa %xmm5,%xmm3 + pand 480(%rsp),%xmm2 + pand 480+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + + movdqa %xmm4,%xmm0 + movdqa %xmm4,%xmm1 + pandn %xmm2,%xmm0 + movdqa %xmm4,%xmm2 + pandn %xmm3,%xmm1 + movdqa %xmm4,%xmm3 + pand 384(%rsp),%xmm2 + pand 384+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + movdqu %xmm2,0(%rdi) + movdqu %xmm3,16(%rdi) + + movdqa %xmm5,%xmm0 + movdqa %xmm5,%xmm1 + pandn 320(%rsp),%xmm0 + movdqa %xmm5,%xmm2 + pandn 320+16(%rsp),%xmm1 + movdqa %xmm5,%xmm3 + pand 512(%rsp),%xmm2 + pand 512+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + + movdqa %xmm4,%xmm0 + movdqa %xmm4,%xmm1 + pandn %xmm2,%xmm0 + movdqa %xmm4,%xmm2 + pandn %xmm3,%xmm1 + movdqa %xmm4,%xmm3 + pand 416(%rsp),%xmm2 + pand 416+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + movdqu %xmm2,32(%rdi) + movdqu %xmm3,48(%rdi) + +.Ladd_doneq: + leaq 576+56(%rsp),%rsi +.cfi_def_cfa %rsi,8 + movq -48(%rsi),%r15 +.cfi_restore %r15 + movq -40(%rsi),%r14 +.cfi_restore %r14 + movq -32(%rsi),%r13 +.cfi_restore %r13 + movq -24(%rsi),%r12 +.cfi_restore %r12 + movq -16(%rsi),%rbx +.cfi_restore %rbx + movq -8(%rsi),%rbp +.cfi_restore %rbp + leaq (%rsi),%rsp +.cfi_def_cfa_register %rsp +.Lpoint_addq_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size ecp_nistz256_point_add,.-ecp_nistz256_point_add +.globl ecp_nistz256_point_add_affine +.type ecp_nistz256_point_add_affine,@function +.align 32 +ecp_nistz256_point_add_affine: +.cfi_startproc + movl $0x80100,%ecx + andl OPENSSL_ia32cap_P+8(%rip),%ecx + cmpl $0x80100,%ecx + je .Lpoint_add_affinex + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-16 + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 + subq $480+8,%rsp +.cfi_adjust_cfa_offset 32*15+8 +.Ladd_affineq_body: + + movdqu 0(%rsi),%xmm0 + movq %rdx,%rbx + movdqu 16(%rsi),%xmm1 + movdqu 32(%rsi),%xmm2 + movdqu 48(%rsi),%xmm3 + movdqu 64(%rsi),%xmm4 + movdqu 80(%rsi),%xmm5 + movq 64+0(%rsi),%rax + movq 64+8(%rsi),%r14 + movq 64+16(%rsi),%r15 + movq 64+24(%rsi),%r8 + movdqa %xmm0,320(%rsp) + movdqa %xmm1,320+16(%rsp) + movdqa %xmm2,352(%rsp) + movdqa %xmm3,352+16(%rsp) + movdqa %xmm4,384(%rsp) + movdqa %xmm5,384+16(%rsp) + por %xmm4,%xmm5 + + movdqu 0(%rbx),%xmm0 + pshufd $0xb1,%xmm5,%xmm3 + movdqu 16(%rbx),%xmm1 + movdqu 32(%rbx),%xmm2 + por %xmm3,%xmm5 + movdqu 48(%rbx),%xmm3 + movdqa %xmm0,416(%rsp) + pshufd $0x1e,%xmm5,%xmm4 + movdqa %xmm1,416+16(%rsp) + por %xmm0,%xmm1 +.byte 102,72,15,110,199 + movdqa %xmm2,448(%rsp) + movdqa %xmm3,448+16(%rsp) + por %xmm2,%xmm3 + por %xmm4,%xmm5 + pxor %xmm4,%xmm4 + por %xmm1,%xmm3 + + leaq 64-0(%rsi),%rsi + leaq 32(%rsp),%rdi + call __ecp_nistz256_sqr_montq + + pcmpeqd %xmm4,%xmm5 + pshufd $0xb1,%xmm3,%xmm4 + movq 0(%rbx),%rax + + movq %r12,%r9 + por %xmm3,%xmm4 + pshufd $0,%xmm5,%xmm5 + pshufd $0x1e,%xmm4,%xmm3 + movq %r13,%r10 + por %xmm3,%xmm4 + pxor %xmm3,%xmm3 + movq %r14,%r11 + pcmpeqd %xmm3,%xmm4 + pshufd $0,%xmm4,%xmm4 + + leaq 32-0(%rsp),%rsi + movq %r15,%r12 + leaq 0(%rsp),%rdi + call __ecp_nistz256_mul_montq + + leaq 320(%rsp),%rbx + leaq 64(%rsp),%rdi + call __ecp_nistz256_sub_fromq + + movq 384(%rsp),%rax + leaq 384(%rsp),%rbx + movq 0+32(%rsp),%r9 + movq 8+32(%rsp),%r10 + leaq 0+32(%rsp),%rsi + movq 16+32(%rsp),%r11 + movq 24+32(%rsp),%r12 + leaq 32(%rsp),%rdi + call __ecp_nistz256_mul_montq + + movq 384(%rsp),%rax + leaq 384(%rsp),%rbx + movq 0+64(%rsp),%r9 + movq 8+64(%rsp),%r10 + leaq 0+64(%rsp),%rsi + movq 16+64(%rsp),%r11 + movq 24+64(%rsp),%r12 + leaq 288(%rsp),%rdi + call __ecp_nistz256_mul_montq + + movq 448(%rsp),%rax + leaq 448(%rsp),%rbx + movq 0+32(%rsp),%r9 + movq 8+32(%rsp),%r10 + leaq 0+32(%rsp),%rsi + movq 16+32(%rsp),%r11 + movq 24+32(%rsp),%r12 + leaq 32(%rsp),%rdi + call __ecp_nistz256_mul_montq + + leaq 352(%rsp),%rbx + leaq 96(%rsp),%rdi + call __ecp_nistz256_sub_fromq + + movq 0+64(%rsp),%rax + movq 8+64(%rsp),%r14 + leaq 0+64(%rsp),%rsi + movq 16+64(%rsp),%r15 + movq 24+64(%rsp),%r8 + leaq 128(%rsp),%rdi + call __ecp_nistz256_sqr_montq + + movq 0+96(%rsp),%rax + movq 8+96(%rsp),%r14 + leaq 0+96(%rsp),%rsi + movq 16+96(%rsp),%r15 + movq 24+96(%rsp),%r8 + leaq 192(%rsp),%rdi + call __ecp_nistz256_sqr_montq + + movq 128(%rsp),%rax + leaq 128(%rsp),%rbx + movq 0+64(%rsp),%r9 + movq 8+64(%rsp),%r10 + leaq 0+64(%rsp),%rsi + movq 16+64(%rsp),%r11 + movq 24+64(%rsp),%r12 + leaq 160(%rsp),%rdi + call __ecp_nistz256_mul_montq + + movq 320(%rsp),%rax + leaq 320(%rsp),%rbx + movq 0+128(%rsp),%r9 + movq 8+128(%rsp),%r10 + leaq 0+128(%rsp),%rsi + movq 16+128(%rsp),%r11 + movq 24+128(%rsp),%r12 + leaq 0(%rsp),%rdi + call __ecp_nistz256_mul_montq + + + + + xorq %r11,%r11 + addq %r12,%r12 + leaq 192(%rsp),%rsi + adcq %r13,%r13 + movq %r12,%rax + adcq %r8,%r8 + adcq %r9,%r9 + movq %r13,%rbp + adcq $0,%r11 + + subq $-1,%r12 + movq %r8,%rcx + sbbq %r14,%r13 + sbbq $0,%r8 + movq %r9,%r10 + sbbq %r15,%r9 + sbbq $0,%r11 + + cmovcq %rax,%r12 + movq 0(%rsi),%rax + cmovcq %rbp,%r13 + movq 8(%rsi),%rbp + cmovcq %rcx,%r8 + movq 16(%rsi),%rcx + cmovcq %r10,%r9 + movq 24(%rsi),%r10 + + call __ecp_nistz256_subq + + leaq 160(%rsp),%rbx + leaq 224(%rsp),%rdi + call __ecp_nistz256_sub_fromq + + movq 0+0(%rsp),%rax + movq 0+8(%rsp),%rbp + movq 0+16(%rsp),%rcx + movq 0+24(%rsp),%r10 + leaq 64(%rsp),%rdi + + call __ecp_nistz256_subq + + movq %r12,0(%rdi) + movq %r13,8(%rdi) + movq %r8,16(%rdi) + movq %r9,24(%rdi) + movq 352(%rsp),%rax + leaq 352(%rsp),%rbx + movq 0+160(%rsp),%r9 + movq 8+160(%rsp),%r10 + leaq 0+160(%rsp),%rsi + movq 16+160(%rsp),%r11 + movq 24+160(%rsp),%r12 + leaq 32(%rsp),%rdi + call __ecp_nistz256_mul_montq + + movq 96(%rsp),%rax + leaq 96(%rsp),%rbx + movq 0+64(%rsp),%r9 + movq 8+64(%rsp),%r10 + leaq 0+64(%rsp),%rsi + movq 16+64(%rsp),%r11 + movq 24+64(%rsp),%r12 + leaq 64(%rsp),%rdi + call __ecp_nistz256_mul_montq + + leaq 32(%rsp),%rbx + leaq 256(%rsp),%rdi + call __ecp_nistz256_sub_fromq + +.byte 102,72,15,126,199 + + movdqa %xmm5,%xmm0 + movdqa %xmm5,%xmm1 + pandn 288(%rsp),%xmm0 + movdqa %xmm5,%xmm2 + pandn 288+16(%rsp),%xmm1 + movdqa %xmm5,%xmm3 + pand .LONE_mont(%rip),%xmm2 + pand .LONE_mont+16(%rip),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + + movdqa %xmm4,%xmm0 + movdqa %xmm4,%xmm1 + pandn %xmm2,%xmm0 + movdqa %xmm4,%xmm2 + pandn %xmm3,%xmm1 + movdqa %xmm4,%xmm3 + pand 384(%rsp),%xmm2 + pand 384+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + movdqu %xmm2,64(%rdi) + movdqu %xmm3,80(%rdi) + + movdqa %xmm5,%xmm0 + movdqa %xmm5,%xmm1 + pandn 224(%rsp),%xmm0 + movdqa %xmm5,%xmm2 + pandn 224+16(%rsp),%xmm1 + movdqa %xmm5,%xmm3 + pand 416(%rsp),%xmm2 + pand 416+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + + movdqa %xmm4,%xmm0 + movdqa %xmm4,%xmm1 + pandn %xmm2,%xmm0 + movdqa %xmm4,%xmm2 + pandn %xmm3,%xmm1 + movdqa %xmm4,%xmm3 + pand 320(%rsp),%xmm2 + pand 320+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + movdqu %xmm2,0(%rdi) + movdqu %xmm3,16(%rdi) + + movdqa %xmm5,%xmm0 + movdqa %xmm5,%xmm1 + pandn 256(%rsp),%xmm0 + movdqa %xmm5,%xmm2 + pandn 256+16(%rsp),%xmm1 + movdqa %xmm5,%xmm3 + pand 448(%rsp),%xmm2 + pand 448+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + + movdqa %xmm4,%xmm0 + movdqa %xmm4,%xmm1 + pandn %xmm2,%xmm0 + movdqa %xmm4,%xmm2 + pandn %xmm3,%xmm1 + movdqa %xmm4,%xmm3 + pand 352(%rsp),%xmm2 + pand 352+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + movdqu %xmm2,32(%rdi) + movdqu %xmm3,48(%rdi) + + leaq 480+56(%rsp),%rsi +.cfi_def_cfa %rsi,8 + movq -48(%rsi),%r15 +.cfi_restore %r15 + movq -40(%rsi),%r14 +.cfi_restore %r14 + movq -32(%rsi),%r13 +.cfi_restore %r13 + movq -24(%rsi),%r12 +.cfi_restore %r12 + movq -16(%rsi),%rbx +.cfi_restore %rbx + movq -8(%rsi),%rbp +.cfi_restore %rbp + leaq (%rsi),%rsp +.cfi_def_cfa_register %rsp +.Ladd_affineq_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size ecp_nistz256_point_add_affine,.-ecp_nistz256_point_add_affine +.type __ecp_nistz256_add_tox,@function +.align 32 +__ecp_nistz256_add_tox: +.cfi_startproc + xorq %r11,%r11 + adcq 0(%rbx),%r12 + adcq 8(%rbx),%r13 + movq %r12,%rax + adcq 16(%rbx),%r8 + adcq 24(%rbx),%r9 + movq %r13,%rbp + adcq $0,%r11 + + xorq %r10,%r10 + sbbq $-1,%r12 + movq %r8,%rcx + sbbq %r14,%r13 + sbbq $0,%r8 + movq %r9,%r10 + sbbq %r15,%r9 + sbbq $0,%r11 + + cmovcq %rax,%r12 + cmovcq %rbp,%r13 + movq %r12,0(%rdi) + cmovcq %rcx,%r8 + movq %r13,8(%rdi) + cmovcq %r10,%r9 + movq %r8,16(%rdi) + movq %r9,24(%rdi) + + .byte 0xf3,0xc3 +.cfi_endproc +.size __ecp_nistz256_add_tox,.-__ecp_nistz256_add_tox + +.type __ecp_nistz256_sub_fromx,@function +.align 32 +__ecp_nistz256_sub_fromx: +.cfi_startproc + xorq %r11,%r11 + sbbq 0(%rbx),%r12 + sbbq 8(%rbx),%r13 + movq %r12,%rax + sbbq 16(%rbx),%r8 + sbbq 24(%rbx),%r9 + movq %r13,%rbp + sbbq $0,%r11 + + xorq %r10,%r10 + adcq $-1,%r12 + movq %r8,%rcx + adcq %r14,%r13 + adcq $0,%r8 + movq %r9,%r10 + adcq %r15,%r9 + + btq $0,%r11 + cmovncq %rax,%r12 + cmovncq %rbp,%r13 + movq %r12,0(%rdi) + cmovncq %rcx,%r8 + movq %r13,8(%rdi) + cmovncq %r10,%r9 + movq %r8,16(%rdi) + movq %r9,24(%rdi) + + .byte 0xf3,0xc3 +.cfi_endproc +.size __ecp_nistz256_sub_fromx,.-__ecp_nistz256_sub_fromx + +.type __ecp_nistz256_subx,@function +.align 32 +__ecp_nistz256_subx: +.cfi_startproc + xorq %r11,%r11 + sbbq %r12,%rax + sbbq %r13,%rbp + movq %rax,%r12 + sbbq %r8,%rcx + sbbq %r9,%r10 + movq %rbp,%r13 + sbbq $0,%r11 + + xorq %r9,%r9 + adcq $-1,%rax + movq %rcx,%r8 + adcq %r14,%rbp + adcq $0,%rcx + movq %r10,%r9 + adcq %r15,%r10 + + btq $0,%r11 + cmovcq %rax,%r12 + cmovcq %rbp,%r13 + cmovcq %rcx,%r8 + cmovcq %r10,%r9 + + .byte 0xf3,0xc3 +.cfi_endproc +.size __ecp_nistz256_subx,.-__ecp_nistz256_subx + +.type __ecp_nistz256_mul_by_2x,@function +.align 32 +__ecp_nistz256_mul_by_2x: +.cfi_startproc + xorq %r11,%r11 + adcq %r12,%r12 + adcq %r13,%r13 + movq %r12,%rax + adcq %r8,%r8 + adcq %r9,%r9 + movq %r13,%rbp + adcq $0,%r11 + + xorq %r10,%r10 + sbbq $-1,%r12 + movq %r8,%rcx + sbbq %r14,%r13 + sbbq $0,%r8 + movq %r9,%r10 + sbbq %r15,%r9 + sbbq $0,%r11 + + cmovcq %rax,%r12 + cmovcq %rbp,%r13 + movq %r12,0(%rdi) + cmovcq %rcx,%r8 + movq %r13,8(%rdi) + cmovcq %r10,%r9 + movq %r8,16(%rdi) + movq %r9,24(%rdi) + + .byte 0xf3,0xc3 +.cfi_endproc +.size __ecp_nistz256_mul_by_2x,.-__ecp_nistz256_mul_by_2x +.type ecp_nistz256_point_doublex,@function +.align 32 +ecp_nistz256_point_doublex: +.cfi_startproc +.Lpoint_doublex: + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-16 + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 + subq $160+8,%rsp +.cfi_adjust_cfa_offset 32*5+8 +.Lpoint_doublex_body: + +.Lpoint_double_shortcutx: + movdqu 0(%rsi),%xmm0 + movq %rsi,%rbx + movdqu 16(%rsi),%xmm1 + movq 32+0(%rsi),%r12 + movq 32+8(%rsi),%r13 + movq 32+16(%rsi),%r8 + movq 32+24(%rsi),%r9 + movq .Lpoly+8(%rip),%r14 + movq .Lpoly+24(%rip),%r15 + movdqa %xmm0,96(%rsp) + movdqa %xmm1,96+16(%rsp) + leaq 32(%rdi),%r10 + leaq 64(%rdi),%r11 +.byte 102,72,15,110,199 +.byte 102,73,15,110,202 +.byte 102,73,15,110,211 + + leaq 0(%rsp),%rdi + call __ecp_nistz256_mul_by_2x + + movq 64+0(%rsi),%rdx + movq 64+8(%rsi),%r14 + movq 64+16(%rsi),%r15 + movq 64+24(%rsi),%r8 + leaq 64-128(%rsi),%rsi + leaq 64(%rsp),%rdi + call __ecp_nistz256_sqr_montx + + movq 0+0(%rsp),%rdx + movq 8+0(%rsp),%r14 + leaq -128+0(%rsp),%rsi + movq 16+0(%rsp),%r15 + movq 24+0(%rsp),%r8 + leaq 0(%rsp),%rdi + call __ecp_nistz256_sqr_montx + + movq 32(%rbx),%rdx + movq 64+0(%rbx),%r9 + movq 64+8(%rbx),%r10 + movq 64+16(%rbx),%r11 + movq 64+24(%rbx),%r12 + leaq 64-128(%rbx),%rsi + leaq 32(%rbx),%rbx +.byte 102,72,15,126,215 + call __ecp_nistz256_mul_montx + call __ecp_nistz256_mul_by_2x + + movq 96+0(%rsp),%r12 + movq 96+8(%rsp),%r13 + leaq 64(%rsp),%rbx + movq 96+16(%rsp),%r8 + movq 96+24(%rsp),%r9 + leaq 32(%rsp),%rdi + call __ecp_nistz256_add_tox + + movq 96+0(%rsp),%r12 + movq 96+8(%rsp),%r13 + leaq 64(%rsp),%rbx + movq 96+16(%rsp),%r8 + movq 96+24(%rsp),%r9 + leaq 64(%rsp),%rdi + call __ecp_nistz256_sub_fromx + + movq 0+0(%rsp),%rdx + movq 8+0(%rsp),%r14 + leaq -128+0(%rsp),%rsi + movq 16+0(%rsp),%r15 + movq 24+0(%rsp),%r8 +.byte 102,72,15,126,207 + call __ecp_nistz256_sqr_montx + xorq %r9,%r9 + movq %r12,%rax + addq $-1,%r12 + movq %r13,%r10 + adcq %rsi,%r13 + movq %r14,%rcx + adcq $0,%r14 + movq %r15,%r8 + adcq %rbp,%r15 + adcq $0,%r9 + xorq %rsi,%rsi + testq $1,%rax + + cmovzq %rax,%r12 + cmovzq %r10,%r13 + cmovzq %rcx,%r14 + cmovzq %r8,%r15 + cmovzq %rsi,%r9 + + movq %r13,%rax + shrq $1,%r12 + shlq $63,%rax + movq %r14,%r10 + shrq $1,%r13 + orq %rax,%r12 + shlq $63,%r10 + movq %r15,%rcx + shrq $1,%r14 + orq %r10,%r13 + shlq $63,%rcx + movq %r12,0(%rdi) + shrq $1,%r15 + movq %r13,8(%rdi) + shlq $63,%r9 + orq %rcx,%r14 + orq %r9,%r15 + movq %r14,16(%rdi) + movq %r15,24(%rdi) + movq 64(%rsp),%rdx + leaq 64(%rsp),%rbx + movq 0+32(%rsp),%r9 + movq 8+32(%rsp),%r10 + leaq -128+32(%rsp),%rsi + movq 16+32(%rsp),%r11 + movq 24+32(%rsp),%r12 + leaq 32(%rsp),%rdi + call __ecp_nistz256_mul_montx + + leaq 128(%rsp),%rdi + call __ecp_nistz256_mul_by_2x + + leaq 32(%rsp),%rbx + leaq 32(%rsp),%rdi + call __ecp_nistz256_add_tox + + movq 96(%rsp),%rdx + leaq 96(%rsp),%rbx + movq 0+0(%rsp),%r9 + movq 8+0(%rsp),%r10 + leaq -128+0(%rsp),%rsi + movq 16+0(%rsp),%r11 + movq 24+0(%rsp),%r12 + leaq 0(%rsp),%rdi + call __ecp_nistz256_mul_montx + + leaq 128(%rsp),%rdi + call __ecp_nistz256_mul_by_2x + + movq 0+32(%rsp),%rdx + movq 8+32(%rsp),%r14 + leaq -128+32(%rsp),%rsi + movq 16+32(%rsp),%r15 + movq 24+32(%rsp),%r8 +.byte 102,72,15,126,199 + call __ecp_nistz256_sqr_montx + + leaq 128(%rsp),%rbx + movq %r14,%r8 + movq %r15,%r9 + movq %rsi,%r14 + movq %rbp,%r15 + call __ecp_nistz256_sub_fromx + + movq 0+0(%rsp),%rax + movq 0+8(%rsp),%rbp + movq 0+16(%rsp),%rcx + movq 0+24(%rsp),%r10 + leaq 0(%rsp),%rdi + call __ecp_nistz256_subx + + movq 32(%rsp),%rdx + leaq 32(%rsp),%rbx + movq %r12,%r14 + xorl %ecx,%ecx + movq %r12,0+0(%rsp) + movq %r13,%r10 + movq %r13,0+8(%rsp) + cmovzq %r8,%r11 + movq %r8,0+16(%rsp) + leaq 0-128(%rsp),%rsi + cmovzq %r9,%r12 + movq %r9,0+24(%rsp) + movq %r14,%r9 + leaq 0(%rsp),%rdi + call __ecp_nistz256_mul_montx + +.byte 102,72,15,126,203 +.byte 102,72,15,126,207 + call __ecp_nistz256_sub_fromx + + leaq 160+56(%rsp),%rsi +.cfi_def_cfa %rsi,8 + movq -48(%rsi),%r15 +.cfi_restore %r15 + movq -40(%rsi),%r14 +.cfi_restore %r14 + movq -32(%rsi),%r13 +.cfi_restore %r13 + movq -24(%rsi),%r12 +.cfi_restore %r12 + movq -16(%rsi),%rbx +.cfi_restore %rbx + movq -8(%rsi),%rbp +.cfi_restore %rbp + leaq (%rsi),%rsp +.cfi_def_cfa_register %rsp +.Lpoint_doublex_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size ecp_nistz256_point_doublex,.-ecp_nistz256_point_doublex +.type ecp_nistz256_point_addx,@function +.align 32 +ecp_nistz256_point_addx: +.cfi_startproc +.Lpoint_addx: + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-16 + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 + subq $576+8,%rsp +.cfi_adjust_cfa_offset 32*18+8 +.Lpoint_addx_body: + + movdqu 0(%rsi),%xmm0 + movdqu 16(%rsi),%xmm1 + movdqu 32(%rsi),%xmm2 + movdqu 48(%rsi),%xmm3 + movdqu 64(%rsi),%xmm4 + movdqu 80(%rsi),%xmm5 + movq %rsi,%rbx + movq %rdx,%rsi + movdqa %xmm0,384(%rsp) + movdqa %xmm1,384+16(%rsp) + movdqa %xmm2,416(%rsp) + movdqa %xmm3,416+16(%rsp) + movdqa %xmm4,448(%rsp) + movdqa %xmm5,448+16(%rsp) + por %xmm4,%xmm5 + + movdqu 0(%rsi),%xmm0 + pshufd $0xb1,%xmm5,%xmm3 + movdqu 16(%rsi),%xmm1 + movdqu 32(%rsi),%xmm2 + por %xmm3,%xmm5 + movdqu 48(%rsi),%xmm3 + movq 64+0(%rsi),%rdx + movq 64+8(%rsi),%r14 + movq 64+16(%rsi),%r15 + movq 64+24(%rsi),%r8 + movdqa %xmm0,480(%rsp) + pshufd $0x1e,%xmm5,%xmm4 + movdqa %xmm1,480+16(%rsp) + movdqu 64(%rsi),%xmm0 + movdqu 80(%rsi),%xmm1 + movdqa %xmm2,512(%rsp) + movdqa %xmm3,512+16(%rsp) + por %xmm4,%xmm5 + pxor %xmm4,%xmm4 + por %xmm0,%xmm1 +.byte 102,72,15,110,199 + + leaq 64-128(%rsi),%rsi + movq %rdx,544+0(%rsp) + movq %r14,544+8(%rsp) + movq %r15,544+16(%rsp) + movq %r8,544+24(%rsp) + leaq 96(%rsp),%rdi + call __ecp_nistz256_sqr_montx + + pcmpeqd %xmm4,%xmm5 + pshufd $0xb1,%xmm1,%xmm4 + por %xmm1,%xmm4 + pshufd $0,%xmm5,%xmm5 + pshufd $0x1e,%xmm4,%xmm3 + por %xmm3,%xmm4 + pxor %xmm3,%xmm3 + pcmpeqd %xmm3,%xmm4 + pshufd $0,%xmm4,%xmm4 + movq 64+0(%rbx),%rdx + movq 64+8(%rbx),%r14 + movq 64+16(%rbx),%r15 + movq 64+24(%rbx),%r8 +.byte 102,72,15,110,203 + + leaq 64-128(%rbx),%rsi + leaq 32(%rsp),%rdi + call __ecp_nistz256_sqr_montx + + movq 544(%rsp),%rdx + leaq 544(%rsp),%rbx + movq 0+96(%rsp),%r9 + movq 8+96(%rsp),%r10 + leaq -128+96(%rsp),%rsi + movq 16+96(%rsp),%r11 + movq 24+96(%rsp),%r12 + leaq 224(%rsp),%rdi + call __ecp_nistz256_mul_montx + + movq 448(%rsp),%rdx + leaq 448(%rsp),%rbx + movq 0+32(%rsp),%r9 + movq 8+32(%rsp),%r10 + leaq -128+32(%rsp),%rsi + movq 16+32(%rsp),%r11 + movq 24+32(%rsp),%r12 + leaq 256(%rsp),%rdi + call __ecp_nistz256_mul_montx + + movq 416(%rsp),%rdx + leaq 416(%rsp),%rbx + movq 0+224(%rsp),%r9 + movq 8+224(%rsp),%r10 + leaq -128+224(%rsp),%rsi + movq 16+224(%rsp),%r11 + movq 24+224(%rsp),%r12 + leaq 224(%rsp),%rdi + call __ecp_nistz256_mul_montx + + movq 512(%rsp),%rdx + leaq 512(%rsp),%rbx + movq 0+256(%rsp),%r9 + movq 8+256(%rsp),%r10 + leaq -128+256(%rsp),%rsi + movq 16+256(%rsp),%r11 + movq 24+256(%rsp),%r12 + leaq 256(%rsp),%rdi + call __ecp_nistz256_mul_montx + + leaq 224(%rsp),%rbx + leaq 64(%rsp),%rdi + call __ecp_nistz256_sub_fromx + + orq %r13,%r12 + movdqa %xmm4,%xmm2 + orq %r8,%r12 + orq %r9,%r12 + por %xmm5,%xmm2 +.byte 102,73,15,110,220 + + movq 384(%rsp),%rdx + leaq 384(%rsp),%rbx + movq 0+96(%rsp),%r9 + movq 8+96(%rsp),%r10 + leaq -128+96(%rsp),%rsi + movq 16+96(%rsp),%r11 + movq 24+96(%rsp),%r12 + leaq 160(%rsp),%rdi + call __ecp_nistz256_mul_montx + + movq 480(%rsp),%rdx + leaq 480(%rsp),%rbx + movq 0+32(%rsp),%r9 + movq 8+32(%rsp),%r10 + leaq -128+32(%rsp),%rsi + movq 16+32(%rsp),%r11 + movq 24+32(%rsp),%r12 + leaq 192(%rsp),%rdi + call __ecp_nistz256_mul_montx + + leaq 160(%rsp),%rbx + leaq 0(%rsp),%rdi + call __ecp_nistz256_sub_fromx + + orq %r13,%r12 + orq %r8,%r12 + orq %r9,%r12 + +.byte 102,73,15,126,208 +.byte 102,73,15,126,217 + + orq %r8,%r12 + orq %r9,%r12 + + +.byte 0x3e + jnz .Ladd_proceedx + +.Ladd_doublex: +.byte 102,72,15,126,206 +.byte 102,72,15,126,199 + addq $416,%rsp +.cfi_adjust_cfa_offset -416 + jmp .Lpoint_double_shortcutx +.cfi_adjust_cfa_offset 416 + +.align 32 +.Ladd_proceedx: + movq 0+64(%rsp),%rdx + movq 8+64(%rsp),%r14 + leaq -128+64(%rsp),%rsi + movq 16+64(%rsp),%r15 + movq 24+64(%rsp),%r8 + leaq 96(%rsp),%rdi + call __ecp_nistz256_sqr_montx + + movq 448(%rsp),%rdx + leaq 448(%rsp),%rbx + movq 0+0(%rsp),%r9 + movq 8+0(%rsp),%r10 + leaq -128+0(%rsp),%rsi + movq 16+0(%rsp),%r11 + movq 24+0(%rsp),%r12 + leaq 352(%rsp),%rdi + call __ecp_nistz256_mul_montx + + movq 0+0(%rsp),%rdx + movq 8+0(%rsp),%r14 + leaq -128+0(%rsp),%rsi + movq 16+0(%rsp),%r15 + movq 24+0(%rsp),%r8 + leaq 32(%rsp),%rdi + call __ecp_nistz256_sqr_montx + + movq 544(%rsp),%rdx + leaq 544(%rsp),%rbx + movq 0+352(%rsp),%r9 + movq 8+352(%rsp),%r10 + leaq -128+352(%rsp),%rsi + movq 16+352(%rsp),%r11 + movq 24+352(%rsp),%r12 + leaq 352(%rsp),%rdi + call __ecp_nistz256_mul_montx + + movq 0(%rsp),%rdx + leaq 0(%rsp),%rbx + movq 0+32(%rsp),%r9 + movq 8+32(%rsp),%r10 + leaq -128+32(%rsp),%rsi + movq 16+32(%rsp),%r11 + movq 24+32(%rsp),%r12 + leaq 128(%rsp),%rdi + call __ecp_nistz256_mul_montx + + movq 160(%rsp),%rdx + leaq 160(%rsp),%rbx + movq 0+32(%rsp),%r9 + movq 8+32(%rsp),%r10 + leaq -128+32(%rsp),%rsi + movq 16+32(%rsp),%r11 + movq 24+32(%rsp),%r12 + leaq 192(%rsp),%rdi + call __ecp_nistz256_mul_montx + + + + + xorq %r11,%r11 + addq %r12,%r12 + leaq 96(%rsp),%rsi + adcq %r13,%r13 + movq %r12,%rax + adcq %r8,%r8 + adcq %r9,%r9 + movq %r13,%rbp + adcq $0,%r11 + + subq $-1,%r12 + movq %r8,%rcx + sbbq %r14,%r13 + sbbq $0,%r8 + movq %r9,%r10 + sbbq %r15,%r9 + sbbq $0,%r11 + + cmovcq %rax,%r12 + movq 0(%rsi),%rax + cmovcq %rbp,%r13 + movq 8(%rsi),%rbp + cmovcq %rcx,%r8 + movq 16(%rsi),%rcx + cmovcq %r10,%r9 + movq 24(%rsi),%r10 + + call __ecp_nistz256_subx + + leaq 128(%rsp),%rbx + leaq 288(%rsp),%rdi + call __ecp_nistz256_sub_fromx + + movq 192+0(%rsp),%rax + movq 192+8(%rsp),%rbp + movq 192+16(%rsp),%rcx + movq 192+24(%rsp),%r10 + leaq 320(%rsp),%rdi + + call __ecp_nistz256_subx + + movq %r12,0(%rdi) + movq %r13,8(%rdi) + movq %r8,16(%rdi) + movq %r9,24(%rdi) + movq 128(%rsp),%rdx + leaq 128(%rsp),%rbx + movq 0+224(%rsp),%r9 + movq 8+224(%rsp),%r10 + leaq -128+224(%rsp),%rsi + movq 16+224(%rsp),%r11 + movq 24+224(%rsp),%r12 + leaq 256(%rsp),%rdi + call __ecp_nistz256_mul_montx + + movq 320(%rsp),%rdx + leaq 320(%rsp),%rbx + movq 0+64(%rsp),%r9 + movq 8+64(%rsp),%r10 + leaq -128+64(%rsp),%rsi + movq 16+64(%rsp),%r11 + movq 24+64(%rsp),%r12 + leaq 320(%rsp),%rdi + call __ecp_nistz256_mul_montx + + leaq 256(%rsp),%rbx + leaq 320(%rsp),%rdi + call __ecp_nistz256_sub_fromx + +.byte 102,72,15,126,199 + + movdqa %xmm5,%xmm0 + movdqa %xmm5,%xmm1 + pandn 352(%rsp),%xmm0 + movdqa %xmm5,%xmm2 + pandn 352+16(%rsp),%xmm1 + movdqa %xmm5,%xmm3 + pand 544(%rsp),%xmm2 + pand 544+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + + movdqa %xmm4,%xmm0 + movdqa %xmm4,%xmm1 + pandn %xmm2,%xmm0 + movdqa %xmm4,%xmm2 + pandn %xmm3,%xmm1 + movdqa %xmm4,%xmm3 + pand 448(%rsp),%xmm2 + pand 448+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + movdqu %xmm2,64(%rdi) + movdqu %xmm3,80(%rdi) + + movdqa %xmm5,%xmm0 + movdqa %xmm5,%xmm1 + pandn 288(%rsp),%xmm0 + movdqa %xmm5,%xmm2 + pandn 288+16(%rsp),%xmm1 + movdqa %xmm5,%xmm3 + pand 480(%rsp),%xmm2 + pand 480+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + + movdqa %xmm4,%xmm0 + movdqa %xmm4,%xmm1 + pandn %xmm2,%xmm0 + movdqa %xmm4,%xmm2 + pandn %xmm3,%xmm1 + movdqa %xmm4,%xmm3 + pand 384(%rsp),%xmm2 + pand 384+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + movdqu %xmm2,0(%rdi) + movdqu %xmm3,16(%rdi) + + movdqa %xmm5,%xmm0 + movdqa %xmm5,%xmm1 + pandn 320(%rsp),%xmm0 + movdqa %xmm5,%xmm2 + pandn 320+16(%rsp),%xmm1 + movdqa %xmm5,%xmm3 + pand 512(%rsp),%xmm2 + pand 512+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + + movdqa %xmm4,%xmm0 + movdqa %xmm4,%xmm1 + pandn %xmm2,%xmm0 + movdqa %xmm4,%xmm2 + pandn %xmm3,%xmm1 + movdqa %xmm4,%xmm3 + pand 416(%rsp),%xmm2 + pand 416+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + movdqu %xmm2,32(%rdi) + movdqu %xmm3,48(%rdi) + +.Ladd_donex: + leaq 576+56(%rsp),%rsi +.cfi_def_cfa %rsi,8 + movq -48(%rsi),%r15 +.cfi_restore %r15 + movq -40(%rsi),%r14 +.cfi_restore %r14 + movq -32(%rsi),%r13 +.cfi_restore %r13 + movq -24(%rsi),%r12 +.cfi_restore %r12 + movq -16(%rsi),%rbx +.cfi_restore %rbx + movq -8(%rsi),%rbp +.cfi_restore %rbp + leaq (%rsi),%rsp +.cfi_def_cfa_register %rsp +.Lpoint_addx_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size ecp_nistz256_point_addx,.-ecp_nistz256_point_addx +.type ecp_nistz256_point_add_affinex,@function +.align 32 +ecp_nistz256_point_add_affinex: +.cfi_startproc +.Lpoint_add_affinex: + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-16 + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 + subq $480+8,%rsp +.cfi_adjust_cfa_offset 32*15+8 +.Ladd_affinex_body: + + movdqu 0(%rsi),%xmm0 + movq %rdx,%rbx + movdqu 16(%rsi),%xmm1 + movdqu 32(%rsi),%xmm2 + movdqu 48(%rsi),%xmm3 + movdqu 64(%rsi),%xmm4 + movdqu 80(%rsi),%xmm5 + movq 64+0(%rsi),%rdx + movq 64+8(%rsi),%r14 + movq 64+16(%rsi),%r15 + movq 64+24(%rsi),%r8 + movdqa %xmm0,320(%rsp) + movdqa %xmm1,320+16(%rsp) + movdqa %xmm2,352(%rsp) + movdqa %xmm3,352+16(%rsp) + movdqa %xmm4,384(%rsp) + movdqa %xmm5,384+16(%rsp) + por %xmm4,%xmm5 + + movdqu 0(%rbx),%xmm0 + pshufd $0xb1,%xmm5,%xmm3 + movdqu 16(%rbx),%xmm1 + movdqu 32(%rbx),%xmm2 + por %xmm3,%xmm5 + movdqu 48(%rbx),%xmm3 + movdqa %xmm0,416(%rsp) + pshufd $0x1e,%xmm5,%xmm4 + movdqa %xmm1,416+16(%rsp) + por %xmm0,%xmm1 +.byte 102,72,15,110,199 + movdqa %xmm2,448(%rsp) + movdqa %xmm3,448+16(%rsp) + por %xmm2,%xmm3 + por %xmm4,%xmm5 + pxor %xmm4,%xmm4 + por %xmm1,%xmm3 + + leaq 64-128(%rsi),%rsi + leaq 32(%rsp),%rdi + call __ecp_nistz256_sqr_montx + + pcmpeqd %xmm4,%xmm5 + pshufd $0xb1,%xmm3,%xmm4 + movq 0(%rbx),%rdx + + movq %r12,%r9 + por %xmm3,%xmm4 + pshufd $0,%xmm5,%xmm5 + pshufd $0x1e,%xmm4,%xmm3 + movq %r13,%r10 + por %xmm3,%xmm4 + pxor %xmm3,%xmm3 + movq %r14,%r11 + pcmpeqd %xmm3,%xmm4 + pshufd $0,%xmm4,%xmm4 + + leaq 32-128(%rsp),%rsi + movq %r15,%r12 + leaq 0(%rsp),%rdi + call __ecp_nistz256_mul_montx + + leaq 320(%rsp),%rbx + leaq 64(%rsp),%rdi + call __ecp_nistz256_sub_fromx + + movq 384(%rsp),%rdx + leaq 384(%rsp),%rbx + movq 0+32(%rsp),%r9 + movq 8+32(%rsp),%r10 + leaq -128+32(%rsp),%rsi + movq 16+32(%rsp),%r11 + movq 24+32(%rsp),%r12 + leaq 32(%rsp),%rdi + call __ecp_nistz256_mul_montx + + movq 384(%rsp),%rdx + leaq 384(%rsp),%rbx + movq 0+64(%rsp),%r9 + movq 8+64(%rsp),%r10 + leaq -128+64(%rsp),%rsi + movq 16+64(%rsp),%r11 + movq 24+64(%rsp),%r12 + leaq 288(%rsp),%rdi + call __ecp_nistz256_mul_montx + + movq 448(%rsp),%rdx + leaq 448(%rsp),%rbx + movq 0+32(%rsp),%r9 + movq 8+32(%rsp),%r10 + leaq -128+32(%rsp),%rsi + movq 16+32(%rsp),%r11 + movq 24+32(%rsp),%r12 + leaq 32(%rsp),%rdi + call __ecp_nistz256_mul_montx + + leaq 352(%rsp),%rbx + leaq 96(%rsp),%rdi + call __ecp_nistz256_sub_fromx + + movq 0+64(%rsp),%rdx + movq 8+64(%rsp),%r14 + leaq -128+64(%rsp),%rsi + movq 16+64(%rsp),%r15 + movq 24+64(%rsp),%r8 + leaq 128(%rsp),%rdi + call __ecp_nistz256_sqr_montx + + movq 0+96(%rsp),%rdx + movq 8+96(%rsp),%r14 + leaq -128+96(%rsp),%rsi + movq 16+96(%rsp),%r15 + movq 24+96(%rsp),%r8 + leaq 192(%rsp),%rdi + call __ecp_nistz256_sqr_montx + + movq 128(%rsp),%rdx + leaq 128(%rsp),%rbx + movq 0+64(%rsp),%r9 + movq 8+64(%rsp),%r10 + leaq -128+64(%rsp),%rsi + movq 16+64(%rsp),%r11 + movq 24+64(%rsp),%r12 + leaq 160(%rsp),%rdi + call __ecp_nistz256_mul_montx + + movq 320(%rsp),%rdx + leaq 320(%rsp),%rbx + movq 0+128(%rsp),%r9 + movq 8+128(%rsp),%r10 + leaq -128+128(%rsp),%rsi + movq 16+128(%rsp),%r11 + movq 24+128(%rsp),%r12 + leaq 0(%rsp),%rdi + call __ecp_nistz256_mul_montx + + + + + xorq %r11,%r11 + addq %r12,%r12 + leaq 192(%rsp),%rsi + adcq %r13,%r13 + movq %r12,%rax + adcq %r8,%r8 + adcq %r9,%r9 + movq %r13,%rbp + adcq $0,%r11 + + subq $-1,%r12 + movq %r8,%rcx + sbbq %r14,%r13 + sbbq $0,%r8 + movq %r9,%r10 + sbbq %r15,%r9 + sbbq $0,%r11 + + cmovcq %rax,%r12 + movq 0(%rsi),%rax + cmovcq %rbp,%r13 + movq 8(%rsi),%rbp + cmovcq %rcx,%r8 + movq 16(%rsi),%rcx + cmovcq %r10,%r9 + movq 24(%rsi),%r10 + + call __ecp_nistz256_subx + + leaq 160(%rsp),%rbx + leaq 224(%rsp),%rdi + call __ecp_nistz256_sub_fromx + + movq 0+0(%rsp),%rax + movq 0+8(%rsp),%rbp + movq 0+16(%rsp),%rcx + movq 0+24(%rsp),%r10 + leaq 64(%rsp),%rdi + + call __ecp_nistz256_subx + + movq %r12,0(%rdi) + movq %r13,8(%rdi) + movq %r8,16(%rdi) + movq %r9,24(%rdi) + movq 352(%rsp),%rdx + leaq 352(%rsp),%rbx + movq 0+160(%rsp),%r9 + movq 8+160(%rsp),%r10 + leaq -128+160(%rsp),%rsi + movq 16+160(%rsp),%r11 + movq 24+160(%rsp),%r12 + leaq 32(%rsp),%rdi + call __ecp_nistz256_mul_montx + + movq 96(%rsp),%rdx + leaq 96(%rsp),%rbx + movq 0+64(%rsp),%r9 + movq 8+64(%rsp),%r10 + leaq -128+64(%rsp),%rsi + movq 16+64(%rsp),%r11 + movq 24+64(%rsp),%r12 + leaq 64(%rsp),%rdi + call __ecp_nistz256_mul_montx + + leaq 32(%rsp),%rbx + leaq 256(%rsp),%rdi + call __ecp_nistz256_sub_fromx + +.byte 102,72,15,126,199 + + movdqa %xmm5,%xmm0 + movdqa %xmm5,%xmm1 + pandn 288(%rsp),%xmm0 + movdqa %xmm5,%xmm2 + pandn 288+16(%rsp),%xmm1 + movdqa %xmm5,%xmm3 + pand .LONE_mont(%rip),%xmm2 + pand .LONE_mont+16(%rip),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + + movdqa %xmm4,%xmm0 + movdqa %xmm4,%xmm1 + pandn %xmm2,%xmm0 + movdqa %xmm4,%xmm2 + pandn %xmm3,%xmm1 + movdqa %xmm4,%xmm3 + pand 384(%rsp),%xmm2 + pand 384+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + movdqu %xmm2,64(%rdi) + movdqu %xmm3,80(%rdi) + + movdqa %xmm5,%xmm0 + movdqa %xmm5,%xmm1 + pandn 224(%rsp),%xmm0 + movdqa %xmm5,%xmm2 + pandn 224+16(%rsp),%xmm1 + movdqa %xmm5,%xmm3 + pand 416(%rsp),%xmm2 + pand 416+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + + movdqa %xmm4,%xmm0 + movdqa %xmm4,%xmm1 + pandn %xmm2,%xmm0 + movdqa %xmm4,%xmm2 + pandn %xmm3,%xmm1 + movdqa %xmm4,%xmm3 + pand 320(%rsp),%xmm2 + pand 320+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + movdqu %xmm2,0(%rdi) + movdqu %xmm3,16(%rdi) + + movdqa %xmm5,%xmm0 + movdqa %xmm5,%xmm1 + pandn 256(%rsp),%xmm0 + movdqa %xmm5,%xmm2 + pandn 256+16(%rsp),%xmm1 + movdqa %xmm5,%xmm3 + pand 448(%rsp),%xmm2 + pand 448+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + + movdqa %xmm4,%xmm0 + movdqa %xmm4,%xmm1 + pandn %xmm2,%xmm0 + movdqa %xmm4,%xmm2 + pandn %xmm3,%xmm1 + movdqa %xmm4,%xmm3 + pand 352(%rsp),%xmm2 + pand 352+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + movdqu %xmm2,32(%rdi) + movdqu %xmm3,48(%rdi) + + leaq 480+56(%rsp),%rsi +.cfi_def_cfa %rsi,8 + movq -48(%rsi),%r15 +.cfi_restore %r15 + movq -40(%rsi),%r14 +.cfi_restore %r14 + movq -32(%rsi),%r13 +.cfi_restore %r13 + movq -24(%rsi),%r12 +.cfi_restore %r12 + movq -16(%rsi),%rbx +.cfi_restore %rbx + movq -8(%rsi),%rbp +.cfi_restore %rbp + leaq (%rsi),%rsp +.cfi_def_cfa_register %rsp +.Ladd_affinex_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size ecp_nistz256_point_add_affinex,.-ecp_nistz256_point_add_affinex diff --git a/vere/ext/openssl/gen/linux-x86_64/crypto/ec/x25519-x86_64.s b/vere/ext/openssl/gen/linux-x86_64/crypto/ec/x25519-x86_64.s new file mode 100644 index 0000000..8fd319c --- /dev/null +++ b/vere/ext/openssl/gen/linux-x86_64/crypto/ec/x25519-x86_64.s @@ -0,0 +1,802 @@ +.text + +.globl x25519_fe51_mul +.type x25519_fe51_mul,@function +.align 32 +x25519_fe51_mul: +.cfi_startproc + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-16 + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 + leaq -40(%rsp),%rsp +.cfi_adjust_cfa_offset 40 +.Lfe51_mul_body: + + movq 0(%rsi),%rax + movq 0(%rdx),%r11 + movq 8(%rdx),%r12 + movq 16(%rdx),%r13 + movq 24(%rdx),%rbp + movq 32(%rdx),%r14 + + movq %rdi,32(%rsp) + movq %rax,%rdi + mulq %r11 + movq %r11,0(%rsp) + movq %rax,%rbx + movq %rdi,%rax + movq %rdx,%rcx + mulq %r12 + movq %r12,8(%rsp) + movq %rax,%r8 + movq %rdi,%rax + leaq (%r14,%r14,8),%r15 + movq %rdx,%r9 + mulq %r13 + movq %r13,16(%rsp) + movq %rax,%r10 + movq %rdi,%rax + leaq (%r14,%r15,2),%rdi + movq %rdx,%r11 + mulq %rbp + movq %rax,%r12 + movq 0(%rsi),%rax + movq %rdx,%r13 + mulq %r14 + movq %rax,%r14 + movq 8(%rsi),%rax + movq %rdx,%r15 + + mulq %rdi + addq %rax,%rbx + movq 16(%rsi),%rax + adcq %rdx,%rcx + mulq %rdi + addq %rax,%r8 + movq 24(%rsi),%rax + adcq %rdx,%r9 + mulq %rdi + addq %rax,%r10 + movq 32(%rsi),%rax + adcq %rdx,%r11 + mulq %rdi + imulq $19,%rbp,%rdi + addq %rax,%r12 + movq 8(%rsi),%rax + adcq %rdx,%r13 + mulq %rbp + movq 16(%rsp),%rbp + addq %rax,%r14 + movq 16(%rsi),%rax + adcq %rdx,%r15 + + mulq %rdi + addq %rax,%rbx + movq 24(%rsi),%rax + adcq %rdx,%rcx + mulq %rdi + addq %rax,%r8 + movq 32(%rsi),%rax + adcq %rdx,%r9 + mulq %rdi + imulq $19,%rbp,%rdi + addq %rax,%r10 + movq 8(%rsi),%rax + adcq %rdx,%r11 + mulq %rbp + addq %rax,%r12 + movq 16(%rsi),%rax + adcq %rdx,%r13 + mulq %rbp + movq 8(%rsp),%rbp + addq %rax,%r14 + movq 24(%rsi),%rax + adcq %rdx,%r15 + + mulq %rdi + addq %rax,%rbx + movq 32(%rsi),%rax + adcq %rdx,%rcx + mulq %rdi + addq %rax,%r8 + movq 8(%rsi),%rax + adcq %rdx,%r9 + mulq %rbp + imulq $19,%rbp,%rdi + addq %rax,%r10 + movq 16(%rsi),%rax + adcq %rdx,%r11 + mulq %rbp + addq %rax,%r12 + movq 24(%rsi),%rax + adcq %rdx,%r13 + mulq %rbp + movq 0(%rsp),%rbp + addq %rax,%r14 + movq 32(%rsi),%rax + adcq %rdx,%r15 + + mulq %rdi + addq %rax,%rbx + movq 8(%rsi),%rax + adcq %rdx,%rcx + mulq %rbp + addq %rax,%r8 + movq 16(%rsi),%rax + adcq %rdx,%r9 + mulq %rbp + addq %rax,%r10 + movq 24(%rsi),%rax + adcq %rdx,%r11 + mulq %rbp + addq %rax,%r12 + movq 32(%rsi),%rax + adcq %rdx,%r13 + mulq %rbp + addq %rax,%r14 + adcq %rdx,%r15 + + movq 32(%rsp),%rdi + jmp .Lreduce51 +.Lfe51_mul_epilogue: +.cfi_endproc +.size x25519_fe51_mul,.-x25519_fe51_mul + +.globl x25519_fe51_sqr +.type x25519_fe51_sqr,@function +.align 32 +x25519_fe51_sqr: +.cfi_startproc + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-16 + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 + leaq -40(%rsp),%rsp +.cfi_adjust_cfa_offset 40 +.Lfe51_sqr_body: + + movq 0(%rsi),%rax + movq 16(%rsi),%r15 + movq 32(%rsi),%rbp + + movq %rdi,32(%rsp) + leaq (%rax,%rax,1),%r14 + mulq %rax + movq %rax,%rbx + movq 8(%rsi),%rax + movq %rdx,%rcx + mulq %r14 + movq %rax,%r8 + movq %r15,%rax + movq %r15,0(%rsp) + movq %rdx,%r9 + mulq %r14 + movq %rax,%r10 + movq 24(%rsi),%rax + movq %rdx,%r11 + imulq $19,%rbp,%rdi + mulq %r14 + movq %rax,%r12 + movq %rbp,%rax + movq %rdx,%r13 + mulq %r14 + movq %rax,%r14 + movq %rbp,%rax + movq %rdx,%r15 + + mulq %rdi + addq %rax,%r12 + movq 8(%rsi),%rax + adcq %rdx,%r13 + + movq 24(%rsi),%rsi + leaq (%rax,%rax,1),%rbp + mulq %rax + addq %rax,%r10 + movq 0(%rsp),%rax + adcq %rdx,%r11 + mulq %rbp + addq %rax,%r12 + movq %rbp,%rax + adcq %rdx,%r13 + mulq %rsi + addq %rax,%r14 + movq %rbp,%rax + adcq %rdx,%r15 + imulq $19,%rsi,%rbp + mulq %rdi + addq %rax,%rbx + leaq (%rsi,%rsi,1),%rax + adcq %rdx,%rcx + + mulq %rdi + addq %rax,%r10 + movq %rsi,%rax + adcq %rdx,%r11 + mulq %rbp + addq %rax,%r8 + movq 0(%rsp),%rax + adcq %rdx,%r9 + + leaq (%rax,%rax,1),%rsi + mulq %rax + addq %rax,%r14 + movq %rbp,%rax + adcq %rdx,%r15 + mulq %rsi + addq %rax,%rbx + movq %rsi,%rax + adcq %rdx,%rcx + mulq %rdi + addq %rax,%r8 + adcq %rdx,%r9 + + movq 32(%rsp),%rdi + jmp .Lreduce51 + +.align 32 +.Lreduce51: + movq $0x7ffffffffffff,%rbp + + movq %r10,%rdx + shrq $51,%r10 + shlq $13,%r11 + andq %rbp,%rdx + orq %r10,%r11 + addq %r11,%r12 + adcq $0,%r13 + + movq %rbx,%rax + shrq $51,%rbx + shlq $13,%rcx + andq %rbp,%rax + orq %rbx,%rcx + addq %rcx,%r8 + adcq $0,%r9 + + movq %r12,%rbx + shrq $51,%r12 + shlq $13,%r13 + andq %rbp,%rbx + orq %r12,%r13 + addq %r13,%r14 + adcq $0,%r15 + + movq %r8,%rcx + shrq $51,%r8 + shlq $13,%r9 + andq %rbp,%rcx + orq %r8,%r9 + addq %r9,%rdx + + movq %r14,%r10 + shrq $51,%r14 + shlq $13,%r15 + andq %rbp,%r10 + orq %r14,%r15 + + leaq (%r15,%r15,8),%r14 + leaq (%r15,%r14,2),%r15 + addq %r15,%rax + + movq %rdx,%r8 + andq %rbp,%rdx + shrq $51,%r8 + addq %r8,%rbx + + movq %rax,%r9 + andq %rbp,%rax + shrq $51,%r9 + addq %r9,%rcx + + movq %rax,0(%rdi) + movq %rcx,8(%rdi) + movq %rdx,16(%rdi) + movq %rbx,24(%rdi) + movq %r10,32(%rdi) + + movq 40(%rsp),%r15 +.cfi_restore %r15 + movq 48(%rsp),%r14 +.cfi_restore %r14 + movq 56(%rsp),%r13 +.cfi_restore %r13 + movq 64(%rsp),%r12 +.cfi_restore %r12 + movq 72(%rsp),%rbx +.cfi_restore %rbx + movq 80(%rsp),%rbp +.cfi_restore %rbp + leaq 88(%rsp),%rsp +.cfi_adjust_cfa_offset 88 +.Lfe51_sqr_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size x25519_fe51_sqr,.-x25519_fe51_sqr + +.globl x25519_fe51_mul121666 +.type x25519_fe51_mul121666,@function +.align 32 +x25519_fe51_mul121666: +.cfi_startproc + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-16 + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 + leaq -40(%rsp),%rsp +.cfi_adjust_cfa_offset 40 +.Lfe51_mul121666_body: + movl $121666,%eax + + mulq 0(%rsi) + movq %rax,%rbx + movl $121666,%eax + movq %rdx,%rcx + mulq 8(%rsi) + movq %rax,%r8 + movl $121666,%eax + movq %rdx,%r9 + mulq 16(%rsi) + movq %rax,%r10 + movl $121666,%eax + movq %rdx,%r11 + mulq 24(%rsi) + movq %rax,%r12 + movl $121666,%eax + movq %rdx,%r13 + mulq 32(%rsi) + movq %rax,%r14 + movq %rdx,%r15 + + jmp .Lreduce51 +.Lfe51_mul121666_epilogue: +.cfi_endproc +.size x25519_fe51_mul121666,.-x25519_fe51_mul121666 + +.globl x25519_fe64_eligible +.type x25519_fe64_eligible,@function +.align 32 +x25519_fe64_eligible: +.cfi_startproc + movl OPENSSL_ia32cap_P+8(%rip),%ecx + xorl %eax,%eax + andl $0x80100,%ecx + cmpl $0x80100,%ecx + cmovel %ecx,%eax + .byte 0xf3,0xc3 +.cfi_endproc +.size x25519_fe64_eligible,.-x25519_fe64_eligible + +.globl x25519_fe64_mul +.type x25519_fe64_mul,@function +.align 32 +x25519_fe64_mul: +.cfi_startproc + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-16 + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 + pushq %rdi +.cfi_adjust_cfa_offset 8 +.cfi_offset %rdi,-64 + leaq -16(%rsp),%rsp +.cfi_adjust_cfa_offset 16 +.Lfe64_mul_body: + + movq %rdx,%rax + movq 0(%rdx),%rbp + movq 0(%rsi),%rdx + movq 8(%rax),%rcx + movq 16(%rax),%r14 + movq 24(%rax),%r15 + + mulxq %rbp,%r8,%rax + xorl %edi,%edi + mulxq %rcx,%r9,%rbx + adcxq %rax,%r9 + mulxq %r14,%r10,%rax + adcxq %rbx,%r10 + mulxq %r15,%r11,%r12 + movq 8(%rsi),%rdx + adcxq %rax,%r11 + movq %r14,(%rsp) + adcxq %rdi,%r12 + + mulxq %rbp,%rax,%rbx + adoxq %rax,%r9 + adcxq %rbx,%r10 + mulxq %rcx,%rax,%rbx + adoxq %rax,%r10 + adcxq %rbx,%r11 + mulxq %r14,%rax,%rbx + adoxq %rax,%r11 + adcxq %rbx,%r12 + mulxq %r15,%rax,%r13 + movq 16(%rsi),%rdx + adoxq %rax,%r12 + adcxq %rdi,%r13 + adoxq %rdi,%r13 + + mulxq %rbp,%rax,%rbx + adcxq %rax,%r10 + adoxq %rbx,%r11 + mulxq %rcx,%rax,%rbx + adcxq %rax,%r11 + adoxq %rbx,%r12 + mulxq %r14,%rax,%rbx + adcxq %rax,%r12 + adoxq %rbx,%r13 + mulxq %r15,%rax,%r14 + movq 24(%rsi),%rdx + adcxq %rax,%r13 + adoxq %rdi,%r14 + adcxq %rdi,%r14 + + mulxq %rbp,%rax,%rbx + adoxq %rax,%r11 + adcxq %rbx,%r12 + mulxq %rcx,%rax,%rbx + adoxq %rax,%r12 + adcxq %rbx,%r13 + mulxq (%rsp),%rax,%rbx + adoxq %rax,%r13 + adcxq %rbx,%r14 + mulxq %r15,%rax,%r15 + movl $38,%edx + adoxq %rax,%r14 + adcxq %rdi,%r15 + adoxq %rdi,%r15 + + jmp .Lreduce64 +.Lfe64_mul_epilogue: +.cfi_endproc +.size x25519_fe64_mul,.-x25519_fe64_mul + +.globl x25519_fe64_sqr +.type x25519_fe64_sqr,@function +.align 32 +x25519_fe64_sqr: +.cfi_startproc + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-16 + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 + pushq %rdi +.cfi_adjust_cfa_offset 8 +.cfi_offset %rdi,-64 + leaq -16(%rsp),%rsp +.cfi_adjust_cfa_offset 16 +.Lfe64_sqr_body: + + movq 0(%rsi),%rdx + movq 8(%rsi),%rcx + movq 16(%rsi),%rbp + movq 24(%rsi),%rsi + + + mulxq %rdx,%r8,%r15 + mulxq %rcx,%r9,%rax + xorl %edi,%edi + mulxq %rbp,%r10,%rbx + adcxq %rax,%r10 + mulxq %rsi,%r11,%r12 + movq %rcx,%rdx + adcxq %rbx,%r11 + adcxq %rdi,%r12 + + + mulxq %rbp,%rax,%rbx + adoxq %rax,%r11 + adcxq %rbx,%r12 + mulxq %rsi,%rax,%r13 + movq %rbp,%rdx + adoxq %rax,%r12 + adcxq %rdi,%r13 + + + mulxq %rsi,%rax,%r14 + movq %rcx,%rdx + adoxq %rax,%r13 + adcxq %rdi,%r14 + adoxq %rdi,%r14 + + adcxq %r9,%r9 + adoxq %r15,%r9 + adcxq %r10,%r10 + mulxq %rdx,%rax,%rbx + movq %rbp,%rdx + adcxq %r11,%r11 + adoxq %rax,%r10 + adcxq %r12,%r12 + adoxq %rbx,%r11 + mulxq %rdx,%rax,%rbx + movq %rsi,%rdx + adcxq %r13,%r13 + adoxq %rax,%r12 + adcxq %r14,%r14 + adoxq %rbx,%r13 + mulxq %rdx,%rax,%r15 + movl $38,%edx + adoxq %rax,%r14 + adcxq %rdi,%r15 + adoxq %rdi,%r15 + jmp .Lreduce64 + +.align 32 +.Lreduce64: + mulxq %r12,%rax,%rbx + adcxq %rax,%r8 + adoxq %rbx,%r9 + mulxq %r13,%rax,%rbx + adcxq %rax,%r9 + adoxq %rbx,%r10 + mulxq %r14,%rax,%rbx + adcxq %rax,%r10 + adoxq %rbx,%r11 + mulxq %r15,%rax,%r12 + adcxq %rax,%r11 + adoxq %rdi,%r12 + adcxq %rdi,%r12 + + movq 16(%rsp),%rdi + imulq %rdx,%r12 + + addq %r12,%r8 + adcq $0,%r9 + adcq $0,%r10 + adcq $0,%r11 + + sbbq %rax,%rax + andq $38,%rax + + addq %rax,%r8 + movq %r9,8(%rdi) + movq %r10,16(%rdi) + movq %r11,24(%rdi) + movq %r8,0(%rdi) + + movq 24(%rsp),%r15 +.cfi_restore %r15 + movq 32(%rsp),%r14 +.cfi_restore %r14 + movq 40(%rsp),%r13 +.cfi_restore %r13 + movq 48(%rsp),%r12 +.cfi_restore %r12 + movq 56(%rsp),%rbx +.cfi_restore %rbx + movq 64(%rsp),%rbp +.cfi_restore %rbp + leaq 72(%rsp),%rsp +.cfi_adjust_cfa_offset 88 +.Lfe64_sqr_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size x25519_fe64_sqr,.-x25519_fe64_sqr + +.globl x25519_fe64_mul121666 +.type x25519_fe64_mul121666,@function +.align 32 +x25519_fe64_mul121666: +.Lfe64_mul121666_body: +.cfi_startproc + movl $121666,%edx + mulxq 0(%rsi),%r8,%rcx + mulxq 8(%rsi),%r9,%rax + addq %rcx,%r9 + mulxq 16(%rsi),%r10,%rcx + adcq %rax,%r10 + mulxq 24(%rsi),%r11,%rax + adcq %rcx,%r11 + adcq $0,%rax + + imulq $38,%rax,%rax + + addq %rax,%r8 + adcq $0,%r9 + adcq $0,%r10 + adcq $0,%r11 + + sbbq %rax,%rax + andq $38,%rax + + addq %rax,%r8 + movq %r9,8(%rdi) + movq %r10,16(%rdi) + movq %r11,24(%rdi) + movq %r8,0(%rdi) + +.Lfe64_mul121666_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size x25519_fe64_mul121666,.-x25519_fe64_mul121666 + +.globl x25519_fe64_add +.type x25519_fe64_add,@function +.align 32 +x25519_fe64_add: +.Lfe64_add_body: +.cfi_startproc + movq 0(%rsi),%r8 + movq 8(%rsi),%r9 + movq 16(%rsi),%r10 + movq 24(%rsi),%r11 + + addq 0(%rdx),%r8 + adcq 8(%rdx),%r9 + adcq 16(%rdx),%r10 + adcq 24(%rdx),%r11 + + sbbq %rax,%rax + andq $38,%rax + + addq %rax,%r8 + adcq $0,%r9 + adcq $0,%r10 + movq %r9,8(%rdi) + adcq $0,%r11 + movq %r10,16(%rdi) + sbbq %rax,%rax + movq %r11,24(%rdi) + andq $38,%rax + + addq %rax,%r8 + movq %r8,0(%rdi) + +.Lfe64_add_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size x25519_fe64_add,.-x25519_fe64_add + +.globl x25519_fe64_sub +.type x25519_fe64_sub,@function +.align 32 +x25519_fe64_sub: +.Lfe64_sub_body: +.cfi_startproc + movq 0(%rsi),%r8 + movq 8(%rsi),%r9 + movq 16(%rsi),%r10 + movq 24(%rsi),%r11 + + subq 0(%rdx),%r8 + sbbq 8(%rdx),%r9 + sbbq 16(%rdx),%r10 + sbbq 24(%rdx),%r11 + + sbbq %rax,%rax + andq $38,%rax + + subq %rax,%r8 + sbbq $0,%r9 + sbbq $0,%r10 + movq %r9,8(%rdi) + sbbq $0,%r11 + movq %r10,16(%rdi) + sbbq %rax,%rax + movq %r11,24(%rdi) + andq $38,%rax + + subq %rax,%r8 + movq %r8,0(%rdi) + +.Lfe64_sub_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size x25519_fe64_sub,.-x25519_fe64_sub + +.globl x25519_fe64_tobytes +.type x25519_fe64_tobytes,@function +.align 32 +x25519_fe64_tobytes: +.Lfe64_to_body: +.cfi_startproc + movq 0(%rsi),%r8 + movq 8(%rsi),%r9 + movq 16(%rsi),%r10 + movq 24(%rsi),%r11 + + + leaq (%r11,%r11,1),%rax + sarq $63,%r11 + shrq $1,%rax + andq $19,%r11 + addq $19,%r11 + + addq %r11,%r8 + adcq $0,%r9 + adcq $0,%r10 + adcq $0,%rax + + leaq (%rax,%rax,1),%r11 + sarq $63,%rax + shrq $1,%r11 + notq %rax + andq $19,%rax + + subq %rax,%r8 + sbbq $0,%r9 + sbbq $0,%r10 + sbbq $0,%r11 + + movq %r8,0(%rdi) + movq %r9,8(%rdi) + movq %r10,16(%rdi) + movq %r11,24(%rdi) + +.Lfe64_to_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size x25519_fe64_tobytes,.-x25519_fe64_tobytes +.byte 88,50,53,53,49,57,32,112,114,105,109,105,116,105,118,101,115,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 diff --git a/vere/ext/openssl/gen/linux-x86_64/crypto/md5/md5-x86_64.s b/vere/ext/openssl/gen/linux-x86_64/crypto/md5/md5-x86_64.s new file mode 100644 index 0000000..348ebe4 --- /dev/null +++ b/vere/ext/openssl/gen/linux-x86_64/crypto/md5/md5-x86_64.s @@ -0,0 +1,683 @@ +.text +.align 16 + +.globl md5_block_asm_data_order +.type md5_block_asm_data_order,@function +md5_block_asm_data_order: +.cfi_startproc + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-16 + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-40 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-48 +.Lprologue: + + + + + movq %rdi,%rbp + shlq $6,%rdx + leaq (%rsi,%rdx,1),%rdi + movl 0(%rbp),%eax + movl 4(%rbp),%ebx + movl 8(%rbp),%ecx + movl 12(%rbp),%edx + + + + + + + + cmpq %rdi,%rsi + je .Lend + + +.Lloop: + movl %eax,%r8d + movl %ebx,%r9d + movl %ecx,%r14d + movl %edx,%r15d + movl 0(%rsi),%r10d + movl %edx,%r11d + xorl %ecx,%r11d + leal -680876936(%rax,%r10,1),%eax + andl %ebx,%r11d + movl 4(%rsi),%r10d + xorl %edx,%r11d + addl %r11d,%eax + roll $7,%eax + movl %ecx,%r11d + addl %ebx,%eax + xorl %ebx,%r11d + leal -389564586(%rdx,%r10,1),%edx + andl %eax,%r11d + movl 8(%rsi),%r10d + xorl %ecx,%r11d + addl %r11d,%edx + roll $12,%edx + movl %ebx,%r11d + addl %eax,%edx + xorl %eax,%r11d + leal 606105819(%rcx,%r10,1),%ecx + andl %edx,%r11d + movl 12(%rsi),%r10d + xorl %ebx,%r11d + addl %r11d,%ecx + roll $17,%ecx + movl %eax,%r11d + addl %edx,%ecx + xorl %edx,%r11d + leal -1044525330(%rbx,%r10,1),%ebx + andl %ecx,%r11d + movl 16(%rsi),%r10d + xorl %eax,%r11d + addl %r11d,%ebx + roll $22,%ebx + movl %edx,%r11d + addl %ecx,%ebx + xorl %ecx,%r11d + leal -176418897(%rax,%r10,1),%eax + andl %ebx,%r11d + movl 20(%rsi),%r10d + xorl %edx,%r11d + addl %r11d,%eax + roll $7,%eax + movl %ecx,%r11d + addl %ebx,%eax + xorl %ebx,%r11d + leal 1200080426(%rdx,%r10,1),%edx + andl %eax,%r11d + movl 24(%rsi),%r10d + xorl %ecx,%r11d + addl %r11d,%edx + roll $12,%edx + movl %ebx,%r11d + addl %eax,%edx + xorl %eax,%r11d + leal -1473231341(%rcx,%r10,1),%ecx + andl %edx,%r11d + movl 28(%rsi),%r10d + xorl %ebx,%r11d + addl %r11d,%ecx + roll $17,%ecx + movl %eax,%r11d + addl %edx,%ecx + xorl %edx,%r11d + leal -45705983(%rbx,%r10,1),%ebx + andl %ecx,%r11d + movl 32(%rsi),%r10d + xorl %eax,%r11d + addl %r11d,%ebx + roll $22,%ebx + movl %edx,%r11d + addl %ecx,%ebx + xorl %ecx,%r11d + leal 1770035416(%rax,%r10,1),%eax + andl %ebx,%r11d + movl 36(%rsi),%r10d + xorl %edx,%r11d + addl %r11d,%eax + roll $7,%eax + movl %ecx,%r11d + addl %ebx,%eax + xorl %ebx,%r11d + leal -1958414417(%rdx,%r10,1),%edx + andl %eax,%r11d + movl 40(%rsi),%r10d + xorl %ecx,%r11d + addl %r11d,%edx + roll $12,%edx + movl %ebx,%r11d + addl %eax,%edx + xorl %eax,%r11d + leal -42063(%rcx,%r10,1),%ecx + andl %edx,%r11d + movl 44(%rsi),%r10d + xorl %ebx,%r11d + addl %r11d,%ecx + roll $17,%ecx + movl %eax,%r11d + addl %edx,%ecx + xorl %edx,%r11d + leal -1990404162(%rbx,%r10,1),%ebx + andl %ecx,%r11d + movl 48(%rsi),%r10d + xorl %eax,%r11d + addl %r11d,%ebx + roll $22,%ebx + movl %edx,%r11d + addl %ecx,%ebx + xorl %ecx,%r11d + leal 1804603682(%rax,%r10,1),%eax + andl %ebx,%r11d + movl 52(%rsi),%r10d + xorl %edx,%r11d + addl %r11d,%eax + roll $7,%eax + movl %ecx,%r11d + addl %ebx,%eax + xorl %ebx,%r11d + leal -40341101(%rdx,%r10,1),%edx + andl %eax,%r11d + movl 56(%rsi),%r10d + xorl %ecx,%r11d + addl %r11d,%edx + roll $12,%edx + movl %ebx,%r11d + addl %eax,%edx + xorl %eax,%r11d + leal -1502002290(%rcx,%r10,1),%ecx + andl %edx,%r11d + movl 60(%rsi),%r10d + xorl %ebx,%r11d + addl %r11d,%ecx + roll $17,%ecx + movl %eax,%r11d + addl %edx,%ecx + xorl %edx,%r11d + leal 1236535329(%rbx,%r10,1),%ebx + andl %ecx,%r11d + movl 4(%rsi),%r10d + xorl %eax,%r11d + addl %r11d,%ebx + roll $22,%ebx + movl %edx,%r11d + addl %ecx,%ebx + movl %edx,%r11d + movl %edx,%r12d + notl %r11d + andl %ebx,%r12d + leal -165796510(%rax,%r10,1),%eax + andl %ecx,%r11d + movl 24(%rsi),%r10d + orl %r11d,%r12d + movl %ecx,%r11d + addl %r12d,%eax + movl %ecx,%r12d + roll $5,%eax + addl %ebx,%eax + notl %r11d + andl %eax,%r12d + leal -1069501632(%rdx,%r10,1),%edx + andl %ebx,%r11d + movl 44(%rsi),%r10d + orl %r11d,%r12d + movl %ebx,%r11d + addl %r12d,%edx + movl %ebx,%r12d + roll $9,%edx + addl %eax,%edx + notl %r11d + andl %edx,%r12d + leal 643717713(%rcx,%r10,1),%ecx + andl %eax,%r11d + movl 0(%rsi),%r10d + orl %r11d,%r12d + movl %eax,%r11d + addl %r12d,%ecx + movl %eax,%r12d + roll $14,%ecx + addl %edx,%ecx + notl %r11d + andl %ecx,%r12d + leal -373897302(%rbx,%r10,1),%ebx + andl %edx,%r11d + movl 20(%rsi),%r10d + orl %r11d,%r12d + movl %edx,%r11d + addl %r12d,%ebx + movl %edx,%r12d + roll $20,%ebx + addl %ecx,%ebx + notl %r11d + andl %ebx,%r12d + leal -701558691(%rax,%r10,1),%eax + andl %ecx,%r11d + movl 40(%rsi),%r10d + orl %r11d,%r12d + movl %ecx,%r11d + addl %r12d,%eax + movl %ecx,%r12d + roll $5,%eax + addl %ebx,%eax + notl %r11d + andl %eax,%r12d + leal 38016083(%rdx,%r10,1),%edx + andl %ebx,%r11d + movl 60(%rsi),%r10d + orl %r11d,%r12d + movl %ebx,%r11d + addl %r12d,%edx + movl %ebx,%r12d + roll $9,%edx + addl %eax,%edx + notl %r11d + andl %edx,%r12d + leal -660478335(%rcx,%r10,1),%ecx + andl %eax,%r11d + movl 16(%rsi),%r10d + orl %r11d,%r12d + movl %eax,%r11d + addl %r12d,%ecx + movl %eax,%r12d + roll $14,%ecx + addl %edx,%ecx + notl %r11d + andl %ecx,%r12d + leal -405537848(%rbx,%r10,1),%ebx + andl %edx,%r11d + movl 36(%rsi),%r10d + orl %r11d,%r12d + movl %edx,%r11d + addl %r12d,%ebx + movl %edx,%r12d + roll $20,%ebx + addl %ecx,%ebx + notl %r11d + andl %ebx,%r12d + leal 568446438(%rax,%r10,1),%eax + andl %ecx,%r11d + movl 56(%rsi),%r10d + orl %r11d,%r12d + movl %ecx,%r11d + addl %r12d,%eax + movl %ecx,%r12d + roll $5,%eax + addl %ebx,%eax + notl %r11d + andl %eax,%r12d + leal -1019803690(%rdx,%r10,1),%edx + andl %ebx,%r11d + movl 12(%rsi),%r10d + orl %r11d,%r12d + movl %ebx,%r11d + addl %r12d,%edx + movl %ebx,%r12d + roll $9,%edx + addl %eax,%edx + notl %r11d + andl %edx,%r12d + leal -187363961(%rcx,%r10,1),%ecx + andl %eax,%r11d + movl 32(%rsi),%r10d + orl %r11d,%r12d + movl %eax,%r11d + addl %r12d,%ecx + movl %eax,%r12d + roll $14,%ecx + addl %edx,%ecx + notl %r11d + andl %ecx,%r12d + leal 1163531501(%rbx,%r10,1),%ebx + andl %edx,%r11d + movl 52(%rsi),%r10d + orl %r11d,%r12d + movl %edx,%r11d + addl %r12d,%ebx + movl %edx,%r12d + roll $20,%ebx + addl %ecx,%ebx + notl %r11d + andl %ebx,%r12d + leal -1444681467(%rax,%r10,1),%eax + andl %ecx,%r11d + movl 8(%rsi),%r10d + orl %r11d,%r12d + movl %ecx,%r11d + addl %r12d,%eax + movl %ecx,%r12d + roll $5,%eax + addl %ebx,%eax + notl %r11d + andl %eax,%r12d + leal -51403784(%rdx,%r10,1),%edx + andl %ebx,%r11d + movl 28(%rsi),%r10d + orl %r11d,%r12d + movl %ebx,%r11d + addl %r12d,%edx + movl %ebx,%r12d + roll $9,%edx + addl %eax,%edx + notl %r11d + andl %edx,%r12d + leal 1735328473(%rcx,%r10,1),%ecx + andl %eax,%r11d + movl 48(%rsi),%r10d + orl %r11d,%r12d + movl %eax,%r11d + addl %r12d,%ecx + movl %eax,%r12d + roll $14,%ecx + addl %edx,%ecx + notl %r11d + andl %ecx,%r12d + leal -1926607734(%rbx,%r10,1),%ebx + andl %edx,%r11d + movl 20(%rsi),%r10d + orl %r11d,%r12d + movl %edx,%r11d + addl %r12d,%ebx + movl %edx,%r12d + roll $20,%ebx + addl %ecx,%ebx + movl %ecx,%r11d + leal -378558(%rax,%r10,1),%eax + xorl %edx,%r11d + movl 32(%rsi),%r10d + xorl %ebx,%r11d + addl %r11d,%eax + movl %ebx,%r11d + roll $4,%eax + addl %ebx,%eax + leal -2022574463(%rdx,%r10,1),%edx + xorl %ecx,%r11d + movl 44(%rsi),%r10d + xorl %eax,%r11d + addl %r11d,%edx + roll $11,%edx + movl %eax,%r11d + addl %eax,%edx + leal 1839030562(%rcx,%r10,1),%ecx + xorl %ebx,%r11d + movl 56(%rsi),%r10d + xorl %edx,%r11d + addl %r11d,%ecx + movl %edx,%r11d + roll $16,%ecx + addl %edx,%ecx + leal -35309556(%rbx,%r10,1),%ebx + xorl %eax,%r11d + movl 4(%rsi),%r10d + xorl %ecx,%r11d + addl %r11d,%ebx + roll $23,%ebx + movl %ecx,%r11d + addl %ecx,%ebx + leal -1530992060(%rax,%r10,1),%eax + xorl %edx,%r11d + movl 16(%rsi),%r10d + xorl %ebx,%r11d + addl %r11d,%eax + movl %ebx,%r11d + roll $4,%eax + addl %ebx,%eax + leal 1272893353(%rdx,%r10,1),%edx + xorl %ecx,%r11d + movl 28(%rsi),%r10d + xorl %eax,%r11d + addl %r11d,%edx + roll $11,%edx + movl %eax,%r11d + addl %eax,%edx + leal -155497632(%rcx,%r10,1),%ecx + xorl %ebx,%r11d + movl 40(%rsi),%r10d + xorl %edx,%r11d + addl %r11d,%ecx + movl %edx,%r11d + roll $16,%ecx + addl %edx,%ecx + leal -1094730640(%rbx,%r10,1),%ebx + xorl %eax,%r11d + movl 52(%rsi),%r10d + xorl %ecx,%r11d + addl %r11d,%ebx + roll $23,%ebx + movl %ecx,%r11d + addl %ecx,%ebx + leal 681279174(%rax,%r10,1),%eax + xorl %edx,%r11d + movl 0(%rsi),%r10d + xorl %ebx,%r11d + addl %r11d,%eax + movl %ebx,%r11d + roll $4,%eax + addl %ebx,%eax + leal -358537222(%rdx,%r10,1),%edx + xorl %ecx,%r11d + movl 12(%rsi),%r10d + xorl %eax,%r11d + addl %r11d,%edx + roll $11,%edx + movl %eax,%r11d + addl %eax,%edx + leal -722521979(%rcx,%r10,1),%ecx + xorl %ebx,%r11d + movl 24(%rsi),%r10d + xorl %edx,%r11d + addl %r11d,%ecx + movl %edx,%r11d + roll $16,%ecx + addl %edx,%ecx + leal 76029189(%rbx,%r10,1),%ebx + xorl %eax,%r11d + movl 36(%rsi),%r10d + xorl %ecx,%r11d + addl %r11d,%ebx + roll $23,%ebx + movl %ecx,%r11d + addl %ecx,%ebx + leal -640364487(%rax,%r10,1),%eax + xorl %edx,%r11d + movl 48(%rsi),%r10d + xorl %ebx,%r11d + addl %r11d,%eax + movl %ebx,%r11d + roll $4,%eax + addl %ebx,%eax + leal -421815835(%rdx,%r10,1),%edx + xorl %ecx,%r11d + movl 60(%rsi),%r10d + xorl %eax,%r11d + addl %r11d,%edx + roll $11,%edx + movl %eax,%r11d + addl %eax,%edx + leal 530742520(%rcx,%r10,1),%ecx + xorl %ebx,%r11d + movl 8(%rsi),%r10d + xorl %edx,%r11d + addl %r11d,%ecx + movl %edx,%r11d + roll $16,%ecx + addl %edx,%ecx + leal -995338651(%rbx,%r10,1),%ebx + xorl %eax,%r11d + movl 0(%rsi),%r10d + xorl %ecx,%r11d + addl %r11d,%ebx + roll $23,%ebx + movl %ecx,%r11d + addl %ecx,%ebx + movl $0xffffffff,%r11d + xorl %edx,%r11d + leal -198630844(%rax,%r10,1),%eax + orl %ebx,%r11d + movl 28(%rsi),%r10d + xorl %ecx,%r11d + addl %r11d,%eax + movl $0xffffffff,%r11d + roll $6,%eax + xorl %ecx,%r11d + addl %ebx,%eax + leal 1126891415(%rdx,%r10,1),%edx + orl %eax,%r11d + movl 56(%rsi),%r10d + xorl %ebx,%r11d + addl %r11d,%edx + movl $0xffffffff,%r11d + roll $10,%edx + xorl %ebx,%r11d + addl %eax,%edx + leal -1416354905(%rcx,%r10,1),%ecx + orl %edx,%r11d + movl 20(%rsi),%r10d + xorl %eax,%r11d + addl %r11d,%ecx + movl $0xffffffff,%r11d + roll $15,%ecx + xorl %eax,%r11d + addl %edx,%ecx + leal -57434055(%rbx,%r10,1),%ebx + orl %ecx,%r11d + movl 48(%rsi),%r10d + xorl %edx,%r11d + addl %r11d,%ebx + movl $0xffffffff,%r11d + roll $21,%ebx + xorl %edx,%r11d + addl %ecx,%ebx + leal 1700485571(%rax,%r10,1),%eax + orl %ebx,%r11d + movl 12(%rsi),%r10d + xorl %ecx,%r11d + addl %r11d,%eax + movl $0xffffffff,%r11d + roll $6,%eax + xorl %ecx,%r11d + addl %ebx,%eax + leal -1894986606(%rdx,%r10,1),%edx + orl %eax,%r11d + movl 40(%rsi),%r10d + xorl %ebx,%r11d + addl %r11d,%edx + movl $0xffffffff,%r11d + roll $10,%edx + xorl %ebx,%r11d + addl %eax,%edx + leal -1051523(%rcx,%r10,1),%ecx + orl %edx,%r11d + movl 4(%rsi),%r10d + xorl %eax,%r11d + addl %r11d,%ecx + movl $0xffffffff,%r11d + roll $15,%ecx + xorl %eax,%r11d + addl %edx,%ecx + leal -2054922799(%rbx,%r10,1),%ebx + orl %ecx,%r11d + movl 32(%rsi),%r10d + xorl %edx,%r11d + addl %r11d,%ebx + movl $0xffffffff,%r11d + roll $21,%ebx + xorl %edx,%r11d + addl %ecx,%ebx + leal 1873313359(%rax,%r10,1),%eax + orl %ebx,%r11d + movl 60(%rsi),%r10d + xorl %ecx,%r11d + addl %r11d,%eax + movl $0xffffffff,%r11d + roll $6,%eax + xorl %ecx,%r11d + addl %ebx,%eax + leal -30611744(%rdx,%r10,1),%edx + orl %eax,%r11d + movl 24(%rsi),%r10d + xorl %ebx,%r11d + addl %r11d,%edx + movl $0xffffffff,%r11d + roll $10,%edx + xorl %ebx,%r11d + addl %eax,%edx + leal -1560198380(%rcx,%r10,1),%ecx + orl %edx,%r11d + movl 52(%rsi),%r10d + xorl %eax,%r11d + addl %r11d,%ecx + movl $0xffffffff,%r11d + roll $15,%ecx + xorl %eax,%r11d + addl %edx,%ecx + leal 1309151649(%rbx,%r10,1),%ebx + orl %ecx,%r11d + movl 16(%rsi),%r10d + xorl %edx,%r11d + addl %r11d,%ebx + movl $0xffffffff,%r11d + roll $21,%ebx + xorl %edx,%r11d + addl %ecx,%ebx + leal -145523070(%rax,%r10,1),%eax + orl %ebx,%r11d + movl 44(%rsi),%r10d + xorl %ecx,%r11d + addl %r11d,%eax + movl $0xffffffff,%r11d + roll $6,%eax + xorl %ecx,%r11d + addl %ebx,%eax + leal -1120210379(%rdx,%r10,1),%edx + orl %eax,%r11d + movl 8(%rsi),%r10d + xorl %ebx,%r11d + addl %r11d,%edx + movl $0xffffffff,%r11d + roll $10,%edx + xorl %ebx,%r11d + addl %eax,%edx + leal 718787259(%rcx,%r10,1),%ecx + orl %edx,%r11d + movl 36(%rsi),%r10d + xorl %eax,%r11d + addl %r11d,%ecx + movl $0xffffffff,%r11d + roll $15,%ecx + xorl %eax,%r11d + addl %edx,%ecx + leal -343485551(%rbx,%r10,1),%ebx + orl %ecx,%r11d + movl 0(%rsi),%r10d + xorl %edx,%r11d + addl %r11d,%ebx + movl $0xffffffff,%r11d + roll $21,%ebx + xorl %edx,%r11d + addl %ecx,%ebx + + addl %r8d,%eax + addl %r9d,%ebx + addl %r14d,%ecx + addl %r15d,%edx + + + addq $64,%rsi + cmpq %rdi,%rsi + jb .Lloop + + +.Lend: + movl %eax,0(%rbp) + movl %ebx,4(%rbp) + movl %ecx,8(%rbp) + movl %edx,12(%rbp) + + movq (%rsp),%r15 +.cfi_restore %r15 + movq 8(%rsp),%r14 +.cfi_restore %r14 + movq 16(%rsp),%r12 +.cfi_restore %r12 + movq 24(%rsp),%rbx +.cfi_restore %rbx + movq 32(%rsp),%rbp +.cfi_restore %rbp + addq $40,%rsp +.cfi_adjust_cfa_offset -40 +.Lepilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size md5_block_asm_data_order,.-md5_block_asm_data_order diff --git a/vere/ext/openssl/gen/linux-x86_64/crypto/modes/aesni-gcm-x86_64.s b/vere/ext/openssl/gen/linux-x86_64/crypto/modes/aesni-gcm-x86_64.s new file mode 100644 index 0000000..bf508af --- /dev/null +++ b/vere/ext/openssl/gen/linux-x86_64/crypto/modes/aesni-gcm-x86_64.s @@ -0,0 +1,789 @@ +.text + +.type _aesni_ctr32_ghash_6x,@function +.align 32 +_aesni_ctr32_ghash_6x: +.cfi_startproc + vmovdqu 32(%r11),%xmm2 + subq $6,%rdx + vpxor %xmm4,%xmm4,%xmm4 + vmovdqu 0-128(%rcx),%xmm15 + vpaddb %xmm2,%xmm1,%xmm10 + vpaddb %xmm2,%xmm10,%xmm11 + vpaddb %xmm2,%xmm11,%xmm12 + vpaddb %xmm2,%xmm12,%xmm13 + vpaddb %xmm2,%xmm13,%xmm14 + vpxor %xmm15,%xmm1,%xmm9 + vmovdqu %xmm4,16+8(%rsp) + jmp .Loop6x + +.align 32 +.Loop6x: + addl $100663296,%ebx + jc .Lhandle_ctr32 + vmovdqu 0-32(%r9),%xmm3 + vpaddb %xmm2,%xmm14,%xmm1 + vpxor %xmm15,%xmm10,%xmm10 + vpxor %xmm15,%xmm11,%xmm11 + +.Lresume_ctr32: + vmovdqu %xmm1,(%r8) + vpclmulqdq $0x10,%xmm3,%xmm7,%xmm5 + vpxor %xmm15,%xmm12,%xmm12 + vmovups 16-128(%rcx),%xmm2 + vpclmulqdq $0x01,%xmm3,%xmm7,%xmm6 + xorq %r12,%r12 + cmpq %r14,%r15 + + vaesenc %xmm2,%xmm9,%xmm9 + vmovdqu 48+8(%rsp),%xmm0 + vpxor %xmm15,%xmm13,%xmm13 + vpclmulqdq $0x00,%xmm3,%xmm7,%xmm1 + vaesenc %xmm2,%xmm10,%xmm10 + vpxor %xmm15,%xmm14,%xmm14 + setnc %r12b + vpclmulqdq $0x11,%xmm3,%xmm7,%xmm7 + vaesenc %xmm2,%xmm11,%xmm11 + vmovdqu 16-32(%r9),%xmm3 + negq %r12 + vaesenc %xmm2,%xmm12,%xmm12 + vpxor %xmm5,%xmm6,%xmm6 + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm5 + vpxor %xmm4,%xmm8,%xmm8 + vaesenc %xmm2,%xmm13,%xmm13 + vpxor %xmm5,%xmm1,%xmm4 + andq $0x60,%r12 + vmovups 32-128(%rcx),%xmm15 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm1 + vaesenc %xmm2,%xmm14,%xmm14 + + vpclmulqdq $0x01,%xmm3,%xmm0,%xmm2 + leaq (%r14,%r12,1),%r14 + vaesenc %xmm15,%xmm9,%xmm9 + vpxor 16+8(%rsp),%xmm8,%xmm8 + vpclmulqdq $0x11,%xmm3,%xmm0,%xmm3 + vmovdqu 64+8(%rsp),%xmm0 + vaesenc %xmm15,%xmm10,%xmm10 + movbeq 88(%r14),%r13 + vaesenc %xmm15,%xmm11,%xmm11 + movbeq 80(%r14),%r12 + vaesenc %xmm15,%xmm12,%xmm12 + movq %r13,32+8(%rsp) + vaesenc %xmm15,%xmm13,%xmm13 + movq %r12,40+8(%rsp) + vmovdqu 48-32(%r9),%xmm5 + vaesenc %xmm15,%xmm14,%xmm14 + + vmovups 48-128(%rcx),%xmm15 + vpxor %xmm1,%xmm6,%xmm6 + vpclmulqdq $0x00,%xmm5,%xmm0,%xmm1 + vaesenc %xmm15,%xmm9,%xmm9 + vpxor %xmm2,%xmm6,%xmm6 + vpclmulqdq $0x10,%xmm5,%xmm0,%xmm2 + vaesenc %xmm15,%xmm10,%xmm10 + vpxor %xmm3,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm5,%xmm0,%xmm3 + vaesenc %xmm15,%xmm11,%xmm11 + vpclmulqdq $0x11,%xmm5,%xmm0,%xmm5 + vmovdqu 80+8(%rsp),%xmm0 + vaesenc %xmm15,%xmm12,%xmm12 + vaesenc %xmm15,%xmm13,%xmm13 + vpxor %xmm1,%xmm4,%xmm4 + vmovdqu 64-32(%r9),%xmm1 + vaesenc %xmm15,%xmm14,%xmm14 + + vmovups 64-128(%rcx),%xmm15 + vpxor %xmm2,%xmm6,%xmm6 + vpclmulqdq $0x00,%xmm1,%xmm0,%xmm2 + vaesenc %xmm15,%xmm9,%xmm9 + vpxor %xmm3,%xmm6,%xmm6 + vpclmulqdq $0x10,%xmm1,%xmm0,%xmm3 + vaesenc %xmm15,%xmm10,%xmm10 + movbeq 72(%r14),%r13 + vpxor %xmm5,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm1,%xmm0,%xmm5 + vaesenc %xmm15,%xmm11,%xmm11 + movbeq 64(%r14),%r12 + vpclmulqdq $0x11,%xmm1,%xmm0,%xmm1 + vmovdqu 96+8(%rsp),%xmm0 + vaesenc %xmm15,%xmm12,%xmm12 + movq %r13,48+8(%rsp) + vaesenc %xmm15,%xmm13,%xmm13 + movq %r12,56+8(%rsp) + vpxor %xmm2,%xmm4,%xmm4 + vmovdqu 96-32(%r9),%xmm2 + vaesenc %xmm15,%xmm14,%xmm14 + + vmovups 80-128(%rcx),%xmm15 + vpxor %xmm3,%xmm6,%xmm6 + vpclmulqdq $0x00,%xmm2,%xmm0,%xmm3 + vaesenc %xmm15,%xmm9,%xmm9 + vpxor %xmm5,%xmm6,%xmm6 + vpclmulqdq $0x10,%xmm2,%xmm0,%xmm5 + vaesenc %xmm15,%xmm10,%xmm10 + movbeq 56(%r14),%r13 + vpxor %xmm1,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm2,%xmm0,%xmm1 + vpxor 112+8(%rsp),%xmm8,%xmm8 + vaesenc %xmm15,%xmm11,%xmm11 + movbeq 48(%r14),%r12 + vpclmulqdq $0x11,%xmm2,%xmm0,%xmm2 + vaesenc %xmm15,%xmm12,%xmm12 + movq %r13,64+8(%rsp) + vaesenc %xmm15,%xmm13,%xmm13 + movq %r12,72+8(%rsp) + vpxor %xmm3,%xmm4,%xmm4 + vmovdqu 112-32(%r9),%xmm3 + vaesenc %xmm15,%xmm14,%xmm14 + + vmovups 96-128(%rcx),%xmm15 + vpxor %xmm5,%xmm6,%xmm6 + vpclmulqdq $0x10,%xmm3,%xmm8,%xmm5 + vaesenc %xmm15,%xmm9,%xmm9 + vpxor %xmm1,%xmm6,%xmm6 + vpclmulqdq $0x01,%xmm3,%xmm8,%xmm1 + vaesenc %xmm15,%xmm10,%xmm10 + movbeq 40(%r14),%r13 + vpxor %xmm2,%xmm7,%xmm7 + vpclmulqdq $0x00,%xmm3,%xmm8,%xmm2 + vaesenc %xmm15,%xmm11,%xmm11 + movbeq 32(%r14),%r12 + vpclmulqdq $0x11,%xmm3,%xmm8,%xmm8 + vaesenc %xmm15,%xmm12,%xmm12 + movq %r13,80+8(%rsp) + vaesenc %xmm15,%xmm13,%xmm13 + movq %r12,88+8(%rsp) + vpxor %xmm5,%xmm6,%xmm6 + vaesenc %xmm15,%xmm14,%xmm14 + vpxor %xmm1,%xmm6,%xmm6 + + vmovups 112-128(%rcx),%xmm15 + vpslldq $8,%xmm6,%xmm5 + vpxor %xmm2,%xmm4,%xmm4 + vmovdqu 16(%r11),%xmm3 + + vaesenc %xmm15,%xmm9,%xmm9 + vpxor %xmm8,%xmm7,%xmm7 + vaesenc %xmm15,%xmm10,%xmm10 + vpxor %xmm5,%xmm4,%xmm4 + movbeq 24(%r14),%r13 + vaesenc %xmm15,%xmm11,%xmm11 + movbeq 16(%r14),%r12 + vpalignr $8,%xmm4,%xmm4,%xmm0 + vpclmulqdq $0x10,%xmm3,%xmm4,%xmm4 + movq %r13,96+8(%rsp) + vaesenc %xmm15,%xmm12,%xmm12 + movq %r12,104+8(%rsp) + vaesenc %xmm15,%xmm13,%xmm13 + vmovups 128-128(%rcx),%xmm1 + vaesenc %xmm15,%xmm14,%xmm14 + + vaesenc %xmm1,%xmm9,%xmm9 + vmovups 144-128(%rcx),%xmm15 + vaesenc %xmm1,%xmm10,%xmm10 + vpsrldq $8,%xmm6,%xmm6 + vaesenc %xmm1,%xmm11,%xmm11 + vpxor %xmm6,%xmm7,%xmm7 + vaesenc %xmm1,%xmm12,%xmm12 + vpxor %xmm0,%xmm4,%xmm4 + movbeq 8(%r14),%r13 + vaesenc %xmm1,%xmm13,%xmm13 + movbeq 0(%r14),%r12 + vaesenc %xmm1,%xmm14,%xmm14 + vmovups 160-128(%rcx),%xmm1 + cmpl $11,%ebp + jb .Lenc_tail + + vaesenc %xmm15,%xmm9,%xmm9 + vaesenc %xmm15,%xmm10,%xmm10 + vaesenc %xmm15,%xmm11,%xmm11 + vaesenc %xmm15,%xmm12,%xmm12 + vaesenc %xmm15,%xmm13,%xmm13 + vaesenc %xmm15,%xmm14,%xmm14 + + vaesenc %xmm1,%xmm9,%xmm9 + vaesenc %xmm1,%xmm10,%xmm10 + vaesenc %xmm1,%xmm11,%xmm11 + vaesenc %xmm1,%xmm12,%xmm12 + vaesenc %xmm1,%xmm13,%xmm13 + vmovups 176-128(%rcx),%xmm15 + vaesenc %xmm1,%xmm14,%xmm14 + vmovups 192-128(%rcx),%xmm1 + je .Lenc_tail + + vaesenc %xmm15,%xmm9,%xmm9 + vaesenc %xmm15,%xmm10,%xmm10 + vaesenc %xmm15,%xmm11,%xmm11 + vaesenc %xmm15,%xmm12,%xmm12 + vaesenc %xmm15,%xmm13,%xmm13 + vaesenc %xmm15,%xmm14,%xmm14 + + vaesenc %xmm1,%xmm9,%xmm9 + vaesenc %xmm1,%xmm10,%xmm10 + vaesenc %xmm1,%xmm11,%xmm11 + vaesenc %xmm1,%xmm12,%xmm12 + vaesenc %xmm1,%xmm13,%xmm13 + vmovups 208-128(%rcx),%xmm15 + vaesenc %xmm1,%xmm14,%xmm14 + vmovups 224-128(%rcx),%xmm1 + jmp .Lenc_tail + +.align 32 +.Lhandle_ctr32: + vmovdqu (%r11),%xmm0 + vpshufb %xmm0,%xmm1,%xmm6 + vmovdqu 48(%r11),%xmm5 + vpaddd 64(%r11),%xmm6,%xmm10 + vpaddd %xmm5,%xmm6,%xmm11 + vmovdqu 0-32(%r9),%xmm3 + vpaddd %xmm5,%xmm10,%xmm12 + vpshufb %xmm0,%xmm10,%xmm10 + vpaddd %xmm5,%xmm11,%xmm13 + vpshufb %xmm0,%xmm11,%xmm11 + vpxor %xmm15,%xmm10,%xmm10 + vpaddd %xmm5,%xmm12,%xmm14 + vpshufb %xmm0,%xmm12,%xmm12 + vpxor %xmm15,%xmm11,%xmm11 + vpaddd %xmm5,%xmm13,%xmm1 + vpshufb %xmm0,%xmm13,%xmm13 + vpshufb %xmm0,%xmm14,%xmm14 + vpshufb %xmm0,%xmm1,%xmm1 + jmp .Lresume_ctr32 + +.align 32 +.Lenc_tail: + vaesenc %xmm15,%xmm9,%xmm9 + vmovdqu %xmm7,16+8(%rsp) + vpalignr $8,%xmm4,%xmm4,%xmm8 + vaesenc %xmm15,%xmm10,%xmm10 + vpclmulqdq $0x10,%xmm3,%xmm4,%xmm4 + vpxor 0(%rdi),%xmm1,%xmm2 + vaesenc %xmm15,%xmm11,%xmm11 + vpxor 16(%rdi),%xmm1,%xmm0 + vaesenc %xmm15,%xmm12,%xmm12 + vpxor 32(%rdi),%xmm1,%xmm5 + vaesenc %xmm15,%xmm13,%xmm13 + vpxor 48(%rdi),%xmm1,%xmm6 + vaesenc %xmm15,%xmm14,%xmm14 + vpxor 64(%rdi),%xmm1,%xmm7 + vpxor 80(%rdi),%xmm1,%xmm3 + vmovdqu (%r8),%xmm1 + + vaesenclast %xmm2,%xmm9,%xmm9 + vmovdqu 32(%r11),%xmm2 + vaesenclast %xmm0,%xmm10,%xmm10 + vpaddb %xmm2,%xmm1,%xmm0 + movq %r13,112+8(%rsp) + leaq 96(%rdi),%rdi + vaesenclast %xmm5,%xmm11,%xmm11 + vpaddb %xmm2,%xmm0,%xmm5 + movq %r12,120+8(%rsp) + leaq 96(%rsi),%rsi + vmovdqu 0-128(%rcx),%xmm15 + vaesenclast %xmm6,%xmm12,%xmm12 + vpaddb %xmm2,%xmm5,%xmm6 + vaesenclast %xmm7,%xmm13,%xmm13 + vpaddb %xmm2,%xmm6,%xmm7 + vaesenclast %xmm3,%xmm14,%xmm14 + vpaddb %xmm2,%xmm7,%xmm3 + + addq $0x60,%r10 + subq $0x6,%rdx + jc .L6x_done + + vmovups %xmm9,-96(%rsi) + vpxor %xmm15,%xmm1,%xmm9 + vmovups %xmm10,-80(%rsi) + vmovdqa %xmm0,%xmm10 + vmovups %xmm11,-64(%rsi) + vmovdqa %xmm5,%xmm11 + vmovups %xmm12,-48(%rsi) + vmovdqa %xmm6,%xmm12 + vmovups %xmm13,-32(%rsi) + vmovdqa %xmm7,%xmm13 + vmovups %xmm14,-16(%rsi) + vmovdqa %xmm3,%xmm14 + vmovdqu 32+8(%rsp),%xmm7 + jmp .Loop6x + +.L6x_done: + vpxor 16+8(%rsp),%xmm8,%xmm8 + vpxor %xmm4,%xmm8,%xmm8 + + .byte 0xf3,0xc3 +.cfi_endproc +.size _aesni_ctr32_ghash_6x,.-_aesni_ctr32_ghash_6x +.globl aesni_gcm_decrypt +.type aesni_gcm_decrypt,@function +.align 32 +aesni_gcm_decrypt: +.cfi_startproc + xorq %r10,%r10 + cmpq $0x60,%rdx + jb .Lgcm_dec_abort + + leaq (%rsp),%rax +.cfi_def_cfa_register %rax + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_offset %r15,-56 + vzeroupper + + vmovdqu (%r8),%xmm1 + addq $-128,%rsp + movl 12(%r8),%ebx + leaq .Lbswap_mask(%rip),%r11 + leaq -128(%rcx),%r14 + movq $0xf80,%r15 + vmovdqu (%r9),%xmm8 + andq $-128,%rsp + vmovdqu (%r11),%xmm0 + leaq 128(%rcx),%rcx + leaq 32+32(%r9),%r9 + movl 240-128(%rcx),%ebp + vpshufb %xmm0,%xmm8,%xmm8 + + andq %r15,%r14 + andq %rsp,%r15 + subq %r14,%r15 + jc .Ldec_no_key_aliasing + cmpq $768,%r15 + jnc .Ldec_no_key_aliasing + subq %r15,%rsp +.Ldec_no_key_aliasing: + + vmovdqu 80(%rdi),%xmm7 + leaq (%rdi),%r14 + vmovdqu 64(%rdi),%xmm4 + leaq -192(%rdi,%rdx,1),%r15 + vmovdqu 48(%rdi),%xmm5 + shrq $4,%rdx + xorq %r10,%r10 + vmovdqu 32(%rdi),%xmm6 + vpshufb %xmm0,%xmm7,%xmm7 + vmovdqu 16(%rdi),%xmm2 + vpshufb %xmm0,%xmm4,%xmm4 + vmovdqu (%rdi),%xmm3 + vpshufb %xmm0,%xmm5,%xmm5 + vmovdqu %xmm4,48(%rsp) + vpshufb %xmm0,%xmm6,%xmm6 + vmovdqu %xmm5,64(%rsp) + vpshufb %xmm0,%xmm2,%xmm2 + vmovdqu %xmm6,80(%rsp) + vpshufb %xmm0,%xmm3,%xmm3 + vmovdqu %xmm2,96(%rsp) + vmovdqu %xmm3,112(%rsp) + + call _aesni_ctr32_ghash_6x + + vmovups %xmm9,-96(%rsi) + vmovups %xmm10,-80(%rsi) + vmovups %xmm11,-64(%rsi) + vmovups %xmm12,-48(%rsi) + vmovups %xmm13,-32(%rsi) + vmovups %xmm14,-16(%rsi) + + vpshufb (%r11),%xmm8,%xmm8 + vmovdqu %xmm8,-64(%r9) + + vzeroupper + movq -48(%rax),%r15 +.cfi_restore %r15 + movq -40(%rax),%r14 +.cfi_restore %r14 + movq -32(%rax),%r13 +.cfi_restore %r13 + movq -24(%rax),%r12 +.cfi_restore %r12 + movq -16(%rax),%rbp +.cfi_restore %rbp + movq -8(%rax),%rbx +.cfi_restore %rbx + leaq (%rax),%rsp +.cfi_def_cfa_register %rsp +.Lgcm_dec_abort: + movq %r10,%rax + .byte 0xf3,0xc3 +.cfi_endproc +.size aesni_gcm_decrypt,.-aesni_gcm_decrypt +.type _aesni_ctr32_6x,@function +.align 32 +_aesni_ctr32_6x: +.cfi_startproc + vmovdqu 0-128(%rcx),%xmm4 + vmovdqu 32(%r11),%xmm2 + leaq -1(%rbp),%r13 + vmovups 16-128(%rcx),%xmm15 + leaq 32-128(%rcx),%r12 + vpxor %xmm4,%xmm1,%xmm9 + addl $100663296,%ebx + jc .Lhandle_ctr32_2 + vpaddb %xmm2,%xmm1,%xmm10 + vpaddb %xmm2,%xmm10,%xmm11 + vpxor %xmm4,%xmm10,%xmm10 + vpaddb %xmm2,%xmm11,%xmm12 + vpxor %xmm4,%xmm11,%xmm11 + vpaddb %xmm2,%xmm12,%xmm13 + vpxor %xmm4,%xmm12,%xmm12 + vpaddb %xmm2,%xmm13,%xmm14 + vpxor %xmm4,%xmm13,%xmm13 + vpaddb %xmm2,%xmm14,%xmm1 + vpxor %xmm4,%xmm14,%xmm14 + jmp .Loop_ctr32 + +.align 16 +.Loop_ctr32: + vaesenc %xmm15,%xmm9,%xmm9 + vaesenc %xmm15,%xmm10,%xmm10 + vaesenc %xmm15,%xmm11,%xmm11 + vaesenc %xmm15,%xmm12,%xmm12 + vaesenc %xmm15,%xmm13,%xmm13 + vaesenc %xmm15,%xmm14,%xmm14 + vmovups (%r12),%xmm15 + leaq 16(%r12),%r12 + decl %r13d + jnz .Loop_ctr32 + + vmovdqu (%r12),%xmm3 + vaesenc %xmm15,%xmm9,%xmm9 + vpxor 0(%rdi),%xmm3,%xmm4 + vaesenc %xmm15,%xmm10,%xmm10 + vpxor 16(%rdi),%xmm3,%xmm5 + vaesenc %xmm15,%xmm11,%xmm11 + vpxor 32(%rdi),%xmm3,%xmm6 + vaesenc %xmm15,%xmm12,%xmm12 + vpxor 48(%rdi),%xmm3,%xmm8 + vaesenc %xmm15,%xmm13,%xmm13 + vpxor 64(%rdi),%xmm3,%xmm2 + vaesenc %xmm15,%xmm14,%xmm14 + vpxor 80(%rdi),%xmm3,%xmm3 + leaq 96(%rdi),%rdi + + vaesenclast %xmm4,%xmm9,%xmm9 + vaesenclast %xmm5,%xmm10,%xmm10 + vaesenclast %xmm6,%xmm11,%xmm11 + vaesenclast %xmm8,%xmm12,%xmm12 + vaesenclast %xmm2,%xmm13,%xmm13 + vaesenclast %xmm3,%xmm14,%xmm14 + vmovups %xmm9,0(%rsi) + vmovups %xmm10,16(%rsi) + vmovups %xmm11,32(%rsi) + vmovups %xmm12,48(%rsi) + vmovups %xmm13,64(%rsi) + vmovups %xmm14,80(%rsi) + leaq 96(%rsi),%rsi + + .byte 0xf3,0xc3 +.align 32 +.Lhandle_ctr32_2: + vpshufb %xmm0,%xmm1,%xmm6 + vmovdqu 48(%r11),%xmm5 + vpaddd 64(%r11),%xmm6,%xmm10 + vpaddd %xmm5,%xmm6,%xmm11 + vpaddd %xmm5,%xmm10,%xmm12 + vpshufb %xmm0,%xmm10,%xmm10 + vpaddd %xmm5,%xmm11,%xmm13 + vpshufb %xmm0,%xmm11,%xmm11 + vpxor %xmm4,%xmm10,%xmm10 + vpaddd %xmm5,%xmm12,%xmm14 + vpshufb %xmm0,%xmm12,%xmm12 + vpxor %xmm4,%xmm11,%xmm11 + vpaddd %xmm5,%xmm13,%xmm1 + vpshufb %xmm0,%xmm13,%xmm13 + vpxor %xmm4,%xmm12,%xmm12 + vpshufb %xmm0,%xmm14,%xmm14 + vpxor %xmm4,%xmm13,%xmm13 + vpshufb %xmm0,%xmm1,%xmm1 + vpxor %xmm4,%xmm14,%xmm14 + jmp .Loop_ctr32 +.cfi_endproc +.size _aesni_ctr32_6x,.-_aesni_ctr32_6x + +.globl aesni_gcm_encrypt +.type aesni_gcm_encrypt,@function +.align 32 +aesni_gcm_encrypt: +.cfi_startproc + xorq %r10,%r10 + cmpq $288,%rdx + jb .Lgcm_enc_abort + + leaq (%rsp),%rax +.cfi_def_cfa_register %rax + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_offset %r15,-56 + vzeroupper + + vmovdqu (%r8),%xmm1 + addq $-128,%rsp + movl 12(%r8),%ebx + leaq .Lbswap_mask(%rip),%r11 + leaq -128(%rcx),%r14 + movq $0xf80,%r15 + leaq 128(%rcx),%rcx + vmovdqu (%r11),%xmm0 + andq $-128,%rsp + movl 240-128(%rcx),%ebp + + andq %r15,%r14 + andq %rsp,%r15 + subq %r14,%r15 + jc .Lenc_no_key_aliasing + cmpq $768,%r15 + jnc .Lenc_no_key_aliasing + subq %r15,%rsp +.Lenc_no_key_aliasing: + + leaq (%rsi),%r14 + leaq -192(%rsi,%rdx,1),%r15 + shrq $4,%rdx + + call _aesni_ctr32_6x + vpshufb %xmm0,%xmm9,%xmm8 + vpshufb %xmm0,%xmm10,%xmm2 + vmovdqu %xmm8,112(%rsp) + vpshufb %xmm0,%xmm11,%xmm4 + vmovdqu %xmm2,96(%rsp) + vpshufb %xmm0,%xmm12,%xmm5 + vmovdqu %xmm4,80(%rsp) + vpshufb %xmm0,%xmm13,%xmm6 + vmovdqu %xmm5,64(%rsp) + vpshufb %xmm0,%xmm14,%xmm7 + vmovdqu %xmm6,48(%rsp) + + call _aesni_ctr32_6x + + vmovdqu (%r9),%xmm8 + leaq 32+32(%r9),%r9 + subq $12,%rdx + movq $192,%r10 + vpshufb %xmm0,%xmm8,%xmm8 + + call _aesni_ctr32_ghash_6x + vmovdqu 32(%rsp),%xmm7 + vmovdqu (%r11),%xmm0 + vmovdqu 0-32(%r9),%xmm3 + vpunpckhqdq %xmm7,%xmm7,%xmm1 + vmovdqu 32-32(%r9),%xmm15 + vmovups %xmm9,-96(%rsi) + vpshufb %xmm0,%xmm9,%xmm9 + vpxor %xmm7,%xmm1,%xmm1 + vmovups %xmm10,-80(%rsi) + vpshufb %xmm0,%xmm10,%xmm10 + vmovups %xmm11,-64(%rsi) + vpshufb %xmm0,%xmm11,%xmm11 + vmovups %xmm12,-48(%rsi) + vpshufb %xmm0,%xmm12,%xmm12 + vmovups %xmm13,-32(%rsi) + vpshufb %xmm0,%xmm13,%xmm13 + vmovups %xmm14,-16(%rsi) + vpshufb %xmm0,%xmm14,%xmm14 + vmovdqu %xmm9,16(%rsp) + vmovdqu 48(%rsp),%xmm6 + vmovdqu 16-32(%r9),%xmm0 + vpunpckhqdq %xmm6,%xmm6,%xmm2 + vpclmulqdq $0x00,%xmm3,%xmm7,%xmm5 + vpxor %xmm6,%xmm2,%xmm2 + vpclmulqdq $0x11,%xmm3,%xmm7,%xmm7 + vpclmulqdq $0x00,%xmm15,%xmm1,%xmm1 + + vmovdqu 64(%rsp),%xmm9 + vpclmulqdq $0x00,%xmm0,%xmm6,%xmm4 + vmovdqu 48-32(%r9),%xmm3 + vpxor %xmm5,%xmm4,%xmm4 + vpunpckhqdq %xmm9,%xmm9,%xmm5 + vpclmulqdq $0x11,%xmm0,%xmm6,%xmm6 + vpxor %xmm9,%xmm5,%xmm5 + vpxor %xmm7,%xmm6,%xmm6 + vpclmulqdq $0x10,%xmm15,%xmm2,%xmm2 + vmovdqu 80-32(%r9),%xmm15 + vpxor %xmm1,%xmm2,%xmm2 + + vmovdqu 80(%rsp),%xmm1 + vpclmulqdq $0x00,%xmm3,%xmm9,%xmm7 + vmovdqu 64-32(%r9),%xmm0 + vpxor %xmm4,%xmm7,%xmm7 + vpunpckhqdq %xmm1,%xmm1,%xmm4 + vpclmulqdq $0x11,%xmm3,%xmm9,%xmm9 + vpxor %xmm1,%xmm4,%xmm4 + vpxor %xmm6,%xmm9,%xmm9 + vpclmulqdq $0x00,%xmm15,%xmm5,%xmm5 + vpxor %xmm2,%xmm5,%xmm5 + + vmovdqu 96(%rsp),%xmm2 + vpclmulqdq $0x00,%xmm0,%xmm1,%xmm6 + vmovdqu 96-32(%r9),%xmm3 + vpxor %xmm7,%xmm6,%xmm6 + vpunpckhqdq %xmm2,%xmm2,%xmm7 + vpclmulqdq $0x11,%xmm0,%xmm1,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpxor %xmm9,%xmm1,%xmm1 + vpclmulqdq $0x10,%xmm15,%xmm4,%xmm4 + vmovdqu 128-32(%r9),%xmm15 + vpxor %xmm5,%xmm4,%xmm4 + + vpxor 112(%rsp),%xmm8,%xmm8 + vpclmulqdq $0x00,%xmm3,%xmm2,%xmm5 + vmovdqu 112-32(%r9),%xmm0 + vpunpckhqdq %xmm8,%xmm8,%xmm9 + vpxor %xmm6,%xmm5,%xmm5 + vpclmulqdq $0x11,%xmm3,%xmm2,%xmm2 + vpxor %xmm8,%xmm9,%xmm9 + vpxor %xmm1,%xmm2,%xmm2 + vpclmulqdq $0x00,%xmm15,%xmm7,%xmm7 + vpxor %xmm4,%xmm7,%xmm4 + + vpclmulqdq $0x00,%xmm0,%xmm8,%xmm6 + vmovdqu 0-32(%r9),%xmm3 + vpunpckhqdq %xmm14,%xmm14,%xmm1 + vpclmulqdq $0x11,%xmm0,%xmm8,%xmm8 + vpxor %xmm14,%xmm1,%xmm1 + vpxor %xmm5,%xmm6,%xmm5 + vpclmulqdq $0x10,%xmm15,%xmm9,%xmm9 + vmovdqu 32-32(%r9),%xmm15 + vpxor %xmm2,%xmm8,%xmm7 + vpxor %xmm4,%xmm9,%xmm6 + + vmovdqu 16-32(%r9),%xmm0 + vpxor %xmm5,%xmm7,%xmm9 + vpclmulqdq $0x00,%xmm3,%xmm14,%xmm4 + vpxor %xmm9,%xmm6,%xmm6 + vpunpckhqdq %xmm13,%xmm13,%xmm2 + vpclmulqdq $0x11,%xmm3,%xmm14,%xmm14 + vpxor %xmm13,%xmm2,%xmm2 + vpslldq $8,%xmm6,%xmm9 + vpclmulqdq $0x00,%xmm15,%xmm1,%xmm1 + vpxor %xmm9,%xmm5,%xmm8 + vpsrldq $8,%xmm6,%xmm6 + vpxor %xmm6,%xmm7,%xmm7 + + vpclmulqdq $0x00,%xmm0,%xmm13,%xmm5 + vmovdqu 48-32(%r9),%xmm3 + vpxor %xmm4,%xmm5,%xmm5 + vpunpckhqdq %xmm12,%xmm12,%xmm9 + vpclmulqdq $0x11,%xmm0,%xmm13,%xmm13 + vpxor %xmm12,%xmm9,%xmm9 + vpxor %xmm14,%xmm13,%xmm13 + vpalignr $8,%xmm8,%xmm8,%xmm14 + vpclmulqdq $0x10,%xmm15,%xmm2,%xmm2 + vmovdqu 80-32(%r9),%xmm15 + vpxor %xmm1,%xmm2,%xmm2 + + vpclmulqdq $0x00,%xmm3,%xmm12,%xmm4 + vmovdqu 64-32(%r9),%xmm0 + vpxor %xmm5,%xmm4,%xmm4 + vpunpckhqdq %xmm11,%xmm11,%xmm1 + vpclmulqdq $0x11,%xmm3,%xmm12,%xmm12 + vpxor %xmm11,%xmm1,%xmm1 + vpxor %xmm13,%xmm12,%xmm12 + vxorps 16(%rsp),%xmm7,%xmm7 + vpclmulqdq $0x00,%xmm15,%xmm9,%xmm9 + vpxor %xmm2,%xmm9,%xmm9 + + vpclmulqdq $0x10,16(%r11),%xmm8,%xmm8 + vxorps %xmm14,%xmm8,%xmm8 + + vpclmulqdq $0x00,%xmm0,%xmm11,%xmm5 + vmovdqu 96-32(%r9),%xmm3 + vpxor %xmm4,%xmm5,%xmm5 + vpunpckhqdq %xmm10,%xmm10,%xmm2 + vpclmulqdq $0x11,%xmm0,%xmm11,%xmm11 + vpxor %xmm10,%xmm2,%xmm2 + vpalignr $8,%xmm8,%xmm8,%xmm14 + vpxor %xmm12,%xmm11,%xmm11 + vpclmulqdq $0x10,%xmm15,%xmm1,%xmm1 + vmovdqu 128-32(%r9),%xmm15 + vpxor %xmm9,%xmm1,%xmm1 + + vxorps %xmm7,%xmm14,%xmm14 + vpclmulqdq $0x10,16(%r11),%xmm8,%xmm8 + vxorps %xmm14,%xmm8,%xmm8 + + vpclmulqdq $0x00,%xmm3,%xmm10,%xmm4 + vmovdqu 112-32(%r9),%xmm0 + vpxor %xmm5,%xmm4,%xmm4 + vpunpckhqdq %xmm8,%xmm8,%xmm9 + vpclmulqdq $0x11,%xmm3,%xmm10,%xmm10 + vpxor %xmm8,%xmm9,%xmm9 + vpxor %xmm11,%xmm10,%xmm10 + vpclmulqdq $0x00,%xmm15,%xmm2,%xmm2 + vpxor %xmm1,%xmm2,%xmm2 + + vpclmulqdq $0x00,%xmm0,%xmm8,%xmm5 + vpclmulqdq $0x11,%xmm0,%xmm8,%xmm7 + vpxor %xmm4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm15,%xmm9,%xmm6 + vpxor %xmm10,%xmm7,%xmm7 + vpxor %xmm2,%xmm6,%xmm6 + + vpxor %xmm5,%xmm7,%xmm4 + vpxor %xmm4,%xmm6,%xmm6 + vpslldq $8,%xmm6,%xmm1 + vmovdqu 16(%r11),%xmm3 + vpsrldq $8,%xmm6,%xmm6 + vpxor %xmm1,%xmm5,%xmm8 + vpxor %xmm6,%xmm7,%xmm7 + + vpalignr $8,%xmm8,%xmm8,%xmm2 + vpclmulqdq $0x10,%xmm3,%xmm8,%xmm8 + vpxor %xmm2,%xmm8,%xmm8 + + vpalignr $8,%xmm8,%xmm8,%xmm2 + vpclmulqdq $0x10,%xmm3,%xmm8,%xmm8 + vpxor %xmm7,%xmm2,%xmm2 + vpxor %xmm2,%xmm8,%xmm8 + vpshufb (%r11),%xmm8,%xmm8 + vmovdqu %xmm8,-64(%r9) + + vzeroupper + movq -48(%rax),%r15 +.cfi_restore %r15 + movq -40(%rax),%r14 +.cfi_restore %r14 + movq -32(%rax),%r13 +.cfi_restore %r13 + movq -24(%rax),%r12 +.cfi_restore %r12 + movq -16(%rax),%rbp +.cfi_restore %rbp + movq -8(%rax),%rbx +.cfi_restore %rbx + leaq (%rax),%rsp +.cfi_def_cfa_register %rsp +.Lgcm_enc_abort: + movq %r10,%rax + .byte 0xf3,0xc3 +.cfi_endproc +.size aesni_gcm_encrypt,.-aesni_gcm_encrypt +.align 64 +.Lbswap_mask: +.byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 +.Lpoly: +.byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc2 +.Lone_msb: +.byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +.Ltwo_lsb: +.byte 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +.Lone_lsb: +.byte 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +.byte 65,69,83,45,78,73,32,71,67,77,32,109,111,100,117,108,101,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 64 diff --git a/vere/ext/openssl/gen/linux-x86_64/crypto/modes/ghash-x86_64.s b/vere/ext/openssl/gen/linux-x86_64/crypto/modes/ghash-x86_64.s new file mode 100644 index 0000000..586457a --- /dev/null +++ b/vere/ext/openssl/gen/linux-x86_64/crypto/modes/ghash-x86_64.s @@ -0,0 +1,1847 @@ +.text + + +.globl gcm_gmult_4bit +.type gcm_gmult_4bit,@function +.align 16 +gcm_gmult_4bit: +.cfi_startproc + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 + subq $280,%rsp +.cfi_adjust_cfa_offset 280 +.Lgmult_prologue: + + movzbq 15(%rdi),%r8 + leaq .Lrem_4bit(%rip),%r11 + xorq %rax,%rax + xorq %rbx,%rbx + movb %r8b,%al + movb %r8b,%bl + shlb $4,%al + movq $14,%rcx + movq 8(%rsi,%rax,1),%r8 + movq (%rsi,%rax,1),%r9 + andb $0xf0,%bl + movq %r8,%rdx + jmp .Loop1 + +.align 16 +.Loop1: + shrq $4,%r8 + andq $0xf,%rdx + movq %r9,%r10 + movb (%rdi,%rcx,1),%al + shrq $4,%r9 + xorq 8(%rsi,%rbx,1),%r8 + shlq $60,%r10 + xorq (%rsi,%rbx,1),%r9 + movb %al,%bl + xorq (%r11,%rdx,8),%r9 + movq %r8,%rdx + shlb $4,%al + xorq %r10,%r8 + decq %rcx + js .Lbreak1 + + shrq $4,%r8 + andq $0xf,%rdx + movq %r9,%r10 + shrq $4,%r9 + xorq 8(%rsi,%rax,1),%r8 + shlq $60,%r10 + xorq (%rsi,%rax,1),%r9 + andb $0xf0,%bl + xorq (%r11,%rdx,8),%r9 + movq %r8,%rdx + xorq %r10,%r8 + jmp .Loop1 + +.align 16 +.Lbreak1: + shrq $4,%r8 + andq $0xf,%rdx + movq %r9,%r10 + shrq $4,%r9 + xorq 8(%rsi,%rax,1),%r8 + shlq $60,%r10 + xorq (%rsi,%rax,1),%r9 + andb $0xf0,%bl + xorq (%r11,%rdx,8),%r9 + movq %r8,%rdx + xorq %r10,%r8 + + shrq $4,%r8 + andq $0xf,%rdx + movq %r9,%r10 + shrq $4,%r9 + xorq 8(%rsi,%rbx,1),%r8 + shlq $60,%r10 + xorq (%rsi,%rbx,1),%r9 + xorq %r10,%r8 + xorq (%r11,%rdx,8),%r9 + + bswapq %r8 + bswapq %r9 + movq %r8,8(%rdi) + movq %r9,(%rdi) + + leaq 280+48(%rsp),%rsi +.cfi_def_cfa %rsi,8 + movq -8(%rsi),%rbx +.cfi_restore %rbx + leaq (%rsi),%rsp +.cfi_def_cfa_register %rsp +.Lgmult_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size gcm_gmult_4bit,.-gcm_gmult_4bit +.globl gcm_ghash_4bit +.type gcm_ghash_4bit,@function +.align 16 +gcm_ghash_4bit: +.cfi_startproc + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 + subq $280,%rsp +.cfi_adjust_cfa_offset 280 +.Lghash_prologue: + movq %rdx,%r14 + movq %rcx,%r15 + subq $-128,%rsi + leaq 16+128(%rsp),%rbp + xorl %edx,%edx + movq 0+0-128(%rsi),%r8 + movq 0+8-128(%rsi),%rax + movb %al,%dl + shrq $4,%rax + movq %r8,%r10 + shrq $4,%r8 + movq 16+0-128(%rsi),%r9 + shlb $4,%dl + movq 16+8-128(%rsi),%rbx + shlq $60,%r10 + movb %dl,0(%rsp) + orq %r10,%rax + movb %bl,%dl + shrq $4,%rbx + movq %r9,%r10 + shrq $4,%r9 + movq %r8,0(%rbp) + movq 32+0-128(%rsi),%r8 + shlb $4,%dl + movq %rax,0-128(%rbp) + movq 32+8-128(%rsi),%rax + shlq $60,%r10 + movb %dl,1(%rsp) + orq %r10,%rbx + movb %al,%dl + shrq $4,%rax + movq %r8,%r10 + shrq $4,%r8 + movq %r9,8(%rbp) + movq 48+0-128(%rsi),%r9 + shlb $4,%dl + movq %rbx,8-128(%rbp) + movq 48+8-128(%rsi),%rbx + shlq $60,%r10 + movb %dl,2(%rsp) + orq %r10,%rax + movb %bl,%dl + shrq $4,%rbx + movq %r9,%r10 + shrq $4,%r9 + movq %r8,16(%rbp) + movq 64+0-128(%rsi),%r8 + shlb $4,%dl + movq %rax,16-128(%rbp) + movq 64+8-128(%rsi),%rax + shlq $60,%r10 + movb %dl,3(%rsp) + orq %r10,%rbx + movb %al,%dl + shrq $4,%rax + movq %r8,%r10 + shrq $4,%r8 + movq %r9,24(%rbp) + movq 80+0-128(%rsi),%r9 + shlb $4,%dl + movq %rbx,24-128(%rbp) + movq 80+8-128(%rsi),%rbx + shlq $60,%r10 + movb %dl,4(%rsp) + orq %r10,%rax + movb %bl,%dl + shrq $4,%rbx + movq %r9,%r10 + shrq $4,%r9 + movq %r8,32(%rbp) + movq 96+0-128(%rsi),%r8 + shlb $4,%dl + movq %rax,32-128(%rbp) + movq 96+8-128(%rsi),%rax + shlq $60,%r10 + movb %dl,5(%rsp) + orq %r10,%rbx + movb %al,%dl + shrq $4,%rax + movq %r8,%r10 + shrq $4,%r8 + movq %r9,40(%rbp) + movq 112+0-128(%rsi),%r9 + shlb $4,%dl + movq %rbx,40-128(%rbp) + movq 112+8-128(%rsi),%rbx + shlq $60,%r10 + movb %dl,6(%rsp) + orq %r10,%rax + movb %bl,%dl + shrq $4,%rbx + movq %r9,%r10 + shrq $4,%r9 + movq %r8,48(%rbp) + movq 128+0-128(%rsi),%r8 + shlb $4,%dl + movq %rax,48-128(%rbp) + movq 128+8-128(%rsi),%rax + shlq $60,%r10 + movb %dl,7(%rsp) + orq %r10,%rbx + movb %al,%dl + shrq $4,%rax + movq %r8,%r10 + shrq $4,%r8 + movq %r9,56(%rbp) + movq 144+0-128(%rsi),%r9 + shlb $4,%dl + movq %rbx,56-128(%rbp) + movq 144+8-128(%rsi),%rbx + shlq $60,%r10 + movb %dl,8(%rsp) + orq %r10,%rax + movb %bl,%dl + shrq $4,%rbx + movq %r9,%r10 + shrq $4,%r9 + movq %r8,64(%rbp) + movq 160+0-128(%rsi),%r8 + shlb $4,%dl + movq %rax,64-128(%rbp) + movq 160+8-128(%rsi),%rax + shlq $60,%r10 + movb %dl,9(%rsp) + orq %r10,%rbx + movb %al,%dl + shrq $4,%rax + movq %r8,%r10 + shrq $4,%r8 + movq %r9,72(%rbp) + movq 176+0-128(%rsi),%r9 + shlb $4,%dl + movq %rbx,72-128(%rbp) + movq 176+8-128(%rsi),%rbx + shlq $60,%r10 + movb %dl,10(%rsp) + orq %r10,%rax + movb %bl,%dl + shrq $4,%rbx + movq %r9,%r10 + shrq $4,%r9 + movq %r8,80(%rbp) + movq 192+0-128(%rsi),%r8 + shlb $4,%dl + movq %rax,80-128(%rbp) + movq 192+8-128(%rsi),%rax + shlq $60,%r10 + movb %dl,11(%rsp) + orq %r10,%rbx + movb %al,%dl + shrq $4,%rax + movq %r8,%r10 + shrq $4,%r8 + movq %r9,88(%rbp) + movq 208+0-128(%rsi),%r9 + shlb $4,%dl + movq %rbx,88-128(%rbp) + movq 208+8-128(%rsi),%rbx + shlq $60,%r10 + movb %dl,12(%rsp) + orq %r10,%rax + movb %bl,%dl + shrq $4,%rbx + movq %r9,%r10 + shrq $4,%r9 + movq %r8,96(%rbp) + movq 224+0-128(%rsi),%r8 + shlb $4,%dl + movq %rax,96-128(%rbp) + movq 224+8-128(%rsi),%rax + shlq $60,%r10 + movb %dl,13(%rsp) + orq %r10,%rbx + movb %al,%dl + shrq $4,%rax + movq %r8,%r10 + shrq $4,%r8 + movq %r9,104(%rbp) + movq 240+0-128(%rsi),%r9 + shlb $4,%dl + movq %rbx,104-128(%rbp) + movq 240+8-128(%rsi),%rbx + shlq $60,%r10 + movb %dl,14(%rsp) + orq %r10,%rax + movb %bl,%dl + shrq $4,%rbx + movq %r9,%r10 + shrq $4,%r9 + movq %r8,112(%rbp) + shlb $4,%dl + movq %rax,112-128(%rbp) + shlq $60,%r10 + movb %dl,15(%rsp) + orq %r10,%rbx + movq %r9,120(%rbp) + movq %rbx,120-128(%rbp) + addq $-128,%rsi + movq 8(%rdi),%r8 + movq 0(%rdi),%r9 + addq %r14,%r15 + leaq .Lrem_8bit(%rip),%r11 + jmp .Louter_loop +.align 16 +.Louter_loop: + xorq (%r14),%r9 + movq 8(%r14),%rdx + leaq 16(%r14),%r14 + xorq %r8,%rdx + movq %r9,(%rdi) + movq %rdx,8(%rdi) + shrq $32,%rdx + xorq %rax,%rax + roll $8,%edx + movb %dl,%al + movzbl %dl,%ebx + shlb $4,%al + shrl $4,%ebx + roll $8,%edx + movq 8(%rsi,%rax,1),%r8 + movq (%rsi,%rax,1),%r9 + movb %dl,%al + movzbl %dl,%ecx + shlb $4,%al + movzbq (%rsp,%rbx,1),%r12 + shrl $4,%ecx + xorq %r8,%r12 + movq %r9,%r10 + shrq $8,%r8 + movzbq %r12b,%r12 + shrq $8,%r9 + xorq -128(%rbp,%rbx,8),%r8 + shlq $56,%r10 + xorq (%rbp,%rbx,8),%r9 + roll $8,%edx + xorq 8(%rsi,%rax,1),%r8 + xorq (%rsi,%rax,1),%r9 + movb %dl,%al + xorq %r10,%r8 + movzwq (%r11,%r12,2),%r12 + movzbl %dl,%ebx + shlb $4,%al + movzbq (%rsp,%rcx,1),%r13 + shrl $4,%ebx + shlq $48,%r12 + xorq %r8,%r13 + movq %r9,%r10 + xorq %r12,%r9 + shrq $8,%r8 + movzbq %r13b,%r13 + shrq $8,%r9 + xorq -128(%rbp,%rcx,8),%r8 + shlq $56,%r10 + xorq (%rbp,%rcx,8),%r9 + roll $8,%edx + xorq 8(%rsi,%rax,1),%r8 + xorq (%rsi,%rax,1),%r9 + movb %dl,%al + xorq %r10,%r8 + movzwq (%r11,%r13,2),%r13 + movzbl %dl,%ecx + shlb $4,%al + movzbq (%rsp,%rbx,1),%r12 + shrl $4,%ecx + shlq $48,%r13 + xorq %r8,%r12 + movq %r9,%r10 + xorq %r13,%r9 + shrq $8,%r8 + movzbq %r12b,%r12 + movl 8(%rdi),%edx + shrq $8,%r9 + xorq -128(%rbp,%rbx,8),%r8 + shlq $56,%r10 + xorq (%rbp,%rbx,8),%r9 + roll $8,%edx + xorq 8(%rsi,%rax,1),%r8 + xorq (%rsi,%rax,1),%r9 + movb %dl,%al + xorq %r10,%r8 + movzwq (%r11,%r12,2),%r12 + movzbl %dl,%ebx + shlb $4,%al + movzbq (%rsp,%rcx,1),%r13 + shrl $4,%ebx + shlq $48,%r12 + xorq %r8,%r13 + movq %r9,%r10 + xorq %r12,%r9 + shrq $8,%r8 + movzbq %r13b,%r13 + shrq $8,%r9 + xorq -128(%rbp,%rcx,8),%r8 + shlq $56,%r10 + xorq (%rbp,%rcx,8),%r9 + roll $8,%edx + xorq 8(%rsi,%rax,1),%r8 + xorq (%rsi,%rax,1),%r9 + movb %dl,%al + xorq %r10,%r8 + movzwq (%r11,%r13,2),%r13 + movzbl %dl,%ecx + shlb $4,%al + movzbq (%rsp,%rbx,1),%r12 + shrl $4,%ecx + shlq $48,%r13 + xorq %r8,%r12 + movq %r9,%r10 + xorq %r13,%r9 + shrq $8,%r8 + movzbq %r12b,%r12 + shrq $8,%r9 + xorq -128(%rbp,%rbx,8),%r8 + shlq $56,%r10 + xorq (%rbp,%rbx,8),%r9 + roll $8,%edx + xorq 8(%rsi,%rax,1),%r8 + xorq (%rsi,%rax,1),%r9 + movb %dl,%al + xorq %r10,%r8 + movzwq (%r11,%r12,2),%r12 + movzbl %dl,%ebx + shlb $4,%al + movzbq (%rsp,%rcx,1),%r13 + shrl $4,%ebx + shlq $48,%r12 + xorq %r8,%r13 + movq %r9,%r10 + xorq %r12,%r9 + shrq $8,%r8 + movzbq %r13b,%r13 + shrq $8,%r9 + xorq -128(%rbp,%rcx,8),%r8 + shlq $56,%r10 + xorq (%rbp,%rcx,8),%r9 + roll $8,%edx + xorq 8(%rsi,%rax,1),%r8 + xorq (%rsi,%rax,1),%r9 + movb %dl,%al + xorq %r10,%r8 + movzwq (%r11,%r13,2),%r13 + movzbl %dl,%ecx + shlb $4,%al + movzbq (%rsp,%rbx,1),%r12 + shrl $4,%ecx + shlq $48,%r13 + xorq %r8,%r12 + movq %r9,%r10 + xorq %r13,%r9 + shrq $8,%r8 + movzbq %r12b,%r12 + movl 4(%rdi),%edx + shrq $8,%r9 + xorq -128(%rbp,%rbx,8),%r8 + shlq $56,%r10 + xorq (%rbp,%rbx,8),%r9 + roll $8,%edx + xorq 8(%rsi,%rax,1),%r8 + xorq (%rsi,%rax,1),%r9 + movb %dl,%al + xorq %r10,%r8 + movzwq (%r11,%r12,2),%r12 + movzbl %dl,%ebx + shlb $4,%al + movzbq (%rsp,%rcx,1),%r13 + shrl $4,%ebx + shlq $48,%r12 + xorq %r8,%r13 + movq %r9,%r10 + xorq %r12,%r9 + shrq $8,%r8 + movzbq %r13b,%r13 + shrq $8,%r9 + xorq -128(%rbp,%rcx,8),%r8 + shlq $56,%r10 + xorq (%rbp,%rcx,8),%r9 + roll $8,%edx + xorq 8(%rsi,%rax,1),%r8 + xorq (%rsi,%rax,1),%r9 + movb %dl,%al + xorq %r10,%r8 + movzwq (%r11,%r13,2),%r13 + movzbl %dl,%ecx + shlb $4,%al + movzbq (%rsp,%rbx,1),%r12 + shrl $4,%ecx + shlq $48,%r13 + xorq %r8,%r12 + movq %r9,%r10 + xorq %r13,%r9 + shrq $8,%r8 + movzbq %r12b,%r12 + shrq $8,%r9 + xorq -128(%rbp,%rbx,8),%r8 + shlq $56,%r10 + xorq (%rbp,%rbx,8),%r9 + roll $8,%edx + xorq 8(%rsi,%rax,1),%r8 + xorq (%rsi,%rax,1),%r9 + movb %dl,%al + xorq %r10,%r8 + movzwq (%r11,%r12,2),%r12 + movzbl %dl,%ebx + shlb $4,%al + movzbq (%rsp,%rcx,1),%r13 + shrl $4,%ebx + shlq $48,%r12 + xorq %r8,%r13 + movq %r9,%r10 + xorq %r12,%r9 + shrq $8,%r8 + movzbq %r13b,%r13 + shrq $8,%r9 + xorq -128(%rbp,%rcx,8),%r8 + shlq $56,%r10 + xorq (%rbp,%rcx,8),%r9 + roll $8,%edx + xorq 8(%rsi,%rax,1),%r8 + xorq (%rsi,%rax,1),%r9 + movb %dl,%al + xorq %r10,%r8 + movzwq (%r11,%r13,2),%r13 + movzbl %dl,%ecx + shlb $4,%al + movzbq (%rsp,%rbx,1),%r12 + shrl $4,%ecx + shlq $48,%r13 + xorq %r8,%r12 + movq %r9,%r10 + xorq %r13,%r9 + shrq $8,%r8 + movzbq %r12b,%r12 + movl 0(%rdi),%edx + shrq $8,%r9 + xorq -128(%rbp,%rbx,8),%r8 + shlq $56,%r10 + xorq (%rbp,%rbx,8),%r9 + roll $8,%edx + xorq 8(%rsi,%rax,1),%r8 + xorq (%rsi,%rax,1),%r9 + movb %dl,%al + xorq %r10,%r8 + movzwq (%r11,%r12,2),%r12 + movzbl %dl,%ebx + shlb $4,%al + movzbq (%rsp,%rcx,1),%r13 + shrl $4,%ebx + shlq $48,%r12 + xorq %r8,%r13 + movq %r9,%r10 + xorq %r12,%r9 + shrq $8,%r8 + movzbq %r13b,%r13 + shrq $8,%r9 + xorq -128(%rbp,%rcx,8),%r8 + shlq $56,%r10 + xorq (%rbp,%rcx,8),%r9 + roll $8,%edx + xorq 8(%rsi,%rax,1),%r8 + xorq (%rsi,%rax,1),%r9 + movb %dl,%al + xorq %r10,%r8 + movzwq (%r11,%r13,2),%r13 + movzbl %dl,%ecx + shlb $4,%al + movzbq (%rsp,%rbx,1),%r12 + shrl $4,%ecx + shlq $48,%r13 + xorq %r8,%r12 + movq %r9,%r10 + xorq %r13,%r9 + shrq $8,%r8 + movzbq %r12b,%r12 + shrq $8,%r9 + xorq -128(%rbp,%rbx,8),%r8 + shlq $56,%r10 + xorq (%rbp,%rbx,8),%r9 + roll $8,%edx + xorq 8(%rsi,%rax,1),%r8 + xorq (%rsi,%rax,1),%r9 + movb %dl,%al + xorq %r10,%r8 + movzwq (%r11,%r12,2),%r12 + movzbl %dl,%ebx + shlb $4,%al + movzbq (%rsp,%rcx,1),%r13 + shrl $4,%ebx + shlq $48,%r12 + xorq %r8,%r13 + movq %r9,%r10 + xorq %r12,%r9 + shrq $8,%r8 + movzbq %r13b,%r13 + shrq $8,%r9 + xorq -128(%rbp,%rcx,8),%r8 + shlq $56,%r10 + xorq (%rbp,%rcx,8),%r9 + roll $8,%edx + xorq 8(%rsi,%rax,1),%r8 + xorq (%rsi,%rax,1),%r9 + movb %dl,%al + xorq %r10,%r8 + movzwq (%r11,%r13,2),%r13 + movzbl %dl,%ecx + shlb $4,%al + movzbq (%rsp,%rbx,1),%r12 + andl $240,%ecx + shlq $48,%r13 + xorq %r8,%r12 + movq %r9,%r10 + xorq %r13,%r9 + shrq $8,%r8 + movzbq %r12b,%r12 + movl -4(%rdi),%edx + shrq $8,%r9 + xorq -128(%rbp,%rbx,8),%r8 + shlq $56,%r10 + xorq (%rbp,%rbx,8),%r9 + movzwq (%r11,%r12,2),%r12 + xorq 8(%rsi,%rax,1),%r8 + xorq (%rsi,%rax,1),%r9 + shlq $48,%r12 + xorq %r10,%r8 + xorq %r12,%r9 + movzbq %r8b,%r13 + shrq $4,%r8 + movq %r9,%r10 + shlb $4,%r13b + shrq $4,%r9 + xorq 8(%rsi,%rcx,1),%r8 + movzwq (%r11,%r13,2),%r13 + shlq $60,%r10 + xorq (%rsi,%rcx,1),%r9 + xorq %r10,%r8 + shlq $48,%r13 + bswapq %r8 + xorq %r13,%r9 + bswapq %r9 + cmpq %r15,%r14 + jb .Louter_loop + movq %r8,8(%rdi) + movq %r9,(%rdi) + + leaq 280+48(%rsp),%rsi +.cfi_def_cfa %rsi,8 + movq -48(%rsi),%r15 +.cfi_restore %r15 + movq -40(%rsi),%r14 +.cfi_restore %r14 + movq -32(%rsi),%r13 +.cfi_restore %r13 + movq -24(%rsi),%r12 +.cfi_restore %r12 + movq -16(%rsi),%rbp +.cfi_restore %rbp + movq -8(%rsi),%rbx +.cfi_restore %rbx + leaq 0(%rsi),%rsp +.cfi_def_cfa_register %rsp +.Lghash_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size gcm_ghash_4bit,.-gcm_ghash_4bit +.globl gcm_init_clmul +.type gcm_init_clmul,@function +.align 16 +gcm_init_clmul: +.cfi_startproc +.L_init_clmul: + movdqu (%rsi),%xmm2 + pshufd $78,%xmm2,%xmm2 + + + pshufd $255,%xmm2,%xmm4 + movdqa %xmm2,%xmm3 + psllq $1,%xmm2 + pxor %xmm5,%xmm5 + psrlq $63,%xmm3 + pcmpgtd %xmm4,%xmm5 + pslldq $8,%xmm3 + por %xmm3,%xmm2 + + + pand .L0x1c2_polynomial(%rip),%xmm5 + pxor %xmm5,%xmm2 + + + pshufd $78,%xmm2,%xmm6 + movdqa %xmm2,%xmm0 + pxor %xmm2,%xmm6 + movdqa %xmm0,%xmm1 + pshufd $78,%xmm0,%xmm3 + pxor %xmm0,%xmm3 +.byte 102,15,58,68,194,0 +.byte 102,15,58,68,202,17 +.byte 102,15,58,68,222,0 + pxor %xmm0,%xmm3 + pxor %xmm1,%xmm3 + + movdqa %xmm3,%xmm4 + psrldq $8,%xmm3 + pslldq $8,%xmm4 + pxor %xmm3,%xmm1 + pxor %xmm4,%xmm0 + + movdqa %xmm0,%xmm4 + movdqa %xmm0,%xmm3 + psllq $5,%xmm0 + pxor %xmm0,%xmm3 + psllq $1,%xmm0 + pxor %xmm3,%xmm0 + psllq $57,%xmm0 + movdqa %xmm0,%xmm3 + pslldq $8,%xmm0 + psrldq $8,%xmm3 + pxor %xmm4,%xmm0 + pxor %xmm3,%xmm1 + + + movdqa %xmm0,%xmm4 + psrlq $1,%xmm0 + pxor %xmm4,%xmm1 + pxor %xmm0,%xmm4 + psrlq $5,%xmm0 + pxor %xmm4,%xmm0 + psrlq $1,%xmm0 + pxor %xmm1,%xmm0 + pshufd $78,%xmm2,%xmm3 + pshufd $78,%xmm0,%xmm4 + pxor %xmm2,%xmm3 + movdqu %xmm2,0(%rdi) + pxor %xmm0,%xmm4 + movdqu %xmm0,16(%rdi) +.byte 102,15,58,15,227,8 + movdqu %xmm4,32(%rdi) + movdqa %xmm0,%xmm1 + pshufd $78,%xmm0,%xmm3 + pxor %xmm0,%xmm3 +.byte 102,15,58,68,194,0 +.byte 102,15,58,68,202,17 +.byte 102,15,58,68,222,0 + pxor %xmm0,%xmm3 + pxor %xmm1,%xmm3 + + movdqa %xmm3,%xmm4 + psrldq $8,%xmm3 + pslldq $8,%xmm4 + pxor %xmm3,%xmm1 + pxor %xmm4,%xmm0 + + movdqa %xmm0,%xmm4 + movdqa %xmm0,%xmm3 + psllq $5,%xmm0 + pxor %xmm0,%xmm3 + psllq $1,%xmm0 + pxor %xmm3,%xmm0 + psllq $57,%xmm0 + movdqa %xmm0,%xmm3 + pslldq $8,%xmm0 + psrldq $8,%xmm3 + pxor %xmm4,%xmm0 + pxor %xmm3,%xmm1 + + + movdqa %xmm0,%xmm4 + psrlq $1,%xmm0 + pxor %xmm4,%xmm1 + pxor %xmm0,%xmm4 + psrlq $5,%xmm0 + pxor %xmm4,%xmm0 + psrlq $1,%xmm0 + pxor %xmm1,%xmm0 + movdqa %xmm0,%xmm5 + movdqa %xmm0,%xmm1 + pshufd $78,%xmm0,%xmm3 + pxor %xmm0,%xmm3 +.byte 102,15,58,68,194,0 +.byte 102,15,58,68,202,17 +.byte 102,15,58,68,222,0 + pxor %xmm0,%xmm3 + pxor %xmm1,%xmm3 + + movdqa %xmm3,%xmm4 + psrldq $8,%xmm3 + pslldq $8,%xmm4 + pxor %xmm3,%xmm1 + pxor %xmm4,%xmm0 + + movdqa %xmm0,%xmm4 + movdqa %xmm0,%xmm3 + psllq $5,%xmm0 + pxor %xmm0,%xmm3 + psllq $1,%xmm0 + pxor %xmm3,%xmm0 + psllq $57,%xmm0 + movdqa %xmm0,%xmm3 + pslldq $8,%xmm0 + psrldq $8,%xmm3 + pxor %xmm4,%xmm0 + pxor %xmm3,%xmm1 + + + movdqa %xmm0,%xmm4 + psrlq $1,%xmm0 + pxor %xmm4,%xmm1 + pxor %xmm0,%xmm4 + psrlq $5,%xmm0 + pxor %xmm4,%xmm0 + psrlq $1,%xmm0 + pxor %xmm1,%xmm0 + pshufd $78,%xmm5,%xmm3 + pshufd $78,%xmm0,%xmm4 + pxor %xmm5,%xmm3 + movdqu %xmm5,48(%rdi) + pxor %xmm0,%xmm4 + movdqu %xmm0,64(%rdi) +.byte 102,15,58,15,227,8 + movdqu %xmm4,80(%rdi) + .byte 0xf3,0xc3 +.cfi_endproc +.size gcm_init_clmul,.-gcm_init_clmul +.globl gcm_gmult_clmul +.type gcm_gmult_clmul,@function +.align 16 +gcm_gmult_clmul: +.cfi_startproc +.L_gmult_clmul: + movdqu (%rdi),%xmm0 + movdqa .Lbswap_mask(%rip),%xmm5 + movdqu (%rsi),%xmm2 + movdqu 32(%rsi),%xmm4 +.byte 102,15,56,0,197 + movdqa %xmm0,%xmm1 + pshufd $78,%xmm0,%xmm3 + pxor %xmm0,%xmm3 +.byte 102,15,58,68,194,0 +.byte 102,15,58,68,202,17 +.byte 102,15,58,68,220,0 + pxor %xmm0,%xmm3 + pxor %xmm1,%xmm3 + + movdqa %xmm3,%xmm4 + psrldq $8,%xmm3 + pslldq $8,%xmm4 + pxor %xmm3,%xmm1 + pxor %xmm4,%xmm0 + + movdqa %xmm0,%xmm4 + movdqa %xmm0,%xmm3 + psllq $5,%xmm0 + pxor %xmm0,%xmm3 + psllq $1,%xmm0 + pxor %xmm3,%xmm0 + psllq $57,%xmm0 + movdqa %xmm0,%xmm3 + pslldq $8,%xmm0 + psrldq $8,%xmm3 + pxor %xmm4,%xmm0 + pxor %xmm3,%xmm1 + + + movdqa %xmm0,%xmm4 + psrlq $1,%xmm0 + pxor %xmm4,%xmm1 + pxor %xmm0,%xmm4 + psrlq $5,%xmm0 + pxor %xmm4,%xmm0 + psrlq $1,%xmm0 + pxor %xmm1,%xmm0 +.byte 102,15,56,0,197 + movdqu %xmm0,(%rdi) + .byte 0xf3,0xc3 +.cfi_endproc +.size gcm_gmult_clmul,.-gcm_gmult_clmul +.globl gcm_ghash_clmul +.type gcm_ghash_clmul,@function +.align 32 +gcm_ghash_clmul: +.cfi_startproc +.L_ghash_clmul: + movdqa .Lbswap_mask(%rip),%xmm10 + + movdqu (%rdi),%xmm0 + movdqu (%rsi),%xmm2 + movdqu 32(%rsi),%xmm7 +.byte 102,65,15,56,0,194 + + subq $0x10,%rcx + jz .Lodd_tail + + movdqu 16(%rsi),%xmm6 + movl OPENSSL_ia32cap_P+4(%rip),%eax + cmpq $0x30,%rcx + jb .Lskip4x + + andl $71303168,%eax + cmpl $4194304,%eax + je .Lskip4x + + subq $0x30,%rcx + movq $0xA040608020C0E000,%rax + movdqu 48(%rsi),%xmm14 + movdqu 64(%rsi),%xmm15 + + + + + movdqu 48(%rdx),%xmm3 + movdqu 32(%rdx),%xmm11 +.byte 102,65,15,56,0,218 +.byte 102,69,15,56,0,218 + movdqa %xmm3,%xmm5 + pshufd $78,%xmm3,%xmm4 + pxor %xmm3,%xmm4 +.byte 102,15,58,68,218,0 +.byte 102,15,58,68,234,17 +.byte 102,15,58,68,231,0 + + movdqa %xmm11,%xmm13 + pshufd $78,%xmm11,%xmm12 + pxor %xmm11,%xmm12 +.byte 102,68,15,58,68,222,0 +.byte 102,68,15,58,68,238,17 +.byte 102,68,15,58,68,231,16 + xorps %xmm11,%xmm3 + xorps %xmm13,%xmm5 + movups 80(%rsi),%xmm7 + xorps %xmm12,%xmm4 + + movdqu 16(%rdx),%xmm11 + movdqu 0(%rdx),%xmm8 +.byte 102,69,15,56,0,218 +.byte 102,69,15,56,0,194 + movdqa %xmm11,%xmm13 + pshufd $78,%xmm11,%xmm12 + pxor %xmm8,%xmm0 + pxor %xmm11,%xmm12 +.byte 102,69,15,58,68,222,0 + movdqa %xmm0,%xmm1 + pshufd $78,%xmm0,%xmm8 + pxor %xmm0,%xmm8 +.byte 102,69,15,58,68,238,17 +.byte 102,68,15,58,68,231,0 + xorps %xmm11,%xmm3 + xorps %xmm13,%xmm5 + + leaq 64(%rdx),%rdx + subq $0x40,%rcx + jc .Ltail4x + + jmp .Lmod4_loop +.align 32 +.Lmod4_loop: +.byte 102,65,15,58,68,199,0 + xorps %xmm12,%xmm4 + movdqu 48(%rdx),%xmm11 +.byte 102,69,15,56,0,218 +.byte 102,65,15,58,68,207,17 + xorps %xmm3,%xmm0 + movdqu 32(%rdx),%xmm3 + movdqa %xmm11,%xmm13 +.byte 102,68,15,58,68,199,16 + pshufd $78,%xmm11,%xmm12 + xorps %xmm5,%xmm1 + pxor %xmm11,%xmm12 +.byte 102,65,15,56,0,218 + movups 32(%rsi),%xmm7 + xorps %xmm4,%xmm8 +.byte 102,68,15,58,68,218,0 + pshufd $78,%xmm3,%xmm4 + + pxor %xmm0,%xmm8 + movdqa %xmm3,%xmm5 + pxor %xmm1,%xmm8 + pxor %xmm3,%xmm4 + movdqa %xmm8,%xmm9 +.byte 102,68,15,58,68,234,17 + pslldq $8,%xmm8 + psrldq $8,%xmm9 + pxor %xmm8,%xmm0 + movdqa .L7_mask(%rip),%xmm8 + pxor %xmm9,%xmm1 +.byte 102,76,15,110,200 + + pand %xmm0,%xmm8 +.byte 102,69,15,56,0,200 + pxor %xmm0,%xmm9 +.byte 102,68,15,58,68,231,0 + psllq $57,%xmm9 + movdqa %xmm9,%xmm8 + pslldq $8,%xmm9 +.byte 102,15,58,68,222,0 + psrldq $8,%xmm8 + pxor %xmm9,%xmm0 + pxor %xmm8,%xmm1 + movdqu 0(%rdx),%xmm8 + + movdqa %xmm0,%xmm9 + psrlq $1,%xmm0 +.byte 102,15,58,68,238,17 + xorps %xmm11,%xmm3 + movdqu 16(%rdx),%xmm11 +.byte 102,69,15,56,0,218 +.byte 102,15,58,68,231,16 + xorps %xmm13,%xmm5 + movups 80(%rsi),%xmm7 +.byte 102,69,15,56,0,194 + pxor %xmm9,%xmm1 + pxor %xmm0,%xmm9 + psrlq $5,%xmm0 + + movdqa %xmm11,%xmm13 + pxor %xmm12,%xmm4 + pshufd $78,%xmm11,%xmm12 + pxor %xmm9,%xmm0 + pxor %xmm8,%xmm1 + pxor %xmm11,%xmm12 +.byte 102,69,15,58,68,222,0 + psrlq $1,%xmm0 + pxor %xmm1,%xmm0 + movdqa %xmm0,%xmm1 +.byte 102,69,15,58,68,238,17 + xorps %xmm11,%xmm3 + pshufd $78,%xmm0,%xmm8 + pxor %xmm0,%xmm8 + +.byte 102,68,15,58,68,231,0 + xorps %xmm13,%xmm5 + + leaq 64(%rdx),%rdx + subq $0x40,%rcx + jnc .Lmod4_loop + +.Ltail4x: +.byte 102,65,15,58,68,199,0 +.byte 102,65,15,58,68,207,17 +.byte 102,68,15,58,68,199,16 + xorps %xmm12,%xmm4 + xorps %xmm3,%xmm0 + xorps %xmm5,%xmm1 + pxor %xmm0,%xmm1 + pxor %xmm4,%xmm8 + + pxor %xmm1,%xmm8 + pxor %xmm0,%xmm1 + + movdqa %xmm8,%xmm9 + psrldq $8,%xmm8 + pslldq $8,%xmm9 + pxor %xmm8,%xmm1 + pxor %xmm9,%xmm0 + + movdqa %xmm0,%xmm4 + movdqa %xmm0,%xmm3 + psllq $5,%xmm0 + pxor %xmm0,%xmm3 + psllq $1,%xmm0 + pxor %xmm3,%xmm0 + psllq $57,%xmm0 + movdqa %xmm0,%xmm3 + pslldq $8,%xmm0 + psrldq $8,%xmm3 + pxor %xmm4,%xmm0 + pxor %xmm3,%xmm1 + + + movdqa %xmm0,%xmm4 + psrlq $1,%xmm0 + pxor %xmm4,%xmm1 + pxor %xmm0,%xmm4 + psrlq $5,%xmm0 + pxor %xmm4,%xmm0 + psrlq $1,%xmm0 + pxor %xmm1,%xmm0 + addq $0x40,%rcx + jz .Ldone + movdqu 32(%rsi),%xmm7 + subq $0x10,%rcx + jz .Lodd_tail +.Lskip4x: + + + + + + movdqu (%rdx),%xmm8 + movdqu 16(%rdx),%xmm3 +.byte 102,69,15,56,0,194 +.byte 102,65,15,56,0,218 + pxor %xmm8,%xmm0 + + movdqa %xmm3,%xmm5 + pshufd $78,%xmm3,%xmm4 + pxor %xmm3,%xmm4 +.byte 102,15,58,68,218,0 +.byte 102,15,58,68,234,17 +.byte 102,15,58,68,231,0 + + leaq 32(%rdx),%rdx + nop + subq $0x20,%rcx + jbe .Leven_tail + nop + jmp .Lmod_loop + +.align 32 +.Lmod_loop: + movdqa %xmm0,%xmm1 + movdqa %xmm4,%xmm8 + pshufd $78,%xmm0,%xmm4 + pxor %xmm0,%xmm4 + +.byte 102,15,58,68,198,0 +.byte 102,15,58,68,206,17 +.byte 102,15,58,68,231,16 + + pxor %xmm3,%xmm0 + pxor %xmm5,%xmm1 + movdqu (%rdx),%xmm9 + pxor %xmm0,%xmm8 +.byte 102,69,15,56,0,202 + movdqu 16(%rdx),%xmm3 + + pxor %xmm1,%xmm8 + pxor %xmm9,%xmm1 + pxor %xmm8,%xmm4 +.byte 102,65,15,56,0,218 + movdqa %xmm4,%xmm8 + psrldq $8,%xmm8 + pslldq $8,%xmm4 + pxor %xmm8,%xmm1 + pxor %xmm4,%xmm0 + + movdqa %xmm3,%xmm5 + + movdqa %xmm0,%xmm9 + movdqa %xmm0,%xmm8 + psllq $5,%xmm0 + pxor %xmm0,%xmm8 +.byte 102,15,58,68,218,0 + psllq $1,%xmm0 + pxor %xmm8,%xmm0 + psllq $57,%xmm0 + movdqa %xmm0,%xmm8 + pslldq $8,%xmm0 + psrldq $8,%xmm8 + pxor %xmm9,%xmm0 + pshufd $78,%xmm5,%xmm4 + pxor %xmm8,%xmm1 + pxor %xmm5,%xmm4 + + movdqa %xmm0,%xmm9 + psrlq $1,%xmm0 +.byte 102,15,58,68,234,17 + pxor %xmm9,%xmm1 + pxor %xmm0,%xmm9 + psrlq $5,%xmm0 + pxor %xmm9,%xmm0 + leaq 32(%rdx),%rdx + psrlq $1,%xmm0 +.byte 102,15,58,68,231,0 + pxor %xmm1,%xmm0 + + subq $0x20,%rcx + ja .Lmod_loop + +.Leven_tail: + movdqa %xmm0,%xmm1 + movdqa %xmm4,%xmm8 + pshufd $78,%xmm0,%xmm4 + pxor %xmm0,%xmm4 + +.byte 102,15,58,68,198,0 +.byte 102,15,58,68,206,17 +.byte 102,15,58,68,231,16 + + pxor %xmm3,%xmm0 + pxor %xmm5,%xmm1 + pxor %xmm0,%xmm8 + pxor %xmm1,%xmm8 + pxor %xmm8,%xmm4 + movdqa %xmm4,%xmm8 + psrldq $8,%xmm8 + pslldq $8,%xmm4 + pxor %xmm8,%xmm1 + pxor %xmm4,%xmm0 + + movdqa %xmm0,%xmm4 + movdqa %xmm0,%xmm3 + psllq $5,%xmm0 + pxor %xmm0,%xmm3 + psllq $1,%xmm0 + pxor %xmm3,%xmm0 + psllq $57,%xmm0 + movdqa %xmm0,%xmm3 + pslldq $8,%xmm0 + psrldq $8,%xmm3 + pxor %xmm4,%xmm0 + pxor %xmm3,%xmm1 + + + movdqa %xmm0,%xmm4 + psrlq $1,%xmm0 + pxor %xmm4,%xmm1 + pxor %xmm0,%xmm4 + psrlq $5,%xmm0 + pxor %xmm4,%xmm0 + psrlq $1,%xmm0 + pxor %xmm1,%xmm0 + testq %rcx,%rcx + jnz .Ldone + +.Lodd_tail: + movdqu (%rdx),%xmm8 +.byte 102,69,15,56,0,194 + pxor %xmm8,%xmm0 + movdqa %xmm0,%xmm1 + pshufd $78,%xmm0,%xmm3 + pxor %xmm0,%xmm3 +.byte 102,15,58,68,194,0 +.byte 102,15,58,68,202,17 +.byte 102,15,58,68,223,0 + pxor %xmm0,%xmm3 + pxor %xmm1,%xmm3 + + movdqa %xmm3,%xmm4 + psrldq $8,%xmm3 + pslldq $8,%xmm4 + pxor %xmm3,%xmm1 + pxor %xmm4,%xmm0 + + movdqa %xmm0,%xmm4 + movdqa %xmm0,%xmm3 + psllq $5,%xmm0 + pxor %xmm0,%xmm3 + psllq $1,%xmm0 + pxor %xmm3,%xmm0 + psllq $57,%xmm0 + movdqa %xmm0,%xmm3 + pslldq $8,%xmm0 + psrldq $8,%xmm3 + pxor %xmm4,%xmm0 + pxor %xmm3,%xmm1 + + + movdqa %xmm0,%xmm4 + psrlq $1,%xmm0 + pxor %xmm4,%xmm1 + pxor %xmm0,%xmm4 + psrlq $5,%xmm0 + pxor %xmm4,%xmm0 + psrlq $1,%xmm0 + pxor %xmm1,%xmm0 +.Ldone: +.byte 102,65,15,56,0,194 + movdqu %xmm0,(%rdi) + .byte 0xf3,0xc3 +.cfi_endproc +.size gcm_ghash_clmul,.-gcm_ghash_clmul +.globl gcm_init_avx +.type gcm_init_avx,@function +.align 32 +gcm_init_avx: +.cfi_startproc + vzeroupper + + vmovdqu (%rsi),%xmm2 + vpshufd $78,%xmm2,%xmm2 + + + vpshufd $255,%xmm2,%xmm4 + vpsrlq $63,%xmm2,%xmm3 + vpsllq $1,%xmm2,%xmm2 + vpxor %xmm5,%xmm5,%xmm5 + vpcmpgtd %xmm4,%xmm5,%xmm5 + vpslldq $8,%xmm3,%xmm3 + vpor %xmm3,%xmm2,%xmm2 + + + vpand .L0x1c2_polynomial(%rip),%xmm5,%xmm5 + vpxor %xmm5,%xmm2,%xmm2 + + vpunpckhqdq %xmm2,%xmm2,%xmm6 + vmovdqa %xmm2,%xmm0 + vpxor %xmm2,%xmm6,%xmm6 + movq $4,%r10 + jmp .Linit_start_avx +.align 32 +.Linit_loop_avx: + vpalignr $8,%xmm3,%xmm4,%xmm5 + vmovdqu %xmm5,-16(%rdi) + vpunpckhqdq %xmm0,%xmm0,%xmm3 + vpxor %xmm0,%xmm3,%xmm3 + vpclmulqdq $0x11,%xmm2,%xmm0,%xmm1 + vpclmulqdq $0x00,%xmm2,%xmm0,%xmm0 + vpclmulqdq $0x00,%xmm6,%xmm3,%xmm3 + vpxor %xmm0,%xmm1,%xmm4 + vpxor %xmm4,%xmm3,%xmm3 + + vpslldq $8,%xmm3,%xmm4 + vpsrldq $8,%xmm3,%xmm3 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm3,%xmm1,%xmm1 + vpsllq $57,%xmm0,%xmm3 + vpsllq $62,%xmm0,%xmm4 + vpxor %xmm3,%xmm4,%xmm4 + vpsllq $63,%xmm0,%xmm3 + vpxor %xmm3,%xmm4,%xmm4 + vpslldq $8,%xmm4,%xmm3 + vpsrldq $8,%xmm4,%xmm4 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm4,%xmm1,%xmm1 + + vpsrlq $1,%xmm0,%xmm4 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpsrlq $5,%xmm4,%xmm4 + vpxor %xmm4,%xmm0,%xmm0 + vpsrlq $1,%xmm0,%xmm0 + vpxor %xmm1,%xmm0,%xmm0 +.Linit_start_avx: + vmovdqa %xmm0,%xmm5 + vpunpckhqdq %xmm0,%xmm0,%xmm3 + vpxor %xmm0,%xmm3,%xmm3 + vpclmulqdq $0x11,%xmm2,%xmm0,%xmm1 + vpclmulqdq $0x00,%xmm2,%xmm0,%xmm0 + vpclmulqdq $0x00,%xmm6,%xmm3,%xmm3 + vpxor %xmm0,%xmm1,%xmm4 + vpxor %xmm4,%xmm3,%xmm3 + + vpslldq $8,%xmm3,%xmm4 + vpsrldq $8,%xmm3,%xmm3 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm3,%xmm1,%xmm1 + vpsllq $57,%xmm0,%xmm3 + vpsllq $62,%xmm0,%xmm4 + vpxor %xmm3,%xmm4,%xmm4 + vpsllq $63,%xmm0,%xmm3 + vpxor %xmm3,%xmm4,%xmm4 + vpslldq $8,%xmm4,%xmm3 + vpsrldq $8,%xmm4,%xmm4 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm4,%xmm1,%xmm1 + + vpsrlq $1,%xmm0,%xmm4 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpsrlq $5,%xmm4,%xmm4 + vpxor %xmm4,%xmm0,%xmm0 + vpsrlq $1,%xmm0,%xmm0 + vpxor %xmm1,%xmm0,%xmm0 + vpshufd $78,%xmm5,%xmm3 + vpshufd $78,%xmm0,%xmm4 + vpxor %xmm5,%xmm3,%xmm3 + vmovdqu %xmm5,0(%rdi) + vpxor %xmm0,%xmm4,%xmm4 + vmovdqu %xmm0,16(%rdi) + leaq 48(%rdi),%rdi + subq $1,%r10 + jnz .Linit_loop_avx + + vpalignr $8,%xmm4,%xmm3,%xmm5 + vmovdqu %xmm5,-16(%rdi) + + vzeroupper + .byte 0xf3,0xc3 +.cfi_endproc +.size gcm_init_avx,.-gcm_init_avx +.globl gcm_gmult_avx +.type gcm_gmult_avx,@function +.align 32 +gcm_gmult_avx: +.cfi_startproc + jmp .L_gmult_clmul +.cfi_endproc +.size gcm_gmult_avx,.-gcm_gmult_avx +.globl gcm_ghash_avx +.type gcm_ghash_avx,@function +.align 32 +gcm_ghash_avx: +.cfi_startproc + vzeroupper + + vmovdqu (%rdi),%xmm10 + leaq .L0x1c2_polynomial(%rip),%r10 + leaq 64(%rsi),%rsi + vmovdqu .Lbswap_mask(%rip),%xmm13 + vpshufb %xmm13,%xmm10,%xmm10 + cmpq $0x80,%rcx + jb .Lshort_avx + subq $0x80,%rcx + + vmovdqu 112(%rdx),%xmm14 + vmovdqu 0-64(%rsi),%xmm6 + vpshufb %xmm13,%xmm14,%xmm14 + vmovdqu 32-64(%rsi),%xmm7 + + vpunpckhqdq %xmm14,%xmm14,%xmm9 + vmovdqu 96(%rdx),%xmm15 + vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0 + vpxor %xmm14,%xmm9,%xmm9 + vpshufb %xmm13,%xmm15,%xmm15 + vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1 + vmovdqu 16-64(%rsi),%xmm6 + vpunpckhqdq %xmm15,%xmm15,%xmm8 + vmovdqu 80(%rdx),%xmm14 + vpclmulqdq $0x00,%xmm7,%xmm9,%xmm2 + vpxor %xmm15,%xmm8,%xmm8 + + vpshufb %xmm13,%xmm14,%xmm14 + vpclmulqdq $0x00,%xmm6,%xmm15,%xmm3 + vpunpckhqdq %xmm14,%xmm14,%xmm9 + vpclmulqdq $0x11,%xmm6,%xmm15,%xmm4 + vmovdqu 48-64(%rsi),%xmm6 + vpxor %xmm14,%xmm9,%xmm9 + vmovdqu 64(%rdx),%xmm15 + vpclmulqdq $0x10,%xmm7,%xmm8,%xmm5 + vmovdqu 80-64(%rsi),%xmm7 + + vpshufb %xmm13,%xmm15,%xmm15 + vpxor %xmm0,%xmm3,%xmm3 + vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0 + vpxor %xmm1,%xmm4,%xmm4 + vpunpckhqdq %xmm15,%xmm15,%xmm8 + vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1 + vmovdqu 64-64(%rsi),%xmm6 + vpxor %xmm2,%xmm5,%xmm5 + vpclmulqdq $0x00,%xmm7,%xmm9,%xmm2 + vpxor %xmm15,%xmm8,%xmm8 + + vmovdqu 48(%rdx),%xmm14 + vpxor %xmm3,%xmm0,%xmm0 + vpclmulqdq $0x00,%xmm6,%xmm15,%xmm3 + vpxor %xmm4,%xmm1,%xmm1 + vpshufb %xmm13,%xmm14,%xmm14 + vpclmulqdq $0x11,%xmm6,%xmm15,%xmm4 + vmovdqu 96-64(%rsi),%xmm6 + vpxor %xmm5,%xmm2,%xmm2 + vpunpckhqdq %xmm14,%xmm14,%xmm9 + vpclmulqdq $0x10,%xmm7,%xmm8,%xmm5 + vmovdqu 128-64(%rsi),%xmm7 + vpxor %xmm14,%xmm9,%xmm9 + + vmovdqu 32(%rdx),%xmm15 + vpxor %xmm0,%xmm3,%xmm3 + vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0 + vpxor %xmm1,%xmm4,%xmm4 + vpshufb %xmm13,%xmm15,%xmm15 + vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1 + vmovdqu 112-64(%rsi),%xmm6 + vpxor %xmm2,%xmm5,%xmm5 + vpunpckhqdq %xmm15,%xmm15,%xmm8 + vpclmulqdq $0x00,%xmm7,%xmm9,%xmm2 + vpxor %xmm15,%xmm8,%xmm8 + + vmovdqu 16(%rdx),%xmm14 + vpxor %xmm3,%xmm0,%xmm0 + vpclmulqdq $0x00,%xmm6,%xmm15,%xmm3 + vpxor %xmm4,%xmm1,%xmm1 + vpshufb %xmm13,%xmm14,%xmm14 + vpclmulqdq $0x11,%xmm6,%xmm15,%xmm4 + vmovdqu 144-64(%rsi),%xmm6 + vpxor %xmm5,%xmm2,%xmm2 + vpunpckhqdq %xmm14,%xmm14,%xmm9 + vpclmulqdq $0x10,%xmm7,%xmm8,%xmm5 + vmovdqu 176-64(%rsi),%xmm7 + vpxor %xmm14,%xmm9,%xmm9 + + vmovdqu (%rdx),%xmm15 + vpxor %xmm0,%xmm3,%xmm3 + vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0 + vpxor %xmm1,%xmm4,%xmm4 + vpshufb %xmm13,%xmm15,%xmm15 + vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1 + vmovdqu 160-64(%rsi),%xmm6 + vpxor %xmm2,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm7,%xmm9,%xmm2 + + leaq 128(%rdx),%rdx + cmpq $0x80,%rcx + jb .Ltail_avx + + vpxor %xmm10,%xmm15,%xmm15 + subq $0x80,%rcx + jmp .Loop8x_avx + +.align 32 +.Loop8x_avx: + vpunpckhqdq %xmm15,%xmm15,%xmm8 + vmovdqu 112(%rdx),%xmm14 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm15,%xmm8,%xmm8 + vpclmulqdq $0x00,%xmm6,%xmm15,%xmm10 + vpshufb %xmm13,%xmm14,%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vpclmulqdq $0x11,%xmm6,%xmm15,%xmm11 + vmovdqu 0-64(%rsi),%xmm6 + vpunpckhqdq %xmm14,%xmm14,%xmm9 + vpxor %xmm2,%xmm5,%xmm5 + vpclmulqdq $0x00,%xmm7,%xmm8,%xmm12 + vmovdqu 32-64(%rsi),%xmm7 + vpxor %xmm14,%xmm9,%xmm9 + + vmovdqu 96(%rdx),%xmm15 + vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0 + vpxor %xmm3,%xmm10,%xmm10 + vpshufb %xmm13,%xmm15,%xmm15 + vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1 + vxorps %xmm4,%xmm11,%xmm11 + vmovdqu 16-64(%rsi),%xmm6 + vpunpckhqdq %xmm15,%xmm15,%xmm8 + vpclmulqdq $0x00,%xmm7,%xmm9,%xmm2 + vpxor %xmm5,%xmm12,%xmm12 + vxorps %xmm15,%xmm8,%xmm8 + + vmovdqu 80(%rdx),%xmm14 + vpxor %xmm10,%xmm12,%xmm12 + vpclmulqdq $0x00,%xmm6,%xmm15,%xmm3 + vpxor %xmm11,%xmm12,%xmm12 + vpslldq $8,%xmm12,%xmm9 + vpxor %xmm0,%xmm3,%xmm3 + vpclmulqdq $0x11,%xmm6,%xmm15,%xmm4 + vpsrldq $8,%xmm12,%xmm12 + vpxor %xmm9,%xmm10,%xmm10 + vmovdqu 48-64(%rsi),%xmm6 + vpshufb %xmm13,%xmm14,%xmm14 + vxorps %xmm12,%xmm11,%xmm11 + vpxor %xmm1,%xmm4,%xmm4 + vpunpckhqdq %xmm14,%xmm14,%xmm9 + vpclmulqdq $0x10,%xmm7,%xmm8,%xmm5 + vmovdqu 80-64(%rsi),%xmm7 + vpxor %xmm14,%xmm9,%xmm9 + vpxor %xmm2,%xmm5,%xmm5 + + vmovdqu 64(%rdx),%xmm15 + vpalignr $8,%xmm10,%xmm10,%xmm12 + vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0 + vpshufb %xmm13,%xmm15,%xmm15 + vpxor %xmm3,%xmm0,%xmm0 + vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1 + vmovdqu 64-64(%rsi),%xmm6 + vpunpckhqdq %xmm15,%xmm15,%xmm8 + vpxor %xmm4,%xmm1,%xmm1 + vpclmulqdq $0x00,%xmm7,%xmm9,%xmm2 + vxorps %xmm15,%xmm8,%xmm8 + vpxor %xmm5,%xmm2,%xmm2 + + vmovdqu 48(%rdx),%xmm14 + vpclmulqdq $0x10,(%r10),%xmm10,%xmm10 + vpclmulqdq $0x00,%xmm6,%xmm15,%xmm3 + vpshufb %xmm13,%xmm14,%xmm14 + vpxor %xmm0,%xmm3,%xmm3 + vpclmulqdq $0x11,%xmm6,%xmm15,%xmm4 + vmovdqu 96-64(%rsi),%xmm6 + vpunpckhqdq %xmm14,%xmm14,%xmm9 + vpxor %xmm1,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm7,%xmm8,%xmm5 + vmovdqu 128-64(%rsi),%xmm7 + vpxor %xmm14,%xmm9,%xmm9 + vpxor %xmm2,%xmm5,%xmm5 + + vmovdqu 32(%rdx),%xmm15 + vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0 + vpshufb %xmm13,%xmm15,%xmm15 + vpxor %xmm3,%xmm0,%xmm0 + vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1 + vmovdqu 112-64(%rsi),%xmm6 + vpunpckhqdq %xmm15,%xmm15,%xmm8 + vpxor %xmm4,%xmm1,%xmm1 + vpclmulqdq $0x00,%xmm7,%xmm9,%xmm2 + vpxor %xmm15,%xmm8,%xmm8 + vpxor %xmm5,%xmm2,%xmm2 + vxorps %xmm12,%xmm10,%xmm10 + + vmovdqu 16(%rdx),%xmm14 + vpalignr $8,%xmm10,%xmm10,%xmm12 + vpclmulqdq $0x00,%xmm6,%xmm15,%xmm3 + vpshufb %xmm13,%xmm14,%xmm14 + vpxor %xmm0,%xmm3,%xmm3 + vpclmulqdq $0x11,%xmm6,%xmm15,%xmm4 + vmovdqu 144-64(%rsi),%xmm6 + vpclmulqdq $0x10,(%r10),%xmm10,%xmm10 + vxorps %xmm11,%xmm12,%xmm12 + vpunpckhqdq %xmm14,%xmm14,%xmm9 + vpxor %xmm1,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm7,%xmm8,%xmm5 + vmovdqu 176-64(%rsi),%xmm7 + vpxor %xmm14,%xmm9,%xmm9 + vpxor %xmm2,%xmm5,%xmm5 + + vmovdqu (%rdx),%xmm15 + vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0 + vpshufb %xmm13,%xmm15,%xmm15 + vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1 + vmovdqu 160-64(%rsi),%xmm6 + vpxor %xmm12,%xmm15,%xmm15 + vpclmulqdq $0x10,%xmm7,%xmm9,%xmm2 + vpxor %xmm10,%xmm15,%xmm15 + + leaq 128(%rdx),%rdx + subq $0x80,%rcx + jnc .Loop8x_avx + + addq $0x80,%rcx + jmp .Ltail_no_xor_avx + +.align 32 +.Lshort_avx: + vmovdqu -16(%rdx,%rcx,1),%xmm14 + leaq (%rdx,%rcx,1),%rdx + vmovdqu 0-64(%rsi),%xmm6 + vmovdqu 32-64(%rsi),%xmm7 + vpshufb %xmm13,%xmm14,%xmm15 + + vmovdqa %xmm0,%xmm3 + vmovdqa %xmm1,%xmm4 + vmovdqa %xmm2,%xmm5 + subq $0x10,%rcx + jz .Ltail_avx + + vpunpckhqdq %xmm15,%xmm15,%xmm8 + vpxor %xmm0,%xmm3,%xmm3 + vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0 + vpxor %xmm15,%xmm8,%xmm8 + vmovdqu -32(%rdx),%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1 + vmovdqu 16-64(%rsi),%xmm6 + vpshufb %xmm13,%xmm14,%xmm15 + vpxor %xmm2,%xmm5,%xmm5 + vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2 + vpsrldq $8,%xmm7,%xmm7 + subq $0x10,%rcx + jz .Ltail_avx + + vpunpckhqdq %xmm15,%xmm15,%xmm8 + vpxor %xmm0,%xmm3,%xmm3 + vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0 + vpxor %xmm15,%xmm8,%xmm8 + vmovdqu -48(%rdx),%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1 + vmovdqu 48-64(%rsi),%xmm6 + vpshufb %xmm13,%xmm14,%xmm15 + vpxor %xmm2,%xmm5,%xmm5 + vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2 + vmovdqu 80-64(%rsi),%xmm7 + subq $0x10,%rcx + jz .Ltail_avx + + vpunpckhqdq %xmm15,%xmm15,%xmm8 + vpxor %xmm0,%xmm3,%xmm3 + vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0 + vpxor %xmm15,%xmm8,%xmm8 + vmovdqu -64(%rdx),%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1 + vmovdqu 64-64(%rsi),%xmm6 + vpshufb %xmm13,%xmm14,%xmm15 + vpxor %xmm2,%xmm5,%xmm5 + vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2 + vpsrldq $8,%xmm7,%xmm7 + subq $0x10,%rcx + jz .Ltail_avx + + vpunpckhqdq %xmm15,%xmm15,%xmm8 + vpxor %xmm0,%xmm3,%xmm3 + vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0 + vpxor %xmm15,%xmm8,%xmm8 + vmovdqu -80(%rdx),%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1 + vmovdqu 96-64(%rsi),%xmm6 + vpshufb %xmm13,%xmm14,%xmm15 + vpxor %xmm2,%xmm5,%xmm5 + vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2 + vmovdqu 128-64(%rsi),%xmm7 + subq $0x10,%rcx + jz .Ltail_avx + + vpunpckhqdq %xmm15,%xmm15,%xmm8 + vpxor %xmm0,%xmm3,%xmm3 + vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0 + vpxor %xmm15,%xmm8,%xmm8 + vmovdqu -96(%rdx),%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1 + vmovdqu 112-64(%rsi),%xmm6 + vpshufb %xmm13,%xmm14,%xmm15 + vpxor %xmm2,%xmm5,%xmm5 + vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2 + vpsrldq $8,%xmm7,%xmm7 + subq $0x10,%rcx + jz .Ltail_avx + + vpunpckhqdq %xmm15,%xmm15,%xmm8 + vpxor %xmm0,%xmm3,%xmm3 + vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0 + vpxor %xmm15,%xmm8,%xmm8 + vmovdqu -112(%rdx),%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1 + vmovdqu 144-64(%rsi),%xmm6 + vpshufb %xmm13,%xmm14,%xmm15 + vpxor %xmm2,%xmm5,%xmm5 + vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2 + vmovq 184-64(%rsi),%xmm7 + subq $0x10,%rcx + jmp .Ltail_avx + +.align 32 +.Ltail_avx: + vpxor %xmm10,%xmm15,%xmm15 +.Ltail_no_xor_avx: + vpunpckhqdq %xmm15,%xmm15,%xmm8 + vpxor %xmm0,%xmm3,%xmm3 + vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0 + vpxor %xmm15,%xmm8,%xmm8 + vpxor %xmm1,%xmm4,%xmm4 + vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1 + vpxor %xmm2,%xmm5,%xmm5 + vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2 + + vmovdqu (%r10),%xmm12 + + vpxor %xmm0,%xmm3,%xmm10 + vpxor %xmm1,%xmm4,%xmm11 + vpxor %xmm2,%xmm5,%xmm5 + + vpxor %xmm10,%xmm5,%xmm5 + vpxor %xmm11,%xmm5,%xmm5 + vpslldq $8,%xmm5,%xmm9 + vpsrldq $8,%xmm5,%xmm5 + vpxor %xmm9,%xmm10,%xmm10 + vpxor %xmm5,%xmm11,%xmm11 + + vpclmulqdq $0x10,%xmm12,%xmm10,%xmm9 + vpalignr $8,%xmm10,%xmm10,%xmm10 + vpxor %xmm9,%xmm10,%xmm10 + + vpclmulqdq $0x10,%xmm12,%xmm10,%xmm9 + vpalignr $8,%xmm10,%xmm10,%xmm10 + vpxor %xmm11,%xmm10,%xmm10 + vpxor %xmm9,%xmm10,%xmm10 + + cmpq $0,%rcx + jne .Lshort_avx + + vpshufb %xmm13,%xmm10,%xmm10 + vmovdqu %xmm10,(%rdi) + vzeroupper + .byte 0xf3,0xc3 +.cfi_endproc +.size gcm_ghash_avx,.-gcm_ghash_avx +.align 64 +.Lbswap_mask: +.byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 +.L0x1c2_polynomial: +.byte 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc2 +.L7_mask: +.long 7,0,7,0 +.L7_mask_poly: +.long 7,0,450,0 +.align 64 +.type .Lrem_4bit,@object +.Lrem_4bit: +.long 0,0,0,471859200,0,943718400,0,610271232 +.long 0,1887436800,0,1822425088,0,1220542464,0,1423966208 +.long 0,3774873600,0,4246732800,0,3644850176,0,3311403008 +.long 0,2441084928,0,2376073216,0,2847932416,0,3051356160 +.type .Lrem_8bit,@object +.Lrem_8bit: +.value 0x0000,0x01C2,0x0384,0x0246,0x0708,0x06CA,0x048C,0x054E +.value 0x0E10,0x0FD2,0x0D94,0x0C56,0x0918,0x08DA,0x0A9C,0x0B5E +.value 0x1C20,0x1DE2,0x1FA4,0x1E66,0x1B28,0x1AEA,0x18AC,0x196E +.value 0x1230,0x13F2,0x11B4,0x1076,0x1538,0x14FA,0x16BC,0x177E +.value 0x3840,0x3982,0x3BC4,0x3A06,0x3F48,0x3E8A,0x3CCC,0x3D0E +.value 0x3650,0x3792,0x35D4,0x3416,0x3158,0x309A,0x32DC,0x331E +.value 0x2460,0x25A2,0x27E4,0x2626,0x2368,0x22AA,0x20EC,0x212E +.value 0x2A70,0x2BB2,0x29F4,0x2836,0x2D78,0x2CBA,0x2EFC,0x2F3E +.value 0x7080,0x7142,0x7304,0x72C6,0x7788,0x764A,0x740C,0x75CE +.value 0x7E90,0x7F52,0x7D14,0x7CD6,0x7998,0x785A,0x7A1C,0x7BDE +.value 0x6CA0,0x6D62,0x6F24,0x6EE6,0x6BA8,0x6A6A,0x682C,0x69EE +.value 0x62B0,0x6372,0x6134,0x60F6,0x65B8,0x647A,0x663C,0x67FE +.value 0x48C0,0x4902,0x4B44,0x4A86,0x4FC8,0x4E0A,0x4C4C,0x4D8E +.value 0x46D0,0x4712,0x4554,0x4496,0x41D8,0x401A,0x425C,0x439E +.value 0x54E0,0x5522,0x5764,0x56A6,0x53E8,0x522A,0x506C,0x51AE +.value 0x5AF0,0x5B32,0x5974,0x58B6,0x5DF8,0x5C3A,0x5E7C,0x5FBE +.value 0xE100,0xE0C2,0xE284,0xE346,0xE608,0xE7CA,0xE58C,0xE44E +.value 0xEF10,0xEED2,0xEC94,0xED56,0xE818,0xE9DA,0xEB9C,0xEA5E +.value 0xFD20,0xFCE2,0xFEA4,0xFF66,0xFA28,0xFBEA,0xF9AC,0xF86E +.value 0xF330,0xF2F2,0xF0B4,0xF176,0xF438,0xF5FA,0xF7BC,0xF67E +.value 0xD940,0xD882,0xDAC4,0xDB06,0xDE48,0xDF8A,0xDDCC,0xDC0E +.value 0xD750,0xD692,0xD4D4,0xD516,0xD058,0xD19A,0xD3DC,0xD21E +.value 0xC560,0xC4A2,0xC6E4,0xC726,0xC268,0xC3AA,0xC1EC,0xC02E +.value 0xCB70,0xCAB2,0xC8F4,0xC936,0xCC78,0xCDBA,0xCFFC,0xCE3E +.value 0x9180,0x9042,0x9204,0x93C6,0x9688,0x974A,0x950C,0x94CE +.value 0x9F90,0x9E52,0x9C14,0x9DD6,0x9898,0x995A,0x9B1C,0x9ADE +.value 0x8DA0,0x8C62,0x8E24,0x8FE6,0x8AA8,0x8B6A,0x892C,0x88EE +.value 0x83B0,0x8272,0x8034,0x81F6,0x84B8,0x857A,0x873C,0x86FE +.value 0xA9C0,0xA802,0xAA44,0xAB86,0xAEC8,0xAF0A,0xAD4C,0xAC8E +.value 0xA7D0,0xA612,0xA454,0xA596,0xA0D8,0xA11A,0xA35C,0xA29E +.value 0xB5E0,0xB422,0xB664,0xB7A6,0xB2E8,0xB32A,0xB16C,0xB0AE +.value 0xBBF0,0xBA32,0xB874,0xB9B6,0xBCF8,0xBD3A,0xBF7C,0xBEBE + +.byte 71,72,65,83,72,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 64 diff --git a/vere/ext/openssl/gen/linux-x86_64/crypto/poly1305/poly1305-x86_64.s b/vere/ext/openssl/gen/linux-x86_64/crypto/poly1305/poly1305-x86_64.s new file mode 100644 index 0000000..8f2554e --- /dev/null +++ b/vere/ext/openssl/gen/linux-x86_64/crypto/poly1305/poly1305-x86_64.s @@ -0,0 +1,2068 @@ +.text + + + +.globl poly1305_init +.hidden poly1305_init +.globl poly1305_blocks +.hidden poly1305_blocks +.globl poly1305_emit +.hidden poly1305_emit + +.type poly1305_init,@function +.align 32 +poly1305_init: +.cfi_startproc + xorq %rax,%rax + movq %rax,0(%rdi) + movq %rax,8(%rdi) + movq %rax,16(%rdi) + + cmpq $0,%rsi + je .Lno_key + + leaq poly1305_blocks(%rip),%r10 + leaq poly1305_emit(%rip),%r11 + movq OPENSSL_ia32cap_P+4(%rip),%r9 + leaq poly1305_blocks_avx(%rip),%rax + leaq poly1305_emit_avx(%rip),%rcx + btq $28,%r9 + cmovcq %rax,%r10 + cmovcq %rcx,%r11 + leaq poly1305_blocks_avx2(%rip),%rax + btq $37,%r9 + cmovcq %rax,%r10 + movq $0x0ffffffc0fffffff,%rax + movq $0x0ffffffc0ffffffc,%rcx + andq 0(%rsi),%rax + andq 8(%rsi),%rcx + movq %rax,24(%rdi) + movq %rcx,32(%rdi) + movq %r10,0(%rdx) + movq %r11,8(%rdx) + movl $1,%eax +.Lno_key: + .byte 0xf3,0xc3 +.cfi_endproc +.size poly1305_init,.-poly1305_init + +.type poly1305_blocks,@function +.align 32 +poly1305_blocks: +.cfi_startproc +.Lblocks: + shrq $4,%rdx + jz .Lno_data + + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 +.Lblocks_body: + + movq %rdx,%r15 + + movq 24(%rdi),%r11 + movq 32(%rdi),%r13 + + movq 0(%rdi),%r14 + movq 8(%rdi),%rbx + movq 16(%rdi),%rbp + + movq %r13,%r12 + shrq $2,%r13 + movq %r12,%rax + addq %r12,%r13 + jmp .Loop + +.align 32 +.Loop: + addq 0(%rsi),%r14 + adcq 8(%rsi),%rbx + leaq 16(%rsi),%rsi + adcq %rcx,%rbp + mulq %r14 + movq %rax,%r9 + movq %r11,%rax + movq %rdx,%r10 + + mulq %r14 + movq %rax,%r14 + movq %r11,%rax + movq %rdx,%r8 + + mulq %rbx + addq %rax,%r9 + movq %r13,%rax + adcq %rdx,%r10 + + mulq %rbx + movq %rbp,%rbx + addq %rax,%r14 + adcq %rdx,%r8 + + imulq %r13,%rbx + addq %rbx,%r9 + movq %r8,%rbx + adcq $0,%r10 + + imulq %r11,%rbp + addq %r9,%rbx + movq $-4,%rax + adcq %rbp,%r10 + + andq %r10,%rax + movq %r10,%rbp + shrq $2,%r10 + andq $3,%rbp + addq %r10,%rax + addq %rax,%r14 + adcq $0,%rbx + adcq $0,%rbp + movq %r12,%rax + decq %r15 + jnz .Loop + + movq %r14,0(%rdi) + movq %rbx,8(%rdi) + movq %rbp,16(%rdi) + + movq 0(%rsp),%r15 +.cfi_restore %r15 + movq 8(%rsp),%r14 +.cfi_restore %r14 + movq 16(%rsp),%r13 +.cfi_restore %r13 + movq 24(%rsp),%r12 +.cfi_restore %r12 + movq 32(%rsp),%rbp +.cfi_restore %rbp + movq 40(%rsp),%rbx +.cfi_restore %rbx + leaq 48(%rsp),%rsp +.cfi_adjust_cfa_offset -48 +.Lno_data: +.Lblocks_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size poly1305_blocks,.-poly1305_blocks + +.type poly1305_emit,@function +.align 32 +poly1305_emit: +.cfi_startproc +.Lemit: + movq 0(%rdi),%r8 + movq 8(%rdi),%r9 + movq 16(%rdi),%r10 + + movq %r8,%rax + addq $5,%r8 + movq %r9,%rcx + adcq $0,%r9 + adcq $0,%r10 + shrq $2,%r10 + cmovnzq %r8,%rax + cmovnzq %r9,%rcx + + addq 0(%rdx),%rax + adcq 8(%rdx),%rcx + movq %rax,0(%rsi) + movq %rcx,8(%rsi) + + .byte 0xf3,0xc3 +.cfi_endproc +.size poly1305_emit,.-poly1305_emit +.type __poly1305_block,@function +.align 32 +__poly1305_block: +.cfi_startproc + mulq %r14 + movq %rax,%r9 + movq %r11,%rax + movq %rdx,%r10 + + mulq %r14 + movq %rax,%r14 + movq %r11,%rax + movq %rdx,%r8 + + mulq %rbx + addq %rax,%r9 + movq %r13,%rax + adcq %rdx,%r10 + + mulq %rbx + movq %rbp,%rbx + addq %rax,%r14 + adcq %rdx,%r8 + + imulq %r13,%rbx + addq %rbx,%r9 + movq %r8,%rbx + adcq $0,%r10 + + imulq %r11,%rbp + addq %r9,%rbx + movq $-4,%rax + adcq %rbp,%r10 + + andq %r10,%rax + movq %r10,%rbp + shrq $2,%r10 + andq $3,%rbp + addq %r10,%rax + addq %rax,%r14 + adcq $0,%rbx + adcq $0,%rbp + .byte 0xf3,0xc3 +.cfi_endproc +.size __poly1305_block,.-__poly1305_block + +.type __poly1305_init_avx,@function +.align 32 +__poly1305_init_avx: +.cfi_startproc + movq %r11,%r14 + movq %r12,%rbx + xorq %rbp,%rbp + + leaq 48+64(%rdi),%rdi + + movq %r12,%rax + call __poly1305_block + + movl $0x3ffffff,%eax + movl $0x3ffffff,%edx + movq %r14,%r8 + andl %r14d,%eax + movq %r11,%r9 + andl %r11d,%edx + movl %eax,-64(%rdi) + shrq $26,%r8 + movl %edx,-60(%rdi) + shrq $26,%r9 + + movl $0x3ffffff,%eax + movl $0x3ffffff,%edx + andl %r8d,%eax + andl %r9d,%edx + movl %eax,-48(%rdi) + leal (%rax,%rax,4),%eax + movl %edx,-44(%rdi) + leal (%rdx,%rdx,4),%edx + movl %eax,-32(%rdi) + shrq $26,%r8 + movl %edx,-28(%rdi) + shrq $26,%r9 + + movq %rbx,%rax + movq %r12,%rdx + shlq $12,%rax + shlq $12,%rdx + orq %r8,%rax + orq %r9,%rdx + andl $0x3ffffff,%eax + andl $0x3ffffff,%edx + movl %eax,-16(%rdi) + leal (%rax,%rax,4),%eax + movl %edx,-12(%rdi) + leal (%rdx,%rdx,4),%edx + movl %eax,0(%rdi) + movq %rbx,%r8 + movl %edx,4(%rdi) + movq %r12,%r9 + + movl $0x3ffffff,%eax + movl $0x3ffffff,%edx + shrq $14,%r8 + shrq $14,%r9 + andl %r8d,%eax + andl %r9d,%edx + movl %eax,16(%rdi) + leal (%rax,%rax,4),%eax + movl %edx,20(%rdi) + leal (%rdx,%rdx,4),%edx + movl %eax,32(%rdi) + shrq $26,%r8 + movl %edx,36(%rdi) + shrq $26,%r9 + + movq %rbp,%rax + shlq $24,%rax + orq %rax,%r8 + movl %r8d,48(%rdi) + leaq (%r8,%r8,4),%r8 + movl %r9d,52(%rdi) + leaq (%r9,%r9,4),%r9 + movl %r8d,64(%rdi) + movl %r9d,68(%rdi) + + movq %r12,%rax + call __poly1305_block + + movl $0x3ffffff,%eax + movq %r14,%r8 + andl %r14d,%eax + shrq $26,%r8 + movl %eax,-52(%rdi) + + movl $0x3ffffff,%edx + andl %r8d,%edx + movl %edx,-36(%rdi) + leal (%rdx,%rdx,4),%edx + shrq $26,%r8 + movl %edx,-20(%rdi) + + movq %rbx,%rax + shlq $12,%rax + orq %r8,%rax + andl $0x3ffffff,%eax + movl %eax,-4(%rdi) + leal (%rax,%rax,4),%eax + movq %rbx,%r8 + movl %eax,12(%rdi) + + movl $0x3ffffff,%edx + shrq $14,%r8 + andl %r8d,%edx + movl %edx,28(%rdi) + leal (%rdx,%rdx,4),%edx + shrq $26,%r8 + movl %edx,44(%rdi) + + movq %rbp,%rax + shlq $24,%rax + orq %rax,%r8 + movl %r8d,60(%rdi) + leaq (%r8,%r8,4),%r8 + movl %r8d,76(%rdi) + + movq %r12,%rax + call __poly1305_block + + movl $0x3ffffff,%eax + movq %r14,%r8 + andl %r14d,%eax + shrq $26,%r8 + movl %eax,-56(%rdi) + + movl $0x3ffffff,%edx + andl %r8d,%edx + movl %edx,-40(%rdi) + leal (%rdx,%rdx,4),%edx + shrq $26,%r8 + movl %edx,-24(%rdi) + + movq %rbx,%rax + shlq $12,%rax + orq %r8,%rax + andl $0x3ffffff,%eax + movl %eax,-8(%rdi) + leal (%rax,%rax,4),%eax + movq %rbx,%r8 + movl %eax,8(%rdi) + + movl $0x3ffffff,%edx + shrq $14,%r8 + andl %r8d,%edx + movl %edx,24(%rdi) + leal (%rdx,%rdx,4),%edx + shrq $26,%r8 + movl %edx,40(%rdi) + + movq %rbp,%rax + shlq $24,%rax + orq %rax,%r8 + movl %r8d,56(%rdi) + leaq (%r8,%r8,4),%r8 + movl %r8d,72(%rdi) + + leaq -48-64(%rdi),%rdi + .byte 0xf3,0xc3 +.cfi_endproc +.size __poly1305_init_avx,.-__poly1305_init_avx + +.type poly1305_blocks_avx,@function +.align 32 +poly1305_blocks_avx: +.cfi_startproc + movl 20(%rdi),%r8d + cmpq $128,%rdx + jae .Lblocks_avx + testl %r8d,%r8d + jz .Lblocks + +.Lblocks_avx: + andq $-16,%rdx + jz .Lno_data_avx + + vzeroupper + + testl %r8d,%r8d + jz .Lbase2_64_avx + + testq $31,%rdx + jz .Leven_avx + + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 +.Lblocks_avx_body: + + movq %rdx,%r15 + + movq 0(%rdi),%r8 + movq 8(%rdi),%r9 + movl 16(%rdi),%ebp + + movq 24(%rdi),%r11 + movq 32(%rdi),%r13 + + + movl %r8d,%r14d + andq $-2147483648,%r8 + movq %r9,%r12 + movl %r9d,%ebx + andq $-2147483648,%r9 + + shrq $6,%r8 + shlq $52,%r12 + addq %r8,%r14 + shrq $12,%rbx + shrq $18,%r9 + addq %r12,%r14 + adcq %r9,%rbx + + movq %rbp,%r8 + shlq $40,%r8 + shrq $24,%rbp + addq %r8,%rbx + adcq $0,%rbp + + movq $-4,%r9 + movq %rbp,%r8 + andq %rbp,%r9 + shrq $2,%r8 + andq $3,%rbp + addq %r9,%r8 + addq %r8,%r14 + adcq $0,%rbx + adcq $0,%rbp + + movq %r13,%r12 + movq %r13,%rax + shrq $2,%r13 + addq %r12,%r13 + + addq 0(%rsi),%r14 + adcq 8(%rsi),%rbx + leaq 16(%rsi),%rsi + adcq %rcx,%rbp + + call __poly1305_block + + testq %rcx,%rcx + jz .Lstore_base2_64_avx + + + movq %r14,%rax + movq %r14,%rdx + shrq $52,%r14 + movq %rbx,%r11 + movq %rbx,%r12 + shrq $26,%rdx + andq $0x3ffffff,%rax + shlq $12,%r11 + andq $0x3ffffff,%rdx + shrq $14,%rbx + orq %r11,%r14 + shlq $24,%rbp + andq $0x3ffffff,%r14 + shrq $40,%r12 + andq $0x3ffffff,%rbx + orq %r12,%rbp + + subq $16,%r15 + jz .Lstore_base2_26_avx + + vmovd %eax,%xmm0 + vmovd %edx,%xmm1 + vmovd %r14d,%xmm2 + vmovd %ebx,%xmm3 + vmovd %ebp,%xmm4 + jmp .Lproceed_avx + +.align 32 +.Lstore_base2_64_avx: + movq %r14,0(%rdi) + movq %rbx,8(%rdi) + movq %rbp,16(%rdi) + jmp .Ldone_avx + +.align 16 +.Lstore_base2_26_avx: + movl %eax,0(%rdi) + movl %edx,4(%rdi) + movl %r14d,8(%rdi) + movl %ebx,12(%rdi) + movl %ebp,16(%rdi) +.align 16 +.Ldone_avx: + movq 0(%rsp),%r15 +.cfi_restore %r15 + movq 8(%rsp),%r14 +.cfi_restore %r14 + movq 16(%rsp),%r13 +.cfi_restore %r13 + movq 24(%rsp),%r12 +.cfi_restore %r12 + movq 32(%rsp),%rbp +.cfi_restore %rbp + movq 40(%rsp),%rbx +.cfi_restore %rbx + leaq 48(%rsp),%rsp +.cfi_adjust_cfa_offset -48 +.Lno_data_avx: +.Lblocks_avx_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc + +.align 32 +.Lbase2_64_avx: +.cfi_startproc + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 +.Lbase2_64_avx_body: + + movq %rdx,%r15 + + movq 24(%rdi),%r11 + movq 32(%rdi),%r13 + + movq 0(%rdi),%r14 + movq 8(%rdi),%rbx + movl 16(%rdi),%ebp + + movq %r13,%r12 + movq %r13,%rax + shrq $2,%r13 + addq %r12,%r13 + + testq $31,%rdx + jz .Linit_avx + + addq 0(%rsi),%r14 + adcq 8(%rsi),%rbx + leaq 16(%rsi),%rsi + adcq %rcx,%rbp + subq $16,%r15 + + call __poly1305_block + +.Linit_avx: + + movq %r14,%rax + movq %r14,%rdx + shrq $52,%r14 + movq %rbx,%r8 + movq %rbx,%r9 + shrq $26,%rdx + andq $0x3ffffff,%rax + shlq $12,%r8 + andq $0x3ffffff,%rdx + shrq $14,%rbx + orq %r8,%r14 + shlq $24,%rbp + andq $0x3ffffff,%r14 + shrq $40,%r9 + andq $0x3ffffff,%rbx + orq %r9,%rbp + + vmovd %eax,%xmm0 + vmovd %edx,%xmm1 + vmovd %r14d,%xmm2 + vmovd %ebx,%xmm3 + vmovd %ebp,%xmm4 + movl $1,20(%rdi) + + call __poly1305_init_avx + +.Lproceed_avx: + movq %r15,%rdx + + movq 0(%rsp),%r15 +.cfi_restore %r15 + movq 8(%rsp),%r14 +.cfi_restore %r14 + movq 16(%rsp),%r13 +.cfi_restore %r13 + movq 24(%rsp),%r12 +.cfi_restore %r12 + movq 32(%rsp),%rbp +.cfi_restore %rbp + movq 40(%rsp),%rbx +.cfi_restore %rbx + leaq 48(%rsp),%rax + leaq 48(%rsp),%rsp +.cfi_adjust_cfa_offset -48 +.Lbase2_64_avx_epilogue: + jmp .Ldo_avx +.cfi_endproc + +.align 32 +.Leven_avx: +.cfi_startproc + vmovd 0(%rdi),%xmm0 + vmovd 4(%rdi),%xmm1 + vmovd 8(%rdi),%xmm2 + vmovd 12(%rdi),%xmm3 + vmovd 16(%rdi),%xmm4 + +.Ldo_avx: + leaq -88(%rsp),%r11 +.cfi_def_cfa %r11,0x60 + subq $0x178,%rsp + subq $64,%rdx + leaq -32(%rsi),%rax + cmovcq %rax,%rsi + + vmovdqu 48(%rdi),%xmm14 + leaq 112(%rdi),%rdi + leaq .Lconst(%rip),%rcx + + + + vmovdqu 32(%rsi),%xmm5 + vmovdqu 48(%rsi),%xmm6 + vmovdqa 64(%rcx),%xmm15 + + vpsrldq $6,%xmm5,%xmm7 + vpsrldq $6,%xmm6,%xmm8 + vpunpckhqdq %xmm6,%xmm5,%xmm9 + vpunpcklqdq %xmm6,%xmm5,%xmm5 + vpunpcklqdq %xmm8,%xmm7,%xmm8 + + vpsrlq $40,%xmm9,%xmm9 + vpsrlq $26,%xmm5,%xmm6 + vpand %xmm15,%xmm5,%xmm5 + vpsrlq $4,%xmm8,%xmm7 + vpand %xmm15,%xmm6,%xmm6 + vpsrlq $30,%xmm8,%xmm8 + vpand %xmm15,%xmm7,%xmm7 + vpand %xmm15,%xmm8,%xmm8 + vpor 32(%rcx),%xmm9,%xmm9 + + jbe .Lskip_loop_avx + + + vmovdqu -48(%rdi),%xmm11 + vmovdqu -32(%rdi),%xmm12 + vpshufd $0xEE,%xmm14,%xmm13 + vpshufd $0x44,%xmm14,%xmm10 + vmovdqa %xmm13,-144(%r11) + vmovdqa %xmm10,0(%rsp) + vpshufd $0xEE,%xmm11,%xmm14 + vmovdqu -16(%rdi),%xmm10 + vpshufd $0x44,%xmm11,%xmm11 + vmovdqa %xmm14,-128(%r11) + vmovdqa %xmm11,16(%rsp) + vpshufd $0xEE,%xmm12,%xmm13 + vmovdqu 0(%rdi),%xmm11 + vpshufd $0x44,%xmm12,%xmm12 + vmovdqa %xmm13,-112(%r11) + vmovdqa %xmm12,32(%rsp) + vpshufd $0xEE,%xmm10,%xmm14 + vmovdqu 16(%rdi),%xmm12 + vpshufd $0x44,%xmm10,%xmm10 + vmovdqa %xmm14,-96(%r11) + vmovdqa %xmm10,48(%rsp) + vpshufd $0xEE,%xmm11,%xmm13 + vmovdqu 32(%rdi),%xmm10 + vpshufd $0x44,%xmm11,%xmm11 + vmovdqa %xmm13,-80(%r11) + vmovdqa %xmm11,64(%rsp) + vpshufd $0xEE,%xmm12,%xmm14 + vmovdqu 48(%rdi),%xmm11 + vpshufd $0x44,%xmm12,%xmm12 + vmovdqa %xmm14,-64(%r11) + vmovdqa %xmm12,80(%rsp) + vpshufd $0xEE,%xmm10,%xmm13 + vmovdqu 64(%rdi),%xmm12 + vpshufd $0x44,%xmm10,%xmm10 + vmovdqa %xmm13,-48(%r11) + vmovdqa %xmm10,96(%rsp) + vpshufd $0xEE,%xmm11,%xmm14 + vpshufd $0x44,%xmm11,%xmm11 + vmovdqa %xmm14,-32(%r11) + vmovdqa %xmm11,112(%rsp) + vpshufd $0xEE,%xmm12,%xmm13 + vmovdqa 0(%rsp),%xmm14 + vpshufd $0x44,%xmm12,%xmm12 + vmovdqa %xmm13,-16(%r11) + vmovdqa %xmm12,128(%rsp) + + jmp .Loop_avx + +.align 32 +.Loop_avx: + + + + + + + + + + + + + + + + + + + + + vpmuludq %xmm5,%xmm14,%xmm10 + vpmuludq %xmm6,%xmm14,%xmm11 + vmovdqa %xmm2,32(%r11) + vpmuludq %xmm7,%xmm14,%xmm12 + vmovdqa 16(%rsp),%xmm2 + vpmuludq %xmm8,%xmm14,%xmm13 + vpmuludq %xmm9,%xmm14,%xmm14 + + vmovdqa %xmm0,0(%r11) + vpmuludq 32(%rsp),%xmm9,%xmm0 + vmovdqa %xmm1,16(%r11) + vpmuludq %xmm8,%xmm2,%xmm1 + vpaddq %xmm0,%xmm10,%xmm10 + vpaddq %xmm1,%xmm14,%xmm14 + vmovdqa %xmm3,48(%r11) + vpmuludq %xmm7,%xmm2,%xmm0 + vpmuludq %xmm6,%xmm2,%xmm1 + vpaddq %xmm0,%xmm13,%xmm13 + vmovdqa 48(%rsp),%xmm3 + vpaddq %xmm1,%xmm12,%xmm12 + vmovdqa %xmm4,64(%r11) + vpmuludq %xmm5,%xmm2,%xmm2 + vpmuludq %xmm7,%xmm3,%xmm0 + vpaddq %xmm2,%xmm11,%xmm11 + + vmovdqa 64(%rsp),%xmm4 + vpaddq %xmm0,%xmm14,%xmm14 + vpmuludq %xmm6,%xmm3,%xmm1 + vpmuludq %xmm5,%xmm3,%xmm3 + vpaddq %xmm1,%xmm13,%xmm13 + vmovdqa 80(%rsp),%xmm2 + vpaddq %xmm3,%xmm12,%xmm12 + vpmuludq %xmm9,%xmm4,%xmm0 + vpmuludq %xmm8,%xmm4,%xmm4 + vpaddq %xmm0,%xmm11,%xmm11 + vmovdqa 96(%rsp),%xmm3 + vpaddq %xmm4,%xmm10,%xmm10 + + vmovdqa 128(%rsp),%xmm4 + vpmuludq %xmm6,%xmm2,%xmm1 + vpmuludq %xmm5,%xmm2,%xmm2 + vpaddq %xmm1,%xmm14,%xmm14 + vpaddq %xmm2,%xmm13,%xmm13 + vpmuludq %xmm9,%xmm3,%xmm0 + vpmuludq %xmm8,%xmm3,%xmm1 + vpaddq %xmm0,%xmm12,%xmm12 + vmovdqu 0(%rsi),%xmm0 + vpaddq %xmm1,%xmm11,%xmm11 + vpmuludq %xmm7,%xmm3,%xmm3 + vpmuludq %xmm7,%xmm4,%xmm7 + vpaddq %xmm3,%xmm10,%xmm10 + + vmovdqu 16(%rsi),%xmm1 + vpaddq %xmm7,%xmm11,%xmm11 + vpmuludq %xmm8,%xmm4,%xmm8 + vpmuludq %xmm9,%xmm4,%xmm9 + vpsrldq $6,%xmm0,%xmm2 + vpaddq %xmm8,%xmm12,%xmm12 + vpaddq %xmm9,%xmm13,%xmm13 + vpsrldq $6,%xmm1,%xmm3 + vpmuludq 112(%rsp),%xmm5,%xmm9 + vpmuludq %xmm6,%xmm4,%xmm5 + vpunpckhqdq %xmm1,%xmm0,%xmm4 + vpaddq %xmm9,%xmm14,%xmm14 + vmovdqa -144(%r11),%xmm9 + vpaddq %xmm5,%xmm10,%xmm10 + + vpunpcklqdq %xmm1,%xmm0,%xmm0 + vpunpcklqdq %xmm3,%xmm2,%xmm3 + + + vpsrldq $5,%xmm4,%xmm4 + vpsrlq $26,%xmm0,%xmm1 + vpand %xmm15,%xmm0,%xmm0 + vpsrlq $4,%xmm3,%xmm2 + vpand %xmm15,%xmm1,%xmm1 + vpand 0(%rcx),%xmm4,%xmm4 + vpsrlq $30,%xmm3,%xmm3 + vpand %xmm15,%xmm2,%xmm2 + vpand %xmm15,%xmm3,%xmm3 + vpor 32(%rcx),%xmm4,%xmm4 + + vpaddq 0(%r11),%xmm0,%xmm0 + vpaddq 16(%r11),%xmm1,%xmm1 + vpaddq 32(%r11),%xmm2,%xmm2 + vpaddq 48(%r11),%xmm3,%xmm3 + vpaddq 64(%r11),%xmm4,%xmm4 + + leaq 32(%rsi),%rax + leaq 64(%rsi),%rsi + subq $64,%rdx + cmovcq %rax,%rsi + + + + + + + + + + + vpmuludq %xmm0,%xmm9,%xmm5 + vpmuludq %xmm1,%xmm9,%xmm6 + vpaddq %xmm5,%xmm10,%xmm10 + vpaddq %xmm6,%xmm11,%xmm11 + vmovdqa -128(%r11),%xmm7 + vpmuludq %xmm2,%xmm9,%xmm5 + vpmuludq %xmm3,%xmm9,%xmm6 + vpaddq %xmm5,%xmm12,%xmm12 + vpaddq %xmm6,%xmm13,%xmm13 + vpmuludq %xmm4,%xmm9,%xmm9 + vpmuludq -112(%r11),%xmm4,%xmm5 + vpaddq %xmm9,%xmm14,%xmm14 + + vpaddq %xmm5,%xmm10,%xmm10 + vpmuludq %xmm2,%xmm7,%xmm6 + vpmuludq %xmm3,%xmm7,%xmm5 + vpaddq %xmm6,%xmm13,%xmm13 + vmovdqa -96(%r11),%xmm8 + vpaddq %xmm5,%xmm14,%xmm14 + vpmuludq %xmm1,%xmm7,%xmm6 + vpmuludq %xmm0,%xmm7,%xmm7 + vpaddq %xmm6,%xmm12,%xmm12 + vpaddq %xmm7,%xmm11,%xmm11 + + vmovdqa -80(%r11),%xmm9 + vpmuludq %xmm2,%xmm8,%xmm5 + vpmuludq %xmm1,%xmm8,%xmm6 + vpaddq %xmm5,%xmm14,%xmm14 + vpaddq %xmm6,%xmm13,%xmm13 + vmovdqa -64(%r11),%xmm7 + vpmuludq %xmm0,%xmm8,%xmm8 + vpmuludq %xmm4,%xmm9,%xmm5 + vpaddq %xmm8,%xmm12,%xmm12 + vpaddq %xmm5,%xmm11,%xmm11 + vmovdqa -48(%r11),%xmm8 + vpmuludq %xmm3,%xmm9,%xmm9 + vpmuludq %xmm1,%xmm7,%xmm6 + vpaddq %xmm9,%xmm10,%xmm10 + + vmovdqa -16(%r11),%xmm9 + vpaddq %xmm6,%xmm14,%xmm14 + vpmuludq %xmm0,%xmm7,%xmm7 + vpmuludq %xmm4,%xmm8,%xmm5 + vpaddq %xmm7,%xmm13,%xmm13 + vpaddq %xmm5,%xmm12,%xmm12 + vmovdqu 32(%rsi),%xmm5 + vpmuludq %xmm3,%xmm8,%xmm7 + vpmuludq %xmm2,%xmm8,%xmm8 + vpaddq %xmm7,%xmm11,%xmm11 + vmovdqu 48(%rsi),%xmm6 + vpaddq %xmm8,%xmm10,%xmm10 + + vpmuludq %xmm2,%xmm9,%xmm2 + vpmuludq %xmm3,%xmm9,%xmm3 + vpsrldq $6,%xmm5,%xmm7 + vpaddq %xmm2,%xmm11,%xmm11 + vpmuludq %xmm4,%xmm9,%xmm4 + vpsrldq $6,%xmm6,%xmm8 + vpaddq %xmm3,%xmm12,%xmm2 + vpaddq %xmm4,%xmm13,%xmm3 + vpmuludq -32(%r11),%xmm0,%xmm4 + vpmuludq %xmm1,%xmm9,%xmm0 + vpunpckhqdq %xmm6,%xmm5,%xmm9 + vpaddq %xmm4,%xmm14,%xmm4 + vpaddq %xmm0,%xmm10,%xmm0 + + vpunpcklqdq %xmm6,%xmm5,%xmm5 + vpunpcklqdq %xmm8,%xmm7,%xmm8 + + + vpsrldq $5,%xmm9,%xmm9 + vpsrlq $26,%xmm5,%xmm6 + vmovdqa 0(%rsp),%xmm14 + vpand %xmm15,%xmm5,%xmm5 + vpsrlq $4,%xmm8,%xmm7 + vpand %xmm15,%xmm6,%xmm6 + vpand 0(%rcx),%xmm9,%xmm9 + vpsrlq $30,%xmm8,%xmm8 + vpand %xmm15,%xmm7,%xmm7 + vpand %xmm15,%xmm8,%xmm8 + vpor 32(%rcx),%xmm9,%xmm9 + + + + + + vpsrlq $26,%xmm3,%xmm13 + vpand %xmm15,%xmm3,%xmm3 + vpaddq %xmm13,%xmm4,%xmm4 + + vpsrlq $26,%xmm0,%xmm10 + vpand %xmm15,%xmm0,%xmm0 + vpaddq %xmm10,%xmm11,%xmm1 + + vpsrlq $26,%xmm4,%xmm10 + vpand %xmm15,%xmm4,%xmm4 + + vpsrlq $26,%xmm1,%xmm11 + vpand %xmm15,%xmm1,%xmm1 + vpaddq %xmm11,%xmm2,%xmm2 + + vpaddq %xmm10,%xmm0,%xmm0 + vpsllq $2,%xmm10,%xmm10 + vpaddq %xmm10,%xmm0,%xmm0 + + vpsrlq $26,%xmm2,%xmm12 + vpand %xmm15,%xmm2,%xmm2 + vpaddq %xmm12,%xmm3,%xmm3 + + vpsrlq $26,%xmm0,%xmm10 + vpand %xmm15,%xmm0,%xmm0 + vpaddq %xmm10,%xmm1,%xmm1 + + vpsrlq $26,%xmm3,%xmm13 + vpand %xmm15,%xmm3,%xmm3 + vpaddq %xmm13,%xmm4,%xmm4 + + ja .Loop_avx + +.Lskip_loop_avx: + + + + vpshufd $0x10,%xmm14,%xmm14 + addq $32,%rdx + jnz .Long_tail_avx + + vpaddq %xmm2,%xmm7,%xmm7 + vpaddq %xmm0,%xmm5,%xmm5 + vpaddq %xmm1,%xmm6,%xmm6 + vpaddq %xmm3,%xmm8,%xmm8 + vpaddq %xmm4,%xmm9,%xmm9 + +.Long_tail_avx: + vmovdqa %xmm2,32(%r11) + vmovdqa %xmm0,0(%r11) + vmovdqa %xmm1,16(%r11) + vmovdqa %xmm3,48(%r11) + vmovdqa %xmm4,64(%r11) + + + + + + + + vpmuludq %xmm7,%xmm14,%xmm12 + vpmuludq %xmm5,%xmm14,%xmm10 + vpshufd $0x10,-48(%rdi),%xmm2 + vpmuludq %xmm6,%xmm14,%xmm11 + vpmuludq %xmm8,%xmm14,%xmm13 + vpmuludq %xmm9,%xmm14,%xmm14 + + vpmuludq %xmm8,%xmm2,%xmm0 + vpaddq %xmm0,%xmm14,%xmm14 + vpshufd $0x10,-32(%rdi),%xmm3 + vpmuludq %xmm7,%xmm2,%xmm1 + vpaddq %xmm1,%xmm13,%xmm13 + vpshufd $0x10,-16(%rdi),%xmm4 + vpmuludq %xmm6,%xmm2,%xmm0 + vpaddq %xmm0,%xmm12,%xmm12 + vpmuludq %xmm5,%xmm2,%xmm2 + vpaddq %xmm2,%xmm11,%xmm11 + vpmuludq %xmm9,%xmm3,%xmm3 + vpaddq %xmm3,%xmm10,%xmm10 + + vpshufd $0x10,0(%rdi),%xmm2 + vpmuludq %xmm7,%xmm4,%xmm1 + vpaddq %xmm1,%xmm14,%xmm14 + vpmuludq %xmm6,%xmm4,%xmm0 + vpaddq %xmm0,%xmm13,%xmm13 + vpshufd $0x10,16(%rdi),%xmm3 + vpmuludq %xmm5,%xmm4,%xmm4 + vpaddq %xmm4,%xmm12,%xmm12 + vpmuludq %xmm9,%xmm2,%xmm1 + vpaddq %xmm1,%xmm11,%xmm11 + vpshufd $0x10,32(%rdi),%xmm4 + vpmuludq %xmm8,%xmm2,%xmm2 + vpaddq %xmm2,%xmm10,%xmm10 + + vpmuludq %xmm6,%xmm3,%xmm0 + vpaddq %xmm0,%xmm14,%xmm14 + vpmuludq %xmm5,%xmm3,%xmm3 + vpaddq %xmm3,%xmm13,%xmm13 + vpshufd $0x10,48(%rdi),%xmm2 + vpmuludq %xmm9,%xmm4,%xmm1 + vpaddq %xmm1,%xmm12,%xmm12 + vpshufd $0x10,64(%rdi),%xmm3 + vpmuludq %xmm8,%xmm4,%xmm0 + vpaddq %xmm0,%xmm11,%xmm11 + vpmuludq %xmm7,%xmm4,%xmm4 + vpaddq %xmm4,%xmm10,%xmm10 + + vpmuludq %xmm5,%xmm2,%xmm2 + vpaddq %xmm2,%xmm14,%xmm14 + vpmuludq %xmm9,%xmm3,%xmm1 + vpaddq %xmm1,%xmm13,%xmm13 + vpmuludq %xmm8,%xmm3,%xmm0 + vpaddq %xmm0,%xmm12,%xmm12 + vpmuludq %xmm7,%xmm3,%xmm1 + vpaddq %xmm1,%xmm11,%xmm11 + vpmuludq %xmm6,%xmm3,%xmm3 + vpaddq %xmm3,%xmm10,%xmm10 + + jz .Lshort_tail_avx + + vmovdqu 0(%rsi),%xmm0 + vmovdqu 16(%rsi),%xmm1 + + vpsrldq $6,%xmm0,%xmm2 + vpsrldq $6,%xmm1,%xmm3 + vpunpckhqdq %xmm1,%xmm0,%xmm4 + vpunpcklqdq %xmm1,%xmm0,%xmm0 + vpunpcklqdq %xmm3,%xmm2,%xmm3 + + vpsrlq $40,%xmm4,%xmm4 + vpsrlq $26,%xmm0,%xmm1 + vpand %xmm15,%xmm0,%xmm0 + vpsrlq $4,%xmm3,%xmm2 + vpand %xmm15,%xmm1,%xmm1 + vpsrlq $30,%xmm3,%xmm3 + vpand %xmm15,%xmm2,%xmm2 + vpand %xmm15,%xmm3,%xmm3 + vpor 32(%rcx),%xmm4,%xmm4 + + vpshufd $0x32,-64(%rdi),%xmm9 + vpaddq 0(%r11),%xmm0,%xmm0 + vpaddq 16(%r11),%xmm1,%xmm1 + vpaddq 32(%r11),%xmm2,%xmm2 + vpaddq 48(%r11),%xmm3,%xmm3 + vpaddq 64(%r11),%xmm4,%xmm4 + + + + + vpmuludq %xmm0,%xmm9,%xmm5 + vpaddq %xmm5,%xmm10,%xmm10 + vpmuludq %xmm1,%xmm9,%xmm6 + vpaddq %xmm6,%xmm11,%xmm11 + vpmuludq %xmm2,%xmm9,%xmm5 + vpaddq %xmm5,%xmm12,%xmm12 + vpshufd $0x32,-48(%rdi),%xmm7 + vpmuludq %xmm3,%xmm9,%xmm6 + vpaddq %xmm6,%xmm13,%xmm13 + vpmuludq %xmm4,%xmm9,%xmm9 + vpaddq %xmm9,%xmm14,%xmm14 + + vpmuludq %xmm3,%xmm7,%xmm5 + vpaddq %xmm5,%xmm14,%xmm14 + vpshufd $0x32,-32(%rdi),%xmm8 + vpmuludq %xmm2,%xmm7,%xmm6 + vpaddq %xmm6,%xmm13,%xmm13 + vpshufd $0x32,-16(%rdi),%xmm9 + vpmuludq %xmm1,%xmm7,%xmm5 + vpaddq %xmm5,%xmm12,%xmm12 + vpmuludq %xmm0,%xmm7,%xmm7 + vpaddq %xmm7,%xmm11,%xmm11 + vpmuludq %xmm4,%xmm8,%xmm8 + vpaddq %xmm8,%xmm10,%xmm10 + + vpshufd $0x32,0(%rdi),%xmm7 + vpmuludq %xmm2,%xmm9,%xmm6 + vpaddq %xmm6,%xmm14,%xmm14 + vpmuludq %xmm1,%xmm9,%xmm5 + vpaddq %xmm5,%xmm13,%xmm13 + vpshufd $0x32,16(%rdi),%xmm8 + vpmuludq %xmm0,%xmm9,%xmm9 + vpaddq %xmm9,%xmm12,%xmm12 + vpmuludq %xmm4,%xmm7,%xmm6 + vpaddq %xmm6,%xmm11,%xmm11 + vpshufd $0x32,32(%rdi),%xmm9 + vpmuludq %xmm3,%xmm7,%xmm7 + vpaddq %xmm7,%xmm10,%xmm10 + + vpmuludq %xmm1,%xmm8,%xmm5 + vpaddq %xmm5,%xmm14,%xmm14 + vpmuludq %xmm0,%xmm8,%xmm8 + vpaddq %xmm8,%xmm13,%xmm13 + vpshufd $0x32,48(%rdi),%xmm7 + vpmuludq %xmm4,%xmm9,%xmm6 + vpaddq %xmm6,%xmm12,%xmm12 + vpshufd $0x32,64(%rdi),%xmm8 + vpmuludq %xmm3,%xmm9,%xmm5 + vpaddq %xmm5,%xmm11,%xmm11 + vpmuludq %xmm2,%xmm9,%xmm9 + vpaddq %xmm9,%xmm10,%xmm10 + + vpmuludq %xmm0,%xmm7,%xmm7 + vpaddq %xmm7,%xmm14,%xmm14 + vpmuludq %xmm4,%xmm8,%xmm6 + vpaddq %xmm6,%xmm13,%xmm13 + vpmuludq %xmm3,%xmm8,%xmm5 + vpaddq %xmm5,%xmm12,%xmm12 + vpmuludq %xmm2,%xmm8,%xmm6 + vpaddq %xmm6,%xmm11,%xmm11 + vpmuludq %xmm1,%xmm8,%xmm8 + vpaddq %xmm8,%xmm10,%xmm10 + +.Lshort_tail_avx: + + + + vpsrldq $8,%xmm14,%xmm9 + vpsrldq $8,%xmm13,%xmm8 + vpsrldq $8,%xmm11,%xmm6 + vpsrldq $8,%xmm10,%xmm5 + vpsrldq $8,%xmm12,%xmm7 + vpaddq %xmm8,%xmm13,%xmm13 + vpaddq %xmm9,%xmm14,%xmm14 + vpaddq %xmm5,%xmm10,%xmm10 + vpaddq %xmm6,%xmm11,%xmm11 + vpaddq %xmm7,%xmm12,%xmm12 + + + + + vpsrlq $26,%xmm13,%xmm3 + vpand %xmm15,%xmm13,%xmm13 + vpaddq %xmm3,%xmm14,%xmm14 + + vpsrlq $26,%xmm10,%xmm0 + vpand %xmm15,%xmm10,%xmm10 + vpaddq %xmm0,%xmm11,%xmm11 + + vpsrlq $26,%xmm14,%xmm4 + vpand %xmm15,%xmm14,%xmm14 + + vpsrlq $26,%xmm11,%xmm1 + vpand %xmm15,%xmm11,%xmm11 + vpaddq %xmm1,%xmm12,%xmm12 + + vpaddq %xmm4,%xmm10,%xmm10 + vpsllq $2,%xmm4,%xmm4 + vpaddq %xmm4,%xmm10,%xmm10 + + vpsrlq $26,%xmm12,%xmm2 + vpand %xmm15,%xmm12,%xmm12 + vpaddq %xmm2,%xmm13,%xmm13 + + vpsrlq $26,%xmm10,%xmm0 + vpand %xmm15,%xmm10,%xmm10 + vpaddq %xmm0,%xmm11,%xmm11 + + vpsrlq $26,%xmm13,%xmm3 + vpand %xmm15,%xmm13,%xmm13 + vpaddq %xmm3,%xmm14,%xmm14 + + vmovd %xmm10,-112(%rdi) + vmovd %xmm11,-108(%rdi) + vmovd %xmm12,-104(%rdi) + vmovd %xmm13,-100(%rdi) + vmovd %xmm14,-96(%rdi) + leaq 88(%r11),%rsp +.cfi_def_cfa %rsp,8 + vzeroupper + .byte 0xf3,0xc3 +.cfi_endproc +.size poly1305_blocks_avx,.-poly1305_blocks_avx + +.type poly1305_emit_avx,@function +.align 32 +poly1305_emit_avx: +.cfi_startproc + cmpl $0,20(%rdi) + je .Lemit + + movl 0(%rdi),%eax + movl 4(%rdi),%ecx + movl 8(%rdi),%r8d + movl 12(%rdi),%r11d + movl 16(%rdi),%r10d + + shlq $26,%rcx + movq %r8,%r9 + shlq $52,%r8 + addq %rcx,%rax + shrq $12,%r9 + addq %rax,%r8 + adcq $0,%r9 + + shlq $14,%r11 + movq %r10,%rax + shrq $24,%r10 + addq %r11,%r9 + shlq $40,%rax + addq %rax,%r9 + adcq $0,%r10 + + movq %r10,%rax + movq %r10,%rcx + andq $3,%r10 + shrq $2,%rax + andq $-4,%rcx + addq %rcx,%rax + addq %rax,%r8 + adcq $0,%r9 + adcq $0,%r10 + + movq %r8,%rax + addq $5,%r8 + movq %r9,%rcx + adcq $0,%r9 + adcq $0,%r10 + shrq $2,%r10 + cmovnzq %r8,%rax + cmovnzq %r9,%rcx + + addq 0(%rdx),%rax + adcq 8(%rdx),%rcx + movq %rax,0(%rsi) + movq %rcx,8(%rsi) + + .byte 0xf3,0xc3 +.cfi_endproc +.size poly1305_emit_avx,.-poly1305_emit_avx +.type poly1305_blocks_avx2,@function +.align 32 +poly1305_blocks_avx2: +.cfi_startproc + movl 20(%rdi),%r8d + cmpq $128,%rdx + jae .Lblocks_avx2 + testl %r8d,%r8d + jz .Lblocks + +.Lblocks_avx2: + andq $-16,%rdx + jz .Lno_data_avx2 + + vzeroupper + + testl %r8d,%r8d + jz .Lbase2_64_avx2 + + testq $63,%rdx + jz .Leven_avx2 + + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 +.Lblocks_avx2_body: + + movq %rdx,%r15 + + movq 0(%rdi),%r8 + movq 8(%rdi),%r9 + movl 16(%rdi),%ebp + + movq 24(%rdi),%r11 + movq 32(%rdi),%r13 + + + movl %r8d,%r14d + andq $-2147483648,%r8 + movq %r9,%r12 + movl %r9d,%ebx + andq $-2147483648,%r9 + + shrq $6,%r8 + shlq $52,%r12 + addq %r8,%r14 + shrq $12,%rbx + shrq $18,%r9 + addq %r12,%r14 + adcq %r9,%rbx + + movq %rbp,%r8 + shlq $40,%r8 + shrq $24,%rbp + addq %r8,%rbx + adcq $0,%rbp + + movq $-4,%r9 + movq %rbp,%r8 + andq %rbp,%r9 + shrq $2,%r8 + andq $3,%rbp + addq %r9,%r8 + addq %r8,%r14 + adcq $0,%rbx + adcq $0,%rbp + + movq %r13,%r12 + movq %r13,%rax + shrq $2,%r13 + addq %r12,%r13 + +.Lbase2_26_pre_avx2: + addq 0(%rsi),%r14 + adcq 8(%rsi),%rbx + leaq 16(%rsi),%rsi + adcq %rcx,%rbp + subq $16,%r15 + + call __poly1305_block + movq %r12,%rax + + testq $63,%r15 + jnz .Lbase2_26_pre_avx2 + + testq %rcx,%rcx + jz .Lstore_base2_64_avx2 + + + movq %r14,%rax + movq %r14,%rdx + shrq $52,%r14 + movq %rbx,%r11 + movq %rbx,%r12 + shrq $26,%rdx + andq $0x3ffffff,%rax + shlq $12,%r11 + andq $0x3ffffff,%rdx + shrq $14,%rbx + orq %r11,%r14 + shlq $24,%rbp + andq $0x3ffffff,%r14 + shrq $40,%r12 + andq $0x3ffffff,%rbx + orq %r12,%rbp + + testq %r15,%r15 + jz .Lstore_base2_26_avx2 + + vmovd %eax,%xmm0 + vmovd %edx,%xmm1 + vmovd %r14d,%xmm2 + vmovd %ebx,%xmm3 + vmovd %ebp,%xmm4 + jmp .Lproceed_avx2 + +.align 32 +.Lstore_base2_64_avx2: + movq %r14,0(%rdi) + movq %rbx,8(%rdi) + movq %rbp,16(%rdi) + jmp .Ldone_avx2 + +.align 16 +.Lstore_base2_26_avx2: + movl %eax,0(%rdi) + movl %edx,4(%rdi) + movl %r14d,8(%rdi) + movl %ebx,12(%rdi) + movl %ebp,16(%rdi) +.align 16 +.Ldone_avx2: + movq 0(%rsp),%r15 +.cfi_restore %r15 + movq 8(%rsp),%r14 +.cfi_restore %r14 + movq 16(%rsp),%r13 +.cfi_restore %r13 + movq 24(%rsp),%r12 +.cfi_restore %r12 + movq 32(%rsp),%rbp +.cfi_restore %rbp + movq 40(%rsp),%rbx +.cfi_restore %rbx + leaq 48(%rsp),%rsp +.cfi_adjust_cfa_offset -48 +.Lno_data_avx2: +.Lblocks_avx2_epilogue: + .byte 0xf3,0xc3 +.cfi_endproc + +.align 32 +.Lbase2_64_avx2: +.cfi_startproc + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 +.Lbase2_64_avx2_body: + + movq %rdx,%r15 + + movq 24(%rdi),%r11 + movq 32(%rdi),%r13 + + movq 0(%rdi),%r14 + movq 8(%rdi),%rbx + movl 16(%rdi),%ebp + + movq %r13,%r12 + movq %r13,%rax + shrq $2,%r13 + addq %r12,%r13 + + testq $63,%rdx + jz .Linit_avx2 + +.Lbase2_64_pre_avx2: + addq 0(%rsi),%r14 + adcq 8(%rsi),%rbx + leaq 16(%rsi),%rsi + adcq %rcx,%rbp + subq $16,%r15 + + call __poly1305_block + movq %r12,%rax + + testq $63,%r15 + jnz .Lbase2_64_pre_avx2 + +.Linit_avx2: + + movq %r14,%rax + movq %r14,%rdx + shrq $52,%r14 + movq %rbx,%r8 + movq %rbx,%r9 + shrq $26,%rdx + andq $0x3ffffff,%rax + shlq $12,%r8 + andq $0x3ffffff,%rdx + shrq $14,%rbx + orq %r8,%r14 + shlq $24,%rbp + andq $0x3ffffff,%r14 + shrq $40,%r9 + andq $0x3ffffff,%rbx + orq %r9,%rbp + + vmovd %eax,%xmm0 + vmovd %edx,%xmm1 + vmovd %r14d,%xmm2 + vmovd %ebx,%xmm3 + vmovd %ebp,%xmm4 + movl $1,20(%rdi) + + call __poly1305_init_avx + +.Lproceed_avx2: + movq %r15,%rdx + movl OPENSSL_ia32cap_P+8(%rip),%r10d + movl $3221291008,%r11d + + movq 0(%rsp),%r15 +.cfi_restore %r15 + movq 8(%rsp),%r14 +.cfi_restore %r14 + movq 16(%rsp),%r13 +.cfi_restore %r13 + movq 24(%rsp),%r12 +.cfi_restore %r12 + movq 32(%rsp),%rbp +.cfi_restore %rbp + movq 40(%rsp),%rbx +.cfi_restore %rbx + leaq 48(%rsp),%rax + leaq 48(%rsp),%rsp +.cfi_adjust_cfa_offset -48 +.Lbase2_64_avx2_epilogue: + jmp .Ldo_avx2 +.cfi_endproc + +.align 32 +.Leven_avx2: +.cfi_startproc + movl OPENSSL_ia32cap_P+8(%rip),%r10d + vmovd 0(%rdi),%xmm0 + vmovd 4(%rdi),%xmm1 + vmovd 8(%rdi),%xmm2 + vmovd 12(%rdi),%xmm3 + vmovd 16(%rdi),%xmm4 + +.Ldo_avx2: + leaq -8(%rsp),%r11 +.cfi_def_cfa %r11,16 + subq $0x128,%rsp + leaq .Lconst(%rip),%rcx + leaq 48+64(%rdi),%rdi + vmovdqa 96(%rcx),%ymm7 + + + vmovdqu -64(%rdi),%xmm9 + andq $-512,%rsp + vmovdqu -48(%rdi),%xmm10 + vmovdqu -32(%rdi),%xmm6 + vmovdqu -16(%rdi),%xmm11 + vmovdqu 0(%rdi),%xmm12 + vmovdqu 16(%rdi),%xmm13 + leaq 144(%rsp),%rax + vmovdqu 32(%rdi),%xmm14 + vpermd %ymm9,%ymm7,%ymm9 + vmovdqu 48(%rdi),%xmm15 + vpermd %ymm10,%ymm7,%ymm10 + vmovdqu 64(%rdi),%xmm5 + vpermd %ymm6,%ymm7,%ymm6 + vmovdqa %ymm9,0(%rsp) + vpermd %ymm11,%ymm7,%ymm11 + vmovdqa %ymm10,32-144(%rax) + vpermd %ymm12,%ymm7,%ymm12 + vmovdqa %ymm6,64-144(%rax) + vpermd %ymm13,%ymm7,%ymm13 + vmovdqa %ymm11,96-144(%rax) + vpermd %ymm14,%ymm7,%ymm14 + vmovdqa %ymm12,128-144(%rax) + vpermd %ymm15,%ymm7,%ymm15 + vmovdqa %ymm13,160-144(%rax) + vpermd %ymm5,%ymm7,%ymm5 + vmovdqa %ymm14,192-144(%rax) + vmovdqa %ymm15,224-144(%rax) + vmovdqa %ymm5,256-144(%rax) + vmovdqa 64(%rcx),%ymm5 + + + + vmovdqu 0(%rsi),%xmm7 + vmovdqu 16(%rsi),%xmm8 + vinserti128 $1,32(%rsi),%ymm7,%ymm7 + vinserti128 $1,48(%rsi),%ymm8,%ymm8 + leaq 64(%rsi),%rsi + + vpsrldq $6,%ymm7,%ymm9 + vpsrldq $6,%ymm8,%ymm10 + vpunpckhqdq %ymm8,%ymm7,%ymm6 + vpunpcklqdq %ymm10,%ymm9,%ymm9 + vpunpcklqdq %ymm8,%ymm7,%ymm7 + + vpsrlq $30,%ymm9,%ymm10 + vpsrlq $4,%ymm9,%ymm9 + vpsrlq $26,%ymm7,%ymm8 + vpsrlq $40,%ymm6,%ymm6 + vpand %ymm5,%ymm9,%ymm9 + vpand %ymm5,%ymm7,%ymm7 + vpand %ymm5,%ymm8,%ymm8 + vpand %ymm5,%ymm10,%ymm10 + vpor 32(%rcx),%ymm6,%ymm6 + + vpaddq %ymm2,%ymm9,%ymm2 + subq $64,%rdx + jz .Ltail_avx2 + jmp .Loop_avx2 + +.align 32 +.Loop_avx2: + + + + + + + + + vpaddq %ymm0,%ymm7,%ymm0 + vmovdqa 0(%rsp),%ymm7 + vpaddq %ymm1,%ymm8,%ymm1 + vmovdqa 32(%rsp),%ymm8 + vpaddq %ymm3,%ymm10,%ymm3 + vmovdqa 96(%rsp),%ymm9 + vpaddq %ymm4,%ymm6,%ymm4 + vmovdqa 48(%rax),%ymm10 + vmovdqa 112(%rax),%ymm5 + + + + + + + + + + + + + + + + + vpmuludq %ymm2,%ymm7,%ymm13 + vpmuludq %ymm2,%ymm8,%ymm14 + vpmuludq %ymm2,%ymm9,%ymm15 + vpmuludq %ymm2,%ymm10,%ymm11 + vpmuludq %ymm2,%ymm5,%ymm12 + + vpmuludq %ymm0,%ymm8,%ymm6 + vpmuludq %ymm1,%ymm8,%ymm2 + vpaddq %ymm6,%ymm12,%ymm12 + vpaddq %ymm2,%ymm13,%ymm13 + vpmuludq %ymm3,%ymm8,%ymm6 + vpmuludq 64(%rsp),%ymm4,%ymm2 + vpaddq %ymm6,%ymm15,%ymm15 + vpaddq %ymm2,%ymm11,%ymm11 + vmovdqa -16(%rax),%ymm8 + + vpmuludq %ymm0,%ymm7,%ymm6 + vpmuludq %ymm1,%ymm7,%ymm2 + vpaddq %ymm6,%ymm11,%ymm11 + vpaddq %ymm2,%ymm12,%ymm12 + vpmuludq %ymm3,%ymm7,%ymm6 + vpmuludq %ymm4,%ymm7,%ymm2 + vmovdqu 0(%rsi),%xmm7 + vpaddq %ymm6,%ymm14,%ymm14 + vpaddq %ymm2,%ymm15,%ymm15 + vinserti128 $1,32(%rsi),%ymm7,%ymm7 + + vpmuludq %ymm3,%ymm8,%ymm6 + vpmuludq %ymm4,%ymm8,%ymm2 + vmovdqu 16(%rsi),%xmm8 + vpaddq %ymm6,%ymm11,%ymm11 + vpaddq %ymm2,%ymm12,%ymm12 + vmovdqa 16(%rax),%ymm2 + vpmuludq %ymm1,%ymm9,%ymm6 + vpmuludq %ymm0,%ymm9,%ymm9 + vpaddq %ymm6,%ymm14,%ymm14 + vpaddq %ymm9,%ymm13,%ymm13 + vinserti128 $1,48(%rsi),%ymm8,%ymm8 + leaq 64(%rsi),%rsi + + vpmuludq %ymm1,%ymm2,%ymm6 + vpmuludq %ymm0,%ymm2,%ymm2 + vpsrldq $6,%ymm7,%ymm9 + vpaddq %ymm6,%ymm15,%ymm15 + vpaddq %ymm2,%ymm14,%ymm14 + vpmuludq %ymm3,%ymm10,%ymm6 + vpmuludq %ymm4,%ymm10,%ymm2 + vpsrldq $6,%ymm8,%ymm10 + vpaddq %ymm6,%ymm12,%ymm12 + vpaddq %ymm2,%ymm13,%ymm13 + vpunpckhqdq %ymm8,%ymm7,%ymm6 + + vpmuludq %ymm3,%ymm5,%ymm3 + vpmuludq %ymm4,%ymm5,%ymm4 + vpunpcklqdq %ymm8,%ymm7,%ymm7 + vpaddq %ymm3,%ymm13,%ymm2 + vpaddq %ymm4,%ymm14,%ymm3 + vpunpcklqdq %ymm10,%ymm9,%ymm10 + vpmuludq 80(%rax),%ymm0,%ymm4 + vpmuludq %ymm1,%ymm5,%ymm0 + vmovdqa 64(%rcx),%ymm5 + vpaddq %ymm4,%ymm15,%ymm4 + vpaddq %ymm0,%ymm11,%ymm0 + + + + + vpsrlq $26,%ymm3,%ymm14 + vpand %ymm5,%ymm3,%ymm3 + vpaddq %ymm14,%ymm4,%ymm4 + + vpsrlq $26,%ymm0,%ymm11 + vpand %ymm5,%ymm0,%ymm0 + vpaddq %ymm11,%ymm12,%ymm1 + + vpsrlq $26,%ymm4,%ymm15 + vpand %ymm5,%ymm4,%ymm4 + + vpsrlq $4,%ymm10,%ymm9 + + vpsrlq $26,%ymm1,%ymm12 + vpand %ymm5,%ymm1,%ymm1 + vpaddq %ymm12,%ymm2,%ymm2 + + vpaddq %ymm15,%ymm0,%ymm0 + vpsllq $2,%ymm15,%ymm15 + vpaddq %ymm15,%ymm0,%ymm0 + + vpand %ymm5,%ymm9,%ymm9 + vpsrlq $26,%ymm7,%ymm8 + + vpsrlq $26,%ymm2,%ymm13 + vpand %ymm5,%ymm2,%ymm2 + vpaddq %ymm13,%ymm3,%ymm3 + + vpaddq %ymm9,%ymm2,%ymm2 + vpsrlq $30,%ymm10,%ymm10 + + vpsrlq $26,%ymm0,%ymm11 + vpand %ymm5,%ymm0,%ymm0 + vpaddq %ymm11,%ymm1,%ymm1 + + vpsrlq $40,%ymm6,%ymm6 + + vpsrlq $26,%ymm3,%ymm14 + vpand %ymm5,%ymm3,%ymm3 + vpaddq %ymm14,%ymm4,%ymm4 + + vpand %ymm5,%ymm7,%ymm7 + vpand %ymm5,%ymm8,%ymm8 + vpand %ymm5,%ymm10,%ymm10 + vpor 32(%rcx),%ymm6,%ymm6 + + subq $64,%rdx + jnz .Loop_avx2 + +.byte 0x66,0x90 +.Ltail_avx2: + + + + + + + + vpaddq %ymm0,%ymm7,%ymm0 + vmovdqu 4(%rsp),%ymm7 + vpaddq %ymm1,%ymm8,%ymm1 + vmovdqu 36(%rsp),%ymm8 + vpaddq %ymm3,%ymm10,%ymm3 + vmovdqu 100(%rsp),%ymm9 + vpaddq %ymm4,%ymm6,%ymm4 + vmovdqu 52(%rax),%ymm10 + vmovdqu 116(%rax),%ymm5 + + vpmuludq %ymm2,%ymm7,%ymm13 + vpmuludq %ymm2,%ymm8,%ymm14 + vpmuludq %ymm2,%ymm9,%ymm15 + vpmuludq %ymm2,%ymm10,%ymm11 + vpmuludq %ymm2,%ymm5,%ymm12 + + vpmuludq %ymm0,%ymm8,%ymm6 + vpmuludq %ymm1,%ymm8,%ymm2 + vpaddq %ymm6,%ymm12,%ymm12 + vpaddq %ymm2,%ymm13,%ymm13 + vpmuludq %ymm3,%ymm8,%ymm6 + vpmuludq 68(%rsp),%ymm4,%ymm2 + vpaddq %ymm6,%ymm15,%ymm15 + vpaddq %ymm2,%ymm11,%ymm11 + + vpmuludq %ymm0,%ymm7,%ymm6 + vpmuludq %ymm1,%ymm7,%ymm2 + vpaddq %ymm6,%ymm11,%ymm11 + vmovdqu -12(%rax),%ymm8 + vpaddq %ymm2,%ymm12,%ymm12 + vpmuludq %ymm3,%ymm7,%ymm6 + vpmuludq %ymm4,%ymm7,%ymm2 + vpaddq %ymm6,%ymm14,%ymm14 + vpaddq %ymm2,%ymm15,%ymm15 + + vpmuludq %ymm3,%ymm8,%ymm6 + vpmuludq %ymm4,%ymm8,%ymm2 + vpaddq %ymm6,%ymm11,%ymm11 + vpaddq %ymm2,%ymm12,%ymm12 + vmovdqu 20(%rax),%ymm2 + vpmuludq %ymm1,%ymm9,%ymm6 + vpmuludq %ymm0,%ymm9,%ymm9 + vpaddq %ymm6,%ymm14,%ymm14 + vpaddq %ymm9,%ymm13,%ymm13 + + vpmuludq %ymm1,%ymm2,%ymm6 + vpmuludq %ymm0,%ymm2,%ymm2 + vpaddq %ymm6,%ymm15,%ymm15 + vpaddq %ymm2,%ymm14,%ymm14 + vpmuludq %ymm3,%ymm10,%ymm6 + vpmuludq %ymm4,%ymm10,%ymm2 + vpaddq %ymm6,%ymm12,%ymm12 + vpaddq %ymm2,%ymm13,%ymm13 + + vpmuludq %ymm3,%ymm5,%ymm3 + vpmuludq %ymm4,%ymm5,%ymm4 + vpaddq %ymm3,%ymm13,%ymm2 + vpaddq %ymm4,%ymm14,%ymm3 + vpmuludq 84(%rax),%ymm0,%ymm4 + vpmuludq %ymm1,%ymm5,%ymm0 + vmovdqa 64(%rcx),%ymm5 + vpaddq %ymm4,%ymm15,%ymm4 + vpaddq %ymm0,%ymm11,%ymm0 + + + + + vpsrldq $8,%ymm12,%ymm8 + vpsrldq $8,%ymm2,%ymm9 + vpsrldq $8,%ymm3,%ymm10 + vpsrldq $8,%ymm4,%ymm6 + vpsrldq $8,%ymm0,%ymm7 + vpaddq %ymm8,%ymm12,%ymm12 + vpaddq %ymm9,%ymm2,%ymm2 + vpaddq %ymm10,%ymm3,%ymm3 + vpaddq %ymm6,%ymm4,%ymm4 + vpaddq %ymm7,%ymm0,%ymm0 + + vpermq $0x2,%ymm3,%ymm10 + vpermq $0x2,%ymm4,%ymm6 + vpermq $0x2,%ymm0,%ymm7 + vpermq $0x2,%ymm12,%ymm8 + vpermq $0x2,%ymm2,%ymm9 + vpaddq %ymm10,%ymm3,%ymm3 + vpaddq %ymm6,%ymm4,%ymm4 + vpaddq %ymm7,%ymm0,%ymm0 + vpaddq %ymm8,%ymm12,%ymm12 + vpaddq %ymm9,%ymm2,%ymm2 + + + + + vpsrlq $26,%ymm3,%ymm14 + vpand %ymm5,%ymm3,%ymm3 + vpaddq %ymm14,%ymm4,%ymm4 + + vpsrlq $26,%ymm0,%ymm11 + vpand %ymm5,%ymm0,%ymm0 + vpaddq %ymm11,%ymm12,%ymm1 + + vpsrlq $26,%ymm4,%ymm15 + vpand %ymm5,%ymm4,%ymm4 + + vpsrlq $26,%ymm1,%ymm12 + vpand %ymm5,%ymm1,%ymm1 + vpaddq %ymm12,%ymm2,%ymm2 + + vpaddq %ymm15,%ymm0,%ymm0 + vpsllq $2,%ymm15,%ymm15 + vpaddq %ymm15,%ymm0,%ymm0 + + vpsrlq $26,%ymm2,%ymm13 + vpand %ymm5,%ymm2,%ymm2 + vpaddq %ymm13,%ymm3,%ymm3 + + vpsrlq $26,%ymm0,%ymm11 + vpand %ymm5,%ymm0,%ymm0 + vpaddq %ymm11,%ymm1,%ymm1 + + vpsrlq $26,%ymm3,%ymm14 + vpand %ymm5,%ymm3,%ymm3 + vpaddq %ymm14,%ymm4,%ymm4 + + vmovd %xmm0,-112(%rdi) + vmovd %xmm1,-108(%rdi) + vmovd %xmm2,-104(%rdi) + vmovd %xmm3,-100(%rdi) + vmovd %xmm4,-96(%rdi) + leaq 8(%r11),%rsp +.cfi_def_cfa %rsp,8 + vzeroupper + .byte 0xf3,0xc3 +.cfi_endproc +.size poly1305_blocks_avx2,.-poly1305_blocks_avx2 +.align 64 +.Lconst: +.Lmask24: +.long 0x0ffffff,0,0x0ffffff,0,0x0ffffff,0,0x0ffffff,0 +.L129: +.long 16777216,0,16777216,0,16777216,0,16777216,0 +.Lmask26: +.long 0x3ffffff,0,0x3ffffff,0,0x3ffffff,0,0x3ffffff,0 +.Lpermd_avx2: +.long 2,2,2,3,2,0,2,1 +.Lpermd_avx512: +.long 0,0,0,1, 0,2,0,3, 0,4,0,5, 0,6,0,7 + +.L2_44_inp_permd: +.long 0,1,1,2,2,3,7,7 +.L2_44_inp_shift: +.quad 0,12,24,64 +.L2_44_mask: +.quad 0xfffffffffff,0xfffffffffff,0x3ffffffffff,0xffffffffffffffff +.L2_44_shift_rgt: +.quad 44,44,42,64 +.L2_44_shift_lft: +.quad 8,8,10,64 + +.align 64 +.Lx_mask44: +.quad 0xfffffffffff,0xfffffffffff,0xfffffffffff,0xfffffffffff +.quad 0xfffffffffff,0xfffffffffff,0xfffffffffff,0xfffffffffff +.Lx_mask42: +.quad 0x3ffffffffff,0x3ffffffffff,0x3ffffffffff,0x3ffffffffff +.quad 0x3ffffffffff,0x3ffffffffff,0x3ffffffffff,0x3ffffffffff +.byte 80,111,108,121,49,51,48,53,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 16 +.globl xor128_encrypt_n_pad +.type xor128_encrypt_n_pad,@function +.align 16 +xor128_encrypt_n_pad: +.cfi_startproc + subq %rdx,%rsi + subq %rdx,%rdi + movq %rcx,%r10 + shrq $4,%rcx + jz .Ltail_enc + nop +.Loop_enc_xmm: + movdqu (%rsi,%rdx,1),%xmm0 + pxor (%rdx),%xmm0 + movdqu %xmm0,(%rdi,%rdx,1) + movdqa %xmm0,(%rdx) + leaq 16(%rdx),%rdx + decq %rcx + jnz .Loop_enc_xmm + + andq $15,%r10 + jz .Ldone_enc + +.Ltail_enc: + movq $16,%rcx + subq %r10,%rcx + xorl %eax,%eax +.Loop_enc_byte: + movb (%rsi,%rdx,1),%al + xorb (%rdx),%al + movb %al,(%rdi,%rdx,1) + movb %al,(%rdx) + leaq 1(%rdx),%rdx + decq %r10 + jnz .Loop_enc_byte + + xorl %eax,%eax +.Loop_enc_pad: + movb %al,(%rdx) + leaq 1(%rdx),%rdx + decq %rcx + jnz .Loop_enc_pad + +.Ldone_enc: + movq %rdx,%rax + .byte 0xf3,0xc3 +.cfi_endproc +.size xor128_encrypt_n_pad,.-xor128_encrypt_n_pad + +.globl xor128_decrypt_n_pad +.type xor128_decrypt_n_pad,@function +.align 16 +xor128_decrypt_n_pad: +.cfi_startproc + subq %rdx,%rsi + subq %rdx,%rdi + movq %rcx,%r10 + shrq $4,%rcx + jz .Ltail_dec + nop +.Loop_dec_xmm: + movdqu (%rsi,%rdx,1),%xmm0 + movdqa (%rdx),%xmm1 + pxor %xmm0,%xmm1 + movdqu %xmm1,(%rdi,%rdx,1) + movdqa %xmm0,(%rdx) + leaq 16(%rdx),%rdx + decq %rcx + jnz .Loop_dec_xmm + + pxor %xmm1,%xmm1 + andq $15,%r10 + jz .Ldone_dec + +.Ltail_dec: + movq $16,%rcx + subq %r10,%rcx + xorl %eax,%eax + xorq %r11,%r11 +.Loop_dec_byte: + movb (%rsi,%rdx,1),%r11b + movb (%rdx),%al + xorb %r11b,%al + movb %al,(%rdi,%rdx,1) + movb %r11b,(%rdx) + leaq 1(%rdx),%rdx + decq %r10 + jnz .Loop_dec_byte + + xorl %eax,%eax +.Loop_dec_pad: + movb %al,(%rdx) + leaq 1(%rdx),%rdx + decq %rcx + jnz .Loop_dec_pad + +.Ldone_dec: + movq %rdx,%rax + .byte 0xf3,0xc3 +.cfi_endproc +.size xor128_decrypt_n_pad,.-xor128_decrypt_n_pad diff --git a/vere/ext/openssl/gen/linux-x86_64/crypto/rc4/rc4-md5-x86_64.s b/vere/ext/openssl/gen/linux-x86_64/crypto/rc4/rc4-md5-x86_64.s new file mode 100644 index 0000000..03fbca8 --- /dev/null +++ b/vere/ext/openssl/gen/linux-x86_64/crypto/rc4/rc4-md5-x86_64.s @@ -0,0 +1,1281 @@ +.text +.align 16 + +.globl rc4_md5_enc +.type rc4_md5_enc,@function +rc4_md5_enc: +.cfi_startproc + cmpq $0,%r9 + je .Labort + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 + subq $40,%rsp +.cfi_adjust_cfa_offset 40 +.Lbody: + movq %rcx,%r11 + movq %r9,%r12 + movq %rsi,%r13 + movq %rdx,%r14 + movq %r8,%r15 + xorq %rbp,%rbp + xorq %rcx,%rcx + + leaq 8(%rdi),%rdi + movb -8(%rdi),%bpl + movb -4(%rdi),%cl + + incb %bpl + subq %r13,%r14 + movl (%rdi,%rbp,4),%eax + addb %al,%cl + leaq (%rdi,%rbp,4),%rsi + shlq $6,%r12 + addq %r15,%r12 + movq %r12,16(%rsp) + + movq %r11,24(%rsp) + movl 0(%r11),%r8d + movl 4(%r11),%r9d + movl 8(%r11),%r10d + movl 12(%r11),%r11d + jmp .Loop + +.align 16 +.Loop: + movl %r8d,0(%rsp) + movl %r9d,4(%rsp) + movl %r10d,8(%rsp) + movl %r11d,%r12d + movl %r11d,12(%rsp) + pxor %xmm0,%xmm0 + movl (%rdi,%rcx,4),%edx + xorl %r10d,%r12d + movl %eax,(%rdi,%rcx,4) + andl %r9d,%r12d + addl 0(%r15),%r8d + addb %dl,%al + movl 4(%rsi),%ebx + addl $3614090360,%r8d + xorl %r11d,%r12d + movzbl %al,%eax + movl %edx,0(%rsi) + addl %r12d,%r8d + addb %bl,%cl + roll $7,%r8d + movl %r10d,%r12d + movd (%rdi,%rax,4),%xmm0 + + addl %r9d,%r8d + pxor %xmm1,%xmm1 + movl (%rdi,%rcx,4),%edx + xorl %r9d,%r12d + movl %ebx,(%rdi,%rcx,4) + andl %r8d,%r12d + addl 4(%r15),%r11d + addb %dl,%bl + movl 8(%rsi),%eax + addl $3905402710,%r11d + xorl %r10d,%r12d + movzbl %bl,%ebx + movl %edx,4(%rsi) + addl %r12d,%r11d + addb %al,%cl + roll $12,%r11d + movl %r9d,%r12d + movd (%rdi,%rbx,4),%xmm1 + + addl %r8d,%r11d + movl (%rdi,%rcx,4),%edx + xorl %r8d,%r12d + movl %eax,(%rdi,%rcx,4) + andl %r11d,%r12d + addl 8(%r15),%r10d + addb %dl,%al + movl 12(%rsi),%ebx + addl $606105819,%r10d + xorl %r9d,%r12d + movzbl %al,%eax + movl %edx,8(%rsi) + addl %r12d,%r10d + addb %bl,%cl + roll $17,%r10d + movl %r8d,%r12d + pinsrw $1,(%rdi,%rax,4),%xmm0 + + addl %r11d,%r10d + movl (%rdi,%rcx,4),%edx + xorl %r11d,%r12d + movl %ebx,(%rdi,%rcx,4) + andl %r10d,%r12d + addl 12(%r15),%r9d + addb %dl,%bl + movl 16(%rsi),%eax + addl $3250441966,%r9d + xorl %r8d,%r12d + movzbl %bl,%ebx + movl %edx,12(%rsi) + addl %r12d,%r9d + addb %al,%cl + roll $22,%r9d + movl %r11d,%r12d + pinsrw $1,(%rdi,%rbx,4),%xmm1 + + addl %r10d,%r9d + movl (%rdi,%rcx,4),%edx + xorl %r10d,%r12d + movl %eax,(%rdi,%rcx,4) + andl %r9d,%r12d + addl 16(%r15),%r8d + addb %dl,%al + movl 20(%rsi),%ebx + addl $4118548399,%r8d + xorl %r11d,%r12d + movzbl %al,%eax + movl %edx,16(%rsi) + addl %r12d,%r8d + addb %bl,%cl + roll $7,%r8d + movl %r10d,%r12d + pinsrw $2,(%rdi,%rax,4),%xmm0 + + addl %r9d,%r8d + movl (%rdi,%rcx,4),%edx + xorl %r9d,%r12d + movl %ebx,(%rdi,%rcx,4) + andl %r8d,%r12d + addl 20(%r15),%r11d + addb %dl,%bl + movl 24(%rsi),%eax + addl $1200080426,%r11d + xorl %r10d,%r12d + movzbl %bl,%ebx + movl %edx,20(%rsi) + addl %r12d,%r11d + addb %al,%cl + roll $12,%r11d + movl %r9d,%r12d + pinsrw $2,(%rdi,%rbx,4),%xmm1 + + addl %r8d,%r11d + movl (%rdi,%rcx,4),%edx + xorl %r8d,%r12d + movl %eax,(%rdi,%rcx,4) + andl %r11d,%r12d + addl 24(%r15),%r10d + addb %dl,%al + movl 28(%rsi),%ebx + addl $2821735955,%r10d + xorl %r9d,%r12d + movzbl %al,%eax + movl %edx,24(%rsi) + addl %r12d,%r10d + addb %bl,%cl + roll $17,%r10d + movl %r8d,%r12d + pinsrw $3,(%rdi,%rax,4),%xmm0 + + addl %r11d,%r10d + movl (%rdi,%rcx,4),%edx + xorl %r11d,%r12d + movl %ebx,(%rdi,%rcx,4) + andl %r10d,%r12d + addl 28(%r15),%r9d + addb %dl,%bl + movl 32(%rsi),%eax + addl $4249261313,%r9d + xorl %r8d,%r12d + movzbl %bl,%ebx + movl %edx,28(%rsi) + addl %r12d,%r9d + addb %al,%cl + roll $22,%r9d + movl %r11d,%r12d + pinsrw $3,(%rdi,%rbx,4),%xmm1 + + addl %r10d,%r9d + movl (%rdi,%rcx,4),%edx + xorl %r10d,%r12d + movl %eax,(%rdi,%rcx,4) + andl %r9d,%r12d + addl 32(%r15),%r8d + addb %dl,%al + movl 36(%rsi),%ebx + addl $1770035416,%r8d + xorl %r11d,%r12d + movzbl %al,%eax + movl %edx,32(%rsi) + addl %r12d,%r8d + addb %bl,%cl + roll $7,%r8d + movl %r10d,%r12d + pinsrw $4,(%rdi,%rax,4),%xmm0 + + addl %r9d,%r8d + movl (%rdi,%rcx,4),%edx + xorl %r9d,%r12d + movl %ebx,(%rdi,%rcx,4) + andl %r8d,%r12d + addl 36(%r15),%r11d + addb %dl,%bl + movl 40(%rsi),%eax + addl $2336552879,%r11d + xorl %r10d,%r12d + movzbl %bl,%ebx + movl %edx,36(%rsi) + addl %r12d,%r11d + addb %al,%cl + roll $12,%r11d + movl %r9d,%r12d + pinsrw $4,(%rdi,%rbx,4),%xmm1 + + addl %r8d,%r11d + movl (%rdi,%rcx,4),%edx + xorl %r8d,%r12d + movl %eax,(%rdi,%rcx,4) + andl %r11d,%r12d + addl 40(%r15),%r10d + addb %dl,%al + movl 44(%rsi),%ebx + addl $4294925233,%r10d + xorl %r9d,%r12d + movzbl %al,%eax + movl %edx,40(%rsi) + addl %r12d,%r10d + addb %bl,%cl + roll $17,%r10d + movl %r8d,%r12d + pinsrw $5,(%rdi,%rax,4),%xmm0 + + addl %r11d,%r10d + movl (%rdi,%rcx,4),%edx + xorl %r11d,%r12d + movl %ebx,(%rdi,%rcx,4) + andl %r10d,%r12d + addl 44(%r15),%r9d + addb %dl,%bl + movl 48(%rsi),%eax + addl $2304563134,%r9d + xorl %r8d,%r12d + movzbl %bl,%ebx + movl %edx,44(%rsi) + addl %r12d,%r9d + addb %al,%cl + roll $22,%r9d + movl %r11d,%r12d + pinsrw $5,(%rdi,%rbx,4),%xmm1 + + addl %r10d,%r9d + movl (%rdi,%rcx,4),%edx + xorl %r10d,%r12d + movl %eax,(%rdi,%rcx,4) + andl %r9d,%r12d + addl 48(%r15),%r8d + addb %dl,%al + movl 52(%rsi),%ebx + addl $1804603682,%r8d + xorl %r11d,%r12d + movzbl %al,%eax + movl %edx,48(%rsi) + addl %r12d,%r8d + addb %bl,%cl + roll $7,%r8d + movl %r10d,%r12d + pinsrw $6,(%rdi,%rax,4),%xmm0 + + addl %r9d,%r8d + movl (%rdi,%rcx,4),%edx + xorl %r9d,%r12d + movl %ebx,(%rdi,%rcx,4) + andl %r8d,%r12d + addl 52(%r15),%r11d + addb %dl,%bl + movl 56(%rsi),%eax + addl $4254626195,%r11d + xorl %r10d,%r12d + movzbl %bl,%ebx + movl %edx,52(%rsi) + addl %r12d,%r11d + addb %al,%cl + roll $12,%r11d + movl %r9d,%r12d + pinsrw $6,(%rdi,%rbx,4),%xmm1 + + addl %r8d,%r11d + movl (%rdi,%rcx,4),%edx + xorl %r8d,%r12d + movl %eax,(%rdi,%rcx,4) + andl %r11d,%r12d + addl 56(%r15),%r10d + addb %dl,%al + movl 60(%rsi),%ebx + addl $2792965006,%r10d + xorl %r9d,%r12d + movzbl %al,%eax + movl %edx,56(%rsi) + addl %r12d,%r10d + addb %bl,%cl + roll $17,%r10d + movl %r8d,%r12d + pinsrw $7,(%rdi,%rax,4),%xmm0 + + addl %r11d,%r10d + movdqu (%r13),%xmm2 + movl (%rdi,%rcx,4),%edx + xorl %r11d,%r12d + movl %ebx,(%rdi,%rcx,4) + andl %r10d,%r12d + addl 60(%r15),%r9d + addb %dl,%bl + movl 64(%rsi),%eax + addl $1236535329,%r9d + xorl %r8d,%r12d + movzbl %bl,%ebx + movl %edx,60(%rsi) + addl %r12d,%r9d + addb %al,%cl + roll $22,%r9d + movl %r10d,%r12d + pinsrw $7,(%rdi,%rbx,4),%xmm1 + + addl %r10d,%r9d + psllq $8,%xmm1 + pxor %xmm0,%xmm2 + pxor %xmm1,%xmm2 + pxor %xmm0,%xmm0 + movl (%rdi,%rcx,4),%edx + xorl %r9d,%r12d + movl %eax,(%rdi,%rcx,4) + andl %r11d,%r12d + addl 4(%r15),%r8d + addb %dl,%al + movl 68(%rsi),%ebx + addl $4129170786,%r8d + xorl %r10d,%r12d + movzbl %al,%eax + movl %edx,64(%rsi) + addl %r12d,%r8d + addb %bl,%cl + roll $5,%r8d + movl %r9d,%r12d + movd (%rdi,%rax,4),%xmm0 + + addl %r9d,%r8d + pxor %xmm1,%xmm1 + movl (%rdi,%rcx,4),%edx + xorl %r8d,%r12d + movl %ebx,(%rdi,%rcx,4) + andl %r10d,%r12d + addl 24(%r15),%r11d + addb %dl,%bl + movl 72(%rsi),%eax + addl $3225465664,%r11d + xorl %r9d,%r12d + movzbl %bl,%ebx + movl %edx,68(%rsi) + addl %r12d,%r11d + addb %al,%cl + roll $9,%r11d + movl %r8d,%r12d + movd (%rdi,%rbx,4),%xmm1 + + addl %r8d,%r11d + movl (%rdi,%rcx,4),%edx + xorl %r11d,%r12d + movl %eax,(%rdi,%rcx,4) + andl %r9d,%r12d + addl 44(%r15),%r10d + addb %dl,%al + movl 76(%rsi),%ebx + addl $643717713,%r10d + xorl %r8d,%r12d + movzbl %al,%eax + movl %edx,72(%rsi) + addl %r12d,%r10d + addb %bl,%cl + roll $14,%r10d + movl %r11d,%r12d + pinsrw $1,(%rdi,%rax,4),%xmm0 + + addl %r11d,%r10d + movl (%rdi,%rcx,4),%edx + xorl %r10d,%r12d + movl %ebx,(%rdi,%rcx,4) + andl %r8d,%r12d + addl 0(%r15),%r9d + addb %dl,%bl + movl 80(%rsi),%eax + addl $3921069994,%r9d + xorl %r11d,%r12d + movzbl %bl,%ebx + movl %edx,76(%rsi) + addl %r12d,%r9d + addb %al,%cl + roll $20,%r9d + movl %r10d,%r12d + pinsrw $1,(%rdi,%rbx,4),%xmm1 + + addl %r10d,%r9d + movl (%rdi,%rcx,4),%edx + xorl %r9d,%r12d + movl %eax,(%rdi,%rcx,4) + andl %r11d,%r12d + addl 20(%r15),%r8d + addb %dl,%al + movl 84(%rsi),%ebx + addl $3593408605,%r8d + xorl %r10d,%r12d + movzbl %al,%eax + movl %edx,80(%rsi) + addl %r12d,%r8d + addb %bl,%cl + roll $5,%r8d + movl %r9d,%r12d + pinsrw $2,(%rdi,%rax,4),%xmm0 + + addl %r9d,%r8d + movl (%rdi,%rcx,4),%edx + xorl %r8d,%r12d + movl %ebx,(%rdi,%rcx,4) + andl %r10d,%r12d + addl 40(%r15),%r11d + addb %dl,%bl + movl 88(%rsi),%eax + addl $38016083,%r11d + xorl %r9d,%r12d + movzbl %bl,%ebx + movl %edx,84(%rsi) + addl %r12d,%r11d + addb %al,%cl + roll $9,%r11d + movl %r8d,%r12d + pinsrw $2,(%rdi,%rbx,4),%xmm1 + + addl %r8d,%r11d + movl (%rdi,%rcx,4),%edx + xorl %r11d,%r12d + movl %eax,(%rdi,%rcx,4) + andl %r9d,%r12d + addl 60(%r15),%r10d + addb %dl,%al + movl 92(%rsi),%ebx + addl $3634488961,%r10d + xorl %r8d,%r12d + movzbl %al,%eax + movl %edx,88(%rsi) + addl %r12d,%r10d + addb %bl,%cl + roll $14,%r10d + movl %r11d,%r12d + pinsrw $3,(%rdi,%rax,4),%xmm0 + + addl %r11d,%r10d + movl (%rdi,%rcx,4),%edx + xorl %r10d,%r12d + movl %ebx,(%rdi,%rcx,4) + andl %r8d,%r12d + addl 16(%r15),%r9d + addb %dl,%bl + movl 96(%rsi),%eax + addl $3889429448,%r9d + xorl %r11d,%r12d + movzbl %bl,%ebx + movl %edx,92(%rsi) + addl %r12d,%r9d + addb %al,%cl + roll $20,%r9d + movl %r10d,%r12d + pinsrw $3,(%rdi,%rbx,4),%xmm1 + + addl %r10d,%r9d + movl (%rdi,%rcx,4),%edx + xorl %r9d,%r12d + movl %eax,(%rdi,%rcx,4) + andl %r11d,%r12d + addl 36(%r15),%r8d + addb %dl,%al + movl 100(%rsi),%ebx + addl $568446438,%r8d + xorl %r10d,%r12d + movzbl %al,%eax + movl %edx,96(%rsi) + addl %r12d,%r8d + addb %bl,%cl + roll $5,%r8d + movl %r9d,%r12d + pinsrw $4,(%rdi,%rax,4),%xmm0 + + addl %r9d,%r8d + movl (%rdi,%rcx,4),%edx + xorl %r8d,%r12d + movl %ebx,(%rdi,%rcx,4) + andl %r10d,%r12d + addl 56(%r15),%r11d + addb %dl,%bl + movl 104(%rsi),%eax + addl $3275163606,%r11d + xorl %r9d,%r12d + movzbl %bl,%ebx + movl %edx,100(%rsi) + addl %r12d,%r11d + addb %al,%cl + roll $9,%r11d + movl %r8d,%r12d + pinsrw $4,(%rdi,%rbx,4),%xmm1 + + addl %r8d,%r11d + movl (%rdi,%rcx,4),%edx + xorl %r11d,%r12d + movl %eax,(%rdi,%rcx,4) + andl %r9d,%r12d + addl 12(%r15),%r10d + addb %dl,%al + movl 108(%rsi),%ebx + addl $4107603335,%r10d + xorl %r8d,%r12d + movzbl %al,%eax + movl %edx,104(%rsi) + addl %r12d,%r10d + addb %bl,%cl + roll $14,%r10d + movl %r11d,%r12d + pinsrw $5,(%rdi,%rax,4),%xmm0 + + addl %r11d,%r10d + movl (%rdi,%rcx,4),%edx + xorl %r10d,%r12d + movl %ebx,(%rdi,%rcx,4) + andl %r8d,%r12d + addl 32(%r15),%r9d + addb %dl,%bl + movl 112(%rsi),%eax + addl $1163531501,%r9d + xorl %r11d,%r12d + movzbl %bl,%ebx + movl %edx,108(%rsi) + addl %r12d,%r9d + addb %al,%cl + roll $20,%r9d + movl %r10d,%r12d + pinsrw $5,(%rdi,%rbx,4),%xmm1 + + addl %r10d,%r9d + movl (%rdi,%rcx,4),%edx + xorl %r9d,%r12d + movl %eax,(%rdi,%rcx,4) + andl %r11d,%r12d + addl 52(%r15),%r8d + addb %dl,%al + movl 116(%rsi),%ebx + addl $2850285829,%r8d + xorl %r10d,%r12d + movzbl %al,%eax + movl %edx,112(%rsi) + addl %r12d,%r8d + addb %bl,%cl + roll $5,%r8d + movl %r9d,%r12d + pinsrw $6,(%rdi,%rax,4),%xmm0 + + addl %r9d,%r8d + movl (%rdi,%rcx,4),%edx + xorl %r8d,%r12d + movl %ebx,(%rdi,%rcx,4) + andl %r10d,%r12d + addl 8(%r15),%r11d + addb %dl,%bl + movl 120(%rsi),%eax + addl $4243563512,%r11d + xorl %r9d,%r12d + movzbl %bl,%ebx + movl %edx,116(%rsi) + addl %r12d,%r11d + addb %al,%cl + roll $9,%r11d + movl %r8d,%r12d + pinsrw $6,(%rdi,%rbx,4),%xmm1 + + addl %r8d,%r11d + movl (%rdi,%rcx,4),%edx + xorl %r11d,%r12d + movl %eax,(%rdi,%rcx,4) + andl %r9d,%r12d + addl 28(%r15),%r10d + addb %dl,%al + movl 124(%rsi),%ebx + addl $1735328473,%r10d + xorl %r8d,%r12d + movzbl %al,%eax + movl %edx,120(%rsi) + addl %r12d,%r10d + addb %bl,%cl + roll $14,%r10d + movl %r11d,%r12d + pinsrw $7,(%rdi,%rax,4),%xmm0 + + addl %r11d,%r10d + movdqu 16(%r13),%xmm3 + addb $32,%bpl + movl (%rdi,%rcx,4),%edx + xorl %r10d,%r12d + movl %ebx,(%rdi,%rcx,4) + andl %r8d,%r12d + addl 48(%r15),%r9d + addb %dl,%bl + movl 0(%rdi,%rbp,4),%eax + addl $2368359562,%r9d + xorl %r11d,%r12d + movzbl %bl,%ebx + movl %edx,124(%rsi) + addl %r12d,%r9d + addb %al,%cl + roll $20,%r9d + movl %r11d,%r12d + pinsrw $7,(%rdi,%rbx,4),%xmm1 + + addl %r10d,%r9d + movq %rcx,%rsi + xorq %rcx,%rcx + movb %sil,%cl + leaq (%rdi,%rbp,4),%rsi + psllq $8,%xmm1 + pxor %xmm0,%xmm3 + pxor %xmm1,%xmm3 + pxor %xmm0,%xmm0 + movl (%rdi,%rcx,4),%edx + xorl %r10d,%r12d + movl %eax,(%rdi,%rcx,4) + xorl %r9d,%r12d + addl 20(%r15),%r8d + addb %dl,%al + movl 4(%rsi),%ebx + addl $4294588738,%r8d + movzbl %al,%eax + addl %r12d,%r8d + movl %edx,0(%rsi) + addb %bl,%cl + roll $4,%r8d + movl %r10d,%r12d + movd (%rdi,%rax,4),%xmm0 + + addl %r9d,%r8d + pxor %xmm1,%xmm1 + movl (%rdi,%rcx,4),%edx + xorl %r9d,%r12d + movl %ebx,(%rdi,%rcx,4) + xorl %r8d,%r12d + addl 32(%r15),%r11d + addb %dl,%bl + movl 8(%rsi),%eax + addl $2272392833,%r11d + movzbl %bl,%ebx + addl %r12d,%r11d + movl %edx,4(%rsi) + addb %al,%cl + roll $11,%r11d + movl %r9d,%r12d + movd (%rdi,%rbx,4),%xmm1 + + addl %r8d,%r11d + movl (%rdi,%rcx,4),%edx + xorl %r8d,%r12d + movl %eax,(%rdi,%rcx,4) + xorl %r11d,%r12d + addl 44(%r15),%r10d + addb %dl,%al + movl 12(%rsi),%ebx + addl $1839030562,%r10d + movzbl %al,%eax + addl %r12d,%r10d + movl %edx,8(%rsi) + addb %bl,%cl + roll $16,%r10d + movl %r8d,%r12d + pinsrw $1,(%rdi,%rax,4),%xmm0 + + addl %r11d,%r10d + movl (%rdi,%rcx,4),%edx + xorl %r11d,%r12d + movl %ebx,(%rdi,%rcx,4) + xorl %r10d,%r12d + addl 56(%r15),%r9d + addb %dl,%bl + movl 16(%rsi),%eax + addl $4259657740,%r9d + movzbl %bl,%ebx + addl %r12d,%r9d + movl %edx,12(%rsi) + addb %al,%cl + roll $23,%r9d + movl %r11d,%r12d + pinsrw $1,(%rdi,%rbx,4),%xmm1 + + addl %r10d,%r9d + movl (%rdi,%rcx,4),%edx + xorl %r10d,%r12d + movl %eax,(%rdi,%rcx,4) + xorl %r9d,%r12d + addl 4(%r15),%r8d + addb %dl,%al + movl 20(%rsi),%ebx + addl $2763975236,%r8d + movzbl %al,%eax + addl %r12d,%r8d + movl %edx,16(%rsi) + addb %bl,%cl + roll $4,%r8d + movl %r10d,%r12d + pinsrw $2,(%rdi,%rax,4),%xmm0 + + addl %r9d,%r8d + movl (%rdi,%rcx,4),%edx + xorl %r9d,%r12d + movl %ebx,(%rdi,%rcx,4) + xorl %r8d,%r12d + addl 16(%r15),%r11d + addb %dl,%bl + movl 24(%rsi),%eax + addl $1272893353,%r11d + movzbl %bl,%ebx + addl %r12d,%r11d + movl %edx,20(%rsi) + addb %al,%cl + roll $11,%r11d + movl %r9d,%r12d + pinsrw $2,(%rdi,%rbx,4),%xmm1 + + addl %r8d,%r11d + movl (%rdi,%rcx,4),%edx + xorl %r8d,%r12d + movl %eax,(%rdi,%rcx,4) + xorl %r11d,%r12d + addl 28(%r15),%r10d + addb %dl,%al + movl 28(%rsi),%ebx + addl $4139469664,%r10d + movzbl %al,%eax + addl %r12d,%r10d + movl %edx,24(%rsi) + addb %bl,%cl + roll $16,%r10d + movl %r8d,%r12d + pinsrw $3,(%rdi,%rax,4),%xmm0 + + addl %r11d,%r10d + movl (%rdi,%rcx,4),%edx + xorl %r11d,%r12d + movl %ebx,(%rdi,%rcx,4) + xorl %r10d,%r12d + addl 40(%r15),%r9d + addb %dl,%bl + movl 32(%rsi),%eax + addl $3200236656,%r9d + movzbl %bl,%ebx + addl %r12d,%r9d + movl %edx,28(%rsi) + addb %al,%cl + roll $23,%r9d + movl %r11d,%r12d + pinsrw $3,(%rdi,%rbx,4),%xmm1 + + addl %r10d,%r9d + movl (%rdi,%rcx,4),%edx + xorl %r10d,%r12d + movl %eax,(%rdi,%rcx,4) + xorl %r9d,%r12d + addl 52(%r15),%r8d + addb %dl,%al + movl 36(%rsi),%ebx + addl $681279174,%r8d + movzbl %al,%eax + addl %r12d,%r8d + movl %edx,32(%rsi) + addb %bl,%cl + roll $4,%r8d + movl %r10d,%r12d + pinsrw $4,(%rdi,%rax,4),%xmm0 + + addl %r9d,%r8d + movl (%rdi,%rcx,4),%edx + xorl %r9d,%r12d + movl %ebx,(%rdi,%rcx,4) + xorl %r8d,%r12d + addl 0(%r15),%r11d + addb %dl,%bl + movl 40(%rsi),%eax + addl $3936430074,%r11d + movzbl %bl,%ebx + addl %r12d,%r11d + movl %edx,36(%rsi) + addb %al,%cl + roll $11,%r11d + movl %r9d,%r12d + pinsrw $4,(%rdi,%rbx,4),%xmm1 + + addl %r8d,%r11d + movl (%rdi,%rcx,4),%edx + xorl %r8d,%r12d + movl %eax,(%rdi,%rcx,4) + xorl %r11d,%r12d + addl 12(%r15),%r10d + addb %dl,%al + movl 44(%rsi),%ebx + addl $3572445317,%r10d + movzbl %al,%eax + addl %r12d,%r10d + movl %edx,40(%rsi) + addb %bl,%cl + roll $16,%r10d + movl %r8d,%r12d + pinsrw $5,(%rdi,%rax,4),%xmm0 + + addl %r11d,%r10d + movl (%rdi,%rcx,4),%edx + xorl %r11d,%r12d + movl %ebx,(%rdi,%rcx,4) + xorl %r10d,%r12d + addl 24(%r15),%r9d + addb %dl,%bl + movl 48(%rsi),%eax + addl $76029189,%r9d + movzbl %bl,%ebx + addl %r12d,%r9d + movl %edx,44(%rsi) + addb %al,%cl + roll $23,%r9d + movl %r11d,%r12d + pinsrw $5,(%rdi,%rbx,4),%xmm1 + + addl %r10d,%r9d + movl (%rdi,%rcx,4),%edx + xorl %r10d,%r12d + movl %eax,(%rdi,%rcx,4) + xorl %r9d,%r12d + addl 36(%r15),%r8d + addb %dl,%al + movl 52(%rsi),%ebx + addl $3654602809,%r8d + movzbl %al,%eax + addl %r12d,%r8d + movl %edx,48(%rsi) + addb %bl,%cl + roll $4,%r8d + movl %r10d,%r12d + pinsrw $6,(%rdi,%rax,4),%xmm0 + + addl %r9d,%r8d + movl (%rdi,%rcx,4),%edx + xorl %r9d,%r12d + movl %ebx,(%rdi,%rcx,4) + xorl %r8d,%r12d + addl 48(%r15),%r11d + addb %dl,%bl + movl 56(%rsi),%eax + addl $3873151461,%r11d + movzbl %bl,%ebx + addl %r12d,%r11d + movl %edx,52(%rsi) + addb %al,%cl + roll $11,%r11d + movl %r9d,%r12d + pinsrw $6,(%rdi,%rbx,4),%xmm1 + + addl %r8d,%r11d + movl (%rdi,%rcx,4),%edx + xorl %r8d,%r12d + movl %eax,(%rdi,%rcx,4) + xorl %r11d,%r12d + addl 60(%r15),%r10d + addb %dl,%al + movl 60(%rsi),%ebx + addl $530742520,%r10d + movzbl %al,%eax + addl %r12d,%r10d + movl %edx,56(%rsi) + addb %bl,%cl + roll $16,%r10d + movl %r8d,%r12d + pinsrw $7,(%rdi,%rax,4),%xmm0 + + addl %r11d,%r10d + movdqu 32(%r13),%xmm4 + movl (%rdi,%rcx,4),%edx + xorl %r11d,%r12d + movl %ebx,(%rdi,%rcx,4) + xorl %r10d,%r12d + addl 8(%r15),%r9d + addb %dl,%bl + movl 64(%rsi),%eax + addl $3299628645,%r9d + movzbl %bl,%ebx + addl %r12d,%r9d + movl %edx,60(%rsi) + addb %al,%cl + roll $23,%r9d + movl $-1,%r12d + pinsrw $7,(%rdi,%rbx,4),%xmm1 + + addl %r10d,%r9d + psllq $8,%xmm1 + pxor %xmm0,%xmm4 + pxor %xmm1,%xmm4 + pxor %xmm0,%xmm0 + movl (%rdi,%rcx,4),%edx + xorl %r11d,%r12d + movl %eax,(%rdi,%rcx,4) + orl %r9d,%r12d + addl 0(%r15),%r8d + addb %dl,%al + movl 68(%rsi),%ebx + addl $4096336452,%r8d + movzbl %al,%eax + xorl %r10d,%r12d + movl %edx,64(%rsi) + addl %r12d,%r8d + addb %bl,%cl + roll $6,%r8d + movl $-1,%r12d + movd (%rdi,%rax,4),%xmm0 + + addl %r9d,%r8d + pxor %xmm1,%xmm1 + movl (%rdi,%rcx,4),%edx + xorl %r10d,%r12d + movl %ebx,(%rdi,%rcx,4) + orl %r8d,%r12d + addl 28(%r15),%r11d + addb %dl,%bl + movl 72(%rsi),%eax + addl $1126891415,%r11d + movzbl %bl,%ebx + xorl %r9d,%r12d + movl %edx,68(%rsi) + addl %r12d,%r11d + addb %al,%cl + roll $10,%r11d + movl $-1,%r12d + movd (%rdi,%rbx,4),%xmm1 + + addl %r8d,%r11d + movl (%rdi,%rcx,4),%edx + xorl %r9d,%r12d + movl %eax,(%rdi,%rcx,4) + orl %r11d,%r12d + addl 56(%r15),%r10d + addb %dl,%al + movl 76(%rsi),%ebx + addl $2878612391,%r10d + movzbl %al,%eax + xorl %r8d,%r12d + movl %edx,72(%rsi) + addl %r12d,%r10d + addb %bl,%cl + roll $15,%r10d + movl $-1,%r12d + pinsrw $1,(%rdi,%rax,4),%xmm0 + + addl %r11d,%r10d + movl (%rdi,%rcx,4),%edx + xorl %r8d,%r12d + movl %ebx,(%rdi,%rcx,4) + orl %r10d,%r12d + addl 20(%r15),%r9d + addb %dl,%bl + movl 80(%rsi),%eax + addl $4237533241,%r9d + movzbl %bl,%ebx + xorl %r11d,%r12d + movl %edx,76(%rsi) + addl %r12d,%r9d + addb %al,%cl + roll $21,%r9d + movl $-1,%r12d + pinsrw $1,(%rdi,%rbx,4),%xmm1 + + addl %r10d,%r9d + movl (%rdi,%rcx,4),%edx + xorl %r11d,%r12d + movl %eax,(%rdi,%rcx,4) + orl %r9d,%r12d + addl 48(%r15),%r8d + addb %dl,%al + movl 84(%rsi),%ebx + addl $1700485571,%r8d + movzbl %al,%eax + xorl %r10d,%r12d + movl %edx,80(%rsi) + addl %r12d,%r8d + addb %bl,%cl + roll $6,%r8d + movl $-1,%r12d + pinsrw $2,(%rdi,%rax,4),%xmm0 + + addl %r9d,%r8d + movl (%rdi,%rcx,4),%edx + xorl %r10d,%r12d + movl %ebx,(%rdi,%rcx,4) + orl %r8d,%r12d + addl 12(%r15),%r11d + addb %dl,%bl + movl 88(%rsi),%eax + addl $2399980690,%r11d + movzbl %bl,%ebx + xorl %r9d,%r12d + movl %edx,84(%rsi) + addl %r12d,%r11d + addb %al,%cl + roll $10,%r11d + movl $-1,%r12d + pinsrw $2,(%rdi,%rbx,4),%xmm1 + + addl %r8d,%r11d + movl (%rdi,%rcx,4),%edx + xorl %r9d,%r12d + movl %eax,(%rdi,%rcx,4) + orl %r11d,%r12d + addl 40(%r15),%r10d + addb %dl,%al + movl 92(%rsi),%ebx + addl $4293915773,%r10d + movzbl %al,%eax + xorl %r8d,%r12d + movl %edx,88(%rsi) + addl %r12d,%r10d + addb %bl,%cl + roll $15,%r10d + movl $-1,%r12d + pinsrw $3,(%rdi,%rax,4),%xmm0 + + addl %r11d,%r10d + movl (%rdi,%rcx,4),%edx + xorl %r8d,%r12d + movl %ebx,(%rdi,%rcx,4) + orl %r10d,%r12d + addl 4(%r15),%r9d + addb %dl,%bl + movl 96(%rsi),%eax + addl $2240044497,%r9d + movzbl %bl,%ebx + xorl %r11d,%r12d + movl %edx,92(%rsi) + addl %r12d,%r9d + addb %al,%cl + roll $21,%r9d + movl $-1,%r12d + pinsrw $3,(%rdi,%rbx,4),%xmm1 + + addl %r10d,%r9d + movl (%rdi,%rcx,4),%edx + xorl %r11d,%r12d + movl %eax,(%rdi,%rcx,4) + orl %r9d,%r12d + addl 32(%r15),%r8d + addb %dl,%al + movl 100(%rsi),%ebx + addl $1873313359,%r8d + movzbl %al,%eax + xorl %r10d,%r12d + movl %edx,96(%rsi) + addl %r12d,%r8d + addb %bl,%cl + roll $6,%r8d + movl $-1,%r12d + pinsrw $4,(%rdi,%rax,4),%xmm0 + + addl %r9d,%r8d + movl (%rdi,%rcx,4),%edx + xorl %r10d,%r12d + movl %ebx,(%rdi,%rcx,4) + orl %r8d,%r12d + addl 60(%r15),%r11d + addb %dl,%bl + movl 104(%rsi),%eax + addl $4264355552,%r11d + movzbl %bl,%ebx + xorl %r9d,%r12d + movl %edx,100(%rsi) + addl %r12d,%r11d + addb %al,%cl + roll $10,%r11d + movl $-1,%r12d + pinsrw $4,(%rdi,%rbx,4),%xmm1 + + addl %r8d,%r11d + movl (%rdi,%rcx,4),%edx + xorl %r9d,%r12d + movl %eax,(%rdi,%rcx,4) + orl %r11d,%r12d + addl 24(%r15),%r10d + addb %dl,%al + movl 108(%rsi),%ebx + addl $2734768916,%r10d + movzbl %al,%eax + xorl %r8d,%r12d + movl %edx,104(%rsi) + addl %r12d,%r10d + addb %bl,%cl + roll $15,%r10d + movl $-1,%r12d + pinsrw $5,(%rdi,%rax,4),%xmm0 + + addl %r11d,%r10d + movl (%rdi,%rcx,4),%edx + xorl %r8d,%r12d + movl %ebx,(%rdi,%rcx,4) + orl %r10d,%r12d + addl 52(%r15),%r9d + addb %dl,%bl + movl 112(%rsi),%eax + addl $1309151649,%r9d + movzbl %bl,%ebx + xorl %r11d,%r12d + movl %edx,108(%rsi) + addl %r12d,%r9d + addb %al,%cl + roll $21,%r9d + movl $-1,%r12d + pinsrw $5,(%rdi,%rbx,4),%xmm1 + + addl %r10d,%r9d + movl (%rdi,%rcx,4),%edx + xorl %r11d,%r12d + movl %eax,(%rdi,%rcx,4) + orl %r9d,%r12d + addl 16(%r15),%r8d + addb %dl,%al + movl 116(%rsi),%ebx + addl $4149444226,%r8d + movzbl %al,%eax + xorl %r10d,%r12d + movl %edx,112(%rsi) + addl %r12d,%r8d + addb %bl,%cl + roll $6,%r8d + movl $-1,%r12d + pinsrw $6,(%rdi,%rax,4),%xmm0 + + addl %r9d,%r8d + movl (%rdi,%rcx,4),%edx + xorl %r10d,%r12d + movl %ebx,(%rdi,%rcx,4) + orl %r8d,%r12d + addl 44(%r15),%r11d + addb %dl,%bl + movl 120(%rsi),%eax + addl $3174756917,%r11d + movzbl %bl,%ebx + xorl %r9d,%r12d + movl %edx,116(%rsi) + addl %r12d,%r11d + addb %al,%cl + roll $10,%r11d + movl $-1,%r12d + pinsrw $6,(%rdi,%rbx,4),%xmm1 + + addl %r8d,%r11d + movl (%rdi,%rcx,4),%edx + xorl %r9d,%r12d + movl %eax,(%rdi,%rcx,4) + orl %r11d,%r12d + addl 8(%r15),%r10d + addb %dl,%al + movl 124(%rsi),%ebx + addl $718787259,%r10d + movzbl %al,%eax + xorl %r8d,%r12d + movl %edx,120(%rsi) + addl %r12d,%r10d + addb %bl,%cl + roll $15,%r10d + movl $-1,%r12d + pinsrw $7,(%rdi,%rax,4),%xmm0 + + addl %r11d,%r10d + movdqu 48(%r13),%xmm5 + addb $32,%bpl + movl (%rdi,%rcx,4),%edx + xorl %r8d,%r12d + movl %ebx,(%rdi,%rcx,4) + orl %r10d,%r12d + addl 36(%r15),%r9d + addb %dl,%bl + movl 0(%rdi,%rbp,4),%eax + addl $3951481745,%r9d + movzbl %bl,%ebx + xorl %r11d,%r12d + movl %edx,124(%rsi) + addl %r12d,%r9d + addb %al,%cl + roll $21,%r9d + movl $-1,%r12d + pinsrw $7,(%rdi,%rbx,4),%xmm1 + + addl %r10d,%r9d + movq %rbp,%rsi + xorq %rbp,%rbp + movb %sil,%bpl + movq %rcx,%rsi + xorq %rcx,%rcx + movb %sil,%cl + leaq (%rdi,%rbp,4),%rsi + psllq $8,%xmm1 + pxor %xmm0,%xmm5 + pxor %xmm1,%xmm5 + addl 0(%rsp),%r8d + addl 4(%rsp),%r9d + addl 8(%rsp),%r10d + addl 12(%rsp),%r11d + + movdqu %xmm2,(%r14,%r13,1) + movdqu %xmm3,16(%r14,%r13,1) + movdqu %xmm4,32(%r14,%r13,1) + movdqu %xmm5,48(%r14,%r13,1) + leaq 64(%r15),%r15 + leaq 64(%r13),%r13 + cmpq 16(%rsp),%r15 + jb .Loop + + movq 24(%rsp),%r12 + subb %al,%cl + movl %r8d,0(%r12) + movl %r9d,4(%r12) + movl %r10d,8(%r12) + movl %r11d,12(%r12) + subb $1,%bpl + movl %ebp,-8(%rdi) + movl %ecx,-4(%rdi) + + movq 40(%rsp),%r15 +.cfi_restore %r15 + movq 48(%rsp),%r14 +.cfi_restore %r14 + movq 56(%rsp),%r13 +.cfi_restore %r13 + movq 64(%rsp),%r12 +.cfi_restore %r12 + movq 72(%rsp),%rbp +.cfi_restore %rbp + movq 80(%rsp),%rbx +.cfi_restore %rbx + leaq 88(%rsp),%rsp +.cfi_adjust_cfa_offset -88 +.Lepilogue: +.Labort: + .byte 0xf3,0xc3 +.cfi_endproc +.size rc4_md5_enc,.-rc4_md5_enc diff --git a/vere/ext/openssl/gen/linux-x86_64/crypto/rc4/rc4-x86_64.s b/vere/ext/openssl/gen/linux-x86_64/crypto/rc4/rc4-x86_64.s new file mode 100644 index 0000000..d1d1eec --- /dev/null +++ b/vere/ext/openssl/gen/linux-x86_64/crypto/rc4/rc4-x86_64.s @@ -0,0 +1,632 @@ +.text + + +.globl RC4 +.type RC4,@function +.align 16 +RC4: +.cfi_startproc + orq %rsi,%rsi + jne .Lentry + .byte 0xf3,0xc3 +.Lentry: + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-24 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-32 +.Lprologue: + movq %rsi,%r11 + movq %rdx,%r12 + movq %rcx,%r13 + xorq %r10,%r10 + xorq %rcx,%rcx + + leaq 8(%rdi),%rdi + movb -8(%rdi),%r10b + movb -4(%rdi),%cl + cmpl $-1,256(%rdi) + je .LRC4_CHAR + movl OPENSSL_ia32cap_P(%rip),%r8d + xorq %rbx,%rbx + incb %r10b + subq %r10,%rbx + subq %r12,%r13 + movl (%rdi,%r10,4),%eax + testq $-16,%r11 + jz .Lloop1 + btl $30,%r8d + jc .Lintel + andq $7,%rbx + leaq 1(%r10),%rsi + jz .Loop8 + subq %rbx,%r11 +.Loop8_warmup: + addb %al,%cl + movl (%rdi,%rcx,4),%edx + movl %eax,(%rdi,%rcx,4) + movl %edx,(%rdi,%r10,4) + addb %dl,%al + incb %r10b + movl (%rdi,%rax,4),%edx + movl (%rdi,%r10,4),%eax + xorb (%r12),%dl + movb %dl,(%r12,%r13,1) + leaq 1(%r12),%r12 + decq %rbx + jnz .Loop8_warmup + + leaq 1(%r10),%rsi + jmp .Loop8 +.align 16 +.Loop8: + addb %al,%cl + movl (%rdi,%rcx,4),%edx + movl %eax,(%rdi,%rcx,4) + movl 0(%rdi,%rsi,4),%ebx + rorq $8,%r8 + movl %edx,0(%rdi,%r10,4) + addb %al,%dl + movb (%rdi,%rdx,4),%r8b + addb %bl,%cl + movl (%rdi,%rcx,4),%edx + movl %ebx,(%rdi,%rcx,4) + movl 4(%rdi,%rsi,4),%eax + rorq $8,%r8 + movl %edx,4(%rdi,%r10,4) + addb %bl,%dl + movb (%rdi,%rdx,4),%r8b + addb %al,%cl + movl (%rdi,%rcx,4),%edx + movl %eax,(%rdi,%rcx,4) + movl 8(%rdi,%rsi,4),%ebx + rorq $8,%r8 + movl %edx,8(%rdi,%r10,4) + addb %al,%dl + movb (%rdi,%rdx,4),%r8b + addb %bl,%cl + movl (%rdi,%rcx,4),%edx + movl %ebx,(%rdi,%rcx,4) + movl 12(%rdi,%rsi,4),%eax + rorq $8,%r8 + movl %edx,12(%rdi,%r10,4) + addb %bl,%dl + movb (%rdi,%rdx,4),%r8b + addb %al,%cl + movl (%rdi,%rcx,4),%edx + movl %eax,(%rdi,%rcx,4) + movl 16(%rdi,%rsi,4),%ebx + rorq $8,%r8 + movl %edx,16(%rdi,%r10,4) + addb %al,%dl + movb (%rdi,%rdx,4),%r8b + addb %bl,%cl + movl (%rdi,%rcx,4),%edx + movl %ebx,(%rdi,%rcx,4) + movl 20(%rdi,%rsi,4),%eax + rorq $8,%r8 + movl %edx,20(%rdi,%r10,4) + addb %bl,%dl + movb (%rdi,%rdx,4),%r8b + addb %al,%cl + movl (%rdi,%rcx,4),%edx + movl %eax,(%rdi,%rcx,4) + movl 24(%rdi,%rsi,4),%ebx + rorq $8,%r8 + movl %edx,24(%rdi,%r10,4) + addb %al,%dl + movb (%rdi,%rdx,4),%r8b + addb $8,%sil + addb %bl,%cl + movl (%rdi,%rcx,4),%edx + movl %ebx,(%rdi,%rcx,4) + movl -4(%rdi,%rsi,4),%eax + rorq $8,%r8 + movl %edx,28(%rdi,%r10,4) + addb %bl,%dl + movb (%rdi,%rdx,4),%r8b + addb $8,%r10b + rorq $8,%r8 + subq $8,%r11 + + xorq (%r12),%r8 + movq %r8,(%r12,%r13,1) + leaq 8(%r12),%r12 + + testq $-8,%r11 + jnz .Loop8 + cmpq $0,%r11 + jne .Lloop1 + jmp .Lexit + +.align 16 +.Lintel: + testq $-32,%r11 + jz .Lloop1 + andq $15,%rbx + jz .Loop16_is_hot + subq %rbx,%r11 +.Loop16_warmup: + addb %al,%cl + movl (%rdi,%rcx,4),%edx + movl %eax,(%rdi,%rcx,4) + movl %edx,(%rdi,%r10,4) + addb %dl,%al + incb %r10b + movl (%rdi,%rax,4),%edx + movl (%rdi,%r10,4),%eax + xorb (%r12),%dl + movb %dl,(%r12,%r13,1) + leaq 1(%r12),%r12 + decq %rbx + jnz .Loop16_warmup + + movq %rcx,%rbx + xorq %rcx,%rcx + movb %bl,%cl + +.Loop16_is_hot: + leaq (%rdi,%r10,4),%rsi + addb %al,%cl + movl (%rdi,%rcx,4),%edx + pxor %xmm0,%xmm0 + movl %eax,(%rdi,%rcx,4) + addb %dl,%al + movl 4(%rsi),%ebx + movzbl %al,%eax + movl %edx,0(%rsi) + addb %bl,%cl + pinsrw $0,(%rdi,%rax,4),%xmm0 + jmp .Loop16_enter +.align 16 +.Loop16: + addb %al,%cl + movl (%rdi,%rcx,4),%edx + pxor %xmm0,%xmm2 + psllq $8,%xmm1 + pxor %xmm0,%xmm0 + movl %eax,(%rdi,%rcx,4) + addb %dl,%al + movl 4(%rsi),%ebx + movzbl %al,%eax + movl %edx,0(%rsi) + pxor %xmm1,%xmm2 + addb %bl,%cl + pinsrw $0,(%rdi,%rax,4),%xmm0 + movdqu %xmm2,(%r12,%r13,1) + leaq 16(%r12),%r12 +.Loop16_enter: + movl (%rdi,%rcx,4),%edx + pxor %xmm1,%xmm1 + movl %ebx,(%rdi,%rcx,4) + addb %dl,%bl + movl 8(%rsi),%eax + movzbl %bl,%ebx + movl %edx,4(%rsi) + addb %al,%cl + pinsrw $0,(%rdi,%rbx,4),%xmm1 + movl (%rdi,%rcx,4),%edx + movl %eax,(%rdi,%rcx,4) + addb %dl,%al + movl 12(%rsi),%ebx + movzbl %al,%eax + movl %edx,8(%rsi) + addb %bl,%cl + pinsrw $1,(%rdi,%rax,4),%xmm0 + movl (%rdi,%rcx,4),%edx + movl %ebx,(%rdi,%rcx,4) + addb %dl,%bl + movl 16(%rsi),%eax + movzbl %bl,%ebx + movl %edx,12(%rsi) + addb %al,%cl + pinsrw $1,(%rdi,%rbx,4),%xmm1 + movl (%rdi,%rcx,4),%edx + movl %eax,(%rdi,%rcx,4) + addb %dl,%al + movl 20(%rsi),%ebx + movzbl %al,%eax + movl %edx,16(%rsi) + addb %bl,%cl + pinsrw $2,(%rdi,%rax,4),%xmm0 + movl (%rdi,%rcx,4),%edx + movl %ebx,(%rdi,%rcx,4) + addb %dl,%bl + movl 24(%rsi),%eax + movzbl %bl,%ebx + movl %edx,20(%rsi) + addb %al,%cl + pinsrw $2,(%rdi,%rbx,4),%xmm1 + movl (%rdi,%rcx,4),%edx + movl %eax,(%rdi,%rcx,4) + addb %dl,%al + movl 28(%rsi),%ebx + movzbl %al,%eax + movl %edx,24(%rsi) + addb %bl,%cl + pinsrw $3,(%rdi,%rax,4),%xmm0 + movl (%rdi,%rcx,4),%edx + movl %ebx,(%rdi,%rcx,4) + addb %dl,%bl + movl 32(%rsi),%eax + movzbl %bl,%ebx + movl %edx,28(%rsi) + addb %al,%cl + pinsrw $3,(%rdi,%rbx,4),%xmm1 + movl (%rdi,%rcx,4),%edx + movl %eax,(%rdi,%rcx,4) + addb %dl,%al + movl 36(%rsi),%ebx + movzbl %al,%eax + movl %edx,32(%rsi) + addb %bl,%cl + pinsrw $4,(%rdi,%rax,4),%xmm0 + movl (%rdi,%rcx,4),%edx + movl %ebx,(%rdi,%rcx,4) + addb %dl,%bl + movl 40(%rsi),%eax + movzbl %bl,%ebx + movl %edx,36(%rsi) + addb %al,%cl + pinsrw $4,(%rdi,%rbx,4),%xmm1 + movl (%rdi,%rcx,4),%edx + movl %eax,(%rdi,%rcx,4) + addb %dl,%al + movl 44(%rsi),%ebx + movzbl %al,%eax + movl %edx,40(%rsi) + addb %bl,%cl + pinsrw $5,(%rdi,%rax,4),%xmm0 + movl (%rdi,%rcx,4),%edx + movl %ebx,(%rdi,%rcx,4) + addb %dl,%bl + movl 48(%rsi),%eax + movzbl %bl,%ebx + movl %edx,44(%rsi) + addb %al,%cl + pinsrw $5,(%rdi,%rbx,4),%xmm1 + movl (%rdi,%rcx,4),%edx + movl %eax,(%rdi,%rcx,4) + addb %dl,%al + movl 52(%rsi),%ebx + movzbl %al,%eax + movl %edx,48(%rsi) + addb %bl,%cl + pinsrw $6,(%rdi,%rax,4),%xmm0 + movl (%rdi,%rcx,4),%edx + movl %ebx,(%rdi,%rcx,4) + addb %dl,%bl + movl 56(%rsi),%eax + movzbl %bl,%ebx + movl %edx,52(%rsi) + addb %al,%cl + pinsrw $6,(%rdi,%rbx,4),%xmm1 + movl (%rdi,%rcx,4),%edx + movl %eax,(%rdi,%rcx,4) + addb %dl,%al + movl 60(%rsi),%ebx + movzbl %al,%eax + movl %edx,56(%rsi) + addb %bl,%cl + pinsrw $7,(%rdi,%rax,4),%xmm0 + addb $16,%r10b + movdqu (%r12),%xmm2 + movl (%rdi,%rcx,4),%edx + movl %ebx,(%rdi,%rcx,4) + addb %dl,%bl + movzbl %bl,%ebx + movl %edx,60(%rsi) + leaq (%rdi,%r10,4),%rsi + pinsrw $7,(%rdi,%rbx,4),%xmm1 + movl (%rsi),%eax + movq %rcx,%rbx + xorq %rcx,%rcx + subq $16,%r11 + movb %bl,%cl + testq $-16,%r11 + jnz .Loop16 + + psllq $8,%xmm1 + pxor %xmm0,%xmm2 + pxor %xmm1,%xmm2 + movdqu %xmm2,(%r12,%r13,1) + leaq 16(%r12),%r12 + + cmpq $0,%r11 + jne .Lloop1 + jmp .Lexit + +.align 16 +.Lloop1: + addb %al,%cl + movl (%rdi,%rcx,4),%edx + movl %eax,(%rdi,%rcx,4) + movl %edx,(%rdi,%r10,4) + addb %dl,%al + incb %r10b + movl (%rdi,%rax,4),%edx + movl (%rdi,%r10,4),%eax + xorb (%r12),%dl + movb %dl,(%r12,%r13,1) + leaq 1(%r12),%r12 + decq %r11 + jnz .Lloop1 + jmp .Lexit + +.align 16 +.LRC4_CHAR: + addb $1,%r10b + movzbl (%rdi,%r10,1),%eax + testq $-8,%r11 + jz .Lcloop1 + jmp .Lcloop8 +.align 16 +.Lcloop8: + movl (%r12),%r8d + movl 4(%r12),%r9d + addb %al,%cl + leaq 1(%r10),%rsi + movzbl (%rdi,%rcx,1),%edx + movzbl %sil,%esi + movzbl (%rdi,%rsi,1),%ebx + movb %al,(%rdi,%rcx,1) + cmpq %rsi,%rcx + movb %dl,(%rdi,%r10,1) + jne .Lcmov0 + movq %rax,%rbx +.Lcmov0: + addb %al,%dl + xorb (%rdi,%rdx,1),%r8b + rorl $8,%r8d + addb %bl,%cl + leaq 1(%rsi),%r10 + movzbl (%rdi,%rcx,1),%edx + movzbl %r10b,%r10d + movzbl (%rdi,%r10,1),%eax + movb %bl,(%rdi,%rcx,1) + cmpq %r10,%rcx + movb %dl,(%rdi,%rsi,1) + jne .Lcmov1 + movq %rbx,%rax +.Lcmov1: + addb %bl,%dl + xorb (%rdi,%rdx,1),%r8b + rorl $8,%r8d + addb %al,%cl + leaq 1(%r10),%rsi + movzbl (%rdi,%rcx,1),%edx + movzbl %sil,%esi + movzbl (%rdi,%rsi,1),%ebx + movb %al,(%rdi,%rcx,1) + cmpq %rsi,%rcx + movb %dl,(%rdi,%r10,1) + jne .Lcmov2 + movq %rax,%rbx +.Lcmov2: + addb %al,%dl + xorb (%rdi,%rdx,1),%r8b + rorl $8,%r8d + addb %bl,%cl + leaq 1(%rsi),%r10 + movzbl (%rdi,%rcx,1),%edx + movzbl %r10b,%r10d + movzbl (%rdi,%r10,1),%eax + movb %bl,(%rdi,%rcx,1) + cmpq %r10,%rcx + movb %dl,(%rdi,%rsi,1) + jne .Lcmov3 + movq %rbx,%rax +.Lcmov3: + addb %bl,%dl + xorb (%rdi,%rdx,1),%r8b + rorl $8,%r8d + addb %al,%cl + leaq 1(%r10),%rsi + movzbl (%rdi,%rcx,1),%edx + movzbl %sil,%esi + movzbl (%rdi,%rsi,1),%ebx + movb %al,(%rdi,%rcx,1) + cmpq %rsi,%rcx + movb %dl,(%rdi,%r10,1) + jne .Lcmov4 + movq %rax,%rbx +.Lcmov4: + addb %al,%dl + xorb (%rdi,%rdx,1),%r9b + rorl $8,%r9d + addb %bl,%cl + leaq 1(%rsi),%r10 + movzbl (%rdi,%rcx,1),%edx + movzbl %r10b,%r10d + movzbl (%rdi,%r10,1),%eax + movb %bl,(%rdi,%rcx,1) + cmpq %r10,%rcx + movb %dl,(%rdi,%rsi,1) + jne .Lcmov5 + movq %rbx,%rax +.Lcmov5: + addb %bl,%dl + xorb (%rdi,%rdx,1),%r9b + rorl $8,%r9d + addb %al,%cl + leaq 1(%r10),%rsi + movzbl (%rdi,%rcx,1),%edx + movzbl %sil,%esi + movzbl (%rdi,%rsi,1),%ebx + movb %al,(%rdi,%rcx,1) + cmpq %rsi,%rcx + movb %dl,(%rdi,%r10,1) + jne .Lcmov6 + movq %rax,%rbx +.Lcmov6: + addb %al,%dl + xorb (%rdi,%rdx,1),%r9b + rorl $8,%r9d + addb %bl,%cl + leaq 1(%rsi),%r10 + movzbl (%rdi,%rcx,1),%edx + movzbl %r10b,%r10d + movzbl (%rdi,%r10,1),%eax + movb %bl,(%rdi,%rcx,1) + cmpq %r10,%rcx + movb %dl,(%rdi,%rsi,1) + jne .Lcmov7 + movq %rbx,%rax +.Lcmov7: + addb %bl,%dl + xorb (%rdi,%rdx,1),%r9b + rorl $8,%r9d + leaq -8(%r11),%r11 + movl %r8d,(%r13) + leaq 8(%r12),%r12 + movl %r9d,4(%r13) + leaq 8(%r13),%r13 + + testq $-8,%r11 + jnz .Lcloop8 + cmpq $0,%r11 + jne .Lcloop1 + jmp .Lexit +.align 16 +.Lcloop1: + addb %al,%cl + movzbl %cl,%ecx + movzbl (%rdi,%rcx,1),%edx + movb %al,(%rdi,%rcx,1) + movb %dl,(%rdi,%r10,1) + addb %al,%dl + addb $1,%r10b + movzbl %dl,%edx + movzbl %r10b,%r10d + movzbl (%rdi,%rdx,1),%edx + movzbl (%rdi,%r10,1),%eax + xorb (%r12),%dl + leaq 1(%r12),%r12 + movb %dl,(%r13) + leaq 1(%r13),%r13 + subq $1,%r11 + jnz .Lcloop1 + jmp .Lexit + +.align 16 +.Lexit: + subb $1,%r10b + movl %r10d,-8(%rdi) + movl %ecx,-4(%rdi) + + movq (%rsp),%r13 +.cfi_restore %r13 + movq 8(%rsp),%r12 +.cfi_restore %r12 + movq 16(%rsp),%rbx +.cfi_restore %rbx + addq $24,%rsp +.cfi_adjust_cfa_offset -24 +.Lepilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size RC4,.-RC4 +.globl RC4_set_key +.type RC4_set_key,@function +.align 16 +RC4_set_key: +.cfi_startproc + leaq 8(%rdi),%rdi + leaq (%rdx,%rsi,1),%rdx + negq %rsi + movq %rsi,%rcx + xorl %eax,%eax + xorq %r9,%r9 + xorq %r10,%r10 + xorq %r11,%r11 + + movl OPENSSL_ia32cap_P(%rip),%r8d + btl $20,%r8d + jc .Lc1stloop + jmp .Lw1stloop + +.align 16 +.Lw1stloop: + movl %eax,(%rdi,%rax,4) + addb $1,%al + jnc .Lw1stloop + + xorq %r9,%r9 + xorq %r8,%r8 +.align 16 +.Lw2ndloop: + movl (%rdi,%r9,4),%r10d + addb (%rdx,%rsi,1),%r8b + addb %r10b,%r8b + addq $1,%rsi + movl (%rdi,%r8,4),%r11d + cmovzq %rcx,%rsi + movl %r10d,(%rdi,%r8,4) + movl %r11d,(%rdi,%r9,4) + addb $1,%r9b + jnc .Lw2ndloop + jmp .Lexit_key + +.align 16 +.Lc1stloop: + movb %al,(%rdi,%rax,1) + addb $1,%al + jnc .Lc1stloop + + xorq %r9,%r9 + xorq %r8,%r8 +.align 16 +.Lc2ndloop: + movb (%rdi,%r9,1),%r10b + addb (%rdx,%rsi,1),%r8b + addb %r10b,%r8b + addq $1,%rsi + movb (%rdi,%r8,1),%r11b + jnz .Lcnowrap + movq %rcx,%rsi +.Lcnowrap: + movb %r10b,(%rdi,%r8,1) + movb %r11b,(%rdi,%r9,1) + addb $1,%r9b + jnc .Lc2ndloop + movl $-1,256(%rdi) + +.align 16 +.Lexit_key: + xorl %eax,%eax + movl %eax,-8(%rdi) + movl %eax,-4(%rdi) + .byte 0xf3,0xc3 +.cfi_endproc +.size RC4_set_key,.-RC4_set_key + +.globl RC4_options +.type RC4_options,@function +.align 16 +RC4_options: +.cfi_startproc + leaq .Lopts(%rip),%rax + movl OPENSSL_ia32cap_P(%rip),%edx + btl $20,%edx + jc .L8xchar + btl $30,%edx + jnc .Ldone + addq $25,%rax + .byte 0xf3,0xc3 +.L8xchar: + addq $12,%rax +.Ldone: + .byte 0xf3,0xc3 +.cfi_endproc +.align 64 +.Lopts: +.byte 114,99,52,40,56,120,44,105,110,116,41,0 +.byte 114,99,52,40,56,120,44,99,104,97,114,41,0 +.byte 114,99,52,40,49,54,120,44,105,110,116,41,0 +.byte 82,67,52,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 64 +.size RC4_options,.-RC4_options diff --git a/vere/ext/openssl/gen/linux-x86_64/crypto/sha/keccak1600-x86_64.s b/vere/ext/openssl/gen/linux-x86_64/crypto/sha/keccak1600-x86_64.s new file mode 100644 index 0000000..11f26e9 --- /dev/null +++ b/vere/ext/openssl/gen/linux-x86_64/crypto/sha/keccak1600-x86_64.s @@ -0,0 +1,524 @@ +.text + +.type __KeccakF1600,@function +.align 32 +__KeccakF1600: +.cfi_startproc + movq 60(%rdi),%rax + movq 68(%rdi),%rbx + movq 76(%rdi),%rcx + movq 84(%rdi),%rdx + movq 92(%rdi),%rbp + jmp .Loop + +.align 32 +.Loop: + movq -100(%rdi),%r8 + movq -52(%rdi),%r9 + movq -4(%rdi),%r10 + movq 44(%rdi),%r11 + + xorq -84(%rdi),%rcx + xorq -76(%rdi),%rdx + xorq %r8,%rax + xorq -92(%rdi),%rbx + xorq -44(%rdi),%rcx + xorq -60(%rdi),%rax + movq %rbp,%r12 + xorq -68(%rdi),%rbp + + xorq %r10,%rcx + xorq -20(%rdi),%rax + xorq -36(%rdi),%rdx + xorq %r9,%rbx + xorq -28(%rdi),%rbp + + xorq 36(%rdi),%rcx + xorq 20(%rdi),%rax + xorq 4(%rdi),%rdx + xorq -12(%rdi),%rbx + xorq 12(%rdi),%rbp + + movq %rcx,%r13 + rolq $1,%rcx + xorq %rax,%rcx + xorq %r11,%rdx + + rolq $1,%rax + xorq %rdx,%rax + xorq 28(%rdi),%rbx + + rolq $1,%rdx + xorq %rbx,%rdx + xorq 52(%rdi),%rbp + + rolq $1,%rbx + xorq %rbp,%rbx + + rolq $1,%rbp + xorq %r13,%rbp + xorq %rcx,%r9 + xorq %rdx,%r10 + rolq $44,%r9 + xorq %rbp,%r11 + xorq %rax,%r12 + rolq $43,%r10 + xorq %rbx,%r8 + movq %r9,%r13 + rolq $21,%r11 + orq %r10,%r9 + xorq %r8,%r9 + rolq $14,%r12 + + xorq (%r15),%r9 + leaq 8(%r15),%r15 + + movq %r12,%r14 + andq %r11,%r12 + movq %r9,-100(%rsi) + xorq %r10,%r12 + notq %r10 + movq %r12,-84(%rsi) + + orq %r11,%r10 + movq 76(%rdi),%r12 + xorq %r13,%r10 + movq %r10,-92(%rsi) + + andq %r8,%r13 + movq -28(%rdi),%r9 + xorq %r14,%r13 + movq -20(%rdi),%r10 + movq %r13,-68(%rsi) + + orq %r8,%r14 + movq -76(%rdi),%r8 + xorq %r11,%r14 + movq 28(%rdi),%r11 + movq %r14,-76(%rsi) + + + xorq %rbp,%r8 + xorq %rdx,%r12 + rolq $28,%r8 + xorq %rcx,%r11 + xorq %rax,%r9 + rolq $61,%r12 + rolq $45,%r11 + xorq %rbx,%r10 + rolq $20,%r9 + movq %r8,%r13 + orq %r12,%r8 + rolq $3,%r10 + + xorq %r11,%r8 + movq %r8,-36(%rsi) + + movq %r9,%r14 + andq %r13,%r9 + movq -92(%rdi),%r8 + xorq %r12,%r9 + notq %r12 + movq %r9,-28(%rsi) + + orq %r11,%r12 + movq -44(%rdi),%r9 + xorq %r10,%r12 + movq %r12,-44(%rsi) + + andq %r10,%r11 + movq 60(%rdi),%r12 + xorq %r14,%r11 + movq %r11,-52(%rsi) + + orq %r10,%r14 + movq 4(%rdi),%r10 + xorq %r13,%r14 + movq 52(%rdi),%r11 + movq %r14,-60(%rsi) + + + xorq %rbp,%r10 + xorq %rax,%r11 + rolq $25,%r10 + xorq %rdx,%r9 + rolq $8,%r11 + xorq %rbx,%r12 + rolq $6,%r9 + xorq %rcx,%r8 + rolq $18,%r12 + movq %r10,%r13 + andq %r11,%r10 + rolq $1,%r8 + + notq %r11 + xorq %r9,%r10 + movq %r10,-12(%rsi) + + movq %r12,%r14 + andq %r11,%r12 + movq -12(%rdi),%r10 + xorq %r13,%r12 + movq %r12,-4(%rsi) + + orq %r9,%r13 + movq 84(%rdi),%r12 + xorq %r8,%r13 + movq %r13,-20(%rsi) + + andq %r8,%r9 + xorq %r14,%r9 + movq %r9,12(%rsi) + + orq %r8,%r14 + movq -60(%rdi),%r9 + xorq %r11,%r14 + movq 36(%rdi),%r11 + movq %r14,4(%rsi) + + + movq -68(%rdi),%r8 + + xorq %rcx,%r10 + xorq %rdx,%r11 + rolq $10,%r10 + xorq %rbx,%r9 + rolq $15,%r11 + xorq %rbp,%r12 + rolq $36,%r9 + xorq %rax,%r8 + rolq $56,%r12 + movq %r10,%r13 + orq %r11,%r10 + rolq $27,%r8 + + notq %r11 + xorq %r9,%r10 + movq %r10,28(%rsi) + + movq %r12,%r14 + orq %r11,%r12 + xorq %r13,%r12 + movq %r12,36(%rsi) + + andq %r9,%r13 + xorq %r8,%r13 + movq %r13,20(%rsi) + + orq %r8,%r9 + xorq %r14,%r9 + movq %r9,52(%rsi) + + andq %r14,%r8 + xorq %r11,%r8 + movq %r8,44(%rsi) + + + xorq -84(%rdi),%rdx + xorq -36(%rdi),%rbp + rolq $62,%rdx + xorq 68(%rdi),%rcx + rolq $55,%rbp + xorq 12(%rdi),%rax + rolq $2,%rcx + xorq 20(%rdi),%rbx + xchgq %rsi,%rdi + rolq $39,%rax + rolq $41,%rbx + movq %rdx,%r13 + andq %rbp,%rdx + notq %rbp + xorq %rcx,%rdx + movq %rdx,92(%rdi) + + movq %rax,%r14 + andq %rbp,%rax + xorq %r13,%rax + movq %rax,60(%rdi) + + orq %rcx,%r13 + xorq %rbx,%r13 + movq %r13,84(%rdi) + + andq %rbx,%rcx + xorq %r14,%rcx + movq %rcx,76(%rdi) + + orq %r14,%rbx + xorq %rbp,%rbx + movq %rbx,68(%rdi) + + movq %rdx,%rbp + movq %r13,%rdx + + testq $255,%r15 + jnz .Loop + + leaq -192(%r15),%r15 + .byte 0xf3,0xc3 +.cfi_endproc +.size __KeccakF1600,.-__KeccakF1600 + +.type KeccakF1600,@function +.align 32 +KeccakF1600: +.cfi_startproc + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 + + leaq 100(%rdi),%rdi + subq $200,%rsp +.cfi_adjust_cfa_offset 200 + + notq -92(%rdi) + notq -84(%rdi) + notq -36(%rdi) + notq -4(%rdi) + notq 36(%rdi) + notq 60(%rdi) + + leaq iotas(%rip),%r15 + leaq 100(%rsp),%rsi + + call __KeccakF1600 + + notq -92(%rdi) + notq -84(%rdi) + notq -36(%rdi) + notq -4(%rdi) + notq 36(%rdi) + notq 60(%rdi) + leaq -100(%rdi),%rdi + + addq $200,%rsp +.cfi_adjust_cfa_offset -200 + + popq %r15 +.cfi_adjust_cfa_offset -8 +.cfi_restore %r15 + popq %r14 +.cfi_adjust_cfa_offset -8 +.cfi_restore %r14 + popq %r13 +.cfi_adjust_cfa_offset -8 +.cfi_restore %r13 + popq %r12 +.cfi_adjust_cfa_offset -8 +.cfi_restore %r12 + popq %rbp +.cfi_adjust_cfa_offset -8 +.cfi_restore %rbp + popq %rbx +.cfi_adjust_cfa_offset -8 +.cfi_restore %rbx + .byte 0xf3,0xc3 +.cfi_endproc +.size KeccakF1600,.-KeccakF1600 +.globl SHA3_absorb +.type SHA3_absorb,@function +.align 32 +SHA3_absorb: +.cfi_startproc + pushq %rbx +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_adjust_cfa_offset 8 +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r15,-56 + + leaq 100(%rdi),%rdi + subq $232,%rsp +.cfi_adjust_cfa_offset 232 + + movq %rsi,%r9 + leaq 100(%rsp),%rsi + + notq -92(%rdi) + notq -84(%rdi) + notq -36(%rdi) + notq -4(%rdi) + notq 36(%rdi) + notq 60(%rdi) + leaq iotas(%rip),%r15 + + movq %rcx,216-100(%rsi) + +.Loop_absorb: + cmpq %rcx,%rdx + jc .Ldone_absorb + + shrq $3,%rcx + leaq -100(%rdi),%r8 + +.Lblock_absorb: + movq (%r9),%rax + leaq 8(%r9),%r9 + xorq (%r8),%rax + leaq 8(%r8),%r8 + subq $8,%rdx + movq %rax,-8(%r8) + subq $1,%rcx + jnz .Lblock_absorb + + movq %r9,200-100(%rsi) + movq %rdx,208-100(%rsi) + call __KeccakF1600 + movq 200-100(%rsi),%r9 + movq 208-100(%rsi),%rdx + movq 216-100(%rsi),%rcx + jmp .Loop_absorb + +.align 32 +.Ldone_absorb: + movq %rdx,%rax + + notq -92(%rdi) + notq -84(%rdi) + notq -36(%rdi) + notq -4(%rdi) + notq 36(%rdi) + notq 60(%rdi) + + addq $232,%rsp +.cfi_adjust_cfa_offset -232 + + popq %r15 +.cfi_adjust_cfa_offset -8 +.cfi_restore %r15 + popq %r14 +.cfi_adjust_cfa_offset -8 +.cfi_restore %r14 + popq %r13 +.cfi_adjust_cfa_offset -8 +.cfi_restore %r13 + popq %r12 +.cfi_adjust_cfa_offset -8 +.cfi_restore %r12 + popq %rbp +.cfi_adjust_cfa_offset -8 +.cfi_restore %rbp + popq %rbx +.cfi_adjust_cfa_offset -8 +.cfi_restore %rbx + .byte 0xf3,0xc3 +.cfi_endproc +.size SHA3_absorb,.-SHA3_absorb +.globl SHA3_squeeze +.type SHA3_squeeze,@function +.align 32 +SHA3_squeeze: +.cfi_startproc + pushq %r12 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r12,-16 + pushq %r13 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r13,-24 + pushq %r14 +.cfi_adjust_cfa_offset 8 +.cfi_offset %r14,-32 + + shrq $3,%rcx + movq %rdi,%r8 + movq %rsi,%r12 + movq %rdx,%r13 + movq %rcx,%r14 + jmp .Loop_squeeze + +.align 32 +.Loop_squeeze: + cmpq $8,%r13 + jb .Ltail_squeeze + + movq (%r8),%rax + leaq 8(%r8),%r8 + movq %rax,(%r12) + leaq 8(%r12),%r12 + subq $8,%r13 + jz .Ldone_squeeze + + subq $1,%rcx + jnz .Loop_squeeze + + call KeccakF1600 + movq %rdi,%r8 + movq %r14,%rcx + jmp .Loop_squeeze + +.Ltail_squeeze: + movq %r8,%rsi + movq %r12,%rdi + movq %r13,%rcx +.byte 0xf3,0xa4 + +.Ldone_squeeze: + popq %r14 +.cfi_adjust_cfa_offset -8 +.cfi_restore %r14 + popq %r13 +.cfi_adjust_cfa_offset -8 +.cfi_restore %r13 + popq %r12 +.cfi_adjust_cfa_offset -8 +.cfi_restore %r13 + .byte 0xf3,0xc3 +.cfi_endproc +.size SHA3_squeeze,.-SHA3_squeeze +.align 256 +.quad 0,0,0,0,0,0,0,0 +.type iotas,@object +iotas: +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x8000000080008008 +.size iotas,.-iotas +.byte 75,101,99,99,97,107,45,49,54,48,48,32,97,98,115,111,114,98,32,97,110,100,32,115,113,117,101,101,122,101,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 diff --git a/vere/ext/openssl/gen/linux-x86_64/crypto/sha/sha1-mb-x86_64.s b/vere/ext/openssl/gen/linux-x86_64/crypto/sha/sha1-mb-x86_64.s new file mode 100644 index 0000000..1a0de0f --- /dev/null +++ b/vere/ext/openssl/gen/linux-x86_64/crypto/sha/sha1-mb-x86_64.s @@ -0,0 +1,7267 @@ +.text + + + +.globl sha1_multi_block +.type sha1_multi_block,@function +.align 32 +sha1_multi_block: +.cfi_startproc + movq OPENSSL_ia32cap_P+4(%rip),%rcx + btq $61,%rcx + jc _shaext_shortcut + testl $268435456,%ecx + jnz _avx_shortcut + movq %rsp,%rax +.cfi_def_cfa_register %rax + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbx,-24 + subq $288,%rsp + andq $-256,%rsp + movq %rax,272(%rsp) +.cfi_escape 0x0f,0x06,0x77,0x90,0x02,0x06,0x23,0x08 +.Lbody: + leaq K_XX_XX(%rip),%rbp + leaq 256(%rsp),%rbx + +.Loop_grande: + movl %edx,280(%rsp) + xorl %edx,%edx + movq 0(%rsi),%r8 + movl 8(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,0(%rbx) + cmovleq %rbp,%r8 + movq 16(%rsi),%r9 + movl 24(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,4(%rbx) + cmovleq %rbp,%r9 + movq 32(%rsi),%r10 + movl 40(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,8(%rbx) + cmovleq %rbp,%r10 + movq 48(%rsi),%r11 + movl 56(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,12(%rbx) + cmovleq %rbp,%r11 + testl %edx,%edx + jz .Ldone + + movdqu 0(%rdi),%xmm10 + leaq 128(%rsp),%rax + movdqu 32(%rdi),%xmm11 + movdqu 64(%rdi),%xmm12 + movdqu 96(%rdi),%xmm13 + movdqu 128(%rdi),%xmm14 + movdqa 96(%rbp),%xmm5 + movdqa -32(%rbp),%xmm15 + jmp .Loop + +.align 32 +.Loop: + movd (%r8),%xmm0 + leaq 64(%r8),%r8 + movd (%r9),%xmm2 + leaq 64(%r9),%r9 + movd (%r10),%xmm3 + leaq 64(%r10),%r10 + movd (%r11),%xmm4 + leaq 64(%r11),%r11 + punpckldq %xmm3,%xmm0 + movd -60(%r8),%xmm1 + punpckldq %xmm4,%xmm2 + movd -60(%r9),%xmm9 + punpckldq %xmm2,%xmm0 + movd -60(%r10),%xmm8 +.byte 102,15,56,0,197 + movd -60(%r11),%xmm7 + punpckldq %xmm8,%xmm1 + movdqa %xmm10,%xmm8 + paddd %xmm15,%xmm14 + punpckldq %xmm7,%xmm9 + movdqa %xmm11,%xmm7 + movdqa %xmm11,%xmm6 + pslld $5,%xmm8 + pandn %xmm13,%xmm7 + pand %xmm12,%xmm6 + punpckldq %xmm9,%xmm1 + movdqa %xmm10,%xmm9 + + movdqa %xmm0,0-128(%rax) + paddd %xmm0,%xmm14 + movd -56(%r8),%xmm2 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + movdqa %xmm11,%xmm7 + + por %xmm9,%xmm8 + movd -56(%r9),%xmm9 + pslld $30,%xmm7 + paddd %xmm6,%xmm14 + + psrld $2,%xmm11 + paddd %xmm8,%xmm14 +.byte 102,15,56,0,205 + movd -56(%r10),%xmm8 + por %xmm7,%xmm11 + movd -56(%r11),%xmm7 + punpckldq %xmm8,%xmm2 + movdqa %xmm14,%xmm8 + paddd %xmm15,%xmm13 + punpckldq %xmm7,%xmm9 + movdqa %xmm10,%xmm7 + movdqa %xmm10,%xmm6 + pslld $5,%xmm8 + pandn %xmm12,%xmm7 + pand %xmm11,%xmm6 + punpckldq %xmm9,%xmm2 + movdqa %xmm14,%xmm9 + + movdqa %xmm1,16-128(%rax) + paddd %xmm1,%xmm13 + movd -52(%r8),%xmm3 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + movdqa %xmm10,%xmm7 + + por %xmm9,%xmm8 + movd -52(%r9),%xmm9 + pslld $30,%xmm7 + paddd %xmm6,%xmm13 + + psrld $2,%xmm10 + paddd %xmm8,%xmm13 +.byte 102,15,56,0,213 + movd -52(%r10),%xmm8 + por %xmm7,%xmm10 + movd -52(%r11),%xmm7 + punpckldq %xmm8,%xmm3 + movdqa %xmm13,%xmm8 + paddd %xmm15,%xmm12 + punpckldq %xmm7,%xmm9 + movdqa %xmm14,%xmm7 + movdqa %xmm14,%xmm6 + pslld $5,%xmm8 + pandn %xmm11,%xmm7 + pand %xmm10,%xmm6 + punpckldq %xmm9,%xmm3 + movdqa %xmm13,%xmm9 + + movdqa %xmm2,32-128(%rax) + paddd %xmm2,%xmm12 + movd -48(%r8),%xmm4 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + movdqa %xmm14,%xmm7 + + por %xmm9,%xmm8 + movd -48(%r9),%xmm9 + pslld $30,%xmm7 + paddd %xmm6,%xmm12 + + psrld $2,%xmm14 + paddd %xmm8,%xmm12 +.byte 102,15,56,0,221 + movd -48(%r10),%xmm8 + por %xmm7,%xmm14 + movd -48(%r11),%xmm7 + punpckldq %xmm8,%xmm4 + movdqa %xmm12,%xmm8 + paddd %xmm15,%xmm11 + punpckldq %xmm7,%xmm9 + movdqa %xmm13,%xmm7 + movdqa %xmm13,%xmm6 + pslld $5,%xmm8 + pandn %xmm10,%xmm7 + pand %xmm14,%xmm6 + punpckldq %xmm9,%xmm4 + movdqa %xmm12,%xmm9 + + movdqa %xmm3,48-128(%rax) + paddd %xmm3,%xmm11 + movd -44(%r8),%xmm0 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + movdqa %xmm13,%xmm7 + + por %xmm9,%xmm8 + movd -44(%r9),%xmm9 + pslld $30,%xmm7 + paddd %xmm6,%xmm11 + + psrld $2,%xmm13 + paddd %xmm8,%xmm11 +.byte 102,15,56,0,229 + movd -44(%r10),%xmm8 + por %xmm7,%xmm13 + movd -44(%r11),%xmm7 + punpckldq %xmm8,%xmm0 + movdqa %xmm11,%xmm8 + paddd %xmm15,%xmm10 + punpckldq %xmm7,%xmm9 + movdqa %xmm12,%xmm7 + movdqa %xmm12,%xmm6 + pslld $5,%xmm8 + pandn %xmm14,%xmm7 + pand %xmm13,%xmm6 + punpckldq %xmm9,%xmm0 + movdqa %xmm11,%xmm9 + + movdqa %xmm4,64-128(%rax) + paddd %xmm4,%xmm10 + movd -40(%r8),%xmm1 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + movdqa %xmm12,%xmm7 + + por %xmm9,%xmm8 + movd -40(%r9),%xmm9 + pslld $30,%xmm7 + paddd %xmm6,%xmm10 + + psrld $2,%xmm12 + paddd %xmm8,%xmm10 +.byte 102,15,56,0,197 + movd -40(%r10),%xmm8 + por %xmm7,%xmm12 + movd -40(%r11),%xmm7 + punpckldq %xmm8,%xmm1 + movdqa %xmm10,%xmm8 + paddd %xmm15,%xmm14 + punpckldq %xmm7,%xmm9 + movdqa %xmm11,%xmm7 + movdqa %xmm11,%xmm6 + pslld $5,%xmm8 + pandn %xmm13,%xmm7 + pand %xmm12,%xmm6 + punpckldq %xmm9,%xmm1 + movdqa %xmm10,%xmm9 + + movdqa %xmm0,80-128(%rax) + paddd %xmm0,%xmm14 + movd -36(%r8),%xmm2 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + movdqa %xmm11,%xmm7 + + por %xmm9,%xmm8 + movd -36(%r9),%xmm9 + pslld $30,%xmm7 + paddd %xmm6,%xmm14 + + psrld $2,%xmm11 + paddd %xmm8,%xmm14 +.byte 102,15,56,0,205 + movd -36(%r10),%xmm8 + por %xmm7,%xmm11 + movd -36(%r11),%xmm7 + punpckldq %xmm8,%xmm2 + movdqa %xmm14,%xmm8 + paddd %xmm15,%xmm13 + punpckldq %xmm7,%xmm9 + movdqa %xmm10,%xmm7 + movdqa %xmm10,%xmm6 + pslld $5,%xmm8 + pandn %xmm12,%xmm7 + pand %xmm11,%xmm6 + punpckldq %xmm9,%xmm2 + movdqa %xmm14,%xmm9 + + movdqa %xmm1,96-128(%rax) + paddd %xmm1,%xmm13 + movd -32(%r8),%xmm3 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + movdqa %xmm10,%xmm7 + + por %xmm9,%xmm8 + movd -32(%r9),%xmm9 + pslld $30,%xmm7 + paddd %xmm6,%xmm13 + + psrld $2,%xmm10 + paddd %xmm8,%xmm13 +.byte 102,15,56,0,213 + movd -32(%r10),%xmm8 + por %xmm7,%xmm10 + movd -32(%r11),%xmm7 + punpckldq %xmm8,%xmm3 + movdqa %xmm13,%xmm8 + paddd %xmm15,%xmm12 + punpckldq %xmm7,%xmm9 + movdqa %xmm14,%xmm7 + movdqa %xmm14,%xmm6 + pslld $5,%xmm8 + pandn %xmm11,%xmm7 + pand %xmm10,%xmm6 + punpckldq %xmm9,%xmm3 + movdqa %xmm13,%xmm9 + + movdqa %xmm2,112-128(%rax) + paddd %xmm2,%xmm12 + movd -28(%r8),%xmm4 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + movdqa %xmm14,%xmm7 + + por %xmm9,%xmm8 + movd -28(%r9),%xmm9 + pslld $30,%xmm7 + paddd %xmm6,%xmm12 + + psrld $2,%xmm14 + paddd %xmm8,%xmm12 +.byte 102,15,56,0,221 + movd -28(%r10),%xmm8 + por %xmm7,%xmm14 + movd -28(%r11),%xmm7 + punpckldq %xmm8,%xmm4 + movdqa %xmm12,%xmm8 + paddd %xmm15,%xmm11 + punpckldq %xmm7,%xmm9 + movdqa %xmm13,%xmm7 + movdqa %xmm13,%xmm6 + pslld $5,%xmm8 + pandn %xmm10,%xmm7 + pand %xmm14,%xmm6 + punpckldq %xmm9,%xmm4 + movdqa %xmm12,%xmm9 + + movdqa %xmm3,128-128(%rax) + paddd %xmm3,%xmm11 + movd -24(%r8),%xmm0 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + movdqa %xmm13,%xmm7 + + por %xmm9,%xmm8 + movd -24(%r9),%xmm9 + pslld $30,%xmm7 + paddd %xmm6,%xmm11 + + psrld $2,%xmm13 + paddd %xmm8,%xmm11 +.byte 102,15,56,0,229 + movd -24(%r10),%xmm8 + por %xmm7,%xmm13 + movd -24(%r11),%xmm7 + punpckldq %xmm8,%xmm0 + movdqa %xmm11,%xmm8 + paddd %xmm15,%xmm10 + punpckldq %xmm7,%xmm9 + movdqa %xmm12,%xmm7 + movdqa %xmm12,%xmm6 + pslld $5,%xmm8 + pandn %xmm14,%xmm7 + pand %xmm13,%xmm6 + punpckldq %xmm9,%xmm0 + movdqa %xmm11,%xmm9 + + movdqa %xmm4,144-128(%rax) + paddd %xmm4,%xmm10 + movd -20(%r8),%xmm1 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + movdqa %xmm12,%xmm7 + + por %xmm9,%xmm8 + movd -20(%r9),%xmm9 + pslld $30,%xmm7 + paddd %xmm6,%xmm10 + + psrld $2,%xmm12 + paddd %xmm8,%xmm10 +.byte 102,15,56,0,197 + movd -20(%r10),%xmm8 + por %xmm7,%xmm12 + movd -20(%r11),%xmm7 + punpckldq %xmm8,%xmm1 + movdqa %xmm10,%xmm8 + paddd %xmm15,%xmm14 + punpckldq %xmm7,%xmm9 + movdqa %xmm11,%xmm7 + movdqa %xmm11,%xmm6 + pslld $5,%xmm8 + pandn %xmm13,%xmm7 + pand %xmm12,%xmm6 + punpckldq %xmm9,%xmm1 + movdqa %xmm10,%xmm9 + + movdqa %xmm0,160-128(%rax) + paddd %xmm0,%xmm14 + movd -16(%r8),%xmm2 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + movdqa %xmm11,%xmm7 + + por %xmm9,%xmm8 + movd -16(%r9),%xmm9 + pslld $30,%xmm7 + paddd %xmm6,%xmm14 + + psrld $2,%xmm11 + paddd %xmm8,%xmm14 +.byte 102,15,56,0,205 + movd -16(%r10),%xmm8 + por %xmm7,%xmm11 + movd -16(%r11),%xmm7 + punpckldq %xmm8,%xmm2 + movdqa %xmm14,%xmm8 + paddd %xmm15,%xmm13 + punpckldq %xmm7,%xmm9 + movdqa %xmm10,%xmm7 + movdqa %xmm10,%xmm6 + pslld $5,%xmm8 + pandn %xmm12,%xmm7 + pand %xmm11,%xmm6 + punpckldq %xmm9,%xmm2 + movdqa %xmm14,%xmm9 + + movdqa %xmm1,176-128(%rax) + paddd %xmm1,%xmm13 + movd -12(%r8),%xmm3 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + movdqa %xmm10,%xmm7 + + por %xmm9,%xmm8 + movd -12(%r9),%xmm9 + pslld $30,%xmm7 + paddd %xmm6,%xmm13 + + psrld $2,%xmm10 + paddd %xmm8,%xmm13 +.byte 102,15,56,0,213 + movd -12(%r10),%xmm8 + por %xmm7,%xmm10 + movd -12(%r11),%xmm7 + punpckldq %xmm8,%xmm3 + movdqa %xmm13,%xmm8 + paddd %xmm15,%xmm12 + punpckldq %xmm7,%xmm9 + movdqa %xmm14,%xmm7 + movdqa %xmm14,%xmm6 + pslld $5,%xmm8 + pandn %xmm11,%xmm7 + pand %xmm10,%xmm6 + punpckldq %xmm9,%xmm3 + movdqa %xmm13,%xmm9 + + movdqa %xmm2,192-128(%rax) + paddd %xmm2,%xmm12 + movd -8(%r8),%xmm4 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + movdqa %xmm14,%xmm7 + + por %xmm9,%xmm8 + movd -8(%r9),%xmm9 + pslld $30,%xmm7 + paddd %xmm6,%xmm12 + + psrld $2,%xmm14 + paddd %xmm8,%xmm12 +.byte 102,15,56,0,221 + movd -8(%r10),%xmm8 + por %xmm7,%xmm14 + movd -8(%r11),%xmm7 + punpckldq %xmm8,%xmm4 + movdqa %xmm12,%xmm8 + paddd %xmm15,%xmm11 + punpckldq %xmm7,%xmm9 + movdqa %xmm13,%xmm7 + movdqa %xmm13,%xmm6 + pslld $5,%xmm8 + pandn %xmm10,%xmm7 + pand %xmm14,%xmm6 + punpckldq %xmm9,%xmm4 + movdqa %xmm12,%xmm9 + + movdqa %xmm3,208-128(%rax) + paddd %xmm3,%xmm11 + movd -4(%r8),%xmm0 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + movdqa %xmm13,%xmm7 + + por %xmm9,%xmm8 + movd -4(%r9),%xmm9 + pslld $30,%xmm7 + paddd %xmm6,%xmm11 + + psrld $2,%xmm13 + paddd %xmm8,%xmm11 +.byte 102,15,56,0,229 + movd -4(%r10),%xmm8 + por %xmm7,%xmm13 + movdqa 0-128(%rax),%xmm1 + movd -4(%r11),%xmm7 + punpckldq %xmm8,%xmm0 + movdqa %xmm11,%xmm8 + paddd %xmm15,%xmm10 + punpckldq %xmm7,%xmm9 + movdqa %xmm12,%xmm7 + movdqa %xmm12,%xmm6 + pslld $5,%xmm8 + prefetcht0 63(%r8) + pandn %xmm14,%xmm7 + pand %xmm13,%xmm6 + punpckldq %xmm9,%xmm0 + movdqa %xmm11,%xmm9 + + movdqa %xmm4,224-128(%rax) + paddd %xmm4,%xmm10 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + movdqa %xmm12,%xmm7 + prefetcht0 63(%r9) + + por %xmm9,%xmm8 + pslld $30,%xmm7 + paddd %xmm6,%xmm10 + prefetcht0 63(%r10) + + psrld $2,%xmm12 + paddd %xmm8,%xmm10 +.byte 102,15,56,0,197 + prefetcht0 63(%r11) + por %xmm7,%xmm12 + movdqa 16-128(%rax),%xmm2 + pxor %xmm3,%xmm1 + movdqa 32-128(%rax),%xmm3 + + movdqa %xmm10,%xmm8 + pxor 128-128(%rax),%xmm1 + paddd %xmm15,%xmm14 + movdqa %xmm11,%xmm7 + pslld $5,%xmm8 + pxor %xmm3,%xmm1 + movdqa %xmm11,%xmm6 + pandn %xmm13,%xmm7 + movdqa %xmm1,%xmm5 + pand %xmm12,%xmm6 + movdqa %xmm10,%xmm9 + psrld $31,%xmm5 + paddd %xmm1,%xmm1 + + movdqa %xmm0,240-128(%rax) + paddd %xmm0,%xmm14 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + + movdqa %xmm11,%xmm7 + por %xmm9,%xmm8 + pslld $30,%xmm7 + paddd %xmm6,%xmm14 + + psrld $2,%xmm11 + paddd %xmm8,%xmm14 + por %xmm5,%xmm1 + por %xmm7,%xmm11 + pxor %xmm4,%xmm2 + movdqa 48-128(%rax),%xmm4 + + movdqa %xmm14,%xmm8 + pxor 144-128(%rax),%xmm2 + paddd %xmm15,%xmm13 + movdqa %xmm10,%xmm7 + pslld $5,%xmm8 + pxor %xmm4,%xmm2 + movdqa %xmm10,%xmm6 + pandn %xmm12,%xmm7 + movdqa %xmm2,%xmm5 + pand %xmm11,%xmm6 + movdqa %xmm14,%xmm9 + psrld $31,%xmm5 + paddd %xmm2,%xmm2 + + movdqa %xmm1,0-128(%rax) + paddd %xmm1,%xmm13 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + + movdqa %xmm10,%xmm7 + por %xmm9,%xmm8 + pslld $30,%xmm7 + paddd %xmm6,%xmm13 + + psrld $2,%xmm10 + paddd %xmm8,%xmm13 + por %xmm5,%xmm2 + por %xmm7,%xmm10 + pxor %xmm0,%xmm3 + movdqa 64-128(%rax),%xmm0 + + movdqa %xmm13,%xmm8 + pxor 160-128(%rax),%xmm3 + paddd %xmm15,%xmm12 + movdqa %xmm14,%xmm7 + pslld $5,%xmm8 + pxor %xmm0,%xmm3 + movdqa %xmm14,%xmm6 + pandn %xmm11,%xmm7 + movdqa %xmm3,%xmm5 + pand %xmm10,%xmm6 + movdqa %xmm13,%xmm9 + psrld $31,%xmm5 + paddd %xmm3,%xmm3 + + movdqa %xmm2,16-128(%rax) + paddd %xmm2,%xmm12 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + + movdqa %xmm14,%xmm7 + por %xmm9,%xmm8 + pslld $30,%xmm7 + paddd %xmm6,%xmm12 + + psrld $2,%xmm14 + paddd %xmm8,%xmm12 + por %xmm5,%xmm3 + por %xmm7,%xmm14 + pxor %xmm1,%xmm4 + movdqa 80-128(%rax),%xmm1 + + movdqa %xmm12,%xmm8 + pxor 176-128(%rax),%xmm4 + paddd %xmm15,%xmm11 + movdqa %xmm13,%xmm7 + pslld $5,%xmm8 + pxor %xmm1,%xmm4 + movdqa %xmm13,%xmm6 + pandn %xmm10,%xmm7 + movdqa %xmm4,%xmm5 + pand %xmm14,%xmm6 + movdqa %xmm12,%xmm9 + psrld $31,%xmm5 + paddd %xmm4,%xmm4 + + movdqa %xmm3,32-128(%rax) + paddd %xmm3,%xmm11 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + + movdqa %xmm13,%xmm7 + por %xmm9,%xmm8 + pslld $30,%xmm7 + paddd %xmm6,%xmm11 + + psrld $2,%xmm13 + paddd %xmm8,%xmm11 + por %xmm5,%xmm4 + por %xmm7,%xmm13 + pxor %xmm2,%xmm0 + movdqa 96-128(%rax),%xmm2 + + movdqa %xmm11,%xmm8 + pxor 192-128(%rax),%xmm0 + paddd %xmm15,%xmm10 + movdqa %xmm12,%xmm7 + pslld $5,%xmm8 + pxor %xmm2,%xmm0 + movdqa %xmm12,%xmm6 + pandn %xmm14,%xmm7 + movdqa %xmm0,%xmm5 + pand %xmm13,%xmm6 + movdqa %xmm11,%xmm9 + psrld $31,%xmm5 + paddd %xmm0,%xmm0 + + movdqa %xmm4,48-128(%rax) + paddd %xmm4,%xmm10 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + + movdqa %xmm12,%xmm7 + por %xmm9,%xmm8 + pslld $30,%xmm7 + paddd %xmm6,%xmm10 + + psrld $2,%xmm12 + paddd %xmm8,%xmm10 + por %xmm5,%xmm0 + por %xmm7,%xmm12 + movdqa 0(%rbp),%xmm15 + pxor %xmm3,%xmm1 + movdqa 112-128(%rax),%xmm3 + + movdqa %xmm10,%xmm8 + movdqa %xmm13,%xmm6 + pxor 208-128(%rax),%xmm1 + paddd %xmm15,%xmm14 + pslld $5,%xmm8 + pxor %xmm11,%xmm6 + + movdqa %xmm10,%xmm9 + movdqa %xmm0,64-128(%rax) + paddd %xmm0,%xmm14 + pxor %xmm3,%xmm1 + psrld $27,%xmm9 + pxor %xmm12,%xmm6 + movdqa %xmm11,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm1,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm14 + paddd %xmm1,%xmm1 + + psrld $2,%xmm11 + paddd %xmm8,%xmm14 + por %xmm5,%xmm1 + por %xmm7,%xmm11 + pxor %xmm4,%xmm2 + movdqa 128-128(%rax),%xmm4 + + movdqa %xmm14,%xmm8 + movdqa %xmm12,%xmm6 + pxor 224-128(%rax),%xmm2 + paddd %xmm15,%xmm13 + pslld $5,%xmm8 + pxor %xmm10,%xmm6 + + movdqa %xmm14,%xmm9 + movdqa %xmm1,80-128(%rax) + paddd %xmm1,%xmm13 + pxor %xmm4,%xmm2 + psrld $27,%xmm9 + pxor %xmm11,%xmm6 + movdqa %xmm10,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm2,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm13 + paddd %xmm2,%xmm2 + + psrld $2,%xmm10 + paddd %xmm8,%xmm13 + por %xmm5,%xmm2 + por %xmm7,%xmm10 + pxor %xmm0,%xmm3 + movdqa 144-128(%rax),%xmm0 + + movdqa %xmm13,%xmm8 + movdqa %xmm11,%xmm6 + pxor 240-128(%rax),%xmm3 + paddd %xmm15,%xmm12 + pslld $5,%xmm8 + pxor %xmm14,%xmm6 + + movdqa %xmm13,%xmm9 + movdqa %xmm2,96-128(%rax) + paddd %xmm2,%xmm12 + pxor %xmm0,%xmm3 + psrld $27,%xmm9 + pxor %xmm10,%xmm6 + movdqa %xmm14,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm3,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm12 + paddd %xmm3,%xmm3 + + psrld $2,%xmm14 + paddd %xmm8,%xmm12 + por %xmm5,%xmm3 + por %xmm7,%xmm14 + pxor %xmm1,%xmm4 + movdqa 160-128(%rax),%xmm1 + + movdqa %xmm12,%xmm8 + movdqa %xmm10,%xmm6 + pxor 0-128(%rax),%xmm4 + paddd %xmm15,%xmm11 + pslld $5,%xmm8 + pxor %xmm13,%xmm6 + + movdqa %xmm12,%xmm9 + movdqa %xmm3,112-128(%rax) + paddd %xmm3,%xmm11 + pxor %xmm1,%xmm4 + psrld $27,%xmm9 + pxor %xmm14,%xmm6 + movdqa %xmm13,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm4,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm11 + paddd %xmm4,%xmm4 + + psrld $2,%xmm13 + paddd %xmm8,%xmm11 + por %xmm5,%xmm4 + por %xmm7,%xmm13 + pxor %xmm2,%xmm0 + movdqa 176-128(%rax),%xmm2 + + movdqa %xmm11,%xmm8 + movdqa %xmm14,%xmm6 + pxor 16-128(%rax),%xmm0 + paddd %xmm15,%xmm10 + pslld $5,%xmm8 + pxor %xmm12,%xmm6 + + movdqa %xmm11,%xmm9 + movdqa %xmm4,128-128(%rax) + paddd %xmm4,%xmm10 + pxor %xmm2,%xmm0 + psrld $27,%xmm9 + pxor %xmm13,%xmm6 + movdqa %xmm12,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm0,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm10 + paddd %xmm0,%xmm0 + + psrld $2,%xmm12 + paddd %xmm8,%xmm10 + por %xmm5,%xmm0 + por %xmm7,%xmm12 + pxor %xmm3,%xmm1 + movdqa 192-128(%rax),%xmm3 + + movdqa %xmm10,%xmm8 + movdqa %xmm13,%xmm6 + pxor 32-128(%rax),%xmm1 + paddd %xmm15,%xmm14 + pslld $5,%xmm8 + pxor %xmm11,%xmm6 + + movdqa %xmm10,%xmm9 + movdqa %xmm0,144-128(%rax) + paddd %xmm0,%xmm14 + pxor %xmm3,%xmm1 + psrld $27,%xmm9 + pxor %xmm12,%xmm6 + movdqa %xmm11,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm1,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm14 + paddd %xmm1,%xmm1 + + psrld $2,%xmm11 + paddd %xmm8,%xmm14 + por %xmm5,%xmm1 + por %xmm7,%xmm11 + pxor %xmm4,%xmm2 + movdqa 208-128(%rax),%xmm4 + + movdqa %xmm14,%xmm8 + movdqa %xmm12,%xmm6 + pxor 48-128(%rax),%xmm2 + paddd %xmm15,%xmm13 + pslld $5,%xmm8 + pxor %xmm10,%xmm6 + + movdqa %xmm14,%xmm9 + movdqa %xmm1,160-128(%rax) + paddd %xmm1,%xmm13 + pxor %xmm4,%xmm2 + psrld $27,%xmm9 + pxor %xmm11,%xmm6 + movdqa %xmm10,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm2,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm13 + paddd %xmm2,%xmm2 + + psrld $2,%xmm10 + paddd %xmm8,%xmm13 + por %xmm5,%xmm2 + por %xmm7,%xmm10 + pxor %xmm0,%xmm3 + movdqa 224-128(%rax),%xmm0 + + movdqa %xmm13,%xmm8 + movdqa %xmm11,%xmm6 + pxor 64-128(%rax),%xmm3 + paddd %xmm15,%xmm12 + pslld $5,%xmm8 + pxor %xmm14,%xmm6 + + movdqa %xmm13,%xmm9 + movdqa %xmm2,176-128(%rax) + paddd %xmm2,%xmm12 + pxor %xmm0,%xmm3 + psrld $27,%xmm9 + pxor %xmm10,%xmm6 + movdqa %xmm14,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm3,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm12 + paddd %xmm3,%xmm3 + + psrld $2,%xmm14 + paddd %xmm8,%xmm12 + por %xmm5,%xmm3 + por %xmm7,%xmm14 + pxor %xmm1,%xmm4 + movdqa 240-128(%rax),%xmm1 + + movdqa %xmm12,%xmm8 + movdqa %xmm10,%xmm6 + pxor 80-128(%rax),%xmm4 + paddd %xmm15,%xmm11 + pslld $5,%xmm8 + pxor %xmm13,%xmm6 + + movdqa %xmm12,%xmm9 + movdqa %xmm3,192-128(%rax) + paddd %xmm3,%xmm11 + pxor %xmm1,%xmm4 + psrld $27,%xmm9 + pxor %xmm14,%xmm6 + movdqa %xmm13,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm4,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm11 + paddd %xmm4,%xmm4 + + psrld $2,%xmm13 + paddd %xmm8,%xmm11 + por %xmm5,%xmm4 + por %xmm7,%xmm13 + pxor %xmm2,%xmm0 + movdqa 0-128(%rax),%xmm2 + + movdqa %xmm11,%xmm8 + movdqa %xmm14,%xmm6 + pxor 96-128(%rax),%xmm0 + paddd %xmm15,%xmm10 + pslld $5,%xmm8 + pxor %xmm12,%xmm6 + + movdqa %xmm11,%xmm9 + movdqa %xmm4,208-128(%rax) + paddd %xmm4,%xmm10 + pxor %xmm2,%xmm0 + psrld $27,%xmm9 + pxor %xmm13,%xmm6 + movdqa %xmm12,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm0,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm10 + paddd %xmm0,%xmm0 + + psrld $2,%xmm12 + paddd %xmm8,%xmm10 + por %xmm5,%xmm0 + por %xmm7,%xmm12 + pxor %xmm3,%xmm1 + movdqa 16-128(%rax),%xmm3 + + movdqa %xmm10,%xmm8 + movdqa %xmm13,%xmm6 + pxor 112-128(%rax),%xmm1 + paddd %xmm15,%xmm14 + pslld $5,%xmm8 + pxor %xmm11,%xmm6 + + movdqa %xmm10,%xmm9 + movdqa %xmm0,224-128(%rax) + paddd %xmm0,%xmm14 + pxor %xmm3,%xmm1 + psrld $27,%xmm9 + pxor %xmm12,%xmm6 + movdqa %xmm11,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm1,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm14 + paddd %xmm1,%xmm1 + + psrld $2,%xmm11 + paddd %xmm8,%xmm14 + por %xmm5,%xmm1 + por %xmm7,%xmm11 + pxor %xmm4,%xmm2 + movdqa 32-128(%rax),%xmm4 + + movdqa %xmm14,%xmm8 + movdqa %xmm12,%xmm6 + pxor 128-128(%rax),%xmm2 + paddd %xmm15,%xmm13 + pslld $5,%xmm8 + pxor %xmm10,%xmm6 + + movdqa %xmm14,%xmm9 + movdqa %xmm1,240-128(%rax) + paddd %xmm1,%xmm13 + pxor %xmm4,%xmm2 + psrld $27,%xmm9 + pxor %xmm11,%xmm6 + movdqa %xmm10,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm2,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm13 + paddd %xmm2,%xmm2 + + psrld $2,%xmm10 + paddd %xmm8,%xmm13 + por %xmm5,%xmm2 + por %xmm7,%xmm10 + pxor %xmm0,%xmm3 + movdqa 48-128(%rax),%xmm0 + + movdqa %xmm13,%xmm8 + movdqa %xmm11,%xmm6 + pxor 144-128(%rax),%xmm3 + paddd %xmm15,%xmm12 + pslld $5,%xmm8 + pxor %xmm14,%xmm6 + + movdqa %xmm13,%xmm9 + movdqa %xmm2,0-128(%rax) + paddd %xmm2,%xmm12 + pxor %xmm0,%xmm3 + psrld $27,%xmm9 + pxor %xmm10,%xmm6 + movdqa %xmm14,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm3,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm12 + paddd %xmm3,%xmm3 + + psrld $2,%xmm14 + paddd %xmm8,%xmm12 + por %xmm5,%xmm3 + por %xmm7,%xmm14 + pxor %xmm1,%xmm4 + movdqa 64-128(%rax),%xmm1 + + movdqa %xmm12,%xmm8 + movdqa %xmm10,%xmm6 + pxor 160-128(%rax),%xmm4 + paddd %xmm15,%xmm11 + pslld $5,%xmm8 + pxor %xmm13,%xmm6 + + movdqa %xmm12,%xmm9 + movdqa %xmm3,16-128(%rax) + paddd %xmm3,%xmm11 + pxor %xmm1,%xmm4 + psrld $27,%xmm9 + pxor %xmm14,%xmm6 + movdqa %xmm13,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm4,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm11 + paddd %xmm4,%xmm4 + + psrld $2,%xmm13 + paddd %xmm8,%xmm11 + por %xmm5,%xmm4 + por %xmm7,%xmm13 + pxor %xmm2,%xmm0 + movdqa 80-128(%rax),%xmm2 + + movdqa %xmm11,%xmm8 + movdqa %xmm14,%xmm6 + pxor 176-128(%rax),%xmm0 + paddd %xmm15,%xmm10 + pslld $5,%xmm8 + pxor %xmm12,%xmm6 + + movdqa %xmm11,%xmm9 + movdqa %xmm4,32-128(%rax) + paddd %xmm4,%xmm10 + pxor %xmm2,%xmm0 + psrld $27,%xmm9 + pxor %xmm13,%xmm6 + movdqa %xmm12,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm0,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm10 + paddd %xmm0,%xmm0 + + psrld $2,%xmm12 + paddd %xmm8,%xmm10 + por %xmm5,%xmm0 + por %xmm7,%xmm12 + pxor %xmm3,%xmm1 + movdqa 96-128(%rax),%xmm3 + + movdqa %xmm10,%xmm8 + movdqa %xmm13,%xmm6 + pxor 192-128(%rax),%xmm1 + paddd %xmm15,%xmm14 + pslld $5,%xmm8 + pxor %xmm11,%xmm6 + + movdqa %xmm10,%xmm9 + movdqa %xmm0,48-128(%rax) + paddd %xmm0,%xmm14 + pxor %xmm3,%xmm1 + psrld $27,%xmm9 + pxor %xmm12,%xmm6 + movdqa %xmm11,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm1,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm14 + paddd %xmm1,%xmm1 + + psrld $2,%xmm11 + paddd %xmm8,%xmm14 + por %xmm5,%xmm1 + por %xmm7,%xmm11 + pxor %xmm4,%xmm2 + movdqa 112-128(%rax),%xmm4 + + movdqa %xmm14,%xmm8 + movdqa %xmm12,%xmm6 + pxor 208-128(%rax),%xmm2 + paddd %xmm15,%xmm13 + pslld $5,%xmm8 + pxor %xmm10,%xmm6 + + movdqa %xmm14,%xmm9 + movdqa %xmm1,64-128(%rax) + paddd %xmm1,%xmm13 + pxor %xmm4,%xmm2 + psrld $27,%xmm9 + pxor %xmm11,%xmm6 + movdqa %xmm10,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm2,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm13 + paddd %xmm2,%xmm2 + + psrld $2,%xmm10 + paddd %xmm8,%xmm13 + por %xmm5,%xmm2 + por %xmm7,%xmm10 + pxor %xmm0,%xmm3 + movdqa 128-128(%rax),%xmm0 + + movdqa %xmm13,%xmm8 + movdqa %xmm11,%xmm6 + pxor 224-128(%rax),%xmm3 + paddd %xmm15,%xmm12 + pslld $5,%xmm8 + pxor %xmm14,%xmm6 + + movdqa %xmm13,%xmm9 + movdqa %xmm2,80-128(%rax) + paddd %xmm2,%xmm12 + pxor %xmm0,%xmm3 + psrld $27,%xmm9 + pxor %xmm10,%xmm6 + movdqa %xmm14,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm3,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm12 + paddd %xmm3,%xmm3 + + psrld $2,%xmm14 + paddd %xmm8,%xmm12 + por %xmm5,%xmm3 + por %xmm7,%xmm14 + pxor %xmm1,%xmm4 + movdqa 144-128(%rax),%xmm1 + + movdqa %xmm12,%xmm8 + movdqa %xmm10,%xmm6 + pxor 240-128(%rax),%xmm4 + paddd %xmm15,%xmm11 + pslld $5,%xmm8 + pxor %xmm13,%xmm6 + + movdqa %xmm12,%xmm9 + movdqa %xmm3,96-128(%rax) + paddd %xmm3,%xmm11 + pxor %xmm1,%xmm4 + psrld $27,%xmm9 + pxor %xmm14,%xmm6 + movdqa %xmm13,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm4,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm11 + paddd %xmm4,%xmm4 + + psrld $2,%xmm13 + paddd %xmm8,%xmm11 + por %xmm5,%xmm4 + por %xmm7,%xmm13 + pxor %xmm2,%xmm0 + movdqa 160-128(%rax),%xmm2 + + movdqa %xmm11,%xmm8 + movdqa %xmm14,%xmm6 + pxor 0-128(%rax),%xmm0 + paddd %xmm15,%xmm10 + pslld $5,%xmm8 + pxor %xmm12,%xmm6 + + movdqa %xmm11,%xmm9 + movdqa %xmm4,112-128(%rax) + paddd %xmm4,%xmm10 + pxor %xmm2,%xmm0 + psrld $27,%xmm9 + pxor %xmm13,%xmm6 + movdqa %xmm12,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm0,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm10 + paddd %xmm0,%xmm0 + + psrld $2,%xmm12 + paddd %xmm8,%xmm10 + por %xmm5,%xmm0 + por %xmm7,%xmm12 + movdqa 32(%rbp),%xmm15 + pxor %xmm3,%xmm1 + movdqa 176-128(%rax),%xmm3 + + movdqa %xmm10,%xmm8 + movdqa %xmm13,%xmm7 + pxor 16-128(%rax),%xmm1 + pxor %xmm3,%xmm1 + paddd %xmm15,%xmm14 + pslld $5,%xmm8 + movdqa %xmm10,%xmm9 + pand %xmm12,%xmm7 + + movdqa %xmm13,%xmm6 + movdqa %xmm1,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm14 + pxor %xmm12,%xmm6 + + movdqa %xmm0,128-128(%rax) + paddd %xmm0,%xmm14 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm11,%xmm6 + movdqa %xmm11,%xmm7 + + pslld $30,%xmm7 + paddd %xmm1,%xmm1 + paddd %xmm6,%xmm14 + + psrld $2,%xmm11 + paddd %xmm8,%xmm14 + por %xmm5,%xmm1 + por %xmm7,%xmm11 + pxor %xmm4,%xmm2 + movdqa 192-128(%rax),%xmm4 + + movdqa %xmm14,%xmm8 + movdqa %xmm12,%xmm7 + pxor 32-128(%rax),%xmm2 + pxor %xmm4,%xmm2 + paddd %xmm15,%xmm13 + pslld $5,%xmm8 + movdqa %xmm14,%xmm9 + pand %xmm11,%xmm7 + + movdqa %xmm12,%xmm6 + movdqa %xmm2,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm13 + pxor %xmm11,%xmm6 + + movdqa %xmm1,144-128(%rax) + paddd %xmm1,%xmm13 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm10,%xmm6 + movdqa %xmm10,%xmm7 + + pslld $30,%xmm7 + paddd %xmm2,%xmm2 + paddd %xmm6,%xmm13 + + psrld $2,%xmm10 + paddd %xmm8,%xmm13 + por %xmm5,%xmm2 + por %xmm7,%xmm10 + pxor %xmm0,%xmm3 + movdqa 208-128(%rax),%xmm0 + + movdqa %xmm13,%xmm8 + movdqa %xmm11,%xmm7 + pxor 48-128(%rax),%xmm3 + pxor %xmm0,%xmm3 + paddd %xmm15,%xmm12 + pslld $5,%xmm8 + movdqa %xmm13,%xmm9 + pand %xmm10,%xmm7 + + movdqa %xmm11,%xmm6 + movdqa %xmm3,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm12 + pxor %xmm10,%xmm6 + + movdqa %xmm2,160-128(%rax) + paddd %xmm2,%xmm12 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm14,%xmm6 + movdqa %xmm14,%xmm7 + + pslld $30,%xmm7 + paddd %xmm3,%xmm3 + paddd %xmm6,%xmm12 + + psrld $2,%xmm14 + paddd %xmm8,%xmm12 + por %xmm5,%xmm3 + por %xmm7,%xmm14 + pxor %xmm1,%xmm4 + movdqa 224-128(%rax),%xmm1 + + movdqa %xmm12,%xmm8 + movdqa %xmm10,%xmm7 + pxor 64-128(%rax),%xmm4 + pxor %xmm1,%xmm4 + paddd %xmm15,%xmm11 + pslld $5,%xmm8 + movdqa %xmm12,%xmm9 + pand %xmm14,%xmm7 + + movdqa %xmm10,%xmm6 + movdqa %xmm4,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm11 + pxor %xmm14,%xmm6 + + movdqa %xmm3,176-128(%rax) + paddd %xmm3,%xmm11 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm13,%xmm6 + movdqa %xmm13,%xmm7 + + pslld $30,%xmm7 + paddd %xmm4,%xmm4 + paddd %xmm6,%xmm11 + + psrld $2,%xmm13 + paddd %xmm8,%xmm11 + por %xmm5,%xmm4 + por %xmm7,%xmm13 + pxor %xmm2,%xmm0 + movdqa 240-128(%rax),%xmm2 + + movdqa %xmm11,%xmm8 + movdqa %xmm14,%xmm7 + pxor 80-128(%rax),%xmm0 + pxor %xmm2,%xmm0 + paddd %xmm15,%xmm10 + pslld $5,%xmm8 + movdqa %xmm11,%xmm9 + pand %xmm13,%xmm7 + + movdqa %xmm14,%xmm6 + movdqa %xmm0,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm10 + pxor %xmm13,%xmm6 + + movdqa %xmm4,192-128(%rax) + paddd %xmm4,%xmm10 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm12,%xmm6 + movdqa %xmm12,%xmm7 + + pslld $30,%xmm7 + paddd %xmm0,%xmm0 + paddd %xmm6,%xmm10 + + psrld $2,%xmm12 + paddd %xmm8,%xmm10 + por %xmm5,%xmm0 + por %xmm7,%xmm12 + pxor %xmm3,%xmm1 + movdqa 0-128(%rax),%xmm3 + + movdqa %xmm10,%xmm8 + movdqa %xmm13,%xmm7 + pxor 96-128(%rax),%xmm1 + pxor %xmm3,%xmm1 + paddd %xmm15,%xmm14 + pslld $5,%xmm8 + movdqa %xmm10,%xmm9 + pand %xmm12,%xmm7 + + movdqa %xmm13,%xmm6 + movdqa %xmm1,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm14 + pxor %xmm12,%xmm6 + + movdqa %xmm0,208-128(%rax) + paddd %xmm0,%xmm14 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm11,%xmm6 + movdqa %xmm11,%xmm7 + + pslld $30,%xmm7 + paddd %xmm1,%xmm1 + paddd %xmm6,%xmm14 + + psrld $2,%xmm11 + paddd %xmm8,%xmm14 + por %xmm5,%xmm1 + por %xmm7,%xmm11 + pxor %xmm4,%xmm2 + movdqa 16-128(%rax),%xmm4 + + movdqa %xmm14,%xmm8 + movdqa %xmm12,%xmm7 + pxor 112-128(%rax),%xmm2 + pxor %xmm4,%xmm2 + paddd %xmm15,%xmm13 + pslld $5,%xmm8 + movdqa %xmm14,%xmm9 + pand %xmm11,%xmm7 + + movdqa %xmm12,%xmm6 + movdqa %xmm2,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm13 + pxor %xmm11,%xmm6 + + movdqa %xmm1,224-128(%rax) + paddd %xmm1,%xmm13 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm10,%xmm6 + movdqa %xmm10,%xmm7 + + pslld $30,%xmm7 + paddd %xmm2,%xmm2 + paddd %xmm6,%xmm13 + + psrld $2,%xmm10 + paddd %xmm8,%xmm13 + por %xmm5,%xmm2 + por %xmm7,%xmm10 + pxor %xmm0,%xmm3 + movdqa 32-128(%rax),%xmm0 + + movdqa %xmm13,%xmm8 + movdqa %xmm11,%xmm7 + pxor 128-128(%rax),%xmm3 + pxor %xmm0,%xmm3 + paddd %xmm15,%xmm12 + pslld $5,%xmm8 + movdqa %xmm13,%xmm9 + pand %xmm10,%xmm7 + + movdqa %xmm11,%xmm6 + movdqa %xmm3,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm12 + pxor %xmm10,%xmm6 + + movdqa %xmm2,240-128(%rax) + paddd %xmm2,%xmm12 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm14,%xmm6 + movdqa %xmm14,%xmm7 + + pslld $30,%xmm7 + paddd %xmm3,%xmm3 + paddd %xmm6,%xmm12 + + psrld $2,%xmm14 + paddd %xmm8,%xmm12 + por %xmm5,%xmm3 + por %xmm7,%xmm14 + pxor %xmm1,%xmm4 + movdqa 48-128(%rax),%xmm1 + + movdqa %xmm12,%xmm8 + movdqa %xmm10,%xmm7 + pxor 144-128(%rax),%xmm4 + pxor %xmm1,%xmm4 + paddd %xmm15,%xmm11 + pslld $5,%xmm8 + movdqa %xmm12,%xmm9 + pand %xmm14,%xmm7 + + movdqa %xmm10,%xmm6 + movdqa %xmm4,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm11 + pxor %xmm14,%xmm6 + + movdqa %xmm3,0-128(%rax) + paddd %xmm3,%xmm11 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm13,%xmm6 + movdqa %xmm13,%xmm7 + + pslld $30,%xmm7 + paddd %xmm4,%xmm4 + paddd %xmm6,%xmm11 + + psrld $2,%xmm13 + paddd %xmm8,%xmm11 + por %xmm5,%xmm4 + por %xmm7,%xmm13 + pxor %xmm2,%xmm0 + movdqa 64-128(%rax),%xmm2 + + movdqa %xmm11,%xmm8 + movdqa %xmm14,%xmm7 + pxor 160-128(%rax),%xmm0 + pxor %xmm2,%xmm0 + paddd %xmm15,%xmm10 + pslld $5,%xmm8 + movdqa %xmm11,%xmm9 + pand %xmm13,%xmm7 + + movdqa %xmm14,%xmm6 + movdqa %xmm0,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm10 + pxor %xmm13,%xmm6 + + movdqa %xmm4,16-128(%rax) + paddd %xmm4,%xmm10 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm12,%xmm6 + movdqa %xmm12,%xmm7 + + pslld $30,%xmm7 + paddd %xmm0,%xmm0 + paddd %xmm6,%xmm10 + + psrld $2,%xmm12 + paddd %xmm8,%xmm10 + por %xmm5,%xmm0 + por %xmm7,%xmm12 + pxor %xmm3,%xmm1 + movdqa 80-128(%rax),%xmm3 + + movdqa %xmm10,%xmm8 + movdqa %xmm13,%xmm7 + pxor 176-128(%rax),%xmm1 + pxor %xmm3,%xmm1 + paddd %xmm15,%xmm14 + pslld $5,%xmm8 + movdqa %xmm10,%xmm9 + pand %xmm12,%xmm7 + + movdqa %xmm13,%xmm6 + movdqa %xmm1,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm14 + pxor %xmm12,%xmm6 + + movdqa %xmm0,32-128(%rax) + paddd %xmm0,%xmm14 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm11,%xmm6 + movdqa %xmm11,%xmm7 + + pslld $30,%xmm7 + paddd %xmm1,%xmm1 + paddd %xmm6,%xmm14 + + psrld $2,%xmm11 + paddd %xmm8,%xmm14 + por %xmm5,%xmm1 + por %xmm7,%xmm11 + pxor %xmm4,%xmm2 + movdqa 96-128(%rax),%xmm4 + + movdqa %xmm14,%xmm8 + movdqa %xmm12,%xmm7 + pxor 192-128(%rax),%xmm2 + pxor %xmm4,%xmm2 + paddd %xmm15,%xmm13 + pslld $5,%xmm8 + movdqa %xmm14,%xmm9 + pand %xmm11,%xmm7 + + movdqa %xmm12,%xmm6 + movdqa %xmm2,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm13 + pxor %xmm11,%xmm6 + + movdqa %xmm1,48-128(%rax) + paddd %xmm1,%xmm13 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm10,%xmm6 + movdqa %xmm10,%xmm7 + + pslld $30,%xmm7 + paddd %xmm2,%xmm2 + paddd %xmm6,%xmm13 + + psrld $2,%xmm10 + paddd %xmm8,%xmm13 + por %xmm5,%xmm2 + por %xmm7,%xmm10 + pxor %xmm0,%xmm3 + movdqa 112-128(%rax),%xmm0 + + movdqa %xmm13,%xmm8 + movdqa %xmm11,%xmm7 + pxor 208-128(%rax),%xmm3 + pxor %xmm0,%xmm3 + paddd %xmm15,%xmm12 + pslld $5,%xmm8 + movdqa %xmm13,%xmm9 + pand %xmm10,%xmm7 + + movdqa %xmm11,%xmm6 + movdqa %xmm3,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm12 + pxor %xmm10,%xmm6 + + movdqa %xmm2,64-128(%rax) + paddd %xmm2,%xmm12 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm14,%xmm6 + movdqa %xmm14,%xmm7 + + pslld $30,%xmm7 + paddd %xmm3,%xmm3 + paddd %xmm6,%xmm12 + + psrld $2,%xmm14 + paddd %xmm8,%xmm12 + por %xmm5,%xmm3 + por %xmm7,%xmm14 + pxor %xmm1,%xmm4 + movdqa 128-128(%rax),%xmm1 + + movdqa %xmm12,%xmm8 + movdqa %xmm10,%xmm7 + pxor 224-128(%rax),%xmm4 + pxor %xmm1,%xmm4 + paddd %xmm15,%xmm11 + pslld $5,%xmm8 + movdqa %xmm12,%xmm9 + pand %xmm14,%xmm7 + + movdqa %xmm10,%xmm6 + movdqa %xmm4,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm11 + pxor %xmm14,%xmm6 + + movdqa %xmm3,80-128(%rax) + paddd %xmm3,%xmm11 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm13,%xmm6 + movdqa %xmm13,%xmm7 + + pslld $30,%xmm7 + paddd %xmm4,%xmm4 + paddd %xmm6,%xmm11 + + psrld $2,%xmm13 + paddd %xmm8,%xmm11 + por %xmm5,%xmm4 + por %xmm7,%xmm13 + pxor %xmm2,%xmm0 + movdqa 144-128(%rax),%xmm2 + + movdqa %xmm11,%xmm8 + movdqa %xmm14,%xmm7 + pxor 240-128(%rax),%xmm0 + pxor %xmm2,%xmm0 + paddd %xmm15,%xmm10 + pslld $5,%xmm8 + movdqa %xmm11,%xmm9 + pand %xmm13,%xmm7 + + movdqa %xmm14,%xmm6 + movdqa %xmm0,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm10 + pxor %xmm13,%xmm6 + + movdqa %xmm4,96-128(%rax) + paddd %xmm4,%xmm10 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm12,%xmm6 + movdqa %xmm12,%xmm7 + + pslld $30,%xmm7 + paddd %xmm0,%xmm0 + paddd %xmm6,%xmm10 + + psrld $2,%xmm12 + paddd %xmm8,%xmm10 + por %xmm5,%xmm0 + por %xmm7,%xmm12 + pxor %xmm3,%xmm1 + movdqa 160-128(%rax),%xmm3 + + movdqa %xmm10,%xmm8 + movdqa %xmm13,%xmm7 + pxor 0-128(%rax),%xmm1 + pxor %xmm3,%xmm1 + paddd %xmm15,%xmm14 + pslld $5,%xmm8 + movdqa %xmm10,%xmm9 + pand %xmm12,%xmm7 + + movdqa %xmm13,%xmm6 + movdqa %xmm1,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm14 + pxor %xmm12,%xmm6 + + movdqa %xmm0,112-128(%rax) + paddd %xmm0,%xmm14 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm11,%xmm6 + movdqa %xmm11,%xmm7 + + pslld $30,%xmm7 + paddd %xmm1,%xmm1 + paddd %xmm6,%xmm14 + + psrld $2,%xmm11 + paddd %xmm8,%xmm14 + por %xmm5,%xmm1 + por %xmm7,%xmm11 + pxor %xmm4,%xmm2 + movdqa 176-128(%rax),%xmm4 + + movdqa %xmm14,%xmm8 + movdqa %xmm12,%xmm7 + pxor 16-128(%rax),%xmm2 + pxor %xmm4,%xmm2 + paddd %xmm15,%xmm13 + pslld $5,%xmm8 + movdqa %xmm14,%xmm9 + pand %xmm11,%xmm7 + + movdqa %xmm12,%xmm6 + movdqa %xmm2,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm13 + pxor %xmm11,%xmm6 + + movdqa %xmm1,128-128(%rax) + paddd %xmm1,%xmm13 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm10,%xmm6 + movdqa %xmm10,%xmm7 + + pslld $30,%xmm7 + paddd %xmm2,%xmm2 + paddd %xmm6,%xmm13 + + psrld $2,%xmm10 + paddd %xmm8,%xmm13 + por %xmm5,%xmm2 + por %xmm7,%xmm10 + pxor %xmm0,%xmm3 + movdqa 192-128(%rax),%xmm0 + + movdqa %xmm13,%xmm8 + movdqa %xmm11,%xmm7 + pxor 32-128(%rax),%xmm3 + pxor %xmm0,%xmm3 + paddd %xmm15,%xmm12 + pslld $5,%xmm8 + movdqa %xmm13,%xmm9 + pand %xmm10,%xmm7 + + movdqa %xmm11,%xmm6 + movdqa %xmm3,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm12 + pxor %xmm10,%xmm6 + + movdqa %xmm2,144-128(%rax) + paddd %xmm2,%xmm12 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm14,%xmm6 + movdqa %xmm14,%xmm7 + + pslld $30,%xmm7 + paddd %xmm3,%xmm3 + paddd %xmm6,%xmm12 + + psrld $2,%xmm14 + paddd %xmm8,%xmm12 + por %xmm5,%xmm3 + por %xmm7,%xmm14 + pxor %xmm1,%xmm4 + movdqa 208-128(%rax),%xmm1 + + movdqa %xmm12,%xmm8 + movdqa %xmm10,%xmm7 + pxor 48-128(%rax),%xmm4 + pxor %xmm1,%xmm4 + paddd %xmm15,%xmm11 + pslld $5,%xmm8 + movdqa %xmm12,%xmm9 + pand %xmm14,%xmm7 + + movdqa %xmm10,%xmm6 + movdqa %xmm4,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm11 + pxor %xmm14,%xmm6 + + movdqa %xmm3,160-128(%rax) + paddd %xmm3,%xmm11 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm13,%xmm6 + movdqa %xmm13,%xmm7 + + pslld $30,%xmm7 + paddd %xmm4,%xmm4 + paddd %xmm6,%xmm11 + + psrld $2,%xmm13 + paddd %xmm8,%xmm11 + por %xmm5,%xmm4 + por %xmm7,%xmm13 + pxor %xmm2,%xmm0 + movdqa 224-128(%rax),%xmm2 + + movdqa %xmm11,%xmm8 + movdqa %xmm14,%xmm7 + pxor 64-128(%rax),%xmm0 + pxor %xmm2,%xmm0 + paddd %xmm15,%xmm10 + pslld $5,%xmm8 + movdqa %xmm11,%xmm9 + pand %xmm13,%xmm7 + + movdqa %xmm14,%xmm6 + movdqa %xmm0,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm10 + pxor %xmm13,%xmm6 + + movdqa %xmm4,176-128(%rax) + paddd %xmm4,%xmm10 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm12,%xmm6 + movdqa %xmm12,%xmm7 + + pslld $30,%xmm7 + paddd %xmm0,%xmm0 + paddd %xmm6,%xmm10 + + psrld $2,%xmm12 + paddd %xmm8,%xmm10 + por %xmm5,%xmm0 + por %xmm7,%xmm12 + movdqa 64(%rbp),%xmm15 + pxor %xmm3,%xmm1 + movdqa 240-128(%rax),%xmm3 + + movdqa %xmm10,%xmm8 + movdqa %xmm13,%xmm6 + pxor 80-128(%rax),%xmm1 + paddd %xmm15,%xmm14 + pslld $5,%xmm8 + pxor %xmm11,%xmm6 + + movdqa %xmm10,%xmm9 + movdqa %xmm0,192-128(%rax) + paddd %xmm0,%xmm14 + pxor %xmm3,%xmm1 + psrld $27,%xmm9 + pxor %xmm12,%xmm6 + movdqa %xmm11,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm1,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm14 + paddd %xmm1,%xmm1 + + psrld $2,%xmm11 + paddd %xmm8,%xmm14 + por %xmm5,%xmm1 + por %xmm7,%xmm11 + pxor %xmm4,%xmm2 + movdqa 0-128(%rax),%xmm4 + + movdqa %xmm14,%xmm8 + movdqa %xmm12,%xmm6 + pxor 96-128(%rax),%xmm2 + paddd %xmm15,%xmm13 + pslld $5,%xmm8 + pxor %xmm10,%xmm6 + + movdqa %xmm14,%xmm9 + movdqa %xmm1,208-128(%rax) + paddd %xmm1,%xmm13 + pxor %xmm4,%xmm2 + psrld $27,%xmm9 + pxor %xmm11,%xmm6 + movdqa %xmm10,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm2,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm13 + paddd %xmm2,%xmm2 + + psrld $2,%xmm10 + paddd %xmm8,%xmm13 + por %xmm5,%xmm2 + por %xmm7,%xmm10 + pxor %xmm0,%xmm3 + movdqa 16-128(%rax),%xmm0 + + movdqa %xmm13,%xmm8 + movdqa %xmm11,%xmm6 + pxor 112-128(%rax),%xmm3 + paddd %xmm15,%xmm12 + pslld $5,%xmm8 + pxor %xmm14,%xmm6 + + movdqa %xmm13,%xmm9 + movdqa %xmm2,224-128(%rax) + paddd %xmm2,%xmm12 + pxor %xmm0,%xmm3 + psrld $27,%xmm9 + pxor %xmm10,%xmm6 + movdqa %xmm14,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm3,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm12 + paddd %xmm3,%xmm3 + + psrld $2,%xmm14 + paddd %xmm8,%xmm12 + por %xmm5,%xmm3 + por %xmm7,%xmm14 + pxor %xmm1,%xmm4 + movdqa 32-128(%rax),%xmm1 + + movdqa %xmm12,%xmm8 + movdqa %xmm10,%xmm6 + pxor 128-128(%rax),%xmm4 + paddd %xmm15,%xmm11 + pslld $5,%xmm8 + pxor %xmm13,%xmm6 + + movdqa %xmm12,%xmm9 + movdqa %xmm3,240-128(%rax) + paddd %xmm3,%xmm11 + pxor %xmm1,%xmm4 + psrld $27,%xmm9 + pxor %xmm14,%xmm6 + movdqa %xmm13,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm4,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm11 + paddd %xmm4,%xmm4 + + psrld $2,%xmm13 + paddd %xmm8,%xmm11 + por %xmm5,%xmm4 + por %xmm7,%xmm13 + pxor %xmm2,%xmm0 + movdqa 48-128(%rax),%xmm2 + + movdqa %xmm11,%xmm8 + movdqa %xmm14,%xmm6 + pxor 144-128(%rax),%xmm0 + paddd %xmm15,%xmm10 + pslld $5,%xmm8 + pxor %xmm12,%xmm6 + + movdqa %xmm11,%xmm9 + movdqa %xmm4,0-128(%rax) + paddd %xmm4,%xmm10 + pxor %xmm2,%xmm0 + psrld $27,%xmm9 + pxor %xmm13,%xmm6 + movdqa %xmm12,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm0,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm10 + paddd %xmm0,%xmm0 + + psrld $2,%xmm12 + paddd %xmm8,%xmm10 + por %xmm5,%xmm0 + por %xmm7,%xmm12 + pxor %xmm3,%xmm1 + movdqa 64-128(%rax),%xmm3 + + movdqa %xmm10,%xmm8 + movdqa %xmm13,%xmm6 + pxor 160-128(%rax),%xmm1 + paddd %xmm15,%xmm14 + pslld $5,%xmm8 + pxor %xmm11,%xmm6 + + movdqa %xmm10,%xmm9 + movdqa %xmm0,16-128(%rax) + paddd %xmm0,%xmm14 + pxor %xmm3,%xmm1 + psrld $27,%xmm9 + pxor %xmm12,%xmm6 + movdqa %xmm11,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm1,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm14 + paddd %xmm1,%xmm1 + + psrld $2,%xmm11 + paddd %xmm8,%xmm14 + por %xmm5,%xmm1 + por %xmm7,%xmm11 + pxor %xmm4,%xmm2 + movdqa 80-128(%rax),%xmm4 + + movdqa %xmm14,%xmm8 + movdqa %xmm12,%xmm6 + pxor 176-128(%rax),%xmm2 + paddd %xmm15,%xmm13 + pslld $5,%xmm8 + pxor %xmm10,%xmm6 + + movdqa %xmm14,%xmm9 + movdqa %xmm1,32-128(%rax) + paddd %xmm1,%xmm13 + pxor %xmm4,%xmm2 + psrld $27,%xmm9 + pxor %xmm11,%xmm6 + movdqa %xmm10,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm2,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm13 + paddd %xmm2,%xmm2 + + psrld $2,%xmm10 + paddd %xmm8,%xmm13 + por %xmm5,%xmm2 + por %xmm7,%xmm10 + pxor %xmm0,%xmm3 + movdqa 96-128(%rax),%xmm0 + + movdqa %xmm13,%xmm8 + movdqa %xmm11,%xmm6 + pxor 192-128(%rax),%xmm3 + paddd %xmm15,%xmm12 + pslld $5,%xmm8 + pxor %xmm14,%xmm6 + + movdqa %xmm13,%xmm9 + movdqa %xmm2,48-128(%rax) + paddd %xmm2,%xmm12 + pxor %xmm0,%xmm3 + psrld $27,%xmm9 + pxor %xmm10,%xmm6 + movdqa %xmm14,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm3,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm12 + paddd %xmm3,%xmm3 + + psrld $2,%xmm14 + paddd %xmm8,%xmm12 + por %xmm5,%xmm3 + por %xmm7,%xmm14 + pxor %xmm1,%xmm4 + movdqa 112-128(%rax),%xmm1 + + movdqa %xmm12,%xmm8 + movdqa %xmm10,%xmm6 + pxor 208-128(%rax),%xmm4 + paddd %xmm15,%xmm11 + pslld $5,%xmm8 + pxor %xmm13,%xmm6 + + movdqa %xmm12,%xmm9 + movdqa %xmm3,64-128(%rax) + paddd %xmm3,%xmm11 + pxor %xmm1,%xmm4 + psrld $27,%xmm9 + pxor %xmm14,%xmm6 + movdqa %xmm13,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm4,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm11 + paddd %xmm4,%xmm4 + + psrld $2,%xmm13 + paddd %xmm8,%xmm11 + por %xmm5,%xmm4 + por %xmm7,%xmm13 + pxor %xmm2,%xmm0 + movdqa 128-128(%rax),%xmm2 + + movdqa %xmm11,%xmm8 + movdqa %xmm14,%xmm6 + pxor 224-128(%rax),%xmm0 + paddd %xmm15,%xmm10 + pslld $5,%xmm8 + pxor %xmm12,%xmm6 + + movdqa %xmm11,%xmm9 + movdqa %xmm4,80-128(%rax) + paddd %xmm4,%xmm10 + pxor %xmm2,%xmm0 + psrld $27,%xmm9 + pxor %xmm13,%xmm6 + movdqa %xmm12,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm0,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm10 + paddd %xmm0,%xmm0 + + psrld $2,%xmm12 + paddd %xmm8,%xmm10 + por %xmm5,%xmm0 + por %xmm7,%xmm12 + pxor %xmm3,%xmm1 + movdqa 144-128(%rax),%xmm3 + + movdqa %xmm10,%xmm8 + movdqa %xmm13,%xmm6 + pxor 240-128(%rax),%xmm1 + paddd %xmm15,%xmm14 + pslld $5,%xmm8 + pxor %xmm11,%xmm6 + + movdqa %xmm10,%xmm9 + movdqa %xmm0,96-128(%rax) + paddd %xmm0,%xmm14 + pxor %xmm3,%xmm1 + psrld $27,%xmm9 + pxor %xmm12,%xmm6 + movdqa %xmm11,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm1,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm14 + paddd %xmm1,%xmm1 + + psrld $2,%xmm11 + paddd %xmm8,%xmm14 + por %xmm5,%xmm1 + por %xmm7,%xmm11 + pxor %xmm4,%xmm2 + movdqa 160-128(%rax),%xmm4 + + movdqa %xmm14,%xmm8 + movdqa %xmm12,%xmm6 + pxor 0-128(%rax),%xmm2 + paddd %xmm15,%xmm13 + pslld $5,%xmm8 + pxor %xmm10,%xmm6 + + movdqa %xmm14,%xmm9 + movdqa %xmm1,112-128(%rax) + paddd %xmm1,%xmm13 + pxor %xmm4,%xmm2 + psrld $27,%xmm9 + pxor %xmm11,%xmm6 + movdqa %xmm10,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm2,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm13 + paddd %xmm2,%xmm2 + + psrld $2,%xmm10 + paddd %xmm8,%xmm13 + por %xmm5,%xmm2 + por %xmm7,%xmm10 + pxor %xmm0,%xmm3 + movdqa 176-128(%rax),%xmm0 + + movdqa %xmm13,%xmm8 + movdqa %xmm11,%xmm6 + pxor 16-128(%rax),%xmm3 + paddd %xmm15,%xmm12 + pslld $5,%xmm8 + pxor %xmm14,%xmm6 + + movdqa %xmm13,%xmm9 + paddd %xmm2,%xmm12 + pxor %xmm0,%xmm3 + psrld $27,%xmm9 + pxor %xmm10,%xmm6 + movdqa %xmm14,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm3,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm12 + paddd %xmm3,%xmm3 + + psrld $2,%xmm14 + paddd %xmm8,%xmm12 + por %xmm5,%xmm3 + por %xmm7,%xmm14 + pxor %xmm1,%xmm4 + movdqa 192-128(%rax),%xmm1 + + movdqa %xmm12,%xmm8 + movdqa %xmm10,%xmm6 + pxor 32-128(%rax),%xmm4 + paddd %xmm15,%xmm11 + pslld $5,%xmm8 + pxor %xmm13,%xmm6 + + movdqa %xmm12,%xmm9 + paddd %xmm3,%xmm11 + pxor %xmm1,%xmm4 + psrld $27,%xmm9 + pxor %xmm14,%xmm6 + movdqa %xmm13,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm4,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm11 + paddd %xmm4,%xmm4 + + psrld $2,%xmm13 + paddd %xmm8,%xmm11 + por %xmm5,%xmm4 + por %xmm7,%xmm13 + pxor %xmm2,%xmm0 + movdqa 208-128(%rax),%xmm2 + + movdqa %xmm11,%xmm8 + movdqa %xmm14,%xmm6 + pxor 48-128(%rax),%xmm0 + paddd %xmm15,%xmm10 + pslld $5,%xmm8 + pxor %xmm12,%xmm6 + + movdqa %xmm11,%xmm9 + paddd %xmm4,%xmm10 + pxor %xmm2,%xmm0 + psrld $27,%xmm9 + pxor %xmm13,%xmm6 + movdqa %xmm12,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm0,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm10 + paddd %xmm0,%xmm0 + + psrld $2,%xmm12 + paddd %xmm8,%xmm10 + por %xmm5,%xmm0 + por %xmm7,%xmm12 + pxor %xmm3,%xmm1 + movdqa 224-128(%rax),%xmm3 + + movdqa %xmm10,%xmm8 + movdqa %xmm13,%xmm6 + pxor 64-128(%rax),%xmm1 + paddd %xmm15,%xmm14 + pslld $5,%xmm8 + pxor %xmm11,%xmm6 + + movdqa %xmm10,%xmm9 + paddd %xmm0,%xmm14 + pxor %xmm3,%xmm1 + psrld $27,%xmm9 + pxor %xmm12,%xmm6 + movdqa %xmm11,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm1,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm14 + paddd %xmm1,%xmm1 + + psrld $2,%xmm11 + paddd %xmm8,%xmm14 + por %xmm5,%xmm1 + por %xmm7,%xmm11 + pxor %xmm4,%xmm2 + movdqa 240-128(%rax),%xmm4 + + movdqa %xmm14,%xmm8 + movdqa %xmm12,%xmm6 + pxor 80-128(%rax),%xmm2 + paddd %xmm15,%xmm13 + pslld $5,%xmm8 + pxor %xmm10,%xmm6 + + movdqa %xmm14,%xmm9 + paddd %xmm1,%xmm13 + pxor %xmm4,%xmm2 + psrld $27,%xmm9 + pxor %xmm11,%xmm6 + movdqa %xmm10,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm2,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm13 + paddd %xmm2,%xmm2 + + psrld $2,%xmm10 + paddd %xmm8,%xmm13 + por %xmm5,%xmm2 + por %xmm7,%xmm10 + pxor %xmm0,%xmm3 + movdqa 0-128(%rax),%xmm0 + + movdqa %xmm13,%xmm8 + movdqa %xmm11,%xmm6 + pxor 96-128(%rax),%xmm3 + paddd %xmm15,%xmm12 + pslld $5,%xmm8 + pxor %xmm14,%xmm6 + + movdqa %xmm13,%xmm9 + paddd %xmm2,%xmm12 + pxor %xmm0,%xmm3 + psrld $27,%xmm9 + pxor %xmm10,%xmm6 + movdqa %xmm14,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm3,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm12 + paddd %xmm3,%xmm3 + + psrld $2,%xmm14 + paddd %xmm8,%xmm12 + por %xmm5,%xmm3 + por %xmm7,%xmm14 + pxor %xmm1,%xmm4 + movdqa 16-128(%rax),%xmm1 + + movdqa %xmm12,%xmm8 + movdqa %xmm10,%xmm6 + pxor 112-128(%rax),%xmm4 + paddd %xmm15,%xmm11 + pslld $5,%xmm8 + pxor %xmm13,%xmm6 + + movdqa %xmm12,%xmm9 + paddd %xmm3,%xmm11 + pxor %xmm1,%xmm4 + psrld $27,%xmm9 + pxor %xmm14,%xmm6 + movdqa %xmm13,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm4,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm11 + paddd %xmm4,%xmm4 + + psrld $2,%xmm13 + paddd %xmm8,%xmm11 + por %xmm5,%xmm4 + por %xmm7,%xmm13 + movdqa %xmm11,%xmm8 + paddd %xmm15,%xmm10 + movdqa %xmm14,%xmm6 + pslld $5,%xmm8 + pxor %xmm12,%xmm6 + + movdqa %xmm11,%xmm9 + paddd %xmm4,%xmm10 + psrld $27,%xmm9 + movdqa %xmm12,%xmm7 + pxor %xmm13,%xmm6 + + pslld $30,%xmm7 + por %xmm9,%xmm8 + paddd %xmm6,%xmm10 + + psrld $2,%xmm12 + paddd %xmm8,%xmm10 + por %xmm7,%xmm12 + movdqa (%rbx),%xmm0 + movl $1,%ecx + cmpl 0(%rbx),%ecx + pxor %xmm8,%xmm8 + cmovgeq %rbp,%r8 + cmpl 4(%rbx),%ecx + movdqa %xmm0,%xmm1 + cmovgeq %rbp,%r9 + cmpl 8(%rbx),%ecx + pcmpgtd %xmm8,%xmm1 + cmovgeq %rbp,%r10 + cmpl 12(%rbx),%ecx + paddd %xmm1,%xmm0 + cmovgeq %rbp,%r11 + + movdqu 0(%rdi),%xmm6 + pand %xmm1,%xmm10 + movdqu 32(%rdi),%xmm7 + pand %xmm1,%xmm11 + paddd %xmm6,%xmm10 + movdqu 64(%rdi),%xmm8 + pand %xmm1,%xmm12 + paddd %xmm7,%xmm11 + movdqu 96(%rdi),%xmm9 + pand %xmm1,%xmm13 + paddd %xmm8,%xmm12 + movdqu 128(%rdi),%xmm5 + pand %xmm1,%xmm14 + movdqu %xmm10,0(%rdi) + paddd %xmm9,%xmm13 + movdqu %xmm11,32(%rdi) + paddd %xmm5,%xmm14 + movdqu %xmm12,64(%rdi) + movdqu %xmm13,96(%rdi) + movdqu %xmm14,128(%rdi) + + movdqa %xmm0,(%rbx) + movdqa 96(%rbp),%xmm5 + movdqa -32(%rbp),%xmm15 + decl %edx + jnz .Loop + + movl 280(%rsp),%edx + leaq 16(%rdi),%rdi + leaq 64(%rsi),%rsi + decl %edx + jnz .Loop_grande + +.Ldone: + movq 272(%rsp),%rax +.cfi_def_cfa %rax,8 + movq -16(%rax),%rbp +.cfi_restore %rbp + movq -8(%rax),%rbx +.cfi_restore %rbx + leaq (%rax),%rsp +.cfi_def_cfa_register %rsp +.Lepilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size sha1_multi_block,.-sha1_multi_block +.type sha1_multi_block_shaext,@function +.align 32 +sha1_multi_block_shaext: +.cfi_startproc +_shaext_shortcut: + movq %rsp,%rax +.cfi_def_cfa_register %rax + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + subq $288,%rsp + shll $1,%edx + andq $-256,%rsp + leaq 64(%rdi),%rdi + movq %rax,272(%rsp) +.Lbody_shaext: + leaq 256(%rsp),%rbx + movdqa K_XX_XX+128(%rip),%xmm3 + +.Loop_grande_shaext: + movl %edx,280(%rsp) + xorl %edx,%edx + movq 0(%rsi),%r8 + movl 8(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,0(%rbx) + cmovleq %rsp,%r8 + movq 16(%rsi),%r9 + movl 24(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,4(%rbx) + cmovleq %rsp,%r9 + testl %edx,%edx + jz .Ldone_shaext + + movq 0-64(%rdi),%xmm0 + movq 32-64(%rdi),%xmm4 + movq 64-64(%rdi),%xmm5 + movq 96-64(%rdi),%xmm6 + movq 128-64(%rdi),%xmm7 + + punpckldq %xmm4,%xmm0 + punpckldq %xmm6,%xmm5 + + movdqa %xmm0,%xmm8 + punpcklqdq %xmm5,%xmm0 + punpckhqdq %xmm5,%xmm8 + + pshufd $63,%xmm7,%xmm1 + pshufd $127,%xmm7,%xmm9 + pshufd $27,%xmm0,%xmm0 + pshufd $27,%xmm8,%xmm8 + jmp .Loop_shaext + +.align 32 +.Loop_shaext: + movdqu 0(%r8),%xmm4 + movdqu 0(%r9),%xmm11 + movdqu 16(%r8),%xmm5 + movdqu 16(%r9),%xmm12 + movdqu 32(%r8),%xmm6 +.byte 102,15,56,0,227 + movdqu 32(%r9),%xmm13 +.byte 102,68,15,56,0,219 + movdqu 48(%r8),%xmm7 + leaq 64(%r8),%r8 +.byte 102,15,56,0,235 + movdqu 48(%r9),%xmm14 + leaq 64(%r9),%r9 +.byte 102,68,15,56,0,227 + + movdqa %xmm1,80(%rsp) + paddd %xmm4,%xmm1 + movdqa %xmm9,112(%rsp) + paddd %xmm11,%xmm9 + movdqa %xmm0,64(%rsp) + movdqa %xmm0,%xmm2 + movdqa %xmm8,96(%rsp) + movdqa %xmm8,%xmm10 +.byte 15,58,204,193,0 +.byte 15,56,200,213 +.byte 69,15,58,204,193,0 +.byte 69,15,56,200,212 +.byte 102,15,56,0,243 + prefetcht0 127(%r8) +.byte 15,56,201,229 +.byte 102,68,15,56,0,235 + prefetcht0 127(%r9) +.byte 69,15,56,201,220 + +.byte 102,15,56,0,251 + movdqa %xmm0,%xmm1 +.byte 102,68,15,56,0,243 + movdqa %xmm8,%xmm9 +.byte 15,58,204,194,0 +.byte 15,56,200,206 +.byte 69,15,58,204,194,0 +.byte 69,15,56,200,205 + pxor %xmm6,%xmm4 +.byte 15,56,201,238 + pxor %xmm13,%xmm11 +.byte 69,15,56,201,229 + movdqa %xmm0,%xmm2 + movdqa %xmm8,%xmm10 +.byte 15,58,204,193,0 +.byte 15,56,200,215 +.byte 69,15,58,204,193,0 +.byte 69,15,56,200,214 +.byte 15,56,202,231 +.byte 69,15,56,202,222 + pxor %xmm7,%xmm5 +.byte 15,56,201,247 + pxor %xmm14,%xmm12 +.byte 69,15,56,201,238 + movdqa %xmm0,%xmm1 + movdqa %xmm8,%xmm9 +.byte 15,58,204,194,0 +.byte 15,56,200,204 +.byte 69,15,58,204,194,0 +.byte 69,15,56,200,203 +.byte 15,56,202,236 +.byte 69,15,56,202,227 + pxor %xmm4,%xmm6 +.byte 15,56,201,252 + pxor %xmm11,%xmm13 +.byte 69,15,56,201,243 + movdqa %xmm0,%xmm2 + movdqa %xmm8,%xmm10 +.byte 15,58,204,193,0 +.byte 15,56,200,213 +.byte 69,15,58,204,193,0 +.byte 69,15,56,200,212 +.byte 15,56,202,245 +.byte 69,15,56,202,236 + pxor %xmm5,%xmm7 +.byte 15,56,201,229 + pxor %xmm12,%xmm14 +.byte 69,15,56,201,220 + movdqa %xmm0,%xmm1 + movdqa %xmm8,%xmm9 +.byte 15,58,204,194,1 +.byte 15,56,200,206 +.byte 69,15,58,204,194,1 +.byte 69,15,56,200,205 +.byte 15,56,202,254 +.byte 69,15,56,202,245 + pxor %xmm6,%xmm4 +.byte 15,56,201,238 + pxor %xmm13,%xmm11 +.byte 69,15,56,201,229 + movdqa %xmm0,%xmm2 + movdqa %xmm8,%xmm10 +.byte 15,58,204,193,1 +.byte 15,56,200,215 +.byte 69,15,58,204,193,1 +.byte 69,15,56,200,214 +.byte 15,56,202,231 +.byte 69,15,56,202,222 + pxor %xmm7,%xmm5 +.byte 15,56,201,247 + pxor %xmm14,%xmm12 +.byte 69,15,56,201,238 + movdqa %xmm0,%xmm1 + movdqa %xmm8,%xmm9 +.byte 15,58,204,194,1 +.byte 15,56,200,204 +.byte 69,15,58,204,194,1 +.byte 69,15,56,200,203 +.byte 15,56,202,236 +.byte 69,15,56,202,227 + pxor %xmm4,%xmm6 +.byte 15,56,201,252 + pxor %xmm11,%xmm13 +.byte 69,15,56,201,243 + movdqa %xmm0,%xmm2 + movdqa %xmm8,%xmm10 +.byte 15,58,204,193,1 +.byte 15,56,200,213 +.byte 69,15,58,204,193,1 +.byte 69,15,56,200,212 +.byte 15,56,202,245 +.byte 69,15,56,202,236 + pxor %xmm5,%xmm7 +.byte 15,56,201,229 + pxor %xmm12,%xmm14 +.byte 69,15,56,201,220 + movdqa %xmm0,%xmm1 + movdqa %xmm8,%xmm9 +.byte 15,58,204,194,1 +.byte 15,56,200,206 +.byte 69,15,58,204,194,1 +.byte 69,15,56,200,205 +.byte 15,56,202,254 +.byte 69,15,56,202,245 + pxor %xmm6,%xmm4 +.byte 15,56,201,238 + pxor %xmm13,%xmm11 +.byte 69,15,56,201,229 + movdqa %xmm0,%xmm2 + movdqa %xmm8,%xmm10 +.byte 15,58,204,193,2 +.byte 15,56,200,215 +.byte 69,15,58,204,193,2 +.byte 69,15,56,200,214 +.byte 15,56,202,231 +.byte 69,15,56,202,222 + pxor %xmm7,%xmm5 +.byte 15,56,201,247 + pxor %xmm14,%xmm12 +.byte 69,15,56,201,238 + movdqa %xmm0,%xmm1 + movdqa %xmm8,%xmm9 +.byte 15,58,204,194,2 +.byte 15,56,200,204 +.byte 69,15,58,204,194,2 +.byte 69,15,56,200,203 +.byte 15,56,202,236 +.byte 69,15,56,202,227 + pxor %xmm4,%xmm6 +.byte 15,56,201,252 + pxor %xmm11,%xmm13 +.byte 69,15,56,201,243 + movdqa %xmm0,%xmm2 + movdqa %xmm8,%xmm10 +.byte 15,58,204,193,2 +.byte 15,56,200,213 +.byte 69,15,58,204,193,2 +.byte 69,15,56,200,212 +.byte 15,56,202,245 +.byte 69,15,56,202,236 + pxor %xmm5,%xmm7 +.byte 15,56,201,229 + pxor %xmm12,%xmm14 +.byte 69,15,56,201,220 + movdqa %xmm0,%xmm1 + movdqa %xmm8,%xmm9 +.byte 15,58,204,194,2 +.byte 15,56,200,206 +.byte 69,15,58,204,194,2 +.byte 69,15,56,200,205 +.byte 15,56,202,254 +.byte 69,15,56,202,245 + pxor %xmm6,%xmm4 +.byte 15,56,201,238 + pxor %xmm13,%xmm11 +.byte 69,15,56,201,229 + movdqa %xmm0,%xmm2 + movdqa %xmm8,%xmm10 +.byte 15,58,204,193,2 +.byte 15,56,200,215 +.byte 69,15,58,204,193,2 +.byte 69,15,56,200,214 +.byte 15,56,202,231 +.byte 69,15,56,202,222 + pxor %xmm7,%xmm5 +.byte 15,56,201,247 + pxor %xmm14,%xmm12 +.byte 69,15,56,201,238 + movdqa %xmm0,%xmm1 + movdqa %xmm8,%xmm9 +.byte 15,58,204,194,3 +.byte 15,56,200,204 +.byte 69,15,58,204,194,3 +.byte 69,15,56,200,203 +.byte 15,56,202,236 +.byte 69,15,56,202,227 + pxor %xmm4,%xmm6 +.byte 15,56,201,252 + pxor %xmm11,%xmm13 +.byte 69,15,56,201,243 + movdqa %xmm0,%xmm2 + movdqa %xmm8,%xmm10 +.byte 15,58,204,193,3 +.byte 15,56,200,213 +.byte 69,15,58,204,193,3 +.byte 69,15,56,200,212 +.byte 15,56,202,245 +.byte 69,15,56,202,236 + pxor %xmm5,%xmm7 + pxor %xmm12,%xmm14 + + movl $1,%ecx + pxor %xmm4,%xmm4 + cmpl 0(%rbx),%ecx + cmovgeq %rsp,%r8 + + movdqa %xmm0,%xmm1 + movdqa %xmm8,%xmm9 +.byte 15,58,204,194,3 +.byte 15,56,200,206 +.byte 69,15,58,204,194,3 +.byte 69,15,56,200,205 +.byte 15,56,202,254 +.byte 69,15,56,202,245 + + cmpl 4(%rbx),%ecx + cmovgeq %rsp,%r9 + movq (%rbx),%xmm6 + + movdqa %xmm0,%xmm2 + movdqa %xmm8,%xmm10 +.byte 15,58,204,193,3 +.byte 15,56,200,215 +.byte 69,15,58,204,193,3 +.byte 69,15,56,200,214 + + pshufd $0x00,%xmm6,%xmm11 + pshufd $0x55,%xmm6,%xmm12 + movdqa %xmm6,%xmm7 + pcmpgtd %xmm4,%xmm11 + pcmpgtd %xmm4,%xmm12 + + movdqa %xmm0,%xmm1 + movdqa %xmm8,%xmm9 +.byte 15,58,204,194,3 +.byte 15,56,200,204 +.byte 69,15,58,204,194,3 +.byte 68,15,56,200,204 + + pcmpgtd %xmm4,%xmm7 + pand %xmm11,%xmm0 + pand %xmm11,%xmm1 + pand %xmm12,%xmm8 + pand %xmm12,%xmm9 + paddd %xmm7,%xmm6 + + paddd 64(%rsp),%xmm0 + paddd 80(%rsp),%xmm1 + paddd 96(%rsp),%xmm8 + paddd 112(%rsp),%xmm9 + + movq %xmm6,(%rbx) + decl %edx + jnz .Loop_shaext + + movl 280(%rsp),%edx + + pshufd $27,%xmm0,%xmm0 + pshufd $27,%xmm8,%xmm8 + + movdqa %xmm0,%xmm6 + punpckldq %xmm8,%xmm0 + punpckhdq %xmm8,%xmm6 + punpckhdq %xmm9,%xmm1 + movq %xmm0,0-64(%rdi) + psrldq $8,%xmm0 + movq %xmm6,64-64(%rdi) + psrldq $8,%xmm6 + movq %xmm0,32-64(%rdi) + psrldq $8,%xmm1 + movq %xmm6,96-64(%rdi) + movq %xmm1,128-64(%rdi) + + leaq 8(%rdi),%rdi + leaq 32(%rsi),%rsi + decl %edx + jnz .Loop_grande_shaext + +.Ldone_shaext: + + movq -16(%rax),%rbp +.cfi_restore %rbp + movq -8(%rax),%rbx +.cfi_restore %rbx + leaq (%rax),%rsp +.cfi_def_cfa_register %rsp +.Lepilogue_shaext: + .byte 0xf3,0xc3 +.cfi_endproc +.size sha1_multi_block_shaext,.-sha1_multi_block_shaext +.type sha1_multi_block_avx,@function +.align 32 +sha1_multi_block_avx: +.cfi_startproc +_avx_shortcut: + shrq $32,%rcx + cmpl $2,%edx + jb .Lavx + testl $32,%ecx + jnz _avx2_shortcut + jmp .Lavx +.align 32 +.Lavx: + movq %rsp,%rax +.cfi_def_cfa_register %rax + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + subq $288,%rsp + andq $-256,%rsp + movq %rax,272(%rsp) +.cfi_escape 0x0f,0x06,0x77,0x90,0x02,0x06,0x23,0x08 +.Lbody_avx: + leaq K_XX_XX(%rip),%rbp + leaq 256(%rsp),%rbx + + vzeroupper +.Loop_grande_avx: + movl %edx,280(%rsp) + xorl %edx,%edx + movq 0(%rsi),%r8 + movl 8(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,0(%rbx) + cmovleq %rbp,%r8 + movq 16(%rsi),%r9 + movl 24(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,4(%rbx) + cmovleq %rbp,%r9 + movq 32(%rsi),%r10 + movl 40(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,8(%rbx) + cmovleq %rbp,%r10 + movq 48(%rsi),%r11 + movl 56(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,12(%rbx) + cmovleq %rbp,%r11 + testl %edx,%edx + jz .Ldone_avx + + vmovdqu 0(%rdi),%xmm10 + leaq 128(%rsp),%rax + vmovdqu 32(%rdi),%xmm11 + vmovdqu 64(%rdi),%xmm12 + vmovdqu 96(%rdi),%xmm13 + vmovdqu 128(%rdi),%xmm14 + vmovdqu 96(%rbp),%xmm5 + jmp .Loop_avx + +.align 32 +.Loop_avx: + vmovdqa -32(%rbp),%xmm15 + vmovd (%r8),%xmm0 + leaq 64(%r8),%r8 + vmovd (%r9),%xmm2 + leaq 64(%r9),%r9 + vpinsrd $1,(%r10),%xmm0,%xmm0 + leaq 64(%r10),%r10 + vpinsrd $1,(%r11),%xmm2,%xmm2 + leaq 64(%r11),%r11 + vmovd -60(%r8),%xmm1 + vpunpckldq %xmm2,%xmm0,%xmm0 + vmovd -60(%r9),%xmm9 + vpshufb %xmm5,%xmm0,%xmm0 + vpinsrd $1,-60(%r10),%xmm1,%xmm1 + vpinsrd $1,-60(%r11),%xmm9,%xmm9 + vpaddd %xmm15,%xmm14,%xmm14 + vpslld $5,%xmm10,%xmm8 + vpandn %xmm13,%xmm11,%xmm7 + vpand %xmm12,%xmm11,%xmm6 + + vmovdqa %xmm0,0-128(%rax) + vpaddd %xmm0,%xmm14,%xmm14 + vpunpckldq %xmm9,%xmm1,%xmm1 + vpsrld $27,%xmm10,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vmovd -56(%r8),%xmm2 + + vpslld $30,%xmm11,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vmovd -56(%r9),%xmm9 + vpaddd %xmm6,%xmm14,%xmm14 + + vpsrld $2,%xmm11,%xmm11 + vpaddd %xmm8,%xmm14,%xmm14 + vpshufb %xmm5,%xmm1,%xmm1 + vpor %xmm7,%xmm11,%xmm11 + vpinsrd $1,-56(%r10),%xmm2,%xmm2 + vpinsrd $1,-56(%r11),%xmm9,%xmm9 + vpaddd %xmm15,%xmm13,%xmm13 + vpslld $5,%xmm14,%xmm8 + vpandn %xmm12,%xmm10,%xmm7 + vpand %xmm11,%xmm10,%xmm6 + + vmovdqa %xmm1,16-128(%rax) + vpaddd %xmm1,%xmm13,%xmm13 + vpunpckldq %xmm9,%xmm2,%xmm2 + vpsrld $27,%xmm14,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vmovd -52(%r8),%xmm3 + + vpslld $30,%xmm10,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vmovd -52(%r9),%xmm9 + vpaddd %xmm6,%xmm13,%xmm13 + + vpsrld $2,%xmm10,%xmm10 + vpaddd %xmm8,%xmm13,%xmm13 + vpshufb %xmm5,%xmm2,%xmm2 + vpor %xmm7,%xmm10,%xmm10 + vpinsrd $1,-52(%r10),%xmm3,%xmm3 + vpinsrd $1,-52(%r11),%xmm9,%xmm9 + vpaddd %xmm15,%xmm12,%xmm12 + vpslld $5,%xmm13,%xmm8 + vpandn %xmm11,%xmm14,%xmm7 + vpand %xmm10,%xmm14,%xmm6 + + vmovdqa %xmm2,32-128(%rax) + vpaddd %xmm2,%xmm12,%xmm12 + vpunpckldq %xmm9,%xmm3,%xmm3 + vpsrld $27,%xmm13,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vmovd -48(%r8),%xmm4 + + vpslld $30,%xmm14,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vmovd -48(%r9),%xmm9 + vpaddd %xmm6,%xmm12,%xmm12 + + vpsrld $2,%xmm14,%xmm14 + vpaddd %xmm8,%xmm12,%xmm12 + vpshufb %xmm5,%xmm3,%xmm3 + vpor %xmm7,%xmm14,%xmm14 + vpinsrd $1,-48(%r10),%xmm4,%xmm4 + vpinsrd $1,-48(%r11),%xmm9,%xmm9 + vpaddd %xmm15,%xmm11,%xmm11 + vpslld $5,%xmm12,%xmm8 + vpandn %xmm10,%xmm13,%xmm7 + vpand %xmm14,%xmm13,%xmm6 + + vmovdqa %xmm3,48-128(%rax) + vpaddd %xmm3,%xmm11,%xmm11 + vpunpckldq %xmm9,%xmm4,%xmm4 + vpsrld $27,%xmm12,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vmovd -44(%r8),%xmm0 + + vpslld $30,%xmm13,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vmovd -44(%r9),%xmm9 + vpaddd %xmm6,%xmm11,%xmm11 + + vpsrld $2,%xmm13,%xmm13 + vpaddd %xmm8,%xmm11,%xmm11 + vpshufb %xmm5,%xmm4,%xmm4 + vpor %xmm7,%xmm13,%xmm13 + vpinsrd $1,-44(%r10),%xmm0,%xmm0 + vpinsrd $1,-44(%r11),%xmm9,%xmm9 + vpaddd %xmm15,%xmm10,%xmm10 + vpslld $5,%xmm11,%xmm8 + vpandn %xmm14,%xmm12,%xmm7 + vpand %xmm13,%xmm12,%xmm6 + + vmovdqa %xmm4,64-128(%rax) + vpaddd %xmm4,%xmm10,%xmm10 + vpunpckldq %xmm9,%xmm0,%xmm0 + vpsrld $27,%xmm11,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vmovd -40(%r8),%xmm1 + + vpslld $30,%xmm12,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vmovd -40(%r9),%xmm9 + vpaddd %xmm6,%xmm10,%xmm10 + + vpsrld $2,%xmm12,%xmm12 + vpaddd %xmm8,%xmm10,%xmm10 + vpshufb %xmm5,%xmm0,%xmm0 + vpor %xmm7,%xmm12,%xmm12 + vpinsrd $1,-40(%r10),%xmm1,%xmm1 + vpinsrd $1,-40(%r11),%xmm9,%xmm9 + vpaddd %xmm15,%xmm14,%xmm14 + vpslld $5,%xmm10,%xmm8 + vpandn %xmm13,%xmm11,%xmm7 + vpand %xmm12,%xmm11,%xmm6 + + vmovdqa %xmm0,80-128(%rax) + vpaddd %xmm0,%xmm14,%xmm14 + vpunpckldq %xmm9,%xmm1,%xmm1 + vpsrld $27,%xmm10,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vmovd -36(%r8),%xmm2 + + vpslld $30,%xmm11,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vmovd -36(%r9),%xmm9 + vpaddd %xmm6,%xmm14,%xmm14 + + vpsrld $2,%xmm11,%xmm11 + vpaddd %xmm8,%xmm14,%xmm14 + vpshufb %xmm5,%xmm1,%xmm1 + vpor %xmm7,%xmm11,%xmm11 + vpinsrd $1,-36(%r10),%xmm2,%xmm2 + vpinsrd $1,-36(%r11),%xmm9,%xmm9 + vpaddd %xmm15,%xmm13,%xmm13 + vpslld $5,%xmm14,%xmm8 + vpandn %xmm12,%xmm10,%xmm7 + vpand %xmm11,%xmm10,%xmm6 + + vmovdqa %xmm1,96-128(%rax) + vpaddd %xmm1,%xmm13,%xmm13 + vpunpckldq %xmm9,%xmm2,%xmm2 + vpsrld $27,%xmm14,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vmovd -32(%r8),%xmm3 + + vpslld $30,%xmm10,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vmovd -32(%r9),%xmm9 + vpaddd %xmm6,%xmm13,%xmm13 + + vpsrld $2,%xmm10,%xmm10 + vpaddd %xmm8,%xmm13,%xmm13 + vpshufb %xmm5,%xmm2,%xmm2 + vpor %xmm7,%xmm10,%xmm10 + vpinsrd $1,-32(%r10),%xmm3,%xmm3 + vpinsrd $1,-32(%r11),%xmm9,%xmm9 + vpaddd %xmm15,%xmm12,%xmm12 + vpslld $5,%xmm13,%xmm8 + vpandn %xmm11,%xmm14,%xmm7 + vpand %xmm10,%xmm14,%xmm6 + + vmovdqa %xmm2,112-128(%rax) + vpaddd %xmm2,%xmm12,%xmm12 + vpunpckldq %xmm9,%xmm3,%xmm3 + vpsrld $27,%xmm13,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vmovd -28(%r8),%xmm4 + + vpslld $30,%xmm14,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vmovd -28(%r9),%xmm9 + vpaddd %xmm6,%xmm12,%xmm12 + + vpsrld $2,%xmm14,%xmm14 + vpaddd %xmm8,%xmm12,%xmm12 + vpshufb %xmm5,%xmm3,%xmm3 + vpor %xmm7,%xmm14,%xmm14 + vpinsrd $1,-28(%r10),%xmm4,%xmm4 + vpinsrd $1,-28(%r11),%xmm9,%xmm9 + vpaddd %xmm15,%xmm11,%xmm11 + vpslld $5,%xmm12,%xmm8 + vpandn %xmm10,%xmm13,%xmm7 + vpand %xmm14,%xmm13,%xmm6 + + vmovdqa %xmm3,128-128(%rax) + vpaddd %xmm3,%xmm11,%xmm11 + vpunpckldq %xmm9,%xmm4,%xmm4 + vpsrld $27,%xmm12,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vmovd -24(%r8),%xmm0 + + vpslld $30,%xmm13,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vmovd -24(%r9),%xmm9 + vpaddd %xmm6,%xmm11,%xmm11 + + vpsrld $2,%xmm13,%xmm13 + vpaddd %xmm8,%xmm11,%xmm11 + vpshufb %xmm5,%xmm4,%xmm4 + vpor %xmm7,%xmm13,%xmm13 + vpinsrd $1,-24(%r10),%xmm0,%xmm0 + vpinsrd $1,-24(%r11),%xmm9,%xmm9 + vpaddd %xmm15,%xmm10,%xmm10 + vpslld $5,%xmm11,%xmm8 + vpandn %xmm14,%xmm12,%xmm7 + vpand %xmm13,%xmm12,%xmm6 + + vmovdqa %xmm4,144-128(%rax) + vpaddd %xmm4,%xmm10,%xmm10 + vpunpckldq %xmm9,%xmm0,%xmm0 + vpsrld $27,%xmm11,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vmovd -20(%r8),%xmm1 + + vpslld $30,%xmm12,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vmovd -20(%r9),%xmm9 + vpaddd %xmm6,%xmm10,%xmm10 + + vpsrld $2,%xmm12,%xmm12 + vpaddd %xmm8,%xmm10,%xmm10 + vpshufb %xmm5,%xmm0,%xmm0 + vpor %xmm7,%xmm12,%xmm12 + vpinsrd $1,-20(%r10),%xmm1,%xmm1 + vpinsrd $1,-20(%r11),%xmm9,%xmm9 + vpaddd %xmm15,%xmm14,%xmm14 + vpslld $5,%xmm10,%xmm8 + vpandn %xmm13,%xmm11,%xmm7 + vpand %xmm12,%xmm11,%xmm6 + + vmovdqa %xmm0,160-128(%rax) + vpaddd %xmm0,%xmm14,%xmm14 + vpunpckldq %xmm9,%xmm1,%xmm1 + vpsrld $27,%xmm10,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vmovd -16(%r8),%xmm2 + + vpslld $30,%xmm11,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vmovd -16(%r9),%xmm9 + vpaddd %xmm6,%xmm14,%xmm14 + + vpsrld $2,%xmm11,%xmm11 + vpaddd %xmm8,%xmm14,%xmm14 + vpshufb %xmm5,%xmm1,%xmm1 + vpor %xmm7,%xmm11,%xmm11 + vpinsrd $1,-16(%r10),%xmm2,%xmm2 + vpinsrd $1,-16(%r11),%xmm9,%xmm9 + vpaddd %xmm15,%xmm13,%xmm13 + vpslld $5,%xmm14,%xmm8 + vpandn %xmm12,%xmm10,%xmm7 + vpand %xmm11,%xmm10,%xmm6 + + vmovdqa %xmm1,176-128(%rax) + vpaddd %xmm1,%xmm13,%xmm13 + vpunpckldq %xmm9,%xmm2,%xmm2 + vpsrld $27,%xmm14,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vmovd -12(%r8),%xmm3 + + vpslld $30,%xmm10,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vmovd -12(%r9),%xmm9 + vpaddd %xmm6,%xmm13,%xmm13 + + vpsrld $2,%xmm10,%xmm10 + vpaddd %xmm8,%xmm13,%xmm13 + vpshufb %xmm5,%xmm2,%xmm2 + vpor %xmm7,%xmm10,%xmm10 + vpinsrd $1,-12(%r10),%xmm3,%xmm3 + vpinsrd $1,-12(%r11),%xmm9,%xmm9 + vpaddd %xmm15,%xmm12,%xmm12 + vpslld $5,%xmm13,%xmm8 + vpandn %xmm11,%xmm14,%xmm7 + vpand %xmm10,%xmm14,%xmm6 + + vmovdqa %xmm2,192-128(%rax) + vpaddd %xmm2,%xmm12,%xmm12 + vpunpckldq %xmm9,%xmm3,%xmm3 + vpsrld $27,%xmm13,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vmovd -8(%r8),%xmm4 + + vpslld $30,%xmm14,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vmovd -8(%r9),%xmm9 + vpaddd %xmm6,%xmm12,%xmm12 + + vpsrld $2,%xmm14,%xmm14 + vpaddd %xmm8,%xmm12,%xmm12 + vpshufb %xmm5,%xmm3,%xmm3 + vpor %xmm7,%xmm14,%xmm14 + vpinsrd $1,-8(%r10),%xmm4,%xmm4 + vpinsrd $1,-8(%r11),%xmm9,%xmm9 + vpaddd %xmm15,%xmm11,%xmm11 + vpslld $5,%xmm12,%xmm8 + vpandn %xmm10,%xmm13,%xmm7 + vpand %xmm14,%xmm13,%xmm6 + + vmovdqa %xmm3,208-128(%rax) + vpaddd %xmm3,%xmm11,%xmm11 + vpunpckldq %xmm9,%xmm4,%xmm4 + vpsrld $27,%xmm12,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vmovd -4(%r8),%xmm0 + + vpslld $30,%xmm13,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vmovd -4(%r9),%xmm9 + vpaddd %xmm6,%xmm11,%xmm11 + + vpsrld $2,%xmm13,%xmm13 + vpaddd %xmm8,%xmm11,%xmm11 + vpshufb %xmm5,%xmm4,%xmm4 + vpor %xmm7,%xmm13,%xmm13 + vmovdqa 0-128(%rax),%xmm1 + vpinsrd $1,-4(%r10),%xmm0,%xmm0 + vpinsrd $1,-4(%r11),%xmm9,%xmm9 + vpaddd %xmm15,%xmm10,%xmm10 + prefetcht0 63(%r8) + vpslld $5,%xmm11,%xmm8 + vpandn %xmm14,%xmm12,%xmm7 + vpand %xmm13,%xmm12,%xmm6 + + vmovdqa %xmm4,224-128(%rax) + vpaddd %xmm4,%xmm10,%xmm10 + vpunpckldq %xmm9,%xmm0,%xmm0 + vpsrld $27,%xmm11,%xmm9 + prefetcht0 63(%r9) + vpxor %xmm7,%xmm6,%xmm6 + + vpslld $30,%xmm12,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + prefetcht0 63(%r10) + vpaddd %xmm6,%xmm10,%xmm10 + + vpsrld $2,%xmm12,%xmm12 + vpaddd %xmm8,%xmm10,%xmm10 + prefetcht0 63(%r11) + vpshufb %xmm5,%xmm0,%xmm0 + vpor %xmm7,%xmm12,%xmm12 + vmovdqa 16-128(%rax),%xmm2 + vpxor %xmm3,%xmm1,%xmm1 + vmovdqa 32-128(%rax),%xmm3 + + vpaddd %xmm15,%xmm14,%xmm14 + vpslld $5,%xmm10,%xmm8 + vpandn %xmm13,%xmm11,%xmm7 + + vpand %xmm12,%xmm11,%xmm6 + + vmovdqa %xmm0,240-128(%rax) + vpaddd %xmm0,%xmm14,%xmm14 + vpxor 128-128(%rax),%xmm1,%xmm1 + vpsrld $27,%xmm10,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vpxor %xmm3,%xmm1,%xmm1 + + + vpslld $30,%xmm11,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm14,%xmm14 + + vpsrld $31,%xmm1,%xmm5 + vpaddd %xmm1,%xmm1,%xmm1 + + vpsrld $2,%xmm11,%xmm11 + + vpaddd %xmm8,%xmm14,%xmm14 + vpor %xmm5,%xmm1,%xmm1 + vpor %xmm7,%xmm11,%xmm11 + vpxor %xmm4,%xmm2,%xmm2 + vmovdqa 48-128(%rax),%xmm4 + + vpaddd %xmm15,%xmm13,%xmm13 + vpslld $5,%xmm14,%xmm8 + vpandn %xmm12,%xmm10,%xmm7 + + vpand %xmm11,%xmm10,%xmm6 + + vmovdqa %xmm1,0-128(%rax) + vpaddd %xmm1,%xmm13,%xmm13 + vpxor 144-128(%rax),%xmm2,%xmm2 + vpsrld $27,%xmm14,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vpxor %xmm4,%xmm2,%xmm2 + + + vpslld $30,%xmm10,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm13,%xmm13 + + vpsrld $31,%xmm2,%xmm5 + vpaddd %xmm2,%xmm2,%xmm2 + + vpsrld $2,%xmm10,%xmm10 + + vpaddd %xmm8,%xmm13,%xmm13 + vpor %xmm5,%xmm2,%xmm2 + vpor %xmm7,%xmm10,%xmm10 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqa 64-128(%rax),%xmm0 + + vpaddd %xmm15,%xmm12,%xmm12 + vpslld $5,%xmm13,%xmm8 + vpandn %xmm11,%xmm14,%xmm7 + + vpand %xmm10,%xmm14,%xmm6 + + vmovdqa %xmm2,16-128(%rax) + vpaddd %xmm2,%xmm12,%xmm12 + vpxor 160-128(%rax),%xmm3,%xmm3 + vpsrld $27,%xmm13,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vpxor %xmm0,%xmm3,%xmm3 + + + vpslld $30,%xmm14,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm12,%xmm12 + + vpsrld $31,%xmm3,%xmm5 + vpaddd %xmm3,%xmm3,%xmm3 + + vpsrld $2,%xmm14,%xmm14 + + vpaddd %xmm8,%xmm12,%xmm12 + vpor %xmm5,%xmm3,%xmm3 + vpor %xmm7,%xmm14,%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vmovdqa 80-128(%rax),%xmm1 + + vpaddd %xmm15,%xmm11,%xmm11 + vpslld $5,%xmm12,%xmm8 + vpandn %xmm10,%xmm13,%xmm7 + + vpand %xmm14,%xmm13,%xmm6 + + vmovdqa %xmm3,32-128(%rax) + vpaddd %xmm3,%xmm11,%xmm11 + vpxor 176-128(%rax),%xmm4,%xmm4 + vpsrld $27,%xmm12,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm4 + + + vpslld $30,%xmm13,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm11,%xmm11 + + vpsrld $31,%xmm4,%xmm5 + vpaddd %xmm4,%xmm4,%xmm4 + + vpsrld $2,%xmm13,%xmm13 + + vpaddd %xmm8,%xmm11,%xmm11 + vpor %xmm5,%xmm4,%xmm4 + vpor %xmm7,%xmm13,%xmm13 + vpxor %xmm2,%xmm0,%xmm0 + vmovdqa 96-128(%rax),%xmm2 + + vpaddd %xmm15,%xmm10,%xmm10 + vpslld $5,%xmm11,%xmm8 + vpandn %xmm14,%xmm12,%xmm7 + + vpand %xmm13,%xmm12,%xmm6 + + vmovdqa %xmm4,48-128(%rax) + vpaddd %xmm4,%xmm10,%xmm10 + vpxor 192-128(%rax),%xmm0,%xmm0 + vpsrld $27,%xmm11,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vpxor %xmm2,%xmm0,%xmm0 + + + vpslld $30,%xmm12,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm10,%xmm10 + + vpsrld $31,%xmm0,%xmm5 + vpaddd %xmm0,%xmm0,%xmm0 + + vpsrld $2,%xmm12,%xmm12 + + vpaddd %xmm8,%xmm10,%xmm10 + vpor %xmm5,%xmm0,%xmm0 + vpor %xmm7,%xmm12,%xmm12 + vmovdqa 0(%rbp),%xmm15 + vpxor %xmm3,%xmm1,%xmm1 + vmovdqa 112-128(%rax),%xmm3 + + vpslld $5,%xmm10,%xmm8 + vpaddd %xmm15,%xmm14,%xmm14 + vpxor %xmm11,%xmm13,%xmm6 + vmovdqa %xmm0,64-128(%rax) + vpaddd %xmm0,%xmm14,%xmm14 + vpxor 208-128(%rax),%xmm1,%xmm1 + vpsrld $27,%xmm10,%xmm9 + vpxor %xmm12,%xmm6,%xmm6 + vpxor %xmm3,%xmm1,%xmm1 + + vpslld $30,%xmm11,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm14,%xmm14 + vpsrld $31,%xmm1,%xmm5 + vpaddd %xmm1,%xmm1,%xmm1 + + vpsrld $2,%xmm11,%xmm11 + vpaddd %xmm8,%xmm14,%xmm14 + vpor %xmm5,%xmm1,%xmm1 + vpor %xmm7,%xmm11,%xmm11 + vpxor %xmm4,%xmm2,%xmm2 + vmovdqa 128-128(%rax),%xmm4 + + vpslld $5,%xmm14,%xmm8 + vpaddd %xmm15,%xmm13,%xmm13 + vpxor %xmm10,%xmm12,%xmm6 + vmovdqa %xmm1,80-128(%rax) + vpaddd %xmm1,%xmm13,%xmm13 + vpxor 224-128(%rax),%xmm2,%xmm2 + vpsrld $27,%xmm14,%xmm9 + vpxor %xmm11,%xmm6,%xmm6 + vpxor %xmm4,%xmm2,%xmm2 + + vpslld $30,%xmm10,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm13,%xmm13 + vpsrld $31,%xmm2,%xmm5 + vpaddd %xmm2,%xmm2,%xmm2 + + vpsrld $2,%xmm10,%xmm10 + vpaddd %xmm8,%xmm13,%xmm13 + vpor %xmm5,%xmm2,%xmm2 + vpor %xmm7,%xmm10,%xmm10 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqa 144-128(%rax),%xmm0 + + vpslld $5,%xmm13,%xmm8 + vpaddd %xmm15,%xmm12,%xmm12 + vpxor %xmm14,%xmm11,%xmm6 + vmovdqa %xmm2,96-128(%rax) + vpaddd %xmm2,%xmm12,%xmm12 + vpxor 240-128(%rax),%xmm3,%xmm3 + vpsrld $27,%xmm13,%xmm9 + vpxor %xmm10,%xmm6,%xmm6 + vpxor %xmm0,%xmm3,%xmm3 + + vpslld $30,%xmm14,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm12,%xmm12 + vpsrld $31,%xmm3,%xmm5 + vpaddd %xmm3,%xmm3,%xmm3 + + vpsrld $2,%xmm14,%xmm14 + vpaddd %xmm8,%xmm12,%xmm12 + vpor %xmm5,%xmm3,%xmm3 + vpor %xmm7,%xmm14,%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vmovdqa 160-128(%rax),%xmm1 + + vpslld $5,%xmm12,%xmm8 + vpaddd %xmm15,%xmm11,%xmm11 + vpxor %xmm13,%xmm10,%xmm6 + vmovdqa %xmm3,112-128(%rax) + vpaddd %xmm3,%xmm11,%xmm11 + vpxor 0-128(%rax),%xmm4,%xmm4 + vpsrld $27,%xmm12,%xmm9 + vpxor %xmm14,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm4 + + vpslld $30,%xmm13,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm11,%xmm11 + vpsrld $31,%xmm4,%xmm5 + vpaddd %xmm4,%xmm4,%xmm4 + + vpsrld $2,%xmm13,%xmm13 + vpaddd %xmm8,%xmm11,%xmm11 + vpor %xmm5,%xmm4,%xmm4 + vpor %xmm7,%xmm13,%xmm13 + vpxor %xmm2,%xmm0,%xmm0 + vmovdqa 176-128(%rax),%xmm2 + + vpslld $5,%xmm11,%xmm8 + vpaddd %xmm15,%xmm10,%xmm10 + vpxor %xmm12,%xmm14,%xmm6 + vmovdqa %xmm4,128-128(%rax) + vpaddd %xmm4,%xmm10,%xmm10 + vpxor 16-128(%rax),%xmm0,%xmm0 + vpsrld $27,%xmm11,%xmm9 + vpxor %xmm13,%xmm6,%xmm6 + vpxor %xmm2,%xmm0,%xmm0 + + vpslld $30,%xmm12,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm10,%xmm10 + vpsrld $31,%xmm0,%xmm5 + vpaddd %xmm0,%xmm0,%xmm0 + + vpsrld $2,%xmm12,%xmm12 + vpaddd %xmm8,%xmm10,%xmm10 + vpor %xmm5,%xmm0,%xmm0 + vpor %xmm7,%xmm12,%xmm12 + vpxor %xmm3,%xmm1,%xmm1 + vmovdqa 192-128(%rax),%xmm3 + + vpslld $5,%xmm10,%xmm8 + vpaddd %xmm15,%xmm14,%xmm14 + vpxor %xmm11,%xmm13,%xmm6 + vmovdqa %xmm0,144-128(%rax) + vpaddd %xmm0,%xmm14,%xmm14 + vpxor 32-128(%rax),%xmm1,%xmm1 + vpsrld $27,%xmm10,%xmm9 + vpxor %xmm12,%xmm6,%xmm6 + vpxor %xmm3,%xmm1,%xmm1 + + vpslld $30,%xmm11,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm14,%xmm14 + vpsrld $31,%xmm1,%xmm5 + vpaddd %xmm1,%xmm1,%xmm1 + + vpsrld $2,%xmm11,%xmm11 + vpaddd %xmm8,%xmm14,%xmm14 + vpor %xmm5,%xmm1,%xmm1 + vpor %xmm7,%xmm11,%xmm11 + vpxor %xmm4,%xmm2,%xmm2 + vmovdqa 208-128(%rax),%xmm4 + + vpslld $5,%xmm14,%xmm8 + vpaddd %xmm15,%xmm13,%xmm13 + vpxor %xmm10,%xmm12,%xmm6 + vmovdqa %xmm1,160-128(%rax) + vpaddd %xmm1,%xmm13,%xmm13 + vpxor 48-128(%rax),%xmm2,%xmm2 + vpsrld $27,%xmm14,%xmm9 + vpxor %xmm11,%xmm6,%xmm6 + vpxor %xmm4,%xmm2,%xmm2 + + vpslld $30,%xmm10,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm13,%xmm13 + vpsrld $31,%xmm2,%xmm5 + vpaddd %xmm2,%xmm2,%xmm2 + + vpsrld $2,%xmm10,%xmm10 + vpaddd %xmm8,%xmm13,%xmm13 + vpor %xmm5,%xmm2,%xmm2 + vpor %xmm7,%xmm10,%xmm10 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqa 224-128(%rax),%xmm0 + + vpslld $5,%xmm13,%xmm8 + vpaddd %xmm15,%xmm12,%xmm12 + vpxor %xmm14,%xmm11,%xmm6 + vmovdqa %xmm2,176-128(%rax) + vpaddd %xmm2,%xmm12,%xmm12 + vpxor 64-128(%rax),%xmm3,%xmm3 + vpsrld $27,%xmm13,%xmm9 + vpxor %xmm10,%xmm6,%xmm6 + vpxor %xmm0,%xmm3,%xmm3 + + vpslld $30,%xmm14,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm12,%xmm12 + vpsrld $31,%xmm3,%xmm5 + vpaddd %xmm3,%xmm3,%xmm3 + + vpsrld $2,%xmm14,%xmm14 + vpaddd %xmm8,%xmm12,%xmm12 + vpor %xmm5,%xmm3,%xmm3 + vpor %xmm7,%xmm14,%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vmovdqa 240-128(%rax),%xmm1 + + vpslld $5,%xmm12,%xmm8 + vpaddd %xmm15,%xmm11,%xmm11 + vpxor %xmm13,%xmm10,%xmm6 + vmovdqa %xmm3,192-128(%rax) + vpaddd %xmm3,%xmm11,%xmm11 + vpxor 80-128(%rax),%xmm4,%xmm4 + vpsrld $27,%xmm12,%xmm9 + vpxor %xmm14,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm4 + + vpslld $30,%xmm13,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm11,%xmm11 + vpsrld $31,%xmm4,%xmm5 + vpaddd %xmm4,%xmm4,%xmm4 + + vpsrld $2,%xmm13,%xmm13 + vpaddd %xmm8,%xmm11,%xmm11 + vpor %xmm5,%xmm4,%xmm4 + vpor %xmm7,%xmm13,%xmm13 + vpxor %xmm2,%xmm0,%xmm0 + vmovdqa 0-128(%rax),%xmm2 + + vpslld $5,%xmm11,%xmm8 + vpaddd %xmm15,%xmm10,%xmm10 + vpxor %xmm12,%xmm14,%xmm6 + vmovdqa %xmm4,208-128(%rax) + vpaddd %xmm4,%xmm10,%xmm10 + vpxor 96-128(%rax),%xmm0,%xmm0 + vpsrld $27,%xmm11,%xmm9 + vpxor %xmm13,%xmm6,%xmm6 + vpxor %xmm2,%xmm0,%xmm0 + + vpslld $30,%xmm12,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm10,%xmm10 + vpsrld $31,%xmm0,%xmm5 + vpaddd %xmm0,%xmm0,%xmm0 + + vpsrld $2,%xmm12,%xmm12 + vpaddd %xmm8,%xmm10,%xmm10 + vpor %xmm5,%xmm0,%xmm0 + vpor %xmm7,%xmm12,%xmm12 + vpxor %xmm3,%xmm1,%xmm1 + vmovdqa 16-128(%rax),%xmm3 + + vpslld $5,%xmm10,%xmm8 + vpaddd %xmm15,%xmm14,%xmm14 + vpxor %xmm11,%xmm13,%xmm6 + vmovdqa %xmm0,224-128(%rax) + vpaddd %xmm0,%xmm14,%xmm14 + vpxor 112-128(%rax),%xmm1,%xmm1 + vpsrld $27,%xmm10,%xmm9 + vpxor %xmm12,%xmm6,%xmm6 + vpxor %xmm3,%xmm1,%xmm1 + + vpslld $30,%xmm11,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm14,%xmm14 + vpsrld $31,%xmm1,%xmm5 + vpaddd %xmm1,%xmm1,%xmm1 + + vpsrld $2,%xmm11,%xmm11 + vpaddd %xmm8,%xmm14,%xmm14 + vpor %xmm5,%xmm1,%xmm1 + vpor %xmm7,%xmm11,%xmm11 + vpxor %xmm4,%xmm2,%xmm2 + vmovdqa 32-128(%rax),%xmm4 + + vpslld $5,%xmm14,%xmm8 + vpaddd %xmm15,%xmm13,%xmm13 + vpxor %xmm10,%xmm12,%xmm6 + vmovdqa %xmm1,240-128(%rax) + vpaddd %xmm1,%xmm13,%xmm13 + vpxor 128-128(%rax),%xmm2,%xmm2 + vpsrld $27,%xmm14,%xmm9 + vpxor %xmm11,%xmm6,%xmm6 + vpxor %xmm4,%xmm2,%xmm2 + + vpslld $30,%xmm10,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm13,%xmm13 + vpsrld $31,%xmm2,%xmm5 + vpaddd %xmm2,%xmm2,%xmm2 + + vpsrld $2,%xmm10,%xmm10 + vpaddd %xmm8,%xmm13,%xmm13 + vpor %xmm5,%xmm2,%xmm2 + vpor %xmm7,%xmm10,%xmm10 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqa 48-128(%rax),%xmm0 + + vpslld $5,%xmm13,%xmm8 + vpaddd %xmm15,%xmm12,%xmm12 + vpxor %xmm14,%xmm11,%xmm6 + vmovdqa %xmm2,0-128(%rax) + vpaddd %xmm2,%xmm12,%xmm12 + vpxor 144-128(%rax),%xmm3,%xmm3 + vpsrld $27,%xmm13,%xmm9 + vpxor %xmm10,%xmm6,%xmm6 + vpxor %xmm0,%xmm3,%xmm3 + + vpslld $30,%xmm14,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm12,%xmm12 + vpsrld $31,%xmm3,%xmm5 + vpaddd %xmm3,%xmm3,%xmm3 + + vpsrld $2,%xmm14,%xmm14 + vpaddd %xmm8,%xmm12,%xmm12 + vpor %xmm5,%xmm3,%xmm3 + vpor %xmm7,%xmm14,%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vmovdqa 64-128(%rax),%xmm1 + + vpslld $5,%xmm12,%xmm8 + vpaddd %xmm15,%xmm11,%xmm11 + vpxor %xmm13,%xmm10,%xmm6 + vmovdqa %xmm3,16-128(%rax) + vpaddd %xmm3,%xmm11,%xmm11 + vpxor 160-128(%rax),%xmm4,%xmm4 + vpsrld $27,%xmm12,%xmm9 + vpxor %xmm14,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm4 + + vpslld $30,%xmm13,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm11,%xmm11 + vpsrld $31,%xmm4,%xmm5 + vpaddd %xmm4,%xmm4,%xmm4 + + vpsrld $2,%xmm13,%xmm13 + vpaddd %xmm8,%xmm11,%xmm11 + vpor %xmm5,%xmm4,%xmm4 + vpor %xmm7,%xmm13,%xmm13 + vpxor %xmm2,%xmm0,%xmm0 + vmovdqa 80-128(%rax),%xmm2 + + vpslld $5,%xmm11,%xmm8 + vpaddd %xmm15,%xmm10,%xmm10 + vpxor %xmm12,%xmm14,%xmm6 + vmovdqa %xmm4,32-128(%rax) + vpaddd %xmm4,%xmm10,%xmm10 + vpxor 176-128(%rax),%xmm0,%xmm0 + vpsrld $27,%xmm11,%xmm9 + vpxor %xmm13,%xmm6,%xmm6 + vpxor %xmm2,%xmm0,%xmm0 + + vpslld $30,%xmm12,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm10,%xmm10 + vpsrld $31,%xmm0,%xmm5 + vpaddd %xmm0,%xmm0,%xmm0 + + vpsrld $2,%xmm12,%xmm12 + vpaddd %xmm8,%xmm10,%xmm10 + vpor %xmm5,%xmm0,%xmm0 + vpor %xmm7,%xmm12,%xmm12 + vpxor %xmm3,%xmm1,%xmm1 + vmovdqa 96-128(%rax),%xmm3 + + vpslld $5,%xmm10,%xmm8 + vpaddd %xmm15,%xmm14,%xmm14 + vpxor %xmm11,%xmm13,%xmm6 + vmovdqa %xmm0,48-128(%rax) + vpaddd %xmm0,%xmm14,%xmm14 + vpxor 192-128(%rax),%xmm1,%xmm1 + vpsrld $27,%xmm10,%xmm9 + vpxor %xmm12,%xmm6,%xmm6 + vpxor %xmm3,%xmm1,%xmm1 + + vpslld $30,%xmm11,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm14,%xmm14 + vpsrld $31,%xmm1,%xmm5 + vpaddd %xmm1,%xmm1,%xmm1 + + vpsrld $2,%xmm11,%xmm11 + vpaddd %xmm8,%xmm14,%xmm14 + vpor %xmm5,%xmm1,%xmm1 + vpor %xmm7,%xmm11,%xmm11 + vpxor %xmm4,%xmm2,%xmm2 + vmovdqa 112-128(%rax),%xmm4 + + vpslld $5,%xmm14,%xmm8 + vpaddd %xmm15,%xmm13,%xmm13 + vpxor %xmm10,%xmm12,%xmm6 + vmovdqa %xmm1,64-128(%rax) + vpaddd %xmm1,%xmm13,%xmm13 + vpxor 208-128(%rax),%xmm2,%xmm2 + vpsrld $27,%xmm14,%xmm9 + vpxor %xmm11,%xmm6,%xmm6 + vpxor %xmm4,%xmm2,%xmm2 + + vpslld $30,%xmm10,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm13,%xmm13 + vpsrld $31,%xmm2,%xmm5 + vpaddd %xmm2,%xmm2,%xmm2 + + vpsrld $2,%xmm10,%xmm10 + vpaddd %xmm8,%xmm13,%xmm13 + vpor %xmm5,%xmm2,%xmm2 + vpor %xmm7,%xmm10,%xmm10 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqa 128-128(%rax),%xmm0 + + vpslld $5,%xmm13,%xmm8 + vpaddd %xmm15,%xmm12,%xmm12 + vpxor %xmm14,%xmm11,%xmm6 + vmovdqa %xmm2,80-128(%rax) + vpaddd %xmm2,%xmm12,%xmm12 + vpxor 224-128(%rax),%xmm3,%xmm3 + vpsrld $27,%xmm13,%xmm9 + vpxor %xmm10,%xmm6,%xmm6 + vpxor %xmm0,%xmm3,%xmm3 + + vpslld $30,%xmm14,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm12,%xmm12 + vpsrld $31,%xmm3,%xmm5 + vpaddd %xmm3,%xmm3,%xmm3 + + vpsrld $2,%xmm14,%xmm14 + vpaddd %xmm8,%xmm12,%xmm12 + vpor %xmm5,%xmm3,%xmm3 + vpor %xmm7,%xmm14,%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vmovdqa 144-128(%rax),%xmm1 + + vpslld $5,%xmm12,%xmm8 + vpaddd %xmm15,%xmm11,%xmm11 + vpxor %xmm13,%xmm10,%xmm6 + vmovdqa %xmm3,96-128(%rax) + vpaddd %xmm3,%xmm11,%xmm11 + vpxor 240-128(%rax),%xmm4,%xmm4 + vpsrld $27,%xmm12,%xmm9 + vpxor %xmm14,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm4 + + vpslld $30,%xmm13,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm11,%xmm11 + vpsrld $31,%xmm4,%xmm5 + vpaddd %xmm4,%xmm4,%xmm4 + + vpsrld $2,%xmm13,%xmm13 + vpaddd %xmm8,%xmm11,%xmm11 + vpor %xmm5,%xmm4,%xmm4 + vpor %xmm7,%xmm13,%xmm13 + vpxor %xmm2,%xmm0,%xmm0 + vmovdqa 160-128(%rax),%xmm2 + + vpslld $5,%xmm11,%xmm8 + vpaddd %xmm15,%xmm10,%xmm10 + vpxor %xmm12,%xmm14,%xmm6 + vmovdqa %xmm4,112-128(%rax) + vpaddd %xmm4,%xmm10,%xmm10 + vpxor 0-128(%rax),%xmm0,%xmm0 + vpsrld $27,%xmm11,%xmm9 + vpxor %xmm13,%xmm6,%xmm6 + vpxor %xmm2,%xmm0,%xmm0 + + vpslld $30,%xmm12,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm10,%xmm10 + vpsrld $31,%xmm0,%xmm5 + vpaddd %xmm0,%xmm0,%xmm0 + + vpsrld $2,%xmm12,%xmm12 + vpaddd %xmm8,%xmm10,%xmm10 + vpor %xmm5,%xmm0,%xmm0 + vpor %xmm7,%xmm12,%xmm12 + vmovdqa 32(%rbp),%xmm15 + vpxor %xmm3,%xmm1,%xmm1 + vmovdqa 176-128(%rax),%xmm3 + + vpaddd %xmm15,%xmm14,%xmm14 + vpslld $5,%xmm10,%xmm8 + vpand %xmm12,%xmm13,%xmm7 + vpxor 16-128(%rax),%xmm1,%xmm1 + + vpaddd %xmm7,%xmm14,%xmm14 + vpsrld $27,%xmm10,%xmm9 + vpxor %xmm12,%xmm13,%xmm6 + vpxor %xmm3,%xmm1,%xmm1 + + vmovdqu %xmm0,128-128(%rax) + vpaddd %xmm0,%xmm14,%xmm14 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm1,%xmm5 + vpand %xmm11,%xmm6,%xmm6 + vpaddd %xmm1,%xmm1,%xmm1 + + vpslld $30,%xmm11,%xmm7 + vpaddd %xmm6,%xmm14,%xmm14 + + vpsrld $2,%xmm11,%xmm11 + vpaddd %xmm8,%xmm14,%xmm14 + vpor %xmm5,%xmm1,%xmm1 + vpor %xmm7,%xmm11,%xmm11 + vpxor %xmm4,%xmm2,%xmm2 + vmovdqa 192-128(%rax),%xmm4 + + vpaddd %xmm15,%xmm13,%xmm13 + vpslld $5,%xmm14,%xmm8 + vpand %xmm11,%xmm12,%xmm7 + vpxor 32-128(%rax),%xmm2,%xmm2 + + vpaddd %xmm7,%xmm13,%xmm13 + vpsrld $27,%xmm14,%xmm9 + vpxor %xmm11,%xmm12,%xmm6 + vpxor %xmm4,%xmm2,%xmm2 + + vmovdqu %xmm1,144-128(%rax) + vpaddd %xmm1,%xmm13,%xmm13 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm2,%xmm5 + vpand %xmm10,%xmm6,%xmm6 + vpaddd %xmm2,%xmm2,%xmm2 + + vpslld $30,%xmm10,%xmm7 + vpaddd %xmm6,%xmm13,%xmm13 + + vpsrld $2,%xmm10,%xmm10 + vpaddd %xmm8,%xmm13,%xmm13 + vpor %xmm5,%xmm2,%xmm2 + vpor %xmm7,%xmm10,%xmm10 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqa 208-128(%rax),%xmm0 + + vpaddd %xmm15,%xmm12,%xmm12 + vpslld $5,%xmm13,%xmm8 + vpand %xmm10,%xmm11,%xmm7 + vpxor 48-128(%rax),%xmm3,%xmm3 + + vpaddd %xmm7,%xmm12,%xmm12 + vpsrld $27,%xmm13,%xmm9 + vpxor %xmm10,%xmm11,%xmm6 + vpxor %xmm0,%xmm3,%xmm3 + + vmovdqu %xmm2,160-128(%rax) + vpaddd %xmm2,%xmm12,%xmm12 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm3,%xmm5 + vpand %xmm14,%xmm6,%xmm6 + vpaddd %xmm3,%xmm3,%xmm3 + + vpslld $30,%xmm14,%xmm7 + vpaddd %xmm6,%xmm12,%xmm12 + + vpsrld $2,%xmm14,%xmm14 + vpaddd %xmm8,%xmm12,%xmm12 + vpor %xmm5,%xmm3,%xmm3 + vpor %xmm7,%xmm14,%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vmovdqa 224-128(%rax),%xmm1 + + vpaddd %xmm15,%xmm11,%xmm11 + vpslld $5,%xmm12,%xmm8 + vpand %xmm14,%xmm10,%xmm7 + vpxor 64-128(%rax),%xmm4,%xmm4 + + vpaddd %xmm7,%xmm11,%xmm11 + vpsrld $27,%xmm12,%xmm9 + vpxor %xmm14,%xmm10,%xmm6 + vpxor %xmm1,%xmm4,%xmm4 + + vmovdqu %xmm3,176-128(%rax) + vpaddd %xmm3,%xmm11,%xmm11 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm4,%xmm5 + vpand %xmm13,%xmm6,%xmm6 + vpaddd %xmm4,%xmm4,%xmm4 + + vpslld $30,%xmm13,%xmm7 + vpaddd %xmm6,%xmm11,%xmm11 + + vpsrld $2,%xmm13,%xmm13 + vpaddd %xmm8,%xmm11,%xmm11 + vpor %xmm5,%xmm4,%xmm4 + vpor %xmm7,%xmm13,%xmm13 + vpxor %xmm2,%xmm0,%xmm0 + vmovdqa 240-128(%rax),%xmm2 + + vpaddd %xmm15,%xmm10,%xmm10 + vpslld $5,%xmm11,%xmm8 + vpand %xmm13,%xmm14,%xmm7 + vpxor 80-128(%rax),%xmm0,%xmm0 + + vpaddd %xmm7,%xmm10,%xmm10 + vpsrld $27,%xmm11,%xmm9 + vpxor %xmm13,%xmm14,%xmm6 + vpxor %xmm2,%xmm0,%xmm0 + + vmovdqu %xmm4,192-128(%rax) + vpaddd %xmm4,%xmm10,%xmm10 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm0,%xmm5 + vpand %xmm12,%xmm6,%xmm6 + vpaddd %xmm0,%xmm0,%xmm0 + + vpslld $30,%xmm12,%xmm7 + vpaddd %xmm6,%xmm10,%xmm10 + + vpsrld $2,%xmm12,%xmm12 + vpaddd %xmm8,%xmm10,%xmm10 + vpor %xmm5,%xmm0,%xmm0 + vpor %xmm7,%xmm12,%xmm12 + vpxor %xmm3,%xmm1,%xmm1 + vmovdqa 0-128(%rax),%xmm3 + + vpaddd %xmm15,%xmm14,%xmm14 + vpslld $5,%xmm10,%xmm8 + vpand %xmm12,%xmm13,%xmm7 + vpxor 96-128(%rax),%xmm1,%xmm1 + + vpaddd %xmm7,%xmm14,%xmm14 + vpsrld $27,%xmm10,%xmm9 + vpxor %xmm12,%xmm13,%xmm6 + vpxor %xmm3,%xmm1,%xmm1 + + vmovdqu %xmm0,208-128(%rax) + vpaddd %xmm0,%xmm14,%xmm14 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm1,%xmm5 + vpand %xmm11,%xmm6,%xmm6 + vpaddd %xmm1,%xmm1,%xmm1 + + vpslld $30,%xmm11,%xmm7 + vpaddd %xmm6,%xmm14,%xmm14 + + vpsrld $2,%xmm11,%xmm11 + vpaddd %xmm8,%xmm14,%xmm14 + vpor %xmm5,%xmm1,%xmm1 + vpor %xmm7,%xmm11,%xmm11 + vpxor %xmm4,%xmm2,%xmm2 + vmovdqa 16-128(%rax),%xmm4 + + vpaddd %xmm15,%xmm13,%xmm13 + vpslld $5,%xmm14,%xmm8 + vpand %xmm11,%xmm12,%xmm7 + vpxor 112-128(%rax),%xmm2,%xmm2 + + vpaddd %xmm7,%xmm13,%xmm13 + vpsrld $27,%xmm14,%xmm9 + vpxor %xmm11,%xmm12,%xmm6 + vpxor %xmm4,%xmm2,%xmm2 + + vmovdqu %xmm1,224-128(%rax) + vpaddd %xmm1,%xmm13,%xmm13 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm2,%xmm5 + vpand %xmm10,%xmm6,%xmm6 + vpaddd %xmm2,%xmm2,%xmm2 + + vpslld $30,%xmm10,%xmm7 + vpaddd %xmm6,%xmm13,%xmm13 + + vpsrld $2,%xmm10,%xmm10 + vpaddd %xmm8,%xmm13,%xmm13 + vpor %xmm5,%xmm2,%xmm2 + vpor %xmm7,%xmm10,%xmm10 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqa 32-128(%rax),%xmm0 + + vpaddd %xmm15,%xmm12,%xmm12 + vpslld $5,%xmm13,%xmm8 + vpand %xmm10,%xmm11,%xmm7 + vpxor 128-128(%rax),%xmm3,%xmm3 + + vpaddd %xmm7,%xmm12,%xmm12 + vpsrld $27,%xmm13,%xmm9 + vpxor %xmm10,%xmm11,%xmm6 + vpxor %xmm0,%xmm3,%xmm3 + + vmovdqu %xmm2,240-128(%rax) + vpaddd %xmm2,%xmm12,%xmm12 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm3,%xmm5 + vpand %xmm14,%xmm6,%xmm6 + vpaddd %xmm3,%xmm3,%xmm3 + + vpslld $30,%xmm14,%xmm7 + vpaddd %xmm6,%xmm12,%xmm12 + + vpsrld $2,%xmm14,%xmm14 + vpaddd %xmm8,%xmm12,%xmm12 + vpor %xmm5,%xmm3,%xmm3 + vpor %xmm7,%xmm14,%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vmovdqa 48-128(%rax),%xmm1 + + vpaddd %xmm15,%xmm11,%xmm11 + vpslld $5,%xmm12,%xmm8 + vpand %xmm14,%xmm10,%xmm7 + vpxor 144-128(%rax),%xmm4,%xmm4 + + vpaddd %xmm7,%xmm11,%xmm11 + vpsrld $27,%xmm12,%xmm9 + vpxor %xmm14,%xmm10,%xmm6 + vpxor %xmm1,%xmm4,%xmm4 + + vmovdqu %xmm3,0-128(%rax) + vpaddd %xmm3,%xmm11,%xmm11 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm4,%xmm5 + vpand %xmm13,%xmm6,%xmm6 + vpaddd %xmm4,%xmm4,%xmm4 + + vpslld $30,%xmm13,%xmm7 + vpaddd %xmm6,%xmm11,%xmm11 + + vpsrld $2,%xmm13,%xmm13 + vpaddd %xmm8,%xmm11,%xmm11 + vpor %xmm5,%xmm4,%xmm4 + vpor %xmm7,%xmm13,%xmm13 + vpxor %xmm2,%xmm0,%xmm0 + vmovdqa 64-128(%rax),%xmm2 + + vpaddd %xmm15,%xmm10,%xmm10 + vpslld $5,%xmm11,%xmm8 + vpand %xmm13,%xmm14,%xmm7 + vpxor 160-128(%rax),%xmm0,%xmm0 + + vpaddd %xmm7,%xmm10,%xmm10 + vpsrld $27,%xmm11,%xmm9 + vpxor %xmm13,%xmm14,%xmm6 + vpxor %xmm2,%xmm0,%xmm0 + + vmovdqu %xmm4,16-128(%rax) + vpaddd %xmm4,%xmm10,%xmm10 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm0,%xmm5 + vpand %xmm12,%xmm6,%xmm6 + vpaddd %xmm0,%xmm0,%xmm0 + + vpslld $30,%xmm12,%xmm7 + vpaddd %xmm6,%xmm10,%xmm10 + + vpsrld $2,%xmm12,%xmm12 + vpaddd %xmm8,%xmm10,%xmm10 + vpor %xmm5,%xmm0,%xmm0 + vpor %xmm7,%xmm12,%xmm12 + vpxor %xmm3,%xmm1,%xmm1 + vmovdqa 80-128(%rax),%xmm3 + + vpaddd %xmm15,%xmm14,%xmm14 + vpslld $5,%xmm10,%xmm8 + vpand %xmm12,%xmm13,%xmm7 + vpxor 176-128(%rax),%xmm1,%xmm1 + + vpaddd %xmm7,%xmm14,%xmm14 + vpsrld $27,%xmm10,%xmm9 + vpxor %xmm12,%xmm13,%xmm6 + vpxor %xmm3,%xmm1,%xmm1 + + vmovdqu %xmm0,32-128(%rax) + vpaddd %xmm0,%xmm14,%xmm14 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm1,%xmm5 + vpand %xmm11,%xmm6,%xmm6 + vpaddd %xmm1,%xmm1,%xmm1 + + vpslld $30,%xmm11,%xmm7 + vpaddd %xmm6,%xmm14,%xmm14 + + vpsrld $2,%xmm11,%xmm11 + vpaddd %xmm8,%xmm14,%xmm14 + vpor %xmm5,%xmm1,%xmm1 + vpor %xmm7,%xmm11,%xmm11 + vpxor %xmm4,%xmm2,%xmm2 + vmovdqa 96-128(%rax),%xmm4 + + vpaddd %xmm15,%xmm13,%xmm13 + vpslld $5,%xmm14,%xmm8 + vpand %xmm11,%xmm12,%xmm7 + vpxor 192-128(%rax),%xmm2,%xmm2 + + vpaddd %xmm7,%xmm13,%xmm13 + vpsrld $27,%xmm14,%xmm9 + vpxor %xmm11,%xmm12,%xmm6 + vpxor %xmm4,%xmm2,%xmm2 + + vmovdqu %xmm1,48-128(%rax) + vpaddd %xmm1,%xmm13,%xmm13 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm2,%xmm5 + vpand %xmm10,%xmm6,%xmm6 + vpaddd %xmm2,%xmm2,%xmm2 + + vpslld $30,%xmm10,%xmm7 + vpaddd %xmm6,%xmm13,%xmm13 + + vpsrld $2,%xmm10,%xmm10 + vpaddd %xmm8,%xmm13,%xmm13 + vpor %xmm5,%xmm2,%xmm2 + vpor %xmm7,%xmm10,%xmm10 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqa 112-128(%rax),%xmm0 + + vpaddd %xmm15,%xmm12,%xmm12 + vpslld $5,%xmm13,%xmm8 + vpand %xmm10,%xmm11,%xmm7 + vpxor 208-128(%rax),%xmm3,%xmm3 + + vpaddd %xmm7,%xmm12,%xmm12 + vpsrld $27,%xmm13,%xmm9 + vpxor %xmm10,%xmm11,%xmm6 + vpxor %xmm0,%xmm3,%xmm3 + + vmovdqu %xmm2,64-128(%rax) + vpaddd %xmm2,%xmm12,%xmm12 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm3,%xmm5 + vpand %xmm14,%xmm6,%xmm6 + vpaddd %xmm3,%xmm3,%xmm3 + + vpslld $30,%xmm14,%xmm7 + vpaddd %xmm6,%xmm12,%xmm12 + + vpsrld $2,%xmm14,%xmm14 + vpaddd %xmm8,%xmm12,%xmm12 + vpor %xmm5,%xmm3,%xmm3 + vpor %xmm7,%xmm14,%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vmovdqa 128-128(%rax),%xmm1 + + vpaddd %xmm15,%xmm11,%xmm11 + vpslld $5,%xmm12,%xmm8 + vpand %xmm14,%xmm10,%xmm7 + vpxor 224-128(%rax),%xmm4,%xmm4 + + vpaddd %xmm7,%xmm11,%xmm11 + vpsrld $27,%xmm12,%xmm9 + vpxor %xmm14,%xmm10,%xmm6 + vpxor %xmm1,%xmm4,%xmm4 + + vmovdqu %xmm3,80-128(%rax) + vpaddd %xmm3,%xmm11,%xmm11 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm4,%xmm5 + vpand %xmm13,%xmm6,%xmm6 + vpaddd %xmm4,%xmm4,%xmm4 + + vpslld $30,%xmm13,%xmm7 + vpaddd %xmm6,%xmm11,%xmm11 + + vpsrld $2,%xmm13,%xmm13 + vpaddd %xmm8,%xmm11,%xmm11 + vpor %xmm5,%xmm4,%xmm4 + vpor %xmm7,%xmm13,%xmm13 + vpxor %xmm2,%xmm0,%xmm0 + vmovdqa 144-128(%rax),%xmm2 + + vpaddd %xmm15,%xmm10,%xmm10 + vpslld $5,%xmm11,%xmm8 + vpand %xmm13,%xmm14,%xmm7 + vpxor 240-128(%rax),%xmm0,%xmm0 + + vpaddd %xmm7,%xmm10,%xmm10 + vpsrld $27,%xmm11,%xmm9 + vpxor %xmm13,%xmm14,%xmm6 + vpxor %xmm2,%xmm0,%xmm0 + + vmovdqu %xmm4,96-128(%rax) + vpaddd %xmm4,%xmm10,%xmm10 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm0,%xmm5 + vpand %xmm12,%xmm6,%xmm6 + vpaddd %xmm0,%xmm0,%xmm0 + + vpslld $30,%xmm12,%xmm7 + vpaddd %xmm6,%xmm10,%xmm10 + + vpsrld $2,%xmm12,%xmm12 + vpaddd %xmm8,%xmm10,%xmm10 + vpor %xmm5,%xmm0,%xmm0 + vpor %xmm7,%xmm12,%xmm12 + vpxor %xmm3,%xmm1,%xmm1 + vmovdqa 160-128(%rax),%xmm3 + + vpaddd %xmm15,%xmm14,%xmm14 + vpslld $5,%xmm10,%xmm8 + vpand %xmm12,%xmm13,%xmm7 + vpxor 0-128(%rax),%xmm1,%xmm1 + + vpaddd %xmm7,%xmm14,%xmm14 + vpsrld $27,%xmm10,%xmm9 + vpxor %xmm12,%xmm13,%xmm6 + vpxor %xmm3,%xmm1,%xmm1 + + vmovdqu %xmm0,112-128(%rax) + vpaddd %xmm0,%xmm14,%xmm14 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm1,%xmm5 + vpand %xmm11,%xmm6,%xmm6 + vpaddd %xmm1,%xmm1,%xmm1 + + vpslld $30,%xmm11,%xmm7 + vpaddd %xmm6,%xmm14,%xmm14 + + vpsrld $2,%xmm11,%xmm11 + vpaddd %xmm8,%xmm14,%xmm14 + vpor %xmm5,%xmm1,%xmm1 + vpor %xmm7,%xmm11,%xmm11 + vpxor %xmm4,%xmm2,%xmm2 + vmovdqa 176-128(%rax),%xmm4 + + vpaddd %xmm15,%xmm13,%xmm13 + vpslld $5,%xmm14,%xmm8 + vpand %xmm11,%xmm12,%xmm7 + vpxor 16-128(%rax),%xmm2,%xmm2 + + vpaddd %xmm7,%xmm13,%xmm13 + vpsrld $27,%xmm14,%xmm9 + vpxor %xmm11,%xmm12,%xmm6 + vpxor %xmm4,%xmm2,%xmm2 + + vmovdqu %xmm1,128-128(%rax) + vpaddd %xmm1,%xmm13,%xmm13 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm2,%xmm5 + vpand %xmm10,%xmm6,%xmm6 + vpaddd %xmm2,%xmm2,%xmm2 + + vpslld $30,%xmm10,%xmm7 + vpaddd %xmm6,%xmm13,%xmm13 + + vpsrld $2,%xmm10,%xmm10 + vpaddd %xmm8,%xmm13,%xmm13 + vpor %xmm5,%xmm2,%xmm2 + vpor %xmm7,%xmm10,%xmm10 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqa 192-128(%rax),%xmm0 + + vpaddd %xmm15,%xmm12,%xmm12 + vpslld $5,%xmm13,%xmm8 + vpand %xmm10,%xmm11,%xmm7 + vpxor 32-128(%rax),%xmm3,%xmm3 + + vpaddd %xmm7,%xmm12,%xmm12 + vpsrld $27,%xmm13,%xmm9 + vpxor %xmm10,%xmm11,%xmm6 + vpxor %xmm0,%xmm3,%xmm3 + + vmovdqu %xmm2,144-128(%rax) + vpaddd %xmm2,%xmm12,%xmm12 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm3,%xmm5 + vpand %xmm14,%xmm6,%xmm6 + vpaddd %xmm3,%xmm3,%xmm3 + + vpslld $30,%xmm14,%xmm7 + vpaddd %xmm6,%xmm12,%xmm12 + + vpsrld $2,%xmm14,%xmm14 + vpaddd %xmm8,%xmm12,%xmm12 + vpor %xmm5,%xmm3,%xmm3 + vpor %xmm7,%xmm14,%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vmovdqa 208-128(%rax),%xmm1 + + vpaddd %xmm15,%xmm11,%xmm11 + vpslld $5,%xmm12,%xmm8 + vpand %xmm14,%xmm10,%xmm7 + vpxor 48-128(%rax),%xmm4,%xmm4 + + vpaddd %xmm7,%xmm11,%xmm11 + vpsrld $27,%xmm12,%xmm9 + vpxor %xmm14,%xmm10,%xmm6 + vpxor %xmm1,%xmm4,%xmm4 + + vmovdqu %xmm3,160-128(%rax) + vpaddd %xmm3,%xmm11,%xmm11 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm4,%xmm5 + vpand %xmm13,%xmm6,%xmm6 + vpaddd %xmm4,%xmm4,%xmm4 + + vpslld $30,%xmm13,%xmm7 + vpaddd %xmm6,%xmm11,%xmm11 + + vpsrld $2,%xmm13,%xmm13 + vpaddd %xmm8,%xmm11,%xmm11 + vpor %xmm5,%xmm4,%xmm4 + vpor %xmm7,%xmm13,%xmm13 + vpxor %xmm2,%xmm0,%xmm0 + vmovdqa 224-128(%rax),%xmm2 + + vpaddd %xmm15,%xmm10,%xmm10 + vpslld $5,%xmm11,%xmm8 + vpand %xmm13,%xmm14,%xmm7 + vpxor 64-128(%rax),%xmm0,%xmm0 + + vpaddd %xmm7,%xmm10,%xmm10 + vpsrld $27,%xmm11,%xmm9 + vpxor %xmm13,%xmm14,%xmm6 + vpxor %xmm2,%xmm0,%xmm0 + + vmovdqu %xmm4,176-128(%rax) + vpaddd %xmm4,%xmm10,%xmm10 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm0,%xmm5 + vpand %xmm12,%xmm6,%xmm6 + vpaddd %xmm0,%xmm0,%xmm0 + + vpslld $30,%xmm12,%xmm7 + vpaddd %xmm6,%xmm10,%xmm10 + + vpsrld $2,%xmm12,%xmm12 + vpaddd %xmm8,%xmm10,%xmm10 + vpor %xmm5,%xmm0,%xmm0 + vpor %xmm7,%xmm12,%xmm12 + vmovdqa 64(%rbp),%xmm15 + vpxor %xmm3,%xmm1,%xmm1 + vmovdqa 240-128(%rax),%xmm3 + + vpslld $5,%xmm10,%xmm8 + vpaddd %xmm15,%xmm14,%xmm14 + vpxor %xmm11,%xmm13,%xmm6 + vmovdqa %xmm0,192-128(%rax) + vpaddd %xmm0,%xmm14,%xmm14 + vpxor 80-128(%rax),%xmm1,%xmm1 + vpsrld $27,%xmm10,%xmm9 + vpxor %xmm12,%xmm6,%xmm6 + vpxor %xmm3,%xmm1,%xmm1 + + vpslld $30,%xmm11,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm14,%xmm14 + vpsrld $31,%xmm1,%xmm5 + vpaddd %xmm1,%xmm1,%xmm1 + + vpsrld $2,%xmm11,%xmm11 + vpaddd %xmm8,%xmm14,%xmm14 + vpor %xmm5,%xmm1,%xmm1 + vpor %xmm7,%xmm11,%xmm11 + vpxor %xmm4,%xmm2,%xmm2 + vmovdqa 0-128(%rax),%xmm4 + + vpslld $5,%xmm14,%xmm8 + vpaddd %xmm15,%xmm13,%xmm13 + vpxor %xmm10,%xmm12,%xmm6 + vmovdqa %xmm1,208-128(%rax) + vpaddd %xmm1,%xmm13,%xmm13 + vpxor 96-128(%rax),%xmm2,%xmm2 + vpsrld $27,%xmm14,%xmm9 + vpxor %xmm11,%xmm6,%xmm6 + vpxor %xmm4,%xmm2,%xmm2 + + vpslld $30,%xmm10,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm13,%xmm13 + vpsrld $31,%xmm2,%xmm5 + vpaddd %xmm2,%xmm2,%xmm2 + + vpsrld $2,%xmm10,%xmm10 + vpaddd %xmm8,%xmm13,%xmm13 + vpor %xmm5,%xmm2,%xmm2 + vpor %xmm7,%xmm10,%xmm10 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqa 16-128(%rax),%xmm0 + + vpslld $5,%xmm13,%xmm8 + vpaddd %xmm15,%xmm12,%xmm12 + vpxor %xmm14,%xmm11,%xmm6 + vmovdqa %xmm2,224-128(%rax) + vpaddd %xmm2,%xmm12,%xmm12 + vpxor 112-128(%rax),%xmm3,%xmm3 + vpsrld $27,%xmm13,%xmm9 + vpxor %xmm10,%xmm6,%xmm6 + vpxor %xmm0,%xmm3,%xmm3 + + vpslld $30,%xmm14,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm12,%xmm12 + vpsrld $31,%xmm3,%xmm5 + vpaddd %xmm3,%xmm3,%xmm3 + + vpsrld $2,%xmm14,%xmm14 + vpaddd %xmm8,%xmm12,%xmm12 + vpor %xmm5,%xmm3,%xmm3 + vpor %xmm7,%xmm14,%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vmovdqa 32-128(%rax),%xmm1 + + vpslld $5,%xmm12,%xmm8 + vpaddd %xmm15,%xmm11,%xmm11 + vpxor %xmm13,%xmm10,%xmm6 + vmovdqa %xmm3,240-128(%rax) + vpaddd %xmm3,%xmm11,%xmm11 + vpxor 128-128(%rax),%xmm4,%xmm4 + vpsrld $27,%xmm12,%xmm9 + vpxor %xmm14,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm4 + + vpslld $30,%xmm13,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm11,%xmm11 + vpsrld $31,%xmm4,%xmm5 + vpaddd %xmm4,%xmm4,%xmm4 + + vpsrld $2,%xmm13,%xmm13 + vpaddd %xmm8,%xmm11,%xmm11 + vpor %xmm5,%xmm4,%xmm4 + vpor %xmm7,%xmm13,%xmm13 + vpxor %xmm2,%xmm0,%xmm0 + vmovdqa 48-128(%rax),%xmm2 + + vpslld $5,%xmm11,%xmm8 + vpaddd %xmm15,%xmm10,%xmm10 + vpxor %xmm12,%xmm14,%xmm6 + vmovdqa %xmm4,0-128(%rax) + vpaddd %xmm4,%xmm10,%xmm10 + vpxor 144-128(%rax),%xmm0,%xmm0 + vpsrld $27,%xmm11,%xmm9 + vpxor %xmm13,%xmm6,%xmm6 + vpxor %xmm2,%xmm0,%xmm0 + + vpslld $30,%xmm12,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm10,%xmm10 + vpsrld $31,%xmm0,%xmm5 + vpaddd %xmm0,%xmm0,%xmm0 + + vpsrld $2,%xmm12,%xmm12 + vpaddd %xmm8,%xmm10,%xmm10 + vpor %xmm5,%xmm0,%xmm0 + vpor %xmm7,%xmm12,%xmm12 + vpxor %xmm3,%xmm1,%xmm1 + vmovdqa 64-128(%rax),%xmm3 + + vpslld $5,%xmm10,%xmm8 + vpaddd %xmm15,%xmm14,%xmm14 + vpxor %xmm11,%xmm13,%xmm6 + vmovdqa %xmm0,16-128(%rax) + vpaddd %xmm0,%xmm14,%xmm14 + vpxor 160-128(%rax),%xmm1,%xmm1 + vpsrld $27,%xmm10,%xmm9 + vpxor %xmm12,%xmm6,%xmm6 + vpxor %xmm3,%xmm1,%xmm1 + + vpslld $30,%xmm11,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm14,%xmm14 + vpsrld $31,%xmm1,%xmm5 + vpaddd %xmm1,%xmm1,%xmm1 + + vpsrld $2,%xmm11,%xmm11 + vpaddd %xmm8,%xmm14,%xmm14 + vpor %xmm5,%xmm1,%xmm1 + vpor %xmm7,%xmm11,%xmm11 + vpxor %xmm4,%xmm2,%xmm2 + vmovdqa 80-128(%rax),%xmm4 + + vpslld $5,%xmm14,%xmm8 + vpaddd %xmm15,%xmm13,%xmm13 + vpxor %xmm10,%xmm12,%xmm6 + vmovdqa %xmm1,32-128(%rax) + vpaddd %xmm1,%xmm13,%xmm13 + vpxor 176-128(%rax),%xmm2,%xmm2 + vpsrld $27,%xmm14,%xmm9 + vpxor %xmm11,%xmm6,%xmm6 + vpxor %xmm4,%xmm2,%xmm2 + + vpslld $30,%xmm10,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm13,%xmm13 + vpsrld $31,%xmm2,%xmm5 + vpaddd %xmm2,%xmm2,%xmm2 + + vpsrld $2,%xmm10,%xmm10 + vpaddd %xmm8,%xmm13,%xmm13 + vpor %xmm5,%xmm2,%xmm2 + vpor %xmm7,%xmm10,%xmm10 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqa 96-128(%rax),%xmm0 + + vpslld $5,%xmm13,%xmm8 + vpaddd %xmm15,%xmm12,%xmm12 + vpxor %xmm14,%xmm11,%xmm6 + vmovdqa %xmm2,48-128(%rax) + vpaddd %xmm2,%xmm12,%xmm12 + vpxor 192-128(%rax),%xmm3,%xmm3 + vpsrld $27,%xmm13,%xmm9 + vpxor %xmm10,%xmm6,%xmm6 + vpxor %xmm0,%xmm3,%xmm3 + + vpslld $30,%xmm14,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm12,%xmm12 + vpsrld $31,%xmm3,%xmm5 + vpaddd %xmm3,%xmm3,%xmm3 + + vpsrld $2,%xmm14,%xmm14 + vpaddd %xmm8,%xmm12,%xmm12 + vpor %xmm5,%xmm3,%xmm3 + vpor %xmm7,%xmm14,%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vmovdqa 112-128(%rax),%xmm1 + + vpslld $5,%xmm12,%xmm8 + vpaddd %xmm15,%xmm11,%xmm11 + vpxor %xmm13,%xmm10,%xmm6 + vmovdqa %xmm3,64-128(%rax) + vpaddd %xmm3,%xmm11,%xmm11 + vpxor 208-128(%rax),%xmm4,%xmm4 + vpsrld $27,%xmm12,%xmm9 + vpxor %xmm14,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm4 + + vpslld $30,%xmm13,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm11,%xmm11 + vpsrld $31,%xmm4,%xmm5 + vpaddd %xmm4,%xmm4,%xmm4 + + vpsrld $2,%xmm13,%xmm13 + vpaddd %xmm8,%xmm11,%xmm11 + vpor %xmm5,%xmm4,%xmm4 + vpor %xmm7,%xmm13,%xmm13 + vpxor %xmm2,%xmm0,%xmm0 + vmovdqa 128-128(%rax),%xmm2 + + vpslld $5,%xmm11,%xmm8 + vpaddd %xmm15,%xmm10,%xmm10 + vpxor %xmm12,%xmm14,%xmm6 + vmovdqa %xmm4,80-128(%rax) + vpaddd %xmm4,%xmm10,%xmm10 + vpxor 224-128(%rax),%xmm0,%xmm0 + vpsrld $27,%xmm11,%xmm9 + vpxor %xmm13,%xmm6,%xmm6 + vpxor %xmm2,%xmm0,%xmm0 + + vpslld $30,%xmm12,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm10,%xmm10 + vpsrld $31,%xmm0,%xmm5 + vpaddd %xmm0,%xmm0,%xmm0 + + vpsrld $2,%xmm12,%xmm12 + vpaddd %xmm8,%xmm10,%xmm10 + vpor %xmm5,%xmm0,%xmm0 + vpor %xmm7,%xmm12,%xmm12 + vpxor %xmm3,%xmm1,%xmm1 + vmovdqa 144-128(%rax),%xmm3 + + vpslld $5,%xmm10,%xmm8 + vpaddd %xmm15,%xmm14,%xmm14 + vpxor %xmm11,%xmm13,%xmm6 + vmovdqa %xmm0,96-128(%rax) + vpaddd %xmm0,%xmm14,%xmm14 + vpxor 240-128(%rax),%xmm1,%xmm1 + vpsrld $27,%xmm10,%xmm9 + vpxor %xmm12,%xmm6,%xmm6 + vpxor %xmm3,%xmm1,%xmm1 + + vpslld $30,%xmm11,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm14,%xmm14 + vpsrld $31,%xmm1,%xmm5 + vpaddd %xmm1,%xmm1,%xmm1 + + vpsrld $2,%xmm11,%xmm11 + vpaddd %xmm8,%xmm14,%xmm14 + vpor %xmm5,%xmm1,%xmm1 + vpor %xmm7,%xmm11,%xmm11 + vpxor %xmm4,%xmm2,%xmm2 + vmovdqa 160-128(%rax),%xmm4 + + vpslld $5,%xmm14,%xmm8 + vpaddd %xmm15,%xmm13,%xmm13 + vpxor %xmm10,%xmm12,%xmm6 + vmovdqa %xmm1,112-128(%rax) + vpaddd %xmm1,%xmm13,%xmm13 + vpxor 0-128(%rax),%xmm2,%xmm2 + vpsrld $27,%xmm14,%xmm9 + vpxor %xmm11,%xmm6,%xmm6 + vpxor %xmm4,%xmm2,%xmm2 + + vpslld $30,%xmm10,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm13,%xmm13 + vpsrld $31,%xmm2,%xmm5 + vpaddd %xmm2,%xmm2,%xmm2 + + vpsrld $2,%xmm10,%xmm10 + vpaddd %xmm8,%xmm13,%xmm13 + vpor %xmm5,%xmm2,%xmm2 + vpor %xmm7,%xmm10,%xmm10 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqa 176-128(%rax),%xmm0 + + vpslld $5,%xmm13,%xmm8 + vpaddd %xmm15,%xmm12,%xmm12 + vpxor %xmm14,%xmm11,%xmm6 + vpaddd %xmm2,%xmm12,%xmm12 + vpxor 16-128(%rax),%xmm3,%xmm3 + vpsrld $27,%xmm13,%xmm9 + vpxor %xmm10,%xmm6,%xmm6 + vpxor %xmm0,%xmm3,%xmm3 + + vpslld $30,%xmm14,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm12,%xmm12 + vpsrld $31,%xmm3,%xmm5 + vpaddd %xmm3,%xmm3,%xmm3 + + vpsrld $2,%xmm14,%xmm14 + vpaddd %xmm8,%xmm12,%xmm12 + vpor %xmm5,%xmm3,%xmm3 + vpor %xmm7,%xmm14,%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vmovdqa 192-128(%rax),%xmm1 + + vpslld $5,%xmm12,%xmm8 + vpaddd %xmm15,%xmm11,%xmm11 + vpxor %xmm13,%xmm10,%xmm6 + vpaddd %xmm3,%xmm11,%xmm11 + vpxor 32-128(%rax),%xmm4,%xmm4 + vpsrld $27,%xmm12,%xmm9 + vpxor %xmm14,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm4 + + vpslld $30,%xmm13,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm11,%xmm11 + vpsrld $31,%xmm4,%xmm5 + vpaddd %xmm4,%xmm4,%xmm4 + + vpsrld $2,%xmm13,%xmm13 + vpaddd %xmm8,%xmm11,%xmm11 + vpor %xmm5,%xmm4,%xmm4 + vpor %xmm7,%xmm13,%xmm13 + vpxor %xmm2,%xmm0,%xmm0 + vmovdqa 208-128(%rax),%xmm2 + + vpslld $5,%xmm11,%xmm8 + vpaddd %xmm15,%xmm10,%xmm10 + vpxor %xmm12,%xmm14,%xmm6 + vpaddd %xmm4,%xmm10,%xmm10 + vpxor 48-128(%rax),%xmm0,%xmm0 + vpsrld $27,%xmm11,%xmm9 + vpxor %xmm13,%xmm6,%xmm6 + vpxor %xmm2,%xmm0,%xmm0 + + vpslld $30,%xmm12,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm10,%xmm10 + vpsrld $31,%xmm0,%xmm5 + vpaddd %xmm0,%xmm0,%xmm0 + + vpsrld $2,%xmm12,%xmm12 + vpaddd %xmm8,%xmm10,%xmm10 + vpor %xmm5,%xmm0,%xmm0 + vpor %xmm7,%xmm12,%xmm12 + vpxor %xmm3,%xmm1,%xmm1 + vmovdqa 224-128(%rax),%xmm3 + + vpslld $5,%xmm10,%xmm8 + vpaddd %xmm15,%xmm14,%xmm14 + vpxor %xmm11,%xmm13,%xmm6 + vpaddd %xmm0,%xmm14,%xmm14 + vpxor 64-128(%rax),%xmm1,%xmm1 + vpsrld $27,%xmm10,%xmm9 + vpxor %xmm12,%xmm6,%xmm6 + vpxor %xmm3,%xmm1,%xmm1 + + vpslld $30,%xmm11,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm14,%xmm14 + vpsrld $31,%xmm1,%xmm5 + vpaddd %xmm1,%xmm1,%xmm1 + + vpsrld $2,%xmm11,%xmm11 + vpaddd %xmm8,%xmm14,%xmm14 + vpor %xmm5,%xmm1,%xmm1 + vpor %xmm7,%xmm11,%xmm11 + vpxor %xmm4,%xmm2,%xmm2 + vmovdqa 240-128(%rax),%xmm4 + + vpslld $5,%xmm14,%xmm8 + vpaddd %xmm15,%xmm13,%xmm13 + vpxor %xmm10,%xmm12,%xmm6 + vpaddd %xmm1,%xmm13,%xmm13 + vpxor 80-128(%rax),%xmm2,%xmm2 + vpsrld $27,%xmm14,%xmm9 + vpxor %xmm11,%xmm6,%xmm6 + vpxor %xmm4,%xmm2,%xmm2 + + vpslld $30,%xmm10,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm13,%xmm13 + vpsrld $31,%xmm2,%xmm5 + vpaddd %xmm2,%xmm2,%xmm2 + + vpsrld $2,%xmm10,%xmm10 + vpaddd %xmm8,%xmm13,%xmm13 + vpor %xmm5,%xmm2,%xmm2 + vpor %xmm7,%xmm10,%xmm10 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqa 0-128(%rax),%xmm0 + + vpslld $5,%xmm13,%xmm8 + vpaddd %xmm15,%xmm12,%xmm12 + vpxor %xmm14,%xmm11,%xmm6 + vpaddd %xmm2,%xmm12,%xmm12 + vpxor 96-128(%rax),%xmm3,%xmm3 + vpsrld $27,%xmm13,%xmm9 + vpxor %xmm10,%xmm6,%xmm6 + vpxor %xmm0,%xmm3,%xmm3 + + vpslld $30,%xmm14,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm12,%xmm12 + vpsrld $31,%xmm3,%xmm5 + vpaddd %xmm3,%xmm3,%xmm3 + + vpsrld $2,%xmm14,%xmm14 + vpaddd %xmm8,%xmm12,%xmm12 + vpor %xmm5,%xmm3,%xmm3 + vpor %xmm7,%xmm14,%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vmovdqa 16-128(%rax),%xmm1 + + vpslld $5,%xmm12,%xmm8 + vpaddd %xmm15,%xmm11,%xmm11 + vpxor %xmm13,%xmm10,%xmm6 + vpaddd %xmm3,%xmm11,%xmm11 + vpxor 112-128(%rax),%xmm4,%xmm4 + vpsrld $27,%xmm12,%xmm9 + vpxor %xmm14,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm4 + + vpslld $30,%xmm13,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm11,%xmm11 + vpsrld $31,%xmm4,%xmm5 + vpaddd %xmm4,%xmm4,%xmm4 + + vpsrld $2,%xmm13,%xmm13 + vpaddd %xmm8,%xmm11,%xmm11 + vpor %xmm5,%xmm4,%xmm4 + vpor %xmm7,%xmm13,%xmm13 + vpslld $5,%xmm11,%xmm8 + vpaddd %xmm15,%xmm10,%xmm10 + vpxor %xmm12,%xmm14,%xmm6 + + vpsrld $27,%xmm11,%xmm9 + vpaddd %xmm4,%xmm10,%xmm10 + vpxor %xmm13,%xmm6,%xmm6 + + vpslld $30,%xmm12,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm10,%xmm10 + + vpsrld $2,%xmm12,%xmm12 + vpaddd %xmm8,%xmm10,%xmm10 + vpor %xmm7,%xmm12,%xmm12 + movl $1,%ecx + cmpl 0(%rbx),%ecx + cmovgeq %rbp,%r8 + cmpl 4(%rbx),%ecx + cmovgeq %rbp,%r9 + cmpl 8(%rbx),%ecx + cmovgeq %rbp,%r10 + cmpl 12(%rbx),%ecx + cmovgeq %rbp,%r11 + vmovdqu (%rbx),%xmm6 + vpxor %xmm8,%xmm8,%xmm8 + vmovdqa %xmm6,%xmm7 + vpcmpgtd %xmm8,%xmm7,%xmm7 + vpaddd %xmm7,%xmm6,%xmm6 + + vpand %xmm7,%xmm10,%xmm10 + vpand %xmm7,%xmm11,%xmm11 + vpaddd 0(%rdi),%xmm10,%xmm10 + vpand %xmm7,%xmm12,%xmm12 + vpaddd 32(%rdi),%xmm11,%xmm11 + vpand %xmm7,%xmm13,%xmm13 + vpaddd 64(%rdi),%xmm12,%xmm12 + vpand %xmm7,%xmm14,%xmm14 + vpaddd 96(%rdi),%xmm13,%xmm13 + vpaddd 128(%rdi),%xmm14,%xmm14 + vmovdqu %xmm10,0(%rdi) + vmovdqu %xmm11,32(%rdi) + vmovdqu %xmm12,64(%rdi) + vmovdqu %xmm13,96(%rdi) + vmovdqu %xmm14,128(%rdi) + + vmovdqu %xmm6,(%rbx) + vmovdqu 96(%rbp),%xmm5 + decl %edx + jnz .Loop_avx + + movl 280(%rsp),%edx + leaq 16(%rdi),%rdi + leaq 64(%rsi),%rsi + decl %edx + jnz .Loop_grande_avx + +.Ldone_avx: + movq 272(%rsp),%rax +.cfi_def_cfa %rax,8 + vzeroupper + movq -16(%rax),%rbp +.cfi_restore %rbp + movq -8(%rax),%rbx +.cfi_restore %rbx + leaq (%rax),%rsp +.cfi_def_cfa_register %rsp +.Lepilogue_avx: + .byte 0xf3,0xc3 +.cfi_endproc +.size sha1_multi_block_avx,.-sha1_multi_block_avx +.type sha1_multi_block_avx2,@function +.align 32 +sha1_multi_block_avx2: +.cfi_startproc +_avx2_shortcut: + movq %rsp,%rax +.cfi_def_cfa_register %rax + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_offset %r15,-56 + subq $576,%rsp + andq $-256,%rsp + movq %rax,544(%rsp) +.cfi_escape 0x0f,0x06,0x77,0xa0,0x04,0x06,0x23,0x08 +.Lbody_avx2: + leaq K_XX_XX(%rip),%rbp + shrl $1,%edx + + vzeroupper +.Loop_grande_avx2: + movl %edx,552(%rsp) + xorl %edx,%edx + leaq 512(%rsp),%rbx + movq 0(%rsi),%r12 + movl 8(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,0(%rbx) + cmovleq %rbp,%r12 + movq 16(%rsi),%r13 + movl 24(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,4(%rbx) + cmovleq %rbp,%r13 + movq 32(%rsi),%r14 + movl 40(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,8(%rbx) + cmovleq %rbp,%r14 + movq 48(%rsi),%r15 + movl 56(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,12(%rbx) + cmovleq %rbp,%r15 + movq 64(%rsi),%r8 + movl 72(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,16(%rbx) + cmovleq %rbp,%r8 + movq 80(%rsi),%r9 + movl 88(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,20(%rbx) + cmovleq %rbp,%r9 + movq 96(%rsi),%r10 + movl 104(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,24(%rbx) + cmovleq %rbp,%r10 + movq 112(%rsi),%r11 + movl 120(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,28(%rbx) + cmovleq %rbp,%r11 + vmovdqu 0(%rdi),%ymm0 + leaq 128(%rsp),%rax + vmovdqu 32(%rdi),%ymm1 + leaq 256+128(%rsp),%rbx + vmovdqu 64(%rdi),%ymm2 + vmovdqu 96(%rdi),%ymm3 + vmovdqu 128(%rdi),%ymm4 + vmovdqu 96(%rbp),%ymm9 + jmp .Loop_avx2 + +.align 32 +.Loop_avx2: + vmovdqa -32(%rbp),%ymm15 + vmovd (%r12),%xmm10 + leaq 64(%r12),%r12 + vmovd (%r8),%xmm12 + leaq 64(%r8),%r8 + vmovd (%r13),%xmm7 + leaq 64(%r13),%r13 + vmovd (%r9),%xmm6 + leaq 64(%r9),%r9 + vpinsrd $1,(%r14),%xmm10,%xmm10 + leaq 64(%r14),%r14 + vpinsrd $1,(%r10),%xmm12,%xmm12 + leaq 64(%r10),%r10 + vpinsrd $1,(%r15),%xmm7,%xmm7 + leaq 64(%r15),%r15 + vpunpckldq %ymm7,%ymm10,%ymm10 + vpinsrd $1,(%r11),%xmm6,%xmm6 + leaq 64(%r11),%r11 + vpunpckldq %ymm6,%ymm12,%ymm12 + vmovd -60(%r12),%xmm11 + vinserti128 $1,%xmm12,%ymm10,%ymm10 + vmovd -60(%r8),%xmm8 + vpshufb %ymm9,%ymm10,%ymm10 + vmovd -60(%r13),%xmm7 + vmovd -60(%r9),%xmm6 + vpinsrd $1,-60(%r14),%xmm11,%xmm11 + vpinsrd $1,-60(%r10),%xmm8,%xmm8 + vpinsrd $1,-60(%r15),%xmm7,%xmm7 + vpunpckldq %ymm7,%ymm11,%ymm11 + vpinsrd $1,-60(%r11),%xmm6,%xmm6 + vpunpckldq %ymm6,%ymm8,%ymm8 + vpaddd %ymm15,%ymm4,%ymm4 + vpslld $5,%ymm0,%ymm7 + vpandn %ymm3,%ymm1,%ymm6 + vpand %ymm2,%ymm1,%ymm5 + + vmovdqa %ymm10,0-128(%rax) + vpaddd %ymm10,%ymm4,%ymm4 + vinserti128 $1,%xmm8,%ymm11,%ymm11 + vpsrld $27,%ymm0,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vmovd -56(%r12),%xmm12 + + vpslld $30,%ymm1,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vmovd -56(%r8),%xmm8 + vpaddd %ymm5,%ymm4,%ymm4 + + vpsrld $2,%ymm1,%ymm1 + vpaddd %ymm7,%ymm4,%ymm4 + vpshufb %ymm9,%ymm11,%ymm11 + vpor %ymm6,%ymm1,%ymm1 + vmovd -56(%r13),%xmm7 + vmovd -56(%r9),%xmm6 + vpinsrd $1,-56(%r14),%xmm12,%xmm12 + vpinsrd $1,-56(%r10),%xmm8,%xmm8 + vpinsrd $1,-56(%r15),%xmm7,%xmm7 + vpunpckldq %ymm7,%ymm12,%ymm12 + vpinsrd $1,-56(%r11),%xmm6,%xmm6 + vpunpckldq %ymm6,%ymm8,%ymm8 + vpaddd %ymm15,%ymm3,%ymm3 + vpslld $5,%ymm4,%ymm7 + vpandn %ymm2,%ymm0,%ymm6 + vpand %ymm1,%ymm0,%ymm5 + + vmovdqa %ymm11,32-128(%rax) + vpaddd %ymm11,%ymm3,%ymm3 + vinserti128 $1,%xmm8,%ymm12,%ymm12 + vpsrld $27,%ymm4,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vmovd -52(%r12),%xmm13 + + vpslld $30,%ymm0,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vmovd -52(%r8),%xmm8 + vpaddd %ymm5,%ymm3,%ymm3 + + vpsrld $2,%ymm0,%ymm0 + vpaddd %ymm7,%ymm3,%ymm3 + vpshufb %ymm9,%ymm12,%ymm12 + vpor %ymm6,%ymm0,%ymm0 + vmovd -52(%r13),%xmm7 + vmovd -52(%r9),%xmm6 + vpinsrd $1,-52(%r14),%xmm13,%xmm13 + vpinsrd $1,-52(%r10),%xmm8,%xmm8 + vpinsrd $1,-52(%r15),%xmm7,%xmm7 + vpunpckldq %ymm7,%ymm13,%ymm13 + vpinsrd $1,-52(%r11),%xmm6,%xmm6 + vpunpckldq %ymm6,%ymm8,%ymm8 + vpaddd %ymm15,%ymm2,%ymm2 + vpslld $5,%ymm3,%ymm7 + vpandn %ymm1,%ymm4,%ymm6 + vpand %ymm0,%ymm4,%ymm5 + + vmovdqa %ymm12,64-128(%rax) + vpaddd %ymm12,%ymm2,%ymm2 + vinserti128 $1,%xmm8,%ymm13,%ymm13 + vpsrld $27,%ymm3,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vmovd -48(%r12),%xmm14 + + vpslld $30,%ymm4,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vmovd -48(%r8),%xmm8 + vpaddd %ymm5,%ymm2,%ymm2 + + vpsrld $2,%ymm4,%ymm4 + vpaddd %ymm7,%ymm2,%ymm2 + vpshufb %ymm9,%ymm13,%ymm13 + vpor %ymm6,%ymm4,%ymm4 + vmovd -48(%r13),%xmm7 + vmovd -48(%r9),%xmm6 + vpinsrd $1,-48(%r14),%xmm14,%xmm14 + vpinsrd $1,-48(%r10),%xmm8,%xmm8 + vpinsrd $1,-48(%r15),%xmm7,%xmm7 + vpunpckldq %ymm7,%ymm14,%ymm14 + vpinsrd $1,-48(%r11),%xmm6,%xmm6 + vpunpckldq %ymm6,%ymm8,%ymm8 + vpaddd %ymm15,%ymm1,%ymm1 + vpslld $5,%ymm2,%ymm7 + vpandn %ymm0,%ymm3,%ymm6 + vpand %ymm4,%ymm3,%ymm5 + + vmovdqa %ymm13,96-128(%rax) + vpaddd %ymm13,%ymm1,%ymm1 + vinserti128 $1,%xmm8,%ymm14,%ymm14 + vpsrld $27,%ymm2,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vmovd -44(%r12),%xmm10 + + vpslld $30,%ymm3,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vmovd -44(%r8),%xmm8 + vpaddd %ymm5,%ymm1,%ymm1 + + vpsrld $2,%ymm3,%ymm3 + vpaddd %ymm7,%ymm1,%ymm1 + vpshufb %ymm9,%ymm14,%ymm14 + vpor %ymm6,%ymm3,%ymm3 + vmovd -44(%r13),%xmm7 + vmovd -44(%r9),%xmm6 + vpinsrd $1,-44(%r14),%xmm10,%xmm10 + vpinsrd $1,-44(%r10),%xmm8,%xmm8 + vpinsrd $1,-44(%r15),%xmm7,%xmm7 + vpunpckldq %ymm7,%ymm10,%ymm10 + vpinsrd $1,-44(%r11),%xmm6,%xmm6 + vpunpckldq %ymm6,%ymm8,%ymm8 + vpaddd %ymm15,%ymm0,%ymm0 + vpslld $5,%ymm1,%ymm7 + vpandn %ymm4,%ymm2,%ymm6 + vpand %ymm3,%ymm2,%ymm5 + + vmovdqa %ymm14,128-128(%rax) + vpaddd %ymm14,%ymm0,%ymm0 + vinserti128 $1,%xmm8,%ymm10,%ymm10 + vpsrld $27,%ymm1,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vmovd -40(%r12),%xmm11 + + vpslld $30,%ymm2,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vmovd -40(%r8),%xmm8 + vpaddd %ymm5,%ymm0,%ymm0 + + vpsrld $2,%ymm2,%ymm2 + vpaddd %ymm7,%ymm0,%ymm0 + vpshufb %ymm9,%ymm10,%ymm10 + vpor %ymm6,%ymm2,%ymm2 + vmovd -40(%r13),%xmm7 + vmovd -40(%r9),%xmm6 + vpinsrd $1,-40(%r14),%xmm11,%xmm11 + vpinsrd $1,-40(%r10),%xmm8,%xmm8 + vpinsrd $1,-40(%r15),%xmm7,%xmm7 + vpunpckldq %ymm7,%ymm11,%ymm11 + vpinsrd $1,-40(%r11),%xmm6,%xmm6 + vpunpckldq %ymm6,%ymm8,%ymm8 + vpaddd %ymm15,%ymm4,%ymm4 + vpslld $5,%ymm0,%ymm7 + vpandn %ymm3,%ymm1,%ymm6 + vpand %ymm2,%ymm1,%ymm5 + + vmovdqa %ymm10,160-128(%rax) + vpaddd %ymm10,%ymm4,%ymm4 + vinserti128 $1,%xmm8,%ymm11,%ymm11 + vpsrld $27,%ymm0,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vmovd -36(%r12),%xmm12 + + vpslld $30,%ymm1,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vmovd -36(%r8),%xmm8 + vpaddd %ymm5,%ymm4,%ymm4 + + vpsrld $2,%ymm1,%ymm1 + vpaddd %ymm7,%ymm4,%ymm4 + vpshufb %ymm9,%ymm11,%ymm11 + vpor %ymm6,%ymm1,%ymm1 + vmovd -36(%r13),%xmm7 + vmovd -36(%r9),%xmm6 + vpinsrd $1,-36(%r14),%xmm12,%xmm12 + vpinsrd $1,-36(%r10),%xmm8,%xmm8 + vpinsrd $1,-36(%r15),%xmm7,%xmm7 + vpunpckldq %ymm7,%ymm12,%ymm12 + vpinsrd $1,-36(%r11),%xmm6,%xmm6 + vpunpckldq %ymm6,%ymm8,%ymm8 + vpaddd %ymm15,%ymm3,%ymm3 + vpslld $5,%ymm4,%ymm7 + vpandn %ymm2,%ymm0,%ymm6 + vpand %ymm1,%ymm0,%ymm5 + + vmovdqa %ymm11,192-128(%rax) + vpaddd %ymm11,%ymm3,%ymm3 + vinserti128 $1,%xmm8,%ymm12,%ymm12 + vpsrld $27,%ymm4,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vmovd -32(%r12),%xmm13 + + vpslld $30,%ymm0,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vmovd -32(%r8),%xmm8 + vpaddd %ymm5,%ymm3,%ymm3 + + vpsrld $2,%ymm0,%ymm0 + vpaddd %ymm7,%ymm3,%ymm3 + vpshufb %ymm9,%ymm12,%ymm12 + vpor %ymm6,%ymm0,%ymm0 + vmovd -32(%r13),%xmm7 + vmovd -32(%r9),%xmm6 + vpinsrd $1,-32(%r14),%xmm13,%xmm13 + vpinsrd $1,-32(%r10),%xmm8,%xmm8 + vpinsrd $1,-32(%r15),%xmm7,%xmm7 + vpunpckldq %ymm7,%ymm13,%ymm13 + vpinsrd $1,-32(%r11),%xmm6,%xmm6 + vpunpckldq %ymm6,%ymm8,%ymm8 + vpaddd %ymm15,%ymm2,%ymm2 + vpslld $5,%ymm3,%ymm7 + vpandn %ymm1,%ymm4,%ymm6 + vpand %ymm0,%ymm4,%ymm5 + + vmovdqa %ymm12,224-128(%rax) + vpaddd %ymm12,%ymm2,%ymm2 + vinserti128 $1,%xmm8,%ymm13,%ymm13 + vpsrld $27,%ymm3,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vmovd -28(%r12),%xmm14 + + vpslld $30,%ymm4,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vmovd -28(%r8),%xmm8 + vpaddd %ymm5,%ymm2,%ymm2 + + vpsrld $2,%ymm4,%ymm4 + vpaddd %ymm7,%ymm2,%ymm2 + vpshufb %ymm9,%ymm13,%ymm13 + vpor %ymm6,%ymm4,%ymm4 + vmovd -28(%r13),%xmm7 + vmovd -28(%r9),%xmm6 + vpinsrd $1,-28(%r14),%xmm14,%xmm14 + vpinsrd $1,-28(%r10),%xmm8,%xmm8 + vpinsrd $1,-28(%r15),%xmm7,%xmm7 + vpunpckldq %ymm7,%ymm14,%ymm14 + vpinsrd $1,-28(%r11),%xmm6,%xmm6 + vpunpckldq %ymm6,%ymm8,%ymm8 + vpaddd %ymm15,%ymm1,%ymm1 + vpslld $5,%ymm2,%ymm7 + vpandn %ymm0,%ymm3,%ymm6 + vpand %ymm4,%ymm3,%ymm5 + + vmovdqa %ymm13,256-256-128(%rbx) + vpaddd %ymm13,%ymm1,%ymm1 + vinserti128 $1,%xmm8,%ymm14,%ymm14 + vpsrld $27,%ymm2,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vmovd -24(%r12),%xmm10 + + vpslld $30,%ymm3,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vmovd -24(%r8),%xmm8 + vpaddd %ymm5,%ymm1,%ymm1 + + vpsrld $2,%ymm3,%ymm3 + vpaddd %ymm7,%ymm1,%ymm1 + vpshufb %ymm9,%ymm14,%ymm14 + vpor %ymm6,%ymm3,%ymm3 + vmovd -24(%r13),%xmm7 + vmovd -24(%r9),%xmm6 + vpinsrd $1,-24(%r14),%xmm10,%xmm10 + vpinsrd $1,-24(%r10),%xmm8,%xmm8 + vpinsrd $1,-24(%r15),%xmm7,%xmm7 + vpunpckldq %ymm7,%ymm10,%ymm10 + vpinsrd $1,-24(%r11),%xmm6,%xmm6 + vpunpckldq %ymm6,%ymm8,%ymm8 + vpaddd %ymm15,%ymm0,%ymm0 + vpslld $5,%ymm1,%ymm7 + vpandn %ymm4,%ymm2,%ymm6 + vpand %ymm3,%ymm2,%ymm5 + + vmovdqa %ymm14,288-256-128(%rbx) + vpaddd %ymm14,%ymm0,%ymm0 + vinserti128 $1,%xmm8,%ymm10,%ymm10 + vpsrld $27,%ymm1,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vmovd -20(%r12),%xmm11 + + vpslld $30,%ymm2,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vmovd -20(%r8),%xmm8 + vpaddd %ymm5,%ymm0,%ymm0 + + vpsrld $2,%ymm2,%ymm2 + vpaddd %ymm7,%ymm0,%ymm0 + vpshufb %ymm9,%ymm10,%ymm10 + vpor %ymm6,%ymm2,%ymm2 + vmovd -20(%r13),%xmm7 + vmovd -20(%r9),%xmm6 + vpinsrd $1,-20(%r14),%xmm11,%xmm11 + vpinsrd $1,-20(%r10),%xmm8,%xmm8 + vpinsrd $1,-20(%r15),%xmm7,%xmm7 + vpunpckldq %ymm7,%ymm11,%ymm11 + vpinsrd $1,-20(%r11),%xmm6,%xmm6 + vpunpckldq %ymm6,%ymm8,%ymm8 + vpaddd %ymm15,%ymm4,%ymm4 + vpslld $5,%ymm0,%ymm7 + vpandn %ymm3,%ymm1,%ymm6 + vpand %ymm2,%ymm1,%ymm5 + + vmovdqa %ymm10,320-256-128(%rbx) + vpaddd %ymm10,%ymm4,%ymm4 + vinserti128 $1,%xmm8,%ymm11,%ymm11 + vpsrld $27,%ymm0,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vmovd -16(%r12),%xmm12 + + vpslld $30,%ymm1,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vmovd -16(%r8),%xmm8 + vpaddd %ymm5,%ymm4,%ymm4 + + vpsrld $2,%ymm1,%ymm1 + vpaddd %ymm7,%ymm4,%ymm4 + vpshufb %ymm9,%ymm11,%ymm11 + vpor %ymm6,%ymm1,%ymm1 + vmovd -16(%r13),%xmm7 + vmovd -16(%r9),%xmm6 + vpinsrd $1,-16(%r14),%xmm12,%xmm12 + vpinsrd $1,-16(%r10),%xmm8,%xmm8 + vpinsrd $1,-16(%r15),%xmm7,%xmm7 + vpunpckldq %ymm7,%ymm12,%ymm12 + vpinsrd $1,-16(%r11),%xmm6,%xmm6 + vpunpckldq %ymm6,%ymm8,%ymm8 + vpaddd %ymm15,%ymm3,%ymm3 + vpslld $5,%ymm4,%ymm7 + vpandn %ymm2,%ymm0,%ymm6 + vpand %ymm1,%ymm0,%ymm5 + + vmovdqa %ymm11,352-256-128(%rbx) + vpaddd %ymm11,%ymm3,%ymm3 + vinserti128 $1,%xmm8,%ymm12,%ymm12 + vpsrld $27,%ymm4,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vmovd -12(%r12),%xmm13 + + vpslld $30,%ymm0,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vmovd -12(%r8),%xmm8 + vpaddd %ymm5,%ymm3,%ymm3 + + vpsrld $2,%ymm0,%ymm0 + vpaddd %ymm7,%ymm3,%ymm3 + vpshufb %ymm9,%ymm12,%ymm12 + vpor %ymm6,%ymm0,%ymm0 + vmovd -12(%r13),%xmm7 + vmovd -12(%r9),%xmm6 + vpinsrd $1,-12(%r14),%xmm13,%xmm13 + vpinsrd $1,-12(%r10),%xmm8,%xmm8 + vpinsrd $1,-12(%r15),%xmm7,%xmm7 + vpunpckldq %ymm7,%ymm13,%ymm13 + vpinsrd $1,-12(%r11),%xmm6,%xmm6 + vpunpckldq %ymm6,%ymm8,%ymm8 + vpaddd %ymm15,%ymm2,%ymm2 + vpslld $5,%ymm3,%ymm7 + vpandn %ymm1,%ymm4,%ymm6 + vpand %ymm0,%ymm4,%ymm5 + + vmovdqa %ymm12,384-256-128(%rbx) + vpaddd %ymm12,%ymm2,%ymm2 + vinserti128 $1,%xmm8,%ymm13,%ymm13 + vpsrld $27,%ymm3,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vmovd -8(%r12),%xmm14 + + vpslld $30,%ymm4,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vmovd -8(%r8),%xmm8 + vpaddd %ymm5,%ymm2,%ymm2 + + vpsrld $2,%ymm4,%ymm4 + vpaddd %ymm7,%ymm2,%ymm2 + vpshufb %ymm9,%ymm13,%ymm13 + vpor %ymm6,%ymm4,%ymm4 + vmovd -8(%r13),%xmm7 + vmovd -8(%r9),%xmm6 + vpinsrd $1,-8(%r14),%xmm14,%xmm14 + vpinsrd $1,-8(%r10),%xmm8,%xmm8 + vpinsrd $1,-8(%r15),%xmm7,%xmm7 + vpunpckldq %ymm7,%ymm14,%ymm14 + vpinsrd $1,-8(%r11),%xmm6,%xmm6 + vpunpckldq %ymm6,%ymm8,%ymm8 + vpaddd %ymm15,%ymm1,%ymm1 + vpslld $5,%ymm2,%ymm7 + vpandn %ymm0,%ymm3,%ymm6 + vpand %ymm4,%ymm3,%ymm5 + + vmovdqa %ymm13,416-256-128(%rbx) + vpaddd %ymm13,%ymm1,%ymm1 + vinserti128 $1,%xmm8,%ymm14,%ymm14 + vpsrld $27,%ymm2,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vmovd -4(%r12),%xmm10 + + vpslld $30,%ymm3,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vmovd -4(%r8),%xmm8 + vpaddd %ymm5,%ymm1,%ymm1 + + vpsrld $2,%ymm3,%ymm3 + vpaddd %ymm7,%ymm1,%ymm1 + vpshufb %ymm9,%ymm14,%ymm14 + vpor %ymm6,%ymm3,%ymm3 + vmovdqa 0-128(%rax),%ymm11 + vmovd -4(%r13),%xmm7 + vmovd -4(%r9),%xmm6 + vpinsrd $1,-4(%r14),%xmm10,%xmm10 + vpinsrd $1,-4(%r10),%xmm8,%xmm8 + vpinsrd $1,-4(%r15),%xmm7,%xmm7 + vpunpckldq %ymm7,%ymm10,%ymm10 + vpinsrd $1,-4(%r11),%xmm6,%xmm6 + vpunpckldq %ymm6,%ymm8,%ymm8 + vpaddd %ymm15,%ymm0,%ymm0 + prefetcht0 63(%r12) + vpslld $5,%ymm1,%ymm7 + vpandn %ymm4,%ymm2,%ymm6 + vpand %ymm3,%ymm2,%ymm5 + + vmovdqa %ymm14,448-256-128(%rbx) + vpaddd %ymm14,%ymm0,%ymm0 + vinserti128 $1,%xmm8,%ymm10,%ymm10 + vpsrld $27,%ymm1,%ymm8 + prefetcht0 63(%r13) + vpxor %ymm6,%ymm5,%ymm5 + + vpslld $30,%ymm2,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + prefetcht0 63(%r14) + vpaddd %ymm5,%ymm0,%ymm0 + + vpsrld $2,%ymm2,%ymm2 + vpaddd %ymm7,%ymm0,%ymm0 + prefetcht0 63(%r15) + vpshufb %ymm9,%ymm10,%ymm10 + vpor %ymm6,%ymm2,%ymm2 + vmovdqa 32-128(%rax),%ymm12 + vpxor %ymm13,%ymm11,%ymm11 + vmovdqa 64-128(%rax),%ymm13 + + vpaddd %ymm15,%ymm4,%ymm4 + vpslld $5,%ymm0,%ymm7 + vpandn %ymm3,%ymm1,%ymm6 + prefetcht0 63(%r8) + vpand %ymm2,%ymm1,%ymm5 + + vmovdqa %ymm10,480-256-128(%rbx) + vpaddd %ymm10,%ymm4,%ymm4 + vpxor 256-256-128(%rbx),%ymm11,%ymm11 + vpsrld $27,%ymm0,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vpxor %ymm13,%ymm11,%ymm11 + prefetcht0 63(%r9) + + vpslld $30,%ymm1,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm4,%ymm4 + prefetcht0 63(%r10) + vpsrld $31,%ymm11,%ymm9 + vpaddd %ymm11,%ymm11,%ymm11 + + vpsrld $2,%ymm1,%ymm1 + prefetcht0 63(%r11) + vpaddd %ymm7,%ymm4,%ymm4 + vpor %ymm9,%ymm11,%ymm11 + vpor %ymm6,%ymm1,%ymm1 + vpxor %ymm14,%ymm12,%ymm12 + vmovdqa 96-128(%rax),%ymm14 + + vpaddd %ymm15,%ymm3,%ymm3 + vpslld $5,%ymm4,%ymm7 + vpandn %ymm2,%ymm0,%ymm6 + + vpand %ymm1,%ymm0,%ymm5 + + vmovdqa %ymm11,0-128(%rax) + vpaddd %ymm11,%ymm3,%ymm3 + vpxor 288-256-128(%rbx),%ymm12,%ymm12 + vpsrld $27,%ymm4,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vpxor %ymm14,%ymm12,%ymm12 + + + vpslld $30,%ymm0,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm3,%ymm3 + + vpsrld $31,%ymm12,%ymm9 + vpaddd %ymm12,%ymm12,%ymm12 + + vpsrld $2,%ymm0,%ymm0 + + vpaddd %ymm7,%ymm3,%ymm3 + vpor %ymm9,%ymm12,%ymm12 + vpor %ymm6,%ymm0,%ymm0 + vpxor %ymm10,%ymm13,%ymm13 + vmovdqa 128-128(%rax),%ymm10 + + vpaddd %ymm15,%ymm2,%ymm2 + vpslld $5,%ymm3,%ymm7 + vpandn %ymm1,%ymm4,%ymm6 + + vpand %ymm0,%ymm4,%ymm5 + + vmovdqa %ymm12,32-128(%rax) + vpaddd %ymm12,%ymm2,%ymm2 + vpxor 320-256-128(%rbx),%ymm13,%ymm13 + vpsrld $27,%ymm3,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vpxor %ymm10,%ymm13,%ymm13 + + + vpslld $30,%ymm4,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm2,%ymm2 + + vpsrld $31,%ymm13,%ymm9 + vpaddd %ymm13,%ymm13,%ymm13 + + vpsrld $2,%ymm4,%ymm4 + + vpaddd %ymm7,%ymm2,%ymm2 + vpor %ymm9,%ymm13,%ymm13 + vpor %ymm6,%ymm4,%ymm4 + vpxor %ymm11,%ymm14,%ymm14 + vmovdqa 160-128(%rax),%ymm11 + + vpaddd %ymm15,%ymm1,%ymm1 + vpslld $5,%ymm2,%ymm7 + vpandn %ymm0,%ymm3,%ymm6 + + vpand %ymm4,%ymm3,%ymm5 + + vmovdqa %ymm13,64-128(%rax) + vpaddd %ymm13,%ymm1,%ymm1 + vpxor 352-256-128(%rbx),%ymm14,%ymm14 + vpsrld $27,%ymm2,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vpxor %ymm11,%ymm14,%ymm14 + + + vpslld $30,%ymm3,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm1,%ymm1 + + vpsrld $31,%ymm14,%ymm9 + vpaddd %ymm14,%ymm14,%ymm14 + + vpsrld $2,%ymm3,%ymm3 + + vpaddd %ymm7,%ymm1,%ymm1 + vpor %ymm9,%ymm14,%ymm14 + vpor %ymm6,%ymm3,%ymm3 + vpxor %ymm12,%ymm10,%ymm10 + vmovdqa 192-128(%rax),%ymm12 + + vpaddd %ymm15,%ymm0,%ymm0 + vpslld $5,%ymm1,%ymm7 + vpandn %ymm4,%ymm2,%ymm6 + + vpand %ymm3,%ymm2,%ymm5 + + vmovdqa %ymm14,96-128(%rax) + vpaddd %ymm14,%ymm0,%ymm0 + vpxor 384-256-128(%rbx),%ymm10,%ymm10 + vpsrld $27,%ymm1,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vpxor %ymm12,%ymm10,%ymm10 + + + vpslld $30,%ymm2,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm0,%ymm0 + + vpsrld $31,%ymm10,%ymm9 + vpaddd %ymm10,%ymm10,%ymm10 + + vpsrld $2,%ymm2,%ymm2 + + vpaddd %ymm7,%ymm0,%ymm0 + vpor %ymm9,%ymm10,%ymm10 + vpor %ymm6,%ymm2,%ymm2 + vmovdqa 0(%rbp),%ymm15 + vpxor %ymm13,%ymm11,%ymm11 + vmovdqa 224-128(%rax),%ymm13 + + vpslld $5,%ymm0,%ymm7 + vpaddd %ymm15,%ymm4,%ymm4 + vpxor %ymm1,%ymm3,%ymm5 + vmovdqa %ymm10,128-128(%rax) + vpaddd %ymm10,%ymm4,%ymm4 + vpxor 416-256-128(%rbx),%ymm11,%ymm11 + vpsrld $27,%ymm0,%ymm8 + vpxor %ymm2,%ymm5,%ymm5 + vpxor %ymm13,%ymm11,%ymm11 + + vpslld $30,%ymm1,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm4,%ymm4 + vpsrld $31,%ymm11,%ymm9 + vpaddd %ymm11,%ymm11,%ymm11 + + vpsrld $2,%ymm1,%ymm1 + vpaddd %ymm7,%ymm4,%ymm4 + vpor %ymm9,%ymm11,%ymm11 + vpor %ymm6,%ymm1,%ymm1 + vpxor %ymm14,%ymm12,%ymm12 + vmovdqa 256-256-128(%rbx),%ymm14 + + vpslld $5,%ymm4,%ymm7 + vpaddd %ymm15,%ymm3,%ymm3 + vpxor %ymm0,%ymm2,%ymm5 + vmovdqa %ymm11,160-128(%rax) + vpaddd %ymm11,%ymm3,%ymm3 + vpxor 448-256-128(%rbx),%ymm12,%ymm12 + vpsrld $27,%ymm4,%ymm8 + vpxor %ymm1,%ymm5,%ymm5 + vpxor %ymm14,%ymm12,%ymm12 + + vpslld $30,%ymm0,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm3,%ymm3 + vpsrld $31,%ymm12,%ymm9 + vpaddd %ymm12,%ymm12,%ymm12 + + vpsrld $2,%ymm0,%ymm0 + vpaddd %ymm7,%ymm3,%ymm3 + vpor %ymm9,%ymm12,%ymm12 + vpor %ymm6,%ymm0,%ymm0 + vpxor %ymm10,%ymm13,%ymm13 + vmovdqa 288-256-128(%rbx),%ymm10 + + vpslld $5,%ymm3,%ymm7 + vpaddd %ymm15,%ymm2,%ymm2 + vpxor %ymm4,%ymm1,%ymm5 + vmovdqa %ymm12,192-128(%rax) + vpaddd %ymm12,%ymm2,%ymm2 + vpxor 480-256-128(%rbx),%ymm13,%ymm13 + vpsrld $27,%ymm3,%ymm8 + vpxor %ymm0,%ymm5,%ymm5 + vpxor %ymm10,%ymm13,%ymm13 + + vpslld $30,%ymm4,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm2,%ymm2 + vpsrld $31,%ymm13,%ymm9 + vpaddd %ymm13,%ymm13,%ymm13 + + vpsrld $2,%ymm4,%ymm4 + vpaddd %ymm7,%ymm2,%ymm2 + vpor %ymm9,%ymm13,%ymm13 + vpor %ymm6,%ymm4,%ymm4 + vpxor %ymm11,%ymm14,%ymm14 + vmovdqa 320-256-128(%rbx),%ymm11 + + vpslld $5,%ymm2,%ymm7 + vpaddd %ymm15,%ymm1,%ymm1 + vpxor %ymm3,%ymm0,%ymm5 + vmovdqa %ymm13,224-128(%rax) + vpaddd %ymm13,%ymm1,%ymm1 + vpxor 0-128(%rax),%ymm14,%ymm14 + vpsrld $27,%ymm2,%ymm8 + vpxor %ymm4,%ymm5,%ymm5 + vpxor %ymm11,%ymm14,%ymm14 + + vpslld $30,%ymm3,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm1,%ymm1 + vpsrld $31,%ymm14,%ymm9 + vpaddd %ymm14,%ymm14,%ymm14 + + vpsrld $2,%ymm3,%ymm3 + vpaddd %ymm7,%ymm1,%ymm1 + vpor %ymm9,%ymm14,%ymm14 + vpor %ymm6,%ymm3,%ymm3 + vpxor %ymm12,%ymm10,%ymm10 + vmovdqa 352-256-128(%rbx),%ymm12 + + vpslld $5,%ymm1,%ymm7 + vpaddd %ymm15,%ymm0,%ymm0 + vpxor %ymm2,%ymm4,%ymm5 + vmovdqa %ymm14,256-256-128(%rbx) + vpaddd %ymm14,%ymm0,%ymm0 + vpxor 32-128(%rax),%ymm10,%ymm10 + vpsrld $27,%ymm1,%ymm8 + vpxor %ymm3,%ymm5,%ymm5 + vpxor %ymm12,%ymm10,%ymm10 + + vpslld $30,%ymm2,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm0,%ymm0 + vpsrld $31,%ymm10,%ymm9 + vpaddd %ymm10,%ymm10,%ymm10 + + vpsrld $2,%ymm2,%ymm2 + vpaddd %ymm7,%ymm0,%ymm0 + vpor %ymm9,%ymm10,%ymm10 + vpor %ymm6,%ymm2,%ymm2 + vpxor %ymm13,%ymm11,%ymm11 + vmovdqa 384-256-128(%rbx),%ymm13 + + vpslld $5,%ymm0,%ymm7 + vpaddd %ymm15,%ymm4,%ymm4 + vpxor %ymm1,%ymm3,%ymm5 + vmovdqa %ymm10,288-256-128(%rbx) + vpaddd %ymm10,%ymm4,%ymm4 + vpxor 64-128(%rax),%ymm11,%ymm11 + vpsrld $27,%ymm0,%ymm8 + vpxor %ymm2,%ymm5,%ymm5 + vpxor %ymm13,%ymm11,%ymm11 + + vpslld $30,%ymm1,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm4,%ymm4 + vpsrld $31,%ymm11,%ymm9 + vpaddd %ymm11,%ymm11,%ymm11 + + vpsrld $2,%ymm1,%ymm1 + vpaddd %ymm7,%ymm4,%ymm4 + vpor %ymm9,%ymm11,%ymm11 + vpor %ymm6,%ymm1,%ymm1 + vpxor %ymm14,%ymm12,%ymm12 + vmovdqa 416-256-128(%rbx),%ymm14 + + vpslld $5,%ymm4,%ymm7 + vpaddd %ymm15,%ymm3,%ymm3 + vpxor %ymm0,%ymm2,%ymm5 + vmovdqa %ymm11,320-256-128(%rbx) + vpaddd %ymm11,%ymm3,%ymm3 + vpxor 96-128(%rax),%ymm12,%ymm12 + vpsrld $27,%ymm4,%ymm8 + vpxor %ymm1,%ymm5,%ymm5 + vpxor %ymm14,%ymm12,%ymm12 + + vpslld $30,%ymm0,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm3,%ymm3 + vpsrld $31,%ymm12,%ymm9 + vpaddd %ymm12,%ymm12,%ymm12 + + vpsrld $2,%ymm0,%ymm0 + vpaddd %ymm7,%ymm3,%ymm3 + vpor %ymm9,%ymm12,%ymm12 + vpor %ymm6,%ymm0,%ymm0 + vpxor %ymm10,%ymm13,%ymm13 + vmovdqa 448-256-128(%rbx),%ymm10 + + vpslld $5,%ymm3,%ymm7 + vpaddd %ymm15,%ymm2,%ymm2 + vpxor %ymm4,%ymm1,%ymm5 + vmovdqa %ymm12,352-256-128(%rbx) + vpaddd %ymm12,%ymm2,%ymm2 + vpxor 128-128(%rax),%ymm13,%ymm13 + vpsrld $27,%ymm3,%ymm8 + vpxor %ymm0,%ymm5,%ymm5 + vpxor %ymm10,%ymm13,%ymm13 + + vpslld $30,%ymm4,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm2,%ymm2 + vpsrld $31,%ymm13,%ymm9 + vpaddd %ymm13,%ymm13,%ymm13 + + vpsrld $2,%ymm4,%ymm4 + vpaddd %ymm7,%ymm2,%ymm2 + vpor %ymm9,%ymm13,%ymm13 + vpor %ymm6,%ymm4,%ymm4 + vpxor %ymm11,%ymm14,%ymm14 + vmovdqa 480-256-128(%rbx),%ymm11 + + vpslld $5,%ymm2,%ymm7 + vpaddd %ymm15,%ymm1,%ymm1 + vpxor %ymm3,%ymm0,%ymm5 + vmovdqa %ymm13,384-256-128(%rbx) + vpaddd %ymm13,%ymm1,%ymm1 + vpxor 160-128(%rax),%ymm14,%ymm14 + vpsrld $27,%ymm2,%ymm8 + vpxor %ymm4,%ymm5,%ymm5 + vpxor %ymm11,%ymm14,%ymm14 + + vpslld $30,%ymm3,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm1,%ymm1 + vpsrld $31,%ymm14,%ymm9 + vpaddd %ymm14,%ymm14,%ymm14 + + vpsrld $2,%ymm3,%ymm3 + vpaddd %ymm7,%ymm1,%ymm1 + vpor %ymm9,%ymm14,%ymm14 + vpor %ymm6,%ymm3,%ymm3 + vpxor %ymm12,%ymm10,%ymm10 + vmovdqa 0-128(%rax),%ymm12 + + vpslld $5,%ymm1,%ymm7 + vpaddd %ymm15,%ymm0,%ymm0 + vpxor %ymm2,%ymm4,%ymm5 + vmovdqa %ymm14,416-256-128(%rbx) + vpaddd %ymm14,%ymm0,%ymm0 + vpxor 192-128(%rax),%ymm10,%ymm10 + vpsrld $27,%ymm1,%ymm8 + vpxor %ymm3,%ymm5,%ymm5 + vpxor %ymm12,%ymm10,%ymm10 + + vpslld $30,%ymm2,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm0,%ymm0 + vpsrld $31,%ymm10,%ymm9 + vpaddd %ymm10,%ymm10,%ymm10 + + vpsrld $2,%ymm2,%ymm2 + vpaddd %ymm7,%ymm0,%ymm0 + vpor %ymm9,%ymm10,%ymm10 + vpor %ymm6,%ymm2,%ymm2 + vpxor %ymm13,%ymm11,%ymm11 + vmovdqa 32-128(%rax),%ymm13 + + vpslld $5,%ymm0,%ymm7 + vpaddd %ymm15,%ymm4,%ymm4 + vpxor %ymm1,%ymm3,%ymm5 + vmovdqa %ymm10,448-256-128(%rbx) + vpaddd %ymm10,%ymm4,%ymm4 + vpxor 224-128(%rax),%ymm11,%ymm11 + vpsrld $27,%ymm0,%ymm8 + vpxor %ymm2,%ymm5,%ymm5 + vpxor %ymm13,%ymm11,%ymm11 + + vpslld $30,%ymm1,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm4,%ymm4 + vpsrld $31,%ymm11,%ymm9 + vpaddd %ymm11,%ymm11,%ymm11 + + vpsrld $2,%ymm1,%ymm1 + vpaddd %ymm7,%ymm4,%ymm4 + vpor %ymm9,%ymm11,%ymm11 + vpor %ymm6,%ymm1,%ymm1 + vpxor %ymm14,%ymm12,%ymm12 + vmovdqa 64-128(%rax),%ymm14 + + vpslld $5,%ymm4,%ymm7 + vpaddd %ymm15,%ymm3,%ymm3 + vpxor %ymm0,%ymm2,%ymm5 + vmovdqa %ymm11,480-256-128(%rbx) + vpaddd %ymm11,%ymm3,%ymm3 + vpxor 256-256-128(%rbx),%ymm12,%ymm12 + vpsrld $27,%ymm4,%ymm8 + vpxor %ymm1,%ymm5,%ymm5 + vpxor %ymm14,%ymm12,%ymm12 + + vpslld $30,%ymm0,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm3,%ymm3 + vpsrld $31,%ymm12,%ymm9 + vpaddd %ymm12,%ymm12,%ymm12 + + vpsrld $2,%ymm0,%ymm0 + vpaddd %ymm7,%ymm3,%ymm3 + vpor %ymm9,%ymm12,%ymm12 + vpor %ymm6,%ymm0,%ymm0 + vpxor %ymm10,%ymm13,%ymm13 + vmovdqa 96-128(%rax),%ymm10 + + vpslld $5,%ymm3,%ymm7 + vpaddd %ymm15,%ymm2,%ymm2 + vpxor %ymm4,%ymm1,%ymm5 + vmovdqa %ymm12,0-128(%rax) + vpaddd %ymm12,%ymm2,%ymm2 + vpxor 288-256-128(%rbx),%ymm13,%ymm13 + vpsrld $27,%ymm3,%ymm8 + vpxor %ymm0,%ymm5,%ymm5 + vpxor %ymm10,%ymm13,%ymm13 + + vpslld $30,%ymm4,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm2,%ymm2 + vpsrld $31,%ymm13,%ymm9 + vpaddd %ymm13,%ymm13,%ymm13 + + vpsrld $2,%ymm4,%ymm4 + vpaddd %ymm7,%ymm2,%ymm2 + vpor %ymm9,%ymm13,%ymm13 + vpor %ymm6,%ymm4,%ymm4 + vpxor %ymm11,%ymm14,%ymm14 + vmovdqa 128-128(%rax),%ymm11 + + vpslld $5,%ymm2,%ymm7 + vpaddd %ymm15,%ymm1,%ymm1 + vpxor %ymm3,%ymm0,%ymm5 + vmovdqa %ymm13,32-128(%rax) + vpaddd %ymm13,%ymm1,%ymm1 + vpxor 320-256-128(%rbx),%ymm14,%ymm14 + vpsrld $27,%ymm2,%ymm8 + vpxor %ymm4,%ymm5,%ymm5 + vpxor %ymm11,%ymm14,%ymm14 + + vpslld $30,%ymm3,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm1,%ymm1 + vpsrld $31,%ymm14,%ymm9 + vpaddd %ymm14,%ymm14,%ymm14 + + vpsrld $2,%ymm3,%ymm3 + vpaddd %ymm7,%ymm1,%ymm1 + vpor %ymm9,%ymm14,%ymm14 + vpor %ymm6,%ymm3,%ymm3 + vpxor %ymm12,%ymm10,%ymm10 + vmovdqa 160-128(%rax),%ymm12 + + vpslld $5,%ymm1,%ymm7 + vpaddd %ymm15,%ymm0,%ymm0 + vpxor %ymm2,%ymm4,%ymm5 + vmovdqa %ymm14,64-128(%rax) + vpaddd %ymm14,%ymm0,%ymm0 + vpxor 352-256-128(%rbx),%ymm10,%ymm10 + vpsrld $27,%ymm1,%ymm8 + vpxor %ymm3,%ymm5,%ymm5 + vpxor %ymm12,%ymm10,%ymm10 + + vpslld $30,%ymm2,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm0,%ymm0 + vpsrld $31,%ymm10,%ymm9 + vpaddd %ymm10,%ymm10,%ymm10 + + vpsrld $2,%ymm2,%ymm2 + vpaddd %ymm7,%ymm0,%ymm0 + vpor %ymm9,%ymm10,%ymm10 + vpor %ymm6,%ymm2,%ymm2 + vpxor %ymm13,%ymm11,%ymm11 + vmovdqa 192-128(%rax),%ymm13 + + vpslld $5,%ymm0,%ymm7 + vpaddd %ymm15,%ymm4,%ymm4 + vpxor %ymm1,%ymm3,%ymm5 + vmovdqa %ymm10,96-128(%rax) + vpaddd %ymm10,%ymm4,%ymm4 + vpxor 384-256-128(%rbx),%ymm11,%ymm11 + vpsrld $27,%ymm0,%ymm8 + vpxor %ymm2,%ymm5,%ymm5 + vpxor %ymm13,%ymm11,%ymm11 + + vpslld $30,%ymm1,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm4,%ymm4 + vpsrld $31,%ymm11,%ymm9 + vpaddd %ymm11,%ymm11,%ymm11 + + vpsrld $2,%ymm1,%ymm1 + vpaddd %ymm7,%ymm4,%ymm4 + vpor %ymm9,%ymm11,%ymm11 + vpor %ymm6,%ymm1,%ymm1 + vpxor %ymm14,%ymm12,%ymm12 + vmovdqa 224-128(%rax),%ymm14 + + vpslld $5,%ymm4,%ymm7 + vpaddd %ymm15,%ymm3,%ymm3 + vpxor %ymm0,%ymm2,%ymm5 + vmovdqa %ymm11,128-128(%rax) + vpaddd %ymm11,%ymm3,%ymm3 + vpxor 416-256-128(%rbx),%ymm12,%ymm12 + vpsrld $27,%ymm4,%ymm8 + vpxor %ymm1,%ymm5,%ymm5 + vpxor %ymm14,%ymm12,%ymm12 + + vpslld $30,%ymm0,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm3,%ymm3 + vpsrld $31,%ymm12,%ymm9 + vpaddd %ymm12,%ymm12,%ymm12 + + vpsrld $2,%ymm0,%ymm0 + vpaddd %ymm7,%ymm3,%ymm3 + vpor %ymm9,%ymm12,%ymm12 + vpor %ymm6,%ymm0,%ymm0 + vpxor %ymm10,%ymm13,%ymm13 + vmovdqa 256-256-128(%rbx),%ymm10 + + vpslld $5,%ymm3,%ymm7 + vpaddd %ymm15,%ymm2,%ymm2 + vpxor %ymm4,%ymm1,%ymm5 + vmovdqa %ymm12,160-128(%rax) + vpaddd %ymm12,%ymm2,%ymm2 + vpxor 448-256-128(%rbx),%ymm13,%ymm13 + vpsrld $27,%ymm3,%ymm8 + vpxor %ymm0,%ymm5,%ymm5 + vpxor %ymm10,%ymm13,%ymm13 + + vpslld $30,%ymm4,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm2,%ymm2 + vpsrld $31,%ymm13,%ymm9 + vpaddd %ymm13,%ymm13,%ymm13 + + vpsrld $2,%ymm4,%ymm4 + vpaddd %ymm7,%ymm2,%ymm2 + vpor %ymm9,%ymm13,%ymm13 + vpor %ymm6,%ymm4,%ymm4 + vpxor %ymm11,%ymm14,%ymm14 + vmovdqa 288-256-128(%rbx),%ymm11 + + vpslld $5,%ymm2,%ymm7 + vpaddd %ymm15,%ymm1,%ymm1 + vpxor %ymm3,%ymm0,%ymm5 + vmovdqa %ymm13,192-128(%rax) + vpaddd %ymm13,%ymm1,%ymm1 + vpxor 480-256-128(%rbx),%ymm14,%ymm14 + vpsrld $27,%ymm2,%ymm8 + vpxor %ymm4,%ymm5,%ymm5 + vpxor %ymm11,%ymm14,%ymm14 + + vpslld $30,%ymm3,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm1,%ymm1 + vpsrld $31,%ymm14,%ymm9 + vpaddd %ymm14,%ymm14,%ymm14 + + vpsrld $2,%ymm3,%ymm3 + vpaddd %ymm7,%ymm1,%ymm1 + vpor %ymm9,%ymm14,%ymm14 + vpor %ymm6,%ymm3,%ymm3 + vpxor %ymm12,%ymm10,%ymm10 + vmovdqa 320-256-128(%rbx),%ymm12 + + vpslld $5,%ymm1,%ymm7 + vpaddd %ymm15,%ymm0,%ymm0 + vpxor %ymm2,%ymm4,%ymm5 + vmovdqa %ymm14,224-128(%rax) + vpaddd %ymm14,%ymm0,%ymm0 + vpxor 0-128(%rax),%ymm10,%ymm10 + vpsrld $27,%ymm1,%ymm8 + vpxor %ymm3,%ymm5,%ymm5 + vpxor %ymm12,%ymm10,%ymm10 + + vpslld $30,%ymm2,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm0,%ymm0 + vpsrld $31,%ymm10,%ymm9 + vpaddd %ymm10,%ymm10,%ymm10 + + vpsrld $2,%ymm2,%ymm2 + vpaddd %ymm7,%ymm0,%ymm0 + vpor %ymm9,%ymm10,%ymm10 + vpor %ymm6,%ymm2,%ymm2 + vmovdqa 32(%rbp),%ymm15 + vpxor %ymm13,%ymm11,%ymm11 + vmovdqa 352-256-128(%rbx),%ymm13 + + vpaddd %ymm15,%ymm4,%ymm4 + vpslld $5,%ymm0,%ymm7 + vpand %ymm2,%ymm3,%ymm6 + vpxor 32-128(%rax),%ymm11,%ymm11 + + vpaddd %ymm6,%ymm4,%ymm4 + vpsrld $27,%ymm0,%ymm8 + vpxor %ymm2,%ymm3,%ymm5 + vpxor %ymm13,%ymm11,%ymm11 + + vmovdqu %ymm10,256-256-128(%rbx) + vpaddd %ymm10,%ymm4,%ymm4 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm11,%ymm9 + vpand %ymm1,%ymm5,%ymm5 + vpaddd %ymm11,%ymm11,%ymm11 + + vpslld $30,%ymm1,%ymm6 + vpaddd %ymm5,%ymm4,%ymm4 + + vpsrld $2,%ymm1,%ymm1 + vpaddd %ymm7,%ymm4,%ymm4 + vpor %ymm9,%ymm11,%ymm11 + vpor %ymm6,%ymm1,%ymm1 + vpxor %ymm14,%ymm12,%ymm12 + vmovdqa 384-256-128(%rbx),%ymm14 + + vpaddd %ymm15,%ymm3,%ymm3 + vpslld $5,%ymm4,%ymm7 + vpand %ymm1,%ymm2,%ymm6 + vpxor 64-128(%rax),%ymm12,%ymm12 + + vpaddd %ymm6,%ymm3,%ymm3 + vpsrld $27,%ymm4,%ymm8 + vpxor %ymm1,%ymm2,%ymm5 + vpxor %ymm14,%ymm12,%ymm12 + + vmovdqu %ymm11,288-256-128(%rbx) + vpaddd %ymm11,%ymm3,%ymm3 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm12,%ymm9 + vpand %ymm0,%ymm5,%ymm5 + vpaddd %ymm12,%ymm12,%ymm12 + + vpslld $30,%ymm0,%ymm6 + vpaddd %ymm5,%ymm3,%ymm3 + + vpsrld $2,%ymm0,%ymm0 + vpaddd %ymm7,%ymm3,%ymm3 + vpor %ymm9,%ymm12,%ymm12 + vpor %ymm6,%ymm0,%ymm0 + vpxor %ymm10,%ymm13,%ymm13 + vmovdqa 416-256-128(%rbx),%ymm10 + + vpaddd %ymm15,%ymm2,%ymm2 + vpslld $5,%ymm3,%ymm7 + vpand %ymm0,%ymm1,%ymm6 + vpxor 96-128(%rax),%ymm13,%ymm13 + + vpaddd %ymm6,%ymm2,%ymm2 + vpsrld $27,%ymm3,%ymm8 + vpxor %ymm0,%ymm1,%ymm5 + vpxor %ymm10,%ymm13,%ymm13 + + vmovdqu %ymm12,320-256-128(%rbx) + vpaddd %ymm12,%ymm2,%ymm2 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm13,%ymm9 + vpand %ymm4,%ymm5,%ymm5 + vpaddd %ymm13,%ymm13,%ymm13 + + vpslld $30,%ymm4,%ymm6 + vpaddd %ymm5,%ymm2,%ymm2 + + vpsrld $2,%ymm4,%ymm4 + vpaddd %ymm7,%ymm2,%ymm2 + vpor %ymm9,%ymm13,%ymm13 + vpor %ymm6,%ymm4,%ymm4 + vpxor %ymm11,%ymm14,%ymm14 + vmovdqa 448-256-128(%rbx),%ymm11 + + vpaddd %ymm15,%ymm1,%ymm1 + vpslld $5,%ymm2,%ymm7 + vpand %ymm4,%ymm0,%ymm6 + vpxor 128-128(%rax),%ymm14,%ymm14 + + vpaddd %ymm6,%ymm1,%ymm1 + vpsrld $27,%ymm2,%ymm8 + vpxor %ymm4,%ymm0,%ymm5 + vpxor %ymm11,%ymm14,%ymm14 + + vmovdqu %ymm13,352-256-128(%rbx) + vpaddd %ymm13,%ymm1,%ymm1 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm14,%ymm9 + vpand %ymm3,%ymm5,%ymm5 + vpaddd %ymm14,%ymm14,%ymm14 + + vpslld $30,%ymm3,%ymm6 + vpaddd %ymm5,%ymm1,%ymm1 + + vpsrld $2,%ymm3,%ymm3 + vpaddd %ymm7,%ymm1,%ymm1 + vpor %ymm9,%ymm14,%ymm14 + vpor %ymm6,%ymm3,%ymm3 + vpxor %ymm12,%ymm10,%ymm10 + vmovdqa 480-256-128(%rbx),%ymm12 + + vpaddd %ymm15,%ymm0,%ymm0 + vpslld $5,%ymm1,%ymm7 + vpand %ymm3,%ymm4,%ymm6 + vpxor 160-128(%rax),%ymm10,%ymm10 + + vpaddd %ymm6,%ymm0,%ymm0 + vpsrld $27,%ymm1,%ymm8 + vpxor %ymm3,%ymm4,%ymm5 + vpxor %ymm12,%ymm10,%ymm10 + + vmovdqu %ymm14,384-256-128(%rbx) + vpaddd %ymm14,%ymm0,%ymm0 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm10,%ymm9 + vpand %ymm2,%ymm5,%ymm5 + vpaddd %ymm10,%ymm10,%ymm10 + + vpslld $30,%ymm2,%ymm6 + vpaddd %ymm5,%ymm0,%ymm0 + + vpsrld $2,%ymm2,%ymm2 + vpaddd %ymm7,%ymm0,%ymm0 + vpor %ymm9,%ymm10,%ymm10 + vpor %ymm6,%ymm2,%ymm2 + vpxor %ymm13,%ymm11,%ymm11 + vmovdqa 0-128(%rax),%ymm13 + + vpaddd %ymm15,%ymm4,%ymm4 + vpslld $5,%ymm0,%ymm7 + vpand %ymm2,%ymm3,%ymm6 + vpxor 192-128(%rax),%ymm11,%ymm11 + + vpaddd %ymm6,%ymm4,%ymm4 + vpsrld $27,%ymm0,%ymm8 + vpxor %ymm2,%ymm3,%ymm5 + vpxor %ymm13,%ymm11,%ymm11 + + vmovdqu %ymm10,416-256-128(%rbx) + vpaddd %ymm10,%ymm4,%ymm4 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm11,%ymm9 + vpand %ymm1,%ymm5,%ymm5 + vpaddd %ymm11,%ymm11,%ymm11 + + vpslld $30,%ymm1,%ymm6 + vpaddd %ymm5,%ymm4,%ymm4 + + vpsrld $2,%ymm1,%ymm1 + vpaddd %ymm7,%ymm4,%ymm4 + vpor %ymm9,%ymm11,%ymm11 + vpor %ymm6,%ymm1,%ymm1 + vpxor %ymm14,%ymm12,%ymm12 + vmovdqa 32-128(%rax),%ymm14 + + vpaddd %ymm15,%ymm3,%ymm3 + vpslld $5,%ymm4,%ymm7 + vpand %ymm1,%ymm2,%ymm6 + vpxor 224-128(%rax),%ymm12,%ymm12 + + vpaddd %ymm6,%ymm3,%ymm3 + vpsrld $27,%ymm4,%ymm8 + vpxor %ymm1,%ymm2,%ymm5 + vpxor %ymm14,%ymm12,%ymm12 + + vmovdqu %ymm11,448-256-128(%rbx) + vpaddd %ymm11,%ymm3,%ymm3 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm12,%ymm9 + vpand %ymm0,%ymm5,%ymm5 + vpaddd %ymm12,%ymm12,%ymm12 + + vpslld $30,%ymm0,%ymm6 + vpaddd %ymm5,%ymm3,%ymm3 + + vpsrld $2,%ymm0,%ymm0 + vpaddd %ymm7,%ymm3,%ymm3 + vpor %ymm9,%ymm12,%ymm12 + vpor %ymm6,%ymm0,%ymm0 + vpxor %ymm10,%ymm13,%ymm13 + vmovdqa 64-128(%rax),%ymm10 + + vpaddd %ymm15,%ymm2,%ymm2 + vpslld $5,%ymm3,%ymm7 + vpand %ymm0,%ymm1,%ymm6 + vpxor 256-256-128(%rbx),%ymm13,%ymm13 + + vpaddd %ymm6,%ymm2,%ymm2 + vpsrld $27,%ymm3,%ymm8 + vpxor %ymm0,%ymm1,%ymm5 + vpxor %ymm10,%ymm13,%ymm13 + + vmovdqu %ymm12,480-256-128(%rbx) + vpaddd %ymm12,%ymm2,%ymm2 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm13,%ymm9 + vpand %ymm4,%ymm5,%ymm5 + vpaddd %ymm13,%ymm13,%ymm13 + + vpslld $30,%ymm4,%ymm6 + vpaddd %ymm5,%ymm2,%ymm2 + + vpsrld $2,%ymm4,%ymm4 + vpaddd %ymm7,%ymm2,%ymm2 + vpor %ymm9,%ymm13,%ymm13 + vpor %ymm6,%ymm4,%ymm4 + vpxor %ymm11,%ymm14,%ymm14 + vmovdqa 96-128(%rax),%ymm11 + + vpaddd %ymm15,%ymm1,%ymm1 + vpslld $5,%ymm2,%ymm7 + vpand %ymm4,%ymm0,%ymm6 + vpxor 288-256-128(%rbx),%ymm14,%ymm14 + + vpaddd %ymm6,%ymm1,%ymm1 + vpsrld $27,%ymm2,%ymm8 + vpxor %ymm4,%ymm0,%ymm5 + vpxor %ymm11,%ymm14,%ymm14 + + vmovdqu %ymm13,0-128(%rax) + vpaddd %ymm13,%ymm1,%ymm1 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm14,%ymm9 + vpand %ymm3,%ymm5,%ymm5 + vpaddd %ymm14,%ymm14,%ymm14 + + vpslld $30,%ymm3,%ymm6 + vpaddd %ymm5,%ymm1,%ymm1 + + vpsrld $2,%ymm3,%ymm3 + vpaddd %ymm7,%ymm1,%ymm1 + vpor %ymm9,%ymm14,%ymm14 + vpor %ymm6,%ymm3,%ymm3 + vpxor %ymm12,%ymm10,%ymm10 + vmovdqa 128-128(%rax),%ymm12 + + vpaddd %ymm15,%ymm0,%ymm0 + vpslld $5,%ymm1,%ymm7 + vpand %ymm3,%ymm4,%ymm6 + vpxor 320-256-128(%rbx),%ymm10,%ymm10 + + vpaddd %ymm6,%ymm0,%ymm0 + vpsrld $27,%ymm1,%ymm8 + vpxor %ymm3,%ymm4,%ymm5 + vpxor %ymm12,%ymm10,%ymm10 + + vmovdqu %ymm14,32-128(%rax) + vpaddd %ymm14,%ymm0,%ymm0 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm10,%ymm9 + vpand %ymm2,%ymm5,%ymm5 + vpaddd %ymm10,%ymm10,%ymm10 + + vpslld $30,%ymm2,%ymm6 + vpaddd %ymm5,%ymm0,%ymm0 + + vpsrld $2,%ymm2,%ymm2 + vpaddd %ymm7,%ymm0,%ymm0 + vpor %ymm9,%ymm10,%ymm10 + vpor %ymm6,%ymm2,%ymm2 + vpxor %ymm13,%ymm11,%ymm11 + vmovdqa 160-128(%rax),%ymm13 + + vpaddd %ymm15,%ymm4,%ymm4 + vpslld $5,%ymm0,%ymm7 + vpand %ymm2,%ymm3,%ymm6 + vpxor 352-256-128(%rbx),%ymm11,%ymm11 + + vpaddd %ymm6,%ymm4,%ymm4 + vpsrld $27,%ymm0,%ymm8 + vpxor %ymm2,%ymm3,%ymm5 + vpxor %ymm13,%ymm11,%ymm11 + + vmovdqu %ymm10,64-128(%rax) + vpaddd %ymm10,%ymm4,%ymm4 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm11,%ymm9 + vpand %ymm1,%ymm5,%ymm5 + vpaddd %ymm11,%ymm11,%ymm11 + + vpslld $30,%ymm1,%ymm6 + vpaddd %ymm5,%ymm4,%ymm4 + + vpsrld $2,%ymm1,%ymm1 + vpaddd %ymm7,%ymm4,%ymm4 + vpor %ymm9,%ymm11,%ymm11 + vpor %ymm6,%ymm1,%ymm1 + vpxor %ymm14,%ymm12,%ymm12 + vmovdqa 192-128(%rax),%ymm14 + + vpaddd %ymm15,%ymm3,%ymm3 + vpslld $5,%ymm4,%ymm7 + vpand %ymm1,%ymm2,%ymm6 + vpxor 384-256-128(%rbx),%ymm12,%ymm12 + + vpaddd %ymm6,%ymm3,%ymm3 + vpsrld $27,%ymm4,%ymm8 + vpxor %ymm1,%ymm2,%ymm5 + vpxor %ymm14,%ymm12,%ymm12 + + vmovdqu %ymm11,96-128(%rax) + vpaddd %ymm11,%ymm3,%ymm3 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm12,%ymm9 + vpand %ymm0,%ymm5,%ymm5 + vpaddd %ymm12,%ymm12,%ymm12 + + vpslld $30,%ymm0,%ymm6 + vpaddd %ymm5,%ymm3,%ymm3 + + vpsrld $2,%ymm0,%ymm0 + vpaddd %ymm7,%ymm3,%ymm3 + vpor %ymm9,%ymm12,%ymm12 + vpor %ymm6,%ymm0,%ymm0 + vpxor %ymm10,%ymm13,%ymm13 + vmovdqa 224-128(%rax),%ymm10 + + vpaddd %ymm15,%ymm2,%ymm2 + vpslld $5,%ymm3,%ymm7 + vpand %ymm0,%ymm1,%ymm6 + vpxor 416-256-128(%rbx),%ymm13,%ymm13 + + vpaddd %ymm6,%ymm2,%ymm2 + vpsrld $27,%ymm3,%ymm8 + vpxor %ymm0,%ymm1,%ymm5 + vpxor %ymm10,%ymm13,%ymm13 + + vmovdqu %ymm12,128-128(%rax) + vpaddd %ymm12,%ymm2,%ymm2 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm13,%ymm9 + vpand %ymm4,%ymm5,%ymm5 + vpaddd %ymm13,%ymm13,%ymm13 + + vpslld $30,%ymm4,%ymm6 + vpaddd %ymm5,%ymm2,%ymm2 + + vpsrld $2,%ymm4,%ymm4 + vpaddd %ymm7,%ymm2,%ymm2 + vpor %ymm9,%ymm13,%ymm13 + vpor %ymm6,%ymm4,%ymm4 + vpxor %ymm11,%ymm14,%ymm14 + vmovdqa 256-256-128(%rbx),%ymm11 + + vpaddd %ymm15,%ymm1,%ymm1 + vpslld $5,%ymm2,%ymm7 + vpand %ymm4,%ymm0,%ymm6 + vpxor 448-256-128(%rbx),%ymm14,%ymm14 + + vpaddd %ymm6,%ymm1,%ymm1 + vpsrld $27,%ymm2,%ymm8 + vpxor %ymm4,%ymm0,%ymm5 + vpxor %ymm11,%ymm14,%ymm14 + + vmovdqu %ymm13,160-128(%rax) + vpaddd %ymm13,%ymm1,%ymm1 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm14,%ymm9 + vpand %ymm3,%ymm5,%ymm5 + vpaddd %ymm14,%ymm14,%ymm14 + + vpslld $30,%ymm3,%ymm6 + vpaddd %ymm5,%ymm1,%ymm1 + + vpsrld $2,%ymm3,%ymm3 + vpaddd %ymm7,%ymm1,%ymm1 + vpor %ymm9,%ymm14,%ymm14 + vpor %ymm6,%ymm3,%ymm3 + vpxor %ymm12,%ymm10,%ymm10 + vmovdqa 288-256-128(%rbx),%ymm12 + + vpaddd %ymm15,%ymm0,%ymm0 + vpslld $5,%ymm1,%ymm7 + vpand %ymm3,%ymm4,%ymm6 + vpxor 480-256-128(%rbx),%ymm10,%ymm10 + + vpaddd %ymm6,%ymm0,%ymm0 + vpsrld $27,%ymm1,%ymm8 + vpxor %ymm3,%ymm4,%ymm5 + vpxor %ymm12,%ymm10,%ymm10 + + vmovdqu %ymm14,192-128(%rax) + vpaddd %ymm14,%ymm0,%ymm0 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm10,%ymm9 + vpand %ymm2,%ymm5,%ymm5 + vpaddd %ymm10,%ymm10,%ymm10 + + vpslld $30,%ymm2,%ymm6 + vpaddd %ymm5,%ymm0,%ymm0 + + vpsrld $2,%ymm2,%ymm2 + vpaddd %ymm7,%ymm0,%ymm0 + vpor %ymm9,%ymm10,%ymm10 + vpor %ymm6,%ymm2,%ymm2 + vpxor %ymm13,%ymm11,%ymm11 + vmovdqa 320-256-128(%rbx),%ymm13 + + vpaddd %ymm15,%ymm4,%ymm4 + vpslld $5,%ymm0,%ymm7 + vpand %ymm2,%ymm3,%ymm6 + vpxor 0-128(%rax),%ymm11,%ymm11 + + vpaddd %ymm6,%ymm4,%ymm4 + vpsrld $27,%ymm0,%ymm8 + vpxor %ymm2,%ymm3,%ymm5 + vpxor %ymm13,%ymm11,%ymm11 + + vmovdqu %ymm10,224-128(%rax) + vpaddd %ymm10,%ymm4,%ymm4 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm11,%ymm9 + vpand %ymm1,%ymm5,%ymm5 + vpaddd %ymm11,%ymm11,%ymm11 + + vpslld $30,%ymm1,%ymm6 + vpaddd %ymm5,%ymm4,%ymm4 + + vpsrld $2,%ymm1,%ymm1 + vpaddd %ymm7,%ymm4,%ymm4 + vpor %ymm9,%ymm11,%ymm11 + vpor %ymm6,%ymm1,%ymm1 + vpxor %ymm14,%ymm12,%ymm12 + vmovdqa 352-256-128(%rbx),%ymm14 + + vpaddd %ymm15,%ymm3,%ymm3 + vpslld $5,%ymm4,%ymm7 + vpand %ymm1,%ymm2,%ymm6 + vpxor 32-128(%rax),%ymm12,%ymm12 + + vpaddd %ymm6,%ymm3,%ymm3 + vpsrld $27,%ymm4,%ymm8 + vpxor %ymm1,%ymm2,%ymm5 + vpxor %ymm14,%ymm12,%ymm12 + + vmovdqu %ymm11,256-256-128(%rbx) + vpaddd %ymm11,%ymm3,%ymm3 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm12,%ymm9 + vpand %ymm0,%ymm5,%ymm5 + vpaddd %ymm12,%ymm12,%ymm12 + + vpslld $30,%ymm0,%ymm6 + vpaddd %ymm5,%ymm3,%ymm3 + + vpsrld $2,%ymm0,%ymm0 + vpaddd %ymm7,%ymm3,%ymm3 + vpor %ymm9,%ymm12,%ymm12 + vpor %ymm6,%ymm0,%ymm0 + vpxor %ymm10,%ymm13,%ymm13 + vmovdqa 384-256-128(%rbx),%ymm10 + + vpaddd %ymm15,%ymm2,%ymm2 + vpslld $5,%ymm3,%ymm7 + vpand %ymm0,%ymm1,%ymm6 + vpxor 64-128(%rax),%ymm13,%ymm13 + + vpaddd %ymm6,%ymm2,%ymm2 + vpsrld $27,%ymm3,%ymm8 + vpxor %ymm0,%ymm1,%ymm5 + vpxor %ymm10,%ymm13,%ymm13 + + vmovdqu %ymm12,288-256-128(%rbx) + vpaddd %ymm12,%ymm2,%ymm2 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm13,%ymm9 + vpand %ymm4,%ymm5,%ymm5 + vpaddd %ymm13,%ymm13,%ymm13 + + vpslld $30,%ymm4,%ymm6 + vpaddd %ymm5,%ymm2,%ymm2 + + vpsrld $2,%ymm4,%ymm4 + vpaddd %ymm7,%ymm2,%ymm2 + vpor %ymm9,%ymm13,%ymm13 + vpor %ymm6,%ymm4,%ymm4 + vpxor %ymm11,%ymm14,%ymm14 + vmovdqa 416-256-128(%rbx),%ymm11 + + vpaddd %ymm15,%ymm1,%ymm1 + vpslld $5,%ymm2,%ymm7 + vpand %ymm4,%ymm0,%ymm6 + vpxor 96-128(%rax),%ymm14,%ymm14 + + vpaddd %ymm6,%ymm1,%ymm1 + vpsrld $27,%ymm2,%ymm8 + vpxor %ymm4,%ymm0,%ymm5 + vpxor %ymm11,%ymm14,%ymm14 + + vmovdqu %ymm13,320-256-128(%rbx) + vpaddd %ymm13,%ymm1,%ymm1 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm14,%ymm9 + vpand %ymm3,%ymm5,%ymm5 + vpaddd %ymm14,%ymm14,%ymm14 + + vpslld $30,%ymm3,%ymm6 + vpaddd %ymm5,%ymm1,%ymm1 + + vpsrld $2,%ymm3,%ymm3 + vpaddd %ymm7,%ymm1,%ymm1 + vpor %ymm9,%ymm14,%ymm14 + vpor %ymm6,%ymm3,%ymm3 + vpxor %ymm12,%ymm10,%ymm10 + vmovdqa 448-256-128(%rbx),%ymm12 + + vpaddd %ymm15,%ymm0,%ymm0 + vpslld $5,%ymm1,%ymm7 + vpand %ymm3,%ymm4,%ymm6 + vpxor 128-128(%rax),%ymm10,%ymm10 + + vpaddd %ymm6,%ymm0,%ymm0 + vpsrld $27,%ymm1,%ymm8 + vpxor %ymm3,%ymm4,%ymm5 + vpxor %ymm12,%ymm10,%ymm10 + + vmovdqu %ymm14,352-256-128(%rbx) + vpaddd %ymm14,%ymm0,%ymm0 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm10,%ymm9 + vpand %ymm2,%ymm5,%ymm5 + vpaddd %ymm10,%ymm10,%ymm10 + + vpslld $30,%ymm2,%ymm6 + vpaddd %ymm5,%ymm0,%ymm0 + + vpsrld $2,%ymm2,%ymm2 + vpaddd %ymm7,%ymm0,%ymm0 + vpor %ymm9,%ymm10,%ymm10 + vpor %ymm6,%ymm2,%ymm2 + vmovdqa 64(%rbp),%ymm15 + vpxor %ymm13,%ymm11,%ymm11 + vmovdqa 480-256-128(%rbx),%ymm13 + + vpslld $5,%ymm0,%ymm7 + vpaddd %ymm15,%ymm4,%ymm4 + vpxor %ymm1,%ymm3,%ymm5 + vmovdqa %ymm10,384-256-128(%rbx) + vpaddd %ymm10,%ymm4,%ymm4 + vpxor 160-128(%rax),%ymm11,%ymm11 + vpsrld $27,%ymm0,%ymm8 + vpxor %ymm2,%ymm5,%ymm5 + vpxor %ymm13,%ymm11,%ymm11 + + vpslld $30,%ymm1,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm4,%ymm4 + vpsrld $31,%ymm11,%ymm9 + vpaddd %ymm11,%ymm11,%ymm11 + + vpsrld $2,%ymm1,%ymm1 + vpaddd %ymm7,%ymm4,%ymm4 + vpor %ymm9,%ymm11,%ymm11 + vpor %ymm6,%ymm1,%ymm1 + vpxor %ymm14,%ymm12,%ymm12 + vmovdqa 0-128(%rax),%ymm14 + + vpslld $5,%ymm4,%ymm7 + vpaddd %ymm15,%ymm3,%ymm3 + vpxor %ymm0,%ymm2,%ymm5 + vmovdqa %ymm11,416-256-128(%rbx) + vpaddd %ymm11,%ymm3,%ymm3 + vpxor 192-128(%rax),%ymm12,%ymm12 + vpsrld $27,%ymm4,%ymm8 + vpxor %ymm1,%ymm5,%ymm5 + vpxor %ymm14,%ymm12,%ymm12 + + vpslld $30,%ymm0,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm3,%ymm3 + vpsrld $31,%ymm12,%ymm9 + vpaddd %ymm12,%ymm12,%ymm12 + + vpsrld $2,%ymm0,%ymm0 + vpaddd %ymm7,%ymm3,%ymm3 + vpor %ymm9,%ymm12,%ymm12 + vpor %ymm6,%ymm0,%ymm0 + vpxor %ymm10,%ymm13,%ymm13 + vmovdqa 32-128(%rax),%ymm10 + + vpslld $5,%ymm3,%ymm7 + vpaddd %ymm15,%ymm2,%ymm2 + vpxor %ymm4,%ymm1,%ymm5 + vmovdqa %ymm12,448-256-128(%rbx) + vpaddd %ymm12,%ymm2,%ymm2 + vpxor 224-128(%rax),%ymm13,%ymm13 + vpsrld $27,%ymm3,%ymm8 + vpxor %ymm0,%ymm5,%ymm5 + vpxor %ymm10,%ymm13,%ymm13 + + vpslld $30,%ymm4,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm2,%ymm2 + vpsrld $31,%ymm13,%ymm9 + vpaddd %ymm13,%ymm13,%ymm13 + + vpsrld $2,%ymm4,%ymm4 + vpaddd %ymm7,%ymm2,%ymm2 + vpor %ymm9,%ymm13,%ymm13 + vpor %ymm6,%ymm4,%ymm4 + vpxor %ymm11,%ymm14,%ymm14 + vmovdqa 64-128(%rax),%ymm11 + + vpslld $5,%ymm2,%ymm7 + vpaddd %ymm15,%ymm1,%ymm1 + vpxor %ymm3,%ymm0,%ymm5 + vmovdqa %ymm13,480-256-128(%rbx) + vpaddd %ymm13,%ymm1,%ymm1 + vpxor 256-256-128(%rbx),%ymm14,%ymm14 + vpsrld $27,%ymm2,%ymm8 + vpxor %ymm4,%ymm5,%ymm5 + vpxor %ymm11,%ymm14,%ymm14 + + vpslld $30,%ymm3,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm1,%ymm1 + vpsrld $31,%ymm14,%ymm9 + vpaddd %ymm14,%ymm14,%ymm14 + + vpsrld $2,%ymm3,%ymm3 + vpaddd %ymm7,%ymm1,%ymm1 + vpor %ymm9,%ymm14,%ymm14 + vpor %ymm6,%ymm3,%ymm3 + vpxor %ymm12,%ymm10,%ymm10 + vmovdqa 96-128(%rax),%ymm12 + + vpslld $5,%ymm1,%ymm7 + vpaddd %ymm15,%ymm0,%ymm0 + vpxor %ymm2,%ymm4,%ymm5 + vmovdqa %ymm14,0-128(%rax) + vpaddd %ymm14,%ymm0,%ymm0 + vpxor 288-256-128(%rbx),%ymm10,%ymm10 + vpsrld $27,%ymm1,%ymm8 + vpxor %ymm3,%ymm5,%ymm5 + vpxor %ymm12,%ymm10,%ymm10 + + vpslld $30,%ymm2,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm0,%ymm0 + vpsrld $31,%ymm10,%ymm9 + vpaddd %ymm10,%ymm10,%ymm10 + + vpsrld $2,%ymm2,%ymm2 + vpaddd %ymm7,%ymm0,%ymm0 + vpor %ymm9,%ymm10,%ymm10 + vpor %ymm6,%ymm2,%ymm2 + vpxor %ymm13,%ymm11,%ymm11 + vmovdqa 128-128(%rax),%ymm13 + + vpslld $5,%ymm0,%ymm7 + vpaddd %ymm15,%ymm4,%ymm4 + vpxor %ymm1,%ymm3,%ymm5 + vmovdqa %ymm10,32-128(%rax) + vpaddd %ymm10,%ymm4,%ymm4 + vpxor 320-256-128(%rbx),%ymm11,%ymm11 + vpsrld $27,%ymm0,%ymm8 + vpxor %ymm2,%ymm5,%ymm5 + vpxor %ymm13,%ymm11,%ymm11 + + vpslld $30,%ymm1,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm4,%ymm4 + vpsrld $31,%ymm11,%ymm9 + vpaddd %ymm11,%ymm11,%ymm11 + + vpsrld $2,%ymm1,%ymm1 + vpaddd %ymm7,%ymm4,%ymm4 + vpor %ymm9,%ymm11,%ymm11 + vpor %ymm6,%ymm1,%ymm1 + vpxor %ymm14,%ymm12,%ymm12 + vmovdqa 160-128(%rax),%ymm14 + + vpslld $5,%ymm4,%ymm7 + vpaddd %ymm15,%ymm3,%ymm3 + vpxor %ymm0,%ymm2,%ymm5 + vmovdqa %ymm11,64-128(%rax) + vpaddd %ymm11,%ymm3,%ymm3 + vpxor 352-256-128(%rbx),%ymm12,%ymm12 + vpsrld $27,%ymm4,%ymm8 + vpxor %ymm1,%ymm5,%ymm5 + vpxor %ymm14,%ymm12,%ymm12 + + vpslld $30,%ymm0,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm3,%ymm3 + vpsrld $31,%ymm12,%ymm9 + vpaddd %ymm12,%ymm12,%ymm12 + + vpsrld $2,%ymm0,%ymm0 + vpaddd %ymm7,%ymm3,%ymm3 + vpor %ymm9,%ymm12,%ymm12 + vpor %ymm6,%ymm0,%ymm0 + vpxor %ymm10,%ymm13,%ymm13 + vmovdqa 192-128(%rax),%ymm10 + + vpslld $5,%ymm3,%ymm7 + vpaddd %ymm15,%ymm2,%ymm2 + vpxor %ymm4,%ymm1,%ymm5 + vmovdqa %ymm12,96-128(%rax) + vpaddd %ymm12,%ymm2,%ymm2 + vpxor 384-256-128(%rbx),%ymm13,%ymm13 + vpsrld $27,%ymm3,%ymm8 + vpxor %ymm0,%ymm5,%ymm5 + vpxor %ymm10,%ymm13,%ymm13 + + vpslld $30,%ymm4,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm2,%ymm2 + vpsrld $31,%ymm13,%ymm9 + vpaddd %ymm13,%ymm13,%ymm13 + + vpsrld $2,%ymm4,%ymm4 + vpaddd %ymm7,%ymm2,%ymm2 + vpor %ymm9,%ymm13,%ymm13 + vpor %ymm6,%ymm4,%ymm4 + vpxor %ymm11,%ymm14,%ymm14 + vmovdqa 224-128(%rax),%ymm11 + + vpslld $5,%ymm2,%ymm7 + vpaddd %ymm15,%ymm1,%ymm1 + vpxor %ymm3,%ymm0,%ymm5 + vmovdqa %ymm13,128-128(%rax) + vpaddd %ymm13,%ymm1,%ymm1 + vpxor 416-256-128(%rbx),%ymm14,%ymm14 + vpsrld $27,%ymm2,%ymm8 + vpxor %ymm4,%ymm5,%ymm5 + vpxor %ymm11,%ymm14,%ymm14 + + vpslld $30,%ymm3,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm1,%ymm1 + vpsrld $31,%ymm14,%ymm9 + vpaddd %ymm14,%ymm14,%ymm14 + + vpsrld $2,%ymm3,%ymm3 + vpaddd %ymm7,%ymm1,%ymm1 + vpor %ymm9,%ymm14,%ymm14 + vpor %ymm6,%ymm3,%ymm3 + vpxor %ymm12,%ymm10,%ymm10 + vmovdqa 256-256-128(%rbx),%ymm12 + + vpslld $5,%ymm1,%ymm7 + vpaddd %ymm15,%ymm0,%ymm0 + vpxor %ymm2,%ymm4,%ymm5 + vmovdqa %ymm14,160-128(%rax) + vpaddd %ymm14,%ymm0,%ymm0 + vpxor 448-256-128(%rbx),%ymm10,%ymm10 + vpsrld $27,%ymm1,%ymm8 + vpxor %ymm3,%ymm5,%ymm5 + vpxor %ymm12,%ymm10,%ymm10 + + vpslld $30,%ymm2,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm0,%ymm0 + vpsrld $31,%ymm10,%ymm9 + vpaddd %ymm10,%ymm10,%ymm10 + + vpsrld $2,%ymm2,%ymm2 + vpaddd %ymm7,%ymm0,%ymm0 + vpor %ymm9,%ymm10,%ymm10 + vpor %ymm6,%ymm2,%ymm2 + vpxor %ymm13,%ymm11,%ymm11 + vmovdqa 288-256-128(%rbx),%ymm13 + + vpslld $5,%ymm0,%ymm7 + vpaddd %ymm15,%ymm4,%ymm4 + vpxor %ymm1,%ymm3,%ymm5 + vmovdqa %ymm10,192-128(%rax) + vpaddd %ymm10,%ymm4,%ymm4 + vpxor 480-256-128(%rbx),%ymm11,%ymm11 + vpsrld $27,%ymm0,%ymm8 + vpxor %ymm2,%ymm5,%ymm5 + vpxor %ymm13,%ymm11,%ymm11 + + vpslld $30,%ymm1,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm4,%ymm4 + vpsrld $31,%ymm11,%ymm9 + vpaddd %ymm11,%ymm11,%ymm11 + + vpsrld $2,%ymm1,%ymm1 + vpaddd %ymm7,%ymm4,%ymm4 + vpor %ymm9,%ymm11,%ymm11 + vpor %ymm6,%ymm1,%ymm1 + vpxor %ymm14,%ymm12,%ymm12 + vmovdqa 320-256-128(%rbx),%ymm14 + + vpslld $5,%ymm4,%ymm7 + vpaddd %ymm15,%ymm3,%ymm3 + vpxor %ymm0,%ymm2,%ymm5 + vmovdqa %ymm11,224-128(%rax) + vpaddd %ymm11,%ymm3,%ymm3 + vpxor 0-128(%rax),%ymm12,%ymm12 + vpsrld $27,%ymm4,%ymm8 + vpxor %ymm1,%ymm5,%ymm5 + vpxor %ymm14,%ymm12,%ymm12 + + vpslld $30,%ymm0,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm3,%ymm3 + vpsrld $31,%ymm12,%ymm9 + vpaddd %ymm12,%ymm12,%ymm12 + + vpsrld $2,%ymm0,%ymm0 + vpaddd %ymm7,%ymm3,%ymm3 + vpor %ymm9,%ymm12,%ymm12 + vpor %ymm6,%ymm0,%ymm0 + vpxor %ymm10,%ymm13,%ymm13 + vmovdqa 352-256-128(%rbx),%ymm10 + + vpslld $5,%ymm3,%ymm7 + vpaddd %ymm15,%ymm2,%ymm2 + vpxor %ymm4,%ymm1,%ymm5 + vpaddd %ymm12,%ymm2,%ymm2 + vpxor 32-128(%rax),%ymm13,%ymm13 + vpsrld $27,%ymm3,%ymm8 + vpxor %ymm0,%ymm5,%ymm5 + vpxor %ymm10,%ymm13,%ymm13 + + vpslld $30,%ymm4,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm2,%ymm2 + vpsrld $31,%ymm13,%ymm9 + vpaddd %ymm13,%ymm13,%ymm13 + + vpsrld $2,%ymm4,%ymm4 + vpaddd %ymm7,%ymm2,%ymm2 + vpor %ymm9,%ymm13,%ymm13 + vpor %ymm6,%ymm4,%ymm4 + vpxor %ymm11,%ymm14,%ymm14 + vmovdqa 384-256-128(%rbx),%ymm11 + + vpslld $5,%ymm2,%ymm7 + vpaddd %ymm15,%ymm1,%ymm1 + vpxor %ymm3,%ymm0,%ymm5 + vpaddd %ymm13,%ymm1,%ymm1 + vpxor 64-128(%rax),%ymm14,%ymm14 + vpsrld $27,%ymm2,%ymm8 + vpxor %ymm4,%ymm5,%ymm5 + vpxor %ymm11,%ymm14,%ymm14 + + vpslld $30,%ymm3,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm1,%ymm1 + vpsrld $31,%ymm14,%ymm9 + vpaddd %ymm14,%ymm14,%ymm14 + + vpsrld $2,%ymm3,%ymm3 + vpaddd %ymm7,%ymm1,%ymm1 + vpor %ymm9,%ymm14,%ymm14 + vpor %ymm6,%ymm3,%ymm3 + vpxor %ymm12,%ymm10,%ymm10 + vmovdqa 416-256-128(%rbx),%ymm12 + + vpslld $5,%ymm1,%ymm7 + vpaddd %ymm15,%ymm0,%ymm0 + vpxor %ymm2,%ymm4,%ymm5 + vpaddd %ymm14,%ymm0,%ymm0 + vpxor 96-128(%rax),%ymm10,%ymm10 + vpsrld $27,%ymm1,%ymm8 + vpxor %ymm3,%ymm5,%ymm5 + vpxor %ymm12,%ymm10,%ymm10 + + vpslld $30,%ymm2,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm0,%ymm0 + vpsrld $31,%ymm10,%ymm9 + vpaddd %ymm10,%ymm10,%ymm10 + + vpsrld $2,%ymm2,%ymm2 + vpaddd %ymm7,%ymm0,%ymm0 + vpor %ymm9,%ymm10,%ymm10 + vpor %ymm6,%ymm2,%ymm2 + vpxor %ymm13,%ymm11,%ymm11 + vmovdqa 448-256-128(%rbx),%ymm13 + + vpslld $5,%ymm0,%ymm7 + vpaddd %ymm15,%ymm4,%ymm4 + vpxor %ymm1,%ymm3,%ymm5 + vpaddd %ymm10,%ymm4,%ymm4 + vpxor 128-128(%rax),%ymm11,%ymm11 + vpsrld $27,%ymm0,%ymm8 + vpxor %ymm2,%ymm5,%ymm5 + vpxor %ymm13,%ymm11,%ymm11 + + vpslld $30,%ymm1,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm4,%ymm4 + vpsrld $31,%ymm11,%ymm9 + vpaddd %ymm11,%ymm11,%ymm11 + + vpsrld $2,%ymm1,%ymm1 + vpaddd %ymm7,%ymm4,%ymm4 + vpor %ymm9,%ymm11,%ymm11 + vpor %ymm6,%ymm1,%ymm1 + vpxor %ymm14,%ymm12,%ymm12 + vmovdqa 480-256-128(%rbx),%ymm14 + + vpslld $5,%ymm4,%ymm7 + vpaddd %ymm15,%ymm3,%ymm3 + vpxor %ymm0,%ymm2,%ymm5 + vpaddd %ymm11,%ymm3,%ymm3 + vpxor 160-128(%rax),%ymm12,%ymm12 + vpsrld $27,%ymm4,%ymm8 + vpxor %ymm1,%ymm5,%ymm5 + vpxor %ymm14,%ymm12,%ymm12 + + vpslld $30,%ymm0,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm3,%ymm3 + vpsrld $31,%ymm12,%ymm9 + vpaddd %ymm12,%ymm12,%ymm12 + + vpsrld $2,%ymm0,%ymm0 + vpaddd %ymm7,%ymm3,%ymm3 + vpor %ymm9,%ymm12,%ymm12 + vpor %ymm6,%ymm0,%ymm0 + vpxor %ymm10,%ymm13,%ymm13 + vmovdqa 0-128(%rax),%ymm10 + + vpslld $5,%ymm3,%ymm7 + vpaddd %ymm15,%ymm2,%ymm2 + vpxor %ymm4,%ymm1,%ymm5 + vpaddd %ymm12,%ymm2,%ymm2 + vpxor 192-128(%rax),%ymm13,%ymm13 + vpsrld $27,%ymm3,%ymm8 + vpxor %ymm0,%ymm5,%ymm5 + vpxor %ymm10,%ymm13,%ymm13 + + vpslld $30,%ymm4,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm2,%ymm2 + vpsrld $31,%ymm13,%ymm9 + vpaddd %ymm13,%ymm13,%ymm13 + + vpsrld $2,%ymm4,%ymm4 + vpaddd %ymm7,%ymm2,%ymm2 + vpor %ymm9,%ymm13,%ymm13 + vpor %ymm6,%ymm4,%ymm4 + vpxor %ymm11,%ymm14,%ymm14 + vmovdqa 32-128(%rax),%ymm11 + + vpslld $5,%ymm2,%ymm7 + vpaddd %ymm15,%ymm1,%ymm1 + vpxor %ymm3,%ymm0,%ymm5 + vpaddd %ymm13,%ymm1,%ymm1 + vpxor 224-128(%rax),%ymm14,%ymm14 + vpsrld $27,%ymm2,%ymm8 + vpxor %ymm4,%ymm5,%ymm5 + vpxor %ymm11,%ymm14,%ymm14 + + vpslld $30,%ymm3,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm1,%ymm1 + vpsrld $31,%ymm14,%ymm9 + vpaddd %ymm14,%ymm14,%ymm14 + + vpsrld $2,%ymm3,%ymm3 + vpaddd %ymm7,%ymm1,%ymm1 + vpor %ymm9,%ymm14,%ymm14 + vpor %ymm6,%ymm3,%ymm3 + vpslld $5,%ymm1,%ymm7 + vpaddd %ymm15,%ymm0,%ymm0 + vpxor %ymm2,%ymm4,%ymm5 + + vpsrld $27,%ymm1,%ymm8 + vpaddd %ymm14,%ymm0,%ymm0 + vpxor %ymm3,%ymm5,%ymm5 + + vpslld $30,%ymm2,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm0,%ymm0 + + vpsrld $2,%ymm2,%ymm2 + vpaddd %ymm7,%ymm0,%ymm0 + vpor %ymm6,%ymm2,%ymm2 + movl $1,%ecx + leaq 512(%rsp),%rbx + cmpl 0(%rbx),%ecx + cmovgeq %rbp,%r12 + cmpl 4(%rbx),%ecx + cmovgeq %rbp,%r13 + cmpl 8(%rbx),%ecx + cmovgeq %rbp,%r14 + cmpl 12(%rbx),%ecx + cmovgeq %rbp,%r15 + cmpl 16(%rbx),%ecx + cmovgeq %rbp,%r8 + cmpl 20(%rbx),%ecx + cmovgeq %rbp,%r9 + cmpl 24(%rbx),%ecx + cmovgeq %rbp,%r10 + cmpl 28(%rbx),%ecx + cmovgeq %rbp,%r11 + vmovdqu (%rbx),%ymm5 + vpxor %ymm7,%ymm7,%ymm7 + vmovdqa %ymm5,%ymm6 + vpcmpgtd %ymm7,%ymm6,%ymm6 + vpaddd %ymm6,%ymm5,%ymm5 + + vpand %ymm6,%ymm0,%ymm0 + vpand %ymm6,%ymm1,%ymm1 + vpaddd 0(%rdi),%ymm0,%ymm0 + vpand %ymm6,%ymm2,%ymm2 + vpaddd 32(%rdi),%ymm1,%ymm1 + vpand %ymm6,%ymm3,%ymm3 + vpaddd 64(%rdi),%ymm2,%ymm2 + vpand %ymm6,%ymm4,%ymm4 + vpaddd 96(%rdi),%ymm3,%ymm3 + vpaddd 128(%rdi),%ymm4,%ymm4 + vmovdqu %ymm0,0(%rdi) + vmovdqu %ymm1,32(%rdi) + vmovdqu %ymm2,64(%rdi) + vmovdqu %ymm3,96(%rdi) + vmovdqu %ymm4,128(%rdi) + + vmovdqu %ymm5,(%rbx) + leaq 256+128(%rsp),%rbx + vmovdqu 96(%rbp),%ymm9 + decl %edx + jnz .Loop_avx2 + + + + + + + +.Ldone_avx2: + movq 544(%rsp),%rax +.cfi_def_cfa %rax,8 + vzeroupper + movq -48(%rax),%r15 +.cfi_restore %r15 + movq -40(%rax),%r14 +.cfi_restore %r14 + movq -32(%rax),%r13 +.cfi_restore %r13 + movq -24(%rax),%r12 +.cfi_restore %r12 + movq -16(%rax),%rbp +.cfi_restore %rbp + movq -8(%rax),%rbx +.cfi_restore %rbx + leaq (%rax),%rsp +.cfi_def_cfa_register %rsp +.Lepilogue_avx2: + .byte 0xf3,0xc3 +.cfi_endproc +.size sha1_multi_block_avx2,.-sha1_multi_block_avx2 + +.align 256 +.long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 +.long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 +K_XX_XX: +.long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1 +.long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1 +.long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc +.long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc +.long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6 +.long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6 +.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f +.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f +.byte 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0 +.byte 83,72,65,49,32,109,117,108,116,105,45,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 diff --git a/vere/ext/openssl/gen/linux-x86_64/crypto/sha/sha1-x86_64.s b/vere/ext/openssl/gen/linux-x86_64/crypto/sha/sha1-x86_64.s new file mode 100644 index 0000000..d4efc72 --- /dev/null +++ b/vere/ext/openssl/gen/linux-x86_64/crypto/sha/sha1-x86_64.s @@ -0,0 +1,5450 @@ +.text + + +.globl sha1_block_data_order +.type sha1_block_data_order,@function +.align 16 +sha1_block_data_order: +.cfi_startproc + movl OPENSSL_ia32cap_P+0(%rip),%r9d + movl OPENSSL_ia32cap_P+4(%rip),%r8d + movl OPENSSL_ia32cap_P+8(%rip),%r10d + testl $512,%r8d + jz .Lialu + testl $536870912,%r10d + jnz _shaext_shortcut + andl $296,%r10d + cmpl $296,%r10d + je _avx2_shortcut + andl $268435456,%r8d + andl $1073741824,%r9d + orl %r9d,%r8d + cmpl $1342177280,%r8d + je _avx_shortcut + jmp _ssse3_shortcut + +.align 16 +.Lialu: + movq %rsp,%rax +.cfi_def_cfa_register %rax + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + movq %rdi,%r8 + subq $72,%rsp + movq %rsi,%r9 + andq $-64,%rsp + movq %rdx,%r10 + movq %rax,64(%rsp) +.cfi_escape 0x0f,0x06,0x77,0xc0,0x00,0x06,0x23,0x08 +.Lprologue: + + movl 0(%r8),%esi + movl 4(%r8),%edi + movl 8(%r8),%r11d + movl 12(%r8),%r12d + movl 16(%r8),%r13d + jmp .Lloop + +.align 16 +.Lloop: + movl 0(%r9),%edx + bswapl %edx + movl 4(%r9),%ebp + movl %r12d,%eax + movl %edx,0(%rsp) + movl %esi,%ecx + bswapl %ebp + xorl %r11d,%eax + roll $5,%ecx + andl %edi,%eax + leal 1518500249(%rdx,%r13,1),%r13d + addl %ecx,%r13d + xorl %r12d,%eax + roll $30,%edi + addl %eax,%r13d + movl 8(%r9),%r14d + movl %r11d,%eax + movl %ebp,4(%rsp) + movl %r13d,%ecx + bswapl %r14d + xorl %edi,%eax + roll $5,%ecx + andl %esi,%eax + leal 1518500249(%rbp,%r12,1),%r12d + addl %ecx,%r12d + xorl %r11d,%eax + roll $30,%esi + addl %eax,%r12d + movl 12(%r9),%edx + movl %edi,%eax + movl %r14d,8(%rsp) + movl %r12d,%ecx + bswapl %edx + xorl %esi,%eax + roll $5,%ecx + andl %r13d,%eax + leal 1518500249(%r14,%r11,1),%r11d + addl %ecx,%r11d + xorl %edi,%eax + roll $30,%r13d + addl %eax,%r11d + movl 16(%r9),%ebp + movl %esi,%eax + movl %edx,12(%rsp) + movl %r11d,%ecx + bswapl %ebp + xorl %r13d,%eax + roll $5,%ecx + andl %r12d,%eax + leal 1518500249(%rdx,%rdi,1),%edi + addl %ecx,%edi + xorl %esi,%eax + roll $30,%r12d + addl %eax,%edi + movl 20(%r9),%r14d + movl %r13d,%eax + movl %ebp,16(%rsp) + movl %edi,%ecx + bswapl %r14d + xorl %r12d,%eax + roll $5,%ecx + andl %r11d,%eax + leal 1518500249(%rbp,%rsi,1),%esi + addl %ecx,%esi + xorl %r13d,%eax + roll $30,%r11d + addl %eax,%esi + movl 24(%r9),%edx + movl %r12d,%eax + movl %r14d,20(%rsp) + movl %esi,%ecx + bswapl %edx + xorl %r11d,%eax + roll $5,%ecx + andl %edi,%eax + leal 1518500249(%r14,%r13,1),%r13d + addl %ecx,%r13d + xorl %r12d,%eax + roll $30,%edi + addl %eax,%r13d + movl 28(%r9),%ebp + movl %r11d,%eax + movl %edx,24(%rsp) + movl %r13d,%ecx + bswapl %ebp + xorl %edi,%eax + roll $5,%ecx + andl %esi,%eax + leal 1518500249(%rdx,%r12,1),%r12d + addl %ecx,%r12d + xorl %r11d,%eax + roll $30,%esi + addl %eax,%r12d + movl 32(%r9),%r14d + movl %edi,%eax + movl %ebp,28(%rsp) + movl %r12d,%ecx + bswapl %r14d + xorl %esi,%eax + roll $5,%ecx + andl %r13d,%eax + leal 1518500249(%rbp,%r11,1),%r11d + addl %ecx,%r11d + xorl %edi,%eax + roll $30,%r13d + addl %eax,%r11d + movl 36(%r9),%edx + movl %esi,%eax + movl %r14d,32(%rsp) + movl %r11d,%ecx + bswapl %edx + xorl %r13d,%eax + roll $5,%ecx + andl %r12d,%eax + leal 1518500249(%r14,%rdi,1),%edi + addl %ecx,%edi + xorl %esi,%eax + roll $30,%r12d + addl %eax,%edi + movl 40(%r9),%ebp + movl %r13d,%eax + movl %edx,36(%rsp) + movl %edi,%ecx + bswapl %ebp + xorl %r12d,%eax + roll $5,%ecx + andl %r11d,%eax + leal 1518500249(%rdx,%rsi,1),%esi + addl %ecx,%esi + xorl %r13d,%eax + roll $30,%r11d + addl %eax,%esi + movl 44(%r9),%r14d + movl %r12d,%eax + movl %ebp,40(%rsp) + movl %esi,%ecx + bswapl %r14d + xorl %r11d,%eax + roll $5,%ecx + andl %edi,%eax + leal 1518500249(%rbp,%r13,1),%r13d + addl %ecx,%r13d + xorl %r12d,%eax + roll $30,%edi + addl %eax,%r13d + movl 48(%r9),%edx + movl %r11d,%eax + movl %r14d,44(%rsp) + movl %r13d,%ecx + bswapl %edx + xorl %edi,%eax + roll $5,%ecx + andl %esi,%eax + leal 1518500249(%r14,%r12,1),%r12d + addl %ecx,%r12d + xorl %r11d,%eax + roll $30,%esi + addl %eax,%r12d + movl 52(%r9),%ebp + movl %edi,%eax + movl %edx,48(%rsp) + movl %r12d,%ecx + bswapl %ebp + xorl %esi,%eax + roll $5,%ecx + andl %r13d,%eax + leal 1518500249(%rdx,%r11,1),%r11d + addl %ecx,%r11d + xorl %edi,%eax + roll $30,%r13d + addl %eax,%r11d + movl 56(%r9),%r14d + movl %esi,%eax + movl %ebp,52(%rsp) + movl %r11d,%ecx + bswapl %r14d + xorl %r13d,%eax + roll $5,%ecx + andl %r12d,%eax + leal 1518500249(%rbp,%rdi,1),%edi + addl %ecx,%edi + xorl %esi,%eax + roll $30,%r12d + addl %eax,%edi + movl 60(%r9),%edx + movl %r13d,%eax + movl %r14d,56(%rsp) + movl %edi,%ecx + bswapl %edx + xorl %r12d,%eax + roll $5,%ecx + andl %r11d,%eax + leal 1518500249(%r14,%rsi,1),%esi + addl %ecx,%esi + xorl %r13d,%eax + roll $30,%r11d + addl %eax,%esi + xorl 0(%rsp),%ebp + movl %r12d,%eax + movl %edx,60(%rsp) + movl %esi,%ecx + xorl 8(%rsp),%ebp + xorl %r11d,%eax + roll $5,%ecx + xorl 32(%rsp),%ebp + andl %edi,%eax + leal 1518500249(%rdx,%r13,1),%r13d + roll $30,%edi + xorl %r12d,%eax + addl %ecx,%r13d + roll $1,%ebp + addl %eax,%r13d + xorl 4(%rsp),%r14d + movl %r11d,%eax + movl %ebp,0(%rsp) + movl %r13d,%ecx + xorl 12(%rsp),%r14d + xorl %edi,%eax + roll $5,%ecx + xorl 36(%rsp),%r14d + andl %esi,%eax + leal 1518500249(%rbp,%r12,1),%r12d + roll $30,%esi + xorl %r11d,%eax + addl %ecx,%r12d + roll $1,%r14d + addl %eax,%r12d + xorl 8(%rsp),%edx + movl %edi,%eax + movl %r14d,4(%rsp) + movl %r12d,%ecx + xorl 16(%rsp),%edx + xorl %esi,%eax + roll $5,%ecx + xorl 40(%rsp),%edx + andl %r13d,%eax + leal 1518500249(%r14,%r11,1),%r11d + roll $30,%r13d + xorl %edi,%eax + addl %ecx,%r11d + roll $1,%edx + addl %eax,%r11d + xorl 12(%rsp),%ebp + movl %esi,%eax + movl %edx,8(%rsp) + movl %r11d,%ecx + xorl 20(%rsp),%ebp + xorl %r13d,%eax + roll $5,%ecx + xorl 44(%rsp),%ebp + andl %r12d,%eax + leal 1518500249(%rdx,%rdi,1),%edi + roll $30,%r12d + xorl %esi,%eax + addl %ecx,%edi + roll $1,%ebp + addl %eax,%edi + xorl 16(%rsp),%r14d + movl %r13d,%eax + movl %ebp,12(%rsp) + movl %edi,%ecx + xorl 24(%rsp),%r14d + xorl %r12d,%eax + roll $5,%ecx + xorl 48(%rsp),%r14d + andl %r11d,%eax + leal 1518500249(%rbp,%rsi,1),%esi + roll $30,%r11d + xorl %r13d,%eax + addl %ecx,%esi + roll $1,%r14d + addl %eax,%esi + xorl 20(%rsp),%edx + movl %edi,%eax + movl %r14d,16(%rsp) + movl %esi,%ecx + xorl 28(%rsp),%edx + xorl %r12d,%eax + roll $5,%ecx + xorl 52(%rsp),%edx + leal 1859775393(%r14,%r13,1),%r13d + xorl %r11d,%eax + addl %ecx,%r13d + roll $30,%edi + addl %eax,%r13d + roll $1,%edx + xorl 24(%rsp),%ebp + movl %esi,%eax + movl %edx,20(%rsp) + movl %r13d,%ecx + xorl 32(%rsp),%ebp + xorl %r11d,%eax + roll $5,%ecx + xorl 56(%rsp),%ebp + leal 1859775393(%rdx,%r12,1),%r12d + xorl %edi,%eax + addl %ecx,%r12d + roll $30,%esi + addl %eax,%r12d + roll $1,%ebp + xorl 28(%rsp),%r14d + movl %r13d,%eax + movl %ebp,24(%rsp) + movl %r12d,%ecx + xorl 36(%rsp),%r14d + xorl %edi,%eax + roll $5,%ecx + xorl 60(%rsp),%r14d + leal 1859775393(%rbp,%r11,1),%r11d + xorl %esi,%eax + addl %ecx,%r11d + roll $30,%r13d + addl %eax,%r11d + roll $1,%r14d + xorl 32(%rsp),%edx + movl %r12d,%eax + movl %r14d,28(%rsp) + movl %r11d,%ecx + xorl 40(%rsp),%edx + xorl %esi,%eax + roll $5,%ecx + xorl 0(%rsp),%edx + leal 1859775393(%r14,%rdi,1),%edi + xorl %r13d,%eax + addl %ecx,%edi + roll $30,%r12d + addl %eax,%edi + roll $1,%edx + xorl 36(%rsp),%ebp + movl %r11d,%eax + movl %edx,32(%rsp) + movl %edi,%ecx + xorl 44(%rsp),%ebp + xorl %r13d,%eax + roll $5,%ecx + xorl 4(%rsp),%ebp + leal 1859775393(%rdx,%rsi,1),%esi + xorl %r12d,%eax + addl %ecx,%esi + roll $30,%r11d + addl %eax,%esi + roll $1,%ebp + xorl 40(%rsp),%r14d + movl %edi,%eax + movl %ebp,36(%rsp) + movl %esi,%ecx + xorl 48(%rsp),%r14d + xorl %r12d,%eax + roll $5,%ecx + xorl 8(%rsp),%r14d + leal 1859775393(%rbp,%r13,1),%r13d + xorl %r11d,%eax + addl %ecx,%r13d + roll $30,%edi + addl %eax,%r13d + roll $1,%r14d + xorl 44(%rsp),%edx + movl %esi,%eax + movl %r14d,40(%rsp) + movl %r13d,%ecx + xorl 52(%rsp),%edx + xorl %r11d,%eax + roll $5,%ecx + xorl 12(%rsp),%edx + leal 1859775393(%r14,%r12,1),%r12d + xorl %edi,%eax + addl %ecx,%r12d + roll $30,%esi + addl %eax,%r12d + roll $1,%edx + xorl 48(%rsp),%ebp + movl %r13d,%eax + movl %edx,44(%rsp) + movl %r12d,%ecx + xorl 56(%rsp),%ebp + xorl %edi,%eax + roll $5,%ecx + xorl 16(%rsp),%ebp + leal 1859775393(%rdx,%r11,1),%r11d + xorl %esi,%eax + addl %ecx,%r11d + roll $30,%r13d + addl %eax,%r11d + roll $1,%ebp + xorl 52(%rsp),%r14d + movl %r12d,%eax + movl %ebp,48(%rsp) + movl %r11d,%ecx + xorl 60(%rsp),%r14d + xorl %esi,%eax + roll $5,%ecx + xorl 20(%rsp),%r14d + leal 1859775393(%rbp,%rdi,1),%edi + xorl %r13d,%eax + addl %ecx,%edi + roll $30,%r12d + addl %eax,%edi + roll $1,%r14d + xorl 56(%rsp),%edx + movl %r11d,%eax + movl %r14d,52(%rsp) + movl %edi,%ecx + xorl 0(%rsp),%edx + xorl %r13d,%eax + roll $5,%ecx + xorl 24(%rsp),%edx + leal 1859775393(%r14,%rsi,1),%esi + xorl %r12d,%eax + addl %ecx,%esi + roll $30,%r11d + addl %eax,%esi + roll $1,%edx + xorl 60(%rsp),%ebp + movl %edi,%eax + movl %edx,56(%rsp) + movl %esi,%ecx + xorl 4(%rsp),%ebp + xorl %r12d,%eax + roll $5,%ecx + xorl 28(%rsp),%ebp + leal 1859775393(%rdx,%r13,1),%r13d + xorl %r11d,%eax + addl %ecx,%r13d + roll $30,%edi + addl %eax,%r13d + roll $1,%ebp + xorl 0(%rsp),%r14d + movl %esi,%eax + movl %ebp,60(%rsp) + movl %r13d,%ecx + xorl 8(%rsp),%r14d + xorl %r11d,%eax + roll $5,%ecx + xorl 32(%rsp),%r14d + leal 1859775393(%rbp,%r12,1),%r12d + xorl %edi,%eax + addl %ecx,%r12d + roll $30,%esi + addl %eax,%r12d + roll $1,%r14d + xorl 4(%rsp),%edx + movl %r13d,%eax + movl %r14d,0(%rsp) + movl %r12d,%ecx + xorl 12(%rsp),%edx + xorl %edi,%eax + roll $5,%ecx + xorl 36(%rsp),%edx + leal 1859775393(%r14,%r11,1),%r11d + xorl %esi,%eax + addl %ecx,%r11d + roll $30,%r13d + addl %eax,%r11d + roll $1,%edx + xorl 8(%rsp),%ebp + movl %r12d,%eax + movl %edx,4(%rsp) + movl %r11d,%ecx + xorl 16(%rsp),%ebp + xorl %esi,%eax + roll $5,%ecx + xorl 40(%rsp),%ebp + leal 1859775393(%rdx,%rdi,1),%edi + xorl %r13d,%eax + addl %ecx,%edi + roll $30,%r12d + addl %eax,%edi + roll $1,%ebp + xorl 12(%rsp),%r14d + movl %r11d,%eax + movl %ebp,8(%rsp) + movl %edi,%ecx + xorl 20(%rsp),%r14d + xorl %r13d,%eax + roll $5,%ecx + xorl 44(%rsp),%r14d + leal 1859775393(%rbp,%rsi,1),%esi + xorl %r12d,%eax + addl %ecx,%esi + roll $30,%r11d + addl %eax,%esi + roll $1,%r14d + xorl 16(%rsp),%edx + movl %edi,%eax + movl %r14d,12(%rsp) + movl %esi,%ecx + xorl 24(%rsp),%edx + xorl %r12d,%eax + roll $5,%ecx + xorl 48(%rsp),%edx + leal 1859775393(%r14,%r13,1),%r13d + xorl %r11d,%eax + addl %ecx,%r13d + roll $30,%edi + addl %eax,%r13d + roll $1,%edx + xorl 20(%rsp),%ebp + movl %esi,%eax + movl %edx,16(%rsp) + movl %r13d,%ecx + xorl 28(%rsp),%ebp + xorl %r11d,%eax + roll $5,%ecx + xorl 52(%rsp),%ebp + leal 1859775393(%rdx,%r12,1),%r12d + xorl %edi,%eax + addl %ecx,%r12d + roll $30,%esi + addl %eax,%r12d + roll $1,%ebp + xorl 24(%rsp),%r14d + movl %r13d,%eax + movl %ebp,20(%rsp) + movl %r12d,%ecx + xorl 32(%rsp),%r14d + xorl %edi,%eax + roll $5,%ecx + xorl 56(%rsp),%r14d + leal 1859775393(%rbp,%r11,1),%r11d + xorl %esi,%eax + addl %ecx,%r11d + roll $30,%r13d + addl %eax,%r11d + roll $1,%r14d + xorl 28(%rsp),%edx + movl %r12d,%eax + movl %r14d,24(%rsp) + movl %r11d,%ecx + xorl 36(%rsp),%edx + xorl %esi,%eax + roll $5,%ecx + xorl 60(%rsp),%edx + leal 1859775393(%r14,%rdi,1),%edi + xorl %r13d,%eax + addl %ecx,%edi + roll $30,%r12d + addl %eax,%edi + roll $1,%edx + xorl 32(%rsp),%ebp + movl %r11d,%eax + movl %edx,28(%rsp) + movl %edi,%ecx + xorl 40(%rsp),%ebp + xorl %r13d,%eax + roll $5,%ecx + xorl 0(%rsp),%ebp + leal 1859775393(%rdx,%rsi,1),%esi + xorl %r12d,%eax + addl %ecx,%esi + roll $30,%r11d + addl %eax,%esi + roll $1,%ebp + xorl 36(%rsp),%r14d + movl %r12d,%eax + movl %ebp,32(%rsp) + movl %r12d,%ebx + xorl 44(%rsp),%r14d + andl %r11d,%eax + movl %esi,%ecx + xorl 4(%rsp),%r14d + leal -1894007588(%rbp,%r13,1),%r13d + xorl %r11d,%ebx + roll $5,%ecx + addl %eax,%r13d + roll $1,%r14d + andl %edi,%ebx + addl %ecx,%r13d + roll $30,%edi + addl %ebx,%r13d + xorl 40(%rsp),%edx + movl %r11d,%eax + movl %r14d,36(%rsp) + movl %r11d,%ebx + xorl 48(%rsp),%edx + andl %edi,%eax + movl %r13d,%ecx + xorl 8(%rsp),%edx + leal -1894007588(%r14,%r12,1),%r12d + xorl %edi,%ebx + roll $5,%ecx + addl %eax,%r12d + roll $1,%edx + andl %esi,%ebx + addl %ecx,%r12d + roll $30,%esi + addl %ebx,%r12d + xorl 44(%rsp),%ebp + movl %edi,%eax + movl %edx,40(%rsp) + movl %edi,%ebx + xorl 52(%rsp),%ebp + andl %esi,%eax + movl %r12d,%ecx + xorl 12(%rsp),%ebp + leal -1894007588(%rdx,%r11,1),%r11d + xorl %esi,%ebx + roll $5,%ecx + addl %eax,%r11d + roll $1,%ebp + andl %r13d,%ebx + addl %ecx,%r11d + roll $30,%r13d + addl %ebx,%r11d + xorl 48(%rsp),%r14d + movl %esi,%eax + movl %ebp,44(%rsp) + movl %esi,%ebx + xorl 56(%rsp),%r14d + andl %r13d,%eax + movl %r11d,%ecx + xorl 16(%rsp),%r14d + leal -1894007588(%rbp,%rdi,1),%edi + xorl %r13d,%ebx + roll $5,%ecx + addl %eax,%edi + roll $1,%r14d + andl %r12d,%ebx + addl %ecx,%edi + roll $30,%r12d + addl %ebx,%edi + xorl 52(%rsp),%edx + movl %r13d,%eax + movl %r14d,48(%rsp) + movl %r13d,%ebx + xorl 60(%rsp),%edx + andl %r12d,%eax + movl %edi,%ecx + xorl 20(%rsp),%edx + leal -1894007588(%r14,%rsi,1),%esi + xorl %r12d,%ebx + roll $5,%ecx + addl %eax,%esi + roll $1,%edx + andl %r11d,%ebx + addl %ecx,%esi + roll $30,%r11d + addl %ebx,%esi + xorl 56(%rsp),%ebp + movl %r12d,%eax + movl %edx,52(%rsp) + movl %r12d,%ebx + xorl 0(%rsp),%ebp + andl %r11d,%eax + movl %esi,%ecx + xorl 24(%rsp),%ebp + leal -1894007588(%rdx,%r13,1),%r13d + xorl %r11d,%ebx + roll $5,%ecx + addl %eax,%r13d + roll $1,%ebp + andl %edi,%ebx + addl %ecx,%r13d + roll $30,%edi + addl %ebx,%r13d + xorl 60(%rsp),%r14d + movl %r11d,%eax + movl %ebp,56(%rsp) + movl %r11d,%ebx + xorl 4(%rsp),%r14d + andl %edi,%eax + movl %r13d,%ecx + xorl 28(%rsp),%r14d + leal -1894007588(%rbp,%r12,1),%r12d + xorl %edi,%ebx + roll $5,%ecx + addl %eax,%r12d + roll $1,%r14d + andl %esi,%ebx + addl %ecx,%r12d + roll $30,%esi + addl %ebx,%r12d + xorl 0(%rsp),%edx + movl %edi,%eax + movl %r14d,60(%rsp) + movl %edi,%ebx + xorl 8(%rsp),%edx + andl %esi,%eax + movl %r12d,%ecx + xorl 32(%rsp),%edx + leal -1894007588(%r14,%r11,1),%r11d + xorl %esi,%ebx + roll $5,%ecx + addl %eax,%r11d + roll $1,%edx + andl %r13d,%ebx + addl %ecx,%r11d + roll $30,%r13d + addl %ebx,%r11d + xorl 4(%rsp),%ebp + movl %esi,%eax + movl %edx,0(%rsp) + movl %esi,%ebx + xorl 12(%rsp),%ebp + andl %r13d,%eax + movl %r11d,%ecx + xorl 36(%rsp),%ebp + leal -1894007588(%rdx,%rdi,1),%edi + xorl %r13d,%ebx + roll $5,%ecx + addl %eax,%edi + roll $1,%ebp + andl %r12d,%ebx + addl %ecx,%edi + roll $30,%r12d + addl %ebx,%edi + xorl 8(%rsp),%r14d + movl %r13d,%eax + movl %ebp,4(%rsp) + movl %r13d,%ebx + xorl 16(%rsp),%r14d + andl %r12d,%eax + movl %edi,%ecx + xorl 40(%rsp),%r14d + leal -1894007588(%rbp,%rsi,1),%esi + xorl %r12d,%ebx + roll $5,%ecx + addl %eax,%esi + roll $1,%r14d + andl %r11d,%ebx + addl %ecx,%esi + roll $30,%r11d + addl %ebx,%esi + xorl 12(%rsp),%edx + movl %r12d,%eax + movl %r14d,8(%rsp) + movl %r12d,%ebx + xorl 20(%rsp),%edx + andl %r11d,%eax + movl %esi,%ecx + xorl 44(%rsp),%edx + leal -1894007588(%r14,%r13,1),%r13d + xorl %r11d,%ebx + roll $5,%ecx + addl %eax,%r13d + roll $1,%edx + andl %edi,%ebx + addl %ecx,%r13d + roll $30,%edi + addl %ebx,%r13d + xorl 16(%rsp),%ebp + movl %r11d,%eax + movl %edx,12(%rsp) + movl %r11d,%ebx + xorl 24(%rsp),%ebp + andl %edi,%eax + movl %r13d,%ecx + xorl 48(%rsp),%ebp + leal -1894007588(%rdx,%r12,1),%r12d + xorl %edi,%ebx + roll $5,%ecx + addl %eax,%r12d + roll $1,%ebp + andl %esi,%ebx + addl %ecx,%r12d + roll $30,%esi + addl %ebx,%r12d + xorl 20(%rsp),%r14d + movl %edi,%eax + movl %ebp,16(%rsp) + movl %edi,%ebx + xorl 28(%rsp),%r14d + andl %esi,%eax + movl %r12d,%ecx + xorl 52(%rsp),%r14d + leal -1894007588(%rbp,%r11,1),%r11d + xorl %esi,%ebx + roll $5,%ecx + addl %eax,%r11d + roll $1,%r14d + andl %r13d,%ebx + addl %ecx,%r11d + roll $30,%r13d + addl %ebx,%r11d + xorl 24(%rsp),%edx + movl %esi,%eax + movl %r14d,20(%rsp) + movl %esi,%ebx + xorl 32(%rsp),%edx + andl %r13d,%eax + movl %r11d,%ecx + xorl 56(%rsp),%edx + leal -1894007588(%r14,%rdi,1),%edi + xorl %r13d,%ebx + roll $5,%ecx + addl %eax,%edi + roll $1,%edx + andl %r12d,%ebx + addl %ecx,%edi + roll $30,%r12d + addl %ebx,%edi + xorl 28(%rsp),%ebp + movl %r13d,%eax + movl %edx,24(%rsp) + movl %r13d,%ebx + xorl 36(%rsp),%ebp + andl %r12d,%eax + movl %edi,%ecx + xorl 60(%rsp),%ebp + leal -1894007588(%rdx,%rsi,1),%esi + xorl %r12d,%ebx + roll $5,%ecx + addl %eax,%esi + roll $1,%ebp + andl %r11d,%ebx + addl %ecx,%esi + roll $30,%r11d + addl %ebx,%esi + xorl 32(%rsp),%r14d + movl %r12d,%eax + movl %ebp,28(%rsp) + movl %r12d,%ebx + xorl 40(%rsp),%r14d + andl %r11d,%eax + movl %esi,%ecx + xorl 0(%rsp),%r14d + leal -1894007588(%rbp,%r13,1),%r13d + xorl %r11d,%ebx + roll $5,%ecx + addl %eax,%r13d + roll $1,%r14d + andl %edi,%ebx + addl %ecx,%r13d + roll $30,%edi + addl %ebx,%r13d + xorl 36(%rsp),%edx + movl %r11d,%eax + movl %r14d,32(%rsp) + movl %r11d,%ebx + xorl 44(%rsp),%edx + andl %edi,%eax + movl %r13d,%ecx + xorl 4(%rsp),%edx + leal -1894007588(%r14,%r12,1),%r12d + xorl %edi,%ebx + roll $5,%ecx + addl %eax,%r12d + roll $1,%edx + andl %esi,%ebx + addl %ecx,%r12d + roll $30,%esi + addl %ebx,%r12d + xorl 40(%rsp),%ebp + movl %edi,%eax + movl %edx,36(%rsp) + movl %edi,%ebx + xorl 48(%rsp),%ebp + andl %esi,%eax + movl %r12d,%ecx + xorl 8(%rsp),%ebp + leal -1894007588(%rdx,%r11,1),%r11d + xorl %esi,%ebx + roll $5,%ecx + addl %eax,%r11d + roll $1,%ebp + andl %r13d,%ebx + addl %ecx,%r11d + roll $30,%r13d + addl %ebx,%r11d + xorl 44(%rsp),%r14d + movl %esi,%eax + movl %ebp,40(%rsp) + movl %esi,%ebx + xorl 52(%rsp),%r14d + andl %r13d,%eax + movl %r11d,%ecx + xorl 12(%rsp),%r14d + leal -1894007588(%rbp,%rdi,1),%edi + xorl %r13d,%ebx + roll $5,%ecx + addl %eax,%edi + roll $1,%r14d + andl %r12d,%ebx + addl %ecx,%edi + roll $30,%r12d + addl %ebx,%edi + xorl 48(%rsp),%edx + movl %r13d,%eax + movl %r14d,44(%rsp) + movl %r13d,%ebx + xorl 56(%rsp),%edx + andl %r12d,%eax + movl %edi,%ecx + xorl 16(%rsp),%edx + leal -1894007588(%r14,%rsi,1),%esi + xorl %r12d,%ebx + roll $5,%ecx + addl %eax,%esi + roll $1,%edx + andl %r11d,%ebx + addl %ecx,%esi + roll $30,%r11d + addl %ebx,%esi + xorl 52(%rsp),%ebp + movl %edi,%eax + movl %edx,48(%rsp) + movl %esi,%ecx + xorl 60(%rsp),%ebp + xorl %r12d,%eax + roll $5,%ecx + xorl 20(%rsp),%ebp + leal -899497514(%rdx,%r13,1),%r13d + xorl %r11d,%eax + addl %ecx,%r13d + roll $30,%edi + addl %eax,%r13d + roll $1,%ebp + xorl 56(%rsp),%r14d + movl %esi,%eax + movl %ebp,52(%rsp) + movl %r13d,%ecx + xorl 0(%rsp),%r14d + xorl %r11d,%eax + roll $5,%ecx + xorl 24(%rsp),%r14d + leal -899497514(%rbp,%r12,1),%r12d + xorl %edi,%eax + addl %ecx,%r12d + roll $30,%esi + addl %eax,%r12d + roll $1,%r14d + xorl 60(%rsp),%edx + movl %r13d,%eax + movl %r14d,56(%rsp) + movl %r12d,%ecx + xorl 4(%rsp),%edx + xorl %edi,%eax + roll $5,%ecx + xorl 28(%rsp),%edx + leal -899497514(%r14,%r11,1),%r11d + xorl %esi,%eax + addl %ecx,%r11d + roll $30,%r13d + addl %eax,%r11d + roll $1,%edx + xorl 0(%rsp),%ebp + movl %r12d,%eax + movl %edx,60(%rsp) + movl %r11d,%ecx + xorl 8(%rsp),%ebp + xorl %esi,%eax + roll $5,%ecx + xorl 32(%rsp),%ebp + leal -899497514(%rdx,%rdi,1),%edi + xorl %r13d,%eax + addl %ecx,%edi + roll $30,%r12d + addl %eax,%edi + roll $1,%ebp + xorl 4(%rsp),%r14d + movl %r11d,%eax + movl %ebp,0(%rsp) + movl %edi,%ecx + xorl 12(%rsp),%r14d + xorl %r13d,%eax + roll $5,%ecx + xorl 36(%rsp),%r14d + leal -899497514(%rbp,%rsi,1),%esi + xorl %r12d,%eax + addl %ecx,%esi + roll $30,%r11d + addl %eax,%esi + roll $1,%r14d + xorl 8(%rsp),%edx + movl %edi,%eax + movl %r14d,4(%rsp) + movl %esi,%ecx + xorl 16(%rsp),%edx + xorl %r12d,%eax + roll $5,%ecx + xorl 40(%rsp),%edx + leal -899497514(%r14,%r13,1),%r13d + xorl %r11d,%eax + addl %ecx,%r13d + roll $30,%edi + addl %eax,%r13d + roll $1,%edx + xorl 12(%rsp),%ebp + movl %esi,%eax + movl %edx,8(%rsp) + movl %r13d,%ecx + xorl 20(%rsp),%ebp + xorl %r11d,%eax + roll $5,%ecx + xorl 44(%rsp),%ebp + leal -899497514(%rdx,%r12,1),%r12d + xorl %edi,%eax + addl %ecx,%r12d + roll $30,%esi + addl %eax,%r12d + roll $1,%ebp + xorl 16(%rsp),%r14d + movl %r13d,%eax + movl %ebp,12(%rsp) + movl %r12d,%ecx + xorl 24(%rsp),%r14d + xorl %edi,%eax + roll $5,%ecx + xorl 48(%rsp),%r14d + leal -899497514(%rbp,%r11,1),%r11d + xorl %esi,%eax + addl %ecx,%r11d + roll $30,%r13d + addl %eax,%r11d + roll $1,%r14d + xorl 20(%rsp),%edx + movl %r12d,%eax + movl %r14d,16(%rsp) + movl %r11d,%ecx + xorl 28(%rsp),%edx + xorl %esi,%eax + roll $5,%ecx + xorl 52(%rsp),%edx + leal -899497514(%r14,%rdi,1),%edi + xorl %r13d,%eax + addl %ecx,%edi + roll $30,%r12d + addl %eax,%edi + roll $1,%edx + xorl 24(%rsp),%ebp + movl %r11d,%eax + movl %edx,20(%rsp) + movl %edi,%ecx + xorl 32(%rsp),%ebp + xorl %r13d,%eax + roll $5,%ecx + xorl 56(%rsp),%ebp + leal -899497514(%rdx,%rsi,1),%esi + xorl %r12d,%eax + addl %ecx,%esi + roll $30,%r11d + addl %eax,%esi + roll $1,%ebp + xorl 28(%rsp),%r14d + movl %edi,%eax + movl %ebp,24(%rsp) + movl %esi,%ecx + xorl 36(%rsp),%r14d + xorl %r12d,%eax + roll $5,%ecx + xorl 60(%rsp),%r14d + leal -899497514(%rbp,%r13,1),%r13d + xorl %r11d,%eax + addl %ecx,%r13d + roll $30,%edi + addl %eax,%r13d + roll $1,%r14d + xorl 32(%rsp),%edx + movl %esi,%eax + movl %r14d,28(%rsp) + movl %r13d,%ecx + xorl 40(%rsp),%edx + xorl %r11d,%eax + roll $5,%ecx + xorl 0(%rsp),%edx + leal -899497514(%r14,%r12,1),%r12d + xorl %edi,%eax + addl %ecx,%r12d + roll $30,%esi + addl %eax,%r12d + roll $1,%edx + xorl 36(%rsp),%ebp + movl %r13d,%eax + + movl %r12d,%ecx + xorl 44(%rsp),%ebp + xorl %edi,%eax + roll $5,%ecx + xorl 4(%rsp),%ebp + leal -899497514(%rdx,%r11,1),%r11d + xorl %esi,%eax + addl %ecx,%r11d + roll $30,%r13d + addl %eax,%r11d + roll $1,%ebp + xorl 40(%rsp),%r14d + movl %r12d,%eax + + movl %r11d,%ecx + xorl 48(%rsp),%r14d + xorl %esi,%eax + roll $5,%ecx + xorl 8(%rsp),%r14d + leal -899497514(%rbp,%rdi,1),%edi + xorl %r13d,%eax + addl %ecx,%edi + roll $30,%r12d + addl %eax,%edi + roll $1,%r14d + xorl 44(%rsp),%edx + movl %r11d,%eax + + movl %edi,%ecx + xorl 52(%rsp),%edx + xorl %r13d,%eax + roll $5,%ecx + xorl 12(%rsp),%edx + leal -899497514(%r14,%rsi,1),%esi + xorl %r12d,%eax + addl %ecx,%esi + roll $30,%r11d + addl %eax,%esi + roll $1,%edx + xorl 48(%rsp),%ebp + movl %edi,%eax + + movl %esi,%ecx + xorl 56(%rsp),%ebp + xorl %r12d,%eax + roll $5,%ecx + xorl 16(%rsp),%ebp + leal -899497514(%rdx,%r13,1),%r13d + xorl %r11d,%eax + addl %ecx,%r13d + roll $30,%edi + addl %eax,%r13d + roll $1,%ebp + xorl 52(%rsp),%r14d + movl %esi,%eax + + movl %r13d,%ecx + xorl 60(%rsp),%r14d + xorl %r11d,%eax + roll $5,%ecx + xorl 20(%rsp),%r14d + leal -899497514(%rbp,%r12,1),%r12d + xorl %edi,%eax + addl %ecx,%r12d + roll $30,%esi + addl %eax,%r12d + roll $1,%r14d + xorl 56(%rsp),%edx + movl %r13d,%eax + + movl %r12d,%ecx + xorl 0(%rsp),%edx + xorl %edi,%eax + roll $5,%ecx + xorl 24(%rsp),%edx + leal -899497514(%r14,%r11,1),%r11d + xorl %esi,%eax + addl %ecx,%r11d + roll $30,%r13d + addl %eax,%r11d + roll $1,%edx + xorl 60(%rsp),%ebp + movl %r12d,%eax + + movl %r11d,%ecx + xorl 4(%rsp),%ebp + xorl %esi,%eax + roll $5,%ecx + xorl 28(%rsp),%ebp + leal -899497514(%rdx,%rdi,1),%edi + xorl %r13d,%eax + addl %ecx,%edi + roll $30,%r12d + addl %eax,%edi + roll $1,%ebp + movl %r11d,%eax + movl %edi,%ecx + xorl %r13d,%eax + leal -899497514(%rbp,%rsi,1),%esi + roll $5,%ecx + xorl %r12d,%eax + addl %ecx,%esi + roll $30,%r11d + addl %eax,%esi + addl 0(%r8),%esi + addl 4(%r8),%edi + addl 8(%r8),%r11d + addl 12(%r8),%r12d + addl 16(%r8),%r13d + movl %esi,0(%r8) + movl %edi,4(%r8) + movl %r11d,8(%r8) + movl %r12d,12(%r8) + movl %r13d,16(%r8) + + subq $1,%r10 + leaq 64(%r9),%r9 + jnz .Lloop + + movq 64(%rsp),%rsi +.cfi_def_cfa %rsi,8 + movq -40(%rsi),%r14 +.cfi_restore %r14 + movq -32(%rsi),%r13 +.cfi_restore %r13 + movq -24(%rsi),%r12 +.cfi_restore %r12 + movq -16(%rsi),%rbp +.cfi_restore %rbp + movq -8(%rsi),%rbx +.cfi_restore %rbx + leaq (%rsi),%rsp +.cfi_def_cfa_register %rsp +.Lepilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size sha1_block_data_order,.-sha1_block_data_order +.type sha1_block_data_order_shaext,@function +.align 32 +sha1_block_data_order_shaext: +_shaext_shortcut: +.cfi_startproc + movdqu (%rdi),%xmm0 + movd 16(%rdi),%xmm1 + movdqa K_XX_XX+160(%rip),%xmm3 + + movdqu (%rsi),%xmm4 + pshufd $27,%xmm0,%xmm0 + movdqu 16(%rsi),%xmm5 + pshufd $27,%xmm1,%xmm1 + movdqu 32(%rsi),%xmm6 +.byte 102,15,56,0,227 + movdqu 48(%rsi),%xmm7 +.byte 102,15,56,0,235 +.byte 102,15,56,0,243 + movdqa %xmm1,%xmm9 +.byte 102,15,56,0,251 + jmp .Loop_shaext + +.align 16 +.Loop_shaext: + decq %rdx + leaq 64(%rsi),%r8 + paddd %xmm4,%xmm1 + cmovneq %r8,%rsi + movdqa %xmm0,%xmm8 +.byte 15,56,201,229 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,0 +.byte 15,56,200,213 + pxor %xmm6,%xmm4 +.byte 15,56,201,238 +.byte 15,56,202,231 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,0 +.byte 15,56,200,206 + pxor %xmm7,%xmm5 +.byte 15,56,202,236 +.byte 15,56,201,247 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,0 +.byte 15,56,200,215 + pxor %xmm4,%xmm6 +.byte 15,56,201,252 +.byte 15,56,202,245 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,0 +.byte 15,56,200,204 + pxor %xmm5,%xmm7 +.byte 15,56,202,254 +.byte 15,56,201,229 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,0 +.byte 15,56,200,213 + pxor %xmm6,%xmm4 +.byte 15,56,201,238 +.byte 15,56,202,231 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,1 +.byte 15,56,200,206 + pxor %xmm7,%xmm5 +.byte 15,56,202,236 +.byte 15,56,201,247 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,1 +.byte 15,56,200,215 + pxor %xmm4,%xmm6 +.byte 15,56,201,252 +.byte 15,56,202,245 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,1 +.byte 15,56,200,204 + pxor %xmm5,%xmm7 +.byte 15,56,202,254 +.byte 15,56,201,229 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,1 +.byte 15,56,200,213 + pxor %xmm6,%xmm4 +.byte 15,56,201,238 +.byte 15,56,202,231 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,1 +.byte 15,56,200,206 + pxor %xmm7,%xmm5 +.byte 15,56,202,236 +.byte 15,56,201,247 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,2 +.byte 15,56,200,215 + pxor %xmm4,%xmm6 +.byte 15,56,201,252 +.byte 15,56,202,245 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,2 +.byte 15,56,200,204 + pxor %xmm5,%xmm7 +.byte 15,56,202,254 +.byte 15,56,201,229 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,2 +.byte 15,56,200,213 + pxor %xmm6,%xmm4 +.byte 15,56,201,238 +.byte 15,56,202,231 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,2 +.byte 15,56,200,206 + pxor %xmm7,%xmm5 +.byte 15,56,202,236 +.byte 15,56,201,247 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,2 +.byte 15,56,200,215 + pxor %xmm4,%xmm6 +.byte 15,56,201,252 +.byte 15,56,202,245 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,3 +.byte 15,56,200,204 + pxor %xmm5,%xmm7 +.byte 15,56,202,254 + movdqu (%rsi),%xmm4 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,3 +.byte 15,56,200,213 + movdqu 16(%rsi),%xmm5 +.byte 102,15,56,0,227 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,3 +.byte 15,56,200,206 + movdqu 32(%rsi),%xmm6 +.byte 102,15,56,0,235 + + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,3 +.byte 15,56,200,215 + movdqu 48(%rsi),%xmm7 +.byte 102,15,56,0,243 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,3 +.byte 65,15,56,200,201 +.byte 102,15,56,0,251 + + paddd %xmm8,%xmm0 + movdqa %xmm1,%xmm9 + + jnz .Loop_shaext + + pshufd $27,%xmm0,%xmm0 + pshufd $27,%xmm1,%xmm1 + movdqu %xmm0,(%rdi) + movd %xmm1,16(%rdi) + .byte 0xf3,0xc3 +.cfi_endproc +.size sha1_block_data_order_shaext,.-sha1_block_data_order_shaext +.type sha1_block_data_order_ssse3,@function +.align 16 +sha1_block_data_order_ssse3: +_ssse3_shortcut: +.cfi_startproc + movq %rsp,%r11 +.cfi_def_cfa_register %r11 + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + leaq -64(%rsp),%rsp + andq $-64,%rsp + movq %rdi,%r8 + movq %rsi,%r9 + movq %rdx,%r10 + + shlq $6,%r10 + addq %r9,%r10 + leaq K_XX_XX+64(%rip),%r14 + + movl 0(%r8),%eax + movl 4(%r8),%ebx + movl 8(%r8),%ecx + movl 12(%r8),%edx + movl %ebx,%esi + movl 16(%r8),%ebp + movl %ecx,%edi + xorl %edx,%edi + andl %edi,%esi + + movdqa 64(%r14),%xmm6 + movdqa -64(%r14),%xmm9 + movdqu 0(%r9),%xmm0 + movdqu 16(%r9),%xmm1 + movdqu 32(%r9),%xmm2 + movdqu 48(%r9),%xmm3 +.byte 102,15,56,0,198 +.byte 102,15,56,0,206 +.byte 102,15,56,0,214 + addq $64,%r9 + paddd %xmm9,%xmm0 +.byte 102,15,56,0,222 + paddd %xmm9,%xmm1 + paddd %xmm9,%xmm2 + movdqa %xmm0,0(%rsp) + psubd %xmm9,%xmm0 + movdqa %xmm1,16(%rsp) + psubd %xmm9,%xmm1 + movdqa %xmm2,32(%rsp) + psubd %xmm9,%xmm2 + jmp .Loop_ssse3 +.align 16 +.Loop_ssse3: + rorl $2,%ebx + pshufd $238,%xmm0,%xmm4 + xorl %edx,%esi + movdqa %xmm3,%xmm8 + paddd %xmm3,%xmm9 + movl %eax,%edi + addl 0(%rsp),%ebp + punpcklqdq %xmm1,%xmm4 + xorl %ecx,%ebx + roll $5,%eax + addl %esi,%ebp + psrldq $4,%xmm8 + andl %ebx,%edi + xorl %ecx,%ebx + pxor %xmm0,%xmm4 + addl %eax,%ebp + rorl $7,%eax + pxor %xmm2,%xmm8 + xorl %ecx,%edi + movl %ebp,%esi + addl 4(%rsp),%edx + pxor %xmm8,%xmm4 + xorl %ebx,%eax + roll $5,%ebp + movdqa %xmm9,48(%rsp) + addl %edi,%edx + andl %eax,%esi + movdqa %xmm4,%xmm10 + xorl %ebx,%eax + addl %ebp,%edx + rorl $7,%ebp + movdqa %xmm4,%xmm8 + xorl %ebx,%esi + pslldq $12,%xmm10 + paddd %xmm4,%xmm4 + movl %edx,%edi + addl 8(%rsp),%ecx + psrld $31,%xmm8 + xorl %eax,%ebp + roll $5,%edx + addl %esi,%ecx + movdqa %xmm10,%xmm9 + andl %ebp,%edi + xorl %eax,%ebp + psrld $30,%xmm10 + addl %edx,%ecx + rorl $7,%edx + por %xmm8,%xmm4 + xorl %eax,%edi + movl %ecx,%esi + addl 12(%rsp),%ebx + pslld $2,%xmm9 + pxor %xmm10,%xmm4 + xorl %ebp,%edx + movdqa -64(%r14),%xmm10 + roll $5,%ecx + addl %edi,%ebx + andl %edx,%esi + pxor %xmm9,%xmm4 + xorl %ebp,%edx + addl %ecx,%ebx + rorl $7,%ecx + pshufd $238,%xmm1,%xmm5 + xorl %ebp,%esi + movdqa %xmm4,%xmm9 + paddd %xmm4,%xmm10 + movl %ebx,%edi + addl 16(%rsp),%eax + punpcklqdq %xmm2,%xmm5 + xorl %edx,%ecx + roll $5,%ebx + addl %esi,%eax + psrldq $4,%xmm9 + andl %ecx,%edi + xorl %edx,%ecx + pxor %xmm1,%xmm5 + addl %ebx,%eax + rorl $7,%ebx + pxor %xmm3,%xmm9 + xorl %edx,%edi + movl %eax,%esi + addl 20(%rsp),%ebp + pxor %xmm9,%xmm5 + xorl %ecx,%ebx + roll $5,%eax + movdqa %xmm10,0(%rsp) + addl %edi,%ebp + andl %ebx,%esi + movdqa %xmm5,%xmm8 + xorl %ecx,%ebx + addl %eax,%ebp + rorl $7,%eax + movdqa %xmm5,%xmm9 + xorl %ecx,%esi + pslldq $12,%xmm8 + paddd %xmm5,%xmm5 + movl %ebp,%edi + addl 24(%rsp),%edx + psrld $31,%xmm9 + xorl %ebx,%eax + roll $5,%ebp + addl %esi,%edx + movdqa %xmm8,%xmm10 + andl %eax,%edi + xorl %ebx,%eax + psrld $30,%xmm8 + addl %ebp,%edx + rorl $7,%ebp + por %xmm9,%xmm5 + xorl %ebx,%edi + movl %edx,%esi + addl 28(%rsp),%ecx + pslld $2,%xmm10 + pxor %xmm8,%xmm5 + xorl %eax,%ebp + movdqa -32(%r14),%xmm8 + roll $5,%edx + addl %edi,%ecx + andl %ebp,%esi + pxor %xmm10,%xmm5 + xorl %eax,%ebp + addl %edx,%ecx + rorl $7,%edx + pshufd $238,%xmm2,%xmm6 + xorl %eax,%esi + movdqa %xmm5,%xmm10 + paddd %xmm5,%xmm8 + movl %ecx,%edi + addl 32(%rsp),%ebx + punpcklqdq %xmm3,%xmm6 + xorl %ebp,%edx + roll $5,%ecx + addl %esi,%ebx + psrldq $4,%xmm10 + andl %edx,%edi + xorl %ebp,%edx + pxor %xmm2,%xmm6 + addl %ecx,%ebx + rorl $7,%ecx + pxor %xmm4,%xmm10 + xorl %ebp,%edi + movl %ebx,%esi + addl 36(%rsp),%eax + pxor %xmm10,%xmm6 + xorl %edx,%ecx + roll $5,%ebx + movdqa %xmm8,16(%rsp) + addl %edi,%eax + andl %ecx,%esi + movdqa %xmm6,%xmm9 + xorl %edx,%ecx + addl %ebx,%eax + rorl $7,%ebx + movdqa %xmm6,%xmm10 + xorl %edx,%esi + pslldq $12,%xmm9 + paddd %xmm6,%xmm6 + movl %eax,%edi + addl 40(%rsp),%ebp + psrld $31,%xmm10 + xorl %ecx,%ebx + roll $5,%eax + addl %esi,%ebp + movdqa %xmm9,%xmm8 + andl %ebx,%edi + xorl %ecx,%ebx + psrld $30,%xmm9 + addl %eax,%ebp + rorl $7,%eax + por %xmm10,%xmm6 + xorl %ecx,%edi + movl %ebp,%esi + addl 44(%rsp),%edx + pslld $2,%xmm8 + pxor %xmm9,%xmm6 + xorl %ebx,%eax + movdqa -32(%r14),%xmm9 + roll $5,%ebp + addl %edi,%edx + andl %eax,%esi + pxor %xmm8,%xmm6 + xorl %ebx,%eax + addl %ebp,%edx + rorl $7,%ebp + pshufd $238,%xmm3,%xmm7 + xorl %ebx,%esi + movdqa %xmm6,%xmm8 + paddd %xmm6,%xmm9 + movl %edx,%edi + addl 48(%rsp),%ecx + punpcklqdq %xmm4,%xmm7 + xorl %eax,%ebp + roll $5,%edx + addl %esi,%ecx + psrldq $4,%xmm8 + andl %ebp,%edi + xorl %eax,%ebp + pxor %xmm3,%xmm7 + addl %edx,%ecx + rorl $7,%edx + pxor %xmm5,%xmm8 + xorl %eax,%edi + movl %ecx,%esi + addl 52(%rsp),%ebx + pxor %xmm8,%xmm7 + xorl %ebp,%edx + roll $5,%ecx + movdqa %xmm9,32(%rsp) + addl %edi,%ebx + andl %edx,%esi + movdqa %xmm7,%xmm10 + xorl %ebp,%edx + addl %ecx,%ebx + rorl $7,%ecx + movdqa %xmm7,%xmm8 + xorl %ebp,%esi + pslldq $12,%xmm10 + paddd %xmm7,%xmm7 + movl %ebx,%edi + addl 56(%rsp),%eax + psrld $31,%xmm8 + xorl %edx,%ecx + roll $5,%ebx + addl %esi,%eax + movdqa %xmm10,%xmm9 + andl %ecx,%edi + xorl %edx,%ecx + psrld $30,%xmm10 + addl %ebx,%eax + rorl $7,%ebx + por %xmm8,%xmm7 + xorl %edx,%edi + movl %eax,%esi + addl 60(%rsp),%ebp + pslld $2,%xmm9 + pxor %xmm10,%xmm7 + xorl %ecx,%ebx + movdqa -32(%r14),%xmm10 + roll $5,%eax + addl %edi,%ebp + andl %ebx,%esi + pxor %xmm9,%xmm7 + pshufd $238,%xmm6,%xmm9 + xorl %ecx,%ebx + addl %eax,%ebp + rorl $7,%eax + pxor %xmm4,%xmm0 + xorl %ecx,%esi + movl %ebp,%edi + addl 0(%rsp),%edx + punpcklqdq %xmm7,%xmm9 + xorl %ebx,%eax + roll $5,%ebp + pxor %xmm1,%xmm0 + addl %esi,%edx + andl %eax,%edi + movdqa %xmm10,%xmm8 + xorl %ebx,%eax + paddd %xmm7,%xmm10 + addl %ebp,%edx + pxor %xmm9,%xmm0 + rorl $7,%ebp + xorl %ebx,%edi + movl %edx,%esi + addl 4(%rsp),%ecx + movdqa %xmm0,%xmm9 + xorl %eax,%ebp + roll $5,%edx + movdqa %xmm10,48(%rsp) + addl %edi,%ecx + andl %ebp,%esi + xorl %eax,%ebp + pslld $2,%xmm0 + addl %edx,%ecx + rorl $7,%edx + psrld $30,%xmm9 + xorl %eax,%esi + movl %ecx,%edi + addl 8(%rsp),%ebx + por %xmm9,%xmm0 + xorl %ebp,%edx + roll $5,%ecx + pshufd $238,%xmm7,%xmm10 + addl %esi,%ebx + andl %edx,%edi + xorl %ebp,%edx + addl %ecx,%ebx + addl 12(%rsp),%eax + xorl %ebp,%edi + movl %ebx,%esi + roll $5,%ebx + addl %edi,%eax + xorl %edx,%esi + rorl $7,%ecx + addl %ebx,%eax + pxor %xmm5,%xmm1 + addl 16(%rsp),%ebp + xorl %ecx,%esi + punpcklqdq %xmm0,%xmm10 + movl %eax,%edi + roll $5,%eax + pxor %xmm2,%xmm1 + addl %esi,%ebp + xorl %ecx,%edi + movdqa %xmm8,%xmm9 + rorl $7,%ebx + paddd %xmm0,%xmm8 + addl %eax,%ebp + pxor %xmm10,%xmm1 + addl 20(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + roll $5,%ebp + movdqa %xmm1,%xmm10 + addl %edi,%edx + xorl %ebx,%esi + movdqa %xmm8,0(%rsp) + rorl $7,%eax + addl %ebp,%edx + addl 24(%rsp),%ecx + pslld $2,%xmm1 + xorl %eax,%esi + movl %edx,%edi + psrld $30,%xmm10 + roll $5,%edx + addl %esi,%ecx + xorl %eax,%edi + rorl $7,%ebp + por %xmm10,%xmm1 + addl %edx,%ecx + addl 28(%rsp),%ebx + pshufd $238,%xmm0,%xmm8 + xorl %ebp,%edi + movl %ecx,%esi + roll $5,%ecx + addl %edi,%ebx + xorl %ebp,%esi + rorl $7,%edx + addl %ecx,%ebx + pxor %xmm6,%xmm2 + addl 32(%rsp),%eax + xorl %edx,%esi + punpcklqdq %xmm1,%xmm8 + movl %ebx,%edi + roll $5,%ebx + pxor %xmm3,%xmm2 + addl %esi,%eax + xorl %edx,%edi + movdqa 0(%r14),%xmm10 + rorl $7,%ecx + paddd %xmm1,%xmm9 + addl %ebx,%eax + pxor %xmm8,%xmm2 + addl 36(%rsp),%ebp + xorl %ecx,%edi + movl %eax,%esi + roll $5,%eax + movdqa %xmm2,%xmm8 + addl %edi,%ebp + xorl %ecx,%esi + movdqa %xmm9,16(%rsp) + rorl $7,%ebx + addl %eax,%ebp + addl 40(%rsp),%edx + pslld $2,%xmm2 + xorl %ebx,%esi + movl %ebp,%edi + psrld $30,%xmm8 + roll $5,%ebp + addl %esi,%edx + xorl %ebx,%edi + rorl $7,%eax + por %xmm8,%xmm2 + addl %ebp,%edx + addl 44(%rsp),%ecx + pshufd $238,%xmm1,%xmm9 + xorl %eax,%edi + movl %edx,%esi + roll $5,%edx + addl %edi,%ecx + xorl %eax,%esi + rorl $7,%ebp + addl %edx,%ecx + pxor %xmm7,%xmm3 + addl 48(%rsp),%ebx + xorl %ebp,%esi + punpcklqdq %xmm2,%xmm9 + movl %ecx,%edi + roll $5,%ecx + pxor %xmm4,%xmm3 + addl %esi,%ebx + xorl %ebp,%edi + movdqa %xmm10,%xmm8 + rorl $7,%edx + paddd %xmm2,%xmm10 + addl %ecx,%ebx + pxor %xmm9,%xmm3 + addl 52(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + roll $5,%ebx + movdqa %xmm3,%xmm9 + addl %edi,%eax + xorl %edx,%esi + movdqa %xmm10,32(%rsp) + rorl $7,%ecx + addl %ebx,%eax + addl 56(%rsp),%ebp + pslld $2,%xmm3 + xorl %ecx,%esi + movl %eax,%edi + psrld $30,%xmm9 + roll $5,%eax + addl %esi,%ebp + xorl %ecx,%edi + rorl $7,%ebx + por %xmm9,%xmm3 + addl %eax,%ebp + addl 60(%rsp),%edx + pshufd $238,%xmm2,%xmm10 + xorl %ebx,%edi + movl %ebp,%esi + roll $5,%ebp + addl %edi,%edx + xorl %ebx,%esi + rorl $7,%eax + addl %ebp,%edx + pxor %xmm0,%xmm4 + addl 0(%rsp),%ecx + xorl %eax,%esi + punpcklqdq %xmm3,%xmm10 + movl %edx,%edi + roll $5,%edx + pxor %xmm5,%xmm4 + addl %esi,%ecx + xorl %eax,%edi + movdqa %xmm8,%xmm9 + rorl $7,%ebp + paddd %xmm3,%xmm8 + addl %edx,%ecx + pxor %xmm10,%xmm4 + addl 4(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + roll $5,%ecx + movdqa %xmm4,%xmm10 + addl %edi,%ebx + xorl %ebp,%esi + movdqa %xmm8,48(%rsp) + rorl $7,%edx + addl %ecx,%ebx + addl 8(%rsp),%eax + pslld $2,%xmm4 + xorl %edx,%esi + movl %ebx,%edi + psrld $30,%xmm10 + roll $5,%ebx + addl %esi,%eax + xorl %edx,%edi + rorl $7,%ecx + por %xmm10,%xmm4 + addl %ebx,%eax + addl 12(%rsp),%ebp + pshufd $238,%xmm3,%xmm8 + xorl %ecx,%edi + movl %eax,%esi + roll $5,%eax + addl %edi,%ebp + xorl %ecx,%esi + rorl $7,%ebx + addl %eax,%ebp + pxor %xmm1,%xmm5 + addl 16(%rsp),%edx + xorl %ebx,%esi + punpcklqdq %xmm4,%xmm8 + movl %ebp,%edi + roll $5,%ebp + pxor %xmm6,%xmm5 + addl %esi,%edx + xorl %ebx,%edi + movdqa %xmm9,%xmm10 + rorl $7,%eax + paddd %xmm4,%xmm9 + addl %ebp,%edx + pxor %xmm8,%xmm5 + addl 20(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + roll $5,%edx + movdqa %xmm5,%xmm8 + addl %edi,%ecx + xorl %eax,%esi + movdqa %xmm9,0(%rsp) + rorl $7,%ebp + addl %edx,%ecx + addl 24(%rsp),%ebx + pslld $2,%xmm5 + xorl %ebp,%esi + movl %ecx,%edi + psrld $30,%xmm8 + roll $5,%ecx + addl %esi,%ebx + xorl %ebp,%edi + rorl $7,%edx + por %xmm8,%xmm5 + addl %ecx,%ebx + addl 28(%rsp),%eax + pshufd $238,%xmm4,%xmm9 + rorl $7,%ecx + movl %ebx,%esi + xorl %edx,%edi + roll $5,%ebx + addl %edi,%eax + xorl %ecx,%esi + xorl %edx,%ecx + addl %ebx,%eax + pxor %xmm2,%xmm6 + addl 32(%rsp),%ebp + andl %ecx,%esi + xorl %edx,%ecx + rorl $7,%ebx + punpcklqdq %xmm5,%xmm9 + movl %eax,%edi + xorl %ecx,%esi + pxor %xmm7,%xmm6 + roll $5,%eax + addl %esi,%ebp + movdqa %xmm10,%xmm8 + xorl %ebx,%edi + paddd %xmm5,%xmm10 + xorl %ecx,%ebx + pxor %xmm9,%xmm6 + addl %eax,%ebp + addl 36(%rsp),%edx + andl %ebx,%edi + xorl %ecx,%ebx + rorl $7,%eax + movdqa %xmm6,%xmm9 + movl %ebp,%esi + xorl %ebx,%edi + movdqa %xmm10,16(%rsp) + roll $5,%ebp + addl %edi,%edx + xorl %eax,%esi + pslld $2,%xmm6 + xorl %ebx,%eax + addl %ebp,%edx + psrld $30,%xmm9 + addl 40(%rsp),%ecx + andl %eax,%esi + xorl %ebx,%eax + por %xmm9,%xmm6 + rorl $7,%ebp + movl %edx,%edi + xorl %eax,%esi + roll $5,%edx + pshufd $238,%xmm5,%xmm10 + addl %esi,%ecx + xorl %ebp,%edi + xorl %eax,%ebp + addl %edx,%ecx + addl 44(%rsp),%ebx + andl %ebp,%edi + xorl %eax,%ebp + rorl $7,%edx + movl %ecx,%esi + xorl %ebp,%edi + roll $5,%ecx + addl %edi,%ebx + xorl %edx,%esi + xorl %ebp,%edx + addl %ecx,%ebx + pxor %xmm3,%xmm7 + addl 48(%rsp),%eax + andl %edx,%esi + xorl %ebp,%edx + rorl $7,%ecx + punpcklqdq %xmm6,%xmm10 + movl %ebx,%edi + xorl %edx,%esi + pxor %xmm0,%xmm7 + roll $5,%ebx + addl %esi,%eax + movdqa 32(%r14),%xmm9 + xorl %ecx,%edi + paddd %xmm6,%xmm8 + xorl %edx,%ecx + pxor %xmm10,%xmm7 + addl %ebx,%eax + addl 52(%rsp),%ebp + andl %ecx,%edi + xorl %edx,%ecx + rorl $7,%ebx + movdqa %xmm7,%xmm10 + movl %eax,%esi + xorl %ecx,%edi + movdqa %xmm8,32(%rsp) + roll $5,%eax + addl %edi,%ebp + xorl %ebx,%esi + pslld $2,%xmm7 + xorl %ecx,%ebx + addl %eax,%ebp + psrld $30,%xmm10 + addl 56(%rsp),%edx + andl %ebx,%esi + xorl %ecx,%ebx + por %xmm10,%xmm7 + rorl $7,%eax + movl %ebp,%edi + xorl %ebx,%esi + roll $5,%ebp + pshufd $238,%xmm6,%xmm8 + addl %esi,%edx + xorl %eax,%edi + xorl %ebx,%eax + addl %ebp,%edx + addl 60(%rsp),%ecx + andl %eax,%edi + xorl %ebx,%eax + rorl $7,%ebp + movl %edx,%esi + xorl %eax,%edi + roll $5,%edx + addl %edi,%ecx + xorl %ebp,%esi + xorl %eax,%ebp + addl %edx,%ecx + pxor %xmm4,%xmm0 + addl 0(%rsp),%ebx + andl %ebp,%esi + xorl %eax,%ebp + rorl $7,%edx + punpcklqdq %xmm7,%xmm8 + movl %ecx,%edi + xorl %ebp,%esi + pxor %xmm1,%xmm0 + roll $5,%ecx + addl %esi,%ebx + movdqa %xmm9,%xmm10 + xorl %edx,%edi + paddd %xmm7,%xmm9 + xorl %ebp,%edx + pxor %xmm8,%xmm0 + addl %ecx,%ebx + addl 4(%rsp),%eax + andl %edx,%edi + xorl %ebp,%edx + rorl $7,%ecx + movdqa %xmm0,%xmm8 + movl %ebx,%esi + xorl %edx,%edi + movdqa %xmm9,48(%rsp) + roll $5,%ebx + addl %edi,%eax + xorl %ecx,%esi + pslld $2,%xmm0 + xorl %edx,%ecx + addl %ebx,%eax + psrld $30,%xmm8 + addl 8(%rsp),%ebp + andl %ecx,%esi + xorl %edx,%ecx + por %xmm8,%xmm0 + rorl $7,%ebx + movl %eax,%edi + xorl %ecx,%esi + roll $5,%eax + pshufd $238,%xmm7,%xmm9 + addl %esi,%ebp + xorl %ebx,%edi + xorl %ecx,%ebx + addl %eax,%ebp + addl 12(%rsp),%edx + andl %ebx,%edi + xorl %ecx,%ebx + rorl $7,%eax + movl %ebp,%esi + xorl %ebx,%edi + roll $5,%ebp + addl %edi,%edx + xorl %eax,%esi + xorl %ebx,%eax + addl %ebp,%edx + pxor %xmm5,%xmm1 + addl 16(%rsp),%ecx + andl %eax,%esi + xorl %ebx,%eax + rorl $7,%ebp + punpcklqdq %xmm0,%xmm9 + movl %edx,%edi + xorl %eax,%esi + pxor %xmm2,%xmm1 + roll $5,%edx + addl %esi,%ecx + movdqa %xmm10,%xmm8 + xorl %ebp,%edi + paddd %xmm0,%xmm10 + xorl %eax,%ebp + pxor %xmm9,%xmm1 + addl %edx,%ecx + addl 20(%rsp),%ebx + andl %ebp,%edi + xorl %eax,%ebp + rorl $7,%edx + movdqa %xmm1,%xmm9 + movl %ecx,%esi + xorl %ebp,%edi + movdqa %xmm10,0(%rsp) + roll $5,%ecx + addl %edi,%ebx + xorl %edx,%esi + pslld $2,%xmm1 + xorl %ebp,%edx + addl %ecx,%ebx + psrld $30,%xmm9 + addl 24(%rsp),%eax + andl %edx,%esi + xorl %ebp,%edx + por %xmm9,%xmm1 + rorl $7,%ecx + movl %ebx,%edi + xorl %edx,%esi + roll $5,%ebx + pshufd $238,%xmm0,%xmm10 + addl %esi,%eax + xorl %ecx,%edi + xorl %edx,%ecx + addl %ebx,%eax + addl 28(%rsp),%ebp + andl %ecx,%edi + xorl %edx,%ecx + rorl $7,%ebx + movl %eax,%esi + xorl %ecx,%edi + roll $5,%eax + addl %edi,%ebp + xorl %ebx,%esi + xorl %ecx,%ebx + addl %eax,%ebp + pxor %xmm6,%xmm2 + addl 32(%rsp),%edx + andl %ebx,%esi + xorl %ecx,%ebx + rorl $7,%eax + punpcklqdq %xmm1,%xmm10 + movl %ebp,%edi + xorl %ebx,%esi + pxor %xmm3,%xmm2 + roll $5,%ebp + addl %esi,%edx + movdqa %xmm8,%xmm9 + xorl %eax,%edi + paddd %xmm1,%xmm8 + xorl %ebx,%eax + pxor %xmm10,%xmm2 + addl %ebp,%edx + addl 36(%rsp),%ecx + andl %eax,%edi + xorl %ebx,%eax + rorl $7,%ebp + movdqa %xmm2,%xmm10 + movl %edx,%esi + xorl %eax,%edi + movdqa %xmm8,16(%rsp) + roll $5,%edx + addl %edi,%ecx + xorl %ebp,%esi + pslld $2,%xmm2 + xorl %eax,%ebp + addl %edx,%ecx + psrld $30,%xmm10 + addl 40(%rsp),%ebx + andl %ebp,%esi + xorl %eax,%ebp + por %xmm10,%xmm2 + rorl $7,%edx + movl %ecx,%edi + xorl %ebp,%esi + roll $5,%ecx + pshufd $238,%xmm1,%xmm8 + addl %esi,%ebx + xorl %edx,%edi + xorl %ebp,%edx + addl %ecx,%ebx + addl 44(%rsp),%eax + andl %edx,%edi + xorl %ebp,%edx + rorl $7,%ecx + movl %ebx,%esi + xorl %edx,%edi + roll $5,%ebx + addl %edi,%eax + xorl %edx,%esi + addl %ebx,%eax + pxor %xmm7,%xmm3 + addl 48(%rsp),%ebp + xorl %ecx,%esi + punpcklqdq %xmm2,%xmm8 + movl %eax,%edi + roll $5,%eax + pxor %xmm4,%xmm3 + addl %esi,%ebp + xorl %ecx,%edi + movdqa %xmm9,%xmm10 + rorl $7,%ebx + paddd %xmm2,%xmm9 + addl %eax,%ebp + pxor %xmm8,%xmm3 + addl 52(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + roll $5,%ebp + movdqa %xmm3,%xmm8 + addl %edi,%edx + xorl %ebx,%esi + movdqa %xmm9,32(%rsp) + rorl $7,%eax + addl %ebp,%edx + addl 56(%rsp),%ecx + pslld $2,%xmm3 + xorl %eax,%esi + movl %edx,%edi + psrld $30,%xmm8 + roll $5,%edx + addl %esi,%ecx + xorl %eax,%edi + rorl $7,%ebp + por %xmm8,%xmm3 + addl %edx,%ecx + addl 60(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + roll $5,%ecx + addl %edi,%ebx + xorl %ebp,%esi + rorl $7,%edx + addl %ecx,%ebx + addl 0(%rsp),%eax + xorl %edx,%esi + movl %ebx,%edi + roll $5,%ebx + paddd %xmm3,%xmm10 + addl %esi,%eax + xorl %edx,%edi + movdqa %xmm10,48(%rsp) + rorl $7,%ecx + addl %ebx,%eax + addl 4(%rsp),%ebp + xorl %ecx,%edi + movl %eax,%esi + roll $5,%eax + addl %edi,%ebp + xorl %ecx,%esi + rorl $7,%ebx + addl %eax,%ebp + addl 8(%rsp),%edx + xorl %ebx,%esi + movl %ebp,%edi + roll $5,%ebp + addl %esi,%edx + xorl %ebx,%edi + rorl $7,%eax + addl %ebp,%edx + addl 12(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + roll $5,%edx + addl %edi,%ecx + xorl %eax,%esi + rorl $7,%ebp + addl %edx,%ecx + cmpq %r10,%r9 + je .Ldone_ssse3 + movdqa 64(%r14),%xmm6 + movdqa -64(%r14),%xmm9 + movdqu 0(%r9),%xmm0 + movdqu 16(%r9),%xmm1 + movdqu 32(%r9),%xmm2 + movdqu 48(%r9),%xmm3 +.byte 102,15,56,0,198 + addq $64,%r9 + addl 16(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi +.byte 102,15,56,0,206 + roll $5,%ecx + addl %esi,%ebx + xorl %ebp,%edi + rorl $7,%edx + paddd %xmm9,%xmm0 + addl %ecx,%ebx + addl 20(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + movdqa %xmm0,0(%rsp) + roll $5,%ebx + addl %edi,%eax + xorl %edx,%esi + rorl $7,%ecx + psubd %xmm9,%xmm0 + addl %ebx,%eax + addl 24(%rsp),%ebp + xorl %ecx,%esi + movl %eax,%edi + roll $5,%eax + addl %esi,%ebp + xorl %ecx,%edi + rorl $7,%ebx + addl %eax,%ebp + addl 28(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + roll $5,%ebp + addl %edi,%edx + xorl %ebx,%esi + rorl $7,%eax + addl %ebp,%edx + addl 32(%rsp),%ecx + xorl %eax,%esi + movl %edx,%edi +.byte 102,15,56,0,214 + roll $5,%edx + addl %esi,%ecx + xorl %eax,%edi + rorl $7,%ebp + paddd %xmm9,%xmm1 + addl %edx,%ecx + addl 36(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + movdqa %xmm1,16(%rsp) + roll $5,%ecx + addl %edi,%ebx + xorl %ebp,%esi + rorl $7,%edx + psubd %xmm9,%xmm1 + addl %ecx,%ebx + addl 40(%rsp),%eax + xorl %edx,%esi + movl %ebx,%edi + roll $5,%ebx + addl %esi,%eax + xorl %edx,%edi + rorl $7,%ecx + addl %ebx,%eax + addl 44(%rsp),%ebp + xorl %ecx,%edi + movl %eax,%esi + roll $5,%eax + addl %edi,%ebp + xorl %ecx,%esi + rorl $7,%ebx + addl %eax,%ebp + addl 48(%rsp),%edx + xorl %ebx,%esi + movl %ebp,%edi +.byte 102,15,56,0,222 + roll $5,%ebp + addl %esi,%edx + xorl %ebx,%edi + rorl $7,%eax + paddd %xmm9,%xmm2 + addl %ebp,%edx + addl 52(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + movdqa %xmm2,32(%rsp) + roll $5,%edx + addl %edi,%ecx + xorl %eax,%esi + rorl $7,%ebp + psubd %xmm9,%xmm2 + addl %edx,%ecx + addl 56(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi + roll $5,%ecx + addl %esi,%ebx + xorl %ebp,%edi + rorl $7,%edx + addl %ecx,%ebx + addl 60(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + roll $5,%ebx + addl %edi,%eax + rorl $7,%ecx + addl %ebx,%eax + addl 0(%r8),%eax + addl 4(%r8),%esi + addl 8(%r8),%ecx + addl 12(%r8),%edx + movl %eax,0(%r8) + addl 16(%r8),%ebp + movl %esi,4(%r8) + movl %esi,%ebx + movl %ecx,8(%r8) + movl %ecx,%edi + movl %edx,12(%r8) + xorl %edx,%edi + movl %ebp,16(%r8) + andl %edi,%esi + jmp .Loop_ssse3 + +.align 16 +.Ldone_ssse3: + addl 16(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi + roll $5,%ecx + addl %esi,%ebx + xorl %ebp,%edi + rorl $7,%edx + addl %ecx,%ebx + addl 20(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + roll $5,%ebx + addl %edi,%eax + xorl %edx,%esi + rorl $7,%ecx + addl %ebx,%eax + addl 24(%rsp),%ebp + xorl %ecx,%esi + movl %eax,%edi + roll $5,%eax + addl %esi,%ebp + xorl %ecx,%edi + rorl $7,%ebx + addl %eax,%ebp + addl 28(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + roll $5,%ebp + addl %edi,%edx + xorl %ebx,%esi + rorl $7,%eax + addl %ebp,%edx + addl 32(%rsp),%ecx + xorl %eax,%esi + movl %edx,%edi + roll $5,%edx + addl %esi,%ecx + xorl %eax,%edi + rorl $7,%ebp + addl %edx,%ecx + addl 36(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + roll $5,%ecx + addl %edi,%ebx + xorl %ebp,%esi + rorl $7,%edx + addl %ecx,%ebx + addl 40(%rsp),%eax + xorl %edx,%esi + movl %ebx,%edi + roll $5,%ebx + addl %esi,%eax + xorl %edx,%edi + rorl $7,%ecx + addl %ebx,%eax + addl 44(%rsp),%ebp + xorl %ecx,%edi + movl %eax,%esi + roll $5,%eax + addl %edi,%ebp + xorl %ecx,%esi + rorl $7,%ebx + addl %eax,%ebp + addl 48(%rsp),%edx + xorl %ebx,%esi + movl %ebp,%edi + roll $5,%ebp + addl %esi,%edx + xorl %ebx,%edi + rorl $7,%eax + addl %ebp,%edx + addl 52(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + roll $5,%edx + addl %edi,%ecx + xorl %eax,%esi + rorl $7,%ebp + addl %edx,%ecx + addl 56(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi + roll $5,%ecx + addl %esi,%ebx + xorl %ebp,%edi + rorl $7,%edx + addl %ecx,%ebx + addl 60(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + roll $5,%ebx + addl %edi,%eax + rorl $7,%ecx + addl %ebx,%eax + addl 0(%r8),%eax + addl 4(%r8),%esi + addl 8(%r8),%ecx + movl %eax,0(%r8) + addl 12(%r8),%edx + movl %esi,4(%r8) + addl 16(%r8),%ebp + movl %ecx,8(%r8) + movl %edx,12(%r8) + movl %ebp,16(%r8) + movq -40(%r11),%r14 +.cfi_restore %r14 + movq -32(%r11),%r13 +.cfi_restore %r13 + movq -24(%r11),%r12 +.cfi_restore %r12 + movq -16(%r11),%rbp +.cfi_restore %rbp + movq -8(%r11),%rbx +.cfi_restore %rbx + leaq (%r11),%rsp +.cfi_def_cfa_register %rsp +.Lepilogue_ssse3: + .byte 0xf3,0xc3 +.cfi_endproc +.size sha1_block_data_order_ssse3,.-sha1_block_data_order_ssse3 +.type sha1_block_data_order_avx,@function +.align 16 +sha1_block_data_order_avx: +_avx_shortcut: +.cfi_startproc + movq %rsp,%r11 +.cfi_def_cfa_register %r11 + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + leaq -64(%rsp),%rsp + vzeroupper + andq $-64,%rsp + movq %rdi,%r8 + movq %rsi,%r9 + movq %rdx,%r10 + + shlq $6,%r10 + addq %r9,%r10 + leaq K_XX_XX+64(%rip),%r14 + + movl 0(%r8),%eax + movl 4(%r8),%ebx + movl 8(%r8),%ecx + movl 12(%r8),%edx + movl %ebx,%esi + movl 16(%r8),%ebp + movl %ecx,%edi + xorl %edx,%edi + andl %edi,%esi + + vmovdqa 64(%r14),%xmm6 + vmovdqa -64(%r14),%xmm11 + vmovdqu 0(%r9),%xmm0 + vmovdqu 16(%r9),%xmm1 + vmovdqu 32(%r9),%xmm2 + vmovdqu 48(%r9),%xmm3 + vpshufb %xmm6,%xmm0,%xmm0 + addq $64,%r9 + vpshufb %xmm6,%xmm1,%xmm1 + vpshufb %xmm6,%xmm2,%xmm2 + vpshufb %xmm6,%xmm3,%xmm3 + vpaddd %xmm11,%xmm0,%xmm4 + vpaddd %xmm11,%xmm1,%xmm5 + vpaddd %xmm11,%xmm2,%xmm6 + vmovdqa %xmm4,0(%rsp) + vmovdqa %xmm5,16(%rsp) + vmovdqa %xmm6,32(%rsp) + jmp .Loop_avx +.align 16 +.Loop_avx: + shrdl $2,%ebx,%ebx + xorl %edx,%esi + vpalignr $8,%xmm0,%xmm1,%xmm4 + movl %eax,%edi + addl 0(%rsp),%ebp + vpaddd %xmm3,%xmm11,%xmm9 + xorl %ecx,%ebx + shldl $5,%eax,%eax + vpsrldq $4,%xmm3,%xmm8 + addl %esi,%ebp + andl %ebx,%edi + vpxor %xmm0,%xmm4,%xmm4 + xorl %ecx,%ebx + addl %eax,%ebp + vpxor %xmm2,%xmm8,%xmm8 + shrdl $7,%eax,%eax + xorl %ecx,%edi + movl %ebp,%esi + addl 4(%rsp),%edx + vpxor %xmm8,%xmm4,%xmm4 + xorl %ebx,%eax + shldl $5,%ebp,%ebp + vmovdqa %xmm9,48(%rsp) + addl %edi,%edx + andl %eax,%esi + vpsrld $31,%xmm4,%xmm8 + xorl %ebx,%eax + addl %ebp,%edx + shrdl $7,%ebp,%ebp + xorl %ebx,%esi + vpslldq $12,%xmm4,%xmm10 + vpaddd %xmm4,%xmm4,%xmm4 + movl %edx,%edi + addl 8(%rsp),%ecx + xorl %eax,%ebp + shldl $5,%edx,%edx + vpsrld $30,%xmm10,%xmm9 + vpor %xmm8,%xmm4,%xmm4 + addl %esi,%ecx + andl %ebp,%edi + xorl %eax,%ebp + addl %edx,%ecx + vpslld $2,%xmm10,%xmm10 + vpxor %xmm9,%xmm4,%xmm4 + shrdl $7,%edx,%edx + xorl %eax,%edi + movl %ecx,%esi + addl 12(%rsp),%ebx + vpxor %xmm10,%xmm4,%xmm4 + xorl %ebp,%edx + shldl $5,%ecx,%ecx + addl %edi,%ebx + andl %edx,%esi + xorl %ebp,%edx + addl %ecx,%ebx + shrdl $7,%ecx,%ecx + xorl %ebp,%esi + vpalignr $8,%xmm1,%xmm2,%xmm5 + movl %ebx,%edi + addl 16(%rsp),%eax + vpaddd %xmm4,%xmm11,%xmm9 + xorl %edx,%ecx + shldl $5,%ebx,%ebx + vpsrldq $4,%xmm4,%xmm8 + addl %esi,%eax + andl %ecx,%edi + vpxor %xmm1,%xmm5,%xmm5 + xorl %edx,%ecx + addl %ebx,%eax + vpxor %xmm3,%xmm8,%xmm8 + shrdl $7,%ebx,%ebx + xorl %edx,%edi + movl %eax,%esi + addl 20(%rsp),%ebp + vpxor %xmm8,%xmm5,%xmm5 + xorl %ecx,%ebx + shldl $5,%eax,%eax + vmovdqa %xmm9,0(%rsp) + addl %edi,%ebp + andl %ebx,%esi + vpsrld $31,%xmm5,%xmm8 + xorl %ecx,%ebx + addl %eax,%ebp + shrdl $7,%eax,%eax + xorl %ecx,%esi + vpslldq $12,%xmm5,%xmm10 + vpaddd %xmm5,%xmm5,%xmm5 + movl %ebp,%edi + addl 24(%rsp),%edx + xorl %ebx,%eax + shldl $5,%ebp,%ebp + vpsrld $30,%xmm10,%xmm9 + vpor %xmm8,%xmm5,%xmm5 + addl %esi,%edx + andl %eax,%edi + xorl %ebx,%eax + addl %ebp,%edx + vpslld $2,%xmm10,%xmm10 + vpxor %xmm9,%xmm5,%xmm5 + shrdl $7,%ebp,%ebp + xorl %ebx,%edi + movl %edx,%esi + addl 28(%rsp),%ecx + vpxor %xmm10,%xmm5,%xmm5 + xorl %eax,%ebp + shldl $5,%edx,%edx + vmovdqa -32(%r14),%xmm11 + addl %edi,%ecx + andl %ebp,%esi + xorl %eax,%ebp + addl %edx,%ecx + shrdl $7,%edx,%edx + xorl %eax,%esi + vpalignr $8,%xmm2,%xmm3,%xmm6 + movl %ecx,%edi + addl 32(%rsp),%ebx + vpaddd %xmm5,%xmm11,%xmm9 + xorl %ebp,%edx + shldl $5,%ecx,%ecx + vpsrldq $4,%xmm5,%xmm8 + addl %esi,%ebx + andl %edx,%edi + vpxor %xmm2,%xmm6,%xmm6 + xorl %ebp,%edx + addl %ecx,%ebx + vpxor %xmm4,%xmm8,%xmm8 + shrdl $7,%ecx,%ecx + xorl %ebp,%edi + movl %ebx,%esi + addl 36(%rsp),%eax + vpxor %xmm8,%xmm6,%xmm6 + xorl %edx,%ecx + shldl $5,%ebx,%ebx + vmovdqa %xmm9,16(%rsp) + addl %edi,%eax + andl %ecx,%esi + vpsrld $31,%xmm6,%xmm8 + xorl %edx,%ecx + addl %ebx,%eax + shrdl $7,%ebx,%ebx + xorl %edx,%esi + vpslldq $12,%xmm6,%xmm10 + vpaddd %xmm6,%xmm6,%xmm6 + movl %eax,%edi + addl 40(%rsp),%ebp + xorl %ecx,%ebx + shldl $5,%eax,%eax + vpsrld $30,%xmm10,%xmm9 + vpor %xmm8,%xmm6,%xmm6 + addl %esi,%ebp + andl %ebx,%edi + xorl %ecx,%ebx + addl %eax,%ebp + vpslld $2,%xmm10,%xmm10 + vpxor %xmm9,%xmm6,%xmm6 + shrdl $7,%eax,%eax + xorl %ecx,%edi + movl %ebp,%esi + addl 44(%rsp),%edx + vpxor %xmm10,%xmm6,%xmm6 + xorl %ebx,%eax + shldl $5,%ebp,%ebp + addl %edi,%edx + andl %eax,%esi + xorl %ebx,%eax + addl %ebp,%edx + shrdl $7,%ebp,%ebp + xorl %ebx,%esi + vpalignr $8,%xmm3,%xmm4,%xmm7 + movl %edx,%edi + addl 48(%rsp),%ecx + vpaddd %xmm6,%xmm11,%xmm9 + xorl %eax,%ebp + shldl $5,%edx,%edx + vpsrldq $4,%xmm6,%xmm8 + addl %esi,%ecx + andl %ebp,%edi + vpxor %xmm3,%xmm7,%xmm7 + xorl %eax,%ebp + addl %edx,%ecx + vpxor %xmm5,%xmm8,%xmm8 + shrdl $7,%edx,%edx + xorl %eax,%edi + movl %ecx,%esi + addl 52(%rsp),%ebx + vpxor %xmm8,%xmm7,%xmm7 + xorl %ebp,%edx + shldl $5,%ecx,%ecx + vmovdqa %xmm9,32(%rsp) + addl %edi,%ebx + andl %edx,%esi + vpsrld $31,%xmm7,%xmm8 + xorl %ebp,%edx + addl %ecx,%ebx + shrdl $7,%ecx,%ecx + xorl %ebp,%esi + vpslldq $12,%xmm7,%xmm10 + vpaddd %xmm7,%xmm7,%xmm7 + movl %ebx,%edi + addl 56(%rsp),%eax + xorl %edx,%ecx + shldl $5,%ebx,%ebx + vpsrld $30,%xmm10,%xmm9 + vpor %xmm8,%xmm7,%xmm7 + addl %esi,%eax + andl %ecx,%edi + xorl %edx,%ecx + addl %ebx,%eax + vpslld $2,%xmm10,%xmm10 + vpxor %xmm9,%xmm7,%xmm7 + shrdl $7,%ebx,%ebx + xorl %edx,%edi + movl %eax,%esi + addl 60(%rsp),%ebp + vpxor %xmm10,%xmm7,%xmm7 + xorl %ecx,%ebx + shldl $5,%eax,%eax + addl %edi,%ebp + andl %ebx,%esi + xorl %ecx,%ebx + addl %eax,%ebp + vpalignr $8,%xmm6,%xmm7,%xmm8 + vpxor %xmm4,%xmm0,%xmm0 + shrdl $7,%eax,%eax + xorl %ecx,%esi + movl %ebp,%edi + addl 0(%rsp),%edx + vpxor %xmm1,%xmm0,%xmm0 + xorl %ebx,%eax + shldl $5,%ebp,%ebp + vpaddd %xmm7,%xmm11,%xmm9 + addl %esi,%edx + andl %eax,%edi + vpxor %xmm8,%xmm0,%xmm0 + xorl %ebx,%eax + addl %ebp,%edx + shrdl $7,%ebp,%ebp + xorl %ebx,%edi + vpsrld $30,%xmm0,%xmm8 + vmovdqa %xmm9,48(%rsp) + movl %edx,%esi + addl 4(%rsp),%ecx + xorl %eax,%ebp + shldl $5,%edx,%edx + vpslld $2,%xmm0,%xmm0 + addl %edi,%ecx + andl %ebp,%esi + xorl %eax,%ebp + addl %edx,%ecx + shrdl $7,%edx,%edx + xorl %eax,%esi + movl %ecx,%edi + addl 8(%rsp),%ebx + vpor %xmm8,%xmm0,%xmm0 + xorl %ebp,%edx + shldl $5,%ecx,%ecx + addl %esi,%ebx + andl %edx,%edi + xorl %ebp,%edx + addl %ecx,%ebx + addl 12(%rsp),%eax + xorl %ebp,%edi + movl %ebx,%esi + shldl $5,%ebx,%ebx + addl %edi,%eax + xorl %edx,%esi + shrdl $7,%ecx,%ecx + addl %ebx,%eax + vpalignr $8,%xmm7,%xmm0,%xmm8 + vpxor %xmm5,%xmm1,%xmm1 + addl 16(%rsp),%ebp + xorl %ecx,%esi + movl %eax,%edi + shldl $5,%eax,%eax + vpxor %xmm2,%xmm1,%xmm1 + addl %esi,%ebp + xorl %ecx,%edi + vpaddd %xmm0,%xmm11,%xmm9 + shrdl $7,%ebx,%ebx + addl %eax,%ebp + vpxor %xmm8,%xmm1,%xmm1 + addl 20(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + shldl $5,%ebp,%ebp + vpsrld $30,%xmm1,%xmm8 + vmovdqa %xmm9,0(%rsp) + addl %edi,%edx + xorl %ebx,%esi + shrdl $7,%eax,%eax + addl %ebp,%edx + vpslld $2,%xmm1,%xmm1 + addl 24(%rsp),%ecx + xorl %eax,%esi + movl %edx,%edi + shldl $5,%edx,%edx + addl %esi,%ecx + xorl %eax,%edi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + vpor %xmm8,%xmm1,%xmm1 + addl 28(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + shldl $5,%ecx,%ecx + addl %edi,%ebx + xorl %ebp,%esi + shrdl $7,%edx,%edx + addl %ecx,%ebx + vpalignr $8,%xmm0,%xmm1,%xmm8 + vpxor %xmm6,%xmm2,%xmm2 + addl 32(%rsp),%eax + xorl %edx,%esi + movl %ebx,%edi + shldl $5,%ebx,%ebx + vpxor %xmm3,%xmm2,%xmm2 + addl %esi,%eax + xorl %edx,%edi + vpaddd %xmm1,%xmm11,%xmm9 + vmovdqa 0(%r14),%xmm11 + shrdl $7,%ecx,%ecx + addl %ebx,%eax + vpxor %xmm8,%xmm2,%xmm2 + addl 36(%rsp),%ebp + xorl %ecx,%edi + movl %eax,%esi + shldl $5,%eax,%eax + vpsrld $30,%xmm2,%xmm8 + vmovdqa %xmm9,16(%rsp) + addl %edi,%ebp + xorl %ecx,%esi + shrdl $7,%ebx,%ebx + addl %eax,%ebp + vpslld $2,%xmm2,%xmm2 + addl 40(%rsp),%edx + xorl %ebx,%esi + movl %ebp,%edi + shldl $5,%ebp,%ebp + addl %esi,%edx + xorl %ebx,%edi + shrdl $7,%eax,%eax + addl %ebp,%edx + vpor %xmm8,%xmm2,%xmm2 + addl 44(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + shldl $5,%edx,%edx + addl %edi,%ecx + xorl %eax,%esi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + vpalignr $8,%xmm1,%xmm2,%xmm8 + vpxor %xmm7,%xmm3,%xmm3 + addl 48(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi + shldl $5,%ecx,%ecx + vpxor %xmm4,%xmm3,%xmm3 + addl %esi,%ebx + xorl %ebp,%edi + vpaddd %xmm2,%xmm11,%xmm9 + shrdl $7,%edx,%edx + addl %ecx,%ebx + vpxor %xmm8,%xmm3,%xmm3 + addl 52(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + shldl $5,%ebx,%ebx + vpsrld $30,%xmm3,%xmm8 + vmovdqa %xmm9,32(%rsp) + addl %edi,%eax + xorl %edx,%esi + shrdl $7,%ecx,%ecx + addl %ebx,%eax + vpslld $2,%xmm3,%xmm3 + addl 56(%rsp),%ebp + xorl %ecx,%esi + movl %eax,%edi + shldl $5,%eax,%eax + addl %esi,%ebp + xorl %ecx,%edi + shrdl $7,%ebx,%ebx + addl %eax,%ebp + vpor %xmm8,%xmm3,%xmm3 + addl 60(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + shldl $5,%ebp,%ebp + addl %edi,%edx + xorl %ebx,%esi + shrdl $7,%eax,%eax + addl %ebp,%edx + vpalignr $8,%xmm2,%xmm3,%xmm8 + vpxor %xmm0,%xmm4,%xmm4 + addl 0(%rsp),%ecx + xorl %eax,%esi + movl %edx,%edi + shldl $5,%edx,%edx + vpxor %xmm5,%xmm4,%xmm4 + addl %esi,%ecx + xorl %eax,%edi + vpaddd %xmm3,%xmm11,%xmm9 + shrdl $7,%ebp,%ebp + addl %edx,%ecx + vpxor %xmm8,%xmm4,%xmm4 + addl 4(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + shldl $5,%ecx,%ecx + vpsrld $30,%xmm4,%xmm8 + vmovdqa %xmm9,48(%rsp) + addl %edi,%ebx + xorl %ebp,%esi + shrdl $7,%edx,%edx + addl %ecx,%ebx + vpslld $2,%xmm4,%xmm4 + addl 8(%rsp),%eax + xorl %edx,%esi + movl %ebx,%edi + shldl $5,%ebx,%ebx + addl %esi,%eax + xorl %edx,%edi + shrdl $7,%ecx,%ecx + addl %ebx,%eax + vpor %xmm8,%xmm4,%xmm4 + addl 12(%rsp),%ebp + xorl %ecx,%edi + movl %eax,%esi + shldl $5,%eax,%eax + addl %edi,%ebp + xorl %ecx,%esi + shrdl $7,%ebx,%ebx + addl %eax,%ebp + vpalignr $8,%xmm3,%xmm4,%xmm8 + vpxor %xmm1,%xmm5,%xmm5 + addl 16(%rsp),%edx + xorl %ebx,%esi + movl %ebp,%edi + shldl $5,%ebp,%ebp + vpxor %xmm6,%xmm5,%xmm5 + addl %esi,%edx + xorl %ebx,%edi + vpaddd %xmm4,%xmm11,%xmm9 + shrdl $7,%eax,%eax + addl %ebp,%edx + vpxor %xmm8,%xmm5,%xmm5 + addl 20(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + shldl $5,%edx,%edx + vpsrld $30,%xmm5,%xmm8 + vmovdqa %xmm9,0(%rsp) + addl %edi,%ecx + xorl %eax,%esi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + vpslld $2,%xmm5,%xmm5 + addl 24(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi + shldl $5,%ecx,%ecx + addl %esi,%ebx + xorl %ebp,%edi + shrdl $7,%edx,%edx + addl %ecx,%ebx + vpor %xmm8,%xmm5,%xmm5 + addl 28(%rsp),%eax + shrdl $7,%ecx,%ecx + movl %ebx,%esi + xorl %edx,%edi + shldl $5,%ebx,%ebx + addl %edi,%eax + xorl %ecx,%esi + xorl %edx,%ecx + addl %ebx,%eax + vpalignr $8,%xmm4,%xmm5,%xmm8 + vpxor %xmm2,%xmm6,%xmm6 + addl 32(%rsp),%ebp + andl %ecx,%esi + xorl %edx,%ecx + shrdl $7,%ebx,%ebx + vpxor %xmm7,%xmm6,%xmm6 + movl %eax,%edi + xorl %ecx,%esi + vpaddd %xmm5,%xmm11,%xmm9 + shldl $5,%eax,%eax + addl %esi,%ebp + vpxor %xmm8,%xmm6,%xmm6 + xorl %ebx,%edi + xorl %ecx,%ebx + addl %eax,%ebp + addl 36(%rsp),%edx + vpsrld $30,%xmm6,%xmm8 + vmovdqa %xmm9,16(%rsp) + andl %ebx,%edi + xorl %ecx,%ebx + shrdl $7,%eax,%eax + movl %ebp,%esi + vpslld $2,%xmm6,%xmm6 + xorl %ebx,%edi + shldl $5,%ebp,%ebp + addl %edi,%edx + xorl %eax,%esi + xorl %ebx,%eax + addl %ebp,%edx + addl 40(%rsp),%ecx + andl %eax,%esi + vpor %xmm8,%xmm6,%xmm6 + xorl %ebx,%eax + shrdl $7,%ebp,%ebp + movl %edx,%edi + xorl %eax,%esi + shldl $5,%edx,%edx + addl %esi,%ecx + xorl %ebp,%edi + xorl %eax,%ebp + addl %edx,%ecx + addl 44(%rsp),%ebx + andl %ebp,%edi + xorl %eax,%ebp + shrdl $7,%edx,%edx + movl %ecx,%esi + xorl %ebp,%edi + shldl $5,%ecx,%ecx + addl %edi,%ebx + xorl %edx,%esi + xorl %ebp,%edx + addl %ecx,%ebx + vpalignr $8,%xmm5,%xmm6,%xmm8 + vpxor %xmm3,%xmm7,%xmm7 + addl 48(%rsp),%eax + andl %edx,%esi + xorl %ebp,%edx + shrdl $7,%ecx,%ecx + vpxor %xmm0,%xmm7,%xmm7 + movl %ebx,%edi + xorl %edx,%esi + vpaddd %xmm6,%xmm11,%xmm9 + vmovdqa 32(%r14),%xmm11 + shldl $5,%ebx,%ebx + addl %esi,%eax + vpxor %xmm8,%xmm7,%xmm7 + xorl %ecx,%edi + xorl %edx,%ecx + addl %ebx,%eax + addl 52(%rsp),%ebp + vpsrld $30,%xmm7,%xmm8 + vmovdqa %xmm9,32(%rsp) + andl %ecx,%edi + xorl %edx,%ecx + shrdl $7,%ebx,%ebx + movl %eax,%esi + vpslld $2,%xmm7,%xmm7 + xorl %ecx,%edi + shldl $5,%eax,%eax + addl %edi,%ebp + xorl %ebx,%esi + xorl %ecx,%ebx + addl %eax,%ebp + addl 56(%rsp),%edx + andl %ebx,%esi + vpor %xmm8,%xmm7,%xmm7 + xorl %ecx,%ebx + shrdl $7,%eax,%eax + movl %ebp,%edi + xorl %ebx,%esi + shldl $5,%ebp,%ebp + addl %esi,%edx + xorl %eax,%edi + xorl %ebx,%eax + addl %ebp,%edx + addl 60(%rsp),%ecx + andl %eax,%edi + xorl %ebx,%eax + shrdl $7,%ebp,%ebp + movl %edx,%esi + xorl %eax,%edi + shldl $5,%edx,%edx + addl %edi,%ecx + xorl %ebp,%esi + xorl %eax,%ebp + addl %edx,%ecx + vpalignr $8,%xmm6,%xmm7,%xmm8 + vpxor %xmm4,%xmm0,%xmm0 + addl 0(%rsp),%ebx + andl %ebp,%esi + xorl %eax,%ebp + shrdl $7,%edx,%edx + vpxor %xmm1,%xmm0,%xmm0 + movl %ecx,%edi + xorl %ebp,%esi + vpaddd %xmm7,%xmm11,%xmm9 + shldl $5,%ecx,%ecx + addl %esi,%ebx + vpxor %xmm8,%xmm0,%xmm0 + xorl %edx,%edi + xorl %ebp,%edx + addl %ecx,%ebx + addl 4(%rsp),%eax + vpsrld $30,%xmm0,%xmm8 + vmovdqa %xmm9,48(%rsp) + andl %edx,%edi + xorl %ebp,%edx + shrdl $7,%ecx,%ecx + movl %ebx,%esi + vpslld $2,%xmm0,%xmm0 + xorl %edx,%edi + shldl $5,%ebx,%ebx + addl %edi,%eax + xorl %ecx,%esi + xorl %edx,%ecx + addl %ebx,%eax + addl 8(%rsp),%ebp + andl %ecx,%esi + vpor %xmm8,%xmm0,%xmm0 + xorl %edx,%ecx + shrdl $7,%ebx,%ebx + movl %eax,%edi + xorl %ecx,%esi + shldl $5,%eax,%eax + addl %esi,%ebp + xorl %ebx,%edi + xorl %ecx,%ebx + addl %eax,%ebp + addl 12(%rsp),%edx + andl %ebx,%edi + xorl %ecx,%ebx + shrdl $7,%eax,%eax + movl %ebp,%esi + xorl %ebx,%edi + shldl $5,%ebp,%ebp + addl %edi,%edx + xorl %eax,%esi + xorl %ebx,%eax + addl %ebp,%edx + vpalignr $8,%xmm7,%xmm0,%xmm8 + vpxor %xmm5,%xmm1,%xmm1 + addl 16(%rsp),%ecx + andl %eax,%esi + xorl %ebx,%eax + shrdl $7,%ebp,%ebp + vpxor %xmm2,%xmm1,%xmm1 + movl %edx,%edi + xorl %eax,%esi + vpaddd %xmm0,%xmm11,%xmm9 + shldl $5,%edx,%edx + addl %esi,%ecx + vpxor %xmm8,%xmm1,%xmm1 + xorl %ebp,%edi + xorl %eax,%ebp + addl %edx,%ecx + addl 20(%rsp),%ebx + vpsrld $30,%xmm1,%xmm8 + vmovdqa %xmm9,0(%rsp) + andl %ebp,%edi + xorl %eax,%ebp + shrdl $7,%edx,%edx + movl %ecx,%esi + vpslld $2,%xmm1,%xmm1 + xorl %ebp,%edi + shldl $5,%ecx,%ecx + addl %edi,%ebx + xorl %edx,%esi + xorl %ebp,%edx + addl %ecx,%ebx + addl 24(%rsp),%eax + andl %edx,%esi + vpor %xmm8,%xmm1,%xmm1 + xorl %ebp,%edx + shrdl $7,%ecx,%ecx + movl %ebx,%edi + xorl %edx,%esi + shldl $5,%ebx,%ebx + addl %esi,%eax + xorl %ecx,%edi + xorl %edx,%ecx + addl %ebx,%eax + addl 28(%rsp),%ebp + andl %ecx,%edi + xorl %edx,%ecx + shrdl $7,%ebx,%ebx + movl %eax,%esi + xorl %ecx,%edi + shldl $5,%eax,%eax + addl %edi,%ebp + xorl %ebx,%esi + xorl %ecx,%ebx + addl %eax,%ebp + vpalignr $8,%xmm0,%xmm1,%xmm8 + vpxor %xmm6,%xmm2,%xmm2 + addl 32(%rsp),%edx + andl %ebx,%esi + xorl %ecx,%ebx + shrdl $7,%eax,%eax + vpxor %xmm3,%xmm2,%xmm2 + movl %ebp,%edi + xorl %ebx,%esi + vpaddd %xmm1,%xmm11,%xmm9 + shldl $5,%ebp,%ebp + addl %esi,%edx + vpxor %xmm8,%xmm2,%xmm2 + xorl %eax,%edi + xorl %ebx,%eax + addl %ebp,%edx + addl 36(%rsp),%ecx + vpsrld $30,%xmm2,%xmm8 + vmovdqa %xmm9,16(%rsp) + andl %eax,%edi + xorl %ebx,%eax + shrdl $7,%ebp,%ebp + movl %edx,%esi + vpslld $2,%xmm2,%xmm2 + xorl %eax,%edi + shldl $5,%edx,%edx + addl %edi,%ecx + xorl %ebp,%esi + xorl %eax,%ebp + addl %edx,%ecx + addl 40(%rsp),%ebx + andl %ebp,%esi + vpor %xmm8,%xmm2,%xmm2 + xorl %eax,%ebp + shrdl $7,%edx,%edx + movl %ecx,%edi + xorl %ebp,%esi + shldl $5,%ecx,%ecx + addl %esi,%ebx + xorl %edx,%edi + xorl %ebp,%edx + addl %ecx,%ebx + addl 44(%rsp),%eax + andl %edx,%edi + xorl %ebp,%edx + shrdl $7,%ecx,%ecx + movl %ebx,%esi + xorl %edx,%edi + shldl $5,%ebx,%ebx + addl %edi,%eax + xorl %edx,%esi + addl %ebx,%eax + vpalignr $8,%xmm1,%xmm2,%xmm8 + vpxor %xmm7,%xmm3,%xmm3 + addl 48(%rsp),%ebp + xorl %ecx,%esi + movl %eax,%edi + shldl $5,%eax,%eax + vpxor %xmm4,%xmm3,%xmm3 + addl %esi,%ebp + xorl %ecx,%edi + vpaddd %xmm2,%xmm11,%xmm9 + shrdl $7,%ebx,%ebx + addl %eax,%ebp + vpxor %xmm8,%xmm3,%xmm3 + addl 52(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + shldl $5,%ebp,%ebp + vpsrld $30,%xmm3,%xmm8 + vmovdqa %xmm9,32(%rsp) + addl %edi,%edx + xorl %ebx,%esi + shrdl $7,%eax,%eax + addl %ebp,%edx + vpslld $2,%xmm3,%xmm3 + addl 56(%rsp),%ecx + xorl %eax,%esi + movl %edx,%edi + shldl $5,%edx,%edx + addl %esi,%ecx + xorl %eax,%edi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + vpor %xmm8,%xmm3,%xmm3 + addl 60(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + shldl $5,%ecx,%ecx + addl %edi,%ebx + xorl %ebp,%esi + shrdl $7,%edx,%edx + addl %ecx,%ebx + addl 0(%rsp),%eax + vpaddd %xmm3,%xmm11,%xmm9 + xorl %edx,%esi + movl %ebx,%edi + shldl $5,%ebx,%ebx + addl %esi,%eax + vmovdqa %xmm9,48(%rsp) + xorl %edx,%edi + shrdl $7,%ecx,%ecx + addl %ebx,%eax + addl 4(%rsp),%ebp + xorl %ecx,%edi + movl %eax,%esi + shldl $5,%eax,%eax + addl %edi,%ebp + xorl %ecx,%esi + shrdl $7,%ebx,%ebx + addl %eax,%ebp + addl 8(%rsp),%edx + xorl %ebx,%esi + movl %ebp,%edi + shldl $5,%ebp,%ebp + addl %esi,%edx + xorl %ebx,%edi + shrdl $7,%eax,%eax + addl %ebp,%edx + addl 12(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + shldl $5,%edx,%edx + addl %edi,%ecx + xorl %eax,%esi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + cmpq %r10,%r9 + je .Ldone_avx + vmovdqa 64(%r14),%xmm6 + vmovdqa -64(%r14),%xmm11 + vmovdqu 0(%r9),%xmm0 + vmovdqu 16(%r9),%xmm1 + vmovdqu 32(%r9),%xmm2 + vmovdqu 48(%r9),%xmm3 + vpshufb %xmm6,%xmm0,%xmm0 + addq $64,%r9 + addl 16(%rsp),%ebx + xorl %ebp,%esi + vpshufb %xmm6,%xmm1,%xmm1 + movl %ecx,%edi + shldl $5,%ecx,%ecx + vpaddd %xmm11,%xmm0,%xmm4 + addl %esi,%ebx + xorl %ebp,%edi + shrdl $7,%edx,%edx + addl %ecx,%ebx + vmovdqa %xmm4,0(%rsp) + addl 20(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + shldl $5,%ebx,%ebx + addl %edi,%eax + xorl %edx,%esi + shrdl $7,%ecx,%ecx + addl %ebx,%eax + addl 24(%rsp),%ebp + xorl %ecx,%esi + movl %eax,%edi + shldl $5,%eax,%eax + addl %esi,%ebp + xorl %ecx,%edi + shrdl $7,%ebx,%ebx + addl %eax,%ebp + addl 28(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + shldl $5,%ebp,%ebp + addl %edi,%edx + xorl %ebx,%esi + shrdl $7,%eax,%eax + addl %ebp,%edx + addl 32(%rsp),%ecx + xorl %eax,%esi + vpshufb %xmm6,%xmm2,%xmm2 + movl %edx,%edi + shldl $5,%edx,%edx + vpaddd %xmm11,%xmm1,%xmm5 + addl %esi,%ecx + xorl %eax,%edi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + vmovdqa %xmm5,16(%rsp) + addl 36(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + shldl $5,%ecx,%ecx + addl %edi,%ebx + xorl %ebp,%esi + shrdl $7,%edx,%edx + addl %ecx,%ebx + addl 40(%rsp),%eax + xorl %edx,%esi + movl %ebx,%edi + shldl $5,%ebx,%ebx + addl %esi,%eax + xorl %edx,%edi + shrdl $7,%ecx,%ecx + addl %ebx,%eax + addl 44(%rsp),%ebp + xorl %ecx,%edi + movl %eax,%esi + shldl $5,%eax,%eax + addl %edi,%ebp + xorl %ecx,%esi + shrdl $7,%ebx,%ebx + addl %eax,%ebp + addl 48(%rsp),%edx + xorl %ebx,%esi + vpshufb %xmm6,%xmm3,%xmm3 + movl %ebp,%edi + shldl $5,%ebp,%ebp + vpaddd %xmm11,%xmm2,%xmm6 + addl %esi,%edx + xorl %ebx,%edi + shrdl $7,%eax,%eax + addl %ebp,%edx + vmovdqa %xmm6,32(%rsp) + addl 52(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + shldl $5,%edx,%edx + addl %edi,%ecx + xorl %eax,%esi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + addl 56(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi + shldl $5,%ecx,%ecx + addl %esi,%ebx + xorl %ebp,%edi + shrdl $7,%edx,%edx + addl %ecx,%ebx + addl 60(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + shldl $5,%ebx,%ebx + addl %edi,%eax + shrdl $7,%ecx,%ecx + addl %ebx,%eax + addl 0(%r8),%eax + addl 4(%r8),%esi + addl 8(%r8),%ecx + addl 12(%r8),%edx + movl %eax,0(%r8) + addl 16(%r8),%ebp + movl %esi,4(%r8) + movl %esi,%ebx + movl %ecx,8(%r8) + movl %ecx,%edi + movl %edx,12(%r8) + xorl %edx,%edi + movl %ebp,16(%r8) + andl %edi,%esi + jmp .Loop_avx + +.align 16 +.Ldone_avx: + addl 16(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi + shldl $5,%ecx,%ecx + addl %esi,%ebx + xorl %ebp,%edi + shrdl $7,%edx,%edx + addl %ecx,%ebx + addl 20(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + shldl $5,%ebx,%ebx + addl %edi,%eax + xorl %edx,%esi + shrdl $7,%ecx,%ecx + addl %ebx,%eax + addl 24(%rsp),%ebp + xorl %ecx,%esi + movl %eax,%edi + shldl $5,%eax,%eax + addl %esi,%ebp + xorl %ecx,%edi + shrdl $7,%ebx,%ebx + addl %eax,%ebp + addl 28(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + shldl $5,%ebp,%ebp + addl %edi,%edx + xorl %ebx,%esi + shrdl $7,%eax,%eax + addl %ebp,%edx + addl 32(%rsp),%ecx + xorl %eax,%esi + movl %edx,%edi + shldl $5,%edx,%edx + addl %esi,%ecx + xorl %eax,%edi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + addl 36(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + shldl $5,%ecx,%ecx + addl %edi,%ebx + xorl %ebp,%esi + shrdl $7,%edx,%edx + addl %ecx,%ebx + addl 40(%rsp),%eax + xorl %edx,%esi + movl %ebx,%edi + shldl $5,%ebx,%ebx + addl %esi,%eax + xorl %edx,%edi + shrdl $7,%ecx,%ecx + addl %ebx,%eax + addl 44(%rsp),%ebp + xorl %ecx,%edi + movl %eax,%esi + shldl $5,%eax,%eax + addl %edi,%ebp + xorl %ecx,%esi + shrdl $7,%ebx,%ebx + addl %eax,%ebp + addl 48(%rsp),%edx + xorl %ebx,%esi + movl %ebp,%edi + shldl $5,%ebp,%ebp + addl %esi,%edx + xorl %ebx,%edi + shrdl $7,%eax,%eax + addl %ebp,%edx + addl 52(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + shldl $5,%edx,%edx + addl %edi,%ecx + xorl %eax,%esi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + addl 56(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi + shldl $5,%ecx,%ecx + addl %esi,%ebx + xorl %ebp,%edi + shrdl $7,%edx,%edx + addl %ecx,%ebx + addl 60(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + shldl $5,%ebx,%ebx + addl %edi,%eax + shrdl $7,%ecx,%ecx + addl %ebx,%eax + vzeroupper + + addl 0(%r8),%eax + addl 4(%r8),%esi + addl 8(%r8),%ecx + movl %eax,0(%r8) + addl 12(%r8),%edx + movl %esi,4(%r8) + addl 16(%r8),%ebp + movl %ecx,8(%r8) + movl %edx,12(%r8) + movl %ebp,16(%r8) + movq -40(%r11),%r14 +.cfi_restore %r14 + movq -32(%r11),%r13 +.cfi_restore %r13 + movq -24(%r11),%r12 +.cfi_restore %r12 + movq -16(%r11),%rbp +.cfi_restore %rbp + movq -8(%r11),%rbx +.cfi_restore %rbx + leaq (%r11),%rsp +.cfi_def_cfa_register %rsp +.Lepilogue_avx: + .byte 0xf3,0xc3 +.cfi_endproc +.size sha1_block_data_order_avx,.-sha1_block_data_order_avx +.type sha1_block_data_order_avx2,@function +.align 16 +sha1_block_data_order_avx2: +_avx2_shortcut: +.cfi_startproc + movq %rsp,%r11 +.cfi_def_cfa_register %r11 + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + vzeroupper + movq %rdi,%r8 + movq %rsi,%r9 + movq %rdx,%r10 + + leaq -640(%rsp),%rsp + shlq $6,%r10 + leaq 64(%r9),%r13 + andq $-128,%rsp + addq %r9,%r10 + leaq K_XX_XX+64(%rip),%r14 + + movl 0(%r8),%eax + cmpq %r10,%r13 + cmovaeq %r9,%r13 + movl 4(%r8),%ebp + movl 8(%r8),%ecx + movl 12(%r8),%edx + movl 16(%r8),%esi + vmovdqu 64(%r14),%ymm6 + + vmovdqu (%r9),%xmm0 + vmovdqu 16(%r9),%xmm1 + vmovdqu 32(%r9),%xmm2 + vmovdqu 48(%r9),%xmm3 + leaq 64(%r9),%r9 + vinserti128 $1,(%r13),%ymm0,%ymm0 + vinserti128 $1,16(%r13),%ymm1,%ymm1 + vpshufb %ymm6,%ymm0,%ymm0 + vinserti128 $1,32(%r13),%ymm2,%ymm2 + vpshufb %ymm6,%ymm1,%ymm1 + vinserti128 $1,48(%r13),%ymm3,%ymm3 + vpshufb %ymm6,%ymm2,%ymm2 + vmovdqu -64(%r14),%ymm11 + vpshufb %ymm6,%ymm3,%ymm3 + + vpaddd %ymm11,%ymm0,%ymm4 + vpaddd %ymm11,%ymm1,%ymm5 + vmovdqu %ymm4,0(%rsp) + vpaddd %ymm11,%ymm2,%ymm6 + vmovdqu %ymm5,32(%rsp) + vpaddd %ymm11,%ymm3,%ymm7 + vmovdqu %ymm6,64(%rsp) + vmovdqu %ymm7,96(%rsp) + vpalignr $8,%ymm0,%ymm1,%ymm4 + vpsrldq $4,%ymm3,%ymm8 + vpxor %ymm0,%ymm4,%ymm4 + vpxor %ymm2,%ymm8,%ymm8 + vpxor %ymm8,%ymm4,%ymm4 + vpsrld $31,%ymm4,%ymm8 + vpslldq $12,%ymm4,%ymm10 + vpaddd %ymm4,%ymm4,%ymm4 + vpsrld $30,%ymm10,%ymm9 + vpor %ymm8,%ymm4,%ymm4 + vpslld $2,%ymm10,%ymm10 + vpxor %ymm9,%ymm4,%ymm4 + vpxor %ymm10,%ymm4,%ymm4 + vpaddd %ymm11,%ymm4,%ymm9 + vmovdqu %ymm9,128(%rsp) + vpalignr $8,%ymm1,%ymm2,%ymm5 + vpsrldq $4,%ymm4,%ymm8 + vpxor %ymm1,%ymm5,%ymm5 + vpxor %ymm3,%ymm8,%ymm8 + vpxor %ymm8,%ymm5,%ymm5 + vpsrld $31,%ymm5,%ymm8 + vmovdqu -32(%r14),%ymm11 + vpslldq $12,%ymm5,%ymm10 + vpaddd %ymm5,%ymm5,%ymm5 + vpsrld $30,%ymm10,%ymm9 + vpor %ymm8,%ymm5,%ymm5 + vpslld $2,%ymm10,%ymm10 + vpxor %ymm9,%ymm5,%ymm5 + vpxor %ymm10,%ymm5,%ymm5 + vpaddd %ymm11,%ymm5,%ymm9 + vmovdqu %ymm9,160(%rsp) + vpalignr $8,%ymm2,%ymm3,%ymm6 + vpsrldq $4,%ymm5,%ymm8 + vpxor %ymm2,%ymm6,%ymm6 + vpxor %ymm4,%ymm8,%ymm8 + vpxor %ymm8,%ymm6,%ymm6 + vpsrld $31,%ymm6,%ymm8 + vpslldq $12,%ymm6,%ymm10 + vpaddd %ymm6,%ymm6,%ymm6 + vpsrld $30,%ymm10,%ymm9 + vpor %ymm8,%ymm6,%ymm6 + vpslld $2,%ymm10,%ymm10 + vpxor %ymm9,%ymm6,%ymm6 + vpxor %ymm10,%ymm6,%ymm6 + vpaddd %ymm11,%ymm6,%ymm9 + vmovdqu %ymm9,192(%rsp) + vpalignr $8,%ymm3,%ymm4,%ymm7 + vpsrldq $4,%ymm6,%ymm8 + vpxor %ymm3,%ymm7,%ymm7 + vpxor %ymm5,%ymm8,%ymm8 + vpxor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm7,%ymm8 + vpslldq $12,%ymm7,%ymm10 + vpaddd %ymm7,%ymm7,%ymm7 + vpsrld $30,%ymm10,%ymm9 + vpor %ymm8,%ymm7,%ymm7 + vpslld $2,%ymm10,%ymm10 + vpxor %ymm9,%ymm7,%ymm7 + vpxor %ymm10,%ymm7,%ymm7 + vpaddd %ymm11,%ymm7,%ymm9 + vmovdqu %ymm9,224(%rsp) + leaq 128(%rsp),%r13 + jmp .Loop_avx2 +.align 32 +.Loop_avx2: + rorxl $2,%ebp,%ebx + andnl %edx,%ebp,%edi + andl %ecx,%ebp + xorl %edi,%ebp + jmp .Lalign32_1 +.align 32 +.Lalign32_1: + vpalignr $8,%ymm6,%ymm7,%ymm8 + vpxor %ymm4,%ymm0,%ymm0 + addl -128(%r13),%esi + andnl %ecx,%eax,%edi + vpxor %ymm1,%ymm0,%ymm0 + addl %ebp,%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + vpxor %ymm8,%ymm0,%ymm0 + andl %ebx,%eax + addl %r12d,%esi + xorl %edi,%eax + vpsrld $30,%ymm0,%ymm8 + vpslld $2,%ymm0,%ymm0 + addl -124(%r13),%edx + andnl %ebx,%esi,%edi + addl %eax,%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + andl %ebp,%esi + vpor %ymm8,%ymm0,%ymm0 + addl %r12d,%edx + xorl %edi,%esi + addl -120(%r13),%ecx + andnl %ebp,%edx,%edi + vpaddd %ymm11,%ymm0,%ymm9 + addl %esi,%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + andl %eax,%edx + vmovdqu %ymm9,256(%rsp) + addl %r12d,%ecx + xorl %edi,%edx + addl -116(%r13),%ebx + andnl %eax,%ecx,%edi + addl %edx,%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + andl %esi,%ecx + addl %r12d,%ebx + xorl %edi,%ecx + addl -96(%r13),%ebp + andnl %esi,%ebx,%edi + addl %ecx,%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + andl %edx,%ebx + addl %r12d,%ebp + xorl %edi,%ebx + vpalignr $8,%ymm7,%ymm0,%ymm8 + vpxor %ymm5,%ymm1,%ymm1 + addl -92(%r13),%eax + andnl %edx,%ebp,%edi + vpxor %ymm2,%ymm1,%ymm1 + addl %ebx,%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + vpxor %ymm8,%ymm1,%ymm1 + andl %ecx,%ebp + addl %r12d,%eax + xorl %edi,%ebp + vpsrld $30,%ymm1,%ymm8 + vpslld $2,%ymm1,%ymm1 + addl -88(%r13),%esi + andnl %ecx,%eax,%edi + addl %ebp,%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + andl %ebx,%eax + vpor %ymm8,%ymm1,%ymm1 + addl %r12d,%esi + xorl %edi,%eax + addl -84(%r13),%edx + andnl %ebx,%esi,%edi + vpaddd %ymm11,%ymm1,%ymm9 + addl %eax,%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + andl %ebp,%esi + vmovdqu %ymm9,288(%rsp) + addl %r12d,%edx + xorl %edi,%esi + addl -64(%r13),%ecx + andnl %ebp,%edx,%edi + addl %esi,%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + andl %eax,%edx + addl %r12d,%ecx + xorl %edi,%edx + addl -60(%r13),%ebx + andnl %eax,%ecx,%edi + addl %edx,%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + andl %esi,%ecx + addl %r12d,%ebx + xorl %edi,%ecx + vpalignr $8,%ymm0,%ymm1,%ymm8 + vpxor %ymm6,%ymm2,%ymm2 + addl -56(%r13),%ebp + andnl %esi,%ebx,%edi + vpxor %ymm3,%ymm2,%ymm2 + vmovdqu 0(%r14),%ymm11 + addl %ecx,%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + vpxor %ymm8,%ymm2,%ymm2 + andl %edx,%ebx + addl %r12d,%ebp + xorl %edi,%ebx + vpsrld $30,%ymm2,%ymm8 + vpslld $2,%ymm2,%ymm2 + addl -52(%r13),%eax + andnl %edx,%ebp,%edi + addl %ebx,%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + andl %ecx,%ebp + vpor %ymm8,%ymm2,%ymm2 + addl %r12d,%eax + xorl %edi,%ebp + addl -32(%r13),%esi + andnl %ecx,%eax,%edi + vpaddd %ymm11,%ymm2,%ymm9 + addl %ebp,%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + andl %ebx,%eax + vmovdqu %ymm9,320(%rsp) + addl %r12d,%esi + xorl %edi,%eax + addl -28(%r13),%edx + andnl %ebx,%esi,%edi + addl %eax,%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + andl %ebp,%esi + addl %r12d,%edx + xorl %edi,%esi + addl -24(%r13),%ecx + andnl %ebp,%edx,%edi + addl %esi,%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + andl %eax,%edx + addl %r12d,%ecx + xorl %edi,%edx + vpalignr $8,%ymm1,%ymm2,%ymm8 + vpxor %ymm7,%ymm3,%ymm3 + addl -20(%r13),%ebx + andnl %eax,%ecx,%edi + vpxor %ymm4,%ymm3,%ymm3 + addl %edx,%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + vpxor %ymm8,%ymm3,%ymm3 + andl %esi,%ecx + addl %r12d,%ebx + xorl %edi,%ecx + vpsrld $30,%ymm3,%ymm8 + vpslld $2,%ymm3,%ymm3 + addl 0(%r13),%ebp + andnl %esi,%ebx,%edi + addl %ecx,%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + andl %edx,%ebx + vpor %ymm8,%ymm3,%ymm3 + addl %r12d,%ebp + xorl %edi,%ebx + addl 4(%r13),%eax + andnl %edx,%ebp,%edi + vpaddd %ymm11,%ymm3,%ymm9 + addl %ebx,%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + andl %ecx,%ebp + vmovdqu %ymm9,352(%rsp) + addl %r12d,%eax + xorl %edi,%ebp + addl 8(%r13),%esi + andnl %ecx,%eax,%edi + addl %ebp,%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + andl %ebx,%eax + addl %r12d,%esi + xorl %edi,%eax + addl 12(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + vpalignr $8,%ymm2,%ymm3,%ymm8 + vpxor %ymm0,%ymm4,%ymm4 + addl 32(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + vpxor %ymm5,%ymm4,%ymm4 + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + vpxor %ymm8,%ymm4,%ymm4 + addl %r12d,%ecx + xorl %ebp,%edx + addl 36(%r13),%ebx + vpsrld $30,%ymm4,%ymm8 + vpslld $2,%ymm4,%ymm4 + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + vpor %ymm8,%ymm4,%ymm4 + addl 40(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + vpaddd %ymm11,%ymm4,%ymm9 + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + addl 44(%r13),%eax + vmovdqu %ymm9,384(%rsp) + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + addl 64(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + vpalignr $8,%ymm3,%ymm4,%ymm8 + vpxor %ymm1,%ymm5,%ymm5 + addl 68(%r13),%edx + leal (%rdx,%rax,1),%edx + vpxor %ymm6,%ymm5,%ymm5 + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + vpxor %ymm8,%ymm5,%ymm5 + addl %r12d,%edx + xorl %ebx,%esi + addl 72(%r13),%ecx + vpsrld $30,%ymm5,%ymm8 + vpslld $2,%ymm5,%ymm5 + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + vpor %ymm8,%ymm5,%ymm5 + addl 76(%r13),%ebx + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + vpaddd %ymm11,%ymm5,%ymm9 + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl 96(%r13),%ebp + vmovdqu %ymm9,416(%rsp) + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + addl 100(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + vpalignr $8,%ymm4,%ymm5,%ymm8 + vpxor %ymm2,%ymm6,%ymm6 + addl 104(%r13),%esi + leal (%rsi,%rbp,1),%esi + vpxor %ymm7,%ymm6,%ymm6 + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + vpxor %ymm8,%ymm6,%ymm6 + addl %r12d,%esi + xorl %ecx,%eax + addl 108(%r13),%edx + leaq 256(%r13),%r13 + vpsrld $30,%ymm6,%ymm8 + vpslld $2,%ymm6,%ymm6 + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + vpor %ymm8,%ymm6,%ymm6 + addl -128(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + vpaddd %ymm11,%ymm6,%ymm9 + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl -124(%r13),%ebx + vmovdqu %ymm9,448(%rsp) + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl -120(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + vpalignr $8,%ymm5,%ymm6,%ymm8 + vpxor %ymm3,%ymm7,%ymm7 + addl -116(%r13),%eax + leal (%rax,%rbx,1),%eax + vpxor %ymm0,%ymm7,%ymm7 + vmovdqu 32(%r14),%ymm11 + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + vpxor %ymm8,%ymm7,%ymm7 + addl %r12d,%eax + xorl %edx,%ebp + addl -96(%r13),%esi + vpsrld $30,%ymm7,%ymm8 + vpslld $2,%ymm7,%ymm7 + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + vpor %ymm8,%ymm7,%ymm7 + addl -92(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + vpaddd %ymm11,%ymm7,%ymm9 + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + addl -88(%r13),%ecx + vmovdqu %ymm9,480(%rsp) + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl -84(%r13),%ebx + movl %esi,%edi + xorl %eax,%edi + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + andl %edi,%ecx + jmp .Lalign32_2 +.align 32 +.Lalign32_2: + vpalignr $8,%ymm6,%ymm7,%ymm8 + vpxor %ymm4,%ymm0,%ymm0 + addl -64(%r13),%ebp + xorl %esi,%ecx + vpxor %ymm1,%ymm0,%ymm0 + movl %edx,%edi + xorl %esi,%edi + leal (%rcx,%rbp,1),%ebp + vpxor %ymm8,%ymm0,%ymm0 + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + vpsrld $30,%ymm0,%ymm8 + vpslld $2,%ymm0,%ymm0 + addl %r12d,%ebp + andl %edi,%ebx + addl -60(%r13),%eax + xorl %edx,%ebx + movl %ecx,%edi + xorl %edx,%edi + vpor %ymm8,%ymm0,%ymm0 + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + vpaddd %ymm11,%ymm0,%ymm9 + addl %r12d,%eax + andl %edi,%ebp + addl -56(%r13),%esi + xorl %ecx,%ebp + vmovdqu %ymm9,512(%rsp) + movl %ebx,%edi + xorl %ecx,%edi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + andl %edi,%eax + addl -52(%r13),%edx + xorl %ebx,%eax + movl %ebp,%edi + xorl %ebx,%edi + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + andl %edi,%esi + addl -32(%r13),%ecx + xorl %ebp,%esi + movl %eax,%edi + xorl %ebp,%edi + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + andl %edi,%edx + vpalignr $8,%ymm7,%ymm0,%ymm8 + vpxor %ymm5,%ymm1,%ymm1 + addl -28(%r13),%ebx + xorl %eax,%edx + vpxor %ymm2,%ymm1,%ymm1 + movl %esi,%edi + xorl %eax,%edi + leal (%rbx,%rdx,1),%ebx + vpxor %ymm8,%ymm1,%ymm1 + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + vpsrld $30,%ymm1,%ymm8 + vpslld $2,%ymm1,%ymm1 + addl %r12d,%ebx + andl %edi,%ecx + addl -24(%r13),%ebp + xorl %esi,%ecx + movl %edx,%edi + xorl %esi,%edi + vpor %ymm8,%ymm1,%ymm1 + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + vpaddd %ymm11,%ymm1,%ymm9 + addl %r12d,%ebp + andl %edi,%ebx + addl -20(%r13),%eax + xorl %edx,%ebx + vmovdqu %ymm9,544(%rsp) + movl %ecx,%edi + xorl %edx,%edi + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + andl %edi,%ebp + addl 0(%r13),%esi + xorl %ecx,%ebp + movl %ebx,%edi + xorl %ecx,%edi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + andl %edi,%eax + addl 4(%r13),%edx + xorl %ebx,%eax + movl %ebp,%edi + xorl %ebx,%edi + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + andl %edi,%esi + vpalignr $8,%ymm0,%ymm1,%ymm8 + vpxor %ymm6,%ymm2,%ymm2 + addl 8(%r13),%ecx + xorl %ebp,%esi + vpxor %ymm3,%ymm2,%ymm2 + movl %eax,%edi + xorl %ebp,%edi + leal (%rcx,%rsi,1),%ecx + vpxor %ymm8,%ymm2,%ymm2 + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + vpsrld $30,%ymm2,%ymm8 + vpslld $2,%ymm2,%ymm2 + addl %r12d,%ecx + andl %edi,%edx + addl 12(%r13),%ebx + xorl %eax,%edx + movl %esi,%edi + xorl %eax,%edi + vpor %ymm8,%ymm2,%ymm2 + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + vpaddd %ymm11,%ymm2,%ymm9 + addl %r12d,%ebx + andl %edi,%ecx + addl 32(%r13),%ebp + xorl %esi,%ecx + vmovdqu %ymm9,576(%rsp) + movl %edx,%edi + xorl %esi,%edi + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + andl %edi,%ebx + addl 36(%r13),%eax + xorl %edx,%ebx + movl %ecx,%edi + xorl %edx,%edi + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + andl %edi,%ebp + addl 40(%r13),%esi + xorl %ecx,%ebp + movl %ebx,%edi + xorl %ecx,%edi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + andl %edi,%eax + vpalignr $8,%ymm1,%ymm2,%ymm8 + vpxor %ymm7,%ymm3,%ymm3 + addl 44(%r13),%edx + xorl %ebx,%eax + vpxor %ymm4,%ymm3,%ymm3 + movl %ebp,%edi + xorl %ebx,%edi + leal (%rdx,%rax,1),%edx + vpxor %ymm8,%ymm3,%ymm3 + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + vpsrld $30,%ymm3,%ymm8 + vpslld $2,%ymm3,%ymm3 + addl %r12d,%edx + andl %edi,%esi + addl 64(%r13),%ecx + xorl %ebp,%esi + movl %eax,%edi + xorl %ebp,%edi + vpor %ymm8,%ymm3,%ymm3 + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + vpaddd %ymm11,%ymm3,%ymm9 + addl %r12d,%ecx + andl %edi,%edx + addl 68(%r13),%ebx + xorl %eax,%edx + vmovdqu %ymm9,608(%rsp) + movl %esi,%edi + xorl %eax,%edi + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + andl %edi,%ecx + addl 72(%r13),%ebp + xorl %esi,%ecx + movl %edx,%edi + xorl %esi,%edi + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + andl %edi,%ebx + addl 76(%r13),%eax + xorl %edx,%ebx + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + addl 96(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + addl 100(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + addl 104(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl 108(%r13),%ebx + leaq 256(%r13),%r13 + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl -128(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + addl -124(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + addl -120(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + addl -116(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + addl -96(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl -92(%r13),%ebx + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl -88(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + addl -84(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + addl -64(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + addl -60(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + addl -56(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl -52(%r13),%ebx + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl -32(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + addl -28(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + addl -24(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + addl -20(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + addl %r12d,%edx + leaq 128(%r9),%r13 + leaq 128(%r9),%rdi + cmpq %r10,%r13 + cmovaeq %r9,%r13 + + + addl 0(%r8),%edx + addl 4(%r8),%esi + addl 8(%r8),%ebp + movl %edx,0(%r8) + addl 12(%r8),%ebx + movl %esi,4(%r8) + movl %edx,%eax + addl 16(%r8),%ecx + movl %ebp,%r12d + movl %ebp,8(%r8) + movl %ebx,%edx + + movl %ebx,12(%r8) + movl %esi,%ebp + movl %ecx,16(%r8) + + movl %ecx,%esi + movl %r12d,%ecx + + + cmpq %r10,%r9 + je .Ldone_avx2 + vmovdqu 64(%r14),%ymm6 + cmpq %r10,%rdi + ja .Last_avx2 + + vmovdqu -64(%rdi),%xmm0 + vmovdqu -48(%rdi),%xmm1 + vmovdqu -32(%rdi),%xmm2 + vmovdqu -16(%rdi),%xmm3 + vinserti128 $1,0(%r13),%ymm0,%ymm0 + vinserti128 $1,16(%r13),%ymm1,%ymm1 + vinserti128 $1,32(%r13),%ymm2,%ymm2 + vinserti128 $1,48(%r13),%ymm3,%ymm3 + jmp .Last_avx2 + +.align 32 +.Last_avx2: + leaq 128+16(%rsp),%r13 + rorxl $2,%ebp,%ebx + andnl %edx,%ebp,%edi + andl %ecx,%ebp + xorl %edi,%ebp + subq $-128,%r9 + addl -128(%r13),%esi + andnl %ecx,%eax,%edi + addl %ebp,%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + andl %ebx,%eax + addl %r12d,%esi + xorl %edi,%eax + addl -124(%r13),%edx + andnl %ebx,%esi,%edi + addl %eax,%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + andl %ebp,%esi + addl %r12d,%edx + xorl %edi,%esi + addl -120(%r13),%ecx + andnl %ebp,%edx,%edi + addl %esi,%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + andl %eax,%edx + addl %r12d,%ecx + xorl %edi,%edx + addl -116(%r13),%ebx + andnl %eax,%ecx,%edi + addl %edx,%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + andl %esi,%ecx + addl %r12d,%ebx + xorl %edi,%ecx + addl -96(%r13),%ebp + andnl %esi,%ebx,%edi + addl %ecx,%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + andl %edx,%ebx + addl %r12d,%ebp + xorl %edi,%ebx + addl -92(%r13),%eax + andnl %edx,%ebp,%edi + addl %ebx,%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + andl %ecx,%ebp + addl %r12d,%eax + xorl %edi,%ebp + addl -88(%r13),%esi + andnl %ecx,%eax,%edi + addl %ebp,%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + andl %ebx,%eax + addl %r12d,%esi + xorl %edi,%eax + addl -84(%r13),%edx + andnl %ebx,%esi,%edi + addl %eax,%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + andl %ebp,%esi + addl %r12d,%edx + xorl %edi,%esi + addl -64(%r13),%ecx + andnl %ebp,%edx,%edi + addl %esi,%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + andl %eax,%edx + addl %r12d,%ecx + xorl %edi,%edx + addl -60(%r13),%ebx + andnl %eax,%ecx,%edi + addl %edx,%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + andl %esi,%ecx + addl %r12d,%ebx + xorl %edi,%ecx + addl -56(%r13),%ebp + andnl %esi,%ebx,%edi + addl %ecx,%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + andl %edx,%ebx + addl %r12d,%ebp + xorl %edi,%ebx + addl -52(%r13),%eax + andnl %edx,%ebp,%edi + addl %ebx,%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + andl %ecx,%ebp + addl %r12d,%eax + xorl %edi,%ebp + addl -32(%r13),%esi + andnl %ecx,%eax,%edi + addl %ebp,%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + andl %ebx,%eax + addl %r12d,%esi + xorl %edi,%eax + addl -28(%r13),%edx + andnl %ebx,%esi,%edi + addl %eax,%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + andl %ebp,%esi + addl %r12d,%edx + xorl %edi,%esi + addl -24(%r13),%ecx + andnl %ebp,%edx,%edi + addl %esi,%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + andl %eax,%edx + addl %r12d,%ecx + xorl %edi,%edx + addl -20(%r13),%ebx + andnl %eax,%ecx,%edi + addl %edx,%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + andl %esi,%ecx + addl %r12d,%ebx + xorl %edi,%ecx + addl 0(%r13),%ebp + andnl %esi,%ebx,%edi + addl %ecx,%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + andl %edx,%ebx + addl %r12d,%ebp + xorl %edi,%ebx + addl 4(%r13),%eax + andnl %edx,%ebp,%edi + addl %ebx,%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + andl %ecx,%ebp + addl %r12d,%eax + xorl %edi,%ebp + addl 8(%r13),%esi + andnl %ecx,%eax,%edi + addl %ebp,%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + andl %ebx,%eax + addl %r12d,%esi + xorl %edi,%eax + addl 12(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + addl 32(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl 36(%r13),%ebx + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl 40(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + addl 44(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + addl 64(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + vmovdqu -64(%r14),%ymm11 + vpshufb %ymm6,%ymm0,%ymm0 + addl 68(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + addl 72(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl 76(%r13),%ebx + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl 96(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + addl 100(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + vpshufb %ymm6,%ymm1,%ymm1 + vpaddd %ymm11,%ymm0,%ymm8 + addl 104(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + addl 108(%r13),%edx + leaq 256(%r13),%r13 + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + addl -128(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl -124(%r13),%ebx + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl -120(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + vmovdqu %ymm8,0(%rsp) + vpshufb %ymm6,%ymm2,%ymm2 + vpaddd %ymm11,%ymm1,%ymm9 + addl -116(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + addl -96(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + addl -92(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + addl -88(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl -84(%r13),%ebx + movl %esi,%edi + xorl %eax,%edi + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + andl %edi,%ecx + vmovdqu %ymm9,32(%rsp) + vpshufb %ymm6,%ymm3,%ymm3 + vpaddd %ymm11,%ymm2,%ymm6 + addl -64(%r13),%ebp + xorl %esi,%ecx + movl %edx,%edi + xorl %esi,%edi + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + andl %edi,%ebx + addl -60(%r13),%eax + xorl %edx,%ebx + movl %ecx,%edi + xorl %edx,%edi + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + andl %edi,%ebp + addl -56(%r13),%esi + xorl %ecx,%ebp + movl %ebx,%edi + xorl %ecx,%edi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + andl %edi,%eax + addl -52(%r13),%edx + xorl %ebx,%eax + movl %ebp,%edi + xorl %ebx,%edi + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + andl %edi,%esi + addl -32(%r13),%ecx + xorl %ebp,%esi + movl %eax,%edi + xorl %ebp,%edi + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + andl %edi,%edx + jmp .Lalign32_3 +.align 32 +.Lalign32_3: + vmovdqu %ymm6,64(%rsp) + vpaddd %ymm11,%ymm3,%ymm7 + addl -28(%r13),%ebx + xorl %eax,%edx + movl %esi,%edi + xorl %eax,%edi + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + andl %edi,%ecx + addl -24(%r13),%ebp + xorl %esi,%ecx + movl %edx,%edi + xorl %esi,%edi + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + andl %edi,%ebx + addl -20(%r13),%eax + xorl %edx,%ebx + movl %ecx,%edi + xorl %edx,%edi + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + andl %edi,%ebp + addl 0(%r13),%esi + xorl %ecx,%ebp + movl %ebx,%edi + xorl %ecx,%edi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + andl %edi,%eax + addl 4(%r13),%edx + xorl %ebx,%eax + movl %ebp,%edi + xorl %ebx,%edi + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + andl %edi,%esi + vmovdqu %ymm7,96(%rsp) + addl 8(%r13),%ecx + xorl %ebp,%esi + movl %eax,%edi + xorl %ebp,%edi + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + andl %edi,%edx + addl 12(%r13),%ebx + xorl %eax,%edx + movl %esi,%edi + xorl %eax,%edi + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + andl %edi,%ecx + addl 32(%r13),%ebp + xorl %esi,%ecx + movl %edx,%edi + xorl %esi,%edi + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + andl %edi,%ebx + addl 36(%r13),%eax + xorl %edx,%ebx + movl %ecx,%edi + xorl %edx,%edi + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + andl %edi,%ebp + addl 40(%r13),%esi + xorl %ecx,%ebp + movl %ebx,%edi + xorl %ecx,%edi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + andl %edi,%eax + vpalignr $8,%ymm0,%ymm1,%ymm4 + addl 44(%r13),%edx + xorl %ebx,%eax + movl %ebp,%edi + xorl %ebx,%edi + vpsrldq $4,%ymm3,%ymm8 + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + vpxor %ymm0,%ymm4,%ymm4 + vpxor %ymm2,%ymm8,%ymm8 + xorl %ebp,%esi + addl %r12d,%edx + vpxor %ymm8,%ymm4,%ymm4 + andl %edi,%esi + addl 64(%r13),%ecx + xorl %ebp,%esi + movl %eax,%edi + vpsrld $31,%ymm4,%ymm8 + xorl %ebp,%edi + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + vpslldq $12,%ymm4,%ymm10 + vpaddd %ymm4,%ymm4,%ymm4 + rorxl $2,%edx,%esi + xorl %eax,%edx + vpsrld $30,%ymm10,%ymm9 + vpor %ymm8,%ymm4,%ymm4 + addl %r12d,%ecx + andl %edi,%edx + vpslld $2,%ymm10,%ymm10 + vpxor %ymm9,%ymm4,%ymm4 + addl 68(%r13),%ebx + xorl %eax,%edx + vpxor %ymm10,%ymm4,%ymm4 + movl %esi,%edi + xorl %eax,%edi + leal (%rbx,%rdx,1),%ebx + vpaddd %ymm11,%ymm4,%ymm9 + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + vmovdqu %ymm9,128(%rsp) + addl %r12d,%ebx + andl %edi,%ecx + addl 72(%r13),%ebp + xorl %esi,%ecx + movl %edx,%edi + xorl %esi,%edi + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + andl %edi,%ebx + addl 76(%r13),%eax + xorl %edx,%ebx + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + vpalignr $8,%ymm1,%ymm2,%ymm5 + addl 96(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + vpsrldq $4,%ymm4,%ymm8 + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + vpxor %ymm1,%ymm5,%ymm5 + vpxor %ymm3,%ymm8,%ymm8 + addl 100(%r13),%edx + leal (%rdx,%rax,1),%edx + vpxor %ymm8,%ymm5,%ymm5 + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + vpsrld $31,%ymm5,%ymm8 + vmovdqu -32(%r14),%ymm11 + xorl %ebx,%esi + addl 104(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + vpslldq $12,%ymm5,%ymm10 + vpaddd %ymm5,%ymm5,%ymm5 + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + vpsrld $30,%ymm10,%ymm9 + vpor %ymm8,%ymm5,%ymm5 + xorl %eax,%edx + addl %r12d,%ecx + vpslld $2,%ymm10,%ymm10 + vpxor %ymm9,%ymm5,%ymm5 + xorl %ebp,%edx + addl 108(%r13),%ebx + leaq 256(%r13),%r13 + vpxor %ymm10,%ymm5,%ymm5 + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + vpaddd %ymm11,%ymm5,%ymm9 + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + vmovdqu %ymm9,160(%rsp) + addl -128(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + vpalignr $8,%ymm2,%ymm3,%ymm6 + addl -124(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + vpsrldq $4,%ymm5,%ymm8 + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + vpxor %ymm2,%ymm6,%ymm6 + vpxor %ymm4,%ymm8,%ymm8 + addl -120(%r13),%esi + leal (%rsi,%rbp,1),%esi + vpxor %ymm8,%ymm6,%ymm6 + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + vpsrld $31,%ymm6,%ymm8 + xorl %ecx,%eax + addl -116(%r13),%edx + leal (%rdx,%rax,1),%edx + vpslldq $12,%ymm6,%ymm10 + vpaddd %ymm6,%ymm6,%ymm6 + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + vpsrld $30,%ymm10,%ymm9 + vpor %ymm8,%ymm6,%ymm6 + xorl %ebp,%esi + addl %r12d,%edx + vpslld $2,%ymm10,%ymm10 + vpxor %ymm9,%ymm6,%ymm6 + xorl %ebx,%esi + addl -96(%r13),%ecx + vpxor %ymm10,%ymm6,%ymm6 + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + vpaddd %ymm11,%ymm6,%ymm9 + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + vmovdqu %ymm9,192(%rsp) + addl -92(%r13),%ebx + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + vpalignr $8,%ymm3,%ymm4,%ymm7 + addl -88(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + vpsrldq $4,%ymm6,%ymm8 + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + vpxor %ymm3,%ymm7,%ymm7 + vpxor %ymm5,%ymm8,%ymm8 + addl -84(%r13),%eax + leal (%rax,%rbx,1),%eax + vpxor %ymm8,%ymm7,%ymm7 + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + vpsrld $31,%ymm7,%ymm8 + xorl %edx,%ebp + addl -64(%r13),%esi + leal (%rsi,%rbp,1),%esi + vpslldq $12,%ymm7,%ymm10 + vpaddd %ymm7,%ymm7,%ymm7 + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + vpsrld $30,%ymm10,%ymm9 + vpor %ymm8,%ymm7,%ymm7 + xorl %ebx,%eax + addl %r12d,%esi + vpslld $2,%ymm10,%ymm10 + vpxor %ymm9,%ymm7,%ymm7 + xorl %ecx,%eax + addl -60(%r13),%edx + vpxor %ymm10,%ymm7,%ymm7 + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + vpaddd %ymm11,%ymm7,%ymm9 + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + vmovdqu %ymm9,224(%rsp) + addl -56(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl -52(%r13),%ebx + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl -32(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + addl -28(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + addl -24(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + addl -20(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + addl %r12d,%edx + leaq 128(%rsp),%r13 + + + addl 0(%r8),%edx + addl 4(%r8),%esi + addl 8(%r8),%ebp + movl %edx,0(%r8) + addl 12(%r8),%ebx + movl %esi,4(%r8) + movl %edx,%eax + addl 16(%r8),%ecx + movl %ebp,%r12d + movl %ebp,8(%r8) + movl %ebx,%edx + + movl %ebx,12(%r8) + movl %esi,%ebp + movl %ecx,16(%r8) + + movl %ecx,%esi + movl %r12d,%ecx + + + cmpq %r10,%r9 + jbe .Loop_avx2 + +.Ldone_avx2: + vzeroupper + movq -40(%r11),%r14 +.cfi_restore %r14 + movq -32(%r11),%r13 +.cfi_restore %r13 + movq -24(%r11),%r12 +.cfi_restore %r12 + movq -16(%r11),%rbp +.cfi_restore %rbp + movq -8(%r11),%rbx +.cfi_restore %rbx + leaq (%r11),%rsp +.cfi_def_cfa_register %rsp +.Lepilogue_avx2: + .byte 0xf3,0xc3 +.cfi_endproc +.size sha1_block_data_order_avx2,.-sha1_block_data_order_avx2 +.align 64 +K_XX_XX: +.long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 +.long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 +.long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1 +.long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1 +.long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc +.long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc +.long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6 +.long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6 +.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f +.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f +.byte 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0 +.byte 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 64 diff --git a/vere/ext/openssl/gen/linux-x86_64/crypto/sha/sha256-mb-x86_64.s b/vere/ext/openssl/gen/linux-x86_64/crypto/sha/sha256-mb-x86_64.s new file mode 100644 index 0000000..59cf9c9 --- /dev/null +++ b/vere/ext/openssl/gen/linux-x86_64/crypto/sha/sha256-mb-x86_64.s @@ -0,0 +1,7948 @@ +.text + + + +.globl sha256_multi_block +.type sha256_multi_block,@function +.align 32 +sha256_multi_block: +.cfi_startproc + movq OPENSSL_ia32cap_P+4(%rip),%rcx + btq $61,%rcx + jc _shaext_shortcut + testl $268435456,%ecx + jnz _avx_shortcut + movq %rsp,%rax +.cfi_def_cfa_register %rax + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + subq $288,%rsp + andq $-256,%rsp + movq %rax,272(%rsp) +.cfi_escape 0x0f,0x06,0x77,0x90,0x02,0x06,0x23,0x08 +.Lbody: + leaq K256+128(%rip),%rbp + leaq 256(%rsp),%rbx + leaq 128(%rdi),%rdi + +.Loop_grande: + movl %edx,280(%rsp) + xorl %edx,%edx + movq 0(%rsi),%r8 + movl 8(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,0(%rbx) + cmovleq %rbp,%r8 + movq 16(%rsi),%r9 + movl 24(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,4(%rbx) + cmovleq %rbp,%r9 + movq 32(%rsi),%r10 + movl 40(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,8(%rbx) + cmovleq %rbp,%r10 + movq 48(%rsi),%r11 + movl 56(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,12(%rbx) + cmovleq %rbp,%r11 + testl %edx,%edx + jz .Ldone + + movdqu 0-128(%rdi),%xmm8 + leaq 128(%rsp),%rax + movdqu 32-128(%rdi),%xmm9 + movdqu 64-128(%rdi),%xmm10 + movdqu 96-128(%rdi),%xmm11 + movdqu 128-128(%rdi),%xmm12 + movdqu 160-128(%rdi),%xmm13 + movdqu 192-128(%rdi),%xmm14 + movdqu 224-128(%rdi),%xmm15 + movdqu .Lpbswap(%rip),%xmm6 + jmp .Loop + +.align 32 +.Loop: + movdqa %xmm10,%xmm4 + pxor %xmm9,%xmm4 + movd 0(%r8),%xmm5 + movd 0(%r9),%xmm0 + movd 0(%r10),%xmm1 + movd 0(%r11),%xmm2 + punpckldq %xmm1,%xmm5 + punpckldq %xmm2,%xmm0 + punpckldq %xmm0,%xmm5 + movdqa %xmm12,%xmm7 +.byte 102,15,56,0,238 + movdqa %xmm12,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm12,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,0-128(%rax) + paddd %xmm15,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd -128(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm12,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm12,%xmm3 + pslld $26-21,%xmm2 + pandn %xmm14,%xmm0 + pand %xmm13,%xmm3 + pxor %xmm1,%xmm7 + + + movdqa %xmm8,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm8,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + movdqa %xmm9,%xmm3 + movdqa %xmm8,%xmm7 + pslld $10,%xmm2 + pxor %xmm8,%xmm3 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm3,%xmm4 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm9,%xmm15 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm4,%xmm15 + paddd %xmm5,%xmm11 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm15 + paddd %xmm7,%xmm15 + movd 4(%r8),%xmm5 + movd 4(%r9),%xmm0 + movd 4(%r10),%xmm1 + movd 4(%r11),%xmm2 + punpckldq %xmm1,%xmm5 + punpckldq %xmm2,%xmm0 + punpckldq %xmm0,%xmm5 + movdqa %xmm11,%xmm7 + + movdqa %xmm11,%xmm2 +.byte 102,15,56,0,238 + psrld $6,%xmm7 + movdqa %xmm11,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,16-128(%rax) + paddd %xmm14,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd -96(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm11,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm11,%xmm4 + pslld $26-21,%xmm2 + pandn %xmm13,%xmm0 + pand %xmm12,%xmm4 + pxor %xmm1,%xmm7 + + + movdqa %xmm15,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm15,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm4,%xmm0 + movdqa %xmm8,%xmm4 + movdqa %xmm15,%xmm7 + pslld $10,%xmm2 + pxor %xmm15,%xmm4 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm4,%xmm3 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm8,%xmm14 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm3,%xmm14 + paddd %xmm5,%xmm10 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm14 + paddd %xmm7,%xmm14 + movd 8(%r8),%xmm5 + movd 8(%r9),%xmm0 + movd 8(%r10),%xmm1 + movd 8(%r11),%xmm2 + punpckldq %xmm1,%xmm5 + punpckldq %xmm2,%xmm0 + punpckldq %xmm0,%xmm5 + movdqa %xmm10,%xmm7 +.byte 102,15,56,0,238 + movdqa %xmm10,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm10,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,32-128(%rax) + paddd %xmm13,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd -64(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm10,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm10,%xmm3 + pslld $26-21,%xmm2 + pandn %xmm12,%xmm0 + pand %xmm11,%xmm3 + pxor %xmm1,%xmm7 + + + movdqa %xmm14,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm14,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + movdqa %xmm15,%xmm3 + movdqa %xmm14,%xmm7 + pslld $10,%xmm2 + pxor %xmm14,%xmm3 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm3,%xmm4 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm15,%xmm13 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm4,%xmm13 + paddd %xmm5,%xmm9 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm13 + paddd %xmm7,%xmm13 + movd 12(%r8),%xmm5 + movd 12(%r9),%xmm0 + movd 12(%r10),%xmm1 + movd 12(%r11),%xmm2 + punpckldq %xmm1,%xmm5 + punpckldq %xmm2,%xmm0 + punpckldq %xmm0,%xmm5 + movdqa %xmm9,%xmm7 + + movdqa %xmm9,%xmm2 +.byte 102,15,56,0,238 + psrld $6,%xmm7 + movdqa %xmm9,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,48-128(%rax) + paddd %xmm12,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd -32(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm9,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm9,%xmm4 + pslld $26-21,%xmm2 + pandn %xmm11,%xmm0 + pand %xmm10,%xmm4 + pxor %xmm1,%xmm7 + + + movdqa %xmm13,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm13,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm4,%xmm0 + movdqa %xmm14,%xmm4 + movdqa %xmm13,%xmm7 + pslld $10,%xmm2 + pxor %xmm13,%xmm4 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm4,%xmm3 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm14,%xmm12 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm3,%xmm12 + paddd %xmm5,%xmm8 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm12 + paddd %xmm7,%xmm12 + movd 16(%r8),%xmm5 + movd 16(%r9),%xmm0 + movd 16(%r10),%xmm1 + movd 16(%r11),%xmm2 + punpckldq %xmm1,%xmm5 + punpckldq %xmm2,%xmm0 + punpckldq %xmm0,%xmm5 + movdqa %xmm8,%xmm7 +.byte 102,15,56,0,238 + movdqa %xmm8,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm8,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,64-128(%rax) + paddd %xmm11,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd 0(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm8,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm8,%xmm3 + pslld $26-21,%xmm2 + pandn %xmm10,%xmm0 + pand %xmm9,%xmm3 + pxor %xmm1,%xmm7 + + + movdqa %xmm12,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm12,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + movdqa %xmm13,%xmm3 + movdqa %xmm12,%xmm7 + pslld $10,%xmm2 + pxor %xmm12,%xmm3 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm3,%xmm4 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm13,%xmm11 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm4,%xmm11 + paddd %xmm5,%xmm15 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm11 + paddd %xmm7,%xmm11 + movd 20(%r8),%xmm5 + movd 20(%r9),%xmm0 + movd 20(%r10),%xmm1 + movd 20(%r11),%xmm2 + punpckldq %xmm1,%xmm5 + punpckldq %xmm2,%xmm0 + punpckldq %xmm0,%xmm5 + movdqa %xmm15,%xmm7 + + movdqa %xmm15,%xmm2 +.byte 102,15,56,0,238 + psrld $6,%xmm7 + movdqa %xmm15,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,80-128(%rax) + paddd %xmm10,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd 32(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm15,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm15,%xmm4 + pslld $26-21,%xmm2 + pandn %xmm9,%xmm0 + pand %xmm8,%xmm4 + pxor %xmm1,%xmm7 + + + movdqa %xmm11,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm11,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm4,%xmm0 + movdqa %xmm12,%xmm4 + movdqa %xmm11,%xmm7 + pslld $10,%xmm2 + pxor %xmm11,%xmm4 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm4,%xmm3 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm12,%xmm10 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm3,%xmm10 + paddd %xmm5,%xmm14 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm10 + paddd %xmm7,%xmm10 + movd 24(%r8),%xmm5 + movd 24(%r9),%xmm0 + movd 24(%r10),%xmm1 + movd 24(%r11),%xmm2 + punpckldq %xmm1,%xmm5 + punpckldq %xmm2,%xmm0 + punpckldq %xmm0,%xmm5 + movdqa %xmm14,%xmm7 +.byte 102,15,56,0,238 + movdqa %xmm14,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm14,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,96-128(%rax) + paddd %xmm9,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd 64(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm14,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm14,%xmm3 + pslld $26-21,%xmm2 + pandn %xmm8,%xmm0 + pand %xmm15,%xmm3 + pxor %xmm1,%xmm7 + + + movdqa %xmm10,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm10,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + movdqa %xmm11,%xmm3 + movdqa %xmm10,%xmm7 + pslld $10,%xmm2 + pxor %xmm10,%xmm3 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm3,%xmm4 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm11,%xmm9 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm4,%xmm9 + paddd %xmm5,%xmm13 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm9 + paddd %xmm7,%xmm9 + movd 28(%r8),%xmm5 + movd 28(%r9),%xmm0 + movd 28(%r10),%xmm1 + movd 28(%r11),%xmm2 + punpckldq %xmm1,%xmm5 + punpckldq %xmm2,%xmm0 + punpckldq %xmm0,%xmm5 + movdqa %xmm13,%xmm7 + + movdqa %xmm13,%xmm2 +.byte 102,15,56,0,238 + psrld $6,%xmm7 + movdqa %xmm13,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,112-128(%rax) + paddd %xmm8,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd 96(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm13,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm13,%xmm4 + pslld $26-21,%xmm2 + pandn %xmm15,%xmm0 + pand %xmm14,%xmm4 + pxor %xmm1,%xmm7 + + + movdqa %xmm9,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm9,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm4,%xmm0 + movdqa %xmm10,%xmm4 + movdqa %xmm9,%xmm7 + pslld $10,%xmm2 + pxor %xmm9,%xmm4 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm4,%xmm3 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm10,%xmm8 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm3,%xmm8 + paddd %xmm5,%xmm12 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm8 + paddd %xmm7,%xmm8 + leaq 256(%rbp),%rbp + movd 32(%r8),%xmm5 + movd 32(%r9),%xmm0 + movd 32(%r10),%xmm1 + movd 32(%r11),%xmm2 + punpckldq %xmm1,%xmm5 + punpckldq %xmm2,%xmm0 + punpckldq %xmm0,%xmm5 + movdqa %xmm12,%xmm7 +.byte 102,15,56,0,238 + movdqa %xmm12,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm12,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,128-128(%rax) + paddd %xmm15,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd -128(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm12,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm12,%xmm3 + pslld $26-21,%xmm2 + pandn %xmm14,%xmm0 + pand %xmm13,%xmm3 + pxor %xmm1,%xmm7 + + + movdqa %xmm8,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm8,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + movdqa %xmm9,%xmm3 + movdqa %xmm8,%xmm7 + pslld $10,%xmm2 + pxor %xmm8,%xmm3 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm3,%xmm4 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm9,%xmm15 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm4,%xmm15 + paddd %xmm5,%xmm11 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm15 + paddd %xmm7,%xmm15 + movd 36(%r8),%xmm5 + movd 36(%r9),%xmm0 + movd 36(%r10),%xmm1 + movd 36(%r11),%xmm2 + punpckldq %xmm1,%xmm5 + punpckldq %xmm2,%xmm0 + punpckldq %xmm0,%xmm5 + movdqa %xmm11,%xmm7 + + movdqa %xmm11,%xmm2 +.byte 102,15,56,0,238 + psrld $6,%xmm7 + movdqa %xmm11,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,144-128(%rax) + paddd %xmm14,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd -96(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm11,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm11,%xmm4 + pslld $26-21,%xmm2 + pandn %xmm13,%xmm0 + pand %xmm12,%xmm4 + pxor %xmm1,%xmm7 + + + movdqa %xmm15,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm15,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm4,%xmm0 + movdqa %xmm8,%xmm4 + movdqa %xmm15,%xmm7 + pslld $10,%xmm2 + pxor %xmm15,%xmm4 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm4,%xmm3 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm8,%xmm14 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm3,%xmm14 + paddd %xmm5,%xmm10 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm14 + paddd %xmm7,%xmm14 + movd 40(%r8),%xmm5 + movd 40(%r9),%xmm0 + movd 40(%r10),%xmm1 + movd 40(%r11),%xmm2 + punpckldq %xmm1,%xmm5 + punpckldq %xmm2,%xmm0 + punpckldq %xmm0,%xmm5 + movdqa %xmm10,%xmm7 +.byte 102,15,56,0,238 + movdqa %xmm10,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm10,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,160-128(%rax) + paddd %xmm13,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd -64(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm10,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm10,%xmm3 + pslld $26-21,%xmm2 + pandn %xmm12,%xmm0 + pand %xmm11,%xmm3 + pxor %xmm1,%xmm7 + + + movdqa %xmm14,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm14,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + movdqa %xmm15,%xmm3 + movdqa %xmm14,%xmm7 + pslld $10,%xmm2 + pxor %xmm14,%xmm3 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm3,%xmm4 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm15,%xmm13 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm4,%xmm13 + paddd %xmm5,%xmm9 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm13 + paddd %xmm7,%xmm13 + movd 44(%r8),%xmm5 + movd 44(%r9),%xmm0 + movd 44(%r10),%xmm1 + movd 44(%r11),%xmm2 + punpckldq %xmm1,%xmm5 + punpckldq %xmm2,%xmm0 + punpckldq %xmm0,%xmm5 + movdqa %xmm9,%xmm7 + + movdqa %xmm9,%xmm2 +.byte 102,15,56,0,238 + psrld $6,%xmm7 + movdqa %xmm9,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,176-128(%rax) + paddd %xmm12,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd -32(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm9,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm9,%xmm4 + pslld $26-21,%xmm2 + pandn %xmm11,%xmm0 + pand %xmm10,%xmm4 + pxor %xmm1,%xmm7 + + + movdqa %xmm13,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm13,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm4,%xmm0 + movdqa %xmm14,%xmm4 + movdqa %xmm13,%xmm7 + pslld $10,%xmm2 + pxor %xmm13,%xmm4 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm4,%xmm3 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm14,%xmm12 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm3,%xmm12 + paddd %xmm5,%xmm8 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm12 + paddd %xmm7,%xmm12 + movd 48(%r8),%xmm5 + movd 48(%r9),%xmm0 + movd 48(%r10),%xmm1 + movd 48(%r11),%xmm2 + punpckldq %xmm1,%xmm5 + punpckldq %xmm2,%xmm0 + punpckldq %xmm0,%xmm5 + movdqa %xmm8,%xmm7 +.byte 102,15,56,0,238 + movdqa %xmm8,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm8,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,192-128(%rax) + paddd %xmm11,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd 0(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm8,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm8,%xmm3 + pslld $26-21,%xmm2 + pandn %xmm10,%xmm0 + pand %xmm9,%xmm3 + pxor %xmm1,%xmm7 + + + movdqa %xmm12,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm12,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + movdqa %xmm13,%xmm3 + movdqa %xmm12,%xmm7 + pslld $10,%xmm2 + pxor %xmm12,%xmm3 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm3,%xmm4 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm13,%xmm11 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm4,%xmm11 + paddd %xmm5,%xmm15 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm11 + paddd %xmm7,%xmm11 + movd 52(%r8),%xmm5 + movd 52(%r9),%xmm0 + movd 52(%r10),%xmm1 + movd 52(%r11),%xmm2 + punpckldq %xmm1,%xmm5 + punpckldq %xmm2,%xmm0 + punpckldq %xmm0,%xmm5 + movdqa %xmm15,%xmm7 + + movdqa %xmm15,%xmm2 +.byte 102,15,56,0,238 + psrld $6,%xmm7 + movdqa %xmm15,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,208-128(%rax) + paddd %xmm10,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd 32(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm15,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm15,%xmm4 + pslld $26-21,%xmm2 + pandn %xmm9,%xmm0 + pand %xmm8,%xmm4 + pxor %xmm1,%xmm7 + + + movdqa %xmm11,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm11,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm4,%xmm0 + movdqa %xmm12,%xmm4 + movdqa %xmm11,%xmm7 + pslld $10,%xmm2 + pxor %xmm11,%xmm4 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm4,%xmm3 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm12,%xmm10 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm3,%xmm10 + paddd %xmm5,%xmm14 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm10 + paddd %xmm7,%xmm10 + movd 56(%r8),%xmm5 + movd 56(%r9),%xmm0 + movd 56(%r10),%xmm1 + movd 56(%r11),%xmm2 + punpckldq %xmm1,%xmm5 + punpckldq %xmm2,%xmm0 + punpckldq %xmm0,%xmm5 + movdqa %xmm14,%xmm7 +.byte 102,15,56,0,238 + movdqa %xmm14,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm14,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,224-128(%rax) + paddd %xmm9,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd 64(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm14,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm14,%xmm3 + pslld $26-21,%xmm2 + pandn %xmm8,%xmm0 + pand %xmm15,%xmm3 + pxor %xmm1,%xmm7 + + + movdqa %xmm10,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm10,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + movdqa %xmm11,%xmm3 + movdqa %xmm10,%xmm7 + pslld $10,%xmm2 + pxor %xmm10,%xmm3 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm3,%xmm4 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm11,%xmm9 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm4,%xmm9 + paddd %xmm5,%xmm13 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm9 + paddd %xmm7,%xmm9 + movd 60(%r8),%xmm5 + leaq 64(%r8),%r8 + movd 60(%r9),%xmm0 + leaq 64(%r9),%r9 + movd 60(%r10),%xmm1 + leaq 64(%r10),%r10 + movd 60(%r11),%xmm2 + leaq 64(%r11),%r11 + punpckldq %xmm1,%xmm5 + punpckldq %xmm2,%xmm0 + punpckldq %xmm0,%xmm5 + movdqa %xmm13,%xmm7 + + movdqa %xmm13,%xmm2 +.byte 102,15,56,0,238 + psrld $6,%xmm7 + movdqa %xmm13,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,240-128(%rax) + paddd %xmm8,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd 96(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm13,%xmm0 + prefetcht0 63(%r8) + pxor %xmm2,%xmm7 + movdqa %xmm13,%xmm4 + pslld $26-21,%xmm2 + pandn %xmm15,%xmm0 + pand %xmm14,%xmm4 + pxor %xmm1,%xmm7 + + prefetcht0 63(%r9) + movdqa %xmm9,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm9,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm4,%xmm0 + movdqa %xmm10,%xmm4 + movdqa %xmm9,%xmm7 + pslld $10,%xmm2 + pxor %xmm9,%xmm4 + + prefetcht0 63(%r10) + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm4,%xmm3 + pxor %xmm7,%xmm1 + + prefetcht0 63(%r11) + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm10,%xmm8 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm3,%xmm8 + paddd %xmm5,%xmm12 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm8 + paddd %xmm7,%xmm8 + leaq 256(%rbp),%rbp + movdqu 0-128(%rax),%xmm5 + movl $3,%ecx + jmp .Loop_16_xx +.align 32 +.Loop_16_xx: + movdqa 16-128(%rax),%xmm6 + paddd 144-128(%rax),%xmm5 + + movdqa %xmm6,%xmm7 + movdqa %xmm6,%xmm1 + psrld $3,%xmm7 + movdqa %xmm6,%xmm2 + + psrld $7,%xmm1 + movdqa 224-128(%rax),%xmm0 + pslld $14,%xmm2 + pxor %xmm1,%xmm7 + psrld $18-7,%xmm1 + movdqa %xmm0,%xmm3 + pxor %xmm2,%xmm7 + pslld $25-14,%xmm2 + pxor %xmm1,%xmm7 + psrld $10,%xmm0 + movdqa %xmm3,%xmm1 + + psrld $17,%xmm3 + pxor %xmm2,%xmm7 + pslld $13,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + psrld $19-17,%xmm3 + pxor %xmm1,%xmm0 + pslld $15-13,%xmm1 + pxor %xmm3,%xmm0 + pxor %xmm1,%xmm0 + paddd %xmm0,%xmm5 + movdqa %xmm12,%xmm7 + + movdqa %xmm12,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm12,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,0-128(%rax) + paddd %xmm15,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd -128(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm12,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm12,%xmm3 + pslld $26-21,%xmm2 + pandn %xmm14,%xmm0 + pand %xmm13,%xmm3 + pxor %xmm1,%xmm7 + + + movdqa %xmm8,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm8,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + movdqa %xmm9,%xmm3 + movdqa %xmm8,%xmm7 + pslld $10,%xmm2 + pxor %xmm8,%xmm3 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm3,%xmm4 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm9,%xmm15 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm4,%xmm15 + paddd %xmm5,%xmm11 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm15 + paddd %xmm7,%xmm15 + movdqa 32-128(%rax),%xmm5 + paddd 160-128(%rax),%xmm6 + + movdqa %xmm5,%xmm7 + movdqa %xmm5,%xmm1 + psrld $3,%xmm7 + movdqa %xmm5,%xmm2 + + psrld $7,%xmm1 + movdqa 240-128(%rax),%xmm0 + pslld $14,%xmm2 + pxor %xmm1,%xmm7 + psrld $18-7,%xmm1 + movdqa %xmm0,%xmm4 + pxor %xmm2,%xmm7 + pslld $25-14,%xmm2 + pxor %xmm1,%xmm7 + psrld $10,%xmm0 + movdqa %xmm4,%xmm1 + + psrld $17,%xmm4 + pxor %xmm2,%xmm7 + pslld $13,%xmm1 + paddd %xmm7,%xmm6 + pxor %xmm4,%xmm0 + psrld $19-17,%xmm4 + pxor %xmm1,%xmm0 + pslld $15-13,%xmm1 + pxor %xmm4,%xmm0 + pxor %xmm1,%xmm0 + paddd %xmm0,%xmm6 + movdqa %xmm11,%xmm7 + + movdqa %xmm11,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm11,%xmm1 + pslld $7,%xmm2 + movdqa %xmm6,16-128(%rax) + paddd %xmm14,%xmm6 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd -96(%rbp),%xmm6 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm11,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm11,%xmm4 + pslld $26-21,%xmm2 + pandn %xmm13,%xmm0 + pand %xmm12,%xmm4 + pxor %xmm1,%xmm7 + + + movdqa %xmm15,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm15,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm6 + pxor %xmm4,%xmm0 + movdqa %xmm8,%xmm4 + movdqa %xmm15,%xmm7 + pslld $10,%xmm2 + pxor %xmm15,%xmm4 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm6 + pslld $19-10,%xmm2 + pand %xmm4,%xmm3 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm8,%xmm14 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm3,%xmm14 + paddd %xmm6,%xmm10 + pxor %xmm2,%xmm7 + + paddd %xmm6,%xmm14 + paddd %xmm7,%xmm14 + movdqa 48-128(%rax),%xmm6 + paddd 176-128(%rax),%xmm5 + + movdqa %xmm6,%xmm7 + movdqa %xmm6,%xmm1 + psrld $3,%xmm7 + movdqa %xmm6,%xmm2 + + psrld $7,%xmm1 + movdqa 0-128(%rax),%xmm0 + pslld $14,%xmm2 + pxor %xmm1,%xmm7 + psrld $18-7,%xmm1 + movdqa %xmm0,%xmm3 + pxor %xmm2,%xmm7 + pslld $25-14,%xmm2 + pxor %xmm1,%xmm7 + psrld $10,%xmm0 + movdqa %xmm3,%xmm1 + + psrld $17,%xmm3 + pxor %xmm2,%xmm7 + pslld $13,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + psrld $19-17,%xmm3 + pxor %xmm1,%xmm0 + pslld $15-13,%xmm1 + pxor %xmm3,%xmm0 + pxor %xmm1,%xmm0 + paddd %xmm0,%xmm5 + movdqa %xmm10,%xmm7 + + movdqa %xmm10,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm10,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,32-128(%rax) + paddd %xmm13,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd -64(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm10,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm10,%xmm3 + pslld $26-21,%xmm2 + pandn %xmm12,%xmm0 + pand %xmm11,%xmm3 + pxor %xmm1,%xmm7 + + + movdqa %xmm14,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm14,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + movdqa %xmm15,%xmm3 + movdqa %xmm14,%xmm7 + pslld $10,%xmm2 + pxor %xmm14,%xmm3 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm3,%xmm4 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm15,%xmm13 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm4,%xmm13 + paddd %xmm5,%xmm9 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm13 + paddd %xmm7,%xmm13 + movdqa 64-128(%rax),%xmm5 + paddd 192-128(%rax),%xmm6 + + movdqa %xmm5,%xmm7 + movdqa %xmm5,%xmm1 + psrld $3,%xmm7 + movdqa %xmm5,%xmm2 + + psrld $7,%xmm1 + movdqa 16-128(%rax),%xmm0 + pslld $14,%xmm2 + pxor %xmm1,%xmm7 + psrld $18-7,%xmm1 + movdqa %xmm0,%xmm4 + pxor %xmm2,%xmm7 + pslld $25-14,%xmm2 + pxor %xmm1,%xmm7 + psrld $10,%xmm0 + movdqa %xmm4,%xmm1 + + psrld $17,%xmm4 + pxor %xmm2,%xmm7 + pslld $13,%xmm1 + paddd %xmm7,%xmm6 + pxor %xmm4,%xmm0 + psrld $19-17,%xmm4 + pxor %xmm1,%xmm0 + pslld $15-13,%xmm1 + pxor %xmm4,%xmm0 + pxor %xmm1,%xmm0 + paddd %xmm0,%xmm6 + movdqa %xmm9,%xmm7 + + movdqa %xmm9,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm9,%xmm1 + pslld $7,%xmm2 + movdqa %xmm6,48-128(%rax) + paddd %xmm12,%xmm6 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd -32(%rbp),%xmm6 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm9,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm9,%xmm4 + pslld $26-21,%xmm2 + pandn %xmm11,%xmm0 + pand %xmm10,%xmm4 + pxor %xmm1,%xmm7 + + + movdqa %xmm13,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm13,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm6 + pxor %xmm4,%xmm0 + movdqa %xmm14,%xmm4 + movdqa %xmm13,%xmm7 + pslld $10,%xmm2 + pxor %xmm13,%xmm4 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm6 + pslld $19-10,%xmm2 + pand %xmm4,%xmm3 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm14,%xmm12 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm3,%xmm12 + paddd %xmm6,%xmm8 + pxor %xmm2,%xmm7 + + paddd %xmm6,%xmm12 + paddd %xmm7,%xmm12 + movdqa 80-128(%rax),%xmm6 + paddd 208-128(%rax),%xmm5 + + movdqa %xmm6,%xmm7 + movdqa %xmm6,%xmm1 + psrld $3,%xmm7 + movdqa %xmm6,%xmm2 + + psrld $7,%xmm1 + movdqa 32-128(%rax),%xmm0 + pslld $14,%xmm2 + pxor %xmm1,%xmm7 + psrld $18-7,%xmm1 + movdqa %xmm0,%xmm3 + pxor %xmm2,%xmm7 + pslld $25-14,%xmm2 + pxor %xmm1,%xmm7 + psrld $10,%xmm0 + movdqa %xmm3,%xmm1 + + psrld $17,%xmm3 + pxor %xmm2,%xmm7 + pslld $13,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + psrld $19-17,%xmm3 + pxor %xmm1,%xmm0 + pslld $15-13,%xmm1 + pxor %xmm3,%xmm0 + pxor %xmm1,%xmm0 + paddd %xmm0,%xmm5 + movdqa %xmm8,%xmm7 + + movdqa %xmm8,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm8,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,64-128(%rax) + paddd %xmm11,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd 0(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm8,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm8,%xmm3 + pslld $26-21,%xmm2 + pandn %xmm10,%xmm0 + pand %xmm9,%xmm3 + pxor %xmm1,%xmm7 + + + movdqa %xmm12,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm12,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + movdqa %xmm13,%xmm3 + movdqa %xmm12,%xmm7 + pslld $10,%xmm2 + pxor %xmm12,%xmm3 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm3,%xmm4 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm13,%xmm11 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm4,%xmm11 + paddd %xmm5,%xmm15 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm11 + paddd %xmm7,%xmm11 + movdqa 96-128(%rax),%xmm5 + paddd 224-128(%rax),%xmm6 + + movdqa %xmm5,%xmm7 + movdqa %xmm5,%xmm1 + psrld $3,%xmm7 + movdqa %xmm5,%xmm2 + + psrld $7,%xmm1 + movdqa 48-128(%rax),%xmm0 + pslld $14,%xmm2 + pxor %xmm1,%xmm7 + psrld $18-7,%xmm1 + movdqa %xmm0,%xmm4 + pxor %xmm2,%xmm7 + pslld $25-14,%xmm2 + pxor %xmm1,%xmm7 + psrld $10,%xmm0 + movdqa %xmm4,%xmm1 + + psrld $17,%xmm4 + pxor %xmm2,%xmm7 + pslld $13,%xmm1 + paddd %xmm7,%xmm6 + pxor %xmm4,%xmm0 + psrld $19-17,%xmm4 + pxor %xmm1,%xmm0 + pslld $15-13,%xmm1 + pxor %xmm4,%xmm0 + pxor %xmm1,%xmm0 + paddd %xmm0,%xmm6 + movdqa %xmm15,%xmm7 + + movdqa %xmm15,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm15,%xmm1 + pslld $7,%xmm2 + movdqa %xmm6,80-128(%rax) + paddd %xmm10,%xmm6 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd 32(%rbp),%xmm6 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm15,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm15,%xmm4 + pslld $26-21,%xmm2 + pandn %xmm9,%xmm0 + pand %xmm8,%xmm4 + pxor %xmm1,%xmm7 + + + movdqa %xmm11,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm11,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm6 + pxor %xmm4,%xmm0 + movdqa %xmm12,%xmm4 + movdqa %xmm11,%xmm7 + pslld $10,%xmm2 + pxor %xmm11,%xmm4 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm6 + pslld $19-10,%xmm2 + pand %xmm4,%xmm3 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm12,%xmm10 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm3,%xmm10 + paddd %xmm6,%xmm14 + pxor %xmm2,%xmm7 + + paddd %xmm6,%xmm10 + paddd %xmm7,%xmm10 + movdqa 112-128(%rax),%xmm6 + paddd 240-128(%rax),%xmm5 + + movdqa %xmm6,%xmm7 + movdqa %xmm6,%xmm1 + psrld $3,%xmm7 + movdqa %xmm6,%xmm2 + + psrld $7,%xmm1 + movdqa 64-128(%rax),%xmm0 + pslld $14,%xmm2 + pxor %xmm1,%xmm7 + psrld $18-7,%xmm1 + movdqa %xmm0,%xmm3 + pxor %xmm2,%xmm7 + pslld $25-14,%xmm2 + pxor %xmm1,%xmm7 + psrld $10,%xmm0 + movdqa %xmm3,%xmm1 + + psrld $17,%xmm3 + pxor %xmm2,%xmm7 + pslld $13,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + psrld $19-17,%xmm3 + pxor %xmm1,%xmm0 + pslld $15-13,%xmm1 + pxor %xmm3,%xmm0 + pxor %xmm1,%xmm0 + paddd %xmm0,%xmm5 + movdqa %xmm14,%xmm7 + + movdqa %xmm14,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm14,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,96-128(%rax) + paddd %xmm9,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd 64(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm14,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm14,%xmm3 + pslld $26-21,%xmm2 + pandn %xmm8,%xmm0 + pand %xmm15,%xmm3 + pxor %xmm1,%xmm7 + + + movdqa %xmm10,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm10,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + movdqa %xmm11,%xmm3 + movdqa %xmm10,%xmm7 + pslld $10,%xmm2 + pxor %xmm10,%xmm3 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm3,%xmm4 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm11,%xmm9 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm4,%xmm9 + paddd %xmm5,%xmm13 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm9 + paddd %xmm7,%xmm9 + movdqa 128-128(%rax),%xmm5 + paddd 0-128(%rax),%xmm6 + + movdqa %xmm5,%xmm7 + movdqa %xmm5,%xmm1 + psrld $3,%xmm7 + movdqa %xmm5,%xmm2 + + psrld $7,%xmm1 + movdqa 80-128(%rax),%xmm0 + pslld $14,%xmm2 + pxor %xmm1,%xmm7 + psrld $18-7,%xmm1 + movdqa %xmm0,%xmm4 + pxor %xmm2,%xmm7 + pslld $25-14,%xmm2 + pxor %xmm1,%xmm7 + psrld $10,%xmm0 + movdqa %xmm4,%xmm1 + + psrld $17,%xmm4 + pxor %xmm2,%xmm7 + pslld $13,%xmm1 + paddd %xmm7,%xmm6 + pxor %xmm4,%xmm0 + psrld $19-17,%xmm4 + pxor %xmm1,%xmm0 + pslld $15-13,%xmm1 + pxor %xmm4,%xmm0 + pxor %xmm1,%xmm0 + paddd %xmm0,%xmm6 + movdqa %xmm13,%xmm7 + + movdqa %xmm13,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm13,%xmm1 + pslld $7,%xmm2 + movdqa %xmm6,112-128(%rax) + paddd %xmm8,%xmm6 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd 96(%rbp),%xmm6 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm13,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm13,%xmm4 + pslld $26-21,%xmm2 + pandn %xmm15,%xmm0 + pand %xmm14,%xmm4 + pxor %xmm1,%xmm7 + + + movdqa %xmm9,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm9,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm6 + pxor %xmm4,%xmm0 + movdqa %xmm10,%xmm4 + movdqa %xmm9,%xmm7 + pslld $10,%xmm2 + pxor %xmm9,%xmm4 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm6 + pslld $19-10,%xmm2 + pand %xmm4,%xmm3 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm10,%xmm8 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm3,%xmm8 + paddd %xmm6,%xmm12 + pxor %xmm2,%xmm7 + + paddd %xmm6,%xmm8 + paddd %xmm7,%xmm8 + leaq 256(%rbp),%rbp + movdqa 144-128(%rax),%xmm6 + paddd 16-128(%rax),%xmm5 + + movdqa %xmm6,%xmm7 + movdqa %xmm6,%xmm1 + psrld $3,%xmm7 + movdqa %xmm6,%xmm2 + + psrld $7,%xmm1 + movdqa 96-128(%rax),%xmm0 + pslld $14,%xmm2 + pxor %xmm1,%xmm7 + psrld $18-7,%xmm1 + movdqa %xmm0,%xmm3 + pxor %xmm2,%xmm7 + pslld $25-14,%xmm2 + pxor %xmm1,%xmm7 + psrld $10,%xmm0 + movdqa %xmm3,%xmm1 + + psrld $17,%xmm3 + pxor %xmm2,%xmm7 + pslld $13,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + psrld $19-17,%xmm3 + pxor %xmm1,%xmm0 + pslld $15-13,%xmm1 + pxor %xmm3,%xmm0 + pxor %xmm1,%xmm0 + paddd %xmm0,%xmm5 + movdqa %xmm12,%xmm7 + + movdqa %xmm12,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm12,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,128-128(%rax) + paddd %xmm15,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd -128(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm12,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm12,%xmm3 + pslld $26-21,%xmm2 + pandn %xmm14,%xmm0 + pand %xmm13,%xmm3 + pxor %xmm1,%xmm7 + + + movdqa %xmm8,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm8,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + movdqa %xmm9,%xmm3 + movdqa %xmm8,%xmm7 + pslld $10,%xmm2 + pxor %xmm8,%xmm3 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm3,%xmm4 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm9,%xmm15 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm4,%xmm15 + paddd %xmm5,%xmm11 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm15 + paddd %xmm7,%xmm15 + movdqa 160-128(%rax),%xmm5 + paddd 32-128(%rax),%xmm6 + + movdqa %xmm5,%xmm7 + movdqa %xmm5,%xmm1 + psrld $3,%xmm7 + movdqa %xmm5,%xmm2 + + psrld $7,%xmm1 + movdqa 112-128(%rax),%xmm0 + pslld $14,%xmm2 + pxor %xmm1,%xmm7 + psrld $18-7,%xmm1 + movdqa %xmm0,%xmm4 + pxor %xmm2,%xmm7 + pslld $25-14,%xmm2 + pxor %xmm1,%xmm7 + psrld $10,%xmm0 + movdqa %xmm4,%xmm1 + + psrld $17,%xmm4 + pxor %xmm2,%xmm7 + pslld $13,%xmm1 + paddd %xmm7,%xmm6 + pxor %xmm4,%xmm0 + psrld $19-17,%xmm4 + pxor %xmm1,%xmm0 + pslld $15-13,%xmm1 + pxor %xmm4,%xmm0 + pxor %xmm1,%xmm0 + paddd %xmm0,%xmm6 + movdqa %xmm11,%xmm7 + + movdqa %xmm11,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm11,%xmm1 + pslld $7,%xmm2 + movdqa %xmm6,144-128(%rax) + paddd %xmm14,%xmm6 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd -96(%rbp),%xmm6 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm11,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm11,%xmm4 + pslld $26-21,%xmm2 + pandn %xmm13,%xmm0 + pand %xmm12,%xmm4 + pxor %xmm1,%xmm7 + + + movdqa %xmm15,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm15,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm6 + pxor %xmm4,%xmm0 + movdqa %xmm8,%xmm4 + movdqa %xmm15,%xmm7 + pslld $10,%xmm2 + pxor %xmm15,%xmm4 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm6 + pslld $19-10,%xmm2 + pand %xmm4,%xmm3 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm8,%xmm14 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm3,%xmm14 + paddd %xmm6,%xmm10 + pxor %xmm2,%xmm7 + + paddd %xmm6,%xmm14 + paddd %xmm7,%xmm14 + movdqa 176-128(%rax),%xmm6 + paddd 48-128(%rax),%xmm5 + + movdqa %xmm6,%xmm7 + movdqa %xmm6,%xmm1 + psrld $3,%xmm7 + movdqa %xmm6,%xmm2 + + psrld $7,%xmm1 + movdqa 128-128(%rax),%xmm0 + pslld $14,%xmm2 + pxor %xmm1,%xmm7 + psrld $18-7,%xmm1 + movdqa %xmm0,%xmm3 + pxor %xmm2,%xmm7 + pslld $25-14,%xmm2 + pxor %xmm1,%xmm7 + psrld $10,%xmm0 + movdqa %xmm3,%xmm1 + + psrld $17,%xmm3 + pxor %xmm2,%xmm7 + pslld $13,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + psrld $19-17,%xmm3 + pxor %xmm1,%xmm0 + pslld $15-13,%xmm1 + pxor %xmm3,%xmm0 + pxor %xmm1,%xmm0 + paddd %xmm0,%xmm5 + movdqa %xmm10,%xmm7 + + movdqa %xmm10,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm10,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,160-128(%rax) + paddd %xmm13,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd -64(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm10,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm10,%xmm3 + pslld $26-21,%xmm2 + pandn %xmm12,%xmm0 + pand %xmm11,%xmm3 + pxor %xmm1,%xmm7 + + + movdqa %xmm14,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm14,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + movdqa %xmm15,%xmm3 + movdqa %xmm14,%xmm7 + pslld $10,%xmm2 + pxor %xmm14,%xmm3 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm3,%xmm4 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm15,%xmm13 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm4,%xmm13 + paddd %xmm5,%xmm9 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm13 + paddd %xmm7,%xmm13 + movdqa 192-128(%rax),%xmm5 + paddd 64-128(%rax),%xmm6 + + movdqa %xmm5,%xmm7 + movdqa %xmm5,%xmm1 + psrld $3,%xmm7 + movdqa %xmm5,%xmm2 + + psrld $7,%xmm1 + movdqa 144-128(%rax),%xmm0 + pslld $14,%xmm2 + pxor %xmm1,%xmm7 + psrld $18-7,%xmm1 + movdqa %xmm0,%xmm4 + pxor %xmm2,%xmm7 + pslld $25-14,%xmm2 + pxor %xmm1,%xmm7 + psrld $10,%xmm0 + movdqa %xmm4,%xmm1 + + psrld $17,%xmm4 + pxor %xmm2,%xmm7 + pslld $13,%xmm1 + paddd %xmm7,%xmm6 + pxor %xmm4,%xmm0 + psrld $19-17,%xmm4 + pxor %xmm1,%xmm0 + pslld $15-13,%xmm1 + pxor %xmm4,%xmm0 + pxor %xmm1,%xmm0 + paddd %xmm0,%xmm6 + movdqa %xmm9,%xmm7 + + movdqa %xmm9,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm9,%xmm1 + pslld $7,%xmm2 + movdqa %xmm6,176-128(%rax) + paddd %xmm12,%xmm6 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd -32(%rbp),%xmm6 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm9,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm9,%xmm4 + pslld $26-21,%xmm2 + pandn %xmm11,%xmm0 + pand %xmm10,%xmm4 + pxor %xmm1,%xmm7 + + + movdqa %xmm13,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm13,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm6 + pxor %xmm4,%xmm0 + movdqa %xmm14,%xmm4 + movdqa %xmm13,%xmm7 + pslld $10,%xmm2 + pxor %xmm13,%xmm4 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm6 + pslld $19-10,%xmm2 + pand %xmm4,%xmm3 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm14,%xmm12 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm3,%xmm12 + paddd %xmm6,%xmm8 + pxor %xmm2,%xmm7 + + paddd %xmm6,%xmm12 + paddd %xmm7,%xmm12 + movdqa 208-128(%rax),%xmm6 + paddd 80-128(%rax),%xmm5 + + movdqa %xmm6,%xmm7 + movdqa %xmm6,%xmm1 + psrld $3,%xmm7 + movdqa %xmm6,%xmm2 + + psrld $7,%xmm1 + movdqa 160-128(%rax),%xmm0 + pslld $14,%xmm2 + pxor %xmm1,%xmm7 + psrld $18-7,%xmm1 + movdqa %xmm0,%xmm3 + pxor %xmm2,%xmm7 + pslld $25-14,%xmm2 + pxor %xmm1,%xmm7 + psrld $10,%xmm0 + movdqa %xmm3,%xmm1 + + psrld $17,%xmm3 + pxor %xmm2,%xmm7 + pslld $13,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + psrld $19-17,%xmm3 + pxor %xmm1,%xmm0 + pslld $15-13,%xmm1 + pxor %xmm3,%xmm0 + pxor %xmm1,%xmm0 + paddd %xmm0,%xmm5 + movdqa %xmm8,%xmm7 + + movdqa %xmm8,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm8,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,192-128(%rax) + paddd %xmm11,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd 0(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm8,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm8,%xmm3 + pslld $26-21,%xmm2 + pandn %xmm10,%xmm0 + pand %xmm9,%xmm3 + pxor %xmm1,%xmm7 + + + movdqa %xmm12,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm12,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + movdqa %xmm13,%xmm3 + movdqa %xmm12,%xmm7 + pslld $10,%xmm2 + pxor %xmm12,%xmm3 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm3,%xmm4 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm13,%xmm11 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm4,%xmm11 + paddd %xmm5,%xmm15 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm11 + paddd %xmm7,%xmm11 + movdqa 224-128(%rax),%xmm5 + paddd 96-128(%rax),%xmm6 + + movdqa %xmm5,%xmm7 + movdqa %xmm5,%xmm1 + psrld $3,%xmm7 + movdqa %xmm5,%xmm2 + + psrld $7,%xmm1 + movdqa 176-128(%rax),%xmm0 + pslld $14,%xmm2 + pxor %xmm1,%xmm7 + psrld $18-7,%xmm1 + movdqa %xmm0,%xmm4 + pxor %xmm2,%xmm7 + pslld $25-14,%xmm2 + pxor %xmm1,%xmm7 + psrld $10,%xmm0 + movdqa %xmm4,%xmm1 + + psrld $17,%xmm4 + pxor %xmm2,%xmm7 + pslld $13,%xmm1 + paddd %xmm7,%xmm6 + pxor %xmm4,%xmm0 + psrld $19-17,%xmm4 + pxor %xmm1,%xmm0 + pslld $15-13,%xmm1 + pxor %xmm4,%xmm0 + pxor %xmm1,%xmm0 + paddd %xmm0,%xmm6 + movdqa %xmm15,%xmm7 + + movdqa %xmm15,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm15,%xmm1 + pslld $7,%xmm2 + movdqa %xmm6,208-128(%rax) + paddd %xmm10,%xmm6 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd 32(%rbp),%xmm6 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm15,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm15,%xmm4 + pslld $26-21,%xmm2 + pandn %xmm9,%xmm0 + pand %xmm8,%xmm4 + pxor %xmm1,%xmm7 + + + movdqa %xmm11,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm11,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm6 + pxor %xmm4,%xmm0 + movdqa %xmm12,%xmm4 + movdqa %xmm11,%xmm7 + pslld $10,%xmm2 + pxor %xmm11,%xmm4 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm6 + pslld $19-10,%xmm2 + pand %xmm4,%xmm3 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm12,%xmm10 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm3,%xmm10 + paddd %xmm6,%xmm14 + pxor %xmm2,%xmm7 + + paddd %xmm6,%xmm10 + paddd %xmm7,%xmm10 + movdqa 240-128(%rax),%xmm6 + paddd 112-128(%rax),%xmm5 + + movdqa %xmm6,%xmm7 + movdqa %xmm6,%xmm1 + psrld $3,%xmm7 + movdqa %xmm6,%xmm2 + + psrld $7,%xmm1 + movdqa 192-128(%rax),%xmm0 + pslld $14,%xmm2 + pxor %xmm1,%xmm7 + psrld $18-7,%xmm1 + movdqa %xmm0,%xmm3 + pxor %xmm2,%xmm7 + pslld $25-14,%xmm2 + pxor %xmm1,%xmm7 + psrld $10,%xmm0 + movdqa %xmm3,%xmm1 + + psrld $17,%xmm3 + pxor %xmm2,%xmm7 + pslld $13,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + psrld $19-17,%xmm3 + pxor %xmm1,%xmm0 + pslld $15-13,%xmm1 + pxor %xmm3,%xmm0 + pxor %xmm1,%xmm0 + paddd %xmm0,%xmm5 + movdqa %xmm14,%xmm7 + + movdqa %xmm14,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm14,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,224-128(%rax) + paddd %xmm9,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd 64(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm14,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm14,%xmm3 + pslld $26-21,%xmm2 + pandn %xmm8,%xmm0 + pand %xmm15,%xmm3 + pxor %xmm1,%xmm7 + + + movdqa %xmm10,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm10,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + movdqa %xmm11,%xmm3 + movdqa %xmm10,%xmm7 + pslld $10,%xmm2 + pxor %xmm10,%xmm3 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm3,%xmm4 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm11,%xmm9 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm4,%xmm9 + paddd %xmm5,%xmm13 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm9 + paddd %xmm7,%xmm9 + movdqa 0-128(%rax),%xmm5 + paddd 128-128(%rax),%xmm6 + + movdqa %xmm5,%xmm7 + movdqa %xmm5,%xmm1 + psrld $3,%xmm7 + movdqa %xmm5,%xmm2 + + psrld $7,%xmm1 + movdqa 208-128(%rax),%xmm0 + pslld $14,%xmm2 + pxor %xmm1,%xmm7 + psrld $18-7,%xmm1 + movdqa %xmm0,%xmm4 + pxor %xmm2,%xmm7 + pslld $25-14,%xmm2 + pxor %xmm1,%xmm7 + psrld $10,%xmm0 + movdqa %xmm4,%xmm1 + + psrld $17,%xmm4 + pxor %xmm2,%xmm7 + pslld $13,%xmm1 + paddd %xmm7,%xmm6 + pxor %xmm4,%xmm0 + psrld $19-17,%xmm4 + pxor %xmm1,%xmm0 + pslld $15-13,%xmm1 + pxor %xmm4,%xmm0 + pxor %xmm1,%xmm0 + paddd %xmm0,%xmm6 + movdqa %xmm13,%xmm7 + + movdqa %xmm13,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm13,%xmm1 + pslld $7,%xmm2 + movdqa %xmm6,240-128(%rax) + paddd %xmm8,%xmm6 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd 96(%rbp),%xmm6 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm13,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm13,%xmm4 + pslld $26-21,%xmm2 + pandn %xmm15,%xmm0 + pand %xmm14,%xmm4 + pxor %xmm1,%xmm7 + + + movdqa %xmm9,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm9,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm6 + pxor %xmm4,%xmm0 + movdqa %xmm10,%xmm4 + movdqa %xmm9,%xmm7 + pslld $10,%xmm2 + pxor %xmm9,%xmm4 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm6 + pslld $19-10,%xmm2 + pand %xmm4,%xmm3 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm10,%xmm8 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm3,%xmm8 + paddd %xmm6,%xmm12 + pxor %xmm2,%xmm7 + + paddd %xmm6,%xmm8 + paddd %xmm7,%xmm8 + leaq 256(%rbp),%rbp + decl %ecx + jnz .Loop_16_xx + + movl $1,%ecx + leaq K256+128(%rip),%rbp + + movdqa (%rbx),%xmm7 + cmpl 0(%rbx),%ecx + pxor %xmm0,%xmm0 + cmovgeq %rbp,%r8 + cmpl 4(%rbx),%ecx + movdqa %xmm7,%xmm6 + cmovgeq %rbp,%r9 + cmpl 8(%rbx),%ecx + pcmpgtd %xmm0,%xmm6 + cmovgeq %rbp,%r10 + cmpl 12(%rbx),%ecx + paddd %xmm6,%xmm7 + cmovgeq %rbp,%r11 + + movdqu 0-128(%rdi),%xmm0 + pand %xmm6,%xmm8 + movdqu 32-128(%rdi),%xmm1 + pand %xmm6,%xmm9 + movdqu 64-128(%rdi),%xmm2 + pand %xmm6,%xmm10 + movdqu 96-128(%rdi),%xmm5 + pand %xmm6,%xmm11 + paddd %xmm0,%xmm8 + movdqu 128-128(%rdi),%xmm0 + pand %xmm6,%xmm12 + paddd %xmm1,%xmm9 + movdqu 160-128(%rdi),%xmm1 + pand %xmm6,%xmm13 + paddd %xmm2,%xmm10 + movdqu 192-128(%rdi),%xmm2 + pand %xmm6,%xmm14 + paddd %xmm5,%xmm11 + movdqu 224-128(%rdi),%xmm5 + pand %xmm6,%xmm15 + paddd %xmm0,%xmm12 + paddd %xmm1,%xmm13 + movdqu %xmm8,0-128(%rdi) + paddd %xmm2,%xmm14 + movdqu %xmm9,32-128(%rdi) + paddd %xmm5,%xmm15 + movdqu %xmm10,64-128(%rdi) + movdqu %xmm11,96-128(%rdi) + movdqu %xmm12,128-128(%rdi) + movdqu %xmm13,160-128(%rdi) + movdqu %xmm14,192-128(%rdi) + movdqu %xmm15,224-128(%rdi) + + movdqa %xmm7,(%rbx) + movdqa .Lpbswap(%rip),%xmm6 + decl %edx + jnz .Loop + + movl 280(%rsp),%edx + leaq 16(%rdi),%rdi + leaq 64(%rsi),%rsi + decl %edx + jnz .Loop_grande + +.Ldone: + movq 272(%rsp),%rax +.cfi_def_cfa %rax,8 + movq -16(%rax),%rbp +.cfi_restore %rbp + movq -8(%rax),%rbx +.cfi_restore %rbx + leaq (%rax),%rsp +.cfi_def_cfa_register %rsp +.Lepilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size sha256_multi_block,.-sha256_multi_block +.type sha256_multi_block_shaext,@function +.align 32 +sha256_multi_block_shaext: +.cfi_startproc +_shaext_shortcut: + movq %rsp,%rax +.cfi_def_cfa_register %rax + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + subq $288,%rsp + shll $1,%edx + andq $-256,%rsp + leaq 128(%rdi),%rdi + movq %rax,272(%rsp) +.Lbody_shaext: + leaq 256(%rsp),%rbx + leaq K256_shaext+128(%rip),%rbp + +.Loop_grande_shaext: + movl %edx,280(%rsp) + xorl %edx,%edx + movq 0(%rsi),%r8 + movl 8(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,0(%rbx) + cmovleq %rsp,%r8 + movq 16(%rsi),%r9 + movl 24(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,4(%rbx) + cmovleq %rsp,%r9 + testl %edx,%edx + jz .Ldone_shaext + + movq 0-128(%rdi),%xmm12 + movq 32-128(%rdi),%xmm4 + movq 64-128(%rdi),%xmm13 + movq 96-128(%rdi),%xmm5 + movq 128-128(%rdi),%xmm8 + movq 160-128(%rdi),%xmm9 + movq 192-128(%rdi),%xmm10 + movq 224-128(%rdi),%xmm11 + + punpckldq %xmm4,%xmm12 + punpckldq %xmm5,%xmm13 + punpckldq %xmm9,%xmm8 + punpckldq %xmm11,%xmm10 + movdqa K256_shaext-16(%rip),%xmm3 + + movdqa %xmm12,%xmm14 + movdqa %xmm13,%xmm15 + punpcklqdq %xmm8,%xmm12 + punpcklqdq %xmm10,%xmm13 + punpckhqdq %xmm8,%xmm14 + punpckhqdq %xmm10,%xmm15 + + pshufd $27,%xmm12,%xmm12 + pshufd $27,%xmm13,%xmm13 + pshufd $27,%xmm14,%xmm14 + pshufd $27,%xmm15,%xmm15 + jmp .Loop_shaext + +.align 32 +.Loop_shaext: + movdqu 0(%r8),%xmm4 + movdqu 0(%r9),%xmm8 + movdqu 16(%r8),%xmm5 + movdqu 16(%r9),%xmm9 + movdqu 32(%r8),%xmm6 +.byte 102,15,56,0,227 + movdqu 32(%r9),%xmm10 +.byte 102,68,15,56,0,195 + movdqu 48(%r8),%xmm7 + leaq 64(%r8),%r8 + movdqu 48(%r9),%xmm11 + leaq 64(%r9),%r9 + + movdqa 0-128(%rbp),%xmm0 +.byte 102,15,56,0,235 + paddd %xmm4,%xmm0 + pxor %xmm12,%xmm4 + movdqa %xmm0,%xmm1 + movdqa 0-128(%rbp),%xmm2 +.byte 102,68,15,56,0,203 + paddd %xmm8,%xmm2 + movdqa %xmm13,80(%rsp) +.byte 69,15,56,203,236 + pxor %xmm14,%xmm8 + movdqa %xmm2,%xmm0 + movdqa %xmm15,112(%rsp) +.byte 69,15,56,203,254 + pshufd $0x0e,%xmm1,%xmm0 + pxor %xmm12,%xmm4 + movdqa %xmm12,64(%rsp) +.byte 69,15,56,203,229 + pshufd $0x0e,%xmm2,%xmm0 + pxor %xmm14,%xmm8 + movdqa %xmm14,96(%rsp) + movdqa 16-128(%rbp),%xmm1 + paddd %xmm5,%xmm1 +.byte 102,15,56,0,243 +.byte 69,15,56,203,247 + + movdqa %xmm1,%xmm0 + movdqa 16-128(%rbp),%xmm2 + paddd %xmm9,%xmm2 +.byte 69,15,56,203,236 + movdqa %xmm2,%xmm0 + prefetcht0 127(%r8) +.byte 102,15,56,0,251 +.byte 102,68,15,56,0,211 + prefetcht0 127(%r9) +.byte 69,15,56,203,254 + pshufd $0x0e,%xmm1,%xmm0 +.byte 102,68,15,56,0,219 +.byte 15,56,204,229 +.byte 69,15,56,203,229 + pshufd $0x0e,%xmm2,%xmm0 + movdqa 32-128(%rbp),%xmm1 + paddd %xmm6,%xmm1 +.byte 69,15,56,203,247 + + movdqa %xmm1,%xmm0 + movdqa 32-128(%rbp),%xmm2 + paddd %xmm10,%xmm2 +.byte 69,15,56,203,236 +.byte 69,15,56,204,193 + movdqa %xmm2,%xmm0 + movdqa %xmm7,%xmm3 +.byte 69,15,56,203,254 + pshufd $0x0e,%xmm1,%xmm0 +.byte 102,15,58,15,222,4 + paddd %xmm3,%xmm4 + movdqa %xmm11,%xmm3 +.byte 102,65,15,58,15,218,4 +.byte 15,56,204,238 +.byte 69,15,56,203,229 + pshufd $0x0e,%xmm2,%xmm0 + movdqa 48-128(%rbp),%xmm1 + paddd %xmm7,%xmm1 +.byte 69,15,56,203,247 +.byte 69,15,56,204,202 + + movdqa %xmm1,%xmm0 + movdqa 48-128(%rbp),%xmm2 + paddd %xmm3,%xmm8 + paddd %xmm11,%xmm2 +.byte 15,56,205,231 +.byte 69,15,56,203,236 + movdqa %xmm2,%xmm0 + movdqa %xmm4,%xmm3 +.byte 102,15,58,15,223,4 +.byte 69,15,56,203,254 +.byte 69,15,56,205,195 + pshufd $0x0e,%xmm1,%xmm0 + paddd %xmm3,%xmm5 + movdqa %xmm8,%xmm3 +.byte 102,65,15,58,15,219,4 +.byte 15,56,204,247 +.byte 69,15,56,203,229 + pshufd $0x0e,%xmm2,%xmm0 + movdqa 64-128(%rbp),%xmm1 + paddd %xmm4,%xmm1 +.byte 69,15,56,203,247 +.byte 69,15,56,204,211 + movdqa %xmm1,%xmm0 + movdqa 64-128(%rbp),%xmm2 + paddd %xmm3,%xmm9 + paddd %xmm8,%xmm2 +.byte 15,56,205,236 +.byte 69,15,56,203,236 + movdqa %xmm2,%xmm0 + movdqa %xmm5,%xmm3 +.byte 102,15,58,15,220,4 +.byte 69,15,56,203,254 +.byte 69,15,56,205,200 + pshufd $0x0e,%xmm1,%xmm0 + paddd %xmm3,%xmm6 + movdqa %xmm9,%xmm3 +.byte 102,65,15,58,15,216,4 +.byte 15,56,204,252 +.byte 69,15,56,203,229 + pshufd $0x0e,%xmm2,%xmm0 + movdqa 80-128(%rbp),%xmm1 + paddd %xmm5,%xmm1 +.byte 69,15,56,203,247 +.byte 69,15,56,204,216 + movdqa %xmm1,%xmm0 + movdqa 80-128(%rbp),%xmm2 + paddd %xmm3,%xmm10 + paddd %xmm9,%xmm2 +.byte 15,56,205,245 +.byte 69,15,56,203,236 + movdqa %xmm2,%xmm0 + movdqa %xmm6,%xmm3 +.byte 102,15,58,15,221,4 +.byte 69,15,56,203,254 +.byte 69,15,56,205,209 + pshufd $0x0e,%xmm1,%xmm0 + paddd %xmm3,%xmm7 + movdqa %xmm10,%xmm3 +.byte 102,65,15,58,15,217,4 +.byte 15,56,204,229 +.byte 69,15,56,203,229 + pshufd $0x0e,%xmm2,%xmm0 + movdqa 96-128(%rbp),%xmm1 + paddd %xmm6,%xmm1 +.byte 69,15,56,203,247 +.byte 69,15,56,204,193 + movdqa %xmm1,%xmm0 + movdqa 96-128(%rbp),%xmm2 + paddd %xmm3,%xmm11 + paddd %xmm10,%xmm2 +.byte 15,56,205,254 +.byte 69,15,56,203,236 + movdqa %xmm2,%xmm0 + movdqa %xmm7,%xmm3 +.byte 102,15,58,15,222,4 +.byte 69,15,56,203,254 +.byte 69,15,56,205,218 + pshufd $0x0e,%xmm1,%xmm0 + paddd %xmm3,%xmm4 + movdqa %xmm11,%xmm3 +.byte 102,65,15,58,15,218,4 +.byte 15,56,204,238 +.byte 69,15,56,203,229 + pshufd $0x0e,%xmm2,%xmm0 + movdqa 112-128(%rbp),%xmm1 + paddd %xmm7,%xmm1 +.byte 69,15,56,203,247 +.byte 69,15,56,204,202 + movdqa %xmm1,%xmm0 + movdqa 112-128(%rbp),%xmm2 + paddd %xmm3,%xmm8 + paddd %xmm11,%xmm2 +.byte 15,56,205,231 +.byte 69,15,56,203,236 + movdqa %xmm2,%xmm0 + movdqa %xmm4,%xmm3 +.byte 102,15,58,15,223,4 +.byte 69,15,56,203,254 +.byte 69,15,56,205,195 + pshufd $0x0e,%xmm1,%xmm0 + paddd %xmm3,%xmm5 + movdqa %xmm8,%xmm3 +.byte 102,65,15,58,15,219,4 +.byte 15,56,204,247 +.byte 69,15,56,203,229 + pshufd $0x0e,%xmm2,%xmm0 + movdqa 128-128(%rbp),%xmm1 + paddd %xmm4,%xmm1 +.byte 69,15,56,203,247 +.byte 69,15,56,204,211 + movdqa %xmm1,%xmm0 + movdqa 128-128(%rbp),%xmm2 + paddd %xmm3,%xmm9 + paddd %xmm8,%xmm2 +.byte 15,56,205,236 +.byte 69,15,56,203,236 + movdqa %xmm2,%xmm0 + movdqa %xmm5,%xmm3 +.byte 102,15,58,15,220,4 +.byte 69,15,56,203,254 +.byte 69,15,56,205,200 + pshufd $0x0e,%xmm1,%xmm0 + paddd %xmm3,%xmm6 + movdqa %xmm9,%xmm3 +.byte 102,65,15,58,15,216,4 +.byte 15,56,204,252 +.byte 69,15,56,203,229 + pshufd $0x0e,%xmm2,%xmm0 + movdqa 144-128(%rbp),%xmm1 + paddd %xmm5,%xmm1 +.byte 69,15,56,203,247 +.byte 69,15,56,204,216 + movdqa %xmm1,%xmm0 + movdqa 144-128(%rbp),%xmm2 + paddd %xmm3,%xmm10 + paddd %xmm9,%xmm2 +.byte 15,56,205,245 +.byte 69,15,56,203,236 + movdqa %xmm2,%xmm0 + movdqa %xmm6,%xmm3 +.byte 102,15,58,15,221,4 +.byte 69,15,56,203,254 +.byte 69,15,56,205,209 + pshufd $0x0e,%xmm1,%xmm0 + paddd %xmm3,%xmm7 + movdqa %xmm10,%xmm3 +.byte 102,65,15,58,15,217,4 +.byte 15,56,204,229 +.byte 69,15,56,203,229 + pshufd $0x0e,%xmm2,%xmm0 + movdqa 160-128(%rbp),%xmm1 + paddd %xmm6,%xmm1 +.byte 69,15,56,203,247 +.byte 69,15,56,204,193 + movdqa %xmm1,%xmm0 + movdqa 160-128(%rbp),%xmm2 + paddd %xmm3,%xmm11 + paddd %xmm10,%xmm2 +.byte 15,56,205,254 +.byte 69,15,56,203,236 + movdqa %xmm2,%xmm0 + movdqa %xmm7,%xmm3 +.byte 102,15,58,15,222,4 +.byte 69,15,56,203,254 +.byte 69,15,56,205,218 + pshufd $0x0e,%xmm1,%xmm0 + paddd %xmm3,%xmm4 + movdqa %xmm11,%xmm3 +.byte 102,65,15,58,15,218,4 +.byte 15,56,204,238 +.byte 69,15,56,203,229 + pshufd $0x0e,%xmm2,%xmm0 + movdqa 176-128(%rbp),%xmm1 + paddd %xmm7,%xmm1 +.byte 69,15,56,203,247 +.byte 69,15,56,204,202 + movdqa %xmm1,%xmm0 + movdqa 176-128(%rbp),%xmm2 + paddd %xmm3,%xmm8 + paddd %xmm11,%xmm2 +.byte 15,56,205,231 +.byte 69,15,56,203,236 + movdqa %xmm2,%xmm0 + movdqa %xmm4,%xmm3 +.byte 102,15,58,15,223,4 +.byte 69,15,56,203,254 +.byte 69,15,56,205,195 + pshufd $0x0e,%xmm1,%xmm0 + paddd %xmm3,%xmm5 + movdqa %xmm8,%xmm3 +.byte 102,65,15,58,15,219,4 +.byte 15,56,204,247 +.byte 69,15,56,203,229 + pshufd $0x0e,%xmm2,%xmm0 + movdqa 192-128(%rbp),%xmm1 + paddd %xmm4,%xmm1 +.byte 69,15,56,203,247 +.byte 69,15,56,204,211 + movdqa %xmm1,%xmm0 + movdqa 192-128(%rbp),%xmm2 + paddd %xmm3,%xmm9 + paddd %xmm8,%xmm2 +.byte 15,56,205,236 +.byte 69,15,56,203,236 + movdqa %xmm2,%xmm0 + movdqa %xmm5,%xmm3 +.byte 102,15,58,15,220,4 +.byte 69,15,56,203,254 +.byte 69,15,56,205,200 + pshufd $0x0e,%xmm1,%xmm0 + paddd %xmm3,%xmm6 + movdqa %xmm9,%xmm3 +.byte 102,65,15,58,15,216,4 +.byte 15,56,204,252 +.byte 69,15,56,203,229 + pshufd $0x0e,%xmm2,%xmm0 + movdqa 208-128(%rbp),%xmm1 + paddd %xmm5,%xmm1 +.byte 69,15,56,203,247 +.byte 69,15,56,204,216 + movdqa %xmm1,%xmm0 + movdqa 208-128(%rbp),%xmm2 + paddd %xmm3,%xmm10 + paddd %xmm9,%xmm2 +.byte 15,56,205,245 +.byte 69,15,56,203,236 + movdqa %xmm2,%xmm0 + movdqa %xmm6,%xmm3 +.byte 102,15,58,15,221,4 +.byte 69,15,56,203,254 +.byte 69,15,56,205,209 + pshufd $0x0e,%xmm1,%xmm0 + paddd %xmm3,%xmm7 + movdqa %xmm10,%xmm3 +.byte 102,65,15,58,15,217,4 + nop +.byte 69,15,56,203,229 + pshufd $0x0e,%xmm2,%xmm0 + movdqa 224-128(%rbp),%xmm1 + paddd %xmm6,%xmm1 +.byte 69,15,56,203,247 + + movdqa %xmm1,%xmm0 + movdqa 224-128(%rbp),%xmm2 + paddd %xmm3,%xmm11 + paddd %xmm10,%xmm2 +.byte 15,56,205,254 + nop +.byte 69,15,56,203,236 + movdqa %xmm2,%xmm0 + movl $1,%ecx + pxor %xmm6,%xmm6 +.byte 69,15,56,203,254 +.byte 69,15,56,205,218 + pshufd $0x0e,%xmm1,%xmm0 + movdqa 240-128(%rbp),%xmm1 + paddd %xmm7,%xmm1 + movq (%rbx),%xmm7 + nop +.byte 69,15,56,203,229 + pshufd $0x0e,%xmm2,%xmm0 + movdqa 240-128(%rbp),%xmm2 + paddd %xmm11,%xmm2 +.byte 69,15,56,203,247 + + movdqa %xmm1,%xmm0 + cmpl 0(%rbx),%ecx + cmovgeq %rsp,%r8 + cmpl 4(%rbx),%ecx + cmovgeq %rsp,%r9 + pshufd $0x00,%xmm7,%xmm9 +.byte 69,15,56,203,236 + movdqa %xmm2,%xmm0 + pshufd $0x55,%xmm7,%xmm10 + movdqa %xmm7,%xmm11 +.byte 69,15,56,203,254 + pshufd $0x0e,%xmm1,%xmm0 + pcmpgtd %xmm6,%xmm9 + pcmpgtd %xmm6,%xmm10 +.byte 69,15,56,203,229 + pshufd $0x0e,%xmm2,%xmm0 + pcmpgtd %xmm6,%xmm11 + movdqa K256_shaext-16(%rip),%xmm3 +.byte 69,15,56,203,247 + + pand %xmm9,%xmm13 + pand %xmm10,%xmm15 + pand %xmm9,%xmm12 + pand %xmm10,%xmm14 + paddd %xmm7,%xmm11 + + paddd 80(%rsp),%xmm13 + paddd 112(%rsp),%xmm15 + paddd 64(%rsp),%xmm12 + paddd 96(%rsp),%xmm14 + + movq %xmm11,(%rbx) + decl %edx + jnz .Loop_shaext + + movl 280(%rsp),%edx + + pshufd $27,%xmm12,%xmm12 + pshufd $27,%xmm13,%xmm13 + pshufd $27,%xmm14,%xmm14 + pshufd $27,%xmm15,%xmm15 + + movdqa %xmm12,%xmm5 + movdqa %xmm13,%xmm6 + punpckldq %xmm14,%xmm12 + punpckhdq %xmm14,%xmm5 + punpckldq %xmm15,%xmm13 + punpckhdq %xmm15,%xmm6 + + movq %xmm12,0-128(%rdi) + psrldq $8,%xmm12 + movq %xmm5,128-128(%rdi) + psrldq $8,%xmm5 + movq %xmm12,32-128(%rdi) + movq %xmm5,160-128(%rdi) + + movq %xmm13,64-128(%rdi) + psrldq $8,%xmm13 + movq %xmm6,192-128(%rdi) + psrldq $8,%xmm6 + movq %xmm13,96-128(%rdi) + movq %xmm6,224-128(%rdi) + + leaq 8(%rdi),%rdi + leaq 32(%rsi),%rsi + decl %edx + jnz .Loop_grande_shaext + +.Ldone_shaext: + + movq -16(%rax),%rbp +.cfi_restore %rbp + movq -8(%rax),%rbx +.cfi_restore %rbx + leaq (%rax),%rsp +.cfi_def_cfa_register %rsp +.Lepilogue_shaext: + .byte 0xf3,0xc3 +.cfi_endproc +.size sha256_multi_block_shaext,.-sha256_multi_block_shaext +.type sha256_multi_block_avx,@function +.align 32 +sha256_multi_block_avx: +.cfi_startproc +_avx_shortcut: + shrq $32,%rcx + cmpl $2,%edx + jb .Lavx + testl $32,%ecx + jnz _avx2_shortcut + jmp .Lavx +.align 32 +.Lavx: + movq %rsp,%rax +.cfi_def_cfa_register %rax + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + subq $288,%rsp + andq $-256,%rsp + movq %rax,272(%rsp) +.cfi_escape 0x0f,0x06,0x77,0x90,0x02,0x06,0x23,0x08 +.Lbody_avx: + leaq K256+128(%rip),%rbp + leaq 256(%rsp),%rbx + leaq 128(%rdi),%rdi + +.Loop_grande_avx: + movl %edx,280(%rsp) + xorl %edx,%edx + movq 0(%rsi),%r8 + movl 8(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,0(%rbx) + cmovleq %rbp,%r8 + movq 16(%rsi),%r9 + movl 24(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,4(%rbx) + cmovleq %rbp,%r9 + movq 32(%rsi),%r10 + movl 40(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,8(%rbx) + cmovleq %rbp,%r10 + movq 48(%rsi),%r11 + movl 56(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,12(%rbx) + cmovleq %rbp,%r11 + testl %edx,%edx + jz .Ldone_avx + + vmovdqu 0-128(%rdi),%xmm8 + leaq 128(%rsp),%rax + vmovdqu 32-128(%rdi),%xmm9 + vmovdqu 64-128(%rdi),%xmm10 + vmovdqu 96-128(%rdi),%xmm11 + vmovdqu 128-128(%rdi),%xmm12 + vmovdqu 160-128(%rdi),%xmm13 + vmovdqu 192-128(%rdi),%xmm14 + vmovdqu 224-128(%rdi),%xmm15 + vmovdqu .Lpbswap(%rip),%xmm6 + jmp .Loop_avx + +.align 32 +.Loop_avx: + vpxor %xmm9,%xmm10,%xmm4 + vmovd 0(%r8),%xmm5 + vmovd 0(%r9),%xmm0 + vpinsrd $1,0(%r10),%xmm5,%xmm5 + vpinsrd $1,0(%r11),%xmm0,%xmm0 + vpunpckldq %xmm0,%xmm5,%xmm5 + vpshufb %xmm6,%xmm5,%xmm5 + vpsrld $6,%xmm12,%xmm7 + vpslld $26,%xmm12,%xmm2 + vmovdqu %xmm5,0-128(%rax) + vpaddd %xmm15,%xmm5,%xmm5 + + vpsrld $11,%xmm12,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm12,%xmm2 + vpaddd -128(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm12,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm12,%xmm2 + vpandn %xmm14,%xmm12,%xmm0 + vpand %xmm13,%xmm12,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm8,%xmm15 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm8,%xmm1 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm8,%xmm9,%xmm3 + + vpxor %xmm1,%xmm15,%xmm15 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm8,%xmm1 + + vpslld $19,%xmm8,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm3,%xmm4,%xmm4 + + vpxor %xmm1,%xmm15,%xmm7 + + vpsrld $22,%xmm8,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm8,%xmm2 + vpxor %xmm4,%xmm9,%xmm15 + vpaddd %xmm5,%xmm11,%xmm11 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm15,%xmm15 + vpaddd %xmm7,%xmm15,%xmm15 + vmovd 4(%r8),%xmm5 + vmovd 4(%r9),%xmm0 + vpinsrd $1,4(%r10),%xmm5,%xmm5 + vpinsrd $1,4(%r11),%xmm0,%xmm0 + vpunpckldq %xmm0,%xmm5,%xmm5 + vpshufb %xmm6,%xmm5,%xmm5 + vpsrld $6,%xmm11,%xmm7 + vpslld $26,%xmm11,%xmm2 + vmovdqu %xmm5,16-128(%rax) + vpaddd %xmm14,%xmm5,%xmm5 + + vpsrld $11,%xmm11,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm11,%xmm2 + vpaddd -96(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm11,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm11,%xmm2 + vpandn %xmm13,%xmm11,%xmm0 + vpand %xmm12,%xmm11,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm15,%xmm14 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm15,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm15,%xmm8,%xmm4 + + vpxor %xmm1,%xmm14,%xmm14 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm15,%xmm1 + + vpslld $19,%xmm15,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm4,%xmm3,%xmm3 + + vpxor %xmm1,%xmm14,%xmm7 + + vpsrld $22,%xmm15,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm15,%xmm2 + vpxor %xmm3,%xmm8,%xmm14 + vpaddd %xmm5,%xmm10,%xmm10 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm14,%xmm14 + vpaddd %xmm7,%xmm14,%xmm14 + vmovd 8(%r8),%xmm5 + vmovd 8(%r9),%xmm0 + vpinsrd $1,8(%r10),%xmm5,%xmm5 + vpinsrd $1,8(%r11),%xmm0,%xmm0 + vpunpckldq %xmm0,%xmm5,%xmm5 + vpshufb %xmm6,%xmm5,%xmm5 + vpsrld $6,%xmm10,%xmm7 + vpslld $26,%xmm10,%xmm2 + vmovdqu %xmm5,32-128(%rax) + vpaddd %xmm13,%xmm5,%xmm5 + + vpsrld $11,%xmm10,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm10,%xmm2 + vpaddd -64(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm10,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm10,%xmm2 + vpandn %xmm12,%xmm10,%xmm0 + vpand %xmm11,%xmm10,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm14,%xmm13 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm14,%xmm1 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm14,%xmm15,%xmm3 + + vpxor %xmm1,%xmm13,%xmm13 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm14,%xmm1 + + vpslld $19,%xmm14,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm3,%xmm4,%xmm4 + + vpxor %xmm1,%xmm13,%xmm7 + + vpsrld $22,%xmm14,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm14,%xmm2 + vpxor %xmm4,%xmm15,%xmm13 + vpaddd %xmm5,%xmm9,%xmm9 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm13,%xmm13 + vpaddd %xmm7,%xmm13,%xmm13 + vmovd 12(%r8),%xmm5 + vmovd 12(%r9),%xmm0 + vpinsrd $1,12(%r10),%xmm5,%xmm5 + vpinsrd $1,12(%r11),%xmm0,%xmm0 + vpunpckldq %xmm0,%xmm5,%xmm5 + vpshufb %xmm6,%xmm5,%xmm5 + vpsrld $6,%xmm9,%xmm7 + vpslld $26,%xmm9,%xmm2 + vmovdqu %xmm5,48-128(%rax) + vpaddd %xmm12,%xmm5,%xmm5 + + vpsrld $11,%xmm9,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm9,%xmm2 + vpaddd -32(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm9,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm9,%xmm2 + vpandn %xmm11,%xmm9,%xmm0 + vpand %xmm10,%xmm9,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm13,%xmm12 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm13,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm13,%xmm14,%xmm4 + + vpxor %xmm1,%xmm12,%xmm12 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm13,%xmm1 + + vpslld $19,%xmm13,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm4,%xmm3,%xmm3 + + vpxor %xmm1,%xmm12,%xmm7 + + vpsrld $22,%xmm13,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm13,%xmm2 + vpxor %xmm3,%xmm14,%xmm12 + vpaddd %xmm5,%xmm8,%xmm8 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm12,%xmm12 + vpaddd %xmm7,%xmm12,%xmm12 + vmovd 16(%r8),%xmm5 + vmovd 16(%r9),%xmm0 + vpinsrd $1,16(%r10),%xmm5,%xmm5 + vpinsrd $1,16(%r11),%xmm0,%xmm0 + vpunpckldq %xmm0,%xmm5,%xmm5 + vpshufb %xmm6,%xmm5,%xmm5 + vpsrld $6,%xmm8,%xmm7 + vpslld $26,%xmm8,%xmm2 + vmovdqu %xmm5,64-128(%rax) + vpaddd %xmm11,%xmm5,%xmm5 + + vpsrld $11,%xmm8,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm8,%xmm2 + vpaddd 0(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm8,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm8,%xmm2 + vpandn %xmm10,%xmm8,%xmm0 + vpand %xmm9,%xmm8,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm12,%xmm11 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm12,%xmm1 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm12,%xmm13,%xmm3 + + vpxor %xmm1,%xmm11,%xmm11 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm12,%xmm1 + + vpslld $19,%xmm12,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm3,%xmm4,%xmm4 + + vpxor %xmm1,%xmm11,%xmm7 + + vpsrld $22,%xmm12,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm12,%xmm2 + vpxor %xmm4,%xmm13,%xmm11 + vpaddd %xmm5,%xmm15,%xmm15 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm11,%xmm11 + vpaddd %xmm7,%xmm11,%xmm11 + vmovd 20(%r8),%xmm5 + vmovd 20(%r9),%xmm0 + vpinsrd $1,20(%r10),%xmm5,%xmm5 + vpinsrd $1,20(%r11),%xmm0,%xmm0 + vpunpckldq %xmm0,%xmm5,%xmm5 + vpshufb %xmm6,%xmm5,%xmm5 + vpsrld $6,%xmm15,%xmm7 + vpslld $26,%xmm15,%xmm2 + vmovdqu %xmm5,80-128(%rax) + vpaddd %xmm10,%xmm5,%xmm5 + + vpsrld $11,%xmm15,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm15,%xmm2 + vpaddd 32(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm15,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm15,%xmm2 + vpandn %xmm9,%xmm15,%xmm0 + vpand %xmm8,%xmm15,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm11,%xmm10 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm11,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm11,%xmm12,%xmm4 + + vpxor %xmm1,%xmm10,%xmm10 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm11,%xmm1 + + vpslld $19,%xmm11,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm4,%xmm3,%xmm3 + + vpxor %xmm1,%xmm10,%xmm7 + + vpsrld $22,%xmm11,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm11,%xmm2 + vpxor %xmm3,%xmm12,%xmm10 + vpaddd %xmm5,%xmm14,%xmm14 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm10,%xmm10 + vpaddd %xmm7,%xmm10,%xmm10 + vmovd 24(%r8),%xmm5 + vmovd 24(%r9),%xmm0 + vpinsrd $1,24(%r10),%xmm5,%xmm5 + vpinsrd $1,24(%r11),%xmm0,%xmm0 + vpunpckldq %xmm0,%xmm5,%xmm5 + vpshufb %xmm6,%xmm5,%xmm5 + vpsrld $6,%xmm14,%xmm7 + vpslld $26,%xmm14,%xmm2 + vmovdqu %xmm5,96-128(%rax) + vpaddd %xmm9,%xmm5,%xmm5 + + vpsrld $11,%xmm14,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm14,%xmm2 + vpaddd 64(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm14,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm14,%xmm2 + vpandn %xmm8,%xmm14,%xmm0 + vpand %xmm15,%xmm14,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm10,%xmm9 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm10,%xmm1 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm10,%xmm11,%xmm3 + + vpxor %xmm1,%xmm9,%xmm9 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm10,%xmm1 + + vpslld $19,%xmm10,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm3,%xmm4,%xmm4 + + vpxor %xmm1,%xmm9,%xmm7 + + vpsrld $22,%xmm10,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm10,%xmm2 + vpxor %xmm4,%xmm11,%xmm9 + vpaddd %xmm5,%xmm13,%xmm13 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm9,%xmm9 + vpaddd %xmm7,%xmm9,%xmm9 + vmovd 28(%r8),%xmm5 + vmovd 28(%r9),%xmm0 + vpinsrd $1,28(%r10),%xmm5,%xmm5 + vpinsrd $1,28(%r11),%xmm0,%xmm0 + vpunpckldq %xmm0,%xmm5,%xmm5 + vpshufb %xmm6,%xmm5,%xmm5 + vpsrld $6,%xmm13,%xmm7 + vpslld $26,%xmm13,%xmm2 + vmovdqu %xmm5,112-128(%rax) + vpaddd %xmm8,%xmm5,%xmm5 + + vpsrld $11,%xmm13,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm13,%xmm2 + vpaddd 96(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm13,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm13,%xmm2 + vpandn %xmm15,%xmm13,%xmm0 + vpand %xmm14,%xmm13,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm9,%xmm8 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm9,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm9,%xmm10,%xmm4 + + vpxor %xmm1,%xmm8,%xmm8 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm9,%xmm1 + + vpslld $19,%xmm9,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm4,%xmm3,%xmm3 + + vpxor %xmm1,%xmm8,%xmm7 + + vpsrld $22,%xmm9,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm9,%xmm2 + vpxor %xmm3,%xmm10,%xmm8 + vpaddd %xmm5,%xmm12,%xmm12 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm8,%xmm8 + vpaddd %xmm7,%xmm8,%xmm8 + addq $256,%rbp + vmovd 32(%r8),%xmm5 + vmovd 32(%r9),%xmm0 + vpinsrd $1,32(%r10),%xmm5,%xmm5 + vpinsrd $1,32(%r11),%xmm0,%xmm0 + vpunpckldq %xmm0,%xmm5,%xmm5 + vpshufb %xmm6,%xmm5,%xmm5 + vpsrld $6,%xmm12,%xmm7 + vpslld $26,%xmm12,%xmm2 + vmovdqu %xmm5,128-128(%rax) + vpaddd %xmm15,%xmm5,%xmm5 + + vpsrld $11,%xmm12,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm12,%xmm2 + vpaddd -128(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm12,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm12,%xmm2 + vpandn %xmm14,%xmm12,%xmm0 + vpand %xmm13,%xmm12,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm8,%xmm15 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm8,%xmm1 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm8,%xmm9,%xmm3 + + vpxor %xmm1,%xmm15,%xmm15 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm8,%xmm1 + + vpslld $19,%xmm8,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm3,%xmm4,%xmm4 + + vpxor %xmm1,%xmm15,%xmm7 + + vpsrld $22,%xmm8,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm8,%xmm2 + vpxor %xmm4,%xmm9,%xmm15 + vpaddd %xmm5,%xmm11,%xmm11 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm15,%xmm15 + vpaddd %xmm7,%xmm15,%xmm15 + vmovd 36(%r8),%xmm5 + vmovd 36(%r9),%xmm0 + vpinsrd $1,36(%r10),%xmm5,%xmm5 + vpinsrd $1,36(%r11),%xmm0,%xmm0 + vpunpckldq %xmm0,%xmm5,%xmm5 + vpshufb %xmm6,%xmm5,%xmm5 + vpsrld $6,%xmm11,%xmm7 + vpslld $26,%xmm11,%xmm2 + vmovdqu %xmm5,144-128(%rax) + vpaddd %xmm14,%xmm5,%xmm5 + + vpsrld $11,%xmm11,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm11,%xmm2 + vpaddd -96(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm11,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm11,%xmm2 + vpandn %xmm13,%xmm11,%xmm0 + vpand %xmm12,%xmm11,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm15,%xmm14 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm15,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm15,%xmm8,%xmm4 + + vpxor %xmm1,%xmm14,%xmm14 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm15,%xmm1 + + vpslld $19,%xmm15,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm4,%xmm3,%xmm3 + + vpxor %xmm1,%xmm14,%xmm7 + + vpsrld $22,%xmm15,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm15,%xmm2 + vpxor %xmm3,%xmm8,%xmm14 + vpaddd %xmm5,%xmm10,%xmm10 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm14,%xmm14 + vpaddd %xmm7,%xmm14,%xmm14 + vmovd 40(%r8),%xmm5 + vmovd 40(%r9),%xmm0 + vpinsrd $1,40(%r10),%xmm5,%xmm5 + vpinsrd $1,40(%r11),%xmm0,%xmm0 + vpunpckldq %xmm0,%xmm5,%xmm5 + vpshufb %xmm6,%xmm5,%xmm5 + vpsrld $6,%xmm10,%xmm7 + vpslld $26,%xmm10,%xmm2 + vmovdqu %xmm5,160-128(%rax) + vpaddd %xmm13,%xmm5,%xmm5 + + vpsrld $11,%xmm10,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm10,%xmm2 + vpaddd -64(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm10,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm10,%xmm2 + vpandn %xmm12,%xmm10,%xmm0 + vpand %xmm11,%xmm10,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm14,%xmm13 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm14,%xmm1 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm14,%xmm15,%xmm3 + + vpxor %xmm1,%xmm13,%xmm13 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm14,%xmm1 + + vpslld $19,%xmm14,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm3,%xmm4,%xmm4 + + vpxor %xmm1,%xmm13,%xmm7 + + vpsrld $22,%xmm14,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm14,%xmm2 + vpxor %xmm4,%xmm15,%xmm13 + vpaddd %xmm5,%xmm9,%xmm9 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm13,%xmm13 + vpaddd %xmm7,%xmm13,%xmm13 + vmovd 44(%r8),%xmm5 + vmovd 44(%r9),%xmm0 + vpinsrd $1,44(%r10),%xmm5,%xmm5 + vpinsrd $1,44(%r11),%xmm0,%xmm0 + vpunpckldq %xmm0,%xmm5,%xmm5 + vpshufb %xmm6,%xmm5,%xmm5 + vpsrld $6,%xmm9,%xmm7 + vpslld $26,%xmm9,%xmm2 + vmovdqu %xmm5,176-128(%rax) + vpaddd %xmm12,%xmm5,%xmm5 + + vpsrld $11,%xmm9,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm9,%xmm2 + vpaddd -32(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm9,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm9,%xmm2 + vpandn %xmm11,%xmm9,%xmm0 + vpand %xmm10,%xmm9,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm13,%xmm12 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm13,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm13,%xmm14,%xmm4 + + vpxor %xmm1,%xmm12,%xmm12 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm13,%xmm1 + + vpslld $19,%xmm13,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm4,%xmm3,%xmm3 + + vpxor %xmm1,%xmm12,%xmm7 + + vpsrld $22,%xmm13,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm13,%xmm2 + vpxor %xmm3,%xmm14,%xmm12 + vpaddd %xmm5,%xmm8,%xmm8 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm12,%xmm12 + vpaddd %xmm7,%xmm12,%xmm12 + vmovd 48(%r8),%xmm5 + vmovd 48(%r9),%xmm0 + vpinsrd $1,48(%r10),%xmm5,%xmm5 + vpinsrd $1,48(%r11),%xmm0,%xmm0 + vpunpckldq %xmm0,%xmm5,%xmm5 + vpshufb %xmm6,%xmm5,%xmm5 + vpsrld $6,%xmm8,%xmm7 + vpslld $26,%xmm8,%xmm2 + vmovdqu %xmm5,192-128(%rax) + vpaddd %xmm11,%xmm5,%xmm5 + + vpsrld $11,%xmm8,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm8,%xmm2 + vpaddd 0(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm8,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm8,%xmm2 + vpandn %xmm10,%xmm8,%xmm0 + vpand %xmm9,%xmm8,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm12,%xmm11 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm12,%xmm1 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm12,%xmm13,%xmm3 + + vpxor %xmm1,%xmm11,%xmm11 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm12,%xmm1 + + vpslld $19,%xmm12,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm3,%xmm4,%xmm4 + + vpxor %xmm1,%xmm11,%xmm7 + + vpsrld $22,%xmm12,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm12,%xmm2 + vpxor %xmm4,%xmm13,%xmm11 + vpaddd %xmm5,%xmm15,%xmm15 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm11,%xmm11 + vpaddd %xmm7,%xmm11,%xmm11 + vmovd 52(%r8),%xmm5 + vmovd 52(%r9),%xmm0 + vpinsrd $1,52(%r10),%xmm5,%xmm5 + vpinsrd $1,52(%r11),%xmm0,%xmm0 + vpunpckldq %xmm0,%xmm5,%xmm5 + vpshufb %xmm6,%xmm5,%xmm5 + vpsrld $6,%xmm15,%xmm7 + vpslld $26,%xmm15,%xmm2 + vmovdqu %xmm5,208-128(%rax) + vpaddd %xmm10,%xmm5,%xmm5 + + vpsrld $11,%xmm15,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm15,%xmm2 + vpaddd 32(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm15,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm15,%xmm2 + vpandn %xmm9,%xmm15,%xmm0 + vpand %xmm8,%xmm15,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm11,%xmm10 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm11,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm11,%xmm12,%xmm4 + + vpxor %xmm1,%xmm10,%xmm10 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm11,%xmm1 + + vpslld $19,%xmm11,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm4,%xmm3,%xmm3 + + vpxor %xmm1,%xmm10,%xmm7 + + vpsrld $22,%xmm11,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm11,%xmm2 + vpxor %xmm3,%xmm12,%xmm10 + vpaddd %xmm5,%xmm14,%xmm14 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm10,%xmm10 + vpaddd %xmm7,%xmm10,%xmm10 + vmovd 56(%r8),%xmm5 + vmovd 56(%r9),%xmm0 + vpinsrd $1,56(%r10),%xmm5,%xmm5 + vpinsrd $1,56(%r11),%xmm0,%xmm0 + vpunpckldq %xmm0,%xmm5,%xmm5 + vpshufb %xmm6,%xmm5,%xmm5 + vpsrld $6,%xmm14,%xmm7 + vpslld $26,%xmm14,%xmm2 + vmovdqu %xmm5,224-128(%rax) + vpaddd %xmm9,%xmm5,%xmm5 + + vpsrld $11,%xmm14,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm14,%xmm2 + vpaddd 64(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm14,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm14,%xmm2 + vpandn %xmm8,%xmm14,%xmm0 + vpand %xmm15,%xmm14,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm10,%xmm9 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm10,%xmm1 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm10,%xmm11,%xmm3 + + vpxor %xmm1,%xmm9,%xmm9 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm10,%xmm1 + + vpslld $19,%xmm10,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm3,%xmm4,%xmm4 + + vpxor %xmm1,%xmm9,%xmm7 + + vpsrld $22,%xmm10,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm10,%xmm2 + vpxor %xmm4,%xmm11,%xmm9 + vpaddd %xmm5,%xmm13,%xmm13 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm9,%xmm9 + vpaddd %xmm7,%xmm9,%xmm9 + vmovd 60(%r8),%xmm5 + leaq 64(%r8),%r8 + vmovd 60(%r9),%xmm0 + leaq 64(%r9),%r9 + vpinsrd $1,60(%r10),%xmm5,%xmm5 + leaq 64(%r10),%r10 + vpinsrd $1,60(%r11),%xmm0,%xmm0 + leaq 64(%r11),%r11 + vpunpckldq %xmm0,%xmm5,%xmm5 + vpshufb %xmm6,%xmm5,%xmm5 + vpsrld $6,%xmm13,%xmm7 + vpslld $26,%xmm13,%xmm2 + vmovdqu %xmm5,240-128(%rax) + vpaddd %xmm8,%xmm5,%xmm5 + + vpsrld $11,%xmm13,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm13,%xmm2 + vpaddd 96(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm13,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + prefetcht0 63(%r8) + vpslld $7,%xmm13,%xmm2 + vpandn %xmm15,%xmm13,%xmm0 + vpand %xmm14,%xmm13,%xmm4 + prefetcht0 63(%r9) + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm9,%xmm8 + vpxor %xmm2,%xmm7,%xmm7 + prefetcht0 63(%r10) + vpslld $30,%xmm9,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm9,%xmm10,%xmm4 + prefetcht0 63(%r11) + vpxor %xmm1,%xmm8,%xmm8 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm9,%xmm1 + + vpslld $19,%xmm9,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm4,%xmm3,%xmm3 + + vpxor %xmm1,%xmm8,%xmm7 + + vpsrld $22,%xmm9,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm9,%xmm2 + vpxor %xmm3,%xmm10,%xmm8 + vpaddd %xmm5,%xmm12,%xmm12 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm8,%xmm8 + vpaddd %xmm7,%xmm8,%xmm8 + addq $256,%rbp + vmovdqu 0-128(%rax),%xmm5 + movl $3,%ecx + jmp .Loop_16_xx_avx +.align 32 +.Loop_16_xx_avx: + vmovdqu 16-128(%rax),%xmm6 + vpaddd 144-128(%rax),%xmm5,%xmm5 + + vpsrld $3,%xmm6,%xmm7 + vpsrld $7,%xmm6,%xmm1 + vpslld $25,%xmm6,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $18,%xmm6,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $14,%xmm6,%xmm2 + vmovdqu 224-128(%rax),%xmm0 + vpsrld $10,%xmm0,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $17,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $15,%xmm0,%xmm2 + vpaddd %xmm7,%xmm5,%xmm5 + vpxor %xmm1,%xmm3,%xmm7 + vpsrld $19,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $13,%xmm0,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + vpaddd %xmm7,%xmm5,%xmm5 + vpsrld $6,%xmm12,%xmm7 + vpslld $26,%xmm12,%xmm2 + vmovdqu %xmm5,0-128(%rax) + vpaddd %xmm15,%xmm5,%xmm5 + + vpsrld $11,%xmm12,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm12,%xmm2 + vpaddd -128(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm12,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm12,%xmm2 + vpandn %xmm14,%xmm12,%xmm0 + vpand %xmm13,%xmm12,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm8,%xmm15 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm8,%xmm1 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm8,%xmm9,%xmm3 + + vpxor %xmm1,%xmm15,%xmm15 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm8,%xmm1 + + vpslld $19,%xmm8,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm3,%xmm4,%xmm4 + + vpxor %xmm1,%xmm15,%xmm7 + + vpsrld $22,%xmm8,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm8,%xmm2 + vpxor %xmm4,%xmm9,%xmm15 + vpaddd %xmm5,%xmm11,%xmm11 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm15,%xmm15 + vpaddd %xmm7,%xmm15,%xmm15 + vmovdqu 32-128(%rax),%xmm5 + vpaddd 160-128(%rax),%xmm6,%xmm6 + + vpsrld $3,%xmm5,%xmm7 + vpsrld $7,%xmm5,%xmm1 + vpslld $25,%xmm5,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $18,%xmm5,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $14,%xmm5,%xmm2 + vmovdqu 240-128(%rax),%xmm0 + vpsrld $10,%xmm0,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $17,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $15,%xmm0,%xmm2 + vpaddd %xmm7,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm7 + vpsrld $19,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $13,%xmm0,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + vpaddd %xmm7,%xmm6,%xmm6 + vpsrld $6,%xmm11,%xmm7 + vpslld $26,%xmm11,%xmm2 + vmovdqu %xmm6,16-128(%rax) + vpaddd %xmm14,%xmm6,%xmm6 + + vpsrld $11,%xmm11,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm11,%xmm2 + vpaddd -96(%rbp),%xmm6,%xmm6 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm11,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm11,%xmm2 + vpandn %xmm13,%xmm11,%xmm0 + vpand %xmm12,%xmm11,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm15,%xmm14 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm15,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm15,%xmm8,%xmm4 + + vpxor %xmm1,%xmm14,%xmm14 + vpaddd %xmm7,%xmm6,%xmm6 + + vpsrld $13,%xmm15,%xmm1 + + vpslld $19,%xmm15,%xmm2 + vpaddd %xmm0,%xmm6,%xmm6 + vpand %xmm4,%xmm3,%xmm3 + + vpxor %xmm1,%xmm14,%xmm7 + + vpsrld $22,%xmm15,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm15,%xmm2 + vpxor %xmm3,%xmm8,%xmm14 + vpaddd %xmm6,%xmm10,%xmm10 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm6,%xmm14,%xmm14 + vpaddd %xmm7,%xmm14,%xmm14 + vmovdqu 48-128(%rax),%xmm6 + vpaddd 176-128(%rax),%xmm5,%xmm5 + + vpsrld $3,%xmm6,%xmm7 + vpsrld $7,%xmm6,%xmm1 + vpslld $25,%xmm6,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $18,%xmm6,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $14,%xmm6,%xmm2 + vmovdqu 0-128(%rax),%xmm0 + vpsrld $10,%xmm0,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $17,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $15,%xmm0,%xmm2 + vpaddd %xmm7,%xmm5,%xmm5 + vpxor %xmm1,%xmm3,%xmm7 + vpsrld $19,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $13,%xmm0,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + vpaddd %xmm7,%xmm5,%xmm5 + vpsrld $6,%xmm10,%xmm7 + vpslld $26,%xmm10,%xmm2 + vmovdqu %xmm5,32-128(%rax) + vpaddd %xmm13,%xmm5,%xmm5 + + vpsrld $11,%xmm10,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm10,%xmm2 + vpaddd -64(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm10,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm10,%xmm2 + vpandn %xmm12,%xmm10,%xmm0 + vpand %xmm11,%xmm10,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm14,%xmm13 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm14,%xmm1 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm14,%xmm15,%xmm3 + + vpxor %xmm1,%xmm13,%xmm13 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm14,%xmm1 + + vpslld $19,%xmm14,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm3,%xmm4,%xmm4 + + vpxor %xmm1,%xmm13,%xmm7 + + vpsrld $22,%xmm14,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm14,%xmm2 + vpxor %xmm4,%xmm15,%xmm13 + vpaddd %xmm5,%xmm9,%xmm9 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm13,%xmm13 + vpaddd %xmm7,%xmm13,%xmm13 + vmovdqu 64-128(%rax),%xmm5 + vpaddd 192-128(%rax),%xmm6,%xmm6 + + vpsrld $3,%xmm5,%xmm7 + vpsrld $7,%xmm5,%xmm1 + vpslld $25,%xmm5,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $18,%xmm5,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $14,%xmm5,%xmm2 + vmovdqu 16-128(%rax),%xmm0 + vpsrld $10,%xmm0,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $17,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $15,%xmm0,%xmm2 + vpaddd %xmm7,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm7 + vpsrld $19,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $13,%xmm0,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + vpaddd %xmm7,%xmm6,%xmm6 + vpsrld $6,%xmm9,%xmm7 + vpslld $26,%xmm9,%xmm2 + vmovdqu %xmm6,48-128(%rax) + vpaddd %xmm12,%xmm6,%xmm6 + + vpsrld $11,%xmm9,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm9,%xmm2 + vpaddd -32(%rbp),%xmm6,%xmm6 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm9,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm9,%xmm2 + vpandn %xmm11,%xmm9,%xmm0 + vpand %xmm10,%xmm9,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm13,%xmm12 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm13,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm13,%xmm14,%xmm4 + + vpxor %xmm1,%xmm12,%xmm12 + vpaddd %xmm7,%xmm6,%xmm6 + + vpsrld $13,%xmm13,%xmm1 + + vpslld $19,%xmm13,%xmm2 + vpaddd %xmm0,%xmm6,%xmm6 + vpand %xmm4,%xmm3,%xmm3 + + vpxor %xmm1,%xmm12,%xmm7 + + vpsrld $22,%xmm13,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm13,%xmm2 + vpxor %xmm3,%xmm14,%xmm12 + vpaddd %xmm6,%xmm8,%xmm8 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm6,%xmm12,%xmm12 + vpaddd %xmm7,%xmm12,%xmm12 + vmovdqu 80-128(%rax),%xmm6 + vpaddd 208-128(%rax),%xmm5,%xmm5 + + vpsrld $3,%xmm6,%xmm7 + vpsrld $7,%xmm6,%xmm1 + vpslld $25,%xmm6,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $18,%xmm6,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $14,%xmm6,%xmm2 + vmovdqu 32-128(%rax),%xmm0 + vpsrld $10,%xmm0,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $17,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $15,%xmm0,%xmm2 + vpaddd %xmm7,%xmm5,%xmm5 + vpxor %xmm1,%xmm3,%xmm7 + vpsrld $19,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $13,%xmm0,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + vpaddd %xmm7,%xmm5,%xmm5 + vpsrld $6,%xmm8,%xmm7 + vpslld $26,%xmm8,%xmm2 + vmovdqu %xmm5,64-128(%rax) + vpaddd %xmm11,%xmm5,%xmm5 + + vpsrld $11,%xmm8,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm8,%xmm2 + vpaddd 0(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm8,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm8,%xmm2 + vpandn %xmm10,%xmm8,%xmm0 + vpand %xmm9,%xmm8,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm12,%xmm11 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm12,%xmm1 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm12,%xmm13,%xmm3 + + vpxor %xmm1,%xmm11,%xmm11 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm12,%xmm1 + + vpslld $19,%xmm12,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm3,%xmm4,%xmm4 + + vpxor %xmm1,%xmm11,%xmm7 + + vpsrld $22,%xmm12,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm12,%xmm2 + vpxor %xmm4,%xmm13,%xmm11 + vpaddd %xmm5,%xmm15,%xmm15 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm11,%xmm11 + vpaddd %xmm7,%xmm11,%xmm11 + vmovdqu 96-128(%rax),%xmm5 + vpaddd 224-128(%rax),%xmm6,%xmm6 + + vpsrld $3,%xmm5,%xmm7 + vpsrld $7,%xmm5,%xmm1 + vpslld $25,%xmm5,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $18,%xmm5,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $14,%xmm5,%xmm2 + vmovdqu 48-128(%rax),%xmm0 + vpsrld $10,%xmm0,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $17,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $15,%xmm0,%xmm2 + vpaddd %xmm7,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm7 + vpsrld $19,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $13,%xmm0,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + vpaddd %xmm7,%xmm6,%xmm6 + vpsrld $6,%xmm15,%xmm7 + vpslld $26,%xmm15,%xmm2 + vmovdqu %xmm6,80-128(%rax) + vpaddd %xmm10,%xmm6,%xmm6 + + vpsrld $11,%xmm15,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm15,%xmm2 + vpaddd 32(%rbp),%xmm6,%xmm6 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm15,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm15,%xmm2 + vpandn %xmm9,%xmm15,%xmm0 + vpand %xmm8,%xmm15,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm11,%xmm10 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm11,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm11,%xmm12,%xmm4 + + vpxor %xmm1,%xmm10,%xmm10 + vpaddd %xmm7,%xmm6,%xmm6 + + vpsrld $13,%xmm11,%xmm1 + + vpslld $19,%xmm11,%xmm2 + vpaddd %xmm0,%xmm6,%xmm6 + vpand %xmm4,%xmm3,%xmm3 + + vpxor %xmm1,%xmm10,%xmm7 + + vpsrld $22,%xmm11,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm11,%xmm2 + vpxor %xmm3,%xmm12,%xmm10 + vpaddd %xmm6,%xmm14,%xmm14 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm6,%xmm10,%xmm10 + vpaddd %xmm7,%xmm10,%xmm10 + vmovdqu 112-128(%rax),%xmm6 + vpaddd 240-128(%rax),%xmm5,%xmm5 + + vpsrld $3,%xmm6,%xmm7 + vpsrld $7,%xmm6,%xmm1 + vpslld $25,%xmm6,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $18,%xmm6,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $14,%xmm6,%xmm2 + vmovdqu 64-128(%rax),%xmm0 + vpsrld $10,%xmm0,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $17,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $15,%xmm0,%xmm2 + vpaddd %xmm7,%xmm5,%xmm5 + vpxor %xmm1,%xmm3,%xmm7 + vpsrld $19,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $13,%xmm0,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + vpaddd %xmm7,%xmm5,%xmm5 + vpsrld $6,%xmm14,%xmm7 + vpslld $26,%xmm14,%xmm2 + vmovdqu %xmm5,96-128(%rax) + vpaddd %xmm9,%xmm5,%xmm5 + + vpsrld $11,%xmm14,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm14,%xmm2 + vpaddd 64(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm14,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm14,%xmm2 + vpandn %xmm8,%xmm14,%xmm0 + vpand %xmm15,%xmm14,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm10,%xmm9 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm10,%xmm1 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm10,%xmm11,%xmm3 + + vpxor %xmm1,%xmm9,%xmm9 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm10,%xmm1 + + vpslld $19,%xmm10,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm3,%xmm4,%xmm4 + + vpxor %xmm1,%xmm9,%xmm7 + + vpsrld $22,%xmm10,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm10,%xmm2 + vpxor %xmm4,%xmm11,%xmm9 + vpaddd %xmm5,%xmm13,%xmm13 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm9,%xmm9 + vpaddd %xmm7,%xmm9,%xmm9 + vmovdqu 128-128(%rax),%xmm5 + vpaddd 0-128(%rax),%xmm6,%xmm6 + + vpsrld $3,%xmm5,%xmm7 + vpsrld $7,%xmm5,%xmm1 + vpslld $25,%xmm5,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $18,%xmm5,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $14,%xmm5,%xmm2 + vmovdqu 80-128(%rax),%xmm0 + vpsrld $10,%xmm0,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $17,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $15,%xmm0,%xmm2 + vpaddd %xmm7,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm7 + vpsrld $19,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $13,%xmm0,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + vpaddd %xmm7,%xmm6,%xmm6 + vpsrld $6,%xmm13,%xmm7 + vpslld $26,%xmm13,%xmm2 + vmovdqu %xmm6,112-128(%rax) + vpaddd %xmm8,%xmm6,%xmm6 + + vpsrld $11,%xmm13,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm13,%xmm2 + vpaddd 96(%rbp),%xmm6,%xmm6 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm13,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm13,%xmm2 + vpandn %xmm15,%xmm13,%xmm0 + vpand %xmm14,%xmm13,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm9,%xmm8 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm9,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm9,%xmm10,%xmm4 + + vpxor %xmm1,%xmm8,%xmm8 + vpaddd %xmm7,%xmm6,%xmm6 + + vpsrld $13,%xmm9,%xmm1 + + vpslld $19,%xmm9,%xmm2 + vpaddd %xmm0,%xmm6,%xmm6 + vpand %xmm4,%xmm3,%xmm3 + + vpxor %xmm1,%xmm8,%xmm7 + + vpsrld $22,%xmm9,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm9,%xmm2 + vpxor %xmm3,%xmm10,%xmm8 + vpaddd %xmm6,%xmm12,%xmm12 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm6,%xmm8,%xmm8 + vpaddd %xmm7,%xmm8,%xmm8 + addq $256,%rbp + vmovdqu 144-128(%rax),%xmm6 + vpaddd 16-128(%rax),%xmm5,%xmm5 + + vpsrld $3,%xmm6,%xmm7 + vpsrld $7,%xmm6,%xmm1 + vpslld $25,%xmm6,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $18,%xmm6,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $14,%xmm6,%xmm2 + vmovdqu 96-128(%rax),%xmm0 + vpsrld $10,%xmm0,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $17,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $15,%xmm0,%xmm2 + vpaddd %xmm7,%xmm5,%xmm5 + vpxor %xmm1,%xmm3,%xmm7 + vpsrld $19,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $13,%xmm0,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + vpaddd %xmm7,%xmm5,%xmm5 + vpsrld $6,%xmm12,%xmm7 + vpslld $26,%xmm12,%xmm2 + vmovdqu %xmm5,128-128(%rax) + vpaddd %xmm15,%xmm5,%xmm5 + + vpsrld $11,%xmm12,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm12,%xmm2 + vpaddd -128(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm12,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm12,%xmm2 + vpandn %xmm14,%xmm12,%xmm0 + vpand %xmm13,%xmm12,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm8,%xmm15 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm8,%xmm1 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm8,%xmm9,%xmm3 + + vpxor %xmm1,%xmm15,%xmm15 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm8,%xmm1 + + vpslld $19,%xmm8,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm3,%xmm4,%xmm4 + + vpxor %xmm1,%xmm15,%xmm7 + + vpsrld $22,%xmm8,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm8,%xmm2 + vpxor %xmm4,%xmm9,%xmm15 + vpaddd %xmm5,%xmm11,%xmm11 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm15,%xmm15 + vpaddd %xmm7,%xmm15,%xmm15 + vmovdqu 160-128(%rax),%xmm5 + vpaddd 32-128(%rax),%xmm6,%xmm6 + + vpsrld $3,%xmm5,%xmm7 + vpsrld $7,%xmm5,%xmm1 + vpslld $25,%xmm5,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $18,%xmm5,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $14,%xmm5,%xmm2 + vmovdqu 112-128(%rax),%xmm0 + vpsrld $10,%xmm0,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $17,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $15,%xmm0,%xmm2 + vpaddd %xmm7,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm7 + vpsrld $19,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $13,%xmm0,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + vpaddd %xmm7,%xmm6,%xmm6 + vpsrld $6,%xmm11,%xmm7 + vpslld $26,%xmm11,%xmm2 + vmovdqu %xmm6,144-128(%rax) + vpaddd %xmm14,%xmm6,%xmm6 + + vpsrld $11,%xmm11,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm11,%xmm2 + vpaddd -96(%rbp),%xmm6,%xmm6 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm11,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm11,%xmm2 + vpandn %xmm13,%xmm11,%xmm0 + vpand %xmm12,%xmm11,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm15,%xmm14 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm15,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm15,%xmm8,%xmm4 + + vpxor %xmm1,%xmm14,%xmm14 + vpaddd %xmm7,%xmm6,%xmm6 + + vpsrld $13,%xmm15,%xmm1 + + vpslld $19,%xmm15,%xmm2 + vpaddd %xmm0,%xmm6,%xmm6 + vpand %xmm4,%xmm3,%xmm3 + + vpxor %xmm1,%xmm14,%xmm7 + + vpsrld $22,%xmm15,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm15,%xmm2 + vpxor %xmm3,%xmm8,%xmm14 + vpaddd %xmm6,%xmm10,%xmm10 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm6,%xmm14,%xmm14 + vpaddd %xmm7,%xmm14,%xmm14 + vmovdqu 176-128(%rax),%xmm6 + vpaddd 48-128(%rax),%xmm5,%xmm5 + + vpsrld $3,%xmm6,%xmm7 + vpsrld $7,%xmm6,%xmm1 + vpslld $25,%xmm6,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $18,%xmm6,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $14,%xmm6,%xmm2 + vmovdqu 128-128(%rax),%xmm0 + vpsrld $10,%xmm0,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $17,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $15,%xmm0,%xmm2 + vpaddd %xmm7,%xmm5,%xmm5 + vpxor %xmm1,%xmm3,%xmm7 + vpsrld $19,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $13,%xmm0,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + vpaddd %xmm7,%xmm5,%xmm5 + vpsrld $6,%xmm10,%xmm7 + vpslld $26,%xmm10,%xmm2 + vmovdqu %xmm5,160-128(%rax) + vpaddd %xmm13,%xmm5,%xmm5 + + vpsrld $11,%xmm10,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm10,%xmm2 + vpaddd -64(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm10,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm10,%xmm2 + vpandn %xmm12,%xmm10,%xmm0 + vpand %xmm11,%xmm10,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm14,%xmm13 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm14,%xmm1 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm14,%xmm15,%xmm3 + + vpxor %xmm1,%xmm13,%xmm13 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm14,%xmm1 + + vpslld $19,%xmm14,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm3,%xmm4,%xmm4 + + vpxor %xmm1,%xmm13,%xmm7 + + vpsrld $22,%xmm14,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm14,%xmm2 + vpxor %xmm4,%xmm15,%xmm13 + vpaddd %xmm5,%xmm9,%xmm9 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm13,%xmm13 + vpaddd %xmm7,%xmm13,%xmm13 + vmovdqu 192-128(%rax),%xmm5 + vpaddd 64-128(%rax),%xmm6,%xmm6 + + vpsrld $3,%xmm5,%xmm7 + vpsrld $7,%xmm5,%xmm1 + vpslld $25,%xmm5,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $18,%xmm5,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $14,%xmm5,%xmm2 + vmovdqu 144-128(%rax),%xmm0 + vpsrld $10,%xmm0,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $17,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $15,%xmm0,%xmm2 + vpaddd %xmm7,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm7 + vpsrld $19,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $13,%xmm0,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + vpaddd %xmm7,%xmm6,%xmm6 + vpsrld $6,%xmm9,%xmm7 + vpslld $26,%xmm9,%xmm2 + vmovdqu %xmm6,176-128(%rax) + vpaddd %xmm12,%xmm6,%xmm6 + + vpsrld $11,%xmm9,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm9,%xmm2 + vpaddd -32(%rbp),%xmm6,%xmm6 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm9,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm9,%xmm2 + vpandn %xmm11,%xmm9,%xmm0 + vpand %xmm10,%xmm9,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm13,%xmm12 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm13,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm13,%xmm14,%xmm4 + + vpxor %xmm1,%xmm12,%xmm12 + vpaddd %xmm7,%xmm6,%xmm6 + + vpsrld $13,%xmm13,%xmm1 + + vpslld $19,%xmm13,%xmm2 + vpaddd %xmm0,%xmm6,%xmm6 + vpand %xmm4,%xmm3,%xmm3 + + vpxor %xmm1,%xmm12,%xmm7 + + vpsrld $22,%xmm13,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm13,%xmm2 + vpxor %xmm3,%xmm14,%xmm12 + vpaddd %xmm6,%xmm8,%xmm8 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm6,%xmm12,%xmm12 + vpaddd %xmm7,%xmm12,%xmm12 + vmovdqu 208-128(%rax),%xmm6 + vpaddd 80-128(%rax),%xmm5,%xmm5 + + vpsrld $3,%xmm6,%xmm7 + vpsrld $7,%xmm6,%xmm1 + vpslld $25,%xmm6,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $18,%xmm6,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $14,%xmm6,%xmm2 + vmovdqu 160-128(%rax),%xmm0 + vpsrld $10,%xmm0,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $17,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $15,%xmm0,%xmm2 + vpaddd %xmm7,%xmm5,%xmm5 + vpxor %xmm1,%xmm3,%xmm7 + vpsrld $19,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $13,%xmm0,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + vpaddd %xmm7,%xmm5,%xmm5 + vpsrld $6,%xmm8,%xmm7 + vpslld $26,%xmm8,%xmm2 + vmovdqu %xmm5,192-128(%rax) + vpaddd %xmm11,%xmm5,%xmm5 + + vpsrld $11,%xmm8,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm8,%xmm2 + vpaddd 0(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm8,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm8,%xmm2 + vpandn %xmm10,%xmm8,%xmm0 + vpand %xmm9,%xmm8,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm12,%xmm11 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm12,%xmm1 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm12,%xmm13,%xmm3 + + vpxor %xmm1,%xmm11,%xmm11 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm12,%xmm1 + + vpslld $19,%xmm12,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm3,%xmm4,%xmm4 + + vpxor %xmm1,%xmm11,%xmm7 + + vpsrld $22,%xmm12,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm12,%xmm2 + vpxor %xmm4,%xmm13,%xmm11 + vpaddd %xmm5,%xmm15,%xmm15 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm11,%xmm11 + vpaddd %xmm7,%xmm11,%xmm11 + vmovdqu 224-128(%rax),%xmm5 + vpaddd 96-128(%rax),%xmm6,%xmm6 + + vpsrld $3,%xmm5,%xmm7 + vpsrld $7,%xmm5,%xmm1 + vpslld $25,%xmm5,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $18,%xmm5,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $14,%xmm5,%xmm2 + vmovdqu 176-128(%rax),%xmm0 + vpsrld $10,%xmm0,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $17,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $15,%xmm0,%xmm2 + vpaddd %xmm7,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm7 + vpsrld $19,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $13,%xmm0,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + vpaddd %xmm7,%xmm6,%xmm6 + vpsrld $6,%xmm15,%xmm7 + vpslld $26,%xmm15,%xmm2 + vmovdqu %xmm6,208-128(%rax) + vpaddd %xmm10,%xmm6,%xmm6 + + vpsrld $11,%xmm15,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm15,%xmm2 + vpaddd 32(%rbp),%xmm6,%xmm6 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm15,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm15,%xmm2 + vpandn %xmm9,%xmm15,%xmm0 + vpand %xmm8,%xmm15,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm11,%xmm10 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm11,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm11,%xmm12,%xmm4 + + vpxor %xmm1,%xmm10,%xmm10 + vpaddd %xmm7,%xmm6,%xmm6 + + vpsrld $13,%xmm11,%xmm1 + + vpslld $19,%xmm11,%xmm2 + vpaddd %xmm0,%xmm6,%xmm6 + vpand %xmm4,%xmm3,%xmm3 + + vpxor %xmm1,%xmm10,%xmm7 + + vpsrld $22,%xmm11,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm11,%xmm2 + vpxor %xmm3,%xmm12,%xmm10 + vpaddd %xmm6,%xmm14,%xmm14 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm6,%xmm10,%xmm10 + vpaddd %xmm7,%xmm10,%xmm10 + vmovdqu 240-128(%rax),%xmm6 + vpaddd 112-128(%rax),%xmm5,%xmm5 + + vpsrld $3,%xmm6,%xmm7 + vpsrld $7,%xmm6,%xmm1 + vpslld $25,%xmm6,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $18,%xmm6,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $14,%xmm6,%xmm2 + vmovdqu 192-128(%rax),%xmm0 + vpsrld $10,%xmm0,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $17,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $15,%xmm0,%xmm2 + vpaddd %xmm7,%xmm5,%xmm5 + vpxor %xmm1,%xmm3,%xmm7 + vpsrld $19,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $13,%xmm0,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + vpaddd %xmm7,%xmm5,%xmm5 + vpsrld $6,%xmm14,%xmm7 + vpslld $26,%xmm14,%xmm2 + vmovdqu %xmm5,224-128(%rax) + vpaddd %xmm9,%xmm5,%xmm5 + + vpsrld $11,%xmm14,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm14,%xmm2 + vpaddd 64(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm14,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm14,%xmm2 + vpandn %xmm8,%xmm14,%xmm0 + vpand %xmm15,%xmm14,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm10,%xmm9 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm10,%xmm1 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm10,%xmm11,%xmm3 + + vpxor %xmm1,%xmm9,%xmm9 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm10,%xmm1 + + vpslld $19,%xmm10,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm3,%xmm4,%xmm4 + + vpxor %xmm1,%xmm9,%xmm7 + + vpsrld $22,%xmm10,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm10,%xmm2 + vpxor %xmm4,%xmm11,%xmm9 + vpaddd %xmm5,%xmm13,%xmm13 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm9,%xmm9 + vpaddd %xmm7,%xmm9,%xmm9 + vmovdqu 0-128(%rax),%xmm5 + vpaddd 128-128(%rax),%xmm6,%xmm6 + + vpsrld $3,%xmm5,%xmm7 + vpsrld $7,%xmm5,%xmm1 + vpslld $25,%xmm5,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $18,%xmm5,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $14,%xmm5,%xmm2 + vmovdqu 208-128(%rax),%xmm0 + vpsrld $10,%xmm0,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $17,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $15,%xmm0,%xmm2 + vpaddd %xmm7,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm7 + vpsrld $19,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $13,%xmm0,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + vpaddd %xmm7,%xmm6,%xmm6 + vpsrld $6,%xmm13,%xmm7 + vpslld $26,%xmm13,%xmm2 + vmovdqu %xmm6,240-128(%rax) + vpaddd %xmm8,%xmm6,%xmm6 + + vpsrld $11,%xmm13,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm13,%xmm2 + vpaddd 96(%rbp),%xmm6,%xmm6 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm13,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm13,%xmm2 + vpandn %xmm15,%xmm13,%xmm0 + vpand %xmm14,%xmm13,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm9,%xmm8 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm9,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm9,%xmm10,%xmm4 + + vpxor %xmm1,%xmm8,%xmm8 + vpaddd %xmm7,%xmm6,%xmm6 + + vpsrld $13,%xmm9,%xmm1 + + vpslld $19,%xmm9,%xmm2 + vpaddd %xmm0,%xmm6,%xmm6 + vpand %xmm4,%xmm3,%xmm3 + + vpxor %xmm1,%xmm8,%xmm7 + + vpsrld $22,%xmm9,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm9,%xmm2 + vpxor %xmm3,%xmm10,%xmm8 + vpaddd %xmm6,%xmm12,%xmm12 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm6,%xmm8,%xmm8 + vpaddd %xmm7,%xmm8,%xmm8 + addq $256,%rbp + decl %ecx + jnz .Loop_16_xx_avx + + movl $1,%ecx + leaq K256+128(%rip),%rbp + cmpl 0(%rbx),%ecx + cmovgeq %rbp,%r8 + cmpl 4(%rbx),%ecx + cmovgeq %rbp,%r9 + cmpl 8(%rbx),%ecx + cmovgeq %rbp,%r10 + cmpl 12(%rbx),%ecx + cmovgeq %rbp,%r11 + vmovdqa (%rbx),%xmm7 + vpxor %xmm0,%xmm0,%xmm0 + vmovdqa %xmm7,%xmm6 + vpcmpgtd %xmm0,%xmm6,%xmm6 + vpaddd %xmm6,%xmm7,%xmm7 + + vmovdqu 0-128(%rdi),%xmm0 + vpand %xmm6,%xmm8,%xmm8 + vmovdqu 32-128(%rdi),%xmm1 + vpand %xmm6,%xmm9,%xmm9 + vmovdqu 64-128(%rdi),%xmm2 + vpand %xmm6,%xmm10,%xmm10 + vmovdqu 96-128(%rdi),%xmm5 + vpand %xmm6,%xmm11,%xmm11 + vpaddd %xmm0,%xmm8,%xmm8 + vmovdqu 128-128(%rdi),%xmm0 + vpand %xmm6,%xmm12,%xmm12 + vpaddd %xmm1,%xmm9,%xmm9 + vmovdqu 160-128(%rdi),%xmm1 + vpand %xmm6,%xmm13,%xmm13 + vpaddd %xmm2,%xmm10,%xmm10 + vmovdqu 192-128(%rdi),%xmm2 + vpand %xmm6,%xmm14,%xmm14 + vpaddd %xmm5,%xmm11,%xmm11 + vmovdqu 224-128(%rdi),%xmm5 + vpand %xmm6,%xmm15,%xmm15 + vpaddd %xmm0,%xmm12,%xmm12 + vpaddd %xmm1,%xmm13,%xmm13 + vmovdqu %xmm8,0-128(%rdi) + vpaddd %xmm2,%xmm14,%xmm14 + vmovdqu %xmm9,32-128(%rdi) + vpaddd %xmm5,%xmm15,%xmm15 + vmovdqu %xmm10,64-128(%rdi) + vmovdqu %xmm11,96-128(%rdi) + vmovdqu %xmm12,128-128(%rdi) + vmovdqu %xmm13,160-128(%rdi) + vmovdqu %xmm14,192-128(%rdi) + vmovdqu %xmm15,224-128(%rdi) + + vmovdqu %xmm7,(%rbx) + vmovdqu .Lpbswap(%rip),%xmm6 + decl %edx + jnz .Loop_avx + + movl 280(%rsp),%edx + leaq 16(%rdi),%rdi + leaq 64(%rsi),%rsi + decl %edx + jnz .Loop_grande_avx + +.Ldone_avx: + movq 272(%rsp),%rax +.cfi_def_cfa %rax,8 + vzeroupper + movq -16(%rax),%rbp +.cfi_restore %rbp + movq -8(%rax),%rbx +.cfi_restore %rbx + leaq (%rax),%rsp +.cfi_def_cfa_register %rsp +.Lepilogue_avx: + .byte 0xf3,0xc3 +.cfi_endproc +.size sha256_multi_block_avx,.-sha256_multi_block_avx +.type sha256_multi_block_avx2,@function +.align 32 +sha256_multi_block_avx2: +.cfi_startproc +_avx2_shortcut: + movq %rsp,%rax +.cfi_def_cfa_register %rax + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_offset %r15,-56 + subq $576,%rsp + andq $-256,%rsp + movq %rax,544(%rsp) +.cfi_escape 0x0f,0x06,0x77,0xa0,0x04,0x06,0x23,0x08 +.Lbody_avx2: + leaq K256+128(%rip),%rbp + leaq 128(%rdi),%rdi + +.Loop_grande_avx2: + movl %edx,552(%rsp) + xorl %edx,%edx + leaq 512(%rsp),%rbx + movq 0(%rsi),%r12 + movl 8(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,0(%rbx) + cmovleq %rbp,%r12 + movq 16(%rsi),%r13 + movl 24(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,4(%rbx) + cmovleq %rbp,%r13 + movq 32(%rsi),%r14 + movl 40(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,8(%rbx) + cmovleq %rbp,%r14 + movq 48(%rsi),%r15 + movl 56(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,12(%rbx) + cmovleq %rbp,%r15 + movq 64(%rsi),%r8 + movl 72(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,16(%rbx) + cmovleq %rbp,%r8 + movq 80(%rsi),%r9 + movl 88(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,20(%rbx) + cmovleq %rbp,%r9 + movq 96(%rsi),%r10 + movl 104(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,24(%rbx) + cmovleq %rbp,%r10 + movq 112(%rsi),%r11 + movl 120(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,28(%rbx) + cmovleq %rbp,%r11 + vmovdqu 0-128(%rdi),%ymm8 + leaq 128(%rsp),%rax + vmovdqu 32-128(%rdi),%ymm9 + leaq 256+128(%rsp),%rbx + vmovdqu 64-128(%rdi),%ymm10 + vmovdqu 96-128(%rdi),%ymm11 + vmovdqu 128-128(%rdi),%ymm12 + vmovdqu 160-128(%rdi),%ymm13 + vmovdqu 192-128(%rdi),%ymm14 + vmovdqu 224-128(%rdi),%ymm15 + vmovdqu .Lpbswap(%rip),%ymm6 + jmp .Loop_avx2 + +.align 32 +.Loop_avx2: + vpxor %ymm9,%ymm10,%ymm4 + vmovd 0(%r12),%xmm5 + vmovd 0(%r8),%xmm0 + vmovd 0(%r13),%xmm1 + vmovd 0(%r9),%xmm2 + vpinsrd $1,0(%r14),%xmm5,%xmm5 + vpinsrd $1,0(%r10),%xmm0,%xmm0 + vpinsrd $1,0(%r15),%xmm1,%xmm1 + vpunpckldq %ymm1,%ymm5,%ymm5 + vpinsrd $1,0(%r11),%xmm2,%xmm2 + vpunpckldq %ymm2,%ymm0,%ymm0 + vinserti128 $1,%xmm0,%ymm5,%ymm5 + vpshufb %ymm6,%ymm5,%ymm5 + vpsrld $6,%ymm12,%ymm7 + vpslld $26,%ymm12,%ymm2 + vmovdqu %ymm5,0-128(%rax) + vpaddd %ymm15,%ymm5,%ymm5 + + vpsrld $11,%ymm12,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm12,%ymm2 + vpaddd -128(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm12,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm12,%ymm2 + vpandn %ymm14,%ymm12,%ymm0 + vpand %ymm13,%ymm12,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm8,%ymm15 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm8,%ymm1 + vpxor %ymm3,%ymm0,%ymm0 + vpxor %ymm8,%ymm9,%ymm3 + + vpxor %ymm1,%ymm15,%ymm15 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm8,%ymm1 + + vpslld $19,%ymm8,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm3,%ymm4,%ymm4 + + vpxor %ymm1,%ymm15,%ymm7 + + vpsrld $22,%ymm8,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm8,%ymm2 + vpxor %ymm4,%ymm9,%ymm15 + vpaddd %ymm5,%ymm11,%ymm11 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm15,%ymm15 + vpaddd %ymm7,%ymm15,%ymm15 + vmovd 4(%r12),%xmm5 + vmovd 4(%r8),%xmm0 + vmovd 4(%r13),%xmm1 + vmovd 4(%r9),%xmm2 + vpinsrd $1,4(%r14),%xmm5,%xmm5 + vpinsrd $1,4(%r10),%xmm0,%xmm0 + vpinsrd $1,4(%r15),%xmm1,%xmm1 + vpunpckldq %ymm1,%ymm5,%ymm5 + vpinsrd $1,4(%r11),%xmm2,%xmm2 + vpunpckldq %ymm2,%ymm0,%ymm0 + vinserti128 $1,%xmm0,%ymm5,%ymm5 + vpshufb %ymm6,%ymm5,%ymm5 + vpsrld $6,%ymm11,%ymm7 + vpslld $26,%ymm11,%ymm2 + vmovdqu %ymm5,32-128(%rax) + vpaddd %ymm14,%ymm5,%ymm5 + + vpsrld $11,%ymm11,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm11,%ymm2 + vpaddd -96(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm11,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm11,%ymm2 + vpandn %ymm13,%ymm11,%ymm0 + vpand %ymm12,%ymm11,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm15,%ymm14 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm15,%ymm1 + vpxor %ymm4,%ymm0,%ymm0 + vpxor %ymm15,%ymm8,%ymm4 + + vpxor %ymm1,%ymm14,%ymm14 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm15,%ymm1 + + vpslld $19,%ymm15,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm4,%ymm3,%ymm3 + + vpxor %ymm1,%ymm14,%ymm7 + + vpsrld $22,%ymm15,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm15,%ymm2 + vpxor %ymm3,%ymm8,%ymm14 + vpaddd %ymm5,%ymm10,%ymm10 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm14,%ymm14 + vpaddd %ymm7,%ymm14,%ymm14 + vmovd 8(%r12),%xmm5 + vmovd 8(%r8),%xmm0 + vmovd 8(%r13),%xmm1 + vmovd 8(%r9),%xmm2 + vpinsrd $1,8(%r14),%xmm5,%xmm5 + vpinsrd $1,8(%r10),%xmm0,%xmm0 + vpinsrd $1,8(%r15),%xmm1,%xmm1 + vpunpckldq %ymm1,%ymm5,%ymm5 + vpinsrd $1,8(%r11),%xmm2,%xmm2 + vpunpckldq %ymm2,%ymm0,%ymm0 + vinserti128 $1,%xmm0,%ymm5,%ymm5 + vpshufb %ymm6,%ymm5,%ymm5 + vpsrld $6,%ymm10,%ymm7 + vpslld $26,%ymm10,%ymm2 + vmovdqu %ymm5,64-128(%rax) + vpaddd %ymm13,%ymm5,%ymm5 + + vpsrld $11,%ymm10,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm10,%ymm2 + vpaddd -64(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm10,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm10,%ymm2 + vpandn %ymm12,%ymm10,%ymm0 + vpand %ymm11,%ymm10,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm14,%ymm13 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm14,%ymm1 + vpxor %ymm3,%ymm0,%ymm0 + vpxor %ymm14,%ymm15,%ymm3 + + vpxor %ymm1,%ymm13,%ymm13 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm14,%ymm1 + + vpslld $19,%ymm14,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm3,%ymm4,%ymm4 + + vpxor %ymm1,%ymm13,%ymm7 + + vpsrld $22,%ymm14,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm14,%ymm2 + vpxor %ymm4,%ymm15,%ymm13 + vpaddd %ymm5,%ymm9,%ymm9 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm13,%ymm13 + vpaddd %ymm7,%ymm13,%ymm13 + vmovd 12(%r12),%xmm5 + vmovd 12(%r8),%xmm0 + vmovd 12(%r13),%xmm1 + vmovd 12(%r9),%xmm2 + vpinsrd $1,12(%r14),%xmm5,%xmm5 + vpinsrd $1,12(%r10),%xmm0,%xmm0 + vpinsrd $1,12(%r15),%xmm1,%xmm1 + vpunpckldq %ymm1,%ymm5,%ymm5 + vpinsrd $1,12(%r11),%xmm2,%xmm2 + vpunpckldq %ymm2,%ymm0,%ymm0 + vinserti128 $1,%xmm0,%ymm5,%ymm5 + vpshufb %ymm6,%ymm5,%ymm5 + vpsrld $6,%ymm9,%ymm7 + vpslld $26,%ymm9,%ymm2 + vmovdqu %ymm5,96-128(%rax) + vpaddd %ymm12,%ymm5,%ymm5 + + vpsrld $11,%ymm9,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm9,%ymm2 + vpaddd -32(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm9,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm9,%ymm2 + vpandn %ymm11,%ymm9,%ymm0 + vpand %ymm10,%ymm9,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm13,%ymm12 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm13,%ymm1 + vpxor %ymm4,%ymm0,%ymm0 + vpxor %ymm13,%ymm14,%ymm4 + + vpxor %ymm1,%ymm12,%ymm12 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm13,%ymm1 + + vpslld $19,%ymm13,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm4,%ymm3,%ymm3 + + vpxor %ymm1,%ymm12,%ymm7 + + vpsrld $22,%ymm13,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm13,%ymm2 + vpxor %ymm3,%ymm14,%ymm12 + vpaddd %ymm5,%ymm8,%ymm8 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm12,%ymm12 + vpaddd %ymm7,%ymm12,%ymm12 + vmovd 16(%r12),%xmm5 + vmovd 16(%r8),%xmm0 + vmovd 16(%r13),%xmm1 + vmovd 16(%r9),%xmm2 + vpinsrd $1,16(%r14),%xmm5,%xmm5 + vpinsrd $1,16(%r10),%xmm0,%xmm0 + vpinsrd $1,16(%r15),%xmm1,%xmm1 + vpunpckldq %ymm1,%ymm5,%ymm5 + vpinsrd $1,16(%r11),%xmm2,%xmm2 + vpunpckldq %ymm2,%ymm0,%ymm0 + vinserti128 $1,%xmm0,%ymm5,%ymm5 + vpshufb %ymm6,%ymm5,%ymm5 + vpsrld $6,%ymm8,%ymm7 + vpslld $26,%ymm8,%ymm2 + vmovdqu %ymm5,128-128(%rax) + vpaddd %ymm11,%ymm5,%ymm5 + + vpsrld $11,%ymm8,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm8,%ymm2 + vpaddd 0(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm8,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm8,%ymm2 + vpandn %ymm10,%ymm8,%ymm0 + vpand %ymm9,%ymm8,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm12,%ymm11 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm12,%ymm1 + vpxor %ymm3,%ymm0,%ymm0 + vpxor %ymm12,%ymm13,%ymm3 + + vpxor %ymm1,%ymm11,%ymm11 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm12,%ymm1 + + vpslld $19,%ymm12,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm3,%ymm4,%ymm4 + + vpxor %ymm1,%ymm11,%ymm7 + + vpsrld $22,%ymm12,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm12,%ymm2 + vpxor %ymm4,%ymm13,%ymm11 + vpaddd %ymm5,%ymm15,%ymm15 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm11,%ymm11 + vpaddd %ymm7,%ymm11,%ymm11 + vmovd 20(%r12),%xmm5 + vmovd 20(%r8),%xmm0 + vmovd 20(%r13),%xmm1 + vmovd 20(%r9),%xmm2 + vpinsrd $1,20(%r14),%xmm5,%xmm5 + vpinsrd $1,20(%r10),%xmm0,%xmm0 + vpinsrd $1,20(%r15),%xmm1,%xmm1 + vpunpckldq %ymm1,%ymm5,%ymm5 + vpinsrd $1,20(%r11),%xmm2,%xmm2 + vpunpckldq %ymm2,%ymm0,%ymm0 + vinserti128 $1,%xmm0,%ymm5,%ymm5 + vpshufb %ymm6,%ymm5,%ymm5 + vpsrld $6,%ymm15,%ymm7 + vpslld $26,%ymm15,%ymm2 + vmovdqu %ymm5,160-128(%rax) + vpaddd %ymm10,%ymm5,%ymm5 + + vpsrld $11,%ymm15,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm15,%ymm2 + vpaddd 32(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm15,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm15,%ymm2 + vpandn %ymm9,%ymm15,%ymm0 + vpand %ymm8,%ymm15,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm11,%ymm10 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm11,%ymm1 + vpxor %ymm4,%ymm0,%ymm0 + vpxor %ymm11,%ymm12,%ymm4 + + vpxor %ymm1,%ymm10,%ymm10 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm11,%ymm1 + + vpslld $19,%ymm11,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm4,%ymm3,%ymm3 + + vpxor %ymm1,%ymm10,%ymm7 + + vpsrld $22,%ymm11,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm11,%ymm2 + vpxor %ymm3,%ymm12,%ymm10 + vpaddd %ymm5,%ymm14,%ymm14 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm10,%ymm10 + vpaddd %ymm7,%ymm10,%ymm10 + vmovd 24(%r12),%xmm5 + vmovd 24(%r8),%xmm0 + vmovd 24(%r13),%xmm1 + vmovd 24(%r9),%xmm2 + vpinsrd $1,24(%r14),%xmm5,%xmm5 + vpinsrd $1,24(%r10),%xmm0,%xmm0 + vpinsrd $1,24(%r15),%xmm1,%xmm1 + vpunpckldq %ymm1,%ymm5,%ymm5 + vpinsrd $1,24(%r11),%xmm2,%xmm2 + vpunpckldq %ymm2,%ymm0,%ymm0 + vinserti128 $1,%xmm0,%ymm5,%ymm5 + vpshufb %ymm6,%ymm5,%ymm5 + vpsrld $6,%ymm14,%ymm7 + vpslld $26,%ymm14,%ymm2 + vmovdqu %ymm5,192-128(%rax) + vpaddd %ymm9,%ymm5,%ymm5 + + vpsrld $11,%ymm14,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm14,%ymm2 + vpaddd 64(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm14,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm14,%ymm2 + vpandn %ymm8,%ymm14,%ymm0 + vpand %ymm15,%ymm14,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm10,%ymm9 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm10,%ymm1 + vpxor %ymm3,%ymm0,%ymm0 + vpxor %ymm10,%ymm11,%ymm3 + + vpxor %ymm1,%ymm9,%ymm9 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm10,%ymm1 + + vpslld $19,%ymm10,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm3,%ymm4,%ymm4 + + vpxor %ymm1,%ymm9,%ymm7 + + vpsrld $22,%ymm10,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm10,%ymm2 + vpxor %ymm4,%ymm11,%ymm9 + vpaddd %ymm5,%ymm13,%ymm13 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm9,%ymm9 + vpaddd %ymm7,%ymm9,%ymm9 + vmovd 28(%r12),%xmm5 + vmovd 28(%r8),%xmm0 + vmovd 28(%r13),%xmm1 + vmovd 28(%r9),%xmm2 + vpinsrd $1,28(%r14),%xmm5,%xmm5 + vpinsrd $1,28(%r10),%xmm0,%xmm0 + vpinsrd $1,28(%r15),%xmm1,%xmm1 + vpunpckldq %ymm1,%ymm5,%ymm5 + vpinsrd $1,28(%r11),%xmm2,%xmm2 + vpunpckldq %ymm2,%ymm0,%ymm0 + vinserti128 $1,%xmm0,%ymm5,%ymm5 + vpshufb %ymm6,%ymm5,%ymm5 + vpsrld $6,%ymm13,%ymm7 + vpslld $26,%ymm13,%ymm2 + vmovdqu %ymm5,224-128(%rax) + vpaddd %ymm8,%ymm5,%ymm5 + + vpsrld $11,%ymm13,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm13,%ymm2 + vpaddd 96(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm13,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm13,%ymm2 + vpandn %ymm15,%ymm13,%ymm0 + vpand %ymm14,%ymm13,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm9,%ymm8 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm9,%ymm1 + vpxor %ymm4,%ymm0,%ymm0 + vpxor %ymm9,%ymm10,%ymm4 + + vpxor %ymm1,%ymm8,%ymm8 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm9,%ymm1 + + vpslld $19,%ymm9,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm4,%ymm3,%ymm3 + + vpxor %ymm1,%ymm8,%ymm7 + + vpsrld $22,%ymm9,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm9,%ymm2 + vpxor %ymm3,%ymm10,%ymm8 + vpaddd %ymm5,%ymm12,%ymm12 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm8,%ymm8 + vpaddd %ymm7,%ymm8,%ymm8 + addq $256,%rbp + vmovd 32(%r12),%xmm5 + vmovd 32(%r8),%xmm0 + vmovd 32(%r13),%xmm1 + vmovd 32(%r9),%xmm2 + vpinsrd $1,32(%r14),%xmm5,%xmm5 + vpinsrd $1,32(%r10),%xmm0,%xmm0 + vpinsrd $1,32(%r15),%xmm1,%xmm1 + vpunpckldq %ymm1,%ymm5,%ymm5 + vpinsrd $1,32(%r11),%xmm2,%xmm2 + vpunpckldq %ymm2,%ymm0,%ymm0 + vinserti128 $1,%xmm0,%ymm5,%ymm5 + vpshufb %ymm6,%ymm5,%ymm5 + vpsrld $6,%ymm12,%ymm7 + vpslld $26,%ymm12,%ymm2 + vmovdqu %ymm5,256-256-128(%rbx) + vpaddd %ymm15,%ymm5,%ymm5 + + vpsrld $11,%ymm12,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm12,%ymm2 + vpaddd -128(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm12,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm12,%ymm2 + vpandn %ymm14,%ymm12,%ymm0 + vpand %ymm13,%ymm12,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm8,%ymm15 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm8,%ymm1 + vpxor %ymm3,%ymm0,%ymm0 + vpxor %ymm8,%ymm9,%ymm3 + + vpxor %ymm1,%ymm15,%ymm15 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm8,%ymm1 + + vpslld $19,%ymm8,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm3,%ymm4,%ymm4 + + vpxor %ymm1,%ymm15,%ymm7 + + vpsrld $22,%ymm8,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm8,%ymm2 + vpxor %ymm4,%ymm9,%ymm15 + vpaddd %ymm5,%ymm11,%ymm11 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm15,%ymm15 + vpaddd %ymm7,%ymm15,%ymm15 + vmovd 36(%r12),%xmm5 + vmovd 36(%r8),%xmm0 + vmovd 36(%r13),%xmm1 + vmovd 36(%r9),%xmm2 + vpinsrd $1,36(%r14),%xmm5,%xmm5 + vpinsrd $1,36(%r10),%xmm0,%xmm0 + vpinsrd $1,36(%r15),%xmm1,%xmm1 + vpunpckldq %ymm1,%ymm5,%ymm5 + vpinsrd $1,36(%r11),%xmm2,%xmm2 + vpunpckldq %ymm2,%ymm0,%ymm0 + vinserti128 $1,%xmm0,%ymm5,%ymm5 + vpshufb %ymm6,%ymm5,%ymm5 + vpsrld $6,%ymm11,%ymm7 + vpslld $26,%ymm11,%ymm2 + vmovdqu %ymm5,288-256-128(%rbx) + vpaddd %ymm14,%ymm5,%ymm5 + + vpsrld $11,%ymm11,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm11,%ymm2 + vpaddd -96(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm11,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm11,%ymm2 + vpandn %ymm13,%ymm11,%ymm0 + vpand %ymm12,%ymm11,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm15,%ymm14 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm15,%ymm1 + vpxor %ymm4,%ymm0,%ymm0 + vpxor %ymm15,%ymm8,%ymm4 + + vpxor %ymm1,%ymm14,%ymm14 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm15,%ymm1 + + vpslld $19,%ymm15,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm4,%ymm3,%ymm3 + + vpxor %ymm1,%ymm14,%ymm7 + + vpsrld $22,%ymm15,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm15,%ymm2 + vpxor %ymm3,%ymm8,%ymm14 + vpaddd %ymm5,%ymm10,%ymm10 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm14,%ymm14 + vpaddd %ymm7,%ymm14,%ymm14 + vmovd 40(%r12),%xmm5 + vmovd 40(%r8),%xmm0 + vmovd 40(%r13),%xmm1 + vmovd 40(%r9),%xmm2 + vpinsrd $1,40(%r14),%xmm5,%xmm5 + vpinsrd $1,40(%r10),%xmm0,%xmm0 + vpinsrd $1,40(%r15),%xmm1,%xmm1 + vpunpckldq %ymm1,%ymm5,%ymm5 + vpinsrd $1,40(%r11),%xmm2,%xmm2 + vpunpckldq %ymm2,%ymm0,%ymm0 + vinserti128 $1,%xmm0,%ymm5,%ymm5 + vpshufb %ymm6,%ymm5,%ymm5 + vpsrld $6,%ymm10,%ymm7 + vpslld $26,%ymm10,%ymm2 + vmovdqu %ymm5,320-256-128(%rbx) + vpaddd %ymm13,%ymm5,%ymm5 + + vpsrld $11,%ymm10,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm10,%ymm2 + vpaddd -64(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm10,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm10,%ymm2 + vpandn %ymm12,%ymm10,%ymm0 + vpand %ymm11,%ymm10,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm14,%ymm13 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm14,%ymm1 + vpxor %ymm3,%ymm0,%ymm0 + vpxor %ymm14,%ymm15,%ymm3 + + vpxor %ymm1,%ymm13,%ymm13 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm14,%ymm1 + + vpslld $19,%ymm14,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm3,%ymm4,%ymm4 + + vpxor %ymm1,%ymm13,%ymm7 + + vpsrld $22,%ymm14,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm14,%ymm2 + vpxor %ymm4,%ymm15,%ymm13 + vpaddd %ymm5,%ymm9,%ymm9 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm13,%ymm13 + vpaddd %ymm7,%ymm13,%ymm13 + vmovd 44(%r12),%xmm5 + vmovd 44(%r8),%xmm0 + vmovd 44(%r13),%xmm1 + vmovd 44(%r9),%xmm2 + vpinsrd $1,44(%r14),%xmm5,%xmm5 + vpinsrd $1,44(%r10),%xmm0,%xmm0 + vpinsrd $1,44(%r15),%xmm1,%xmm1 + vpunpckldq %ymm1,%ymm5,%ymm5 + vpinsrd $1,44(%r11),%xmm2,%xmm2 + vpunpckldq %ymm2,%ymm0,%ymm0 + vinserti128 $1,%xmm0,%ymm5,%ymm5 + vpshufb %ymm6,%ymm5,%ymm5 + vpsrld $6,%ymm9,%ymm7 + vpslld $26,%ymm9,%ymm2 + vmovdqu %ymm5,352-256-128(%rbx) + vpaddd %ymm12,%ymm5,%ymm5 + + vpsrld $11,%ymm9,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm9,%ymm2 + vpaddd -32(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm9,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm9,%ymm2 + vpandn %ymm11,%ymm9,%ymm0 + vpand %ymm10,%ymm9,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm13,%ymm12 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm13,%ymm1 + vpxor %ymm4,%ymm0,%ymm0 + vpxor %ymm13,%ymm14,%ymm4 + + vpxor %ymm1,%ymm12,%ymm12 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm13,%ymm1 + + vpslld $19,%ymm13,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm4,%ymm3,%ymm3 + + vpxor %ymm1,%ymm12,%ymm7 + + vpsrld $22,%ymm13,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm13,%ymm2 + vpxor %ymm3,%ymm14,%ymm12 + vpaddd %ymm5,%ymm8,%ymm8 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm12,%ymm12 + vpaddd %ymm7,%ymm12,%ymm12 + vmovd 48(%r12),%xmm5 + vmovd 48(%r8),%xmm0 + vmovd 48(%r13),%xmm1 + vmovd 48(%r9),%xmm2 + vpinsrd $1,48(%r14),%xmm5,%xmm5 + vpinsrd $1,48(%r10),%xmm0,%xmm0 + vpinsrd $1,48(%r15),%xmm1,%xmm1 + vpunpckldq %ymm1,%ymm5,%ymm5 + vpinsrd $1,48(%r11),%xmm2,%xmm2 + vpunpckldq %ymm2,%ymm0,%ymm0 + vinserti128 $1,%xmm0,%ymm5,%ymm5 + vpshufb %ymm6,%ymm5,%ymm5 + vpsrld $6,%ymm8,%ymm7 + vpslld $26,%ymm8,%ymm2 + vmovdqu %ymm5,384-256-128(%rbx) + vpaddd %ymm11,%ymm5,%ymm5 + + vpsrld $11,%ymm8,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm8,%ymm2 + vpaddd 0(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm8,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm8,%ymm2 + vpandn %ymm10,%ymm8,%ymm0 + vpand %ymm9,%ymm8,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm12,%ymm11 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm12,%ymm1 + vpxor %ymm3,%ymm0,%ymm0 + vpxor %ymm12,%ymm13,%ymm3 + + vpxor %ymm1,%ymm11,%ymm11 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm12,%ymm1 + + vpslld $19,%ymm12,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm3,%ymm4,%ymm4 + + vpxor %ymm1,%ymm11,%ymm7 + + vpsrld $22,%ymm12,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm12,%ymm2 + vpxor %ymm4,%ymm13,%ymm11 + vpaddd %ymm5,%ymm15,%ymm15 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm11,%ymm11 + vpaddd %ymm7,%ymm11,%ymm11 + vmovd 52(%r12),%xmm5 + vmovd 52(%r8),%xmm0 + vmovd 52(%r13),%xmm1 + vmovd 52(%r9),%xmm2 + vpinsrd $1,52(%r14),%xmm5,%xmm5 + vpinsrd $1,52(%r10),%xmm0,%xmm0 + vpinsrd $1,52(%r15),%xmm1,%xmm1 + vpunpckldq %ymm1,%ymm5,%ymm5 + vpinsrd $1,52(%r11),%xmm2,%xmm2 + vpunpckldq %ymm2,%ymm0,%ymm0 + vinserti128 $1,%xmm0,%ymm5,%ymm5 + vpshufb %ymm6,%ymm5,%ymm5 + vpsrld $6,%ymm15,%ymm7 + vpslld $26,%ymm15,%ymm2 + vmovdqu %ymm5,416-256-128(%rbx) + vpaddd %ymm10,%ymm5,%ymm5 + + vpsrld $11,%ymm15,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm15,%ymm2 + vpaddd 32(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm15,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm15,%ymm2 + vpandn %ymm9,%ymm15,%ymm0 + vpand %ymm8,%ymm15,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm11,%ymm10 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm11,%ymm1 + vpxor %ymm4,%ymm0,%ymm0 + vpxor %ymm11,%ymm12,%ymm4 + + vpxor %ymm1,%ymm10,%ymm10 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm11,%ymm1 + + vpslld $19,%ymm11,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm4,%ymm3,%ymm3 + + vpxor %ymm1,%ymm10,%ymm7 + + vpsrld $22,%ymm11,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm11,%ymm2 + vpxor %ymm3,%ymm12,%ymm10 + vpaddd %ymm5,%ymm14,%ymm14 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm10,%ymm10 + vpaddd %ymm7,%ymm10,%ymm10 + vmovd 56(%r12),%xmm5 + vmovd 56(%r8),%xmm0 + vmovd 56(%r13),%xmm1 + vmovd 56(%r9),%xmm2 + vpinsrd $1,56(%r14),%xmm5,%xmm5 + vpinsrd $1,56(%r10),%xmm0,%xmm0 + vpinsrd $1,56(%r15),%xmm1,%xmm1 + vpunpckldq %ymm1,%ymm5,%ymm5 + vpinsrd $1,56(%r11),%xmm2,%xmm2 + vpunpckldq %ymm2,%ymm0,%ymm0 + vinserti128 $1,%xmm0,%ymm5,%ymm5 + vpshufb %ymm6,%ymm5,%ymm5 + vpsrld $6,%ymm14,%ymm7 + vpslld $26,%ymm14,%ymm2 + vmovdqu %ymm5,448-256-128(%rbx) + vpaddd %ymm9,%ymm5,%ymm5 + + vpsrld $11,%ymm14,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm14,%ymm2 + vpaddd 64(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm14,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm14,%ymm2 + vpandn %ymm8,%ymm14,%ymm0 + vpand %ymm15,%ymm14,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm10,%ymm9 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm10,%ymm1 + vpxor %ymm3,%ymm0,%ymm0 + vpxor %ymm10,%ymm11,%ymm3 + + vpxor %ymm1,%ymm9,%ymm9 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm10,%ymm1 + + vpslld $19,%ymm10,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm3,%ymm4,%ymm4 + + vpxor %ymm1,%ymm9,%ymm7 + + vpsrld $22,%ymm10,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm10,%ymm2 + vpxor %ymm4,%ymm11,%ymm9 + vpaddd %ymm5,%ymm13,%ymm13 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm9,%ymm9 + vpaddd %ymm7,%ymm9,%ymm9 + vmovd 60(%r12),%xmm5 + leaq 64(%r12),%r12 + vmovd 60(%r8),%xmm0 + leaq 64(%r8),%r8 + vmovd 60(%r13),%xmm1 + leaq 64(%r13),%r13 + vmovd 60(%r9),%xmm2 + leaq 64(%r9),%r9 + vpinsrd $1,60(%r14),%xmm5,%xmm5 + leaq 64(%r14),%r14 + vpinsrd $1,60(%r10),%xmm0,%xmm0 + leaq 64(%r10),%r10 + vpinsrd $1,60(%r15),%xmm1,%xmm1 + leaq 64(%r15),%r15 + vpunpckldq %ymm1,%ymm5,%ymm5 + vpinsrd $1,60(%r11),%xmm2,%xmm2 + leaq 64(%r11),%r11 + vpunpckldq %ymm2,%ymm0,%ymm0 + vinserti128 $1,%xmm0,%ymm5,%ymm5 + vpshufb %ymm6,%ymm5,%ymm5 + vpsrld $6,%ymm13,%ymm7 + vpslld $26,%ymm13,%ymm2 + vmovdqu %ymm5,480-256-128(%rbx) + vpaddd %ymm8,%ymm5,%ymm5 + + vpsrld $11,%ymm13,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm13,%ymm2 + vpaddd 96(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm13,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + prefetcht0 63(%r12) + vpslld $7,%ymm13,%ymm2 + vpandn %ymm15,%ymm13,%ymm0 + vpand %ymm14,%ymm13,%ymm4 + prefetcht0 63(%r13) + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm9,%ymm8 + vpxor %ymm2,%ymm7,%ymm7 + prefetcht0 63(%r14) + vpslld $30,%ymm9,%ymm1 + vpxor %ymm4,%ymm0,%ymm0 + vpxor %ymm9,%ymm10,%ymm4 + prefetcht0 63(%r15) + vpxor %ymm1,%ymm8,%ymm8 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm9,%ymm1 + prefetcht0 63(%r8) + vpslld $19,%ymm9,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm4,%ymm3,%ymm3 + prefetcht0 63(%r9) + vpxor %ymm1,%ymm8,%ymm7 + + vpsrld $22,%ymm9,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + prefetcht0 63(%r10) + vpslld $10,%ymm9,%ymm2 + vpxor %ymm3,%ymm10,%ymm8 + vpaddd %ymm5,%ymm12,%ymm12 + prefetcht0 63(%r11) + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm8,%ymm8 + vpaddd %ymm7,%ymm8,%ymm8 + addq $256,%rbp + vmovdqu 0-128(%rax),%ymm5 + movl $3,%ecx + jmp .Loop_16_xx_avx2 +.align 32 +.Loop_16_xx_avx2: + vmovdqu 32-128(%rax),%ymm6 + vpaddd 288-256-128(%rbx),%ymm5,%ymm5 + + vpsrld $3,%ymm6,%ymm7 + vpsrld $7,%ymm6,%ymm1 + vpslld $25,%ymm6,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $18,%ymm6,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $14,%ymm6,%ymm2 + vmovdqu 448-256-128(%rbx),%ymm0 + vpsrld $10,%ymm0,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $17,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $15,%ymm0,%ymm2 + vpaddd %ymm7,%ymm5,%ymm5 + vpxor %ymm1,%ymm3,%ymm7 + vpsrld $19,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $13,%ymm0,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + vpaddd %ymm7,%ymm5,%ymm5 + vpsrld $6,%ymm12,%ymm7 + vpslld $26,%ymm12,%ymm2 + vmovdqu %ymm5,0-128(%rax) + vpaddd %ymm15,%ymm5,%ymm5 + + vpsrld $11,%ymm12,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm12,%ymm2 + vpaddd -128(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm12,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm12,%ymm2 + vpandn %ymm14,%ymm12,%ymm0 + vpand %ymm13,%ymm12,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm8,%ymm15 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm8,%ymm1 + vpxor %ymm3,%ymm0,%ymm0 + vpxor %ymm8,%ymm9,%ymm3 + + vpxor %ymm1,%ymm15,%ymm15 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm8,%ymm1 + + vpslld $19,%ymm8,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm3,%ymm4,%ymm4 + + vpxor %ymm1,%ymm15,%ymm7 + + vpsrld $22,%ymm8,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm8,%ymm2 + vpxor %ymm4,%ymm9,%ymm15 + vpaddd %ymm5,%ymm11,%ymm11 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm15,%ymm15 + vpaddd %ymm7,%ymm15,%ymm15 + vmovdqu 64-128(%rax),%ymm5 + vpaddd 320-256-128(%rbx),%ymm6,%ymm6 + + vpsrld $3,%ymm5,%ymm7 + vpsrld $7,%ymm5,%ymm1 + vpslld $25,%ymm5,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $18,%ymm5,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $14,%ymm5,%ymm2 + vmovdqu 480-256-128(%rbx),%ymm0 + vpsrld $10,%ymm0,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $17,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $15,%ymm0,%ymm2 + vpaddd %ymm7,%ymm6,%ymm6 + vpxor %ymm1,%ymm4,%ymm7 + vpsrld $19,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $13,%ymm0,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + vpaddd %ymm7,%ymm6,%ymm6 + vpsrld $6,%ymm11,%ymm7 + vpslld $26,%ymm11,%ymm2 + vmovdqu %ymm6,32-128(%rax) + vpaddd %ymm14,%ymm6,%ymm6 + + vpsrld $11,%ymm11,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm11,%ymm2 + vpaddd -96(%rbp),%ymm6,%ymm6 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm11,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm11,%ymm2 + vpandn %ymm13,%ymm11,%ymm0 + vpand %ymm12,%ymm11,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm15,%ymm14 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm15,%ymm1 + vpxor %ymm4,%ymm0,%ymm0 + vpxor %ymm15,%ymm8,%ymm4 + + vpxor %ymm1,%ymm14,%ymm14 + vpaddd %ymm7,%ymm6,%ymm6 + + vpsrld $13,%ymm15,%ymm1 + + vpslld $19,%ymm15,%ymm2 + vpaddd %ymm0,%ymm6,%ymm6 + vpand %ymm4,%ymm3,%ymm3 + + vpxor %ymm1,%ymm14,%ymm7 + + vpsrld $22,%ymm15,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm15,%ymm2 + vpxor %ymm3,%ymm8,%ymm14 + vpaddd %ymm6,%ymm10,%ymm10 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm6,%ymm14,%ymm14 + vpaddd %ymm7,%ymm14,%ymm14 + vmovdqu 96-128(%rax),%ymm6 + vpaddd 352-256-128(%rbx),%ymm5,%ymm5 + + vpsrld $3,%ymm6,%ymm7 + vpsrld $7,%ymm6,%ymm1 + vpslld $25,%ymm6,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $18,%ymm6,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $14,%ymm6,%ymm2 + vmovdqu 0-128(%rax),%ymm0 + vpsrld $10,%ymm0,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $17,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $15,%ymm0,%ymm2 + vpaddd %ymm7,%ymm5,%ymm5 + vpxor %ymm1,%ymm3,%ymm7 + vpsrld $19,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $13,%ymm0,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + vpaddd %ymm7,%ymm5,%ymm5 + vpsrld $6,%ymm10,%ymm7 + vpslld $26,%ymm10,%ymm2 + vmovdqu %ymm5,64-128(%rax) + vpaddd %ymm13,%ymm5,%ymm5 + + vpsrld $11,%ymm10,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm10,%ymm2 + vpaddd -64(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm10,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm10,%ymm2 + vpandn %ymm12,%ymm10,%ymm0 + vpand %ymm11,%ymm10,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm14,%ymm13 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm14,%ymm1 + vpxor %ymm3,%ymm0,%ymm0 + vpxor %ymm14,%ymm15,%ymm3 + + vpxor %ymm1,%ymm13,%ymm13 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm14,%ymm1 + + vpslld $19,%ymm14,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm3,%ymm4,%ymm4 + + vpxor %ymm1,%ymm13,%ymm7 + + vpsrld $22,%ymm14,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm14,%ymm2 + vpxor %ymm4,%ymm15,%ymm13 + vpaddd %ymm5,%ymm9,%ymm9 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm13,%ymm13 + vpaddd %ymm7,%ymm13,%ymm13 + vmovdqu 128-128(%rax),%ymm5 + vpaddd 384-256-128(%rbx),%ymm6,%ymm6 + + vpsrld $3,%ymm5,%ymm7 + vpsrld $7,%ymm5,%ymm1 + vpslld $25,%ymm5,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $18,%ymm5,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $14,%ymm5,%ymm2 + vmovdqu 32-128(%rax),%ymm0 + vpsrld $10,%ymm0,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $17,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $15,%ymm0,%ymm2 + vpaddd %ymm7,%ymm6,%ymm6 + vpxor %ymm1,%ymm4,%ymm7 + vpsrld $19,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $13,%ymm0,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + vpaddd %ymm7,%ymm6,%ymm6 + vpsrld $6,%ymm9,%ymm7 + vpslld $26,%ymm9,%ymm2 + vmovdqu %ymm6,96-128(%rax) + vpaddd %ymm12,%ymm6,%ymm6 + + vpsrld $11,%ymm9,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm9,%ymm2 + vpaddd -32(%rbp),%ymm6,%ymm6 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm9,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm9,%ymm2 + vpandn %ymm11,%ymm9,%ymm0 + vpand %ymm10,%ymm9,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm13,%ymm12 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm13,%ymm1 + vpxor %ymm4,%ymm0,%ymm0 + vpxor %ymm13,%ymm14,%ymm4 + + vpxor %ymm1,%ymm12,%ymm12 + vpaddd %ymm7,%ymm6,%ymm6 + + vpsrld $13,%ymm13,%ymm1 + + vpslld $19,%ymm13,%ymm2 + vpaddd %ymm0,%ymm6,%ymm6 + vpand %ymm4,%ymm3,%ymm3 + + vpxor %ymm1,%ymm12,%ymm7 + + vpsrld $22,%ymm13,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm13,%ymm2 + vpxor %ymm3,%ymm14,%ymm12 + vpaddd %ymm6,%ymm8,%ymm8 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm6,%ymm12,%ymm12 + vpaddd %ymm7,%ymm12,%ymm12 + vmovdqu 160-128(%rax),%ymm6 + vpaddd 416-256-128(%rbx),%ymm5,%ymm5 + + vpsrld $3,%ymm6,%ymm7 + vpsrld $7,%ymm6,%ymm1 + vpslld $25,%ymm6,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $18,%ymm6,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $14,%ymm6,%ymm2 + vmovdqu 64-128(%rax),%ymm0 + vpsrld $10,%ymm0,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $17,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $15,%ymm0,%ymm2 + vpaddd %ymm7,%ymm5,%ymm5 + vpxor %ymm1,%ymm3,%ymm7 + vpsrld $19,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $13,%ymm0,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + vpaddd %ymm7,%ymm5,%ymm5 + vpsrld $6,%ymm8,%ymm7 + vpslld $26,%ymm8,%ymm2 + vmovdqu %ymm5,128-128(%rax) + vpaddd %ymm11,%ymm5,%ymm5 + + vpsrld $11,%ymm8,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm8,%ymm2 + vpaddd 0(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm8,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm8,%ymm2 + vpandn %ymm10,%ymm8,%ymm0 + vpand %ymm9,%ymm8,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm12,%ymm11 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm12,%ymm1 + vpxor %ymm3,%ymm0,%ymm0 + vpxor %ymm12,%ymm13,%ymm3 + + vpxor %ymm1,%ymm11,%ymm11 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm12,%ymm1 + + vpslld $19,%ymm12,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm3,%ymm4,%ymm4 + + vpxor %ymm1,%ymm11,%ymm7 + + vpsrld $22,%ymm12,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm12,%ymm2 + vpxor %ymm4,%ymm13,%ymm11 + vpaddd %ymm5,%ymm15,%ymm15 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm11,%ymm11 + vpaddd %ymm7,%ymm11,%ymm11 + vmovdqu 192-128(%rax),%ymm5 + vpaddd 448-256-128(%rbx),%ymm6,%ymm6 + + vpsrld $3,%ymm5,%ymm7 + vpsrld $7,%ymm5,%ymm1 + vpslld $25,%ymm5,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $18,%ymm5,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $14,%ymm5,%ymm2 + vmovdqu 96-128(%rax),%ymm0 + vpsrld $10,%ymm0,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $17,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $15,%ymm0,%ymm2 + vpaddd %ymm7,%ymm6,%ymm6 + vpxor %ymm1,%ymm4,%ymm7 + vpsrld $19,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $13,%ymm0,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + vpaddd %ymm7,%ymm6,%ymm6 + vpsrld $6,%ymm15,%ymm7 + vpslld $26,%ymm15,%ymm2 + vmovdqu %ymm6,160-128(%rax) + vpaddd %ymm10,%ymm6,%ymm6 + + vpsrld $11,%ymm15,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm15,%ymm2 + vpaddd 32(%rbp),%ymm6,%ymm6 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm15,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm15,%ymm2 + vpandn %ymm9,%ymm15,%ymm0 + vpand %ymm8,%ymm15,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm11,%ymm10 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm11,%ymm1 + vpxor %ymm4,%ymm0,%ymm0 + vpxor %ymm11,%ymm12,%ymm4 + + vpxor %ymm1,%ymm10,%ymm10 + vpaddd %ymm7,%ymm6,%ymm6 + + vpsrld $13,%ymm11,%ymm1 + + vpslld $19,%ymm11,%ymm2 + vpaddd %ymm0,%ymm6,%ymm6 + vpand %ymm4,%ymm3,%ymm3 + + vpxor %ymm1,%ymm10,%ymm7 + + vpsrld $22,%ymm11,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm11,%ymm2 + vpxor %ymm3,%ymm12,%ymm10 + vpaddd %ymm6,%ymm14,%ymm14 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm6,%ymm10,%ymm10 + vpaddd %ymm7,%ymm10,%ymm10 + vmovdqu 224-128(%rax),%ymm6 + vpaddd 480-256-128(%rbx),%ymm5,%ymm5 + + vpsrld $3,%ymm6,%ymm7 + vpsrld $7,%ymm6,%ymm1 + vpslld $25,%ymm6,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $18,%ymm6,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $14,%ymm6,%ymm2 + vmovdqu 128-128(%rax),%ymm0 + vpsrld $10,%ymm0,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $17,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $15,%ymm0,%ymm2 + vpaddd %ymm7,%ymm5,%ymm5 + vpxor %ymm1,%ymm3,%ymm7 + vpsrld $19,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $13,%ymm0,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + vpaddd %ymm7,%ymm5,%ymm5 + vpsrld $6,%ymm14,%ymm7 + vpslld $26,%ymm14,%ymm2 + vmovdqu %ymm5,192-128(%rax) + vpaddd %ymm9,%ymm5,%ymm5 + + vpsrld $11,%ymm14,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm14,%ymm2 + vpaddd 64(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm14,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm14,%ymm2 + vpandn %ymm8,%ymm14,%ymm0 + vpand %ymm15,%ymm14,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm10,%ymm9 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm10,%ymm1 + vpxor %ymm3,%ymm0,%ymm0 + vpxor %ymm10,%ymm11,%ymm3 + + vpxor %ymm1,%ymm9,%ymm9 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm10,%ymm1 + + vpslld $19,%ymm10,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm3,%ymm4,%ymm4 + + vpxor %ymm1,%ymm9,%ymm7 + + vpsrld $22,%ymm10,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm10,%ymm2 + vpxor %ymm4,%ymm11,%ymm9 + vpaddd %ymm5,%ymm13,%ymm13 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm9,%ymm9 + vpaddd %ymm7,%ymm9,%ymm9 + vmovdqu 256-256-128(%rbx),%ymm5 + vpaddd 0-128(%rax),%ymm6,%ymm6 + + vpsrld $3,%ymm5,%ymm7 + vpsrld $7,%ymm5,%ymm1 + vpslld $25,%ymm5,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $18,%ymm5,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $14,%ymm5,%ymm2 + vmovdqu 160-128(%rax),%ymm0 + vpsrld $10,%ymm0,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $17,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $15,%ymm0,%ymm2 + vpaddd %ymm7,%ymm6,%ymm6 + vpxor %ymm1,%ymm4,%ymm7 + vpsrld $19,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $13,%ymm0,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + vpaddd %ymm7,%ymm6,%ymm6 + vpsrld $6,%ymm13,%ymm7 + vpslld $26,%ymm13,%ymm2 + vmovdqu %ymm6,224-128(%rax) + vpaddd %ymm8,%ymm6,%ymm6 + + vpsrld $11,%ymm13,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm13,%ymm2 + vpaddd 96(%rbp),%ymm6,%ymm6 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm13,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm13,%ymm2 + vpandn %ymm15,%ymm13,%ymm0 + vpand %ymm14,%ymm13,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm9,%ymm8 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm9,%ymm1 + vpxor %ymm4,%ymm0,%ymm0 + vpxor %ymm9,%ymm10,%ymm4 + + vpxor %ymm1,%ymm8,%ymm8 + vpaddd %ymm7,%ymm6,%ymm6 + + vpsrld $13,%ymm9,%ymm1 + + vpslld $19,%ymm9,%ymm2 + vpaddd %ymm0,%ymm6,%ymm6 + vpand %ymm4,%ymm3,%ymm3 + + vpxor %ymm1,%ymm8,%ymm7 + + vpsrld $22,%ymm9,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm9,%ymm2 + vpxor %ymm3,%ymm10,%ymm8 + vpaddd %ymm6,%ymm12,%ymm12 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm6,%ymm8,%ymm8 + vpaddd %ymm7,%ymm8,%ymm8 + addq $256,%rbp + vmovdqu 288-256-128(%rbx),%ymm6 + vpaddd 32-128(%rax),%ymm5,%ymm5 + + vpsrld $3,%ymm6,%ymm7 + vpsrld $7,%ymm6,%ymm1 + vpslld $25,%ymm6,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $18,%ymm6,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $14,%ymm6,%ymm2 + vmovdqu 192-128(%rax),%ymm0 + vpsrld $10,%ymm0,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $17,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $15,%ymm0,%ymm2 + vpaddd %ymm7,%ymm5,%ymm5 + vpxor %ymm1,%ymm3,%ymm7 + vpsrld $19,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $13,%ymm0,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + vpaddd %ymm7,%ymm5,%ymm5 + vpsrld $6,%ymm12,%ymm7 + vpslld $26,%ymm12,%ymm2 + vmovdqu %ymm5,256-256-128(%rbx) + vpaddd %ymm15,%ymm5,%ymm5 + + vpsrld $11,%ymm12,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm12,%ymm2 + vpaddd -128(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm12,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm12,%ymm2 + vpandn %ymm14,%ymm12,%ymm0 + vpand %ymm13,%ymm12,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm8,%ymm15 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm8,%ymm1 + vpxor %ymm3,%ymm0,%ymm0 + vpxor %ymm8,%ymm9,%ymm3 + + vpxor %ymm1,%ymm15,%ymm15 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm8,%ymm1 + + vpslld $19,%ymm8,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm3,%ymm4,%ymm4 + + vpxor %ymm1,%ymm15,%ymm7 + + vpsrld $22,%ymm8,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm8,%ymm2 + vpxor %ymm4,%ymm9,%ymm15 + vpaddd %ymm5,%ymm11,%ymm11 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm15,%ymm15 + vpaddd %ymm7,%ymm15,%ymm15 + vmovdqu 320-256-128(%rbx),%ymm5 + vpaddd 64-128(%rax),%ymm6,%ymm6 + + vpsrld $3,%ymm5,%ymm7 + vpsrld $7,%ymm5,%ymm1 + vpslld $25,%ymm5,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $18,%ymm5,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $14,%ymm5,%ymm2 + vmovdqu 224-128(%rax),%ymm0 + vpsrld $10,%ymm0,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $17,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $15,%ymm0,%ymm2 + vpaddd %ymm7,%ymm6,%ymm6 + vpxor %ymm1,%ymm4,%ymm7 + vpsrld $19,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $13,%ymm0,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + vpaddd %ymm7,%ymm6,%ymm6 + vpsrld $6,%ymm11,%ymm7 + vpslld $26,%ymm11,%ymm2 + vmovdqu %ymm6,288-256-128(%rbx) + vpaddd %ymm14,%ymm6,%ymm6 + + vpsrld $11,%ymm11,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm11,%ymm2 + vpaddd -96(%rbp),%ymm6,%ymm6 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm11,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm11,%ymm2 + vpandn %ymm13,%ymm11,%ymm0 + vpand %ymm12,%ymm11,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm15,%ymm14 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm15,%ymm1 + vpxor %ymm4,%ymm0,%ymm0 + vpxor %ymm15,%ymm8,%ymm4 + + vpxor %ymm1,%ymm14,%ymm14 + vpaddd %ymm7,%ymm6,%ymm6 + + vpsrld $13,%ymm15,%ymm1 + + vpslld $19,%ymm15,%ymm2 + vpaddd %ymm0,%ymm6,%ymm6 + vpand %ymm4,%ymm3,%ymm3 + + vpxor %ymm1,%ymm14,%ymm7 + + vpsrld $22,%ymm15,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm15,%ymm2 + vpxor %ymm3,%ymm8,%ymm14 + vpaddd %ymm6,%ymm10,%ymm10 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm6,%ymm14,%ymm14 + vpaddd %ymm7,%ymm14,%ymm14 + vmovdqu 352-256-128(%rbx),%ymm6 + vpaddd 96-128(%rax),%ymm5,%ymm5 + + vpsrld $3,%ymm6,%ymm7 + vpsrld $7,%ymm6,%ymm1 + vpslld $25,%ymm6,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $18,%ymm6,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $14,%ymm6,%ymm2 + vmovdqu 256-256-128(%rbx),%ymm0 + vpsrld $10,%ymm0,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $17,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $15,%ymm0,%ymm2 + vpaddd %ymm7,%ymm5,%ymm5 + vpxor %ymm1,%ymm3,%ymm7 + vpsrld $19,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $13,%ymm0,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + vpaddd %ymm7,%ymm5,%ymm5 + vpsrld $6,%ymm10,%ymm7 + vpslld $26,%ymm10,%ymm2 + vmovdqu %ymm5,320-256-128(%rbx) + vpaddd %ymm13,%ymm5,%ymm5 + + vpsrld $11,%ymm10,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm10,%ymm2 + vpaddd -64(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm10,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm10,%ymm2 + vpandn %ymm12,%ymm10,%ymm0 + vpand %ymm11,%ymm10,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm14,%ymm13 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm14,%ymm1 + vpxor %ymm3,%ymm0,%ymm0 + vpxor %ymm14,%ymm15,%ymm3 + + vpxor %ymm1,%ymm13,%ymm13 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm14,%ymm1 + + vpslld $19,%ymm14,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm3,%ymm4,%ymm4 + + vpxor %ymm1,%ymm13,%ymm7 + + vpsrld $22,%ymm14,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm14,%ymm2 + vpxor %ymm4,%ymm15,%ymm13 + vpaddd %ymm5,%ymm9,%ymm9 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm13,%ymm13 + vpaddd %ymm7,%ymm13,%ymm13 + vmovdqu 384-256-128(%rbx),%ymm5 + vpaddd 128-128(%rax),%ymm6,%ymm6 + + vpsrld $3,%ymm5,%ymm7 + vpsrld $7,%ymm5,%ymm1 + vpslld $25,%ymm5,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $18,%ymm5,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $14,%ymm5,%ymm2 + vmovdqu 288-256-128(%rbx),%ymm0 + vpsrld $10,%ymm0,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $17,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $15,%ymm0,%ymm2 + vpaddd %ymm7,%ymm6,%ymm6 + vpxor %ymm1,%ymm4,%ymm7 + vpsrld $19,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $13,%ymm0,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + vpaddd %ymm7,%ymm6,%ymm6 + vpsrld $6,%ymm9,%ymm7 + vpslld $26,%ymm9,%ymm2 + vmovdqu %ymm6,352-256-128(%rbx) + vpaddd %ymm12,%ymm6,%ymm6 + + vpsrld $11,%ymm9,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm9,%ymm2 + vpaddd -32(%rbp),%ymm6,%ymm6 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm9,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm9,%ymm2 + vpandn %ymm11,%ymm9,%ymm0 + vpand %ymm10,%ymm9,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm13,%ymm12 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm13,%ymm1 + vpxor %ymm4,%ymm0,%ymm0 + vpxor %ymm13,%ymm14,%ymm4 + + vpxor %ymm1,%ymm12,%ymm12 + vpaddd %ymm7,%ymm6,%ymm6 + + vpsrld $13,%ymm13,%ymm1 + + vpslld $19,%ymm13,%ymm2 + vpaddd %ymm0,%ymm6,%ymm6 + vpand %ymm4,%ymm3,%ymm3 + + vpxor %ymm1,%ymm12,%ymm7 + + vpsrld $22,%ymm13,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm13,%ymm2 + vpxor %ymm3,%ymm14,%ymm12 + vpaddd %ymm6,%ymm8,%ymm8 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm6,%ymm12,%ymm12 + vpaddd %ymm7,%ymm12,%ymm12 + vmovdqu 416-256-128(%rbx),%ymm6 + vpaddd 160-128(%rax),%ymm5,%ymm5 + + vpsrld $3,%ymm6,%ymm7 + vpsrld $7,%ymm6,%ymm1 + vpslld $25,%ymm6,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $18,%ymm6,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $14,%ymm6,%ymm2 + vmovdqu 320-256-128(%rbx),%ymm0 + vpsrld $10,%ymm0,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $17,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $15,%ymm0,%ymm2 + vpaddd %ymm7,%ymm5,%ymm5 + vpxor %ymm1,%ymm3,%ymm7 + vpsrld $19,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $13,%ymm0,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + vpaddd %ymm7,%ymm5,%ymm5 + vpsrld $6,%ymm8,%ymm7 + vpslld $26,%ymm8,%ymm2 + vmovdqu %ymm5,384-256-128(%rbx) + vpaddd %ymm11,%ymm5,%ymm5 + + vpsrld $11,%ymm8,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm8,%ymm2 + vpaddd 0(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm8,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm8,%ymm2 + vpandn %ymm10,%ymm8,%ymm0 + vpand %ymm9,%ymm8,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm12,%ymm11 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm12,%ymm1 + vpxor %ymm3,%ymm0,%ymm0 + vpxor %ymm12,%ymm13,%ymm3 + + vpxor %ymm1,%ymm11,%ymm11 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm12,%ymm1 + + vpslld $19,%ymm12,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm3,%ymm4,%ymm4 + + vpxor %ymm1,%ymm11,%ymm7 + + vpsrld $22,%ymm12,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm12,%ymm2 + vpxor %ymm4,%ymm13,%ymm11 + vpaddd %ymm5,%ymm15,%ymm15 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm11,%ymm11 + vpaddd %ymm7,%ymm11,%ymm11 + vmovdqu 448-256-128(%rbx),%ymm5 + vpaddd 192-128(%rax),%ymm6,%ymm6 + + vpsrld $3,%ymm5,%ymm7 + vpsrld $7,%ymm5,%ymm1 + vpslld $25,%ymm5,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $18,%ymm5,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $14,%ymm5,%ymm2 + vmovdqu 352-256-128(%rbx),%ymm0 + vpsrld $10,%ymm0,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $17,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $15,%ymm0,%ymm2 + vpaddd %ymm7,%ymm6,%ymm6 + vpxor %ymm1,%ymm4,%ymm7 + vpsrld $19,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $13,%ymm0,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + vpaddd %ymm7,%ymm6,%ymm6 + vpsrld $6,%ymm15,%ymm7 + vpslld $26,%ymm15,%ymm2 + vmovdqu %ymm6,416-256-128(%rbx) + vpaddd %ymm10,%ymm6,%ymm6 + + vpsrld $11,%ymm15,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm15,%ymm2 + vpaddd 32(%rbp),%ymm6,%ymm6 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm15,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm15,%ymm2 + vpandn %ymm9,%ymm15,%ymm0 + vpand %ymm8,%ymm15,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm11,%ymm10 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm11,%ymm1 + vpxor %ymm4,%ymm0,%ymm0 + vpxor %ymm11,%ymm12,%ymm4 + + vpxor %ymm1,%ymm10,%ymm10 + vpaddd %ymm7,%ymm6,%ymm6 + + vpsrld $13,%ymm11,%ymm1 + + vpslld $19,%ymm11,%ymm2 + vpaddd %ymm0,%ymm6,%ymm6 + vpand %ymm4,%ymm3,%ymm3 + + vpxor %ymm1,%ymm10,%ymm7 + + vpsrld $22,%ymm11,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm11,%ymm2 + vpxor %ymm3,%ymm12,%ymm10 + vpaddd %ymm6,%ymm14,%ymm14 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm6,%ymm10,%ymm10 + vpaddd %ymm7,%ymm10,%ymm10 + vmovdqu 480-256-128(%rbx),%ymm6 + vpaddd 224-128(%rax),%ymm5,%ymm5 + + vpsrld $3,%ymm6,%ymm7 + vpsrld $7,%ymm6,%ymm1 + vpslld $25,%ymm6,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $18,%ymm6,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $14,%ymm6,%ymm2 + vmovdqu 384-256-128(%rbx),%ymm0 + vpsrld $10,%ymm0,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $17,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $15,%ymm0,%ymm2 + vpaddd %ymm7,%ymm5,%ymm5 + vpxor %ymm1,%ymm3,%ymm7 + vpsrld $19,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $13,%ymm0,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + vpaddd %ymm7,%ymm5,%ymm5 + vpsrld $6,%ymm14,%ymm7 + vpslld $26,%ymm14,%ymm2 + vmovdqu %ymm5,448-256-128(%rbx) + vpaddd %ymm9,%ymm5,%ymm5 + + vpsrld $11,%ymm14,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm14,%ymm2 + vpaddd 64(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm14,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm14,%ymm2 + vpandn %ymm8,%ymm14,%ymm0 + vpand %ymm15,%ymm14,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm10,%ymm9 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm10,%ymm1 + vpxor %ymm3,%ymm0,%ymm0 + vpxor %ymm10,%ymm11,%ymm3 + + vpxor %ymm1,%ymm9,%ymm9 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm10,%ymm1 + + vpslld $19,%ymm10,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm3,%ymm4,%ymm4 + + vpxor %ymm1,%ymm9,%ymm7 + + vpsrld $22,%ymm10,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm10,%ymm2 + vpxor %ymm4,%ymm11,%ymm9 + vpaddd %ymm5,%ymm13,%ymm13 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm9,%ymm9 + vpaddd %ymm7,%ymm9,%ymm9 + vmovdqu 0-128(%rax),%ymm5 + vpaddd 256-256-128(%rbx),%ymm6,%ymm6 + + vpsrld $3,%ymm5,%ymm7 + vpsrld $7,%ymm5,%ymm1 + vpslld $25,%ymm5,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $18,%ymm5,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $14,%ymm5,%ymm2 + vmovdqu 416-256-128(%rbx),%ymm0 + vpsrld $10,%ymm0,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $17,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $15,%ymm0,%ymm2 + vpaddd %ymm7,%ymm6,%ymm6 + vpxor %ymm1,%ymm4,%ymm7 + vpsrld $19,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $13,%ymm0,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + vpaddd %ymm7,%ymm6,%ymm6 + vpsrld $6,%ymm13,%ymm7 + vpslld $26,%ymm13,%ymm2 + vmovdqu %ymm6,480-256-128(%rbx) + vpaddd %ymm8,%ymm6,%ymm6 + + vpsrld $11,%ymm13,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm13,%ymm2 + vpaddd 96(%rbp),%ymm6,%ymm6 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm13,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm13,%ymm2 + vpandn %ymm15,%ymm13,%ymm0 + vpand %ymm14,%ymm13,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm9,%ymm8 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm9,%ymm1 + vpxor %ymm4,%ymm0,%ymm0 + vpxor %ymm9,%ymm10,%ymm4 + + vpxor %ymm1,%ymm8,%ymm8 + vpaddd %ymm7,%ymm6,%ymm6 + + vpsrld $13,%ymm9,%ymm1 + + vpslld $19,%ymm9,%ymm2 + vpaddd %ymm0,%ymm6,%ymm6 + vpand %ymm4,%ymm3,%ymm3 + + vpxor %ymm1,%ymm8,%ymm7 + + vpsrld $22,%ymm9,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm9,%ymm2 + vpxor %ymm3,%ymm10,%ymm8 + vpaddd %ymm6,%ymm12,%ymm12 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm6,%ymm8,%ymm8 + vpaddd %ymm7,%ymm8,%ymm8 + addq $256,%rbp + decl %ecx + jnz .Loop_16_xx_avx2 + + movl $1,%ecx + leaq 512(%rsp),%rbx + leaq K256+128(%rip),%rbp + cmpl 0(%rbx),%ecx + cmovgeq %rbp,%r12 + cmpl 4(%rbx),%ecx + cmovgeq %rbp,%r13 + cmpl 8(%rbx),%ecx + cmovgeq %rbp,%r14 + cmpl 12(%rbx),%ecx + cmovgeq %rbp,%r15 + cmpl 16(%rbx),%ecx + cmovgeq %rbp,%r8 + cmpl 20(%rbx),%ecx + cmovgeq %rbp,%r9 + cmpl 24(%rbx),%ecx + cmovgeq %rbp,%r10 + cmpl 28(%rbx),%ecx + cmovgeq %rbp,%r11 + vmovdqa (%rbx),%ymm7 + vpxor %ymm0,%ymm0,%ymm0 + vmovdqa %ymm7,%ymm6 + vpcmpgtd %ymm0,%ymm6,%ymm6 + vpaddd %ymm6,%ymm7,%ymm7 + + vmovdqu 0-128(%rdi),%ymm0 + vpand %ymm6,%ymm8,%ymm8 + vmovdqu 32-128(%rdi),%ymm1 + vpand %ymm6,%ymm9,%ymm9 + vmovdqu 64-128(%rdi),%ymm2 + vpand %ymm6,%ymm10,%ymm10 + vmovdqu 96-128(%rdi),%ymm5 + vpand %ymm6,%ymm11,%ymm11 + vpaddd %ymm0,%ymm8,%ymm8 + vmovdqu 128-128(%rdi),%ymm0 + vpand %ymm6,%ymm12,%ymm12 + vpaddd %ymm1,%ymm9,%ymm9 + vmovdqu 160-128(%rdi),%ymm1 + vpand %ymm6,%ymm13,%ymm13 + vpaddd %ymm2,%ymm10,%ymm10 + vmovdqu 192-128(%rdi),%ymm2 + vpand %ymm6,%ymm14,%ymm14 + vpaddd %ymm5,%ymm11,%ymm11 + vmovdqu 224-128(%rdi),%ymm5 + vpand %ymm6,%ymm15,%ymm15 + vpaddd %ymm0,%ymm12,%ymm12 + vpaddd %ymm1,%ymm13,%ymm13 + vmovdqu %ymm8,0-128(%rdi) + vpaddd %ymm2,%ymm14,%ymm14 + vmovdqu %ymm9,32-128(%rdi) + vpaddd %ymm5,%ymm15,%ymm15 + vmovdqu %ymm10,64-128(%rdi) + vmovdqu %ymm11,96-128(%rdi) + vmovdqu %ymm12,128-128(%rdi) + vmovdqu %ymm13,160-128(%rdi) + vmovdqu %ymm14,192-128(%rdi) + vmovdqu %ymm15,224-128(%rdi) + + vmovdqu %ymm7,(%rbx) + leaq 256+128(%rsp),%rbx + vmovdqu .Lpbswap(%rip),%ymm6 + decl %edx + jnz .Loop_avx2 + + + + + + + +.Ldone_avx2: + movq 544(%rsp),%rax +.cfi_def_cfa %rax,8 + vzeroupper + movq -48(%rax),%r15 +.cfi_restore %r15 + movq -40(%rax),%r14 +.cfi_restore %r14 + movq -32(%rax),%r13 +.cfi_restore %r13 + movq -24(%rax),%r12 +.cfi_restore %r12 + movq -16(%rax),%rbp +.cfi_restore %rbp + movq -8(%rax),%rbx +.cfi_restore %rbx + leaq (%rax),%rsp +.cfi_def_cfa_register %rsp +.Lepilogue_avx2: + .byte 0xf3,0xc3 +.cfi_endproc +.size sha256_multi_block_avx2,.-sha256_multi_block_avx2 +.align 256 +K256: +.long 1116352408,1116352408,1116352408,1116352408 +.long 1116352408,1116352408,1116352408,1116352408 +.long 1899447441,1899447441,1899447441,1899447441 +.long 1899447441,1899447441,1899447441,1899447441 +.long 3049323471,3049323471,3049323471,3049323471 +.long 3049323471,3049323471,3049323471,3049323471 +.long 3921009573,3921009573,3921009573,3921009573 +.long 3921009573,3921009573,3921009573,3921009573 +.long 961987163,961987163,961987163,961987163 +.long 961987163,961987163,961987163,961987163 +.long 1508970993,1508970993,1508970993,1508970993 +.long 1508970993,1508970993,1508970993,1508970993 +.long 2453635748,2453635748,2453635748,2453635748 +.long 2453635748,2453635748,2453635748,2453635748 +.long 2870763221,2870763221,2870763221,2870763221 +.long 2870763221,2870763221,2870763221,2870763221 +.long 3624381080,3624381080,3624381080,3624381080 +.long 3624381080,3624381080,3624381080,3624381080 +.long 310598401,310598401,310598401,310598401 +.long 310598401,310598401,310598401,310598401 +.long 607225278,607225278,607225278,607225278 +.long 607225278,607225278,607225278,607225278 +.long 1426881987,1426881987,1426881987,1426881987 +.long 1426881987,1426881987,1426881987,1426881987 +.long 1925078388,1925078388,1925078388,1925078388 +.long 1925078388,1925078388,1925078388,1925078388 +.long 2162078206,2162078206,2162078206,2162078206 +.long 2162078206,2162078206,2162078206,2162078206 +.long 2614888103,2614888103,2614888103,2614888103 +.long 2614888103,2614888103,2614888103,2614888103 +.long 3248222580,3248222580,3248222580,3248222580 +.long 3248222580,3248222580,3248222580,3248222580 +.long 3835390401,3835390401,3835390401,3835390401 +.long 3835390401,3835390401,3835390401,3835390401 +.long 4022224774,4022224774,4022224774,4022224774 +.long 4022224774,4022224774,4022224774,4022224774 +.long 264347078,264347078,264347078,264347078 +.long 264347078,264347078,264347078,264347078 +.long 604807628,604807628,604807628,604807628 +.long 604807628,604807628,604807628,604807628 +.long 770255983,770255983,770255983,770255983 +.long 770255983,770255983,770255983,770255983 +.long 1249150122,1249150122,1249150122,1249150122 +.long 1249150122,1249150122,1249150122,1249150122 +.long 1555081692,1555081692,1555081692,1555081692 +.long 1555081692,1555081692,1555081692,1555081692 +.long 1996064986,1996064986,1996064986,1996064986 +.long 1996064986,1996064986,1996064986,1996064986 +.long 2554220882,2554220882,2554220882,2554220882 +.long 2554220882,2554220882,2554220882,2554220882 +.long 2821834349,2821834349,2821834349,2821834349 +.long 2821834349,2821834349,2821834349,2821834349 +.long 2952996808,2952996808,2952996808,2952996808 +.long 2952996808,2952996808,2952996808,2952996808 +.long 3210313671,3210313671,3210313671,3210313671 +.long 3210313671,3210313671,3210313671,3210313671 +.long 3336571891,3336571891,3336571891,3336571891 +.long 3336571891,3336571891,3336571891,3336571891 +.long 3584528711,3584528711,3584528711,3584528711 +.long 3584528711,3584528711,3584528711,3584528711 +.long 113926993,113926993,113926993,113926993 +.long 113926993,113926993,113926993,113926993 +.long 338241895,338241895,338241895,338241895 +.long 338241895,338241895,338241895,338241895 +.long 666307205,666307205,666307205,666307205 +.long 666307205,666307205,666307205,666307205 +.long 773529912,773529912,773529912,773529912 +.long 773529912,773529912,773529912,773529912 +.long 1294757372,1294757372,1294757372,1294757372 +.long 1294757372,1294757372,1294757372,1294757372 +.long 1396182291,1396182291,1396182291,1396182291 +.long 1396182291,1396182291,1396182291,1396182291 +.long 1695183700,1695183700,1695183700,1695183700 +.long 1695183700,1695183700,1695183700,1695183700 +.long 1986661051,1986661051,1986661051,1986661051 +.long 1986661051,1986661051,1986661051,1986661051 +.long 2177026350,2177026350,2177026350,2177026350 +.long 2177026350,2177026350,2177026350,2177026350 +.long 2456956037,2456956037,2456956037,2456956037 +.long 2456956037,2456956037,2456956037,2456956037 +.long 2730485921,2730485921,2730485921,2730485921 +.long 2730485921,2730485921,2730485921,2730485921 +.long 2820302411,2820302411,2820302411,2820302411 +.long 2820302411,2820302411,2820302411,2820302411 +.long 3259730800,3259730800,3259730800,3259730800 +.long 3259730800,3259730800,3259730800,3259730800 +.long 3345764771,3345764771,3345764771,3345764771 +.long 3345764771,3345764771,3345764771,3345764771 +.long 3516065817,3516065817,3516065817,3516065817 +.long 3516065817,3516065817,3516065817,3516065817 +.long 3600352804,3600352804,3600352804,3600352804 +.long 3600352804,3600352804,3600352804,3600352804 +.long 4094571909,4094571909,4094571909,4094571909 +.long 4094571909,4094571909,4094571909,4094571909 +.long 275423344,275423344,275423344,275423344 +.long 275423344,275423344,275423344,275423344 +.long 430227734,430227734,430227734,430227734 +.long 430227734,430227734,430227734,430227734 +.long 506948616,506948616,506948616,506948616 +.long 506948616,506948616,506948616,506948616 +.long 659060556,659060556,659060556,659060556 +.long 659060556,659060556,659060556,659060556 +.long 883997877,883997877,883997877,883997877 +.long 883997877,883997877,883997877,883997877 +.long 958139571,958139571,958139571,958139571 +.long 958139571,958139571,958139571,958139571 +.long 1322822218,1322822218,1322822218,1322822218 +.long 1322822218,1322822218,1322822218,1322822218 +.long 1537002063,1537002063,1537002063,1537002063 +.long 1537002063,1537002063,1537002063,1537002063 +.long 1747873779,1747873779,1747873779,1747873779 +.long 1747873779,1747873779,1747873779,1747873779 +.long 1955562222,1955562222,1955562222,1955562222 +.long 1955562222,1955562222,1955562222,1955562222 +.long 2024104815,2024104815,2024104815,2024104815 +.long 2024104815,2024104815,2024104815,2024104815 +.long 2227730452,2227730452,2227730452,2227730452 +.long 2227730452,2227730452,2227730452,2227730452 +.long 2361852424,2361852424,2361852424,2361852424 +.long 2361852424,2361852424,2361852424,2361852424 +.long 2428436474,2428436474,2428436474,2428436474 +.long 2428436474,2428436474,2428436474,2428436474 +.long 2756734187,2756734187,2756734187,2756734187 +.long 2756734187,2756734187,2756734187,2756734187 +.long 3204031479,3204031479,3204031479,3204031479 +.long 3204031479,3204031479,3204031479,3204031479 +.long 3329325298,3329325298,3329325298,3329325298 +.long 3329325298,3329325298,3329325298,3329325298 +.Lpbswap: +.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f +.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f +K256_shaext: +.long 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5 +.long 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5 +.long 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3 +.long 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174 +.long 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc +.long 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da +.long 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7 +.long 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967 +.long 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13 +.long 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85 +.long 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3 +.long 0xd192e819,0xd6990624,0xf40e3585,0x106aa070 +.long 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5 +.long 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3 +.long 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208 +.long 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 +.byte 83,72,65,50,53,54,32,109,117,108,116,105,45,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 diff --git a/vere/ext/openssl/gen/linux-x86_64/crypto/sha/sha256-x86_64.s b/vere/ext/openssl/gen/linux-x86_64/crypto/sha/sha256-x86_64.s new file mode 100644 index 0000000..a7b6090 --- /dev/null +++ b/vere/ext/openssl/gen/linux-x86_64/crypto/sha/sha256-x86_64.s @@ -0,0 +1,5456 @@ +.text + + +.globl sha256_block_data_order +.type sha256_block_data_order,@function +.align 16 +sha256_block_data_order: +.cfi_startproc + leaq OPENSSL_ia32cap_P(%rip),%r11 + movl 0(%r11),%r9d + movl 4(%r11),%r10d + movl 8(%r11),%r11d + testl $536870912,%r11d + jnz _shaext_shortcut + andl $296,%r11d + cmpl $296,%r11d + je .Lavx2_shortcut + andl $1073741824,%r9d + andl $268435968,%r10d + orl %r9d,%r10d + cmpl $1342177792,%r10d + je .Lavx_shortcut + testl $512,%r10d + jnz .Lssse3_shortcut + movq %rsp,%rax +.cfi_def_cfa_register %rax + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_offset %r15,-56 + shlq $4,%rdx + subq $64+32,%rsp + leaq (%rsi,%rdx,4),%rdx + andq $-64,%rsp + movq %rdi,64+0(%rsp) + movq %rsi,64+8(%rsp) + movq %rdx,64+16(%rsp) + movq %rax,88(%rsp) +.cfi_escape 0x0f,0x06,0x77,0xd8,0x00,0x06,0x23,0x08 +.Lprologue: + + movl 0(%rdi),%eax + movl 4(%rdi),%ebx + movl 8(%rdi),%ecx + movl 12(%rdi),%edx + movl 16(%rdi),%r8d + movl 20(%rdi),%r9d + movl 24(%rdi),%r10d + movl 28(%rdi),%r11d + jmp .Lloop + +.align 16 +.Lloop: + movl %ebx,%edi + leaq K256(%rip),%rbp + xorl %ecx,%edi + movl 0(%rsi),%r12d + movl %r8d,%r13d + movl %eax,%r14d + bswapl %r12d + rorl $14,%r13d + movl %r9d,%r15d + + xorl %r8d,%r13d + rorl $9,%r14d + xorl %r10d,%r15d + + movl %r12d,0(%rsp) + xorl %eax,%r14d + andl %r8d,%r15d + + rorl $5,%r13d + addl %r11d,%r12d + xorl %r10d,%r15d + + rorl $11,%r14d + xorl %r8d,%r13d + addl %r15d,%r12d + + movl %eax,%r15d + addl (%rbp),%r12d + xorl %eax,%r14d + + xorl %ebx,%r15d + rorl $6,%r13d + movl %ebx,%r11d + + andl %r15d,%edi + rorl $2,%r14d + addl %r13d,%r12d + + xorl %edi,%r11d + addl %r12d,%edx + addl %r12d,%r11d + + leaq 4(%rbp),%rbp + addl %r14d,%r11d + movl 4(%rsi),%r12d + movl %edx,%r13d + movl %r11d,%r14d + bswapl %r12d + rorl $14,%r13d + movl %r8d,%edi + + xorl %edx,%r13d + rorl $9,%r14d + xorl %r9d,%edi + + movl %r12d,4(%rsp) + xorl %r11d,%r14d + andl %edx,%edi + + rorl $5,%r13d + addl %r10d,%r12d + xorl %r9d,%edi + + rorl $11,%r14d + xorl %edx,%r13d + addl %edi,%r12d + + movl %r11d,%edi + addl (%rbp),%r12d + xorl %r11d,%r14d + + xorl %eax,%edi + rorl $6,%r13d + movl %eax,%r10d + + andl %edi,%r15d + rorl $2,%r14d + addl %r13d,%r12d + + xorl %r15d,%r10d + addl %r12d,%ecx + addl %r12d,%r10d + + leaq 4(%rbp),%rbp + addl %r14d,%r10d + movl 8(%rsi),%r12d + movl %ecx,%r13d + movl %r10d,%r14d + bswapl %r12d + rorl $14,%r13d + movl %edx,%r15d + + xorl %ecx,%r13d + rorl $9,%r14d + xorl %r8d,%r15d + + movl %r12d,8(%rsp) + xorl %r10d,%r14d + andl %ecx,%r15d + + rorl $5,%r13d + addl %r9d,%r12d + xorl %r8d,%r15d + + rorl $11,%r14d + xorl %ecx,%r13d + addl %r15d,%r12d + + movl %r10d,%r15d + addl (%rbp),%r12d + xorl %r10d,%r14d + + xorl %r11d,%r15d + rorl $6,%r13d + movl %r11d,%r9d + + andl %r15d,%edi + rorl $2,%r14d + addl %r13d,%r12d + + xorl %edi,%r9d + addl %r12d,%ebx + addl %r12d,%r9d + + leaq 4(%rbp),%rbp + addl %r14d,%r9d + movl 12(%rsi),%r12d + movl %ebx,%r13d + movl %r9d,%r14d + bswapl %r12d + rorl $14,%r13d + movl %ecx,%edi + + xorl %ebx,%r13d + rorl $9,%r14d + xorl %edx,%edi + + movl %r12d,12(%rsp) + xorl %r9d,%r14d + andl %ebx,%edi + + rorl $5,%r13d + addl %r8d,%r12d + xorl %edx,%edi + + rorl $11,%r14d + xorl %ebx,%r13d + addl %edi,%r12d + + movl %r9d,%edi + addl (%rbp),%r12d + xorl %r9d,%r14d + + xorl %r10d,%edi + rorl $6,%r13d + movl %r10d,%r8d + + andl %edi,%r15d + rorl $2,%r14d + addl %r13d,%r12d + + xorl %r15d,%r8d + addl %r12d,%eax + addl %r12d,%r8d + + leaq 20(%rbp),%rbp + addl %r14d,%r8d + movl 16(%rsi),%r12d + movl %eax,%r13d + movl %r8d,%r14d + bswapl %r12d + rorl $14,%r13d + movl %ebx,%r15d + + xorl %eax,%r13d + rorl $9,%r14d + xorl %ecx,%r15d + + movl %r12d,16(%rsp) + xorl %r8d,%r14d + andl %eax,%r15d + + rorl $5,%r13d + addl %edx,%r12d + xorl %ecx,%r15d + + rorl $11,%r14d + xorl %eax,%r13d + addl %r15d,%r12d + + movl %r8d,%r15d + addl (%rbp),%r12d + xorl %r8d,%r14d + + xorl %r9d,%r15d + rorl $6,%r13d + movl %r9d,%edx + + andl %r15d,%edi + rorl $2,%r14d + addl %r13d,%r12d + + xorl %edi,%edx + addl %r12d,%r11d + addl %r12d,%edx + + leaq 4(%rbp),%rbp + addl %r14d,%edx + movl 20(%rsi),%r12d + movl %r11d,%r13d + movl %edx,%r14d + bswapl %r12d + rorl $14,%r13d + movl %eax,%edi + + xorl %r11d,%r13d + rorl $9,%r14d + xorl %ebx,%edi + + movl %r12d,20(%rsp) + xorl %edx,%r14d + andl %r11d,%edi + + rorl $5,%r13d + addl %ecx,%r12d + xorl %ebx,%edi + + rorl $11,%r14d + xorl %r11d,%r13d + addl %edi,%r12d + + movl %edx,%edi + addl (%rbp),%r12d + xorl %edx,%r14d + + xorl %r8d,%edi + rorl $6,%r13d + movl %r8d,%ecx + + andl %edi,%r15d + rorl $2,%r14d + addl %r13d,%r12d + + xorl %r15d,%ecx + addl %r12d,%r10d + addl %r12d,%ecx + + leaq 4(%rbp),%rbp + addl %r14d,%ecx + movl 24(%rsi),%r12d + movl %r10d,%r13d + movl %ecx,%r14d + bswapl %r12d + rorl $14,%r13d + movl %r11d,%r15d + + xorl %r10d,%r13d + rorl $9,%r14d + xorl %eax,%r15d + + movl %r12d,24(%rsp) + xorl %ecx,%r14d + andl %r10d,%r15d + + rorl $5,%r13d + addl %ebx,%r12d + xorl %eax,%r15d + + rorl $11,%r14d + xorl %r10d,%r13d + addl %r15d,%r12d + + movl %ecx,%r15d + addl (%rbp),%r12d + xorl %ecx,%r14d + + xorl %edx,%r15d + rorl $6,%r13d + movl %edx,%ebx + + andl %r15d,%edi + rorl $2,%r14d + addl %r13d,%r12d + + xorl %edi,%ebx + addl %r12d,%r9d + addl %r12d,%ebx + + leaq 4(%rbp),%rbp + addl %r14d,%ebx + movl 28(%rsi),%r12d + movl %r9d,%r13d + movl %ebx,%r14d + bswapl %r12d + rorl $14,%r13d + movl %r10d,%edi + + xorl %r9d,%r13d + rorl $9,%r14d + xorl %r11d,%edi + + movl %r12d,28(%rsp) + xorl %ebx,%r14d + andl %r9d,%edi + + rorl $5,%r13d + addl %eax,%r12d + xorl %r11d,%edi + + rorl $11,%r14d + xorl %r9d,%r13d + addl %edi,%r12d + + movl %ebx,%edi + addl (%rbp),%r12d + xorl %ebx,%r14d + + xorl %ecx,%edi + rorl $6,%r13d + movl %ecx,%eax + + andl %edi,%r15d + rorl $2,%r14d + addl %r13d,%r12d + + xorl %r15d,%eax + addl %r12d,%r8d + addl %r12d,%eax + + leaq 20(%rbp),%rbp + addl %r14d,%eax + movl 32(%rsi),%r12d + movl %r8d,%r13d + movl %eax,%r14d + bswapl %r12d + rorl $14,%r13d + movl %r9d,%r15d + + xorl %r8d,%r13d + rorl $9,%r14d + xorl %r10d,%r15d + + movl %r12d,32(%rsp) + xorl %eax,%r14d + andl %r8d,%r15d + + rorl $5,%r13d + addl %r11d,%r12d + xorl %r10d,%r15d + + rorl $11,%r14d + xorl %r8d,%r13d + addl %r15d,%r12d + + movl %eax,%r15d + addl (%rbp),%r12d + xorl %eax,%r14d + + xorl %ebx,%r15d + rorl $6,%r13d + movl %ebx,%r11d + + andl %r15d,%edi + rorl $2,%r14d + addl %r13d,%r12d + + xorl %edi,%r11d + addl %r12d,%edx + addl %r12d,%r11d + + leaq 4(%rbp),%rbp + addl %r14d,%r11d + movl 36(%rsi),%r12d + movl %edx,%r13d + movl %r11d,%r14d + bswapl %r12d + rorl $14,%r13d + movl %r8d,%edi + + xorl %edx,%r13d + rorl $9,%r14d + xorl %r9d,%edi + + movl %r12d,36(%rsp) + xorl %r11d,%r14d + andl %edx,%edi + + rorl $5,%r13d + addl %r10d,%r12d + xorl %r9d,%edi + + rorl $11,%r14d + xorl %edx,%r13d + addl %edi,%r12d + + movl %r11d,%edi + addl (%rbp),%r12d + xorl %r11d,%r14d + + xorl %eax,%edi + rorl $6,%r13d + movl %eax,%r10d + + andl %edi,%r15d + rorl $2,%r14d + addl %r13d,%r12d + + xorl %r15d,%r10d + addl %r12d,%ecx + addl %r12d,%r10d + + leaq 4(%rbp),%rbp + addl %r14d,%r10d + movl 40(%rsi),%r12d + movl %ecx,%r13d + movl %r10d,%r14d + bswapl %r12d + rorl $14,%r13d + movl %edx,%r15d + + xorl %ecx,%r13d + rorl $9,%r14d + xorl %r8d,%r15d + + movl %r12d,40(%rsp) + xorl %r10d,%r14d + andl %ecx,%r15d + + rorl $5,%r13d + addl %r9d,%r12d + xorl %r8d,%r15d + + rorl $11,%r14d + xorl %ecx,%r13d + addl %r15d,%r12d + + movl %r10d,%r15d + addl (%rbp),%r12d + xorl %r10d,%r14d + + xorl %r11d,%r15d + rorl $6,%r13d + movl %r11d,%r9d + + andl %r15d,%edi + rorl $2,%r14d + addl %r13d,%r12d + + xorl %edi,%r9d + addl %r12d,%ebx + addl %r12d,%r9d + + leaq 4(%rbp),%rbp + addl %r14d,%r9d + movl 44(%rsi),%r12d + movl %ebx,%r13d + movl %r9d,%r14d + bswapl %r12d + rorl $14,%r13d + movl %ecx,%edi + + xorl %ebx,%r13d + rorl $9,%r14d + xorl %edx,%edi + + movl %r12d,44(%rsp) + xorl %r9d,%r14d + andl %ebx,%edi + + rorl $5,%r13d + addl %r8d,%r12d + xorl %edx,%edi + + rorl $11,%r14d + xorl %ebx,%r13d + addl %edi,%r12d + + movl %r9d,%edi + addl (%rbp),%r12d + xorl %r9d,%r14d + + xorl %r10d,%edi + rorl $6,%r13d + movl %r10d,%r8d + + andl %edi,%r15d + rorl $2,%r14d + addl %r13d,%r12d + + xorl %r15d,%r8d + addl %r12d,%eax + addl %r12d,%r8d + + leaq 20(%rbp),%rbp + addl %r14d,%r8d + movl 48(%rsi),%r12d + movl %eax,%r13d + movl %r8d,%r14d + bswapl %r12d + rorl $14,%r13d + movl %ebx,%r15d + + xorl %eax,%r13d + rorl $9,%r14d + xorl %ecx,%r15d + + movl %r12d,48(%rsp) + xorl %r8d,%r14d + andl %eax,%r15d + + rorl $5,%r13d + addl %edx,%r12d + xorl %ecx,%r15d + + rorl $11,%r14d + xorl %eax,%r13d + addl %r15d,%r12d + + movl %r8d,%r15d + addl (%rbp),%r12d + xorl %r8d,%r14d + + xorl %r9d,%r15d + rorl $6,%r13d + movl %r9d,%edx + + andl %r15d,%edi + rorl $2,%r14d + addl %r13d,%r12d + + xorl %edi,%edx + addl %r12d,%r11d + addl %r12d,%edx + + leaq 4(%rbp),%rbp + addl %r14d,%edx + movl 52(%rsi),%r12d + movl %r11d,%r13d + movl %edx,%r14d + bswapl %r12d + rorl $14,%r13d + movl %eax,%edi + + xorl %r11d,%r13d + rorl $9,%r14d + xorl %ebx,%edi + + movl %r12d,52(%rsp) + xorl %edx,%r14d + andl %r11d,%edi + + rorl $5,%r13d + addl %ecx,%r12d + xorl %ebx,%edi + + rorl $11,%r14d + xorl %r11d,%r13d + addl %edi,%r12d + + movl %edx,%edi + addl (%rbp),%r12d + xorl %edx,%r14d + + xorl %r8d,%edi + rorl $6,%r13d + movl %r8d,%ecx + + andl %edi,%r15d + rorl $2,%r14d + addl %r13d,%r12d + + xorl %r15d,%ecx + addl %r12d,%r10d + addl %r12d,%ecx + + leaq 4(%rbp),%rbp + addl %r14d,%ecx + movl 56(%rsi),%r12d + movl %r10d,%r13d + movl %ecx,%r14d + bswapl %r12d + rorl $14,%r13d + movl %r11d,%r15d + + xorl %r10d,%r13d + rorl $9,%r14d + xorl %eax,%r15d + + movl %r12d,56(%rsp) + xorl %ecx,%r14d + andl %r10d,%r15d + + rorl $5,%r13d + addl %ebx,%r12d + xorl %eax,%r15d + + rorl $11,%r14d + xorl %r10d,%r13d + addl %r15d,%r12d + + movl %ecx,%r15d + addl (%rbp),%r12d + xorl %ecx,%r14d + + xorl %edx,%r15d + rorl $6,%r13d + movl %edx,%ebx + + andl %r15d,%edi + rorl $2,%r14d + addl %r13d,%r12d + + xorl %edi,%ebx + addl %r12d,%r9d + addl %r12d,%ebx + + leaq 4(%rbp),%rbp + addl %r14d,%ebx + movl 60(%rsi),%r12d + movl %r9d,%r13d + movl %ebx,%r14d + bswapl %r12d + rorl $14,%r13d + movl %r10d,%edi + + xorl %r9d,%r13d + rorl $9,%r14d + xorl %r11d,%edi + + movl %r12d,60(%rsp) + xorl %ebx,%r14d + andl %r9d,%edi + + rorl $5,%r13d + addl %eax,%r12d + xorl %r11d,%edi + + rorl $11,%r14d + xorl %r9d,%r13d + addl %edi,%r12d + + movl %ebx,%edi + addl (%rbp),%r12d + xorl %ebx,%r14d + + xorl %ecx,%edi + rorl $6,%r13d + movl %ecx,%eax + + andl %edi,%r15d + rorl $2,%r14d + addl %r13d,%r12d + + xorl %r15d,%eax + addl %r12d,%r8d + addl %r12d,%eax + + leaq 20(%rbp),%rbp + jmp .Lrounds_16_xx +.align 16 +.Lrounds_16_xx: + movl 4(%rsp),%r13d + movl 56(%rsp),%r15d + + movl %r13d,%r12d + rorl $11,%r13d + addl %r14d,%eax + movl %r15d,%r14d + rorl $2,%r15d + + xorl %r12d,%r13d + shrl $3,%r12d + rorl $7,%r13d + xorl %r14d,%r15d + shrl $10,%r14d + + rorl $17,%r15d + xorl %r13d,%r12d + xorl %r14d,%r15d + addl 36(%rsp),%r12d + + addl 0(%rsp),%r12d + movl %r8d,%r13d + addl %r15d,%r12d + movl %eax,%r14d + rorl $14,%r13d + movl %r9d,%r15d + + xorl %r8d,%r13d + rorl $9,%r14d + xorl %r10d,%r15d + + movl %r12d,0(%rsp) + xorl %eax,%r14d + andl %r8d,%r15d + + rorl $5,%r13d + addl %r11d,%r12d + xorl %r10d,%r15d + + rorl $11,%r14d + xorl %r8d,%r13d + addl %r15d,%r12d + + movl %eax,%r15d + addl (%rbp),%r12d + xorl %eax,%r14d + + xorl %ebx,%r15d + rorl $6,%r13d + movl %ebx,%r11d + + andl %r15d,%edi + rorl $2,%r14d + addl %r13d,%r12d + + xorl %edi,%r11d + addl %r12d,%edx + addl %r12d,%r11d + + leaq 4(%rbp),%rbp + movl 8(%rsp),%r13d + movl 60(%rsp),%edi + + movl %r13d,%r12d + rorl $11,%r13d + addl %r14d,%r11d + movl %edi,%r14d + rorl $2,%edi + + xorl %r12d,%r13d + shrl $3,%r12d + rorl $7,%r13d + xorl %r14d,%edi + shrl $10,%r14d + + rorl $17,%edi + xorl %r13d,%r12d + xorl %r14d,%edi + addl 40(%rsp),%r12d + + addl 4(%rsp),%r12d + movl %edx,%r13d + addl %edi,%r12d + movl %r11d,%r14d + rorl $14,%r13d + movl %r8d,%edi + + xorl %edx,%r13d + rorl $9,%r14d + xorl %r9d,%edi + + movl %r12d,4(%rsp) + xorl %r11d,%r14d + andl %edx,%edi + + rorl $5,%r13d + addl %r10d,%r12d + xorl %r9d,%edi + + rorl $11,%r14d + xorl %edx,%r13d + addl %edi,%r12d + + movl %r11d,%edi + addl (%rbp),%r12d + xorl %r11d,%r14d + + xorl %eax,%edi + rorl $6,%r13d + movl %eax,%r10d + + andl %edi,%r15d + rorl $2,%r14d + addl %r13d,%r12d + + xorl %r15d,%r10d + addl %r12d,%ecx + addl %r12d,%r10d + + leaq 4(%rbp),%rbp + movl 12(%rsp),%r13d + movl 0(%rsp),%r15d + + movl %r13d,%r12d + rorl $11,%r13d + addl %r14d,%r10d + movl %r15d,%r14d + rorl $2,%r15d + + xorl %r12d,%r13d + shrl $3,%r12d + rorl $7,%r13d + xorl %r14d,%r15d + shrl $10,%r14d + + rorl $17,%r15d + xorl %r13d,%r12d + xorl %r14d,%r15d + addl 44(%rsp),%r12d + + addl 8(%rsp),%r12d + movl %ecx,%r13d + addl %r15d,%r12d + movl %r10d,%r14d + rorl $14,%r13d + movl %edx,%r15d + + xorl %ecx,%r13d + rorl $9,%r14d + xorl %r8d,%r15d + + movl %r12d,8(%rsp) + xorl %r10d,%r14d + andl %ecx,%r15d + + rorl $5,%r13d + addl %r9d,%r12d + xorl %r8d,%r15d + + rorl $11,%r14d + xorl %ecx,%r13d + addl %r15d,%r12d + + movl %r10d,%r15d + addl (%rbp),%r12d + xorl %r10d,%r14d + + xorl %r11d,%r15d + rorl $6,%r13d + movl %r11d,%r9d + + andl %r15d,%edi + rorl $2,%r14d + addl %r13d,%r12d + + xorl %edi,%r9d + addl %r12d,%ebx + addl %r12d,%r9d + + leaq 4(%rbp),%rbp + movl 16(%rsp),%r13d + movl 4(%rsp),%edi + + movl %r13d,%r12d + rorl $11,%r13d + addl %r14d,%r9d + movl %edi,%r14d + rorl $2,%edi + + xorl %r12d,%r13d + shrl $3,%r12d + rorl $7,%r13d + xorl %r14d,%edi + shrl $10,%r14d + + rorl $17,%edi + xorl %r13d,%r12d + xorl %r14d,%edi + addl 48(%rsp),%r12d + + addl 12(%rsp),%r12d + movl %ebx,%r13d + addl %edi,%r12d + movl %r9d,%r14d + rorl $14,%r13d + movl %ecx,%edi + + xorl %ebx,%r13d + rorl $9,%r14d + xorl %edx,%edi + + movl %r12d,12(%rsp) + xorl %r9d,%r14d + andl %ebx,%edi + + rorl $5,%r13d + addl %r8d,%r12d + xorl %edx,%edi + + rorl $11,%r14d + xorl %ebx,%r13d + addl %edi,%r12d + + movl %r9d,%edi + addl (%rbp),%r12d + xorl %r9d,%r14d + + xorl %r10d,%edi + rorl $6,%r13d + movl %r10d,%r8d + + andl %edi,%r15d + rorl $2,%r14d + addl %r13d,%r12d + + xorl %r15d,%r8d + addl %r12d,%eax + addl %r12d,%r8d + + leaq 20(%rbp),%rbp + movl 20(%rsp),%r13d + movl 8(%rsp),%r15d + + movl %r13d,%r12d + rorl $11,%r13d + addl %r14d,%r8d + movl %r15d,%r14d + rorl $2,%r15d + + xorl %r12d,%r13d + shrl $3,%r12d + rorl $7,%r13d + xorl %r14d,%r15d + shrl $10,%r14d + + rorl $17,%r15d + xorl %r13d,%r12d + xorl %r14d,%r15d + addl 52(%rsp),%r12d + + addl 16(%rsp),%r12d + movl %eax,%r13d + addl %r15d,%r12d + movl %r8d,%r14d + rorl $14,%r13d + movl %ebx,%r15d + + xorl %eax,%r13d + rorl $9,%r14d + xorl %ecx,%r15d + + movl %r12d,16(%rsp) + xorl %r8d,%r14d + andl %eax,%r15d + + rorl $5,%r13d + addl %edx,%r12d + xorl %ecx,%r15d + + rorl $11,%r14d + xorl %eax,%r13d + addl %r15d,%r12d + + movl %r8d,%r15d + addl (%rbp),%r12d + xorl %r8d,%r14d + + xorl %r9d,%r15d + rorl $6,%r13d + movl %r9d,%edx + + andl %r15d,%edi + rorl $2,%r14d + addl %r13d,%r12d + + xorl %edi,%edx + addl %r12d,%r11d + addl %r12d,%edx + + leaq 4(%rbp),%rbp + movl 24(%rsp),%r13d + movl 12(%rsp),%edi + + movl %r13d,%r12d + rorl $11,%r13d + addl %r14d,%edx + movl %edi,%r14d + rorl $2,%edi + + xorl %r12d,%r13d + shrl $3,%r12d + rorl $7,%r13d + xorl %r14d,%edi + shrl $10,%r14d + + rorl $17,%edi + xorl %r13d,%r12d + xorl %r14d,%edi + addl 56(%rsp),%r12d + + addl 20(%rsp),%r12d + movl %r11d,%r13d + addl %edi,%r12d + movl %edx,%r14d + rorl $14,%r13d + movl %eax,%edi + + xorl %r11d,%r13d + rorl $9,%r14d + xorl %ebx,%edi + + movl %r12d,20(%rsp) + xorl %edx,%r14d + andl %r11d,%edi + + rorl $5,%r13d + addl %ecx,%r12d + xorl %ebx,%edi + + rorl $11,%r14d + xorl %r11d,%r13d + addl %edi,%r12d + + movl %edx,%edi + addl (%rbp),%r12d + xorl %edx,%r14d + + xorl %r8d,%edi + rorl $6,%r13d + movl %r8d,%ecx + + andl %edi,%r15d + rorl $2,%r14d + addl %r13d,%r12d + + xorl %r15d,%ecx + addl %r12d,%r10d + addl %r12d,%ecx + + leaq 4(%rbp),%rbp + movl 28(%rsp),%r13d + movl 16(%rsp),%r15d + + movl %r13d,%r12d + rorl $11,%r13d + addl %r14d,%ecx + movl %r15d,%r14d + rorl $2,%r15d + + xorl %r12d,%r13d + shrl $3,%r12d + rorl $7,%r13d + xorl %r14d,%r15d + shrl $10,%r14d + + rorl $17,%r15d + xorl %r13d,%r12d + xorl %r14d,%r15d + addl 60(%rsp),%r12d + + addl 24(%rsp),%r12d + movl %r10d,%r13d + addl %r15d,%r12d + movl %ecx,%r14d + rorl $14,%r13d + movl %r11d,%r15d + + xorl %r10d,%r13d + rorl $9,%r14d + xorl %eax,%r15d + + movl %r12d,24(%rsp) + xorl %ecx,%r14d + andl %r10d,%r15d + + rorl $5,%r13d + addl %ebx,%r12d + xorl %eax,%r15d + + rorl $11,%r14d + xorl %r10d,%r13d + addl %r15d,%r12d + + movl %ecx,%r15d + addl (%rbp),%r12d + xorl %ecx,%r14d + + xorl %edx,%r15d + rorl $6,%r13d + movl %edx,%ebx + + andl %r15d,%edi + rorl $2,%r14d + addl %r13d,%r12d + + xorl %edi,%ebx + addl %r12d,%r9d + addl %r12d,%ebx + + leaq 4(%rbp),%rbp + movl 32(%rsp),%r13d + movl 20(%rsp),%edi + + movl %r13d,%r12d + rorl $11,%r13d + addl %r14d,%ebx + movl %edi,%r14d + rorl $2,%edi + + xorl %r12d,%r13d + shrl $3,%r12d + rorl $7,%r13d + xorl %r14d,%edi + shrl $10,%r14d + + rorl $17,%edi + xorl %r13d,%r12d + xorl %r14d,%edi + addl 0(%rsp),%r12d + + addl 28(%rsp),%r12d + movl %r9d,%r13d + addl %edi,%r12d + movl %ebx,%r14d + rorl $14,%r13d + movl %r10d,%edi + + xorl %r9d,%r13d + rorl $9,%r14d + xorl %r11d,%edi + + movl %r12d,28(%rsp) + xorl %ebx,%r14d + andl %r9d,%edi + + rorl $5,%r13d + addl %eax,%r12d + xorl %r11d,%edi + + rorl $11,%r14d + xorl %r9d,%r13d + addl %edi,%r12d + + movl %ebx,%edi + addl (%rbp),%r12d + xorl %ebx,%r14d + + xorl %ecx,%edi + rorl $6,%r13d + movl %ecx,%eax + + andl %edi,%r15d + rorl $2,%r14d + addl %r13d,%r12d + + xorl %r15d,%eax + addl %r12d,%r8d + addl %r12d,%eax + + leaq 20(%rbp),%rbp + movl 36(%rsp),%r13d + movl 24(%rsp),%r15d + + movl %r13d,%r12d + rorl $11,%r13d + addl %r14d,%eax + movl %r15d,%r14d + rorl $2,%r15d + + xorl %r12d,%r13d + shrl $3,%r12d + rorl $7,%r13d + xorl %r14d,%r15d + shrl $10,%r14d + + rorl $17,%r15d + xorl %r13d,%r12d + xorl %r14d,%r15d + addl 4(%rsp),%r12d + + addl 32(%rsp),%r12d + movl %r8d,%r13d + addl %r15d,%r12d + movl %eax,%r14d + rorl $14,%r13d + movl %r9d,%r15d + + xorl %r8d,%r13d + rorl $9,%r14d + xorl %r10d,%r15d + + movl %r12d,32(%rsp) + xorl %eax,%r14d + andl %r8d,%r15d + + rorl $5,%r13d + addl %r11d,%r12d + xorl %r10d,%r15d + + rorl $11,%r14d + xorl %r8d,%r13d + addl %r15d,%r12d + + movl %eax,%r15d + addl (%rbp),%r12d + xorl %eax,%r14d + + xorl %ebx,%r15d + rorl $6,%r13d + movl %ebx,%r11d + + andl %r15d,%edi + rorl $2,%r14d + addl %r13d,%r12d + + xorl %edi,%r11d + addl %r12d,%edx + addl %r12d,%r11d + + leaq 4(%rbp),%rbp + movl 40(%rsp),%r13d + movl 28(%rsp),%edi + + movl %r13d,%r12d + rorl $11,%r13d + addl %r14d,%r11d + movl %edi,%r14d + rorl $2,%edi + + xorl %r12d,%r13d + shrl $3,%r12d + rorl $7,%r13d + xorl %r14d,%edi + shrl $10,%r14d + + rorl $17,%edi + xorl %r13d,%r12d + xorl %r14d,%edi + addl 8(%rsp),%r12d + + addl 36(%rsp),%r12d + movl %edx,%r13d + addl %edi,%r12d + movl %r11d,%r14d + rorl $14,%r13d + movl %r8d,%edi + + xorl %edx,%r13d + rorl $9,%r14d + xorl %r9d,%edi + + movl %r12d,36(%rsp) + xorl %r11d,%r14d + andl %edx,%edi + + rorl $5,%r13d + addl %r10d,%r12d + xorl %r9d,%edi + + rorl $11,%r14d + xorl %edx,%r13d + addl %edi,%r12d + + movl %r11d,%edi + addl (%rbp),%r12d + xorl %r11d,%r14d + + xorl %eax,%edi + rorl $6,%r13d + movl %eax,%r10d + + andl %edi,%r15d + rorl $2,%r14d + addl %r13d,%r12d + + xorl %r15d,%r10d + addl %r12d,%ecx + addl %r12d,%r10d + + leaq 4(%rbp),%rbp + movl 44(%rsp),%r13d + movl 32(%rsp),%r15d + + movl %r13d,%r12d + rorl $11,%r13d + addl %r14d,%r10d + movl %r15d,%r14d + rorl $2,%r15d + + xorl %r12d,%r13d + shrl $3,%r12d + rorl $7,%r13d + xorl %r14d,%r15d + shrl $10,%r14d + + rorl $17,%r15d + xorl %r13d,%r12d + xorl %r14d,%r15d + addl 12(%rsp),%r12d + + addl 40(%rsp),%r12d + movl %ecx,%r13d + addl %r15d,%r12d + movl %r10d,%r14d + rorl $14,%r13d + movl %edx,%r15d + + xorl %ecx,%r13d + rorl $9,%r14d + xorl %r8d,%r15d + + movl %r12d,40(%rsp) + xorl %r10d,%r14d + andl %ecx,%r15d + + rorl $5,%r13d + addl %r9d,%r12d + xorl %r8d,%r15d + + rorl $11,%r14d + xorl %ecx,%r13d + addl %r15d,%r12d + + movl %r10d,%r15d + addl (%rbp),%r12d + xorl %r10d,%r14d + + xorl %r11d,%r15d + rorl $6,%r13d + movl %r11d,%r9d + + andl %r15d,%edi + rorl $2,%r14d + addl %r13d,%r12d + + xorl %edi,%r9d + addl %r12d,%ebx + addl %r12d,%r9d + + leaq 4(%rbp),%rbp + movl 48(%rsp),%r13d + movl 36(%rsp),%edi + + movl %r13d,%r12d + rorl $11,%r13d + addl %r14d,%r9d + movl %edi,%r14d + rorl $2,%edi + + xorl %r12d,%r13d + shrl $3,%r12d + rorl $7,%r13d + xorl %r14d,%edi + shrl $10,%r14d + + rorl $17,%edi + xorl %r13d,%r12d + xorl %r14d,%edi + addl 16(%rsp),%r12d + + addl 44(%rsp),%r12d + movl %ebx,%r13d + addl %edi,%r12d + movl %r9d,%r14d + rorl $14,%r13d + movl %ecx,%edi + + xorl %ebx,%r13d + rorl $9,%r14d + xorl %edx,%edi + + movl %r12d,44(%rsp) + xorl %r9d,%r14d + andl %ebx,%edi + + rorl $5,%r13d + addl %r8d,%r12d + xorl %edx,%edi + + rorl $11,%r14d + xorl %ebx,%r13d + addl %edi,%r12d + + movl %r9d,%edi + addl (%rbp),%r12d + xorl %r9d,%r14d + + xorl %r10d,%edi + rorl $6,%r13d + movl %r10d,%r8d + + andl %edi,%r15d + rorl $2,%r14d + addl %r13d,%r12d + + xorl %r15d,%r8d + addl %r12d,%eax + addl %r12d,%r8d + + leaq 20(%rbp),%rbp + movl 52(%rsp),%r13d + movl 40(%rsp),%r15d + + movl %r13d,%r12d + rorl $11,%r13d + addl %r14d,%r8d + movl %r15d,%r14d + rorl $2,%r15d + + xorl %r12d,%r13d + shrl $3,%r12d + rorl $7,%r13d + xorl %r14d,%r15d + shrl $10,%r14d + + rorl $17,%r15d + xorl %r13d,%r12d + xorl %r14d,%r15d + addl 20(%rsp),%r12d + + addl 48(%rsp),%r12d + movl %eax,%r13d + addl %r15d,%r12d + movl %r8d,%r14d + rorl $14,%r13d + movl %ebx,%r15d + + xorl %eax,%r13d + rorl $9,%r14d + xorl %ecx,%r15d + + movl %r12d,48(%rsp) + xorl %r8d,%r14d + andl %eax,%r15d + + rorl $5,%r13d + addl %edx,%r12d + xorl %ecx,%r15d + + rorl $11,%r14d + xorl %eax,%r13d + addl %r15d,%r12d + + movl %r8d,%r15d + addl (%rbp),%r12d + xorl %r8d,%r14d + + xorl %r9d,%r15d + rorl $6,%r13d + movl %r9d,%edx + + andl %r15d,%edi + rorl $2,%r14d + addl %r13d,%r12d + + xorl %edi,%edx + addl %r12d,%r11d + addl %r12d,%edx + + leaq 4(%rbp),%rbp + movl 56(%rsp),%r13d + movl 44(%rsp),%edi + + movl %r13d,%r12d + rorl $11,%r13d + addl %r14d,%edx + movl %edi,%r14d + rorl $2,%edi + + xorl %r12d,%r13d + shrl $3,%r12d + rorl $7,%r13d + xorl %r14d,%edi + shrl $10,%r14d + + rorl $17,%edi + xorl %r13d,%r12d + xorl %r14d,%edi + addl 24(%rsp),%r12d + + addl 52(%rsp),%r12d + movl %r11d,%r13d + addl %edi,%r12d + movl %edx,%r14d + rorl $14,%r13d + movl %eax,%edi + + xorl %r11d,%r13d + rorl $9,%r14d + xorl %ebx,%edi + + movl %r12d,52(%rsp) + xorl %edx,%r14d + andl %r11d,%edi + + rorl $5,%r13d + addl %ecx,%r12d + xorl %ebx,%edi + + rorl $11,%r14d + xorl %r11d,%r13d + addl %edi,%r12d + + movl %edx,%edi + addl (%rbp),%r12d + xorl %edx,%r14d + + xorl %r8d,%edi + rorl $6,%r13d + movl %r8d,%ecx + + andl %edi,%r15d + rorl $2,%r14d + addl %r13d,%r12d + + xorl %r15d,%ecx + addl %r12d,%r10d + addl %r12d,%ecx + + leaq 4(%rbp),%rbp + movl 60(%rsp),%r13d + movl 48(%rsp),%r15d + + movl %r13d,%r12d + rorl $11,%r13d + addl %r14d,%ecx + movl %r15d,%r14d + rorl $2,%r15d + + xorl %r12d,%r13d + shrl $3,%r12d + rorl $7,%r13d + xorl %r14d,%r15d + shrl $10,%r14d + + rorl $17,%r15d + xorl %r13d,%r12d + xorl %r14d,%r15d + addl 28(%rsp),%r12d + + addl 56(%rsp),%r12d + movl %r10d,%r13d + addl %r15d,%r12d + movl %ecx,%r14d + rorl $14,%r13d + movl %r11d,%r15d + + xorl %r10d,%r13d + rorl $9,%r14d + xorl %eax,%r15d + + movl %r12d,56(%rsp) + xorl %ecx,%r14d + andl %r10d,%r15d + + rorl $5,%r13d + addl %ebx,%r12d + xorl %eax,%r15d + + rorl $11,%r14d + xorl %r10d,%r13d + addl %r15d,%r12d + + movl %ecx,%r15d + addl (%rbp),%r12d + xorl %ecx,%r14d + + xorl %edx,%r15d + rorl $6,%r13d + movl %edx,%ebx + + andl %r15d,%edi + rorl $2,%r14d + addl %r13d,%r12d + + xorl %edi,%ebx + addl %r12d,%r9d + addl %r12d,%ebx + + leaq 4(%rbp),%rbp + movl 0(%rsp),%r13d + movl 52(%rsp),%edi + + movl %r13d,%r12d + rorl $11,%r13d + addl %r14d,%ebx + movl %edi,%r14d + rorl $2,%edi + + xorl %r12d,%r13d + shrl $3,%r12d + rorl $7,%r13d + xorl %r14d,%edi + shrl $10,%r14d + + rorl $17,%edi + xorl %r13d,%r12d + xorl %r14d,%edi + addl 32(%rsp),%r12d + + addl 60(%rsp),%r12d + movl %r9d,%r13d + addl %edi,%r12d + movl %ebx,%r14d + rorl $14,%r13d + movl %r10d,%edi + + xorl %r9d,%r13d + rorl $9,%r14d + xorl %r11d,%edi + + movl %r12d,60(%rsp) + xorl %ebx,%r14d + andl %r9d,%edi + + rorl $5,%r13d + addl %eax,%r12d + xorl %r11d,%edi + + rorl $11,%r14d + xorl %r9d,%r13d + addl %edi,%r12d + + movl %ebx,%edi + addl (%rbp),%r12d + xorl %ebx,%r14d + + xorl %ecx,%edi + rorl $6,%r13d + movl %ecx,%eax + + andl %edi,%r15d + rorl $2,%r14d + addl %r13d,%r12d + + xorl %r15d,%eax + addl %r12d,%r8d + addl %r12d,%eax + + leaq 20(%rbp),%rbp + cmpb $0,3(%rbp) + jnz .Lrounds_16_xx + + movq 64+0(%rsp),%rdi + addl %r14d,%eax + leaq 64(%rsi),%rsi + + addl 0(%rdi),%eax + addl 4(%rdi),%ebx + addl 8(%rdi),%ecx + addl 12(%rdi),%edx + addl 16(%rdi),%r8d + addl 20(%rdi),%r9d + addl 24(%rdi),%r10d + addl 28(%rdi),%r11d + + cmpq 64+16(%rsp),%rsi + + movl %eax,0(%rdi) + movl %ebx,4(%rdi) + movl %ecx,8(%rdi) + movl %edx,12(%rdi) + movl %r8d,16(%rdi) + movl %r9d,20(%rdi) + movl %r10d,24(%rdi) + movl %r11d,28(%rdi) + jb .Lloop + + movq 88(%rsp),%rsi +.cfi_def_cfa %rsi,8 + movq -48(%rsi),%r15 +.cfi_restore %r15 + movq -40(%rsi),%r14 +.cfi_restore %r14 + movq -32(%rsi),%r13 +.cfi_restore %r13 + movq -24(%rsi),%r12 +.cfi_restore %r12 + movq -16(%rsi),%rbp +.cfi_restore %rbp + movq -8(%rsi),%rbx +.cfi_restore %rbx + leaq (%rsi),%rsp +.cfi_def_cfa_register %rsp +.Lepilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size sha256_block_data_order,.-sha256_block_data_order +.align 64 +.type K256,@object +K256: +.long 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5 +.long 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5 +.long 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5 +.long 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5 +.long 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3 +.long 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3 +.long 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174 +.long 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174 +.long 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc +.long 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc +.long 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da +.long 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da +.long 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7 +.long 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7 +.long 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967 +.long 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967 +.long 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13 +.long 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13 +.long 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85 +.long 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85 +.long 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3 +.long 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3 +.long 0xd192e819,0xd6990624,0xf40e3585,0x106aa070 +.long 0xd192e819,0xd6990624,0xf40e3585,0x106aa070 +.long 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5 +.long 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5 +.long 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3 +.long 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3 +.long 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208 +.long 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208 +.long 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 +.long 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 + +.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f +.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f +.long 0x03020100,0x0b0a0908,0xffffffff,0xffffffff +.long 0x03020100,0x0b0a0908,0xffffffff,0xffffffff +.long 0xffffffff,0xffffffff,0x03020100,0x0b0a0908 +.long 0xffffffff,0xffffffff,0x03020100,0x0b0a0908 +.byte 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.type sha256_block_data_order_shaext,@function +.align 64 +sha256_block_data_order_shaext: +_shaext_shortcut: +.cfi_startproc + leaq K256+128(%rip),%rcx + movdqu (%rdi),%xmm1 + movdqu 16(%rdi),%xmm2 + movdqa 512-128(%rcx),%xmm7 + + pshufd $0x1b,%xmm1,%xmm0 + pshufd $0xb1,%xmm1,%xmm1 + pshufd $0x1b,%xmm2,%xmm2 + movdqa %xmm7,%xmm8 +.byte 102,15,58,15,202,8 + punpcklqdq %xmm0,%xmm2 + jmp .Loop_shaext + +.align 16 +.Loop_shaext: + movdqu (%rsi),%xmm3 + movdqu 16(%rsi),%xmm4 + movdqu 32(%rsi),%xmm5 +.byte 102,15,56,0,223 + movdqu 48(%rsi),%xmm6 + + movdqa 0-128(%rcx),%xmm0 + paddd %xmm3,%xmm0 +.byte 102,15,56,0,231 + movdqa %xmm2,%xmm10 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + nop + movdqa %xmm1,%xmm9 +.byte 15,56,203,202 + + movdqa 32-128(%rcx),%xmm0 + paddd %xmm4,%xmm0 +.byte 102,15,56,0,239 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + leaq 64(%rsi),%rsi +.byte 15,56,204,220 +.byte 15,56,203,202 + + movdqa 64-128(%rcx),%xmm0 + paddd %xmm5,%xmm0 +.byte 102,15,56,0,247 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm6,%xmm7 +.byte 102,15,58,15,253,4 + nop + paddd %xmm7,%xmm3 +.byte 15,56,204,229 +.byte 15,56,203,202 + + movdqa 96-128(%rcx),%xmm0 + paddd %xmm6,%xmm0 +.byte 15,56,205,222 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm3,%xmm7 +.byte 102,15,58,15,254,4 + nop + paddd %xmm7,%xmm4 +.byte 15,56,204,238 +.byte 15,56,203,202 + movdqa 128-128(%rcx),%xmm0 + paddd %xmm3,%xmm0 +.byte 15,56,205,227 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm4,%xmm7 +.byte 102,15,58,15,251,4 + nop + paddd %xmm7,%xmm5 +.byte 15,56,204,243 +.byte 15,56,203,202 + movdqa 160-128(%rcx),%xmm0 + paddd %xmm4,%xmm0 +.byte 15,56,205,236 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm5,%xmm7 +.byte 102,15,58,15,252,4 + nop + paddd %xmm7,%xmm6 +.byte 15,56,204,220 +.byte 15,56,203,202 + movdqa 192-128(%rcx),%xmm0 + paddd %xmm5,%xmm0 +.byte 15,56,205,245 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm6,%xmm7 +.byte 102,15,58,15,253,4 + nop + paddd %xmm7,%xmm3 +.byte 15,56,204,229 +.byte 15,56,203,202 + movdqa 224-128(%rcx),%xmm0 + paddd %xmm6,%xmm0 +.byte 15,56,205,222 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm3,%xmm7 +.byte 102,15,58,15,254,4 + nop + paddd %xmm7,%xmm4 +.byte 15,56,204,238 +.byte 15,56,203,202 + movdqa 256-128(%rcx),%xmm0 + paddd %xmm3,%xmm0 +.byte 15,56,205,227 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm4,%xmm7 +.byte 102,15,58,15,251,4 + nop + paddd %xmm7,%xmm5 +.byte 15,56,204,243 +.byte 15,56,203,202 + movdqa 288-128(%rcx),%xmm0 + paddd %xmm4,%xmm0 +.byte 15,56,205,236 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm5,%xmm7 +.byte 102,15,58,15,252,4 + nop + paddd %xmm7,%xmm6 +.byte 15,56,204,220 +.byte 15,56,203,202 + movdqa 320-128(%rcx),%xmm0 + paddd %xmm5,%xmm0 +.byte 15,56,205,245 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm6,%xmm7 +.byte 102,15,58,15,253,4 + nop + paddd %xmm7,%xmm3 +.byte 15,56,204,229 +.byte 15,56,203,202 + movdqa 352-128(%rcx),%xmm0 + paddd %xmm6,%xmm0 +.byte 15,56,205,222 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm3,%xmm7 +.byte 102,15,58,15,254,4 + nop + paddd %xmm7,%xmm4 +.byte 15,56,204,238 +.byte 15,56,203,202 + movdqa 384-128(%rcx),%xmm0 + paddd %xmm3,%xmm0 +.byte 15,56,205,227 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm4,%xmm7 +.byte 102,15,58,15,251,4 + nop + paddd %xmm7,%xmm5 +.byte 15,56,204,243 +.byte 15,56,203,202 + movdqa 416-128(%rcx),%xmm0 + paddd %xmm4,%xmm0 +.byte 15,56,205,236 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm5,%xmm7 +.byte 102,15,58,15,252,4 +.byte 15,56,203,202 + paddd %xmm7,%xmm6 + + movdqa 448-128(%rcx),%xmm0 + paddd %xmm5,%xmm0 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 +.byte 15,56,205,245 + movdqa %xmm8,%xmm7 +.byte 15,56,203,202 + + movdqa 480-128(%rcx),%xmm0 + paddd %xmm6,%xmm0 + nop +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + decq %rdx + nop +.byte 15,56,203,202 + + paddd %xmm10,%xmm2 + paddd %xmm9,%xmm1 + jnz .Loop_shaext + + pshufd $0xb1,%xmm2,%xmm2 + pshufd $0x1b,%xmm1,%xmm7 + pshufd $0xb1,%xmm1,%xmm1 + punpckhqdq %xmm2,%xmm1 +.byte 102,15,58,15,215,8 + + movdqu %xmm1,(%rdi) + movdqu %xmm2,16(%rdi) + .byte 0xf3,0xc3 +.cfi_endproc +.size sha256_block_data_order_shaext,.-sha256_block_data_order_shaext +.type sha256_block_data_order_ssse3,@function +.align 64 +sha256_block_data_order_ssse3: +.cfi_startproc +.Lssse3_shortcut: + movq %rsp,%rax +.cfi_def_cfa_register %rax + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_offset %r15,-56 + shlq $4,%rdx + subq $96,%rsp + leaq (%rsi,%rdx,4),%rdx + andq $-64,%rsp + movq %rdi,64+0(%rsp) + movq %rsi,64+8(%rsp) + movq %rdx,64+16(%rsp) + movq %rax,88(%rsp) +.cfi_escape 0x0f,0x06,0x77,0xd8,0x00,0x06,0x23,0x08 +.Lprologue_ssse3: + + movl 0(%rdi),%eax + movl 4(%rdi),%ebx + movl 8(%rdi),%ecx + movl 12(%rdi),%edx + movl 16(%rdi),%r8d + movl 20(%rdi),%r9d + movl 24(%rdi),%r10d + movl 28(%rdi),%r11d + + + jmp .Lloop_ssse3 +.align 16 +.Lloop_ssse3: + movdqa K256+512(%rip),%xmm7 + movdqu 0(%rsi),%xmm0 + movdqu 16(%rsi),%xmm1 + movdqu 32(%rsi),%xmm2 +.byte 102,15,56,0,199 + movdqu 48(%rsi),%xmm3 + leaq K256(%rip),%rbp +.byte 102,15,56,0,207 + movdqa 0(%rbp),%xmm4 + movdqa 32(%rbp),%xmm5 +.byte 102,15,56,0,215 + paddd %xmm0,%xmm4 + movdqa 64(%rbp),%xmm6 +.byte 102,15,56,0,223 + movdqa 96(%rbp),%xmm7 + paddd %xmm1,%xmm5 + paddd %xmm2,%xmm6 + paddd %xmm3,%xmm7 + movdqa %xmm4,0(%rsp) + movl %eax,%r14d + movdqa %xmm5,16(%rsp) + movl %ebx,%edi + movdqa %xmm6,32(%rsp) + xorl %ecx,%edi + movdqa %xmm7,48(%rsp) + movl %r8d,%r13d + jmp .Lssse3_00_47 + +.align 16 +.Lssse3_00_47: + subq $-128,%rbp + rorl $14,%r13d + movdqa %xmm1,%xmm4 + movl %r14d,%eax + movl %r9d,%r12d + movdqa %xmm3,%xmm7 + rorl $9,%r14d + xorl %r8d,%r13d + xorl %r10d,%r12d + rorl $5,%r13d + xorl %eax,%r14d +.byte 102,15,58,15,224,4 + andl %r8d,%r12d + xorl %r8d,%r13d +.byte 102,15,58,15,250,4 + addl 0(%rsp),%r11d + movl %eax,%r15d + xorl %r10d,%r12d + rorl $11,%r14d + movdqa %xmm4,%xmm5 + xorl %ebx,%r15d + addl %r12d,%r11d + movdqa %xmm4,%xmm6 + rorl $6,%r13d + andl %r15d,%edi + psrld $3,%xmm4 + xorl %eax,%r14d + addl %r13d,%r11d + xorl %ebx,%edi + paddd %xmm7,%xmm0 + rorl $2,%r14d + addl %r11d,%edx + psrld $7,%xmm6 + addl %edi,%r11d + movl %edx,%r13d + pshufd $250,%xmm3,%xmm7 + addl %r11d,%r14d + rorl $14,%r13d + pslld $14,%xmm5 + movl %r14d,%r11d + movl %r8d,%r12d + pxor %xmm6,%xmm4 + rorl $9,%r14d + xorl %edx,%r13d + xorl %r9d,%r12d + rorl $5,%r13d + psrld $11,%xmm6 + xorl %r11d,%r14d + pxor %xmm5,%xmm4 + andl %edx,%r12d + xorl %edx,%r13d + pslld $11,%xmm5 + addl 4(%rsp),%r10d + movl %r11d,%edi + pxor %xmm6,%xmm4 + xorl %r9d,%r12d + rorl $11,%r14d + movdqa %xmm7,%xmm6 + xorl %eax,%edi + addl %r12d,%r10d + pxor %xmm5,%xmm4 + rorl $6,%r13d + andl %edi,%r15d + xorl %r11d,%r14d + psrld $10,%xmm7 + addl %r13d,%r10d + xorl %eax,%r15d + paddd %xmm4,%xmm0 + rorl $2,%r14d + addl %r10d,%ecx + psrlq $17,%xmm6 + addl %r15d,%r10d + movl %ecx,%r13d + addl %r10d,%r14d + pxor %xmm6,%xmm7 + rorl $14,%r13d + movl %r14d,%r10d + movl %edx,%r12d + rorl $9,%r14d + psrlq $2,%xmm6 + xorl %ecx,%r13d + xorl %r8d,%r12d + pxor %xmm6,%xmm7 + rorl $5,%r13d + xorl %r10d,%r14d + andl %ecx,%r12d + pshufd $128,%xmm7,%xmm7 + xorl %ecx,%r13d + addl 8(%rsp),%r9d + movl %r10d,%r15d + psrldq $8,%xmm7 + xorl %r8d,%r12d + rorl $11,%r14d + xorl %r11d,%r15d + addl %r12d,%r9d + rorl $6,%r13d + paddd %xmm7,%xmm0 + andl %r15d,%edi + xorl %r10d,%r14d + addl %r13d,%r9d + pshufd $80,%xmm0,%xmm7 + xorl %r11d,%edi + rorl $2,%r14d + addl %r9d,%ebx + movdqa %xmm7,%xmm6 + addl %edi,%r9d + movl %ebx,%r13d + psrld $10,%xmm7 + addl %r9d,%r14d + rorl $14,%r13d + psrlq $17,%xmm6 + movl %r14d,%r9d + movl %ecx,%r12d + pxor %xmm6,%xmm7 + rorl $9,%r14d + xorl %ebx,%r13d + xorl %edx,%r12d + rorl $5,%r13d + xorl %r9d,%r14d + psrlq $2,%xmm6 + andl %ebx,%r12d + xorl %ebx,%r13d + addl 12(%rsp),%r8d + pxor %xmm6,%xmm7 + movl %r9d,%edi + xorl %edx,%r12d + rorl $11,%r14d + pshufd $8,%xmm7,%xmm7 + xorl %r10d,%edi + addl %r12d,%r8d + movdqa 0(%rbp),%xmm6 + rorl $6,%r13d + andl %edi,%r15d + pslldq $8,%xmm7 + xorl %r9d,%r14d + addl %r13d,%r8d + xorl %r10d,%r15d + paddd %xmm7,%xmm0 + rorl $2,%r14d + addl %r8d,%eax + addl %r15d,%r8d + paddd %xmm0,%xmm6 + movl %eax,%r13d + addl %r8d,%r14d + movdqa %xmm6,0(%rsp) + rorl $14,%r13d + movdqa %xmm2,%xmm4 + movl %r14d,%r8d + movl %ebx,%r12d + movdqa %xmm0,%xmm7 + rorl $9,%r14d + xorl %eax,%r13d + xorl %ecx,%r12d + rorl $5,%r13d + xorl %r8d,%r14d +.byte 102,15,58,15,225,4 + andl %eax,%r12d + xorl %eax,%r13d +.byte 102,15,58,15,251,4 + addl 16(%rsp),%edx + movl %r8d,%r15d + xorl %ecx,%r12d + rorl $11,%r14d + movdqa %xmm4,%xmm5 + xorl %r9d,%r15d + addl %r12d,%edx + movdqa %xmm4,%xmm6 + rorl $6,%r13d + andl %r15d,%edi + psrld $3,%xmm4 + xorl %r8d,%r14d + addl %r13d,%edx + xorl %r9d,%edi + paddd %xmm7,%xmm1 + rorl $2,%r14d + addl %edx,%r11d + psrld $7,%xmm6 + addl %edi,%edx + movl %r11d,%r13d + pshufd $250,%xmm0,%xmm7 + addl %edx,%r14d + rorl $14,%r13d + pslld $14,%xmm5 + movl %r14d,%edx + movl %eax,%r12d + pxor %xmm6,%xmm4 + rorl $9,%r14d + xorl %r11d,%r13d + xorl %ebx,%r12d + rorl $5,%r13d + psrld $11,%xmm6 + xorl %edx,%r14d + pxor %xmm5,%xmm4 + andl %r11d,%r12d + xorl %r11d,%r13d + pslld $11,%xmm5 + addl 20(%rsp),%ecx + movl %edx,%edi + pxor %xmm6,%xmm4 + xorl %ebx,%r12d + rorl $11,%r14d + movdqa %xmm7,%xmm6 + xorl %r8d,%edi + addl %r12d,%ecx + pxor %xmm5,%xmm4 + rorl $6,%r13d + andl %edi,%r15d + xorl %edx,%r14d + psrld $10,%xmm7 + addl %r13d,%ecx + xorl %r8d,%r15d + paddd %xmm4,%xmm1 + rorl $2,%r14d + addl %ecx,%r10d + psrlq $17,%xmm6 + addl %r15d,%ecx + movl %r10d,%r13d + addl %ecx,%r14d + pxor %xmm6,%xmm7 + rorl $14,%r13d + movl %r14d,%ecx + movl %r11d,%r12d + rorl $9,%r14d + psrlq $2,%xmm6 + xorl %r10d,%r13d + xorl %eax,%r12d + pxor %xmm6,%xmm7 + rorl $5,%r13d + xorl %ecx,%r14d + andl %r10d,%r12d + pshufd $128,%xmm7,%xmm7 + xorl %r10d,%r13d + addl 24(%rsp),%ebx + movl %ecx,%r15d + psrldq $8,%xmm7 + xorl %eax,%r12d + rorl $11,%r14d + xorl %edx,%r15d + addl %r12d,%ebx + rorl $6,%r13d + paddd %xmm7,%xmm1 + andl %r15d,%edi + xorl %ecx,%r14d + addl %r13d,%ebx + pshufd $80,%xmm1,%xmm7 + xorl %edx,%edi + rorl $2,%r14d + addl %ebx,%r9d + movdqa %xmm7,%xmm6 + addl %edi,%ebx + movl %r9d,%r13d + psrld $10,%xmm7 + addl %ebx,%r14d + rorl $14,%r13d + psrlq $17,%xmm6 + movl %r14d,%ebx + movl %r10d,%r12d + pxor %xmm6,%xmm7 + rorl $9,%r14d + xorl %r9d,%r13d + xorl %r11d,%r12d + rorl $5,%r13d + xorl %ebx,%r14d + psrlq $2,%xmm6 + andl %r9d,%r12d + xorl %r9d,%r13d + addl 28(%rsp),%eax + pxor %xmm6,%xmm7 + movl %ebx,%edi + xorl %r11d,%r12d + rorl $11,%r14d + pshufd $8,%xmm7,%xmm7 + xorl %ecx,%edi + addl %r12d,%eax + movdqa 32(%rbp),%xmm6 + rorl $6,%r13d + andl %edi,%r15d + pslldq $8,%xmm7 + xorl %ebx,%r14d + addl %r13d,%eax + xorl %ecx,%r15d + paddd %xmm7,%xmm1 + rorl $2,%r14d + addl %eax,%r8d + addl %r15d,%eax + paddd %xmm1,%xmm6 + movl %r8d,%r13d + addl %eax,%r14d + movdqa %xmm6,16(%rsp) + rorl $14,%r13d + movdqa %xmm3,%xmm4 + movl %r14d,%eax + movl %r9d,%r12d + movdqa %xmm1,%xmm7 + rorl $9,%r14d + xorl %r8d,%r13d + xorl %r10d,%r12d + rorl $5,%r13d + xorl %eax,%r14d +.byte 102,15,58,15,226,4 + andl %r8d,%r12d + xorl %r8d,%r13d +.byte 102,15,58,15,248,4 + addl 32(%rsp),%r11d + movl %eax,%r15d + xorl %r10d,%r12d + rorl $11,%r14d + movdqa %xmm4,%xmm5 + xorl %ebx,%r15d + addl %r12d,%r11d + movdqa %xmm4,%xmm6 + rorl $6,%r13d + andl %r15d,%edi + psrld $3,%xmm4 + xorl %eax,%r14d + addl %r13d,%r11d + xorl %ebx,%edi + paddd %xmm7,%xmm2 + rorl $2,%r14d + addl %r11d,%edx + psrld $7,%xmm6 + addl %edi,%r11d + movl %edx,%r13d + pshufd $250,%xmm1,%xmm7 + addl %r11d,%r14d + rorl $14,%r13d + pslld $14,%xmm5 + movl %r14d,%r11d + movl %r8d,%r12d + pxor %xmm6,%xmm4 + rorl $9,%r14d + xorl %edx,%r13d + xorl %r9d,%r12d + rorl $5,%r13d + psrld $11,%xmm6 + xorl %r11d,%r14d + pxor %xmm5,%xmm4 + andl %edx,%r12d + xorl %edx,%r13d + pslld $11,%xmm5 + addl 36(%rsp),%r10d + movl %r11d,%edi + pxor %xmm6,%xmm4 + xorl %r9d,%r12d + rorl $11,%r14d + movdqa %xmm7,%xmm6 + xorl %eax,%edi + addl %r12d,%r10d + pxor %xmm5,%xmm4 + rorl $6,%r13d + andl %edi,%r15d + xorl %r11d,%r14d + psrld $10,%xmm7 + addl %r13d,%r10d + xorl %eax,%r15d + paddd %xmm4,%xmm2 + rorl $2,%r14d + addl %r10d,%ecx + psrlq $17,%xmm6 + addl %r15d,%r10d + movl %ecx,%r13d + addl %r10d,%r14d + pxor %xmm6,%xmm7 + rorl $14,%r13d + movl %r14d,%r10d + movl %edx,%r12d + rorl $9,%r14d + psrlq $2,%xmm6 + xorl %ecx,%r13d + xorl %r8d,%r12d + pxor %xmm6,%xmm7 + rorl $5,%r13d + xorl %r10d,%r14d + andl %ecx,%r12d + pshufd $128,%xmm7,%xmm7 + xorl %ecx,%r13d + addl 40(%rsp),%r9d + movl %r10d,%r15d + psrldq $8,%xmm7 + xorl %r8d,%r12d + rorl $11,%r14d + xorl %r11d,%r15d + addl %r12d,%r9d + rorl $6,%r13d + paddd %xmm7,%xmm2 + andl %r15d,%edi + xorl %r10d,%r14d + addl %r13d,%r9d + pshufd $80,%xmm2,%xmm7 + xorl %r11d,%edi + rorl $2,%r14d + addl %r9d,%ebx + movdqa %xmm7,%xmm6 + addl %edi,%r9d + movl %ebx,%r13d + psrld $10,%xmm7 + addl %r9d,%r14d + rorl $14,%r13d + psrlq $17,%xmm6 + movl %r14d,%r9d + movl %ecx,%r12d + pxor %xmm6,%xmm7 + rorl $9,%r14d + xorl %ebx,%r13d + xorl %edx,%r12d + rorl $5,%r13d + xorl %r9d,%r14d + psrlq $2,%xmm6 + andl %ebx,%r12d + xorl %ebx,%r13d + addl 44(%rsp),%r8d + pxor %xmm6,%xmm7 + movl %r9d,%edi + xorl %edx,%r12d + rorl $11,%r14d + pshufd $8,%xmm7,%xmm7 + xorl %r10d,%edi + addl %r12d,%r8d + movdqa 64(%rbp),%xmm6 + rorl $6,%r13d + andl %edi,%r15d + pslldq $8,%xmm7 + xorl %r9d,%r14d + addl %r13d,%r8d + xorl %r10d,%r15d + paddd %xmm7,%xmm2 + rorl $2,%r14d + addl %r8d,%eax + addl %r15d,%r8d + paddd %xmm2,%xmm6 + movl %eax,%r13d + addl %r8d,%r14d + movdqa %xmm6,32(%rsp) + rorl $14,%r13d + movdqa %xmm0,%xmm4 + movl %r14d,%r8d + movl %ebx,%r12d + movdqa %xmm2,%xmm7 + rorl $9,%r14d + xorl %eax,%r13d + xorl %ecx,%r12d + rorl $5,%r13d + xorl %r8d,%r14d +.byte 102,15,58,15,227,4 + andl %eax,%r12d + xorl %eax,%r13d +.byte 102,15,58,15,249,4 + addl 48(%rsp),%edx + movl %r8d,%r15d + xorl %ecx,%r12d + rorl $11,%r14d + movdqa %xmm4,%xmm5 + xorl %r9d,%r15d + addl %r12d,%edx + movdqa %xmm4,%xmm6 + rorl $6,%r13d + andl %r15d,%edi + psrld $3,%xmm4 + xorl %r8d,%r14d + addl %r13d,%edx + xorl %r9d,%edi + paddd %xmm7,%xmm3 + rorl $2,%r14d + addl %edx,%r11d + psrld $7,%xmm6 + addl %edi,%edx + movl %r11d,%r13d + pshufd $250,%xmm2,%xmm7 + addl %edx,%r14d + rorl $14,%r13d + pslld $14,%xmm5 + movl %r14d,%edx + movl %eax,%r12d + pxor %xmm6,%xmm4 + rorl $9,%r14d + xorl %r11d,%r13d + xorl %ebx,%r12d + rorl $5,%r13d + psrld $11,%xmm6 + xorl %edx,%r14d + pxor %xmm5,%xmm4 + andl %r11d,%r12d + xorl %r11d,%r13d + pslld $11,%xmm5 + addl 52(%rsp),%ecx + movl %edx,%edi + pxor %xmm6,%xmm4 + xorl %ebx,%r12d + rorl $11,%r14d + movdqa %xmm7,%xmm6 + xorl %r8d,%edi + addl %r12d,%ecx + pxor %xmm5,%xmm4 + rorl $6,%r13d + andl %edi,%r15d + xorl %edx,%r14d + psrld $10,%xmm7 + addl %r13d,%ecx + xorl %r8d,%r15d + paddd %xmm4,%xmm3 + rorl $2,%r14d + addl %ecx,%r10d + psrlq $17,%xmm6 + addl %r15d,%ecx + movl %r10d,%r13d + addl %ecx,%r14d + pxor %xmm6,%xmm7 + rorl $14,%r13d + movl %r14d,%ecx + movl %r11d,%r12d + rorl $9,%r14d + psrlq $2,%xmm6 + xorl %r10d,%r13d + xorl %eax,%r12d + pxor %xmm6,%xmm7 + rorl $5,%r13d + xorl %ecx,%r14d + andl %r10d,%r12d + pshufd $128,%xmm7,%xmm7 + xorl %r10d,%r13d + addl 56(%rsp),%ebx + movl %ecx,%r15d + psrldq $8,%xmm7 + xorl %eax,%r12d + rorl $11,%r14d + xorl %edx,%r15d + addl %r12d,%ebx + rorl $6,%r13d + paddd %xmm7,%xmm3 + andl %r15d,%edi + xorl %ecx,%r14d + addl %r13d,%ebx + pshufd $80,%xmm3,%xmm7 + xorl %edx,%edi + rorl $2,%r14d + addl %ebx,%r9d + movdqa %xmm7,%xmm6 + addl %edi,%ebx + movl %r9d,%r13d + psrld $10,%xmm7 + addl %ebx,%r14d + rorl $14,%r13d + psrlq $17,%xmm6 + movl %r14d,%ebx + movl %r10d,%r12d + pxor %xmm6,%xmm7 + rorl $9,%r14d + xorl %r9d,%r13d + xorl %r11d,%r12d + rorl $5,%r13d + xorl %ebx,%r14d + psrlq $2,%xmm6 + andl %r9d,%r12d + xorl %r9d,%r13d + addl 60(%rsp),%eax + pxor %xmm6,%xmm7 + movl %ebx,%edi + xorl %r11d,%r12d + rorl $11,%r14d + pshufd $8,%xmm7,%xmm7 + xorl %ecx,%edi + addl %r12d,%eax + movdqa 96(%rbp),%xmm6 + rorl $6,%r13d + andl %edi,%r15d + pslldq $8,%xmm7 + xorl %ebx,%r14d + addl %r13d,%eax + xorl %ecx,%r15d + paddd %xmm7,%xmm3 + rorl $2,%r14d + addl %eax,%r8d + addl %r15d,%eax + paddd %xmm3,%xmm6 + movl %r8d,%r13d + addl %eax,%r14d + movdqa %xmm6,48(%rsp) + cmpb $0,131(%rbp) + jne .Lssse3_00_47 + rorl $14,%r13d + movl %r14d,%eax + movl %r9d,%r12d + rorl $9,%r14d + xorl %r8d,%r13d + xorl %r10d,%r12d + rorl $5,%r13d + xorl %eax,%r14d + andl %r8d,%r12d + xorl %r8d,%r13d + addl 0(%rsp),%r11d + movl %eax,%r15d + xorl %r10d,%r12d + rorl $11,%r14d + xorl %ebx,%r15d + addl %r12d,%r11d + rorl $6,%r13d + andl %r15d,%edi + xorl %eax,%r14d + addl %r13d,%r11d + xorl %ebx,%edi + rorl $2,%r14d + addl %r11d,%edx + addl %edi,%r11d + movl %edx,%r13d + addl %r11d,%r14d + rorl $14,%r13d + movl %r14d,%r11d + movl %r8d,%r12d + rorl $9,%r14d + xorl %edx,%r13d + xorl %r9d,%r12d + rorl $5,%r13d + xorl %r11d,%r14d + andl %edx,%r12d + xorl %edx,%r13d + addl 4(%rsp),%r10d + movl %r11d,%edi + xorl %r9d,%r12d + rorl $11,%r14d + xorl %eax,%edi + addl %r12d,%r10d + rorl $6,%r13d + andl %edi,%r15d + xorl %r11d,%r14d + addl %r13d,%r10d + xorl %eax,%r15d + rorl $2,%r14d + addl %r10d,%ecx + addl %r15d,%r10d + movl %ecx,%r13d + addl %r10d,%r14d + rorl $14,%r13d + movl %r14d,%r10d + movl %edx,%r12d + rorl $9,%r14d + xorl %ecx,%r13d + xorl %r8d,%r12d + rorl $5,%r13d + xorl %r10d,%r14d + andl %ecx,%r12d + xorl %ecx,%r13d + addl 8(%rsp),%r9d + movl %r10d,%r15d + xorl %r8d,%r12d + rorl $11,%r14d + xorl %r11d,%r15d + addl %r12d,%r9d + rorl $6,%r13d + andl %r15d,%edi + xorl %r10d,%r14d + addl %r13d,%r9d + xorl %r11d,%edi + rorl $2,%r14d + addl %r9d,%ebx + addl %edi,%r9d + movl %ebx,%r13d + addl %r9d,%r14d + rorl $14,%r13d + movl %r14d,%r9d + movl %ecx,%r12d + rorl $9,%r14d + xorl %ebx,%r13d + xorl %edx,%r12d + rorl $5,%r13d + xorl %r9d,%r14d + andl %ebx,%r12d + xorl %ebx,%r13d + addl 12(%rsp),%r8d + movl %r9d,%edi + xorl %edx,%r12d + rorl $11,%r14d + xorl %r10d,%edi + addl %r12d,%r8d + rorl $6,%r13d + andl %edi,%r15d + xorl %r9d,%r14d + addl %r13d,%r8d + xorl %r10d,%r15d + rorl $2,%r14d + addl %r8d,%eax + addl %r15d,%r8d + movl %eax,%r13d + addl %r8d,%r14d + rorl $14,%r13d + movl %r14d,%r8d + movl %ebx,%r12d + rorl $9,%r14d + xorl %eax,%r13d + xorl %ecx,%r12d + rorl $5,%r13d + xorl %r8d,%r14d + andl %eax,%r12d + xorl %eax,%r13d + addl 16(%rsp),%edx + movl %r8d,%r15d + xorl %ecx,%r12d + rorl $11,%r14d + xorl %r9d,%r15d + addl %r12d,%edx + rorl $6,%r13d + andl %r15d,%edi + xorl %r8d,%r14d + addl %r13d,%edx + xorl %r9d,%edi + rorl $2,%r14d + addl %edx,%r11d + addl %edi,%edx + movl %r11d,%r13d + addl %edx,%r14d + rorl $14,%r13d + movl %r14d,%edx + movl %eax,%r12d + rorl $9,%r14d + xorl %r11d,%r13d + xorl %ebx,%r12d + rorl $5,%r13d + xorl %edx,%r14d + andl %r11d,%r12d + xorl %r11d,%r13d + addl 20(%rsp),%ecx + movl %edx,%edi + xorl %ebx,%r12d + rorl $11,%r14d + xorl %r8d,%edi + addl %r12d,%ecx + rorl $6,%r13d + andl %edi,%r15d + xorl %edx,%r14d + addl %r13d,%ecx + xorl %r8d,%r15d + rorl $2,%r14d + addl %ecx,%r10d + addl %r15d,%ecx + movl %r10d,%r13d + addl %ecx,%r14d + rorl $14,%r13d + movl %r14d,%ecx + movl %r11d,%r12d + rorl $9,%r14d + xorl %r10d,%r13d + xorl %eax,%r12d + rorl $5,%r13d + xorl %ecx,%r14d + andl %r10d,%r12d + xorl %r10d,%r13d + addl 24(%rsp),%ebx + movl %ecx,%r15d + xorl %eax,%r12d + rorl $11,%r14d + xorl %edx,%r15d + addl %r12d,%ebx + rorl $6,%r13d + andl %r15d,%edi + xorl %ecx,%r14d + addl %r13d,%ebx + xorl %edx,%edi + rorl $2,%r14d + addl %ebx,%r9d + addl %edi,%ebx + movl %r9d,%r13d + addl %ebx,%r14d + rorl $14,%r13d + movl %r14d,%ebx + movl %r10d,%r12d + rorl $9,%r14d + xorl %r9d,%r13d + xorl %r11d,%r12d + rorl $5,%r13d + xorl %ebx,%r14d + andl %r9d,%r12d + xorl %r9d,%r13d + addl 28(%rsp),%eax + movl %ebx,%edi + xorl %r11d,%r12d + rorl $11,%r14d + xorl %ecx,%edi + addl %r12d,%eax + rorl $6,%r13d + andl %edi,%r15d + xorl %ebx,%r14d + addl %r13d,%eax + xorl %ecx,%r15d + rorl $2,%r14d + addl %eax,%r8d + addl %r15d,%eax + movl %r8d,%r13d + addl %eax,%r14d + rorl $14,%r13d + movl %r14d,%eax + movl %r9d,%r12d + rorl $9,%r14d + xorl %r8d,%r13d + xorl %r10d,%r12d + rorl $5,%r13d + xorl %eax,%r14d + andl %r8d,%r12d + xorl %r8d,%r13d + addl 32(%rsp),%r11d + movl %eax,%r15d + xorl %r10d,%r12d + rorl $11,%r14d + xorl %ebx,%r15d + addl %r12d,%r11d + rorl $6,%r13d + andl %r15d,%edi + xorl %eax,%r14d + addl %r13d,%r11d + xorl %ebx,%edi + rorl $2,%r14d + addl %r11d,%edx + addl %edi,%r11d + movl %edx,%r13d + addl %r11d,%r14d + rorl $14,%r13d + movl %r14d,%r11d + movl %r8d,%r12d + rorl $9,%r14d + xorl %edx,%r13d + xorl %r9d,%r12d + rorl $5,%r13d + xorl %r11d,%r14d + andl %edx,%r12d + xorl %edx,%r13d + addl 36(%rsp),%r10d + movl %r11d,%edi + xorl %r9d,%r12d + rorl $11,%r14d + xorl %eax,%edi + addl %r12d,%r10d + rorl $6,%r13d + andl %edi,%r15d + xorl %r11d,%r14d + addl %r13d,%r10d + xorl %eax,%r15d + rorl $2,%r14d + addl %r10d,%ecx + addl %r15d,%r10d + movl %ecx,%r13d + addl %r10d,%r14d + rorl $14,%r13d + movl %r14d,%r10d + movl %edx,%r12d + rorl $9,%r14d + xorl %ecx,%r13d + xorl %r8d,%r12d + rorl $5,%r13d + xorl %r10d,%r14d + andl %ecx,%r12d + xorl %ecx,%r13d + addl 40(%rsp),%r9d + movl %r10d,%r15d + xorl %r8d,%r12d + rorl $11,%r14d + xorl %r11d,%r15d + addl %r12d,%r9d + rorl $6,%r13d + andl %r15d,%edi + xorl %r10d,%r14d + addl %r13d,%r9d + xorl %r11d,%edi + rorl $2,%r14d + addl %r9d,%ebx + addl %edi,%r9d + movl %ebx,%r13d + addl %r9d,%r14d + rorl $14,%r13d + movl %r14d,%r9d + movl %ecx,%r12d + rorl $9,%r14d + xorl %ebx,%r13d + xorl %edx,%r12d + rorl $5,%r13d + xorl %r9d,%r14d + andl %ebx,%r12d + xorl %ebx,%r13d + addl 44(%rsp),%r8d + movl %r9d,%edi + xorl %edx,%r12d + rorl $11,%r14d + xorl %r10d,%edi + addl %r12d,%r8d + rorl $6,%r13d + andl %edi,%r15d + xorl %r9d,%r14d + addl %r13d,%r8d + xorl %r10d,%r15d + rorl $2,%r14d + addl %r8d,%eax + addl %r15d,%r8d + movl %eax,%r13d + addl %r8d,%r14d + rorl $14,%r13d + movl %r14d,%r8d + movl %ebx,%r12d + rorl $9,%r14d + xorl %eax,%r13d + xorl %ecx,%r12d + rorl $5,%r13d + xorl %r8d,%r14d + andl %eax,%r12d + xorl %eax,%r13d + addl 48(%rsp),%edx + movl %r8d,%r15d + xorl %ecx,%r12d + rorl $11,%r14d + xorl %r9d,%r15d + addl %r12d,%edx + rorl $6,%r13d + andl %r15d,%edi + xorl %r8d,%r14d + addl %r13d,%edx + xorl %r9d,%edi + rorl $2,%r14d + addl %edx,%r11d + addl %edi,%edx + movl %r11d,%r13d + addl %edx,%r14d + rorl $14,%r13d + movl %r14d,%edx + movl %eax,%r12d + rorl $9,%r14d + xorl %r11d,%r13d + xorl %ebx,%r12d + rorl $5,%r13d + xorl %edx,%r14d + andl %r11d,%r12d + xorl %r11d,%r13d + addl 52(%rsp),%ecx + movl %edx,%edi + xorl %ebx,%r12d + rorl $11,%r14d + xorl %r8d,%edi + addl %r12d,%ecx + rorl $6,%r13d + andl %edi,%r15d + xorl %edx,%r14d + addl %r13d,%ecx + xorl %r8d,%r15d + rorl $2,%r14d + addl %ecx,%r10d + addl %r15d,%ecx + movl %r10d,%r13d + addl %ecx,%r14d + rorl $14,%r13d + movl %r14d,%ecx + movl %r11d,%r12d + rorl $9,%r14d + xorl %r10d,%r13d + xorl %eax,%r12d + rorl $5,%r13d + xorl %ecx,%r14d + andl %r10d,%r12d + xorl %r10d,%r13d + addl 56(%rsp),%ebx + movl %ecx,%r15d + xorl %eax,%r12d + rorl $11,%r14d + xorl %edx,%r15d + addl %r12d,%ebx + rorl $6,%r13d + andl %r15d,%edi + xorl %ecx,%r14d + addl %r13d,%ebx + xorl %edx,%edi + rorl $2,%r14d + addl %ebx,%r9d + addl %edi,%ebx + movl %r9d,%r13d + addl %ebx,%r14d + rorl $14,%r13d + movl %r14d,%ebx + movl %r10d,%r12d + rorl $9,%r14d + xorl %r9d,%r13d + xorl %r11d,%r12d + rorl $5,%r13d + xorl %ebx,%r14d + andl %r9d,%r12d + xorl %r9d,%r13d + addl 60(%rsp),%eax + movl %ebx,%edi + xorl %r11d,%r12d + rorl $11,%r14d + xorl %ecx,%edi + addl %r12d,%eax + rorl $6,%r13d + andl %edi,%r15d + xorl %ebx,%r14d + addl %r13d,%eax + xorl %ecx,%r15d + rorl $2,%r14d + addl %eax,%r8d + addl %r15d,%eax + movl %r8d,%r13d + addl %eax,%r14d + movq 64+0(%rsp),%rdi + movl %r14d,%eax + + addl 0(%rdi),%eax + leaq 64(%rsi),%rsi + addl 4(%rdi),%ebx + addl 8(%rdi),%ecx + addl 12(%rdi),%edx + addl 16(%rdi),%r8d + addl 20(%rdi),%r9d + addl 24(%rdi),%r10d + addl 28(%rdi),%r11d + + cmpq 64+16(%rsp),%rsi + + movl %eax,0(%rdi) + movl %ebx,4(%rdi) + movl %ecx,8(%rdi) + movl %edx,12(%rdi) + movl %r8d,16(%rdi) + movl %r9d,20(%rdi) + movl %r10d,24(%rdi) + movl %r11d,28(%rdi) + jb .Lloop_ssse3 + + movq 88(%rsp),%rsi +.cfi_def_cfa %rsi,8 + movq -48(%rsi),%r15 +.cfi_restore %r15 + movq -40(%rsi),%r14 +.cfi_restore %r14 + movq -32(%rsi),%r13 +.cfi_restore %r13 + movq -24(%rsi),%r12 +.cfi_restore %r12 + movq -16(%rsi),%rbp +.cfi_restore %rbp + movq -8(%rsi),%rbx +.cfi_restore %rbx + leaq (%rsi),%rsp +.cfi_def_cfa_register %rsp +.Lepilogue_ssse3: + .byte 0xf3,0xc3 +.cfi_endproc +.size sha256_block_data_order_ssse3,.-sha256_block_data_order_ssse3 +.type sha256_block_data_order_avx,@function +.align 64 +sha256_block_data_order_avx: +.cfi_startproc +.Lavx_shortcut: + movq %rsp,%rax +.cfi_def_cfa_register %rax + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_offset %r15,-56 + shlq $4,%rdx + subq $96,%rsp + leaq (%rsi,%rdx,4),%rdx + andq $-64,%rsp + movq %rdi,64+0(%rsp) + movq %rsi,64+8(%rsp) + movq %rdx,64+16(%rsp) + movq %rax,88(%rsp) +.cfi_escape 0x0f,0x06,0x77,0xd8,0x00,0x06,0x23,0x08 +.Lprologue_avx: + + vzeroupper + movl 0(%rdi),%eax + movl 4(%rdi),%ebx + movl 8(%rdi),%ecx + movl 12(%rdi),%edx + movl 16(%rdi),%r8d + movl 20(%rdi),%r9d + movl 24(%rdi),%r10d + movl 28(%rdi),%r11d + vmovdqa K256+512+32(%rip),%xmm8 + vmovdqa K256+512+64(%rip),%xmm9 + jmp .Lloop_avx +.align 16 +.Lloop_avx: + vmovdqa K256+512(%rip),%xmm7 + vmovdqu 0(%rsi),%xmm0 + vmovdqu 16(%rsi),%xmm1 + vmovdqu 32(%rsi),%xmm2 + vmovdqu 48(%rsi),%xmm3 + vpshufb %xmm7,%xmm0,%xmm0 + leaq K256(%rip),%rbp + vpshufb %xmm7,%xmm1,%xmm1 + vpshufb %xmm7,%xmm2,%xmm2 + vpaddd 0(%rbp),%xmm0,%xmm4 + vpshufb %xmm7,%xmm3,%xmm3 + vpaddd 32(%rbp),%xmm1,%xmm5 + vpaddd 64(%rbp),%xmm2,%xmm6 + vpaddd 96(%rbp),%xmm3,%xmm7 + vmovdqa %xmm4,0(%rsp) + movl %eax,%r14d + vmovdqa %xmm5,16(%rsp) + movl %ebx,%edi + vmovdqa %xmm6,32(%rsp) + xorl %ecx,%edi + vmovdqa %xmm7,48(%rsp) + movl %r8d,%r13d + jmp .Lavx_00_47 + +.align 16 +.Lavx_00_47: + subq $-128,%rbp + vpalignr $4,%xmm0,%xmm1,%xmm4 + shrdl $14,%r13d,%r13d + movl %r14d,%eax + movl %r9d,%r12d + vpalignr $4,%xmm2,%xmm3,%xmm7 + shrdl $9,%r14d,%r14d + xorl %r8d,%r13d + xorl %r10d,%r12d + vpsrld $7,%xmm4,%xmm6 + shrdl $5,%r13d,%r13d + xorl %eax,%r14d + andl %r8d,%r12d + vpaddd %xmm7,%xmm0,%xmm0 + xorl %r8d,%r13d + addl 0(%rsp),%r11d + movl %eax,%r15d + vpsrld $3,%xmm4,%xmm7 + xorl %r10d,%r12d + shrdl $11,%r14d,%r14d + xorl %ebx,%r15d + vpslld $14,%xmm4,%xmm5 + addl %r12d,%r11d + shrdl $6,%r13d,%r13d + andl %r15d,%edi + vpxor %xmm6,%xmm7,%xmm4 + xorl %eax,%r14d + addl %r13d,%r11d + xorl %ebx,%edi + vpshufd $250,%xmm3,%xmm7 + shrdl $2,%r14d,%r14d + addl %r11d,%edx + addl %edi,%r11d + vpsrld $11,%xmm6,%xmm6 + movl %edx,%r13d + addl %r11d,%r14d + shrdl $14,%r13d,%r13d + vpxor %xmm5,%xmm4,%xmm4 + movl %r14d,%r11d + movl %r8d,%r12d + shrdl $9,%r14d,%r14d + vpslld $11,%xmm5,%xmm5 + xorl %edx,%r13d + xorl %r9d,%r12d + shrdl $5,%r13d,%r13d + vpxor %xmm6,%xmm4,%xmm4 + xorl %r11d,%r14d + andl %edx,%r12d + xorl %edx,%r13d + vpsrld $10,%xmm7,%xmm6 + addl 4(%rsp),%r10d + movl %r11d,%edi + xorl %r9d,%r12d + vpxor %xmm5,%xmm4,%xmm4 + shrdl $11,%r14d,%r14d + xorl %eax,%edi + addl %r12d,%r10d + vpsrlq $17,%xmm7,%xmm7 + shrdl $6,%r13d,%r13d + andl %edi,%r15d + xorl %r11d,%r14d + vpaddd %xmm4,%xmm0,%xmm0 + addl %r13d,%r10d + xorl %eax,%r15d + shrdl $2,%r14d,%r14d + vpxor %xmm7,%xmm6,%xmm6 + addl %r10d,%ecx + addl %r15d,%r10d + movl %ecx,%r13d + vpsrlq $2,%xmm7,%xmm7 + addl %r10d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r10d + vpxor %xmm7,%xmm6,%xmm6 + movl %edx,%r12d + shrdl $9,%r14d,%r14d + xorl %ecx,%r13d + vpshufb %xmm8,%xmm6,%xmm6 + xorl %r8d,%r12d + shrdl $5,%r13d,%r13d + xorl %r10d,%r14d + vpaddd %xmm6,%xmm0,%xmm0 + andl %ecx,%r12d + xorl %ecx,%r13d + addl 8(%rsp),%r9d + vpshufd $80,%xmm0,%xmm7 + movl %r10d,%r15d + xorl %r8d,%r12d + shrdl $11,%r14d,%r14d + vpsrld $10,%xmm7,%xmm6 + xorl %r11d,%r15d + addl %r12d,%r9d + shrdl $6,%r13d,%r13d + vpsrlq $17,%xmm7,%xmm7 + andl %r15d,%edi + xorl %r10d,%r14d + addl %r13d,%r9d + vpxor %xmm7,%xmm6,%xmm6 + xorl %r11d,%edi + shrdl $2,%r14d,%r14d + addl %r9d,%ebx + vpsrlq $2,%xmm7,%xmm7 + addl %edi,%r9d + movl %ebx,%r13d + addl %r9d,%r14d + vpxor %xmm7,%xmm6,%xmm6 + shrdl $14,%r13d,%r13d + movl %r14d,%r9d + movl %ecx,%r12d + vpshufb %xmm9,%xmm6,%xmm6 + shrdl $9,%r14d,%r14d + xorl %ebx,%r13d + xorl %edx,%r12d + vpaddd %xmm6,%xmm0,%xmm0 + shrdl $5,%r13d,%r13d + xorl %r9d,%r14d + andl %ebx,%r12d + vpaddd 0(%rbp),%xmm0,%xmm6 + xorl %ebx,%r13d + addl 12(%rsp),%r8d + movl %r9d,%edi + xorl %edx,%r12d + shrdl $11,%r14d,%r14d + xorl %r10d,%edi + addl %r12d,%r8d + shrdl $6,%r13d,%r13d + andl %edi,%r15d + xorl %r9d,%r14d + addl %r13d,%r8d + xorl %r10d,%r15d + shrdl $2,%r14d,%r14d + addl %r8d,%eax + addl %r15d,%r8d + movl %eax,%r13d + addl %r8d,%r14d + vmovdqa %xmm6,0(%rsp) + vpalignr $4,%xmm1,%xmm2,%xmm4 + shrdl $14,%r13d,%r13d + movl %r14d,%r8d + movl %ebx,%r12d + vpalignr $4,%xmm3,%xmm0,%xmm7 + shrdl $9,%r14d,%r14d + xorl %eax,%r13d + xorl %ecx,%r12d + vpsrld $7,%xmm4,%xmm6 + shrdl $5,%r13d,%r13d + xorl %r8d,%r14d + andl %eax,%r12d + vpaddd %xmm7,%xmm1,%xmm1 + xorl %eax,%r13d + addl 16(%rsp),%edx + movl %r8d,%r15d + vpsrld $3,%xmm4,%xmm7 + xorl %ecx,%r12d + shrdl $11,%r14d,%r14d + xorl %r9d,%r15d + vpslld $14,%xmm4,%xmm5 + addl %r12d,%edx + shrdl $6,%r13d,%r13d + andl %r15d,%edi + vpxor %xmm6,%xmm7,%xmm4 + xorl %r8d,%r14d + addl %r13d,%edx + xorl %r9d,%edi + vpshufd $250,%xmm0,%xmm7 + shrdl $2,%r14d,%r14d + addl %edx,%r11d + addl %edi,%edx + vpsrld $11,%xmm6,%xmm6 + movl %r11d,%r13d + addl %edx,%r14d + shrdl $14,%r13d,%r13d + vpxor %xmm5,%xmm4,%xmm4 + movl %r14d,%edx + movl %eax,%r12d + shrdl $9,%r14d,%r14d + vpslld $11,%xmm5,%xmm5 + xorl %r11d,%r13d + xorl %ebx,%r12d + shrdl $5,%r13d,%r13d + vpxor %xmm6,%xmm4,%xmm4 + xorl %edx,%r14d + andl %r11d,%r12d + xorl %r11d,%r13d + vpsrld $10,%xmm7,%xmm6 + addl 20(%rsp),%ecx + movl %edx,%edi + xorl %ebx,%r12d + vpxor %xmm5,%xmm4,%xmm4 + shrdl $11,%r14d,%r14d + xorl %r8d,%edi + addl %r12d,%ecx + vpsrlq $17,%xmm7,%xmm7 + shrdl $6,%r13d,%r13d + andl %edi,%r15d + xorl %edx,%r14d + vpaddd %xmm4,%xmm1,%xmm1 + addl %r13d,%ecx + xorl %r8d,%r15d + shrdl $2,%r14d,%r14d + vpxor %xmm7,%xmm6,%xmm6 + addl %ecx,%r10d + addl %r15d,%ecx + movl %r10d,%r13d + vpsrlq $2,%xmm7,%xmm7 + addl %ecx,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%ecx + vpxor %xmm7,%xmm6,%xmm6 + movl %r11d,%r12d + shrdl $9,%r14d,%r14d + xorl %r10d,%r13d + vpshufb %xmm8,%xmm6,%xmm6 + xorl %eax,%r12d + shrdl $5,%r13d,%r13d + xorl %ecx,%r14d + vpaddd %xmm6,%xmm1,%xmm1 + andl %r10d,%r12d + xorl %r10d,%r13d + addl 24(%rsp),%ebx + vpshufd $80,%xmm1,%xmm7 + movl %ecx,%r15d + xorl %eax,%r12d + shrdl $11,%r14d,%r14d + vpsrld $10,%xmm7,%xmm6 + xorl %edx,%r15d + addl %r12d,%ebx + shrdl $6,%r13d,%r13d + vpsrlq $17,%xmm7,%xmm7 + andl %r15d,%edi + xorl %ecx,%r14d + addl %r13d,%ebx + vpxor %xmm7,%xmm6,%xmm6 + xorl %edx,%edi + shrdl $2,%r14d,%r14d + addl %ebx,%r9d + vpsrlq $2,%xmm7,%xmm7 + addl %edi,%ebx + movl %r9d,%r13d + addl %ebx,%r14d + vpxor %xmm7,%xmm6,%xmm6 + shrdl $14,%r13d,%r13d + movl %r14d,%ebx + movl %r10d,%r12d + vpshufb %xmm9,%xmm6,%xmm6 + shrdl $9,%r14d,%r14d + xorl %r9d,%r13d + xorl %r11d,%r12d + vpaddd %xmm6,%xmm1,%xmm1 + shrdl $5,%r13d,%r13d + xorl %ebx,%r14d + andl %r9d,%r12d + vpaddd 32(%rbp),%xmm1,%xmm6 + xorl %r9d,%r13d + addl 28(%rsp),%eax + movl %ebx,%edi + xorl %r11d,%r12d + shrdl $11,%r14d,%r14d + xorl %ecx,%edi + addl %r12d,%eax + shrdl $6,%r13d,%r13d + andl %edi,%r15d + xorl %ebx,%r14d + addl %r13d,%eax + xorl %ecx,%r15d + shrdl $2,%r14d,%r14d + addl %eax,%r8d + addl %r15d,%eax + movl %r8d,%r13d + addl %eax,%r14d + vmovdqa %xmm6,16(%rsp) + vpalignr $4,%xmm2,%xmm3,%xmm4 + shrdl $14,%r13d,%r13d + movl %r14d,%eax + movl %r9d,%r12d + vpalignr $4,%xmm0,%xmm1,%xmm7 + shrdl $9,%r14d,%r14d + xorl %r8d,%r13d + xorl %r10d,%r12d + vpsrld $7,%xmm4,%xmm6 + shrdl $5,%r13d,%r13d + xorl %eax,%r14d + andl %r8d,%r12d + vpaddd %xmm7,%xmm2,%xmm2 + xorl %r8d,%r13d + addl 32(%rsp),%r11d + movl %eax,%r15d + vpsrld $3,%xmm4,%xmm7 + xorl %r10d,%r12d + shrdl $11,%r14d,%r14d + xorl %ebx,%r15d + vpslld $14,%xmm4,%xmm5 + addl %r12d,%r11d + shrdl $6,%r13d,%r13d + andl %r15d,%edi + vpxor %xmm6,%xmm7,%xmm4 + xorl %eax,%r14d + addl %r13d,%r11d + xorl %ebx,%edi + vpshufd $250,%xmm1,%xmm7 + shrdl $2,%r14d,%r14d + addl %r11d,%edx + addl %edi,%r11d + vpsrld $11,%xmm6,%xmm6 + movl %edx,%r13d + addl %r11d,%r14d + shrdl $14,%r13d,%r13d + vpxor %xmm5,%xmm4,%xmm4 + movl %r14d,%r11d + movl %r8d,%r12d + shrdl $9,%r14d,%r14d + vpslld $11,%xmm5,%xmm5 + xorl %edx,%r13d + xorl %r9d,%r12d + shrdl $5,%r13d,%r13d + vpxor %xmm6,%xmm4,%xmm4 + xorl %r11d,%r14d + andl %edx,%r12d + xorl %edx,%r13d + vpsrld $10,%xmm7,%xmm6 + addl 36(%rsp),%r10d + movl %r11d,%edi + xorl %r9d,%r12d + vpxor %xmm5,%xmm4,%xmm4 + shrdl $11,%r14d,%r14d + xorl %eax,%edi + addl %r12d,%r10d + vpsrlq $17,%xmm7,%xmm7 + shrdl $6,%r13d,%r13d + andl %edi,%r15d + xorl %r11d,%r14d + vpaddd %xmm4,%xmm2,%xmm2 + addl %r13d,%r10d + xorl %eax,%r15d + shrdl $2,%r14d,%r14d + vpxor %xmm7,%xmm6,%xmm6 + addl %r10d,%ecx + addl %r15d,%r10d + movl %ecx,%r13d + vpsrlq $2,%xmm7,%xmm7 + addl %r10d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r10d + vpxor %xmm7,%xmm6,%xmm6 + movl %edx,%r12d + shrdl $9,%r14d,%r14d + xorl %ecx,%r13d + vpshufb %xmm8,%xmm6,%xmm6 + xorl %r8d,%r12d + shrdl $5,%r13d,%r13d + xorl %r10d,%r14d + vpaddd %xmm6,%xmm2,%xmm2 + andl %ecx,%r12d + xorl %ecx,%r13d + addl 40(%rsp),%r9d + vpshufd $80,%xmm2,%xmm7 + movl %r10d,%r15d + xorl %r8d,%r12d + shrdl $11,%r14d,%r14d + vpsrld $10,%xmm7,%xmm6 + xorl %r11d,%r15d + addl %r12d,%r9d + shrdl $6,%r13d,%r13d + vpsrlq $17,%xmm7,%xmm7 + andl %r15d,%edi + xorl %r10d,%r14d + addl %r13d,%r9d + vpxor %xmm7,%xmm6,%xmm6 + xorl %r11d,%edi + shrdl $2,%r14d,%r14d + addl %r9d,%ebx + vpsrlq $2,%xmm7,%xmm7 + addl %edi,%r9d + movl %ebx,%r13d + addl %r9d,%r14d + vpxor %xmm7,%xmm6,%xmm6 + shrdl $14,%r13d,%r13d + movl %r14d,%r9d + movl %ecx,%r12d + vpshufb %xmm9,%xmm6,%xmm6 + shrdl $9,%r14d,%r14d + xorl %ebx,%r13d + xorl %edx,%r12d + vpaddd %xmm6,%xmm2,%xmm2 + shrdl $5,%r13d,%r13d + xorl %r9d,%r14d + andl %ebx,%r12d + vpaddd 64(%rbp),%xmm2,%xmm6 + xorl %ebx,%r13d + addl 44(%rsp),%r8d + movl %r9d,%edi + xorl %edx,%r12d + shrdl $11,%r14d,%r14d + xorl %r10d,%edi + addl %r12d,%r8d + shrdl $6,%r13d,%r13d + andl %edi,%r15d + xorl %r9d,%r14d + addl %r13d,%r8d + xorl %r10d,%r15d + shrdl $2,%r14d,%r14d + addl %r8d,%eax + addl %r15d,%r8d + movl %eax,%r13d + addl %r8d,%r14d + vmovdqa %xmm6,32(%rsp) + vpalignr $4,%xmm3,%xmm0,%xmm4 + shrdl $14,%r13d,%r13d + movl %r14d,%r8d + movl %ebx,%r12d + vpalignr $4,%xmm1,%xmm2,%xmm7 + shrdl $9,%r14d,%r14d + xorl %eax,%r13d + xorl %ecx,%r12d + vpsrld $7,%xmm4,%xmm6 + shrdl $5,%r13d,%r13d + xorl %r8d,%r14d + andl %eax,%r12d + vpaddd %xmm7,%xmm3,%xmm3 + xorl %eax,%r13d + addl 48(%rsp),%edx + movl %r8d,%r15d + vpsrld $3,%xmm4,%xmm7 + xorl %ecx,%r12d + shrdl $11,%r14d,%r14d + xorl %r9d,%r15d + vpslld $14,%xmm4,%xmm5 + addl %r12d,%edx + shrdl $6,%r13d,%r13d + andl %r15d,%edi + vpxor %xmm6,%xmm7,%xmm4 + xorl %r8d,%r14d + addl %r13d,%edx + xorl %r9d,%edi + vpshufd $250,%xmm2,%xmm7 + shrdl $2,%r14d,%r14d + addl %edx,%r11d + addl %edi,%edx + vpsrld $11,%xmm6,%xmm6 + movl %r11d,%r13d + addl %edx,%r14d + shrdl $14,%r13d,%r13d + vpxor %xmm5,%xmm4,%xmm4 + movl %r14d,%edx + movl %eax,%r12d + shrdl $9,%r14d,%r14d + vpslld $11,%xmm5,%xmm5 + xorl %r11d,%r13d + xorl %ebx,%r12d + shrdl $5,%r13d,%r13d + vpxor %xmm6,%xmm4,%xmm4 + xorl %edx,%r14d + andl %r11d,%r12d + xorl %r11d,%r13d + vpsrld $10,%xmm7,%xmm6 + addl 52(%rsp),%ecx + movl %edx,%edi + xorl %ebx,%r12d + vpxor %xmm5,%xmm4,%xmm4 + shrdl $11,%r14d,%r14d + xorl %r8d,%edi + addl %r12d,%ecx + vpsrlq $17,%xmm7,%xmm7 + shrdl $6,%r13d,%r13d + andl %edi,%r15d + xorl %edx,%r14d + vpaddd %xmm4,%xmm3,%xmm3 + addl %r13d,%ecx + xorl %r8d,%r15d + shrdl $2,%r14d,%r14d + vpxor %xmm7,%xmm6,%xmm6 + addl %ecx,%r10d + addl %r15d,%ecx + movl %r10d,%r13d + vpsrlq $2,%xmm7,%xmm7 + addl %ecx,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%ecx + vpxor %xmm7,%xmm6,%xmm6 + movl %r11d,%r12d + shrdl $9,%r14d,%r14d + xorl %r10d,%r13d + vpshufb %xmm8,%xmm6,%xmm6 + xorl %eax,%r12d + shrdl $5,%r13d,%r13d + xorl %ecx,%r14d + vpaddd %xmm6,%xmm3,%xmm3 + andl %r10d,%r12d + xorl %r10d,%r13d + addl 56(%rsp),%ebx + vpshufd $80,%xmm3,%xmm7 + movl %ecx,%r15d + xorl %eax,%r12d + shrdl $11,%r14d,%r14d + vpsrld $10,%xmm7,%xmm6 + xorl %edx,%r15d + addl %r12d,%ebx + shrdl $6,%r13d,%r13d + vpsrlq $17,%xmm7,%xmm7 + andl %r15d,%edi + xorl %ecx,%r14d + addl %r13d,%ebx + vpxor %xmm7,%xmm6,%xmm6 + xorl %edx,%edi + shrdl $2,%r14d,%r14d + addl %ebx,%r9d + vpsrlq $2,%xmm7,%xmm7 + addl %edi,%ebx + movl %r9d,%r13d + addl %ebx,%r14d + vpxor %xmm7,%xmm6,%xmm6 + shrdl $14,%r13d,%r13d + movl %r14d,%ebx + movl %r10d,%r12d + vpshufb %xmm9,%xmm6,%xmm6 + shrdl $9,%r14d,%r14d + xorl %r9d,%r13d + xorl %r11d,%r12d + vpaddd %xmm6,%xmm3,%xmm3 + shrdl $5,%r13d,%r13d + xorl %ebx,%r14d + andl %r9d,%r12d + vpaddd 96(%rbp),%xmm3,%xmm6 + xorl %r9d,%r13d + addl 60(%rsp),%eax + movl %ebx,%edi + xorl %r11d,%r12d + shrdl $11,%r14d,%r14d + xorl %ecx,%edi + addl %r12d,%eax + shrdl $6,%r13d,%r13d + andl %edi,%r15d + xorl %ebx,%r14d + addl %r13d,%eax + xorl %ecx,%r15d + shrdl $2,%r14d,%r14d + addl %eax,%r8d + addl %r15d,%eax + movl %r8d,%r13d + addl %eax,%r14d + vmovdqa %xmm6,48(%rsp) + cmpb $0,131(%rbp) + jne .Lavx_00_47 + shrdl $14,%r13d,%r13d + movl %r14d,%eax + movl %r9d,%r12d + shrdl $9,%r14d,%r14d + xorl %r8d,%r13d + xorl %r10d,%r12d + shrdl $5,%r13d,%r13d + xorl %eax,%r14d + andl %r8d,%r12d + xorl %r8d,%r13d + addl 0(%rsp),%r11d + movl %eax,%r15d + xorl %r10d,%r12d + shrdl $11,%r14d,%r14d + xorl %ebx,%r15d + addl %r12d,%r11d + shrdl $6,%r13d,%r13d + andl %r15d,%edi + xorl %eax,%r14d + addl %r13d,%r11d + xorl %ebx,%edi + shrdl $2,%r14d,%r14d + addl %r11d,%edx + addl %edi,%r11d + movl %edx,%r13d + addl %r11d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r11d + movl %r8d,%r12d + shrdl $9,%r14d,%r14d + xorl %edx,%r13d + xorl %r9d,%r12d + shrdl $5,%r13d,%r13d + xorl %r11d,%r14d + andl %edx,%r12d + xorl %edx,%r13d + addl 4(%rsp),%r10d + movl %r11d,%edi + xorl %r9d,%r12d + shrdl $11,%r14d,%r14d + xorl %eax,%edi + addl %r12d,%r10d + shrdl $6,%r13d,%r13d + andl %edi,%r15d + xorl %r11d,%r14d + addl %r13d,%r10d + xorl %eax,%r15d + shrdl $2,%r14d,%r14d + addl %r10d,%ecx + addl %r15d,%r10d + movl %ecx,%r13d + addl %r10d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r10d + movl %edx,%r12d + shrdl $9,%r14d,%r14d + xorl %ecx,%r13d + xorl %r8d,%r12d + shrdl $5,%r13d,%r13d + xorl %r10d,%r14d + andl %ecx,%r12d + xorl %ecx,%r13d + addl 8(%rsp),%r9d + movl %r10d,%r15d + xorl %r8d,%r12d + shrdl $11,%r14d,%r14d + xorl %r11d,%r15d + addl %r12d,%r9d + shrdl $6,%r13d,%r13d + andl %r15d,%edi + xorl %r10d,%r14d + addl %r13d,%r9d + xorl %r11d,%edi + shrdl $2,%r14d,%r14d + addl %r9d,%ebx + addl %edi,%r9d + movl %ebx,%r13d + addl %r9d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r9d + movl %ecx,%r12d + shrdl $9,%r14d,%r14d + xorl %ebx,%r13d + xorl %edx,%r12d + shrdl $5,%r13d,%r13d + xorl %r9d,%r14d + andl %ebx,%r12d + xorl %ebx,%r13d + addl 12(%rsp),%r8d + movl %r9d,%edi + xorl %edx,%r12d + shrdl $11,%r14d,%r14d + xorl %r10d,%edi + addl %r12d,%r8d + shrdl $6,%r13d,%r13d + andl %edi,%r15d + xorl %r9d,%r14d + addl %r13d,%r8d + xorl %r10d,%r15d + shrdl $2,%r14d,%r14d + addl %r8d,%eax + addl %r15d,%r8d + movl %eax,%r13d + addl %r8d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r8d + movl %ebx,%r12d + shrdl $9,%r14d,%r14d + xorl %eax,%r13d + xorl %ecx,%r12d + shrdl $5,%r13d,%r13d + xorl %r8d,%r14d + andl %eax,%r12d + xorl %eax,%r13d + addl 16(%rsp),%edx + movl %r8d,%r15d + xorl %ecx,%r12d + shrdl $11,%r14d,%r14d + xorl %r9d,%r15d + addl %r12d,%edx + shrdl $6,%r13d,%r13d + andl %r15d,%edi + xorl %r8d,%r14d + addl %r13d,%edx + xorl %r9d,%edi + shrdl $2,%r14d,%r14d + addl %edx,%r11d + addl %edi,%edx + movl %r11d,%r13d + addl %edx,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%edx + movl %eax,%r12d + shrdl $9,%r14d,%r14d + xorl %r11d,%r13d + xorl %ebx,%r12d + shrdl $5,%r13d,%r13d + xorl %edx,%r14d + andl %r11d,%r12d + xorl %r11d,%r13d + addl 20(%rsp),%ecx + movl %edx,%edi + xorl %ebx,%r12d + shrdl $11,%r14d,%r14d + xorl %r8d,%edi + addl %r12d,%ecx + shrdl $6,%r13d,%r13d + andl %edi,%r15d + xorl %edx,%r14d + addl %r13d,%ecx + xorl %r8d,%r15d + shrdl $2,%r14d,%r14d + addl %ecx,%r10d + addl %r15d,%ecx + movl %r10d,%r13d + addl %ecx,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%ecx + movl %r11d,%r12d + shrdl $9,%r14d,%r14d + xorl %r10d,%r13d + xorl %eax,%r12d + shrdl $5,%r13d,%r13d + xorl %ecx,%r14d + andl %r10d,%r12d + xorl %r10d,%r13d + addl 24(%rsp),%ebx + movl %ecx,%r15d + xorl %eax,%r12d + shrdl $11,%r14d,%r14d + xorl %edx,%r15d + addl %r12d,%ebx + shrdl $6,%r13d,%r13d + andl %r15d,%edi + xorl %ecx,%r14d + addl %r13d,%ebx + xorl %edx,%edi + shrdl $2,%r14d,%r14d + addl %ebx,%r9d + addl %edi,%ebx + movl %r9d,%r13d + addl %ebx,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%ebx + movl %r10d,%r12d + shrdl $9,%r14d,%r14d + xorl %r9d,%r13d + xorl %r11d,%r12d + shrdl $5,%r13d,%r13d + xorl %ebx,%r14d + andl %r9d,%r12d + xorl %r9d,%r13d + addl 28(%rsp),%eax + movl %ebx,%edi + xorl %r11d,%r12d + shrdl $11,%r14d,%r14d + xorl %ecx,%edi + addl %r12d,%eax + shrdl $6,%r13d,%r13d + andl %edi,%r15d + xorl %ebx,%r14d + addl %r13d,%eax + xorl %ecx,%r15d + shrdl $2,%r14d,%r14d + addl %eax,%r8d + addl %r15d,%eax + movl %r8d,%r13d + addl %eax,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%eax + movl %r9d,%r12d + shrdl $9,%r14d,%r14d + xorl %r8d,%r13d + xorl %r10d,%r12d + shrdl $5,%r13d,%r13d + xorl %eax,%r14d + andl %r8d,%r12d + xorl %r8d,%r13d + addl 32(%rsp),%r11d + movl %eax,%r15d + xorl %r10d,%r12d + shrdl $11,%r14d,%r14d + xorl %ebx,%r15d + addl %r12d,%r11d + shrdl $6,%r13d,%r13d + andl %r15d,%edi + xorl %eax,%r14d + addl %r13d,%r11d + xorl %ebx,%edi + shrdl $2,%r14d,%r14d + addl %r11d,%edx + addl %edi,%r11d + movl %edx,%r13d + addl %r11d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r11d + movl %r8d,%r12d + shrdl $9,%r14d,%r14d + xorl %edx,%r13d + xorl %r9d,%r12d + shrdl $5,%r13d,%r13d + xorl %r11d,%r14d + andl %edx,%r12d + xorl %edx,%r13d + addl 36(%rsp),%r10d + movl %r11d,%edi + xorl %r9d,%r12d + shrdl $11,%r14d,%r14d + xorl %eax,%edi + addl %r12d,%r10d + shrdl $6,%r13d,%r13d + andl %edi,%r15d + xorl %r11d,%r14d + addl %r13d,%r10d + xorl %eax,%r15d + shrdl $2,%r14d,%r14d + addl %r10d,%ecx + addl %r15d,%r10d + movl %ecx,%r13d + addl %r10d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r10d + movl %edx,%r12d + shrdl $9,%r14d,%r14d + xorl %ecx,%r13d + xorl %r8d,%r12d + shrdl $5,%r13d,%r13d + xorl %r10d,%r14d + andl %ecx,%r12d + xorl %ecx,%r13d + addl 40(%rsp),%r9d + movl %r10d,%r15d + xorl %r8d,%r12d + shrdl $11,%r14d,%r14d + xorl %r11d,%r15d + addl %r12d,%r9d + shrdl $6,%r13d,%r13d + andl %r15d,%edi + xorl %r10d,%r14d + addl %r13d,%r9d + xorl %r11d,%edi + shrdl $2,%r14d,%r14d + addl %r9d,%ebx + addl %edi,%r9d + movl %ebx,%r13d + addl %r9d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r9d + movl %ecx,%r12d + shrdl $9,%r14d,%r14d + xorl %ebx,%r13d + xorl %edx,%r12d + shrdl $5,%r13d,%r13d + xorl %r9d,%r14d + andl %ebx,%r12d + xorl %ebx,%r13d + addl 44(%rsp),%r8d + movl %r9d,%edi + xorl %edx,%r12d + shrdl $11,%r14d,%r14d + xorl %r10d,%edi + addl %r12d,%r8d + shrdl $6,%r13d,%r13d + andl %edi,%r15d + xorl %r9d,%r14d + addl %r13d,%r8d + xorl %r10d,%r15d + shrdl $2,%r14d,%r14d + addl %r8d,%eax + addl %r15d,%r8d + movl %eax,%r13d + addl %r8d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r8d + movl %ebx,%r12d + shrdl $9,%r14d,%r14d + xorl %eax,%r13d + xorl %ecx,%r12d + shrdl $5,%r13d,%r13d + xorl %r8d,%r14d + andl %eax,%r12d + xorl %eax,%r13d + addl 48(%rsp),%edx + movl %r8d,%r15d + xorl %ecx,%r12d + shrdl $11,%r14d,%r14d + xorl %r9d,%r15d + addl %r12d,%edx + shrdl $6,%r13d,%r13d + andl %r15d,%edi + xorl %r8d,%r14d + addl %r13d,%edx + xorl %r9d,%edi + shrdl $2,%r14d,%r14d + addl %edx,%r11d + addl %edi,%edx + movl %r11d,%r13d + addl %edx,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%edx + movl %eax,%r12d + shrdl $9,%r14d,%r14d + xorl %r11d,%r13d + xorl %ebx,%r12d + shrdl $5,%r13d,%r13d + xorl %edx,%r14d + andl %r11d,%r12d + xorl %r11d,%r13d + addl 52(%rsp),%ecx + movl %edx,%edi + xorl %ebx,%r12d + shrdl $11,%r14d,%r14d + xorl %r8d,%edi + addl %r12d,%ecx + shrdl $6,%r13d,%r13d + andl %edi,%r15d + xorl %edx,%r14d + addl %r13d,%ecx + xorl %r8d,%r15d + shrdl $2,%r14d,%r14d + addl %ecx,%r10d + addl %r15d,%ecx + movl %r10d,%r13d + addl %ecx,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%ecx + movl %r11d,%r12d + shrdl $9,%r14d,%r14d + xorl %r10d,%r13d + xorl %eax,%r12d + shrdl $5,%r13d,%r13d + xorl %ecx,%r14d + andl %r10d,%r12d + xorl %r10d,%r13d + addl 56(%rsp),%ebx + movl %ecx,%r15d + xorl %eax,%r12d + shrdl $11,%r14d,%r14d + xorl %edx,%r15d + addl %r12d,%ebx + shrdl $6,%r13d,%r13d + andl %r15d,%edi + xorl %ecx,%r14d + addl %r13d,%ebx + xorl %edx,%edi + shrdl $2,%r14d,%r14d + addl %ebx,%r9d + addl %edi,%ebx + movl %r9d,%r13d + addl %ebx,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%ebx + movl %r10d,%r12d + shrdl $9,%r14d,%r14d + xorl %r9d,%r13d + xorl %r11d,%r12d + shrdl $5,%r13d,%r13d + xorl %ebx,%r14d + andl %r9d,%r12d + xorl %r9d,%r13d + addl 60(%rsp),%eax + movl %ebx,%edi + xorl %r11d,%r12d + shrdl $11,%r14d,%r14d + xorl %ecx,%edi + addl %r12d,%eax + shrdl $6,%r13d,%r13d + andl %edi,%r15d + xorl %ebx,%r14d + addl %r13d,%eax + xorl %ecx,%r15d + shrdl $2,%r14d,%r14d + addl %eax,%r8d + addl %r15d,%eax + movl %r8d,%r13d + addl %eax,%r14d + movq 64+0(%rsp),%rdi + movl %r14d,%eax + + addl 0(%rdi),%eax + leaq 64(%rsi),%rsi + addl 4(%rdi),%ebx + addl 8(%rdi),%ecx + addl 12(%rdi),%edx + addl 16(%rdi),%r8d + addl 20(%rdi),%r9d + addl 24(%rdi),%r10d + addl 28(%rdi),%r11d + + cmpq 64+16(%rsp),%rsi + + movl %eax,0(%rdi) + movl %ebx,4(%rdi) + movl %ecx,8(%rdi) + movl %edx,12(%rdi) + movl %r8d,16(%rdi) + movl %r9d,20(%rdi) + movl %r10d,24(%rdi) + movl %r11d,28(%rdi) + jb .Lloop_avx + + movq 88(%rsp),%rsi +.cfi_def_cfa %rsi,8 + vzeroupper + movq -48(%rsi),%r15 +.cfi_restore %r15 + movq -40(%rsi),%r14 +.cfi_restore %r14 + movq -32(%rsi),%r13 +.cfi_restore %r13 + movq -24(%rsi),%r12 +.cfi_restore %r12 + movq -16(%rsi),%rbp +.cfi_restore %rbp + movq -8(%rsi),%rbx +.cfi_restore %rbx + leaq (%rsi),%rsp +.cfi_def_cfa_register %rsp +.Lepilogue_avx: + .byte 0xf3,0xc3 +.cfi_endproc +.size sha256_block_data_order_avx,.-sha256_block_data_order_avx +.type sha256_block_data_order_avx2,@function +.align 64 +sha256_block_data_order_avx2: +.cfi_startproc +.Lavx2_shortcut: + movq %rsp,%rax +.cfi_def_cfa_register %rax + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_offset %r15,-56 + subq $544,%rsp + shlq $4,%rdx + andq $-1024,%rsp + leaq (%rsi,%rdx,4),%rdx + addq $448,%rsp + movq %rdi,64+0(%rsp) + movq %rsi,64+8(%rsp) + movq %rdx,64+16(%rsp) + movq %rax,88(%rsp) +.cfi_escape 0x0f,0x06,0x77,0xd8,0x00,0x06,0x23,0x08 +.Lprologue_avx2: + + vzeroupper + subq $-64,%rsi + movl 0(%rdi),%eax + movq %rsi,%r12 + movl 4(%rdi),%ebx + cmpq %rdx,%rsi + movl 8(%rdi),%ecx + cmoveq %rsp,%r12 + movl 12(%rdi),%edx + movl 16(%rdi),%r8d + movl 20(%rdi),%r9d + movl 24(%rdi),%r10d + movl 28(%rdi),%r11d + vmovdqa K256+512+32(%rip),%ymm8 + vmovdqa K256+512+64(%rip),%ymm9 + jmp .Loop_avx2 +.align 16 +.Loop_avx2: + vmovdqa K256+512(%rip),%ymm7 + vmovdqu -64+0(%rsi),%xmm0 + vmovdqu -64+16(%rsi),%xmm1 + vmovdqu -64+32(%rsi),%xmm2 + vmovdqu -64+48(%rsi),%xmm3 + + vinserti128 $1,(%r12),%ymm0,%ymm0 + vinserti128 $1,16(%r12),%ymm1,%ymm1 + vpshufb %ymm7,%ymm0,%ymm0 + vinserti128 $1,32(%r12),%ymm2,%ymm2 + vpshufb %ymm7,%ymm1,%ymm1 + vinserti128 $1,48(%r12),%ymm3,%ymm3 + + leaq K256(%rip),%rbp + vpshufb %ymm7,%ymm2,%ymm2 + vpaddd 0(%rbp),%ymm0,%ymm4 + vpshufb %ymm7,%ymm3,%ymm3 + vpaddd 32(%rbp),%ymm1,%ymm5 + vpaddd 64(%rbp),%ymm2,%ymm6 + vpaddd 96(%rbp),%ymm3,%ymm7 + vmovdqa %ymm4,0(%rsp) + xorl %r14d,%r14d + vmovdqa %ymm5,32(%rsp) + + movq 88(%rsp),%rdi +.cfi_def_cfa %rdi,8 + leaq -64(%rsp),%rsp + + + + movq %rdi,-8(%rsp) +.cfi_escape 0x0f,0x05,0x77,0x78,0x06,0x23,0x08 + movl %ebx,%edi + vmovdqa %ymm6,0(%rsp) + xorl %ecx,%edi + vmovdqa %ymm7,32(%rsp) + movl %r9d,%r12d + subq $-32*4,%rbp + jmp .Lavx2_00_47 + +.align 16 +.Lavx2_00_47: + leaq -64(%rsp),%rsp +.cfi_escape 0x0f,0x05,0x77,0x38,0x06,0x23,0x08 + + pushq 64-8(%rsp) +.cfi_escape 0x0f,0x05,0x77,0x00,0x06,0x23,0x08 + leaq 8(%rsp),%rsp +.cfi_escape 0x0f,0x05,0x77,0x78,0x06,0x23,0x08 + vpalignr $4,%ymm0,%ymm1,%ymm4 + addl 0+128(%rsp),%r11d + andl %r8d,%r12d + rorxl $25,%r8d,%r13d + vpalignr $4,%ymm2,%ymm3,%ymm7 + rorxl $11,%r8d,%r15d + leal (%rax,%r14,1),%eax + leal (%r11,%r12,1),%r11d + vpsrld $7,%ymm4,%ymm6 + andnl %r10d,%r8d,%r12d + xorl %r15d,%r13d + rorxl $6,%r8d,%r14d + vpaddd %ymm7,%ymm0,%ymm0 + leal (%r11,%r12,1),%r11d + xorl %r14d,%r13d + movl %eax,%r15d + vpsrld $3,%ymm4,%ymm7 + rorxl $22,%eax,%r12d + leal (%r11,%r13,1),%r11d + xorl %ebx,%r15d + vpslld $14,%ymm4,%ymm5 + rorxl $13,%eax,%r14d + rorxl $2,%eax,%r13d + leal (%rdx,%r11,1),%edx + vpxor %ymm6,%ymm7,%ymm4 + andl %r15d,%edi + xorl %r12d,%r14d + xorl %ebx,%edi + vpshufd $250,%ymm3,%ymm7 + xorl %r13d,%r14d + leal (%r11,%rdi,1),%r11d + movl %r8d,%r12d + vpsrld $11,%ymm6,%ymm6 + addl 4+128(%rsp),%r10d + andl %edx,%r12d + rorxl $25,%edx,%r13d + vpxor %ymm5,%ymm4,%ymm4 + rorxl $11,%edx,%edi + leal (%r11,%r14,1),%r11d + leal (%r10,%r12,1),%r10d + vpslld $11,%ymm5,%ymm5 + andnl %r9d,%edx,%r12d + xorl %edi,%r13d + rorxl $6,%edx,%r14d + vpxor %ymm6,%ymm4,%ymm4 + leal (%r10,%r12,1),%r10d + xorl %r14d,%r13d + movl %r11d,%edi + vpsrld $10,%ymm7,%ymm6 + rorxl $22,%r11d,%r12d + leal (%r10,%r13,1),%r10d + xorl %eax,%edi + vpxor %ymm5,%ymm4,%ymm4 + rorxl $13,%r11d,%r14d + rorxl $2,%r11d,%r13d + leal (%rcx,%r10,1),%ecx + vpsrlq $17,%ymm7,%ymm7 + andl %edi,%r15d + xorl %r12d,%r14d + xorl %eax,%r15d + vpaddd %ymm4,%ymm0,%ymm0 + xorl %r13d,%r14d + leal (%r10,%r15,1),%r10d + movl %edx,%r12d + vpxor %ymm7,%ymm6,%ymm6 + addl 8+128(%rsp),%r9d + andl %ecx,%r12d + rorxl $25,%ecx,%r13d + vpsrlq $2,%ymm7,%ymm7 + rorxl $11,%ecx,%r15d + leal (%r10,%r14,1),%r10d + leal (%r9,%r12,1),%r9d + vpxor %ymm7,%ymm6,%ymm6 + andnl %r8d,%ecx,%r12d + xorl %r15d,%r13d + rorxl $6,%ecx,%r14d + vpshufb %ymm8,%ymm6,%ymm6 + leal (%r9,%r12,1),%r9d + xorl %r14d,%r13d + movl %r10d,%r15d + vpaddd %ymm6,%ymm0,%ymm0 + rorxl $22,%r10d,%r12d + leal (%r9,%r13,1),%r9d + xorl %r11d,%r15d + vpshufd $80,%ymm0,%ymm7 + rorxl $13,%r10d,%r14d + rorxl $2,%r10d,%r13d + leal (%rbx,%r9,1),%ebx + vpsrld $10,%ymm7,%ymm6 + andl %r15d,%edi + xorl %r12d,%r14d + xorl %r11d,%edi + vpsrlq $17,%ymm7,%ymm7 + xorl %r13d,%r14d + leal (%r9,%rdi,1),%r9d + movl %ecx,%r12d + vpxor %ymm7,%ymm6,%ymm6 + addl 12+128(%rsp),%r8d + andl %ebx,%r12d + rorxl $25,%ebx,%r13d + vpsrlq $2,%ymm7,%ymm7 + rorxl $11,%ebx,%edi + leal (%r9,%r14,1),%r9d + leal (%r8,%r12,1),%r8d + vpxor %ymm7,%ymm6,%ymm6 + andnl %edx,%ebx,%r12d + xorl %edi,%r13d + rorxl $6,%ebx,%r14d + vpshufb %ymm9,%ymm6,%ymm6 + leal (%r8,%r12,1),%r8d + xorl %r14d,%r13d + movl %r9d,%edi + vpaddd %ymm6,%ymm0,%ymm0 + rorxl $22,%r9d,%r12d + leal (%r8,%r13,1),%r8d + xorl %r10d,%edi + vpaddd 0(%rbp),%ymm0,%ymm6 + rorxl $13,%r9d,%r14d + rorxl $2,%r9d,%r13d + leal (%rax,%r8,1),%eax + andl %edi,%r15d + xorl %r12d,%r14d + xorl %r10d,%r15d + xorl %r13d,%r14d + leal (%r8,%r15,1),%r8d + movl %ebx,%r12d + vmovdqa %ymm6,0(%rsp) + vpalignr $4,%ymm1,%ymm2,%ymm4 + addl 32+128(%rsp),%edx + andl %eax,%r12d + rorxl $25,%eax,%r13d + vpalignr $4,%ymm3,%ymm0,%ymm7 + rorxl $11,%eax,%r15d + leal (%r8,%r14,1),%r8d + leal (%rdx,%r12,1),%edx + vpsrld $7,%ymm4,%ymm6 + andnl %ecx,%eax,%r12d + xorl %r15d,%r13d + rorxl $6,%eax,%r14d + vpaddd %ymm7,%ymm1,%ymm1 + leal (%rdx,%r12,1),%edx + xorl %r14d,%r13d + movl %r8d,%r15d + vpsrld $3,%ymm4,%ymm7 + rorxl $22,%r8d,%r12d + leal (%rdx,%r13,1),%edx + xorl %r9d,%r15d + vpslld $14,%ymm4,%ymm5 + rorxl $13,%r8d,%r14d + rorxl $2,%r8d,%r13d + leal (%r11,%rdx,1),%r11d + vpxor %ymm6,%ymm7,%ymm4 + andl %r15d,%edi + xorl %r12d,%r14d + xorl %r9d,%edi + vpshufd $250,%ymm0,%ymm7 + xorl %r13d,%r14d + leal (%rdx,%rdi,1),%edx + movl %eax,%r12d + vpsrld $11,%ymm6,%ymm6 + addl 36+128(%rsp),%ecx + andl %r11d,%r12d + rorxl $25,%r11d,%r13d + vpxor %ymm5,%ymm4,%ymm4 + rorxl $11,%r11d,%edi + leal (%rdx,%r14,1),%edx + leal (%rcx,%r12,1),%ecx + vpslld $11,%ymm5,%ymm5 + andnl %ebx,%r11d,%r12d + xorl %edi,%r13d + rorxl $6,%r11d,%r14d + vpxor %ymm6,%ymm4,%ymm4 + leal (%rcx,%r12,1),%ecx + xorl %r14d,%r13d + movl %edx,%edi + vpsrld $10,%ymm7,%ymm6 + rorxl $22,%edx,%r12d + leal (%rcx,%r13,1),%ecx + xorl %r8d,%edi + vpxor %ymm5,%ymm4,%ymm4 + rorxl $13,%edx,%r14d + rorxl $2,%edx,%r13d + leal (%r10,%rcx,1),%r10d + vpsrlq $17,%ymm7,%ymm7 + andl %edi,%r15d + xorl %r12d,%r14d + xorl %r8d,%r15d + vpaddd %ymm4,%ymm1,%ymm1 + xorl %r13d,%r14d + leal (%rcx,%r15,1),%ecx + movl %r11d,%r12d + vpxor %ymm7,%ymm6,%ymm6 + addl 40+128(%rsp),%ebx + andl %r10d,%r12d + rorxl $25,%r10d,%r13d + vpsrlq $2,%ymm7,%ymm7 + rorxl $11,%r10d,%r15d + leal (%rcx,%r14,1),%ecx + leal (%rbx,%r12,1),%ebx + vpxor %ymm7,%ymm6,%ymm6 + andnl %eax,%r10d,%r12d + xorl %r15d,%r13d + rorxl $6,%r10d,%r14d + vpshufb %ymm8,%ymm6,%ymm6 + leal (%rbx,%r12,1),%ebx + xorl %r14d,%r13d + movl %ecx,%r15d + vpaddd %ymm6,%ymm1,%ymm1 + rorxl $22,%ecx,%r12d + leal (%rbx,%r13,1),%ebx + xorl %edx,%r15d + vpshufd $80,%ymm1,%ymm7 + rorxl $13,%ecx,%r14d + rorxl $2,%ecx,%r13d + leal (%r9,%rbx,1),%r9d + vpsrld $10,%ymm7,%ymm6 + andl %r15d,%edi + xorl %r12d,%r14d + xorl %edx,%edi + vpsrlq $17,%ymm7,%ymm7 + xorl %r13d,%r14d + leal (%rbx,%rdi,1),%ebx + movl %r10d,%r12d + vpxor %ymm7,%ymm6,%ymm6 + addl 44+128(%rsp),%eax + andl %r9d,%r12d + rorxl $25,%r9d,%r13d + vpsrlq $2,%ymm7,%ymm7 + rorxl $11,%r9d,%edi + leal (%rbx,%r14,1),%ebx + leal (%rax,%r12,1),%eax + vpxor %ymm7,%ymm6,%ymm6 + andnl %r11d,%r9d,%r12d + xorl %edi,%r13d + rorxl $6,%r9d,%r14d + vpshufb %ymm9,%ymm6,%ymm6 + leal (%rax,%r12,1),%eax + xorl %r14d,%r13d + movl %ebx,%edi + vpaddd %ymm6,%ymm1,%ymm1 + rorxl $22,%ebx,%r12d + leal (%rax,%r13,1),%eax + xorl %ecx,%edi + vpaddd 32(%rbp),%ymm1,%ymm6 + rorxl $13,%ebx,%r14d + rorxl $2,%ebx,%r13d + leal (%r8,%rax,1),%r8d + andl %edi,%r15d + xorl %r12d,%r14d + xorl %ecx,%r15d + xorl %r13d,%r14d + leal (%rax,%r15,1),%eax + movl %r9d,%r12d + vmovdqa %ymm6,32(%rsp) + leaq -64(%rsp),%rsp +.cfi_escape 0x0f,0x05,0x77,0x38,0x06,0x23,0x08 + + pushq 64-8(%rsp) +.cfi_escape 0x0f,0x05,0x77,0x00,0x06,0x23,0x08 + leaq 8(%rsp),%rsp +.cfi_escape 0x0f,0x05,0x77,0x78,0x06,0x23,0x08 + vpalignr $4,%ymm2,%ymm3,%ymm4 + addl 0+128(%rsp),%r11d + andl %r8d,%r12d + rorxl $25,%r8d,%r13d + vpalignr $4,%ymm0,%ymm1,%ymm7 + rorxl $11,%r8d,%r15d + leal (%rax,%r14,1),%eax + leal (%r11,%r12,1),%r11d + vpsrld $7,%ymm4,%ymm6 + andnl %r10d,%r8d,%r12d + xorl %r15d,%r13d + rorxl $6,%r8d,%r14d + vpaddd %ymm7,%ymm2,%ymm2 + leal (%r11,%r12,1),%r11d + xorl %r14d,%r13d + movl %eax,%r15d + vpsrld $3,%ymm4,%ymm7 + rorxl $22,%eax,%r12d + leal (%r11,%r13,1),%r11d + xorl %ebx,%r15d + vpslld $14,%ymm4,%ymm5 + rorxl $13,%eax,%r14d + rorxl $2,%eax,%r13d + leal (%rdx,%r11,1),%edx + vpxor %ymm6,%ymm7,%ymm4 + andl %r15d,%edi + xorl %r12d,%r14d + xorl %ebx,%edi + vpshufd $250,%ymm1,%ymm7 + xorl %r13d,%r14d + leal (%r11,%rdi,1),%r11d + movl %r8d,%r12d + vpsrld $11,%ymm6,%ymm6 + addl 4+128(%rsp),%r10d + andl %edx,%r12d + rorxl $25,%edx,%r13d + vpxor %ymm5,%ymm4,%ymm4 + rorxl $11,%edx,%edi + leal (%r11,%r14,1),%r11d + leal (%r10,%r12,1),%r10d + vpslld $11,%ymm5,%ymm5 + andnl %r9d,%edx,%r12d + xorl %edi,%r13d + rorxl $6,%edx,%r14d + vpxor %ymm6,%ymm4,%ymm4 + leal (%r10,%r12,1),%r10d + xorl %r14d,%r13d + movl %r11d,%edi + vpsrld $10,%ymm7,%ymm6 + rorxl $22,%r11d,%r12d + leal (%r10,%r13,1),%r10d + xorl %eax,%edi + vpxor %ymm5,%ymm4,%ymm4 + rorxl $13,%r11d,%r14d + rorxl $2,%r11d,%r13d + leal (%rcx,%r10,1),%ecx + vpsrlq $17,%ymm7,%ymm7 + andl %edi,%r15d + xorl %r12d,%r14d + xorl %eax,%r15d + vpaddd %ymm4,%ymm2,%ymm2 + xorl %r13d,%r14d + leal (%r10,%r15,1),%r10d + movl %edx,%r12d + vpxor %ymm7,%ymm6,%ymm6 + addl 8+128(%rsp),%r9d + andl %ecx,%r12d + rorxl $25,%ecx,%r13d + vpsrlq $2,%ymm7,%ymm7 + rorxl $11,%ecx,%r15d + leal (%r10,%r14,1),%r10d + leal (%r9,%r12,1),%r9d + vpxor %ymm7,%ymm6,%ymm6 + andnl %r8d,%ecx,%r12d + xorl %r15d,%r13d + rorxl $6,%ecx,%r14d + vpshufb %ymm8,%ymm6,%ymm6 + leal (%r9,%r12,1),%r9d + xorl %r14d,%r13d + movl %r10d,%r15d + vpaddd %ymm6,%ymm2,%ymm2 + rorxl $22,%r10d,%r12d + leal (%r9,%r13,1),%r9d + xorl %r11d,%r15d + vpshufd $80,%ymm2,%ymm7 + rorxl $13,%r10d,%r14d + rorxl $2,%r10d,%r13d + leal (%rbx,%r9,1),%ebx + vpsrld $10,%ymm7,%ymm6 + andl %r15d,%edi + xorl %r12d,%r14d + xorl %r11d,%edi + vpsrlq $17,%ymm7,%ymm7 + xorl %r13d,%r14d + leal (%r9,%rdi,1),%r9d + movl %ecx,%r12d + vpxor %ymm7,%ymm6,%ymm6 + addl 12+128(%rsp),%r8d + andl %ebx,%r12d + rorxl $25,%ebx,%r13d + vpsrlq $2,%ymm7,%ymm7 + rorxl $11,%ebx,%edi + leal (%r9,%r14,1),%r9d + leal (%r8,%r12,1),%r8d + vpxor %ymm7,%ymm6,%ymm6 + andnl %edx,%ebx,%r12d + xorl %edi,%r13d + rorxl $6,%ebx,%r14d + vpshufb %ymm9,%ymm6,%ymm6 + leal (%r8,%r12,1),%r8d + xorl %r14d,%r13d + movl %r9d,%edi + vpaddd %ymm6,%ymm2,%ymm2 + rorxl $22,%r9d,%r12d + leal (%r8,%r13,1),%r8d + xorl %r10d,%edi + vpaddd 64(%rbp),%ymm2,%ymm6 + rorxl $13,%r9d,%r14d + rorxl $2,%r9d,%r13d + leal (%rax,%r8,1),%eax + andl %edi,%r15d + xorl %r12d,%r14d + xorl %r10d,%r15d + xorl %r13d,%r14d + leal (%r8,%r15,1),%r8d + movl %ebx,%r12d + vmovdqa %ymm6,0(%rsp) + vpalignr $4,%ymm3,%ymm0,%ymm4 + addl 32+128(%rsp),%edx + andl %eax,%r12d + rorxl $25,%eax,%r13d + vpalignr $4,%ymm1,%ymm2,%ymm7 + rorxl $11,%eax,%r15d + leal (%r8,%r14,1),%r8d + leal (%rdx,%r12,1),%edx + vpsrld $7,%ymm4,%ymm6 + andnl %ecx,%eax,%r12d + xorl %r15d,%r13d + rorxl $6,%eax,%r14d + vpaddd %ymm7,%ymm3,%ymm3 + leal (%rdx,%r12,1),%edx + xorl %r14d,%r13d + movl %r8d,%r15d + vpsrld $3,%ymm4,%ymm7 + rorxl $22,%r8d,%r12d + leal (%rdx,%r13,1),%edx + xorl %r9d,%r15d + vpslld $14,%ymm4,%ymm5 + rorxl $13,%r8d,%r14d + rorxl $2,%r8d,%r13d + leal (%r11,%rdx,1),%r11d + vpxor %ymm6,%ymm7,%ymm4 + andl %r15d,%edi + xorl %r12d,%r14d + xorl %r9d,%edi + vpshufd $250,%ymm2,%ymm7 + xorl %r13d,%r14d + leal (%rdx,%rdi,1),%edx + movl %eax,%r12d + vpsrld $11,%ymm6,%ymm6 + addl 36+128(%rsp),%ecx + andl %r11d,%r12d + rorxl $25,%r11d,%r13d + vpxor %ymm5,%ymm4,%ymm4 + rorxl $11,%r11d,%edi + leal (%rdx,%r14,1),%edx + leal (%rcx,%r12,1),%ecx + vpslld $11,%ymm5,%ymm5 + andnl %ebx,%r11d,%r12d + xorl %edi,%r13d + rorxl $6,%r11d,%r14d + vpxor %ymm6,%ymm4,%ymm4 + leal (%rcx,%r12,1),%ecx + xorl %r14d,%r13d + movl %edx,%edi + vpsrld $10,%ymm7,%ymm6 + rorxl $22,%edx,%r12d + leal (%rcx,%r13,1),%ecx + xorl %r8d,%edi + vpxor %ymm5,%ymm4,%ymm4 + rorxl $13,%edx,%r14d + rorxl $2,%edx,%r13d + leal (%r10,%rcx,1),%r10d + vpsrlq $17,%ymm7,%ymm7 + andl %edi,%r15d + xorl %r12d,%r14d + xorl %r8d,%r15d + vpaddd %ymm4,%ymm3,%ymm3 + xorl %r13d,%r14d + leal (%rcx,%r15,1),%ecx + movl %r11d,%r12d + vpxor %ymm7,%ymm6,%ymm6 + addl 40+128(%rsp),%ebx + andl %r10d,%r12d + rorxl $25,%r10d,%r13d + vpsrlq $2,%ymm7,%ymm7 + rorxl $11,%r10d,%r15d + leal (%rcx,%r14,1),%ecx + leal (%rbx,%r12,1),%ebx + vpxor %ymm7,%ymm6,%ymm6 + andnl %eax,%r10d,%r12d + xorl %r15d,%r13d + rorxl $6,%r10d,%r14d + vpshufb %ymm8,%ymm6,%ymm6 + leal (%rbx,%r12,1),%ebx + xorl %r14d,%r13d + movl %ecx,%r15d + vpaddd %ymm6,%ymm3,%ymm3 + rorxl $22,%ecx,%r12d + leal (%rbx,%r13,1),%ebx + xorl %edx,%r15d + vpshufd $80,%ymm3,%ymm7 + rorxl $13,%ecx,%r14d + rorxl $2,%ecx,%r13d + leal (%r9,%rbx,1),%r9d + vpsrld $10,%ymm7,%ymm6 + andl %r15d,%edi + xorl %r12d,%r14d + xorl %edx,%edi + vpsrlq $17,%ymm7,%ymm7 + xorl %r13d,%r14d + leal (%rbx,%rdi,1),%ebx + movl %r10d,%r12d + vpxor %ymm7,%ymm6,%ymm6 + addl 44+128(%rsp),%eax + andl %r9d,%r12d + rorxl $25,%r9d,%r13d + vpsrlq $2,%ymm7,%ymm7 + rorxl $11,%r9d,%edi + leal (%rbx,%r14,1),%ebx + leal (%rax,%r12,1),%eax + vpxor %ymm7,%ymm6,%ymm6 + andnl %r11d,%r9d,%r12d + xorl %edi,%r13d + rorxl $6,%r9d,%r14d + vpshufb %ymm9,%ymm6,%ymm6 + leal (%rax,%r12,1),%eax + xorl %r14d,%r13d + movl %ebx,%edi + vpaddd %ymm6,%ymm3,%ymm3 + rorxl $22,%ebx,%r12d + leal (%rax,%r13,1),%eax + xorl %ecx,%edi + vpaddd 96(%rbp),%ymm3,%ymm6 + rorxl $13,%ebx,%r14d + rorxl $2,%ebx,%r13d + leal (%r8,%rax,1),%r8d + andl %edi,%r15d + xorl %r12d,%r14d + xorl %ecx,%r15d + xorl %r13d,%r14d + leal (%rax,%r15,1),%eax + movl %r9d,%r12d + vmovdqa %ymm6,32(%rsp) + leaq 128(%rbp),%rbp + cmpb $0,3(%rbp) + jne .Lavx2_00_47 + addl 0+64(%rsp),%r11d + andl %r8d,%r12d + rorxl $25,%r8d,%r13d + rorxl $11,%r8d,%r15d + leal (%rax,%r14,1),%eax + leal (%r11,%r12,1),%r11d + andnl %r10d,%r8d,%r12d + xorl %r15d,%r13d + rorxl $6,%r8d,%r14d + leal (%r11,%r12,1),%r11d + xorl %r14d,%r13d + movl %eax,%r15d + rorxl $22,%eax,%r12d + leal (%r11,%r13,1),%r11d + xorl %ebx,%r15d + rorxl $13,%eax,%r14d + rorxl $2,%eax,%r13d + leal (%rdx,%r11,1),%edx + andl %r15d,%edi + xorl %r12d,%r14d + xorl %ebx,%edi + xorl %r13d,%r14d + leal (%r11,%rdi,1),%r11d + movl %r8d,%r12d + addl 4+64(%rsp),%r10d + andl %edx,%r12d + rorxl $25,%edx,%r13d + rorxl $11,%edx,%edi + leal (%r11,%r14,1),%r11d + leal (%r10,%r12,1),%r10d + andnl %r9d,%edx,%r12d + xorl %edi,%r13d + rorxl $6,%edx,%r14d + leal (%r10,%r12,1),%r10d + xorl %r14d,%r13d + movl %r11d,%edi + rorxl $22,%r11d,%r12d + leal (%r10,%r13,1),%r10d + xorl %eax,%edi + rorxl $13,%r11d,%r14d + rorxl $2,%r11d,%r13d + leal (%rcx,%r10,1),%ecx + andl %edi,%r15d + xorl %r12d,%r14d + xorl %eax,%r15d + xorl %r13d,%r14d + leal (%r10,%r15,1),%r10d + movl %edx,%r12d + addl 8+64(%rsp),%r9d + andl %ecx,%r12d + rorxl $25,%ecx,%r13d + rorxl $11,%ecx,%r15d + leal (%r10,%r14,1),%r10d + leal (%r9,%r12,1),%r9d + andnl %r8d,%ecx,%r12d + xorl %r15d,%r13d + rorxl $6,%ecx,%r14d + leal (%r9,%r12,1),%r9d + xorl %r14d,%r13d + movl %r10d,%r15d + rorxl $22,%r10d,%r12d + leal (%r9,%r13,1),%r9d + xorl %r11d,%r15d + rorxl $13,%r10d,%r14d + rorxl $2,%r10d,%r13d + leal (%rbx,%r9,1),%ebx + andl %r15d,%edi + xorl %r12d,%r14d + xorl %r11d,%edi + xorl %r13d,%r14d + leal (%r9,%rdi,1),%r9d + movl %ecx,%r12d + addl 12+64(%rsp),%r8d + andl %ebx,%r12d + rorxl $25,%ebx,%r13d + rorxl $11,%ebx,%edi + leal (%r9,%r14,1),%r9d + leal (%r8,%r12,1),%r8d + andnl %edx,%ebx,%r12d + xorl %edi,%r13d + rorxl $6,%ebx,%r14d + leal (%r8,%r12,1),%r8d + xorl %r14d,%r13d + movl %r9d,%edi + rorxl $22,%r9d,%r12d + leal (%r8,%r13,1),%r8d + xorl %r10d,%edi + rorxl $13,%r9d,%r14d + rorxl $2,%r9d,%r13d + leal (%rax,%r8,1),%eax + andl %edi,%r15d + xorl %r12d,%r14d + xorl %r10d,%r15d + xorl %r13d,%r14d + leal (%r8,%r15,1),%r8d + movl %ebx,%r12d + addl 32+64(%rsp),%edx + andl %eax,%r12d + rorxl $25,%eax,%r13d + rorxl $11,%eax,%r15d + leal (%r8,%r14,1),%r8d + leal (%rdx,%r12,1),%edx + andnl %ecx,%eax,%r12d + xorl %r15d,%r13d + rorxl $6,%eax,%r14d + leal (%rdx,%r12,1),%edx + xorl %r14d,%r13d + movl %r8d,%r15d + rorxl $22,%r8d,%r12d + leal (%rdx,%r13,1),%edx + xorl %r9d,%r15d + rorxl $13,%r8d,%r14d + rorxl $2,%r8d,%r13d + leal (%r11,%rdx,1),%r11d + andl %r15d,%edi + xorl %r12d,%r14d + xorl %r9d,%edi + xorl %r13d,%r14d + leal (%rdx,%rdi,1),%edx + movl %eax,%r12d + addl 36+64(%rsp),%ecx + andl %r11d,%r12d + rorxl $25,%r11d,%r13d + rorxl $11,%r11d,%edi + leal (%rdx,%r14,1),%edx + leal (%rcx,%r12,1),%ecx + andnl %ebx,%r11d,%r12d + xorl %edi,%r13d + rorxl $6,%r11d,%r14d + leal (%rcx,%r12,1),%ecx + xorl %r14d,%r13d + movl %edx,%edi + rorxl $22,%edx,%r12d + leal (%rcx,%r13,1),%ecx + xorl %r8d,%edi + rorxl $13,%edx,%r14d + rorxl $2,%edx,%r13d + leal (%r10,%rcx,1),%r10d + andl %edi,%r15d + xorl %r12d,%r14d + xorl %r8d,%r15d + xorl %r13d,%r14d + leal (%rcx,%r15,1),%ecx + movl %r11d,%r12d + addl 40+64(%rsp),%ebx + andl %r10d,%r12d + rorxl $25,%r10d,%r13d + rorxl $11,%r10d,%r15d + leal (%rcx,%r14,1),%ecx + leal (%rbx,%r12,1),%ebx + andnl %eax,%r10d,%r12d + xorl %r15d,%r13d + rorxl $6,%r10d,%r14d + leal (%rbx,%r12,1),%ebx + xorl %r14d,%r13d + movl %ecx,%r15d + rorxl $22,%ecx,%r12d + leal (%rbx,%r13,1),%ebx + xorl %edx,%r15d + rorxl $13,%ecx,%r14d + rorxl $2,%ecx,%r13d + leal (%r9,%rbx,1),%r9d + andl %r15d,%edi + xorl %r12d,%r14d + xorl %edx,%edi + xorl %r13d,%r14d + leal (%rbx,%rdi,1),%ebx + movl %r10d,%r12d + addl 44+64(%rsp),%eax + andl %r9d,%r12d + rorxl $25,%r9d,%r13d + rorxl $11,%r9d,%edi + leal (%rbx,%r14,1),%ebx + leal (%rax,%r12,1),%eax + andnl %r11d,%r9d,%r12d + xorl %edi,%r13d + rorxl $6,%r9d,%r14d + leal (%rax,%r12,1),%eax + xorl %r14d,%r13d + movl %ebx,%edi + rorxl $22,%ebx,%r12d + leal (%rax,%r13,1),%eax + xorl %ecx,%edi + rorxl $13,%ebx,%r14d + rorxl $2,%ebx,%r13d + leal (%r8,%rax,1),%r8d + andl %edi,%r15d + xorl %r12d,%r14d + xorl %ecx,%r15d + xorl %r13d,%r14d + leal (%rax,%r15,1),%eax + movl %r9d,%r12d + addl 0(%rsp),%r11d + andl %r8d,%r12d + rorxl $25,%r8d,%r13d + rorxl $11,%r8d,%r15d + leal (%rax,%r14,1),%eax + leal (%r11,%r12,1),%r11d + andnl %r10d,%r8d,%r12d + xorl %r15d,%r13d + rorxl $6,%r8d,%r14d + leal (%r11,%r12,1),%r11d + xorl %r14d,%r13d + movl %eax,%r15d + rorxl $22,%eax,%r12d + leal (%r11,%r13,1),%r11d + xorl %ebx,%r15d + rorxl $13,%eax,%r14d + rorxl $2,%eax,%r13d + leal (%rdx,%r11,1),%edx + andl %r15d,%edi + xorl %r12d,%r14d + xorl %ebx,%edi + xorl %r13d,%r14d + leal (%r11,%rdi,1),%r11d + movl %r8d,%r12d + addl 4(%rsp),%r10d + andl %edx,%r12d + rorxl $25,%edx,%r13d + rorxl $11,%edx,%edi + leal (%r11,%r14,1),%r11d + leal (%r10,%r12,1),%r10d + andnl %r9d,%edx,%r12d + xorl %edi,%r13d + rorxl $6,%edx,%r14d + leal (%r10,%r12,1),%r10d + xorl %r14d,%r13d + movl %r11d,%edi + rorxl $22,%r11d,%r12d + leal (%r10,%r13,1),%r10d + xorl %eax,%edi + rorxl $13,%r11d,%r14d + rorxl $2,%r11d,%r13d + leal (%rcx,%r10,1),%ecx + andl %edi,%r15d + xorl %r12d,%r14d + xorl %eax,%r15d + xorl %r13d,%r14d + leal (%r10,%r15,1),%r10d + movl %edx,%r12d + addl 8(%rsp),%r9d + andl %ecx,%r12d + rorxl $25,%ecx,%r13d + rorxl $11,%ecx,%r15d + leal (%r10,%r14,1),%r10d + leal (%r9,%r12,1),%r9d + andnl %r8d,%ecx,%r12d + xorl %r15d,%r13d + rorxl $6,%ecx,%r14d + leal (%r9,%r12,1),%r9d + xorl %r14d,%r13d + movl %r10d,%r15d + rorxl $22,%r10d,%r12d + leal (%r9,%r13,1),%r9d + xorl %r11d,%r15d + rorxl $13,%r10d,%r14d + rorxl $2,%r10d,%r13d + leal (%rbx,%r9,1),%ebx + andl %r15d,%edi + xorl %r12d,%r14d + xorl %r11d,%edi + xorl %r13d,%r14d + leal (%r9,%rdi,1),%r9d + movl %ecx,%r12d + addl 12(%rsp),%r8d + andl %ebx,%r12d + rorxl $25,%ebx,%r13d + rorxl $11,%ebx,%edi + leal (%r9,%r14,1),%r9d + leal (%r8,%r12,1),%r8d + andnl %edx,%ebx,%r12d + xorl %edi,%r13d + rorxl $6,%ebx,%r14d + leal (%r8,%r12,1),%r8d + xorl %r14d,%r13d + movl %r9d,%edi + rorxl $22,%r9d,%r12d + leal (%r8,%r13,1),%r8d + xorl %r10d,%edi + rorxl $13,%r9d,%r14d + rorxl $2,%r9d,%r13d + leal (%rax,%r8,1),%eax + andl %edi,%r15d + xorl %r12d,%r14d + xorl %r10d,%r15d + xorl %r13d,%r14d + leal (%r8,%r15,1),%r8d + movl %ebx,%r12d + addl 32(%rsp),%edx + andl %eax,%r12d + rorxl $25,%eax,%r13d + rorxl $11,%eax,%r15d + leal (%r8,%r14,1),%r8d + leal (%rdx,%r12,1),%edx + andnl %ecx,%eax,%r12d + xorl %r15d,%r13d + rorxl $6,%eax,%r14d + leal (%rdx,%r12,1),%edx + xorl %r14d,%r13d + movl %r8d,%r15d + rorxl $22,%r8d,%r12d + leal (%rdx,%r13,1),%edx + xorl %r9d,%r15d + rorxl $13,%r8d,%r14d + rorxl $2,%r8d,%r13d + leal (%r11,%rdx,1),%r11d + andl %r15d,%edi + xorl %r12d,%r14d + xorl %r9d,%edi + xorl %r13d,%r14d + leal (%rdx,%rdi,1),%edx + movl %eax,%r12d + addl 36(%rsp),%ecx + andl %r11d,%r12d + rorxl $25,%r11d,%r13d + rorxl $11,%r11d,%edi + leal (%rdx,%r14,1),%edx + leal (%rcx,%r12,1),%ecx + andnl %ebx,%r11d,%r12d + xorl %edi,%r13d + rorxl $6,%r11d,%r14d + leal (%rcx,%r12,1),%ecx + xorl %r14d,%r13d + movl %edx,%edi + rorxl $22,%edx,%r12d + leal (%rcx,%r13,1),%ecx + xorl %r8d,%edi + rorxl $13,%edx,%r14d + rorxl $2,%edx,%r13d + leal (%r10,%rcx,1),%r10d + andl %edi,%r15d + xorl %r12d,%r14d + xorl %r8d,%r15d + xorl %r13d,%r14d + leal (%rcx,%r15,1),%ecx + movl %r11d,%r12d + addl 40(%rsp),%ebx + andl %r10d,%r12d + rorxl $25,%r10d,%r13d + rorxl $11,%r10d,%r15d + leal (%rcx,%r14,1),%ecx + leal (%rbx,%r12,1),%ebx + andnl %eax,%r10d,%r12d + xorl %r15d,%r13d + rorxl $6,%r10d,%r14d + leal (%rbx,%r12,1),%ebx + xorl %r14d,%r13d + movl %ecx,%r15d + rorxl $22,%ecx,%r12d + leal (%rbx,%r13,1),%ebx + xorl %edx,%r15d + rorxl $13,%ecx,%r14d + rorxl $2,%ecx,%r13d + leal (%r9,%rbx,1),%r9d + andl %r15d,%edi + xorl %r12d,%r14d + xorl %edx,%edi + xorl %r13d,%r14d + leal (%rbx,%rdi,1),%ebx + movl %r10d,%r12d + addl 44(%rsp),%eax + andl %r9d,%r12d + rorxl $25,%r9d,%r13d + rorxl $11,%r9d,%edi + leal (%rbx,%r14,1),%ebx + leal (%rax,%r12,1),%eax + andnl %r11d,%r9d,%r12d + xorl %edi,%r13d + rorxl $6,%r9d,%r14d + leal (%rax,%r12,1),%eax + xorl %r14d,%r13d + movl %ebx,%edi + rorxl $22,%ebx,%r12d + leal (%rax,%r13,1),%eax + xorl %ecx,%edi + rorxl $13,%ebx,%r14d + rorxl $2,%ebx,%r13d + leal (%r8,%rax,1),%r8d + andl %edi,%r15d + xorl %r12d,%r14d + xorl %ecx,%r15d + xorl %r13d,%r14d + leal (%rax,%r15,1),%eax + movl %r9d,%r12d + movq 512(%rsp),%rdi + addl %r14d,%eax + + leaq 448(%rsp),%rbp + + addl 0(%rdi),%eax + addl 4(%rdi),%ebx + addl 8(%rdi),%ecx + addl 12(%rdi),%edx + addl 16(%rdi),%r8d + addl 20(%rdi),%r9d + addl 24(%rdi),%r10d + addl 28(%rdi),%r11d + + movl %eax,0(%rdi) + movl %ebx,4(%rdi) + movl %ecx,8(%rdi) + movl %edx,12(%rdi) + movl %r8d,16(%rdi) + movl %r9d,20(%rdi) + movl %r10d,24(%rdi) + movl %r11d,28(%rdi) + + cmpq 80(%rbp),%rsi + je .Ldone_avx2 + + xorl %r14d,%r14d + movl %ebx,%edi + xorl %ecx,%edi + movl %r9d,%r12d + jmp .Lower_avx2 +.align 16 +.Lower_avx2: + addl 0+16(%rbp),%r11d + andl %r8d,%r12d + rorxl $25,%r8d,%r13d + rorxl $11,%r8d,%r15d + leal (%rax,%r14,1),%eax + leal (%r11,%r12,1),%r11d + andnl %r10d,%r8d,%r12d + xorl %r15d,%r13d + rorxl $6,%r8d,%r14d + leal (%r11,%r12,1),%r11d + xorl %r14d,%r13d + movl %eax,%r15d + rorxl $22,%eax,%r12d + leal (%r11,%r13,1),%r11d + xorl %ebx,%r15d + rorxl $13,%eax,%r14d + rorxl $2,%eax,%r13d + leal (%rdx,%r11,1),%edx + andl %r15d,%edi + xorl %r12d,%r14d + xorl %ebx,%edi + xorl %r13d,%r14d + leal (%r11,%rdi,1),%r11d + movl %r8d,%r12d + addl 4+16(%rbp),%r10d + andl %edx,%r12d + rorxl $25,%edx,%r13d + rorxl $11,%edx,%edi + leal (%r11,%r14,1),%r11d + leal (%r10,%r12,1),%r10d + andnl %r9d,%edx,%r12d + xorl %edi,%r13d + rorxl $6,%edx,%r14d + leal (%r10,%r12,1),%r10d + xorl %r14d,%r13d + movl %r11d,%edi + rorxl $22,%r11d,%r12d + leal (%r10,%r13,1),%r10d + xorl %eax,%edi + rorxl $13,%r11d,%r14d + rorxl $2,%r11d,%r13d + leal (%rcx,%r10,1),%ecx + andl %edi,%r15d + xorl %r12d,%r14d + xorl %eax,%r15d + xorl %r13d,%r14d + leal (%r10,%r15,1),%r10d + movl %edx,%r12d + addl 8+16(%rbp),%r9d + andl %ecx,%r12d + rorxl $25,%ecx,%r13d + rorxl $11,%ecx,%r15d + leal (%r10,%r14,1),%r10d + leal (%r9,%r12,1),%r9d + andnl %r8d,%ecx,%r12d + xorl %r15d,%r13d + rorxl $6,%ecx,%r14d + leal (%r9,%r12,1),%r9d + xorl %r14d,%r13d + movl %r10d,%r15d + rorxl $22,%r10d,%r12d + leal (%r9,%r13,1),%r9d + xorl %r11d,%r15d + rorxl $13,%r10d,%r14d + rorxl $2,%r10d,%r13d + leal (%rbx,%r9,1),%ebx + andl %r15d,%edi + xorl %r12d,%r14d + xorl %r11d,%edi + xorl %r13d,%r14d + leal (%r9,%rdi,1),%r9d + movl %ecx,%r12d + addl 12+16(%rbp),%r8d + andl %ebx,%r12d + rorxl $25,%ebx,%r13d + rorxl $11,%ebx,%edi + leal (%r9,%r14,1),%r9d + leal (%r8,%r12,1),%r8d + andnl %edx,%ebx,%r12d + xorl %edi,%r13d + rorxl $6,%ebx,%r14d + leal (%r8,%r12,1),%r8d + xorl %r14d,%r13d + movl %r9d,%edi + rorxl $22,%r9d,%r12d + leal (%r8,%r13,1),%r8d + xorl %r10d,%edi + rorxl $13,%r9d,%r14d + rorxl $2,%r9d,%r13d + leal (%rax,%r8,1),%eax + andl %edi,%r15d + xorl %r12d,%r14d + xorl %r10d,%r15d + xorl %r13d,%r14d + leal (%r8,%r15,1),%r8d + movl %ebx,%r12d + addl 32+16(%rbp),%edx + andl %eax,%r12d + rorxl $25,%eax,%r13d + rorxl $11,%eax,%r15d + leal (%r8,%r14,1),%r8d + leal (%rdx,%r12,1),%edx + andnl %ecx,%eax,%r12d + xorl %r15d,%r13d + rorxl $6,%eax,%r14d + leal (%rdx,%r12,1),%edx + xorl %r14d,%r13d + movl %r8d,%r15d + rorxl $22,%r8d,%r12d + leal (%rdx,%r13,1),%edx + xorl %r9d,%r15d + rorxl $13,%r8d,%r14d + rorxl $2,%r8d,%r13d + leal (%r11,%rdx,1),%r11d + andl %r15d,%edi + xorl %r12d,%r14d + xorl %r9d,%edi + xorl %r13d,%r14d + leal (%rdx,%rdi,1),%edx + movl %eax,%r12d + addl 36+16(%rbp),%ecx + andl %r11d,%r12d + rorxl $25,%r11d,%r13d + rorxl $11,%r11d,%edi + leal (%rdx,%r14,1),%edx + leal (%rcx,%r12,1),%ecx + andnl %ebx,%r11d,%r12d + xorl %edi,%r13d + rorxl $6,%r11d,%r14d + leal (%rcx,%r12,1),%ecx + xorl %r14d,%r13d + movl %edx,%edi + rorxl $22,%edx,%r12d + leal (%rcx,%r13,1),%ecx + xorl %r8d,%edi + rorxl $13,%edx,%r14d + rorxl $2,%edx,%r13d + leal (%r10,%rcx,1),%r10d + andl %edi,%r15d + xorl %r12d,%r14d + xorl %r8d,%r15d + xorl %r13d,%r14d + leal (%rcx,%r15,1),%ecx + movl %r11d,%r12d + addl 40+16(%rbp),%ebx + andl %r10d,%r12d + rorxl $25,%r10d,%r13d + rorxl $11,%r10d,%r15d + leal (%rcx,%r14,1),%ecx + leal (%rbx,%r12,1),%ebx + andnl %eax,%r10d,%r12d + xorl %r15d,%r13d + rorxl $6,%r10d,%r14d + leal (%rbx,%r12,1),%ebx + xorl %r14d,%r13d + movl %ecx,%r15d + rorxl $22,%ecx,%r12d + leal (%rbx,%r13,1),%ebx + xorl %edx,%r15d + rorxl $13,%ecx,%r14d + rorxl $2,%ecx,%r13d + leal (%r9,%rbx,1),%r9d + andl %r15d,%edi + xorl %r12d,%r14d + xorl %edx,%edi + xorl %r13d,%r14d + leal (%rbx,%rdi,1),%ebx + movl %r10d,%r12d + addl 44+16(%rbp),%eax + andl %r9d,%r12d + rorxl $25,%r9d,%r13d + rorxl $11,%r9d,%edi + leal (%rbx,%r14,1),%ebx + leal (%rax,%r12,1),%eax + andnl %r11d,%r9d,%r12d + xorl %edi,%r13d + rorxl $6,%r9d,%r14d + leal (%rax,%r12,1),%eax + xorl %r14d,%r13d + movl %ebx,%edi + rorxl $22,%ebx,%r12d + leal (%rax,%r13,1),%eax + xorl %ecx,%edi + rorxl $13,%ebx,%r14d + rorxl $2,%ebx,%r13d + leal (%r8,%rax,1),%r8d + andl %edi,%r15d + xorl %r12d,%r14d + xorl %ecx,%r15d + xorl %r13d,%r14d + leal (%rax,%r15,1),%eax + movl %r9d,%r12d + leaq -64(%rbp),%rbp + cmpq %rsp,%rbp + jae .Lower_avx2 + + movq 512(%rsp),%rdi + addl %r14d,%eax + + leaq 448(%rsp),%rsp + +.cfi_escape 0x0f,0x06,0x77,0xd8,0x00,0x06,0x23,0x08 + + addl 0(%rdi),%eax + addl 4(%rdi),%ebx + addl 8(%rdi),%ecx + addl 12(%rdi),%edx + addl 16(%rdi),%r8d + addl 20(%rdi),%r9d + leaq 128(%rsi),%rsi + addl 24(%rdi),%r10d + movq %rsi,%r12 + addl 28(%rdi),%r11d + cmpq 64+16(%rsp),%rsi + + movl %eax,0(%rdi) + cmoveq %rsp,%r12 + movl %ebx,4(%rdi) + movl %ecx,8(%rdi) + movl %edx,12(%rdi) + movl %r8d,16(%rdi) + movl %r9d,20(%rdi) + movl %r10d,24(%rdi) + movl %r11d,28(%rdi) + + jbe .Loop_avx2 + leaq (%rsp),%rbp + + +.cfi_escape 0x0f,0x06,0x76,0xd8,0x00,0x06,0x23,0x08 + +.Ldone_avx2: + movq 88(%rbp),%rsi +.cfi_def_cfa %rsi,8 + vzeroupper + movq -48(%rsi),%r15 +.cfi_restore %r15 + movq -40(%rsi),%r14 +.cfi_restore %r14 + movq -32(%rsi),%r13 +.cfi_restore %r13 + movq -24(%rsi),%r12 +.cfi_restore %r12 + movq -16(%rsi),%rbp +.cfi_restore %rbp + movq -8(%rsi),%rbx +.cfi_restore %rbx + leaq (%rsi),%rsp +.cfi_def_cfa_register %rsp +.Lepilogue_avx2: + .byte 0xf3,0xc3 +.cfi_endproc +.size sha256_block_data_order_avx2,.-sha256_block_data_order_avx2 diff --git a/vere/ext/openssl/gen/linux-x86_64/crypto/sha/sha512-x86_64.s b/vere/ext/openssl/gen/linux-x86_64/crypto/sha/sha512-x86_64.s new file mode 100644 index 0000000..939f1ca --- /dev/null +++ b/vere/ext/openssl/gen/linux-x86_64/crypto/sha/sha512-x86_64.s @@ -0,0 +1,5461 @@ +.text + + +.globl sha512_block_data_order +.type sha512_block_data_order,@function +.align 16 +sha512_block_data_order: +.cfi_startproc + leaq OPENSSL_ia32cap_P(%rip),%r11 + movl 0(%r11),%r9d + movl 4(%r11),%r10d + movl 8(%r11),%r11d + testl $2048,%r10d + jnz .Lxop_shortcut + andl $296,%r11d + cmpl $296,%r11d + je .Lavx2_shortcut + andl $1073741824,%r9d + andl $268435968,%r10d + orl %r9d,%r10d + cmpl $1342177792,%r10d + je .Lavx_shortcut + movq %rsp,%rax +.cfi_def_cfa_register %rax + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_offset %r15,-56 + shlq $4,%rdx + subq $128+32,%rsp + leaq (%rsi,%rdx,8),%rdx + andq $-64,%rsp + movq %rdi,128+0(%rsp) + movq %rsi,128+8(%rsp) + movq %rdx,128+16(%rsp) + movq %rax,152(%rsp) +.cfi_escape 0x0f,0x06,0x77,0x98,0x01,0x06,0x23,0x08 +.Lprologue: + + movq 0(%rdi),%rax + movq 8(%rdi),%rbx + movq 16(%rdi),%rcx + movq 24(%rdi),%rdx + movq 32(%rdi),%r8 + movq 40(%rdi),%r9 + movq 48(%rdi),%r10 + movq 56(%rdi),%r11 + jmp .Lloop + +.align 16 +.Lloop: + movq %rbx,%rdi + leaq K512(%rip),%rbp + xorq %rcx,%rdi + movq 0(%rsi),%r12 + movq %r8,%r13 + movq %rax,%r14 + bswapq %r12 + rorq $23,%r13 + movq %r9,%r15 + + xorq %r8,%r13 + rorq $5,%r14 + xorq %r10,%r15 + + movq %r12,0(%rsp) + xorq %rax,%r14 + andq %r8,%r15 + + rorq $4,%r13 + addq %r11,%r12 + xorq %r10,%r15 + + rorq $6,%r14 + xorq %r8,%r13 + addq %r15,%r12 + + movq %rax,%r15 + addq (%rbp),%r12 + xorq %rax,%r14 + + xorq %rbx,%r15 + rorq $14,%r13 + movq %rbx,%r11 + + andq %r15,%rdi + rorq $28,%r14 + addq %r13,%r12 + + xorq %rdi,%r11 + addq %r12,%rdx + addq %r12,%r11 + + leaq 8(%rbp),%rbp + addq %r14,%r11 + movq 8(%rsi),%r12 + movq %rdx,%r13 + movq %r11,%r14 + bswapq %r12 + rorq $23,%r13 + movq %r8,%rdi + + xorq %rdx,%r13 + rorq $5,%r14 + xorq %r9,%rdi + + movq %r12,8(%rsp) + xorq %r11,%r14 + andq %rdx,%rdi + + rorq $4,%r13 + addq %r10,%r12 + xorq %r9,%rdi + + rorq $6,%r14 + xorq %rdx,%r13 + addq %rdi,%r12 + + movq %r11,%rdi + addq (%rbp),%r12 + xorq %r11,%r14 + + xorq %rax,%rdi + rorq $14,%r13 + movq %rax,%r10 + + andq %rdi,%r15 + rorq $28,%r14 + addq %r13,%r12 + + xorq %r15,%r10 + addq %r12,%rcx + addq %r12,%r10 + + leaq 24(%rbp),%rbp + addq %r14,%r10 + movq 16(%rsi),%r12 + movq %rcx,%r13 + movq %r10,%r14 + bswapq %r12 + rorq $23,%r13 + movq %rdx,%r15 + + xorq %rcx,%r13 + rorq $5,%r14 + xorq %r8,%r15 + + movq %r12,16(%rsp) + xorq %r10,%r14 + andq %rcx,%r15 + + rorq $4,%r13 + addq %r9,%r12 + xorq %r8,%r15 + + rorq $6,%r14 + xorq %rcx,%r13 + addq %r15,%r12 + + movq %r10,%r15 + addq (%rbp),%r12 + xorq %r10,%r14 + + xorq %r11,%r15 + rorq $14,%r13 + movq %r11,%r9 + + andq %r15,%rdi + rorq $28,%r14 + addq %r13,%r12 + + xorq %rdi,%r9 + addq %r12,%rbx + addq %r12,%r9 + + leaq 8(%rbp),%rbp + addq %r14,%r9 + movq 24(%rsi),%r12 + movq %rbx,%r13 + movq %r9,%r14 + bswapq %r12 + rorq $23,%r13 + movq %rcx,%rdi + + xorq %rbx,%r13 + rorq $5,%r14 + xorq %rdx,%rdi + + movq %r12,24(%rsp) + xorq %r9,%r14 + andq %rbx,%rdi + + rorq $4,%r13 + addq %r8,%r12 + xorq %rdx,%rdi + + rorq $6,%r14 + xorq %rbx,%r13 + addq %rdi,%r12 + + movq %r9,%rdi + addq (%rbp),%r12 + xorq %r9,%r14 + + xorq %r10,%rdi + rorq $14,%r13 + movq %r10,%r8 + + andq %rdi,%r15 + rorq $28,%r14 + addq %r13,%r12 + + xorq %r15,%r8 + addq %r12,%rax + addq %r12,%r8 + + leaq 24(%rbp),%rbp + addq %r14,%r8 + movq 32(%rsi),%r12 + movq %rax,%r13 + movq %r8,%r14 + bswapq %r12 + rorq $23,%r13 + movq %rbx,%r15 + + xorq %rax,%r13 + rorq $5,%r14 + xorq %rcx,%r15 + + movq %r12,32(%rsp) + xorq %r8,%r14 + andq %rax,%r15 + + rorq $4,%r13 + addq %rdx,%r12 + xorq %rcx,%r15 + + rorq $6,%r14 + xorq %rax,%r13 + addq %r15,%r12 + + movq %r8,%r15 + addq (%rbp),%r12 + xorq %r8,%r14 + + xorq %r9,%r15 + rorq $14,%r13 + movq %r9,%rdx + + andq %r15,%rdi + rorq $28,%r14 + addq %r13,%r12 + + xorq %rdi,%rdx + addq %r12,%r11 + addq %r12,%rdx + + leaq 8(%rbp),%rbp + addq %r14,%rdx + movq 40(%rsi),%r12 + movq %r11,%r13 + movq %rdx,%r14 + bswapq %r12 + rorq $23,%r13 + movq %rax,%rdi + + xorq %r11,%r13 + rorq $5,%r14 + xorq %rbx,%rdi + + movq %r12,40(%rsp) + xorq %rdx,%r14 + andq %r11,%rdi + + rorq $4,%r13 + addq %rcx,%r12 + xorq %rbx,%rdi + + rorq $6,%r14 + xorq %r11,%r13 + addq %rdi,%r12 + + movq %rdx,%rdi + addq (%rbp),%r12 + xorq %rdx,%r14 + + xorq %r8,%rdi + rorq $14,%r13 + movq %r8,%rcx + + andq %rdi,%r15 + rorq $28,%r14 + addq %r13,%r12 + + xorq %r15,%rcx + addq %r12,%r10 + addq %r12,%rcx + + leaq 24(%rbp),%rbp + addq %r14,%rcx + movq 48(%rsi),%r12 + movq %r10,%r13 + movq %rcx,%r14 + bswapq %r12 + rorq $23,%r13 + movq %r11,%r15 + + xorq %r10,%r13 + rorq $5,%r14 + xorq %rax,%r15 + + movq %r12,48(%rsp) + xorq %rcx,%r14 + andq %r10,%r15 + + rorq $4,%r13 + addq %rbx,%r12 + xorq %rax,%r15 + + rorq $6,%r14 + xorq %r10,%r13 + addq %r15,%r12 + + movq %rcx,%r15 + addq (%rbp),%r12 + xorq %rcx,%r14 + + xorq %rdx,%r15 + rorq $14,%r13 + movq %rdx,%rbx + + andq %r15,%rdi + rorq $28,%r14 + addq %r13,%r12 + + xorq %rdi,%rbx + addq %r12,%r9 + addq %r12,%rbx + + leaq 8(%rbp),%rbp + addq %r14,%rbx + movq 56(%rsi),%r12 + movq %r9,%r13 + movq %rbx,%r14 + bswapq %r12 + rorq $23,%r13 + movq %r10,%rdi + + xorq %r9,%r13 + rorq $5,%r14 + xorq %r11,%rdi + + movq %r12,56(%rsp) + xorq %rbx,%r14 + andq %r9,%rdi + + rorq $4,%r13 + addq %rax,%r12 + xorq %r11,%rdi + + rorq $6,%r14 + xorq %r9,%r13 + addq %rdi,%r12 + + movq %rbx,%rdi + addq (%rbp),%r12 + xorq %rbx,%r14 + + xorq %rcx,%rdi + rorq $14,%r13 + movq %rcx,%rax + + andq %rdi,%r15 + rorq $28,%r14 + addq %r13,%r12 + + xorq %r15,%rax + addq %r12,%r8 + addq %r12,%rax + + leaq 24(%rbp),%rbp + addq %r14,%rax + movq 64(%rsi),%r12 + movq %r8,%r13 + movq %rax,%r14 + bswapq %r12 + rorq $23,%r13 + movq %r9,%r15 + + xorq %r8,%r13 + rorq $5,%r14 + xorq %r10,%r15 + + movq %r12,64(%rsp) + xorq %rax,%r14 + andq %r8,%r15 + + rorq $4,%r13 + addq %r11,%r12 + xorq %r10,%r15 + + rorq $6,%r14 + xorq %r8,%r13 + addq %r15,%r12 + + movq %rax,%r15 + addq (%rbp),%r12 + xorq %rax,%r14 + + xorq %rbx,%r15 + rorq $14,%r13 + movq %rbx,%r11 + + andq %r15,%rdi + rorq $28,%r14 + addq %r13,%r12 + + xorq %rdi,%r11 + addq %r12,%rdx + addq %r12,%r11 + + leaq 8(%rbp),%rbp + addq %r14,%r11 + movq 72(%rsi),%r12 + movq %rdx,%r13 + movq %r11,%r14 + bswapq %r12 + rorq $23,%r13 + movq %r8,%rdi + + xorq %rdx,%r13 + rorq $5,%r14 + xorq %r9,%rdi + + movq %r12,72(%rsp) + xorq %r11,%r14 + andq %rdx,%rdi + + rorq $4,%r13 + addq %r10,%r12 + xorq %r9,%rdi + + rorq $6,%r14 + xorq %rdx,%r13 + addq %rdi,%r12 + + movq %r11,%rdi + addq (%rbp),%r12 + xorq %r11,%r14 + + xorq %rax,%rdi + rorq $14,%r13 + movq %rax,%r10 + + andq %rdi,%r15 + rorq $28,%r14 + addq %r13,%r12 + + xorq %r15,%r10 + addq %r12,%rcx + addq %r12,%r10 + + leaq 24(%rbp),%rbp + addq %r14,%r10 + movq 80(%rsi),%r12 + movq %rcx,%r13 + movq %r10,%r14 + bswapq %r12 + rorq $23,%r13 + movq %rdx,%r15 + + xorq %rcx,%r13 + rorq $5,%r14 + xorq %r8,%r15 + + movq %r12,80(%rsp) + xorq %r10,%r14 + andq %rcx,%r15 + + rorq $4,%r13 + addq %r9,%r12 + xorq %r8,%r15 + + rorq $6,%r14 + xorq %rcx,%r13 + addq %r15,%r12 + + movq %r10,%r15 + addq (%rbp),%r12 + xorq %r10,%r14 + + xorq %r11,%r15 + rorq $14,%r13 + movq %r11,%r9 + + andq %r15,%rdi + rorq $28,%r14 + addq %r13,%r12 + + xorq %rdi,%r9 + addq %r12,%rbx + addq %r12,%r9 + + leaq 8(%rbp),%rbp + addq %r14,%r9 + movq 88(%rsi),%r12 + movq %rbx,%r13 + movq %r9,%r14 + bswapq %r12 + rorq $23,%r13 + movq %rcx,%rdi + + xorq %rbx,%r13 + rorq $5,%r14 + xorq %rdx,%rdi + + movq %r12,88(%rsp) + xorq %r9,%r14 + andq %rbx,%rdi + + rorq $4,%r13 + addq %r8,%r12 + xorq %rdx,%rdi + + rorq $6,%r14 + xorq %rbx,%r13 + addq %rdi,%r12 + + movq %r9,%rdi + addq (%rbp),%r12 + xorq %r9,%r14 + + xorq %r10,%rdi + rorq $14,%r13 + movq %r10,%r8 + + andq %rdi,%r15 + rorq $28,%r14 + addq %r13,%r12 + + xorq %r15,%r8 + addq %r12,%rax + addq %r12,%r8 + + leaq 24(%rbp),%rbp + addq %r14,%r8 + movq 96(%rsi),%r12 + movq %rax,%r13 + movq %r8,%r14 + bswapq %r12 + rorq $23,%r13 + movq %rbx,%r15 + + xorq %rax,%r13 + rorq $5,%r14 + xorq %rcx,%r15 + + movq %r12,96(%rsp) + xorq %r8,%r14 + andq %rax,%r15 + + rorq $4,%r13 + addq %rdx,%r12 + xorq %rcx,%r15 + + rorq $6,%r14 + xorq %rax,%r13 + addq %r15,%r12 + + movq %r8,%r15 + addq (%rbp),%r12 + xorq %r8,%r14 + + xorq %r9,%r15 + rorq $14,%r13 + movq %r9,%rdx + + andq %r15,%rdi + rorq $28,%r14 + addq %r13,%r12 + + xorq %rdi,%rdx + addq %r12,%r11 + addq %r12,%rdx + + leaq 8(%rbp),%rbp + addq %r14,%rdx + movq 104(%rsi),%r12 + movq %r11,%r13 + movq %rdx,%r14 + bswapq %r12 + rorq $23,%r13 + movq %rax,%rdi + + xorq %r11,%r13 + rorq $5,%r14 + xorq %rbx,%rdi + + movq %r12,104(%rsp) + xorq %rdx,%r14 + andq %r11,%rdi + + rorq $4,%r13 + addq %rcx,%r12 + xorq %rbx,%rdi + + rorq $6,%r14 + xorq %r11,%r13 + addq %rdi,%r12 + + movq %rdx,%rdi + addq (%rbp),%r12 + xorq %rdx,%r14 + + xorq %r8,%rdi + rorq $14,%r13 + movq %r8,%rcx + + andq %rdi,%r15 + rorq $28,%r14 + addq %r13,%r12 + + xorq %r15,%rcx + addq %r12,%r10 + addq %r12,%rcx + + leaq 24(%rbp),%rbp + addq %r14,%rcx + movq 112(%rsi),%r12 + movq %r10,%r13 + movq %rcx,%r14 + bswapq %r12 + rorq $23,%r13 + movq %r11,%r15 + + xorq %r10,%r13 + rorq $5,%r14 + xorq %rax,%r15 + + movq %r12,112(%rsp) + xorq %rcx,%r14 + andq %r10,%r15 + + rorq $4,%r13 + addq %rbx,%r12 + xorq %rax,%r15 + + rorq $6,%r14 + xorq %r10,%r13 + addq %r15,%r12 + + movq %rcx,%r15 + addq (%rbp),%r12 + xorq %rcx,%r14 + + xorq %rdx,%r15 + rorq $14,%r13 + movq %rdx,%rbx + + andq %r15,%rdi + rorq $28,%r14 + addq %r13,%r12 + + xorq %rdi,%rbx + addq %r12,%r9 + addq %r12,%rbx + + leaq 8(%rbp),%rbp + addq %r14,%rbx + movq 120(%rsi),%r12 + movq %r9,%r13 + movq %rbx,%r14 + bswapq %r12 + rorq $23,%r13 + movq %r10,%rdi + + xorq %r9,%r13 + rorq $5,%r14 + xorq %r11,%rdi + + movq %r12,120(%rsp) + xorq %rbx,%r14 + andq %r9,%rdi + + rorq $4,%r13 + addq %rax,%r12 + xorq %r11,%rdi + + rorq $6,%r14 + xorq %r9,%r13 + addq %rdi,%r12 + + movq %rbx,%rdi + addq (%rbp),%r12 + xorq %rbx,%r14 + + xorq %rcx,%rdi + rorq $14,%r13 + movq %rcx,%rax + + andq %rdi,%r15 + rorq $28,%r14 + addq %r13,%r12 + + xorq %r15,%rax + addq %r12,%r8 + addq %r12,%rax + + leaq 24(%rbp),%rbp + jmp .Lrounds_16_xx +.align 16 +.Lrounds_16_xx: + movq 8(%rsp),%r13 + movq 112(%rsp),%r15 + + movq %r13,%r12 + rorq $7,%r13 + addq %r14,%rax + movq %r15,%r14 + rorq $42,%r15 + + xorq %r12,%r13 + shrq $7,%r12 + rorq $1,%r13 + xorq %r14,%r15 + shrq $6,%r14 + + rorq $19,%r15 + xorq %r13,%r12 + xorq %r14,%r15 + addq 72(%rsp),%r12 + + addq 0(%rsp),%r12 + movq %r8,%r13 + addq %r15,%r12 + movq %rax,%r14 + rorq $23,%r13 + movq %r9,%r15 + + xorq %r8,%r13 + rorq $5,%r14 + xorq %r10,%r15 + + movq %r12,0(%rsp) + xorq %rax,%r14 + andq %r8,%r15 + + rorq $4,%r13 + addq %r11,%r12 + xorq %r10,%r15 + + rorq $6,%r14 + xorq %r8,%r13 + addq %r15,%r12 + + movq %rax,%r15 + addq (%rbp),%r12 + xorq %rax,%r14 + + xorq %rbx,%r15 + rorq $14,%r13 + movq %rbx,%r11 + + andq %r15,%rdi + rorq $28,%r14 + addq %r13,%r12 + + xorq %rdi,%r11 + addq %r12,%rdx + addq %r12,%r11 + + leaq 8(%rbp),%rbp + movq 16(%rsp),%r13 + movq 120(%rsp),%rdi + + movq %r13,%r12 + rorq $7,%r13 + addq %r14,%r11 + movq %rdi,%r14 + rorq $42,%rdi + + xorq %r12,%r13 + shrq $7,%r12 + rorq $1,%r13 + xorq %r14,%rdi + shrq $6,%r14 + + rorq $19,%rdi + xorq %r13,%r12 + xorq %r14,%rdi + addq 80(%rsp),%r12 + + addq 8(%rsp),%r12 + movq %rdx,%r13 + addq %rdi,%r12 + movq %r11,%r14 + rorq $23,%r13 + movq %r8,%rdi + + xorq %rdx,%r13 + rorq $5,%r14 + xorq %r9,%rdi + + movq %r12,8(%rsp) + xorq %r11,%r14 + andq %rdx,%rdi + + rorq $4,%r13 + addq %r10,%r12 + xorq %r9,%rdi + + rorq $6,%r14 + xorq %rdx,%r13 + addq %rdi,%r12 + + movq %r11,%rdi + addq (%rbp),%r12 + xorq %r11,%r14 + + xorq %rax,%rdi + rorq $14,%r13 + movq %rax,%r10 + + andq %rdi,%r15 + rorq $28,%r14 + addq %r13,%r12 + + xorq %r15,%r10 + addq %r12,%rcx + addq %r12,%r10 + + leaq 24(%rbp),%rbp + movq 24(%rsp),%r13 + movq 0(%rsp),%r15 + + movq %r13,%r12 + rorq $7,%r13 + addq %r14,%r10 + movq %r15,%r14 + rorq $42,%r15 + + xorq %r12,%r13 + shrq $7,%r12 + rorq $1,%r13 + xorq %r14,%r15 + shrq $6,%r14 + + rorq $19,%r15 + xorq %r13,%r12 + xorq %r14,%r15 + addq 88(%rsp),%r12 + + addq 16(%rsp),%r12 + movq %rcx,%r13 + addq %r15,%r12 + movq %r10,%r14 + rorq $23,%r13 + movq %rdx,%r15 + + xorq %rcx,%r13 + rorq $5,%r14 + xorq %r8,%r15 + + movq %r12,16(%rsp) + xorq %r10,%r14 + andq %rcx,%r15 + + rorq $4,%r13 + addq %r9,%r12 + xorq %r8,%r15 + + rorq $6,%r14 + xorq %rcx,%r13 + addq %r15,%r12 + + movq %r10,%r15 + addq (%rbp),%r12 + xorq %r10,%r14 + + xorq %r11,%r15 + rorq $14,%r13 + movq %r11,%r9 + + andq %r15,%rdi + rorq $28,%r14 + addq %r13,%r12 + + xorq %rdi,%r9 + addq %r12,%rbx + addq %r12,%r9 + + leaq 8(%rbp),%rbp + movq 32(%rsp),%r13 + movq 8(%rsp),%rdi + + movq %r13,%r12 + rorq $7,%r13 + addq %r14,%r9 + movq %rdi,%r14 + rorq $42,%rdi + + xorq %r12,%r13 + shrq $7,%r12 + rorq $1,%r13 + xorq %r14,%rdi + shrq $6,%r14 + + rorq $19,%rdi + xorq %r13,%r12 + xorq %r14,%rdi + addq 96(%rsp),%r12 + + addq 24(%rsp),%r12 + movq %rbx,%r13 + addq %rdi,%r12 + movq %r9,%r14 + rorq $23,%r13 + movq %rcx,%rdi + + xorq %rbx,%r13 + rorq $5,%r14 + xorq %rdx,%rdi + + movq %r12,24(%rsp) + xorq %r9,%r14 + andq %rbx,%rdi + + rorq $4,%r13 + addq %r8,%r12 + xorq %rdx,%rdi + + rorq $6,%r14 + xorq %rbx,%r13 + addq %rdi,%r12 + + movq %r9,%rdi + addq (%rbp),%r12 + xorq %r9,%r14 + + xorq %r10,%rdi + rorq $14,%r13 + movq %r10,%r8 + + andq %rdi,%r15 + rorq $28,%r14 + addq %r13,%r12 + + xorq %r15,%r8 + addq %r12,%rax + addq %r12,%r8 + + leaq 24(%rbp),%rbp + movq 40(%rsp),%r13 + movq 16(%rsp),%r15 + + movq %r13,%r12 + rorq $7,%r13 + addq %r14,%r8 + movq %r15,%r14 + rorq $42,%r15 + + xorq %r12,%r13 + shrq $7,%r12 + rorq $1,%r13 + xorq %r14,%r15 + shrq $6,%r14 + + rorq $19,%r15 + xorq %r13,%r12 + xorq %r14,%r15 + addq 104(%rsp),%r12 + + addq 32(%rsp),%r12 + movq %rax,%r13 + addq %r15,%r12 + movq %r8,%r14 + rorq $23,%r13 + movq %rbx,%r15 + + xorq %rax,%r13 + rorq $5,%r14 + xorq %rcx,%r15 + + movq %r12,32(%rsp) + xorq %r8,%r14 + andq %rax,%r15 + + rorq $4,%r13 + addq %rdx,%r12 + xorq %rcx,%r15 + + rorq $6,%r14 + xorq %rax,%r13 + addq %r15,%r12 + + movq %r8,%r15 + addq (%rbp),%r12 + xorq %r8,%r14 + + xorq %r9,%r15 + rorq $14,%r13 + movq %r9,%rdx + + andq %r15,%rdi + rorq $28,%r14 + addq %r13,%r12 + + xorq %rdi,%rdx + addq %r12,%r11 + addq %r12,%rdx + + leaq 8(%rbp),%rbp + movq 48(%rsp),%r13 + movq 24(%rsp),%rdi + + movq %r13,%r12 + rorq $7,%r13 + addq %r14,%rdx + movq %rdi,%r14 + rorq $42,%rdi + + xorq %r12,%r13 + shrq $7,%r12 + rorq $1,%r13 + xorq %r14,%rdi + shrq $6,%r14 + + rorq $19,%rdi + xorq %r13,%r12 + xorq %r14,%rdi + addq 112(%rsp),%r12 + + addq 40(%rsp),%r12 + movq %r11,%r13 + addq %rdi,%r12 + movq %rdx,%r14 + rorq $23,%r13 + movq %rax,%rdi + + xorq %r11,%r13 + rorq $5,%r14 + xorq %rbx,%rdi + + movq %r12,40(%rsp) + xorq %rdx,%r14 + andq %r11,%rdi + + rorq $4,%r13 + addq %rcx,%r12 + xorq %rbx,%rdi + + rorq $6,%r14 + xorq %r11,%r13 + addq %rdi,%r12 + + movq %rdx,%rdi + addq (%rbp),%r12 + xorq %rdx,%r14 + + xorq %r8,%rdi + rorq $14,%r13 + movq %r8,%rcx + + andq %rdi,%r15 + rorq $28,%r14 + addq %r13,%r12 + + xorq %r15,%rcx + addq %r12,%r10 + addq %r12,%rcx + + leaq 24(%rbp),%rbp + movq 56(%rsp),%r13 + movq 32(%rsp),%r15 + + movq %r13,%r12 + rorq $7,%r13 + addq %r14,%rcx + movq %r15,%r14 + rorq $42,%r15 + + xorq %r12,%r13 + shrq $7,%r12 + rorq $1,%r13 + xorq %r14,%r15 + shrq $6,%r14 + + rorq $19,%r15 + xorq %r13,%r12 + xorq %r14,%r15 + addq 120(%rsp),%r12 + + addq 48(%rsp),%r12 + movq %r10,%r13 + addq %r15,%r12 + movq %rcx,%r14 + rorq $23,%r13 + movq %r11,%r15 + + xorq %r10,%r13 + rorq $5,%r14 + xorq %rax,%r15 + + movq %r12,48(%rsp) + xorq %rcx,%r14 + andq %r10,%r15 + + rorq $4,%r13 + addq %rbx,%r12 + xorq %rax,%r15 + + rorq $6,%r14 + xorq %r10,%r13 + addq %r15,%r12 + + movq %rcx,%r15 + addq (%rbp),%r12 + xorq %rcx,%r14 + + xorq %rdx,%r15 + rorq $14,%r13 + movq %rdx,%rbx + + andq %r15,%rdi + rorq $28,%r14 + addq %r13,%r12 + + xorq %rdi,%rbx + addq %r12,%r9 + addq %r12,%rbx + + leaq 8(%rbp),%rbp + movq 64(%rsp),%r13 + movq 40(%rsp),%rdi + + movq %r13,%r12 + rorq $7,%r13 + addq %r14,%rbx + movq %rdi,%r14 + rorq $42,%rdi + + xorq %r12,%r13 + shrq $7,%r12 + rorq $1,%r13 + xorq %r14,%rdi + shrq $6,%r14 + + rorq $19,%rdi + xorq %r13,%r12 + xorq %r14,%rdi + addq 0(%rsp),%r12 + + addq 56(%rsp),%r12 + movq %r9,%r13 + addq %rdi,%r12 + movq %rbx,%r14 + rorq $23,%r13 + movq %r10,%rdi + + xorq %r9,%r13 + rorq $5,%r14 + xorq %r11,%rdi + + movq %r12,56(%rsp) + xorq %rbx,%r14 + andq %r9,%rdi + + rorq $4,%r13 + addq %rax,%r12 + xorq %r11,%rdi + + rorq $6,%r14 + xorq %r9,%r13 + addq %rdi,%r12 + + movq %rbx,%rdi + addq (%rbp),%r12 + xorq %rbx,%r14 + + xorq %rcx,%rdi + rorq $14,%r13 + movq %rcx,%rax + + andq %rdi,%r15 + rorq $28,%r14 + addq %r13,%r12 + + xorq %r15,%rax + addq %r12,%r8 + addq %r12,%rax + + leaq 24(%rbp),%rbp + movq 72(%rsp),%r13 + movq 48(%rsp),%r15 + + movq %r13,%r12 + rorq $7,%r13 + addq %r14,%rax + movq %r15,%r14 + rorq $42,%r15 + + xorq %r12,%r13 + shrq $7,%r12 + rorq $1,%r13 + xorq %r14,%r15 + shrq $6,%r14 + + rorq $19,%r15 + xorq %r13,%r12 + xorq %r14,%r15 + addq 8(%rsp),%r12 + + addq 64(%rsp),%r12 + movq %r8,%r13 + addq %r15,%r12 + movq %rax,%r14 + rorq $23,%r13 + movq %r9,%r15 + + xorq %r8,%r13 + rorq $5,%r14 + xorq %r10,%r15 + + movq %r12,64(%rsp) + xorq %rax,%r14 + andq %r8,%r15 + + rorq $4,%r13 + addq %r11,%r12 + xorq %r10,%r15 + + rorq $6,%r14 + xorq %r8,%r13 + addq %r15,%r12 + + movq %rax,%r15 + addq (%rbp),%r12 + xorq %rax,%r14 + + xorq %rbx,%r15 + rorq $14,%r13 + movq %rbx,%r11 + + andq %r15,%rdi + rorq $28,%r14 + addq %r13,%r12 + + xorq %rdi,%r11 + addq %r12,%rdx + addq %r12,%r11 + + leaq 8(%rbp),%rbp + movq 80(%rsp),%r13 + movq 56(%rsp),%rdi + + movq %r13,%r12 + rorq $7,%r13 + addq %r14,%r11 + movq %rdi,%r14 + rorq $42,%rdi + + xorq %r12,%r13 + shrq $7,%r12 + rorq $1,%r13 + xorq %r14,%rdi + shrq $6,%r14 + + rorq $19,%rdi + xorq %r13,%r12 + xorq %r14,%rdi + addq 16(%rsp),%r12 + + addq 72(%rsp),%r12 + movq %rdx,%r13 + addq %rdi,%r12 + movq %r11,%r14 + rorq $23,%r13 + movq %r8,%rdi + + xorq %rdx,%r13 + rorq $5,%r14 + xorq %r9,%rdi + + movq %r12,72(%rsp) + xorq %r11,%r14 + andq %rdx,%rdi + + rorq $4,%r13 + addq %r10,%r12 + xorq %r9,%rdi + + rorq $6,%r14 + xorq %rdx,%r13 + addq %rdi,%r12 + + movq %r11,%rdi + addq (%rbp),%r12 + xorq %r11,%r14 + + xorq %rax,%rdi + rorq $14,%r13 + movq %rax,%r10 + + andq %rdi,%r15 + rorq $28,%r14 + addq %r13,%r12 + + xorq %r15,%r10 + addq %r12,%rcx + addq %r12,%r10 + + leaq 24(%rbp),%rbp + movq 88(%rsp),%r13 + movq 64(%rsp),%r15 + + movq %r13,%r12 + rorq $7,%r13 + addq %r14,%r10 + movq %r15,%r14 + rorq $42,%r15 + + xorq %r12,%r13 + shrq $7,%r12 + rorq $1,%r13 + xorq %r14,%r15 + shrq $6,%r14 + + rorq $19,%r15 + xorq %r13,%r12 + xorq %r14,%r15 + addq 24(%rsp),%r12 + + addq 80(%rsp),%r12 + movq %rcx,%r13 + addq %r15,%r12 + movq %r10,%r14 + rorq $23,%r13 + movq %rdx,%r15 + + xorq %rcx,%r13 + rorq $5,%r14 + xorq %r8,%r15 + + movq %r12,80(%rsp) + xorq %r10,%r14 + andq %rcx,%r15 + + rorq $4,%r13 + addq %r9,%r12 + xorq %r8,%r15 + + rorq $6,%r14 + xorq %rcx,%r13 + addq %r15,%r12 + + movq %r10,%r15 + addq (%rbp),%r12 + xorq %r10,%r14 + + xorq %r11,%r15 + rorq $14,%r13 + movq %r11,%r9 + + andq %r15,%rdi + rorq $28,%r14 + addq %r13,%r12 + + xorq %rdi,%r9 + addq %r12,%rbx + addq %r12,%r9 + + leaq 8(%rbp),%rbp + movq 96(%rsp),%r13 + movq 72(%rsp),%rdi + + movq %r13,%r12 + rorq $7,%r13 + addq %r14,%r9 + movq %rdi,%r14 + rorq $42,%rdi + + xorq %r12,%r13 + shrq $7,%r12 + rorq $1,%r13 + xorq %r14,%rdi + shrq $6,%r14 + + rorq $19,%rdi + xorq %r13,%r12 + xorq %r14,%rdi + addq 32(%rsp),%r12 + + addq 88(%rsp),%r12 + movq %rbx,%r13 + addq %rdi,%r12 + movq %r9,%r14 + rorq $23,%r13 + movq %rcx,%rdi + + xorq %rbx,%r13 + rorq $5,%r14 + xorq %rdx,%rdi + + movq %r12,88(%rsp) + xorq %r9,%r14 + andq %rbx,%rdi + + rorq $4,%r13 + addq %r8,%r12 + xorq %rdx,%rdi + + rorq $6,%r14 + xorq %rbx,%r13 + addq %rdi,%r12 + + movq %r9,%rdi + addq (%rbp),%r12 + xorq %r9,%r14 + + xorq %r10,%rdi + rorq $14,%r13 + movq %r10,%r8 + + andq %rdi,%r15 + rorq $28,%r14 + addq %r13,%r12 + + xorq %r15,%r8 + addq %r12,%rax + addq %r12,%r8 + + leaq 24(%rbp),%rbp + movq 104(%rsp),%r13 + movq 80(%rsp),%r15 + + movq %r13,%r12 + rorq $7,%r13 + addq %r14,%r8 + movq %r15,%r14 + rorq $42,%r15 + + xorq %r12,%r13 + shrq $7,%r12 + rorq $1,%r13 + xorq %r14,%r15 + shrq $6,%r14 + + rorq $19,%r15 + xorq %r13,%r12 + xorq %r14,%r15 + addq 40(%rsp),%r12 + + addq 96(%rsp),%r12 + movq %rax,%r13 + addq %r15,%r12 + movq %r8,%r14 + rorq $23,%r13 + movq %rbx,%r15 + + xorq %rax,%r13 + rorq $5,%r14 + xorq %rcx,%r15 + + movq %r12,96(%rsp) + xorq %r8,%r14 + andq %rax,%r15 + + rorq $4,%r13 + addq %rdx,%r12 + xorq %rcx,%r15 + + rorq $6,%r14 + xorq %rax,%r13 + addq %r15,%r12 + + movq %r8,%r15 + addq (%rbp),%r12 + xorq %r8,%r14 + + xorq %r9,%r15 + rorq $14,%r13 + movq %r9,%rdx + + andq %r15,%rdi + rorq $28,%r14 + addq %r13,%r12 + + xorq %rdi,%rdx + addq %r12,%r11 + addq %r12,%rdx + + leaq 8(%rbp),%rbp + movq 112(%rsp),%r13 + movq 88(%rsp),%rdi + + movq %r13,%r12 + rorq $7,%r13 + addq %r14,%rdx + movq %rdi,%r14 + rorq $42,%rdi + + xorq %r12,%r13 + shrq $7,%r12 + rorq $1,%r13 + xorq %r14,%rdi + shrq $6,%r14 + + rorq $19,%rdi + xorq %r13,%r12 + xorq %r14,%rdi + addq 48(%rsp),%r12 + + addq 104(%rsp),%r12 + movq %r11,%r13 + addq %rdi,%r12 + movq %rdx,%r14 + rorq $23,%r13 + movq %rax,%rdi + + xorq %r11,%r13 + rorq $5,%r14 + xorq %rbx,%rdi + + movq %r12,104(%rsp) + xorq %rdx,%r14 + andq %r11,%rdi + + rorq $4,%r13 + addq %rcx,%r12 + xorq %rbx,%rdi + + rorq $6,%r14 + xorq %r11,%r13 + addq %rdi,%r12 + + movq %rdx,%rdi + addq (%rbp),%r12 + xorq %rdx,%r14 + + xorq %r8,%rdi + rorq $14,%r13 + movq %r8,%rcx + + andq %rdi,%r15 + rorq $28,%r14 + addq %r13,%r12 + + xorq %r15,%rcx + addq %r12,%r10 + addq %r12,%rcx + + leaq 24(%rbp),%rbp + movq 120(%rsp),%r13 + movq 96(%rsp),%r15 + + movq %r13,%r12 + rorq $7,%r13 + addq %r14,%rcx + movq %r15,%r14 + rorq $42,%r15 + + xorq %r12,%r13 + shrq $7,%r12 + rorq $1,%r13 + xorq %r14,%r15 + shrq $6,%r14 + + rorq $19,%r15 + xorq %r13,%r12 + xorq %r14,%r15 + addq 56(%rsp),%r12 + + addq 112(%rsp),%r12 + movq %r10,%r13 + addq %r15,%r12 + movq %rcx,%r14 + rorq $23,%r13 + movq %r11,%r15 + + xorq %r10,%r13 + rorq $5,%r14 + xorq %rax,%r15 + + movq %r12,112(%rsp) + xorq %rcx,%r14 + andq %r10,%r15 + + rorq $4,%r13 + addq %rbx,%r12 + xorq %rax,%r15 + + rorq $6,%r14 + xorq %r10,%r13 + addq %r15,%r12 + + movq %rcx,%r15 + addq (%rbp),%r12 + xorq %rcx,%r14 + + xorq %rdx,%r15 + rorq $14,%r13 + movq %rdx,%rbx + + andq %r15,%rdi + rorq $28,%r14 + addq %r13,%r12 + + xorq %rdi,%rbx + addq %r12,%r9 + addq %r12,%rbx + + leaq 8(%rbp),%rbp + movq 0(%rsp),%r13 + movq 104(%rsp),%rdi + + movq %r13,%r12 + rorq $7,%r13 + addq %r14,%rbx + movq %rdi,%r14 + rorq $42,%rdi + + xorq %r12,%r13 + shrq $7,%r12 + rorq $1,%r13 + xorq %r14,%rdi + shrq $6,%r14 + + rorq $19,%rdi + xorq %r13,%r12 + xorq %r14,%rdi + addq 64(%rsp),%r12 + + addq 120(%rsp),%r12 + movq %r9,%r13 + addq %rdi,%r12 + movq %rbx,%r14 + rorq $23,%r13 + movq %r10,%rdi + + xorq %r9,%r13 + rorq $5,%r14 + xorq %r11,%rdi + + movq %r12,120(%rsp) + xorq %rbx,%r14 + andq %r9,%rdi + + rorq $4,%r13 + addq %rax,%r12 + xorq %r11,%rdi + + rorq $6,%r14 + xorq %r9,%r13 + addq %rdi,%r12 + + movq %rbx,%rdi + addq (%rbp),%r12 + xorq %rbx,%r14 + + xorq %rcx,%rdi + rorq $14,%r13 + movq %rcx,%rax + + andq %rdi,%r15 + rorq $28,%r14 + addq %r13,%r12 + + xorq %r15,%rax + addq %r12,%r8 + addq %r12,%rax + + leaq 24(%rbp),%rbp + cmpb $0,7(%rbp) + jnz .Lrounds_16_xx + + movq 128+0(%rsp),%rdi + addq %r14,%rax + leaq 128(%rsi),%rsi + + addq 0(%rdi),%rax + addq 8(%rdi),%rbx + addq 16(%rdi),%rcx + addq 24(%rdi),%rdx + addq 32(%rdi),%r8 + addq 40(%rdi),%r9 + addq 48(%rdi),%r10 + addq 56(%rdi),%r11 + + cmpq 128+16(%rsp),%rsi + + movq %rax,0(%rdi) + movq %rbx,8(%rdi) + movq %rcx,16(%rdi) + movq %rdx,24(%rdi) + movq %r8,32(%rdi) + movq %r9,40(%rdi) + movq %r10,48(%rdi) + movq %r11,56(%rdi) + jb .Lloop + + movq 152(%rsp),%rsi +.cfi_def_cfa %rsi,8 + movq -48(%rsi),%r15 +.cfi_restore %r15 + movq -40(%rsi),%r14 +.cfi_restore %r14 + movq -32(%rsi),%r13 +.cfi_restore %r13 + movq -24(%rsi),%r12 +.cfi_restore %r12 + movq -16(%rsi),%rbp +.cfi_restore %rbp + movq -8(%rsi),%rbx +.cfi_restore %rbx + leaq (%rsi),%rsp +.cfi_def_cfa_register %rsp +.Lepilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size sha512_block_data_order,.-sha512_block_data_order +.align 64 +.type K512,@object +K512: +.quad 0x428a2f98d728ae22,0x7137449123ef65cd +.quad 0x428a2f98d728ae22,0x7137449123ef65cd +.quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc +.quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc +.quad 0x3956c25bf348b538,0x59f111f1b605d019 +.quad 0x3956c25bf348b538,0x59f111f1b605d019 +.quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118 +.quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118 +.quad 0xd807aa98a3030242,0x12835b0145706fbe +.quad 0xd807aa98a3030242,0x12835b0145706fbe +.quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2 +.quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2 +.quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1 +.quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1 +.quad 0x9bdc06a725c71235,0xc19bf174cf692694 +.quad 0x9bdc06a725c71235,0xc19bf174cf692694 +.quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3 +.quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3 +.quad 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65 +.quad 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65 +.quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483 +.quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483 +.quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5 +.quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5 +.quad 0x983e5152ee66dfab,0xa831c66d2db43210 +.quad 0x983e5152ee66dfab,0xa831c66d2db43210 +.quad 0xb00327c898fb213f,0xbf597fc7beef0ee4 +.quad 0xb00327c898fb213f,0xbf597fc7beef0ee4 +.quad 0xc6e00bf33da88fc2,0xd5a79147930aa725 +.quad 0xc6e00bf33da88fc2,0xd5a79147930aa725 +.quad 0x06ca6351e003826f,0x142929670a0e6e70 +.quad 0x06ca6351e003826f,0x142929670a0e6e70 +.quad 0x27b70a8546d22ffc,0x2e1b21385c26c926 +.quad 0x27b70a8546d22ffc,0x2e1b21385c26c926 +.quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df +.quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df +.quad 0x650a73548baf63de,0x766a0abb3c77b2a8 +.quad 0x650a73548baf63de,0x766a0abb3c77b2a8 +.quad 0x81c2c92e47edaee6,0x92722c851482353b +.quad 0x81c2c92e47edaee6,0x92722c851482353b +.quad 0xa2bfe8a14cf10364,0xa81a664bbc423001 +.quad 0xa2bfe8a14cf10364,0xa81a664bbc423001 +.quad 0xc24b8b70d0f89791,0xc76c51a30654be30 +.quad 0xc24b8b70d0f89791,0xc76c51a30654be30 +.quad 0xd192e819d6ef5218,0xd69906245565a910 +.quad 0xd192e819d6ef5218,0xd69906245565a910 +.quad 0xf40e35855771202a,0x106aa07032bbd1b8 +.quad 0xf40e35855771202a,0x106aa07032bbd1b8 +.quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53 +.quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53 +.quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8 +.quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8 +.quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb +.quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb +.quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3 +.quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3 +.quad 0x748f82ee5defb2fc,0x78a5636f43172f60 +.quad 0x748f82ee5defb2fc,0x78a5636f43172f60 +.quad 0x84c87814a1f0ab72,0x8cc702081a6439ec +.quad 0x84c87814a1f0ab72,0x8cc702081a6439ec +.quad 0x90befffa23631e28,0xa4506cebde82bde9 +.quad 0x90befffa23631e28,0xa4506cebde82bde9 +.quad 0xbef9a3f7b2c67915,0xc67178f2e372532b +.quad 0xbef9a3f7b2c67915,0xc67178f2e372532b +.quad 0xca273eceea26619c,0xd186b8c721c0c207 +.quad 0xca273eceea26619c,0xd186b8c721c0c207 +.quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178 +.quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178 +.quad 0x06f067aa72176fba,0x0a637dc5a2c898a6 +.quad 0x06f067aa72176fba,0x0a637dc5a2c898a6 +.quad 0x113f9804bef90dae,0x1b710b35131c471b +.quad 0x113f9804bef90dae,0x1b710b35131c471b +.quad 0x28db77f523047d84,0x32caab7b40c72493 +.quad 0x28db77f523047d84,0x32caab7b40c72493 +.quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c +.quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c +.quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a +.quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a +.quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817 +.quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817 + +.quad 0x0001020304050607,0x08090a0b0c0d0e0f +.quad 0x0001020304050607,0x08090a0b0c0d0e0f +.byte 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.type sha512_block_data_order_xop,@function +.align 64 +sha512_block_data_order_xop: +.cfi_startproc +.Lxop_shortcut: + movq %rsp,%rax +.cfi_def_cfa_register %rax + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_offset %r15,-56 + shlq $4,%rdx + subq $160,%rsp + leaq (%rsi,%rdx,8),%rdx + andq $-64,%rsp + movq %rdi,128+0(%rsp) + movq %rsi,128+8(%rsp) + movq %rdx,128+16(%rsp) + movq %rax,152(%rsp) +.cfi_escape 0x0f,0x06,0x77,0x98,0x01,0x06,0x23,0x08 +.Lprologue_xop: + + vzeroupper + movq 0(%rdi),%rax + movq 8(%rdi),%rbx + movq 16(%rdi),%rcx + movq 24(%rdi),%rdx + movq 32(%rdi),%r8 + movq 40(%rdi),%r9 + movq 48(%rdi),%r10 + movq 56(%rdi),%r11 + jmp .Lloop_xop +.align 16 +.Lloop_xop: + vmovdqa K512+1280(%rip),%xmm11 + vmovdqu 0(%rsi),%xmm0 + leaq K512+128(%rip),%rbp + vmovdqu 16(%rsi),%xmm1 + vmovdqu 32(%rsi),%xmm2 + vpshufb %xmm11,%xmm0,%xmm0 + vmovdqu 48(%rsi),%xmm3 + vpshufb %xmm11,%xmm1,%xmm1 + vmovdqu 64(%rsi),%xmm4 + vpshufb %xmm11,%xmm2,%xmm2 + vmovdqu 80(%rsi),%xmm5 + vpshufb %xmm11,%xmm3,%xmm3 + vmovdqu 96(%rsi),%xmm6 + vpshufb %xmm11,%xmm4,%xmm4 + vmovdqu 112(%rsi),%xmm7 + vpshufb %xmm11,%xmm5,%xmm5 + vpaddq -128(%rbp),%xmm0,%xmm8 + vpshufb %xmm11,%xmm6,%xmm6 + vpaddq -96(%rbp),%xmm1,%xmm9 + vpshufb %xmm11,%xmm7,%xmm7 + vpaddq -64(%rbp),%xmm2,%xmm10 + vpaddq -32(%rbp),%xmm3,%xmm11 + vmovdqa %xmm8,0(%rsp) + vpaddq 0(%rbp),%xmm4,%xmm8 + vmovdqa %xmm9,16(%rsp) + vpaddq 32(%rbp),%xmm5,%xmm9 + vmovdqa %xmm10,32(%rsp) + vpaddq 64(%rbp),%xmm6,%xmm10 + vmovdqa %xmm11,48(%rsp) + vpaddq 96(%rbp),%xmm7,%xmm11 + vmovdqa %xmm8,64(%rsp) + movq %rax,%r14 + vmovdqa %xmm9,80(%rsp) + movq %rbx,%rdi + vmovdqa %xmm10,96(%rsp) + xorq %rcx,%rdi + vmovdqa %xmm11,112(%rsp) + movq %r8,%r13 + jmp .Lxop_00_47 + +.align 16 +.Lxop_00_47: + addq $256,%rbp + vpalignr $8,%xmm0,%xmm1,%xmm8 + rorq $23,%r13 + movq %r14,%rax + vpalignr $8,%xmm4,%xmm5,%xmm11 + movq %r9,%r12 + rorq $5,%r14 +.byte 143,72,120,195,200,56 + xorq %r8,%r13 + xorq %r10,%r12 + vpsrlq $7,%xmm8,%xmm8 + rorq $4,%r13 + xorq %rax,%r14 + vpaddq %xmm11,%xmm0,%xmm0 + andq %r8,%r12 + xorq %r8,%r13 + addq 0(%rsp),%r11 + movq %rax,%r15 +.byte 143,72,120,195,209,7 + xorq %r10,%r12 + rorq $6,%r14 + vpxor %xmm9,%xmm8,%xmm8 + xorq %rbx,%r15 + addq %r12,%r11 + rorq $14,%r13 + andq %r15,%rdi +.byte 143,104,120,195,223,3 + xorq %rax,%r14 + addq %r13,%r11 + vpxor %xmm10,%xmm8,%xmm8 + xorq %rbx,%rdi + rorq $28,%r14 + vpsrlq $6,%xmm7,%xmm10 + addq %r11,%rdx + addq %rdi,%r11 + vpaddq %xmm8,%xmm0,%xmm0 + movq %rdx,%r13 + addq %r11,%r14 +.byte 143,72,120,195,203,42 + rorq $23,%r13 + movq %r14,%r11 + vpxor %xmm10,%xmm11,%xmm11 + movq %r8,%r12 + rorq $5,%r14 + xorq %rdx,%r13 + xorq %r9,%r12 + vpxor %xmm9,%xmm11,%xmm11 + rorq $4,%r13 + xorq %r11,%r14 + andq %rdx,%r12 + xorq %rdx,%r13 + vpaddq %xmm11,%xmm0,%xmm0 + addq 8(%rsp),%r10 + movq %r11,%rdi + xorq %r9,%r12 + rorq $6,%r14 + vpaddq -128(%rbp),%xmm0,%xmm10 + xorq %rax,%rdi + addq %r12,%r10 + rorq $14,%r13 + andq %rdi,%r15 + xorq %r11,%r14 + addq %r13,%r10 + xorq %rax,%r15 + rorq $28,%r14 + addq %r10,%rcx + addq %r15,%r10 + movq %rcx,%r13 + addq %r10,%r14 + vmovdqa %xmm10,0(%rsp) + vpalignr $8,%xmm1,%xmm2,%xmm8 + rorq $23,%r13 + movq %r14,%r10 + vpalignr $8,%xmm5,%xmm6,%xmm11 + movq %rdx,%r12 + rorq $5,%r14 +.byte 143,72,120,195,200,56 + xorq %rcx,%r13 + xorq %r8,%r12 + vpsrlq $7,%xmm8,%xmm8 + rorq $4,%r13 + xorq %r10,%r14 + vpaddq %xmm11,%xmm1,%xmm1 + andq %rcx,%r12 + xorq %rcx,%r13 + addq 16(%rsp),%r9 + movq %r10,%r15 +.byte 143,72,120,195,209,7 + xorq %r8,%r12 + rorq $6,%r14 + vpxor %xmm9,%xmm8,%xmm8 + xorq %r11,%r15 + addq %r12,%r9 + rorq $14,%r13 + andq %r15,%rdi +.byte 143,104,120,195,216,3 + xorq %r10,%r14 + addq %r13,%r9 + vpxor %xmm10,%xmm8,%xmm8 + xorq %r11,%rdi + rorq $28,%r14 + vpsrlq $6,%xmm0,%xmm10 + addq %r9,%rbx + addq %rdi,%r9 + vpaddq %xmm8,%xmm1,%xmm1 + movq %rbx,%r13 + addq %r9,%r14 +.byte 143,72,120,195,203,42 + rorq $23,%r13 + movq %r14,%r9 + vpxor %xmm10,%xmm11,%xmm11 + movq %rcx,%r12 + rorq $5,%r14 + xorq %rbx,%r13 + xorq %rdx,%r12 + vpxor %xmm9,%xmm11,%xmm11 + rorq $4,%r13 + xorq %r9,%r14 + andq %rbx,%r12 + xorq %rbx,%r13 + vpaddq %xmm11,%xmm1,%xmm1 + addq 24(%rsp),%r8 + movq %r9,%rdi + xorq %rdx,%r12 + rorq $6,%r14 + vpaddq -96(%rbp),%xmm1,%xmm10 + xorq %r10,%rdi + addq %r12,%r8 + rorq $14,%r13 + andq %rdi,%r15 + xorq %r9,%r14 + addq %r13,%r8 + xorq %r10,%r15 + rorq $28,%r14 + addq %r8,%rax + addq %r15,%r8 + movq %rax,%r13 + addq %r8,%r14 + vmovdqa %xmm10,16(%rsp) + vpalignr $8,%xmm2,%xmm3,%xmm8 + rorq $23,%r13 + movq %r14,%r8 + vpalignr $8,%xmm6,%xmm7,%xmm11 + movq %rbx,%r12 + rorq $5,%r14 +.byte 143,72,120,195,200,56 + xorq %rax,%r13 + xorq %rcx,%r12 + vpsrlq $7,%xmm8,%xmm8 + rorq $4,%r13 + xorq %r8,%r14 + vpaddq %xmm11,%xmm2,%xmm2 + andq %rax,%r12 + xorq %rax,%r13 + addq 32(%rsp),%rdx + movq %r8,%r15 +.byte 143,72,120,195,209,7 + xorq %rcx,%r12 + rorq $6,%r14 + vpxor %xmm9,%xmm8,%xmm8 + xorq %r9,%r15 + addq %r12,%rdx + rorq $14,%r13 + andq %r15,%rdi +.byte 143,104,120,195,217,3 + xorq %r8,%r14 + addq %r13,%rdx + vpxor %xmm10,%xmm8,%xmm8 + xorq %r9,%rdi + rorq $28,%r14 + vpsrlq $6,%xmm1,%xmm10 + addq %rdx,%r11 + addq %rdi,%rdx + vpaddq %xmm8,%xmm2,%xmm2 + movq %r11,%r13 + addq %rdx,%r14 +.byte 143,72,120,195,203,42 + rorq $23,%r13 + movq %r14,%rdx + vpxor %xmm10,%xmm11,%xmm11 + movq %rax,%r12 + rorq $5,%r14 + xorq %r11,%r13 + xorq %rbx,%r12 + vpxor %xmm9,%xmm11,%xmm11 + rorq $4,%r13 + xorq %rdx,%r14 + andq %r11,%r12 + xorq %r11,%r13 + vpaddq %xmm11,%xmm2,%xmm2 + addq 40(%rsp),%rcx + movq %rdx,%rdi + xorq %rbx,%r12 + rorq $6,%r14 + vpaddq -64(%rbp),%xmm2,%xmm10 + xorq %r8,%rdi + addq %r12,%rcx + rorq $14,%r13 + andq %rdi,%r15 + xorq %rdx,%r14 + addq %r13,%rcx + xorq %r8,%r15 + rorq $28,%r14 + addq %rcx,%r10 + addq %r15,%rcx + movq %r10,%r13 + addq %rcx,%r14 + vmovdqa %xmm10,32(%rsp) + vpalignr $8,%xmm3,%xmm4,%xmm8 + rorq $23,%r13 + movq %r14,%rcx + vpalignr $8,%xmm7,%xmm0,%xmm11 + movq %r11,%r12 + rorq $5,%r14 +.byte 143,72,120,195,200,56 + xorq %r10,%r13 + xorq %rax,%r12 + vpsrlq $7,%xmm8,%xmm8 + rorq $4,%r13 + xorq %rcx,%r14 + vpaddq %xmm11,%xmm3,%xmm3 + andq %r10,%r12 + xorq %r10,%r13 + addq 48(%rsp),%rbx + movq %rcx,%r15 +.byte 143,72,120,195,209,7 + xorq %rax,%r12 + rorq $6,%r14 + vpxor %xmm9,%xmm8,%xmm8 + xorq %rdx,%r15 + addq %r12,%rbx + rorq $14,%r13 + andq %r15,%rdi +.byte 143,104,120,195,218,3 + xorq %rcx,%r14 + addq %r13,%rbx + vpxor %xmm10,%xmm8,%xmm8 + xorq %rdx,%rdi + rorq $28,%r14 + vpsrlq $6,%xmm2,%xmm10 + addq %rbx,%r9 + addq %rdi,%rbx + vpaddq %xmm8,%xmm3,%xmm3 + movq %r9,%r13 + addq %rbx,%r14 +.byte 143,72,120,195,203,42 + rorq $23,%r13 + movq %r14,%rbx + vpxor %xmm10,%xmm11,%xmm11 + movq %r10,%r12 + rorq $5,%r14 + xorq %r9,%r13 + xorq %r11,%r12 + vpxor %xmm9,%xmm11,%xmm11 + rorq $4,%r13 + xorq %rbx,%r14 + andq %r9,%r12 + xorq %r9,%r13 + vpaddq %xmm11,%xmm3,%xmm3 + addq 56(%rsp),%rax + movq %rbx,%rdi + xorq %r11,%r12 + rorq $6,%r14 + vpaddq -32(%rbp),%xmm3,%xmm10 + xorq %rcx,%rdi + addq %r12,%rax + rorq $14,%r13 + andq %rdi,%r15 + xorq %rbx,%r14 + addq %r13,%rax + xorq %rcx,%r15 + rorq $28,%r14 + addq %rax,%r8 + addq %r15,%rax + movq %r8,%r13 + addq %rax,%r14 + vmovdqa %xmm10,48(%rsp) + vpalignr $8,%xmm4,%xmm5,%xmm8 + rorq $23,%r13 + movq %r14,%rax + vpalignr $8,%xmm0,%xmm1,%xmm11 + movq %r9,%r12 + rorq $5,%r14 +.byte 143,72,120,195,200,56 + xorq %r8,%r13 + xorq %r10,%r12 + vpsrlq $7,%xmm8,%xmm8 + rorq $4,%r13 + xorq %rax,%r14 + vpaddq %xmm11,%xmm4,%xmm4 + andq %r8,%r12 + xorq %r8,%r13 + addq 64(%rsp),%r11 + movq %rax,%r15 +.byte 143,72,120,195,209,7 + xorq %r10,%r12 + rorq $6,%r14 + vpxor %xmm9,%xmm8,%xmm8 + xorq %rbx,%r15 + addq %r12,%r11 + rorq $14,%r13 + andq %r15,%rdi +.byte 143,104,120,195,219,3 + xorq %rax,%r14 + addq %r13,%r11 + vpxor %xmm10,%xmm8,%xmm8 + xorq %rbx,%rdi + rorq $28,%r14 + vpsrlq $6,%xmm3,%xmm10 + addq %r11,%rdx + addq %rdi,%r11 + vpaddq %xmm8,%xmm4,%xmm4 + movq %rdx,%r13 + addq %r11,%r14 +.byte 143,72,120,195,203,42 + rorq $23,%r13 + movq %r14,%r11 + vpxor %xmm10,%xmm11,%xmm11 + movq %r8,%r12 + rorq $5,%r14 + xorq %rdx,%r13 + xorq %r9,%r12 + vpxor %xmm9,%xmm11,%xmm11 + rorq $4,%r13 + xorq %r11,%r14 + andq %rdx,%r12 + xorq %rdx,%r13 + vpaddq %xmm11,%xmm4,%xmm4 + addq 72(%rsp),%r10 + movq %r11,%rdi + xorq %r9,%r12 + rorq $6,%r14 + vpaddq 0(%rbp),%xmm4,%xmm10 + xorq %rax,%rdi + addq %r12,%r10 + rorq $14,%r13 + andq %rdi,%r15 + xorq %r11,%r14 + addq %r13,%r10 + xorq %rax,%r15 + rorq $28,%r14 + addq %r10,%rcx + addq %r15,%r10 + movq %rcx,%r13 + addq %r10,%r14 + vmovdqa %xmm10,64(%rsp) + vpalignr $8,%xmm5,%xmm6,%xmm8 + rorq $23,%r13 + movq %r14,%r10 + vpalignr $8,%xmm1,%xmm2,%xmm11 + movq %rdx,%r12 + rorq $5,%r14 +.byte 143,72,120,195,200,56 + xorq %rcx,%r13 + xorq %r8,%r12 + vpsrlq $7,%xmm8,%xmm8 + rorq $4,%r13 + xorq %r10,%r14 + vpaddq %xmm11,%xmm5,%xmm5 + andq %rcx,%r12 + xorq %rcx,%r13 + addq 80(%rsp),%r9 + movq %r10,%r15 +.byte 143,72,120,195,209,7 + xorq %r8,%r12 + rorq $6,%r14 + vpxor %xmm9,%xmm8,%xmm8 + xorq %r11,%r15 + addq %r12,%r9 + rorq $14,%r13 + andq %r15,%rdi +.byte 143,104,120,195,220,3 + xorq %r10,%r14 + addq %r13,%r9 + vpxor %xmm10,%xmm8,%xmm8 + xorq %r11,%rdi + rorq $28,%r14 + vpsrlq $6,%xmm4,%xmm10 + addq %r9,%rbx + addq %rdi,%r9 + vpaddq %xmm8,%xmm5,%xmm5 + movq %rbx,%r13 + addq %r9,%r14 +.byte 143,72,120,195,203,42 + rorq $23,%r13 + movq %r14,%r9 + vpxor %xmm10,%xmm11,%xmm11 + movq %rcx,%r12 + rorq $5,%r14 + xorq %rbx,%r13 + xorq %rdx,%r12 + vpxor %xmm9,%xmm11,%xmm11 + rorq $4,%r13 + xorq %r9,%r14 + andq %rbx,%r12 + xorq %rbx,%r13 + vpaddq %xmm11,%xmm5,%xmm5 + addq 88(%rsp),%r8 + movq %r9,%rdi + xorq %rdx,%r12 + rorq $6,%r14 + vpaddq 32(%rbp),%xmm5,%xmm10 + xorq %r10,%rdi + addq %r12,%r8 + rorq $14,%r13 + andq %rdi,%r15 + xorq %r9,%r14 + addq %r13,%r8 + xorq %r10,%r15 + rorq $28,%r14 + addq %r8,%rax + addq %r15,%r8 + movq %rax,%r13 + addq %r8,%r14 + vmovdqa %xmm10,80(%rsp) + vpalignr $8,%xmm6,%xmm7,%xmm8 + rorq $23,%r13 + movq %r14,%r8 + vpalignr $8,%xmm2,%xmm3,%xmm11 + movq %rbx,%r12 + rorq $5,%r14 +.byte 143,72,120,195,200,56 + xorq %rax,%r13 + xorq %rcx,%r12 + vpsrlq $7,%xmm8,%xmm8 + rorq $4,%r13 + xorq %r8,%r14 + vpaddq %xmm11,%xmm6,%xmm6 + andq %rax,%r12 + xorq %rax,%r13 + addq 96(%rsp),%rdx + movq %r8,%r15 +.byte 143,72,120,195,209,7 + xorq %rcx,%r12 + rorq $6,%r14 + vpxor %xmm9,%xmm8,%xmm8 + xorq %r9,%r15 + addq %r12,%rdx + rorq $14,%r13 + andq %r15,%rdi +.byte 143,104,120,195,221,3 + xorq %r8,%r14 + addq %r13,%rdx + vpxor %xmm10,%xmm8,%xmm8 + xorq %r9,%rdi + rorq $28,%r14 + vpsrlq $6,%xmm5,%xmm10 + addq %rdx,%r11 + addq %rdi,%rdx + vpaddq %xmm8,%xmm6,%xmm6 + movq %r11,%r13 + addq %rdx,%r14 +.byte 143,72,120,195,203,42 + rorq $23,%r13 + movq %r14,%rdx + vpxor %xmm10,%xmm11,%xmm11 + movq %rax,%r12 + rorq $5,%r14 + xorq %r11,%r13 + xorq %rbx,%r12 + vpxor %xmm9,%xmm11,%xmm11 + rorq $4,%r13 + xorq %rdx,%r14 + andq %r11,%r12 + xorq %r11,%r13 + vpaddq %xmm11,%xmm6,%xmm6 + addq 104(%rsp),%rcx + movq %rdx,%rdi + xorq %rbx,%r12 + rorq $6,%r14 + vpaddq 64(%rbp),%xmm6,%xmm10 + xorq %r8,%rdi + addq %r12,%rcx + rorq $14,%r13 + andq %rdi,%r15 + xorq %rdx,%r14 + addq %r13,%rcx + xorq %r8,%r15 + rorq $28,%r14 + addq %rcx,%r10 + addq %r15,%rcx + movq %r10,%r13 + addq %rcx,%r14 + vmovdqa %xmm10,96(%rsp) + vpalignr $8,%xmm7,%xmm0,%xmm8 + rorq $23,%r13 + movq %r14,%rcx + vpalignr $8,%xmm3,%xmm4,%xmm11 + movq %r11,%r12 + rorq $5,%r14 +.byte 143,72,120,195,200,56 + xorq %r10,%r13 + xorq %rax,%r12 + vpsrlq $7,%xmm8,%xmm8 + rorq $4,%r13 + xorq %rcx,%r14 + vpaddq %xmm11,%xmm7,%xmm7 + andq %r10,%r12 + xorq %r10,%r13 + addq 112(%rsp),%rbx + movq %rcx,%r15 +.byte 143,72,120,195,209,7 + xorq %rax,%r12 + rorq $6,%r14 + vpxor %xmm9,%xmm8,%xmm8 + xorq %rdx,%r15 + addq %r12,%rbx + rorq $14,%r13 + andq %r15,%rdi +.byte 143,104,120,195,222,3 + xorq %rcx,%r14 + addq %r13,%rbx + vpxor %xmm10,%xmm8,%xmm8 + xorq %rdx,%rdi + rorq $28,%r14 + vpsrlq $6,%xmm6,%xmm10 + addq %rbx,%r9 + addq %rdi,%rbx + vpaddq %xmm8,%xmm7,%xmm7 + movq %r9,%r13 + addq %rbx,%r14 +.byte 143,72,120,195,203,42 + rorq $23,%r13 + movq %r14,%rbx + vpxor %xmm10,%xmm11,%xmm11 + movq %r10,%r12 + rorq $5,%r14 + xorq %r9,%r13 + xorq %r11,%r12 + vpxor %xmm9,%xmm11,%xmm11 + rorq $4,%r13 + xorq %rbx,%r14 + andq %r9,%r12 + xorq %r9,%r13 + vpaddq %xmm11,%xmm7,%xmm7 + addq 120(%rsp),%rax + movq %rbx,%rdi + xorq %r11,%r12 + rorq $6,%r14 + vpaddq 96(%rbp),%xmm7,%xmm10 + xorq %rcx,%rdi + addq %r12,%rax + rorq $14,%r13 + andq %rdi,%r15 + xorq %rbx,%r14 + addq %r13,%rax + xorq %rcx,%r15 + rorq $28,%r14 + addq %rax,%r8 + addq %r15,%rax + movq %r8,%r13 + addq %rax,%r14 + vmovdqa %xmm10,112(%rsp) + cmpb $0,135(%rbp) + jne .Lxop_00_47 + rorq $23,%r13 + movq %r14,%rax + movq %r9,%r12 + rorq $5,%r14 + xorq %r8,%r13 + xorq %r10,%r12 + rorq $4,%r13 + xorq %rax,%r14 + andq %r8,%r12 + xorq %r8,%r13 + addq 0(%rsp),%r11 + movq %rax,%r15 + xorq %r10,%r12 + rorq $6,%r14 + xorq %rbx,%r15 + addq %r12,%r11 + rorq $14,%r13 + andq %r15,%rdi + xorq %rax,%r14 + addq %r13,%r11 + xorq %rbx,%rdi + rorq $28,%r14 + addq %r11,%rdx + addq %rdi,%r11 + movq %rdx,%r13 + addq %r11,%r14 + rorq $23,%r13 + movq %r14,%r11 + movq %r8,%r12 + rorq $5,%r14 + xorq %rdx,%r13 + xorq %r9,%r12 + rorq $4,%r13 + xorq %r11,%r14 + andq %rdx,%r12 + xorq %rdx,%r13 + addq 8(%rsp),%r10 + movq %r11,%rdi + xorq %r9,%r12 + rorq $6,%r14 + xorq %rax,%rdi + addq %r12,%r10 + rorq $14,%r13 + andq %rdi,%r15 + xorq %r11,%r14 + addq %r13,%r10 + xorq %rax,%r15 + rorq $28,%r14 + addq %r10,%rcx + addq %r15,%r10 + movq %rcx,%r13 + addq %r10,%r14 + rorq $23,%r13 + movq %r14,%r10 + movq %rdx,%r12 + rorq $5,%r14 + xorq %rcx,%r13 + xorq %r8,%r12 + rorq $4,%r13 + xorq %r10,%r14 + andq %rcx,%r12 + xorq %rcx,%r13 + addq 16(%rsp),%r9 + movq %r10,%r15 + xorq %r8,%r12 + rorq $6,%r14 + xorq %r11,%r15 + addq %r12,%r9 + rorq $14,%r13 + andq %r15,%rdi + xorq %r10,%r14 + addq %r13,%r9 + xorq %r11,%rdi + rorq $28,%r14 + addq %r9,%rbx + addq %rdi,%r9 + movq %rbx,%r13 + addq %r9,%r14 + rorq $23,%r13 + movq %r14,%r9 + movq %rcx,%r12 + rorq $5,%r14 + xorq %rbx,%r13 + xorq %rdx,%r12 + rorq $4,%r13 + xorq %r9,%r14 + andq %rbx,%r12 + xorq %rbx,%r13 + addq 24(%rsp),%r8 + movq %r9,%rdi + xorq %rdx,%r12 + rorq $6,%r14 + xorq %r10,%rdi + addq %r12,%r8 + rorq $14,%r13 + andq %rdi,%r15 + xorq %r9,%r14 + addq %r13,%r8 + xorq %r10,%r15 + rorq $28,%r14 + addq %r8,%rax + addq %r15,%r8 + movq %rax,%r13 + addq %r8,%r14 + rorq $23,%r13 + movq %r14,%r8 + movq %rbx,%r12 + rorq $5,%r14 + xorq %rax,%r13 + xorq %rcx,%r12 + rorq $4,%r13 + xorq %r8,%r14 + andq %rax,%r12 + xorq %rax,%r13 + addq 32(%rsp),%rdx + movq %r8,%r15 + xorq %rcx,%r12 + rorq $6,%r14 + xorq %r9,%r15 + addq %r12,%rdx + rorq $14,%r13 + andq %r15,%rdi + xorq %r8,%r14 + addq %r13,%rdx + xorq %r9,%rdi + rorq $28,%r14 + addq %rdx,%r11 + addq %rdi,%rdx + movq %r11,%r13 + addq %rdx,%r14 + rorq $23,%r13 + movq %r14,%rdx + movq %rax,%r12 + rorq $5,%r14 + xorq %r11,%r13 + xorq %rbx,%r12 + rorq $4,%r13 + xorq %rdx,%r14 + andq %r11,%r12 + xorq %r11,%r13 + addq 40(%rsp),%rcx + movq %rdx,%rdi + xorq %rbx,%r12 + rorq $6,%r14 + xorq %r8,%rdi + addq %r12,%rcx + rorq $14,%r13 + andq %rdi,%r15 + xorq %rdx,%r14 + addq %r13,%rcx + xorq %r8,%r15 + rorq $28,%r14 + addq %rcx,%r10 + addq %r15,%rcx + movq %r10,%r13 + addq %rcx,%r14 + rorq $23,%r13 + movq %r14,%rcx + movq %r11,%r12 + rorq $5,%r14 + xorq %r10,%r13 + xorq %rax,%r12 + rorq $4,%r13 + xorq %rcx,%r14 + andq %r10,%r12 + xorq %r10,%r13 + addq 48(%rsp),%rbx + movq %rcx,%r15 + xorq %rax,%r12 + rorq $6,%r14 + xorq %rdx,%r15 + addq %r12,%rbx + rorq $14,%r13 + andq %r15,%rdi + xorq %rcx,%r14 + addq %r13,%rbx + xorq %rdx,%rdi + rorq $28,%r14 + addq %rbx,%r9 + addq %rdi,%rbx + movq %r9,%r13 + addq %rbx,%r14 + rorq $23,%r13 + movq %r14,%rbx + movq %r10,%r12 + rorq $5,%r14 + xorq %r9,%r13 + xorq %r11,%r12 + rorq $4,%r13 + xorq %rbx,%r14 + andq %r9,%r12 + xorq %r9,%r13 + addq 56(%rsp),%rax + movq %rbx,%rdi + xorq %r11,%r12 + rorq $6,%r14 + xorq %rcx,%rdi + addq %r12,%rax + rorq $14,%r13 + andq %rdi,%r15 + xorq %rbx,%r14 + addq %r13,%rax + xorq %rcx,%r15 + rorq $28,%r14 + addq %rax,%r8 + addq %r15,%rax + movq %r8,%r13 + addq %rax,%r14 + rorq $23,%r13 + movq %r14,%rax + movq %r9,%r12 + rorq $5,%r14 + xorq %r8,%r13 + xorq %r10,%r12 + rorq $4,%r13 + xorq %rax,%r14 + andq %r8,%r12 + xorq %r8,%r13 + addq 64(%rsp),%r11 + movq %rax,%r15 + xorq %r10,%r12 + rorq $6,%r14 + xorq %rbx,%r15 + addq %r12,%r11 + rorq $14,%r13 + andq %r15,%rdi + xorq %rax,%r14 + addq %r13,%r11 + xorq %rbx,%rdi + rorq $28,%r14 + addq %r11,%rdx + addq %rdi,%r11 + movq %rdx,%r13 + addq %r11,%r14 + rorq $23,%r13 + movq %r14,%r11 + movq %r8,%r12 + rorq $5,%r14 + xorq %rdx,%r13 + xorq %r9,%r12 + rorq $4,%r13 + xorq %r11,%r14 + andq %rdx,%r12 + xorq %rdx,%r13 + addq 72(%rsp),%r10 + movq %r11,%rdi + xorq %r9,%r12 + rorq $6,%r14 + xorq %rax,%rdi + addq %r12,%r10 + rorq $14,%r13 + andq %rdi,%r15 + xorq %r11,%r14 + addq %r13,%r10 + xorq %rax,%r15 + rorq $28,%r14 + addq %r10,%rcx + addq %r15,%r10 + movq %rcx,%r13 + addq %r10,%r14 + rorq $23,%r13 + movq %r14,%r10 + movq %rdx,%r12 + rorq $5,%r14 + xorq %rcx,%r13 + xorq %r8,%r12 + rorq $4,%r13 + xorq %r10,%r14 + andq %rcx,%r12 + xorq %rcx,%r13 + addq 80(%rsp),%r9 + movq %r10,%r15 + xorq %r8,%r12 + rorq $6,%r14 + xorq %r11,%r15 + addq %r12,%r9 + rorq $14,%r13 + andq %r15,%rdi + xorq %r10,%r14 + addq %r13,%r9 + xorq %r11,%rdi + rorq $28,%r14 + addq %r9,%rbx + addq %rdi,%r9 + movq %rbx,%r13 + addq %r9,%r14 + rorq $23,%r13 + movq %r14,%r9 + movq %rcx,%r12 + rorq $5,%r14 + xorq %rbx,%r13 + xorq %rdx,%r12 + rorq $4,%r13 + xorq %r9,%r14 + andq %rbx,%r12 + xorq %rbx,%r13 + addq 88(%rsp),%r8 + movq %r9,%rdi + xorq %rdx,%r12 + rorq $6,%r14 + xorq %r10,%rdi + addq %r12,%r8 + rorq $14,%r13 + andq %rdi,%r15 + xorq %r9,%r14 + addq %r13,%r8 + xorq %r10,%r15 + rorq $28,%r14 + addq %r8,%rax + addq %r15,%r8 + movq %rax,%r13 + addq %r8,%r14 + rorq $23,%r13 + movq %r14,%r8 + movq %rbx,%r12 + rorq $5,%r14 + xorq %rax,%r13 + xorq %rcx,%r12 + rorq $4,%r13 + xorq %r8,%r14 + andq %rax,%r12 + xorq %rax,%r13 + addq 96(%rsp),%rdx + movq %r8,%r15 + xorq %rcx,%r12 + rorq $6,%r14 + xorq %r9,%r15 + addq %r12,%rdx + rorq $14,%r13 + andq %r15,%rdi + xorq %r8,%r14 + addq %r13,%rdx + xorq %r9,%rdi + rorq $28,%r14 + addq %rdx,%r11 + addq %rdi,%rdx + movq %r11,%r13 + addq %rdx,%r14 + rorq $23,%r13 + movq %r14,%rdx + movq %rax,%r12 + rorq $5,%r14 + xorq %r11,%r13 + xorq %rbx,%r12 + rorq $4,%r13 + xorq %rdx,%r14 + andq %r11,%r12 + xorq %r11,%r13 + addq 104(%rsp),%rcx + movq %rdx,%rdi + xorq %rbx,%r12 + rorq $6,%r14 + xorq %r8,%rdi + addq %r12,%rcx + rorq $14,%r13 + andq %rdi,%r15 + xorq %rdx,%r14 + addq %r13,%rcx + xorq %r8,%r15 + rorq $28,%r14 + addq %rcx,%r10 + addq %r15,%rcx + movq %r10,%r13 + addq %rcx,%r14 + rorq $23,%r13 + movq %r14,%rcx + movq %r11,%r12 + rorq $5,%r14 + xorq %r10,%r13 + xorq %rax,%r12 + rorq $4,%r13 + xorq %rcx,%r14 + andq %r10,%r12 + xorq %r10,%r13 + addq 112(%rsp),%rbx + movq %rcx,%r15 + xorq %rax,%r12 + rorq $6,%r14 + xorq %rdx,%r15 + addq %r12,%rbx + rorq $14,%r13 + andq %r15,%rdi + xorq %rcx,%r14 + addq %r13,%rbx + xorq %rdx,%rdi + rorq $28,%r14 + addq %rbx,%r9 + addq %rdi,%rbx + movq %r9,%r13 + addq %rbx,%r14 + rorq $23,%r13 + movq %r14,%rbx + movq %r10,%r12 + rorq $5,%r14 + xorq %r9,%r13 + xorq %r11,%r12 + rorq $4,%r13 + xorq %rbx,%r14 + andq %r9,%r12 + xorq %r9,%r13 + addq 120(%rsp),%rax + movq %rbx,%rdi + xorq %r11,%r12 + rorq $6,%r14 + xorq %rcx,%rdi + addq %r12,%rax + rorq $14,%r13 + andq %rdi,%r15 + xorq %rbx,%r14 + addq %r13,%rax + xorq %rcx,%r15 + rorq $28,%r14 + addq %rax,%r8 + addq %r15,%rax + movq %r8,%r13 + addq %rax,%r14 + movq 128+0(%rsp),%rdi + movq %r14,%rax + + addq 0(%rdi),%rax + leaq 128(%rsi),%rsi + addq 8(%rdi),%rbx + addq 16(%rdi),%rcx + addq 24(%rdi),%rdx + addq 32(%rdi),%r8 + addq 40(%rdi),%r9 + addq 48(%rdi),%r10 + addq 56(%rdi),%r11 + + cmpq 128+16(%rsp),%rsi + + movq %rax,0(%rdi) + movq %rbx,8(%rdi) + movq %rcx,16(%rdi) + movq %rdx,24(%rdi) + movq %r8,32(%rdi) + movq %r9,40(%rdi) + movq %r10,48(%rdi) + movq %r11,56(%rdi) + jb .Lloop_xop + + movq 152(%rsp),%rsi +.cfi_def_cfa %rsi,8 + vzeroupper + movq -48(%rsi),%r15 +.cfi_restore %r15 + movq -40(%rsi),%r14 +.cfi_restore %r14 + movq -32(%rsi),%r13 +.cfi_restore %r13 + movq -24(%rsi),%r12 +.cfi_restore %r12 + movq -16(%rsi),%rbp +.cfi_restore %rbp + movq -8(%rsi),%rbx +.cfi_restore %rbx + leaq (%rsi),%rsp +.cfi_def_cfa_register %rsp +.Lepilogue_xop: + .byte 0xf3,0xc3 +.cfi_endproc +.size sha512_block_data_order_xop,.-sha512_block_data_order_xop +.type sha512_block_data_order_avx,@function +.align 64 +sha512_block_data_order_avx: +.cfi_startproc +.Lavx_shortcut: + movq %rsp,%rax +.cfi_def_cfa_register %rax + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_offset %r15,-56 + shlq $4,%rdx + subq $160,%rsp + leaq (%rsi,%rdx,8),%rdx + andq $-64,%rsp + movq %rdi,128+0(%rsp) + movq %rsi,128+8(%rsp) + movq %rdx,128+16(%rsp) + movq %rax,152(%rsp) +.cfi_escape 0x0f,0x06,0x77,0x98,0x01,0x06,0x23,0x08 +.Lprologue_avx: + + vzeroupper + movq 0(%rdi),%rax + movq 8(%rdi),%rbx + movq 16(%rdi),%rcx + movq 24(%rdi),%rdx + movq 32(%rdi),%r8 + movq 40(%rdi),%r9 + movq 48(%rdi),%r10 + movq 56(%rdi),%r11 + jmp .Lloop_avx +.align 16 +.Lloop_avx: + vmovdqa K512+1280(%rip),%xmm11 + vmovdqu 0(%rsi),%xmm0 + leaq K512+128(%rip),%rbp + vmovdqu 16(%rsi),%xmm1 + vmovdqu 32(%rsi),%xmm2 + vpshufb %xmm11,%xmm0,%xmm0 + vmovdqu 48(%rsi),%xmm3 + vpshufb %xmm11,%xmm1,%xmm1 + vmovdqu 64(%rsi),%xmm4 + vpshufb %xmm11,%xmm2,%xmm2 + vmovdqu 80(%rsi),%xmm5 + vpshufb %xmm11,%xmm3,%xmm3 + vmovdqu 96(%rsi),%xmm6 + vpshufb %xmm11,%xmm4,%xmm4 + vmovdqu 112(%rsi),%xmm7 + vpshufb %xmm11,%xmm5,%xmm5 + vpaddq -128(%rbp),%xmm0,%xmm8 + vpshufb %xmm11,%xmm6,%xmm6 + vpaddq -96(%rbp),%xmm1,%xmm9 + vpshufb %xmm11,%xmm7,%xmm7 + vpaddq -64(%rbp),%xmm2,%xmm10 + vpaddq -32(%rbp),%xmm3,%xmm11 + vmovdqa %xmm8,0(%rsp) + vpaddq 0(%rbp),%xmm4,%xmm8 + vmovdqa %xmm9,16(%rsp) + vpaddq 32(%rbp),%xmm5,%xmm9 + vmovdqa %xmm10,32(%rsp) + vpaddq 64(%rbp),%xmm6,%xmm10 + vmovdqa %xmm11,48(%rsp) + vpaddq 96(%rbp),%xmm7,%xmm11 + vmovdqa %xmm8,64(%rsp) + movq %rax,%r14 + vmovdqa %xmm9,80(%rsp) + movq %rbx,%rdi + vmovdqa %xmm10,96(%rsp) + xorq %rcx,%rdi + vmovdqa %xmm11,112(%rsp) + movq %r8,%r13 + jmp .Lavx_00_47 + +.align 16 +.Lavx_00_47: + addq $256,%rbp + vpalignr $8,%xmm0,%xmm1,%xmm8 + shrdq $23,%r13,%r13 + movq %r14,%rax + vpalignr $8,%xmm4,%xmm5,%xmm11 + movq %r9,%r12 + shrdq $5,%r14,%r14 + vpsrlq $1,%xmm8,%xmm10 + xorq %r8,%r13 + xorq %r10,%r12 + vpaddq %xmm11,%xmm0,%xmm0 + shrdq $4,%r13,%r13 + xorq %rax,%r14 + vpsrlq $7,%xmm8,%xmm11 + andq %r8,%r12 + xorq %r8,%r13 + vpsllq $56,%xmm8,%xmm9 + addq 0(%rsp),%r11 + movq %rax,%r15 + vpxor %xmm10,%xmm11,%xmm8 + xorq %r10,%r12 + shrdq $6,%r14,%r14 + vpsrlq $7,%xmm10,%xmm10 + xorq %rbx,%r15 + addq %r12,%r11 + vpxor %xmm9,%xmm8,%xmm8 + shrdq $14,%r13,%r13 + andq %r15,%rdi + vpsllq $7,%xmm9,%xmm9 + xorq %rax,%r14 + addq %r13,%r11 + vpxor %xmm10,%xmm8,%xmm8 + xorq %rbx,%rdi + shrdq $28,%r14,%r14 + vpsrlq $6,%xmm7,%xmm11 + addq %r11,%rdx + addq %rdi,%r11 + vpxor %xmm9,%xmm8,%xmm8 + movq %rdx,%r13 + addq %r11,%r14 + vpsllq $3,%xmm7,%xmm10 + shrdq $23,%r13,%r13 + movq %r14,%r11 + vpaddq %xmm8,%xmm0,%xmm0 + movq %r8,%r12 + shrdq $5,%r14,%r14 + vpsrlq $19,%xmm7,%xmm9 + xorq %rdx,%r13 + xorq %r9,%r12 + vpxor %xmm10,%xmm11,%xmm11 + shrdq $4,%r13,%r13 + xorq %r11,%r14 + vpsllq $42,%xmm10,%xmm10 + andq %rdx,%r12 + xorq %rdx,%r13 + vpxor %xmm9,%xmm11,%xmm11 + addq 8(%rsp),%r10 + movq %r11,%rdi + vpsrlq $42,%xmm9,%xmm9 + xorq %r9,%r12 + shrdq $6,%r14,%r14 + vpxor %xmm10,%xmm11,%xmm11 + xorq %rax,%rdi + addq %r12,%r10 + vpxor %xmm9,%xmm11,%xmm11 + shrdq $14,%r13,%r13 + andq %rdi,%r15 + vpaddq %xmm11,%xmm0,%xmm0 + xorq %r11,%r14 + addq %r13,%r10 + vpaddq -128(%rbp),%xmm0,%xmm10 + xorq %rax,%r15 + shrdq $28,%r14,%r14 + addq %r10,%rcx + addq %r15,%r10 + movq %rcx,%r13 + addq %r10,%r14 + vmovdqa %xmm10,0(%rsp) + vpalignr $8,%xmm1,%xmm2,%xmm8 + shrdq $23,%r13,%r13 + movq %r14,%r10 + vpalignr $8,%xmm5,%xmm6,%xmm11 + movq %rdx,%r12 + shrdq $5,%r14,%r14 + vpsrlq $1,%xmm8,%xmm10 + xorq %rcx,%r13 + xorq %r8,%r12 + vpaddq %xmm11,%xmm1,%xmm1 + shrdq $4,%r13,%r13 + xorq %r10,%r14 + vpsrlq $7,%xmm8,%xmm11 + andq %rcx,%r12 + xorq %rcx,%r13 + vpsllq $56,%xmm8,%xmm9 + addq 16(%rsp),%r9 + movq %r10,%r15 + vpxor %xmm10,%xmm11,%xmm8 + xorq %r8,%r12 + shrdq $6,%r14,%r14 + vpsrlq $7,%xmm10,%xmm10 + xorq %r11,%r15 + addq %r12,%r9 + vpxor %xmm9,%xmm8,%xmm8 + shrdq $14,%r13,%r13 + andq %r15,%rdi + vpsllq $7,%xmm9,%xmm9 + xorq %r10,%r14 + addq %r13,%r9 + vpxor %xmm10,%xmm8,%xmm8 + xorq %r11,%rdi + shrdq $28,%r14,%r14 + vpsrlq $6,%xmm0,%xmm11 + addq %r9,%rbx + addq %rdi,%r9 + vpxor %xmm9,%xmm8,%xmm8 + movq %rbx,%r13 + addq %r9,%r14 + vpsllq $3,%xmm0,%xmm10 + shrdq $23,%r13,%r13 + movq %r14,%r9 + vpaddq %xmm8,%xmm1,%xmm1 + movq %rcx,%r12 + shrdq $5,%r14,%r14 + vpsrlq $19,%xmm0,%xmm9 + xorq %rbx,%r13 + xorq %rdx,%r12 + vpxor %xmm10,%xmm11,%xmm11 + shrdq $4,%r13,%r13 + xorq %r9,%r14 + vpsllq $42,%xmm10,%xmm10 + andq %rbx,%r12 + xorq %rbx,%r13 + vpxor %xmm9,%xmm11,%xmm11 + addq 24(%rsp),%r8 + movq %r9,%rdi + vpsrlq $42,%xmm9,%xmm9 + xorq %rdx,%r12 + shrdq $6,%r14,%r14 + vpxor %xmm10,%xmm11,%xmm11 + xorq %r10,%rdi + addq %r12,%r8 + vpxor %xmm9,%xmm11,%xmm11 + shrdq $14,%r13,%r13 + andq %rdi,%r15 + vpaddq %xmm11,%xmm1,%xmm1 + xorq %r9,%r14 + addq %r13,%r8 + vpaddq -96(%rbp),%xmm1,%xmm10 + xorq %r10,%r15 + shrdq $28,%r14,%r14 + addq %r8,%rax + addq %r15,%r8 + movq %rax,%r13 + addq %r8,%r14 + vmovdqa %xmm10,16(%rsp) + vpalignr $8,%xmm2,%xmm3,%xmm8 + shrdq $23,%r13,%r13 + movq %r14,%r8 + vpalignr $8,%xmm6,%xmm7,%xmm11 + movq %rbx,%r12 + shrdq $5,%r14,%r14 + vpsrlq $1,%xmm8,%xmm10 + xorq %rax,%r13 + xorq %rcx,%r12 + vpaddq %xmm11,%xmm2,%xmm2 + shrdq $4,%r13,%r13 + xorq %r8,%r14 + vpsrlq $7,%xmm8,%xmm11 + andq %rax,%r12 + xorq %rax,%r13 + vpsllq $56,%xmm8,%xmm9 + addq 32(%rsp),%rdx + movq %r8,%r15 + vpxor %xmm10,%xmm11,%xmm8 + xorq %rcx,%r12 + shrdq $6,%r14,%r14 + vpsrlq $7,%xmm10,%xmm10 + xorq %r9,%r15 + addq %r12,%rdx + vpxor %xmm9,%xmm8,%xmm8 + shrdq $14,%r13,%r13 + andq %r15,%rdi + vpsllq $7,%xmm9,%xmm9 + xorq %r8,%r14 + addq %r13,%rdx + vpxor %xmm10,%xmm8,%xmm8 + xorq %r9,%rdi + shrdq $28,%r14,%r14 + vpsrlq $6,%xmm1,%xmm11 + addq %rdx,%r11 + addq %rdi,%rdx + vpxor %xmm9,%xmm8,%xmm8 + movq %r11,%r13 + addq %rdx,%r14 + vpsllq $3,%xmm1,%xmm10 + shrdq $23,%r13,%r13 + movq %r14,%rdx + vpaddq %xmm8,%xmm2,%xmm2 + movq %rax,%r12 + shrdq $5,%r14,%r14 + vpsrlq $19,%xmm1,%xmm9 + xorq %r11,%r13 + xorq %rbx,%r12 + vpxor %xmm10,%xmm11,%xmm11 + shrdq $4,%r13,%r13 + xorq %rdx,%r14 + vpsllq $42,%xmm10,%xmm10 + andq %r11,%r12 + xorq %r11,%r13 + vpxor %xmm9,%xmm11,%xmm11 + addq 40(%rsp),%rcx + movq %rdx,%rdi + vpsrlq $42,%xmm9,%xmm9 + xorq %rbx,%r12 + shrdq $6,%r14,%r14 + vpxor %xmm10,%xmm11,%xmm11 + xorq %r8,%rdi + addq %r12,%rcx + vpxor %xmm9,%xmm11,%xmm11 + shrdq $14,%r13,%r13 + andq %rdi,%r15 + vpaddq %xmm11,%xmm2,%xmm2 + xorq %rdx,%r14 + addq %r13,%rcx + vpaddq -64(%rbp),%xmm2,%xmm10 + xorq %r8,%r15 + shrdq $28,%r14,%r14 + addq %rcx,%r10 + addq %r15,%rcx + movq %r10,%r13 + addq %rcx,%r14 + vmovdqa %xmm10,32(%rsp) + vpalignr $8,%xmm3,%xmm4,%xmm8 + shrdq $23,%r13,%r13 + movq %r14,%rcx + vpalignr $8,%xmm7,%xmm0,%xmm11 + movq %r11,%r12 + shrdq $5,%r14,%r14 + vpsrlq $1,%xmm8,%xmm10 + xorq %r10,%r13 + xorq %rax,%r12 + vpaddq %xmm11,%xmm3,%xmm3 + shrdq $4,%r13,%r13 + xorq %rcx,%r14 + vpsrlq $7,%xmm8,%xmm11 + andq %r10,%r12 + xorq %r10,%r13 + vpsllq $56,%xmm8,%xmm9 + addq 48(%rsp),%rbx + movq %rcx,%r15 + vpxor %xmm10,%xmm11,%xmm8 + xorq %rax,%r12 + shrdq $6,%r14,%r14 + vpsrlq $7,%xmm10,%xmm10 + xorq %rdx,%r15 + addq %r12,%rbx + vpxor %xmm9,%xmm8,%xmm8 + shrdq $14,%r13,%r13 + andq %r15,%rdi + vpsllq $7,%xmm9,%xmm9 + xorq %rcx,%r14 + addq %r13,%rbx + vpxor %xmm10,%xmm8,%xmm8 + xorq %rdx,%rdi + shrdq $28,%r14,%r14 + vpsrlq $6,%xmm2,%xmm11 + addq %rbx,%r9 + addq %rdi,%rbx + vpxor %xmm9,%xmm8,%xmm8 + movq %r9,%r13 + addq %rbx,%r14 + vpsllq $3,%xmm2,%xmm10 + shrdq $23,%r13,%r13 + movq %r14,%rbx + vpaddq %xmm8,%xmm3,%xmm3 + movq %r10,%r12 + shrdq $5,%r14,%r14 + vpsrlq $19,%xmm2,%xmm9 + xorq %r9,%r13 + xorq %r11,%r12 + vpxor %xmm10,%xmm11,%xmm11 + shrdq $4,%r13,%r13 + xorq %rbx,%r14 + vpsllq $42,%xmm10,%xmm10 + andq %r9,%r12 + xorq %r9,%r13 + vpxor %xmm9,%xmm11,%xmm11 + addq 56(%rsp),%rax + movq %rbx,%rdi + vpsrlq $42,%xmm9,%xmm9 + xorq %r11,%r12 + shrdq $6,%r14,%r14 + vpxor %xmm10,%xmm11,%xmm11 + xorq %rcx,%rdi + addq %r12,%rax + vpxor %xmm9,%xmm11,%xmm11 + shrdq $14,%r13,%r13 + andq %rdi,%r15 + vpaddq %xmm11,%xmm3,%xmm3 + xorq %rbx,%r14 + addq %r13,%rax + vpaddq -32(%rbp),%xmm3,%xmm10 + xorq %rcx,%r15 + shrdq $28,%r14,%r14 + addq %rax,%r8 + addq %r15,%rax + movq %r8,%r13 + addq %rax,%r14 + vmovdqa %xmm10,48(%rsp) + vpalignr $8,%xmm4,%xmm5,%xmm8 + shrdq $23,%r13,%r13 + movq %r14,%rax + vpalignr $8,%xmm0,%xmm1,%xmm11 + movq %r9,%r12 + shrdq $5,%r14,%r14 + vpsrlq $1,%xmm8,%xmm10 + xorq %r8,%r13 + xorq %r10,%r12 + vpaddq %xmm11,%xmm4,%xmm4 + shrdq $4,%r13,%r13 + xorq %rax,%r14 + vpsrlq $7,%xmm8,%xmm11 + andq %r8,%r12 + xorq %r8,%r13 + vpsllq $56,%xmm8,%xmm9 + addq 64(%rsp),%r11 + movq %rax,%r15 + vpxor %xmm10,%xmm11,%xmm8 + xorq %r10,%r12 + shrdq $6,%r14,%r14 + vpsrlq $7,%xmm10,%xmm10 + xorq %rbx,%r15 + addq %r12,%r11 + vpxor %xmm9,%xmm8,%xmm8 + shrdq $14,%r13,%r13 + andq %r15,%rdi + vpsllq $7,%xmm9,%xmm9 + xorq %rax,%r14 + addq %r13,%r11 + vpxor %xmm10,%xmm8,%xmm8 + xorq %rbx,%rdi + shrdq $28,%r14,%r14 + vpsrlq $6,%xmm3,%xmm11 + addq %r11,%rdx + addq %rdi,%r11 + vpxor %xmm9,%xmm8,%xmm8 + movq %rdx,%r13 + addq %r11,%r14 + vpsllq $3,%xmm3,%xmm10 + shrdq $23,%r13,%r13 + movq %r14,%r11 + vpaddq %xmm8,%xmm4,%xmm4 + movq %r8,%r12 + shrdq $5,%r14,%r14 + vpsrlq $19,%xmm3,%xmm9 + xorq %rdx,%r13 + xorq %r9,%r12 + vpxor %xmm10,%xmm11,%xmm11 + shrdq $4,%r13,%r13 + xorq %r11,%r14 + vpsllq $42,%xmm10,%xmm10 + andq %rdx,%r12 + xorq %rdx,%r13 + vpxor %xmm9,%xmm11,%xmm11 + addq 72(%rsp),%r10 + movq %r11,%rdi + vpsrlq $42,%xmm9,%xmm9 + xorq %r9,%r12 + shrdq $6,%r14,%r14 + vpxor %xmm10,%xmm11,%xmm11 + xorq %rax,%rdi + addq %r12,%r10 + vpxor %xmm9,%xmm11,%xmm11 + shrdq $14,%r13,%r13 + andq %rdi,%r15 + vpaddq %xmm11,%xmm4,%xmm4 + xorq %r11,%r14 + addq %r13,%r10 + vpaddq 0(%rbp),%xmm4,%xmm10 + xorq %rax,%r15 + shrdq $28,%r14,%r14 + addq %r10,%rcx + addq %r15,%r10 + movq %rcx,%r13 + addq %r10,%r14 + vmovdqa %xmm10,64(%rsp) + vpalignr $8,%xmm5,%xmm6,%xmm8 + shrdq $23,%r13,%r13 + movq %r14,%r10 + vpalignr $8,%xmm1,%xmm2,%xmm11 + movq %rdx,%r12 + shrdq $5,%r14,%r14 + vpsrlq $1,%xmm8,%xmm10 + xorq %rcx,%r13 + xorq %r8,%r12 + vpaddq %xmm11,%xmm5,%xmm5 + shrdq $4,%r13,%r13 + xorq %r10,%r14 + vpsrlq $7,%xmm8,%xmm11 + andq %rcx,%r12 + xorq %rcx,%r13 + vpsllq $56,%xmm8,%xmm9 + addq 80(%rsp),%r9 + movq %r10,%r15 + vpxor %xmm10,%xmm11,%xmm8 + xorq %r8,%r12 + shrdq $6,%r14,%r14 + vpsrlq $7,%xmm10,%xmm10 + xorq %r11,%r15 + addq %r12,%r9 + vpxor %xmm9,%xmm8,%xmm8 + shrdq $14,%r13,%r13 + andq %r15,%rdi + vpsllq $7,%xmm9,%xmm9 + xorq %r10,%r14 + addq %r13,%r9 + vpxor %xmm10,%xmm8,%xmm8 + xorq %r11,%rdi + shrdq $28,%r14,%r14 + vpsrlq $6,%xmm4,%xmm11 + addq %r9,%rbx + addq %rdi,%r9 + vpxor %xmm9,%xmm8,%xmm8 + movq %rbx,%r13 + addq %r9,%r14 + vpsllq $3,%xmm4,%xmm10 + shrdq $23,%r13,%r13 + movq %r14,%r9 + vpaddq %xmm8,%xmm5,%xmm5 + movq %rcx,%r12 + shrdq $5,%r14,%r14 + vpsrlq $19,%xmm4,%xmm9 + xorq %rbx,%r13 + xorq %rdx,%r12 + vpxor %xmm10,%xmm11,%xmm11 + shrdq $4,%r13,%r13 + xorq %r9,%r14 + vpsllq $42,%xmm10,%xmm10 + andq %rbx,%r12 + xorq %rbx,%r13 + vpxor %xmm9,%xmm11,%xmm11 + addq 88(%rsp),%r8 + movq %r9,%rdi + vpsrlq $42,%xmm9,%xmm9 + xorq %rdx,%r12 + shrdq $6,%r14,%r14 + vpxor %xmm10,%xmm11,%xmm11 + xorq %r10,%rdi + addq %r12,%r8 + vpxor %xmm9,%xmm11,%xmm11 + shrdq $14,%r13,%r13 + andq %rdi,%r15 + vpaddq %xmm11,%xmm5,%xmm5 + xorq %r9,%r14 + addq %r13,%r8 + vpaddq 32(%rbp),%xmm5,%xmm10 + xorq %r10,%r15 + shrdq $28,%r14,%r14 + addq %r8,%rax + addq %r15,%r8 + movq %rax,%r13 + addq %r8,%r14 + vmovdqa %xmm10,80(%rsp) + vpalignr $8,%xmm6,%xmm7,%xmm8 + shrdq $23,%r13,%r13 + movq %r14,%r8 + vpalignr $8,%xmm2,%xmm3,%xmm11 + movq %rbx,%r12 + shrdq $5,%r14,%r14 + vpsrlq $1,%xmm8,%xmm10 + xorq %rax,%r13 + xorq %rcx,%r12 + vpaddq %xmm11,%xmm6,%xmm6 + shrdq $4,%r13,%r13 + xorq %r8,%r14 + vpsrlq $7,%xmm8,%xmm11 + andq %rax,%r12 + xorq %rax,%r13 + vpsllq $56,%xmm8,%xmm9 + addq 96(%rsp),%rdx + movq %r8,%r15 + vpxor %xmm10,%xmm11,%xmm8 + xorq %rcx,%r12 + shrdq $6,%r14,%r14 + vpsrlq $7,%xmm10,%xmm10 + xorq %r9,%r15 + addq %r12,%rdx + vpxor %xmm9,%xmm8,%xmm8 + shrdq $14,%r13,%r13 + andq %r15,%rdi + vpsllq $7,%xmm9,%xmm9 + xorq %r8,%r14 + addq %r13,%rdx + vpxor %xmm10,%xmm8,%xmm8 + xorq %r9,%rdi + shrdq $28,%r14,%r14 + vpsrlq $6,%xmm5,%xmm11 + addq %rdx,%r11 + addq %rdi,%rdx + vpxor %xmm9,%xmm8,%xmm8 + movq %r11,%r13 + addq %rdx,%r14 + vpsllq $3,%xmm5,%xmm10 + shrdq $23,%r13,%r13 + movq %r14,%rdx + vpaddq %xmm8,%xmm6,%xmm6 + movq %rax,%r12 + shrdq $5,%r14,%r14 + vpsrlq $19,%xmm5,%xmm9 + xorq %r11,%r13 + xorq %rbx,%r12 + vpxor %xmm10,%xmm11,%xmm11 + shrdq $4,%r13,%r13 + xorq %rdx,%r14 + vpsllq $42,%xmm10,%xmm10 + andq %r11,%r12 + xorq %r11,%r13 + vpxor %xmm9,%xmm11,%xmm11 + addq 104(%rsp),%rcx + movq %rdx,%rdi + vpsrlq $42,%xmm9,%xmm9 + xorq %rbx,%r12 + shrdq $6,%r14,%r14 + vpxor %xmm10,%xmm11,%xmm11 + xorq %r8,%rdi + addq %r12,%rcx + vpxor %xmm9,%xmm11,%xmm11 + shrdq $14,%r13,%r13 + andq %rdi,%r15 + vpaddq %xmm11,%xmm6,%xmm6 + xorq %rdx,%r14 + addq %r13,%rcx + vpaddq 64(%rbp),%xmm6,%xmm10 + xorq %r8,%r15 + shrdq $28,%r14,%r14 + addq %rcx,%r10 + addq %r15,%rcx + movq %r10,%r13 + addq %rcx,%r14 + vmovdqa %xmm10,96(%rsp) + vpalignr $8,%xmm7,%xmm0,%xmm8 + shrdq $23,%r13,%r13 + movq %r14,%rcx + vpalignr $8,%xmm3,%xmm4,%xmm11 + movq %r11,%r12 + shrdq $5,%r14,%r14 + vpsrlq $1,%xmm8,%xmm10 + xorq %r10,%r13 + xorq %rax,%r12 + vpaddq %xmm11,%xmm7,%xmm7 + shrdq $4,%r13,%r13 + xorq %rcx,%r14 + vpsrlq $7,%xmm8,%xmm11 + andq %r10,%r12 + xorq %r10,%r13 + vpsllq $56,%xmm8,%xmm9 + addq 112(%rsp),%rbx + movq %rcx,%r15 + vpxor %xmm10,%xmm11,%xmm8 + xorq %rax,%r12 + shrdq $6,%r14,%r14 + vpsrlq $7,%xmm10,%xmm10 + xorq %rdx,%r15 + addq %r12,%rbx + vpxor %xmm9,%xmm8,%xmm8 + shrdq $14,%r13,%r13 + andq %r15,%rdi + vpsllq $7,%xmm9,%xmm9 + xorq %rcx,%r14 + addq %r13,%rbx + vpxor %xmm10,%xmm8,%xmm8 + xorq %rdx,%rdi + shrdq $28,%r14,%r14 + vpsrlq $6,%xmm6,%xmm11 + addq %rbx,%r9 + addq %rdi,%rbx + vpxor %xmm9,%xmm8,%xmm8 + movq %r9,%r13 + addq %rbx,%r14 + vpsllq $3,%xmm6,%xmm10 + shrdq $23,%r13,%r13 + movq %r14,%rbx + vpaddq %xmm8,%xmm7,%xmm7 + movq %r10,%r12 + shrdq $5,%r14,%r14 + vpsrlq $19,%xmm6,%xmm9 + xorq %r9,%r13 + xorq %r11,%r12 + vpxor %xmm10,%xmm11,%xmm11 + shrdq $4,%r13,%r13 + xorq %rbx,%r14 + vpsllq $42,%xmm10,%xmm10 + andq %r9,%r12 + xorq %r9,%r13 + vpxor %xmm9,%xmm11,%xmm11 + addq 120(%rsp),%rax + movq %rbx,%rdi + vpsrlq $42,%xmm9,%xmm9 + xorq %r11,%r12 + shrdq $6,%r14,%r14 + vpxor %xmm10,%xmm11,%xmm11 + xorq %rcx,%rdi + addq %r12,%rax + vpxor %xmm9,%xmm11,%xmm11 + shrdq $14,%r13,%r13 + andq %rdi,%r15 + vpaddq %xmm11,%xmm7,%xmm7 + xorq %rbx,%r14 + addq %r13,%rax + vpaddq 96(%rbp),%xmm7,%xmm10 + xorq %rcx,%r15 + shrdq $28,%r14,%r14 + addq %rax,%r8 + addq %r15,%rax + movq %r8,%r13 + addq %rax,%r14 + vmovdqa %xmm10,112(%rsp) + cmpb $0,135(%rbp) + jne .Lavx_00_47 + shrdq $23,%r13,%r13 + movq %r14,%rax + movq %r9,%r12 + shrdq $5,%r14,%r14 + xorq %r8,%r13 + xorq %r10,%r12 + shrdq $4,%r13,%r13 + xorq %rax,%r14 + andq %r8,%r12 + xorq %r8,%r13 + addq 0(%rsp),%r11 + movq %rax,%r15 + xorq %r10,%r12 + shrdq $6,%r14,%r14 + xorq %rbx,%r15 + addq %r12,%r11 + shrdq $14,%r13,%r13 + andq %r15,%rdi + xorq %rax,%r14 + addq %r13,%r11 + xorq %rbx,%rdi + shrdq $28,%r14,%r14 + addq %r11,%rdx + addq %rdi,%r11 + movq %rdx,%r13 + addq %r11,%r14 + shrdq $23,%r13,%r13 + movq %r14,%r11 + movq %r8,%r12 + shrdq $5,%r14,%r14 + xorq %rdx,%r13 + xorq %r9,%r12 + shrdq $4,%r13,%r13 + xorq %r11,%r14 + andq %rdx,%r12 + xorq %rdx,%r13 + addq 8(%rsp),%r10 + movq %r11,%rdi + xorq %r9,%r12 + shrdq $6,%r14,%r14 + xorq %rax,%rdi + addq %r12,%r10 + shrdq $14,%r13,%r13 + andq %rdi,%r15 + xorq %r11,%r14 + addq %r13,%r10 + xorq %rax,%r15 + shrdq $28,%r14,%r14 + addq %r10,%rcx + addq %r15,%r10 + movq %rcx,%r13 + addq %r10,%r14 + shrdq $23,%r13,%r13 + movq %r14,%r10 + movq %rdx,%r12 + shrdq $5,%r14,%r14 + xorq %rcx,%r13 + xorq %r8,%r12 + shrdq $4,%r13,%r13 + xorq %r10,%r14 + andq %rcx,%r12 + xorq %rcx,%r13 + addq 16(%rsp),%r9 + movq %r10,%r15 + xorq %r8,%r12 + shrdq $6,%r14,%r14 + xorq %r11,%r15 + addq %r12,%r9 + shrdq $14,%r13,%r13 + andq %r15,%rdi + xorq %r10,%r14 + addq %r13,%r9 + xorq %r11,%rdi + shrdq $28,%r14,%r14 + addq %r9,%rbx + addq %rdi,%r9 + movq %rbx,%r13 + addq %r9,%r14 + shrdq $23,%r13,%r13 + movq %r14,%r9 + movq %rcx,%r12 + shrdq $5,%r14,%r14 + xorq %rbx,%r13 + xorq %rdx,%r12 + shrdq $4,%r13,%r13 + xorq %r9,%r14 + andq %rbx,%r12 + xorq %rbx,%r13 + addq 24(%rsp),%r8 + movq %r9,%rdi + xorq %rdx,%r12 + shrdq $6,%r14,%r14 + xorq %r10,%rdi + addq %r12,%r8 + shrdq $14,%r13,%r13 + andq %rdi,%r15 + xorq %r9,%r14 + addq %r13,%r8 + xorq %r10,%r15 + shrdq $28,%r14,%r14 + addq %r8,%rax + addq %r15,%r8 + movq %rax,%r13 + addq %r8,%r14 + shrdq $23,%r13,%r13 + movq %r14,%r8 + movq %rbx,%r12 + shrdq $5,%r14,%r14 + xorq %rax,%r13 + xorq %rcx,%r12 + shrdq $4,%r13,%r13 + xorq %r8,%r14 + andq %rax,%r12 + xorq %rax,%r13 + addq 32(%rsp),%rdx + movq %r8,%r15 + xorq %rcx,%r12 + shrdq $6,%r14,%r14 + xorq %r9,%r15 + addq %r12,%rdx + shrdq $14,%r13,%r13 + andq %r15,%rdi + xorq %r8,%r14 + addq %r13,%rdx + xorq %r9,%rdi + shrdq $28,%r14,%r14 + addq %rdx,%r11 + addq %rdi,%rdx + movq %r11,%r13 + addq %rdx,%r14 + shrdq $23,%r13,%r13 + movq %r14,%rdx + movq %rax,%r12 + shrdq $5,%r14,%r14 + xorq %r11,%r13 + xorq %rbx,%r12 + shrdq $4,%r13,%r13 + xorq %rdx,%r14 + andq %r11,%r12 + xorq %r11,%r13 + addq 40(%rsp),%rcx + movq %rdx,%rdi + xorq %rbx,%r12 + shrdq $6,%r14,%r14 + xorq %r8,%rdi + addq %r12,%rcx + shrdq $14,%r13,%r13 + andq %rdi,%r15 + xorq %rdx,%r14 + addq %r13,%rcx + xorq %r8,%r15 + shrdq $28,%r14,%r14 + addq %rcx,%r10 + addq %r15,%rcx + movq %r10,%r13 + addq %rcx,%r14 + shrdq $23,%r13,%r13 + movq %r14,%rcx + movq %r11,%r12 + shrdq $5,%r14,%r14 + xorq %r10,%r13 + xorq %rax,%r12 + shrdq $4,%r13,%r13 + xorq %rcx,%r14 + andq %r10,%r12 + xorq %r10,%r13 + addq 48(%rsp),%rbx + movq %rcx,%r15 + xorq %rax,%r12 + shrdq $6,%r14,%r14 + xorq %rdx,%r15 + addq %r12,%rbx + shrdq $14,%r13,%r13 + andq %r15,%rdi + xorq %rcx,%r14 + addq %r13,%rbx + xorq %rdx,%rdi + shrdq $28,%r14,%r14 + addq %rbx,%r9 + addq %rdi,%rbx + movq %r9,%r13 + addq %rbx,%r14 + shrdq $23,%r13,%r13 + movq %r14,%rbx + movq %r10,%r12 + shrdq $5,%r14,%r14 + xorq %r9,%r13 + xorq %r11,%r12 + shrdq $4,%r13,%r13 + xorq %rbx,%r14 + andq %r9,%r12 + xorq %r9,%r13 + addq 56(%rsp),%rax + movq %rbx,%rdi + xorq %r11,%r12 + shrdq $6,%r14,%r14 + xorq %rcx,%rdi + addq %r12,%rax + shrdq $14,%r13,%r13 + andq %rdi,%r15 + xorq %rbx,%r14 + addq %r13,%rax + xorq %rcx,%r15 + shrdq $28,%r14,%r14 + addq %rax,%r8 + addq %r15,%rax + movq %r8,%r13 + addq %rax,%r14 + shrdq $23,%r13,%r13 + movq %r14,%rax + movq %r9,%r12 + shrdq $5,%r14,%r14 + xorq %r8,%r13 + xorq %r10,%r12 + shrdq $4,%r13,%r13 + xorq %rax,%r14 + andq %r8,%r12 + xorq %r8,%r13 + addq 64(%rsp),%r11 + movq %rax,%r15 + xorq %r10,%r12 + shrdq $6,%r14,%r14 + xorq %rbx,%r15 + addq %r12,%r11 + shrdq $14,%r13,%r13 + andq %r15,%rdi + xorq %rax,%r14 + addq %r13,%r11 + xorq %rbx,%rdi + shrdq $28,%r14,%r14 + addq %r11,%rdx + addq %rdi,%r11 + movq %rdx,%r13 + addq %r11,%r14 + shrdq $23,%r13,%r13 + movq %r14,%r11 + movq %r8,%r12 + shrdq $5,%r14,%r14 + xorq %rdx,%r13 + xorq %r9,%r12 + shrdq $4,%r13,%r13 + xorq %r11,%r14 + andq %rdx,%r12 + xorq %rdx,%r13 + addq 72(%rsp),%r10 + movq %r11,%rdi + xorq %r9,%r12 + shrdq $6,%r14,%r14 + xorq %rax,%rdi + addq %r12,%r10 + shrdq $14,%r13,%r13 + andq %rdi,%r15 + xorq %r11,%r14 + addq %r13,%r10 + xorq %rax,%r15 + shrdq $28,%r14,%r14 + addq %r10,%rcx + addq %r15,%r10 + movq %rcx,%r13 + addq %r10,%r14 + shrdq $23,%r13,%r13 + movq %r14,%r10 + movq %rdx,%r12 + shrdq $5,%r14,%r14 + xorq %rcx,%r13 + xorq %r8,%r12 + shrdq $4,%r13,%r13 + xorq %r10,%r14 + andq %rcx,%r12 + xorq %rcx,%r13 + addq 80(%rsp),%r9 + movq %r10,%r15 + xorq %r8,%r12 + shrdq $6,%r14,%r14 + xorq %r11,%r15 + addq %r12,%r9 + shrdq $14,%r13,%r13 + andq %r15,%rdi + xorq %r10,%r14 + addq %r13,%r9 + xorq %r11,%rdi + shrdq $28,%r14,%r14 + addq %r9,%rbx + addq %rdi,%r9 + movq %rbx,%r13 + addq %r9,%r14 + shrdq $23,%r13,%r13 + movq %r14,%r9 + movq %rcx,%r12 + shrdq $5,%r14,%r14 + xorq %rbx,%r13 + xorq %rdx,%r12 + shrdq $4,%r13,%r13 + xorq %r9,%r14 + andq %rbx,%r12 + xorq %rbx,%r13 + addq 88(%rsp),%r8 + movq %r9,%rdi + xorq %rdx,%r12 + shrdq $6,%r14,%r14 + xorq %r10,%rdi + addq %r12,%r8 + shrdq $14,%r13,%r13 + andq %rdi,%r15 + xorq %r9,%r14 + addq %r13,%r8 + xorq %r10,%r15 + shrdq $28,%r14,%r14 + addq %r8,%rax + addq %r15,%r8 + movq %rax,%r13 + addq %r8,%r14 + shrdq $23,%r13,%r13 + movq %r14,%r8 + movq %rbx,%r12 + shrdq $5,%r14,%r14 + xorq %rax,%r13 + xorq %rcx,%r12 + shrdq $4,%r13,%r13 + xorq %r8,%r14 + andq %rax,%r12 + xorq %rax,%r13 + addq 96(%rsp),%rdx + movq %r8,%r15 + xorq %rcx,%r12 + shrdq $6,%r14,%r14 + xorq %r9,%r15 + addq %r12,%rdx + shrdq $14,%r13,%r13 + andq %r15,%rdi + xorq %r8,%r14 + addq %r13,%rdx + xorq %r9,%rdi + shrdq $28,%r14,%r14 + addq %rdx,%r11 + addq %rdi,%rdx + movq %r11,%r13 + addq %rdx,%r14 + shrdq $23,%r13,%r13 + movq %r14,%rdx + movq %rax,%r12 + shrdq $5,%r14,%r14 + xorq %r11,%r13 + xorq %rbx,%r12 + shrdq $4,%r13,%r13 + xorq %rdx,%r14 + andq %r11,%r12 + xorq %r11,%r13 + addq 104(%rsp),%rcx + movq %rdx,%rdi + xorq %rbx,%r12 + shrdq $6,%r14,%r14 + xorq %r8,%rdi + addq %r12,%rcx + shrdq $14,%r13,%r13 + andq %rdi,%r15 + xorq %rdx,%r14 + addq %r13,%rcx + xorq %r8,%r15 + shrdq $28,%r14,%r14 + addq %rcx,%r10 + addq %r15,%rcx + movq %r10,%r13 + addq %rcx,%r14 + shrdq $23,%r13,%r13 + movq %r14,%rcx + movq %r11,%r12 + shrdq $5,%r14,%r14 + xorq %r10,%r13 + xorq %rax,%r12 + shrdq $4,%r13,%r13 + xorq %rcx,%r14 + andq %r10,%r12 + xorq %r10,%r13 + addq 112(%rsp),%rbx + movq %rcx,%r15 + xorq %rax,%r12 + shrdq $6,%r14,%r14 + xorq %rdx,%r15 + addq %r12,%rbx + shrdq $14,%r13,%r13 + andq %r15,%rdi + xorq %rcx,%r14 + addq %r13,%rbx + xorq %rdx,%rdi + shrdq $28,%r14,%r14 + addq %rbx,%r9 + addq %rdi,%rbx + movq %r9,%r13 + addq %rbx,%r14 + shrdq $23,%r13,%r13 + movq %r14,%rbx + movq %r10,%r12 + shrdq $5,%r14,%r14 + xorq %r9,%r13 + xorq %r11,%r12 + shrdq $4,%r13,%r13 + xorq %rbx,%r14 + andq %r9,%r12 + xorq %r9,%r13 + addq 120(%rsp),%rax + movq %rbx,%rdi + xorq %r11,%r12 + shrdq $6,%r14,%r14 + xorq %rcx,%rdi + addq %r12,%rax + shrdq $14,%r13,%r13 + andq %rdi,%r15 + xorq %rbx,%r14 + addq %r13,%rax + xorq %rcx,%r15 + shrdq $28,%r14,%r14 + addq %rax,%r8 + addq %r15,%rax + movq %r8,%r13 + addq %rax,%r14 + movq 128+0(%rsp),%rdi + movq %r14,%rax + + addq 0(%rdi),%rax + leaq 128(%rsi),%rsi + addq 8(%rdi),%rbx + addq 16(%rdi),%rcx + addq 24(%rdi),%rdx + addq 32(%rdi),%r8 + addq 40(%rdi),%r9 + addq 48(%rdi),%r10 + addq 56(%rdi),%r11 + + cmpq 128+16(%rsp),%rsi + + movq %rax,0(%rdi) + movq %rbx,8(%rdi) + movq %rcx,16(%rdi) + movq %rdx,24(%rdi) + movq %r8,32(%rdi) + movq %r9,40(%rdi) + movq %r10,48(%rdi) + movq %r11,56(%rdi) + jb .Lloop_avx + + movq 152(%rsp),%rsi +.cfi_def_cfa %rsi,8 + vzeroupper + movq -48(%rsi),%r15 +.cfi_restore %r15 + movq -40(%rsi),%r14 +.cfi_restore %r14 + movq -32(%rsi),%r13 +.cfi_restore %r13 + movq -24(%rsi),%r12 +.cfi_restore %r12 + movq -16(%rsi),%rbp +.cfi_restore %rbp + movq -8(%rsi),%rbx +.cfi_restore %rbx + leaq (%rsi),%rsp +.cfi_def_cfa_register %rsp +.Lepilogue_avx: + .byte 0xf3,0xc3 +.cfi_endproc +.size sha512_block_data_order_avx,.-sha512_block_data_order_avx +.type sha512_block_data_order_avx2,@function +.align 64 +sha512_block_data_order_avx2: +.cfi_startproc +.Lavx2_shortcut: + movq %rsp,%rax +.cfi_def_cfa_register %rax + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_offset %r15,-56 + subq $1312,%rsp + shlq $4,%rdx + andq $-2048,%rsp + leaq (%rsi,%rdx,8),%rdx + addq $1152,%rsp + movq %rdi,128+0(%rsp) + movq %rsi,128+8(%rsp) + movq %rdx,128+16(%rsp) + movq %rax,152(%rsp) +.cfi_escape 0x0f,0x06,0x77,0x98,0x01,0x06,0x23,0x08 +.Lprologue_avx2: + + vzeroupper + subq $-128,%rsi + movq 0(%rdi),%rax + movq %rsi,%r12 + movq 8(%rdi),%rbx + cmpq %rdx,%rsi + movq 16(%rdi),%rcx + cmoveq %rsp,%r12 + movq 24(%rdi),%rdx + movq 32(%rdi),%r8 + movq 40(%rdi),%r9 + movq 48(%rdi),%r10 + movq 56(%rdi),%r11 + jmp .Loop_avx2 +.align 16 +.Loop_avx2: + vmovdqu -128(%rsi),%xmm0 + vmovdqu -128+16(%rsi),%xmm1 + vmovdqu -128+32(%rsi),%xmm2 + leaq K512+128(%rip),%rbp + vmovdqu -128+48(%rsi),%xmm3 + vmovdqu -128+64(%rsi),%xmm4 + vmovdqu -128+80(%rsi),%xmm5 + vmovdqu -128+96(%rsi),%xmm6 + vmovdqu -128+112(%rsi),%xmm7 + + vmovdqa 1152(%rbp),%ymm10 + vinserti128 $1,(%r12),%ymm0,%ymm0 + vinserti128 $1,16(%r12),%ymm1,%ymm1 + vpshufb %ymm10,%ymm0,%ymm0 + vinserti128 $1,32(%r12),%ymm2,%ymm2 + vpshufb %ymm10,%ymm1,%ymm1 + vinserti128 $1,48(%r12),%ymm3,%ymm3 + vpshufb %ymm10,%ymm2,%ymm2 + vinserti128 $1,64(%r12),%ymm4,%ymm4 + vpshufb %ymm10,%ymm3,%ymm3 + vinserti128 $1,80(%r12),%ymm5,%ymm5 + vpshufb %ymm10,%ymm4,%ymm4 + vinserti128 $1,96(%r12),%ymm6,%ymm6 + vpshufb %ymm10,%ymm5,%ymm5 + vinserti128 $1,112(%r12),%ymm7,%ymm7 + + vpaddq -128(%rbp),%ymm0,%ymm8 + vpshufb %ymm10,%ymm6,%ymm6 + vpaddq -96(%rbp),%ymm1,%ymm9 + vpshufb %ymm10,%ymm7,%ymm7 + vpaddq -64(%rbp),%ymm2,%ymm10 + vpaddq -32(%rbp),%ymm3,%ymm11 + vmovdqa %ymm8,0(%rsp) + vpaddq 0(%rbp),%ymm4,%ymm8 + vmovdqa %ymm9,32(%rsp) + vpaddq 32(%rbp),%ymm5,%ymm9 + vmovdqa %ymm10,64(%rsp) + vpaddq 64(%rbp),%ymm6,%ymm10 + vmovdqa %ymm11,96(%rsp) + + movq 152(%rsp),%rdi +.cfi_def_cfa %rdi,8 + leaq -128(%rsp),%rsp + + + + movq %rdi,-8(%rsp) +.cfi_escape 0x0f,0x05,0x77,0x78,0x06,0x23,0x08 + vpaddq 96(%rbp),%ymm7,%ymm11 + vmovdqa %ymm8,0(%rsp) + xorq %r14,%r14 + vmovdqa %ymm9,32(%rsp) + movq %rbx,%rdi + vmovdqa %ymm10,64(%rsp) + xorq %rcx,%rdi + vmovdqa %ymm11,96(%rsp) + movq %r9,%r12 + addq $32*8,%rbp + jmp .Lavx2_00_47 + +.align 16 +.Lavx2_00_47: + leaq -128(%rsp),%rsp +.cfi_escape 0x0f,0x06,0x77,0xf8,0x00,0x06,0x23,0x08 + + pushq 128-8(%rsp) +.cfi_escape 0x0f,0x05,0x77,0x00,0x06,0x23,0x08 + leaq 8(%rsp),%rsp +.cfi_escape 0x0f,0x05,0x77,0x78,0x06,0x23,0x08 + vpalignr $8,%ymm0,%ymm1,%ymm8 + addq 0+256(%rsp),%r11 + andq %r8,%r12 + rorxq $41,%r8,%r13 + vpalignr $8,%ymm4,%ymm5,%ymm11 + rorxq $18,%r8,%r15 + leaq (%rax,%r14,1),%rax + leaq (%r11,%r12,1),%r11 + vpsrlq $1,%ymm8,%ymm10 + andnq %r10,%r8,%r12 + xorq %r15,%r13 + rorxq $14,%r8,%r14 + vpaddq %ymm11,%ymm0,%ymm0 + vpsrlq $7,%ymm8,%ymm11 + leaq (%r11,%r12,1),%r11 + xorq %r14,%r13 + movq %rax,%r15 + vpsllq $56,%ymm8,%ymm9 + vpxor %ymm10,%ymm11,%ymm8 + rorxq $39,%rax,%r12 + leaq (%r11,%r13,1),%r11 + xorq %rbx,%r15 + vpsrlq $7,%ymm10,%ymm10 + vpxor %ymm9,%ymm8,%ymm8 + rorxq $34,%rax,%r14 + rorxq $28,%rax,%r13 + leaq (%rdx,%r11,1),%rdx + vpsllq $7,%ymm9,%ymm9 + vpxor %ymm10,%ymm8,%ymm8 + andq %r15,%rdi + xorq %r12,%r14 + xorq %rbx,%rdi + vpsrlq $6,%ymm7,%ymm11 + vpxor %ymm9,%ymm8,%ymm8 + xorq %r13,%r14 + leaq (%r11,%rdi,1),%r11 + movq %r8,%r12 + vpsllq $3,%ymm7,%ymm10 + vpaddq %ymm8,%ymm0,%ymm0 + addq 8+256(%rsp),%r10 + andq %rdx,%r12 + rorxq $41,%rdx,%r13 + vpsrlq $19,%ymm7,%ymm9 + vpxor %ymm10,%ymm11,%ymm11 + rorxq $18,%rdx,%rdi + leaq (%r11,%r14,1),%r11 + leaq (%r10,%r12,1),%r10 + vpsllq $42,%ymm10,%ymm10 + vpxor %ymm9,%ymm11,%ymm11 + andnq %r9,%rdx,%r12 + xorq %rdi,%r13 + rorxq $14,%rdx,%r14 + vpsrlq $42,%ymm9,%ymm9 + vpxor %ymm10,%ymm11,%ymm11 + leaq (%r10,%r12,1),%r10 + xorq %r14,%r13 + movq %r11,%rdi + vpxor %ymm9,%ymm11,%ymm11 + rorxq $39,%r11,%r12 + leaq (%r10,%r13,1),%r10 + xorq %rax,%rdi + vpaddq %ymm11,%ymm0,%ymm0 + rorxq $34,%r11,%r14 + rorxq $28,%r11,%r13 + leaq (%rcx,%r10,1),%rcx + vpaddq -128(%rbp),%ymm0,%ymm10 + andq %rdi,%r15 + xorq %r12,%r14 + xorq %rax,%r15 + xorq %r13,%r14 + leaq (%r10,%r15,1),%r10 + movq %rdx,%r12 + vmovdqa %ymm10,0(%rsp) + vpalignr $8,%ymm1,%ymm2,%ymm8 + addq 32+256(%rsp),%r9 + andq %rcx,%r12 + rorxq $41,%rcx,%r13 + vpalignr $8,%ymm5,%ymm6,%ymm11 + rorxq $18,%rcx,%r15 + leaq (%r10,%r14,1),%r10 + leaq (%r9,%r12,1),%r9 + vpsrlq $1,%ymm8,%ymm10 + andnq %r8,%rcx,%r12 + xorq %r15,%r13 + rorxq $14,%rcx,%r14 + vpaddq %ymm11,%ymm1,%ymm1 + vpsrlq $7,%ymm8,%ymm11 + leaq (%r9,%r12,1),%r9 + xorq %r14,%r13 + movq %r10,%r15 + vpsllq $56,%ymm8,%ymm9 + vpxor %ymm10,%ymm11,%ymm8 + rorxq $39,%r10,%r12 + leaq (%r9,%r13,1),%r9 + xorq %r11,%r15 + vpsrlq $7,%ymm10,%ymm10 + vpxor %ymm9,%ymm8,%ymm8 + rorxq $34,%r10,%r14 + rorxq $28,%r10,%r13 + leaq (%rbx,%r9,1),%rbx + vpsllq $7,%ymm9,%ymm9 + vpxor %ymm10,%ymm8,%ymm8 + andq %r15,%rdi + xorq %r12,%r14 + xorq %r11,%rdi + vpsrlq $6,%ymm0,%ymm11 + vpxor %ymm9,%ymm8,%ymm8 + xorq %r13,%r14 + leaq (%r9,%rdi,1),%r9 + movq %rcx,%r12 + vpsllq $3,%ymm0,%ymm10 + vpaddq %ymm8,%ymm1,%ymm1 + addq 40+256(%rsp),%r8 + andq %rbx,%r12 + rorxq $41,%rbx,%r13 + vpsrlq $19,%ymm0,%ymm9 + vpxor %ymm10,%ymm11,%ymm11 + rorxq $18,%rbx,%rdi + leaq (%r9,%r14,1),%r9 + leaq (%r8,%r12,1),%r8 + vpsllq $42,%ymm10,%ymm10 + vpxor %ymm9,%ymm11,%ymm11 + andnq %rdx,%rbx,%r12 + xorq %rdi,%r13 + rorxq $14,%rbx,%r14 + vpsrlq $42,%ymm9,%ymm9 + vpxor %ymm10,%ymm11,%ymm11 + leaq (%r8,%r12,1),%r8 + xorq %r14,%r13 + movq %r9,%rdi + vpxor %ymm9,%ymm11,%ymm11 + rorxq $39,%r9,%r12 + leaq (%r8,%r13,1),%r8 + xorq %r10,%rdi + vpaddq %ymm11,%ymm1,%ymm1 + rorxq $34,%r9,%r14 + rorxq $28,%r9,%r13 + leaq (%rax,%r8,1),%rax + vpaddq -96(%rbp),%ymm1,%ymm10 + andq %rdi,%r15 + xorq %r12,%r14 + xorq %r10,%r15 + xorq %r13,%r14 + leaq (%r8,%r15,1),%r8 + movq %rbx,%r12 + vmovdqa %ymm10,32(%rsp) + vpalignr $8,%ymm2,%ymm3,%ymm8 + addq 64+256(%rsp),%rdx + andq %rax,%r12 + rorxq $41,%rax,%r13 + vpalignr $8,%ymm6,%ymm7,%ymm11 + rorxq $18,%rax,%r15 + leaq (%r8,%r14,1),%r8 + leaq (%rdx,%r12,1),%rdx + vpsrlq $1,%ymm8,%ymm10 + andnq %rcx,%rax,%r12 + xorq %r15,%r13 + rorxq $14,%rax,%r14 + vpaddq %ymm11,%ymm2,%ymm2 + vpsrlq $7,%ymm8,%ymm11 + leaq (%rdx,%r12,1),%rdx + xorq %r14,%r13 + movq %r8,%r15 + vpsllq $56,%ymm8,%ymm9 + vpxor %ymm10,%ymm11,%ymm8 + rorxq $39,%r8,%r12 + leaq (%rdx,%r13,1),%rdx + xorq %r9,%r15 + vpsrlq $7,%ymm10,%ymm10 + vpxor %ymm9,%ymm8,%ymm8 + rorxq $34,%r8,%r14 + rorxq $28,%r8,%r13 + leaq (%r11,%rdx,1),%r11 + vpsllq $7,%ymm9,%ymm9 + vpxor %ymm10,%ymm8,%ymm8 + andq %r15,%rdi + xorq %r12,%r14 + xorq %r9,%rdi + vpsrlq $6,%ymm1,%ymm11 + vpxor %ymm9,%ymm8,%ymm8 + xorq %r13,%r14 + leaq (%rdx,%rdi,1),%rdx + movq %rax,%r12 + vpsllq $3,%ymm1,%ymm10 + vpaddq %ymm8,%ymm2,%ymm2 + addq 72+256(%rsp),%rcx + andq %r11,%r12 + rorxq $41,%r11,%r13 + vpsrlq $19,%ymm1,%ymm9 + vpxor %ymm10,%ymm11,%ymm11 + rorxq $18,%r11,%rdi + leaq (%rdx,%r14,1),%rdx + leaq (%rcx,%r12,1),%rcx + vpsllq $42,%ymm10,%ymm10 + vpxor %ymm9,%ymm11,%ymm11 + andnq %rbx,%r11,%r12 + xorq %rdi,%r13 + rorxq $14,%r11,%r14 + vpsrlq $42,%ymm9,%ymm9 + vpxor %ymm10,%ymm11,%ymm11 + leaq (%rcx,%r12,1),%rcx + xorq %r14,%r13 + movq %rdx,%rdi + vpxor %ymm9,%ymm11,%ymm11 + rorxq $39,%rdx,%r12 + leaq (%rcx,%r13,1),%rcx + xorq %r8,%rdi + vpaddq %ymm11,%ymm2,%ymm2 + rorxq $34,%rdx,%r14 + rorxq $28,%rdx,%r13 + leaq (%r10,%rcx,1),%r10 + vpaddq -64(%rbp),%ymm2,%ymm10 + andq %rdi,%r15 + xorq %r12,%r14 + xorq %r8,%r15 + xorq %r13,%r14 + leaq (%rcx,%r15,1),%rcx + movq %r11,%r12 + vmovdqa %ymm10,64(%rsp) + vpalignr $8,%ymm3,%ymm4,%ymm8 + addq 96+256(%rsp),%rbx + andq %r10,%r12 + rorxq $41,%r10,%r13 + vpalignr $8,%ymm7,%ymm0,%ymm11 + rorxq $18,%r10,%r15 + leaq (%rcx,%r14,1),%rcx + leaq (%rbx,%r12,1),%rbx + vpsrlq $1,%ymm8,%ymm10 + andnq %rax,%r10,%r12 + xorq %r15,%r13 + rorxq $14,%r10,%r14 + vpaddq %ymm11,%ymm3,%ymm3 + vpsrlq $7,%ymm8,%ymm11 + leaq (%rbx,%r12,1),%rbx + xorq %r14,%r13 + movq %rcx,%r15 + vpsllq $56,%ymm8,%ymm9 + vpxor %ymm10,%ymm11,%ymm8 + rorxq $39,%rcx,%r12 + leaq (%rbx,%r13,1),%rbx + xorq %rdx,%r15 + vpsrlq $7,%ymm10,%ymm10 + vpxor %ymm9,%ymm8,%ymm8 + rorxq $34,%rcx,%r14 + rorxq $28,%rcx,%r13 + leaq (%r9,%rbx,1),%r9 + vpsllq $7,%ymm9,%ymm9 + vpxor %ymm10,%ymm8,%ymm8 + andq %r15,%rdi + xorq %r12,%r14 + xorq %rdx,%rdi + vpsrlq $6,%ymm2,%ymm11 + vpxor %ymm9,%ymm8,%ymm8 + xorq %r13,%r14 + leaq (%rbx,%rdi,1),%rbx + movq %r10,%r12 + vpsllq $3,%ymm2,%ymm10 + vpaddq %ymm8,%ymm3,%ymm3 + addq 104+256(%rsp),%rax + andq %r9,%r12 + rorxq $41,%r9,%r13 + vpsrlq $19,%ymm2,%ymm9 + vpxor %ymm10,%ymm11,%ymm11 + rorxq $18,%r9,%rdi + leaq (%rbx,%r14,1),%rbx + leaq (%rax,%r12,1),%rax + vpsllq $42,%ymm10,%ymm10 + vpxor %ymm9,%ymm11,%ymm11 + andnq %r11,%r9,%r12 + xorq %rdi,%r13 + rorxq $14,%r9,%r14 + vpsrlq $42,%ymm9,%ymm9 + vpxor %ymm10,%ymm11,%ymm11 + leaq (%rax,%r12,1),%rax + xorq %r14,%r13 + movq %rbx,%rdi + vpxor %ymm9,%ymm11,%ymm11 + rorxq $39,%rbx,%r12 + leaq (%rax,%r13,1),%rax + xorq %rcx,%rdi + vpaddq %ymm11,%ymm3,%ymm3 + rorxq $34,%rbx,%r14 + rorxq $28,%rbx,%r13 + leaq (%r8,%rax,1),%r8 + vpaddq -32(%rbp),%ymm3,%ymm10 + andq %rdi,%r15 + xorq %r12,%r14 + xorq %rcx,%r15 + xorq %r13,%r14 + leaq (%rax,%r15,1),%rax + movq %r9,%r12 + vmovdqa %ymm10,96(%rsp) + leaq -128(%rsp),%rsp +.cfi_escape 0x0f,0x06,0x77,0xf8,0x00,0x06,0x23,0x08 + + pushq 128-8(%rsp) +.cfi_escape 0x0f,0x05,0x77,0x00,0x06,0x23,0x08 + leaq 8(%rsp),%rsp +.cfi_escape 0x0f,0x05,0x77,0x78,0x06,0x23,0x08 + vpalignr $8,%ymm4,%ymm5,%ymm8 + addq 0+256(%rsp),%r11 + andq %r8,%r12 + rorxq $41,%r8,%r13 + vpalignr $8,%ymm0,%ymm1,%ymm11 + rorxq $18,%r8,%r15 + leaq (%rax,%r14,1),%rax + leaq (%r11,%r12,1),%r11 + vpsrlq $1,%ymm8,%ymm10 + andnq %r10,%r8,%r12 + xorq %r15,%r13 + rorxq $14,%r8,%r14 + vpaddq %ymm11,%ymm4,%ymm4 + vpsrlq $7,%ymm8,%ymm11 + leaq (%r11,%r12,1),%r11 + xorq %r14,%r13 + movq %rax,%r15 + vpsllq $56,%ymm8,%ymm9 + vpxor %ymm10,%ymm11,%ymm8 + rorxq $39,%rax,%r12 + leaq (%r11,%r13,1),%r11 + xorq %rbx,%r15 + vpsrlq $7,%ymm10,%ymm10 + vpxor %ymm9,%ymm8,%ymm8 + rorxq $34,%rax,%r14 + rorxq $28,%rax,%r13 + leaq (%rdx,%r11,1),%rdx + vpsllq $7,%ymm9,%ymm9 + vpxor %ymm10,%ymm8,%ymm8 + andq %r15,%rdi + xorq %r12,%r14 + xorq %rbx,%rdi + vpsrlq $6,%ymm3,%ymm11 + vpxor %ymm9,%ymm8,%ymm8 + xorq %r13,%r14 + leaq (%r11,%rdi,1),%r11 + movq %r8,%r12 + vpsllq $3,%ymm3,%ymm10 + vpaddq %ymm8,%ymm4,%ymm4 + addq 8+256(%rsp),%r10 + andq %rdx,%r12 + rorxq $41,%rdx,%r13 + vpsrlq $19,%ymm3,%ymm9 + vpxor %ymm10,%ymm11,%ymm11 + rorxq $18,%rdx,%rdi + leaq (%r11,%r14,1),%r11 + leaq (%r10,%r12,1),%r10 + vpsllq $42,%ymm10,%ymm10 + vpxor %ymm9,%ymm11,%ymm11 + andnq %r9,%rdx,%r12 + xorq %rdi,%r13 + rorxq $14,%rdx,%r14 + vpsrlq $42,%ymm9,%ymm9 + vpxor %ymm10,%ymm11,%ymm11 + leaq (%r10,%r12,1),%r10 + xorq %r14,%r13 + movq %r11,%rdi + vpxor %ymm9,%ymm11,%ymm11 + rorxq $39,%r11,%r12 + leaq (%r10,%r13,1),%r10 + xorq %rax,%rdi + vpaddq %ymm11,%ymm4,%ymm4 + rorxq $34,%r11,%r14 + rorxq $28,%r11,%r13 + leaq (%rcx,%r10,1),%rcx + vpaddq 0(%rbp),%ymm4,%ymm10 + andq %rdi,%r15 + xorq %r12,%r14 + xorq %rax,%r15 + xorq %r13,%r14 + leaq (%r10,%r15,1),%r10 + movq %rdx,%r12 + vmovdqa %ymm10,0(%rsp) + vpalignr $8,%ymm5,%ymm6,%ymm8 + addq 32+256(%rsp),%r9 + andq %rcx,%r12 + rorxq $41,%rcx,%r13 + vpalignr $8,%ymm1,%ymm2,%ymm11 + rorxq $18,%rcx,%r15 + leaq (%r10,%r14,1),%r10 + leaq (%r9,%r12,1),%r9 + vpsrlq $1,%ymm8,%ymm10 + andnq %r8,%rcx,%r12 + xorq %r15,%r13 + rorxq $14,%rcx,%r14 + vpaddq %ymm11,%ymm5,%ymm5 + vpsrlq $7,%ymm8,%ymm11 + leaq (%r9,%r12,1),%r9 + xorq %r14,%r13 + movq %r10,%r15 + vpsllq $56,%ymm8,%ymm9 + vpxor %ymm10,%ymm11,%ymm8 + rorxq $39,%r10,%r12 + leaq (%r9,%r13,1),%r9 + xorq %r11,%r15 + vpsrlq $7,%ymm10,%ymm10 + vpxor %ymm9,%ymm8,%ymm8 + rorxq $34,%r10,%r14 + rorxq $28,%r10,%r13 + leaq (%rbx,%r9,1),%rbx + vpsllq $7,%ymm9,%ymm9 + vpxor %ymm10,%ymm8,%ymm8 + andq %r15,%rdi + xorq %r12,%r14 + xorq %r11,%rdi + vpsrlq $6,%ymm4,%ymm11 + vpxor %ymm9,%ymm8,%ymm8 + xorq %r13,%r14 + leaq (%r9,%rdi,1),%r9 + movq %rcx,%r12 + vpsllq $3,%ymm4,%ymm10 + vpaddq %ymm8,%ymm5,%ymm5 + addq 40+256(%rsp),%r8 + andq %rbx,%r12 + rorxq $41,%rbx,%r13 + vpsrlq $19,%ymm4,%ymm9 + vpxor %ymm10,%ymm11,%ymm11 + rorxq $18,%rbx,%rdi + leaq (%r9,%r14,1),%r9 + leaq (%r8,%r12,1),%r8 + vpsllq $42,%ymm10,%ymm10 + vpxor %ymm9,%ymm11,%ymm11 + andnq %rdx,%rbx,%r12 + xorq %rdi,%r13 + rorxq $14,%rbx,%r14 + vpsrlq $42,%ymm9,%ymm9 + vpxor %ymm10,%ymm11,%ymm11 + leaq (%r8,%r12,1),%r8 + xorq %r14,%r13 + movq %r9,%rdi + vpxor %ymm9,%ymm11,%ymm11 + rorxq $39,%r9,%r12 + leaq (%r8,%r13,1),%r8 + xorq %r10,%rdi + vpaddq %ymm11,%ymm5,%ymm5 + rorxq $34,%r9,%r14 + rorxq $28,%r9,%r13 + leaq (%rax,%r8,1),%rax + vpaddq 32(%rbp),%ymm5,%ymm10 + andq %rdi,%r15 + xorq %r12,%r14 + xorq %r10,%r15 + xorq %r13,%r14 + leaq (%r8,%r15,1),%r8 + movq %rbx,%r12 + vmovdqa %ymm10,32(%rsp) + vpalignr $8,%ymm6,%ymm7,%ymm8 + addq 64+256(%rsp),%rdx + andq %rax,%r12 + rorxq $41,%rax,%r13 + vpalignr $8,%ymm2,%ymm3,%ymm11 + rorxq $18,%rax,%r15 + leaq (%r8,%r14,1),%r8 + leaq (%rdx,%r12,1),%rdx + vpsrlq $1,%ymm8,%ymm10 + andnq %rcx,%rax,%r12 + xorq %r15,%r13 + rorxq $14,%rax,%r14 + vpaddq %ymm11,%ymm6,%ymm6 + vpsrlq $7,%ymm8,%ymm11 + leaq (%rdx,%r12,1),%rdx + xorq %r14,%r13 + movq %r8,%r15 + vpsllq $56,%ymm8,%ymm9 + vpxor %ymm10,%ymm11,%ymm8 + rorxq $39,%r8,%r12 + leaq (%rdx,%r13,1),%rdx + xorq %r9,%r15 + vpsrlq $7,%ymm10,%ymm10 + vpxor %ymm9,%ymm8,%ymm8 + rorxq $34,%r8,%r14 + rorxq $28,%r8,%r13 + leaq (%r11,%rdx,1),%r11 + vpsllq $7,%ymm9,%ymm9 + vpxor %ymm10,%ymm8,%ymm8 + andq %r15,%rdi + xorq %r12,%r14 + xorq %r9,%rdi + vpsrlq $6,%ymm5,%ymm11 + vpxor %ymm9,%ymm8,%ymm8 + xorq %r13,%r14 + leaq (%rdx,%rdi,1),%rdx + movq %rax,%r12 + vpsllq $3,%ymm5,%ymm10 + vpaddq %ymm8,%ymm6,%ymm6 + addq 72+256(%rsp),%rcx + andq %r11,%r12 + rorxq $41,%r11,%r13 + vpsrlq $19,%ymm5,%ymm9 + vpxor %ymm10,%ymm11,%ymm11 + rorxq $18,%r11,%rdi + leaq (%rdx,%r14,1),%rdx + leaq (%rcx,%r12,1),%rcx + vpsllq $42,%ymm10,%ymm10 + vpxor %ymm9,%ymm11,%ymm11 + andnq %rbx,%r11,%r12 + xorq %rdi,%r13 + rorxq $14,%r11,%r14 + vpsrlq $42,%ymm9,%ymm9 + vpxor %ymm10,%ymm11,%ymm11 + leaq (%rcx,%r12,1),%rcx + xorq %r14,%r13 + movq %rdx,%rdi + vpxor %ymm9,%ymm11,%ymm11 + rorxq $39,%rdx,%r12 + leaq (%rcx,%r13,1),%rcx + xorq %r8,%rdi + vpaddq %ymm11,%ymm6,%ymm6 + rorxq $34,%rdx,%r14 + rorxq $28,%rdx,%r13 + leaq (%r10,%rcx,1),%r10 + vpaddq 64(%rbp),%ymm6,%ymm10 + andq %rdi,%r15 + xorq %r12,%r14 + xorq %r8,%r15 + xorq %r13,%r14 + leaq (%rcx,%r15,1),%rcx + movq %r11,%r12 + vmovdqa %ymm10,64(%rsp) + vpalignr $8,%ymm7,%ymm0,%ymm8 + addq 96+256(%rsp),%rbx + andq %r10,%r12 + rorxq $41,%r10,%r13 + vpalignr $8,%ymm3,%ymm4,%ymm11 + rorxq $18,%r10,%r15 + leaq (%rcx,%r14,1),%rcx + leaq (%rbx,%r12,1),%rbx + vpsrlq $1,%ymm8,%ymm10 + andnq %rax,%r10,%r12 + xorq %r15,%r13 + rorxq $14,%r10,%r14 + vpaddq %ymm11,%ymm7,%ymm7 + vpsrlq $7,%ymm8,%ymm11 + leaq (%rbx,%r12,1),%rbx + xorq %r14,%r13 + movq %rcx,%r15 + vpsllq $56,%ymm8,%ymm9 + vpxor %ymm10,%ymm11,%ymm8 + rorxq $39,%rcx,%r12 + leaq (%rbx,%r13,1),%rbx + xorq %rdx,%r15 + vpsrlq $7,%ymm10,%ymm10 + vpxor %ymm9,%ymm8,%ymm8 + rorxq $34,%rcx,%r14 + rorxq $28,%rcx,%r13 + leaq (%r9,%rbx,1),%r9 + vpsllq $7,%ymm9,%ymm9 + vpxor %ymm10,%ymm8,%ymm8 + andq %r15,%rdi + xorq %r12,%r14 + xorq %rdx,%rdi + vpsrlq $6,%ymm6,%ymm11 + vpxor %ymm9,%ymm8,%ymm8 + xorq %r13,%r14 + leaq (%rbx,%rdi,1),%rbx + movq %r10,%r12 + vpsllq $3,%ymm6,%ymm10 + vpaddq %ymm8,%ymm7,%ymm7 + addq 104+256(%rsp),%rax + andq %r9,%r12 + rorxq $41,%r9,%r13 + vpsrlq $19,%ymm6,%ymm9 + vpxor %ymm10,%ymm11,%ymm11 + rorxq $18,%r9,%rdi + leaq (%rbx,%r14,1),%rbx + leaq (%rax,%r12,1),%rax + vpsllq $42,%ymm10,%ymm10 + vpxor %ymm9,%ymm11,%ymm11 + andnq %r11,%r9,%r12 + xorq %rdi,%r13 + rorxq $14,%r9,%r14 + vpsrlq $42,%ymm9,%ymm9 + vpxor %ymm10,%ymm11,%ymm11 + leaq (%rax,%r12,1),%rax + xorq %r14,%r13 + movq %rbx,%rdi + vpxor %ymm9,%ymm11,%ymm11 + rorxq $39,%rbx,%r12 + leaq (%rax,%r13,1),%rax + xorq %rcx,%rdi + vpaddq %ymm11,%ymm7,%ymm7 + rorxq $34,%rbx,%r14 + rorxq $28,%rbx,%r13 + leaq (%r8,%rax,1),%r8 + vpaddq 96(%rbp),%ymm7,%ymm10 + andq %rdi,%r15 + xorq %r12,%r14 + xorq %rcx,%r15 + xorq %r13,%r14 + leaq (%rax,%r15,1),%rax + movq %r9,%r12 + vmovdqa %ymm10,96(%rsp) + leaq 256(%rbp),%rbp + cmpb $0,-121(%rbp) + jne .Lavx2_00_47 + addq 0+128(%rsp),%r11 + andq %r8,%r12 + rorxq $41,%r8,%r13 + rorxq $18,%r8,%r15 + leaq (%rax,%r14,1),%rax + leaq (%r11,%r12,1),%r11 + andnq %r10,%r8,%r12 + xorq %r15,%r13 + rorxq $14,%r8,%r14 + leaq (%r11,%r12,1),%r11 + xorq %r14,%r13 + movq %rax,%r15 + rorxq $39,%rax,%r12 + leaq (%r11,%r13,1),%r11 + xorq %rbx,%r15 + rorxq $34,%rax,%r14 + rorxq $28,%rax,%r13 + leaq (%rdx,%r11,1),%rdx + andq %r15,%rdi + xorq %r12,%r14 + xorq %rbx,%rdi + xorq %r13,%r14 + leaq (%r11,%rdi,1),%r11 + movq %r8,%r12 + addq 8+128(%rsp),%r10 + andq %rdx,%r12 + rorxq $41,%rdx,%r13 + rorxq $18,%rdx,%rdi + leaq (%r11,%r14,1),%r11 + leaq (%r10,%r12,1),%r10 + andnq %r9,%rdx,%r12 + xorq %rdi,%r13 + rorxq $14,%rdx,%r14 + leaq (%r10,%r12,1),%r10 + xorq %r14,%r13 + movq %r11,%rdi + rorxq $39,%r11,%r12 + leaq (%r10,%r13,1),%r10 + xorq %rax,%rdi + rorxq $34,%r11,%r14 + rorxq $28,%r11,%r13 + leaq (%rcx,%r10,1),%rcx + andq %rdi,%r15 + xorq %r12,%r14 + xorq %rax,%r15 + xorq %r13,%r14 + leaq (%r10,%r15,1),%r10 + movq %rdx,%r12 + addq 32+128(%rsp),%r9 + andq %rcx,%r12 + rorxq $41,%rcx,%r13 + rorxq $18,%rcx,%r15 + leaq (%r10,%r14,1),%r10 + leaq (%r9,%r12,1),%r9 + andnq %r8,%rcx,%r12 + xorq %r15,%r13 + rorxq $14,%rcx,%r14 + leaq (%r9,%r12,1),%r9 + xorq %r14,%r13 + movq %r10,%r15 + rorxq $39,%r10,%r12 + leaq (%r9,%r13,1),%r9 + xorq %r11,%r15 + rorxq $34,%r10,%r14 + rorxq $28,%r10,%r13 + leaq (%rbx,%r9,1),%rbx + andq %r15,%rdi + xorq %r12,%r14 + xorq %r11,%rdi + xorq %r13,%r14 + leaq (%r9,%rdi,1),%r9 + movq %rcx,%r12 + addq 40+128(%rsp),%r8 + andq %rbx,%r12 + rorxq $41,%rbx,%r13 + rorxq $18,%rbx,%rdi + leaq (%r9,%r14,1),%r9 + leaq (%r8,%r12,1),%r8 + andnq %rdx,%rbx,%r12 + xorq %rdi,%r13 + rorxq $14,%rbx,%r14 + leaq (%r8,%r12,1),%r8 + xorq %r14,%r13 + movq %r9,%rdi + rorxq $39,%r9,%r12 + leaq (%r8,%r13,1),%r8 + xorq %r10,%rdi + rorxq $34,%r9,%r14 + rorxq $28,%r9,%r13 + leaq (%rax,%r8,1),%rax + andq %rdi,%r15 + xorq %r12,%r14 + xorq %r10,%r15 + xorq %r13,%r14 + leaq (%r8,%r15,1),%r8 + movq %rbx,%r12 + addq 64+128(%rsp),%rdx + andq %rax,%r12 + rorxq $41,%rax,%r13 + rorxq $18,%rax,%r15 + leaq (%r8,%r14,1),%r8 + leaq (%rdx,%r12,1),%rdx + andnq %rcx,%rax,%r12 + xorq %r15,%r13 + rorxq $14,%rax,%r14 + leaq (%rdx,%r12,1),%rdx + xorq %r14,%r13 + movq %r8,%r15 + rorxq $39,%r8,%r12 + leaq (%rdx,%r13,1),%rdx + xorq %r9,%r15 + rorxq $34,%r8,%r14 + rorxq $28,%r8,%r13 + leaq (%r11,%rdx,1),%r11 + andq %r15,%rdi + xorq %r12,%r14 + xorq %r9,%rdi + xorq %r13,%r14 + leaq (%rdx,%rdi,1),%rdx + movq %rax,%r12 + addq 72+128(%rsp),%rcx + andq %r11,%r12 + rorxq $41,%r11,%r13 + rorxq $18,%r11,%rdi + leaq (%rdx,%r14,1),%rdx + leaq (%rcx,%r12,1),%rcx + andnq %rbx,%r11,%r12 + xorq %rdi,%r13 + rorxq $14,%r11,%r14 + leaq (%rcx,%r12,1),%rcx + xorq %r14,%r13 + movq %rdx,%rdi + rorxq $39,%rdx,%r12 + leaq (%rcx,%r13,1),%rcx + xorq %r8,%rdi + rorxq $34,%rdx,%r14 + rorxq $28,%rdx,%r13 + leaq (%r10,%rcx,1),%r10 + andq %rdi,%r15 + xorq %r12,%r14 + xorq %r8,%r15 + xorq %r13,%r14 + leaq (%rcx,%r15,1),%rcx + movq %r11,%r12 + addq 96+128(%rsp),%rbx + andq %r10,%r12 + rorxq $41,%r10,%r13 + rorxq $18,%r10,%r15 + leaq (%rcx,%r14,1),%rcx + leaq (%rbx,%r12,1),%rbx + andnq %rax,%r10,%r12 + xorq %r15,%r13 + rorxq $14,%r10,%r14 + leaq (%rbx,%r12,1),%rbx + xorq %r14,%r13 + movq %rcx,%r15 + rorxq $39,%rcx,%r12 + leaq (%rbx,%r13,1),%rbx + xorq %rdx,%r15 + rorxq $34,%rcx,%r14 + rorxq $28,%rcx,%r13 + leaq (%r9,%rbx,1),%r9 + andq %r15,%rdi + xorq %r12,%r14 + xorq %rdx,%rdi + xorq %r13,%r14 + leaq (%rbx,%rdi,1),%rbx + movq %r10,%r12 + addq 104+128(%rsp),%rax + andq %r9,%r12 + rorxq $41,%r9,%r13 + rorxq $18,%r9,%rdi + leaq (%rbx,%r14,1),%rbx + leaq (%rax,%r12,1),%rax + andnq %r11,%r9,%r12 + xorq %rdi,%r13 + rorxq $14,%r9,%r14 + leaq (%rax,%r12,1),%rax + xorq %r14,%r13 + movq %rbx,%rdi + rorxq $39,%rbx,%r12 + leaq (%rax,%r13,1),%rax + xorq %rcx,%rdi + rorxq $34,%rbx,%r14 + rorxq $28,%rbx,%r13 + leaq (%r8,%rax,1),%r8 + andq %rdi,%r15 + xorq %r12,%r14 + xorq %rcx,%r15 + xorq %r13,%r14 + leaq (%rax,%r15,1),%rax + movq %r9,%r12 + addq 0(%rsp),%r11 + andq %r8,%r12 + rorxq $41,%r8,%r13 + rorxq $18,%r8,%r15 + leaq (%rax,%r14,1),%rax + leaq (%r11,%r12,1),%r11 + andnq %r10,%r8,%r12 + xorq %r15,%r13 + rorxq $14,%r8,%r14 + leaq (%r11,%r12,1),%r11 + xorq %r14,%r13 + movq %rax,%r15 + rorxq $39,%rax,%r12 + leaq (%r11,%r13,1),%r11 + xorq %rbx,%r15 + rorxq $34,%rax,%r14 + rorxq $28,%rax,%r13 + leaq (%rdx,%r11,1),%rdx + andq %r15,%rdi + xorq %r12,%r14 + xorq %rbx,%rdi + xorq %r13,%r14 + leaq (%r11,%rdi,1),%r11 + movq %r8,%r12 + addq 8(%rsp),%r10 + andq %rdx,%r12 + rorxq $41,%rdx,%r13 + rorxq $18,%rdx,%rdi + leaq (%r11,%r14,1),%r11 + leaq (%r10,%r12,1),%r10 + andnq %r9,%rdx,%r12 + xorq %rdi,%r13 + rorxq $14,%rdx,%r14 + leaq (%r10,%r12,1),%r10 + xorq %r14,%r13 + movq %r11,%rdi + rorxq $39,%r11,%r12 + leaq (%r10,%r13,1),%r10 + xorq %rax,%rdi + rorxq $34,%r11,%r14 + rorxq $28,%r11,%r13 + leaq (%rcx,%r10,1),%rcx + andq %rdi,%r15 + xorq %r12,%r14 + xorq %rax,%r15 + xorq %r13,%r14 + leaq (%r10,%r15,1),%r10 + movq %rdx,%r12 + addq 32(%rsp),%r9 + andq %rcx,%r12 + rorxq $41,%rcx,%r13 + rorxq $18,%rcx,%r15 + leaq (%r10,%r14,1),%r10 + leaq (%r9,%r12,1),%r9 + andnq %r8,%rcx,%r12 + xorq %r15,%r13 + rorxq $14,%rcx,%r14 + leaq (%r9,%r12,1),%r9 + xorq %r14,%r13 + movq %r10,%r15 + rorxq $39,%r10,%r12 + leaq (%r9,%r13,1),%r9 + xorq %r11,%r15 + rorxq $34,%r10,%r14 + rorxq $28,%r10,%r13 + leaq (%rbx,%r9,1),%rbx + andq %r15,%rdi + xorq %r12,%r14 + xorq %r11,%rdi + xorq %r13,%r14 + leaq (%r9,%rdi,1),%r9 + movq %rcx,%r12 + addq 40(%rsp),%r8 + andq %rbx,%r12 + rorxq $41,%rbx,%r13 + rorxq $18,%rbx,%rdi + leaq (%r9,%r14,1),%r9 + leaq (%r8,%r12,1),%r8 + andnq %rdx,%rbx,%r12 + xorq %rdi,%r13 + rorxq $14,%rbx,%r14 + leaq (%r8,%r12,1),%r8 + xorq %r14,%r13 + movq %r9,%rdi + rorxq $39,%r9,%r12 + leaq (%r8,%r13,1),%r8 + xorq %r10,%rdi + rorxq $34,%r9,%r14 + rorxq $28,%r9,%r13 + leaq (%rax,%r8,1),%rax + andq %rdi,%r15 + xorq %r12,%r14 + xorq %r10,%r15 + xorq %r13,%r14 + leaq (%r8,%r15,1),%r8 + movq %rbx,%r12 + addq 64(%rsp),%rdx + andq %rax,%r12 + rorxq $41,%rax,%r13 + rorxq $18,%rax,%r15 + leaq (%r8,%r14,1),%r8 + leaq (%rdx,%r12,1),%rdx + andnq %rcx,%rax,%r12 + xorq %r15,%r13 + rorxq $14,%rax,%r14 + leaq (%rdx,%r12,1),%rdx + xorq %r14,%r13 + movq %r8,%r15 + rorxq $39,%r8,%r12 + leaq (%rdx,%r13,1),%rdx + xorq %r9,%r15 + rorxq $34,%r8,%r14 + rorxq $28,%r8,%r13 + leaq (%r11,%rdx,1),%r11 + andq %r15,%rdi + xorq %r12,%r14 + xorq %r9,%rdi + xorq %r13,%r14 + leaq (%rdx,%rdi,1),%rdx + movq %rax,%r12 + addq 72(%rsp),%rcx + andq %r11,%r12 + rorxq $41,%r11,%r13 + rorxq $18,%r11,%rdi + leaq (%rdx,%r14,1),%rdx + leaq (%rcx,%r12,1),%rcx + andnq %rbx,%r11,%r12 + xorq %rdi,%r13 + rorxq $14,%r11,%r14 + leaq (%rcx,%r12,1),%rcx + xorq %r14,%r13 + movq %rdx,%rdi + rorxq $39,%rdx,%r12 + leaq (%rcx,%r13,1),%rcx + xorq %r8,%rdi + rorxq $34,%rdx,%r14 + rorxq $28,%rdx,%r13 + leaq (%r10,%rcx,1),%r10 + andq %rdi,%r15 + xorq %r12,%r14 + xorq %r8,%r15 + xorq %r13,%r14 + leaq (%rcx,%r15,1),%rcx + movq %r11,%r12 + addq 96(%rsp),%rbx + andq %r10,%r12 + rorxq $41,%r10,%r13 + rorxq $18,%r10,%r15 + leaq (%rcx,%r14,1),%rcx + leaq (%rbx,%r12,1),%rbx + andnq %rax,%r10,%r12 + xorq %r15,%r13 + rorxq $14,%r10,%r14 + leaq (%rbx,%r12,1),%rbx + xorq %r14,%r13 + movq %rcx,%r15 + rorxq $39,%rcx,%r12 + leaq (%rbx,%r13,1),%rbx + xorq %rdx,%r15 + rorxq $34,%rcx,%r14 + rorxq $28,%rcx,%r13 + leaq (%r9,%rbx,1),%r9 + andq %r15,%rdi + xorq %r12,%r14 + xorq %rdx,%rdi + xorq %r13,%r14 + leaq (%rbx,%rdi,1),%rbx + movq %r10,%r12 + addq 104(%rsp),%rax + andq %r9,%r12 + rorxq $41,%r9,%r13 + rorxq $18,%r9,%rdi + leaq (%rbx,%r14,1),%rbx + leaq (%rax,%r12,1),%rax + andnq %r11,%r9,%r12 + xorq %rdi,%r13 + rorxq $14,%r9,%r14 + leaq (%rax,%r12,1),%rax + xorq %r14,%r13 + movq %rbx,%rdi + rorxq $39,%rbx,%r12 + leaq (%rax,%r13,1),%rax + xorq %rcx,%rdi + rorxq $34,%rbx,%r14 + rorxq $28,%rbx,%r13 + leaq (%r8,%rax,1),%r8 + andq %rdi,%r15 + xorq %r12,%r14 + xorq %rcx,%r15 + xorq %r13,%r14 + leaq (%rax,%r15,1),%rax + movq %r9,%r12 + movq 1280(%rsp),%rdi + addq %r14,%rax + + leaq 1152(%rsp),%rbp + + addq 0(%rdi),%rax + addq 8(%rdi),%rbx + addq 16(%rdi),%rcx + addq 24(%rdi),%rdx + addq 32(%rdi),%r8 + addq 40(%rdi),%r9 + addq 48(%rdi),%r10 + addq 56(%rdi),%r11 + + movq %rax,0(%rdi) + movq %rbx,8(%rdi) + movq %rcx,16(%rdi) + movq %rdx,24(%rdi) + movq %r8,32(%rdi) + movq %r9,40(%rdi) + movq %r10,48(%rdi) + movq %r11,56(%rdi) + + cmpq 144(%rbp),%rsi + je .Ldone_avx2 + + xorq %r14,%r14 + movq %rbx,%rdi + xorq %rcx,%rdi + movq %r9,%r12 + jmp .Lower_avx2 +.align 16 +.Lower_avx2: + addq 0+16(%rbp),%r11 + andq %r8,%r12 + rorxq $41,%r8,%r13 + rorxq $18,%r8,%r15 + leaq (%rax,%r14,1),%rax + leaq (%r11,%r12,1),%r11 + andnq %r10,%r8,%r12 + xorq %r15,%r13 + rorxq $14,%r8,%r14 + leaq (%r11,%r12,1),%r11 + xorq %r14,%r13 + movq %rax,%r15 + rorxq $39,%rax,%r12 + leaq (%r11,%r13,1),%r11 + xorq %rbx,%r15 + rorxq $34,%rax,%r14 + rorxq $28,%rax,%r13 + leaq (%rdx,%r11,1),%rdx + andq %r15,%rdi + xorq %r12,%r14 + xorq %rbx,%rdi + xorq %r13,%r14 + leaq (%r11,%rdi,1),%r11 + movq %r8,%r12 + addq 8+16(%rbp),%r10 + andq %rdx,%r12 + rorxq $41,%rdx,%r13 + rorxq $18,%rdx,%rdi + leaq (%r11,%r14,1),%r11 + leaq (%r10,%r12,1),%r10 + andnq %r9,%rdx,%r12 + xorq %rdi,%r13 + rorxq $14,%rdx,%r14 + leaq (%r10,%r12,1),%r10 + xorq %r14,%r13 + movq %r11,%rdi + rorxq $39,%r11,%r12 + leaq (%r10,%r13,1),%r10 + xorq %rax,%rdi + rorxq $34,%r11,%r14 + rorxq $28,%r11,%r13 + leaq (%rcx,%r10,1),%rcx + andq %rdi,%r15 + xorq %r12,%r14 + xorq %rax,%r15 + xorq %r13,%r14 + leaq (%r10,%r15,1),%r10 + movq %rdx,%r12 + addq 32+16(%rbp),%r9 + andq %rcx,%r12 + rorxq $41,%rcx,%r13 + rorxq $18,%rcx,%r15 + leaq (%r10,%r14,1),%r10 + leaq (%r9,%r12,1),%r9 + andnq %r8,%rcx,%r12 + xorq %r15,%r13 + rorxq $14,%rcx,%r14 + leaq (%r9,%r12,1),%r9 + xorq %r14,%r13 + movq %r10,%r15 + rorxq $39,%r10,%r12 + leaq (%r9,%r13,1),%r9 + xorq %r11,%r15 + rorxq $34,%r10,%r14 + rorxq $28,%r10,%r13 + leaq (%rbx,%r9,1),%rbx + andq %r15,%rdi + xorq %r12,%r14 + xorq %r11,%rdi + xorq %r13,%r14 + leaq (%r9,%rdi,1),%r9 + movq %rcx,%r12 + addq 40+16(%rbp),%r8 + andq %rbx,%r12 + rorxq $41,%rbx,%r13 + rorxq $18,%rbx,%rdi + leaq (%r9,%r14,1),%r9 + leaq (%r8,%r12,1),%r8 + andnq %rdx,%rbx,%r12 + xorq %rdi,%r13 + rorxq $14,%rbx,%r14 + leaq (%r8,%r12,1),%r8 + xorq %r14,%r13 + movq %r9,%rdi + rorxq $39,%r9,%r12 + leaq (%r8,%r13,1),%r8 + xorq %r10,%rdi + rorxq $34,%r9,%r14 + rorxq $28,%r9,%r13 + leaq (%rax,%r8,1),%rax + andq %rdi,%r15 + xorq %r12,%r14 + xorq %r10,%r15 + xorq %r13,%r14 + leaq (%r8,%r15,1),%r8 + movq %rbx,%r12 + addq 64+16(%rbp),%rdx + andq %rax,%r12 + rorxq $41,%rax,%r13 + rorxq $18,%rax,%r15 + leaq (%r8,%r14,1),%r8 + leaq (%rdx,%r12,1),%rdx + andnq %rcx,%rax,%r12 + xorq %r15,%r13 + rorxq $14,%rax,%r14 + leaq (%rdx,%r12,1),%rdx + xorq %r14,%r13 + movq %r8,%r15 + rorxq $39,%r8,%r12 + leaq (%rdx,%r13,1),%rdx + xorq %r9,%r15 + rorxq $34,%r8,%r14 + rorxq $28,%r8,%r13 + leaq (%r11,%rdx,1),%r11 + andq %r15,%rdi + xorq %r12,%r14 + xorq %r9,%rdi + xorq %r13,%r14 + leaq (%rdx,%rdi,1),%rdx + movq %rax,%r12 + addq 72+16(%rbp),%rcx + andq %r11,%r12 + rorxq $41,%r11,%r13 + rorxq $18,%r11,%rdi + leaq (%rdx,%r14,1),%rdx + leaq (%rcx,%r12,1),%rcx + andnq %rbx,%r11,%r12 + xorq %rdi,%r13 + rorxq $14,%r11,%r14 + leaq (%rcx,%r12,1),%rcx + xorq %r14,%r13 + movq %rdx,%rdi + rorxq $39,%rdx,%r12 + leaq (%rcx,%r13,1),%rcx + xorq %r8,%rdi + rorxq $34,%rdx,%r14 + rorxq $28,%rdx,%r13 + leaq (%r10,%rcx,1),%r10 + andq %rdi,%r15 + xorq %r12,%r14 + xorq %r8,%r15 + xorq %r13,%r14 + leaq (%rcx,%r15,1),%rcx + movq %r11,%r12 + addq 96+16(%rbp),%rbx + andq %r10,%r12 + rorxq $41,%r10,%r13 + rorxq $18,%r10,%r15 + leaq (%rcx,%r14,1),%rcx + leaq (%rbx,%r12,1),%rbx + andnq %rax,%r10,%r12 + xorq %r15,%r13 + rorxq $14,%r10,%r14 + leaq (%rbx,%r12,1),%rbx + xorq %r14,%r13 + movq %rcx,%r15 + rorxq $39,%rcx,%r12 + leaq (%rbx,%r13,1),%rbx + xorq %rdx,%r15 + rorxq $34,%rcx,%r14 + rorxq $28,%rcx,%r13 + leaq (%r9,%rbx,1),%r9 + andq %r15,%rdi + xorq %r12,%r14 + xorq %rdx,%rdi + xorq %r13,%r14 + leaq (%rbx,%rdi,1),%rbx + movq %r10,%r12 + addq 104+16(%rbp),%rax + andq %r9,%r12 + rorxq $41,%r9,%r13 + rorxq $18,%r9,%rdi + leaq (%rbx,%r14,1),%rbx + leaq (%rax,%r12,1),%rax + andnq %r11,%r9,%r12 + xorq %rdi,%r13 + rorxq $14,%r9,%r14 + leaq (%rax,%r12,1),%rax + xorq %r14,%r13 + movq %rbx,%rdi + rorxq $39,%rbx,%r12 + leaq (%rax,%r13,1),%rax + xorq %rcx,%rdi + rorxq $34,%rbx,%r14 + rorxq $28,%rbx,%r13 + leaq (%r8,%rax,1),%r8 + andq %rdi,%r15 + xorq %r12,%r14 + xorq %rcx,%r15 + xorq %r13,%r14 + leaq (%rax,%r15,1),%rax + movq %r9,%r12 + leaq -128(%rbp),%rbp + cmpq %rsp,%rbp + jae .Lower_avx2 + + movq 1280(%rsp),%rdi + addq %r14,%rax + + leaq 1152(%rsp),%rsp + +.cfi_escape 0x0f,0x06,0x77,0x98,0x01,0x06,0x23,0x08 + + addq 0(%rdi),%rax + addq 8(%rdi),%rbx + addq 16(%rdi),%rcx + addq 24(%rdi),%rdx + addq 32(%rdi),%r8 + addq 40(%rdi),%r9 + leaq 256(%rsi),%rsi + addq 48(%rdi),%r10 + movq %rsi,%r12 + addq 56(%rdi),%r11 + cmpq 128+16(%rsp),%rsi + + movq %rax,0(%rdi) + cmoveq %rsp,%r12 + movq %rbx,8(%rdi) + movq %rcx,16(%rdi) + movq %rdx,24(%rdi) + movq %r8,32(%rdi) + movq %r9,40(%rdi) + movq %r10,48(%rdi) + movq %r11,56(%rdi) + + jbe .Loop_avx2 + leaq (%rsp),%rbp + + +.cfi_escape 0x0f,0x06,0x76,0x98,0x01,0x06,0x23,0x08 + +.Ldone_avx2: + movq 152(%rbp),%rsi +.cfi_def_cfa %rsi,8 + vzeroupper + movq -48(%rsi),%r15 +.cfi_restore %r15 + movq -40(%rsi),%r14 +.cfi_restore %r14 + movq -32(%rsi),%r13 +.cfi_restore %r13 + movq -24(%rsi),%r12 +.cfi_restore %r12 + movq -16(%rsi),%rbp +.cfi_restore %rbp + movq -8(%rsi),%rbx +.cfi_restore %rbx + leaq (%rsi),%rsp +.cfi_def_cfa_register %rsp +.Lepilogue_avx2: + .byte 0xf3,0xc3 +.cfi_endproc +.size sha512_block_data_order_avx2,.-sha512_block_data_order_avx2 diff --git a/vere/ext/openssl/gen/linux-x86_64/crypto/whrlpool/wp-x86_64.s b/vere/ext/openssl/gen/linux-x86_64/crypto/whrlpool/wp-x86_64.s new file mode 100644 index 0000000..2c261f3 --- /dev/null +++ b/vere/ext/openssl/gen/linux-x86_64/crypto/whrlpool/wp-x86_64.s @@ -0,0 +1,879 @@ +.text + +.globl whirlpool_block +.type whirlpool_block,@function +.align 16 +whirlpool_block: +.cfi_startproc + movq %rsp,%rax +.cfi_def_cfa_register %rax + pushq %rbx +.cfi_offset %rbx,-16 + pushq %rbp +.cfi_offset %rbp,-24 + pushq %r12 +.cfi_offset %r12,-32 + pushq %r13 +.cfi_offset %r13,-40 + pushq %r14 +.cfi_offset %r14,-48 + pushq %r15 +.cfi_offset %r15,-56 + + subq $128+40,%rsp + andq $-64,%rsp + + leaq 128(%rsp),%r10 + movq %rdi,0(%r10) + movq %rsi,8(%r10) + movq %rdx,16(%r10) + movq %rax,32(%r10) +.cfi_escape 0x0f,0x06,0x77,0xa0,0x01,0x06,0x23,0x08 +.Lprologue: + + movq %r10,%rbx + leaq .Ltable(%rip),%rbp + + xorq %rcx,%rcx + xorq %rdx,%rdx + movq 0(%rdi),%r8 + movq 8(%rdi),%r9 + movq 16(%rdi),%r10 + movq 24(%rdi),%r11 + movq 32(%rdi),%r12 + movq 40(%rdi),%r13 + movq 48(%rdi),%r14 + movq 56(%rdi),%r15 +.Louterloop: + movq %r8,0(%rsp) + movq %r9,8(%rsp) + movq %r10,16(%rsp) + movq %r11,24(%rsp) + movq %r12,32(%rsp) + movq %r13,40(%rsp) + movq %r14,48(%rsp) + movq %r15,56(%rsp) + xorq 0(%rsi),%r8 + xorq 8(%rsi),%r9 + xorq 16(%rsi),%r10 + xorq 24(%rsi),%r11 + xorq 32(%rsi),%r12 + xorq 40(%rsi),%r13 + xorq 48(%rsi),%r14 + xorq 56(%rsi),%r15 + movq %r8,64+0(%rsp) + movq %r9,64+8(%rsp) + movq %r10,64+16(%rsp) + movq %r11,64+24(%rsp) + movq %r12,64+32(%rsp) + movq %r13,64+40(%rsp) + movq %r14,64+48(%rsp) + movq %r15,64+56(%rsp) + xorq %rsi,%rsi + movq %rsi,24(%rbx) + jmp .Lround +.align 16 +.Lround: + movq 4096(%rbp,%rsi,8),%r8 + movl 0(%rsp),%eax + movl 4(%rsp),%ebx + movzbl %al,%ecx + movzbl %ah,%edx + shrl $16,%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 0(%rbp,%rsi,8),%r8 + movq 7(%rbp,%rdi,8),%r9 + movl 0+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + movq 6(%rbp,%rsi,8),%r10 + movq 5(%rbp,%rdi,8),%r11 + shrl $16,%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + movq 4(%rbp,%rsi,8),%r12 + movq 3(%rbp,%rdi,8),%r13 + movl 0+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + movq 2(%rbp,%rsi,8),%r14 + movq 1(%rbp,%rdi,8),%r15 + shrl $16,%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 0(%rbp,%rsi,8),%r9 + xorq 7(%rbp,%rdi,8),%r10 + movl 8+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 6(%rbp,%rsi,8),%r11 + xorq 5(%rbp,%rdi,8),%r12 + shrl $16,%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 4(%rbp,%rsi,8),%r13 + xorq 3(%rbp,%rdi,8),%r14 + movl 8+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 2(%rbp,%rsi,8),%r15 + xorq 1(%rbp,%rdi,8),%r8 + shrl $16,%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 0(%rbp,%rsi,8),%r10 + xorq 7(%rbp,%rdi,8),%r11 + movl 16+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 6(%rbp,%rsi,8),%r12 + xorq 5(%rbp,%rdi,8),%r13 + shrl $16,%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 4(%rbp,%rsi,8),%r14 + xorq 3(%rbp,%rdi,8),%r15 + movl 16+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 2(%rbp,%rsi,8),%r8 + xorq 1(%rbp,%rdi,8),%r9 + shrl $16,%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 0(%rbp,%rsi,8),%r11 + xorq 7(%rbp,%rdi,8),%r12 + movl 24+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 6(%rbp,%rsi,8),%r13 + xorq 5(%rbp,%rdi,8),%r14 + shrl $16,%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 4(%rbp,%rsi,8),%r15 + xorq 3(%rbp,%rdi,8),%r8 + movl 24+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 2(%rbp,%rsi,8),%r9 + xorq 1(%rbp,%rdi,8),%r10 + shrl $16,%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 0(%rbp,%rsi,8),%r12 + xorq 7(%rbp,%rdi,8),%r13 + movl 32+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 6(%rbp,%rsi,8),%r14 + xorq 5(%rbp,%rdi,8),%r15 + shrl $16,%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 4(%rbp,%rsi,8),%r8 + xorq 3(%rbp,%rdi,8),%r9 + movl 32+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 2(%rbp,%rsi,8),%r10 + xorq 1(%rbp,%rdi,8),%r11 + shrl $16,%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 0(%rbp,%rsi,8),%r13 + xorq 7(%rbp,%rdi,8),%r14 + movl 40+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 6(%rbp,%rsi,8),%r15 + xorq 5(%rbp,%rdi,8),%r8 + shrl $16,%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 4(%rbp,%rsi,8),%r9 + xorq 3(%rbp,%rdi,8),%r10 + movl 40+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 2(%rbp,%rsi,8),%r11 + xorq 1(%rbp,%rdi,8),%r12 + shrl $16,%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 0(%rbp,%rsi,8),%r14 + xorq 7(%rbp,%rdi,8),%r15 + movl 48+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 6(%rbp,%rsi,8),%r8 + xorq 5(%rbp,%rdi,8),%r9 + shrl $16,%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 4(%rbp,%rsi,8),%r10 + xorq 3(%rbp,%rdi,8),%r11 + movl 48+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 2(%rbp,%rsi,8),%r12 + xorq 1(%rbp,%rdi,8),%r13 + shrl $16,%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 0(%rbp,%rsi,8),%r15 + xorq 7(%rbp,%rdi,8),%r8 + movl 56+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 6(%rbp,%rsi,8),%r9 + xorq 5(%rbp,%rdi,8),%r10 + shrl $16,%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 4(%rbp,%rsi,8),%r11 + xorq 3(%rbp,%rdi,8),%r12 + movl 56+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 2(%rbp,%rsi,8),%r13 + xorq 1(%rbp,%rdi,8),%r14 + movq %r8,0(%rsp) + movq %r9,8(%rsp) + movq %r10,16(%rsp) + movq %r11,24(%rsp) + movq %r12,32(%rsp) + movq %r13,40(%rsp) + movq %r14,48(%rsp) + movq %r15,56(%rsp) + shrl $16,%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 0(%rbp,%rsi,8),%r8 + xorq 7(%rbp,%rdi,8),%r9 + movl 64+0+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 6(%rbp,%rsi,8),%r10 + xorq 5(%rbp,%rdi,8),%r11 + shrl $16,%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 4(%rbp,%rsi,8),%r12 + xorq 3(%rbp,%rdi,8),%r13 + movl 64+0+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 2(%rbp,%rsi,8),%r14 + xorq 1(%rbp,%rdi,8),%r15 + shrl $16,%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 0(%rbp,%rsi,8),%r9 + xorq 7(%rbp,%rdi,8),%r10 + movl 64+8+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 6(%rbp,%rsi,8),%r11 + xorq 5(%rbp,%rdi,8),%r12 + shrl $16,%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 4(%rbp,%rsi,8),%r13 + xorq 3(%rbp,%rdi,8),%r14 + movl 64+8+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 2(%rbp,%rsi,8),%r15 + xorq 1(%rbp,%rdi,8),%r8 + shrl $16,%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 0(%rbp,%rsi,8),%r10 + xorq 7(%rbp,%rdi,8),%r11 + movl 64+16+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 6(%rbp,%rsi,8),%r12 + xorq 5(%rbp,%rdi,8),%r13 + shrl $16,%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 4(%rbp,%rsi,8),%r14 + xorq 3(%rbp,%rdi,8),%r15 + movl 64+16+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 2(%rbp,%rsi,8),%r8 + xorq 1(%rbp,%rdi,8),%r9 + shrl $16,%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 0(%rbp,%rsi,8),%r11 + xorq 7(%rbp,%rdi,8),%r12 + movl 64+24+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 6(%rbp,%rsi,8),%r13 + xorq 5(%rbp,%rdi,8),%r14 + shrl $16,%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 4(%rbp,%rsi,8),%r15 + xorq 3(%rbp,%rdi,8),%r8 + movl 64+24+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 2(%rbp,%rsi,8),%r9 + xorq 1(%rbp,%rdi,8),%r10 + shrl $16,%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 0(%rbp,%rsi,8),%r12 + xorq 7(%rbp,%rdi,8),%r13 + movl 64+32+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 6(%rbp,%rsi,8),%r14 + xorq 5(%rbp,%rdi,8),%r15 + shrl $16,%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 4(%rbp,%rsi,8),%r8 + xorq 3(%rbp,%rdi,8),%r9 + movl 64+32+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 2(%rbp,%rsi,8),%r10 + xorq 1(%rbp,%rdi,8),%r11 + shrl $16,%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 0(%rbp,%rsi,8),%r13 + xorq 7(%rbp,%rdi,8),%r14 + movl 64+40+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 6(%rbp,%rsi,8),%r15 + xorq 5(%rbp,%rdi,8),%r8 + shrl $16,%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 4(%rbp,%rsi,8),%r9 + xorq 3(%rbp,%rdi,8),%r10 + movl 64+40+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 2(%rbp,%rsi,8),%r11 + xorq 1(%rbp,%rdi,8),%r12 + shrl $16,%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 0(%rbp,%rsi,8),%r14 + xorq 7(%rbp,%rdi,8),%r15 + movl 64+48+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 6(%rbp,%rsi,8),%r8 + xorq 5(%rbp,%rdi,8),%r9 + shrl $16,%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 4(%rbp,%rsi,8),%r10 + xorq 3(%rbp,%rdi,8),%r11 + movl 64+48+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 2(%rbp,%rsi,8),%r12 + xorq 1(%rbp,%rdi,8),%r13 + shrl $16,%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 0(%rbp,%rsi,8),%r15 + xorq 7(%rbp,%rdi,8),%r8 + + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 6(%rbp,%rsi,8),%r9 + xorq 5(%rbp,%rdi,8),%r10 + shrl $16,%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 4(%rbp,%rsi,8),%r11 + xorq 3(%rbp,%rdi,8),%r12 + + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 2(%rbp,%rsi,8),%r13 + xorq 1(%rbp,%rdi,8),%r14 + leaq 128(%rsp),%rbx + movq 24(%rbx),%rsi + addq $1,%rsi + cmpq $10,%rsi + je .Lroundsdone + + movq %rsi,24(%rbx) + movq %r8,64+0(%rsp) + movq %r9,64+8(%rsp) + movq %r10,64+16(%rsp) + movq %r11,64+24(%rsp) + movq %r12,64+32(%rsp) + movq %r13,64+40(%rsp) + movq %r14,64+48(%rsp) + movq %r15,64+56(%rsp) + jmp .Lround +.align 16 +.Lroundsdone: + movq 0(%rbx),%rdi + movq 8(%rbx),%rsi + movq 16(%rbx),%rax + xorq 0(%rsi),%r8 + xorq 8(%rsi),%r9 + xorq 16(%rsi),%r10 + xorq 24(%rsi),%r11 + xorq 32(%rsi),%r12 + xorq 40(%rsi),%r13 + xorq 48(%rsi),%r14 + xorq 56(%rsi),%r15 + xorq 0(%rdi),%r8 + xorq 8(%rdi),%r9 + xorq 16(%rdi),%r10 + xorq 24(%rdi),%r11 + xorq 32(%rdi),%r12 + xorq 40(%rdi),%r13 + xorq 48(%rdi),%r14 + xorq 56(%rdi),%r15 + movq %r8,0(%rdi) + movq %r9,8(%rdi) + movq %r10,16(%rdi) + movq %r11,24(%rdi) + movq %r12,32(%rdi) + movq %r13,40(%rdi) + movq %r14,48(%rdi) + movq %r15,56(%rdi) + leaq 64(%rsi),%rsi + subq $1,%rax + jz .Lalldone + movq %rsi,8(%rbx) + movq %rax,16(%rbx) + jmp .Louterloop +.Lalldone: + movq 32(%rbx),%rsi +.cfi_def_cfa %rsi,8 + movq -48(%rsi),%r15 +.cfi_restore %r15 + movq -40(%rsi),%r14 +.cfi_restore %r14 + movq -32(%rsi),%r13 +.cfi_restore %r13 + movq -24(%rsi),%r12 +.cfi_restore %r12 + movq -16(%rsi),%rbp +.cfi_restore %rbp + movq -8(%rsi),%rbx +.cfi_restore %rbx + leaq (%rsi),%rsp +.cfi_def_cfa_register %rsp +.Lepilogue: + .byte 0xf3,0xc3 +.cfi_endproc +.size whirlpool_block,.-whirlpool_block + +.align 64 +.type .Ltable,@object +.Ltable: +.byte 24,24,96,24,192,120,48,216,24,24,96,24,192,120,48,216 +.byte 35,35,140,35,5,175,70,38,35,35,140,35,5,175,70,38 +.byte 198,198,63,198,126,249,145,184,198,198,63,198,126,249,145,184 +.byte 232,232,135,232,19,111,205,251,232,232,135,232,19,111,205,251 +.byte 135,135,38,135,76,161,19,203,135,135,38,135,76,161,19,203 +.byte 184,184,218,184,169,98,109,17,184,184,218,184,169,98,109,17 +.byte 1,1,4,1,8,5,2,9,1,1,4,1,8,5,2,9 +.byte 79,79,33,79,66,110,158,13,79,79,33,79,66,110,158,13 +.byte 54,54,216,54,173,238,108,155,54,54,216,54,173,238,108,155 +.byte 166,166,162,166,89,4,81,255,166,166,162,166,89,4,81,255 +.byte 210,210,111,210,222,189,185,12,210,210,111,210,222,189,185,12 +.byte 245,245,243,245,251,6,247,14,245,245,243,245,251,6,247,14 +.byte 121,121,249,121,239,128,242,150,121,121,249,121,239,128,242,150 +.byte 111,111,161,111,95,206,222,48,111,111,161,111,95,206,222,48 +.byte 145,145,126,145,252,239,63,109,145,145,126,145,252,239,63,109 +.byte 82,82,85,82,170,7,164,248,82,82,85,82,170,7,164,248 +.byte 96,96,157,96,39,253,192,71,96,96,157,96,39,253,192,71 +.byte 188,188,202,188,137,118,101,53,188,188,202,188,137,118,101,53 +.byte 155,155,86,155,172,205,43,55,155,155,86,155,172,205,43,55 +.byte 142,142,2,142,4,140,1,138,142,142,2,142,4,140,1,138 +.byte 163,163,182,163,113,21,91,210,163,163,182,163,113,21,91,210 +.byte 12,12,48,12,96,60,24,108,12,12,48,12,96,60,24,108 +.byte 123,123,241,123,255,138,246,132,123,123,241,123,255,138,246,132 +.byte 53,53,212,53,181,225,106,128,53,53,212,53,181,225,106,128 +.byte 29,29,116,29,232,105,58,245,29,29,116,29,232,105,58,245 +.byte 224,224,167,224,83,71,221,179,224,224,167,224,83,71,221,179 +.byte 215,215,123,215,246,172,179,33,215,215,123,215,246,172,179,33 +.byte 194,194,47,194,94,237,153,156,194,194,47,194,94,237,153,156 +.byte 46,46,184,46,109,150,92,67,46,46,184,46,109,150,92,67 +.byte 75,75,49,75,98,122,150,41,75,75,49,75,98,122,150,41 +.byte 254,254,223,254,163,33,225,93,254,254,223,254,163,33,225,93 +.byte 87,87,65,87,130,22,174,213,87,87,65,87,130,22,174,213 +.byte 21,21,84,21,168,65,42,189,21,21,84,21,168,65,42,189 +.byte 119,119,193,119,159,182,238,232,119,119,193,119,159,182,238,232 +.byte 55,55,220,55,165,235,110,146,55,55,220,55,165,235,110,146 +.byte 229,229,179,229,123,86,215,158,229,229,179,229,123,86,215,158 +.byte 159,159,70,159,140,217,35,19,159,159,70,159,140,217,35,19 +.byte 240,240,231,240,211,23,253,35,240,240,231,240,211,23,253,35 +.byte 74,74,53,74,106,127,148,32,74,74,53,74,106,127,148,32 +.byte 218,218,79,218,158,149,169,68,218,218,79,218,158,149,169,68 +.byte 88,88,125,88,250,37,176,162,88,88,125,88,250,37,176,162 +.byte 201,201,3,201,6,202,143,207,201,201,3,201,6,202,143,207 +.byte 41,41,164,41,85,141,82,124,41,41,164,41,85,141,82,124 +.byte 10,10,40,10,80,34,20,90,10,10,40,10,80,34,20,90 +.byte 177,177,254,177,225,79,127,80,177,177,254,177,225,79,127,80 +.byte 160,160,186,160,105,26,93,201,160,160,186,160,105,26,93,201 +.byte 107,107,177,107,127,218,214,20,107,107,177,107,127,218,214,20 +.byte 133,133,46,133,92,171,23,217,133,133,46,133,92,171,23,217 +.byte 189,189,206,189,129,115,103,60,189,189,206,189,129,115,103,60 +.byte 93,93,105,93,210,52,186,143,93,93,105,93,210,52,186,143 +.byte 16,16,64,16,128,80,32,144,16,16,64,16,128,80,32,144 +.byte 244,244,247,244,243,3,245,7,244,244,247,244,243,3,245,7 +.byte 203,203,11,203,22,192,139,221,203,203,11,203,22,192,139,221 +.byte 62,62,248,62,237,198,124,211,62,62,248,62,237,198,124,211 +.byte 5,5,20,5,40,17,10,45,5,5,20,5,40,17,10,45 +.byte 103,103,129,103,31,230,206,120,103,103,129,103,31,230,206,120 +.byte 228,228,183,228,115,83,213,151,228,228,183,228,115,83,213,151 +.byte 39,39,156,39,37,187,78,2,39,39,156,39,37,187,78,2 +.byte 65,65,25,65,50,88,130,115,65,65,25,65,50,88,130,115 +.byte 139,139,22,139,44,157,11,167,139,139,22,139,44,157,11,167 +.byte 167,167,166,167,81,1,83,246,167,167,166,167,81,1,83,246 +.byte 125,125,233,125,207,148,250,178,125,125,233,125,207,148,250,178 +.byte 149,149,110,149,220,251,55,73,149,149,110,149,220,251,55,73 +.byte 216,216,71,216,142,159,173,86,216,216,71,216,142,159,173,86 +.byte 251,251,203,251,139,48,235,112,251,251,203,251,139,48,235,112 +.byte 238,238,159,238,35,113,193,205,238,238,159,238,35,113,193,205 +.byte 124,124,237,124,199,145,248,187,124,124,237,124,199,145,248,187 +.byte 102,102,133,102,23,227,204,113,102,102,133,102,23,227,204,113 +.byte 221,221,83,221,166,142,167,123,221,221,83,221,166,142,167,123 +.byte 23,23,92,23,184,75,46,175,23,23,92,23,184,75,46,175 +.byte 71,71,1,71,2,70,142,69,71,71,1,71,2,70,142,69 +.byte 158,158,66,158,132,220,33,26,158,158,66,158,132,220,33,26 +.byte 202,202,15,202,30,197,137,212,202,202,15,202,30,197,137,212 +.byte 45,45,180,45,117,153,90,88,45,45,180,45,117,153,90,88 +.byte 191,191,198,191,145,121,99,46,191,191,198,191,145,121,99,46 +.byte 7,7,28,7,56,27,14,63,7,7,28,7,56,27,14,63 +.byte 173,173,142,173,1,35,71,172,173,173,142,173,1,35,71,172 +.byte 90,90,117,90,234,47,180,176,90,90,117,90,234,47,180,176 +.byte 131,131,54,131,108,181,27,239,131,131,54,131,108,181,27,239 +.byte 51,51,204,51,133,255,102,182,51,51,204,51,133,255,102,182 +.byte 99,99,145,99,63,242,198,92,99,99,145,99,63,242,198,92 +.byte 2,2,8,2,16,10,4,18,2,2,8,2,16,10,4,18 +.byte 170,170,146,170,57,56,73,147,170,170,146,170,57,56,73,147 +.byte 113,113,217,113,175,168,226,222,113,113,217,113,175,168,226,222 +.byte 200,200,7,200,14,207,141,198,200,200,7,200,14,207,141,198 +.byte 25,25,100,25,200,125,50,209,25,25,100,25,200,125,50,209 +.byte 73,73,57,73,114,112,146,59,73,73,57,73,114,112,146,59 +.byte 217,217,67,217,134,154,175,95,217,217,67,217,134,154,175,95 +.byte 242,242,239,242,195,29,249,49,242,242,239,242,195,29,249,49 +.byte 227,227,171,227,75,72,219,168,227,227,171,227,75,72,219,168 +.byte 91,91,113,91,226,42,182,185,91,91,113,91,226,42,182,185 +.byte 136,136,26,136,52,146,13,188,136,136,26,136,52,146,13,188 +.byte 154,154,82,154,164,200,41,62,154,154,82,154,164,200,41,62 +.byte 38,38,152,38,45,190,76,11,38,38,152,38,45,190,76,11 +.byte 50,50,200,50,141,250,100,191,50,50,200,50,141,250,100,191 +.byte 176,176,250,176,233,74,125,89,176,176,250,176,233,74,125,89 +.byte 233,233,131,233,27,106,207,242,233,233,131,233,27,106,207,242 +.byte 15,15,60,15,120,51,30,119,15,15,60,15,120,51,30,119 +.byte 213,213,115,213,230,166,183,51,213,213,115,213,230,166,183,51 +.byte 128,128,58,128,116,186,29,244,128,128,58,128,116,186,29,244 +.byte 190,190,194,190,153,124,97,39,190,190,194,190,153,124,97,39 +.byte 205,205,19,205,38,222,135,235,205,205,19,205,38,222,135,235 +.byte 52,52,208,52,189,228,104,137,52,52,208,52,189,228,104,137 +.byte 72,72,61,72,122,117,144,50,72,72,61,72,122,117,144,50 +.byte 255,255,219,255,171,36,227,84,255,255,219,255,171,36,227,84 +.byte 122,122,245,122,247,143,244,141,122,122,245,122,247,143,244,141 +.byte 144,144,122,144,244,234,61,100,144,144,122,144,244,234,61,100 +.byte 95,95,97,95,194,62,190,157,95,95,97,95,194,62,190,157 +.byte 32,32,128,32,29,160,64,61,32,32,128,32,29,160,64,61 +.byte 104,104,189,104,103,213,208,15,104,104,189,104,103,213,208,15 +.byte 26,26,104,26,208,114,52,202,26,26,104,26,208,114,52,202 +.byte 174,174,130,174,25,44,65,183,174,174,130,174,25,44,65,183 +.byte 180,180,234,180,201,94,117,125,180,180,234,180,201,94,117,125 +.byte 84,84,77,84,154,25,168,206,84,84,77,84,154,25,168,206 +.byte 147,147,118,147,236,229,59,127,147,147,118,147,236,229,59,127 +.byte 34,34,136,34,13,170,68,47,34,34,136,34,13,170,68,47 +.byte 100,100,141,100,7,233,200,99,100,100,141,100,7,233,200,99 +.byte 241,241,227,241,219,18,255,42,241,241,227,241,219,18,255,42 +.byte 115,115,209,115,191,162,230,204,115,115,209,115,191,162,230,204 +.byte 18,18,72,18,144,90,36,130,18,18,72,18,144,90,36,130 +.byte 64,64,29,64,58,93,128,122,64,64,29,64,58,93,128,122 +.byte 8,8,32,8,64,40,16,72,8,8,32,8,64,40,16,72 +.byte 195,195,43,195,86,232,155,149,195,195,43,195,86,232,155,149 +.byte 236,236,151,236,51,123,197,223,236,236,151,236,51,123,197,223 +.byte 219,219,75,219,150,144,171,77,219,219,75,219,150,144,171,77 +.byte 161,161,190,161,97,31,95,192,161,161,190,161,97,31,95,192 +.byte 141,141,14,141,28,131,7,145,141,141,14,141,28,131,7,145 +.byte 61,61,244,61,245,201,122,200,61,61,244,61,245,201,122,200 +.byte 151,151,102,151,204,241,51,91,151,151,102,151,204,241,51,91 +.byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +.byte 207,207,27,207,54,212,131,249,207,207,27,207,54,212,131,249 +.byte 43,43,172,43,69,135,86,110,43,43,172,43,69,135,86,110 +.byte 118,118,197,118,151,179,236,225,118,118,197,118,151,179,236,225 +.byte 130,130,50,130,100,176,25,230,130,130,50,130,100,176,25,230 +.byte 214,214,127,214,254,169,177,40,214,214,127,214,254,169,177,40 +.byte 27,27,108,27,216,119,54,195,27,27,108,27,216,119,54,195 +.byte 181,181,238,181,193,91,119,116,181,181,238,181,193,91,119,116 +.byte 175,175,134,175,17,41,67,190,175,175,134,175,17,41,67,190 +.byte 106,106,181,106,119,223,212,29,106,106,181,106,119,223,212,29 +.byte 80,80,93,80,186,13,160,234,80,80,93,80,186,13,160,234 +.byte 69,69,9,69,18,76,138,87,69,69,9,69,18,76,138,87 +.byte 243,243,235,243,203,24,251,56,243,243,235,243,203,24,251,56 +.byte 48,48,192,48,157,240,96,173,48,48,192,48,157,240,96,173 +.byte 239,239,155,239,43,116,195,196,239,239,155,239,43,116,195,196 +.byte 63,63,252,63,229,195,126,218,63,63,252,63,229,195,126,218 +.byte 85,85,73,85,146,28,170,199,85,85,73,85,146,28,170,199 +.byte 162,162,178,162,121,16,89,219,162,162,178,162,121,16,89,219 +.byte 234,234,143,234,3,101,201,233,234,234,143,234,3,101,201,233 +.byte 101,101,137,101,15,236,202,106,101,101,137,101,15,236,202,106 +.byte 186,186,210,186,185,104,105,3,186,186,210,186,185,104,105,3 +.byte 47,47,188,47,101,147,94,74,47,47,188,47,101,147,94,74 +.byte 192,192,39,192,78,231,157,142,192,192,39,192,78,231,157,142 +.byte 222,222,95,222,190,129,161,96,222,222,95,222,190,129,161,96 +.byte 28,28,112,28,224,108,56,252,28,28,112,28,224,108,56,252 +.byte 253,253,211,253,187,46,231,70,253,253,211,253,187,46,231,70 +.byte 77,77,41,77,82,100,154,31,77,77,41,77,82,100,154,31 +.byte 146,146,114,146,228,224,57,118,146,146,114,146,228,224,57,118 +.byte 117,117,201,117,143,188,234,250,117,117,201,117,143,188,234,250 +.byte 6,6,24,6,48,30,12,54,6,6,24,6,48,30,12,54 +.byte 138,138,18,138,36,152,9,174,138,138,18,138,36,152,9,174 +.byte 178,178,242,178,249,64,121,75,178,178,242,178,249,64,121,75 +.byte 230,230,191,230,99,89,209,133,230,230,191,230,99,89,209,133 +.byte 14,14,56,14,112,54,28,126,14,14,56,14,112,54,28,126 +.byte 31,31,124,31,248,99,62,231,31,31,124,31,248,99,62,231 +.byte 98,98,149,98,55,247,196,85,98,98,149,98,55,247,196,85 +.byte 212,212,119,212,238,163,181,58,212,212,119,212,238,163,181,58 +.byte 168,168,154,168,41,50,77,129,168,168,154,168,41,50,77,129 +.byte 150,150,98,150,196,244,49,82,150,150,98,150,196,244,49,82 +.byte 249,249,195,249,155,58,239,98,249,249,195,249,155,58,239,98 +.byte 197,197,51,197,102,246,151,163,197,197,51,197,102,246,151,163 +.byte 37,37,148,37,53,177,74,16,37,37,148,37,53,177,74,16 +.byte 89,89,121,89,242,32,178,171,89,89,121,89,242,32,178,171 +.byte 132,132,42,132,84,174,21,208,132,132,42,132,84,174,21,208 +.byte 114,114,213,114,183,167,228,197,114,114,213,114,183,167,228,197 +.byte 57,57,228,57,213,221,114,236,57,57,228,57,213,221,114,236 +.byte 76,76,45,76,90,97,152,22,76,76,45,76,90,97,152,22 +.byte 94,94,101,94,202,59,188,148,94,94,101,94,202,59,188,148 +.byte 120,120,253,120,231,133,240,159,120,120,253,120,231,133,240,159 +.byte 56,56,224,56,221,216,112,229,56,56,224,56,221,216,112,229 +.byte 140,140,10,140,20,134,5,152,140,140,10,140,20,134,5,152 +.byte 209,209,99,209,198,178,191,23,209,209,99,209,198,178,191,23 +.byte 165,165,174,165,65,11,87,228,165,165,174,165,65,11,87,228 +.byte 226,226,175,226,67,77,217,161,226,226,175,226,67,77,217,161 +.byte 97,97,153,97,47,248,194,78,97,97,153,97,47,248,194,78 +.byte 179,179,246,179,241,69,123,66,179,179,246,179,241,69,123,66 +.byte 33,33,132,33,21,165,66,52,33,33,132,33,21,165,66,52 +.byte 156,156,74,156,148,214,37,8,156,156,74,156,148,214,37,8 +.byte 30,30,120,30,240,102,60,238,30,30,120,30,240,102,60,238 +.byte 67,67,17,67,34,82,134,97,67,67,17,67,34,82,134,97 +.byte 199,199,59,199,118,252,147,177,199,199,59,199,118,252,147,177 +.byte 252,252,215,252,179,43,229,79,252,252,215,252,179,43,229,79 +.byte 4,4,16,4,32,20,8,36,4,4,16,4,32,20,8,36 +.byte 81,81,89,81,178,8,162,227,81,81,89,81,178,8,162,227 +.byte 153,153,94,153,188,199,47,37,153,153,94,153,188,199,47,37 +.byte 109,109,169,109,79,196,218,34,109,109,169,109,79,196,218,34 +.byte 13,13,52,13,104,57,26,101,13,13,52,13,104,57,26,101 +.byte 250,250,207,250,131,53,233,121,250,250,207,250,131,53,233,121 +.byte 223,223,91,223,182,132,163,105,223,223,91,223,182,132,163,105 +.byte 126,126,229,126,215,155,252,169,126,126,229,126,215,155,252,169 +.byte 36,36,144,36,61,180,72,25,36,36,144,36,61,180,72,25 +.byte 59,59,236,59,197,215,118,254,59,59,236,59,197,215,118,254 +.byte 171,171,150,171,49,61,75,154,171,171,150,171,49,61,75,154 +.byte 206,206,31,206,62,209,129,240,206,206,31,206,62,209,129,240 +.byte 17,17,68,17,136,85,34,153,17,17,68,17,136,85,34,153 +.byte 143,143,6,143,12,137,3,131,143,143,6,143,12,137,3,131 +.byte 78,78,37,78,74,107,156,4,78,78,37,78,74,107,156,4 +.byte 183,183,230,183,209,81,115,102,183,183,230,183,209,81,115,102 +.byte 235,235,139,235,11,96,203,224,235,235,139,235,11,96,203,224 +.byte 60,60,240,60,253,204,120,193,60,60,240,60,253,204,120,193 +.byte 129,129,62,129,124,191,31,253,129,129,62,129,124,191,31,253 +.byte 148,148,106,148,212,254,53,64,148,148,106,148,212,254,53,64 +.byte 247,247,251,247,235,12,243,28,247,247,251,247,235,12,243,28 +.byte 185,185,222,185,161,103,111,24,185,185,222,185,161,103,111,24 +.byte 19,19,76,19,152,95,38,139,19,19,76,19,152,95,38,139 +.byte 44,44,176,44,125,156,88,81,44,44,176,44,125,156,88,81 +.byte 211,211,107,211,214,184,187,5,211,211,107,211,214,184,187,5 +.byte 231,231,187,231,107,92,211,140,231,231,187,231,107,92,211,140 +.byte 110,110,165,110,87,203,220,57,110,110,165,110,87,203,220,57 +.byte 196,196,55,196,110,243,149,170,196,196,55,196,110,243,149,170 +.byte 3,3,12,3,24,15,6,27,3,3,12,3,24,15,6,27 +.byte 86,86,69,86,138,19,172,220,86,86,69,86,138,19,172,220 +.byte 68,68,13,68,26,73,136,94,68,68,13,68,26,73,136,94 +.byte 127,127,225,127,223,158,254,160,127,127,225,127,223,158,254,160 +.byte 169,169,158,169,33,55,79,136,169,169,158,169,33,55,79,136 +.byte 42,42,168,42,77,130,84,103,42,42,168,42,77,130,84,103 +.byte 187,187,214,187,177,109,107,10,187,187,214,187,177,109,107,10 +.byte 193,193,35,193,70,226,159,135,193,193,35,193,70,226,159,135 +.byte 83,83,81,83,162,2,166,241,83,83,81,83,162,2,166,241 +.byte 220,220,87,220,174,139,165,114,220,220,87,220,174,139,165,114 +.byte 11,11,44,11,88,39,22,83,11,11,44,11,88,39,22,83 +.byte 157,157,78,157,156,211,39,1,157,157,78,157,156,211,39,1 +.byte 108,108,173,108,71,193,216,43,108,108,173,108,71,193,216,43 +.byte 49,49,196,49,149,245,98,164,49,49,196,49,149,245,98,164 +.byte 116,116,205,116,135,185,232,243,116,116,205,116,135,185,232,243 +.byte 246,246,255,246,227,9,241,21,246,246,255,246,227,9,241,21 +.byte 70,70,5,70,10,67,140,76,70,70,5,70,10,67,140,76 +.byte 172,172,138,172,9,38,69,165,172,172,138,172,9,38,69,165 +.byte 137,137,30,137,60,151,15,181,137,137,30,137,60,151,15,181 +.byte 20,20,80,20,160,68,40,180,20,20,80,20,160,68,40,180 +.byte 225,225,163,225,91,66,223,186,225,225,163,225,91,66,223,186 +.byte 22,22,88,22,176,78,44,166,22,22,88,22,176,78,44,166 +.byte 58,58,232,58,205,210,116,247,58,58,232,58,205,210,116,247 +.byte 105,105,185,105,111,208,210,6,105,105,185,105,111,208,210,6 +.byte 9,9,36,9,72,45,18,65,9,9,36,9,72,45,18,65 +.byte 112,112,221,112,167,173,224,215,112,112,221,112,167,173,224,215 +.byte 182,182,226,182,217,84,113,111,182,182,226,182,217,84,113,111 +.byte 208,208,103,208,206,183,189,30,208,208,103,208,206,183,189,30 +.byte 237,237,147,237,59,126,199,214,237,237,147,237,59,126,199,214 +.byte 204,204,23,204,46,219,133,226,204,204,23,204,46,219,133,226 +.byte 66,66,21,66,42,87,132,104,66,66,21,66,42,87,132,104 +.byte 152,152,90,152,180,194,45,44,152,152,90,152,180,194,45,44 +.byte 164,164,170,164,73,14,85,237,164,164,170,164,73,14,85,237 +.byte 40,40,160,40,93,136,80,117,40,40,160,40,93,136,80,117 +.byte 92,92,109,92,218,49,184,134,92,92,109,92,218,49,184,134 +.byte 248,248,199,248,147,63,237,107,248,248,199,248,147,63,237,107 +.byte 134,134,34,134,68,164,17,194,134,134,34,134,68,164,17,194 +.byte 24,35,198,232,135,184,1,79 +.byte 54,166,210,245,121,111,145,82 +.byte 96,188,155,142,163,12,123,53 +.byte 29,224,215,194,46,75,254,87 +.byte 21,119,55,229,159,240,74,218 +.byte 88,201,41,10,177,160,107,133 +.byte 189,93,16,244,203,62,5,103 +.byte 228,39,65,139,167,125,149,216 +.byte 251,238,124,102,221,23,71,158 +.byte 202,45,191,7,173,90,131,51 diff --git a/vere/ext/openssl/gen/linux-x86_64/crypto/x86_64cpuid.s b/vere/ext/openssl/gen/linux-x86_64/crypto/x86_64cpuid.s new file mode 100644 index 0000000..748e6d1 --- /dev/null +++ b/vere/ext/openssl/gen/linux-x86_64/crypto/x86_64cpuid.s @@ -0,0 +1,481 @@ + +.hidden OPENSSL_cpuid_setup +.section .init + call OPENSSL_cpuid_setup + +.hidden OPENSSL_ia32cap_P +.comm OPENSSL_ia32cap_P,16,4 + +.text + +.globl OPENSSL_atomic_add +.type OPENSSL_atomic_add,@function +.align 16 +OPENSSL_atomic_add: +.cfi_startproc + movl (%rdi),%eax +.Lspin: leaq (%rsi,%rax,1),%r8 +.byte 0xf0 + cmpxchgl %r8d,(%rdi) + jne .Lspin + movl %r8d,%eax +.byte 0x48,0x98 + .byte 0xf3,0xc3 +.cfi_endproc +.size OPENSSL_atomic_add,.-OPENSSL_atomic_add + +.globl OPENSSL_rdtsc +.type OPENSSL_rdtsc,@function +.align 16 +OPENSSL_rdtsc: +.cfi_startproc + rdtsc + shlq $32,%rdx + orq %rdx,%rax + .byte 0xf3,0xc3 +.cfi_endproc +.size OPENSSL_rdtsc,.-OPENSSL_rdtsc + +.globl OPENSSL_ia32_cpuid +.type OPENSSL_ia32_cpuid,@function +.align 16 +OPENSSL_ia32_cpuid: +.cfi_startproc + movq %rbx,%r8 +.cfi_register %rbx,%r8 + + xorl %eax,%eax + movq %rax,8(%rdi) + cpuid + movl %eax,%r11d + + xorl %eax,%eax + cmpl $0x756e6547,%ebx + setne %al + movl %eax,%r9d + cmpl $0x49656e69,%edx + setne %al + orl %eax,%r9d + cmpl $0x6c65746e,%ecx + setne %al + orl %eax,%r9d + jz .Lintel + + cmpl $0x68747541,%ebx + setne %al + movl %eax,%r10d + cmpl $0x69746E65,%edx + setne %al + orl %eax,%r10d + cmpl $0x444D4163,%ecx + setne %al + orl %eax,%r10d + jnz .Lintel + + + movl $0x80000000,%eax + cpuid + cmpl $0x80000001,%eax + jb .Lintel + movl %eax,%r10d + movl $0x80000001,%eax + cpuid + orl %ecx,%r9d + andl $0x00000801,%r9d + + cmpl $0x80000008,%r10d + jb .Lintel + + movl $0x80000008,%eax + cpuid + movzbq %cl,%r10 + incq %r10 + + movl $1,%eax + cpuid + btl $28,%edx + jnc .Lgeneric + shrl $16,%ebx + cmpb %r10b,%bl + ja .Lgeneric + andl $0xefffffff,%edx + jmp .Lgeneric + +.Lintel: + cmpl $4,%r11d + movl $-1,%r10d + jb .Lnocacheinfo + + movl $4,%eax + movl $0,%ecx + cpuid + movl %eax,%r10d + shrl $14,%r10d + andl $0xfff,%r10d + +.Lnocacheinfo: + movl $1,%eax + cpuid + movd %eax,%xmm0 + andl $0xbfefffff,%edx + cmpl $0,%r9d + jne .Lnotintel + orl $0x40000000,%edx + andb $15,%ah + cmpb $15,%ah + jne .LnotP4 + orl $0x00100000,%edx +.LnotP4: + cmpb $6,%ah + jne .Lnotintel + andl $0x0fff0ff0,%eax + cmpl $0x00050670,%eax + je .Lknights + cmpl $0x00080650,%eax + jne .Lnotintel +.Lknights: + andl $0xfbffffff,%ecx + +.Lnotintel: + btl $28,%edx + jnc .Lgeneric + andl $0xefffffff,%edx + cmpl $0,%r10d + je .Lgeneric + + orl $0x10000000,%edx + shrl $16,%ebx + cmpb $1,%bl + ja .Lgeneric + andl $0xefffffff,%edx +.Lgeneric: + andl $0x00000800,%r9d + andl $0xfffff7ff,%ecx + orl %ecx,%r9d + + movl %edx,%r10d + + cmpl $7,%r11d + jb .Lno_extended_info + movl $7,%eax + xorl %ecx,%ecx + cpuid + btl $26,%r9d + jc .Lnotknights + andl $0xfff7ffff,%ebx +.Lnotknights: + movd %xmm0,%eax + andl $0x0fff0ff0,%eax + cmpl $0x00050650,%eax + jne .Lnotskylakex + andl $0xfffeffff,%ebx + +.Lnotskylakex: + movl %ebx,8(%rdi) + movl %ecx,12(%rdi) +.Lno_extended_info: + + btl $27,%r9d + jnc .Lclear_avx + xorl %ecx,%ecx +.byte 0x0f,0x01,0xd0 + andl $0xe6,%eax + cmpl $0xe6,%eax + je .Ldone + andl $0x3fdeffff,8(%rdi) + + + + + andl $6,%eax + cmpl $6,%eax + je .Ldone +.Lclear_avx: + movl $0xefffe7ff,%eax + andl %eax,%r9d + movl $0x3fdeffdf,%eax + andl %eax,8(%rdi) +.Ldone: + shlq $32,%r9 + movl %r10d,%eax + movq %r8,%rbx +.cfi_restore %rbx + orq %r9,%rax + .byte 0xf3,0xc3 +.cfi_endproc +.size OPENSSL_ia32_cpuid,.-OPENSSL_ia32_cpuid + +.globl OPENSSL_cleanse +.type OPENSSL_cleanse,@function +.align 16 +OPENSSL_cleanse: +.cfi_startproc + xorq %rax,%rax + cmpq $15,%rsi + jae .Lot + cmpq $0,%rsi + je .Lret +.Little: + movb %al,(%rdi) + subq $1,%rsi + leaq 1(%rdi),%rdi + jnz .Little +.Lret: + .byte 0xf3,0xc3 +.align 16 +.Lot: + testq $7,%rdi + jz .Laligned + movb %al,(%rdi) + leaq -1(%rsi),%rsi + leaq 1(%rdi),%rdi + jmp .Lot +.Laligned: + movq %rax,(%rdi) + leaq -8(%rsi),%rsi + testq $-8,%rsi + leaq 8(%rdi),%rdi + jnz .Laligned + cmpq $0,%rsi + jne .Little + .byte 0xf3,0xc3 +.cfi_endproc +.size OPENSSL_cleanse,.-OPENSSL_cleanse + +.globl CRYPTO_memcmp +.type CRYPTO_memcmp,@function +.align 16 +CRYPTO_memcmp: +.cfi_startproc + xorq %rax,%rax + xorq %r10,%r10 + cmpq $0,%rdx + je .Lno_data + cmpq $16,%rdx + jne .Loop_cmp + movq (%rdi),%r10 + movq 8(%rdi),%r11 + movq $1,%rdx + xorq (%rsi),%r10 + xorq 8(%rsi),%r11 + orq %r11,%r10 + cmovnzq %rdx,%rax + .byte 0xf3,0xc3 + +.align 16 +.Loop_cmp: + movb (%rdi),%r10b + leaq 1(%rdi),%rdi + xorb (%rsi),%r10b + leaq 1(%rsi),%rsi + orb %r10b,%al + decq %rdx + jnz .Loop_cmp + negq %rax + shrq $63,%rax +.Lno_data: + .byte 0xf3,0xc3 +.cfi_endproc +.size CRYPTO_memcmp,.-CRYPTO_memcmp +.globl OPENSSL_wipe_cpu +.type OPENSSL_wipe_cpu,@function +.align 16 +OPENSSL_wipe_cpu: +.cfi_startproc + pxor %xmm0,%xmm0 + pxor %xmm1,%xmm1 + pxor %xmm2,%xmm2 + pxor %xmm3,%xmm3 + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + pxor %xmm6,%xmm6 + pxor %xmm7,%xmm7 + pxor %xmm8,%xmm8 + pxor %xmm9,%xmm9 + pxor %xmm10,%xmm10 + pxor %xmm11,%xmm11 + pxor %xmm12,%xmm12 + pxor %xmm13,%xmm13 + pxor %xmm14,%xmm14 + pxor %xmm15,%xmm15 + xorq %rcx,%rcx + xorq %rdx,%rdx + xorq %rsi,%rsi + xorq %rdi,%rdi + xorq %r8,%r8 + xorq %r9,%r9 + xorq %r10,%r10 + xorq %r11,%r11 + leaq 8(%rsp),%rax + .byte 0xf3,0xc3 +.cfi_endproc +.size OPENSSL_wipe_cpu,.-OPENSSL_wipe_cpu +.globl OPENSSL_instrument_bus +.type OPENSSL_instrument_bus,@function +.align 16 +OPENSSL_instrument_bus: +.cfi_startproc + movq %rdi,%r10 + movq %rsi,%rcx + movq %rsi,%r11 + + rdtsc + movl %eax,%r8d + movl $0,%r9d + clflush (%r10) +.byte 0xf0 + addl %r9d,(%r10) + jmp .Loop +.align 16 +.Loop: rdtsc + movl %eax,%edx + subl %r8d,%eax + movl %edx,%r8d + movl %eax,%r9d + clflush (%r10) +.byte 0xf0 + addl %eax,(%r10) + leaq 4(%r10),%r10 + subq $1,%rcx + jnz .Loop + + movq %r11,%rax + .byte 0xf3,0xc3 +.cfi_endproc +.size OPENSSL_instrument_bus,.-OPENSSL_instrument_bus + +.globl OPENSSL_instrument_bus2 +.type OPENSSL_instrument_bus2,@function +.align 16 +OPENSSL_instrument_bus2: +.cfi_startproc + movq %rdi,%r10 + movq %rsi,%rcx + movq %rdx,%r11 + movq %rcx,8(%rsp) + + rdtsc + movl %eax,%r8d + movl $0,%r9d + + clflush (%r10) +.byte 0xf0 + addl %r9d,(%r10) + + rdtsc + movl %eax,%edx + subl %r8d,%eax + movl %edx,%r8d + movl %eax,%r9d +.Loop2: + clflush (%r10) +.byte 0xf0 + addl %eax,(%r10) + + subq $1,%r11 + jz .Ldone2 + + rdtsc + movl %eax,%edx + subl %r8d,%eax + movl %edx,%r8d + cmpl %r9d,%eax + movl %eax,%r9d + movl $0,%edx + setne %dl + subq %rdx,%rcx + leaq (%r10,%rdx,4),%r10 + jnz .Loop2 + +.Ldone2: + movq 8(%rsp),%rax + subq %rcx,%rax + .byte 0xf3,0xc3 +.cfi_endproc +.size OPENSSL_instrument_bus2,.-OPENSSL_instrument_bus2 +.globl OPENSSL_ia32_rdrand_bytes +.type OPENSSL_ia32_rdrand_bytes,@function +.align 16 +OPENSSL_ia32_rdrand_bytes: +.cfi_startproc + xorq %rax,%rax + cmpq $0,%rsi + je .Ldone_rdrand_bytes + + movq $8,%r11 +.Loop_rdrand_bytes: +.byte 73,15,199,242 + jc .Lbreak_rdrand_bytes + decq %r11 + jnz .Loop_rdrand_bytes + jmp .Ldone_rdrand_bytes + +.align 16 +.Lbreak_rdrand_bytes: + cmpq $8,%rsi + jb .Ltail_rdrand_bytes + movq %r10,(%rdi) + leaq 8(%rdi),%rdi + addq $8,%rax + subq $8,%rsi + jz .Ldone_rdrand_bytes + movq $8,%r11 + jmp .Loop_rdrand_bytes + +.align 16 +.Ltail_rdrand_bytes: + movb %r10b,(%rdi) + leaq 1(%rdi),%rdi + incq %rax + shrq $8,%r10 + decq %rsi + jnz .Ltail_rdrand_bytes + +.Ldone_rdrand_bytes: + xorq %r10,%r10 + .byte 0xf3,0xc3 +.cfi_endproc +.size OPENSSL_ia32_rdrand_bytes,.-OPENSSL_ia32_rdrand_bytes +.globl OPENSSL_ia32_rdseed_bytes +.type OPENSSL_ia32_rdseed_bytes,@function +.align 16 +OPENSSL_ia32_rdseed_bytes: +.cfi_startproc + xorq %rax,%rax + cmpq $0,%rsi + je .Ldone_rdseed_bytes + + movq $8,%r11 +.Loop_rdseed_bytes: +.byte 73,15,199,250 + jc .Lbreak_rdseed_bytes + decq %r11 + jnz .Loop_rdseed_bytes + jmp .Ldone_rdseed_bytes + +.align 16 +.Lbreak_rdseed_bytes: + cmpq $8,%rsi + jb .Ltail_rdseed_bytes + movq %r10,(%rdi) + leaq 8(%rdi),%rdi + addq $8,%rax + subq $8,%rsi + jz .Ldone_rdseed_bytes + movq $8,%r11 + jmp .Loop_rdseed_bytes + +.align 16 +.Ltail_rdseed_bytes: + movb %r10b,(%rdi) + leaq 1(%rdi),%rdi + incq %rax + shrq $8,%r10 + decq %rsi + jnz .Ltail_rdseed_bytes + +.Ldone_rdseed_bytes: + xorq %r10,%r10 + .byte 0xf3,0xc3 +.cfi_endproc +.size OPENSSL_ia32_rdseed_bytes,.-OPENSSL_ia32_rdseed_bytes diff --git a/vere/ext/openssl/gen/linux-x86_64/engines/e_padlock-x86_64.s b/vere/ext/openssl/gen/linux-x86_64/engines/e_padlock-x86_64.s new file mode 100644 index 0000000..a4ce798 --- /dev/null +++ b/vere/ext/openssl/gen/linux-x86_64/engines/e_padlock-x86_64.s @@ -0,0 +1,1037 @@ +.text +.globl padlock_capability +.type padlock_capability,@function +.align 16 +padlock_capability: + movq %rbx,%r8 + xorl %eax,%eax + cpuid + xorl %eax,%eax + cmpl $0x746e6543,%ebx + jne .Lzhaoxin + cmpl $0x48727561,%edx + jne .Lnoluck + cmpl $0x736c7561,%ecx + jne .Lnoluck + jmp .LzhaoxinEnd +.Lzhaoxin: + cmpl $0x68532020,%ebx + jne .Lnoluck + cmpl $0x68676e61,%edx + jne .Lnoluck + cmpl $0x20206961,%ecx + jne .Lnoluck +.LzhaoxinEnd: + movl $0xC0000000,%eax + cpuid + movl %eax,%edx + xorl %eax,%eax + cmpl $0xC0000001,%edx + jb .Lnoluck + movl $0xC0000001,%eax + cpuid + movl %edx,%eax + andl $0xffffffef,%eax + orl $0x10,%eax +.Lnoluck: + movq %r8,%rbx + .byte 0xf3,0xc3 +.size padlock_capability,.-padlock_capability + +.globl padlock_key_bswap +.type padlock_key_bswap,@function +.align 16 +padlock_key_bswap: + movl 240(%rdi),%edx + incl %edx + shll $2,%edx +.Lbswap_loop: + movl (%rdi),%eax + bswapl %eax + movl %eax,(%rdi) + leaq 4(%rdi),%rdi + subl $1,%edx + jnz .Lbswap_loop + .byte 0xf3,0xc3 +.size padlock_key_bswap,.-padlock_key_bswap + +.globl padlock_verify_context +.type padlock_verify_context,@function +.align 16 +padlock_verify_context: + movq %rdi,%rdx + pushf + leaq .Lpadlock_saved_context(%rip),%rax + call _padlock_verify_ctx + leaq 8(%rsp),%rsp + .byte 0xf3,0xc3 +.size padlock_verify_context,.-padlock_verify_context + +.type _padlock_verify_ctx,@function +.align 16 +_padlock_verify_ctx: + movq 8(%rsp),%r8 + btq $30,%r8 + jnc .Lverified + cmpq (%rax),%rdx + je .Lverified + pushf + popf +.Lverified: + movq %rdx,(%rax) + .byte 0xf3,0xc3 +.size _padlock_verify_ctx,.-_padlock_verify_ctx + +.globl padlock_reload_key +.type padlock_reload_key,@function +.align 16 +padlock_reload_key: + pushf + popf + .byte 0xf3,0xc3 +.size padlock_reload_key,.-padlock_reload_key + +.globl padlock_aes_block +.type padlock_aes_block,@function +.align 16 +padlock_aes_block: + movq %rbx,%r8 + movq $1,%rcx + leaq 32(%rdx),%rbx + leaq 16(%rdx),%rdx +.byte 0xf3,0x0f,0xa7,0xc8 + movq %r8,%rbx + .byte 0xf3,0xc3 +.size padlock_aes_block,.-padlock_aes_block + +.globl padlock_xstore +.type padlock_xstore,@function +.align 16 +padlock_xstore: + movl %esi,%edx +.byte 0x0f,0xa7,0xc0 + .byte 0xf3,0xc3 +.size padlock_xstore,.-padlock_xstore + +.globl padlock_sha1_oneshot +.type padlock_sha1_oneshot,@function +.align 16 +padlock_sha1_oneshot: + movq %rdx,%rcx + movq %rdi,%rdx + movups (%rdi),%xmm0 + subq $128+8,%rsp + movl 16(%rdi),%eax + movaps %xmm0,(%rsp) + movq %rsp,%rdi + movl %eax,16(%rsp) + xorq %rax,%rax +.byte 0xf3,0x0f,0xa6,0xc8 + movaps (%rsp),%xmm0 + movl 16(%rsp),%eax + addq $128+8,%rsp + movups %xmm0,(%rdx) + movl %eax,16(%rdx) + .byte 0xf3,0xc3 +.size padlock_sha1_oneshot,.-padlock_sha1_oneshot + +.globl padlock_sha1_blocks +.type padlock_sha1_blocks,@function +.align 16 +padlock_sha1_blocks: + movq %rdx,%rcx + movq %rdi,%rdx + movups (%rdi),%xmm0 + subq $128+8,%rsp + movl 16(%rdi),%eax + movaps %xmm0,(%rsp) + movq %rsp,%rdi + movl %eax,16(%rsp) + movq $-1,%rax +.byte 0xf3,0x0f,0xa6,0xc8 + movaps (%rsp),%xmm0 + movl 16(%rsp),%eax + addq $128+8,%rsp + movups %xmm0,(%rdx) + movl %eax,16(%rdx) + .byte 0xf3,0xc3 +.size padlock_sha1_blocks,.-padlock_sha1_blocks + +.globl padlock_sha256_oneshot +.type padlock_sha256_oneshot,@function +.align 16 +padlock_sha256_oneshot: + movq %rdx,%rcx + movq %rdi,%rdx + movups (%rdi),%xmm0 + subq $128+8,%rsp + movups 16(%rdi),%xmm1 + movaps %xmm0,(%rsp) + movq %rsp,%rdi + movaps %xmm1,16(%rsp) + xorq %rax,%rax +.byte 0xf3,0x0f,0xa6,0xd0 + movaps (%rsp),%xmm0 + movaps 16(%rsp),%xmm1 + addq $128+8,%rsp + movups %xmm0,(%rdx) + movups %xmm1,16(%rdx) + .byte 0xf3,0xc3 +.size padlock_sha256_oneshot,.-padlock_sha256_oneshot + +.globl padlock_sha256_blocks +.type padlock_sha256_blocks,@function +.align 16 +padlock_sha256_blocks: + movq %rdx,%rcx + movq %rdi,%rdx + movups (%rdi),%xmm0 + subq $128+8,%rsp + movups 16(%rdi),%xmm1 + movaps %xmm0,(%rsp) + movq %rsp,%rdi + movaps %xmm1,16(%rsp) + movq $-1,%rax +.byte 0xf3,0x0f,0xa6,0xd0 + movaps (%rsp),%xmm0 + movaps 16(%rsp),%xmm1 + addq $128+8,%rsp + movups %xmm0,(%rdx) + movups %xmm1,16(%rdx) + .byte 0xf3,0xc3 +.size padlock_sha256_blocks,.-padlock_sha256_blocks + +.globl padlock_sha512_blocks +.type padlock_sha512_blocks,@function +.align 16 +padlock_sha512_blocks: + movq %rdx,%rcx + movq %rdi,%rdx + movups (%rdi),%xmm0 + subq $128+8,%rsp + movups 16(%rdi),%xmm1 + movups 32(%rdi),%xmm2 + movups 48(%rdi),%xmm3 + movaps %xmm0,(%rsp) + movq %rsp,%rdi + movaps %xmm1,16(%rsp) + movaps %xmm2,32(%rsp) + movaps %xmm3,48(%rsp) +.byte 0xf3,0x0f,0xa6,0xe0 + movaps (%rsp),%xmm0 + movaps 16(%rsp),%xmm1 + movaps 32(%rsp),%xmm2 + movaps 48(%rsp),%xmm3 + addq $128+8,%rsp + movups %xmm0,(%rdx) + movups %xmm1,16(%rdx) + movups %xmm2,32(%rdx) + movups %xmm3,48(%rdx) + .byte 0xf3,0xc3 +.size padlock_sha512_blocks,.-padlock_sha512_blocks +.globl padlock_ecb_encrypt +.type padlock_ecb_encrypt,@function +.align 16 +padlock_ecb_encrypt: + pushq %rbp + pushq %rbx + + xorl %eax,%eax + testq $15,%rdx + jnz .Lecb_abort + testq $15,%rcx + jnz .Lecb_abort + leaq .Lpadlock_saved_context(%rip),%rax + pushf + cld + call _padlock_verify_ctx + leaq 16(%rdx),%rdx + xorl %eax,%eax + xorl %ebx,%ebx + testl $32,(%rdx) + jnz .Lecb_aligned + testq $0x0f,%rdi + setz %al + testq $0x0f,%rsi + setz %bl + testl %ebx,%eax + jnz .Lecb_aligned + negq %rax + movq $512,%rbx + notq %rax + leaq (%rsp),%rbp + cmpq %rbx,%rcx + cmovcq %rcx,%rbx + andq %rbx,%rax + movq %rcx,%rbx + negq %rax + andq $512-1,%rbx + leaq (%rax,%rbp,1),%rsp + movq $512,%rax + cmovzq %rax,%rbx + cmpq %rbx,%rcx + ja .Lecb_loop + movq %rsi,%rax + cmpq %rsp,%rbp + cmoveq %rdi,%rax + addq %rcx,%rax + negq %rax + andq $0xfff,%rax + cmpq $128,%rax + movq $-128,%rax + cmovaeq %rbx,%rax + andq %rax,%rbx + jz .Lecb_unaligned_tail + jmp .Lecb_loop +.align 16 +.Lecb_loop: + cmpq %rcx,%rbx + cmovaq %rcx,%rbx + movq %rdi,%r8 + movq %rsi,%r9 + movq %rcx,%r10 + movq %rbx,%rcx + movq %rbx,%r11 + testq $0x0f,%rdi + cmovnzq %rsp,%rdi + testq $0x0f,%rsi + jz .Lecb_inp_aligned + shrq $3,%rcx +.byte 0xf3,0x48,0xa5 + subq %rbx,%rdi + movq %rbx,%rcx + movq %rdi,%rsi +.Lecb_inp_aligned: + leaq -16(%rdx),%rax + leaq 16(%rdx),%rbx + shrq $4,%rcx +.byte 0xf3,0x0f,0xa7,200 + movq %r8,%rdi + movq %r11,%rbx + testq $0x0f,%rdi + jz .Lecb_out_aligned + movq %rbx,%rcx + leaq (%rsp),%rsi + shrq $3,%rcx +.byte 0xf3,0x48,0xa5 + subq %rbx,%rdi +.Lecb_out_aligned: + movq %r9,%rsi + movq %r10,%rcx + addq %rbx,%rdi + addq %rbx,%rsi + subq %rbx,%rcx + movq $512,%rbx + jz .Lecb_break + cmpq %rbx,%rcx + jae .Lecb_loop +.Lecb_unaligned_tail: + xorl %eax,%eax + cmpq %rsp,%rbp + cmoveq %rcx,%rax + movq %rdi,%r8 + movq %rcx,%rbx + subq %rax,%rsp + shrq $3,%rcx + leaq (%rsp),%rdi +.byte 0xf3,0x48,0xa5 + movq %rsp,%rsi + movq %r8,%rdi + movq %rbx,%rcx + jmp .Lecb_loop +.align 16 +.Lecb_break: + cmpq %rbp,%rsp + je .Lecb_done + + pxor %xmm0,%xmm0 + leaq (%rsp),%rax +.Lecb_bzero: + movaps %xmm0,(%rax) + leaq 16(%rax),%rax + cmpq %rax,%rbp + ja .Lecb_bzero + +.Lecb_done: + leaq (%rbp),%rsp + jmp .Lecb_exit + +.align 16 +.Lecb_aligned: + leaq (%rsi,%rcx,1),%rbp + negq %rbp + andq $0xfff,%rbp + xorl %eax,%eax + cmpq $128,%rbp + movq $128-1,%rbp + cmovaeq %rax,%rbp + andq %rcx,%rbp + subq %rbp,%rcx + jz .Lecb_aligned_tail + leaq -16(%rdx),%rax + leaq 16(%rdx),%rbx + shrq $4,%rcx +.byte 0xf3,0x0f,0xa7,200 + testq %rbp,%rbp + jz .Lecb_exit + +.Lecb_aligned_tail: + movq %rdi,%r8 + movq %rbp,%rbx + movq %rbp,%rcx + leaq (%rsp),%rbp + subq %rcx,%rsp + shrq $3,%rcx + leaq (%rsp),%rdi +.byte 0xf3,0x48,0xa5 + leaq (%r8),%rdi + leaq (%rsp),%rsi + movq %rbx,%rcx + jmp .Lecb_loop +.Lecb_exit: + movl $1,%eax + leaq 8(%rsp),%rsp +.Lecb_abort: + popq %rbx + popq %rbp + .byte 0xf3,0xc3 +.size padlock_ecb_encrypt,.-padlock_ecb_encrypt +.globl padlock_cbc_encrypt +.type padlock_cbc_encrypt,@function +.align 16 +padlock_cbc_encrypt: + pushq %rbp + pushq %rbx + + xorl %eax,%eax + testq $15,%rdx + jnz .Lcbc_abort + testq $15,%rcx + jnz .Lcbc_abort + leaq .Lpadlock_saved_context(%rip),%rax + pushf + cld + call _padlock_verify_ctx + leaq 16(%rdx),%rdx + xorl %eax,%eax + xorl %ebx,%ebx + testl $32,(%rdx) + jnz .Lcbc_aligned + testq $0x0f,%rdi + setz %al + testq $0x0f,%rsi + setz %bl + testl %ebx,%eax + jnz .Lcbc_aligned + negq %rax + movq $512,%rbx + notq %rax + leaq (%rsp),%rbp + cmpq %rbx,%rcx + cmovcq %rcx,%rbx + andq %rbx,%rax + movq %rcx,%rbx + negq %rax + andq $512-1,%rbx + leaq (%rax,%rbp,1),%rsp + movq $512,%rax + cmovzq %rax,%rbx + cmpq %rbx,%rcx + ja .Lcbc_loop + movq %rsi,%rax + cmpq %rsp,%rbp + cmoveq %rdi,%rax + addq %rcx,%rax + negq %rax + andq $0xfff,%rax + cmpq $64,%rax + movq $-64,%rax + cmovaeq %rbx,%rax + andq %rax,%rbx + jz .Lcbc_unaligned_tail + jmp .Lcbc_loop +.align 16 +.Lcbc_loop: + cmpq %rcx,%rbx + cmovaq %rcx,%rbx + movq %rdi,%r8 + movq %rsi,%r9 + movq %rcx,%r10 + movq %rbx,%rcx + movq %rbx,%r11 + testq $0x0f,%rdi + cmovnzq %rsp,%rdi + testq $0x0f,%rsi + jz .Lcbc_inp_aligned + shrq $3,%rcx +.byte 0xf3,0x48,0xa5 + subq %rbx,%rdi + movq %rbx,%rcx + movq %rdi,%rsi +.Lcbc_inp_aligned: + leaq -16(%rdx),%rax + leaq 16(%rdx),%rbx + shrq $4,%rcx +.byte 0xf3,0x0f,0xa7,208 + movdqa (%rax),%xmm0 + movdqa %xmm0,-16(%rdx) + movq %r8,%rdi + movq %r11,%rbx + testq $0x0f,%rdi + jz .Lcbc_out_aligned + movq %rbx,%rcx + leaq (%rsp),%rsi + shrq $3,%rcx +.byte 0xf3,0x48,0xa5 + subq %rbx,%rdi +.Lcbc_out_aligned: + movq %r9,%rsi + movq %r10,%rcx + addq %rbx,%rdi + addq %rbx,%rsi + subq %rbx,%rcx + movq $512,%rbx + jz .Lcbc_break + cmpq %rbx,%rcx + jae .Lcbc_loop +.Lcbc_unaligned_tail: + xorl %eax,%eax + cmpq %rsp,%rbp + cmoveq %rcx,%rax + movq %rdi,%r8 + movq %rcx,%rbx + subq %rax,%rsp + shrq $3,%rcx + leaq (%rsp),%rdi +.byte 0xf3,0x48,0xa5 + movq %rsp,%rsi + movq %r8,%rdi + movq %rbx,%rcx + jmp .Lcbc_loop +.align 16 +.Lcbc_break: + cmpq %rbp,%rsp + je .Lcbc_done + + pxor %xmm0,%xmm0 + leaq (%rsp),%rax +.Lcbc_bzero: + movaps %xmm0,(%rax) + leaq 16(%rax),%rax + cmpq %rax,%rbp + ja .Lcbc_bzero + +.Lcbc_done: + leaq (%rbp),%rsp + jmp .Lcbc_exit + +.align 16 +.Lcbc_aligned: + leaq (%rsi,%rcx,1),%rbp + negq %rbp + andq $0xfff,%rbp + xorl %eax,%eax + cmpq $64,%rbp + movq $64-1,%rbp + cmovaeq %rax,%rbp + andq %rcx,%rbp + subq %rbp,%rcx + jz .Lcbc_aligned_tail + leaq -16(%rdx),%rax + leaq 16(%rdx),%rbx + shrq $4,%rcx +.byte 0xf3,0x0f,0xa7,208 + movdqa (%rax),%xmm0 + movdqa %xmm0,-16(%rdx) + testq %rbp,%rbp + jz .Lcbc_exit + +.Lcbc_aligned_tail: + movq %rdi,%r8 + movq %rbp,%rbx + movq %rbp,%rcx + leaq (%rsp),%rbp + subq %rcx,%rsp + shrq $3,%rcx + leaq (%rsp),%rdi +.byte 0xf3,0x48,0xa5 + leaq (%r8),%rdi + leaq (%rsp),%rsi + movq %rbx,%rcx + jmp .Lcbc_loop +.Lcbc_exit: + movl $1,%eax + leaq 8(%rsp),%rsp +.Lcbc_abort: + popq %rbx + popq %rbp + .byte 0xf3,0xc3 +.size padlock_cbc_encrypt,.-padlock_cbc_encrypt +.globl padlock_cfb_encrypt +.type padlock_cfb_encrypt,@function +.align 16 +padlock_cfb_encrypt: + pushq %rbp + pushq %rbx + + xorl %eax,%eax + testq $15,%rdx + jnz .Lcfb_abort + testq $15,%rcx + jnz .Lcfb_abort + leaq .Lpadlock_saved_context(%rip),%rax + pushf + cld + call _padlock_verify_ctx + leaq 16(%rdx),%rdx + xorl %eax,%eax + xorl %ebx,%ebx + testl $32,(%rdx) + jnz .Lcfb_aligned + testq $0x0f,%rdi + setz %al + testq $0x0f,%rsi + setz %bl + testl %ebx,%eax + jnz .Lcfb_aligned + negq %rax + movq $512,%rbx + notq %rax + leaq (%rsp),%rbp + cmpq %rbx,%rcx + cmovcq %rcx,%rbx + andq %rbx,%rax + movq %rcx,%rbx + negq %rax + andq $512-1,%rbx + leaq (%rax,%rbp,1),%rsp + movq $512,%rax + cmovzq %rax,%rbx + jmp .Lcfb_loop +.align 16 +.Lcfb_loop: + cmpq %rcx,%rbx + cmovaq %rcx,%rbx + movq %rdi,%r8 + movq %rsi,%r9 + movq %rcx,%r10 + movq %rbx,%rcx + movq %rbx,%r11 + testq $0x0f,%rdi + cmovnzq %rsp,%rdi + testq $0x0f,%rsi + jz .Lcfb_inp_aligned + shrq $3,%rcx +.byte 0xf3,0x48,0xa5 + subq %rbx,%rdi + movq %rbx,%rcx + movq %rdi,%rsi +.Lcfb_inp_aligned: + leaq -16(%rdx),%rax + leaq 16(%rdx),%rbx + shrq $4,%rcx +.byte 0xf3,0x0f,0xa7,224 + movdqa (%rax),%xmm0 + movdqa %xmm0,-16(%rdx) + movq %r8,%rdi + movq %r11,%rbx + testq $0x0f,%rdi + jz .Lcfb_out_aligned + movq %rbx,%rcx + leaq (%rsp),%rsi + shrq $3,%rcx +.byte 0xf3,0x48,0xa5 + subq %rbx,%rdi +.Lcfb_out_aligned: + movq %r9,%rsi + movq %r10,%rcx + addq %rbx,%rdi + addq %rbx,%rsi + subq %rbx,%rcx + movq $512,%rbx + jnz .Lcfb_loop + cmpq %rbp,%rsp + je .Lcfb_done + + pxor %xmm0,%xmm0 + leaq (%rsp),%rax +.Lcfb_bzero: + movaps %xmm0,(%rax) + leaq 16(%rax),%rax + cmpq %rax,%rbp + ja .Lcfb_bzero + +.Lcfb_done: + leaq (%rbp),%rsp + jmp .Lcfb_exit + +.align 16 +.Lcfb_aligned: + leaq -16(%rdx),%rax + leaq 16(%rdx),%rbx + shrq $4,%rcx +.byte 0xf3,0x0f,0xa7,224 + movdqa (%rax),%xmm0 + movdqa %xmm0,-16(%rdx) +.Lcfb_exit: + movl $1,%eax + leaq 8(%rsp),%rsp +.Lcfb_abort: + popq %rbx + popq %rbp + .byte 0xf3,0xc3 +.size padlock_cfb_encrypt,.-padlock_cfb_encrypt +.globl padlock_ofb_encrypt +.type padlock_ofb_encrypt,@function +.align 16 +padlock_ofb_encrypt: + pushq %rbp + pushq %rbx + + xorl %eax,%eax + testq $15,%rdx + jnz .Lofb_abort + testq $15,%rcx + jnz .Lofb_abort + leaq .Lpadlock_saved_context(%rip),%rax + pushf + cld + call _padlock_verify_ctx + leaq 16(%rdx),%rdx + xorl %eax,%eax + xorl %ebx,%ebx + testl $32,(%rdx) + jnz .Lofb_aligned + testq $0x0f,%rdi + setz %al + testq $0x0f,%rsi + setz %bl + testl %ebx,%eax + jnz .Lofb_aligned + negq %rax + movq $512,%rbx + notq %rax + leaq (%rsp),%rbp + cmpq %rbx,%rcx + cmovcq %rcx,%rbx + andq %rbx,%rax + movq %rcx,%rbx + negq %rax + andq $512-1,%rbx + leaq (%rax,%rbp,1),%rsp + movq $512,%rax + cmovzq %rax,%rbx + jmp .Lofb_loop +.align 16 +.Lofb_loop: + cmpq %rcx,%rbx + cmovaq %rcx,%rbx + movq %rdi,%r8 + movq %rsi,%r9 + movq %rcx,%r10 + movq %rbx,%rcx + movq %rbx,%r11 + testq $0x0f,%rdi + cmovnzq %rsp,%rdi + testq $0x0f,%rsi + jz .Lofb_inp_aligned + shrq $3,%rcx +.byte 0xf3,0x48,0xa5 + subq %rbx,%rdi + movq %rbx,%rcx + movq %rdi,%rsi +.Lofb_inp_aligned: + leaq -16(%rdx),%rax + leaq 16(%rdx),%rbx + shrq $4,%rcx +.byte 0xf3,0x0f,0xa7,232 + movdqa (%rax),%xmm0 + movdqa %xmm0,-16(%rdx) + movq %r8,%rdi + movq %r11,%rbx + testq $0x0f,%rdi + jz .Lofb_out_aligned + movq %rbx,%rcx + leaq (%rsp),%rsi + shrq $3,%rcx +.byte 0xf3,0x48,0xa5 + subq %rbx,%rdi +.Lofb_out_aligned: + movq %r9,%rsi + movq %r10,%rcx + addq %rbx,%rdi + addq %rbx,%rsi + subq %rbx,%rcx + movq $512,%rbx + jnz .Lofb_loop + cmpq %rbp,%rsp + je .Lofb_done + + pxor %xmm0,%xmm0 + leaq (%rsp),%rax +.Lofb_bzero: + movaps %xmm0,(%rax) + leaq 16(%rax),%rax + cmpq %rax,%rbp + ja .Lofb_bzero + +.Lofb_done: + leaq (%rbp),%rsp + jmp .Lofb_exit + +.align 16 +.Lofb_aligned: + leaq -16(%rdx),%rax + leaq 16(%rdx),%rbx + shrq $4,%rcx +.byte 0xf3,0x0f,0xa7,232 + movdqa (%rax),%xmm0 + movdqa %xmm0,-16(%rdx) +.Lofb_exit: + movl $1,%eax + leaq 8(%rsp),%rsp +.Lofb_abort: + popq %rbx + popq %rbp + .byte 0xf3,0xc3 +.size padlock_ofb_encrypt,.-padlock_ofb_encrypt +.globl padlock_ctr32_encrypt +.type padlock_ctr32_encrypt,@function +.align 16 +padlock_ctr32_encrypt: + pushq %rbp + pushq %rbx + + xorl %eax,%eax + testq $15,%rdx + jnz .Lctr32_abort + testq $15,%rcx + jnz .Lctr32_abort + leaq .Lpadlock_saved_context(%rip),%rax + pushf + cld + call _padlock_verify_ctx + leaq 16(%rdx),%rdx + xorl %eax,%eax + xorl %ebx,%ebx + testl $32,(%rdx) + jnz .Lctr32_aligned + testq $0x0f,%rdi + setz %al + testq $0x0f,%rsi + setz %bl + testl %ebx,%eax + jnz .Lctr32_aligned + negq %rax + movq $512,%rbx + notq %rax + leaq (%rsp),%rbp + cmpq %rbx,%rcx + cmovcq %rcx,%rbx + andq %rbx,%rax + movq %rcx,%rbx + negq %rax + andq $512-1,%rbx + leaq (%rax,%rbp,1),%rsp + movq $512,%rax + cmovzq %rax,%rbx +.Lctr32_reenter: + movl -4(%rdx),%eax + bswapl %eax + negl %eax + andl $31,%eax + movq $512,%rbx + shll $4,%eax + cmovzq %rbx,%rax + cmpq %rax,%rcx + cmovaq %rax,%rbx + cmovbeq %rcx,%rbx + cmpq %rbx,%rcx + ja .Lctr32_loop + movq %rsi,%rax + cmpq %rsp,%rbp + cmoveq %rdi,%rax + addq %rcx,%rax + negq %rax + andq $0xfff,%rax + cmpq $32,%rax + movq $-32,%rax + cmovaeq %rbx,%rax + andq %rax,%rbx + jz .Lctr32_unaligned_tail + jmp .Lctr32_loop +.align 16 +.Lctr32_loop: + cmpq %rcx,%rbx + cmovaq %rcx,%rbx + movq %rdi,%r8 + movq %rsi,%r9 + movq %rcx,%r10 + movq %rbx,%rcx + movq %rbx,%r11 + testq $0x0f,%rdi + cmovnzq %rsp,%rdi + testq $0x0f,%rsi + jz .Lctr32_inp_aligned + shrq $3,%rcx +.byte 0xf3,0x48,0xa5 + subq %rbx,%rdi + movq %rbx,%rcx + movq %rdi,%rsi +.Lctr32_inp_aligned: + leaq -16(%rdx),%rax + leaq 16(%rdx),%rbx + shrq $4,%rcx +.byte 0xf3,0x0f,0xa7,216 + movl -4(%rdx),%eax + testl $0xffff0000,%eax + jnz .Lctr32_no_carry + bswapl %eax + addl $0x10000,%eax + bswapl %eax + movl %eax,-4(%rdx) +.Lctr32_no_carry: + movq %r8,%rdi + movq %r11,%rbx + testq $0x0f,%rdi + jz .Lctr32_out_aligned + movq %rbx,%rcx + leaq (%rsp),%rsi + shrq $3,%rcx +.byte 0xf3,0x48,0xa5 + subq %rbx,%rdi +.Lctr32_out_aligned: + movq %r9,%rsi + movq %r10,%rcx + addq %rbx,%rdi + addq %rbx,%rsi + subq %rbx,%rcx + movq $512,%rbx + jz .Lctr32_break + cmpq %rbx,%rcx + jae .Lctr32_loop + movq %rcx,%rbx + movq %rsi,%rax + cmpq %rsp,%rbp + cmoveq %rdi,%rax + addq %rcx,%rax + negq %rax + andq $0xfff,%rax + cmpq $32,%rax + movq $-32,%rax + cmovaeq %rbx,%rax + andq %rax,%rbx + jnz .Lctr32_loop +.Lctr32_unaligned_tail: + xorl %eax,%eax + cmpq %rsp,%rbp + cmoveq %rcx,%rax + movq %rdi,%r8 + movq %rcx,%rbx + subq %rax,%rsp + shrq $3,%rcx + leaq (%rsp),%rdi +.byte 0xf3,0x48,0xa5 + movq %rsp,%rsi + movq %r8,%rdi + movq %rbx,%rcx + jmp .Lctr32_loop +.align 16 +.Lctr32_break: + cmpq %rbp,%rsp + je .Lctr32_done + + pxor %xmm0,%xmm0 + leaq (%rsp),%rax +.Lctr32_bzero: + movaps %xmm0,(%rax) + leaq 16(%rax),%rax + cmpq %rax,%rbp + ja .Lctr32_bzero + +.Lctr32_done: + leaq (%rbp),%rsp + jmp .Lctr32_exit + +.align 16 +.Lctr32_aligned: + movl -4(%rdx),%eax + bswapl %eax + negl %eax + andl $0xffff,%eax + movq $1048576,%rbx + shll $4,%eax + cmovzq %rbx,%rax + cmpq %rax,%rcx + cmovaq %rax,%rbx + cmovbeq %rcx,%rbx + jbe .Lctr32_aligned_skip + +.Lctr32_aligned_loop: + movq %rcx,%r10 + movq %rbx,%rcx + movq %rbx,%r11 + + leaq -16(%rdx),%rax + leaq 16(%rdx),%rbx + shrq $4,%rcx +.byte 0xf3,0x0f,0xa7,216 + + movl -4(%rdx),%eax + bswapl %eax + addl $0x10000,%eax + bswapl %eax + movl %eax,-4(%rdx) + + movq %r10,%rcx + subq %r11,%rcx + movq $1048576,%rbx + jz .Lctr32_exit + cmpq %rbx,%rcx + jae .Lctr32_aligned_loop + +.Lctr32_aligned_skip: + leaq (%rsi,%rcx,1),%rbp + negq %rbp + andq $0xfff,%rbp + xorl %eax,%eax + cmpq $32,%rbp + movq $32-1,%rbp + cmovaeq %rax,%rbp + andq %rcx,%rbp + subq %rbp,%rcx + jz .Lctr32_aligned_tail + leaq -16(%rdx),%rax + leaq 16(%rdx),%rbx + shrq $4,%rcx +.byte 0xf3,0x0f,0xa7,216 + testq %rbp,%rbp + jz .Lctr32_exit + +.Lctr32_aligned_tail: + movq %rdi,%r8 + movq %rbp,%rbx + movq %rbp,%rcx + leaq (%rsp),%rbp + subq %rcx,%rsp + shrq $3,%rcx + leaq (%rsp),%rdi +.byte 0xf3,0x48,0xa5 + leaq (%r8),%rdi + leaq (%rsp),%rsi + movq %rbx,%rcx + jmp .Lctr32_loop +.Lctr32_exit: + movl $1,%eax + leaq 8(%rsp),%rsp +.Lctr32_abort: + popq %rbx + popq %rbp + .byte 0xf3,0xc3 +.size padlock_ctr32_encrypt,.-padlock_ctr32_encrypt +.byte 86,73,65,32,80,97,100,108,111,99,107,32,120,56,54,95,54,52,32,109,111,100,117,108,101,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 16 +.data +.align 8 +.Lpadlock_saved_context: +.quad 0 diff --git a/vere/ext/openssl/gen/linux-x86_64/include/crypto/bn_conf.h b/vere/ext/openssl/gen/linux-x86_64/include/crypto/bn_conf.h new file mode 100644 index 0000000..5312ef5 --- /dev/null +++ b/vere/ext/openssl/gen/linux-x86_64/include/crypto/bn_conf.h @@ -0,0 +1,28 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from include/crypto/bn_conf.h.in */ +/* + * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef OSSL_CRYPTO_BN_CONF_H +# define OSSL_CRYPTO_BN_CONF_H + +/* + * The contents of this file are not used in the UEFI build, as + * both 32-bit and 64-bit builds are supported from a single run + * of the Configure script. + */ + +/* Should we define BN_DIV2W here? */ + +/* Only one for the following should be defined */ +#define SIXTY_FOUR_BIT_LONG +#undef SIXTY_FOUR_BIT +#undef THIRTY_TWO_BIT + +#endif diff --git a/vere/ext/openssl/gen/linux-x86_64/include/crypto/buildinf.h b/vere/ext/openssl/gen/linux-x86_64/include/crypto/buildinf.h new file mode 100644 index 0000000..3be275a --- /dev/null +++ b/vere/ext/openssl/gen/linux-x86_64/include/crypto/buildinf.h @@ -0,0 +1,45 @@ +/* + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: linux-x86_64" +#define DATE "built on: Thu Sep 19 13:34:57 2024 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a + * workaround for the situation where CFLAGS gets too long for a C90 string + * literal + */ +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','g','c','c',' ','-','f', + 'P','I','C',' ','-','p','t','h','r','e','a','d',' ','-','m','6', + '4',' ','-','W','a','l','l',' ','-','O','3',' ','-','D','O','P', + 'E','N','S','S','L','_','U','S','E','_','N','O','D','E','L','E', + 'T','E',' ','-','D','L','_','E','N','D','I','A','N',' ','-','D', + 'O','P','E','N','S','S','L','_','P','I','C',' ','-','D','O','P', + 'E','N','S','S','L','_','C','P','U','I','D','_','O','B','J',' ', + '-','D','O','P','E','N','S','S','L','_','I','A','3','2','_','S', + 'S','E','2',' ','-','D','O','P','E','N','S','S','L','_','B','N', + '_','A','S','M','_','M','O','N','T',' ','-','D','O','P','E','N', + 'S','S','L','_','B','N','_','A','S','M','_','M','O','N','T','5', + ' ','-','D','O','P','E','N','S','S','L','_','B','N','_','A','S', + 'M','_','G','F','2','m',' ','-','D','S','H','A','1','_','A','S', + 'M',' ','-','D','S','H','A','2','5','6','_','A','S','M',' ','-', + 'D','S','H','A','5','1','2','_','A','S','M',' ','-','D','K','E', + 'C','C','A','K','1','6','0','0','_','A','S','M',' ','-','D','R', + 'C','4','_','A','S','M',' ','-','D','M','D','5','_','A','S','M', + ' ','-','D','A','E','S','N','I','_','A','S','M',' ','-','D','V', + 'P','A','E','S','_','A','S','M',' ','-','D','G','H','A','S','H', + '_','A','S','M',' ','-','D','E','C','P','_','N','I','S','T','Z', + '2','5','6','_','A','S','M',' ','-','D','X','2','5','5','1','9', + '_','A','S','M',' ','-','D','P','O','L','Y','1','3','0','5','_', + 'A','S','M',' ','-','D','N','D','E','B','U','G','\0' +}; diff --git a/vere/ext/openssl/gen/linux-x86_64/include/crypto/dso_conf.h b/vere/ext/openssl/gen/linux-x86_64/include/crypto/dso_conf.h new file mode 100644 index 0000000..4b1167c --- /dev/null +++ b/vere/ext/openssl/gen/linux-x86_64/include/crypto/dso_conf.h @@ -0,0 +1,17 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from include/crypto/dso_conf.h.in */ +/* + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef OSSL_CRYPTO_DSO_CONF_H +# define OSSL_CRYPTO_DSO_CONF_H +# define DSO_DLFCN +# define HAVE_DLFCN_H +# define DSO_EXTENSION ".so" +#endif diff --git a/vere/ext/openssl/gen/linux-x86_64/include/openssl/opensslconf.h b/vere/ext/openssl/gen/linux-x86_64/include/openssl/opensslconf.h new file mode 100644 index 0000000..3b49d9c --- /dev/null +++ b/vere/ext/openssl/gen/linux-x86_64/include/openssl/opensslconf.h @@ -0,0 +1,197 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/opensslconf.h.in + * + * Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef OPENSSL_ALGORITHM_DEFINES +# error OPENSSL_ALGORITHM_DEFINES no longer supported +#endif + +/* + * OpenSSL was configured with the following options: + */ + +#ifndef OPENSSL_NO_MD2 +# define OPENSSL_NO_MD2 +#endif +#ifndef OPENSSL_NO_RC5 +# define OPENSSL_NO_RC5 +#endif +#ifndef OPENSSL_THREADS +# define OPENSSL_THREADS +#endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif +#ifndef OPENSSL_NO_ASAN +# define OPENSSL_NO_ASAN +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG +# define OPENSSL_NO_CRYPTO_MDEBUG +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +#endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif +#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +# define OPENSSL_NO_EC_NISTP_64_GCC_128 +#endif +#ifndef OPENSSL_NO_EGD +# define OPENSSL_NO_EGD +#endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif +#ifndef OPENSSL_NO_FUZZ_AFL +# define OPENSSL_NO_FUZZ_AFL +#endif +#ifndef OPENSSL_NO_FUZZ_LIBFUZZER +# define OPENSSL_NO_FUZZ_LIBFUZZER +#endif +#ifndef OPENSSL_NO_HEARTBEATS +# define OPENSSL_NO_HEARTBEATS +#endif +#ifndef OPENSSL_NO_MSAN +# define OPENSSL_NO_MSAN +#endif +#ifndef OPENSSL_NO_SCTP +# define OPENSSL_NO_SCTP +#endif +#ifndef OPENSSL_NO_SSL_TRACE +# define OPENSSL_NO_SSL_TRACE +#endif +#ifndef OPENSSL_NO_SSL3 +# define OPENSSL_NO_SSL3 +#endif +#ifndef OPENSSL_NO_SSL3_METHOD +# define OPENSSL_NO_SSL3_METHOD +#endif +#ifndef OPENSSL_NO_UBSAN +# define OPENSSL_NO_UBSAN +#endif +#ifndef OPENSSL_NO_UNIT_TEST +# define OPENSSL_NO_UNIT_TEST +#endif +#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS +# define OPENSSL_NO_WEAK_SSL_CIPHERS +#endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif + + +/* + * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers + * don't like that. This will hopefully silence them. + */ +#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; + +/* + * Applications should use -DOPENSSL_API_COMPAT= to suppress the + * declarations of functions deprecated in or before . Otherwise, they + * still won't see them if the library has been built to disable deprecated + * functions. + */ +#ifndef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# elif defined(__SUNPRO_C) +# if (__SUNPRO_C >= 0x5130) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +#endif + +#ifndef OPENSSL_FILE +# ifdef OPENSSL_NO_FILENAMES +# define OPENSSL_FILE "" +# define OPENSSL_LINE 0 +# else +# define OPENSSL_FILE __FILE__ +# define OPENSSL_LINE __LINE__ +# endif +#endif + +#ifndef OPENSSL_MIN_API +# define OPENSSL_MIN_API 0 +#endif + +#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API +# undef OPENSSL_API_COMPAT +# define OPENSSL_API_COMPAT OPENSSL_MIN_API +#endif + +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10100000L +# define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_1_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10000000L +# define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_0_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x00908000L +# define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_0_9_8(f) +#endif + +/* Generate 80386 code? */ +#undef I386_ONLY + +#undef OPENSSL_UNISTD +#define OPENSSL_UNISTD + +#undef OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* + * The following are cipher-specific, but are part of the public API. + */ +#if !defined(OPENSSL_SYS_UEFI) +# undef BN_LLONG +/* Only one for the following should be defined */ +# define SIXTY_FOUR_BIT_LONG +# undef SIXTY_FOUR_BIT +# undef THIRTY_TWO_BIT +#endif + +#define RC4_INT unsigned int + +#ifdef __cplusplus +} +#endif diff --git a/vere/ext/openssl/gen/macos-aarch64/crypto/aes/aesv8-armx.S b/vere/ext/openssl/gen/macos-aarch64/crypto/aes/aesv8-armx.S new file mode 100644 index 0000000..0176e12 --- /dev/null +++ b/vere/ext/openssl/gen/macos-aarch64/crypto/aes/aesv8-armx.S @@ -0,0 +1,757 @@ +#include "arm_arch.h" + +#if __ARM_MAX_ARCH__>=7 +.text + +.align 5 +Lrcon: +.long 0x01,0x01,0x01,0x01 +.long 0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d // rotate-n-splat +.long 0x1b,0x1b,0x1b,0x1b + +.globl _aes_v8_set_encrypt_key + +.align 5 +_aes_v8_set_encrypt_key: +Lenc_key: + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + mov x3,#-1 + cmp x0,#0 + b.eq Lenc_key_abort + cmp x2,#0 + b.eq Lenc_key_abort + mov x3,#-2 + cmp w1,#128 + b.lt Lenc_key_abort + cmp w1,#256 + b.gt Lenc_key_abort + tst w1,#0x3f + b.ne Lenc_key_abort + + adr x3,Lrcon + cmp w1,#192 + + eor v0.16b,v0.16b,v0.16b + ld1 {v3.16b},[x0],#16 + mov w1,#8 // reuse w1 + ld1 {v1.4s,v2.4s},[x3],#32 + + b.lt Loop128 + b.eq L192 + b L256 + +.align 4 +Loop128: + tbl v6.16b,{v3.16b},v2.16b + ext v5.16b,v0.16b,v3.16b,#12 + st1 {v3.4s},[x2],#16 + aese v6.16b,v0.16b + subs w1,w1,#1 + + eor v3.16b,v3.16b,v5.16b + ext v5.16b,v0.16b,v5.16b,#12 + eor v3.16b,v3.16b,v5.16b + ext v5.16b,v0.16b,v5.16b,#12 + eor v6.16b,v6.16b,v1.16b + eor v3.16b,v3.16b,v5.16b + shl v1.16b,v1.16b,#1 + eor v3.16b,v3.16b,v6.16b + b.ne Loop128 + + ld1 {v1.4s},[x3] + + tbl v6.16b,{v3.16b},v2.16b + ext v5.16b,v0.16b,v3.16b,#12 + st1 {v3.4s},[x2],#16 + aese v6.16b,v0.16b + + eor v3.16b,v3.16b,v5.16b + ext v5.16b,v0.16b,v5.16b,#12 + eor v3.16b,v3.16b,v5.16b + ext v5.16b,v0.16b,v5.16b,#12 + eor v6.16b,v6.16b,v1.16b + eor v3.16b,v3.16b,v5.16b + shl v1.16b,v1.16b,#1 + eor v3.16b,v3.16b,v6.16b + + tbl v6.16b,{v3.16b},v2.16b + ext v5.16b,v0.16b,v3.16b,#12 + st1 {v3.4s},[x2],#16 + aese v6.16b,v0.16b + + eor v3.16b,v3.16b,v5.16b + ext v5.16b,v0.16b,v5.16b,#12 + eor v3.16b,v3.16b,v5.16b + ext v5.16b,v0.16b,v5.16b,#12 + eor v6.16b,v6.16b,v1.16b + eor v3.16b,v3.16b,v5.16b + eor v3.16b,v3.16b,v6.16b + st1 {v3.4s},[x2] + add x2,x2,#0x50 + + mov w12,#10 + b Ldone + +.align 4 +L192: + ld1 {v4.8b},[x0],#8 + movi v6.16b,#8 // borrow v6.16b + st1 {v3.4s},[x2],#16 + sub v2.16b,v2.16b,v6.16b // adjust the mask + +Loop192: + tbl v6.16b,{v4.16b},v2.16b + ext v5.16b,v0.16b,v3.16b,#12 +#ifdef __ARMEB__ + st1 {v4.4s},[x2],#16 + sub x2,x2,#8 +#else + st1 {v4.8b},[x2],#8 +#endif + aese v6.16b,v0.16b + subs w1,w1,#1 + + eor v3.16b,v3.16b,v5.16b + ext v5.16b,v0.16b,v5.16b,#12 + eor v3.16b,v3.16b,v5.16b + ext v5.16b,v0.16b,v5.16b,#12 + eor v3.16b,v3.16b,v5.16b + + dup v5.4s,v3.s[3] + eor v5.16b,v5.16b,v4.16b + eor v6.16b,v6.16b,v1.16b + ext v4.16b,v0.16b,v4.16b,#12 + shl v1.16b,v1.16b,#1 + eor v4.16b,v4.16b,v5.16b + eor v3.16b,v3.16b,v6.16b + eor v4.16b,v4.16b,v6.16b + st1 {v3.4s},[x2],#16 + b.ne Loop192 + + mov w12,#12 + add x2,x2,#0x20 + b Ldone + +.align 4 +L256: + ld1 {v4.16b},[x0] + mov w1,#7 + mov w12,#14 + st1 {v3.4s},[x2],#16 + +Loop256: + tbl v6.16b,{v4.16b},v2.16b + ext v5.16b,v0.16b,v3.16b,#12 + st1 {v4.4s},[x2],#16 + aese v6.16b,v0.16b + subs w1,w1,#1 + + eor v3.16b,v3.16b,v5.16b + ext v5.16b,v0.16b,v5.16b,#12 + eor v3.16b,v3.16b,v5.16b + ext v5.16b,v0.16b,v5.16b,#12 + eor v6.16b,v6.16b,v1.16b + eor v3.16b,v3.16b,v5.16b + shl v1.16b,v1.16b,#1 + eor v3.16b,v3.16b,v6.16b + st1 {v3.4s},[x2],#16 + b.eq Ldone + + dup v6.4s,v3.s[3] // just splat + ext v5.16b,v0.16b,v4.16b,#12 + aese v6.16b,v0.16b + + eor v4.16b,v4.16b,v5.16b + ext v5.16b,v0.16b,v5.16b,#12 + eor v4.16b,v4.16b,v5.16b + ext v5.16b,v0.16b,v5.16b,#12 + eor v4.16b,v4.16b,v5.16b + + eor v4.16b,v4.16b,v6.16b + b Loop256 + +Ldone: + str w12,[x2] + mov x3,#0 + +Lenc_key_abort: + mov x0,x3 // return value + ldr x29,[sp],#16 + ret + + +.globl _aes_v8_set_decrypt_key + +.align 5 +_aes_v8_set_decrypt_key: +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + bl Lenc_key + + cmp x0,#0 + b.ne Ldec_key_abort + + sub x2,x2,#240 // restore original x2 + mov x4,#-16 + add x0,x2,x12,lsl#4 // end of key schedule + + ld1 {v0.4s},[x2] + ld1 {v1.4s},[x0] + st1 {v0.4s},[x0],x4 + st1 {v1.4s},[x2],#16 + +Loop_imc: + ld1 {v0.4s},[x2] + ld1 {v1.4s},[x0] + aesimc v0.16b,v0.16b + aesimc v1.16b,v1.16b + st1 {v0.4s},[x0],x4 + st1 {v1.4s},[x2],#16 + cmp x0,x2 + b.hi Loop_imc + + ld1 {v0.4s},[x2] + aesimc v0.16b,v0.16b + st1 {v0.4s},[x0] + + eor x0,x0,x0 // return value +Ldec_key_abort: + ldp x29,x30,[sp],#16 +.long 0xd50323bf // autiasp + ret + +.globl _aes_v8_encrypt + +.align 5 +_aes_v8_encrypt: + ldr w3,[x2,#240] + ld1 {v0.4s},[x2],#16 + ld1 {v2.16b},[x0] + sub w3,w3,#2 + ld1 {v1.4s},[x2],#16 + +Loop_enc: + aese v2.16b,v0.16b + aesmc v2.16b,v2.16b + ld1 {v0.4s},[x2],#16 + subs w3,w3,#2 + aese v2.16b,v1.16b + aesmc v2.16b,v2.16b + ld1 {v1.4s},[x2],#16 + b.gt Loop_enc + + aese v2.16b,v0.16b + aesmc v2.16b,v2.16b + ld1 {v0.4s},[x2] + aese v2.16b,v1.16b + eor v2.16b,v2.16b,v0.16b + + st1 {v2.16b},[x1] + ret + +.globl _aes_v8_decrypt + +.align 5 +_aes_v8_decrypt: + ldr w3,[x2,#240] + ld1 {v0.4s},[x2],#16 + ld1 {v2.16b},[x0] + sub w3,w3,#2 + ld1 {v1.4s},[x2],#16 + +Loop_dec: + aesd v2.16b,v0.16b + aesimc v2.16b,v2.16b + ld1 {v0.4s},[x2],#16 + subs w3,w3,#2 + aesd v2.16b,v1.16b + aesimc v2.16b,v2.16b + ld1 {v1.4s},[x2],#16 + b.gt Loop_dec + + aesd v2.16b,v0.16b + aesimc v2.16b,v2.16b + ld1 {v0.4s},[x2] + aesd v2.16b,v1.16b + eor v2.16b,v2.16b,v0.16b + + st1 {v2.16b},[x1] + ret + +.globl _aes_v8_cbc_encrypt + +.align 5 +_aes_v8_cbc_encrypt: + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + subs x2,x2,#16 + mov x8,#16 + b.lo Lcbc_abort + csel x8,xzr,x8,eq + + cmp w5,#0 // en- or decrypting? + ldr w5,[x3,#240] + and x2,x2,#-16 + ld1 {v6.16b},[x4] + ld1 {v0.16b},[x0],x8 + + ld1 {v16.4s,v17.4s},[x3] // load key schedule... + sub w5,w5,#6 + add x7,x3,x5,lsl#4 // pointer to last 7 round keys + sub w5,w5,#2 + ld1 {v18.4s,v19.4s},[x7],#32 + ld1 {v20.4s,v21.4s},[x7],#32 + ld1 {v22.4s,v23.4s},[x7],#32 + ld1 {v7.4s},[x7] + + add x7,x3,#32 + mov w6,w5 + b.eq Lcbc_dec + + cmp w5,#2 + eor v0.16b,v0.16b,v6.16b + eor v5.16b,v16.16b,v7.16b + b.eq Lcbc_enc128 + + ld1 {v2.4s,v3.4s},[x7] + add x7,x3,#16 + add x6,x3,#16*4 + add x12,x3,#16*5 + aese v0.16b,v16.16b + aesmc v0.16b,v0.16b + add x14,x3,#16*6 + add x3,x3,#16*7 + b Lenter_cbc_enc + +.align 4 +Loop_cbc_enc: + aese v0.16b,v16.16b + aesmc v0.16b,v0.16b + st1 {v6.16b},[x1],#16 +Lenter_cbc_enc: + aese v0.16b,v17.16b + aesmc v0.16b,v0.16b + aese v0.16b,v2.16b + aesmc v0.16b,v0.16b + ld1 {v16.4s},[x6] + cmp w5,#4 + aese v0.16b,v3.16b + aesmc v0.16b,v0.16b + ld1 {v17.4s},[x12] + b.eq Lcbc_enc192 + + aese v0.16b,v16.16b + aesmc v0.16b,v0.16b + ld1 {v16.4s},[x14] + aese v0.16b,v17.16b + aesmc v0.16b,v0.16b + ld1 {v17.4s},[x3] + nop + +Lcbc_enc192: + aese v0.16b,v16.16b + aesmc v0.16b,v0.16b + subs x2,x2,#16 + aese v0.16b,v17.16b + aesmc v0.16b,v0.16b + csel x8,xzr,x8,eq + aese v0.16b,v18.16b + aesmc v0.16b,v0.16b + aese v0.16b,v19.16b + aesmc v0.16b,v0.16b + ld1 {v16.16b},[x0],x8 + aese v0.16b,v20.16b + aesmc v0.16b,v0.16b + eor v16.16b,v16.16b,v5.16b + aese v0.16b,v21.16b + aesmc v0.16b,v0.16b + ld1 {v17.4s},[x7] // re-pre-load rndkey[1] + aese v0.16b,v22.16b + aesmc v0.16b,v0.16b + aese v0.16b,v23.16b + eor v6.16b,v0.16b,v7.16b + b.hs Loop_cbc_enc + + st1 {v6.16b},[x1],#16 + b Lcbc_done + +.align 5 +Lcbc_enc128: + ld1 {v2.4s,v3.4s},[x7] + aese v0.16b,v16.16b + aesmc v0.16b,v0.16b + b Lenter_cbc_enc128 +Loop_cbc_enc128: + aese v0.16b,v16.16b + aesmc v0.16b,v0.16b + st1 {v6.16b},[x1],#16 +Lenter_cbc_enc128: + aese v0.16b,v17.16b + aesmc v0.16b,v0.16b + subs x2,x2,#16 + aese v0.16b,v2.16b + aesmc v0.16b,v0.16b + csel x8,xzr,x8,eq + aese v0.16b,v3.16b + aesmc v0.16b,v0.16b + aese v0.16b,v18.16b + aesmc v0.16b,v0.16b + aese v0.16b,v19.16b + aesmc v0.16b,v0.16b + ld1 {v16.16b},[x0],x8 + aese v0.16b,v20.16b + aesmc v0.16b,v0.16b + aese v0.16b,v21.16b + aesmc v0.16b,v0.16b + aese v0.16b,v22.16b + aesmc v0.16b,v0.16b + eor v16.16b,v16.16b,v5.16b + aese v0.16b,v23.16b + eor v6.16b,v0.16b,v7.16b + b.hs Loop_cbc_enc128 + + st1 {v6.16b},[x1],#16 + b Lcbc_done +.align 5 +Lcbc_dec: + ld1 {v18.16b},[x0],#16 + subs x2,x2,#32 // bias + add w6,w5,#2 + orr v3.16b,v0.16b,v0.16b + orr v1.16b,v0.16b,v0.16b + orr v19.16b,v18.16b,v18.16b + b.lo Lcbc_dec_tail + + orr v1.16b,v18.16b,v18.16b + ld1 {v18.16b},[x0],#16 + orr v2.16b,v0.16b,v0.16b + orr v3.16b,v1.16b,v1.16b + orr v19.16b,v18.16b,v18.16b + +Loop3x_cbc_dec: + aesd v0.16b,v16.16b + aesimc v0.16b,v0.16b + aesd v1.16b,v16.16b + aesimc v1.16b,v1.16b + aesd v18.16b,v16.16b + aesimc v18.16b,v18.16b + ld1 {v16.4s},[x7],#16 + subs w6,w6,#2 + aesd v0.16b,v17.16b + aesimc v0.16b,v0.16b + aesd v1.16b,v17.16b + aesimc v1.16b,v1.16b + aesd v18.16b,v17.16b + aesimc v18.16b,v18.16b + ld1 {v17.4s},[x7],#16 + b.gt Loop3x_cbc_dec + + aesd v0.16b,v16.16b + aesimc v0.16b,v0.16b + aesd v1.16b,v16.16b + aesimc v1.16b,v1.16b + aesd v18.16b,v16.16b + aesimc v18.16b,v18.16b + eor v4.16b,v6.16b,v7.16b + subs x2,x2,#0x30 + eor v5.16b,v2.16b,v7.16b + csel x6,x2,x6,lo // x6, w6, is zero at this point + aesd v0.16b,v17.16b + aesimc v0.16b,v0.16b + aesd v1.16b,v17.16b + aesimc v1.16b,v1.16b + aesd v18.16b,v17.16b + aesimc v18.16b,v18.16b + eor v17.16b,v3.16b,v7.16b + add x0,x0,x6 // x0 is adjusted in such way that + // at exit from the loop v1.16b-v18.16b + // are loaded with last "words" + orr v6.16b,v19.16b,v19.16b + mov x7,x3 + aesd v0.16b,v20.16b + aesimc v0.16b,v0.16b + aesd v1.16b,v20.16b + aesimc v1.16b,v1.16b + aesd v18.16b,v20.16b + aesimc v18.16b,v18.16b + ld1 {v2.16b},[x0],#16 + aesd v0.16b,v21.16b + aesimc v0.16b,v0.16b + aesd v1.16b,v21.16b + aesimc v1.16b,v1.16b + aesd v18.16b,v21.16b + aesimc v18.16b,v18.16b + ld1 {v3.16b},[x0],#16 + aesd v0.16b,v22.16b + aesimc v0.16b,v0.16b + aesd v1.16b,v22.16b + aesimc v1.16b,v1.16b + aesd v18.16b,v22.16b + aesimc v18.16b,v18.16b + ld1 {v19.16b},[x0],#16 + aesd v0.16b,v23.16b + aesd v1.16b,v23.16b + aesd v18.16b,v23.16b + ld1 {v16.4s},[x7],#16 // re-pre-load rndkey[0] + add w6,w5,#2 + eor v4.16b,v4.16b,v0.16b + eor v5.16b,v5.16b,v1.16b + eor v18.16b,v18.16b,v17.16b + ld1 {v17.4s},[x7],#16 // re-pre-load rndkey[1] + st1 {v4.16b},[x1],#16 + orr v0.16b,v2.16b,v2.16b + st1 {v5.16b},[x1],#16 + orr v1.16b,v3.16b,v3.16b + st1 {v18.16b},[x1],#16 + orr v18.16b,v19.16b,v19.16b + b.hs Loop3x_cbc_dec + + cmn x2,#0x30 + b.eq Lcbc_done + nop + +Lcbc_dec_tail: + aesd v1.16b,v16.16b + aesimc v1.16b,v1.16b + aesd v18.16b,v16.16b + aesimc v18.16b,v18.16b + ld1 {v16.4s},[x7],#16 + subs w6,w6,#2 + aesd v1.16b,v17.16b + aesimc v1.16b,v1.16b + aesd v18.16b,v17.16b + aesimc v18.16b,v18.16b + ld1 {v17.4s},[x7],#16 + b.gt Lcbc_dec_tail + + aesd v1.16b,v16.16b + aesimc v1.16b,v1.16b + aesd v18.16b,v16.16b + aesimc v18.16b,v18.16b + aesd v1.16b,v17.16b + aesimc v1.16b,v1.16b + aesd v18.16b,v17.16b + aesimc v18.16b,v18.16b + aesd v1.16b,v20.16b + aesimc v1.16b,v1.16b + aesd v18.16b,v20.16b + aesimc v18.16b,v18.16b + cmn x2,#0x20 + aesd v1.16b,v21.16b + aesimc v1.16b,v1.16b + aesd v18.16b,v21.16b + aesimc v18.16b,v18.16b + eor v5.16b,v6.16b,v7.16b + aesd v1.16b,v22.16b + aesimc v1.16b,v1.16b + aesd v18.16b,v22.16b + aesimc v18.16b,v18.16b + eor v17.16b,v3.16b,v7.16b + aesd v1.16b,v23.16b + aesd v18.16b,v23.16b + b.eq Lcbc_dec_one + eor v5.16b,v5.16b,v1.16b + eor v17.16b,v17.16b,v18.16b + orr v6.16b,v19.16b,v19.16b + st1 {v5.16b},[x1],#16 + st1 {v17.16b},[x1],#16 + b Lcbc_done + +Lcbc_dec_one: + eor v5.16b,v5.16b,v18.16b + orr v6.16b,v19.16b,v19.16b + st1 {v5.16b},[x1],#16 + +Lcbc_done: + st1 {v6.16b},[x4] +Lcbc_abort: + ldr x29,[sp],#16 + ret + +.globl _aes_v8_ctr32_encrypt_blocks + +.align 5 +_aes_v8_ctr32_encrypt_blocks: + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + ldr w5,[x3,#240] + + ldr w8, [x4, #12] +#ifdef __ARMEB__ + ld1 {v0.16b},[x4] +#else + ld1 {v0.4s},[x4] +#endif + ld1 {v16.4s,v17.4s},[x3] // load key schedule... + sub w5,w5,#4 + mov x12,#16 + cmp x2,#2 + add x7,x3,x5,lsl#4 // pointer to last 5 round keys + sub w5,w5,#2 + ld1 {v20.4s,v21.4s},[x7],#32 + ld1 {v22.4s,v23.4s},[x7],#32 + ld1 {v7.4s},[x7] + add x7,x3,#32 + mov w6,w5 + csel x12,xzr,x12,lo +#ifndef __ARMEB__ + rev w8, w8 +#endif + orr v1.16b,v0.16b,v0.16b + add w10, w8, #1 + orr v18.16b,v0.16b,v0.16b + add w8, w8, #2 + orr v6.16b,v0.16b,v0.16b + rev w10, w10 + mov v1.s[3],w10 + b.ls Lctr32_tail + rev w12, w8 + sub x2,x2,#3 // bias + mov v18.s[3],w12 + b Loop3x_ctr32 + +.align 4 +Loop3x_ctr32: + aese v0.16b,v16.16b + aesmc v0.16b,v0.16b + aese v1.16b,v16.16b + aesmc v1.16b,v1.16b + aese v18.16b,v16.16b + aesmc v18.16b,v18.16b + ld1 {v16.4s},[x7],#16 + subs w6,w6,#2 + aese v0.16b,v17.16b + aesmc v0.16b,v0.16b + aese v1.16b,v17.16b + aesmc v1.16b,v1.16b + aese v18.16b,v17.16b + aesmc v18.16b,v18.16b + ld1 {v17.4s},[x7],#16 + b.gt Loop3x_ctr32 + + aese v0.16b,v16.16b + aesmc v4.16b,v0.16b + aese v1.16b,v16.16b + aesmc v5.16b,v1.16b + ld1 {v2.16b},[x0],#16 + orr v0.16b,v6.16b,v6.16b + aese v18.16b,v16.16b + aesmc v18.16b,v18.16b + ld1 {v3.16b},[x0],#16 + orr v1.16b,v6.16b,v6.16b + aese v4.16b,v17.16b + aesmc v4.16b,v4.16b + aese v5.16b,v17.16b + aesmc v5.16b,v5.16b + ld1 {v19.16b},[x0],#16 + mov x7,x3 + aese v18.16b,v17.16b + aesmc v17.16b,v18.16b + orr v18.16b,v6.16b,v6.16b + add w9,w8,#1 + aese v4.16b,v20.16b + aesmc v4.16b,v4.16b + aese v5.16b,v20.16b + aesmc v5.16b,v5.16b + eor v2.16b,v2.16b,v7.16b + add w10,w8,#2 + aese v17.16b,v20.16b + aesmc v17.16b,v17.16b + eor v3.16b,v3.16b,v7.16b + add w8,w8,#3 + aese v4.16b,v21.16b + aesmc v4.16b,v4.16b + aese v5.16b,v21.16b + aesmc v5.16b,v5.16b + eor v19.16b,v19.16b,v7.16b + rev w9,w9 + aese v17.16b,v21.16b + aesmc v17.16b,v17.16b + mov v0.s[3], w9 + rev w10,w10 + aese v4.16b,v22.16b + aesmc v4.16b,v4.16b + aese v5.16b,v22.16b + aesmc v5.16b,v5.16b + mov v1.s[3], w10 + rev w12,w8 + aese v17.16b,v22.16b + aesmc v17.16b,v17.16b + mov v18.s[3], w12 + subs x2,x2,#3 + aese v4.16b,v23.16b + aese v5.16b,v23.16b + aese v17.16b,v23.16b + + eor v2.16b,v2.16b,v4.16b + ld1 {v16.4s},[x7],#16 // re-pre-load rndkey[0] + st1 {v2.16b},[x1],#16 + eor v3.16b,v3.16b,v5.16b + mov w6,w5 + st1 {v3.16b},[x1],#16 + eor v19.16b,v19.16b,v17.16b + ld1 {v17.4s},[x7],#16 // re-pre-load rndkey[1] + st1 {v19.16b},[x1],#16 + b.hs Loop3x_ctr32 + + adds x2,x2,#3 + b.eq Lctr32_done + cmp x2,#1 + mov x12,#16 + csel x12,xzr,x12,eq + +Lctr32_tail: + aese v0.16b,v16.16b + aesmc v0.16b,v0.16b + aese v1.16b,v16.16b + aesmc v1.16b,v1.16b + ld1 {v16.4s},[x7],#16 + subs w6,w6,#2 + aese v0.16b,v17.16b + aesmc v0.16b,v0.16b + aese v1.16b,v17.16b + aesmc v1.16b,v1.16b + ld1 {v17.4s},[x7],#16 + b.gt Lctr32_tail + + aese v0.16b,v16.16b + aesmc v0.16b,v0.16b + aese v1.16b,v16.16b + aesmc v1.16b,v1.16b + aese v0.16b,v17.16b + aesmc v0.16b,v0.16b + aese v1.16b,v17.16b + aesmc v1.16b,v1.16b + ld1 {v2.16b},[x0],x12 + aese v0.16b,v20.16b + aesmc v0.16b,v0.16b + aese v1.16b,v20.16b + aesmc v1.16b,v1.16b + ld1 {v3.16b},[x0] + aese v0.16b,v21.16b + aesmc v0.16b,v0.16b + aese v1.16b,v21.16b + aesmc v1.16b,v1.16b + eor v2.16b,v2.16b,v7.16b + aese v0.16b,v22.16b + aesmc v0.16b,v0.16b + aese v1.16b,v22.16b + aesmc v1.16b,v1.16b + eor v3.16b,v3.16b,v7.16b + aese v0.16b,v23.16b + aese v1.16b,v23.16b + + cmp x2,#1 + eor v2.16b,v2.16b,v0.16b + eor v3.16b,v3.16b,v1.16b + st1 {v2.16b},[x1],#16 + b.eq Lctr32_done + st1 {v3.16b},[x1] + +Lctr32_done: + ldr x29,[sp],#16 + ret + +#endif diff --git a/vere/ext/openssl/gen/macos-aarch64/crypto/aes/vpaes-armv8.S b/vere/ext/openssl/gen/macos-aarch64/crypto/aes/vpaes-armv8.S new file mode 100644 index 0000000..385fa63 --- /dev/null +++ b/vere/ext/openssl/gen/macos-aarch64/crypto/aes/vpaes-armv8.S @@ -0,0 +1,1196 @@ +.text + + +.align 7 // totally strategic alignment +_vpaes_consts: +Lk_mc_forward: // mc_forward +.quad 0x0407060500030201, 0x0C0F0E0D080B0A09 +.quad 0x080B0A0904070605, 0x000302010C0F0E0D +.quad 0x0C0F0E0D080B0A09, 0x0407060500030201 +.quad 0x000302010C0F0E0D, 0x080B0A0904070605 +Lk_mc_backward: // mc_backward +.quad 0x0605040702010003, 0x0E0D0C0F0A09080B +.quad 0x020100030E0D0C0F, 0x0A09080B06050407 +.quad 0x0E0D0C0F0A09080B, 0x0605040702010003 +.quad 0x0A09080B06050407, 0x020100030E0D0C0F +Lk_sr: // sr +.quad 0x0706050403020100, 0x0F0E0D0C0B0A0908 +.quad 0x030E09040F0A0500, 0x0B06010C07020D08 +.quad 0x0F060D040B020900, 0x070E050C030A0108 +.quad 0x0B0E0104070A0D00, 0x0306090C0F020508 + +// +// "Hot" constants +// +Lk_inv: // inv, inva +.quad 0x0E05060F0D080180, 0x040703090A0B0C02 +.quad 0x01040A060F0B0780, 0x030D0E0C02050809 +Lk_ipt: // input transform (lo, hi) +.quad 0xC2B2E8985A2A7000, 0xCABAE09052227808 +.quad 0x4C01307D317C4D00, 0xCD80B1FCB0FDCC81 +Lk_sbo: // sbou, sbot +.quad 0xD0D26D176FBDC700, 0x15AABF7AC502A878 +.quad 0xCFE474A55FBB6A00, 0x8E1E90D1412B35FA +Lk_sb1: // sb1u, sb1t +.quad 0x3618D415FAE22300, 0x3BF7CCC10D2ED9EF +.quad 0xB19BE18FCB503E00, 0xA5DF7A6E142AF544 +Lk_sb2: // sb2u, sb2t +.quad 0x69EB88400AE12900, 0xC2A163C8AB82234A +.quad 0xE27A93C60B712400, 0x5EB7E955BC982FCD + +// +// Decryption stuff +// +Lk_dipt: // decryption input transform +.quad 0x0F505B040B545F00, 0x154A411E114E451A +.quad 0x86E383E660056500, 0x12771772F491F194 +Lk_dsbo: // decryption sbox final output +.quad 0x1387EA537EF94000, 0xC7AA6DB9D4943E2D +.quad 0x12D7560F93441D00, 0xCA4B8159D8C58E9C +Lk_dsb9: // decryption sbox output *9*u, *9*t +.quad 0x851C03539A86D600, 0xCAD51F504F994CC9 +.quad 0xC03B1789ECD74900, 0x725E2C9EB2FBA565 +Lk_dsbd: // decryption sbox output *D*u, *D*t +.quad 0x7D57CCDFE6B1A200, 0xF56E9B13882A4439 +.quad 0x3CE2FAF724C6CB00, 0x2931180D15DEEFD3 +Lk_dsbb: // decryption sbox output *B*u, *B*t +.quad 0xD022649296B44200, 0x602646F6B0F2D404 +.quad 0xC19498A6CD596700, 0xF3FF0C3E3255AA6B +Lk_dsbe: // decryption sbox output *E*u, *E*t +.quad 0x46F2929626D4D000, 0x2242600464B4F6B0 +.quad 0x0C55A6CDFFAAC100, 0x9467F36B98593E32 + +// +// Key schedule constants +// +Lk_dksd: // decryption key schedule: invskew x*D +.quad 0xFEB91A5DA3E44700, 0x0740E3A45A1DBEF9 +.quad 0x41C277F4B5368300, 0x5FDC69EAAB289D1E +Lk_dksb: // decryption key schedule: invskew x*B +.quad 0x9A4FCA1F8550D500, 0x03D653861CC94C99 +.quad 0x115BEDA7B6FC4A00, 0xD993256F7E3482C8 +Lk_dkse: // decryption key schedule: invskew x*E + 0x63 +.quad 0xD5031CCA1FC9D600, 0x53859A4C994F5086 +.quad 0xA23196054FDC7BE8, 0xCD5EF96A20B31487 +Lk_dks9: // decryption key schedule: invskew x*9 +.quad 0xB6116FC87ED9A700, 0x4AED933482255BFC +.quad 0x4576516227143300, 0x8BB89FACE9DAFDCE + +Lk_rcon: // rcon +.quad 0x1F8391B9AF9DEEB6, 0x702A98084D7C7D81 + +Lk_opt: // output transform +.quad 0xFF9F4929D6B66000, 0xF7974121DEBE6808 +.quad 0x01EDBD5150BCEC00, 0xE10D5DB1B05C0CE0 +Lk_deskew: // deskew tables: inverts the sbox's "skew" +.quad 0x07E4A34047A4E300, 0x1DFEB95A5DBEF91A +.quad 0x5F36B5DC83EA6900, 0x2841C2ABF49D1E77 + +.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,65,82,77,118,56,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0 +.align 2 + +.align 6 +## +## _aes_preheat +## +## Fills register %r10 -> .aes_consts (so you can -fPIC) +## and %xmm9-%xmm15 as specified below. +## + +.align 4 +_vpaes_encrypt_preheat: + adr x10, Lk_inv + movi v17.16b, #0x0f + ld1 {v18.2d,v19.2d}, [x10],#32 // Lk_inv + ld1 {v20.2d,v21.2d,v22.2d,v23.2d}, [x10],#64 // Lk_ipt, Lk_sbo + ld1 {v24.2d,v25.2d,v26.2d,v27.2d}, [x10] // Lk_sb1, Lk_sb2 + ret + + +## +## _aes_encrypt_core +## +## AES-encrypt %xmm0. +## +## Inputs: +## %xmm0 = input +## %xmm9-%xmm15 as in _vpaes_preheat +## (%rdx) = scheduled keys +## +## Output in %xmm0 +## Clobbers %xmm1-%xmm5, %r9, %r10, %r11, %rax +## Preserves %xmm6 - %xmm8 so you get some local vectors +## +## + +.align 4 +_vpaes_encrypt_core: + mov x9, x2 + ldr w8, [x2,#240] // pull rounds + adr x11, Lk_mc_forward+16 + // vmovdqa .Lk_ipt(%rip), %xmm2 # iptlo + ld1 {v16.2d}, [x9], #16 // vmovdqu (%r9), %xmm5 # round0 key + and v1.16b, v7.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 + ushr v0.16b, v7.16b, #4 // vpsrlb $4, %xmm0, %xmm0 + tbl v1.16b, {v20.16b}, v1.16b // vpshufb %xmm1, %xmm2, %xmm1 + // vmovdqa .Lk_ipt+16(%rip), %xmm3 # ipthi + tbl v2.16b, {v21.16b}, v0.16b // vpshufb %xmm0, %xmm3, %xmm2 + eor v0.16b, v1.16b, v16.16b // vpxor %xmm5, %xmm1, %xmm0 + eor v0.16b, v0.16b, v2.16b // vpxor %xmm2, %xmm0, %xmm0 + b Lenc_entry + +.align 4 +Lenc_loop: + // middle of middle round + add x10, x11, #0x40 + tbl v4.16b, {v25.16b}, v2.16b // vpshufb %xmm2, %xmm13, %xmm4 # 4 = sb1u + ld1 {v1.2d}, [x11], #16 // vmovdqa -0x40(%r11,%r10), %xmm1 # Lk_mc_forward[] + tbl v0.16b, {v24.16b}, v3.16b // vpshufb %xmm3, %xmm12, %xmm0 # 0 = sb1t + eor v4.16b, v4.16b, v16.16b // vpxor %xmm5, %xmm4, %xmm4 # 4 = sb1u + k + tbl v5.16b, {v27.16b}, v2.16b // vpshufb %xmm2, %xmm15, %xmm5 # 4 = sb2u + eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 0 = A + tbl v2.16b, {v26.16b}, v3.16b // vpshufb %xmm3, %xmm14, %xmm2 # 2 = sb2t + ld1 {v4.2d}, [x10] // vmovdqa (%r11,%r10), %xmm4 # Lk_mc_backward[] + tbl v3.16b, {v0.16b}, v1.16b // vpshufb %xmm1, %xmm0, %xmm3 # 0 = B + eor v2.16b, v2.16b, v5.16b // vpxor %xmm5, %xmm2, %xmm2 # 2 = 2A + tbl v0.16b, {v0.16b}, v4.16b // vpshufb %xmm4, %xmm0, %xmm0 # 3 = D + eor v3.16b, v3.16b, v2.16b // vpxor %xmm2, %xmm3, %xmm3 # 0 = 2A+B + tbl v4.16b, {v3.16b}, v1.16b // vpshufb %xmm1, %xmm3, %xmm4 # 0 = 2B+C + eor v0.16b, v0.16b, v3.16b // vpxor %xmm3, %xmm0, %xmm0 # 3 = 2A+B+D + and x11, x11, #~(1<<6) // and $0x30, %r11 # ... mod 4 + eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 0 = 2A+3B+C+D + sub w8, w8, #1 // nr-- + +Lenc_entry: + // top of round + and v1.16b, v0.16b, v17.16b // vpand %xmm0, %xmm9, %xmm1 # 0 = k + ushr v0.16b, v0.16b, #4 // vpsrlb $4, %xmm0, %xmm0 # 1 = i + tbl v5.16b, {v19.16b}, v1.16b // vpshufb %xmm1, %xmm11, %xmm5 # 2 = a/k + eor v1.16b, v1.16b, v0.16b // vpxor %xmm0, %xmm1, %xmm1 # 0 = j + tbl v3.16b, {v18.16b}, v0.16b // vpshufb %xmm0, %xmm10, %xmm3 # 3 = 1/i + tbl v4.16b, {v18.16b}, v1.16b // vpshufb %xmm1, %xmm10, %xmm4 # 4 = 1/j + eor v3.16b, v3.16b, v5.16b // vpxor %xmm5, %xmm3, %xmm3 # 3 = iak = 1/i + a/k + eor v4.16b, v4.16b, v5.16b // vpxor %xmm5, %xmm4, %xmm4 # 4 = jak = 1/j + a/k + tbl v2.16b, {v18.16b}, v3.16b // vpshufb %xmm3, %xmm10, %xmm2 # 2 = 1/iak + tbl v3.16b, {v18.16b}, v4.16b // vpshufb %xmm4, %xmm10, %xmm3 # 3 = 1/jak + eor v2.16b, v2.16b, v1.16b // vpxor %xmm1, %xmm2, %xmm2 # 2 = io + eor v3.16b, v3.16b, v0.16b // vpxor %xmm0, %xmm3, %xmm3 # 3 = jo + ld1 {v16.2d}, [x9],#16 // vmovdqu (%r9), %xmm5 + cbnz w8, Lenc_loop + + // middle of last round + add x10, x11, #0x80 + // vmovdqa -0x60(%r10), %xmm4 # 3 : sbou .Lk_sbo + // vmovdqa -0x50(%r10), %xmm0 # 0 : sbot .Lk_sbo+16 + tbl v4.16b, {v22.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbou + ld1 {v1.2d}, [x10] // vmovdqa 0x40(%r11,%r10), %xmm1 # Lk_sr[] + tbl v0.16b, {v23.16b}, v3.16b // vpshufb %xmm3, %xmm0, %xmm0 # 0 = sb1t + eor v4.16b, v4.16b, v16.16b // vpxor %xmm5, %xmm4, %xmm4 # 4 = sb1u + k + eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 0 = A + tbl v0.16b, {v0.16b}, v1.16b // vpshufb %xmm1, %xmm0, %xmm0 + ret + + +.globl _vpaes_encrypt + +.align 4 +_vpaes_encrypt: +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + + ld1 {v7.16b}, [x0] + bl _vpaes_encrypt_preheat + bl _vpaes_encrypt_core + st1 {v0.16b}, [x1] + + ldp x29,x30,[sp],#16 +.long 0xd50323bf // autiasp + ret + + + +.align 4 +_vpaes_encrypt_2x: + mov x9, x2 + ldr w8, [x2,#240] // pull rounds + adr x11, Lk_mc_forward+16 + // vmovdqa .Lk_ipt(%rip), %xmm2 # iptlo + ld1 {v16.2d}, [x9], #16 // vmovdqu (%r9), %xmm5 # round0 key + and v1.16b, v14.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 + ushr v0.16b, v14.16b, #4 // vpsrlb $4, %xmm0, %xmm0 + and v9.16b, v15.16b, v17.16b + ushr v8.16b, v15.16b, #4 + tbl v1.16b, {v20.16b}, v1.16b // vpshufb %xmm1, %xmm2, %xmm1 + tbl v9.16b, {v20.16b}, v9.16b + // vmovdqa .Lk_ipt+16(%rip), %xmm3 # ipthi + tbl v2.16b, {v21.16b}, v0.16b // vpshufb %xmm0, %xmm3, %xmm2 + tbl v10.16b, {v21.16b}, v8.16b + eor v0.16b, v1.16b, v16.16b // vpxor %xmm5, %xmm1, %xmm0 + eor v8.16b, v9.16b, v16.16b + eor v0.16b, v0.16b, v2.16b // vpxor %xmm2, %xmm0, %xmm0 + eor v8.16b, v8.16b, v10.16b + b Lenc_2x_entry + +.align 4 +Lenc_2x_loop: + // middle of middle round + add x10, x11, #0x40 + tbl v4.16b, {v25.16b}, v2.16b // vpshufb %xmm2, %xmm13, %xmm4 # 4 = sb1u + tbl v12.16b, {v25.16b}, v10.16b + ld1 {v1.2d}, [x11], #16 // vmovdqa -0x40(%r11,%r10), %xmm1 # Lk_mc_forward[] + tbl v0.16b, {v24.16b}, v3.16b // vpshufb %xmm3, %xmm12, %xmm0 # 0 = sb1t + tbl v8.16b, {v24.16b}, v11.16b + eor v4.16b, v4.16b, v16.16b // vpxor %xmm5, %xmm4, %xmm4 # 4 = sb1u + k + eor v12.16b, v12.16b, v16.16b + tbl v5.16b, {v27.16b}, v2.16b // vpshufb %xmm2, %xmm15, %xmm5 # 4 = sb2u + tbl v13.16b, {v27.16b}, v10.16b + eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 0 = A + eor v8.16b, v8.16b, v12.16b + tbl v2.16b, {v26.16b}, v3.16b // vpshufb %xmm3, %xmm14, %xmm2 # 2 = sb2t + tbl v10.16b, {v26.16b}, v11.16b + ld1 {v4.2d}, [x10] // vmovdqa (%r11,%r10), %xmm4 # Lk_mc_backward[] + tbl v3.16b, {v0.16b}, v1.16b // vpshufb %xmm1, %xmm0, %xmm3 # 0 = B + tbl v11.16b, {v8.16b}, v1.16b + eor v2.16b, v2.16b, v5.16b // vpxor %xmm5, %xmm2, %xmm2 # 2 = 2A + eor v10.16b, v10.16b, v13.16b + tbl v0.16b, {v0.16b}, v4.16b // vpshufb %xmm4, %xmm0, %xmm0 # 3 = D + tbl v8.16b, {v8.16b}, v4.16b + eor v3.16b, v3.16b, v2.16b // vpxor %xmm2, %xmm3, %xmm3 # 0 = 2A+B + eor v11.16b, v11.16b, v10.16b + tbl v4.16b, {v3.16b}, v1.16b // vpshufb %xmm1, %xmm3, %xmm4 # 0 = 2B+C + tbl v12.16b, {v11.16b},v1.16b + eor v0.16b, v0.16b, v3.16b // vpxor %xmm3, %xmm0, %xmm0 # 3 = 2A+B+D + eor v8.16b, v8.16b, v11.16b + and x11, x11, #~(1<<6) // and $0x30, %r11 # ... mod 4 + eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 0 = 2A+3B+C+D + eor v8.16b, v8.16b, v12.16b + sub w8, w8, #1 // nr-- + +Lenc_2x_entry: + // top of round + and v1.16b, v0.16b, v17.16b // vpand %xmm0, %xmm9, %xmm1 # 0 = k + ushr v0.16b, v0.16b, #4 // vpsrlb $4, %xmm0, %xmm0 # 1 = i + and v9.16b, v8.16b, v17.16b + ushr v8.16b, v8.16b, #4 + tbl v5.16b, {v19.16b},v1.16b // vpshufb %xmm1, %xmm11, %xmm5 # 2 = a/k + tbl v13.16b, {v19.16b},v9.16b + eor v1.16b, v1.16b, v0.16b // vpxor %xmm0, %xmm1, %xmm1 # 0 = j + eor v9.16b, v9.16b, v8.16b + tbl v3.16b, {v18.16b},v0.16b // vpshufb %xmm0, %xmm10, %xmm3 # 3 = 1/i + tbl v11.16b, {v18.16b},v8.16b + tbl v4.16b, {v18.16b},v1.16b // vpshufb %xmm1, %xmm10, %xmm4 # 4 = 1/j + tbl v12.16b, {v18.16b},v9.16b + eor v3.16b, v3.16b, v5.16b // vpxor %xmm5, %xmm3, %xmm3 # 3 = iak = 1/i + a/k + eor v11.16b, v11.16b, v13.16b + eor v4.16b, v4.16b, v5.16b // vpxor %xmm5, %xmm4, %xmm4 # 4 = jak = 1/j + a/k + eor v12.16b, v12.16b, v13.16b + tbl v2.16b, {v18.16b},v3.16b // vpshufb %xmm3, %xmm10, %xmm2 # 2 = 1/iak + tbl v10.16b, {v18.16b},v11.16b + tbl v3.16b, {v18.16b},v4.16b // vpshufb %xmm4, %xmm10, %xmm3 # 3 = 1/jak + tbl v11.16b, {v18.16b},v12.16b + eor v2.16b, v2.16b, v1.16b // vpxor %xmm1, %xmm2, %xmm2 # 2 = io + eor v10.16b, v10.16b, v9.16b + eor v3.16b, v3.16b, v0.16b // vpxor %xmm0, %xmm3, %xmm3 # 3 = jo + eor v11.16b, v11.16b, v8.16b + ld1 {v16.2d}, [x9],#16 // vmovdqu (%r9), %xmm5 + cbnz w8, Lenc_2x_loop + + // middle of last round + add x10, x11, #0x80 + // vmovdqa -0x60(%r10), %xmm4 # 3 : sbou .Lk_sbo + // vmovdqa -0x50(%r10), %xmm0 # 0 : sbot .Lk_sbo+16 + tbl v4.16b, {v22.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbou + tbl v12.16b, {v22.16b}, v10.16b + ld1 {v1.2d}, [x10] // vmovdqa 0x40(%r11,%r10), %xmm1 # Lk_sr[] + tbl v0.16b, {v23.16b}, v3.16b // vpshufb %xmm3, %xmm0, %xmm0 # 0 = sb1t + tbl v8.16b, {v23.16b}, v11.16b + eor v4.16b, v4.16b, v16.16b // vpxor %xmm5, %xmm4, %xmm4 # 4 = sb1u + k + eor v12.16b, v12.16b, v16.16b + eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 0 = A + eor v8.16b, v8.16b, v12.16b + tbl v0.16b, {v0.16b},v1.16b // vpshufb %xmm1, %xmm0, %xmm0 + tbl v1.16b, {v8.16b},v1.16b + ret + + + +.align 4 +_vpaes_decrypt_preheat: + adr x10, Lk_inv + movi v17.16b, #0x0f + adr x11, Lk_dipt + ld1 {v18.2d,v19.2d}, [x10],#32 // Lk_inv + ld1 {v20.2d,v21.2d,v22.2d,v23.2d}, [x11],#64 // Lk_dipt, Lk_dsbo + ld1 {v24.2d,v25.2d,v26.2d,v27.2d}, [x11],#64 // Lk_dsb9, Lk_dsbd + ld1 {v28.2d,v29.2d,v30.2d,v31.2d}, [x11] // Lk_dsbb, Lk_dsbe + ret + + +## +## Decryption core +## +## Same API as encryption core. +## + +.align 4 +_vpaes_decrypt_core: + mov x9, x2 + ldr w8, [x2,#240] // pull rounds + + // vmovdqa .Lk_dipt(%rip), %xmm2 # iptlo + lsl x11, x8, #4 // mov %rax, %r11; shl $4, %r11 + eor x11, x11, #0x30 // xor $0x30, %r11 + adr x10, Lk_sr + and x11, x11, #0x30 // and $0x30, %r11 + add x11, x11, x10 + adr x10, Lk_mc_forward+48 + + ld1 {v16.2d}, [x9],#16 // vmovdqu (%r9), %xmm4 # round0 key + and v1.16b, v7.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 + ushr v0.16b, v7.16b, #4 // vpsrlb $4, %xmm0, %xmm0 + tbl v2.16b, {v20.16b}, v1.16b // vpshufb %xmm1, %xmm2, %xmm2 + ld1 {v5.2d}, [x10] // vmovdqa Lk_mc_forward+48(%rip), %xmm5 + // vmovdqa .Lk_dipt+16(%rip), %xmm1 # ipthi + tbl v0.16b, {v21.16b}, v0.16b // vpshufb %xmm0, %xmm1, %xmm0 + eor v2.16b, v2.16b, v16.16b // vpxor %xmm4, %xmm2, %xmm2 + eor v0.16b, v0.16b, v2.16b // vpxor %xmm2, %xmm0, %xmm0 + b Ldec_entry + +.align 4 +Ldec_loop: +// +// Inverse mix columns +// + // vmovdqa -0x20(%r10),%xmm4 # 4 : sb9u + // vmovdqa -0x10(%r10),%xmm1 # 0 : sb9t + tbl v4.16b, {v24.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sb9u + tbl v1.16b, {v25.16b}, v3.16b // vpshufb %xmm3, %xmm1, %xmm1 # 0 = sb9t + eor v0.16b, v4.16b, v16.16b // vpxor %xmm4, %xmm0, %xmm0 + // vmovdqa 0x00(%r10),%xmm4 # 4 : sbdu + eor v0.16b, v0.16b, v1.16b // vpxor %xmm1, %xmm0, %xmm0 # 0 = ch + // vmovdqa 0x10(%r10),%xmm1 # 0 : sbdt + + tbl v4.16b, {v26.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbdu + tbl v0.16b, {v0.16b}, v5.16b // vpshufb %xmm5, %xmm0, %xmm0 # MC ch + tbl v1.16b, {v27.16b}, v3.16b // vpshufb %xmm3, %xmm1, %xmm1 # 0 = sbdt + eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 4 = ch + // vmovdqa 0x20(%r10), %xmm4 # 4 : sbbu + eor v0.16b, v0.16b, v1.16b // vpxor %xmm1, %xmm0, %xmm0 # 0 = ch + // vmovdqa 0x30(%r10), %xmm1 # 0 : sbbt + + tbl v4.16b, {v28.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbbu + tbl v0.16b, {v0.16b}, v5.16b // vpshufb %xmm5, %xmm0, %xmm0 # MC ch + tbl v1.16b, {v29.16b}, v3.16b // vpshufb %xmm3, %xmm1, %xmm1 # 0 = sbbt + eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 4 = ch + // vmovdqa 0x40(%r10), %xmm4 # 4 : sbeu + eor v0.16b, v0.16b, v1.16b // vpxor %xmm1, %xmm0, %xmm0 # 0 = ch + // vmovdqa 0x50(%r10), %xmm1 # 0 : sbet + + tbl v4.16b, {v30.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbeu + tbl v0.16b, {v0.16b}, v5.16b // vpshufb %xmm5, %xmm0, %xmm0 # MC ch + tbl v1.16b, {v31.16b}, v3.16b // vpshufb %xmm3, %xmm1, %xmm1 # 0 = sbet + eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 4 = ch + ext v5.16b, v5.16b, v5.16b, #12 // vpalignr $12, %xmm5, %xmm5, %xmm5 + eor v0.16b, v0.16b, v1.16b // vpxor %xmm1, %xmm0, %xmm0 # 0 = ch + sub w8, w8, #1 // sub $1,%rax # nr-- + +Ldec_entry: + // top of round + and v1.16b, v0.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 # 0 = k + ushr v0.16b, v0.16b, #4 // vpsrlb $4, %xmm0, %xmm0 # 1 = i + tbl v2.16b, {v19.16b}, v1.16b // vpshufb %xmm1, %xmm11, %xmm2 # 2 = a/k + eor v1.16b, v1.16b, v0.16b // vpxor %xmm0, %xmm1, %xmm1 # 0 = j + tbl v3.16b, {v18.16b}, v0.16b // vpshufb %xmm0, %xmm10, %xmm3 # 3 = 1/i + tbl v4.16b, {v18.16b}, v1.16b // vpshufb %xmm1, %xmm10, %xmm4 # 4 = 1/j + eor v3.16b, v3.16b, v2.16b // vpxor %xmm2, %xmm3, %xmm3 # 3 = iak = 1/i + a/k + eor v4.16b, v4.16b, v2.16b // vpxor %xmm2, %xmm4, %xmm4 # 4 = jak = 1/j + a/k + tbl v2.16b, {v18.16b}, v3.16b // vpshufb %xmm3, %xmm10, %xmm2 # 2 = 1/iak + tbl v3.16b, {v18.16b}, v4.16b // vpshufb %xmm4, %xmm10, %xmm3 # 3 = 1/jak + eor v2.16b, v2.16b, v1.16b // vpxor %xmm1, %xmm2, %xmm2 # 2 = io + eor v3.16b, v3.16b, v0.16b // vpxor %xmm0, %xmm3, %xmm3 # 3 = jo + ld1 {v16.2d}, [x9],#16 // vmovdqu (%r9), %xmm0 + cbnz w8, Ldec_loop + + // middle of last round + // vmovdqa 0x60(%r10), %xmm4 # 3 : sbou + tbl v4.16b, {v22.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbou + // vmovdqa 0x70(%r10), %xmm1 # 0 : sbot + ld1 {v2.2d}, [x11] // vmovdqa -0x160(%r11), %xmm2 # Lk_sr-Lk_dsbd=-0x160 + tbl v1.16b, {v23.16b}, v3.16b // vpshufb %xmm3, %xmm1, %xmm1 # 0 = sb1t + eor v4.16b, v4.16b, v16.16b // vpxor %xmm0, %xmm4, %xmm4 # 4 = sb1u + k + eor v0.16b, v1.16b, v4.16b // vpxor %xmm4, %xmm1, %xmm0 # 0 = A + tbl v0.16b, {v0.16b}, v2.16b // vpshufb %xmm2, %xmm0, %xmm0 + ret + + +.globl _vpaes_decrypt + +.align 4 +_vpaes_decrypt: +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + + ld1 {v7.16b}, [x0] + bl _vpaes_decrypt_preheat + bl _vpaes_decrypt_core + st1 {v0.16b}, [x1] + + ldp x29,x30,[sp],#16 +.long 0xd50323bf // autiasp + ret + + +// v14-v15 input, v0-v1 output + +.align 4 +_vpaes_decrypt_2x: + mov x9, x2 + ldr w8, [x2,#240] // pull rounds + + // vmovdqa .Lk_dipt(%rip), %xmm2 # iptlo + lsl x11, x8, #4 // mov %rax, %r11; shl $4, %r11 + eor x11, x11, #0x30 // xor $0x30, %r11 + adr x10, Lk_sr + and x11, x11, #0x30 // and $0x30, %r11 + add x11, x11, x10 + adr x10, Lk_mc_forward+48 + + ld1 {v16.2d}, [x9],#16 // vmovdqu (%r9), %xmm4 # round0 key + and v1.16b, v14.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 + ushr v0.16b, v14.16b, #4 // vpsrlb $4, %xmm0, %xmm0 + and v9.16b, v15.16b, v17.16b + ushr v8.16b, v15.16b, #4 + tbl v2.16b, {v20.16b},v1.16b // vpshufb %xmm1, %xmm2, %xmm2 + tbl v10.16b, {v20.16b},v9.16b + ld1 {v5.2d}, [x10] // vmovdqa Lk_mc_forward+48(%rip), %xmm5 + // vmovdqa .Lk_dipt+16(%rip), %xmm1 # ipthi + tbl v0.16b, {v21.16b},v0.16b // vpshufb %xmm0, %xmm1, %xmm0 + tbl v8.16b, {v21.16b},v8.16b + eor v2.16b, v2.16b, v16.16b // vpxor %xmm4, %xmm2, %xmm2 + eor v10.16b, v10.16b, v16.16b + eor v0.16b, v0.16b, v2.16b // vpxor %xmm2, %xmm0, %xmm0 + eor v8.16b, v8.16b, v10.16b + b Ldec_2x_entry + +.align 4 +Ldec_2x_loop: +// +// Inverse mix columns +// + // vmovdqa -0x20(%r10),%xmm4 # 4 : sb9u + // vmovdqa -0x10(%r10),%xmm1 # 0 : sb9t + tbl v4.16b, {v24.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sb9u + tbl v12.16b, {v24.16b}, v10.16b + tbl v1.16b, {v25.16b}, v3.16b // vpshufb %xmm3, %xmm1, %xmm1 # 0 = sb9t + tbl v9.16b, {v25.16b}, v11.16b + eor v0.16b, v4.16b, v16.16b // vpxor %xmm4, %xmm0, %xmm0 + eor v8.16b, v12.16b, v16.16b + // vmovdqa 0x00(%r10),%xmm4 # 4 : sbdu + eor v0.16b, v0.16b, v1.16b // vpxor %xmm1, %xmm0, %xmm0 # 0 = ch + eor v8.16b, v8.16b, v9.16b // vpxor %xmm1, %xmm0, %xmm0 # 0 = ch + // vmovdqa 0x10(%r10),%xmm1 # 0 : sbdt + + tbl v4.16b, {v26.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbdu + tbl v12.16b, {v26.16b}, v10.16b + tbl v0.16b, {v0.16b},v5.16b // vpshufb %xmm5, %xmm0, %xmm0 # MC ch + tbl v8.16b, {v8.16b},v5.16b + tbl v1.16b, {v27.16b}, v3.16b // vpshufb %xmm3, %xmm1, %xmm1 # 0 = sbdt + tbl v9.16b, {v27.16b}, v11.16b + eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 4 = ch + eor v8.16b, v8.16b, v12.16b + // vmovdqa 0x20(%r10), %xmm4 # 4 : sbbu + eor v0.16b, v0.16b, v1.16b // vpxor %xmm1, %xmm0, %xmm0 # 0 = ch + eor v8.16b, v8.16b, v9.16b + // vmovdqa 0x30(%r10), %xmm1 # 0 : sbbt + + tbl v4.16b, {v28.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbbu + tbl v12.16b, {v28.16b}, v10.16b + tbl v0.16b, {v0.16b},v5.16b // vpshufb %xmm5, %xmm0, %xmm0 # MC ch + tbl v8.16b, {v8.16b},v5.16b + tbl v1.16b, {v29.16b}, v3.16b // vpshufb %xmm3, %xmm1, %xmm1 # 0 = sbbt + tbl v9.16b, {v29.16b}, v11.16b + eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 4 = ch + eor v8.16b, v8.16b, v12.16b + // vmovdqa 0x40(%r10), %xmm4 # 4 : sbeu + eor v0.16b, v0.16b, v1.16b // vpxor %xmm1, %xmm0, %xmm0 # 0 = ch + eor v8.16b, v8.16b, v9.16b + // vmovdqa 0x50(%r10), %xmm1 # 0 : sbet + + tbl v4.16b, {v30.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbeu + tbl v12.16b, {v30.16b}, v10.16b + tbl v0.16b, {v0.16b},v5.16b // vpshufb %xmm5, %xmm0, %xmm0 # MC ch + tbl v8.16b, {v8.16b},v5.16b + tbl v1.16b, {v31.16b}, v3.16b // vpshufb %xmm3, %xmm1, %xmm1 # 0 = sbet + tbl v9.16b, {v31.16b}, v11.16b + eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 4 = ch + eor v8.16b, v8.16b, v12.16b + ext v5.16b, v5.16b, v5.16b, #12 // vpalignr $12, %xmm5, %xmm5, %xmm5 + eor v0.16b, v0.16b, v1.16b // vpxor %xmm1, %xmm0, %xmm0 # 0 = ch + eor v8.16b, v8.16b, v9.16b + sub w8, w8, #1 // sub $1,%rax # nr-- + +Ldec_2x_entry: + // top of round + and v1.16b, v0.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 # 0 = k + ushr v0.16b, v0.16b, #4 // vpsrlb $4, %xmm0, %xmm0 # 1 = i + and v9.16b, v8.16b, v17.16b + ushr v8.16b, v8.16b, #4 + tbl v2.16b, {v19.16b},v1.16b // vpshufb %xmm1, %xmm11, %xmm2 # 2 = a/k + tbl v10.16b, {v19.16b},v9.16b + eor v1.16b, v1.16b, v0.16b // vpxor %xmm0, %xmm1, %xmm1 # 0 = j + eor v9.16b, v9.16b, v8.16b + tbl v3.16b, {v18.16b},v0.16b // vpshufb %xmm0, %xmm10, %xmm3 # 3 = 1/i + tbl v11.16b, {v18.16b},v8.16b + tbl v4.16b, {v18.16b},v1.16b // vpshufb %xmm1, %xmm10, %xmm4 # 4 = 1/j + tbl v12.16b, {v18.16b},v9.16b + eor v3.16b, v3.16b, v2.16b // vpxor %xmm2, %xmm3, %xmm3 # 3 = iak = 1/i + a/k + eor v11.16b, v11.16b, v10.16b + eor v4.16b, v4.16b, v2.16b // vpxor %xmm2, %xmm4, %xmm4 # 4 = jak = 1/j + a/k + eor v12.16b, v12.16b, v10.16b + tbl v2.16b, {v18.16b},v3.16b // vpshufb %xmm3, %xmm10, %xmm2 # 2 = 1/iak + tbl v10.16b, {v18.16b},v11.16b + tbl v3.16b, {v18.16b},v4.16b // vpshufb %xmm4, %xmm10, %xmm3 # 3 = 1/jak + tbl v11.16b, {v18.16b},v12.16b + eor v2.16b, v2.16b, v1.16b // vpxor %xmm1, %xmm2, %xmm2 # 2 = io + eor v10.16b, v10.16b, v9.16b + eor v3.16b, v3.16b, v0.16b // vpxor %xmm0, %xmm3, %xmm3 # 3 = jo + eor v11.16b, v11.16b, v8.16b + ld1 {v16.2d}, [x9],#16 // vmovdqu (%r9), %xmm0 + cbnz w8, Ldec_2x_loop + + // middle of last round + // vmovdqa 0x60(%r10), %xmm4 # 3 : sbou + tbl v4.16b, {v22.16b}, v2.16b // vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbou + tbl v12.16b, {v22.16b}, v10.16b + // vmovdqa 0x70(%r10), %xmm1 # 0 : sbot + tbl v1.16b, {v23.16b}, v3.16b // vpshufb %xmm3, %xmm1, %xmm1 # 0 = sb1t + tbl v9.16b, {v23.16b}, v11.16b + ld1 {v2.2d}, [x11] // vmovdqa -0x160(%r11), %xmm2 # Lk_sr-Lk_dsbd=-0x160 + eor v4.16b, v4.16b, v16.16b // vpxor %xmm0, %xmm4, %xmm4 # 4 = sb1u + k + eor v12.16b, v12.16b, v16.16b + eor v0.16b, v1.16b, v4.16b // vpxor %xmm4, %xmm1, %xmm0 # 0 = A + eor v8.16b, v9.16b, v12.16b + tbl v0.16b, {v0.16b},v2.16b // vpshufb %xmm2, %xmm0, %xmm0 + tbl v1.16b, {v8.16b},v2.16b + ret + +######################################################## +## ## +## AES key schedule ## +## ## +######################################################## + +.align 4 +_vpaes_key_preheat: + adr x10, Lk_inv + movi v16.16b, #0x5b // Lk_s63 + adr x11, Lk_sb1 + movi v17.16b, #0x0f // Lk_s0F + ld1 {v18.2d,v19.2d,v20.2d,v21.2d}, [x10] // Lk_inv, Lk_ipt + adr x10, Lk_dksd + ld1 {v22.2d,v23.2d}, [x11] // Lk_sb1 + adr x11, Lk_mc_forward + ld1 {v24.2d,v25.2d,v26.2d,v27.2d}, [x10],#64 // Lk_dksd, Lk_dksb + ld1 {v28.2d,v29.2d,v30.2d,v31.2d}, [x10],#64 // Lk_dkse, Lk_dks9 + ld1 {v8.2d}, [x10] // Lk_rcon + ld1 {v9.2d}, [x11] // Lk_mc_forward[0] + ret + + + +.align 4 +_vpaes_schedule_core: +.long 0xd503233f // paciasp + stp x29, x30, [sp,#-16]! + add x29,sp,#0 + + bl _vpaes_key_preheat // load the tables + + ld1 {v0.16b}, [x0],#16 // vmovdqu (%rdi), %xmm0 # load key (unaligned) + + // input transform + mov v3.16b, v0.16b // vmovdqa %xmm0, %xmm3 + bl _vpaes_schedule_transform + mov v7.16b, v0.16b // vmovdqa %xmm0, %xmm7 + + adr x10, Lk_sr // lea Lk_sr(%rip),%r10 + add x8, x8, x10 + cbnz w3, Lschedule_am_decrypting + + // encrypting, output zeroth round key after transform + st1 {v0.2d}, [x2] // vmovdqu %xmm0, (%rdx) + b Lschedule_go + +Lschedule_am_decrypting: + // decrypting, output zeroth round key after shiftrows + ld1 {v1.2d}, [x8] // vmovdqa (%r8,%r10), %xmm1 + tbl v3.16b, {v3.16b}, v1.16b // vpshufb %xmm1, %xmm3, %xmm3 + st1 {v3.2d}, [x2] // vmovdqu %xmm3, (%rdx) + eor x8, x8, #0x30 // xor $0x30, %r8 + +Lschedule_go: + cmp w1, #192 // cmp $192, %esi + b.hi Lschedule_256 + b.eq Lschedule_192 + // 128: fall though + +## +## .schedule_128 +## +## 128-bit specific part of key schedule. +## +## This schedule is really simple, because all its parts +## are accomplished by the subroutines. +## +Lschedule_128: + mov x0, #10 // mov $10, %esi + +Loop_schedule_128: + sub x0, x0, #1 // dec %esi + bl _vpaes_schedule_round + cbz x0, Lschedule_mangle_last + bl _vpaes_schedule_mangle // write output + b Loop_schedule_128 + +## +## .aes_schedule_192 +## +## 192-bit specific part of key schedule. +## +## The main body of this schedule is the same as the 128-bit +## schedule, but with more smearing. The long, high side is +## stored in %xmm7 as before, and the short, low side is in +## the high bits of %xmm6. +## +## This schedule is somewhat nastier, however, because each +## round produces 192 bits of key material, or 1.5 round keys. +## Therefore, on each cycle we do 2 rounds and produce 3 round +## keys. +## +.align 4 +Lschedule_192: + sub x0, x0, #8 + ld1 {v0.16b}, [x0] // vmovdqu 8(%rdi),%xmm0 # load key part 2 (very unaligned) + bl _vpaes_schedule_transform // input transform + mov v6.16b, v0.16b // vmovdqa %xmm0, %xmm6 # save short part + eor v4.16b, v4.16b, v4.16b // vpxor %xmm4, %xmm4, %xmm4 # clear 4 + ins v6.d[0], v4.d[0] // vmovhlps %xmm4, %xmm6, %xmm6 # clobber low side with zeros + mov x0, #4 // mov $4, %esi + +Loop_schedule_192: + sub x0, x0, #1 // dec %esi + bl _vpaes_schedule_round + ext v0.16b, v6.16b, v0.16b, #8 // vpalignr $8,%xmm6,%xmm0,%xmm0 + bl _vpaes_schedule_mangle // save key n + bl _vpaes_schedule_192_smear + bl _vpaes_schedule_mangle // save key n+1 + bl _vpaes_schedule_round + cbz x0, Lschedule_mangle_last + bl _vpaes_schedule_mangle // save key n+2 + bl _vpaes_schedule_192_smear + b Loop_schedule_192 + +## +## .aes_schedule_256 +## +## 256-bit specific part of key schedule. +## +## The structure here is very similar to the 128-bit +## schedule, but with an additional "low side" in +## %xmm6. The low side's rounds are the same as the +## high side's, except no rcon and no rotation. +## +.align 4 +Lschedule_256: + ld1 {v0.16b}, [x0] // vmovdqu 16(%rdi),%xmm0 # load key part 2 (unaligned) + bl _vpaes_schedule_transform // input transform + mov x0, #7 // mov $7, %esi + +Loop_schedule_256: + sub x0, x0, #1 // dec %esi + bl _vpaes_schedule_mangle // output low result + mov v6.16b, v0.16b // vmovdqa %xmm0, %xmm6 # save cur_lo in xmm6 + + // high round + bl _vpaes_schedule_round + cbz x0, Lschedule_mangle_last + bl _vpaes_schedule_mangle + + // low round. swap xmm7 and xmm6 + dup v0.4s, v0.s[3] // vpshufd $0xFF, %xmm0, %xmm0 + movi v4.16b, #0 + mov v5.16b, v7.16b // vmovdqa %xmm7, %xmm5 + mov v7.16b, v6.16b // vmovdqa %xmm6, %xmm7 + bl _vpaes_schedule_low_round + mov v7.16b, v5.16b // vmovdqa %xmm5, %xmm7 + + b Loop_schedule_256 + +## +## .aes_schedule_mangle_last +## +## Mangler for last round of key schedule +## Mangles %xmm0 +## when encrypting, outputs out(%xmm0) ^ 63 +## when decrypting, outputs unskew(%xmm0) +## +## Always called right before return... jumps to cleanup and exits +## +.align 4 +Lschedule_mangle_last: + // schedule last round key from xmm0 + adr x11, Lk_deskew // lea Lk_deskew(%rip),%r11 # prepare to deskew + cbnz w3, Lschedule_mangle_last_dec + + // encrypting + ld1 {v1.2d}, [x8] // vmovdqa (%r8,%r10),%xmm1 + adr x11, Lk_opt // lea Lk_opt(%rip), %r11 # prepare to output transform + add x2, x2, #32 // add $32, %rdx + tbl v0.16b, {v0.16b}, v1.16b // vpshufb %xmm1, %xmm0, %xmm0 # output permute + +Lschedule_mangle_last_dec: + ld1 {v20.2d,v21.2d}, [x11] // reload constants + sub x2, x2, #16 // add $-16, %rdx + eor v0.16b, v0.16b, v16.16b // vpxor Lk_s63(%rip), %xmm0, %xmm0 + bl _vpaes_schedule_transform // output transform + st1 {v0.2d}, [x2] // vmovdqu %xmm0, (%rdx) # save last key + + // cleanup + eor v0.16b, v0.16b, v0.16b // vpxor %xmm0, %xmm0, %xmm0 + eor v1.16b, v1.16b, v1.16b // vpxor %xmm1, %xmm1, %xmm1 + eor v2.16b, v2.16b, v2.16b // vpxor %xmm2, %xmm2, %xmm2 + eor v3.16b, v3.16b, v3.16b // vpxor %xmm3, %xmm3, %xmm3 + eor v4.16b, v4.16b, v4.16b // vpxor %xmm4, %xmm4, %xmm4 + eor v5.16b, v5.16b, v5.16b // vpxor %xmm5, %xmm5, %xmm5 + eor v6.16b, v6.16b, v6.16b // vpxor %xmm6, %xmm6, %xmm6 + eor v7.16b, v7.16b, v7.16b // vpxor %xmm7, %xmm7, %xmm7 + ldp x29, x30, [sp],#16 +.long 0xd50323bf // autiasp + ret + + +## +## .aes_schedule_192_smear +## +## Smear the short, low side in the 192-bit key schedule. +## +## Inputs: +## %xmm7: high side, b a x y +## %xmm6: low side, d c 0 0 +## %xmm13: 0 +## +## Outputs: +## %xmm6: b+c+d b+c 0 0 +## %xmm0: b+c+d b+c b a +## + +.align 4 +_vpaes_schedule_192_smear: + movi v1.16b, #0 + dup v0.4s, v7.s[3] + ins v1.s[3], v6.s[2] // vpshufd $0x80, %xmm6, %xmm1 # d c 0 0 -> c 0 0 0 + ins v0.s[0], v7.s[2] // vpshufd $0xFE, %xmm7, %xmm0 # b a _ _ -> b b b a + eor v6.16b, v6.16b, v1.16b // vpxor %xmm1, %xmm6, %xmm6 # -> c+d c 0 0 + eor v1.16b, v1.16b, v1.16b // vpxor %xmm1, %xmm1, %xmm1 + eor v6.16b, v6.16b, v0.16b // vpxor %xmm0, %xmm6, %xmm6 # -> b+c+d b+c b a + mov v0.16b, v6.16b // vmovdqa %xmm6, %xmm0 + ins v6.d[0], v1.d[0] // vmovhlps %xmm1, %xmm6, %xmm6 # clobber low side with zeros + ret + + +## +## .aes_schedule_round +## +## Runs one main round of the key schedule on %xmm0, %xmm7 +## +## Specifically, runs subbytes on the high dword of %xmm0 +## then rotates it by one byte and xors into the low dword of +## %xmm7. +## +## Adds rcon from low byte of %xmm8, then rotates %xmm8 for +## next rcon. +## +## Smears the dwords of %xmm7 by xoring the low into the +## second low, result into third, result into highest. +## +## Returns results in %xmm7 = %xmm0. +## Clobbers %xmm1-%xmm4, %r11. +## + +.align 4 +_vpaes_schedule_round: + // extract rcon from xmm8 + movi v4.16b, #0 // vpxor %xmm4, %xmm4, %xmm4 + ext v1.16b, v8.16b, v4.16b, #15 // vpalignr $15, %xmm8, %xmm4, %xmm1 + ext v8.16b, v8.16b, v8.16b, #15 // vpalignr $15, %xmm8, %xmm8, %xmm8 + eor v7.16b, v7.16b, v1.16b // vpxor %xmm1, %xmm7, %xmm7 + + // rotate + dup v0.4s, v0.s[3] // vpshufd $0xFF, %xmm0, %xmm0 + ext v0.16b, v0.16b, v0.16b, #1 // vpalignr $1, %xmm0, %xmm0, %xmm0 + + // fall through... + + // low round: same as high round, but no rotation and no rcon. +_vpaes_schedule_low_round: + // smear xmm7 + ext v1.16b, v4.16b, v7.16b, #12 // vpslldq $4, %xmm7, %xmm1 + eor v7.16b, v7.16b, v1.16b // vpxor %xmm1, %xmm7, %xmm7 + ext v4.16b, v4.16b, v7.16b, #8 // vpslldq $8, %xmm7, %xmm4 + + // subbytes + and v1.16b, v0.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 # 0 = k + ushr v0.16b, v0.16b, #4 // vpsrlb $4, %xmm0, %xmm0 # 1 = i + eor v7.16b, v7.16b, v4.16b // vpxor %xmm4, %xmm7, %xmm7 + tbl v2.16b, {v19.16b}, v1.16b // vpshufb %xmm1, %xmm11, %xmm2 # 2 = a/k + eor v1.16b, v1.16b, v0.16b // vpxor %xmm0, %xmm1, %xmm1 # 0 = j + tbl v3.16b, {v18.16b}, v0.16b // vpshufb %xmm0, %xmm10, %xmm3 # 3 = 1/i + eor v3.16b, v3.16b, v2.16b // vpxor %xmm2, %xmm3, %xmm3 # 3 = iak = 1/i + a/k + tbl v4.16b, {v18.16b}, v1.16b // vpshufb %xmm1, %xmm10, %xmm4 # 4 = 1/j + eor v7.16b, v7.16b, v16.16b // vpxor Lk_s63(%rip), %xmm7, %xmm7 + tbl v3.16b, {v18.16b}, v3.16b // vpshufb %xmm3, %xmm10, %xmm3 # 2 = 1/iak + eor v4.16b, v4.16b, v2.16b // vpxor %xmm2, %xmm4, %xmm4 # 4 = jak = 1/j + a/k + tbl v2.16b, {v18.16b}, v4.16b // vpshufb %xmm4, %xmm10, %xmm2 # 3 = 1/jak + eor v3.16b, v3.16b, v1.16b // vpxor %xmm1, %xmm3, %xmm3 # 2 = io + eor v2.16b, v2.16b, v0.16b // vpxor %xmm0, %xmm2, %xmm2 # 3 = jo + tbl v4.16b, {v23.16b}, v3.16b // vpshufb %xmm3, %xmm13, %xmm4 # 4 = sbou + tbl v1.16b, {v22.16b}, v2.16b // vpshufb %xmm2, %xmm12, %xmm1 # 0 = sb1t + eor v1.16b, v1.16b, v4.16b // vpxor %xmm4, %xmm1, %xmm1 # 0 = sbox output + + // add in smeared stuff + eor v0.16b, v1.16b, v7.16b // vpxor %xmm7, %xmm1, %xmm0 + eor v7.16b, v1.16b, v7.16b // vmovdqa %xmm0, %xmm7 + ret + + +## +## .aes_schedule_transform +## +## Linear-transform %xmm0 according to tables at (%r11) +## +## Requires that %xmm9 = 0x0F0F... as in preheat +## Output in %xmm0 +## Clobbers %xmm1, %xmm2 +## + +.align 4 +_vpaes_schedule_transform: + and v1.16b, v0.16b, v17.16b // vpand %xmm9, %xmm0, %xmm1 + ushr v0.16b, v0.16b, #4 // vpsrlb $4, %xmm0, %xmm0 + // vmovdqa (%r11), %xmm2 # lo + tbl v2.16b, {v20.16b}, v1.16b // vpshufb %xmm1, %xmm2, %xmm2 + // vmovdqa 16(%r11), %xmm1 # hi + tbl v0.16b, {v21.16b}, v0.16b // vpshufb %xmm0, %xmm1, %xmm0 + eor v0.16b, v0.16b, v2.16b // vpxor %xmm2, %xmm0, %xmm0 + ret + + +## +## .aes_schedule_mangle +## +## Mangle xmm0 from (basis-transformed) standard version +## to our version. +## +## On encrypt, +## xor with 0x63 +## multiply by circulant 0,1,1,1 +## apply shiftrows transform +## +## On decrypt, +## xor with 0x63 +## multiply by "inverse mixcolumns" circulant E,B,D,9 +## deskew +## apply shiftrows transform +## +## +## Writes out to (%rdx), and increments or decrements it +## Keeps track of round number mod 4 in %r8 +## Preserves xmm0 +## Clobbers xmm1-xmm5 +## + +.align 4 +_vpaes_schedule_mangle: + mov v4.16b, v0.16b // vmovdqa %xmm0, %xmm4 # save xmm0 for later + // vmovdqa .Lk_mc_forward(%rip),%xmm5 + cbnz w3, Lschedule_mangle_dec + + // encrypting + eor v4.16b, v0.16b, v16.16b // vpxor Lk_s63(%rip), %xmm0, %xmm4 + add x2, x2, #16 // add $16, %rdx + tbl v4.16b, {v4.16b}, v9.16b // vpshufb %xmm5, %xmm4, %xmm4 + tbl v1.16b, {v4.16b}, v9.16b // vpshufb %xmm5, %xmm4, %xmm1 + tbl v3.16b, {v1.16b}, v9.16b // vpshufb %xmm5, %xmm1, %xmm3 + eor v4.16b, v4.16b, v1.16b // vpxor %xmm1, %xmm4, %xmm4 + ld1 {v1.2d}, [x8] // vmovdqa (%r8,%r10), %xmm1 + eor v3.16b, v3.16b, v4.16b // vpxor %xmm4, %xmm3, %xmm3 + + b Lschedule_mangle_both +.align 4 +Lschedule_mangle_dec: + // inverse mix columns + // lea .Lk_dksd(%rip),%r11 + ushr v1.16b, v4.16b, #4 // vpsrlb $4, %xmm4, %xmm1 # 1 = hi + and v4.16b, v4.16b, v17.16b // vpand %xmm9, %xmm4, %xmm4 # 4 = lo + + // vmovdqa 0x00(%r11), %xmm2 + tbl v2.16b, {v24.16b}, v4.16b // vpshufb %xmm4, %xmm2, %xmm2 + // vmovdqa 0x10(%r11), %xmm3 + tbl v3.16b, {v25.16b}, v1.16b // vpshufb %xmm1, %xmm3, %xmm3 + eor v3.16b, v3.16b, v2.16b // vpxor %xmm2, %xmm3, %xmm3 + tbl v3.16b, {v3.16b}, v9.16b // vpshufb %xmm5, %xmm3, %xmm3 + + // vmovdqa 0x20(%r11), %xmm2 + tbl v2.16b, {v26.16b}, v4.16b // vpshufb %xmm4, %xmm2, %xmm2 + eor v2.16b, v2.16b, v3.16b // vpxor %xmm3, %xmm2, %xmm2 + // vmovdqa 0x30(%r11), %xmm3 + tbl v3.16b, {v27.16b}, v1.16b // vpshufb %xmm1, %xmm3, %xmm3 + eor v3.16b, v3.16b, v2.16b // vpxor %xmm2, %xmm3, %xmm3 + tbl v3.16b, {v3.16b}, v9.16b // vpshufb %xmm5, %xmm3, %xmm3 + + // vmovdqa 0x40(%r11), %xmm2 + tbl v2.16b, {v28.16b}, v4.16b // vpshufb %xmm4, %xmm2, %xmm2 + eor v2.16b, v2.16b, v3.16b // vpxor %xmm3, %xmm2, %xmm2 + // vmovdqa 0x50(%r11), %xmm3 + tbl v3.16b, {v29.16b}, v1.16b // vpshufb %xmm1, %xmm3, %xmm3 + eor v3.16b, v3.16b, v2.16b // vpxor %xmm2, %xmm3, %xmm3 + + // vmovdqa 0x60(%r11), %xmm2 + tbl v2.16b, {v30.16b}, v4.16b // vpshufb %xmm4, %xmm2, %xmm2 + tbl v3.16b, {v3.16b}, v9.16b // vpshufb %xmm5, %xmm3, %xmm3 + // vmovdqa 0x70(%r11), %xmm4 + tbl v4.16b, {v31.16b}, v1.16b // vpshufb %xmm1, %xmm4, %xmm4 + ld1 {v1.2d}, [x8] // vmovdqa (%r8,%r10), %xmm1 + eor v2.16b, v2.16b, v3.16b // vpxor %xmm3, %xmm2, %xmm2 + eor v3.16b, v4.16b, v2.16b // vpxor %xmm2, %xmm4, %xmm3 + + sub x2, x2, #16 // add $-16, %rdx + +Lschedule_mangle_both: + tbl v3.16b, {v3.16b}, v1.16b // vpshufb %xmm1, %xmm3, %xmm3 + add x8, x8, #64-16 // add $-16, %r8 + and x8, x8, #~(1<<6) // and $0x30, %r8 + st1 {v3.2d}, [x2] // vmovdqu %xmm3, (%rdx) + ret + + +.globl _vpaes_set_encrypt_key + +.align 4 +_vpaes_set_encrypt_key: +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + stp d8,d9,[sp,#-16]! // ABI spec says so + + lsr w9, w1, #5 // shr $5,%eax + add w9, w9, #5 // $5,%eax + str w9, [x2,#240] // mov %eax,240(%rdx) # AES_KEY->rounds = nbits/32+5; + + mov w3, #0 // mov $0,%ecx + mov x8, #0x30 // mov $0x30,%r8d + bl _vpaes_schedule_core + eor x0, x0, x0 + + ldp d8,d9,[sp],#16 + ldp x29,x30,[sp],#16 +.long 0xd50323bf // autiasp + ret + + +.globl _vpaes_set_decrypt_key + +.align 4 +_vpaes_set_decrypt_key: +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + stp d8,d9,[sp,#-16]! // ABI spec says so + + lsr w9, w1, #5 // shr $5,%eax + add w9, w9, #5 // $5,%eax + str w9, [x2,#240] // mov %eax,240(%rdx) # AES_KEY->rounds = nbits/32+5; + lsl w9, w9, #4 // shl $4,%eax + add x2, x2, #16 // lea 16(%rdx,%rax),%rdx + add x2, x2, x9 + + mov w3, #1 // mov $1,%ecx + lsr w8, w1, #1 // shr $1,%r8d + and x8, x8, #32 // and $32,%r8d + eor x8, x8, #32 // xor $32,%r8d # nbits==192?0:32 + bl _vpaes_schedule_core + + ldp d8,d9,[sp],#16 + ldp x29,x30,[sp],#16 +.long 0xd50323bf // autiasp + ret + +.globl _vpaes_cbc_encrypt + +.align 4 +_vpaes_cbc_encrypt: + cbz x2, Lcbc_abort + cmp w5, #0 // check direction + b.eq vpaes_cbc_decrypt + +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + + mov x17, x2 // reassign + mov x2, x3 // reassign + + ld1 {v0.16b}, [x4] // load ivec + bl _vpaes_encrypt_preheat + b Lcbc_enc_loop + +.align 4 +Lcbc_enc_loop: + ld1 {v7.16b}, [x0],#16 // load input + eor v7.16b, v7.16b, v0.16b // xor with ivec + bl _vpaes_encrypt_core + st1 {v0.16b}, [x1],#16 // save output + subs x17, x17, #16 + b.hi Lcbc_enc_loop + + st1 {v0.16b}, [x4] // write ivec + + ldp x29,x30,[sp],#16 +.long 0xd50323bf // autiasp +Lcbc_abort: + ret + + + +.align 4 +vpaes_cbc_decrypt: +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + stp d8,d9,[sp,#-16]! // ABI spec says so + stp d10,d11,[sp,#-16]! + stp d12,d13,[sp,#-16]! + stp d14,d15,[sp,#-16]! + + mov x17, x2 // reassign + mov x2, x3 // reassign + ld1 {v6.16b}, [x4] // load ivec + bl _vpaes_decrypt_preheat + tst x17, #16 + b.eq Lcbc_dec_loop2x + + ld1 {v7.16b}, [x0], #16 // load input + bl _vpaes_decrypt_core + eor v0.16b, v0.16b, v6.16b // xor with ivec + orr v6.16b, v7.16b, v7.16b // next ivec value + st1 {v0.16b}, [x1], #16 + subs x17, x17, #16 + b.ls Lcbc_dec_done + +.align 4 +Lcbc_dec_loop2x: + ld1 {v14.16b,v15.16b}, [x0], #32 + bl _vpaes_decrypt_2x + eor v0.16b, v0.16b, v6.16b // xor with ivec + eor v1.16b, v1.16b, v14.16b + orr v6.16b, v15.16b, v15.16b + st1 {v0.16b,v1.16b}, [x1], #32 + subs x17, x17, #32 + b.hi Lcbc_dec_loop2x + +Lcbc_dec_done: + st1 {v6.16b}, [x4] + + ldp d14,d15,[sp],#16 + ldp d12,d13,[sp],#16 + ldp d10,d11,[sp],#16 + ldp d8,d9,[sp],#16 + ldp x29,x30,[sp],#16 +.long 0xd50323bf // autiasp + ret + +.globl _vpaes_ecb_encrypt + +.align 4 +_vpaes_ecb_encrypt: +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + stp d8,d9,[sp,#-16]! // ABI spec says so + stp d10,d11,[sp,#-16]! + stp d12,d13,[sp,#-16]! + stp d14,d15,[sp,#-16]! + + mov x17, x2 + mov x2, x3 + bl _vpaes_encrypt_preheat + tst x17, #16 + b.eq Lecb_enc_loop + + ld1 {v7.16b}, [x0],#16 + bl _vpaes_encrypt_core + st1 {v0.16b}, [x1],#16 + subs x17, x17, #16 + b.ls Lecb_enc_done + +.align 4 +Lecb_enc_loop: + ld1 {v14.16b,v15.16b}, [x0], #32 + bl _vpaes_encrypt_2x + st1 {v0.16b,v1.16b}, [x1], #32 + subs x17, x17, #32 + b.hi Lecb_enc_loop + +Lecb_enc_done: + ldp d14,d15,[sp],#16 + ldp d12,d13,[sp],#16 + ldp d10,d11,[sp],#16 + ldp d8,d9,[sp],#16 + ldp x29,x30,[sp],#16 +.long 0xd50323bf // autiasp + ret + + +.globl _vpaes_ecb_decrypt + +.align 4 +_vpaes_ecb_decrypt: +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + stp d8,d9,[sp,#-16]! // ABI spec says so + stp d10,d11,[sp,#-16]! + stp d12,d13,[sp,#-16]! + stp d14,d15,[sp,#-16]! + + mov x17, x2 + mov x2, x3 + bl _vpaes_decrypt_preheat + tst x17, #16 + b.eq Lecb_dec_loop + + ld1 {v7.16b}, [x0],#16 + bl _vpaes_encrypt_core + st1 {v0.16b}, [x1],#16 + subs x17, x17, #16 + b.ls Lecb_dec_done + +.align 4 +Lecb_dec_loop: + ld1 {v14.16b,v15.16b}, [x0], #32 + bl _vpaes_decrypt_2x + st1 {v0.16b,v1.16b}, [x1], #32 + subs x17, x17, #32 + b.hi Lecb_dec_loop + +Lecb_dec_done: + ldp d14,d15,[sp],#16 + ldp d12,d13,[sp],#16 + ldp d10,d11,[sp],#16 + ldp d8,d9,[sp],#16 + ldp x29,x30,[sp],#16 +.long 0xd50323bf // autiasp + ret + diff --git a/vere/ext/openssl/gen/macos-aarch64/crypto/arm64cpuid.S b/vere/ext/openssl/gen/macos-aarch64/crypto/arm64cpuid.S new file mode 100644 index 0000000..1db01c5 --- /dev/null +++ b/vere/ext/openssl/gen/macos-aarch64/crypto/arm64cpuid.S @@ -0,0 +1,122 @@ +#include "arm_arch.h" + +.text + + +.align 5 +.globl __armv7_neon_probe + +__armv7_neon_probe: + orr v15.16b, v15.16b, v15.16b + ret + + +.globl __armv7_tick + +__armv7_tick: +#ifdef __APPLE__ + mrs x0, CNTPCT_EL0 +#else + mrs x0, CNTVCT_EL0 +#endif + ret + + +.globl __armv8_aes_probe + +__armv8_aes_probe: + aese v0.16b, v0.16b + ret + + +.globl __armv8_sha1_probe + +__armv8_sha1_probe: + sha1h s0, s0 + ret + + +.globl __armv8_sha256_probe + +__armv8_sha256_probe: + sha256su0 v0.4s, v0.4s + ret + + +.globl __armv8_pmull_probe + +__armv8_pmull_probe: + pmull v0.1q, v0.1d, v0.1d + ret + + +.globl __armv8_sha512_probe + +__armv8_sha512_probe: +.long 0xcec08000 // sha512su0 v0.2d,v0.2d + ret + + +.globl _OPENSSL_cleanse + +.align 5 +_OPENSSL_cleanse: + cbz x1,Lret // len==0? + cmp x1,#15 + b.hi Lot // len>15 + nop +Little: + strb wzr,[x0],#1 // store byte-by-byte + subs x1,x1,#1 + b.ne Little +Lret: ret + +.align 4 +Lot: tst x0,#7 + b.eq Laligned // inp is aligned + strb wzr,[x0],#1 // store byte-by-byte + sub x1,x1,#1 + b Lot + +.align 4 +Laligned: + str xzr,[x0],#8 // store word-by-word + sub x1,x1,#8 + tst x1,#-8 + b.ne Laligned // len>=8 + cbnz x1,Little // len!=0? + ret + + +.globl _CRYPTO_memcmp + +.align 4 +_CRYPTO_memcmp: + eor w3,w3,w3 + cbz x2,Lno_data // len==0? + cmp x2,#16 + b.ne Loop_cmp + ldp x8,x9,[x0] + ldp x10,x11,[x1] + eor x8,x8,x10 + eor x9,x9,x11 + orr x8,x8,x9 + mov x0,#1 + cmp x8,#0 + csel x0,xzr,x0,eq + ret + +.align 4 +Loop_cmp: + ldrb w4,[x0],#1 + ldrb w5,[x1],#1 + eor w4,w4,w5 + orr w3,w3,w4 + subs x2,x2,#1 + b.ne Loop_cmp + +Lno_data: + neg w0,w3 + lsr w0,w0,#31 + ret + diff --git a/vere/ext/openssl/gen/macos-aarch64/crypto/bn/armv8-mont.S b/vere/ext/openssl/gen/macos-aarch64/crypto/bn/armv8-mont.S new file mode 100644 index 0000000..f00b3f5 --- /dev/null +++ b/vere/ext/openssl/gen/macos-aarch64/crypto/bn/armv8-mont.S @@ -0,0 +1,1408 @@ +.text + +.globl _bn_mul_mont + +.align 5 +_bn_mul_mont: + tst x5,#7 + b.eq __bn_sqr8x_mont + tst x5,#3 + b.eq __bn_mul4x_mont +Lmul_mont: + stp x29,x30,[sp,#-64]! + add x29,sp,#0 + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + stp x23,x24,[sp,#48] + + ldr x9,[x2],#8 // bp[0] + sub x22,sp,x5,lsl#3 + ldp x7,x8,[x1],#16 // ap[0..1] + lsl x5,x5,#3 + ldr x4,[x4] // *n0 + and x22,x22,#-16 // ABI says so + ldp x13,x14,[x3],#16 // np[0..1] + + mul x6,x7,x9 // ap[0]*bp[0] + sub x21,x5,#16 // j=num-2 + umulh x7,x7,x9 + mul x10,x8,x9 // ap[1]*bp[0] + umulh x11,x8,x9 + + mul x15,x6,x4 // "tp[0]"*n0 + mov sp,x22 // alloca + + // (*) mul x12,x13,x15 // np[0]*m1 + umulh x13,x13,x15 + mul x16,x14,x15 // np[1]*m1 + // (*) adds x12,x12,x6 // discarded + // (*) As for removal of first multiplication and addition + // instructions. The outcome of first addition is + // guaranteed to be zero, which leaves two computationally + // significant outcomes: it either carries or not. Then + // question is when does it carry? Is there alternative + // way to deduce it? If you follow operations, you can + // observe that condition for carry is quite simple: + // x6 being non-zero. So that carry can be calculated + // by adding -1 to x6. That's what next instruction does. + subs xzr,x6,#1 // (*) + umulh x17,x14,x15 + adc x13,x13,xzr + cbz x21,L1st_skip + +L1st: + ldr x8,[x1],#8 + adds x6,x10,x7 + sub x21,x21,#8 // j-- + adc x7,x11,xzr + + ldr x14,[x3],#8 + adds x12,x16,x13 + mul x10,x8,x9 // ap[j]*bp[0] + adc x13,x17,xzr + umulh x11,x8,x9 + + adds x12,x12,x6 + mul x16,x14,x15 // np[j]*m1 + adc x13,x13,xzr + umulh x17,x14,x15 + str x12,[x22],#8 // tp[j-1] + cbnz x21,L1st + +L1st_skip: + adds x6,x10,x7 + sub x1,x1,x5 // rewind x1 + adc x7,x11,xzr + + adds x12,x16,x13 + sub x3,x3,x5 // rewind x3 + adc x13,x17,xzr + + adds x12,x12,x6 + sub x20,x5,#8 // i=num-1 + adcs x13,x13,x7 + + adc x19,xzr,xzr // upmost overflow bit + stp x12,x13,[x22] + +Louter: + ldr x9,[x2],#8 // bp[i] + ldp x7,x8,[x1],#16 + ldr x23,[sp] // tp[0] + add x22,sp,#8 + + mul x6,x7,x9 // ap[0]*bp[i] + sub x21,x5,#16 // j=num-2 + umulh x7,x7,x9 + ldp x13,x14,[x3],#16 + mul x10,x8,x9 // ap[1]*bp[i] + adds x6,x6,x23 + umulh x11,x8,x9 + adc x7,x7,xzr + + mul x15,x6,x4 + sub x20,x20,#8 // i-- + + // (*) mul x12,x13,x15 // np[0]*m1 + umulh x13,x13,x15 + mul x16,x14,x15 // np[1]*m1 + // (*) adds x12,x12,x6 + subs xzr,x6,#1 // (*) + umulh x17,x14,x15 + cbz x21,Linner_skip + +Linner: + ldr x8,[x1],#8 + adc x13,x13,xzr + ldr x23,[x22],#8 // tp[j] + adds x6,x10,x7 + sub x21,x21,#8 // j-- + adc x7,x11,xzr + + adds x12,x16,x13 + ldr x14,[x3],#8 + adc x13,x17,xzr + + mul x10,x8,x9 // ap[j]*bp[i] + adds x6,x6,x23 + umulh x11,x8,x9 + adc x7,x7,xzr + + mul x16,x14,x15 // np[j]*m1 + adds x12,x12,x6 + umulh x17,x14,x15 + str x12,[x22,#-16] // tp[j-1] + cbnz x21,Linner + +Linner_skip: + ldr x23,[x22],#8 // tp[j] + adc x13,x13,xzr + adds x6,x10,x7 + sub x1,x1,x5 // rewind x1 + adc x7,x11,xzr + + adds x12,x16,x13 + sub x3,x3,x5 // rewind x3 + adcs x13,x17,x19 + adc x19,xzr,xzr + + adds x6,x6,x23 + adc x7,x7,xzr + + adds x12,x12,x6 + adcs x13,x13,x7 + adc x19,x19,xzr // upmost overflow bit + stp x12,x13,[x22,#-16] + + cbnz x20,Louter + + // Final step. We see if result is larger than modulus, and + // if it is, subtract the modulus. But comparison implies + // subtraction. So we subtract modulus, see if it borrowed, + // and conditionally copy original value. + ldr x23,[sp] // tp[0] + add x22,sp,#8 + ldr x14,[x3],#8 // np[0] + subs x21,x5,#8 // j=num-1 and clear borrow + mov x1,x0 +Lsub: + sbcs x8,x23,x14 // tp[j]-np[j] + ldr x23,[x22],#8 + sub x21,x21,#8 // j-- + ldr x14,[x3],#8 + str x8,[x1],#8 // rp[j]=tp[j]-np[j] + cbnz x21,Lsub + + sbcs x8,x23,x14 + sbcs x19,x19,xzr // did it borrow? + str x8,[x1],#8 // rp[num-1] + + ldr x23,[sp] // tp[0] + add x22,sp,#8 + ldr x8,[x0],#8 // rp[0] + sub x5,x5,#8 // num-- + nop +Lcond_copy: + sub x5,x5,#8 // num-- + csel x14,x23,x8,lo // did it borrow? + ldr x23,[x22],#8 + ldr x8,[x0],#8 + str xzr,[x22,#-16] // wipe tp + str x14,[x0,#-16] + cbnz x5,Lcond_copy + + csel x14,x23,x8,lo + str xzr,[x22,#-8] // wipe tp + str x14,[x0,#-8] + + ldp x19,x20,[x29,#16] + mov sp,x29 + ldp x21,x22,[x29,#32] + mov x0,#1 + ldp x23,x24,[x29,#48] + ldr x29,[sp],#64 + ret + + +.align 5 +__bn_sqr8x_mont: + cmp x1,x2 + b.ne __bn_mul4x_mont +Lsqr8x_mont: +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-128]! + add x29,sp,#0 + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + stp x23,x24,[sp,#48] + stp x25,x26,[sp,#64] + stp x27,x28,[sp,#80] + stp x0,x3,[sp,#96] // offload rp and np + + ldp x6,x7,[x1,#8*0] + ldp x8,x9,[x1,#8*2] + ldp x10,x11,[x1,#8*4] + ldp x12,x13,[x1,#8*6] + + sub x2,sp,x5,lsl#4 + lsl x5,x5,#3 + ldr x4,[x4] // *n0 + mov sp,x2 // alloca + sub x27,x5,#8*8 + b Lsqr8x_zero_start + +Lsqr8x_zero: + sub x27,x27,#8*8 + stp xzr,xzr,[x2,#8*0] + stp xzr,xzr,[x2,#8*2] + stp xzr,xzr,[x2,#8*4] + stp xzr,xzr,[x2,#8*6] +Lsqr8x_zero_start: + stp xzr,xzr,[x2,#8*8] + stp xzr,xzr,[x2,#8*10] + stp xzr,xzr,[x2,#8*12] + stp xzr,xzr,[x2,#8*14] + add x2,x2,#8*16 + cbnz x27,Lsqr8x_zero + + add x3,x1,x5 + add x1,x1,#8*8 + mov x19,xzr + mov x20,xzr + mov x21,xzr + mov x22,xzr + mov x23,xzr + mov x24,xzr + mov x25,xzr + mov x26,xzr + mov x2,sp + str x4,[x29,#112] // offload n0 + + // Multiply everything but a[i]*a[i] +.align 4 +Lsqr8x_outer_loop: + // a[1]a[0] (i) + // a[2]a[0] + // a[3]a[0] + // a[4]a[0] + // a[5]a[0] + // a[6]a[0] + // a[7]a[0] + // a[2]a[1] (ii) + // a[3]a[1] + // a[4]a[1] + // a[5]a[1] + // a[6]a[1] + // a[7]a[1] + // a[3]a[2] (iii) + // a[4]a[2] + // a[5]a[2] + // a[6]a[2] + // a[7]a[2] + // a[4]a[3] (iv) + // a[5]a[3] + // a[6]a[3] + // a[7]a[3] + // a[5]a[4] (v) + // a[6]a[4] + // a[7]a[4] + // a[6]a[5] (vi) + // a[7]a[5] + // a[7]a[6] (vii) + + mul x14,x7,x6 // lo(a[1..7]*a[0]) (i) + mul x15,x8,x6 + mul x16,x9,x6 + mul x17,x10,x6 + adds x20,x20,x14 // t[1]+lo(a[1]*a[0]) + mul x14,x11,x6 + adcs x21,x21,x15 + mul x15,x12,x6 + adcs x22,x22,x16 + mul x16,x13,x6 + adcs x23,x23,x17 + umulh x17,x7,x6 // hi(a[1..7]*a[0]) + adcs x24,x24,x14 + umulh x14,x8,x6 + adcs x25,x25,x15 + umulh x15,x9,x6 + adcs x26,x26,x16 + umulh x16,x10,x6 + stp x19,x20,[x2],#8*2 // t[0..1] + adc x19,xzr,xzr // t[8] + adds x21,x21,x17 // t[2]+lo(a[1]*a[0]) + umulh x17,x11,x6 + adcs x22,x22,x14 + umulh x14,x12,x6 + adcs x23,x23,x15 + umulh x15,x13,x6 + adcs x24,x24,x16 + mul x16,x8,x7 // lo(a[2..7]*a[1]) (ii) + adcs x25,x25,x17 + mul x17,x9,x7 + adcs x26,x26,x14 + mul x14,x10,x7 + adc x19,x19,x15 + + mul x15,x11,x7 + adds x22,x22,x16 + mul x16,x12,x7 + adcs x23,x23,x17 + mul x17,x13,x7 + adcs x24,x24,x14 + umulh x14,x8,x7 // hi(a[2..7]*a[1]) + adcs x25,x25,x15 + umulh x15,x9,x7 + adcs x26,x26,x16 + umulh x16,x10,x7 + adcs x19,x19,x17 + umulh x17,x11,x7 + stp x21,x22,[x2],#8*2 // t[2..3] + adc x20,xzr,xzr // t[9] + adds x23,x23,x14 + umulh x14,x12,x7 + adcs x24,x24,x15 + umulh x15,x13,x7 + adcs x25,x25,x16 + mul x16,x9,x8 // lo(a[3..7]*a[2]) (iii) + adcs x26,x26,x17 + mul x17,x10,x8 + adcs x19,x19,x14 + mul x14,x11,x8 + adc x20,x20,x15 + + mul x15,x12,x8 + adds x24,x24,x16 + mul x16,x13,x8 + adcs x25,x25,x17 + umulh x17,x9,x8 // hi(a[3..7]*a[2]) + adcs x26,x26,x14 + umulh x14,x10,x8 + adcs x19,x19,x15 + umulh x15,x11,x8 + adcs x20,x20,x16 + umulh x16,x12,x8 + stp x23,x24,[x2],#8*2 // t[4..5] + adc x21,xzr,xzr // t[10] + adds x25,x25,x17 + umulh x17,x13,x8 + adcs x26,x26,x14 + mul x14,x10,x9 // lo(a[4..7]*a[3]) (iv) + adcs x19,x19,x15 + mul x15,x11,x9 + adcs x20,x20,x16 + mul x16,x12,x9 + adc x21,x21,x17 + + mul x17,x13,x9 + adds x26,x26,x14 + umulh x14,x10,x9 // hi(a[4..7]*a[3]) + adcs x19,x19,x15 + umulh x15,x11,x9 + adcs x20,x20,x16 + umulh x16,x12,x9 + adcs x21,x21,x17 + umulh x17,x13,x9 + stp x25,x26,[x2],#8*2 // t[6..7] + adc x22,xzr,xzr // t[11] + adds x19,x19,x14 + mul x14,x11,x10 // lo(a[5..7]*a[4]) (v) + adcs x20,x20,x15 + mul x15,x12,x10 + adcs x21,x21,x16 + mul x16,x13,x10 + adc x22,x22,x17 + + umulh x17,x11,x10 // hi(a[5..7]*a[4]) + adds x20,x20,x14 + umulh x14,x12,x10 + adcs x21,x21,x15 + umulh x15,x13,x10 + adcs x22,x22,x16 + mul x16,x12,x11 // lo(a[6..7]*a[5]) (vi) + adc x23,xzr,xzr // t[12] + adds x21,x21,x17 + mul x17,x13,x11 + adcs x22,x22,x14 + umulh x14,x12,x11 // hi(a[6..7]*a[5]) + adc x23,x23,x15 + + umulh x15,x13,x11 + adds x22,x22,x16 + mul x16,x13,x12 // lo(a[7]*a[6]) (vii) + adcs x23,x23,x17 + umulh x17,x13,x12 // hi(a[7]*a[6]) + adc x24,xzr,xzr // t[13] + adds x23,x23,x14 + sub x27,x3,x1 // done yet? + adc x24,x24,x15 + + adds x24,x24,x16 + sub x14,x3,x5 // rewinded ap + adc x25,xzr,xzr // t[14] + add x25,x25,x17 + + cbz x27,Lsqr8x_outer_break + + mov x4,x6 + ldp x6,x7,[x2,#8*0] + ldp x8,x9,[x2,#8*2] + ldp x10,x11,[x2,#8*4] + ldp x12,x13,[x2,#8*6] + adds x19,x19,x6 + adcs x20,x20,x7 + ldp x6,x7,[x1,#8*0] + adcs x21,x21,x8 + adcs x22,x22,x9 + ldp x8,x9,[x1,#8*2] + adcs x23,x23,x10 + adcs x24,x24,x11 + ldp x10,x11,[x1,#8*4] + adcs x25,x25,x12 + mov x0,x1 + adcs x26,xzr,x13 + ldp x12,x13,[x1,#8*6] + add x1,x1,#8*8 + //adc x28,xzr,xzr // moved below + mov x27,#-8*8 + + // a[8]a[0] + // a[9]a[0] + // a[a]a[0] + // a[b]a[0] + // a[c]a[0] + // a[d]a[0] + // a[e]a[0] + // a[f]a[0] + // a[8]a[1] + // a[f]a[1]........................ + // a[8]a[2] + // a[f]a[2]........................ + // a[8]a[3] + // a[f]a[3]........................ + // a[8]a[4] + // a[f]a[4]........................ + // a[8]a[5] + // a[f]a[5]........................ + // a[8]a[6] + // a[f]a[6]........................ + // a[8]a[7] + // a[f]a[7]........................ +Lsqr8x_mul: + mul x14,x6,x4 + adc x28,xzr,xzr // carry bit, modulo-scheduled + mul x15,x7,x4 + add x27,x27,#8 + mul x16,x8,x4 + mul x17,x9,x4 + adds x19,x19,x14 + mul x14,x10,x4 + adcs x20,x20,x15 + mul x15,x11,x4 + adcs x21,x21,x16 + mul x16,x12,x4 + adcs x22,x22,x17 + mul x17,x13,x4 + adcs x23,x23,x14 + umulh x14,x6,x4 + adcs x24,x24,x15 + umulh x15,x7,x4 + adcs x25,x25,x16 + umulh x16,x8,x4 + adcs x26,x26,x17 + umulh x17,x9,x4 + adc x28,x28,xzr + str x19,[x2],#8 + adds x19,x20,x14 + umulh x14,x10,x4 + adcs x20,x21,x15 + umulh x15,x11,x4 + adcs x21,x22,x16 + umulh x16,x12,x4 + adcs x22,x23,x17 + umulh x17,x13,x4 + ldr x4,[x0,x27] + adcs x23,x24,x14 + adcs x24,x25,x15 + adcs x25,x26,x16 + adcs x26,x28,x17 + //adc x28,xzr,xzr // moved above + cbnz x27,Lsqr8x_mul + // note that carry flag is guaranteed + // to be zero at this point + cmp x1,x3 // done yet? + b.eq Lsqr8x_break + + ldp x6,x7,[x2,#8*0] + ldp x8,x9,[x2,#8*2] + ldp x10,x11,[x2,#8*4] + ldp x12,x13,[x2,#8*6] + adds x19,x19,x6 + ldr x4,[x0,#-8*8] + adcs x20,x20,x7 + ldp x6,x7,[x1,#8*0] + adcs x21,x21,x8 + adcs x22,x22,x9 + ldp x8,x9,[x1,#8*2] + adcs x23,x23,x10 + adcs x24,x24,x11 + ldp x10,x11,[x1,#8*4] + adcs x25,x25,x12 + mov x27,#-8*8 + adcs x26,x26,x13 + ldp x12,x13,[x1,#8*6] + add x1,x1,#8*8 + //adc x28,xzr,xzr // moved above + b Lsqr8x_mul + +.align 4 +Lsqr8x_break: + ldp x6,x7,[x0,#8*0] + add x1,x0,#8*8 + ldp x8,x9,[x0,#8*2] + sub x14,x3,x1 // is it last iteration? + ldp x10,x11,[x0,#8*4] + sub x15,x2,x14 + ldp x12,x13,[x0,#8*6] + cbz x14,Lsqr8x_outer_loop + + stp x19,x20,[x2,#8*0] + ldp x19,x20,[x15,#8*0] + stp x21,x22,[x2,#8*2] + ldp x21,x22,[x15,#8*2] + stp x23,x24,[x2,#8*4] + ldp x23,x24,[x15,#8*4] + stp x25,x26,[x2,#8*6] + mov x2,x15 + ldp x25,x26,[x15,#8*6] + b Lsqr8x_outer_loop + +.align 4 +Lsqr8x_outer_break: + // Now multiply above result by 2 and add a[n-1]*a[n-1]|...|a[0]*a[0] + ldp x7,x9,[x14,#8*0] // recall that x14 is &a[0] + ldp x15,x16,[sp,#8*1] + ldp x11,x13,[x14,#8*2] + add x1,x14,#8*4 + ldp x17,x14,[sp,#8*3] + + stp x19,x20,[x2,#8*0] + mul x19,x7,x7 + stp x21,x22,[x2,#8*2] + umulh x7,x7,x7 + stp x23,x24,[x2,#8*4] + mul x8,x9,x9 + stp x25,x26,[x2,#8*6] + mov x2,sp + umulh x9,x9,x9 + adds x20,x7,x15,lsl#1 + extr x15,x16,x15,#63 + sub x27,x5,#8*4 + +Lsqr4x_shift_n_add: + adcs x21,x8,x15 + extr x16,x17,x16,#63 + sub x27,x27,#8*4 + adcs x22,x9,x16 + ldp x15,x16,[x2,#8*5] + mul x10,x11,x11 + ldp x7,x9,[x1],#8*2 + umulh x11,x11,x11 + mul x12,x13,x13 + umulh x13,x13,x13 + extr x17,x14,x17,#63 + stp x19,x20,[x2,#8*0] + adcs x23,x10,x17 + extr x14,x15,x14,#63 + stp x21,x22,[x2,#8*2] + adcs x24,x11,x14 + ldp x17,x14,[x2,#8*7] + extr x15,x16,x15,#63 + adcs x25,x12,x15 + extr x16,x17,x16,#63 + adcs x26,x13,x16 + ldp x15,x16,[x2,#8*9] + mul x6,x7,x7 + ldp x11,x13,[x1],#8*2 + umulh x7,x7,x7 + mul x8,x9,x9 + umulh x9,x9,x9 + stp x23,x24,[x2,#8*4] + extr x17,x14,x17,#63 + stp x25,x26,[x2,#8*6] + add x2,x2,#8*8 + adcs x19,x6,x17 + extr x14,x15,x14,#63 + adcs x20,x7,x14 + ldp x17,x14,[x2,#8*3] + extr x15,x16,x15,#63 + cbnz x27,Lsqr4x_shift_n_add + ldp x1,x4,[x29,#104] // pull np and n0 + + adcs x21,x8,x15 + extr x16,x17,x16,#63 + adcs x22,x9,x16 + ldp x15,x16,[x2,#8*5] + mul x10,x11,x11 + umulh x11,x11,x11 + stp x19,x20,[x2,#8*0] + mul x12,x13,x13 + umulh x13,x13,x13 + stp x21,x22,[x2,#8*2] + extr x17,x14,x17,#63 + adcs x23,x10,x17 + extr x14,x15,x14,#63 + ldp x19,x20,[sp,#8*0] + adcs x24,x11,x14 + extr x15,x16,x15,#63 + ldp x6,x7,[x1,#8*0] + adcs x25,x12,x15 + extr x16,xzr,x16,#63 + ldp x8,x9,[x1,#8*2] + adc x26,x13,x16 + ldp x10,x11,[x1,#8*4] + + // Reduce by 512 bits per iteration + mul x28,x4,x19 // t[0]*n0 + ldp x12,x13,[x1,#8*6] + add x3,x1,x5 + ldp x21,x22,[sp,#8*2] + stp x23,x24,[x2,#8*4] + ldp x23,x24,[sp,#8*4] + stp x25,x26,[x2,#8*6] + ldp x25,x26,[sp,#8*6] + add x1,x1,#8*8 + mov x30,xzr // initial top-most carry + mov x2,sp + mov x27,#8 + +Lsqr8x_reduction: + // (*) mul x14,x6,x28 // lo(n[0-7])*lo(t[0]*n0) + mul x15,x7,x28 + sub x27,x27,#1 + mul x16,x8,x28 + str x28,[x2],#8 // put aside t[0]*n0 for tail processing + mul x17,x9,x28 + // (*) adds xzr,x19,x14 + subs xzr,x19,#1 // (*) + mul x14,x10,x28 + adcs x19,x20,x15 + mul x15,x11,x28 + adcs x20,x21,x16 + mul x16,x12,x28 + adcs x21,x22,x17 + mul x17,x13,x28 + adcs x22,x23,x14 + umulh x14,x6,x28 // hi(n[0-7])*lo(t[0]*n0) + adcs x23,x24,x15 + umulh x15,x7,x28 + adcs x24,x25,x16 + umulh x16,x8,x28 + adcs x25,x26,x17 + umulh x17,x9,x28 + adc x26,xzr,xzr + adds x19,x19,x14 + umulh x14,x10,x28 + adcs x20,x20,x15 + umulh x15,x11,x28 + adcs x21,x21,x16 + umulh x16,x12,x28 + adcs x22,x22,x17 + umulh x17,x13,x28 + mul x28,x4,x19 // next t[0]*n0 + adcs x23,x23,x14 + adcs x24,x24,x15 + adcs x25,x25,x16 + adc x26,x26,x17 + cbnz x27,Lsqr8x_reduction + + ldp x14,x15,[x2,#8*0] + ldp x16,x17,[x2,#8*2] + mov x0,x2 + sub x27,x3,x1 // done yet? + adds x19,x19,x14 + adcs x20,x20,x15 + ldp x14,x15,[x2,#8*4] + adcs x21,x21,x16 + adcs x22,x22,x17 + ldp x16,x17,[x2,#8*6] + adcs x23,x23,x14 + adcs x24,x24,x15 + adcs x25,x25,x16 + adcs x26,x26,x17 + //adc x28,xzr,xzr // moved below + cbz x27,Lsqr8x8_post_condition + + ldr x4,[x2,#-8*8] + ldp x6,x7,[x1,#8*0] + ldp x8,x9,[x1,#8*2] + ldp x10,x11,[x1,#8*4] + mov x27,#-8*8 + ldp x12,x13,[x1,#8*6] + add x1,x1,#8*8 + +Lsqr8x_tail: + mul x14,x6,x4 + adc x28,xzr,xzr // carry bit, modulo-scheduled + mul x15,x7,x4 + add x27,x27,#8 + mul x16,x8,x4 + mul x17,x9,x4 + adds x19,x19,x14 + mul x14,x10,x4 + adcs x20,x20,x15 + mul x15,x11,x4 + adcs x21,x21,x16 + mul x16,x12,x4 + adcs x22,x22,x17 + mul x17,x13,x4 + adcs x23,x23,x14 + umulh x14,x6,x4 + adcs x24,x24,x15 + umulh x15,x7,x4 + adcs x25,x25,x16 + umulh x16,x8,x4 + adcs x26,x26,x17 + umulh x17,x9,x4 + adc x28,x28,xzr + str x19,[x2],#8 + adds x19,x20,x14 + umulh x14,x10,x4 + adcs x20,x21,x15 + umulh x15,x11,x4 + adcs x21,x22,x16 + umulh x16,x12,x4 + adcs x22,x23,x17 + umulh x17,x13,x4 + ldr x4,[x0,x27] + adcs x23,x24,x14 + adcs x24,x25,x15 + adcs x25,x26,x16 + adcs x26,x28,x17 + //adc x28,xzr,xzr // moved above + cbnz x27,Lsqr8x_tail + // note that carry flag is guaranteed + // to be zero at this point + ldp x6,x7,[x2,#8*0] + sub x27,x3,x1 // done yet? + sub x16,x3,x5 // rewinded np + ldp x8,x9,[x2,#8*2] + ldp x10,x11,[x2,#8*4] + ldp x12,x13,[x2,#8*6] + cbz x27,Lsqr8x_tail_break + + ldr x4,[x0,#-8*8] + adds x19,x19,x6 + adcs x20,x20,x7 + ldp x6,x7,[x1,#8*0] + adcs x21,x21,x8 + adcs x22,x22,x9 + ldp x8,x9,[x1,#8*2] + adcs x23,x23,x10 + adcs x24,x24,x11 + ldp x10,x11,[x1,#8*4] + adcs x25,x25,x12 + mov x27,#-8*8 + adcs x26,x26,x13 + ldp x12,x13,[x1,#8*6] + add x1,x1,#8*8 + //adc x28,xzr,xzr // moved above + b Lsqr8x_tail + +.align 4 +Lsqr8x_tail_break: + ldr x4,[x29,#112] // pull n0 + add x27,x2,#8*8 // end of current t[num] window + + subs xzr,x30,#1 // "move" top-most carry to carry bit + adcs x14,x19,x6 + adcs x15,x20,x7 + ldp x19,x20,[x0,#8*0] + adcs x21,x21,x8 + ldp x6,x7,[x16,#8*0] // recall that x16 is &n[0] + adcs x22,x22,x9 + ldp x8,x9,[x16,#8*2] + adcs x23,x23,x10 + adcs x24,x24,x11 + ldp x10,x11,[x16,#8*4] + adcs x25,x25,x12 + adcs x26,x26,x13 + ldp x12,x13,[x16,#8*6] + add x1,x16,#8*8 + adc x30,xzr,xzr // top-most carry + mul x28,x4,x19 + stp x14,x15,[x2,#8*0] + stp x21,x22,[x2,#8*2] + ldp x21,x22,[x0,#8*2] + stp x23,x24,[x2,#8*4] + ldp x23,x24,[x0,#8*4] + cmp x27,x29 // did we hit the bottom? + stp x25,x26,[x2,#8*6] + mov x2,x0 // slide the window + ldp x25,x26,[x0,#8*6] + mov x27,#8 + b.ne Lsqr8x_reduction + + // Final step. We see if result is larger than modulus, and + // if it is, subtract the modulus. But comparison implies + // subtraction. So we subtract modulus, see if it borrowed, + // and conditionally copy original value. + ldr x0,[x29,#96] // pull rp + add x2,x2,#8*8 + subs x14,x19,x6 + sbcs x15,x20,x7 + sub x27,x5,#8*8 + mov x3,x0 // x0 copy + +Lsqr8x_sub: + sbcs x16,x21,x8 + ldp x6,x7,[x1,#8*0] + sbcs x17,x22,x9 + stp x14,x15,[x0,#8*0] + sbcs x14,x23,x10 + ldp x8,x9,[x1,#8*2] + sbcs x15,x24,x11 + stp x16,x17,[x0,#8*2] + sbcs x16,x25,x12 + ldp x10,x11,[x1,#8*4] + sbcs x17,x26,x13 + ldp x12,x13,[x1,#8*6] + add x1,x1,#8*8 + ldp x19,x20,[x2,#8*0] + sub x27,x27,#8*8 + ldp x21,x22,[x2,#8*2] + ldp x23,x24,[x2,#8*4] + ldp x25,x26,[x2,#8*6] + add x2,x2,#8*8 + stp x14,x15,[x0,#8*4] + sbcs x14,x19,x6 + stp x16,x17,[x0,#8*6] + add x0,x0,#8*8 + sbcs x15,x20,x7 + cbnz x27,Lsqr8x_sub + + sbcs x16,x21,x8 + mov x2,sp + add x1,sp,x5 + ldp x6,x7,[x3,#8*0] + sbcs x17,x22,x9 + stp x14,x15,[x0,#8*0] + sbcs x14,x23,x10 + ldp x8,x9,[x3,#8*2] + sbcs x15,x24,x11 + stp x16,x17,[x0,#8*2] + sbcs x16,x25,x12 + ldp x19,x20,[x1,#8*0] + sbcs x17,x26,x13 + ldp x21,x22,[x1,#8*2] + sbcs xzr,x30,xzr // did it borrow? + ldr x30,[x29,#8] // pull return address + stp x14,x15,[x0,#8*4] + stp x16,x17,[x0,#8*6] + + sub x27,x5,#8*4 +Lsqr4x_cond_copy: + sub x27,x27,#8*4 + csel x14,x19,x6,lo + stp xzr,xzr,[x2,#8*0] + csel x15,x20,x7,lo + ldp x6,x7,[x3,#8*4] + ldp x19,x20,[x1,#8*4] + csel x16,x21,x8,lo + stp xzr,xzr,[x2,#8*2] + add x2,x2,#8*4 + csel x17,x22,x9,lo + ldp x8,x9,[x3,#8*6] + ldp x21,x22,[x1,#8*6] + add x1,x1,#8*4 + stp x14,x15,[x3,#8*0] + stp x16,x17,[x3,#8*2] + add x3,x3,#8*4 + stp xzr,xzr,[x1,#8*0] + stp xzr,xzr,[x1,#8*2] + cbnz x27,Lsqr4x_cond_copy + + csel x14,x19,x6,lo + stp xzr,xzr,[x2,#8*0] + csel x15,x20,x7,lo + stp xzr,xzr,[x2,#8*2] + csel x16,x21,x8,lo + csel x17,x22,x9,lo + stp x14,x15,[x3,#8*0] + stp x16,x17,[x3,#8*2] + + b Lsqr8x_done + +.align 4 +Lsqr8x8_post_condition: + adc x28,xzr,xzr + ldr x30,[x29,#8] // pull return address + // x19-7,x28 hold result, x6-7 hold modulus + subs x6,x19,x6 + ldr x1,[x29,#96] // pull rp + sbcs x7,x20,x7 + stp xzr,xzr,[sp,#8*0] + sbcs x8,x21,x8 + stp xzr,xzr,[sp,#8*2] + sbcs x9,x22,x9 + stp xzr,xzr,[sp,#8*4] + sbcs x10,x23,x10 + stp xzr,xzr,[sp,#8*6] + sbcs x11,x24,x11 + stp xzr,xzr,[sp,#8*8] + sbcs x12,x25,x12 + stp xzr,xzr,[sp,#8*10] + sbcs x13,x26,x13 + stp xzr,xzr,[sp,#8*12] + sbcs x28,x28,xzr // did it borrow? + stp xzr,xzr,[sp,#8*14] + + // x6-7 hold result-modulus + csel x6,x19,x6,lo + csel x7,x20,x7,lo + csel x8,x21,x8,lo + csel x9,x22,x9,lo + stp x6,x7,[x1,#8*0] + csel x10,x23,x10,lo + csel x11,x24,x11,lo + stp x8,x9,[x1,#8*2] + csel x12,x25,x12,lo + csel x13,x26,x13,lo + stp x10,x11,[x1,#8*4] + stp x12,x13,[x1,#8*6] + +Lsqr8x_done: + ldp x19,x20,[x29,#16] + mov sp,x29 + ldp x21,x22,[x29,#32] + mov x0,#1 + ldp x23,x24,[x29,#48] + ldp x25,x26,[x29,#64] + ldp x27,x28,[x29,#80] + ldr x29,[sp],#128 +.long 0xd50323bf // autiasp + ret + + +.align 5 +__bn_mul4x_mont: +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-128]! + add x29,sp,#0 + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + stp x23,x24,[sp,#48] + stp x25,x26,[sp,#64] + stp x27,x28,[sp,#80] + + sub x26,sp,x5,lsl#3 + lsl x5,x5,#3 + ldr x4,[x4] // *n0 + sub sp,x26,#8*4 // alloca + + add x10,x2,x5 + add x27,x1,x5 + stp x0,x10,[x29,#96] // offload rp and &b[num] + + ldr x24,[x2,#8*0] // b[0] + ldp x6,x7,[x1,#8*0] // a[0..3] + ldp x8,x9,[x1,#8*2] + add x1,x1,#8*4 + mov x19,xzr + mov x20,xzr + mov x21,xzr + mov x22,xzr + ldp x14,x15,[x3,#8*0] // n[0..3] + ldp x16,x17,[x3,#8*2] + adds x3,x3,#8*4 // clear carry bit + mov x0,xzr + mov x28,#0 + mov x26,sp + +Loop_mul4x_1st_reduction: + mul x10,x6,x24 // lo(a[0..3]*b[0]) + adc x0,x0,xzr // modulo-scheduled + mul x11,x7,x24 + add x28,x28,#8 + mul x12,x8,x24 + and x28,x28,#31 + mul x13,x9,x24 + adds x19,x19,x10 + umulh x10,x6,x24 // hi(a[0..3]*b[0]) + adcs x20,x20,x11 + mul x25,x19,x4 // t[0]*n0 + adcs x21,x21,x12 + umulh x11,x7,x24 + adcs x22,x22,x13 + umulh x12,x8,x24 + adc x23,xzr,xzr + umulh x13,x9,x24 + ldr x24,[x2,x28] // next b[i] (or b[0]) + adds x20,x20,x10 + // (*) mul x10,x14,x25 // lo(n[0..3]*t[0]*n0) + str x25,[x26],#8 // put aside t[0]*n0 for tail processing + adcs x21,x21,x11 + mul x11,x15,x25 + adcs x22,x22,x12 + mul x12,x16,x25 + adc x23,x23,x13 // can't overflow + mul x13,x17,x25 + // (*) adds xzr,x19,x10 + subs xzr,x19,#1 // (*) + umulh x10,x14,x25 // hi(n[0..3]*t[0]*n0) + adcs x19,x20,x11 + umulh x11,x15,x25 + adcs x20,x21,x12 + umulh x12,x16,x25 + adcs x21,x22,x13 + umulh x13,x17,x25 + adcs x22,x23,x0 + adc x0,xzr,xzr + adds x19,x19,x10 + sub x10,x27,x1 + adcs x20,x20,x11 + adcs x21,x21,x12 + adcs x22,x22,x13 + //adc x0,x0,xzr + cbnz x28,Loop_mul4x_1st_reduction + + cbz x10,Lmul4x4_post_condition + + ldp x6,x7,[x1,#8*0] // a[4..7] + ldp x8,x9,[x1,#8*2] + add x1,x1,#8*4 + ldr x25,[sp] // a[0]*n0 + ldp x14,x15,[x3,#8*0] // n[4..7] + ldp x16,x17,[x3,#8*2] + add x3,x3,#8*4 + +Loop_mul4x_1st_tail: + mul x10,x6,x24 // lo(a[4..7]*b[i]) + adc x0,x0,xzr // modulo-scheduled + mul x11,x7,x24 + add x28,x28,#8 + mul x12,x8,x24 + and x28,x28,#31 + mul x13,x9,x24 + adds x19,x19,x10 + umulh x10,x6,x24 // hi(a[4..7]*b[i]) + adcs x20,x20,x11 + umulh x11,x7,x24 + adcs x21,x21,x12 + umulh x12,x8,x24 + adcs x22,x22,x13 + umulh x13,x9,x24 + adc x23,xzr,xzr + ldr x24,[x2,x28] // next b[i] (or b[0]) + adds x20,x20,x10 + mul x10,x14,x25 // lo(n[4..7]*a[0]*n0) + adcs x21,x21,x11 + mul x11,x15,x25 + adcs x22,x22,x12 + mul x12,x16,x25 + adc x23,x23,x13 // can't overflow + mul x13,x17,x25 + adds x19,x19,x10 + umulh x10,x14,x25 // hi(n[4..7]*a[0]*n0) + adcs x20,x20,x11 + umulh x11,x15,x25 + adcs x21,x21,x12 + umulh x12,x16,x25 + adcs x22,x22,x13 + adcs x23,x23,x0 + umulh x13,x17,x25 + adc x0,xzr,xzr + ldr x25,[sp,x28] // next t[0]*n0 + str x19,[x26],#8 // result!!! + adds x19,x20,x10 + sub x10,x27,x1 // done yet? + adcs x20,x21,x11 + adcs x21,x22,x12 + adcs x22,x23,x13 + //adc x0,x0,xzr + cbnz x28,Loop_mul4x_1st_tail + + sub x11,x27,x5 // rewinded x1 + cbz x10,Lmul4x_proceed + + ldp x6,x7,[x1,#8*0] + ldp x8,x9,[x1,#8*2] + add x1,x1,#8*4 + ldp x14,x15,[x3,#8*0] + ldp x16,x17,[x3,#8*2] + add x3,x3,#8*4 + b Loop_mul4x_1st_tail + +.align 5 +Lmul4x_proceed: + ldr x24,[x2,#8*4]! // *++b + adc x30,x0,xzr + ldp x6,x7,[x11,#8*0] // a[0..3] + sub x3,x3,x5 // rewind np + ldp x8,x9,[x11,#8*2] + add x1,x11,#8*4 + + stp x19,x20,[x26,#8*0] // result!!! + ldp x19,x20,[sp,#8*4] // t[0..3] + stp x21,x22,[x26,#8*2] // result!!! + ldp x21,x22,[sp,#8*6] + + ldp x14,x15,[x3,#8*0] // n[0..3] + mov x26,sp + ldp x16,x17,[x3,#8*2] + adds x3,x3,#8*4 // clear carry bit + mov x0,xzr + +.align 4 +Loop_mul4x_reduction: + mul x10,x6,x24 // lo(a[0..3]*b[4]) + adc x0,x0,xzr // modulo-scheduled + mul x11,x7,x24 + add x28,x28,#8 + mul x12,x8,x24 + and x28,x28,#31 + mul x13,x9,x24 + adds x19,x19,x10 + umulh x10,x6,x24 // hi(a[0..3]*b[4]) + adcs x20,x20,x11 + mul x25,x19,x4 // t[0]*n0 + adcs x21,x21,x12 + umulh x11,x7,x24 + adcs x22,x22,x13 + umulh x12,x8,x24 + adc x23,xzr,xzr + umulh x13,x9,x24 + ldr x24,[x2,x28] // next b[i] + adds x20,x20,x10 + // (*) mul x10,x14,x25 + str x25,[x26],#8 // put aside t[0]*n0 for tail processing + adcs x21,x21,x11 + mul x11,x15,x25 // lo(n[0..3]*t[0]*n0 + adcs x22,x22,x12 + mul x12,x16,x25 + adc x23,x23,x13 // can't overflow + mul x13,x17,x25 + // (*) adds xzr,x19,x10 + subs xzr,x19,#1 // (*) + umulh x10,x14,x25 // hi(n[0..3]*t[0]*n0 + adcs x19,x20,x11 + umulh x11,x15,x25 + adcs x20,x21,x12 + umulh x12,x16,x25 + adcs x21,x22,x13 + umulh x13,x17,x25 + adcs x22,x23,x0 + adc x0,xzr,xzr + adds x19,x19,x10 + adcs x20,x20,x11 + adcs x21,x21,x12 + adcs x22,x22,x13 + //adc x0,x0,xzr + cbnz x28,Loop_mul4x_reduction + + adc x0,x0,xzr + ldp x10,x11,[x26,#8*4] // t[4..7] + ldp x12,x13,[x26,#8*6] + ldp x6,x7,[x1,#8*0] // a[4..7] + ldp x8,x9,[x1,#8*2] + add x1,x1,#8*4 + adds x19,x19,x10 + adcs x20,x20,x11 + adcs x21,x21,x12 + adcs x22,x22,x13 + //adc x0,x0,xzr + + ldr x25,[sp] // t[0]*n0 + ldp x14,x15,[x3,#8*0] // n[4..7] + ldp x16,x17,[x3,#8*2] + add x3,x3,#8*4 + +.align 4 +Loop_mul4x_tail: + mul x10,x6,x24 // lo(a[4..7]*b[4]) + adc x0,x0,xzr // modulo-scheduled + mul x11,x7,x24 + add x28,x28,#8 + mul x12,x8,x24 + and x28,x28,#31 + mul x13,x9,x24 + adds x19,x19,x10 + umulh x10,x6,x24 // hi(a[4..7]*b[4]) + adcs x20,x20,x11 + umulh x11,x7,x24 + adcs x21,x21,x12 + umulh x12,x8,x24 + adcs x22,x22,x13 + umulh x13,x9,x24 + adc x23,xzr,xzr + ldr x24,[x2,x28] // next b[i] + adds x20,x20,x10 + mul x10,x14,x25 // lo(n[4..7]*t[0]*n0) + adcs x21,x21,x11 + mul x11,x15,x25 + adcs x22,x22,x12 + mul x12,x16,x25 + adc x23,x23,x13 // can't overflow + mul x13,x17,x25 + adds x19,x19,x10 + umulh x10,x14,x25 // hi(n[4..7]*t[0]*n0) + adcs x20,x20,x11 + umulh x11,x15,x25 + adcs x21,x21,x12 + umulh x12,x16,x25 + adcs x22,x22,x13 + umulh x13,x17,x25 + adcs x23,x23,x0 + ldr x25,[sp,x28] // next a[0]*n0 + adc x0,xzr,xzr + str x19,[x26],#8 // result!!! + adds x19,x20,x10 + sub x10,x27,x1 // done yet? + adcs x20,x21,x11 + adcs x21,x22,x12 + adcs x22,x23,x13 + //adc x0,x0,xzr + cbnz x28,Loop_mul4x_tail + + sub x11,x3,x5 // rewinded np? + adc x0,x0,xzr + cbz x10,Loop_mul4x_break + + ldp x10,x11,[x26,#8*4] + ldp x12,x13,[x26,#8*6] + ldp x6,x7,[x1,#8*0] + ldp x8,x9,[x1,#8*2] + add x1,x1,#8*4 + adds x19,x19,x10 + adcs x20,x20,x11 + adcs x21,x21,x12 + adcs x22,x22,x13 + //adc x0,x0,xzr + ldp x14,x15,[x3,#8*0] + ldp x16,x17,[x3,#8*2] + add x3,x3,#8*4 + b Loop_mul4x_tail + +.align 4 +Loop_mul4x_break: + ldp x12,x13,[x29,#96] // pull rp and &b[num] + adds x19,x19,x30 + add x2,x2,#8*4 // bp++ + adcs x20,x20,xzr + sub x1,x1,x5 // rewind ap + adcs x21,x21,xzr + stp x19,x20,[x26,#8*0] // result!!! + adcs x22,x22,xzr + ldp x19,x20,[sp,#8*4] // t[0..3] + adc x30,x0,xzr + stp x21,x22,[x26,#8*2] // result!!! + cmp x2,x13 // done yet? + ldp x21,x22,[sp,#8*6] + ldp x14,x15,[x11,#8*0] // n[0..3] + ldp x16,x17,[x11,#8*2] + add x3,x11,#8*4 + b.eq Lmul4x_post + + ldr x24,[x2] + ldp x6,x7,[x1,#8*0] // a[0..3] + ldp x8,x9,[x1,#8*2] + adds x1,x1,#8*4 // clear carry bit + mov x0,xzr + mov x26,sp + b Loop_mul4x_reduction + +.align 4 +Lmul4x_post: + // Final step. We see if result is larger than modulus, and + // if it is, subtract the modulus. But comparison implies + // subtraction. So we subtract modulus, see if it borrowed, + // and conditionally copy original value. + mov x0,x12 + mov x27,x12 // x0 copy + subs x10,x19,x14 + add x26,sp,#8*8 + sbcs x11,x20,x15 + sub x28,x5,#8*4 + +Lmul4x_sub: + sbcs x12,x21,x16 + ldp x14,x15,[x3,#8*0] + sub x28,x28,#8*4 + ldp x19,x20,[x26,#8*0] + sbcs x13,x22,x17 + ldp x16,x17,[x3,#8*2] + add x3,x3,#8*4 + ldp x21,x22,[x26,#8*2] + add x26,x26,#8*4 + stp x10,x11,[x0,#8*0] + sbcs x10,x19,x14 + stp x12,x13,[x0,#8*2] + add x0,x0,#8*4 + sbcs x11,x20,x15 + cbnz x28,Lmul4x_sub + + sbcs x12,x21,x16 + mov x26,sp + add x1,sp,#8*4 + ldp x6,x7,[x27,#8*0] + sbcs x13,x22,x17 + stp x10,x11,[x0,#8*0] + ldp x8,x9,[x27,#8*2] + stp x12,x13,[x0,#8*2] + ldp x19,x20,[x1,#8*0] + ldp x21,x22,[x1,#8*2] + sbcs xzr,x30,xzr // did it borrow? + ldr x30,[x29,#8] // pull return address + + sub x28,x5,#8*4 +Lmul4x_cond_copy: + sub x28,x28,#8*4 + csel x10,x19,x6,lo + stp xzr,xzr,[x26,#8*0] + csel x11,x20,x7,lo + ldp x6,x7,[x27,#8*4] + ldp x19,x20,[x1,#8*4] + csel x12,x21,x8,lo + stp xzr,xzr,[x26,#8*2] + add x26,x26,#8*4 + csel x13,x22,x9,lo + ldp x8,x9,[x27,#8*6] + ldp x21,x22,[x1,#8*6] + add x1,x1,#8*4 + stp x10,x11,[x27,#8*0] + stp x12,x13,[x27,#8*2] + add x27,x27,#8*4 + cbnz x28,Lmul4x_cond_copy + + csel x10,x19,x6,lo + stp xzr,xzr,[x26,#8*0] + csel x11,x20,x7,lo + stp xzr,xzr,[x26,#8*2] + csel x12,x21,x8,lo + stp xzr,xzr,[x26,#8*3] + csel x13,x22,x9,lo + stp xzr,xzr,[x26,#8*4] + stp x10,x11,[x27,#8*0] + stp x12,x13,[x27,#8*2] + + b Lmul4x_done + +.align 4 +Lmul4x4_post_condition: + adc x0,x0,xzr + ldr x1,[x29,#96] // pull rp + // x19-3,x0 hold result, x14-7 hold modulus + subs x6,x19,x14 + ldr x30,[x29,#8] // pull return address + sbcs x7,x20,x15 + stp xzr,xzr,[sp,#8*0] + sbcs x8,x21,x16 + stp xzr,xzr,[sp,#8*2] + sbcs x9,x22,x17 + stp xzr,xzr,[sp,#8*4] + sbcs xzr,x0,xzr // did it borrow? + stp xzr,xzr,[sp,#8*6] + + // x6-3 hold result-modulus + csel x6,x19,x6,lo + csel x7,x20,x7,lo + csel x8,x21,x8,lo + csel x9,x22,x9,lo + stp x6,x7,[x1,#8*0] + stp x8,x9,[x1,#8*2] + +Lmul4x_done: + ldp x19,x20,[x29,#16] + mov sp,x29 + ldp x21,x22,[x29,#32] + mov x0,#1 + ldp x23,x24,[x29,#48] + ldp x25,x26,[x29,#64] + ldp x27,x28,[x29,#80] + ldr x29,[sp],#128 +.long 0xd50323bf // autiasp + ret + +.byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 2 +.align 4 diff --git a/vere/ext/openssl/gen/macos-aarch64/crypto/chacha/chacha-armv8.S b/vere/ext/openssl/gen/macos-aarch64/crypto/chacha/chacha-armv8.S new file mode 100644 index 0000000..3bf82d6 --- /dev/null +++ b/vere/ext/openssl/gen/macos-aarch64/crypto/chacha/chacha-armv8.S @@ -0,0 +1,1977 @@ +#include "arm_arch.h" + +.text + + +.private_extern _OPENSSL_armcap_P + +.align 5 +Lsigma: +.quad 0x3320646e61707865,0x6b20657479622d32 // endian-neutral +Lone: +.long 1,0,0,0 +LOPENSSL_armcap_P: +#ifdef __ILP32__ +.long _OPENSSL_armcap_P-. +#else +.quad ARMV7_NEON +#endif +.byte 67,104,97,67,104,97,50,48,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 2 + +.globl _ChaCha20_ctr32 + +.align 5 +_ChaCha20_ctr32: + cbz x2,Labort + adr x5,LOPENSSL_armcap_P + cmp x2,#192 + b.lo Lshort +#ifdef __ILP32__ + ldrsw x6,[x5] +#else + ldr x6,[x5] +#endif + ldr w17,[x6,x5] + tst w17,#ARMV7_NEON + b.ne ChaCha20_neon + +Lshort: +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-96]! + add x29,sp,#0 + + adr x5,Lsigma + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + stp x23,x24,[sp,#48] + stp x25,x26,[sp,#64] + stp x27,x28,[sp,#80] + sub sp,sp,#64 + + ldp x22,x23,[x5] // load sigma + ldp x24,x25,[x3] // load key + ldp x26,x27,[x3,#16] + ldp x28,x30,[x4] // load counter +#ifdef __ARMEB__ + ror x24,x24,#32 + ror x25,x25,#32 + ror x26,x26,#32 + ror x27,x27,#32 + ror x28,x28,#32 + ror x30,x30,#32 +#endif + +Loop_outer: + mov w5,w22 // unpack key block + lsr x6,x22,#32 + mov w7,w23 + lsr x8,x23,#32 + mov w9,w24 + lsr x10,x24,#32 + mov w11,w25 + lsr x12,x25,#32 + mov w13,w26 + lsr x14,x26,#32 + mov w15,w27 + lsr x16,x27,#32 + mov w17,w28 + lsr x19,x28,#32 + mov w20,w30 + lsr x21,x30,#32 + + mov x4,#10 + subs x2,x2,#64 +Loop: + sub x4,x4,#1 + add w5,w5,w9 + add w6,w6,w10 + add w7,w7,w11 + add w8,w8,w12 + eor w17,w17,w5 + eor w19,w19,w6 + eor w20,w20,w7 + eor w21,w21,w8 + ror w17,w17,#16 + ror w19,w19,#16 + ror w20,w20,#16 + ror w21,w21,#16 + add w13,w13,w17 + add w14,w14,w19 + add w15,w15,w20 + add w16,w16,w21 + eor w9,w9,w13 + eor w10,w10,w14 + eor w11,w11,w15 + eor w12,w12,w16 + ror w9,w9,#20 + ror w10,w10,#20 + ror w11,w11,#20 + ror w12,w12,#20 + add w5,w5,w9 + add w6,w6,w10 + add w7,w7,w11 + add w8,w8,w12 + eor w17,w17,w5 + eor w19,w19,w6 + eor w20,w20,w7 + eor w21,w21,w8 + ror w17,w17,#24 + ror w19,w19,#24 + ror w20,w20,#24 + ror w21,w21,#24 + add w13,w13,w17 + add w14,w14,w19 + add w15,w15,w20 + add w16,w16,w21 + eor w9,w9,w13 + eor w10,w10,w14 + eor w11,w11,w15 + eor w12,w12,w16 + ror w9,w9,#25 + ror w10,w10,#25 + ror w11,w11,#25 + ror w12,w12,#25 + add w5,w5,w10 + add w6,w6,w11 + add w7,w7,w12 + add w8,w8,w9 + eor w21,w21,w5 + eor w17,w17,w6 + eor w19,w19,w7 + eor w20,w20,w8 + ror w21,w21,#16 + ror w17,w17,#16 + ror w19,w19,#16 + ror w20,w20,#16 + add w15,w15,w21 + add w16,w16,w17 + add w13,w13,w19 + add w14,w14,w20 + eor w10,w10,w15 + eor w11,w11,w16 + eor w12,w12,w13 + eor w9,w9,w14 + ror w10,w10,#20 + ror w11,w11,#20 + ror w12,w12,#20 + ror w9,w9,#20 + add w5,w5,w10 + add w6,w6,w11 + add w7,w7,w12 + add w8,w8,w9 + eor w21,w21,w5 + eor w17,w17,w6 + eor w19,w19,w7 + eor w20,w20,w8 + ror w21,w21,#24 + ror w17,w17,#24 + ror w19,w19,#24 + ror w20,w20,#24 + add w15,w15,w21 + add w16,w16,w17 + add w13,w13,w19 + add w14,w14,w20 + eor w10,w10,w15 + eor w11,w11,w16 + eor w12,w12,w13 + eor w9,w9,w14 + ror w10,w10,#25 + ror w11,w11,#25 + ror w12,w12,#25 + ror w9,w9,#25 + cbnz x4,Loop + + add w5,w5,w22 // accumulate key block + add x6,x6,x22,lsr#32 + add w7,w7,w23 + add x8,x8,x23,lsr#32 + add w9,w9,w24 + add x10,x10,x24,lsr#32 + add w11,w11,w25 + add x12,x12,x25,lsr#32 + add w13,w13,w26 + add x14,x14,x26,lsr#32 + add w15,w15,w27 + add x16,x16,x27,lsr#32 + add w17,w17,w28 + add x19,x19,x28,lsr#32 + add w20,w20,w30 + add x21,x21,x30,lsr#32 + + b.lo Ltail + + add x5,x5,x6,lsl#32 // pack + add x7,x7,x8,lsl#32 + ldp x6,x8,[x1,#0] // load input + add x9,x9,x10,lsl#32 + add x11,x11,x12,lsl#32 + ldp x10,x12,[x1,#16] + add x13,x13,x14,lsl#32 + add x15,x15,x16,lsl#32 + ldp x14,x16,[x1,#32] + add x17,x17,x19,lsl#32 + add x20,x20,x21,lsl#32 + ldp x19,x21,[x1,#48] + add x1,x1,#64 +#ifdef __ARMEB__ + rev x5,x5 + rev x7,x7 + rev x9,x9 + rev x11,x11 + rev x13,x13 + rev x15,x15 + rev x17,x17 + rev x20,x20 +#endif + eor x5,x5,x6 + eor x7,x7,x8 + eor x9,x9,x10 + eor x11,x11,x12 + eor x13,x13,x14 + eor x15,x15,x16 + eor x17,x17,x19 + eor x20,x20,x21 + + stp x5,x7,[x0,#0] // store output + add x28,x28,#1 // increment counter + stp x9,x11,[x0,#16] + stp x13,x15,[x0,#32] + stp x17,x20,[x0,#48] + add x0,x0,#64 + + b.hi Loop_outer + + ldp x19,x20,[x29,#16] + add sp,sp,#64 + ldp x21,x22,[x29,#32] + ldp x23,x24,[x29,#48] + ldp x25,x26,[x29,#64] + ldp x27,x28,[x29,#80] + ldp x29,x30,[sp],#96 +.long 0xd50323bf // autiasp +Labort: + ret + +.align 4 +Ltail: + add x2,x2,#64 +Less_than_64: + sub x0,x0,#1 + add x1,x1,x2 + add x0,x0,x2 + add x4,sp,x2 + neg x2,x2 + + add x5,x5,x6,lsl#32 // pack + add x7,x7,x8,lsl#32 + add x9,x9,x10,lsl#32 + add x11,x11,x12,lsl#32 + add x13,x13,x14,lsl#32 + add x15,x15,x16,lsl#32 + add x17,x17,x19,lsl#32 + add x20,x20,x21,lsl#32 +#ifdef __ARMEB__ + rev x5,x5 + rev x7,x7 + rev x9,x9 + rev x11,x11 + rev x13,x13 + rev x15,x15 + rev x17,x17 + rev x20,x20 +#endif + stp x5,x7,[sp,#0] + stp x9,x11,[sp,#16] + stp x13,x15,[sp,#32] + stp x17,x20,[sp,#48] + +Loop_tail: + ldrb w10,[x1,x2] + ldrb w11,[x4,x2] + add x2,x2,#1 + eor w10,w10,w11 + strb w10,[x0,x2] + cbnz x2,Loop_tail + + stp xzr,xzr,[sp,#0] + stp xzr,xzr,[sp,#16] + stp xzr,xzr,[sp,#32] + stp xzr,xzr,[sp,#48] + + ldp x19,x20,[x29,#16] + add sp,sp,#64 + ldp x21,x22,[x29,#32] + ldp x23,x24,[x29,#48] + ldp x25,x26,[x29,#64] + ldp x27,x28,[x29,#80] + ldp x29,x30,[sp],#96 +.long 0xd50323bf // autiasp + ret + + + +.align 5 +ChaCha20_neon: +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-96]! + add x29,sp,#0 + + adr x5,Lsigma + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + stp x23,x24,[sp,#48] + stp x25,x26,[sp,#64] + stp x27,x28,[sp,#80] + cmp x2,#512 + b.hs L512_or_more_neon + + sub sp,sp,#64 + + ldp x22,x23,[x5] // load sigma + ld1 {v24.4s},[x5],#16 + ldp x24,x25,[x3] // load key + ldp x26,x27,[x3,#16] + ld1 {v25.4s,v26.4s},[x3] + ldp x28,x30,[x4] // load counter + ld1 {v27.4s},[x4] + ld1 {v31.4s},[x5] +#ifdef __ARMEB__ + rev64 v24.4s,v24.4s + ror x24,x24,#32 + ror x25,x25,#32 + ror x26,x26,#32 + ror x27,x27,#32 + ror x28,x28,#32 + ror x30,x30,#32 +#endif + add v27.4s,v27.4s,v31.4s // += 1 + add v28.4s,v27.4s,v31.4s + add v29.4s,v28.4s,v31.4s + shl v31.4s,v31.4s,#2 // 1 -> 4 + +Loop_outer_neon: + mov w5,w22 // unpack key block + lsr x6,x22,#32 + mov v0.16b,v24.16b + mov w7,w23 + lsr x8,x23,#32 + mov v4.16b,v24.16b + mov w9,w24 + lsr x10,x24,#32 + mov v16.16b,v24.16b + mov w11,w25 + mov v1.16b,v25.16b + lsr x12,x25,#32 + mov v5.16b,v25.16b + mov w13,w26 + mov v17.16b,v25.16b + lsr x14,x26,#32 + mov v3.16b,v27.16b + mov w15,w27 + mov v7.16b,v28.16b + lsr x16,x27,#32 + mov v19.16b,v29.16b + mov w17,w28 + mov v2.16b,v26.16b + lsr x19,x28,#32 + mov v6.16b,v26.16b + mov w20,w30 + mov v18.16b,v26.16b + lsr x21,x30,#32 + + mov x4,#10 + subs x2,x2,#256 +Loop_neon: + sub x4,x4,#1 + add v0.4s,v0.4s,v1.4s + add w5,w5,w9 + add v4.4s,v4.4s,v5.4s + add w6,w6,w10 + add v16.4s,v16.4s,v17.4s + add w7,w7,w11 + eor v3.16b,v3.16b,v0.16b + add w8,w8,w12 + eor v7.16b,v7.16b,v4.16b + eor w17,w17,w5 + eor v19.16b,v19.16b,v16.16b + eor w19,w19,w6 + rev32 v3.8h,v3.8h + eor w20,w20,w7 + rev32 v7.8h,v7.8h + eor w21,w21,w8 + rev32 v19.8h,v19.8h + ror w17,w17,#16 + add v2.4s,v2.4s,v3.4s + ror w19,w19,#16 + add v6.4s,v6.4s,v7.4s + ror w20,w20,#16 + add v18.4s,v18.4s,v19.4s + ror w21,w21,#16 + eor v20.16b,v1.16b,v2.16b + add w13,w13,w17 + eor v21.16b,v5.16b,v6.16b + add w14,w14,w19 + eor v22.16b,v17.16b,v18.16b + add w15,w15,w20 + ushr v1.4s,v20.4s,#20 + add w16,w16,w21 + ushr v5.4s,v21.4s,#20 + eor w9,w9,w13 + ushr v17.4s,v22.4s,#20 + eor w10,w10,w14 + sli v1.4s,v20.4s,#12 + eor w11,w11,w15 + sli v5.4s,v21.4s,#12 + eor w12,w12,w16 + sli v17.4s,v22.4s,#12 + ror w9,w9,#20 + add v0.4s,v0.4s,v1.4s + ror w10,w10,#20 + add v4.4s,v4.4s,v5.4s + ror w11,w11,#20 + add v16.4s,v16.4s,v17.4s + ror w12,w12,#20 + eor v20.16b,v3.16b,v0.16b + add w5,w5,w9 + eor v21.16b,v7.16b,v4.16b + add w6,w6,w10 + eor v22.16b,v19.16b,v16.16b + add w7,w7,w11 + ushr v3.4s,v20.4s,#24 + add w8,w8,w12 + ushr v7.4s,v21.4s,#24 + eor w17,w17,w5 + ushr v19.4s,v22.4s,#24 + eor w19,w19,w6 + sli v3.4s,v20.4s,#8 + eor w20,w20,w7 + sli v7.4s,v21.4s,#8 + eor w21,w21,w8 + sli v19.4s,v22.4s,#8 + ror w17,w17,#24 + add v2.4s,v2.4s,v3.4s + ror w19,w19,#24 + add v6.4s,v6.4s,v7.4s + ror w20,w20,#24 + add v18.4s,v18.4s,v19.4s + ror w21,w21,#24 + eor v20.16b,v1.16b,v2.16b + add w13,w13,w17 + eor v21.16b,v5.16b,v6.16b + add w14,w14,w19 + eor v22.16b,v17.16b,v18.16b + add w15,w15,w20 + ushr v1.4s,v20.4s,#25 + add w16,w16,w21 + ushr v5.4s,v21.4s,#25 + eor w9,w9,w13 + ushr v17.4s,v22.4s,#25 + eor w10,w10,w14 + sli v1.4s,v20.4s,#7 + eor w11,w11,w15 + sli v5.4s,v21.4s,#7 + eor w12,w12,w16 + sli v17.4s,v22.4s,#7 + ror w9,w9,#25 + ext v2.16b,v2.16b,v2.16b,#8 + ror w10,w10,#25 + ext v6.16b,v6.16b,v6.16b,#8 + ror w11,w11,#25 + ext v18.16b,v18.16b,v18.16b,#8 + ror w12,w12,#25 + ext v3.16b,v3.16b,v3.16b,#12 + ext v7.16b,v7.16b,v7.16b,#12 + ext v19.16b,v19.16b,v19.16b,#12 + ext v1.16b,v1.16b,v1.16b,#4 + ext v5.16b,v5.16b,v5.16b,#4 + ext v17.16b,v17.16b,v17.16b,#4 + add v0.4s,v0.4s,v1.4s + add w5,w5,w10 + add v4.4s,v4.4s,v5.4s + add w6,w6,w11 + add v16.4s,v16.4s,v17.4s + add w7,w7,w12 + eor v3.16b,v3.16b,v0.16b + add w8,w8,w9 + eor v7.16b,v7.16b,v4.16b + eor w21,w21,w5 + eor v19.16b,v19.16b,v16.16b + eor w17,w17,w6 + rev32 v3.8h,v3.8h + eor w19,w19,w7 + rev32 v7.8h,v7.8h + eor w20,w20,w8 + rev32 v19.8h,v19.8h + ror w21,w21,#16 + add v2.4s,v2.4s,v3.4s + ror w17,w17,#16 + add v6.4s,v6.4s,v7.4s + ror w19,w19,#16 + add v18.4s,v18.4s,v19.4s + ror w20,w20,#16 + eor v20.16b,v1.16b,v2.16b + add w15,w15,w21 + eor v21.16b,v5.16b,v6.16b + add w16,w16,w17 + eor v22.16b,v17.16b,v18.16b + add w13,w13,w19 + ushr v1.4s,v20.4s,#20 + add w14,w14,w20 + ushr v5.4s,v21.4s,#20 + eor w10,w10,w15 + ushr v17.4s,v22.4s,#20 + eor w11,w11,w16 + sli v1.4s,v20.4s,#12 + eor w12,w12,w13 + sli v5.4s,v21.4s,#12 + eor w9,w9,w14 + sli v17.4s,v22.4s,#12 + ror w10,w10,#20 + add v0.4s,v0.4s,v1.4s + ror w11,w11,#20 + add v4.4s,v4.4s,v5.4s + ror w12,w12,#20 + add v16.4s,v16.4s,v17.4s + ror w9,w9,#20 + eor v20.16b,v3.16b,v0.16b + add w5,w5,w10 + eor v21.16b,v7.16b,v4.16b + add w6,w6,w11 + eor v22.16b,v19.16b,v16.16b + add w7,w7,w12 + ushr v3.4s,v20.4s,#24 + add w8,w8,w9 + ushr v7.4s,v21.4s,#24 + eor w21,w21,w5 + ushr v19.4s,v22.4s,#24 + eor w17,w17,w6 + sli v3.4s,v20.4s,#8 + eor w19,w19,w7 + sli v7.4s,v21.4s,#8 + eor w20,w20,w8 + sli v19.4s,v22.4s,#8 + ror w21,w21,#24 + add v2.4s,v2.4s,v3.4s + ror w17,w17,#24 + add v6.4s,v6.4s,v7.4s + ror w19,w19,#24 + add v18.4s,v18.4s,v19.4s + ror w20,w20,#24 + eor v20.16b,v1.16b,v2.16b + add w15,w15,w21 + eor v21.16b,v5.16b,v6.16b + add w16,w16,w17 + eor v22.16b,v17.16b,v18.16b + add w13,w13,w19 + ushr v1.4s,v20.4s,#25 + add w14,w14,w20 + ushr v5.4s,v21.4s,#25 + eor w10,w10,w15 + ushr v17.4s,v22.4s,#25 + eor w11,w11,w16 + sli v1.4s,v20.4s,#7 + eor w12,w12,w13 + sli v5.4s,v21.4s,#7 + eor w9,w9,w14 + sli v17.4s,v22.4s,#7 + ror w10,w10,#25 + ext v2.16b,v2.16b,v2.16b,#8 + ror w11,w11,#25 + ext v6.16b,v6.16b,v6.16b,#8 + ror w12,w12,#25 + ext v18.16b,v18.16b,v18.16b,#8 + ror w9,w9,#25 + ext v3.16b,v3.16b,v3.16b,#4 + ext v7.16b,v7.16b,v7.16b,#4 + ext v19.16b,v19.16b,v19.16b,#4 + ext v1.16b,v1.16b,v1.16b,#12 + ext v5.16b,v5.16b,v5.16b,#12 + ext v17.16b,v17.16b,v17.16b,#12 + cbnz x4,Loop_neon + + add w5,w5,w22 // accumulate key block + add v0.4s,v0.4s,v24.4s + add x6,x6,x22,lsr#32 + add v4.4s,v4.4s,v24.4s + add w7,w7,w23 + add v16.4s,v16.4s,v24.4s + add x8,x8,x23,lsr#32 + add v2.4s,v2.4s,v26.4s + add w9,w9,w24 + add v6.4s,v6.4s,v26.4s + add x10,x10,x24,lsr#32 + add v18.4s,v18.4s,v26.4s + add w11,w11,w25 + add v3.4s,v3.4s,v27.4s + add x12,x12,x25,lsr#32 + add w13,w13,w26 + add v7.4s,v7.4s,v28.4s + add x14,x14,x26,lsr#32 + add w15,w15,w27 + add v19.4s,v19.4s,v29.4s + add x16,x16,x27,lsr#32 + add w17,w17,w28 + add v1.4s,v1.4s,v25.4s + add x19,x19,x28,lsr#32 + add w20,w20,w30 + add v5.4s,v5.4s,v25.4s + add x21,x21,x30,lsr#32 + add v17.4s,v17.4s,v25.4s + + b.lo Ltail_neon + + add x5,x5,x6,lsl#32 // pack + add x7,x7,x8,lsl#32 + ldp x6,x8,[x1,#0] // load input + add x9,x9,x10,lsl#32 + add x11,x11,x12,lsl#32 + ldp x10,x12,[x1,#16] + add x13,x13,x14,lsl#32 + add x15,x15,x16,lsl#32 + ldp x14,x16,[x1,#32] + add x17,x17,x19,lsl#32 + add x20,x20,x21,lsl#32 + ldp x19,x21,[x1,#48] + add x1,x1,#64 +#ifdef __ARMEB__ + rev x5,x5 + rev x7,x7 + rev x9,x9 + rev x11,x11 + rev x13,x13 + rev x15,x15 + rev x17,x17 + rev x20,x20 +#endif + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x1],#64 + eor x5,x5,x6 + eor x7,x7,x8 + eor x9,x9,x10 + eor x11,x11,x12 + eor x13,x13,x14 + eor v0.16b,v0.16b,v20.16b + eor x15,x15,x16 + eor v1.16b,v1.16b,v21.16b + eor x17,x17,x19 + eor v2.16b,v2.16b,v22.16b + eor x20,x20,x21 + eor v3.16b,v3.16b,v23.16b + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x1],#64 + + stp x5,x7,[x0,#0] // store output + add x28,x28,#4 // increment counter + stp x9,x11,[x0,#16] + add v27.4s,v27.4s,v31.4s // += 4 + stp x13,x15,[x0,#32] + add v28.4s,v28.4s,v31.4s + stp x17,x20,[x0,#48] + add v29.4s,v29.4s,v31.4s + add x0,x0,#64 + + st1 {v0.16b,v1.16b,v2.16b,v3.16b},[x0],#64 + ld1 {v0.16b,v1.16b,v2.16b,v3.16b},[x1],#64 + + eor v4.16b,v4.16b,v20.16b + eor v5.16b,v5.16b,v21.16b + eor v6.16b,v6.16b,v22.16b + eor v7.16b,v7.16b,v23.16b + st1 {v4.16b,v5.16b,v6.16b,v7.16b},[x0],#64 + + eor v16.16b,v16.16b,v0.16b + eor v17.16b,v17.16b,v1.16b + eor v18.16b,v18.16b,v2.16b + eor v19.16b,v19.16b,v3.16b + st1 {v16.16b,v17.16b,v18.16b,v19.16b},[x0],#64 + + b.hi Loop_outer_neon + + ldp x19,x20,[x29,#16] + add sp,sp,#64 + ldp x21,x22,[x29,#32] + ldp x23,x24,[x29,#48] + ldp x25,x26,[x29,#64] + ldp x27,x28,[x29,#80] + ldp x29,x30,[sp],#96 +.long 0xd50323bf // autiasp + ret + +Ltail_neon: + add x2,x2,#256 + cmp x2,#64 + b.lo Less_than_64 + + add x5,x5,x6,lsl#32 // pack + add x7,x7,x8,lsl#32 + ldp x6,x8,[x1,#0] // load input + add x9,x9,x10,lsl#32 + add x11,x11,x12,lsl#32 + ldp x10,x12,[x1,#16] + add x13,x13,x14,lsl#32 + add x15,x15,x16,lsl#32 + ldp x14,x16,[x1,#32] + add x17,x17,x19,lsl#32 + add x20,x20,x21,lsl#32 + ldp x19,x21,[x1,#48] + add x1,x1,#64 +#ifdef __ARMEB__ + rev x5,x5 + rev x7,x7 + rev x9,x9 + rev x11,x11 + rev x13,x13 + rev x15,x15 + rev x17,x17 + rev x20,x20 +#endif + eor x5,x5,x6 + eor x7,x7,x8 + eor x9,x9,x10 + eor x11,x11,x12 + eor x13,x13,x14 + eor x15,x15,x16 + eor x17,x17,x19 + eor x20,x20,x21 + + stp x5,x7,[x0,#0] // store output + add x28,x28,#4 // increment counter + stp x9,x11,[x0,#16] + stp x13,x15,[x0,#32] + stp x17,x20,[x0,#48] + add x0,x0,#64 + b.eq Ldone_neon + sub x2,x2,#64 + cmp x2,#64 + b.lo Less_than_128 + + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x1],#64 + eor v0.16b,v0.16b,v20.16b + eor v1.16b,v1.16b,v21.16b + eor v2.16b,v2.16b,v22.16b + eor v3.16b,v3.16b,v23.16b + st1 {v0.16b,v1.16b,v2.16b,v3.16b},[x0],#64 + b.eq Ldone_neon + sub x2,x2,#64 + cmp x2,#64 + b.lo Less_than_192 + + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x1],#64 + eor v4.16b,v4.16b,v20.16b + eor v5.16b,v5.16b,v21.16b + eor v6.16b,v6.16b,v22.16b + eor v7.16b,v7.16b,v23.16b + st1 {v4.16b,v5.16b,v6.16b,v7.16b},[x0],#64 + b.eq Ldone_neon + sub x2,x2,#64 + + st1 {v16.16b,v17.16b,v18.16b,v19.16b},[sp] + b Last_neon + +Less_than_128: + st1 {v0.16b,v1.16b,v2.16b,v3.16b},[sp] + b Last_neon +Less_than_192: + st1 {v4.16b,v5.16b,v6.16b,v7.16b},[sp] + b Last_neon + +.align 4 +Last_neon: + sub x0,x0,#1 + add x1,x1,x2 + add x0,x0,x2 + add x4,sp,x2 + neg x2,x2 + +Loop_tail_neon: + ldrb w10,[x1,x2] + ldrb w11,[x4,x2] + add x2,x2,#1 + eor w10,w10,w11 + strb w10,[x0,x2] + cbnz x2,Loop_tail_neon + + stp xzr,xzr,[sp,#0] + stp xzr,xzr,[sp,#16] + stp xzr,xzr,[sp,#32] + stp xzr,xzr,[sp,#48] + +Ldone_neon: + ldp x19,x20,[x29,#16] + add sp,sp,#64 + ldp x21,x22,[x29,#32] + ldp x23,x24,[x29,#48] + ldp x25,x26,[x29,#64] + ldp x27,x28,[x29,#80] + ldp x29,x30,[sp],#96 +.long 0xd50323bf // autiasp + ret + + +.align 5 +ChaCha20_512_neon: +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-96]! + add x29,sp,#0 + + adr x5,Lsigma + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + stp x23,x24,[sp,#48] + stp x25,x26,[sp,#64] + stp x27,x28,[sp,#80] + +L512_or_more_neon: + sub sp,sp,#128+64 + + ldp x22,x23,[x5] // load sigma + ld1 {v24.4s},[x5],#16 + ldp x24,x25,[x3] // load key + ldp x26,x27,[x3,#16] + ld1 {v25.4s,v26.4s},[x3] + ldp x28,x30,[x4] // load counter + ld1 {v27.4s},[x4] + ld1 {v31.4s},[x5] +#ifdef __ARMEB__ + rev64 v24.4s,v24.4s + ror x24,x24,#32 + ror x25,x25,#32 + ror x26,x26,#32 + ror x27,x27,#32 + ror x28,x28,#32 + ror x30,x30,#32 +#endif + add v27.4s,v27.4s,v31.4s // += 1 + stp q24,q25,[sp,#0] // off-load key block, invariant part + add v27.4s,v27.4s,v31.4s // not typo + str q26,[sp,#32] + add v28.4s,v27.4s,v31.4s + add v29.4s,v28.4s,v31.4s + add v30.4s,v29.4s,v31.4s + shl v31.4s,v31.4s,#2 // 1 -> 4 + + stp d8,d9,[sp,#128+0] // meet ABI requirements + stp d10,d11,[sp,#128+16] + stp d12,d13,[sp,#128+32] + stp d14,d15,[sp,#128+48] + + sub x2,x2,#512 // not typo + +Loop_outer_512_neon: + mov v0.16b,v24.16b + mov v4.16b,v24.16b + mov v8.16b,v24.16b + mov v12.16b,v24.16b + mov v16.16b,v24.16b + mov v20.16b,v24.16b + mov v1.16b,v25.16b + mov w5,w22 // unpack key block + mov v5.16b,v25.16b + lsr x6,x22,#32 + mov v9.16b,v25.16b + mov w7,w23 + mov v13.16b,v25.16b + lsr x8,x23,#32 + mov v17.16b,v25.16b + mov w9,w24 + mov v21.16b,v25.16b + lsr x10,x24,#32 + mov v3.16b,v27.16b + mov w11,w25 + mov v7.16b,v28.16b + lsr x12,x25,#32 + mov v11.16b,v29.16b + mov w13,w26 + mov v15.16b,v30.16b + lsr x14,x26,#32 + mov v2.16b,v26.16b + mov w15,w27 + mov v6.16b,v26.16b + lsr x16,x27,#32 + add v19.4s,v3.4s,v31.4s // +4 + mov w17,w28 + add v23.4s,v7.4s,v31.4s // +4 + lsr x19,x28,#32 + mov v10.16b,v26.16b + mov w20,w30 + mov v14.16b,v26.16b + lsr x21,x30,#32 + mov v18.16b,v26.16b + stp q27,q28,[sp,#48] // off-load key block, variable part + mov v22.16b,v26.16b + str q29,[sp,#80] + + mov x4,#5 + subs x2,x2,#512 +Loop_upper_neon: + sub x4,x4,#1 + add v0.4s,v0.4s,v1.4s + add w5,w5,w9 + add v4.4s,v4.4s,v5.4s + add w6,w6,w10 + add v8.4s,v8.4s,v9.4s + add w7,w7,w11 + add v12.4s,v12.4s,v13.4s + add w8,w8,w12 + add v16.4s,v16.4s,v17.4s + eor w17,w17,w5 + add v20.4s,v20.4s,v21.4s + eor w19,w19,w6 + eor v3.16b,v3.16b,v0.16b + eor w20,w20,w7 + eor v7.16b,v7.16b,v4.16b + eor w21,w21,w8 + eor v11.16b,v11.16b,v8.16b + ror w17,w17,#16 + eor v15.16b,v15.16b,v12.16b + ror w19,w19,#16 + eor v19.16b,v19.16b,v16.16b + ror w20,w20,#16 + eor v23.16b,v23.16b,v20.16b + ror w21,w21,#16 + rev32 v3.8h,v3.8h + add w13,w13,w17 + rev32 v7.8h,v7.8h + add w14,w14,w19 + rev32 v11.8h,v11.8h + add w15,w15,w20 + rev32 v15.8h,v15.8h + add w16,w16,w21 + rev32 v19.8h,v19.8h + eor w9,w9,w13 + rev32 v23.8h,v23.8h + eor w10,w10,w14 + add v2.4s,v2.4s,v3.4s + eor w11,w11,w15 + add v6.4s,v6.4s,v7.4s + eor w12,w12,w16 + add v10.4s,v10.4s,v11.4s + ror w9,w9,#20 + add v14.4s,v14.4s,v15.4s + ror w10,w10,#20 + add v18.4s,v18.4s,v19.4s + ror w11,w11,#20 + add v22.4s,v22.4s,v23.4s + ror w12,w12,#20 + eor v24.16b,v1.16b,v2.16b + add w5,w5,w9 + eor v25.16b,v5.16b,v6.16b + add w6,w6,w10 + eor v26.16b,v9.16b,v10.16b + add w7,w7,w11 + eor v27.16b,v13.16b,v14.16b + add w8,w8,w12 + eor v28.16b,v17.16b,v18.16b + eor w17,w17,w5 + eor v29.16b,v21.16b,v22.16b + eor w19,w19,w6 + ushr v1.4s,v24.4s,#20 + eor w20,w20,w7 + ushr v5.4s,v25.4s,#20 + eor w21,w21,w8 + ushr v9.4s,v26.4s,#20 + ror w17,w17,#24 + ushr v13.4s,v27.4s,#20 + ror w19,w19,#24 + ushr v17.4s,v28.4s,#20 + ror w20,w20,#24 + ushr v21.4s,v29.4s,#20 + ror w21,w21,#24 + sli v1.4s,v24.4s,#12 + add w13,w13,w17 + sli v5.4s,v25.4s,#12 + add w14,w14,w19 + sli v9.4s,v26.4s,#12 + add w15,w15,w20 + sli v13.4s,v27.4s,#12 + add w16,w16,w21 + sli v17.4s,v28.4s,#12 + eor w9,w9,w13 + sli v21.4s,v29.4s,#12 + eor w10,w10,w14 + add v0.4s,v0.4s,v1.4s + eor w11,w11,w15 + add v4.4s,v4.4s,v5.4s + eor w12,w12,w16 + add v8.4s,v8.4s,v9.4s + ror w9,w9,#25 + add v12.4s,v12.4s,v13.4s + ror w10,w10,#25 + add v16.4s,v16.4s,v17.4s + ror w11,w11,#25 + add v20.4s,v20.4s,v21.4s + ror w12,w12,#25 + eor v24.16b,v3.16b,v0.16b + add w5,w5,w10 + eor v25.16b,v7.16b,v4.16b + add w6,w6,w11 + eor v26.16b,v11.16b,v8.16b + add w7,w7,w12 + eor v27.16b,v15.16b,v12.16b + add w8,w8,w9 + eor v28.16b,v19.16b,v16.16b + eor w21,w21,w5 + eor v29.16b,v23.16b,v20.16b + eor w17,w17,w6 + ushr v3.4s,v24.4s,#24 + eor w19,w19,w7 + ushr v7.4s,v25.4s,#24 + eor w20,w20,w8 + ushr v11.4s,v26.4s,#24 + ror w21,w21,#16 + ushr v15.4s,v27.4s,#24 + ror w17,w17,#16 + ushr v19.4s,v28.4s,#24 + ror w19,w19,#16 + ushr v23.4s,v29.4s,#24 + ror w20,w20,#16 + sli v3.4s,v24.4s,#8 + add w15,w15,w21 + sli v7.4s,v25.4s,#8 + add w16,w16,w17 + sli v11.4s,v26.4s,#8 + add w13,w13,w19 + sli v15.4s,v27.4s,#8 + add w14,w14,w20 + sli v19.4s,v28.4s,#8 + eor w10,w10,w15 + sli v23.4s,v29.4s,#8 + eor w11,w11,w16 + add v2.4s,v2.4s,v3.4s + eor w12,w12,w13 + add v6.4s,v6.4s,v7.4s + eor w9,w9,w14 + add v10.4s,v10.4s,v11.4s + ror w10,w10,#20 + add v14.4s,v14.4s,v15.4s + ror w11,w11,#20 + add v18.4s,v18.4s,v19.4s + ror w12,w12,#20 + add v22.4s,v22.4s,v23.4s + ror w9,w9,#20 + eor v24.16b,v1.16b,v2.16b + add w5,w5,w10 + eor v25.16b,v5.16b,v6.16b + add w6,w6,w11 + eor v26.16b,v9.16b,v10.16b + add w7,w7,w12 + eor v27.16b,v13.16b,v14.16b + add w8,w8,w9 + eor v28.16b,v17.16b,v18.16b + eor w21,w21,w5 + eor v29.16b,v21.16b,v22.16b + eor w17,w17,w6 + ushr v1.4s,v24.4s,#25 + eor w19,w19,w7 + ushr v5.4s,v25.4s,#25 + eor w20,w20,w8 + ushr v9.4s,v26.4s,#25 + ror w21,w21,#24 + ushr v13.4s,v27.4s,#25 + ror w17,w17,#24 + ushr v17.4s,v28.4s,#25 + ror w19,w19,#24 + ushr v21.4s,v29.4s,#25 + ror w20,w20,#24 + sli v1.4s,v24.4s,#7 + add w15,w15,w21 + sli v5.4s,v25.4s,#7 + add w16,w16,w17 + sli v9.4s,v26.4s,#7 + add w13,w13,w19 + sli v13.4s,v27.4s,#7 + add w14,w14,w20 + sli v17.4s,v28.4s,#7 + eor w10,w10,w15 + sli v21.4s,v29.4s,#7 + eor w11,w11,w16 + ext v2.16b,v2.16b,v2.16b,#8 + eor w12,w12,w13 + ext v6.16b,v6.16b,v6.16b,#8 + eor w9,w9,w14 + ext v10.16b,v10.16b,v10.16b,#8 + ror w10,w10,#25 + ext v14.16b,v14.16b,v14.16b,#8 + ror w11,w11,#25 + ext v18.16b,v18.16b,v18.16b,#8 + ror w12,w12,#25 + ext v22.16b,v22.16b,v22.16b,#8 + ror w9,w9,#25 + ext v3.16b,v3.16b,v3.16b,#12 + ext v7.16b,v7.16b,v7.16b,#12 + ext v11.16b,v11.16b,v11.16b,#12 + ext v15.16b,v15.16b,v15.16b,#12 + ext v19.16b,v19.16b,v19.16b,#12 + ext v23.16b,v23.16b,v23.16b,#12 + ext v1.16b,v1.16b,v1.16b,#4 + ext v5.16b,v5.16b,v5.16b,#4 + ext v9.16b,v9.16b,v9.16b,#4 + ext v13.16b,v13.16b,v13.16b,#4 + ext v17.16b,v17.16b,v17.16b,#4 + ext v21.16b,v21.16b,v21.16b,#4 + add v0.4s,v0.4s,v1.4s + add w5,w5,w9 + add v4.4s,v4.4s,v5.4s + add w6,w6,w10 + add v8.4s,v8.4s,v9.4s + add w7,w7,w11 + add v12.4s,v12.4s,v13.4s + add w8,w8,w12 + add v16.4s,v16.4s,v17.4s + eor w17,w17,w5 + add v20.4s,v20.4s,v21.4s + eor w19,w19,w6 + eor v3.16b,v3.16b,v0.16b + eor w20,w20,w7 + eor v7.16b,v7.16b,v4.16b + eor w21,w21,w8 + eor v11.16b,v11.16b,v8.16b + ror w17,w17,#16 + eor v15.16b,v15.16b,v12.16b + ror w19,w19,#16 + eor v19.16b,v19.16b,v16.16b + ror w20,w20,#16 + eor v23.16b,v23.16b,v20.16b + ror w21,w21,#16 + rev32 v3.8h,v3.8h + add w13,w13,w17 + rev32 v7.8h,v7.8h + add w14,w14,w19 + rev32 v11.8h,v11.8h + add w15,w15,w20 + rev32 v15.8h,v15.8h + add w16,w16,w21 + rev32 v19.8h,v19.8h + eor w9,w9,w13 + rev32 v23.8h,v23.8h + eor w10,w10,w14 + add v2.4s,v2.4s,v3.4s + eor w11,w11,w15 + add v6.4s,v6.4s,v7.4s + eor w12,w12,w16 + add v10.4s,v10.4s,v11.4s + ror w9,w9,#20 + add v14.4s,v14.4s,v15.4s + ror w10,w10,#20 + add v18.4s,v18.4s,v19.4s + ror w11,w11,#20 + add v22.4s,v22.4s,v23.4s + ror w12,w12,#20 + eor v24.16b,v1.16b,v2.16b + add w5,w5,w9 + eor v25.16b,v5.16b,v6.16b + add w6,w6,w10 + eor v26.16b,v9.16b,v10.16b + add w7,w7,w11 + eor v27.16b,v13.16b,v14.16b + add w8,w8,w12 + eor v28.16b,v17.16b,v18.16b + eor w17,w17,w5 + eor v29.16b,v21.16b,v22.16b + eor w19,w19,w6 + ushr v1.4s,v24.4s,#20 + eor w20,w20,w7 + ushr v5.4s,v25.4s,#20 + eor w21,w21,w8 + ushr v9.4s,v26.4s,#20 + ror w17,w17,#24 + ushr v13.4s,v27.4s,#20 + ror w19,w19,#24 + ushr v17.4s,v28.4s,#20 + ror w20,w20,#24 + ushr v21.4s,v29.4s,#20 + ror w21,w21,#24 + sli v1.4s,v24.4s,#12 + add w13,w13,w17 + sli v5.4s,v25.4s,#12 + add w14,w14,w19 + sli v9.4s,v26.4s,#12 + add w15,w15,w20 + sli v13.4s,v27.4s,#12 + add w16,w16,w21 + sli v17.4s,v28.4s,#12 + eor w9,w9,w13 + sli v21.4s,v29.4s,#12 + eor w10,w10,w14 + add v0.4s,v0.4s,v1.4s + eor w11,w11,w15 + add v4.4s,v4.4s,v5.4s + eor w12,w12,w16 + add v8.4s,v8.4s,v9.4s + ror w9,w9,#25 + add v12.4s,v12.4s,v13.4s + ror w10,w10,#25 + add v16.4s,v16.4s,v17.4s + ror w11,w11,#25 + add v20.4s,v20.4s,v21.4s + ror w12,w12,#25 + eor v24.16b,v3.16b,v0.16b + add w5,w5,w10 + eor v25.16b,v7.16b,v4.16b + add w6,w6,w11 + eor v26.16b,v11.16b,v8.16b + add w7,w7,w12 + eor v27.16b,v15.16b,v12.16b + add w8,w8,w9 + eor v28.16b,v19.16b,v16.16b + eor w21,w21,w5 + eor v29.16b,v23.16b,v20.16b + eor w17,w17,w6 + ushr v3.4s,v24.4s,#24 + eor w19,w19,w7 + ushr v7.4s,v25.4s,#24 + eor w20,w20,w8 + ushr v11.4s,v26.4s,#24 + ror w21,w21,#16 + ushr v15.4s,v27.4s,#24 + ror w17,w17,#16 + ushr v19.4s,v28.4s,#24 + ror w19,w19,#16 + ushr v23.4s,v29.4s,#24 + ror w20,w20,#16 + sli v3.4s,v24.4s,#8 + add w15,w15,w21 + sli v7.4s,v25.4s,#8 + add w16,w16,w17 + sli v11.4s,v26.4s,#8 + add w13,w13,w19 + sli v15.4s,v27.4s,#8 + add w14,w14,w20 + sli v19.4s,v28.4s,#8 + eor w10,w10,w15 + sli v23.4s,v29.4s,#8 + eor w11,w11,w16 + add v2.4s,v2.4s,v3.4s + eor w12,w12,w13 + add v6.4s,v6.4s,v7.4s + eor w9,w9,w14 + add v10.4s,v10.4s,v11.4s + ror w10,w10,#20 + add v14.4s,v14.4s,v15.4s + ror w11,w11,#20 + add v18.4s,v18.4s,v19.4s + ror w12,w12,#20 + add v22.4s,v22.4s,v23.4s + ror w9,w9,#20 + eor v24.16b,v1.16b,v2.16b + add w5,w5,w10 + eor v25.16b,v5.16b,v6.16b + add w6,w6,w11 + eor v26.16b,v9.16b,v10.16b + add w7,w7,w12 + eor v27.16b,v13.16b,v14.16b + add w8,w8,w9 + eor v28.16b,v17.16b,v18.16b + eor w21,w21,w5 + eor v29.16b,v21.16b,v22.16b + eor w17,w17,w6 + ushr v1.4s,v24.4s,#25 + eor w19,w19,w7 + ushr v5.4s,v25.4s,#25 + eor w20,w20,w8 + ushr v9.4s,v26.4s,#25 + ror w21,w21,#24 + ushr v13.4s,v27.4s,#25 + ror w17,w17,#24 + ushr v17.4s,v28.4s,#25 + ror w19,w19,#24 + ushr v21.4s,v29.4s,#25 + ror w20,w20,#24 + sli v1.4s,v24.4s,#7 + add w15,w15,w21 + sli v5.4s,v25.4s,#7 + add w16,w16,w17 + sli v9.4s,v26.4s,#7 + add w13,w13,w19 + sli v13.4s,v27.4s,#7 + add w14,w14,w20 + sli v17.4s,v28.4s,#7 + eor w10,w10,w15 + sli v21.4s,v29.4s,#7 + eor w11,w11,w16 + ext v2.16b,v2.16b,v2.16b,#8 + eor w12,w12,w13 + ext v6.16b,v6.16b,v6.16b,#8 + eor w9,w9,w14 + ext v10.16b,v10.16b,v10.16b,#8 + ror w10,w10,#25 + ext v14.16b,v14.16b,v14.16b,#8 + ror w11,w11,#25 + ext v18.16b,v18.16b,v18.16b,#8 + ror w12,w12,#25 + ext v22.16b,v22.16b,v22.16b,#8 + ror w9,w9,#25 + ext v3.16b,v3.16b,v3.16b,#4 + ext v7.16b,v7.16b,v7.16b,#4 + ext v11.16b,v11.16b,v11.16b,#4 + ext v15.16b,v15.16b,v15.16b,#4 + ext v19.16b,v19.16b,v19.16b,#4 + ext v23.16b,v23.16b,v23.16b,#4 + ext v1.16b,v1.16b,v1.16b,#12 + ext v5.16b,v5.16b,v5.16b,#12 + ext v9.16b,v9.16b,v9.16b,#12 + ext v13.16b,v13.16b,v13.16b,#12 + ext v17.16b,v17.16b,v17.16b,#12 + ext v21.16b,v21.16b,v21.16b,#12 + cbnz x4,Loop_upper_neon + + add w5,w5,w22 // accumulate key block + add x6,x6,x22,lsr#32 + add w7,w7,w23 + add x8,x8,x23,lsr#32 + add w9,w9,w24 + add x10,x10,x24,lsr#32 + add w11,w11,w25 + add x12,x12,x25,lsr#32 + add w13,w13,w26 + add x14,x14,x26,lsr#32 + add w15,w15,w27 + add x16,x16,x27,lsr#32 + add w17,w17,w28 + add x19,x19,x28,lsr#32 + add w20,w20,w30 + add x21,x21,x30,lsr#32 + + add x5,x5,x6,lsl#32 // pack + add x7,x7,x8,lsl#32 + ldp x6,x8,[x1,#0] // load input + add x9,x9,x10,lsl#32 + add x11,x11,x12,lsl#32 + ldp x10,x12,[x1,#16] + add x13,x13,x14,lsl#32 + add x15,x15,x16,lsl#32 + ldp x14,x16,[x1,#32] + add x17,x17,x19,lsl#32 + add x20,x20,x21,lsl#32 + ldp x19,x21,[x1,#48] + add x1,x1,#64 +#ifdef __ARMEB__ + rev x5,x5 + rev x7,x7 + rev x9,x9 + rev x11,x11 + rev x13,x13 + rev x15,x15 + rev x17,x17 + rev x20,x20 +#endif + eor x5,x5,x6 + eor x7,x7,x8 + eor x9,x9,x10 + eor x11,x11,x12 + eor x13,x13,x14 + eor x15,x15,x16 + eor x17,x17,x19 + eor x20,x20,x21 + + stp x5,x7,[x0,#0] // store output + add x28,x28,#1 // increment counter + mov w5,w22 // unpack key block + lsr x6,x22,#32 + stp x9,x11,[x0,#16] + mov w7,w23 + lsr x8,x23,#32 + stp x13,x15,[x0,#32] + mov w9,w24 + lsr x10,x24,#32 + stp x17,x20,[x0,#48] + add x0,x0,#64 + mov w11,w25 + lsr x12,x25,#32 + mov w13,w26 + lsr x14,x26,#32 + mov w15,w27 + lsr x16,x27,#32 + mov w17,w28 + lsr x19,x28,#32 + mov w20,w30 + lsr x21,x30,#32 + + mov x4,#5 +Loop_lower_neon: + sub x4,x4,#1 + add v0.4s,v0.4s,v1.4s + add w5,w5,w9 + add v4.4s,v4.4s,v5.4s + add w6,w6,w10 + add v8.4s,v8.4s,v9.4s + add w7,w7,w11 + add v12.4s,v12.4s,v13.4s + add w8,w8,w12 + add v16.4s,v16.4s,v17.4s + eor w17,w17,w5 + add v20.4s,v20.4s,v21.4s + eor w19,w19,w6 + eor v3.16b,v3.16b,v0.16b + eor w20,w20,w7 + eor v7.16b,v7.16b,v4.16b + eor w21,w21,w8 + eor v11.16b,v11.16b,v8.16b + ror w17,w17,#16 + eor v15.16b,v15.16b,v12.16b + ror w19,w19,#16 + eor v19.16b,v19.16b,v16.16b + ror w20,w20,#16 + eor v23.16b,v23.16b,v20.16b + ror w21,w21,#16 + rev32 v3.8h,v3.8h + add w13,w13,w17 + rev32 v7.8h,v7.8h + add w14,w14,w19 + rev32 v11.8h,v11.8h + add w15,w15,w20 + rev32 v15.8h,v15.8h + add w16,w16,w21 + rev32 v19.8h,v19.8h + eor w9,w9,w13 + rev32 v23.8h,v23.8h + eor w10,w10,w14 + add v2.4s,v2.4s,v3.4s + eor w11,w11,w15 + add v6.4s,v6.4s,v7.4s + eor w12,w12,w16 + add v10.4s,v10.4s,v11.4s + ror w9,w9,#20 + add v14.4s,v14.4s,v15.4s + ror w10,w10,#20 + add v18.4s,v18.4s,v19.4s + ror w11,w11,#20 + add v22.4s,v22.4s,v23.4s + ror w12,w12,#20 + eor v24.16b,v1.16b,v2.16b + add w5,w5,w9 + eor v25.16b,v5.16b,v6.16b + add w6,w6,w10 + eor v26.16b,v9.16b,v10.16b + add w7,w7,w11 + eor v27.16b,v13.16b,v14.16b + add w8,w8,w12 + eor v28.16b,v17.16b,v18.16b + eor w17,w17,w5 + eor v29.16b,v21.16b,v22.16b + eor w19,w19,w6 + ushr v1.4s,v24.4s,#20 + eor w20,w20,w7 + ushr v5.4s,v25.4s,#20 + eor w21,w21,w8 + ushr v9.4s,v26.4s,#20 + ror w17,w17,#24 + ushr v13.4s,v27.4s,#20 + ror w19,w19,#24 + ushr v17.4s,v28.4s,#20 + ror w20,w20,#24 + ushr v21.4s,v29.4s,#20 + ror w21,w21,#24 + sli v1.4s,v24.4s,#12 + add w13,w13,w17 + sli v5.4s,v25.4s,#12 + add w14,w14,w19 + sli v9.4s,v26.4s,#12 + add w15,w15,w20 + sli v13.4s,v27.4s,#12 + add w16,w16,w21 + sli v17.4s,v28.4s,#12 + eor w9,w9,w13 + sli v21.4s,v29.4s,#12 + eor w10,w10,w14 + add v0.4s,v0.4s,v1.4s + eor w11,w11,w15 + add v4.4s,v4.4s,v5.4s + eor w12,w12,w16 + add v8.4s,v8.4s,v9.4s + ror w9,w9,#25 + add v12.4s,v12.4s,v13.4s + ror w10,w10,#25 + add v16.4s,v16.4s,v17.4s + ror w11,w11,#25 + add v20.4s,v20.4s,v21.4s + ror w12,w12,#25 + eor v24.16b,v3.16b,v0.16b + add w5,w5,w10 + eor v25.16b,v7.16b,v4.16b + add w6,w6,w11 + eor v26.16b,v11.16b,v8.16b + add w7,w7,w12 + eor v27.16b,v15.16b,v12.16b + add w8,w8,w9 + eor v28.16b,v19.16b,v16.16b + eor w21,w21,w5 + eor v29.16b,v23.16b,v20.16b + eor w17,w17,w6 + ushr v3.4s,v24.4s,#24 + eor w19,w19,w7 + ushr v7.4s,v25.4s,#24 + eor w20,w20,w8 + ushr v11.4s,v26.4s,#24 + ror w21,w21,#16 + ushr v15.4s,v27.4s,#24 + ror w17,w17,#16 + ushr v19.4s,v28.4s,#24 + ror w19,w19,#16 + ushr v23.4s,v29.4s,#24 + ror w20,w20,#16 + sli v3.4s,v24.4s,#8 + add w15,w15,w21 + sli v7.4s,v25.4s,#8 + add w16,w16,w17 + sli v11.4s,v26.4s,#8 + add w13,w13,w19 + sli v15.4s,v27.4s,#8 + add w14,w14,w20 + sli v19.4s,v28.4s,#8 + eor w10,w10,w15 + sli v23.4s,v29.4s,#8 + eor w11,w11,w16 + add v2.4s,v2.4s,v3.4s + eor w12,w12,w13 + add v6.4s,v6.4s,v7.4s + eor w9,w9,w14 + add v10.4s,v10.4s,v11.4s + ror w10,w10,#20 + add v14.4s,v14.4s,v15.4s + ror w11,w11,#20 + add v18.4s,v18.4s,v19.4s + ror w12,w12,#20 + add v22.4s,v22.4s,v23.4s + ror w9,w9,#20 + eor v24.16b,v1.16b,v2.16b + add w5,w5,w10 + eor v25.16b,v5.16b,v6.16b + add w6,w6,w11 + eor v26.16b,v9.16b,v10.16b + add w7,w7,w12 + eor v27.16b,v13.16b,v14.16b + add w8,w8,w9 + eor v28.16b,v17.16b,v18.16b + eor w21,w21,w5 + eor v29.16b,v21.16b,v22.16b + eor w17,w17,w6 + ushr v1.4s,v24.4s,#25 + eor w19,w19,w7 + ushr v5.4s,v25.4s,#25 + eor w20,w20,w8 + ushr v9.4s,v26.4s,#25 + ror w21,w21,#24 + ushr v13.4s,v27.4s,#25 + ror w17,w17,#24 + ushr v17.4s,v28.4s,#25 + ror w19,w19,#24 + ushr v21.4s,v29.4s,#25 + ror w20,w20,#24 + sli v1.4s,v24.4s,#7 + add w15,w15,w21 + sli v5.4s,v25.4s,#7 + add w16,w16,w17 + sli v9.4s,v26.4s,#7 + add w13,w13,w19 + sli v13.4s,v27.4s,#7 + add w14,w14,w20 + sli v17.4s,v28.4s,#7 + eor w10,w10,w15 + sli v21.4s,v29.4s,#7 + eor w11,w11,w16 + ext v2.16b,v2.16b,v2.16b,#8 + eor w12,w12,w13 + ext v6.16b,v6.16b,v6.16b,#8 + eor w9,w9,w14 + ext v10.16b,v10.16b,v10.16b,#8 + ror w10,w10,#25 + ext v14.16b,v14.16b,v14.16b,#8 + ror w11,w11,#25 + ext v18.16b,v18.16b,v18.16b,#8 + ror w12,w12,#25 + ext v22.16b,v22.16b,v22.16b,#8 + ror w9,w9,#25 + ext v3.16b,v3.16b,v3.16b,#12 + ext v7.16b,v7.16b,v7.16b,#12 + ext v11.16b,v11.16b,v11.16b,#12 + ext v15.16b,v15.16b,v15.16b,#12 + ext v19.16b,v19.16b,v19.16b,#12 + ext v23.16b,v23.16b,v23.16b,#12 + ext v1.16b,v1.16b,v1.16b,#4 + ext v5.16b,v5.16b,v5.16b,#4 + ext v9.16b,v9.16b,v9.16b,#4 + ext v13.16b,v13.16b,v13.16b,#4 + ext v17.16b,v17.16b,v17.16b,#4 + ext v21.16b,v21.16b,v21.16b,#4 + add v0.4s,v0.4s,v1.4s + add w5,w5,w9 + add v4.4s,v4.4s,v5.4s + add w6,w6,w10 + add v8.4s,v8.4s,v9.4s + add w7,w7,w11 + add v12.4s,v12.4s,v13.4s + add w8,w8,w12 + add v16.4s,v16.4s,v17.4s + eor w17,w17,w5 + add v20.4s,v20.4s,v21.4s + eor w19,w19,w6 + eor v3.16b,v3.16b,v0.16b + eor w20,w20,w7 + eor v7.16b,v7.16b,v4.16b + eor w21,w21,w8 + eor v11.16b,v11.16b,v8.16b + ror w17,w17,#16 + eor v15.16b,v15.16b,v12.16b + ror w19,w19,#16 + eor v19.16b,v19.16b,v16.16b + ror w20,w20,#16 + eor v23.16b,v23.16b,v20.16b + ror w21,w21,#16 + rev32 v3.8h,v3.8h + add w13,w13,w17 + rev32 v7.8h,v7.8h + add w14,w14,w19 + rev32 v11.8h,v11.8h + add w15,w15,w20 + rev32 v15.8h,v15.8h + add w16,w16,w21 + rev32 v19.8h,v19.8h + eor w9,w9,w13 + rev32 v23.8h,v23.8h + eor w10,w10,w14 + add v2.4s,v2.4s,v3.4s + eor w11,w11,w15 + add v6.4s,v6.4s,v7.4s + eor w12,w12,w16 + add v10.4s,v10.4s,v11.4s + ror w9,w9,#20 + add v14.4s,v14.4s,v15.4s + ror w10,w10,#20 + add v18.4s,v18.4s,v19.4s + ror w11,w11,#20 + add v22.4s,v22.4s,v23.4s + ror w12,w12,#20 + eor v24.16b,v1.16b,v2.16b + add w5,w5,w9 + eor v25.16b,v5.16b,v6.16b + add w6,w6,w10 + eor v26.16b,v9.16b,v10.16b + add w7,w7,w11 + eor v27.16b,v13.16b,v14.16b + add w8,w8,w12 + eor v28.16b,v17.16b,v18.16b + eor w17,w17,w5 + eor v29.16b,v21.16b,v22.16b + eor w19,w19,w6 + ushr v1.4s,v24.4s,#20 + eor w20,w20,w7 + ushr v5.4s,v25.4s,#20 + eor w21,w21,w8 + ushr v9.4s,v26.4s,#20 + ror w17,w17,#24 + ushr v13.4s,v27.4s,#20 + ror w19,w19,#24 + ushr v17.4s,v28.4s,#20 + ror w20,w20,#24 + ushr v21.4s,v29.4s,#20 + ror w21,w21,#24 + sli v1.4s,v24.4s,#12 + add w13,w13,w17 + sli v5.4s,v25.4s,#12 + add w14,w14,w19 + sli v9.4s,v26.4s,#12 + add w15,w15,w20 + sli v13.4s,v27.4s,#12 + add w16,w16,w21 + sli v17.4s,v28.4s,#12 + eor w9,w9,w13 + sli v21.4s,v29.4s,#12 + eor w10,w10,w14 + add v0.4s,v0.4s,v1.4s + eor w11,w11,w15 + add v4.4s,v4.4s,v5.4s + eor w12,w12,w16 + add v8.4s,v8.4s,v9.4s + ror w9,w9,#25 + add v12.4s,v12.4s,v13.4s + ror w10,w10,#25 + add v16.4s,v16.4s,v17.4s + ror w11,w11,#25 + add v20.4s,v20.4s,v21.4s + ror w12,w12,#25 + eor v24.16b,v3.16b,v0.16b + add w5,w5,w10 + eor v25.16b,v7.16b,v4.16b + add w6,w6,w11 + eor v26.16b,v11.16b,v8.16b + add w7,w7,w12 + eor v27.16b,v15.16b,v12.16b + add w8,w8,w9 + eor v28.16b,v19.16b,v16.16b + eor w21,w21,w5 + eor v29.16b,v23.16b,v20.16b + eor w17,w17,w6 + ushr v3.4s,v24.4s,#24 + eor w19,w19,w7 + ushr v7.4s,v25.4s,#24 + eor w20,w20,w8 + ushr v11.4s,v26.4s,#24 + ror w21,w21,#16 + ushr v15.4s,v27.4s,#24 + ror w17,w17,#16 + ushr v19.4s,v28.4s,#24 + ror w19,w19,#16 + ushr v23.4s,v29.4s,#24 + ror w20,w20,#16 + sli v3.4s,v24.4s,#8 + add w15,w15,w21 + sli v7.4s,v25.4s,#8 + add w16,w16,w17 + sli v11.4s,v26.4s,#8 + add w13,w13,w19 + sli v15.4s,v27.4s,#8 + add w14,w14,w20 + sli v19.4s,v28.4s,#8 + eor w10,w10,w15 + sli v23.4s,v29.4s,#8 + eor w11,w11,w16 + add v2.4s,v2.4s,v3.4s + eor w12,w12,w13 + add v6.4s,v6.4s,v7.4s + eor w9,w9,w14 + add v10.4s,v10.4s,v11.4s + ror w10,w10,#20 + add v14.4s,v14.4s,v15.4s + ror w11,w11,#20 + add v18.4s,v18.4s,v19.4s + ror w12,w12,#20 + add v22.4s,v22.4s,v23.4s + ror w9,w9,#20 + eor v24.16b,v1.16b,v2.16b + add w5,w5,w10 + eor v25.16b,v5.16b,v6.16b + add w6,w6,w11 + eor v26.16b,v9.16b,v10.16b + add w7,w7,w12 + eor v27.16b,v13.16b,v14.16b + add w8,w8,w9 + eor v28.16b,v17.16b,v18.16b + eor w21,w21,w5 + eor v29.16b,v21.16b,v22.16b + eor w17,w17,w6 + ushr v1.4s,v24.4s,#25 + eor w19,w19,w7 + ushr v5.4s,v25.4s,#25 + eor w20,w20,w8 + ushr v9.4s,v26.4s,#25 + ror w21,w21,#24 + ushr v13.4s,v27.4s,#25 + ror w17,w17,#24 + ushr v17.4s,v28.4s,#25 + ror w19,w19,#24 + ushr v21.4s,v29.4s,#25 + ror w20,w20,#24 + sli v1.4s,v24.4s,#7 + add w15,w15,w21 + sli v5.4s,v25.4s,#7 + add w16,w16,w17 + sli v9.4s,v26.4s,#7 + add w13,w13,w19 + sli v13.4s,v27.4s,#7 + add w14,w14,w20 + sli v17.4s,v28.4s,#7 + eor w10,w10,w15 + sli v21.4s,v29.4s,#7 + eor w11,w11,w16 + ext v2.16b,v2.16b,v2.16b,#8 + eor w12,w12,w13 + ext v6.16b,v6.16b,v6.16b,#8 + eor w9,w9,w14 + ext v10.16b,v10.16b,v10.16b,#8 + ror w10,w10,#25 + ext v14.16b,v14.16b,v14.16b,#8 + ror w11,w11,#25 + ext v18.16b,v18.16b,v18.16b,#8 + ror w12,w12,#25 + ext v22.16b,v22.16b,v22.16b,#8 + ror w9,w9,#25 + ext v3.16b,v3.16b,v3.16b,#4 + ext v7.16b,v7.16b,v7.16b,#4 + ext v11.16b,v11.16b,v11.16b,#4 + ext v15.16b,v15.16b,v15.16b,#4 + ext v19.16b,v19.16b,v19.16b,#4 + ext v23.16b,v23.16b,v23.16b,#4 + ext v1.16b,v1.16b,v1.16b,#12 + ext v5.16b,v5.16b,v5.16b,#12 + ext v9.16b,v9.16b,v9.16b,#12 + ext v13.16b,v13.16b,v13.16b,#12 + ext v17.16b,v17.16b,v17.16b,#12 + ext v21.16b,v21.16b,v21.16b,#12 + cbnz x4,Loop_lower_neon + + add w5,w5,w22 // accumulate key block + ldp q24,q25,[sp,#0] + add x6,x6,x22,lsr#32 + ldp q26,q27,[sp,#32] + add w7,w7,w23 + ldp q28,q29,[sp,#64] + add x8,x8,x23,lsr#32 + add v0.4s,v0.4s,v24.4s + add w9,w9,w24 + add v4.4s,v4.4s,v24.4s + add x10,x10,x24,lsr#32 + add v8.4s,v8.4s,v24.4s + add w11,w11,w25 + add v12.4s,v12.4s,v24.4s + add x12,x12,x25,lsr#32 + add v16.4s,v16.4s,v24.4s + add w13,w13,w26 + add v20.4s,v20.4s,v24.4s + add x14,x14,x26,lsr#32 + add v2.4s,v2.4s,v26.4s + add w15,w15,w27 + add v6.4s,v6.4s,v26.4s + add x16,x16,x27,lsr#32 + add v10.4s,v10.4s,v26.4s + add w17,w17,w28 + add v14.4s,v14.4s,v26.4s + add x19,x19,x28,lsr#32 + add v18.4s,v18.4s,v26.4s + add w20,w20,w30 + add v22.4s,v22.4s,v26.4s + add x21,x21,x30,lsr#32 + add v19.4s,v19.4s,v31.4s // +4 + add x5,x5,x6,lsl#32 // pack + add v23.4s,v23.4s,v31.4s // +4 + add x7,x7,x8,lsl#32 + add v3.4s,v3.4s,v27.4s + ldp x6,x8,[x1,#0] // load input + add v7.4s,v7.4s,v28.4s + add x9,x9,x10,lsl#32 + add v11.4s,v11.4s,v29.4s + add x11,x11,x12,lsl#32 + add v15.4s,v15.4s,v30.4s + ldp x10,x12,[x1,#16] + add v19.4s,v19.4s,v27.4s + add x13,x13,x14,lsl#32 + add v23.4s,v23.4s,v28.4s + add x15,x15,x16,lsl#32 + add v1.4s,v1.4s,v25.4s + ldp x14,x16,[x1,#32] + add v5.4s,v5.4s,v25.4s + add x17,x17,x19,lsl#32 + add v9.4s,v9.4s,v25.4s + add x20,x20,x21,lsl#32 + add v13.4s,v13.4s,v25.4s + ldp x19,x21,[x1,#48] + add v17.4s,v17.4s,v25.4s + add x1,x1,#64 + add v21.4s,v21.4s,v25.4s + +#ifdef __ARMEB__ + rev x5,x5 + rev x7,x7 + rev x9,x9 + rev x11,x11 + rev x13,x13 + rev x15,x15 + rev x17,x17 + rev x20,x20 +#endif + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x1],#64 + eor x5,x5,x6 + eor x7,x7,x8 + eor x9,x9,x10 + eor x11,x11,x12 + eor x13,x13,x14 + eor v0.16b,v0.16b,v24.16b + eor x15,x15,x16 + eor v1.16b,v1.16b,v25.16b + eor x17,x17,x19 + eor v2.16b,v2.16b,v26.16b + eor x20,x20,x21 + eor v3.16b,v3.16b,v27.16b + ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x1],#64 + + stp x5,x7,[x0,#0] // store output + add x28,x28,#7 // increment counter + stp x9,x11,[x0,#16] + stp x13,x15,[x0,#32] + stp x17,x20,[x0,#48] + add x0,x0,#64 + st1 {v0.16b,v1.16b,v2.16b,v3.16b},[x0],#64 + + ld1 {v0.16b,v1.16b,v2.16b,v3.16b},[x1],#64 + eor v4.16b,v4.16b,v24.16b + eor v5.16b,v5.16b,v25.16b + eor v6.16b,v6.16b,v26.16b + eor v7.16b,v7.16b,v27.16b + st1 {v4.16b,v5.16b,v6.16b,v7.16b},[x0],#64 + + ld1 {v4.16b,v5.16b,v6.16b,v7.16b},[x1],#64 + eor v8.16b,v8.16b,v0.16b + ldp q24,q25,[sp,#0] + eor v9.16b,v9.16b,v1.16b + ldp q26,q27,[sp,#32] + eor v10.16b,v10.16b,v2.16b + eor v11.16b,v11.16b,v3.16b + st1 {v8.16b,v9.16b,v10.16b,v11.16b},[x0],#64 + + ld1 {v8.16b,v9.16b,v10.16b,v11.16b},[x1],#64 + eor v12.16b,v12.16b,v4.16b + eor v13.16b,v13.16b,v5.16b + eor v14.16b,v14.16b,v6.16b + eor v15.16b,v15.16b,v7.16b + st1 {v12.16b,v13.16b,v14.16b,v15.16b},[x0],#64 + + ld1 {v12.16b,v13.16b,v14.16b,v15.16b},[x1],#64 + eor v16.16b,v16.16b,v8.16b + eor v17.16b,v17.16b,v9.16b + eor v18.16b,v18.16b,v10.16b + eor v19.16b,v19.16b,v11.16b + st1 {v16.16b,v17.16b,v18.16b,v19.16b},[x0],#64 + + shl v0.4s,v31.4s,#1 // 4 -> 8 + eor v20.16b,v20.16b,v12.16b + eor v21.16b,v21.16b,v13.16b + eor v22.16b,v22.16b,v14.16b + eor v23.16b,v23.16b,v15.16b + st1 {v20.16b,v21.16b,v22.16b,v23.16b},[x0],#64 + + add v27.4s,v27.4s,v0.4s // += 8 + add v28.4s,v28.4s,v0.4s + add v29.4s,v29.4s,v0.4s + add v30.4s,v30.4s,v0.4s + + b.hs Loop_outer_512_neon + + adds x2,x2,#512 + ushr v0.4s,v31.4s,#2 // 4 -> 1 + + ldp d8,d9,[sp,#128+0] // meet ABI requirements + ldp d10,d11,[sp,#128+16] + ldp d12,d13,[sp,#128+32] + ldp d14,d15,[sp,#128+48] + + stp q24,q31,[sp,#0] // wipe off-load area + stp q24,q31,[sp,#32] + stp q24,q31,[sp,#64] + + b.eq Ldone_512_neon + + cmp x2,#192 + sub v27.4s,v27.4s,v0.4s // -= 1 + sub v28.4s,v28.4s,v0.4s + sub v29.4s,v29.4s,v0.4s + add sp,sp,#128 + b.hs Loop_outer_neon + + eor v25.16b,v25.16b,v25.16b + eor v26.16b,v26.16b,v26.16b + eor v27.16b,v27.16b,v27.16b + eor v28.16b,v28.16b,v28.16b + eor v29.16b,v29.16b,v29.16b + eor v30.16b,v30.16b,v30.16b + b Loop_outer + +Ldone_512_neon: + ldp x19,x20,[x29,#16] + add sp,sp,#128+64 + ldp x21,x22,[x29,#32] + ldp x23,x24,[x29,#48] + ldp x25,x26,[x29,#64] + ldp x27,x28,[x29,#80] + ldp x29,x30,[sp],#96 +.long 0xd50323bf // autiasp + ret + diff --git a/vere/ext/openssl/gen/macos-aarch64/crypto/ec/ecp_nistz256-armv8.S b/vere/ext/openssl/gen/macos-aarch64/crypto/ec/ecp_nistz256-armv8.S new file mode 100644 index 0000000..7462e6b --- /dev/null +++ b/vere/ext/openssl/gen/macos-aarch64/crypto/ec/ecp_nistz256-armv8.S @@ -0,0 +1,4242 @@ +#include "arm_arch.h" + +.text +.globl _ecp_nistz256_precomputed + +.align 12 +_ecp_nistz256_precomputed: +.byte 0x3c,0x4d,0x27,0xcc,0xf5,0x4a,0x4f,0x8f,0xe8,0xc8,0x04,0x68,0x09,0x4a,0x5b,0x80,0x9d,0x7a,0xe8,0x31,0x08,0x76,0x68,0x19,0x9f,0x08,0xb4,0x1f,0x32,0x43,0x89,0xd8,0x34,0xd3,0xf5,0xb7,0xb5,0xee,0x42,0x3e,0x91,0x01,0x06,0x7c,0xbf,0xd9,0x97,0x12,0xd3,0x1a,0xc9,0x04,0x8d,0x53,0x83,0x14,0x28,0xf0,0x8e,0x19,0xcc,0x91,0xe5,0x80 +.byte 0x14,0xd6,0xc1,0x8d,0x61,0x66,0x3b,0xa7,0x20,0x1e,0xe4,0x77,0xd7,0x66,0x05,0xfb,0x5c,0xa9,0x9a,0x7a,0xb2,0x30,0x50,0x28,0x87,0x80,0xfe,0xcd,0xe1,0xb3,0xff,0xa3,0x45,0x3c,0x7e,0x9b,0x08,0xc0,0xc1,0x9f,0x2e,0xad,0x7d,0x89,0x79,0x90,0x60,0xc6,0xac,0x17,0x64,0x59,0x4d,0xcf,0x56,0x7a,0xca,0x82,0xaa,0x6e,0x04,0x2f,0x1f,0x8b +.byte 0xa9,0xdd,0xeb,0x91,0x5c,0x77,0x17,0x99,0x4e,0xc2,0x45,0x69,0x2e,0xcf,0x60,0xc6,0x3c,0xad,0x65,0x33,0x35,0x6f,0xe4,0xd0,0x37,0x1f,0xe2,0x2c,0x66,0x98,0x55,0xe3,0x66,0xa2,0xc6,0x21,0xce,0x63,0x59,0x2e,0xd2,0x2b,0x8a,0x5a,0xcd,0xee,0xa7,0xad,0xf6,0x8c,0x3f,0x44,0x6c,0x12,0x30,0x8d,0xca,0xea,0x46,0x8a,0x4c,0x96,0xf9,0x96 +.byte 0x18,0x10,0x4e,0x46,0xc4,0x3e,0xa0,0x94,0x26,0x9d,0x62,0xd2,0x4b,0xb0,0xbc,0x0b,0xd5,0x56,0xa5,0xd2,0xc1,0x2f,0x2d,0x15,0xd8,0xed,0x97,0x17,0xcb,0x32,0x67,0xc5,0x0f,0x7c,0xde,0xa8,0x8c,0x4d,0xa0,0xb8,0x2e,0xed,0x24,0xd5,0xd5,0x49,0xca,0x77,0x1f,0x48,0x3b,0x83,0x54,0xb2,0xe7,0x7e,0x7a,0xa7,0x5c,0xed,0x7f,0xa1,0x9f,0x05 +.byte 0xd4,0xd4,0x90,0x0d,0xae,0x37,0x4e,0xd1,0x8f,0xd1,0x0a,0xa7,0x63,0x5b,0xb7,0x65,0xcb,0xc8,0xba,0x29,0xec,0x35,0x53,0xb2,0xac,0x32,0xf4,0xb7,0x6a,0xb1,0x69,0xcf,0x56,0x14,0x7f,0xd6,0xc5,0xca,0x88,0x1d,0x49,0xcf,0xfd,0x1f,0xcc,0xb1,0x13,0x30,0x42,0xd0,0x1c,0x6e,0x38,0x8e,0xf9,0x40,0xe7,0xe8,0xd6,0x28,0x1a,0x75,0x31,0xf3 +.byte 0x30,0x46,0x3f,0xb5,0x8a,0x47,0x35,0x4c,0x6e,0xdb,0x26,0x1a,0x25,0xa3,0xd8,0x0b,0x1d,0x51,0x12,0x91,0x4c,0x11,0x76,0x83,0x19,0xad,0x2a,0x3e,0xb4,0x1c,0x3c,0xfc,0x14,0x20,0x84,0x58,0x7b,0xc3,0x94,0x68,0x60,0x5c,0x3f,0x7c,0x26,0xb5,0x75,0x41,0x0b,0xc2,0xec,0xf3,0x96,0x5b,0xbb,0x41,0x32,0x00,0x4e,0x68,0xeb,0xf1,0xd9,0x96 +.byte 0xe7,0x00,0xac,0xb0,0x1b,0x39,0x46,0xf1,0xc9,0x18,0x7d,0xb7,0xc4,0x42,0xbc,0x8b,0x09,0x3e,0xa9,0x97,0x2e,0xc6,0xf8,0x38,0xa3,0xe4,0x2c,0x52,0x5d,0x24,0xf7,0xc5,0x15,0xab,0x16,0x5e,0x46,0x2c,0xd8,0xd7,0x4d,0xb3,0xf2,0xfd,0xe4,0x75,0x3c,0x34,0x95,0xb9,0x8c,0x92,0x35,0x42,0x8b,0xc4,0xc8,0x6c,0xd4,0x1e,0x67,0x35,0xd3,0x6d +.byte 0x79,0x85,0xff,0x74,0xbe,0x40,0x07,0x27,0x75,0x2c,0xea,0x04,0xcc,0xa2,0x72,0x80,0x97,0x5f,0xfe,0x8a,0x56,0x0f,0xf4,0x6d,0xa4,0x61,0x04,0x4b,0x5e,0xb4,0xe2,0xd8,0x87,0xb6,0xfd,0x3d,0x00,0x8a,0xa9,0xe4,0x62,0x5f,0x4f,0xec,0x1e,0x40,0x28,0x6b,0x21,0x0f,0x50,0x26,0x97,0xa0,0x25,0x8f,0x3e,0xf2,0x69,0xdc,0x36,0xe5,0xb8,0xdb +.byte 0x01,0x7d,0xfb,0x73,0x7d,0x3e,0xf7,0x55,0x41,0x39,0xe0,0x33,0x0d,0xe3,0x4b,0x6b,0x7b,0x3e,0x6e,0xdc,0x7d,0x9a,0x6e,0x35,0xb0,0x38,0x13,0x92,0x80,0xa1,0xe6,0xbf,0x03,0x9d,0xb7,0x7f,0x55,0xce,0x46,0x3c,0x22,0xc7,0xfa,0xfb,0x18,0xba,0x06,0xa0,0x09,0x78,0x3f,0xc0,0x79,0x5f,0xe6,0x6a,0x29,0xaf,0xd1,0xc7,0x84,0xa7,0xed,0xb9 +.byte 0xb6,0x82,0x81,0xc1,0x53,0xee,0x00,0x34,0xa8,0x81,0xdf,0x5a,0xd3,0x07,0x7e,0x2e,0x17,0x40,0xa1,0x2b,0xf4,0x2a,0x1f,0x9a,0x67,0x75,0x73,0xa8,0x58,0x65,0x17,0xdf,0xf1,0x84,0x76,0xc5,0x8d,0x48,0x93,0xe1,0x28,0xa5,0x73,0x10,0x6e,0x9e,0x39,0x03,0x69,0x52,0xdf,0xf9,0x46,0x7c,0x5b,0xf3,0x5b,0x9a,0x63,0xd9,0x4f,0xf5,0x8e,0x73 +.byte 0xed,0x33,0x7d,0x23,0xb9,0x6c,0x3c,0x9b,0xa7,0xcf,0x7f,0x34,0x6f,0x97,0xe2,0xfe,0x0a,0x8b,0xe1,0x86,0x83,0x91,0x2e,0xdd,0x6b,0xb1,0xbf,0xa6,0x92,0x4f,0x30,0x79,0x68,0x91,0x3e,0x06,0x17,0xe9,0x0b,0x25,0x07,0xa6,0x88,0x91,0x6c,0x6e,0xc8,0xd8,0xdc,0x68,0x5e,0x45,0xf2,0x55,0xef,0x56,0x38,0x29,0xd0,0x89,0x40,0x58,0x51,0x9f +.byte 0x5f,0xa4,0x08,0xc6,0x94,0x34,0xd2,0x6f,0x59,0x0f,0x6e,0xca,0x85,0x7f,0x56,0x3f,0xac,0x8f,0x25,0x0f,0x47,0xe3,0x9e,0x40,0xed,0xd8,0xae,0x30,0x0d,0xb4,0x47,0x40,0x4b,0xa3,0x23,0x1b,0x7f,0x0f,0xff,0xdf,0x6f,0x1d,0x87,0xb2,0x94,0xa0,0x36,0xbb,0x53,0x13,0x1e,0xaf,0x92,0xf8,0x07,0x95,0xc7,0xe4,0xa8,0x41,0xa9,0xed,0xf0,0x08 +.byte 0xfc,0xc1,0x4a,0xed,0x9a,0x4f,0x13,0xc5,0xed,0x8a,0x95,0xf5,0x69,0xf7,0xee,0x75,0xb6,0x4d,0xba,0x8f,0x65,0x23,0xe8,0x50,0x9e,0x7a,0xd7,0x28,0x3a,0x49,0xe7,0x4c,0x7c,0xc6,0x64,0xbd,0x8c,0x17,0x14,0x0b,0xb5,0xe3,0xb4,0xab,0x0b,0x9a,0xa9,0x29,0x84,0xaa,0xba,0x69,0xc4,0x2e,0xbf,0xca,0x57,0x0d,0xd3,0x36,0x21,0x61,0x00,0x13 +.byte 0x95,0xe3,0xf8,0xa6,0x64,0x74,0x02,0xb5,0xbf,0x86,0x07,0xde,0x67,0x48,0x23,0xe0,0x24,0x96,0x3a,0x86,0xb2,0xfa,0xa7,0x75,0xb4,0x26,0x42,0xcb,0x96,0x4e,0xf7,0x90,0xae,0xa5,0xe4,0xd0,0x45,0x31,0xe7,0x0f,0xe0,0xcb,0xbf,0x94,0x94,0x33,0x4f,0x65,0x04,0xfb,0xc0,0xc4,0x3f,0x51,0xa5,0xf3,0xea,0xc8,0xd5,0x23,0x66,0xe0,0x48,0x09 +.byte 0xba,0x6a,0x27,0x50,0xec,0xae,0xd2,0x2a,0xe6,0xf9,0xe4,0xde,0x35,0x6e,0xcc,0x82,0x76,0xfc,0x36,0x16,0xe1,0x9f,0xc7,0x0d,0xc1,0xc9,0x6a,0x23,0xbe,0xa1,0x3c,0xfd,0xce,0xa7,0x2e,0x91,0x36,0x23,0x5a,0x20,0xdf,0x55,0xc5,0x91,0x32,0x5c,0x62,0x49,0xe7,0x8b,0x0b,0x0e,0x9c,0x2e,0xee,0x1f,0xfe,0xca,0x00,0xfc,0x55,0xd7,0x9c,0x0a +.byte 0x75,0xaa,0xb0,0x46,0x90,0x55,0x2b,0x46,0xab,0x98,0x9d,0xab,0x0e,0x12,0x03,0x58,0xf1,0x4a,0x68,0x59,0x74,0xc9,0x37,0x6d,0x6f,0xe6,0xd3,0x73,0xf1,0xa3,0xdd,0xbe,0x85,0xca,0x74,0xc6,0xb6,0x51,0x6f,0x83,0x6f,0xa1,0x80,0x00,0x00,0x78,0x0a,0xa7,0xff,0xa7,0xe2,0x2e,0x5f,0x4f,0x31,0xbb,0x1b,0x99,0x21,0x33,0x59,0x6e,0x03,0x38 +.byte 0x10,0xd9,0x98,0xf2,0x0c,0xad,0x08,0x6b,0x00,0x49,0xb5,0x5e,0x11,0x60,0x70,0x49,0xff,0x79,0xac,0xba,0x30,0x3d,0x69,0x9f,0xaf,0xfb,0xd7,0xeb,0xe2,0xcd,0x0d,0x97,0xb9,0x94,0xc8,0x6e,0x06,0x3b,0x64,0x80,0x71,0x8f,0x81,0xb0,0x58,0xe0,0xc7,0xbd,0x27,0x6a,0xd4,0xb7,0xd9,0x6c,0xc1,0x44,0x38,0xe1,0x36,0xbc,0x0a,0x33,0x26,0x01 +.byte 0x25,0x90,0xbc,0x0a,0xc2,0xa3,0xbb,0xfc,0xeb,0x0b,0x1a,0x38,0x98,0x26,0x93,0xf5,0x2d,0x29,0x41,0x83,0x3b,0xba,0x40,0x46,0xf3,0xf6,0xfd,0x53,0xb9,0x7a,0x60,0x01,0x8a,0x8d,0xb4,0x57,0xd8,0xf3,0x36,0x72,0x22,0x2f,0x59,0xd3,0x7f,0x25,0xf2,0x05,0x61,0xfa,0x18,0x28,0xac,0xd5,0x14,0x00,0xaf,0x8b,0x7c,0x39,0xb5,0xa2,0xcb,0x1e +.byte 0x62,0x14,0xcb,0x10,0x76,0x17,0x23,0x2c,0xc8,0x25,0xac,0x37,0x9e,0x83,0x81,0x83,0xfe,0x2e,0x2c,0xd2,0x3f,0xf8,0x58,0x2b,0xf1,0x7f,0x4f,0xe1,0x17,0xc7,0xf7,0xad,0x57,0x67,0xc2,0x57,0x77,0x2e,0xfb,0xf2,0xce,0xa9,0x74,0x81,0x47,0xf8,0x5a,0x88,0x76,0xb1,0x43,0x75,0xc8,0xc4,0xc8,0x60,0x1e,0xd7,0xd1,0x1c,0xce,0x89,0x82,0xc6 +.byte 0x77,0x8d,0x87,0xe8,0xd0,0x5b,0x0c,0xf0,0x44,0x48,0x8d,0xee,0x55,0xc6,0xe4,0x2c,0x2c,0x41,0x75,0x5d,0x5a,0xd2,0xa3,0x1d,0x32,0x85,0x08,0xcf,0x03,0x3a,0x3c,0xfe,0x65,0x75,0xef,0xd2,0xa6,0x22,0x16,0x66,0x39,0x30,0x05,0xe3,0x57,0xab,0x71,0x6d,0x28,0xd5,0x2f,0xc6,0xa8,0x25,0x46,0x14,0xfd,0x7e,0xa2,0x67,0x7e,0x20,0x91,0xc2 +.byte 0x2b,0x03,0xdd,0xac,0xaa,0x1a,0xb5,0x2a,0x04,0xd6,0x15,0x9d,0x3f,0x54,0x24,0x7c,0x75,0xab,0x77,0xd9,0x6c,0x85,0xa2,0xf9,0x33,0xeb,0xeb,0xc0,0x27,0xcd,0x9d,0x58,0xae,0xa3,0x34,0x10,0xae,0x85,0x7d,0x4c,0x15,0x4c,0x90,0x46,0xe0,0x5b,0xec,0xa7,0xb2,0x68,0x85,0x01,0xed,0xf9,0x4a,0x85,0xe3,0xb6,0xea,0xe2,0x53,0xc0,0x32,0x83 +.byte 0x73,0x05,0x77,0xac,0xb5,0x96,0xaa,0xf0,0x9c,0x2c,0xa4,0xd2,0xd4,0xbf,0x74,0x2f,0x39,0x47,0x22,0x99,0x50,0x06,0x5f,0xcb,0x99,0xc5,0xc9,0x2e,0x70,0xd6,0x68,0x6a,0xc4,0x73,0x41,0xcb,0x8b,0xfd,0x23,0x98,0x11,0x59,0xad,0x20,0x8a,0x0d,0xaf,0xaa,0xd0,0xe2,0xeb,0x32,0x8b,0x6f,0x0e,0x43,0x12,0xe3,0x27,0x8f,0xf6,0xa4,0x76,0x0b +.byte 0xfb,0x22,0xad,0xda,0x1c,0x0a,0x3e,0x90,0xc0,0x7d,0xf3,0x09,0xbc,0x17,0x33,0xef,0xf1,0xf2,0x84,0x80,0x2a,0x0b,0x82,0xd7,0x95,0xc7,0xd2,0x08,0x4a,0xf4,0xf5,0x6d,0x09,0x06,0x8e,0xe4,0x74,0x63,0x8f,0x09,0xca,0xe2,0xd9,0x0e,0x1e,0x03,0x20,0x1b,0x4c,0xfb,0x1d,0x5a,0x2e,0x28,0xeb,0x84,0x82,0x6f,0x97,0x6f,0xcd,0x7a,0xc3,0xa7 +.byte 0x79,0x73,0x66,0x0c,0x94,0xd5,0xf4,0x8f,0x2c,0x73,0x1f,0x24,0xbc,0x17,0xee,0xd5,0xb0,0xa6,0xb8,0x04,0x6d,0x6a,0xd0,0x61,0xe3,0x1a,0x49,0x97,0x94,0xc5,0x8e,0xbc,0xac,0x5b,0x0b,0x0a,0xc5,0x74,0x06,0x89,0xee,0xc2,0xb7,0x5f,0x1b,0xa1,0x6b,0x1a,0xff,0xed,0xda,0x90,0x91,0xc1,0x0d,0x6a,0x06,0xd6,0xcb,0x02,0x71,0x17,0x95,0x7d +.byte 0xc6,0x3b,0x7e,0x6b,0xc8,0x73,0x03,0x0d,0x6b,0x8f,0x73,0x56,0x59,0x2e,0x09,0x23,0x4e,0xda,0xfc,0x4e,0xfc,0xa4,0x42,0x15,0x2e,0x10,0x6a,0x97,0x48,0x3c,0xb4,0xa4,0x0c,0x64,0x21,0xc3,0xeb,0x6c,0xac,0x27,0x4f,0x43,0x94,0x91,0x78,0xdc,0xfd,0xad,0x2b,0xa7,0x43,0x42,0xb0,0x51,0xdd,0x63,0xcc,0xcd,0xb7,0x15,0xfa,0x13,0x8d,0xc7 +.byte 0x55,0x3a,0x74,0x17,0x23,0x36,0x3e,0x23,0xe1,0x42,0x90,0xe1,0xb7,0xc7,0xda,0xb7,0x57,0xeb,0xc3,0xfb,0x62,0x58,0xbf,0x31,0x2a,0xfb,0xc7,0xdb,0x3d,0xfc,0x87,0x32,0xb1,0x3e,0xe5,0x3d,0x94,0x3d,0x86,0x32,0x61,0xfe,0x19,0xd2,0x32,0x31,0x8b,0x43,0xdb,0xab,0xa4,0xe5,0x34,0xc8,0x30,0xae,0x8c,0x02,0x53,0x99,0x35,0xb4,0x56,0x38 +.byte 0x37,0xcf,0xff,0xb0,0x05,0x21,0x12,0x65,0xc4,0xb3,0x9c,0x83,0x95,0x12,0xd3,0x03,0x7a,0x80,0x97,0x5b,0x67,0x33,0x27,0xfc,0x43,0xf2,0xf7,0xaa,0x60,0xb6,0xfc,0x55,0x44,0x30,0xa3,0x4a,0xa3,0x60,0x31,0xf7,0x01,0xfa,0xb0,0x8d,0x82,0x29,0xa7,0x03,0xb7,0x7e,0x3f,0xe5,0x66,0x26,0xb7,0x51,0xcf,0x8d,0xdd,0x6f,0x83,0x39,0xfc,0x9b +.byte 0xa5,0x3d,0xb6,0x41,0x89,0x54,0xc3,0xb2,0xf0,0x24,0x64,0xcb,0x53,0xfd,0x0a,0x91,0x6c,0x6f,0x28,0xfe,0xc1,0xe9,0x17,0x2e,0x65,0x55,0x2e,0xf2,0x48,0x52,0xb1,0x69,0xf0,0xdd,0x42,0xd5,0xdf,0x7c,0x36,0x75,0xdb,0x5b,0x3d,0xa9,0x6d,0xa4,0xeb,0x47,0x4f,0x2b,0x5c,0xd0,0x30,0xee,0xa7,0x74,0x6a,0x64,0x8a,0xbc,0x9b,0xe5,0x82,0x56 +.byte 0x76,0xe4,0x3f,0xf5,0x05,0x59,0x19,0x1e,0x80,0x47,0xf1,0x77,0xac,0x32,0x43,0x80,0x0a,0x1b,0x28,0xb6,0xf4,0xe8,0x7c,0x2f,0xeb,0xa8,0x4b,0x6a,0x59,0xb5,0xf8,0x77,0x68,0xd4,0x86,0x6c,0x87,0xdc,0xc4,0x00,0x4f,0xce,0xdb,0xf6,0x34,0xc3,0x74,0x02,0x08,0xdb,0x0d,0x34,0x8d,0xea,0x49,0x4a,0x30,0x5f,0x1b,0xcd,0xa6,0x3a,0x34,0x94 +.byte 0x5f,0x32,0x6a,0x62,0x96,0x4b,0x51,0x89,0x30,0xc9,0x90,0xdf,0x77,0x73,0x0e,0x3c,0x5c,0xbd,0x5c,0xee,0xd9,0x77,0xea,0x23,0x42,0xaa,0xa5,0x6b,0xf9,0x8c,0xc4,0x70,0x68,0xdd,0x0b,0x65,0xa3,0xc7,0xe4,0x7b,0x0a,0x89,0x85,0x25,0x7d,0x84,0x99,0x39,0xe6,0xb8,0xbe,0x7f,0x31,0x0f,0x84,0x0c,0x98,0x72,0xab,0x4c,0x44,0xb0,0xa4,0x83 +.byte 0x90,0xbb,0x93,0x73,0x07,0x07,0xba,0x63,0x5b,0x61,0x70,0xe1,0x84,0xae,0xaa,0xd6,0xa3,0x5a,0x54,0xd1,0xea,0xc7,0x2c,0x7b,0x67,0x4b,0x8a,0x7f,0x66,0x28,0x8d,0x22,0xec,0x82,0x64,0x69,0x63,0xf0,0x53,0x2d,0x10,0x9c,0x9c,0x34,0x4f,0xc6,0x96,0x40,0xdb,0xce,0x0e,0xf7,0x3a,0x8a,0xee,0x3f,0x32,0x5f,0x2b,0x0c,0x4a,0xbc,0x63,0xfb +.byte 0x18,0xf6,0x26,0x57,0xc9,0x13,0x13,0xb7,0xe0,0xcc,0x3e,0x4e,0x73,0xfa,0xe2,0x54,0xc1,0x67,0xfe,0xe2,0xec,0xfd,0xaf,0xf9,0x96,0x99,0x9f,0xe9,0xe2,0xd0,0x94,0x39,0x33,0xc9,0xca,0x35,0x27,0xad,0x58,0x46,0x98,0x64,0x17,0x5f,0xe9,0xce,0x4b,0xc8,0xab,0x0d,0xd2,0x88,0xec,0xbb,0x5c,0xba,0xc1,0x30,0x4c,0xd4,0x99,0x0d,0x07,0x95 +.byte 0x0a,0xa5,0xeb,0xa6,0x10,0x4b,0x4d,0x77,0x14,0x76,0x88,0x43,0x7f,0x6b,0x5d,0x9b,0x87,0x1d,0x6b,0x5d,0xb9,0x04,0xa9,0xc7,0x28,0x18,0x70,0xa1,0x99,0xbc,0x99,0xf5,0xf1,0x71,0xa9,0x3a,0xb6,0xe5,0x98,0x98,0x8f,0x7a,0x6c,0xda,0x1a,0x63,0x0e,0xf1,0xe8,0x10,0xa3,0x7c,0x64,0x7e,0xde,0x2a,0x59,0x1b,0x04,0xca,0x69,0x8e,0xba,0x2f +.byte 0x56,0xe1,0xa7,0xab,0x4f,0xe4,0x9d,0x49,0x33,0x9e,0x4e,0x5b,0xe1,0x58,0xc4,0x3f,0x99,0x5a,0x69,0x00,0xe5,0x5f,0x85,0xcb,0x62,0x80,0x5e,0x3d,0x88,0x0a,0x32,0x42,0xc1,0xf9,0x6a,0xa0,0xeb,0x65,0x2f,0x17,0x62,0x25,0x96,0x50,0xa2,0x6e,0xd6,0xdf,0x09,0xb7,0x1e,0x68,0xb2,0x10,0x2b,0xf3,0x9e,0xb2,0x67,0x75,0x9b,0xe3,0x76,0xfe +.byte 0x95,0xbe,0x83,0xcb,0xba,0x77,0x5b,0x2d,0x5f,0xdd,0x94,0xbb,0x0e,0x5d,0x83,0xa2,0xe7,0x48,0x4c,0x84,0x86,0x41,0x47,0x4b,0x96,0x24,0x89,0xa8,0x20,0x04,0xa5,0xef,0x8e,0xb6,0xeb,0xcd,0x3c,0x77,0xc5,0x65,0x5c,0xff,0xa6,0x0d,0x2b,0x58,0x21,0x5a,0x11,0xe2,0x24,0x64,0x1c,0xd6,0x18,0x9a,0xac,0x3f,0x42,0x0e,0xeb,0x32,0x3e,0xed +.byte 0xce,0x61,0xc9,0xe4,0xe7,0xd3,0x3f,0x53,0xa4,0x80,0x2b,0x1c,0xc0,0x99,0x63,0x52,0x93,0x5e,0xdc,0x78,0xe2,0x35,0x9e,0xb2,0xb4,0x1d,0x09,0xd1,0x5c,0x1c,0x4e,0xdb,0x3a,0x5d,0x8c,0x94,0x7d,0xfe,0x63,0xf2,0xa3,0xe9,0x61,0x73,0x78,0xc1,0xd9,0x17,0x5e,0x9a,0x73,0x58,0xc3,0xe7,0xa0,0x1f,0x2a,0x62,0x15,0xf8,0xdb,0xbb,0x38,0x80 +.byte 0x57,0xd3,0x1f,0x4c,0x4a,0x20,0x30,0xa9,0x7a,0x78,0x61,0xd9,0x90,0xb7,0x4f,0xd6,0x46,0x72,0xe7,0x41,0xb2,0xbb,0xfb,0x50,0xfe,0xe1,0xba,0x3e,0x73,0x2f,0x81,0x6d,0x2b,0x0b,0x90,0xbd,0x8a,0x3b,0x23,0x88,0xa2,0x7d,0x62,0x87,0x96,0xc9,0xcc,0x66,0x28,0x89,0xa7,0x29,0x41,0xd2,0xc5,0x5b,0xdb,0xc4,0x0c,0xbb,0x19,0x4e,0xd5,0x12 +.byte 0x53,0x48,0x5c,0xf2,0x9b,0x62,0xd0,0xa3,0x77,0x40,0x85,0x12,0x2b,0x2d,0x52,0x1b,0x31,0xbd,0xe9,0x1c,0xd4,0x87,0xa4,0xd7,0xc9,0x14,0xb7,0x39,0x66,0x8c,0xfe,0x3e,0x83,0x00,0x01,0xae,0x44,0x2d,0x7d,0xa1,0xda,0x66,0xb0,0x66,0xcb,0x62,0x55,0x9f,0x92,0x80,0x4e,0x8d,0x7f,0x70,0x95,0xc2,0xf2,0x1b,0xe9,0x35,0xf8,0x42,0x04,0x65 +.byte 0xf2,0x36,0x4c,0x96,0x30,0xd3,0x47,0x9d,0xb7,0x2b,0x76,0xac,0x75,0xb5,0xb8,0xf1,0x7d,0xa2,0x36,0xef,0x9d,0xa7,0x60,0x51,0x8d,0xcf,0x00,0x3d,0xdb,0xcc,0xe9,0xe2,0xc4,0x7b,0x3a,0xeb,0x2b,0xc3,0xd8,0x0b,0xb0,0x58,0x41,0xa0,0x47,0xab,0x07,0xf5,0x7c,0x9e,0x0b,0x7a,0x16,0x8f,0xb4,0xca,0x09,0xed,0x84,0xa1,0xfa,0xdc,0x7c,0x3c +.byte 0xdd,0x2f,0xb0,0x2d,0xeb,0x93,0x28,0xf5,0x1e,0x0c,0x1a,0x0c,0x35,0x27,0x40,0xf2,0x22,0x66,0x2d,0x82,0xf2,0x94,0x03,0xa5,0x4b,0x84,0x92,0x1d,0x98,0xd5,0xd9,0x09,0x6a,0xfd,0x65,0xe5,0xa1,0x0e,0xe2,0xd9,0xb6,0xd1,0xba,0xbf,0xc7,0x42,0x22,0x39,0x83,0xbf,0x37,0xf6,0x80,0xc2,0xea,0xdf,0xb9,0x33,0xa0,0xaf,0xd7,0xe3,0x70,0x9a +.byte 0x5c,0xf8,0x1a,0x47,0x2b,0xb5,0xdd,0x15,0xe3,0x08,0xc8,0x37,0xe3,0xc2,0x25,0x87,0x0e,0x3c,0xc5,0xae,0x61,0xa4,0x4a,0x56,0x50,0x08,0x58,0x68,0xa3,0x4a,0x28,0x08,0xef,0x92,0xd5,0x13,0x50,0x09,0x76,0x34,0x47,0xae,0xa8,0x7f,0xa5,0x2b,0x13,0xb7,0x5a,0x96,0x65,0x62,0xf2,0xaa,0xb4,0x4b,0x2a,0xad,0xea,0x2c,0x0d,0x1e,0x97,0x82 +.byte 0xe4,0x6f,0xfe,0xf4,0x88,0x14,0x7b,0xba,0x45,0xbe,0x61,0x56,0xd2,0x37,0x1b,0x65,0xb8,0x0b,0x77,0xcb,0x3c,0xfe,0x9f,0xe3,0x39,0xc5,0xfb,0x2a,0x18,0x9b,0x60,0x99,0xd5,0x6f,0x52,0xfe,0xd8,0x04,0x88,0x1c,0x9a,0x50,0xe5,0x3b,0x33,0x3f,0xca,0xc5,0x5b,0x9c,0x5f,0x35,0x13,0x65,0xa6,0x21,0x78,0x19,0xeb,0xff,0x35,0x70,0x81,0xaf +.byte 0x19,0x23,0x61,0xd6,0xeb,0xff,0xa6,0x9e,0x5d,0x3f,0x7f,0x89,0x2e,0x22,0xa4,0x0b,0x9c,0x4f,0xa9,0xff,0xbb,0x23,0x29,0xa1,0xf4,0x8a,0xb7,0x4b,0xfb,0xbf,0xeb,0x0a,0x47,0x87,0x78,0x2b,0x20,0x38,0x82,0xab,0x7e,0x2c,0xdc,0x08,0x2b,0xb4,0xae,0xd8,0x64,0x44,0x1a,0xdf,0x21,0x62,0x27,0xf2,0x61,0x63,0x37,0xad,0xd4,0x06,0x4e,0xae +.byte 0xba,0xeb,0x08,0xfa,0xe5,0xad,0x5d,0xcf,0xce,0x38,0xe5,0xca,0x74,0x83,0x42,0x4b,0xe8,0x8f,0xfb,0xff,0x83,0x4d,0x27,0x88,0x43,0x62,0xdd,0x80,0xa2,0x06,0x98,0x48,0x58,0x6f,0x54,0x16,0x6f,0xbf,0x81,0x36,0xc8,0xf3,0xea,0x4b,0xf7,0x5a,0x7b,0xb7,0xf4,0xa4,0x5e,0x22,0x52,0xe7,0x9e,0xb1,0xb6,0x7a,0xa8,0x22,0xee,0x68,0x82,0x8f +.byte 0xe4,0xcb,0xad,0x71,0xef,0x53,0xf2,0x7d,0xed,0x91,0x9e,0xf6,0x90,0x9e,0x54,0x19,0x30,0xaf,0x4a,0x17,0xc0,0x6a,0x9c,0x49,0x12,0x8b,0x6f,0xc7,0x47,0x1e,0xa2,0x64,0x28,0x1f,0x0c,0xd3,0x3e,0x59,0x66,0x8c,0x2e,0x11,0x52,0x6c,0x69,0x66,0x10,0xfb,0x27,0xe6,0x1c,0xae,0x6f,0x44,0x87,0x86,0x0d,0x3e,0xd3,0xa0,0x80,0xef,0x30,0xb9 +.byte 0xb8,0xd7,0x47,0x84,0x68,0x2b,0xf2,0x32,0x7b,0x89,0x93,0xd2,0x83,0x56,0x35,0xc3,0xbf,0x5c,0x24,0xec,0xad,0x2d,0xa4,0x49,0x63,0x89,0xc6,0xf9,0x24,0x51,0x1c,0x9b,0xd1,0xcb,0x30,0x82,0xda,0xb3,0xa7,0xe1,0x4d,0x96,0xd0,0x44,0x44,0x1d,0x4e,0xd7,0x7d,0x7a,0x51,0x2e,0x2f,0xc4,0x9f,0xdb,0x06,0x53,0xfc,0x51,0x56,0xe5,0xb9,0x6b +.byte 0x4a,0x2c,0x3e,0x62,0xc5,0x9c,0x42,0xe3,0xaf,0x3a,0x0f,0x0e,0x74,0x29,0x66,0x70,0x75,0x2a,0x06,0xd4,0x0f,0x0c,0xfd,0xea,0xcc,0x39,0xd0,0xa7,0x47,0x75,0x92,0x44,0x09,0xa2,0x3c,0x4e,0xad,0xaa,0xc4,0xc6,0xf9,0x35,0x82,0x23,0x25,0x43,0x94,0x26,0x14,0xde,0xf1,0xb9,0xb8,0xe0,0x75,0xe0,0x48,0x70,0x8a,0xc6,0x3c,0x72,0x98,0x72 +.byte 0x8b,0x15,0x58,0x17,0x73,0x29,0x67,0x21,0x56,0xc4,0x25,0x17,0x68,0xbe,0xd7,0x36,0x05,0x4b,0x58,0xa2,0x1b,0x64,0xe5,0x11,0x96,0x5a,0x3b,0xa6,0x90,0xb6,0x2d,0x7e,0x55,0xbb,0x31,0x93,0xe7,0xcc,0x2e,0x74,0xb6,0x9b,0x4d,0x04,0xc5,0x45,0x9b,0x0b,0x26,0xef,0x61,0x23,0x3d,0x7e,0xee,0x01,0x57,0xfa,0x77,0x12,0x47,0x64,0xac,0x8f +.byte 0x25,0xbe,0x8e,0x2e,0x68,0x11,0x95,0xf0,0x1a,0xd2,0x3d,0x66,0xc1,0xdb,0x97,0x9e,0xbb,0xba,0xc1,0x66,0xa4,0xb5,0x71,0x01,0xee,0xf5,0xbb,0x1e,0x9f,0x41,0xfc,0x40,0x74,0x26,0xf7,0xc6,0x2c,0x9c,0x1c,0x59,0xce,0xcf,0x18,0x17,0x81,0x5d,0xd4,0xe3,0xd8,0x46,0x62,0x9e,0x97,0xb1,0xca,0xac,0x01,0x3e,0xf8,0x96,0xa2,0xee,0xe0,0xf8 +.byte 0xf3,0x2d,0xe9,0xd2,0x1f,0x9f,0x41,0xbb,0x2f,0xe5,0x64,0x6d,0x5b,0xe7,0x47,0x0e,0x83,0x7b,0x08,0x5e,0x29,0x35,0x2f,0x75,0x31,0x44,0x4c,0xb7,0x61,0xa4,0x03,0x2e,0x15,0x94,0x7a,0xa0,0x46,0x31,0x7b,0x43,0xd9,0x14,0xa3,0x34,0x0c,0x83,0x93,0x75,0x8e,0x3a,0x1c,0xc3,0xe1,0x36,0x18,0x96,0x7a,0xfb,0x77,0xad,0xbb,0xe9,0x0d,0x4b +.byte 0x21,0x04,0x2e,0xdd,0x7a,0x63,0xc9,0x60,0xb1,0x9b,0xad,0xde,0x1f,0x65,0x8a,0x58,0x18,0x84,0x95,0xa9,0xac,0x3a,0xac,0xcb,0xb7,0xa9,0xeb,0x0c,0x7c,0x3a,0x98,0x9a,0x3f,0x56,0x23,0x51,0x58,0x59,0x4e,0xf5,0x57,0x60,0xe6,0x9d,0xf8,0xf7,0xed,0x9d,0x81,0x14,0x68,0xbe,0xaf,0x19,0xe5,0xb5,0x9b,0x5f,0xe4,0x51,0x44,0x4b,0x23,0x42 +.byte 0xdd,0x92,0x1a,0xe5,0x7e,0xef,0x77,0xbe,0x88,0x77,0x1e,0x8a,0xbd,0x2a,0x77,0xb1,0x0d,0x1b,0xe3,0x8a,0x7f,0x15,0x71,0x93,0xc9,0x5f,0x78,0x2d,0x77,0x9b,0x0c,0xad,0x76,0x3c,0x6b,0xe2,0x15,0x8e,0xe1,0x5e,0x1d,0x90,0xa5,0xd6,0xc7,0x55,0x5d,0x52,0xf7,0xcc,0x82,0x9b,0xdc,0x1d,0x80,0xa4,0xc7,0xbe,0x7c,0x4f,0xda,0x81,0x91,0x78 +.byte 0x88,0x0e,0x31,0xde,0x87,0x4c,0xdc,0x84,0x9a,0x65,0x89,0xfa,0x22,0x3e,0xde,0x3b,0x7f,0x7f,0x9b,0x3f,0x3e,0xda,0x13,0x31,0x59,0x7b,0x08,0x48,0x39,0x37,0xfd,0x1a,0x4f,0xa3,0x12,0xba,0xe5,0xd6,0xfa,0xa3,0x59,0x0b,0x3b,0x7d,0xde,0xc0,0x51,0xce,0x92,0x6b,0x3d,0x4b,0xd2,0xa4,0x68,0xc2,0x32,0x2d,0x01,0xbd,0x66,0x98,0x8f,0xa0 +.byte 0x86,0xfb,0x08,0x36,0xa9,0xd4,0x3b,0x7b,0x01,0x2d,0xaa,0x8c,0x64,0x19,0xa6,0x62,0x24,0x92,0x5e,0xc5,0x02,0x17,0x8e,0xf0,0x88,0xe9,0xd1,0x8b,0x69,0xda,0xed,0x9c,0x60,0x32,0xab,0xc0,0xbc,0x84,0x64,0x6e,0x32,0xb2,0xcd,0x24,0xf6,0xb2,0x9d,0xf5,0xf5,0x71,0xe2,0x01,0xbc,0x77,0x6a,0x5b,0x26,0x56,0xf7,0x04,0x84,0xff,0x7c,0xa4 +.byte 0xe8,0xa8,0x82,0x6c,0x40,0x24,0x93,0x3c,0x6e,0x7d,0x0d,0x22,0xd0,0xe4,0xef,0xc4,0x4e,0x26,0x66,0x61,0x75,0xe9,0x06,0x69,0x06,0xfd,0x97,0x68,0x96,0x67,0xec,0x96,0x09,0x73,0xe4,0x0a,0x3e,0xaa,0xb8,0x25,0x77,0x00,0x91,0x7a,0x2e,0xc8,0x81,0x75,0x78,0xb7,0xa5,0x27,0x55,0xf2,0xcf,0x9a,0xab,0xab,0x51,0x0a,0x65,0x47,0xbf,0x10 +.byte 0xd2,0x19,0x78,0x6b,0x35,0xf4,0xef,0x12,0x2b,0x5f,0x0c,0x28,0x7c,0xe8,0x64,0x55,0x2f,0x26,0x85,0x91,0x7a,0x9d,0x48,0x76,0x12,0x14,0x2d,0x4a,0x8a,0xd6,0xfa,0x7b,0xf9,0xc7,0x24,0x45,0xf6,0xbd,0x47,0xab,0xc6,0x4b,0x9e,0x39,0x77,0x57,0x04,0xa8,0x4d,0x43,0x99,0x5c,0xb1,0x3d,0xc2,0x4e,0xc5,0x17,0x66,0xc4,0xb6,0xdd,0x92,0x80 +.byte 0x85,0x3b,0x07,0x63,0x16,0x5f,0x67,0x76,0x9b,0xb5,0x8e,0xca,0x97,0xbb,0xf4,0x20,0xd0,0x4d,0x7b,0xd0,0xa3,0x74,0x6f,0x8a,0x68,0xc7,0x31,0x78,0x1b,0x72,0x45,0xa4,0xc4,0xf8,0xf8,0x26,0xa8,0x4d,0x08,0x2f,0x7b,0x3d,0xa0,0x2a,0xb5,0x65,0x27,0xc2,0x36,0x13,0x2d,0x8d,0x83,0xeb,0xf4,0x08,0x26,0x41,0x8b,0x32,0xf3,0x09,0x70,0x70 +.byte 0x5d,0x8a,0xcc,0xb8,0xe9,0xf7,0x08,0xdf,0x5f,0x4a,0xb8,0x8a,0xb7,0x1b,0xad,0xe2,0xc3,0x39,0x59,0xe0,0x7f,0xd0,0x66,0x7b,0x99,0x5a,0xde,0x52,0xe2,0x1f,0x47,0xc2,0x63,0x74,0x7a,0xa5,0x88,0xc3,0x24,0x70,0x4a,0x7d,0xdd,0xa4,0xe6,0xf8,0xfd,0x5c,0xfa,0x8c,0x4c,0x0f,0x52,0x95,0xf3,0x2c,0x76,0x47,0x7a,0xe8,0xdb,0xe0,0x9b,0x49 +.byte 0x88,0x5b,0x87,0x5a,0xd1,0x07,0x24,0x06,0x83,0x3b,0x25,0x23,0xe7,0xaa,0x79,0xef,0x74,0x02,0x12,0xfe,0x47,0x5c,0x77,0x73,0xf7,0x2e,0x4b,0x58,0x3b,0x60,0x7b,0x91,0x2f,0x0d,0xb4,0x6d,0x00,0x80,0x19,0xaa,0x88,0xbc,0xb2,0x7b,0xd9,0xb7,0xdd,0x32,0x47,0x62,0xf5,0x0f,0x46,0x95,0x4c,0x6c,0x01,0x67,0xfb,0xe4,0x2b,0xac,0x95,0x84 +.byte 0x25,0x0a,0xe5,0x4c,0x2d,0x4a,0x6e,0x77,0xfd,0xeb,0xe1,0x53,0xc9,0x2e,0x70,0x01,0x32,0x05,0x6d,0xc5,0xc9,0x5d,0x90,0xca,0x56,0xd1,0xd8,0x40,0x2a,0x51,0x4d,0x95,0xc3,0x57,0x8b,0xdd,0x62,0x9c,0x69,0xd1,0x03,0x89,0x95,0x38,0x2c,0xc1,0x6d,0x41,0xf2,0xc3,0xa2,0x9c,0x43,0xea,0xf1,0x02,0x00,0x56,0x46,0xbb,0x87,0x35,0x40,0x0e +.byte 0x18,0x51,0x29,0x39,0xbb,0x6d,0x15,0xf2,0xcd,0x54,0x23,0x95,0x69,0xdc,0x0a,0xb2,0x26,0xd9,0x25,0xe1,0xf1,0x07,0x7b,0x5e,0xc3,0x30,0x68,0x5f,0x2a,0xce,0x91,0x92,0x03,0x0c,0x62,0x11,0x43,0x80,0xe5,0x12,0xec,0xe3,0x4f,0x90,0xfe,0x38,0x6e,0xe9,0x7e,0x94,0x83,0x26,0x59,0x3f,0x3f,0x81,0xc6,0x94,0x98,0x09,0x80,0xff,0x01,0x44 +.byte 0xff,0x77,0x6a,0x4c,0x76,0x91,0xd9,0x12,0x59,0x9a,0x00,0x7c,0x87,0x06,0x17,0xf7,0x12,0xc7,0xee,0x04,0xd5,0x8d,0x68,0xc5,0x8d,0x80,0x10,0xcc,0x14,0x45,0xe8,0xd7,0x43,0x10,0x01,0x9e,0x61,0xc2,0xc0,0x66,0xfe,0xcf,0x5f,0x9f,0xcb,0xa3,0xf8,0xc7,0x07,0x41,0xe3,0xf2,0xda,0x6e,0x01,0x76,0xc6,0x49,0x49,0x01,0xc7,0xcf,0x6a,0x20 +.byte 0x71,0xc5,0xf0,0xb1,0xa0,0xc9,0xed,0xec,0x66,0x71,0x93,0xf5,0xc0,0x27,0x42,0xed,0xd5,0x6f,0x20,0xe1,0x86,0x3e,0xd0,0x5d,0x94,0x17,0x43,0xb4,0x98,0x0d,0x8a,0x31,0x6c,0x59,0xa9,0x0b,0xb3,0xa4,0x0b,0x46,0x0b,0xa8,0x79,0x62,0x3a,0x3d,0xbf,0xef,0x94,0xd3,0x31,0xf2,0xa1,0x55,0xe8,0x92,0x44,0x37,0x62,0x82,0x1b,0x60,0x87,0x67 +.byte 0x85,0x78,0xd5,0x84,0x73,0xa4,0xea,0x56,0x08,0x78,0x68,0x7f,0xfb,0x15,0x20,0x64,0xeb,0x6c,0xf7,0x5e,0xc0,0x79,0x83,0x59,0x7b,0xed,0x2d,0xa9,0x37,0x46,0xf3,0x62,0xb1,0xa1,0x2b,0x48,0x58,0xd9,0x0c,0x03,0xf7,0xf3,0x47,0xeb,0xd7,0x03,0x9b,0x85,0xd3,0xd7,0xd7,0x7e,0xfb,0x1a,0x25,0x83,0xda,0x06,0xa0,0x04,0x0d,0x6b,0x90,0x29 +.byte 0x2a,0xfc,0xcd,0x96,0xe9,0x17,0x4f,0xdd,0x2c,0x90,0xdf,0xf1,0xe3,0x08,0x0a,0xb8,0x0c,0x59,0x2a,0x83,0x62,0x94,0x00,0xd3,0x80,0x1a,0x31,0xd7,0x17,0x70,0xc7,0xa2,0x20,0x17,0x65,0x88,0xae,0x11,0x25,0xc9,0xba,0x76,0xa7,0x61,0x60,0xd1,0x59,0x50,0x22,0xdd,0xaa,0xcf,0x9d,0xc1,0x36,0x7d,0xf9,0x7b,0x69,0xc0,0x98,0xba,0x40,0xd5 +.byte 0xd6,0x46,0x93,0x92,0x7d,0x37,0x3f,0x3a,0x04,0x9a,0x84,0xaf,0x8e,0x61,0x04,0x26,0x54,0x33,0x84,0xc0,0xac,0x21,0x51,0xd7,0x9a,0x93,0x6e,0xf2,0x09,0x87,0xc5,0x35,0xa8,0x96,0xb0,0x64,0x90,0x35,0x52,0xed,0x0e,0xbc,0xdb,0xa6,0x06,0x3e,0xe7,0xea,0x57,0x4b,0xd7,0xc5,0x1c,0x76,0x3d,0x0d,0xc3,0x1f,0x8e,0x4f,0x12,0xdb,0x3a,0x21 +.byte 0x2a,0x69,0xc2,0x94,0xda,0x4c,0x91,0xcc,0xa8,0x36,0x89,0xd7,0x78,0xa8,0x74,0x79,0x63,0x92,0xeb,0x39,0x3b,0x84,0x8c,0xe5,0xc6,0x26,0xf0,0xef,0xcc,0xc1,0x72,0x4b,0x8e,0xcd,0xe4,0xd9,0x00,0x80,0xbc,0xdf,0xe2,0x61,0x53,0x04,0x81,0xb0,0x13,0xc5,0x6c,0x77,0x74,0xa3,0x0c,0x5b,0xef,0xef,0xea,0xc7,0x5b,0xeb,0xbf,0xee,0x54,0xd7 +.byte 0x7a,0x69,0x6e,0x39,0xc2,0xed,0x08,0x44,0x82,0x08,0x16,0x8b,0xf1,0x74,0x5f,0xeb,0x60,0xd5,0x46,0x63,0x80,0x39,0xe9,0x91,0x0a,0x17,0x8b,0xd4,0x09,0xdc,0xa6,0xab,0x6a,0xbc,0xf8,0xe9,0x09,0x19,0xc1,0x83,0x9f,0xdf,0xad,0x6c,0x31,0x94,0xb9,0xc5,0x77,0x83,0xd1,0xd8,0x76,0xeb,0x12,0x3c,0x00,0x31,0xea,0xac,0x97,0x39,0x16,0xd5 +.byte 0x81,0xfa,0x6d,0x10,0x5b,0x3e,0x20,0xe1,0x88,0x5c,0x4b,0xf3,0x04,0xd4,0xc3,0xb9,0xec,0xe5,0xb0,0x13,0xf5,0x09,0x5c,0xe8,0x27,0xe2,0xde,0x9b,0xac,0x2e,0xf2,0xe5,0x2c,0x33,0x4b,0x4f,0xec,0xc7,0x08,0xf9,0xc2,0xd3,0x1b,0x4d,0x81,0x69,0x14,0xa1,0xc5,0x0f,0xb2,0x57,0x8b,0xcc,0xca,0x3b,0xc9,0x9c,0x1f,0xee,0x06,0x4d,0xc7,0x62 +.byte 0xcb,0x8f,0x49,0x81,0xfb,0xa5,0x68,0x81,0x36,0x38,0x33,0x6b,0x9e,0x58,0xd4,0x24,0x67,0xf1,0x30,0xd6,0x08,0x61,0x5a,0x7f,0x2e,0x4e,0xf1,0xd6,0x64,0x75,0x72,0xb0,0xdf,0xcd,0xae,0x04,0x41,0xbd,0x04,0x2c,0x96,0x36,0x34,0x32,0xec,0xbd,0xd0,0xbf,0x8e,0xe8,0x47,0xe3,0x22,0xdd,0x79,0x53,0xcc,0x6a,0x25,0xf1,0x5e,0x63,0x09,0x98 +.byte 0xc5,0x6d,0x0a,0xe3,0x30,0xd6,0x52,0x70,0x21,0xb2,0xef,0x15,0x66,0x4a,0x2d,0x2b,0x5c,0xcb,0x39,0x1b,0x91,0x10,0xa6,0x02,0x22,0xd0,0xcc,0x32,0x50,0x5c,0x70,0x72,0xd1,0x03,0xb3,0x2d,0x2e,0x33,0xed,0xae,0x7a,0x07,0x3f,0x70,0x38,0x35,0xfc,0xcf,0xdb,0xfe,0x7b,0x26,0xd9,0x38,0x1e,0x52,0x07,0x2f,0x72,0x81,0xcc,0xd3,0x21,0x00 +.byte 0x63,0x48,0x38,0x44,0xb8,0x35,0xf2,0x4f,0xe5,0x33,0x8c,0xb3,0x07,0x0c,0xac,0x3d,0x73,0xe8,0xe3,0xb3,0x43,0xc5,0xb4,0x32,0xf4,0x41,0xdf,0x7b,0x06,0x3a,0xb8,0x67,0x17,0xc5,0xec,0x46,0x30,0xc0,0xa4,0x29,0x40,0xe4,0x8a,0xa3,0x14,0x84,0xa6,0x84,0xc7,0x5d,0x4b,0x57,0x37,0x9c,0x42,0xe6,0xa4,0x20,0xf7,0x5d,0xef,0x21,0xe2,0x80 +.byte 0x54,0x6d,0xf5,0xb5,0xbe,0xa3,0x95,0xcf,0x98,0xf8,0x38,0x46,0xa2,0x90,0x57,0x09,0x8f,0xb0,0x6d,0x01,0x5f,0x95,0x5a,0x78,0xf6,0xfd,0x01,0x0f,0xfd,0xa5,0xe2,0xcf,0x54,0xa3,0x2b,0xc1,0x30,0xbe,0x6d,0x1a,0xd3,0xdb,0x5a,0x17,0x43,0x46,0x93,0x81,0x0c,0x85,0x04,0x13,0xda,0xb4,0xde,0x81,0x48,0x5c,0xbc,0x42,0x9e,0x6d,0x6c,0x82 +.byte 0xff,0xa5,0x51,0xb1,0xd3,0xd2,0x3d,0x82,0x82,0xb4,0x96,0xb1,0x38,0x5d,0xc9,0x55,0xcb,0x9f,0xe5,0x47,0xd4,0x52,0x0f,0x76,0x54,0xec,0x39,0xb6,0x40,0xc3,0xc5,0xaa,0xc2,0x30,0x02,0xa0,0x68,0xc3,0x22,0x63,0x5a,0x8c,0x62,0x6d,0x40,0xc5,0xde,0x06,0x29,0x44,0x5d,0x2b,0x18,0x0a,0xa5,0x43,0x47,0xfe,0x5f,0x0f,0x63,0xa4,0x3c,0xa1 +.byte 0x62,0xcb,0x70,0x1d,0xf8,0x0e,0xc9,0xbe,0x27,0x0e,0x87,0x81,0x69,0x4c,0xea,0xbe,0xf9,0x9b,0xda,0xb6,0x9b,0xd0,0xdd,0xa0,0x1e,0x60,0x38,0x88,0x85,0x25,0x53,0xee,0x2c,0x77,0x53,0x82,0xb0,0x88,0x19,0x87,0x2a,0x77,0x7b,0x37,0x4b,0x4c,0xf4,0x96,0x5f,0x73,0xa1,0xbb,0x5c,0xfc,0x7e,0xbb,0xed,0x6f,0xb7,0x6f,0x9d,0x55,0xde,0xd3 +.byte 0xac,0xb9,0x8e,0x36,0x0f,0x3d,0xea,0x87,0xcd,0x19,0x33,0x1d,0xa8,0xee,0xfc,0xcd,0xe5,0x53,0x7b,0xdf,0x37,0x49,0x2d,0x73,0xf5,0x36,0xdd,0x42,0xc6,0x88,0x0d,0xf5,0xf2,0xba,0x2e,0x81,0xed,0x88,0x27,0x8d,0xe5,0x3f,0x83,0x5e,0xde,0x63,0x8f,0x67,0x2b,0x85,0xf3,0x2a,0x9b,0x26,0x3e,0x2b,0xe2,0x29,0xc5,0x5e,0x21,0x04,0xfe,0x5b +.byte 0xb9,0xd8,0xa7,0x7b,0xdf,0xcf,0x61,0xd6,0xaf,0x9b,0x17,0xcb,0xaf,0x8f,0x71,0xb3,0xc2,0x9d,0x9a,0x55,0x1d,0x3e,0x1d,0x17,0x25,0xc8,0x44,0x71,0x29,0x2f,0xc8,0x01,0x3b,0xe4,0xc4,0x2e,0xcc,0x3b,0xdb,0x34,0xbb,0xc0,0xcc,0xb6,0x07,0xe3,0x86,0x4c,0x62,0x02,0xe8,0xc3,0x11,0x85,0x6c,0x18,0x80,0xa3,0xbd,0x02,0x30,0x68,0x36,0xa3 +.byte 0xb6,0xc6,0xbd,0x82,0x43,0x40,0xed,0xa1,0xcf,0xc5,0xce,0xe4,0x27,0x8a,0xeb,0x8c,0x59,0xea,0x4a,0x81,0xd9,0x35,0x87,0x7d,0x6d,0xb2,0x8f,0x67,0x37,0x1f,0x11,0x60,0x0d,0xed,0x34,0xd5,0xa0,0x7b,0x46,0x71,0x68,0x19,0x69,0xd3,0x65,0x1d,0x47,0xf1,0x7e,0x16,0xd8,0xec,0xbb,0x52,0xc3,0x7b,0x62,0x5a,0xb3,0x60,0x67,0x2e,0xfd,0x57 +.byte 0xf2,0xfb,0x3d,0x63,0xe6,0x82,0x20,0xff,0x31,0x90,0x1d,0x5e,0x4f,0x04,0x9a,0xf8,0xb2,0x0c,0x84,0xff,0x7d,0xe2,0xec,0x4b,0x09,0xbb,0xdf,0xae,0xc5,0xaf,0xcb,0x8b,0xb5,0x5d,0xa8,0x53,0x78,0xf9,0xb9,0x43,0x71,0xa6,0xc2,0x10,0xfa,0xad,0xda,0xba,0x46,0x13,0x72,0x97,0xef,0x6f,0xe3,0x4f,0x5f,0xf9,0xec,0x25,0xdb,0xcd,0xca,0x33 +.byte 0x7e,0x50,0x73,0x5b,0xd0,0x9f,0xea,0xd5,0xd9,0x29,0xe8,0x1b,0xc1,0xf8,0x40,0xbf,0x50,0xdb,0x8e,0x39,0x0b,0xb7,0x6c,0xf1,0x34,0x0b,0x1f,0x88,0x27,0x4b,0xea,0x1d,0xb2,0x36,0x07,0x4b,0x22,0xa9,0xd0,0xf8,0xf2,0x13,0x8e,0x97,0x9d,0xd9,0x53,0xd3,0xdc,0x63,0x40,0x11,0xc7,0x74,0x9e,0xd9,0x83,0x01,0xae,0x36,0xcb,0x35,0x9a,0x0c +.byte 0xb5,0x15,0x0a,0xf5,0x41,0xa5,0x6c,0x72,0x40,0x80,0xf0,0x15,0xc0,0x80,0x23,0x0b,0xab,0x98,0xfc,0xab,0x81,0xe0,0x8b,0x61,0x91,0x18,0xd2,0x23,0x71,0xed,0x32,0x80,0x26,0x86,0x96,0xe9,0x90,0x5e,0x43,0xd2,0x89,0x8f,0x89,0x57,0x73,0xca,0xe1,0x42,0xa9,0xa9,0xed,0xdd,0xc5,0x9f,0xf7,0x00,0x0d,0xa3,0xe5,0xc8,0x6f,0x0c,0x14,0xa4 +.byte 0x9d,0x5a,0x14,0xaf,0x96,0x3a,0xb2,0x64,0xa7,0xac,0x20,0xa9,0x01,0x4c,0xec,0x64,0xc6,0x9b,0xfd,0x04,0xc5,0x2e,0xe7,0xdd,0xa5,0x8e,0xe7,0xe7,0x76,0x53,0x59,0x95,0x14,0x07,0xed,0xe9,0x96,0xd0,0x2d,0xc8,0x9d,0xa2,0x11,0xe3,0x02,0x20,0x68,0x09,0x25,0x69,0x07,0x88,0xdb,0x26,0x36,0xf5,0x8e,0xc3,0xf0,0x70,0x8c,0xeb,0xe6,0xcd +.byte 0xad,0xf3,0x49,0x6e,0x8a,0x54,0xa6,0xdd,0x97,0x8e,0x37,0x28,0x3a,0x6d,0xc4,0xdd,0x99,0x85,0xf7,0x96,0x63,0xb4,0xa2,0xdf,0xff,0x81,0x17,0xa1,0x22,0xb1,0x43,0x5b,0x29,0xdb,0x92,0x91,0xc9,0xc6,0x8d,0x29,0x1d,0x6e,0xe3,0x44,0x3e,0xe4,0x20,0xd5,0xf4,0x4a,0xfa,0xae,0xf6,0x2c,0xff,0x80,0xc9,0xce,0x7f,0x13,0x1e,0xd7,0x24,0xa2 +.byte 0xb3,0x90,0xb8,0x20,0x18,0xe5,0x6c,0x0e,0xf5,0xc6,0x26,0xd6,0xe9,0xe8,0x55,0xe4,0x3f,0x49,0x13,0xe2,0xca,0xef,0x9b,0xc0,0x8f,0x24,0x50,0x37,0xef,0x21,0xff,0x79,0xb7,0x5d,0x86,0x03,0xfb,0x85,0x75,0x74,0xbf,0xc5,0x3a,0x30,0xcc,0x00,0xc3,0x0d,0x4f,0x91,0xd6,0x31,0x19,0xd6,0xcd,0x0e,0x1c,0x53,0x88,0x75,0xb8,0xf9,0x68,0x7a +.byte 0xa4,0x3e,0x8d,0xed,0xba,0x05,0xb4,0x6c,0xe0,0x45,0x9c,0x41,0x34,0x24,0x82,0xaf,0x9a,0xcf,0x9e,0xd2,0x27,0x5c,0x7f,0xb3,0xcb,0xe5,0xad,0xb4,0x8e,0x74,0x9d,0xe4,0xba,0x55,0xb3,0xd3,0x32,0xbc,0x62,0x11,0xb3,0xa4,0x82,0xf0,0xd8,0xfc,0x79,0x03,0x70,0xae,0x7f,0x7f,0xc8,0x50,0xb5,0xbe,0x47,0x14,0x31,0xd7,0x16,0x65,0x52,0x3b +.byte 0xbb,0x42,0x38,0x23,0x77,0x4d,0x38,0x0b,0x0a,0x61,0x94,0xac,0xa3,0xc9,0xd7,0x99,0x4f,0x34,0x3a,0x88,0xe8,0x1d,0x0b,0x97,0x48,0x6d,0x5c,0x61,0x4c,0x3f,0xc2,0x7c,0x6c,0x63,0x00,0xdd,0x59,0xae,0xcd,0x17,0x0a,0x21,0x27,0x98,0x15,0x23,0x6d,0x84,0x7e,0x24,0xd4,0x7f,0x1b,0x3a,0x98,0x52,0xc3,0x60,0x33,0xd6,0xc1,0xfe,0x68,0xa8 +.byte 0x49,0x3d,0x7e,0x53,0xee,0x0d,0xed,0x89,0x9a,0x9a,0xe6,0xa1,0x47,0xc7,0xba,0xf3,0x73,0x5b,0xef,0x33,0x51,0x8c,0x1f,0x84,0xa6,0xef,0x77,0x94,0x2d,0xd6,0xda,0x8f,0x85,0x8c,0xd3,0xb6,0x02,0x68,0x9e,0x57,0xb6,0xd9,0x1a,0x8c,0xb5,0xf4,0x61,0x39,0x29,0xb5,0xb7,0x0d,0x0d,0xa6,0x81,0x87,0x54,0xc0,0xca,0x67,0x09,0xca,0x20,0xf3 +.byte 0x37,0x7e,0x03,0x3e,0x31,0x8c,0x51,0x89,0x06,0x81,0xf6,0x7b,0x8b,0xe3,0x4f,0xd0,0xb8,0x0c,0x34,0x7c,0xd6,0xfc,0x25,0xf8,0x00,0xa6,0x10,0x15,0x0d,0xeb,0x22,0x72,0x03,0x79,0x1c,0x84,0x1d,0x3d,0x10,0xaf,0x43,0x6d,0xd7,0xed,0x10,0x2c,0x14,0x26,0xd4,0xa1,0xee,0x6c,0x7f,0x52,0xe4,0x83,0xcc,0x5f,0x1a,0x4b,0xd0,0xc8,0xfb,0x27 +.byte 0x17,0x2c,0xf6,0x90,0x02,0xb4,0xb0,0x63,0x7c,0x14,0xec,0x9e,0x08,0x60,0xec,0x45,0x85,0xc6,0x76,0x42,0x4f,0x1c,0x5f,0x48,0x7f,0x87,0xef,0x8c,0x04,0x23,0x3c,0xda,0x39,0xbc,0xec,0x09,0xda,0xeb,0x9b,0x72,0x7a,0xb4,0x20,0x1c,0xb2,0xdd,0x2e,0x63,0x72,0xd7,0xb1,0xfe,0x5b,0x21,0x28,0xfb,0xeb,0x45,0x31,0x89,0xe5,0x3e,0xa0,0x85 +.byte 0xa6,0x96,0xdb,0x42,0xd5,0xb4,0x27,0x78,0x10,0xa0,0xcb,0x69,0x68,0x1e,0x76,0xed,0xbc,0x3c,0xa1,0x04,0x10,0x81,0x2a,0x4f,0x52,0x78,0x1e,0xae,0x5a,0x47,0x69,0x81,0xee,0xd3,0x14,0x1a,0x68,0x19,0x75,0x92,0x72,0x47,0x61,0x70,0xcf,0x96,0x35,0xa6,0xbb,0x00,0xaf,0x3e,0x90,0x86,0x22,0x9b,0x72,0x8a,0xa1,0x05,0xe2,0xfb,0xdc,0x30 +.byte 0xd5,0xdd,0x46,0x1f,0xf6,0x33,0x43,0xd1,0x59,0xc4,0x93,0x89,0x36,0x6a,0x7b,0x76,0xa7,0x40,0x6c,0xb1,0x9c,0xce,0x3a,0x8c,0xb6,0xd5,0xd1,0x0a,0x78,0xf6,0x08,0xfb,0xf5,0x9c,0xee,0x74,0x0d,0x39,0x51,0x6d,0x0e,0xa6,0xe9,0x22,0xd8,0x30,0xdf,0x16,0xf7,0xe3,0xbd,0xbb,0xe6,0x45,0xb8,0x9c,0xb5,0x49,0xf0,0xe8,0x7c,0xce,0x25,0xf8 +.byte 0x46,0xc0,0x59,0xc2,0xbc,0xdd,0xea,0x3e,0xeb,0x2e,0xf5,0xfd,0xd9,0x05,0x8a,0x2f,0xa3,0xa4,0x63,0xa6,0x50,0x08,0xce,0x2a,0x69,0xe7,0x58,0x57,0xa1,0xb2,0x44,0x41,0x04,0xfc,0x61,0xb1,0xb8,0x19,0x27,0x14,0x71,0x2f,0x55,0x64,0x28,0xa0,0xcc,0x47,0x0c,0xd4,0xed,0xfd,0x07,0x99,0xc6,0x9e,0xdc,0x5f,0x19,0x03,0x1a,0x00,0xda,0xf6 +.byte 0x2c,0x95,0xb0,0xd2,0xaa,0xfb,0xbc,0x1a,0xf3,0x62,0xaf,0x9c,0x38,0xde,0x61,0x30,0xd5,0x56,0x82,0x4b,0xf6,0xeb,0x34,0xc0,0xdc,0x51,0x97,0x89,0x80,0x47,0x9d,0x2a,0xae,0x0e,0x92,0x48,0xd2,0x9d,0x5a,0x67,0xef,0x33,0xa3,0xbe,0xdd,0x80,0x64,0x9c,0xc1,0xaf,0xf9,0x1a,0x4b,0x55,0x67,0x88,0x37,0x37,0xff,0x98,0xe3,0x9e,0xa9,0x4e +.byte 0x1f,0xa1,0x32,0x70,0xa3,0xbb,0xdc,0x6e,0xb3,0x6d,0xfe,0x8f,0x74,0x89,0xed,0xe1,0x13,0x3c,0x8f,0x08,0x75,0x84,0x84,0xee,0xac,0xcc,0xa5,0x47,0x9f,0x3e,0xb9,0xed,0x26,0x20,0xf7,0x7b,0xfb,0x8a,0x48,0x58,0x51,0x24,0xf9,0xeb,0x66,0x6d,0xd6,0x83,0x24,0xff,0x9f,0x0d,0x38,0x9c,0xf9,0x24,0x99,0x12,0x49,0xb6,0xdd,0xce,0x44,0xe7 +.byte 0x31,0x3d,0x4b,0x23,0x8a,0xd5,0x62,0xa2,0xdb,0x78,0x56,0x3a,0x62,0xc8,0x59,0x5f,0xcc,0x58,0x76,0x19,0x5d,0x48,0x4a,0xc2,0x87,0x21,0xc3,0x3d,0x3a,0x38,0xbd,0x20,0xfd,0xc3,0xa6,0xab,0x32,0xb8,0xc8,0xd1,0x5c,0xa5,0xb4,0x64,0x60,0xd2,0x87,0xb7,0xe9,0xc2,0x2b,0xb2,0x75,0x04,0xf4,0x6e,0x96,0x99,0x5d,0x08,0xff,0xa3,0x45,0x8a +.byte 0xad,0x7c,0xee,0x94,0x4e,0x45,0x86,0xad,0x0a,0x7a,0x5c,0x8f,0xff,0x28,0xb3,0x3c,0xf8,0x5e,0xb3,0x1e,0x5c,0xe0,0x22,0xf7,0x4e,0xe4,0xdf,0x1f,0xd2,0xa2,0x37,0x4a,0x87,0xa6,0x16,0x80,0x0c,0xc3,0x75,0x18,0xe4,0x76,0x8f,0xc3,0x1b,0xee,0xb1,0xe4,0x4b,0xeb,0x6f,0x15,0x48,0x60,0xaf,0x8e,0x0e,0xeb,0xbe,0x26,0xa3,0xbd,0x2a,0xb5 +.byte 0x6d,0x8b,0xd1,0xa1,0x0f,0x8e,0xaa,0xaa,0xb8,0x8d,0x84,0xe7,0x65,0x40,0x60,0x3d,0x59,0xb7,0x1c,0xef,0x08,0x0e,0x6f,0x21,0xb4,0xe6,0x10,0xda,0x59,0x9a,0x0f,0xe6,0xba,0xfd,0xed,0x7f,0xc1,0xe3,0x7a,0xb7,0x21,0x5d,0xcf,0x1c,0xbd,0xd2,0x59,0xc0,0x31,0xa5,0x8a,0x39,0x86,0x9e,0x7e,0x6a,0xcb,0x87,0x6f,0x01,0xba,0xa4,0x06,0x6b +.byte 0x3b,0x5d,0x68,0x85,0x11,0xd2,0x2a,0x3c,0x8e,0x3a,0x8c,0x8b,0x59,0xa0,0x4a,0xfb,0x76,0x85,0xe6,0x47,0xc3,0xf4,0xc4,0xe6,0xcc,0x7b,0xff,0x71,0x03,0xd1,0xc2,0x01,0xe4,0x5e,0x49,0x31,0xa6,0x0e,0x17,0x9b,0x42,0xdc,0x75,0xd6,0xfe,0x09,0x0b,0x6d,0x21,0x46,0xfe,0x40,0xcd,0x7c,0xdb,0xca,0xc9,0xba,0x64,0x83,0xd3,0xf7,0x0b,0xad +.byte 0xff,0xfd,0xe3,0xd9,0x49,0x7f,0x5d,0x48,0xaa,0xac,0xe5,0x74,0x2a,0x14,0x6f,0x64,0x21,0x81,0x09,0xcd,0x2d,0x19,0xf5,0x56,0x85,0xa8,0xec,0x98,0x65,0x46,0x99,0xec,0xbe,0xe3,0x86,0xd3,0x41,0x8b,0xe4,0x76,0x9b,0x5b,0x98,0x33,0x9e,0xdb,0xc9,0xde,0x89,0xfa,0x60,0x58,0xa8,0x2f,0x7a,0xca,0x30,0x91,0xc8,0x26,0x14,0x9c,0xd6,0x6d +.byte 0xc2,0x3c,0xca,0xe0,0x9a,0x13,0x72,0x63,0x5e,0x20,0xfd,0xa0,0xca,0xb2,0xed,0x37,0xc5,0xd4,0x4e,0xec,0x1f,0x74,0x25,0x37,0xe2,0xbe,0xb1,0x7f,0x52,0x26,0x28,0x4f,0x02,0xe5,0x6a,0x27,0xf3,0xc4,0x9c,0x69,0x09,0xac,0xff,0x77,0x9c,0xa4,0x1d,0xe7,0xa1,0x7c,0x37,0x70,0x3b,0x3c,0xc4,0x16,0x8f,0x5d,0xe5,0x05,0xa9,0x2c,0x91,0x2e +.byte 0x87,0xb0,0xa9,0x2e,0x32,0x73,0x5c,0x15,0x1e,0xbe,0x01,0xc9,0xd8,0x2e,0x26,0xf4,0x05,0x2d,0xe0,0xc0,0x38,0x81,0x61,0xf4,0x37,0x08,0xa0,0xc0,0x28,0x0a,0xb6,0xd4,0xcc,0x2c,0xc6,0xd4,0xda,0x48,0x49,0xcf,0x76,0x91,0x23,0x51,0x91,0xe7,0x50,0x94,0xae,0xb7,0x15,0x26,0xaa,0x82,0xd0,0x97,0xe8,0x5e,0xaa,0xfc,0xaa,0x60,0x62,0x81 +.byte 0x80,0xfd,0xfd,0xaf,0x65,0xcc,0x29,0x27,0x95,0xad,0x56,0xb9,0x85,0x66,0x49,0x62,0xb3,0x1a,0xf4,0x54,0xc7,0x5d,0x7f,0x73,0xe0,0xd2,0xc8,0x18,0x95,0x62,0x2f,0x5c,0x96,0xfb,0x63,0x15,0x46,0x07,0x5f,0x3e,0x52,0x18,0xf8,0x5d,0x45,0x0b,0xb6,0xf7,0xc5,0x3d,0x16,0xaa,0x0b,0x8f,0x9d,0x16,0xc8,0x93,0x13,0xd2,0xba,0x7a,0x52,0x1a +.byte 0x7a,0x73,0xc4,0xca,0xfb,0x04,0xaf,0x6f,0x3e,0xfa,0xff,0x29,0x09,0xe2,0x74,0x35,0xc1,0xfc,0x21,0xcf,0x5f,0xf7,0x82,0x55,0x75,0x27,0xc9,0x91,0xc5,0xbf,0xe6,0x68,0xb6,0x0f,0x10,0x0e,0x91,0x30,0xb7,0x05,0xca,0x59,0x4a,0x7f,0xb0,0xf6,0xaf,0xf1,0x5d,0xc9,0xc5,0x06,0xc5,0xf4,0xe1,0x75,0x16,0x9a,0x2c,0xc0,0x3f,0xc1,0x98,0x91 +.byte 0xb7,0xe6,0xb1,0xf2,0xf9,0xfa,0x6d,0x27,0x98,0x33,0x8b,0x73,0x7a,0x57,0x12,0x6f,0x80,0x11,0x28,0x17,0x7d,0xf1,0x26,0xaa,0x05,0xf1,0x6e,0x86,0x98,0xe7,0xf6,0x9f,0x9c,0x06,0x8f,0xec,0xd7,0x2d,0xb0,0x83,0xdf,0x23,0x80,0x34,0xd3,0xd7,0xf7,0xd5,0x0d,0x52,0x18,0xcd,0xc7,0xe7,0x15,0xc9,0x1b,0xae,0x58,0xcf,0xc5,0xdd,0x25,0x2a +.byte 0xff,0xa5,0xf3,0x6d,0x20,0xfd,0xda,0xfd,0x78,0x30,0x14,0x1f,0xb3,0x47,0xe3,0x2d,0x54,0x87,0xdc,0x30,0xbe,0x41,0xc0,0x48,0x52,0x82,0x49,0x78,0xad,0xfd,0x24,0xad,0xd6,0xc1,0x14,0x1e,0xa0,0xc1,0x3d,0x82,0x59,0x01,0x9b,0xc3,0xf4,0xf7,0x26,0xce,0x92,0x50,0x13,0x47,0xe0,0xf3,0xfa,0xd9,0x61,0x19,0x80,0x12,0xee,0x73,0x45,0x5b +.byte 0x34,0xfc,0xb2,0x84,0xb2,0x3f,0xdc,0x77,0x8e,0x2d,0xb3,0x62,0xb9,0x03,0x2d,0xb6,0x2a,0x17,0xcd,0xfb,0x54,0xc2,0x5e,0xb9,0xcf,0xd6,0x05,0xe2,0xac,0x3f,0xce,0x50,0x0f,0xa1,0x3e,0x67,0x68,0x46,0x0c,0xab,0xa1,0xdc,0x2a,0x26,0x1f,0x22,0x1b,0xa7,0xc9,0x3b,0x6c,0x97,0x5d,0x5c,0x7d,0x1a,0x46,0x4a,0x99,0x92,0x85,0x87,0x35,0x6c +.byte 0x78,0x9d,0xb0,0x39,0xd6,0x3b,0x52,0x60,0xb4,0xba,0xcc,0x2e,0xe9,0xe1,0x91,0x51,0xc1,0x52,0xc7,0x5d,0x84,0x95,0x54,0x25,0xdd,0xcd,0x40,0x35,0xa1,0xc8,0x7e,0xff,0x82,0x55,0x9f,0x64,0xef,0xa7,0xc1,0x79,0x57,0xc7,0x44,0xa8,0x1c,0x06,0xaa,0x2a,0x05,0x65,0x6c,0xdc,0x90,0x7d,0x2e,0x53,0x3c,0x56,0xe1,0x30,0xdf,0xcb,0x75,0x3d +.byte 0x36,0x88,0xfd,0x72,0x2d,0xc7,0x8e,0x2f,0x11,0x5a,0x2e,0xa9,0xd6,0x37,0x4b,0x31,0x4e,0x6e,0xa0,0x4a,0xd9,0xa9,0x48,0x18,0x50,0xb1,0x28,0xf6,0x74,0x03,0x44,0xa7,0x06,0x55,0x86,0x1a,0x1b,0x07,0x79,0xc4,0x25,0xba,0x5d,0xce,0xa2,0x96,0x7d,0x62,0xa7,0x21,0xf0,0xa7,0xc2,0x91,0x03,0x38,0x37,0x0b,0x20,0x40,0x88,0x7b,0x28,0xf4 +.byte 0xf3,0xc2,0xb0,0x4b,0xf6,0xef,0x2f,0xd9,0xb5,0x81,0x17,0x95,0x42,0x98,0x7f,0x18,0xd4,0x7e,0xa1,0x85,0xbf,0x62,0xdc,0x40,0xe4,0xd3,0xcc,0x78,0x01,0xec,0x12,0xcc,0x04,0x5b,0xfe,0xdb,0x39,0x7c,0x1e,0x56,0x7c,0x72,0x57,0xb9,0xdf,0x9d,0x43,0xd4,0xe3,0x1f,0xbf,0x69,0xfb,0x43,0x23,0xd8,0x75,0x81,0xe8,0x39,0x0f,0xe4,0xe9,0x51 +.byte 0xea,0xb7,0xa7,0xc6,0x17,0xc6,0x75,0x4c,0xa8,0x17,0x41,0x1c,0x55,0x8e,0x8d,0xf3,0x64,0xbc,0xc3,0x33,0xa7,0xc1,0xbe,0xa2,0x89,0x75,0xd6,0xda,0xad,0x44,0xd5,0xdd,0x18,0xe2,0xfc,0x1d,0xa1,0xbc,0x1a,0xb8,0x40,0x1a,0x4f,0x44,0x4b,0x56,0xe9,0xf4,0xa8,0x16,0xe6,0xc9,0x40,0x90,0x9b,0x49,0xae,0x62,0x12,0x3d,0x50,0x2e,0x7b,0x60 +.byte 0x6f,0x04,0x01,0x2c,0x83,0x2a,0xd2,0x92,0x63,0xa2,0xe2,0x39,0x9a,0xc4,0x1e,0x5a,0x53,0x3f,0x4d,0x69,0xfa,0x0a,0x22,0x13,0x80,0xa4,0x6e,0xfb,0x09,0xcb,0x35,0xd7,0x12,0xa4,0xcd,0xfc,0x0b,0x06,0xa6,0x5e,0xc6,0x4a,0x22,0x56,0x5d,0x7f,0x70,0xd0,0xf8,0xe6,0x96,0x77,0xce,0xd9,0x69,0x6c,0x06,0xac,0xaa,0x94,0x6d,0x57,0x1b,0x28 +.byte 0xb4,0x07,0x50,0x19,0xd1,0x86,0xba,0xe6,0xe6,0x31,0x74,0x1d,0x3d,0xe8,0xe2,0x7b,0xfe,0xc9,0x41,0x89,0x20,0x5b,0x6a,0xc0,0x18,0x16,0xee,0x35,0xfa,0x56,0x35,0x3e,0x53,0x99,0xfb,0x8d,0xae,0x75,0x4f,0xc5,0x8d,0xff,0x23,0xd5,0x42,0xf4,0x81,0x5c,0x8b,0x71,0x7a,0x22,0xb0,0x6b,0x45,0x86,0xa6,0xc6,0xdb,0xa6,0x83,0x01,0x28,0xde +.byte 0x38,0xaa,0x6e,0xf8,0x5a,0xf2,0xcc,0x3c,0xc5,0x65,0x78,0x37,0xe8,0x8a,0x59,0xf3,0xfe,0x8b,0xcd,0xf6,0x31,0x46,0xdc,0x72,0x19,0xf7,0x73,0xac,0x5c,0xf1,0xe3,0xfd,0x85,0x51,0xec,0x92,0x3a,0xf3,0xd7,0xb2,0x95,0x53,0x79,0x48,0xd3,0x29,0x84,0xec,0xc5,0x0a,0x71,0x15,0x52,0x69,0x6a,0xe1,0xab,0x69,0x94,0xc2,0x51,0xdf,0x27,0xd8 +.byte 0xb1,0x05,0xc4,0x12,0xea,0x1e,0xda,0x6e,0xf2,0xf5,0x8a,0xa8,0x72,0x74,0x5a,0xe5,0x45,0x5b,0x5f,0xf9,0xb0,0x56,0x5c,0x85,0xf7,0x63,0x8d,0x1d,0xbf,0xe9,0x7c,0x97,0xe9,0x37,0xb3,0x5b,0x4b,0x57,0xfc,0xf4,0x58,0x84,0x26,0x55,0x07,0xc7,0x0a,0xfe,0x5a,0x58,0xd0,0xd8,0x19,0xf4,0x02,0xad,0x2c,0x4e,0xbd,0xe1,0x07,0x48,0x3b,0xc4 +.byte 0xd6,0x23,0x3a,0x63,0xc3,0xf5,0x17,0x46,0x03,0xa4,0x9a,0x10,0xf9,0xac,0x70,0x9c,0x13,0x10,0x94,0xda,0x17,0xc5,0xbb,0x87,0x0f,0x9b,0x4f,0x54,0x55,0x6b,0x57,0x2d,0x12,0x0b,0xa7,0x9c,0x77,0x6d,0x67,0xb0,0x03,0xdf,0xc6,0xa2,0x76,0x96,0x0c,0xac,0x30,0xbc,0xa2,0x55,0x23,0x01,0xae,0x51,0x50,0xd4,0xab,0xd0,0xee,0x75,0xf1,0x96 +.byte 0x75,0xf5,0x2e,0xae,0x52,0x31,0x0b,0x0a,0x8a,0xdb,0x4c,0x4d,0x4c,0x80,0xfc,0xd7,0x68,0x05,0x54,0x47,0xa5,0xc4,0xb1,0x63,0x87,0x43,0x1b,0xe1,0x0b,0x4f,0xff,0x0c,0x02,0xf7,0x00,0xd4,0x8d,0x6e,0xa1,0x21,0x91,0x62,0xec,0x55,0xd5,0x72,0x70,0x59,0x7a,0xa4,0x0e,0x78,0x7a,0x87,0x1f,0x71,0x35,0x3b,0xf7,0x1f,0x66,0x8c,0x90,0xf9 +.byte 0x6d,0x1f,0x74,0x47,0x41,0xf5,0x21,0x98,0x0d,0x42,0x61,0x21,0x0b,0x62,0x59,0xc7,0x5e,0x58,0x37,0xfb,0xee,0xbb,0xa0,0x45,0xa8,0x84,0xae,0x41,0x29,0xc9,0x88,0x64,0x69,0x75,0xc1,0x5f,0x63,0x7c,0x00,0x1c,0x35,0x61,0x9e,0xad,0x19,0xd7,0xd8,0xf1,0x64,0x57,0x10,0x87,0x73,0xa8,0x8b,0x39,0x9b,0x1c,0x1a,0xc2,0x1b,0x01,0x1a,0x41 +.byte 0x26,0x58,0x93,0x8f,0xed,0xf9,0xe7,0xfe,0xcc,0x27,0x1b,0x6b,0xb8,0x28,0x5a,0x0b,0x04,0xa0,0x94,0x23,0x4b,0x21,0x5f,0xb3,0xc9,0xb6,0x7b,0x36,0x5a,0x67,0x6b,0xd2,0xc2,0x53,0x97,0x5d,0xa5,0x43,0xd3,0x79,0x83,0xe2,0x3b,0xe0,0xaf,0x5f,0xbd,0xf3,0xb0,0xfc,0x04,0x95,0x06,0x17,0x0c,0xe2,0x68,0xe8,0xf3,0x90,0xc7,0x2b,0x7b,0xcc +.byte 0xaa,0xce,0xf5,0x0b,0x3c,0x3f,0x10,0xa7,0x31,0x9d,0xf0,0x1e,0x3e,0x74,0x57,0xbd,0x87,0xe7,0x37,0xd0,0x37,0x09,0xae,0x03,0x96,0xb1,0xad,0x8f,0x2d,0x72,0xdc,0x0f,0xdf,0xd9,0xfb,0xcc,0xb8,0x48,0x62,0xf7,0xad,0x05,0x4d,0xc6,0xe5,0x92,0xe3,0x95,0xa0,0x74,0x7a,0xa6,0x84,0x13,0x68,0x17,0xaa,0x8f,0x40,0x2a,0x8d,0x2b,0x66,0xdc +.byte 0xf8,0xf6,0x6d,0x7c,0x7e,0x40,0x22,0x05,0x16,0x20,0xbc,0xe5,0xc2,0x87,0xe2,0xd5,0xbd,0x47,0xd5,0x69,0x95,0x12,0x25,0x1c,0xaa,0x9d,0xb5,0x73,0x08,0xaf,0xfb,0x46,0xa5,0x11,0x2c,0x93,0xc6,0xfc,0xc0,0x5e,0x0e,0x99,0x1c,0x80,0x5f,0xe5,0xc8,0x52,0x73,0x35,0x4d,0xbc,0x70,0xeb,0x40,0xc9,0x47,0x8a,0x8f,0x19,0xd9,0xa9,0xec,0x4b +.byte 0x88,0x53,0x56,0x08,0x4a,0xa2,0x32,0x1f,0xe2,0xbb,0x68,0x35,0xfd,0xf2,0x0e,0x0f,0x7f,0xc8,0xf1,0x59,0xac,0x97,0x8f,0x84,0x69,0xb6,0xb9,0x5f,0x84,0xe9,0xf2,0xf9,0x09,0xf6,0xf1,0x31,0xd7,0x1a,0xa8,0x25,0x32,0x5f,0xb1,0xa7,0x84,0x15,0xfa,0x07,0xa8,0x53,0xce,0x2a,0x26,0xe0,0x4d,0x07,0x4f,0x45,0x63,0x76,0xfd,0xe3,0xb4,0x4e +.byte 0x81,0x5e,0xe6,0x01,0x9c,0xf5,0x82,0x2d,0x71,0x0f,0x98,0xb4,0x72,0x06,0xbc,0x89,0x89,0x60,0x5f,0xd9,0x92,0xcf,0xb9,0x41,0xe3,0x13,0xaa,0xe4,0x80,0xb5,0x75,0xf4,0x9a,0x1b,0xc2,0xa3,0xa4,0xa9,0x0f,0x15,0xdc,0x26,0xdd,0x20,0x10,0x27,0xbd,0x06,0x77,0x12,0xa5,0xb3,0xde,0x9f,0xbf,0xc4,0xb6,0x1d,0x76,0xdc,0x16,0x00,0x2e,0xe2 +.byte 0x00,0x4d,0xb3,0x62,0x57,0x73,0x1e,0x90,0xe2,0xaa,0x4c,0x47,0xdf,0x6b,0x2d,0x66,0x2f,0x82,0x55,0x91,0x26,0x33,0xb9,0x3a,0xc7,0xf1,0x0a,0xda,0x9b,0x6b,0x05,0x82,0x0f,0x0e,0x30,0x74,0x0b,0xea,0x0f,0x49,0x55,0x3b,0xe7,0x42,0x48,0xca,0x82,0x3e,0x8c,0xbc,0xe2,0x88,0x43,0x44,0x0d,0x37,0x9b,0xd1,0xfc,0xf1,0x45,0x46,0x0e,0xe1 +.byte 0xec,0x91,0x39,0x96,0x7d,0xbc,0xd5,0xb1,0x11,0x55,0x54,0x49,0x4f,0x18,0xed,0xec,0x58,0xdb,0xb3,0x7d,0x64,0x8d,0xfc,0x65,0x1f,0xf0,0xe0,0xc0,0x41,0xc0,0x19,0xeb,0x16,0x16,0x71,0x36,0x88,0xcf,0x75,0x3d,0x9c,0xe6,0xa0,0x84,0x54,0x26,0x64,0x95,0x9a,0xe1,0x0b,0x51,0xcf,0x9a,0x55,0x60,0x4d,0x9d,0x1d,0x37,0x71,0xa8,0x94,0x0a +.byte 0x20,0xeb,0xf2,0x91,0x14,0xfc,0x12,0xb0,0x1e,0xe3,0x5e,0x3a,0xbb,0x22,0xde,0x20,0xb1,0x58,0xef,0x0b,0xb1,0xc2,0x2f,0xea,0xd8,0xdb,0x1d,0x3a,0x67,0x7b,0xbd,0x26,0xfa,0x4a,0x3c,0x3d,0xbd,0x87,0x4c,0xba,0x57,0xdf,0xfb,0x1d,0xf7,0x26,0x5f,0x52,0x4e,0xdd,0x9b,0x38,0x62,0xed,0x48,0xc1,0xae,0x7f,0xa8,0x13,0x05,0x09,0xff,0xc0 +.byte 0xd3,0x49,0x75,0x1f,0x6a,0xe0,0x79,0x94,0xc1,0xe9,0xe3,0xf5,0x33,0x40,0xd4,0x6b,0xfe,0x4d,0x6e,0x84,0xb9,0x20,0x68,0x2b,0x6c,0xb3,0xf1,0xb1,0x1c,0xfd,0x93,0x14,0x7f,0x35,0x9b,0xd5,0x07,0x15,0x87,0x56,0xb9,0x45,0x22,0x64,0x73,0xdb,0x34,0x35,0xca,0x15,0x4e,0xa2,0xa2,0xe2,0x7a,0x6e,0x14,0x46,0xf5,0xf1,0x70,0xd3,0x3a,0x2e +.byte 0x38,0x9d,0xf6,0xc6,0x29,0xd5,0x7f,0xc7,0x77,0x2c,0x33,0x55,0x1c,0xc2,0xf1,0xaf,0x8e,0x4d,0x1b,0x22,0x36,0x35,0x93,0x47,0xa5,0x59,0xb4,0x94,0x0f,0x2d,0x66,0x24,0x6f,0x57,0xa4,0x95,0xf3,0xd7,0xf3,0x59,0x9d,0xc0,0xda,0xa7,0xf7,0xf2,0x8d,0x93,0xc9,0x90,0x91,0x9e,0x12,0x3f,0x34,0x01,0x90,0x8b,0x13,0x09,0x3d,0x2f,0xa8,0x31 +.byte 0xfa,0x39,0x4a,0x7d,0x0d,0x34,0xa3,0xf1,0x75,0xdb,0xa2,0xd2,0x5c,0xf1,0x72,0xfd,0x7f,0x7b,0x15,0x92,0xf0,0x71,0xd6,0xa0,0x74,0x53,0x61,0x67,0xa4,0x8b,0x72,0x3a,0x66,0x0a,0xce,0xc9,0x1c,0x5b,0x4d,0xaa,0x0a,0x3a,0x91,0x0a,0xbb,0xef,0x6e,0x8d,0x00,0xc0,0xa1,0x89,0xa9,0xbd,0x5a,0x2d,0xf8,0x7c,0x1f,0xb2,0x5a,0x73,0x33,0xe7 +.byte 0xb3,0xfd,0xd4,0xe3,0x81,0x69,0x30,0xc1,0xf8,0x97,0x7b,0xf3,0x63,0xaa,0xd5,0x5a,0x98,0x95,0xb3,0x65,0x2d,0xf9,0x68,0x2e,0x2c,0x26,0xe6,0x77,0x8f,0x76,0x7a,0x02,0xc7,0x50,0x28,0x40,0xcf,0x44,0x66,0x18,0x54,0x52,0xef,0x79,0x26,0xc2,0x76,0x5b,0x71,0x92,0x49,0xba,0xe1,0xd7,0xf2,0xdd,0x57,0xe0,0x78,0x6e,0xb6,0xdd,0x0d,0x20 +.byte 0x85,0xf9,0x34,0x9e,0x65,0x6b,0x9f,0x41,0x24,0xe2,0xb1,0x2a,0xef,0x8b,0xd2,0x19,0x81,0x73,0x56,0x5a,0x84,0xd3,0x46,0xf8,0x74,0xe3,0x1f,0x3d,0xd9,0x16,0x86,0x38,0xf6,0x7c,0x04,0xab,0x9a,0x64,0x0e,0x48,0x06,0x4c,0x61,0xcd,0x2d,0x4d,0xef,0x6f,0xd6,0x7d,0x31,0x1c,0x56,0x65,0xc4,0xf1,0xa7,0x15,0xac,0xa4,0xe2,0x8b,0x83,0x5e +.byte 0x64,0x36,0x2e,0x77,0x94,0x2e,0x2e,0xa3,0x62,0xcf,0x6e,0x7a,0x6d,0x39,0xaf,0xf7,0x96,0x88,0x31,0x14,0x58,0x46,0x30,0x0c,0x36,0x3a,0x4c,0x53,0xe0,0xa7,0x24,0x76,0x84,0x0f,0xfb,0x7e,0x55,0xa0,0x0f,0x63,0xfc,0xd6,0x1f,0x58,0x68,0xb5,0xcc,0x77,0x4f,0x16,0x91,0xa7,0xfd,0x62,0xb3,0x88,0x13,0x7c,0xcb,0x63,0x6d,0xe4,0x38,0x4c +.byte 0x6e,0x3b,0xf7,0xe3,0x8d,0x52,0x84,0x61,0x19,0x12,0x51,0xbe,0xed,0x32,0x3d,0x77,0xdd,0xa1,0xc3,0x59,0x65,0x79,0xa1,0x6b,0xbc,0x65,0x6c,0xe3,0x7e,0x60,0x49,0xbd,0xcf,0x6f,0x61,0x97,0x98,0xbe,0x74,0x38,0xd1,0x09,0xc1,0x59,0xe5,0x7f,0xfe,0xbf,0xfd,0x60,0x1b,0x96,0x00,0x46,0x56,0x4d,0x81,0x4c,0x70,0x59,0x39,0x66,0x13,0x58 +.byte 0xe7,0x62,0x3a,0xfc,0x1b,0xe5,0xf9,0x03,0xd4,0x4b,0xab,0x1d,0x56,0x22,0x4a,0x09,0xa5,0xdd,0xac,0x39,0xbe,0x27,0x39,0xb3,0xe8,0xad,0xe0,0x07,0x86,0x10,0xce,0xa9,0x4e,0x8b,0x47,0x8d,0xb8,0x63,0x2f,0x61,0x1a,0x8b,0xd4,0xd3,0xfe,0x73,0x82,0x5a,0xd6,0xa9,0x46,0x56,0xa7,0x81,0xe9,0xda,0xb9,0x17,0xa7,0xc8,0x0f,0x24,0x16,0x6a +.byte 0x12,0xfe,0xc3,0x65,0x85,0x77,0xab,0x89,0x44,0x1b,0xa3,0x8b,0xfd,0x07,0xf4,0x77,0xaa,0xe1,0x71,0x33,0x74,0x93,0xdc,0x90,0x53,0x39,0x47,0x8c,0xea,0x18,0xe1,0x6a,0xed,0x8c,0x56,0x08,0x2f,0xa1,0x1f,0x22,0xf2,0xc0,0x12,0xcd,0xb7,0xdf,0xb6,0x3c,0xd6,0x22,0x6c,0x5b,0x00,0x0f,0xdb,0x66,0x5b,0x54,0x35,0x48,0x37,0x8c,0x79,0x74 +.byte 0xd1,0xb0,0x15,0x01,0x22,0x3a,0x7c,0x17,0x8c,0x20,0x06,0x9b,0x13,0x6e,0xee,0xbf,0xb4,0xac,0x01,0x61,0xb9,0x28,0x65,0x8e,0x53,0x12,0x4f,0xe0,0x5f,0xfc,0xdb,0x40,0x6c,0xa2,0x19,0x64,0x49,0x7a,0xc7,0xc5,0xc8,0x53,0x6e,0xd5,0x68,0xe1,0x61,0xe5,0x87,0xc2,0x99,0x59,0x4c,0x27,0xc8,0xd0,0xd0,0x10,0xce,0x9f,0x09,0xff,0xf5,0xa8 +.byte 0xf8,0x79,0xf6,0x0f,0x73,0xda,0x8a,0x36,0x8e,0x48,0x7e,0xbd,0x98,0x76,0x57,0xfa,0x5c,0xec,0xa5,0x3d,0x30,0xfe,0xa3,0xe5,0x27,0x87,0xcf,0x26,0xfe,0x61,0xe4,0xed,0xd1,0xfb,0xfc,0x91,0x5d,0xb6,0x70,0x2c,0x2c,0x59,0x14,0xd5,0x1d,0x9a,0xb9,0x2c,0xef,0x24,0x7b,0x10,0x8d,0x99,0x63,0xaa,0x82,0xf0,0x1c,0xe8,0xa0,0x00,0xa5,0xa7 +.byte 0xf8,0xc0,0x35,0x9e,0x12,0x18,0xaf,0x42,0x9d,0xe5,0x2b,0x72,0x6c,0x31,0xd8,0x8f,0x6c,0xde,0x2e,0x37,0xa6,0x73,0x06,0xe7,0x90,0x43,0x79,0x99,0x64,0xd1,0x17,0xa1,0x43,0x6d,0xd4,0x90,0x50,0xf2,0xcc,0x0b,0x73,0x49,0x9e,0x14,0x7c,0x49,0x92,0x05,0x0e,0x8c,0xda,0xb7,0x18,0xf0,0xcc,0xea,0xe4,0x32,0x58,0xc7,0xbd,0x8e,0xca,0x35 +.byte 0x52,0x9f,0xec,0x5d,0xa0,0x6c,0x83,0x61,0x07,0x74,0x37,0x4a,0x10,0xa0,0x98,0x83,0x3a,0x65,0x17,0x63,0xd0,0x22,0x96,0xb5,0xed,0xbb,0xbb,0x1c,0x18,0x8a,0x49,0x3d,0x0f,0xcc,0x24,0xb3,0x9b,0xb6,0x23,0x2e,0x9d,0x97,0xe7,0x31,0xf8,0x36,0x6d,0x7b,0xa1,0xf1,0x02,0xde,0x7c,0xad,0x77,0x5d,0x85,0x7c,0x39,0x61,0xc7,0xd7,0x3f,0x70 +.byte 0x1c,0xe1,0x0e,0x49,0xf4,0xcd,0xab,0xfd,0x4d,0x2f,0xc7,0xb7,0x53,0xfc,0xed,0xeb,0x41,0x2a,0x80,0x40,0xf3,0x47,0xf8,0x15,0xa0,0x4c,0x8b,0x34,0xf6,0x6a,0xb8,0x30,0x09,0x4d,0xe6,0x60,0xb7,0x24,0x6b,0x4c,0x26,0xdf,0x83,0x37,0xc7,0x96,0xba,0x35,0xda,0x29,0x4e,0xca,0x52,0xf7,0x41,0xd3,0x98,0x27,0xb2,0x9e,0xec,0xcc,0x12,0xdc +.byte 0x77,0xfd,0x11,0xbd,0xbd,0xbb,0x5e,0x0c,0x37,0x29,0xd2,0x4f,0x7d,0x5c,0x97,0xad,0x72,0x93,0x4a,0xfa,0x17,0x07,0x07,0x26,0xee,0xa7,0x29,0x2e,0xdb,0xf6,0x60,0x65,0x2d,0x85,0xbe,0x27,0x4d,0xf7,0x2b,0xb4,0x81,0xf5,0x3a,0x1d,0xae,0x25,0x8b,0x60,0xc2,0x75,0x3a,0xfd,0xf9,0x4d,0x90,0x7a,0x8a,0x3a,0xf6,0xa9,0xf0,0x11,0xd2,0xb9 +.byte 0xdb,0x23,0x40,0x9d,0x33,0xc3,0xbf,0x60,0x95,0x9c,0x6f,0xa9,0x82,0x42,0xe5,0x67,0x52,0x36,0xea,0x68,0x64,0x24,0x85,0x46,0x7e,0x2a,0x1a,0x6a,0x4b,0xa8,0xb0,0xa0,0x9c,0xb8,0x4a,0xb6,0x2e,0xb2,0x6b,0xf4,0x63,0x9f,0x54,0xb5,0x6f,0x1b,0xf5,0x71,0x7e,0xf8,0xef,0xb2,0x92,0xe2,0xcf,0x65,0xb4,0x02,0x9b,0x75,0x4b,0xf9,0x6b,0xa1 +.byte 0x24,0x3b,0xea,0x7f,0x31,0x08,0xd4,0xdc,0xab,0x12,0xc0,0xca,0x64,0xee,0xfa,0x61,0x1c,0x0f,0x24,0xc3,0x8c,0xbd,0xc8,0xd2,0x42,0xf7,0x1f,0x2e,0xd3,0xd1,0x51,0x86,0xfb,0xa2,0x95,0xc5,0x8c,0x5b,0x61,0x14,0xc9,0xe4,0x07,0xa1,0xf7,0x39,0x11,0x40,0x68,0xd6,0xe2,0x38,0x96,0x6f,0x99,0xf1,0xd2,0xfb,0x8e,0xb8,0x3d,0xf2,0x8a,0x4e +.byte 0x3e,0x54,0xd9,0x0e,0xd1,0xc9,0x31,0x04,0xa4,0xee,0xbe,0x51,0xcf,0x5f,0xd1,0xc8,0x13,0x96,0x9d,0x9b,0xdf,0x32,0xa9,0x38,0x8f,0xbc,0x7e,0x22,0x1a,0x52,0x5f,0x14,0x61,0xeb,0x78,0xf4,0x01,0xe9,0x5c,0x18,0x1c,0xb5,0xe1,0x80,0x06,0x3e,0x8e,0x72,0x33,0xf9,0xaa,0x49,0xec,0x5b,0x7a,0x04,0xf2,0x9b,0x48,0x8a,0x58,0x14,0x4b,0x7e +.byte 0x4d,0x26,0x0b,0xe0,0xf0,0x69,0xa3,0x36,0x75,0x3e,0x73,0xec,0x53,0x20,0x35,0x8e,0xfa,0x40,0xf0,0xcd,0x70,0xe1,0xe4,0x64,0x89,0x14,0x55,0xd7,0x20,0xe8,0xbd,0xc2,0x85,0xa8,0x4d,0x51,0x96,0x27,0x54,0x50,0xc7,0xa1,0x9c,0x35,0x52,0x1f,0x8b,0x6f,0xa2,0x62,0x36,0x94,0x02,0xb1,0x01,0xc6,0x4e,0x53,0x83,0x65,0x98,0x25,0x6d,0x26 +.byte 0x6d,0xef,0x4e,0x7a,0xe0,0x56,0x6a,0x6c,0x23,0xe8,0xa6,0x97,0xc1,0xf2,0xb1,0x2d,0x03,0x29,0xef,0xa0,0x6d,0x86,0x8d,0x5a,0x00,0x83,0x14,0xed,0xd4,0x1e,0x79,0xc4,0xb4,0x42,0xfd,0x53,0xaa,0xab,0xd7,0xa3,0xf9,0x7d,0x15,0x26,0xab,0x81,0xc4,0x7a,0x96,0x14,0x94,0x71,0xe1,0x7f,0xc1,0x67,0x5f,0x5f,0x11,0xb4,0x72,0x03,0xf8,0x9b +.byte 0x2f,0x82,0xa3,0x4e,0xda,0xfd,0x2a,0x31,0xf1,0x74,0x6d,0x96,0x7a,0x9c,0xf9,0x01,0xd9,0x55,0x8e,0x52,0xe4,0xae,0x22,0x14,0x7b,0xc0,0x5a,0xc4,0x31,0x23,0x9a,0x2e,0x9d,0x86,0x86,0xd5,0x66,0xc8,0x8b,0xdb,0x49,0x5f,0xca,0x57,0x51,0x50,0x75,0x3f,0xeb,0xb1,0xe5,0x84,0x42,0x8f,0x0f,0xca,0x86,0xcf,0xb0,0x17,0x06,0x06,0x46,0x8c +.byte 0x4a,0x84,0xde,0x28,0x84,0x24,0x7f,0x33,0x48,0xe8,0x89,0x87,0x1f,0x02,0x07,0x4f,0x36,0xa9,0xdc,0x8a,0x42,0xb6,0xc7,0x9c,0x47,0xd4,0xd4,0x2d,0xc0,0x17,0xb0,0xe6,0x23,0xb7,0xae,0x0d,0x9f,0x38,0x0a,0xdf,0x7f,0x73,0xbf,0x93,0x19,0x05,0x23,0xbf,0xc0,0x53,0x2d,0xcd,0x3e,0x73,0x01,0x78,0xa7,0xdc,0x6c,0x85,0x1d,0x25,0xc5,0x54 +.byte 0x68,0x95,0xc1,0x20,0x65,0xd9,0x01,0x85,0x7d,0xc9,0xba,0x63,0x43,0x7a,0x23,0xbb,0x95,0x3a,0x76,0x2d,0x75,0x1e,0xac,0x66,0x3e,0x20,0x30,0x8d,0x37,0x64,0x3c,0xc7,0x6f,0x36,0xb8,0x34,0x60,0xd2,0xb4,0x54,0x07,0x52,0x6c,0xfa,0x04,0xfe,0x2b,0x71,0x03,0x03,0x97,0xfc,0x4a,0xf9,0x4d,0x44,0x1a,0xf9,0xd7,0x4b,0xe5,0xe1,0xf9,0xb9 +.byte 0x41,0xa0,0x5b,0xa2,0x69,0x48,0xba,0xeb,0xcc,0x4e,0x55,0x4b,0xbd,0x41,0x09,0xa8,0x90,0x5c,0xc6,0xe3,0x20,0x0c,0x8f,0xfc,0x7e,0x0e,0x4f,0x3d,0x47,0x65,0x40,0x1e,0x79,0x9a,0xe0,0x8f,0x8f,0xe9,0xcb,0xaa,0x04,0xb8,0xd9,0x91,0x30,0x2a,0x4c,0x17,0x44,0xc0,0x03,0x4c,0x37,0xd3,0xdb,0x20,0xe5,0x8e,0x70,0x87,0x57,0x4f,0x8a,0xcf +.byte 0xee,0x64,0xbc,0xef,0x0f,0x9e,0xcf,0x95,0x5e,0x11,0x4f,0x7a,0x35,0x53,0x8c,0x85,0x6a,0xff,0x72,0x1b,0x35,0x51,0x89,0xf8,0x94,0x65,0x97,0xec,0xfe,0xbd,0x00,0x29,0x3d,0xe8,0x96,0x23,0xa4,0xe3,0xcf,0x81,0xb2,0x8f,0x73,0x4c,0x05,0xc3,0xcc,0x37,0x22,0x97,0xa0,0xda,0x49,0xb2,0xbd,0x07,0x2b,0x26,0xa0,0x6f,0x6b,0x1f,0xa6,0x15 +.byte 0xe3,0x6e,0x12,0xa4,0x51,0x1b,0x72,0x22,0x08,0xfe,0xf7,0x93,0x1a,0x9f,0x62,0x12,0xd4,0x11,0x1f,0xd1,0x80,0xeb,0xa4,0xb1,0xf4,0x37,0x3b,0x60,0xd8,0x2b,0x53,0xae,0x69,0xf8,0x48,0x38,0xf4,0x20,0x28,0xe1,0xfb,0x6a,0xec,0x6e,0x11,0x2e,0x2c,0x59,0x62,0x23,0x8a,0x82,0xc4,0x33,0x7b,0xdc,0x33,0x99,0x41,0x29,0x4f,0xa1,0x6e,0x3a +.byte 0x48,0x13,0x1c,0x1f,0xa3,0x1f,0xd2,0x02,0x79,0xe1,0xe4,0xb9,0x99,0xa4,0x50,0xea,0x53,0x96,0x4e,0x82,0x7c,0xee,0x65,0x07,0x26,0x87,0xf9,0x9d,0x45,0x17,0x37,0x61,0x7e,0x5f,0xb9,0xd2,0x55,0x3c,0x45,0xf7,0xec,0x33,0x08,0xa3,0x41,0x24,0x8f,0xb2,0x75,0x41,0xb6,0xa2,0x21,0xfe,0x94,0x7e,0x1e,0xe6,0x03,0x6e,0xf4,0xeb,0x23,0x59 +.byte 0x51,0x25,0x99,0x19,0x6d,0xf7,0xe3,0x22,0xd8,0x41,0x0f,0xd5,0xaf,0x0d,0xc6,0x3f,0x8e,0x36,0xee,0x90,0x23,0x67,0x03,0xcb,0xe3,0xaf,0xc4,0xf8,0x22,0x1f,0xd8,0x3e,0x94,0xdf,0x13,0xc9,0x4f,0x17,0x22,0x8c,0x93,0x6b,0x3f,0x60,0x1a,0xbd,0xfa,0x9f,0xe6,0x43,0x45,0xe1,0x0a,0x95,0x21,0x06,0x52,0xbd,0x58,0x56,0x84,0x56,0x36,0xf3 +.byte 0x55,0x58,0x46,0x62,0x6c,0xb3,0xa0,0x29,0x5a,0xfc,0xb4,0x87,0x5f,0x89,0xa5,0xab,0x6d,0x5a,0x44,0xc5,0xc8,0x50,0x83,0xe1,0x41,0xd4,0x97,0x6c,0x08,0xb1,0x43,0x33,0x0d,0x3a,0x8b,0x31,0xa1,0xae,0x77,0x71,0xb7,0x67,0x65,0xd7,0xa7,0xc9,0x6c,0x4a,0x9b,0x80,0xd5,0xbf,0xae,0x0f,0x9b,0xce,0x1a,0xa3,0x26,0xc6,0x19,0xa1,0x8d,0x12 +.byte 0xd9,0x09,0xae,0xac,0x9f,0x4b,0xab,0xaf,0xf6,0xc5,0x9e,0x26,0xe6,0x23,0xcb,0x3e,0x60,0x1e,0x3d,0xa1,0xec,0x59,0xca,0xf1,0x87,0x0e,0xaf,0x47,0x5f,0xab,0x17,0x99,0xbd,0x87,0x1c,0x1d,0x00,0xd6,0xb2,0x59,0x56,0xdd,0x49,0x20,0xb5,0x91,0xf8,0x0c,0xf1,0x80,0xc6,0x37,0x92,0xd7,0x2c,0x02,0x0d,0x47,0x1b,0x1b,0x6b,0x3f,0x60,0xd0 +.byte 0x21,0x9b,0x49,0x47,0x3c,0xaa,0x83,0x44,0x1b,0x92,0x8e,0xec,0x63,0x40,0xd6,0x9a,0x48,0x7c,0x5e,0x97,0xe4,0xf0,0x84,0x36,0x30,0x11,0x0b,0x7c,0x79,0x3b,0xff,0xdf,0x77,0xf6,0xc9,0xdb,0x49,0xdd,0x2a,0xe7,0xca,0x9a,0x5b,0xef,0xd4,0x84,0xe2,0x44,0x8b,0xef,0x4e,0x0d,0x13,0xd6,0xbb,0xba,0x29,0x02,0xae,0xfc,0x55,0x24,0xfa,0x4b +.byte 0x7d,0x71,0xc9,0xde,0x71,0x36,0xbc,0xac,0x31,0x5c,0xf8,0x20,0xdd,0xb8,0xae,0x03,0xd3,0xb0,0xdc,0x27,0x7f,0xc5,0xff,0xda,0x8a,0x36,0x2d,0x8f,0xae,0xbd,0xf8,0x92,0x28,0x8e,0x0c,0xc3,0xaf,0x4e,0x33,0xf0,0x71,0xdb,0xad,0x4d,0xc1,0xef,0x52,0x1c,0x84,0xdc,0x0d,0xf3,0xab,0xb9,0x0b,0xe0,0x18,0xa5,0x06,0xdc,0x78,0x41,0x73,0x35 +.byte 0x95,0x37,0x84,0xba,0xc1,0x4e,0x0a,0xe4,0x4d,0x05,0xfe,0x9d,0x74,0x68,0x4a,0x35,0xf0,0x15,0xaa,0x7b,0xfe,0x08,0x47,0xb2,0x84,0x65,0x1d,0x0d,0x9f,0xe7,0xe0,0x04,0xf9,0x1c,0xac,0x66,0xb3,0x75,0x96,0x8f,0x25,0xb6,0x29,0x53,0x52,0x50,0x7a,0x50,0xd1,0x89,0xc7,0x05,0xfb,0x3a,0xb0,0xfa,0x6b,0x96,0x9d,0xfc,0xb0,0xcd,0x68,0x21 +.byte 0x61,0xf6,0x65,0x64,0xa7,0xc6,0x56,0xbd,0xf0,0x9b,0x4a,0x9a,0xe2,0x8c,0xd8,0x88,0x70,0x82,0x0c,0x87,0x51,0x77,0x23,0xd8,0xd8,0xf8,0x4a,0xfe,0xf4,0x6d,0x3f,0x2a,0x36,0x0c,0x67,0x85,0x43,0x13,0x83,0xd5,0xe9,0x32,0xff,0x8c,0xec,0xd4,0x7f,0xd2,0x32,0x4d,0x4e,0xec,0x76,0x55,0xf9,0x0d,0xb7,0x57,0x6c,0xc4,0xd6,0x22,0xd3,0x6e +.byte 0x71,0x23,0x68,0x45,0x03,0x37,0x27,0x3d,0x56,0x89,0xbb,0x7c,0xf1,0xa8,0x09,0xd6,0xb2,0xc5,0xe6,0xf6,0x72,0x77,0x3e,0xb0,0x8a,0x3d,0x17,0xbd,0xd5,0x0d,0xdb,0x62,0xa7,0x07,0x66,0x35,0x19,0x12,0xff,0xcf,0xdd,0xb3,0x09,0xa3,0x58,0x5b,0x0d,0x87,0x76,0x33,0x28,0x98,0x91,0x48,0xac,0xa1,0x22,0x9f,0xda,0x36,0x03,0x8a,0xc1,0x5e +.byte 0x6c,0x2e,0x42,0x8e,0x1a,0x7d,0x75,0x69,0xb2,0xcf,0xb0,0x14,0x80,0xa8,0x91,0xc2,0xbc,0x24,0x8f,0x25,0x9a,0x9e,0xa3,0x4d,0x46,0x55,0x53,0x05,0x0c,0xf8,0xdb,0xe0,0xee,0xe4,0x32,0xff,0x39,0x74,0x9a,0xa8,0xf7,0xa4,0x6e,0x5b,0x9a,0x89,0x33,0x40,0xf4,0xce,0x54,0x4a,0x18,0xdb,0x11,0xe4,0x83,0x69,0x52,0xef,0x12,0xc6,0x13,0x6e +.byte 0x2a,0x14,0xb9,0x8e,0x38,0x8d,0x6b,0xef,0x02,0xc8,0x66,0xf0,0x78,0xaa,0xa6,0x04,0xa3,0xa5,0x1d,0xdb,0xac,0x02,0x23,0x4c,0x2a,0xa5,0xbf,0x66,0xa4,0x47,0xa9,0x8e,0x50,0xd2,0xf8,0xf5,0x0d,0x0f,0xc9,0x07,0xd8,0x1a,0x94,0x84,0xcf,0xb3,0x56,0x53,0x5f,0x83,0x1d,0x30,0xb6,0x94,0x36,0xf4,0x16,0x72,0x8c,0x6d,0x49,0xe4,0x6d,0x93 +.byte 0xb1,0xa1,0x97,0x70,0x75,0x47,0x3a,0x7e,0xa6,0x39,0x1d,0xf5,0xcc,0x37,0xaa,0x90,0x53,0xe1,0x9b,0xcb,0x9a,0x97,0x7d,0x18,0x4a,0x3c,0x1f,0x05,0xf4,0xe3,0x6f,0x7a,0x19,0x84,0xbc,0x68,0xa4,0x6e,0x5a,0xb5,0x7a,0x51,0xda,0xf5,0x75,0x1e,0xfe,0xb0,0x73,0x43,0x39,0x98,0xb7,0x1e,0x17,0x36,0x35,0x15,0x64,0x90,0xb6,0x83,0x43,0x8f +.byte 0xcd,0xb6,0x8c,0xc4,0xe4,0xee,0x0e,0x1c,0xbd,0x3a,0xe6,0x6e,0x44,0x73,0x88,0x30,0xa0,0xf0,0x97,0xf5,0x5e,0x12,0xea,0xd9,0xd7,0xb5,0xc5,0x1d,0xc7,0xc8,0x55,0xbb,0x2c,0x64,0x43,0x50,0x15,0x71,0x02,0xd3,0xf9,0xb4,0xe7,0x2f,0x0f,0x98,0x9e,0x87,0x40,0x2a,0x61,0x06,0x44,0xc2,0x47,0xaf,0x44,0x4f,0xdd,0xa3,0xb0,0xb2,0x8d,0x8c +.byte 0x83,0x96,0xd3,0x2a,0x38,0xdf,0x87,0x5d,0x1c,0x64,0xc8,0x4f,0x3c,0x41,0xc7,0xf8,0x64,0x58,0xa6,0x9b,0xcb,0xcd,0x77,0xdb,0x38,0xe7,0x30,0xb6,0x91,0x88,0xd8,0x9d,0x29,0x71,0x12,0x9e,0xdf,0x20,0xd9,0x14,0xa3,0xa0,0xbd,0x0a,0x99,0x67,0x0a,0xe1,0xe9,0xba,0xd0,0x1b,0xba,0xc8,0x8d,0x76,0x10,0xe8,0x30,0xa1,0x93,0xf4,0x95,0x6a +.byte 0x12,0xd5,0x95,0x31,0x7f,0xdb,0x33,0xfc,0xbf,0x7a,0xbe,0xe4,0xfa,0x50,0x1b,0x24,0x75,0x9b,0xf8,0x81,0x34,0xc8,0xfb,0xda,0x3c,0x6f,0x3b,0x9a,0xb2,0x6f,0x94,0x0c,0xd9,0xc3,0x05,0xd6,0x96,0x10,0x27,0xdb,0xd6,0x88,0x72,0xe4,0x8f,0xfc,0xd3,0x52,0xf8,0x63,0xb2,0xce,0xf1,0x2a,0xbc,0x1c,0x23,0x9d,0xfb,0x27,0xdd,0x8d,0xe4,0xcc +.byte 0x63,0xcf,0xad,0xe6,0xe9,0x4f,0xb8,0x8a,0x20,0x47,0x75,0x73,0x3f,0x27,0x07,0x5d,0x8c,0x8c,0x6e,0x7a,0x91,0xe2,0xf6,0xd5,0x70,0xd8,0x00,0xe5,0x0f,0xde,0x78,0xd8,0xb4,0xd3,0x18,0x5a,0x24,0x43,0x91,0x0c,0xbe,0x8b,0x1b,0x88,0x48,0x7e,0x94,0x05,0xd0,0xec,0xd2,0x71,0x26,0xc7,0x70,0xeb,0x8a,0x83,0x01,0x52,0xdb,0xe5,0x76,0x31 +.byte 0x19,0x14,0x13,0x90,0x5b,0x5a,0x94,0x89,0xe2,0x4e,0x2d,0x17,0xf6,0xbc,0x67,0xee,0x51,0xd4,0x00,0x83,0xe5,0x18,0xa5,0x54,0x6c,0xd2,0x7a,0x1f,0xdb,0x6f,0xed,0x7f,0x07,0xbb,0x9f,0x3a,0xc2,0x8c,0x04,0xf9,0x9a,0x55,0xe3,0x70,0xf3,0x36,0xfd,0x44,0x05,0xd9,0xf3,0xe1,0x87,0x2c,0x29,0xec,0x30,0x8b,0xb7,0xde,0x27,0xa4,0xcd,0xdf +.byte 0x64,0x0b,0x62,0xdf,0x34,0xa0,0xf5,0xa1,0x69,0xc9,0x0b,0x00,0x81,0xf4,0x03,0x5e,0xef,0xb8,0x26,0x49,0x71,0x5e,0xcd,0x76,0xa2,0x38,0x25,0x1f,0x92,0xc3,0xbf,0xdb,0xb3,0x29,0x37,0x06,0xc5,0xc2,0x3b,0xd8,0xbd,0x55,0xf2,0x7f,0xd5,0xd5,0x34,0x32,0xf1,0xa0,0x92,0x9b,0x1c,0xee,0x6f,0x48,0x40,0x6b,0xd1,0x45,0x09,0x3f,0xaf,0xdc +.byte 0xe1,0xac,0x75,0x9a,0x33,0xf7,0x50,0x4f,0x2c,0x3c,0x30,0x69,0x69,0x84,0xcb,0xe9,0xca,0xdf,0x8d,0x02,0x5d,0x30,0x71,0x99,0x7b,0xd5,0xb2,0x55,0xdd,0x9c,0x2f,0xae,0x11,0x41,0x01,0x6b,0xf7,0x95,0xe3,0xda,0xe3,0xcc,0xa4,0x17,0xd0,0x50,0xf9,0x4c,0x31,0x2b,0x4e,0xf7,0x49,0xbb,0x75,0x8f,0x28,0x19,0x9f,0x89,0x7b,0x78,0x80,0x41 +.byte 0x50,0x5a,0x5c,0x1e,0x82,0x93,0x9f,0x4f,0x61,0x96,0x29,0x0c,0x25,0xb3,0xe6,0xff,0x86,0x90,0x78,0x09,0x04,0xf9,0x2a,0x3d,0xa1,0xd5,0x68,0xa8,0x0d,0xd9,0x41,0x01,0xdc,0x41,0x01,0xff,0x20,0xc0,0x63,0x0b,0x4d,0xd5,0x80,0x78,0x82,0x05,0x51,0x62,0x09,0xf9,0x11,0xbd,0xde,0xc0,0x7d,0x3f,0xf2,0x30,0xfb,0x41,0x68,0x39,0xb0,0xc2 +.byte 0x2e,0x33,0x4e,0xa7,0x85,0x01,0x6b,0xd1,0xf9,0x78,0xef,0xe9,0x7c,0x0e,0xaf,0x13,0x1a,0xf5,0x97,0xde,0xf0,0xbb,0x67,0xf9,0x9b,0xab,0xee,0x86,0x73,0x9b,0x23,0x6c,0x56,0x0d,0xa0,0xda,0x4c,0xff,0x2b,0xc5,0x92,0xdb,0xee,0xbd,0xba,0x3a,0x54,0x21,0xc0,0x5c,0xfe,0x21,0xf1,0xbd,0xac,0xaf,0xa3,0x7a,0x52,0x62,0x15,0x8b,0x8f,0xb5 +.byte 0x82,0xc6,0x1a,0xfb,0x22,0xbc,0xa2,0x05,0x42,0xfe,0xb4,0x12,0x6b,0xad,0xa9,0x76,0xb7,0x6b,0x1c,0xd8,0x34,0x5c,0x7d,0xd5,0xa9,0x0d,0x91,0xf6,0xc1,0x47,0x69,0xbc,0x43,0x8f,0xb7,0xfc,0x84,0x2e,0xa0,0x8e,0x3f,0x52,0x3b,0xbd,0x1f,0x28,0x6b,0xc8,0x13,0x37,0xd6,0x44,0xe9,0x8d,0x08,0x92,0x96,0xe5,0x2c,0x57,0x34,0x59,0x21,0x04 +.byte 0xa8,0xaa,0x56,0x25,0xa4,0xc8,0xae,0x68,0x17,0x9e,0xa4,0xf4,0x42,0x64,0x57,0x4b,0x54,0x85,0x8a,0xd1,0x09,0x09,0x25,0x18,0x05,0xb0,0x09,0x9d,0xd9,0x75,0x21,0xd3,0x75,0x31,0xf8,0x35,0x46,0xc8,0xd4,0x47,0x9d,0x87,0xeb,0x40,0x95,0x19,0x24,0x7c,0x6e,0xe9,0xd5,0x14,0xaa,0xc3,0xbe,0x22,0x18,0xc1,0xa0,0x5f,0x34,0x98,0xc2,0x4d +.byte 0x3f,0xa6,0x09,0x57,0x1b,0x75,0xc6,0x89,0xee,0xf0,0xbd,0xbc,0x1a,0xd3,0xea,0x6e,0x82,0x06,0x90,0x4f,0xbb,0x61,0xac,0xbb,0x3e,0x8c,0x94,0xea,0x69,0x58,0x26,0x2e,0x17,0x78,0xad,0x14,0xa4,0x79,0x14,0xbd,0xc1,0x78,0xf9,0xbb,0x11,0x7e,0x8d,0xbf,0x3e,0xc8,0xc5,0x69,0xd7,0x5a,0x4c,0x4b,0x86,0x25,0x4c,0xe9,0x3a,0xc2,0xd9,0xf8 +.byte 0xbf,0x5e,0x46,0x4f,0xca,0xba,0x25,0x58,0x73,0x82,0x02,0x8a,0x41,0x9e,0x2d,0xa9,0x08,0xb4,0x60,0x2a,0x11,0x2c,0x2f,0x3d,0x5e,0x68,0xd8,0xa9,0x2e,0x1c,0xfa,0xdc,0xda,0xfb,0xfb,0xf3,0xb2,0x66,0xd3,0x57,0xe6,0x09,0xeb,0xe5,0xf4,0xed,0x2d,0xb7,0x3a,0xce,0x69,0x2d,0xb4,0x79,0x1a,0x99,0x9d,0xc8,0x99,0x9f,0x9b,0x78,0xd4,0x8a +.byte 0x73,0xd5,0x89,0x9f,0xda,0xdf,0xd0,0xca,0x6b,0x63,0x5a,0x1e,0xe0,0x2f,0x01,0xa4,0xd0,0x62,0xc0,0x5f,0x4e,0xd9,0xd3,0x47,0xe4,0x68,0x73,0x8c,0x87,0x50,0x91,0xec,0x8e,0x0b,0xa7,0xf0,0x4c,0x32,0x19,0xaa,0x00,0xbd,0xe4,0x20,0xab,0x5c,0x00,0xdb,0x18,0xc0,0xff,0xc1,0xc0,0x8f,0xa2,0x8c,0x47,0x91,0x86,0xde,0xa9,0x09,0xb5,0x86 +.byte 0xcc,0x1d,0x7f,0x4b,0x7d,0x16,0xf6,0x21,0xd0,0xf8,0xaa,0x16,0x20,0xa9,0xac,0x3e,0xef,0x56,0xee,0x0e,0x1d,0xd6,0x44,0x7d,0xa9,0x84,0x41,0x8d,0x69,0x69,0x92,0x74,0x87,0x3b,0x8a,0xbf,0x40,0x29,0x45,0xf9,0xa8,0x52,0x8c,0x99,0x95,0xe7,0x6a,0xcd,0x3f,0x74,0x2d,0xde,0x82,0x47,0x41,0xa6,0xd9,0x5a,0x30,0x6c,0x20,0x98,0x3f,0xfb +.byte 0x66,0x08,0x73,0x68,0xe1,0xcd,0xfd,0x3c,0x4f,0x33,0x6b,0x42,0xa4,0xab,0x78,0x22,0xb5,0xd9,0x6f,0x99,0xcb,0x85,0x6a,0x14,0xb9,0xd3,0x0f,0xfb,0xd7,0x07,0x7b,0xbe,0x6a,0xd9,0xba,0xde,0x98,0xac,0xd8,0xe5,0x40,0xcd,0x59,0x7f,0x88,0x3c,0x4e,0xfa,0xfe,0xbe,0x48,0x21,0xb5,0x40,0xd5,0xc8,0x1e,0x8a,0x56,0xd9,0xec,0x25,0xad,0x5e +.byte 0x31,0xf3,0xf2,0x3d,0x0b,0x56,0xb5,0x20,0x08,0xd3,0x02,0x81,0x93,0x29,0x3d,0xbd,0x0a,0x9c,0x26,0x74,0xdb,0x6b,0x7e,0xd1,0x4a,0x1a,0x1c,0x47,0x49,0x34,0xba,0x08,0x7a,0x6a,0xb3,0xd6,0x3b,0xd0,0x28,0x50,0xa1,0xd8,0x17,0x85,0x61,0xab,0x24,0x22,0xda,0xc8,0xb4,0x1b,0x07,0x2e,0x67,0x77,0x84,0xdc,0x6f,0xfd,0x51,0xa5,0xe8,0x34 +.byte 0x63,0xbd,0xae,0xae,0xc7,0x84,0x1d,0x60,0xc8,0x8f,0xde,0x22,0xfd,0x85,0xb4,0x12,0xb4,0x04,0x5b,0xe7,0xb5,0x58,0xf8,0x56,0x66,0xa3,0xb7,0x1e,0x54,0xd0,0xdb,0x12,0xaa,0x9c,0x89,0x5b,0xfa,0xf4,0xe7,0xe2,0xf4,0x9c,0x08,0xa8,0xbe,0x6b,0xe3,0xce,0x6a,0x88,0xb5,0x74,0xb9,0x49,0xaa,0x7b,0xcd,0xbc,0x17,0x81,0x61,0xe2,0x28,0x6f +.byte 0x4b,0xe8,0xa4,0x55,0xc5,0x1e,0x69,0x21,0x8f,0xfd,0xa8,0xd0,0xb9,0x6f,0x1b,0xfe,0x8c,0x5e,0xf9,0x7d,0xd9,0xc2,0xbe,0x0f,0x6f,0xbd,0xa7,0x94,0x10,0x4e,0xe0,0x5a,0xbb,0xa3,0x40,0x9a,0x5a,0xad,0x10,0x97,0x92,0x3b,0xbd,0xa7,0x75,0x77,0xc6,0xa6,0xde,0x42,0x00,0x3b,0xf7,0xe4,0xf4,0xd7,0xdd,0xaa,0x31,0x1e,0x64,0xae,0x17,0x0a +.byte 0x25,0xa0,0x94,0x5f,0x3c,0xbc,0x3d,0x00,0x00,0xd3,0xba,0x7b,0x98,0x81,0xe1,0xdf,0xba,0x60,0x08,0x2a,0xe5,0x66,0x08,0x3e,0xfa,0x81,0x0a,0x89,0x4e,0xe5,0x3b,0xc3,0xdf,0x21,0x9b,0x54,0xa3,0xb3,0xc3,0xc1,0xce,0xb4,0xaa,0x06,0xee,0x2e,0x34,0x55,0xcc,0x8b,0x0f,0xcd,0x1d,0x1b,0xd9,0x9e,0x59,0xf0,0x93,0xc9,0xba,0x35,0x5c,0x99 +.byte 0xf6,0x86,0x9e,0xe9,0xf8,0x84,0x80,0x05,0x76,0x6f,0x8b,0x38,0xb6,0xe0,0xdf,0x0c,0xb3,0xc7,0x6e,0x62,0x53,0xe4,0x69,0x0a,0xc1,0xcf,0x5b,0x84,0x75,0x78,0x56,0x35,0xa5,0x26,0xc6,0xae,0x76,0x2e,0xc8,0x29,0x8d,0x16,0xd1,0x4f,0x27,0x36,0x22,0x41,0x31,0xfb,0xbe,0xd0,0xf9,0x0a,0x06,0xbf,0x59,0x6e,0x06,0x20,0x0d,0x52,0x66,0x63 +.byte 0x38,0x2a,0xb6,0x15,0x0f,0x51,0x14,0x0b,0xd1,0x63,0x40,0x2a,0xfe,0x88,0x51,0x53,0x5d,0x82,0x4e,0x1b,0x91,0x30,0x7a,0x09,0xec,0xb6,0x53,0x10,0x87,0xba,0x34,0x1f,0x8a,0xf7,0x85,0x31,0x77,0x76,0xba,0x55,0x07,0x6b,0x80,0x5d,0x14,0x23,0x50,0xef,0x07,0x91,0xc5,0x71,0x3a,0x55,0x44,0x9d,0xbf,0xe6,0xab,0xde,0x7c,0xdd,0xe0,0xcb +.byte 0xcc,0xc1,0x78,0xb4,0x8c,0xd1,0x35,0x73,0x80,0x9c,0x44,0xff,0xf8,0x8a,0xaa,0x9a,0x94,0xcf,0xc9,0x51,0xfc,0xa5,0x3d,0x86,0xd6,0x67,0x71,0x1b,0xdb,0x83,0xb2,0x67,0xb0,0x17,0xce,0x13,0x1b,0x7a,0x84,0xc8,0xaf,0x69,0x7e,0xf0,0xab,0xc5,0x8c,0x37,0x12,0x43,0x33,0x5f,0xaa,0xde,0xcf,0x4c,0x73,0x7f,0x6b,0x80,0x18,0x27,0x72,0x62 +.byte 0xe8,0x3d,0x1c,0x94,0x91,0xfa,0x33,0xef,0x13,0x94,0x7f,0xb6,0x53,0xe3,0xd7,0x73,0x05,0x3e,0xe8,0x45,0xde,0x1e,0x1d,0xa4,0x41,0x11,0x0a,0x7f,0x62,0x6e,0x9f,0x9f,0xec,0xe9,0x87,0xe0,0x5d,0xbb,0xbc,0x0b,0x37,0xa2,0xf3,0x68,0x8a,0x24,0xec,0x98,0xe5,0x5d,0xbf,0xa1,0x60,0x2b,0xc2,0x74,0x4b,0x8b,0x85,0x44,0x28,0x02,0xd5,0xb9 +.byte 0xae,0x00,0x37,0x1e,0x0b,0x46,0xe6,0x40,0xf1,0xdc,0xa0,0xfc,0xae,0x04,0x7f,0xb6,0x46,0xa3,0x22,0x79,0x92,0xda,0x89,0xa0,0x38,0xf0,0xa2,0x4a,0x76,0x79,0x0c,0x46,0x4d,0xa9,0xe6,0x75,0xff,0x01,0xb3,0xe4,0x13,0xc2,0x53,0xe9,0x6d,0x1f,0xdd,0x88,0xcf,0x10,0xf5,0x16,0xef,0x05,0x59,0x51,0x15,0x49,0x17,0xda,0xff,0x0e,0xb3,0xb9 +.byte 0xae,0x79,0xc6,0xb1,0x94,0x08,0x09,0x30,0x9f,0x2a,0xfd,0x55,0xc0,0x41,0x8c,0xe5,0x0e,0xee,0xc2,0xa0,0x05,0x36,0x66,0x8d,0x9a,0xcc,0xc9,0xeb,0x1d,0x34,0xc0,0x1a,0x29,0xc2,0xcd,0xb7,0x25,0xd3,0x83,0xf8,0x1e,0xa0,0xf4,0x50,0xd4,0x08,0x0d,0xcb,0x6a,0x2f,0xa5,0x8b,0x30,0x94,0x89,0xea,0x94,0x6c,0x00,0x7e,0x7f,0xb5,0x4d,0x61 +.byte 0xa7,0x9d,0x94,0xcc,0x14,0x8f,0x75,0x1f,0xef,0x2b,0xbe,0x37,0xdd,0x19,0x41,0x2e,0x90,0x36,0x27,0xa5,0xa9,0x6c,0x75,0x8c,0x2d,0xe3,0x97,0x74,0x91,0xf3,0xb8,0xcb,0xcb,0x74,0xba,0xf0,0x57,0x70,0x89,0xee,0x4d,0xc5,0xfe,0x3e,0x60,0xe3,0x5b,0x28,0x36,0x91,0x6f,0xcd,0x6c,0x33,0xb6,0x44,0x0c,0xce,0x81,0xe4,0xdb,0x84,0xbe,0x4e +.byte 0xef,0xb8,0x75,0xf7,0x8b,0xb0,0xb7,0x0d,0x00,0x13,0x54,0x39,0xfd,0x9e,0x86,0x5c,0x59,0xd0,0x84,0x0f,0x97,0xc0,0xf8,0xfa,0x4a,0xcf,0x57,0xb8,0x24,0xf0,0xa8,0x40,0x70,0x9d,0xc4,0xe5,0xc7,0xc9,0xcb,0xb6,0xf4,0x0b,0xb5,0xcc,0xe0,0x90,0x2b,0x42,0x81,0xd6,0x59,0x2e,0x11,0xbd,0xe8,0xf5,0xef,0xa8,0x2b,0xdb,0x93,0x62,0x1e,0xef +.byte 0x3a,0x5f,0xf5,0x47,0x15,0x1f,0x03,0x6f,0x40,0x85,0xff,0x50,0x89,0x2e,0x72,0x8f,0x5c,0x0d,0x61,0x84,0x8d,0x8a,0x8f,0x2a,0x47,0x7c,0x97,0xfe,0x8a,0x97,0x6c,0xd5,0x1c,0x97,0xfa,0x59,0xbe,0x2c,0x0f,0x4d,0x85,0x7f,0x18,0xe3,0xea,0xe8,0xde,0x5a,0xf3,0x67,0xe1,0x71,0x7e,0x81,0xa3,0x74,0x0d,0xf4,0x3d,0x5a,0xec,0xc1,0xcf,0x6f +.byte 0x08,0x0f,0x5a,0x63,0x72,0x0b,0x46,0x5d,0x38,0x80,0xea,0xb7,0x12,0x5d,0xce,0x37,0x26,0xaa,0xd3,0x0d,0x93,0x4a,0x34,0x20,0xd5,0x51,0x54,0x1c,0x5e,0x53,0xa9,0xed,0x26,0x3c,0x29,0xaf,0xbe,0x73,0x34,0xa5,0xc3,0xbf,0x8c,0x8a,0xc3,0x30,0x89,0xaf,0xa9,0x2d,0x28,0x35,0x7d,0x6b,0x84,0x23,0x22,0xee,0x8c,0x82,0x04,0xbd,0x26,0x52 +.byte 0x26,0x73,0x76,0x05,0x35,0x0c,0xec,0xf7,0x54,0xb2,0x17,0x68,0xe9,0x68,0x67,0xbb,0x0d,0x98,0x19,0x32,0xa7,0xdb,0xf9,0xef,0x42,0xe7,0xc2,0xe2,0x39,0x9c,0xae,0xbb,0xdb,0x91,0x28,0x82,0x88,0x23,0x61,0x50,0x6d,0x61,0x39,0x73,0xf8,0x6a,0xee,0xf3,0xa9,0x2c,0x78,0x0d,0x5a,0xed,0xb1,0x08,0x8f,0x24,0xe5,0xb7,0xa4,0xdf,0x65,0x9a +.byte 0x72,0x3a,0x39,0x9c,0xf4,0x43,0xdc,0x8a,0xa3,0x3d,0xb5,0x1e,0x7b,0xe5,0x83,0x11,0x07,0xab,0x62,0x7e,0xac,0xab,0x52,0x94,0x0b,0xaf,0xdf,0x54,0x18,0xf1,0xc0,0x9f,0x1c,0x33,0x02,0xd9,0x62,0xc3,0xcc,0xaf,0x32,0x09,0x35,0x77,0xad,0x72,0xd6,0xb5,0x2d,0xaf,0xf9,0x39,0xfb,0x95,0xbb,0xf9,0x84,0x80,0x84,0xc8,0xc6,0x6d,0xb5,0x79 +.byte 0x25,0xf4,0x6c,0x71,0x26,0xda,0x74,0x86,0xad,0x52,0x47,0x8b,0x46,0x32,0xf6,0x2c,0x89,0xdb,0x93,0x1f,0x46,0x83,0x91,0x19,0xd2,0x0c,0x29,0x97,0x5f,0xa9,0x2b,0x87,0x0c,0x87,0x89,0xe6,0x63,0xa1,0x36,0xfb,0xfa,0xb4,0xb8,0x8e,0x5f,0xe9,0x8f,0x62,0xd2,0x81,0x1d,0x7b,0xc6,0x14,0x37,0x56,0x73,0x64,0x3d,0x0a,0xfd,0xe5,0x94,0x01 +.byte 0x09,0xc8,0x0d,0xa8,0x92,0xda,0x43,0xc4,0x41,0xca,0x3c,0x27,0x2c,0xbb,0xc4,0xb2,0x77,0x13,0xa6,0xb0,0x0e,0x97,0x6a,0xb2,0x83,0xe5,0x5e,0xa3,0xc0,0xe8,0x5e,0x0b,0xe6,0x00,0x04,0x6c,0x1b,0xac,0x84,0xab,0xd3,0xac,0x5f,0x39,0xc2,0xf8,0xfd,0x66,0xf7,0x97,0xd7,0xb9,0x6b,0xd8,0x2a,0x49,0xf7,0x67,0xd8,0xd5,0xa4,0x89,0x57,0xa6 +.byte 0x8f,0x7c,0xcf,0xaf,0xfe,0x3c,0x92,0xc8,0x23,0x2c,0x26,0x83,0x86,0x16,0x97,0x34,0x71,0x3e,0x82,0x2b,0xc7,0x75,0x5a,0x59,0xb3,0x44,0xdd,0x4e,0xd4,0x6d,0x1b,0x9f,0x3c,0x35,0xc4,0xe4,0xf2,0x95,0xb6,0x90,0x95,0xa7,0xc4,0x03,0x10,0x7d,0x3d,0xeb,0x74,0x29,0xaa,0x0c,0xd3,0x27,0xcd,0x3a,0x85,0x3c,0x88,0xd5,0x9a,0x46,0x84,0x8e +.byte 0x36,0xde,0xe3,0x6a,0x27,0xbf,0xc3,0xd0,0x3e,0xa3,0x0e,0x62,0x1f,0xdf,0x4c,0x02,0xa7,0x11,0x91,0xb0,0x6b,0x50,0xc1,0xe0,0x18,0x5a,0xc0,0x10,0xc7,0x1c,0xb6,0x36,0xac,0xe7,0x7d,0xad,0x34,0x63,0x4f,0x17,0xcc,0x41,0x30,0xec,0xd7,0x14,0xb9,0xfe,0x07,0x5c,0x3d,0xbe,0x08,0x77,0x5b,0xdf,0xa3,0x20,0x56,0x55,0xa2,0x8a,0xe7,0x0d +.byte 0xf6,0xfc,0x91,0x37,0xb8,0x92,0x6c,0xd9,0x5c,0xb0,0xc2,0xf7,0xc0,0x38,0xfa,0x54,0xc6,0xa1,0xd3,0x4d,0xae,0x49,0x0d,0xd1,0xc0,0xef,0xbe,0x27,0xce,0x23,0x8e,0xf2,0x9b,0x68,0x02,0x67,0x8f,0x53,0x9d,0xf6,0x23,0x57,0x85,0xdd,0x8d,0xd7,0xcb,0x47,0xf1,0xd8,0x17,0xd8,0x46,0x72,0x28,0x4b,0xac,0x94,0xd3,0x5d,0x53,0x4f,0x06,0x19 +.byte 0xc6,0x0e,0x0b,0x9f,0x58,0xc6,0x3f,0xea,0x4e,0x83,0x5e,0xd3,0xcc,0x44,0x55,0xa3,0xc7,0x24,0x19,0xea,0x1b,0x18,0xc1,0x18,0x5f,0x21,0x67,0x73,0x32,0x4e,0x31,0x69,0x05,0x40,0x79,0x7c,0x05,0x13,0xdd,0x50,0xea,0xfa,0xc2,0x26,0xe2,0x33,0xff,0x34,0x0d,0xda,0x77,0x27,0xe0,0xe7,0xa6,0x7b,0x8e,0xcd,0xdb,0x92,0x48,0x3a,0x2d,0x52 +.byte 0xf5,0x59,0xca,0xc7,0x47,0xda,0xb7,0xc7,0x8c,0x37,0x5e,0x29,0x30,0xf5,0x57,0x74,0x8b,0x10,0xcb,0x20,0x31,0x4b,0x12,0xe3,0x84,0xd2,0xb2,0xc3,0xd0,0xe3,0x94,0x18,0xa2,0xdc,0x8f,0x4d,0xc3,0x0a,0x43,0x07,0x2c,0x6b,0x41,0x64,0xc0,0x35,0x8f,0x37,0x9b,0xd7,0x78,0xab,0xd0,0xdc,0x1f,0x77,0x55,0xab,0x71,0xc8,0x99,0x98,0x00,0x29 +.byte 0x1c,0xab,0x3c,0x5f,0x82,0x96,0xc2,0xc8,0x9b,0xd4,0x68,0x3f,0x3d,0xe6,0x5a,0x4c,0x1c,0x7b,0x51,0xa3,0x79,0xe8,0x0e,0x8a,0x78,0xdc,0x98,0x63,0x80,0x74,0x32,0x9d,0x7c,0x3a,0x79,0x54,0xa7,0x4c,0xa4,0x4e,0xfc,0xa5,0x8a,0xa4,0x19,0xce,0x84,0xbb,0x8a,0xb9,0x93,0x4a,0x2d,0x82,0x5d,0x1d,0xf8,0x2f,0x85,0xb3,0x90,0x32,0x61,0x6d +.byte 0x13,0x33,0xac,0xbc,0x5d,0x3a,0x54,0x45,0x04,0x50,0x30,0x30,0xc7,0x58,0xbe,0xed,0xdd,0xa1,0xae,0x6d,0xe5,0xde,0xed,0x63,0x9f,0xd4,0x2b,0x8d,0x1f,0x69,0xde,0xda,0x55,0x3f,0x3b,0xe7,0xc8,0x73,0xc0,0x68,0x18,0x6a,0xb3,0xfb,0xce,0xaf,0x46,0x0a,0xcc,0x81,0xa8,0x96,0x6d,0xb6,0xa4,0x74,0xf3,0x8c,0x95,0x2d,0xa1,0xfe,0x09,0xb8 +.byte 0xdb,0x3c,0xcd,0xdc,0x5b,0x0e,0x2d,0xff,0x89,0x8a,0xfd,0x7a,0xe9,0x69,0x0b,0xdd,0x4e,0x9b,0x94,0x64,0xe4,0xb6,0x5d,0x69,0xef,0x9c,0xf6,0xe6,0x44,0x73,0xd5,0x86,0x47,0x63,0x77,0x3e,0x74,0xaa,0xf3,0x6b,0x1f,0x37,0xbf,0xef,0xa2,0xff,0x86,0x61,0x78,0xc4,0xb5,0xbd,0x5a,0x43,0x49,0x80,0x16,0xf2,0x4c,0xec,0x1e,0x07,0x0f,0x41 +.byte 0x60,0x6f,0x3a,0xd2,0xab,0x85,0xc0,0x5c,0xfc,0x9f,0x48,0xad,0x5e,0xe0,0x7d,0x66,0x8e,0x46,0xf1,0xc3,0xb0,0xbc,0x5e,0x3b,0x10,0x7c,0xfc,0xa3,0x27,0xbd,0x8f,0xae,0xd9,0x61,0x39,0xbf,0xca,0x27,0xbb,0xe7,0xda,0x59,0xa8,0x63,0x38,0x16,0xd9,0xb5,0xa6,0xd9,0x1c,0x2b,0xa1,0x42,0xec,0x50,0xd7,0x63,0x09,0x22,0xe0,0x0c,0xb8,0xec +.byte 0x12,0x9b,0xdb,0x8a,0xd3,0x02,0xcf,0x32,0xa9,0x88,0xa4,0x31,0xc8,0xa9,0xf4,0x03,0xf2,0x9d,0xe1,0x41,0xf0,0x0f,0x23,0x65,0xa8,0x99,0x55,0x87,0xf2,0x17,0x66,0xf0,0x94,0xe8,0xe9,0xb6,0xfd,0x10,0xb9,0x55,0xf4,0xda,0x06,0x7a,0xbe,0xe2,0xd3,0xfa,0xb8,0xf7,0x85,0xdf,0xee,0x39,0xdc,0x0f,0xda,0x87,0xf5,0x66,0xd8,0x1b,0x5c,0x0c +.byte 0x13,0xe8,0xa2,0xcd,0xdf,0x47,0x33,0xd7,0xf4,0x5c,0x79,0xc7,0xf4,0x68,0xe4,0x2d,0xa1,0xde,0x5c,0x06,0x1c,0x85,0xf1,0x2a,0xf9,0x73,0x44,0xbc,0xd3,0x57,0x4f,0x0f,0xcd,0xcc,0x40,0xeb,0x9d,0x35,0x8e,0xdf,0x1d,0x4a,0x61,0xd0,0x66,0xb5,0x16,0xce,0x45,0xc0,0xbf,0x01,0xe3,0xb2,0x51,0xba,0x53,0x18,0x2a,0xff,0x19,0xea,0x41,0xa2 +.byte 0xac,0x0b,0x50,0xd3,0xc1,0x6a,0x9c,0xb0,0x34,0x6f,0xa0,0xcb,0xc7,0xc6,0x79,0x5d,0x17,0x3a,0x4c,0xa3,0x16,0xdc,0xac,0x10,0xf0,0x24,0xad,0x9a,0x5b,0xa9,0x7e,0x45,0xcd,0xe9,0xad,0x87,0x04,0xbc,0x2a,0x05,0x59,0xd1,0xdb,0x86,0x22,0x40,0xdf,0xb1,0xff,0x8d,0x3c,0xf8,0x6a,0xf3,0xcb,0x60,0xf9,0x35,0xa6,0x42,0x81,0xcb,0x0f,0x7c +.byte 0xf7,0x24,0x3b,0x0c,0x94,0x32,0xd9,0xec,0xcf,0xd1,0x31,0x3e,0x3e,0xeb,0xa9,0xf2,0x1f,0x2d,0xa7,0x89,0xf7,0x67,0x7d,0x90,0x9d,0x40,0xf2,0xdb,0x07,0x8f,0xb8,0x6f,0xfd,0x78,0x6e,0xd0,0x9e,0xd5,0x7d,0xb0,0x7d,0x65,0xdc,0x6e,0x50,0xec,0x7a,0x5c,0x2c,0x3e,0x6f,0x64,0xa3,0x10,0x34,0xf7,0x71,0xc8,0x82,0xb6,0x96,0xb8,0xb1,0x2a +.byte 0xb4,0x03,0x95,0x75,0x90,0xac,0x6c,0x81,0x17,0x97,0x06,0xd0,0xb8,0xc5,0x98,0xc5,0x9e,0x46,0x07,0x13,0x02,0x9e,0x47,0x69,0xba,0x85,0x2d,0x09,0x86,0x50,0xe4,0x76,0xb1,0xa2,0xbe,0x8b,0x91,0x6b,0x3b,0x76,0xa3,0xb7,0xf5,0x7f,0xfe,0xf1,0xa4,0xf3,0xc3,0x53,0x64,0xef,0x97,0x86,0x96,0x8b,0xc4,0xae,0x06,0x8b,0xe8,0x3c,0xdc,0xff +.byte 0xfa,0xad,0xcb,0xcb,0x53,0x15,0xf2,0xcc,0x9f,0x48,0xf9,0x57,0x6a,0xcd,0xb2,0xee,0x46,0xc0,0xbf,0x82,0x58,0x60,0xda,0x2f,0xbd,0xde,0xc7,0x41,0xcb,0xf1,0x38,0x56,0x9d,0x38,0x38,0x3d,0xea,0x5e,0x38,0xf1,0xd0,0x02,0x35,0xee,0x4c,0x2f,0x1d,0x19,0xbd,0x08,0x01,0xc3,0x8f,0x75,0xe2,0xf3,0x93,0xbb,0x76,0x6b,0xd7,0x87,0x76,0x7f +.byte 0x3b,0x29,0x08,0x9f,0x3a,0xa5,0x44,0x96,0x5a,0xb3,0x78,0xa9,0xbe,0xf7,0x5d,0xda,0x06,0x37,0x98,0x5d,0xbe,0x6e,0xec,0x58,0x53,0xd1,0xa5,0xd7,0x7a,0x16,0xb1,0x59,0x98,0x42,0x37,0x76,0x1b,0xd6,0x2e,0xa7,0xdc,0x45,0xa6,0x9c,0x9c,0x99,0x24,0x0e,0x22,0xae,0x94,0x65,0xeb,0x4e,0x64,0xc3,0xb0,0xac,0x19,0x41,0xf1,0x62,0x65,0xb2 +.byte 0x35,0xf5,0x2f,0xdb,0xd2,0xf0,0x78,0x19,0x35,0x04,0x6f,0x9c,0xf4,0xaf,0x81,0x68,0x4f,0x8b,0x85,0xfa,0x31,0x23,0x06,0xeb,0x37,0x86,0x43,0x51,0xb3,0xd2,0x2a,0xd7,0xd5,0xa9,0x33,0xba,0xfd,0xb5,0x0e,0x6d,0x9a,0x91,0xf9,0xe7,0x27,0xb7,0xff,0xe6,0xe7,0x34,0xc5,0x1a,0xa3,0x45,0x3b,0x71,0x34,0x87,0x7e,0xe7,0xab,0x74,0xc5,0xff +.byte 0xeb,0x23,0x8f,0x3f,0x5d,0x1c,0x91,0x47,0xeb,0x3e,0x5f,0x5a,0xa6,0x5a,0xde,0xa9,0x5f,0xf4,0x8f,0x95,0xc6,0x25,0x3c,0xd5,0xaf,0xfd,0x4d,0x33,0x68,0xe1,0xa3,0x51,0x1b,0x07,0xad,0xb9,0xec,0xf1,0x50,0x51,0xbf,0xeb,0xe8,0x58,0x2a,0x50,0x0e,0x9d,0xc2,0x8a,0x83,0x8c,0xb0,0xb8,0xde,0x1d,0x7b,0x0f,0xff,0xfc,0xfc,0x31,0xe5,0x62 +.byte 0x40,0xc8,0x28,0x30,0x31,0xc9,0x82,0xab,0xbe,0x50,0xe5,0xfe,0x1f,0x49,0x17,0xf9,0xea,0x23,0xc7,0x6d,0x8d,0x63,0xc3,0x70,0x40,0x32,0x0b,0x48,0x7a,0xd9,0x03,0x52,0x1b,0xf4,0x90,0xd6,0x6d,0xd2,0xfc,0xec,0x24,0x7f,0x21,0x2e,0xd4,0xb5,0x60,0x44,0xd9,0x83,0xb0,0x3e,0x75,0x8a,0x6a,0x09,0xab,0xa8,0x4f,0x48,0x3c,0x2b,0x89,0x30 +.byte 0x29,0xdb,0x1a,0x8e,0x68,0xe4,0x89,0xed,0x10,0xe8,0x46,0xa7,0xf9,0x5f,0x7d,0x42,0xe0,0x8d,0xbc,0x3d,0x4d,0xd8,0x06,0x4a,0xf9,0xbb,0x97,0xa7,0xdb,0x24,0x0b,0xfc,0x49,0x92,0x5d,0x80,0xf8,0xed,0x57,0xc7,0x1e,0x82,0xed,0x41,0xb8,0xfd,0x71,0xb9,0xa5,0x11,0x52,0xdd,0x1e,0xa4,0xf1,0x02,0xc7,0x54,0x7c,0xdc,0x37,0x9f,0xfe,0x37 +.byte 0xe8,0xa5,0xcf,0xb0,0x3d,0x25,0x3f,0x24,0xfe,0xf2,0x63,0x97,0x3c,0x13,0xdc,0x31,0x78,0x07,0xf1,0x8e,0xee,0xc6,0x00,0xf8,0xfd,0x84,0x53,0x4d,0x92,0xa1,0xef,0xd0,0xb1,0x12,0x0a,0x12,0x91,0xeb,0x52,0xdd,0x6e,0x15,0x98,0xd2,0xe1,0x53,0x7a,0x0e,0x02,0x83,0xd3,0xd1,0xde,0x72,0x6e,0x5b,0x4b,0x8d,0x40,0xe3,0x2d,0x22,0x59,0x9d +.byte 0xee,0xbe,0x43,0x18,0x62,0x8c,0x77,0x18,0x91,0xf5,0x9e,0xbc,0x3e,0x8b,0x77,0xb6,0xdb,0x5c,0xcb,0xcd,0xdb,0x36,0xea,0xf5,0x1d,0x9b,0xa7,0x13,0xef,0xda,0xd0,0xe8,0xd8,0xb2,0x4c,0xc6,0x19,0x3d,0x77,0x2d,0x0d,0xad,0xe4,0x32,0x24,0xe9,0xd4,0x7f,0x72,0x1d,0xc6,0x6e,0x83,0x7d,0xb8,0x62,0x64,0x9d,0x9a,0xd7,0x13,0x93,0x92,0xf1 +.byte 0x37,0x98,0xcf,0x44,0x66,0xab,0xd1,0x61,0x6c,0x08,0xa7,0x41,0x4e,0x37,0xc1,0x67,0xfb,0x7c,0x22,0x8f,0xbd,0x93,0xb2,0x09,0x13,0xa0,0x48,0x60,0xaf,0xda,0x73,0x2b,0xa3,0x2a,0xf3,0x4d,0x8e,0x22,0x5b,0x7a,0x32,0xe6,0xca,0xff,0x0e,0xa1,0x0a,0x15,0x33,0x31,0x50,0x71,0x1c,0x85,0x26,0x9b,0x19,0xf2,0xe3,0x69,0x4e,0x2d,0xff,0x79 +.byte 0x80,0xfe,0x2c,0x2f,0x7a,0x49,0x95,0xf3,0x0e,0x78,0xb1,0x0c,0x1c,0x45,0x59,0x68,0x2a,0x37,0xf2,0x48,0x6f,0xd9,0x32,0xf7,0xfc,0xdc,0xbe,0xe3,0xdd,0x61,0x17,0xc0,0x08,0x9d,0xbc,0x2d,0x8d,0x24,0x1c,0xbb,0x53,0xbe,0x37,0x59,0x30,0x87,0xa0,0x14,0xf5,0x08,0xcf,0xd1,0xcc,0x84,0xa7,0x0f,0x69,0xe0,0x77,0x8c,0x0d,0xdc,0x82,0xe5 +.byte 0x88,0x9a,0x58,0x05,0xe3,0x4f,0xdd,0x55,0x1e,0x6e,0x90,0xd5,0x3c,0xa6,0xa6,0x10,0x24,0xe5,0x58,0x97,0xdc,0x31,0x87,0x39,0xdc,0x3a,0xe6,0x24,0x64,0x23,0x45,0xd8,0x01,0x1b,0xf6,0x38,0x68,0x9e,0x62,0x53,0x00,0x97,0x71,0x04,0xb5,0x3b,0x54,0xdb,0xb5,0xcb,0x30,0x91,0x14,0xce,0x94,0xd5,0xe0,0x96,0x70,0x99,0xa5,0xed,0x69,0x32 +.byte 0xc7,0xb7,0x14,0xff,0xc0,0xde,0x19,0x5d,0x31,0xdb,0xa7,0xc0,0x7a,0x94,0xec,0x60,0xfc,0x52,0x71,0x69,0x9b,0xd8,0xbe,0x97,0x0b,0xb5,0x70,0xa7,0x47,0x11,0x37,0x84,0xda,0x3c,0x23,0xfe,0xf2,0x53,0xad,0x55,0x71,0x1e,0x70,0x9b,0x7b,0x61,0x97,0xf8,0x71,0xc4,0xad,0x72,0x98,0x43,0x0c,0x33,0x30,0x2c,0xb2,0xd6,0x21,0x8d,0xbb,0x1b +.byte 0x85,0x82,0x24,0x14,0x85,0x95,0x88,0xff,0x3f,0x8c,0x88,0x96,0xa0,0xf8,0xd7,0x36,0x78,0x37,0x6d,0x92,0x09,0x04,0x76,0x27,0xb9,0xd5,0xea,0x0f,0x07,0x9f,0xe1,0x49,0x0e,0xd1,0x9c,0x46,0xcd,0x2b,0x7a,0x57,0xb6,0x56,0x39,0xe5,0x59,0x6b,0x1b,0x39,0xbf,0x15,0x3b,0x56,0xf5,0xc2,0x08,0x96,0xf5,0x63,0x4c,0x31,0x33,0x65,0x8b,0x74 +.byte 0x4e,0xde,0xa8,0x20,0xe0,0x7c,0x27,0xee,0x91,0x74,0xe8,0x24,0xb3,0xcf,0xa3,0xd4,0xf1,0xb9,0x18,0x43,0x05,0x5d,0x13,0x36,0x82,0xd1,0xbf,0x16,0x89,0x48,0x83,0xf0,0xcc,0x5c,0xbb,0x75,0x7e,0x71,0xc0,0x73,0xd1,0xf5,0x00,0x38,0x7f,0x10,0x98,0xd6,0xb9,0x14,0xea,0xd3,0x3f,0x0f,0xe3,0x61,0x1a,0x5e,0x21,0xd0,0x11,0x58,0x68,0x47 +.byte 0xf2,0xe5,0xe9,0x65,0x9a,0xc1,0xf4,0xa0,0x98,0x8e,0x9f,0x7f,0xbe,0x7e,0xd0,0xb6,0x88,0x4e,0xce,0xc1,0x8b,0xd4,0xd3,0x93,0xb7,0xd8,0xf3,0x0b,0xf3,0x73,0xc9,0x08,0x2f,0xcf,0xd8,0xbd,0xa6,0x1d,0x7c,0xfa,0x44,0x82,0x9f,0x03,0xca,0x56,0x3b,0xbf,0x4d,0x1e,0xbc,0x06,0xc2,0x37,0xfb,0xde,0xd3,0xa9,0xe3,0xae,0x61,0xef,0x26,0x7d +.byte 0xbd,0x2f,0xee,0x2d,0xe1,0x65,0x71,0x77,0xab,0x9c,0x96,0x4f,0x00,0xe2,0xde,0xd7,0x05,0x54,0x00,0xb6,0xaf,0x12,0x0c,0x79,0x1a,0xed,0x20,0x72,0xc7,0x3b,0x3a,0x10,0x15,0x74,0xff,0xbd,0xf8,0xaa,0x8f,0x3a,0x83,0x39,0x24,0xfa,0x53,0x2d,0xc3,0x61,0xfc,0x12,0x6b,0x54,0x33,0xbf,0x83,0xc9,0x59,0x00,0xf0,0xdc,0xa8,0x64,0xbc,0xb5 +.byte 0xc3,0x96,0x60,0x3e,0x7b,0xe2,0x08,0x19,0x92,0x17,0x80,0x9b,0x0c,0x09,0x49,0x68,0x8b,0x15,0xe3,0xce,0x0c,0xfa,0x0c,0x8b,0xf0,0xdc,0x58,0xb0,0x7b,0x82,0x85,0xd2,0x56,0x1c,0xfb,0xb5,0xd0,0x0e,0x0a,0x55,0x61,0xda,0xd8,0x20,0xc1,0x79,0x70,0x3c,0x69,0x8e,0x49,0x5f,0x1c,0xdb,0x22,0xb8,0xdd,0x4c,0x4f,0xca,0xe9,0x0f,0x9a,0x4e +.byte 0xff,0x56,0xbc,0xcf,0x72,0x09,0xa6,0x41,0x38,0xf0,0x7d,0xe7,0x45,0x0a,0x71,0x2c,0x92,0xdd,0x21,0x17,0xb2,0x3b,0x31,0x3c,0x91,0x11,0x69,0x29,0x50,0x31,0xe6,0xa6,0x10,0xc7,0x35,0xe8,0x44,0xec,0x74,0xa3,0x7e,0xb6,0x34,0xe5,0xb7,0xba,0xdf,0x5b,0x2f,0x85,0x02,0x6c,0xb0,0x71,0xb1,0x43,0xff,0x0e,0x47,0x04,0x63,0x4d,0x5b,0x81 +.byte 0x81,0x28,0x8b,0x84,0x79,0xad,0x2a,0x45,0x00,0x1c,0x0c,0x9f,0xef,0x35,0xbb,0x6d,0xc5,0x6a,0x6b,0xef,0x2b,0xae,0x78,0x66,0x05,0x7a,0x61,0x4c,0xe9,0x5e,0xf7,0x95,0x66,0x7e,0x1a,0xa7,0xdf,0x4c,0x4d,0x7c,0x66,0xa5,0x38,0x84,0x86,0x8d,0x66,0xcc,0x7f,0x32,0xb2,0x9c,0xc5,0x0d,0x3d,0xb7,0xb1,0xa6,0xc5,0x80,0x68,0xaf,0x79,0x81 +.byte 0x15,0x8f,0xec,0x50,0x5c,0x1b,0x57,0x31,0xd2,0xb9,0x16,0x66,0xf8,0x16,0xfd,0xcd,0xc7,0xa8,0x84,0x6f,0x35,0xea,0x3f,0xa4,0x72,0x8d,0xad,0xf4,0xd1,0x14,0x46,0xcc,0x06,0xed,0x71,0x39,0x07,0x99,0x28,0xc8,0xf9,0xc4,0xc2,0xec,0xde,0xb8,0x92,0xae,0xc5,0xf8,0xb2,0x49,0xc9,0x32,0x58,0xec,0x9f,0xb0,0x59,0xaf,0x49,0xef,0xe8,0x0d +.byte 0x4c,0x56,0x8d,0xf7,0x57,0xb0,0x09,0xbe,0xc2,0x6a,0x62,0xc4,0x87,0xf3,0x20,0x07,0xc9,0xe3,0x3b,0x31,0xcc,0x8d,0xcf,0x5d,0x18,0x00,0x2a,0x9f,0xde,0x80,0x1a,0x7e,0x95,0x93,0xd1,0xbd,0xe6,0xd4,0x69,0x37,0x96,0xbb,0x70,0xc5,0x3c,0x87,0x8f,0xff,0x95,0x97,0xfe,0x95,0x56,0x7b,0xba,0x03,0x3d,0x29,0x0f,0xdb,0xd0,0x65,0x4f,0xf8 +.byte 0xa8,0xf3,0x42,0x09,0xb5,0x81,0x34,0xc6,0xa9,0x60,0xb9,0xef,0x3e,0x9d,0xc5,0x42,0x1e,0x79,0x5d,0x2b,0xf2,0x46,0x0d,0xeb,0x88,0x84,0x8f,0xad,0x60,0x69,0x57,0x49,0x33,0xb4,0xdd,0xfe,0x10,0x65,0x65,0x51,0xaf,0x68,0xa0,0xce,0xbd,0xe1,0x6e,0x03,0xe1,0x5f,0xba,0x3f,0x36,0xca,0xed,0x20,0x95,0xfa,0xff,0x3c,0x65,0xa8,0xb1,0x6b +.byte 0xc5,0x91,0xa0,0xd5,0x36,0x38,0x1c,0x38,0xe9,0x1d,0x1b,0x67,0x4c,0x17,0xd3,0x29,0x92,0xa2,0x27,0x76,0x3d,0xe2,0x26,0x37,0x2a,0x2c,0xf6,0xee,0x64,0x40,0x8a,0x1c,0x2b,0xc1,0xd3,0x28,0xd0,0xcf,0x2d,0xc2,0x45,0xf4,0x37,0x5a,0x63,0xfb,0x18,0x67,0x01,0x0a,0xe8,0xe2,0x41,0xf7,0x15,0x47,0xa7,0xe9,0xc8,0x05,0xbc,0xc7,0x8f,0xf0 +.byte 0xc3,0xc5,0x9a,0x4e,0x0d,0x7b,0xf0,0x20,0x8c,0x21,0x49,0x99,0x0d,0xf7,0x34,0x84,0x35,0xfb,0x11,0x33,0xd6,0x46,0x14,0x3c,0xf1,0xb3,0x37,0xac,0x75,0x63,0xe7,0x1a,0x19,0xa4,0x49,0xf2,0x58,0x1d,0x56,0x55,0x64,0x46,0x25,0xff,0x7d,0x90,0x34,0x21,0x5d,0x00,0xa1,0xa8,0xaa,0xe0,0x93,0xe7,0xda,0x11,0x34,0x1d,0xa3,0x0c,0x67,0xae +.byte 0xf5,0x60,0x72,0x14,0xdf,0x08,0xf6,0x72,0x3e,0x48,0x41,0x3d,0x00,0x58,0xfb,0x0c,0x15,0x80,0x2d,0xd9,0x72,0x47,0xa6,0x20,0x6a,0x74,0x9e,0x06,0xb9,0xac,0x68,0x3a,0xe7,0xf1,0x19,0xb8,0x0b,0x66,0x07,0x4d,0xa0,0xb5,0xab,0xea,0x70,0xa1,0xdf,0x41,0x76,0x85,0x18,0x5b,0x6f,0x78,0x5a,0x5d,0x08,0xe0,0x1b,0xd8,0x06,0x73,0x1e,0x16 +.byte 0xcb,0xdb,0x02,0xf8,0x96,0x64,0x65,0xc5,0xc1,0x52,0xd4,0xd8,0xb3,0x1e,0xd4,0x09,0xfd,0xa7,0x30,0x41,0x5a,0xce,0x53,0x4d,0x11,0xc8,0xdd,0x13,0x50,0xd5,0x2e,0xa0,0xe6,0x48,0x49,0x31,0x4b,0x1d,0xce,0xfc,0x42,0xed,0x8f,0xc8,0xb3,0x0a,0xae,0x1d,0x4c,0x1e,0x4f,0x39,0xa4,0x37,0xc8,0x54,0xdf,0x40,0xa6,0x42,0x61,0x7d,0x34,0xd4 +.byte 0x75,0x0a,0x9f,0xf0,0x33,0x54,0xf3,0xc4,0xdc,0x4e,0x2f,0x81,0xc2,0x20,0xaa,0x4f,0xa0,0xae,0xa6,0xb8,0x50,0xf8,0x45,0xf1,0xf2,0xd1,0xd2,0xcf,0xc8,0xf0,0xf4,0x54,0x37,0xdc,0xfb,0x13,0xdf,0x38,0xc2,0x3f,0xe0,0x59,0xb5,0x9a,0x0f,0x27,0x87,0xd4,0xd3,0xdc,0xfd,0xda,0x1d,0xfa,0xdd,0x12,0xe0,0x7f,0x34,0x01,0xde,0x28,0xf5,0x0e +.byte 0xff,0x59,0xc7,0xbd,0x6a,0xe4,0x0c,0x85,0x7b,0x87,0xf9,0xd7,0xe2,0xed,0xb2,0xf7,0xb7,0x13,0xfb,0xfc,0x4d,0x25,0x52,0xfd,0x23,0x6b,0x10,0xd0,0x80,0xd8,0xbd,0xbd,0xf0,0x87,0xfc,0x38,0x85,0x83,0x20,0x5f,0x7c,0x26,0x14,0x93,0xd3,0xe1,0xdc,0xa4,0xda,0xa7,0xf9,0xfd,0x6c,0x9a,0x2b,0x75,0x82,0xf1,0x9f,0x1b,0x0c,0x43,0xd4,0x2d +.byte 0x5b,0x0c,0x54,0x7e,0x61,0x24,0x8e,0x50,0x25,0xd8,0x54,0xfd,0x30,0xec,0x4c,0xa8,0xb6,0xf0,0x35,0x67,0xf7,0xe4,0x3c,0xfd,0xc8,0x40,0xf4,0x2d,0xc5,0x4d,0xc3,0x29,0xc2,0x88,0x60,0xab,0xd9,0x2a,0xe8,0x31,0xcc,0x0c,0x9f,0x97,0xa8,0x2e,0xaa,0xa5,0xb6,0xee,0x3c,0x71,0xa9,0xff,0x90,0xb4,0x43,0x2e,0x16,0x80,0x8c,0xfe,0xb5,0x7a +.byte 0x40,0x58,0xd5,0x98,0x7e,0xca,0xaf,0x95,0xee,0x00,0x26,0x8d,0x5b,0xba,0x33,0xee,0x35,0xb5,0x9b,0xf8,0x08,0x1e,0x15,0x2d,0x01,0xb1,0x83,0xa6,0x57,0x58,0xd1,0xf3,0xa4,0xf1,0x3a,0x00,0xf4,0x40,0xee,0x35,0x3a,0x20,0xc2,0x13,0x1e,0xda,0x32,0xc2,0x35,0x74,0x29,0xce,0x51,0x3f,0xec,0xb2,0xd7,0x23,0xa7,0xc6,0xef,0x70,0xb9,0x88 +.byte 0x6f,0xa8,0xf5,0x5b,0xff,0xc5,0xf5,0xb4,0x3b,0x12,0x75,0x20,0xbf,0x61,0x8a,0xb1,0xae,0x01,0x9b,0x17,0xf4,0xf3,0x2d,0xfb,0x44,0xe8,0xac,0x29,0x81,0xc2,0x6d,0x50,0x05,0x11,0xd9,0x43,0xf8,0xc7,0x58,0x5d,0xbc,0x2d,0xc0,0x83,0xd2,0x81,0x41,0x1c,0x46,0x62,0x60,0x6e,0x65,0x52,0x4b,0x1c,0x88,0x72,0x1b,0x0e,0x8e,0x7d,0xa2,0xb5 +.byte 0x4e,0x28,0x32,0xf2,0xb1,0xfa,0xf1,0x4b,0xc5,0x85,0x95,0x2c,0x08,0x78,0x85,0x68,0xe5,0x20,0x23,0x8b,0xc4,0xf5,0xb2,0xdb,0xc1,0xdd,0xe5,0x69,0xa4,0x97,0xa9,0x6c,0x2e,0x3a,0x25,0x1c,0x24,0x54,0x97,0x3e,0x8d,0x61,0x61,0xa3,0x60,0xf5,0xd2,0x4e,0x90,0x25,0x06,0x09,0x31,0x7b,0x96,0xce,0xcc,0xb7,0xbc,0x63,0x9f,0x04,0x7d,0xec +.byte 0xa1,0x4a,0x65,0xd3,0x26,0xe1,0xbf,0xf9,0x88,0xea,0x5c,0x5d,0xfe,0xe9,0x60,0x77,0xbd,0xf2,0xa0,0x11,0x91,0x24,0xca,0xa1,0x0d,0x05,0x7b,0xe2,0x7d,0x22,0x2e,0xd2,0xc9,0x4b,0x78,0xce,0x0c,0x7b,0x49,0xaf,0xd6,0x59,0x5f,0xb4,0xbd,0x2e,0x4a,0x22,0xcb,0x5d,0x1c,0xd5,0xde,0xea,0x86,0x74,0xd5,0x15,0x52,0x59,0xfc,0x3d,0x7b,0x1c +.byte 0x3f,0x14,0xec,0xf2,0xc8,0x3c,0x88,0xbf,0x89,0xd5,0x23,0xc3,0x94,0x3c,0x28,0x04,0x91,0x6c,0x36,0x35,0x4b,0x75,0xf8,0xdc,0xf3,0xff,0xba,0x8c,0xa4,0xc7,0x85,0xc5,0x1a,0x30,0x4b,0x7c,0xc5,0x2f,0xb9,0x2a,0x14,0xaa,0x65,0xe3,0x92,0xdc,0xe1,0xed,0x3f,0xb6,0xff,0x0e,0x74,0xe0,0xb3,0xc9,0x4b,0xd1,0x96,0xfc,0x49,0x72,0xbe,0xb0 +.byte 0xc8,0x4a,0xd5,0xf0,0xb3,0x58,0x29,0x35,0x97,0xd4,0x5c,0xc7,0x0b,0x27,0x1d,0x14,0xdb,0xb7,0x5c,0x7e,0x6d,0xc1,0x56,0xa9,0x80,0x72,0x7d,0x75,0xc2,0x2f,0x07,0x28,0xb4,0xff,0xef,0xa7,0x34,0xed,0x31,0x44,0x85,0xe6,0xc3,0xa4,0x5f,0xe2,0xe8,0xab,0xd1,0x59,0xe7,0x32,0x20,0xd1,0xcc,0xef,0x6f,0xe1,0x10,0x89,0x6c,0x0c,0xf3,0x5f +.byte 0xe8,0xc7,0x1c,0x3b,0xeb,0x3e,0xa5,0x53,0x2d,0x48,0x64,0x92,0xa0,0xec,0xf3,0x75,0x5b,0x5b,0xe2,0x83,0x87,0x04,0xa7,0xd8,0x1b,0x44,0xfb,0x42,0xee,0xd8,0xf2,0x98,0xff,0x30,0xc8,0x09,0xf8,0x1a,0x95,0x46,0x2d,0xe7,0x43,0x10,0x90,0xf4,0x2c,0x8f,0x0b,0x60,0x6d,0xeb,0xbf,0x19,0xc1,0x9d,0x5c,0xc0,0xff,0xb1,0x86,0xbc,0x01,0x73 +.byte 0x35,0x1f,0xd8,0xf4,0xa1,0xd4,0x7f,0x2d,0x1b,0xf9,0xa6,0x78,0x1a,0x2e,0x2c,0xe2,0xcc,0x8b,0x5f,0xbb,0xb9,0x80,0x31,0x32,0xa5,0x5d,0x70,0x59,0xae,0xe3,0xac,0xab,0xde,0x38,0x09,0x07,0x57,0x5f,0xbf,0xe8,0xa0,0xb8,0xd0,0x03,0xac,0x02,0x0d,0x7f,0x7e,0x0c,0xd2,0xcf,0x46,0x01,0x07,0x9f,0x16,0xf6,0x2b,0x94,0xaf,0xae,0x66,0x09 +.byte 0xca,0x4c,0x5f,0x37,0x53,0xa6,0x50,0x82,0x3a,0x0a,0x7b,0xb3,0x52,0x2e,0x0f,0xe4,0x64,0xab,0x40,0x21,0x2d,0xb7,0x20,0x9b,0xe3,0x2f,0xec,0x2b,0xb3,0x31,0x60,0x51,0x2e,0xb6,0x68,0xac,0xae,0xee,0x2d,0x28,0x5b,0xe0,0xa7,0x85,0xab,0x95,0xba,0x53,0x8c,0xc0,0xf8,0x16,0x8f,0x42,0x01,0xef,0x00,0x32,0x44,0x8e,0x41,0xc9,0x05,0x5b +.byte 0xe0,0x3f,0xe1,0xd8,0xd4,0x97,0x8e,0xa0,0x14,0x84,0xce,0x5c,0xef,0xbe,0xa4,0xae,0x18,0x91,0xd9,0x48,0x9b,0xc3,0x7a,0x8f,0xfb,0xb3,0x3e,0xa9,0x87,0x74,0x84,0xd2,0xc6,0x7c,0xc9,0xce,0x01,0xa5,0xcc,0xff,0x5a,0xe8,0x94,0x98,0x54,0x2a,0x6e,0xd9,0x58,0x75,0xd4,0xdd,0x6c,0x7d,0x83,0x32,0xc9,0x4e,0x35,0x2c,0x51,0x26,0x68,0x1f +.byte 0x95,0x20,0x82,0x54,0x0a,0xad,0x5e,0xe2,0xba,0xf9,0xa3,0x54,0x24,0x93,0x4a,0x62,0xff,0x28,0x05,0xd2,0x22,0x62,0x82,0xd4,0x2d,0xe2,0xec,0x66,0xc5,0xee,0x63,0xd0,0xf6,0x93,0xa8,0x37,0xbf,0xdd,0xe0,0x95,0x0b,0x19,0xa1,0x9d,0x9a,0xf8,0x94,0x1a,0x3a,0x50,0x9e,0x66,0x75,0x8c,0x25,0xbd,0x18,0xb0,0x58,0x76,0x7f,0x2d,0x3d,0x06 +.byte 0x02,0xb3,0xcf,0xa3,0x14,0x6e,0xe7,0xc8,0xcd,0xe6,0xbe,0xae,0x92,0xd6,0xa2,0xfe,0x12,0xf0,0xdf,0x9f,0x9e,0xad,0x77,0x77,0xfb,0xfc,0x36,0xb7,0x82,0x9c,0xf1,0x51,0xc2,0x58,0xa0,0xf3,0xa0,0xd6,0x6e,0x64,0x28,0xac,0x09,0x8f,0x7b,0xef,0x19,0x87,0x76,0xb9,0x4e,0xca,0x1f,0x05,0xb6,0x00,0x4a,0x14,0x83,0xaf,0xff,0xd9,0xa1,0xc6 +.byte 0x0f,0x98,0x3a,0xcf,0x85,0x18,0xea,0xa6,0x9a,0x1e,0xae,0x7c,0xaa,0xae,0xef,0x89,0x5e,0x14,0x5d,0x2f,0x73,0x8f,0xd1,0xf0,0x77,0xcd,0x45,0x92,0x7f,0xee,0xb9,0x7c,0xc2,0x3c,0xff,0x56,0x56,0xa5,0xa5,0x49,0xe4,0x20,0xd6,0xa2,0xb6,0xe4,0xfc,0x86,0x53,0xce,0x9e,0x2b,0x7b,0xcb,0xcf,0x6a,0xd5,0x62,0xb7,0x34,0x0e,0x39,0xe2,0xaa +.byte 0x1c,0x24,0x30,0x71,0x94,0xb3,0x57,0xd8,0xe8,0xd4,0xc5,0x4f,0x33,0x2c,0x73,0x7e,0x48,0xba,0xb3,0x55,0x84,0x6d,0x10,0xcf,0x8f,0xf2,0xb6,0xdb,0x4e,0xcf,0x49,0x08,0xf6,0x5a,0x3c,0x7e,0xef,0x3f,0x5c,0x11,0x09,0xfe,0x26,0xfb,0xff,0x30,0xcb,0x81,0x12,0xea,0x1e,0xa9,0x6e,0xf8,0xea,0x4f,0x92,0x2c,0x23,0x99,0x35,0xa5,0x59,0xca +.byte 0x1d,0x66,0x72,0xad,0x5b,0x7c,0xb3,0x4a,0x7c,0x76,0x4c,0xf6,0xc1,0xec,0x68,0x5f,0x2c,0x17,0xbe,0x92,0xe1,0xa1,0xee,0x40,0x24,0x25,0x6b,0xc5,0x0b,0x6f,0x06,0xc0,0x05,0x8c,0x23,0x24,0x76,0xea,0xe9,0xb9,0xa1,0x3d,0x59,0x15,0xe7,0x65,0x47,0x5a,0x75,0x9b,0xc8,0x7b,0x86,0x97,0xf4,0x4a,0xa3,0xec,0x54,0x0e,0x66,0xef,0xda,0x41 +.byte 0xb8,0x3b,0xa6,0x86,0x63,0xe1,0x4e,0x89,0x92,0x40,0xf4,0x8b,0x32,0x47,0x3b,0x4b,0xb4,0xe6,0xd8,0x4b,0x1c,0xac,0x03,0xab,0xde,0x2e,0x63,0x96,0x3f,0x27,0xa1,0x32,0x11,0x35,0x24,0x6a,0xe9,0x0b,0x73,0x61,0x4e,0xd8,0xdc,0x91,0x98,0x01,0x8a,0x0d,0x61,0xec,0x39,0xbe,0x3b,0xb9,0x78,0x77,0xea,0xaa,0xa2,0x12,0x20,0x92,0x98,0x16 +.byte 0x27,0x3b,0xd1,0xfa,0x59,0xef,0x81,0x38,0x9f,0x42,0xe8,0xb4,0xab,0x4f,0x26,0x9a,0xe7,0x0b,0x05,0x03,0xfa,0xe1,0xe1,0x3d,0x45,0xac,0x7d,0x40,0xcc,0x2f,0xf2,0xb0,0x33,0x42,0x14,0xbd,0x91,0x3e,0xe1,0xb7,0x17,0x25,0xc3,0x92,0xcb,0x9e,0x44,0x1e,0x13,0x93,0x98,0x1f,0x96,0x64,0x3a,0xaa,0x53,0x9a,0x18,0xc0,0x34,0x3c,0x47,0x94 +.byte 0x14,0x70,0x67,0x76,0x2a,0x82,0xd3,0x6a,0x18,0x13,0xe7,0x01,0x8d,0x97,0x52,0x51,0x8e,0x08,0xde,0x44,0xb0,0x74,0x07,0x58,0x35,0xc2,0x29,0xb5,0xd7,0x00,0x46,0x31,0x34,0xd7,0x1f,0xdd,0xaa,0x5c,0x27,0xc7,0x37,0x71,0xe8,0xbe,0xad,0x89,0xf1,0xb2,0xd1,0x46,0x33,0x0c,0x2f,0x26,0x21,0x5e,0xc9,0xda,0x25,0xcd,0xd0,0x17,0x23,0x87 +.byte 0x15,0xc2,0xa0,0x1a,0x9f,0x6e,0xfb,0x63,0xe9,0x69,0xdf,0x79,0x18,0x33,0x2f,0x47,0xca,0x54,0x23,0x7e,0x4f,0x6e,0x38,0x06,0x99,0xfb,0xcd,0x22,0xdb,0x4b,0x3f,0x8a,0x05,0x2e,0x5c,0x56,0x65,0xb7,0xab,0x57,0x8b,0xdd,0x28,0xab,0x7e,0x77,0x32,0x0f,0xc6,0x3c,0xf3,0xde,0x43,0xb0,0x13,0x3b,0xbd,0x28,0x3a,0x8b,0xd5,0x6b,0x1d,0x5d +.byte 0x20,0x1a,0x5f,0xa6,0x01,0xed,0x88,0x7f,0x87,0x55,0x38,0xc2,0x0d,0x03,0x6c,0x41,0x6a,0x43,0xdf,0x09,0xf3,0x58,0x69,0x13,0xa1,0xd6,0x39,0x0c,0x8e,0x8f,0x40,0x67,0xe8,0x0e,0x9b,0x9b,0x42,0x30,0xd7,0xae,0x04,0x75,0x66,0xfb,0x4a,0xa7,0xe0,0xe9,0xea,0x6d,0x28,0x4f,0xc0,0x5c,0xd4,0xd4,0xb7,0x60,0x5a,0x35,0xc1,0xe8,0x5f,0xc3 +.byte 0x4f,0x7a,0x5d,0x8d,0xc2,0x29,0x6e,0x36,0x50,0x5b,0x82,0x63,0xf2,0xda,0x8d,0x02,0x61,0x09,0x69,0x0a,0x47,0x9d,0x58,0xf3,0xf6,0xe0,0xc0,0x09,0xd9,0x3b,0x8d,0xf5,0xba,0xf6,0xc4,0xf0,0x65,0x89,0x7b,0xdd,0x93,0x6b,0x6e,0x21,0xa1,0x2a,0x66,0xe0,0x8f,0x62,0xb0,0x49,0x60,0xa3,0x48,0x42,0x62,0xcc,0x26,0x1f,0x59,0x3a,0x7b,0xa7 +.byte 0x82,0x10,0x5f,0xc6,0xf8,0xa2,0xc0,0x07,0x7b,0x26,0x26,0x11,0xe2,0x5b,0xb8,0x86,0xb7,0x66,0xcf,0x0a,0xcc,0x6f,0xe8,0x02,0x22,0x4c,0x13,0x75,0xdc,0x68,0xf0,0x7c,0x0c,0x46,0x9a,0xa2,0x4c,0xf5,0x50,0x3f,0xf9,0xbc,0x01,0xb1,0xa1,0x28,0x90,0x07,0x6b,0x17,0x69,0x89,0x7b,0xe5,0x0a,0xf7,0x7b,0xe1,0x94,0x30,0xfc,0xd3,0x8d,0xd3 +.byte 0x99,0x37,0x91,0xd5,0xdf,0x59,0x2a,0x4f,0xfe,0x6c,0x37,0x4b,0x78,0x2c,0xa9,0x28,0x6a,0x5c,0xd6,0xe1,0x0b,0xad,0xae,0x62,0x7c,0x09,0xb8,0x90,0x3f,0x29,0x37,0x7b,0x79,0xee,0x55,0x02,0x05,0xef,0x28,0xa2,0xc7,0x07,0x2b,0xe6,0xab,0x87,0x9d,0x8f,0x4c,0x0f,0xc1,0x75,0x5d,0x88,0x7f,0x26,0xe0,0x1e,0xf8,0x3f,0xb5,0x2a,0x6c,0xe6 +.byte 0x7f,0x85,0xae,0x55,0x7b,0x58,0x34,0x4c,0x81,0x05,0x21,0xa1,0x5e,0xd7,0xb6,0x20,0x6e,0xf9,0x60,0x15,0xa4,0xb2,0x8f,0x68,0xd2,0x23,0x9f,0xbf,0xfa,0x6a,0xcb,0x87,0x7d,0x41,0x4a,0xae,0x28,0x4f,0x9e,0xbb,0x69,0x1c,0x37,0xb2,0xc9,0xd2,0x21,0xa1,0x2b,0x6b,0x5d,0xff,0xd6,0xdb,0x8f,0x21,0xd9,0x17,0xd6,0xe6,0x74,0xf2,0x20,0x0e +.byte 0x06,0xb5,0x0c,0xdc,0x74,0x4e,0x93,0xcb,0x27,0xc7,0x4b,0xf3,0xef,0x46,0xa8,0xf0,0x58,0x1c,0xa0,0x65,0x09,0x84,0xc7,0x2e,0xba,0x51,0xd9,0xd4,0x53,0x20,0xc7,0x20,0x85,0x93,0x2b,0xf3,0x42,0x93,0x7b,0x22,0x1c,0x8d,0x22,0x76,0xcf,0xde,0x6a,0xa1,0x76,0xea,0x65,0x20,0x2f,0x2e,0xdb,0x85,0xdd,0x73,0x43,0xf8,0xe0,0xe3,0x3a,0xe5 +.byte 0x02,0x57,0x96,0x54,0xbc,0xaf,0xa4,0xd5,0xda,0x9d,0x9d,0x8b,0x85,0x01,0x7c,0x72,0x03,0xfe,0x39,0x46,0xab,0x04,0xcc,0x62,0x71,0xf5,0xa5,0x67,0xd7,0xfc,0xc0,0xb6,0x95,0x74,0xdf,0x1c,0xfe,0x1c,0x5b,0x25,0xae,0x42,0x75,0x00,0x71,0x3c,0xec,0xfc,0x3c,0x7b,0x0f,0xec,0x44,0xc7,0xec,0x9b,0x86,0xf5,0x3d,0x47,0x15,0xf0,0x25,0xba +.byte 0x43,0xc8,0x68,0x15,0x4f,0xeb,0x35,0x76,0x2d,0x04,0xb7,0x9b,0xb8,0xa7,0x0d,0xb3,0xb4,0xf2,0x93,0x85,0xb1,0xb8,0x81,0x7c,0xd6,0x5f,0xbd,0xc2,0xcc,0xf4,0x0e,0x98,0x2c,0x06,0x54,0x2f,0x5e,0x49,0x94,0x93,0x78,0xa0,0x0a,0x33,0x2e,0x3f,0xb2,0xa7,0x81,0xed,0xe9,0xb6,0xb5,0x86,0x4b,0xa5,0xc0,0x51,0x30,0x9d,0xe2,0x9f,0xc2,0x56 +.byte 0x92,0x6b,0x96,0xca,0xcb,0x65,0x5c,0x0e,0xf4,0x91,0x2b,0x89,0xf4,0x27,0x55,0x26,0xd7,0x7b,0x00,0x19,0x1f,0x67,0x4e,0x43,0x24,0x81,0x05,0xb7,0xc6,0x41,0x1a,0x39,0x3d,0x40,0x3e,0x8a,0x03,0x94,0x63,0x1b,0xb1,0x87,0xb6,0xe1,0x52,0xd0,0xe8,0xbb,0x0e,0x37,0x72,0xe5,0xde,0x86,0xc0,0xdf,0x5b,0xc2,0xc6,0x0a,0x67,0xa7,0x4c,0x03 +.byte 0xb6,0xd8,0x7f,0x1d,0xb3,0xe3,0x84,0xb7,0x5c,0x04,0x15,0xe0,0xd0,0xae,0x44,0xac,0x39,0xa5,0xa2,0x86,0xc8,0xad,0x27,0xa0,0x36,0xa1,0x6e,0xaa,0x87,0x7a,0x43,0xae,0xa0,0x45,0x1a,0xac,0x04,0xe2,0x55,0xf2,0x9a,0x97,0x67,0xfb,0x01,0x8f,0xb8,0x80,0x9c,0x27,0x1d,0xbe,0xa3,0xf1,0x6d,0x66,0xf2,0x1a,0x99,0x99,0xf6,0xa5,0xba,0x58 +.byte 0x28,0x58,0xb5,0x44,0x5b,0x38,0x4a,0x3f,0x37,0x85,0x7e,0x36,0x8e,0x16,0xb9,0x1e,0x0b,0xbf,0x7d,0x0a,0x0c,0x83,0x53,0x0d,0xcc,0x37,0xe1,0x42,0xbb,0x0d,0xfc,0x01,0x25,0x10,0xbe,0xb5,0x83,0x2f,0xa5,0x42,0x98,0xbc,0xd6,0x50,0x75,0xda,0x32,0x2b,0x3f,0xd6,0xc1,0x1a,0xe7,0x0b,0x80,0x07,0x6f,0xfe,0x77,0x9e,0xe9,0x1e,0x45,0x65 +.byte 0x68,0x92,0x34,0x8b,0xce,0xf3,0xcd,0x94,0x17,0xe0,0x41,0x92,0x96,0xb5,0xd1,0x98,0xd1,0x25,0xd1,0x3d,0x76,0x88,0x86,0xb1,0x01,0x80,0xc7,0xde,0x60,0x20,0xb8,0x03,0xe7,0x3f,0x44,0x39,0xb1,0xb8,0x19,0x53,0x5a,0xc6,0xa0,0x18,0x8e,0x0e,0xb6,0xfd,0x7e,0xe7,0x7e,0x8a,0xeb,0x4c,0x35,0x4a,0x0f,0x52,0x81,0x68,0x12,0xe4,0x46,0x2e +.byte 0x20,0xb4,0x41,0x59,0xb3,0x16,0x02,0x9f,0xdb,0xe8,0xea,0xfd,0xe3,0x5d,0x14,0xd0,0x97,0x52,0x66,0xcb,0xb4,0x48,0xa3,0x05,0xab,0x73,0x8e,0x2c,0x46,0xc2,0x94,0xd5,0xc8,0x57,0xc4,0x13,0xa4,0x0b,0x7c,0x34,0xbf,0xb4,0x07,0x28,0x92,0xe2,0x1d,0x00,0xa6,0xf0,0xb0,0xbf,0xdd,0x5d,0x20,0x05,0x9f,0x53,0xcf,0x07,0xf7,0xe8,0x79,0x04 +.byte 0x57,0xd1,0xac,0x9c,0xdd,0xae,0xcd,0x8b,0x04,0x0a,0x2d,0x0a,0x0f,0x21,0x09,0xc8,0x0d,0xfa,0x23,0x26,0xe3,0xdb,0x84,0xc8,0x8e,0x9c,0x96,0x93,0x4f,0xcc,0x2f,0x96,0xed,0x04,0x91,0x0d,0xc7,0xbb,0x27,0xa3,0x6b,0x9d,0xe2,0x15,0x83,0x31,0x78,0xb5,0xb9,0x6d,0xb1,0x6c,0xa2,0x3e,0xf5,0x45,0x77,0xf4,0x96,0x3a,0xe6,0x10,0x08,0xfd +.byte 0x23,0xcc,0xda,0x27,0x73,0x67,0xbb,0x8b,0x59,0xe2,0xcf,0xda,0x57,0xf9,0x17,0xeb,0xeb,0x98,0x39,0x48,0xbf,0x3d,0x5b,0x7b,0xc2,0x11,0x4b,0xd6,0xb6,0x8a,0x14,0xb3,0xf5,0xc3,0x18,0xff,0xde,0x62,0x98,0x4a,0x1d,0x6b,0x4e,0x00,0x4f,0x7d,0x2f,0x67,0xf4,0x22,0x1e,0xdb,0x69,0xd5,0x87,0xfd,0xee,0x97,0x56,0xd4,0x00,0x0c,0x9e,0x22 +.byte 0x11,0xda,0x8e,0x3b,0x91,0xad,0xf1,0xb6,0x0a,0xba,0xe7,0xc6,0x14,0x0e,0xc4,0x85,0x5f,0x7d,0x69,0x7d,0x73,0x9c,0x83,0x6a,0x69,0xef,0x10,0xb0,0xe6,0x33,0x32,0x0f,0xd8,0x54,0xa4,0x9d,0x39,0xaf,0xfc,0x6d,0x4f,0xeb,0x34,0x89,0x2e,0xb0,0xa1,0xcd,0xe1,0x5b,0xab,0xe1,0xff,0x82,0x85,0x6b,0x5e,0xa9,0x9e,0x43,0x02,0x0d,0x38,0x33 +.byte 0xe1,0xbc,0xa4,0x77,0x8a,0x5e,0x54,0xa8,0xcf,0xc9,0x76,0xcb,0x73,0x21,0x1f,0xa7,0x1e,0x5c,0x0a,0xd6,0xa2,0x36,0x6f,0x07,0xa1,0x6b,0x0d,0x5a,0x21,0x3a,0xc3,0xc0,0xcd,0x9d,0xed,0x83,0x96,0x89,0xaa,0x55,0x56,0xfd,0x0a,0x97,0x3a,0x50,0xfd,0x95,0x3f,0xb7,0xfa,0x87,0x7d,0xa6,0x5d,0x12,0x65,0x3f,0x61,0x4f,0x86,0xdd,0x58,0x64 +.byte 0xd7,0xde,0xd6,0xb9,0x68,0x87,0xde,0xba,0x96,0xf5,0x1c,0xec,0x8e,0x81,0xfc,0xca,0x77,0xe2,0x85,0x11,0x93,0xc7,0xf2,0x0f,0x77,0xbb,0x7c,0xed,0x20,0x7a,0xe3,0xc5,0x76,0xff,0x04,0xc7,0xe6,0x7a,0xa1,0xfe,0x58,0x52,0x1b,0xec,0x27,0xbb,0xd4,0x27,0x7c,0xc7,0x4a,0xfb,0x07,0x62,0x99,0x36,0xff,0x6e,0x71,0x2f,0xbd,0x25,0xff,0x8d +.byte 0x97,0x14,0x56,0x23,0x7f,0x13,0x89,0x10,0xd8,0x29,0x1f,0x91,0x56,0x52,0x85,0xa7,0xd3,0x04,0xc9,0xe2,0x09,0xa2,0x0f,0xaa,0x28,0xb1,0x79,0xf9,0x08,0xf4,0x14,0x57,0xc4,0x54,0xd7,0x69,0xb0,0x37,0xf0,0x80,0x90,0xce,0x75,0x81,0xe7,0x75,0x0f,0x7f,0x71,0x58,0x3b,0x78,0x53,0x9b,0x4a,0x5e,0xcc,0x23,0x04,0x9e,0x0c,0xd7,0xd8,0x69 +.byte 0x90,0xdf,0x36,0x99,0x90,0xd3,0xfa,0x35,0xf7,0x13,0x64,0xb0,0xc0,0x70,0x0c,0xd4,0x87,0xc0,0xca,0xd8,0xca,0x8a,0xc3,0x9a,0xfa,0x73,0x34,0x18,0xe9,0x3a,0x85,0x42,0xc5,0xe1,0xaa,0xb5,0x87,0xac,0x43,0x9c,0xfa,0x7e,0x05,0x35,0xed,0x7e,0x0d,0x38,0x82,0x17,0x7f,0x22,0xa2,0x3d,0xd3,0x0d,0xd1,0xff,0x0a,0x68,0x52,0xd2,0x17,0x59 +.byte 0xaa,0x57,0xbd,0xd3,0xea,0x0c,0xe8,0xb0,0x22,0x13,0x59,0x42,0x46,0x34,0x58,0xa9,0x16,0xc5,0x9f,0x88,0x8f,0x75,0x02,0xbf,0x63,0xda,0x28,0xba,0x9a,0xcf,0xbb,0x73,0x58,0xb1,0x13,0xf2,0x68,0xd8,0x6b,0xfd,0x49,0x50,0xcf,0x09,0xea,0x6a,0xff,0x20,0x39,0xc5,0xae,0x70,0x79,0xea,0xec,0x9d,0x09,0xf8,0x51,0x1f,0xfd,0x01,0xd5,0x9f +.byte 0xec,0x29,0x36,0xfc,0x39,0xb4,0x4c,0x1f,0xe6,0xb4,0xcc,0x97,0x21,0xe5,0x19,0xe9,0x7a,0x60,0x6d,0x39,0x3c,0x31,0xd4,0x43,0x76,0xba,0x10,0xd9,0x3f,0x75,0x7a,0xa6,0x1d,0x02,0x88,0x3d,0xa5,0x9f,0x91,0x61,0x4e,0x32,0xec,0xf5,0xd3,0xe4,0x65,0xf7,0x0e,0x3b,0x8a,0x8f,0x22,0x31,0x71,0x8f,0xf1,0x5f,0x7b,0x04,0x88,0xf9,0x88,0x67 +.byte 0x14,0x85,0x74,0x9e,0x54,0x0b,0xed,0x7a,0x48,0xcd,0xcf,0xd2,0x05,0x38,0xd5,0x58,0xa2,0xaf,0x6a,0x28,0x21,0xfd,0x38,0x4e,0x83,0x06,0x15,0x60,0xfb,0x89,0x2a,0x72,0xfe,0x75,0xc7,0xa4,0xae,0xe4,0x5b,0xbb,0xde,0x54,0xde,0x77,0xbb,0x9d,0xd2,0x07,0x05,0x61,0x53,0x65,0x31,0xd4,0x3a,0x8a,0x7d,0x9d,0x30,0x09,0x25,0x28,0x72,0x19 +.byte 0xe4,0xae,0x1d,0xbf,0xa7,0xef,0x75,0xd0,0xe3,0xdc,0x0b,0xd1,0x17,0x9c,0xc6,0xdf,0x65,0x9a,0x7c,0x9d,0x0b,0x9a,0x3d,0x8f,0xb0,0xf5,0x51,0x46,0x6b,0x12,0x0d,0xe6,0xa9,0x3a,0xb5,0xe9,0x52,0x85,0xa5,0x25,0x1f,0xc9,0x8b,0xff,0xe3,0x37,0x25,0x97,0xd8,0x91,0x17,0xed,0xcf,0x2a,0x6d,0x4f,0xef,0x74,0x5e,0x92,0xa2,0x2d,0x84,0xa6 +.byte 0x09,0xc4,0xfc,0x36,0x95,0x54,0x25,0x9e,0xeb,0xd9,0xea,0x5a,0x01,0x0c,0x54,0xdb,0x82,0x01,0xed,0x0b,0xf7,0x9f,0x0d,0x8f,0x2e,0xee,0x7c,0x6e,0xb3,0xe7,0xe8,0x04,0xef,0x8d,0x5e,0xfe,0x3d,0x96,0x3a,0x65,0xd3,0xb2,0x11,0x75,0x1c,0x6f,0x2a,0xd3,0x26,0x1f,0x5f,0x35,0x02,0x0b,0x9f,0x38,0x5b,0xa5,0x3a,0x90,0x3e,0x03,0x9f,0x50 +.byte 0xf2,0xd7,0xe4,0x3c,0xd3,0x28,0x67,0x0a,0x5a,0xe8,0x59,0x6f,0x38,0x8f,0x8b,0x0d,0xe4,0x1c,0xfc,0x6e,0x07,0x69,0x7b,0xfb,0x04,0x30,0xe7,0xa6,0x13,0xfb,0x33,0xa0,0x52,0x6a,0xec,0x64,0xad,0x90,0xbd,0xba,0x15,0x12,0x48,0xed,0xd1,0x94,0x2d,0xe7,0x19,0x28,0x5e,0x7a,0x94,0xf4,0x79,0xd7,0x79,0xc9,0xf6,0x16,0xb4,0x88,0xee,0x15 +.byte 0xa2,0x68,0xe3,0x1d,0xd0,0xd2,0x63,0x78,0x7c,0xb3,0x30,0xac,0x63,0x7a,0x36,0xc5,0x50,0xbf,0x57,0xf6,0xfe,0x4e,0x43,0x4e,0xf9,0xc4,0xa2,0x2a,0xa7,0xa4,0x2c,0x18,0xb9,0x43,0x7b,0xe8,0xf6,0x14,0x4f,0x07,0x6e,0x65,0x9a,0xdd,0x10,0x2a,0x4c,0xa4,0x58,0x86,0x19,0xad,0x6d,0x5e,0x30,0xfb,0x5f,0xb6,0x9f,0x2a,0xac,0x90,0x0d,0xae +.byte 0xf9,0xab,0xc1,0x33,0xd3,0x73,0x1d,0x46,0xe5,0xc8,0x1e,0x1d,0x61,0xf1,0xda,0x53,0x3e,0x61,0xf0,0x9a,0xe4,0xb7,0x04,0xe9,0x5e,0xf6,0x11,0xa6,0x56,0x39,0xed,0xfb,0x06,0xd0,0x92,0xb9,0xb8,0xb5,0x3b,0x39,0xec,0xa5,0xc0,0xb1,0x7e,0x7e,0xfb,0x89,0x86,0xa8,0x70,0x47,0xa5,0x60,0x8c,0xf8,0x47,0x31,0x04,0x54,0x29,0xf3,0xa2,0x79 +.byte 0xac,0x24,0xda,0x33,0x6c,0x1c,0x34,0xc2,0xa0,0x96,0x27,0xbb,0x31,0xbf,0xc1,0xd9,0xc8,0x35,0xbc,0xb3,0x13,0x8a,0xb6,0x25,0x92,0xdc,0xcc,0x3b,0x8a,0x65,0xf3,0xf9,0xd1,0x2a,0xcd,0xb0,0xf4,0xd7,0x44,0xa0,0x27,0xfc,0x0e,0x69,0x46,0x0b,0x56,0x5b,0x58,0x40,0xd9,0xc4,0x37,0x9b,0x4d,0xa1,0x45,0xd8,0xab,0x4d,0x02,0x31,0x4f,0x93 +.byte 0x56,0xd0,0x26,0x99,0x1c,0xc7,0x2b,0xc2,0x80,0xb4,0xbd,0x6e,0xfe,0xa1,0xf7,0x8f,0x13,0x74,0x2c,0xa8,0x63,0xb1,0x3d,0x6d,0x32,0x4a,0x80,0x6a,0x7f,0xcf,0x6c,0x51,0xa9,0x21,0x34,0x4e,0x13,0x19,0x8f,0x33,0xfc,0x06,0x46,0x05,0xf0,0xcf,0xf1,0xce,0x20,0xe0,0x40,0xf2,0x0a,0xd0,0xf6,0xcc,0xcc,0xc2,0xc7,0x07,0x2e,0x9e,0x0a,0x1e +.byte 0x53,0x59,0xbb,0xe3,0x02,0xc8,0x20,0x9f,0x3c,0xe6,0xec,0xf7,0x8a,0x6d,0x3c,0x0f,0xb3,0x14,0x66,0x5c,0x51,0xbe,0x82,0xc2,0x0b,0x10,0x63,0xa9,0xd4,0x7f,0x12,0x88,0x13,0x81,0x8a,0x06,0x8a,0x7f,0xc8,0x89,0xe7,0xbd,0xce,0x51,0xdc,0x93,0x03,0x07,0x6f,0x8c,0xe6,0xcc,0x0d,0x45,0xa8,0xfc,0x02,0xe2,0x3e,0xa7,0xc8,0x83,0x77,0x98 +.byte 0x91,0x4e,0x1f,0x8d,0xed,0xa5,0x38,0x54,0x0e,0x4e,0x53,0x1c,0x0c,0x47,0x11,0x59,0x54,0x15,0xb5,0x47,0xb0,0x21,0xa1,0x3d,0xaa,0xef,0xee,0x9e,0x26,0x3c,0x39,0x75,0xff,0x1a,0x8c,0xbb,0x1a,0x49,0x62,0x21,0x76,0xe8,0x3d,0x10,0x55,0xf5,0x5a,0x44,0xf0,0xb3,0x81,0xd0,0x35,0x96,0x95,0x63,0xf7,0x50,0xb1,0xa0,0xf0,0x29,0x97,0xc9 +.byte 0x27,0x73,0xd8,0x29,0xef,0x74,0xd2,0x6d,0xf4,0xfb,0x72,0xa9,0x4f,0x12,0xd5,0xfd,0xc9,0xba,0xf0,0xbd,0xfd,0x5e,0x5c,0xfa,0x53,0xe3,0x96,0xab,0x57,0xc3,0xb6,0xe8,0x0e,0x43,0xe4,0x77,0x97,0x04,0x69,0xff,0x72,0xd0,0xd8,0xab,0xb9,0x19,0x25,0x89,0xf7,0xbb,0x01,0x03,0xf2,0xc6,0x8d,0xd5,0x86,0xe3,0xfe,0x9c,0xff,0x78,0xd7,0xfc +.byte 0xda,0xd4,0x69,0x8e,0xd6,0x31,0xfb,0x15,0xd3,0x38,0xfd,0x53,0xe2,0x4e,0xce,0xcc,0xfe,0x17,0xc5,0x88,0x92,0x28,0x98,0xb7,0xcf,0x7b,0x53,0x7b,0x96,0x14,0xaf,0xeb,0x5b,0x2d,0x16,0x41,0xcc,0x7b,0x65,0xe1,0x73,0x81,0x4e,0x8f,0xc3,0xad,0xe1,0x3f,0x0c,0xa7,0xbe,0x38,0xed,0x02,0x67,0xf5,0xfa,0x1d,0xb0,0xd5,0x4c,0xe1,0xd8,0x62 +.byte 0xc9,0xb5,0xf8,0x84,0xc4,0x51,0x57,0x14,0x11,0xf8,0x7d,0x1d,0xe7,0x81,0x85,0x61,0xa9,0x9f,0xc8,0x45,0xb9,0x2d,0x8a,0xc9,0xa3,0xfe,0x5a,0xf9,0xe0,0x1c,0x80,0xd8,0x77,0xaa,0x85,0xca,0x93,0x9a,0x2e,0x10,0x03,0x71,0x3d,0xb1,0x2a,0x64,0x2e,0xad,0x64,0xba,0x5c,0xaa,0x8a,0xc2,0x2a,0x80,0x28,0x2e,0xf9,0x93,0xe1,0x71,0x72,0xae +.byte 0xda,0xd8,0x4f,0x4c,0xec,0xb5,0xe3,0x05,0x10,0x5f,0x4c,0xe6,0xe1,0xf4,0x07,0x63,0x75,0x6f,0xc5,0xf9,0xcd,0xfc,0xfc,0x35,0x2f,0xe4,0xca,0x4b,0xfc,0xc3,0x20,0x8b,0x5c,0x4a,0x3c,0xf8,0x92,0xca,0x2b,0xb0,0xce,0xd9,0x4b,0xf0,0x44,0xcb,0x4e,0x83,0xf3,0x9d,0xb0,0xd4,0xab,0xba,0x2a,0x76,0xaa,0x87,0xcd,0xa2,0xd1,0x3f,0xa0,0xb9 +.byte 0xdb,0x7e,0x67,0x2d,0x92,0x4c,0xeb,0x3c,0xa6,0x8c,0x62,0x80,0x18,0x78,0x2b,0x9d,0x8f,0x5e,0xc3,0xa5,0x3b,0x10,0xb3,0x8a,0x3b,0x00,0x96,0xb2,0xab,0xce,0x8d,0xff,0x3c,0xee,0xeb,0x4f,0xfb,0xab,0x96,0x38,0x4c,0x15,0x6e,0x7c,0xf3,0x31,0x5f,0x8f,0x99,0x88,0x52,0x48,0x8b,0x71,0x1b,0x31,0x3f,0x7c,0xe4,0xae,0x9c,0x7b,0xeb,0x64 +.byte 0xe3,0x80,0xd4,0x56,0x9a,0x6a,0xd9,0xca,0xc5,0xf0,0x86,0xe7,0xda,0x80,0x8f,0x17,0x61,0xca,0x24,0x0b,0xb6,0xf9,0x24,0xc5,0x7a,0x28,0x42,0x32,0x7f,0x2b,0xde,0x44,0x30,0xed,0x69,0x63,0x07,0x3f,0xca,0x7b,0x02,0xea,0x6e,0xef,0x27,0x1d,0x76,0x32,0xc2,0x81,0x3d,0x03,0x9a,0xe7,0x0d,0x28,0x07,0x03,0x0c,0x65,0x73,0x58,0x26,0xc6 +.byte 0xfe,0xcc,0x33,0x7f,0x33,0xad,0xea,0x81,0x05,0xcc,0x61,0x1e,0x78,0x69,0x70,0xc9,0x1f,0x6e,0x4f,0xb8,0x19,0x42,0x03,0x03,0x9d,0x56,0x87,0x0e,0x9a,0x32,0x3a,0xba,0xb9,0x11,0x66,0x9f,0x4d,0xd1,0xb0,0x11,0xbf,0x46,0xfc,0xcf,0xe5,0xef,0xf1,0x61,0xeb,0xad,0x31,0x7c,0x0d,0x66,0x0d,0xa9,0x1f,0xe4,0xf9,0x80,0x9e,0xae,0x9e,0x34 +.byte 0x1e,0x95,0x6c,0xa2,0x77,0x69,0x84,0x77,0xb7,0xe8,0xca,0x1f,0xea,0xc1,0x34,0xe6,0x0d,0x4f,0xba,0x77,0x2b,0x8c,0xbe,0xff,0xc4,0x06,0xa3,0xb6,0x1a,0xbe,0x55,0x99,0x57,0x6f,0x54,0x24,0x93,0x7a,0x0d,0x52,0xd6,0xbb,0xd2,0x9c,0xd5,0x76,0x6a,0x22,0x66,0xdc,0x43,0x9a,0x7b,0x1b,0x11,0x80,0x02,0x0c,0x8f,0xc6,0xc6,0x02,0x42,0x29 +.byte 0x00,0xc4,0xb2,0xa1,0x6a,0x7f,0xa9,0x60,0x8d,0x41,0x4f,0xd3,0xde,0x33,0x5a,0x44,0x31,0xb0,0xdc,0xc0,0x0c,0x31,0x03,0x96,0x71,0x0a,0xce,0xe3,0x0b,0xc7,0xe3,0x5d,0xe0,0x88,0x4b,0xfd,0x4c,0x1a,0xce,0xaa,0x89,0xc6,0x99,0xa8,0xd3,0x1e,0xe9,0x6c,0x2a,0xbd,0x26,0x81,0x03,0x6a,0xf2,0xf2,0x0f,0x1e,0x9d,0x8a,0x59,0x45,0xbf,0x6d +.byte 0xb7,0xc8,0xec,0x77,0xb0,0x70,0x1a,0x31,0x21,0xeb,0x25,0x12,0xff,0x13,0x33,0x6b,0x47,0x34,0xd8,0x66,0x11,0x8a,0xc9,0x93,0x5b,0x2c,0x55,0x42,0xb2,0x9b,0x60,0xc6,0xba,0xab,0x12,0x12,0x5d,0x0a,0xd4,0x54,0x79,0x17,0x6d,0x31,0x7d,0x4f,0xf2,0x94,0x16,0x65,0x62,0x38,0x76,0x3a,0x7d,0x55,0x05,0xd9,0x17,0x45,0x62,0xb4,0x1d,0x31 +.byte 0x34,0x40,0xd3,0x8e,0xf9,0x29,0x4d,0x3f,0x93,0x9a,0x2e,0xa4,0x75,0x66,0xf6,0x62,0x8f,0xf9,0x8d,0x79,0x4b,0x51,0x7e,0xfb,0xeb,0x9a,0x86,0x96,0x01,0x79,0xbe,0xe4,0x42,0xb3,0xc8,0x28,0x9e,0xed,0xa8,0xb6,0x6d,0xd3,0x31,0xed,0x30,0x9e,0x6a,0x5b,0x02,0x4b,0xbd,0xb3,0xf2,0xf0,0x9d,0x50,0x09,0x40,0x71,0xfe,0x4b,0x91,0xc9,0xd6 +.byte 0x07,0x87,0x9e,0xdb,0xa9,0xcd,0x0b,0x95,0x18,0x5a,0x55,0x10,0xaa,0xe1,0x70,0xe9,0x2e,0xc2,0x31,0x6b,0x48,0x84,0x2f,0xe5,0x7b,0xdd,0x4c,0x03,0xed,0xb6,0xb6,0x64,0x24,0x38,0x7a,0x5a,0x15,0x35,0x9d,0x66,0x08,0x4d,0xa6,0x3c,0x96,0x1a,0xcd,0x02,0x61,0x40,0xde,0xac,0xc3,0x15,0x8c,0xca,0xe6,0x62,0xe9,0x61,0x68,0xf6,0x60,0xd3 +.byte 0x7e,0x5f,0x44,0xcf,0x09,0x01,0x60,0xc2,0xb1,0xfc,0x2f,0x41,0x4c,0xc1,0x06,0x72,0xcc,0xde,0x25,0xe0,0x8c,0x34,0xb8,0xe0,0xb2,0xeb,0x05,0x5d,0x9e,0x7e,0xf7,0x1e,0x24,0xcd,0x1b,0x14,0x3f,0x1b,0x13,0xc0,0x64,0x38,0x43,0x95,0xba,0x7b,0x61,0xa0,0xdc,0xe0,0xf5,0x80,0x13,0xa1,0xc5,0x48,0x92,0xc5,0xd5,0xd0,0x87,0x0c,0x73,0xae +.byte 0xe2,0xb3,0xe8,0x70,0x4a,0x7e,0xa0,0x13,0xc3,0xc6,0x9c,0x77,0x51,0xca,0x88,0xcf,0xe0,0x1e,0xff,0x6c,0xe2,0xc3,0x33,0xce,0x7f,0x3e,0x7d,0xd5,0x37,0x23,0x09,0xb7,0xbd,0xb7,0xec,0x9a,0x29,0xd6,0x4f,0xea,0x79,0x24,0x4c,0x09,0x74,0x9c,0x97,0x3b,0x08,0x1f,0x82,0xcc,0xae,0xc4,0x3f,0xcf,0xc6,0xcb,0xaf,0x8c,0x89,0x15,0x79,0xeb +.byte 0x88,0xb9,0x03,0xab,0xc6,0xf8,0x6e,0x54,0xde,0x50,0x6e,0xcf,0x8a,0x4b,0x3f,0x64,0xd0,0xcb,0x69,0xc2,0xe3,0x40,0x4a,0x94,0xe2,0x04,0xfa,0x9b,0x4a,0xf6,0x2b,0x93,0x0c,0x0e,0xf8,0x68,0xbc,0x6e,0x6c,0xe6,0xd9,0xb6,0x04,0x40,0xf4,0x60,0xbc,0xc1,0x1e,0x67,0x1f,0xce,0x5c,0x4d,0xba,0x78,0xa8,0xf5,0x96,0x00,0xb9,0x61,0x82,0x65 +.byte 0xb2,0x1d,0x42,0xb8,0x88,0x66,0x43,0xd9,0xfe,0xe0,0x86,0xef,0x5d,0x4d,0xcc,0xeb,0x57,0x9a,0x2b,0x27,0xf2,0xcf,0x68,0xc3,0x05,0x92,0x4d,0x4d,0xb7,0x46,0x7e,0xfd,0xb7,0x4a,0x4d,0x6f,0xac,0xc8,0x8d,0xf2,0xcd,0x52,0xcf,0x91,0x77,0x2d,0x68,0x06,0x7a,0xc9,0xf3,0x17,0xc6,0x8f,0x8f,0xb5,0x8f,0x74,0xfa,0x90,0xcc,0xfc,0xaf,0x4e +.byte 0xd2,0x29,0xd9,0x57,0x71,0xe9,0x52,0xd8,0x50,0xfa,0x4d,0x13,0x7c,0x42,0x15,0x22,0x65,0x26,0x08,0xda,0xaa,0x53,0xcf,0xeb,0xd1,0x87,0xd5,0x7c,0x4e,0x66,0x1c,0x7d,0xc9,0x03,0x59,0xf8,0x09,0x3e,0x1b,0x94,0x4c,0x39,0x56,0xeb,0xfd,0xb6,0xd0,0xf9,0x76,0x8b,0x5d,0x6e,0x44,0x15,0xcf,0x27,0x7f,0x69,0x9a,0x00,0x96,0xbe,0x80,0x5e +.byte 0xbb,0x5a,0x05,0xea,0x15,0xdd,0x44,0x69,0x9e,0x64,0xcd,0xba,0xf2,0x6f,0x67,0x10,0xc5,0xa1,0x75,0x85,0x5f,0xdc,0x61,0x43,0x34,0xc3,0x52,0x06,0xd4,0xe9,0x9f,0xdf,0xd4,0xa6,0x96,0xac,0xb1,0x21,0xdd,0x20,0x46,0x20,0x89,0x5f,0x0e,0x9d,0xa8,0xc7,0x75,0x3a,0x54,0x9e,0x7c,0x3a,0xd5,0xb2,0x68,0x77,0x06,0x1b,0x1c,0xbd,0xb3,0x02 +.byte 0xb5,0xdd,0x87,0x55,0x6b,0x00,0x9f,0x2c,0x30,0xb7,0x4e,0xc3,0x67,0x38,0x37,0x61,0x81,0x68,0xcb,0x14,0x81,0x27,0xd7,0x38,0x18,0x81,0x68,0x45,0xca,0xf4,0xaa,0xae,0x58,0x9e,0xf8,0xbe,0xe9,0x1e,0x05,0x19,0xf0,0xea,0x89,0xf8,0xa1,0x9c,0x7b,0x63,0xc1,0xcd,0x81,0xc8,0x95,0x56,0x81,0x81,0x29,0xb0,0x4d,0xbf,0xe6,0x8d,0xa3,0xb3 +.byte 0xfa,0xae,0x13,0xc8,0xca,0x4d,0x5c,0x5e,0xd9,0x17,0xf8,0x87,0xdb,0x5b,0xe2,0xd9,0xba,0xe3,0xe8,0xdb,0xcb,0x74,0x36,0x7e,0x0e,0x3a,0x94,0x6a,0xe9,0x9e,0x50,0x8e,0xf4,0xd4,0x15,0xb7,0x50,0x60,0x3f,0x14,0x72,0x41,0x9d,0x51,0x63,0x8c,0x31,0x95,0xf2,0xbc,0x14,0xc7,0x64,0x2c,0xee,0x0b,0xe6,0xde,0xf6,0x33,0x85,0x65,0x00,0x54 +.byte 0x54,0x84,0x85,0x94,0x87,0xa0,0xc3,0x95,0x4e,0x74,0xcb,0x2d,0x82,0x9e,0x46,0x7f,0xf5,0x64,0x60,0xfe,0x1a,0x37,0xee,0xa7,0xb6,0x85,0xb5,0x4e,0x30,0x11,0x39,0x4b,0xe9,0x57,0x18,0x3a,0x2c,0x6b,0xb9,0x8e,0x5a,0x54,0xa9,0x31,0xf7,0xe1,0xe0,0xc7,0x52,0xfe,0x76,0x9b,0xc6,0xfe,0xde,0xe0,0xe9,0xf9,0xf6,0x10,0xda,0xef,0x72,0x24 +.byte 0x9c,0xbe,0x4a,0xba,0x58,0x21,0x1b,0xe3,0x1d,0x80,0x10,0x76,0x70,0xde,0x8f,0xf3,0x07,0x93,0x01,0xe0,0xb4,0xd9,0x7d,0x60,0x0d,0x08,0x07,0xa4,0x6d,0x9b,0x2b,0x8c,0x9a,0x58,0x65,0x5e,0x29,0xf1,0x24,0xb2,0x31,0xfb,0xb7,0xad,0xf0,0x50,0x8e,0x25,0x1b,0x75,0xc5,0x82,0x88,0x8c,0x68,0x14,0x2c,0x28,0xa2,0xb6,0x93,0x14,0xe3,0x28 +.byte 0xd0,0x95,0x6f,0x79,0x91,0x03,0x75,0x82,0x5c,0x20,0x46,0x0d,0x53,0x40,0x2c,0x88,0x62,0xa4,0x8c,0xd5,0xf1,0xc1,0xbf,0xde,0x57,0x91,0xb2,0xa6,0x66,0x29,0xf0,0x6b,0xb8,0x5e,0x78,0x5f,0xd1,0x76,0x98,0xf2,0x56,0xc2,0x5f,0x48,0x1f,0xa6,0x98,0xb0,0x87,0x53,0x13,0x1d,0x1a,0xa7,0xdf,0xa5,0xea,0x37,0x12,0x6d,0x64,0x53,0xdc,0x04 +.byte 0x2d,0xb9,0xeb,0x78,0x89,0x7b,0x70,0xd2,0x6d,0x45,0x8d,0x45,0x50,0x57,0xc7,0xb2,0xaf,0xdd,0x72,0x0f,0x9f,0x1b,0x29,0x61,0x68,0xb5,0x4a,0xd4,0xe9,0xd7,0x10,0xe7,0xcd,0xe8,0x22,0xd3,0x54,0x0c,0x0b,0x32,0x77,0x7d,0x3e,0xed,0x6e,0x79,0x4b,0x7b,0x99,0x1f,0x9e,0xbe,0xe7,0x12,0x7c,0x94,0x36,0x1c,0x20,0x8a,0xd0,0xab,0xda,0x95 +.byte 0xf6,0x4f,0xbe,0x6f,0x44,0x0b,0xa3,0x7b,0x4d,0x00,0xf6,0xdf,0x6f,0xc8,0x50,0x9e,0x3e,0x0c,0x1e,0xfe,0xb8,0x39,0x9f,0x83,0x4f,0xb3,0x1f,0x7e,0x53,0x54,0x64,0x04,0xa3,0xf7,0x79,0x01,0x71,0xce,0x18,0x0d,0x47,0x4e,0xae,0x88,0x6a,0xe7,0x26,0x4e,0x59,0xee,0x3a,0x03,0xc2,0x4d,0x0c,0x29,0xf0,0x96,0x9d,0xc0,0xa3,0xb3,0x82,0xf9 +.byte 0xc4,0xf8,0x8b,0xae,0x68,0x47,0x39,0xdc,0x10,0xd7,0x09,0xb4,0x86,0x87,0xfa,0x7e,0x0c,0xe4,0xee,0x3a,0x35,0x1a,0x0e,0x95,0x88,0xce,0xe7,0x9e,0xcc,0xa5,0x58,0x98,0x48,0xbd,0x9c,0x27,0xe6,0xb9,0xf7,0xca,0x66,0xee,0x54,0x87,0xd0,0x6d,0xab,0x31,0x1a,0x57,0x33,0x8b,0x89,0xa0,0xc0,0x18,0x9a,0x87,0x5e,0x58,0x02,0xe5,0x50,0x47 +.byte 0x0f,0x60,0x53,0x9d,0x99,0xe4,0x0a,0xfa,0x4a,0xc3,0x77,0x4b,0x4d,0x4e,0x0c,0xbb,0x68,0xd9,0xb3,0xd3,0x59,0x78,0xdf,0x65,0x97,0x6e,0x22,0x5b,0x24,0x26,0xf9,0x2a,0x14,0x73,0xa7,0xec,0x65,0xfc,0xdf,0x7d,0x35,0x0d,0x44,0x1b,0x4b,0xad,0x6b,0x8f,0x0e,0xa3,0x3b,0x6b,0x40,0xb3,0xe3,0xd9,0x41,0xba,0xbf,0x95,0xbb,0x6e,0x91,0xf6 +.byte 0x63,0xb3,0xde,0xdb,0xc2,0x6f,0xfe,0x00,0xf1,0x53,0x96,0x37,0xa4,0x27,0x48,0x3e,0xf9,0x32,0x23,0x90,0x90,0xe0,0x01,0xde,0x08,0xad,0xc4,0x6c,0x25,0x7a,0x7f,0x2f,0xb7,0xb7,0xc6,0xaf,0xeb,0x91,0x9c,0xa2,0x9c,0xf7,0x7f,0x9f,0x74,0x9b,0x7d,0x54,0x66,0xf9,0xe0,0x73,0xb4,0x15,0x2b,0xaa,0x71,0x50,0xd0,0x74,0x5d,0xcd,0x1c,0x09 +.byte 0x4c,0x80,0xcc,0xdc,0x10,0xd9,0x96,0xb3,0xdc,0x09,0x73,0x1f,0x36,0x4c,0x1b,0x86,0x25,0x13,0x7c,0xd2,0xc6,0x9d,0x5a,0xce,0xd6,0x22,0x97,0x66,0x7b,0x7b,0x84,0xba,0x69,0xd2,0x87,0x9b,0x08,0xda,0x77,0x66,0x90,0xbc,0x7c,0x3c,0x5d,0x43,0x92,0x5f,0x05,0xfb,0x23,0x46,0x88,0xf7,0xa4,0x10,0xbd,0x7d,0x00,0x29,0x2d,0xa5,0x6a,0xab +.byte 0xcc,0xdd,0xcf,0x1e,0x2b,0x9b,0x5f,0xa9,0x94,0x14,0x99,0x6e,0x3b,0x41,0x52,0x61,0x16,0x17,0x44,0xcf,0x5b,0x34,0x5c,0x27,0x29,0x4a,0xc3,0xba,0x9a,0x0c,0x20,0x17,0x2b,0x92,0xd9,0xf1,0x76,0x51,0xd8,0xa5,0x4a,0x4b,0x4a,0x0b,0xe4,0x6b,0x93,0x61,0xc7,0xb3,0x23,0x7a,0x24,0xfa,0x5e,0xee,0x80,0x10,0x65,0x44,0xa5,0xed,0x72,0xd9 +.byte 0x8a,0x06,0x2a,0x86,0xa9,0x26,0x50,0xa1,0xb2,0xb2,0x8b,0x7b,0x4a,0x29,0xf1,0x18,0xef,0xff,0x61,0xf1,0xa1,0x48,0x0f,0x84,0x8c,0xef,0xd8,0x02,0x65,0x44,0x11,0xf2,0xe1,0xba,0x98,0x03,0xbe,0x5a,0x5d,0xb8,0x0a,0x88,0xd8,0x4a,0x49,0x4c,0x70,0xa6,0x98,0x81,0x36,0x56,0x92,0xde,0xcb,0xaf,0x33,0xf5,0x1c,0x0a,0xce,0x7a,0xc0,0xff +.byte 0x24,0x54,0xd3,0x9a,0x0f,0x82,0x76,0xe5,0x0e,0x82,0xb4,0xfe,0xc2,0xac,0xe4,0xba,0xa3,0x4c,0x8a,0x0d,0xa7,0x3e,0x2b,0x71,0x73,0x5f,0xd2,0x35,0xd3,0xae,0xc0,0x3e,0x6f,0x67,0x98,0x51,0xa6,0xdf,0xb2,0xf4,0xd2,0xc1,0x43,0xe2,0x0a,0x7c,0xa0,0xb6,0xff,0xfc,0xc0,0x88,0xe5,0x34,0x20,0x79,0x50,0xc3,0x06,0x5b,0x20,0x9f,0x05,0x33 +.byte 0x22,0x30,0xaf,0xc4,0xc3,0x17,0x09,0xbb,0x30,0x0f,0x42,0xb7,0xc1,0xe0,0x4c,0x71,0xc5,0xf7,0x96,0xb4,0xd4,0x0f,0x44,0x47,0xa3,0x06,0x17,0xbd,0x0f,0x7c,0xc6,0x53,0x07,0x34,0x9a,0x9a,0x2f,0x3f,0x01,0xea,0xdf,0x1c,0x06,0x33,0x15,0x9c,0x5a,0xe3,0x33,0x29,0xce,0x40,0x4b,0xb1,0x99,0xe0,0x80,0x6e,0x0c,0xa1,0x4c,0x34,0x01,0x21 +.byte 0x12,0xbe,0x67,0x26,0xe6,0xdb,0xab,0x8d,0x45,0xdd,0x12,0x60,0x02,0x1a,0xdd,0x85,0xd6,0x33,0x78,0x23,0xe1,0x58,0x2a,0x46,0xf0,0xc2,0x4d,0x71,0x59,0x5b,0x8d,0x65,0xa7,0x97,0xf4,0x71,0x88,0x7d,0x60,0xe0,0x2d,0x2d,0x09,0x2f,0x26,0x15,0xa7,0xbf,0x30,0x0b,0x99,0x08,0xd7,0x85,0xfc,0x0c,0x19,0x31,0xde,0x5e,0x55,0x91,0x13,0x45 +.byte 0x3a,0x6d,0xd0,0x61,0x02,0x81,0xa0,0x42,0x7d,0xd8,0x7d,0x41,0x11,0xd2,0x25,0xb7,0x15,0xa1,0x16,0x3e,0x70,0x77,0x1b,0x80,0xb7,0xf1,0x24,0x8e,0x70,0x8d,0x73,0x6d,0xba,0xf1,0x46,0x32,0x60,0xe4,0xc8,0x4d,0x69,0xc8,0x10,0xf8,0x2d,0x53,0xe1,0x81,0x96,0x20,0x9d,0x59,0x74,0xae,0x93,0x92,0x44,0x5a,0x09,0x79,0x20,0xcb,0xff,0xb2 +.byte 0x08,0x7a,0x81,0xee,0x98,0x83,0x0b,0xa4,0x15,0xb0,0xaa,0x55,0xb0,0xb5,0x60,0x09,0x21,0xeb,0xe2,0x9b,0x57,0x41,0xb9,0xb4,0xd9,0xbe,0x7d,0x60,0x5d,0x25,0xde,0x9f,0x9e,0x5b,0x7c,0xee,0xeb,0x87,0x54,0x6a,0xc3,0xcf,0xec,0x57,0xce,0x97,0x2e,0x47,0x84,0x4c,0x15,0xf4,0xf5,0xe9,0xd4,0x45,0x23,0x20,0xf0,0x0f,0xda,0x97,0xc2,0xb9 +.byte 0xb2,0xe2,0x44,0xea,0xbd,0x95,0x73,0xcc,0x94,0x03,0x0b,0x97,0xeb,0x03,0xc1,0x51,0xc8,0x14,0xa6,0x7d,0x18,0x30,0xa1,0xda,0xa3,0xcd,0x78,0x67,0xb0,0xc1,0x6c,0x88,0xdd,0xd6,0x52,0x4b,0x85,0x1d,0x4a,0xaa,0x44,0xec,0x3b,0xff,0x00,0xd8,0x9e,0x18,0xf8,0xac,0x4f,0x73,0x6d,0xc7,0x4b,0x59,0x15,0x85,0x87,0x02,0xd8,0xf1,0xe6,0xfb +.byte 0x66,0x57,0xcf,0x06,0x84,0x50,0xc5,0x67,0x94,0xc6,0x96,0xb2,0x1a,0x37,0x06,0x3d,0x21,0xf2,0x1e,0xb4,0xe7,0xcb,0x36,0x8b,0xa3,0xe3,0x84,0xa0,0x9a,0x31,0xdb,0x87,0xf9,0xb0,0xef,0x06,0xfe,0xb0,0x8a,0x32,0x53,0xb4,0x41,0x79,0x6b,0xf7,0x7c,0xf7,0x9c,0xc1,0xea,0x61,0xf3,0x75,0xac,0x1f,0x92,0x75,0x44,0x58,0x9a,0x20,0xa4,0x20 +.byte 0xe3,0x19,0x1c,0x0d,0x27,0xe5,0x2e,0xbd,0x14,0xcb,0x40,0x3f,0x1c,0x19,0x7c,0xf9,0x92,0x13,0x1a,0x71,0x87,0xaf,0x77,0x0f,0x50,0x92,0x06,0x75,0x2d,0x75,0xe0,0x2e,0x37,0x54,0xcd,0xac,0xcb,0xca,0x7c,0x0e,0x66,0x53,0x10,0x50,0x70,0x9a,0xa4,0x79,0x76,0x87,0x71,0x4a,0x55,0xd4,0xa3,0x83,0xb3,0x04,0xed,0xa9,0xd6,0x84,0x7d,0x1a +.byte 0x64,0x5d,0xf7,0x4f,0x55,0x97,0x5e,0x26,0x9c,0x03,0x42,0x0a,0x16,0xd3,0xdf,0xc8,0x07,0xb8,0xb3,0xe9,0xac,0xa9,0x99,0x83,0x32,0x5b,0x83,0xde,0x7f,0x2b,0x70,0xca,0x15,0x09,0x33,0x0e,0x28,0xc9,0x89,0xc6,0xa6,0x47,0xd1,0x56,0x04,0x40,0x5d,0xd2,0x17,0x1d,0x32,0x21,0x6d,0xb2,0xc7,0x89,0x14,0x98,0xc6,0x58,0xc4,0xca,0xda,0x0f +.byte 0x32,0xdd,0xe1,0xe1,0x9a,0x25,0x09,0x31,0x16,0xf1,0x48,0x40,0x1c,0xc2,0xf9,0xd0,0xba,0xec,0x07,0x94,0xea,0x17,0xcf,0x6e,0xbc,0xfd,0x70,0xb4,0xbb,0x40,0xae,0xc3,0xae,0xf7,0x56,0xf5,0x13,0x55,0xfb,0x4b,0x81,0x5d,0xab,0xf2,0x3f,0xd7,0xa7,0xe6,0xcf,0x17,0xef,0x1f,0x71,0x1b,0x92,0x67,0xd3,0xd2,0xed,0x89,0x14,0x8f,0x8d,0x83 +.byte 0xef,0x7f,0xca,0x65,0x6d,0x79,0x13,0x5f,0x6e,0xf9,0x5d,0x9a,0x68,0x54,0x71,0x5c,0x9d,0x03,0x7c,0x73,0x7a,0xc2,0x17,0x9b,0x5a,0x7d,0x45,0x24,0x0c,0x41,0x13,0xe4,0xcb,0xdb,0x7b,0xc6,0xfb,0x93,0x48,0xca,0xd3,0x01,0x68,0x3f,0x36,0xc0,0x4b,0x1d,0xfa,0x9f,0x25,0x0e,0xcc,0xd0,0xf7,0xa0,0x7a,0x14,0xac,0xd7,0x6e,0x00,0x9f,0xf1 +.byte 0xc0,0xdc,0xfc,0x3b,0xd9,0xbf,0x68,0xfd,0x65,0x34,0x66,0x18,0xe5,0x02,0x9a,0x2d,0xff,0xaa,0xf7,0x73,0x58,0x21,0xe3,0xff,0x23,0x0f,0x63,0x1f,0xf3,0x8b,0x08,0xc7,0x00,0x46,0xe7,0xef,0x85,0x5f,0x7f,0xd9,0x5f,0xc2,0x36,0xe2,0xb6,0xa3,0x00,0xcb,0xff,0xe0,0x22,0x28,0x8c,0xb1,0xb1,0x17,0x91,0x4a,0x4a,0xc8,0x77,0x5a,0xa9,0xb2 +.byte 0x6e,0xb7,0xf0,0x4f,0x70,0x34,0x7f,0x87,0x2a,0x0c,0xcb,0x16,0x24,0x9b,0x41,0xb2,0x3e,0x0a,0xc1,0x33,0xf3,0xbb,0x48,0x17,0x2f,0xe6,0xfc,0xf4,0x27,0xc0,0xdb,0x58,0x24,0x9b,0x99,0x43,0x25,0xfb,0xd3,0xcf,0x1c,0x5a,0x5f,0xbe,0x28,0x3a,0x84,0x51,0x19,0xc3,0x53,0x6b,0xc8,0x73,0x44,0x6e,0x3d,0x7e,0x01,0x37,0xc2,0x2b,0xf7,0xa8 +.byte 0x1f,0x8e,0xd8,0x02,0x5a,0xae,0x56,0x81,0x2b,0x46,0x1b,0x7d,0xca,0x27,0x1f,0x48,0x99,0x24,0x54,0x59,0x08,0xfd,0xb7,0xdf,0x0a,0x77,0xef,0x4e,0x89,0x21,0x71,0x71,0x3f,0x8c,0xd7,0x52,0x89,0x7a,0x0d,0x68,0x09,0xc8,0x88,0x9c,0x0c,0x60,0xca,0x77,0x96,0xeb,0x05,0xeb,0xeb,0x60,0x5b,0x68,0x51,0x2c,0xcb,0x8f,0xca,0x3b,0x18,0x39 +.byte 0x28,0x8f,0xda,0x17,0x9b,0x53,0x71,0x26,0xa9,0x19,0xfb,0x1e,0x4a,0xd0,0x14,0x93,0x1c,0xee,0xe1,0x21,0xea,0xb3,0x16,0x47,0xaf,0x50,0xe5,0xe5,0xd3,0x21,0x8c,0x67,0x46,0x5d,0x97,0x19,0xda,0x6e,0xd9,0x70,0x7d,0x9f,0xd6,0x25,0xd0,0xfb,0x01,0x62,0x0a,0x9e,0x49,0x3d,0x33,0x0d,0x35,0xe5,0xae,0xfd,0xeb,0xb5,0x9b,0xd8,0xc1,0x2a +.byte 0xee,0x4d,0xf2,0xfc,0x16,0x51,0xab,0x58,0x7a,0x9e,0x5c,0xca,0x0a,0x92,0xbb,0xbb,0xa8,0x5b,0xfb,0xf9,0x33,0x67,0x0e,0x13,0x4c,0x83,0x3a,0x25,0x84,0x23,0xe1,0x41,0xfb,0xf1,0x42,0xc1,0x8d,0x58,0x0c,0x5e,0x75,0x09,0x34,0x58,0x96,0x32,0x54,0xb6,0xd8,0xaa,0x48,0xc1,0xed,0xc0,0x92,0x5a,0xec,0xeb,0xb1,0x75,0x59,0xf6,0x35,0xf5 +.byte 0xfd,0x7d,0x96,0x9b,0x83,0x38,0x31,0x10,0xa4,0xd7,0xfb,0x28,0xf0,0xc9,0xe4,0x33,0x5d,0x66,0x81,0x9c,0x31,0x9a,0xe9,0x9a,0x5e,0x70,0xf7,0x61,0xf9,0x93,0xaf,0x2b,0xbd,0x78,0x9e,0xdc,0x61,0xe0,0xa9,0xd1,0xa0,0x8e,0x3a,0x5f,0xb1,0x71,0xe7,0x9e,0xfd,0x81,0xee,0xf0,0xd6,0x63,0xec,0x4a,0xca,0x30,0xaf,0xb6,0x2d,0xaa,0x2d,0xa1 +.byte 0x5a,0x38,0xb5,0xc6,0x3f,0x5f,0x63,0x48,0xd3,0x18,0xeb,0xe3,0x36,0xca,0x91,0x86,0x4b,0x6f,0x57,0x66,0x47,0x2f,0xce,0xe4,0x44,0x26,0xe4,0xfd,0x8c,0xde,0x74,0xdc,0x17,0x0e,0x7d,0x6a,0xcf,0x89,0x0e,0x7f,0x09,0x65,0xf8,0xeb,0x58,0x00,0x3d,0xc5,0x1b,0x14,0xc5,0xca,0xca,0x28,0xbc,0xb7,0x63,0x6f,0x3b,0xa4,0x62,0x23,0x0e,0xd5 +.byte 0x04,0x76,0x0c,0xe8,0xea,0x64,0x10,0x3a,0x76,0x03,0xd6,0xea,0x69,0x52,0x14,0xa7,0x5e,0x40,0x7e,0x14,0xdb,0x7f,0xbf,0xe8,0xf6,0xf0,0xdd,0x5e,0xac,0x55,0x44,0xfb,0x28,0xf3,0x16,0xcb,0xed,0x8f,0x10,0x01,0x91,0xac,0x2c,0x27,0x46,0x0c,0x51,0xd6,0xf6,0x30,0xa3,0x34,0xd0,0x5e,0x93,0xe8,0x4e,0xc0,0xb4,0x9b,0xc1,0xe8,0x20,0x7d +.byte 0xb7,0x68,0xdd,0xf1,0xc4,0x60,0x20,0x97,0xdd,0x5c,0x7c,0x9b,0xea,0xc0,0x22,0x84,0x2c,0x65,0x78,0xbd,0x18,0xa1,0x62,0x7e,0x06,0x49,0x96,0xde,0xd1,0x89,0x06,0x0d,0x35,0xa0,0xcc,0x22,0xd3,0xf5,0xa6,0x4b,0xb6,0xca,0x43,0x34,0x5a,0x3d,0x39,0x95,0x0b,0x95,0xbe,0xdc,0xe6,0x61,0x72,0xbe,0x2f,0x19,0x1c,0xe8,0x22,0x5e,0x18,0xc9 +.byte 0x59,0x4a,0x08,0xa3,0x85,0x5c,0x06,0x36,0x00,0x2e,0x84,0x3e,0x3e,0x07,0x5b,0xfa,0xda,0xbb,0xbb,0x57,0x20,0x6f,0x1b,0x8d,0xe5,0xc5,0xdb,0x8d,0x23,0x1a,0xfc,0x67,0xa9,0xc8,0xea,0xe1,0x54,0xbb,0x8a,0x8a,0x0b,0xa6,0x02,0x35,0xd6,0xd5,0x4d,0xff,0x09,0x79,0x31,0x9a,0xc2,0xad,0xa7,0x66,0xb5,0x3c,0xbd,0xb7,0xcb,0x17,0x30,0x4b +.byte 0x56,0xf5,0xd2,0x51,0x90,0xbb,0x47,0x00,0xc0,0xf3,0x8b,0xd7,0x10,0x33,0x6d,0xe8,0xe4,0xcf,0xd6,0xbf,0x35,0x75,0x8d,0x40,0x55,0xd7,0x5d,0xb0,0x40,0xf6,0x95,0xfb,0x1a,0x97,0x24,0xb8,0xc1,0x91,0x5f,0x66,0x6c,0xc7,0xdb,0x16,0xba,0xb8,0x07,0xf8,0xf8,0x91,0xb2,0x8c,0x26,0xb9,0xa2,0x59,0xb0,0xde,0x49,0x63,0xcc,0x7c,0x4c,0x48 +.byte 0xb5,0xe4,0xf9,0x81,0x28,0x48,0x9f,0xa0,0xa4,0xf8,0x0d,0xcc,0x7b,0xf3,0xce,0x08,0x85,0x73,0x4a,0x64,0xfc,0xa8,0xc0,0xae,0x7a,0xbf,0xa5,0x3f,0x45,0xaf,0xe7,0x7f,0x41,0x61,0x34,0x08,0x6e,0x09,0x0d,0x9d,0xea,0x90,0xbe,0x62,0x7c,0x38,0x92,0xa7,0x63,0xfa,0x03,0x80,0x10,0xc4,0x53,0x46,0x0b,0x44,0x88,0xea,0x50,0xb6,0x82,0xf8 +.byte 0x0b,0x2d,0x93,0x63,0x82,0x80,0x2b,0x61,0x3e,0x17,0xd1,0xd8,0x6c,0xb1,0xb4,0xbd,0xfd,0xad,0x1c,0x10,0x30,0xc1,0x78,0xd4,0x5f,0x21,0x49,0x54,0x7a,0x08,0x2b,0x25,0x3b,0xc9,0xb7,0x0a,0xf2,0x37,0x83,0xc0,0x43,0x73,0xee,0xd6,0x8b,0x92,0x15,0xde,0xfe,0x14,0xf1,0xfb,0x8b,0x4a,0x85,0x8d,0x78,0xe6,0x36,0x1a,0xbb,0x32,0x6c,0xdd +.byte 0x43,0x76,0xad,0x68,0x90,0x08,0xd2,0xbd,0x24,0x41,0xd4,0x93,0x17,0xa8,0x9f,0xeb,0x33,0x25,0x1f,0x1a,0xfd,0x45,0x20,0xc1,0x47,0xf1,0x25,0x09,0x89,0x14,0x9e,0x4c,0x88,0xa4,0x1c,0xb8,0xba,0x84,0xd5,0x7d,0x73,0xb2,0x9c,0x48,0x9f,0x84,0x31,0xd3,0x2c,0xe1,0x94,0x61,0x3e,0x5f,0x37,0x25,0xc7,0xb7,0x2d,0xc3,0xa9,0xaf,0xcc,0x0e +.byte 0xe6,0xc7,0x9a,0xa7,0x06,0xe3,0x41,0xb8,0xa6,0xa8,0x9a,0xe7,0x76,0xef,0x83,0x5a,0x80,0xa4,0xe3,0x0c,0x04,0xa2,0x0b,0x91,0x33,0x34,0x17,0xa4,0x02,0x2d,0x12,0x84,0x67,0x85,0x6b,0xc0,0x3a,0x0d,0x16,0xf2,0x66,0x04,0x71,0xe9,0xec,0xa6,0xbb,0x58,0x42,0x92,0x70,0xf5,0x0d,0x52,0xcd,0x1e,0x2d,0xd4,0x28,0x0f,0x68,0x35,0xd9,0xa4 +.byte 0x40,0x09,0x30,0xe9,0xbb,0xaf,0x77,0x63,0x4f,0xba,0x56,0x97,0xe8,0x92,0xcc,0xba,0xdb,0xe4,0xe0,0xdf,0x19,0x21,0x71,0x23,0x3d,0xd0,0xb1,0x25,0xd3,0xf8,0x53,0x01,0x30,0x9a,0xea,0x84,0x1b,0x18,0x68,0x4a,0xb9,0x9e,0x60,0xc4,0xfc,0xf7,0x56,0xb7,0x49,0xe1,0x50,0x38,0x7d,0x3d,0x87,0xa2,0xad,0x38,0x5c,0x0c,0x53,0x21,0xa0,0x56 +.byte 0x3a,0x94,0xd7,0xa8,0x23,0x96,0xa9,0x66,0x4e,0x88,0xae,0x4b,0x6e,0xcb,0xc6,0xa6,0xdb,0x1f,0x2e,0xae,0xe7,0x24,0xe2,0x1e,0xf7,0x3a,0x14,0x48,0x5e,0xfa,0x90,0x0a,0x84,0xa6,0x1c,0xaa,0x60,0xc0,0x2c,0x69,0xe8,0x36,0xb3,0xee,0x55,0x2a,0xf7,0x90,0xa1,0x92,0x4f,0x29,0x1e,0x49,0x6e,0x73,0x22,0x1f,0x8b,0x0c,0xb6,0xf4,0x3c,0xbf +.byte 0x82,0x47,0x49,0xc3,0x94,0x0e,0xcf,0x9b,0x86,0x88,0xc2,0xd0,0xd7,0xa7,0x43,0xfb,0x89,0x4b,0xbd,0x5d,0x4c,0x6b,0x7a,0xc7,0x74,0x1b,0xfb,0x48,0x12,0x68,0x61,0x91,0xf9,0xf3,0xb6,0x7f,0x4f,0x72,0x89,0xf0,0x72,0x46,0xf7,0x6f,0x84,0xd1,0x38,0x6d,0xd9,0x1b,0xa5,0xd1,0xe2,0x29,0xe0,0xa6,0xbf,0x1c,0xbd,0xfb,0xdd,0xdc,0xa5,0xae +.byte 0x7a,0x9c,0xd0,0xc3,0xfa,0x6f,0x72,0xa3,0xa2,0x8b,0x87,0x0d,0x9a,0x6a,0xfc,0x53,0x9a,0x08,0x61,0x86,0x67,0x2a,0x90,0x6a,0x09,0x20,0x8e,0xde,0x32,0x35,0x34,0x75,0xc0,0xa8,0xab,0x1b,0xc4,0x7c,0xc8,0xd9,0x90,0xcf,0x32,0x27,0x6c,0x68,0xf9,0x18,0x14,0x05,0x57,0x39,0xc6,0x9e,0x5e,0x38,0x07,0xdb,0x81,0xb4,0xa4,0x54,0x06,0xd6 +.byte 0x79,0x78,0x0e,0xc8,0xb9,0x56,0xda,0x08,0x2e,0x77,0x26,0xcc,0xf7,0xa5,0x2d,0xd8,0x91,0xa6,0xfc,0x25,0x0e,0x91,0xdd,0x3c,0xa8,0x14,0x7a,0x95,0x05,0x5b,0x15,0x7d,0x1d,0x9b,0x3c,0x8c,0xfd,0xdc,0xa5,0xcd,0xec,0xea,0x7a,0x2b,0x7e,0x79,0x21,0x54,0xea,0x7f,0x52,0xb4,0xbb,0x4f,0x07,0x95,0x39,0x4a,0xaf,0x2e,0xb4,0x1e,0x9e,0xc6 +.byte 0x0a,0x07,0x58,0xd4,0xa5,0x44,0x73,0xa8,0x84,0x26,0x67,0xb8,0x0f,0xc7,0x6b,0xa7,0x28,0xf6,0x05,0x91,0x3e,0x22,0xcd,0xd7,0xf5,0xfc,0xae,0x22,0x42,0x96,0x3b,0x57,0x91,0xce,0x44,0xd0,0xfd,0xc3,0x4c,0x8b,0x8b,0x67,0xfe,0x03,0x86,0x92,0x34,0xf7,0xf9,0x53,0xb3,0xdf,0x36,0xcf,0x16,0x1c,0x68,0x36,0x17,0x1f,0x41,0x56,0x1d,0xda +.byte 0x90,0xb3,0xab,0x03,0x97,0x88,0x23,0x65,0x89,0x72,0xe3,0x6d,0x8e,0x37,0x5d,0xee,0x89,0x81,0x11,0x27,0x8b,0xf0,0x9b,0xef,0xa2,0x34,0x45,0xcc,0x41,0xcf,0x2a,0x88,0x70,0xe4,0x78,0xfc,0xe1,0xb5,0x51,0x70,0x84,0x64,0xd1,0x10,0x71,0x5d,0xa4,0xb4,0x6d,0xb5,0x98,0x6e,0xcc,0x9a,0x62,0x14,0x30,0xce,0x1a,0xff,0x49,0xd6,0xaa,0xcc +.byte 0xe1,0x99,0x42,0xb1,0xfe,0x77,0x8a,0x2d,0xdb,0xc0,0x0d,0x50,0x53,0x0d,0x92,0xe5,0x2b,0xd0,0x78,0x83,0x08,0x4a,0x0c,0x1d,0x5b,0x03,0x22,0x65,0x3d,0x9e,0xdb,0xcf,0x01,0x61,0xf7,0x6d,0x2b,0x99,0xef,0xba,0x80,0x50,0xda,0xda,0x2d,0xbf,0x00,0xdf,0x6f,0xec,0x95,0xbc,0x5b,0x4e,0xda,0x83,0xe4,0x5d,0xf0,0xa7,0x1b,0x27,0xf1,0x76 +.byte 0x04,0x5d,0x3d,0x2c,0x12,0x15,0xad,0xef,0x47,0xdc,0x22,0x9b,0xc2,0x80,0x91,0xf3,0xbf,0x16,0xe9,0xd3,0x35,0x94,0x4b,0xfd,0xa3,0xa1,0xee,0x98,0xad,0x99,0xea,0x07,0xe1,0x0f,0xa7,0xbd,0x0b,0xfb,0xc0,0xd5,0xb0,0x49,0x37,0xc6,0x5f,0xe7,0x18,0xc1,0x60,0xe9,0x1d,0x5e,0x0e,0xea,0x73,0xf2,0xa1,0x75,0x7e,0x39,0x51,0x07,0x1e,0xcb +.byte 0x2a,0x5b,0x26,0x75,0xbe,0x02,0x5e,0xde,0x6c,0x37,0xb1,0x3c,0x1f,0x25,0x65,0x7d,0x9e,0x5d,0xa1,0x0b,0x98,0x27,0x53,0xb9,0xbb,0xc2,0x3e,0x8d,0x2d,0x5e,0x5c,0xbf,0xed,0x66,0xe8,0xd1,0x7d,0xaa,0xef,0xca,0x0e,0xd0,0x78,0x2b,0x89,0x07,0x76,0xb6,0xc3,0x92,0x42,0x3a,0x84,0x1d,0x81,0xc1,0xe8,0x1a,0xb8,0xe6,0xf1,0x43,0xcc,0x7a +.byte 0x59,0x4d,0x9f,0x00,0xfe,0x6a,0xe5,0x42,0x71,0x3c,0xcb,0xc8,0x45,0x18,0xf0,0xf2,0x81,0x9d,0x5a,0xb7,0x8d,0xbe,0x31,0xcb,0x7d,0xca,0xb7,0x19,0x57,0xb1,0x61,0x36,0x90,0x42,0xe2,0xc3,0xf5,0xa5,0x4b,0xc3,0xd4,0xe7,0x6c,0xb6,0x0c,0x06,0x19,0x4b,0x54,0x8f,0x2d,0xdc,0xc5,0x2b,0xff,0x1c,0x61,0x29,0xda,0x95,0x4f,0xa1,0x21,0x25 +.byte 0x24,0xbe,0xc7,0x34,0x2f,0xbf,0x33,0x6d,0x82,0x8f,0xf1,0xa9,0x97,0x5a,0x49,0x7f,0x60,0x00,0xf2,0x3e,0x7b,0x64,0xdf,0xc8,0xd3,0x5f,0x6e,0x1f,0xfb,0x71,0x80,0xf3,0x55,0x42,0xbe,0x32,0x7b,0xa9,0xeb,0xf6,0x31,0xe2,0xf0,0xd1,0xe9,0xbe,0x96,0x0e,0xb3,0xdf,0x3e,0xb2,0x2c,0xc3,0xce,0xbd,0xe7,0xfe,0x1c,0xed,0x2c,0x0b,0xaa,0x32 +.byte 0x76,0x82,0xb4,0x6b,0x18,0xa7,0x68,0x19,0xb7,0x27,0x21,0x4c,0xb0,0x22,0x98,0x58,0xd5,0x90,0x80,0xab,0xa1,0xfe,0x83,0xc5,0x66,0xf6,0x3e,0xa2,0xa9,0x6f,0x73,0xce,0x7f,0x0c,0xe6,0xde,0xee,0xb0,0xe6,0x2a,0xcc,0xcc,0xb0,0x53,0x8c,0xce,0xc8,0xdc,0xea,0x83,0xb4,0x0e,0x69,0x8d,0x90,0x86,0xaa,0xe3,0x3b,0xfb,0x88,0xe2,0xe8,0x27 +.byte 0x65,0x36,0x07,0xb3,0x91,0x0e,0x5a,0x6b,0x9f,0x0f,0xbd,0x81,0xb3,0x54,0x65,0x71,0xa4,0x2c,0x8e,0xda,0x47,0x04,0xce,0xfe,0x00,0x52,0xf1,0xdf,0x82,0x27,0x70,0x2a,0xb1,0x79,0x2f,0x27,0x7f,0xae,0x9e,0x5c,0x36,0xec,0xa0,0x2a,0xf3,0x74,0x78,0x01,0x17,0x74,0x2a,0x21,0x4f,0xb8,0xd2,0xe4,0xfe,0x5b,0x06,0x14,0xa5,0xb1,0xb1,0xff +.byte 0xee,0x79,0xf7,0x18,0xb9,0x31,0xa4,0x63,0x47,0x1c,0xdf,0x38,0x04,0x2d,0x18,0xca,0x14,0xf8,0x2f,0xec,0x0d,0x58,0xad,0xbb,0xf4,0x45,0x11,0x0e,0xfa,0x17,0x4c,0x5e,0xd4,0xa6,0xde,0xe4,0x13,0x44,0x2c,0xb9,0xfd,0xcd,0x41,0xe7,0xf9,0xda,0xbc,0x28,0x8f,0x0c,0x41,0x4d,0xa7,0x0d,0xf5,0x96,0xd7,0x8f,0x10,0x96,0xfb,0x75,0x75,0x86 +.byte 0xc9,0x6e,0x23,0x92,0x71,0x69,0x7b,0x94,0x61,0x1c,0x3f,0xcf,0x66,0x34,0x62,0x68,0x5d,0xee,0x7b,0x34,0x5d,0x2a,0x39,0xbb,0x6a,0x34,0xea,0x6e,0xe3,0xe9,0xdb,0xe4,0x34,0x6e,0x29,0x0b,0x21,0x38,0xe7,0x5b,0x79,0x37,0x54,0xf0,0xed,0xaa,0x07,0x2b,0x21,0x29,0x67,0xfe,0x7d,0xa5,0x99,0x0e,0x5d,0x05,0xe7,0x61,0x6e,0xd1,0x4a,0x15 +.byte 0x4a,0x56,0xb1,0x13,0x49,0x8c,0xf4,0x4f,0xd7,0xe9,0x68,0xae,0x09,0x37,0xd3,0x96,0x21,0xe8,0x1f,0x9f,0xa9,0xc6,0x54,0x57,0x63,0x09,0x1e,0x71,0xf2,0x48,0x9e,0x50,0xbb,0xb3,0xf1,0x4e,0x2d,0x1d,0x79,0x69,0x0a,0xa2,0xa9,0xdd,0x1b,0x55,0x62,0x6b,0x0d,0xcc,0x9c,0xb1,0x5e,0xc8,0x4c,0x4f,0x62,0x3c,0xc4,0xa3,0xb4,0xe4,0x34,0xec +.byte 0x9d,0x0c,0x1b,0x46,0x60,0x68,0xd5,0x04,0xd7,0x1b,0x3c,0x7a,0x98,0x0c,0xd9,0x87,0x2b,0x4f,0x97,0x5b,0x56,0x65,0xb0,0x06,0x6e,0x9e,0x06,0x37,0x0e,0xd2,0xa1,0x52,0xf5,0xaa,0x2b,0xec,0xbd,0x0f,0xb6,0xba,0x48,0x63,0x57,0x51,0xe3,0x00,0x53,0xf5,0x77,0xb2,0xa4,0xb1,0x44,0x01,0x3e,0xcf,0xe9,0x2a,0x7a,0xf5,0x19,0x5e,0x43,0x36 +.byte 0xe0,0x38,0x41,0xbc,0xda,0xb5,0xd0,0x69,0xdf,0xd2,0x04,0xd4,0xf8,0x38,0x37,0x1c,0x90,0x30,0xf2,0x3d,0x03,0xe4,0x3f,0x84,0x2c,0x9a,0xa4,0x8a,0x00,0x4e,0x49,0x24,0x62,0x06,0xb4,0x9d,0x33,0x8a,0x8e,0xd2,0xbd,0x1b,0xa1,0x83,0x0b,0xa5,0xa2,0x5c,0xcf,0xb1,0x65,0x85,0x92,0x1f,0xb0,0x2e,0x3b,0xb2,0xf3,0x80,0xff,0x9d,0x41,0x4d +.byte 0xcd,0x25,0x09,0x02,0x85,0xb3,0xa8,0x49,0x12,0x10,0xe7,0x5c,0x94,0x13,0x4b,0x52,0x53,0x35,0x9c,0xbc,0x7a,0xad,0x04,0x19,0x54,0x8a,0xbc,0x42,0x73,0xf1,0x0a,0x22,0x75,0xbf,0x3b,0x12,0xa8,0xa4,0x47,0x5c,0x95,0x48,0x60,0x71,0x5c,0x9a,0x39,0x5c,0xdb,0x44,0xe8,0x74,0x92,0x3e,0x2b,0x3b,0x1b,0xb7,0x21,0x98,0xe1,0x87,0x32,0xaf +.byte 0x4a,0xe3,0xda,0x4a,0x46,0xde,0x15,0x4c,0xdc,0xc6,0x60,0xe6,0xd7,0x92,0x29,0x05,0x21,0x22,0x9b,0xaf,0xc4,0xd7,0x6a,0xea,0x2c,0x82,0x5d,0xc7,0x81,0xe2,0x67,0x85,0xd2,0x16,0x6f,0x83,0xa8,0x82,0x5f,0x8f,0xf5,0x3a,0x50,0xba,0x04,0xcb,0x76,0x4d,0x80,0x16,0x12,0x72,0xa8,0x6c,0xac,0x78,0xf1,0x8c,0x93,0xab,0xe0,0xb5,0xdc,0xd1 +.byte 0xa5,0x40,0x0e,0x50,0x88,0xd2,0x9d,0x56,0xf6,0xa0,0xd4,0x45,0xcf,0xef,0x16,0x1a,0xa4,0xaa,0x91,0x5c,0xa3,0x8f,0x84,0xf8,0x3e,0x30,0x1f,0x5f,0x55,0xf9,0xd3,0x3d,0xb8,0x64,0xbb,0x3c,0x91,0xe4,0x0d,0xa5,0x43,0x14,0x75,0xe7,0xec,0x8c,0x12,0x56,0x34,0xb0,0xa9,0xae,0x93,0x91,0x34,0xfc,0x78,0xa3,0x81,0x51,0x45,0x7d,0x9f,0x7d +.byte 0x5e,0xc7,0x5e,0x51,0x17,0xfa,0x02,0x5d,0xb2,0xf7,0x79,0x4b,0x49,0xd2,0x1b,0x6f,0xfd,0x9e,0xff,0x75,0x74,0xf0,0x26,0x7e,0xd7,0x65,0xb0,0xf3,0x0a,0x0c,0xd2,0xa2,0x26,0x98,0x03,0x26,0xb5,0x67,0xc4,0xc0,0xed,0x80,0xd4,0x20,0xf6,0x7e,0x17,0x54,0xeb,0xde,0xc3,0x86,0x51,0xda,0xf7,0xe5,0xc7,0xfe,0xfc,0x71,0x83,0x80,0xbe,0xde +.byte 0x4b,0xda,0x83,0x76,0x63,0x04,0x03,0xdd,0xe0,0xe0,0x4e,0xb6,0x32,0xd5,0xd0,0xce,0xd7,0xaa,0xcd,0x5f,0x64,0xa6,0xd8,0x9e,0xc5,0x97,0x30,0xad,0xf1,0x82,0x8f,0x7c,0x18,0xec,0x30,0x1d,0x2d,0xb6,0xdb,0x33,0x65,0xed,0xe2,0x24,0xd8,0xba,0x0a,0x1f,0x79,0x2a,0x1c,0xe1,0x4e,0x04,0xa6,0x74,0x74,0x37,0x42,0x94,0xc4,0x99,0x0e,0xf8 +.byte 0x3f,0xf3,0xff,0xeb,0x7f,0x95,0x9c,0x47,0x56,0x68,0x6a,0x0d,0x6e,0x66,0x71,0x3b,0x51,0xd5,0x12,0x7e,0x59,0x39,0x43,0xb5,0x53,0xd3,0x1d,0xa2,0xe9,0xa1,0xc8,0x8d,0xf2,0x8e,0xa1,0x9c,0x36,0xdd,0xda,0xd3,0x61,0xd8,0xe9,0x76,0x5e,0xcb,0x0a,0x52,0xc8,0x5a,0x25,0x00,0x21,0xea,0x6a,0x96,0xde,0x02,0x76,0x02,0x63,0x73,0x28,0x63 +.byte 0x46,0x37,0xe1,0x75,0x2f,0x42,0x8f,0xee,0x2c,0x84,0x82,0x43,0x43,0x2d,0xa9,0x13,0x50,0x46,0x54,0xed,0x76,0xbd,0x10,0x1c,0x9b,0xa1,0x42,0x97,0x68,0xca,0x84,0x2e,0x1d,0x6f,0x86,0x67,0xaf,0xb7,0x20,0xc1,0x7c,0xab,0x70,0x20,0xa1,0x79,0x71,0xe4,0xb7,0x45,0x8a,0x04,0xd3,0x70,0x10,0xa8,0x28,0xc3,0x56,0xff,0x43,0x36,0x13,0x88 +.byte 0xb6,0x2d,0xfd,0x7f,0xbc,0xc9,0x1d,0x11,0x9a,0x7c,0xd0,0xfc,0x11,0xac,0x54,0xd5,0xc3,0x03,0xd1,0xe3,0x9e,0xff,0x03,0xdb,0xd9,0xd8,0x77,0x96,0x08,0xf4,0x1b,0xd9,0xfa,0x70,0xed,0xab,0x53,0x78,0xca,0x28,0xa7,0x29,0x49,0x45,0x37,0x10,0x8f,0x61,0x7d,0x11,0x99,0x2e,0xe8,0x5d,0x45,0x3a,0xe7,0xd2,0x6c,0xb6,0x03,0xc4,0x6d,0xaa +.byte 0x52,0x60,0x8c,0xc6,0x9c,0x17,0xba,0xf6,0x3b,0xd4,0x4b,0x26,0x63,0x92,0x8c,0xb9,0x6a,0xf2,0x26,0x91,0x9d,0x8d,0x99,0x39,0x26,0x7d,0xb5,0x4f,0x4c,0xc6,0x0e,0x2e,0xe1,0xc6,0xcb,0x98,0x93,0x71,0x9b,0xaa,0x01,0x40,0x70,0x93,0x2a,0xe8,0x27,0xc5,0x20,0xa7,0xd2,0x06,0x8b,0xb0,0x29,0xcd,0x4f,0x2c,0x5a,0xde,0x35,0xc7,0x2a,0x8e +.byte 0xa7,0xae,0x02,0xfa,0x8e,0x4d,0xf3,0x77,0x67,0xe0,0xcb,0x84,0x69,0xc6,0x05,0xe4,0x84,0xe3,0x6e,0x02,0x6c,0x3b,0x93,0x30,0x3e,0x89,0x2c,0xc7,0xa5,0x7e,0xaa,0x58,0x59,0x25,0xf6,0xff,0x56,0x9a,0x4a,0x70,0xbf,0x88,0x20,0x8d,0x51,0x5e,0x08,0x13,0x26,0x2c,0x5d,0x88,0x13,0x3e,0x32,0x7a,0xf6,0x17,0x5c,0xdb,0xc4,0xcd,0x5a,0x16 +.byte 0x65,0xe4,0x34,0xeb,0x21,0x6d,0xb9,0x30,0x5d,0xc0,0xa2,0xea,0x4f,0x63,0x0e,0xbe,0x32,0x91,0x89,0x6f,0x96,0x40,0xf3,0x5f,0xa3,0xf2,0x15,0xc3,0x3c,0x3c,0xb8,0x2f,0x0d,0xc2,0xcd,0x4e,0xa0,0xa5,0xf6,0x78,0x40,0x0b,0x90,0x11,0x52,0xff,0x8f,0x7f,0x6a,0x0c,0xd6,0x3b,0x64,0x80,0x47,0xfa,0x70,0xbe,0x01,0xdc,0xdf,0x5b,0x75,0x7c +.byte 0xca,0x66,0xf0,0x2a,0x53,0x89,0x55,0x87,0xf8,0xec,0xd1,0x18,0x22,0x0c,0xd5,0x0e,0xc8,0x1c,0xbc,0x1e,0x66,0x14,0x44,0x10,0x3c,0xd4,0x2e,0xca,0x0b,0xd8,0x3f,0x81,0xd8,0x9f,0x81,0xf6,0x62,0x23,0xe4,0xc7,0x0d,0xb0,0x1b,0x00,0xd8,0xf4,0x1a,0xdd,0x9b,0xa1,0x74,0xeb,0xf0,0x65,0x5c,0x82,0x00,0x17,0xa6,0x68,0x29,0xd5,0xa4,0x64 +.byte 0xd3,0x15,0x90,0xd0,0x91,0x17,0xfc,0xd2,0xd7,0xad,0x4b,0xd8,0x41,0x03,0x51,0xfd,0x61,0xac,0x34,0xd4,0xff,0xaa,0xb1,0x64,0x6c,0x79,0x78,0xf7,0x6b,0x18,0x03,0x2b,0x6b,0x9a,0xd7,0xce,0x55,0x6e,0xdd,0xab,0x2e,0xbc,0x27,0x3a,0x8c,0xa5,0x8d,0xf0,0x55,0x81,0x0c,0x6e,0x8d,0xd8,0xd2,0x24,0x5e,0x2e,0x56,0xa8,0x1e,0x9c,0x98,0x88 +.byte 0xd3,0xbe,0x90,0x56,0x70,0xe5,0xcc,0x49,0x2a,0x13,0x98,0x99,0xbd,0xc9,0x9f,0x53,0x85,0x07,0xbe,0x54,0xa7,0x4c,0xd6,0x96,0x7d,0x8f,0x24,0x79,0x67,0xb2,0x62,0x4c,0x6a,0xc1,0x6c,0xb7,0xdc,0xe9,0x21,0xe3,0x27,0xc7,0x53,0xff,0xe7,0xd1,0xea,0x60,0xa8,0x56,0x08,0x5c,0x29,0x0a,0x04,0x0c,0xda,0x7a,0x70,0x8c,0x3d,0x55,0x3f,0xcf +.byte 0x9e,0xea,0x74,0x8b,0xbc,0xf0,0xf1,0x3a,0x86,0x22,0xe5,0x54,0xa7,0x70,0xc2,0xcd,0xb8,0x9f,0x4e,0x9f,0x48,0xa8,0xc0,0x82,0x0d,0x73,0x8b,0x3c,0xfc,0x20,0xf4,0xbe,0x79,0xde,0x8e,0x3c,0x26,0x85,0xde,0x74,0xd1,0xe3,0xd5,0x8f,0x39,0x71,0x46,0x8c,0xbd,0x68,0x28,0x2d,0x36,0x0d,0x66,0xc1,0x0b,0x96,0x3e,0x11,0x2e,0x44,0x17,0xd5 +.byte 0xfe,0x0d,0x70,0x84,0x96,0x20,0x34,0x2f,0xbe,0xf0,0xf5,0x9b,0xb4,0x5a,0xa9,0x50,0x6a,0xda,0xdb,0x69,0xea,0xef,0xa9,0xaa,0x06,0xc0,0x68,0xa4,0x61,0x1b,0x4b,0xf8,0x0b,0x56,0x91,0xc8,0x6f,0x39,0x15,0xe2,0xcc,0xbf,0x2b,0x36,0x96,0x0c,0x84,0xfb,0x3d,0x4b,0x09,0xe3,0xc2,0x4b,0x05,0x5e,0xfa,0x30,0x75,0xc5,0x54,0xa5,0xbd,0x45 +.byte 0x1e,0x14,0x72,0xd6,0xfd,0xe0,0x8f,0x7b,0x46,0x9b,0x11,0x07,0x27,0x03,0xe1,0x2d,0xcc,0x0a,0x01,0x49,0x61,0xc4,0x61,0x78,0x06,0x5f,0xaa,0x01,0x5b,0x68,0xd7,0x29,0xb4,0x9e,0xd3,0xaf,0xc7,0x45,0xf0,0x23,0xaf,0x28,0xcd,0x96,0x23,0x61,0xb2,0xb4,0x21,0x96,0x5d,0x91,0x3e,0x71,0xb5,0x41,0xf1,0x29,0xf4,0x5b,0x45,0x77,0x16,0x00 +.byte 0x9d,0x39,0x2a,0x1c,0x38,0x6d,0x36,0x97,0x98,0x4c,0x84,0xfc,0xf5,0xf1,0x59,0x7a,0x8c,0x21,0xfb,0xbc,0x9b,0x0c,0x8d,0x60,0xb6,0xc4,0xe3,0x4b,0x33,0x4f,0x04,0x4c,0x27,0xd2,0xa0,0xe1,0x71,0x0b,0x6d,0x40,0x8d,0xba,0xb3,0x11,0x9b,0x07,0x97,0x82,0x01,0x47,0xaa,0x2a,0xd4,0xcc,0x02,0xd3,0x86,0x86,0xb5,0xd7,0x5d,0xbc,0xd0,0x0f +.byte 0x97,0x5c,0xe5,0xac,0xc6,0x53,0xb3,0x39,0x09,0x68,0x2e,0xcc,0xf3,0x43,0xba,0xed,0x15,0x90,0xbe,0x9d,0xeb,0xa4,0xfb,0x4a,0x20,0xcf,0x10,0xb9,0x47,0x99,0xb0,0x89,0x26,0xb9,0xbd,0x4b,0xf6,0xa5,0xbd,0x2f,0xad,0x1a,0x75,0xe8,0xff,0xc6,0x6b,0x6a,0x31,0xbe,0xec,0xd2,0xc4,0x39,0x9e,0x3b,0x05,0x3f,0x24,0xba,0xf1,0x4d,0x0c,0x0c +.byte 0x05,0x60,0x60,0x22,0x0c,0x1b,0x0b,0x6c,0x80,0xd5,0xe8,0x8f,0x81,0xee,0x80,0x41,0x4a,0x69,0x47,0xc6,0x4c,0xeb,0xf6,0x2b,0x91,0x7c,0x9f,0x22,0x74,0x7b,0x43,0x95,0x56,0x55,0xba,0x85,0x23,0xb3,0xc3,0xee,0x6a,0xcc,0x49,0x2c,0x6c,0x86,0x6d,0x60,0x5d,0x84,0x0c,0x3c,0x88,0x61,0x58,0x1d,0xfc,0x00,0x2c,0x84,0x49,0x4d,0x95,0x75 +.byte 0xc0,0x03,0x02,0x59,0xc0,0xe9,0x84,0xea,0xce,0x3f,0x8b,0x76,0xbf,0x19,0xaa,0x13,0x1b,0x8d,0x9f,0xb2,0xeb,0xb3,0x02,0x87,0xee,0xfe,0x73,0xdb,0xc4,0x19,0x27,0xaf,0x15,0x8d,0xf4,0x58,0x97,0x43,0xb9,0x45,0x32,0x5f,0x24,0x2d,0x08,0xfe,0xec,0xf2,0xf1,0x34,0x99,0x7a,0x66,0x44,0x3d,0xd4,0xf7,0x82,0xcf,0xca,0x6f,0x53,0x9f,0x0a +.byte 0x74,0x79,0x9b,0x45,0x5b,0x07,0x92,0x35,0xc6,0xf4,0xd1,0x90,0x2b,0x62,0xec,0x93,0x7b,0x05,0x90,0x75,0xb7,0xb6,0xd9,0x6c,0x30,0xdd,0x9b,0x2a,0x32,0xb1,0xba,0xab,0x1a,0x6c,0x2b,0xd8,0xfb,0x39,0x8e,0x80,0x98,0x6c,0xd0,0xb3,0xf3,0x76,0xe2,0xe6,0x5e,0xee,0xd0,0x29,0xd7,0x57,0x8f,0xc3,0x13,0xcb,0x45,0x90,0x3e,0xa2,0x54,0x88 +.byte 0xd5,0x50,0xd3,0x75,0xed,0x2d,0xa6,0x50,0x11,0x6b,0xb0,0xb6,0xf0,0x1d,0xc9,0x3d,0x1d,0x2a,0xda,0x5e,0x43,0x44,0xf4,0xef,0x3e,0xc7,0xa9,0xe0,0x6d,0x3c,0x38,0xbf,0x84,0x72,0xaf,0xea,0x60,0x15,0x03,0x14,0x77,0xb7,0xb3,0x15,0x4c,0xbc,0xbf,0x55,0x86,0x24,0x73,0x97,0x22,0x9d,0x59,0xa0,0x39,0x76,0x38,0xd1,0x1f,0x25,0xb0,0x64 +.byte 0xf3,0x10,0x67,0xf2,0x7c,0x11,0xf2,0xce,0xbe,0xaf,0x5e,0x2e,0xc5,0xc1,0x01,0xfa,0x80,0xf9,0x87,0xfc,0x5c,0xfd,0x66,0x50,0x01,0xc2,0x00,0x92,0x84,0x0f,0xdc,0xfc,0x10,0xa5,0x6e,0x45,0xf5,0xff,0x58,0x78,0x45,0x5e,0x50,0xbe,0xe3,0xc7,0x25,0x1e,0xdf,0x7f,0x68,0x6f,0xa5,0xb8,0xf8,0x69,0x89,0x5a,0x55,0x65,0xf4,0x96,0xe5,0x7a +.byte 0xa6,0x89,0x69,0x8d,0xdd,0x4f,0x24,0x5a,0x29,0x92,0x1e,0xca,0x74,0x65,0x7f,0xb8,0x32,0x75,0xb5,0x7b,0x15,0xea,0xeb,0xcc,0xf1,0x23,0x69,0xc7,0x58,0x1c,0x3a,0xaa,0x27,0x0a,0x11,0x79,0xcf,0xc9,0xb6,0xbd,0x9d,0x56,0x47,0x36,0x6b,0x7f,0x82,0xb5,0xa7,0x9f,0x79,0x72,0x16,0xba,0x50,0xef,0x37,0x68,0xdf,0xe0,0xd8,0x0c,0x16,0xcc +.byte 0x50,0x6c,0x25,0x63,0xc2,0xd6,0x7b,0xef,0xd9,0xa1,0xef,0x62,0x81,0x97,0x51,0x49,0x69,0xe3,0x13,0x6c,0x1a,0xd0,0x64,0x1b,0x3e,0x48,0x25,0x5b,0x34,0xe9,0xee,0x41,0x34,0xfb,0x8e,0x9d,0x3c,0xbc,0xc8,0xcf,0xe7,0xf8,0x72,0x21,0x0f,0x95,0xde,0x57,0xd7,0x2f,0x80,0x97,0xbd,0x8f,0x2c,0xde,0x19,0xa3,0xba,0x5c,0x92,0xa3,0x75,0x83 +.byte 0xe3,0xc9,0x33,0x3f,0x8f,0x09,0xfa,0x0b,0x60,0x0a,0x2f,0xb3,0x45,0x9d,0x8e,0x9d,0xa3,0x66,0x2d,0xda,0x37,0xe0,0x21,0x52,0x74,0x9d,0x59,0xa4,0x9e,0xea,0x15,0x22,0xb0,0xbf,0x3c,0xd4,0x59,0xef,0x27,0x60,0xf7,0xbf,0x5d,0x1d,0x36,0x9a,0xa5,0xfb,0x53,0x90,0x40,0x83,0x3a,0x20,0x3d,0x6b,0x47,0xbc,0xc3,0xe6,0x07,0xfe,0xd0,0x8e +.byte 0x40,0x42,0x65,0x2b,0x27,0xba,0x69,0x61,0x03,0x36,0x58,0x35,0x7e,0x82,0x53,0xb5,0xe2,0x25,0x31,0xc3,0x77,0xc1,0x91,0x13,0xa4,0x92,0x52,0xea,0x9f,0x43,0x44,0x6b,0x43,0xe9,0x11,0xd4,0x3d,0x53,0xba,0x6b,0x96,0xb5,0x96,0x29,0xa3,0x2a,0x0a,0xf2,0xb5,0x0c,0x5d,0x62,0x37,0xe0,0xd6,0xa2,0xbf,0xcd,0xf9,0x58,0x7f,0xa2,0xfd,0x54 +.byte 0x6a,0xa1,0x90,0xa5,0x61,0x9e,0xa6,0xc2,0xb9,0x80,0x7a,0xb8,0xaf,0x60,0x68,0xa7,0x27,0x77,0x41,0x03,0x4e,0xc1,0x96,0x46,0x23,0x1b,0xff,0xa1,0x37,0x28,0x33,0x27,0xc2,0x99,0xf7,0xcb,0x7f,0x1a,0xfb,0x41,0xc3,0x59,0x11,0xf8,0x39,0x50,0xbd,0x90,0x61,0x4a,0x67,0x4a,0x07,0x5f,0xb1,0x07,0x66,0x0b,0x52,0xad,0x90,0xc2,0xd7,0x4e +.byte 0x42,0x9e,0xcc,0x5c,0xeb,0xf2,0xdc,0xaa,0x52,0xcf,0x0e,0x7d,0xae,0x3e,0x1a,0x2c,0x9e,0x79,0xfb,0x29,0x10,0x29,0x61,0xa4,0x93,0x9d,0xa9,0xe9,0x71,0xc5,0xf7,0x07,0x13,0xe9,0xbd,0x2e,0x2d,0x0c,0xd6,0xaf,0x54,0x48,0x58,0xc2,0x91,0x37,0xf4,0x61,0x3a,0x96,0x81,0xdc,0x82,0x02,0xff,0xc9,0xf7,0xf7,0x9f,0x9f,0x28,0xd1,0xb1,0xe3 +.byte 0x2b,0x3d,0x85,0xef,0x15,0x82,0x3b,0x9a,0x17,0xee,0x7f,0xd3,0xa5,0x7c,0x41,0x27,0xc9,0x4c,0xe9,0x7a,0x30,0x9f,0xc5,0x34,0xaf,0xc8,0x1c,0x8a,0x7c,0xa6,0xf4,0xdc,0xa6,0xdb,0x68,0xc1,0xa1,0x13,0xb0,0x54,0x49,0x25,0x43,0xc0,0xd4,0x93,0xd6,0x70,0x53,0x3e,0x5f,0xd5,0x42,0x6e,0x78,0xb8,0x15,0x07,0x6a,0x91,0xe8,0xf1,0x2f,0xcf +.byte 0x07,0x84,0x25,0xb3,0x20,0xb9,0x35,0x25,0xbb,0x26,0x96,0x02,0x25,0xd5,0x83,0x23,0x71,0x6d,0x62,0xa7,0x99,0x73,0x63,0x2a,0x51,0x25,0x34,0x3d,0x51,0x95,0xc7,0x9b,0x01,0x0a,0xab,0x11,0xb2,0x32,0xcd,0xe3,0xef,0x63,0xa4,0x6d,0xdb,0x7b,0xf6,0x5f,0xc5,0xf3,0xe5,0x8c,0x6b,0x0a,0x04,0x33,0x53,0x0d,0xf6,0x13,0x8c,0xb8,0xc7,0xba +.byte 0xc2,0xf0,0xd4,0xa7,0x1a,0xce,0x7c,0x54,0x72,0x2b,0x89,0xf4,0x05,0x5c,0x30,0x42,0xe5,0x58,0x65,0x3a,0x2e,0xf9,0x40,0xab,0x2b,0xf9,0xc3,0x99,0x40,0x3c,0xb1,0x7b,0x2c,0xdc,0xfe,0x41,0x21,0x71,0x00,0x75,0xbd,0xea,0xf3,0x84,0x88,0x6b,0x9c,0xe2,0x80,0x2f,0xad,0x9f,0x9d,0x0a,0xdf,0xb5,0x38,0x61,0x89,0xfb,0x67,0x45,0x9c,0x39 +.byte 0xf9,0x84,0x54,0xc4,0xd6,0x6f,0x00,0x39,0x90,0x82,0xfa,0xce,0xae,0xe8,0xaf,0xa4,0x97,0x3a,0xfe,0x71,0xaf,0x5e,0x00,0xd1,0x9e,0x33,0x41,0x63,0xca,0xa5,0x5a,0x8b,0x09,0x2a,0x26,0xef,0x96,0xb7,0x5d,0xc4,0x92,0xfa,0x51,0xdb,0x1d,0x63,0x5f,0x7c,0x94,0x53,0x84,0xed,0xa3,0x99,0x07,0x9f,0xdc,0x55,0xb3,0x31,0x67,0x1a,0x63,0x05 +.byte 0xec,0x36,0x79,0x57,0xf8,0x39,0xc3,0xdd,0xd5,0x6a,0x21,0xfc,0x54,0xe6,0x28,0xc4,0xf1,0xd2,0xce,0x02,0x43,0x50,0x30,0x15,0x4d,0x3c,0xd0,0x1c,0xf6,0x7e,0xd0,0xa4,0x86,0xe7,0xf5,0xc2,0x06,0xc5,0xc4,0xa8,0xe2,0xd3,0xc7,0xcf,0xbd,0xab,0x9f,0xe3,0x42,0xc4,0xcd,0x65,0xfa,0xd3,0xcd,0xdf,0x55,0xc4,0xce,0x6e,0xe8,0xfc,0x96,0x0f +.byte 0xe2,0x92,0xca,0xde,0x37,0x7c,0xc9,0x80,0x4a,0x54,0xe9,0xfd,0x3c,0x4b,0x81,0xb8,0xd9,0x1a,0xf1,0x91,0x5d,0x9d,0xef,0x3e,0xd1,0x78,0xe2,0x1e,0x0e,0x09,0x62,0xdd,0xc6,0xb9,0xde,0x29,0xba,0xb0,0x62,0x49,0x53,0xb6,0x8d,0x9f,0xbf,0x4d,0x77,0xa4,0xd1,0x0b,0xf0,0x31,0x2e,0xe5,0x71,0x2e,0x18,0xa4,0xa7,0xcb,0xa6,0x30,0x24,0x11 +.byte 0x8d,0x16,0x21,0x71,0x6a,0x19,0xde,0x3c,0x5a,0x00,0xa6,0xe2,0x43,0x98,0xe8,0x83,0x10,0x76,0xef,0xca,0x67,0x61,0x80,0x98,0x48,0x06,0xa9,0xcd,0x13,0xa6,0x1e,0x5b,0x2b,0xef,0xb7,0x3a,0x24,0xf7,0x10,0x8d,0xc2,0xaa,0x9c,0x78,0x0d,0xd1,0x54,0xb1,0x4e,0x5a,0x21,0xc2,0xb4,0x11,0x15,0xdb,0xb3,0x9c,0xe4,0xf1,0xfc,0xa5,0x66,0x0c +.byte 0x56,0x34,0x05,0x14,0x88,0x2c,0xfc,0x3f,0x97,0x30,0xd5,0xd0,0xba,0xa3,0xf1,0x47,0xc0,0xf1,0x59,0x3c,0xda,0x1a,0xc1,0x90,0xae,0x4b,0x26,0xd3,0x5f,0xc9,0x8f,0x62,0x56,0x9c,0x64,0xec,0xda,0x63,0x37,0xa1,0xa2,0x87,0x74,0xcb,0xcc,0x27,0xcb,0x2a,0x97,0x57,0xa3,0xb9,0xac,0xe2,0xbd,0x97,0x93,0x21,0xb9,0x8b,0x82,0xa1,0xe7,0x76 +.byte 0xc1,0x49,0xd6,0xb2,0x52,0x7b,0xd6,0xbb,0x31,0x0f,0x87,0xc0,0xaa,0x91,0x70,0x19,0x76,0xa5,0xea,0xf0,0x87,0x47,0x50,0xc1,0xff,0xf7,0xa6,0x6c,0x65,0xff,0xdf,0x83,0x5c,0x54,0xf0,0xb1,0x18,0xe0,0x13,0x58,0x74,0xc0,0x67,0x0e,0xb8,0xdc,0x59,0x6c,0x19,0xf4,0xee,0x3a,0x07,0x63,0x68,0x1d,0x62,0x60,0xb5,0x71,0xce,0x21,0x61,0x8c +.byte 0xa5,0x74,0x9b,0x77,0x8e,0x15,0x20,0x18,0x19,0x96,0xf6,0xfa,0xd2,0x6c,0x03,0xcb,0xcb,0x8c,0x91,0x0d,0x29,0x91,0x70,0xc5,0x96,0x60,0x18,0xad,0x65,0x66,0x43,0xf9,0x13,0x97,0xe3,0xe3,0xcb,0xbf,0x68,0x0b,0xb2,0x87,0x9c,0xfa,0x96,0x48,0x14,0xef,0x6e,0xbd,0x45,0xb9,0x2f,0xbb,0x80,0x80,0xc5,0xf6,0x22,0x41,0x9a,0xec,0xdd,0x41 +.byte 0xfc,0xf3,0x0d,0x8e,0x2e,0x3c,0xda,0xef,0x2c,0xbd,0xbc,0x0e,0x88,0xd2,0x97,0x3d,0x40,0x37,0xa6,0xde,0x1d,0x00,0xeb,0x39,0xea,0x44,0xee,0x8a,0x2f,0x77,0xea,0xea,0x1d,0x90,0xd1,0xec,0xe4,0x31,0x0c,0xde,0x6f,0x55,0x17,0x5c,0x1e,0x19,0x91,0xac,0x36,0x00,0x26,0x17,0xa6,0xcd,0x8b,0xe2,0x72,0x6f,0x8f,0x3c,0xc6,0x76,0x6e,0x3d +.byte 0x4e,0x93,0xb3,0x8b,0xad,0x24,0x17,0x39,0xc0,0xfe,0xba,0x90,0xc5,0xbd,0x4b,0xe4,0xae,0xac,0xf6,0x55,0x72,0x3e,0xf0,0x12,0x32,0x5a,0xdd,0x8a,0x3f,0x67,0xb6,0xdf,0xf6,0x11,0x02,0xf5,0x84,0xcc,0x7d,0x36,0xe7,0x1b,0xf0,0x9a,0x52,0xbe,0xf3,0x06,0xd6,0xdb,0x02,0xd4,0x80,0x0b,0xcd,0xf0,0xfe,0xec,0x86,0x3f,0x89,0x34,0xcb,0x88 +.byte 0x34,0x28,0x57,0x00,0x33,0xeb,0x4f,0xfa,0xdb,0xd8,0x09,0xd9,0x56,0x53,0xc1,0x02,0xc0,0xa8,0x4c,0xdc,0xfd,0x26,0xb3,0x55,0x1d,0x47,0x0d,0x68,0x50,0xb8,0xa3,0xb4,0xf1,0x31,0xfa,0x16,0x33,0x94,0x40,0x95,0x53,0x9c,0x9f,0x5b,0x25,0x47,0xb1,0x27,0xbc,0x38,0x7d,0x23,0x01,0x7f,0x70,0x7a,0x61,0x0e,0x46,0x5c,0xcc,0xd7,0xcc,0x15 +.byte 0x15,0x0a,0xed,0x4c,0x99,0x66,0x3a,0xc3,0xc1,0x9a,0x7a,0x38,0x6a,0x0c,0xde,0x13,0x67,0x65,0xfc,0x06,0x99,0x7c,0xa5,0x90,0x8a,0x90,0x58,0xce,0xf3,0x23,0x76,0xfc,0x03,0xfb,0xb3,0x36,0x54,0xa9,0x33,0x35,0xfe,0xe3,0x3d,0x53,0x7e,0xe0,0xae,0xcf,0xc0,0xa2,0xe1,0x28,0xb9,0x97,0x96,0x87,0x90,0xa1,0x13,0xd0,0x1d,0x5b,0x43,0xf1 +.byte 0xa5,0xfa,0x81,0x83,0xe7,0x7b,0xa1,0x5f,0x9f,0xf5,0xd3,0xb6,0x80,0x8b,0x91,0xed,0x31,0x14,0x05,0x78,0x85,0x9d,0xea,0x59,0x69,0xa5,0x29,0xc5,0xf1,0xd7,0x9d,0xa3,0x8b,0x9d,0xe0,0x8d,0xc3,0x4e,0x2d,0xfa,0x1c,0x6c,0xd2,0xd7,0xcb,0xda,0x86,0x5d,0xb3,0x1a,0xb4,0x12,0xe3,0xa8,0xd7,0xe1,0x84,0xce,0x0e,0x06,0xd0,0x9e,0xf0,0xb1 +.byte 0x5b,0x2f,0x77,0x10,0x6f,0x41,0x2f,0x5b,0x48,0x43,0xf3,0xef,0xdb,0x09,0xdb,0x01,0x89,0xfc,0x7a,0x4a,0xc0,0x96,0x33,0xdf,0xbe,0x49,0x85,0xa7,0x88,0x93,0x05,0xf2,0x15,0x12,0x85,0x04,0x20,0x7d,0x8c,0xe2,0x0a,0xea,0xfe,0xed,0xbf,0x98,0xdb,0x9d,0x1f,0xaf,0x0f,0xbf,0xf7,0x12,0x4f,0x69,0x4e,0x87,0x09,0xf0,0xae,0x2a,0x4d,0x4c +.byte 0xbf,0xaa,0x08,0x2c,0x78,0x2d,0xbe,0xb9,0xf5,0x3c,0x4c,0xcd,0x75,0x93,0xc3,0x3c,0xc2,0x86,0x47,0xca,0xc1,0x9c,0x1c,0xe5,0x0d,0x8d,0x36,0x9c,0x44,0x40,0x89,0xfa,0x17,0x57,0x08,0xd4,0x22,0x9a,0x5b,0x94,0xbf,0x39,0xcd,0xbe,0xf7,0xd1,0xcd,0x35,0x74,0xdf,0xfa,0x5d,0x00,0xaa,0xaa,0x82,0x6d,0x9b,0xf8,0x69,0x51,0x9c,0xaa,0xaa +.byte 0xc8,0x2c,0xa2,0x68,0x57,0x3c,0x5f,0x10,0xa2,0x7b,0xee,0xc9,0x97,0x8d,0x5c,0x41,0x08,0x0d,0x30,0xd5,0x2b,0x5f,0x8d,0xdd,0xdc,0x2c,0xa8,0x52,0x6e,0xea,0x61,0x77,0xca,0x75,0xc3,0x56,0x6e,0x17,0x51,0x0e,0x00,0xb6,0x18,0xa0,0xe5,0x9d,0x49,0x4e,0x20,0x78,0x1e,0x5f,0x3e,0xec,0xc3,0x4a,0x41,0xf3,0xfe,0x89,0x64,0xac,0x4c,0x4d +.byte 0xa8,0x73,0x4f,0x31,0xc4,0xe2,0x62,0x69,0x2b,0x40,0xdf,0xef,0xed,0xf0,0x62,0x4e,0xc3,0x65,0xcc,0xcb,0xef,0xc1,0x28,0x61,0x71,0xac,0xa5,0x89,0x52,0x7b,0x32,0x59,0xc2,0x16,0x1a,0x63,0x18,0xb0,0xd8,0xe4,0x28,0x92,0xff,0x45,0xc1,0x24,0x56,0x86,0x66,0x23,0x7a,0xff,0xf7,0x33,0x30,0xdc,0xd1,0x7d,0xaf,0x68,0x10,0x4b,0xde,0x3e +.byte 0x4a,0x70,0xbe,0x31,0x1a,0x37,0x28,0xee,0xe0,0xba,0x65,0x8b,0x7d,0xea,0x07,0xce,0xf2,0x51,0x3d,0xcb,0xb2,0x33,0xd8,0xf3,0xa4,0xa0,0xcd,0x53,0x76,0xf9,0x46,0x5b,0x82,0xf9,0x9d,0x0e,0x29,0x5b,0xcf,0x76,0xd4,0x5c,0x47,0xf1,0x98,0x02,0x5a,0x16,0x18,0xf2,0x61,0x6d,0x3e,0x64,0x7f,0xbe,0x13,0x18,0xc2,0x45,0xd2,0x87,0x17,0xff +.byte 0xf1,0x01,0x0b,0x5d,0x21,0x0d,0x73,0x9a,0xeb,0x82,0xc4,0x9a,0xb3,0xe4,0x31,0x44,0x58,0xa2,0xfd,0x76,0xf6,0xbe,0x6f,0x75,0xcc,0xbb,0xe3,0xa2,0xa9,0x78,0x0f,0x4b,0x1d,0x47,0x2d,0x32,0x2c,0x45,0x5e,0xcd,0x8f,0x13,0xe2,0x9a,0x9d,0xa2,0xce,0x73,0x54,0x20,0xc0,0x44,0x1c,0x26,0xde,0x0d,0x72,0xb2,0xfa,0x4d,0x32,0x35,0xac,0x69 +.byte 0x4d,0x16,0x4a,0xd5,0x51,0x33,0xc1,0xe0,0x90,0x9c,0x93,0x66,0xed,0x16,0xac,0x7e,0x79,0x2b,0x0f,0xb4,0x42,0xaf,0x80,0x22,0x80,0x07,0x7d,0x72,0xe4,0xb3,0x3a,0x2c,0xb8,0x68,0x14,0x4d,0x31,0x5f,0xbb,0xac,0x43,0x3b,0x28,0xd6,0x81,0x81,0x26,0xe5,0xc4,0x67,0x7c,0x4a,0x42,0xc4,0x1a,0x59,0x04,0x2d,0xb8,0x26,0xfc,0x4e,0xc7,0xfc +.byte 0x11,0x61,0xe3,0x4b,0x2c,0x3f,0xdb,0x43,0xe4,0x24,0xb4,0xd1,0xc0,0xc0,0x01,0xe1,0xeb,0x84,0x0b,0x6d,0x93,0x83,0x07,0x9f,0x01,0xb8,0x9d,0xe5,0x7e,0x4d,0xa2,0x05,0x3e,0xf2,0x40,0x59,0x88,0xc8,0x8c,0x62,0x44,0x95,0x20,0x96,0x28,0xa9,0x3f,0x7c,0xed,0x85,0x03,0x65,0x49,0xf7,0x94,0x3d,0x51,0xe2,0x8e,0x21,0x19,0x7b,0x55,0x5f +.byte 0x55,0x70,0xf8,0xf0,0xce,0xd9,0x1a,0x10,0xbb,0xfe,0x65,0x72,0x8a,0x5b,0x6c,0x27,0xd3,0x57,0x61,0x07,0x7b,0x85,0xd6,0x21,0xd2,0x07,0x81,0xaa,0x17,0x73,0xb5,0xef,0x2d,0x84,0x7b,0x8f,0xe0,0xb3,0x9e,0x9f,0x31,0x82,0x33,0x07,0x14,0x84,0x79,0x18,0xc4,0xec,0x20,0xb5,0xec,0x21,0x4b,0x51,0x78,0x96,0xc6,0xe7,0xf0,0x6a,0x7a,0xb5 +.byte 0xe5,0xc2,0xef,0x24,0x4c,0x57,0xb6,0xf5,0xee,0xe5,0x69,0x2b,0x73,0x9e,0x66,0x91,0x9d,0xd4,0x24,0x58,0x4b,0x72,0x68,0xf6,0x62,0xb4,0x0c,0xe3,0xbd,0x1f,0x0b,0x42,0x6c,0xf9,0x6e,0x6a,0x64,0x64,0x69,0xa5,0x6d,0xe7,0x38,0x9f,0xb2,0x65,0x35,0x6b,0xd9,0x20,0x84,0xe4,0x5f,0x8b,0xfd,0x58,0xab,0x5f,0xe1,0x4c,0xf7,0xd7,0xf5,0xe7 +.byte 0xae,0xe8,0xc1,0x68,0xfe,0x0c,0xb1,0xe2,0xe4,0xca,0xf0,0xf1,0x20,0xbc,0xf9,0x99,0xef,0x4e,0x63,0xca,0x89,0xe4,0x7c,0x17,0x49,0x40,0x47,0xce,0x67,0x8e,0xbd,0xd0,0x96,0x8b,0x5a,0x0d,0x2f,0xd0,0x8f,0x4f,0x42,0x06,0x01,0x8e,0x47,0x35,0x13,0x9e,0xd1,0x24,0x85,0xe4,0x17,0x59,0xe8,0x1c,0xb3,0x25,0x53,0xf9,0xb4,0x96,0xb1,0x33 +.byte 0x97,0xb2,0x60,0xc7,0xb3,0x48,0xa2,0xfc,0x7f,0x86,0x94,0x2a,0xd3,0x94,0xfe,0x6d,0xa6,0x7a,0xa1,0xe1,0x96,0x5b,0xe8,0xe4,0x91,0xfb,0xf3,0x2c,0x84,0xb4,0x2f,0xbe,0xc9,0xdd,0x1c,0x9f,0x72,0x12,0xcb,0xbd,0x22,0x07,0xc4,0xec,0x05,0xe8,0x32,0x47,0x21,0x27,0xf6,0xc1,0x36,0x59,0x25,0x6c,0xbe,0xb9,0x3e,0xd4,0x1b,0x59,0x11,0x27 +.byte 0x6b,0xa3,0x64,0x71,0x98,0xeb,0x21,0x65,0xc0,0x4c,0x30,0xbd,0x51,0x2b,0xc3,0xfb,0xb1,0x33,0x56,0x1e,0xf0,0x92,0x0f,0x4b,0x63,0x3a,0x9c,0xfb,0xd1,0xac,0x8c,0xf0,0x3e,0xb7,0x0b,0xd2,0x52,0x62,0xd8,0x37,0x9a,0xef,0x79,0xdc,0xcb,0x87,0x1e,0x3d,0x9d,0x91,0x12,0xba,0x78,0x8a,0x11,0x57,0x96,0x44,0x8e,0x2b,0xd2,0xe3,0x4d,0x27 +.byte 0xec,0xba,0xef,0x1c,0x04,0x8d,0x56,0x56,0x11,0x74,0xc0,0xcc,0x1f,0x3d,0x7a,0xad,0x79,0x49,0x59,0xa3,0x71,0xe0,0xf5,0x89,0x89,0x8f,0xcf,0x1e,0x63,0x77,0x91,0x91,0xf1,0x0c,0x1c,0xcc,0x77,0x00,0xd7,0x28,0x9f,0x68,0xbc,0xb6,0x9d,0x33,0x43,0xb2,0x4a,0x72,0x3e,0x57,0x26,0xd0,0x00,0x93,0xc9,0x4c,0xc9,0x53,0x52,0xd9,0xe2,0x31 +.byte 0xc5,0x7f,0xf6,0xb6,0xc2,0x10,0x51,0x67,0xae,0x63,0x35,0x74,0xcc,0xd4,0x05,0xb3,0x08,0x23,0x35,0x37,0x8e,0xf1,0xbb,0x1d,0x56,0xff,0x62,0xa2,0x13,0x7b,0x01,0x75,0x6d,0xb3,0x92,0x51,0xdc,0x6e,0x08,0x76,0x25,0x52,0xbf,0x9a,0xea,0x89,0x0f,0x96,0xcc,0x79,0xd4,0x72,0xcf,0x65,0x79,0x4e,0x40,0xa3,0xae,0x67,0x0c,0x82,0x85,0x05 +.byte 0xfd,0x43,0x84,0x17,0x24,0x79,0xa9,0xa7,0x7f,0x24,0x76,0x57,0x66,0x11,0xd5,0x33,0x30,0x42,0x5b,0x5f,0x7c,0x04,0x4b,0x45,0xc3,0x69,0x20,0x02,0x92,0xe3,0x6a,0x06,0x8f,0xdf,0x30,0xf6,0x17,0x8f,0xc6,0x8c,0x5e,0x42,0xf3,0x59,0x7a,0x3a,0x55,0x3a,0xc1,0x96,0xd5,0x67,0x3d,0xab,0x32,0xee,0xf0,0x08,0x28,0x73,0xb0,0x11,0x1a,0x92 +.byte 0x4d,0xcc,0x0c,0x86,0xb2,0xa1,0xbf,0x9f,0xcd,0xc7,0x1c,0xbc,0xee,0x39,0x77,0x75,0xfc,0xe6,0x3b,0x62,0xf2,0xaf,0xd5,0xb6,0x77,0x2d,0x86,0x38,0x13,0x00,0xdb,0x71,0x4a,0x87,0x03,0x6d,0x99,0x28,0xf8,0x6a,0x23,0x2e,0xe2,0xb8,0x9c,0x18,0x02,0x00,0x9e,0x5b,0xf0,0x6f,0x9b,0x32,0xdc,0x6b,0x61,0xeb,0xeb,0xe9,0xfc,0xee,0x44,0xbc +.byte 0x4a,0x88,0x04,0xc0,0x10,0xc8,0x65,0x6c,0xa4,0xae,0x9a,0x36,0xb6,0x68,0xd5,0xbf,0x6d,0xe3,0x6f,0x5d,0xad,0xd6,0xf9,0xc8,0x06,0x36,0x25,0x64,0xc9,0x5b,0x71,0x7f,0xbf,0xe3,0x56,0x31,0x2a,0x93,0x47,0x46,0x39,0x91,0x80,0xc5,0xdd,0xdd,0xa1,0x25,0x85,0xd9,0x05,0x49,0x4f,0x1b,0xeb,0x2f,0x6e,0xd9,0xe4,0x65,0x3d,0xcd,0xbd,0x47 +.byte 0x37,0x27,0xb0,0xd1,0x9b,0xa4,0x89,0xd5,0xa0,0x0f,0x8b,0xc5,0xfd,0x91,0xa8,0x86,0x22,0x65,0xf1,0xe1,0x1e,0xb6,0xf7,0x50,0xe6,0x1e,0xf0,0x2b,0x9d,0x02,0xc9,0xe8,0x2a,0xb8,0x9b,0x89,0x28,0x25,0x43,0xcf,0x23,0x08,0xe2,0xa7,0x70,0x31,0x89,0xab,0x5b,0xd9,0x2e,0xa9,0xe4,0xe9,0x1d,0x63,0x7f,0xc6,0xc1,0xfb,0x63,0x45,0x9c,0xf1 +.byte 0xd4,0xc3,0x56,0xb6,0xad,0xb3,0x00,0xce,0x12,0x9e,0x63,0x33,0x25,0xd3,0xb2,0xee,0xa7,0x6b,0xa1,0xfd,0x20,0xa3,0xb2,0x07,0x1a,0x9d,0xed,0xe0,0x1d,0x70,0x5b,0x9f,0xc0,0xbc,0x83,0x09,0x94,0x47,0x8c,0x05,0xef,0x73,0x96,0x31,0xc7,0x35,0xc2,0x2c,0x00,0x2a,0x68,0xd1,0xc4,0xb3,0x3d,0x84,0x44,0x8c,0x93,0xfd,0x64,0x00,0x77,0x46 +.byte 0x18,0xac,0x83,0x9d,0xe5,0xe5,0x46,0x61,0x37,0x72,0x9f,0x0e,0x76,0x55,0xf7,0xca,0x36,0x57,0x24,0x16,0xfc,0x11,0x27,0xaa,0x44,0xa4,0xb0,0x58,0x41,0x46,0x94,0xc7,0x3b,0x9c,0xa3,0xe4,0x89,0xd9,0xdb,0x7b,0x64,0x69,0x84,0x9f,0xc8,0x09,0x6f,0xf7,0xf0,0x58,0x10,0x56,0x9f,0x26,0xf0,0x74,0x0c,0x76,0xcb,0x9d,0x45,0x3d,0xe7,0x94 +.byte 0x54,0xa3,0x84,0x08,0xb5,0x9c,0xff,0xdb,0xba,0x62,0x5e,0x87,0x0d,0x11,0x5d,0x96,0x06,0xd6,0xec,0xf4,0x3e,0x9d,0x66,0xbd,0xc4,0x64,0xed,0x03,0xe0,0xad,0x3f,0x4e,0xb4,0xef,0x16,0xdd,0xee,0xd6,0x00,0x27,0x62,0x74,0x0a,0xe0,0x68,0x72,0x4c,0x6d,0x62,0x15,0x87,0x6a,0xf0,0x25,0x9f,0x33,0x1d,0x92,0x3b,0xa3,0xa4,0xf1,0x81,0xdf +.byte 0xa8,0xed,0xaf,0xa5,0x8d,0x19,0x20,0x72,0x03,0x91,0xf0,0x34,0x60,0x70,0xbe,0xaa,0xdf,0xaa,0x24,0x1a,0x1f,0x1a,0x8d,0xb0,0x7b,0xef,0x10,0x43,0x69,0x24,0x74,0xf2,0x72,0x71,0xa1,0x8f,0x85,0x75,0x3e,0x8c,0xf6,0x0e,0x88,0xe2,0x1d,0x5c,0xb8,0xf1,0xc4,0x8a,0x21,0x76,0x20,0x50,0x3f,0xb3,0x8b,0x9f,0xa4,0x45,0x9e,0x07,0x60,0x22 +.byte 0x2c,0xa6,0xb1,0xc2,0xd2,0xcb,0xc6,0xd8,0xe9,0x94,0x66,0xfb,0x10,0x73,0x92,0x25,0x7e,0x31,0x42,0xf4,0x4a,0x75,0xac,0x78,0x43,0xcb,0xc0,0xc9,0xb0,0xaf,0xb4,0x22,0x8f,0x51,0x36,0x0f,0x5a,0xb8,0xbb,0x44,0x03,0x09,0xd0,0xf9,0x04,0xc8,0x73,0x8e,0xa1,0x76,0x27,0xde,0x72,0xf4,0x3a,0x79,0x63,0x85,0x32,0x09,0xad,0x12,0xe4,0xd7 +.byte 0x8f,0x8e,0x24,0x03,0x4f,0xde,0x39,0xac,0x81,0xe8,0x64,0x09,0x17,0xd7,0x99,0xe6,0x62,0xb7,0x53,0x20,0x9f,0xb9,0x3a,0xb9,0xb1,0x81,0xfa,0x6e,0x33,0xe7,0x4a,0xca,0xd7,0xa7,0xfa,0x7a,0xbf,0x0b,0x0a,0x99,0x3c,0xc7,0xbd,0xef,0xc7,0x90,0xda,0x62,0x30,0xc6,0x94,0x94,0x6b,0xee,0xbd,0xb7,0x0d,0x86,0xc5,0xb1,0x9a,0xb9,0x86,0x34 +.byte 0xc2,0x81,0x2b,0x09,0x7a,0x88,0x09,0x65,0xcf,0x51,0x78,0x19,0x1d,0x5a,0x62,0x2f,0xb3,0x43,0x8d,0xf5,0x9d,0x26,0x2f,0x4a,0x27,0x96,0x22,0x1b,0x4c,0xc8,0xd9,0x73,0x4b,0x32,0x01,0x11,0x7b,0x59,0x85,0xda,0x50,0x92,0x17,0x45,0xd4,0x1f,0xcf,0x98,0xf6,0x2c,0x69,0xba,0x43,0x22,0xdc,0x36,0x31,0xfb,0x1e,0xe8,0x54,0x24,0x0f,0x24 +.byte 0x4c,0xcd,0xbe,0xdb,0xd8,0x23,0x69,0xe2,0x97,0xf5,0x66,0xb2,0x66,0x6c,0xf2,0x90,0xd0,0x15,0x14,0x9a,0x47,0x65,0x97,0xb0,0xf2,0x3e,0x35,0x09,0xd2,0x3d,0x01,0x9c,0xb3,0xfd,0xf3,0x32,0x46,0x4e,0x11,0xab,0x88,0x9e,0x04,0x6d,0xf0,0xe1,0x9d,0x48,0x01,0x24,0xc3,0x87,0xdf,0x58,0xb6,0x6d,0x6d,0x4f,0xb9,0x1b,0x13,0xee,0x03,0x5b +.byte 0x75,0x39,0x28,0x31,0x90,0x70,0x49,0x10,0x71,0x87,0x76,0x30,0xac,0x88,0xb0,0xf6,0x6c,0xaf,0x5b,0xf4,0xf3,0xe7,0x25,0x75,0x8c,0xa3,0xf4,0xa7,0xd8,0x94,0x78,0xc8,0x77,0xc1,0x48,0x6c,0x62,0xf6,0x2c,0xb5,0x41,0x59,0xf6,0xd3,0xae,0x1b,0x55,0xed,0xdf,0xd1,0x59,0x63,0x76,0x03,0x65,0xd3,0xd0,0xcd,0xb6,0x5b,0x8f,0x1a,0x78,0x88 +.byte 0x78,0x07,0x14,0x3f,0xc3,0xd4,0x1c,0x69,0xd8,0x15,0x25,0xca,0x76,0x15,0x24,0x7d,0xed,0x69,0x2a,0xb5,0x04,0xd2,0x3b,0xbd,0x7a,0xb2,0xae,0x04,0x51,0x85,0x2b,0x1b,0xb0,0x3f,0x6d,0xbc,0xa0,0xc7,0x19,0x40,0xab,0x75,0x51,0x4b,0xa8,0x5a,0xd7,0xb5,0xc7,0xa8,0xfc,0x4a,0xcf,0xa9,0x9c,0xe6,0x2e,0x35,0x51,0x3b,0x05,0x41,0x43,0x7c +.byte 0x1f,0x2e,0x16,0x5d,0x2f,0xa8,0xe9,0xce,0x6d,0x06,0xa7,0x5a,0xed,0x07,0x39,0xe4,0x7e,0xc3,0x01,0x2d,0x97,0xe4,0xc1,0x89,0x2c,0xb4,0xb1,0xb5,0x7f,0x0a,0xe2,0x9f,0x82,0x36,0xee,0x9b,0x76,0xbc,0x9d,0x37,0xdf,0x5e,0x81,0x95,0x9b,0x2b,0xc4,0x58,0x20,0x6a,0xd2,0xc7,0xb6,0x82,0xe6,0xa2,0x52,0x73,0x4a,0xaf,0x37,0x5a,0xf6,0x6b +.byte 0xc4,0x2b,0x53,0x4e,0xca,0x44,0x17,0x9f,0x1c,0xeb,0x4d,0xf2,0xd1,0xb0,0x35,0xaa,0xc3,0xfe,0x77,0x34,0x2a,0x4a,0xe8,0x85,0x96,0x2f,0xa4,0x7d,0xdf,0xd0,0x6a,0x4a,0x0c,0x9b,0xd9,0x6a,0x00,0x92,0xb4,0xb1,0x9f,0xc3,0x56,0xee,0xcb,0xa5,0x3a,0x37,0x68,0xc8,0x7c,0x1e,0xa8,0x0a,0x3d,0xbc,0xd1,0xd0,0xd7,0x8b,0x32,0x34,0x20,0xfc +.byte 0xd3,0x9e,0xf5,0x18,0x3a,0xb9,0x87,0xae,0xde,0x6c,0xc0,0x7d,0xbd,0x20,0x00,0xe5,0x7b,0xcb,0xf9,0x7d,0x70,0x9a,0x10,0x45,0xc9,0x33,0x13,0x9d,0x2c,0x16,0x67,0xe6,0x36,0x38,0xcf,0xa2,0xf1,0xad,0xec,0x48,0x7f,0x9b,0x2a,0xdc,0x13,0xe2,0xee,0xef,0xf2,0x5c,0x3f,0x52,0x3a,0x72,0x79,0x9b,0xba,0x50,0xb2,0x2b,0xfb,0x97,0x8e,0xe6 +.byte 0x27,0x39,0x63,0x72,0x05,0x11,0x7d,0x2e,0xa8,0x44,0x08,0xf7,0xf3,0x26,0xe5,0xe4,0x6c,0x98,0x7b,0xb1,0x42,0x6d,0x74,0xd4,0x3b,0xfa,0x35,0xfa,0x0a,0xac,0x5e,0x9e,0x8f,0xc7,0x07,0xc5,0x50,0x25,0xfd,0xbf,0x13,0x52,0x3d,0xf1,0x18,0x1e,0x19,0x8c,0xf3,0x8b,0x4d,0xc8,0xfb,0x76,0xa4,0xe3,0x3f,0xb2,0x47,0x9c,0x50,0x97,0x32,0x65 +.byte 0x9e,0x42,0x81,0x21,0xd1,0x92,0xd2,0x81,0x4a,0x93,0x68,0xa2,0xc1,0x76,0xc8,0x40,0xce,0xfe,0x4e,0xc5,0xa7,0xb2,0x77,0x9f,0xc8,0xe5,0x41,0xb1,0xda,0x15,0xf6,0xfa,0x21,0x3f,0x11,0x5c,0xc6,0x62,0xda,0x01,0x7f,0x0f,0x9f,0x9e,0x98,0xfe,0x38,0x53,0x6c,0x7f,0xba,0x8b,0x55,0x01,0x36,0x33,0x41,0x5e,0xa9,0x78,0xbf,0x2e,0x60,0x4f +.byte 0xcb,0xe9,0x27,0x09,0x8c,0x01,0x2d,0x82,0x7d,0x3f,0xaf,0x8f,0x1e,0x37,0x79,0x35,0xfb,0xce,0x83,0xc5,0xf8,0xc5,0x54,0xfd,0x50,0xec,0x31,0xd1,0xb5,0x8a,0x4d,0x37,0xf6,0x7f,0x0e,0xbe,0x35,0xdd,0xa8,0x9e,0x5e,0xb9,0x3c,0xf4,0x2b,0xd2,0x97,0x56,0xd0,0x28,0xcb,0x60,0x27,0xcf,0x27,0x68,0x8a,0xa1,0xbf,0x9f,0xa3,0x45,0x4a,0x44 +.byte 0x71,0xe2,0xb2,0x9c,0x69,0x0b,0x18,0x69,0xcf,0x03,0xcc,0xc3,0x93,0xe0,0xf5,0xb7,0x4e,0xa4,0xdc,0x96,0xe0,0x2e,0xf8,0x3b,0xc6,0x67,0x30,0x06,0x5e,0xb9,0xb9,0x7d,0xaf,0x97,0x38,0x9a,0xf4,0x22,0x20,0x5a,0x9e,0x83,0x26,0x3c,0xcc,0x93,0x84,0x20,0x15,0x2e,0x85,0x23,0x17,0x1d,0x28,0xb4,0xe2,0x8f,0x2d,0x22,0x99,0x66,0xfd,0x6a +.byte 0xa8,0xe6,0xb7,0x19,0x18,0xec,0xbd,0x54,0xc2,0xcc,0xb7,0xb4,0x6b,0x10,0xdd,0xb5,0xe3,0x3b,0xb7,0x77,0xbf,0x66,0x65,0x82,0x6a,0xc6,0x0d,0x26,0xe6,0xe8,0xe1,0x96,0xe4,0x0b,0x3c,0xe3,0xf2,0xfb,0xd6,0x91,0x5d,0xb6,0x08,0x15,0x67,0x10,0xfa,0xf8,0xdc,0x72,0x84,0xca,0x48,0x29,0x75,0x98,0x62,0x30,0x43,0xa9,0xf1,0xde,0x58,0xb5 +.byte 0x6e,0x67,0x53,0x62,0x0d,0x06,0xa8,0x97,0x35,0x04,0x02,0x34,0x3f,0xd7,0x77,0x38,0xed,0x51,0x32,0x7c,0x6f,0x25,0x94,0x04,0x30,0xa5,0xfc,0xf1,0xb0,0x65,0x77,0x16,0xec,0xb0,0xf9,0x6d,0xaf,0xbc,0x75,0x6e,0x29,0x44,0x20,0x86,0x36,0xbe,0x22,0xe0,0xe1,0xc4,0x0c,0x97,0x10,0x45,0x3e,0x06,0xc3,0xee,0xa5,0x1f,0x97,0xc7,0xde,0xdb +.byte 0xf1,0x05,0xe3,0xb7,0x24,0xc5,0xa5,0xca,0x4e,0x8e,0x9e,0x44,0x7e,0x98,0xb1,0x3c,0xe9,0xa6,0xe5,0xa6,0x08,0xcb,0x08,0xd7,0xf6,0x38,0x37,0xa4,0x46,0xd1,0xdc,0x53,0x6f,0x6c,0x3f,0xca,0xa1,0x9b,0x7c,0xa6,0x44,0xd4,0x08,0x33,0xd2,0xf8,0x32,0xd2,0x4f,0x60,0x75,0x0f,0x49,0xf1,0x70,0x52,0x56,0x16,0x5b,0x3e,0x34,0x0e,0xe4,0x94 +.byte 0xc3,0xa9,0xd4,0x1c,0x9e,0xa4,0x10,0xce,0xc1,0x69,0x5b,0x3a,0xc9,0xd5,0xab,0x98,0x81,0x78,0x42,0x7e,0xf2,0x76,0x10,0xad,0x97,0x85,0x98,0x2f,0xe2,0x3f,0xb1,0x1d,0xc0,0x4d,0xa4,0x0b,0x54,0x7e,0x19,0x16,0x0a,0x71,0x74,0x37,0xfd,0x67,0x23,0x86,0xb2,0x3b,0x1e,0x49,0x92,0x92,0x1b,0x5f,0x65,0x56,0x76,0x6d,0x97,0x3b,0x91,0xc0 +.byte 0x5a,0x7e,0xf1,0x5b,0xe9,0x83,0xb9,0x67,0x2f,0xe1,0x0c,0xcf,0xe9,0x51,0x26,0x45,0x03,0x06,0x63,0xa4,0xb2,0x06,0xe0,0x8e,0xa3,0xbf,0xf5,0x7c,0x19,0xdf,0xfe,0x38,0x28,0x98,0xa1,0x23,0x16,0x69,0xc4,0x9f,0x20,0xe4,0x42,0x27,0x4e,0x7b,0xc9,0x42,0x5e,0xd2,0xb9,0xbf,0x33,0x03,0xbb,0x96,0x6d,0x80,0x65,0x90,0x3b,0x82,0x5b,0x68 +.byte 0x46,0x4f,0xe3,0xe0,0x0e,0xc5,0x90,0x91,0x80,0xf8,0xf4,0x9c,0xfe,0x03,0xaf,0x31,0x44,0xb7,0xfc,0x1f,0x65,0xc8,0x65,0x68,0xcc,0x27,0xb4,0x0d,0x81,0x14,0x9e,0x52,0xab,0xdd,0x71,0xf6,0xd9,0xcf,0x29,0x04,0xcd,0xae,0x6f,0xd6,0x41,0xb5,0xfd,0x1d,0x0f,0xbf,0x71,0xc2,0x60,0x98,0xb9,0xc0,0x6e,0x8a,0x2c,0x7d,0xec,0x31,0xa5,0xea +.byte 0x1a,0xb1,0xe4,0xc2,0x36,0xcb,0xf0,0xf4,0x3f,0x1d,0x03,0x01,0xcd,0xac,0xd0,0x9d,0x2e,0xa3,0xc4,0x54,0x49,0x75,0x90,0xac,0x7e,0x1e,0xc3,0x90,0xab,0x55,0xb0,0x34,0x0d,0xd6,0x99,0xb5,0x40,0xda,0xdd,0x30,0x57,0x61,0x15,0xec,0x8f,0x8c,0xc7,0xda,0xfc,0xf5,0x0a,0x86,0xd8,0x6b,0x0f,0x6e,0x09,0xb8,0x50,0x2a,0xea,0x51,0x84,0x33 +.byte 0x7a,0x97,0x0c,0x56,0x61,0x2c,0xd9,0x83,0xb9,0xb1,0x53,0x31,0x72,0x20,0x79,0x85,0x7f,0xdc,0xb8,0xfe,0xfa,0x9a,0xd4,0x6a,0x3c,0xc7,0xcc,0x75,0x20,0xba,0x9c,0xb9,0x1a,0xff,0x9c,0xbe,0xfd,0x87,0xb4,0xd7,0xe8,0x5e,0x22,0x6a,0x1b,0x91,0x52,0x6a,0x58,0xbc,0xf4,0xde,0xcc,0x18,0x37,0x0e,0xf5,0x22,0x91,0xd2,0x4f,0x08,0x91,0x62 +.byte 0x1c,0xb7,0xa0,0x7e,0x66,0x97,0xda,0xa0,0x3c,0xc8,0xe8,0xdc,0x61,0xa4,0x64,0x8b,0x0a,0x43,0x90,0x0c,0x78,0xd9,0x96,0x8a,0xb0,0x17,0x0f,0x32,0x17,0x11,0x82,0x69,0x9d,0x7c,0xa9,0xfd,0x9b,0xe3,0xeb,0x0d,0x44,0x1d,0xcb,0xf6,0xee,0x26,0x6b,0xd5,0x4c,0x49,0x69,0x18,0xd7,0xf3,0x63,0xd9,0x7e,0x83,0xdd,0xa3,0x2d,0xdf,0x88,0x10 +.byte 0xd1,0x5c,0xb0,0x7e,0x44,0xfe,0x64,0x39,0x33,0x05,0x04,0x54,0x74,0x4d,0xd5,0xbc,0xdf,0x19,0x52,0x81,0x60,0x92,0xc5,0x4e,0xa4,0xff,0xf0,0xa2,0xfd,0x88,0x96,0xde,0xb4,0x8d,0x58,0x06,0xfb,0x96,0x6f,0x0e,0xb0,0x4a,0x2b,0xed,0x15,0xa7,0xfb,0x9f,0xf2,0x30,0xc4,0xce,0x02,0x4d,0x83,0xb8,0x5d,0x10,0x60,0xb8,0xbc,0x05,0xa2,0xd4 +.byte 0xf1,0xae,0x46,0x56,0xb9,0xac,0x68,0x79,0x41,0x90,0xee,0x79,0xda,0x3a,0x91,0x7a,0xf6,0xdb,0xe3,0xea,0x91,0x48,0x77,0x4a,0xa3,0xab,0x9c,0x99,0x49,0x1f,0xc9,0xcd,0xe7,0x2e,0xe3,0xe7,0x78,0x6d,0x07,0x1b,0xc6,0x08,0x48,0xd8,0x20,0xff,0x19,0x8a,0x73,0x1d,0xc6,0xa1,0xd4,0x95,0x33,0xf7,0x45,0xab,0xea,0x05,0x3e,0xdf,0xde,0x68 +.byte 0xb2,0xb6,0xef,0x71,0xb4,0xd1,0x09,0x4b,0x43,0x16,0x35,0x1a,0xb6,0xcb,0x78,0x63,0xca,0x9e,0x9a,0xe3,0x86,0xb2,0x8e,0x7b,0x68,0x89,0xa7,0x5c,0xd3,0x06,0x21,0x88,0x94,0xde,0xa1,0xb1,0x3a,0xe8,0xb7,0xfa,0x58,0xc5,0xc8,0x01,0xfa,0x56,0xe4,0x0e,0x6b,0xeb,0x5d,0x67,0xf4,0x63,0xd4,0x44,0xe2,0xe7,0x42,0xfe,0x09,0x58,0xdf,0xd9 +.byte 0x1d,0xb7,0x14,0x91,0xac,0x88,0x49,0xf6,0x7c,0x03,0x92,0x11,0xb4,0x66,0x68,0x6c,0x94,0x2a,0x22,0xaf,0xa6,0xb1,0x29,0x2a,0xae,0xdd,0xa8,0x65,0xe4,0xa9,0x39,0x00,0x1e,0xca,0x17,0x99,0xba,0xd6,0xf2,0x20,0x21,0xbf,0x1a,0xab,0xca,0x7c,0x92,0x22,0xee,0x3c,0x0c,0xc6,0x63,0xcc,0x86,0xfe,0xc0,0x8f,0xac,0x18,0x4e,0x2b,0xa5,0x2e +.byte 0x46,0x57,0x8a,0xbf,0xdc,0xd1,0xd2,0x2c,0x5b,0xe2,0x96,0x81,0xca,0x41,0xb5,0x17,0x38,0x4a,0xa4,0xd2,0x0e,0xac,0x5d,0xe9,0x44,0x63,0x1b,0xb8,0x81,0xd6,0x69,0x1c,0x99,0xc5,0xdb,0xdd,0x18,0xc1,0x6d,0x28,0x7d,0x36,0x52,0x82,0xaa,0x1a,0x10,0x01,0x9d,0xf1,0x7b,0x09,0x69,0x56,0xb1,0x31,0xa3,0x54,0x3c,0x56,0xf9,0x82,0x8c,0x06 +.byte 0x5a,0x32,0x2d,0xc0,0x7c,0x7e,0x91,0x6d,0x73,0x7b,0x7c,0x45,0x0b,0x2c,0x2a,0x4f,0x3c,0xea,0x6b,0x2b,0x84,0x76,0xab,0x8d,0x4c,0x5c,0x64,0xa3,0x97,0x9f,0x56,0x20,0x05,0xf9,0xc2,0x20,0xf3,0xd0,0x6a,0x7f,0x7d,0x12,0xfc,0x20,0x52,0x5d,0xff,0x92,0xaf,0x4e,0x7f,0x8f,0x2f,0xd0,0x73,0x06,0x23,0x09,0xce,0x11,0xc0,0x1b,0x48,0x7d +.byte 0x11,0x51,0x06,0x0e,0x05,0x95,0xca,0x42,0x71,0x87,0xa3,0xa3,0xc1,0x27,0xf8,0xb1,0x24,0x92,0x38,0x95,0xf6,0x8f,0x3b,0x70,0x74,0x19,0x9b,0x08,0xb3,0x49,0xe9,0x57,0xd4,0xce,0x5b,0xdd,0xab,0x95,0x26,0xe9,0x70,0x21,0xef,0x16,0xdd,0x36,0x89,0xe5,0x9e,0xaf,0xc5,0x28,0x0c,0xd3,0x67,0x64,0xbc,0xfb,0x18,0x17,0x15,0x1e,0xa7,0xb7 +.byte 0x72,0x3d,0xfd,0x10,0x5c,0xa2,0xc1,0xbf,0x62,0x79,0x2b,0xa7,0xb9,0x1f,0x73,0xe6,0x11,0xd8,0xbc,0x74,0x6c,0x45,0x95,0xef,0xa2,0xda,0x90,0xc3,0x00,0x00,0xbb,0xc7,0x28,0x36,0x82,0xd4,0x5e,0x5c,0x11,0xea,0x7c,0xf6,0x79,0x66,0xff,0x93,0x77,0x49,0x05,0xc9,0xc1,0x8d,0x5c,0xf6,0xff,0xb9,0xf9,0xcd,0xb3,0x01,0x83,0x83,0x43,0x2d +.byte 0xa1,0x90,0x73,0xc9,0x32,0xae,0xdb,0xd0,0xf3,0x61,0x63,0x72,0x06,0xde,0x21,0x7b,0x3b,0x2d,0xec,0xd3,0x1d,0xfe,0xbd,0x6e,0xd8,0xe3,0x39,0xe0,0xa1,0x9f,0x67,0xaf,0xab,0x79,0xbc,0x59,0xf9,0xa7,0xdf,0x28,0x75,0xea,0x34,0x6b,0x25,0xde,0x49,0x1b,0x07,0x95,0x19,0x47,0x86,0x46,0x7b,0x68,0x30,0x70,0xec,0x9c,0x05,0xb6,0xc9,0x00 +.byte 0x68,0x10,0x4b,0xc4,0xe5,0xf1,0x67,0x3f,0xd4,0x3c,0xd6,0x49,0x98,0x71,0x23,0xff,0x07,0x6e,0x01,0x01,0x08,0x08,0x3d,0x8a,0xa1,0x71,0xdf,0x25,0x1a,0xef,0x60,0x86,0x6d,0x1c,0xd9,0x90,0x29,0x95,0xf2,0x4c,0x96,0xd3,0x17,0xe8,0x96,0x32,0x25,0x8c,0x65,0x38,0xbc,0x44,0x6a,0x5a,0xef,0x5a,0x72,0x12,0x43,0x2b,0xaf,0xc3,0xdc,0xb3 +.byte 0x6c,0x9f,0x57,0x61,0x2f,0x12,0x3f,0x72,0x16,0x4f,0x34,0xe3,0xb5,0xca,0x72,0xca,0x1c,0xdb,0xd2,0x8d,0x70,0x1f,0x19,0x75,0xb3,0x1b,0xdf,0xdb,0xb3,0xbf,0x6c,0x9a,0x70,0x64,0xa8,0xac,0x30,0x2d,0x4b,0x30,0xf5,0x4f,0x12,0x19,0xbd,0x65,0x25,0x70,0x33,0xe1,0x6f,0x18,0xdf,0x17,0xec,0xa3,0x80,0x51,0x6e,0xbb,0x33,0xa5,0xa8,0x58 +.byte 0x95,0x3c,0xab,0x86,0xd1,0x33,0xbe,0x55,0x04,0x8c,0x20,0x0d,0xfc,0x1a,0xa9,0x9d,0xb1,0x16,0x42,0x56,0x20,0xcc,0xa6,0x73,0xa0,0x85,0x3d,0xbf,0x1e,0xe0,0x01,0x51,0xd2,0xd7,0x2e,0x9d,0xd8,0x3c,0xea,0x03,0xf9,0x9a,0xbf,0x19,0x17,0x04,0x99,0xaf,0x8b,0xfc,0x9c,0x86,0xdf,0x58,0x78,0xfc,0x54,0x0d,0xac,0x26,0x27,0x2f,0x2e,0xbc +.byte 0xdd,0x4a,0xd5,0x6f,0x7c,0xd8,0x93,0xe3,0x51,0x9e,0xcc,0xc8,0xd2,0xfe,0x68,0xfb,0x5b,0x22,0xda,0xef,0x76,0xb9,0xc3,0xdd,0x13,0x52,0x24,0xb6,0x23,0x1f,0x69,0x22,0xb6,0xf5,0x86,0xff,0x2e,0x6e,0xd0,0xe0,0x21,0xbc,0x31,0x81,0xb5,0xc5,0xdb,0x36,0x58,0x44,0xe7,0xb8,0xf7,0xfd,0xd3,0x34,0xee,0xab,0xe6,0x99,0xf2,0x84,0x86,0x9b +.byte 0x67,0x45,0x08,0x07,0x66,0xae,0x6a,0x55,0xa2,0x74,0x46,0xda,0x02,0x82,0x67,0x93,0x60,0x64,0x5d,0x1f,0xac,0xe7,0x36,0xb6,0xcd,0x31,0x28,0x78,0x93,0xcd,0x54,0xe9,0x42,0xbb,0xb4,0xb3,0x15,0x72,0x12,0x31,0x85,0x15,0x68,0x3a,0x31,0x35,0xd6,0xc9,0x0d,0x3f,0xa0,0x4b,0x36,0x03,0xda,0xfd,0x7a,0xd6,0xce,0x0c,0xf5,0x14,0x23,0x71 +.byte 0x47,0x85,0x64,0xe7,0xe7,0x8b,0x8e,0x25,0x03,0x32,0x5f,0xa9,0x3b,0xdb,0x2b,0x27,0x7c,0x02,0xfb,0x79,0xd7,0x7a,0x76,0x75,0x69,0xfd,0x74,0x24,0xd2,0x72,0x8c,0xdd,0xc5,0xa1,0x45,0x90,0x50,0x65,0x95,0x41,0xae,0x7e,0x5c,0x83,0x3e,0x24,0x3c,0x02,0xa9,0x37,0x49,0x36,0x63,0x2f,0x18,0x92,0x3a,0x8a,0xe5,0x2a,0x6a,0x5c,0xa7,0x3e +.byte 0x98,0x24,0xfd,0xd9,0x3b,0x2d,0x4c,0xe2,0x8e,0x05,0x5b,0xdd,0x47,0x0f,0x19,0x5a,0x62,0x94,0xd6,0x6e,0x45,0xd8,0x99,0x43,0x78,0xa0,0xb1,0xdf,0x68,0x8a,0x56,0xa8,0xfb,0x2e,0x52,0x4e,0xfa,0x21,0xec,0x62,0x14,0xf5,0x90,0xdb,0x8c,0x02,0xa7,0xff,0x29,0x22,0xb8,0x40,0x87,0x58,0xda,0x4e,0xfd,0xab,0xeb,0xa2,0x40,0xce,0xfc,0x58 +.byte 0x46,0x37,0x3f,0x04,0x4e,0x36,0x76,0x44,0x3c,0xfc,0x54,0xb8,0x6f,0x4b,0x66,0x6a,0x4a,0x78,0x8f,0x33,0x86,0x07,0xe4,0x3c,0xb5,0x0f,0x86,0x2e,0x21,0x7e,0x44,0xce,0x18,0x77,0xe0,0xcc,0xd7,0x7f,0xc9,0xac,0xb7,0x2b,0x94,0xb5,0x91,0xcd,0x2c,0xfa,0xc7,0x98,0xbd,0xb0,0x2a,0x85,0x77,0xcf,0x82,0xd9,0xae,0x76,0x33,0x34,0xc0,0x9d +.byte 0x3a,0xbc,0x27,0xbc,0x97,0x25,0xf4,0xf1,0x43,0x53,0xac,0xf6,0xde,0xf5,0x1f,0xa6,0x6a,0xd5,0xe3,0x11,0x32,0x49,0x46,0x5b,0x56,0x68,0x07,0xdb,0x03,0xad,0xc2,0x35,0x16,0x8f,0x01,0xcc,0x8a,0xd2,0x0c,0x6b,0xb2,0x62,0x73,0x99,0xb5,0x74,0xf1,0x4b,0x2e,0xbc,0x8e,0xed,0xc0,0x55,0x56,0x40,0xae,0x24,0xf2,0x7e,0x1f,0xba,0x9d,0xc4 +.byte 0xd1,0x69,0xd3,0xba,0x21,0x83,0xf5,0xc4,0xbf,0x78,0x96,0x74,0xa1,0xd8,0x8c,0x35,0xba,0x9f,0xa0,0x0f,0xb5,0x6a,0xb2,0x72,0x52,0xfa,0x02,0x71,0xbb,0x79,0x61,0xbd,0xa9,0xee,0x22,0x7c,0xc5,0xac,0x6b,0x52,0x67,0xab,0xc4,0xd2,0x8d,0x26,0x1c,0x2b,0xaf,0x0c,0xa4,0xce,0xb5,0x11,0x99,0x4d,0x22,0x69,0x68,0xe0,0xc6,0x3e,0x84,0x3d +.byte 0xeb,0xad,0xc9,0x5b,0xb5,0xb4,0xba,0x06,0x9b,0x0a,0xb2,0x54,0x89,0xf2,0xb0,0x5f,0x41,0xb4,0x8b,0x21,0x31,0x29,0x94,0x52,0x1e,0xa7,0xc4,0xc2,0x97,0xb9,0x74,0x95,0xa3,0x30,0xfb,0x02,0x77,0x01,0x4f,0x32,0x03,0x34,0x8f,0x51,0x2d,0x10,0x61,0xee,0xc5,0x2f,0x89,0x42,0x3c,0xbe,0xed,0x66,0xa6,0x7a,0x10,0xc6,0x06,0x7e,0xb2,0x3d +.byte 0xf2,0xc9,0xd1,0x08,0x97,0x6c,0x6f,0x6d,0x06,0x9d,0x72,0xd0,0x5e,0x79,0x3b,0xa5,0xa5,0xd0,0xdc,0xc6,0xda,0x73,0xd2,0xf3,0x0a,0xfd,0x94,0xc2,0x9c,0x4b,0x85,0x38,0x8d,0xb2,0xfb,0x29,0xdd,0x90,0xc2,0xb7,0x8f,0x2c,0x52,0xa2,0x32,0x5e,0xa1,0x0f,0x62,0x38,0x58,0xfa,0x46,0x4e,0x87,0x4b,0xcf,0xc5,0xe9,0xfc,0xf2,0x97,0x62,0xdd +.byte 0x92,0xd2,0x41,0x7b,0xa2,0x2a,0xae,0x6e,0x4d,0xbc,0xef,0x43,0x18,0x6e,0xbb,0xe5,0x06,0x45,0x53,0xa1,0x00,0xef,0xf5,0x4b,0xad,0xbd,0xa5,0x2c,0x77,0x0a,0x37,0x04,0x22,0x95,0xeb,0x7b,0xc1,0x3c,0x20,0x0a,0x44,0xdf,0xa2,0x23,0xc9,0xfc,0x85,0xf3,0x5b,0x9b,0x0f,0x40,0x2a,0xe3,0xc7,0x5a,0xa1,0xf6,0xe4,0x39,0x2a,0xfe,0xd7,0xe7 +.byte 0x33,0xd8,0xbc,0xd6,0x1f,0xef,0xac,0xa9,0x3f,0x2d,0x55,0xb0,0x85,0x74,0xef,0xeb,0xcd,0x9b,0x23,0xa3,0xe6,0x19,0xde,0xea,0x7c,0x9c,0x83,0x48,0x4b,0x12,0xfd,0xe3,0xcb,0x1b,0x70,0x2d,0x9f,0x2c,0x13,0x82,0x87,0x68,0xca,0x60,0x5e,0xc0,0x2e,0x60,0xde,0xf2,0x6b,0x78,0x0a,0x63,0xaa,0x9c,0x9b,0x61,0x63,0xc7,0x0c,0x98,0x92,0x68 +.byte 0xc7,0x44,0x00,0x6a,0x76,0x43,0xa0,0x61,0x7c,0x37,0x62,0x1a,0xd4,0x9b,0x58,0x59,0xe5,0xae,0x78,0x79,0x80,0xf0,0x75,0x68,0x9e,0xab,0x02,0xb8,0x00,0xc5,0x33,0x0d,0xea,0xb1,0x91,0x0f,0x17,0x57,0x96,0x23,0x8d,0x36,0x4d,0x89,0x94,0x42,0xc9,0x61,0x6e,0xf6,0x9f,0x37,0xee,0xa5,0x4b,0x3d,0x06,0x08,0xee,0x9a,0x7c,0x73,0xa9,0x58 +.byte 0xcd,0xcb,0x78,0xa9,0x3d,0x5c,0x11,0x0e,0x5a,0xd9,0xb0,0x7b,0xc4,0x3e,0x83,0xdc,0xe2,0x11,0xe9,0x6d,0x8a,0x8b,0x24,0x28,0x1d,0x7e,0x45,0x1b,0x05,0x5a,0x6b,0x97,0x1c,0x25,0x15,0x84,0x5c,0x3f,0x95,0x44,0xd5,0x4f,0x3c,0x4b,0x52,0xb1,0x0b,0x6a,0xb3,0xae,0x4e,0x1b,0x12,0xcf,0x16,0x78,0xd7,0xcb,0x32,0x43,0x39,0x88,0xf4,0x5e +.byte 0x26,0x29,0xe7,0x93,0x08,0x19,0x14,0x88,0x8f,0x54,0x91,0x13,0xb6,0x57,0xd1,0x87,0xd4,0x9d,0xf7,0xec,0x9b,0x22,0x6b,0x91,0x79,0x9d,0x6c,0x32,0x47,0x4a,0x79,0x55,0x7d,0xac,0x87,0x98,0x59,0x97,0xa5,0x71,0xbc,0xbf,0x1b,0xf0,0x6f,0xbb,0x81,0x8e,0xc2,0xef,0x7c,0x63,0x2f,0x80,0x37,0xb6,0xc5,0xae,0x59,0x5e,0x57,0x5e,0x1f,0x3a +.byte 0xe5,0x6b,0x6b,0x5e,0xdb,0x8e,0xd2,0x87,0xf7,0x94,0x7b,0x11,0x0e,0x4b,0xa6,0x9f,0x49,0xc6,0x68,0xc7,0x52,0x5f,0x28,0x87,0x33,0x84,0x52,0x5f,0xc8,0x5f,0x81,0x85,0x10,0xe8,0x92,0xce,0x13,0x6c,0x01,0x28,0x5e,0x59,0x8f,0xbb,0xa9,0x9c,0xdc,0x85,0xd3,0x73,0xa0,0x5a,0xbf,0x5b,0x04,0x80,0x99,0x90,0xc8,0x16,0x44,0x0d,0x09,0x01 +.byte 0xcd,0x24,0xe7,0x59,0xe7,0x42,0xe0,0xdd,0x01,0x93,0x1f,0x9e,0x1f,0x36,0xdb,0xcd,0x49,0xdb,0xea,0xa9,0x63,0x71,0xb9,0x2c,0xcd,0xca,0x1a,0x64,0xe1,0x95,0xbe,0xe1,0x64,0x2e,0xc7,0x59,0x15,0x61,0xe1,0xf9,0x45,0x0f,0x2a,0x3a,0x85,0xf8,0x7c,0x06,0xae,0x53,0x84,0xd2,0xe7,0xee,0x8b,0xbf,0x7a,0x72,0xa3,0x57,0xf1,0xc2,0x12,0x40 +.byte 0x9c,0x93,0xe1,0x04,0x81,0xde,0xc6,0xa8,0xae,0x4f,0x5c,0x31,0x93,0xc7,0x11,0x1d,0x89,0x70,0x85,0xd5,0x6f,0xab,0x58,0x1f,0x3f,0x76,0x45,0x7e,0x19,0xd0,0x6c,0xc1,0x41,0xa9,0x64,0x0a,0x79,0xb5,0xe0,0x9e,0xbc,0x4f,0x10,0x0c,0xac,0xfc,0x54,0xad,0xcf,0xb8,0xd0,0xfd,0x9b,0xed,0xea,0x54,0x05,0xbf,0x4f,0x91,0xbd,0x16,0x4a,0x57 +.byte 0xa9,0xda,0x38,0xb9,0x40,0x0d,0x63,0x68,0x83,0x7d,0xec,0x1c,0xe6,0x7f,0x9c,0xec,0x16,0x4e,0x0b,0xd0,0x91,0xb4,0x2c,0x04,0x65,0xb8,0x12,0xdf,0x3f,0xff,0x6a,0x08,0x4e,0x65,0xdf,0x09,0xa5,0xea,0xb1,0xac,0xa9,0x67,0xd2,0xbb,0x73,0x51,0xd2,0x37,0x72,0xfc,0x3f,0x69,0xe2,0x3f,0x01,0x94,0x3a,0xf7,0x23,0x0e,0x5d,0x23,0x44,0x82 +.byte 0xc7,0x38,0x35,0x9f,0xfa,0x13,0x15,0x47,0x0d,0x18,0xab,0x02,0x39,0x6e,0xb2,0x7c,0x29,0x11,0x9a,0x5a,0x01,0x2d,0xb2,0x10,0xea,0x9d,0xb7,0x37,0x4b,0xf2,0x2b,0x76,0x22,0xf7,0xaf,0x8a,0x5f,0x1d,0x6b,0xb2,0x13,0x9e,0x84,0xf5,0xbc,0x6e,0xad,0x66,0x5c,0x1b,0x5d,0x12,0xb0,0xe1,0x48,0x94,0x83,0xa0,0x26,0x54,0xd2,0xfd,0x3c,0x8d +.byte 0x81,0xac,0x31,0x9a,0x15,0xc6,0xd8,0xd5,0x07,0x1b,0x21,0x3f,0x04,0x40,0x3a,0x60,0x80,0x5f,0x1f,0x42,0x3e,0xd7,0x2b,0x7a,0x5f,0x71,0x93,0xb4,0x9d,0xf0,0x8b,0x5e,0xf1,0xc6,0x19,0x0a,0xa9,0x43,0xac,0xb2,0xc1,0x73,0x0d,0x44,0x6a,0x92,0x22,0xd0,0xda,0x40,0x14,0x7d,0x88,0xd1,0x5e,0x10,0xc9,0xa4,0x4d,0xd8,0xe0,0x7d,0x74,0x1b +.byte 0x2b,0xcb,0x50,0x24,0xbd,0x50,0x4a,0xe4,0xed,0x0e,0xe8,0xc0,0x5b,0x50,0x6d,0xf5,0x68,0x59,0xd1,0xc3,0x6f,0x32,0x86,0x29,0xe0,0x32,0x3f,0x05,0x86,0xa2,0x7f,0x93,0xd8,0xb7,0x02,0x68,0xb3,0x16,0xaa,0x0c,0xd3,0x4d,0xec,0x9a,0x66,0x06,0x7c,0x74,0x35,0x6f,0xde,0x8b,0xd9,0xdb,0x79,0x0a,0x15,0x84,0xc4,0x63,0xba,0x42,0xa2,0x3c +.byte 0x29,0xc8,0x65,0xdc,0x06,0x60,0x0a,0x08,0x4e,0x80,0x33,0x5c,0xfa,0x4b,0x91,0xdb,0xf6,0x57,0xd6,0x25,0x7d,0x70,0x80,0x09,0xb2,0x27,0xdb,0x80,0x4c,0xa7,0xe8,0x35,0xf5,0x18,0x2d,0x10,0x62,0x22,0xf9,0xb1,0x22,0xf3,0x9b,0x74,0xa0,0xc5,0x25,0xd3,0x44,0xc9,0x27,0x7c,0xba,0x01,0xfe,0x32,0x23,0xf7,0x90,0x90,0xbc,0x0d,0xad,0x9e +.byte 0x22,0x77,0xc5,0xfb,0xf2,0x0e,0xda,0xe5,0x7c,0xb4,0xbb,0xed,0xd4,0xfd,0xb0,0xfb,0x4a,0x4c,0x2a,0x32,0x2d,0x81,0xcd,0xef,0x74,0x3c,0x6a,0x9a,0x0c,0x95,0x58,0x25,0xd0,0x3a,0xb4,0x84,0x8f,0xa5,0xef,0xad,0x91,0xd7,0x2d,0xae,0x61,0xaf,0x9d,0x3f,0x03,0xa8,0xab,0xa4,0x66,0xd4,0x73,0x3a,0x84,0x0d,0x4c,0x6a,0xca,0xbd,0x0c,0x3c +.byte 0xdc,0x1d,0x37,0xea,0xe6,0x5a,0x7f,0x15,0xbe,0x9d,0xc7,0xce,0xbd,0x46,0x97,0xd3,0x07,0x19,0x82,0xaf,0x58,0x39,0x39,0x95,0x5d,0x4b,0x8e,0x1b,0xe9,0xf1,0xf6,0xa9,0xb3,0xfc,0xe6,0xe0,0x68,0x2c,0xbb,0xfa,0xd9,0x9b,0xc1,0x69,0xf3,0x5a,0x8f,0x67,0xd5,0x9c,0x11,0x1e,0x02,0x20,0x20,0xfe,0x4b,0xc9,0x8b,0x62,0x17,0x9a,0xfa,0x47 +.byte 0x7f,0xa2,0x8b,0xc1,0x3b,0x02,0x78,0x38,0xff,0xce,0xe1,0x54,0x40,0x3f,0x27,0x5c,0x9d,0xdd,0x56,0x38,0x48,0xea,0x39,0xbe,0xa0,0x76,0x43,0x82,0xef,0x74,0x50,0xdf,0xda,0x4c,0xca,0x47,0x46,0x7e,0xc5,0xff,0xce,0x66,0xdf,0xeb,0x5b,0x6e,0x45,0x77,0x19,0xac,0x01,0x1f,0x20,0xa1,0xad,0x01,0x5f,0x87,0x3e,0x3a,0xd0,0x83,0x13,0x17 +.byte 0x53,0x40,0xfe,0x26,0x99,0x42,0xfa,0x54,0xa8,0x82,0x79,0xa7,0x44,0xd0,0x9e,0x59,0x64,0x77,0xec,0x70,0x0e,0xcd,0xb9,0xb1,0xc2,0xe2,0x39,0x93,0xb7,0xd1,0xd5,0x67,0x9f,0xb0,0x5b,0xd9,0x50,0x8b,0x17,0xec,0xbc,0x83,0x64,0x35,0xaa,0x43,0x3f,0x4c,0x8c,0x56,0x83,0x76,0xa2,0x72,0x30,0xe7,0xe8,0x9f,0x88,0x35,0x8e,0x8d,0x11,0x31 +.byte 0x8e,0xb5,0x71,0x75,0x31,0xc8,0x28,0x15,0x50,0xe6,0x0a,0x00,0x4d,0x75,0x51,0x7c,0x33,0x14,0x96,0xff,0xe8,0xf3,0xa0,0xb1,0x9c,0xeb,0x9d,0x8a,0x45,0xcf,0x62,0x82,0xeb,0xce,0xea,0xa5,0xb9,0x10,0x83,0x54,0x79,0xf8,0xcf,0x67,0x82,0x1d,0xea,0xce,0x86,0xcf,0xc3,0x94,0xf0,0xe8,0xf4,0x80,0x8b,0x84,0x96,0x06,0x2e,0xe4,0x58,0x21 +.byte 0x98,0x42,0x1a,0xb7,0x8c,0x5d,0x30,0x15,0x83,0xe8,0x17,0xd4,0xb8,0x7b,0x90,0x57,0x35,0x72,0x6d,0x1b,0x7c,0xc0,0x88,0x0a,0xa2,0xea,0xcd,0x58,0xcc,0xf1,0xb4,0x8b,0xcd,0x66,0x3c,0xa5,0xb0,0xd4,0xc9,0xcc,0x42,0x1d,0xef,0x3b,0x42,0x22,0x9b,0xfb,0x45,0x24,0xcc,0x66,0xd7,0x67,0x73,0xb2,0x12,0x03,0xf6,0xa3,0x06,0x61,0xe2,0xab +.byte 0x91,0x8e,0x33,0x0b,0x9f,0x6a,0x80,0x5e,0x0f,0x68,0x41,0x5a,0x7e,0xd8,0xe2,0x32,0x50,0xc2,0x88,0x60,0xca,0xe3,0x23,0x86,0xff,0xdc,0x0c,0x19,0xbb,0xba,0x01,0xa3,0x41,0x89,0xf0,0x79,0x55,0x79,0xa6,0xa4,0x66,0x7b,0x46,0xde,0xac,0xae,0xb1,0xde,0xe1,0x1e,0x8d,0x62,0xc1,0xd6,0xeb,0x39,0x2f,0x1d,0x50,0x27,0x53,0xc9,0xea,0xb6 +.byte 0xd3,0x91,0x9b,0xdd,0xc1,0x68,0x8c,0xb6,0xe1,0x5e,0x9f,0xea,0xbe,0x98,0x88,0xeb,0xa8,0x77,0xf6,0x69,0x64,0xab,0x99,0xf3,0x7a,0x08,0xff,0x8c,0xa6,0x17,0x1b,0x2e,0x6e,0xcc,0xd8,0x33,0x30,0xef,0x5a,0x86,0x07,0x49,0xa5,0x13,0x08,0xbc,0xd6,0x88,0x7e,0x19,0xe0,0x1c,0x23,0xa9,0xe5,0x0a,0xa7,0xaf,0x8a,0xe9,0x81,0x3f,0xd8,0x99 +.byte 0xa6,0x01,0x6b,0xec,0x14,0x08,0x90,0xb1,0x76,0x16,0x3a,0xcb,0x34,0x0b,0x91,0x26,0xe9,0xec,0xe5,0xbc,0xd6,0xdc,0xf0,0xa9,0xfd,0xf2,0xe9,0xcc,0xa1,0x9d,0x7f,0x32,0x0d,0x0a,0x2a,0x92,0xff,0xc4,0x38,0xf8,0x9e,0x31,0x78,0x47,0xbf,0x3f,0x27,0x71,0xe1,0x7a,0x33,0x48,0x91,0xe8,0x8e,0x1a,0x66,0xcf,0xa1,0x61,0xc2,0x62,0x30,0x7c +.byte 0x69,0x35,0x21,0x67,0x9b,0xa7,0x1c,0x72,0x06,0xd8,0x28,0x94,0x6e,0x6d,0xf0,0x22,0x85,0xb4,0x6c,0x89,0xe8,0x2e,0x3a,0xc5,0xdc,0xe3,0xe3,0x0c,0x8a,0xba,0x1c,0x57,0x86,0xef,0x55,0x6a,0x24,0x59,0x5e,0x6e,0x47,0xb8,0xad,0xc5,0x10,0xff,0xbe,0x2d,0x93,0x09,0xfe,0x17,0x03,0x16,0x4d,0x4a,0x9a,0x15,0x38,0x94,0x38,0x18,0x45,0xa7 +.byte 0xcf,0xe4,0x16,0xd3,0x26,0x72,0x49,0xe7,0x89,0x9a,0xb4,0xc7,0x78,0xc3,0x18,0x3b,0xc8,0x08,0x9d,0x66,0x0f,0x48,0xc8,0x23,0x91,0x57,0x61,0xf1,0xf3,0x01,0x3e,0x0a,0xa3,0x4c,0x6c,0x34,0x5b,0x98,0x40,0x47,0x42,0xc1,0xeb,0x58,0x58,0xff,0x1f,0x4b,0x5f,0xf1,0x29,0x2e,0x7e,0x76,0x15,0x56,0x17,0x9c,0xe7,0x55,0x09,0x22,0x0a,0xa2 +.byte 0xd8,0xbf,0xd9,0x44,0x49,0xa9,0x24,0xd7,0x4f,0x12,0x04,0xa2,0x18,0x1c,0xdc,0x54,0xc0,0x22,0x27,0x3c,0xeb,0x1f,0x02,0xae,0xb3,0x33,0xb2,0xa2,0x84,0x23,0x76,0xc6,0x2b,0x94,0x53,0xae,0x7b,0xee,0xbb,0x81,0x64,0x8a,0x3f,0xe0,0x75,0x6b,0x2c,0xd5,0x60,0xad,0x49,0x0c,0xf8,0x65,0x64,0x1a,0x83,0xc7,0xb9,0xd9,0x01,0x5b,0xde,0xb0 +.byte 0x76,0x9b,0x1c,0x0d,0x89,0x2d,0xd5,0x09,0xc7,0xa9,0xbb,0x0a,0x54,0x5c,0xd4,0x5b,0xbf,0xbc,0x5e,0x00,0x29,0x0b,0x30,0x19,0x73,0x66,0xfd,0x3f,0xdb,0xd4,0x1b,0xd4,0xc0,0x27,0xde,0x49,0x90,0x5f,0x65,0x87,0x3c,0xc4,0x43,0xd0,0x49,0x76,0x64,0x39,0x88,0xd7,0x0e,0xfc,0x27,0x52,0xb1,0x8d,0xd0,0x27,0x29,0x84,0xe3,0x49,0xb9,0x0c +.byte 0x2d,0x4e,0x73,0x95,0x57,0xa8,0x07,0xa0,0xe1,0x5b,0x5a,0xb6,0xbc,0xa1,0x7f,0xfd,0x4b,0x9c,0x4d,0x7d,0x0c,0x5c,0x4c,0x4b,0x42,0x70,0xc3,0x0a,0xc1,0x89,0x12,0xb5,0x46,0x04,0x3c,0x56,0x25,0xc6,0x8f,0x49,0x7d,0x3b,0xf1,0xcd,0xfc,0xb8,0xa6,0x66,0xb1,0xc2,0xa3,0xa7,0x98,0x93,0x0e,0xdb,0xcd,0xce,0xdf,0x7f,0x68,0x5e,0xea,0xf2 +.byte 0x85,0x61,0x8f,0xd6,0x23,0xb4,0x5f,0x2f,0xf8,0x78,0x47,0x15,0x59,0x2d,0xca,0x35,0x0f,0xf5,0x91,0x74,0x3b,0x32,0xe1,0xcf,0x54,0x1b,0xf4,0x9d,0xdb,0x20,0x5e,0xf8,0x71,0x10,0xa3,0x31,0xf1,0xb8,0x98,0x8d,0x76,0x70,0xce,0x4c,0xed,0xd3,0x81,0x6b,0xd5,0x8d,0x73,0x5f,0x8c,0x66,0x7c,0x87,0x73,0xfa,0x20,0xbe,0xcd,0xba,0x41,0x88 +.byte 0x46,0xc3,0x38,0xc0,0xd9,0x08,0x79,0x30,0xda,0x7f,0x2a,0xc0,0x72,0x47,0xb0,0xc9,0x41,0x68,0xb1,0xe8,0xb4,0x86,0xcb,0x5d,0xb0,0x5b,0x7a,0x26,0xfd,0xf2,0x1b,0x4e,0x1f,0x4c,0x6a,0x8a,0x84,0xd4,0x07,0x2f,0xf4,0x06,0x73,0x3d,0x1c,0x55,0x04,0x6a,0xa5,0x8a,0xbb,0xaa,0x8a,0x8d,0x8f,0x05,0xcc,0x63,0x04,0xe0,0xc6,0x6f,0x6b,0xf8 +.byte 0x24,0x56,0xbb,0x9d,0xa9,0xe5,0x4c,0xac,0x9d,0xbe,0xfd,0x70,0x9d,0x1f,0x98,0xc4,0xfc,0xdb,0x3c,0x45,0xe7,0xbb,0xea,0x51,0xb6,0x56,0xe0,0x2c,0xb2,0x77,0x1b,0x80,0x9b,0x43,0xa7,0xb2,0x9a,0x40,0x8f,0xdb,0x2d,0x51,0x7b,0x2c,0x89,0xfd,0x14,0xf5,0x77,0xbf,0x40,0x3d,0x32,0xe0,0x10,0x32,0xcd,0xc4,0x3f,0xe2,0xe8,0xb4,0xdf,0xc2 +.byte 0x43,0x7a,0x0b,0x17,0x72,0xa1,0x0e,0xd6,0x66,0x35,0x8f,0xf4,0x21,0xf1,0xe3,0x46,0x13,0xd7,0xcd,0xc7,0x7b,0xb4,0x9b,0x39,0x1e,0x33,0x3c,0x18,0x15,0x7a,0xea,0x77,0xc5,0x57,0x4d,0xf9,0x35,0x8a,0xc1,0xb5,0x78,0x5d,0xc3,0x3e,0xd5,0xfd,0xb5,0x50,0xee,0x44,0x24,0xa2,0x55,0xb6,0xd8,0x3d,0x5d,0x75,0x2a,0x26,0x37,0xe7,0x85,0xb3 +.byte 0xff,0x70,0x5d,0x99,0x8d,0x99,0xba,0x9d,0x09,0x97,0xf2,0x67,0xe5,0xa3,0x86,0x06,0x21,0xb4,0x03,0x9b,0x63,0x76,0x1f,0xf8,0x09,0xd8,0x4e,0x22,0xcb,0x48,0xcf,0x79,0x72,0xc9,0x3f,0x84,0x5e,0xb8,0x39,0x87,0x27,0x92,0x1e,0x59,0xdf,0xc2,0xe6,0xd2,0xc4,0x5f,0xad,0x6e,0x9c,0xa4,0xec,0xd5,0x7d,0xf6,0x2b,0x9b,0x93,0x56,0xcd,0xa3 +.byte 0xc5,0xfa,0x82,0x39,0x46,0x29,0x57,0x43,0x08,0xe2,0xe1,0x3e,0x80,0x3b,0x8e,0x08,0xe5,0xc5,0xfe,0x05,0x17,0xaf,0xe0,0xf0,0xb7,0x5b,0x34,0x33,0x59,0xfa,0x93,0xbf,0x6a,0xb3,0x6c,0xbc,0x99,0x62,0x34,0x2c,0xf2,0x3b,0x62,0xf2,0x1c,0x48,0x07,0xc9,0x60,0x03,0xa5,0xe1,0x66,0x8d,0x84,0x36,0xc7,0xf9,0xc6,0x3b,0xa9,0xee,0x0f,0x48 +.byte 0xff,0xff,0xad,0x95,0x21,0xb5,0x12,0x63,0x7d,0x0f,0x0d,0x09,0x63,0x51,0x64,0x69,0xb4,0x95,0xd3,0x25,0xf0,0x3b,0x6d,0xc4,0xdd,0x8c,0x80,0x0d,0x3b,0xd2,0x4b,0xe0,0x67,0xcb,0xcd,0x7d,0x2e,0xbd,0x61,0x4b,0x0c,0x32,0x1f,0xfd,0xd2,0x31,0xed,0xa8,0xaa,0x98,0xf4,0x85,0x21,0xbc,0x08,0x14,0x2f,0xbb,0xbf,0x01,0xba,0x24,0x5e,0x5c +.byte 0xf3,0x72,0xed,0x05,0xec,0xf3,0xd1,0x9b,0xb0,0x63,0x8a,0x14,0xd1,0x9e,0xae,0x9b,0xce,0x4d,0x6c,0xb6,0x7a,0x78,0x9e,0x1d,0xcd,0x1e,0x50,0x66,0x26,0x70,0x74,0x2b,0x43,0x6a,0xc7,0xd7,0xe9,0xa2,0xcf,0xf3,0x09,0x9a,0x81,0x80,0x04,0xb8,0x5a,0x4f,0x2e,0x10,0x35,0xb2,0xb0,0xc6,0x40,0x97,0xa5,0x6a,0x24,0x5a,0x6b,0x97,0xc7,0xc0 +.byte 0x24,0x50,0x8d,0x65,0x21,0x25,0xce,0xb9,0x19,0xfc,0x40,0x08,0xcf,0xfd,0x1c,0xc4,0x30,0xd4,0x06,0x70,0xac,0x8a,0x3c,0x3f,0xfc,0xc3,0xeb,0xdd,0x43,0x56,0x4a,0xf6,0x50,0x92,0x9d,0xce,0x9c,0xea,0x15,0xdd,0x7c,0x5e,0x40,0xf5,0x7e,0x41,0x70,0xdd,0xc7,0x62,0x21,0x5a,0x20,0xc8,0x71,0x10,0x97,0xd5,0x12,0xfa,0x31,0x96,0xfb,0x38 +.byte 0x17,0x66,0x73,0x32,0x7a,0x93,0xf0,0x82,0xb9,0xf1,0x24,0xc5,0x64,0x0b,0xa9,0x24,0x4a,0x47,0xac,0xfb,0xf1,0x55,0xd7,0xb3,0x9a,0x64,0x63,0x0b,0x2e,0x13,0x9e,0x1a,0xee,0x21,0xd0,0x70,0x5c,0x0c,0x25,0xe7,0x38,0x23,0xd7,0x2f,0x6a,0x20,0x59,0xef,0x70,0xb2,0x8e,0xb4,0x15,0xee,0x6f,0x70,0xd0,0x75,0x19,0x9d,0x42,0xa7,0x17,0xad +.byte 0x99,0xaa,0x0d,0xa3,0x87,0x3d,0xf1,0x7b,0x0e,0xfa,0x62,0x9a,0x20,0x64,0x17,0x64,0x07,0xc2,0x84,0x13,0xb2,0x59,0x81,0x66,0x45,0xab,0x47,0x6d,0xfc,0x7b,0x60,0x05,0xac,0x30,0xb2,0x86,0x7e,0x34,0x6b,0xaf,0x37,0x00,0xa6,0x47,0x4c,0xb9,0x10,0xbd,0x9e,0xce,0x47,0x9e,0xc2,0x0e,0xfd,0x47,0xfa,0xd8,0x08,0xd1,0xc2,0xaa,0x6d,0x8c +.byte 0x91,0x2c,0x18,0x32,0x52,0x84,0x47,0x71,0x3b,0xc9,0xa1,0xf5,0xfc,0x90,0xb8,0x79,0xbf,0xe5,0x59,0x1b,0x91,0x22,0xcb,0xd3,0x87,0x7e,0xd4,0xb5,0x33,0xb2,0xfc,0x7c,0xee,0x22,0xfb,0xe8,0xb0,0x3c,0xa7,0x8b,0x05,0xd7,0x7f,0x17,0x52,0xbe,0xb6,0xe0,0x1e,0x47,0xce,0xfd,0x79,0xdf,0x16,0x5f,0x01,0x70,0x0c,0x47,0x5a,0x01,0x96,0x08 +.byte 0x3e,0x9b,0xc4,0xb2,0x58,0x73,0xc4,0x38,0xd6,0xf2,0x1b,0x0a,0x2c,0xb9,0x2a,0x96,0xb5,0x89,0x2d,0x33,0xdf,0xa4,0x5f,0x24,0x1b,0x79,0x0e,0xb6,0x9f,0xec,0x46,0xd3,0x27,0x4a,0xc1,0x26,0x94,0x95,0x41,0xd5,0xb3,0x84,0x74,0x62,0x47,0xc5,0x4d,0xb4,0xe2,0xe7,0xdb,0xc3,0xc3,0x7b,0x33,0x2a,0xbf,0x69,0xf6,0x5e,0xdc,0xfe,0xa4,0x81 +.byte 0x91,0xf3,0xa8,0x26,0x82,0x44,0x37,0xea,0xe1,0x20,0xff,0x52,0x33,0x5b,0x0b,0x6f,0xf8,0x33,0x4e,0x02,0x4d,0x38,0x93,0xcd,0xc0,0xfc,0x73,0x1a,0xf9,0xf6,0x9f,0x53,0xfc,0xf7,0xe2,0x4b,0x25,0xdd,0xa7,0x4d,0x1e,0x5c,0x17,0xc3,0xa0,0x41,0x1d,0x67,0x45,0xff,0xcb,0x41,0x49,0xc4,0x18,0x68,0x7e,0x7f,0xb6,0x6f,0xdb,0xbc,0x73,0x2f +.byte 0xc7,0x9a,0x46,0x8c,0x0b,0x57,0xa3,0xd3,0x0a,0x34,0xb7,0x27,0x67,0xbb,0xe1,0x64,0xa7,0x7e,0x79,0xac,0x4f,0x09,0x54,0x9b,0x43,0x5e,0x9a,0x33,0x02,0x45,0xdc,0x85,0x0b,0x59,0x8d,0x78,0xe8,0xd8,0xb5,0xd3,0x31,0x9d,0x2a,0x60,0x5b,0x91,0xed,0xf1,0xf1,0x37,0x3f,0xdb,0xda,0xd6,0xd1,0x8f,0x14,0x7e,0xe1,0xfc,0x92,0x60,0xa5,0x33 +.byte 0x86,0xef,0x29,0xbf,0x94,0x84,0x2b,0x24,0x20,0xb4,0x5e,0x23,0x34,0x08,0x63,0xc9,0xe6,0x80,0xa0,0x27,0x27,0x2f,0xab,0xc0,0x52,0x44,0x66,0x29,0x32,0x2e,0x91,0x96,0x02,0x1c,0x3b,0xb4,0x6e,0x33,0x49,0x5b,0x60,0x6f,0x14,0x93,0x65,0x0d,0x97,0x01,0xfb,0xf9,0x42,0x74,0xb6,0x21,0xf7,0xc2,0x5d,0xbf,0x91,0x2b,0xf5,0xb1,0x4e,0xe2 +.byte 0xd6,0x24,0x57,0x41,0x7a,0xcb,0xdd,0xb6,0x96,0x8b,0xfc,0x42,0x19,0x21,0x7f,0x41,0x32,0x3d,0x69,0x9b,0xee,0xda,0x97,0x45,0x26,0x71,0x0d,0x12,0xf0,0x20,0x7f,0x44,0x0f,0x4c,0xd2,0xd3,0x34,0x93,0xc7,0xe5,0xe7,0x83,0x62,0x13,0x0b,0x7d,0xc6,0xe4,0xd2,0xae,0x53,0x2e,0xd1,0x18,0x81,0xd0,0x81,0xf6,0xc0,0x98,0xaf,0x1d,0xb2,0x8a +.byte 0xcb,0xd3,0xde,0x1d,0x53,0x71,0x92,0x0e,0x4b,0x8c,0x7c,0x8e,0x65,0xf6,0xe2,0xc2,0x5a,0x4f,0x8c,0x59,0x0f,0x35,0x5e,0xe4,0x43,0x50,0xab,0xb7,0xdd,0xfc,0x66,0xf9,0xb1,0x9b,0x6b,0x1b,0xaf,0x2e,0x85,0xe6,0x3e,0x4c,0xa2,0xd4,0x55,0x47,0xb9,0x66,0x66,0x7b,0xa3,0xb2,0xd5,0x8a,0x8e,0x88,0x0e,0xfb,0x4e,0xad,0xf4,0x39,0xd2,0xd6 +.byte 0x39,0xef,0xe0,0xee,0x0f,0xf3,0x94,0x47,0xa7,0x32,0x24,0x9a,0xb0,0x82,0x08,0x67,0x00,0x3f,0xe6,0x95,0x76,0x84,0x0a,0x5c,0xb7,0x74,0xc1,0x64,0x5e,0x7c,0xba,0x0b,0x2e,0x6f,0x26,0xc3,0x20,0x2e,0x95,0xc1,0xf0,0x8c,0x55,0x4a,0x45,0x26,0xe6,0xf3,0x55,0x78,0xbd,0xd4,0xdb,0x07,0xbd,0xff,0x61,0x51,0xde,0x7f,0xdb,0x56,0x73,0x6b +.byte 0x9c,0xa4,0xb0,0x72,0xa7,0xd0,0x93,0x4d,0x1d,0x3a,0x92,0x78,0xde,0x77,0x65,0xe8,0x07,0x41,0x92,0xc1,0xbb,0x69,0x79,0x20,0x43,0xab,0x21,0x2e,0x6d,0xdf,0x43,0xeb,0x73,0x49,0x12,0x1f,0x53,0x75,0x01,0xed,0xce,0xf4,0x05,0x05,0x2b,0xc7,0x2a,0x65,0x29,0xe8,0xcf,0x5b,0xf0,0xc1,0x5b,0xd8,0xa8,0xac,0xbb,0xe3,0xac,0x29,0x0a,0x90 +.byte 0x79,0x2f,0x5b,0x92,0x14,0xf2,0xc7,0x2d,0xe5,0x33,0x6e,0x5e,0x31,0xe2,0xab,0xdf,0x21,0x71,0x4a,0x44,0xaa,0xc6,0xe9,0xb8,0x51,0x1d,0xe2,0xf3,0x07,0x19,0xa1,0x98,0x9e,0x8a,0xed,0xe4,0x9e,0x52,0x16,0x1f,0x2f,0xd3,0x4c,0x97,0x1e,0x38,0x49,0x84,0x2e,0x45,0xb5,0x4b,0x4f,0xfe,0xdb,0x25,0x3e,0xa9,0x6e,0x7d,0x60,0x3b,0xa7,0x7e +.byte 0xda,0x32,0x1a,0xd6,0x04,0xbe,0x0c,0x92,0x4e,0x6d,0x85,0xf9,0x9c,0x26,0x9a,0x88,0xf5,0x50,0x95,0x7b,0x9e,0x43,0x07,0x97,0xd4,0xdb,0xa0,0x6e,0x30,0x5d,0x44,0xa9,0x41,0xc2,0xdf,0xdf,0x37,0x35,0xc4,0x85,0x83,0x08,0xea,0x22,0xfa,0xae,0xdd,0x95,0xe5,0x35,0x47,0x23,0x86,0x27,0xfa,0x71,0x88,0xa0,0x12,0x00,0xe0,0xa7,0xd1,0x1b +.byte 0x5e,0x78,0x6f,0x38,0x30,0xa9,0x80,0x75,0xd7,0x61,0xcc,0xfd,0x33,0xd2,0xb8,0xf8,0xd7,0x12,0xf5,0x03,0xf9,0x53,0x6d,0x3b,0x6b,0xff,0x24,0x0a,0x3b,0xe8,0x2a,0xe9,0xae,0xb7,0xc3,0xe3,0x0f,0x26,0x71,0x55,0xc5,0x03,0x60,0xf4,0x47,0x01,0xa3,0x69,0xb2,0x98,0x75,0x5b,0x90,0x4a,0xf9,0x61,0x49,0xd6,0xc4,0xdb,0xab,0x04,0x0c,0x47 +.byte 0x1e,0x31,0x75,0xfa,0xa2,0xc5,0xfa,0x66,0x0c,0x4a,0x93,0xa0,0xea,0x56,0xf9,0x49,0xd4,0xc7,0xcc,0x2c,0xe5,0xdc,0xab,0x61,0x8e,0x0c,0xf3,0x2f,0xb5,0x9f,0x36,0xa1,0x05,0xab,0xb6,0xbc,0x4a,0x6d,0x97,0xe7,0x19,0xe5,0xfe,0x92,0xa5,0x94,0xd5,0xc0,0xf5,0x31,0xf6,0x8a,0xf7,0x24,0x62,0xdd,0x56,0x12,0x84,0xf5,0xc6,0xa0,0x37,0xa3 +.byte 0xfc,0xbd,0x16,0x2a,0xa6,0x36,0x8e,0xd4,0x29,0xfe,0xc4,0xc5,0xcb,0xdd,0xdd,0x8b,0x7e,0xa6,0x9d,0x08,0x28,0x10,0x6b,0xff,0xd7,0x79,0x48,0x35,0x2f,0xbe,0x34,0x9a,0xfb,0xd0,0x7d,0x5c,0xad,0xf0,0xde,0x96,0xea,0x2d,0xc5,0x8b,0xa9,0x7a,0x8b,0xbe,0x97,0xde,0x7a,0x95,0xc7,0x95,0xd9,0x86,0xde,0x3c,0x8d,0x15,0x8e,0x45,0x69,0x27 +.byte 0xd4,0x27,0xa8,0xe3,0xa9,0x1e,0xa0,0x95,0x74,0xf1,0x8b,0xbe,0x3b,0xff,0xa3,0xf6,0x23,0x78,0xd9,0xbd,0xc2,0x44,0x3a,0x93,0xb5,0xa6,0x87,0x7c,0x65,0xd1,0xd8,0xd5,0x43,0x2a,0xb2,0xc8,0x65,0x86,0x83,0x06,0xf7,0x33,0x88,0x3b,0xc0,0x2c,0xb3,0x3b,0x23,0xa3,0x67,0x15,0x49,0x09,0x02,0xbb,0x11,0x08,0xe3,0x37,0x9a,0x9b,0x67,0x8e +.byte 0x63,0xc3,0x8b,0xff,0x21,0xa6,0xbe,0x3b,0xa6,0x57,0xc1,0x56,0x2a,0x02,0xdb,0x24,0x50,0x4a,0x4f,0x60,0x49,0x03,0xcf,0xba,0x55,0x1c,0x64,0xfe,0x0c,0x58,0xb4,0xb0,0x89,0x91,0xd5,0xbc,0xbc,0x85,0xe6,0x96,0x32,0x89,0x1f,0xa0,0x48,0xd1,0x6e,0xa7,0x03,0x86,0x8a,0xf2,0x5f,0xc3,0x5a,0x57,0x8a,0xa3,0x4a,0x61,0x90,0x18,0xb2,0x0d +.byte 0xc7,0x94,0xb9,0x3e,0x40,0x8b,0x1d,0x54,0xd0,0x4c,0xe7,0x2a,0xd5,0x85,0xa7,0x93,0x07,0x10,0x58,0xc4,0x8a,0x18,0x0a,0x49,0x30,0x87,0x93,0x0e,0xcf,0xc7,0x95,0x9f,0xd1,0x3f,0x9b,0x06,0xe3,0xf9,0x4f,0x16,0x58,0x04,0xb4,0xf0,0xf0,0xf3,0x3a,0xab,0x4a,0x35,0xf1,0xec,0x23,0x15,0x0c,0x24,0xba,0x90,0xdc,0xd1,0xfe,0x47,0xca,0xb2 +.byte 0x95,0x33,0x30,0x45,0xba,0x18,0x15,0xec,0x58,0x36,0x02,0xdf,0x28,0x09,0x74,0x4b,0x09,0x01,0x24,0x0f,0x00,0x7b,0xb3,0x65,0x45,0x42,0x63,0x15,0xf8,0x50,0x8b,0x4f,0x28,0x73,0x03,0x3a,0x31,0xe5,0x0d,0x56,0x8f,0x6b,0x4b,0x9e,0xda,0x71,0xee,0x68,0xba,0x85,0x81,0x3d,0x5d,0x74,0x5e,0xda,0x60,0x87,0xf4,0x5a,0x38,0xad,0xc5,0x3f +.byte 0xb5,0x15,0x02,0x59,0x1c,0xd2,0x93,0x66,0x54,0x65,0xf1,0xe7,0x9b,0xf0,0x30,0x2d,0x9e,0xba,0xc5,0x86,0xf4,0xf6,0xc7,0x92,0x73,0x12,0x3b,0x28,0x21,0x1b,0x3d,0x84,0xc0,0x1a,0x7d,0x35,0x8b,0xd4,0x35,0x39,0x35,0xa6,0x51,0xd9,0x19,0x8b,0x92,0xa3,0xea,0x8c,0x7e,0x25,0x05,0x1f,0x1d,0x8f,0x4d,0xba,0xdf,0x20,0x8c,0x8d,0xe2,0xac +.byte 0xdd,0x3d,0xf1,0x04,0x3f,0x77,0x4b,0x8f,0x39,0x7d,0x01,0xb7,0x71,0x4b,0x7b,0xe1,0x6f,0xd4,0x28,0x1a,0x57,0x96,0x4d,0xe2,0x84,0xf6,0x64,0x10,0xbb,0x0f,0xbc,0xe0,0x19,0xed,0x92,0x9e,0x60,0x15,0x78,0xd1,0x30,0xc0,0x53,0x4b,0x94,0xca,0x4b,0x5a,0x44,0x8b,0xa9,0xda,0x2f,0x08,0x70,0x94,0xe4,0x54,0xe1,0x28,0x6e,0xdd,0x34,0x56 +.byte 0x54,0xb0,0xd4,0x87,0x00,0x72,0x1e,0x46,0x10,0x3a,0x27,0x5d,0xc6,0xb5,0x72,0x20,0x2b,0xbe,0x17,0x01,0xbb,0x04,0x11,0x16,0x7d,0xbf,0x91,0xd3,0x7b,0x44,0x58,0x13,0x2a,0x9c,0xda,0x9d,0x26,0x46,0xf5,0x5f,0x51,0xef,0x6c,0xf6,0x36,0xdb,0xb7,0x21,0xde,0xdb,0x87,0xa0,0xd8,0x60,0x24,0x86,0x6d,0x64,0x85,0x9e,0x94,0xd9,0x21,0x0d +.byte 0xed,0xda,0x33,0xea,0x3c,0xdf,0x74,0xe3,0xa5,0xc7,0xc7,0x9e,0xe5,0xb1,0x29,0xdf,0xfa,0x20,0x25,0xcd,0x13,0x08,0xee,0xe6,0xba,0xf1,0x62,0x39,0xcf,0xe3,0x29,0xb8,0xaa,0x65,0x43,0x8a,0x48,0xb5,0xb5,0x70,0x35,0x66,0x42,0xf4,0x32,0x70,0x0b,0x0c,0xa7,0x46,0x79,0xdf,0xb2,0x80,0x13,0x72,0x7a,0xeb,0xf9,0x52,0xcb,0xb8,0x9f,0x4b +.byte 0x4f,0x29,0x2b,0xb3,0x94,0x02,0x0a,0xe1,0x20,0xe5,0x91,0x15,0x6a,0xa1,0x0c,0x71,0x96,0x77,0x01,0x80,0xf7,0x51,0x0b,0xaf,0x54,0x9b,0x3c,0x7b,0x91,0xd2,0xbd,0xaf,0x13,0xa5,0x32,0x17,0x7c,0xca,0xd0,0x22,0xd5,0xe5,0x83,0x44,0x24,0x5c,0xcc,0x24,0x31,0xcd,0x81,0x4e,0x96,0xcd,0x60,0x9f,0x7a,0xe7,0x2e,0x89,0x16,0xd5,0x66,0x6b +.byte 0xac,0x31,0x11,0x7c,0x76,0xc6,0xde,0xbe,0x46,0x55,0x20,0xdf,0x9d,0x2c,0x33,0xa5,0x80,0x76,0xb1,0xc9,0x1c,0x84,0x17,0x4d,0x15,0xe6,0x6d,0xce,0xed,0xea,0xc7,0xe6,0xff,0x01,0x10,0x60,0x26,0xf7,0x63,0x5f,0x91,0x89,0x7e,0xc1,0x7c,0x76,0x67,0x7b,0x7e,0xfa,0x28,0xa0,0xa7,0x82,0x1b,0x28,0x82,0x6a,0x4f,0x78,0x61,0x48,0xbf,0x13 +.byte 0x0b,0x71,0x0c,0xad,0xee,0xd7,0xf8,0xcc,0x0f,0x77,0x74,0x7d,0x2b,0x8a,0x09,0xd8,0x47,0xa0,0xfc,0x45,0x40,0x24,0xf3,0xce,0xdb,0x81,0xa1,0x50,0x9e,0x0a,0xd0,0x58,0xf7,0xaf,0xf1,0x09,0x12,0xa8,0x24,0xb2,0x34,0x99,0x67,0x17,0x53,0x1f,0x9d,0x09,0x7b,0xcb,0x83,0x6e,0x6a,0x0b,0xbf,0x8f,0x6e,0x3d,0xdb,0x29,0xe5,0xd0,0x06,0xdb +.byte 0xb8,0xf2,0xf3,0x43,0x4e,0xa7,0xf3,0x73,0x93,0xe8,0xab,0x2f,0xc8,0x75,0xce,0x62,0xda,0x74,0x39,0x57,0xe4,0xe4,0xb1,0x41,0x8f,0x9d,0xda,0x43,0xb4,0x2c,0x4b,0xd5,0x1c,0x10,0xf0,0x29,0x6b,0x94,0x15,0x04,0x3c,0xd3,0x45,0x73,0x29,0xb3,0x60,0x87,0x93,0xdb,0xbf,0x60,0x4e,0xdf,0x4d,0xbb,0xde,0xb2,0x57,0x67,0x14,0x0d,0x0b,0x60 +.byte 0x63,0xd5,0xc6,0x81,0x82,0xd6,0x0c,0xe6,0x4c,0x43,0x13,0x02,0x74,0x56,0x20,0x6b,0x21,0x28,0xe6,0xe2,0x0b,0xc1,0x7a,0xc3,0x08,0x60,0x82,0xe0,0x4f,0xbf,0x1e,0x3f,0xf0,0xa9,0xb2,0x2e,0x0c,0xbf,0xd6,0x03,0x1d,0x0d,0xd6,0x1c,0x36,0xb5,0xb2,0x14,0x56,0x21,0xc2,0xe0,0x1e,0xff,0xee,0x8a,0x70,0xae,0x3f,0x1e,0xe5,0xac,0x05,0x46 +.byte 0x6b,0x81,0x32,0xce,0x50,0xbb,0x82,0x66,0x32,0x93,0x46,0xf7,0xee,0x77,0x1c,0x9a,0x2f,0x31,0x60,0xa2,0x09,0x7c,0x14,0xd9,0x81,0xe9,0x19,0x27,0x31,0x5e,0xa0,0x98,0x71,0x42,0x2f,0x30,0x71,0xd6,0x31,0x94,0xe0,0x61,0xed,0x50,0x66,0xfa,0xba,0x12,0x5e,0xc6,0xc8,0x67,0xe5,0x8e,0xfd,0x34,0xa9,0xeb,0xde,0x25,0x43,0xbf,0xe7,0xb5 +.byte 0x16,0xf5,0x62,0x66,0x5d,0x0b,0x13,0x9a,0xd4,0x8c,0x2b,0x8f,0xe6,0x91,0x33,0xcb,0xa0,0x70,0x48,0x3e,0x22,0x7d,0xe4,0xf3,0x75,0xc9,0x49,0x82,0x50,0xc9,0x90,0x04,0x32,0xab,0x99,0x6e,0xf1,0xf0,0x0b,0x60,0x80,0x35,0x25,0x45,0x88,0xe9,0x82,0x06,0xe1,0xbb,0x85,0x11,0x40,0xf8,0x0e,0xbd,0x19,0x7a,0xdd,0x78,0xf9,0xc2,0x46,0xe4 +.byte 0xb5,0x27,0xfb,0xb6,0xba,0xbc,0x7d,0xb8,0x27,0xe7,0xbf,0xfe,0x8e,0xfe,0x7e,0x83,0x63,0x43,0x92,0x26,0xf0,0xbb,0xde,0xb6,0x93,0x4f,0x55,0x0c,0x07,0x99,0x3c,0x98,0xa1,0x8c,0x73,0xc1,0x4c,0x9a,0x09,0xa8,0xea,0x16,0x0b,0x49,0x2a,0x43,0xee,0x90,0x61,0x6f,0x09,0x1b,0xc3,0x2d,0x62,0x4b,0xfc,0x90,0xa1,0x8e,0x84,0x2e,0x90,0x8d +.byte 0x5f,0x80,0xff,0x6a,0x3c,0x61,0x0f,0xf2,0xac,0x70,0x20,0xc1,0xf2,0x85,0xcf,0x94,0xc8,0x94,0xe7,0xa0,0x04,0xdf,0xaf,0xef,0x26,0xd2,0xbc,0x07,0x70,0xc1,0x48,0xd6,0x87,0xd6,0xbe,0xea,0x95,0x6a,0xce,0xa2,0x48,0xac,0x46,0x46,0xb1,0x74,0x70,0x96,0x6c,0x26,0x58,0x75,0x9d,0x84,0xd7,0xd9,0x17,0x9a,0x46,0xe9,0xd7,0x3d,0xde,0xfd +.byte 0x7e,0xf4,0xd8,0x7e,0xf8,0x8f,0x1c,0xb5,0xfb,0xe9,0xc4,0xca,0xba,0x52,0x5f,0x17,0xee,0x75,0x7d,0x1d,0x50,0x16,0x9f,0x16,0x1e,0x00,0x8b,0xc1,0x2f,0xab,0x73,0x65,0x88,0x7b,0x80,0xa6,0x71,0xb7,0xfb,0xb0,0xda,0xd1,0x96,0x18,0x5c,0x48,0x6e,0x18,0x45,0x59,0x45,0xef,0x5c,0x65,0x35,0x99,0x5e,0xb9,0xd4,0x1a,0x07,0x7d,0x1e,0xa6 +.byte 0x69,0x42,0x9d,0xfa,0xec,0x02,0xdc,0xc4,0x19,0x6b,0x9c,0xb1,0x5e,0xa3,0xb4,0x6d,0xb4,0xa6,0x25,0xa8,0xe4,0x3f,0x3d,0x6e,0x2c,0x95,0xf7,0xcd,0xa5,0x4e,0x32,0xca,0x7e,0xe0,0x7b,0x11,0xf9,0x0a,0xe1,0x61,0x41,0x60,0xec,0xb3,0xb1,0x92,0x89,0x33,0x17,0xe9,0xaf,0x70,0x7f,0x1c,0x07,0xb5,0x24,0x3a,0x37,0x84,0x38,0xf5,0xb6,0x11 +.byte 0xfc,0x0c,0x12,0xc1,0xfc,0xa9,0x82,0x67,0x4d,0x17,0xe8,0xea,0xd0,0x62,0x17,0xb2,0x9c,0x59,0x01,0x87,0xfb,0x54,0x8e,0xa7,0xa5,0x85,0xa9,0x8a,0xec,0xfe,0x29,0xc0,0x73,0xc6,0xa0,0xbf,0x66,0x9a,0xc5,0xf8,0xee,0xa4,0xcb,0x09,0x44,0x74,0xfe,0x32,0xf5,0x42,0xea,0xf0,0xa6,0xec,0x74,0xea,0x14,0x5c,0x43,0x51,0xfa,0x3a,0x48,0x1e +.byte 0xa0,0x2e,0x59,0x2e,0xdb,0x3a,0x19,0xfe,0x1f,0x95,0x25,0xee,0x27,0x2b,0x99,0xb4,0xe1,0xd0,0xe6,0x33,0x91,0xa1,0xaf,0x30,0xa0,0x89,0x00,0x3c,0x13,0x31,0x18,0x70,0x90,0x42,0x55,0x0a,0xc9,0xc5,0x0c,0x43,0xa5,0xee,0xd6,0x90,0x07,0xae,0xc4,0x8c,0xdc,0xe4,0x07,0xbb,0x61,0x70,0xd1,0x10,0xe4,0x68,0x96,0x70,0x78,0xab,0xe9,0x3a +.byte 0x6e,0xc7,0x75,0x93,0xa0,0xba,0xff,0x6a,0x2d,0x57,0xaa,0x93,0x09,0xc3,0x6b,0x81,0xf3,0xde,0xc2,0xee,0xac,0x86,0x0a,0xfb,0xad,0xdb,0x6f,0x2a,0xa0,0x15,0x7b,0x96,0x77,0x38,0xf8,0x86,0x51,0x33,0x7a,0x6f,0x1c,0xf8,0xd5,0x15,0xcd,0x76,0x7f,0x37,0x68,0x82,0xdf,0xab,0xc3,0xdb,0xbe,0xeb,0x2b,0xa8,0x34,0x72,0x20,0x34,0xfb,0x12 +.byte 0x64,0x17,0x05,0x64,0xc0,0xa1,0xca,0xd3,0xac,0x27,0xc2,0x68,0x28,0x40,0x42,0xe2,0x0a,0xdd,0xd7,0xd6,0xf6,0x92,0x95,0x3c,0x10,0x17,0x4e,0xef,0x75,0xae,0x98,0x2d,0x10,0xc8,0xa8,0xac,0x15,0xf7,0x5b,0x81,0xc1,0xdf,0x5e,0xbe,0x88,0x49,0xe3,0xd1,0x88,0x1c,0xcb,0xce,0x20,0x01,0x12,0x60,0x57,0x0b,0xf6,0x32,0x57,0xaf,0x59,0xef +.byte 0xc9,0xe7,0xbf,0x62,0xf3,0xb6,0xe6,0x5c,0xee,0x36,0x7e,0x11,0x90,0xd1,0xeb,0xfa,0x62,0x0b,0xc6,0xf3,0x1a,0xd5,0x8b,0x95,0xec,0xb4,0x38,0xfe,0x45,0xb0,0xb5,0xff,0x84,0x0a,0x27,0x3a,0xa2,0x5a,0x2a,0xc9,0xa4,0xc0,0x11,0xc6,0x61,0x13,0xb7,0x53,0xa3,0x47,0x45,0x6d,0xc6,0xa9,0x00,0xd1,0x40,0xf4,0x77,0xac,0xb3,0xd3,0x26,0x99 +.byte 0xf1,0x36,0x59,0x28,0xb4,0xd0,0xdd,0x0e,0xed,0x53,0x33,0x45,0x71,0x9c,0x5c,0x11,0x27,0x2c,0x2f,0x10,0x9e,0x5b,0x8a,0x5b,0xc5,0x1f,0x36,0xc9,0x2a,0xba,0xc7,0xa5,0x31,0xd7,0x9f,0x2b,0x0a,0x09,0xcb,0x7c,0x4f,0xa2,0xdc,0xc5,0x64,0x0d,0xe6,0xfe,0xb0,0x9d,0x3b,0xf0,0xa7,0x19,0x8c,0x84,0x21,0x6b,0x9e,0x1c,0xb5,0x7b,0x66,0x77 +.byte 0xd0,0x85,0xb4,0x22,0x93,0x6e,0x84,0x29,0x9b,0x60,0x90,0x37,0x9d,0x8c,0x94,0x95,0x95,0x3b,0xf1,0x2d,0x56,0x5b,0x53,0x60,0x2d,0xe5,0x7f,0x80,0x71,0x56,0xa7,0x6e,0x66,0x76,0x1f,0xaa,0x0d,0xba,0xfb,0x0e,0xcf,0x20,0x68,0x74,0x2b,0x99,0x13,0xe1,0xa8,0x33,0xc9,0xf6,0xbc,0xd3,0xf4,0x46,0x01,0x02,0x85,0x27,0xf4,0x20,0x97,0xa3 +.byte 0xba,0xbc,0x47,0x30,0x48,0xed,0x60,0xe6,0xca,0xbf,0x76,0x8c,0x2c,0x6a,0x43,0x32,0xfd,0x90,0x04,0x95,0xc2,0x42,0xcb,0xca,0xc4,0x33,0xe1,0xd3,0x23,0x92,0xa1,0xde,0x09,0x38,0xce,0x00,0x93,0xb3,0xed,0x82,0x8e,0xfb,0xce,0x4c,0x9a,0x10,0x6e,0xce,0x4a,0x37,0x05,0x75,0x37,0x58,0xc3,0x8e,0x57,0x50,0xa0,0x7d,0x80,0x2d,0x51,0xea +.byte 0x08,0xcd,0x1b,0xd2,0x81,0x85,0x19,0xc1,0xe8,0xce,0x31,0x18,0xcf,0x54,0x37,0x96,0x77,0x3d,0x64,0xfb,0xc2,0xa9,0xdb,0xb8,0x37,0x03,0x83,0x34,0x3c,0x25,0x6a,0x22,0x33,0xfa,0x27,0x70,0xc7,0x0a,0x27,0x12,0x1e,0xb3,0xd0,0x59,0x6f,0xa3,0xc5,0x73,0x95,0x4c,0x1f,0xf1,0x3c,0xb3,0xc2,0xa2,0xc6,0x45,0x17,0x53,0xa8,0xfc,0x00,0xff +.byte 0x77,0x40,0x28,0xd2,0x53,0x90,0x92,0xe9,0x86,0x6c,0xa5,0x40,0xce,0xbc,0x79,0x6f,0x8f,0x12,0xef,0x1b,0x38,0x1f,0xb3,0x24,0xf0,0x75,0x17,0x20,0x9e,0x03,0x9c,0x2b,0x51,0x57,0x93,0x44,0xce,0x74,0xc9,0x12,0xe7,0xcb,0x2f,0x5e,0x1b,0x95,0xf2,0x4d,0x2e,0x51,0x8d,0x52,0xd5,0x21,0xe3,0x1b,0x33,0xe7,0xf2,0x18,0x61,0xa2,0x53,0xdb +.byte 0x73,0xaa,0x6a,0x6c,0xf9,0xf4,0xef,0x3d,0x40,0xa3,0x00,0x80,0x82,0xed,0xe6,0x66,0xd1,0xd6,0xe9,0x93,0xd8,0x92,0xfa,0xdf,0xf9,0x9c,0x7a,0xfb,0x2b,0xc7,0xa7,0x73,0x67,0x2b,0xed,0x76,0xb1,0x52,0xaa,0xcf,0x34,0x84,0xa1,0x6d,0x56,0x85,0xef,0xcb,0xbc,0xa3,0xc6,0xf3,0x5a,0x88,0x04,0xd5,0xd8,0xf1,0x7b,0xf8,0x11,0x6f,0xa0,0x44 +.byte 0xa5,0x0f,0x76,0xed,0xd7,0x98,0xe3,0xda,0xb8,0x1b,0xc7,0xe6,0x89,0x08,0x19,0x1f,0xf8,0xe3,0x32,0x32,0xa5,0x3c,0x71,0x9f,0x11,0xde,0x50,0x29,0xb0,0x54,0x7e,0x3b,0x5e,0xeb,0xf7,0xab,0xa8,0xa0,0x35,0x96,0xc7,0xc5,0xea,0x60,0xc0,0x37,0xca,0x61,0x55,0x96,0xac,0xb4,0xd0,0x29,0x9a,0x1a,0x3f,0x9e,0xf5,0xf5,0x3d,0xed,0xc5,0x7c +.byte 0x2c,0x9d,0x67,0xf8,0x4d,0x82,0x6e,0x2a,0x9a,0xfc,0x5f,0xdc,0x02,0xb0,0x3d,0xa5,0x1c,0x08,0x5d,0x4a,0xaa,0xd0,0x38,0xfb,0xbc,0xbb,0x7f,0x37,0xfb,0xec,0xc0,0x62,0x79,0xaa,0xde,0xfd,0x23,0x9c,0x4c,0x4a,0xe1,0x48,0x40,0x36,0xc0,0x0a,0x6f,0x43,0xb7,0xad,0x4c,0xf6,0x56,0xb5,0x44,0xf4,0x72,0xcd,0x13,0x10,0xea,0x0d,0x24,0xc1 +.byte 0xa9,0x36,0x3b,0x36,0xf2,0x6e,0xf9,0x0a,0x67,0xcd,0x02,0x67,0xb3,0x5c,0x63,0x3a,0x7c,0xc1,0x3b,0xf2,0x1d,0x3d,0xf1,0xff,0xbf,0xf7,0x97,0x9f,0x30,0x1f,0xaa,0xd8,0xdb,0x53,0x9b,0x0a,0xbd,0x38,0xd8,0xb6,0xf1,0x4a,0x78,0x1a,0xc2,0x46,0xd2,0x0c,0xa8,0xcd,0x7b,0x39,0xc7,0x42,0x55,0xc8,0x3e,0x02,0x1d,0xf4,0xad,0x55,0x01,0x6a +.byte 0x11,0x2d,0xfa,0x67,0x48,0xae,0x45,0x31,0x9b,0x09,0x7d,0xd9,0xdd,0xaf,0x5c,0xd5,0x40,0x51,0x2a,0xa1,0x0f,0xb3,0x6e,0xc2,0x94,0xfe,0xde,0x70,0xaf,0x6c,0xea,0x5f,0x7d,0x3c,0x72,0x85,0x86,0x24,0x20,0x0a,0x7a,0xe7,0x69,0x32,0x66,0x7d,0x34,0x13,0x60,0x62,0xc7,0x68,0x32,0xde,0x34,0x30,0x36,0xc8,0x8e,0xb7,0x13,0x66,0xf1,0xce +.byte 0x5f,0x7a,0x3a,0xfe,0x62,0xd6,0x72,0xb6,0x1b,0x80,0x43,0x8a,0x3e,0x13,0x15,0xe4,0x1c,0x7b,0x08,0x70,0x0b,0x6e,0xb3,0xfe,0x07,0x91,0x23,0x21,0x57,0x48,0xc6,0xa9,0xa3,0xa8,0xc7,0x19,0x89,0x8a,0x49,0x12,0x25,0x88,0xd2,0x11,0xa5,0xa8,0x9e,0x0e,0xa7,0x71,0xfe,0xaf,0x88,0xee,0xa7,0x1c,0x3b,0x27,0x27,0x7e,0x79,0x92,0xed,0x77 +.byte 0x74,0x65,0xbd,0x46,0x41,0x25,0xd9,0x8b,0x21,0x73,0x9f,0xaa,0x35,0xa0,0x22,0xb3,0xc8,0x71,0x28,0x72,0xd2,0xcb,0xf4,0x2a,0x06,0x0a,0x63,0x96,0x55,0x2e,0x83,0x0b,0xe8,0x07,0x99,0x9d,0x59,0xde,0xde,0x62,0xbd,0xb4,0x3e,0x70,0x15,0xed,0x95,0xa8,0x2f,0xb7,0xa2,0xb6,0x65,0x56,0x9d,0xe5,0x81,0xa0,0x05,0x5b,0xce,0x00,0xd4,0xb9 +.byte 0x28,0x5a,0xc1,0x9a,0x74,0xc6,0xd7,0x27,0xdd,0x7c,0xbe,0xe8,0x0d,0x47,0xfc,0x81,0x05,0x6b,0x4f,0x68,0xc7,0xcc,0x5d,0xd5,0x66,0x83,0x34,0x72,0x35,0xab,0x39,0x64,0x19,0x67,0xbd,0xff,0x15,0x44,0x20,0x18,0x2a,0xaf,0xbc,0x58,0x94,0xdb,0x18,0x50,0x55,0x11,0x6a,0xc4,0x1d,0xee,0xe2,0xe0,0x75,0x73,0xf1,0xa1,0x83,0xf4,0xcb,0x40 +.byte 0x96,0xf4,0x77,0x45,0x61,0x8b,0x1a,0x8c,0x0c,0xfc,0xd2,0x7e,0x0b,0x1e,0x18,0xd2,0x95,0xa5,0x4c,0x5b,0xd6,0x9d,0x40,0x8b,0xc0,0x51,0xe8,0x2d,0xe5,0x16,0xbf,0xd7,0x98,0x8a,0xa0,0x46,0x1f,0xc4,0xe9,0x12,0x31,0x40,0xc5,0x2d,0x59,0xf8,0x9b,0x5f,0xe3,0x3a,0x10,0xdf,0xda,0x72,0x9e,0xab,0x13,0x7b,0x8f,0xc8,0x52,0x9f,0x58,0x45 +.byte 0x7a,0xe6,0x3a,0xbb,0xdd,0x1d,0xc7,0x3b,0xc4,0x26,0xdc,0x99,0x29,0xf2,0x74,0x16,0x84,0xe9,0x8a,0x86,0xc0,0x1e,0x49,0x96,0x2f,0x5c,0x2a,0x49,0x71,0x88,0xe6,0x82,0xb2,0x18,0x88,0xc1,0x86,0xcb,0x26,0x3c,0xa5,0x50,0x31,0x22,0x9a,0x8f,0x45,0x2b,0xde,0xf0,0x86,0x8e,0x13,0x86,0xc4,0x4a,0x9b,0x35,0x27,0x93,0x0b,0x13,0xc8,0xef +.byte 0x96,0x74,0x97,0x85,0x09,0xc0,0xa0,0x32,0xfe,0xc3,0xe3,0x92,0x2e,0xe8,0x54,0xbd,0xc2,0x23,0xeb,0x4b,0x02,0xf5,0x5a,0x0b,0x0d,0x58,0x50,0x45,0xe7,0x01,0xd4,0x17,0x00,0xdb,0x0d,0xd4,0x2e,0xa0,0xde,0x38,0xf4,0xb1,0x1e,0xd0,0xf0,0xa3,0x6b,0x21,0x0c,0xbd,0xae,0x84,0x7e,0x42,0x36,0x4f,0x2e,0x46,0xae,0x23,0x91,0xb9,0x06,0xac +.byte 0x86,0x7f,0x29,0xca,0xfb,0xe9,0xde,0xdb,0x90,0xfe,0x6f,0xbc,0xdb,0x3c,0x48,0x3d,0x6e,0x06,0x68,0x49,0xbb,0x43,0x8d,0x9d,0xc4,0x5f,0x45,0xcb,0x77,0x28,0xe0,0x35,0xd1,0xb4,0x25,0xb2,0x45,0x6d,0xb4,0x89,0x53,0x26,0x33,0x98,0x83,0x45,0x9d,0xf5,0xad,0xf9,0xa7,0x59,0xb6,0x6e,0xa8,0x25,0xa5,0xef,0xee,0xf6,0x6a,0xd5,0x6c,0x60 +.byte 0x9a,0xea,0x78,0x9e,0xe4,0xa2,0x29,0x0b,0x70,0xb3,0x6e,0x3a,0xfd,0x07,0xc7,0x7f,0x1b,0x07,0xc7,0xca,0x1b,0xb8,0x08,0xe1,0xc9,0x94,0xb2,0x62,0x7c,0x04,0x96,0xa6,0xda,0x65,0x28,0xfd,0xf9,0x70,0x22,0xb7,0x21,0xd3,0xa6,0x38,0x0f,0x1e,0x88,0x7e,0x73,0xec,0x04,0x99,0x8b,0x23,0x91,0x13,0xe6,0x4f,0x74,0x81,0xcc,0x1f,0xdd,0xaf +.byte 0x58,0xc4,0x80,0x00,0x4d,0x1d,0xbe,0x84,0x7d,0xfe,0x85,0xe7,0x77,0x20,0x3c,0x65,0x4e,0x0e,0x2e,0x5d,0xc1,0xd9,0xcb,0xf7,0xbb,0xc8,0x8d,0xbf,0x16,0xa8,0x1e,0x63,0xf5,0x10,0x5e,0xa5,0x9c,0x63,0xb6,0x9a,0xeb,0x98,0xa8,0xb1,0x59,0x82,0x66,0x51,0xae,0x3c,0xfc,0xa8,0x11,0x92,0xf4,0x45,0x88,0x7c,0x03,0x6f,0xe6,0x87,0xe4,0xa8 +.byte 0x79,0xbf,0xb3,0x0d,0xd6,0x0b,0x8d,0xa3,0x16,0x2a,0xfb,0x79,0xb9,0xe7,0xdb,0xa7,0xdb,0x94,0xd3,0xe6,0x3a,0xdd,0xe9,0x5f,0x30,0x7d,0x68,0x90,0x35,0xfd,0x18,0x91,0x8e,0xc5,0x12,0xd6,0xf9,0x98,0xa0,0x5b,0xcd,0x81,0x76,0x84,0x08,0xd0,0xab,0x59,0x2d,0x3b,0x8a,0xf9,0xd9,0x95,0xde,0x8b,0xbb,0x92,0xef,0x35,0xc3,0x3e,0x46,0x73 +.byte 0xf3,0x3b,0x09,0xbf,0x22,0x2b,0x9c,0x0f,0x70,0x9a,0x16,0x0e,0x4b,0xa7,0x1a,0x96,0x98,0xb7,0x5a,0x40,0x06,0x81,0xf4,0xac,0xa6,0xe6,0xab,0xf2,0xda,0x87,0x18,0x61,0xcb,0xc1,0x67,0xbd,0x2f,0x6f,0x06,0x21,0xaf,0x73,0x98,0xe1,0x3f,0x7a,0x17,0x7f,0x44,0xcb,0x1d,0xdd,0x60,0xb3,0x2c,0x58,0x20,0x8a,0x04,0x74,0x56,0x9b,0x26,0x51 +.byte 0x61,0xb0,0x07,0x50,0x53,0x83,0x31,0x42,0x59,0xb3,0x33,0xfa,0xfe,0xbc,0xad,0x7f,0x99,0x9b,0x86,0xf1,0xaa,0x85,0xf1,0xbb,0xc0,0x0c,0x91,0x8d,0x1a,0x0f,0x8f,0x9f,0xfe,0x62,0x2b,0x35,0xae,0xcc,0x8c,0x09,0xe3,0x29,0x96,0xd1,0xbe,0x7f,0x25,0xd6,0x03,0xf0,0x4c,0x53,0xad,0x5b,0x56,0x66,0x68,0x9a,0xa3,0xc4,0x07,0x71,0xde,0x49 +.byte 0x82,0xbb,0xf7,0x9a,0x2b,0x96,0xcf,0x50,0xf6,0x00,0xf7,0x0b,0x27,0xdd,0xf5,0xf6,0xc5,0xc8,0xbd,0x2a,0xa2,0x06,0x2c,0x42,0x3f,0xa0,0xf8,0xcc,0x1d,0x64,0xcf,0xbc,0xb4,0xc4,0x63,0xde,0x6b,0xd3,0xb4,0x61,0xdf,0xbd,0x73,0x50,0x34,0xc3,0x20,0x45,0x06,0x73,0x9b,0xf0,0xfb,0xa6,0x2b,0xec,0x92,0x32,0xa9,0x1f,0x4f,0x1e,0x38,0x78 +.byte 0x2a,0xd2,0x7c,0x1d,0x89,0xf9,0x70,0xbc,0xef,0x09,0x77,0xd3,0x6a,0x56,0xa1,0x8b,0x4b,0x23,0x1b,0xb1,0x2f,0xec,0x84,0xe5,0x59,0xc5,0x20,0x23,0xbc,0x3f,0x0a,0x43,0x97,0x1c,0x5e,0xf7,0xee,0xfe,0x0b,0x2a,0x42,0x08,0x2a,0x39,0x91,0xce,0x8a,0x33,0x9f,0x63,0x77,0x6d,0xf6,0xf3,0x0e,0x1d,0xb3,0xfb,0xcf,0x2f,0x7f,0x95,0xc2,0x71 +.byte 0x1c,0xa0,0x0b,0xc6,0xb8,0xde,0x4d,0xd8,0xcc,0x4c,0x4f,0xaf,0x07,0x87,0x6d,0x3b,0xab,0x95,0xab,0xa1,0x6a,0x50,0x9f,0x7c,0x35,0xb6,0x65,0xdd,0xe3,0x06,0xe5,0xb3,0x42,0x5f,0x4d,0xe5,0x3e,0xfa,0x6c,0xdf,0x19,0x58,0xd1,0xf6,0xc6,0x94,0x1c,0xce,0x30,0x90,0xd3,0xeb,0xa3,0x7c,0xe5,0x3f,0x57,0x99,0x2e,0x22,0x0a,0x94,0x2f,0xfe +.byte 0x39,0x16,0xe6,0xfa,0xd0,0xb5,0xf9,0xb4,0x88,0x61,0xa4,0xa8,0xc3,0xb8,0xb7,0x52,0xaf,0x90,0xc1,0xe0,0x19,0x78,0x04,0x2b,0x71,0x04,0x03,0x2f,0x63,0xbe,0x40,0xf5,0x82,0x3b,0x1b,0x6b,0xde,0x6d,0x1e,0x86,0x87,0x82,0xc3,0x31,0x97,0x20,0xdd,0xdd,0xce,0x61,0x64,0x99,0xf6,0xbe,0xbf,0xec,0x37,0x54,0x8b,0x92,0x29,0xda,0xc5,0x7b +.byte 0x4d,0xc5,0xaf,0xb8,0x4e,0x4b,0x4a,0x2b,0x35,0x30,0xf5,0x19,0x9e,0x32,0xd8,0x2e,0xc1,0x19,0xfe,0xd1,0x61,0xb0,0xaa,0x05,0x58,0x15,0xd9,0x0e,0x4e,0xca,0x4e,0x10,0x83,0xe6,0xe6,0x57,0xe8,0x8d,0x13,0xb4,0x6f,0x85,0x59,0xf2,0x83,0xc8,0x37,0xaa,0xa2,0xe5,0xc8,0x77,0x06,0x82,0x21,0x5d,0x84,0x58,0x67,0x9b,0xcc,0x9c,0xfc,0x1b +.byte 0x28,0x2f,0xac,0xc8,0x96,0x91,0x26,0x46,0x42,0x2b,0x68,0x57,0xb0,0x79,0x1e,0xb1,0x9b,0x92,0x2c,0xeb,0x67,0x00,0xd4,0x26,0x7d,0xca,0x45,0x97,0x55,0xea,0x2a,0x20,0x70,0x7c,0x20,0x14,0x38,0x40,0x3d,0x4f,0xf5,0x3a,0x1f,0x0a,0xe3,0x9a,0x48,0xcc,0xb2,0x7d,0xee,0x5b,0x48,0x90,0x0d,0x12,0x77,0xd8,0xd3,0xb6,0xd7,0x66,0x9e,0x48 +.byte 0xbb,0x92,0xc1,0x7c,0x4e,0x90,0x4d,0xd5,0x96,0x99,0xea,0x86,0x2d,0xb9,0x5a,0x50,0x05,0xc2,0x6b,0xa7,0x0c,0x43,0x44,0x22,0x09,0xb9,0xc0,0x56,0x47,0x5f,0xdf,0xaf,0x6b,0x91,0xe2,0xd7,0x45,0x77,0x17,0x7a,0x71,0x6d,0x27,0x93,0xe2,0xc6,0x10,0x2f,0xc8,0x3b,0x75,0x78,0x11,0xae,0x07,0xe6,0xba,0x64,0xd4,0x06,0xfa,0xf9,0x1d,0x74 +.byte 0x9e,0x4f,0x6d,0x02,0xfc,0x40,0x80,0x9a,0x2e,0xd4,0x15,0x32,0x15,0xe8,0x97,0x0a,0xd4,0x65,0x6a,0x87,0xd3,0x66,0x4b,0xb8,0x66,0x84,0x8e,0xb9,0x4b,0xa7,0xcf,0x58,0x13,0x66,0x3a,0x4e,0xa5,0x76,0x17,0x13,0x92,0x79,0x42,0x67,0x6d,0xb6,0x65,0xec,0xc8,0xb5,0x5f,0x17,0x2a,0x2d,0x4b,0x19,0xe9,0x00,0x6e,0x38,0xaf,0xe9,0x06,0xb6 +.byte 0xe8,0x99,0x69,0x8a,0x74,0xe7,0x7e,0x70,0x69,0x4b,0xbc,0xce,0x5d,0x61,0x94,0x1b,0x47,0x41,0x38,0x5f,0x2e,0xcf,0x2b,0xe1,0xcd,0xa3,0x98,0x71,0xf7,0x09,0x65,0xfe,0x5f,0x62,0x4b,0x9e,0x91,0x88,0x35,0xa2,0x66,0x02,0x1d,0xc9,0x93,0x0c,0x19,0x50,0x4b,0x95,0x71,0x79,0xdd,0x74,0xe1,0xda,0x5a,0xb7,0x38,0x70,0x61,0x18,0x3f,0x68 +.byte 0x08,0x34,0xd8,0xfe,0xbb,0xd1,0xbf,0x57,0xed,0xc2,0x52,0x6d,0x54,0x3e,0xcb,0x0c,0x32,0xc7,0x09,0xa9,0x31,0x10,0xe8,0xbd,0x70,0xe3,0x0e,0xe9,0x4f,0x7a,0xd6,0x42,0x45,0x2e,0x1b,0x3c,0x0d,0x15,0x6d,0xb4,0xad,0xe9,0xc5,0xa2,0x12,0x77,0x34,0x43,0x20,0x95,0xc1,0xb7,0x51,0x72,0xed,0x78,0xa0,0xae,0x3c,0xae,0xb4,0xd4,0xda,0x58 +.byte 0x83,0x62,0xa9,0xc6,0x01,0x3d,0x14,0x19,0x07,0x00,0x3c,0x82,0x16,0x7e,0x8a,0x91,0x78,0xa1,0x65,0x0b,0x5b,0x3a,0x40,0x72,0xe5,0xf0,0xd4,0x82,0x04,0xe4,0x01,0xf1,0x84,0x87,0x96,0x26,0x91,0x66,0x77,0xf7,0x59,0xd6,0xc2,0xca,0x29,0x3b,0x68,0x2a,0x27,0x99,0x64,0x86,0xc2,0x96,0xbf,0x11,0x3c,0xa8,0x0c,0xf7,0x86,0xb8,0xc1,0x40 +.byte 0x15,0x1a,0x84,0xe3,0x93,0x23,0x73,0xa9,0x8b,0xbd,0xb4,0x8a,0xe4,0xf1,0xa5,0x8f,0x56,0xa3,0xdc,0x77,0xbd,0x7d,0x15,0x74,0x2b,0x18,0x92,0x56,0x45,0xbc,0xaf,0xf2,0x55,0xce,0x9d,0xc2,0xab,0x39,0x90,0xec,0x78,0x3f,0xa5,0x14,0xeb,0x40,0x2f,0x01,0xca,0xeb,0xad,0x73,0x85,0xbc,0xe1,0x91,0xaa,0x77,0xa9,0x6c,0x02,0x66,0x6a,0x65 +.byte 0x63,0x6c,0x50,0x62,0x83,0x83,0xef,0x16,0x4f,0x21,0xfd,0x28,0x8e,0x52,0x66,0x5b,0x6f,0x8f,0xbe,0x8d,0x17,0xb9,0xd5,0x99,0xf7,0x39,0xd1,0xbc,0xa2,0x43,0xd7,0x0a,0x80,0xea,0x42,0xf8,0x38,0x53,0x95,0x07,0x6f,0xb7,0x7c,0xc1,0x16,0x88,0xc8,0xb7,0x59,0xde,0x76,0x51,0x2f,0x92,0xd0,0x40,0xfd,0xd9,0x2d,0xca,0x9e,0x8d,0x28,0xae +.byte 0x48,0xc1,0x0a,0xe0,0x76,0x9c,0x02,0x0b,0xc5,0xd1,0xf9,0x83,0x90,0x86,0xa4,0xeb,0x5c,0x64,0x65,0xf8,0x98,0x38,0xc5,0xce,0xef,0x6f,0xc3,0x88,0xb6,0x2f,0x8a,0x40,0x55,0x52,0x47,0x06,0x75,0x16,0x46,0x9c,0xff,0x3c,0x68,0x97,0xc3,0xfb,0x10,0x11,0x7b,0xba,0x04,0xcc,0xad,0xba,0xcf,0xf0,0xae,0xba,0xe6,0x59,0x9c,0xf5,0x27,0xeb +.byte 0xdd,0x5c,0x86,0x25,0xa1,0xb6,0xb8,0x1c,0x94,0x98,0xa5,0x79,0x82,0x4e,0xdf,0x09,0x3f,0x2f,0x8a,0x4e,0x1b,0x5a,0xab,0xd4,0xe6,0x21,0xb3,0x02,0x19,0x39,0xa9,0x2e,0x0e,0xae,0x86,0x30,0xc7,0xa0,0x00,0xed,0x72,0xdc,0x71,0x77,0x42,0x76,0x54,0x68,0xb2,0x8d,0x5d,0xc3,0x5c,0x86,0xf8,0xb1,0x6c,0x67,0xdf,0x24,0x40,0x6a,0x2b,0x1d +.byte 0xbc,0x0d,0x25,0x7d,0x9e,0x1c,0xbd,0x18,0x85,0xda,0x7a,0x86,0x5e,0xed,0x10,0x80,0x83,0xa6,0xef,0x1e,0x93,0xac,0xce,0xe6,0x32,0x35,0xdf,0xb8,0xc7,0x9b,0xf0,0x0f,0x9d,0x37,0xbd,0xd9,0x58,0x33,0x19,0xa1,0x23,0x51,0x5f,0xa7,0x5a,0x99,0x7e,0x2a,0xfd,0x85,0x3c,0x26,0xad,0xcc,0x7e,0x07,0x32,0x7b,0x24,0x5a,0x6b,0x4b,0x71,0x4e +.byte 0xca,0x8b,0xc4,0x03,0x26,0x76,0x02,0x68,0x0d,0xa1,0x09,0xe0,0x2e,0xa4,0x82,0x88,0x05,0x5a,0xc4,0xcb,0x31,0x9d,0x56,0xda,0x0d,0x00,0x04,0xbc,0x07,0xca,0x1f,0xdf,0x9e,0x44,0xed,0x36,0xbd,0xa0,0x22,0xff,0x78,0xd1,0xcb,0x62,0xe0,0x0d,0x2e,0xdc,0x2e,0x36,0x28,0x8e,0xd3,0xa9,0xe0,0x38,0xd4,0xc5,0x2b,0xee,0xaf,0xa4,0x08,0x7d +.byte 0xed,0x2c,0x8a,0xf5,0x86,0x5e,0xed,0x2a,0x0d,0xbf,0xe6,0xfb,0x6f,0xc4,0x02,0x75,0x36,0xe5,0x7b,0xe9,0x4a,0xb3,0xf1,0xf4,0x86,0x6c,0x9a,0x6e,0xaa,0x7a,0xbe,0x4b,0xd6,0xf2,0x6b,0xcb,0x78,0x6f,0xf9,0x42,0x1a,0x19,0x7b,0x7e,0xba,0x59,0x02,0x8b,0xe3,0x5c,0x44,0xa4,0x84,0xa8,0x4a,0x67,0x93,0xee,0xc4,0x17,0x07,0x26,0xfe,0x86 +.byte 0xf1,0xc6,0xba,0xbf,0xc4,0x3d,0x33,0x41,0x4d,0xc4,0xf0,0xa8,0x6d,0xe1,0x06,0x16,0x2d,0xc9,0x5d,0x2a,0xf5,0x4a,0xc6,0xd2,0x8c,0x98,0x55,0xe8,0x8d,0xd0,0x31,0x5f,0xc7,0x05,0xd1,0xca,0xd2,0x72,0xe6,0xd0,0xcb,0x62,0x79,0xac,0x60,0x59,0x94,0x59,0x48,0x9e,0x91,0x17,0xa7,0xa0,0xac,0x4a,0xe5,0x08,0xe5,0x52,0xa4,0xd4,0x83,0x8c +.byte 0x83,0x57,0xe7,0xe5,0xfc,0x9b,0x43,0x78,0xc8,0x7e,0x94,0xc4,0x35,0x3e,0xac,0x4a,0x8d,0x60,0x80,0xdc,0x72,0xe3,0x15,0x09,0x2a,0xbd,0xcc,0x9a,0xe4,0x1a,0x18,0xa8,0xf1,0x29,0x9b,0xca,0x58,0x0b,0x6d,0x7b,0x33,0x91,0x05,0x27,0x6a,0x48,0xbe,0xac,0x08,0xa5,0x2a,0x64,0xf5,0xae,0x2a,0x90,0xf1,0x2d,0x3f,0xa8,0xff,0x17,0x92,0xc4 +.byte 0xec,0x3a,0x09,0xbf,0xae,0xd3,0xe2,0x1c,0x3c,0xc8,0x6f,0x91,0x72,0x99,0xe3,0x82,0x30,0x4f,0x40,0x5c,0x0c,0x8d,0xfd,0xbe,0x10,0xbc,0xce,0x1e,0x0a,0x09,0xbf,0xde,0xdc,0x72,0x7e,0x4c,0xbc,0xec,0x34,0xe2,0x96,0x8a,0xc6,0xee,0x19,0x6c,0xa8,0xf1,0xa5,0xb2,0x71,0x88,0x13,0xe8,0x11,0xda,0x3b,0x77,0x10,0x9c,0x9f,0x74,0x49,0x21 +.byte 0x16,0xcf,0x6f,0x05,0xc5,0xc1,0x4d,0xfe,0xe7,0x4d,0x67,0xe8,0x12,0x14,0xf7,0xaf,0x66,0x8d,0x55,0x34,0x00,0x18,0x10,0x6e,0x6a,0xd2,0x4c,0xd9,0xd3,0x15,0x40,0xbf,0xce,0x7b,0x10,0x69,0xbd,0x15,0x0e,0x60,0x2b,0x76,0x50,0x80,0x92,0x02,0x3c,0x0f,0xea,0x47,0x03,0xd9,0xf6,0x2c,0x00,0xde,0x29,0xb9,0x2e,0xf6,0x80,0x10,0x81,0x28 +.byte 0x6f,0x41,0xfc,0x88,0x65,0xe9,0xb5,0xd4,0x78,0x53,0xff,0x04,0xc4,0xdd,0xd7,0x35,0x34,0x59,0x85,0x33,0x01,0x33,0x67,0xe1,0x4e,0xc2,0xac,0xe6,0x24,0x24,0xb6,0x83,0x48,0x08,0x0c,0x73,0xe5,0x9c,0x98,0xe4,0x4c,0x3c,0x1f,0x6e,0x77,0xea,0x8c,0x76,0x23,0xbb,0x41,0x5e,0xc1,0x8a,0xba,0x3e,0xe5,0x3e,0x86,0x89,0xab,0x32,0x65,0x1b +.byte 0x00,0x92,0x56,0xe0,0x62,0xc1,0x8f,0xeb,0x15,0x7f,0x86,0xdf,0xa2,0xc2,0x8d,0xf5,0xb5,0x88,0x72,0x8c,0xba,0x92,0x30,0x53,0x58,0x3e,0x0b,0xe6,0x4f,0xd4,0xef,0x34,0xab,0xbb,0x61,0xe0,0x31,0x3c,0xe7,0xb2,0x5f,0x64,0xcb,0x52,0xc7,0x1d,0x95,0x96,0xd2,0x8c,0x87,0x34,0x92,0xf2,0xad,0xd9,0x78,0x1d,0xa1,0x67,0x58,0xfa,0xfb,0x06 +.byte 0xc8,0x7f,0x9e,0xf7,0x02,0x12,0xd9,0x8c,0x68,0xbc,0x2b,0xd3,0xe1,0x0e,0x1e,0xbd,0x33,0x7a,0xfd,0x03,0x41,0xb9,0x72,0x2e,0x63,0xfe,0xb1,0x39,0xc3,0x0f,0xa0,0xa9,0x76,0x4f,0x7b,0xab,0xae,0xda,0x22,0xec,0x83,0x32,0xb0,0xec,0xd1,0xfd,0xc2,0x28,0x1e,0x42,0x29,0x31,0xd5,0xb3,0x33,0xcd,0x13,0x1d,0x9f,0xac,0x73,0x27,0xf7,0xea +.byte 0xc6,0x66,0xd2,0x32,0x91,0x60,0x35,0xf4,0x28,0x34,0x43,0x6a,0x74,0x8c,0x05,0x2a,0x84,0x34,0xfd,0x84,0xa5,0xcb,0x1d,0x2b,0x41,0x28,0xa6,0x19,0xed,0xcd,0xad,0xea,0x6e,0xf7,0x14,0x18,0xac,0x56,0x9a,0xf5,0xaa,0x7d,0x4e,0x8a,0x99,0xd1,0xda,0x41,0xaf,0xe8,0xfc,0xef,0x66,0x88,0xd0,0xed,0xfd,0xae,0x2a,0x85,0xc0,0x60,0xa2,0x30 +.byte 0x5d,0x1b,0x48,0xf6,0x3e,0xcf,0x56,0xdf,0x53,0xdc,0x2d,0xf5,0xfd,0x7f,0x2a,0x2a,0x4d,0x4f,0x11,0xcc,0xea,0x72,0xdb,0xb9,0xeb,0x92,0x0e,0x9f,0xc1,0x26,0xe9,0xbf,0x25,0x6a,0x27,0xe1,0x63,0x9b,0xdd,0x62,0x38,0xad,0xd3,0xb2,0x75,0x62,0x45,0xbf,0xbf,0xf4,0xe2,0xd6,0x97,0xe9,0xeb,0xeb,0x98,0xab,0x73,0xdc,0x8a,0xde,0xaa,0x3b +.byte 0x69,0xfd,0x61,0x6f,0xbb,0xfc,0x28,0xc0,0xff,0x37,0x2e,0xeb,0x31,0x59,0x57,0xfb,0xd3,0x0e,0xed,0x01,0x66,0x50,0x63,0x53,0xa2,0xd1,0x24,0x8c,0xc8,0x8d,0x80,0x03,0x2a,0x1e,0x11,0x3a,0xb9,0x6c,0xf4,0x5f,0x58,0xa2,0xd6,0x58,0x6b,0x85,0x61,0xd1,0xe7,0xdc,0x90,0x07,0x34,0x6e,0xb9,0x0b,0x0d,0xcb,0xd5,0xe3,0xc6,0x9d,0xb8,0x51 +.byte 0x37,0x61,0xd0,0x6c,0x2e,0xed,0xe0,0xbc,0x55,0x74,0x63,0x1b,0x42,0x17,0x6a,0x9c,0x91,0x1b,0x96,0x76,0xc8,0xe4,0x2b,0x2e,0x90,0xd9,0xe5,0x3f,0x56,0x1b,0x2f,0x93,0x81,0x86,0x2a,0xb4,0xdf,0x93,0xcb,0xfa,0x01,0x85,0xd9,0x26,0x46,0x46,0x97,0x2a,0x2e,0xb3,0x91,0xe4,0xcf,0xd9,0x01,0x5a,0x37,0xa6,0xca,0x5e,0xed,0xa9,0x94,0x35 +.byte 0x2c,0x69,0x5b,0x1e,0xf8,0x38,0x61,0x41,0x10,0xf6,0xe9,0x6e,0x96,0xee,0xe6,0x5f,0x78,0x14,0x93,0x12,0xd2,0x57,0xe5,0xf4,0x58,0x46,0xca,0xc8,0x75,0x59,0xbd,0xd0,0xe4,0x70,0x35,0xa5,0x4a,0xfd,0x54,0xe2,0x91,0x76,0x0e,0xe6,0xe3,0xbb,0x31,0x65,0x4b,0x18,0xa8,0xb4,0xfa,0xa6,0x7d,0x7a,0xa9,0x47,0x3d,0x2b,0x2e,0x66,0xac,0x5b +.byte 0x3e,0x5e,0x8c,0x27,0x0c,0x33,0x04,0x03,0x4e,0x5f,0xcd,0x6b,0x9c,0xaa,0x13,0x83,0x38,0xe9,0x38,0xcf,0x03,0x70,0x5a,0x0f,0x18,0xf5,0xec,0x64,0xf3,0x0c,0xe8,0xb1,0xa9,0x07,0x70,0xf7,0xde,0x0c,0x35,0xf5,0xe2,0xcd,0xed,0xe6,0x4d,0xac,0x5c,0x4d,0x3e,0x03,0x96,0x90,0x7b,0x4c,0x3e,0x18,0x42,0xc0,0xa7,0x23,0x12,0x8e,0x54,0xc1 +.byte 0xa1,0x2f,0x82,0x13,0xe6,0x1f,0x74,0xae,0x7b,0x4a,0xa4,0xbb,0xdc,0xc0,0x68,0x0f,0x83,0xbc,0xda,0xce,0xa2,0xe7,0xbe,0x18,0xcd,0x8b,0x35,0x05,0xa3,0x4b,0x6f,0xf0,0x53,0x12,0x42,0x2f,0x3c,0x09,0x87,0xb7,0xe3,0x36,0x29,0xe1,0xa2,0xb6,0x60,0x05,0xb9,0x66,0x80,0xe9,0xec,0x40,0x2a,0x55,0x78,0x5f,0x1c,0x5f,0xc3,0xc7,0x49,0x69 +.byte 0x87,0x97,0x5f,0xa5,0x31,0xa8,0x83,0x66,0x5a,0xd7,0xaf,0xf0,0x15,0xf3,0x01,0x62,0x9a,0x88,0x76,0x0f,0xb3,0xdf,0xf1,0xc6,0x34,0xc3,0xac,0x68,0x60,0x9a,0x91,0x03,0x13,0xea,0x0e,0x36,0x9c,0xf5,0x51,0xb7,0x0c,0xa4,0xeb,0xf0,0x41,0x85,0x54,0x05,0xed,0x7a,0xc2,0xba,0x3b,0xb8,0x1c,0x41,0x0d,0xbb,0xad,0x16,0x7e,0x64,0x4f,0x88 +.byte 0x7a,0x17,0xae,0x76,0x55,0x78,0x93,0xe8,0x99,0xa1,0x70,0x1f,0xf6,0x8a,0xb9,0xeb,0x41,0xb9,0x08,0xb8,0x9d,0x78,0x57,0xa1,0xe1,0x23,0xa0,0x03,0xd3,0x16,0xbc,0x16,0x24,0xed,0xc5,0x12,0x16,0x0a,0x8a,0x23,0x11,0x22,0xc2,0xfe,0x49,0x9d,0x3d,0x10,0x3d,0x4b,0xeb,0xab,0xcb,0x21,0x9d,0x9d,0xb1,0x64,0x87,0xe5,0x4d,0xb9,0xe7,0x10 +.byte 0x05,0xa0,0x55,0x2f,0xdf,0x53,0x5e,0x03,0xec,0x7e,0xe4,0x1f,0x9b,0x16,0x0c,0xfc,0xd9,0xf9,0x66,0x39,0x93,0x9e,0x49,0x34,0x97,0xd6,0xa5,0x56,0x00,0xf1,0xaf,0x08,0xeb,0x58,0xcf,0x87,0x02,0xc4,0xf1,0x24,0xe8,0x29,0x83,0xc9,0x5d,0x56,0x68,0xa2,0xaa,0xba,0xb3,0x86,0x23,0x59,0x8d,0x32,0x96,0x4a,0xbb,0xe9,0xf2,0x53,0xb2,0x87 +.byte 0x4a,0xf5,0xdc,0x23,0xd4,0x2f,0x36,0x70,0xb5,0x1d,0xee,0x47,0x51,0x6c,0x35,0x2a,0xad,0x35,0x74,0x1b,0x98,0xb5,0x33,0x2c,0x6d,0x4c,0xf8,0x39,0x07,0x92,0x6c,0xc7,0x65,0x10,0x64,0xcd,0x53,0xa3,0xcb,0xcc,0xe4,0xb2,0x46,0xb3,0xb7,0x44,0x01,0x92,0x44,0x12,0x23,0x25,0x3e,0x00,0xe3,0xeb,0x5f,0xe5,0x76,0x48,0x4e,0x4a,0x7f,0x36 +.byte 0xf0,0x0b,0x5e,0xc0,0x97,0x0d,0xc8,0xcf,0xd5,0xb8,0xc0,0x11,0x8d,0xb9,0x1e,0x31,0x0f,0x84,0x36,0x2e,0xe0,0x42,0xe6,0x02,0x9d,0xa4,0xdb,0xa2,0x76,0xfd,0xa1,0x95,0xe0,0x49,0xe6,0xf1,0xd2,0xae,0x27,0x6b,0x11,0x05,0x47,0xb0,0xaa,0x61,0x01,0xd4,0xe6,0xcd,0x9d,0x7e,0x33,0x5d,0xec,0x22,0x96,0x59,0xb7,0xc5,0x50,0x83,0xa4,0x66 +.byte 0x56,0xc7,0x43,0xa6,0xf7,0x5d,0xb2,0x45,0xc0,0x96,0xa0,0x5b,0xb8,0xed,0xae,0x29,0xb3,0x7d,0xbd,0x01,0xde,0xc0,0xe7,0xcc,0xe9,0x55,0x32,0x32,0xbf,0xdd,0x03,0x1b,0xb0,0x4e,0xff,0x53,0x1f,0x4b,0xc6,0xec,0x16,0x9d,0x5b,0x78,0x74,0xc4,0x75,0x51,0x8a,0x1c,0xae,0x6b,0xcd,0x9c,0x77,0x47,0xbf,0xd1,0x38,0x3e,0x9e,0xc0,0xad,0x16 +.byte 0xb7,0x15,0x6b,0xdc,0xad,0xe9,0x13,0xbc,0x48,0xc1,0xaf,0x69,0xce,0xc4,0xcc,0x9b,0x73,0xf9,0xd5,0x7c,0xab,0xf0,0xf1,0x9b,0xea,0xc6,0x0b,0x19,0x47,0x42,0xc1,0xa0,0x02,0x64,0x17,0xce,0x88,0x4f,0x16,0xa6,0xed,0xdb,0xfe,0x61,0xd3,0xd6,0xc0,0x11,0x30,0x16,0xd2,0x45,0xb3,0x7e,0x52,0xd0,0x94,0x77,0xf0,0x0e,0xbf,0x16,0xc0,0x4a +.byte 0x2a,0x5c,0xac,0x55,0x57,0xb1,0x41,0xb6,0xa3,0x68,0x8c,0x0a,0x66,0x15,0xb4,0xf5,0xd9,0x9a,0xa9,0x68,0xf2,0xbc,0x06,0xc5,0x7c,0xd1,0x18,0x55,0x9a,0x2d,0x94,0x2e,0x04,0x4b,0x7d,0x3c,0xb1,0xe3,0x03,0x7a,0xa7,0xe3,0xe5,0x63,0x49,0x7c,0x3f,0x0a,0xc5,0xbd,0xd3,0x0f,0x04,0xfd,0x99,0xf7,0xe6,0x05,0x35,0x66,0x17,0x05,0x85,0x3b +.byte 0x98,0x92,0x11,0x26,0xe2,0x21,0x52,0x1b,0x54,0x08,0xc8,0xf0,0x4e,0x75,0x22,0x3f,0xe8,0xb6,0x35,0xa4,0x02,0x52,0x70,0xc2,0xce,0x5a,0x00,0xe2,0xe2,0x92,0x8c,0x97,0xa7,0x1d,0x42,0x52,0x8b,0xf1,0x81,0xa7,0xce,0x60,0x46,0xbe,0xf0,0x1d,0x34,0xdf,0x73,0x2a,0xd6,0x9a,0x2d,0xf9,0xe3,0x91,0x05,0xe4,0x1f,0x31,0x11,0x30,0xb0,0xff +.byte 0x8f,0x61,0x74,0xf4,0xef,0xcd,0xf6,0xa4,0x9a,0xd2,0x5e,0xba,0x27,0xe8,0x78,0x38,0xfc,0x75,0xff,0x3b,0x6c,0xde,0x4a,0x46,0x47,0x8e,0x97,0x28,0xe4,0x23,0xe0,0x10,0x07,0xca,0xcb,0x6d,0xed,0x29,0xc0,0xee,0x98,0x96,0x7c,0x90,0x1f,0x89,0x12,0x0f,0xd5,0x28,0xcf,0x6e,0x4b,0x9b,0x2d,0xb3,0xcd,0x97,0xb8,0xeb,0x58,0x23,0x26,0xb1 +.byte 0xb4,0x95,0x11,0x1e,0xee,0x00,0xde,0x24,0x28,0xa6,0x3f,0x15,0xa2,0x9a,0xcb,0x9d,0xe3,0x04,0x5d,0xc3,0x60,0x97,0x14,0x2c,0x84,0x2b,0x69,0x9c,0x2a,0xbf,0x08,0xba,0xc4,0x38,0x36,0xaa,0x89,0x11,0x32,0x63,0x01,0xa2,0x44,0x5f,0x50,0xf0,0x5b,0x11,0x15,0xc8,0x80,0xc9,0xa6,0xe7,0x5d,0x70,0xa8,0x34,0x42,0x97,0x2a,0x60,0x99,0x20 +.byte 0xa6,0x60,0xc0,0x70,0x8d,0x2f,0x3f,0x8a,0x14,0x80,0x8a,0xbe,0x05,0xb3,0x50,0x16,0xaf,0x32,0xb4,0x35,0x3e,0x1d,0x31,0x42,0xdd,0x50,0xeb,0x04,0x82,0x4c,0x83,0x3d,0x8f,0xb6,0x1e,0xc2,0xa9,0xd2,0x30,0xba,0x33,0xdb,0x97,0x6d,0x2d,0x97,0x59,0x33,0xc0,0xf8,0xa5,0x59,0xc5,0x44,0x9c,0xf1,0x06,0xc4,0xf2,0x31,0x3e,0xff,0xb8,0x12 +.byte 0x00,0x4d,0x6c,0x2d,0xa1,0xc7,0x83,0xea,0x55,0x93,0x0e,0x89,0x76,0xbf,0x56,0x2a,0x99,0x62,0x54,0xad,0x2c,0xe8,0xf0,0xf9,0x70,0x18,0xa5,0x2b,0x24,0xac,0x59,0xc9,0x84,0xe3,0x1a,0x9d,0xa0,0xdb,0x1b,0x7f,0xd5,0x7e,0xb5,0xe0,0x86,0x36,0xc5,0x71,0x6a,0xab,0xdb,0xa5,0x84,0xf1,0x9e,0x9e,0xf6,0x1b,0xab,0x47,0x94,0x38,0x8e,0x5d +.byte 0x55,0xb4,0xf5,0xc3,0x59,0xc2,0x2c,0x6d,0x9d,0x28,0x7d,0x33,0xcd,0xc7,0xd6,0xdf,0x10,0xda,0x7c,0xd0,0x6c,0x91,0x88,0xd6,0x6b,0xe7,0x72,0x75,0x18,0xb1,0x87,0xe4,0xbb,0x10,0xe0,0xa3,0x0f,0xea,0x65,0x0a,0x70,0xc8,0xee,0x52,0x05,0x0a,0x27,0x39,0x66,0xda,0xd6,0xa6,0xfe,0x97,0x24,0x09,0x9d,0x20,0x76,0x4e,0x97,0x9d,0xa9,0x9f +.byte 0x76,0x20,0x27,0x57,0x5b,0xf4,0x76,0x1a,0x4b,0xcf,0x13,0x6c,0x9e,0x63,0x53,0x97,0xca,0x10,0xd6,0x90,0x7d,0xfc,0xe3,0x03,0x2c,0x6c,0x79,0x93,0x1a,0xae,0x0f,0x43,0xdb,0x75,0xde,0x56,0xa6,0x69,0x93,0xce,0x2d,0x94,0x56,0x77,0x90,0x19,0x71,0x7f,0x7a,0x99,0xbd,0x9c,0x79,0x62,0x00,0x49,0x3a,0x62,0x49,0x4b,0x92,0x65,0x8b,0xe2 +.byte 0xa8,0x3d,0xa5,0x89,0x23,0xac,0xea,0xf1,0xbf,0x38,0x84,0xd7,0xe2,0x65,0xb6,0xc7,0xbc,0x02,0x11,0xfd,0xe3,0x4c,0x57,0x38,0xd4,0x36,0x54,0xe8,0xbb,0x63,0x17,0xe9,0xda,0x82,0x50,0xf1,0x8c,0x34,0x4d,0x75,0x2a,0x64,0x49,0xaf,0x98,0xc3,0x1d,0xad,0x31,0xf3,0x90,0x23,0x39,0xf5,0xb5,0xf4,0x37,0x88,0x67,0x12,0x5d,0xfc,0xee,0xe5 +.byte 0x44,0x52,0x2c,0x78,0xb1,0x90,0xc1,0xc2,0x77,0x6e,0x31,0x3e,0xa0,0x36,0x87,0xb0,0xc6,0x6c,0x94,0xc2,0x43,0x4a,0x7b,0xa2,0x73,0xe7,0xa0,0xc3,0x4c,0xaf,0x4f,0xa6,0x92,0x1c,0x9a,0x6d,0xee,0xe8,0x4d,0xe1,0xe0,0xc7,0x67,0xcf,0xcf,0x7d,0x7f,0x0f,0x07,0x0d,0x6c,0x06,0x06,0xc2,0xc9,0x28,0xfc,0x8d,0xcd,0x23,0x01,0x97,0x5b,0x4d +.byte 0x1c,0xdb,0x34,0x51,0x6e,0xe2,0x56,0x24,0xd7,0xbd,0x12,0xc4,0x2f,0xb4,0x3b,0x02,0xaa,0x47,0xda,0x61,0xf6,0xca,0x44,0xa8,0x02,0xbf,0xbc,0x58,0xfb,0xa2,0xff,0xf3,0x54,0x59,0x5f,0xd7,0xa0,0x7c,0x83,0xa6,0xef,0xeb,0x71,0x51,0x74,0xa1,0x27,0x10,0x97,0x13,0x1f,0x42,0x91,0xdd,0xa8,0xf8,0xc7,0x60,0x90,0xca,0x2e,0xc8,0xaf,0x9f +.byte 0x65,0x1f,0x24,0x0a,0x30,0x5f,0xb9,0x4c,0xfb,0xcb,0xa3,0x96,0x5e,0xad,0xab,0xac,0x09,0x91,0xf5,0x96,0x1f,0xe0,0x96,0x14,0xc5,0xa0,0x26,0xa1,0xf1,0x91,0x80,0x38,0x7f,0x38,0xdc,0x98,0x96,0x20,0x46,0x50,0x20,0xd2,0x20,0xce,0x79,0xd5,0x81,0x60,0x97,0xb2,0xb0,0xeb,0x58,0x75,0x3c,0x99,0xf0,0xe0,0xfd,0xfc,0x90,0xc5,0xd1,0x3d +.byte 0x68,0x07,0xfd,0xa1,0x3f,0xeb,0x47,0xd0,0x58,0xe3,0xfa,0xbe,0xbf,0x20,0xdf,0x66,0x08,0x91,0xa4,0x5c,0x52,0x3e,0xdf,0x5c,0xb8,0xee,0xca,0xa6,0x89,0x06,0x97,0xb4,0x8d,0x60,0x35,0xb1,0xff,0x1e,0x39,0xf2,0x67,0xbc,0x71,0xee,0xeb,0x48,0x94,0x19,0x1a,0xee,0xc5,0xe2,0x7e,0x0d,0xf1,0xca,0xe8,0x2c,0xb0,0xaa,0x02,0x58,0x23,0x23 +.byte 0xce,0x37,0x5e,0xcb,0x58,0x40,0x2e,0x1a,0xa6,0x09,0x11,0x95,0xc4,0x6f,0x10,0xb0,0x15,0x22,0x48,0x67,0x74,0x6c,0x2f,0x4f,0x4a,0xb4,0x01,0xe5,0xa3,0x77,0xab,0xad,0xa4,0x04,0x22,0x71,0x58,0x4a,0x71,0xb1,0xe8,0xdf,0x43,0x18,0x0e,0x95,0x7c,0x8c,0x23,0x3a,0xf3,0x9c,0x20,0x60,0x20,0x69,0x51,0x28,0x7e,0x13,0x67,0x5c,0x7d,0x35 +.byte 0xfa,0x1b,0x04,0x8b,0xcf,0x42,0x6e,0x15,0x55,0xcd,0x04,0xdb,0x73,0xdb,0x47,0x5f,0x83,0x6e,0xd1,0x5a,0x15,0xa2,0xbb,0xf7,0xbb,0x84,0x58,0xce,0x75,0xe8,0xd2,0x92,0xd5,0xb7,0x76,0xf2,0x94,0x67,0x27,0x5f,0x32,0x91,0x3a,0xaf,0xd4,0x31,0xf8,0x92,0xce,0x63,0xb7,0x45,0x27,0xb4,0xb8,0x7a,0x1e,0x4e,0xde,0xcb,0xc8,0x5e,0xd3,0xbb +.byte 0x52,0x91,0xd5,0x72,0xad,0x98,0xec,0x07,0xa1,0x56,0xb4,0x8e,0x04,0xfa,0x48,0x3f,0x17,0x07,0xf7,0xef,0x92,0x61,0x69,0xaf,0xdd,0xfc,0x76,0x03,0xe2,0xe9,0xe2,0xbe,0x5c,0xf2,0x8a,0xc5,0x99,0x51,0x7f,0xa4,0xf1,0xac,0x16,0xec,0x16,0xf5,0xb8,0x95,0x88,0x87,0xdb,0x27,0x2e,0x63,0x12,0x31,0x7d,0x6b,0x2b,0xa0,0x9b,0xb5,0xf9,0x82 +.byte 0x42,0x04,0x94,0xee,0x60,0x6e,0x4e,0x54,0x9b,0xfd,0xeb,0x01,0x3a,0xad,0x42,0xeb,0x08,0x3c,0x6a,0xa3,0xf2,0x46,0xfb,0x18,0x59,0x2c,0xa3,0x0b,0x22,0x1d,0x5d,0x47,0xa6,0x8c,0x06,0x9c,0xa1,0xcc,0x20,0x67,0xbd,0xf0,0x5b,0x94,0x9f,0xc6,0x10,0x8c,0xc8,0x15,0x52,0xe3,0x19,0xa1,0x89,0xfd,0x99,0xad,0x4f,0x10,0x51,0x0a,0xe4,0x4b +.byte 0x02,0x7b,0x0d,0x73,0x2d,0xae,0xa4,0x68,0x1d,0xb6,0xcf,0x58,0x67,0xc0,0xd0,0xca,0x11,0x34,0x31,0x9e,0xa3,0xbc,0x12,0x28,0x1e,0x8e,0x5a,0x63,0xf5,0xda,0xf2,0x36,0x94,0x63,0x2c,0x39,0x3d,0xf9,0x80,0x9f,0xbf,0x8d,0xef,0x1f,0x15,0xc8,0xdb,0x62,0x58,0x7d,0xdc,0x0a,0x7f,0x87,0xaf,0x6d,0x2e,0xac,0x92,0x4f,0x51,0xdf,0x5e,0x75 +.byte 0x5e,0x0f,0x7c,0x51,0x49,0x88,0x0f,0x7b,0x49,0xa5,0x7c,0x41,0x4e,0x2a,0x0f,0xd0,0x0f,0x78,0xeb,0x42,0xfc,0x07,0x8a,0x8b,0x4e,0x3e,0xf2,0x42,0xc5,0x21,0x01,0x66,0xe2,0x50,0xf6,0x3d,0x28,0x1e,0xbf,0xdc,0x71,0x7f,0xc5,0x6e,0xc1,0xab,0x1a,0x33,0x49,0xdd,0xa2,0xb9,0x52,0xbe,0x93,0x97,0x97,0x7a,0xf0,0x22,0xa8,0xc5,0x01,0xc6 +.byte 0x76,0x6f,0xb6,0x2c,0x09,0x80,0x62,0x5b,0x84,0x05,0x7f,0x79,0x28,0x04,0x67,0xa2,0x0f,0xfc,0xbb,0x17,0xe2,0x85,0xe3,0xa0,0xf3,0x44,0x47,0x96,0x68,0x80,0xb2,0xbf,0xba,0x63,0x53,0x38,0x6c,0x3b,0xcd,0x3c,0xa4,0x10,0x48,0x80,0xd8,0x49,0x5a,0xf0,0x5c,0x38,0x02,0x02,0x5b,0xf2,0x77,0xa4,0xfd,0x16,0xfd,0x13,0xc8,0x8b,0x9b,0xcd +.byte 0xe1,0x8d,0x70,0xb6,0x3d,0x24,0x65,0xda,0x1a,0x42,0x6f,0x90,0x64,0x9a,0x9b,0xda,0x54,0x44,0xc0,0xe0,0xd7,0xfb,0x73,0x10,0x3c,0xcf,0xa6,0x04,0x99,0xd9,0x45,0xe5,0x74,0xfe,0xdf,0x81,0xac,0xc8,0x30,0xe5,0x66,0x45,0x02,0xca,0xcd,0xd7,0xe6,0x7b,0x0d,0xda,0xe1,0xa0,0xa1,0xa1,0x87,0x34,0x63,0x0b,0xa7,0x82,0x39,0x83,0xba,0x18 +.byte 0x0b,0x16,0x35,0x11,0x53,0x8d,0xbe,0x7d,0xa8,0x7e,0x3f,0xf4,0x71,0xc9,0x37,0x6f,0x1a,0xd9,0x3f,0x8e,0xc4,0xc1,0xd3,0x80,0xdf,0xee,0x0e,0x6b,0x23,0xf7,0xbc,0x42,0x93,0x7a,0x36,0x6f,0x03,0x24,0xb4,0x9c,0x62,0xa0,0xed,0xed,0x0b,0x66,0xa8,0x25,0xe6,0x1a,0xd4,0x13,0xd1,0x16,0x14,0x2b,0x90,0x7d,0x2e,0xa4,0xda,0xb2,0xf9,0x33 +.byte 0x54,0xf9,0x0a,0x04,0x27,0x03,0x14,0xd2,0xd7,0xe2,0xc1,0xaa,0xb6,0xe8,0xe5,0x4c,0xf2,0xdb,0x4c,0xc8,0xb3,0xa4,0xeb,0xbf,0x12,0x5c,0x9d,0x65,0xaa,0x9a,0x66,0x77,0x42,0xb4,0xd5,0x5b,0x1f,0x3b,0xd7,0x91,0x89,0x57,0x2f,0xd0,0x86,0x99,0xb2,0xc8,0xc1,0x31,0xde,0x33,0x43,0x36,0x81,0xdb,0x97,0x7b,0x17,0x3b,0xa5,0x99,0xdb,0x63 +.byte 0x2b,0x48,0x4c,0xa6,0x5c,0x6c,0xd8,0xc9,0x6e,0x72,0x39,0xbe,0x6e,0x55,0x7e,0x9d,0xb7,0x20,0x8d,0x8f,0x81,0x20,0x78,0xae,0xc6,0x1d,0xe0,0x2d,0xb1,0xe7,0x64,0xbb,0xd4,0xc8,0x08,0x61,0x14,0x29,0x08,0xbc,0x1a,0xeb,0xfa,0x64,0x33,0x91,0x7d,0x91,0x41,0x65,0x8e,0x4c,0x0c,0xb2,0x79,0xc3,0x01,0x68,0xfc,0xd6,0xbb,0x50,0xcc,0x07 +.byte 0xa5,0xf6,0x2c,0x5e,0x10,0xd6,0xa3,0x62,0x18,0xec,0xa2,0xf2,0x6b,0xad,0xcd,0x02,0x01,0x75,0xbb,0x36,0x27,0x56,0x0f,0x55,0x03,0xe0,0x57,0xe1,0x72,0xeb,0x66,0x00,0x21,0xff,0x9a,0xbc,0xc1,0x1e,0x2c,0x93,0xe6,0x4d,0x93,0x28,0x10,0x7d,0x67,0x6c,0xf1,0xa4,0xe6,0x3a,0xa6,0x30,0xc8,0x50,0x1d,0x8b,0x6e,0x7b,0x76,0x98,0x14,0x4e +.byte 0xed,0x84,0x67,0x2a,0x5f,0xac,0x0b,0x7b,0x47,0x40,0xb3,0x2d,0x7a,0xc1,0x23,0xdc,0x62,0xf8,0x8e,0x90,0x77,0xd4,0xf9,0x00,0x4b,0x67,0x04,0x72,0xf8,0xc9,0x2c,0x2d,0x0e,0x3c,0x3c,0xf3,0xfc,0xa8,0xe2,0x49,0xa4,0x00,0x82,0x98,0x72,0xa9,0xec,0xea,0xbd,0x3a,0x4e,0xd7,0x32,0xf1,0x11,0xf0,0x0d,0x9e,0xa2,0xe8,0xfe,0xcc,0x67,0xec +.byte 0xfc,0xd6,0xfe,0x83,0x5e,0x7c,0x2b,0xb3,0x42,0xf4,0x2d,0x9a,0xbe,0x20,0xd1,0x81,0x62,0xe9,0x59,0x19,0x28,0xdf,0x97,0x10,0x54,0xf7,0xde,0x60,0x51,0x6a,0xce,0x32,0x03,0x75,0x5c,0x25,0x25,0x82,0x9c,0x07,0xf7,0x2d,0xa8,0x1b,0x9f,0xd3,0x32,0x46,0x25,0x1f,0xb1,0xc5,0xbb,0x28,0x14,0x3e,0xed,0xa8,0x83,0x20,0xf4,0x9c,0x75,0xf4 +.byte 0xe6,0xc4,0x2d,0x05,0x88,0x31,0xfd,0x48,0xca,0x6c,0x7f,0xab,0xb4,0x77,0x93,0x1d,0x87,0xc3,0x4e,0xb8,0xad,0xb4,0x3d,0x37,0x7a,0xd2,0x77,0xff,0xc2,0xcb,0x9c,0xc7,0xbf,0x02,0x02,0x70,0xc9,0x9f,0x77,0x8a,0x7d,0xa7,0x9a,0x10,0xd1,0x0e,0xb7,0xec,0x61,0xee,0x77,0x24,0xe9,0x3d,0xcd,0x12,0xca,0xee,0x50,0xb0,0x27,0x5d,0xe5,0xac +.byte 0xa3,0x92,0xc7,0xd0,0x23,0x54,0xb1,0xe5,0x50,0xc3,0x15,0xd7,0x66,0x32,0x38,0x34,0xb1,0x59,0x1b,0xc3,0x59,0xe8,0xad,0x59,0x90,0x58,0x6e,0x02,0x40,0xb1,0x51,0x65,0x78,0x25,0x26,0x01,0xdd,0xcf,0x04,0xa2,0xfe,0xc3,0xbb,0x80,0x1c,0xb0,0x4e,0x9c,0x49,0x48,0xa3,0xe2,0xcc,0x81,0xc5,0xa8,0xd4,0xd5,0xe4,0xab,0x39,0xe7,0xe8,0x97 +.byte 0xc7,0x51,0xb4,0x5e,0x3f,0xe6,0xa7,0xcc,0x45,0x18,0xa2,0x6a,0xb3,0xa8,0x0b,0x7d,0xce,0x1a,0x97,0x4a,0x67,0xe1,0x3c,0x7c,0x4e,0xad,0x90,0xcf,0x2a,0x8f,0xb8,0xb6,0x96,0xaa,0x9a,0xc3,0x73,0xe6,0x71,0xdb,0x11,0x9b,0xd9,0xd9,0xfe,0xba,0x4a,0xf0,0x77,0xa4,0x15,0xb5,0xca,0xe1,0xb4,0x16,0x06,0x46,0xdf,0xc5,0x49,0x07,0x66,0xb3 +.byte 0xf5,0x30,0xe3,0xfb,0x44,0xac,0x80,0x3a,0x21,0xd9,0x5b,0x22,0x54,0x3a,0xae,0xbe,0xbd,0xf0,0x99,0x8d,0xb5,0x2a,0xf7,0xc9,0xf2,0xd3,0xfb,0x07,0x7c,0xd7,0x75,0x30,0x2a,0xcd,0x80,0xa8,0x2a,0x6a,0xb9,0x47,0xe2,0xa1,0xb0,0x76,0x6a,0x0f,0x9f,0x4a,0x56,0x3e,0xde,0xb3,0x89,0x12,0x25,0x63,0x1a,0x9d,0xea,0x64,0x08,0xc5,0x78,0xa7 +.byte 0x53,0xce,0xf8,0xb2,0xe5,0x97,0x3a,0xeb,0xd1,0x92,0xe1,0x4d,0xe0,0xf5,0x93,0x39,0x73,0xad,0x67,0xc9,0x0e,0x6b,0x16,0x4a,0x00,0xaa,0xb4,0xe6,0xa6,0xa5,0x67,0x95,0x90,0x04,0x5e,0x4d,0xc3,0x7f,0x6b,0xa1,0x50,0xb0,0x3b,0x72,0x0d,0xb3,0xec,0x9a,0x18,0x92,0x65,0x0c,0x2d,0x0f,0x94,0xd6,0x0f,0x95,0xba,0x4b,0xe6,0xc3,0x07,0x22 +.byte 0x0d,0x40,0xd4,0x0d,0x97,0x44,0xba,0x54,0x8c,0xf8,0x97,0x52,0x1f,0xa7,0xb2,0xe8,0x1b,0x0a,0xd5,0xde,0xff,0x1b,0x33,0x60,0x6a,0x28,0x68,0x36,0xb9,0x5a,0x3e,0x43,0x84,0x9a,0xb1,0x3d,0x3d,0xdb,0x1b,0xa2,0xc5,0x0e,0x2d,0xb5,0x5a,0xa5,0x36,0xe7,0xbf,0x7e,0xc3,0x76,0xad,0x1e,0xb5,0x49,0xc2,0xd5,0xa2,0x69,0x97,0x45,0x43,0x3e +.byte 0xeb,0xcd,0xdf,0x4f,0xab,0xb3,0xe8,0x49,0xaa,0x9c,0x9c,0x58,0x1e,0xc8,0x1c,0x79,0xe9,0x16,0x1d,0xfe,0x54,0xac,0x55,0x18,0x10,0x73,0x97,0xdc,0xbe,0x45,0x63,0xfb,0x48,0x41,0x88,0xb4,0x0b,0x3a,0x1d,0x65,0x40,0x1b,0x10,0x66,0xeb,0xbe,0xed,0xc7,0x6c,0xd5,0x0c,0x19,0x85,0x23,0xb1,0x38,0xb3,0x4b,0xcd,0xc7,0xc5,0x06,0x18,0x40 +.byte 0xbd,0xef,0x9f,0x2e,0x3a,0x71,0x33,0x05,0x30,0x71,0xca,0xe9,0x7a,0x2c,0xe7,0x83,0x4e,0x3d,0x4b,0xc8,0xc7,0xcb,0x74,0x9c,0xa2,0xc7,0xbb,0x8c,0x44,0x0d,0xd8,0xb3,0x01,0x7c,0xdf,0x79,0xee,0x47,0xcb,0x91,0x6f,0xc3,0xfd,0x0f,0xfb,0xf8,0x6b,0x9b,0x00,0xaf,0xf6,0x69,0x82,0xa5,0x58,0x54,0x22,0x7f,0x4b,0xee,0xa7,0x03,0xdb,0xb6 +.byte 0x5f,0x12,0xe1,0x04,0x43,0x17,0xec,0xd4,0xdd,0x39,0x28,0xfa,0xa3,0x09,0x5e,0x14,0xaf,0x6b,0xfe,0x0c,0x65,0x01,0x13,0x75,0x3d,0xe7,0x6d,0xd9,0xda,0x1d,0x13,0xc1,0x56,0x40,0x50,0x95,0x65,0x8f,0xad,0x51,0x3f,0x13,0x05,0x2f,0x83,0xcd,0xca,0x8b,0x75,0xa2,0x39,0x61,0xde,0xd7,0x36,0xf9,0x1d,0x43,0x5b,0xc4,0x9a,0xc9,0xfc,0xa8 +.byte 0xf4,0x76,0x90,0x91,0xe8,0x52,0x5b,0x84,0xe7,0xc9,0x8e,0x7d,0x84,0xba,0xb1,0x32,0x12,0xce,0x06,0x9e,0x98,0x83,0x1f,0x7f,0x31,0xd7,0xf0,0x8a,0xa2,0xca,0xae,0xb3,0x50,0x51,0x93,0xfb,0x2f,0x43,0x0a,0xee,0x06,0x85,0xec,0xb8,0xf1,0x73,0xb1,0x65,0x37,0x05,0x8e,0x68,0xf7,0x7a,0xff,0xe7,0x17,0x08,0x5e,0x19,0x75,0x3d,0xf9,0x5e +.byte 0xd5,0x25,0xf6,0x3b,0x99,0xb9,0x96,0x42,0x7a,0x37,0x8f,0x0d,0xde,0x22,0x83,0x89,0xf0,0x77,0x1f,0x22,0x42,0xc7,0xb5,0x70,0xcb,0xfd,0xf0,0xa9,0x87,0x8e,0x1f,0x01,0x9a,0x26,0xa6,0x8c,0x41,0xb9,0x12,0xd6,0xf2,0x5b,0xe5,0xfd,0xdc,0x74,0xbd,0xa1,0xc8,0xf7,0x3b,0x8c,0xe1,0x1d,0x42,0xb4,0x07,0x24,0x18,0x84,0x94,0x8a,0xce,0x00 +.byte 0xbd,0xd7,0xb0,0xfd,0x8f,0x0a,0xd3,0x75,0xa4,0xe8,0xfc,0x09,0xa9,0xa3,0x57,0x68,0x79,0x0e,0xef,0x37,0x46,0xd5,0x3b,0x8c,0x0d,0x67,0xbc,0x2c,0x5d,0x3e,0xf7,0xcc,0x9c,0x9e,0x81,0x62,0xc8,0xec,0x38,0x20,0x07,0x66,0xe4,0x83,0x15,0x13,0x3b,0x47,0x23,0xd9,0x46,0xaf,0x65,0xe1,0x40,0x2d,0x14,0x84,0x72,0xc1,0xbf,0xbe,0x81,0xc4 +.byte 0xcb,0x04,0x16,0x5e,0x2f,0x60,0x3a,0x8e,0x1a,0xd3,0xa2,0x00,0x25,0x6c,0xb7,0xdb,0x0d,0x20,0x99,0xb8,0x45,0x54,0xbf,0xc4,0x52,0x52,0x92,0x7d,0xcd,0xa1,0x9a,0x12,0x5e,0x27,0xe9,0xcf,0x79,0x9d,0xa8,0x6c,0xcd,0x37,0x20,0x08,0x09,0xc6,0x94,0x53,0x00,0x04,0xf5,0x3b,0xea,0x00,0x1b,0xc3,0x02,0xff,0xbc,0x18,0x1f,0xb7,0xf7,0x26 +.byte 0xe8,0x8b,0xc4,0x5f,0xf7,0xbe,0x9b,0xb3,0xba,0xae,0xbd,0x9c,0x3f,0x95,0xf7,0xcd,0x2b,0x40,0xf4,0x1c,0x6f,0xd7,0x52,0xe1,0xa7,0xdc,0x79,0xa4,0x88,0xff,0xfc,0xcf,0xfb,0xbb,0xe6,0xef,0xb6,0x31,0xac,0x24,0xa7,0x40,0xea,0x76,0xa2,0x34,0x6c,0xb1,0xfb,0x96,0x6b,0xfa,0xdd,0x60,0x70,0x73,0xb8,0xfd,0x66,0x3d,0xf9,0x63,0xc9,0x04 +.byte 0x70,0x20,0x35,0xca,0x04,0xb8,0xb3,0x4f,0x24,0x64,0x54,0xc2,0xd9,0x4d,0x8b,0xad,0x07,0xad,0xc5,0xb9,0x84,0xac,0x7c,0x65,0x4b,0x98,0x1d,0x09,0x23,0x95,0x5c,0x85,0x26,0xe5,0x8e,0xec,0xeb,0xc3,0xd5,0x15,0x9c,0x37,0x4e,0xf3,0x3c,0x97,0x92,0x75,0x99,0x48,0x48,0x52,0x4b,0x7b,0x93,0x54,0xd7,0x4f,0x7f,0xe5,0x51,0xdc,0x74,0x85 +.byte 0x9a,0xae,0xbd,0xf8,0xe6,0xe8,0x3f,0x1b,0xee,0x8b,0xf4,0xd8,0x5c,0x6c,0x46,0x6e,0x1d,0xaf,0x67,0x27,0x9a,0x39,0x4e,0x6b,0x99,0xcc,0xc0,0x66,0x54,0xbf,0x60,0xf6,0x24,0x64,0xfd,0x16,0xbf,0x56,0xb2,0x07,0x87,0x46,0xa6,0xef,0x40,0x67,0x78,0x2f,0x78,0x49,0x81,0x25,0xbd,0xa1,0xcf,0x78,0x68,0x25,0x8e,0x93,0x0a,0x4b,0xe1,0x92 +.byte 0x33,0x9c,0x13,0x70,0xd4,0xdf,0x74,0x34,0x8f,0x21,0xb9,0x51,0xd7,0x74,0xa9,0x02,0x6e,0xdd,0xb2,0xb4,0x6e,0x2a,0x95,0xdb,0xe4,0xaf,0x17,0xf5,0x9b,0xa5,0xc1,0x72,0x36,0x35,0x02,0x37,0x1c,0x38,0xaa,0x81,0x76,0xc6,0x1c,0xc3,0x2c,0xc5,0x45,0xaf,0x03,0xea,0xe6,0x14,0x51,0x44,0x84,0x9e,0x32,0xfe,0x4b,0x47,0xe9,0xb4,0x12,0x96 +.byte 0x13,0x6f,0x4c,0xed,0xe4,0xb0,0x79,0x7b,0xe5,0xc0,0x37,0x87,0x78,0x28,0x42,0xf7,0xd4,0xde,0xfc,0xd2,0x23,0x11,0x09,0xa5,0x11,0xc3,0xc4,0xf5,0xe0,0x2b,0x47,0x01,0x63,0xf2,0x85,0x1f,0x45,0x28,0xae,0xd3,0x29,0x04,0x1a,0x4b,0x83,0xab,0xf2,0x35,0x3a,0x40,0x2c,0x8d,0xb3,0xc7,0x47,0x0d,0xd1,0x3c,0xd0,0x1c,0x6b,0x5d,0x9b,0x4e +.byte 0xdf,0x36,0x8d,0xc6,0x54,0x9e,0x61,0x51,0xf1,0xd2,0xa4,0x39,0xad,0x4a,0x14,0xa1,0x0b,0xd3,0xae,0x91,0x1a,0x29,0xeb,0xc5,0x75,0x88,0x13,0x1e,0x96,0xdd,0x6f,0x86,0x92,0xaa,0x37,0x16,0x95,0x86,0xbc,0xb1,0x35,0xbf,0x5f,0x75,0x40,0x46,0xe1,0x6f,0x2f,0x33,0x2d,0x13,0x35,0xef,0xca,0x09,0x04,0xe4,0x42,0xef,0x69,0x66,0xda,0xa6 +.byte 0x01,0xda,0x09,0xfd,0xb1,0x40,0x8d,0xaa,0xdd,0x08,0x0d,0xf5,0xf1,0xd6,0xc6,0x11,0x3b,0xbd,0xd3,0x04,0x70,0x76,0xaf,0xec,0x9b,0xcc,0x6a,0x1d,0xeb,0x95,0x4a,0x01,0x0a,0x03,0x62,0x00,0x32,0xb3,0xe0,0xd1,0x36,0xb6,0xeb,0xde,0x4b,0x5f,0x35,0x79,0x07,0x4a,0x0d,0xa1,0x8c,0xde,0x6b,0xd2,0xca,0x71,0x64,0x73,0xf7,0x9c,0x1d,0x95 +.byte 0x5c,0xdc,0xb9,0x4f,0x00,0x2e,0x86,0x3d,0x81,0x7b,0x05,0xa5,0x9e,0x03,0xa3,0x62,0xcf,0x22,0x78,0x0b,0xfe,0x09,0x3e,0x62,0x93,0x19,0x6e,0x47,0x7d,0x92,0x4a,0x0b,0xae,0xcb,0x37,0x4d,0x5a,0x3a,0x7a,0x68,0xde,0xb2,0x7e,0xd7,0xda,0x5c,0x45,0xd2,0x0f,0x1d,0x03,0xbc,0xed,0xd8,0xe5,0x2e,0x26,0x10,0x82,0x46,0x5a,0xe0,0x13,0x32 +.byte 0xf8,0xb9,0x18,0x8c,0xbd,0xb4,0xb3,0x8c,0x2f,0xb0,0x5d,0x0b,0xf3,0x8f,0x5a,0xda,0x8b,0xda,0x39,0xfe,0xe6,0x66,0x95,0x3f,0xfe,0x49,0x89,0xbf,0x43,0x36,0x77,0xc7,0x6d,0xea,0x92,0x5c,0x71,0xa6,0x29,0x50,0xb0,0x2f,0xed,0x89,0x9f,0x2c,0xd6,0x6b,0xfa,0xbe,0x62,0x9f,0x62,0xc7,0xe3,0x2e,0xd4,0xf2,0x2c,0x9c,0x98,0x37,0x38,0x5e +.byte 0x81,0x6c,0x9e,0xcc,0xff,0x0f,0xfa,0xfa,0xe8,0xdd,0x2e,0x2d,0xb5,0x92,0x44,0x5e,0x2f,0xe1,0xd0,0x6c,0xc3,0xb9,0x11,0x95,0x70,0x4b,0x01,0xa0,0xc1,0x5e,0xe8,0x1d,0x40,0x16,0x9b,0x6e,0x29,0x1b,0x13,0xb9,0xda,0x39,0xbd,0x40,0x42,0xe2,0x06,0x35,0x57,0x2f,0xa8,0xf5,0xa7,0x00,0x60,0x07,0x26,0x21,0x6b,0xe6,0x23,0xa2,0x2a,0x70 +.byte 0xeb,0x85,0xcb,0xa9,0x73,0x31,0x62,0xf7,0xb0,0x90,0xd7,0x26,0xc1,0xd3,0xd7,0xcc,0x15,0x72,0x86,0xa6,0x0f,0x4a,0x24,0x14,0x5d,0xcd,0xbe,0xad,0x7d,0xf0,0x05,0x39,0x0c,0x10,0xbe,0x11,0x9a,0x36,0x9f,0x60,0x41,0xc6,0x7c,0xab,0x54,0x8a,0xac,0xc4,0xea,0xbd,0x43,0xeb,0x19,0x5a,0x8d,0x05,0xd1,0x83,0x58,0x92,0xb8,0xc6,0x75,0x56 +.byte 0x2c,0x58,0xb8,0x2d,0xe1,0x42,0xb4,0x0b,0xc9,0x97,0x79,0xb8,0x62,0xd0,0x15,0xd1,0x5d,0x0d,0x57,0x83,0xe4,0xba,0x73,0xa2,0x27,0xb8,0x56,0x64,0x28,0xaf,0xd2,0x58,0xe3,0xe6,0x12,0x01,0x6e,0x6a,0xfb,0x81,0x57,0xcd,0x32,0xc2,0x42,0x2a,0xe2,0x51,0x4a,0x4c,0xf8,0x69,0x0e,0xc0,0xe6,0x9f,0xf4,0x46,0x4b,0x60,0xcc,0x41,0x03,0xa4 +.byte 0x14,0xf0,0x15,0xb5,0xe5,0x39,0xfd,0x69,0xee,0xce,0x23,0x3a,0x50,0x66,0xdb,0xf4,0xe4,0x31,0x23,0xe9,0x06,0x93,0xdd,0x38,0xbc,0x2d,0xb9,0xf2,0x64,0x39,0x2f,0x1b,0xa9,0x71,0x0c,0x68,0xf7,0xb0,0x5b,0x74,0xe5,0x08,0xc6,0x5d,0xbe,0xb8,0xf7,0x40,0x0e,0xb4,0xe6,0x76,0x0c,0x14,0x8f,0x9d,0x25,0x95,0x6c,0x05,0x78,0x68,0x8a,0xa6 +.byte 0x80,0x24,0x8a,0x0b,0x6a,0xd7,0xfc,0xec,0x36,0xba,0x57,0xdd,0x49,0x82,0x3c,0x5f,0x9d,0xf4,0x57,0xac,0x16,0x99,0xed,0x73,0xa6,0xb0,0x2c,0x23,0xdb,0xf8,0x45,0x22,0xf4,0x82,0x16,0xc4,0x68,0x2f,0xe7,0x8c,0x85,0x6e,0x3c,0x43,0xdd,0x3d,0xea,0x90,0xeb,0xf4,0xef,0xf1,0x36,0x48,0x15,0x29,0x07,0x96,0x51,0xb5,0x78,0xa1,0xa3,0x59 +.byte 0x18,0x4d,0x11,0x5d,0x5e,0x67,0x69,0x28,0x29,0xcb,0xeb,0xbc,0x8f,0x17,0x12,0x57,0xaf,0xda,0xb5,0x86,0xef,0x59,0xdf,0xb1,0x6b,0x6a,0x33,0x66,0x67,0xd1,0x42,0xee,0xec,0x65,0xf2,0xeb,0x97,0x17,0x4e,0x01,0x3f,0x4d,0xb4,0x06,0x8e,0xf9,0xa8,0x79,0xb6,0xf1,0x67,0x8b,0xff,0x0b,0x5f,0x93,0x70,0x76,0x54,0xae,0x7b,0x0d,0x4a,0xbc +.byte 0xf7,0xdc,0x11,0x64,0xb3,0x6a,0xd1,0x69,0x45,0x1b,0x57,0xfc,0xb5,0xfe,0x86,0xb2,0xd6,0xde,0x82,0x23,0x86,0x6b,0x21,0x78,0x8b,0x2e,0x96,0xf8,0x04,0x8b,0xba,0x15,0xae,0x33,0x91,0x27,0x88,0xe3,0xc1,0xe7,0xf8,0xc3,0xa6,0xb6,0x73,0xec,0x84,0x95,0x22,0x45,0x58,0xb1,0x50,0x99,0xde,0x8a,0x37,0x41,0x9f,0xb8,0x27,0xd6,0xd8,0xaa +.byte 0x0f,0x0e,0xac,0xe4,0xd0,0x38,0xcf,0x2f,0x03,0x6f,0x3d,0x8a,0xd7,0x51,0xd6,0xf3,0x17,0x76,0xb5,0x0f,0xc5,0xf8,0xa7,0x0a,0x91,0xaa,0x8d,0xbc,0x15,0xd6,0x46,0xb9,0xdc,0x18,0x47,0x9c,0xd9,0x13,0xa5,0xb1,0xb5,0x45,0x2f,0x03,0x32,0x5c,0x8b,0xac,0x42,0x5b,0xd9,0x1a,0x41,0x1e,0x27,0xf9,0x92,0x72,0xc1,0xc7,0xc1,0x50,0x25,0x22 +.byte 0x7a,0x00,0x41,0x1f,0x2d,0x28,0xaf,0x41,0x96,0x8e,0x97,0x3b,0x36,0x80,0x16,0xe6,0x51,0x8f,0x07,0x13,0xd9,0x81,0x79,0x94,0x92,0xaa,0xb9,0xb6,0x39,0xf2,0x4d,0x24,0x6b,0x77,0x25,0x7e,0x47,0x6c,0xc7,0x62,0x3d,0x96,0x21,0xac,0x1a,0xf0,0x5f,0x5d,0x5a,0x7e,0x17,0xdd,0x47,0xd5,0x19,0x0a,0x85,0x3e,0xd5,0x6b,0x52,0x12,0xe2,0xbc +.byte 0x43,0x79,0x28,0x1d,0x72,0xcc,0xa6,0x6c,0xea,0x9b,0xe9,0x04,0x34,0x2c,0x41,0x3a,0x64,0xe8,0xcb,0x12,0xfa,0xd5,0x45,0xad,0xe8,0x3e,0xa2,0x5c,0xb8,0x83,0x52,0xdb,0x0c,0x98,0x24,0x76,0xd2,0x00,0x62,0xff,0xac,0xd7,0x11,0xee,0xcf,0xfb,0xdd,0x65,0xd2,0x75,0xb0,0x25,0x4e,0x76,0x3f,0xa2,0x1a,0xae,0xee,0xc1,0x59,0x1b,0x0c,0x42 +.byte 0x70,0x42,0x06,0x00,0x64,0x31,0xe0,0xce,0x3a,0x91,0x5e,0x9d,0x56,0x83,0xab,0xa7,0x73,0xc2,0x15,0x29,0xba,0xf9,0x1d,0xc8,0x4b,0xc6,0x3a,0x9e,0xab,0xd7,0xfd,0x17,0x8d,0x80,0xf0,0xa1,0x8a,0x5a,0x7a,0x80,0xd8,0x1f,0xa9,0x5b,0xec,0x68,0x99,0x3a,0x66,0xcc,0x5a,0xdf,0x5f,0xe9,0xd5,0x6a,0xf2,0x2c,0x7e,0xf8,0xa7,0xdf,0x0c,0x59 +.byte 0xbd,0x85,0xf0,0xc9,0x91,0x44,0x9c,0x86,0x24,0x60,0xfb,0xe9,0xff,0x3c,0xa7,0xa7,0x6d,0x4b,0x17,0xb3,0x24,0x99,0x14,0xbc,0x64,0xd0,0x41,0xaa,0xcd,0x26,0xd3,0xa3,0x51,0xeb,0x25,0x1d,0xb2,0x7d,0xf1,0xf3,0xf3,0xf0,0x3a,0xe0,0xb5,0xa9,0x24,0xc3,0x78,0x4a,0xef,0x9b,0x34,0x93,0xf8,0x0c,0x71,0x10,0x5b,0xf0,0xe7,0x08,0x4d,0x5f +.byte 0x74,0xbf,0x18,0x8b,0x48,0x8d,0xd7,0x23,0x81,0xed,0xa2,0x29,0xa9,0xdb,0x91,0xf6,0x61,0x7c,0xca,0x1e,0xe0,0xa7,0x21,0x9d,0xfc,0x04,0x3a,0x87,0xbb,0xf9,0xa4,0x3b,0xbb,0xc4,0x89,0xa1,0x7f,0xdc,0x83,0xfa,0x5e,0x0f,0xcf,0xdf,0xf6,0x41,0xd3,0xa3,0x76,0x76,0x44,0x3e,0x01,0xee,0xce,0xf6,0xc3,0xb9,0x49,0x43,0x6e,0xee,0x09,0x4c +.byte 0x87,0xe6,0xa3,0xf5,0xa0,0x8d,0x99,0xb3,0x3b,0xd6,0xeb,0x27,0xf9,0x34,0x68,0xc8,0x04,0x80,0xb2,0x4d,0xb6,0xde,0x98,0x81,0xe0,0xec,0xc9,0x06,0xde,0x86,0xee,0xf0,0x87,0xb8,0x67,0x0e,0xce,0xf8,0xc5,0xb1,0xd2,0xe1,0xe3,0x53,0x1d,0xbe,0x6c,0xdd,0x5e,0x83,0x02,0xf5,0xc8,0xda,0xcf,0x3c,0xcb,0x88,0x2c,0xca,0x65,0x65,0x9e,0x71 +.byte 0x4e,0xf2,0x98,0x96,0xb2,0x54,0xb4,0x96,0xdc,0x84,0xb5,0x39,0x74,0x9b,0x61,0xcf,0x52,0xef,0xb3,0x0c,0x62,0xc9,0x92,0xe1,0xe5,0x6f,0x2f,0x0c,0x61,0x0d,0x6f,0xfd,0xd8,0x84,0x25,0xba,0x20,0x59,0x00,0xf5,0xa9,0xf1,0x77,0x6e,0x9a,0x3d,0x93,0x69,0xde,0xaf,0x9a,0xe6,0xe3,0xfd,0xb9,0xd3,0x04,0x82,0x18,0xa1,0x5b,0x9b,0xe0,0x29 +.byte 0x4c,0x64,0xf5,0x95,0x57,0x25,0xd3,0x04,0x8b,0x4a,0xe9,0x57,0x6f,0xd1,0x8c,0x40,0x73,0x49,0x32,0x93,0x3f,0x26,0xb4,0x6b,0xd3,0xd4,0x90,0xb7,0xe1,0xaf,0xa0,0x9a,0xc0,0x86,0xb7,0x5e,0xec,0x29,0xaa,0x03,0x4e,0x56,0xb5,0xcd,0x46,0x7d,0xe0,0x26,0x3d,0x5f,0xd3,0x55,0x86,0x68,0x4a,0xc5,0x42,0x5d,0x60,0x3a,0x39,0x6f,0x45,0xb9 +.byte 0x6a,0xea,0xf4,0x05,0xc8,0x24,0xf8,0xcd,0xe5,0xeb,0xca,0x3a,0xe7,0xb4,0x59,0x83,0x5a,0xa5,0x1d,0xe4,0x6a,0xaa,0x35,0x00,0x42,0x32,0xa5,0x6c,0x3e,0xc1,0xc2,0xc4,0x9d,0x2e,0x43,0x57,0x79,0x52,0xf6,0x1e,0x02,0xb8,0x9b,0xcd,0xf0,0x3d,0x57,0xa3,0x6f,0xf7,0x12,0x54,0x6c,0x63,0x0d,0xb2,0xba,0xff,0xa1,0xf6,0xf5,0xdf,0xa5,0xed +.byte 0xda,0xdf,0x56,0x72,0x1e,0xc5,0x3f,0xad,0xd0,0xf9,0x38,0x94,0x51,0xe3,0xa4,0xb4,0xbf,0xd5,0x24,0x2a,0x90,0xfe,0xd4,0x34,0x6c,0xa8,0xc8,0x1c,0x9a,0xaf,0xac,0xff,0x5b,0x67,0x44,0x4c,0x4d,0xa7,0x59,0x2c,0x9f,0x67,0x07,0x25,0xe1,0x7f,0x4e,0x4a,0xaa,0x8f,0x5d,0xd1,0x26,0x0d,0x73,0x9b,0x69,0x5d,0xdf,0xb2,0xa5,0x89,0xbb,0x82 +.byte 0x0b,0x09,0xf3,0x11,0x76,0x5d,0x2d,0xad,0xc3,0xc1,0x15,0xbc,0xaf,0xa2,0xe6,0xd5,0xb0,0x6d,0x80,0xa6,0xda,0xfa,0x3b,0x9c,0xaf,0xff,0x98,0x40,0x83,0x3a,0xe1,0xb8,0x98,0x0e,0x97,0x00,0x89,0xfb,0x37,0xcb,0x81,0x36,0x34,0x33,0xbb,0x5c,0xd0,0x51,0x37,0xd6,0xb5,0x6c,0x3a,0x61,0x0a,0x27,0x23,0x96,0xa9,0x79,0x8d,0xf0,0xbe,0x31 +.byte 0xba,0xdc,0x89,0x4e,0x88,0x98,0xe4,0x10,0x15,0x8a,0xe1,0xae,0xe8,0x6d,0xa4,0x61,0x56,0x14,0x84,0x59,0x64,0xc2,0xaa,0xd8,0xfd,0x19,0xfc,0x17,0xf1,0xfc,0x6d,0x17,0xcb,0xea,0x7a,0x47,0x00,0x75,0x17,0xf3,0x62,0xfe,0x3a,0xbc,0x28,0x1a,0x0e,0x88,0x48,0x63,0x4a,0xcb,0x20,0x46,0xa4,0x75,0xf8,0xf1,0x7a,0xd6,0x92,0x7f,0x92,0xfa +.byte 0x91,0x95,0x2f,0xbc,0x5b,0x42,0xf1,0x55,0xaf,0x91,0xa2,0x3b,0x29,0x5c,0xc8,0x5e,0x97,0x91,0xa2,0x2e,0xd2,0xa8,0x1c,0xf6,0x16,0xc5,0x15,0xf2,0x42,0xb3,0x41,0x59,0x52,0x8d,0x94,0x52,0xc4,0xc6,0x2c,0xdd,0x6f,0x01,0xea,0x62,0x42,0x83,0x7e,0x2e,0xf8,0xb8,0xc1,0xf3,0x71,0xd1,0x11,0x14,0x7a,0x3d,0xcd,0xec,0xe0,0x79,0x8b,0xbd +.byte 0x28,0x12,0x60,0xf0,0x66,0xf1,0x1c,0x1c,0x19,0x07,0x8c,0x26,0xff,0xcc,0x72,0x9a,0xbd,0x12,0xe6,0x2b,0x2b,0xb1,0x32,0x04,0x98,0x92,0xd9,0x24,0x97,0x59,0x46,0xc6,0x11,0xe1,0x31,0x14,0x46,0x27,0x96,0xb1,0x06,0x81,0xd5,0xe8,0xff,0x45,0x3d,0x3c,0x04,0x9a,0xd8,0x0b,0x1f,0x41,0x03,0xba,0x1b,0x3e,0x4e,0xd5,0x7d,0x48,0x00,0x68 +.byte 0xb3,0xe8,0xe0,0xc8,0x3c,0xcf,0xdc,0xbe,0x29,0x90,0x64,0x51,0x18,0xdc,0xcd,0x87,0xcb,0xa8,0x3d,0xf8,0xb4,0x73,0x11,0xdc,0x7a,0xcb,0xa4,0x81,0x9e,0x3a,0x72,0xde,0x18,0x36,0x86,0x15,0x91,0xbc,0xeb,0x7f,0xe2,0xfb,0x6b,0xf1,0x5a,0x3d,0x05,0x50,0xeb,0xcf,0xd2,0xcc,0xf2,0x62,0xb1,0x32,0x46,0x14,0x95,0x4e,0xdf,0x73,0x64,0x61 +.byte 0x5f,0x3d,0xbf,0x52,0x3e,0xa7,0x55,0x01,0x9a,0xd8,0x01,0xef,0xf7,0x60,0x6f,0x83,0x43,0x6b,0x4c,0xa2,0xc8,0x04,0x34,0x70,0x70,0xa1,0x99,0xc9,0xa7,0x54,0x1e,0x87,0x99,0xb3,0xec,0xfe,0xe9,0x2d,0x39,0xef,0x6f,0x4d,0x8c,0xf2,0x4b,0xd2,0x12,0x5d,0xb6,0xa7,0x0b,0x04,0x3b,0x69,0xdd,0x9a,0x18,0x2d,0xd9,0x22,0x00,0x38,0x15,0x9a +.byte 0x6e,0x6c,0x0c,0x84,0x32,0x32,0xb2,0xf9,0x61,0xef,0x74,0x35,0xec,0xcc,0xd7,0xbc,0x9d,0xe9,0xcd,0xe3,0xa0,0xa5,0x15,0x0a,0xfe,0x1f,0x37,0x35,0x2b,0x7c,0x42,0x50,0x81,0x67,0x52,0xb7,0xa7,0x9e,0x8f,0xda,0x64,0xc0,0xc0,0xc3,0x93,0xc7,0x9d,0x41,0xb8,0x4b,0x69,0x80,0x13,0x88,0x8a,0x07,0xf9,0x47,0xad,0xc9,0x4f,0x3d,0xc7,0xba +.byte 0xd2,0xf2,0x7a,0xa0,0x38,0xbe,0xe1,0xfa,0x83,0xda,0x79,0x29,0x7f,0x4c,0xfa,0x0e,0x9b,0x59,0x1e,0x89,0x76,0x05,0x60,0x84,0x13,0x63,0x11,0x14,0x20,0xa9,0x2b,0xd0,0xc3,0x58,0xcc,0x73,0x3e,0x2c,0xa8,0xa7,0xa5,0xd0,0x2f,0x03,0xfc,0xa9,0x5d,0xdd,0xcd,0x40,0x91,0x90,0x1f,0xda,0x0a,0x73,0x58,0xd8,0x84,0x05,0x45,0x01,0x84,0x52 +.byte 0x8b,0x9b,0x17,0x98,0xa8,0xc4,0xc3,0xb5,0x94,0xd5,0x32,0x86,0xe9,0x10,0xe5,0xa5,0x99,0x8d,0x57,0x3e,0x32,0x25,0xfa,0xb4,0x5c,0x3a,0x5f,0xa6,0x2d,0x7d,0x4e,0xd3,0x7b,0xee,0x41,0x23,0x5e,0xc2,0xc9,0x91,0xf4,0x21,0xe0,0x4f,0x0d,0x87,0x30,0x53,0xf1,0x0e,0x63,0xe8,0x5b,0x3d,0xee,0x4a,0xc8,0x78,0x38,0xa2,0xa4,0xe8,0x72,0x41 +.byte 0xf1,0x37,0x30,0xe3,0x3d,0x93,0xc6,0x4b,0x10,0x0d,0xf6,0x20,0x15,0x0a,0x77,0x41,0xd5,0x7d,0xcb,0xf9,0xda,0x3b,0x17,0xa6,0xf1,0xe4,0x56,0xd4,0x65,0x7b,0x33,0xe4,0xef,0x34,0xfb,0x8c,0x9f,0x87,0x86,0xfc,0xce,0x90,0x60,0x77,0x57,0xc0,0xe4,0x37,0x2c,0xdf,0x41,0x95,0x85,0x89,0x4e,0x77,0x3f,0xa0,0xc7,0x55,0x4c,0x3f,0xa8,0x10 +.byte 0xd2,0x87,0x7e,0xd2,0x97,0xa1,0x6c,0xe7,0xec,0xaa,0xf6,0x93,0x13,0x2e,0x10,0xed,0x5b,0x7a,0xed,0x53,0xb4,0x55,0xaa,0xb4,0x67,0x78,0x07,0x5f,0xc2,0xd2,0xf1,0x7b,0x98,0xf0,0x82,0xf6,0x7c,0xb2,0xd4,0xa8,0xc2,0x53,0x39,0x21,0x7f,0xa0,0x76,0x37,0x1a,0x69,0xb3,0x49,0xd4,0xc3,0xd1,0xcb,0x31,0x76,0xec,0xaf,0x75,0x66,0x31,0x65 +.byte 0xeb,0x44,0x63,0xa0,0x13,0xf5,0x9e,0x67,0x40,0x41,0x76,0xce,0xd3,0xd6,0x91,0xb1,0x3a,0x07,0xff,0x38,0x1e,0xaf,0x55,0x57,0x55,0xd1,0x94,0x63,0xd3,0x81,0x16,0x59,0x68,0x01,0xe8,0x6d,0x7d,0x7a,0xa1,0x39,0xb9,0xa2,0xba,0x79,0x9d,0x69,0x00,0x13,0x59,0x2f,0x3d,0xef,0x10,0xe7,0x3c,0x02,0x7d,0xa3,0xa8,0xee,0x31,0x1a,0xad,0xa6 +.byte 0xdb,0x1b,0xe3,0x4a,0xdd,0x60,0xfb,0x4e,0xa6,0x49,0xbb,0xea,0x34,0x5d,0x21,0xac,0x83,0xa4,0xb5,0x23,0x8e,0x69,0xb3,0x25,0x14,0x8d,0xc2,0x89,0x8d,0xcf,0x38,0x46,0x18,0xb6,0x0c,0xce,0x45,0x22,0xeb,0xb5,0xb2,0xed,0xe5,0x0f,0x35,0x8f,0xdd,0xa1,0x15,0xd6,0x50,0x5b,0xe1,0x04,0xa7,0x32,0xc0,0xc9,0x03,0x56,0xc2,0x33,0xe8,0x16 +.byte 0x1c,0xd4,0x7a,0xfd,0x6b,0x4d,0x04,0xc0,0x9e,0xf8,0x32,0x9f,0x52,0x24,0xac,0xc5,0xb0,0xa1,0x63,0x77,0xc9,0x14,0xaf,0x46,0x60,0x67,0x52,0x81,0xbb,0x3f,0xf5,0x7f,0xad,0xef,0x7c,0x3a,0x71,0xc1,0x1e,0xea,0x4a,0xe0,0xd7,0xdd,0x31,0xf2,0x4b,0xdf,0x53,0x8a,0xc9,0x59,0x7a,0xb2,0x6f,0x7e,0xc0,0x00,0xa4,0x0d,0x09,0x9c,0xf7,0x22 +.byte 0x22,0xa9,0x37,0xde,0x3b,0xe1,0x74,0x85,0xcf,0xc5,0xb7,0x7b,0x0a,0xfd,0x6b,0xfa,0x98,0x49,0xa9,0x7f,0x52,0x23,0x0e,0xc0,0x4a,0xb3,0x81,0xa6,0x96,0x46,0x24,0xe7,0x01,0xd1,0xf2,0xac,0x31,0xb2,0x5e,0x61,0xe3,0xab,0xf8,0x1b,0x28,0xca,0xa2,0x78,0x3c,0xdf,0x8a,0xc1,0x17,0x46,0x9d,0xbd,0x69,0x31,0x41,0x8b,0xc1,0xc8,0xaa,0x68 +.byte 0xd5,0x35,0x65,0x49,0xfe,0xc6,0xa4,0x99,0xcc,0x62,0x4b,0x81,0x1c,0x21,0xa4,0xd8,0xe3,0xb3,0xe9,0x7c,0xf8,0x33,0x2f,0x21,0xa5,0x88,0xf2,0x8e,0x7d,0xee,0x00,0x00,0x62,0xcf,0x07,0x37,0x00,0x68,0x6c,0xb5,0x2d,0xc6,0x1b,0xcc,0x86,0x71,0xf0,0x4f,0x68,0xaf,0x0c,0x9a,0x25,0x69,0x71,0x2d,0xb5,0x87,0x90,0x02,0xd3,0xfc,0xbb,0x63 +.byte 0xa9,0xf1,0x13,0x4f,0xda,0x71,0x69,0x5c,0x0b,0xfd,0x3f,0x6c,0x2f,0x0b,0x4f,0x07,0x72,0x2d,0x2f,0x77,0xcb,0xa4,0xe4,0xbd,0x30,0xc7,0xe4,0xd9,0xf9,0x5d,0x2f,0x65,0xe4,0x41,0x5c,0xbc,0x03,0xa2,0x01,0xf9,0xfa,0x06,0x14,0x52,0x08,0x44,0x67,0x75,0x4e,0xbd,0x66,0x4a,0x26,0x3a,0x49,0xc4,0xba,0x02,0xb3,0x8e,0xa2,0x42,0xe7,0x92 +.byte 0x03,0x6d,0x61,0x10,0x73,0xd0,0x6f,0xe1,0x6e,0x67,0xff,0xb0,0x29,0x62,0x70,0x3c,0xeb,0x80,0xed,0x11,0x06,0xd6,0x18,0x60,0xe1,0x3d,0x21,0xa9,0xe9,0xd2,0x92,0x00,0x9e,0x13,0xf2,0x5d,0x38,0x71,0xdf,0xf3,0x5f,0x8a,0x90,0x45,0xf0,0x47,0x1f,0x0b,0x2d,0x12,0xf7,0x10,0x07,0x6a,0x52,0xe8,0xe2,0x26,0x9b,0x4b,0x7a,0x5f,0x97,0xb6 +.byte 0xf1,0x6d,0x47,0x3a,0x1e,0xc8,0x1d,0x78,0x5b,0x0a,0xb8,0x03,0xb1,0xe1,0xe7,0xc8,0xf0,0xe7,0x00,0xac,0xfc,0xd7,0x4a,0xde,0xaa,0xcd,0x0f,0xaf,0xf7,0x56,0x8e,0xed,0xfb,0xbe,0x7e,0xfe,0x62,0x75,0x7a,0x07,0x96,0xff,0xc3,0x21,0x35,0x71,0xb9,0x73,0x41,0xc2,0xb0,0xa8,0x6a,0x65,0x48,0xc4,0x50,0x31,0xe2,0xba,0xf4,0xe9,0x6c,0x03 +.byte 0x26,0x2c,0x77,0xfe,0x1a,0xd5,0x96,0xf6,0x6d,0xe4,0x14,0xfc,0xe2,0x1d,0x20,0x0c,0x14,0xa2,0x39,0x63,0xe5,0x16,0xef,0x6a,0xeb,0xe1,0x69,0xb8,0x67,0xa0,0x91,0xc1,0x8f,0xed,0xff,0xdf,0x26,0x1f,0xc3,0xb7,0x5d,0xe9,0xd2,0x72,0xe2,0x54,0x27,0x46,0x4f,0x33,0x25,0x59,0xaf,0xfa,0x87,0x4b,0x5a,0xda,0x7d,0x15,0x71,0x5d,0xb4,0x8d +.byte 0x95,0xb6,0x09,0x5b,0x8b,0xeb,0xe6,0xba,0xc8,0x2f,0x8f,0x9e,0xa8,0xab,0x6a,0xa6,0x26,0xb6,0xf5,0x80,0xd0,0x7d,0xe7,0x4c,0x18,0x5a,0x72,0x8f,0x3e,0x90,0xe5,0xa1,0x16,0x33,0x66,0xc3,0x7b,0xf6,0xb6,0xdd,0x15,0x94,0x6d,0xca,0x8b,0xd7,0xa5,0x05,0xfb,0x5f,0x4e,0x94,0x6a,0xcc,0x54,0xed,0xeb,0xc0,0xb1,0xe1,0xc9,0x7f,0xc4,0x90 +.byte 0x2f,0x50,0x34,0x81,0x3c,0x83,0x47,0x3c,0x5a,0xb2,0x33,0x63,0xb6,0xa7,0xfb,0x59,0x70,0x87,0xea,0x7f,0x30,0x22,0xb4,0x54,0x48,0xfb,0x40,0xd2,0x7b,0xc9,0x49,0x80,0x18,0x27,0xc2,0x75,0x09,0x06,0x0a,0x83,0x1e,0x7a,0xf1,0x97,0xa1,0xc2,0x34,0x3f,0x6d,0xd6,0x2d,0xfe,0x5d,0x8b,0xfd,0x64,0x5d,0x6f,0x7f,0xbf,0x4e,0x01,0xb7,0x46 +.byte 0xfb,0xf7,0xd5,0x6f,0x5f,0x74,0xc8,0xca,0x9a,0x2e,0x74,0x08,0xe9,0x3d,0x8b,0xfd,0x97,0x38,0x72,0x67,0xbb,0x8a,0x34,0xee,0xf5,0x3a,0x2b,0x5e,0x64,0x64,0x06,0x7c,0x60,0x0f,0x7a,0x88,0x45,0x1b,0x69,0x90,0xb8,0xb0,0x4d,0x71,0x80,0x77,0xa8,0xaa,0x9f,0xd3,0xc6,0xfb,0xb8,0x12,0x1e,0x0c,0xf4,0x94,0x67,0x44,0xdc,0xb1,0x95,0x0e +.byte 0x51,0xd1,0x06,0x69,0x92,0xbf,0xe6,0x67,0xe3,0xcd,0x0b,0x87,0x03,0x12,0x2e,0xa7,0x23,0x72,0x13,0xe9,0x89,0xcf,0x15,0x43,0xc0,0xa7,0x68,0xbd,0xce,0xec,0x28,0xb6,0x85,0x36,0xbe,0x52,0x5d,0x57,0xfa,0x7d,0x72,0xd1,0x4b,0x88,0xc9,0x64,0xbc,0x7a,0x18,0xe5,0x0e,0xab,0x19,0x81,0xee,0x11,0xbe,0xe0,0x68,0x44,0x81,0x49,0x3f,0xd8 +.byte 0x12,0xd1,0x8b,0xc1,0xe0,0x51,0xf7,0xc3,0x64,0xa7,0xc5,0x61,0x9b,0x32,0x6d,0xf0,0x6c,0xa6,0xaf,0xf9,0x4a,0xdf,0x94,0xaf,0xc8,0xf2,0x86,0xb1,0x4e,0x2e,0xa9,0xb4,0x35,0x82,0x15,0x8a,0x58,0xf3,0x03,0x2f,0x78,0x07,0x8f,0xb9,0x16,0x7c,0x42,0xfa,0x36,0xaa,0xa5,0x66,0x62,0x44,0xca,0xa6,0x55,0x95,0x27,0xdb,0x48,0xea,0x0a,0x1d +.byte 0x5a,0xae,0x5c,0xad,0x99,0xfe,0x00,0xf1,0xb9,0x94,0xda,0x09,0x48,0x52,0x9d,0xfc,0xb4,0xb2,0x80,0x19,0x16,0xf8,0xcd,0x68,0x10,0xec,0x1c,0x16,0x3f,0xbb,0x42,0xb4,0x10,0xe3,0xdb,0xaa,0xe4,0x3f,0x2e,0x8e,0xb5,0xce,0xba,0x8f,0xf2,0xb5,0x76,0x98,0x15,0xa7,0x77,0x4b,0x1c,0x30,0xb7,0x6f,0xc9,0xa9,0xa4,0x64,0x59,0xab,0x3a,0x43 +.byte 0x74,0x33,0xab,0xe1,0x3e,0x5e,0x79,0x1c,0xa5,0xb4,0x87,0xe1,0xcb,0xea,0x0e,0x02,0x4b,0x01,0x84,0xbc,0xdc,0x75,0xf4,0x2c,0x2b,0x8d,0xc8,0x5f,0xb5,0xba,0x6b,0xb2,0x4a,0x7c,0xe7,0xaa,0x61,0xa5,0x0c,0xf8,0x02,0x73,0xec,0x11,0x13,0x6b,0x31,0x07,0xaa,0x79,0x78,0x86,0x01,0x77,0x5e,0xa3,0x09,0xd1,0xec,0xaf,0x7d,0xb7,0x65,0xa9 +.byte 0xd8,0x99,0xd2,0xd7,0x6d,0x32,0x97,0x0f,0x0e,0x51,0x0d,0x69,0x81,0x7a,0x94,0x48,0x31,0xe1,0xff,0x26,0x4d,0x30,0x49,0x93,0xfb,0x6e,0xdb,0xea,0xaf,0xcb,0xb4,0xa9,0xc9,0x9f,0xeb,0xca,0x52,0x36,0x26,0xac,0x47,0xda,0x02,0x3d,0xd0,0x93,0x8b,0x61,0x78,0x26,0x54,0x32,0xe8,0x14,0xac,0xf3,0xd2,0x46,0x04,0x12,0x89,0x9f,0xf6,0x11 +.byte 0xf5,0x64,0x83,0x66,0x00,0x50,0x55,0x05,0xb5,0xf6,0x58,0x9f,0xbf,0x4b,0x95,0xf1,0x7f,0x0b,0xb4,0xf7,0x63,0xea,0x6f,0xf7,0xb0,0x20,0x53,0xfe,0x95,0xbc,0xc4,0xe2,0xff,0x75,0xbd,0xab,0x73,0x68,0x44,0x18,0xf7,0x6b,0x04,0x46,0xde,0x6c,0x65,0xb2,0x22,0x4e,0x25,0x8e,0xba,0x7c,0x3a,0x6f,0x80,0x99,0xb4,0xe7,0xf9,0x97,0x68,0x40 +.byte 0xa9,0x96,0xfc,0x6b,0xcf,0x08,0x75,0xe4,0xda,0x6f,0xaf,0x71,0x4f,0x31,0x62,0x31,0x18,0xbf,0xb9,0xa0,0xcc,0x9e,0xa7,0xa2,0x27,0x2a,0xb8,0x6b,0xc0,0x93,0xf5,0x1f,0x41,0x25,0xa7,0x4d,0x9f,0xb4,0x12,0x5c,0x27,0x38,0x5d,0x80,0x88,0xa3,0xb8,0xb2,0xc3,0xd2,0xfb,0x1d,0xba,0x7b,0xac,0x51,0x0b,0x71,0x58,0x3f,0xe5,0xfa,0x36,0xb8 +.byte 0xc7,0x90,0x46,0xd0,0x5a,0x94,0xf0,0x7d,0x6e,0x6c,0x4c,0xb1,0xfa,0xdb,0x97,0x1e,0x19,0xf2,0x1f,0x4e,0x05,0x25,0x0e,0xbd,0x47,0x94,0x2a,0xd3,0x1a,0xbe,0x4a,0x04,0xaa,0x57,0x02,0xc9,0x42,0xc1,0x74,0xcd,0xe1,0x78,0x8b,0xff,0xc1,0xc6,0x17,0x4e,0x71,0xc4,0x2c,0x00,0x23,0x56,0x57,0x1f,0x47,0xd8,0x93,0x80,0xc1,0xc5,0x7b,0xd9 +.byte 0x25,0x30,0xac,0x72,0x37,0x00,0xd2,0xbc,0xc7,0x33,0x73,0xf9,0x14,0x86,0x7c,0xb0,0x28,0x14,0x5d,0xbf,0xbd,0x98,0x1c,0x00,0x05,0x19,0x2b,0x0a,0x55,0xad,0xb4,0x06,0x28,0x58,0x03,0xa1,0xe6,0x27,0xa3,0x32,0x5f,0x41,0xd5,0x6a,0x0b,0xbc,0x0f,0xaa,0xf5,0xc1,0xa7,0x09,0x2f,0x86,0xda,0x56,0xb0,0x04,0x49,0xd4,0x20,0xc6,0xa2,0x6c +.byte 0x27,0x56,0x4e,0xcd,0x22,0x46,0xac,0x0f,0xd3,0x99,0x69,0x83,0xc4,0xae,0x9f,0x88,0xed,0x9c,0xba,0xfb,0xf3,0x66,0xc7,0x3d,0x65,0x55,0xd0,0xe3,0x04,0x03,0x6a,0x02,0x5c,0xbf,0x9f,0x23,0x34,0x79,0xe1,0xbe,0x7d,0xad,0xb4,0xc7,0x9e,0x4d,0x80,0x73,0x6d,0xe5,0x37,0x03,0xac,0xa3,0xf4,0x93,0xad,0x1e,0xf3,0xcd,0xb8,0xe2,0xeb,0x30 +.byte 0xc7,0x50,0xfe,0x0a,0x63,0x5e,0x0f,0xc9,0xd0,0x06,0x58,0xc1,0x6e,0x65,0x54,0x54,0x5d,0xaf,0xf1,0xe8,0x3e,0x95,0xe3,0x70,0x40,0x8e,0xb8,0x4d,0x76,0xda,0xa8,0xe8,0x9e,0x88,0xd8,0xaf,0x67,0x83,0x3b,0x77,0x65,0x58,0x00,0xbb,0xf7,0xe9,0x52,0xf0,0xba,0x0d,0x0a,0x59,0x28,0xe4,0xa7,0xfb,0x06,0xe5,0x34,0xbe,0xcf,0x10,0x7c,0x73 +.byte 0xa8,0xf3,0xa2,0x93,0x96,0x9e,0x4f,0x9b,0x3c,0xd1,0x9f,0x64,0x5b,0x8c,0xc1,0x89,0x66,0x67,0x13,0x52,0xb2,0xaa,0x6b,0x8e,0xea,0x97,0x27,0x20,0x2e,0x64,0xec,0xf0,0x72,0xc9,0x54,0x8a,0xed,0x78,0x3a,0xd7,0x4f,0xc2,0xba,0xc3,0xb8,0x64,0x7f,0xe4,0x5f,0x3d,0xf7,0xe5,0xd9,0xf1,0x8d,0xb1,0xd2,0xf6,0xcc,0x34,0xd8,0x7d,0x16,0xca +.byte 0x47,0xaf,0x85,0xe5,0x4a,0x57,0xb9,0x5a,0x9e,0xff,0xb8,0x83,0xec,0x7c,0xb8,0x07,0xf5,0xd3,0x31,0x31,0x2b,0xf0,0x40,0x46,0xc3,0x63,0x27,0xe4,0xb0,0x3b,0x84,0x0d,0x50,0x05,0x80,0x0c,0xfa,0x8b,0x0e,0x33,0x6b,0x10,0xd4,0xf5,0x4f,0x8b,0x2d,0x9e,0xc5,0x01,0x92,0x52,0x62,0x1a,0x89,0x1e,0xca,0x48,0xc3,0xd6,0xfa,0xd2,0x94,0x7c +.byte 0x77,0x6e,0xa7,0xeb,0xd7,0x4f,0xe8,0xc8,0xc2,0x71,0xb2,0x9e,0x86,0x30,0x18,0xfd,0x4c,0x56,0x4c,0xd0,0xa4,0x84,0x37,0x02,0x02,0x6a,0x8d,0x57,0x6b,0xc2,0x06,0xd1,0x8a,0xdb,0xa0,0xcc,0x31,0xf9,0xcf,0xbf,0xf2,0x29,0x7c,0x26,0xac,0x1f,0x03,0x20,0x26,0x76,0x03,0x6f,0xa5,0xb5,0x33,0xfb,0x02,0xe8,0xf6,0xe9,0x5e,0xb1,0x36,0x7c +.byte 0x96,0x56,0xb1,0x98,0x2d,0x9c,0x38,0x9b,0xd4,0x56,0x28,0xcc,0xdb,0x08,0xd3,0x42,0x00,0x35,0x24,0xd9,0x74,0xa2,0x0d,0x55,0x21,0x06,0xb7,0xf9,0x6a,0xa0,0x81,0xc1,0x2d,0xb6,0x67,0x91,0x92,0x24,0x36,0xfd,0x2e,0xd8,0xc0,0xcb,0xc8,0x87,0x1a,0x41,0x11,0x70,0xbf,0xd2,0xe7,0x82,0x10,0x74,0xdf,0x65,0x46,0x19,0x6b,0xb4,0x89,0xeb +.byte 0x9e,0xcf,0x79,0x35,0xba,0x25,0x75,0x32,0x64,0x6a,0xfb,0xaf,0xe5,0xed,0x85,0x98,0x34,0x75,0x31,0x40,0xbb,0xd8,0xe3,0xf5,0xa7,0xa2,0x9a,0x9e,0xcd,0xc4,0xf8,0xd8,0x15,0x6c,0x64,0x0c,0x6c,0x16,0x60,0xe9,0x40,0xf4,0x7a,0x14,0x37,0x7b,0x45,0x9b,0x0e,0x29,0x7a,0x1a,0x88,0x10,0xb9,0x2b,0xee,0x13,0xbd,0x8a,0xde,0x7a,0xe9,0x30 +.byte 0xe8,0x39,0x77,0x74,0xf5,0x2f,0xe3,0x10,0x19,0x89,0x28,0x21,0x3a,0x68,0x38,0xb4,0x4d,0x20,0x8d,0x7d,0xec,0x3f,0xf7,0x61,0xbf,0x53,0x32,0x3b,0xb8,0x6a,0xc9,0x58,0xeb,0xd4,0x33,0x0e,0xee,0xc7,0xb9,0x5e,0x3d,0x17,0x7e,0x36,0xa2,0xa6,0x94,0xb1,0x56,0xb6,0x8e,0x94,0x05,0x50,0x69,0x52,0x4f,0x31,0xe5,0x97,0x18,0xde,0x8f,0xb7 +.byte 0xff,0x2e,0x6f,0x1b,0x6a,0xda,0xfd,0xa1,0xd1,0x9a,0x4e,0x6a,0x1b,0x46,0x71,0x52,0x76,0x66,0xf9,0x70,0x8d,0x7d,0x97,0xb0,0xc3,0x8d,0xbc,0x35,0x26,0xe8,0x0b,0x80,0xc7,0x58,0x19,0x22,0x70,0x33,0x06,0xeb,0xcf,0x26,0x22,0xe0,0x97,0x91,0xbf,0xd6,0x94,0x05,0xe1,0x84,0xe2,0x31,0x66,0x57,0xc7,0x1e,0x36,0x30,0x50,0xaf,0x72,0xb3 +.byte 0x31,0xad,0x84,0xcc,0xb5,0x76,0x03,0xe1,0x56,0x97,0x87,0x36,0xf5,0xaa,0x97,0x99,0x38,0xa5,0xf5,0xb7,0x42,0x86,0x3b,0x2f,0x8a,0xb9,0x8e,0x6a,0x0b,0xe0,0xca,0xbc,0x4c,0x6c,0xc1,0x3f,0xbe,0x45,0xef,0xd2,0x57,0xcd,0x29,0xfb,0xfb,0xa5,0x79,0xf2,0xb1,0xbb,0x4b,0x55,0x26,0x2f,0x5c,0x84,0x5e,0x6a,0xc6,0xa9,0xd5,0x23,0xe4,0xd1 +.byte 0xe5,0xf0,0xbc,0x50,0x6a,0x2a,0xaf,0xa2,0x7c,0xcc,0x36,0x95,0xf9,0x5c,0x04,0x6d,0x04,0x31,0xbe,0x1d,0xb2,0x50,0x97,0x8f,0xdf,0x8a,0xed,0x4e,0x4e,0x0a,0x0b,0xfc,0xfc,0x1d,0xa9,0x6a,0x76,0x6a,0x33,0xd7,0x0a,0xcf,0xd5,0xdd,0xc6,0x62,0xe5,0x59,0x02,0xba,0x9c,0x43,0x32,0x8a,0x0e,0x47,0x91,0x00,0x07,0x47,0x93,0xc4,0xad,0x29 +.byte 0x33,0x57,0x15,0x45,0x44,0xb9,0xf3,0xc4,0xe6,0xd2,0xb9,0x3a,0x44,0x16,0x32,0x8d,0x57,0x78,0xac,0xf5,0xdb,0xa2,0x93,0x97,0x64,0x08,0x9b,0x66,0x4b,0xa0,0x64,0xab,0xa0,0xd6,0x0e,0x2c,0xa1,0x25,0x16,0x5c,0x6f,0x82,0xff,0x8e,0x89,0xfb,0xca,0x03,0xa6,0xf8,0xa1,0xf6,0x87,0x02,0x5c,0x90,0xcb,0x33,0xa0,0xc0,0x90,0xc2,0x1f,0xdd +.byte 0x5c,0x50,0x93,0xf2,0x8b,0x87,0xa1,0x73,0xda,0x5f,0xa3,0x20,0xd4,0xe7,0x45,0xd7,0xea,0x4b,0x5d,0xd6,0x80,0xfc,0x2d,0xdc,0x45,0x6a,0xf6,0xaf,0xd4,0x7a,0x91,0x64,0x15,0x17,0xbf,0xc7,0x58,0x54,0x7c,0x08,0x42,0x4f,0x8d,0xab,0x9b,0xd0,0x1d,0x57,0x71,0x50,0xa7,0xe3,0xb4,0xf2,0x14,0x0c,0xd7,0x2f,0x7c,0x8b,0x17,0x61,0x98,0xfa +.byte 0x19,0x34,0xb9,0x65,0xc5,0x5c,0xfe,0xa3,0x80,0x6f,0x99,0xec,0xfa,0x06,0x22,0x71,0xa9,0x10,0x2a,0xcf,0x12,0xb3,0x17,0xe5,0x59,0x3a,0xaa,0xcb,0x55,0x5f,0x45,0x9d,0xe9,0x29,0x56,0x34,0x11,0x62,0x6e,0x0a,0x95,0x12,0x5d,0xd4,0xa2,0x28,0x05,0xf1,0x0f,0x2d,0xa0,0x1e,0xe1,0x2b,0x42,0x6c,0xf0,0xe6,0x47,0xe0,0xb2,0xbd,0x89,0x20 +.byte 0x5e,0x24,0x05,0xec,0xf1,0x33,0xfc,0xa9,0x2f,0xef,0x3a,0x1f,0xfe,0x39,0xfe,0x01,0x09,0x0a,0x2a,0xe0,0x96,0x1e,0xde,0xad,0x96,0xaa,0x48,0xeb,0x8a,0xe6,0x54,0xbb,0x5d,0x7a,0xbe,0x4a,0xbf,0x96,0xf6,0x15,0x7a,0x70,0x6f,0xee,0xe7,0xf5,0x53,0xaf,0xe1,0xbb,0xaf,0x58,0x51,0xd4,0xa0,0xc6,0x44,0x03,0x47,0x33,0xce,0x58,0x62,0xd3 +.byte 0x93,0x21,0xa5,0xa5,0xb4,0xef,0x1d,0x93,0xcc,0x8c,0xf7,0x14,0xe3,0xec,0x40,0x52,0x47,0xe6,0xbc,0xe6,0x85,0x69,0xd0,0x15,0xad,0x24,0x21,0x4f,0x26,0x01,0x60,0x0f,0x0f,0xcb,0x7e,0x14,0x01,0xe1,0x90,0x11,0x06,0x17,0x38,0x2d,0xd8,0x26,0xe2,0x7c,0xd6,0xef,0xe0,0x59,0xf0,0x8c,0x2a,0xbd,0xba,0xe5,0x8b,0x07,0x56,0xd3,0x35,0xb3 +.byte 0x64,0x83,0x9e,0xb9,0xb9,0xeb,0x88,0x03,0xff,0x14,0xf3,0x8b,0x14,0xd3,0xa4,0xac,0x08,0xd9,0x75,0xf6,0x2c,0x9d,0x7f,0xc8,0x9d,0x11,0x3b,0xd1,0x71,0x14,0x4b,0x2a,0x6d,0x20,0x83,0x32,0x35,0x7e,0x1f,0x20,0xa6,0x69,0xbf,0xcf,0x22,0xd9,0xa2,0x57,0x4b,0x66,0xb1,0x9f,0x5a,0xa8,0xaa,0xb8,0x11,0x1d,0x45,0x28,0xac,0x86,0x09,0x37 +.byte 0xe9,0x1f,0xef,0xb4,0xe0,0x6f,0x75,0xad,0xe5,0xd8,0x25,0x06,0x19,0xb4,0xa8,0x07,0x78,0x79,0x43,0x63,0x40,0x26,0xbd,0x28,0x50,0x2d,0x29,0x26,0xf9,0xfc,0x5c,0x71,0x8f,0xfd,0x62,0x12,0x7c,0xd0,0x67,0xb3,0x65,0xef,0x31,0xc0,0x99,0xc1,0x54,0xfc,0x32,0x6e,0x25,0x56,0x77,0x6e,0xc1,0x6b,0x11,0x50,0x7c,0xa1,0x0b,0x97,0x8a,0xfe +.byte 0x0f,0x5b,0x16,0x93,0x83,0xe0,0xd8,0xb7,0xbf,0xa8,0x90,0x6d,0xd6,0x8b,0x4b,0xd9,0x17,0xbb,0xe8,0xd9,0xbb,0x5f,0x39,0x4a,0x33,0x7c,0xb3,0x12,0x99,0x1e,0xfc,0xb2,0x05,0x91,0x67,0xdf,0x8d,0x0b,0x55,0xfb,0xd1,0x8d,0x0c,0x9b,0x80,0x81,0xee,0x8c,0x05,0xe2,0x16,0x30,0xad,0x1f,0x88,0x04,0x75,0xc1,0xe5,0xec,0x32,0xf8,0xa0,0x5b +.byte 0x21,0xf6,0xd8,0x13,0x26,0xe4,0xa1,0x32,0xa8,0x93,0x91,0x5d,0x33,0x45,0x83,0x72,0x52,0x59,0x23,0x84,0xf6,0x7b,0xe2,0x90,0x20,0xc6,0x40,0x33,0xa9,0x94,0xcd,0xb9,0xab,0xe4,0x44,0x0b,0x06,0xbb,0x4c,0x2c,0x2a,0x5e,0x4d,0x57,0xb7,0xe0,0xb8,0x86,0x74,0xab,0xea,0x37,0x1c,0xa0,0xa6,0x21,0x33,0xc7,0xf5,0x24,0x7d,0x14,0xc8,0x8b +.byte 0x9d,0x8f,0x31,0x23,0x29,0x9d,0x11,0x42,0x07,0xe8,0x2c,0xec,0x7d,0x70,0x8d,0xb5,0xa4,0xca,0x33,0x30,0x03,0x75,0x17,0xa1,0x10,0xe7,0x6b,0x87,0xf9,0x0b,0xef,0x43,0xef,0xf8,0x24,0xc2,0xf1,0x7a,0x1a,0x70,0x7e,0x2f,0xd4,0xeb,0x97,0x40,0xa6,0xe6,0x2d,0xc1,0xd8,0x3b,0xee,0xa4,0xda,0xd3,0x50,0x41,0x18,0xbf,0xad,0x66,0x02,0x85 +.byte 0x60,0x14,0xcf,0xce,0x50,0x88,0x5e,0xb6,0x73,0x11,0xbb,0x6a,0xca,0xb1,0x46,0x8e,0xbb,0x58,0x2c,0x63,0x61,0x20,0xec,0xc9,0x98,0x0c,0xdb,0x5c,0xe5,0x47,0xb5,0x89,0xe9,0x14,0xc8,0xbc,0x35,0xf2,0xa7,0x2d,0x84,0xcc,0x61,0xc8,0xb6,0x9d,0xeb,0xcb,0x8b,0x73,0x90,0x6d,0x06,0xc9,0x42,0xcf,0xd2,0x15,0x80,0x2d,0x39,0xeb,0x71,0x83 +.byte 0x27,0x0d,0x85,0xf9,0xa3,0xce,0xef,0x29,0x3b,0x10,0xb7,0xe9,0xd0,0x86,0x6e,0x88,0x1e,0x3b,0xdd,0xaf,0x52,0xde,0xa2,0xa4,0x13,0x3c,0x1f,0xcb,0x84,0x74,0x12,0x04,0x91,0x40,0xb8,0x1b,0x15,0xfd,0xdb,0xe8,0x74,0xcc,0x4d,0x41,0xb5,0x5a,0x92,0xd3,0x71,0xf7,0x57,0xa5,0xf7,0x18,0x5a,0x57,0x36,0xde,0x8f,0xb2,0x81,0x59,0xc8,0x5c +.byte 0x22,0xcf,0xdc,0x7d,0xff,0x83,0xf2,0xad,0x8c,0x7b,0xd5,0x04,0xc4,0xb9,0x79,0x4a,0x12,0xa7,0xb1,0x7e,0x57,0xa5,0x6b,0x56,0x8a,0x11,0x96,0x57,0xde,0x35,0xdd,0xef,0x9b,0x03,0x41,0xde,0x61,0x5b,0x73,0x8c,0x6a,0x0c,0x6f,0xae,0x45,0x4b,0x56,0x4d,0xbe,0x8a,0x3f,0xdb,0x79,0x58,0x88,0xad,0xcb,0xfa,0x66,0x06,0x0e,0x74,0x21,0x1d +.byte 0xe1,0x94,0xd7,0x06,0xea,0x60,0xe2,0x7d,0x70,0xcf,0xa9,0x4f,0xe6,0x9b,0xba,0x19,0x71,0x69,0x94,0x66,0x5a,0xb8,0x49,0x0c,0xd1,0x9a,0xc4,0x5f,0xa7,0xf4,0x9e,0x3d,0x9e,0xc2,0xd8,0x0e,0xd2,0x6d,0xc6,0xc8,0x99,0xc3,0x5e,0x3b,0xb9,0xd8,0x48,0xc0,0x38,0x48,0x95,0x89,0xff,0x7e,0x1d,0x80,0x53,0xac,0x7b,0xd7,0xfc,0x6f,0x5d,0x25 +.byte 0x2f,0xcf,0x15,0xdb,0x1a,0x64,0xc1,0x16,0x91,0x65,0x84,0x99,0x0a,0xc1,0xbf,0x4d,0x11,0xa5,0x55,0x55,0x35,0x93,0x6f,0x47,0xf1,0x75,0xb8,0xb6,0x11,0x9d,0x6e,0x3b,0xd1,0x11,0x20,0xa2,0xa2,0x5c,0x33,0x85,0x09,0xb8,0x13,0xc9,0xdd,0xf2,0xd4,0x32,0x37,0xf2,0xef,0x47,0xfa,0x25,0x1a,0xcc,0xdf,0xf4,0xe4,0x2c,0x2c,0x7f,0x23,0xb6 +.byte 0xa8,0xd4,0x6a,0xd4,0xb4,0x06,0x2e,0xb0,0xaa,0xa1,0x18,0x8a,0x5c,0xc6,0xb2,0x4c,0x71,0x92,0x4a,0xdc,0x81,0x20,0x51,0x8d,0x3f,0x71,0x7d,0x8c,0x25,0x79,0x07,0x14,0xa9,0x7a,0x8b,0xda,0x00,0xfc,0x51,0xdb,0xa0,0x50,0x2b,0x15,0x39,0xf6,0xad,0xdc,0x9e,0x22,0x93,0x2f,0x43,0xd8,0x5c,0xa2,0x5e,0xfa,0x70,0x8c,0xe0,0x6b,0x0e,0x93 +.byte 0x6c,0x89,0xfe,0x22,0x4c,0xec,0xb0,0x7e,0xc1,0x06,0x69,0xf7,0x2f,0x3e,0xe5,0xa4,0x45,0x53,0xab,0x9c,0xf5,0x40,0x05,0x53,0x64,0xc6,0xa7,0xf9,0xc4,0xd6,0x89,0xd9,0x47,0x72,0x8e,0x42,0xf9,0x64,0x12,0xeb,0xd9,0x25,0xdc,0x4c,0xc6,0xea,0x9c,0x4b,0x93,0xb4,0xa2,0xa6,0xae,0x95,0xc1,0x84,0x75,0xc9,0x22,0xe3,0x22,0x81,0x31,0xd1 +.byte 0xfd,0x2e,0x91,0x4a,0xc3,0x00,0xa6,0x57,0xbb,0x89,0x9f,0x2d,0xc3,0x2e,0x1f,0xa2,0x47,0xc4,0xa3,0xcd,0x2b,0xc2,0x29,0xaf,0x89,0xce,0x2e,0x87,0x8e,0xd8,0xfc,0xee,0xab,0x8a,0xbd,0x2f,0xee,0xcf,0x94,0xe0,0x74,0x70,0x86,0x00,0x42,0x11,0x8b,0x6c,0x81,0xd4,0x82,0xf2,0x29,0x3e,0x9c,0x68,0x71,0xaa,0x20,0x0a,0x51,0x5d,0x80,0x4c +.byte 0xca,0x04,0x23,0x23,0xe2,0x69,0xb3,0xf5,0x65,0x98,0x19,0xee,0xa9,0x4d,0xd8,0xe0,0x06,0x4b,0x17,0xed,0xfa,0xf2,0xe3,0xd3,0x69,0x48,0xe4,0x4e,0xc0,0x5a,0x16,0x90,0xdb,0xb6,0x32,0x6e,0x6b,0xd7,0x7a,0xb6,0xd4,0x82,0xe4,0xcc,0x31,0x31,0x5c,0x18,0x84,0xef,0x75,0x9f,0xda,0xf6,0x62,0x2d,0x96,0x4d,0xa1,0x3c,0xb5,0x4a,0xbb,0xbf +.byte 0x9d,0xb3,0x33,0x00,0xc1,0x73,0xc5,0xb2,0xeb,0x85,0x74,0xb0,0x68,0xed,0x16,0x66,0x71,0xc9,0x7e,0x6f,0x74,0xa6,0xe7,0xed,0xf0,0xfa,0xab,0x41,0xdd,0x10,0xf9,0xff,0x4c,0xb6,0x4f,0x15,0xe3,0x77,0x31,0x17,0x5c,0x5a,0xef,0xb2,0xa9,0x44,0xbe,0x97,0xa9,0x75,0x5a,0xb7,0xe0,0x16,0x17,0x37,0x1b,0x71,0x03,0xb9,0xaa,0x7b,0x7b,0x52 +.byte 0x46,0x58,0x6b,0x9b,0x87,0x27,0xa6,0x8a,0x0e,0x84,0x03,0x45,0x95,0x04,0xf1,0x7e,0xb6,0xf6,0x79,0xd5,0x66,0x6d,0x50,0x8c,0x5a,0x67,0xe0,0xdd,0x69,0xd8,0x92,0x75,0x15,0xcb,0xa5,0x05,0xfe,0x7a,0xc1,0xd6,0x11,0x57,0x10,0xa3,0xc3,0xb6,0xe9,0xe3,0x97,0xa5,0x46,0xc9,0xe9,0x9b,0x68,0xb6,0x55,0x0b,0xf2,0x17,0x9d,0x0e,0x7f,0xd9 +.byte 0x26,0x0c,0x01,0xff,0x95,0xe1,0x05,0xb7,0xbf,0x0d,0x77,0x12,0x96,0x03,0x71,0x01,0xc9,0x98,0xb4,0x44,0x94,0xc0,0xad,0x3d,0xfc,0x6f,0xe5,0x0c,0xa4,0x65,0xd7,0xe7,0x76,0x7c,0xb8,0xa0,0x0a,0xcd,0xe8,0x01,0x26,0x8e,0x94,0xec,0x94,0x65,0x86,0xee,0x4d,0x3b,0xc5,0xb5,0x2e,0x51,0xb7,0xa9,0x68,0xcd,0x14,0x90,0xd8,0x36,0xfb,0x52 +.byte 0x04,0x52,0xb4,0xca,0x9b,0xbf,0xc6,0x94,0x28,0xc5,0x7e,0x27,0x73,0xae,0x6d,0xba,0xe7,0x56,0xce,0x2e,0x00,0xeb,0x36,0x19,0xd7,0x4f,0x20,0x5e,0xfd,0x0f,0xd4,0x4c,0x02,0xaf,0xdb,0x74,0xef,0xf0,0x73,0x1e,0x2a,0x1a,0xe7,0x3a,0xe0,0xa5,0x89,0xcf,0x1a,0x66,0xbd,0x72,0x65,0xb4,0xf4,0x86,0x33,0x44,0xee,0x35,0xf6,0x09,0xbe,0x13 +.byte 0x96,0x84,0x04,0x95,0x3f,0x35,0xbb,0x01,0x2c,0x78,0x25,0xe8,0x1e,0x46,0xdb,0xd9,0xb1,0xe8,0xfb,0x2b,0xa8,0x59,0x72,0x5f,0x91,0xd3,0x7c,0x21,0x95,0xa9,0x50,0xa2,0x45,0x6f,0x48,0x0c,0xf2,0x51,0x10,0x3c,0xcd,0xea,0xeb,0x5d,0xc7,0xf9,0x0e,0xae,0x1a,0x02,0x05,0x15,0x12,0x10,0xc0,0x35,0x12,0x97,0xcd,0x5b,0x61,0x4f,0xd1,0xd3 +.byte 0x5b,0xec,0x2b,0xa0,0x20,0x03,0x2b,0xf3,0xe6,0x71,0x23,0xca,0x1d,0x48,0x64,0x3f,0x7e,0x52,0x8b,0xf9,0x96,0x33,0x31,0xbc,0xbd,0x73,0x2f,0xa6,0x80,0xb8,0x0b,0x3a,0xd7,0xf8,0x05,0xf0,0x06,0xc7,0xa5,0xce,0x6a,0x6a,0x62,0xae,0x06,0x93,0xa4,0x5f,0x0b,0x5d,0x4d,0xb8,0xa4,0xfa,0x2e,0xfc,0xb6,0x58,0x8c,0x2a,0x46,0xa4,0x55,0x1f +.byte 0x9b,0x9b,0x13,0xdd,0x17,0x2a,0x3d,0x04,0x51,0xb6,0xbe,0x9c,0xca,0xf3,0x23,0xb6,0x7b,0x7a,0x92,0xb7,0x2f,0xf9,0x69,0x9a,0xee,0xb3,0xa1,0x60,0x56,0xcf,0x9d,0xab,0xfe,0x86,0x7a,0x41,0x94,0x15,0xbe,0xa3,0xa5,0x85,0x09,0xfb,0x7b,0x89,0xbd,0xc3,0x09,0x10,0xa6,0xfc,0x41,0x8e,0x57,0x27,0xdc,0x58,0xf4,0x01,0x7c,0x31,0x5e,0xca +.byte 0xaf,0x31,0x2f,0x98,0x8b,0xbe,0x19,0x16,0xa1,0x81,0x7e,0xb3,0xa9,0xc5,0x15,0xd2,0xad,0x51,0xa1,0x73,0x56,0xd3,0x6a,0x15,0x35,0xe3,0xb1,0xdb,0x83,0x4c,0xe2,0x85,0x8c,0x03,0x12,0xc4,0x64,0x69,0xc0,0x23,0x16,0x7b,0x68,0x46,0x44,0x22,0x84,0xa6,0xb5,0xe4,0x90,0x91,0xc1,0xdd,0x25,0x7c,0x54,0x0e,0xce,0x5b,0x11,0xe4,0x50,0x1c +.byte 0x3c,0x0d,0xc7,0xc1,0x0c,0x10,0x2d,0x8b,0xb7,0xde,0xe2,0x4f,0x7e,0x22,0x53,0xfc,0x07,0x55,0x19,0x14,0x3b,0x33,0xf5,0xf3,0xd8,0x7b,0x5e,0x40,0xa2,0x81,0x6d,0x40,0x0d,0x20,0x36,0x4b,0xa1,0x34,0x34,0xac,0x43,0x59,0xb5,0xb1,0x90,0x8b,0x48,0xcf,0x15,0x57,0x17,0x0e,0xd0,0xbf,0x28,0xcd,0xa4,0x77,0x4d,0xae,0x09,0x4c,0x67,0x51 +.byte 0x18,0xaa,0xb4,0xc9,0x35,0x41,0x0b,0x34,0x4d,0xb3,0xef,0x3f,0x46,0x97,0x6e,0xae,0x75,0xd7,0x6a,0x2b,0x22,0x9c,0xef,0x8e,0xaf,0x72,0xb0,0x14,0x90,0xbd,0x11,0x90,0xde,0x9a,0x02,0x8c,0x20,0xf5,0xc7,0x33,0x4d,0x94,0x88,0x9a,0x6c,0x18,0xb4,0xc0,0xa9,0x94,0x07,0x9a,0x4b,0x10,0x8f,0xe8,0x25,0xcd,0x9b,0xf5,0xfa,0x91,0x8a,0xc0 +.byte 0x93,0x61,0x1c,0x00,0xd1,0x34,0x9a,0x29,0xa3,0x35,0x38,0xe4,0xa7,0x9f,0xb6,0x88,0x0f,0xad,0x88,0x96,0xa0,0x73,0xe7,0x10,0xea,0x36,0xe8,0x88,0x6c,0x7f,0x03,0xbc,0xfe,0xe0,0xb2,0x4b,0x24,0x98,0xf6,0x73,0x6f,0xab,0x00,0x1e,0x26,0x83,0x0d,0x86,0x5b,0xa6,0x51,0x8f,0x5f,0xa9,0x8f,0xf4,0xa0,0x51,0xff,0xe0,0x64,0x09,0x95,0xfb +.byte 0x56,0x53,0x18,0x61,0xea,0xc5,0x33,0xe8,0x6f,0x8a,0x07,0x97,0x1a,0x6c,0xb5,0xf8,0x73,0xae,0xe4,0x4e,0x6d,0xb2,0x83,0x20,0xfa,0xfd,0x79,0xa6,0x6c,0xaa,0x9b,0x7b,0x2c,0xfe,0x63,0x73,0xbc,0x87,0xd4,0x56,0xd1,0xb1,0xf1,0x0f,0x72,0x2c,0x2f,0xf0,0xf0,0x53,0xe2,0x6c,0x19,0x0d,0x9c,0xad,0xc8,0x0a,0x62,0x72,0xcb,0xc3,0x12,0x90 +.byte 0x4c,0x26,0xe3,0xa0,0x07,0x35,0xee,0xaf,0x81,0x35,0x07,0xa9,0x31,0xa0,0x59,0xc8,0x40,0xa5,0x45,0xb6,0x6d,0x3e,0xa2,0x5f,0x6a,0x79,0x74,0x65,0xa1,0xe3,0x1c,0xca,0xae,0xcc,0xa6,0xb6,0x0a,0x12,0x99,0x8e,0xc3,0xef,0x43,0xcf,0x42,0x92,0xa4,0x12,0xa3,0x8b,0x97,0x7d,0x6f,0xe0,0x35,0xed,0xac,0x69,0xae,0x8c,0xe1,0x32,0x11,0xa4 +.byte 0xe0,0x76,0x7f,0x75,0x92,0xda,0xfe,0x94,0x33,0xeb,0xe1,0xa4,0x3c,0x95,0x7c,0xc6,0xbc,0x3d,0xf2,0x39,0xa1,0x29,0x39,0x24,0x09,0xd4,0x52,0x68,0xfb,0x80,0xd0,0xd4,0x57,0xc6,0x4c,0xa5,0xa6,0x90,0xa6,0x61,0x15,0x2f,0xd3,0x35,0x36,0xf5,0x16,0xb3,0x65,0x0a,0xc4,0xcb,0x7f,0x73,0xe4,0xba,0x9a,0xd8,0x8b,0xc3,0x01,0xa0,0x08,0x57 +.byte 0x9e,0x26,0x54,0xbc,0x55,0xd1,0x5f,0xaa,0xb5,0x0d,0x42,0x75,0x04,0x76,0x8c,0xef,0xcf,0x64,0x3a,0x2e,0x4c,0x78,0xe5,0x37,0x8d,0x55,0xec,0xc1,0x7b,0xce,0x5f,0x5f,0x43,0x8b,0xdd,0x46,0x43,0xf5,0xa8,0x41,0xa6,0x82,0x1b,0x12,0xcb,0xcb,0x6d,0xa1,0x6c,0xb6,0x79,0x46,0x12,0x89,0x12,0x61,0xd6,0x4f,0xf9,0x43,0x2d,0x27,0xa9,0x61 +.byte 0x2e,0x2a,0x29,0x1b,0x6d,0xad,0x32,0x0b,0x6c,0x7c,0xf4,0xb8,0x98,0x91,0xbb,0x78,0xda,0x85,0xe8,0xfb,0x4e,0x11,0xc4,0x2a,0x07,0x54,0xa0,0x67,0x73,0x1b,0xa4,0x60,0x15,0x5c,0x83,0xbf,0x3f,0xd9,0x61,0x30,0x02,0xbb,0xa6,0x67,0xcd,0x0c,0xd1,0xb4,0x11,0x7e,0xca,0xf4,0x1e,0xed,0x83,0x34,0x66,0x54,0x23,0x39,0x36,0x8c,0xa0,0xc6 +.byte 0xef,0xad,0xa1,0x95,0x04,0x20,0x46,0x42,0xa8,0x99,0xd2,0x98,0xc6,0x0a,0x92,0x11,0xd1,0x84,0x4a,0xbf,0x25,0xe5,0xcf,0x78,0x98,0x81,0x80,0xaa,0x31,0x0a,0xa4,0xfb,0xef,0x35,0xfa,0xa4,0xac,0x5f,0x01,0x6b,0xb7,0x8e,0x86,0xc1,0x46,0x97,0x88,0xe2,0xaa,0x3b,0x1f,0xb5,0xf8,0xa9,0x90,0xf0,0x45,0x6d,0xdd,0xa3,0xdd,0xd8,0xef,0x36 +.byte 0x6f,0x87,0x55,0xf6,0x96,0xcd,0x88,0x43,0x03,0x97,0x82,0xea,0x5a,0x1c,0xa1,0x1a,0x7b,0x1b,0xa7,0xfc,0xaa,0x86,0xb4,0x71,0xde,0x0d,0x0a,0x52,0x98,0xd2,0x65,0x5d,0xa4,0xea,0x91,0xc9,0xe4,0x8b,0xd0,0xdb,0x85,0xe3,0x86,0x85,0x50,0xe1,0x41,0x1f,0x48,0x97,0x64,0xec,0x34,0xe4,0x54,0x42,0xf4,0x01,0xed,0x6f,0x4d,0xe3,0x1f,0x86 +.byte 0x14,0xbc,0x01,0x9c,0x7f,0x02,0x0c,0x65,0x94,0xd2,0x90,0x2c,0x1b,0xab,0x41,0x88,0xad,0x58,0xb5,0x71,0xd3,0xd6,0xe1,0x3f,0xf3,0x3c,0xb6,0xab,0x22,0x08,0x17,0xc7,0xf5,0x7e,0x34,0x56,0xae,0x1d,0x1e,0x7e,0xdb,0x24,0xe2,0xc2,0x38,0xf3,0x4d,0x46,0xe4,0x45,0xcb,0xb7,0x2f,0x0f,0x96,0x72,0x7e,0x31,0x89,0x17,0x9c,0xed,0x85,0xb9 +.byte 0xc8,0x8f,0x65,0x93,0xfb,0xb8,0x9e,0x41,0xa2,0xc1,0xcf,0xdb,0xe2,0x4c,0x26,0x4a,0xc7,0x2a,0x72,0xf6,0x28,0xbc,0x18,0x22,0xde,0xa1,0xfa,0x46,0xbe,0x95,0xc8,0xe2,0x19,0xbb,0x20,0x7b,0xd5,0xf8,0x34,0x15,0xaa,0xec,0xe2,0x9e,0xa9,0x3d,0xa1,0xd9,0xaa,0xc9,0x18,0x39,0x07,0x5c,0x81,0x61,0xe7,0x00,0xc5,0x57,0x3e,0xca,0x4d,0x89 +.byte 0x33,0x02,0xa6,0xc8,0x15,0xb7,0x24,0xdd,0x5c,0x55,0x56,0x11,0x5c,0x17,0x1b,0xda,0xc6,0xd5,0x46,0x6e,0x9f,0x70,0xe7,0x1e,0x41,0xee,0x91,0x1a,0xa0,0xad,0x35,0x64,0xdf,0x4a,0x18,0x03,0xa7,0xa8,0x88,0x8f,0x65,0xbc,0x76,0x34,0x08,0xab,0x50,0xc6,0xd3,0x08,0x7c,0xc1,0x4f,0x77,0xcd,0x1a,0xc6,0xed,0x35,0xea,0x4e,0x8a,0x6a,0x38 +.byte 0xa3,0xa3,0xd8,0xa9,0xa2,0x68,0xa7,0xd8,0xe0,0xc8,0x3f,0xfe,0xe7,0x73,0xc6,0x6b,0xd8,0x0c,0xd5,0x8f,0x81,0xe7,0x37,0x08,0x93,0x28,0x73,0xef,0xc4,0x91,0x52,0xa5,0x30,0xff,0x47,0x95,0x02,0x0d,0x8c,0xfd,0xc9,0x28,0x60,0xa9,0xad,0x30,0x00,0xcc,0x3a,0x00,0xbb,0x25,0xab,0xd0,0xf8,0x25,0x46,0x20,0xc0,0x67,0x9b,0xd6,0x10,0xa6 +.byte 0x84,0x6f,0x66,0x60,0x66,0x75,0xb6,0xfb,0x39,0x3a,0x9f,0x7d,0x32,0x7f,0x12,0x6f,0x8c,0xed,0x79,0x40,0x47,0xa3,0x27,0x17,0xa8,0xa4,0x02,0x93,0xb9,0x32,0x03,0x34,0x06,0x76,0x71,0x40,0x90,0x2b,0xe7,0xd0,0x3f,0x59,0xa7,0xfb,0x3a,0x7b,0xc8,0xa5,0x86,0x21,0x0d,0xf6,0xc6,0x49,0x07,0x56,0xe9,0xfc,0xac,0x61,0x30,0xa5,0x7e,0x90 +.byte 0x10,0xc8,0xdb,0x15,0x2b,0x75,0x27,0x77,0x51,0x42,0xcf,0x50,0xe8,0x6c,0x0b,0xb7,0x17,0x1a,0x89,0x7d,0xfe,0xd2,0x75,0xfa,0xb7,0xe5,0x68,0x10,0x1c,0x27,0x85,0x8b,0x52,0x7d,0x87,0x57,0x50,0x77,0x25,0x9d,0xcc,0x08,0x6a,0xad,0x63,0xf8,0x8e,0xe0,0x21,0x62,0x56,0x48,0x29,0xed,0x81,0x1d,0x6b,0x60,0x55,0x78,0x6a,0xce,0xd6,0x79 +.byte 0xe1,0x66,0x18,0x9f,0x71,0xf7,0x0c,0xec,0x35,0x53,0xef,0x39,0xfe,0x57,0x71,0xc0,0x49,0x4b,0x55,0xe8,0x3d,0x9b,0xe3,0x9a,0xbb,0xf8,0x61,0x31,0xa1,0x94,0x94,0x8a,0xb1,0xd2,0x0f,0x01,0xe0,0xd4,0x26,0xa0,0x59,0x70,0xd0,0x5e,0xb8,0x6f,0x63,0x7b,0x71,0x49,0xe1,0x98,0xfb,0xdb,0x22,0x26,0x18,0x16,0x31,0x08,0x90,0x32,0xd5,0x7a +.byte 0xc0,0xd8,0xeb,0xae,0x93,0x3d,0x46,0xeb,0x0e,0xdd,0x08,0xa2,0xde,0x4e,0xc1,0x88,0x26,0xc2,0xf8,0xc6,0x5e,0x8a,0x9b,0x0d,0x9f,0x2b,0xcf,0x4e,0x13,0x43,0x4a,0x65,0xf6,0x47,0x1a,0x0a,0xae,0xf9,0x9f,0x7c,0xc5,0x18,0x65,0x09,0xcb,0x85,0x7d,0x33,0x36,0x43,0x19,0x99,0x20,0xa2,0x64,0xb2,0xf5,0x20,0xd2,0x74,0xc6,0x2c,0x29,0x46 +.byte 0xde,0xa7,0x4a,0x7f,0x3b,0x05,0x3e,0x11,0xb6,0xc1,0x98,0xfb,0xf5,0x9d,0x93,0x95,0x76,0x11,0x80,0x41,0x44,0xd3,0x2f,0xf4,0xfd,0x92,0x1e,0xd7,0xa7,0x5f,0x02,0x4a,0xbc,0xb7,0x96,0x33,0xc0,0x0d,0x2d,0x97,0xb8,0xd4,0x67,0x7a,0x4c,0x74,0x93,0xa7,0x8d,0x68,0x78,0xed,0xc8,0xc9,0x02,0x6e,0xae,0x10,0x97,0x7c,0x56,0x11,0x2a,0x29 +.byte 0x87,0x5c,0x21,0xec,0x75,0x9c,0x17,0x17,0x8d,0x45,0x08,0x31,0x36,0x64,0xc0,0xf7,0x95,0xb6,0x72,0xcf,0xac,0xd8,0x52,0x02,0x6f,0x3b,0x14,0x34,0x30,0xcc,0x39,0x7c,0xe4,0x1f,0x38,0x23,0xcf,0x1f,0xb7,0x7e,0x92,0x66,0xf7,0xda,0x9f,0x27,0xbb,0x83,0x45,0x71,0x67,0x63,0x6c,0x85,0x64,0x34,0xa8,0x93,0x5a,0x13,0x0c,0xff,0x8b,0x3a +.byte 0x2a,0x10,0x1d,0xb6,0x43,0xef,0x57,0xf3,0xf0,0x29,0x2e,0x59,0x72,0x2e,0xc3,0xb6,0xd3,0xd0,0xdd,0x17,0x19,0x82,0x49,0x05,0xd4,0xfc,0xd6,0x2e,0x5d,0xd7,0x0c,0xb6,0x18,0xd5,0x08,0xbb,0xe5,0x3b,0x2e,0x85,0x62,0xc0,0x1e,0xa3,0xb8,0x92,0x21,0x06,0xfa,0xf1,0x2d,0xab,0x62,0x67,0x62,0xee,0x13,0x7f,0x07,0xb6,0x24,0x64,0x94,0x4f +.byte 0x69,0xb9,0x7a,0xdc,0x23,0x5e,0x19,0x96,0xc5,0x4d,0xcb,0xee,0x2d,0x4a,0x7d,0x1d,0xd2,0x72,0x18,0x8f,0x43,0x8f,0x76,0xbf,0x30,0xd8,0xf1,0xfe,0x9c,0xe7,0x63,0x38,0xff,0x1a,0x3f,0x40,0xbd,0x73,0x66,0xf7,0xa9,0xd9,0x17,0x4a,0x8a,0x79,0x04,0x0e,0x20,0xe1,0x39,0x49,0xd9,0x30,0x9c,0x52,0xf9,0x14,0x8f,0xdc,0x9d,0x52,0xd5,0x34 +.byte 0xaa,0x58,0xfe,0x5d,0x68,0xcb,0xab,0x3b,0x3c,0x9e,0x25,0xde,0x6d,0xdd,0x58,0x0d,0x1b,0x99,0xa9,0xcc,0x26,0x4e,0xc0,0x3c,0x8b,0x1e,0xaa,0x52,0x3d,0x4d,0xb8,0x27,0xc1,0xd1,0xa2,0xaa,0x78,0xb9,0xee,0x5f,0x26,0x46,0x5f,0x41,0x0d,0xe1,0x70,0x7d,0xcd,0x3f,0x4a,0xca,0xb2,0xca,0x2f,0x36,0x1f,0x68,0xe6,0x66,0x8a,0xf6,0xe3,0x94 +.byte 0xe5,0xab,0x90,0xeb,0x2f,0xe8,0xb2,0x6c,0xa9,0x69,0xd2,0xe0,0x5f,0x4a,0x65,0xa8,0x6b,0xc1,0xfb,0x03,0x51,0x17,0x3b,0xf8,0xe0,0x67,0xc3,0x5a,0xe8,0x18,0xdf,0xc1,0xf8,0x7f,0x44,0x68,0x4a,0x01,0xbe,0xf8,0xa5,0x7a,0xb9,0x3b,0x0f,0x05,0x8e,0x4b,0x28,0x14,0x61,0x2f,0x2e,0xc7,0xf2,0x96,0xc7,0x60,0x99,0xc4,0xbf,0xe8,0x37,0x98 +.byte 0x00,0x34,0xf7,0x5a,0xd7,0x6f,0x90,0xc4,0x19,0xb5,0x07,0xd1,0x76,0x6e,0x65,0xcc,0xf6,0x51,0x88,0x5c,0x81,0x91,0xa8,0x4d,0xb7,0x33,0x53,0xb6,0x93,0x42,0x52,0x82,0xfa,0x2b,0xca,0xa0,0xbd,0xf3,0x09,0x2b,0x0f,0x09,0x02,0xdd,0x29,0x5f,0xa6,0x49,0x7b,0x97,0xe8,0x96,0xbf,0x6f,0x76,0xb7,0xa2,0x76,0x58,0xda,0x1d,0xb2,0xdb,0x6d +.byte 0x9d,0x3b,0x32,0x6e,0x9c,0xea,0x45,0xfd,0x33,0xeb,0x41,0x91,0x91,0x52,0x2b,0x68,0xa3,0xf3,0xc6,0x92,0x43,0x13,0x49,0x8a,0x10,0xb1,0x2f,0x9a,0x0f,0xe1,0x94,0x21,0x18,0x76,0x87,0xaf,0x50,0xe4,0x71,0x5d,0x0a,0xba,0x75,0xaa,0x17,0xf5,0x37,0xf2,0x84,0x9b,0x29,0xdf,0x44,0x60,0xd0,0xac,0xcf,0x25,0x87,0x66,0x64,0x1f,0x0d,0xba +.byte 0xb3,0xdb,0x14,0xb6,0x1f,0x00,0x70,0x98,0x83,0x1d,0x9e,0xbd,0xf9,0x17,0xf4,0x57,0xae,0xa8,0xae,0x7b,0xa7,0xde,0x1f,0x31,0xc6,0x29,0xb2,0xf7,0xef,0x36,0x31,0xe7,0x50,0x33,0x69,0x4e,0x8c,0xb5,0xe4,0xdd,0x74,0x87,0xc8,0xf5,0x22,0x1b,0x4b,0xec,0xc4,0xe1,0x5a,0x7d,0x5a,0xe8,0xb9,0x2f,0xf4,0xd1,0x83,0xa2,0xb7,0x97,0xe0,0x1e +.byte 0xf7,0x3a,0x74,0xef,0x5f,0xb3,0x30,0xce,0xfa,0x23,0xd5,0x98,0x56,0x19,0x24,0xb5,0xc7,0x60,0x8b,0x03,0x8e,0xe7,0xdf,0x2c,0x36,0x4c,0x3b,0x3b,0x84,0x45,0x97,0x40,0x29,0x30,0x98,0xc3,0xc0,0xa2,0xf0,0xdf,0x69,0x47,0x95,0x26,0xdb,0x6c,0xcc,0xff,0x2d,0x32,0xaa,0xa7,0xb8,0x6b,0x24,0xec,0xff,0x94,0x4d,0x36,0xdd,0x7b,0x4d,0xc5 +.byte 0x8d,0xe2,0x3c,0x14,0x5a,0x37,0x75,0x1f,0xd6,0x98,0x7d,0xd3,0xdc,0xb0,0x24,0x69,0xe7,0x65,0x60,0x2a,0xe7,0x00,0x5b,0x68,0x99,0xa0,0x9e,0x10,0xf0,0x5c,0xa8,0x39,0x85,0x59,0xde,0xe4,0x46,0xf3,0xde,0xda,0xc0,0xb1,0xd2,0xf1,0xd2,0x05,0xd5,0xd4,0x2c,0x2e,0x7e,0x44,0x5c,0x52,0x80,0x85,0xbb,0x54,0x97,0xb6,0xad,0x6d,0x57,0x49 +.byte 0xed,0x67,0xaf,0x27,0xb4,0x5b,0xce,0x0f,0x3c,0x58,0xa2,0x24,0x22,0xa2,0xcb,0xfc,0x4e,0x8e,0xc2,0x3c,0x32,0xc6,0x07,0xc4,0xc6,0xc0,0x50,0xc3,0xe3,0x1b,0x96,0x76,0x62,0xf9,0xea,0x5e,0xdc,0xc5,0x96,0xe8,0xaa,0x20,0x26,0xac,0x44,0xfb,0xf2,0x16,0x72,0x72,0x4c,0x5c,0xee,0x51,0x07,0xb0,0x74,0xf6,0xde,0xd7,0x5d,0x73,0xf4,0xe9 +.byte 0x0d,0x29,0x06,0x5f,0xca,0xe2,0xbb,0xa4,0x3e,0xdc,0xf7,0x74,0x99,0x53,0x7a,0x52,0x60,0x46,0xaa,0xf0,0x34,0x97,0x0c,0x81,0x5b,0xd8,0x95,0x52,0x76,0x55,0xcb,0xc4,0x6d,0x50,0x26,0x3f,0x7e,0xc2,0x93,0x6e,0x14,0x0c,0xd7,0x49,0x5f,0x52,0x8f,0x34,0x49,0xb4,0xe7,0x12,0xfe,0xae,0xd1,0xfa,0xfc,0xc5,0x80,0x38,0x26,0x9c,0xf1,0x81 +.byte 0x01,0x58,0x15,0x99,0x29,0x8d,0x1b,0x2d,0x74,0xca,0xf1,0xf4,0xfa,0xcd,0xae,0xfa,0xa9,0x1d,0xbb,0xf1,0x55,0x2e,0x69,0x46,0x6e,0xe4,0x91,0xa3,0x48,0xb5,0xaa,0xb3,0x85,0xab,0x14,0xd2,0x84,0x8c,0xb1,0xb6,0x0c,0xa5,0x4a,0x90,0xed,0x6e,0xdf,0x1e,0x15,0x36,0x7b,0xa3,0x59,0xd6,0x8d,0x7d,0x7b,0x12,0x7c,0x9a,0x40,0x8a,0x28,0xde +.byte 0xb5,0xbc,0xc4,0x52,0x96,0xfb,0x62,0x1f,0xc9,0xe0,0xc9,0x1d,0xc7,0xc4,0xcb,0x8a,0x96,0x21,0x42,0x7c,0x0a,0xdd,0x42,0x74,0xcf,0xc4,0x57,0x8f,0x28,0x0a,0x7c,0x4f,0x49,0x5a,0xc6,0x21,0xb2,0xd4,0xd0,0x61,0xa5,0x35,0xbd,0x4a,0x0c,0x16,0x68,0x1f,0xe3,0xff,0x3f,0x72,0xf0,0x1d,0x50,0x26,0x48,0x91,0x27,0x1b,0x2b,0x0d,0x8b,0xf2 +.byte 0xa0,0xc0,0xa0,0x5d,0xdb,0xcf,0x71,0x41,0x83,0x00,0xb9,0x3c,0xe0,0x4a,0x96,0x43,0xf8,0x64,0x0f,0x42,0xc5,0x75,0xec,0x26,0x62,0x99,0x13,0xeb,0xf9,0xa6,0x86,0xe4,0xc9,0xaf,0x3c,0x2c,0xc9,0x4f,0x89,0xf4,0xc0,0x46,0x99,0xb8,0xd1,0x9e,0x7b,0xb7,0x41,0x0a,0x5f,0x40,0x98,0x65,0x29,0xdd,0x60,0x6b,0x27,0xbf,0x66,0x08,0x32,0xc2 +.byte 0xcf,0xea,0x91,0x44,0x45,0x49,0x1c,0xb4,0x16,0x7f,0x11,0x1a,0x8c,0xb4,0x59,0x54,0xc6,0xcf,0x40,0xd2,0xe9,0xc1,0x54,0x9c,0xe2,0x6e,0xd5,0xfe,0xfb,0x4a,0xa3,0x98,0x63,0xef,0x86,0xe0,0x63,0x30,0x32,0x5a,0xbd,0xd4,0x7c,0xe8,0xbe,0xf1,0xed,0xa2,0x19,0x98,0xc8,0x34,0x65,0x4c,0xef,0x1a,0xb3,0xbc,0x87,0xbe,0x6b,0x75,0x2c,0xe5 +.byte 0x54,0xcc,0xe5,0x69,0xb2,0xc8,0xdb,0x57,0xf8,0xa7,0x82,0x07,0xf7,0x20,0x95,0x7f,0x6d,0x7b,0x33,0x66,0x67,0xa1,0x38,0x0e,0x9c,0x3b,0x22,0xab,0xc1,0xd3,0xed,0x87,0x32,0xfb,0x4a,0x5d,0xad,0x3a,0xe1,0x90,0xa6,0xe3,0x4d,0x6b,0x00,0xe4,0x5c,0x66,0x59,0x90,0x63,0x24,0x5b,0xe1,0x3b,0x69,0xb6,0xc9,0x05,0x83,0x3a,0x7b,0xf4,0xa5 +.byte 0xc8,0x47,0xf9,0x8e,0xab,0x92,0xbd,0xd3,0x41,0xc7,0x61,0xf4,0xce,0x30,0xdb,0xae,0x27,0x69,0x0f,0xcc,0x69,0x50,0xe8,0x18,0xf2,0x39,0x04,0x5a,0x29,0x12,0x61,0x46,0x5c,0x1b,0x2e,0x15,0x9c,0xfa,0x73,0x50,0xe3,0x51,0xda,0x4d,0x88,0x25,0xb2,0xff,0x55,0x27,0xce,0x86,0xca,0xe6,0x2a,0xb8,0x0c,0xa7,0xd0,0x06,0xbf,0x70,0xb5,0x6b +.byte 0x80,0x44,0x65,0x5d,0x23,0xfa,0x0d,0x74,0x5c,0xfc,0xc7,0x86,0x5e,0x23,0x8a,0xf1,0xff,0x80,0xf0,0x19,0xaa,0x98,0xae,0x56,0xcf,0x12,0x74,0x6c,0x70,0xb2,0x39,0xbe,0x66,0x71,0xee,0xe3,0x43,0x3b,0xfa,0x79,0xa9,0x7e,0x69,0x6a,0x19,0x42,0xd5,0x0e,0x1e,0x92,0xfe,0x8a,0x0f,0xca,0x74,0xf2,0x68,0x71,0xf5,0xcb,0x05,0x94,0xc1,0x06 +.byte 0x1b,0xae,0x55,0xe9,0x16,0x03,0xa9,0x97,0xad,0x49,0xaf,0x88,0x8c,0x26,0x33,0x4d,0x46,0x75,0xb3,0x9c,0xee,0x70,0xe1,0x57,0x43,0xeb,0x59,0xff,0x77,0x89,0x8a,0x77,0x3f,0x7e,0xe6,0xbe,0xa2,0x05,0xb1,0xe3,0x41,0x5e,0xc7,0xd4,0x14,0xda,0xc0,0x84,0xd0,0x05,0x50,0xdd,0x62,0xdb,0x4c,0x3b,0x16,0xb0,0xe0,0xf5,0x2b,0xf1,0x83,0xea +.byte 0x7b,0x89,0xbb,0xde,0x57,0xdb,0xc0,0xb9,0x7d,0xdf,0x53,0x0f,0x6c,0xc5,0x5a,0x0b,0x36,0xeb,0xa3,0xc3,0xe6,0xc5,0x80,0x98,0xf3,0x87,0x29,0x97,0xc9,0x2e,0xd6,0x3b,0x43,0x2a,0x36,0x3b,0xba,0x43,0x85,0xf5,0x0d,0x18,0x2e,0x78,0x43,0xae,0xa4,0x24,0x6d,0xdc,0xab,0x05,0x94,0x09,0x94,0x27,0x17,0xef,0xbc,0x7e,0x52,0xa4,0x80,0xda +.byte 0x28,0xf5,0xc3,0x20,0x99,0xbb,0x5d,0xb6,0x7e,0x0e,0x59,0x3b,0x5e,0x1d,0x1b,0x4f,0xd1,0x91,0xe4,0xe4,0xc7,0x35,0xc7,0x2e,0xc1,0xba,0x60,0x05,0xa4,0xd5,0xca,0x5f,0x09,0xbf,0x79,0x06,0xcb,0xa7,0x32,0x7c,0xf4,0xdc,0xa8,0xb3,0x8b,0x26,0x59,0x6d,0xcb,0x74,0x37,0x56,0x51,0x96,0x0b,0x44,0xf1,0x95,0x16,0xe3,0x9b,0x9b,0x3b,0xb3 +.byte 0xea,0x6a,0x1b,0x76,0x99,0x69,0xd6,0x5b,0x10,0x5a,0x91,0x23,0xb5,0xc3,0xf9,0x6a,0xba,0xc4,0xe6,0x18,0x28,0x50,0x9d,0x09,0x14,0xbe,0xed,0x73,0xd2,0x51,0xff,0xf8,0x14,0x2b,0x8b,0xdd,0x2a,0x1a,0x8e,0x48,0xae,0xd8,0xdf,0xb9,0x5b,0xcb,0x8f,0xc2,0x8c,0xd6,0xb3,0xfb,0x40,0x2f,0xb0,0x6c,0x9a,0xea,0xd0,0x14,0x8c,0xc5,0xc7,0xc7 +.byte 0xf8,0xf5,0x4f,0xe2,0xd7,0x41,0xcd,0xb6,0x34,0x3e,0x81,0x19,0x09,0xa2,0x51,0xb4,0x60,0xfb,0xf2,0x6c,0xe6,0xae,0x68,0x47,0xb9,0x93,0x7b,0xc9,0xe7,0x00,0xc4,0xa7,0xf2,0xef,0x8b,0xd8,0xfc,0x9f,0xe5,0x6d,0x48,0xe2,0x6c,0x32,0x73,0x5c,0x30,0x7c,0x12,0x13,0xca,0xc3,0x31,0xc3,0xa2,0xb4,0xf7,0x23,0xc4,0xd0,0x47,0x39,0x93,0xc8 +.byte 0xa0,0x7b,0xb4,0x09,0x3f,0xe8,0x15,0x15,0x9c,0xa7,0xe6,0xa8,0xbe,0xba,0x60,0xf9,0x28,0x88,0x66,0x7b,0x62,0x32,0x17,0x18,0x68,0x87,0x53,0xf5,0xbc,0xf5,0x77,0x17,0xa1,0x3f,0x62,0xd1,0x10,0x0a,0x54,0x96,0x9c,0x31,0xc3,0xb7,0x1d,0xaf,0xc7,0xb3,0x27,0x9e,0x46,0xfe,0x7e,0x9b,0x88,0xf2,0x9e,0x6e,0x19,0x0f,0xb1,0x88,0xe4,0x08 +.byte 0x76,0x7c,0x77,0x46,0x09,0xa7,0x9e,0xf4,0xd9,0xbf,0x67,0xe8,0x9d,0x6a,0x75,0xa7,0xf5,0xee,0x29,0xba,0x84,0xa0,0x44,0x46,0x35,0x4c,0x22,0xef,0xb3,0xea,0xb0,0xf2,0xd6,0x78,0x20,0x97,0x28,0x5c,0x7e,0x90,0x06,0x80,0x19,0x63,0xa4,0x8a,0xef,0x0a,0xea,0x88,0xa9,0xa2,0xae,0x23,0x2e,0x40,0xce,0xc5,0xc2,0xbf,0xfe,0x5a,0x8f,0x14 +.byte 0xb8,0x66,0x1a,0x2d,0xdb,0x43,0x39,0xbd,0xe7,0x7b,0xbc,0x41,0x58,0x74,0x56,0xd1,0xe7,0xd0,0xba,0x24,0xd2,0x41,0xbf,0xd0,0x4e,0x97,0x38,0x8f,0x6b,0x6f,0xe2,0x7d,0x6d,0x32,0x94,0x43,0xa7,0x66,0xf7,0x90,0x21,0xe0,0xdd,0x19,0x48,0x72,0xc1,0xa5,0xbc,0x9c,0xe2,0xdd,0x2c,0x6e,0x50,0x45,0x2c,0xa0,0x95,0xcb,0x1d,0x2c,0x1d,0xa6 +.byte 0xbe,0x9c,0xd4,0x6c,0x07,0x2e,0x5e,0xc8,0xc1,0x05,0x61,0x7d,0x44,0x28,0xe6,0xad,0xf0,0x9d,0x2d,0x3d,0xce,0x90,0x7d,0x79,0x2e,0xf3,0x08,0xbe,0x7a,0xa9,0x58,0x04,0xa7,0x39,0x05,0xdd,0xb4,0x87,0x6c,0x7b,0xd5,0xb3,0x2d,0x6b,0x43,0xf4,0x37,0xd9,0x6f,0x5c,0xa2,0x23,0x92,0x53,0xb9,0xd7,0x1b,0x2d,0x5d,0xcd,0x6d,0x3f,0xef,0xc8 +.byte 0x66,0x91,0x10,0x1b,0xc5,0x24,0x50,0x87,0x70,0x93,0x03,0x3f,0x7b,0x40,0xc8,0x0c,0x9b,0xec,0x3d,0x82,0x27,0x96,0x2a,0xbe,0xca,0xaf,0x1b,0xbf,0xef,0x14,0x0c,0xdc,0xa6,0xc7,0x48,0x18,0xce,0x8e,0x43,0x58,0x97,0xb3,0x5e,0xd6,0xc9,0x70,0x65,0xd0,0x0e,0x17,0xac,0xa0,0x6b,0xc9,0x55,0x30,0x12,0x7c,0xbe,0xe5,0x46,0xfc,0xd8,0x3f +.byte 0x0e,0xd7,0x96,0x16,0x32,0x8e,0xb7,0x2d,0x07,0xd1,0x26,0x98,0x70,0x4c,0xb1,0x6f,0x92,0x32,0x75,0x4f,0x57,0x6b,0x78,0xe0,0xc5,0x9b,0xf0,0x08,0x59,0x0b,0xfa,0x2d,0x79,0xbe,0xde,0x44,0x3d,0x65,0x77,0x27,0x3b,0xd9,0xea,0x55,0x79,0x22,0xe8,0xf7,0x62,0xb1,0xe3,0x32,0x4e,0x03,0x17,0x65,0xd3,0x5d,0xee,0xa0,0x9b,0xc2,0xbd,0x9f +.byte 0xcd,0xdc,0xde,0xd7,0x6c,0x95,0x7a,0xf1,0x09,0x4c,0x14,0xb9,0x37,0x1d,0xd0,0xdd,0x4b,0x2e,0x93,0x0b,0xfa,0x08,0x40,0x01,0x36,0xdf,0x89,0x46,0xa6,0xbb,0x19,0xd9,0x4f,0xf9,0xe1,0x7b,0x03,0xc9,0xef,0x01,0x25,0xe9,0x6d,0x95,0x84,0x7f,0xf8,0x8e,0x02,0xfd,0x6f,0x30,0xed,0x1b,0x98,0xd0,0xb3,0xdd,0x92,0x65,0x46,0x49,0x61,0xde +.byte 0x76,0xf5,0x4b,0x29,0x03,0x6f,0x79,0xee,0xbe,0x7a,0x07,0x6e,0xa8,0x29,0xb8,0x03,0xb4,0x6c,0x50,0x1f,0x4a,0xa2,0xaf,0xbd,0xde,0x18,0x72,0x90,0xa2,0x12,0xa9,0x59,0x7b,0xf6,0x96,0x2d,0xda,0x3d,0x90,0xba,0x7c,0x79,0x3e,0x6e,0xef,0x94,0x37,0xe2,0xef,0x6b,0x2a,0x74,0x6b,0x52,0xa0,0xc2,0x1e,0xa1,0x24,0x59,0x84,0xeb,0xdc,0xd0 +.byte 0x34,0x60,0xa8,0x81,0xaf,0xdd,0x57,0xc2,0xa6,0x02,0x7f,0xcf,0x9e,0x64,0x28,0x18,0x7c,0x95,0x98,0x90,0x7a,0x76,0x3f,0x78,0x16,0x2c,0xe0,0xa7,0xdf,0x0d,0x4d,0x5e,0xcc,0x0d,0x73,0x12,0x26,0xd7,0xe9,0x32,0x3e,0xa1,0xa9,0xde,0x29,0xb2,0x3b,0x6f,0x3b,0x6e,0x12,0x0c,0x10,0x34,0x86,0xf2,0xa0,0xd4,0x9c,0xf6,0x14,0x5a,0x41,0x06 +.byte 0x31,0xb1,0xe4,0x31,0x52,0xf4,0xcb,0xe3,0x39,0xcd,0x0b,0xc2,0xca,0x90,0xba,0xb3,0x21,0xbf,0x94,0x13,0x75,0x3b,0x0e,0x0a,0xc0,0x05,0x35,0xe6,0x28,0x74,0x63,0xc5,0x34,0x44,0xd8,0x9a,0x0e,0xec,0xb3,0x1b,0x30,0x58,0xfc,0xa0,0xc4,0xd1,0x26,0x50,0x6b,0x22,0x88,0xfc,0xad,0xa9,0xb4,0x3e,0x36,0xb6,0xb1,0x6d,0x62,0x7e,0x60,0x8f +.byte 0xf5,0x17,0x65,0x1c,0xf6,0x51,0x4d,0x89,0x4a,0x7e,0x5d,0x23,0x3b,0x83,0x1f,0xa6,0xc8,0xd2,0x1a,0x90,0xd3,0x53,0xfc,0x48,0x64,0x94,0x6e,0x1c,0x72,0xef,0x5d,0xd4,0x23,0xa2,0x3a,0x93,0xe4,0x29,0x33,0x8a,0xbd,0xe5,0x17,0xc2,0xe9,0x18,0x6a,0x81,0x1e,0x5b,0x03,0x41,0x45,0x35,0x14,0xe7,0xc8,0x45,0x5c,0x37,0x69,0x77,0x62,0xf8 +.byte 0xd7,0xec,0x9d,0x62,0x2e,0xfa,0x43,0x3a,0xdc,0x8b,0x86,0x86,0x1b,0x31,0x71,0x0e,0x92,0x59,0xf7,0xef,0x96,0xfd,0x04,0x1e,0x1d,0x74,0x7d,0x08,0x06,0x21,0x54,0x39,0xd3,0x9f,0x30,0xa1,0x19,0x7f,0xc8,0x19,0x16,0xd1,0x21,0x2a,0xf3,0x21,0xce,0x19,0x1a,0xde,0x70,0x1b,0x87,0x05,0x9e,0xe8,0xf3,0xfd,0x1d,0xaa,0x61,0x6c,0xfb,0xdf +.byte 0x50,0x9a,0xa0,0x32,0x4e,0xe4,0x68,0xda,0x0e,0x2f,0x2a,0x70,0xe1,0x51,0x66,0xb4,0x2d,0x5b,0xb6,0x32,0x3f,0xcb,0xc0,0xaf,0x01,0x03,0xcd,0xd6,0xb8,0x4e,0x3d,0x24,0x17,0xe2,0x30,0x3b,0xa4,0x08,0x0e,0x6a,0xcf,0xbe,0xc2,0x5c,0x79,0x5d,0x25,0xe2,0xae,0xa7,0x7f,0x42,0xff,0xa9,0xa5,0x05,0xbf,0xf4,0x92,0x30,0xaa,0x1d,0x96,0x7a +.byte 0x49,0xbc,0x1c,0xaa,0x5c,0x8d,0xe8,0xf3,0xd3,0x1a,0x67,0x7f,0x47,0x09,0x90,0x35,0x82,0x4e,0xcc,0x2e,0x50,0xfe,0x2c,0xb9,0x29,0x39,0xff,0x49,0x8f,0x7e,0x89,0x8d,0x4a,0x15,0xd1,0xd6,0x83,0xdb,0x25,0xac,0xc1,0x81,0x23,0x70,0x3f,0xb9,0xce,0x7f,0x03,0x46,0xa8,0x39,0xab,0xff,0x71,0xc9,0x7b,0x3c,0xb3,0x5e,0x9f,0xfe,0x8a,0x0a +.byte 0x39,0xad,0x6a,0xc1,0x8e,0x5a,0xa8,0x71,0xb7,0x01,0x25,0x28,0x15,0xd9,0x0a,0xae,0xc1,0xf9,0x23,0x1c,0xc1,0xe8,0x86,0x1d,0xb8,0x71,0x6e,0xa2,0xa4,0x67,0x22,0x4d,0x0e,0xd2,0xaa,0x70,0x26,0x23,0xfc,0x15,0xed,0x67,0x11,0x87,0x69,0x6f,0xc6,0x4c,0xe1,0x4b,0x04,0x86,0xe9,0x56,0x40,0xea,0x07,0xb1,0x6f,0xe9,0x8f,0xdd,0x2f,0xce +.byte 0x8d,0xca,0x0a,0x58,0x01,0x44,0x2c,0x74,0xd0,0x14,0x07,0x9a,0xb7,0x5a,0xc1,0xea,0xa9,0xdd,0xa4,0x94,0x84,0xc2,0x11,0xa5,0xe2,0x00,0xd8,0xfc,0x77,0xb9,0x5e,0xe6,0x72,0xef,0xc5,0x38,0xe0,0x90,0x11,0x16,0xfd,0xa7,0x77,0xbd,0x4c,0x1d,0xeb,0x32,0x54,0xdb,0x2a,0x43,0xa1,0x87,0xbb,0x2e,0x79,0x22,0x4d,0xb3,0xdf,0x1a,0xee,0x75 +.byte 0xb0,0xdd,0xf2,0x09,0x05,0xf4,0x6a,0x3c,0x86,0xc6,0xe7,0x60,0x2a,0xee,0xb6,0x55,0xae,0xdc,0xce,0xf8,0xe4,0xd7,0xdf,0x72,0x42,0x91,0x6d,0xc4,0xd8,0x60,0xf1,0xe8,0x06,0x71,0x38,0xa3,0x03,0x3e,0x1b,0x14,0x47,0x74,0x93,0xb5,0x61,0x28,0xde,0x23,0x8f,0xbe,0x88,0x5e,0xdf,0x87,0x47,0xd4,0x5f,0x91,0x40,0xeb,0x02,0xda,0x27,0x3b +.byte 0x65,0x9f,0xd8,0xf1,0x78,0x7f,0xba,0x9b,0x35,0xb3,0x10,0xaf,0x7f,0x51,0x37,0xa5,0x63,0x64,0x1f,0xf1,0xc3,0x1b,0x9e,0xe4,0xdd,0x93,0x8c,0x3a,0x98,0x20,0x9a,0x75,0x22,0x7b,0x48,0x0a,0x9d,0x55,0xed,0x07,0x1a,0x79,0x3b,0x98,0xe3,0x16,0x9b,0x16,0x2c,0xb2,0x03,0xc1,0xf5,0x6c,0xac,0x00,0x6a,0xb6,0xc1,0xc2,0x49,0x4d,0x9d,0xf5 +.byte 0x0e,0x7b,0x60,0x09,0xcc,0xa7,0x35,0xbb,0x70,0x34,0x18,0x49,0x2c,0xf1,0x41,0x4f,0xce,0x68,0x03,0x60,0x14,0xa7,0x2e,0x59,0x0f,0xa2,0xc4,0x2f,0x33,0xf0,0xb6,0xa4,0x31,0x75,0xdc,0xb4,0x88,0xe4,0xe3,0x0e,0x4b,0x3f,0x58,0xd0,0xa4,0xea,0x9a,0xef,0x47,0xb7,0xf7,0x20,0x71,0x52,0xd3,0x8a,0x1c,0xd9,0x2d,0x88,0x05,0x03,0x8a,0x1c +.byte 0x3d,0x69,0xf0,0x39,0xf0,0x25,0xad,0x95,0xd4,0x47,0x3c,0xbb,0xfa,0x48,0xd7,0x8e,0xf5,0xdc,0x33,0x43,0x0a,0xbb,0xf0,0xd3,0xb1,0xc3,0x94,0x81,0xcd,0x22,0x79,0xdc,0xd0,0x92,0x8b,0xd3,0xc3,0xac,0x73,0x72,0x83,0xaa,0xa2,0x52,0x13,0x27,0x0e,0xc5,0x8c,0xa5,0x69,0x21,0x6e,0x9c,0x9d,0x9b,0xeb,0x7a,0x19,0xfe,0xb6,0xdb,0x4e,0xc1 +.byte 0xa6,0xec,0x42,0xb0,0x86,0x69,0x60,0xde,0x36,0x11,0x6a,0x86,0xd7,0xbf,0x15,0x48,0xa2,0x73,0x8f,0x68,0xde,0xd6,0xb2,0x6d,0xe0,0xc5,0x1f,0x1f,0xd5,0xc5,0xef,0xce,0xa1,0x90,0x5c,0xe6,0x6c,0x15,0x73,0xa7,0xcc,0x2d,0xe8,0xcf,0x4c,0xc8,0x17,0x3c,0xfa,0x5e,0xdb,0x4f,0x54,0xf3,0xa3,0xff,0x50,0x3e,0x42,0x60,0x0d,0xf3,0xf7,0xbb +.byte 0xc6,0xf5,0xe7,0x63,0x50,0x49,0xc1,0x94,0x60,0x68,0xbd,0x62,0xc0,0x81,0x80,0x16,0xfd,0x65,0xfb,0x2e,0x23,0x67,0xb3,0xb6,0xf8,0x95,0xfa,0x00,0x3f,0x1d,0x10,0x16,0xd5,0xd9,0x66,0xf8,0x25,0xb4,0xce,0xf2,0x2e,0x4f,0xa2,0x21,0x14,0xbd,0x2c,0x63,0xec,0x44,0x57,0x07,0x87,0x3c,0x2f,0x22,0xcf,0x48,0xd3,0x20,0x51,0xfc,0x5d,0xd5 +.byte 0x9f,0x67,0x9c,0xaf,0xe3,0x89,0x36,0xc5,0xfa,0x7c,0xca,0x07,0xdc,0x56,0x2a,0x4e,0xa5,0x76,0xe6,0x09,0x99,0xfb,0xb7,0xba,0xaa,0x0b,0x9c,0xe2,0x0f,0x73,0xab,0x9b,0xbe,0x6f,0x50,0xe3,0xf7,0x28,0x32,0xf2,0xab,0x86,0xa3,0x89,0x3a,0xea,0xd7,0x52,0x52,0x6e,0xed,0x1b,0x94,0xf0,0x59,0x9d,0xbb,0x7a,0x88,0x6f,0xbf,0xaf,0x6a,0x87 +.byte 0x47,0x34,0x7f,0xf4,0x8b,0x0d,0x33,0x12,0x2b,0x67,0x6b,0xc9,0x1d,0x18,0x23,0x2e,0x54,0xee,0x07,0x28,0xbd,0x9d,0xa1,0xaf,0x85,0x7a,0x0f,0xe5,0x5d,0xf7,0x8b,0xca,0xd9,0x3d,0x8f,0x4f,0xcc,0xce,0xc3,0x6e,0x3a,0x40,0x08,0xd2,0x14,0xf0,0x28,0x9b,0xc0,0x4a,0x7a,0x3c,0xc2,0xed,0xe0,0x20,0x04,0xf5,0xf9,0xee,0xb8,0x35,0x94,0xbc +.byte 0x53,0x46,0xf2,0x1a,0xab,0xe9,0xde,0xd8,0x27,0x67,0x0d,0x63,0x2a,0x7b,0x3a,0x38,0x91,0xbc,0x48,0x2c,0x38,0x09,0xa0,0xe3,0x66,0xe3,0xeb,0xb9,0x02,0x2d,0x80,0x87,0x81,0x4f,0x5c,0x1c,0xfd,0x2b,0x0f,0x99,0x37,0x3a,0xfa,0x0f,0x8e,0x8c,0x87,0x76,0x72,0xd3,0xcf,0xc8,0x1e,0x8a,0x3b,0x97,0xa0,0xe6,0x32,0x66,0x3c,0x55,0x2c,0xfb +.byte 0xa9,0x41,0xfd,0xf9,0xd4,0x50,0xe0,0x5b,0x03,0xb7,0x1e,0x49,0xfa,0x59,0xeb,0x55,0xb1,0x21,0xd0,0x52,0xeb,0xe6,0x0f,0x21,0x81,0x4f,0x82,0x9a,0x8f,0x67,0x3d,0x0d,0x1d,0x11,0x1f,0x70,0x59,0x09,0x87,0x99,0xe5,0xf2,0x89,0xa6,0x56,0x8d,0x52,0x55,0xa8,0x91,0x5d,0x51,0x48,0xec,0x66,0x05,0xd6,0x18,0xd1,0x61,0x02,0x5a,0x80,0xcc +.byte 0xee,0xf3,0x3b,0x8e,0x73,0x2a,0xb1,0x22,0xda,0x1d,0xca,0xb2,0xd6,0x7f,0xd7,0x7d,0xaf,0x23,0x8d,0xff,0x24,0x8e,0x5e,0x38,0x29,0x23,0x1f,0xbc,0xfd,0xe4,0x3d,0xcd,0x66,0xe3,0xe1,0x0f,0x85,0xe3,0xda,0x34,0xc6,0xba,0x60,0x5f,0xaf,0x32,0x79,0x34,0xc0,0x01,0x93,0xae,0x1e,0x72,0x7f,0xd2,0x32,0xa1,0xdc,0x0b,0xca,0xee,0x5a,0x7a +.byte 0x09,0x98,0x2a,0x46,0x0a,0xe7,0xfd,0x0f,0x76,0xa0,0x3b,0x2b,0x3d,0xe5,0xcd,0x04,0xa2,0x5e,0x9b,0xba,0x4a,0xd5,0x0a,0xce,0x94,0x77,0xbb,0x24,0xa4,0x12,0xbc,0x24,0xb6,0x60,0x40,0x62,0xd2,0x70,0x0e,0x3f,0x62,0x72,0x2f,0xa1,0xc9,0x12,0x03,0x0f,0x39,0x57,0x77,0x7c,0x5c,0x31,0x13,0xcb,0x8c,0x2c,0x84,0xfd,0x7b,0x6f,0x60,0xbb +.byte 0x1a,0x0b,0x65,0x8c,0xc1,0xe6,0x4b,0x60,0x8c,0xe7,0x3e,0x94,0x2a,0xcc,0x70,0x9f,0xd0,0xfd,0x00,0x0e,0x36,0xb2,0xf1,0x62,0x78,0x6a,0xc8,0x9b,0xbe,0x8b,0x54,0xa7,0xad,0xee,0x3e,0x8e,0x1c,0x23,0xbe,0xa2,0x73,0x43,0xbe,0x15,0x32,0x84,0xdd,0x22,0x75,0xd5,0x9a,0xfb,0x93,0x38,0x55,0x2f,0xa4,0x34,0x4c,0x33,0xc3,0xd7,0x7c,0x9f +.byte 0x42,0x2f,0x9f,0xf6,0x27,0x90,0x15,0x6b,0x14,0x4f,0xbc,0x4b,0x07,0x42,0x24,0x98,0xa6,0xc4,0x4c,0x2f,0x22,0xd9,0x80,0x99,0x97,0x6b,0x7d,0xe8,0x2b,0x31,0x37,0xfe,0xd1,0x8b,0xbd,0xbf,0x08,0x4a,0x56,0x3d,0xff,0xb5,0x12,0x6d,0xc4,0xcf,0xbc,0x75,0xe9,0xe6,0x6f,0x1a,0x30,0x34,0x5b,0x2c,0x1d,0x8f,0x85,0xa0,0xe8,0xfd,0xfd,0xe2 +.byte 0xe7,0x13,0x73,0xcd,0x63,0x63,0x90,0xa5,0xa4,0x3f,0x91,0x65,0x77,0xd4,0xed,0x0c,0x1d,0x06,0x95,0x93,0x74,0x85,0xec,0x31,0xde,0xc9,0xb9,0x2e,0x7c,0x6d,0x2c,0x0d,0x15,0xb7,0x6b,0x0c,0xd2,0xe8,0xa8,0xcb,0x90,0x5c,0x11,0x53,0xc5,0x9d,0x54,0xf4,0x90,0xf7,0xc8,0x17,0x65,0xc0,0x3f,0xea,0xf6,0x28,0x8e,0xf0,0x1c,0x51,0xcc,0xfd +.byte 0x99,0x67,0x3d,0xa5,0x82,0x1f,0xb3,0x75,0x08,0x27,0x85,0xa9,0x7b,0x54,0x91,0x6e,0x80,0x9a,0xdb,0x6c,0x17,0x4a,0x36,0x73,0x0e,0x61,0x2e,0x01,0xae,0x32,0xf8,0x54,0xdb,0xcf,0x24,0xa5,0x13,0xb1,0x7e,0x0b,0xf5,0xe7,0x0e,0x27,0x9a,0xef,0x01,0x0b,0x34,0x4f,0x91,0xc2,0x93,0xe0,0xe6,0x14,0x64,0xf8,0x7b,0x41,0x37,0x22,0x39,0xad +.byte 0xf4,0xa9,0x3b,0xfb,0x7e,0x2b,0xd8,0x2b,0x0f,0x7e,0x40,0x55,0x5a,0x48,0x61,0x2f,0x95,0x5e,0x5c,0x25,0xe5,0x06,0x89,0x17,0x23,0xb6,0x1b,0x38,0x2e,0x7b,0x45,0xa5,0x11,0x0a,0x8d,0xd3,0x8d,0xb6,0x8d,0x47,0xc5,0x4f,0x8f,0x8b,0xe2,0x03,0x85,0xa1,0x5a,0xa2,0x8d,0xca,0x4d,0xef,0xc9,0xde,0x7d,0x06,0xa1,0x3f,0x21,0xb9,0x38,0x7b +.byte 0x91,0xf7,0x5c,0x9f,0x97,0xe3,0xeb,0x5d,0xea,0x5e,0xc1,0xa5,0x30,0xb0,0x7f,0xe0,0x4c,0xef,0xe5,0xe3,0xa0,0x2d,0x23,0xb6,0x08,0x21,0xe6,0x67,0x35,0x82,0x07,0x59,0x02,0xd4,0x68,0xa5,0xf1,0x42,0x70,0xb4,0x5e,0x54,0xed,0x1e,0x99,0xb2,0x55,0xf1,0x69,0x2e,0x7c,0xaa,0x6c,0x5e,0xd4,0xfa,0x16,0xa7,0x1f,0xdb,0x46,0x70,0x65,0x26 +.byte 0x98,0xf1,0xb6,0x42,0xb3,0x48,0x99,0x7c,0x07,0xbe,0x2b,0xee,0xb4,0xc1,0xf0,0xb7,0x47,0xf8,0xcf,0xe4,0x8d,0x34,0xa6,0xe5,0x17,0x9a,0xb7,0x2c,0x2e,0x03,0x30,0xfd,0xfb,0x42,0xe7,0xa1,0xe0,0x34,0x49,0x64,0xd8,0x0c,0xd5,0xb8,0x77,0x9f,0x0e,0xe2,0x73,0x0d,0x20,0x0c,0x21,0x07,0xaf,0x0f,0x93,0x94,0xd6,0xdc,0xe3,0xac,0x8d,0x8e +.byte 0xae,0x87,0xbd,0x2c,0x19,0x66,0xef,0x90,0x4a,0xd9,0xb0,0xf6,0xac,0x3a,0xe2,0xb5,0x2e,0xb4,0x63,0x91,0xf1,0x8b,0xac,0xce,0x51,0xc2,0xe0,0x02,0x7d,0xf8,0xab,0xe4,0xd6,0x85,0xd6,0xbb,0xd7,0x72,0xd0,0x5f,0x4e,0x90,0x09,0xcc,0x51,0xee,0x5b,0xad,0xb2,0xf6,0x16,0x37,0x09,0xa8,0xfc,0x74,0xa5,0x2e,0x26,0x27,0xff,0x53,0xd4,0x45 +.byte 0x82,0xb1,0xb6,0x16,0x65,0xc6,0xbb,0x54,0x0b,0x89,0xa1,0x0e,0x09,0x7c,0xc9,0xc9,0x48,0xa7,0x51,0x78,0x1d,0x3a,0x30,0xc5,0xe7,0x02,0x9e,0x91,0xd6,0x39,0xc8,0x35,0xf0,0x33,0xab,0xf6,0x0f,0xf9,0xce,0xef,0x26,0x46,0x48,0x56,0xbc,0x45,0x44,0xe2,0xd7,0xfc,0xdf,0xb2,0x95,0x20,0x07,0xeb,0x47,0x1c,0xde,0x88,0x5e,0x08,0xee,0xa1 +.byte 0x56,0x9a,0x5d,0x8f,0x35,0xc5,0xb3,0xd3,0x7d,0xe3,0x25,0x82,0xcc,0xcb,0xad,0xd8,0xef,0x83,0x76,0x08,0x55,0x9e,0xf4,0x00,0x1f,0x92,0x24,0x0e,0xf6,0x96,0x98,0x34,0x10,0x10,0x93,0x27,0x3b,0x96,0xbd,0x75,0x45,0x9d,0xad,0xc1,0x79,0xa7,0x09,0x68,0x0a,0xbc,0x14,0xe9,0x62,0xf6,0x5e,0x4e,0x6d,0xfb,0xf2,0x25,0x20,0x8b,0x53,0xa6 +.byte 0xc2,0x31,0x71,0xaa,0xfa,0xa2,0x1c,0xa1,0xb3,0xa2,0xd7,0x22,0x5a,0x72,0x61,0x5c,0x30,0x75,0xcc,0x82,0xb0,0xd0,0x07,0x8c,0x95,0x11,0x57,0xa4,0xe2,0x42,0xf3,0x3d,0x87,0x56,0x45,0x38,0xd6,0x1b,0x2b,0x26,0x11,0x99,0xce,0xcc,0x2e,0x96,0x1b,0xa1,0x06,0xa1,0xa9,0x65,0xe1,0x1f,0x53,0xb6,0x1e,0x5c,0x44,0x40,0xa2,0xf2,0x03,0xe7 +.byte 0x39,0x24,0x59,0x5f,0xdd,0x30,0xf0,0x78,0x9f,0x34,0xf1,0xd3,0x5d,0x9a,0xdd,0xf9,0x02,0x16,0x4b,0xfa,0x8d,0xab,0x2f,0x96,0xdb,0x67,0xf6,0x1e,0x7a,0xf8,0xd8,0xe6,0x71,0xdc,0x1a,0xbf,0x44,0xd2,0xbd,0xb3,0x6d,0x47,0x69,0xe0,0x14,0xef,0xe5,0x5e,0x0a,0xe9,0x1a,0x8b,0x3f,0x67,0x1e,0x1c,0x37,0x86,0x25,0x02,0x52,0x3f,0xf5,0xde +.byte 0xe0,0xbe,0x1d,0x61,0x44,0x3d,0xd2,0xe9,0x26,0x3d,0x4b,0xa4,0xb1,0xb9,0x62,0xc5,0x70,0xfb,0x1d,0xaf,0xe6,0x19,0x97,0x0f,0x6e,0x6d,0x4e,0xdf,0x5f,0xc9,0xb2,0xb0,0xb9,0x4b,0x72,0xc7,0x60,0x5d,0xf8,0x7d,0x3b,0xd8,0x74,0x29,0xf2,0x56,0x25,0xd9,0xd9,0x12,0x3a,0x50,0x01,0x54,0xd3,0x0e,0x4c,0xbd,0xc9,0xf5,0x66,0xc4,0x4b,0xa2 +.byte 0x68,0x31,0xb1,0x9d,0x47,0xd8,0x28,0xce,0x6b,0xe4,0x5f,0x78,0x75,0x22,0x7d,0x44,0x08,0x71,0xfb,0xd8,0xa0,0x6e,0xd1,0xbd,0x64,0x4e,0x00,0x99,0xf7,0x85,0xad,0x31,0xde,0x5c,0x4c,0x7c,0xc3,0x89,0x49,0x9f,0xea,0x22,0x86,0xa0,0x48,0x48,0xcf,0x47,0xfb,0x68,0x04,0x4c,0x05,0x62,0x57,0x60,0x9b,0xa0,0x37,0x41,0x77,0xe4,0x7d,0x3e +.byte 0x36,0xda,0xd5,0xfd,0x68,0x47,0x8c,0x68,0x61,0x4c,0xea,0x38,0x20,0xa5,0xe4,0x12,0x6e,0xd5,0x14,0x37,0x01,0xcf,0xbd,0xdd,0x55,0x97,0xb4,0x30,0xf0,0x65,0x15,0xee,0x1f,0xc8,0x5b,0x07,0x82,0xae,0x43,0xad,0x11,0xda,0x0e,0x61,0x23,0x0a,0x5f,0x52,0xf9,0x9d,0xc5,0x98,0x4e,0xaf,0x77,0x21,0xc8,0x9f,0x6d,0x25,0x94,0x4f,0x91,0x1a +.byte 0xb4,0x2d,0xe3,0x15,0xe5,0xe6,0x25,0xb8,0x8e,0xd8,0x33,0xe3,0x05,0x01,0x7b,0x6b,0xa8,0x39,0x44,0x4b,0x58,0x3c,0x17,0x53,0x17,0x5c,0xbc,0xd5,0xcd,0xd4,0x29,0xe7,0x17,0x7a,0x69,0xa6,0x75,0x8e,0x0a,0x00,0x41,0xbe,0xb4,0x8d,0x79,0x1d,0xac,0x2a,0x0f,0x9b,0x7b,0x5a,0xe8,0x17,0xe2,0xb3,0x1d,0x03,0xde,0x5a,0x7c,0x31,0x18,0x8c +.byte 0x1c,0xf9,0x19,0x7b,0x37,0x1f,0x53,0x77,0xce,0x1f,0xad,0xb6,0x0d,0x21,0xe1,0xb0,0xf9,0x42,0x52,0x99,0x02,0xa8,0x58,0xab,0x94,0xf8,0x9f,0x99,0x2d,0x1e,0x68,0x4f,0x5a,0x91,0x2b,0xdf,0xe8,0xe6,0x34,0xb6,0x80,0x9b,0xb1,0x0e,0x87,0xec,0x29,0x17,0x4d,0x98,0x2d,0x40,0xd0,0xf7,0xca,0x55,0x9d,0x56,0x19,0xd5,0x7c,0x4e,0x2e,0x75 +.byte 0x5d,0xe7,0x3e,0xed,0x47,0xdc,0xb1,0x04,0xe5,0x61,0x0f,0xe7,0xc4,0x16,0x71,0xf4,0xf8,0x8a,0xf1,0xfc,0xd5,0xdb,0xeb,0x0b,0x82,0x0f,0xfe,0x64,0xa2,0xb0,0x53,0xab,0xf5,0x01,0xc2,0x8f,0xa0,0x4d,0x5d,0x1b,0x54,0x32,0x48,0xca,0x8a,0x42,0x59,0x4a,0x85,0x68,0x75,0xd1,0x1b,0x03,0x11,0xfe,0x28,0xd7,0xd5,0x37,0x81,0x7a,0xfb,0x84 +.byte 0xfd,0xa8,0x98,0x54,0xf7,0x81,0xb0,0x2d,0x2d,0x5d,0x95,0x0a,0x5b,0x80,0x13,0x95,0xad,0x8f,0x88,0xaa,0x38,0x7e,0xbc,0x88,0xc2,0xf6,0xa6,0x1e,0x6d,0x78,0xc9,0x4f,0xa9,0xb3,0xaa,0x23,0x0c,0x62,0x19,0x6f,0x26,0x5d,0xca,0x36,0x23,0xf8,0xd1,0x76,0x80,0x32,0x59,0xa0,0x47,0x86,0xee,0xc9,0x0f,0x1d,0x37,0xd9,0xc9,0x4e,0x65,0x22 +.byte 0x17,0x95,0x88,0x85,0xb3,0x8a,0x5d,0xb9,0xe6,0x3b,0x6c,0x02,0x81,0x61,0xe0,0xab,0x19,0x6c,0x9a,0x29,0x33,0xf1,0x7b,0x0c,0x22,0x16,0x0c,0xd6,0xfa,0xc2,0x84,0xe5,0x74,0x9e,0x8e,0xf8,0xdb,0x44,0x68,0xa0,0x58,0x52,0x9f,0xad,0xe6,0x2b,0x23,0x70,0xf3,0x6e,0xdc,0xf1,0x2d,0xa5,0xc2,0x7f,0xef,0x5f,0x58,0xc2,0x96,0x66,0x67,0x4b +.byte 0x7c,0xe0,0xd7,0x96,0xda,0xf7,0xd7,0x7a,0x7d,0xb4,0x4f,0x48,0xbd,0x87,0x6b,0xf4,0xbd,0xd1,0x45,0xdc,0xba,0x4f,0xd2,0x00,0x7f,0xde,0x3c,0x57,0xd7,0x3b,0x5b,0xa9,0xf3,0x17,0x76,0x47,0x0c,0xcf,0x48,0x07,0xa8,0xc3,0x30,0x60,0xc6,0x98,0x20,0x29,0xba,0x5f,0x76,0x6d,0x63,0x5f,0x87,0x7e,0x36,0xbc,0xa3,0xe4,0xd6,0x6a,0x55,0x73 +.byte 0x8b,0x8b,0x62,0x40,0xc5,0x7e,0xa3,0x33,0x04,0xce,0xe2,0x9d,0x9f,0x67,0x1c,0xf0,0xa1,0x78,0xd2,0x0b,0x58,0xc1,0x2e,0xec,0x78,0x0a,0xc9,0x0b,0x1d,0xfb,0xcc,0x72,0xd8,0xe4,0x15,0xcb,0x09,0x8b,0xd9,0x33,0xa9,0xb6,0x24,0x7e,0x59,0x48,0xbf,0xda,0xdb,0x5c,0x99,0xd1,0x92,0x1b,0xb6,0xf6,0x75,0x78,0x53,0x69,0x89,0x27,0x6b,0x3c +.byte 0xfb,0xd2,0xa7,0xeb,0xc5,0xf7,0xea,0x8b,0x38,0x59,0x8e,0x02,0xc7,0x6e,0x96,0x8a,0x85,0x1c,0x91,0x1b,0x97,0x97,0x9e,0xa7,0x9d,0x10,0xa4,0x4a,0x6e,0xa8,0x51,0x05,0xbe,0x5f,0x9a,0x5b,0x94,0xf2,0x2c,0xa1,0x1e,0x33,0xc5,0xe8,0x92,0xb8,0xd2,0xfa,0x27,0x07,0x12,0xa1,0xdc,0x24,0x43,0x28,0x06,0xe5,0x43,0x57,0x8f,0x66,0x72,0x2f +.byte 0x26,0xf7,0xea,0xa1,0xcf,0x57,0xd6,0xa6,0xf7,0x37,0x1d,0x6e,0xd9,0xde,0x1a,0x8c,0xf5,0x01,0x76,0xc3,0x56,0x40,0x57,0x3d,0x4a,0x14,0x04,0xf2,0xfc,0xba,0x3b,0x60,0xf1,0x88,0x1e,0x16,0x08,0x99,0x90,0xfe,0x27,0xaa,0x04,0x53,0xd8,0x7e,0x0c,0x58,0x6a,0xd9,0x5a,0xe4,0x11,0xd4,0xcc,0x48,0xbe,0x03,0x08,0xbc,0x61,0x47,0xdd,0xde +.byte 0x5f,0x03,0xc7,0x8f,0x9c,0x08,0x93,0xe3,0xaa,0xee,0x9c,0xe3,0xc6,0x06,0x78,0xda,0x0a,0xdd,0xb0,0xc3,0xf3,0x0b,0xe5,0xa0,0x5f,0x1e,0x3e,0xb3,0x15,0x7f,0xf1,0xf4,0x38,0xb2,0xed,0xf2,0xa6,0x8b,0x1d,0x78,0xb6,0x03,0x19,0xcd,0x17,0xb4,0x18,0x17,0x49,0x61,0x17,0xbd,0xbe,0x4b,0x04,0x00,0xce,0x4b,0xcc,0x47,0x61,0x76,0x85,0xdc +.byte 0x2b,0x85,0x48,0x82,0xf4,0x9b,0xb4,0x62,0x53,0xc7,0x06,0x50,0xf2,0x3e,0xba,0x6d,0xf2,0x19,0x0f,0x7f,0x84,0xce,0xa6,0x4d,0x96,0x97,0x94,0x12,0xb6,0xd0,0xd6,0xa4,0xc1,0xcc,0x14,0x54,0xf6,0x7a,0xf1,0x94,0x62,0xa1,0xc7,0x22,0x9b,0x0d,0x0e,0x69,0xcf,0x38,0x5c,0xda,0x9f,0xc0,0xfa,0x93,0x81,0x24,0xce,0x9f,0xf3,0xc2,0x66,0xad +.byte 0x06,0x21,0xf2,0x48,0x6c,0x4a,0x0d,0xb8,0x41,0x86,0xaf,0xb7,0x6c,0x65,0xcb,0x83,0xd8,0x75,0x11,0x60,0xfa,0x06,0xe5,0xd2,0x11,0x87,0x29,0xb8,0x41,0xcb,0x17,0xb5,0xbd,0xbd,0xf9,0xd5,0xbc,0x89,0xb6,0x60,0x65,0x59,0xbb,0x38,0x9d,0x70,0xf9,0x81,0x6b,0xe6,0x12,0x80,0x08,0x73,0x9f,0xfb,0x2f,0x72,0x4e,0x18,0xff,0x65,0xab,0xa6 +.byte 0xaa,0x78,0xf1,0xa4,0xe9,0x1a,0x7d,0xa5,0xdd,0x91,0x77,0xa9,0xa3,0xf3,0xe3,0xe5,0x5a,0xa2,0x0d,0x3a,0x2a,0x4a,0x11,0x9a,0x8d,0xc3,0x00,0x6e,0xd4,0x4f,0xb9,0xe7,0x39,0x78,0x89,0x64,0xb2,0xc8,0xfd,0x1f,0xe6,0xa9,0x54,0x17,0x83,0x3f,0xeb,0x97,0x77,0xac,0xc8,0xba,0x0e,0x77,0x02,0xb0,0x29,0xbe,0x51,0x62,0xef,0xa5,0xd5,0xab +.byte 0x79,0x98,0xab,0x7a,0x1e,0x13,0xe8,0x87,0x4f,0x61,0xa3,0x37,0xdf,0xe6,0xda,0xb9,0xf5,0x69,0xf7,0x7a,0xee,0xd6,0x5f,0x6a,0xb3,0x95,0x55,0x59,0xd1,0x6c,0x5b,0xd5,0xba,0x8b,0x74,0x85,0xbf,0x1e,0xe5,0xb3,0x24,0x28,0x4b,0xc8,0x4a,0xec,0xa1,0x1d,0xda,0x99,0x3f,0xdf,0xfc,0xe6,0x2e,0x1b,0xa4,0xba,0x1a,0x03,0x89,0xb7,0x93,0x4e +.byte 0xaf,0x40,0xb0,0x7e,0x3f,0x34,0x0d,0x94,0x75,0x8c,0x8a,0xfb,0x88,0xcd,0xd3,0xc2,0x61,0x95,0x63,0x51,0xaa,0x78,0x1f,0x24,0x95,0x5a,0xb5,0x98,0x9a,0xd4,0xb8,0x34,0xe1,0x47,0x1c,0x68,0x0f,0x08,0xf1,0x69,0xe6,0xd4,0xaf,0x23,0xf6,0x32,0x71,0x51,0x01,0xa9,0xf2,0xa1,0x45,0x0b,0x75,0x82,0x09,0xe4,0x9c,0x2a,0x1d,0x0b,0xd6,0xd2 +.byte 0x26,0xe8,0x30,0x44,0xdf,0xa3,0x2b,0x97,0x11,0xc7,0xe7,0x47,0xfd,0xc7,0xbf,0x59,0xf3,0x28,0x32,0x46,0xc0,0xc4,0x7a,0x96,0x08,0x0d,0x2c,0xa1,0x82,0x6c,0x0a,0x33,0x82,0x55,0xd7,0xcf,0x3e,0x08,0xbb,0x22,0x15,0x96,0x12,0x66,0xd2,0xae,0x21,0x3a,0x54,0x6a,0xe0,0x33,0x0c,0xa4,0x96,0x4b,0x5d,0xf2,0x86,0xb9,0x70,0xe4,0x65,0x45 +.byte 0xe4,0x2f,0xa7,0xb4,0xc1,0xd5,0x9a,0x02,0xa1,0x5b,0x4e,0x58,0xca,0xf8,0x63,0xae,0x45,0x1c,0xf4,0xa7,0xc8,0xa5,0x84,0x23,0x87,0xcb,0x3e,0x88,0xca,0xe9,0xa9,0x49,0xc5,0xc6,0x63,0x37,0x99,0xe0,0x27,0x03,0x96,0x7b,0x73,0x8c,0x36,0xde,0x89,0x80,0x30,0x2c,0x00,0x94,0x0b,0xfb,0x1f,0x39,0xe0,0xed,0xb6,0x31,0x21,0x90,0xfe,0xa4 +.byte 0xee,0xa5,0xe5,0x7b,0x9a,0x11,0x41,0x51,0xab,0x89,0x54,0xe0,0x8d,0x5f,0x10,0x1b,0x76,0x27,0x77,0x3d,0xb0,0x58,0x86,0x7b,0xb7,0x45,0xfb,0xd0,0x81,0xa8,0xcd,0xc0,0xc8,0x5f,0xfb,0xfe,0x8c,0x0a,0x3d,0x5d,0x61,0x4b,0x9b,0x32,0x75,0x66,0xa9,0xac,0x32,0x35,0xe9,0x1a,0xdf,0x06,0x8d,0x13,0x5d,0x40,0xcb,0x7d,0x50,0x3e,0x54,0xab +.byte 0x04,0xbc,0x83,0x32,0x8f,0xf5,0x93,0x1d,0x9b,0x5a,0xe1,0x19,0x70,0x4a,0xba,0xfc,0x4c,0x6a,0xf3,0xd6,0xd1,0xfd,0x48,0xd0,0x7c,0xa4,0xab,0x0b,0xb6,0x5f,0xe1,0x31,0xce,0x99,0x10,0x98,0xfc,0x6e,0x1c,0xaa,0x9c,0x34,0xa2,0x55,0xdc,0xe0,0x81,0x1b,0x9e,0xff,0x75,0x2e,0x25,0xe9,0x2c,0x20,0x83,0xf6,0x66,0xf9,0x63,0x31,0xfe,0xa7 +.byte 0xbf,0x4d,0xfd,0xff,0x0b,0x93,0x84,0xd4,0xb4,0x72,0x13,0x38,0x90,0x75,0xc9,0xff,0x61,0x4b,0xf9,0x55,0x62,0x58,0xf0,0x60,0xce,0x2d,0xec,0x94,0x06,0x0a,0xde,0x48,0xc0,0x46,0x89,0xfb,0x5c,0xf7,0x9f,0x37,0xad,0xd2,0xff,0xbe,0xfb,0x81,0x21,0xe0,0x20,0x43,0x88,0xad,0x40,0x47,0x7a,0xa9,0x30,0x88,0x10,0x16,0x41,0xf8,0x25,0xe0 +.byte 0x8f,0xc2,0xe3,0x9f,0x48,0xd3,0xfe,0x61,0x70,0xb9,0xa1,0x9e,0xaa,0xa6,0x73,0xcf,0xc3,0xd6,0xab,0x69,0x65,0x4a,0x3c,0xec,0x28,0x02,0x63,0x62,0xa1,0xb6,0xa3,0xd5,0x8c,0x9e,0x11,0x81,0x98,0x12,0x4f,0xec,0xb6,0xe5,0x3a,0x96,0xa1,0x11,0x13,0x77,0x5f,0x0f,0x19,0x40,0x14,0x28,0xcc,0xf1,0x3e,0x19,0x1d,0x78,0x31,0xac,0x5c,0xce +.byte 0xd7,0x29,0xfa,0x02,0x3b,0x29,0xd8,0x3a,0x37,0xcb,0x94,0xb2,0x38,0xc7,0x7f,0x3a,0x46,0xd2,0xb7,0xfe,0xfb,0x54,0x7c,0x01,0xa2,0x9b,0x53,0x57,0x04,0x73,0x4e,0x06,0x90,0xe5,0x78,0x0a,0x45,0x67,0x12,0x83,0xd7,0x31,0x59,0xa4,0x76,0xaa,0x7c,0xde,0x72,0x92,0x11,0x94,0x4c,0x6a,0xe4,0x35,0x35,0x3a,0x2e,0xef,0x7c,0xc1,0x91,0x76 +.byte 0xd0,0xfe,0x84,0xd1,0xa1,0xf9,0x03,0xc3,0xba,0x09,0xbb,0x2c,0xe2,0xb5,0x06,0x7e,0x23,0xb7,0xe0,0xc1,0xd3,0xfd,0x55,0x01,0xf3,0xba,0xc5,0x1b,0xf8,0x02,0x60,0x92,0x0a,0x93,0x1c,0xc4,0x19,0x03,0x88,0xf5,0x45,0xe5,0x8f,0x7d,0xce,0x2c,0x87,0x2e,0xf6,0x55,0x8c,0xf9,0xb0,0xd2,0x72,0x2d,0x93,0x6d,0x28,0x6e,0x8e,0x3a,0xed,0x68 +.byte 0x02,0xda,0x80,0xd0,0x71,0x4a,0x8f,0x06,0x59,0x38,0x89,0x81,0xcb,0x1a,0x74,0x1e,0x62,0xa3,0xa5,0xb8,0x85,0xc3,0xd2,0x04,0x3d,0x3b,0x93,0x36,0x0c,0x12,0x55,0xfb,0x7b,0xc8,0xa3,0x25,0xa7,0x93,0xb0,0x3e,0x49,0x86,0xbf,0x76,0x8f,0xc4,0x4c,0xfe,0xce,0x4a,0xf6,0x2f,0x15,0x33,0x06,0x3a,0x35,0x49,0xe7,0x08,0xff,0x99,0xac,0xf6 +.byte 0x20,0x6d,0xab,0xb2,0x05,0xa9,0xe4,0x06,0x57,0x9c,0xf4,0x76,0x8c,0x82,0x64,0xd5,0x67,0xe0,0xad,0xe1,0x69,0xdc,0x9e,0x2c,0x59,0x92,0x3a,0xc8,0xc1,0x0a,0x61,0x89,0x45,0x9f,0x8b,0xf8,0x64,0x0a,0x5a,0x75,0x55,0x37,0x24,0xe1,0x42,0x43,0x7c,0x9c,0xcd,0x4e,0x9e,0x19,0xfb,0xd9,0x15,0x29,0x30,0x52,0x33,0xf3,0xc8,0x88,0xdb,0xaa +.byte 0x07,0x27,0xfb,0x2b,0x0c,0xc0,0xa1,0x5f,0x51,0xf1,0x54,0xf8,0x90,0x0a,0x35,0x07,0x6e,0x9c,0x64,0xd8,0x4f,0x2d,0xb3,0x61,0xbc,0x18,0x1f,0x22,0x84,0x94,0x4b,0x85,0xfc,0x4a,0xf9,0xe5,0xfc,0xdd,0x7a,0x07,0xa2,0xbb,0xbe,0x7e,0x1f,0x4e,0xf9,0x29,0xb8,0xde,0x56,0xe9,0x04,0xc1,0xc2,0xb6,0xa8,0xc7,0xb6,0x83,0xf2,0x85,0x3d,0x35 +.byte 0xe3,0xeb,0x2f,0x2f,0x3c,0x1a,0x3a,0xf1,0x61,0x1f,0xe8,0xf0,0xce,0xa2,0x29,0xda,0x3f,0x38,0xf5,0x82,0x7a,0xb8,0x55,0xf1,0x1a,0x6e,0x5b,0x5c,0xd0,0xc8,0xc8,0x3a,0xe2,0xaf,0xb4,0x6f,0xba,0xe4,0x03,0x78,0x5f,0x47,0x4b,0xaf,0xfe,0x2a,0x7e,0x27,0xba,0x17,0xb4,0x92,0x27,0x70,0x13,0xd9,0xbb,0x6b,0x1c,0x9a,0x3e,0x29,0x85,0x9a +.byte 0xb7,0x64,0x5b,0x6d,0x7b,0xec,0xb2,0x26,0x3a,0x4b,0xb7,0x17,0xaf,0xb5,0xa1,0xbc,0x4d,0x67,0x4c,0x86,0xd1,0x53,0x2e,0x5d,0x64,0xe8,0x55,0xd9,0xbb,0xae,0xc1,0x55,0x41,0x99,0x8e,0x4d,0xed,0x3d,0x9e,0xea,0xe3,0xf2,0x76,0x45,0x6d,0xaa,0xbb,0x89,0x0b,0xc0,0x13,0xfe,0x99,0x2c,0xb0,0xd2,0xa9,0xeb,0x58,0x57,0x4d,0x88,0x2e,0x04 +.byte 0x4f,0x7a,0x76,0xaa,0x3a,0xa6,0x08,0x93,0x42,0x74,0x2f,0x3a,0x35,0xb0,0x36,0xcc,0x77,0xec,0x54,0x41,0x2e,0x81,0xf6,0x9f,0xf3,0xe7,0x23,0xc0,0x3f,0xa4,0x52,0x83,0x38,0xe2,0x12,0xed,0xdb,0x23,0xa0,0x0b,0xbf,0x61,0x98,0x89,0xb0,0xa4,0x3d,0xa9,0x6a,0x73,0xa1,0x99,0xc9,0x9e,0x68,0x45,0x37,0x4b,0x6c,0x87,0xfb,0x93,0xf2,0xaa +.byte 0xe8,0x1d,0x53,0x6c,0x4b,0xda,0xc5,0x6f,0xaa,0xde,0x99,0xd2,0xba,0x7c,0x27,0xc2,0x4e,0xd5,0x5b,0xc8,0x13,0x9e,0xa2,0x10,0x6a,0xbb,0x39,0xf9,0xa7,0x55,0x0a,0x65,0x88,0x3c,0x9b,0xff,0x83,0x4e,0xf7,0x9c,0x99,0x69,0xbd,0x64,0x0d,0xd1,0xc0,0xb0,0x43,0xd6,0x63,0x50,0x13,0x68,0x8d,0xd1,0x7e,0x56,0x93,0xb5,0x8e,0x8f,0x12,0xe5 +.byte 0x37,0x96,0x21,0x64,0xd5,0x0b,0xf6,0x27,0xf8,0xaa,0x34,0x8e,0xc4,0x2b,0x7b,0x6a,0x7c,0x89,0x4e,0x15,0x15,0x3d,0x17,0x93,0xd4,0x99,0xfe,0x97,0x95,0x20,0x85,0xcc,0xd4,0xcd,0x73,0x67,0x80,0x22,0x06,0xed,0x5e,0xce,0x90,0x59,0x01,0x31,0x24,0x17,0x37,0x4a,0x63,0x96,0xc2,0xf3,0xe0,0x21,0x0a,0x3b,0x9f,0x94,0xad,0xd6,0xa4,0xa9 +.byte 0xa2,0x54,0x0d,0x2a,0xb3,0x5c,0xfa,0xbe,0xeb,0x21,0xd6,0x13,0x22,0xa5,0x95,0x5e,0x25,0x72,0xf9,0x18,0x1f,0x50,0x64,0x04,0x5b,0xe8,0x0e,0x1f,0x6c,0xe1,0x4e,0xf5,0x7f,0xf0,0x13,0x4f,0xda,0x75,0xab,0x5a,0x98,0xd3,0x07,0x32,0x96,0x2a,0xc7,0x1e,0x0f,0x14,0xdb,0x96,0x5f,0xac,0xc1,0xef,0x5b,0x2d,0xd6,0x6d,0x13,0x01,0xd9,0x04 +.byte 0x9c,0xcd,0xe5,0x5e,0xbe,0x3a,0x47,0x14,0x09,0xbe,0x11,0xad,0x87,0x3f,0x0e,0xe1,0xcb,0x97,0xd0,0x6e,0x1f,0x49,0x07,0xd1,0x8c,0x2b,0xe0,0xf0,0xb2,0xaa,0x8b,0x70,0x18,0x7f,0x29,0xcc,0xc4,0x23,0x66,0x48,0xc4,0xb5,0x5e,0xf1,0x10,0xd7,0x1d,0x2a,0xba,0xe4,0x12,0x64,0x1d,0xf5,0x03,0x35,0x71,0x57,0x5d,0xf4,0xa4,0xb5,0x99,0x0b +.byte 0x4c,0x80,0x65,0x07,0x2f,0xbc,0xf7,0x28,0x8b,0xc0,0x8f,0x84,0x63,0x7e,0xf5,0x01,0x23,0x8c,0xaf,0x71,0x35,0xd4,0xe1,0x70,0xc7,0xef,0x1f,0x66,0xa9,0x34,0x57,0xaa,0x9a,0xbb,0x80,0x43,0x15,0x96,0xc4,0x03,0xd9,0xae,0xbe,0x89,0x1c,0xa1,0x9f,0x65,0x61,0xe5,0x90,0x9f,0xa6,0xf4,0x3b,0xde,0xa1,0xd1,0xf1,0xf9,0x2d,0xd7,0xa7,0x7e +.byte 0x3d,0x42,0x3d,0x1b,0x99,0xed,0x49,0x2e,0x92,0x6b,0x47,0x0e,0x0b,0x90,0x56,0xe0,0x1b,0x6b,0xfe,0x97,0xfe,0x9b,0xa2,0x50,0xcc,0xbf,0xea,0xae,0xe8,0xf0,0xc4,0xe5,0x81,0x20,0x4a,0xb0,0xf7,0xa5,0x23,0x24,0xf6,0x3f,0x9e,0x9c,0xcc,0xce,0xe4,0x95,0x49,0xea,0x66,0x4a,0x35,0x31,0xf3,0x03,0xc3,0x08,0xf9,0x5f,0x95,0x4c,0xbc,0x84 +.byte 0x13,0xbe,0x7f,0x35,0xbb,0xd7,0x35,0x3c,0xfb,0x05,0x43,0x95,0xbf,0x87,0xf2,0xc3,0x2d,0xef,0x13,0x1d,0x65,0x17,0x82,0x75,0x3d,0x67,0x51,0xcd,0x6e,0x42,0x5f,0x49,0x53,0x8b,0xaf,0x34,0x7d,0xa8,0xc1,0x45,0xcd,0x3d,0x29,0x00,0xa3,0xf3,0xbb,0x44,0x00,0x05,0x57,0xa5,0xeb,0xfd,0x98,0xa6,0xae,0xc6,0xc4,0x6c,0x6d,0x7d,0xf6,0x3e +.byte 0x82,0x1d,0x12,0xe7,0xcd,0xd2,0xd5,0xfe,0x41,0xf8,0xa4,0xb3,0x6a,0x04,0x13,0x28,0x10,0x40,0x27,0xc9,0x43,0x74,0xcf,0xaf,0x9b,0x60,0x17,0x43,0x8f,0xd7,0xb7,0x56,0x72,0xf3,0x48,0x0a,0xe6,0x36,0xf2,0x3f,0x51,0xf9,0x6e,0xc8,0xa3,0x04,0x8c,0x01,0x86,0x6e,0x83,0x27,0xe2,0xba,0xf2,0x8f,0x8f,0xa1,0x39,0xe7,0x17,0xdd,0x06,0x10 +.byte 0x0c,0x7f,0xfa,0x22,0x5d,0x88,0x35,0xc6,0xcd,0x60,0xa2,0xf0,0xfd,0xc9,0xed,0x85,0xac,0x88,0xfd,0x7d,0xc0,0x77,0x1b,0x80,0x3d,0x21,0x1e,0x8e,0x4d,0xdb,0x20,0xe2,0x38,0xad,0xd4,0xb5,0x2b,0x2b,0x31,0xbc,0x7b,0x02,0xa2,0x25,0x50,0xc0,0x01,0x20,0x76,0x6f,0x98,0x0b,0x3d,0x46,0xed,0xbb,0x2b,0x39,0x74,0x30,0xce,0x3e,0x6d,0x91 +.byte 0xa1,0x89,0x83,0xde,0x69,0x93,0x1a,0x14,0xa1,0xb0,0xaa,0x80,0xb0,0x1c,0x02,0x3f,0x13,0x9a,0x15,0x7f,0xb4,0x02,0x8f,0x30,0x0b,0xee,0xd9,0x72,0xcb,0x74,0x95,0x4a,0x39,0xb3,0x4e,0x78,0x12,0xb1,0x77,0x89,0xc0,0xaf,0x17,0xfd,0xc1,0x68,0x65,0xd1,0x08,0xae,0x56,0x5c,0xe0,0xe7,0x6f,0xb3,0x1e,0x10,0xce,0xd8,0xdf,0xee,0x67,0xad +.byte 0xd8,0x08,0xe0,0x79,0x36,0xe4,0x57,0x1c,0x45,0x22,0xa7,0x44,0xa8,0x12,0x37,0x92,0x85,0x9f,0x3a,0x48,0xd0,0xfd,0xb3,0x40,0x20,0x10,0xed,0x11,0xe0,0x9a,0xa6,0x09,0x5b,0xe9,0x21,0x95,0xe1,0x45,0x19,0x39,0xcc,0x85,0x5f,0xa5,0x6b,0x46,0x37,0xe1,0xa1,0x17,0x3f,0xb6,0xe9,0xb0,0x81,0x25,0xf6,0xd1,0xb8,0x22,0x5a,0x27,0x48,0x83 +.byte 0x01,0x36,0xd4,0xb8,0xc0,0x9f,0x37,0x52,0x22,0xd2,0x69,0x7b,0x3d,0xfb,0x31,0xc1,0xa3,0xb4,0xa1,0x1d,0x0e,0x24,0x9a,0xda,0x02,0x15,0x4b,0x46,0x24,0x0e,0xb1,0x79,0xc2,0x5b,0x01,0x60,0x4a,0x24,0x8a,0xbb,0x70,0xaa,0xf4,0x45,0xc1,0x0d,0x04,0x26,0x3f,0x74,0xbd,0xdd,0x33,0xaa,0xd6,0x62,0x56,0xb1,0xe7,0x2d,0x7b,0x66,0xa2,0x40 +.byte 0xb4,0xe4,0xbd,0x8e,0x35,0xba,0xf1,0x2f,0x59,0xa7,0x01,0x6d,0x5a,0xa7,0xa6,0x3b,0x82,0xa3,0xb4,0x54,0x51,0x33,0x6b,0xfb,0x78,0x4a,0x74,0x88,0x7f,0x55,0xea,0x08,0x8e,0x19,0x78,0xbc,0x80,0x19,0x2f,0x41,0x97,0x20,0xa0,0x9e,0xbf,0x44,0xae,0x2e,0x26,0x66,0xe3,0x25,0xa0,0x92,0xa9,0xbe,0x8c,0x0d,0x96,0xec,0x93,0x99,0xe2,0xe7 +.byte 0x81,0xd5,0x10,0x62,0x3a,0x97,0x38,0x51,0x36,0x11,0x00,0xe0,0xc1,0x3a,0xc5,0xd4,0xa5,0x19,0xf4,0x82,0x66,0x0c,0xf9,0xb3,0x04,0x3e,0x57,0xc3,0x43,0xab,0xc6,0x52,0x95,0x8f,0xd3,0xf1,0xde,0xd9,0x57,0x6d,0x32,0x4f,0xc7,0x8c,0x1b,0x7a,0x53,0x6a,0xcf,0x56,0xea,0x61,0xb4,0xe5,0x64,0x2d,0x02,0x26,0x5b,0xcf,0x1c,0xc7,0x37,0xc3 +.byte 0x41,0xd2,0x1b,0x6c,0x5b,0x47,0xb8,0x73,0x89,0xfe,0x0e,0x7a,0x35,0x05,0xfc,0xea,0x6a,0x34,0x74,0x69,0xf0,0x12,0x29,0xa9,0x33,0xce,0x93,0x15,0xa0,0x68,0xb3,0x46,0x43,0xdb,0x8d,0xfa,0xef,0x93,0x66,0x72,0x18,0xae,0xe4,0xab,0xf4,0x8a,0xd1,0xb5,0x42,0xbd,0x2d,0xda,0xcb,0xf6,0x44,0x25,0xb1,0x01,0x8a,0xff,0xd5,0x34,0x16,0xec +.byte 0x7e,0x38,0x7b,0x50,0x41,0x61,0xf9,0xdf,0x4c,0x3e,0x02,0xd6,0xc3,0xce,0x19,0x9f,0x12,0x45,0x0c,0x99,0xb1,0xd9,0xeb,0xb9,0xe3,0xd5,0xb6,0x2b,0x25,0x8c,0x0b,0x04,0xf8,0x8d,0x41,0x41,0x3d,0x39,0x1b,0x7f,0x88,0xa7,0x8f,0x61,0x30,0xfe,0x67,0x75,0x35,0xd1,0x41,0x90,0xda,0x73,0x80,0xcf,0xc9,0xf6,0x44,0x00,0x67,0xcd,0xca,0xaf +.byte 0x6d,0x84,0x39,0x9a,0xb2,0xbb,0xfc,0xac,0x9b,0xb2,0x95,0x2f,0xc9,0x06,0x3a,0xa4,0x7b,0x9a,0x25,0xc6,0xe5,0xdb,0x7a,0xc6,0x8b,0x84,0x6a,0xb7,0x1e,0x22,0xaa,0x10,0x96,0xd3,0x55,0x50,0xa2,0x02,0x04,0x69,0x92,0xd7,0x6b,0x1f,0x9b,0x45,0x07,0x71,0xda,0xdc,0x76,0xc5,0xb8,0x34,0xa2,0x32,0x33,0x16,0x2e,0xb0,0x2a,0x90,0x43,0x40 +.byte 0x92,0x77,0x74,0x4e,0xdc,0xb4,0xe2,0x7d,0xc1,0x57,0xaf,0xf4,0x2c,0x20,0x65,0x77,0x88,0xc9,0x6e,0x69,0x38,0xc8,0x19,0x95,0x32,0x54,0x59,0x7f,0x37,0xd7,0x3c,0x07,0x05,0x87,0x2b,0xf9,0x58,0x74,0xc7,0x61,0x13,0x3d,0xc2,0xd9,0xec,0x3b,0x36,0x9f,0x8e,0xae,0x52,0xdd,0x5c,0xaa,0x29,0x6b,0x31,0x34,0x48,0x61,0x34,0x62,0x56,0xce +.byte 0x25,0xa8,0xc0,0x62,0xf5,0x35,0x58,0x4d,0x8e,0x61,0xd4,0xae,0x25,0x50,0xee,0x45,0xdd,0x14,0x7d,0x46,0x81,0x47,0xc3,0x3f,0x3f,0x81,0xdb,0x9a,0x59,0x56,0x4f,0x45,0xed,0x9c,0xe2,0xfc,0x96,0xff,0x5d,0x37,0x70,0xad,0xd2,0xeb,0xd9,0x2d,0x2a,0xaf,0xb9,0x16,0x4a,0x79,0x5d,0x76,0xb5,0x8f,0x74,0x19,0x6f,0x74,0x7d,0x4a,0xee,0x83 +.byte 0xa5,0x81,0xf3,0xd5,0xa0,0x43,0x5e,0x46,0xba,0xbe,0x49,0xa8,0xce,0x72,0x36,0x32,0xcd,0x8c,0x9b,0xa0,0xf9,0x5d,0xb7,0xb9,0xc7,0x8c,0xb2,0x59,0xb4,0x44,0xc1,0x90,0x53,0x92,0xd2,0xa8,0x4c,0xf9,0x35,0x40,0x32,0xd1,0xf0,0x2f,0xcb,0x6a,0x0b,0xe0,0xbe,0x34,0xc9,0x82,0x18,0x8d,0xfb,0xfc,0x50,0x8d,0x67,0xd5,0x86,0xd4,0xf1,0xb1 +.byte 0xaa,0x2f,0x9c,0xbc,0x52,0xbb,0x9f,0x17,0x1c,0x74,0x1d,0xdf,0x2d,0x1a,0x94,0x43,0x9b,0x80,0xb9,0x48,0xa3,0xaf,0x4b,0x30,0x0d,0xd9,0x3f,0x11,0x48,0x79,0x60,0xcc,0x25,0x6a,0xdb,0x8a,0xda,0xab,0xda,0x09,0x7c,0x9c,0x4a,0xaf,0xf9,0x0d,0xfb,0x7a,0x92,0x61,0xa5,0x17,0xf8,0x79,0x1b,0x00,0x52,0x56,0x5e,0x27,0x22,0x37,0xf4,0xbe +.byte 0x52,0x36,0xd3,0xdc,0x9a,0x33,0xf5,0x44,0x0e,0x53,0x0b,0xf6,0x9b,0xb0,0xb6,0x11,0xe4,0xd5,0x45,0x2e,0xdc,0xdb,0x46,0x18,0x9a,0x90,0x8b,0xcc,0xfe,0xc6,0x94,0x4f,0x97,0xb9,0x42,0xb6,0xd3,0x8f,0x7c,0x20,0xd1,0xa8,0xe6,0x85,0xce,0x65,0xeb,0x95,0x38,0x11,0x5c,0x1a,0x9d,0x34,0x25,0xc2,0xf0,0x33,0xbb,0x2c,0xc9,0x8d,0x0a,0x7a +.byte 0xb1,0x90,0x9f,0x24,0xed,0x35,0x3c,0x7e,0x71,0x82,0x12,0x3a,0x79,0x29,0xc8,0xa7,0x3e,0xa2,0x4e,0x50,0x03,0x94,0x7a,0x94,0xb7,0x2b,0x61,0x95,0x3d,0x5e,0x60,0x1c,0x68,0x51,0x82,0x73,0xe0,0x4a,0x2a,0x48,0x26,0xda,0xa3,0x53,0x8c,0x83,0xba,0x9f,0x95,0x37,0x5e,0x68,0x54,0x19,0x21,0xf8,0x31,0xaf,0x6b,0xfc,0x3a,0x3e,0xe3,0x3f +.byte 0xdb,0x16,0xb5,0x7e,0x13,0xf8,0xfd,0x7f,0x36,0xd6,0x8e,0x33,0xaa,0xe9,0xa4,0xa7,0xfd,0xf0,0x32,0xa6,0xdf,0xfa,0x22,0x7d,0xff,0x2a,0xe6,0x0d,0x6f,0xe2,0x21,0x54,0x6c,0x1a,0x99,0x17,0x56,0xad,0xce,0x39,0x6b,0x1a,0xe8,0x27,0x13,0x12,0x9c,0x4b,0x84,0x69,0x73,0xde,0x44,0x14,0xb2,0x7c,0x44,0x54,0x91,0x4f,0xeb,0x83,0xec,0x04 +.byte 0x73,0x85,0xb1,0xa8,0x44,0x72,0xa7,0x77,0xaf,0x0c,0xe0,0x52,0x65,0x04,0xe7,0x2a,0xee,0x0c,0x20,0x83,0x32,0x34,0x17,0x00,0x61,0xf9,0xf5,0x42,0x03,0xa4,0xb8,0x02,0x6f,0xb2,0xd3,0x65,0x51,0x2a,0x8e,0xdf,0x28,0x78,0x8a,0x8a,0x00,0xfb,0x24,0xd6,0xd5,0x86,0xaa,0xfb,0x86,0x93,0x5d,0x11,0xa4,0xf3,0xfd,0x36,0x18,0xf3,0x61,0xea +.byte 0x33,0xa8,0x0c,0xf0,0xb4,0x68,0xee,0xd3,0xe3,0x4f,0x22,0x24,0xde,0x1f,0x29,0x84,0x8b,0x5b,0x73,0x15,0xd6,0x62,0xa3,0x71,0x7d,0xf0,0x65,0x36,0xca,0x68,0x8a,0x6d,0x61,0x9c,0x0d,0x53,0xdd,0xf4,0x12,0xb3,0x5f,0xf0,0xb1,0x86,0xd6,0xe2,0xd6,0x80,0x4a,0x01,0x09,0x99,0x65,0xdb,0xae,0xe6,0xfc,0x68,0x5b,0xf9,0x10,0x99,0x8b,0x9f +.byte 0x08,0x52,0x09,0xae,0x59,0x4d,0x6c,0xf9,0x91,0x2b,0x57,0xea,0xf0,0xa3,0xdb,0xb8,0x99,0x29,0x2f,0xab,0x95,0x01,0x7d,0xec,0xd8,0x77,0x73,0x75,0x4f,0x88,0x44,0x69,0x76,0xc9,0x3c,0xf0,0x2d,0x7b,0x0d,0xbe,0xd4,0x88,0x0d,0xbc,0xa0,0x52,0xf4,0x2a,0xd1,0x62,0x2a,0xa9,0xe2,0x41,0x2f,0x52,0xce,0x96,0x7d,0x65,0x9b,0x74,0x82,0xde +.byte 0x43,0x4d,0xf8,0x8e,0x77,0x1c,0x18,0xf5,0x7e,0xab,0x94,0x3e,0xe7,0x90,0x2b,0xa1,0x16,0x00,0x7f,0x9c,0x9d,0x86,0xd1,0x74,0x7e,0xf7,0xbd,0x5a,0xa7,0x2f,0x0f,0xb0,0x5c,0xfc,0xfb,0x59,0x00,0xf3,0x84,0x09,0x77,0x66,0x17,0xf6,0x5d,0x0e,0xe2,0xe2,0xd4,0xb3,0x9e,0x79,0x88,0x66,0xa5,0x8e,0x30,0xae,0xca,0x7e,0x2b,0x32,0xa2,0x89 +.byte 0xe9,0x7e,0x59,0x21,0xd5,0x99,0xc7,0x10,0xa8,0x6f,0x95,0x8d,0x84,0xb4,0xcf,0x61,0xe7,0x5c,0x09,0xf3,0xbc,0xeb,0xf6,0x0c,0x84,0x1a,0x8d,0x13,0xf8,0x49,0x22,0xeb,0x09,0x55,0xef,0x56,0x12,0x21,0xcb,0x61,0x87,0xbf,0xef,0x43,0x5b,0x82,0xa8,0xc2,0xa2,0x5e,0xad,0x54,0x9a,0xcc,0x95,0xa2,0x01,0x05,0xb2,0xbb,0x26,0xa8,0xfd,0x6b +.byte 0x66,0x95,0x9c,0x0b,0x7b,0x23,0x32,0xff,0xdd,0x6c,0x18,0x1e,0x77,0x01,0x3c,0x82,0xaa,0x97,0x28,0x0f,0x93,0xa5,0x6c,0x85,0xe5,0x94,0x40,0xe0,0xa3,0x01,0x57,0x56,0x43,0x40,0xdd,0xa9,0xaf,0x21,0x79,0x10,0x8b,0xff,0x4b,0x51,0xe4,0xa2,0xe5,0xd7,0x0c,0xe2,0x9e,0x1e,0x38,0xdb,0x64,0xe1,0xb1,0x5b,0xe5,0x40,0xab,0xf6,0x05,0xd2 +.byte 0xba,0x85,0x78,0x61,0x2d,0x2e,0x07,0x06,0x6d,0x86,0x59,0xaa,0xd9,0x2c,0xfb,0x83,0x34,0xd0,0x2d,0x1d,0xad,0x5f,0xe4,0xac,0x05,0x46,0x3a,0x7b,0xd9,0xef,0x9f,0x2b,0x0c,0x18,0x21,0xf1,0x24,0x8a,0xb4,0x6e,0xd2,0x98,0x75,0x08,0x96,0x0c,0x7b,0x41,0xb7,0xf7,0x1f,0xcd,0xa8,0x1f,0x44,0xb1,0xed,0xdc,0x0e,0xcb,0x94,0xa0,0xb8,0x62 +.byte 0x67,0xdc,0x24,0xde,0x9e,0xe9,0x89,0xcd,0x92,0x7c,0x91,0x15,0xff,0xbd,0xfd,0xee,0xf8,0x29,0xd7,0xf9,0xe8,0x51,0xe7,0xc8,0x21,0xc5,0x20,0xe4,0xb8,0xa6,0xdb,0xfb,0x09,0x65,0x1c,0x3b,0x9e,0x39,0x44,0xcf,0xf5,0xc2,0x7b,0xf3,0x14,0x7d,0x69,0xf2,0xd0,0x97,0x63,0xf1,0xa7,0x81,0x56,0xfb,0xdf,0x4d,0x83,0x55,0x4f,0xde,0x50,0x7d +.byte 0xfe,0xb0,0xc0,0xc8,0x3b,0x3d,0x78,0x74,0x58,0x74,0x5e,0xfc,0xb7,0x0d,0x9a,0x26,0x3b,0x39,0xb6,0xf7,0xe0,0xe4,0x12,0x3c,0xd6,0x88,0x1c,0x9b,0x51,0x89,0xe7,0x53,0xcd,0x24,0x2e,0x34,0xa2,0xee,0xfa,0x5a,0x87,0xe5,0x7e,0xd5,0xf2,0x2f,0x15,0x99,0x57,0x5d,0x31,0x02,0xf8,0x08,0x38,0xea,0x8c,0x30,0x21,0xb0,0xff,0x94,0x51,0xcf +.byte 0x23,0xb7,0x02,0x5d,0xa3,0x75,0x7f,0x9d,0x66,0x49,0xe5,0xbe,0xc7,0x06,0x5e,0x1d,0xc9,0xe2,0x82,0x8a,0xc4,0x17,0x83,0x7e,0x65,0x6d,0x85,0x26,0x66,0xc0,0xf4,0xa5,0x1c,0x6e,0xba,0x32,0xfa,0x41,0x7b,0x2b,0x64,0x98,0x58,0x8c,0xce,0x2f,0xf3,0x56,0xf0,0x67,0xef,0x73,0x79,0xc4,0xc2,0x07,0xd7,0x85,0x1d,0x75,0x38,0x1e,0x15,0x82 +.byte 0x9d,0xf3,0xdd,0x3a,0x72,0xa3,0x23,0x0e,0x4a,0x1a,0x3a,0x97,0xc8,0xf1,0xf1,0x58,0x5d,0x1f,0xae,0x6d,0xc8,0x03,0xe0,0x7b,0x0f,0xf5,0x6f,0x35,0x41,0x8d,0xd5,0x03,0x85,0xdd,0xeb,0x3d,0x73,0xb1,0x93,0x35,0xc0,0x0f,0xfb,0x42,0xd4,0xf1,0x6b,0x35,0xe2,0x96,0xc5,0xd9,0xf2,0x69,0xbb,0x70,0x5e,0xf0,0x0c,0xe6,0xb5,0x81,0x94,0xc9 +.byte 0x29,0xa1,0x34,0x89,0xd9,0x9c,0x49,0x01,0x37,0x56,0x16,0x30,0x47,0x6f,0xe4,0x7c,0x5b,0xdd,0xfb,0x80,0x7f,0x0c,0x38,0x53,0x3d,0x57,0xf7,0xc4,0x80,0xf9,0x12,0x3a,0x9f,0xf9,0xb0,0xb6,0x94,0x6d,0xde,0x41,0x4e,0x30,0xac,0x1f,0x25,0x34,0xa0,0x95,0xe8,0x00,0x86,0x32,0x40,0xbb,0xc1,0x49,0x2d,0x07,0x49,0xb8,0x5f,0xcd,0x1b,0xd3 +.byte 0x0e,0x0c,0x54,0x0f,0xe4,0x20,0xe5,0xa1,0xed,0x98,0x65,0x5a,0xe7,0xce,0x68,0x9c,0x4c,0x48,0x03,0x9c,0x5b,0x68,0x4b,0x75,0x71,0x11,0x40,0x69,0xca,0x9a,0x3a,0xb2,0x3d,0x35,0x2c,0x70,0x35,0x8b,0x80,0x53,0x86,0x30,0x7d,0x4c,0xe9,0xc0,0x30,0x60,0xd0,0x06,0xbe,0xc2,0xad,0x39,0xcc,0xb2,0xec,0x90,0xcc,0xbd,0x7c,0xb5,0x57,0x20 +.byte 0x34,0x2e,0xfc,0xce,0xff,0xe3,0xd9,0xac,0xb8,0x62,0x6b,0x45,0x22,0x34,0xdf,0x8e,0x4b,0xf1,0x80,0x28,0x8d,0x0f,0xd5,0x3b,0x61,0x3e,0x91,0xa1,0xb1,0x85,0x27,0x78,0x88,0xbc,0xc4,0xb1,0xa1,0xbe,0x4f,0xc3,0xfd,0x1f,0xb9,0x30,0x31,0x2f,0xc1,0x9d,0xa3,0xb6,0x29,0xa4,0x60,0x82,0x73,0x93,0x74,0xea,0x97,0x67,0xf2,0xa3,0x97,0x50 +.byte 0x2f,0x9f,0x7b,0x23,0x18,0xb6,0xb4,0xee,0x15,0xa0,0xa4,0x07,0x1a,0xe9,0xb6,0x63,0x7e,0x88,0x40,0x57,0x86,0x79,0x6b,0x75,0xbe,0x57,0x8f,0xfe,0x0d,0xdf,0x4c,0x7f,0x39,0x9a,0x97,0xa6,0x87,0xc5,0xfd,0x52,0x77,0x36,0xc9,0x66,0x63,0xcf,0xc7,0x34,0x3b,0xf4,0x7a,0x12,0x56,0xf0,0xbc,0x7a,0x1a,0xa2,0xa2,0x51,0xb8,0xc1,0x70,0x81 +.byte 0xcf,0x1d,0xb5,0xe2,0x82,0xbb,0xfc,0xa3,0x80,0x18,0xf8,0x4b,0x76,0x9c,0xdf,0x9d,0x6c,0xf1,0xd8,0x2a,0xab,0x0c,0x12,0x02,0x29,0x09,0xfd,0x28,0xfb,0x57,0x38,0x05,0x2c,0xc5,0x67,0xd1,0xaa,0xbc,0x98,0xe6,0x22,0x78,0x06,0x4f,0x69,0x6a,0x63,0x1a,0x13,0x0b,0xa5,0xd2,0x61,0xc7,0x45,0x5b,0x21,0xab,0xbf,0x7b,0x7f,0x8c,0x2c,0xba +.byte 0x93,0x9f,0x41,0x67,0xc4,0x5f,0x53,0xac,0x90,0x05,0x86,0xb5,0x80,0x1f,0x5b,0x35,0x4f,0x92,0xf5,0xa8,0x5f,0xfb,0x56,0xdd,0x2d,0x9b,0xea,0xcb,0x0f,0x98,0x3c,0x4e,0xf1,0xa5,0x2c,0x37,0x70,0xe3,0x5c,0xaf,0x96,0x36,0xa8,0x2a,0xec,0xe0,0x2c,0x00,0xcd,0xaf,0x03,0x1d,0x05,0x2f,0x8c,0xe7,0xfe,0x4d,0xe9,0x97,0x6d,0xe1,0xf9,0x23 +.byte 0x60,0x08,0xea,0xfb,0x27,0xc8,0xf9,0xdf,0x49,0xfe,0xd9,0x48,0x35,0x6b,0x43,0xc5,0x19,0x90,0xb1,0xf1,0xee,0x84,0x7a,0x57,0xfa,0xa5,0xd6,0xd8,0xc9,0xf0,0x8a,0xe7,0x13,0x84,0xfc,0x28,0x54,0xae,0x99,0xfd,0x91,0xbe,0x91,0x27,0x98,0x28,0xdc,0xd7,0x2e,0xc1,0x21,0xcb,0x31,0xf8,0x47,0xe6,0x77,0x6d,0xee,0x7b,0x12,0xe4,0x9e,0x9d +.byte 0x07,0x46,0xa9,0x15,0x0b,0x3c,0xbe,0xc7,0x2d,0xe5,0xd6,0x25,0x4c,0xea,0x61,0xdc,0x18,0xb2,0x9d,0xb0,0x9a,0xff,0xa3,0x5f,0x2b,0xab,0x52,0x7d,0x1b,0xc3,0xa3,0x41,0x8f,0x5a,0x29,0xbd,0xc4,0x56,0x54,0x43,0x2d,0x61,0x07,0xed,0xd1,0x81,0x45,0xdb,0x61,0x0f,0xda,0xea,0xa6,0x1e,0xf9,0x9c,0xc0,0x8c,0xc4,0x8e,0xc7,0xca,0x38,0xe2 +.byte 0x45,0xde,0xdc,0xc5,0xc6,0xb0,0x43,0x17,0x8b,0xb1,0x58,0xd1,0x10,0x8e,0xa5,0x17,0x37,0x85,0xca,0x61,0x67,0x5c,0xd0,0x72,0x22,0x6b,0xd3,0x3b,0x53,0xbc,0xfb,0xe1,0x1e,0xa4,0x1b,0xd3,0xc3,0x8a,0x50,0x03,0x39,0xf5,0x36,0xdf,0x51,0x2e,0x05,0x4a,0xa8,0xdb,0x91,0x87,0xae,0xfe,0x3f,0x5c,0x35,0x5e,0xf9,0x8f,0x43,0x9e,0x92,0x36 +.byte 0x91,0x27,0x90,0xe8,0x7c,0xcc,0xc4,0x9c,0x13,0xbb,0x61,0x40,0xec,0x4f,0x49,0xcf,0x04,0x38,0x77,0x3b,0xb5,0xf8,0x69,0x8d,0xbb,0xb2,0x30,0x32,0x42,0x4d,0x7d,0x6c,0x56,0xdc,0xf4,0x8f,0xfc,0xb8,0x53,0xc5,0x11,0x17,0x23,0x94,0xf9,0x6d,0x6f,0xee,0xee,0x31,0xbf,0xce,0x11,0x8b,0x9e,0xd7,0xa5,0x09,0x36,0x89,0x72,0x25,0x18,0x1f +.byte 0x13,0xa7,0xdf,0xc5,0x91,0x7e,0xd6,0x2b,0xb8,0x08,0x9c,0x12,0x83,0x21,0x97,0x3d,0xad,0xac,0x1c,0x54,0xf3,0x65,0x04,0x2f,0x09,0xd1,0xd2,0xe5,0xce,0x24,0xb1,0xd9,0xe4,0x38,0x1f,0xb4,0xce,0xea,0x27,0x7f,0x5f,0x16,0x52,0xa4,0x2f,0x2f,0xaf,0x91,0xec,0x7a,0x21,0xf7,0xa1,0x38,0x78,0x78,0xc5,0xa9,0x94,0x63,0x87,0xf8,0x95,0x9e +.byte 0xf9,0x82,0x98,0x6d,0x9d,0x48,0x80,0xaa,0x7a,0x36,0xf9,0x5f,0xfb,0x39,0x3d,0xae,0xbc,0xcd,0xfc,0x67,0x46,0x07,0x7e,0xdf,0xef,0xff,0x8d,0x67,0xe7,0xd9,0x60,0x90,0x7b,0x49,0x10,0x65,0x3a,0x60,0x87,0x7a,0xed,0x9a,0x44,0x48,0x81,0xcc,0xad,0xe4,0x6a,0x62,0xf8,0x02,0x6f,0x41,0x8a,0x8d,0x44,0x28,0x1a,0xb8,0x52,0x60,0x4b,0x3f +.byte 0xfc,0xdd,0x33,0xad,0x14,0xb1,0x34,0x63,0x1f,0xdc,0xeb,0x9a,0x3f,0x99,0x82,0x28,0x36,0x6f,0x8e,0xd7,0x39,0x2e,0xc0,0x37,0xfb,0xad,0x57,0x6c,0x82,0x1a,0xc6,0xe4,0x4b,0xca,0x00,0x68,0x57,0x34,0xf0,0x57,0x6a,0xcb,0x50,0x5d,0x8d,0xfa,0xcd,0x89,0x41,0x91,0x23,0x98,0x1f,0x4f,0x18,0xb6,0xd2,0x9d,0xde,0x2f,0x5c,0xe6,0x08,0x76 +.byte 0x97,0xba,0x24,0x4e,0x84,0xd7,0xeb,0x80,0xde,0xec,0xee,0x51,0x5a,0x0e,0x5f,0xb7,0x37,0xda,0xa5,0x94,0x2b,0x6d,0x73,0xb7,0x6c,0x22,0x95,0x3a,0xaa,0x5c,0x6f,0x89,0x90,0xec,0xb3,0x31,0x00,0x37,0x28,0x18,0xbb,0x98,0x23,0xfc,0x3e,0x21,0x7c,0xaa,0x44,0x54,0x7b,0xe6,0xa0,0x17,0x58,0xef,0x11,0x3f,0x48,0xb8,0xa8,0x15,0x4a,0x92 +.byte 0xa9,0x39,0xe2,0xa6,0x38,0x03,0xa6,0xd3,0x79,0x8b,0x38,0x06,0xaf,0x4b,0xd4,0xab,0x0a,0x13,0xff,0x2d,0xfa,0xab,0x4b,0x64,0x9e,0xb0,0x3d,0xba,0x18,0x01,0xfd,0xc3,0x6a,0x6f,0x21,0x9c,0xf5,0x2f,0xab,0x2d,0x42,0x12,0xc9,0x72,0xde,0x83,0x42,0x6a,0xf0,0xd4,0x96,0x73,0xf1,0x93,0xa3,0x2d,0x9b,0xb4,0x94,0x51,0x0c,0x6e,0x8e,0xf0 +.byte 0x5e,0xbf,0x98,0xbf,0x08,0x0f,0xd8,0x6c,0x65,0x4e,0xb5,0x47,0xeb,0x7c,0x1b,0x73,0xe0,0xe6,0x2c,0x03,0xd2,0x2a,0x32,0xff,0xa7,0x03,0x6d,0x38,0x47,0x56,0x4b,0x25,0x0b,0x39,0x73,0x87,0x4b,0xa5,0x12,0x79,0x79,0xf3,0x88,0x37,0xe2,0x4f,0xb8,0xbf,0x70,0x0e,0xf7,0x8c,0xe6,0xa3,0xbc,0x35,0x10,0xcd,0x72,0x56,0xd6,0x83,0xc1,0x0b +.byte 0x5b,0xf3,0xa8,0x74,0xc7,0xb9,0x84,0xc8,0x6c,0xff,0x66,0xad,0x95,0x6f,0xbc,0x82,0x84,0x2a,0x11,0x40,0xf9,0xa8,0x3f,0x05,0xf9,0xab,0x19,0x55,0xce,0x80,0x90,0x65,0x49,0x3d,0xe1,0x54,0x2c,0x1a,0xdb,0xf3,0xaa,0x2f,0xeb,0xf5,0x10,0x1f,0x8c,0x35,0x46,0x68,0xb1,0x4c,0x52,0xe7,0xe9,0x58,0x78,0x33,0xfd,0xc6,0x13,0x0e,0x69,0xae +.byte 0xf4,0x1a,0x8a,0x77,0x8f,0xcc,0x98,0x74,0x88,0x20,0x84,0x5b,0x83,0x54,0xa9,0xee,0xc2,0x0f,0x8a,0x46,0xb1,0xc7,0xfb,0xfd,0xf2,0x2c,0xaf,0xfa,0x72,0x34,0x7a,0x79,0x50,0x10,0xc6,0x04,0xfd,0x0a,0x1e,0x4a,0xb5,0xf5,0xe7,0x4d,0x98,0x80,0x5d,0x0b,0x81,0x23,0xc3,0x6e,0xbf,0xc8,0xcd,0x35,0x96,0x5a,0x58,0xec,0xef,0x6a,0x8d,0x48 +.byte 0xda,0x48,0xbb,0x8f,0xcc,0x1f,0x86,0xff,0x7a,0x27,0xef,0xe6,0xb7,0xc7,0x2a,0x47,0x8d,0x6c,0x4a,0xc6,0x0a,0x32,0x67,0x1d,0x2f,0x83,0x3d,0x46,0x41,0x46,0x1c,0x75,0x7b,0x29,0x89,0xa2,0x65,0x9b,0x53,0x3d,0xd9,0x90,0x83,0xce,0xab,0x07,0xbb,0x46,0x61,0xb1,0x54,0xbd,0xc9,0x98,0xf7,0x96,0x76,0x03,0xdc,0x1f,0x1b,0xf2,0x5c,0x07 +.byte 0xdd,0x24,0x94,0x72,0x1e,0x94,0xb1,0x14,0x0b,0x40,0x77,0xde,0x3d,0x3f,0x1c,0xf0,0x8f,0xa4,0xcb,0x34,0xb5,0x2b,0x72,0x53,0x78,0xf3,0x3f,0x8e,0x47,0x30,0xb2,0x7e,0x73,0x3f,0x9a,0xef,0x19,0xb1,0xef,0x82,0x99,0xd4,0x17,0x60,0x94,0xf6,0x15,0x75,0x50,0x1f,0xb3,0xdd,0xae,0x1f,0xf8,0x63,0x9a,0x30,0x2c,0xf0,0xdd,0xbf,0x49,0x70 +.byte 0xd7,0x86,0x4a,0x5c,0x46,0x10,0x48,0x46,0x02,0x18,0xa4,0x39,0xb6,0x75,0x11,0x21,0xae,0x62,0x64,0xd8,0x85,0xc8,0xda,0xd2,0xd6,0x69,0xcc,0x37,0x57,0x49,0x73,0x1a,0x10,0x7b,0xd7,0x58,0xdd,0x0b,0xf3,0x16,0xe7,0x62,0x2c,0x32,0x92,0x0e,0x70,0x6f,0x77,0x74,0x0d,0xff,0xc2,0x8d,0x3b,0x3f,0x29,0x28,0x8f,0x88,0xb8,0x02,0x5b,0x3a +.byte 0x8b,0x65,0x89,0x92,0x2f,0xc7,0x30,0x73,0xc3,0x20,0xbc,0xa4,0xe4,0x5e,0xea,0xf8,0x21,0xb6,0xc5,0x47,0x56,0x35,0x8f,0xf6,0xd5,0xdd,0x77,0x1d,0xdf,0xd0,0x27,0xa3,0x04,0xb9,0xd0,0xc4,0x28,0x16,0xa5,0xaf,0x47,0x55,0x85,0x93,0x38,0xf4,0xac,0x13,0x30,0x7d,0x77,0x1f,0x3d,0xd5,0xd7,0x22,0xbe,0xe2,0x4e,0x6d,0x4b,0x0e,0xbe,0x1d +.byte 0x43,0x79,0x34,0x95,0x6f,0x38,0xa1,0xb3,0xa0,0xed,0xf6,0x17,0xf4,0x24,0x70,0x26,0x18,0x3e,0x1c,0xde,0xdc,0xa9,0x67,0x12,0xd3,0xc8,0xd7,0x70,0x13,0xa5,0xb3,0x25,0xe1,0x0a,0xe9,0xf6,0x4e,0x56,0x82,0x17,0xdc,0xbc,0x96,0x2f,0x59,0x03,0x9b,0xf4,0xc3,0x66,0xd2,0x90,0x95,0x1d,0xe0,0x99,0xfb,0xd8,0xa8,0x14,0xc7,0xa6,0x12,0x6b +.byte 0x08,0x6a,0xc8,0x0f,0x34,0x2a,0xb6,0xc4,0x9a,0xcd,0x61,0xf7,0x61,0xa3,0x59,0x29,0x11,0x30,0x76,0xb5,0x97,0xbc,0x2f,0x87,0xd8,0x12,0xb3,0x1d,0x99,0x8d,0x5d,0x57,0x0c,0xda,0xb0,0x9f,0x51,0x1a,0xb5,0xc6,0x94,0xc3,0xe9,0x5a,0x72,0x0c,0x37,0x76,0xb6,0x3c,0x00,0x02,0x69,0xad,0x8e,0x66,0x8b,0x5c,0x13,0x48,0xb7,0x9e,0xc5,0x7e +.byte 0xe0,0x35,0x07,0xd2,0x04,0x9c,0x35,0x95,0x8b,0x55,0x87,0x03,0x32,0x36,0xeb,0x11,0x88,0x54,0x8d,0x3e,0x88,0x46,0xc2,0xfe,0x24,0xa4,0x4b,0x92,0x19,0x44,0x6c,0xc9,0x69,0x32,0x22,0x95,0x5b,0xda,0x58,0xa4,0x00,0x33,0x83,0x2d,0xa4,0x17,0x2e,0x00,0x4d,0x9a,0x7d,0xef,0x04,0xa8,0x8b,0xf2,0x7c,0xb9,0xdb,0x54,0xcf,0x63,0x14,0x52 +.byte 0x5b,0x79,0xf6,0x89,0x5c,0xfa,0x8a,0x85,0x88,0x7f,0xca,0xed,0xfb,0x62,0xbc,0x1d,0x0d,0x90,0x51,0x27,0x45,0x74,0xa0,0x55,0xfc,0x60,0xea,0xef,0x6e,0x40,0xeb,0x0b,0x61,0x45,0x44,0xee,0xb6,0x20,0x4c,0xe1,0x08,0x62,0x29,0xdd,0xd0,0xa1,0xd5,0x7f,0x42,0xb9,0x0f,0x12,0xef,0xfb,0x13,0xa2,0xf1,0x85,0xaa,0x56,0x18,0x6c,0x70,0x7a +.byte 0x4d,0x52,0x76,0xce,0xa9,0xed,0x0a,0xcc,0x55,0xf0,0x01,0x99,0x44,0xe9,0xc4,0x74,0x33,0x2a,0xce,0x53,0xf3,0x4f,0x8f,0x1c,0x67,0x39,0x2b,0x0e,0x46,0xe2,0x49,0x06,0x52,0xbf,0xc4,0x3f,0x93,0x84,0x46,0x0a,0x9b,0xcb,0x1d,0xa5,0x66,0x9c,0x3e,0x3d,0xd1,0x92,0xda,0xe2,0x11,0x5b,0x89,0x7a,0xc4,0x33,0xba,0xa9,0x19,0xfd,0x3c,0xe3 +.byte 0xf0,0xa0,0x9b,0x83,0x50,0xce,0xa9,0x62,0xe3,0x85,0xc6,0xc4,0xe5,0x22,0xbb,0x1a,0x8e,0x04,0xb5,0x4d,0xca,0x18,0x7d,0xb0,0x99,0x50,0x78,0x88,0x69,0x43,0xe0,0xfd,0x90,0xa6,0xbf,0xdc,0xe3,0x03,0xf2,0x5d,0xa1,0xa2,0x88,0xc7,0xab,0xa9,0xc2,0xda,0x3f,0xff,0x79,0xa6,0x07,0xfd,0xc4,0xb1,0xfb,0x47,0x3d,0x75,0x82,0x26,0x52,0x85 +.byte 0x3f,0xf9,0xc9,0x85,0x46,0x24,0xe9,0x0f,0x96,0x8c,0xbb,0x02,0x83,0x60,0x69,0x49,0x8c,0x38,0xd1,0x4e,0xd0,0x63,0x2c,0xb6,0x12,0xb2,0x8e,0x4b,0xd3,0xe3,0xdf,0x20,0x00,0x99,0xf1,0x06,0x93,0xbf,0x27,0x42,0x8b,0xe3,0x8d,0x4c,0x3b,0x05,0x62,0x64,0x21,0xb1,0xfe,0xce,0x08,0xd2,0x23,0x69,0x11,0x74,0x31,0x3a,0x90,0x10,0x07,0x1a +.byte 0xd5,0xf5,0xc2,0x09,0x61,0x67,0x65,0x99,0x3a,0xf3,0x9e,0x4a,0xd8,0xa1,0xb2,0x50,0xf4,0x07,0xf0,0x7b,0x89,0x6d,0x4d,0x6a,0xd4,0x54,0xb9,0x3c,0xd5,0x4e,0x1c,0x12,0x0f,0x19,0x92,0x97,0x21,0x65,0x83,0x33,0x20,0x92,0x95,0xd4,0x0e,0x78,0xf4,0x92,0x16,0x36,0xd8,0x1b,0xd8,0xbf,0x41,0xe4,0xfb,0xb9,0x81,0x26,0x72,0x7e,0x1b,0x58 +.byte 0x05,0x45,0x97,0x66,0xf2,0x23,0x16,0xca,0x4e,0x95,0xc2,0x6c,0x60,0x84,0x5f,0x77,0x82,0x44,0x0e,0xf7,0x30,0xaa,0x51,0xa9,0x85,0x8b,0x03,0xfc,0x3d,0x6d,0x66,0x91,0x37,0xa5,0x1c,0xf8,0xcf,0x9d,0xd8,0xcd,0x8c,0xa1,0x29,0xbd,0xb5,0x4f,0x47,0xba,0xd1,0x55,0x3b,0x4e,0xc9,0xce,0x4c,0xcf,0x2e,0x19,0xa0,0x95,0xe6,0xcb,0x36,0x97 +.byte 0x3e,0x23,0xbe,0x09,0xfd,0x38,0x47,0x00,0x03,0xec,0x49,0xbb,0x49,0x1f,0x45,0x84,0x0f,0x1e,0x74,0xab,0xc9,0x07,0x00,0x04,0x70,0xe9,0xbd,0x61,0xb1,0x92,0xee,0x67,0x9a,0x5e,0x90,0xdc,0xe7,0x99,0x36,0xd0,0x58,0x15,0xe5,0x15,0xa2,0x1d,0x61,0x18,0x39,0x5f,0x6c,0xc7,0xbe,0xd0,0x23,0x1e,0x41,0xc8,0xaa,0x8e,0xbf,0xb8,0xdb,0x90 +.byte 0x8c,0x60,0x07,0x1e,0xe9,0x6c,0xe4,0xde,0xec,0x73,0x34,0x94,0x54,0xa4,0x6b,0x49,0xcf,0x87,0xb5,0x88,0x98,0xe6,0x2c,0xce,0xb7,0x76,0xa5,0x29,0xf1,0x29,0x50,0xc5,0x9e,0x13,0xe4,0x61,0x6a,0x54,0xb2,0x26,0xfa,0xfa,0x4a,0x41,0x3b,0x0a,0xf5,0x9a,0x60,0xbb,0xfc,0x1e,0x5d,0x21,0x7e,0x91,0x51,0xd6,0x5e,0x92,0xf9,0x21,0x80,0xa8 +.byte 0x35,0xc0,0xbb,0x7a,0xeb,0x75,0xb4,0xa3,0xd3,0x8d,0xaf,0x07,0x53,0x65,0x36,0x11,0xf9,0xb6,0x69,0x29,0x1e,0x5d,0x8f,0x57,0x5d,0xed,0x42,0xf9,0xd5,0xf6,0xc3,0x1e,0x29,0xc4,0x49,0x04,0xe4,0xfb,0xbf,0x9b,0x4a,0x7b,0xdd,0x57,0x51,0xfe,0xc4,0xd1,0xd9,0xe9,0x8f,0x94,0x78,0xbc,0x5c,0xeb,0xb6,0xbc,0x51,0xb0,0x82,0x87,0x47,0xb4 +.byte 0xf7,0xf9,0x02,0xd7,0xac,0x23,0xc0,0xe5,0x9a,0xc3,0x2f,0xd2,0xb8,0xb2,0x62,0xb9,0xdb,0x49,0x85,0x77,0x92,0xa6,0xe5,0x24,0x43,0x4d,0x0d,0x67,0x94,0x01,0x29,0xd6,0x2e,0xee,0xd9,0x2e,0x97,0x0e,0x20,0x7f,0x84,0x19,0x3c,0x3a,0x6f,0xa5,0xb0,0x8b,0x8f,0x8d,0x96,0xbb,0x76,0x61,0x97,0xc2,0x65,0x83,0xd8,0xda,0xab,0x42,0xfa,0xe5 +.byte 0x1e,0x42,0x93,0xa7,0x66,0x03,0x06,0x3b,0xbe,0xb8,0xae,0x71,0xee,0xdb,0x5d,0xdf,0x40,0x64,0x17,0x17,0x2e,0x03,0xca,0x37,0x2a,0x71,0x92,0x0a,0x01,0xa3,0x0f,0x0b,0x09,0xf2,0x0e,0x4b,0x4d,0x18,0xf3,0xc4,0xf2,0x51,0x7b,0x53,0x30,0xab,0x24,0xa2,0x47,0x38,0xc9,0x2c,0xdf,0x0d,0x32,0x3e,0x3f,0x57,0x2d,0xfc,0x44,0x19,0x64,0x8b +.byte 0xe9,0x9a,0xc2,0xf2,0xf6,0x2d,0x30,0x0c,0x0f,0xc3,0xc3,0xfe,0xc2,0xd1,0xbc,0xe0,0xbf,0xaf,0xeb,0x40,0x64,0x28,0xe2,0xd9,0x3c,0x7e,0x24,0x94,0x8f,0xe8,0x54,0x8b,0x26,0x6b,0xe1,0x4e,0x44,0x5a,0x7d,0x7b,0x12,0x36,0x2c,0x12,0xad,0x26,0xbc,0xa7,0xa3,0x2b,0x25,0xb9,0xde,0xe6,0x64,0x2d,0xab,0x7f,0x15,0x22,0x51,0x26,0x1c,0x15 +.byte 0x5d,0x13,0x18,0x93,0xc1,0x19,0x65,0xca,0xf3,0x8b,0xe0,0xcf,0x8c,0x43,0xe9,0xfd,0xa1,0xbd,0xe9,0xde,0x78,0x26,0xcb,0x7c,0xdc,0x68,0x06,0x98,0xf6,0x90,0x44,0x40,0xf0,0x5e,0xe1,0x16,0xf5,0x5d,0x4d,0x9b,0x85,0xe6,0x26,0xbd,0xab,0xcc,0x46,0x62,0x18,0x51,0xd5,0x3c,0x9f,0x6e,0xfa,0xe7,0x94,0xfc,0xc2,0x1a,0x9d,0x63,0x2c,0xdc +.byte 0xc3,0x89,0x67,0x94,0x37,0x58,0x0d,0x13,0xb8,0xdf,0x41,0x3d,0x70,0x78,0x1e,0x61,0x75,0x77,0xcc,0xbf,0x5f,0xa8,0xd3,0x89,0xcc,0xd3,0x40,0x4e,0x65,0xbd,0xce,0x3c,0xf0,0x5a,0x8f,0xe2,0xe1,0x24,0xaa,0xed,0x0f,0xd1,0x03,0x0d,0xf5,0x36,0x98,0xcd,0xa5,0x77,0x40,0x24,0x0a,0x82,0x68,0x79,0x82,0x38,0x68,0x6f,0x2b,0x0b,0xce,0x0f +.byte 0xcd,0x0f,0xba,0xdb,0xb5,0x22,0x38,0xd2,0xb0,0x9f,0x0f,0x08,0x0d,0xd8,0x5e,0xa7,0xd0,0xa9,0x39,0x66,0x4c,0x46,0xce,0x2a,0xc3,0x67,0x8c,0x91,0xdc,0xf1,0xc0,0x3a,0x58,0x50,0x1f,0xb0,0xa4,0x4d,0xbf,0x99,0x57,0xcf,0xae,0xb2,0xaf,0x6a,0x42,0xd2,0x7f,0x85,0x8c,0x40,0xc6,0x9a,0x93,0x57,0x54,0xf5,0xb4,0x83,0x59,0xb5,0x19,0x52 +.byte 0x7c,0x8b,0x76,0xee,0x35,0x90,0xbf,0xbe,0x65,0x58,0x3b,0x25,0x52,0x18,0xd8,0x7f,0x1f,0xe6,0x70,0xce,0x56,0x1a,0x45,0xa0,0x81,0xee,0x95,0x6f,0x55,0x43,0xaa,0x6e,0x87,0xa9,0xab,0x7d,0xe9,0xa1,0xa3,0x63,0xe7,0x1b,0x6b,0xa6,0x2c,0xe5,0x4a,0xb2,0x1e,0x73,0x5e,0xb5,0xae,0x83,0xe6,0x54,0x0b,0xc5,0x6b,0xb6,0xc4,0x73,0x62,0x1a +.byte 0xbf,0x1a,0x65,0xa2,0x5e,0x3a,0x45,0xd9,0xba,0x5b,0xef,0xf7,0x13,0x0c,0x7c,0x68,0xa1,0x98,0x71,0xb7,0x39,0x7c,0xbc,0x69,0xdb,0xd4,0xac,0x3f,0x82,0x63,0x9b,0x71,0x25,0x3a,0x06,0x73,0x60,0x71,0xc3,0x30,0xd3,0x96,0x02,0x4b,0x46,0xbd,0xd4,0x6e,0xc6,0x29,0xcc,0xd0,0xe1,0x0b,0x66,0x62,0xea,0x29,0xc7,0xcf,0x35,0x9e,0x2f,0x1f +.byte 0xa0,0xfc,0x8c,0x4a,0x83,0x8e,0x3b,0xf5,0x7a,0x6f,0x52,0xaf,0x99,0x9c,0x86,0xab,0xe5,0x1b,0x82,0xb3,0x18,0x35,0x77,0x9b,0xa3,0x94,0xc8,0x39,0x30,0x3f,0xad,0xa9,0x0f,0x93,0xb8,0xc8,0xed,0x04,0xf2,0x0b,0x9a,0xb1,0xd1,0xc9,0x9e,0x40,0x4f,0x71,0x21,0x63,0x2a,0x05,0x26,0x53,0xa3,0x3f,0x43,0xe4,0xf8,0x7c,0x2f,0xa3,0x5a,0x6e +.byte 0xc1,0x40,0xa8,0x4d,0xbc,0x03,0xae,0xe9,0x36,0xb6,0x37,0xdc,0x5f,0xef,0xb0,0x35,0x33,0xdf,0x33,0x71,0xaf,0x80,0xf2,0x69,0xd9,0xb5,0xfc,0xff,0xd2,0x5b,0x6a,0xeb,0xdc,0xe0,0x26,0x43,0x38,0x7b,0x24,0xb2,0x79,0x53,0x52,0x57,0xc4,0x1f,0x6d,0xc9,0x50,0xf2,0x63,0x9d,0xc1,0x22,0x5f,0x11,0x82,0x38,0xdb,0xd3,0xb4,0x1d,0x10,0x72 +.byte 0x9e,0x4d,0x03,0x30,0xba,0x5e,0xe9,0x8c,0x21,0x12,0xe6,0x3a,0xd6,0x4c,0x18,0xa4,0x27,0xc9,0xf5,0x50,0xbd,0xbe,0xf0,0x86,0xd8,0x00,0x56,0xf0,0x10,0x81,0xec,0xeb,0xfc,0x5b,0x29,0x88,0xff,0x73,0x60,0x6b,0xf5,0x8c,0x0b,0x30,0x04,0x53,0x85,0x61,0x0c,0xfc,0xff,0x8f,0x21,0xd2,0xa1,0xcb,0xf7,0x90,0x53,0x3b,0xf4,0xf0,0x2c,0x7d +.byte 0xb6,0x84,0xe7,0x4c,0x88,0xea,0x4f,0xdf,0xff,0x0f,0x5d,0x0f,0xd3,0x2d,0x4f,0x7e,0xdc,0xd1,0x22,0x71,0x0d,0xae,0xa8,0xcf,0x05,0x7b,0xfc,0xfe,0x87,0x40,0xa5,0xe8,0xfd,0x3f,0xdb,0x2f,0x00,0x21,0xb9,0x70,0x02,0x2c,0x96,0x24,0xaf,0x35,0xe2,0x87,0xcb,0x50,0xcf,0x7e,0xfa,0xaf,0x39,0x82,0x0c,0xd5,0xa6,0x3f,0x9c,0x77,0x60,0x16 +.byte 0xbf,0x42,0xcc,0x97,0xd1,0x19,0x0d,0x8a,0x50,0x98,0x7d,0x19,0x7b,0x40,0x1c,0x22,0xde,0x50,0x90,0x32,0x9a,0x3d,0x07,0x35,0xc0,0x48,0x4c,0x0a,0xcd,0x91,0xab,0xf7,0xf3,0x06,0x77,0x80,0x96,0x7b,0x59,0x33,0xe6,0xbf,0x93,0xb8,0x59,0xd0,0x3a,0x1f,0xcc,0xe7,0x1d,0xd4,0xb5,0x58,0xee,0xe7,0x95,0xfa,0x75,0xdb,0x37,0x74,0xb0,0x7d +.byte 0x4d,0xee,0xef,0x20,0x13,0xe5,0x82,0x07,0x8e,0xdd,0x57,0x75,0x33,0x56,0xc4,0x80,0xb0,0x06,0x9f,0x6b,0x72,0x31,0xcf,0xac,0x5f,0x96,0x13,0xeb,0xf4,0x34,0xb6,0x6b,0x55,0xef,0x55,0x26,0x4e,0xdb,0x6c,0x2f,0x64,0x29,0x91,0x3c,0x6d,0x29,0xd2,0x94,0xbd,0x2c,0x99,0xb9,0x97,0x76,0xee,0x7d,0xfd,0xb2,0x8d,0x14,0x4f,0x09,0x81,0xb3 +.byte 0x68,0x3e,0x79,0x28,0x56,0x50,0x3f,0x86,0x4c,0x95,0x6c,0xad,0xf6,0xc5,0x43,0x25,0xea,0xbc,0xe2,0xba,0x77,0x18,0xc6,0x82,0x65,0x73,0x38,0x90,0x9d,0xc9,0x57,0xcd,0xa2,0x7c,0xd3,0x26,0x59,0x44,0xd9,0x79,0xae,0xdd,0x6f,0xe9,0xdc,0x16,0x73,0xba,0x05,0x8a,0x40,0x9f,0xe7,0xcf,0x29,0xa4,0xdf,0x49,0x7f,0x1d,0x73,0xc7,0x8b,0x8d +.byte 0xad,0xb5,0x3d,0x1b,0x64,0xb1,0x8f,0x78,0x06,0xbe,0xaa,0x2c,0x08,0x73,0xc7,0x2c,0xdc,0xd8,0x3f,0x9f,0x1b,0xd2,0xe1,0x4f,0x9d,0x87,0xb8,0xa9,0xdc,0xef,0xbc,0x31,0x9f,0xf7,0x84,0x09,0xe7,0xbc,0xec,0x2a,0xcb,0x3b,0x3a,0x30,0xe2,0x5b,0xbc,0xcd,0xa8,0xdb,0x46,0x80,0xec,0xaa,0x06,0x8e,0xd8,0x6c,0x35,0x65,0x52,0xb8,0xc3,0xf9 +.byte 0x97,0x68,0x06,0x2d,0x3e,0x91,0x71,0x44,0x6e,0x01,0x51,0x10,0x5b,0x74,0xb9,0x3f,0xd7,0xf9,0x5c,0x98,0xe6,0xf8,0x98,0x32,0x26,0x9b,0x5e,0x9c,0x88,0xfb,0xaa,0x70,0xd2,0x2e,0xc2,0xf6,0x02,0x92,0x33,0x55,0x92,0xba,0xfb,0x0e,0x0b,0x08,0xdf,0x5d,0xdd,0x47,0x28,0xae,0x32,0xb3,0x27,0x8d,0xd4,0x18,0x43,0x64,0xc4,0x7f,0x60,0x62 +.byte 0xd9,0x63,0xd1,0x28,0xc9,0x75,0x3b,0x44,0xb4,0x8e,0x2a,0x93,0xf9,0x4c,0x4f,0x7e,0x6b,0x98,0xc9,0x1a,0x82,0x51,0x9a,0xb2,0x80,0x70,0x2e,0xff,0x19,0x66,0x1b,0xb6,0xbc,0x15,0x8e,0xe6,0x0f,0x8e,0x04,0x10,0x94,0x44,0x6c,0x32,0x4b,0x61,0xbc,0x4a,0x16,0x7b,0x25,0x2a,0x27,0x96,0xa9,0xa9,0x61,0x10,0xc1,0x46,0xdd,0xf5,0xe3,0xe8 +.byte 0x1f,0x5b,0xa0,0x77,0xe1,0x42,0x9a,0xd4,0x04,0x33,0x68,0x72,0x1c,0x44,0x29,0xce,0x98,0xe0,0xc7,0x3a,0x9e,0x3c,0xb9,0xb4,0x29,0xef,0x57,0xee,0x8c,0x8f,0x7c,0xe6,0xe1,0x43,0x6e,0x45,0x0e,0xdd,0x4e,0x11,0x4b,0x28,0x69,0xde,0xb8,0xfa,0x32,0xbe,0xc6,0x4f,0x11,0x99,0xe5,0xe3,0xe2,0x1f,0x03,0xbe,0x4a,0xad,0x60,0x68,0xc8,0x13 +.byte 0x80,0x4e,0xb6,0xc0,0xc5,0xc7,0x97,0x5c,0x0b,0x0e,0x64,0x43,0x78,0x70,0x95,0x91,0x8e,0x36,0x6b,0xad,0x57,0xc7,0x1e,0x9c,0x54,0xc9,0x89,0xf0,0x13,0xde,0x0a,0xbe,0xc0,0xa9,0x35,0x77,0x0a,0x01,0x7f,0x98,0x51,0x82,0x92,0x14,0xe0,0x9a,0x08,0xa3,0x0c,0x6c,0x67,0xf2,0x05,0xaa,0xa9,0x4e,0xce,0x3b,0xb1,0xb6,0x8c,0x82,0x5d,0x11 +.byte 0xf2,0xe5,0xd7,0xda,0x3a,0x65,0xa0,0xe3,0xa4,0x09,0x01,0x1c,0xb2,0x08,0x90,0x94,0xb5,0x51,0x56,0x24,0x22,0xfd,0x12,0xad,0x7a,0x75,0xcf,0x0f,0x0f,0x23,0xc3,0xa6,0x1f,0xf8,0x39,0xbc,0x2f,0x18,0x53,0x14,0xef,0xdf,0x90,0x6a,0x50,0x2b,0x8c,0x8b,0xa8,0xd4,0x8c,0x59,0x8f,0xd8,0x81,0x86,0x57,0xc1,0xd1,0xfb,0xe7,0xa6,0x20,0x6e +.byte 0x7c,0xbf,0xce,0xe3,0xce,0x28,0x35,0x7c,0x8e,0x1a,0x66,0xea,0x7d,0x81,0x09,0xdb,0xa8,0x64,0xba,0x3c,0x07,0x3f,0x23,0xd3,0x05,0x97,0x4c,0x92,0xc2,0xa4,0xe8,0x6c,0xfb,0xa0,0x9d,0x8b,0x4d,0xcb,0x3a,0x96,0xe7,0x04,0x0f,0x48,0x87,0x2c,0xdd,0x51,0xf3,0x46,0x7e,0x61,0x89,0xbe,0xb8,0xb0,0x9e,0x9c,0xc4,0x37,0x55,0xe6,0x4f,0x78 +.byte 0x7e,0xb0,0x59,0x42,0xca,0xba,0x4a,0xb2,0x50,0xbd,0x16,0x68,0x99,0x42,0xb4,0x8b,0x60,0x3d,0x54,0x41,0x17,0x11,0x39,0x42,0x5d,0x41,0xec,0xc2,0x53,0x82,0x7c,0x32,0xc9,0xd1,0x34,0x49,0xd8,0x4f,0x29,0x21,0xeb,0x97,0x98,0x4c,0xeb,0x21,0xce,0x50,0xd6,0x53,0xd9,0xf1,0x6e,0x26,0xfa,0xe4,0x71,0x34,0xd8,0x38,0xac,0x39,0x4f,0x02 +.byte 0x36,0x93,0xf2,0x08,0x88,0xdc,0x24,0xdd,0x1f,0xf5,0xe9,0x7f,0x83,0xa0,0xa4,0x6b,0xc5,0xef,0x8e,0x82,0xf9,0x92,0xbc,0x82,0x3f,0xce,0x86,0xa6,0x34,0xf8,0x16,0xa7,0xdb,0x97,0xca,0x54,0x43,0xd8,0xfc,0x31,0xde,0x73,0xd0,0x79,0x1a,0xac,0x61,0x15,0xbd,0x38,0x64,0x3b,0xc6,0xb5,0x95,0xeb,0x2e,0x68,0xe4,0x1d,0x6b,0x18,0xab,0x88 +.byte 0xb0,0x96,0x51,0x8c,0xbe,0x41,0x63,0xd6,0x9a,0x21,0x60,0xe8,0x26,0x37,0xb3,0x10,0x76,0x46,0x31,0x90,0xb0,0x9f,0x17,0xab,0x0f,0x93,0xcc,0x12,0x78,0xee,0x17,0x1c,0xd8,0xc7,0x76,0x0a,0x5a,0xb4,0x8b,0xb1,0x67,0x11,0xde,0x48,0x14,0x8a,0x2a,0xc7,0x71,0x46,0x94,0x15,0x29,0x44,0x9e,0x35,0x03,0x10,0xf7,0x51,0x8a,0xaa,0x9c,0x4a +.byte 0x9a,0x44,0xd5,0xc7,0x37,0x9d,0xb4,0xad,0x41,0xd0,0xda,0xd2,0x1a,0xf9,0x93,0xee,0x28,0x32,0x65,0x0b,0x9c,0x12,0xe3,0xad,0x9f,0x82,0xeb,0x3f,0x03,0xe7,0x6a,0x58,0x83,0x3f,0xbe,0x9f,0x27,0xd3,0xd6,0xe2,0x45,0xbf,0x90,0xe2,0x12,0x61,0x0b,0x57,0xd7,0x06,0x72,0x39,0x2c,0x3e,0x65,0xb2,0xf4,0xf7,0x54,0xef,0x32,0x99,0x44,0x0d +.byte 0xf0,0x5c,0xde,0x4c,0x2e,0x22,0xcd,0x3c,0x25,0x02,0xa5,0x0d,0x79,0x16,0xb0,0x51,0x3f,0x3c,0x84,0x56,0xfa,0x00,0xae,0x7a,0x36,0x45,0x3a,0xcc,0x1d,0x66,0xff,0xf4,0x49,0xce,0xb5,0x5c,0x51,0xf4,0x3e,0x07,0xf2,0x83,0x84,0x4d,0x4e,0xb7,0xce,0x03,0x7b,0x23,0x63,0xdf,0x64,0xa2,0x55,0x92,0xf9,0x2e,0xa5,0x21,0x89,0x29,0x42,0x48 +.byte 0x36,0xc5,0xab,0xd6,0x82,0xe3,0xff,0x45,0xfc,0x61,0xa6,0x4f,0xb9,0x51,0xba,0xd5,0x03,0xa9,0x0b,0xe7,0x73,0x83,0x97,0x1d,0xb2,0xc6,0x75,0xa0,0x52,0x99,0xfc,0x1b,0x27,0x7a,0x10,0xc1,0xed,0x70,0x21,0x4b,0x93,0xa4,0x20,0xed,0x16,0x76,0x97,0x82,0xab,0x21,0xfe,0xa4,0x3f,0xd9,0xbd,0x9c,0x2f,0x19,0x42,0xbc,0xb3,0x4f,0x44,0xf3 +.byte 0x9e,0xd0,0xe7,0xc9,0x7e,0x31,0xaa,0xbc,0x4b,0xba,0x73,0xe1,0xc3,0xbf,0x5d,0xa2,0xd8,0xb7,0xb6,0xfc,0x0a,0x32,0xb9,0xff,0x80,0xb6,0x2a,0x8b,0xea,0x81,0xa0,0xeb,0x1e,0x9e,0x69,0xdd,0xbe,0xc1,0x8a,0x5d,0xfb,0x66,0x21,0x98,0x5c,0x6f,0xd8,0xb4,0xcf,0x8a,0x1a,0x4b,0xde,0xa2,0x20,0xe8,0x5a,0x5a,0xee,0x14,0x09,0xcb,0x63,0x1c +.byte 0x14,0x7d,0x9b,0x47,0xf8,0xfa,0xda,0xb7,0x0e,0xc6,0xbd,0xb2,0x13,0xb8,0x10,0xe2,0x71,0x04,0x36,0x78,0x6d,0x3a,0x8b,0x45,0xd3,0x05,0xec,0x8a,0x2d,0xfa,0x85,0x7c,0xdd,0x75,0xb3,0x2d,0xd1,0xae,0xfc,0xdd,0x02,0x2e,0xcc,0x43,0xc5,0xed,0xe4,0x3f,0xee,0x2c,0xd7,0x37,0x81,0x3a,0x44,0xe6,0xed,0x8c,0x9d,0x9d,0xfa,0xb5,0xdc,0xde +.byte 0xb2,0x7c,0x51,0x58,0xa4,0x21,0xac,0xe2,0x79,0x96,0x90,0xe2,0x0b,0xbf,0x51,0x66,0x77,0x02,0xff,0x67,0x0a,0x70,0x1f,0x04,0x6c,0xb0,0x5b,0x2d,0x26,0x23,0x5a,0x85,0x73,0x66,0x6e,0x7c,0xb3,0xeb,0x36,0x73,0x0f,0xcd,0xb2,0x07,0xee,0x78,0xd1,0xbd,0x5e,0xfa,0x31,0xf6,0x82,0x67,0x94,0xaa,0xff,0xef,0xd2,0x23,0xfc,0x82,0xaa,0xe2 +.byte 0xef,0xc3,0x74,0x79,0x6c,0xe9,0x3f,0x8d,0xe1,0x1b,0xc8,0xb4,0xff,0x15,0xf4,0x60,0xe8,0x84,0x3f,0xaa,0xc6,0x53,0x51,0x1a,0x9b,0x04,0x9b,0xab,0xc5,0xee,0x9a,0x98,0x80,0x89,0x8d,0x5b,0xef,0x0a,0x69,0x71,0xd2,0xf3,0x49,0xc1,0xc1,0x87,0xb3,0x18,0x4b,0x82,0x02,0x87,0xb0,0xf1,0x76,0x4b,0x3e,0xad,0x95,0x51,0xb1,0x64,0xb1,0x03 +.byte 0x5b,0xd2,0x10,0x7b,0x4e,0xd4,0x08,0xf8,0xfd,0xea,0xf0,0xc7,0x16,0x43,0x86,0xa6,0xdb,0xcd,0x75,0xce,0xa9,0xfd,0xa8,0x7c,0x51,0xf7,0xa5,0x29,0x6f,0x0d,0xee,0x66,0x8f,0xc6,0xcd,0x9e,0x3f,0x00,0x24,0x21,0xca,0x69,0x79,0x27,0x03,0x62,0xdf,0xad,0xb9,0x8c,0xd8,0x08,0x88,0x0d,0x0c,0xa1,0x29,0xf9,0xba,0x92,0xb5,0xdd,0xb8,0x1a +.byte 0xbb,0xab,0x44,0xb2,0xda,0x1b,0x8b,0xc1,0x3c,0x61,0x9f,0x7a,0x8b,0x89,0x99,0x09,0xc3,0xb4,0xe4,0x24,0xf5,0x3b,0x36,0xa6,0x61,0x0a,0xec,0x2a,0x1c,0x92,0x7c,0xb1,0x7c,0xd8,0x0b,0x98,0x48,0x8d,0x52,0xa2,0x57,0xc1,0x28,0x89,0xbb,0x60,0x5c,0x58,0x62,0x41,0x1c,0xd6,0xfb,0x69,0x09,0x93,0x90,0x31,0xc4,0x72,0x71,0xf0,0x4f,0xcf +.byte 0x10,0xbb,0xb7,0x6c,0x3b,0x53,0xa3,0x0b,0xff,0x44,0x4c,0x37,0xd5,0x26,0x83,0x7e,0x5c,0xb9,0xa5,0xe8,0x8b,0xc4,0x15,0xf6,0xc7,0xd1,0x39,0x67,0x01,0xb7,0xca,0xa7,0x71,0xa8,0x04,0x95,0x0f,0xfc,0x0a,0x9e,0x52,0xb2,0xfb,0x48,0x47,0xb6,0xa5,0x14,0xc2,0x4f,0xa8,0xd5,0x0f,0x10,0x76,0x39,0x23,0x74,0x2e,0xe5,0x17,0xcb,0xad,0x8a +.byte 0x4a,0x25,0xc8,0x9b,0x25,0x94,0x34,0xbc,0x4b,0x2f,0xdc,0x0a,0xcd,0xc1,0x02,0x72,0x7d,0xa0,0x10,0xa7,0x32,0x68,0xe8,0xd5,0x23,0xe8,0xc9,0xbc,0x05,0x05,0x1e,0xac,0x55,0x45,0xfb,0x42,0x2f,0x0f,0x51,0x8d,0x31,0xb1,0xbc,0x10,0xa1,0x03,0xc3,0x6f,0x35,0x08,0xa5,0x2f,0x91,0x4e,0x43,0x6b,0x62,0x3b,0x00,0x4c,0xd0,0xb8,0x33,0xbc +.byte 0xca,0x57,0xb8,0x1b,0xb4,0x52,0x1a,0xa7,0x03,0x78,0xa0,0x4f,0xda,0x86,0xb9,0xd8,0xc6,0x69,0xe6,0x61,0x2e,0x62,0x96,0x60,0x0d,0x76,0xdc,0x5d,0x0e,0xa8,0xf3,0x86,0xde,0xcf,0x39,0x34,0xc7,0x69,0xed,0xcb,0x9a,0xf5,0xc3,0xce,0x6d,0xa5,0x7f,0xae,0x73,0xb9,0xa6,0xbf,0x88,0x93,0x2b,0x0e,0x8b,0x4b,0xa5,0xeb,0x62,0xc6,0x1a,0xc7 +.byte 0x63,0x63,0x58,0x62,0x37,0xc6,0xbc,0x00,0x72,0xac,0x3d,0x7c,0x22,0xa5,0x59,0xf1,0x6e,0x60,0x45,0x3e,0x99,0x76,0x40,0x82,0xa7,0x52,0xf3,0x48,0x8e,0x4a,0xa3,0xe1,0x3b,0xea,0x77,0xa7,0x7d,0x13,0xe7,0xc4,0xc6,0xa6,0x6e,0xda,0xe8,0x50,0xc8,0x39,0x30,0xab,0x8a,0xe1,0x08,0xa9,0xe3,0xbd,0x8d,0xbd,0x83,0x3c,0xbc,0x6c,0x92,0xed +.byte 0xf1,0xa9,0xd3,0x50,0xf2,0x29,0x8b,0x39,0x46,0xaf,0x08,0x7e,0x00,0x64,0x2f,0xa8,0x18,0xab,0x7e,0x07,0xd3,0x63,0x2a,0xd3,0xd3,0xbb,0xf9,0xdd,0x2b,0xec,0x70,0x35,0x1a,0x94,0x6b,0x87,0xe4,0x1a,0x0a,0x44,0x46,0x08,0xa6,0xce,0x1b,0xf7,0xd7,0x20,0x87,0x1a,0x96,0x6c,0xbe,0xdf,0x73,0x3b,0xc9,0xaf,0x89,0x1c,0x2f,0x47,0xe9,0xd8 +.byte 0x03,0xa6,0x03,0x6c,0x73,0xa9,0x65,0x20,0x36,0xea,0x6f,0xe7,0x96,0x7c,0x01,0x87,0xb0,0x21,0xba,0xb4,0xed,0x1f,0x81,0x65,0x97,0x36,0xda,0x68,0x80,0x64,0x99,0xe6,0xda,0x95,0x04,0xdf,0x5d,0xfd,0x86,0xd1,0xfd,0xfa,0x1c,0xd7,0x89,0xbf,0xe6,0x99,0x6c,0xf5,0x01,0x56,0x20,0x88,0x79,0xa7,0x8d,0x88,0x82,0xe5,0x32,0x38,0xe0,0xf0 +.byte 0x98,0x63,0xa9,0xab,0xeb,0x09,0x8d,0xaf,0x3f,0xa8,0x57,0x98,0xde,0xc8,0x9c,0x8d,0x1d,0x18,0xc5,0xa8,0x82,0x51,0x9b,0x6f,0xc6,0xb8,0x09,0xd3,0xea,0xd4,0xe3,0xac,0xd1,0x0e,0x88,0xda,0xdf,0x38,0x53,0x14,0x87,0x28,0x6f,0x13,0x35,0xdb,0xfe,0xa1,0xe7,0x43,0xb5,0x02,0x46,0x08,0x1a,0x31,0x0d,0x9e,0x3d,0x3b,0xbf,0xbb,0x82,0x9c +.byte 0x09,0xf3,0xd9,0x22,0x0a,0x82,0x07,0xd3,0xe8,0x19,0x6e,0x21,0xd2,0xa2,0xa8,0x14,0xbc,0x42,0xb6,0xeb,0x8c,0x40,0x9b,0xb2,0xa9,0x17,0xad,0x2c,0x19,0xaa,0x4b,0x22,0xf9,0x4e,0xde,0x8f,0xbe,0x78,0x9b,0xab,0xb9,0xfa,0xb1,0x3e,0x68,0x86,0x1a,0x4a,0x61,0xba,0x63,0x51,0x25,0x11,0x59,0xd0,0xb7,0x0c,0xb7,0xcc,0x45,0x05,0x6d,0x5a +.byte 0xe2,0xd7,0x10,0x80,0x19,0xd3,0xa9,0xab,0xb6,0x9f,0x53,0x7a,0xaa,0x19,0x74,0x01,0xc9,0xd6,0x45,0x42,0x2c,0xe5,0xc0,0xcf,0x62,0xe6,0x95,0x6f,0x4c,0x90,0x50,0x97,0x61,0x83,0x73,0xd0,0xc2,0xd5,0xf0,0x05,0xca,0xe9,0x6f,0x67,0xa9,0x51,0xb8,0xb4,0x9d,0x30,0x8e,0xe3,0x29,0xf9,0x3b,0x3d,0x17,0x25,0xad,0xbb,0xb0,0x34,0x68,0x29 +.byte 0x06,0xad,0x0e,0xdf,0x41,0xa6,0xf1,0xa6,0x25,0xc4,0xf0,0x0d,0x57,0x84,0x34,0x2c,0x3b,0xb1,0x41,0xd6,0x83,0x00,0x3a,0x91,0x98,0x8e,0xd0,0x59,0x0b,0x2d,0xc9,0x65,0x03,0x91,0xcb,0x03,0x97,0x57,0xde,0x11,0x8b,0x4b,0x1b,0x85,0x0b,0xb6,0x68,0x25,0x3c,0x1a,0x04,0x7d,0xd5,0x2b,0x16,0x69,0x1f,0x64,0x8b,0x47,0x60,0x17,0xaa,0x68 +.byte 0x45,0xf2,0x0b,0xf8,0xa2,0x27,0xf8,0x47,0x86,0x41,0x94,0x3f,0x92,0xc3,0x02,0xab,0x80,0x2b,0x0e,0x3c,0xd0,0x13,0x59,0x08,0xfc,0x13,0x33,0x52,0xbb,0x2d,0x6b,0x22,0xa2,0x8b,0x9f,0x7c,0x8e,0x40,0x35,0xa4,0xc7,0x45,0xb7,0xf8,0x10,0x22,0x95,0xc5,0x48,0xc1,0x50,0x4d,0x4a,0x36,0xe1,0xec,0x1e,0x07,0xf7,0x68,0x63,0xcb,0x13,0x03 +.byte 0x70,0x63,0xb1,0x9b,0xf3,0x60,0x01,0x6e,0x63,0x5c,0x4d,0x2c,0x5c,0x5c,0x58,0x8b,0xbb,0x6e,0xd1,0x69,0xdd,0x19,0xfe,0xfb,0xd6,0xdc,0x68,0x97,0x9c,0x46,0x0d,0xdd,0x4d,0xbd,0x52,0xe4,0xd9,0xc2,0x03,0x4e,0x4c,0xe2,0x66,0x6b,0x4d,0xbe,0x6b,0xf3,0xd6,0xbe,0x2d,0xba,0xdd,0x1b,0x4f,0x60,0x02,0x74,0xa1,0xf0,0xd0,0xfa,0x23,0x33 +.byte 0x29,0x7e,0x00,0x09,0x47,0x15,0xa8,0xd8,0xdb,0xb8,0xe1,0x20,0xd5,0xe2,0x91,0xd0,0xe8,0xfa,0xa1,0x0d,0x80,0xbd,0x7d,0x62,0x9d,0xf2,0xbc,0x03,0xa1,0x44,0x9f,0x8d,0x3d,0xe3,0xb4,0xec,0x32,0xd9,0x66,0xb0,0xc7,0x75,0x11,0xaa,0xab,0xb7,0x84,0x1d,0x5b,0x4f,0x25,0x5c,0x53,0xed,0xbb,0x6d,0x06,0x1f,0x12,0x5f,0xc0,0xeb,0x55,0x3e +.byte 0xd0,0x5b,0x4d,0x07,0xf7,0x84,0x12,0xbc,0xc8,0xd4,0xf4,0x69,0xdb,0x71,0x8a,0x00,0x58,0xf5,0x84,0xff,0xc3,0xbc,0x13,0x6e,0x5f,0xac,0xd6,0x72,0x1b,0x2d,0xbb,0x27,0xfd,0x8d,0xcc,0x59,0x79,0xb9,0x63,0xe8,0x0a,0xf3,0x7f,0xa4,0x9f,0x4c,0x35,0x9a,0xdc,0xff,0x11,0x42,0xf3,0x1c,0x86,0xd0,0x22,0x7e,0x81,0x79,0x04,0x93,0x5c,0xf2 +.byte 0xab,0xdf,0xb7,0x1d,0x84,0xbd,0xde,0xfb,0xd2,0x75,0x43,0xb8,0x19,0x63,0x97,0xfe,0x0e,0x91,0x9d,0x38,0x50,0xc5,0x7a,0xd6,0x51,0xd4,0xfc,0x8d,0xec,0xd5,0xe2,0x07,0xce,0x21,0x03,0x02,0xa1,0x61,0x8d,0xf1,0xf5,0x1f,0xb3,0xaf,0x9f,0x13,0xd8,0x81,0xd2,0xf7,0xe9,0xe2,0x62,0x49,0xca,0x1c,0x15,0x07,0x39,0xe6,0x01,0xec,0x6c,0x7d +.byte 0x3b,0xf1,0x52,0xda,0xf2,0x97,0x55,0xef,0x6f,0x88,0x82,0x0e,0xe6,0xf4,0x3e,0x33,0xf6,0x61,0x6d,0xef,0xbf,0xa8,0x9a,0x91,0x2f,0xb3,0xd2,0x3d,0xaa,0x7a,0x4e,0x80,0xe1,0x04,0xbe,0xc7,0xf8,0xc3,0xc9,0xd8,0xa2,0x01,0x5d,0x30,0xae,0x6d,0x39,0x52,0x60,0x9d,0x07,0xd5,0xa2,0x86,0xf0,0x88,0x00,0xec,0x18,0x11,0x2d,0x69,0x86,0xa9 +.byte 0x5a,0x73,0xda,0x4e,0x4c,0xdb,0xb8,0x02,0xad,0x53,0xec,0x20,0x0f,0x35,0xe0,0x4f,0x6e,0xd5,0x04,0xcc,0xa0,0xf5,0x8c,0x7d,0x31,0x04,0xa4,0xcf,0xf0,0x27,0xd2,0xb6,0x7d,0x8c,0x26,0x5f,0x19,0xba,0x79,0x80,0xec,0x6d,0xfe,0xaf,0xc1,0x3a,0xc2,0x3d,0x14,0x3c,0xa0,0xc5,0x77,0xf4,0x96,0x56,0x51,0x8b,0x7c,0x7e,0xe5,0x23,0x5d,0x46 +.byte 0x1b,0x2e,0x28,0xc0,0x80,0x6b,0x6a,0x85,0x6c,0xcf,0xaa,0x28,0xf3,0x83,0x2d,0x42,0x6f,0xf3,0x5e,0x5d,0xa2,0x7b,0xba,0x5c,0x12,0xb0,0xda,0xa0,0xeb,0xdf,0xad,0x1d,0x4c,0x54,0xcf,0xad,0x02,0x68,0xcd,0xfe,0x5c,0x5b,0x65,0x6d,0xa5,0xcc,0xd3,0xed,0x32,0x74,0x6c,0x58,0x83,0x3a,0xc1,0x71,0xbf,0xb5,0xa2,0xbd,0x10,0xe5,0x46,0xc5 +.byte 0x00,0x82,0xb1,0xeb,0x6f,0x73,0xf9,0x12,0x23,0xe4,0xda,0xff,0xa3,0xc4,0x9c,0xf1,0xcc,0x0e,0x1a,0x7a,0x10,0x62,0x8f,0xa5,0xb2,0x35,0x51,0x67,0xb5,0x95,0xbe,0x4c,0x81,0x53,0xfc,0xdd,0x27,0x26,0x97,0x42,0x01,0xec,0x08,0x91,0xb8,0xf0,0xaf,0x57,0x54,0x73,0x52,0x8f,0xde,0xca,0xed,0x1b,0xca,0x8d,0x97,0x1e,0xdc,0xe7,0xfa,0x68 +.byte 0xaf,0x37,0xb0,0x62,0xa3,0x9f,0xbc,0xac,0x9f,0x28,0x1e,0xb7,0xaa,0xb0,0x91,0xe4,0x95,0xad,0xf9,0xe5,0xd4,0xcc,0x23,0x0f,0x4a,0x2d,0xdd,0xea,0x64,0xd1,0x04,0x3c,0xd0,0xca,0xfe,0xd3,0x19,0x9d,0x28,0xa5,0x1c,0xff,0x3e,0xae,0xe9,0xfb,0x12,0x03,0x6d,0xcf,0xbc,0x5f,0x27,0xce,0x1a,0xb9,0xc0,0x31,0x88,0x6e,0x2e,0xaf,0x35,0x5f +.byte 0xf0,0xce,0x92,0xf8,0x6f,0xd6,0x67,0x1c,0xc6,0x5c,0xee,0x59,0xaa,0xd6,0x8c,0xa8,0x13,0xe6,0xf7,0xe2,0x82,0x2f,0x82,0x1e,0x4c,0x0d,0xab,0x3e,0xdb,0x4d,0xc5,0x90,0x32,0xe4,0xf0,0x74,0xc1,0x92,0x1b,0xdd,0xf3,0xa7,0xf6,0x6b,0x01,0x9d,0x8d,0x78,0x3d,0x5a,0x46,0x74,0x16,0x93,0x44,0xca,0xbe,0x31,0xea,0xb4,0x65,0xcd,0xe6,0xdd +.byte 0x56,0x9d,0x63,0x48,0xf0,0xf3,0x15,0x91,0x6c,0x27,0xf9,0xf7,0x3b,0x9f,0x04,0x6d,0x4d,0x1d,0xf1,0x7c,0xd1,0x81,0x06,0xef,0x04,0x47,0x98,0x5d,0x21,0xf4,0xe0,0xa0,0x13,0xaf,0x1d,0xb0,0xd5,0x45,0x64,0x92,0x46,0x99,0xff,0xb4,0xbf,0x36,0x01,0x2d,0x23,0x6a,0xc4,0x6b,0x3f,0x91,0x10,0x03,0xaf,0x6e,0x79,0x86,0xdb,0x15,0xde,0xfa +.byte 0x0d,0x71,0x04,0x16,0x12,0x31,0x9b,0x69,0xb9,0xe0,0xe7,0x4e,0xfd,0x0e,0xd5,0x71,0xa0,0xc7,0xd7,0x46,0xdb,0xda,0xbd,0xcd,0xdc,0x77,0xe5,0x71,0x9d,0xa1,0xf4,0x02,0x10,0xc6,0x27,0x76,0x4e,0xa6,0x35,0xe6,0x9e,0xda,0xbe,0xd8,0xc0,0x21,0x15,0xd4,0xcc,0xd5,0x4b,0xdf,0x38,0xc5,0x15,0x4b,0xfa,0x4e,0x83,0xf4,0x27,0xdb,0x8a,0xb1 +.byte 0x0e,0x1f,0xc9,0x3c,0x1c,0x36,0x35,0x54,0x8b,0x54,0xf8,0x31,0x1e,0x0e,0x1c,0x4e,0x44,0x29,0x90,0xad,0x28,0x85,0xb4,0x72,0x2d,0x1b,0x8b,0x26,0x2f,0xb6,0xc2,0x14,0x0e,0x81,0xd0,0x37,0x29,0x5c,0x0f,0xdc,0x21,0x62,0x10,0x7a,0xeb,0xa3,0x6e,0xd4,0x5b,0xb4,0x13,0x2e,0xd6,0x8f,0xd9,0x57,0x0d,0x9b,0xfd,0x1e,0x66,0xb7,0x6e,0xac +.byte 0x88,0xb9,0x75,0x60,0x62,0x83,0x72,0x96,0xc6,0x2e,0xdc,0xfe,0x88,0xee,0x07,0x9a,0x62,0x19,0xde,0xf1,0xa5,0xfb,0xcc,0xdb,0x4a,0xeb,0x16,0x60,0x34,0x46,0xfc,0xf2,0x6d,0xee,0xfc,0xa0,0x3a,0xb1,0x11,0x03,0x8b,0xae,0x26,0xef,0x86,0x91,0x20,0x7a,0x19,0x35,0xd6,0x12,0xfc,0x73,0x5a,0xb3,0x13,0xf8,0x65,0x04,0xec,0x35,0xee,0xf8 +.byte 0x70,0xb2,0x0b,0xe1,0xfc,0x16,0x35,0xec,0x6b,0xdd,0x8b,0xdc,0x0d,0xe8,0x91,0xcf,0x18,0xff,0x44,0x1d,0xd9,0x29,0xae,0x33,0x83,0xfe,0x8d,0xe6,0x70,0xbb,0x77,0x48,0xaa,0xe6,0xbc,0x51,0xa7,0x25,0x01,0xcf,0x88,0xc4,0x8b,0xfc,0xb1,0x71,0x01,0xc7,0xfc,0xd6,0x96,0x63,0xee,0x2d,0x04,0x1d,0x80,0x24,0xd0,0x80,0x03,0xd9,0x18,0x96 +.byte 0xec,0x6a,0x98,0xed,0x6e,0x9a,0xe0,0x42,0x5a,0x9d,0xec,0xed,0x46,0x3c,0xb5,0xf0,0xd6,0x88,0x92,0x89,0x38,0x5f,0xd6,0xba,0xfd,0x32,0x31,0x81,0xe9,0xf1,0x56,0x89,0xa3,0x56,0xa6,0x03,0x00,0x60,0xe1,0xa8,0x59,0xdb,0xbe,0x72,0x39,0x6c,0x08,0x4d,0x26,0x57,0xa6,0xf6,0x13,0x7d,0x4a,0x2f,0x64,0xb8,0xa7,0x23,0x2c,0xa4,0x4a,0xad +.byte 0xcf,0xa1,0xa2,0x32,0xbb,0xd1,0x98,0x02,0xe4,0x1a,0x41,0x26,0x23,0xba,0xa2,0x17,0x62,0xaa,0xa6,0xc7,0x74,0x9d,0xea,0xc7,0xa0,0x08,0x0a,0x1a,0x4e,0x71,0xd9,0x45,0xf7,0xe8,0x57,0x79,0x12,0xd0,0x38,0x2f,0xdb,0xbd,0x5a,0x84,0xe1,0xb2,0x62,0x7e,0x56,0xb3,0x50,0x2a,0xa0,0x32,0x1f,0x86,0x71,0xc4,0xa5,0xba,0x93,0x5b,0x22,0x97 +.byte 0xf4,0xe5,0x44,0x27,0x6b,0x06,0x84,0x55,0x19,0x45,0x12,0x75,0x4b,0xf0,0x76,0x6d,0x3c,0x0a,0x17,0xc2,0x9d,0x96,0x72,0xe7,0x5e,0x79,0x84,0x0a,0x39,0x64,0x09,0x6e,0x7e,0xd7,0x77,0x40,0x75,0x2c,0xbd,0x98,0xae,0x3e,0x34,0x08,0x4d,0xda,0x2c,0xcf,0x0c,0xa2,0x8c,0x40,0xfa,0x34,0x43,0x15,0xed,0x4f,0x69,0xa6,0xef,0x2d,0x3c,0x55 +.byte 0x7a,0xe1,0x67,0xd1,0x0a,0x89,0xe0,0x2d,0x02,0x35,0x57,0xc8,0x9a,0x4b,0xc4,0x46,0xa7,0x57,0x03,0x89,0x7d,0x3f,0x70,0x47,0x03,0x06,0xd9,0x81,0x1f,0x8d,0x7e,0x36,0x9b,0xfd,0xad,0x20,0x9d,0x5a,0x29,0xe9,0x40,0x6a,0xb8,0x07,0x6b,0xc7,0x2b,0x58,0xd2,0x1d,0xef,0x88,0xa5,0xfb,0x3b,0xd6,0x9f,0xfd,0x89,0x0e,0x50,0xd4,0xbc,0x89 +.byte 0x3f,0x3c,0x6c,0x50,0xc6,0xe3,0x8b,0x7e,0x34,0x8b,0x26,0x99,0x2a,0xfa,0xa5,0x19,0x53,0xb5,0x5e,0xfd,0x94,0xe8,0x33,0xb2,0x6d,0x9c,0x3c,0x0c,0x14,0x90,0xc4,0xa2,0x4a,0x3a,0xca,0x07,0x72,0x46,0x37,0xfc,0x02,0x5d,0xf4,0x97,0xca,0x8e,0xc6,0xc4,0x63,0xda,0x5c,0x89,0xc3,0x6c,0xb1,0x1a,0xf5,0x2a,0xbc,0x2e,0xe3,0xcd,0x2f,0xe2 +.byte 0x91,0x16,0xf9,0x94,0x0e,0x1b,0xe6,0x01,0x73,0x61,0x1e,0xcf,0x5e,0x21,0x70,0xcb,0x5b,0x87,0xc1,0x46,0x39,0x59,0xa6,0x74,0x82,0x7f,0xa2,0x6c,0x4a,0x50,0x5f,0xbd,0x1c,0x1a,0x65,0x80,0x01,0x44,0x19,0xcf,0xcd,0xef,0x3d,0x5e,0x1b,0x71,0x82,0x4f,0x8b,0xc1,0xa0,0x9a,0x77,0xee,0xac,0x06,0xdc,0x6a,0xa0,0x34,0x50,0xa4,0xe0,0xda +.byte 0x3d,0xa0,0xf7,0x9a,0xb8,0xd5,0x59,0xe0,0x7f,0x05,0x04,0xd5,0x32,0x8c,0x49,0xf5,0x0a,0x0e,0x99,0x83,0xf5,0x47,0x2b,0x7c,0x7b,0x65,0x25,0x02,0xc4,0x88,0xbb,0x6a,0x4f,0x89,0x31,0x60,0xc2,0x47,0x8b,0x22,0xfc,0x4a,0xde,0xb3,0xb9,0xed,0xb8,0xdf,0xd7,0xd5,0x09,0x98,0xcc,0x5f,0xaf,0xbb,0x02,0xc3,0x62,0x62,0xee,0x99,0x42,0x1b +.byte 0xbe,0x5b,0xa8,0x5c,0x40,0x03,0x86,0x29,0x29,0x06,0x0b,0x53,0x46,0x29,0x03,0x3b,0x11,0x64,0xf1,0x09,0xca,0x69,0x69,0xfa,0xcc,0x85,0x23,0x14,0x1b,0xfd,0x65,0xb9,0xf5,0x6b,0xbb,0x2a,0x9d,0x6e,0x64,0x1a,0xe1,0x37,0x39,0xd4,0x85,0x40,0xa3,0xf9,0x04,0xec,0x9e,0x3b,0x74,0x97,0xa4,0x64,0x8a,0x48,0xb2,0x62,0xc1,0x1c,0xed,0x67 +.byte 0x6f,0x23,0xae,0x0f,0x64,0x2e,0xe5,0x92,0xb6,0xb5,0x71,0x24,0xc0,0x60,0x9a,0x10,0x23,0x6b,0x4a,0x22,0xe9,0x0a,0xaa,0x09,0x62,0x39,0xe0,0x40,0xee,0x13,0x27,0x14,0x73,0xeb,0x75,0x7b,0x4a,0xe1,0x42,0x65,0x37,0xae,0x80,0x08,0x26,0xf9,0x53,0x98,0x58,0xdd,0xf5,0xed,0x26,0x37,0x37,0x85,0xb5,0x88,0x91,0x05,0x2d,0x04,0xa6,0xd5 +.byte 0xa6,0x98,0xb0,0x0e,0x4b,0x4c,0x53,0x76,0x79,0xad,0x82,0xc5,0x16,0xba,0xd8,0x20,0x5f,0x4c,0x1d,0x69,0xa0,0xe0,0xe9,0xbc,0xb8,0x5c,0x10,0x4a,0x0a,0xd3,0x52,0x9c,0x2e,0x1b,0x6c,0xf7,0x43,0x83,0x6f,0xa9,0xcc,0x00,0xed,0x16,0x4c,0xc3,0x24,0x79,0x59,0x68,0xfb,0xf9,0xf6,0xb0,0xb4,0x01,0xc2,0xdd,0xf7,0xe5,0x3b,0x60,0x48,0x49 +.byte 0x32,0x48,0x05,0xa8,0x62,0xa3,0x03,0x9f,0x3d,0x91,0xdb,0x84,0x64,0x6f,0x1e,0x50,0x8e,0xdf,0x1a,0xa0,0xb1,0xf4,0x34,0x7c,0xe6,0xb7,0x7c,0x14,0xa1,0x65,0x1a,0xb4,0xdb,0x67,0x78,0xb1,0x88,0x3c,0xc2,0x5e,0x0e,0xea,0x32,0x15,0xc7,0xda,0xe4,0x9a,0x44,0xde,0x61,0x90,0x3b,0x97,0x11,0x5b,0x6d,0xa5,0x9a,0x2f,0x1b,0x8b,0xd7,0xdd +.byte 0x73,0xe4,0xc3,0x19,0x5d,0x68,0xcf,0x0e,0xe4,0x69,0xa5,0xeb,0x50,0x6f,0x79,0xff,0x91,0xc6,0x95,0x83,0xe8,0x72,0x6a,0x01,0x49,0x2b,0xcf,0x8f,0x93,0x1e,0xef,0x31,0x17,0x8f,0xa8,0x2b,0x5f,0x4b,0x79,0x8b,0xe5,0x6c,0xb7,0x61,0xd5,0x9e,0xe0,0xd4,0x25,0xc3,0x93,0x31,0x8f,0x66,0x6c,0x48,0x30,0x65,0xf4,0xd7,0xde,0x64,0xee,0xbd +.byte 0xbd,0xad,0x32,0xfc,0xf3,0xd8,0x7c,0x85,0x7c,0x24,0x40,0xb6,0xd4,0xe0,0x4b,0xc0,0xab,0xcc,0xeb,0x77,0x7c,0xb7,0x33,0x3c,0x90,0x04,0xaf,0x85,0xaa,0xb4,0xaa,0x90,0x67,0x29,0xd9,0x85,0x6a,0x34,0xf4,0xc4,0x6c,0xbc,0xb4,0x86,0x54,0x83,0xd5,0x5e,0xf3,0xdd,0x1a,0x56,0x5e,0xa5,0xd8,0x06,0xc0,0xa7,0x27,0xd4,0x0d,0x5b,0x08,0xf4 +.byte 0xb4,0x15,0xf9,0xb4,0x56,0x1c,0x80,0x98,0xc9,0xcd,0xf0,0x38,0x18,0xbe,0x99,0xec,0x7e,0x0c,0x3d,0xc1,0x98,0x26,0x9d,0x50,0xe4,0x00,0xcf,0x0f,0x0b,0x77,0x86,0x31,0x55,0x38,0xa4,0x31,0x50,0x51,0x64,0x88,0x81,0x05,0x32,0x99,0x38,0xd1,0x62,0x20,0x8e,0xf0,0x29,0x31,0xf5,0x79,0xbb,0x1e,0x0f,0xba,0x51,0x94,0xa9,0x54,0xcd,0x43 +.byte 0xce,0xe5,0x2c,0x29,0xa5,0x51,0x23,0x97,0x5d,0x36,0xff,0x51,0x5c,0x66,0xb7,0x62,0x1b,0x5f,0xd7,0x2f,0x19,0x07,0xff,0x0a,0xfc,0xf6,0x6e,0xb5,0xfd,0xa9,0x92,0x40,0xd3,0xe6,0x99,0x15,0x6f,0x1e,0x91,0xad,0x1f,0x4d,0x1c,0xe2,0xd9,0xcf,0x01,0x71,0xec,0x1a,0xa3,0xba,0x48,0x40,0xfd,0x18,0xb1,0x24,0x2b,0xd2,0x37,0xb5,0x74,0xdd +.byte 0x7e,0xf6,0x18,0xb4,0x7b,0x0e,0x7d,0x65,0x46,0x7b,0xe3,0x51,0x03,0xae,0xe1,0xd0,0x74,0xc6,0xc9,0xda,0x0e,0x79,0x6f,0xf5,0x62,0xc0,0x7e,0x76,0x3e,0x13,0x8b,0xe0,0x4c,0xfa,0x7e,0xe1,0xa2,0xee,0x9d,0x3f,0x91,0x9d,0x21,0xdd,0xc2,0xd0,0xa5,0x1d,0x17,0xd6,0xdc,0xeb,0xa3,0xc0,0x71,0xa0,0xfe,0xf0,0xaf,0x31,0xdc,0xa3,0xd4,0x21 +.byte 0x4a,0x32,0x1d,0x54,0x25,0x3b,0xc8,0x8f,0x68,0xcd,0x99,0xce,0x76,0x39,0x42,0xd8,0xca,0xf2,0x46,0x72,0xfe,0x52,0xc2,0x90,0x83,0xed,0xa0,0x6d,0x1b,0xf5,0xb1,0x09,0xae,0x2b,0x34,0x4f,0xd3,0x78,0x19,0x7f,0xad,0x8d,0x50,0x26,0x9c,0x36,0xa3,0xb5,0x3d,0x0b,0xa6,0x87,0x65,0xa0,0xdb,0x88,0x20,0xff,0xb6,0xfd,0xc5,0xbd,0x0a,0x28 +.byte 0xc8,0x9c,0x42,0x7f,0x24,0x58,0xe9,0x07,0x53,0x4b,0x9a,0x2a,0x1e,0x7b,0x90,0x97,0x78,0x74,0x80,0x5d,0xe5,0x6e,0xae,0x15,0x68,0xd4,0x2a,0x3a,0xd3,0x00,0x4f,0x4b,0xff,0x8f,0x1e,0x8f,0x9f,0x75,0xe5,0xea,0x9d,0xb9,0xed,0x8f,0xa9,0x2b,0x70,0xa8,0xcb,0x08,0x85,0xd3,0x8f,0x5d,0xc7,0x49,0x66,0xcc,0xa8,0x6d,0xbd,0x01,0x93,0xd5 +.byte 0xe6,0x75,0x2e,0x25,0x07,0x59,0x86,0x3f,0x44,0x8b,0x0b,0xb5,0x38,0xd5,0xbd,0xcf,0x48,0x8a,0xf7,0x71,0xd6,0x6b,0x2e,0x93,0x3d,0x0b,0xc0,0x75,0xee,0xa8,0x5d,0x9c,0x3d,0xa5,0xdb,0xc5,0x8d,0xac,0xda,0xf4,0xcd,0x5f,0x24,0xfe,0x86,0x14,0x44,0x65,0x3f,0x89,0x7f,0xd3,0x61,0x48,0xb0,0x43,0xf0,0x1e,0xde,0xbc,0xb7,0x51,0x0f,0xfc +.byte 0x32,0xf2,0x04,0xe2,0x4b,0xcb,0xbb,0x63,0x7d,0x5b,0x9a,0xb1,0x91,0x57,0x89,0xdc,0xed,0xde,0x91,0x2d,0xdd,0x42,0xc8,0x3c,0xb0,0xd7,0xa5,0xbc,0xa7,0x33,0x14,0x32,0xaf,0xf7,0xe9,0x25,0xd2,0x1a,0x64,0xf7,0x1b,0xab,0x0e,0xbc,0x50,0xbc,0x85,0x44,0xe0,0xa6,0xf1,0x4a,0x32,0x2f,0x30,0x27,0x48,0x4f,0xfc,0x8a,0x5a,0x78,0xe7,0x16 +.byte 0x55,0xcf,0xca,0x15,0xa8,0xa8,0xa2,0xef,0x9a,0x16,0x02,0xf4,0xb0,0x44,0xfd,0xc4,0x51,0x01,0x4f,0x1d,0x9d,0x09,0x62,0x42,0xe9,0x8b,0x18,0xa4,0x65,0xef,0x8b,0xfe,0x71,0x9f,0x4b,0x47,0x48,0x41,0x73,0x5c,0x0c,0x52,0x7d,0x79,0xbc,0x93,0x2a,0xaa,0x81,0x99,0x21,0xa5,0x9e,0xac,0xcd,0x57,0x51,0x50,0xbc,0xc9,0x96,0xaf,0xdf,0x1a +.byte 0x8f,0xee,0x36,0x05,0x20,0x32,0xe8,0x51,0x94,0x72,0x12,0xa3,0x17,0x25,0x7f,0x0a,0x3e,0xcc,0x22,0xcf,0x05,0xb2,0x2b,0xaa,0x36,0x01,0xdf,0xd4,0x4e,0xe1,0x02,0x43,0x4e,0xac,0x50,0x64,0xcd,0x2f,0xc2,0xa9,0xb0,0xf2,0xf2,0x4c,0xdf,0x16,0xa6,0x54,0xf7,0xbf,0x1a,0x69,0xeb,0xa1,0x5a,0xc7,0xcf,0x46,0x2d,0xc2,0x3a,0x7f,0x4a,0x14 +.byte 0x22,0x15,0x46,0x46,0x2d,0xc1,0x98,0xf7,0x0b,0xf3,0x27,0xfc,0x78,0x67,0x05,0xd8,0xe0,0xf6,0xb8,0xb6,0x0b,0xdb,0x4d,0x6b,0x7e,0x9b,0xbf,0x5c,0x15,0x97,0x49,0x9f,0x6f,0x11,0x6c,0x6e,0x1d,0x1e,0x65,0x5b,0xb9,0x60,0x8f,0xa3,0xa9,0x99,0x17,0x92,0xb8,0x65,0x25,0xc4,0xef,0xea,0xa6,0xc0,0x57,0xa9,0x4c,0x78,0xe3,0xd6,0xf2,0x19 +.byte 0x9c,0x86,0x9e,0x45,0x3e,0xfd,0x21,0x4c,0x2a,0x56,0x7c,0x23,0xf2,0x22,0xa1,0x81,0xdb,0xe6,0xfa,0x85,0x19,0x3b,0x1d,0x61,0xb3,0x21,0xb5,0x64,0x1d,0x07,0x66,0xd2,0xe5,0x9c,0xb0,0x76,0x9d,0xc9,0x02,0x6a,0x8d,0xd5,0x84,0xd5,0xa7,0x7c,0x70,0x64,0x46,0xd6,0xff,0xc7,0x9f,0x2f,0xed,0xc1,0x5a,0xcb,0x56,0x12,0x31,0x9d,0xff,0x66 +.byte 0x9a,0xf8,0x50,0xc6,0x54,0xfd,0x8d,0x49,0x32,0x8c,0xdd,0x8c,0xbe,0x30,0x79,0xaf,0x1a,0xd5,0x28,0x1d,0x03,0x87,0x12,0x60,0x7a,0xcc,0xe6,0xe8,0x4e,0x21,0x5d,0xa3,0x06,0xfb,0xdf,0xf6,0x31,0xd6,0x10,0x3e,0xec,0x23,0x69,0xc7,0x7b,0xf6,0x78,0xa6,0xd1,0x8a,0x48,0xd9,0xdc,0x35,0x1f,0xd4,0xd5,0xf2,0xe1,0xa2,0x13,0x8a,0xec,0x12 +.byte 0xa7,0xf1,0x5d,0xb2,0xc3,0x6b,0x72,0xd4,0xea,0x4f,0x21,0xff,0x68,0x51,0x51,0xd9,0xd7,0x2f,0x28,0xd7,0xdf,0xbc,0x35,0x4f,0x49,0x7e,0xe7,0x21,0x82,0xd7,0x0c,0x7c,0xf4,0x86,0x86,0x62,0xcd,0xf5,0x23,0x77,0xc1,0x14,0x8a,0xc4,0x2a,0x82,0x74,0x0e,0x90,0x93,0xd5,0x5a,0xc0,0x57,0x93,0x1a,0xe1,0x1c,0x13,0x17,0x72,0xc3,0xa6,0x54 +.byte 0xc4,0xe2,0xfc,0xd3,0xa0,0xce,0x08,0x87,0x9e,0x2a,0xaf,0xa7,0xbb,0x2d,0xaf,0xc0,0x38,0x97,0xc8,0x6d,0xb8,0x7b,0x75,0xc5,0xf2,0x79,0x62,0xdc,0x7c,0xa9,0xfd,0x19,0xa2,0xb1,0xee,0xdf,0x90,0x18,0x5a,0xdb,0x3c,0xba,0x0d,0x84,0xd6,0xaf,0x15,0xee,0xb6,0xa5,0x78,0x38,0x87,0xdf,0x42,0xd6,0xd1,0xa2,0xe9,0xe0,0xa6,0xf2,0x4e,0xa4 +.byte 0xed,0xa5,0xf6,0x66,0x7f,0x99,0xbc,0xfb,0x4b,0x37,0xca,0x5a,0xb3,0x29,0x8e,0x80,0x30,0x8b,0x74,0x7b,0xac,0x61,0xfb,0xca,0x62,0xfe,0x24,0xc4,0x6e,0xac,0x66,0x97,0xaa,0x9a,0x99,0xe6,0xa8,0xa4,0xd8,0x62,0x58,0x7c,0xd1,0xeb,0xee,0xc8,0x08,0xa0,0x54,0xde,0xb1,0xef,0x57,0x2c,0xb6,0x2c,0x78,0x22,0x10,0xbb,0xfe,0x4b,0x77,0xa5 +.byte 0x5a,0xed,0xbb,0xf8,0x97,0x96,0x20,0xa9,0x8c,0x78,0xb5,0xb9,0x55,0xc9,0xaf,0xb9,0xa1,0x1f,0x13,0x52,0xf9,0xbb,0xaa,0x98,0x01,0x57,0xa6,0x88,0xaa,0x5c,0xf0,0x62,0x5b,0x3e,0xe1,0x5f,0xf4,0x98,0x95,0x8b,0x8f,0x48,0xd6,0xd5,0x8b,0xc2,0x1d,0x45,0x7d,0xe2,0x03,0x66,0x84,0xfc,0xbd,0x8e,0x95,0x9f,0x58,0x99,0x7b,0x4c,0xb6,0xe5 +.byte 0xe2,0xf9,0x2e,0x92,0x58,0xca,0xa9,0x24,0x9c,0x7c,0x46,0xdf,0xea,0xb4,0x6e,0x0e,0xa5,0x9c,0x14,0xbf,0x25,0x5b,0x39,0x4a,0xaf,0x31,0xaa,0xd1,0x2c,0xe6,0x06,0x3d,0xc4,0x60,0xc7,0xcd,0x49,0x8d,0xe1,0x50,0x55,0xe4,0x72,0x68,0xed,0x43,0xb8,0x85,0xa3,0xc3,0xf1,0xf5,0xd1,0xcf,0xcb,0x57,0xac,0x04,0x16,0x22,0xe4,0xfc,0x4a,0x13 +.byte 0x60,0x3f,0x09,0xa4,0xf2,0x9b,0x34,0xeb,0x0c,0x10,0x57,0xc3,0x3f,0x15,0xb5,0x1b,0x6a,0xb3,0x7d,0x37,0x02,0x4c,0x0f,0x6f,0x8b,0x4d,0x5d,0x57,0x7d,0xbf,0x00,0x8a,0x74,0xb4,0x4c,0x5f,0x90,0x27,0x76,0x09,0x8c,0x18,0x3f,0x26,0x3a,0x09,0x06,0xdd,0x8b,0xff,0x0e,0xa4,0xae,0xef,0x0c,0x81,0xf2,0xf3,0x1f,0xe0,0x33,0x33,0x37,0xc6 +.byte 0xc3,0xfb,0x14,0xdd,0xa1,0x16,0x84,0x80,0xcb,0x37,0xe7,0x97,0x6d,0x21,0xa7,0x71,0x19,0x2b,0x2d,0x30,0xf5,0x89,0x2d,0x23,0x98,0xfc,0x60,0x64,0x4a,0x26,0x65,0x4a,0xef,0x12,0x59,0xa3,0x8c,0xd9,0xbd,0xdc,0xb7,0x67,0xc9,0x8d,0x51,0x72,0x56,0x6a,0xe5,0x59,0xa2,0x53,0x4f,0xb6,0x53,0xff,0xb0,0xd4,0x06,0x7f,0x79,0x23,0xf9,0xcb +.byte 0xbf,0x9a,0x93,0xde,0x88,0x33,0x58,0x70,0xa7,0xcc,0x07,0xb1,0x44,0xb9,0x99,0x1f,0x0d,0xb9,0xc9,0x18,0xdc,0x3e,0x50,0x22,0xfb,0x4e,0x86,0x0d,0xc0,0xe7,0x7f,0xc6,0xa1,0x52,0x0d,0x8d,0x37,0xe6,0xaf,0xe3,0x13,0xbe,0xa6,0xf9,0x59,0x39,0x0f,0x17,0x66,0xce,0xb1,0x7d,0x7f,0x19,0x1a,0xf8,0x30,0x3a,0xa5,0x72,0x33,0xa4,0x03,0xb6 +.byte 0xb6,0x9b,0xde,0x7a,0x7a,0x62,0x3d,0x85,0x98,0x8e,0x5d,0x8a,0xca,0x03,0xc8,0x2c,0xae,0xf0,0xf7,0x43,0x3f,0x53,0xb2,0xbb,0x1d,0xd0,0xd4,0xa7,0xa9,0x48,0xfa,0x46,0x5e,0x44,0x35,0x50,0x55,0xdc,0xd5,0x30,0xf9,0x94,0xe6,0x5f,0x4a,0x72,0xc2,0x77,0x59,0x68,0x93,0x49,0xb8,0xba,0xb4,0x67,0xd8,0x27,0xda,0x6a,0x97,0x8b,0x37,0x7e +.byte 0xe9,0x59,0x89,0xc7,0x5e,0xd9,0x32,0xe2,0xaa,0xd1,0xe9,0x2b,0x23,0xca,0x9d,0x89,0x7a,0xf5,0xe4,0xfb,0x29,0xcc,0x88,0xfb,0x82,0x0f,0xbf,0x47,0x54,0xca,0x2b,0x4b,0xd8,0x47,0x7f,0x65,0x38,0x5a,0xb3,0xe8,0x0b,0xd7,0xe1,0x8b,0x89,0x57,0x32,0xdb,0xa3,0x85,0xba,0xf9,0xbc,0x52,0x92,0x20,0x10,0x66,0x54,0x81,0xe1,0x49,0x3f,0xe1 +.byte 0x8c,0x2e,0x0b,0x3b,0xe7,0x49,0xb4,0x60,0x5a,0x20,0x33,0xc4,0x4e,0x81,0xef,0x96,0xda,0x73,0x90,0x2b,0xb4,0x86,0xa1,0x5c,0xcd,0xa0,0xc7,0xf3,0x06,0x0d,0x2a,0x5a,0x41,0x96,0xf5,0x40,0x1b,0x0a,0x3a,0xb7,0x38,0xe1,0xbb,0xe3,0x42,0xf9,0x52,0xe5,0x98,0xe2,0x17,0xd4,0xb0,0x09,0x73,0x75,0xc1,0x00,0x18,0x0f,0xa7,0x0b,0x58,0xc1 +.byte 0x78,0x5c,0x0c,0x05,0xd8,0xfb,0xc5,0xfd,0x5c,0x66,0xbe,0x54,0x68,0xd1,0x16,0x54,0xfb,0xc5,0x97,0xd7,0x03,0x82,0x47,0xbb,0x47,0xea,0x9e,0x8b,0x90,0x07,0xb2,0xd2,0x06,0x14,0x79,0xeb,0xb6,0xe1,0x10,0x55,0xa9,0x13,0xea,0x65,0x7a,0xd0,0xe5,0x66,0x5d,0xe7,0x7b,0x10,0x5f,0x7c,0x25,0x7d,0x4e,0x77,0xb3,0x19,0x02,0xb1,0x45,0x1c +.byte 0x1a,0x51,0x24,0x72,0xd4,0xaa,0x03,0x0c,0x37,0x2a,0x78,0x81,0x05,0xca,0x73,0xb9,0xb5,0xd8,0xf5,0x25,0x2b,0x30,0x59,0x00,0x66,0xbd,0x6c,0x38,0xa2,0xc3,0xfb,0x43,0x85,0x6d,0xab,0xca,0xd8,0x73,0xa8,0x76,0xda,0x6e,0x00,0x19,0xd0,0xb9,0x1e,0x9b,0x33,0xe4,0x57,0x68,0xf4,0xb8,0x35,0x44,0xe6,0x74,0xd2,0x33,0x64,0xa1,0x41,0xa6 +.byte 0x5a,0xf6,0x8e,0x29,0xb5,0xa6,0x21,0x8e,0xc4,0x0c,0x0c,0x16,0x81,0x08,0xef,0x0a,0x41,0x08,0x34,0xc7,0xe1,0xd8,0xa8,0x68,0xb1,0xf3,0x9a,0x7a,0xaa,0x90,0xc0,0x77,0x32,0x70,0x50,0x5c,0x92,0xfc,0x38,0x31,0xaf,0x3e,0xd8,0xd8,0x4b,0x90,0x99,0xc4,0x17,0xde,0xa6,0xb5,0x29,0xc0,0x82,0x45,0x20,0x08,0x0c,0x4f,0x76,0x36,0x56,0x7e +.byte 0x07,0x17,0x42,0x78,0xa1,0x2d,0x62,0x48,0x81,0x57,0xc4,0xcf,0xf4,0x89,0x34,0x78,0x10,0xe6,0x98,0x78,0xb0,0x69,0x15,0x06,0xdb,0x2b,0xbb,0x8b,0xa5,0x72,0x50,0x24,0xae,0x6b,0x33,0x49,0x7b,0x9d,0x69,0x74,0xc8,0x7c,0xca,0x7a,0x31,0x39,0x0d,0x72,0x78,0xc1,0x6b,0x97,0x50,0x97,0xea,0x90,0xab,0xe7,0xdf,0x29,0x2e,0xf7,0x6e,0x49 +.byte 0x95,0xab,0xbd,0xea,0x1f,0xd4,0x93,0x4d,0x30,0x6b,0x6d,0xb0,0x86,0x38,0x2c,0xc8,0x77,0x2c,0xb5,0xb5,0x5c,0xd9,0xbb,0xe9,0x7d,0xb2,0xb7,0x6b,0xd1,0x1c,0xd3,0xd0,0x66,0x51,0x63,0x8c,0xf3,0x13,0xad,0xcf,0xeb,0x82,0x12,0x1a,0x6d,0xf5,0x75,0x66,0xa2,0x55,0x30,0x64,0x1d,0x68,0x46,0x50,0x5a,0x93,0xf1,0xc2,0x13,0x68,0x95,0x55 +.byte 0x51,0xe0,0x56,0x3a,0x96,0x86,0x8e,0xfb,0x5f,0x3b,0x1f,0x49,0x9c,0x3d,0xe5,0xf2,0x8c,0x3f,0xd6,0x6d,0x17,0xc7,0x18,0x59,0x1a,0x8a,0x72,0xa8,0xb3,0x39,0xda,0xc4,0xfa,0xc5,0xca,0xdf,0x48,0x48,0xd1,0xd2,0xba,0x14,0x5d,0x28,0x3b,0x4c,0xb3,0xcb,0x8d,0x1b,0x91,0x46,0x6b,0x2d,0x21,0x21,0x99,0x98,0x6d,0xcc,0x6b,0x8e,0x91,0x1d +.byte 0x42,0xc2,0x72,0x1a,0xc6,0xd2,0xaf,0xed,0x10,0xff,0x1e,0xa5,0xae,0x16,0xc0,0x05,0xdf,0x37,0xe2,0x1e,0x2e,0x15,0x21,0x0c,0x33,0x6f,0xfd,0xed,0x3f,0x7e,0xd7,0x69,0xfb,0x76,0x79,0x65,0xe9,0xd9,0x8d,0xf6,0xc0,0x6c,0xf7,0x15,0x7f,0x04,0xd7,0x71,0xcc,0xaa,0x85,0x73,0x23,0xf1,0xc8,0x62,0xd0,0x8e,0x01,0x35,0xff,0x4f,0x4f,0x13 +.byte 0xe6,0x28,0xf1,0xc1,0x7a,0x04,0xc0,0x7b,0x75,0xac,0x1c,0x55,0xb4,0x7c,0x00,0xb9,0xe0,0x14,0x67,0xb6,0xc5,0x69,0x62,0x0b,0xe6,0xb5,0x46,0x86,0x6f,0x09,0xdf,0x84,0x2c,0xa8,0x30,0x89,0x5b,0x24,0x47,0xfa,0x43,0x24,0xd5,0x07,0xf7,0xba,0xab,0x1b,0xfd,0x60,0xad,0x89,0x5f,0x60,0x87,0x78,0x48,0xbb,0xc0,0x63,0xf4,0x27,0x86,0x33 +.byte 0xf4,0x49,0x64,0x4c,0x5c,0x94,0x9a,0xb8,0x0f,0x45,0xe2,0x92,0x7d,0x9a,0x86,0xdb,0xb7,0x05,0xe8,0xd7,0x64,0x44,0xfa,0x74,0x60,0x72,0x89,0x13,0x8f,0x2e,0x96,0x33,0xa9,0x12,0x4a,0x62,0x6b,0xc3,0xcb,0x55,0xd3,0xef,0x17,0x11,0x82,0x4a,0x51,0x77,0xbf,0x63,0xa0,0x21,0xfc,0xbc,0x0c,0x6f,0x9a,0xfd,0xde,0xbe,0x9f,0x2e,0x50,0xd5 +.byte 0x32,0xa4,0xf0,0x1b,0xed,0xfa,0xbf,0xcd,0xc9,0xd8,0xf8,0x06,0xf2,0x17,0x8a,0x92,0x18,0xb8,0xc3,0xe5,0xbf,0xc2,0xf4,0x77,0xb9,0x71,0xfb,0x60,0x6e,0xe7,0xad,0xe4,0x7d,0xd4,0x59,0xa9,0xbd,0x21,0xd5,0x03,0x69,0xb5,0xf1,0xce,0xb5,0x88,0xd9,0x1d,0xc7,0xb3,0x14,0xa6,0xb1,0x30,0x8d,0xaa,0xcd,0xe5,0x50,0xc5,0x0d,0x4b,0x6d,0xde +.byte 0x17,0x4d,0xd2,0x93,0xf3,0xc2,0x8d,0x59,0xf1,0xd0,0x2f,0xb5,0x62,0x18,0x81,0x07,0xb3,0xfb,0x08,0xb3,0xa8,0x15,0xe0,0x9a,0x4c,0xa5,0x24,0xcd,0x47,0x69,0xf9,0xf7,0xda,0xa9,0xff,0xe1,0xe2,0x43,0xe3,0x69,0xf1,0x26,0xac,0xc6,0x42,0xf2,0x32,0x42,0xfb,0x7c,0xa2,0x94,0xc6,0xaa,0xd9,0x05,0x29,0xc6,0x3d,0x45,0x44,0x1d,0x52,0x7e +.byte 0x48,0x47,0x93,0x34,0x08,0xa0,0x93,0xc2,0x5e,0x9b,0x22,0xc1,0x2a,0xaa,0xfe,0xa2,0x26,0x00,0xa8,0xbb,0xd0,0x58,0xfd,0x5a,0x09,0x4f,0xa1,0x0c,0xff,0x66,0xcc,0x88,0x3a,0x69,0x9a,0x12,0xb6,0x05,0x6e,0xdf,0x54,0x5d,0xe7,0x03,0x8e,0x95,0x86,0x68,0x83,0x83,0x6f,0x04,0x0b,0x9c,0x05,0x05,0x77,0x14,0x83,0x47,0x98,0x5f,0x22,0xaf +.byte 0xa8,0xfd,0xf3,0xe7,0x73,0xec,0xef,0xd7,0x57,0xd9,0xef,0xe7,0x1b,0x18,0x24,0x09,0xd9,0x14,0xf9,0x60,0xba,0x05,0x0f,0x8f,0x33,0x48,0xb1,0x06,0x41,0x2e,0x95,0x3d,0xf5,0xcf,0x14,0x50,0x5d,0xb6,0x93,0xeb,0xd5,0xf8,0x9f,0x7c,0x8f,0x23,0x35,0x39,0x30,0xc8,0xf6,0x74,0x07,0xc4,0x4c,0xcf,0xe1,0xdb,0x3e,0x9f,0x0a,0xfd,0x48,0x9e +.byte 0x56,0xe4,0xa7,0xa3,0x07,0x06,0x18,0xbb,0x50,0x75,0x33,0x48,0xb9,0xa1,0x4e,0x63,0x65,0xd3,0xf4,0x40,0xc3,0x2d,0x52,0x9a,0xad,0x56,0x7f,0xff,0xb0,0x46,0x24,0xa1,0x78,0x5f,0xb6,0xa8,0x72,0x28,0xb3,0x6c,0x61,0x6e,0xa0,0xfc,0xcb,0xe8,0xfe,0x07,0x28,0x97,0x1c,0xda,0x76,0xc7,0x98,0x2f,0x00,0x1d,0xf2,0x17,0xbe,0x48,0x3f,0xd3 +.byte 0xc7,0xbe,0x89,0x89,0xe1,0x96,0x75,0x1e,0xee,0xf9,0x78,0x67,0xbf,0x12,0x1e,0xe2,0x14,0xbf,0xd4,0xfd,0x49,0xaa,0xbf,0xc6,0xb8,0x4f,0x84,0xcd,0x5d,0x3c,0x45,0xb3,0xb0,0x14,0x6f,0x2d,0x6f,0x35,0xfa,0x60,0x7f,0x64,0x40,0xc8,0xde,0xa8,0x2b,0x56,0x75,0x74,0xc9,0xe1,0x2c,0xe2,0x2f,0xc2,0x3e,0xba,0xa3,0x20,0xd8,0xa3,0xbc,0x69 +.byte 0x9d,0x1c,0xcf,0x5e,0xe3,0xc0,0x66,0x72,0xce,0x22,0x96,0xad,0x47,0xc9,0x5b,0xac,0x45,0xdc,0x4f,0x8e,0xf6,0xa6,0x2e,0x4a,0x1e,0x01,0xe4,0xb7,0x83,0x68,0x92,0x2b,0x98,0xdf,0x22,0x0f,0xd9,0x4f,0x6f,0x72,0x37,0x56,0xfa,0x1b,0xbb,0x5a,0x4d,0xd8,0x5b,0xc6,0x65,0xf8,0xd4,0x4e,0xa5,0xc0,0x0f,0x2d,0xc2,0x38,0xa4,0x6c,0x33,0x2f +.byte 0x7a,0x52,0x14,0xbb,0xfb,0xb3,0xf2,0xa9,0xbf,0xa0,0xad,0xcb,0x8c,0x81,0x47,0x26,0xe9,0xfb,0xc1,0x8e,0xc6,0xe5,0x39,0x48,0xa5,0xb3,0xbc,0xb2,0xe4,0xac,0xf9,0x49,0xbb,0x34,0x2b,0xc4,0x4d,0x06,0xe4,0xd6,0x0b,0xdd,0x55,0x36,0xe6,0xaf,0x64,0xea,0x84,0xf2,0xa5,0x68,0xe3,0x4e,0x4c,0x77,0x46,0x6c,0x17,0x6e,0x08,0x99,0x96,0x1b +.byte 0xb5,0x44,0x3b,0x94,0x2d,0x0f,0xcd,0x90,0x17,0x8f,0x80,0xcb,0xc2,0x30,0xbe,0xe1,0x36,0xdc,0x1e,0x48,0xe3,0x2c,0xe5,0xc9,0xbc,0xbd,0xff,0x3f,0x95,0x59,0x35,0x58,0x2f,0x9c,0xa6,0x1c,0x45,0xa7,0x61,0xde,0xf2,0x9c,0xa3,0x04,0x0f,0xa0,0x93,0xaf,0x69,0x2b,0x0d,0x1c,0xfc,0xff,0x97,0x1c,0x69,0x7e,0x30,0x06,0x88,0x01,0xa4,0xf1 +.byte 0x32,0x36,0xed,0x56,0x89,0xff,0xa9,0x63,0x3a,0x17,0x91,0xc5,0xba,0x6e,0x38,0x84,0xb1,0xaf,0x28,0xac,0x8a,0xb2,0x60,0xbe,0x1b,0x0a,0xd8,0x05,0x22,0x25,0x56,0xbe,0x75,0x47,0x59,0xcf,0x8c,0x2e,0xb3,0xc3,0x5f,0x06,0x81,0x65,0x39,0x78,0xed,0xe3,0xc9,0x5a,0x99,0x01,0xae,0xfb,0xf6,0xed,0x55,0xf5,0xbd,0x2f,0x93,0xf1,0x62,0x6a +.byte 0x54,0x4f,0xe1,0x9f,0x0a,0x23,0x83,0xbc,0xc2,0xba,0xb4,0x6f,0xd9,0x88,0xc5,0x06,0x7a,0x83,0xd5,0xdb,0xeb,0x49,0x48,0xd6,0xc9,0x45,0xa2,0xd0,0xc4,0x06,0xd9,0x01,0xec,0x2d,0x6d,0xc1,0x95,0x69,0x22,0xd0,0xae,0x88,0x75,0x8b,0xd2,0x02,0x98,0x83,0xd9,0x10,0x27,0x8d,0x68,0x97,0x5e,0x6b,0xdd,0x51,0xbb,0x92,0x38,0xa8,0x12,0xde +.byte 0x0f,0xa4,0x1e,0x2e,0xec,0xd5,0x73,0x55,0x5f,0x46,0x6a,0x0f,0xc9,0x50,0x0d,0xb3,0x55,0x20,0xe0,0x01,0xef,0x92,0x29,0x04,0x38,0x60,0xbd,0xc7,0x0b,0x1e,0x94,0x10,0x37,0xb7,0x02,0x94,0xbc,0xde,0xdb,0xb3,0xe3,0x1e,0xd5,0xe2,0xa8,0xed,0x46,0xe8,0xd4,0x8a,0x6c,0x93,0x4e,0xb7,0x73,0xa6,0x20,0x86,0xd2,0x82,0x2f,0x78,0x80,0x34 +.byte 0x44,0x79,0x84,0x2e,0x54,0xd0,0x30,0xa8,0x06,0x0c,0xcf,0x78,0xb4,0xd7,0xe2,0xc9,0x6e,0xfb,0x37,0x47,0x8f,0xe5,0x9f,0xf8,0xca,0x58,0x9c,0xb6,0x8b,0xbe,0xf4,0x3a,0xfe,0x75,0xec,0x1b,0x22,0xfd,0x93,0x92,0x07,0x09,0xcd,0xe6,0x2f,0xe6,0x51,0x0f,0x19,0x43,0x9c,0x6a,0x32,0x38,0x7d,0xf0,0x0c,0x78,0x81,0xb7,0x5c,0xbe,0x3c,0xf4 +.byte 0xc0,0x12,0x57,0x51,0x8a,0x69,0x84,0x0d,0x1e,0x0a,0xed,0x75,0xde,0x9e,0x31,0x8a,0x9b,0x18,0x82,0x01,0x5a,0xee,0x0e,0x33,0x3c,0x8c,0x95,0xb1,0x0b,0x05,0x3b,0xb2,0x85,0xab,0xaf,0x47,0xa2,0x03,0xb6,0xbb,0xda,0xf5,0xc8,0xbe,0x0e,0x4d,0xf8,0x84,0xe4,0xfb,0xd4,0x54,0x44,0x72,0xe5,0x30,0x57,0xa3,0xb6,0x47,0x8f,0xd3,0x32,0xc2 +.byte 0x83,0x07,0x4f,0x17,0x20,0x88,0xa1,0x0b,0xb3,0xef,0x4b,0x27,0x60,0xe0,0x9d,0xec,0xc2,0xdf,0xaf,0x2e,0x74,0xae,0xa4,0x2b,0x59,0x94,0x75,0xbe,0x54,0xf5,0x18,0x62,0xd9,0xe2,0x35,0xee,0x37,0x2e,0xdf,0x48,0xf8,0x80,0x32,0xcb,0xf1,0x83,0x78,0x03,0x68,0x06,0xd7,0x82,0xc6,0x76,0x2a,0x10,0x2a,0xdb,0x73,0xe6,0x65,0x24,0x9f,0x73 +.byte 0x1f,0x55,0x55,0xb6,0x10,0x65,0x80,0x70,0x5a,0x8e,0x8a,0xc8,0x4c,0xca,0x74,0x47,0x63,0x3f,0xee,0x49,0xc3,0x86,0x0f,0x66,0x56,0x08,0xee,0x9f,0xf5,0x5a,0x89,0x4c,0xb4,0x97,0x6e,0x75,0x61,0xc0,0xa7,0x92,0xa8,0x38,0x99,0x08,0x01,0x12,0x82,0x77,0x80,0x20,0x9d,0x62,0x46,0x92,0xdd,0x39,0x4d,0xcf,0xc0,0x8a,0x3e,0x30,0x9a,0xfa +.byte 0x28,0xe8,0xd8,0xf8,0x07,0x0d,0xab,0x4c,0xd4,0x02,0x4c,0xd7,0xc3,0x16,0x89,0x24,0x84,0x52,0x7c,0xa4,0x1b,0x54,0x7f,0xc4,0x74,0x4f,0x88,0x0a,0x14,0x03,0xd9,0x1a,0x48,0xff,0x2c,0xfb,0xbf,0x33,0xf1,0xf8,0x0e,0xdd,0xc4,0x98,0xf2,0xbd,0x32,0x99,0x03,0x8e,0x56,0xc1,0x84,0x5d,0xa6,0xd7,0x21,0xf2,0x43,0xfb,0x3b,0xf5,0x6a,0x75 +.byte 0x20,0xfb,0x08,0x7b,0x66,0x15,0x47,0x31,0xb6,0xb6,0x7a,0xc9,0xe6,0xf5,0xd6,0x0a,0x14,0xb3,0x68,0x0a,0x32,0x13,0xb5,0xe6,0x56,0xbd,0xa5,0x24,0xe2,0xa3,0x7b,0x3d,0x01,0x23,0xed,0x08,0x09,0xb5,0xdb,0x7c,0xa9,0x4b,0x23,0xdb,0xa2,0x25,0x0c,0xc6,0xa4,0x0d,0xbb,0x1a,0x5d,0x1b,0x42,0x0b,0x86,0x72,0xc3,0xca,0x5b,0x14,0x04,0xa3 +.byte 0xd7,0x01,0xe7,0x17,0x78,0xd0,0x54,0xde,0xd4,0x76,0x3d,0xe1,0x7d,0x26,0x3e,0xb4,0x71,0x42,0x84,0x36,0x58,0x78,0x22,0x32,0x26,0x0e,0xc8,0x99,0x05,0xe3,0x4a,0xa6,0x5a,0x1a,0x06,0x0a,0x88,0x47,0x51,0x5c,0xa8,0x72,0x70,0x0c,0x62,0x5f,0xf3,0x1e,0x02,0x50,0x20,0xc6,0x5c,0x50,0x30,0x1f,0x4e,0x5a,0x3a,0x02,0xc9,0xca,0x3f,0xa4 +.byte 0xf1,0x66,0x05,0xf3,0x19,0xe5,0xaa,0xdb,0x75,0x51,0xc1,0xb8,0x94,0xfa,0x2d,0xb6,0x8b,0x42,0xdc,0x9a,0xa3,0x13,0xeb,0x95,0x8d,0xf0,0x65,0x87,0xc9,0xa1,0x43,0xb4,0xfe,0x76,0xf4,0xc8,0xbb,0x19,0x96,0x84,0x9d,0x2f,0x92,0xe8,0x22,0x9a,0xf0,0xd5,0xf4,0xc4,0x8d,0x19,0x59,0x21,0xbf,0x15,0xfd,0xa6,0xc4,0xde,0x77,0x58,0xae,0x93 +.byte 0xb3,0xff,0x44,0x49,0x6e,0x37,0x94,0x04,0xd2,0x96,0xe9,0x80,0xd8,0xe3,0x93,0xd8,0xb4,0x7f,0x5f,0xcf,0xe5,0x9d,0x51,0x92,0xac,0x5d,0x9f,0x23,0x3a,0x3e,0xdf,0x96,0x68,0x9a,0x46,0x9b,0x1a,0x06,0x44,0x54,0xc4,0x2e,0x19,0x0f,0x50,0xee,0x73,0xda,0x39,0x7e,0xec,0xcb,0x1d,0x39,0xf7,0x9f,0xbc,0xe0,0x6d,0x49,0x56,0xf8,0xa7,0x24 +.byte 0x70,0xab,0xe1,0xc3,0x82,0x99,0x0a,0x4d,0x64,0x41,0x37,0xab,0x92,0x76,0xeb,0x6a,0x2a,0xa5,0xab,0x75,0xd7,0xe3,0x6a,0x72,0x4a,0x2b,0x57,0x02,0xc7,0xbe,0xd5,0x35,0xce,0xdf,0xee,0xf1,0xc6,0xe6,0x69,0xb7,0x76,0x99,0x22,0xb0,0xb9,0xe1,0x18,0x91,0x9a,0x35,0xd9,0x3a,0x19,0xc7,0x77,0xf2,0x2d,0xae,0x04,0x2e,0xb7,0x35,0x97,0xa5 +.byte 0xc6,0x97,0x4e,0x5d,0xbe,0xa9,0x35,0x2b,0x53,0x1a,0x6b,0x4e,0xa8,0xa6,0x22,0x48,0x2c,0x81,0x25,0xac,0x30,0x89,0x7b,0xb3,0x38,0x34,0x42,0x0b,0xa5,0x5f,0x02,0xe8,0xee,0x12,0x9b,0xce,0xe7,0x10,0xf9,0x65,0xb6,0xc5,0x74,0x06,0xef,0xc8,0x95,0xb3,0x40,0x30,0xec,0x1f,0x8e,0xeb,0x93,0x31,0x91,0x5a,0x2f,0xc2,0x90,0x85,0xaa,0x4c +.byte 0x51,0xc4,0xd0,0x3e,0xc8,0xc9,0x61,0x46,0x96,0xd4,0x60,0x56,0x7d,0x91,0xc4,0x24,0x76,0xfb,0x09,0x08,0x48,0x2f,0x4a,0x73,0x90,0x8e,0x9d,0xb2,0x38,0xa8,0x95,0x3e,0x6d,0x10,0x57,0x91,0x8d,0x55,0x62,0x1f,0x21,0xc7,0x01,0x15,0xb0,0x71,0x0b,0x26,0xbc,0x10,0x33,0x3e,0x79,0x37,0x64,0x85,0x98,0x42,0x21,0xcc,0xff,0x51,0x9a,0xc2 +.byte 0xe0,0x51,0xc3,0xff,0xf2,0x14,0x3d,0xe8,0x89,0x12,0xe7,0xcd,0x58,0x2f,0x87,0xfb,0x4a,0x50,0x6c,0x4d,0xdf,0x6f,0x64,0x9c,0x64,0x93,0x49,0x89,0xb6,0x0d,0x10,0x3f,0x13,0x9d,0x9a,0x35,0xf1,0xc0,0xe7,0xf0,0x9b,0xe8,0x39,0xd3,0x32,0xb2,0x23,0x67,0x77,0xdb,0xbc,0x0d,0x19,0x77,0x7a,0xbe,0x54,0x56,0x64,0xec,0xb6,0x2e,0x03,0xc5 +.byte 0x35,0xda,0xf1,0xc7,0x7d,0x0c,0x5a,0x32,0xec,0x86,0xdf,0xdb,0x94,0x73,0x4e,0xe3,0x45,0xf6,0xb2,0x63,0xc4,0xb7,0x80,0x59,0x4b,0x82,0x0b,0x61,0xa0,0xd5,0x43,0x18,0x78,0x35,0x93,0xde,0x46,0xa3,0xa2,0xd5,0xa2,0x71,0xec,0x3e,0xee,0x7a,0x89,0x7f,0xe9,0x70,0xff,0xad,0xae,0xa3,0x64,0xde,0x61,0xea,0x71,0xc2,0x37,0x98,0x8a,0x33 +.byte 0xd1,0x5f,0x03,0x08,0x23,0x24,0xc7,0x6c,0x62,0x24,0x6d,0x3f,0x44,0x8e,0x7c,0x9f,0x64,0x87,0xa5,0x79,0x0b,0x16,0x7e,0x4e,0xc0,0x0e,0xb8,0x77,0x56,0x9c,0xa5,0x7d,0x2d,0x5d,0x7d,0x81,0x13,0x2c,0x08,0xd5,0x83,0x84,0x38,0xfe,0x50,0x6f,0xa7,0x30,0x1f,0x06,0xee,0xab,0x13,0xc2,0x19,0xe6,0xcf,0x7b,0x85,0xfc,0x31,0x5b,0xdf,0xb8 +.byte 0x0e,0xe8,0x72,0xba,0x97,0x03,0x25,0xbc,0xad,0x74,0x7c,0xe1,0x59,0xf7,0x08,0xc1,0xe3,0x2d,0xb1,0x05,0xe7,0x1f,0xb9,0x0f,0x09,0xcd,0xe6,0x4f,0x5a,0xf6,0xcc,0xea,0xc7,0x92,0x35,0xf5,0xbc,0x3f,0xef,0xc9,0x2b,0xb4,0xd7,0x66,0x50,0xaa,0x80,0xb9,0xaf,0x5d,0x02,0x9c,0x77,0xdf,0xc0,0xc7,0xe2,0xbf,0x7d,0xff,0x69,0x63,0x3e,0x7c +.byte 0x91,0x94,0xae,0xa4,0x0a,0x25,0xa3,0x1f,0xf3,0xc6,0x88,0xda,0x82,0xac,0xbc,0x1f,0x8d,0x53,0xd6,0xfd,0x2b,0x5c,0x33,0x6d,0x03,0x68,0x92,0x38,0x07,0xeb,0x85,0x7f,0x55,0x89,0x17,0x58,0x7f,0xc7,0xb4,0x7a,0xff,0x15,0xe5,0xe0,0xea,0xce,0xac,0x3f,0x0f,0x09,0x25,0xfa,0x80,0xe3,0x07,0x89,0x4e,0xbf,0x7e,0xc2,0x42,0xf1,0x18,0x78 +.byte 0x05,0xe3,0x6a,0x2e,0xf7,0x2e,0xe5,0xbf,0x63,0x9e,0x48,0x69,0xe6,0x3c,0x4b,0x12,0x73,0x58,0xde,0x0c,0x73,0x27,0x9a,0x95,0xfa,0x51,0x8c,0xbb,0x74,0x31,0x53,0x4e,0x9a,0x13,0xda,0x49,0xf0,0x8b,0xb4,0xcd,0xc1,0xe9,0xaf,0xd6,0x59,0x59,0xa8,0x24,0x94,0xd9,0x4b,0xf8,0x20,0x79,0xa0,0x79,0x01,0x08,0x84,0x9b,0x04,0xe7,0xda,0x06 +.byte 0x22,0x3e,0x85,0x23,0x0c,0xa9,0xe5,0xcd,0xd3,0xc4,0x27,0x8c,0x4e,0x75,0xe4,0x60,0xb5,0xe9,0xc5,0xb7,0xb1,0x3a,0x84,0x68,0x40,0x3e,0x36,0x1b,0x9a,0x64,0x50,0x45,0x6f,0xc6,0x58,0x70,0x46,0x1a,0xca,0xf6,0x81,0x02,0xa8,0x17,0x4d,0x92,0x0d,0xae,0x88,0x1a,0xbd,0x52,0xc0,0x32,0xb1,0x2d,0x2d,0x12,0x9c,0x29,0xfa,0xa6,0x70,0x5f +.byte 0xe7,0x0b,0xd5,0x5d,0xa5,0x49,0x9e,0x9e,0x5b,0x55,0xbc,0xce,0x5b,0xb4,0xef,0x3f,0xe4,0x7c,0x50,0xef,0x58,0xf5,0xfe,0xcc,0xf6,0xd0,0xf1,0x3a,0x0b,0xf2,0x3e,0x1c,0xce,0x22,0x7e,0x88,0x1c,0x8f,0x9a,0x69,0x76,0xa9,0xf0,0x18,0xa8,0x76,0x7f,0x0c,0xa6,0xfd,0x67,0x43,0xc7,0x43,0x67,0x98,0x6e,0x37,0xd4,0x82,0x29,0x62,0xa6,0xcf +.byte 0x2b,0x7c,0xee,0x14,0x4d,0x2d,0x1a,0xfc,0xc6,0xaf,0x5b,0xea,0x8a,0xa8,0x9a,0x3b,0xab,0x7d,0x76,0x15,0x50,0xe8,0x95,0x31,0xc8,0x5d,0x5d,0x19,0x68,0x07,0xf5,0xb0,0x29,0x5f,0x79,0x4f,0x0d,0x2b,0xba,0x1d,0xd2,0xf2,0x83,0x50,0x89,0x0b,0x96,0x16,0xde,0x7c,0x04,0xea,0x9c,0x75,0x97,0x7e,0xd7,0x2c,0xee,0x82,0x7c,0xbf,0x0b,0x71 +.byte 0x05,0x59,0xd7,0x11,0x70,0x8e,0x41,0x62,0x91,0x38,0x3a,0x69,0x3f,0x3d,0xde,0x8e,0x03,0x0a,0xea,0xfb,0xea,0x36,0xf0,0x5c,0xb6,0xdf,0x9a,0x66,0x9e,0x64,0x43,0xaf,0xb7,0x83,0xd1,0xef,0x7c,0xb6,0x9b,0x40,0xd8,0x0f,0x0e,0x0b,0xa7,0xd0,0x98,0xca,0x8e,0x3b,0xed,0xb7,0xa5,0x19,0xca,0x67,0x30,0x87,0x17,0x0e,0xc4,0xe1,0xaa,0x6e +.byte 0xdb,0x67,0xbd,0xf5,0xed,0x10,0x68,0xb1,0x43,0x73,0xaa,0x99,0x1a,0x83,0x0d,0x1a,0x5a,0x8b,0xc8,0xff,0xe9,0xe0,0x1c,0x15,0xda,0xb0,0x99,0x90,0xce,0x1f,0xfd,0x17,0xd2,0xfa,0x8f,0x3a,0xe8,0x1b,0xd3,0x96,0x2a,0x0d,0xa9,0x4d,0x6d,0x77,0x53,0xe8,0x8f,0xc7,0x6b,0xb4,0x3b,0x6d,0x0c,0x8e,0x35,0x67,0x09,0x6e,0x43,0x36,0x52,0x3e +.byte 0x0e,0xf6,0x4f,0x16,0x40,0x45,0x7f,0xab,0x39,0xf2,0x23,0xfb,0x4e,0xea,0x6e,0xcf,0xa0,0xb6,0xec,0x6d,0x93,0x1b,0x6f,0x9f,0xd6,0xce,0xcd,0x1e,0x90,0x5c,0x7d,0x61,0xc4,0xae,0x02,0xb2,0x7a,0xb2,0x25,0x59,0xac,0x0a,0xcb,0xc6,0x28,0xa2,0x9c,0x7b,0x4b,0x05,0x5a,0x23,0x55,0xc8,0x9a,0x72,0xe6,0x3b,0x91,0xa2,0x9b,0x12,0x1c,0x1f +.byte 0x4b,0x85,0x42,0x9d,0x73,0xf9,0x50,0x3e,0x12,0xc4,0x51,0xb4,0xe1,0x2a,0x08,0xfc,0xf9,0xc8,0x5a,0x53,0x79,0xcc,0xd1,0x24,0x4c,0xc1,0xf6,0xe7,0x10,0x9d,0xe6,0xce,0xcc,0xc7,0x04,0xf8,0x7a,0xd4,0x2f,0x0a,0x97,0x32,0xaf,0x38,0x77,0x97,0x78,0xc8,0xa9,0x9a,0xca,0x65,0xee,0x2b,0x07,0x0e,0xb1,0xaa,0x3c,0xee,0x03,0x85,0xf7,0x09 +.byte 0xd1,0x03,0xe5,0x4f,0x8a,0x6b,0xba,0x83,0xd2,0x6a,0x05,0xe6,0x4e,0x59,0x21,0x26,0xcc,0x8d,0x4a,0x91,0x21,0x6b,0xe5,0x7a,0x83,0xed,0x4e,0x95,0x4b,0x16,0x98,0x3f,0x2d,0x51,0xc5,0x67,0x56,0x58,0xc9,0xc3,0x32,0xff,0x91,0x9d,0x7f,0x6d,0xc7,0x8a,0x40,0x58,0x56,0x35,0xca,0xc1,0xa9,0x07,0xe2,0xc6,0xe1,0x8f,0x7b,0x7c,0x68,0x4e +.byte 0xde,0x19,0xc8,0x9c,0x41,0x65,0x74,0x33,0xb5,0x5b,0xf7,0x47,0x91,0x51,0x41,0x56,0x54,0xaa,0x8e,0xa5,0x1f,0xdb,0x50,0xa4,0x97,0x7a,0xea,0x86,0x2e,0xfd,0xdd,0x64,0x23,0x6e,0x44,0x28,0xfb,0xae,0xe8,0xc2,0x38,0x96,0x56,0x2e,0xd8,0x7e,0x3a,0xc8,0xc6,0x7f,0x20,0x15,0xad,0x9f,0xfa,0x5c,0x55,0xf5,0xe1,0x9a,0x07,0x84,0x5b,0x81 +.byte 0x39,0x4b,0x70,0xc3,0xfd,0x2b,0xc5,0xb7,0x47,0x36,0x74,0x5a,0x85,0xaa,0x45,0x94,0x8e,0xbe,0x7f,0x6c,0x45,0xf5,0x02,0x4e,0x5f,0x16,0x04,0x7e,0xfa,0xb8,0xa9,0x38,0xc4,0xd9,0xca,0x5f,0x7a,0xe3,0x96,0x78,0x82,0xa0,0xac,0xef,0xc4,0x2a,0xb5,0xf4,0x7d,0x28,0x8c,0x25,0xba,0x4e,0xd5,0xd5,0xd1,0x24,0xc6,0x05,0xb2,0x18,0x2d,0x66 +.byte 0xea,0xe3,0x42,0x79,0x33,0x9e,0x70,0x3a,0x1b,0x5a,0x8e,0xcb,0x03,0xa8,0x43,0xf3,0xd5,0x66,0x41,0x10,0xd7,0x09,0xf0,0x28,0xe5,0x25,0xe6,0xac,0x9a,0xe6,0x34,0x36,0xfb,0xc4,0xa6,0x9a,0xd0,0x24,0x4d,0x18,0xf9,0xd1,0x8e,0xca,0x92,0x83,0x0f,0x55,0x54,0x6d,0x72,0x81,0x81,0xdb,0x72,0x1f,0xd6,0x32,0xb9,0x32,0x45,0x84,0x9c,0x66 +.byte 0x68,0x7e,0xab,0xb3,0xca,0xf5,0x4f,0xdd,0xb4,0xee,0xbb,0x05,0x70,0xbe,0x4f,0xd1,0x27,0x01,0xcc,0x7c,0x4f,0x47,0x55,0xce,0x91,0x73,0x6f,0xff,0x8d,0xfc,0x0c,0x4c,0xaa,0xfc,0xce,0x9f,0xf3,0x4a,0x46,0x92,0x89,0x84,0x8f,0x4d,0x94,0x37,0xda,0xe3,0x11,0x0d,0x63,0x60,0xcb,0x40,0x8f,0xe8,0x0f,0xf9,0xa1,0x89,0x64,0x44,0x45,0x74 +.byte 0xc5,0xa2,0x73,0x33,0x08,0xa2,0x59,0xb0,0xeb,0x7b,0x7b,0xa7,0x28,0x4c,0x13,0x6a,0x04,0x15,0x14,0xd0,0x3e,0x5e,0xec,0xe1,0x3f,0xe5,0x93,0x06,0x6b,0x60,0x50,0x1c,0x90,0xc0,0x5c,0xea,0x7e,0x58,0xf1,0xed,0xba,0x43,0x0b,0x84,0xf7,0xa4,0xbd,0x4c,0xed,0x88,0x5b,0xae,0xa2,0x0a,0xf6,0x06,0xfd,0x43,0x63,0xfe,0x8a,0x03,0x21,0x8b +.byte 0x27,0xc6,0xef,0xa3,0xa9,0x3a,0xc1,0x8b,0x65,0x62,0x25,0x85,0xaa,0x2f,0xff,0x22,0x96,0xb7,0x5c,0x82,0xde,0x21,0x4e,0x0d,0x8d,0xd9,0x7f,0x97,0x79,0x95,0x6c,0xe6,0xfd,0xb1,0x7c,0x84,0xc8,0x73,0xbc,0x50,0x2f,0x87,0x03,0x56,0xcf,0xea,0x7f,0xed,0x17,0x7d,0xf7,0x61,0x6b,0x6f,0x5b,0xd3,0xe4,0x83,0xbd,0x8b,0xd3,0x8e,0x51,0x57 +.byte 0x3d,0xcc,0xe4,0x09,0xb9,0x73,0x1f,0xb4,0x47,0x5e,0xf2,0x10,0x3e,0xf4,0x9c,0x86,0x02,0xdf,0x3e,0x75,0x1c,0x9b,0xb5,0x0f,0x31,0xc6,0xbb,0x00,0xb4,0x8a,0x1a,0xe5,0x0d,0x9c,0x3e,0x93,0x61,0x5a,0x61,0x86,0x12,0x64,0xaa,0xfd,0xa2,0x6e,0x8f,0xcc,0xcd,0x60,0xa1,0xad,0x6d,0xdc,0xa2,0x7b,0x5a,0xe0,0xee,0x27,0x5d,0xc5,0xfe,0x1f +.byte 0x7b,0x9f,0x33,0xf1,0xee,0x2a,0x58,0x39,0x56,0x14,0x4f,0x2f,0x11,0x26,0x6b,0x56,0x7c,0x75,0xb7,0xc3,0xa7,0xf6,0x54,0xd8,0xa7,0xbb,0x73,0xb5,0xa5,0x83,0x1e,0x65,0x7e,0xa7,0x85,0x74,0xa4,0x04,0x0e,0x26,0x01,0x88,0xbc,0x8b,0x98,0x0c,0x9b,0x74,0x22,0x44,0x16,0x16,0xed,0x94,0x81,0x81,0x13,0x26,0xc9,0x27,0xa9,0xa7,0xe0,0x45 +.byte 0x69,0x6e,0x33,0xcc,0xa3,0x15,0x10,0x99,0x84,0x06,0x95,0x00,0xbb,0xc6,0x8e,0x4e,0x37,0x1b,0x23,0xb2,0xf7,0x4d,0xd7,0x24,0x68,0x6b,0xaa,0x2e,0x57,0x8d,0xd6,0x4e,0xa2,0x69,0xd8,0x8d,0x84,0xb2,0x85,0x91,0x30,0xbf,0x41,0xab,0xcf,0x5c,0xa6,0x51,0x1e,0xf5,0x79,0x5a,0x20,0xfa,0x3d,0x0a,0xc5,0xd7,0x3f,0xa6,0xcc,0xf6,0x9b,0x76 +.byte 0xe0,0xec,0x9e,0x0b,0x23,0xe4,0x74,0x36,0x14,0x6f,0x24,0x9d,0xe7,0xb2,0x41,0xd7,0x68,0x37,0x67,0xdc,0x01,0xb1,0x20,0xf9,0x8b,0x0b,0xf5,0xa7,0x95,0x78,0xa0,0x6c,0x4b,0xc0,0x44,0x92,0x4a,0x75,0x0f,0x61,0xde,0xc3,0xc2,0x3d,0x17,0xa0,0x4d,0x57,0x8b,0x11,0x35,0xbd,0x49,0x87,0x05,0xba,0x5d,0x1f,0x76,0xd4,0x0f,0xb0,0x5b,0x5f +.byte 0xb7,0xf8,0xcf,0x12,0x54,0x19,0x9a,0x49,0x6a,0x42,0xad,0x93,0x85,0x0b,0xe7,0x8c,0x30,0x59,0x82,0x82,0x2d,0xd9,0x89,0xf5,0x8c,0x39,0x9c,0xf5,0xcd,0x25,0x22,0x74,0xcf,0x56,0xa2,0x15,0x40,0xa6,0xa8,0xfc,0xdc,0x85,0x9e,0xab,0xd6,0x94,0x5d,0xd6,0x73,0x07,0xed,0x7b,0x76,0x11,0x67,0xf5,0x52,0xac,0x1a,0x69,0x1f,0x4a,0xa2,0xaa +.byte 0x4d,0x11,0xe0,0xc4,0x4c,0x6e,0x9e,0x8e,0x13,0x46,0x0b,0x95,0x40,0x53,0x35,0x53,0x58,0x7f,0x81,0x5f,0x17,0xd7,0x5e,0x53,0x86,0xf3,0x1b,0x70,0xf1,0x95,0x8f,0xf6,0xd4,0x6f,0x55,0x92,0xa2,0x38,0xd3,0x43,0x6c,0x7e,0xa2,0x21,0x5b,0x18,0x11,0xdd,0x03,0x52,0xe6,0xe5,0xc0,0xc5,0x4e,0x8e,0xda,0xdb,0x91,0xcf,0xf7,0x75,0xc2,0x33 +.byte 0x69,0xd1,0xd1,0x29,0x9d,0x51,0x79,0x91,0xe4,0x58,0x05,0xa5,0xf6,0x54,0x16,0x3e,0x42,0xf3,0xc4,0x1f,0x88,0x94,0xfc,0x6b,0x53,0xb1,0xd5,0x17,0xe6,0xab,0x77,0x33,0x8a,0xd0,0x93,0x74,0x02,0xe0,0x81,0x5e,0xbe,0x2f,0x4d,0xcd,0x25,0x0b,0xd0,0x06,0xd8,0xc9,0xf9,0xcf,0x8e,0xf8,0xc3,0xe2,0x33,0x60,0xe5,0xfa,0x89,0x68,0xf8,0xb7 +.byte 0xef,0x9d,0xfc,0x9d,0x76,0x13,0x2d,0x9d,0x18,0x7d,0x05,0xb4,0xa7,0xa3,0x8a,0x91,0xe0,0x73,0x65,0x89,0xb4,0xc1,0x53,0x7c,0xdc,0xf2,0xab,0x39,0x94,0xc7,0x3d,0xf8,0x1c,0x8f,0x49,0x37,0xee,0xc1,0x19,0x84,0x15,0x3b,0x36,0xb2,0xc2,0xe1,0x16,0xe2,0xfb,0xde,0x1f,0x0e,0xa4,0xea,0x59,0x67,0x2d,0xea,0x47,0xe5,0x2c,0xd1,0xb5,0xa9 +.byte 0xbd,0x5c,0x92,0x34,0x8b,0xc5,0xab,0x4f,0x2b,0x6b,0xc4,0x8b,0xdb,0xbb,0xcb,0x86,0x34,0x35,0xa0,0x5c,0x29,0x1a,0x8b,0xce,0xdc,0xd7,0x46,0x2b,0x20,0x9d,0xea,0xa8,0x97,0x68,0x37,0x56,0x03,0x7d,0x4f,0xb6,0xfc,0x30,0x82,0x68,0xb4,0x56,0xf3,0xbe,0x58,0xcc,0x20,0xc1,0x53,0x9f,0xbb,0x0b,0x2b,0x6e,0xa0,0x2d,0xc0,0x61,0x02,0x0b +.byte 0xf9,0x0e,0x55,0xb8,0xb8,0x23,0x6e,0x50,0xc0,0x36,0xb8,0xf6,0x5e,0xb3,0xa7,0x8f,0xf8,0x7f,0xd0,0x5d,0x0a,0xc4,0x2b,0xa9,0xd3,0x76,0xcf,0x4d,0x27,0xda,0xac,0xf3,0xb0,0xca,0x00,0xa0,0x94,0x12,0x20,0x89,0x22,0xa9,0x89,0xe4,0x23,0x71,0xe0,0xdb,0xec,0xb0,0xa9,0x2e,0x45,0xf6,0x8d,0x1e,0x4b,0x0e,0xc7,0xf8,0x40,0xd6,0xf4,0x2f +.byte 0x80,0x3e,0xf8,0xfb,0xcf,0x7b,0x54,0xb5,0xbd,0x55,0xf2,0x37,0x46,0x9f,0x32,0x45,0x87,0xa3,0x6a,0x51,0x25,0x43,0x54,0xa2,0x92,0xc6,0xbe,0xa4,0x33,0x54,0x82,0xc7,0xf1,0xe4,0x52,0xf9,0x09,0xac,0xc3,0xb1,0x25,0x86,0xc7,0x89,0x83,0x2c,0xf6,0x35,0x9e,0xd1,0xd8,0xb1,0x71,0xed,0xfa,0xae,0x09,0x83,0xb3,0xf0,0xde,0x24,0xed,0x3c +.byte 0xc6,0x60,0xe8,0x15,0x49,0x93,0x29,0x82,0xbf,0x1d,0x23,0x17,0x11,0xea,0xa7,0x53,0x83,0xa5,0xc1,0x9e,0x02,0x17,0x08,0x99,0xa6,0x72,0xaf,0x82,0x3f,0x0b,0x69,0xca,0xb8,0x72,0xa9,0x31,0x71,0x20,0x32,0x57,0x89,0x9b,0x16,0x92,0x54,0xc0,0x99,0x6d,0xa4,0xbf,0x5a,0xb5,0x53,0xa7,0x4c,0x69,0xd8,0xf7,0xe7,0x4c,0xc0,0x76,0xb6,0x35 +.byte 0xdd,0xe7,0xb2,0xd9,0x1c,0xd5,0xf7,0x39,0x32,0x44,0x48,0x02,0x85,0x69,0x02,0xad,0xe6,0xfc,0xbb,0x07,0x9e,0x7f,0xee,0x6d,0x07,0x12,0x21,0xeb,0x67,0x4d,0x74,0x90,0x8f,0x79,0x51,0x9d,0x8a,0x63,0x24,0xab,0x6f,0x8f,0x73,0xd3,0x91,0x68,0x15,0xa9,0x6a,0x84,0x92,0xc2,0xd4,0x4d,0xa8,0xe1,0x4f,0xa2,0x1e,0x34,0xa3,0x9a,0x04,0xf2 +.byte 0xfc,0xc4,0xe7,0xd0,0x52,0xc4,0x49,0x51,0x8e,0x7d,0xaa,0x74,0xaa,0x08,0xbe,0x08,0xf6,0xe4,0xc1,0x61,0xff,0x2e,0x9c,0x17,0x61,0xb6,0x01,0x44,0x18,0xe8,0x5e,0xa9,0xfb,0x02,0x21,0xbb,0x08,0x5c,0xe0,0xd3,0x0c,0x98,0xc5,0x93,0x2a,0x1c,0x69,0xf3,0xe8,0x8b,0x36,0xa0,0x9d,0x1e,0xda,0x18,0x14,0x06,0x7f,0x75,0x3d,0x42,0x92,0x5a +.byte 0xb9,0xb7,0xc0,0xc0,0xb0,0xc5,0xa9,0xb2,0x67,0x24,0xc2,0x28,0x29,0xcb,0x78,0x8e,0xf3,0xd1,0x37,0x63,0xca,0xc8,0x9a,0x1b,0x38,0xa5,0x9f,0x0e,0x0d,0x26,0x5b,0xfe,0x2f,0xdf,0x4f,0xb9,0x21,0x8c,0xc8,0xe0,0x9f,0x71,0xb9,0xc3,0x6c,0xd8,0xd3,0x2f,0xe4,0x3c,0x67,0x35,0x45,0x74,0x7f,0xcb,0x13,0xda,0x64,0x47,0xff,0x6f,0x05,0xf0 +.byte 0x87,0x8d,0x0d,0x1f,0x10,0x47,0x0e,0xf6,0x9d,0x89,0x6d,0x79,0x04,0x77,0x8a,0x6c,0xeb,0x7d,0x9b,0xd7,0x65,0x82,0xa8,0x95,0xa2,0x8c,0x02,0x91,0x0d,0xf2,0xe8,0x65,0x60,0x0d,0xb6,0x1d,0xf4,0xf3,0x41,0x75,0x33,0x21,0x13,0x22,0x93,0x01,0x2f,0x11,0xe7,0xed,0x45,0x56,0x90,0xec,0x0b,0x99,0x8e,0x84,0xc8,0x76,0x31,0x1d,0xb9,0xcb +.byte 0x87,0x3f,0x5f,0x39,0xeb,0xe8,0x9e,0x5e,0x96,0x9e,0x42,0x64,0xf3,0xef,0x00,0x1f,0x2a,0x6c,0x18,0x67,0xbd,0xdd,0xf9,0x65,0x11,0x1b,0x9c,0xd7,0xf3,0x3d,0xb2,0x6f,0x88,0xf7,0xd2,0x26,0x06,0xef,0xc8,0x23,0x3f,0x46,0x5d,0xf0,0x96,0x40,0xb1,0xdd,0xad,0xe4,0xee,0xb6,0xc2,0x67,0x18,0x46,0x67,0xc4,0xa5,0x7e,0x3e,0xce,0x72,0x47 +.byte 0xca,0xc3,0xa7,0x94,0x56,0xe2,0x23,0x03,0xcf,0xd0,0x18,0x55,0x30,0xe3,0x14,0x00,0xda,0x0f,0xaa,0x7f,0x20,0xaf,0x3b,0x24,0x43,0x7a,0xaa,0xd4,0x12,0x42,0x10,0xe4,0x44,0x8a,0x7f,0xf1,0x74,0x9d,0xe0,0x28,0x60,0xce,0xdd,0x04,0x96,0x03,0x80,0xcb,0xaa,0xa9,0xb5,0xc7,0xb4,0xbb,0xc7,0x9a,0x93,0xd8,0xff,0x3b,0x8f,0x1f,0xb7,0xce +.byte 0xed,0xbc,0xde,0x9f,0x9e,0x56,0x96,0x65,0xba,0xe7,0x89,0x03,0xb2,0xbd,0xfe,0xa7,0x02,0xeb,0x33,0x9a,0x8b,0x5b,0x36,0x64,0x17,0x9f,0xd2,0xe4,0x75,0xb5,0xfb,0x21,0x03,0xa4,0xe7,0xb4,0x49,0x72,0xfd,0xf3,0x1e,0x5f,0xdb,0xe5,0x6c,0x92,0x51,0xe7,0x91,0x55,0xb7,0x82,0x18,0x05,0xc3,0x2c,0xf1,0x23,0x61,0x36,0xad,0x80,0x1b,0xde +.byte 0xe1,0x51,0x4e,0x51,0xa1,0xf6,0x5a,0xb9,0x03,0x48,0xa7,0x12,0x88,0x63,0x30,0xff,0x48,0xfc,0x92,0x30,0x9a,0xca,0x08,0x1b,0x64,0xa9,0x74,0x2a,0x64,0x42,0x7d,0xa9,0xa4,0x9d,0xcb,0x59,0x71,0x53,0xc1,0xa8,0xa6,0xb5,0x47,0xf9,0x87,0xb5,0x41,0x58,0x92,0x14,0xf7,0xbd,0x10,0x45,0x37,0x20,0x1d,0x5b,0x42,0x04,0xed,0x69,0x4c,0xa5 +.byte 0xdc,0x2a,0x58,0xba,0x00,0x1e,0x05,0x9c,0x3c,0xbf,0x65,0x76,0xd1,0x11,0xe0,0x15,0x22,0xb0,0x2a,0x53,0x32,0x0f,0x6e,0x08,0x4e,0x27,0xc2,0x71,0x14,0x20,0xee,0xb0,0x0b,0x60,0xef,0x54,0xae,0x2c,0xe0,0x1d,0x30,0xac,0x0d,0x3a,0x93,0x15,0x0a,0xe7,0x14,0xf3,0x1a,0x67,0xb1,0x43,0x85,0xbd,0x06,0x53,0xab,0x6d,0x5d,0xe7,0xe3,0x82 +.byte 0xb8,0x39,0x35,0x10,0x87,0xe7,0x90,0x4d,0x9c,0x6f,0x83,0xad,0xa2,0x43,0x7a,0x5d,0xc1,0x8a,0x39,0xa3,0xa6,0xda,0x48,0x5c,0x9b,0xe1,0x0d,0x69,0xfc,0x87,0x18,0xdd,0x34,0x9a,0xb4,0x9c,0x04,0x0d,0x49,0x18,0x3e,0x38,0xd8,0x01,0x67,0xb1,0x7f,0x6b,0xb5,0xfe,0x58,0x1c,0x64,0x11,0x10,0x6b,0xc1,0xca,0x56,0xe3,0x12,0x8c,0xb4,0xac +.byte 0x03,0xbd,0xc1,0x54,0xbe,0x5c,0x70,0x6f,0xdd,0x73,0xa3,0x84,0xcd,0x0b,0x1b,0xbf,0x05,0xac,0x27,0x11,0xe8,0x5f,0xc3,0xb9,0x68,0xc2,0xe9,0x3f,0x5a,0x9b,0x28,0xca,0x65,0x5e,0x66,0x4e,0x50,0xa9,0x81,0xb1,0x10,0xc1,0x2c,0xa5,0x62,0xc8,0x52,0x07,0xa5,0xa1,0x99,0x16,0x7b,0x08,0xa4,0x1e,0xf4,0x50,0x8f,0xb2,0x42,0xa5,0x19,0xa2 +.byte 0x34,0x91,0xcf,0xa7,0x5e,0x73,0x6b,0xc2,0xa3,0x4d,0xdd,0x7c,0x26,0x46,0x34,0xe6,0x5d,0x54,0x52,0xe3,0x1e,0xc1,0x10,0x36,0x7c,0xc9,0xd2,0x1e,0xca,0xeb,0x80,0xc5,0x3c,0x04,0xf6,0xb7,0x09,0xd4,0x3e,0x67,0xc3,0xf6,0x6b,0xd4,0x60,0x00,0xc9,0x68,0x17,0x39,0xbc,0xcd,0x14,0x32,0xfc,0x33,0xa4,0xb0,0x6f,0x12,0x6b,0x5f,0xe2,0x15 +.byte 0x1c,0x9a,0x15,0x4f,0x0b,0x7d,0x4c,0xa0,0x89,0x40,0xb3,0x0e,0x84,0x90,0xb3,0xc6,0x3e,0xa5,0x0b,0x81,0x66,0x14,0x5f,0x8d,0xe0,0xbf,0xf7,0x9d,0xa4,0x4e,0x69,0xd5,0xac,0x0f,0x6c,0x29,0x94,0x8f,0x3b,0x4b,0xed,0x5b,0x6e,0xe1,0x58,0x5d,0x32,0x19,0xe6,0xbd,0xfb,0xd5,0xb7,0x0f,0x72,0x0e,0x5b,0x14,0xd3,0xf3,0x09,0xa8,0xea,0xf7 +.byte 0x98,0x2f,0x42,0x07,0x8e,0x72,0x27,0x53,0x8d,0x0b,0xea,0x74,0x38,0xbc,0xaf,0xb8,0x76,0x65,0x97,0xda,0xa7,0x06,0x37,0x29,0x09,0xbe,0xaa,0xe6,0xf7,0xb6,0xb1,0x5f,0x71,0x1f,0x5d,0x14,0x47,0xdf,0x20,0xa3,0x94,0x93,0x7d,0x21,0xe6,0x22,0x7e,0x38,0x1a,0x26,0x83,0xc7,0x32,0xdf,0x58,0xcd,0xab,0x67,0xae,0x94,0xa5,0x68,0xcb,0xe3 +.byte 0x51,0x70,0xc0,0xc4,0x41,0x9f,0xca,0x05,0xc9,0x51,0x2a,0x8e,0x53,0x89,0x3f,0x52,0x6b,0x29,0x64,0xa8,0xb8,0xdf,0x02,0xb1,0x41,0x4e,0x36,0x42,0x32,0xa8,0xc0,0x91,0xf0,0x69,0x69,0x55,0x99,0xb7,0x78,0x4f,0x79,0x5b,0xc5,0xab,0xc6,0xed,0x15,0x88,0x6b,0x94,0x0a,0xdd,0xea,0x47,0xf9,0x0e,0xb8,0x89,0x15,0x68,0x3e,0xc0,0x50,0xf8 +.byte 0xa1,0x2d,0x2a,0x11,0x8a,0xc5,0xb0,0x09,0x4f,0x7d,0x90,0x5f,0x49,0x35,0xe9,0xdd,0xfc,0xac,0xea,0x1b,0x20,0xad,0xd2,0xe6,0xb6,0xbf,0x3c,0x0e,0x7b,0xdf,0x2f,0x55,0x58,0x0e,0x25,0x53,0x62,0xd3,0x73,0xb8,0x3e,0x12,0x91,0xcb,0x23,0xf2,0xc0,0x5d,0x74,0x2b,0x51,0xcc,0xa2,0xb1,0x5a,0xd2,0xf4,0x9b,0xc9,0xa5,0x83,0x2b,0x5a,0x8a +.byte 0x0b,0xe9,0x09,0x59,0xb5,0x44,0xc9,0x55,0xcc,0xbd,0xb6,0x69,0x66,0x9a,0x0c,0x15,0xae,0x76,0x35,0xbe,0xe9,0x37,0x70,0x9e,0xdc,0x97,0x5a,0x82,0x97,0xf6,0x1a,0x45,0xd7,0x27,0xfe,0x1f,0xc3,0x7c,0x3a,0x52,0x85,0x12,0x73,0x8a,0x8e,0x07,0xec,0x1f,0x59,0x3f,0xb0,0x32,0x07,0x92,0x3e,0x81,0xe0,0x7a,0x9a,0xc9,0x91,0xca,0x84,0xf1 +.byte 0xe1,0x32,0x57,0x0a,0x3c,0x9a,0x20,0xa8,0xbe,0x84,0x91,0x44,0x66,0x81,0xdd,0x12,0xa8,0x46,0x15,0x18,0xfc,0xae,0x5e,0x9a,0xf3,0xd9,0xb9,0x6a,0xbb,0x90,0x1c,0x61,0x7f,0x61,0x2c,0xa7,0x12,0x1e,0x05,0xee,0x0c,0x66,0x9e,0xc2,0xc8,0xb9,0xe0,0xc9,0xc4,0xb9,0xee,0x3a,0x6f,0x97,0x2a,0x5e,0xcb,0xd9,0xff,0xd1,0x37,0x5e,0xa0,0x03 +.byte 0x70,0xc1,0x2f,0x15,0xf9,0xf7,0x90,0xbe,0x23,0xe7,0x7c,0x90,0x4b,0xe4,0x5a,0x01,0x65,0x27,0x2d,0x4b,0xd3,0xa8,0x8c,0x1d,0x2d,0x5d,0x48,0xac,0x6b,0x59,0xc9,0x78,0xb2,0xee,0xda,0x6e,0xa8,0x68,0x08,0x99,0x22,0x25,0xfe,0xc2,0xb8,0x83,0xa8,0x08,0xbb,0x6e,0x64,0xae,0x2e,0xbb,0x93,0xaf,0xdc,0xeb,0xa3,0x11,0xa7,0x5d,0x3f,0x22 +.byte 0xf1,0x95,0x27,0xf6,0xd6,0xa6,0xc3,0x56,0x0a,0xd0,0x17,0x43,0x35,0xd2,0xe7,0xa4,0x8f,0x6c,0x1c,0xc4,0x4d,0xa7,0x3b,0xb8,0x7f,0x0c,0xa0,0xd6,0x56,0x82,0xf4,0x16,0x96,0xcd,0xcf,0x6f,0x78,0xec,0xbb,0xb2,0xdb,0x67,0xcf,0x78,0x0c,0x22,0x1d,0x72,0x21,0x8e,0x40,0x85,0xa5,0x07,0x3b,0x0e,0xfa,0x44,0xb0,0xfe,0xbf,0x54,0x80,0x41 +.byte 0xdc,0xa7,0xc7,0xdb,0xaa,0x04,0x42,0x0d,0x42,0x03,0x17,0xc8,0x57,0xd7,0x08,0x34,0x37,0xf5,0x9a,0x90,0x30,0x43,0x54,0x5b,0x58,0x50,0x4e,0xc4,0x56,0x57,0xff,0xf0,0x05,0x82,0xca,0x2e,0x20,0xb0,0xbd,0xd0,0x00,0x7d,0x60,0x3f,0xdb,0x9c,0x08,0x7e,0x21,0x63,0xbc,0x89,0xbf,0xcb,0xcc,0x36,0xb5,0x36,0x41,0xb4,0x9c,0x5c,0x9d,0xa6 +.byte 0x74,0xa4,0x4f,0x6a,0xcb,0x63,0x51,0xb1,0x92,0xa0,0x03,0x9b,0x88,0x03,0xd5,0x82,0x30,0xfb,0x69,0x49,0x20,0xb0,0x37,0x50,0xe4,0x02,0x9e,0x11,0x09,0x20,0x1a,0x41,0x8d,0xdd,0xa0,0x18,0xb4,0x74,0x04,0x1e,0x3a,0xea,0xb4,0x28,0x01,0x7f,0x0b,0x73,0x27,0x5f,0x76,0x2e,0x71,0xfa,0x50,0x1b,0x43,0x8d,0x0d,0x6c,0x87,0xc3,0x10,0x7b +.byte 0x42,0x7d,0x17,0xa6,0x00,0x5b,0x83,0x6c,0x7b,0x7f,0x72,0xd8,0x90,0x4d,0x7f,0x54,0x72,0x17,0x21,0xe4,0x45,0x74,0x20,0x53,0x30,0x46,0x90,0xbf,0x2f,0xac,0x01,0xbd,0x40,0xa9,0xc5,0xbe,0xbd,0x9b,0x59,0x62,0x03,0x30,0x80,0xe3,0x8e,0x23,0x7b,0x2d,0x63,0x4f,0x30,0xe3,0xb8,0x56,0x87,0x57,0x43,0xdc,0x6a,0x3c,0x13,0xed,0x93,0xc9 +.byte 0x1a,0x1b,0xea,0x38,0x67,0x33,0x7f,0x11,0x5c,0x96,0x20,0x4d,0xf6,0x82,0x51,0x45,0xca,0x20,0xfd,0x59,0xef,0x4c,0xb4,0xb0,0xb2,0x0f,0xdb,0x4c,0x00,0x7a,0x18,0x58,0xb0,0xd3,0x65,0x73,0x42,0xe5,0x05,0x76,0xd7,0xa2,0x1e,0x9f,0x59,0xc0,0xd0,0x76,0x29,0x1b,0x12,0x29,0x9b,0xe4,0x7d,0x45,0x13,0xb4,0x57,0xf2,0x0b,0xd1,0xb5,0x60 +.byte 0x6d,0x15,0x0b,0xca,0x5e,0xe4,0x80,0xda,0x56,0x95,0x41,0x18,0x54,0xa7,0xad,0x40,0xe5,0xd7,0xa7,0x3e,0xf7,0x73,0x40,0x70,0xb3,0x23,0xdb,0x22,0x62,0xc7,0x44,0xfb,0x64,0x18,0x18,0x05,0x84,0x07,0x68,0x06,0x7f,0xb9,0xc3,0xf9,0x55,0xe2,0x0d,0x37,0x51,0x34,0xc3,0x55,0x3c,0x29,0x5d,0x1d,0x27,0x77,0xd3,0xe1,0x6a,0x60,0x9f,0x10 +.byte 0xef,0xb1,0x93,0xbf,0x2a,0xb7,0xe8,0x42,0x4d,0xfd,0xa9,0xa9,0x2f,0xb6,0x07,0x5b,0xe8,0xf7,0xd7,0x10,0x47,0x71,0x56,0xba,0x11,0x11,0x32,0xc4,0x22,0xf4,0x12,0x6f,0xc3,0xef,0x81,0xc5,0x82,0xb4,0x1b,0x99,0xbb,0x1a,0x63,0x6b,0x3a,0x70,0x4f,0xec,0x2c,0xf9,0xde,0x1a,0x2e,0x62,0x27,0x1c,0x81,0x21,0x30,0x08,0x30,0xf6,0xf5,0xc1 +.byte 0x6d,0x0b,0xeb,0x34,0xd9,0x3a,0xa2,0xa2,0xc6,0x17,0x60,0x85,0x65,0x43,0xd6,0x3d,0x71,0xac,0xc2,0xaf,0x2b,0x9e,0x62,0xf2,0x08,0x47,0x6f,0x42,0xa8,0x21,0xad,0x42,0x98,0xa0,0xef,0xdf,0xd8,0xda,0x10,0xad,0xf7,0xe5,0xf9,0x22,0x89,0x44,0xbf,0x86,0x86,0x2b,0x02,0xd1,0x9e,0x8f,0xb7,0x10,0x63,0xb1,0xcc,0x40,0x6b,0xa3,0x8e,0x09 +.byte 0xb8,0xe3,0x77,0x3c,0xde,0x36,0x7a,0xb7,0x78,0x4f,0x99,0x5d,0x9a,0x9e,0x19,0x2d,0xb5,0xd9,0x9c,0x95,0x1f,0xa1,0xcc,0x61,0x31,0x1c,0x96,0xe5,0xca,0xeb,0x26,0x34,0xa4,0x63,0x5c,0x7c,0x0f,0x23,0xd1,0xe1,0x09,0xf4,0xab,0xf6,0x73,0x2f,0x8a,0x62,0xf0,0xd3,0x8c,0x44,0xe5,0xe9,0x9d,0x58,0x71,0xfa,0xf5,0x39,0xa5,0x6f,0xf7,0x04 +.byte 0x43,0x0a,0x78,0x54,0xfb,0xa7,0x66,0x57,0x1f,0x61,0xd6,0xda,0xff,0x4f,0x32,0x9d,0x80,0x6b,0x77,0xed,0xda,0xaf,0xbc,0x9e,0xea,0x77,0x04,0xf3,0x47,0x96,0xd1,0x44,0x8e,0xca,0xfe,0xb0,0xa3,0xa6,0x1d,0x8d,0xa4,0xb5,0x8c,0x35,0x28,0xf3,0xaa,0xab,0x28,0x1e,0xc9,0x94,0x12,0x07,0xc6,0xea,0x23,0xf9,0x69,0xc3,0x14,0x27,0xcc,0x55 +.byte 0x27,0x0b,0x27,0x64,0x23,0x38,0x05,0xd9,0xb4,0xf7,0x00,0xf3,0x02,0xae,0xc8,0x5a,0xbd,0x2f,0x20,0xd5,0x45,0xa6,0x09,0x6f,0x1a,0x09,0xb7,0xe7,0x6f,0xf6,0xa6,0x6f,0xc7,0x03,0x4e,0xa3,0x72,0xb5,0xfc,0x17,0xcf,0x1e,0x64,0x8b,0xc4,0xa2,0xba,0x83,0x0e,0x2a,0x11,0xba,0x71,0xe0,0x1c,0x9f,0x70,0x6e,0xf4,0xd9,0x47,0x31,0xf7,0xaf +.byte 0xf7,0x1a,0xe7,0xc1,0xe9,0x66,0xa4,0x48,0xd4,0x25,0x8b,0xf7,0x6f,0x33,0x72,0xff,0x93,0x2e,0xcd,0xc7,0xae,0x3b,0x71,0x3f,0x84,0x7f,0xe6,0xb5,0x58,0x4f,0x95,0x34,0xe7,0x89,0x10,0xd3,0x2b,0x5c,0x30,0x9b,0xd3,0xef,0x98,0xf3,0x33,0x0e,0x6d,0x5f,0x7e,0xba,0x55,0x7a,0xb6,0xf3,0xb6,0xcd,0xa8,0x10,0x68,0x85,0x6f,0xea,0x54,0xc3 +.byte 0x66,0x51,0x5a,0xfc,0x11,0x83,0x9e,0x68,0x95,0xdb,0xec,0x74,0xf0,0x86,0x4a,0x90,0x24,0x66,0xf2,0x61,0x40,0x2e,0x3b,0x53,0xea,0xc1,0x3e,0x1c,0x69,0xaf,0x5f,0x04,0xb5,0xbd,0x3d,0x44,0x1c,0xc6,0x49,0x65,0xf6,0x78,0xfd,0x69,0x49,0x95,0x96,0xa1,0xa0,0xa9,0x78,0x1a,0xf6,0x0f,0xe9,0x52,0x93,0x9c,0x96,0x6c,0x5e,0x67,0x63,0x2d +.byte 0x18,0x22,0x2a,0xcc,0x7f,0x2f,0xd3,0x72,0x82,0x98,0xae,0xb0,0x2b,0xa6,0x96,0x41,0x25,0x47,0x3c,0x92,0xc5,0x0f,0x2c,0xd4,0x43,0x09,0x0b,0x94,0x73,0x73,0x29,0xc2,0x8a,0xa3,0xcc,0x8d,0xed,0x40,0x6d,0x40,0x18,0x7c,0x32,0x1e,0xe1,0x4e,0x26,0xa7,0xa4,0xd5,0xcb,0xfa,0x90,0xba,0xb2,0x04,0x1d,0x5d,0xbe,0x32,0x6c,0x71,0x09,0x51 +.byte 0xdb,0xe3,0xb0,0xe1,0x34,0x74,0xa3,0x2b,0xf2,0xcb,0x9e,0xc0,0xae,0x88,0x40,0x90,0xb6,0x22,0xc8,0xac,0xff,0x45,0xc6,0xfa,0xce,0x0f,0x03,0x9d,0xc0,0xb2,0x2e,0xdb,0x1e,0x6c,0xa5,0xbe,0xb5,0xb3,0xaa,0xd5,0x2d,0x06,0x4d,0x29,0xa3,0xbe,0x25,0x5f,0x21,0x42,0x8d,0x27,0xaa,0x6f,0x59,0x88,0x61,0x4d,0x72,0x9f,0x64,0xfc,0x07,0xaf +.byte 0xeb,0x02,0x5e,0xb9,0x1f,0xfe,0x1a,0x67,0x10,0x35,0xe9,0x9f,0x5f,0x9c,0x8d,0x4a,0xb3,0x10,0x99,0x8d,0x5b,0x9c,0x8b,0x8a,0x0c,0x02,0x8b,0x44,0x1a,0xaa,0xe7,0x14,0x05,0x3d,0x9e,0x62,0xfc,0x76,0x49,0x56,0x46,0xae,0xcc,0x0e,0x47,0x58,0x4d,0x94,0x33,0x4d,0x23,0x24,0x44,0x52,0x2e,0x18,0xf7,0x53,0x6b,0x24,0x67,0xb8,0x88,0x46 +.byte 0x70,0xc8,0xcb,0x60,0xac,0x70,0x85,0xdd,0x00,0xa1,0x5d,0xbb,0x94,0x07,0x0a,0xb6,0x1c,0x88,0x59,0xa7,0x88,0x7e,0x1e,0xc9,0x1d,0x7c,0xa0,0x1c,0xad,0xe4,0xa5,0x36,0xa5,0x35,0xe8,0xda,0x27,0x15,0xbc,0x7b,0x1e,0x8a,0x33,0x74,0x4b,0xc1,0xc7,0x9d,0xa9,0x21,0x98,0x02,0xe5,0xf4,0x8b,0x8e,0x2d,0x64,0x81,0xea,0xa6,0xbe,0xe2,0x05 +.byte 0x16,0xba,0xac,0x75,0x79,0xa4,0xc0,0xd3,0x9d,0xe0,0x25,0x63,0x22,0xb3,0x9c,0xee,0x04,0x8f,0x60,0xab,0x52,0x43,0x05,0x16,0xd4,0xb3,0x88,0xe8,0x68,0xc3,0x81,0x94,0xc4,0xee,0x13,0xaf,0xdd,0x36,0x23,0xe6,0x78,0xc9,0xf6,0x42,0xf0,0xf7,0x89,0x64,0x79,0x13,0xe8,0xed,0x50,0x03,0x16,0x78,0x6d,0xf4,0xdf,0x85,0x2e,0x4e,0x8f,0x2c +.byte 0x5b,0xfe,0x4c,0xf2,0x49,0xde,0xf2,0xa4,0x96,0xe0,0x8a,0x25,0xc8,0x6d,0x22,0xff,0xab,0xfc,0x18,0xe8,0x7f,0xd5,0xc1,0x7e,0x44,0x8e,0x21,0xb4,0xc8,0x79,0xc0,0x55,0xaa,0xb7,0x28,0xa1,0x3a,0xbd,0xc2,0x1d,0xf8,0x87,0xf9,0x35,0x30,0x25,0xb2,0xaa,0x8f,0x3c,0x0d,0x64,0xf2,0xd1,0xa0,0x51,0xbf,0x9b,0x9a,0x9a,0x9c,0x18,0x43,0xea +.byte 0xd2,0x54,0x50,0xe0,0xca,0x1a,0x29,0x16,0x9f,0x49,0x47,0x56,0x65,0x21,0x0f,0xb0,0x53,0x41,0xe3,0xec,0xe0,0x15,0xcb,0xd0,0x61,0x05,0x67,0xd6,0x02,0x1a,0x31,0x80,0xa4,0x9f,0xf5,0x9b,0x28,0xcd,0x43,0xd5,0x70,0x05,0x67,0xe8,0x76,0xb7,0x99,0x98,0x0a,0xd6,0x27,0xe9,0xfb,0x62,0xff,0x66,0x47,0xf7,0xbe,0x5e,0x35,0xa0,0x3b,0x56 +.byte 0x58,0x78,0x9b,0x9c,0x5b,0x9f,0xf5,0x6b,0x1a,0x6a,0xfd,0x8e,0xe3,0xd9,0xa2,0x8b,0x2e,0xef,0xc7,0xd3,0x74,0xb1,0xea,0x6a,0x03,0x8b,0xe2,0x78,0xbe,0xf1,0x75,0x7f,0x02,0x03,0xbc,0xd3,0x15,0x2c,0x87,0x01,0x95,0xa6,0x87,0x2d,0xf8,0x63,0xfe,0x33,0x8f,0xc5,0xc9,0x0a,0x06,0x79,0x93,0x46,0xd7,0x0b,0x61,0x06,0x68,0xae,0x9b,0x46 +.byte 0x6f,0x9e,0x1b,0x21,0x58,0xc1,0x72,0xa9,0x05,0xa7,0xaa,0x88,0xee,0xed,0x8d,0x7f,0x55,0x3b,0xb8,0xb8,0xf8,0x42,0x26,0x4a,0x78,0xe3,0x17,0xe8,0xac,0xb3,0xdb,0x9b,0x90,0x7d,0x8d,0x65,0x00,0x39,0x40,0xc2,0xe2,0x9c,0xc6,0x16,0x35,0x54,0x64,0x09,0xc8,0xc7,0x08,0x77,0x90,0x9d,0xb4,0xd4,0xe1,0x36,0xd4,0x5e,0x63,0xb0,0xba,0x81 +.byte 0x0c,0x4e,0x24,0x20,0xc0,0x7f,0xfc,0x02,0x3d,0x83,0x60,0x8a,0xf5,0xff,0x87,0x60,0x9c,0xd5,0xc0,0x94,0x64,0xe2,0x3f,0xeb,0x9a,0xe5,0xb6,0x50,0x13,0x36,0xf4,0x96,0x5d,0xf4,0xb5,0xab,0xa4,0x28,0x17,0x38,0x7f,0xca,0xf7,0x0c,0xcf,0xae,0xf8,0xef,0x41,0x6d,0x9c,0xa1,0x53,0x33,0xcb,0x8d,0x21,0xab,0x3a,0x8c,0x72,0x8d,0xf3,0xf2 +.byte 0x05,0x69,0xf5,0xe8,0x6b,0x5b,0x42,0x85,0xb1,0x2e,0x6f,0xf8,0x62,0x00,0x1c,0x48,0x6c,0x85,0x72,0x93,0x34,0x67,0x80,0xe7,0x2a,0xfe,0xcf,0x54,0xc6,0x94,0xf2,0x5a,0x48,0xab,0x40,0x52,0x66,0x7d,0x7a,0x75,0x68,0x77,0xfd,0xb2,0xdd,0xb1,0xdb,0x72,0x50,0x31,0x53,0x24,0xbd,0xb0,0x6e,0x1f,0xbd,0xa6,0x90,0x67,0x07,0x1d,0x31,0xf3 +.byte 0x8c,0x82,0xf7,0x53,0x85,0x54,0x64,0x7c,0x76,0x7b,0x5f,0xaa,0xe0,0xe0,0x36,0xa4,0x13,0xb3,0x0b,0x99,0x09,0xfe,0xed,0xbb,0x81,0x4b,0xb3,0x16,0x45,0x2e,0x3a,0xfe,0x60,0x9c,0xdc,0xcb,0x00,0x5a,0x41,0xc4,0x80,0x3c,0x9d,0x15,0x05,0xfa,0x5e,0x37,0x64,0x89,0x9c,0x2d,0xb8,0xf7,0xbc,0x35,0x8c,0x49,0xfe,0x0a,0x43,0x1a,0x59,0xaf +.byte 0x1e,0x50,0x08,0x0f,0x2d,0xb8,0x5d,0x63,0x7f,0x95,0x6a,0xe6,0xad,0x88,0xc3,0xac,0x05,0x14,0x44,0xb0,0x70,0x83,0x5f,0x94,0x45,0x3d,0xe5,0xbd,0xb8,0x92,0x28,0x20,0xd5,0xa0,0x83,0xd2,0xe2,0x41,0x71,0x27,0x29,0x1b,0x2a,0x3a,0x08,0xca,0x75,0xec,0x16,0x4a,0xcf,0x39,0xed,0xbe,0x2a,0x26,0x9b,0xa3,0x26,0xc6,0x89,0xf2,0xc6,0x8d +.byte 0x49,0x3a,0xfe,0xda,0x16,0x54,0x55,0x7e,0x7f,0x65,0x65,0xd2,0x16,0xdd,0xe2,0xa3,0x86,0x7a,0x69,0x82,0x99,0x58,0x45,0x16,0x4c,0x69,0xff,0x72,0xf2,0xbc,0xbb,0xdd,0xe1,0xb4,0x56,0xcf,0xc0,0x84,0xd6,0x2c,0xd8,0xce,0xf4,0x67,0xd8,0x1d,0xb7,0x77,0x6d,0x96,0xf4,0x28,0x7a,0x33,0x03,0x97,0x72,0x37,0xd9,0x35,0xcf,0x20,0x28,0xc2 +.byte 0xc4,0xea,0xf9,0x99,0x89,0xe0,0xcc,0x3d,0xec,0x2c,0xbf,0x06,0x78,0x91,0x1b,0x55,0x1b,0x51,0x9b,0xbe,0xf7,0x4a,0xf8,0x9f,0x46,0xab,0xee,0x5d,0x4e,0x29,0x36,0xf3,0xb9,0xa7,0x85,0x9b,0xf7,0xa1,0x9e,0x2a,0xbb,0xb3,0x0a,0x61,0xb5,0x0f,0x79,0xf4,0xe2,0xd2,0x2c,0x15,0xf7,0x4f,0xca,0xa9,0x46,0x25,0x1c,0xdc,0xfa,0x0f,0x9e,0xfa +.byte 0xf5,0xb8,0x54,0x7a,0xe3,0x98,0x3c,0x3b,0x85,0xf8,0xb3,0x7c,0x70,0x40,0x86,0x2a,0x66,0xd1,0x4d,0x83,0x38,0xc2,0x24,0x8e,0x30,0xc0,0x9e,0x54,0x4c,0x7a,0x62,0x9a,0x55,0x8e,0x11,0x02,0xef,0x30,0x08,0x5c,0xf3,0x57,0xa7,0xbe,0x32,0x04,0xab,0xb1,0x3a,0x51,0x6e,0xcd,0x6f,0xc1,0xd8,0xd0,0x7d,0x4f,0x1b,0xa9,0x1e,0x12,0x92,0x94 +.byte 0xd7,0x40,0xa9,0x99,0x70,0x06,0xcb,0x46,0xa5,0xe0,0x77,0xbe,0x6d,0x48,0xab,0x67,0x4e,0xa7,0x0e,0xfe,0x1f,0x53,0x24,0xbc,0x89,0xcb,0x70,0xac,0x05,0xa2,0xf4,0xa3,0x44,0xde,0xcb,0x18,0x95,0x78,0x70,0x0f,0x69,0xf0,0x5e,0xbd,0xe7,0xfc,0xd3,0x17,0x3e,0x18,0xb0,0x2f,0xa6,0xfe,0x82,0x81,0xe7,0x74,0x44,0xfb,0x43,0x5e,0xda,0xf4 +.byte 0xfb,0xfe,0x5c,0xb4,0x3c,0x1d,0xea,0x0d,0x2d,0xdb,0xee,0x1f,0xc5,0xbd,0xb2,0xa0,0x52,0x76,0x9e,0xad,0xfa,0x19,0x37,0xb0,0x15,0x53,0x82,0x25,0x86,0xd9,0xce,0x99,0x84,0x67,0x5f,0x57,0xb2,0x6f,0x99,0xa4,0x56,0xb5,0x01,0x4f,0xdf,0xa2,0xca,0x8c,0x23,0x51,0xd3,0xc7,0x72,0x9b,0x90,0x72,0x29,0x0c,0xca,0x86,0xff,0xc3,0xd9,0x9e +.byte 0x87,0xe4,0x8d,0xc6,0xac,0xba,0xfb,0x73,0xa9,0xcd,0x5d,0x16,0xfc,0x12,0xea,0x30,0xd5,0x7d,0x7b,0x16,0xa6,0x2c,0xeb,0x3c,0x3e,0x46,0x7c,0xee,0x03,0xd6,0x7a,0xe8,0x88,0x1c,0x17,0xa9,0x08,0xe9,0xd5,0x38,0x59,0x54,0x0b,0xb0,0x77,0x1b,0x76,0x09,0x53,0xca,0x38,0x12,0xd1,0xb5,0x2c,0xe3,0xd6,0xa0,0xca,0x9f,0x65,0x56,0xea,0x95 +.byte 0xab,0xc1,0xf4,0x98,0xaf,0x1a,0xe7,0x2b,0x1e,0x8d,0x75,0x43,0x43,0x9f,0x42,0x5c,0x2c,0xa5,0xd7,0x9a,0xcd,0xc2,0xab,0xd9,0x1f,0x1f,0xde,0x8a,0x3e,0xf8,0x0f,0x56,0x8a,0x01,0xde,0x47,0x41,0xd8,0xa0,0xc8,0x32,0x4d,0xa3,0x75,0x80,0x87,0xb1,0x1e,0x05,0x06,0x5e,0x2c,0x9a,0x7b,0xd3,0x22,0xe0,0x53,0x8f,0x4f,0x35,0x5f,0x46,0x3a +.byte 0xb2,0xfe,0x62,0x44,0x54,0x38,0xe0,0x03,0x5e,0xda,0xcb,0x86,0xdf,0xda,0x67,0x66,0x40,0x27,0x97,0xf0,0xc2,0xbd,0xce,0xce,0x37,0xeb,0x47,0xe2,0x56,0x7e,0x54,0xe9,0x51,0xda,0xec,0xd5,0xe6,0xc1,0x69,0x6e,0x4c,0x3d,0x92,0xdc,0xa0,0x51,0xe2,0x2b,0xb8,0x96,0xb6,0xce,0xdf,0x35,0xdb,0xd0,0xd4,0x42,0xe3,0x94,0x89,0x09,0x1b,0xb4 +.byte 0xe2,0x8f,0xfb,0x23,0x62,0x35,0x56,0xc7,0x94,0x40,0xd7,0x2d,0xdb,0x80,0xc9,0xbd,0x4d,0xe3,0x14,0x30,0x44,0x43,0xad,0xeb,0x3d,0x89,0xe9,0x61,0xd7,0x80,0x15,0x59,0xcd,0xda,0x38,0x11,0x3b,0x84,0x14,0x85,0xef,0x55,0xf2,0x01,0x2c,0xed,0x74,0xf5,0x71,0x75,0x0c,0x52,0x0c,0x41,0x86,0xbe,0x84,0xc5,0x89,0x8b,0xa5,0x6d,0xc3,0xfa +.byte 0x2b,0xe5,0xe7,0xe8,0xdd,0xf9,0xe8,0x27,0x08,0x5d,0xdf,0x61,0xdc,0xb2,0xe0,0x8c,0xe8,0xda,0xa8,0x68,0x22,0x51,0x6b,0xdf,0xd0,0x92,0x87,0x6a,0x43,0xff,0xd1,0x9d,0x9a,0x4c,0x03,0xdf,0x3e,0xc1,0x31,0x33,0x6e,0x2a,0x55,0xc1,0x58,0x59,0x69,0x66,0x05,0xd1,0xa7,0xa1,0x3b,0x98,0x1d,0x44,0x74,0xc7,0x7e,0xc0,0x07,0xd9,0x9c,0x87 +.byte 0x5f,0xc3,0x44,0x25,0x7b,0x96,0xbc,0x20,0x5d,0x14,0x08,0x34,0xe9,0xad,0x34,0xa3,0xc3,0x95,0x1a,0xc1,0xd1,0x37,0x43,0x49,0x66,0xff,0x39,0x70,0x27,0xa0,0x2b,0x39,0x9d,0x1b,0x78,0x52,0x55,0x77,0x30,0xe8,0x72,0x65,0x8a,0xc8,0xa4,0xe6,0xb7,0xd6,0x66,0x82,0xa7,0x1d,0xde,0x3e,0xc2,0x23,0x5a,0x8b,0x51,0xe4,0x44,0x03,0xf3,0x89 +.byte 0x10,0xb0,0x9a,0x09,0x5d,0xe3,0xe9,0x4a,0x0b,0xe3,0x86,0x58,0xf8,0xe3,0x1a,0x3f,0x7f,0x42,0xa5,0xd7,0xb0,0x24,0xb7,0xbc,0x1d,0x40,0xe7,0x2f,0x42,0x8c,0xa8,0x3c,0x33,0xee,0x9f,0xaf,0xd1,0x51,0x8e,0x34,0x82,0xc5,0x16,0xef,0xb1,0xa6,0xa8,0x0e,0xae,0xe6,0xc3,0x2f,0xb3,0x06,0xd4,0x4c,0xec,0xee,0x9e,0xff,0x88,0x82,0x4b,0xb8 +.byte 0xc5,0xef,0x94,0xe2,0x68,0x48,0x23,0xa2,0xc8,0xe4,0xdb,0x33,0xf9,0xee,0x73,0xc2,0xe6,0xa1,0x64,0xf9,0xf6,0xab,0x5a,0xdc,0xa5,0xb3,0xd8,0xae,0xf4,0x1f,0x47,0xfe,0xa0,0xee,0xf5,0xee,0x41,0x30,0xa6,0xbe,0x34,0x2c,0x1a,0x24,0x8a,0x80,0xb1,0x79,0x7e,0x2c,0xc0,0x65,0x68,0x46,0xae,0x0a,0x01,0x77,0xce,0xa2,0x5f,0xc3,0x00,0x8f +.byte 0xd4,0x0f,0xbe,0xbf,0x81,0x20,0x4e,0xb8,0x21,0x5f,0xfa,0xb2,0xf2,0x02,0x83,0x41,0xa8,0xf1,0xe8,0x2c,0x7e,0x0e,0xe6,0xf0,0x6e,0xd5,0x7b,0xcb,0x4e,0xed,0x06,0xc4,0x18,0xfb,0x0e,0x0d,0x8e,0x22,0x8a,0x40,0x4d,0x66,0xa5,0x0c,0x74,0xf3,0x9e,0xd9,0x90,0xf8,0x71,0xe4,0x92,0x05,0x3d,0x2d,0xa0,0xed,0x42,0x88,0x18,0x9a,0xc7,0xe4 +.byte 0x41,0x5d,0xde,0x44,0x2e,0x26,0x30,0xfe,0x51,0xa8,0x91,0xa3,0xa6,0xfd,0x3e,0x04,0x7f,0x3a,0xa9,0x1c,0x21,0x98,0xab,0xaa,0x39,0x9d,0xe4,0x51,0x75,0xeb,0x90,0x6b,0xab,0x11,0x89,0xa9,0x22,0xa8,0xc5,0x92,0x16,0x51,0xe1,0x77,0x09,0x53,0x7f,0xb6,0x80,0x4b,0xf5,0xf5,0xa2,0x0e,0x36,0x24,0x7f,0xe7,0xcc,0x67,0xfb,0x2c,0x6e,0xc2 +.byte 0x16,0x47,0x41,0xc2,0x77,0xf4,0xcf,0x49,0x37,0x17,0x67,0x34,0x14,0x92,0x7d,0x0f,0x14,0xe8,0x4b,0x4c,0xc3,0xbb,0x78,0xf7,0xa0,0x59,0xbe,0x06,0x10,0x38,0xe6,0x2c,0x08,0x15,0xba,0xc6,0x49,0x38,0x9a,0x91,0x2b,0x4d,0x82,0x42,0x0e,0xe4,0x02,0xef,0x2b,0xa2,0x06,0xcc,0x3a,0x3c,0xb9,0xc5,0xb5,0x71,0x1e,0x17,0x5d,0x65,0x35,0x91 +.byte 0x89,0x54,0x97,0xa8,0x7b,0x02,0x24,0xf9,0xdb,0xb5,0x52,0xf7,0xd0,0xa0,0x42,0x48,0x01,0xf4,0x47,0x7c,0x84,0x7c,0x8a,0xb4,0xf4,0x30,0xec,0xb9,0x21,0x44,0x87,0xb2,0x96,0xa4,0x3b,0x0d,0x93,0x26,0x09,0xc8,0xfa,0x28,0x6f,0x09,0xb7,0x03,0x85,0x66,0x21,0x2d,0xf1,0xaa,0x3f,0x0b,0x59,0x15,0xfe,0x8b,0x2b,0xe0,0x81,0x38,0x63,0x70 +.byte 0x09,0x37,0x38,0x62,0x04,0x8e,0x3f,0x23,0x65,0xf8,0xf7,0xc0,0x30,0xb8,0x04,0xb4,0x17,0xd7,0x21,0xcc,0x8b,0x31,0xd3,0x7b,0x11,0xea,0xc5,0x51,0x01,0x93,0x5f,0xe3,0xf3,0x1e,0x0d,0x41,0x52,0x2a,0xfd,0x27,0x02,0x00,0x58,0x0d,0x1f,0x16,0xd7,0x50,0x09,0xea,0x3f,0x9f,0x72,0xae,0x7a,0x79,0x4b,0x69,0x61,0xfc,0xac,0x5c,0x4d,0x6a +.byte 0x65,0x5d,0xa5,0x67,0x76,0xe4,0x24,0x3f,0xa0,0x6f,0xf6,0x60,0xd2,0x70,0x8e,0x2e,0xbe,0xf9,0x8b,0xab,0x22,0xc8,0x9c,0x5b,0x26,0xc5,0x75,0xeb,0x96,0xa2,0x4f,0xdf,0x6c,0x05,0x9a,0x15,0xef,0xbf,0x3e,0x35,0x6d,0x8d,0x48,0xa4,0x33,0xc2,0xe8,0x3b,0x89,0xe4,0x0c,0xb2,0x9a,0xc6,0x89,0x52,0xba,0xc7,0x2a,0xa5,0xfb,0xe5,0xde,0x06 +.byte 0xbd,0xc3,0x4f,0xe8,0xa9,0x9d,0x36,0xa5,0xcc,0x90,0xcd,0x68,0x49,0x52,0x6e,0x9a,0x85,0xd4,0x1b,0xe5,0x3f,0x54,0xc8,0xb4,0x7a,0x76,0xbf,0xa8,0xf4,0x25,0x05,0xeb,0x43,0x0c,0x2b,0x1c,0x59,0x5b,0x51,0x7f,0xd5,0x13,0x54,0x37,0x44,0x37,0x2f,0x79,0x1c,0x1f,0x18,0x57,0x60,0xab,0xf7,0xcc,0x5d,0xd5,0xdd,0x69,0xab,0x7f,0xc7,0x9d +.byte 0x7f,0xd7,0x6a,0xdc,0x34,0x3d,0x6e,0x2c,0x1e,0xb8,0x74,0xef,0xec,0x14,0x83,0x98,0x20,0x85,0x8a,0x95,0x93,0x26,0xed,0xbb,0x7d,0xfe,0x63,0xaa,0x20,0xbb,0x40,0x7b,0x35,0x1d,0xe5,0x64,0xc0,0x64,0x83,0x90,0x59,0xb4,0xae,0xf7,0xfe,0x14,0xb2,0xaa,0x72,0xf7,0x34,0x61,0xe0,0x61,0x06,0xb3,0xdc,0x09,0x5f,0xe1,0x57,0x65,0x83,0x8a +.byte 0x6d,0x46,0x54,0x8f,0xbf,0x38,0x12,0xf5,0xa3,0xfc,0x7b,0x90,0x4f,0x30,0xed,0xc1,0xab,0xb2,0x6e,0xee,0x7c,0x5e,0x35,0x70,0x80,0xb0,0xae,0x93,0xdc,0x4e,0x8f,0x6c,0x37,0xef,0xc9,0x4c,0x3a,0x41,0x14,0x91,0x99,0x0d,0x48,0xbe,0x5e,0x9b,0xc5,0xa6,0x4d,0x07,0x0d,0xd5,0xe6,0x5d,0x26,0x6b,0xa0,0xf3,0xb2,0x28,0x15,0x57,0xdb,0x7b +.byte 0x8e,0x6b,0x88,0xc3,0x81,0xb6,0x16,0xd1,0x3c,0xd0,0x2d,0x5a,0x23,0x35,0x8e,0xb0,0x8b,0x5c,0x99,0x6a,0x7a,0x55,0xb1,0xf9,0x45,0x97,0x94,0x05,0x6e,0x58,0xd4,0x53,0x8d,0x73,0x43,0x02,0x68,0xdf,0x7c,0x37,0x1a,0x6b,0x71,0x04,0xa0,0x31,0x77,0xbc,0xe0,0x16,0x5a,0x2a,0x9a,0xb2,0x40,0xe4,0xbb,0xd0,0xfd,0x35,0xcb,0x7f,0xf4,0x13 +.byte 0x0f,0xb5,0x93,0x9a,0x7d,0x50,0xf8,0xfe,0x56,0x34,0x83,0x20,0xce,0x3d,0x02,0x2e,0x0b,0x95,0x76,0x88,0x47,0x8c,0x75,0x51,0x14,0x52,0x49,0xbc,0xed,0x66,0x0e,0x81,0x65,0x5e,0x64,0xfb,0x45,0x59,0x3d,0x2b,0xd6,0x3a,0xc6,0xfd,0x50,0xe4,0xeb,0x0c,0x68,0x38,0x0f,0xdd,0xa2,0xdc,0xaa,0x26,0xf5,0x7b,0x40,0x6a,0x90,0xf8,0x08,0x2c +.byte 0xe8,0x8f,0x8e,0xc1,0xf2,0x6b,0x87,0xeb,0x7a,0x02,0x9e,0x26,0x3e,0x6b,0xb9,0x71,0x2e,0x6f,0x26,0x20,0xa9,0xc0,0x7c,0xe5,0x6c,0x6b,0xd4,0xc4,0x7b,0x54,0x8e,0x4a,0x7a,0xef,0xfc,0x03,0x02,0x1d,0x6a,0x16,0x99,0x35,0x12,0x49,0xba,0x86,0x37,0x7a,0xb0,0x8d,0x58,0x6f,0x1c,0xba,0xa9,0x5d,0x93,0xdf,0x98,0x50,0x7e,0xea,0x0a,0x88 +.byte 0x1a,0xd4,0x63,0x91,0x23,0x43,0x43,0x17,0x2e,0xe6,0x04,0x95,0x96,0xa8,0x2b,0xb4,0x9e,0x91,0x6c,0x13,0x52,0x8c,0xbf,0x7d,0x50,0xfc,0x79,0xef,0xa1,0x3e,0x90,0xba,0xac,0xd1,0x0d,0xb0,0x4d,0xd5,0x7a,0xc7,0xbd,0x82,0xb7,0x03,0x9c,0x0b,0xbc,0xa7,0x3c,0x05,0x8f,0xbd,0x0d,0x7f,0x80,0xeb,0xe9,0xbd,0x8f,0xdc,0xcd,0x86,0x23,0x26 +.byte 0xb0,0xa4,0xdc,0x63,0xef,0xad,0x61,0x53,0x7e,0x23,0x34,0x0d,0xd9,0x75,0x7c,0xa7,0x57,0xba,0x28,0x0c,0x82,0x7f,0x68,0xe5,0x24,0xdc,0x23,0x99,0xcd,0x6f,0x03,0x59,0x4f,0x35,0x47,0xc4,0x11,0xc0,0x0c,0x2b,0x16,0x94,0xb8,0x28,0xf2,0x0a,0x91,0x2e,0x1c,0xde,0x75,0x50,0x52,0x00,0x0a,0x92,0x80,0xca,0x39,0x3a,0xdf,0x16,0xb7,0xe2 +.byte 0xbd,0x98,0x7b,0x70,0x48,0x85,0x6d,0x48,0xa0,0x1b,0x0a,0xbb,0xa8,0xb6,0xca,0x9c,0x4e,0xda,0x0a,0x17,0x0b,0x30,0xf5,0xa2,0x9b,0x5a,0x89,0xf4,0x53,0x89,0x38,0x34,0x2b,0x7d,0x14,0x04,0x44,0xa3,0x8f,0x70,0x29,0xa5,0x3e,0xdd,0x5a,0x61,0xa1,0x04,0xac,0xd8,0xd3,0xec,0x42,0xc4,0xd9,0x2c,0x13,0x80,0xf8,0xc9,0xec,0x54,0xa7,0xa0 +.byte 0xe6,0x37,0x04,0x38,0x5f,0x1e,0x0b,0xfb,0x38,0x06,0xb9,0xe2,0x05,0x12,0x12,0xa2,0x28,0xff,0x12,0xae,0x44,0xd8,0x0d,0x2c,0x5a,0x8f,0xfb,0x1d,0x98,0x69,0x85,0x69,0x99,0xc0,0x63,0xc5,0x88,0xa7,0x2d,0x56,0x76,0x32,0x23,0x4c,0xf7,0x29,0xd6,0x3e,0x45,0xfa,0xd7,0x61,0xf4,0x9a,0xa6,0x9e,0x4a,0xe7,0xe7,0xf9,0xbf,0x1f,0x09,0x82 +.byte 0xbe,0x36,0xa0,0xdd,0x91,0x47,0x3b,0xbc,0x52,0xf2,0xc2,0x04,0x96,0x85,0xb6,0x93,0xac,0x99,0x94,0xbe,0xfd,0xe6,0x53,0x9f,0x75,0xab,0x38,0xdd,0x81,0xc0,0x79,0x25,0xcd,0x73,0x72,0x5b,0x4d,0xc0,0xba,0xa9,0x18,0xaa,0x76,0x51,0x15,0xef,0xb9,0x22,0xdd,0x5f,0x22,0x62,0x6c,0x36,0xf6,0xc0,0x72,0x34,0x01,0x7a,0xaf,0xe2,0x87,0x1b +.byte 0x5f,0x33,0x9c,0xd5,0xe2,0x81,0x03,0xbe,0x4e,0xac,0xcc,0x17,0xc5,0xc6,0xf8,0x0f,0x24,0xe0,0x26,0x56,0x8a,0x20,0x2e,0xe4,0x05,0xc8,0x0f,0x89,0x24,0x0e,0xd4,0xb7,0x07,0xd1,0x99,0x8c,0x55,0xfd,0x75,0xc1,0xdb,0xaa,0xd1,0xd2,0xa6,0xf2,0xf0,0x3c,0xae,0x62,0x0e,0x1f,0xaa,0xc9,0xa5,0x16,0x09,0x2c,0xc0,0x61,0x55,0x72,0x70,0x63 +.byte 0x22,0xb6,0x41,0xa5,0x08,0x34,0x6a,0x1b,0xfc,0x42,0x81,0xe7,0x25,0x98,0xcf,0xba,0x18,0xb0,0x36,0x90,0x72,0x65,0x75,0xf3,0x57,0x68,0xd0,0x86,0xe4,0xaf,0x33,0xb6,0x2b,0xef,0x96,0x97,0x17,0x42,0x6b,0x8e,0x19,0xaa,0x4b,0x9d,0xc7,0x73,0x34,0x5f,0x41,0x24,0x12,0xfb,0x66,0xa2,0x1e,0x91,0x41,0xc2,0x78,0x08,0x66,0xc4,0xb2,0x86 +.byte 0x67,0x70,0xe6,0x96,0x76,0x8d,0xa4,0x69,0x6f,0xe5,0x35,0x8b,0x20,0x3d,0x6a,0xcb,0x65,0x7b,0x82,0x7b,0xf6,0x2d,0xd8,0xd0,0xda,0x69,0x8b,0xcd,0xdf,0x15,0xf6,0x3a,0x2c,0xfe,0xc7,0x84,0x20,0x11,0xcc,0x18,0x4f,0xc7,0x2e,0x1c,0x46,0x41,0x6b,0x91,0x79,0xa0,0xbb,0xf4,0x48,0xd7,0x0c,0x9a,0x88,0x01,0xda,0xa1,0xd1,0x8f,0x27,0x49 +.byte 0x9d,0xa0,0x3f,0x5a,0xc2,0xf7,0x26,0x9b,0xe5,0xff,0xa4,0xcb,0x86,0x32,0xb3,0x3c,0xd5,0xe5,0x7c,0xbb,0x5e,0xfe,0x3d,0xcf,0x60,0x1c,0x16,0x8e,0x0c,0xc4,0xa9,0xf2,0xb2,0x42,0x1d,0x13,0xb0,0xa8,0xff,0x90,0xbc,0xd9,0x9a,0x6d,0x78,0x7a,0x46,0x1a,0xa8,0x35,0x4e,0xa4,0x79,0xd5,0xb4,0x36,0x47,0x62,0x3c,0x0e,0x23,0x56,0xca,0xa2 +.byte 0x60,0xe6,0xca,0xf6,0xc3,0xd6,0x7c,0x5d,0x54,0x9c,0x0c,0xfa,0x9a,0x0f,0x3a,0x8c,0x64,0x52,0xdb,0x62,0x5e,0x93,0x82,0xef,0x9e,0x8d,0x30,0xa5,0xe7,0x3d,0x52,0x11,0xd4,0x93,0xb1,0x77,0x8f,0xee,0x54,0x9c,0x80,0x47,0xa9,0x21,0xa8,0xf7,0x16,0x4b,0xbb,0xab,0x75,0x52,0xed,0x0c,0x85,0xf8,0x04,0xf4,0x80,0x08,0x4a,0xb5,0x2d,0x2d +.byte 0xd8,0x98,0x57,0x24,0xd5,0xc8,0x77,0xa0,0xd8,0xb5,0xb1,0x83,0x92,0xb4,0xc7,0x42,0x36,0xd1,0xa5,0xd6,0xbd,0x89,0xc6,0x76,0x31,0x92,0x31,0x67,0x2c,0xa4,0xb2,0x2b,0xcf,0x94,0x20,0x6a,0x17,0x63,0xb9,0x76,0xac,0x9c,0x1c,0x95,0x3e,0x57,0xf8,0x87,0x0d,0xef,0x36,0xcd,0x87,0xd1,0x58,0x2c,0x9a,0x5e,0x54,0x0e,0xac,0x97,0xbd,0x15 +.byte 0xc4,0xdb,0xea,0xd3,0x21,0x05,0x2d,0x78,0xce,0x4c,0x60,0xf3,0xf8,0xeb,0xd9,0x19,0x89,0xb0,0x83,0xc0,0xe4,0x42,0x08,0x5c,0x1a,0x1c,0x53,0xf3,0x1e,0x5a,0x28,0x92,0x0d,0x32,0xbe,0x4a,0x9a,0x70,0x78,0x93,0xc1,0x66,0x81,0xda,0xe7,0x3d,0x05,0xc5,0xaa,0xdc,0x51,0x6b,0xaf,0x67,0x4d,0x18,0xfe,0x29,0xe0,0xfa,0x5c,0xe5,0x9a,0x18 +.byte 0x7f,0x8f,0xaa,0x21,0xa5,0xd0,0x8b,0x62,0x32,0x6b,0x93,0x02,0x19,0x62,0xd3,0xd6,0x74,0xea,0x83,0xdb,0x6c,0x57,0xe3,0x1f,0x1f,0x90,0xd0,0x22,0xf7,0x9a,0x4a,0x14,0xf4,0x8a,0xb3,0x86,0xa5,0x4c,0x1e,0xdf,0x49,0xa5,0x78,0x30,0x5e,0xf0,0x9a,0x69,0x0d,0xaa,0xe9,0x47,0x01,0xae,0x51,0xcf,0x32,0x4c,0xec,0x03,0x08,0xe7,0xcb,0x35 +.byte 0x59,0xd2,0x48,0xd4,0xfa,0x6a,0x45,0x6b,0x66,0x1f,0xb8,0x1e,0x45,0x85,0xef,0x14,0x25,0x34,0x48,0x50,0x59,0xf3,0x76,0x09,0x32,0xf5,0xe4,0xa8,0x98,0xb0,0x9a,0x70,0xec,0x0a,0x17,0x87,0xcf,0x6d,0x96,0x7d,0x50,0x5e,0x3a,0xff,0x57,0xa7,0xaf,0x04,0x0d,0xdc,0xcc,0xad,0xe3,0x09,0xd3,0x92,0xab,0xd8,0x3a,0x61,0x1f,0x9c,0xc4,0x36 +.byte 0x3b,0xf3,0xf6,0x87,0x43,0xea,0xc8,0xff,0x29,0x19,0x9e,0x87,0x44,0xc7,0xe5,0x5c,0x43,0x30,0x9a,0xb2,0xd8,0x47,0x4a,0x87,0xcc,0xc7,0x8e,0x99,0x32,0xdd,0x3c,0x37,0xda,0xa0,0x39,0x04,0x55,0xca,0xcf,0x2f,0xce,0x8b,0x22,0x35,0x2c,0x29,0x89,0xef,0x5c,0x05,0x82,0x55,0xf3,0x8d,0x64,0x7f,0x69,0xf7,0x3d,0x43,0x27,0xf3,0x4c,0xd7 +.byte 0x43,0x89,0x47,0xd5,0x0b,0x01,0x1b,0x17,0x6c,0x7e,0x63,0x18,0x87,0x8b,0x8f,0x20,0x0d,0xa4,0x1e,0xa5,0x3b,0xf1,0x5c,0xe5,0xc8,0x23,0xd4,0xee,0x79,0x3e,0xd1,0xbc,0x83,0x30,0x03,0x64,0x80,0x7e,0xda,0x13,0x7c,0x52,0x88,0xc1,0x7c,0xa7,0x8a,0x5d,0x8d,0x7b,0x57,0x4e,0x59,0x97,0x83,0x52,0x03,0x04,0x6b,0xd2,0xf3,0xff,0x1c,0x4e +.byte 0x3b,0xae,0x70,0x61,0x3b,0x8b,0xaf,0x56,0x3d,0x28,0x73,0x24,0x39,0x4b,0xb8,0x6e,0x89,0x28,0xe6,0xc8,0x5c,0xe9,0xf8,0xec,0x8f,0xf7,0x75,0x1a,0x13,0xc1,0x8e,0x53,0x4e,0xe5,0xef,0x37,0xce,0xa1,0x54,0xca,0xcc,0xf5,0x01,0x29,0x2a,0x8f,0x00,0x1c,0xde,0xcd,0x5e,0x24,0x0b,0xa5,0x94,0x0c,0x8a,0xab,0x54,0x1e,0x80,0x2a,0x0d,0x84 +.byte 0x38,0x4c,0x17,0xea,0x84,0x07,0x9c,0xbd,0x85,0xd8,0x1b,0x57,0x6a,0xde,0xb3,0x86,0xa3,0xf8,0x6d,0x03,0x3e,0xf1,0x37,0xae,0x7d,0x02,0x33,0xc5,0x7b,0xf6,0x64,0xdb,0x3e,0xb0,0x48,0xda,0x49,0xec,0x89,0xb4,0x83,0xff,0xe1,0x6f,0x9a,0x7e,0x0a,0xda,0x6e,0xec,0x70,0x0b,0x51,0xac,0x82,0xac,0xb8,0xce,0x16,0xe7,0x47,0xab,0xe8,0xc7 +.byte 0x56,0xd1,0xab,0x73,0x72,0x5c,0xe7,0x9e,0xb8,0x77,0xa7,0xc1,0x47,0x9c,0x4e,0x16,0x68,0xce,0x21,0x23,0x2d,0x6c,0xcf,0x79,0xd6,0xd4,0xdf,0x74,0x30,0xb8,0x0f,0x60,0xea,0xbf,0x39,0x77,0x45,0xdc,0xaf,0x25,0xbd,0xc5,0x8d,0x0b,0x44,0x21,0xc1,0xc1,0x2e,0x54,0x2a,0x32,0x6c,0xea,0x51,0xe0,0x7d,0xa8,0x09,0x94,0x2f,0x4e,0xfe,0x27 +.byte 0xe8,0x63,0xfb,0x71,0xca,0x01,0x7d,0xc9,0x70,0xd8,0xe4,0x82,0xbf,0x3f,0xea,0x64,0x5e,0xa9,0x84,0x1d,0x2c,0xfd,0x8a,0x7d,0x33,0x73,0x5c,0x82,0xbe,0x9e,0x46,0xfc,0x39,0x5e,0x38,0x2a,0x20,0xd9,0xa9,0x20,0x46,0x23,0xc1,0x8b,0x0a,0x9c,0x42,0xb6,0x50,0x9f,0xc8,0x7d,0x4a,0x85,0x98,0xed,0x92,0x13,0xd3,0xd6,0xe6,0x6d,0x50,0x6e +.byte 0x93,0x63,0x41,0xa3,0x63,0x97,0x52,0xe3,0xaf,0x09,0xe1,0x40,0x12,0x41,0xed,0xb3,0xc5,0xb8,0x9f,0xc1,0xf2,0xd2,0xe6,0x16,0x94,0x97,0xdb,0xae,0xdb,0xd4,0x1f,0x5a,0x2f,0xf1,0xb1,0x22,0xf6,0x60,0xa4,0x0e,0xd8,0x2f,0xf7,0xf7,0x3f,0x6c,0x7d,0x73,0xe3,0x1d,0x99,0x04,0x7f,0x4f,0x70,0x2a,0x8c,0x43,0x80,0xa3,0xd0,0x25,0x75,0xd8 +.byte 0xb6,0xc8,0x90,0xa2,0x26,0xee,0xba,0xc5,0x1a,0xdc,0x1f,0x81,0x65,0x54,0xc6,0x57,0x6e,0xa2,0x03,0x32,0xf5,0x14,0xb2,0xdd,0x4d,0x21,0xaa,0xb9,0x78,0x4f,0x76,0xab,0xbe,0xfe,0x5d,0xc6,0xaf,0xed,0x6f,0xf9,0xaa,0x31,0x21,0x08,0xa4,0x6e,0xfb,0x78,0xdc,0xed,0x0c,0x05,0xff,0x1e,0x60,0x38,0x60,0x94,0xa9,0x92,0xa7,0x07,0x6e,0x6f +.byte 0x6d,0x89,0x8a,0x73,0xfb,0xaf,0x01,0x34,0x7d,0x7d,0x33,0x76,0xff,0x1f,0x6b,0x79,0x5e,0xff,0x50,0x14,0x80,0x7d,0x55,0x0e,0x2d,0xc3,0x77,0x85,0x30,0x20,0xf6,0xc8,0xc7,0xb7,0x73,0x1b,0xd1,0x87,0x69,0x44,0xeb,0x02,0x5e,0x45,0x66,0x6f,0x28,0x00,0x1f,0xf8,0x58,0x93,0xe5,0x21,0xbc,0x19,0x8d,0x72,0x19,0xaa,0x9a,0xbb,0xc6,0x47 +.byte 0xe6,0x0b,0xe4,0x76,0x13,0xc7,0xc4,0x1b,0x9d,0x85,0xba,0x17,0xb6,0x30,0x2a,0xdb,0x7c,0x36,0xd7,0xd8,0x8b,0x9c,0x99,0x92,0x64,0x03,0x4f,0xd4,0x1f,0x04,0x2e,0x45,0x34,0x55,0x92,0x99,0x77,0xb8,0x45,0xce,0x59,0x22,0x3c,0x6e,0xe5,0x18,0xb0,0x83,0x42,0x42,0x75,0x1c,0x34,0x0f,0x2e,0x59,0x06,0x94,0x17,0xea,0xc3,0xdb,0x0b,0x2f +.byte 0x44,0x97,0x54,0xe8,0x76,0xd3,0x25,0x24,0xe9,0x21,0x4f,0xd7,0x01,0x7d,0xbe,0x90,0x8a,0x0a,0x7d,0x4e,0x91,0x5f,0x4c,0x32,0x83,0x42,0x55,0x95,0x3c,0x7a,0x3e,0x46,0x8a,0x5d,0x0c,0x05,0xcd,0x0b,0xf6,0x3e,0x4d,0xf3,0x55,0xea,0x42,0x3e,0x19,0x0e,0xda,0xd4,0x22,0x88,0xe2,0x29,0x06,0x9e,0xea,0x1c,0x27,0x96,0x7f,0x3a,0x8a,0x28 +.byte 0x2f,0x7d,0xa2,0x65,0x37,0xae,0xb6,0x6a,0x59,0x41,0x19,0x73,0x91,0x64,0x77,0x4e,0x5a,0x1a,0x85,0x9f,0xc5,0xb0,0x85,0xc1,0x96,0x47,0x69,0x9c,0x36,0x70,0x36,0xa3,0x2e,0x1a,0x7d,0x11,0x59,0x55,0xec,0x4c,0x49,0xa1,0x86,0x3c,0x3d,0x24,0xb8,0x7a,0x84,0xca,0x4c,0x3f,0x7e,0x81,0x95,0x39,0x41,0xfe,0xc4,0x74,0xe5,0x89,0x7e,0xdc +.byte 0x86,0xd2,0xdb,0x8b,0xb8,0xa2,0xbb,0x15,0x64,0x89,0xf9,0x00,0x7d,0x56,0xec,0x8b,0xc8,0x05,0xcd,0x76,0x6c,0xcb,0xaf,0x7e,0xd2,0xdd,0x67,0xb3,0x99,0x16,0x63,0xf2,0x6d,0x49,0x7d,0xeb,0x67,0x24,0x98,0xf1,0x28,0xa3,0xb2,0x14,0xfc,0x95,0xf6,0x55,0xa0,0xb5,0x8c,0x26,0x2f,0xc6,0x08,0x49,0x57,0x4c,0x20,0xbc,0x48,0xab,0x24,0xef +.byte 0xe9,0xab,0x6b,0x77,0x4d,0x3b,0x61,0x84,0x68,0x67,0x72,0xc2,0xcf,0xab,0x8e,0xac,0x39,0xec,0x43,0x03,0xbb,0x4f,0x32,0x7d,0x7d,0x51,0x69,0x30,0xee,0x4f,0xd0,0xb9,0xa5,0x22,0xdd,0x47,0x06,0xad,0xac,0x62,0x20,0xff,0x7b,0x8c,0x90,0x91,0xb3,0xd8,0x89,0xd3,0xea,0x81,0xdc,0xca,0x31,0xc3,0x65,0xca,0x4c,0x50,0x0a,0x85,0xf7,0xaf +.byte 0xe3,0x67,0x57,0x53,0x1d,0x4e,0x42,0x17,0x2d,0x14,0x80,0x29,0x09,0x2b,0x48,0x45,0x43,0xb9,0xad,0x1f,0xb7,0x2d,0xab,0xfa,0x6a,0x1b,0x3c,0x7d,0x76,0xd7,0x36,0x20,0xb0,0xd3,0xc0,0x5e,0xc7,0x20,0x06,0x0c,0xa9,0x6a,0xb2,0x67,0xad,0x91,0x49,0xfc,0x4d,0xb2,0x15,0x61,0x61,0xfa,0x33,0x6c,0x94,0x92,0x58,0xef,0x46,0x82,0x9c,0x04 +.byte 0x52,0x21,0x28,0x08,0xb4,0xa9,0xd4,0x2e,0xd9,0x8c,0x93,0xd0,0xd8,0x4f,0x33,0x1d,0x0b,0x7e,0x07,0x12,0x40,0x64,0x3d,0xa2,0x8f,0xa3,0x96,0x45,0x0e,0xfc,0x9b,0x55,0x5f,0x3c,0xa2,0x57,0x3e,0x51,0x40,0x69,0xdc,0x7a,0x51,0xd2,0x3b,0x79,0x2f,0xd2,0x01,0x18,0xbf,0xd5,0xd2,0xd1,0x0e,0x08,0xcf,0xac,0x07,0x4d,0xd1,0x92,0xc7,0xca +.byte 0x92,0x75,0x0b,0x80,0x29,0xf1,0x46,0x24,0xba,0x47,0x6b,0x4a,0x64,0xfb,0x31,0x69,0xe9,0x40,0x0d,0x69,0x50,0xd0,0xdf,0xf8,0xcb,0x6a,0xe8,0xd4,0xc2,0xbd,0x0b,0x23,0x00,0xe0,0x29,0x0a,0x0a,0x8e,0x19,0xec,0xa9,0x14,0xe4,0x5d,0x4c,0x30,0xc9,0x85,0x42,0xd6,0x9f,0x83,0x8f,0x2a,0x5b,0x22,0x37,0xe4,0x71,0x3b,0x19,0x86,0xd4,0xda +.byte 0xb5,0x81,0x8e,0x84,0x57,0xcd,0x13,0x64,0xc3,0x23,0xfd,0x91,0x8a,0xe4,0xb9,0x32,0x12,0x17,0x02,0xa6,0x8d,0xec,0x44,0x9d,0xa5,0x7c,0x96,0x14,0xd1,0xd5,0x93,0x02,0x0c,0x9d,0xfc,0x26,0xa0,0xd2,0x41,0xaa,0x75,0xe8,0x82,0x6f,0x47,0x1d,0xe8,0xcf,0x94,0xe3,0x35,0xa9,0x76,0x1e,0xdb,0x92,0x5f,0x32,0x49,0xf4,0xd5,0x59,0x9c,0x4e +.byte 0xf7,0x89,0xda,0x23,0x7f,0x46,0x0e,0xfc,0xaf,0x1c,0x6f,0xcc,0x59,0xa5,0x43,0x04,0xbf,0x55,0xab,0x7d,0x36,0xa3,0xa5,0x03,0x7f,0xdf,0x33,0x6c,0x6d,0xd0,0x53,0xaa,0xef,0x54,0xc1,0x62,0xa0,0xd6,0x3a,0x67,0x87,0xe3,0x76,0x17,0x45,0xbe,0x7f,0x55,0xc8,0x8b,0xe8,0x1c,0xa8,0xe6,0xa6,0xb2,0xbf,0xe5,0x45,0xc0,0x88,0x22,0x36,0xa0 +.byte 0xec,0x21,0xdc,0x3e,0x6b,0xd2,0xc7,0xdf,0x5b,0xa4,0x32,0x28,0xca,0x23,0xe1,0x50,0x55,0x72,0x59,0x28,0x1c,0xf7,0x93,0x91,0x07,0x3c,0x4e,0x81,0x20,0x58,0x9b,0x07,0x38,0x37,0x68,0x2c,0x29,0xba,0x20,0x11,0xa9,0xa0,0x29,0x65,0x57,0xb1,0xe3,0xb1,0xfb,0xe2,0x70,0xee,0x1f,0xcd,0xf5,0x61,0xea,0x7a,0x08,0xb4,0x1e,0xfe,0xe7,0x4d +.byte 0x32,0xa0,0xfd,0xb4,0x52,0xa1,0x4b,0x67,0xba,0x5e,0x90,0xe7,0x56,0xec,0x06,0x03,0xb6,0xe6,0xc6,0x98,0xa1,0x41,0xf4,0xaf,0xde,0xe2,0x67,0xef,0xaa,0x05,0x97,0xc5,0x80,0x32,0xd0,0x43,0xc2,0x02,0x7a,0xcc,0x4c,0xdd,0xe9,0x1e,0xd0,0x4f,0xad,0xf3,0x4b,0x2c,0x5e,0xb8,0xd8,0x84,0xc2,0x43,0xc7,0xa9,0x86,0x4d,0x10,0xae,0xb7,0xe3 +.byte 0x5c,0xd5,0x2a,0xba,0x3b,0xd3,0x7b,0x5d,0xc8,0xe0,0x67,0x87,0xbe,0xbf,0x71,0x4e,0x22,0x68,0x12,0x53,0x95,0x73,0x5c,0x30,0x7b,0x2b,0xfd,0xc1,0x3c,0xfc,0xc4,0x0f,0xdd,0x5b,0x3e,0x1b,0x72,0x71,0xa6,0xe3,0x1f,0x2d,0x51,0xe2,0x61,0x3d,0xa0,0x60,0xc2,0x6b,0x41,0x8f,0x94,0x83,0x29,0xa3,0xb6,0xa7,0xc7,0x11,0x8f,0x1c,0xb5,0x19 +.byte 0x66,0x44,0xc7,0x05,0x58,0x83,0x28,0x69,0x0c,0xb6,0x65,0xe5,0x93,0x1c,0xb1,0xf6,0xf9,0xea,0xda,0x84,0x26,0x8e,0xa2,0xbb,0x9b,0x55,0xd3,0xbc,0x42,0x56,0x8f,0xce,0x6e,0x74,0x40,0xf2,0x02,0xa6,0x22,0x22,0x6e,0x20,0x0e,0x4b,0x8b,0x15,0xa5,0x04,0xf0,0xe0,0x7b,0x27,0x0a,0x38,0xe3,0x99,0x04,0xd0,0x5b,0x64,0xd2,0x04,0x92,0x61 +.byte 0x57,0x74,0xbc,0x1e,0x98,0x01,0x4b,0x2f,0x46,0x56,0x1c,0xeb,0x49,0x2d,0x66,0xac,0x85,0x96,0x48,0xfd,0xa1,0xf0,0xf5,0xc0,0xdb,0x7a,0xf2,0x0b,0x57,0x86,0xac,0x4c,0x6a,0x02,0x97,0x13,0xef,0x08,0xf6,0x18,0xe1,0x5c,0xb3,0x18,0x3d,0x70,0xc0,0x76,0x5e,0xd0,0xb8,0x44,0x32,0x25,0x75,0x62,0xa2,0x80,0x78,0x8c,0xc4,0x2a,0x84,0xbc +.byte 0x51,0xd4,0xee,0x44,0x48,0xe5,0xc4,0x48,0xbf,0xc0,0x27,0xc1,0x77,0x25,0xf5,0x59,0x6b,0x60,0xae,0xa5,0x42,0xfe,0xc3,0x06,0x91,0xe3,0xdb,0xa9,0x4b,0xe2,0x73,0x95,0x1f,0xf6,0xb6,0x66,0x71,0x63,0xb3,0x14,0x4a,0x3d,0x36,0x84,0xbe,0x2a,0x7c,0x7c,0xba,0x0e,0x8d,0x9a,0x73,0x52,0x21,0x89,0x02,0x8f,0x94,0xa5,0x9a,0x11,0x2e,0x6e +.byte 0x78,0xf7,0x07,0xf8,0xb1,0x42,0x96,0x06,0x78,0xf0,0x53,0x86,0xec,0x2b,0x1f,0xa7,0x84,0x79,0x37,0xc7,0x61,0x83,0x8e,0x62,0x65,0x49,0xdd,0xfe,0xee,0x97,0x70,0xa2,0x73,0xb5,0x85,0xaf,0x10,0xed,0xb8,0x74,0xec,0x42,0xd0,0x14,0x47,0xa6,0x90,0x7c,0x07,0x22,0xb4,0x4e,0xfc,0x12,0xa1,0x9d,0xd4,0x73,0x8f,0x6a,0x55,0xf8,0x56,0x25 +.byte 0xdb,0x9b,0xe8,0x10,0x87,0x7a,0x4b,0x42,0x9c,0xbb,0x6e,0xf1,0xd7,0x1d,0xf4,0x07,0x31,0x9c,0x94,0x3a,0xb6,0xad,0x4b,0xf4,0x57,0x3d,0x2f,0xba,0x23,0x36,0x34,0x52,0x62,0xf7,0x64,0xc7,0x47,0xeb,0x41,0xad,0x07,0xfb,0x3e,0x08,0x74,0x92,0x58,0x0f,0x73,0xe2,0x53,0x35,0xda,0xae,0x64,0x3c,0x47,0x89,0xaf,0xce,0x59,0x35,0x75,0x8b +.byte 0x50,0xee,0xbf,0xbe,0xd1,0xf4,0x2f,0x11,0xa3,0xfe,0xce,0xfd,0x15,0x0d,0x32,0x17,0x00,0xfb,0xad,0x02,0x70,0x5c,0xeb,0x59,0xfb,0x87,0xe5,0xed,0x0e,0xde,0x97,0xe7,0x75,0xb6,0xdc,0xe9,0xb0,0x08,0x26,0x0e,0x11,0xd4,0x4f,0xc4,0x92,0x71,0x7c,0x63,0xef,0xc0,0x14,0x64,0xe1,0x0f,0x7e,0xe6,0xcb,0x5b,0x4c,0xd4,0x16,0x8b,0x7b,0x8b +.byte 0x2f,0x2a,0x77,0xef,0xd3,0xdf,0x56,0xc0,0x5a,0x94,0x72,0xd5,0x36,0x12,0xfa,0x25,0xd7,0x77,0x52,0xdd,0xea,0x11,0x2f,0x6b,0x16,0x6e,0xe3,0xa2,0x84,0xba,0x55,0xc2,0xb0,0xe2,0x3b,0x53,0xb6,0xa4,0xc6,0xa5,0x3f,0x1b,0xb3,0x38,0xc0,0x2f,0x1a,0x80,0xe0,0xa4,0x60,0x49,0x8c,0xe3,0x23,0x5f,0x59,0xfd,0x2a,0x0f,0xe8,0x4c,0xaf,0xd7 +.byte 0x36,0xc7,0x25,0x21,0xad,0x41,0x54,0x27,0x95,0x15,0x42,0xbc,0xb3,0x77,0x4e,0x97,0xf4,0x3c,0x54,0xcc,0x19,0x63,0x62,0x67,0x97,0x5a,0xd0,0x59,0xfb,0xce,0xcd,0xe1,0x3c,0xb6,0xc9,0x49,0xc4,0xff,0xde,0xf9,0x89,0x87,0x9c,0xdf,0x4e,0x8c,0x9d,0xe5,0xbd,0x0d,0x0c,0x6e,0x93,0xfd,0xea,0x90,0xf2,0x80,0x7e,0x00,0x9a,0x06,0x02,0x87 +.byte 0xae,0xca,0xf4,0x46,0xbb,0xb5,0x52,0xee,0x18,0xb0,0xf1,0x61,0xcb,0xe1,0x65,0x9c,0x0b,0xfb,0xe6,0x3b,0xeb,0x3a,0x1a,0x22,0x41,0x0b,0x99,0xa4,0x8e,0x01,0x5e,0x7c,0x4e,0x1a,0xaa,0xab,0xd3,0x8b,0x99,0x7f,0xba,0x6b,0xec,0xe7,0x3a,0xd6,0x55,0x46,0x20,0x1b,0x10,0x39,0x06,0xcc,0x90,0xc1,0x6a,0xa5,0x27,0x7c,0xca,0xa5,0x58,0x07 +.byte 0xd7,0xaf,0x6d,0x12,0xa6,0x68,0xc7,0x0e,0x19,0x53,0x44,0x22,0x85,0xbb,0x72,0x9c,0x4d,0xfb,0xeb,0x94,0x3a,0xa0,0x64,0xf5,0x25,0xe8,0xee,0x7a,0x3b,0x71,0x0e,0xbb,0x40,0xa2,0xb3,0xc9,0x6b,0x14,0x0f,0xc3,0x75,0xac,0x1b,0x5c,0xf1,0x34,0x51,0xcb,0xeb,0x5f,0x40,0x0f,0x82,0xe9,0xd2,0x6d,0x95,0x88,0x84,0xea,0xe9,0xe3,0xa0,0xe9 +.byte 0xef,0x3b,0x33,0xfe,0x32,0x52,0x93,0xce,0x95,0x4b,0x64,0x3c,0x97,0x76,0x91,0xd8,0xce,0xb5,0xc2,0xda,0x58,0x23,0x27,0xe2,0x3d,0xbe,0xf6,0x31,0x79,0x73,0x0e,0x31,0xd7,0xa3,0xaa,0xac,0xcf,0x31,0x1e,0x75,0x58,0x14,0x21,0x52,0x1c,0x3e,0x4f,0x2a,0x2b,0x9a,0x22,0xbc,0x42,0x68,0x5b,0x83,0xc2,0x8c,0xd4,0xe8,0xd9,0x02,0x0d,0x13 +.byte 0x2f,0x08,0xd3,0x11,0xb7,0x4b,0x84,0x67,0x43,0xda,0x20,0xdb,0x89,0xd5,0x9e,0x14,0x54,0x3d,0x49,0xda,0xac,0x3f,0x8f,0xf5,0x17,0xfe,0xb8,0x5f,0xc3,0x20,0x38,0x27,0x21,0x32,0xbf,0xf3,0x9b,0x2c,0x0b,0x9b,0xeb,0x64,0x87,0xf7,0x9d,0xed,0x15,0x05,0x21,0x69,0xcf,0x2d,0xf8,0xfb,0xf2,0x81,0x51,0x08,0xc7,0x18,0x81,0xdf,0xed,0xa4 +.byte 0x70,0xb3,0x07,0xfa,0x00,0xd5,0x65,0xb9,0x5a,0x82,0x67,0x6f,0x10,0xfc,0x46,0x05,0x9a,0x85,0x64,0x14,0x60,0x64,0x4d,0x1f,0x13,0x57,0xbb,0x7c,0x4a,0x10,0x84,0x8c,0x57,0x36,0x13,0x22,0x00,0x04,0x2d,0xcf,0x27,0x3d,0xf4,0x27,0x3e,0x32,0xb3,0x87,0xda,0x82,0xaa,0xad,0xd7,0xa7,0xc5,0x3c,0x45,0xec,0x28,0x82,0x79,0x95,0x8f,0x56 +.byte 0x50,0x5f,0xc2,0x15,0xab,0x18,0x58,0x4f,0x69,0x46,0xce,0x29,0x33,0x42,0x53,0xe9,0xea,0xe5,0xa8,0x5b,0x90,0xc4,0xf4,0xbf,0x8a,0x20,0x62,0xad,0xa5,0xea,0x6a,0x4e,0xb4,0x20,0x2d,0xca,0x90,0xdf,0xbd,0xab,0x5b,0xc3,0x33,0x7c,0x53,0x1f,0xf5,0x2e,0xc0,0xbf,0x19,0xe1,0xa1,0x5a,0x63,0xf3,0x13,0x4d,0x6e,0xef,0x4f,0x3a,0x94,0x18 +.byte 0xbe,0x79,0xdb,0xbf,0xc2,0x2c,0xb3,0x36,0x59,0xab,0x21,0x1d,0x98,0x60,0x70,0xdd,0x95,0x51,0x19,0x07,0xd6,0x68,0x0e,0x2a,0xd4,0x4c,0x30,0x18,0x1c,0xe4,0xe1,0x89,0x15,0x25,0xea,0x27,0xcf,0x51,0x56,0xc9,0xa9,0xa7,0x31,0x08,0x17,0xfb,0xfc,0xf6,0x0c,0x5d,0xf1,0x7c,0x36,0xcb,0xad,0xef,0x29,0xf5,0x2e,0x23,0x09,0xcf,0x31,0x6f +.byte 0x74,0x12,0xd2,0xc2,0xc7,0x19,0xa5,0x6e,0x20,0x09,0x67,0xdc,0x41,0x69,0xbe,0x15,0xd6,0xeb,0x7b,0xba,0x63,0xae,0x65,0xd8,0x67,0xec,0x6e,0xcc,0x1d,0x04,0x08,0xfb,0x7c,0x34,0x1d,0x5f,0x1e,0x51,0x1c,0x30,0x72,0xd3,0x0c,0x48,0x60,0x3d,0x52,0xae,0xe6,0x78,0x44,0x6d,0xb8,0x40,0x08,0xb7,0x7a,0xa9,0xfc,0xa0,0x86,0xff,0x32,0xd6 +.byte 0x5a,0x31,0x4e,0xe2,0x65,0xab,0xb0,0x84,0xb6,0x74,0x3e,0xa6,0x67,0x7c,0xa2,0x0f,0x23,0x22,0xab,0x72,0x7e,0xeb,0x45,0xa9,0x2a,0xb4,0xd3,0xcc,0x27,0x5c,0x12,0xdb,0x14,0x68,0x73,0x0f,0x36,0xbf,0x9f,0x14,0x12,0xe9,0xef,0x04,0x2a,0x63,0x41,0x4b,0x04,0x9b,0x4c,0xc4,0xb2,0xb9,0x1c,0xc0,0xb8,0xcc,0x23,0x61,0xc4,0xed,0x27,0x1e +.byte 0x1d,0x97,0x3d,0x40,0x4c,0x1f,0xeb,0x6e,0xc4,0xfb,0x5c,0x2d,0xf5,0xf1,0xbb,0x05,0x47,0xa2,0x1a,0x9c,0x2b,0x8f,0xce,0x98,0x09,0x6b,0x86,0x22,0xf8,0x3a,0xae,0xf3,0xb4,0x66,0x2f,0xdb,0x20,0xa5,0xc6,0xb6,0x35,0xb5,0x5a,0x68,0xb5,0x37,0x2c,0xab,0x13,0x3d,0x2d,0xcb,0x38,0xed,0x3c,0x7a,0x1f,0x26,0x08,0x58,0x94,0x52,0x30,0xec +.byte 0x06,0x9f,0x90,0x97,0x4d,0x90,0x49,0x23,0xaf,0x00,0x90,0x6b,0x96,0x37,0x02,0x4c,0x35,0xc0,0x3e,0x66,0x2c,0x52,0xbc,0x75,0x28,0xd7,0x8f,0x25,0xbe,0x91,0x10,0x22,0x67,0xbf,0x4a,0x4d,0x62,0xc4,0xe9,0xda,0xe2,0x79,0xcc,0x76,0xeb,0x99,0x87,0xac,0x39,0x7d,0xf6,0x5a,0x37,0x85,0x30,0x33,0x65,0x3f,0xd9,0xd6,0x17,0xf8,0xf0,0x86 +.byte 0xee,0x5c,0x2f,0xb0,0xb3,0x4f,0x83,0x6c,0x4a,0x8f,0xfc,0x80,0x91,0xaf,0x4b,0x21,0x9c,0x9b,0x44,0x3c,0xed,0x67,0xfb,0xa3,0x31,0x7f,0xd4,0x73,0x72,0xb9,0xc1,0x31,0x96,0x47,0x8e,0x99,0x8e,0x62,0x1a,0xfd,0xc7,0x9d,0x2f,0x4c,0xda,0xe5,0xae,0x17,0xb6,0x40,0x5f,0x9e,0xa8,0xf2,0xcc,0xd7,0xd5,0x40,0x33,0x88,0x57,0x63,0x9b,0xde +.byte 0x82,0x71,0x68,0xfe,0xaf,0x29,0x6c,0xc1,0x2c,0x2f,0x02,0x42,0xd7,0xa5,0x28,0x05,0xca,0xa0,0xb6,0x8c,0x43,0x90,0x05,0xe2,0x1c,0xb7,0x76,0x79,0x39,0xd3,0x23,0xe1,0xe7,0xbb,0x19,0x65,0x1a,0xb4,0xbb,0x5a,0xcf,0x43,0x70,0x26,0x1a,0x2f,0x61,0x78,0x75,0x08,0xb0,0x88,0xe5,0x4a,0x46,0x0a,0xfc,0xcb,0x46,0x18,0xb0,0x8d,0x9b,0xeb +.byte 0xf5,0xe1,0x83,0x04,0x84,0x4f,0xd6,0xa0,0x4f,0xb2,0x4c,0x44,0x08,0xde,0xd6,0x82,0xb5,0x9a,0x45,0x15,0xb8,0x21,0xc7,0xf5,0xe2,0xfd,0x02,0x27,0x18,0x13,0x24,0x18,0x01,0xd1,0x2a,0xff,0x63,0xf2,0xa4,0x97,0xc8,0x4b,0x3b,0xae,0x49,0x47,0x54,0xe8,0x75,0xe7,0x16,0x77,0x22,0x10,0x7b,0x3c,0xf0,0xdb,0x49,0x6e,0xd6,0x55,0x9d,0x43 +.byte 0x6f,0x6e,0x2d,0x97,0xea,0x16,0x2e,0x0c,0x85,0x89,0x67,0xe1,0x7b,0x38,0xa6,0x2b,0x89,0xf0,0xcd,0x90,0xcd,0xba,0x9a,0x70,0xa9,0xe3,0xff,0xe0,0xbd,0x15,0x3e,0x4b,0x13,0x62,0x7b,0x59,0x64,0x18,0x96,0xe9,0x6a,0xf3,0x69,0x2d,0x2d,0x25,0xe7,0x91,0xd3,0xbc,0x74,0x58,0x66,0x2f,0x5e,0x8b,0x52,0xf6,0x91,0x24,0xa8,0x6f,0xa5,0xce +.byte 0xa1,0x4e,0x3b,0xe9,0xc5,0x30,0x7e,0xa5,0xc7,0xe2,0xb3,0x71,0x3b,0x25,0xb9,0x5f,0xe5,0x9c,0xf8,0x46,0x23,0xc5,0xa2,0xc1,0x1f,0x3f,0x43,0xa6,0xaa,0xf1,0x36,0x27,0xc6,0xa8,0xed,0x0d,0x50,0x71,0xf1,0x38,0x27,0xb7,0x16,0x43,0x7c,0x7f,0x77,0x5b,0x25,0x59,0xb7,0x08,0x0d,0xc8,0x84,0xe4,0xc2,0x03,0x95,0xe5,0xf3,0x0a,0x9c,0x1f +.byte 0xde,0x98,0x7c,0xa9,0xe2,0x70,0x9e,0xde,0xf6,0x80,0xd0,0xf8,0x86,0x4a,0x7a,0x0d,0x16,0xaa,0xde,0xba,0x02,0x30,0x8a,0xe6,0x03,0x0f,0xa1,0xf1,0xe8,0xd6,0xf8,0xce,0x7b,0xba,0x74,0xa8,0x25,0xb0,0x49,0x22,0xa6,0x81,0x7e,0x71,0xc5,0x97,0x9e,0xa8,0x46,0xa7,0xe9,0x8b,0x7c,0x7c,0x4c,0xc5,0x3c,0x93,0x08,0xb9,0x8b,0x3c,0x33,0xd6 +.byte 0xc4,0x37,0xc8,0x05,0xe7,0xfe,0xc2,0x7c,0x02,0xe6,0xda,0x09,0x52,0x2c,0xc6,0xa8,0x6e,0x44,0x7e,0x55,0xf0,0x32,0x10,0xcb,0x1e,0xa7,0x77,0x8d,0xc7,0xfe,0xb5,0xf6,0x3b,0x49,0xf2,0xfb,0xe0,0x41,0x98,0xd3,0x17,0xa6,0x5d,0x3f,0x4c,0x95,0xb0,0x02,0x8d,0xab,0x36,0xb7,0xa0,0x92,0x40,0x5e,0x15,0xfb,0xa9,0xb4,0xa3,0x04,0x8b,0x6b +.byte 0x81,0x44,0x59,0x22,0x10,0xcb,0xc5,0x52,0x3f,0x78,0x70,0x00,0xe2,0xa2,0xf7,0x76,0x62,0x72,0x06,0x8b,0xbb,0x56,0x0f,0x8c,0x67,0x2f,0x52,0x3f,0x3b,0xdc,0x15,0x79,0x55,0x89,0x6c,0x61,0x23,0xcc,0x6b,0x41,0x77,0xe5,0xc4,0x90,0x51,0xc3,0x87,0x22,0x1e,0x89,0xf5,0x5b,0x41,0xd7,0x34,0x22,0x3c,0xbd,0x29,0xaa,0x54,0xed,0x5a,0x90 +.byte 0x17,0x24,0xba,0x7a,0x46,0x5f,0x54,0x33,0x56,0x7e,0x2d,0x03,0x59,0xcb,0xbb,0x7a,0xce,0xbb,0x8d,0xf7,0xb6,0x38,0x00,0x18,0x6a,0xa1,0x6c,0xdf,0x42,0x49,0x4d,0x9b,0x4f,0xd6,0x85,0x54,0x1f,0xad,0x17,0xdd,0x66,0x0e,0x7c,0x30,0x86,0x82,0x1c,0x5a,0x81,0x08,0x55,0x51,0x5b,0x06,0x54,0x52,0x3e,0x8b,0x6e,0x72,0x92,0xd2,0x05,0x5d +.byte 0xe4,0xe8,0x0e,0x62,0x1d,0xec,0xb1,0x7f,0x42,0x05,0xd5,0xd3,0x60,0xd4,0xdc,0xa4,0x48,0xc0,0xf0,0x89,0xef,0x5b,0xae,0x5f,0xcd,0xf0,0x62,0xaa,0x3e,0xd5,0x1a,0xbe,0xe3,0x08,0xd5,0xe8,0x00,0x21,0x8c,0x0b,0x0c,0x8e,0x24,0xac,0xb2,0xea,0x44,0x9f,0xce,0x53,0x45,0x9a,0x85,0x67,0x99,0x85,0xea,0x92,0xa7,0x1d,0x86,0xb4,0x3b,0x22 +.byte 0xa2,0xcd,0x35,0x65,0xb5,0xa6,0xdb,0x6d,0x48,0xd1,0xa4,0x76,0x0c,0x00,0x30,0x62,0x86,0x06,0xda,0xa8,0xfe,0xec,0x70,0x87,0x4a,0xe8,0x2e,0x4d,0xe3,0x94,0x0b,0xdf,0x81,0xcd,0xfe,0x23,0x79,0x2c,0x2b,0xae,0xf7,0x75,0x49,0x47,0x24,0x46,0x09,0x10,0x62,0x39,0x3b,0x50,0xf1,0xfa,0xf7,0x5f,0xe4,0x7c,0xa5,0xc0,0x25,0x9e,0x20,0x4d +.byte 0xc8,0x6b,0x93,0xc5,0x4a,0x6b,0x62,0xb8,0x3b,0xe5,0x0d,0x92,0x70,0x26,0xa5,0x2b,0xd0,0x9f,0x03,0x8b,0xd3,0x1a,0xc4,0xb0,0xa3,0xc7,0xf4,0x35,0xe5,0x1d,0xe0,0xaa,0x43,0xab,0x64,0x10,0x2b,0xa4,0x09,0x42,0xee,0xba,0xb7,0xbf,0xfd,0xa6,0xff,0x76,0xe5,0x12,0xd6,0x50,0x9a,0x26,0x6b,0x3a,0xd3,0xe6,0x7d,0x3e,0x0e,0x9b,0x95,0xd7 +.byte 0xbf,0xb6,0x7e,0xfb,0x3c,0x24,0xa4,0x26,0x98,0x88,0x81,0xf4,0x56,0xa4,0xf7,0xe8,0x87,0x15,0x5e,0x9f,0x84,0xdd,0x04,0x66,0x43,0xd8,0x76,0xc2,0xa3,0xfd,0x4b,0x58,0x09,0x06,0xa6,0x60,0x5c,0x3f,0x75,0x80,0xd7,0xc4,0x29,0xf9,0x0b,0x1e,0x4d,0xe5,0x26,0xf6,0xae,0x7a,0xc1,0x05,0xf3,0xf1,0x6c,0xee,0xed,0x56,0x0b,0x51,0x66,0xbe +.byte 0x99,0xec,0x9c,0xc2,0x97,0xe2,0xed,0x09,0x1d,0xa8,0x18,0xaa,0x1c,0x9e,0x20,0x62,0xb1,0x80,0x68,0x3e,0x28,0x1f,0x4f,0x50,0x0e,0x41,0xaf,0x17,0x44,0x79,0x16,0xca,0x17,0xe9,0x13,0x66,0x0a,0x04,0x68,0x41,0xe2,0x1d,0xc7,0x00,0x1e,0x66,0xa3,0x6c,0x2d,0x52,0x8c,0x0b,0x7c,0x03,0x48,0x73,0x3b,0xa9,0x84,0xe5,0x31,0x12,0x0f,0xe8 +.byte 0x1e,0x58,0x4d,0xd0,0x1b,0xb7,0xcf,0x75,0xd5,0x2c,0xca,0x33,0x17,0x95,0x9c,0x30,0xc7,0x7f,0xe9,0xde,0xae,0x19,0x72,0x00,0x2a,0xf5,0xde,0x93,0x3f,0xf5,0x44,0xe5,0xf8,0xc7,0xeb,0x1a,0x5d,0x5b,0x11,0x30,0x09,0xf5,0x49,0x66,0x70,0x1a,0xd5,0xe6,0xfc,0xe6,0x59,0x3d,0x17,0x6c,0xb5,0x0c,0xdf,0x1e,0x9c,0x48,0xd1,0xde,0x12,0xd6 +.byte 0xc8,0x48,0xc8,0x73,0x6d,0xfc,0xec,0x07,0xce,0x02,0xe5,0xb3,0x18,0xb9,0x55,0x4d,0x64,0x07,0xf3,0xaa,0x3c,0xf1,0x71,0x22,0x31,0xbb,0x74,0x2c,0x9f,0x7b,0x68,0x9d,0x80,0x49,0x32,0x48,0x9b,0x54,0xf3,0x74,0x37,0xac,0x4e,0xb2,0x96,0xdf,0x9d,0xeb,0x43,0xe0,0xd0,0xa0,0xe3,0x77,0xbd,0x8b,0x92,0x95,0x9d,0x63,0x8d,0xa8,0x23,0x07 +.byte 0xb0,0xcb,0x9d,0x8d,0x3f,0xe2,0xd5,0x81,0x6a,0xe5,0xc2,0xfe,0xda,0x1c,0x25,0x25,0x5b,0xa8,0xad,0x06,0xec,0x0d,0x4b,0x68,0xc3,0x45,0x81,0x38,0xb0,0x22,0x71,0xa4,0x2b,0xf3,0xa6,0x05,0xae,0x0c,0x48,0x94,0x0d,0x3d,0x48,0x51,0x76,0xdf,0x79,0x66,0x0e,0x28,0xc0,0xc1,0x6f,0xc8,0x8f,0xf7,0x7d,0x37,0x06,0xa2,0x8a,0x3a,0x6b,0xab +.byte 0xe0,0x55,0x8e,0xec,0x89,0xe2,0xca,0xc4,0x01,0x03,0x5d,0xa1,0x84,0x21,0x44,0xbb,0x6b,0x36,0x63,0x57,0x4f,0x54,0x88,0x81,0xbe,0xf8,0x53,0xf7,0x57,0xee,0x30,0x85,0x03,0x11,0x86,0xff,0xe4,0xd6,0xc4,0xf0,0x3c,0xcf,0xfd,0x38,0xd8,0xcb,0xd0,0x96,0x03,0xf2,0xc7,0xfa,0x18,0xc8,0x1b,0xe6,0x77,0x3c,0x61,0xa9,0x14,0xdb,0xb4,0x5c +.byte 0x2d,0xee,0xd7,0xe8,0xc4,0x0c,0x69,0x0c,0x55,0xe2,0x99,0x4b,0xc4,0x89,0xc8,0xee,0x48,0x0e,0x16,0xd7,0xa4,0x78,0x25,0xda,0xd3,0xa8,0xac,0x89,0x66,0x67,0x0d,0x51,0x21,0x0e,0x91,0xfb,0xb5,0xab,0x33,0xcb,0x3e,0xc7,0x0f,0x03,0x22,0x51,0x71,0x03,0xa0,0x3c,0xa9,0x35,0xcb,0x40,0xa7,0xbe,0xe7,0xc3,0x51,0x43,0xd8,0x9a,0x24,0xb7 +.byte 0x7e,0xfb,0x26,0x8d,0xa5,0x1a,0x6b,0xe7,0x97,0xe4,0xdd,0xc0,0x3e,0x98,0x67,0x55,0x79,0x56,0xb9,0x7e,0x25,0x4c,0x5c,0x5a,0x47,0x0a,0xce,0xb6,0x4d,0x2c,0x69,0x73,0xaa,0xf0,0x12,0xbb,0x9d,0xe1,0x60,0xc4,0x5b,0x10,0x32,0x6d,0x89,0x54,0xb1,0xfe,0x36,0xbe,0xb2,0x60,0x9a,0x91,0x73,0x9c,0x32,0x61,0xad,0x9a,0xf7,0x56,0x5f,0x5a +.byte 0x54,0xaf,0xb2,0x0c,0x5b,0x1a,0xe6,0x98,0x94,0xed,0x69,0x0b,0x8d,0x06,0x87,0xc9,0x20,0xdc,0x92,0x2d,0x5e,0xba,0xbb,0x15,0xef,0xc1,0x07,0x18,0x44,0x3f,0xf4,0x48,0x3e,0x7b,0xa4,0x9e,0x14,0x6b,0x97,0xdd,0x68,0x33,0x18,0xdd,0x47,0x08,0xa6,0x3b,0x8d,0x79,0x58,0x92,0xd9,0xda,0x82,0x34,0xa7,0x99,0xbc,0x43,0xa3,0x0a,0x7e,0x85 +.byte 0x0b,0xab,0x0e,0xc2,0x94,0x22,0x2d,0x05,0x99,0x9d,0x5c,0xc7,0xb2,0x7b,0x18,0x3e,0xb2,0xdd,0x47,0xb3,0xd7,0xcf,0x19,0xc7,0x55,0x5e,0x64,0xd8,0x7b,0xb4,0xf6,0x11,0x72,0xed,0xbd,0xfc,0xd8,0xe9,0x9f,0xcd,0x9a,0xeb,0xb2,0x6c,0x04,0xb9,0x88,0xf7,0x60,0x68,0xc3,0xf2,0xfd,0xa0,0x8c,0x82,0xc5,0xf7,0x5d,0xc3,0x9a,0x1e,0x49,0x27 +.byte 0x69,0x35,0xb0,0x8f,0xe9,0xb3,0xe4,0x09,0xd8,0x1a,0x73,0x9e,0x56,0x41,0xfa,0xe0,0x94,0x9e,0x0e,0x65,0xe6,0x5b,0xe2,0x12,0x39,0xca,0x86,0x0c,0xae,0xee,0x24,0x58,0xfd,0x85,0x09,0x7a,0xad,0x54,0xde,0xda,0x06,0x73,0x7d,0x11,0x7e,0x91,0x44,0xf3,0x4b,0x61,0xce,0x8a,0xff,0x76,0x92,0x2e,0x43,0x52,0xcf,0x63,0x3f,0xc4,0x1f,0x7f +.byte 0x4d,0x67,0x21,0xed,0xd7,0x88,0xdb,0x36,0x56,0x11,0xb2,0x3b,0xee,0x5f,0x2d,0x5f,0x17,0x98,0xa1,0xd5,0xcc,0x82,0xfd,0xc2,0x56,0x69,0xaa,0x68,0x86,0xaf,0x48,0x77,0xba,0xe9,0xd9,0x42,0xcd,0xaa,0xe3,0xad,0x2b,0x17,0xef,0xd3,0x54,0xc5,0x4e,0x31,0x0b,0x14,0xb7,0x73,0xc1,0x6f,0xc3,0x06,0x41,0x1a,0x11,0x19,0x9f,0xe9,0x9f,0x61 +.byte 0x4f,0x13,0x9b,0x3e,0xcd,0x7c,0xd6,0x2a,0xb3,0x87,0x84,0x58,0x58,0x10,0x1f,0xa0,0x2e,0x5c,0x15,0x8b,0x5e,0x37,0xd4,0x22,0x93,0xd9,0x67,0xe1,0xa8,0x35,0xe2,0x95,0xd8,0x4c,0x2c,0x65,0xc9,0x21,0xaf,0xf9,0xdd,0x3d,0x2c,0x0e,0x0c,0xcc,0x6b,0xad,0xb3,0x6d,0xd2,0x3e,0x65,0x8e,0x82,0x70,0x41,0xd6,0xaa,0x97,0xab,0x38,0x78,0xe4 +.byte 0x62,0x7c,0x5f,0x22,0xa3,0x1e,0xf2,0x6c,0xfe,0x3c,0xa9,0xb5,0x57,0xcd,0x96,0x11,0xd0,0x8b,0xcf,0x6d,0x06,0xcf,0x7c,0xda,0x1d,0xe4,0x22,0x5c,0x5d,0x9f,0xa8,0x24,0x55,0x45,0x93,0xc6,0xeb,0xfc,0xb5,0x71,0x5a,0x1d,0x52,0x40,0x95,0xc7,0x76,0x32,0xfb,0x2b,0x0c,0x7d,0x64,0xfa,0x5b,0x5e,0x7a,0x3b,0x0b,0xa0,0x99,0x5d,0x19,0x16 +.byte 0xe4,0x8e,0xae,0x49,0xee,0xc5,0xb2,0x24,0xd7,0x0b,0xa4,0x20,0xa6,0x74,0xc4,0x36,0x1d,0x43,0x25,0xd6,0x71,0x54,0x69,0x79,0xea,0xa3,0xd5,0xe9,0x75,0x53,0xcf,0x99,0x4e,0x3b,0xc0,0x52,0x28,0x80,0xe5,0x07,0x65,0x83,0xb3,0x24,0xfe,0x13,0x92,0xd6,0x18,0xf7,0xa3,0xeb,0x9e,0xf0,0xd5,0x69,0x93,0x79,0xda,0xb7,0x2e,0xe2,0x01,0xdd +.byte 0x9a,0xc3,0x7b,0x3b,0x17,0x88,0xe5,0xe9,0x9b,0x46,0x5c,0x5f,0x0e,0x1e,0x80,0x9b,0x11,0x1f,0xa4,0x08,0x90,0x14,0x08,0xb4,0x73,0x32,0x72,0xbe,0x43,0x4f,0x70,0x90,0xe7,0x80,0xdd,0xfd,0xa7,0xea,0x13,0xd9,0x5d,0xae,0x93,0x24,0x2b,0x1e,0xc7,0xf4,0x81,0xbb,0x5f,0xb0,0xb9,0xe4,0x35,0x39,0xf4,0x9a,0x49,0xb5,0xc0,0x47,0x18,0xc3 +.byte 0xcc,0xbe,0x26,0x36,0x44,0x2d,0x65,0x24,0xa3,0x09,0xde,0x69,0x3b,0xb8,0xdc,0x52,0x98,0x2e,0x38,0x5f,0xf7,0xb1,0x84,0xdd,0xea,0xe2,0xe5,0xec,0x96,0x31,0xb1,0x93,0xc0,0x5b,0xc4,0x87,0x4a,0x51,0x58,0x2d,0xea,0x47,0xab,0xfd,0xd3,0x76,0xf1,0xbc,0x52,0xa7,0x94,0x6c,0x74,0x1e,0x84,0x07,0x1f,0x5c,0x18,0xb9,0x06,0x37,0xf0,0xfb +.byte 0xbd,0x5d,0xaf,0xa8,0x06,0xc9,0x86,0xf0,0xd1,0x78,0x84,0x95,0x01,0xdd,0x70,0x9d,0x71,0x51,0xb7,0x80,0x69,0xbe,0xe8,0xfb,0x8f,0x43,0x72,0xd9,0xa9,0xf1,0x90,0xbb,0xf1,0xb5,0xc0,0x75,0x93,0x4e,0x14,0xc5,0x14,0x77,0x59,0xf8,0xe5,0x81,0x11,0x25,0x48,0x51,0x46,0x2a,0x69,0x59,0x92,0xe7,0xa7,0x39,0x96,0xad,0x67,0x30,0xaa,0xb2 +.byte 0x5d,0x95,0x94,0x83,0x83,0x93,0xf3,0x52,0x81,0x1c,0x27,0x78,0x1d,0x19,0x35,0x6e,0x8f,0x16,0xe5,0x3b,0xce,0x80,0x2a,0x3a,0x89,0xb7,0x51,0xfc,0x34,0x24,0xa2,0x61,0x95,0x9e,0xd4,0x69,0xa1,0x2f,0x49,0x16,0x2d,0x12,0x05,0xfe,0x69,0x62,0x12,0xa4,0x2c,0x04,0x7b,0xce,0x3f,0x34,0xc4,0x48,0x1a,0xe6,0x64,0x4b,0x8a,0xbf,0x68,0xdd +.byte 0x54,0x15,0xd3,0x25,0x49,0xdd,0xed,0x5e,0x2c,0x0e,0x25,0xbe,0x77,0xcf,0x94,0xf4,0xe9,0xf3,0xcc,0xe6,0x94,0xf9,0xb2,0x5d,0x24,0x53,0x63,0xbb,0x66,0x8d,0x73,0xef,0x79,0x5c,0x95,0x1a,0x64,0xc3,0xfd,0xc0,0xd3,0x71,0xf4,0x79,0x19,0x79,0xa5,0x30,0xf8,0x2c,0x28,0xc2,0xc2,0x9d,0x12,0x50,0x95,0x38,0xec,0xd5,0xc6,0x28,0x94,0xaa +.byte 0x83,0x66,0x3b,0xe3,0x51,0xc7,0x6a,0x75,0x2a,0x9b,0xb9,0xb0,0xa2,0xe1,0xfd,0xaf,0x58,0xd2,0x4b,0xf4,0x22,0xef,0x77,0x1e,0xa0,0x00,0xd7,0x9e,0x20,0x63,0x87,0x1d,0x98,0xab,0x0e,0x57,0x31,0x4b,0xda,0x90,0x3a,0xe6,0x6e,0x5e,0xd4,0x17,0x06,0x83,0x4f,0x90,0x33,0x1c,0xe5,0xea,0xf7,0x8d,0x95,0xa2,0x1e,0x7d,0x27,0x15,0x49,0x68 +.byte 0x3a,0x54,0xe3,0x1e,0x60,0x72,0x42,0xa6,0x8c,0x5b,0x63,0x1d,0x7d,0xb1,0xe2,0x7e,0x8b,0x19,0xf4,0x25,0x6c,0x77,0x64,0x15,0x5e,0x4c,0xfa,0x35,0x68,0xd2,0x54,0x11,0x5a,0xac,0x85,0xb0,0xb3,0xe8,0xa8,0x70,0x36,0xa8,0xe5,0x04,0xd1,0x82,0xdc,0x62,0x63,0xe6,0x3f,0x86,0x46,0x77,0x08,0x6b,0xa8,0x09,0xd0,0x56,0x09,0x87,0x9c,0x65 +.byte 0x8e,0x53,0xae,0xa6,0x2b,0x59,0x23,0xca,0xe9,0xc7,0xc4,0xb5,0xb9,0xca,0x20,0xf6,0xcc,0x62,0xfd,0xb5,0x66,0x66,0x86,0x99,0xb2,0x5a,0xeb,0xac,0xff,0x22,0xf4,0x94,0x9c,0x6d,0xc9,0xce,0xf3,0x8d,0x26,0x7f,0x06,0x40,0x71,0x8b,0x3e,0x5c,0x3e,0xe6,0x11,0x64,0x91,0x79,0xbe,0x66,0x80,0xd2,0xf6,0x2d,0x28,0x4b,0x6c,0x8d,0x9c,0x5b +.byte 0x1e,0xd1,0x15,0xb0,0xdf,0xfb,0x57,0xaf,0x4a,0xab,0xde,0x12,0xe9,0xb8,0x41,0x3d,0xc3,0xff,0xb2,0xc1,0x86,0xb0,0x06,0x5b,0xaf,0xa4,0x30,0x62,0xd0,0xd8,0x91,0x36,0x28,0xc1,0xc2,0xef,0x60,0x5d,0x42,0x04,0xd5,0x6b,0x10,0xa9,0x6c,0x88,0x5c,0x56,0x59,0x4a,0x87,0xdc,0x7c,0x41,0x03,0xb3,0x7c,0x35,0x8c,0x52,0x0e,0xc1,0xd5,0xdf +.byte 0x9b,0x8a,0x2e,0xc2,0x6b,0x06,0x7f,0xb4,0x93,0xc9,0x52,0xd0,0xc5,0x57,0x78,0x9e,0xf9,0x08,0x36,0xbc,0x4b,0xc1,0xbd,0x71,0x35,0xf8,0x73,0xae,0x9c,0xbc,0xf1,0xd1,0xba,0xe3,0x7f,0x49,0x9b,0x9b,0xb3,0xe2,0x7d,0x7d,0x18,0x6d,0x0d,0x96,0xe3,0x50,0x28,0xf2,0x7c,0x7a,0x71,0x27,0x33,0x3c,0xd3,0xeb,0x3d,0x5a,0x79,0xb5,0x69,0xed +.byte 0x40,0x38,0xbe,0xc9,0xad,0x11,0x7b,0x9d,0xe6,0x71,0xc8,0x89,0x54,0x51,0xf0,0x8f,0xdc,0xad,0x96,0xc3,0x04,0x60,0x5f,0x6d,0xa0,0x37,0xba,0x1c,0x69,0xca,0x42,0x26,0xeb,0x31,0x34,0x8d,0xae,0x25,0xe2,0x29,0x8d,0x19,0x9f,0xfa,0x75,0x91,0x4b,0x51,0xcd,0x76,0xd6,0x8f,0xa2,0x40,0x79,0xc3,0xbb,0x61,0xaf,0xc4,0x69,0xf5,0x8b,0x8a +.byte 0xb6,0x2c,0x25,0xb9,0x3c,0x8e,0x13,0xa4,0x0f,0x52,0x72,0x11,0x4b,0x89,0x63,0x01,0x05,0x54,0xd5,0x0d,0x5f,0x91,0x59,0x84,0x64,0xac,0xf7,0x9c,0xa3,0x48,0x31,0x4a,0x2e,0xea,0xf8,0xf8,0x0e,0xf0,0xd9,0x4d,0x06,0x60,0x11,0x4a,0x72,0x6f,0x93,0x93,0x85,0xf0,0x20,0x55,0x8b,0x37,0xf1,0x29,0x92,0x2d,0x1f,0xa1,0x6c,0x7c,0x90,0x4f +.byte 0xdb,0x78,0xcc,0x6c,0xb2,0x14,0x85,0x07,0x34,0xc8,0x98,0x18,0x52,0x2d,0x6b,0x13,0x63,0xc5,0x31,0x20,0x8e,0xa9,0x88,0x6b,0xb3,0x3f,0x1a,0x68,0x2f,0xf9,0xf3,0x97,0x29,0x68,0x22,0x89,0xb0,0x45,0xc4,0xf4,0x1f,0x31,0xba,0x97,0x14,0x59,0xae,0x05,0xe0,0x99,0x5b,0x29,0xcf,0xe3,0xf0,0x2a,0x0c,0xca,0x5f,0xc1,0xe7,0xe7,0x11,0x48 +.byte 0x73,0xc0,0x86,0x0b,0x59,0xc2,0x8a,0xfa,0x44,0x51,0x1c,0x84,0xdf,0x2f,0x4d,0xab,0xca,0xea,0xe1,0x48,0x9a,0xa1,0x86,0x60,0x47,0x7a,0x86,0x30,0x6a,0xba,0xbe,0x6a,0x9b,0x34,0xf4,0x52,0x0e,0xae,0x7f,0xbd,0xe0,0xf4,0x5f,0xfd,0xbc,0x57,0x02,0x95,0x6f,0xad,0x78,0x2e,0xa7,0x46,0x1c,0x2d,0x98,0x40,0xb7,0xfa,0xb5,0x08,0xee,0xb5 +.byte 0x25,0x51,0xaa,0x1a,0x14,0x41,0x48,0xe0,0x8f,0xe7,0x2f,0xfc,0xfd,0x47,0x10,0x55,0x90,0x02,0xeb,0x7f,0x0d,0x40,0xa8,0x4b,0x82,0xdc,0xab,0x43,0x35,0x62,0xa1,0x1d,0x5a,0xb0,0xc0,0x93,0x75,0x3d,0x68,0xd9,0xf8,0x31,0x22,0xfd,0x30,0xda,0xea,0xea,0x7c,0x30,0xf8,0x6f,0x75,0x5f,0x07,0x39,0xfe,0x69,0x93,0x73,0x22,0xa2,0x72,0xed +.byte 0x39,0x2f,0x00,0x5c,0xc3,0x14,0x86,0x90,0xda,0xc9,0x09,0x43,0x80,0x85,0x22,0x98,0xb0,0x4e,0x05,0x47,0x8f,0xc7,0xba,0x2e,0x4c,0x8f,0x57,0x8a,0xe9,0xb0,0x97,0x3b,0x51,0x12,0xcb,0x88,0xfd,0x5e,0x7f,0xa6,0xc6,0x00,0xd0,0x3a,0x3a,0x70,0x9e,0x56,0x28,0xa0,0x08,0x76,0x58,0x57,0x4a,0x0f,0xff,0x31,0x44,0x08,0x6c,0x23,0x79,0xad +.byte 0x35,0x95,0xc5,0xc8,0x26,0x0f,0xb3,0x17,0x04,0x1d,0xde,0x16,0x5d,0xb8,0x71,0x76,0x89,0x0b,0xd6,0xd8,0x9d,0xa1,0xdf,0xcb,0xb5,0x1c,0x86,0xc3,0x15,0x8d,0xaa,0x25,0x82,0xbf,0x6b,0x06,0xfb,0x1b,0xf5,0x11,0xaa,0x14,0x0e,0x67,0x7f,0xbd,0x46,0x21,0x8f,0x6d,0xbd,0x63,0xe6,0x14,0x05,0xa2,0xee,0x56,0xee,0xe6,0x37,0xf9,0xc0,0x2f +.byte 0xc9,0xe0,0x8e,0xdb,0xf7,0xf6,0xcb,0x83,0x79,0xcc,0xe3,0xf6,0x30,0x9d,0x56,0x31,0x40,0xd2,0x50,0x25,0xb6,0x89,0x16,0x97,0x65,0xd8,0x8d,0x1a,0xa5,0xf4,0x47,0xfc,0x4c,0x73,0x07,0x42,0x9c,0x8f,0x7f,0x10,0xb4,0x96,0x33,0x1e,0xe2,0xff,0x0c,0x33,0x35,0xbc,0x37,0x01,0x2b,0x67,0xda,0xca,0xcf,0x87,0xa2,0x38,0x71,0x6b,0xf4,0xcf +.byte 0xa6,0xc6,0x6a,0x90,0x5c,0xa0,0x8b,0x66,0x44,0xc7,0xc2,0x05,0x24,0xee,0x53,0x99,0xf3,0x07,0x78,0xb0,0x17,0xf8,0x11,0xf9,0x52,0x20,0x41,0xc5,0xdb,0x4e,0x92,0xd3,0xeb,0xd2,0x86,0xea,0x9b,0xc3,0x4c,0x1b,0x75,0xcd,0x15,0x0c,0xe0,0x28,0xe9,0xe1,0x99,0x98,0x96,0x33,0x06,0xea,0xa8,0x4e,0xde,0xc1,0x1c,0xfe,0x6c,0xca,0xac,0x6d +.byte 0xc4,0x3a,0x7d,0xd2,0x41,0xf5,0xb3,0x7d,0x1c,0x28,0x93,0x72,0xf8,0x08,0xc1,0x71,0x72,0x4c,0x41,0x68,0x38,0x80,0x2e,0x4b,0xa6,0xc5,0xc7,0xb4,0x24,0x29,0xd0,0xce,0xb2,0x3d,0xc4,0x60,0x5b,0xeb,0x2d,0x80,0x13,0xee,0x95,0x41,0xfe,0x49,0x6d,0x89,0xc0,0x7a,0x61,0x51,0x3f,0xbb,0x24,0x7c,0x64,0x5e,0x9f,0xf7,0x60,0x88,0x95,0xe8 +.byte 0x60,0xc5,0xf6,0xc3,0xc3,0xd4,0x43,0xce,0xf9,0x4e,0x35,0xf2,0xfa,0xb0,0x2b,0xe3,0xfe,0xb8,0x88,0x19,0xf2,0x89,0xc0,0xb5,0x00,0x61,0xc8,0xe5,0xaa,0xde,0x18,0xb4,0xd4,0x21,0xbe,0xcc,0x61,0xc7,0xc9,0xfe,0x22,0xcc,0x65,0xf6,0x79,0xe8,0x4d,0x1c,0x30,0x31,0x7a,0xd4,0xbc,0x98,0x2d,0x72,0x5e,0x5c,0x4f,0x7e,0x52,0x9c,0x95,0x20 +.byte 0x29,0xa4,0x0b,0xf7,0xb2,0x7d,0xcc,0xc3,0x8c,0x94,0xb0,0x09,0xf4,0x6f,0x59,0x63,0x91,0x2a,0x06,0x80,0x09,0x01,0x3c,0x73,0x83,0x42,0xa1,0x5c,0x0f,0x42,0xf4,0x74,0x3c,0x24,0x8c,0xbe,0x91,0x73,0xdf,0xf1,0xea,0x21,0xbd,0xc9,0x36,0x17,0xca,0x81,0x28,0xd9,0x4a,0xc4,0x2e,0xdf,0x4c,0x4f,0xbd,0x1e,0xbc,0xe9,0x32,0x12,0xd3,0x8f +.byte 0x48,0x9b,0x4f,0x49,0x23,0x54,0x15,0x15,0x14,0x8b,0x18,0x64,0x7d,0x08,0x7f,0xc4,0x56,0x01,0x94,0x4e,0x50,0xe8,0xf2,0x4a,0xb5,0x3c,0xa0,0xb5,0xaf,0x55,0x70,0x44,0x41,0x5c,0xe6,0x61,0x5a,0xbb,0xf2,0xe6,0xc9,0x05,0x33,0x45,0x8f,0xbc,0xe5,0x59,0x7f,0x66,0xc5,0x61,0x4d,0x1b,0xc7,0xee,0x45,0x7d,0x57,0x8f,0x6c,0x9d,0x8b,0x87 +.byte 0x98,0xa8,0x58,0xac,0x4a,0x31,0x79,0xd6,0x26,0x08,0x2f,0x28,0x3f,0x31,0x77,0xad,0xff,0xe1,0x9d,0xa8,0xf7,0xe0,0x76,0x66,0x48,0x00,0x52,0xe8,0x9a,0xb2,0x47,0x5e,0x0a,0x87,0x86,0xaf,0xf6,0x7d,0x46,0x78,0x66,0x68,0xf7,0x68,0x0c,0x6f,0x5c,0xd7,0x09,0xc0,0xd7,0x90,0x98,0xe2,0x5c,0x07,0xe9,0xd1,0x58,0x48,0x57,0x9f,0x48,0x99 +.byte 0x87,0xdf,0x06,0xc1,0x35,0x0f,0xd8,0xb0,0xa9,0xfa,0xdc,0x31,0x76,0xd1,0xad,0x47,0x80,0xe4,0x74,0xe0,0xda,0x4b,0x77,0x8b,0x71,0xab,0x9a,0x8e,0xd7,0x6b,0x91,0xb1,0xdb,0x78,0xd2,0x86,0xf7,0x61,0x1b,0xdc,0x34,0x57,0x32,0x51,0xee,0xd3,0xff,0xb2,0x6c,0x6a,0x79,0x90,0x9c,0x1f,0x6b,0xe7,0x43,0x20,0x05,0x4f,0x66,0x83,0xd0,0x56 +.byte 0xe1,0x21,0x63,0xf4,0xd6,0x96,0x91,0xcb,0x51,0x3c,0x13,0x88,0x97,0x26,0x88,0xda,0x7c,0xd4,0x0d,0xcb,0xdf,0xc2,0x7d,0xcd,0x2c,0x0e,0x28,0x23,0x21,0x5f,0xbe,0x5d,0x62,0x58,0x6c,0xa7,0x45,0xae,0x1f,0xac,0x35,0x53,0xdb,0x2c,0xa6,0x71,0xe4,0x11,0x5e,0x59,0xbe,0xd5,0x20,0x2a,0xc4,0xcd,0x4c,0x1b,0xe0,0x38,0xef,0x02,0x0c,0x5f +.byte 0x5a,0x1b,0xf9,0x1e,0x32,0x63,0xd7,0xa6,0x0f,0x1d,0x98,0xd5,0x3a,0x0f,0xf6,0xcc,0xfc,0xd6,0xb4,0x87,0xc5,0x76,0xd8,0x3e,0x72,0xb0,0x20,0xfe,0xb3,0xfc,0x48,0x4c,0xd1,0x71,0xcd,0x13,0xef,0xe8,0x40,0xd9,0x0d,0xf6,0x1d,0x5b,0xa4,0x26,0x56,0x8c,0x66,0xcb,0x18,0x5a,0x5f,0x86,0x43,0x2c,0xa4,0x1e,0x00,0x3f,0x09,0xbf,0x8e,0x61 +.byte 0xad,0x2a,0x44,0x97,0x35,0xb2,0xf3,0x50,0x5f,0xfa,0x01,0x74,0xbf,0x70,0x46,0x38,0xf1,0x15,0xaa,0x04,0xfe,0xe9,0x3f,0x43,0x2f,0x53,0xcb,0xea,0x5c,0x04,0x8e,0xe6,0x43,0xeb,0xc0,0xd9,0xbf,0x4a,0xc1,0xbc,0xf9,0x11,0xd5,0x33,0xdc,0x41,0x8e,0xfe,0x5e,0xf3,0x8c,0x80,0x47,0x46,0x01,0x9e,0xa9,0x2c,0x2d,0xd2,0x90,0x7f,0xce,0x7c +.byte 0x59,0x78,0xaa,0xbb,0x96,0x52,0x0a,0xf3,0x18,0x1f,0x0b,0x41,0xc1,0xd5,0x12,0x14,0x1a,0xe1,0x4e,0xac,0xf8,0x2a,0x56,0xfe,0x66,0x34,0x21,0xdf,0x1f,0x6a,0x02,0x85,0xd2,0x38,0xc0,0x39,0x5c,0xa7,0x3f,0xcc,0x2b,0x6f,0x69,0xe7,0xa7,0x0a,0x36,0xf1,0xa9,0x77,0x59,0x2c,0x44,0x8b,0x72,0xc9,0xc2,0x74,0x32,0x48,0x76,0x19,0x1e,0x49 +.byte 0x10,0xe6,0x46,0xdf,0x82,0x9b,0xad,0x4e,0x40,0x20,0xd7,0xd3,0xf5,0x5c,0xbc,0x25,0x94,0xd1,0x68,0xaf,0x29,0xc5,0xcd,0x1b,0x86,0x4b,0x88,0x21,0x6e,0xeb,0x06,0x14,0xb5,0x15,0xe7,0x26,0x01,0x05,0x4e,0x3a,0x2a,0x24,0xbe,0xf2,0x64,0x6e,0xf4,0x9c,0x60,0xf8,0xd4,0xfd,0x4b,0xc0,0x0e,0x68,0x0d,0x19,0x26,0x87,0xa5,0xbf,0xe1,0x16 +.byte 0xf0,0x27,0x58,0xa8,0x3a,0xed,0x27,0x5b,0x73,0x4f,0x19,0x40,0x58,0x36,0xf6,0xfd,0x60,0x37,0x09,0x74,0x3c,0xb9,0x76,0x9a,0x32,0xfd,0x98,0x79,0x53,0xb3,0xea,0x3a,0x98,0x21,0xf9,0xb2,0x97,0xe4,0x00,0xb6,0xed,0x67,0xc4,0x76,0x8f,0x1e,0x4d,0xc8,0x2e,0xf4,0x54,0xd9,0x09,0xd7,0xcb,0xa0,0x91,0x1e,0x5a,0x60,0x53,0xbc,0x3e,0x35 +.byte 0x69,0xa6,0xca,0xf3,0xce,0x41,0x84,0x71,0xee,0xf3,0x75,0xd4,0x7a,0x71,0x36,0x62,0xe3,0x08,0xae,0x40,0x05,0xde,0x01,0x34,0x92,0x5f,0x71,0xa9,0x08,0xb3,0x43,0xcd,0xe7,0x2f,0x42,0x7e,0x9c,0x1e,0xfe,0x9a,0x40,0x99,0x58,0x31,0xd9,0x8d,0x5d,0xda,0x75,0x14,0x3f,0xae,0x45,0x27,0x85,0x47,0x7d,0x41,0x0e,0x94,0x20,0xee,0x11,0xd0 +.byte 0x1e,0xcd,0x00,0x56,0xb7,0x59,0xe6,0x58,0xab,0x2c,0xa6,0x44,0x14,0x8c,0xff,0x49,0x7b,0xe5,0xf7,0x93,0xd5,0x78,0x1a,0xe0,0x16,0xd8,0x24,0x08,0x1e,0x70,0xce,0x1a,0x84,0x87,0x6b,0xe5,0xf2,0x43,0x5f,0xb3,0x34,0xaa,0x85,0x3e,0x9e,0x2e,0x86,0x22,0x74,0xe2,0x1a,0x87,0xfb,0x1b,0x6c,0x08,0x8c,0x43,0xb4,0x85,0x75,0x2c,0x13,0xc2 +.byte 0x18,0x94,0xe8,0x0d,0x09,0xd5,0x8f,0xd4,0xca,0x50,0x93,0x9f,0xa3,0x9f,0x3b,0x3c,0x54,0x68,0xa9,0xb1,0xdd,0x0a,0x0b,0xe2,0x15,0x92,0x9c,0x6f,0xfa,0x45,0x6f,0x0a,0xb4,0x6b,0xcb,0xdc,0xa4,0xf3,0xf0,0xa6,0x1c,0x8a,0x60,0x42,0x35,0xa8,0xe3,0xdf,0xc8,0xdc,0xbb,0xbe,0x95,0xa7,0xac,0x08,0x08,0xbc,0x56,0x1a,0xa4,0xc2,0xd2,0x53 +.byte 0xfa,0xb2,0x89,0x4f,0xb8,0xe4,0xb9,0x90,0x95,0x91,0x2f,0x0f,0x93,0xa9,0x8c,0xc6,0xf8,0x01,0x34,0x08,0xe6,0x8c,0x58,0x43,0x57,0x40,0xf9,0x78,0x83,0xea,0x92,0x70,0xa8,0xa5,0xc8,0x9e,0xf8,0xc6,0x39,0x4c,0xb4,0xe9,0xbb,0xdf,0xd2,0x52,0x43,0x6b,0x6c,0x8b,0x2c,0x47,0xd7,0x11,0x42,0x3d,0xc7,0x3f,0xce,0xd1,0xd9,0x28,0x5b,0xce +.byte 0xec,0xb6,0x31,0x3a,0xc9,0xad,0x0c,0x93,0x82,0x2b,0xf6,0xdc,0xd4,0xcd,0x80,0xe1,0x75,0x45,0xeb,0x3b,0xbf,0x12,0x42,0xeb,0x71,0xc1,0x8b,0x27,0xd5,0xcb,0xd9,0xb6,0xe8,0xe9,0xc6,0x79,0xff,0x38,0x88,0x87,0x72,0xf2,0x71,0x4a,0x44,0x55,0x0f,0x9c,0x93,0xcf,0x15,0x18,0x44,0x62,0x2a,0xc5,0x0a,0x80,0x69,0x91,0x6e,0x4b,0x30,0x4e +.byte 0x3f,0x2f,0xb5,0x65,0x9e,0x65,0x07,0x36,0x9b,0xba,0x5f,0x81,0xd9,0x60,0xbe,0x1f,0xf5,0x98,0x20,0xf9,0x9e,0x53,0xf7,0x5d,0x57,0x7f,0x22,0xaf,0x8e,0x82,0x9e,0x0f,0x33,0x74,0x37,0x26,0x61,0x67,0xf6,0xfd,0x2c,0xab,0xd8,0x18,0x1d,0x10,0x48,0x7a,0x1d,0xed,0xbb,0x57,0x83,0xf9,0x82,0xf5,0xe3,0xf9,0x98,0x5c,0xc0,0x3e,0xee,0x38 +.byte 0x0a,0x57,0x10,0x22,0xc4,0xe8,0x1d,0xe3,0x46,0xa3,0x81,0x5e,0x92,0xba,0xcc,0x53,0x48,0x85,0x33,0x58,0xa2,0x3e,0xea,0x0a,0xfb,0x72,0x5c,0xcd,0xd9,0xa4,0x3f,0x56,0x99,0x35,0x92,0x6c,0xe8,0xf2,0x59,0x0f,0xc8,0x6a,0x21,0xb2,0x9f,0xa2,0xf6,0xf3,0x1b,0xec,0x38,0x95,0xed,0xef,0x00,0x09,0x16,0x6e,0xf7,0xf8,0x1a,0xef,0x0d,0x2b +.byte 0xef,0x83,0x8a,0xc2,0x22,0x3d,0x50,0xa3,0x70,0x52,0xe8,0xad,0x11,0x44,0x83,0x80,0xfe,0x88,0x7e,0x40,0x02,0x8f,0x4a,0x5d,0xd3,0x28,0x66,0x75,0x5a,0xf2,0x38,0xb5,0xdc,0x54,0xa8,0xb3,0xaa,0x76,0xdb,0x73,0xe0,0xd1,0xd7,0x51,0x20,0x8c,0x38,0x18,0x46,0x25,0x2e,0x0d,0x5b,0x61,0x9d,0x36,0x9a,0x14,0xfb,0xc8,0x4e,0x5a,0xba,0xa1 +.byte 0x98,0x34,0xfd,0x05,0x2c,0x87,0x58,0x8d,0xe3,0x5d,0x79,0x5a,0x45,0xff,0x75,0x25,0x98,0xbd,0xe4,0x9d,0x1a,0x70,0x79,0xaa,0x44,0x1a,0x10,0x7f,0xfb,0xe9,0x30,0x81,0xc7,0xa2,0x81,0x41,0x49,0x41,0x4e,0x42,0x5f,0x8a,0x9b,0x10,0xe2,0xdc,0xd9,0xdf,0xbd,0x61,0x29,0x72,0xa5,0x39,0xb7,0xf6,0x9f,0x4e,0x98,0xb8,0x04,0xae,0xd7,0xda +.byte 0x9a,0x9f,0x08,0xb8,0x2c,0x40,0x14,0x6d,0x01,0xb7,0x86,0x58,0x55,0x42,0xe5,0xdb,0x5f,0x4a,0xef,0xd8,0xed,0xdf,0x3b,0x24,0x1c,0xe4,0xb1,0x73,0xd1,0xce,0x29,0x96,0xde,0x8e,0xf3,0x1d,0x8d,0x75,0x57,0xd3,0x9a,0xf8,0xff,0x1a,0x4c,0x0c,0x47,0x82,0x83,0x73,0x34,0x43,0x55,0xfa,0xf2,0xd4,0x38,0xed,0xde,0x6d,0x24,0x55,0x90,0x06 +.byte 0xd6,0x03,0x52,0x28,0xc7,0x38,0x4a,0x16,0x95,0x4d,0xf4,0x46,0x56,0xf7,0x63,0x1f,0xe4,0xa9,0x51,0xc6,0x0b,0x85,0x42,0x40,0x8e,0x49,0x1e,0xc2,0xab,0xeb,0xda,0x99,0x26,0xf6,0x6e,0x00,0x8f,0x26,0x82,0xef,0x03,0xb0,0xd4,0xdb,0x54,0x46,0xdf,0xdc,0x23,0xaf,0xa8,0x6a,0x9f,0xb7,0xf9,0x41,0x07,0x5e,0x2d,0xcf,0x85,0xfd,0x9c,0x46 +.byte 0x30,0xb9,0x14,0xca,0xe2,0x30,0x12,0x06,0x88,0x08,0x05,0x2c,0x9a,0x4b,0x52,0x98,0xa9,0x99,0xd7,0xca,0xb5,0x1e,0x60,0x44,0xd9,0x5c,0x19,0x42,0xbe,0xa5,0x04,0xfd,0x7a,0xfc,0xb9,0xdf,0xd6,0xe3,0x6d,0x02,0xe3,0x96,0xf6,0xae,0xf3,0x78,0x1d,0x90,0x6d,0x86,0x17,0xf7,0xb7,0x6b,0x1d,0x52,0x32,0x5b,0xc0,0x31,0xaf,0x09,0x90,0x5e +.byte 0x81,0x75,0x17,0x47,0x6b,0x5e,0x9a,0x40,0xa5,0xa8,0x84,0x60,0xdc,0xdb,0xd2,0x89,0xcd,0xb2,0x72,0xf4,0x74,0xda,0x5d,0x34,0xf8,0xc6,0x1b,0x26,0x3e,0x8b,0xc7,0x73,0xf9,0x0c,0x93,0xf4,0x40,0x02,0xe0,0xed,0xe5,0xa0,0xae,0x91,0x03,0x85,0xa8,0x2f,0xe2,0x72,0xfe,0x17,0x7d,0x2b,0xa6,0x39,0x10,0x80,0x4c,0x58,0xaa,0xd8,0x22,0x7d +.byte 0x2f,0xbf,0x0c,0x40,0x48,0xfa,0xbe,0x40,0x4c,0x32,0x96,0x69,0xa5,0xab,0x0b,0x1e,0x33,0x9b,0xcf,0xe6,0x4e,0x2b,0x41,0x5a,0x21,0x23,0xa1,0xbb,0xd3,0xd6,0xd1,0xfd,0xbd,0x55,0xfc,0x92,0x92,0xcb,0x4b,0x72,0x39,0x8b,0xeb,0x72,0xdd,0xf7,0x77,0x43,0x52,0x2f,0x99,0x14,0x6e,0x41,0xce,0x1d,0x57,0x2c,0x09,0xd2,0x18,0xec,0x1b,0x89 +.byte 0xa0,0xe9,0xfe,0x1e,0x41,0xda,0x0f,0x76,0x02,0x38,0xec,0x9a,0x30,0xb7,0x5a,0x54,0x70,0xbc,0xe8,0xfa,0x06,0xd0,0x80,0xfb,0x27,0xd2,0xd8,0x00,0x80,0x65,0x9d,0x23,0xfd,0xad,0x26,0xb8,0xdc,0x09,0x4f,0xfb,0x52,0xcd,0xe4,0x41,0x68,0xca,0xdd,0xbc,0x2a,0x62,0xeb,0xa6,0x32,0x71,0xb0,0x08,0xb6,0x9f,0x3e,0x74,0xfe,0xb0,0xd4,0x9d +.byte 0x9e,0x6c,0x50,0x96,0x8a,0xde,0xd6,0xe9,0xde,0x2c,0xa6,0xf0,0x9f,0x67,0x00,0x50,0x0a,0x8c,0xe5,0xc2,0x37,0xcc,0xf0,0x53,0xeb,0x72,0xf2,0x87,0x77,0xee,0x80,0xe8,0xb2,0xa1,0x13,0x52,0x70,0xe6,0x8f,0x70,0x17,0x90,0x60,0xcb,0xac,0xb2,0x72,0xef,0xd9,0xb5,0xc3,0x68,0x57,0xdf,0x2d,0xcb,0x5a,0x35,0xf9,0x2e,0xfb,0xef,0x6e,0x77 +.byte 0x5d,0x21,0x37,0x4b,0x36,0x9b,0x3f,0x03,0x65,0xc9,0x84,0xb1,0x12,0x99,0xd1,0x6b,0x00,0x71,0x37,0xc7,0x57,0x82,0x44,0x7f,0xe1,0x81,0x24,0x70,0x96,0xd5,0x27,0xba,0x36,0xf7,0x25,0xc6,0x1c,0x7c,0x1b,0xdb,0xa3,0x6a,0x3e,0xb9,0x69,0x78,0xf7,0x51,0x46,0xe2,0x74,0xd3,0xfc,0xef,0x58,0x63,0x53,0x1d,0xd7,0xd0,0x8a,0x6a,0xd3,0xb0 +.byte 0xb9,0xbb,0xba,0x43,0xbf,0x8b,0x6b,0x04,0xd2,0xb1,0xe8,0xd1,0x72,0x3f,0xdc,0x2b,0x01,0xa6,0x2f,0x9c,0x7d,0x65,0xa1,0x9f,0x9b,0x4d,0x70,0x26,0x11,0x4c,0xb2,0xe1,0x01,0x0e,0x78,0xf2,0x32,0x87,0x2d,0x8e,0x95,0x02,0x76,0xca,0xe5,0x71,0x5f,0x36,0x35,0xb9,0xbb,0xc3,0xdf,0xf3,0x1e,0x1a,0x7a,0xe4,0x2c,0xdf,0x64,0x5d,0x96,0x12 +.byte 0xea,0x5c,0x14,0x73,0xa0,0xf1,0xbc,0xa9,0x6e,0x30,0x8a,0x47,0xf0,0x4b,0x9b,0x4c,0xc5,0xb0,0xbe,0x15,0x32,0x1b,0xde,0x0c,0x39,0x6a,0x6d,0x4e,0x3b,0x69,0x4c,0xb4,0x1f,0x56,0xf0,0xa1,0xb1,0x8c,0x29,0x5c,0x87,0x54,0xf2,0x5b,0x51,0x03,0x20,0x70,0x90,0x38,0x66,0x07,0xcc,0xd7,0xde,0x96,0x40,0x82,0xee,0xb5,0x87,0x2a,0x86,0xec +.byte 0x66,0x09,0xb7,0x4a,0xfe,0x4e,0x92,0x89,0x07,0xde,0x35,0xc4,0x6e,0x91,0x25,0xfd,0x18,0xfa,0xd9,0x8f,0xa7,0xa6,0xa7,0x6b,0x32,0xba,0xd3,0x1c,0x90,0xb9,0x8a,0x6c,0x9f,0x3f,0xb5,0x16,0x81,0x81,0xee,0xd7,0x55,0xc1,0x41,0x62,0xfd,0xe9,0x4c,0x5d,0xd7,0x70,0xdd,0xc6,0x4a,0x2b,0x42,0x77,0xe7,0x74,0xed,0x02,0x80,0x0d,0x7c,0x73 +.byte 0x8e,0xf0,0xd3,0xb0,0x20,0xbb,0xc8,0x82,0x06,0xdd,0x56,0x64,0xcb,0x9c,0xda,0xa1,0xa9,0x92,0xbc,0x8c,0x65,0x03,0xcd,0x68,0x87,0xa2,0x94,0x41,0x3c,0x36,0x96,0x1f,0xa4,0xd2,0x6d,0x5d,0x9f,0x2d,0x0c,0xf9,0x8a,0x82,0x19,0x93,0x47,0x62,0x71,0x8e,0x59,0xaa,0xf1,0x87,0xe0,0xb8,0xab,0x10,0x7f,0x4e,0xa8,0xa3,0xe2,0x32,0x58,0xb0 +.byte 0xcf,0x12,0xc0,0xf8,0x94,0x4a,0x61,0x36,0xdc,0x2d,0xb5,0x91,0xf9,0x0f,0x7d,0x91,0xd3,0xc7,0x03,0x8a,0xae,0x5c,0x22,0x8c,0x60,0x30,0xf4,0x71,0x51,0x00,0xf5,0x5d,0xe9,0x37,0x6c,0xae,0x64,0xff,0x45,0x35,0x4b,0x47,0x08,0xca,0xda,0x7b,0xe9,0xef,0xcb,0x27,0xcb,0x7e,0x3c,0xa6,0xd2,0x38,0x54,0x74,0xc3,0x7c,0xf8,0x71,0xb7,0x47 +.byte 0xe9,0xe0,0x43,0x03,0x3b,0x41,0x57,0xc3,0xda,0xa1,0xcb,0x64,0xb1,0x31,0x0d,0x12,0x45,0x3a,0xa0,0xad,0x6b,0xc7,0x26,0x62,0x50,0xcf,0x94,0x5a,0x30,0x8d,0xf6,0x91,0x49,0x9e,0xd5,0x84,0x0e,0x0c,0xe3,0x47,0x08,0x7f,0xa1,0x54,0x78,0x1b,0xa8,0x2c,0xbc,0x12,0x4f,0x7e,0x53,0x1b,0xca,0xfb,0x09,0x35,0xe0,0x9c,0x15,0xea,0xf6,0x3e +.byte 0xb2,0x20,0x9e,0x2c,0x81,0x6f,0xa4,0xb5,0x6b,0x04,0x6d,0xd1,0x90,0x66,0x46,0xdc,0x4b,0x71,0x7e,0x4b,0x3f,0xd6,0xe1,0xa8,0xc0,0xa7,0x45,0x85,0xe3,0x98,0x30,0xda,0x23,0x68,0x55,0xd8,0x96,0xb1,0xcc,0xeb,0xe1,0x95,0x0b,0x20,0xf3,0x4c,0xf2,0xc5,0xfa,0x0e,0xca,0xf5,0xc9,0xb3,0xd7,0xb4,0x1b,0x9f,0xef,0x82,0x56,0x4c,0xc5,0xa5 +.byte 0x21,0xda,0xcc,0x19,0x69,0x68,0xcb,0x37,0xb2,0x0c,0x73,0xb1,0x13,0x61,0x6b,0xca,0xda,0xfc,0xf7,0x1c,0xbc,0xd1,0x72,0x56,0xb8,0x7d,0xa1,0xef,0xc4,0x32,0x38,0xa3,0xdb,0x8b,0x2d,0x0a,0xce,0xcb,0x86,0x51,0x60,0xd2,0x47,0xf0,0x97,0x58,0xd8,0xa5,0x12,0x77,0xfc,0x32,0x04,0x29,0x61,0xfc,0xab,0xc2,0x42,0x86,0xd9,0x57,0x80,0xad +.byte 0x00,0xf0,0x9a,0x2a,0xac,0x52,0x27,0xd6,0xf8,0xd6,0x38,0xc8,0xfc,0xc1,0xab,0x4f,0x41,0xbf,0x8e,0x60,0x20,0xeb,0x24,0x36,0xd8,0xd8,0x25,0x6f,0xc8,0x5d,0x6b,0x00,0xdd,0x7a,0xe2,0x37,0xe4,0x13,0xd0,0xaa,0x5c,0x56,0x32,0x98,0x00,0x4b,0x8a,0x81,0xb1,0xfa,0xe8,0xf3,0xfa,0x0d,0xbb,0x66,0x6e,0x24,0xfd,0x3c,0x50,0x63,0x3a,0xf1 +.byte 0x72,0x63,0x18,0x71,0x6d,0xee,0x6f,0xf1,0x0e,0x1f,0x9e,0x9d,0x87,0x12,0x5c,0xdf,0x1d,0x9e,0xc0,0x0b,0x39,0x0e,0xd6,0x56,0x79,0x30,0xcb,0x07,0x7b,0x88,0xa5,0xbe,0xfd,0xd4,0x49,0xcc,0x92,0x6a,0xcc,0x78,0x1e,0xaf,0xee,0x89,0xc8,0x51,0x08,0x98,0x14,0x20,0xe5,0x52,0x93,0x18,0x6f,0xbb,0xdc,0xb2,0x68,0x14,0xd1,0xdb,0xe8,0x56 +.byte 0x24,0xd0,0x34,0xab,0xa6,0xfa,0xfe,0x72,0x5a,0xe3,0xe1,0x87,0x0d,0xf4,0xfa,0xa6,0xa6,0x6c,0xb6,0xcb,0xf8,0xfc,0x59,0xac,0xd9,0xb0,0xcd,0x15,0xa4,0x37,0x73,0x6e,0x70,0xc9,0x74,0xef,0x87,0x78,0x61,0xc2,0xd0,0x52,0x51,0xa9,0x2c,0xdb,0x9d,0xd9,0x3d,0xac,0xcd,0x52,0x39,0x69,0x2d,0x2a,0x4f,0xf3,0xb2,0x69,0xb9,0x01,0x3c,0x57 +.byte 0xeb,0x1b,0x0e,0x87,0xe9,0x42,0x58,0x83,0x6b,0xbc,0x72,0xc8,0x46,0x32,0x42,0x17,0x6a,0x19,0xa0,0xb3,0xf1,0x1c,0x96,0x9c,0x11,0x09,0x8b,0xc1,0x9e,0xe9,0x7f,0x18,0x8e,0xca,0xea,0x24,0x1b,0xce,0x12,0x57,0x1d,0x34,0xbe,0x60,0x60,0x2c,0xd8,0xa0,0x61,0x73,0xd6,0xf8,0xaf,0x15,0x26,0x84,0xd7,0xec,0xc0,0xbe,0x7e,0xa1,0xa8,0xba +.byte 0x2b,0xcc,0x20,0x67,0x6e,0xea,0x48,0x79,0x23,0xea,0x14,0x36,0x85,0x0a,0x56,0x3a,0xcd,0x5b,0x51,0xa4,0xf5,0x92,0x49,0xc2,0x55,0x62,0xed,0x88,0xde,0xd0,0x0c,0x01,0x36,0xb9,0x2e,0x94,0x80,0x75,0x8a,0x21,0x0a,0x07,0x45,0x68,0xd8,0x9d,0x49,0x7b,0xa7,0xb2,0x84,0xfa,0x3c,0xc4,0xd5,0x59,0xf9,0xc3,0xff,0xcf,0xe4,0x5f,0xea,0xbb +.byte 0x0f,0xae,0x7d,0x96,0xd3,0xe9,0x38,0xd1,0xb1,0x02,0xf6,0x4b,0x95,0x43,0x1c,0x69,0xa6,0x99,0xf5,0xdb,0x46,0x62,0xea,0x69,0x5a,0x08,0x2d,0x01,0x11,0xed,0x70,0x03,0x60,0x54,0xba,0x32,0x2c,0x0e,0x44,0x1f,0x8d,0xee,0x2e,0x39,0xab,0xc0,0xd4,0x88,0x11,0xef,0x07,0x3a,0x47,0xb9,0x6e,0x0c,0x22,0x9a,0xf3,0x89,0x01,0xfb,0xb8,0x2d +.byte 0x52,0xa0,0x42,0x4c,0xb3,0x9e,0xf5,0x4b,0x0c,0x78,0x0a,0x3b,0x29,0xae,0x4a,0xc0,0xb2,0xa3,0xc0,0x0d,0x38,0x07,0x49,0x9c,0xda,0x7c,0x48,0x81,0xba,0x53,0x0d,0x0d,0x78,0x8c,0xac,0x9b,0x3d,0x1f,0xaa,0xc1,0x32,0x54,0xca,0x54,0xe1,0xef,0x46,0x82,0x61,0xd0,0x88,0x04,0x53,0xb0,0x34,0xc2,0x23,0x9a,0x90,0xe3,0x73,0x9c,0x0d,0x46 +.byte 0x61,0xe5,0xc0,0x42,0x87,0x4a,0x3b,0x3a,0xf9,0xab,0xbe,0x4c,0xba,0x2f,0x88,0x03,0x6b,0x52,0x25,0x8c,0x9b,0xc0,0x13,0xb6,0x80,0x09,0x85,0x97,0x64,0x6d,0x65,0xcd,0x18,0x42,0x00,0xdf,0x76,0x4d,0x67,0xbf,0x04,0x7a,0x5f,0x7e,0x3a,0x5c,0x6f,0x1d,0x12,0x5b,0xbe,0xd2,0xc8,0xe5,0x09,0x45,0x4d,0xae,0xed,0xd8,0x77,0xc5,0x6f,0xb6 +.byte 0x43,0x09,0xe2,0xee,0xc9,0x5a,0x76,0xc5,0xeb,0xdd,0x96,0x23,0xb9,0xe5,0xfc,0xf2,0x3c,0xe1,0x67,0x5f,0x1b,0x10,0x39,0x47,0x67,0x8b,0x48,0x32,0xd0,0xbc,0xa0,0xa8,0x3e,0xc3,0x30,0x21,0x18,0x54,0x49,0xfe,0x8a,0x14,0x7a,0xe5,0x6e,0xbe,0x70,0xec,0xf6,0x97,0xa0,0xa4,0xf4,0xdd,0xaf,0xf2,0xde,0x50,0x1a,0x68,0xb9,0x1a,0x4b,0x37 +.byte 0xf8,0x29,0x16,0x4f,0x8c,0xa5,0x9e,0xd2,0x72,0x7f,0xf6,0x6b,0x7d,0xac,0xe4,0x17,0x93,0x39,0x8f,0xd9,0xdf,0x50,0x1f,0xce,0xf5,0x58,0xdd,0xcd,0xc2,0xb9,0x64,0xfc,0xad,0x8a,0x3c,0x2e,0x52,0x58,0x91,0x3b,0x78,0xb4,0xfd,0x4a,0x3b,0x13,0x5d,0x20,0xd5,0xdf,0xe7,0x52,0x3d,0x4c,0x2f,0x02,0x30,0xfc,0x24,0x17,0x99,0x6e,0x4b,0xfe +.byte 0x1d,0xf0,0xe6,0x86,0x32,0x37,0xb5,0xd5,0x09,0xa3,0xa5,0x3b,0xc1,0x88,0x9f,0x01,0x57,0x12,0x03,0x1d,0x60,0xd8,0x57,0xba,0xc6,0xfc,0xda,0xab,0x02,0xbe,0xab,0x89,0xf9,0x08,0x63,0xbd,0x42,0x11,0xf7,0xbf,0xd3,0x45,0x2b,0xa5,0x34,0x91,0x18,0xb9,0xb3,0x79,0xb4,0x15,0xa1,0x01,0x1a,0xf9,0x74,0x91,0x08,0x94,0xb2,0xf3,0xb2,0xca +.byte 0x0a,0x3a,0x4f,0x42,0x8a,0x16,0xf7,0x9e,0xbf,0x27,0x72,0x7b,0xff,0xd3,0xb9,0x4e,0xf5,0x8e,0x68,0xb5,0x91,0x23,0xef,0xeb,0x5d,0x7d,0xd8,0xc9,0xda,0x07,0x33,0xc9,0x1c,0x4a,0x7a,0xf2,0x72,0x64,0xb3,0x35,0x2e,0x54,0xec,0xc4,0xd9,0xee,0xea,0xda,0xfe,0x8b,0x1c,0x21,0x93,0x52,0x95,0x7c,0x2d,0xfe,0x56,0x05,0xdd,0x57,0x37,0xf2 +.byte 0x54,0x1c,0xe2,0x6c,0xc0,0xaa,0x71,0x67,0xdd,0x73,0x43,0x17,0x3e,0x76,0xdb,0x60,0xb4,0x66,0x62,0xc7,0x74,0x08,0x91,0x1f,0xd5,0x4c,0xa9,0xd0,0x34,0x33,0xea,0xb0,0x2c,0x0a,0x88,0xda,0xf7,0xca,0x91,0xf6,0x5f,0x9e,0x72,0xf6,0x18,0xf9,0x19,0x9d,0x84,0xf8,0x4c,0xe1,0xeb,0x45,0x29,0xaa,0xf2,0xa6,0xfd,0x64,0xf9,0x0b,0xfe,0x09 +.byte 0x1c,0xc2,0xde,0x19,0xdd,0x0f,0x02,0x16,0x65,0x70,0x33,0xd4,0x32,0x67,0x7b,0xc4,0xbb,0x11,0x60,0x4f,0xc3,0x4d,0x29,0x23,0x7e,0x84,0x58,0x51,0x43,0x7e,0x25,0x4f,0x3d,0xd4,0xe0,0x20,0x79,0xfd,0xce,0x59,0x49,0xf8,0xd1,0x53,0xca,0x2d,0x66,0xec,0xe5,0x7f,0xc8,0x14,0x06,0xc1,0x96,0x40,0xf2,0x61,0xa7,0x1b,0xf9,0x5e,0x97,0xfe +.byte 0x62,0x57,0x05,0xcc,0x6f,0x26,0x4b,0xa6,0x40,0x33,0x72,0x20,0xd3,0x1e,0x2b,0xb2,0x60,0xe7,0x56,0xda,0x87,0xd3,0xb4,0x5a,0x73,0x04,0xc9,0xc2,0x68,0xe3,0x18,0x74,0xd9,0x46,0x74,0x31,0xf4,0xf4,0xab,0xc4,0x0a,0xbc,0x66,0x4e,0x23,0x5f,0x92,0x7c,0x0a,0x81,0xdd,0xcc,0x79,0xee,0xb3,0x3d,0xc0,0x91,0x81,0xd0,0x79,0x39,0xd2,0x69 +.byte 0x5d,0xdc,0xc1,0x5c,0x61,0xb9,0x5e,0x87,0x32,0x73,0x70,0xd0,0xa8,0x7d,0xb5,0xd0,0xfc,0xf4,0xb6,0x55,0x9f,0x1f,0x8a,0xec,0xf4,0xb0,0x47,0xeb,0x3b,0x68,0x80,0x0b,0x79,0xd0,0x71,0x99,0xb1,0xd0,0xed,0x1f,0x9f,0x6c,0x2d,0x9d,0xae,0x1c,0x62,0x3b,0xec,0x3e,0x2f,0xb4,0x6f,0xbb,0x2e,0x1e,0xa9,0x7c,0xe8,0x5d,0x14,0x7d,0x0d,0x17 +.byte 0x6d,0x9c,0x54,0xce,0x64,0x93,0x8e,0x3b,0xa4,0xa9,0xfb,0xd9,0x44,0x06,0xbb,0xb8,0x7f,0xdf,0xd3,0xc2,0xa2,0xcf,0x5a,0xa2,0xa7,0xbb,0xb5,0x08,0xe2,0x67,0xdf,0x0e,0x4e,0xc6,0xcf,0x0a,0x79,0x1e,0xa5,0x60,0x1a,0x81,0xb1,0x8e,0x1b,0x27,0x7f,0x8d,0x28,0x50,0xa7,0x4a,0xe4,0x4b,0x61,0x6b,0xa9,0xfa,0xaf,0x82,0x83,0xfb,0x1f,0x2e +.byte 0xfa,0xce,0x18,0x0e,0x32,0x5f,0x5a,0xcf,0xac,0xaf,0x22,0x30,0x16,0xd7,0x97,0x99,0x0d,0xb8,0x92,0xa5,0x1d,0x44,0xb2,0xa5,0xc7,0x74,0xd2,0x81,0x8d,0x5c,0x38,0xda,0x9f,0x76,0xcb,0x47,0x6c,0xb7,0x08,0xd9,0xc1,0x52,0xd0,0x64,0x0a,0xf9,0xdd,0x3e,0xe8,0x99,0x15,0x4d,0xcb,0x7b,0x25,0x53,0x8c,0x13,0xb1,0xbf,0xb7,0xca,0x2d,0xce +.byte 0x71,0x48,0xee,0x5b,0x3a,0x01,0x5b,0xfd,0x22,0xfa,0x6f,0x17,0xcb,0x52,0xcc,0x0a,0x2b,0xbb,0x6d,0xce,0x2d,0x00,0xf5,0x9e,0x0d,0x58,0xf1,0xf4,0xa4,0x9f,0x13,0xf9,0x68,0x15,0xd7,0x02,0x41,0x6c,0x19,0x6b,0x66,0x9a,0x74,0xee,0xb4,0xb3,0xc7,0xec,0x60,0x19,0xbd,0xbb,0x97,0x22,0x7c,0x4e,0xe6,0xc6,0x00,0x03,0xa5,0x36,0x52,0xec +.byte 0x21,0xcf,0xc8,0xda,0x2c,0x14,0xa9,0xd8,0x75,0xab,0xea,0x05,0x8c,0x24,0x28,0x63,0xbd,0x58,0x35,0xd7,0x95,0xcb,0x14,0x89,0x04,0x99,0x7e,0x67,0x0d,0x07,0x35,0xdb,0x17,0x7c,0x72,0x2d,0xbc,0x89,0x9b,0xb4,0x16,0x21,0x2f,0x90,0xe8,0x8f,0xeb,0xc3,0x8d,0x86,0x0d,0x92,0xf6,0x4b,0x80,0x36,0x96,0x6b,0xd8,0x95,0x7b,0xad,0xe8,0xbf +.byte 0x77,0x9e,0xf4,0x93,0xcd,0xa5,0x06,0xbc,0x38,0xf2,0x57,0x25,0x54,0xfa,0x8e,0x19,0x8e,0x25,0x8e,0x3c,0x28,0xaa,0xf2,0x02,0x30,0xd4,0x47,0x89,0x36,0xb9,0xb7,0x01,0x5f,0x0c,0xd1,0x8d,0x93,0x7e,0xf0,0xf0,0xff,0x2f,0x8f,0xb5,0x97,0xa7,0x02,0xe8,0x9b,0xf2,0x51,0xe6,0x51,0x62,0xa5,0x27,0x26,0xc6,0x7a,0x39,0x7a,0xa9,0xaf,0x1e +.byte 0x03,0xd5,0x25,0xbe,0x3b,0x19,0x46,0xc4,0xdd,0xd6,0x5e,0x6a,0x18,0xc0,0x41,0x5f,0x53,0x89,0xd3,0x16,0xfb,0x3a,0x10,0xce,0x0d,0x8c,0x04,0x4c,0xcf,0xab,0xb9,0x0d,0x6c,0x45,0x6c,0x29,0xed,0x77,0x37,0x1f,0xd8,0x10,0x8a,0xfe,0x07,0xbd,0x7e,0xd7,0xa6,0x6b,0x80,0xde,0x3e,0x2c,0xa8,0xb1,0x38,0xcc,0xab,0x10,0x69,0x8f,0x58,0x3d +.byte 0x12,0xc7,0x9c,0xc1,0x0a,0xeb,0x3d,0x5e,0xf1,0x65,0xc6,0x09,0xcb,0x4b,0x09,0x24,0xa7,0x56,0x1d,0x1d,0x4c,0xd7,0x06,0xbd,0xe2,0x72,0x70,0xae,0x7e,0xe9,0xaa,0x97,0x6d,0xec,0xcb,0x55,0x0b,0x5d,0x45,0x3a,0x25,0x3d,0x52,0x0f,0x48,0x2f,0xe4,0xd0,0x5e,0x85,0x87,0xb6,0xa7,0x70,0x2f,0x9c,0x19,0x89,0x95,0x45,0x76,0x00,0xfe,0x27 +.byte 0xff,0xf8,0x73,0x59,0xba,0x98,0x92,0x4e,0x76,0x1a,0x90,0x1d,0xbc,0x1b,0xae,0x44,0xb6,0x63,0x86,0x4c,0x3c,0x8a,0x8f,0x3e,0x03,0x95,0x50,0x30,0xd8,0x0f,0x7f,0x6f,0xb6,0xe9,0xbe,0x2e,0xc9,0x55,0xe7,0x73,0xd6,0x77,0xdc,0xbc,0x67,0x54,0x31,0x47,0x30,0x46,0xe1,0xa4,0xf8,0xf3,0x90,0x4f,0x68,0x5a,0x52,0xe2,0xe7,0xdb,0xd9,0xfd +.byte 0xf6,0x36,0x2a,0xc1,0xdb,0x35,0x82,0x69,0xff,0xf9,0xea,0x53,0xff,0xcd,0x21,0x2c,0x26,0x79,0xd6,0x8c,0x74,0xe7,0x9e,0x85,0x1a,0x04,0xf5,0xed,0x89,0x16,0xf5,0xd7,0xf1,0x89,0xf1,0xb3,0x5b,0x47,0x42,0xcb,0x92,0x2e,0x70,0xf6,0x3e,0xfc,0x20,0x87,0x70,0xec,0x30,0x16,0xcc,0x88,0x64,0x13,0x58,0xf1,0x0d,0x17,0x90,0xc4,0xdb,0x07 +.byte 0xf5,0xe3,0x34,0x31,0x10,0x9c,0xa4,0x6a,0x4a,0xe6,0x6c,0x80,0x49,0x07,0x23,0x21,0xd6,0xf1,0xcb,0x4a,0xd1,0xb5,0xb7,0x63,0x94,0x4c,0x0a,0xce,0x90,0xf2,0x63,0x31,0x4f,0x96,0x6c,0x5d,0x3e,0xaa,0x10,0x20,0xd6,0xb6,0xbe,0xfa,0x3f,0x83,0xbc,0xa8,0x08,0x38,0xec,0x38,0xe4,0xe9,0xf5,0xb3,0x8e,0x32,0x31,0xcd,0x7c,0x08,0x98,0xf6 +.byte 0x0f,0x8a,0x8f,0xc1,0xd8,0x9e,0x05,0xb6,0x74,0x11,0x94,0xef,0x4f,0x8f,0xa1,0xc6,0x8c,0xdb,0xc3,0x27,0x4e,0xa3,0x30,0x94,0xf5,0xe8,0x2a,0x18,0x0a,0x51,0x9b,0x79,0xb2,0x1f,0xc3,0xa0,0x26,0xa9,0xf5,0xc4,0x9e,0x39,0xda,0x6a,0x53,0x8f,0x8c,0x4c,0x54,0x50,0x81,0xa0,0x0a,0xd3,0x7c,0x99,0x91,0xc7,0x3e,0x56,0x7d,0x53,0x8c,0x3c +.byte 0x51,0x44,0xa5,0x22,0x9d,0xd2,0x9b,0x13,0xcf,0xb8,0x0c,0xb8,0xd4,0xaa,0xb4,0xaa,0x8d,0xab,0x7c,0x06,0xca,0xbb,0x85,0xac,0x01,0xee,0xef,0xe7,0x74,0xd5,0x0d,0x64,0x91,0x1c,0xde,0x6c,0x05,0x37,0x1e,0x23,0x05,0x7e,0x38,0xdc,0x17,0xaf,0xa7,0x95,0x85,0x1f,0xaf,0xc8,0xe1,0xc2,0xda,0xda,0xf1,0x14,0x56,0x66,0x68,0x70,0x36,0x38 +.byte 0x7b,0xb8,0x22,0x9f,0xc4,0xeb,0x5d,0x76,0x97,0xc5,0xa3,0xb9,0x06,0x86,0x4f,0x20,0xab,0x7d,0xce,0x7d,0x78,0x59,0xc5,0x1f,0x73,0x81,0xf6,0x6d,0xb4,0xcc,0x10,0xc5,0x4d,0xe3,0x81,0xaf,0xbc,0x37,0x42,0x28,0x5f,0x51,0x1e,0xaa,0xc7,0x81,0x20,0xc3,0x89,0x35,0xf1,0x74,0x3a,0xe8,0x04,0x24,0xef,0x8b,0x70,0xe1,0x74,0xdf,0x87,0xd5 +.byte 0x3c,0x32,0x32,0x7d,0x03,0xd7,0xda,0x6d,0x8b,0x25,0x8d,0x11,0xa3,0xc2,0x27,0xdc,0xa3,0xfc,0xdf,0x70,0xa4,0x41,0xad,0xda,0xce,0x12,0x45,0x14,0xa1,0x96,0x16,0xd8,0x54,0x89,0x9e,0x78,0x7f,0x23,0x12,0xd1,0x15,0x08,0x7f,0xbd,0xf0,0x9a,0xf1,0x5b,0x07,0xd5,0xbc,0xab,0xab,0x15,0xae,0xda,0xf1,0x26,0x12,0x4e,0xd6,0x6c,0x35,0xc1 +.byte 0x6e,0x27,0x4d,0xa8,0x71,0x51,0x1e,0xae,0xa8,0x35,0x26,0x06,0x18,0x03,0xd8,0xae,0x9e,0x8b,0x07,0x30,0x10,0xfb,0x47,0x05,0x02,0xcc,0x0a,0xbd,0x57,0x43,0x15,0x0a,0x7a,0xb5,0x30,0x0b,0xa6,0x3c,0xa8,0xc9,0xf5,0x68,0xe1,0xfb,0xd1,0xe0,0xe7,0x44,0x6c,0xb4,0x44,0xb6,0xd1,0x2b,0x30,0x5e,0x17,0x89,0x40,0xcc,0x10,0x8f,0x97,0x8a +.byte 0xf3,0xf4,0x52,0x55,0xc4,0x8e,0x46,0xe5,0x24,0x0b,0x2a,0x5d,0x84,0xc1,0x4e,0xa8,0x5a,0x53,0xa8,0xce,0xc6,0x3f,0xa2,0xaa,0x3a,0x8f,0x51,0xed,0x4c,0xa6,0x34,0x6a,0x8c,0x18,0x9b,0x36,0x49,0x40,0x34,0xa3,0xe4,0xd8,0x3c,0x8a,0xfc,0x41,0xc9,0x35,0xfe,0x6e,0x3e,0x29,0xbc,0x04,0x61,0xaf,0x04,0x03,0x43,0x79,0xb5,0x77,0x27,0x25 +.byte 0xbe,0x85,0xc9,0x56,0xa4,0x17,0xc4,0x27,0x3d,0x53,0x1b,0x49,0x86,0xb2,0xb6,0x52,0x62,0x12,0x5d,0xe9,0x47,0x6f,0x65,0x78,0xf8,0x95,0x63,0xbc,0x73,0x6d,0xa6,0xb9,0xcd,0x17,0x39,0x56,0xb0,0xab,0x3a,0x15,0x5f,0x9a,0x98,0xfb,0xcd,0x51,0x4a,0x35,0x21,0xaf,0x07,0x4a,0x3d,0xfd,0x39,0x11,0x42,0xed,0xfc,0x7e,0x10,0x24,0xa5,0x0c +.byte 0xb2,0x4f,0x27,0xe4,0x78,0x32,0xfe,0xfc,0x8e,0x46,0x68,0xbb,0x2e,0x85,0x87,0x0f,0x01,0xde,0x1c,0x02,0xdd,0x82,0xa0,0x9e,0x30,0x31,0x8d,0x86,0x36,0x33,0xa6,0x59,0x16,0x78,0xae,0x1f,0x1d,0x27,0x0b,0x29,0x42,0x16,0x93,0x3b,0xe6,0xfb,0x8d,0xd5,0x48,0x42,0x61,0x39,0x5b,0xf7,0xea,0xd0,0x6f,0x67,0xd9,0x03,0x72,0xed,0x54,0xe1 +.byte 0xab,0x3f,0xa0,0xdc,0x4b,0x19,0xe6,0xe3,0xfe,0x5f,0x65,0x64,0x4c,0xa9,0x5c,0x52,0x36,0xb3,0x65,0x28,0x3e,0xe5,0x07,0x50,0xed,0xec,0x2f,0xc9,0xff,0x47,0x27,0xf6,0xfe,0xb8,0x60,0x60,0x52,0xe5,0xec,0x3c,0x4f,0x69,0x9f,0xaa,0x06,0x8a,0x99,0x9f,0xac,0xfc,0x0a,0x6f,0x8a,0xa4,0x0e,0x5c,0x58,0xb4,0x09,0xba,0x93,0x95,0x94,0x12 +.byte 0x9b,0x23,0x4f,0x93,0x28,0x6d,0xd0,0x76,0xfd,0xc9,0x87,0x3b,0xf1,0x8c,0x7d,0x56,0x84,0x5a,0x04,0x08,0x30,0xf7,0xf6,0x52,0x15,0xba,0xd6,0x7a,0x39,0x8c,0x5a,0xbf,0xeb,0x02,0x6d,0x31,0x30,0x92,0xbc,0xe2,0x07,0x21,0x16,0x96,0x70,0x66,0x00,0xe0,0x04,0xc5,0xa8,0xe4,0x08,0x6d,0x08,0x69,0x35,0xe2,0xb1,0x83,0x03,0x37,0xca,0xff +.byte 0x06,0x37,0x80,0xd5,0x1a,0xc5,0x31,0xfc,0x9a,0xb0,0x8a,0x4b,0x58,0xf3,0x00,0x4e,0xa4,0xfe,0x9e,0xe0,0x60,0xc7,0x3d,0x2c,0x52,0xb5,0x39,0xf0,0xa4,0x88,0x39,0x37,0xa5,0x26,0x8a,0xa3,0xe6,0x31,0xce,0xf3,0xa1,0x54,0x73,0xe7,0x69,0x38,0xef,0xa2,0xab,0x52,0x50,0x1a,0x45,0xcc,0x29,0x9c,0xb6,0xf4,0xde,0xc2,0xfe,0x7a,0x26,0xf7 +.byte 0x7a,0x6e,0x07,0xb6,0xd8,0x3f,0x77,0x60,0x35,0xae,0x6a,0x90,0xd6,0xb8,0x37,0xed,0x73,0x59,0x54,0xd9,0x0c,0x87,0x0e,0x81,0xef,0x69,0xc7,0xd4,0x8f,0x00,0x74,0x57,0x12,0xcf,0xa1,0x76,0xe8,0x45,0xf5,0x9a,0x4f,0xe2,0x5d,0x8a,0x89,0xb1,0x8b,0xea,0x9c,0x0a,0x1e,0x00,0x61,0x3b,0x66,0xbd,0xb5,0xd6,0xff,0xa3,0xff,0x52,0xc2,0x35 +.byte 0x81,0x05,0x08,0x2b,0xf9,0x52,0xda,0x74,0xd1,0x76,0x13,0xba,0x28,0x4c,0xb1,0xb1,0x82,0x5b,0x4e,0x79,0x39,0x22,0xf9,0x96,0x91,0x07,0x4f,0xf9,0xf2,0x25,0x25,0xb1,0x3e,0xda,0x07,0x5c,0x01,0x7b,0xfa,0x3e,0x95,0x92,0x1d,0xf8,0x44,0x06,0xc1,0xed,0x64,0x74,0x14,0x84,0x25,0xee,0x75,0xaf,0xe3,0x7c,0xd3,0xbe,0x7a,0x51,0x6b,0x80 +.byte 0x20,0x43,0x20,0x10,0x5f,0xf5,0xfc,0xd5,0xe8,0x06,0x43,0xad,0x10,0x6b,0x67,0x48,0xca,0xca,0x6e,0x3e,0x1c,0xdf,0x8f,0x7a,0x65,0xc8,0x5d,0xba,0x3b,0x67,0xeb,0x1f,0xc4,0x37,0xad,0xef,0x73,0x9e,0x18,0x8e,0xc1,0x99,0xaf,0x75,0xd3,0x91,0x73,0xc3,0x3a,0xb2,0xfe,0xff,0x30,0x81,0xc4,0x4f,0x37,0x37,0x23,0x96,0x17,0xf1,0xa2,0x9b +.byte 0x55,0x6e,0xd6,0xb3,0xc4,0x98,0xa3,0x32,0xb6,0xff,0x86,0x87,0x77,0xf4,0xad,0x16,0x3e,0xf0,0x24,0x01,0xb4,0x8e,0x1e,0x0f,0x10,0xa4,0x2e,0xe4,0x79,0xe6,0x88,0xe7,0x09,0x58,0x5e,0x97,0xad,0x0d,0x72,0x05,0xbf,0x2f,0x3f,0x99,0xee,0x8a,0x84,0xc3,0x62,0x43,0x52,0x6d,0xab,0x66,0xcf,0x9f,0x4e,0xf2,0x0d,0x13,0x15,0x49,0x84,0x5e +.byte 0x6c,0x8d,0x2d,0xef,0x53,0x16,0xa0,0x63,0xbe,0x05,0xb8,0x9b,0x23,0xca,0xca,0xb8,0xdd,0xbc,0x96,0x68,0x35,0x43,0x63,0x30,0x8e,0xaf,0x53,0x98,0xe2,0x76,0xe8,0x89,0x00,0x29,0x11,0x70,0xd5,0x94,0xbd,0x78,0xff,0xf6,0x88,0x4a,0x3d,0x99,0xd9,0x7e,0xdf,0xa8,0x33,0x92,0xa2,0xc0,0x32,0x42,0x73,0x08,0xd4,0x55,0x5d,0x18,0x93,0xca +.byte 0x7e,0x33,0xe3,0x51,0xc7,0xb7,0x24,0x62,0x69,0xf4,0xab,0x36,0xe3,0x22,0x10,0x9b,0xe0,0xbd,0x48,0x65,0x30,0x9c,0xfe,0xeb,0x3f,0x7f,0x22,0x67,0xcc,0x87,0x5a,0x71,0xb0,0xd1,0x19,0x82,0x1c,0xb2,0xf1,0x73,0xd2,0xd6,0x3f,0xef,0xe3,0x2f,0x25,0xf3,0x8b,0x21,0x4e,0xbf,0x0e,0xc1,0xd2,0x8a,0xbb,0x04,0xde,0xcf,0xd1,0x77,0xba,0xaa +.byte 0xc7,0x41,0x68,0xce,0xc4,0x64,0xf9,0x3a,0x2f,0x1c,0x0b,0x22,0xf8,0x60,0x09,0x76,0x31,0x88,0x62,0x3a,0xf3,0x49,0xe6,0xda,0x4b,0xd3,0xf3,0x35,0xaa,0x56,0x4c,0x2f,0x7f,0x03,0x3e,0xf8,0xcb,0x5e,0xed,0x37,0xa1,0x29,0xe8,0x20,0xf5,0x4a,0x32,0x73,0x30,0xfd,0xd1,0xf6,0xb4,0xa1,0x30,0x87,0xcb,0x21,0x63,0xf5,0x3a,0xad,0x05,0x1a +.byte 0x34,0xf5,0x32,0xf6,0x02,0xf3,0x10,0x52,0xfd,0x86,0x37,0x1f,0x5d,0xe4,0x2e,0x31,0xcb,0xb8,0x4c,0xeb,0xdd,0xea,0x01,0x0d,0x94,0x13,0xa8,0x8f,0xf0,0x52,0x4e,0x0d,0x4f,0xd1,0x24,0xeb,0x0f,0x2b,0xb1,0xaa,0xc5,0xc8,0x52,0xb9,0xbe,0x21,0x48,0x2a,0x53,0x98,0xe4,0x00,0x72,0x64,0xdb,0x44,0x48,0x36,0x60,0xe7,0x81,0xdc,0x25,0x85 +.byte 0x4d,0xaf,0xa8,0x0d,0xfb,0x07,0x76,0x4f,0x6a,0x30,0x3c,0x7c,0x3b,0x36,0xa9,0xf8,0xae,0x81,0x03,0xe9,0x19,0xdf,0xdb,0xd9,0x7f,0x59,0xe0,0xd7,0x50,0x14,0x9f,0x67,0x3d,0xc7,0xdf,0xa8,0x44,0x86,0x29,0x81,0x65,0x44,0x9e,0x37,0x27,0xdd,0x2f,0x33,0x59,0xf7,0xaa,0x17,0x34,0x8c,0x1c,0xa7,0x8e,0x06,0x46,0xf1,0x43,0x87,0xa9,0xb7 +.byte 0x85,0xec,0x92,0x0d,0xdd,0x78,0x55,0x99,0xfb,0x1c,0x66,0x85,0x0d,0x59,0x31,0x00,0xbc,0xd9,0x9b,0xbb,0xfb,0xfc,0xb2,0x36,0x3c,0x34,0x8f,0x4a,0xb6,0x74,0x9c,0x32,0x6f,0x69,0x6c,0x3e,0x68,0x7e,0xec,0xeb,0x58,0x6a,0xf5,0xa2,0xbb,0x04,0x68,0xdb,0x8c,0xf0,0x04,0xba,0xf7,0xf7,0x50,0xd0,0x60,0xba,0x45,0x73,0x0f,0x2c,0x2f,0x97 +.byte 0x58,0xcc,0xa2,0xbe,0xfe,0x5e,0xf9,0x44,0x03,0x8b,0x99,0x56,0xb0,0x4f,0xe1,0xd0,0xa5,0x9f,0xd1,0xfc,0x95,0x44,0x4b,0x01,0x24,0xc0,0x4c,0x91,0xc1,0xb5,0x99,0xe7,0x5f,0x2f,0xcf,0x5d,0x4f,0x64,0x6e,0x54,0x51,0x0c,0x35,0x5f,0xa8,0x7b,0x27,0xa0,0x7d,0xb1,0x90,0xc2,0xdd,0x50,0xef,0x09,0x6f,0xed,0x25,0x6b,0xf5,0x6f,0xc1,0x97 +.byte 0xea,0xd5,0x49,0xf5,0x40,0x60,0xc3,0xbb,0x0d,0x82,0x15,0xa5,0xf7,0xfe,0xa1,0x20,0x13,0x9e,0xbb,0x43,0x58,0xba,0xd2,0xe8,0x89,0xaa,0xfc,0xe0,0x47,0x6b,0xac,0x91,0x8b,0xeb,0x4f,0xf5,0xda,0xf5,0xc8,0x11,0x64,0x7c,0x8d,0x43,0x92,0xf2,0x84,0xeb,0xfb,0x5c,0x1b,0x6b,0x68,0x8e,0x3c,0x66,0xb2,0xd1,0x8e,0x67,0x44,0xbf,0x69,0x3b +.byte 0xb9,0x41,0x78,0x8d,0xc8,0x7b,0x81,0x61,0x70,0x6e,0xe2,0xfc,0xd2,0x96,0x31,0x31,0x2f,0x27,0x90,0xf2,0xc4,0xed,0xbd,0xb5,0x0e,0x91,0x7d,0xd0,0xec,0x3c,0xe9,0xcf,0xf2,0x07,0xac,0x54,0x44,0x9a,0x24,0x41,0xcb,0x2a,0x86,0x30,0x18,0xba,0x65,0x59,0x41,0x00,0x59,0xbf,0x3d,0x01,0x8a,0x51,0xe5,0xd2,0x90,0x8c,0x7d,0xd7,0xad,0x71 +.byte 0xdc,0x45,0x62,0x95,0xf9,0x9f,0xe8,0x55,0x6d,0x48,0x22,0x32,0xcb,0x9a,0x55,0x65,0xe5,0xdf,0xee,0x22,0x99,0x91,0xd7,0xed,0x33,0x04,0x72,0xc7,0xc5,0xb2,0x56,0x5e,0x8f,0x38,0x4b,0xd0,0x61,0x4b,0x4b,0x04,0x4c,0x4c,0x2b,0x23,0x00,0xd4,0x5c,0xdd,0x84,0x8d,0x73,0xf4,0xf7,0xef,0xd5,0xdb,0x2b,0xec,0x54,0x86,0x37,0x01,0x64,0x56 +.byte 0xef,0x73,0x9f,0xb4,0xb6,0xd2,0xf4,0x33,0x93,0xbd,0xd7,0xd9,0x6e,0x8f,0x60,0x85,0xbc,0xa6,0x16,0x3f,0x3f,0xc3,0xd7,0xfc,0xb6,0x82,0xf0,0xe5,0x1e,0x2c,0x51,0x48,0x27,0x50,0x3e,0xdb,0xe6,0x86,0x3b,0xa1,0xfa,0x09,0x39,0x04,0x6f,0xb1,0x85,0xbd,0xda,0x4d,0x2f,0xd1,0x40,0x6f,0x2e,0x2b,0xf2,0x9a,0x4d,0x8e,0xb2,0xc5,0x6e,0x21 +.byte 0xf9,0xdd,0xc9,0x2e,0x81,0x18,0x7b,0x88,0xb9,0x86,0x36,0xe5,0xb2,0xdd,0x19,0xb4,0x7f,0x5d,0xc0,0x20,0x34,0xdc,0x63,0x7d,0x8c,0x80,0x0f,0xe6,0x85,0x14,0xbb,0x87,0x6c,0x3e,0x39,0x53,0x60,0x3d,0xc5,0x46,0x11,0xa3,0x96,0x60,0x6f,0xe9,0xfe,0x59,0xcc,0xed,0x4d,0xdb,0xa3,0xa1,0xf1,0x71,0x0b,0xb0,0x1f,0x89,0x4c,0x32,0x59,0xa5 +.byte 0x7d,0xf7,0x3e,0x5b,0xca,0xa4,0xe1,0xc3,0x50,0xac,0xdf,0x00,0xad,0x45,0x59,0x9e,0x23,0x5f,0x52,0xbd,0x36,0x78,0x55,0xcf,0x90,0x91,0x41,0x14,0xdb,0x76,0x3a,0x43,0x39,0x89,0xe1,0x93,0xc8,0x66,0x91,0xc7,0x42,0x06,0x6f,0xbb,0x35,0x1e,0x07,0x52,0x5a,0xe4,0x41,0x9f,0x65,0xe0,0xdc,0x49,0x8c,0xd3,0x5f,0x16,0x21,0xc9,0xb8,0x8a +.byte 0xc2,0x56,0x91,0xcb,0x18,0x6b,0x38,0x7b,0x3a,0xeb,0x91,0x3c,0x0d,0x6a,0x1f,0xd6,0xc6,0xd7,0x56,0x8d,0xd3,0x76,0x1c,0x9d,0xed,0x3d,0xb6,0x92,0x71,0x6e,0x73,0xc6,0xb8,0xa2,0x1c,0x25,0xb9,0x3c,0xd4,0x41,0xf7,0x8f,0x39,0x60,0xe6,0x27,0xf2,0xc6,0x5f,0x56,0x08,0x7c,0xd3,0x16,0x9d,0x06,0xc0,0xca,0x3d,0xc6,0x61,0xb0,0x21,0x51 +.byte 0x6d,0xca,0x82,0x59,0xe6,0xbb,0x99,0xa2,0x4f,0xfc,0x71,0x66,0x2b,0x4e,0x40,0x62,0x97,0x34,0x73,0x4a,0xe5,0xf0,0x4f,0x4c,0x36,0x4c,0xdb,0x03,0xa9,0x87,0x29,0x21,0x5d,0x91,0x5b,0x89,0xb8,0x3d,0x65,0xc7,0x58,0x0a,0x81,0xb5,0x3e,0x22,0xa1,0x57,0x95,0xbe,0x60,0xf5,0xeb,0xb3,0x49,0xdf,0xd9,0xa2,0x31,0x36,0x5f,0xb2,0xa6,0xf6 +.byte 0x66,0x88,0x88,0x8e,0xa3,0x2c,0xac,0x5e,0xa1,0x33,0x16,0x64,0x08,0x47,0xc8,0xbc,0xc2,0xe9,0xdb,0x73,0x57,0x50,0xd4,0x24,0x01,0x26,0x26,0x04,0x4f,0x8a,0xc0,0x7a,0x97,0x14,0xf2,0xd0,0xbe,0x03,0xea,0x8a,0x25,0xcb,0x98,0xe7,0xbd,0x67,0xff,0x32,0xfd,0x8a,0x7d,0x11,0xe1,0xb2,0x91,0xb5,0xa0,0xb6,0x3c,0x2c,0xb3,0x6e,0x35,0x61 +.byte 0x86,0xbc,0x37,0x15,0xf8,0x3b,0x0d,0x84,0x83,0x69,0x76,0xb0,0xaa,0x8f,0x4f,0xca,0xba,0x54,0xfe,0x42,0xc8,0xba,0x9a,0xd5,0x53,0x69,0x67,0x29,0x23,0x3a,0x6a,0x75,0x97,0xb4,0x29,0x2e,0x62,0xe3,0x95,0x82,0xb3,0xa0,0xa1,0xb7,0xdf,0xc2,0x66,0x4d,0xdd,0x0d,0xda,0xda,0xc2,0x42,0xe0,0x69,0xb1,0xab,0x3c,0x44,0x39,0x11,0x3b,0x0a +.byte 0xd6,0x96,0x2c,0x36,0xb0,0xa0,0xed,0x3d,0x0c,0x63,0x8b,0x90,0xe4,0xb9,0x5f,0x4c,0x27,0x70,0x87,0xb3,0x54,0xe2,0x36,0x74,0x6f,0x3e,0x22,0xb1,0x3b,0x1b,0xba,0xdb,0x1c,0xbd,0x9c,0x6d,0x84,0xbd,0x33,0xfb,0xc0,0x98,0x4c,0xcf,0x7a,0xe8,0x41,0xdb,0x32,0x1f,0xb7,0x64,0x19,0xdb,0x87,0xe7,0xf9,0x52,0x40,0x8c,0xc6,0x89,0x98,0x15 +.byte 0x69,0xde,0xfa,0x29,0x9a,0x0f,0xaf,0xb0,0xad,0x71,0x35,0xab,0xab,0x34,0xe0,0xf4,0x03,0x24,0x6f,0x94,0x38,0x87,0xba,0x68,0xd5,0x1f,0x58,0x88,0x3e,0x12,0x20,0x57,0x43,0xde,0xd0,0xbc,0xaa,0x31,0x8f,0xbc,0x88,0xa0,0xdf,0x5a,0xcc,0xd1,0xba,0x9c,0x18,0x80,0x4e,0x8f,0x68,0x91,0x9c,0x57,0x3b,0x5a,0x62,0xc7,0x29,0x3e,0x49,0xc7 +.byte 0x23,0x26,0xfd,0x9e,0xd0,0xb0,0x4f,0xd4,0xb2,0xa9,0xa8,0x4c,0x66,0x54,0x52,0x75,0x6b,0xbf,0x63,0x76,0x49,0x3b,0xa3,0xb2,0x8f,0x87,0x9d,0xb4,0x8f,0x07,0x3c,0x8e,0xae,0xe1,0x0e,0x9a,0x86,0x90,0x58,0x73,0x8a,0xb3,0xa9,0xab,0xe6,0x27,0xd7,0x70,0x94,0x77,0x12,0xdc,0x71,0xdf,0xcf,0xba,0xdd,0x85,0xfe,0x28,0xaa,0xcd,0xcc,0xe8 +.byte 0x5f,0xd4,0xd8,0x45,0x6f,0x20,0xa8,0x5e,0x40,0x91,0x3b,0xd7,0x59,0x92,0xb8,0x7d,0x2b,0x8b,0x38,0xbd,0xfe,0x7b,0xae,0x5c,0xee,0x47,0x9b,0x20,0xb7,0xf3,0xad,0x75,0xa9,0xe1,0x96,0xc8,0xb2,0x30,0xfe,0x0c,0x36,0xa2,0x02,0xf4,0x3b,0x30,0xfd,0x91,0xfa,0x5f,0xd6,0x18,0x1a,0xcb,0xd2,0x26,0xbb,0x67,0xbe,0x1c,0x99,0xa5,0x4f,0x57 +.byte 0x40,0xb5,0xed,0xd6,0x84,0xfd,0x6b,0x00,0xc8,0xe7,0x18,0x1a,0x9f,0xf7,0x3b,0xd1,0xcc,0x12,0xeb,0x9d,0x61,0xf0,0x8d,0x64,0x08,0x93,0x61,0xc4,0x3e,0xdb,0xda,0x15,0xb1,0xd6,0x2c,0x84,0x2a,0xd8,0xd2,0xa1,0x66,0x4e,0xc9,0xd6,0xbf,0x7e,0xb6,0x22,0xfa,0x35,0x5e,0xdc,0xc0,0x31,0x02,0xb8,0x17,0x46,0x9e,0x67,0xd3,0x6a,0x8f,0x33 +.byte 0x85,0xc3,0xfe,0x36,0xbc,0x6f,0x18,0x8a,0xef,0x47,0xf1,0xf2,0x6e,0x15,0x6c,0xb1,0x4a,0x4b,0x13,0x84,0xd5,0x1b,0xf9,0xa2,0x69,0xcd,0xc7,0x49,0xce,0x36,0x8e,0xe5,0xd5,0x35,0x05,0x7c,0x7f,0xc6,0x15,0x29,0x2e,0x64,0xa6,0x91,0x9d,0xe5,0x9d,0x90,0xe7,0x26,0xec,0x75,0x19,0x58,0x57,0xf2,0x19,0x7b,0x24,0x7d,0x19,0xd3,0x72,0x69 +.byte 0xaa,0xa2,0x8c,0xe3,0x3d,0x38,0xb9,0xf0,0x5b,0xe9,0x3b,0xaa,0x96,0xef,0x2c,0xfc,0xf5,0x13,0xa6,0xa9,0x57,0x8c,0xa9,0x3a,0xc1,0xf0,0x2d,0x57,0x06,0x08,0xe3,0x9c,0xfe,0x82,0x8a,0x6a,0x79,0x5b,0xef,0x2b,0x81,0x83,0x01,0x53,0xac,0xdc,0x79,0x93,0x9b,0x23,0xd4,0xae,0x17,0x6f,0x62,0xaa,0x33,0x41,0xa6,0x31,0x1c,0x7b,0x46,0x2b +.byte 0x17,0xd3,0x6f,0x66,0x73,0x54,0xee,0xa1,0x08,0xee,0x8f,0x0f,0x0e,0x53,0xa7,0x49,0x17,0xdb,0x35,0xaf,0x4e,0x94,0x87,0x8e,0xff,0xf4,0x2b,0x29,0x01,0x45,0xa3,0x0a,0xd9,0x13,0x38,0x09,0x46,0x2c,0x56,0x97,0xd7,0xee,0x24,0x43,0xd1,0x20,0xed,0x38,0xde,0x52,0x13,0x38,0x06,0xd3,0x97,0xc7,0x48,0x8b,0x72,0x0a,0xc5,0xca,0x75,0x2c +.byte 0x04,0x9e,0xee,0x14,0xe7,0xda,0x59,0xc2,0x54,0x7a,0x72,0x55,0x35,0x00,0x93,0xb7,0xb9,0x81,0x01,0x46,0xae,0x43,0x81,0x34,0xd7,0xb4,0x7a,0xfc,0xfc,0x98,0x2b,0x29,0xe5,0x5e,0x9d,0x8e,0xef,0xd4,0x44,0x9d,0x9a,0xbe,0xdb,0x83,0x33,0x18,0x9e,0xbd,0x0f,0x34,0x4d,0xd9,0x34,0xe0,0x2c,0x1f,0x10,0xaa,0x06,0x5e,0x54,0x51,0x72,0xec +.byte 0xbf,0x6b,0x3e,0xb9,0xdd,0x37,0xc3,0xe1,0xbe,0xbe,0x1d,0x86,0xde,0x12,0xca,0x82,0xc5,0xe5,0x47,0xf8,0xbe,0xef,0xb6,0x79,0xd5,0x3c,0x69,0x0a,0x35,0x3e,0xd3,0xf8,0xaf,0x5b,0x8e,0x69,0xff,0xb2,0xf7,0x91,0xc2,0x70,0x22,0x97,0x1c,0x5c,0x56,0x25,0x5a,0xcf,0x31,0x7a,0x37,0xce,0xc7,0xf2,0x98,0xdc,0xb5,0x58,0x71,0x5a,0x60,0xe2 +.byte 0xfe,0x4f,0xf3,0xe2,0x2a,0xca,0x22,0x3e,0x07,0xc2,0xea,0x23,0xc8,0x04,0x97,0x7f,0xca,0xf6,0xf8,0x12,0x06,0x88,0x81,0xee,0xb7,0xdd,0x56,0x9e,0x0f,0x36,0xd3,0x09,0xa8,0x74,0x4d,0x8b,0x8f,0x31,0x64,0xbe,0x9d,0x7b,0x68,0x50,0xc8,0x64,0x40,0x3b,0x0c,0x04,0xb9,0x4b,0x9e,0xff,0x7e,0x5d,0xd8,0x57,0xa0,0xe5,0x6d,0xc2,0x37,0xe7 +.byte 0xd1,0xd9,0x96,0xaa,0x16,0x3e,0xa2,0x9d,0x32,0xe7,0x1e,0x11,0x6e,0x41,0xe2,0xa0,0xe1,0x6f,0x32,0x6d,0xd5,0x38,0x0c,0x27,0x27,0xa9,0xc2,0x04,0xc6,0xe7,0x8d,0x7d,0x7b,0x30,0xbe,0x54,0x6b,0x82,0x37,0x39,0x53,0x54,0xc9,0xac,0xcb,0xd1,0x31,0x79,0xd4,0x7b,0x85,0x07,0xf4,0xf4,0x5d,0x33,0xc7,0x91,0x4e,0xe5,0x13,0x78,0x09,0x42 +.byte 0x29,0x48,0xaf,0x82,0xb1,0x88,0xd4,0xd3,0x57,0x50,0x38,0xa7,0x66,0x41,0x63,0x34,0x2a,0x3c,0x5e,0x8f,0xc4,0xc1,0x00,0xa1,0x22,0xbe,0x5e,0x64,0xb0,0x60,0x9b,0x42,0x9d,0xc6,0x59,0x5c,0xcc,0x29,0x6f,0x64,0x5b,0x5c,0x0f,0xb2,0xae,0x21,0x0c,0x9a,0x6a,0x19,0xb9,0xa6,0x32,0xf8,0xdc,0x82,0xea,0xba,0x27,0xcf,0x42,0xd3,0xde,0x78 +.byte 0xfe,0x9c,0xa5,0x36,0xb6,0x24,0xb6,0x0d,0x5b,0x67,0x6c,0xf5,0x16,0xbf,0x67,0x54,0x4f,0xe4,0x83,0x29,0x75,0x42,0x9a,0xbb,0xd5,0xe7,0x01,0x1f,0xbd,0x80,0x1a,0x7a,0xb6,0xe1,0x2b,0x5d,0x71,0x93,0x00,0xad,0xf6,0x11,0x8d,0x67,0xdc,0x9c,0x8f,0xf0,0x09,0x3f,0xf9,0xa4,0xd6,0xe0,0xdd,0x95,0xea,0xfb,0x71,0x76,0x21,0x31,0x6d,0x48 +.byte 0x0a,0x27,0xa8,0xa6,0x3a,0x7f,0x42,0x6b,0x7e,0xd7,0x6e,0xd5,0x42,0x97,0xad,0x55,0xae,0x26,0x3c,0xde,0x3f,0xaf,0xfd,0x1d,0x6d,0xd3,0xeb,0x84,0xad,0x6d,0xd1,0x4a,0x85,0x1a,0xf7,0x99,0xa4,0xd0,0x48,0xfb,0xf6,0xfe,0xc6,0xea,0x61,0x77,0xe2,0x56,0x87,0xc1,0x36,0x44,0xb4,0xe3,0xd7,0xd9,0x6d,0x3e,0x1b,0xf4,0x72,0x3e,0xfe,0xa5 +.byte 0x47,0xf8,0x3f,0x1a,0x6e,0x43,0xf5,0x67,0xfe,0x90,0x96,0x9b,0x52,0xde,0xab,0xfb,0x45,0x7d,0x93,0xea,0xc3,0x40,0xe1,0x5f,0xcd,0xad,0x3b,0xe9,0x4e,0x36,0xc5,0x38,0xf4,0x66,0xde,0x4b,0xc8,0x2a,0xc3,0xa2,0x3a,0x2a,0xf1,0xd1,0xe8,0x01,0x07,0x37,0xca,0x42,0xbf,0x4f,0xd8,0xc5,0x50,0x93,0x1a,0x01,0x1d,0x51,0x41,0x6e,0xbf,0x68 +.byte 0x93,0x2e,0xdc,0x41,0x23,0xf3,0x13,0xe7,0x09,0xfa,0x39,0x6d,0xee,0x41,0x49,0xbb,0x78,0x04,0xcf,0xc9,0xbb,0x11,0xaa,0x57,0xb5,0x3e,0x4c,0x3a,0x77,0xb7,0x0b,0x38,0x34,0x48,0xd0,0x99,0x20,0x55,0xcd,0x43,0x2f,0x68,0x66,0xb0,0xe6,0x75,0x41,0xe4,0xae,0xfd,0x96,0xe8,0x01,0x4c,0x0b,0x5c,0xbc,0x4f,0x45,0x70,0x08,0x9e,0xf7,0x68 +.byte 0x9e,0xbb,0xe5,0x39,0x20,0x3f,0xbe,0xd3,0xe3,0x95,0xba,0x98,0xd5,0x12,0x2e,0x87,0xd4,0xf4,0x12,0xa2,0xcb,0xd4,0x51,0x53,0x93,0x67,0x06,0xf1,0x21,0x0e,0x92,0x8f,0x9f,0x9e,0x6c,0x16,0xa4,0x2c,0x6d,0xb0,0xd0,0xe1,0x87,0x2f,0x09,0x2c,0x8f,0x4b,0x89,0x1f,0xab,0x66,0xf1,0xcd,0x6e,0x67,0xaf,0x07,0x99,0x18,0x1b,0xda,0xc8,0x65 +.byte 0x81,0xa3,0x37,0x8a,0xad,0xe4,0x1d,0xfd,0x82,0xa0,0xf1,0xe1,0x1e,0x8d,0x0b,0xf7,0x07,0x7c,0xb3,0x10,0xc8,0x5a,0xa9,0xcc,0xc8,0xd0,0x2e,0x5a,0x71,0x45,0x4c,0x30,0xf0,0x10,0xe0,0xf6,0x0d,0x0d,0x11,0xb4,0x83,0x40,0x75,0xee,0xb9,0x24,0x04,0xe3,0xba,0xb3,0xd3,0x00,0x57,0x71,0x98,0xf0,0x4b,0x35,0x8d,0xd8,0x71,0xa0,0xcc,0xaf +.byte 0x46,0x54,0x67,0x65,0x70,0x0b,0x9c,0x61,0xf8,0xd4,0xb2,0x35,0xfd,0xcf,0x2b,0x3a,0x48,0x5b,0x03,0x86,0xd8,0x13,0x48,0x8a,0x55,0xa5,0x4d,0xef,0x42,0x41,0xbb,0x6a,0x8c,0x92,0x46,0x87,0x82,0x09,0x43,0xf3,0x94,0x1d,0x23,0x36,0xfe,0x6f,0xb8,0x9f,0xfa,0xf9,0x92,0x27,0x3c,0xcc,0x47,0x89,0x5c,0x7f,0x81,0x42,0x74,0x12,0x14,0xff +.byte 0x98,0x63,0xc0,0xfb,0x70,0xff,0xc7,0x65,0x5a,0xc3,0xb9,0x74,0x1b,0x71,0x3c,0x2c,0x47,0x79,0x07,0xb9,0x3c,0xc2,0x5f,0x48,0x4f,0xbd,0xaf,0x03,0x05,0x57,0xa9,0x84,0x33,0xc8,0x0d,0xd5,0xac,0x42,0xdb,0x4b,0x57,0x46,0x41,0xf0,0xe4,0x08,0x0d,0xf3,0x43,0x41,0xa5,0x14,0xb7,0xcd,0x64,0x23,0xc9,0xfe,0xff,0x12,0x97,0xc6,0x2f,0x8d +.byte 0x9e,0xf2,0x1d,0x33,0x26,0x3c,0x57,0x17,0xe1,0x7b,0x92,0x3f,0xb6,0xf4,0xd9,0xf8,0xe0,0x37,0xe6,0x18,0x7d,0xa7,0x8a,0x1e,0xe8,0xd8,0x56,0xa6,0x63,0xdf,0xa3,0x99,0x16,0x74,0x48,0x01,0xaf,0x95,0x55,0x40,0xce,0xa8,0x0d,0x30,0x01,0x09,0x40,0xc9,0x9d,0x3d,0xdf,0x4e,0x00,0xe0,0x2a,0xe6,0xdb,0xa2,0x79,0x42,0x57,0xd0,0x3d,0x81 +.byte 0x7f,0x67,0x3a,0xa9,0x63,0xb3,0xd4,0x60,0xa7,0xab,0x54,0x46,0xb0,0xbe,0xb0,0x83,0x72,0xec,0x47,0x0f,0xc7,0xd1,0xed,0x16,0x96,0xbc,0xa5,0x62,0x38,0xdb,0x88,0x2b,0x25,0x26,0x27,0x56,0x7f,0x46,0x39,0xe8,0x4e,0xc0,0x6c,0x62,0xf8,0x80,0x68,0x56,0x8a,0x93,0x51,0x95,0x77,0xe3,0x11,0x7b,0xaf,0xc4,0xcf,0x34,0x5a,0xd5,0x26,0xfc +.byte 0xa2,0x18,0xb0,0xc0,0xa5,0x8b,0x25,0x70,0x40,0x70,0x29,0xc3,0xda,0x80,0x3d,0xe2,0x59,0x49,0x7f,0xdd,0x62,0x6e,0x5a,0xe6,0x27,0x73,0xce,0xb6,0x32,0x37,0x5f,0x73,0x12,0x2b,0x34,0x84,0xff,0x85,0xe3,0xb5,0x93,0x41,0x47,0xc5,0xf5,0x0e,0x21,0xfb,0x24,0x0f,0xdf,0x7b,0xb4,0x29,0x7f,0x67,0x2a,0x38,0x79,0xf0,0x54,0x8a,0x94,0x68 +.byte 0xe2,0x0b,0xb0,0xd4,0xb2,0xa4,0xe4,0xfb,0x3b,0xe6,0xe7,0x59,0x41,0xbd,0xed,0x62,0xce,0x50,0x1a,0x47,0x92,0x92,0x8d,0x80,0xa6,0x05,0x7a,0xb0,0xce,0x48,0x9c,0xb0,0x64,0xea,0xe0,0xa5,0x77,0xff,0xc1,0x82,0x99,0x7b,0xfb,0x74,0x53,0xfa,0x41,0x9a,0x2c,0xb4,0xbb,0xd2,0x26,0xa1,0x80,0x68,0x17,0xaa,0x8f,0x14,0x52,0xb6,0x5d,0xe0 +.byte 0x69,0x5b,0x31,0xc5,0xf5,0x32,0x0d,0xff,0xa4,0x7b,0x28,0x38,0x9b,0x61,0xfc,0xd0,0x92,0xb8,0x6e,0x23,0x8a,0xf3,0xc7,0x85,0x11,0xb8,0xd0,0x19,0xaf,0xca,0xa7,0xb4,0xcc,0xeb,0x5d,0xf6,0xa1,0x1c,0x56,0xdf,0x78,0x7a,0xe3,0x6a,0xa4,0x07,0x71,0xce,0xf1,0xb2,0xd5,0x38,0x3c,0xfa,0xf7,0x7a,0xbf,0x4b,0x43,0xa6,0xb3,0x4d,0xff,0x82 +.byte 0x96,0x46,0xb5,0xec,0xda,0xb4,0x5e,0x35,0x78,0xeb,0x4a,0x7e,0xc5,0x7b,0x05,0xd4,0xdd,0xf7,0xb7,0xf3,0xf0,0x04,0x26,0x7e,0x5e,0xc1,0x23,0xca,0x7f,0x14,0x27,0xac,0xda,0xe7,0xdb,0x31,0x05,0x9d,0xd4,0xda,0x20,0xc7,0x6d,0x9a,0x47,0x14,0x38,0xbd,0x7c,0xfe,0xbe,0x8d,0x42,0x7c,0xba,0x36,0xe2,0x2c,0x26,0xd2,0x46,0xa5,0x6b,0xbd +.byte 0x6a,0x75,0x6b,0x52,0x8c,0x10,0xc6,0x0e,0x76,0x60,0x46,0xcc,0x93,0x54,0xc4,0x6e,0xc7,0x70,0x5b,0xb4,0x81,0x51,0x56,0x03,0x22,0x33,0x21,0xe4,0x36,0xee,0x01,0xc3,0x0d,0x17,0x23,0x15,0xae,0x79,0xbc,0xe6,0x13,0x0f,0xfc,0x77,0xa2,0x06,0xed,0x76,0x4a,0xf7,0x2d,0x99,0xc8,0x5c,0xfd,0xac,0xd0,0x11,0xe8,0xfa,0x55,0x17,0x56,0x63 +.byte 0x3e,0xd5,0x23,0x71,0xf8,0xe9,0x1f,0x62,0x95,0xae,0x7c,0x2d,0xcd,0xb8,0x6e,0xb0,0xfe,0xf3,0xd0,0xba,0x72,0x8e,0xe3,0x95,0x82,0x00,0x85,0xdb,0x25,0xe4,0xf2,0xaa,0xbc,0x8d,0xb9,0x4d,0x69,0xa4,0xcd,0x39,0x52,0x9e,0x10,0xae,0x90,0xf0,0x74,0x2f,0xc6,0x5e,0x01,0x99,0x03,0xd5,0x88,0x59,0xfd,0x1b,0x80,0x56,0x0a,0x04,0x27,0xd9 +.byte 0x04,0x51,0xb0,0xb7,0x7a,0x65,0x79,0xa8,0xe2,0x6d,0x7f,0xb2,0xba,0x37,0x40,0xa0,0xbb,0xaf,0x15,0x46,0x23,0x5f,0x22,0xd0,0x2c,0x6c,0x7a,0x58,0x76,0x6f,0xb8,0x19,0xfe,0xb5,0x3d,0xf0,0x77,0x00,0x6b,0x4c,0x83,0x36,0x90,0xe6,0x57,0x29,0x6e,0x27,0x76,0xd4,0x7d,0x9a,0x6a,0xf1,0xf6,0x1b,0x1a,0x45,0xf5,0xf6,0x2d,0xb8,0x30,0x33 +.byte 0x65,0x51,0x37,0x26,0xbc,0xf7,0xb7,0xf9,0x56,0x05,0x6b,0xd4,0xd6,0x00,0x1d,0x13,0x15,0x45,0x24,0x0d,0x28,0x69,0xc6,0x50,0xe1,0x48,0x48,0x34,0x69,0x31,0x3c,0x58,0x71,0xd6,0x4a,0xd9,0xda,0x0d,0x28,0xbd,0xe9,0x5d,0x5d,0x8a,0x6e,0x71,0xc0,0x8b,0x7a,0xba,0x17,0x8e,0x82,0xcb,0xe9,0x95,0xc4,0x43,0x37,0xd0,0x58,0xed,0xec,0x77 +.byte 0x1e,0x22,0xf0,0xf0,0x7c,0x9d,0xeb,0x64,0x30,0x7b,0xb2,0x7b,0x86,0xdb,0xef,0x92,0x79,0xd9,0x9c,0x1c,0x1a,0xf6,0x98,0x26,0x18,0xa2,0x83,0x45,0x08,0xd4,0x1d,0x84,0xd4,0x28,0x6d,0x1f,0xb5,0x1f,0xab,0x97,0xc9,0x0d,0x1f,0x83,0x34,0x18,0xa3,0x20,0x63,0x60,0x6c,0xf3,0xd8,0xb2,0x0a,0xd9,0x35,0xa6,0xce,0x44,0x50,0xc6,0xf3,0x91 +.byte 0xe3,0x95,0x89,0x49,0x99,0x32,0x1d,0xf2,0x54,0x39,0x09,0xca,0xd1,0xc4,0x7f,0xa1,0x1d,0xce,0x94,0x67,0xf1,0x88,0x04,0x29,0xcb,0x5d,0xf7,0xfa,0xcd,0x69,0x16,0x17,0x05,0xc3,0x93,0x45,0xbf,0xd3,0x74,0x63,0xdc,0xe2,0x84,0xab,0x27,0x60,0x56,0x61,0x72,0x5d,0xdf,0xb4,0xa4,0x0f,0xb0,0x21,0x82,0x9b,0x73,0x0a,0x11,0x22,0x2d,0x65 +.byte 0xa2,0xff,0x29,0x8a,0x19,0x28,0x4f,0x4f,0xdd,0x64,0x0a,0x48,0x35,0x70,0x30,0x9f,0x41,0x4d,0x0c,0x7b,0xa6,0xcb,0x63,0x83,0xd1,0x79,0xfa,0x5f,0xc9,0x9b,0x6e,0x09,0x12,0x87,0xcd,0x1e,0x39,0xd6,0x40,0x08,0x0f,0xfd,0x79,0xc8,0xcb,0x77,0x8f,0x7a,0x52,0x42,0xc0,0xb2,0xc8,0xa0,0x2a,0xff,0xbc,0x60,0x13,0xbc,0x41,0x4a,0xc6,0x8b +.byte 0x08,0xb0,0x9f,0x75,0x87,0xa1,0x75,0x42,0x4b,0x3a,0xf7,0xf7,0x84,0x39,0xa5,0x88,0x25,0x2d,0x4f,0x73,0x4e,0x30,0x27,0x92,0xea,0x93,0x70,0x5c,0xb5,0xeb,0xb0,0x10,0xda,0x0f,0xaa,0xb3,0x3f,0xb5,0x55,0x64,0x65,0xae,0xb5,0xf8,0x0a,0xe4,0x9f,0x86,0x02,0x6f,0x63,0x8a,0x0b,0x6b,0x82,0x85,0x3c,0x6a,0xdf,0x68,0x4c,0x1e,0xe9,0x5c +.byte 0xd0,0x99,0xe5,0x0c,0xfc,0x63,0xfb,0xce,0x2d,0x63,0xd5,0x7d,0x8a,0x7d,0x14,0x22,0xbd,0x71,0x5e,0x79,0x3f,0x44,0x95,0xe5,0x6c,0x58,0x94,0x84,0x41,0x65,0x52,0x94,0x50,0xec,0xd3,0x2a,0x16,0x88,0xdb,0x71,0xb9,0xe4,0xb6,0xbf,0xc5,0x3c,0x48,0x37,0x62,0x32,0x79,0xbe,0x1d,0xdb,0xc9,0x79,0x37,0x40,0x65,0x20,0x62,0x45,0xb4,0xda +.byte 0x24,0xef,0x33,0xf1,0x05,0x49,0xef,0x36,0x17,0x17,0x0f,0xdc,0x65,0xb4,0xdc,0x57,0xc3,0xc6,0x82,0x57,0x08,0xf2,0x20,0x57,0x5c,0x25,0x0e,0x46,0x75,0xa7,0x4f,0x9e,0xa4,0x00,0xf7,0x79,0xb9,0x0a,0xef,0x4f,0x50,0x79,0xf8,0x59,0x01,0xf2,0x74,0x9f,0x16,0x27,0xa5,0xc1,0x32,0xcc,0x58,0xa7,0x40,0xa1,0xa1,0x26,0x80,0x00,0xb5,0x64 +.byte 0x0a,0xd8,0x53,0x1f,0x72,0xf7,0x60,0xf7,0x0a,0xaa,0xdf,0x31,0x95,0xff,0xfc,0xb4,0xca,0xbc,0xf8,0x2a,0x33,0x20,0x04,0x16,0x1a,0xe7,0xeb,0x22,0xd1,0x25,0xa6,0x03,0xc9,0x9e,0x9e,0xca,0x7a,0x46,0x7c,0xcb,0x8a,0x63,0x4a,0xf0,0x1b,0xd0,0x34,0xc3,0xbb,0x89,0xcf,0x16,0x38,0xcb,0xe0,0xce,0xd5,0x0b,0xfd,0x4e,0xbc,0xce,0xba,0x28 +.byte 0x68,0x00,0x2a,0x31,0x52,0xe6,0xaf,0x81,0x3c,0x12,0x09,0x2f,0x11,0x0d,0x96,0xc7,0x07,0x42,0xd6,0xa4,0x2e,0xc1,0xa5,0x82,0xa5,0xbe,0xb3,0x67,0x7a,0x38,0xf0,0x5e,0xd8,0xff,0x09,0xf6,0xab,0x6b,0x5d,0xec,0x2b,0x9f,0xf4,0xe6,0xcc,0x9b,0x71,0x72,0xd1,0xcf,0x29,0x10,0xe6,0xe3,0x27,0x1c,0x41,0xc8,0x21,0xdf,0x55,0x27,0xa6,0x73 +.byte 0xb7,0x45,0xa1,0x09,0x66,0x2f,0x08,0x26,0xf1,0x50,0xe0,0xec,0x9d,0xf2,0x08,0xf3,0x49,0x56,0x50,0xe0,0xba,0x73,0x3a,0x93,0xf5,0xab,0x64,0xb6,0x50,0xf4,0xfa,0xce,0x8d,0x79,0x0b,0xad,0x73,0xf2,0x8c,0x1e,0xe4,0xdd,0x24,0x38,0x1a,0xde,0x77,0x99,0xb8,0x92,0xca,0xc0,0xc0,0xbc,0x3d,0x01,0x6f,0x93,0x3a,0x6e,0xc5,0x28,0x6e,0x24 +.byte 0x9c,0xf9,0xd9,0xcb,0x4b,0xbe,0x9e,0xda,0x0d,0x10,0xfb,0x9d,0x15,0xfe,0x28,0xdc,0xd9,0x09,0x72,0xd3,0x9f,0x6d,0x77,0x14,0x84,0x86,0x56,0x10,0xdc,0x8e,0x6a,0xa7,0x62,0xf0,0x0b,0x65,0x2c,0xa2,0xd1,0x7f,0xae,0x32,0xfa,0x9b,0x46,0x0f,0x12,0x08,0x22,0x8c,0x87,0x15,0x4b,0xc4,0x6d,0x85,0xfb,0x69,0xfe,0xce,0xfb,0xb4,0x3e,0x7b +.byte 0xcf,0x88,0xa7,0x97,0x52,0x56,0xd0,0x9f,0xb4,0x33,0xf9,0x08,0xd2,0x28,0x46,0x5e,0xc4,0xec,0x22,0xc6,0x1e,0x7b,0x34,0x99,0x0c,0x5b,0x04,0x19,0xe2,0xca,0x09,0x11,0x50,0x45,0xcc,0xb2,0x90,0x25,0x51,0x68,0xc9,0x20,0x6c,0x99,0x2e,0xdb,0x5b,0x07,0x91,0xb2,0x69,0xbf,0x3c,0x05,0x50,0xfb,0x21,0x33,0x4f,0x6e,0x18,0x19,0xd5,0xff +.byte 0xce,0x9d,0xb5,0x7f,0xd4,0xd5,0x8f,0x41,0x26,0x1f,0xa1,0x4c,0x34,0xd3,0x98,0x08,0x5d,0xb5,0x56,0xa7,0x04,0x63,0x76,0x7d,0xae,0xee,0xea,0xbf,0x69,0x8d,0xff,0xa1,0x62,0x86,0x19,0x7b,0xe5,0x08,0x7a,0xe5,0x9e,0xe5,0x44,0xca,0x24,0xde,0x00,0x43,0xc7,0xcd,0xc8,0x5b,0x21,0x00,0xb9,0x56,0x3f,0xba,0xef,0xcd,0xc4,0xe0,0xd7,0x90 +.byte 0xa7,0xe1,0xf9,0x83,0x2c,0x1d,0x8d,0xc3,0x1b,0xa2,0xab,0xcd,0x7d,0xbc,0xd1,0x2b,0xf8,0x30,0x9e,0xb6,0x95,0xe0,0xd1,0xe6,0x81,0x89,0xa7,0xda,0xf0,0x54,0xc1,0xcb,0x3a,0x85,0x85,0xb5,0x03,0xb4,0x8c,0x7d,0x98,0x16,0xa8,0x83,0x29,0xbb,0x1c,0x1d,0xe1,0x7e,0x0e,0xb5,0x04,0xba,0xbf,0x89,0x30,0x3c,0x44,0xa2,0xc5,0xbf,0xf1,0x70 +.byte 0xdb,0xf3,0x13,0xf4,0x44,0xac,0x63,0xc4,0x9c,0x93,0xa9,0x13,0x1b,0xf1,0xcc,0x16,0x66,0xdf,0x56,0x10,0x88,0x0c,0x76,0xab,0x43,0xcb,0x75,0xf8,0x4f,0x04,0x26,0x95,0x4c,0x6d,0x55,0xc8,0xbd,0xf8,0x94,0x0f,0xca,0x29,0x2b,0xcd,0xce,0x05,0x1e,0xea,0xae,0x02,0x01,0x8b,0x60,0x6a,0x6a,0x03,0x14,0xe5,0xa7,0xdf,0x9e,0x9f,0x94,0x92 +.byte 0x41,0x2c,0xf0,0x1a,0xa7,0xc2,0xc1,0xfc,0x11,0xf3,0x00,0xe1,0xfc,0x7a,0x97,0xc0,0xe1,0x81,0x90,0x3f,0xea,0x1e,0x7f,0xf8,0xb0,0xd8,0x4c,0x2d,0xdc,0x83,0xfa,0x27,0x8b,0xf2,0xef,0x3b,0x3a,0x44,0xdc,0xa5,0xa9,0xd5,0x24,0x5f,0xb1,0xdd,0x1d,0x3f,0x03,0x76,0x3b,0x92,0x0d,0xb4,0x84,0xa4,0x5b,0xef,0x9f,0x89,0x9d,0xef,0xff,0xcf +.byte 0xc2,0x28,0x3b,0x9d,0xd2,0x28,0x75,0x3e,0xdc,0x14,0x79,0x7c,0x0c,0xaa,0x6c,0xf2,0x05,0x9d,0x27,0x01,0x15,0x19,0x60,0x48,0x5a,0x7d,0x04,0x27,0x2d,0x82,0x92,0x3e,0x0b,0x62,0xd7,0x5a,0xfb,0x72,0xfb,0xdd,0x43,0xfa,0xf4,0x6f,0x16,0xd2,0x8f,0x8f,0x21,0xdc,0x81,0x48,0x7a,0xe8,0x39,0xd5,0xdf,0x54,0x0f,0xe1,0xbe,0x65,0xc9,0x49 +.byte 0x98,0xb1,0xff,0x8d,0x52,0x31,0x6a,0xcd,0x5e,0x83,0x17,0x41,0x93,0xcd,0x23,0x76,0x18,0xe9,0x82,0x71,0x15,0xb7,0xd8,0xde,0x0d,0x57,0x8b,0x90,0xe6,0xf4,0x57,0xc1,0xfd,0x3d,0x0d,0x6a,0xae,0xd1,0xd6,0x02,0x3e,0xb9,0x82,0xb2,0x82,0x80,0x48,0xa4,0x14,0x29,0x80,0x55,0x1d,0xaf,0x3e,0xf8,0x7e,0x36,0x5f,0x77,0x4c,0x73,0x6c,0x35 +.byte 0xd2,0x7c,0x36,0xca,0x2f,0xec,0x1e,0x3f,0x74,0xee,0xa5,0xe7,0x7d,0xce,0x81,0xf1,0xd5,0xc1,0xb3,0xaf,0x90,0x2c,0xc6,0x5b,0x81,0x37,0x85,0x98,0x78,0x3c,0x4f,0x2a,0x55,0xea,0x06,0x30,0x77,0x73,0x97,0x39,0x75,0xcf,0x4a,0x9b,0x55,0xb8,0x64,0x5c,0x86,0xfd,0x26,0x3e,0x8d,0x68,0xd2,0x70,0xe8,0xd7,0x99,0x57,0x6f,0x96,0x47,0x6d +.byte 0xa7,0x1a,0x0e,0x85,0xcd,0x00,0xa5,0x3e,0x11,0xec,0x76,0xd2,0x47,0x26,0x71,0xda,0x5c,0xf4,0xb1,0xd5,0x23,0xe1,0x62,0x71,0x43,0x30,0xa7,0x95,0xf6,0xc1,0xcf,0x8a,0x1b,0x75,0x53,0x39,0x6d,0x9d,0x18,0x7c,0xe3,0x48,0x27,0x33,0x1c,0x38,0x45,0xdf,0x75,0x22,0x05,0x6d,0x81,0x5d,0xfc,0xeb,0x0e,0x05,0x26,0x45,0x81,0x9f,0xce,0x0f +.byte 0xc9,0xdd,0x95,0x11,0x04,0x47,0x40,0xa4,0x07,0x3b,0x52,0x92,0xe0,0x91,0xdb,0xdd,0x3c,0x9f,0xd3,0xa1,0xb7,0xf9,0xeb,0xd6,0x6d,0x64,0x88,0xe9,0xf5,0x4e,0x98,0x8e,0x7b,0xd3,0xec,0xc0,0x22,0xe0,0xf2,0x14,0xf2,0x20,0xa2,0xa3,0xb3,0x0d,0x75,0x1a,0xbb,0xde,0x4a,0x41,0x04,0x43,0x0d,0xd9,0xd0,0x1d,0x73,0xc8,0x67,0x8e,0x58,0xe5 +.byte 0x4b,0x28,0x4d,0x8f,0x2f,0xab,0x1a,0x4a,0xfc,0x7c,0xd1,0x27,0x3e,0x4a,0x10,0x6a,0x5f,0x55,0x3a,0xf7,0x63,0x14,0xe9,0xad,0xb4,0x95,0xef,0x3d,0x5c,0xc3,0x7d,0xe4,0xb7,0x15,0xd7,0x0b,0x68,0xf0,0x23,0xa8,0xd4,0x8e,0x27,0xf6,0x55,0x11,0xbc,0xc0,0xff,0x3e,0x2c,0x24,0x59,0xb7,0xb7,0xb5,0x0b,0xd2,0x99,0xa5,0xd5,0xe2,0x24,0x33 +.byte 0x21,0xb8,0x96,0x48,0x18,0x94,0xb5,0xb2,0x50,0x5e,0x04,0x24,0x86,0x17,0x62,0x1e,0xc9,0xf8,0x22,0x6a,0xd0,0xec,0xc5,0xbc,0x90,0xf7,0x55,0xcf,0x3f,0x4c,0x7c,0xf7,0x51,0x19,0x95,0xa4,0x81,0x38,0x0c,0xa5,0x58,0x22,0xf3,0x10,0x05,0x05,0x44,0xbf,0x7e,0x2a,0xbd,0x5f,0x79,0x56,0x08,0xd5,0x68,0xea,0x85,0xa1,0xeb,0x0b,0xe1,0xd4 +.byte 0xfd,0x3a,0x38,0xd2,0x5a,0x49,0x17,0x9a,0x58,0x8f,0x52,0xf5,0xf4,0x7b,0x1f,0x58,0xa8,0xc0,0x1c,0x46,0x38,0xa6,0xe4,0x7d,0xcc,0x88,0x97,0x10,0x2b,0x5e,0x61,0xf5,0x73,0x7d,0x79,0x1b,0x53,0xf1,0xac,0xb4,0x3f,0xbd,0x9d,0xb6,0xc2,0x57,0xd5,0x84,0x4d,0x60,0xd6,0x45,0x56,0xa1,0x36,0x28,0xf5,0x74,0xc6,0x29,0xd7,0xc9,0x63,0x5e +.byte 0x7c,0x97,0x46,0xde,0x56,0x3f,0xd8,0x8e,0x75,0x29,0x87,0xe7,0xd1,0x24,0x78,0x26,0xdc,0x17,0x97,0xc9,0xf0,0x8e,0x95,0xbc,0xe5,0xfe,0xe3,0x3a,0x75,0x70,0x52,0xa9,0x31,0x97,0x79,0x3a,0xc2,0x53,0x6a,0x73,0xe2,0x76,0xf8,0x85,0xe6,0x0d,0x85,0x9b,0xfc,0x72,0x08,0x2a,0xa5,0x8e,0x42,0xb2,0x7c,0x8d,0x8b,0x28,0x4b,0xf5,0xcb,0x66 +.byte 0x80,0x46,0xb3,0x87,0xdf,0x38,0xa7,0x08,0xc8,0xea,0x85,0x0e,0x6f,0x13,0xe0,0x57,0x99,0xc6,0xb8,0xed,0x9c,0xb0,0xa9,0x89,0xd7,0xc5,0xa9,0x71,0xfd,0x8a,0x21,0xb1,0xec,0xc8,0x65,0x78,0x72,0xc6,0x77,0x69,0xd4,0x0b,0x47,0x4d,0x79,0x93,0xcf,0x2a,0x34,0xf1,0x1b,0x0e,0x6f,0x0d,0xd1,0xbb,0xe7,0xd7,0xb5,0x6f,0x57,0x01,0xd4,0xcd +.byte 0x56,0xbe,0xf0,0xd9,0xe2,0x8e,0x0e,0xb8,0x3d,0xdb,0xf6,0x97,0x39,0x0b,0x3e,0xe2,0xb2,0xa3,0x93,0x0b,0x74,0xe5,0x6a,0x21,0x04,0x29,0x5a,0x3e,0x07,0x9c,0x11,0x4e,0xfe,0x01,0x6e,0x96,0x1e,0x8f,0xe0,0xfe,0x24,0x24,0x7e,0x04,0x2f,0x65,0xf4,0xe2,0x1f,0x36,0x56,0x43,0x3a,0x6c,0xeb,0xd7,0x20,0x13,0x71,0x45,0x6a,0xe8,0xc6,0xfa +.byte 0xba,0x26,0x6f,0x7d,0x9a,0x62,0x76,0x34,0x7d,0xed,0x47,0x71,0xd1,0x0e,0x5b,0x04,0x39,0xd6,0xc0,0xe5,0xa5,0xd8,0xf5,0x73,0xf9,0xf4,0xc2,0x2a,0x54,0x25,0x67,0xdf,0x83,0xa3,0xcd,0xfd,0x1e,0x46,0x87,0x06,0x17,0x6d,0x78,0x8e,0x0c,0x7b,0x08,0x06,0x1b,0xd9,0x5d,0x3d,0x03,0x40,0xbc,0xe7,0x02,0xc4,0xe0,0xe0,0x49,0xb2,0x6c,0x6f +.byte 0x97,0x76,0x0f,0xc7,0x14,0xd8,0x7c,0xc0,0xad,0x8a,0xbb,0xbc,0x2a,0x7e,0x68,0x46,0xcd,0xa7,0x26,0x16,0x77,0x1b,0x89,0x38,0xd8,0x2a,0x69,0x43,0xc4,0xaa,0x0d,0xf6,0xd1,0x65,0xda,0x41,0x75,0x77,0xcd,0xf7,0xd2,0x38,0x9c,0xdb,0x81,0x17,0x27,0x2f,0xba,0x2e,0xa5,0xb5,0xbe,0x05,0xe8,0xdd,0x5f,0xa9,0xad,0xbe,0xb2,0x0e,0x0b,0x69 +.byte 0xb6,0x8d,0xd2,0xf2,0xde,0x76,0x32,0x26,0xd9,0x06,0x1d,0x42,0x26,0x8c,0xf7,0xca,0x4c,0xe1,0x59,0x82,0x6c,0xea,0x96,0x70,0x39,0xb8,0x0d,0xf3,0x67,0x9d,0x5e,0x94,0x99,0x77,0xf2,0x0a,0x9a,0xde,0xa5,0xd2,0xe1,0xaa,0x91,0x85,0xc7,0x0f,0x92,0x35,0x04,0xd3,0x7a,0x13,0xfa,0xf2,0x86,0x5a,0x38,0xd1,0x7f,0x10,0xd8,0x30,0x0e,0x33 +.byte 0xe3,0xa0,0x8a,0xad,0x4f,0x6c,0x24,0xdd,0x9d,0x1c,0x4e,0xff,0x4c,0xfc,0x74,0x01,0xab,0x08,0x6c,0xe6,0x4c,0x78,0x75,0xc9,0x67,0x83,0x1f,0x75,0x22,0xb0,0x7c,0x44,0xa0,0xa1,0xee,0x4e,0xf6,0x3e,0xd3,0x35,0x70,0xbe,0x36,0x1e,0x90,0xa6,0xaa,0x64,0x67,0x7f,0x52,0x84,0xd9,0x27,0xab,0x37,0x30,0x68,0x46,0xcc,0x0e,0x57,0x58,0x6f +.byte 0xdb,0xb2,0x5f,0x24,0xf7,0xeb,0x97,0xea,0x64,0xec,0x6c,0x1e,0xe1,0xc4,0x72,0xfb,0x00,0xa7,0x62,0xa0,0x59,0xb9,0x17,0x8a,0x33,0x32,0x59,0xb8,0xbe,0x84,0xd4,0x62,0xb7,0xf6,0x35,0xd4,0xf1,0x1c,0xdb,0x7e,0xa6,0xbc,0x2c,0x54,0x3c,0xf5,0x63,0x4a,0x22,0x26,0x58,0xa0,0x35,0x98,0xa7,0x32,0xb2,0xa0,0x2b,0xd5,0xfa,0x2f,0x9b,0xb4 +.byte 0xea,0xd6,0x58,0x61,0xb2,0x24,0x45,0x46,0x1e,0xac,0x79,0xa4,0xf7,0xc1,0x13,0x2f,0xf5,0x6b,0xfa,0x70,0x50,0x2b,0x83,0xee,0x7c,0xc1,0x55,0x27,0x7b,0x4f,0xa6,0x0a,0x72,0x26,0x82,0xcd,0x4d,0xe2,0xe8,0x45,0xe6,0xd7,0x39,0x7e,0xed,0x35,0xdf,0x9e,0xb1,0x41,0x55,0xa2,0x5d,0x68,0x4b,0x0b,0xd1,0x73,0x5a,0x2b,0x81,0x35,0x28,0xfc +.byte 0x64,0x08,0xd7,0xc4,0x9f,0x30,0x77,0x3d,0x9d,0x80,0x15,0x67,0x9a,0x84,0xe4,0x34,0xea,0x8c,0xf7,0x73,0x9e,0x33,0xb4,0x09,0x33,0xbd,0xd8,0x82,0x43,0x7d,0xc5,0x1f,0x0e,0x7b,0xa0,0x53,0x59,0x20,0x12,0x57,0xed,0xda,0xc7,0x19,0x8e,0x62,0xe4,0x09,0xc1,0x4b,0x20,0x32,0x9e,0x18,0x11,0x1c,0x42,0x49,0x62,0x76,0xa8,0x83,0x72,0x11 +.byte 0x45,0xe7,0xb5,0x60,0xa7,0xc0,0x07,0xbd,0xb4,0x7c,0xc6,0x5c,0x03,0x34,0xa3,0x85,0x47,0x24,0x75,0xd2,0xab,0x46,0xbb,0xc7,0x0d,0xcd,0x40,0xe2,0x5e,0x5b,0xa7,0x98,0x67,0xe4,0xe2,0x02,0xe9,0xdc,0xd7,0xc2,0xaf,0x90,0x43,0x94,0xfe,0xf3,0x53,0xc1,0x10,0x28,0xa7,0x90,0xba,0x73,0x57,0x0c,0x4d,0x6d,0xbd,0xda,0x81,0xd5,0x90,0xce +.byte 0x02,0x40,0xb3,0xf0,0xec,0x50,0x82,0xc9,0xfb,0xf1,0x22,0x6d,0xc8,0xd2,0x7b,0xed,0x0b,0x43,0x7e,0x0b,0x60,0x9b,0x69,0x9e,0x58,0x26,0xc3,0x9f,0x6b,0xd0,0x31,0xeb,0xb7,0x0a,0xf3,0x9a,0x9a,0xf5,0x72,0xcf,0x29,0xc8,0x19,0x08,0x4d,0x67,0xd5,0xa1,0x8f,0x68,0x0e,0xee,0x59,0x14,0xf8,0x86,0xc0,0x08,0x5a,0x56,0xfe,0x6a,0xb7,0xac +.byte 0x78,0x8d,0x77,0x39,0x5e,0xb1,0x01,0x4d,0x31,0x81,0x56,0xdc,0x5b,0x10,0xda,0x4d,0xd2,0xfd,0xfc,0xa3,0xe3,0xaa,0x46,0x29,0x1a,0xea,0x9c,0x47,0x1b,0xd0,0xa6,0x84,0x1f,0x71,0x1a,0xd3,0x35,0x59,0x7f,0xef,0xf7,0x81,0x39,0x7a,0x9f,0x4a,0x01,0x4d,0x46,0xcf,0xa4,0x6a,0x9c,0x7e,0x07,0x8b,0x98,0x17,0x49,0x5c,0x46,0xac,0xc8,0xfd +.byte 0x1c,0xaf,0x91,0x30,0x0c,0x36,0x63,0xef,0x69,0xd3,0x47,0xf4,0x76,0xc1,0xf7,0x40,0x03,0x98,0x9e,0xcb,0x61,0x65,0x46,0x45,0x1c,0x1b,0xfd,0x13,0x36,0xe9,0x19,0xbf,0x2b,0x59,0x51,0xe8,0x04,0x44,0xe3,0xc2,0x4b,0x66,0x78,0x69,0x66,0xa3,0x1a,0xe5,0x2a,0xad,0xf8,0xc5,0x0f,0xb7,0x3e,0xe8,0xab,0xe0,0xe4,0xd9,0xc2,0xb8,0x61,0x5b +.byte 0xef,0x6b,0x4d,0x5f,0xb8,0xdc,0x06,0xa5,0xce,0x08,0x5b,0x1f,0xf4,0x29,0x4d,0x0a,0x3e,0xb3,0x60,0xf4,0x63,0x3c,0x70,0x5d,0x02,0x9c,0x55,0x5e,0x5e,0xd1,0x9b,0xed,0x20,0x75,0x54,0xa1,0x8e,0xae,0xce,0x5a,0xb2,0x2d,0xe4,0xc3,0x9b,0x7d,0x72,0xce,0x7c,0x0c,0xa9,0x99,0xa4,0x12,0xaa,0x31,0xe9,0x61,0x47,0x8a,0x41,0x93,0xd5,0x69 +.byte 0xc5,0xf3,0x9f,0xf4,0x97,0x69,0x64,0x6f,0xf9,0x5b,0xbf,0x58,0xf6,0x3b,0x3e,0xd6,0x93,0x94,0x89,0xcc,0xc0,0x25,0x7d,0xf8,0x40,0x9e,0xb2,0xc8,0x75,0x9d,0x4d,0xf0,0x5f,0xa5,0x3d,0x38,0x67,0xea,0x8d,0x1b,0x60,0x5e,0xfe,0xa8,0x26,0xb9,0xed,0xc0,0xe9,0xc8,0xec,0xb1,0x77,0x0f,0xf2,0xaa,0x77,0x2a,0xcd,0xa8,0x70,0xb7,0xda,0x60 +.byte 0x49,0xb3,0x01,0x95,0xc8,0xac,0x71,0x6a,0xd0,0x49,0x67,0x2a,0x04,0xfc,0x55,0x38,0x08,0x37,0xd9,0x21,0x37,0xce,0x41,0xaf,0x7c,0x33,0xdd,0xcd,0xe0,0x92,0x27,0x38,0x63,0x77,0xea,0x86,0x04,0x99,0x4e,0x61,0x8b,0x8f,0xfe,0x4e,0xc1,0x16,0x6c,0x89,0xac,0x1f,0x0b,0x67,0x75,0x49,0xf4,0xdb,0x6d,0xd3,0xb8,0x1d,0x9c,0xb2,0xe6,0x98 +.byte 0x81,0xae,0x3f,0xe0,0xdd,0xda,0xfa,0x4c,0x8b,0x30,0x18,0x88,0xa1,0x1d,0xa1,0x18,0xb8,0x28,0xc2,0x04,0x6a,0x80,0x02,0x5a,0xe6,0x04,0x85,0xfa,0x54,0x38,0x45,0x64,0xe1,0x50,0x4a,0x38,0x4c,0x85,0xf7,0x00,0x0c,0xd3,0x16,0xcb,0xfa,0x38,0xb4,0x1b,0x6a,0x95,0x3d,0xc3,0x24,0x79,0x0e,0x3e,0x81,0xe6,0xc3,0xd9,0xdb,0x05,0x19,0x7c +.byte 0xb4,0x4d,0xef,0x71,0x22,0x53,0x97,0x8a,0xc9,0xe3,0x69,0x20,0x5b,0x83,0xb1,0x44,0xd7,0xd1,0x1e,0x87,0xa7,0xbf,0xe4,0x84,0x68,0x9c,0x77,0xfe,0x83,0xdb,0x7a,0x53,0xa8,0x53,0x1f,0xc7,0xd1,0x6a,0x26,0x87,0x71,0x06,0x23,0xa7,0xe0,0x18,0x5d,0xfa,0x8c,0xa7,0x24,0xee,0xf6,0x74,0xab,0x17,0xd3,0x46,0x33,0xe9,0xc3,0xcd,0xa6,0xaf +.byte 0xcf,0xa1,0x60,0x75,0x7b,0x77,0xc3,0x58,0xa2,0xe8,0x87,0x7b,0x4b,0x57,0xb1,0x96,0xc1,0x91,0x6d,0xbf,0x71,0xb3,0xbf,0xe2,0x62,0x86,0x72,0xa9,0x01,0x64,0x62,0x32,0x33,0xc8,0xa4,0x26,0x7d,0xfa,0x0d,0xd4,0xd8,0xc3,0xaa,0xc0,0xc8,0x7c,0x51,0xe8,0x10,0x08,0x6f,0xf6,0xc1,0x46,0x89,0xc4,0xd2,0x00,0x1d,0x14,0x05,0x89,0x64,0x52 +.byte 0xcd,0x1f,0x97,0x0b,0x1d,0x94,0xbe,0x9d,0xa0,0x6b,0x03,0x9b,0x83,0x87,0x38,0x0f,0x65,0xdd,0x6a,0xaf,0xf1,0x22,0x74,0x7e,0x11,0xa0,0xdf,0x1e,0x95,0xef,0x1a,0xdc,0x8b,0x29,0x4a,0xbe,0xfd,0x2f,0xc7,0x48,0x94,0x3f,0xb9,0x8c,0x8e,0xe1,0x0c,0x54,0xa6,0x2f,0xa5,0x2b,0x71,0xdd,0x16,0x68,0x91,0x35,0xd0,0x22,0x48,0x1f,0xf2,0xe2 +.byte 0xe8,0x57,0x83,0xd7,0x49,0x43,0xfd,0xf9,0x77,0xb5,0xfa,0x70,0x19,0xeb,0xae,0xf6,0x31,0xfe,0xd6,0x81,0x6c,0xcc,0x14,0x28,0xa6,0x9f,0x74,0x56,0xc5,0xf6,0x51,0xba,0xc8,0xbd,0x32,0x80,0x5f,0xdb,0x28,0x3f,0x4a,0x55,0x01,0xe1,0x39,0xf5,0x9c,0xda,0xb3,0x42,0xee,0x43,0x17,0xc3,0xc7,0xf5,0xd1,0xda,0xd2,0x2e,0x56,0xcf,0x77,0x0e +.byte 0xdd,0x72,0xcf,0xe5,0xab,0xfb,0xd6,0xa2,0x6c,0x03,0xa6,0x77,0x25,0xf8,0x2a,0x8c,0xfa,0x6f,0x45,0x79,0x59,0x84,0x92,0xd1,0x00,0x58,0xc7,0xb8,0x95,0x4d,0xc8,0x49,0xad,0xe0,0x1e,0x64,0x47,0x00,0xfb,0x93,0x7f,0x3e,0xf1,0x65,0x70,0x47,0x64,0xbb,0x36,0x63,0xe3,0x09,0xcb,0xdb,0x5a,0xd1,0x72,0x83,0xfd,0x15,0x91,0xa2,0x03,0x81 +.byte 0x04,0x98,0x45,0x0f,0x7f,0x23,0x48,0x6c,0xb1,0x2d,0xd0,0x2c,0x61,0x52,0x1b,0x4a,0x52,0x08,0x92,0xe1,0x7a,0xf1,0x8c,0x1f,0x1f,0xdf,0x1c,0xfd,0xd9,0x46,0x99,0x71,0x05,0x58,0x71,0x82,0x5c,0x05,0xa0,0xb2,0x6a,0x50,0xd2,0x6e,0x35,0xf4,0x6c,0xfb,0x50,0x99,0xb3,0xc1,0x2b,0x05,0xaf,0x02,0xe5,0x18,0xfa,0x74,0x09,0xcc,0xa5,0x2c +.byte 0x26,0xfd,0xc5,0xe7,0x2c,0x96,0x0f,0xa4,0x7c,0x88,0xc6,0x7f,0xf9,0x74,0x9d,0x1c,0xe5,0xd2,0x27,0xf0,0xae,0x5b,0x4c,0xbf,0x0a,0x99,0x2e,0xaa,0x54,0xba,0x0d,0x75,0xd9,0x48,0x76,0xf3,0xe9,0xd9,0x01,0xbe,0xaa,0x97,0x09,0xfe,0xb2,0x4a,0xcb,0x55,0xd0,0xe1,0x58,0xec,0x31,0x0c,0xd9,0xdf,0xd9,0x01,0xf9,0x3c,0x28,0x40,0x91,0xbb +.byte 0x4d,0x2d,0x88,0x60,0x31,0xc7,0xc9,0x1d,0xaf,0x22,0x44,0x21,0x05,0x06,0xdd,0x07,0x60,0x29,0x7d,0x49,0x30,0x9d,0x35,0x1d,0x9f,0x37,0xbd,0x32,0xb2,0x21,0xa6,0x4f,0x89,0xd8,0xe6,0x85,0x44,0xcf,0x13,0x12,0x4f,0x5f,0x50,0x71,0x01,0x39,0xff,0x6e,0xa0,0x07,0xff,0xf0,0xa6,0x3b,0x39,0x59,0x17,0xae,0x93,0xb2,0x86,0xcc,0xe5,0x59 +.byte 0x5a,0xf2,0x82,0x62,0xc6,0x8d,0x13,0x2f,0x6b,0x92,0x28,0xbe,0xd1,0xc0,0xf6,0xc9,0xe1,0xd6,0x98,0x94,0x65,0xd4,0x2a,0xdb,0x37,0xb1,0xd3,0x83,0xf2,0xaa,0xa5,0x00,0xf9,0x08,0xe6,0x22,0x38,0x30,0xb6,0x49,0x8d,0x9d,0x1c,0xa4,0xf7,0xdb,0x3c,0x6f,0x75,0x08,0xa0,0xda,0xe9,0xc0,0x01,0x54,0x09,0x68,0xc6,0x7c,0x5b,0x4d,0x88,0x71 +.byte 0xa7,0x2f,0xb3,0x50,0x18,0x4a,0xfb,0x55,0x29,0xf2,0x56,0x1d,0x4c,0x12,0x22,0x1c,0x54,0xd2,0x63,0x67,0xfa,0xe9,0x5b,0x74,0x3b,0x38,0xf6,0xa0,0x85,0x63,0x1c,0x41,0x6a,0x6d,0x71,0x1d,0xb1,0x39,0x28,0x88,0x96,0x9b,0x9c,0x50,0x9e,0x57,0x4e,0xf5,0xa7,0xf4,0x17,0xc6,0xca,0x42,0x84,0x83,0xca,0xa4,0x28,0x72,0x08,0x74,0x62,0xe1 +.byte 0xf0,0x73,0xc5,0x86,0x6c,0x76,0x9d,0xd3,0xa6,0xb8,0x5d,0x73,0x1b,0x02,0xe2,0x69,0x8b,0x59,0xd6,0x6a,0x53,0xe9,0x13,0x88,0x41,0x95,0xe9,0x97,0x5f,0x07,0x62,0xa5,0x21,0x97,0x7e,0x5e,0xc2,0x2c,0xc7,0xaf,0x0a,0xdb,0x9e,0x4f,0x44,0x4b,0xd6,0x3d,0xc0,0x24,0x38,0x50,0x47,0x98,0xa3,0xfc,0xda,0xfc,0xae,0x0e,0x2b,0x9b,0x53,0x0f +.byte 0x6b,0xb1,0x2f,0xd5,0xd7,0x68,0xc9,0xab,0xb9,0xff,0x7f,0x54,0xd6,0x2f,0x88,0xbc,0x5e,0x6a,0x22,0x49,0x0f,0x98,0xbe,0x1f,0xef,0x3e,0xcc,0xa2,0x72,0x6b,0x16,0xbe,0xe8,0x5f,0x0e,0x36,0xa2,0x68,0xe0,0x65,0xd9,0x7c,0xdc,0x8c,0x6a,0x66,0xf0,0x6a,0xfc,0x2b,0x85,0x28,0x2a,0x1a,0xfc,0x92,0x64,0x3d,0x38,0x5b,0xc1,0x0c,0x68,0x45 +.byte 0x94,0x85,0x58,0x82,0x99,0xfc,0x20,0xdd,0x62,0xae,0xed,0x35,0x7c,0x02,0x16,0x9b,0x00,0x8a,0x44,0x02,0x80,0x00,0xca,0x7d,0x95,0x03,0x5d,0xa6,0xec,0xe1,0x0c,0x50,0x34,0x61,0x55,0xee,0xb5,0x11,0xff,0xc3,0xaa,0xf2,0xbc,0xa3,0xa9,0xc7,0x6b,0x16,0xab,0x56,0x7b,0x55,0x54,0x95,0x88,0x15,0x15,0x6a,0x2c,0x97,0xd7,0x7c,0x26,0x65 +.byte 0xaf,0x8d,0xd1,0x05,0x57,0xb2,0x63,0xd1,0x22,0xf7,0x7d,0x77,0x54,0x6c,0x87,0x03,0x1f,0x0e,0x2b,0xae,0xa6,0xa4,0xb5,0xd6,0x95,0x34,0xd0,0x62,0x4e,0xfb,0xcb,0xee,0x01,0xc1,0xf7,0x36,0x94,0xa6,0x54,0x94,0x90,0x0e,0x45,0x9c,0x95,0x89,0x96,0x88,0x32,0x90,0x27,0x48,0xc5,0x96,0xf0,0x7e,0x7f,0x69,0x99,0xdf,0x7b,0xfb,0x2b,0x7b +.byte 0x38,0x10,0x6b,0xd1,0x1a,0xfb,0xf2,0xcd,0x2d,0x8b,0x47,0x21,0xca,0x92,0x64,0x28,0xd1,0x53,0x1d,0xed,0xa7,0x7d,0xa4,0x88,0xab,0xd0,0xfe,0x9b,0x2b,0xf8,0x48,0x94,0x8d,0xd5,0xfa,0x5c,0xef,0x12,0x43,0xdf,0xb6,0x5b,0x83,0x43,0xf3,0xf7,0x1d,0x6f,0x3e,0x44,0xe6,0x20,0xd8,0xbc,0x4a,0x9a,0xed,0xa0,0x79,0x66,0x8d,0x23,0xca,0x35 +.byte 0x15,0x87,0x11,0x50,0xa4,0x40,0x6e,0xfa,0xf7,0xaf,0xa2,0xb7,0x3b,0x9b,0x8b,0x44,0x19,0x90,0xb3,0x47,0x92,0x08,0x2f,0x0c,0xe2,0x95,0x5d,0x80,0xb5,0x93,0x5e,0x1c,0xb5,0xce,0x52,0x0b,0x12,0xc1,0x72,0x2e,0x66,0x8c,0xd1,0x13,0x94,0x36,0xf7,0x17,0xe3,0xad,0x69,0xc9,0x2d,0x21,0x64,0xcd,0x8f,0x2d,0x8f,0x0c,0x85,0xa5,0x23,0x8b +.byte 0x6c,0x00,0x13,0xf7,0x6a,0xb4,0x68,0x1a,0xcc,0xc4,0x03,0x5b,0xd6,0x7b,0x5b,0x34,0x90,0x34,0x3e,0x0a,0x07,0x19,0x81,0x99,0xe9,0xd2,0xa8,0x73,0x2c,0xa2,0xcf,0xdf,0x29,0x69,0xbf,0xec,0xdd,0xa5,0xd3,0x16,0xb0,0xd2,0x9c,0x2f,0xeb,0x70,0x50,0x20,0x3c,0x22,0x1a,0x5b,0x55,0x79,0x76,0x0f,0x1f,0xd0,0x34,0xa9,0x55,0xad,0x75,0x75 +.byte 0x7f,0xa7,0x9b,0xa7,0x3d,0x5d,0x73,0xce,0x91,0xf6,0x9b,0xcd,0xa5,0xee,0x48,0x44,0xba,0xd5,0xad,0xbe,0x1e,0xc6,0xd2,0x8b,0x05,0x21,0x20,0xb5,0x7d,0x78,0x88,0x10,0x20,0x85,0x90,0x8f,0x47,0x74,0x68,0xe6,0x32,0x2a,0x13,0x7a,0xb3,0x5d,0xfe,0x24,0x97,0xd1,0x65,0x55,0x60,0xb3,0x88,0xfb,0x59,0xc9,0x29,0x70,0xf1,0x45,0xbd,0xbe +.byte 0x4d,0x01,0x4e,0x5e,0x5f,0x99,0x52,0xf8,0x5f,0x38,0xcf,0xa8,0x5d,0x69,0x54,0x87,0x72,0x41,0xca,0xc4,0x63,0xc1,0x52,0x58,0x66,0x8b,0xda,0x8b,0x61,0xd1,0xab,0x7d,0x8d,0xfe,0x51,0x8d,0xf6,0xd0,0x21,0x4d,0x0b,0xc5,0xea,0x74,0xcd,0x21,0x93,0x4a,0x91,0xe5,0x3f,0xce,0x35,0x3b,0x3f,0xc0,0xab,0xa4,0x23,0x76,0xd1,0x8c,0xa7,0xbe +.byte 0x15,0xab,0x8e,0xd7,0x0d,0x86,0xac,0xc3,0x06,0xff,0x33,0xf2,0x41,0x6f,0x69,0x58,0x49,0xd1,0x73,0xcf,0x5e,0x4e,0x1e,0x46,0x12,0xfa,0x30,0x0d,0x4b,0xb1,0xfb,0xc6,0xe6,0x0d,0xcd,0x8d,0xca,0x34,0x28,0x5a,0xed,0x85,0x55,0x31,0xee,0xba,0xbf,0xa4,0x6f,0x9c,0x7d,0xeb,0x4b,0x1b,0x73,0xea,0x4e,0xb9,0x62,0x5d,0xac,0xe3,0x53,0xdf +.byte 0x27,0x87,0x2f,0x39,0xca,0x5b,0xd6,0x72,0xcf,0x95,0xc6,0x2a,0xa5,0x3f,0x57,0xfd,0xdc,0xa9,0x4a,0x86,0x0f,0xcd,0xd5,0xea,0xfe,0x85,0xeb,0x9b,0x84,0xc6,0xf7,0xba,0xc2,0x37,0xbc,0x18,0x85,0x49,0xa6,0x7f,0xd9,0x3e,0xfb,0xf0,0x0c,0x39,0xe3,0x1c,0x06,0xfe,0xb6,0x49,0xa3,0x8b,0x72,0x2b,0x39,0xa1,0x48,0xfd,0x1f,0xfe,0xa4,0xf7 +.byte 0xcc,0x7a,0xef,0x64,0xa0,0x0d,0xeb,0x78,0x71,0x8c,0xd6,0x59,0x7c,0xf4,0xaa,0x81,0x7a,0x89,0xe6,0x22,0xc9,0x57,0xe8,0x13,0x9c,0xca,0xc4,0x6f,0xb5,0xbf,0x08,0x31,0x93,0x56,0x2a,0x82,0x00,0x95,0xdc,0x4b,0xfd,0x9b,0xc7,0x8b,0x31,0x72,0xa0,0xff,0xbe,0xb4,0xd6,0x07,0x16,0x0a,0x4a,0x0a,0x96,0x02,0x83,0x53,0x2a,0x4d,0x33,0x72 +.byte 0x1f,0x20,0x20,0xc3,0x63,0xee,0x4e,0x05,0x90,0x7d,0x21,0xd0,0xf1,0xda,0xde,0x0d,0x4a,0x59,0xb9,0xca,0x81,0xe3,0x1f,0x83,0x19,0xdc,0x09,0x03,0x5f,0xaa,0xee,0xbc,0x5a,0xfa,0xc6,0x4d,0x3d,0xfe,0xfe,0xf3,0xdb,0xc3,0x77,0x31,0x74,0xb4,0x94,0xb5,0x09,0xb1,0xb5,0x13,0x47,0x2e,0x4f,0x3b,0x38,0x83,0xf5,0xfc,0xe9,0xcc,0x45,0xea +.byte 0x5b,0x88,0x21,0xba,0x53,0xc5,0xf6,0xd4,0x63,0xc5,0x37,0x1d,0xa1,0x42,0x2e,0x9c,0x9a,0x50,0x2c,0xfe,0xdb,0xf6,0x31,0x36,0x5f,0x9d,0xed,0x63,0x42,0x20,0xdd,0x27,0xe5,0x34,0x3c,0x0f,0x06,0x8b,0x8f,0x32,0xb6,0x47,0xce,0x07,0xcb,0x27,0xc1,0xb7,0xfe,0xb2,0x69,0x81,0x79,0x20,0xd7,0x47,0xbb,0xab,0x61,0x5f,0x09,0x99,0xdf,0x9f +.byte 0xde,0x59,0x33,0x75,0xd1,0xcc,0xfe,0x92,0x79,0x1f,0x2d,0x59,0x88,0xef,0x4b,0x80,0x0c,0x38,0xa3,0xb1,0xef,0xae,0x53,0x84,0x2f,0xbd,0xd3,0x0c,0xcf,0xd5,0xf7,0xb7,0x6f,0xa7,0x22,0x1f,0xf1,0x56,0x76,0x0c,0x78,0x52,0xa3,0xc0,0xd0,0x2f,0xbc,0xdf,0x29,0x0d,0xa8,0x54,0x0d,0x2b,0x65,0x1b,0x7f,0xeb,0x21,0x22,0xaf,0x10,0xc1,0xd6 +.byte 0x30,0xa8,0x2f,0xb1,0x25,0xbf,0xdc,0xee,0xe9,0x35,0x40,0x69,0xa0,0xa0,0x27,0x85,0x2e,0x18,0xc1,0x36,0x24,0xc5,0x96,0x9a,0x85,0x3f,0xbb,0xfd,0xf5,0x02,0xa2,0xa1,0x92,0x3c,0x16,0x48,0x9f,0xc5,0x00,0x7c,0x7b,0xaf,0x31,0xba,0x68,0x0e,0x58,0x88,0xf4,0x10,0xb9,0xa6,0xe0,0x46,0x2a,0xb8,0x8d,0xc7,0x8e,0xad,0x7c,0xec,0xd2,0x74 +.byte 0x92,0xfe,0x1b,0xd0,0x73,0x79,0x0b,0x4e,0xcc,0x2d,0x5c,0xe7,0x80,0x2d,0x21,0x1c,0x97,0xfc,0x2a,0xc9,0x9c,0x07,0x10,0x64,0x8b,0xf7,0xf5,0x1c,0x54,0xb6,0x6c,0x73,0x1c,0x50,0xd3,0x1a,0x2a,0x63,0xcb,0xba,0xd3,0x95,0xe2,0xa6,0xc3,0xca,0x45,0xfd,0x5e,0x1b,0xbb,0x6b,0x4d,0xb3,0xf7,0xfd,0xaa,0xf9,0x73,0xb8,0x74,0x4d,0x36,0x7e +.byte 0xcc,0xaa,0x1e,0xf3,0x20,0x68,0xa5,0x0c,0x03,0xe3,0xbe,0xee,0x82,0x03,0x8d,0x10,0xa6,0xf6,0x6c,0x73,0xc2,0x9d,0x74,0xba,0x57,0x17,0xd7,0xfa,0x85,0xf5,0x1e,0x3d,0xf8,0xc7,0x80,0xef,0xcd,0xf0,0xf4,0x46,0xfc,0x07,0xb5,0xc4,0x5f,0xd2,0x04,0x6a,0x90,0xf5,0x76,0xb6,0xf9,0x73,0x22,0xa6,0x09,0x2f,0xbf,0xb5,0x93,0x9a,0x95,0x05 +.byte 0x95,0xaa,0xf9,0x8c,0x71,0xd6,0xc6,0xd9,0x72,0x50,0xf6,0x58,0x77,0x09,0x47,0x97,0x21,0x42,0xf0,0x30,0x5c,0x3c,0xec,0x60,0x67,0xdf,0x5e,0xd2,0xed,0x0f,0xab,0x25,0x11,0xbb,0xf8,0x34,0x1e,0xbd,0x7f,0xc6,0x52,0x19,0xf5,0x53,0x28,0x46,0x75,0x93,0xce,0xc2,0x0b,0xdf,0xfd,0xa5,0xf1,0xb0,0xa2,0x0b,0x97,0xb5,0x76,0xb4,0x8a,0x2b +.byte 0x82,0x55,0x23,0x29,0xc2,0xd3,0x32,0x94,0x2f,0xf0,0xe6,0x77,0x2c,0xe4,0x6a,0x7f,0xd7,0xee,0x84,0xfb,0xba,0xb8,0x4b,0xae,0x13,0x34,0xbd,0xa8,0x12,0x7a,0x3c,0x28,0x40,0x74,0x5d,0x9a,0x11,0x1a,0xe9,0x74,0x31,0x28,0x3d,0x3d,0x64,0xb7,0x54,0xa0,0x51,0x0d,0xed,0x97,0x94,0x56,0x7a,0x48,0x8e,0x36,0xc9,0xae,0x5f,0xc6,0x79,0x45 +.byte 0x4f,0x07,0xdd,0x13,0x52,0x8b,0xfc,0x3b,0x73,0x44,0x68,0x64,0x51,0x0d,0x95,0x6f,0x0f,0x94,0xba,0xf8,0x40,0x64,0x51,0x43,0x49,0x63,0xc1,0xbd,0xf3,0x39,0x7f,0x6e,0x6f,0x45,0xeb,0xd2,0x33,0x44,0x2d,0x10,0xb4,0x68,0xcb,0xcb,0x8c,0x84,0xc5,0xd4,0x63,0x1d,0x23,0x85,0x30,0x4d,0x6c,0xfc,0xc9,0xa4,0x8c,0xd2,0x42,0x69,0x2f,0x17 +.byte 0x86,0xf0,0x17,0xd0,0xb2,0xaa,0xfd,0x62,0xcb,0xb4,0xfd,0xba,0x29,0xf8,0x85,0x45,0x84,0x9d,0xae,0xf8,0x9c,0x8f,0x64,0xd5,0xb8,0xb6,0xa9,0x64,0xf9,0x39,0x86,0x68,0x29,0xac,0x32,0x87,0x84,0x6c,0xb0,0x09,0xd2,0xdd,0xf2,0xec,0xa1,0x3a,0xfd,0x11,0x37,0x54,0x67,0x29,0x62,0x25,0x62,0xe8,0x6a,0x4b,0x5e,0xde,0x9a,0xf0,0x97,0x73 +.byte 0x66,0x69,0x2a,0x21,0xbe,0x95,0x86,0xca,0xf9,0x17,0xe9,0x4b,0x23,0x83,0x1e,0x8c,0x37,0x47,0x91,0x03,0x3f,0x9f,0xb8,0x60,0x2c,0xdd,0x82,0xbd,0x2a,0xc3,0xe7,0x30,0x8f,0x91,0x2b,0xa4,0x23,0x01,0x03,0xb2,0x8b,0xbd,0xd2,0x1d,0x16,0xf7,0x6a,0x86,0xa8,0xe4,0x54,0x6f,0x9c,0x47,0xa5,0x0f,0xbe,0x94,0x56,0xfa,0x18,0x69,0xbe,0x92 +.byte 0xe9,0xf8,0x24,0x4d,0x65,0x42,0x81,0x1f,0x85,0x52,0xb7,0xc9,0x49,0xde,0xa5,0x4c,0x8f,0x0d,0x5f,0x12,0x68,0x68,0x35,0xce,0x29,0x22,0x5c,0x55,0x3e,0xbd,0xce,0xf2,0x2a,0xec,0x7e,0xe1,0x29,0x0a,0x88,0xf3,0x5e,0xeb,0x27,0xe5,0x52,0xee,0x72,0x37,0xba,0xff,0x82,0x97,0xa9,0x5d,0x77,0x6f,0xb9,0xc3,0xa7,0x73,0xba,0x7f,0x2f,0x7a +.byte 0x19,0x32,0x87,0x56,0xa2,0x89,0xb2,0xb4,0x48,0xbe,0x2e,0x30,0x89,0x0a,0x8f,0x75,0x25,0x25,0x5c,0x46,0xe8,0x02,0x45,0xcb,0x03,0xd1,0xa3,0xeb,0x70,0x71,0x08,0x1c,0x46,0xf1,0x2c,0x43,0xe2,0x44,0x30,0x6a,0x61,0x31,0x45,0x3e,0xbb,0x47,0x33,0x24,0x25,0x13,0xeb,0xf7,0x24,0x66,0x15,0x4c,0xf3,0x07,0x2f,0xff,0xdc,0x37,0x0f,0x71 +.byte 0x85,0xc8,0x56,0xa7,0x2a,0x22,0x87,0x8b,0xae,0x35,0x31,0x29,0x96,0xf0,0x81,0xfb,0x2c,0xbf,0x44,0x69,0x69,0x9a,0x77,0xfd,0xc0,0x2b,0x42,0x16,0x67,0xd6,0xbd,0xd0,0xf1,0xb9,0x40,0x8f,0xd2,0x9a,0x1b,0x2c,0x64,0x78,0x6b,0xda,0x37,0x26,0xae,0x4c,0xee,0x36,0xaf,0x84,0x61,0xe4,0x93,0x22,0x64,0xaf,0xee,0x6d,0x69,0x5c,0xe5,0x85 +.byte 0xd8,0xcc,0xcf,0xf3,0xe8,0x05,0xcd,0xd2,0x09,0x66,0xaf,0xbb,0xc4,0x79,0xb2,0xa7,0xa5,0x09,0xd9,0xf5,0xa2,0x83,0x4f,0xd5,0xf5,0xf3,0x7d,0x7a,0xab,0x94,0x83,0xb3,0x15,0xfb,0x0d,0x1a,0x1d,0x77,0xc5,0x63,0x0b,0x54,0xde,0xa8,0x0d,0xc4,0x16,0xe3,0x89,0xeb,0xa3,0x1b,0xd4,0x77,0x13,0xe3,0x55,0x98,0x15,0xab,0x3b,0x32,0xc8,0xd4 +.byte 0x0c,0x91,0x80,0x57,0xf7,0x1e,0x24,0xd0,0x56,0x78,0x29,0xd2,0x03,0xe7,0xc4,0xd2,0x09,0xca,0xee,0x9b,0x60,0x5f,0xa1,0xfd,0xaa,0x85,0x4b,0x68,0x35,0xa4,0x3b,0xef,0x29,0xb8,0x49,0x85,0xee,0xbb,0x39,0xc0,0xc6,0x99,0x97,0xc6,0x86,0x6c,0x27,0xf9,0x1a,0x19,0x6e,0x7c,0xae,0x75,0x41,0x0d,0x08,0x1e,0xf0,0xb4,0xc3,0x9e,0xdb,0x40 +.byte 0x86,0x94,0x9d,0x90,0x09,0x3f,0xdc,0xb9,0xfc,0x59,0x41,0xc5,0x5b,0x89,0x97,0x49,0x4a,0x1a,0x06,0x68,0x83,0xd8,0x7e,0x09,0x51,0xe1,0x86,0xd8,0x88,0xbe,0x8a,0x36,0x48,0xb3,0x83,0x7b,0x57,0xdd,0x8f,0x18,0x67,0x4a,0x7d,0x68,0xab,0xb9,0x05,0xf0,0xe4,0x27,0x4e,0x33,0x44,0xa7,0x13,0x04,0x94,0xc5,0x57,0xaf,0x36,0x03,0xe8,0x09 +.byte 0x36,0x5b,0xe8,0x92,0xad,0x0a,0x79,0x02,0x24,0x43,0x62,0xc7,0xa5,0xce,0x7c,0xac,0x6d,0x0a,0xf2,0x83,0x33,0x05,0x3b,0x6f,0x9d,0xda,0x96,0x9f,0x8b,0x79,0x3e,0x6c,0xd6,0xba,0x7f,0xea,0x84,0xd8,0x23,0xb6,0x92,0xc3,0x9c,0x7f,0x0d,0xcb,0x7b,0x9f,0xbd,0xc2,0xf5,0x6f,0x71,0x67,0x5f,0x0b,0xd1,0x73,0xb5,0x8c,0x46,0x07,0xcd,0xd8 +.byte 0xee,0x28,0xcf,0x8f,0x8e,0x5c,0xde,0x14,0x78,0xc7,0x60,0xd5,0xf4,0x49,0x97,0x46,0x5f,0x49,0x4a,0xb4,0x8f,0xc9,0xd1,0x52,0x34,0x01,0x29,0xa1,0x46,0x55,0xf8,0x29,0x53,0xbb,0x32,0x1e,0x4b,0x89,0x96,0x53,0x0b,0xf2,0x16,0xf9,0xa7,0x70,0x93,0x59,0x78,0xc0,0x77,0x78,0x9f,0x6c,0xb3,0x0e,0x3f,0x6f,0x40,0x09,0x1d,0xd6,0x66,0x4e +.byte 0xe8,0xb0,0xa1,0x14,0x65,0xc8,0xc7,0x3f,0xd2,0xf0,0x1f,0xfd,0x51,0xe0,0x29,0xd6,0x39,0x26,0x60,0xfe,0x62,0xc2,0xe4,0x45,0x6d,0x01,0xdb,0xd3,0x7c,0xdf,0x48,0x10,0x2f,0xf2,0x8e,0x6c,0xc6,0x58,0xc3,0x7d,0x26,0xb1,0x9d,0x52,0x02,0x2a,0x5f,0x2b,0x57,0xca,0x84,0x9d,0x74,0x31,0x01,0x0f,0xda,0x3d,0x7c,0xbb,0xdc,0x71,0x82,0x8b +.byte 0x42,0xaf,0x49,0x9e,0x2c,0xe8,0xdc,0xa1,0xfb,0x23,0x6d,0xdb,0xdc,0x36,0x01,0xc9,0xb3,0x93,0xd4,0x2e,0x8b,0xd1,0xe4,0xed,0x1b,0xd0,0x4c,0xeb,0xaf,0x96,0x57,0xde,0xee,0x90,0xf4,0xa7,0x58,0x46,0x8a,0xd4,0xa9,0x44,0xe0,0xb3,0x13,0x96,0xb2,0x8a,0xb0,0xd3,0xbe,0x71,0x38,0xb7,0x35,0xa9,0xa8,0x48,0x37,0xa3,0x11,0x0e,0x61,0x36 +.byte 0x6c,0xaf,0x6c,0xf2,0x3f,0xd6,0x55,0xb3,0xa5,0xe0,0xaf,0x18,0x6a,0xf5,0x78,0xb5,0x7c,0xc7,0x48,0x24,0x6c,0xea,0x1e,0x7f,0x52,0xb4,0xe8,0x72,0x46,0xd2,0xbd,0x1c,0x9e,0xe6,0x5b,0x3e,0x9c,0x6c,0x6c,0x6b,0x45,0x0c,0x3a,0xb7,0x67,0x3c,0x8e,0x77,0x77,0xbf,0x50,0xb6,0x30,0x6e,0xe1,0x28,0x0d,0x2a,0x85,0x44,0xf8,0xbb,0xf1,0x14 +.byte 0x89,0xaa,0xc2,0x27,0xf5,0x8e,0xa1,0xd3,0x07,0xba,0xe8,0x03,0xcf,0x27,0x1c,0xa6,0xc4,0x63,0x70,0x40,0xe7,0xca,0x1e,0x05,0xb7,0xb7,0xdc,0xc0,0x07,0x4c,0x0d,0x21,0x12,0x60,0x02,0xe3,0x86,0x65,0xe7,0x1c,0x42,0x86,0xdd,0xdb,0x7f,0x26,0x60,0x01,0x3d,0xd8,0x18,0xcd,0x7a,0x9f,0xf8,0xb2,0xf6,0x6d,0xd3,0xe0,0x57,0x1f,0x80,0x30 +.byte 0x2d,0x5e,0x71,0xdf,0x4d,0x7f,0xcd,0x63,0x77,0x19,0x5e,0x2d,0xd5,0xb5,0xfa,0xa9,0x26,0x02,0xb9,0x62,0x2b,0x57,0x80,0x0a,0xe9,0xbc,0xa4,0x3b,0xa7,0xf1,0xf3,0x77,0x2b,0x6b,0x41,0x5e,0xf7,0xe8,0x66,0x23,0x63,0xac,0xcd,0x58,0xfc,0xa9,0x97,0x6b,0x5a,0x1e,0xe5,0x7d,0xfd,0xb1,0x42,0x7f,0x99,0xdd,0x60,0xaf,0x39,0x46,0x36,0xdd +.byte 0xc2,0x70,0x83,0x53,0xd1,0xc3,0x69,0xc8,0x90,0x0e,0x2b,0x34,0xb2,0x0c,0xb9,0x7a,0xb8,0x6b,0x7c,0xc2,0xf3,0xae,0x41,0x24,0xb8,0x94,0x5f,0xdd,0xce,0xda,0x95,0xda,0x49,0x81,0xb6,0xf8,0xa9,0x8e,0xb3,0x79,0xf8,0x55,0xf9,0xcf,0x8c,0x24,0x99,0xfc,0x6b,0x15,0x0f,0x39,0xac,0xd0,0x3e,0x89,0x9d,0xc2,0x46,0x8c,0x99,0x45,0xfd,0xce +.byte 0x13,0x4c,0x9c,0xc8,0x80,0x87,0x8f,0x7b,0x28,0xe3,0x5e,0x2b,0xe3,0x89,0x7e,0x13,0x52,0x52,0xe9,0x3a,0xed,0x33,0xe7,0x28,0xc7,0x7a,0x48,0x8d,0x0e,0xee,0x24,0xc4,0x61,0x04,0x3c,0xd4,0x7e,0xf3,0x30,0x22,0x07,0x58,0xae,0x02,0xc5,0xd1,0x7d,0x04,0x18,0xca,0xd6,0x04,0xd4,0xc5,0xa4,0xff,0x8d,0x0d,0x68,0xd4,0x1a,0x3a,0x72,0x6f +.byte 0x41,0x1e,0xda,0xc0,0x97,0x7c,0x55,0x2c,0x13,0x20,0x9a,0x07,0x35,0xcc,0xc5,0x83,0xee,0x41,0x77,0x51,0x28,0x07,0xe0,0x81,0xe3,0x9b,0x1f,0xdb,0x73,0x5c,0x8d,0x82,0xa2,0x8b,0xf4,0x92,0x4f,0x70,0xa8,0x6a,0xcf,0xbf,0xcf,0x0b,0x71,0xbc,0xeb,0x81,0xb4,0xc9,0x65,0xe7,0x43,0xef,0x25,0x45,0x27,0xea,0xcd,0x60,0x68,0xcd,0x2d,0x7a +.byte 0xfd,0x88,0x6d,0x06,0xd5,0x92,0x32,0xc3,0x18,0x88,0x64,0xa7,0xde,0x39,0xeb,0x0b,0x5c,0x9c,0xf6,0xf6,0x93,0x90,0x24,0x0c,0x9e,0x0b,0x89,0x1c,0xcb,0xc8,0x96,0x72,0x17,0xae,0x46,0x61,0x69,0x6e,0xbe,0x6c,0xf1,0xa4,0xa4,0x50,0xa9,0x2a,0x47,0xd7,0x80,0xe4,0x72,0xd2,0x3f,0x1a,0xdd,0x82,0xdc,0x12,0x66,0x10,0x26,0x15,0x80,0x56 +.byte 0x4d,0xbe,0x02,0xae,0xe1,0x24,0x8a,0x41,0x52,0xc8,0x5d,0x8d,0x62,0x85,0xbe,0x7c,0x35,0xdd,0x88,0xd3,0xf5,0xf7,0x9b,0xf1,0x5a,0x4e,0x70,0x48,0x31,0x5a,0xaa,0x96,0x1e,0xf8,0x73,0xb4,0x0f,0xb2,0x82,0xf4,0x13,0xac,0xba,0x3b,0x12,0x36,0x1e,0x23,0xbf,0x09,0x8a,0x1c,0x96,0x47,0x56,0x2d,0x16,0x24,0xc3,0x23,0x65,0xe2,0x99,0xd0 +.byte 0xf0,0xa0,0x2c,0x64,0x35,0xad,0x16,0x34,0x67,0x52,0xbc,0x8f,0x17,0x90,0xf9,0xc7,0x4f,0x64,0x6c,0x75,0x3f,0xd7,0x48,0xa4,0x6b,0x43,0xe6,0x2e,0x7a,0xe3,0x79,0xe8,0x47,0x51,0xe9,0x52,0x36,0x30,0xa4,0x24,0x89,0x00,0xd5,0x77,0xbd,0x34,0x2e,0xa9,0x74,0x02,0x25,0xc0,0x0c,0x10,0x31,0xf0,0xa7,0xcb,0x01,0xed,0x43,0x70,0x15,0xe6 +.byte 0xda,0x01,0xb4,0x7a,0x13,0xbc,0xf1,0x57,0x34,0xb1,0xb7,0xb3,0x26,0x18,0x5f,0x42,0x6b,0xcb,0x78,0x25,0x48,0xe9,0xe6,0xe8,0xf5,0x45,0xa2,0x61,0x97,0x10,0xa5,0x7e,0x7a,0x48,0xf3,0x23,0xa5,0x88,0xc0,0xc4,0xc7,0x3b,0x5c,0x0c,0xfc,0xe0,0xf4,0x68,0x64,0xc6,0x9f,0xd9,0x17,0xcb,0xe5,0xba,0x4a,0xa4,0xe0,0x27,0xf8,0x2b,0x4e,0x67 +.byte 0x13,0xab,0xd2,0xce,0xbc,0x8d,0xdf,0x6e,0x49,0xaf,0x72,0x8a,0x51,0xa1,0x78,0x38,0x0a,0x58,0x2e,0x72,0xec,0x94,0x70,0x8d,0xdf,0x0b,0x5a,0x52,0x81,0xb1,0x9b,0xda,0x2c,0xd2,0x85,0xbb,0x8f,0xb0,0x99,0x64,0x24,0xbe,0x03,0xd9,0x92,0x8d,0x29,0xf3,0x41,0x9c,0xd6,0xef,0xef,0xb2,0x5c,0x22,0x90,0xff,0x27,0x4d,0xb3,0x91,0x72,0x9f +.byte 0x42,0xca,0x66,0xc5,0x66,0xb7,0x50,0x3e,0x83,0x6f,0x2d,0xe3,0x7b,0x2a,0xc4,0x5a,0x93,0x92,0x80,0xdb,0x1a,0xdd,0xef,0xfd,0x96,0xcb,0x6a,0xd8,0x4a,0xc5,0x6e,0x36,0x4a,0xe4,0x10,0x15,0xb3,0x12,0xb4,0xd9,0x9e,0x37,0x48,0x96,0xcb,0xe5,0x3a,0x4f,0x57,0xa6,0x46,0x2f,0xd3,0x06,0xb8,0x61,0x1c,0x17,0x3a,0xb8,0xad,0x40,0x50,0x57 +.byte 0x10,0xd9,0xd0,0xe9,0x1b,0xe3,0x18,0x8c,0xc4,0xfa,0x08,0x8d,0x82,0x3c,0x22,0x22,0x1b,0x97,0x64,0xa6,0x8b,0x7c,0x70,0x2b,0xa0,0xd8,0x4c,0x64,0xcf,0xbc,0x49,0x78,0xcb,0x92,0x0f,0xe1,0x60,0x12,0x4e,0x92,0x0d,0xaf,0xa4,0x1f,0xe0,0x2a,0xa5,0x69,0xc6,0xa1,0x91,0x5c,0xdd,0xb8,0xae,0xfa,0xc5,0xb9,0x18,0x31,0x81,0x32,0x6e,0x97 +.byte 0x44,0x2a,0xda,0x58,0xcd,0x9e,0x0d,0x57,0xe0,0xe3,0x5f,0x7b,0x04,0xd8,0xc8,0x68,0xf5,0xa2,0xac,0x0c,0x29,0xf0,0x7e,0xff,0x32,0xfb,0x53,0x1a,0xc2,0xe3,0xae,0xa5,0xe4,0x9c,0x50,0xaf,0xf4,0xde,0x0b,0xdd,0x4d,0xfa,0x65,0x3c,0xbe,0x3c,0xb8,0xda,0x88,0xd9,0x6c,0x55,0x58,0xe1,0x4d,0x00,0xa8,0x1e,0xe2,0x3a,0x9c,0x53,0x9b,0xca +.byte 0xb7,0x5d,0x3a,0x83,0xe0,0xbb,0x95,0xc4,0xd5,0x45,0x48,0xdc,0x12,0xab,0x24,0xfc,0x5d,0x91,0xe1,0xc8,0x0a,0x5c,0x10,0xc4,0xc9,0xaf,0xb6,0x54,0x80,0xfd,0xa0,0x70,0xb9,0xab,0xdf,0x34,0x9f,0x5c,0xff,0xde,0x8e,0xa0,0x0b,0x21,0xcf,0x28,0xc4,0xdf,0x67,0xb5,0xc0,0x20,0x49,0x0c,0x7e,0xe6,0xf7,0x41,0x6b,0x75,0xd9,0x1d,0x3b,0x49 +.byte 0xb7,0x4f,0x01,0xd1,0x20,0x62,0x15,0x1e,0x9f,0x16,0xb0,0xbd,0x30,0x09,0x05,0x00,0x0f,0x25,0x5a,0x37,0xe9,0xa6,0xc6,0xef,0xe5,0x39,0x2b,0xd7,0x6b,0xc5,0x96,0xd2,0xad,0x46,0xaf,0xd3,0xc0,0xfd,0xea,0xff,0x4c,0xaa,0x44,0x48,0x9a,0xdb,0x99,0x44,0x3f,0x4a,0xf0,0x3f,0x81,0x75,0xf2,0x79,0x31,0x3c,0xed,0x56,0xc6,0xf0,0xf1,0x8c +.byte 0xdb,0x1d,0x6c,0x6c,0xcc,0xfb,0xc2,0x30,0xf6,0x24,0x14,0x69,0xc4,0x89,0x4d,0xd0,0x10,0x77,0x37,0x00,0xe8,0xc9,0xf2,0x32,0xf1,0x43,0x8b,0xe1,0x09,0xc4,0x59,0x17,0xf9,0x20,0x2b,0x01,0x76,0x20,0xb8,0x03,0x84,0xf6,0xd7,0x2e,0xef,0x20,0xa6,0xfa,0x8b,0x74,0x7f,0x4a,0x14,0x33,0xad,0xac,0x45,0x66,0x18,0x2b,0x6b,0xd2,0xb8,0x20 +.byte 0x1a,0xff,0xca,0x25,0x69,0xfd,0xba,0x4b,0x5b,0x9c,0x38,0x35,0x4c,0x30,0xa2,0x24,0x3d,0xbb,0xd4,0xf3,0x67,0x24,0xa5,0x93,0xc6,0xf5,0xb2,0xb4,0xa5,0x04,0x53,0xb6,0xe4,0xc7,0xdc,0xf1,0xe5,0x43,0xb7,0x73,0xaa,0xab,0x5c,0xea,0xcb,0xf1,0xeb,0x5b,0x04,0x7a,0xff,0x0f,0x5e,0xb4,0xd3,0x2a,0x39,0x50,0x1b,0x54,0x1f,0x32,0xd7,0x7c +.byte 0xea,0x3f,0xee,0xa5,0xc8,0x46,0x48,0x7e,0x75,0x60,0x7a,0x42,0x42,0xd3,0x15,0x07,0x69,0x46,0x1c,0xe2,0x21,0x31,0x94,0x31,0x24,0x9e,0x39,0xab,0x7a,0xf9,0xc2,0x0b,0x2d,0x6b,0x55,0xa3,0x36,0xb2,0x65,0xf2,0x17,0x08,0xde,0x15,0x83,0x07,0x36,0x12,0x54,0x8f,0x0b,0x23,0xa8,0x7e,0xb5,0x57,0x1c,0x9e,0x29,0xd7,0xd4,0x9b,0xc1,0xf6 +.byte 0x94,0x23,0xf3,0x92,0xbf,0xba,0xc8,0xf5,0x78,0x3e,0x67,0x48,0x14,0x3b,0xd4,0xe9,0x8f,0x78,0xc1,0x4b,0x9a,0x59,0x08,0xaa,0x50,0xf4,0x9d,0xc4,0xc3,0x2c,0xbc,0x56,0x2c,0x13,0x30,0x75,0xfb,0xed,0x48,0xab,0x90,0xec,0x64,0x18,0xb5,0xd5,0xb5,0x7f,0xc1,0x7f,0x83,0xf2,0xdb,0xae,0xde,0xf5,0xb5,0x29,0x03,0xbe,0x80,0xb1,0x5d,0x97 +.byte 0xd3,0x7a,0xa4,0xd0,0xe0,0xce,0x04,0xda,0xaa,0x82,0x19,0xc9,0x02,0xb7,0x1c,0xe1,0x66,0xd9,0x3e,0x86,0x6d,0xb5,0xd1,0x35,0x63,0x8e,0x4b,0xc6,0x58,0x41,0xf9,0xb7,0xba,0xf3,0x06,0x91,0xb7,0xa2,0xfb,0xb5,0x5f,0x53,0xf3,0xe0,0xc1,0xf6,0x91,0x66,0xc7,0x93,0x3a,0x0a,0x72,0xb1,0xed,0x36,0x9d,0xde,0x21,0xdd,0x7d,0x0a,0x7b,0x35 +.byte 0x1f,0xc3,0x56,0xde,0xbb,0xcb,0xb2,0x0a,0xb6,0x84,0xce,0xa1,0xc6,0x1a,0x46,0x2f,0x9f,0x48,0xd5,0x98,0x73,0xa4,0xbd,0xbd,0xa3,0xe9,0xc9,0xc4,0x64,0x89,0xb7,0x9c,0x97,0x7c,0x2f,0x88,0x22,0xe4,0x4b,0x71,0x3d,0x2a,0x47,0xee,0xf8,0xfe,0xe0,0xf7,0x03,0x14,0xe6,0x7c,0x9e,0x57,0xbb,0x8e,0xf5,0xea,0x63,0xfc,0x5b,0x18,0x3b,0xa2 +.byte 0xa1,0x4a,0x28,0x82,0x37,0x77,0x5b,0xc4,0xd3,0xc1,0xf2,0x87,0x13,0x2b,0x2a,0xc8,0xac,0x70,0xe1,0x82,0x38,0x9c,0x12,0xa0,0xc4,0x9e,0x6b,0xac,0x33,0x8a,0xe9,0x31,0x6f,0xa1,0x76,0x94,0x48,0xcf,0xbc,0x78,0x22,0x82,0x6a,0xb0,0xb9,0x49,0x71,0xdb,0xde,0x8b,0x90,0x09,0x82,0x4d,0x79,0x17,0xe8,0xcf,0xd8,0x50,0xc3,0x08,0x07,0x81 +.byte 0x5f,0x9a,0x72,0xce,0x0a,0xe4,0x29,0xc9,0xdd,0x95,0x67,0x58,0xa1,0x14,0xec,0xcf,0x2f,0x29,0xcf,0xce,0xb3,0x35,0x54,0x77,0x67,0x56,0xec,0x95,0x68,0xee,0xbf,0x9c,0x9f,0x74,0x78,0x12,0xd5,0x30,0x83,0x28,0xd5,0x36,0x96,0x57,0xa0,0x8d,0x1c,0x99,0x19,0x04,0xaf,0x25,0xe5,0x71,0x83,0x88,0xb0,0x74,0x38,0xdd,0x8a,0xff,0x39,0x7a +.byte 0xfd,0x34,0x8f,0x9c,0x67,0xa8,0xc8,0x6f,0x13,0x5d,0xf2,0x5b,0x22,0xd3,0x8e,0x63,0x51,0x58,0x9b,0xfc,0xaa,0x89,0x65,0x4e,0x36,0xc4,0xa7,0xef,0x98,0xf9,0xaf,0xcd,0x35,0x8c,0x16,0xbc,0x70,0x4f,0xcd,0x71,0x2a,0xf4,0x13,0xb3,0x3d,0xa3,0x92,0x71,0x45,0xe5,0x9a,0x45,0xbd,0xc5,0x1d,0x82,0x60,0x3a,0x97,0xf3,0x0f,0x96,0x21,0x3d +.byte 0xe5,0x6e,0xfb,0x9d,0x9b,0xeb,0x15,0xc2,0xa6,0x73,0x76,0xf2,0xcd,0xec,0xfd,0x0f,0xf4,0x3f,0x46,0xc9,0x9c,0x73,0xa1,0x21,0x08,0xdc,0x31,0x00,0xaa,0x95,0x07,0xf0,0x3d,0x51,0x57,0xfa,0x6b,0xc3,0x8e,0xe9,0xa4,0x65,0xdc,0xff,0x57,0xb9,0x1f,0x4f,0xc6,0x6d,0x03,0x00,0xa7,0x19,0xb8,0x24,0xb5,0x3d,0x87,0xcb,0x84,0xb7,0xf5,0xfe +.byte 0x51,0x16,0x5b,0xc7,0xed,0x4b,0xff,0xa3,0x66,0x17,0x93,0x60,0x69,0x84,0x8c,0x95,0x74,0xa7,0x30,0x2d,0x09,0xf7,0x4e,0x0e,0x2f,0x99,0xda,0x46,0x34,0x0f,0x93,0x90,0x97,0x4c,0xa6,0x25,0x15,0xb8,0x6f,0x1d,0xd5,0xe1,0xc1,0x39,0x50,0xfd,0xd5,0x79,0x4f,0x04,0x2f,0x76,0x50,0x3f,0x67,0x56,0xad,0x02,0x82,0x30,0x1a,0xaa,0x6e,0xe2 +.byte 0x05,0x6a,0x93,0xb7,0xbe,0xde,0x84,0xce,0xd8,0x53,0xed,0xad,0x95,0xab,0x45,0x1f,0x4c,0x3b,0x22,0x36,0x27,0x45,0x19,0xa4,0x7f,0x12,0x20,0x6c,0x9d,0xeb,0xd2,0xfe,0xd6,0x7d,0x25,0xf9,0xe3,0x64,0x77,0x56,0x89,0x12,0x57,0x80,0xd5,0x40,0xbb,0x2a,0xcc,0xac,0x34,0x8e,0x87,0xfd,0x58,0xc3,0xbd,0x92,0x48,0xd8,0x7f,0xc4,0x39,0x6a +.byte 0x4e,0x1c,0x50,0x93,0xef,0xae,0x81,0x93,0x50,0x95,0x6e,0x46,0x7c,0xf5,0x27,0x44,0x6c,0x21,0x06,0x49,0x89,0x7e,0xf4,0xfa,0x08,0xa5,0xbc,0x0a,0xbd,0xb6,0x7b,0x55,0xac,0x87,0x19,0x33,0xfa,0xab,0xf3,0x15,0xc9,0x1b,0x83,0xf2,0x41,0xf1,0x26,0x6f,0xdf,0x15,0x60,0xdb,0xa6,0x03,0x43,0x3e,0x34,0x7a,0xa9,0xb1,0x38,0x57,0xe4,0x09 +.byte 0x1a,0x4a,0xd8,0x6e,0x28,0xee,0x7d,0x74,0x54,0x03,0xb3,0x29,0x24,0xb3,0xf0,0xc6,0x20,0x7c,0x47,0x01,0x66,0x36,0x7a,0x14,0x18,0x09,0xd6,0xaa,0xa6,0x82,0x5b,0xe4,0x0a,0xf9,0x41,0x52,0x3b,0x56,0xa2,0xf8,0xa2,0xa1,0x2b,0xe0,0x0d,0x1f,0x5b,0xe4,0x0e,0xe1,0x94,0x84,0x6f,0xed,0x2e,0x11,0xfa,0x4a,0xbd,0x41,0xf4,0x3c,0x8c,0x7e +.byte 0x94,0x46,0xec,0x79,0x81,0xb0,0x36,0xfd,0x9c,0x73,0x0f,0x84,0x1a,0x59,0x4e,0x1b,0xd5,0xd1,0x0d,0xff,0xfd,0xb7,0xfb,0x73,0x35,0x8a,0x66,0xed,0xf3,0xee,0x6d,0xf7,0x86,0x0a,0xb9,0xc0,0xf1,0xa3,0xb7,0x32,0x49,0x01,0xe8,0xcd,0xfe,0x82,0x7b,0xf6,0x46,0xd8,0x73,0x47,0x8b,0x7b,0x6e,0x31,0x92,0x0f,0x4b,0x16,0x11,0x86,0x1d,0x02 +.byte 0x5d,0x12,0x79,0x59,0xdc,0x8c,0xaa,0x1b,0xc1,0x75,0x63,0xb2,0xd6,0xbf,0x19,0xb0,0x81,0x70,0x34,0x12,0xd2,0x09,0xbe,0x6d,0xa1,0x31,0x77,0xd2,0x9b,0x59,0xdc,0xcb,0x67,0xb5,0x14,0xcd,0x37,0x31,0x2c,0xa6,0x17,0x58,0x2b,0x24,0xfc,0x2a,0x9e,0x8f,0x38,0x38,0x7a,0x80,0xda,0x8b,0x54,0x1d,0xc9,0x99,0xc7,0x1f,0x98,0x7a,0x1f,0x32 +.byte 0x23,0x1c,0xb5,0x6e,0x53,0xd3,0x61,0xe7,0x78,0x19,0x6c,0xd5,0x2f,0x85,0xde,0xd1,0x67,0x6b,0x9b,0xa1,0x09,0x87,0x5e,0x89,0x5e,0x89,0x21,0x36,0xf2,0x94,0xc1,0xfd,0x6c,0x4e,0xd9,0x6b,0xd2,0xb1,0x1b,0x48,0x37,0x9a,0x7b,0xc9,0x52,0xfd,0xe2,0x6d,0x07,0x19,0xf2,0xa5,0x69,0xdc,0x0b,0x52,0x8f,0xb3,0x87,0x03,0x1a,0xd8,0x43,0x20 +.byte 0x68,0xcf,0x08,0xcc,0xce,0x37,0xf6,0x96,0x7f,0x03,0x62,0xb2,0xce,0x6a,0xfb,0x22,0x54,0xd6,0xfc,0x84,0x5c,0xf5,0x55,0x32,0x36,0x77,0x1d,0x15,0x6a,0x2c,0x3a,0x01,0x34,0xff,0x5b,0x7f,0x3f,0xab,0x97,0x8f,0xbd,0x1d,0x07,0xb9,0x47,0xb1,0xcc,0xc0,0xdf,0x17,0x38,0x54,0x07,0xc0,0x1b,0xb9,0xa2,0x29,0xa6,0x25,0x73,0x32,0x4d,0x5e +.byte 0x51,0x60,0xb3,0x27,0xe5,0xb6,0xdb,0x56,0x81,0x95,0x03,0x7e,0xca,0xc6,0x15,0x8f,0x48,0xd4,0xac,0x71,0x41,0xdc,0x9c,0x86,0x5d,0xd8,0x90,0x90,0x54,0xdd,0x3d,0xf3,0xa8,0xbb,0xe5,0x55,0x69,0x26,0xdf,0xd1,0x8e,0x75,0x2a,0xe4,0xfe,0xe0,0x80,0x1d,0x6b,0xd2,0x8a,0x06,0x49,0x4e,0x60,0xf8,0xbd,0x3d,0x99,0x27,0x80,0x27,0x42,0x66 +.byte 0x01,0x32,0xe1,0x9e,0xa6,0xde,0x7b,0x14,0xa4,0x49,0x68,0x70,0xbe,0xa4,0xe1,0x44,0x2e,0xce,0xa3,0xe9,0x1d,0x7a,0xbd,0xf1,0xe4,0x25,0x11,0x47,0xd8,0xaa,0x32,0x34,0xf8,0xca,0x3d,0xec,0xf3,0x5d,0x8a,0x55,0xe7,0xd4,0x7c,0xfb,0xcf,0xe7,0xa6,0x13,0xaa,0x16,0x5f,0xaa,0x02,0x19,0xdd,0xf1,0xf8,0x5c,0xb2,0x1e,0x68,0x9a,0x21,0x93 +.byte 0xd1,0x38,0x31,0xbb,0x26,0x76,0x44,0xf8,0x84,0x3b,0xf5,0xd1,0x52,0xbe,0x1b,0x8e,0x4d,0xa0,0xb4,0x4a,0x5a,0x7e,0x89,0xe5,0x36,0xb0,0x76,0x77,0xc5,0xc2,0x22,0x73,0xc2,0x19,0x12,0x7f,0xdf,0x9c,0xb8,0xc0,0xf5,0x0e,0xd5,0xa3,0x55,0xae,0x61,0xf8,0xf1,0x6b,0x79,0xc8,0x2e,0xbc,0xa5,0xef,0xd4,0xb1,0x84,0x0c,0x15,0xc4,0xed,0xb3 +.byte 0x18,0x29,0xd6,0x31,0x83,0x79,0x30,0x1a,0x8f,0xf0,0x3b,0xe9,0xd1,0xf2,0x1d,0xec,0xcb,0xe8,0xc5,0x1c,0xb5,0xcb,0x8e,0x01,0xd1,0xb2,0x86,0x43,0x33,0x95,0x70,0x7e,0x75,0xa9,0xa1,0xe7,0xcb,0xd9,0xf4,0xd3,0xe1,0xe2,0xe9,0x46,0x21,0x20,0x3b,0xe9,0x48,0x1c,0x3f,0x93,0x57,0x31,0xeb,0x15,0x9c,0xa7,0xa6,0xcb,0xb5,0xb7,0xa7,0x24 +.byte 0xbe,0x66,0x4c,0x92,0x7c,0xe8,0x8e,0x3f,0x9c,0xa9,0xd7,0xad,0x73,0x68,0x19,0x19,0xd4,0xb5,0x57,0x82,0xdc,0x67,0x3c,0xec,0xac,0x06,0xec,0x86,0x9b,0x65,0xff,0xbb,0xc3,0x90,0x48,0xdb,0x52,0xcc,0xa4,0xf5,0xdf,0x2c,0xc5,0x5a,0xe3,0x30,0xed,0xad,0x37,0x40,0x8c,0xaa,0x32,0x4f,0x94,0x1e,0x14,0x59,0x48,0x1d,0xd3,0xaf,0x80,0xe7 +.byte 0xcf,0x6b,0xa7,0x70,0xe7,0x98,0x22,0x4b,0x40,0x02,0x0c,0x29,0x09,0x0a,0x53,0xf7,0xd4,0xeb,0xbb,0x75,0xb4,0x30,0x1c,0x67,0xea,0xd2,0xb5,0x40,0xfe,0x57,0x2c,0x3c,0x44,0x8d,0x8d,0x02,0x78,0xf0,0x76,0x8f,0x92,0xab,0xb4,0xc9,0xc0,0x2f,0xf5,0xde,0xa7,0x09,0x14,0xf1,0xe5,0x34,0xeb,0x86,0xfa,0xcf,0xcc,0x85,0x1c,0x9c,0xa6,0xe1 +.byte 0x72,0x9e,0xc1,0xe4,0x74,0xc4,0x96,0x5d,0xf4,0x4b,0x23,0x4f,0xa5,0x32,0xff,0x38,0x21,0x8f,0x43,0xe5,0x96,0x20,0x3c,0x78,0xb8,0xb4,0xcd,0x29,0x62,0x84,0x59,0xb5,0xb4,0x57,0x07,0xa8,0x79,0x77,0x21,0xf4,0x82,0xa7,0xb1,0x36,0xee,0x16,0x8e,0xb5,0x9a,0xf7,0x03,0xac,0x64,0x03,0x20,0x48,0x24,0xbc,0xbb,0xec,0x50,0xed,0xa1,0xf3 +.byte 0x67,0xd9,0x34,0xe1,0x0c,0x0b,0xc3,0xd0,0x46,0x0b,0x55,0x85,0x59,0x3c,0xb4,0x7d,0xd0,0xc2,0xe7,0x95,0x24,0x1f,0x53,0x76,0xf1,0x81,0x4a,0x61,0x6a,0x2e,0x3b,0x3f,0x92,0x14,0x7c,0xe0,0x33,0x7f,0xb4,0x85,0x92,0x78,0x0c,0x0b,0xe7,0xbd,0x7a,0x08,0x31,0x7d,0x47,0x3b,0xfa,0xdd,0x90,0x9e,0xf0,0xa9,0xd1,0xa7,0x7c,0x2a,0x37,0xb1 +.byte 0x23,0x71,0x34,0xa0,0x63,0xfb,0x9e,0x8f,0x39,0x00,0xa0,0x09,0xd4,0x1f,0xf4,0xba,0x2d,0xc1,0xac,0x6c,0x94,0x18,0x56,0x3e,0x89,0x92,0x63,0x10,0x5e,0xfe,0x76,0xec,0x4e,0xb6,0x5d,0x59,0xf9,0x94,0x46,0x4f,0xda,0xd5,0x3e,0x6c,0x48,0x49,0x7e,0x7c,0x77,0xe7,0x7e,0x22,0x31,0xb5,0x9d,0x15,0xd3,0x08,0x24,0xdb,0x67,0x98,0x6b,0xfc +.byte 0x45,0x54,0x85,0x29,0x9a,0x47,0xa5,0x60,0xe2,0x46,0x36,0x45,0x16,0x54,0xd6,0xb1,0x5c,0x38,0x45,0xf8,0x43,0x28,0x58,0x81,0xc9,0x57,0x10,0xda,0x3b,0xfc,0x3e,0xe4,0xf4,0xb2,0x16,0xb6,0x16,0x1d,0xa4,0x68,0xa6,0xe0,0x36,0xdb,0xe2,0x19,0x1c,0xce,0x9f,0x94,0xa9,0x94,0xad,0x20,0xcb,0x17,0xd0,0x92,0x37,0x75,0x88,0x0d,0xaf,0xdf +.byte 0x98,0x6d,0x19,0x9e,0x8e,0x61,0xe4,0x8c,0xfc,0x27,0x27,0x6a,0xa7,0xa4,0x66,0x7f,0x08,0x03,0xef,0x5c,0x4a,0xb7,0x89,0xa1,0xae,0xe8,0x70,0x3f,0x13,0x27,0x0a,0x7d,0x5d,0x5e,0x2b,0x69,0xb5,0x98,0x1f,0x25,0x1e,0x41,0xff,0x46,0x5a,0x25,0x1f,0xb4,0x90,0x8e,0x81,0x91,0x19,0x63,0x10,0xd4,0xa9,0xdf,0x3b,0xae,0xe6,0x63,0x1a,0xdc +.byte 0x09,0x5f,0xac,0xaa,0xb8,0x6b,0xbd,0x6a,0x90,0x70,0xce,0x2c,0x63,0x6d,0x48,0x78,0xca,0xc1,0x59,0x94,0xe2,0xc7,0x89,0x17,0x73,0xfa,0x73,0x34,0xb7,0xd3,0x9c,0x4e,0xd8,0xac,0x18,0x80,0x25,0xbf,0xbe,0x75,0x0a,0x9a,0x05,0x5e,0x54,0xcb,0xba,0xab,0xca,0x7f,0x96,0xf7,0x26,0x8c,0x82,0xe0,0x23,0xa5,0x86,0xb5,0xdf,0x31,0xd0,0x2f +.byte 0xe3,0x66,0x96,0x83,0xd2,0x04,0x43,0x8a,0x28,0x59,0x49,0xdc,0x11,0x38,0xd9,0x5f,0xc2,0x31,0xaa,0xa8,0x1a,0xff,0x57,0xf1,0x84,0x18,0x28,0xe8,0x04,0xae,0x98,0xa4,0x17,0xc4,0x35,0x75,0xf5,0x37,0xf5,0x27,0x3e,0x7e,0x32,0xa4,0xcb,0xd4,0x43,0x59,0x02,0x63,0x7b,0x7c,0x9d,0xa7,0x61,0x12,0xf7,0xdc,0x12,0xe0,0x07,0xac,0x96,0xf3 +.byte 0x71,0x43,0xe5,0x30,0xe0,0x4c,0x51,0x2a,0x19,0xf5,0x79,0x59,0x5a,0xc5,0x74,0xfa,0x54,0x18,0xb4,0xb1,0xfb,0x4b,0x9b,0xf8,0xe4,0xa4,0x63,0x25,0xc3,0x84,0xeb,0x2e,0xa1,0xf8,0xf8,0x7b,0x25,0x6a,0x7d,0x14,0x38,0x06,0xeb,0xae,0x9f,0xa5,0x80,0x9a,0x8a,0xb6,0x46,0x95,0xdf,0x52,0x11,0xd4,0x30,0xcc,0x11,0x8f,0x4a,0x5e,0x56,0x26 +.byte 0x60,0x3d,0x5f,0x0b,0x04,0x94,0xcd,0xca,0x1d,0x6b,0x83,0x51,0x83,0x8d,0xf8,0x33,0x4a,0x91,0x00,0xa4,0xf5,0x44,0x5b,0xad,0xa0,0x4a,0x72,0xaf,0xe6,0x4a,0x0d,0x1e,0x9f,0x18,0x6b,0xb4,0xdf,0x85,0x61,0x2a,0x3b,0xe1,0x4c,0xaa,0xc3,0x17,0xef,0x51,0x9f,0xae,0xb5,0xca,0xaa,0x6c,0xd9,0xa1,0xf5,0xa3,0x6f,0x1c,0xca,0xb3,0x37,0xda +.byte 0x27,0xea,0xcb,0xb7,0x36,0xb2,0x11,0xda,0x9f,0x07,0x78,0xaa,0x6c,0xad,0x63,0x9b,0x49,0x6b,0xfe,0x1f,0x93,0x82,0x73,0xc9,0xc8,0xf6,0x68,0x54,0x50,0x77,0xba,0x78,0xc7,0x82,0xee,0xbd,0x97,0x66,0xb9,0x22,0x49,0x0d,0x7a,0x1f,0x0f,0x4e,0xe5,0x02,0x8b,0xa6,0x1b,0x11,0xfc,0xa6,0x37,0x2a,0x5c,0x66,0xaf,0xac,0xa5,0x9f,0xbf,0x26 +.byte 0x98,0x9b,0x25,0x44,0x48,0x09,0xe6,0x76,0xb9,0x08,0xf1,0x37,0xcf,0x86,0xc9,0xdf,0xa8,0xf3,0x88,0x2f,0xc1,0x33,0x15,0x95,0x59,0xf7,0x9b,0xf2,0x48,0x76,0xcb,0xd0,0x31,0xe4,0x27,0x74,0x2d,0x6e,0xd2,0xc3,0x29,0xea,0xef,0xff,0x4e,0x3d,0xda,0x3e,0xef,0x94,0x94,0x40,0xcd,0x93,0xcf,0xb8,0x56,0x29,0xf8,0x20,0x20,0xa3,0x66,0x83 +.byte 0xba,0xc8,0x4f,0xe6,0x22,0x96,0xb5,0xb2,0x44,0x75,0x55,0x98,0xed,0x11,0xd0,0x58,0x50,0x26,0xf1,0x4a,0xf6,0x80,0x5c,0x17,0x92,0xba,0xc2,0xd6,0x68,0xd4,0x7a,0x4f,0xdf,0x16,0x97,0xbd,0xad,0xd7,0x1b,0x0c,0xe5,0x23,0xa9,0xaa,0xf4,0x1c,0x8d,0xec,0xbf,0xf0,0xb5,0xaa,0x49,0xfd,0xf1,0x31,0x9b,0xf9,0xe9,0x21,0xa1,0x20,0xab,0xbe +.byte 0x56,0x8c,0xf2,0x85,0xdc,0x1f,0xea,0x25,0xce,0xf5,0x6c,0x18,0x7d,0xc4,0x1a,0x01,0x08,0x01,0xed,0x02,0xa8,0xac,0x7f,0x74,0x2c,0xd7,0x28,0x25,0x6e,0x68,0x19,0x38,0x8d,0x20,0x51,0x8f,0x38,0x8b,0x03,0x36,0xae,0x50,0x35,0x28,0x65,0x7e,0x15,0x2a,0x80,0x2c,0xae,0xcd,0xb3,0xb6,0x91,0xf1,0x8c,0xf2,0x8c,0xc5,0xce,0x3e,0x3a,0x97 +.byte 0x5a,0xff,0xe1,0x37,0x13,0xf7,0x6b,0x07,0xb2,0xaa,0xaa,0x57,0x18,0xb7,0xb2,0x19,0x52,0xbf,0x59,0x0b,0x6f,0xba,0x56,0x54,0x14,0xac,0x21,0xfd,0x7d,0x03,0x4b,0x0b,0x39,0x54,0xba,0xf9,0xba,0x73,0xcd,0x67,0x13,0x30,0xca,0x19,0x80,0x4f,0x18,0xb4,0x75,0x2a,0xec,0x78,0xa7,0xd0,0x5c,0x53,0xe2,0x43,0x2c,0x08,0x5f,0x5c,0xe6,0x60 +.byte 0xde,0x04,0xf6,0x75,0xca,0x35,0x3b,0xf6,0x68,0x53,0x60,0xc0,0xed,0xb0,0x15,0xa1,0xa4,0x89,0x23,0x34,0x49,0x35,0xd2,0x78,0x4b,0x8f,0x7c,0x8d,0x59,0x22,0x9f,0xad,0x72,0x47,0x5b,0xde,0xf2,0x09,0x08,0xa0,0x8d,0x5f,0x4d,0xc3,0xd1,0x83,0x17,0xbc,0x39,0x8e,0xa5,0x53,0xaa,0xe3,0x31,0x03,0x93,0x14,0xb4,0x57,0xf0,0xdf,0x54,0x1d +.byte 0x79,0x4d,0x21,0x1a,0x8f,0x3f,0x6e,0x07,0x41,0xcc,0x2d,0x94,0x55,0x4e,0x50,0xfd,0xac,0xe3,0xef,0xa7,0x50,0x3b,0x3c,0xda,0x32,0x25,0xee,0xd9,0x01,0x37,0x8e,0xb3,0x23,0xc5,0x5e,0x12,0x88,0x6d,0xd5,0x41,0xfd,0x3f,0xfa,0x75,0xb8,0xcb,0x82,0x10,0x81,0x38,0x1b,0x10,0x2d,0x2c,0x6b,0x62,0xa1,0x7c,0xd1,0x75,0xd8,0x8c,0x0c,0x2f +.byte 0xe8,0x97,0xff,0x18,0xb3,0x12,0xa2,0xef,0x6c,0xc5,0x79,0x9f,0x64,0xf3,0xc7,0xdc,0xdb,0x54,0xa4,0x25,0xc7,0x30,0xfb,0x6c,0x5a,0x50,0x24,0xf9,0xb6,0xc9,0xe7,0xda,0x78,0xcc,0x1b,0x5e,0xf3,0xe7,0x32,0xd8,0x36,0x47,0x10,0xe5,0x2c,0xeb,0xea,0xf7,0x25,0x30,0x93,0x64,0x88,0xc8,0x59,0xf8,0x5c,0x02,0x43,0x4c,0x23,0x8e,0x1c,0x42 +.byte 0xe4,0x36,0x39,0xbf,0xba,0x8b,0xe3,0x53,0x01,0x32,0x0d,0x89,0xc2,0xea,0x35,0x94,0xf1,0x0d,0x29,0x45,0x08,0x07,0x15,0xcb,0xd7,0x3e,0x4d,0x9f,0x04,0xd8,0x18,0x8a,0x56,0xa3,0xb1,0x1c,0x46,0x19,0x8b,0xd0,0x51,0x30,0xf3,0xca,0x52,0x2a,0x16,0xc4,0x90,0xc1,0x00,0x50,0x87,0x8b,0x4c,0x71,0x61,0x48,0x69,0xb2,0xf1,0x33,0xaa,0x79 +.byte 0x81,0x8b,0x36,0x33,0x19,0x41,0x6b,0xc1,0x91,0x40,0xf2,0xcc,0x1d,0x83,0x09,0xab,0xcc,0x6f,0x6c,0x54,0x91,0x62,0x80,0xac,0xe6,0x1f,0xcd,0x5d,0x05,0x2b,0xe5,0xac,0xbc,0xd6,0x1b,0x8b,0xef,0x95,0xa0,0xf3,0xfe,0x8e,0x4d,0x32,0x77,0xe8,0x02,0x8f,0x44,0xad,0xc4,0x40,0xc3,0x99,0x68,0x81,0x47,0x15,0xbd,0x3b,0x8f,0x0b,0x9b,0x3a +.byte 0xb3,0x9d,0x8f,0x3d,0x86,0xd1,0x89,0x5f,0x67,0x19,0x33,0x2d,0x18,0x64,0x0e,0x3a,0x13,0xa4,0xe9,0xb4,0xc9,0x90,0x09,0x6a,0xcb,0x5d,0x0d,0x83,0x13,0x04,0x29,0xe5,0xa5,0xf4,0x00,0x56,0xf4,0x80,0x96,0x33,0x93,0xe4,0x9b,0xc4,0x6e,0x38,0xbf,0x0a,0xe0,0xee,0x8c,0x89,0x5d,0x60,0x36,0x7e,0x69,0xc2,0xc7,0x28,0x6f,0x2b,0x97,0xfb +.byte 0xb3,0x5b,0x82,0xe8,0x9a,0x36,0x44,0xd7,0x1f,0x9b,0x1b,0xd0,0x14,0xe4,0xd4,0x0d,0x35,0xcd,0xee,0x88,0x50,0x37,0x5c,0x88,0x09,0xa5,0x16,0x4d,0xe1,0xbc,0xe8,0x79,0x8f,0xa9,0x18,0xb8,0x43,0xb4,0xd7,0x32,0xcd,0x26,0xdd,0x78,0x29,0x59,0xad,0x29,0xe3,0xe0,0xe7,0xcf,0x16,0x03,0xc6,0x8a,0xb6,0xa2,0x09,0x9a,0x6e,0x90,0x7b,0x0c +.byte 0x9d,0x20,0xb6,0xc4,0x28,0x3f,0x44,0x06,0xa9,0x45,0x72,0x27,0xa7,0x56,0x3f,0x07,0xff,0x13,0xd9,0x80,0xda,0xbd,0x25,0xad,0xd3,0x74,0x2c,0xd8,0xd2,0x93,0xa5,0xda,0xbc,0x5f,0xa5,0xde,0xb7,0x3a,0xf0,0xd2,0x17,0xb1,0xc3,0x70,0x2a,0x85,0xde,0xf0,0x97,0x7b,0x96,0xb2,0x0e,0x45,0x7f,0x63,0xd4,0x94,0xd8,0x78,0x05,0xcf,0xea,0xb3 +.byte 0xfb,0x7a,0x79,0xb5,0x91,0x53,0xb8,0x8c,0xa2,0x03,0xf4,0xc3,0xed,0xf0,0xab,0x33,0x5c,0x6e,0xcd,0xbd,0x73,0xe3,0xe9,0xd0,0x83,0x2a,0x2a,0x68,0x32,0xf1,0x69,0x4f,0xd0,0x8b,0xe8,0xa1,0x7d,0x5b,0x0f,0x69,0xc2,0x33,0xbf,0xc1,0x54,0x29,0x47,0xed,0x9f,0xdb,0x35,0x0a,0x3d,0x2b,0x9d,0x8b,0x91,0xb6,0xe0,0xbc,0x53,0xba,0xb7,0xcd +.byte 0x2c,0xd9,0xeb,0x81,0xa0,0x2e,0x14,0x6e,0xdc,0xe1,0x90,0x36,0x14,0x9d,0xa8,0x8b,0x6b,0x1b,0xac,0x4c,0x09,0x8b,0x1a,0x87,0xf4,0x66,0xf6,0xfb,0x62,0x92,0x13,0xcf,0xb2,0x96,0xf0,0xc9,0x8b,0x12,0x99,0xf1,0x16,0xae,0x5c,0x27,0x24,0xa8,0xfd,0xb3,0x4c,0xc2,0xe6,0x3f,0xd2,0xc6,0x0c,0xf2,0x65,0x4e,0xdf,0xf1,0x06,0xb8,0x99,0xc4 +.byte 0x3a,0x35,0xba,0xed,0x18,0x3e,0xfa,0x03,0x51,0x8d,0x45,0x68,0x12,0x7b,0xb6,0xac,0x63,0x99,0x47,0xee,0x6f,0x8b,0xcb,0xc1,0x0a,0xf9,0x23,0xf0,0x05,0xe1,0x03,0x4a,0xb5,0xe0,0x65,0x71,0xc8,0x64,0x7e,0x0d,0x39,0xe7,0x96,0xdb,0x34,0x63,0x2e,0x1a,0x27,0x85,0x52,0x63,0x8e,0x44,0xfb,0x61,0xca,0x79,0xe5,0x91,0x99,0x83,0x2d,0xe0 +.byte 0x26,0x04,0xad,0x43,0x26,0xf2,0x7e,0x56,0xae,0x35,0x6a,0xfb,0xec,0xc6,0x27,0xe4,0x3a,0xa3,0x6b,0x63,0x72,0xba,0x98,0x03,0x9f,0x2a,0x4c,0xb1,0x33,0x22,0x9d,0x53,0xf6,0x00,0xa3,0x1e,0x32,0xcb,0xbe,0xe0,0xc2,0xf8,0x71,0xcd,0x3f,0xe3,0x4d,0x83,0xf2,0x9f,0x1c,0x91,0x35,0x97,0x52,0x95,0xba,0x24,0x04,0x04,0xca,0x32,0x6d,0xd7 +.byte 0x4b,0xd4,0x9e,0x8b,0x73,0x42,0xfb,0x9f,0xfc,0x93,0xea,0xc2,0x41,0x56,0xa9,0xe5,0xdd,0xd0,0x37,0x8a,0xe2,0x92,0x9f,0x45,0x4f,0xd8,0xef,0xe6,0x6f,0x58,0x41,0x5f,0x7b,0xe7,0x0f,0x32,0xce,0x06,0x02,0x7f,0xe2,0x37,0x87,0xb7,0x35,0x72,0x68,0x87,0xc9,0x35,0xa8,0x51,0xce,0xd8,0xde,0xc3,0x8c,0xb4,0xab,0xf4,0xa7,0x3b,0xcd,0xc8 +.byte 0x0a,0x56,0x5b,0x48,0xb1,0xa4,0x27,0xa8,0x9e,0x3e,0x04,0xbc,0xb3,0x63,0x3e,0xd5,0xf7,0xae,0xec,0x0c,0x6e,0x4a,0x73,0xb6,0xed,0x66,0xea,0xc1,0x7a,0xc4,0xaa,0x21,0x27,0x62,0xef,0x3d,0x1d,0x51,0x8b,0x63,0xe6,0xe2,0x8a,0xed,0x7a,0x4b,0x90,0xc3,0x9f,0x91,0xb4,0x8f,0x78,0x65,0x9c,0xdd,0x0a,0x7a,0x50,0x36,0x33,0x30,0x3b,0xb4 +.byte 0xdf,0x67,0xbd,0xfd,0x71,0xfc,0x40,0x49,0xaa,0x01,0xdf,0x68,0x67,0x73,0x31,0x2c,0x98,0x2f,0x8c,0x9e,0x2d,0xce,0x4a,0x71,0xbc,0x6f,0x90,0x1d,0xc0,0x37,0x07,0x30,0x0c,0xa3,0x04,0xfb,0xd1,0xd0,0x0e,0xcb,0xdc,0x94,0x06,0x7f,0x83,0xe5,0x45,0x47,0xd0,0x71,0x06,0x94,0x23,0x7c,0x03,0x80,0x46,0xa5,0x10,0x08,0xd1,0xdb,0xfb,0x9d +.byte 0xd4,0x05,0x01,0x5e,0x66,0x4d,0xf9,0x32,0x9b,0x5b,0xfe,0x7a,0x60,0x63,0x77,0x9a,0x31,0x34,0xe5,0x9a,0x82,0x2d,0x2b,0xb7,0xe0,0x04,0x8f,0x86,0xf3,0xb2,0x16,0x86,0x50,0x37,0x9d,0x80,0xe7,0x62,0xdf,0x77,0xda,0xf4,0xfc,0xb7,0x42,0x9d,0xac,0xcb,0x11,0xff,0x0c,0x6f,0x4e,0x16,0x0c,0x59,0x04,0x05,0x8f,0x88,0x64,0x37,0xe6,0x6c +.byte 0xee,0x64,0x58,0x79,0x60,0xd4,0x2f,0xb7,0x90,0x59,0xfb,0x82,0x3b,0x20,0x2e,0x2b,0xba,0x15,0xfb,0xf7,0x5b,0x1d,0x81,0x8a,0x8a,0x8f,0xe3,0x39,0x92,0x34,0xfc,0x3a,0x67,0xce,0xb6,0xa0,0x9b,0x56,0x78,0x96,0x4d,0x32,0xbf,0x9c,0x83,0x9e,0x19,0x66,0x20,0x42,0xb2,0x78,0x62,0x42,0xdd,0xdf,0x98,0xab,0x0c,0x3d,0x41,0xb5,0x74,0xc1 +.byte 0x2d,0xf0,0x02,0x58,0x6e,0xb3,0x4d,0x7b,0x41,0x1c,0xf1,0x09,0xc1,0xbb,0x84,0x67,0xf8,0x24,0x77,0x32,0xcd,0x7a,0x63,0x87,0x0d,0xf2,0xc5,0xaf,0xe4,0xb5,0xc6,0x3b,0xad,0x66,0x5e,0xae,0x90,0xc2,0x24,0x27,0x7a,0x0b,0xed,0x1b,0x86,0x5d,0x02,0x19,0x85,0x78,0xc8,0xb1,0xce,0xe7,0xc9,0x5c,0xce,0x43,0x58,0xac,0x1c,0x4e,0xcd,0xb8 +.byte 0x3a,0xb8,0x7a,0xf3,0x79,0x4b,0x97,0xcf,0xbe,0x88,0x24,0xd0,0x9a,0x5a,0x55,0x43,0x0c,0x48,0xa2,0x7f,0xaf,0x4b,0xd8,0x16,0x02,0xfb,0xe6,0x0c,0x6b,0x85,0xb4,0xb8,0x5e,0x40,0x60,0x5d,0x93,0x51,0xc6,0x32,0xb9,0x4a,0x23,0x96,0x71,0xeb,0xe8,0xe8,0x01,0x1e,0x85,0xb0,0x47,0xde,0x86,0x15,0x52,0x3a,0xb2,0xd3,0x86,0x4b,0x78,0x09 +.byte 0x9c,0x6e,0x9d,0xd9,0xef,0xe8,0x64,0x2d,0x2a,0xec,0x21,0x5a,0x60,0xa5,0xe4,0x26,0xbb,0x79,0x0c,0xdb,0x48,0xd6,0x4b,0x5c,0x5b,0xe3,0x34,0xc9,0x96,0xf0,0xcb,0x68,0x8a,0x2d,0xee,0xa3,0x37,0x34,0x5f,0x3e,0x65,0x40,0xce,0xe1,0xc8,0x2e,0x11,0xca,0x42,0x51,0x53,0x72,0x3d,0xa9,0x68,0x54,0xb4,0xd8,0xd7,0x72,0x84,0x8d,0xcd,0x6d +.byte 0x1f,0x0e,0x0c,0x0f,0x32,0x3a,0x7d,0xdd,0xc1,0xd3,0xe7,0x2d,0x1f,0x52,0x8b,0x73,0x86,0x70,0x2a,0xcb,0x71,0x37,0xa1,0xab,0xe3,0x94,0x5a,0xd7,0x9d,0x68,0xc1,0x6e,0x5d,0x72,0x25,0x81,0xe8,0x45,0xad,0x6c,0xf8,0xdb,0x9b,0x70,0x31,0xb9,0xf0,0x4f,0x23,0xd7,0x03,0xc8,0x87,0x43,0x51,0x7a,0x55,0xfe,0x6f,0x2d,0x40,0xbc,0xfe,0xdf +.byte 0xe6,0x21,0x4b,0x4d,0xc6,0x02,0x48,0xe7,0x7a,0x2a,0xef,0x91,0xdf,0xbc,0x98,0x91,0x6f,0x59,0xc4,0x47,0x77,0x2e,0x45,0x45,0x23,0x47,0x5d,0xf8,0x50,0x41,0x84,0x75,0x8a,0xe7,0x4d,0xfb,0xeb,0x58,0x00,0xcf,0x42,0xca,0x02,0x05,0xc7,0xfa,0x11,0xfb,0x6e,0x90,0x7d,0x53,0xa0,0x19,0x23,0x24,0x8f,0x89,0x17,0x40,0xbe,0x11,0xfb,0xd9 +.byte 0x04,0xf8,0x84,0xeb,0x90,0x7c,0x84,0x45,0x9c,0x53,0x45,0x5e,0x45,0x51,0x55,0xfc,0xf1,0x6b,0x02,0x24,0xfd,0x95,0x4a,0x40,0x80,0xdc,0xa6,0x94,0x15,0x2c,0x1d,0x85,0xa0,0x07,0x8d,0xf8,0xf2,0x95,0x0c,0xa0,0x4e,0x5a,0x5b,0x29,0x09,0xcc,0xf3,0x4e,0x8e,0xea,0xe8,0x26,0xb8,0xbe,0xb2,0x6f,0x76,0x6f,0xa4,0xe5,0x6a,0x50,0xcf,0xc8 +.byte 0x7d,0xb6,0x1e,0x9d,0x90,0x6b,0xde,0xe2,0x55,0x49,0x97,0x00,0xa5,0xc5,0x1f,0x1c,0x41,0x66,0xe7,0x6b,0x20,0xb2,0x1e,0xc7,0xb3,0xd4,0xa9,0x75,0xbb,0x83,0x24,0xd0,0xdf,0xbd,0xba,0x2c,0x2f,0xa4,0x03,0x1d,0x17,0xc5,0x74,0xc2,0x6a,0x20,0x71,0x18,0xd1,0xc5,0xb0,0x78,0xfe,0xda,0x55,0xd2,0x43,0x2a,0xd8,0x88,0x74,0x75,0x86,0x07 +.byte 0xe9,0x8b,0x0d,0x0f,0xe5,0x8d,0xe8,0x3d,0xf4,0x93,0xde,0x4c,0x97,0x98,0xe2,0x9b,0x22,0xde,0x13,0x18,0x8b,0xc5,0xe1,0x6f,0x6d,0xb4,0x19,0x46,0xff,0xbd,0xa6,0x2e,0xe6,0x48,0xcd,0x66,0x22,0x7d,0xf4,0x0e,0xeb,0x74,0x25,0x5c,0x90,0x0e,0x26,0xce,0x17,0xe9,0xdb,0x30,0xb9,0x25,0x99,0x96,0x46,0x3a,0x78,0xa3,0x76,0x2d,0x9e,0x42 +.byte 0x06,0x8a,0x1e,0x62,0x46,0xa4,0xd0,0x1d,0xe2,0x4c,0x3c,0xb4,0x4c,0xc0,0xd1,0xf7,0x05,0x5b,0xe4,0xd4,0x71,0x73,0x31,0xfc,0x98,0x2a,0x55,0xb0,0x78,0x92,0x59,0x8b,0x25,0x97,0x15,0xf2,0xf9,0x57,0x8b,0x7c,0xd4,0xc4,0x47,0x2f,0x10,0x3b,0x76,0xde,0x5f,0xb1,0xdf,0xdc,0xb0,0x15,0xd5,0x4a,0xd2,0x54,0xad,0x5e,0x32,0xf4,0x5a,0x1a +.byte 0x8d,0xe8,0xa0,0x4a,0x4e,0x04,0xdc,0xdd,0xd2,0x57,0xe5,0x24,0x4b,0x93,0x51,0xef,0xd4,0xba,0x3f,0x77,0xfc,0x0a,0x5c,0x7d,0x6e,0xa7,0x86,0xe5,0x88,0xd1,0xac,0x74,0x46,0x9a,0x39,0xb6,0x98,0x3d,0xae,0x89,0x4e,0xea,0x8d,0xdc,0xc7,0xb9,0x0c,0xd7,0xa6,0x06,0x4d,0x28,0x2b,0x51,0x2b,0xdb,0x30,0x4a,0x91,0x1c,0x40,0x89,0xe4,0xba +.byte 0x72,0xd5,0xed,0x16,0x66,0xb8,0xef,0x81,0xd9,0x51,0xf8,0x1b,0xff,0xab,0x8b,0x52,0xb8,0xf3,0x11,0xb3,0xe5,0x04,0x5a,0xb0,0x60,0xa3,0x35,0x12,0x6a,0xa0,0x75,0x5c,0x21,0xa9,0x5a,0xe8,0xd3,0xd7,0x8a,0x1f,0xe0,0x9b,0xb7,0x1e,0x7d,0xbe,0x81,0xaa,0x56,0x5a,0xd8,0x2d,0x7e,0x0c,0x60,0xb2,0x68,0x26,0x6d,0xaa,0x8b,0xcc,0x11,0x40 +.byte 0x25,0xea,0xc9,0x94,0xfb,0x3b,0x9b,0xa7,0x3a,0xde,0xd9,0xfe,0x6b,0x4b,0xfc,0x3f,0xbf,0xdd,0x51,0x9b,0xa1,0xca,0x2f,0xed,0x33,0xd8,0x3d,0x92,0xa4,0x1d,0xee,0xb2,0x47,0xd0,0x72,0x6a,0x96,0x33,0x0f,0xdd,0x0a,0xd9,0xbd,0x86,0xdb,0x25,0x53,0x0e,0x3c,0x31,0xad,0x05,0xb9,0x24,0x13,0x00,0xdf,0xc2,0x7c,0x3d,0x03,0x9b,0xf6,0x6d +.byte 0x93,0xd9,0xdf,0x73,0xf8,0x1c,0x98,0xe2,0x77,0x46,0x46,0xdc,0x07,0xe6,0xbb,0xc1,0xa7,0xb6,0xbe,0x21,0x07,0xae,0xdb,0xca,0x69,0x2d,0x8a,0x2b,0x59,0x27,0xe0,0x7c,0xf0,0xf1,0x34,0x69,0x97,0x44,0xba,0xbb,0x48,0x9f,0xd9,0xd8,0x16,0x1a,0xef,0x11,0x68,0xb6,0xaf,0x3a,0x10,0xc6,0x7c,0xd1,0x12,0xc7,0x89,0x47,0xe3,0xd1,0x24,0xc6 +.byte 0x44,0x9f,0x7e,0x6a,0x66,0x43,0x48,0xd6,0x9f,0x7b,0xf0,0x1f,0xd2,0x5f,0x2b,0xa7,0x13,0x6a,0x7c,0x70,0x08,0x38,0xb0,0x00,0xbc,0x7c,0xd3,0x01,0x9b,0xf6,0x29,0xd3,0x9c,0xa4,0x11,0x90,0xe4,0x9f,0x04,0xd6,0x21,0xec,0xfd,0xcb,0xb8,0xe6,0xb6,0x49,0x2b,0xfa,0x4b,0x90,0x9e,0xc6,0x0c,0x87,0xff,0x5e,0x2e,0xcc,0xf8,0x09,0x70,0x52 +.byte 0x42,0xec,0x88,0xac,0x1e,0x76,0x2b,0xeb,0xfc,0xb3,0x65,0x81,0x34,0xb1,0x06,0x90,0xde,0xb2,0xc4,0xd3,0xfd,0xd4,0x9c,0x78,0x1a,0x5c,0x8f,0x65,0x0a,0xbd,0x88,0xe5,0x95,0x06,0xb5,0x94,0xe5,0xbf,0x90,0x31,0xbb,0xcb,0xce,0x19,0x51,0x25,0x4a,0x47,0x35,0x26,0x93,0xdb,0xe2,0x93,0x36,0x47,0x7d,0xdd,0x4e,0xd5,0xeb,0xdd,0x63,0x1c +.byte 0xbc,0x2d,0x75,0xdb,0xd4,0xfa,0x60,0x4b,0x51,0x45,0x32,0x0f,0x01,0xf9,0x73,0x9b,0xd8,0xbc,0xee,0xaa,0x7d,0x2e,0xfe,0xbf,0x9d,0x45,0xae,0xe2,0x01,0xe3,0xbf,0x58,0xdc,0xc0,0xb8,0xe8,0x44,0x16,0x3b,0xd8,0xaa,0x3b,0x13,0xca,0xfb,0x5f,0x8d,0xb3,0x2a,0x83,0x66,0x49,0xae,0x54,0x02,0x4e,0xd8,0x68,0xee,0x21,0x1a,0xbb,0xf4,0xf7 +.byte 0xdf,0xf1,0x51,0x7b,0x62,0xa8,0xb2,0xdc,0x4b,0xd4,0x04,0xd2,0x05,0x49,0xdd,0xa4,0x75,0xe6,0x64,0x82,0xe7,0x25,0x55,0x60,0x2c,0x9f,0x8a,0x7a,0x11,0xe9,0xf2,0x72,0xfe,0x89,0xe1,0xaf,0xca,0x0c,0xb9,0xf5,0xcc,0xcf,0x07,0xef,0x8f,0xbb,0xef,0x53,0x1e,0xe2,0xfb,0x98,0xe8,0x05,0xab,0x4e,0x7e,0x38,0x56,0x24,0xd5,0x74,0x1c,0x95 +.byte 0x1a,0x0e,0x62,0x92,0x80,0x16,0x45,0x78,0x2f,0xb1,0xe1,0x83,0x24,0x2b,0x16,0x5c,0x05,0x52,0x17,0xe9,0xe8,0x9e,0x5d,0x63,0x8f,0x77,0xc4,0x89,0x22,0x76,0x43,0x31,0xfd,0x09,0xc0,0x51,0x70,0x57,0x2d,0x51,0x91,0xe5,0x61,0x3f,0x77,0xff,0x17,0xfc,0xa6,0x19,0x9d,0x82,0x46,0x11,0x0c,0x77,0x19,0x2a,0xf5,0x19,0xb4,0x3d,0xa6,0xd4 +.byte 0x8b,0x07,0x4b,0xc6,0xa3,0x1e,0x8c,0xf5,0xe8,0x2d,0xe7,0xcc,0xa1,0x38,0x57,0x66,0x76,0x1d,0xdd,0xe3,0xb9,0x0a,0x1e,0x2c,0xad,0x09,0x07,0x26,0xff,0x7a,0xc0,0xb0,0x51,0x71,0x44,0x6d,0x2c,0x39,0x3d,0xa6,0x14,0x4e,0x74,0x2c,0x54,0x3d,0xfa,0xdc,0x2e,0x0c,0xc4,0x88,0x32,0xda,0xb0,0x9d,0xf4,0x2c,0x0a,0x1b,0xb7,0xb4,0x78,0x6f +.byte 0x1b,0x6a,0x21,0x03,0x4e,0xe0,0x87,0xa0,0x1c,0xd8,0xe6,0x0c,0x97,0x47,0xde,0x98,0x81,0x3d,0x39,0x93,0x3d,0xcb,0x29,0xa3,0x93,0x8d,0x27,0x5d,0x29,0xb5,0x85,0xc4,0x32,0xd8,0xdc,0x19,0xb1,0x63,0xdc,0x76,0x32,0xc3,0x52,0x9a,0xfd,0x3d,0xff,0xf9,0x94,0x55,0x72,0xbb,0x4d,0xe2,0x42,0xd2,0xf7,0xb2,0xac,0xac,0x5d,0x50,0x95,0xda +.byte 0x3a,0x87,0xb6,0x0f,0x27,0x72,0x34,0xe7,0xe8,0x9f,0xc7,0xba,0xca,0x8d,0xf3,0xb9,0xa1,0xdd,0xd7,0xa5,0x70,0x3b,0xcc,0x72,0x0e,0x9d,0x85,0x75,0x01,0x11,0xe1,0xc2,0xca,0xcb,0x40,0x3a,0x31,0xf2,0x5d,0x0c,0x63,0xc8,0xbf,0x38,0xde,0x09,0x3b,0x32,0xaa,0x6c,0x07,0xd2,0x2b,0x3b,0x94,0x37,0xd0,0xd9,0xe0,0x4c,0x25,0xa3,0x22,0x64 +.byte 0x05,0xcc,0x69,0x9e,0x73,0xd4,0x46,0x2c,0x73,0x23,0xd0,0x6f,0x09,0xff,0x8b,0xef,0x7a,0x08,0x3e,0xa2,0xa7,0x9d,0xf5,0xc9,0x40,0xd1,0x06,0xd6,0xe3,0x89,0xa5,0xcc,0x9f,0x40,0x67,0x80,0x11,0xec,0x5d,0x23,0x19,0xf3,0x66,0xaf,0x06,0xcc,0xe4,0xb6,0x5e,0x20,0xf7,0x19,0xce,0x1a,0xb6,0x86,0x0d,0x39,0x1d,0xc8,0x0a,0xdb,0x50,0x52 +.byte 0x7e,0x3b,0x96,0x9f,0x05,0xdd,0xd8,0xdf,0x40,0xdf,0xe4,0x66,0x14,0x4d,0x4e,0xb3,0x9f,0x86,0x7b,0xc2,0x99,0xc3,0x8f,0xb9,0xe7,0xc3,0x50,0xa4,0xab,0xb8,0x8e,0xc5,0x28,0xce,0x8b,0x51,0xcb,0xad,0xd8,0x1a,0x23,0x7d,0x12,0xc2,0xaf,0x1a,0x93,0x4c,0x57,0xe9,0x59,0x6a,0x03,0x65,0x81,0x07,0x40,0x84,0x92,0x9d,0x22,0x8a,0x3d,0x27 +.byte 0x39,0x05,0xdd,0xf7,0x20,0xad,0xc2,0x03,0x27,0x87,0x8e,0xc1,0x23,0xad,0xe5,0x59,0x16,0xe7,0xde,0xe4,0x44,0x6b,0x06,0xb5,0x1d,0xaf,0xda,0x08,0x4a,0xfa,0x75,0x1a,0x0b,0x35,0xe8,0x6e,0x29,0xd3,0x79,0x19,0x80,0xb9,0x5f,0x36,0xec,0x43,0x25,0x3c,0xbc,0xcf,0x70,0x0c,0xc7,0x2c,0xbc,0x2e,0x72,0x40,0x73,0x98,0x11,0xc9,0x72,0x9f +.byte 0xd9,0x95,0x9f,0x8d,0x4a,0x52,0xbb,0x89,0x30,0x5b,0xa2,0x7e,0x0c,0x21,0x11,0xda,0x4e,0xa1,0x7c,0xc1,0x0f,0x95,0x1b,0x5b,0x2e,0xbd,0xae,0x8a,0x56,0x82,0x8f,0x84,0x43,0xdf,0x24,0xac,0x99,0xaa,0x8a,0xaf,0x82,0x33,0xf7,0x0a,0xbf,0x5e,0xfd,0xf2,0x91,0xf0,0xe1,0x5d,0x4e,0xa5,0x16,0x6e,0xb4,0x39,0x8b,0x99,0x32,0x6b,0xc8,0x16 +.byte 0xc1,0x84,0x10,0xc2,0x74,0x54,0xfc,0x02,0x71,0x44,0xfc,0x52,0xfa,0xc2,0x3c,0x8d,0xf7,0x8b,0x1e,0xcc,0x5e,0x43,0x66,0x29,0x29,0x93,0xe7,0xf6,0x9f,0xa8,0xa3,0x35,0xc9,0xde,0xb0,0xbe,0x4d,0xdf,0x8c,0x61,0x5a,0x6b,0x16,0x88,0x33,0x65,0x47,0x98,0xd2,0xf8,0x71,0x09,0x9f,0x00,0xb6,0x9e,0x21,0x37,0x2a,0x0b,0xb4,0x74,0x6b,0x0e +.byte 0x6e,0x4d,0x14,0x45,0x6c,0x1b,0xa8,0x4c,0xa7,0xc6,0xc3,0x36,0x6e,0x9e,0x63,0x5a,0x36,0x76,0x04,0x06,0x7f,0xdd,0x74,0x24,0x19,0xd8,0xb7,0xbc,0x6c,0x52,0x82,0x67,0x6b,0xd5,0xcb,0x81,0xdf,0xd7,0xe4,0xdd,0x14,0x33,0x71,0xcf,0x6b,0x7f,0xaf,0x66,0x27,0x8a,0x70,0xb8,0x45,0xae,0x8c,0x1a,0x65,0xd3,0x16,0x5c,0x05,0x65,0xd0,0xfb +.byte 0x07,0xe3,0x98,0xa9,0x94,0x27,0x6c,0xac,0xfc,0xee,0x1b,0x35,0x43,0xd6,0x3b,0x41,0x1c,0x86,0xc0,0x4f,0xf3,0x63,0xf4,0xba,0x4d,0xdf,0x6a,0xda,0xcf,0xb5,0x9f,0x69,0x3f,0x3d,0x0c,0x80,0x79,0x02,0x34,0x4a,0x9a,0xfd,0xb6,0xea,0x0b,0x61,0x32,0x67,0x2d,0x6a,0x6b,0xcb,0xcf,0xa6,0xee,0x6a,0x93,0x11,0x00,0xb8,0x6e,0x27,0x88,0x62 +.byte 0xf7,0x4c,0x7b,0xe1,0x13,0xe1,0x47,0xaf,0x96,0x24,0x3b,0x46,0x8c,0xf4,0xbe,0x13,0xed,0x65,0xe1,0xf2,0x36,0x2d,0xa4,0x6d,0x5e,0xa6,0x93,0xfb,0x64,0x0e,0xbd,0x50,0xdc,0x29,0x4f,0x90,0x8e,0xe1,0x7f,0x5e,0x47,0x08,0x9b,0x1c,0xb7,0xce,0x06,0x80,0x52,0xc0,0xb5,0x82,0x77,0x49,0x3c,0xe0,0x70,0x1f,0x84,0x75,0x9e,0x19,0xb2,0x83 +.byte 0xda,0x40,0xf8,0xd7,0x27,0x1e,0xbc,0x39,0xb5,0x1d,0x25,0x75,0x63,0x7d,0x85,0x2f,0x09,0x07,0xe9,0x73,0x8e,0x2b,0xb8,0x9a,0xbe,0xd6,0x90,0x91,0x6e,0xdb,0x7c,0x9d,0x9b,0x43,0x1d,0x21,0x88,0x76,0xb0,0xaa,0x7b,0x68,0xe4,0xa7,0x92,0x64,0xe4,0x1f,0xff,0x53,0x1d,0xf7,0xc0,0x44,0x5c,0x0a,0x1e,0xcd,0xa7,0x6e,0x41,0x1c,0x8c,0x7d +.byte 0x66,0xa7,0xf6,0xfc,0xa9,0x0d,0x3f,0x9c,0xfb,0x15,0x87,0x14,0x20,0x43,0x1b,0x05,0xf5,0xea,0x5c,0x07,0x61,0xb3,0x0e,0x7c,0x52,0x57,0x1c,0x09,0x33,0xb4,0xd8,0x3d,0x9d,0x17,0xee,0x86,0x25,0xdc,0x6b,0xcd,0x58,0xb7,0x18,0xbd,0x85,0x39,0x0b,0xb9,0xb8,0x35,0x3a,0x86,0xbb,0x88,0xb5,0x5e,0x4b,0x0a,0x7e,0x9c,0x02,0xb5,0x45,0xe5 +.byte 0xc7,0x38,0x56,0x1e,0xe4,0xe7,0xf7,0x88,0xac,0x75,0x9a,0x97,0xa8,0x15,0xb6,0x2d,0xcf,0x2a,0x59,0x65,0x0e,0x00,0x9f,0x8e,0xa9,0x94,0x23,0x1c,0x40,0xe4,0xb9,0x6b,0xcf,0xf0,0x53,0x7f,0x98,0xd1,0xa7,0x72,0xd7,0xe3,0x22,0xfd,0x5f,0x3d,0x3f,0xd6,0x21,0xb4,0x84,0x0c,0x1b,0x1d,0x00,0x2d,0x8f,0x72,0x22,0x2d,0x2c,0x8c,0x54,0x46 +.byte 0xe5,0x53,0xca,0x66,0x67,0x5e,0xb3,0x62,0x6f,0xaf,0x33,0x81,0xc1,0xf6,0x77,0x92,0x3e,0xdb,0x74,0x68,0x93,0xca,0x38,0xf8,0x18,0x50,0xef,0xe4,0xc9,0x45,0x40,0xc9,0xf0,0xc5,0x7a,0x4b,0xf2,0xd8,0xca,0x72,0x62,0x5f,0x67,0x10,0x10,0xcc,0xff,0x1a,0xc7,0x9c,0x3a,0x7f,0xca,0x11,0x67,0x3e,0xca,0xa6,0x9c,0x48,0x15,0xaf,0x68,0xb7 +.byte 0x2b,0xa7,0xa2,0x68,0x7b,0x40,0xb2,0xe3,0x27,0x18,0x7e,0x94,0x4c,0xca,0x0e,0x5b,0x3a,0x30,0xcb,0xc3,0x72,0x31,0x6b,0xe6,0x3e,0xa7,0x09,0x3e,0xf2,0x53,0xda,0x7d,0x6f,0x55,0x08,0xd2,0x26,0xc3,0x07,0x52,0x38,0x90,0x04,0xc6,0x3c,0xb6,0xb5,0x2a,0x7b,0x38,0x07,0x9e,0xb4,0xa5,0x48,0x36,0xf5,0x5e,0xac,0xa8,0x97,0x4e,0x37,0xc2 +.byte 0xee,0x12,0x88,0x28,0xd0,0x7d,0xd1,0xae,0xc0,0xc7,0x84,0x69,0x25,0x79,0x9a,0x8a,0x16,0x49,0x50,0x72,0x69,0x1a,0x02,0xc9,0xfe,0xd5,0x2c,0x40,0xc6,0xc8,0x8b,0x7d,0xe3,0xab,0x89,0xe3,0x78,0xf1,0xe9,0xbd,0x3c,0xbd,0x02,0x96,0xfe,0x0c,0x5c,0xc4,0x9e,0x89,0x3a,0x4b,0xe9,0xcd,0x41,0x1c,0x59,0x71,0x52,0xb0,0xc9,0x36,0xf1,0x80 +.byte 0xab,0x5e,0xbc,0xf1,0x20,0x99,0xc0,0xab,0x0c,0x59,0x43,0xc2,0xcd,0x09,0xa6,0x30,0x91,0xfa,0x12,0x23,0xbe,0x18,0x24,0xa6,0xbf,0x55,0x4c,0xe8,0x22,0xff,0x01,0xbd,0xde,0x2c,0x72,0x3c,0x0a,0x36,0xd5,0x7e,0xed,0x6a,0xe3,0x63,0x14,0x60,0xa3,0x0a,0x6f,0x04,0x90,0x64,0xc1,0xd1,0x78,0x54,0xae,0x19,0x74,0xe2,0xea,0xec,0x86,0x22 +.byte 0xc7,0xdb,0xf6,0x48,0x0e,0x75,0x43,0x04,0xf7,0x62,0xe6,0xa9,0x46,0x65,0xcc,0xa5,0xa4,0x1a,0xb2,0x94,0x7b,0x7a,0x8c,0x9a,0x80,0x62,0x32,0x17,0x80,0xc3,0xc6,0x54,0x0e,0x4e,0xe3,0x46,0x74,0xa8,0xae,0xcd,0xd0,0xc1,0x19,0x84,0x61,0xb4,0x1d,0x18,0x4d,0x80,0xf1,0x70,0x40,0xbe,0xa2,0xa3,0x38,0xcc,0x21,0x1c,0x2f,0x72,0x85,0x72 +.byte 0x0a,0xa1,0x0d,0xa3,0xdc,0xa2,0xf4,0x64,0x84,0x3c,0x43,0x6d,0xfb,0x45,0x11,0xf9,0x40,0xdc,0x25,0x85,0x80,0x41,0x84,0xa7,0x06,0x2e,0x79,0xbf,0x0c,0xa7,0x8f,0x17,0xea,0xa2,0xc4,0x6f,0xd8,0xc6,0x9e,0xab,0xdc,0x45,0x6f,0xaa,0xda,0xe9,0xe6,0x84,0xf0,0x5f,0x8a,0x90,0x99,0x33,0x9b,0xcf,0x03,0xe6,0xce,0x19,0x0c,0xad,0x2f,0xad +.byte 0x81,0xb8,0x17,0xff,0x6b,0xff,0xc8,0x14,0xa6,0xf4,0x37,0x55,0xdc,0xbb,0x09,0x3c,0x3c,0xe7,0x29,0x95,0x23,0x5c,0x58,0x92,0x2e,0x95,0xe8,0x3b,0x8b,0x81,0x2d,0xfd,0x58,0x8a,0x1f,0xdf,0xf1,0x54,0xa3,0xd0,0x01,0xaa,0x3d,0x32,0x61,0xe5,0x8e,0x62,0xa7,0xf6,0x3b,0x2d,0x0e,0xff,0xf4,0xe9,0x08,0xe7,0xef,0x3a,0x63,0x10,0x34,0x49 +.byte 0x14,0xe1,0x88,0xd0,0xb2,0x1d,0xb7,0x31,0xc9,0xa4,0x48,0xa8,0xaf,0x64,0x29,0xab,0x1f,0x14,0x13,0xa7,0xb8,0xb8,0xa4,0x24,0x1d,0xf9,0xb6,0x3e,0x62,0xa6,0x5e,0x10,0xcb,0x44,0x5c,0x9d,0x2c,0x58,0x3a,0x36,0xa3,0x81,0x9f,0xa9,0xa4,0xa1,0x06,0x1d,0xbf,0x97,0x03,0x88,0xf2,0xf4,0x81,0x3e,0x1b,0x35,0xea,0xd0,0xb6,0x96,0xa1,0xf7 +.byte 0x1e,0x49,0xb7,0xe8,0x23,0x6f,0x05,0x7c,0x9f,0xc4,0x53,0xb1,0x63,0xdc,0x07,0xbb,0xd6,0x57,0x85,0x4d,0x77,0x33,0x21,0xbf,0x77,0xfe,0xfe,0x34,0x52,0x02,0xe7,0xe4,0x87,0x11,0xa0,0xfd,0x11,0x4a,0x34,0x36,0x88,0x69,0xdf,0x77,0xfd,0x83,0x71,0xa8,0x68,0xed,0x49,0x39,0xb4,0x06,0x32,0x48,0xf1,0xd2,0x4e,0x61,0x47,0x65,0x26,0x87 +.byte 0xba,0x2b,0x2e,0xf4,0x12,0xfc,0xd0,0x84,0x81,0xa1,0x59,0xdc,0xe3,0x13,0x51,0x9e,0xea,0x57,0x56,0x3b,0x7c,0x71,0x6b,0xff,0xe9,0xf8,0xec,0x3e,0xe7,0xbe,0x65,0x47,0xe1,0x6f,0x8f,0x7c,0x3a,0x77,0xdb,0x75,0x4a,0x43,0x43,0x39,0x37,0xb2,0x68,0x16,0x72,0xdb,0x49,0xf7,0x13,0x3c,0x09,0x93,0xef,0xc1,0x2a,0x99,0xff,0xc7,0xdb,0xd9 +.byte 0x80,0xd2,0xfe,0x7c,0x39,0x50,0x21,0xdc,0x1d,0xae,0x9b,0xfc,0xd4,0x5f,0x56,0xae,0x6a,0xd9,0x35,0xa1,0x2b,0xd6,0x53,0x90,0xe8,0x8c,0x31,0x73,0x0f,0xa3,0x9e,0xa1,0x2f,0x76,0xa8,0x72,0x4d,0x5e,0x58,0xca,0x9f,0x8f,0xdf,0xf0,0xf9,0x6a,0x54,0xb1,0x5f,0x39,0x03,0x7a,0x26,0x06,0x71,0x74,0x6f,0x42,0xee,0x63,0x76,0x13,0xb9,0xed +.byte 0x74,0xad,0xf9,0xe0,0xa7,0x35,0x9c,0x18,0xe0,0xf7,0xc5,0xb2,0x27,0x14,0x0f,0xd7,0xaa,0x17,0x1c,0x8f,0x50,0xc8,0xb0,0xc2,0x63,0xff,0x38,0x65,0x87,0x69,0xb3,0xd5,0x3f,0xb4,0xf2,0xe8,0x8b,0x7b,0x24,0xdc,0x1f,0x62,0x2f,0x0a,0xd7,0x2d,0x0f,0x6f,0x48,0x1d,0xf0,0x3c,0xb1,0xb4,0x10,0x8d,0xc6,0x5c,0x79,0x30,0xde,0x20,0x9e,0x7b +.byte 0xf1,0xa5,0x73,0x38,0x05,0x1b,0x13,0x78,0xb1,0x02,0x2f,0x32,0x2a,0x07,0x59,0xa4,0xfc,0x88,0x08,0x0c,0xff,0x42,0x72,0x6a,0xb0,0x8a,0xc9,0x3d,0xdb,0x04,0x90,0xdd,0x0b,0xbc,0x3a,0x4e,0xfa,0xd4,0x57,0xd8,0x2f,0x7b,0xcb,0xd9,0x6a,0xe7,0xfd,0x32,0x17,0x99,0x20,0x64,0x1e,0x76,0x07,0xb9,0xa3,0x58,0x7f,0x79,0xda,0x0c,0xe0,0xec +.byte 0x30,0xbf,0xa4,0x85,0x0a,0x39,0xc0,0xe9,0xf7,0xbe,0xd1,0xa7,0x94,0x1f,0xa6,0x6d,0xe8,0xc5,0x1b,0x04,0x27,0xf4,0xdc,0xc2,0x4d,0x9a,0x0e,0x9b,0xe8,0xec,0x56,0x99,0x90,0x5f,0x8b,0x28,0x0a,0x92,0xaf,0x0b,0xa1,0xd2,0x85,0x86,0x26,0xc7,0x8a,0x01,0xa4,0x08,0x29,0x32,0x7d,0x3d,0xa5,0x74,0x9c,0x90,0x63,0x83,0x1f,0xd4,0xee,0x98 +.byte 0xf5,0x14,0xff,0x39,0xeb,0xbf,0x40,0xa4,0xc9,0x70,0x4f,0x81,0x03,0x19,0xef,0xf5,0xdf,0xf7,0x00,0x75,0xcb,0x2e,0x81,0x41,0xc5,0xda,0xfb,0x67,0x6a,0xf0,0xa3,0xd3,0x5a,0x60,0xaf,0x72,0x27,0x3e,0xad,0x37,0x3e,0x3d,0xe6,0x85,0x4c,0xa1,0xb0,0xe9,0xab,0xc5,0xd3,0x8b,0x04,0x0d,0x64,0x7f,0xa2,0xb9,0x6d,0x6d,0x28,0xf8,0x4b,0x43 +.byte 0x78,0x51,0xf4,0x84,0xf1,0x3c,0x67,0xd8,0xdd,0xd7,0x0b,0x67,0xc3,0xd9,0x95,0x7b,0xfc,0x7d,0xc4,0x33,0x05,0x90,0xec,0x0a,0x98,0xfb,0x6b,0x0d,0xe9,0x8c,0x74,0x94,0x20,0xf8,0xcb,0xca,0xb6,0x72,0x07,0x7c,0xef,0xfa,0xd0,0x3f,0x51,0xc5,0x6e,0xf8,0x3f,0x37,0xe3,0xfe,0xb9,0x9a,0x9c,0xb3,0xf6,0x96,0x4e,0x65,0x77,0x21,0xcf,0xaf +.byte 0xe7,0x20,0x06,0xc2,0x93,0xc5,0x2e,0xc0,0x7f,0xe5,0x0a,0x42,0xad,0x89,0x64,0x6e,0x95,0xbf,0x95,0x1d,0x24,0x47,0xf8,0xd5,0xec,0x7c,0x1f,0x98,0x67,0x9c,0x5f,0x6e,0xaf,0x74,0x95,0x65,0x4c,0xb6,0xe0,0xd3,0xb7,0x5b,0xc7,0x76,0xe6,0x87,0x19,0xf5,0xc7,0xb0,0x2d,0xe0,0x8b,0xaf,0x6d,0x3c,0x31,0x6e,0x84,0xc8,0x86,0x51,0xff,0x29 +.byte 0x2a,0x1f,0xea,0xd4,0x2d,0x1a,0x8f,0x04,0xb4,0xc0,0x6a,0x93,0xc2,0xc5,0xe7,0x98,0x8c,0xc7,0xff,0xbf,0xb8,0x8e,0x5b,0x29,0x5b,0xa6,0x87,0xc7,0x02,0x88,0x51,0x29,0x66,0xd8,0xf3,0x68,0x38,0xd4,0xa6,0xbd,0xa2,0x5c,0x1b,0xb7,0x13,0xd7,0x64,0xed,0x68,0x21,0x88,0x2b,0x59,0xba,0x95,0x84,0xda,0xce,0x61,0x3b,0x51,0x04,0x3e,0xc2 +.byte 0xdd,0xec,0x0c,0x6b,0xbe,0x35,0x51,0x63,0x29,0x40,0xcb,0xa5,0x62,0xe4,0x27,0x35,0x15,0x1f,0x7c,0x8b,0xe5,0xd0,0x2e,0xde,0x8c,0x3d,0xa0,0xd2,0xbe,0x51,0x3d,0x65,0xed,0x94,0x8b,0x8c,0x00,0xda,0x0e,0x78,0x4d,0x25,0xef,0x8e,0x3c,0x55,0x77,0xeb,0x58,0x06,0x7d,0xd1,0xfc,0x73,0xad,0x76,0x0a,0x81,0xbe,0xda,0x50,0x30,0xf3,0xfd +.byte 0x58,0x25,0x0a,0x4b,0x1b,0x1e,0x0b,0xd0,0x9b,0xbc,0xb9,0x31,0x26,0xbc,0x4c,0x7b,0x05,0xd7,0x5c,0xe4,0x7a,0xdd,0xff,0x04,0xac,0x5d,0xcb,0xfd,0x91,0x34,0x68,0x26,0x1e,0xb4,0x86,0xcc,0xe3,0x90,0xaf,0x6a,0x65,0xda,0x6b,0x3e,0xec,0x44,0x90,0x72,0x7a,0x34,0xfc,0x7b,0x65,0x83,0x34,0x93,0xbc,0x85,0x50,0xdf,0x03,0x89,0x35,0xb8 +.byte 0x6a,0x39,0xd3,0xb6,0x38,0x66,0x5b,0xa7,0x9e,0x93,0xa2,0x3b,0xb6,0xe7,0xee,0x1e,0x5c,0xd6,0xa8,0xd9,0x1f,0xf7,0xd1,0x0a,0x2f,0x87,0x63,0xf4,0xf9,0x8c,0xd4,0x7c,0x02,0xaf,0x7e,0xb6,0xc7,0xfc,0xc9,0x4d,0x35,0x0c,0x8c,0x3c,0x13,0x9d,0xe6,0xd7,0x2e,0x4b,0x91,0xcc,0x88,0xdb,0xfc,0x68,0x3a,0xd1,0x15,0x07,0x16,0x66,0x11,0x9b +.byte 0x66,0x9f,0x3f,0x37,0xae,0x11,0xba,0x5f,0xc7,0x3a,0x1a,0x49,0xbc,0x14,0x21,0x75,0xdc,0xcc,0xbb,0x5c,0xed,0xdc,0x8b,0x21,0x9a,0x8f,0x5f,0x91,0x6a,0x9b,0x26,0x33,0x64,0x45,0xa0,0xdf,0xc4,0xa1,0x32,0xc4,0x4c,0xc2,0x42,0x1b,0x59,0x37,0x1f,0xdb,0x01,0x6d,0xed,0xd8,0x05,0x5b,0x90,0x59,0x32,0x45,0x50,0x5d,0xf1,0x34,0xc4,0xb7 +.byte 0x52,0x97,0xbb,0x42,0x12,0xf1,0xa5,0x76,0xe4,0x1a,0xbc,0x4a,0x64,0xd3,0x08,0xac,0xe1,0x49,0x70,0x61,0xc8,0xcf,0xb1,0xd3,0xc4,0x7f,0x38,0x31,0x6b,0xd3,0xe1,0xe1,0xe9,0x5b,0xaa,0x7a,0xec,0x26,0x81,0x44,0xd3,0xb9,0x63,0xea,0x37,0x98,0x15,0x41,0xf1,0xa1,0x72,0x87,0xcc,0x3b,0x6a,0x27,0x9b,0x85,0xa8,0x7b,0xb6,0x25,0xf9,0xd4 +.byte 0x84,0x3e,0x66,0x12,0xce,0x24,0xee,0x22,0x51,0x73,0x7e,0xba,0x1e,0x95,0x64,0xc5,0xbf,0x4e,0x4f,0x73,0xc1,0xc3,0x98,0xb9,0x6b,0x90,0x1f,0x39,0xfc,0x03,0x55,0x76,0x8c,0x57,0xea,0xe8,0xc1,0x25,0x09,0x69,0xc0,0xe8,0x54,0x91,0xc1,0x7c,0x52,0x8e,0x82,0x6d,0xf2,0x0e,0x3f,0xa9,0x98,0x04,0x40,0xda,0x1c,0xc0,0xbb,0x42,0xf0,0x7d +.byte 0xed,0x78,0xb0,0x4f,0x94,0xba,0x0d,0xbf,0x60,0xbe,0x09,0x67,0x42,0xc5,0x41,0x4c,0x80,0x8d,0x30,0x10,0xa9,0xd2,0x07,0x8c,0xa8,0x40,0xc6,0xe2,0x08,0x42,0x7f,0x99,0xad,0xc5,0x66,0x1f,0xfd,0xd2,0xc5,0x79,0x77,0x9b,0x60,0x7d,0x25,0x2d,0x69,0x14,0x94,0xa5,0xf0,0x0a,0x14,0xb6,0xf9,0xbe,0x3a,0x4a,0x3d,0xc6,0x45,0x2e,0x27,0x4a +.byte 0xd1,0x1d,0xcf,0x08,0xee,0x93,0x3c,0xb5,0x8a,0xee,0xdd,0xf3,0x33,0xa6,0x35,0x9d,0xd8,0xb4,0x68,0xc5,0x98,0x09,0x78,0xcc,0xb3,0xeb,0x0f,0xcd,0x25,0xf8,0x17,0x9c,0x45,0x77,0xc7,0x06,0x40,0x44,0x90,0xec,0x6a,0xd9,0xf5,0x05,0xd4,0x88,0x17,0x47,0xeb,0x29,0x85,0x32,0x76,0x7b,0xa4,0xe3,0x65,0x30,0x50,0x9a,0x99,0x26,0x91,0x60 +.byte 0xb0,0xb8,0xe5,0x8d,0x35,0x9e,0x9a,0x13,0x65,0x82,0xb2,0x4b,0xf1,0xed,0x1f,0xb7,0xb4,0xc0,0x03,0xe6,0x1d,0x2b,0xaa,0x1e,0x01,0x92,0x0b,0xcb,0x34,0x77,0x80,0x94,0xc2,0x4e,0x3b,0x73,0xd8,0x2e,0xd8,0x95,0x33,0x05,0x65,0xa2,0x99,0x29,0x7a,0xd1,0xb3,0xed,0x5a,0x8d,0x4d,0x6a,0x6d,0x69,0x2b,0x5a,0xa1,0x3a,0xc0,0x81,0x96,0xf1 +.byte 0xc2,0xa7,0x4e,0x07,0x90,0x04,0x99,0x70,0xea,0x1a,0x3a,0x26,0xb5,0xed,0x92,0xbd,0x57,0x80,0x11,0x06,0xf2,0xb4,0x05,0x69,0x7a,0xbf,0x27,0xa1,0xbd,0xdb,0x09,0xe5,0xb3,0x2d,0x86,0x41,0xcc,0x5d,0x68,0x37,0x9e,0x98,0xa5,0x4a,0x20,0x8a,0x5f,0x54,0xae,0x4f,0x73,0xd0,0x22,0x18,0x8d,0x2b,0x91,0xcb,0xbb,0x83,0x1e,0x04,0x93,0xc8 +.byte 0xc3,0x89,0x35,0xfd,0xda,0xeb,0x52,0x53,0x9f,0xdc,0x33,0xf0,0xe0,0x99,0x19,0x11,0xeb,0x55,0xd3,0x3c,0x5f,0xca,0x29,0x52,0xe7,0x6b,0xd1,0xad,0xeb,0xed,0x8e,0x68,0x82,0x91,0x85,0x81,0x68,0x70,0x78,0x61,0x1e,0x0c,0x09,0x3a,0x82,0xdc,0xdb,0x26,0x66,0x1c,0xa3,0x80,0x99,0x23,0x8a,0x45,0xd7,0xb8,0x10,0x97,0x80,0x70,0x49,0x78 +.byte 0xa9,0x4c,0xf0,0xec,0xcc,0x05,0xd0,0x6a,0x6a,0x1a,0xa0,0xf7,0xde,0x78,0xc6,0x42,0xbe,0xbd,0xa0,0x24,0x1d,0x3f,0xdd,0xfb,0x92,0xc2,0xbd,0xd6,0x5c,0x25,0x74,0x3d,0x2b,0xb8,0x60,0x67,0xdb,0x70,0x1e,0xe8,0x9f,0xcd,0xb4,0x82,0x90,0x9e,0x2a,0x94,0xa5,0xa2,0xd4,0xd2,0x24,0xa7,0xca,0xbf,0xe1,0x8b,0xab,0xf3,0xd2,0x7c,0xa6,0xc8 +.byte 0xe6,0xaf,0xef,0xe3,0x86,0xb1,0x42,0x1d,0xc6,0xa2,0x37,0x9b,0x26,0x46,0x0b,0xfd,0xee,0x88,0xa4,0xf1,0xa8,0x72,0xaf,0xda,0x30,0x56,0x22,0xd3,0x1b,0x31,0x76,0xd7,0x03,0xef,0xf3,0x98,0x16,0x4d,0x36,0x57,0x1b,0xd5,0x90,0xb8,0x67,0x50,0x7f,0x22,0xa8,0xdc,0x9c,0xf1,0x6e,0xa4,0x65,0x45,0xf0,0x73,0xd8,0x7e,0x41,0xb0,0x68,0x52 +.byte 0x00,0x0a,0xda,0x99,0x6c,0x84,0xce,0xf0,0x73,0x65,0x93,0x52,0xc8,0x4b,0xb4,0x72,0xda,0x2c,0xa1,0x47,0xb5,0xe3,0x00,0x63,0xc0,0x4e,0x84,0x16,0x00,0xe6,0x1f,0xbd,0xba,0x49,0xcb,0xd3,0x7d,0xd2,0xeb,0x4a,0xb2,0xd5,0xb2,0x53,0x96,0xfb,0x04,0x73,0xc0,0x09,0x31,0xf3,0xf2,0xc0,0xd3,0xa6,0xe1,0xea,0xe1,0x58,0xbe,0x90,0xc9,0xfb +.byte 0x6e,0x13,0x69,0xbe,0x17,0xd4,0x16,0x5b,0xcb,0xf4,0x93,0x0a,0x38,0x46,0xea,0x64,0xad,0xb0,0x0d,0xc0,0x3b,0xfc,0xe3,0xd4,0x20,0x75,0x0c,0x3e,0x71,0x1b,0x5f,0xde,0xff,0xd6,0xfa,0x6f,0xe4,0x10,0xb0,0x14,0x05,0xaa,0x05,0x70,0x5e,0xbd,0x58,0x9f,0x3c,0x9d,0x4f,0xa7,0x5a,0x65,0x57,0x02,0x05,0x44,0xe0,0x95,0x9d,0xa2,0x60,0x06 +.byte 0xcb,0xfd,0x91,0x8e,0x7f,0xce,0xa1,0x80,0x94,0xbb,0x88,0xf2,0xa6,0xe7,0x83,0xf9,0x38,0x8f,0x09,0x8e,0xe4,0xa9,0xc2,0xc7,0x84,0x9d,0x25,0x09,0x52,0x8b,0x32,0xaa,0x3b,0xde,0xb6,0x82,0x9f,0x6d,0xc4,0xdf,0x11,0xf7,0x72,0x1a,0xe4,0x00,0x51,0x41,0x01,0xba,0x21,0xea,0x0a,0xda,0xf2,0xbb,0x66,0xae,0x51,0x2b,0xb0,0x6d,0x1d,0xe8 +.byte 0x4b,0x1e,0x42,0x68,0x3a,0xed,0xe6,0x59,0x13,0x42,0x07,0x54,0xae,0x2e,0x15,0x93,0xd7,0xff,0xad,0x49,0x09,0x41,0x52,0x6b,0x3b,0x9c,0x41,0x43,0x0d,0xed,0xed,0x6f,0xb8,0xe9,0x0d,0xcc,0xde,0x0d,0xaa,0x91,0xef,0x89,0x2f,0x2d,0x94,0xd0,0x03,0x2b,0x51,0x7f,0x85,0x9b,0x7b,0x08,0xc8,0xb6,0xe2,0x82,0x22,0xa9,0x57,0x71,0xf2,0xae +.byte 0x08,0xfa,0x6c,0xd8,0xca,0x78,0x42,0x98,0x23,0xfd,0x38,0x4b,0x6c,0xd3,0x9f,0xc6,0xa3,0xb2,0xc1,0x8c,0x4a,0xa3,0xcd,0x9f,0x56,0xe7,0xc2,0x06,0xd7,0xc5,0xc2,0xd9,0x98,0x57,0xc8,0x5a,0xaa,0xf4,0xaa,0x44,0x02,0x83,0x11,0x1e,0xf6,0x64,0x8d,0xf7,0x3b,0x86,0x3c,0x04,0x53,0x5f,0x62,0xc8,0x7a,0x0e,0x1c,0x4f,0xa8,0xe3,0x5c,0xe8 +.byte 0x64,0xf7,0xe3,0x5d,0xea,0xb5,0x2d,0xdb,0x7b,0x0e,0xdb,0x91,0x34,0xd5,0x87,0x4f,0xe6,0x73,0xee,0x3d,0x79,0x7c,0x67,0x48,0xb5,0xbb,0x42,0x96,0x0d,0x9d,0xbd,0x68,0x98,0xe5,0x59,0x51,0x16,0x45,0x15,0xac,0x80,0x41,0xae,0x45,0xdb,0xe4,0x2a,0x44,0x0d,0xe4,0x25,0xc7,0xd3,0x06,0xf7,0x98,0x15,0xe1,0xc5,0x9b,0x34,0x0e,0x87,0xb8 +.byte 0x90,0x1b,0x24,0x84,0x06,0x24,0xb0,0x80,0xbe,0x03,0xa0,0x95,0x10,0x1e,0x72,0xde,0x0f,0xd4,0x15,0x7b,0xa0,0xf5,0x42,0xc3,0x6f,0x10,0xe9,0x76,0x44,0xe3,0xa9,0xb7,0xef,0xf6,0xc2,0x80,0xe2,0x0c,0x2d,0xad,0xe0,0xb9,0x45,0xca,0x67,0x6f,0xb6,0xc5,0xc0,0x8d,0x25,0xee,0x50,0xeb,0x51,0xc6,0x87,0x87,0x61,0x3a,0x75,0x95,0x41,0x47 +.byte 0x26,0xfd,0x35,0xf6,0x46,0xf4,0xe9,0x42,0xc6,0xef,0x37,0x97,0xb3,0x0a,0x1d,0xc8,0xdf,0x07,0x24,0xb1,0x0d,0x07,0x43,0x67,0x7d,0x81,0x09,0x58,0xdd,0xf6,0xcf,0xf1,0x47,0x42,0xbd,0x3c,0xa3,0xd7,0xe8,0x73,0xf9,0x5b,0xff,0x2c,0xcd,0xe6,0xd1,0xe9,0x47,0x6d,0x19,0x9b,0x6a,0x63,0x69,0xf4,0x4a,0xdf,0x69,0xab,0xa9,0xb7,0xe5,0x8d +.byte 0x1c,0x44,0x52,0x0c,0x7e,0xa1,0xfe,0x9d,0xd5,0xa4,0x71,0x62,0x0b,0x3c,0xf6,0xd2,0xd3,0xe9,0x70,0x09,0x68,0xf7,0xd6,0x0a,0x00,0x61,0xf1,0xf3,0xd0,0x41,0x4a,0x14,0xc6,0xf5,0x49,0xb1,0xde,0x10,0xd3,0x20,0x8b,0xfe,0x78,0x6a,0x87,0x79,0x15,0xd3,0x43,0x00,0xbe,0x71,0x40,0xaa,0xca,0x1a,0x64,0xe3,0x96,0x34,0x2f,0xea,0x0c,0x11 +.byte 0x41,0x21,0xf8,0xa7,0x65,0x9b,0x75,0xe2,0x1e,0x6f,0x5e,0xe0,0x68,0x42,0xca,0xd3,0x19,0x35,0xe8,0x88,0x0f,0x05,0xa3,0xb1,0x73,0xea,0x53,0x79,0x40,0x24,0x00,0x86,0x20,0xbb,0x25,0x58,0x89,0x6b,0xde,0xd6,0xd0,0x36,0xbb,0x33,0x30,0x59,0x4b,0x30,0x92,0xac,0xe5,0x95,0x94,0x22,0xab,0xc1,0x10,0x35,0x9c,0xa1,0x20,0x11,0x5d,0x4f +.byte 0x57,0x5c,0x9c,0xb8,0x3a,0xdc,0x97,0xa5,0xf3,0x0b,0xf5,0x96,0xe7,0xef,0x90,0x72,0x01,0x52,0x70,0x5a,0xf0,0xd9,0x7e,0x59,0x05,0x8c,0xd1,0x45,0x47,0xbf,0x16,0x15,0xa2,0xc9,0xdd,0xe7,0x5f,0x4b,0x94,0x5f,0xe6,0xf9,0x78,0xbb,0x8f,0xf9,0x79,0x9f,0x5e,0xd7,0x1f,0x0b,0xef,0x8d,0xfe,0x75,0xd4,0x8a,0x12,0x28,0xa5,0xf9,0x6e,0x14 +.byte 0x3c,0x52,0x80,0x57,0xc6,0x96,0xae,0x67,0x27,0xc1,0x1c,0xb6,0xd6,0x1c,0x74,0x8c,0x6f,0xc7,0x71,0x3e,0xd5,0x73,0xf2,0x3e,0x02,0x15,0x67,0x18,0xb8,0x5b,0x61,0x9e,0xfa,0x7e,0xba,0x00,0xe9,0xd9,0x51,0x91,0x63,0x7e,0xf7,0xab,0xc0,0xc6,0xee,0x66,0xdd,0x66,0x88,0x7a,0x8a,0xc5,0xc2,0x08,0x45,0x62,0xde,0xe1,0xfb,0x35,0x65,0x34 +.byte 0x00,0x9e,0x1d,0x25,0xdf,0x69,0xb6,0xe3,0xfe,0xbb,0x13,0xac,0xd3,0x13,0xb2,0x64,0x5a,0xf3,0x47,0xf1,0x36,0x55,0x5f,0x1b,0x87,0xea,0x5d,0x5c,0xfd,0x8a,0x68,0x69,0x8a,0x00,0x9f,0x83,0xbe,0x79,0x7d,0x01,0x9e,0xf2,0xb2,0x5d,0x56,0xe0,0xe6,0x49,0xe5,0xe1,0x76,0x57,0x7a,0x85,0xac,0x94,0x16,0xe3,0x68,0x05,0x14,0xb5,0x33,0x54 +.byte 0x64,0x5a,0xbe,0xa3,0x04,0x90,0x5c,0x1c,0xf8,0x97,0x16,0x36,0xce,0x76,0xe7,0xf0,0xaf,0x8a,0xea,0x65,0xa8,0x15,0x5b,0x1e,0x0a,0x91,0xad,0x62,0x62,0x67,0xb4,0xf0,0x94,0x1f,0x64,0x50,0xa8,0xc0,0x6b,0x38,0x80,0xd7,0x53,0xbb,0x70,0xbd,0x54,0x01,0xb0,0xa5,0xbc,0x00,0xe0,0xd6,0x23,0x37,0xe6,0x9f,0x0f,0x2f,0x96,0x21,0xc2,0x90 +.byte 0x55,0x26,0x55,0xa4,0xcd,0x3e,0x54,0x6b,0xa6,0xb0,0x2c,0xf2,0xd4,0xcc,0x6a,0x44,0xea,0x18,0x61,0xc5,0x1a,0x8e,0x60,0x64,0xf4,0x5f,0x21,0x36,0x01,0x5d,0x9f,0xc4,0x2c,0x67,0x1c,0x48,0x94,0x16,0xae,0xa8,0x13,0x5c,0xee,0x18,0x88,0x61,0xe4,0x54,0x6b,0xa2,0xe8,0x7f,0xf0,0x15,0xc3,0xce,0xbc,0x5b,0x91,0x25,0x7b,0x1d,0xd3,0x9f +.byte 0x13,0x1b,0x01,0x5d,0x43,0xe8,0xa1,0x77,0x5a,0x87,0x79,0x8b,0xd5,0x69,0xf7,0xdf,0x66,0xa2,0x84,0x0c,0x66,0xac,0x15,0x65,0xbf,0x74,0xc0,0xd2,0x78,0x6a,0x3a,0x9c,0x98,0x62,0x04,0x41,0x95,0xb2,0x23,0x59,0xc6,0xb0,0xc5,0x22,0xc0,0xfa,0xaa,0xc8,0x94,0x73,0x91,0x5b,0x64,0x1b,0x74,0xbe,0xcb,0xa1,0x81,0xb1,0xc1,0x26,0xa1,0x94 +.byte 0x55,0x04,0xb3,0x9c,0x80,0xb7,0x00,0x6f,0x36,0xc7,0x7f,0x6d,0x97,0xea,0xf3,0xf5,0x55,0xc5,0xfe,0x61,0xd9,0xb1,0x6d,0x8c,0xa1,0x02,0x08,0xb3,0x41,0xe6,0xe6,0x57,0xc6,0xff,0x6e,0x47,0xa4,0x22,0x2e,0x2d,0x21,0x53,0xbe,0xe3,0xbe,0x15,0xec,0x23,0x9d,0x87,0xe0,0x2e,0xcc,0x6c,0xd0,0xc7,0xb7,0x3d,0xa4,0x07,0x5f,0x69,0x4e,0x2b +.byte 0x07,0x69,0x4f,0xc5,0xa3,0x66,0x52,0x91,0x8f,0xa4,0x48,0xb9,0x40,0x76,0xd9,0xcb,0x6e,0x1a,0x35,0x9e,0x50,0x9f,0xd1,0x78,0xb2,0xb8,0x0d,0xa8,0xf8,0x6e,0x07,0xa5,0x3a,0xdf,0x3c,0x32,0xa6,0x10,0xbd,0x73,0x2f,0x07,0x45,0x66,0x0f,0x61,0xce,0xc2,0x08,0x19,0x98,0x33,0x4b,0x59,0x81,0xb5,0x78,0x4f,0x46,0x88,0xae,0x29,0xf8,0xf5 +.byte 0xc2,0x29,0x6f,0x8f,0xe5,0x8f,0xb0,0x53,0xc8,0x7a,0x48,0xda,0x6f,0x7e,0x8a,0x69,0x68,0xab,0xba,0xd9,0x20,0x0f,0x96,0x69,0x41,0xa6,0x92,0x94,0x8e,0x0f,0x86,0xdf,0x8d,0x70,0xaf,0xfe,0xf1,0x20,0x50,0x01,0xff,0xca,0x30,0x24,0x67,0x4a,0x04,0xa2,0xde,0x06,0xdc,0x26,0x1e,0x17,0xbc,0x52,0x9a,0x62,0x72,0xc1,0xd8,0xd7,0xe0,0xed +.byte 0xcf,0x4b,0x13,0x80,0x9a,0xbf,0x72,0x4f,0xf4,0x24,0x26,0xcd,0xe0,0x21,0x99,0x7b,0x5c,0x4f,0xbf,0x5c,0x41,0x08,0x8b,0x17,0x69,0x62,0x60,0x2c,0x74,0xb0,0x2d,0x22,0x7e,0x25,0x95,0x6a,0x84,0x0f,0x45,0x8f,0x9a,0x92,0xa1,0xcd,0xa5,0x50,0xf0,0x52,0x7f,0x60,0xd8,0x91,0xe1,0x17,0xe1,0x66,0x8f,0xd3,0x1f,0x41,0x7f,0x6f,0xf1,0x72 +.byte 0xa3,0xb6,0x12,0x62,0x46,0x16,0xea,0x26,0x9e,0xda,0x61,0x13,0x0b,0x17,0xf7,0xe1,0xec,0xc0,0x38,0xfe,0x40,0x31,0x6b,0x38,0x2a,0x4b,0xa5,0x8e,0xfb,0x99,0x60,0xd6,0x4a,0xbd,0xfb,0x75,0x2b,0x41,0xd4,0x33,0x5d,0x35,0xfe,0x2d,0xfc,0x1a,0xac,0x02,0xb3,0xf0,0xa2,0x6d,0xfa,0x8b,0x12,0x99,0xdd,0x54,0xf2,0x1c,0x35,0xd3,0x60,0x5a +.byte 0xdb,0x65,0xa7,0x58,0x1b,0x82,0xb4,0xf6,0x49,0x77,0xf2,0xea,0xa3,0xa9,0x57,0x94,0xb7,0x6e,0x19,0xda,0x7e,0xa5,0x70,0xb8,0xff,0x39,0x81,0x7d,0xfa,0xea,0xd6,0xc6,0x12,0x84,0x0a,0x8a,0x16,0xde,0x99,0xa6,0xe7,0xe0,0x77,0x76,0xb8,0xa3,0x6f,0xfb,0xb4,0x8f,0xc3,0xbd,0x90,0xd8,0x2a,0x04,0xed,0x42,0x91,0x9b,0x84,0x40,0x2d,0x01 +.byte 0x94,0xdb,0xbb,0x58,0x25,0xed,0xa3,0xdd,0xaa,0x0c,0xce,0x25,0x12,0xcd,0x11,0xbf,0xd0,0x57,0xe9,0x51,0x74,0xa7,0x45,0x6c,0x58,0xe7,0x4d,0x43,0xc6,0xd0,0x09,0x93,0x2d,0xe0,0xe3,0xae,0x7b,0x8f,0x53,0xa0,0x80,0xa1,0xef,0xcb,0xf5,0xfe,0x38,0x4d,0x31,0xa2,0x5c,0xd3,0x4a,0x66,0x1a,0x5c,0x07,0xbe,0x25,0xba,0x30,0xb6,0x00,0x27 +.byte 0x52,0xb9,0x1f,0xa3,0xed,0xd7,0x31,0x33,0x4a,0xf6,0x3f,0xed,0x75,0xe7,0xa4,0xf4,0xdf,0x97,0xc1,0x78,0x90,0x9b,0x4b,0xbd,0x06,0xc6,0x72,0x5c,0xdf,0x57,0x60,0xbe,0xbc,0x88,0x02,0xb6,0x5a,0x65,0xea,0x3a,0x3a,0x74,0x03,0xc8,0x66,0xef,0xf0,0x63,0xc7,0x9d,0x58,0x8e,0xa1,0xb2,0x25,0x4f,0xc4,0x14,0x5f,0x80,0x78,0x08,0x06,0x21 +.byte 0x50,0x34,0x01,0x2b,0x15,0xf4,0x7d,0x1f,0x1f,0x32,0x36,0x0a,0x52,0x1f,0x50,0xa2,0x50,0xbc,0x9a,0xdf,0x4e,0x84,0x49,0x2d,0x08,0xaa,0x46,0xc0,0x0e,0xcf,0x27,0x17,0x91,0x78,0x8c,0xb9,0x72,0xc5,0x8e,0x25,0x85,0x11,0xff,0x2f,0x4a,0x71,0x7c,0x14,0xfe,0x86,0xfe,0xb4,0x3a,0xd0,0x67,0xfd,0xaa,0x9b,0xee,0x89,0x66,0x03,0x59,0x4e +.byte 0x1c,0x96,0xaf,0x2b,0x8d,0x4d,0x6f,0xf6,0x72,0xc6,0x13,0xc7,0x14,0xce,0x19,0x0c,0x0b,0xa3,0x01,0x12,0x7c,0x8e,0x10,0xb8,0x63,0x41,0x57,0xb9,0xfe,0x6e,0x3e,0xda,0x20,0xfb,0x92,0x08,0x7d,0x66,0x31,0x9d,0x4f,0xdb,0x14,0xf4,0xb6,0xb8,0xea,0xee,0x54,0x0f,0xaf,0xc1,0x99,0xf0,0x8f,0x55,0x44,0x20,0x44,0xd0,0xa6,0x98,0xa3,0xa8 +.byte 0x8b,0x8e,0x26,0x03,0xec,0x2d,0x50,0x4f,0xb0,0x8d,0xd0,0xf2,0x96,0xcc,0x18,0xa9,0xb1,0x0f,0x79,0xe3,0x9f,0x08,0xb3,0x53,0x0b,0x9c,0x9f,0x22,0xdb,0x45,0x57,0xd6,0xaa,0x3b,0x6a,0xcb,0xdc,0xc9,0xda,0x57,0x75,0x65,0x0a,0xc1,0x17,0xb3,0x97,0xa9,0x07,0x40,0x20,0xfb,0x72,0x2d,0xc6,0x37,0x1e,0x44,0xb7,0x7e,0x0b,0x38,0xcc,0xfc +.byte 0xa0,0xed,0x48,0xa9,0x9b,0x87,0xbc,0x71,0x0f,0x8b,0xda,0x4f,0x09,0x27,0x1e,0x3d,0x9c,0x03,0x62,0x81,0xa8,0x7c,0x7b,0x8a,0x14,0xa7,0x22,0x69,0xa8,0xba,0x0e,0xcc,0x1f,0x2b,0xb3,0x0f,0x7d,0xce,0x3f,0xec,0xb5,0x9d,0xe0,0x3a,0x67,0x56,0x08,0x5d,0x03,0x8b,0x71,0x01,0x44,0x11,0x1b,0x7b,0xcf,0xcc,0x2e,0xfc,0xa5,0x52,0x9b,0xeb +.byte 0x1e,0x8a,0xa1,0x86,0x64,0xcf,0x32,0x03,0x6b,0x3e,0x29,0xe7,0x9a,0x16,0x7e,0xe2,0x21,0x2f,0x5f,0xe2,0x86,0x7f,0xf8,0x22,0x36,0x10,0x99,0xc8,0x27,0x43,0xa1,0xb9,0xf4,0xb4,0xb8,0xe1,0xa3,0x1d,0x80,0x9c,0x81,0x92,0xef,0x1f,0x28,0x54,0x51,0xf3,0x62,0x9c,0x7a,0x24,0xd4,0x5a,0xdc,0x38,0x4f,0xa5,0x57,0xdd,0x4d,0xa1,0x52,0xf3 +.byte 0xd3,0x9d,0xa1,0x93,0x5e,0xbe,0x9b,0xd1,0x2a,0x52,0xf1,0xbb,0xa5,0x3f,0x3a,0x94,0x7c,0x7d,0x41,0x61,0x36,0x14,0x25,0x5f,0xab,0xef,0x32,0xf3,0x0f,0x6c,0xc5,0xf5,0x5f,0xe5,0x88,0x51,0x17,0x60,0x8b,0xd5,0xa6,0xea,0x8b,0x21,0xec,0x1a,0xa7,0x69,0xa0,0x59,0xf9,0xeb,0x51,0x94,0x70,0x2b,0x96,0x2e,0x71,0xa9,0x8c,0x12,0x15,0xce +.byte 0x7d,0x59,0x6b,0xf2,0xca,0x2c,0xbd,0x85,0xfb,0x23,0xab,0xcb,0x89,0x89,0xda,0x28,0x49,0x7e,0xfc,0x90,0x2a,0x9a,0x3d,0x6d,0x24,0x57,0xba,0xd9,0x30,0xe0,0x10,0x04,0xb1,0x7f,0x8a,0xcf,0xc8,0x27,0x63,0xd6,0xbd,0xea,0xef,0x90,0x6f,0xc2,0xfc,0x78,0xfd,0xc4,0x5b,0x45,0x0c,0x41,0x8a,0x53,0x5b,0xbc,0x62,0x32,0x86,0x7f,0x19,0xb7 +.byte 0x8b,0x03,0x50,0xed,0xca,0x8e,0x8b,0xa0,0xe3,0xc2,0x0e,0x81,0xe5,0x8a,0xe8,0xf1,0x6a,0x0b,0x1a,0xa7,0xb6,0xed,0x74,0x23,0x34,0xad,0x5b,0xd8,0xf7,0x17,0x8d,0xa5,0x05,0xf3,0x00,0x4a,0xad,0x7e,0x91,0xc9,0x6b,0x13,0xff,0x76,0x78,0xf0,0xd1,0xf4,0x99,0x43,0x73,0xd9,0xba,0x59,0xbe,0xb5,0xa3,0xbd,0x5e,0xc5,0xd3,0x88,0x06,0x9c +.byte 0x86,0x32,0xb4,0xd5,0x30,0x77,0x78,0x8e,0xd5,0x6a,0x1d,0xeb,0xfd,0x6b,0xe6,0xf8,0x4b,0xe8,0xf3,0xba,0xbb,0x86,0x8e,0xe6,0x63,0x83,0x92,0x23,0x05,0x58,0x2e,0x61,0xdd,0x38,0xad,0x8d,0x19,0x7d,0xfa,0x7c,0x3e,0xc8,0x9f,0xae,0xea,0x6d,0x12,0xf0,0xa4,0x08,0xed,0x12,0x0c,0x97,0x87,0x58,0xd8,0xbc,0x3f,0xde,0x7c,0xee,0x0c,0xc0 +.byte 0xa2,0x2e,0xf0,0x25,0x6d,0xf3,0x30,0x23,0xa7,0xc2,0xc8,0x09,0x67,0x01,0xe1,0x25,0x26,0x46,0x38,0xf5,0x5e,0x55,0x8b,0xd6,0x43,0x6a,0xb8,0xe4,0xdf,0x0f,0x5d,0x6c,0xc3,0xb2,0x56,0x38,0xda,0xbc,0xbf,0x5e,0x85,0x8c,0xd5,0x2a,0x6a,0xe2,0xff,0x4f,0x36,0xf7,0x52,0x2c,0xe2,0xae,0x65,0x65,0xd1,0xfc,0xd3,0xc6,0xf7,0x26,0xa6,0xd0 +.byte 0x0b,0xc8,0xf0,0x68,0x5d,0x07,0x89,0x06,0xb3,0xfb,0x39,0x1d,0xd8,0xd8,0xd7,0x53,0xd0,0xc9,0x76,0x56,0xc0,0xd3,0xf5,0x66,0x80,0x5b,0xff,0x4a,0xdf,0xae,0x52,0x86,0x54,0x24,0x53,0xcf,0xcf,0xd2,0x89,0xde,0x71,0x62,0x9c,0x31,0xa5,0x3d,0x62,0x07,0xa1,0x33,0x49,0xbb,0x06,0x88,0xd8,0xa1,0xdd,0x0e,0x47,0x8d,0x72,0x00,0x2d,0x51 +.byte 0xa3,0x35,0x6e,0xb6,0x1f,0xbf,0xe5,0x42,0x68,0x6f,0x62,0xfa,0xf3,0x12,0xa9,0x1a,0xbd,0xe8,0xa4,0xf1,0x6d,0x07,0xe7,0x70,0x87,0x44,0xb7,0x3d,0xea,0xdc,0x3a,0x24,0xbd,0xa0,0x9b,0xb8,0xc5,0xa8,0xd9,0x06,0xde,0x02,0x68,0x7e,0xd5,0x2d,0x3b,0x5f,0x12,0x31,0x72,0x35,0x77,0xf6,0x10,0x6e,0x81,0x7d,0x3c,0xac,0x95,0x5b,0xbe,0x90 +.byte 0x74,0xf3,0x3e,0x9b,0x07,0x54,0x97,0xe3,0x1d,0xcf,0xe2,0xc5,0x80,0x6b,0x5f,0x0b,0x96,0x00,0x0f,0x0e,0x53,0x36,0x76,0x6e,0x99,0x0c,0x32,0xa2,0xc9,0xaa,0xa0,0xa1,0xb7,0xee,0x9d,0xd6,0x46,0xe7,0x2d,0x10,0x7a,0xf2,0x22,0x50,0x52,0xbf,0xec,0xcc,0xbc,0x0d,0x81,0x55,0x2d,0xac,0x2e,0xf7,0x99,0xbe,0x68,0x09,0xb0,0x11,0xc3,0xc8 +.byte 0xca,0x63,0xa7,0xc2,0x0f,0x37,0x2a,0x9e,0x85,0x79,0x6b,0x44,0xc1,0x4f,0xb9,0xd6,0x6c,0x56,0x0e,0x59,0x33,0xc3,0x00,0x53,0xe2,0xf4,0x30,0x90,0x4e,0x4b,0x09,0x4d,0x6f,0x9a,0x9e,0xb9,0x8d,0x0b,0xa1,0x80,0xfd,0xfb,0xde,0x74,0x49,0x53,0x04,0x3a,0x35,0xcb,0x45,0xe2,0x67,0x2c,0x4d,0x6e,0x39,0x7b,0xbd,0x68,0xaa,0x93,0x1e,0xee +.byte 0x1e,0x35,0xae,0x1e,0xf2,0xe7,0xb1,0x80,0x92,0x45,0x27,0x85,0xd0,0xc7,0x26,0x17,0x54,0x30,0xba,0x0c,0x8e,0x48,0xf3,0x08,0x51,0xa6,0x41,0x70,0xba,0x5b,0x90,0x69,0x7c,0x64,0x1d,0x61,0xb5,0x23,0x4a,0xef,0x97,0xe4,0x9a,0xd0,0xff,0x47,0x7a,0x93,0x1a,0x28,0xb3,0x8a,0x32,0x29,0xf8,0xe9,0x08,0xc3,0xf3,0x24,0xd7,0x2e,0x18,0x6d +.byte 0x99,0x40,0x77,0x43,0x9f,0x98,0xe4,0xe5,0x3a,0x34,0x9d,0x46,0x52,0x9f,0x84,0x79,0x8c,0x70,0xbc,0x88,0x30,0xaf,0x87,0x69,0x57,0x6e,0xde,0x2e,0xfe,0x0f,0x3b,0x8d,0xc8,0x95,0xcf,0x69,0x78,0xff,0xa1,0xb1,0x81,0x49,0x1e,0x45,0xc0,0x83,0x1b,0xa3,0x5a,0xee,0x3e,0x9a,0x15,0x7c,0xf0,0xa2,0xfd,0x04,0x22,0x55,0x2d,0x74,0x61,0x29 +.byte 0x0e,0x4f,0x31,0xdb,0x35,0x99,0x37,0xb7,0x7d,0x11,0xde,0x87,0x4f,0x84,0xeb,0x6c,0x14,0xcc,0xbb,0x71,0x47,0xab,0x5b,0x61,0x51,0xeb,0xa1,0xc1,0x5f,0xe4,0x5c,0x3c,0xab,0x04,0xf1,0x60,0x50,0xe1,0xd0,0x58,0xdf,0x42,0xed,0x73,0x5f,0x31,0xdf,0x8d,0xb8,0xb8,0xdc,0x4e,0x2f,0xe3,0x7f,0x89,0x9e,0x62,0xc9,0xef,0xfd,0x60,0xae,0x58 +.byte 0xa9,0xa5,0x8b,0xa8,0x3b,0xd8,0x5f,0xd4,0x09,0xff,0x61,0x8c,0x25,0xde,0x84,0x7f,0x35,0xc9,0x5c,0x2b,0xe8,0x46,0xe4,0x1c,0xbd,0x77,0x51,0x31,0x55,0x3d,0xb4,0x35,0xf3,0xdc,0xa5,0x55,0xd3,0xe3,0x24,0xf9,0x41,0xe2,0xf0,0xbd,0xf5,0xff,0x81,0x87,0x64,0xc9,0xe7,0x69,0x29,0x86,0xaf,0x98,0x33,0x33,0x62,0x9c,0x7b,0x16,0xbb,0xfe +.byte 0x0b,0xa7,0x92,0xa5,0x7b,0x81,0xbc,0x50,0x88,0xf6,0xe7,0xfc,0x73,0xd6,0x37,0x43,0x09,0xa5,0xc6,0xd6,0x4d,0x28,0xb5,0xaa,0x53,0x52,0x8c,0x2c,0x06,0x64,0x6c,0x21,0x6b,0xe7,0x67,0x4a,0xa5,0xcc,0xa1,0x32,0xf0,0xd9,0x78,0xb9,0xc3,0xdb,0x41,0xee,0x10,0x11,0x81,0x04,0x03,0x73,0x48,0xc6,0x3e,0x60,0x6d,0x82,0xef,0xe2,0xa8,0xe8 +.byte 0xd7,0xda,0xd9,0xb5,0x34,0x42,0xc8,0x1c,0xa7,0xa4,0x8e,0x88,0x2e,0xbc,0x96,0x0a,0xfc,0x40,0x36,0x80,0xdf,0x60,0xe9,0x03,0x02,0x0c,0x51,0xf7,0x7d,0x01,0xd2,0x21,0x38,0x44,0x4b,0x34,0x80,0xbf,0x5e,0xc1,0x86,0xf2,0x35,0xeb,0xa8,0x21,0x15,0x74,0x7c,0x99,0x55,0x64,0xf4,0x48,0xd6,0xd1,0x47,0x1f,0x4d,0xbf,0x0c,0x20,0x5d,0x86 +.byte 0xb9,0xab,0x4e,0xc8,0x86,0x08,0x71,0x1d,0x13,0xf6,0xd3,0x17,0xac,0x61,0x10,0x5d,0x2a,0xb4,0x48,0xa1,0xb9,0x79,0x5a,0x09,0x3a,0x65,0x4c,0xbd,0x97,0xbe,0x48,0xc6,0x66,0xd8,0xce,0x0c,0x19,0xb5,0x44,0x02,0xfa,0xb7,0xa8,0x3f,0x9b,0x86,0xec,0xd1,0xef,0x1d,0x7d,0xb3,0x82,0x5c,0x92,0x48,0x02,0x2c,0x56,0x0f,0xff,0xf7,0x19,0x74 +.byte 0xc2,0x38,0x24,0x8d,0xb2,0x87,0xb6,0xeb,0x49,0x50,0x6a,0x33,0x74,0x4e,0x2a,0xcb,0xf4,0x13,0x2c,0xfa,0x3b,0x0e,0x3d,0x98,0x3e,0x33,0xd9,0x55,0xfa,0xb9,0x74,0xb8,0x6f,0xc1,0xd8,0xfd,0x8f,0xff,0xb9,0x1a,0x17,0xf8,0xb6,0x21,0xc4,0x9d,0x47,0x5e,0x84,0xf6,0xe5,0xbf,0x93,0x98,0xac,0x8f,0x68,0x85,0xf8,0xe8,0x79,0x7f,0x6f,0x0d +.byte 0x62,0x2c,0xaa,0x1e,0xe4,0xab,0x73,0xf8,0x6f,0x02,0xda,0x6b,0x3c,0x14,0x2e,0xc9,0xdb,0xb0,0x4e,0x39,0xb5,0xcf,0x05,0xae,0x9c,0x63,0x2f,0x6a,0x25,0x61,0x9d,0x40,0xeb,0x7e,0xd8,0x97,0x97,0x33,0x67,0x5c,0x78,0x84,0x68,0xc2,0x7a,0x26,0x58,0xe3,0x6c,0x0a,0x2e,0x6a,0x82,0xd6,0x43,0xed,0x79,0xa5,0x8d,0x4e,0x7c,0xf7,0x80,0x01 +.byte 0xe7,0x02,0x5e,0x3a,0xf7,0x8a,0x4a,0x85,0xe9,0x98,0x1e,0x69,0x33,0xf3,0x54,0x96,0x79,0xc8,0x03,0x0a,0x9f,0x0c,0x5d,0x66,0x44,0x88,0x3c,0xd7,0x9e,0xd1,0xde,0x01,0xfd,0x5e,0xa5,0x6a,0x82,0x00,0x36,0xe6,0x12,0xe3,0x62,0x46,0x45,0x69,0xfb,0x4f,0x44,0x8e,0xe5,0x8d,0x21,0x57,0x6a,0x61,0x8e,0x56,0xcb,0x5b,0x2c,0x5f,0x65,0x41 +.byte 0x2c,0xad,0xf2,0x98,0x34,0xbb,0x06,0x0d,0x8a,0x3c,0x34,0x0d,0xa3,0xe2,0x6e,0x86,0xfa,0xa9,0xfb,0x6f,0xbb,0x32,0xd6,0x0d,0x76,0x6b,0x77,0xf3,0x83,0x41,0xc0,0x80,0x63,0x55,0x47,0xb8,0x13,0x6b,0x99,0x96,0x08,0x9b,0xc0,0x82,0xae,0x49,0x4a,0x51,0x63,0x74,0xf2,0xec,0xfa,0x0d,0xbc,0x3a,0xde,0xf5,0x4b,0x4f,0x08,0x41,0x23,0x88 +.byte 0x14,0x88,0x6a,0x3a,0xf0,0x5f,0x0c,0x45,0x7f,0x65,0x7a,0x67,0xd8,0x17,0xed,0x04,0x47,0x60,0x0e,0x74,0x8f,0xfd,0x48,0xda,0xcd,0xe9,0xfe,0xf5,0x6f,0x43,0xcd,0xa5,0x05,0xa2,0x2e,0x78,0x5b,0xff,0xb8,0x6f,0x2e,0xfd,0x3e,0x4b,0xef,0xcf,0xe0,0x06,0x57,0x28,0xf4,0x2e,0x3b,0xb5,0x9e,0x3c,0xbd,0x63,0xa6,0x78,0x8e,0xd5,0xb8,0x81 +.byte 0x4e,0xf0,0xbf,0x14,0x65,0xc8,0x00,0x9f,0x0e,0x25,0x6a,0x7a,0x63,0x58,0xe4,0xe7,0xa9,0x82,0x16,0xc9,0x86,0x20,0x94,0x71,0x5b,0x9f,0x9b,0xc3,0xc5,0x32,0xb0,0x6c,0x2b,0x8c,0x54,0x67,0x36,0x94,0xb1,0x47,0x33,0xfd,0x9f,0x7c,0x7f,0x7e,0x08,0x51,0x1f,0x7e,0xbf,0x09,0x57,0xf3,0xaa,0x77,0x94,0xf3,0x20,0x1b,0x95,0xf6,0x04,0xb2 +.byte 0x09,0x9d,0xe2,0xbb,0x4d,0xfe,0x6b,0x99,0x06,0x58,0x40,0x84,0x90,0xfa,0x0e,0x9b,0x58,0x6d,0x02,0xbe,0x53,0x73,0xd1,0xc9,0xc7,0x31,0x2a,0x4a,0x12,0x2c,0xb6,0x1c,0xfb,0x49,0xc6,0x1a,0x93,0x33,0x1f,0x29,0x8b,0x94,0xe9,0x20,0xa7,0xe6,0x20,0xe6,0xbf,0xcd,0x5c,0xb6,0x52,0x42,0xf0,0x9c,0x6c,0x21,0x61,0x10,0xe7,0x0e,0x9f,0x33 +.byte 0x5f,0xc8,0xd0,0x20,0xe0,0x3e,0xc5,0x7a,0x10,0xf1,0xe5,0x19,0x52,0xcd,0xe1,0xa8,0x62,0x43,0x20,0x79,0xc3,0xac,0x93,0x27,0x02,0x8e,0x21,0x06,0xb9,0x66,0xd9,0xc8,0x40,0xe0,0xd1,0xf0,0x64,0x81,0xa6,0xc4,0x87,0x85,0x2b,0x92,0x1c,0xd6,0x48,0x85,0xb1,0xbe,0x78,0xf3,0x89,0xa2,0xf0,0xe5,0x39,0xac,0xbf,0x59,0x5d,0xf8,0x4f,0x74 +.byte 0x44,0x85,0x98,0x03,0x81,0x4b,0x7e,0x6f,0x5c,0xa1,0x11,0xd2,0xfd,0x30,0x7f,0xcd,0xd0,0xe2,0xcc,0xd4,0x80,0x16,0x46,0xa6,0x64,0x8b,0x9e,0xfc,0x2a,0x1a,0x65,0x5c,0x90,0x82,0xf9,0x23,0x48,0x11,0xf6,0xf2,0x50,0x3f,0xed,0x44,0xf2,0x9a,0x5a,0xca,0x1c,0x9a,0xd2,0x71,0x1b,0xd6,0x4c,0x51,0xf6,0x89,0x6f,0x65,0xe4,0x97,0x41,0x47 +.byte 0x1b,0x86,0xbd,0x83,0xa0,0xfe,0xac,0x16,0xe8,0xab,0x28,0x96,0x2f,0xa2,0x12,0x5f,0x7c,0xb3,0x18,0x2b,0x05,0x51,0x49,0xba,0xb4,0x1f,0x1e,0xe6,0x8a,0x82,0xca,0x33,0x7d,0xe6,0x8c,0x95,0xba,0x08,0x60,0x47,0x6d,0x79,0xac,0x0f,0xba,0x46,0xff,0xed,0xe0,0x34,0x03,0xfe,0xa7,0x85,0xe5,0x61,0xe3,0xe4,0x6c,0x5c,0x1b,0x9d,0x8a,0x54 +.byte 0x17,0xaf,0x08,0x4c,0x44,0x7f,0xb7,0xb0,0x6a,0x3a,0xff,0xb7,0xf6,0x10,0xc4,0x8f,0x31,0xd6,0x1a,0x25,0x27,0x35,0xca,0x87,0xa9,0x61,0x0b,0x35,0x96,0x89,0x0f,0x1a,0xbd,0x1e,0xf6,0xee,0xaa,0x95,0x16,0xe4,0x38,0x7b,0xb2,0xbe,0xea,0xc9,0x5a,0xcd,0x3b,0xb8,0x9e,0xd7,0x20,0xcd,0x3f,0x90,0xaa,0x8b,0x2a,0x42,0xed,0xab,0xc1,0x53 +.byte 0x83,0xc7,0xb8,0x3f,0xa1,0xb9,0xf4,0xf4,0xb0,0xe0,0x1f,0xb0,0xeb,0xa9,0x81,0x9f,0x31,0x67,0x1e,0x6c,0x96,0x9f,0x09,0xea,0x04,0xfe,0x37,0x22,0x87,0x60,0xb9,0x91,0x8f,0xa9,0x11,0xa3,0x68,0x5e,0x29,0x21,0x41,0xa3,0x02,0x08,0x82,0xd0,0x2b,0x66,0x6d,0x3c,0x46,0xc7,0x23,0x09,0x86,0x7f,0x53,0x11,0x3e,0x83,0x52,0x0a,0x4a,0xe4 +.byte 0x93,0xc6,0xc1,0x96,0x17,0x94,0x51,0x17,0x69,0xea,0x72,0xb8,0x85,0xde,0x7e,0x13,0x4a,0x08,0x26,0xae,0x31,0x19,0x0f,0x6f,0x48,0xa1,0xf2,0x57,0xa2,0x01,0x8e,0x84,0xee,0x63,0x23,0xc0,0x97,0x84,0xa2,0xf5,0x3f,0xeb,0x30,0x9e,0xdd,0xd2,0x43,0x24,0xa2,0x57,0xb7,0x57,0x86,0x26,0xa3,0xe6,0x6e,0xf2,0xcd,0xfb,0x7b,0x34,0x74,0x53 +.byte 0x07,0x95,0x51,0xb7,0xfd,0xf3,0xd1,0x83,0xbd,0x25,0xd6,0x2c,0x69,0x73,0x02,0x8e,0x76,0x19,0xea,0xb0,0x83,0x60,0x8c,0x53,0x9d,0x77,0x86,0x1e,0x65,0xc7,0x57,0x31,0x29,0xd9,0xa9,0x3a,0xb2,0x0d,0xd8,0xf4,0xf9,0x48,0x49,0xfb,0x3c,0x40,0x3d,0x1b,0xc4,0x8b,0x94,0x0e,0x50,0x7f,0xd5,0x39,0x5e,0x57,0x86,0xd1,0xba,0x0c,0x38,0x10 +.byte 0x01,0x5f,0x44,0xf3,0xe5,0xb0,0xf8,0xae,0x17,0xdf,0xd2,0xb3,0x10,0xc5,0x3b,0xfd,0xd9,0x68,0x90,0x9c,0x6c,0x26,0xdf,0x12,0x50,0xfa,0xbf,0x8b,0xce,0x68,0x80,0x8c,0x04,0x60,0xbf,0x34,0x81,0xbd,0x29,0xa3,0xa2,0xe4,0xe0,0x2d,0x25,0xb2,0xff,0x9f,0xd1,0x20,0x07,0xd5,0x8c,0x19,0xfa,0x3f,0x47,0xec,0xc1,0x8d,0xc9,0x36,0xf8,0x51 +.byte 0x4c,0xaa,0x40,0xe3,0x6a,0x21,0xd5,0xe6,0xa6,0xcf,0x8c,0xd9,0x10,0x47,0x66,0xfd,0x32,0x48,0x36,0x8f,0x14,0xed,0x09,0x80,0x50,0x27,0xaa,0xd5,0x1f,0x69,0xb8,0xe4,0x96,0x27,0x56,0x78,0xd6,0xd5,0x2d,0xf0,0x4f,0x14,0x30,0x17,0x9e,0x5b,0x69,0x8c,0x7c,0x1c,0x97,0x38,0x65,0x77,0x75,0x49,0xac,0x4b,0x06,0xda,0x74,0x11,0x86,0xbc +.byte 0xad,0x01,0xf2,0x03,0x29,0x5d,0xa7,0x74,0xd3,0x44,0xae,0x1d,0xbf,0xf9,0xc5,0x5b,0x83,0x8c,0xd6,0x84,0x8a,0x8e,0xe9,0xa6,0x08,0xf4,0x88,0x13,0xcb,0x16,0x45,0x13,0x9c,0xc7,0x75,0xa9,0xa7,0x55,0x04,0x91,0xd6,0xe9,0xd4,0xe5,0x65,0xa0,0x3a,0x53,0xa0,0xfc,0x62,0xce,0x91,0x01,0xb4,0x06,0x8b,0x10,0x79,0x6f,0x2c,0xd6,0x0a,0xa2 +.byte 0x31,0x8f,0x75,0x32,0x0e,0xfa,0x0d,0xec,0xfd,0x71,0x7f,0x74,0x97,0x30,0xe9,0xee,0x9f,0x04,0x21,0xb5,0xc9,0xd1,0x52,0x2a,0x0f,0x18,0xbe,0x3e,0xbb,0x98,0xaf,0x59,0x9b,0x85,0x79,0x5e,0x52,0x93,0x1c,0x42,0x67,0x67,0x6b,0xd5,0x41,0xaf,0xba,0x09,0x3a,0xb4,0x0e,0x97,0x22,0xe6,0xbb,0xe1,0x27,0xa1,0xf9,0xf0,0xcd,0xa2,0x3d,0xdb +.byte 0x81,0x2f,0x65,0x90,0xb7,0xe5,0xe5,0xce,0x1d,0x3b,0xfe,0x34,0x57,0xcd,0x3a,0xbd,0x19,0x59,0x23,0x12,0xf1,0xb6,0xf2,0xf7,0xc1,0xf5,0x1d,0x0b,0x46,0x8f,0x16,0x6a,0x81,0xfe,0xc1,0x97,0x8d,0x69,0x55,0x60,0xdd,0xf0,0x61,0xe9,0x22,0x30,0x72,0x1a,0x24,0x30,0xd7,0xbc,0x1c,0xfa,0x02,0x55,0xfc,0xb9,0x4b,0x0a,0xe4,0x90,0x90,0x3a +.byte 0xe3,0xce,0xd4,0xa0,0x7d,0x21,0x5a,0xf7,0x79,0x6e,0x03,0x4f,0x4e,0x93,0xad,0xc4,0x8e,0x9d,0x9f,0x8a,0x39,0x59,0x20,0xc1,0x5d,0x6a,0x4d,0x8f,0x69,0x78,0xea,0xba,0xde,0xc0,0x87,0xb2,0xf2,0x20,0xd6,0x7a,0x9c,0xf9,0x09,0x03,0x2a,0x4d,0xb9,0x10,0xfc,0xe5,0x05,0x90,0xed,0x45,0x4f,0x5f,0x7c,0x5d,0xfa,0xe6,0x0d,0x07,0xae,0xcc +.byte 0x21,0xc8,0x1c,0x7a,0xfb,0x1d,0xb9,0xe3,0x69,0xa1,0xb7,0x5f,0xb5,0x6a,0xb9,0x58,0x9d,0xcd,0x99,0xf8,0x38,0xbb,0xa0,0xfe,0xf8,0x41,0x51,0x72,0xce,0x76,0x89,0x59,0xa2,0xab,0xef,0xea,0xab,0x79,0xbc,0xda,0x73,0xdb,0x18,0xda,0x60,0x1b,0xc4,0xb7,0x4f,0xb3,0x86,0x21,0x2a,0xc3,0xec,0x7f,0x0e,0x89,0x16,0x0e,0xd2,0xbd,0xea,0x0e +.byte 0xcf,0xc1,0x4b,0x2c,0x97,0x69,0xce,0xd3,0x94,0xad,0x81,0xe9,0x70,0xf4,0xf8,0xe5,0x77,0xe6,0x92,0xe0,0x23,0x38,0xd3,0xc1,0xdd,0x2e,0x58,0x77,0xc5,0xc3,0x29,0x34,0x66,0x48,0xf9,0x75,0x3c,0x8a,0x6a,0xb8,0xbf,0xf8,0xba,0xf0,0xb9,0xa1,0x81,0x0b,0xa1,0xaa,0x17,0x34,0x1a,0xbb,0xa3,0xa2,0xba,0x21,0x45,0xc0,0x1d,0x57,0x11,0x4d +.byte 0x9b,0xd4,0x64,0x84,0xd7,0x0b,0xd6,0xfb,0x72,0x2c,0xdb,0xc3,0xe6,0x24,0xa9,0xf3,0x30,0x9f,0x21,0x05,0x1e,0xcc,0x48,0x58,0xed,0xfd,0xb2,0x34,0xe3,0xf7,0x7e,0x56,0xee,0xdf,0xa4,0xbb,0xb1,0xcc,0x7f,0x81,0x40,0xe9,0xdf,0x3f,0x82,0xc4,0x0d,0x14,0x9b,0x3b,0x80,0x15,0x24,0x6e,0xa4,0xce,0xfa,0x28,0xa7,0x7f,0x89,0xfb,0xc6,0x83 +.byte 0xe8,0x2a,0x70,0xfb,0x9c,0x75,0xb8,0xfd,0xec,0xbc,0xbb,0xf5,0xef,0x0a,0xa5,0x77,0x0b,0x38,0xa0,0x63,0xa5,0x71,0x12,0xc9,0xaa,0xc3,0xf9,0x72,0x30,0x45,0x4e,0x19,0x44,0x2d,0x09,0xf4,0xf1,0xa8,0xe8,0xde,0x58,0x87,0x70,0xa8,0x91,0x86,0xef,0x5d,0x02,0x90,0x55,0x63,0x99,0xde,0xd7,0xb7,0x5f,0x07,0x01,0xdf,0xb1,0xe5,0x55,0xf5 +.byte 0x87,0x69,0xd2,0x7a,0x71,0xbc,0x0e,0x4b,0x8b,0x98,0xf7,0xf6,0x0a,0x01,0xbb,0x9f,0x1b,0x15,0xb6,0x76,0xe0,0xc0,0x4b,0x5d,0x08,0xba,0xba,0x73,0x3f,0x36,0x5a,0x29,0xd7,0x7c,0xc2,0x87,0x03,0x75,0xff,0x26,0x21,0xae,0xbe,0x66,0x70,0xa2,0x99,0x11,0x35,0x49,0x78,0x7b,0x3a,0xfe,0x94,0xf7,0x37,0xe0,0x69,0x56,0x39,0xf7,0x3f,0x71 +.byte 0x39,0x74,0x75,0x32,0x1f,0xfb,0x3a,0x87,0x07,0xab,0xf1,0xed,0xe3,0xe2,0xbf,0x3f,0xb1,0x73,0x11,0xc9,0x34,0x4b,0xb1,0x1e,0x62,0x4e,0xc1,0x8a,0xae,0xcc,0xc7,0xb3,0xa7,0x70,0x01,0x73,0xad,0xb3,0xc3,0x59,0x70,0x14,0x31,0x94,0x9f,0x6b,0x18,0x11,0x50,0x52,0xc9,0xf0,0xf8,0x12,0x9d,0x7c,0x90,0x64,0x9d,0xd9,0x41,0xa6,0x45,0xe3 +.byte 0xc9,0x25,0x73,0xe7,0x48,0x9d,0xdc,0xe0,0x2c,0x71,0xd3,0x68,0xc5,0xab,0xac,0xe3,0x16,0x95,0xe3,0xa5,0xae,0x2f,0x57,0x60,0x4b,0x11,0x90,0xaa,0xe7,0x48,0xca,0xc7,0xde,0x2e,0x56,0x10,0x8e,0xc3,0x0a,0x7d,0x66,0xf1,0xc3,0xf7,0x2d,0xdd,0xfa,0x5e,0xb2,0xcb,0x99,0x4d,0xaa,0x4e,0x91,0xc1,0x94,0x60,0x27,0x33,0x82,0xa6,0x2a,0xba +.byte 0x05,0x32,0x33,0x0a,0x30,0x47,0xb0,0xac,0x68,0x7d,0xef,0x25,0x09,0xcf,0x51,0xf4,0x06,0x28,0x14,0xb2,0xb4,0x1f,0xaf,0x37,0xdc,0x70,0x88,0x4d,0xb9,0xfc,0x2d,0x61,0x25,0x13,0x1f,0x32,0x48,0x6d,0xeb,0x46,0x05,0x66,0x44,0xa1,0xec,0xce,0xe9,0x51,0xa9,0xba,0xf8,0xde,0x95,0x1b,0x20,0xe1,0x21,0x75,0x4b,0x25,0x7f,0x3c,0x16,0xf7 +.byte 0xe2,0xbe,0xeb,0xca,0x2b,0x77,0x92,0x16,0x32,0xe2,0x74,0x21,0x52,0x3f,0x08,0xba,0x41,0xb0,0xd3,0xd2,0xf7,0xf3,0x29,0xb6,0x10,0xfa,0xa5,0x29,0x35,0x29,0x21,0x0d,0xec,0xba,0x5a,0xf3,0x63,0x0f,0x9d,0xbc,0x42,0x02,0x46,0xe9,0x07,0x4a,0x9a,0xe8,0xd3,0x78,0x92,0xa2,0xe5,0x03,0xec,0xd4,0xe2,0xc8,0x8f,0x92,0x4a,0xae,0xbc,0xd7 +.byte 0xdf,0x4b,0x07,0x22,0x47,0xbd,0xb4,0xb5,0xa0,0x7e,0xfb,0x21,0x40,0x62,0xb1,0x6c,0x07,0x00,0x64,0xf6,0xb2,0x75,0x5c,0x29,0x84,0xff,0x38,0x0c,0xc8,0x08,0x38,0x92,0xf9,0xad,0xd7,0xcc,0xc3,0x1c,0x03,0x80,0x49,0x39,0x1c,0xdb,0xae,0x60,0x87,0x8a,0x5c,0xe9,0x17,0xbd,0x2b,0x0f,0xa5,0xa1,0xf9,0x0d,0x4b,0x8c,0x4d,0x39,0xda,0x15 +.byte 0x8c,0xc4,0x69,0xaf,0x2b,0xb0,0xa1,0xfd,0xd9,0x65,0x3c,0x87,0x4b,0xf2,0x5a,0xd7,0xd8,0xb9,0xef,0x78,0x67,0x30,0x4c,0x6c,0x92,0xc5,0x1e,0x15,0xf8,0xd9,0x74,0x1b,0x54,0x0c,0x10,0x1b,0xb5,0x11,0x13,0xd6,0xb4,0xc0,0x53,0x03,0x2c,0x4b,0xee,0xac,0xf9,0x87,0x17,0x51,0x35,0xb8,0x1a,0xdc,0x16,0x61,0x5b,0xe9,0x5a,0x43,0x94,0x42 +.byte 0x8f,0x68,0xbd,0xb6,0x52,0x00,0x63,0xa3,0x52,0x6e,0x5d,0x8e,0xe9,0x4f,0xf5,0x69,0xd8,0x4f,0xf5,0x5c,0x89,0x7e,0x1c,0xb9,0xdc,0x7b,0x92,0x8a,0x2b,0xfc,0xb8,0xad,0xbb,0xff,0x61,0x2e,0xc0,0xdc,0xfb,0x2f,0x78,0x2a,0x50,0x32,0x9b,0x4c,0xfd,0x9e,0xab,0x80,0x5c,0x7d,0xc8,0x6b,0xb3,0x2d,0x0a,0xfe,0x43,0xa2,0x10,0x10,0x79,0xbc +.byte 0x8c,0xa0,0x86,0x09,0x8c,0x8b,0x28,0xf3,0x8a,0xc9,0xeb,0xcb,0xb5,0x0e,0x56,0x19,0xae,0xe0,0xa1,0x22,0x72,0xc5,0xad,0x01,0x12,0x69,0xb6,0x52,0xb8,0xdd,0x36,0x25,0x21,0xae,0x73,0x06,0xc1,0xe0,0x23,0x20,0xe1,0x8e,0xe4,0x99,0xcd,0x86,0xca,0xf5,0x93,0x0e,0x6b,0xb8,0xba,0x18,0x4a,0x36,0xed,0xd0,0x37,0xc8,0xc7,0x8a,0xb2,0x63 +.byte 0x2e,0xa4,0x22,0x76,0x6f,0xf7,0xdd,0x81,0xd6,0x6f,0xcd,0xb9,0x65,0xf0,0x95,0x77,0xae,0xca,0x54,0x62,0xce,0x5d,0x47,0x9e,0x10,0x89,0xb9,0xfa,0x72,0x0a,0xef,0x24,0x17,0x45,0xb0,0xb0,0xc7,0x51,0x85,0xa1,0xb1,0x6a,0xd2,0xea,0x48,0xe2,0x6a,0x03,0x2a,0xdf,0xa8,0x0e,0x62,0xa2,0x1e,0xe2,0xa7,0x20,0x57,0xbd,0x73,0xeb,0xef,0x86 +.byte 0xc9,0xd4,0xfa,0x96,0xfe,0xfa,0xb3,0xc6,0xbf,0x7a,0x16,0xa2,0x43,0x73,0x56,0x71,0x78,0x32,0x3b,0xc1,0xd8,0x26,0xbf,0xde,0x39,0x5d,0xbd,0x3b,0xff,0xd7,0x4f,0xa0,0x67,0xa6,0x09,0x9a,0x81,0xfd,0xec,0x34,0x73,0xcd,0x90,0x15,0x8b,0x3e,0x2d,0x6f,0x7d,0xcc,0xf5,0x20,0x15,0x07,0xa8,0x2f,0xa5,0x5b,0x2b,0x4f,0xb8,0x2f,0x14,0x6c +.byte 0x52,0x78,0xbd,0x92,0x98,0xda,0x69,0x19,0x58,0x4c,0x76,0xe4,0x20,0xb2,0x48,0xa4,0x9f,0x2f,0x4c,0x9b,0x45,0x7f,0x7d,0x1c,0x46,0xe9,0x1e,0x43,0x26,0x49,0x39,0xb6,0x42,0x3a,0x4c,0x59,0x95,0x6b,0x28,0xd5,0xbe,0xa7,0x2e,0xd0,0x0c,0x00,0xa0,0x67,0x06,0x4e,0xee,0xae,0x7f,0xc2,0xb5,0x12,0x46,0x3f,0xb4,0x35,0x16,0x2a,0xda,0xbf +.byte 0x41,0x34,0xbe,0x30,0x2a,0x0f,0x7b,0x60,0xa6,0x8b,0xcd,0xae,0x7a,0x8c,0xd6,0x97,0xab,0x06,0x1e,0x14,0x87,0x45,0xa3,0x3c,0x9c,0xc4,0xa0,0x1d,0xee,0xf0,0xca,0xb8,0xa6,0x8d,0x37,0x92,0xad,0xbc,0xe6,0x1f,0x65,0x75,0xd3,0xbc,0x72,0x66,0xe2,0xff,0xbc,0x19,0x93,0xae,0xee,0xd0,0x63,0x6d,0x97,0x6f,0x57,0xf3,0x77,0xcd,0xe3,0x57 +.byte 0x3f,0x00,0xc8,0xe1,0x63,0x83,0x15,0x84,0xc6,0x08,0xdb,0x03,0xc9,0x27,0x47,0x4c,0x17,0x12,0x40,0x6e,0xac,0x74,0x6f,0x3c,0x22,0x57,0x36,0x29,0xbb,0x6a,0xc7,0x5a,0xfe,0x60,0x1c,0x0f,0x32,0x95,0x1b,0xf2,0x3c,0xed,0x04,0x87,0x4c,0x48,0xc7,0x63,0x79,0x24,0xb3,0x12,0xbf,0x55,0x3b,0x32,0xbf,0x52,0x4e,0x1e,0xc1,0x1f,0xf2,0xfd +.byte 0xe6,0xb8,0x56,0x38,0x0e,0xd2,0x75,0x3d,0x41,0x99,0x0c,0x7a,0x12,0x3f,0xa7,0x3a,0x79,0xa0,0xd7,0x6f,0x47,0x97,0x7e,0x9e,0xf6,0xfe,0x29,0xc0,0x16,0x34,0x38,0x80,0x2f,0xde,0x65,0x79,0xc9,0xfd,0xa0,0x84,0xc3,0x39,0xbc,0x0b,0xbe,0x18,0xba,0x0d,0xe3,0x35,0x11,0xba,0x9f,0xde,0x5d,0x0c,0xae,0x8e,0x0c,0x0f,0x66,0x9c,0xe6,0xfc +.byte 0x3d,0xdb,0x46,0xf1,0x84,0x57,0x62,0xb0,0x00,0xd4,0x8c,0xaa,0x93,0xeb,0xf7,0xa7,0x8e,0x82,0xba,0x89,0x67,0xbb,0x38,0xb0,0xb6,0x13,0x0c,0x96,0x22,0x9c,0x6a,0x86,0xea,0x83,0xad,0x5f,0x7b,0x3a,0x28,0xd8,0x53,0x90,0x2d,0xab,0xc9,0xbe,0x99,0xfb,0x68,0x42,0x27,0xf6,0xe3,0x5a,0xaf,0xf3,0xd6,0xee,0xb6,0xa2,0xe0,0x32,0x3c,0x1d +.byte 0xd4,0x3c,0x2b,0x58,0xc2,0x4f,0x3d,0x20,0x39,0xdb,0x80,0x89,0x20,0x20,0x7b,0xe6,0x1d,0xd0,0xa2,0x1a,0xd4,0x88,0xc9,0xe0,0xb9,0xf6,0xb2,0xa1,0xcd,0xf2,0x67,0x60,0x44,0xd8,0xce,0x6a,0xe2,0x52,0xc3,0xf3,0x61,0xa3,0x14,0x58,0xd6,0xe5,0x43,0x4a,0x8d,0xcc,0x4f,0xf8,0x17,0xdd,0xd2,0x5d,0xd5,0x5a,0x86,0x8e,0xc4,0x74,0xdc,0x1b +.byte 0xad,0xca,0x63,0x75,0xf0,0x43,0x41,0x16,0x02,0x49,0x6a,0x3a,0xe3,0xb9,0xa9,0xdc,0xfb,0x99,0xbc,0x60,0x0d,0xdb,0xa0,0xcf,0x27,0xaa,0xd5,0xc5,0x42,0x0b,0x02,0x00,0x43,0xaf,0xb5,0x4f,0xe1,0x88,0xa1,0x9d,0xca,0xfb,0x9f,0x1f,0x08,0x9c,0x66,0x23,0xca,0x4b,0x88,0xb4,0x40,0xdc,0xd3,0xd3,0x1a,0x64,0xe3,0x9b,0x43,0xea,0x20,0x90 +.byte 0x30,0x2e,0xc4,0x75,0xc5,0x52,0xc5,0x7c,0x0e,0x35,0x56,0xf5,0x1f,0x50,0x2b,0xf6,0x28,0x93,0x6f,0xde,0x10,0xc6,0x49,0x2b,0x77,0xb1,0x6d,0xce,0xfd,0x37,0xd4,0x8d,0x11,0xed,0x88,0x1e,0xca,0x68,0x0c,0x4e,0x38,0x7f,0x0f,0xab,0x6f,0x8d,0x1c,0x7d,0xd4,0x7d,0xd8,0xa9,0x5c,0x24,0x5a,0x7d,0xf4,0x5b,0xb6,0xb7,0x28,0xc7,0x93,0xd6 +.byte 0xa9,0xe5,0xac,0x62,0x16,0x9c,0x4e,0x5c,0x24,0xa0,0x2a,0x76,0xce,0x7d,0x5c,0x4b,0xbe,0xbc,0x83,0x5c,0x9a,0xc8,0x06,0x7b,0x1e,0xac,0x98,0x67,0x17,0x32,0x94,0xda,0xd1,0x8b,0x58,0xad,0x8e,0x26,0x03,0x81,0x7c,0x48,0xd1,0x83,0x03,0xba,0x6c,0x51,0xe9,0x25,0x82,0xd2,0xb9,0x7f,0xd8,0x33,0x3f,0x77,0x29,0x45,0x41,0xa9,0x17,0x3d +.byte 0x62,0xc6,0xd2,0xfb,0xd1,0x24,0xc7,0xee,0x10,0xc0,0x64,0xc3,0x46,0xc6,0x2b,0xe8,0x9c,0xc8,0x99,0x23,0x77,0xa9,0xb5,0x12,0xc4,0x53,0xde,0xbc,0x20,0xb2,0xc4,0x12,0xdb,0xc2,0x0b,0x63,0x70,0x6a,0x41,0x31,0x65,0x48,0xa0,0xfc,0xbc,0xd6,0x3f,0x55,0x18,0x17,0x65,0x35,0x58,0xe3,0x33,0xac,0xaf,0xca,0xb2,0x51,0xc1,0xcc,0x60,0x38 +.byte 0x94,0x8f,0x13,0xb8,0xcc,0x8c,0xc4,0x12,0xea,0xd5,0x39,0xd3,0x46,0x55,0x17,0x27,0x7a,0x07,0x01,0x02,0x74,0xa6,0xe7,0xc8,0xa7,0xd0,0x76,0xc8,0x5e,0x57,0x50,0xc5,0x19,0xf1,0x95,0xa3,0x52,0x10,0xa3,0x1e,0xcd,0xb1,0x05,0x64,0xe5,0x69,0xd9,0x5e,0xfc,0x71,0xef,0xe1,0xf6,0xb3,0xa7,0xf7,0xf9,0x71,0xfd,0xbb,0x5b,0x2b,0x7a,0xd2 +.byte 0x72,0x7c,0xc7,0x73,0x89,0xf7,0xe2,0x0b,0xcd,0x05,0x4f,0x0c,0x10,0xed,0xcc,0xda,0xb6,0x81,0x19,0xe6,0x2b,0x06,0x66,0xef,0xc5,0xfd,0xd5,0xc6,0x66,0x20,0x86,0x2a,0x4f,0x05,0x49,0xf1,0x54,0x4a,0x6e,0x1d,0xcd,0xad,0x18,0xeb,0x6c,0x58,0xd6,0x75,0x3e,0x62,0x48,0xab,0xea,0x1f,0x7f,0x05,0x45,0x6e,0x75,0x2a,0x5e,0x97,0x5b,0xde +.byte 0x5a,0x99,0x42,0xc1,0x62,0xab,0xc7,0x01,0x4d,0xac,0xd6,0xdc,0xc9,0x71,0x24,0xd1,0x33,0xe2,0x4b,0x1f,0x09,0x04,0x1f,0x0d,0x42,0x45,0xcf,0x7c,0xa0,0xee,0x48,0xfd,0x8b,0x1f,0xaa,0x50,0x48,0x6d,0x8e,0x34,0x76,0x09,0x23,0x8a,0x40,0x0d,0x5d,0xc1,0x2a,0xba,0x5f,0x9c,0x86,0xfb,0x37,0xdf,0x24,0xff,0x27,0x88,0xbf,0xf6,0xa4,0xc3 +.byte 0xf0,0xd3,0x02,0xa8,0x7c,0x6d,0xc4,0xc5,0x14,0xc3,0x64,0x28,0xa8,0x05,0x33,0xc2,0xda,0x12,0xfc,0xbe,0x0d,0x8e,0xf4,0xf5,0x48,0x5a,0x8e,0x8a,0xd2,0x50,0x7c,0xc0,0xbc,0xde,0xdb,0x9a,0xf6,0xa0,0x92,0x8d,0x19,0xbc,0x5a,0xdc,0xbf,0xfb,0x13,0x8f,0x41,0x09,0xba,0xd9,0x0b,0x91,0x7a,0xdb,0x92,0x10,0xac,0xf2,0xb5,0x76,0xb5,0x7d +.byte 0x80,0x04,0xd6,0xec,0x98,0x09,0x5f,0x63,0x0d,0x58,0x00,0x8a,0x07,0x76,0xfa,0xe6,0x6e,0xdf,0xbf,0x73,0xe5,0xc9,0xe5,0x12,0x44,0x58,0xf9,0x2e,0xb1,0xe6,0x2c,0xf5,0x0d,0x94,0xa9,0x51,0x0d,0x01,0x03,0xab,0x79,0xf9,0xee,0x7e,0x10,0x4b,0xcb,0x20,0xbb,0x01,0x19,0xd6,0x12,0xd1,0xac,0x96,0xe9,0x0e,0xde,0xbf,0x7e,0x80,0xf6,0x58 +.byte 0xc9,0xec,0xaf,0xf7,0x2d,0x98,0xbc,0x2b,0xb1,0xf1,0x34,0x94,0x39,0x8e,0xbc,0x13,0x13,0x41,0x8f,0xf3,0x4e,0x4e,0x6b,0x2a,0xaa,0xea,0x70,0x5c,0xf8,0x42,0xf7,0xbc,0xfd,0xbd,0x6f,0x62,0x1b,0xcb,0xb9,0x39,0xdc,0x6a,0x47,0x81,0xaf,0xff,0x5b,0x7e,0x80,0xb9,0xbf,0xfa,0x15,0x7e,0xd1,0xc3,0xb2,0x80,0x99,0xbd,0xb9,0x30,0x8d,0xb5 +.byte 0x43,0x6b,0x7a,0x31,0xaf,0x45,0xf7,0xdd,0x21,0x8f,0x54,0xb1,0xf6,0x2d,0x7d,0x96,0x63,0x4a,0x93,0x98,0x37,0x7f,0x48,0x02,0x4b,0x0f,0x71,0xe4,0x70,0xce,0x66,0x6a,0x36,0xde,0x58,0x84,0x69,0xd6,0xbd,0x1a,0x9a,0x8b,0xc5,0xda,0x97,0xc5,0xe1,0x4e,0xec,0x9b,0x7a,0x65,0xe0,0xa5,0xdd,0x39,0x3c,0x9f,0xfd,0x45,0x17,0x4c,0x2f,0xb4 +.byte 0xb1,0xb1,0x42,0xe8,0x88,0x75,0x9f,0xb4,0xc1,0xdf,0x44,0xf9,0x4f,0x9a,0xf7,0x3d,0x35,0xc5,0x32,0xbe,0x43,0xd0,0x0d,0x71,0x4e,0x21,0xbf,0x31,0x99,0x73,0x5a,0x84,0x45,0x2e,0x00,0x8b,0x42,0x2b,0x14,0x86,0x51,0xcb,0xa0,0x98,0xa9,0x68,0x8d,0xdb,0x58,0x3d,0x73,0x9d,0xf9,0x2d,0x86,0x76,0x62,0xcb,0x93,0x29,0x48,0x92,0x38,0xfb +.byte 0xeb,0x1d,0xda,0xc3,0x10,0x1f,0x32,0x68,0xee,0xcb,0xb7,0x8a,0xcb,0xcb,0xe0,0x37,0x31,0xe8,0xad,0x7b,0x4a,0x29,0x2c,0x10,0x9e,0xdf,0x86,0xeb,0x13,0x0c,0xab,0xa4,0x30,0x36,0xf0,0xe0,0xac,0x14,0x41,0xa4,0xf4,0xf8,0x44,0x95,0xe8,0x8f,0x28,0xc2,0x35,0x0a,0x44,0x61,0xc7,0x60,0xc5,0x3b,0xc4,0x1d,0x67,0xfd,0xac,0x0b,0x2e,0x49 +.byte 0x62,0xea,0x17,0x3c,0xf5,0x4b,0xbe,0xba,0xba,0x42,0x02,0x0d,0x13,0xf1,0x15,0xff,0x2e,0x47,0x46,0xd1,0x27,0x64,0xb7,0x35,0x28,0x31,0xb5,0xde,0x1e,0xf9,0x26,0x6c,0x04,0x3c,0x0e,0x06,0x9d,0x4d,0xc7,0x1c,0x97,0x67,0x2c,0x6d,0x36,0x0d,0x4c,0x61,0x08,0xe9,0xbd,0x04,0x1d,0x8d,0xfb,0x0c,0x03,0x3d,0xb4,0x40,0xd5,0x1b,0x69,0x3b +.byte 0x68,0xcf,0x46,0x27,0xcf,0xb3,0xda,0x1e,0xdc,0x85,0x6f,0x4f,0x6b,0x09,0x9d,0xe9,0x6c,0x73,0x40,0x27,0xc9,0x8b,0x12,0x97,0xea,0x34,0xd7,0x51,0x32,0x90,0x4e,0xd7,0x91,0x41,0x3a,0xee,0xbc,0x97,0xb0,0x4a,0x39,0xdb,0xe3,0xe5,0x12,0x73,0xbf,0x5d,0x68,0xe0,0xc6,0x7c,0x6f,0x0d,0x14,0x1c,0xaa,0xde,0x29,0xb7,0xc7,0xa5,0x90,0x62 +.byte 0xe9,0xc5,0x75,0x16,0xe6,0xc0,0x9d,0xc5,0xb8,0xd6,0xfa,0xb0,0x72,0xb7,0x27,0xa6,0xa8,0x3f,0xbf,0x18,0x8b,0xaa,0x94,0xb3,0x47,0x50,0x2f,0x1c,0x49,0xab,0x46,0x38,0x7f,0x3e,0xf3,0xf1,0xb8,0xb3,0x44,0xaa,0x1f,0x76,0xb4,0x67,0xff,0xcf,0x7c,0x4b,0xa9,0xe1,0x62,0x93,0x4d,0x3e,0x96,0xdb,0x56,0xf6,0x26,0x5d,0x95,0x4c,0xfa,0x5f +.byte 0x06,0x2b,0x5c,0x33,0x2d,0xf8,0xfa,0x68,0x8a,0xed,0x28,0x2a,0x6e,0x95,0x86,0x59,0x71,0xef,0x86,0x47,0x60,0xec,0x35,0x79,0xa9,0x98,0x2d,0x6e,0x20,0x26,0x3a,0x21,0xec,0x59,0x15,0x65,0xcd,0xb9,0x91,0x19,0x6e,0x74,0x89,0x3b,0x10,0x00,0xab,0x8a,0x45,0x23,0x20,0x94,0x03,0x02,0x77,0xb7,0xcf,0x9c,0x71,0x18,0x0c,0x5b,0x40,0x62 +.byte 0x3b,0x8f,0xc9,0xf6,0x4c,0x8f,0x60,0x66,0x05,0x87,0x05,0x90,0xd4,0x08,0x76,0xd7,0xa3,0xb6,0x37,0xa8,0x83,0x05,0xb2,0x48,0xe9,0x24,0xc4,0xfb,0x79,0xa1,0xce,0xac,0x29,0x13,0x4e,0x72,0xdf,0xad,0x9e,0x5b,0xcd,0x9c,0x39,0x1d,0x3e,0x57,0x9d,0xf2,0x96,0x13,0xa4,0x79,0x4c,0x76,0x40,0x03,0xb3,0x18,0xcf,0xd7,0x45,0x2a,0x2d,0x07 +.byte 0xe5,0x2e,0xb7,0x74,0xda,0x94,0xea,0x32,0x74,0xb0,0xca,0xf4,0xd1,0x09,0x97,0x3c,0x69,0x17,0xf6,0x5b,0x13,0x7b,0xb8,0xb1,0xd9,0x0e,0x12,0x44,0x29,0xea,0x26,0xd8,0xaa,0x9d,0x26,0x87,0x0c,0x89,0x4e,0xec,0x29,0x48,0x43,0x66,0x21,0x0b,0xab,0xce,0x40,0x57,0x4c,0xa7,0xdd,0x56,0xde,0xac,0x5c,0x62,0xea,0xc4,0x54,0x4a,0xe0,0x8d +.byte 0x54,0xc8,0x65,0x44,0xcc,0x6f,0x2a,0xcd,0x0e,0xb3,0xad,0xa3,0x30,0xd1,0xb7,0x19,0x70,0x51,0xd3,0x9a,0xcf,0xe5,0x42,0x6c,0xa1,0xc1,0x0f,0xe2,0xda,0x86,0xb4,0x51,0x50,0x62,0xdc,0x51,0x3f,0xd2,0xff,0xde,0x7f,0x38,0x5a,0xff,0x2d,0x21,0x1d,0x59,0xb9,0xdd,0xde,0x83,0x13,0xb0,0x25,0xf5,0xbb,0x11,0x47,0x4a,0xaf,0x81,0x15,0xa0 +.byte 0x39,0x5b,0x30,0x17,0x2b,0xbf,0x5a,0x03,0x60,0xb6,0xbb,0x86,0x9f,0x50,0x45,0x15,0x0b,0xba,0x42,0xf4,0x3d,0x05,0x62,0xcd,0x9b,0x8c,0xcf,0x93,0x5c,0x33,0x6c,0xea,0x4b,0xd0,0x1d,0x91,0x3e,0xbf,0xa4,0x9d,0x7c,0x2c,0x87,0x9c,0x42,0x9f,0x03,0x98,0x03,0x1b,0x98,0x66,0x4f,0x8f,0x29,0x12,0xc5,0xb5,0xec,0x81,0xf8,0xb2,0x5e,0x44 +.byte 0x4f,0xb0,0x31,0xe4,0x2a,0x73,0x83,0xac,0x5a,0x3f,0xfa,0xcf,0x8b,0x7c,0xa3,0xf1,0x01,0x14,0xa1,0xca,0x60,0x8d,0x6a,0x6c,0x04,0x31,0xcc,0xba,0x12,0xe0,0x4e,0xaf,0x01,0x8d,0xf5,0x60,0x23,0x79,0x8a,0x80,0xcc,0x32,0x31,0x69,0x83,0xb6,0x83,0xaa,0xd9,0x3b,0x86,0x4a,0xd8,0x10,0x28,0x09,0x82,0x36,0xee,0x6a,0xc0,0x80,0x3f,0xfd +.byte 0xb1,0xd2,0xde,0x34,0xf9,0x4c,0x87,0x5b,0xdd,0xd0,0xb6,0x2d,0x99,0x69,0xd3,0x2c,0xb7,0x0b,0xfc,0x16,0x88,0x7b,0x80,0x21,0xbc,0x30,0x7b,0x56,0xe5,0x7b,0x41,0x43,0x4d,0xaf,0x40,0x5e,0x74,0x14,0x17,0x66,0x32,0xd6,0x81,0x53,0x94,0x35,0xf0,0x0f,0x4f,0x99,0x54,0x9a,0x38,0xc0,0x2a,0xa9,0xd3,0x53,0xdd,0x9a,0xc5,0x29,0x18,0x62 +.byte 0xf6,0x93,0xa3,0x02,0xf0,0x13,0xcb,0xcb,0xcc,0x64,0x0b,0x00,0xf4,0x43,0x03,0x26,0xe6,0x2f,0x39,0xa1,0x83,0xea,0x94,0x2f,0xde,0x61,0xbd,0xe1,0xbe,0x08,0xf8,0xd4,0x01,0x6e,0x61,0x98,0x01,0x39,0x4b,0x93,0x39,0x38,0x34,0x58,0x24,0xc1,0xf5,0x03,0x05,0x15,0x9c,0xf0,0x30,0x20,0x24,0xd4,0x7e,0x73,0xb2,0x60,0x06,0x3b,0xd3,0xb7 +.byte 0x2c,0x47,0x17,0xc4,0x79,0x4e,0x45,0x0b,0x89,0xf0,0xfc,0x42,0xa0,0x0d,0x80,0xd2,0x44,0x36,0x70,0xaa,0x9e,0x72,0x85,0xa8,0xc8,0x1d,0x35,0x28,0xc3,0x5a,0x72,0x4c,0x06,0x6d,0xf4,0xae,0x54,0x86,0x9a,0x32,0x3c,0xa5,0x06,0x63,0xc1,0x37,0xbb,0xaf,0xa6,0xae,0xce,0x94,0xea,0x9c,0x4a,0x9e,0x56,0xb1,0xc3,0x84,0x84,0xef,0x3d,0xe9 +.byte 0x24,0xf4,0xbf,0xc3,0xf6,0x45,0x74,0x4e,0xbb,0x86,0xd3,0x7f,0xab,0x19,0xe3,0x63,0x67,0x81,0xb6,0x18,0xc8,0x78,0x8e,0xf8,0x83,0x5f,0xfb,0x2e,0x49,0x97,0x2b,0x34,0xbb,0x76,0x2e,0x93,0xec,0xe9,0x7f,0x4d,0x7e,0x52,0x0c,0x92,0xbc,0x6d,0x3a,0x34,0x9b,0x5e,0x61,0x6f,0xea,0x45,0xe7,0x5c,0x34,0x6b,0xcb,0xc0,0x31,0x61,0x64,0x9d +.byte 0xad,0x7f,0x98,0xca,0xfe,0x3d,0xad,0xf7,0x21,0xf6,0x4c,0x2a,0x21,0x07,0x80,0x25,0xa2,0xea,0x26,0x85,0xc3,0xb1,0x74,0x04,0x7f,0xd1,0x1c,0x1b,0xa5,0x7e,0x96,0x45,0xfe,0x6f,0xa6,0x34,0xdf,0x94,0x1f,0x7e,0xfb,0xcf,0xfd,0x29,0xeb,0x3a,0xb0,0xfc,0xb6,0xd5,0x80,0x8b,0x37,0x71,0xfb,0x70,0x19,0x30,0xc4,0x6f,0xa0,0x5b,0xae,0x5b +.byte 0x75,0x51,0x98,0x89,0x9e,0xf0,0xf5,0x79,0xaf,0x1c,0x07,0xb6,0x5e,0xcf,0x34,0x70,0x0f,0x0b,0xbc,0x0a,0xa6,0x40,0xc7,0xf8,0xe4,0xef,0xe6,0xb7,0x94,0x6e,0x98,0x75,0x22,0x73,0x5c,0xca,0xcc,0xfb,0x09,0x2f,0x9c,0xfe,0x49,0x0f,0xd3,0x65,0xfe,0xd4,0xf0,0x9b,0xeb,0x8c,0xd7,0x8c,0xff,0x4b,0x18,0x3e,0xf3,0x9d,0x3f,0xf5,0x83,0xd6 +.byte 0x1d,0x3d,0x23,0x79,0x0f,0xae,0x17,0x62,0x33,0x07,0xc3,0xac,0x98,0x07,0x72,0x9b,0xd9,0x26,0x5c,0x1a,0x9d,0xf1,0x35,0x92,0xf9,0x38,0x17,0xf8,0xee,0x26,0xf9,0x64,0xfc,0x5e,0x8b,0x80,0xce,0xdb,0x64,0xf7,0xde,0x20,0x19,0x5c,0x26,0xf6,0x23,0xd6,0x99,0x8e,0x75,0x77,0x3d,0x17,0x0f,0xea,0x31,0x5a,0x65,0x32,0x1b,0x78,0x78,0xe4 +.byte 0xfe,0x76,0xf8,0xa7,0x81,0x34,0xf1,0x2a,0x13,0x22,0xe4,0x8a,0xe1,0x42,0x5a,0x3f,0x44,0x22,0xeb,0x7e,0xcd,0x20,0xcd,0xf7,0x44,0x1a,0x87,0xb9,0x7a,0x0e,0xf8,0xcb,0xb5,0x0a,0x1f,0x6a,0xe6,0x0b,0x70,0x59,0x38,0xa3,0x6b,0x64,0x7b,0x61,0xfe,0xbd,0xa4,0xb7,0x89,0x7a,0x28,0x70,0xfe,0x9d,0x64,0x2c,0xe9,0xc4,0xc9,0x2f,0xc8,0x3e +.byte 0xfa,0x70,0xce,0x21,0x9b,0xa8,0x10,0x6a,0x16,0xdd,0x28,0xce,0x4e,0xd4,0x6c,0x8c,0x47,0x83,0x13,0x8b,0xec,0x1c,0x76,0xdc,0x4d,0x81,0x25,0x08,0xd8,0xf9,0xde,0x66,0x1d,0xe2,0xf3,0xe7,0xdc,0x3e,0x3c,0x6b,0x98,0x25,0x55,0x88,0xe8,0xda,0x7f,0x16,0xe5,0x7d,0xad,0x8a,0x36,0x00,0xf0,0x68,0xc5,0xe4,0xfc,0xe9,0xe3,0x54,0xeb,0x4c +.byte 0xd1,0xff,0x07,0x1a,0x5c,0x5e,0xd4,0xb1,0xff,0x7d,0xfc,0x5b,0x34,0x42,0x95,0x89,0x01,0x24,0x8e,0x30,0xec,0xfe,0x67,0xf8,0xe2,0xaa,0xd5,0x6a,0x9f,0xe3,0xc3,0xa5,0x53,0x7f,0xd3,0xf4,0x98,0xa5,0x47,0x11,0xad,0xac,0xea,0xba,0x20,0x34,0x03,0x65,0x8c,0xec,0xb6,0xa3,0x2b,0xf6,0x93,0xe1,0xc8,0xad,0x34,0x30,0x8f,0x0e,0x3b,0xf6 +.byte 0x63,0xc6,0x58,0xc3,0xe8,0xa3,0x85,0xf8,0x24,0x8e,0x21,0xb9,0x36,0x7c,0xe0,0x11,0x64,0x31,0x6a,0x6a,0xa2,0xad,0xd3,0x94,0xbb,0x13,0x5b,0xb4,0xe9,0xee,0x09,0xdc,0xfe,0xb2,0xad,0xa8,0x43,0x02,0xba,0x85,0x1f,0x56,0xcb,0xb5,0x95,0x32,0xcc,0x7e,0xe0,0x00,0xde,0xfa,0x3f,0x91,0x71,0xde,0x21,0x19,0xff,0xc9,0x97,0x43,0x95,0xd8 +.byte 0x0d,0xc2,0x8a,0xde,0xcc,0x34,0x48,0xf4,0x35,0x41,0xb8,0x56,0x52,0xce,0x06,0xb3,0xcf,0xd4,0xae,0x7a,0xcb,0xe9,0xed,0x37,0xd6,0x76,0xa0,0x77,0x04,0xfb,0xb7,0x41,0x25,0x38,0xe1,0xd1,0xb5,0xde,0x21,0xe0,0x64,0xd8,0x83,0x13,0x7b,0x4b,0xb8,0xc9,0x12,0x02,0x51,0x56,0x52,0xe9,0x1c,0x49,0x48,0x83,0xd0,0x99,0x73,0x60,0x4a,0x4c +.byte 0x7d,0x8d,0x43,0xf9,0x06,0xa4,0xbb,0x0e,0xb6,0xdd,0x5f,0xc7,0x5e,0x35,0xcb,0xa0,0xc1,0x66,0x4a,0xe3,0x4a,0xa9,0xec,0xa4,0x5a,0xd7,0xd6,0xea,0xa5,0x20,0xa6,0xc3,0x1b,0xc0,0xa8,0xd1,0xf1,0x08,0x05,0xab,0x40,0x14,0x35,0xf2,0xdd,0x0f,0xc5,0xda,0xb3,0xa6,0xb1,0x07,0x36,0x17,0x5d,0xe9,0x96,0x23,0x96,0x46,0xd4,0xa7,0x71,0x64 +.byte 0x13,0x72,0x4e,0x83,0xe0,0x65,0x40,0x41,0xaf,0xb6,0x5b,0x00,0xa2,0xab,0x09,0x7f,0xa5,0xd5,0xc2,0xd9,0xc0,0x68,0x2a,0x44,0xdc,0x43,0x37,0x81,0xb8,0x88,0x4c,0x85,0x1b,0xb1,0x83,0xb2,0x56,0xa3,0x91,0x0f,0xa6,0x70,0x3f,0xbd,0xe9,0xda,0x40,0x9b,0xf5,0x9e,0x53,0xed,0x5f,0x84,0x70,0xd2,0x4c,0x1c,0xb6,0x87,0xd6,0xbb,0x3b,0xec +.byte 0xe5,0x35,0x1b,0x2c,0x9b,0xf1,0xe5,0xf8,0x0e,0x07,0x98,0xcc,0x58,0x38,0x57,0x74,0xdb,0x0e,0x08,0xd9,0x56,0xe8,0x08,0x63,0x3d,0x94,0x4a,0xdc,0x59,0xfc,0x3d,0xc1,0xa4,0x36,0xc3,0xe8,0xbe,0x4b,0xd7,0x47,0x69,0x33,0xb8,0x72,0x30,0x59,0x28,0x4e,0xf1,0xc1,0x25,0xa3,0xa4,0xe3,0x12,0xcf,0x31,0xf6,0xf8,0xae,0x31,0x06,0x76,0x92 +.byte 0x64,0x87,0x8e,0xb0,0x9f,0x1d,0xf4,0x56,0x73,0xc5,0x5d,0xbb,0x80,0x0d,0x19,0x3f,0x56,0x8c,0xe4,0xd6,0x8a,0x9a,0x62,0x26,0x4e,0x8a,0x21,0x7d,0x72,0x34,0x87,0xb6,0x7e,0x49,0xdc,0xfd,0x27,0x95,0xba,0x25,0xdd,0xf4,0x58,0x2b,0x11,0x3f,0xd1,0xd7,0x13,0x1d,0xb0,0xec,0xe2,0x55,0x5e,0x72,0xea,0x36,0xc9,0xd8,0x61,0xc0,0xee,0xc4 +.byte 0x9f,0x35,0x7e,0x73,0xd3,0xf6,0xd7,0x6a,0xce,0xd6,0xd2,0x80,0xe6,0x10,0x4b,0x65,0x18,0x6f,0xab,0xd3,0x41,0xbb,0x39,0x36,0x95,0x84,0x3c,0x99,0x9a,0xfd,0xf0,0xa3,0x46,0xdf,0x48,0x7c,0xd5,0x57,0x9d,0x10,0x59,0xca,0x70,0xc4,0xb5,0xbe,0x47,0x9e,0xca,0x2b,0x49,0x54,0xbb,0x34,0x8e,0x39,0xf4,0xf8,0x8c,0xa5,0xa1,0xab,0xf6,0x51 +.byte 0xd8,0x22,0x9a,0xd5,0xc2,0x12,0xf8,0x26,0xc6,0x19,0x2a,0xa6,0x6e,0xab,0xd3,0xac,0xd1,0x21,0x97,0x67,0x3e,0x39,0x90,0x5c,0x37,0x65,0x7b,0x06,0x54,0x1a,0xb8,0x2a,0x56,0x02,0xa3,0x92,0xee,0xf3,0x38,0x53,0x25,0x4d,0x5d,0x0a,0x37,0x9e,0xbb,0xf4,0xb2,0x13,0x77,0xbb,0x93,0xa9,0x85,0xf2,0x15,0xfd,0x71,0x17,0x00,0x89,0xe7,0x7b +.byte 0xa9,0xdc,0x10,0xd9,0xc7,0x44,0xa5,0x7b,0x3f,0x2f,0x1e,0x6d,0xa7,0xfe,0x0c,0x0e,0x83,0x3e,0x38,0x27,0xa7,0x4e,0x85,0x3c,0x84,0xfe,0x95,0x48,0x85,0x09,0x75,0x62,0x1d,0xa4,0x64,0x54,0xed,0x89,0xd5,0x28,0x62,0x52,0x18,0xef,0xf0,0x57,0x05,0x30,0xf0,0xce,0x87,0x05,0x0d,0x81,0xe8,0x2a,0x3c,0x8c,0x22,0xe1,0x4b,0x32,0x42,0x9d +.byte 0x02,0xc5,0xe4,0x6a,0xa4,0x4d,0x9b,0xc4,0x82,0x47,0xdc,0x61,0xbd,0x82,0x01,0xcd,0x5e,0x64,0x9f,0x4c,0xe3,0x31,0xe9,0x48,0x53,0x85,0x07,0xc7,0x47,0x49,0x35,0xd8,0x6a,0xab,0x4f,0x73,0x3f,0xd3,0xde,0x87,0x29,0xac,0xbc,0x35,0x0a,0xb4,0x74,0xc2,0xa7,0x0b,0xb1,0x93,0x92,0x29,0x3b,0x3e,0xa8,0xde,0x12,0x49,0x75,0xda,0x16,0x27 +.byte 0x52,0x2f,0x93,0x23,0xd6,0xf7,0x10,0xfe,0x1e,0x93,0x97,0x06,0x9d,0xef,0x4f,0xe4,0x3d,0x5d,0xde,0x30,0x70,0x3d,0x78,0x3a,0x30,0x00,0x9b,0x77,0x12,0x90,0x62,0xda,0x32,0x9b,0x6a,0x47,0xd7,0x0f,0xee,0x75,0x18,0xdd,0x4d,0x8a,0xe2,0x35,0x5b,0x60,0xb8,0xf9,0xa4,0x6c,0x93,0x3e,0x47,0x23,0xed,0x7a,0xe2,0x58,0x42,0xd6,0x3f,0x90 +.byte 0xc0,0x12,0x38,0x8b,0x70,0xe0,0xf8,0x1a,0xb5,0x8d,0xe1,0x39,0xdf,0x93,0x25,0x72,0x2e,0xa9,0x3f,0x58,0x12,0x40,0xc4,0x92,0x46,0x08,0xf0,0x64,0xdd,0x34,0x42,0xfe,0x74,0x35,0x0c,0xda,0xef,0x06,0x0b,0x33,0x59,0xd9,0xee,0x4c,0xf9,0x02,0x3a,0x93,0x40,0xa3,0x99,0x0e,0x64,0x11,0x2f,0x52,0x9d,0x28,0x4d,0xe8,0x45,0xd0,0x22,0xd7 +.byte 0x8f,0xd6,0x28,0x8c,0x0e,0x18,0x87,0x24,0xf9,0x88,0xd2,0xc0,0xe8,0xd4,0x9d,0xa2,0x5a,0x79,0x83,0x37,0x18,0x84,0x12,0xca,0xc7,0x10,0xd5,0x5a,0xa8,0xe5,0xa8,0xe7,0x79,0xb6,0x2c,0xb3,0x90,0x6c,0xc5,0xa4,0x99,0x1b,0x85,0x29,0x78,0x0b,0x09,0x77,0x05,0xf4,0x23,0x79,0x5c,0x91,0xf3,0xe0,0xe4,0x6f,0x82,0x33,0x4e,0xa2,0x2e,0xa2 +.byte 0x65,0x79,0xad,0x98,0x36,0x34,0x72,0x97,0xd7,0x39,0x89,0x5e,0x82,0x9f,0x4c,0xe2,0xea,0x51,0x85,0x62,0x0c,0x39,0xf6,0xdc,0xc6,0x80,0x48,0xcf,0x98,0x93,0x64,0x7d,0xf9,0x63,0xf4,0xf5,0x18,0x2a,0xb6,0x04,0xb7,0x44,0xc4,0x60,0xc0,0xcf,0x3d,0x88,0xa8,0xb6,0x81,0xa3,0x99,0x2a,0xf0,0x1a,0x8d,0x76,0x20,0x1d,0xcc,0x10,0x50,0x58 +.byte 0x09,0xf9,0xda,0x65,0x60,0xc3,0xb1,0xc1,0xc0,0x4d,0x62,0x52,0x22,0x45,0x32,0xbc,0x11,0x93,0x15,0xb6,0x25,0x8f,0x65,0xa0,0x4c,0x88,0xc9,0x83,0xe1,0x5c,0xbb,0xfb,0x1a,0xab,0xdb,0x35,0x40,0x66,0xc0,0x2f,0xdc,0xf5,0x92,0x08,0x4c,0xc7,0xb8,0x49,0x05,0xe0,0xe1,0x61,0x2b,0xde,0xc7,0x6a,0x04,0x05,0x4d,0x9f,0xe9,0x59,0x22,0x56 +.byte 0x63,0x77,0x9d,0xe3,0x1e,0x36,0xdf,0x87,0x4a,0xeb,0xba,0x42,0x3d,0x1b,0xa5,0xd0,0xc5,0x44,0x07,0xbe,0x37,0x37,0x70,0x10,0x2d,0x02,0x9b,0xf6,0x52,0xf3,0x54,0x6d,0x50,0xdb,0xdb,0x57,0x01,0x0b,0x9b,0xd5,0x99,0x99,0x69,0x9b,0x10,0x76,0x48,0xea,0x28,0x27,0x06,0x30,0x63,0x3b,0xdf,0x06,0x30,0x37,0x28,0x75,0xcf,0x9c,0xe7,0x52 +.byte 0x43,0xe2,0xd5,0x7b,0xfa,0x88,0x98,0x9c,0x3e,0x27,0x30,0x21,0xcc,0x11,0x71,0x14,0x24,0x04,0x1a,0x8c,0xe9,0xfe,0x2f,0x9d,0xec,0xb1,0x10,0x33,0x05,0x31,0x01,0x1b,0xde,0x6b,0x30,0x20,0x6d,0xf4,0x7c,0xbf,0x41,0x04,0x5f,0xb9,0x9c,0x24,0x63,0x74,0x98,0x3e,0x60,0xc7,0xf1,0xb1,0xc6,0x94,0xf3,0x6f,0x95,0x24,0xdf,0x97,0xd5,0xc7 +.byte 0x50,0x19,0xaf,0xa5,0xae,0x51,0xde,0x6d,0x44,0x0c,0x90,0x72,0x11,0x82,0x04,0xf9,0xda,0x17,0xd8,0xf3,0x03,0xf2,0x03,0x3f,0x65,0x7f,0xd7,0x66,0x84,0x9a,0x02,0x90,0x2b,0x65,0x00,0xd9,0x9c,0xfb,0xaa,0xe2,0xde,0x5f,0x1e,0x19,0x1e,0x6d,0x20,0x1e,0x01,0xf1,0xca,0x7b,0x90,0x06,0x96,0x1d,0x7a,0x34,0x0c,0x66,0x57,0xd7,0x61,0x1f +.byte 0x74,0x03,0xcb,0xae,0xea,0xaf,0x65,0x8e,0x32,0xbe,0xb8,0xe6,0xd8,0x6d,0xf7,0x51,0x6d,0xec,0x7e,0xc6,0x9d,0x20,0x01,0xbf,0xd7,0xbc,0xcb,0x34,0x7c,0xe5,0x1f,0x92,0x72,0x2f,0x6f,0xa3,0x1f,0xe8,0x4d,0x7e,0xa5,0x85,0x3b,0xed,0xc7,0x25,0x53,0xe3,0x77,0x90,0x1f,0xda,0xb7,0x48,0x7d,0xbe,0x20,0x48,0x9f,0xb4,0x05,0x5d,0x41,0xc5 +.byte 0x48,0xd0,0xc9,0x83,0xbe,0xf8,0xd8,0x6b,0x0d,0x26,0x66,0x2e,0xef,0x6b,0x13,0x58,0x6b,0x5f,0x0e,0x8b,0x4e,0x57,0xb2,0x6b,0x3d,0x4d,0xcd,0xcb,0x9a,0x9b,0xda,0x4d,0x7f,0xea,0x17,0x06,0x7f,0xcd,0xaf,0x18,0xda,0x3d,0xf0,0x30,0x2e,0xbb,0xc2,0x1d,0xcf,0xde,0xf7,0xee,0xda,0xd6,0x3d,0x75,0xcf,0x19,0xcf,0xfc,0xdf,0x7a,0xb6,0x1f +.byte 0x89,0xf5,0x0c,0xe9,0xd5,0xf1,0xd0,0x40,0xbd,0xae,0xb5,0x16,0xf6,0x05,0x1e,0xba,0xcd,0x18,0x80,0x4a,0xb3,0x87,0x93,0x6b,0x19,0xfc,0x47,0xa8,0x45,0x4b,0x75,0xe8,0x06,0xc0,0xbd,0x86,0xf7,0xcf,0x2c,0x39,0xc6,0x0b,0x3f,0x32,0xcd,0x1c,0x02,0xec,0x4b,0xd5,0x90,0x84,0xaf,0xc9,0x5c,0x9e,0x64,0x82,0x13,0x81,0x05,0x03,0xe4,0xed +.byte 0x48,0x23,0xc3,0x53,0x2c,0x5a,0x22,0x0a,0x27,0x7e,0x55,0x79,0xdc,0x46,0xf5,0x4b,0x04,0xcc,0x43,0x87,0x6c,0xb5,0xa4,0x2d,0x78,0x70,0x02,0x43,0x0e,0x76,0x62,0x99,0x86,0x40,0x2a,0xe4,0x62,0xe6,0xee,0x4e,0x03,0x64,0x83,0x9c,0x38,0x6d,0x62,0xa6,0x85,0xb8,0xce,0xd7,0xf8,0xcb,0x78,0x00,0x7a,0x48,0x72,0x75,0x4e,0x9c,0x6f,0x0c +.byte 0x61,0xc7,0x93,0x4e,0x6d,0x65,0xa3,0x1b,0x17,0x84,0xc6,0xd2,0x29,0xc3,0x4d,0xe3,0x14,0x21,0x5f,0x9e,0xa9,0x28,0x11,0xf3,0xb2,0xe8,0xe7,0x60,0x9e,0x24,0xab,0x88,0x9c,0x9c,0x5e,0x17,0xe4,0xe1,0xa7,0x74,0xb4,0x82,0xd5,0xaa,0x92,0x08,0xa7,0xa2,0x04,0x6f,0x77,0x14,0x54,0x44,0x5d,0x13,0x10,0xa2,0x40,0x1d,0xf0,0x44,0x16,0x17 +.byte 0xda,0x8c,0x80,0x83,0x2b,0x19,0xb8,0xab,0xf2,0xb8,0xb1,0x92,0xb5,0xc5,0x05,0x3e,0xd2,0x1a,0xfc,0xfd,0x21,0xa6,0xb2,0xbd,0x89,0xee,0x9c,0x3c,0x90,0xd9,0xf1,0xd2,0xe8,0xc3,0x21,0xb9,0x0e,0x0c,0x98,0xbc,0x5e,0xa1,0x0d,0x89,0xfe,0x0f,0x3c,0x45,0xea,0xe1,0x6e,0x06,0x59,0xff,0x79,0xf4,0x7e,0xf4,0x82,0xc0,0x6b,0xd9,0x53,0x30 +.byte 0x98,0xed,0x8d,0x6f,0x3d,0x0e,0xfb,0x42,0x66,0xab,0x41,0xa8,0x4a,0xef,0x73,0xa4,0x54,0x99,0x4f,0xb6,0x65,0x44,0xf9,0xd9,0x3c,0x6b,0x59,0x36,0xb0,0xe3,0x7c,0x4a,0x85,0x80,0x6c,0x77,0x6f,0x34,0x4e,0x9e,0x54,0xfd,0x0c,0x25,0x72,0xc3,0x5a,0xb6,0x3b,0xad,0x2b,0xd5,0x29,0x55,0x31,0xab,0x62,0xe4,0x15,0xed,0xef,0x16,0xef,0x43 +.byte 0xd5,0xdd,0x3d,0x64,0x8c,0x13,0xbc,0xcd,0x4d,0xfb,0x4f,0x86,0x3b,0x73,0x1e,0xc4,0xe8,0x54,0xb4,0xcc,0x49,0xba,0x4f,0x81,0xcd,0xe8,0x30,0x92,0x4b,0x57,0xd1,0x7c,0x0c,0x65,0x7d,0xe1,0x59,0xc6,0x8c,0x7d,0xad,0xd5,0xcf,0x6c,0xc4,0x9d,0xc5,0x3f,0x23,0x1f,0xb0,0x6d,0x1c,0x07,0xbf,0x38,0xc9,0x16,0xdc,0x5b,0x51,0xa1,0xdb,0x8f +.byte 0xf8,0x25,0xc6,0x4d,0xc0,0x4d,0xa1,0x02,0xd9,0xd3,0xb5,0x63,0xda,0xe1,0x91,0x60,0x71,0x39,0x46,0x1a,0x13,0xe0,0xf2,0xca,0xcc,0xd3,0xbb,0x6b,0xd0,0x64,0xaa,0x0e,0xc0,0x89,0xa3,0xc6,0x14,0x56,0xe4,0x44,0x97,0xa9,0xcc,0x17,0x68,0xe6,0xfc,0xe5,0xfd,0xf0,0xa6,0x69,0xcd,0xac,0x20,0xc7,0xeb,0x53,0x1b,0x4f,0xdd,0xd3,0xb0,0xed +.byte 0x30,0x4e,0x36,0x73,0x63,0xef,0x51,0x3e,0x9a,0x3e,0x41,0x2b,0x9c,0xda,0x67,0x96,0x46,0x33,0xe3,0x3f,0x87,0x01,0xd8,0xc5,0x26,0x80,0xe4,0x7e,0xf4,0x78,0x8c,0x2b,0x81,0x2a,0x01,0x7c,0xe3,0xfc,0x8d,0x6b,0xdc,0x84,0xb9,0xff,0x43,0x37,0x57,0xce,0x3f,0x5e,0x63,0xd3,0xbe,0xb6,0x4a,0x31,0xbf,0xb8,0x74,0x64,0x9c,0xf3,0xc5,0x8a +.byte 0xae,0xe8,0x5f,0x68,0xcf,0xce,0xff,0x3f,0xc5,0xb5,0xfd,0x13,0x08,0x11,0x9d,0x1a,0x0f,0x06,0x08,0x4d,0x7c,0xf9,0xd4,0x20,0xdf,0x82,0xf9,0x86,0xfc,0xf3,0x67,0xa0,0x14,0x99,0xe5,0x47,0xf0,0x02,0x7b,0x16,0xca,0xcf,0xb9,0x0f,0x68,0x08,0x5d,0x1d,0x65,0xee,0x23,0x56,0xeb,0x11,0x5b,0xca,0xf1,0xa7,0xad,0x50,0xb2,0xd1,0x37,0x65 +.byte 0xe9,0x7e,0xf6,0xe9,0x64,0x42,0x49,0x80,0x40,0x17,0xe3,0x43,0x00,0xda,0xe1,0x7a,0x1c,0xb3,0xde,0xd9,0xf7,0x33,0xeb,0xb3,0xb8,0xf5,0x40,0x1b,0xcd,0x71,0x97,0x30,0xf9,0x9c,0x4d,0xac,0x7e,0x8e,0xd9,0x36,0x92,0x39,0xb5,0x56,0x0f,0x4f,0xbf,0x58,0xb8,0xba,0xc3,0xbd,0x79,0xb0,0xd7,0x6c,0x45,0x49,0xe2,0xde,0x94,0x04,0x9d,0x3e +.byte 0x91,0x0a,0xb2,0x9b,0x90,0x57,0x2e,0x69,0xa4,0x4f,0x61,0xbf,0xdb,0xfb,0xe3,0xe9,0x81,0x26,0xe0,0x48,0x90,0x8c,0x32,0x95,0x8d,0x38,0xec,0x8e,0xa7,0x5e,0xc3,0x36,0xc6,0xd1,0xbc,0x9a,0xb3,0xba,0xdb,0x2c,0xe4,0xa0,0x50,0x74,0xef,0x98,0x48,0x14,0xc9,0x38,0x4d,0xa9,0x48,0x13,0xd4,0x08,0x60,0xfd,0xcf,0x5e,0xf2,0xcd,0xc7,0xeb +.byte 0xaf,0x88,0x32,0x30,0x6f,0x19,0x01,0xec,0x87,0xae,0x6d,0x63,0xa3,0xa7,0x7b,0xcd,0x53,0xa7,0xf2,0xf2,0x9f,0x43,0xcb,0x0a,0x3f,0x8c,0xd2,0x55,0x8d,0xa7,0x95,0xcf,0x5b,0xae,0x64,0x23,0xda,0xb4,0xbd,0x32,0x34,0x95,0x8a,0x03,0xe7,0x6e,0xef,0x3f,0xb4,0xcf,0xc6,0x8a,0x2f,0xc6,0x59,0x99,0xdf,0xad,0x3c,0x15,0xed,0x83,0x0b,0x59 +.byte 0x8b,0xcd,0x0d,0xa6,0xcf,0x3a,0xc3,0xdb,0xc3,0x01,0xa9,0x32,0x38,0x45,0x5c,0xc8,0x56,0x81,0xef,0x21,0x7f,0x52,0xc4,0xb5,0x48,0x97,0x6a,0x60,0x75,0x3a,0x1a,0xd3,0xb0,0x60,0x9a,0x83,0x61,0xad,0x3b,0x4b,0x65,0xaa,0x9e,0x77,0x47,0x6f,0x3b,0x48,0xb0,0xc6,0x36,0x9a,0x59,0x5e,0x26,0xc4,0xb9,0xed,0x04,0xf3,0xc7,0x09,0x33,0xda +.byte 0x81,0x63,0xa6,0x5d,0xe1,0x54,0x6b,0x04,0x17,0x2b,0xb9,0x2f,0xbd,0x55,0xdb,0xa1,0x69,0x00,0xcd,0xba,0xfa,0x36,0xaa,0x47,0x5a,0x7c,0xf4,0x1f,0x53,0x94,0x95,0x2f,0xf8,0x2a,0x4b,0xa8,0xcc,0x73,0xab,0xfd,0x25,0xb2,0x4e,0xd6,0x62,0x90,0x8c,0x8f,0x02,0xe4,0xdc,0x22,0x79,0x04,0x34,0x9b,0x54,0x5c,0x54,0xca,0x9b,0x8a,0xf8,0x05 +.byte 0xd1,0xb0,0x9e,0x8f,0xa3,0x0b,0x53,0xa8,0x6f,0x1b,0x2e,0xf2,0x71,0x78,0x28,0xce,0xa9,0xdb,0x4c,0x5b,0x83,0xfe,0xaa,0xff,0x99,0x2f,0x03,0x14,0xb2,0xe0,0x5f,0xaa,0x65,0x15,0x1f,0xd2,0x31,0x95,0x70,0x3c,0x8b,0x55,0x8e,0x87,0xed,0xbb,0x0c,0x91,0x87,0xaa,0xbe,0x49,0xdb,0x18,0x7b,0x1d,0x26,0xa7,0xdf,0x00,0xff,0x73,0x70,0x2e +.byte 0x10,0xaf,0x46,0xea,0x7f,0xca,0xfa,0x09,0x13,0x02,0xac,0x3f,0xa0,0x02,0xa6,0x67,0xb7,0xec,0x18,0x73,0x91,0x25,0xa0,0x28,0xe3,0xd8,0xfa,0x11,0x6d,0x34,0x79,0x1d,0xe4,0x8f,0x7c,0x73,0x66,0x77,0x3e,0x43,0x23,0xb0,0xee,0x84,0xb5,0x75,0xc9,0x23,0x87,0x6a,0x4f,0x59,0x3d,0xb5,0xf1,0xd6,0x06,0xf8,0xa6,0x5d,0x0c,0x24,0xed,0x94 +.byte 0xd7,0xa8,0x31,0x37,0x10,0x60,0xb6,0x03,0x33,0x27,0x38,0xdd,0xd3,0x74,0x02,0xa3,0xa6,0x01,0x94,0xa9,0x56,0x11,0x23,0x0e,0xdb,0xfd,0x25,0x92,0xa8,0xfb,0x79,0xc8,0x8e,0x0e,0x10,0x1f,0xca,0x95,0xf6,0xad,0x28,0xe7,0xaa,0x2b,0xf1,0x40,0xf6,0xef,0x7b,0x40,0x28,0x57,0xbb,0x4c,0xac,0x0b,0x8b,0xb3,0xe3,0xec,0x53,0xf2,0x15,0x61 +.byte 0x2e,0x91,0xdf,0x91,0xfb,0x55,0xb6,0x7f,0x6c,0xfc,0xb7,0x4b,0x91,0xdc,0xf7,0xe5,0x91,0xd8,0x70,0x92,0x94,0xea,0x3f,0x62,0x98,0x14,0xc3,0x43,0x34,0x02,0x87,0xc7,0xca,0x60,0x4a,0xfb,0x50,0xe4,0xa9,0x92,0x10,0x04,0x7c,0x55,0xd3,0x9a,0x89,0xba,0x8e,0x6f,0x02,0xd6,0xc7,0x6f,0x91,0xb5,0x87,0xb9,0x0e,0xbe,0xe4,0x9f,0x01,0x0b +.byte 0x20,0x60,0xc8,0x16,0xe6,0x23,0x1d,0x5f,0x4d,0x82,0xf4,0x42,0x25,0xe6,0x05,0xe3,0x5b,0xbb,0xd1,0xb0,0xad,0x0b,0x05,0x71,0x3a,0x7b,0xee,0x0e,0xe1,0xe4,0x08,0x9f,0xda,0xdf,0x59,0x57,0x4f,0x05,0x5a,0x51,0x9a,0x60,0xfd,0x85,0x21,0xd1,0x0a,0x3b,0x0a,0x15,0x61,0x28,0x98,0x0a,0x8f,0x1e,0x33,0x15,0xb3,0x5f,0xf3,0xbb,0x89,0x22 +.byte 0x0c,0xaf,0x91,0xce,0x44,0xb1,0x54,0xd0,0x80,0x86,0x43,0xa1,0xb9,0x07,0xde,0xab,0x1f,0x9b,0xae,0xef,0x07,0xf2,0x40,0x33,0x31,0x4d,0xf9,0x45,0x97,0xf6,0xcc,0xe5,0x3c,0x49,0xcd,0x83,0x6e,0x38,0x81,0xab,0x40,0x18,0xda,0xf6,0xfe,0xe7,0x96,0xd1,0x17,0x98,0xae,0xec,0xe9,0x93,0x37,0xbc,0x0b,0xa8,0x12,0xe7,0x65,0xca,0x27,0x37 +.byte 0x6a,0x74,0x81,0xf1,0xe0,0x6c,0x0d,0xba,0x86,0x48,0x94,0xd0,0x72,0xd5,0x4d,0x71,0xcf,0xa8,0x5e,0xd1,0x97,0xd1,0xed,0xf0,0xd3,0xe4,0xe3,0x41,0xc9,0x8f,0xfc,0x89,0xe8,0xbf,0x96,0x8b,0x86,0xb0,0x97,0x79,0x95,0xdf,0x69,0x56,0x6d,0x61,0x0a,0x37,0xcb,0x36,0xe1,0x95,0x88,0xf5,0xf0,0xe2,0x5c,0xb2,0x44,0x73,0xda,0x83,0xa7,0xdc +.byte 0x8b,0x35,0x3e,0xc1,0xd5,0x88,0x17,0x3b,0xeb,0xcf,0x36,0x9c,0xef,0x40,0xb2,0x72,0xde,0x4f,0x16,0x6c,0x8c,0x9d,0x15,0xce,0x7d,0x0d,0xc3,0x2f,0xea,0xab,0x50,0xdf,0x02,0xe0,0x24,0xcc,0xf4,0xa7,0x25,0xba,0x85,0x0d,0x62,0x9a,0x39,0xc7,0x5a,0xd1,0x9a,0xd1,0xa7,0x45,0x5f,0xc2,0x44,0xf5,0xa9,0x8d,0xd8,0xbc,0xd3,0xc8,0x75,0x0d +.byte 0x06,0xc6,0x4b,0x24,0xc6,0xe5,0x72,0xf7,0xd5,0x87,0xca,0x3c,0xc0,0x1c,0x18,0xa9,0x40,0xc6,0x7b,0xe5,0x4c,0xe6,0xb7,0x01,0x57,0xc1,0xcf,0x63,0x83,0x58,0x63,0x47,0xcf,0xa4,0xd3,0xf6,0x1d,0x2c,0xbf,0x17,0xe6,0x0a,0x7b,0x2d,0xa9,0x34,0x23,0xfc,0x1f,0x06,0x31,0x47,0x7b,0x31,0x34,0x8c,0x3c,0x15,0x9b,0xac,0xfd,0x38,0xe6,0xa3 +.byte 0x9e,0xa7,0xdf,0xa6,0x37,0x61,0xfd,0x85,0xb8,0x2e,0x67,0x73,0x7f,0x60,0x12,0x8b,0x62,0xb0,0x38,0xd0,0xaa,0xc4,0xad,0x3b,0xa9,0x04,0x66,0xdd,0xbb,0x9c,0xb1,0x95,0xe1,0x9c,0x0a,0x72,0x80,0x12,0xaa,0xa8,0x0c,0x3f,0x90,0x20,0x33,0xb4,0x76,0xdd,0x26,0xfe,0x1e,0x8f,0x6a,0x2d,0xea,0x4a,0xdc,0x28,0x47,0x66,0x36,0x5b,0x50,0x60 +.byte 0x7e,0x3e,0x93,0xf3,0xe9,0x37,0x31,0x3b,0x43,0x46,0x85,0xb3,0xa9,0xb2,0x14,0x95,0x96,0x49,0xf9,0x2a,0xe7,0x9e,0x3a,0x3e,0xd8,0x12,0xf7,0xbc,0x43,0x8c,0x35,0x31,0x44,0x08,0x7f,0x25,0x39,0x86,0x98,0x6a,0xe8,0xe3,0x2e,0x73,0x2d,0x3b,0xac,0x2d,0x75,0x4c,0xc8,0xca,0x21,0x2d,0x96,0x9b,0x4f,0x56,0xff,0x2d,0xc2,0xe2,0x98,0x3d +.byte 0xe2,0x3f,0xee,0x10,0xb7,0xc3,0x3d,0xa8,0x50,0x88,0x7f,0xd5,0x4e,0xbd,0xc7,0x9d,0xdc,0x01,0x49,0x27,0xf2,0xae,0xea,0x93,0x72,0xdf,0x00,0xcd,0xe6,0xa1,0xdd,0xd1,0x18,0xeb,0xa7,0xe1,0x4a,0x7b,0x38,0x72,0x73,0x29,0x46,0xa3,0xb3,0x25,0x23,0x6d,0x26,0xab,0x86,0xdc,0x67,0x52,0xe5,0x4a,0x5e,0x8f,0x16,0x67,0x8a,0x28,0x13,0xba +.byte 0x44,0x42,0xb5,0x21,0x9f,0x30,0x66,0x7f,0xc9,0x87,0x40,0xcb,0x75,0x58,0x2e,0xcd,0x09,0xb9,0x8a,0x84,0xa3,0xbd,0x63,0x53,0x75,0x2f,0x77,0x8b,0x7e,0x19,0x31,0x33,0x3b,0x9a,0xfb,0x86,0x39,0xa6,0xd9,0xeb,0x9b,0x43,0xc6,0xd9,0xc2,0x10,0xab,0x42,0xe5,0xc6,0x4a,0xe6,0x3e,0xde,0x9d,0xac,0x8e,0x95,0xf0,0xdb,0x48,0x95,0xc2,0x87 +.byte 0x6b,0x7f,0xde,0x09,0xdb,0xed,0x49,0x19,0x73,0x2d,0xa4,0x5c,0xdf,0xfa,0x2e,0x15,0xd0,0xb6,0x46,0x32,0xc9,0x7f,0x7e,0x01,0xd3,0x25,0x45,0x0e,0x5b,0x0d,0xf0,0x67,0xe3,0xd9,0xdf,0x4f,0x3b,0x6f,0xb3,0x15,0xc5,0x6b,0x91,0x75,0xa2,0xaf,0x42,0x3a,0x14,0x50,0xd9,0x4f,0x19,0x65,0x12,0x83,0x5d,0x8f,0x8a,0x01,0x0b,0x89,0xcc,0x7f +.byte 0x1a,0xde,0x5b,0x44,0x34,0x98,0x0f,0x8e,0x5a,0x5e,0x03,0x41,0x3e,0x66,0x9b,0x16,0xf5,0x91,0x7c,0xb0,0xc1,0xbf,0xa2,0x10,0x0b,0x60,0x3a,0x63,0x0c,0xcf,0xd8,0x49,0xdb,0x42,0x88,0x1f,0x36,0x8e,0x15,0xdb,0x5d,0x3f,0xe7,0xf1,0x9a,0x73,0x2b,0x74,0x0c,0xd5,0x09,0xab,0x01,0x2e,0x52,0x6f,0x03,0xf6,0xc9,0x0b,0xeb,0xa5,0xce,0x2e +.byte 0x1c,0x02,0x35,0xca,0xce,0xfe,0x4b,0xad,0x67,0x21,0xf8,0x44,0xea,0x70,0xf2,0x3d,0xfc,0x43,0x77,0x05,0x26,0xbe,0xaf,0x99,0xab,0x41,0xd4,0xcc,0x53,0x33,0x33,0xcd,0xb4,0x2d,0x76,0xfb,0xae,0x0c,0xac,0xc1,0xd0,0x42,0xfb,0x45,0x4a,0x6e,0x55,0xd2,0x93,0xef,0xb9,0x06,0xbc,0x38,0xce,0x94,0xc2,0x01,0xdf,0x27,0xc8,0x47,0xff,0x74 +.byte 0xfb,0x84,0xc5,0xa2,0x78,0x1f,0x4f,0x73,0x12,0xec,0x2d,0x82,0x5b,0xeb,0x3c,0xb6,0x1c,0x5a,0x29,0x9c,0xba,0x9e,0xa4,0x85,0x94,0x84,0x68,0x01,0xd7,0xb1,0x27,0x84,0x4a,0x7d,0x62,0x9c,0x32,0x12,0x89,0xd8,0x66,0xb5,0xe9,0x07,0xf4,0x5f,0x6b,0x0e,0x90,0x87,0xe5,0xc1,0x8b,0xaf,0x8f,0xf7,0xca,0x54,0xe0,0xc6,0x5f,0xa5,0xec,0xd1 +.byte 0xdc,0xdc,0x17,0x9e,0xca,0x4b,0x72,0x72,0x03,0x96,0x62,0xaa,0xc1,0xfe,0x23,0x7e,0xd2,0x06,0x61,0xb6,0xc9,0x0d,0x7e,0xbf,0x72,0x1c,0x66,0x46,0x0b,0x31,0x96,0x81,0x11,0x3d,0xac,0x5e,0xd0,0x35,0xaf,0xac,0x4c,0x74,0xce,0xf9,0x9c,0x64,0x3d,0xe5,0x9d,0xfe,0xc7,0x05,0x09,0xe1,0x70,0xc5,0x37,0xd5,0x4e,0xd8,0x7d,0xdb,0xfa,0x1c +.byte 0x28,0xfc,0x10,0x2a,0xe8,0x62,0x18,0x09,0x97,0xe0,0x98,0x2e,0x9f,0x1d,0x18,0xff,0x22,0xe9,0x5d,0x37,0xd2,0x74,0xf1,0x81,0x08,0x8a,0x55,0xc0,0x40,0x0f,0x70,0xbe,0x82,0x23,0x78,0x35,0xc8,0xf8,0x59,0x6e,0x0d,0x2e,0xd5,0xe7,0xf5,0x2e,0xbd,0xcd,0x1a,0xcf,0x76,0x43,0x1f,0xca,0x15,0x6c,0x4a,0xb7,0xc7,0xb9,0xaf,0x68,0xd7,0x31 +.byte 0x1e,0x0c,0x9c,0x78,0x74,0x66,0x80,0xc6,0x74,0xbe,0x86,0x59,0x0c,0x12,0xdc,0xf3,0x1b,0xaf,0x63,0x74,0xce,0x1e,0xac,0xf0,0x65,0xa0,0xab,0x7f,0x96,0x08,0x32,0xb2,0xca,0x9c,0xfb,0x9d,0x66,0x63,0x76,0xf9,0x69,0x08,0x6e,0xd3,0x46,0xde,0xdf,0x54,0x06,0x0d,0x25,0x81,0xd9,0x5a,0x45,0xeb,0xe5,0xc0,0xf6,0x86,0x0f,0xe9,0x27,0x7c +.byte 0xdc,0x52,0x28,0xb5,0xd0,0x7d,0x07,0xc1,0xb6,0x9b,0xdc,0xea,0xd3,0x2a,0xba,0xb0,0xd5,0xa3,0xd8,0x25,0x07,0x9c,0x6c,0xd6,0x16,0xa5,0x93,0x43,0x52,0xa7,0x5c,0x2b,0xe2,0xfa,0x8e,0x6e,0xaa,0x04,0x84,0x63,0x80,0x0f,0x90,0x10,0x41,0x1c,0xf6,0x67,0xea,0x39,0xb0,0x16,0xfc,0x6f,0x85,0x28,0x8c,0x8e,0xfb,0x79,0x39,0xdf,0xf6,0x6e +.byte 0x57,0xa1,0xaa,0xf1,0x0b,0x99,0xde,0xad,0x69,0xe2,0xf4,0x74,0x8e,0x8c,0x2d,0x20,0xdb,0xf3,0x2d,0xc2,0x75,0xe7,0xd6,0xc8,0x9d,0x46,0x3b,0x8b,0x8b,0x18,0xd8,0x41,0xfd,0xc2,0x7d,0xec,0x66,0x78,0xe7,0xbe,0xee,0x2b,0x07,0xd8,0x7e,0x13,0x61,0x7e,0xab,0x7d,0x2b,0x3f,0x83,0x96,0xf5,0xab,0x0b,0x20,0xd2,0x5b,0xb0,0xeb,0xf7,0x1b +.byte 0xac,0x1a,0x16,0x46,0x21,0x90,0xdb,0x67,0x66,0x42,0xe2,0x54,0x34,0xae,0x34,0xae,0x21,0x33,0x8c,0x48,0x19,0xdb,0x1f,0xa8,0x25,0x76,0xe0,0x03,0x1c,0x35,0x8d,0xd3,0xab,0x6b,0x93,0xf3,0xad,0x7d,0x3c,0x76,0x1d,0xaa,0x43,0x80,0x0f,0x5f,0x20,0xd9,0xf0,0xff,0x8b,0xf4,0xdb,0xbc,0xf2,0xff,0xf2,0x8a,0xfc,0xf5,0x0e,0x4e,0xd9,0xb0 +.byte 0xd6,0xb3,0x86,0x5b,0x3e,0x10,0x87,0x50,0xf1,0xd2,0x8f,0x8d,0xa4,0x39,0x85,0xf5,0x90,0xd6,0x53,0x69,0x40,0x42,0xc1,0xc3,0x7c,0xc1,0x3e,0x97,0xb4,0x08,0x49,0x93,0x4e,0x4c,0x67,0xd9,0x2e,0x05,0x70,0x04,0x98,0x0a,0xed,0xd0,0xff,0x0c,0x13,0xe4,0xde,0x75,0x81,0x24,0xb1,0x27,0x79,0xeb,0x80,0x68,0x52,0x50,0x66,0x77,0x4f,0xf6 +.byte 0x64,0x2f,0x85,0x9e,0xc1,0xbf,0x9f,0x0e,0x31,0x9a,0x36,0x24,0xcd,0xa8,0xe8,0xce,0x41,0x86,0xd1,0x02,0x96,0xdc,0x1a,0xa0,0x48,0xca,0x61,0xd5,0x87,0xdb,0x0a,0xeb,0x69,0x95,0xca,0xf8,0xe5,0xa0,0x5b,0x91,0x8f,0xb9,0x59,0x5f,0x68,0x60,0x58,0xc5,0xe0,0xc7,0x02,0x68,0xa5,0x67,0x1e,0xfc,0xa9,0x27,0x9f,0x83,0x4c,0x05,0x60,0xee +.byte 0xcb,0x79,0x31,0x73,0x36,0xf4,0x39,0x44,0xdb,0xea,0x62,0x89,0x97,0x69,0xd1,0x0d,0xf6,0x27,0xcf,0x47,0xfe,0x3d,0x5c,0xe9,0x92,0x54,0x0a,0x66,0xaf,0x82,0xb1,0x49,0x87,0x3f,0xa2,0x95,0x91,0x0e,0x72,0x1e,0x7b,0xde,0x32,0x31,0x51,0x40,0x24,0x4f,0x30,0x59,0x7d,0x97,0x28,0x30,0x7e,0x93,0xcd,0x1e,0x16,0xef,0xe1,0xb5,0xa8,0xff +.byte 0x3a,0xd0,0x62,0x94,0x8b,0x72,0xe7,0x97,0x8f,0x2f,0x58,0x3e,0x62,0x43,0x6b,0x28,0x05,0xc9,0x0d,0xf0,0x09,0xbd,0x12,0x3b,0xd8,0x15,0xd3,0x7c,0x97,0x96,0x5a,0xf4,0x9f,0x8d,0x25,0xb7,0xc5,0x66,0xf7,0xf7,0x5f,0x7e,0xca,0x2f,0xcd,0x9a,0xf2,0xa3,0x9b,0x4f,0x6f,0xc3,0xd9,0x64,0x38,0xda,0x87,0x97,0x8a,0x49,0x2d,0x80,0x16,0x73 +.byte 0x88,0x62,0xd2,0xdf,0x4f,0xf7,0x79,0xc0,0x83,0xeb,0x2b,0x66,0x5a,0x21,0x3a,0xa2,0x2a,0xed,0x8c,0xe7,0x91,0x6d,0x56,0x18,0xfc,0x59,0x68,0xea,0x9f,0x5c,0x3c,0xd5,0x0f,0x64,0x70,0x89,0x22,0x83,0xed,0xfa,0xc9,0x21,0x68,0x3c,0x69,0xb8,0x3e,0x89,0xb5,0x9d,0x8b,0xc8,0xf7,0x57,0x17,0x27,0x90,0x12,0xa7,0xd2,0x4d,0x2c,0x30,0x64 +.byte 0x42,0xbe,0xa6,0x49,0x4e,0xa3,0x3b,0xdb,0xdb,0x64,0x0e,0x89,0x66,0x87,0x72,0x90,0x86,0x1d,0x0b,0x61,0x32,0x47,0x3d,0x55,0x81,0xb2,0x50,0x5a,0x76,0x6c,0xa3,0x46,0x12,0x1b,0xaf,0x6e,0xbf,0xfd,0x98,0x2f,0xb7,0xd2,0x31,0x92,0xb5,0x26,0x1a,0x3d,0xfa,0x5d,0xc0,0x24,0x44,0xd2,0x6b,0x1c,0x81,0xf5,0x5d,0x50,0xb0,0x33,0x18,0xe0 +.byte 0xc5,0xb3,0x6b,0xf4,0xfd,0xde,0xf7,0x2f,0x69,0x1d,0x5a,0xfe,0x03,0x6d,0xca,0xad,0x29,0xe0,0x6e,0x70,0xcd,0xe3,0x6d,0x38,0xef,0xf1,0x3a,0x76,0x2b,0x2c,0xb6,0xcd,0xff,0xeb,0xbc,0xe7,0xd9,0x40,0xbe,0x23,0x61,0x20,0xd5,0xb8,0x66,0x77,0x65,0xc9,0x33,0xf5,0x75,0x8e,0x15,0x98,0x3f,0xb1,0x4a,0xb8,0x1c,0x47,0x73,0x45,0x0f,0x73 +.byte 0x2a,0xa1,0xb7,0x73,0x76,0x94,0x16,0x45,0xcf,0xd6,0x8f,0xe3,0x62,0x8a,0x42,0xfd,0xe3,0x1e,0xe0,0x7d,0xb5,0x99,0xbd,0x1c,0xf2,0x60,0xb2,0x72,0xa8,0x4b,0x19,0xd6,0xd0,0xdb,0x0b,0x1f,0xc9,0x68,0xc0,0xf3,0x65,0x04,0x50,0x41,0xf0,0xb3,0x0e,0x0a,0x9d,0x7f,0x0b,0x1f,0xeb,0x5b,0x4c,0x58,0x6a,0xf2,0x02,0x95,0xd2,0xf3,0xac,0xe5 +.byte 0x69,0x81,0xb1,0x3f,0x08,0xfc,0xba,0xcb,0x36,0xcd,0x54,0x28,0xac,0x65,0xd8,0x81,0xab,0xc1,0x6a,0x51,0x97,0x21,0xe4,0xc6,0xaf,0xd8,0x76,0x76,0xa4,0xc4,0xd0,0x58,0x63,0xdf,0x32,0xf5,0x04,0xfb,0x11,0xeb,0x76,0x39,0xda,0x55,0xf4,0x7e,0x1c,0x7b,0x04,0x07,0x4d,0x5a,0xeb,0x74,0x0a,0x57,0xcf,0x10,0xf6,0x0e,0x73,0x02,0x25,0x67 +.byte 0x4f,0x8f,0x37,0x75,0x8f,0x44,0x2a,0x1a,0x6d,0x05,0xda,0xe0,0xa0,0xaa,0xd2,0x78,0xaa,0x7e,0x76,0x0a,0xde,0x2a,0x54,0xae,0x1e,0x39,0xcc,0x3c,0x1c,0xa6,0xd5,0x8a,0xca,0xb4,0xcc,0x76,0xb9,0x30,0xd2,0xe2,0x46,0x31,0xb6,0x51,0xcf,0xe2,0x24,0x77,0xc9,0x9b,0x57,0x3c,0xa3,0x84,0x60,0x59,0x28,0x5f,0x23,0x74,0x17,0x79,0x42,0xbe +.byte 0x60,0x3f,0x09,0x6a,0x43,0x8e,0x40,0x25,0x79,0xb5,0xbb,0xbb,0x72,0x50,0xad,0x4f,0xaa,0xa2,0xd4,0xb2,0xc6,0x7d,0x50,0x7b,0x98,0x59,0x22,0x06,0x7d,0x2c,0x35,0xdd,0x44,0x34,0x9c,0x28,0x98,0xf3,0xe5,0xd0,0x7e,0x09,0xbe,0xc4,0x00,0x72,0xd5,0xa6,0x3b,0x0e,0xb1,0x18,0x91,0x0a,0x4d,0x5d,0xe2,0x0a,0x98,0x79,0x30,0x9b,0xaa,0x38 +.byte 0x03,0x2b,0x6c,0xb2,0x8e,0x0a,0x1d,0x30,0x59,0x8a,0xe8,0x6c,0x6d,0xb5,0xd4,0x91,0xc5,0x28,0x1d,0x5e,0x49,0xe0,0xfc,0x26,0x7f,0x40,0xc0,0x6a,0x81,0x0d,0xb9,0xc6,0x05,0xc6,0x18,0x82,0x70,0xf6,0xea,0x0e,0xb4,0x85,0xba,0x5d,0xfa,0xfd,0xe3,0xd6,0x08,0x7c,0x3d,0x99,0x03,0xd4,0xdc,0x9b,0x50,0x12,0xc8,0xbd,0x8c,0x47,0x67,0x28 +.byte 0x83,0x97,0xca,0xef,0xc3,0x1c,0x2b,0x6e,0x3b,0xf7,0xca,0x7a,0x68,0x6e,0x39,0x25,0x58,0xf7,0xa4,0x11,0x9d,0x8d,0x49,0x29,0xd6,0x6e,0x0b,0x0a,0xcf,0xa7,0x04,0x14,0x6f,0xc4,0x4c,0x36,0x1a,0x16,0x3e,0x8f,0x99,0x69,0x94,0x1d,0xa8,0x66,0x93,0xeb,0x1d,0x82,0xfd,0x3f,0x84,0xb0,0x9d,0xa4,0xe1,0xb0,0xd4,0x9d,0xb2,0x60,0x20,0xfb +.byte 0xd3,0xa0,0xdc,0x79,0x83,0xb0,0xfc,0x50,0x18,0x57,0xe1,0xeb,0x44,0x25,0x05,0xab,0x27,0xfb,0x5f,0x83,0xcd,0x51,0xd0,0x3b,0x80,0x4a,0xce,0xbf,0xe9,0xfe,0x46,0xd2,0x5f,0xea,0x8c,0x89,0x48,0xc8,0x65,0xdd,0x2a,0xa4,0xda,0x54,0xc2,0x37,0x7e,0xd7,0xff,0x80,0x5b,0xf0,0xc3,0x40,0x44,0x40,0x72,0x63,0x23,0xc6,0x9a,0x48,0xf3,0x4b +.byte 0x91,0x64,0x26,0xfc,0xf3,0xa0,0xb9,0x06,0x0c,0x88,0xbb,0xc0,0x93,0x73,0x63,0xf6,0x9c,0x0d,0xe2,0xf6,0xee,0xe0,0x51,0xfd,0xae,0x4d,0x21,0xb9,0x6b,0x7d,0x1e,0x34,0xa0,0x4d,0xe4,0x25,0x30,0xe6,0x81,0x2e,0x32,0xef,0xb9,0x9e,0xaf,0xa0,0x22,0xe0,0x67,0xe6,0x07,0x55,0x3a,0xed,0xef,0x4f,0x87,0x2f,0x44,0xd2,0xef,0xc1,0xfb,0xc4 +.byte 0x7b,0x27,0x20,0x44,0xd2,0xd6,0xf9,0xf3,0x67,0xc1,0xbf,0xaa,0xd5,0x9c,0xd9,0x2c,0xd5,0xf1,0x42,0x2d,0xec,0x39,0xb5,0xc1,0x18,0xed,0x6c,0x47,0x80,0xf8,0x6f,0x66,0x10,0xee,0x1d,0xd6,0x79,0x01,0x4e,0x2a,0xd0,0x83,0xa7,0x9d,0x1d,0x81,0xce,0xf5,0x6f,0x26,0x86,0xd2,0xd7,0x56,0x15,0x65,0x48,0x4c,0xf1,0xf9,0x21,0x77,0xd1,0x84 +.byte 0x22,0xce,0x4d,0x8d,0x83,0xda,0x8c,0x50,0x56,0xc8,0x3b,0xc5,0xb6,0xcf,0x3e,0x0d,0x50,0xe5,0x9d,0x6c,0xb5,0x2a,0x5a,0x58,0x28,0xf5,0x0a,0x05,0xf3,0x0e,0x40,0x8e,0xb6,0xb4,0xdf,0x11,0x1b,0x34,0x81,0xc5,0x0e,0x09,0xa6,0xfc,0x46,0x14,0x02,0x78,0x94,0xbb,0x63,0x9d,0x3e,0x25,0x2c,0xc8,0x1b,0x5c,0xef,0x64,0x77,0x0c,0x04,0x40 +.byte 0xe1,0x45,0x85,0xf8,0x07,0xbf,0x14,0x65,0xe9,0xfc,0xba,0xe4,0x9c,0xa7,0x91,0x56,0x2a,0x3a,0x8e,0x33,0xae,0x56,0x04,0x9d,0x35,0xbc,0xad,0x64,0x0e,0x99,0x8e,0xb5,0x84,0x72,0xcf,0xcc,0x81,0x14,0x11,0x9e,0xe6,0xac,0x0d,0x41,0x43,0x4e,0x2a,0x0d,0xda,0x98,0x42,0xfa,0x8c,0x21,0x79,0x93,0xa3,0xdf,0x84,0x88,0x76,0x14,0x5b,0xb9 +.byte 0xff,0xe1,0xab,0x94,0xc3,0xcd,0x10,0x69,0xee,0x53,0xea,0xfe,0xfb,0xaa,0x43,0x8f,0xdd,0x55,0x88,0x34,0x5d,0x55,0x0f,0x42,0x4d,0x1d,0x93,0xce,0x96,0x67,0xf8,0x33,0xc7,0xca,0x34,0x11,0x28,0xb2,0xed,0x0f,0x00,0x40,0x84,0xee,0x51,0x26,0x6e,0x7b,0x2d,0x77,0xeb,0x18,0xb8,0x9a,0xad,0x28,0xb6,0x6c,0x5e,0xde,0x10,0x4c,0x29,0x1d +.byte 0x79,0x3c,0x2e,0x1c,0xf0,0xc8,0xb3,0xee,0x19,0x7a,0x10,0xe1,0xe3,0x05,0x1e,0x63,0xe9,0x00,0xd7,0xfe,0x83,0xe7,0x54,0xff,0x65,0x9a,0x27,0xa3,0x86,0x72,0x5c,0xb6,0xef,0xf5,0x84,0x68,0x1e,0xae,0xe6,0xf8,0x66,0x9c,0x1b,0x86,0xab,0xfa,0x1a,0xe3,0xb8,0x97,0x16,0xb1,0xb7,0x42,0xfa,0x85,0xa3,0x3a,0x0d,0x21,0xd2,0x35,0xb1,0x89 +.byte 0xf0,0x4f,0x1a,0x1d,0x45,0x34,0x2f,0x31,0x12,0x8c,0x19,0xe7,0x4b,0x14,0xa7,0xcf,0x0f,0xf9,0xcd,0x77,0x40,0xbe,0x09,0xeb,0xc3,0x3e,0x4a,0x37,0x55,0xab,0xbb,0x9c,0xe5,0x22,0x56,0x8a,0x66,0xfa,0xb1,0xff,0x73,0x29,0x52,0xb1,0x89,0xf7,0xab,0xa6,0x58,0x53,0x97,0xfd,0x44,0xda,0xbd,0x0b,0x1f,0xc8,0x88,0x01,0xcc,0x5e,0xf7,0x05 +.byte 0xbd,0xf7,0x0a,0x4d,0xcb,0xef,0xbf,0xd9,0x8e,0x15,0xc3,0x40,0xb9,0xc9,0x14,0xe5,0x05,0x3c,0x20,0x67,0xfe,0xdc,0xa6,0xb8,0x92,0xbd,0xf5,0x33,0xb5,0x77,0x11,0x28,0x47,0x21,0x28,0x18,0x61,0xf8,0x1c,0xdb,0x65,0xad,0x89,0x0d,0x98,0x79,0xca,0x2b,0xa3,0x4f,0x16,0xa6,0xb3,0xb9,0xcc,0x47,0x5b,0x13,0x96,0x2e,0x39,0x78,0x24,0xc5 +.byte 0xf9,0xf5,0xae,0xdc,0x34,0x3c,0xf7,0x48,0x0d,0x75,0xaf,0x51,0x75,0x48,0xbe,0x4d,0x73,0x89,0x5a,0xfc,0xd7,0x51,0xd3,0x93,0xa8,0xbc,0xc3,0xa6,0x6b,0x63,0xc1,0xc3,0x7b,0x48,0xf1,0x57,0xe4,0xb4,0xce,0x5f,0x18,0xae,0xdc,0x61,0x99,0xaa,0x7e,0x49,0xd6,0xb5,0x2c,0x62,0xb8,0x8c,0x4a,0x94,0xc1,0xc2,0x13,0x23,0xdc,0x7c,0x48,0xc2 +.byte 0xaa,0xc4,0xd9,0xc0,0x09,0x11,0x6e,0x35,0x07,0x14,0x77,0x7e,0xeb,0x87,0x00,0x05,0x30,0xec,0xb2,0xc6,0xde,0x6e,0x42,0x0b,0x2a,0xb6,0xca,0xb1,0xdc,0x69,0x57,0x1b,0xad,0x52,0xa8,0x22,0x1e,0xb5,0x2b,0xb5,0x8e,0x39,0x4b,0xbf,0x38,0xf4,0xb2,0xf5,0xa1,0x9c,0x7b,0x7f,0x6c,0x14,0x48,0x37,0xa9,0xf9,0xcd,0x85,0x50,0x53,0xb0,0xc1 +.byte 0x15,0x28,0x19,0x3b,0xb1,0x04,0x44,0x93,0x7a,0x16,0x76,0x69,0xa1,0x5c,0x67,0xcc,0x8d,0x02,0x56,0xcd,0xd9,0x91,0x49,0x8c,0x1b,0xc9,0x89,0x98,0x09,0x2e,0x5b,0xf8,0x7c,0xe6,0x0f,0x46,0xb0,0xcc,0xe5,0x75,0x63,0xaf,0x40,0xd5,0xa3,0x45,0x4a,0x76,0x67,0x1d,0x81,0xc2,0x25,0x85,0x7f,0x52,0xc5,0xf8,0x6d,0xd9,0xb6,0xa8,0xa4,0x96 +.byte 0x63,0xcc,0x15,0xc5,0xec,0x40,0x0e,0x08,0xf7,0x6f,0x85,0xa5,0xe7,0x2e,0xbe,0x3f,0xf4,0xc8,0x74,0xc7,0xed,0x86,0x85,0xc0,0x44,0x9e,0x80,0xc8,0x89,0xdc,0x16,0x47,0xb1,0x68,0x0e,0x65,0x66,0x0f,0xbc,0x33,0xb1,0x78,0x1e,0x5e,0xd7,0xde,0x97,0x96,0xb8,0x74,0x5c,0x90,0x7a,0xed,0x36,0xf4,0x10,0x91,0x5a,0x42,0x92,0x81,0x11,0x73 +.byte 0x3e,0xf1,0x5e,0xfb,0xc2,0x38,0xe6,0xe5,0x41,0xce,0x96,0xed,0x44,0x14,0x9c,0xc0,0x1f,0x83,0x5f,0xdd,0x50,0x87,0x90,0x86,0x50,0x61,0x87,0x99,0x7c,0x64,0x2d,0x50,0x17,0xa3,0xb0,0x7e,0x69,0xd3,0x86,0xb4,0x7c,0xe7,0x15,0x34,0x9e,0x3b,0x17,0xc0,0x2d,0x08,0x60,0x8b,0xae,0xec,0xa2,0xf6,0xf1,0xa4,0xbc,0x7b,0xc2,0x75,0x91,0x13 +.byte 0xf6,0xd0,0x71,0xf0,0x3c,0x9c,0x51,0xb3,0x33,0x53,0x57,0x47,0x8b,0x47,0xb0,0x0b,0x95,0x9a,0x39,0x70,0x63,0x91,0xcc,0xd8,0xd0,0x23,0x32,0xc0,0xb6,0x0f,0x91,0x30,0x29,0x45,0xf1,0xfc,0xa1,0x83,0x10,0x9a,0xa4,0x05,0x05,0x9f,0x33,0xbd,0xaf,0x16,0x3e,0x53,0x39,0xb1,0x4b,0x76,0x55,0x3e,0x6f,0x47,0x23,0x59,0x4c,0xbb,0x82,0x31 +.byte 0x19,0xe2,0xb1,0x49,0x20,0x91,0x2d,0xb0,0xfe,0xa6,0xae,0x7f,0x6e,0xd1,0x5b,0xb9,0x84,0x18,0x0f,0x68,0xc6,0x56,0x8a,0x22,0x81,0x3f,0x38,0x42,0x7a,0x31,0xa1,0xc1,0xf7,0x10,0x6a,0xc3,0xb1,0xaf,0x19,0xad,0x06,0x3a,0x53,0x9d,0x44,0x9f,0xe7,0x25,0xac,0x59,0x06,0xb9,0xd2,0xf6,0xce,0xb6,0x1e,0x4d,0x65,0x2e,0x05,0xb4,0x14,0x91 +.byte 0xfb,0x5b,0x26,0xd0,0xee,0xfa,0x45,0x5b,0x0c,0xd5,0x5c,0x1f,0x0c,0xe0,0xf6,0x50,0x78,0x77,0x7e,0x83,0x04,0xec,0x3b,0x53,0x28,0x97,0x56,0x61,0xeb,0xa0,0x78,0xe5,0xc0,0xb2,0x3c,0xcd,0x6f,0x4b,0xda,0x11,0x00,0x93,0x49,0x9f,0x03,0x22,0x39,0x3a,0xc8,0xef,0x01,0x91,0x12,0x36,0x15,0x0c,0x47,0xd5,0x8b,0x77,0x5e,0x5f,0x91,0x4b +.byte 0x44,0x98,0xa0,0xa0,0x46,0x0f,0x17,0xef,0xf9,0x52,0x0b,0x92,0xc1,0xe0,0xfc,0x63,0x9b,0x6d,0xe2,0xde,0x88,0x89,0x32,0x89,0x93,0x44,0x6d,0x69,0xe7,0x26,0xfd,0x77,0xc0,0x18,0x58,0xdb,0x74,0xec,0x04,0x0c,0x60,0x51,0x74,0xca,0x49,0x3e,0x4f,0x5f,0xaa,0x53,0xf2,0xc1,0xcb,0x89,0x1f,0x69,0xaa,0xbb,0x97,0x17,0x04,0x49,0x5e,0x44 +.byte 0xf3,0xf3,0xc4,0x98,0x9d,0x49,0x1e,0xb0,0x27,0x7d,0xff,0x54,0xa5,0xed,0xbe,0xb0,0x52,0xf6,0x00,0x87,0x67,0x2d,0x28,0xdb,0x09,0x4e,0xa2,0xee,0x4f,0x81,0xeb,0xa1,0xca,0x2b,0x07,0x2f,0x54,0x6d,0x5a,0x2e,0x13,0xa4,0xd0,0xac,0x21,0x7c,0x44,0xc0,0x98,0xac,0xe4,0x6e,0x94,0xd1,0x5b,0x5e,0xd6,0xf1,0x3c,0x45,0x88,0xe1,0xbd,0x58 +.byte 0xf1,0xc7,0xba,0x36,0x2c,0x15,0xb9,0xf4,0xa3,0xea,0x73,0xb4,0x91,0x53,0xd8,0x18,0x86,0x23,0x87,0x0b,0x7a,0x4a,0x2d,0x2d,0x3d,0x73,0xcb,0x05,0x11,0x4c,0x19,0x26,0xf2,0x05,0x89,0xc8,0x29,0x26,0xa7,0xe4,0xcb,0x43,0xd0,0xf6,0xbc,0x76,0xbd,0x9a,0x17,0x4a,0xf1,0x39,0xe3,0xde,0x05,0x10,0x8a,0xd3,0x11,0x53,0x61,0xef,0x33,0xd9 +.byte 0x65,0x0d,0x99,0x0b,0x39,0xa4,0x1b,0x4f,0x0b,0xa5,0xf1,0x37,0xa3,0x4f,0x54,0xa7,0x29,0xc1,0xae,0x88,0x5c,0x13,0x2f,0xb2,0xbf,0xcf,0x1b,0x0d,0xa0,0x68,0x21,0xe2,0x20,0x3f,0x02,0x9f,0x08,0x39,0xc6,0x20,0x2d,0x08,0x01,0x5d,0xf1,0x47,0xde,0x88,0xad,0x49,0x09,0xf7,0x1a,0x0c,0xa7,0x29,0x91,0xe5,0xfc,0xc5,0xde,0xd7,0x92,0x3f +.byte 0xe5,0x0c,0x91,0xea,0x24,0xfb,0x02,0x9a,0x13,0x3a,0x61,0x01,0x9d,0x7e,0x9d,0x11,0xf8,0xbd,0xe0,0x05,0xbb,0x13,0xf0,0x00,0x67,0x90,0x6f,0x80,0xe7,0x2e,0xfc,0xe0,0xea,0x8a,0x9d,0x2c,0x13,0x57,0x4c,0x78,0x1c,0x44,0xe2,0xa6,0x62,0x01,0x46,0xf8,0xbe,0xf4,0x51,0x32,0x15,0xd4,0x3c,0x7d,0x3b,0xcc,0xfd,0xc3,0x46,0x43,0xf1,0xfa +.byte 0x9e,0xee,0xad,0x47,0x8f,0x32,0x31,0x94,0x70,0x92,0xea,0x45,0xe3,0x63,0xd6,0x28,0x23,0xa5,0xdf,0x61,0xee,0x19,0x1a,0x5e,0xb0,0xe7,0x17,0xab,0xac,0xb4,0x03,0xed,0xf6,0x9e,0xba,0xdf,0x52,0x88,0xb7,0xca,0x7c,0x27,0xcd,0x7b,0xf8,0x1e,0x54,0x4b,0xe6,0xa3,0x91,0xf7,0xeb,0x22,0x65,0x95,0x13,0xe1,0xac,0xb6,0x22,0x80,0xe3,0xeb +.byte 0xf9,0xde,0xf1,0xb7,0x6a,0xfd,0xc7,0xb8,0x9b,0x9c,0x49,0x4f,0x84,0x7f,0x68,0x93,0x6c,0x3c,0xea,0xb1,0x8a,0xeb,0x23,0xca,0x2d,0x5e,0x29,0xb5,0x52,0x49,0x98,0x12,0x3f,0xed,0xf0,0xb7,0xbc,0x22,0x14,0x73,0x92,0x84,0x1b,0x3e,0x2f,0xed,0x24,0x1e,0x62,0xcc,0x09,0xe8,0x7c,0x5a,0x08,0xd4,0xc6,0xd9,0xd1,0x55,0x66,0x18,0x2c,0x6a +.byte 0x99,0xc3,0x0e,0x1e,0x7b,0xb7,0xd4,0xbd,0x0e,0x1f,0x22,0x85,0x09,0x2c,0xcf,0xff,0x79,0x9f,0x93,0xbe,0xec,0xed,0x63,0xb7,0x97,0xbb,0xeb,0xd6,0x70,0x76,0xa9,0x4f,0xb7,0x9a,0x60,0x5b,0x50,0xdf,0x85,0x46,0x69,0xa0,0x9a,0x86,0xe3,0xe2,0x13,0x2b,0x8c,0x0f,0x3b,0xab,0xa8,0xce,0xa3,0xb0,0x78,0x72,0x40,0xfb,0xd1,0x26,0x72,0xc1 +.byte 0x91,0x25,0x7b,0x29,0xde,0xcf,0x99,0xf3,0x8e,0x87,0x39,0x81,0x04,0xad,0x3b,0x11,0x6a,0xda,0x00,0xdd,0xe9,0x41,0xc1,0xd8,0xcc,0xf9,0x59,0xac,0x9b,0xb1,0x64,0x6f,0xb8,0xf4,0x9f,0x20,0xde,0x67,0x09,0x1b,0xdf,0x11,0xa5,0x94,0x56,0xab,0x76,0xba,0xc5,0xda,0x6c,0x86,0xe6,0xa4,0x73,0x59,0xa9,0xe3,0x68,0xb9,0xc0,0x50,0x1b,0x55 +.byte 0x21,0x9e,0xea,0x8d,0xcc,0x5d,0xee,0x88,0xe1,0x18,0x7c,0xcd,0x8f,0xff,0x18,0xbd,0x13,0xea,0x95,0xc4,0x8e,0xd3,0x92,0xfe,0x3d,0xda,0x6f,0xa5,0xbc,0xa0,0x77,0x5a,0x1d,0x61,0xff,0x7b,0x77,0xc4,0x06,0x25,0xc5,0xa7,0x76,0x36,0x55,0xe7,0xc0,0xf0,0x46,0x7e,0xca,0xe7,0xc1,0xe8,0x88,0x65,0xff,0xa7,0xb6,0x9c,0x83,0x1d,0x2e,0x6e +.byte 0xd6,0xd3,0x07,0x22,0x65,0x79,0x4f,0x3c,0x0a,0x5c,0x4f,0x95,0xb3,0x14,0x37,0x9b,0x0b,0x97,0x69,0xd9,0x5b,0x37,0x09,0xc3,0x70,0x5b,0x4f,0x11,0xcb,0xce,0xc0,0x06,0xf2,0xb9,0x32,0xdd,0x24,0x7b,0x8c,0xe6,0x0c,0x91,0x3b,0xa8,0xb0,0x82,0x56,0x4d,0xde,0xa0,0x5c,0x0b,0x5b,0x70,0x53,0x64,0x9d,0xab,0xbb,0x51,0x6b,0x8c,0x8f,0xe5 +.byte 0x1f,0xc0,0xb8,0xfe,0x1b,0xf6,0x24,0x26,0x62,0xcb,0x78,0x84,0x90,0x76,0x67,0x30,0x18,0x37,0xa9,0xca,0xb7,0x0d,0xac,0x17,0x86,0xb1,0x87,0x59,0x18,0xc3,0x9e,0x62,0x1b,0xb1,0x04,0x52,0xfc,0x7c,0x86,0xa0,0x37,0xb9,0x8b,0x7a,0x85,0x79,0x21,0xe0,0x0f,0x87,0x28,0x91,0xd0,0xe5,0x24,0x63,0x5c,0x7c,0xe8,0x47,0xfa,0x42,0x55,0xe9 +.byte 0x66,0xad,0xdf,0xc3,0x43,0x90,0x47,0x83,0x24,0x09,0x54,0x5f,0x14,0x27,0x53,0xb3,0x22,0x15,0x52,0x84,0x2f,0x61,0x8c,0x01,0x9e,0x34,0x61,0x3f,0x76,0x44,0x1c,0xca,0x79,0x2c,0x40,0x4e,0xa0,0x36,0x11,0xe0,0x23,0x0f,0xa7,0x78,0xf9,0xf9,0x2a,0x2c,0x98,0x5c,0xa9,0x2d,0x66,0xb9,0x87,0x43,0xd5,0xbc,0x64,0xe5,0x52,0x2f,0x1d,0xdc +.byte 0x1d,0xf4,0xb3,0x18,0x6b,0xd1,0x3b,0x8b,0xa3,0x47,0x65,0x62,0xcc,0xca,0x5f,0x00,0xbb,0x78,0x9d,0x35,0xd4,0x79,0x45,0x33,0xc7,0xa8,0x29,0x96,0x98,0xa4,0x23,0x2c,0x23,0x7f,0x5a,0x1d,0x09,0xb4,0xcf,0xac,0x54,0xcd,0x27,0xda,0x88,0x21,0xe2,0xb4,0x85,0xdc,0xc9,0x4a,0x6b,0xc4,0xfa,0x48,0xc5,0x91,0xc1,0x53,0x4b,0xa1,0x7a,0x9c +.byte 0x8a,0x7d,0x35,0x52,0xf1,0x58,0x9d,0x20,0x36,0xc2,0x78,0xdb,0x37,0xf8,0xa4,0x2f,0x50,0x98,0xb0,0x34,0x51,0x66,0x93,0xcf,0xe7,0xf0,0x06,0xf1,0xcd,0x0e,0x4f,0x33,0xcc,0x9b,0x73,0x3b,0xc9,0x51,0x63,0x6d,0x29,0x6b,0xf4,0x9d,0x2c,0x76,0x59,0xcd,0xfc,0x11,0x35,0x52,0xbd,0x3b,0x2e,0x7d,0x8a,0x0d,0xb0,0xbb,0x90,0x9b,0x9c,0xac +.byte 0x1c,0x80,0x89,0xd6,0x6f,0xaf,0xea,0x89,0x38,0x74,0xef,0x83,0x82,0x91,0xf7,0x74,0x96,0x30,0x40,0xe2,0x18,0x2b,0xb4,0xf6,0x15,0xf0,0x8e,0x63,0xe1,0x82,0x55,0x7b,0x65,0x70,0x33,0x14,0xef,0x7a,0x7c,0x2d,0xa9,0x17,0x1b,0x53,0x1e,0xf8,0x98,0x1b,0xbe,0xc8,0x00,0xf5,0xbf,0x79,0xe7,0x8e,0xf2,0xdb,0x59,0x0d,0x46,0xab,0x43,0xd0 +.byte 0xe4,0xa0,0xeb,0x29,0x6a,0x8b,0xc1,0x99,0xa6,0xcc,0x8e,0xe5,0xde,0x67,0xdf,0x49,0x09,0x62,0x8d,0x4b,0xa1,0x1c,0x3b,0x01,0xe2,0x95,0x65,0x10,0xa5,0x91,0xd0,0x48,0x35,0x96,0xcf,0xe4,0x51,0xd2,0x7f,0x93,0x49,0xab,0x1a,0xba,0x08,0x33,0x54,0x34,0xd7,0x00,0xc9,0xa0,0x07,0x03,0xc7,0x8a,0x65,0xa2,0x84,0x60,0xcd,0xaa,0xa2,0x46 +.byte 0x8c,0x67,0xd9,0xc1,0xe7,0x58,0xc5,0x1d,0xc0,0xb3,0xc6,0xb2,0x2a,0xfb,0x70,0x04,0xa2,0x25,0x7f,0x75,0x3c,0xd5,0x8e,0x9c,0x33,0xa2,0xdc,0x20,0x4c,0x26,0x5b,0xbe,0xd9,0x00,0x5d,0xa2,0xbd,0x42,0xbd,0x0d,0xd6,0x52,0x79,0xb5,0x67,0xf6,0x27,0x62,0xc8,0x64,0x05,0xc5,0x0f,0xae,0xe1,0x78,0x39,0xd1,0xb5,0x28,0xe9,0xd4,0x2a,0xaa +.byte 0xd4,0xc4,0x3e,0x43,0x27,0x83,0xfa,0xdb,0x46,0x73,0x20,0xcd,0x2c,0xba,0x33,0xb4,0x77,0x10,0x32,0x3d,0x8e,0x56,0x88,0x81,0xe1,0x4c,0x8b,0x46,0x60,0xcb,0xb7,0x67,0xd7,0x7b,0xc2,0x47,0x7d,0xd8,0x2d,0x4c,0x09,0x9f,0x07,0x8e,0x34,0x45,0xf4,0x50,0x69,0xfd,0x35,0x0a,0x09,0x9e,0xac,0x49,0x5f,0xdf,0x72,0x84,0x97,0x93,0x30,0x2c +.byte 0xc6,0x20,0x6f,0xb5,0x18,0x03,0xb6,0x30,0x23,0xc8,0xcd,0xa1,0x43,0xbd,0xbb,0x6f,0xde,0xb3,0xcb,0x1c,0xdd,0x41,0x71,0xfa,0x37,0xa7,0xa9,0x57,0x5a,0xf7,0xee,0xcd,0xb1,0xc1,0xb6,0x78,0x1c,0xe3,0xde,0x5c,0x02,0xc8,0xce,0xb7,0x8e,0x72,0xce,0xfd,0x79,0xcf,0x1a,0xef,0xcb,0x5b,0x5d,0x3c,0x1d,0xc8,0x1e,0x9f,0x67,0x26,0x86,0xd3 +.byte 0x3b,0x98,0x49,0x04,0xcd,0x1b,0x48,0x7c,0xa6,0xbe,0x37,0x0b,0x19,0xb1,0xb7,0x8a,0x74,0x0a,0xd9,0x4f,0x7b,0xbb,0x8e,0xc6,0x9b,0xdd,0xbc,0x61,0xfd,0xdd,0x86,0x7e,0x70,0x2e,0xe4,0x94,0xb4,0x62,0x47,0x6b,0x7c,0x92,0x41,0xda,0x05,0xdc,0xaf,0x5c,0x93,0xbc,0x7d,0xad,0xce,0x44,0x9e,0x27,0x1c,0x74,0x30,0x01,0xf2,0x8a,0x22,0xce +.byte 0x88,0x61,0xf5,0xb8,0xe2,0xf0,0xca,0x14,0x21,0x53,0xd3,0xbe,0x95,0x8f,0x52,0x10,0x21,0xc5,0x25,0x16,0xa1,0x4f,0xef,0x9a,0x6f,0xce,0xe9,0xee,0x06,0xa8,0x32,0xa4,0xac,0xee,0xd8,0x95,0x0b,0x65,0x10,0xbc,0xb3,0x15,0x48,0xf9,0x96,0xee,0xde,0x5d,0xf6,0x38,0x5f,0x32,0x70,0xd1,0x29,0xa8,0x1d,0xdc,0xf4,0x34,0x2d,0x0c,0x93,0x48 +.byte 0x8c,0x40,0xed,0x35,0x41,0xfe,0x4b,0xab,0x20,0x7d,0x95,0x74,0x02,0xe5,0x71,0x76,0x7e,0x59,0x35,0xb3,0xd7,0x43,0x1f,0xd4,0xe6,0x02,0x86,0xba,0x4f,0x53,0xd9,0xc3,0x7d,0x7f,0x3d,0xb6,0xd8,0x92,0x07,0x89,0x99,0x46,0xf8,0x09,0xcd,0x19,0x43,0x93,0xa7,0xc1,0xb2,0x5d,0xec,0xbf,0x09,0xf4,0xba,0xfc,0xf7,0xf1,0xa7,0x2e,0xfe,0x71 +.byte 0x04,0x58,0xab,0x16,0xd7,0xc0,0xf7,0x03,0xd4,0xc4,0xb9,0xe4,0xd8,0xfc,0x5b,0x66,0xa6,0xb3,0x6a,0x94,0x0e,0xba,0x8c,0x54,0x5c,0x8c,0x02,0x0a,0x33,0xcb,0xde,0x1c,0xad,0x6d,0xef,0x48,0x05,0xa6,0xca,0x9a,0x27,0xd6,0x1c,0xc3,0xea,0x3a,0x46,0x20,0xec,0x72,0xc4,0x94,0x89,0x7e,0xba,0xa9,0x2f,0xe5,0xec,0x1a,0xe4,0x50,0x54,0xeb +.byte 0xd9,0x5a,0x08,0xc5,0x84,0xc1,0x9a,0xdf,0xb0,0xd4,0x9a,0x6d,0xa2,0x93,0x52,0xd2,0x4d,0x69,0x88,0xc8,0x40,0x2d,0x26,0xbd,0x7a,0x37,0x04,0x21,0xe1,0x9d,0xc9,0xed,0xda,0x7a,0x4c,0x11,0x49,0x14,0x42,0xa1,0xdb,0x6e,0xed,0x1b,0x37,0xbf,0x09,0xac,0x35,0xda,0x80,0xf6,0x75,0xd4,0x32,0x54,0xb5,0x18,0xe8,0x79,0x25,0xc4,0x95,0xe8 +.byte 0x74,0xcf,0x6d,0xac,0x34,0x1f,0xea,0xd4,0x2e,0xd1,0x77,0x5e,0x90,0x8f,0x12,0x51,0xbb,0x3c,0xdf,0xe6,0xf4,0x49,0x8c,0x0f,0x9a,0x8e,0xe3,0x96,0xbd,0xba,0xe6,0x47,0x4b,0x50,0xc7,0xa9,0x29,0xea,0x09,0x5d,0xef,0x3c,0x91,0x48,0xc6,0x37,0xfd,0xac,0x7b,0xe5,0x04,0x25,0x93,0x0b,0xe3,0xce,0x32,0x46,0x38,0x81,0x97,0x57,0xbe,0x1f +.byte 0x3c,0x61,0x2d,0xd1,0x4e,0xca,0xbb,0x44,0xc6,0xfd,0xdf,0xdd,0x11,0xbf,0xbf,0xa8,0xc0,0x32,0x67,0xc1,0x2e,0xd7,0xbe,0x3c,0xe3,0xcb,0x57,0xa5,0x6d,0xbb,0x8e,0x0f,0x69,0x22,0x42,0xef,0x53,0x0f,0xce,0x09,0x6a,0xda,0xbf,0xd6,0xed,0x61,0x67,0x82,0x83,0x13,0x63,0x97,0x7d,0x1a,0xad,0x34,0x77,0x37,0xa6,0xe0,0x89,0xaa,0xd4,0xb6 +.byte 0x8f,0x93,0xff,0xb8,0x8f,0x63,0x14,0xfd,0x17,0xff,0xe5,0x7c,0x83,0x23,0xaa,0xe0,0xb9,0xd9,0x94,0x3a,0x1a,0xe7,0xa5,0xbd,0xa6,0x2b,0xd3,0x49,0xca,0xeb,0x7d,0x87,0x1d,0x54,0x16,0x93,0xec,0x14,0x8b,0x77,0x3c,0xb4,0xbe,0x33,0x76,0x5e,0xcb,0x33,0x27,0xd3,0x20,0xd6,0xed,0x0c,0x66,0xb8,0xe0,0x00,0xa6,0x76,0xcd,0x8b,0xb4,0xef +.byte 0x11,0xbc,0xe5,0x59,0xcf,0x1d,0xf5,0x15,0x58,0x4a,0xe1,0xfd,0x87,0x8c,0x7b,0xb9,0xa4,0x42,0x5a,0xed,0x51,0x7e,0x8d,0xa6,0x19,0xaa,0xc4,0xa6,0x14,0x74,0x45,0xb1,0xda,0x87,0x0f,0xd7,0xe7,0x66,0x3b,0xcd,0x04,0x02,0x14,0x20,0x41,0x15,0x4c,0x33,0x79,0x80,0x7d,0xd4,0x44,0x2c,0xab,0x6c,0xf4,0xa8,0xd4,0x31,0x43,0x7b,0xa7,0xc7 +.byte 0x65,0x0e,0x32,0xc8,0xc8,0x6d,0xf5,0x65,0x1b,0x26,0xf1,0xe4,0x68,0x15,0x88,0x1b,0x00,0x60,0x23,0x31,0xd7,0x4b,0x57,0xda,0xf1,0x19,0xa9,0xd9,0xaf,0xe6,0xa9,0x1e,0x2c,0x0d,0x23,0xe4,0x5b,0xcb,0x43,0x38,0xf0,0x93,0xd3,0xfb,0x6a,0x9b,0x83,0x30,0x55,0x96,0x9f,0x53,0x06,0x3f,0xaf,0x40,0x69,0xef,0x9a,0x47,0x6b,0xba,0x7c,0x10 +.byte 0x10,0x44,0x89,0xfa,0xb9,0x9e,0x70,0xed,0x25,0x59,0x68,0xae,0x9b,0x17,0xcf,0x80,0x6f,0x34,0xb8,0x07,0x40,0xe5,0x27,0x6d,0xcd,0x46,0x2c,0x36,0x90,0xf3,0x83,0x74,0x68,0x35,0xf2,0x05,0xa8,0xdf,0x4e,0x34,0xc5,0xb4,0xeb,0x5a,0x7d,0xe6,0x10,0x8a,0x23,0x54,0xeb,0x9b,0x27,0xf2,0x07,0xee,0xf9,0x05,0xc2,0x5a,0x88,0xbd,0x49,0x2e +.byte 0x1b,0x00,0x31,0x68,0x4a,0xc9,0x3a,0xc5,0x93,0x82,0xa8,0x39,0xba,0x55,0xcd,0xc1,0xda,0x49,0xc2,0x4c,0xf4,0x93,0x00,0xcf,0x61,0xa4,0xbb,0x8c,0x64,0x33,0x90,0x14,0x6d,0x1d,0xad,0x75,0x97,0xd9,0x1d,0xfb,0x27,0x67,0x43,0x04,0xdc,0x4e,0xdf,0x0e,0x0c,0x7e,0x1c,0x89,0xfe,0x31,0xb7,0x9b,0x07,0x5e,0x99,0x08,0x22,0xef,0x6e,0x4d +.byte 0x8b,0xd6,0x27,0xe6,0x24,0x1a,0x28,0xb0,0x22,0xa5,0x69,0x17,0x82,0x46,0xe3,0x90,0xe8,0x04,0xae,0x90,0x66,0x14,0xec,0xa2,0x1b,0x7e,0x09,0x13,0x32,0x9d,0xec,0x8b,0x51,0x5f,0xa8,0x96,0x8f,0x4c,0xc6,0xbd,0x5c,0x70,0x29,0x21,0xac,0xe9,0x6e,0xb0,0x0c,0x61,0x50,0xba,0xcc,0x55,0x71,0xda,0x2a,0x92,0x86,0x0c,0xff,0xaf,0x7a,0xcf +.byte 0xaf,0x2a,0xbd,0xd6,0x15,0xa4,0x4c,0x2e,0x76,0x0d,0xcf,0x10,0x11,0x4a,0xd1,0x89,0xdd,0x46,0x5f,0x6b,0x5a,0x02,0x05,0x49,0x6f,0x98,0x6a,0xa7,0x8a,0x66,0x87,0x59,0x23,0xb5,0x3f,0x2e,0x95,0x73,0xfe,0x48,0xe9,0x0d,0x17,0xa6,0xa5,0x4e,0x40,0x98,0x79,0x40,0x1a,0x10,0x1d,0x84,0xdd,0x6f,0x17,0xa7,0xb7,0xfb,0x49,0xbd,0x54,0x97 +.byte 0x0f,0x42,0x25,0x95,0x83,0xf0,0x97,0xe7,0x4c,0x24,0xb5,0xe8,0x23,0x0a,0xd6,0xbf,0xef,0x2c,0x03,0x4f,0x87,0x59,0xe8,0x80,0x87,0xcc,0x51,0x1b,0x94,0xd8,0x60,0xe7,0x10,0x4d,0x01,0xfd,0x83,0xf2,0xd8,0x8d,0x1b,0x33,0xbf,0xaf,0x36,0x41,0x47,0x51,0xe0,0x45,0x2a,0x05,0x5f,0xe1,0x92,0xf8,0xa5,0x15,0x46,0x35,0xd8,0x9b,0xe0,0xff +.byte 0xee,0xa6,0x4e,0x7d,0xfd,0x96,0xa5,0x75,0xdf,0x7e,0xb0,0x7d,0x14,0x73,0xdd,0xbe,0x17,0x6d,0xdd,0xec,0xac,0x9a,0x92,0x68,0xe3,0x44,0x16,0x63,0x22,0xa8,0x15,0x58,0x8c,0x11,0x23,0x46,0x18,0xae,0x47,0x39,0x87,0xc7,0x4c,0x30,0x09,0xce,0xe5,0xc4,0xd8,0x82,0xc6,0xc6,0x3d,0x31,0xf6,0x0f,0xb5,0x69,0x61,0x63,0x88,0xd6,0xb8,0xda +.byte 0x89,0x29,0x87,0x69,0x6e,0x3f,0x55,0x2f,0xbc,0x91,0x91,0x43,0x7d,0xb3,0x7b,0x99,0x5a,0x5a,0xb0,0x7d,0x90,0xa7,0xe7,0x30,0x0d,0x32,0xb2,0x43,0x43,0x78,0x59,0x6e,0xbb,0xd7,0x76,0xd4,0x5b,0x4d,0xc4,0xa9,0x99,0xdd,0xd3,0xce,0x3d,0x13,0x41,0x38,0x33,0xed,0xb8,0x76,0x1a,0xbb,0xfd,0x26,0xcd,0x69,0x89,0x22,0x16,0x9a,0x21,0x35 +.byte 0x38,0x77,0x14,0x10,0x42,0x17,0x1f,0xa1,0xbf,0x55,0xb4,0x51,0x62,0x15,0xac,0xd0,0xa2,0x71,0xe4,0x32,0x89,0x33,0x8b,0x74,0xc6,0x61,0x38,0xd0,0xfe,0x28,0x69,0xe6,0x88,0x1b,0x11,0x7e,0x46,0x39,0xba,0x24,0xdd,0x1f,0x61,0xf4,0x74,0xad,0x58,0x94,0xa9,0x3e,0xc7,0x2a,0x9e,0xc0,0xe1,0x1c,0xee,0x21,0xab,0x3e,0x65,0x0c,0xe8,0xd8 +.byte 0x71,0x52,0xf3,0x6c,0x64,0x53,0x75,0x17,0x87,0x55,0x14,0x42,0x25,0x7f,0xe7,0x0d,0x89,0x1b,0x77,0x26,0xc4,0xaa,0xcc,0x91,0x47,0xe5,0x54,0xae,0x1a,0x0d,0x04,0x99,0xeb,0x56,0xd8,0xb4,0x6d,0xeb,0xec,0x2f,0x6c,0xc5,0x8e,0x76,0xe1,0xa0,0xa7,0x42,0x06,0xc9,0xc3,0x03,0xee,0xa9,0x9b,0x1e,0xfc,0x11,0xf5,0x2f,0x2b,0x14,0xb8,0x9f +.byte 0x87,0x61,0x9b,0xc7,0x38,0x0e,0x58,0xf1,0xd4,0x36,0xca,0x82,0x85,0x9c,0xde,0xec,0xd3,0x1e,0x29,0x4e,0x70,0x9e,0x9a,0xe0,0x8b,0x6f,0xfe,0xd0,0xe9,0x95,0x51,0xcf,0x36,0x31,0x9c,0xff,0x63,0xc6,0x04,0x8e,0x61,0xc2,0xcb,0x3a,0xfa,0xd0,0xd7,0x29,0xbd,0xe7,0x8a,0x2b,0x8e,0xa0,0xac,0x58,0x93,0xb3,0x52,0xca,0x80,0x17,0xd2,0x2d +.byte 0x93,0x5f,0xe0,0x8a,0x47,0x3c,0x67,0x95,0x64,0x91,0xa4,0x76,0xa4,0x5f,0xfa,0x93,0x4d,0xc7,0x6e,0x5d,0x23,0x9f,0xe1,0x4a,0x16,0xff,0xa5,0xf0,0x94,0xa8,0x02,0xcc,0x9a,0x84,0xd5,0x9d,0xb6,0xe5,0x7c,0x76,0x3f,0xc9,0xfd,0xdc,0x8e,0x59,0x9a,0x22,0x18,0x3c,0xe6,0x90,0x85,0x10,0x73,0x2d,0x65,0xa7,0xa7,0xe1,0xeb,0xc5,0x05,0x24 +.byte 0x1e,0x0b,0x31,0x19,0xb5,0xb0,0x8d,0xc0,0xb5,0x04,0xfe,0x9d,0xfa,0xf7,0xcd,0x71,0x29,0x40,0x19,0x23,0xed,0x2c,0xdb,0x89,0x89,0x8d,0x69,0x22,0x4c,0x9c,0xa7,0xf7,0xb1,0x56,0x87,0xa3,0x44,0xa9,0xa3,0x16,0x28,0xce,0x94,0x40,0x6f,0x71,0x77,0x0e,0x6d,0xe9,0x78,0xa2,0x2a,0x17,0x45,0x03,0xeb,0x1e,0xf1,0xfa,0x56,0x3e,0xa7,0x6b +.byte 0x08,0x06,0x6a,0xcb,0x8f,0x5e,0x0f,0xd3,0x6e,0x4b,0x21,0x31,0x73,0x50,0x94,0x56,0xf9,0xb9,0xc7,0x38,0x69,0xe8,0x09,0x3f,0x03,0xb3,0xb5,0xe8,0x2a,0x5e,0xf6,0xad,0xae,0x6f,0xab,0x6a,0x49,0xdd,0x93,0x6d,0xfb,0x8b,0xde,0xea,0x8b,0xb0,0xa1,0x44,0xf0,0xb3,0xf6,0xaa,0xe3,0xc8,0x04,0x87,0x9f,0x8b,0xee,0xab,0x13,0x1d,0x2d,0xeb +.byte 0x09,0x62,0x21,0x49,0x5f,0xb6,0x95,0xab,0xc4,0xee,0x69,0xfb,0x31,0xff,0xbf,0x1a,0xa6,0x4c,0x67,0x66,0x84,0xe6,0x0c,0xb7,0xb2,0x3e,0x3f,0xa4,0xb3,0x52,0xde,0x15,0xc9,0xa7,0xa9,0xb5,0x0d,0xe5,0x0b,0x99,0xa6,0xb6,0x8f,0x69,0xc5,0x6d,0x6c,0xbb,0x83,0x89,0x4e,0xfc,0x49,0x79,0x4d,0x46,0x31,0xa0,0x09,0x5f,0x5d,0xd0,0x5b,0x80 +.byte 0xa1,0xf4,0x36,0x48,0x97,0x6a,0xfd,0x34,0xcb,0x20,0xa8,0x01,0x25,0x04,0xe7,0x13,0x12,0x87,0x66,0x27,0x96,0x36,0xba,0x92,0xbd,0xda,0x94,0x11,0xef,0x90,0xbd,0xbc,0x9e,0xf9,0x63,0xb3,0xa6,0xc1,0xbb,0x46,0xe8,0x86,0x3f,0x2d,0xf9,0x11,0x3a,0x23,0xa8,0x7a,0x33,0x41,0x3e,0x2e,0x5d,0xde,0xc0,0xd2,0x23,0xca,0x41,0xa0,0xb9,0x70 +.byte 0x6d,0x31,0xf3,0x89,0x87,0x9b,0x72,0xd9,0x15,0x4d,0x8b,0x51,0xdd,0x56,0xa1,0xb4,0x68,0x52,0x65,0x81,0x12,0x46,0xea,0x24,0xb4,0x34,0xcc,0xa0,0xdb,0x7d,0x96,0xd9,0x8e,0x64,0x61,0x10,0x7c,0x2a,0x00,0x4d,0x82,0x61,0x54,0xa4,0x70,0x3d,0x9c,0xa5,0x0b,0xd2,0x08,0x71,0xa8,0x94,0xb1,0xb4,0x30,0x61,0x59,0x9f,0x72,0x61,0x56,0x2d +.byte 0xa3,0xf4,0x9d,0x1c,0xfc,0x49,0x9d,0x39,0x27,0xcb,0x54,0xb2,0xce,0x3c,0xb6,0x76,0xe5,0x8e,0xa5,0xe7,0x08,0xd4,0xc7,0x2c,0xa6,0x28,0xc8,0x3e,0x22,0x14,0x06,0x75,0x68,0x0d,0x6b,0xb5,0xa3,0x68,0x14,0x17,0xfe,0xb8,0xcc,0x26,0x5b,0x9d,0x0b,0xcc,0x3e,0xd7,0x6c,0xe0,0xec,0x5e,0x1e,0x1e,0xb8,0x9a,0xbe,0x91,0xb5,0xa6,0xb5,0x83 +.byte 0x28,0xc2,0x35,0x65,0xd3,0xde,0xdd,0x71,0x29,0x13,0xc1,0xee,0x78,0x22,0x34,0x0b,0x77,0x3a,0x48,0x98,0x26,0x43,0xc2,0xce,0x03,0xe8,0x75,0xf8,0x8a,0xdf,0x6a,0xb0,0xb4,0x8c,0x11,0x8c,0xe5,0x95,0x96,0x17,0xfb,0x06,0x5e,0x8f,0x36,0x10,0xc5,0x04,0x43,0x1b,0xed,0xd3,0xad,0xd4,0xa4,0xe0,0x17,0x85,0xed,0x9b,0xd8,0xae,0x98,0x46 +.byte 0x58,0x57,0x0e,0x46,0xea,0x3f,0x07,0x6d,0x0e,0x46,0xda,0x2f,0x68,0x2b,0xd6,0xe7,0x0d,0x4b,0xbe,0x32,0xee,0x10,0x73,0x18,0x7d,0x6b,0x2d,0x04,0x27,0x72,0xb1,0xe1,0xbf,0x89,0xaa,0x4d,0x1a,0xfc,0xbd,0xf2,0xc3,0x9f,0xf0,0x01,0x85,0x62,0x09,0x4d,0x08,0x2c,0x57,0x9a,0x7b,0xad,0x0b,0x79,0xff,0x14,0xa1,0x45,0xde,0x21,0x8f,0xe2 +.byte 0x93,0xd0,0x35,0x26,0xc3,0xbc,0x8c,0xb7,0x57,0x6a,0xdf,0x98,0xa7,0x75,0xc6,0xf6,0x4b,0x5f,0x91,0x6e,0x71,0x3a,0x5c,0x5f,0x57,0x63,0x34,0x87,0xf8,0x20,0x6a,0xa1,0xbf,0xf8,0xca,0x8e,0xf9,0xa9,0x10,0x8b,0xab,0x0b,0xc2,0xcc,0x71,0x89,0x7c,0xef,0x70,0x3a,0xb0,0xf6,0x90,0xcc,0x6b,0x2c,0xcc,0x8b,0x2a,0x21,0x78,0x23,0xa0,0x71 +.byte 0x8c,0x7b,0xc1,0x0f,0x27,0x72,0x40,0xe4,0x9e,0x35,0xf3,0x0a,0xc0,0x7e,0x7f,0xe5,0x9b,0xdb,0x93,0x49,0x08,0xc3,0x6b,0xb7,0xea,0xea,0xd4,0x5a,0x96,0x97,0x3c,0xdf,0xc7,0x02,0x39,0x9f,0xa3,0xca,0xdd,0x62,0xf3,0x68,0xc7,0xae,0x37,0xc1,0x35,0x73,0xb2,0x5d,0x99,0xe4,0xae,0x27,0x55,0x5e,0x6a,0xae,0x6f,0x1a,0x95,0x51,0xb1,0x3b +.byte 0xd7,0xb4,0x4d,0x3d,0x88,0x54,0x01,0xbe,0x2c,0x12,0x17,0x29,0x4f,0xf3,0xed,0x5a,0x1f,0xa9,0xf0,0x67,0xbd,0x7c,0xad,0xe5,0x58,0x52,0xd4,0xd1,0xfe,0x1e,0x1b,0xd6,0xce,0x7c,0xc3,0xa2,0xa9,0x72,0x9b,0x6a,0xe5,0xf9,0x39,0x22,0xaa,0x7f,0x2e,0xa2,0x53,0x75,0xf0,0x99,0x2e,0x36,0x86,0x83,0x10,0x63,0xd7,0xac,0xa3,0x52,0xa6,0x23 +.byte 0x80,0x46,0xe4,0xa9,0x07,0x79,0xe1,0x61,0x75,0xbf,0x08,0x31,0x6c,0xdd,0xe1,0x30,0xd0,0x35,0xc2,0xbd,0x30,0xb8,0x85,0xf3,0xd2,0x2c,0x90,0x7a,0xf0,0xd3,0x80,0xe5,0xf1,0xc2,0x58,0x3d,0xf7,0x3c,0xbc,0xff,0x03,0x4d,0xf7,0xad,0x2f,0xa6,0xfe,0x73,0xde,0xa8,0x60,0xd7,0x89,0x4a,0xcf,0x3d,0xf3,0xab,0x62,0xfa,0x9d,0x46,0xad,0xd0 +.byte 0x97,0x6f,0x89,0x84,0x16,0x9b,0x84,0xb2,0x6c,0x63,0x6d,0x29,0xee,0x8e,0x97,0x3c,0x48,0x19,0x92,0x62,0xdc,0x1d,0x35,0x9d,0xec,0x01,0x00,0x64,0xbf,0x4d,0x8b,0xa3,0x13,0x48,0x9f,0xb4,0x01,0x0d,0xb1,0xc4,0xf2,0xf2,0x6a,0x84,0x1a,0x07,0x3c,0x46,0xa6,0xb5,0x41,0x9a,0x32,0x7e,0xc3,0x4f,0x87,0x95,0x71,0x7a,0xbf,0x74,0xf8,0x0b +.byte 0xfb,0xa5,0xde,0xa8,0x35,0xf1,0xcb,0x04,0x8d,0x8b,0xd3,0xb0,0xc8,0x1d,0x6c,0xaf,0xb4,0x21,0x79,0x1c,0x34,0x71,0x2f,0xf5,0xc4,0xbe,0xad,0xbc,0xaf,0x2f,0x54,0x81,0xd9,0xf8,0xff,0x59,0xf9,0x4e,0x62,0x9f,0x7d,0x7c,0xe9,0xdc,0x67,0xae,0xa3,0x32,0x4b,0xf7,0x4e,0x53,0x4c,0x55,0x7d,0xc5,0xdd,0xd4,0x5d,0x93,0xb8,0x98,0x3e,0xd3 +.byte 0x15,0x65,0x52,0x78,0x5a,0xd2,0x21,0x84,0x5d,0x28,0xaf,0x44,0x7d,0x18,0xf8,0xdd,0x5c,0xc3,0x6e,0xc8,0x05,0x05,0x30,0xd0,0x82,0xf8,0x00,0x0f,0x3d,0x5c,0x62,0x7e,0xa6,0xd5,0x7b,0x9f,0xb1,0x44,0xb7,0x0d,0x22,0x81,0xe1,0x4a,0x2b,0x79,0x7e,0x39,0x4d,0x8a,0x9a,0xfd,0x94,0x0c,0xf7,0x23,0x10,0x99,0xd2,0xd2,0x8b,0x98,0xe5,0x9d +.byte 0xb0,0xbf,0xcf,0x06,0x08,0x80,0x32,0x69,0xfd,0x81,0x5f,0xb3,0x66,0x11,0x63,0xeb,0x30,0x1d,0xcd,0x5b,0x5b,0xec,0x0c,0xca,0x30,0x37,0xa0,0x82,0x79,0x75,0x87,0xc1,0xfa,0x5b,0x38,0x4b,0xe3,0xea,0x46,0x49,0x36,0x92,0x92,0xf0,0xc9,0x15,0xa5,0xec,0x9e,0x21,0xb6,0x9f,0xb4,0x6d,0xf6,0xef,0x5c,0x2f,0x7d,0xa4,0xb3,0x25,0xfb,0x13 +.byte 0x40,0xe1,0xa0,0x20,0x4a,0x3a,0xe2,0x3e,0xf5,0xe0,0x68,0x61,0x11,0x9a,0xfb,0x1e,0xe8,0x1b,0xe0,0x17,0x9c,0x8a,0xe5,0x53,0x74,0xdd,0xec,0xc6,0x03,0xc6,0xd0,0x9b,0xc2,0x0b,0x77,0x4c,0x36,0x2b,0xac,0x4e,0x4d,0xd2,0x26,0x70,0x39,0x96,0xb4,0x11,0x1a,0x5b,0xcc,0x3f,0xb9,0xcf,0x0d,0x04,0x55,0x05,0x00,0x66,0x8f,0xa9,0xec,0x31 +.byte 0xe5,0x47,0x4c,0x9b,0xb7,0x6e,0xa5,0xe7,0x9e,0x70,0xf4,0x02,0x2a,0x3c,0xa2,0x03,0x04,0x30,0x9e,0x3f,0x7c,0xaa,0x0a,0x8f,0x55,0x61,0xca,0x50,0x35,0xe6,0xa4,0x24,0x61,0x26,0x31,0x9e,0x9e,0x77,0x0d,0x15,0x3a,0xc0,0x88,0x32,0xb5,0xbb,0x3d,0x3e,0x59,0x25,0x52,0x81,0x2e,0x4b,0xc6,0x5d,0x9f,0x87,0x0f,0x1f,0x5e,0xec,0xdd,0xbe +.byte 0x32,0x6c,0x71,0xef,0xd2,0x9c,0xfd,0x70,0xc8,0xf6,0x1f,0xb9,0xc9,0xdd,0x4d,0x39,0x61,0x92,0xbd,0x0c,0x48,0x63,0x4b,0xd2,0x2b,0x8c,0x4b,0x35,0xb1,0x8e,0x04,0x44,0x3c,0xe1,0xde,0xfd,0x6e,0xde,0xeb,0x94,0x51,0xea,0x36,0x7b,0xc6,0x87,0x15,0x34,0x68,0xa0,0xb8,0x94,0xb6,0x56,0x33,0xf4,0xab,0x84,0xed,0x1c,0x36,0x91,0xa7,0x1b +.byte 0x03,0xca,0x48,0x64,0x16,0x5b,0x4b,0x69,0x47,0xae,0xd7,0xc9,0xcf,0x74,0xd2,0xbd,0x60,0x04,0x7c,0x66,0xe9,0x12,0x92,0x40,0x78,0x23,0x0b,0x5b,0xa0,0xda,0xf7,0xe4,0x9a,0xad,0x9c,0x31,0xe7,0xaa,0xad,0x5a,0xc3,0x45,0x00,0x6c,0xd3,0x4d,0x93,0xdf,0xb6,0x68,0x11,0x3f,0x2a,0xbc,0x9a,0x8d,0xeb,0x0f,0xb5,0xa9,0x8e,0xa5,0x2c,0x99 +.byte 0x94,0x8d,0x21,0xa9,0x41,0x6b,0x11,0x2e,0x02,0x21,0xd8,0xc1,0xbc,0xf0,0x2a,0x87,0xae,0x35,0xa9,0x78,0x5c,0x43,0xb8,0xb7,0x63,0x2d,0x09,0x31,0xae,0x6f,0xfc,0x39,0x7b,0x18,0xc3,0xce,0xe3,0xfa,0x51,0x70,0xc7,0x6b,0x5e,0xc3,0xce,0xc8,0xa2,0x3a,0x66,0x9e,0xfe,0x45,0xb4,0xa2,0xaf,0x81,0x03,0x74,0xbf,0x0c,0x65,0x4c,0x30,0x27 +.byte 0xd5,0x34,0x29,0x2d,0x83,0xa8,0xb9,0x1d,0xf8,0x12,0x09,0x51,0xdd,0x0e,0x66,0x95,0xf3,0x94,0xaa,0x83,0x3a,0x6f,0x8a,0x7c,0x3a,0x29,0x82,0xbb,0x80,0xa1,0x37,0x8c,0x79,0xf4,0x4a,0xa8,0xe4,0x17,0x72,0x77,0xee,0xc4,0xaa,0x25,0xd3,0x8f,0x2e,0xaf,0xb9,0xb2,0x3c,0xa6,0xd5,0x72,0x97,0x07,0x23,0x38,0xae,0x9e,0x22,0x08,0x85,0x70 +.byte 0xfa,0xff,0x38,0xe6,0x96,0x9f,0x2c,0x11,0x14,0x16,0x9a,0xfa,0x5a,0x7b,0x05,0x31,0x3e,0x20,0xbf,0x4d,0x87,0xaa,0xba,0x94,0xcd,0xdb,0xeb,0xec,0x29,0x58,0x4e,0x43,0x12,0xe8,0xf9,0x01,0x50,0xc8,0x51,0x7a,0x61,0x12,0xe9,0xed,0xc2,0xd6,0x2e,0xd3,0xed,0x54,0x72,0xf7,0x1b,0x0c,0x8c,0xb4,0x65,0xea,0x22,0x31,0x22,0xeb,0xcd,0x53 +.byte 0x66,0xf1,0xa5,0x34,0xe9,0x81,0x74,0xcb,0xb5,0x6b,0x45,0x71,0x69,0x6d,0x84,0xe8,0xc6,0x86,0xc9,0xdd,0x0c,0xa4,0x30,0x12,0x08,0x42,0x10,0x6b,0xcd,0x65,0x6c,0xfd,0x9c,0xde,0x77,0x3c,0x32,0x09,0xef,0x99,0x27,0x0e,0x4a,0x72,0x03,0x8d,0xb5,0x68,0xa0,0x67,0xf7,0xc2,0xae,0xb8,0xce,0x41,0x70,0x4e,0xdd,0x13,0xcb,0x3f,0x05,0x4e +.byte 0xf4,0xbc,0x88,0x98,0x2f,0x42,0x4e,0x5f,0x3e,0xcb,0x2c,0xd3,0x2f,0xb8,0x92,0xbb,0xd8,0x95,0xc8,0xaf,0xa9,0x44,0x8b,0xf0,0x2f,0x81,0xd4,0xe7,0x06,0x19,0xf7,0xa7,0x0a,0x73,0x3e,0x30,0xd9,0x00,0xe4,0x2d,0x76,0xb1,0x0d,0xfa,0x12,0x1f,0xbe,0x59,0x4f,0xf7,0xc8,0x5b,0xab,0xd7,0x16,0x3d,0x7e,0x97,0x9e,0xec,0xf8,0xcb,0x31,0x2e +.byte 0xe0,0x41,0x0b,0x00,0xa6,0x6d,0xe9,0x5e,0xd5,0x4a,0xc5,0xbf,0x1c,0xcc,0xa5,0x71,0x94,0x29,0x3d,0x17,0x43,0x27,0x63,0xc4,0xc7,0x8f,0x1b,0xb7,0x5f,0xcf,0xdf,0x8e,0x6a,0x69,0x87,0xc1,0x29,0xab,0x7b,0x8d,0xdf,0x07,0x95,0x50,0xa3,0x1c,0x8e,0xdc,0x7f,0x8a,0x21,0x37,0x1e,0x26,0xa7,0x67,0x28,0xb2,0xc8,0x23,0x5a,0x1d,0x94,0x46 +.byte 0x1b,0x3e,0x72,0x87,0x73,0x08,0xe2,0x3b,0x46,0x51,0xbe,0x5b,0xa9,0x72,0xb9,0xf8,0x45,0x6d,0x0c,0x89,0x80,0x0d,0x7a,0xfb,0x4c,0x3f,0x7f,0x3d,0x29,0xff,0xef,0xb2,0xec,0x23,0xc2,0x26,0xcf,0x8c,0x2e,0x28,0xbf,0xc5,0x68,0x47,0xd9,0x49,0x95,0xf1,0x67,0x7e,0x3a,0x48,0xe2,0x43,0x5c,0xc8,0x95,0x5b,0xb2,0xf3,0x22,0xc9,0x73,0x91 +.byte 0xb5,0x78,0x96,0x1b,0x9a,0x75,0x5f,0xb2,0x6b,0x8c,0x66,0x8c,0x8e,0xc1,0xe1,0xde,0xd6,0x64,0x31,0xe1,0x7b,0x12,0xd2,0x85,0x8f,0x52,0x68,0xec,0x80,0x26,0x3d,0xcc,0x9b,0xe3,0x57,0xbe,0x19,0x42,0xb9,0xdd,0x7d,0x2b,0x5b,0x6d,0x1b,0x9e,0x96,0xd7,0x75,0x83,0x82,0x3c,0x3e,0x5f,0xf8,0xa9,0x36,0xbe,0x14,0xc7,0xce,0x9d,0x05,0x7e +.byte 0xd7,0x38,0x37,0x35,0xc9,0x37,0x8b,0x9f,0xc6,0x2d,0xff,0x00,0x41,0xff,0x1b,0x09,0xea,0xd2,0xb0,0x04,0x48,0xff,0xfc,0xb5,0x67,0x54,0x39,0x3d,0x23,0x68,0x0b,0x7d,0x97,0xf3,0x65,0x20,0xa2,0xf8,0x33,0x96,0xd1,0xf4,0xc7,0xba,0x6f,0x00,0x95,0x36,0xf6,0x33,0xd1,0x8d,0xde,0xee,0x1e,0xfa,0x60,0x8e,0x5e,0x4c,0x70,0xbb,0x53,0x79 +.byte 0xc9,0x9a,0xdf,0x3c,0x53,0xe4,0x35,0x87,0xc3,0xe6,0x8e,0x0e,0x1a,0xd0,0xf8,0x57,0x2b,0x33,0x51,0x4d,0x7d,0x43,0x17,0x3e,0x6f,0x0e,0xca,0x86,0xb2,0xc6,0x09,0xf3,0x2f,0xc1,0x5f,0x0e,0x9a,0x5e,0x7d,0x9d,0xf7,0xff,0x09,0x46,0xe5,0x30,0x91,0x61,0x93,0xb5,0x2f,0xc5,0x7f,0x09,0x0b,0x55,0x94,0x17,0x25,0x19,0x9b,0xa9,0x0e,0x68 +.byte 0x71,0x18,0x1b,0x4b,0x1b,0xa3,0x75,0x90,0x56,0x96,0x5e,0x33,0x71,0xf2,0x06,0x69,0x07,0x04,0xcb,0x8c,0x79,0x9b,0xa5,0x17,0xd8,0xd8,0x77,0xc7,0xca,0x95,0x58,0x12,0xec,0xdd,0x41,0xc9,0x12,0x16,0x9a,0xc4,0xf0,0x27,0x7a,0x8e,0xeb,0x19,0x79,0x27,0x7b,0x2e,0x55,0x96,0x57,0x19,0xbe,0x55,0x8c,0x7f,0x97,0x90,0x80,0x40,0x5d,0x5a +.byte 0xf6,0x07,0xd6,0xb4,0xc5,0xe8,0x0e,0x54,0xde,0x78,0x23,0xca,0x39,0x90,0x42,0xb6,0x8b,0x14,0x22,0x06,0x71,0x77,0xd5,0xf7,0x8d,0x05,0x9d,0xbf,0xfe,0x38,0x91,0xba,0x79,0x85,0x30,0x47,0x25,0xf0,0xa2,0x72,0x55,0x94,0x2a,0x8a,0xc8,0x28,0xc8,0xa9,0x23,0xab,0xf0,0x4e,0x49,0x2f,0x58,0x53,0x35,0xd1,0xb6,0x16,0x81,0xc2,0x25,0x18 +.byte 0xd9,0x71,0x91,0xc4,0x81,0x3e,0xf4,0xd7,0x87,0x9e,0x57,0x78,0xf7,0x7d,0x4b,0xb2,0xfd,0x91,0x9f,0xa8,0x0e,0x77,0xb3,0xc7,0xe5,0x6a,0x95,0x17,0xc3,0xf4,0xcb,0x7f,0x96,0xc1,0xa8,0xee,0x6a,0x0f,0x1f,0x5d,0x20,0x28,0x93,0xe5,0xf3,0x13,0x46,0x53,0x47,0x9f,0x98,0xc6,0xf5,0x29,0x69,0xb9,0x83,0x36,0x03,0xa1,0x9a,0xb4,0xa9,0x4e +.byte 0xd6,0xda,0x25,0xe2,0x5b,0xbb,0x95,0xdf,0x0f,0x37,0x0b,0x02,0x51,0x03,0xd1,0x0e,0x84,0xef,0xdd,0x85,0xdd,0xae,0x10,0x32,0x65,0x03,0x65,0xf0,0x8e,0x0c,0x69,0x90,0x35,0x26,0x36,0xe8,0x05,0x46,0xe6,0xce,0x52,0x4d,0xb5,0x93,0x9f,0xe3,0xe5,0xb0,0x43,0x57,0x32,0x5d,0xca,0xd4,0xc9,0x89,0x2e,0x5b,0x03,0x8a,0x82,0x78,0x21,0x6b +.byte 0x41,0xa9,0x0a,0x9f,0xe0,0x50,0xec,0x72,0x01,0x67,0xe7,0x1c,0x92,0xe3,0xe4,0x83,0x4d,0x4b,0xcf,0x01,0x37,0x2f,0x34,0x86,0xcf,0x36,0xf7,0x3a,0x57,0xa3,0x89,0x73,0x0f,0x9c,0x06,0x82,0x75,0x7a,0x4b,0xd8,0x44,0x40,0xf2,0xc5,0xc4,0x22,0xa6,0x99,0x1b,0x73,0x2f,0xad,0x09,0xe9,0x84,0x6f,0xc3,0xca,0x72,0x3a,0x8a,0x55,0x55,0x0a +.byte 0xcd,0x33,0x51,0xef,0x5b,0x36,0x77,0x6c,0xb4,0x4a,0xae,0xdd,0xbd,0xec,0x65,0x99,0x43,0xd6,0x8a,0x16,0xba,0x89,0x4d,0x0c,0x11,0xb4,0x0d,0x5d,0x3e,0x76,0xcb,0x48,0x9d,0x31,0x40,0x71,0xe2,0xe4,0xa9,0xd9,0x6e,0x3c,0x3d,0xd1,0x6e,0xaf,0xb9,0x28,0x71,0x5a,0x07,0x6f,0xab,0xdb,0xf8,0x4f,0x11,0xbc,0xe0,0x14,0x01,0x43,0x4d,0xe2 +.byte 0xad,0x5d,0x2a,0xb2,0x58,0x66,0x05,0x50,0x66,0xf6,0x2f,0x66,0x11,0xd1,0xd7,0x05,0x85,0xb0,0x7f,0xa8,0x89,0xbd,0x41,0xda,0x35,0x1e,0xbb,0xff,0x70,0x1a,0xe8,0x65,0x96,0xe9,0x50,0x18,0x7f,0x4c,0xb2,0xe2,0x95,0x26,0xf6,0x37,0x09,0x8c,0x8d,0x7b,0x02,0xb0,0x7f,0x32,0xb5,0x70,0x22,0xd6,0x83,0x0b,0x85,0x25,0x00,0xc5,0x55,0x3f +.byte 0xfa,0x7a,0xc9,0xaf,0x87,0xc1,0x1c,0x11,0x96,0x71,0x18,0xd8,0xdb,0xab,0x86,0x57,0x0a,0x16,0x23,0x32,0x40,0xd3,0xaf,0x17,0x55,0xe3,0xe7,0x01,0x65,0x1f,0x87,0xda,0xb5,0x46,0x67,0x18,0x34,0xcc,0x28,0x77,0xc3,0x12,0x62,0x6c,0x8b,0x8a,0x11,0x7a,0x5a,0xd1,0xdf,0xb3,0x13,0x6b,0x29,0xce,0xf8,0x03,0xba,0xad,0x7c,0x14,0x60,0x42 +.byte 0x17,0xf6,0x7b,0x0c,0xb7,0x5f,0xd6,0xc1,0xb5,0xa5,0x2b,0xb1,0x9f,0x6c,0x65,0x29,0xe5,0xf4,0x84,0x85,0x11,0x82,0xf1,0x4c,0xcd,0xff,0x99,0x29,0x53,0x7b,0x43,0x04,0x60,0xc4,0x6c,0x01,0x5c,0xcb,0x33,0x4f,0xdb,0xc4,0xad,0x8c,0xea,0xff,0xd6,0xcd,0x8e,0x85,0x6e,0x54,0xd5,0x18,0x63,0x84,0x78,0xea,0xff,0x08,0x95,0xdc,0x2a,0x07 +.byte 0xac,0xea,0x44,0x79,0x52,0x07,0xf3,0xf1,0x03,0x7f,0x71,0x53,0xd8,0x85,0xdb,0x70,0xde,0x5e,0xd5,0x9a,0x18,0x9f,0xcc,0x3f,0xc0,0xc0,0x49,0x82,0x70,0x09,0xce,0x29,0x04,0x0a,0x19,0x81,0xd9,0x81,0x22,0x71,0x48,0x8e,0x79,0x08,0x1c,0xb4,0xc8,0x7e,0x60,0x43,0x4a,0xe3,0xd5,0x6b,0x09,0x5c,0x01,0x6e,0x20,0x9e,0xd2,0xaf,0x80,0xb7 +.byte 0xa2,0x0a,0x5b,0x26,0x08,0x32,0x73,0xbc,0xc6,0xfd,0x06,0xaa,0x2e,0x55,0xa0,0x5b,0xa9,0x3c,0x85,0xb2,0x04,0xdc,0x9a,0x94,0x02,0x93,0x96,0x6b,0x3e,0xc3,0x5e,0x37,0x9b,0x6f,0xef,0xb9,0x65,0x52,0x42,0x1c,0xa7,0x84,0x09,0x0c,0x49,0x3a,0x95,0x06,0x94,0xd7,0xc7,0x40,0xf5,0xf1,0x69,0x41,0xfb,0xf8,0x57,0xb5,0x1e,0x0c,0xf3,0xd9 +.byte 0xb1,0x2e,0x58,0x33,0xbe,0xb1,0x3d,0x61,0xc6,0xca,0x01,0xe5,0xda,0x60,0x8f,0x87,0xf7,0x9a,0xb5,0x92,0xb4,0x8c,0x2a,0xaf,0xd4,0x1e,0x9c,0x97,0x39,0x83,0x99,0x4a,0x07,0x54,0x75,0x7d,0xde,0x72,0x06,0xc1,0x8f,0xb4,0xde,0x12,0x43,0xf2,0x62,0xae,0xe7,0xec,0xfe,0xb2,0xe5,0x63,0x35,0xb7,0xee,0xaa,0xf0,0x09,0xb8,0x61,0xf2,0x42 +.byte 0x28,0x87,0xd7,0x47,0xa8,0xfc,0x51,0x85,0x6f,0xa2,0xb1,0xa6,0x82,0xd6,0x0e,0x1b,0x3f,0xea,0xa1,0xe1,0x91,0xc9,0xd2,0x5b,0x3e,0xff,0x18,0x39,0x14,0xe0,0x44,0xda,0x3d,0xd8,0xca,0xdb,0xd9,0xbf,0x3f,0xa4,0xdb,0x99,0x2e,0x31,0x32,0x7c,0xf4,0x61,0x2f,0xa1,0xf9,0xa9,0xbe,0x26,0x94,0xea,0xb4,0xe3,0x25,0x8d,0x93,0x3b,0xa1,0x7e +.byte 0x1e,0x99,0x87,0x6c,0xaf,0x14,0x54,0xd0,0xc0,0x37,0x39,0x76,0x3c,0x07,0x2e,0xce,0x98,0x25,0x81,0xe4,0x01,0x0c,0x07,0x79,0x4e,0xcd,0x82,0x44,0x83,0x04,0x07,0xa6,0x52,0xb7,0x96,0x7c,0x43,0x12,0xe1,0xc5,0x12,0x18,0x25,0x47,0xe4,0x19,0x6d,0x26,0x1e,0x55,0x66,0xca,0x28,0x4c,0xfa,0xd2,0xd9,0xcc,0x7e,0xad,0x9f,0x2a,0x2f,0xc6 +.byte 0x6c,0x77,0xaa,0x0f,0x5b,0xeb,0x15,0x97,0x62,0x52,0x3c,0x6f,0x4b,0xf3,0xcc,0x80,0x7b,0x1f,0x1d,0x58,0xf8,0xfe,0xc1,0x8c,0x3b,0xe3,0xd7,0x05,0xc3,0xd6,0xa9,0xda,0xcf,0x85,0x1c,0x68,0xd6,0x6d,0x2b,0x06,0x30,0x5f,0x58,0x39,0xea,0xfa,0x99,0xaa,0x04,0x10,0x05,0xaf,0xb0,0xf7,0x32,0x60,0x8d,0xe4,0xd1,0x40,0x32,0xd6,0xa3,0xf2 +.byte 0xba,0x5a,0x79,0x58,0x92,0x75,0xf0,0x3a,0xce,0xb2,0xee,0x66,0x3e,0xe3,0xbe,0x4d,0x53,0x9d,0xbb,0xdb,0x45,0xf0,0x09,0xeb,0xd5,0x83,0x39,0x20,0x06,0xa9,0x44,0x35,0xeb,0x6d,0x9b,0xd9,0xa4,0xda,0x4b,0x9d,0xde,0x3d,0x26,0xa2,0x2d,0xcf,0x8e,0x3e,0xbc,0xb4,0x8c,0x3a,0xbf,0x56,0x7c,0x48,0x50,0xb5,0xc5,0xbe,0x84,0x5e,0x63,0x82 +.byte 0x5f,0x87,0x77,0x4a,0xa7,0xf6,0x66,0x07,0x42,0x6a,0xb0,0xcf,0x19,0xaf,0x6c,0x16,0x85,0x78,0x88,0x3b,0xa5,0xbc,0x42,0xd2,0x4c,0xdf,0x51,0x3b,0xc4,0x0e,0xf5,0xc5,0x70,0x57,0x40,0xf6,0xed,0xd2,0x37,0x3e,0x14,0x0c,0x31,0xda,0x94,0x87,0x6b,0xd9,0x8c,0x15,0x41,0xa9,0xc0,0x2a,0x61,0xd3,0x52,0xe0,0xb6,0x0a,0x83,0x6b,0x75,0x1b +.byte 0x1e,0xd1,0x7f,0x26,0x19,0x34,0x9b,0x70,0xc9,0xba,0xdc,0xa2,0x03,0x6d,0xc7,0xac,0xbd,0x2c,0x63,0x8a,0x7b,0xb1,0x62,0x51,0xc1,0x1d,0x54,0x0d,0x34,0x0e,0xfb,0xa6,0xb8,0x9d,0x79,0x4f,0xc3,0xaa,0x8d,0xa0,0xcc,0x80,0x96,0x86,0x37,0xd6,0x80,0x9c,0x3d,0x91,0xd0,0xe7,0xe2,0xb4,0x00,0xba,0x86,0xe9,0xeb,0x86,0xea,0x84,0x78,0x81 +.byte 0x20,0x29,0x28,0x02,0x4d,0xd8,0x1b,0x5e,0x4f,0x41,0xfc,0x13,0x3e,0x4c,0x7f,0x64,0x55,0x35,0x41,0x0d,0x74,0xc5,0x6a,0x7c,0x37,0x82,0x41,0xbd,0x67,0x39,0xd9,0x83,0xfa,0x7f,0x8c,0xe1,0x9f,0x23,0x0d,0xe4,0x1d,0x40,0xe6,0x6e,0x94,0x5d,0xec,0x77,0xf7,0x5e,0xb4,0xa1,0x03,0xfb,0xa0,0x0e,0xba,0xf8,0x28,0x50,0x3c,0x38,0x47,0xf7 +.byte 0xed,0x2d,0xe5,0x0b,0xa8,0x7a,0xbd,0xbf,0x7e,0x38,0xc0,0x60,0xe7,0x7e,0xb1,0x03,0xef,0x4a,0x8c,0xc7,0x98,0xf1,0x94,0xf6,0xa0,0x50,0xb2,0x0b,0x7c,0x66,0x0a,0x62,0x10,0x24,0xb0,0xa1,0x69,0x02,0x33,0x79,0xbf,0xd0,0xb5,0xcb,0x17,0x20,0x55,0x02,0x70,0x44,0x5b,0xac,0x20,0x35,0xea,0x05,0x2d,0x68,0x51,0xe7,0x5f,0x1b,0xcd,0x4c +.byte 0x33,0x4d,0x04,0x21,0xfd,0x06,0x67,0x82,0x60,0x98,0x1f,0x79,0xf4,0x28,0xe0,0xa8,0x18,0xeb,0xf5,0x86,0x58,0xe6,0x9f,0xb5,0x29,0x0f,0xe8,0x37,0xeb,0x09,0xf4,0xc6,0x08,0xf2,0xde,0x4d,0x96,0x48,0x62,0x36,0x63,0x10,0x3f,0x63,0xeb,0x44,0x84,0xc8,0xf5,0x74,0x19,0x03,0x50,0xf7,0x7c,0xd2,0x06,0x20,0x6e,0x9b,0xa2,0x37,0xb0,0x68 +.byte 0x78,0x31,0xb6,0x05,0xfa,0xc9,0xcd,0x1d,0x4c,0xbd,0x33,0xb7,0xf3,0x93,0x38,0x7d,0x5f,0x00,0x85,0x5b,0x10,0x7f,0xc4,0x3f,0x3e,0xfe,0x62,0xca,0x51,0x83,0x95,0xcf,0x00,0x65,0x83,0x0e,0xd3,0x78,0xd0,0x51,0xcb,0x70,0x34,0x42,0xc6,0x3a,0x04,0xb9,0x10,0x92,0xe0,0x09,0x06,0xb0,0x66,0x9b,0x37,0x02,0x8d,0x0d,0x3e,0x2f,0xc5,0x17 +.byte 0x6a,0x87,0x7d,0x48,0xa4,0xcc,0x55,0x20,0x7b,0x77,0x07,0xcf,0x44,0x2f,0x88,0x8a,0xcc,0xf2,0x5d,0xa6,0x3e,0x5f,0xda,0xe2,0xde,0xd2,0x7f,0x7f,0xb7,0x90,0x53,0x64,0x6b,0x79,0x42,0x52,0x69,0xc6,0xd6,0xaa,0x9f,0xf9,0x19,0xbe,0x65,0x10,0x99,0x49,0xaf,0x36,0x49,0x1b,0x8a,0x3d,0x7f,0xdb,0xa2,0x1a,0xb5,0xd6,0x34,0x51,0xc8,0xc8 +.byte 0x06,0xca,0xf6,0xb8,0x76,0xa8,0x9d,0x43,0xae,0xf0,0x51,0xe5,0x9a,0x42,0xa2,0x83,0xed,0x20,0x8d,0xe8,0x1c,0xca,0x15,0x4e,0x37,0x3f,0xd8,0x06,0xa0,0xe1,0xf8,0x05,0xfd,0x42,0xf3,0x7a,0x96,0x44,0x36,0x02,0xca,0x11,0x2a,0xc3,0x24,0x58,0xdd,0x85,0x55,0xb2,0xe5,0x1d,0x92,0xc2,0x2d,0x5f,0x7c,0xb5,0x02,0x37,0x7c,0x07,0x35,0x25 +.byte 0x2b,0x33,0x80,0xe2,0xd4,0xfd,0xc7,0xa7,0x19,0x7e,0xba,0x36,0xaf,0xa0,0x4e,0xab,0x8b,0x28,0x4f,0x3b,0x92,0x72,0x42,0x49,0xaa,0x3b,0x08,0x0f,0x1e,0xff,0x2d,0xbf,0x9c,0x48,0x16,0x72,0xbe,0x28,0x05,0x8b,0x3a,0x20,0x6b,0x38,0x43,0xa2,0x35,0xea,0xf7,0x4e,0x50,0xa0,0x43,0x40,0x5c,0xbf,0xe5,0x75,0x13,0x4c,0x36,0x61,0xa1,0x5d +.byte 0x46,0xd7,0x7a,0x94,0x06,0x2f,0x63,0x32,0x9c,0x6e,0x54,0x18,0x31,0x79,0xf2,0x83,0xcf,0xb4,0x47,0x40,0xe5,0x9a,0xd6,0x99,0x12,0xb3,0x61,0x3d,0x0f,0x5e,0xc8,0x95,0xa3,0x5f,0xc3,0xd5,0x6b,0x6e,0xa0,0xf2,0x2f,0xeb,0x66,0xd0,0x68,0x67,0x10,0x85,0x64,0x27,0xd8,0xb8,0x68,0x00,0x36,0xa5,0xab,0x3e,0xe1,0x43,0x65,0x81,0x2d,0xb9 +.byte 0x0f,0x87,0xfe,0xa1,0x52,0xe9,0x8d,0x82,0x3a,0xd1,0x10,0x52,0x34,0x48,0x7c,0x1c,0xc6,0xd0,0xfe,0xa0,0x1a,0x92,0x07,0x88,0x57,0x9e,0xd7,0x5e,0x9f,0xc8,0xb0,0x93,0x73,0x03,0x28,0x36,0x8c,0x25,0x8c,0x0f,0x4e,0x0f,0x5b,0x26,0x58,0xed,0x5c,0x33,0x75,0x20,0x08,0x11,0x47,0xe1,0x47,0x85,0x47,0xeb,0x54,0xbf,0x58,0xe3,0xd4,0x5b +.byte 0xf9,0xc6,0x5e,0x42,0x58,0xe6,0xaf,0x79,0x66,0x3c,0xa5,0xa3,0x30,0x33,0xe3,0xbe,0x21,0x4b,0x42,0x98,0x6e,0x44,0xd7,0x68,0xc0,0xff,0xbe,0x7f,0xc5,0xb3,0x4f,0x4a,0x93,0xb0,0x11,0x88,0xcf,0x36,0xb2,0x03,0xbe,0x30,0x52,0x71,0x20,0x0d,0x16,0xc5,0xbb,0xf5,0x92,0x12,0x67,0x6a,0x35,0x66,0x00,0x09,0xd7,0xc6,0x67,0xb0,0x6a,0x04 +.byte 0x19,0x3e,0xbf,0xe2,0x82,0x74,0x78,0x2f,0x77,0x44,0xdc,0xad,0x0f,0x66,0x2a,0x23,0x62,0x2c,0x5a,0x4e,0x3a,0x82,0x2a,0x75,0x16,0x0d,0x74,0x64,0x35,0x53,0xc5,0xf6,0xda,0x36,0x44,0xba,0xe2,0xfa,0x1e,0xc2,0xcf,0x29,0x01,0x36,0x66,0xc3,0xca,0x40,0xf7,0xc4,0xba,0x67,0xac,0xf6,0x17,0xcc,0xa3,0x96,0x2d,0x08,0x5f,0x0a,0xea,0x5e +.byte 0x97,0xdc,0xc8,0xf9,0x59,0x24,0x6e,0xc5,0x0b,0x02,0xb9,0x1a,0xde,0xac,0x60,0x1d,0xaf,0x9f,0x5a,0x6f,0xe1,0xa6,0xdf,0x75,0xc5,0x9b,0xb7,0xde,0xa4,0xf7,0xf6,0xa4,0xdc,0xb6,0x96,0x08,0xde,0x2a,0x0e,0xb3,0x9d,0xf5,0x75,0x7d,0x7e,0x96,0x91,0x79,0xd4,0xa7,0x30,0x97,0x3a,0xbd,0x7c,0xe0,0xc5,0x87,0x24,0xb0,0x65,0xb7,0x58,0x00 +.byte 0xd9,0x0e,0x97,0xa6,0xa4,0x6a,0xe8,0x0a,0xac,0xac,0x9f,0x3a,0xe3,0x2a,0x9a,0x43,0x41,0x92,0x6e,0x0e,0xc4,0x63,0xc3,0x18,0xb6,0xe1,0xef,0x3d,0xe8,0x0b,0xb0,0x9f,0x2e,0x19,0xa0,0x98,0x98,0x34,0xf8,0x86,0x6d,0xc5,0x8c,0x41,0x26,0xb7,0xf2,0x1d,0xd4,0x72,0x39,0xeb,0x79,0x06,0xaf,0x53,0xaa,0x34,0x80,0x53,0xf8,0x1b,0xf4,0x53 +.byte 0x19,0xfa,0x16,0x8b,0x39,0xea,0x63,0x7f,0x38,0xc4,0x66,0x1d,0xd1,0x90,0xe4,0x2f,0x20,0x43,0x0d,0x5f,0x98,0xcc,0xae,0xef,0x86,0xc8,0xe5,0xf6,0xd2,0xa5,0x49,0xd0,0x3f,0xb5,0x7e,0x42,0xb5,0x6e,0x5e,0x13,0xa5,0xb4,0x71,0x2c,0x5d,0x57,0x24,0x06,0xd2,0x29,0x7c,0x4c,0x90,0xb6,0xea,0xdb,0x62,0xa4,0x2c,0x6c,0x38,0x57,0x97,0xbd +.byte 0xfd,0x41,0x6e,0x26,0xc1,0xe1,0x6b,0xbb,0xf0,0xe7,0x71,0xf1,0xcf,0x6a,0x7f,0xfa,0xe7,0xfb,0x17,0xe7,0x81,0x19,0x9a,0xf2,0xf6,0x86,0x22,0x4f,0x62,0x59,0xd6,0xc2,0x33,0xbd,0x11,0xe7,0x07,0x3a,0xfe,0x74,0x0d,0xf8,0xd9,0xdb,0xbd,0x05,0xf4,0xf4,0xb1,0x41,0xc9,0xb3,0xf8,0x6a,0x7b,0x98,0x08,0x6c,0xce,0x4c,0x28,0xbf,0x8c,0x77 +.byte 0x68,0xdc,0xee,0xf7,0x11,0xde,0xfc,0x5a,0x58,0x4f,0xf4,0x74,0x9d,0x5b,0x78,0xc3,0x78,0xe5,0x5e,0x26,0x83,0x40,0x17,0x80,0x2a,0x02,0xa4,0xf1,0x0f,0xa0,0xc8,0x22,0xe6,0x09,0x3a,0x52,0x74,0xf0,0xb9,0xb9,0x60,0xaf,0x20,0xa6,0x7e,0x88,0xf4,0xc2,0x38,0xa2,0x21,0x73,0xa9,0x18,0x3f,0x7a,0x04,0x7b,0xc4,0xcd,0x68,0xd9,0x83,0xa4 +.byte 0x8e,0x54,0x0d,0xbc,0xee,0x8b,0x39,0x93,0x66,0xa2,0xd6,0x76,0x4a,0xb2,0x33,0x4f,0x61,0x53,0xde,0x3b,0xff,0x47,0xcb,0x87,0xd9,0x21,0xd0,0x82,0x64,0x54,0xdf,0xf2,0x67,0x62,0x40,0x33,0xc7,0x0d,0xea,0x98,0xaa,0x95,0xfb,0xa9,0x0e,0x90,0xa5,0xd9,0x54,0x81,0x86,0xad,0x9e,0xa4,0x4d,0x36,0xe1,0x77,0xf2,0xe3,0x0a,0x54,0x1a,0x57 +.byte 0x9d,0x62,0x5e,0x0e,0x00,0xc8,0xa6,0x1e,0xf3,0x43,0xe6,0x20,0x0d,0x6a,0x8e,0x90,0x1d,0x4d,0xac,0x2f,0x9f,0x1c,0xb7,0x30,0xec,0x5c,0x99,0x78,0x6f,0x3b,0xe7,0xe0,0x28,0xb9,0x97,0xc5,0x6a,0xf2,0x17,0xc2,0x11,0xac,0x1a,0xe2,0xca,0x57,0x49,0x64,0xc8,0xc7,0x66,0x43,0x8d,0xc8,0xa7,0x0e,0xfc,0xcf,0x05,0x2f,0xae,0x4b,0xfe,0xe4 +.byte 0xbe,0x9c,0xe7,0xe6,0xa8,0x36,0x49,0x0d,0x9c,0x60,0x39,0x0c,0xfd,0x41,0x5b,0xc7,0xa4,0xa5,0x30,0x89,0xe5,0x10,0xf6,0xea,0xf8,0x2c,0xf2,0x3e,0xb1,0x96,0x81,0xa7,0x32,0x8b,0x39,0x14,0x15,0x36,0xfc,0x55,0x3c,0x22,0xcf,0xa3,0x98,0x90,0x68,0x13,0xd8,0x3f,0xf2,0x53,0x19,0x3e,0x9a,0x0c,0x1f,0xc6,0x29,0x43,0x46,0x23,0x58,0xea +.byte 0x49,0x49,0x15,0x46,0x8e,0x63,0x30,0x1f,0x3e,0x2a,0xa0,0x18,0xfd,0x28,0xc5,0x32,0x77,0x75,0xac,0x6e,0x5d,0x39,0xa9,0x44,0xce,0xfe,0x39,0xa6,0xec,0xde,0x69,0xde,0xfa,0xc8,0x40,0x44,0x34,0x29,0x15,0x19,0xa7,0xbe,0xd6,0x5b,0xfd,0x1f,0x7b,0xb9,0x88,0xf1,0x14,0xcf,0x42,0xc5,0xa7,0xa7,0x0e,0x6b,0x6e,0x86,0xb2,0x7c,0x23,0x8e +.byte 0xf6,0xae,0xde,0x3c,0xd7,0x26,0x5e,0xde,0x31,0x94,0xc1,0x19,0x65,0x55,0x03,0x73,0xba,0xdc,0x69,0x95,0x9c,0x9d,0x8e,0x59,0xd8,0x51,0x61,0x9f,0x8f,0xf4,0x29,0x43,0x4b,0x6a,0x75,0xb3,0x4b,0x9d,0xcc,0x46,0xd2,0x6e,0x00,0x49,0x4f,0xf0,0xac,0x80,0x55,0xc0,0x0c,0xbf,0x18,0x52,0x75,0x76,0x3b,0xac,0x92,0x83,0x69,0x1b,0xb4,0x15 +.byte 0xe5,0x9e,0xde,0x10,0x30,0x30,0x0e,0x85,0xc7,0xf9,0xae,0xbc,0x9e,0xaf,0x4b,0xee,0x27,0x6b,0xa5,0x6d,0xe4,0x8e,0xed,0xdd,0x95,0xaa,0x85,0xe2,0xf5,0x38,0x15,0x50,0xd3,0xcd,0x2c,0x88,0x6c,0x2b,0x14,0x37,0x74,0x2d,0x6d,0x30,0xec,0x96,0x78,0xae,0x80,0xb3,0xd9,0x84,0xc1,0xd6,0x71,0x90,0xe4,0x8d,0x3a,0x7c,0x9c,0xc4,0xf5,0xa0 +.byte 0x20,0x7e,0xa2,0x0e,0x75,0x7c,0x25,0x7a,0x7e,0x2b,0x2e,0xdb,0x12,0x23,0x73,0x6a,0x8e,0xe3,0xd7,0x47,0x94,0xfb,0xcc,0xe4,0x5a,0x8c,0xfb,0xdc,0x46,0xb3,0x4a,0x42,0x15,0xe0,0xaf,0x6e,0x81,0x72,0x72,0x04,0x52,0x09,0xc5,0x8b,0x6e,0xdd,0x7d,0xff,0x27,0xa8,0xc1,0x94,0xb5,0x33,0x59,0xc2,0x7d,0x59,0x6c,0x3c,0xaa,0xd9,0xd8,0x05 +.byte 0x43,0x7e,0x8a,0x47,0xdd,0x76,0x36,0xe3,0x05,0x49,0xd1,0x8f,0xdf,0x45,0x46,0x63,0xff,0x17,0xb4,0x52,0xc8,0xee,0x4d,0xf5,0x74,0x65,0xc6,0xca,0x19,0xfd,0xb9,0x51,0xc8,0xc9,0x96,0xd4,0x06,0xd4,0x09,0x1e,0xab,0x6d,0x1b,0x26,0x61,0x80,0x5b,0xa8,0xcb,0x62,0x92,0x5a,0x1a,0x8e,0xa4,0xb7,0x25,0x19,0x96,0x63,0xd5,0xc3,0xc9,0xdc +.byte 0x04,0x83,0x62,0x31,0xe3,0x76,0x00,0x4d,0xf8,0xb3,0x98,0xae,0x4d,0x1a,0x38,0xe3,0xa1,0x27,0x52,0x87,0xbe,0x2c,0x93,0x45,0xd1,0xab,0x56,0xc6,0xf5,0xbc,0xb5,0xe6,0x9c,0xe1,0x1b,0x37,0x42,0x08,0xe7,0x71,0xb5,0xa4,0x67,0xf9,0x48,0xd4,0xc4,0x10,0x25,0x53,0x9c,0x03,0xfc,0x6d,0x5e,0x62,0x5e,0x6d,0x56,0xbc,0x78,0x11,0x0a,0x6d +.byte 0x1b,0x7a,0xdc,0x62,0xb5,0x58,0x86,0x15,0x71,0xff,0x11,0x33,0x94,0x2b,0xa6,0xc7,0x68,0xd5,0x68,0xda,0x5b,0xd5,0xb7,0x38,0x6c,0x1c,0xf4,0x07,0x39,0xef,0x1f,0x72,0x0a,0xb3,0x12,0x13,0x25,0x86,0xd3,0xf8,0x9f,0xb5,0x40,0x58,0xe7,0x5e,0x9f,0xa0,0xbc,0xd7,0xab,0x4f,0xf3,0x94,0xcf,0x0f,0x5a,0x4c,0x98,0xb4,0x70,0x35,0x62,0xee +.byte 0x33,0x24,0x72,0x31,0xd4,0x06,0xd9,0xb4,0x1c,0x1e,0x0f,0xa7,0x48,0xc7,0x75,0x45,0x40,0x02,0xd0,0x60,0x32,0x29,0x4d,0x61,0x7a,0xee,0x65,0x35,0x2b,0xe5,0x50,0xac,0x82,0xdb,0xf7,0x9c,0x8f,0x82,0xe4,0xf0,0xbd,0xdb,0x00,0x3d,0x3a,0x3d,0xa2,0xc3,0x2d,0x0e,0x51,0x20,0xdb,0xdb,0x8d,0x15,0x03,0xbd,0xcb,0xcb,0x24,0x81,0xc5,0xdb +.byte 0x05,0x39,0x48,0xb8,0x3c,0x93,0x35,0x10,0xef,0x19,0xba,0x09,0x9e,0xff,0xf9,0x3f,0x0c,0xdc,0x96,0x98,0x32,0x26,0x76,0xe7,0xfa,0xaa,0xdf,0xdc,0xb9,0x15,0x44,0x42,0x9a,0x8c,0x6c,0x88,0xea,0x43,0x63,0xb5,0x79,0xb6,0x50,0x30,0x78,0xea,0x70,0xba,0x33,0x36,0x8f,0x8c,0xe5,0x78,0xfd,0xbc,0xc0,0xbd,0xde,0x3a,0x3d,0xe6,0xe6,0x57 +.byte 0x0f,0x29,0xf2,0x82,0x05,0xf2,0x5c,0xfd,0x33,0xc1,0xb2,0x2e,0xc2,0xc0,0x42,0xa2,0xc8,0xa5,0xf9,0x70,0x05,0xff,0x7b,0x8d,0xb9,0x68,0xc3,0xf6,0x74,0x00,0xcd,0x9d,0x70,0xfa,0x62,0x34,0xe5,0x05,0xe8,0x5f,0x53,0x9b,0x69,0x01,0x86,0xb9,0x1d,0x68,0x80,0x89,0x51,0x52,0x0d,0xe8,0x28,0xa1,0xdd,0x62,0x2b,0xf3,0x53,0x74,0xaa,0x98 +.byte 0xdb,0x7e,0x74,0x44,0xeb,0x25,0xe7,0xde,0xc4,0x29,0x14,0x11,0x7b,0xc6,0xef,0x14,0xe4,0x04,0xd0,0xf4,0x11,0xca,0xdc,0xdc,0xe6,0x3f,0x9a,0xc9,0xe2,0x0e,0x67,0x30,0x78,0x65,0x94,0x5a,0xa1,0x24,0xd6,0x90,0x2f,0x1c,0x13,0x46,0xf5,0xb5,0xf9,0x74,0x56,0x3e,0xd5,0x1b,0x09,0xb3,0x04,0xbe,0x89,0x00,0xbd,0xe0,0xba,0x13,0x05,0xd1 +.byte 0x98,0xa7,0x93,0x09,0xc5,0x96,0x46,0xb5,0x5a,0x05,0xac,0x1e,0x66,0x03,0xf0,0xaa,0x3d,0xc2,0x54,0xa3,0xc4,0x2b,0x0d,0xa3,0xe4,0x92,0xd6,0xd0,0x44,0xa6,0x37,0x30,0xa5,0xac,0xc2,0xc8,0x58,0x2a,0x2c,0x18,0x68,0x8d,0x9b,0x4f,0x99,0xd0,0x55,0x41,0xf4,0x84,0x3c,0x69,0xda,0x3c,0x6d,0x43,0xb3,0x85,0x15,0x1f,0xdb,0x58,0x0b,0x71 +.byte 0x33,0x24,0xbb,0x21,0x43,0x19,0x16,0xeb,0x83,0xde,0xe5,0xb7,0x68,0x9e,0xb9,0xd9,0xf6,0x2e,0xae,0xdd,0x88,0x2c,0x18,0xd7,0xc3,0x72,0x8b,0xbe,0xaf,0x8d,0xfd,0xcd,0x2f,0x8e,0x3e,0x2b,0xa4,0x20,0x11,0x9d,0x00,0x4f,0xea,0xf0,0xaa,0x2d,0xf3,0x9d,0xfd,0x11,0x7b,0xac,0x2c,0x66,0x74,0x03,0xe5,0xcc,0x70,0x9f,0xfb,0xb7,0x5a,0x16 +.byte 0xc3,0x05,0x61,0x7c,0x8c,0x73,0xcc,0x9c,0x6a,0x2f,0xee,0xae,0x85,0xc9,0x51,0x91,0x13,0xa4,0x09,0x82,0x4d,0x62,0x09,0x24,0x25,0x35,0x1f,0x82,0x88,0xbb,0xdd,0x16,0x5e,0x8d,0x98,0x5f,0x07,0x49,0x32,0x96,0xb7,0xee,0x85,0xb0,0x7b,0xfd,0xf5,0x35,0x4b,0xa9,0xd4,0xee,0xf2,0x37,0xd1,0xfe,0x62,0xf5,0x52,0x13,0xb4,0xb2,0xce,0xc4 +.byte 0xe0,0x09,0x78,0x48,0xd5,0xc6,0x5d,0x36,0x1b,0x90,0x3a,0x6a,0x3c,0x21,0x50,0xf0,0x0a,0xe9,0x46,0x24,0x45,0xc1,0x5e,0x76,0xa3,0xf9,0x70,0xb8,0x62,0x4d,0x0e,0x92,0x87,0x4a,0x6a,0xf9,0x46,0x91,0x64,0xfe,0x7f,0x53,0x24,0x7e,0xc7,0x3e,0xb0,0x37,0x1a,0xc8,0xd6,0x33,0x0b,0x5f,0xa5,0x30,0x03,0x0e,0x85,0x3d,0x7b,0xc1,0xa1,0x18 +.byte 0xb3,0x8c,0xfe,0xca,0x3e,0x71,0xd8,0x92,0x46,0x49,0x60,0x54,0xd9,0x7b,0xf7,0xc3,0x99,0x2f,0xb5,0x79,0xcc,0x32,0x40,0x7d,0x3d,0x0b,0xc6,0x6f,0x04,0xd9,0xf1,0xdd,0x64,0xf5,0xc4,0x60,0x14,0x04,0x5c,0x3a,0xa4,0xda,0xdc,0xad,0x8f,0xc2,0x44,0x37,0x96,0x63,0x00,0xf7,0xb1,0xc0,0x7c,0x8c,0x12,0xb5,0x3a,0xec,0xc0,0x16,0xd8,0x24 +.byte 0xe9,0xc0,0xc4,0xfa,0xb1,0x85,0x5b,0xe3,0x62,0x24,0xa1,0x75,0x92,0x82,0x04,0x59,0x10,0x50,0x4b,0x51,0x51,0x3e,0x39,0xba,0x6d,0xa0,0x65,0x2d,0xfc,0x23,0x1c,0x9d,0x69,0x22,0xe7,0x15,0xfa,0xba,0x76,0xbf,0x53,0x62,0xb0,0x0d,0x0d,0x5d,0x55,0x00,0xbc,0x58,0x01,0xed,0x37,0x53,0xb9,0xa6,0x0d,0x71,0xab,0xec,0x42,0xbf,0x3b,0x52 +.byte 0xfd,0xae,0xe9,0x6d,0x65,0x07,0xf3,0xd9,0x32,0x66,0xc1,0x66,0x1a,0x18,0x73,0x86,0x01,0xaf,0x1d,0xd1,0xd0,0xcf,0xb1,0xea,0x54,0x23,0xdf,0xf2,0x4d,0x7d,0xc7,0xfe,0xfe,0x7d,0x1d,0x2c,0x1b,0xb6,0xa7,0x7a,0x9e,0x90,0x3a,0x3b,0xb0,0x6c,0xb0,0xd2,0xd1,0xd0,0x6a,0x94,0x4c,0x84,0x1c,0x45,0xae,0xda,0x16,0xa9,0x2e,0x63,0x19,0x26 +.byte 0xf6,0x74,0xd3,0x6f,0x9b,0x9c,0x0c,0xb8,0x85,0x9f,0xeb,0x99,0xbc,0xab,0xff,0xc3,0x75,0x86,0xe5,0x3a,0xa0,0xf9,0xfc,0x6b,0x3d,0x5a,0xad,0x46,0x7f,0x17,0x0e,0x94,0xb7,0xa4,0x43,0x61,0x54,0x76,0x29,0x78,0xe4,0x41,0x91,0xbe,0xa5,0x36,0x39,0xdf,0xdc,0xcc,0x8e,0x42,0x40,0x08,0x51,0x26,0xb0,0x53,0x5d,0xb4,0x7a,0x18,0x8e,0xb3 +.byte 0xae,0xf2,0xe0,0xef,0x63,0x51,0x3a,0xbe,0x4c,0x2d,0xce,0xc7,0xe2,0x1b,0xc2,0x40,0xf3,0x82,0x61,0xf0,0x1b,0x05,0xdd,0x1e,0xae,0xed,0x87,0x2c,0xe5,0xad,0xc7,0xec,0xb5,0x63,0xf7,0x3a,0xf9,0xb7,0xd8,0x4e,0xa7,0xef,0xac,0x6d,0x9c,0x27,0xd9,0xcc,0x66,0xf4,0x75,0x40,0x94,0x8b,0x78,0x4f,0x61,0x4f,0x31,0x49,0x5c,0x96,0x72,0x58 +.byte 0xcf,0x55,0xb2,0x66,0x16,0x29,0x27,0x24,0x39,0xc3,0x64,0xb1,0xdf,0x69,0x87,0x85,0x46,0xe3,0xd0,0x82,0x53,0x1a,0xc2,0xf1,0x3a,0xab,0xdf,0xe5,0x29,0x17,0xdd,0xfe,0xbf,0xf9,0x3d,0x7a,0xfb,0xe7,0x74,0x49,0xa9,0xef,0x61,0x93,0x4c,0xfa,0x30,0xea,0x65,0xa7,0x61,0x32,0x88,0x74,0x12,0xc1,0x91,0xf1,0xc2,0x1f,0x38,0x6a,0xfd,0x0d +.byte 0xc8,0x6f,0x87,0xe6,0x15,0x55,0x26,0x13,0x86,0x13,0xb9,0x01,0x98,0x34,0x1c,0x2d,0x1d,0x30,0xae,0x7d,0x8e,0x07,0x7d,0x4d,0xe9,0xfd,0x58,0x18,0xc3,0xa6,0x8e,0x87,0x98,0x33,0xcc,0x80,0xd7,0x70,0x07,0x6a,0x4a,0x97,0xef,0x56,0xf3,0x9d,0xf9,0xef,0x6f,0xa8,0x71,0x7f,0x61,0x07,0x1d,0x9d,0x51,0x06,0x86,0x4a,0x35,0x9e,0xab,0x2c +.byte 0x66,0x8d,0x61,0x62,0xbd,0xed,0x6c,0x76,0x7c,0x67,0xe0,0xe1,0x6e,0x90,0x74,0xb1,0xa6,0x26,0x0d,0x01,0x1f,0xe9,0xb4,0x30,0x9a,0x7e,0x37,0xd1,0xea,0x97,0x9a,0x0f,0x9e,0x8d,0x52,0xd4,0x96,0x36,0x5b,0x6f,0x40,0xbb,0x9e,0x44,0xb4,0x6e,0xee,0x15,0x70,0xef,0x66,0x81,0xf5,0xb4,0xe7,0x69,0xb0,0x40,0x44,0xdc,0x70,0x1e,0x4d,0x3c +.byte 0x9b,0x19,0x2a,0x97,0xbd,0xb2,0xd2,0x9b,0x98,0xac,0x36,0xf1,0x05,0x48,0xdc,0x5d,0x21,0xfb,0x17,0xe3,0x9c,0x3c,0xbf,0xfd,0x1d,0x39,0x1e,0x5b,0x2a,0xa2,0xb3,0x7d,0x4f,0xdf,0x3a,0x41,0x7a,0x31,0x01,0xc2,0xe5,0xd0,0x06,0x50,0x29,0x05,0xce,0xb8,0x28,0xb7,0xdd,0x83,0xc8,0xaa,0x39,0x78,0xc7,0x7d,0x9e,0xcd,0x9a,0x07,0x71,0x7e +.byte 0x20,0x92,0x82,0xce,0x49,0x90,0xce,0xef,0x53,0xa7,0x48,0x2a,0x69,0x86,0xa1,0x5e,0x35,0xe8,0x7d,0x10,0xb8,0x5e,0xa6,0x9a,0x69,0x6f,0x32,0x75,0xf3,0x4a,0xee,0x9c,0x06,0x5c,0xdd,0x84,0x7e,0x38,0x00,0x67,0x39,0x42,0xed,0x72,0xda,0xe3,0x6b,0x5a,0xf4,0xc9,0x80,0x3e,0x0e,0xda,0x39,0xfa,0x83,0x2c,0x60,0x69,0x87,0x85,0x05,0xfc +.byte 0xf4,0x2b,0xd4,0x0a,0xad,0x86,0xca,0xd5,0xf0,0x92,0x1f,0x43,0x3c,0x0e,0xac,0x99,0xf3,0x67,0xa3,0x41,0x6d,0xb9,0x29,0x70,0x57,0x62,0x9f,0x45,0x91,0x72,0xe5,0x53,0xcc,0x89,0x80,0x3f,0xbc,0x1c,0x66,0x21,0xdd,0x90,0x2b,0xa4,0xca,0x2f,0xf0,0x0f,0x9f,0xd0,0xe9,0x28,0xe2,0xd9,0x36,0xaf,0xf9,0x01,0x81,0xce,0xb4,0xe7,0x71,0xfd +.byte 0x92,0xf8,0x56,0x2e,0xc3,0xc8,0x8b,0x54,0xc8,0xc7,0x40,0x79,0x27,0x06,0x18,0x4a,0x7b,0x88,0x3f,0xd6,0x4f,0xd4,0x66,0x1e,0x1f,0x9a,0x14,0x1a,0x0a,0x98,0xc7,0xd6,0x25,0x83,0x37,0x8a,0x5d,0xb2,0x88,0x39,0x68,0x7b,0x1f,0x4e,0x0a,0xed,0x11,0x1a,0x77,0x9b,0xcb,0xb6,0x7d,0x5c,0x36,0xac,0x07,0x07,0x9f,0x05,0xcf,0x90,0x8f,0x3f +.byte 0x4b,0xc5,0xf9,0x42,0x90,0xb4,0x42,0x26,0xa1,0x2c,0x66,0xc6,0xb8,0x98,0x80,0x8a,0xbb,0x9b,0x41,0xe4,0x44,0x8c,0x5e,0x56,0x33,0xe3,0xba,0xcf,0x31,0x8e,0x28,0xd7,0xc5,0xd1,0x3b,0x68,0x47,0x10,0xae,0xda,0xc3,0xbd,0x20,0xe7,0xac,0xe2,0xe1,0xe0,0x7a,0x4b,0x83,0xb1,0xab,0x72,0xf4,0xc4,0xe7,0x0d,0x02,0xaf,0x5b,0x74,0xac,0xda +.byte 0x9d,0xce,0x26,0x1f,0x79,0x05,0x67,0x7e,0xc4,0x98,0x3f,0xde,0xa6,0xf3,0xfe,0x59,0x65,0x88,0xfb,0x14,0x3a,0x43,0x91,0x04,0x1a,0x78,0x7e,0x08,0xba,0x55,0x50,0xc7,0x65,0xd3,0x8e,0xda,0x0a,0xee,0x8e,0x11,0xa9,0xf6,0x9e,0xd3,0x23,0x97,0x05,0x0c,0x98,0x2a,0x36,0x25,0xec,0x5e,0x0b,0xf9,0x31,0x80,0x00,0x8a,0x70,0xf1,0xaa,0x7c +.byte 0x73,0x02,0x98,0x8d,0x42,0x27,0x53,0xf1,0x83,0x37,0xd0,0x2d,0xfa,0xc7,0x4b,0xa5,0xb3,0xc9,0xb8,0xd4,0x56,0x94,0x5a,0x17,0x2e,0x9d,0x1b,0x46,0xaa,0xb6,0xd9,0x2a,0x3a,0x6c,0xaf,0x24,0x59,0xfd,0x08,0xc5,0xca,0x0c,0x79,0x3f,0xe7,0x91,0x8d,0x9d,0x59,0x91,0xd8,0x5f,0xda,0x6d,0x35,0x7b,0x52,0x47,0x35,0xf9,0x81,0x86,0x2c,0xee +.byte 0x1a,0x14,0xc5,0x1f,0xb6,0x85,0xb5,0x74,0xe9,0xb7,0x4f,0xde,0xcd,0x93,0x2d,0xf3,0x10,0xbe,0x34,0xfa,0xca,0x15,0x9f,0x02,0x9d,0x19,0x72,0x7c,0xd6,0xfd,0x81,0x43,0x49,0xb5,0x2b,0x52,0x31,0xd6,0x2c,0x28,0x2e,0x83,0x6d,0xd3,0x0f,0x6e,0x03,0x65,0xf0,0x8a,0xdd,0x0a,0xec,0x58,0x10,0x45,0x5d,0xac,0xda,0xf5,0x32,0x5d,0x18,0x26 +.byte 0xcc,0x2e,0xcf,0xd3,0x41,0x2d,0x1d,0xba,0xdf,0xd8,0x96,0x8f,0x18,0x0f,0xa7,0xec,0x8e,0x6e,0x84,0x2c,0xd6,0x1f,0x4e,0x76,0xfe,0xf3,0x14,0x27,0x4b,0x5b,0x3d,0x7c,0x1c,0x59,0x46,0x97,0x1b,0x59,0x5a,0x2d,0x57,0x80,0x17,0x98,0x7d,0x92,0x5d,0x2f,0x98,0x53,0x10,0x59,0x8e,0x7f,0x55,0x64,0x15,0x62,0x2c,0x16,0x0b,0x8d,0x48,0x54 +.byte 0xaf,0x96,0x17,0xa9,0x8e,0x2c,0xcf,0x41,0x8c,0x8a,0x37,0x55,0xe4,0xf9,0x20,0x3b,0x21,0x5c,0x86,0x8d,0x3f,0xa6,0x5e,0x43,0xf3,0x3b,0xf7,0x7c,0x27,0x88,0x8e,0xa5,0x15,0xca,0x0e,0x9e,0x85,0x30,0x17,0x0d,0xcf,0xf0,0x82,0x87,0xd6,0xe8,0xd2,0xad,0xe9,0x4d,0x3f,0xc9,0x58,0x19,0xf9,0x99,0x4d,0xf9,0x6b,0x1b,0xd3,0xf9,0xdd,0x52 +.byte 0xd1,0x3c,0x64,0x46,0xfd,0x4f,0x2e,0x63,0x39,0xd8,0xe4,0xeb,0xfc,0x07,0xf1,0xa5,0xff,0x84,0xa8,0x92,0xfe,0xbc,0xc5,0x36,0x91,0x2b,0xec,0x2c,0xad,0xf0,0xac,0xc5,0xb0,0xad,0x8a,0x0d,0x6a,0xd9,0x29,0x7a,0xb0,0x87,0x0c,0xaf,0xda,0x75,0x84,0x25,0xbe,0xee,0x0d,0xfd,0x4c,0xf5,0x2d,0x46,0xe9,0x17,0xb9,0x9d,0x3d,0x4b,0x8f,0x3a +.byte 0xe9,0x49,0xb6,0x32,0x99,0x27,0xe2,0x4d,0xff,0x2f,0x2e,0xd5,0x69,0x52,0x56,0x20,0x0a,0xbf,0x62,0x14,0x34,0xfb,0xbf,0x95,0xe8,0xfe,0xb1,0x9f,0x43,0x30,0x02,0x03,0x9e,0xa8,0xe2,0x68,0x64,0xdd,0x37,0xfc,0xb9,0x0f,0x85,0x8c,0x36,0x45,0xdb,0x7c,0x8b,0x97,0x50,0xc3,0x75,0xa1,0xcf,0xf4,0xc2,0x46,0xd8,0xa1,0x8c,0xab,0x8d,0x3a +.byte 0xde,0xe7,0x9e,0xd2,0x1e,0x2d,0x8b,0xe4,0x31,0xe3,0x12,0x3f,0x9f,0x0b,0x2c,0x95,0x75,0x8d,0xf1,0x24,0xb9,0xdf,0x1e,0x64,0x35,0x45,0x2a,0xc2,0xf9,0x96,0x5d,0x10,0x64,0x32,0xae,0xe9,0xf8,0x71,0xd4,0x2d,0x6b,0xc6,0xde,0x08,0x1e,0x5d,0x51,0xf1,0xe7,0xfd,0x3c,0x22,0x43,0x59,0x82,0x83,0x13,0x75,0x36,0xef,0x81,0xe4,0xcf,0xa8 +.byte 0xb8,0x30,0x16,0x44,0xae,0x55,0x06,0xdd,0xb9,0x60,0x3f,0x75,0xc6,0xd1,0x73,0xa9,0xea,0xc9,0x64,0x2b,0x8a,0xde,0x44,0x4b,0x3d,0xc3,0x31,0x12,0x84,0x9a,0xe3,0xda,0x24,0x82,0x99,0x00,0x6d,0x8e,0xb8,0x26,0x82,0xa6,0xc2,0x37,0x6c,0x2a,0x1d,0xcf,0x6d,0x18,0xc7,0xee,0x27,0xca,0xe7,0xad,0x95,0xed,0x7d,0xe0,0xe0,0x6f,0x45,0xc3 +.byte 0x8a,0x2f,0x08,0x49,0x7e,0x09,0x9e,0xc1,0xb7,0x1e,0x8f,0x57,0x61,0xf8,0x3e,0xea,0xd7,0x47,0xfb,0xd0,0xda,0xaa,0x04,0xf9,0x06,0xbb,0xa3,0x80,0x68,0x89,0xb0,0x7f,0x18,0xf3,0xd2,0xeb,0xee,0x48,0x30,0x6a,0x24,0xc8,0x71,0x43,0xc3,0x50,0xcc,0x85,0x68,0xf5,0xca,0x44,0x34,0x43,0xaa,0x2e,0x4f,0x02,0x1b,0x23,0x4f,0xe9,0x07,0x02 +.byte 0xa2,0xfa,0x24,0x57,0x70,0x4e,0x1a,0x78,0x03,0xa2,0xdd,0x53,0x50,0x82,0x05,0xb1,0x0f,0xcb,0x9e,0x2e,0x58,0x04,0x62,0xc8,0xac,0x71,0x31,0x56,0x0f,0xc7,0x70,0x32,0x53,0xda,0x51,0xc3,0x15,0x78,0x82,0xb6,0xe8,0x6e,0x32,0xeb,0x39,0xab,0xba,0x67,0xcc,0xbc,0x99,0x58,0x88,0xc4,0x60,0x0d,0x0b,0xc1,0xfa,0x6f,0x40,0x85,0x04,0xdf +.byte 0x5f,0x17,0x69,0xf1,0xbd,0x44,0x97,0xc8,0x62,0x19,0x49,0x1f,0x23,0xcb,0x3d,0x17,0x04,0xf2,0xbd,0x58,0x15,0xa6,0x37,0x3a,0x3f,0x77,0x98,0x32,0x40,0x8a,0x72,0xf0,0x41,0x0b,0xad,0x88,0xba,0xd3,0xae,0xdc,0x3b,0x9a,0x37,0x89,0xa5,0x09,0xe5,0xbb,0xf2,0xf8,0x5d,0xa5,0xed,0xe8,0x39,0x7b,0xed,0x2b,0x90,0xd6,0x6c,0xd3,0xfa,0x69 +.byte 0xa7,0xca,0x09,0x83,0x15,0x8d,0xd8,0xe3,0x81,0x03,0x4e,0x2d,0xd8,0x96,0x3b,0x4b,0x18,0x91,0xac,0x5f,0x22,0xe6,0x9d,0x4b,0x09,0xaf,0xf0,0xdf,0x16,0xa2,0xf1,0x2c,0xd9,0x35,0x8a,0x6e,0x85,0x7a,0xbc,0xc7,0x10,0xd1,0x5f,0x8a,0x53,0x9c,0x8e,0xbc,0x8c,0x15,0xb3,0x8a,0xb0,0x0b,0x74,0x40,0x2a,0x5f,0x46,0x71,0x1c,0x0b,0xee,0x08 +.byte 0xae,0x17,0x26,0x1e,0xcf,0xbf,0x3d,0xa0,0x5e,0x3a,0xdb,0x39,0x6b,0x4a,0x82,0x53,0x02,0xf4,0xa2,0x15,0x5c,0xb6,0xdb,0x20,0x30,0xa2,0x7d,0xcb,0x9a,0xf7,0x88,0x69,0xb5,0xc8,0xe6,0xcd,0x9e,0xa4,0xaf,0x27,0x0e,0x61,0x41,0xcd,0x8e,0x71,0x83,0x11,0xce,0x5e,0x6c,0xaf,0xa4,0x50,0x81,0xb6,0xf2,0x36,0x05,0xbb,0x36,0x4e,0x4a,0x1b +.byte 0x09,0x9f,0xca,0x1b,0x12,0xb0,0x01,0xc0,0xbf,0x7e,0x3f,0x81,0x60,0x9f,0xfd,0x56,0x81,0x54,0x99,0x2b,0x7f,0x1e,0xb1,0xbf,0xd4,0xb7,0xe1,0x7c,0x71,0xf9,0x00,0x72,0x5f,0x10,0xab,0x60,0x03,0x9d,0x13,0xf1,0xba,0x48,0x93,0x1c,0x1d,0x11,0x04,0x40,0xf6,0xde,0x3b,0xef,0x6c,0x47,0xb3,0x0d,0xcf,0x53,0xbd,0x45,0x7e,0xd7,0x8c,0x34 +.byte 0xd0,0xcb,0x85,0x4b,0x1e,0xd1,0xc5,0xfd,0x5b,0x1a,0x18,0x8a,0x27,0xe3,0x16,0x3c,0x25,0x12,0xf2,0xf1,0xa1,0x40,0x53,0x68,0x27,0x2c,0x81,0x0e,0x20,0x12,0xe3,0xde,0xe2,0x9f,0x08,0x75,0xc0,0x25,0x79,0xf0,0xc4,0xaa,0x10,0xad,0x41,0x3f,0x0b,0xc7,0xb2,0xe0,0x50,0xde,0xec,0x24,0x09,0xeb,0xb5,0xd3,0xbc,0xd3,0xdf,0x44,0x6d,0xc8 +.byte 0xf1,0x79,0xf8,0x33,0xb7,0x75,0x09,0x18,0x04,0x59,0x0f,0x15,0x5e,0xf9,0xca,0xe0,0xa9,0x2a,0xe1,0x1b,0xf0,0x49,0x5f,0xca,0xa3,0x80,0xd5,0x9b,0x1e,0xc1,0x1f,0x98,0x18,0x0a,0x24,0xc3,0x3f,0xfb,0x43,0xfd,0xa3,0x01,0x59,0x50,0xea,0x21,0xe0,0x92,0xfd,0xe1,0xd5,0xe4,0x38,0x24,0x88,0xf3,0xb0,0xc9,0x79,0xfd,0x4e,0xd3,0x3e,0xbf +.byte 0xc6,0xb8,0x9e,0x7f,0xab,0x65,0x79,0xd9,0xb9,0x83,0x38,0xe1,0xf7,0xd0,0x37,0x04,0xb3,0x0c,0x48,0x82,0x74,0xe1,0x0c,0x80,0x13,0x59,0xc4,0x72,0xf9,0x2d,0x88,0x06,0x46,0x08,0x7a,0x6b,0xb4,0xfc,0x5f,0x63,0x31,0x2f,0x4f,0xfd,0x4b,0x1f,0x8e,0x21,0x3c,0x67,0x83,0xdd,0xa9,0x65,0x68,0xc6,0xd0,0xb8,0x1d,0xcd,0x60,0xc5,0xb9,0x3b +.byte 0xea,0xe9,0xc7,0xa5,0x1a,0x98,0x8a,0x87,0xb7,0x73,0x29,0x3a,0x6a,0x3a,0x75,0xbf,0xa4,0x79,0x64,0xcb,0x94,0x68,0x93,0x56,0x55,0x1e,0xd5,0x61,0xda,0x87,0xe1,0x28,0xf0,0xa5,0x64,0x9a,0xd7,0xa0,0x91,0xfd,0x46,0x20,0x6c,0x87,0x1f,0xe8,0x9e,0x7e,0x95,0xc4,0x60,0xdb,0xf4,0xe2,0x3e,0xb2,0x6a,0x4a,0xe7,0x46,0x3f,0xca,0xf3,0x72 +.byte 0xb5,0xe8,0x06,0x3a,0x1b,0xeb,0xcb,0x81,0x46,0x44,0xf6,0x97,0xa0,0x79,0xe4,0xa4,0x8a,0xba,0x5e,0x1b,0x6d,0xf4,0xcf,0x7c,0x12,0x7a,0xec,0xdd,0xf6,0xc8,0xab,0x5f,0x30,0xb3,0xf9,0x8e,0x31,0xfd,0x51,0x95,0x8b,0xa1,0xe9,0xe8,0x2d,0xec,0x86,0x12,0x4a,0xf8,0x8b,0xa5,0xdd,0xb2,0xe4,0xad,0xdd,0xcb,0xf5,0xcd,0x9c,0x9f,0x0a,0x42 +.byte 0x5f,0x83,0x9d,0xa6,0x4f,0xbe,0x11,0x75,0x3c,0xde,0x67,0x6b,0x95,0xcd,0xcf,0xdc,0xfd,0x1f,0x1a,0x14,0x01,0x27,0x68,0xaf,0x9b,0x82,0xd6,0xae,0x29,0x8a,0x1f,0xc8,0xf1,0x1f,0xb8,0xa9,0xa2,0x1d,0x81,0xbb,0x19,0xda,0x06,0xe3,0x34,0x7b,0xce,0x99,0x3c,0x5b,0x0c,0x9b,0x8b,0x35,0xc0,0x6c,0x88,0xef,0xeb,0x9f,0x64,0xe3,0xc3,0xbf +.byte 0x37,0xd7,0xf6,0xdf,0xad,0x28,0xf4,0xd7,0x19,0xb0,0xf2,0xa7,0xd4,0x71,0xbc,0xd3,0xa3,0x09,0x5c,0x1a,0x45,0x30,0x2d,0x53,0xa5,0x19,0x2f,0xb0,0x5d,0xae,0x04,0x28,0xe6,0x16,0x3e,0x75,0x9f,0xcc,0x76,0xc4,0xc2,0xa0,0xfb,0xff,0xdd,0x4c,0xa3,0x8b,0xad,0x05,0x73,0x26,0xf0,0xef,0x48,0xd5,0x25,0x22,0x90,0x78,0x21,0xfd,0xc6,0x23 +.byte 0x14,0xbc,0xed,0x13,0x29,0x76,0x17,0xa6,0x93,0x09,0x6e,0xa7,0x42,0xdd,0x11,0x9e,0x05,0xa3,0xb7,0x48,0x84,0x85,0xf8,0x4e,0xed,0x3d,0xdb,0xfc,0x68,0xd2,0xec,0xec,0x69,0x2b,0x60,0x38,0xd1,0x99,0x44,0xf9,0x60,0xd3,0x5a,0x9e,0xe4,0x26,0x9d,0x12,0xf8,0x6a,0x53,0xde,0x76,0x78,0xa7,0x68,0xb0,0xb4,0xdc,0x33,0x7b,0x8a,0x73,0xa0 +.byte 0xa5,0x5f,0x8f,0x81,0x0e,0x51,0x06,0x13,0x6b,0x56,0x16,0x91,0x1f,0xf5,0x6b,0x68,0xe6,0x8b,0x69,0xda,0x0a,0x9c,0xb1,0x74,0x8f,0x1c,0xb3,0xbf,0x52,0x59,0xaa,0xb1,0xb6,0x3a,0x81,0xc2,0x04,0x54,0x12,0x46,0xa2,0xd5,0x21,0xdf,0xe0,0x57,0x1f,0xe8,0x36,0x56,0x87,0xbf,0xcb,0x7d,0x06,0x6c,0xd5,0xc9,0x4e,0xca,0x47,0x47,0x11,0x91 +.byte 0x7a,0x14,0x13,0x5d,0x5d,0x46,0xd5,0x3a,0xe4,0xa4,0x4d,0x99,0x3a,0x54,0x99,0x62,0xb4,0x70,0xa0,0xf5,0x8a,0xda,0x05,0x75,0xf1,0xa5,0xa1,0x5d,0x9d,0xc4,0x7f,0x83,0x8a,0x5b,0x09,0x54,0x0e,0x69,0x28,0xef,0x66,0xfb,0xe4,0xc4,0xe4,0xc4,0xda,0xb0,0xda,0xe2,0x19,0x33,0x3c,0x76,0xa0,0x35,0xdc,0x31,0x4e,0x40,0xfe,0xb8,0x20,0x26 +.byte 0x8f,0x6f,0x7d,0x02,0x54,0x86,0x1d,0xca,0xa6,0x10,0xa6,0x89,0x87,0x3a,0x5a,0xd5,0x3d,0x0f,0xb5,0x81,0x7d,0xab,0xb6,0xc6,0x36,0x87,0xce,0xd7,0xe4,0xc3,0x9e,0xc2,0x9c,0xf6,0x75,0xd5,0x9a,0x69,0xd2,0x13,0x89,0x5a,0xe9,0x29,0xc9,0xf5,0x6e,0xcc,0x05,0x87,0x0a,0x61,0x49,0xd7,0xa5,0x76,0xd0,0xaf,0x96,0xe0,0x2f,0x91,0xf4,0x45 +.byte 0x70,0x5a,0xdc,0x9f,0x07,0x7f,0x86,0x02,0xa4,0x83,0x8d,0x4a,0x6d,0xfc,0x1b,0xd8,0x9b,0xc2,0x42,0x4f,0xcb,0xdf,0xcb,0xe0,0x55,0xb4,0x8f,0xf7,0x27,0x73,0xd9,0x7e,0xf8,0x3a,0x5c,0x4f,0x29,0x64,0xd8,0x39,0xfa,0xf2,0xc4,0x6b,0xeb,0x55,0xc3,0x13,0x22,0x15,0xdf,0xc5,0x91,0x6d,0xd7,0xf3,0x11,0x34,0x08,0xce,0xe5,0xbd,0x16,0x14 +.byte 0x60,0x14,0x8a,0xed,0x4d,0x38,0x98,0x15,0x5d,0xee,0x70,0xff,0x05,0xd2,0x74,0x3a,0x5f,0x78,0x1a,0x70,0x61,0x2a,0x42,0x4a,0xf3,0x15,0x6f,0x9e,0x33,0xca,0xb8,0x46,0x22,0x64,0xd6,0x24,0xe8,0x10,0x1a,0x89,0xab,0x74,0xdf,0x56,0x35,0x41,0x57,0xe1,0xd9,0x4b,0x67,0x60,0x89,0x6f,0xbf,0x73,0xac,0x6b,0xf9,0x78,0x3f,0xbc,0xf3,0x2a +.byte 0xb5,0x8c,0x1f,0xda,0xe7,0xe2,0xac,0x60,0xbf,0x41,0x96,0xbb,0xd5,0x35,0x9c,0x56,0xe7,0xfd,0x95,0xc7,0x4d,0x32,0xa1,0x07,0x34,0xbc,0x99,0xca,0xcc,0x42,0x71,0xfb,0xec,0x5c,0x1e,0xf9,0x8b,0xde,0x43,0x65,0x84,0x16,0x52,0x0a,0x5e,0x92,0x20,0xd8,0x26,0x4b,0x97,0x71,0xde,0xd2,0x1f,0x2e,0xd1,0xb2,0xb6,0x29,0x6a,0x6d,0x41,0x00 +.byte 0x20,0x3d,0x03,0xf8,0x43,0x7b,0x57,0x87,0x4e,0xf1,0x8e,0x6f,0xd3,0xf4,0x6c,0x6c,0x29,0xf6,0x99,0xe3,0xd3,0x1d,0xd3,0x26,0x21,0x3b,0x02,0xa2,0xc1,0x06,0xcf,0x31,0xec,0x7f,0xc6,0x80,0xbc,0xab,0x86,0x01,0xff,0x11,0x8a,0x24,0xfd,0x1b,0x41,0x49,0xd4,0xbe,0x15,0x34,0x82,0xc5,0x02,0x51,0x67,0x5c,0x41,0x8e,0xbf,0x94,0x12,0x15 +.byte 0x64,0xea,0x00,0x0c,0x51,0x40,0x57,0x66,0x1e,0x6d,0x3e,0x41,0x8e,0x84,0xdf,0x71,0xb8,0xd7,0xfa,0x12,0x17,0x22,0x17,0x05,0xdc,0x82,0xfd,0x7c,0x5e,0xfa,0x62,0x23,0xa8,0xbe,0x14,0xdc,0x84,0x42,0xf0,0x90,0xc5,0xb0,0x68,0xbe,0x64,0x74,0xc3,0xa5,0xd1,0x10,0xcf,0xe3,0xd1,0x09,0x98,0x3b,0xb9,0x19,0xf2,0x9b,0x5d,0x90,0x99,0x3d +.byte 0x30,0x67,0x55,0x34,0x50,0x78,0x3b,0xd2,0x70,0xb1,0xd2,0x91,0x4e,0xfa,0x98,0x7d,0x93,0xad,0x7f,0xb1,0x89,0xb0,0x61,0x4c,0x95,0x3f,0x51,0x95,0xd7,0xc6,0x87,0x7a,0xc5,0x53,0xb6,0x6d,0x61,0xec,0xbe,0x40,0x1f,0xa5,0x7f,0x73,0x4a,0x78,0xd2,0x58,0x1e,0x41,0x8e,0x9a,0x08,0x49,0xce,0x39,0x52,0xf9,0xd1,0xcd,0x41,0xb6,0x39,0x99 +.byte 0xfa,0xfb,0x1c,0x38,0xe1,0xe5,0xe1,0xd6,0x16,0x0f,0xc8,0x12,0x0b,0x88,0xdc,0x00,0xd4,0x7b,0x24,0x69,0x16,0x27,0x37,0xa3,0xd5,0x39,0x27,0x34,0xda,0x23,0x24,0x50,0x13,0xd8,0x02,0x48,0x14,0xd7,0xc9,0x28,0x1b,0xba,0x66,0xa8,0xc8,0x9a,0x7b,0xed,0x92,0x5b,0x78,0x46,0x79,0x5a,0xd1,0xf2,0x75,0xf0,0x98,0xd3,0x9f,0x4c,0x72,0x51 +.byte 0xed,0xe5,0xce,0x83,0xac,0xe1,0xc8,0x2b,0x7f,0x77,0x6a,0x70,0xdd,0x80,0x88,0x62,0x58,0x94,0x15,0x72,0x53,0x34,0x48,0x17,0xb2,0xe8,0x4a,0xab,0x2d,0x4e,0xef,0x93,0xb7,0xba,0xd1,0x1c,0x53,0x69,0xd5,0xac,0xa1,0x61,0x7c,0x44,0xec,0x81,0x72,0xcc,0xe8,0x6f,0x5d,0x67,0x1f,0x65,0x9a,0x34,0xf5,0x95,0x89,0x1c,0x2e,0x54,0x42,0xc0 +.byte 0x85,0x79,0xb0,0xfa,0x44,0x0d,0x28,0xc4,0x20,0x2f,0x2e,0x85,0x73,0xfb,0xf6,0x44,0x0e,0xbc,0xab,0x4f,0x42,0x5c,0xdb,0x1f,0x11,0x6f,0x9a,0x23,0x75,0x70,0x78,0x1a,0xd2,0xb8,0x83,0x72,0xf5,0xf6,0x40,0x48,0x3f,0xc8,0xd5,0xe3,0x2c,0x08,0x5c,0x0c,0x2a,0xb0,0x8e,0x69,0xe6,0xdf,0x4b,0x4a,0x95,0x9c,0x4c,0x5e,0x09,0x24,0xc3,0xd0 +.byte 0x4c,0x20,0x0c,0x9a,0xce,0x95,0x53,0x6a,0x7b,0x54,0x0a,0x7e,0x73,0xa7,0x95,0xe7,0x7c,0x67,0x9d,0x05,0xbc,0x26,0x3a,0xa1,0x43,0x99,0x7a,0xee,0x04,0xcf,0x94,0x02,0x36,0x26,0xb3,0x81,0x74,0x22,0xee,0x1e,0x9e,0xe2,0x82,0xd4,0xe0,0xca,0xf2,0xec,0xd2,0x9e,0xf8,0x3f,0x9f,0xc4,0x5b,0xe8,0xfc,0xbd,0x93,0xaa,0xc3,0x2f,0xce,0xf2 +.byte 0x32,0xa9,0x23,0xf3,0xe1,0x06,0xae,0x7d,0x87,0xe9,0xe7,0xe0,0xc1,0x7c,0x74,0x9c,0xdf,0x86,0x6d,0x5c,0x8a,0x51,0x45,0x9d,0x43,0x49,0x87,0x45,0x75,0xfb,0x40,0x55,0xab,0x9a,0x52,0xf1,0x32,0x5e,0xde,0x8b,0x52,0x50,0x9f,0xb8,0x7a,0xe5,0x1c,0x40,0x4f,0xc7,0xb1,0x29,0x90,0xcc,0x98,0x99,0xa0,0x4e,0x1c,0x43,0x6e,0x91,0x61,0x9c +.byte 0xf7,0xa7,0xf7,0x43,0x89,0x15,0x8c,0x56,0x22,0x9d,0x66,0xac,0x71,0x19,0xdc,0xb9,0xf8,0xd3,0xaf,0x2e,0xd7,0x7b,0xc3,0xe4,0x25,0x0d,0x2c,0xaf,0x15,0x8c,0xea,0x2b,0xdb,0x8c,0x71,0xff,0x55,0x29,0x11,0x35,0x11,0xef,0xb0,0x97,0xb2,0x95,0xab,0xeb,0x4a,0x40,0x1c,0x92,0xc4,0x13,0x36,0x74,0x53,0x78,0x51,0x6c,0xca,0x37,0xcb,0xda +.byte 0x5e,0x6b,0x8c,0x69,0xc5,0xd0,0xf9,0xdb,0xbe,0xd9,0x30,0x42,0x16,0xcf,0x40,0x63,0x87,0x10,0x28,0x7d,0xae,0xa9,0x8c,0x14,0x99,0xe1,0x4f,0x11,0x98,0x7e,0xe9,0x14,0x9c,0x2e,0xe2,0xed,0x20,0x15,0x7c,0xb5,0xf4,0xc9,0x16,0x30,0x8d,0x7c,0x61,0x45,0xf4,0x23,0xf5,0xdb,0x81,0x8f,0x6b,0x41,0xaf,0xa9,0xf8,0x51,0xbe,0xc4,0x5d,0x8c +.byte 0xda,0x5e,0x07,0x62,0x7c,0xc6,0xd1,0xae,0x91,0x5e,0x05,0xa8,0xc6,0xc5,0xfc,0xb7,0x12,0x2e,0x7f,0x85,0xef,0xbd,0x2b,0x56,0x57,0x32,0xad,0x3d,0x97,0x5b,0x26,0xcf,0xd3,0xe7,0x48,0x4e,0x9b,0x15,0x98,0x77,0xb4,0x3e,0xf1,0x3e,0x1c,0x21,0xb0,0x98,0xe2,0x69,0xee,0xd8,0x29,0x10,0x93,0xd5,0xc9,0x71,0x8f,0x28,0xbd,0xe3,0xd9,0x54 +.byte 0xf3,0x72,0xb6,0x85,0xe9,0x2b,0xdc,0x96,0x52,0x53,0x5c,0x61,0x54,0x96,0x4a,0xf5,0x3f,0xee,0x53,0xc3,0x63,0xc9,0x67,0x14,0xdf,0x3a,0xfe,0x46,0x8a,0xa6,0xec,0x06,0x0c,0xea,0xb8,0x82,0x49,0xb5,0xed,0x94,0xf2,0xac,0x76,0xd5,0x87,0x79,0x15,0x4f,0xa1,0x34,0x90,0x8e,0x7b,0x02,0xf7,0x02,0xb0,0x07,0xa5,0x7c,0x6b,0xc2,0x34,0x84 +.byte 0xd4,0xaa,0xbf,0x32,0x81,0xf7,0xed,0x1f,0x61,0xd7,0x6e,0x40,0xa0,0xdc,0x4c,0xb5,0xb7,0x36,0x3a,0x87,0x09,0x82,0xd5,0x5a,0xc8,0x1f,0xe6,0x77,0xa6,0xaa,0xcf,0x3c,0x7b,0x23,0x46,0x58,0x95,0x7f,0x84,0xba,0x4a,0x05,0x0b,0x36,0xdb,0x58,0xf9,0xa4,0x2b,0x24,0xd4,0x8a,0xbc,0xb2,0xb7,0x04,0xac,0x64,0x0e,0x88,0x25,0x9a,0x69,0xe7 +.byte 0x87,0x70,0x0b,0xa6,0x43,0xe9,0xb2,0xbb,0x4e,0x4c,0x10,0x19,0x44,0x4d,0x12,0x4c,0x58,0x2a,0x49,0xe2,0x01,0xd2,0x65,0x23,0xee,0xe9,0xca,0x0b,0xa1,0x28,0x02,0x8d,0xcf,0x37,0x06,0xbc,0x5d,0x35,0xba,0xec,0x97,0x95,0xcc,0xfe,0x7b,0xc9,0x1c,0x0d,0x89,0x4e,0xe1,0x8d,0x9b,0x5e,0x5b,0xb9,0x6c,0x24,0x73,0x9a,0x62,0xd7,0xc5,0xfa +.byte 0x54,0xeb,0x05,0x22,0xd9,0xe7,0xc4,0x68,0x88,0x20,0x43,0xd9,0x14,0x47,0xd7,0xa5,0xd0,0xce,0x10,0x77,0xe8,0x5c,0x85,0x39,0x99,0x3f,0x72,0x88,0x4f,0x22,0x15,0x87,0xa0,0xa3,0x47,0x10,0x81,0x64,0xff,0x94,0x77,0x5d,0xce,0x6d,0xd8,0x29,0xb1,0x9c,0x8e,0xce,0xa8,0x39,0x4f,0xfc,0x36,0x3c,0x50,0xb2,0xf1,0x08,0x66,0x1a,0xf0,0x22 +.byte 0x65,0x1f,0x4d,0x17,0xd3,0x63,0x10,0x64,0xd1,0xc6,0x5a,0x3e,0x82,0x72,0x0c,0x48,0x5e,0x07,0x9c,0x07,0xa0,0x40,0x60,0xab,0x74,0x9a,0x00,0xdf,0xd7,0x7d,0xd4,0x11,0x4e,0xce,0x5a,0xaf,0x12,0x4f,0xe7,0x12,0x36,0x1a,0x12,0x11,0x16,0xb7,0xad,0x4b,0x28,0x84,0x7b,0xd8,0x30,0x0d,0x85,0xb8,0x76,0xde,0xa3,0x78,0x8c,0xb7,0x7c,0xbc +.byte 0x97,0x33,0x53,0x95,0xf8,0x14,0x5f,0xf8,0x0d,0xc1,0x6b,0x79,0xa2,0x42,0x49,0xab,0xae,0x8e,0x78,0xf3,0x51,0x01,0xcc,0x20,0x36,0x80,0xbd,0x32,0x0b,0x1b,0xd2,0xcd,0x27,0x52,0x69,0x1b,0x4a,0x37,0xba,0x31,0xe4,0xc2,0x03,0x8d,0x00,0x48,0x4b,0xcd,0x39,0x2e,0xec,0x94,0x2e,0xe0,0x81,0xfd,0x94,0xd9,0x86,0x39,0x23,0x87,0x3c,0x2f +.byte 0x25,0xe1,0x5b,0x22,0xe0,0x2e,0x37,0x6d,0x9b,0x97,0x9c,0x94,0x37,0x01,0x26,0xb8,0xb1,0x73,0x7c,0xfc,0x0a,0x64,0xe7,0x54,0xf1,0x0f,0x71,0xa1,0xd6,0xc7,0xc8,0xb4,0x86,0x2d,0xfe,0x30,0x8b,0xca,0xb2,0x18,0x21,0xc0,0xc7,0x7d,0x60,0xcf,0x2e,0x25,0xb0,0xa4,0x1a,0x28,0x19,0xa9,0xa9,0x15,0x32,0x5e,0x21,0x89,0x3a,0x99,0x5f,0x50 +.byte 0x86,0x37,0x3b,0x10,0xb8,0xa5,0xad,0x8e,0xbf,0xfc,0x8c,0x85,0xf1,0x76,0x5c,0xe7,0x4d,0xac,0xe7,0x21,0xb3,0x45,0x87,0x3b,0x05,0xc8,0x41,0xf4,0x99,0x83,0x28,0x40,0x6b,0x30,0x37,0x31,0xd2,0xb3,0xdd,0x43,0x3b,0x3f,0xec,0x50,0x58,0x7d,0x20,0xc6,0xb2,0xa9,0x3c,0x22,0x38,0xea,0x16,0x32,0x01,0xc4,0xb0,0x9f,0x7d,0x12,0x91,0x82 +.byte 0x0c,0xd8,0x36,0xfc,0xa4,0xec,0x06,0xb2,0xc2,0xce,0x9b,0xa4,0x53,0x71,0x77,0xdd,0xc3,0xfc,0x34,0x6f,0xd9,0x5c,0xfc,0x36,0xdd,0x63,0x19,0x06,0xfb,0x3c,0xf3,0x3f,0x82,0x28,0x6d,0x00,0xf9,0xfd,0x8d,0x6b,0x79,0x06,0x8a,0xe7,0x6f,0xcc,0x39,0x12,0x80,0x71,0xcb,0x71,0xb3,0xb6,0xa4,0xa8,0xbe,0x61,0x9d,0x1f,0x48,0xa2,0x15,0xa1 +.byte 0xb5,0xf5,0x16,0x70,0xc5,0x39,0xce,0x43,0xa3,0x09,0xe5,0xf4,0x8b,0x77,0x18,0x5e,0xa0,0x77,0xa3,0xa4,0x17,0x2c,0x3e,0x50,0x73,0x2f,0xaa,0x5d,0x58,0x5e,0xdc,0xec,0xaf,0xca,0x6e,0x57,0x80,0xa3,0xd5,0x94,0x30,0x7c,0x11,0x75,0xc4,0xbb,0x9d,0x18,0xc1,0x5a,0x58,0xc7,0x04,0x56,0xb1,0x3a,0x21,0x55,0x02,0xea,0xad,0x58,0x19,0x72 +.byte 0xdc,0x7d,0x0e,0x41,0x62,0x1b,0x5c,0x48,0x97,0x3f,0xed,0xd7,0x4e,0x30,0x1f,0xf5,0xde,0xc5,0x23,0xf2,0xd7,0x22,0xde,0x2f,0x3e,0x80,0x06,0x81,0xf6,0x24,0xb7,0x91,0x09,0x56,0x91,0x00,0x1a,0xea,0xaa,0xa6,0xc2,0x8b,0xc9,0x78,0xd7,0xde,0xf6,0x87,0xb1,0x04,0xcc,0xbb,0xc1,0xc6,0x48,0x43,0xc8,0x03,0xb2,0xdd,0x70,0xc0,0xe3,0xf5 +.byte 0xc0,0xf5,0x13,0xd5,0x11,0x41,0x7f,0x1a,0xdc,0x48,0xf5,0xd6,0x1b,0x0a,0x84,0xd2,0x84,0xcd,0x10,0x4f,0x0a,0xd7,0xcb,0x41,0x61,0x1c,0xcc,0x5c,0xa9,0xbd,0x6e,0x6a,0xf3,0x81,0xd8,0xaa,0x3a,0xff,0x39,0x90,0x8e,0x33,0xe6,0x58,0x13,0x5f,0xec,0x58,0x74,0x35,0xe0,0x06,0x38,0x0f,0xd0,0xbf,0x8d,0xf7,0x26,0x99,0xea,0xdd,0xfb,0xdf +.byte 0x5b,0xcc,0xf1,0x3d,0x9b,0x84,0x8b,0x5b,0xe8,0xc4,0xc6,0x3e,0x0a,0x55,0xec,0x73,0xf7,0x70,0xb1,0xc8,0xfa,0xf8,0xd6,0x72,0x2c,0x6d,0x8d,0xc1,0xa3,0xb2,0x9a,0xe7,0x80,0x6d,0x09,0xa6,0x76,0x06,0x71,0xf9,0x95,0x9a,0xa9,0x2f,0x4b,0x7c,0xad,0x64,0x01,0x01,0x91,0xe4,0x87,0x1d,0xe1,0x46,0xf5,0x4a,0x96,0xc6,0x58,0xd9,0xe0,0xa9 +.byte 0x2f,0x80,0x1e,0xd6,0xe9,0xa6,0xeb,0xfe,0x5a,0xb6,0xd3,0xe8,0x76,0xd2,0x51,0xc6,0x68,0x34,0xc9,0xed,0x76,0x29,0x7e,0x63,0xb1,0x09,0xdf,0x23,0x47,0x41,0x2f,0x70,0x46,0x4d,0xbb,0x36,0xc8,0x84,0xe9,0x58,0x20,0x6b,0x04,0xb2,0xa4,0x1c,0x4d,0xe0,0xa5,0xa2,0x59,0xc9,0xed,0x63,0x25,0x5f,0x3f,0x24,0x18,0x59,0x29,0xe3,0x79,0xbd +.byte 0x35,0x50,0xee,0x81,0x59,0xff,0xd4,0x0e,0x62,0xd3,0x52,0x30,0x81,0xa2,0xe6,0x9e,0xc3,0xc9,0x7a,0x10,0x57,0x36,0x27,0xb7,0x3c,0x61,0x38,0x89,0x70,0xa0,0xc5,0xdf,0x78,0x05,0xa5,0x81,0xe2,0x8a,0x93,0xda,0x7c,0xaf,0xbf,0x6d,0x42,0x09,0x1b,0x43,0x9d,0xf9,0x26,0x87,0xc3,0x84,0x6c,0xb7,0x25,0x31,0x50,0x00,0xd8,0x13,0xc0,0xc0 +.byte 0x6c,0x21,0x82,0x6d,0xf9,0x2f,0xef,0x40,0xe8,0xf8,0xae,0x4d,0x9e,0x1d,0x4a,0xda,0xa0,0x0d,0x77,0x36,0x8b,0xed,0xaf,0x6e,0x2a,0x3d,0xa8,0x36,0xe4,0xff,0x37,0xc2,0xa3,0x11,0x5e,0x68,0x58,0xa8,0xa3,0x19,0xf3,0xc1,0x33,0xea,0x39,0x49,0xfe,0x51,0x87,0xb6,0x31,0x6a,0x61,0x47,0xe7,0xb1,0x46,0xde,0x5a,0xf7,0x93,0x06,0xa7,0x72 +.byte 0xa9,0x2e,0x9e,0x2e,0xc9,0x7f,0xe1,0xb2,0x86,0xb4,0xc9,0xff,0x3b,0xf7,0xaf,0xef,0x91,0x47,0xc2,0xfa,0x42,0x0a,0x4e,0xbb,0x10,0x0d,0xea,0xa4,0x11,0x54,0xa9,0x53,0xde,0xc4,0x01,0xde,0xc7,0x2d,0x1f,0x18,0x40,0x79,0xd1,0x44,0x7d,0x51,0x1d,0xf6,0xdc,0x6f,0xad,0xa2,0x5d,0xd9,0xbe,0x5d,0x11,0x57,0xb7,0x68,0x0d,0x96,0xad,0xb3 +.byte 0x32,0xf7,0x99,0xcc,0x0e,0x03,0xa2,0x79,0x9b,0x63,0xce,0xee,0xf9,0x0c,0xfd,0xfa,0x9a,0x82,0xc9,0x43,0xd3,0xd5,0x23,0xfa,0xac,0x75,0xbe,0x61,0x85,0x18,0xb6,0x75,0x72,0x8d,0x17,0xdd,0xde,0x3f,0x6d,0xb4,0xe8,0x47,0x09,0xe1,0xa7,0xe0,0x4c,0xce,0x93,0x7b,0xc3,0xa3,0x3f,0xc0,0x81,0x21,0x6f,0xe8,0xce,0x68,0x61,0xde,0x1a,0x58 +.byte 0x48,0x7f,0xb4,0xae,0xfd,0x7c,0x80,0x63,0x43,0x5a,0xfc,0xf9,0xf9,0x4d,0xb4,0x8c,0x85,0x27,0x12,0x4f,0x7d,0xe8,0x69,0xc3,0x7d,0x57,0x63,0x0d,0x5f,0xd2,0x85,0x4e,0x0c,0x9a,0x0d,0x1c,0x4d,0xdf,0x3f,0x9a,0x16,0x2f,0x34,0x43,0xc3,0xf0,0xf1,0x16,0x16,0xd2,0x9f,0x2e,0x78,0xd8,0x3c,0x63,0xa0,0x7e,0x02,0x8e,0x65,0xd2,0xb0,0x61 +.byte 0xb0,0x1d,0x7a,0x8f,0xf7,0x30,0x45,0x05,0xf7,0x15,0xc3,0x69,0x24,0x98,0xc3,0x74,0x20,0x16,0x09,0x57,0x39,0x16,0x68,0x23,0x33,0x62,0x4c,0xf5,0xd6,0x34,0xe3,0xad,0x7a,0x14,0x64,0x8c,0x2b,0x48,0x96,0xf9,0x85,0x39,0x19,0x73,0x27,0x04,0xa6,0x55,0x66,0x15,0x8c,0xf1,0x47,0xcd,0x53,0xaf,0x31,0x3a,0xd9,0xfa,0xf9,0xac,0xbd,0xb8 +.byte 0x27,0xe0,0xaa,0xa5,0x62,0x85,0x9f,0xbb,0x4e,0xaf,0xa5,0x72,0x42,0x98,0xa6,0x7f,0xa1,0xb6,0xac,0x17,0xc2,0x2c,0xf3,0xd6,0xc0,0x14,0x4b,0xb3,0x86,0x88,0x89,0x81,0x83,0x7d,0x9d,0xf7,0xe3,0xe4,0x27,0xba,0xa8,0x03,0xb4,0xe3,0x97,0x74,0x1c,0x0d,0xab,0xb4,0x6e,0xc6,0x9e,0x58,0xdd,0x15,0x95,0x2f,0xa6,0xd6,0xaa,0x5a,0x96,0x71 +.byte 0x69,0xca,0xe0,0x5f,0xd2,0x3c,0x66,0x1b,0x58,0x25,0xd6,0xec,0xc0,0x46,0x3e,0x56,0xd0,0xe1,0x36,0x44,0x56,0xc0,0xf2,0x15,0x48,0x9e,0x07,0xce,0x5d,0xb9,0xd4,0x4e,0xcc,0x31,0x26,0xaa,0xdb,0x6a,0x87,0x98,0x0e,0x37,0xfc,0xc5,0x91,0x28,0x1b,0xf8,0x70,0xbf,0x30,0x71,0xbe,0xa0,0x81,0x1e,0x30,0x33,0x37,0x37,0xc8,0x07,0x08,0x9b +.byte 0x8f,0xe4,0x27,0x9f,0x90,0x67,0xb4,0x96,0x08,0xd7,0x30,0x9e,0xa6,0x53,0x39,0xd1,0x9b,0xde,0x02,0x35,0xf3,0xb1,0x19,0x7b,0xd2,0x28,0x5a,0xc3,0x1f,0x69,0x0e,0x48,0xbf,0xa3,0xb4,0x55,0xd1,0x10,0x3d,0x30,0x71,0xc6,0x82,0x2d,0xb8,0x6f,0xe6,0x99,0x6b,0xef,0x9f,0x86,0xed,0x93,0x13,0xb6,0xb0,0x87,0x91,0x77,0x4a,0x00,0xe4,0x5f +.byte 0x4c,0x7d,0x41,0x3b,0xc9,0xda,0x99,0x6b,0xff,0xec,0xef,0x05,0x3c,0xc6,0x0d,0xec,0x68,0x12,0x44,0x31,0xac,0xc9,0x0b,0x9c,0xf5,0xea,0xed,0xda,0x88,0xec,0x6e,0x6e,0x73,0xda,0x85,0x52,0x69,0xa1,0x13,0x52,0xcf,0xc3,0x4d,0x95,0x88,0xec,0x1f,0x53,0x81,0x6f,0xac,0x53,0x60,0x48,0x20,0x9a,0x4d,0x88,0x2c,0x4b,0xb0,0x69,0x5f,0x07 +.byte 0xf9,0xa7,0x2c,0x9a,0x13,0x91,0x86,0xa2,0x98,0x20,0xa9,0x80,0x1e,0xaa,0x8e,0xbc,0x3c,0x3d,0x51,0x34,0x3d,0x5b,0x80,0xe4,0x39,0xfe,0xc8,0xb1,0x6d,0xfe,0x36,0x9d,0x9b,0xde,0x22,0x39,0x41,0xe9,0xff,0xda,0x67,0x67,0xd4,0xeb,0x60,0x44,0xd5,0xc1,0x74,0xcd,0xa0,0x98,0x06,0x34,0x76,0xf8,0xe5,0x0d,0xc8,0x52,0xca,0x83,0xd2,0xdd +.byte 0xf2,0x12,0x36,0x7d,0x3e,0x7f,0xbd,0xa6,0xd8,0x1e,0xc0,0x9d,0x67,0x2a,0x33,0x87,0x86,0x79,0x7a,0x70,0x3a,0x63,0x0b,0x74,0x77,0x89,0xce,0x8f,0x5a,0x3b,0xf3,0x2e,0x52,0x4d,0x1d,0xc6,0xc3,0xc8,0x69,0x98,0xdc,0x81,0x45,0x99,0xfd,0xcd,0x6b,0x6d,0x05,0x33,0x40,0xde,0xb3,0xbd,0x4a,0x27,0xc2,0x9e,0x8b,0xf1,0x4c,0xac,0x92,0x82 +.byte 0x55,0x04,0x79,0xe7,0x28,0x74,0x5b,0x70,0xdc,0xc0,0x4f,0x0c,0xcf,0x3a,0x7f,0x08,0xcc,0x2e,0x1d,0xfd,0x8d,0xd9,0x5c,0xe2,0xa7,0x98,0xc1,0xe8,0x4b,0x96,0xbe,0x27,0xd6,0xfd,0x0a,0x59,0x30,0x33,0x85,0x41,0xc5,0x63,0xab,0xe7,0xda,0x26,0xbd,0xce,0xe7,0x9d,0x50,0xd7,0x2d,0x67,0x7a,0xa1,0x05,0x2b,0x74,0x60,0x5e,0x6c,0x04,0x2b +.byte 0xba,0xe6,0x2d,0x25,0xc9,0x00,0xd0,0xf0,0xa5,0x4f,0x22,0x59,0x34,0xb8,0x43,0x6b,0xb7,0x67,0x25,0x99,0xff,0x75,0x17,0xb1,0x13,0x7e,0x34,0x1d,0x42,0xa3,0x6b,0xb5,0x9d,0xfe,0xa1,0x71,0x0d,0x90,0x81,0x58,0xfc,0xc7,0x85,0xe6,0xbd,0xc2,0xcc,0xc9,0xc9,0x23,0x6e,0xd6,0xbe,0x4a,0x61,0xd4,0xf5,0x9e,0x37,0x6a,0xb1,0x8b,0x91,0x59 +.byte 0xe1,0x3e,0xac,0x87,0x54,0xa6,0xf9,0xf5,0x90,0xd2,0x7c,0xba,0x4b,0x37,0x33,0x1b,0x88,0x5e,0xbd,0x78,0x3f,0xed,0x43,0x40,0x4f,0x16,0x59,0x29,0xbc,0x27,0x98,0x87,0xfe,0x62,0x56,0x93,0x21,0x0a,0xca,0xc1,0x21,0x99,0xb3,0x32,0xbb,0x5a,0x79,0x40,0xab,0xea,0x00,0xf8,0xe9,0x90,0x0d,0x59,0xbd,0x6e,0x7f,0x74,0x01,0x50,0x67,0x3a +.byte 0x8e,0x24,0x1d,0x6c,0xc8,0xd6,0x93,0xca,0x71,0x95,0xec,0xac,0x78,0xe9,0x1f,0x38,0x0d,0xa2,0xe5,0x32,0x90,0xa2,0xaf,0xef,0x15,0x06,0xd6,0x52,0xa4,0xd2,0x94,0x0f,0xbd,0x86,0x81,0x82,0x12,0x9b,0x3a,0xc4,0x0b,0xdf,0x8a,0x5f,0xc6,0x3b,0xb4,0x13,0x9b,0xeb,0xed,0x2d,0x06,0x46,0xa3,0xbe,0xbb,0xe1,0xe1,0x93,0xa1,0xab,0x46,0xf3 +.byte 0xd0,0xd9,0xce,0xb6,0xfb,0xd0,0xd5,0xb6,0xde,0x0c,0xed,0x90,0x18,0x6c,0x1e,0x46,0xb0,0x36,0xa7,0xf1,0x29,0xbe,0x9a,0xa0,0xcf,0xed,0xd6,0xaf,0xb8,0x89,0x9b,0x83,0xa8,0xa0,0x8d,0x26,0xaf,0x8f,0x48,0x66,0xfc,0x22,0x1a,0xc0,0xcf,0xf8,0x90,0x57,0x7e,0x25,0x5f,0xe4,0x0c,0x68,0xd2,0xaa,0x59,0x09,0x2f,0x6d,0x3f,0x80,0x8d,0xe0 +.byte 0xfa,0x25,0xb0,0xe0,0x85,0xe9,0x13,0x39,0x3d,0x1f,0xed,0xd1,0x94,0x9b,0xb5,0xc2,0x65,0xda,0xec,0x7a,0x1f,0x2f,0xe2,0x0a,0x42,0x09,0xbd,0x79,0x7d,0xcb,0xb8,0x4a,0x02,0x2b,0x72,0xaf,0x33,0x85,0x72,0x1b,0x18,0x0c,0xa3,0xec,0x39,0x0e,0x30,0x21,0x41,0xf8,0x2e,0xc7,0x8e,0x5c,0x4c,0xda,0x22,0x49,0x8c,0xa7,0xfb,0x89,0x76,0x2e +.byte 0x45,0x90,0x6c,0xeb,0x70,0x78,0x6d,0x6e,0xee,0x12,0x6c,0xb9,0xb9,0x8d,0xe7,0xf3,0x4d,0x86,0xc4,0x58,0x49,0x55,0xa6,0x86,0xaf,0x39,0x03,0x21,0xfa,0xa7,0xdd,0x51,0x80,0x79,0x6d,0x5b,0xa5,0x58,0x0f,0xfd,0x57,0xb3,0x83,0xe6,0x0d,0x25,0xec,0x55,0xdc,0x0a,0x6f,0xbc,0x7d,0xfd,0x94,0x16,0xdd,0x60,0x9f,0x2a,0x4b,0x6c,0x82,0x03 +.byte 0x4b,0x44,0xbb,0x84,0xdc,0xcb,0x97,0x8e,0x58,0xe7,0xc1,0x79,0xa9,0xf3,0x53,0x78,0x1f,0xf1,0x3e,0xdd,0x94,0x24,0x6d,0xb1,0xd2,0x99,0xbc,0xa1,0xbe,0x7d,0xdd,0xff,0xa8,0x5d,0xd2,0xc2,0xba,0xad,0x60,0x6b,0x40,0x5d,0x7b,0x99,0xd2,0xea,0x45,0x66,0x80,0x6c,0x47,0xf2,0xeb,0x94,0xb8,0xe8,0xe8,0xa0,0x46,0x05,0xe1,0x4f,0x40,0x23 +.byte 0x34,0xdf,0x91,0x63,0xae,0xc9,0xe7,0x32,0x20,0x9a,0x95,0x1e,0xcd,0x5a,0x60,0xe1,0x3d,0xe0,0xf1,0x16,0x3d,0x6e,0x8b,0x96,0x23,0xe0,0xaa,0x1d,0x1a,0xde,0xed,0xc6,0x63,0xb5,0x46,0x8b,0x78,0x71,0x9a,0x14,0x88,0x79,0x61,0x68,0x6b,0xcf,0x80,0xd8,0x9c,0xaa,0xfb,0xb1,0xc0,0xf3,0x39,0x07,0x26,0x56,0x80,0xba,0x9d,0xf5,0xe7,0x95 +.byte 0x99,0xac,0x90,0xea,0xe7,0xe1,0xc9,0x0d,0x40,0x94,0x83,0x58,0xd2,0xc3,0x2b,0xce,0x1e,0xae,0x2a,0xa6,0xfa,0xc7,0x89,0x44,0xcb,0xe2,0x9e,0x74,0x33,0xaa,0x70,0xe5,0x28,0x3a,0x51,0x74,0x53,0xe2,0xfb,0x7c,0x47,0x76,0x22,0xdf,0x46,0xa6,0x01,0x17,0xef,0x88,0x43,0x46,0x3f,0x1a,0x26,0x0c,0xad,0xf4,0x31,0x55,0xf2,0xe7,0xc9,0x35 +.byte 0x6f,0x7c,0x0c,0x5c,0xfd,0x43,0xa4,0x6c,0x6c,0x74,0xf0,0xa4,0xec,0x1d,0x83,0x97,0xc1,0x6c,0x9c,0xd7,0x97,0x90,0x7c,0x07,0x88,0xc0,0xb4,0x79,0x2c,0x7a,0x9c,0x93,0xa2,0x15,0x6c,0xd2,0xa9,0x45,0xa5,0xc1,0x16,0xfe,0x72,0xf4,0x01,0x32,0xe4,0x51,0xdd,0xdb,0x50,0xe3,0x61,0x4e,0x29,0x1e,0x27,0x10,0xe9,0x5e,0x30,0x2b,0x30,0x27 +.byte 0x99,0xff,0x92,0x23,0x04,0x8d,0x28,0x68,0x28,0xd3,0x0f,0xec,0xbb,0xf9,0xfb,0x44,0x1c,0xaa,0x8b,0x38,0x95,0x67,0x1e,0xf5,0x42,0xc9,0xec,0x05,0xeb,0x94,0xe5,0x1c,0x8a,0x2a,0xef,0x3b,0x74,0x46,0x89,0x4f,0xd5,0x6f,0xa0,0xe5,0x74,0xae,0x24,0x8d,0x81,0xae,0x9d,0x3c,0x3e,0x3d,0x41,0x54,0x8f,0xd9,0xc2,0x98,0xf4,0x84,0xeb,0x30 +.byte 0x6a,0x06,0x67,0x11,0x2d,0xb0,0x55,0x70,0x26,0xdf,0x19,0x5f,0x81,0xe9,0x39,0x69,0x3a,0xd6,0x09,0xa4,0x40,0x22,0x1f,0x5c,0xbf,0xd5,0xa6,0xea,0x69,0x99,0x0d,0xea,0x70,0xed,0xfe,0x3a,0xba,0x23,0x8b,0xab,0x08,0xfe,0xfb,0xe9,0x1a,0x88,0x80,0x13,0x45,0x9c,0xca,0x2e,0xda,0x4a,0xc8,0x5d,0x15,0x52,0x87,0x36,0x9b,0x87,0x8a,0x76 +.byte 0x5d,0x31,0x24,0x4a,0xcb,0xf5,0xd3,0xd3,0xc1,0xec,0xde,0x1e,0x48,0x99,0xd5,0xcb,0x93,0xf7,0xca,0x2d,0xa4,0x66,0x5e,0xa4,0xcf,0xc6,0x15,0x20,0x10,0xb1,0xe2,0x8e,0xb9,0x44,0xa7,0xc3,0x54,0x14,0x86,0x08,0xb7,0x89,0x52,0xd5,0x72,0xc5,0x62,0x4d,0x82,0x96,0x23,0xcf,0x6e,0x52,0x3a,0x92,0x53,0x48,0xa2,0xa5,0x9d,0xa4,0xcc,0x32 +.byte 0x45,0x5a,0xdf,0xe2,0xbe,0xce,0x28,0xc8,0xb1,0xb7,0x0f,0x6a,0x38,0x28,0x14,0x66,0x55,0x7a,0xab,0x35,0x56,0xd0,0xc7,0xe5,0xa1,0x8a,0x84,0xf7,0xc5,0xa9,0xdb,0x2a,0x45,0xe9,0x34,0x2d,0xf2,0xed,0x2b,0xa9,0x9e,0x49,0x1b,0x23,0x10,0xeb,0x0e,0x01,0x46,0x6f,0x7a,0x50,0x09,0x5f,0xc3,0xb6,0x1e,0x2f,0x1a,0x3e,0x89,0x32,0xaa,0x5a +.byte 0xaa,0xef,0x23,0x45,0xdc,0xb5,0x7e,0x5f,0x87,0x77,0xde,0x50,0xab,0xbf,0x9e,0x62,0xa8,0xe0,0xf0,0xc8,0x4a,0xf1,0x4e,0xaf,0xe4,0x50,0x8a,0xfe,0xc9,0x68,0xdd,0x19,0x1d,0xc6,0x54,0xe5,0x38,0x0a,0x6f,0x36,0xe4,0x85,0xe8,0xab,0xc4,0x06,0xef,0x07,0x29,0xce,0xea,0x9d,0x2e,0x22,0x97,0x18,0x7e,0x59,0x89,0x92,0x31,0xc5,0x87,0x50 +.byte 0xa8,0x23,0x22,0x58,0x47,0x27,0x1c,0x89,0x5f,0xec,0x94,0x1d,0xb2,0xc8,0x61,0x1e,0x0a,0x80,0xd3,0xe9,0xbf,0x65,0xb9,0x66,0x32,0x56,0xde,0xd2,0x13,0xee,0xea,0xc4,0xc9,0xbf,0x4c,0xb7,0xa4,0x1c,0xc0,0xbf,0xcf,0xa4,0x58,0x1f,0x98,0x1d,0x25,0x4e,0x51,0xd9,0xbe,0x89,0x32,0xdb,0x7a,0xa6,0x39,0xa9,0xbf,0xed,0x65,0x6b,0x92,0xc4 +.byte 0x8d,0xcd,0x63,0x18,0x65,0x44,0x95,0xcf,0x17,0x72,0x8f,0x27,0x79,0x83,0xda,0xe3,0xe7,0xd9,0xca,0x57,0xff,0xa3,0x15,0xbf,0xb6,0xd8,0xc2,0x8c,0xe8,0xdb,0x8c,0xdc,0x54,0x6a,0xc8,0x57,0x6e,0x24,0xc3,0x3c,0x1f,0x33,0xdd,0x68,0xbd,0x7a,0xa3,0xbc,0xa9,0x9a,0xe8,0xfc,0x97,0xa5,0xbe,0x59,0xfb,0x77,0xcd,0x22,0xc6,0x3d,0x95,0x21 +.byte 0xcb,0xf7,0x8d,0xc1,0x77,0xc6,0xe0,0x06,0xb2,0xdb,0xec,0x54,0x19,0xad,0x02,0x25,0xe0,0x0f,0xda,0x4c,0xa5,0xf2,0x47,0x3f,0xc9,0xa0,0x91,0x21,0x39,0xe9,0x74,0x2a,0x9a,0xc1,0x57,0x86,0x3c,0x32,0x27,0x4c,0xc2,0x2d,0x50,0xbd,0x7a,0x04,0x9c,0x45,0x0d,0x7e,0x06,0x1d,0x3e,0xc1,0x6f,0x06,0x7f,0xd4,0x71,0xd3,0x5c,0x66,0x74,0xa7 +.byte 0x33,0x75,0x64,0xa8,0x7d,0xc0,0x23,0xda,0xb0,0x6d,0x12,0xbe,0x83,0x98,0xe7,0x65,0x38,0x4d,0x39,0xc3,0xd7,0x33,0xfb,0x58,0x64,0xfc,0xde,0xd7,0xbf,0x9e,0xdb,0xcc,0x7a,0x35,0xac,0xdf,0x13,0x08,0xbc,0x0a,0x55,0x82,0x5f,0xc3,0x74,0xc5,0xb2,0xdb,0x89,0xdc,0x9c,0x60,0xfa,0x02,0x1c,0xba,0x5b,0x7e,0x0f,0xb1,0x0f,0xad,0x43,0xe1 +.byte 0xe1,0xbe,0x1e,0x06,0x05,0x0f,0x39,0x80,0x3d,0x7d,0xbe,0x8f,0x38,0x25,0x46,0x5e,0xea,0x47,0x36,0x65,0x4c,0x3c,0x6c,0xd6,0xaa,0x46,0xaa,0xb0,0x95,0x1d,0xff,0x67,0x6c,0x70,0x9d,0xec,0x3d,0x3d,0x4c,0x2f,0xd9,0x2b,0xb0,0xbd,0x8c,0x6a,0xca,0xac,0x0c,0x53,0xa1,0xda,0xd8,0xc1,0x3c,0xaa,0xcc,0x50,0x85,0x41,0xa1,0xa7,0xe9,0x7f +.byte 0xf7,0xa8,0x28,0xb1,0x5f,0xd6,0x77,0xc9,0xb5,0xae,0x33,0xa7,0x2d,0x16,0xe0,0x13,0xe8,0xd4,0xf9,0x4e,0x62,0x2e,0xc2,0x9a,0xf3,0x83,0xe0,0x45,0x43,0x68,0x40,0x5a,0x56,0xf3,0x31,0xc8,0x5b,0x46,0x0b,0x38,0x1f,0xa5,0xff,0xe6,0xa1,0x81,0xc0,0x91,0xe5,0x5a,0x63,0x8f,0x47,0x9a,0xe7,0x26,0x0d,0x78,0x8d,0x11,0x7d,0xc8,0xd4,0x9f +.byte 0xc1,0xf7,0x8f,0x93,0xfa,0x2f,0xb5,0xfd,0x6d,0xa4,0x34,0xcf,0x3c,0x6c,0xf6,0x64,0xae,0x5c,0x60,0xa2,0xb4,0xcc,0x18,0x3e,0x08,0x8e,0x36,0x88,0xab,0xc3,0xea,0x53,0x4f,0x1c,0x9e,0xe6,0xef,0x2d,0x9c,0x78,0x4a,0x3a,0x5a,0x60,0x8e,0xf7,0xeb,0x0b,0x36,0xb1,0xbb,0x59,0xe2,0x5e,0x64,0x60,0xe5,0xd6,0x3d,0x2a,0xe1,0x1b,0x03,0x40 +.byte 0x8d,0xde,0x2e,0xd0,0x76,0x0a,0x6b,0x63,0x2a,0x53,0x2d,0x39,0xe0,0x53,0xee,0x7d,0xc4,0x8a,0x39,0xc5,0xda,0xfc,0x31,0x7e,0xa2,0x1b,0x11,0x1d,0x8a,0x8e,0x66,0xf4,0x00,0x17,0xd3,0x78,0x1b,0x94,0xad,0xcf,0xdd,0x56,0xce,0xaf,0xf6,0x34,0xe4,0xb6,0x47,0xe0,0xda,0x1b,0x36,0x4f,0x86,0x26,0xc1,0x65,0xec,0x85,0x8c,0xa9,0xfe,0x96 +.byte 0x75,0x0d,0xe3,0xeb,0x9a,0xa6,0x3f,0xb3,0x10,0x03,0x85,0x24,0xf2,0xb5,0xcd,0x69,0x7d,0xba,0xa2,0x5c,0x8a,0x6d,0x45,0xf4,0xc8,0x4f,0x69,0x8e,0xd4,0x69,0x82,0x42,0xfd,0x00,0x59,0xfd,0x20,0x7a,0x63,0x58,0x56,0x30,0x21,0x73,0xbd,0xd4,0x49,0x84,0x3f,0x51,0x0e,0xfb,0xd3,0xfc,0x93,0x17,0x7f,0x23,0x75,0x25,0xea,0x78,0x79,0xf7 +.byte 0xec,0x22,0xef,0x86,0x91,0x0a,0x90,0x10,0x71,0x3b,0xb8,0x8e,0xb7,0xc9,0xd1,0x26,0x98,0x7d,0x1a,0xab,0x74,0x3e,0x5f,0x10,0xa8,0x47,0xdf,0xc9,0x0a,0x03,0xbb,0xe2,0xbb,0x34,0xbe,0x87,0x1a,0x3e,0x13,0x4b,0xd5,0xdd,0x53,0xb7,0x65,0xb4,0x16,0x38,0xd3,0xfd,0x01,0xde,0xe8,0xba,0x1d,0x33,0x5b,0x7b,0x9b,0x9f,0xfb,0xe7,0x8d,0x82 +.byte 0x21,0x78,0x9e,0xb2,0xf5,0x16,0x37,0x88,0x47,0x9d,0x1a,0x2c,0xfe,0x6a,0xac,0xde,0x3e,0xc4,0xa8,0xed,0x64,0x46,0xdd,0x05,0x07,0x60,0xef,0x99,0x96,0xf0,0x84,0x27,0x38,0x58,0xe5,0xc0,0x53,0x7d,0x07,0xe3,0xa5,0x31,0xb5,0x8a,0xe7,0x50,0x94,0xbb,0x29,0xf9,0x58,0x13,0x91,0x5b,0x54,0x77,0xf6,0x91,0xb8,0x75,0x05,0x3d,0x70,0x3e +.byte 0x07,0x95,0x7d,0x37,0xbd,0x1d,0x29,0x4d,0x33,0x07,0x13,0x2b,0x54,0x70,0x9c,0x31,0xf1,0xcd,0x2d,0x28,0x09,0x43,0x90,0x24,0x8c,0x82,0xb0,0x08,0x71,0x08,0x97,0x7e,0x1a,0xbc,0x82,0xd8,0x31,0x0a,0x13,0xe9,0x22,0xf0,0x8d,0x2b,0x91,0xe5,0x2e,0x34,0x56,0x97,0x86,0xc9,0xbd,0x45,0x1e,0x32,0x03,0xcb,0xa1,0x29,0x00,0x81,0xd4,0x6e +.byte 0x5d,0xbc,0x0f,0x01,0x8d,0x5c,0xb9,0x80,0xcc,0xfe,0x0d,0xa3,0xef,0x8e,0x85,0x59,0x37,0xf7,0x64,0xa7,0xe5,0x2a,0xd5,0x44,0xee,0x91,0xcf,0x6c,0xf5,0x0a,0x9b,0xc7,0xdf,0xb6,0x02,0x2d,0xa4,0xf1,0x22,0x2a,0x97,0xfe,0x1d,0xb7,0x4c,0xc7,0x4f,0x2f,0x0b,0x38,0xd2,0xbf,0xfe,0xe3,0x94,0x55,0xae,0x85,0x0c,0x34,0x59,0x67,0x23,0x7b +.byte 0x4a,0x87,0xd9,0xd2,0xca,0xd5,0x38,0xd2,0x9d,0x05,0x2e,0xd8,0xe3,0x26,0x51,0xa4,0x14,0x66,0xfb,0x38,0x40,0x18,0x3b,0xda,0x43,0x85,0xc9,0xf5,0xf4,0xe7,0x22,0x82,0x45,0xa1,0xdf,0x98,0xa0,0xab,0x5f,0x7a,0x50,0x84,0x75,0x7a,0x70,0xa6,0x3b,0x04,0x20,0xed,0xa8,0x68,0x6d,0x3f,0x43,0xf8,0xb8,0xac,0xc7,0x32,0xa0,0xff,0x47,0xd5 +.byte 0xb3,0x92,0x6a,0x15,0x5a,0xf1,0x7c,0x32,0x30,0xda,0x1e,0x5d,0xab,0xcc,0xd0,0x3a,0xdc,0xcf,0x70,0xd8,0x4d,0xa3,0x50,0xac,0x50,0x42,0x53,0xc6,0xe0,0x3a,0x26,0xdc,0x77,0x30,0x31,0x59,0xa1,0xfc,0x4d,0x48,0x00,0x0d,0xe0,0x66,0xb3,0x9b,0xd3,0x38,0x45,0xbb,0x0c,0x57,0xc5,0x78,0xee,0x8c,0x96,0xea,0xa2,0x16,0xa3,0x12,0xb1,0x06 +.byte 0xd0,0x2a,0x70,0xf7,0xce,0x42,0xae,0x17,0x64,0xbf,0x13,0xa0,0xe9,0x62,0x57,0x1d,0x55,0x78,0xfa,0x72,0x19,0x58,0x15,0xea,0xe5,0xdf,0x72,0x0e,0xc6,0xd3,0xb4,0x3d,0x60,0xee,0x32,0x2a,0xce,0xdc,0xad,0xd0,0x34,0xe6,0xb4,0xcf,0xce,0x5a,0x4a,0x9f,0xaf,0x01,0xb3,0x2a,0xed,0x46,0xa0,0xad,0xaa,0x62,0x8b,0xa4,0xf7,0x4b,0xce,0x32 +.byte 0x35,0x29,0x1e,0x7a,0xda,0x74,0xf8,0xe5,0xda,0x52,0x66,0xaf,0x3d,0x1a,0xff,0x42,0xc0,0xcc,0xb1,0x32,0x36,0x10,0x44,0x34,0x6a,0x16,0xc2,0x5b,0x9a,0x35,0x3f,0xd2,0x29,0xc5,0x76,0x3c,0x24,0xc7,0x2b,0x92,0xae,0xe0,0xe2,0x04,0x6c,0x3b,0x97,0xda,0xfd,0x49,0x43,0x6d,0x35,0xf5,0xc3,0xc1,0x93,0xf8,0x2f,0x25,0xef,0x3e,0xd8,0xf2 +.byte 0xc0,0xb3,0xb5,0x71,0x01,0xe0,0x07,0x11,0xd5,0xf1,0xd3,0x54,0x59,0x93,0x77,0x2e,0x77,0xdc,0x57,0xd7,0x9b,0x0a,0xe2,0xde,0x29,0x04,0x81,0xa1,0x81,0x6f,0x94,0x86,0x39,0xd7,0x29,0x69,0x3f,0xfa,0xe4,0x02,0x01,0x85,0x04,0x21,0xd3,0x17,0xf5,0x68,0x85,0x6e,0x74,0x15,0x56,0xe6,0x5e,0x12,0x1c,0x0d,0x2f,0x7a,0x8d,0xe1,0xc8,0x47 +.byte 0x7b,0xdc,0x35,0x64,0xf1,0x00,0xc0,0x7b,0xd8,0x2c,0x8c,0x60,0x10,0x53,0x11,0x2c,0x5c,0xa2,0xb6,0x05,0xa3,0xcd,0x14,0xb6,0xd0,0x36,0xe9,0x74,0x78,0xc3,0x84,0x6b,0x51,0xa9,0xf9,0xf1,0x05,0xe2,0xd4,0xa3,0x57,0xec,0xb1,0x5e,0xd5,0x75,0x64,0xe3,0xb0,0xf9,0x8f,0x88,0x60,0xdf,0x8e,0x75,0xf9,0x32,0xfc,0x58,0x5b,0x4b,0x17,0xdb +.byte 0x41,0x04,0x6f,0x17,0x7a,0xf8,0xd0,0x47,0x8e,0xeb,0xd1,0xf9,0xa6,0xa8,0x52,0x7e,0x07,0x6b,0x5b,0x4d,0xb9,0xda,0x91,0x40,0x51,0x25,0x67,0x4b,0xf1,0x95,0x12,0x07,0xa9,0xa5,0x33,0x96,0x92,0x5e,0xb4,0x0e,0xf0,0x85,0x2e,0x70,0xd8,0xaf,0xae,0x9a,0x3d,0x0c,0xb0,0xee,0xe1,0x80,0x5a,0xb9,0x17,0xe6,0x00,0xa8,0x82,0xd0,0x9b,0xf5 +.byte 0xe3,0xa0,0x12,0xc4,0x15,0xd6,0x5e,0x57,0x5c,0xd2,0xb9,0xa7,0x8e,0xfd,0x09,0xc3,0xd2,0x66,0xfd,0x86,0xb4,0xdc,0xa3,0xc2,0xfe,0x16,0x86,0xc4,0x98,0xa3,0x2e,0x4c,0xc9,0x2c,0xd6,0x87,0x83,0x1b,0x6f,0xe2,0x44,0xd6,0x72,0x94,0x1d,0xba,0xaf,0x34,0x1f,0xf2,0x40,0x40,0x33,0x24,0x63,0xc1,0x26,0xef,0xbc,0x0f,0x3b,0x3c,0x65,0x2b +.byte 0xa7,0xc7,0xdf,0x96,0x67,0xab,0x92,0x0e,0x04,0x8c,0x82,0x9e,0xbe,0x52,0x61,0x40,0xdf,0x77,0x00,0xc5,0x01,0x9a,0xe9,0xde,0xe1,0xe2,0x45,0xb8,0xed,0x94,0xd5,0xf0,0x28,0x29,0xef,0x0d,0x91,0x07,0x9b,0xfe,0x69,0x78,0x26,0xd7,0xf9,0x51,0xf1,0x9c,0xf2,0xbb,0x83,0x2d,0x79,0x1e,0xff,0x97,0x13,0xdc,0x28,0x93,0x26,0x7c,0x54,0x52 +.byte 0xc0,0x92,0xeb,0x4a,0xa2,0xe3,0x01,0xfc,0x07,0xb9,0x26,0x11,0x03,0xe0,0x19,0xa8,0x9c,0xff,0x3a,0x95,0x26,0x3a,0x17,0xf1,0x7d,0x6a,0x6a,0xb2,0xb5,0x5a,0x07,0x43,0x2b,0xb7,0xdd,0x19,0x14,0xe0,0x05,0x91,0xc5,0xee,0x49,0x35,0x7b,0x1a,0x2d,0x34,0xda,0xa2,0x45,0x7e,0x0d,0x64,0x98,0xb6,0x2e,0x47,0xaa,0x6c,0x73,0x66,0x55,0x01 +.byte 0x27,0xb0,0xa9,0x13,0xa6,0xe0,0x74,0x38,0xb3,0x97,0xfe,0xaf,0xdc,0xc0,0x6a,0x4f,0xd8,0xdb,0x07,0x62,0x61,0x05,0xbb,0xa0,0xa8,0xc5,0xb3,0x89,0x13,0xbb,0x09,0x01,0x6f,0x09,0xcb,0x47,0x62,0x46,0xf0,0x4b,0xf0,0xb7,0x7c,0x39,0x8d,0xe5,0x7b,0x64,0x49,0x32,0x93,0x1e,0x94,0x0a,0x98,0xe0,0xca,0xc6,0x67,0x5b,0xdf,0x88,0x0a,0x26 +.byte 0x83,0x77,0xc3,0xd0,0x11,0x66,0x3d,0x25,0x91,0x61,0x80,0xfc,0x9c,0x50,0xfb,0xe8,0x81,0x6f,0xd8,0xfa,0x77,0x78,0x4c,0x2b,0x44,0xd0,0x92,0x52,0xa4,0x50,0x50,0x7e,0xa2,0xb9,0xe7,0x79,0x33,0x95,0xfe,0x29,0x1c,0x1d,0x43,0x9d,0xa7,0x12,0xfe,0xa1,0x45,0xf4,0xd9,0x1c,0x7e,0x5a,0x67,0x99,0x7f,0x22,0x7c,0xa3,0xb1,0x2d,0xb7,0x1d +.byte 0x6b,0xf6,0xb4,0x94,0xf2,0xd1,0x5c,0x28,0x56,0xe9,0x4f,0x21,0x81,0x96,0x37,0x7c,0x25,0x74,0x0f,0xf9,0xc5,0xf5,0xc6,0xe8,0x8f,0xbb,0xfb,0xe4,0xaf,0x23,0xac,0x4c,0x20,0x35,0x7d,0xb4,0x4a,0xde,0x90,0xec,0x16,0x30,0x95,0x1b,0x79,0xf6,0x77,0xfe,0x80,0x10,0xba,0xd2,0x49,0xda,0xca,0x9e,0x6b,0x63,0x2f,0x24,0x38,0xf9,0xee,0x20 +.byte 0x38,0x5c,0xeb,0xf5,0xbc,0x07,0x7a,0xeb,0xde,0xc4,0x97,0xcf,0x48,0x9b,0x80,0x40,0xfa,0x81,0xf5,0x24,0xa7,0xf3,0xf7,0x16,0xe9,0xba,0xae,0x9f,0xde,0xa1,0x00,0x34,0x74,0x36,0x9f,0x47,0xce,0xcf,0x35,0xdb,0x30,0x7e,0x72,0x81,0xc5,0xe1,0x59,0x07,0x3e,0xc7,0x5b,0x7b,0xd3,0xc6,0xeb,0x4e,0x71,0x9c,0xeb,0x41,0x37,0xd9,0x9e,0x34 +.byte 0x0b,0xc1,0x9c,0xf7,0xfd,0x56,0xb0,0xd6,0xa6,0xe4,0x1d,0xdf,0x43,0xc6,0xf3,0x26,0x0f,0x01,0x07,0x29,0x57,0x9c,0x8f,0xe1,0x31,0xc9,0xa6,0x98,0x0f,0x0e,0x27,0xfd,0xa0,0x59,0xdf,0x92,0x7b,0x0a,0x4c,0x42,0x4b,0x03,0x98,0x2a,0xea,0xcb,0xd8,0x0f,0x6d,0x19,0x0b,0x22,0x69,0x8b,0xaa,0x3b,0xc8,0x41,0x66,0x81,0xc3,0xaa,0x64,0x6d +.byte 0x44,0xdd,0xb9,0xe2,0xc4,0x47,0x6d,0xdf,0x61,0xe0,0xf3,0x26,0x40,0x23,0x2f,0xf9,0x2a,0xb3,0xfa,0xe2,0xe8,0x36,0xc0,0xd9,0x89,0xb0,0x05,0x47,0x36,0x20,0x3b,0x03,0x0c,0xd1,0x46,0x9b,0xc9,0x65,0xfa,0x14,0xba,0x68,0x49,0xfc,0x2a,0xb9,0x04,0x47,0xbb,0x64,0xe1,0x7f,0x5a,0xd3,0x70,0x19,0x0f,0x14,0x09,0xc0,0xbe,0xc3,0x9b,0x2f +.byte 0xd1,0x05,0x90,0x56,0x09,0x47,0xb3,0xc5,0x08,0x6f,0x89,0x59,0x8c,0xf3,0xd4,0x1c,0xaf,0x68,0x00,0x32,0x58,0xe2,0x66,0x55,0xe2,0xc3,0x46,0x73,0xfd,0x4b,0x63,0xc5,0xdd,0x48,0xa8,0x14,0xe9,0x07,0x94,0x8f,0x51,0x6e,0x2d,0x7c,0x62,0x97,0x73,0xa5,0x42,0x7d,0xad,0x43,0xcb,0x65,0x56,0xf0,0x23,0x28,0x72,0xdb,0x1f,0xcf,0x34,0x9a +.byte 0x62,0x06,0x8d,0xc9,0x86,0x40,0x6d,0xee,0x58,0x72,0x02,0xbb,0xce,0x33,0x6a,0xe4,0xcb,0x46,0x25,0xda,0x2f,0x8d,0xc9,0x8e,0xfe,0xcf,0xbb,0xfc,0xb0,0xe8,0xec,0xf2,0xf9,0xff,0x5d,0x70,0x9e,0x2e,0x22,0x0e,0x9a,0x4d,0xb8,0x26,0x7a,0x48,0x3f,0xba,0x5c,0xcd,0x10,0xf4,0x6d,0x89,0x3d,0x5d,0x87,0xd4,0x69,0xb8,0x4a,0x20,0xc6,0xf8 +.byte 0x03,0x6c,0x60,0x1e,0x9c,0xc6,0xe3,0x39,0x9b,0xa1,0x16,0x64,0xed,0xc6,0xd7,0x54,0xfd,0x8d,0xa0,0x2f,0xcf,0xc6,0xde,0x43,0xe4,0xc5,0xb7,0xd6,0x00,0xaf,0x95,0x7a,0xc6,0xde,0x26,0x59,0x39,0xb0,0x12,0x6b,0xe1,0x3c,0xa9,0x09,0xb6,0x15,0xb0,0x62,0xad,0xa9,0x11,0x4f,0x86,0xde,0xc6,0xe8,0x32,0x46,0x78,0xeb,0x60,0x81,0x6b,0x8f +.byte 0xac,0x80,0xbf,0xa4,0xc4,0xb7,0x5f,0x3b,0x2f,0xf8,0xe4,0x05,0xcf,0xbf,0xa3,0x14,0x6f,0x16,0xbc,0x6c,0x4e,0x31,0xd7,0x79,0x09,0xcf,0x9c,0x58,0xa3,0x0b,0x1a,0x31,0x4b,0xda,0xcb,0x11,0x35,0xb1,0xf5,0xbb,0xfb,0x00,0x46,0x6d,0x70,0x5e,0x4a,0x85,0x19,0xdf,0xb5,0xd0,0x03,0x2e,0x5d,0x01,0x95,0x4e,0x5a,0x59,0x99,0x24,0xac,0x3f +.byte 0x2d,0x64,0xaf,0xef,0x40,0x16,0x2a,0xcc,0x6a,0x6c,0x0f,0xe3,0x45,0x15,0x74,0x3d,0xea,0xdb,0xa7,0x3f,0xd2,0x50,0x4d,0xc7,0xc6,0x19,0x36,0x84,0xf4,0xbd,0x09,0xff,0xe7,0xf3,0xc0,0xa5,0x34,0x49,0x8a,0xfe,0x83,0xcd,0xe4,0x80,0x7d,0xe3,0xff,0xc9,0x8a,0xb9,0xd6,0x34,0x01,0xd1,0x47,0x16,0x5e,0x7c,0x16,0xf5,0x7c,0xf8,0xb5,0x53 +.byte 0x26,0x84,0x89,0x73,0xf3,0x7f,0x9c,0xb0,0x2f,0x07,0x9e,0xf2,0x12,0xdf,0xba,0xc0,0x15,0xd0,0x3a,0x59,0x9d,0xde,0x67,0x5e,0x1c,0x2b,0x4b,0x84,0xb8,0x89,0xfb,0x62,0x90,0xe9,0x89,0xd9,0xdb,0xb7,0x21,0x4a,0x9f,0xbd,0xc0,0x02,0x01,0xda,0xb3,0x4c,0x9d,0xfb,0x46,0xa1,0xd0,0x3c,0xf5,0x27,0x6f,0x70,0xb5,0xa9,0x74,0xdc,0xa0,0x76 +.byte 0xb7,0x3a,0x53,0x18,0xdd,0x80,0x5e,0x43,0xb5,0x35,0xe4,0x0e,0x26,0x27,0x0a,0xab,0xe8,0x4d,0x2e,0x89,0x20,0xc3,0xff,0xe4,0x7f,0x03,0x2c,0x5f,0x25,0xc7,0x70,0x53,0x27,0x4c,0xc8,0xb9,0xb1,0x81,0x10,0x7a,0xa2,0x65,0xe4,0x0b,0x65,0x8e,0x3d,0x2f,0x96,0xa0,0xa5,0x7b,0x4f,0x09,0xe9,0x9d,0x10,0x06,0xf7,0x18,0xad,0x2d,0x7f,0xb8 +.byte 0x8f,0x08,0xa7,0x2c,0xda,0x82,0xbe,0x5c,0xd6,0x1d,0xb6,0xe2,0x9b,0xa2,0xfc,0x18,0x8c,0x8d,0xf7,0x81,0xf4,0xc6,0x1e,0xcb,0xe5,0x73,0xa6,0x74,0x06,0x20,0xf3,0xa9,0xcb,0x80,0x01,0x55,0x7e,0xc0,0x6a,0x1f,0x5a,0x5b,0xb1,0x56,0x5d,0xd8,0x2a,0xd5,0xf5,0x57,0xe8,0x48,0x6c,0xfb,0x9e,0x93,0xa7,0x0e,0x13,0x2b,0x68,0xc5,0x6b,0x17 +.byte 0x43,0xb0,0x58,0x04,0x65,0x3d,0x46,0x57,0xa7,0x3d,0x99,0xb8,0xa1,0x48,0x17,0x44,0x67,0x2a,0x0d,0x44,0x87,0x9f,0x63,0xd7,0x92,0x56,0x7b,0xab,0xd3,0x6a,0xbd,0x4f,0xc0,0xc3,0xd2,0xee,0xd1,0x3d,0xd1,0x18,0x2e,0x6a,0xf5,0x3b,0x67,0xa0,0x0a,0xf3,0x11,0x49,0xc5,0x4b,0xef,0xcf,0x00,0xfd,0x22,0x8f,0xa0,0x9c,0x99,0x32,0x2f,0x58 +.byte 0xf9,0x97,0x98,0x13,0x4a,0x88,0x50,0xcc,0x58,0x1e,0x27,0x02,0x34,0x7d,0xec,0xf6,0x88,0x3a,0x74,0xb5,0x34,0x6d,0x6f,0x52,0x2d,0x20,0x02,0x70,0x22,0x27,0xdf,0x7a,0xff,0x30,0x36,0x66,0x1a,0xa0,0x51,0xc3,0x75,0x9a,0x06,0xe5,0x3f,0x6c,0x74,0x0d,0x15,0xa2,0xb6,0xe5,0xcd,0x55,0x4d,0xea,0x65,0x8f,0xbb,0xb2,0xd4,0x95,0x73,0xa4 +.byte 0xcd,0xb9,0xc8,0x82,0x60,0x49,0xe9,0x36,0xc9,0xb1,0xe9,0xcb,0x52,0xae,0xa7,0x7a,0x64,0xab,0x75,0x84,0x03,0x4b,0x37,0xf7,0x07,0x75,0xf7,0x1c,0x32,0x19,0xb6,0x8b,0xca,0x7c,0x43,0x15,0xe8,0xec,0x57,0x89,0x1d,0xe2,0xa0,0x80,0xc5,0xb6,0x02,0x29,0xfd,0xda,0xe0,0x14,0x93,0xb4,0xb3,0x44,0x2e,0x17,0x2f,0xed,0x3b,0x38,0x6e,0x8f +.byte 0xe0,0x3d,0xc6,0x77,0xe9,0xa7,0x76,0xcb,0x98,0x2d,0x08,0x61,0xcf,0x1b,0x25,0x3f,0xfb,0x1d,0x99,0xb1,0x5a,0x3c,0x53,0x96,0x4e,0x09,0x11,0xf6,0x5b,0x09,0x31,0xe1,0xad,0xb0,0xaf,0x7b,0xec,0xf9,0xa8,0x68,0xb7,0x93,0x57,0xf7,0x17,0x77,0x87,0x2b,0xdb,0x00,0x28,0xc6,0x48,0xac,0xff,0xcd,0x26,0x4a,0x8a,0x76,0x9a,0x2a,0x1d,0x37 +.byte 0x4c,0x70,0x4f,0xf6,0x52,0xe3,0x7a,0x78,0x94,0x5b,0x0b,0x50,0xb4,0x48,0x03,0xcd,0x78,0xd0,0x5d,0x89,0x6d,0x76,0xaf,0x9d,0x67,0xc3,0x75,0x6f,0x6a,0x2d,0xe2,0xb7,0x58,0x51,0x10,0x0d,0xef,0xa0,0x1a,0x74,0x28,0x3a,0x97,0x19,0x4f,0x3c,0x8a,0x86,0x3d,0xe4,0x66,0x3d,0x57,0xb4,0x66,0xb3,0x0b,0x4f,0x57,0x57,0x34,0x2e,0xc7,0x0c +.byte 0x11,0xdf,0x3c,0xb4,0x9f,0xe1,0xd5,0x27,0x41,0x08,0xec,0xca,0x18,0x88,0x48,0x5e,0x88,0x55,0x89,0x71,0xe6,0xa5,0x90,0x7c,0x3b,0xe5,0xf3,0x2a,0xd7,0xf5,0x0b,0x3d,0xbb,0x47,0xad,0xd7,0x78,0x41,0xa8,0xef,0xd4,0x36,0x31,0xd1,0xe4,0x9c,0x87,0x9e,0xb1,0x11,0x0e,0xff,0x8f,0x4d,0x79,0x65,0xc4,0x83,0x75,0x33,0xc9,0x89,0xe2,0xc3 +.byte 0x41,0x68,0x11,0xe7,0xe4,0x58,0xb9,0xf1,0xee,0x06,0x48,0x4d,0xc3,0xc7,0x76,0x60,0x42,0x94,0x8f,0x0d,0xb9,0x53,0x46,0x78,0x06,0x97,0x94,0x36,0xf4,0x3e,0xf3,0xdd,0x5b,0x46,0xe1,0x9d,0x3f,0x9e,0x78,0x00,0x9e,0xe7,0xcb,0x9e,0xc8,0x30,0x87,0x4a,0x52,0x91,0xd5,0xe2,0xa3,0x65,0x98,0xb2,0xc9,0x6c,0xfb,0x4e,0x54,0x5a,0x9f,0x57 +.byte 0x2c,0x4a,0x76,0xe4,0x97,0x88,0xd5,0x6a,0x0e,0x6c,0x7c,0xef,0x78,0x2a,0x7c,0x26,0xa3,0x25,0xf6,0x33,0x82,0x46,0x6d,0x91,0x0d,0xe4,0x83,0xec,0xf1,0x24,0xf8,0x0a,0x34,0xec,0xfc,0x7e,0x47,0xda,0x9a,0x17,0x1b,0x33,0xd0,0xf1,0x70,0xe4,0x0b,0xc7,0x70,0x58,0x1d,0x76,0x20,0x89,0xce,0x4f,0xd1,0xcb,0x3b,0x26,0xd1,0x98,0xd9,0x51 +.byte 0xb1,0xd0,0xaa,0x4a,0xd5,0x10,0xf2,0xae,0xaa,0x14,0xa7,0x72,0x99,0x3d,0xc8,0xbf,0xfb,0xec,0x6a,0x14,0xdd,0x97,0x7b,0x2f,0x16,0x96,0x0f,0x41,0xb8,0x33,0x15,0x1b,0xa2,0x6a,0x7e,0x64,0x0d,0xab,0xe7,0x62,0xf5,0x6c,0x56,0x69,0x09,0x46,0x32,0x24,0x60,0x4e,0x21,0xc7,0x5b,0xee,0x0a,0xe2,0x94,0x7c,0x20,0xe2,0x06,0xa0,0xa2,0x36 +.byte 0xa0,0x7d,0xb5,0x37,0x2a,0xee,0x20,0x25,0x4c,0xba,0x9a,0x06,0x4c,0x07,0x9b,0xea,0x55,0xac,0x2a,0xf7,0xb9,0x5c,0x23,0xac,0x43,0xda,0x9d,0xad,0x76,0xe2,0x5f,0xe0,0x27,0xaf,0x0a,0x5e,0x3d,0x54,0x84,0xfc,0x19,0x75,0x8c,0x62,0x4d,0x37,0x17,0x1a,0x90,0x55,0xb8,0x7e,0xa1,0xad,0x31,0x1a,0xc0,0x91,0x96,0x51,0xa9,0x5f,0xbb,0xb9 +.byte 0x95,0xbf,0xe2,0xd5,0x7e,0x31,0xba,0xc4,0x1e,0x63,0x98,0xd3,0xe2,0x7d,0x87,0xa5,0x46,0xe3,0xae,0xe1,0xe8,0x4e,0x74,0x29,0x0e,0x4b,0x10,0xa8,0x7f,0x3a,0xe5,0x60,0x0f,0x49,0x6a,0xcd,0x3d,0x5a,0x8e,0xf1,0x48,0xd0,0x80,0x7b,0xa3,0x7f,0x06,0x47,0x2b,0x60,0xf2,0x17,0xc3,0xe1,0x26,0x1e,0xb7,0x0f,0x2b,0x7c,0xc7,0xb8,0x3a,0x4f +.byte 0xad,0x05,0x97,0x88,0x93,0x82,0x8e,0x06,0x77,0x44,0xd1,0x65,0xfd,0x18,0x48,0xd6,0x88,0xcd,0x5c,0xbd,0xe4,0xaa,0xea,0xf1,0xed,0x16,0x5f,0xb3,0x58,0xe2,0x69,0x82,0xbe,0x9e,0xfc,0xcb,0xf6,0x17,0xa9,0x70,0xeb,0x08,0xd7,0x06,0x86,0xf6,0x5a,0x43,0x68,0x7b,0xcf,0xa3,0xfa,0x26,0x5e,0xe5,0x42,0xd3,0x5a,0xc8,0x1c,0x3b,0x8d,0x2d +.byte 0xf1,0x45,0xb0,0x97,0x90,0x0b,0xe7,0x2d,0xab,0xd7,0xd8,0x8a,0x16,0xf9,0x5f,0xa6,0xcf,0xc5,0x60,0x2c,0x34,0x5a,0x2e,0x2b,0xb9,0xb4,0x9c,0xa7,0x09,0x77,0xd2,0x3f,0x8c,0xf3,0xf6,0xf7,0xe0,0x27,0x79,0xc3,0x4e,0x61,0x7d,0x09,0x50,0x05,0x01,0x35,0x1b,0x33,0x54,0x6f,0x90,0x9a,0x19,0xcd,0x86,0x45,0x23,0xcd,0x6f,0x1b,0x62,0xc5 +.byte 0xce,0x4e,0x8e,0xff,0xe7,0x12,0x32,0x85,0x9a,0xc4,0x11,0x83,0xcf,0x78,0xd7,0x41,0x99,0x64,0x20,0xa6,0x69,0xdd,0xe3,0x53,0x98,0x6b,0xc7,0x98,0x51,0xc5,0xf8,0x3e,0xa3,0x5f,0x0d,0x78,0x2f,0xa7,0x05,0xff,0xe5,0x3a,0x0f,0x7c,0x09,0x58,0x3f,0xaa,0x0d,0x9a,0x9d,0x8d,0xe7,0xbf,0x6b,0x7d,0xfe,0x3a,0x4f,0x5c,0x50,0xb2,0xe7,0xc5 +.byte 0xa5,0x13,0xde,0xc8,0xe8,0x59,0xac,0xb0,0xdd,0xc0,0x81,0xa7,0x0b,0x78,0x32,0x23,0x76,0x85,0x11,0xef,0xe3,0x88,0x6f,0x7f,0xa9,0x09,0x7b,0x0c,0x6f,0x34,0xb2,0x67,0x5e,0xd6,0x11,0xad,0xd7,0x3b,0xf2,0xbb,0x66,0x5b,0xde,0x22,0xfc,0x55,0x26,0xa1,0x89,0x80,0x2e,0xb8,0xf3,0x3c,0xf8,0x1e,0xba,0x99,0x1c,0x24,0x33,0xb4,0xe6,0x17 +.byte 0x2b,0x9c,0x80,0xe5,0x9b,0x58,0x54,0x70,0xcd,0x15,0x81,0xcd,0x51,0x48,0x75,0x24,0x27,0xf5,0x30,0x79,0xc1,0x16,0xff,0x89,0x70,0x12,0x74,0x07,0x9d,0x39,0xf2,0x9c,0xc6,0x89,0x8d,0x94,0x41,0x01,0x04,0xf5,0x16,0x99,0xf3,0xf0,0xd1,0xf5,0x6d,0xd3,0x11,0x19,0x29,0x36,0xfb,0x41,0xf9,0x32,0xb9,0x0f,0x13,0xaf,0xac,0xfb,0x30,0x75 +.byte 0x62,0x8c,0x04,0x5b,0xf1,0xce,0x52,0x9b,0xbe,0x8c,0xf9,0x86,0x5d,0x7d,0xc1,0x8e,0x41,0x76,0x42,0x63,0xd7,0x74,0x8e,0x2c,0x46,0xa1,0x0a,0x51,0xb5,0xec,0xe9,0x91,0x56,0xbc,0xdc,0x32,0xfc,0x10,0xb5,0xca,0x5b,0x4b,0x72,0x99,0x07,0xff,0x01,0x11,0x2c,0xa4,0x60,0xf5,0x6b,0xd4,0xa8,0x96,0x21,0xee,0xbe,0x14,0x8f,0x69,0x99,0xdc +.byte 0x43,0x7f,0x13,0x3d,0x17,0x1e,0xa3,0x1b,0x21,0x23,0x26,0x7e,0xff,0x80,0x6b,0x66,0x3e,0xb2,0x48,0x1a,0x77,0x3c,0x50,0xe2,0xca,0x4d,0xc6,0xdb,0xfd,0xd1,0x23,0xcc,0xcb,0x01,0x25,0xc0,0x62,0x8d,0xe5,0x9c,0xb7,0x13,0x97,0xf5,0x49,0x01,0x19,0x45,0x45,0x83,0x17,0xff,0x8e,0x94,0x8c,0xb0,0xc0,0xaf,0x46,0x62,0x0e,0x62,0xb7,0x8c +.byte 0xd5,0xcf,0xb9,0x82,0x6e,0x8a,0xb9,0x22,0xbc,0x30,0xf9,0x65,0xc2,0x7f,0xce,0x6b,0x4d,0xad,0x87,0xcb,0x23,0xab,0x57,0x36,0x6a,0xb7,0x8c,0x63,0x17,0x60,0x13,0xa1,0x1f,0x3d,0xa4,0xd4,0xab,0x5d,0x97,0xc7,0x18,0xaf,0xf8,0xae,0x13,0x64,0x2a,0x19,0x34,0xe2,0x28,0x28,0x4f,0x32,0x2a,0xd8,0x43,0x79,0xaf,0x1e,0x56,0xfc,0x97,0x51 +.byte 0x67,0x8c,0x63,0x80,0x32,0x63,0x71,0x5c,0x78,0x00,0xeb,0xfd,0xa2,0x96,0x58,0x21,0x36,0x13,0x02,0xe5,0xa4,0xb7,0xcd,0x5a,0x30,0xa0,0x5b,0x7b,0x23,0xa4,0xcc,0x54,0x64,0x6f,0x6d,0x9b,0xaf,0xea,0x49,0x69,0x9e,0x2f,0x51,0x5c,0xe7,0xa3,0xa3,0xb8,0xac,0xed,0x47,0x23,0x7a,0x37,0x38,0xe3,0x15,0x98,0x6f,0x50,0x6c,0x8d,0xa7,0xe6 +.byte 0xa8,0x39,0xcc,0x63,0x08,0xeb,0x8f,0x8c,0xfd,0x83,0xaa,0x34,0x75,0x19,0xc0,0xf4,0xd6,0x25,0x18,0x94,0x9d,0xa1,0x7e,0xc8,0x6b,0x19,0x76,0xc0,0x8d,0xaf,0x51,0xe5,0x7c,0x8a,0x98,0x17,0x80,0x90,0xc0,0xb6,0xed,0x5c,0x8f,0x33,0x56,0xba,0xce,0xbe,0x83,0x87,0x5d,0x51,0x2e,0x64,0x84,0xa6,0x9d,0x49,0x27,0x5b,0x92,0xe0,0xe7,0xac +.byte 0x37,0x3d,0x22,0x5e,0x25,0xe7,0xca,0x2f,0x5d,0x2f,0xa0,0xd5,0xcb,0xe9,0xac,0x84,0x5b,0x19,0x72,0x1c,0x2c,0x0a,0xd1,0xb7,0x73,0x24,0x8a,0x0f,0xe0,0x07,0xd8,0x49,0x4d,0x23,0x1b,0xac,0xb8,0xd1,0x42,0xd4,0xdf,0xf8,0x4d,0x85,0xa2,0x37,0x30,0x46,0x38,0x88,0x55,0x1d,0xea,0x37,0x54,0x8c,0x43,0xb0,0xed,0x01,0x53,0x75,0xe6,0xf7 +.byte 0x9b,0xe6,0x10,0x91,0x6e,0x80,0x11,0xf9,0x96,0x29,0x4f,0x08,0x77,0x2b,0x7e,0xdb,0x5b,0x14,0xbd,0x77,0x37,0xe8,0x36,0x07,0x4a,0xe4,0xd8,0xa2,0x4e,0x38,0xea,0xeb,0xc2,0xd6,0x43,0x59,0x20,0x0c,0x12,0x31,0x6c,0x27,0xc5,0x7b,0xfc,0xfc,0x54,0x94,0x1d,0x5f,0x82,0x73,0xd7,0x1f,0x43,0x3a,0x73,0xc4,0xf3,0xb3,0xbb,0x53,0xfe,0x22 +.byte 0xc0,0xa4,0x7e,0x2b,0x84,0x1b,0xef,0x6d,0x83,0x9d,0xb3,0x8b,0x2a,0x6c,0xea,0x1e,0xfa,0x77,0x01,0x35,0xd2,0x5b,0xc4,0xd3,0xe7,0x1e,0xca,0x73,0x8b,0xb9,0x1f,0xfb,0x67,0xf2,0xdd,0x03,0xe6,0xca,0xfe,0x3b,0x61,0xd7,0xb5,0x96,0xe0,0x85,0xc2,0x23,0xa7,0xea,0x38,0xbf,0x6e,0x29,0x9e,0x8e,0x18,0xd4,0xbf,0x16,0x73,0xf9,0x18,0xef +.byte 0xc9,0xaf,0x6c,0xe2,0xdc,0xa4,0x58,0x9c,0xf5,0x6d,0x4a,0xc8,0xb4,0x8f,0x16,0x02,0xb7,0x65,0xd3,0x32,0x3b,0x83,0xfe,0xf3,0xc7,0xba,0x68,0xf4,0x95,0xa4,0xf6,0x33,0x57,0x43,0xbe,0xae,0x83,0xa9,0xe4,0x0d,0x0b,0x23,0xaa,0xbc,0x15,0x53,0x18,0x4d,0xb4,0x35,0xe3,0x8e,0x86,0xfe,0xe4,0x98,0x5d,0x63,0x23,0xce,0x44,0xea,0x4d,0x64 +.byte 0x86,0xf8,0x06,0x8f,0xc0,0x73,0xa6,0x6d,0x04,0x53,0x47,0x95,0x0f,0x6d,0x6c,0x01,0x1c,0x3f,0x7b,0x83,0xe4,0xc2,0x40,0xb8,0x97,0x26,0x9e,0x35,0xb0,0x76,0xee,0xe4,0xc7,0xd8,0xaa,0x22,0x83,0x96,0xe1,0x34,0x7b,0x78,0x31,0xee,0xd3,0x9a,0x50,0xd4,0x05,0xfd,0xd6,0x15,0xca,0x83,0x2f,0x49,0xfd,0x00,0x23,0x82,0x39,0xac,0x46,0x7a +.byte 0xe4,0xb5,0xcc,0xee,0xbb,0xaa,0x98,0x82,0xb5,0x27,0x45,0xd5,0x96,0x6e,0x89,0x01,0x1e,0x30,0xe4,0x1c,0x3a,0x65,0xcc,0x9f,0xda,0x38,0xf0,0x4c,0x68,0xfa,0xe5,0xf2,0xe2,0xce,0x34,0xc2,0x15,0xfd,0x21,0xf6,0xe2,0x33,0xbd,0xef,0xfd,0x49,0x15,0xdc,0x38,0x3b,0x24,0xba,0x3a,0x80,0x35,0x60,0xbe,0x50,0x17,0x38,0x3e,0xe2,0x96,0x84 +.byte 0x01,0x41,0x6c,0xb2,0x0b,0xc6,0xff,0xce,0xb3,0x37,0xa2,0x46,0x27,0x33,0x8e,0x04,0x44,0x8a,0x7c,0x64,0x0e,0xbc,0xed,0x74,0x4f,0x40,0x58,0xf4,0x8c,0xf8,0xd9,0x92,0xa9,0x0b,0x18,0x7c,0x93,0x95,0xca,0xa7,0x3e,0x1d,0xad,0x68,0x80,0xd9,0xdb,0x81,0x78,0x50,0x37,0x49,0xbc,0x64,0xc2,0x52,0x5c,0x70,0x7e,0x0a,0x26,0x7e,0xc6,0xbf +.byte 0xd2,0x7f,0x05,0x55,0x7a,0x5a,0x3e,0x9e,0xe3,0x8b,0xf5,0x95,0x2b,0xd8,0xb4,0xb8,0xc6,0x5d,0x91,0xb8,0xc7,0x7c,0xe1,0x75,0xf2,0x43,0x6b,0x73,0xb7,0xb1,0x10,0xf2,0xa7,0x1e,0xab,0xaf,0xc9,0xc0,0x3b,0xab,0xbe,0xf7,0x4a,0x43,0x9c,0xca,0x3d,0x00,0x5b,0x02,0xf8,0xa2,0x4f,0x57,0x81,0xb0,0xde,0x1e,0xd1,0x60,0xbe,0x6c,0x0d,0xe6 +.byte 0xcd,0x51,0xb6,0xc7,0x00,0x52,0x37,0x4f,0xfc,0xee,0xe2,0x43,0x5c,0x61,0x76,0xed,0x80,0x72,0x38,0x26,0x94,0xfe,0x28,0x06,0xfb,0x62,0xa6,0x21,0x9b,0x53,0x60,0x1b,0xf0,0x56,0xae,0xba,0x6b,0x52,0x27,0x2a,0xd5,0xed,0x11,0x92,0xa2,0xe2,0xab,0xdd,0x05,0x38,0x38,0xae,0xeb,0x72,0xcb,0x6c,0xa5,0x2a,0x73,0xc5,0xfc,0xb0,0x36,0x83 +.byte 0xd6,0xe6,0xda,0x6b,0x38,0x72,0x5e,0x8d,0xaf,0x11,0x5f,0x5b,0x89,0x58,0x21,0x36,0xf6,0x7d,0x42,0x48,0xdc,0xce,0xaa,0x94,0xf0,0xc3,0xc5,0x2c,0x08,0x2a,0x36,0x35,0x25,0x95,0xc4,0x11,0x09,0xea,0x7a,0xbc,0x2e,0xc6,0x0a,0x5b,0x4f,0x86,0xeb,0xc2,0x38,0x71,0x48,0x8c,0x63,0x79,0x3b,0xe4,0xba,0x14,0x44,0x31,0x28,0x4f,0x9d,0xb4 +.byte 0x26,0xa6,0x3b,0xea,0x3f,0xcb,0x30,0x6c,0x02,0x13,0xdb,0x4c,0x9c,0x76,0xc8,0xd8,0x01,0x52,0x3d,0x2f,0x51,0x70,0x15,0x91,0xec,0x8f,0x80,0xed,0x88,0xb7,0xfa,0x91,0x2c,0x10,0xcd,0x3b,0x92,0x85,0xe7,0xe8,0x11,0xfa,0x50,0x15,0xe2,0xdf,0xf7,0xbe,0xa4,0x2d,0x13,0x75,0xa6,0x00,0x25,0x8d,0xe1,0xb6,0x9b,0xbb,0x64,0xfb,0x5c,0xde +.byte 0x97,0xcc,0x00,0x51,0xd6,0xac,0x67,0xc3,0x91,0x1e,0x56,0x36,0x2b,0x43,0xed,0x8c,0x67,0x7b,0xf6,0x54,0x6f,0x91,0x44,0x28,0x93,0x60,0xac,0xca,0xb9,0x91,0x7e,0xeb,0x49,0xd8,0xfc,0x12,0x6c,0x40,0x9d,0x0a,0x4d,0xb4,0xab,0xe6,0xad,0x5b,0x8e,0x2d,0x3e,0x53,0xa1,0x88,0xf7,0x41,0x71,0xa7,0xff,0x05,0x46,0x04,0x34,0x1f,0x12,0x89 +.byte 0x92,0xc1,0xf9,0x26,0x16,0x23,0xb6,0x59,0x82,0xdc,0xa7,0xb8,0xa4,0x8a,0x0f,0x1d,0x7d,0x8f,0x44,0xe8,0x4f,0x70,0xbb,0xdb,0x8d,0xe6,0x7e,0x9d,0xd9,0x44,0x10,0x41,0x6c,0x3f,0xb7,0xe8,0x6f,0x39,0x93,0xe1,0xde,0xb8,0x6c,0xba,0x99,0x95,0xb7,0xc8,0xb2,0x2a,0xcd,0x81,0x53,0xc3,0xb5,0x2a,0x8a,0xd6,0x62,0x1e,0x74,0x4d,0xde,0xfa +.byte 0xff,0x7b,0xed,0x11,0x1e,0x44,0x3e,0x93,0x1c,0xae,0x7c,0x5c,0xed,0x52,0x75,0x5e,0x0a,0xf3,0x95,0xce,0x47,0x86,0x1b,0x7f,0x17,0x09,0x12,0xcc,0x08,0xca,0x16,0x11,0xf1,0xa1,0x39,0x78,0x89,0x5c,0x11,0x25,0xc7,0x39,0x5f,0x97,0x74,0xbc,0xa9,0x2a,0x25,0x5d,0xdd,0x93,0x0d,0x8c,0x74,0x07,0x1e,0xd9,0x9f,0xc1,0x38,0x9c,0xbf,0xe0 +.byte 0x42,0xad,0xb2,0xe7,0xb1,0x84,0x82,0xb4,0x56,0xbe,0x3c,0x42,0xb0,0xce,0x2c,0x94,0xb7,0xe6,0x78,0xc8,0x04,0x06,0x58,0x15,0x3e,0xdc,0xf6,0x9a,0x58,0xc3,0xe3,0x85,0x16,0xc8,0x84,0xba,0x8f,0xbc,0x94,0xa7,0x44,0x04,0x29,0xc4,0xd8,0xec,0x63,0xc4,0x47,0x58,0x22,0x02,0x08,0x20,0x44,0x39,0x52,0xa5,0x33,0xfe,0x1c,0x30,0x27,0x92 +.byte 0xbf,0x42,0x44,0x4c,0x3f,0x3d,0x00,0x7b,0x21,0xef,0xbb,0x25,0x75,0x4c,0xb2,0xe7,0x66,0xc9,0xc1,0xfb,0x1e,0x13,0x04,0xd0,0xcb,0x69,0x51,0x9d,0x9a,0xb0,0xb0,0xec,0xb0,0x12,0x24,0x84,0x57,0x9f,0xef,0xb4,0x19,0x50,0xa6,0xf5,0x03,0xa3,0x93,0x0f,0x77,0xaf,0xe0,0x4c,0xa5,0xd3,0xb0,0xd8,0x5e,0xc3,0x78,0x94,0xd5,0x6e,0x48,0x58 +.byte 0x7a,0x93,0xb1,0x62,0x60,0xea,0xa1,0xba,0x7a,0x86,0x6e,0x87,0xe9,0x97,0xe0,0x7c,0x1e,0xb6,0x63,0x94,0x76,0x5f,0x9c,0x95,0x65,0x00,0xd4,0x14,0x0e,0x4c,0x87,0xe7,0xcd,0x9e,0xb1,0xe2,0x13,0x1b,0xb1,0x8a,0x83,0xaa,0xaa,0x34,0xcd,0xb2,0xf6,0x7f,0x12,0xb0,0x79,0xff,0x1e,0x04,0xc8,0x9a,0xfc,0x41,0x88,0xbb,0x28,0x42,0xeb,0x45 +.byte 0x47,0x8b,0xcb,0x57,0x03,0xcd,0xe5,0x9a,0x84,0xea,0x0a,0xb5,0x0c,0xb8,0x30,0x33,0xd6,0xde,0x66,0xa8,0x57,0xf9,0x76,0x4f,0x0f,0x8f,0x53,0x56,0x57,0x91,0xd4,0x55,0xf5,0x78,0xde,0xa6,0xa2,0x59,0xc8,0xb0,0xf2,0xb9,0xfa,0x6d,0x4a,0x70,0x86,0x3d,0x24,0x1b,0xc6,0xb8,0x06,0xf5,0xea,0x09,0x63,0x9b,0x1e,0x61,0x18,0x85,0xba,0x08 +.byte 0x20,0xaa,0x33,0x66,0xcf,0xa7,0xff,0xf5,0x30,0xfe,0xf8,0x39,0xd3,0x88,0x9a,0x5b,0x3f,0x55,0xa6,0x00,0x4c,0x57,0x0d,0xd1,0xa4,0x0c,0xe7,0x8a,0x95,0xd8,0x64,0xc7,0x93,0x51,0x84,0xa6,0x41,0x2c,0xfc,0xb0,0xfb,0x99,0x9a,0xcd,0x2c,0x62,0x3a,0xca,0x43,0x15,0xf2,0x5a,0x22,0x25,0xa4,0x91,0xa3,0x7c,0x42,0x69,0xc1,0x67,0xe3,0xf5 +.byte 0xd4,0x92,0x54,0xbd,0xb3,0x57,0xe5,0x19,0xca,0x1b,0x9c,0x19,0x79,0x9d,0xbf,0x89,0xfc,0xaa,0x72,0xcd,0xcb,0xc5,0xbc,0xdd,0x0c,0x7c,0x31,0x42,0xb0,0xc2,0x76,0xe5,0x8b,0x9b,0x7c,0x92,0x13,0x20,0x5c,0xdc,0x94,0xfc,0xa1,0x90,0x34,0x27,0x88,0x9f,0xe5,0x97,0x5f,0xc3,0xa3,0x83,0xca,0x8b,0xf8,0xac,0x36,0x33,0x47,0xc6,0x20,0x2f +.byte 0x04,0x2d,0x13,0xc1,0x3c,0x07,0x6e,0xf0,0xe2,0x3d,0x32,0x5c,0x50,0x41,0xf2,0x92,0x3f,0x25,0x2c,0x80,0x34,0xa5,0x90,0x2b,0x97,0x6e,0xd1,0xa2,0xa6,0xf4,0x4a,0xe0,0x20,0xd9,0xb9,0x2b,0x66,0xe5,0x06,0x73,0x97,0xfe,0x80,0x70,0x28,0xf9,0xb6,0xae,0x93,0x27,0x7a,0x65,0xff,0x23,0xc1,0x78,0x18,0x92,0xc9,0x0b,0x05,0x82,0x93,0xbc +.byte 0x73,0x3f,0x98,0xe9,0xa0,0x6d,0x20,0x8d,0x13,0xb1,0xf0,0x7e,0xe4,0x07,0x21,0x7d,0x6d,0xea,0x03,0x59,0xf8,0x29,0xc0,0xc8,0x7d,0xce,0xd1,0xf8,0x67,0x82,0x7f,0x84,0xe8,0x77,0xa9,0x9c,0xa2,0x34,0xdf,0xa9,0xac,0xec,0x6d,0x54,0xe5,0x0f,0xcb,0xdb,0x86,0xbc,0x01,0x44,0x91,0x3b,0xc8,0x85,0x4e,0x1d,0xe4,0x74,0x19,0xc6,0x39,0x2e +.byte 0xdf,0xf2,0x8f,0x3a,0x7f,0xe3,0x1e,0x55,0x45,0xcb,0x7e,0xde,0xcd,0xa6,0x1c,0xef,0x20,0xf7,0x07,0x31,0x94,0x9a,0x3d,0x04,0xd7,0x5e,0x65,0x20,0x6a,0x4d,0x31,0x1e,0x6f,0x89,0x40,0x45,0x1f,0x37,0xc1,0x7e,0x07,0xd5,0xa6,0x38,0x4a,0xf1,0x39,0xae,0x72,0x26,0x60,0xb0,0xb5,0xc7,0xd3,0x9a,0xaf,0x57,0x12,0xe9,0x34,0x28,0x8b,0xaf +.byte 0xd8,0x62,0x24,0x58,0xe2,0xcd,0xa2,0x9e,0x74,0x23,0x2d,0x52,0xc7,0x09,0xe5,0xb5,0xf5,0xc1,0xd3,0xa3,0x19,0xe5,0x1d,0x8d,0x0c,0xdf,0x13,0x8d,0xa4,0xa7,0xc1,0x41,0xea,0x9e,0x6d,0x61,0xd4,0xa4,0x74,0xe5,0xf8,0x5f,0x9e,0xfd,0x6d,0xf6,0x6e,0x87,0x0f,0xb5,0xa3,0x82,0xac,0x64,0xb4,0xda,0x07,0x49,0x51,0xc2,0xfd,0xcb,0x55,0xa3 +.byte 0x59,0x34,0xdf,0xa1,0xd6,0x90,0x62,0x43,0x1a,0xf9,0xae,0x85,0x5c,0x11,0x40,0xb2,0xbe,0xa5,0x03,0x04,0x4f,0xec,0x2c,0x58,0x2d,0xe9,0xda,0xcf,0xaa,0x2f,0xcf,0x60,0xc3,0x2c,0x6c,0x81,0x4d,0xf2,0x71,0x41,0xe4,0xae,0x4c,0xfa,0x8e,0x05,0x10,0xff,0x40,0xfa,0xea,0x96,0x78,0x6e,0xfc,0x35,0x35,0xec,0x84,0xf6,0x1d,0x24,0x60,0xcd +.byte 0x96,0x21,0x21,0xa7,0x32,0x90,0x3d,0x51,0x72,0x13,0xa4,0x9b,0x7e,0x94,0x3a,0x9d,0x97,0xf6,0x68,0xd8,0x08,0x42,0x54,0x7a,0xbb,0x9a,0x95,0x83,0xac,0xb8,0xb4,0x68,0xe3,0x31,0xdb,0xe2,0x32,0x8b,0x7d,0x57,0x62,0x1d,0x61,0x81,0xa1,0x36,0x7a,0x25,0x00,0x72,0x24,0x4c,0xa7,0x96,0x3b,0xa5,0x82,0xba,0x8e,0x89,0x1e,0x1b,0x8e,0xf4 +.byte 0xab,0x91,0x85,0x7a,0x32,0x4a,0x47,0x9f,0xce,0xd2,0x51,0x77,0xcd,0xc9,0x02,0x54,0xf2,0x7b,0xcb,0xb8,0x83,0xe0,0xe0,0x1b,0x4a,0xa2,0xe0,0xd9,0x15,0xb6,0x02,0x19,0x75,0xa6,0xba,0xa6,0x98,0xd9,0x61,0x74,0xc6,0x48,0xa5,0x59,0x3d,0xc8,0x47,0xc9,0xe8,0x6b,0xbb,0x6d,0xcf,0x0e,0x8d,0x6b,0x58,0x8b,0x7d,0x4e,0x0b,0x3d,0x67,0xc4 +.byte 0x8e,0x78,0x59,0x40,0x88,0x82,0x33,0x27,0x2c,0xfe,0x2a,0x6c,0xe4,0x80,0xee,0x5a,0xd4,0x5f,0xc8,0xf7,0x82,0x02,0x67,0xfd,0xcb,0x55,0x3e,0xd8,0x41,0xb3,0xce,0x93,0xfe,0xe7,0x56,0xf5,0x63,0xba,0xfa,0x2e,0x79,0xfc,0x11,0x5d,0xb0,0xc6,0x32,0x54,0xed,0x71,0x9b,0x15,0xce,0x62,0x09,0xd4,0x28,0x7f,0x7b,0xa1,0x50,0x5b,0x46,0x24 +.byte 0x0e,0x40,0xa2,0xe2,0x7d,0x93,0xa6,0x2b,0x0b,0x9b,0x40,0x25,0xc9,0xca,0x7a,0x01,0x8b,0x7d,0x68,0xeb,0xd7,0x84,0xc1,0x9d,0xf9,0xfb,0xd0,0x1a,0xec,0xef,0x6b,0x4c,0x78,0x31,0x62,0x8e,0x9d,0xdc,0x78,0x8f,0xcb,0xf8,0xf9,0x41,0xdc,0x9f,0x6d,0x0a,0x27,0x67,0xce,0xbd,0xeb,0x87,0xb3,0x26,0xf3,0x51,0xe1,0xd6,0xd1,0x57,0x46,0xfe +.byte 0x21,0xb9,0x88,0x7c,0xdd,0xa2,0x49,0x71,0x24,0xfb,0xc4,0xc0,0x6a,0x6b,0x05,0x7f,0x80,0xb0,0x09,0x3b,0x9e,0x6c,0x59,0x31,0x3e,0xac,0x7a,0x2e,0x5c,0x04,0x03,0xa3,0x6e,0xf5,0x66,0xee,0xc2,0x9b,0x65,0x88,0x06,0xbf,0xf5,0xe3,0x23,0x73,0x38,0x88,0x99,0xf1,0x64,0x68,0xdf,0x7d,0x04,0x06,0x72,0x92,0x0b,0x62,0x5d,0x12,0x1e,0x4e +.byte 0xff,0x60,0x35,0xe3,0x0f,0xd9,0x8c,0xac,0x38,0x5b,0x91,0xc1,0x51,0xbb,0xa5,0x19,0x7d,0xfb,0x79,0xfa,0x42,0x3b,0xaa,0xf8,0xd3,0x0f,0xc3,0xf2,0xb2,0x68,0x91,0xae,0x28,0x83,0x4f,0x75,0xbd,0x20,0x5f,0x20,0xba,0xc2,0x75,0x85,0x74,0x23,0xf3,0x36,0x33,0x99,0x9c,0x64,0x4c,0xd1,0x5d,0xbd,0x06,0x46,0xbd,0x49,0xf0,0x86,0xc0,0xcb +.byte 0x1b,0xbd,0xec,0x98,0x5b,0xb1,0x80,0xba,0x12,0x42,0x22,0x09,0x9a,0x62,0x3c,0xa8,0x33,0xbf,0xce,0x92,0xd4,0x07,0xef,0x34,0x33,0x8f,0x67,0x1d,0x25,0x60,0xeb,0xd3,0xe4,0x31,0x63,0xa8,0xab,0xe3,0xab,0x70,0x50,0xd8,0x44,0x9f,0x39,0x51,0xd2,0xb9,0x4b,0x16,0xe4,0xfa,0xc5,0x47,0xf3,0xae,0xb5,0xfe,0x7d,0x5d,0x43,0x28,0xa6,0x3d +.byte 0xcf,0x71,0x23,0x6d,0x8e,0xd7,0x74,0xa4,0x86,0x9f,0x92,0x86,0x3c,0x1e,0x51,0xd4,0xe0,0xe6,0xd5,0xc4,0x53,0x3c,0x96,0x55,0xb9,0xac,0x63,0x5b,0xee,0x5a,0x03,0x84,0xb9,0x43,0x2c,0x0f,0x6d,0xbb,0xb5,0xca,0xf0,0x4f,0x3e,0x8b,0x3b,0x14,0x01,0x0e,0x81,0x0d,0xe6,0x62,0xa9,0x34,0x4e,0x03,0xc9,0x85,0x9f,0xc8,0x4f,0x52,0x3f,0x84 +.byte 0x1b,0xab,0x7e,0xaf,0x93,0x22,0xe2,0x0d,0x41,0x79,0x50,0xb2,0x17,0xa7,0x9a,0x80,0xd5,0x65,0x40,0x3b,0x56,0x9b,0xc9,0x00,0xcf,0x03,0xf1,0xff,0xcd,0x72,0x27,0xdb,0x74,0x94,0x70,0x02,0xdc,0x3a,0xee,0x00,0xcc,0x08,0x0a,0xab,0x40,0x87,0x24,0xaf,0x7d,0x67,0x18,0xd0,0x7c,0xeb,0x91,0x1f,0x7e,0x9e,0x41,0x7b,0x39,0xf2,0xfe,0xaf +.byte 0xb7,0x6c,0x58,0xe0,0xdb,0xf7,0xf1,0x23,0x0b,0x98,0x08,0xfa,0xde,0xfa,0xf9,0x24,0x23,0xd1,0x7f,0x69,0xd3,0xb1,0x82,0x68,0x03,0x06,0x86,0x7a,0xf4,0x90,0x8d,0xa5,0xbd,0xbe,0x14,0x2f,0xa2,0x5e,0xaf,0x5c,0x1e,0x07,0x68,0x19,0x5a,0xd3,0x53,0x7d,0xe8,0x13,0x6b,0xe3,0x02,0x49,0x0d,0xd2,0x96,0x56,0xae,0x67,0x8a,0x27,0x61,0xa0 +.byte 0x60,0x20,0x2c,0xb4,0x5d,0xdf,0xc3,0x24,0x50,0xa9,0xbc,0x3d,0x5c,0xf3,0x2e,0xb6,0xba,0x71,0xf0,0x04,0x43,0x84,0x4d,0x80,0xe9,0xa5,0xdd,0xb3,0x1e,0x5e,0x56,0x32,0x1a,0xd4,0xe3,0x10,0x57,0x35,0xa8,0xf1,0xe5,0x96,0xc1,0x27,0xef,0xcc,0x21,0x71,0x10,0xd1,0x07,0x7e,0xb3,0xab,0x95,0x64,0x86,0xaf,0xc9,0x15,0xe6,0x98,0x5e,0xb1 +.byte 0xbd,0xde,0x99,0x38,0xfc,0x8d,0xb2,0x5a,0xa4,0x44,0x5b,0x74,0x31,0x31,0x07,0x93,0xf5,0x86,0x78,0xc5,0x82,0x26,0xfc,0x95,0x1f,0x33,0xd8,0xfe,0x70,0x42,0x2a,0xa7,0x3a,0xb1,0xb2,0x63,0xd6,0x5b,0x54,0x9c,0x54,0x45,0x4f,0x1b,0x4a,0xc2,0xb4,0x0e,0x99,0x48,0xde,0x8d,0xa6,0x5d,0xd3,0xdc,0x31,0xa4,0x2b,0x0d,0x44,0x6e,0x1a,0x10 +.byte 0x3f,0x6c,0xa0,0xab,0xcb,0xb4,0xf6,0x18,0xba,0x11,0xd4,0xd4,0x70,0xc4,0xab,0x04,0x4c,0xe7,0xe9,0x53,0xe5,0xd9,0xe7,0xeb,0x21,0xa2,0x2c,0xc4,0xc6,0xc3,0xe7,0x73,0xd9,0xd3,0x84,0xb0,0x12,0x94,0x3b,0xfd,0xd9,0x32,0xba,0xe3,0x37,0xc1,0xb9,0x4d,0xea,0x3e,0x3d,0x31,0x4e,0xa0,0xe7,0x73,0x9d,0x4e,0x26,0xd1,0xdf,0xe6,0x26,0xcd +.byte 0xd7,0x17,0xd7,0x28,0x2c,0x04,0xe9,0x55,0xd5,0x70,0xaf,0xab,0xc1,0x07,0xbc,0xc4,0xd2,0x89,0xdc,0x22,0x59,0x19,0x0e,0xd8,0x8b,0xdd,0x46,0x7f,0xe4,0xad,0xa5,0x70,0xd7,0x18,0x51,0x30,0xd7,0xbc,0x26,0x45,0xe7,0xea,0xce,0xc7,0xf2,0xca,0xb1,0x9c,0x57,0x1e,0x10,0x5f,0x44,0x8d,0x3d,0xe8,0x55,0xa1,0x22,0x68,0x97,0xe8,0x03,0x9c +.byte 0x8b,0x63,0x81,0xd9,0xcd,0x4c,0x6c,0xe3,0x68,0xc9,0x35,0xee,0x94,0x13,0x25,0x0b,0x12,0x61,0xbd,0xee,0x6f,0xc7,0xe8,0xb5,0x01,0x7a,0x9e,0xd0,0x5a,0x46,0xc6,0x19,0x1b,0xc2,0xf1,0x2d,0xaa,0x53,0x29,0xcf,0x23,0x1a,0x4d,0x94,0x0a,0x50,0x64,0xf5,0x3b,0x52,0x55,0xac,0xa5,0x21,0x15,0x47,0xd9,0x14,0x8c,0x7f,0x4d,0x79,0x6b,0xc1 +.byte 0x43,0x0a,0xf2,0x42,0xd2,0xb0,0x95,0x19,0x99,0xdd,0x1d,0x8e,0x84,0x8c,0x7e,0x59,0x69,0x93,0x86,0xae,0xf1,0x67,0x35,0x55,0x7c,0x5b,0x38,0x11,0x56,0xec,0x6c,0xbb,0xe8,0xc0,0x54,0xec,0x5f,0x65,0x13,0xe3,0x86,0xa0,0xb1,0xc1,0x5e,0x34,0x4f,0xdd,0x4d,0x00,0xc6,0x29,0x05,0x78,0x64,0x8c,0x19,0xb0,0xfc,0x8a,0xb2,0xc7,0x86,0x57 +.byte 0xa2,0xdd,0xed,0x43,0xc1,0x7f,0xab,0x89,0x19,0xe8,0xa6,0xf5,0x7a,0x15,0xfe,0xd5,0x4f,0x53,0xde,0x78,0x42,0x76,0xf7,0x8a,0x54,0xe8,0x37,0xfd,0xee,0x82,0x20,0xd5,0xe2,0x32,0xb9,0x32,0x67,0xc7,0xff,0xdc,0xf0,0x40,0x07,0x28,0x55,0x16,0x56,0x84,0xe9,0x17,0x25,0x17,0x8e,0x10,0xef,0x9f,0xed,0x33,0x83,0x6d,0x9e,0x87,0x82,0xb8 +.byte 0xa9,0x6b,0xcb,0xe5,0x04,0xfb,0x87,0x51,0x05,0x1a,0x64,0x64,0x51,0x34,0xa3,0x61,0x4a,0xe3,0xa6,0x35,0xa5,0xc9,0xe3,0xde,0xb0,0xcf,0x5f,0x68,0x49,0xbc,0x98,0xf9,0x0b,0x82,0xde,0xb1,0xf9,0x77,0x16,0x7c,0x1f,0x80,0x0c,0xfc,0xbb,0x6d,0x8e,0x92,0x93,0x00,0xc2,0xa5,0xbe,0xde,0x55,0x09,0x9d,0x83,0xa5,0x6c,0x0a,0xb5,0xc4,0x53 +.byte 0xde,0xbc,0x07,0xca,0x0f,0x43,0xea,0x50,0x25,0xee,0x51,0x3b,0xfb,0x7a,0xcf,0x31,0x8a,0x19,0x1c,0xa2,0x2d,0x72,0x79,0x81,0xc6,0xb8,0xe6,0xe1,0xd8,0x3e,0x0f,0xc0,0xae,0x73,0x40,0x30,0x15,0xaa,0xe3,0x72,0xc3,0x36,0xc1,0x42,0x11,0xc5,0x3f,0xf5,0x69,0x78,0xea,0x95,0x54,0x36,0xe8,0x7e,0x9c,0xad,0xbd,0xcd,0x19,0xfe,0x4a,0x04 +.byte 0xb4,0x54,0x14,0x98,0x58,0x6f,0x06,0x8f,0x8c,0x95,0xa8,0xc9,0xe8,0xc4,0x2b,0x03,0xaa,0x42,0x75,0x74,0xa2,0x63,0xdb,0xca,0xd1,0xf0,0x60,0xc3,0x63,0x84,0xfb,0xd7,0x5a,0x7b,0xca,0x45,0x8d,0x14,0xdc,0xf8,0x71,0x40,0x71,0xbb,0xa1,0x1a,0xd3,0x8c,0xfb,0xf6,0xf7,0xfc,0x82,0x72,0x50,0xc9,0xe3,0xc5,0xe2,0xb1,0x57,0xb1,0x24,0x3e +.byte 0x11,0x4d,0x96,0x1c,0x3a,0xe1,0xb6,0xb7,0x0e,0x55,0x35,0x6c,0xd8,0x2b,0xe3,0x78,0xcd,0xac,0x8f,0x24,0x70,0xc6,0x35,0x5b,0x6e,0x75,0x7a,0xf1,0x7d,0x87,0x53,0xcf,0x0a,0x24,0xb6,0x6a,0xfd,0xef,0x90,0x07,0xcf,0xde,0x30,0xbc,0x8c,0xec,0xda,0x6f,0x45,0xad,0x92,0xb6,0x8d,0x6b,0xb8,0x8e,0xdc,0xe5,0xbf,0x57,0x67,0x5e,0x2f,0x4d +.byte 0x5d,0xee,0x38,0x0a,0xaf,0xeb,0x62,0x84,0x2b,0x4c,0x30,0x7b,0x91,0x99,0x40,0x6f,0x09,0x2b,0x36,0xcd,0x04,0xeb,0x7c,0x8d,0xa5,0xbd,0xd6,0xb0,0xfc,0x27,0xcf,0x6b,0xdd,0xe1,0x94,0xbc,0x21,0xc6,0xc9,0x55,0x24,0xd4,0xa1,0x6f,0x1e,0xa2,0x81,0x31,0x22,0xb7,0x75,0x9e,0xa7,0x01,0x26,0x01,0x6c,0x12,0x91,0x02,0x87,0x40,0x5c,0x91 +.byte 0x1f,0x0c,0x55,0x07,0x12,0xa7,0x48,0xdd,0xed,0xb6,0xfe,0x38,0x05,0xbc,0xe1,0x2e,0x3b,0x89,0x4f,0x98,0x65,0x22,0x93,0xda,0x09,0x9f,0x04,0x90,0x66,0x81,0xd1,0x56,0x27,0x8b,0x26,0x99,0xbe,0x93,0x08,0xf1,0xfb,0x80,0x5b,0xaa,0xc4,0x96,0x88,0x93,0xb6,0x01,0xae,0xf6,0x69,0xaa,0x6f,0x4d,0xde,0x2f,0xc7,0x24,0xbf,0xe9,0xb8,0xeb +.byte 0xcd,0xb2,0x0a,0x50,0x5c,0xd2,0x0b,0xfc,0x57,0x3b,0x96,0xf8,0xd9,0xbe,0xd2,0xb5,0x16,0xac,0x7c,0xe4,0x2f,0x46,0x93,0x86,0x48,0x91,0xfa,0xae,0xca,0x05,0x9e,0xfe,0x6e,0xae,0xa5,0x58,0x94,0xc0,0x58,0x1e,0xc5,0x69,0x28,0xe0,0x99,0x12,0x83,0xcf,0x35,0xe4,0x72,0x7d,0x4e,0x8b,0x66,0x56,0xb3,0xa6,0x2a,0x72,0x06,0x03,0x45,0xd1 +.byte 0x95,0xc9,0x93,0xb7,0xf4,0x8a,0x83,0xce,0x17,0x8b,0xf0,0x8e,0x8f,0x4a,0x68,0x55,0xd8,0xfc,0x54,0x8d,0xb5,0x62,0x17,0xa8,0xe6,0x18,0x03,0x53,0x04,0xb8,0xbe,0xd2,0xd0,0x7a,0x84,0xe1,0x39,0x31,0xc5,0x74,0xf2,0x64,0x1c,0x3b,0xd5,0x52,0x9b,0x81,0x8a,0x8f,0x36,0xc8,0xab,0x3d,0xe1,0xa8,0x2a,0xf2,0x84,0x9a,0xca,0x0c,0xcf,0xc9 +.byte 0x45,0x54,0x06,0xe8,0xd2,0x62,0x61,0x4d,0xeb,0x0b,0x38,0x4e,0x43,0x59,0x85,0x3a,0xe4,0xa3,0x25,0x15,0xc2,0xb5,0x7b,0x5e,0x2f,0xe6,0xc1,0x5d,0x2a,0xb7,0x57,0xb8,0x7e,0x61,0x51,0xc3,0x81,0x53,0x45,0x8a,0x6e,0x4c,0x89,0x84,0x2a,0x6b,0xca,0x15,0xff,0x97,0xfc,0x1f,0x8a,0x44,0xbd,0xcd,0x5e,0x32,0x6b,0x5f,0x78,0x7b,0xdf,0xdd +.byte 0x9d,0x2f,0x21,0xf2,0x14,0x40,0x5f,0x5a,0xd5,0x21,0x27,0x3d,0x0b,0x9f,0x9f,0xb0,0x8e,0xab,0x9e,0x68,0x96,0x02,0xfd,0x4d,0xcc,0x03,0xf0,0x03,0xfb,0x4c,0xac,0xfa,0x00,0x3b,0xea,0x1a,0x53,0x80,0x77,0xec,0x53,0xc3,0x3c,0x6c,0xf8,0xa5,0x3e,0x52,0x34,0xd4,0xa1,0x52,0xb8,0xd6,0x19,0x8c,0xdf,0x85,0x27,0x61,0x22,0xe7,0x43,0xeb +.byte 0x85,0xc0,0xbe,0x58,0xe6,0x60,0x81,0x4c,0xc6,0xbb,0xc0,0xbf,0x63,0x39,0x9d,0xad,0x2e,0xa8,0x2a,0x83,0x3d,0xfa,0xdb,0x0b,0x98,0x16,0x78,0x18,0x43,0xc7,0x17,0x82,0xb8,0xec,0x32,0x45,0x75,0x0c,0xc1,0x4c,0x84,0xbf,0xce,0x83,0x3b,0xb4,0x91,0xf4,0x0d,0x5d,0x83,0xf6,0xd6,0x10,0xab,0xc6,0x26,0x9b,0x68,0x59,0xec,0x48,0x4b,0x1d +.byte 0x35,0x2a,0x5b,0x23,0x83,0x22,0x8e,0x7d,0xfa,0xce,0xde,0xb1,0xd9,0x78,0xf6,0x9e,0x08,0xba,0xfb,0xda,0xf2,0x04,0xc5,0x2a,0xac,0xbf,0xb4,0x04,0x05,0x1f,0x0b,0xeb,0xe8,0x2a,0x3c,0x3f,0x4f,0xb6,0xc8,0x6b,0x97,0x5a,0x9e,0xdb,0x4b,0x3c,0x93,0xc1,0x20,0x1c,0x62,0x91,0x74,0x76,0x49,0x92,0xc2,0xd8,0x0d,0xd8,0xfe,0xb5,0x68,0x77 +.byte 0x48,0x9f,0xbe,0xe0,0x78,0x20,0xe7,0xa4,0x3d,0x3e,0xa1,0x4c,0xc7,0xeb,0xd3,0x30,0xd3,0xf0,0x65,0xcf,0x18,0x3c,0xf8,0x25,0xc2,0x99,0xf4,0xec,0xef,0xdd,0xef,0xf3,0x6b,0x28,0x00,0xaa,0xfd,0x76,0xec,0x19,0x67,0xd6,0x79,0xa6,0x01,0x6e,0x20,0x3a,0x7f,0xd4,0xd0,0x05,0xb4,0xea,0xd4,0xde,0x11,0x06,0x44,0x4a,0x6f,0x15,0x2f,0x62 +.byte 0x9a,0xaa,0xeb,0xaf,0xb5,0xb5,0x46,0xb2,0x28,0x2e,0x74,0x26,0x06,0x91,0xeb,0x15,0xef,0xd4,0xfd,0xc7,0x1b,0x65,0x25,0x01,0x24,0xd2,0x44,0x05,0x18,0x1c,0x71,0x36,0x58,0xc4,0x37,0xfe,0x22,0x29,0xc0,0x2f,0xd2,0x4e,0xeb,0x43,0xb9,0xf9,0x4e,0x87,0xd7,0x92,0x77,0xa8,0x4f,0xa5,0x6e,0x5c,0x4d,0x3a,0xe9,0x16,0x62,0x30,0x51,0xbb +.byte 0x32,0xd8,0x0d,0x86,0x20,0xbf,0x68,0x0f,0x3e,0xef,0x8b,0x0d,0xc5,0xa6,0x94,0x81,0xe9,0x6f,0x85,0xf5,0x22,0x6e,0x9e,0x0a,0x56,0xa3,0x43,0x79,0x50,0xd9,0x45,0x5f,0x5a,0x3f,0x53,0x53,0xb7,0xfe,0xb6,0x1c,0x63,0xab,0x7c,0xed,0x2f,0xc4,0x2b,0xa8,0x53,0xfb,0xad,0x46,0xf0,0x63,0xca,0x7a,0x6e,0xce,0xf4,0xb9,0x34,0xd0,0x9a,0xc8 +.byte 0x0d,0xd2,0x32,0xce,0x26,0x3f,0xcd,0xd9,0xbc,0xa9,0x46,0x65,0x45,0xfe,0x45,0xeb,0x0d,0xab,0xe6,0x31,0xb6,0xb9,0x41,0x53,0x7d,0x55,0xc3,0xfb,0x10,0x46,0x37,0x77,0x1f,0x15,0xf0,0x5f,0xcb,0x8f,0xea,0xc5,0xc0,0xb8,0xc6,0xb1,0x3a,0x06,0x42,0xec,0x38,0xec,0x06,0xd1,0x37,0x3b,0xe1,0x8d,0xad,0xc2,0xce,0x96,0x0b,0xf0,0xab,0xde +.byte 0x9c,0x3c,0x09,0xef,0x59,0xcd,0x67,0xa7,0x6e,0x0e,0xc7,0xee,0x51,0x6d,0x90,0x40,0x0e,0xdf,0xb1,0x13,0xe3,0x0c,0xb6,0xe8,0xcb,0xf5,0x57,0x50,0xeb,0xdf,0x09,0x45,0x72,0x40,0xff,0xdc,0x5c,0x51,0x42,0x47,0xb2,0x9e,0xca,0xf3,0x1b,0x06,0xb1,0x3e,0x04,0x55,0x96,0x63,0x24,0x16,0xdb,0x3e,0xab,0x98,0x33,0x70,0x6f,0xfd,0x8f,0x7b +.byte 0x56,0xb0,0x7f,0x28,0x26,0xc4,0x2a,0x9e,0xf5,0xa7,0xba,0x61,0x75,0xa4,0xb1,0x25,0x60,0xe5,0x9c,0x7e,0xb4,0xaa,0x04,0xa1,0x33,0x5a,0x8d,0x88,0x1d,0xc4,0x38,0x58,0x28,0x23,0xc7,0xac,0x20,0xf8,0xaa,0x18,0xf8,0xc7,0x27,0x05,0x07,0xf7,0x12,0xfe,0xe1,0xa5,0x99,0xaa,0x55,0x79,0x72,0xc4,0x14,0x08,0x14,0x4a,0xfb,0xf7,0x66,0x81 +.byte 0x6e,0xed,0x81,0x12,0x5f,0xb6,0x08,0x00,0x37,0xf9,0xdc,0xdf,0x4d,0xcb,0xfa,0xc6,0xf3,0xc2,0x17,0x17,0x52,0x39,0x7b,0xa0,0x3e,0x25,0xc9,0x48,0xd8,0xa6,0x1b,0x8b,0xdb,0xf8,0x74,0xac,0x6b,0x16,0xec,0xa6,0x4a,0x1e,0x7e,0x5c,0x50,0xbf,0x81,0xef,0x3c,0x7d,0x9d,0x21,0x38,0xa9,0x26,0x3c,0x30,0x7a,0xfb,0xab,0xd8,0x6a,0x0a,0xaa +.byte 0xbb,0x6e,0x91,0x92,0x7c,0x04,0x02,0x0e,0xa2,0x71,0xc7,0xde,0x7d,0x42,0xaf,0xe5,0x92,0xc1,0xb9,0xd7,0x52,0xaa,0x32,0xea,0x39,0x84,0x17,0x40,0xb0,0x83,0x18,0xff,0x46,0xb8,0x59,0xd9,0xa3,0xce,0x82,0x7e,0x65,0x54,0xe0,0xa4,0x6d,0x8a,0xbc,0x6a,0x65,0xb2,0xd5,0x96,0x5b,0x1c,0x9a,0x32,0x72,0xf7,0x81,0x57,0xcd,0xb3,0x22,0xc5 +.byte 0x7d,0x20,0x24,0xea,0xbe,0x51,0x4c,0xb3,0x48,0x36,0x4f,0x73,0xf4,0x3f,0x07,0x92,0x01,0xe2,0x1e,0x78,0x3f,0x8e,0x1f,0x35,0x1a,0xf1,0xe1,0x14,0xd1,0xe7,0xd9,0xfd,0xd8,0xf7,0x20,0xc2,0xf3,0x7a,0x59,0xc9,0x1d,0x13,0x41,0x01,0xf6,0x77,0x69,0xfb,0x0f,0xc7,0xe4,0x58,0x04,0xce,0xe8,0x73,0x87,0x2f,0xef,0xe6,0x36,0x38,0xc7,0x91 +.byte 0x2d,0x17,0xb5,0x56,0x68,0xb1,0x9f,0xbf,0x2e,0x4b,0xe7,0x09,0x7b,0x35,0x33,0x5a,0x6c,0xc1,0x6f,0xb3,0xac,0x6c,0x1e,0xfe,0xc0,0xc9,0xd8,0x77,0xf5,0xcb,0x5e,0xcc,0xd1,0x2f,0xdd,0x23,0x8b,0x3b,0xb5,0x43,0x96,0x1f,0xa9,0xe4,0x84,0x41,0x92,0xe9,0x68,0x47,0x50,0xf7,0xd4,0x85,0x22,0xa1,0x43,0xaa,0xde,0xf7,0xea,0xe0,0x54,0xaa +.byte 0x0d,0xe6,0xa5,0xb8,0x7e,0xec,0x13,0x9a,0x1e,0x6c,0x10,0x9d,0xa8,0xfb,0x97,0xde,0x24,0xda,0x33,0xbb,0xab,0x17,0x7a,0xb4,0x72,0xaf,0xed,0xc9,0xa4,0x62,0x65,0x0c,0x99,0x3d,0x74,0x7f,0xff,0x59,0xa9,0x8e,0x37,0xb9,0x10,0x30,0x26,0x3f,0x2f,0xfc,0x1e,0xe2,0xc6,0xb8,0xff,0x41,0xb3,0x35,0x3f,0x41,0xf4,0x47,0xbc,0x76,0xc6,0x77 +.byte 0x0f,0xf8,0xff,0xb8,0xd2,0x34,0x40,0xac,0x43,0xcb,0xcf,0x1f,0x57,0xaa,0x1a,0xa7,0xe1,0x4a,0x69,0xd7,0x05,0xa7,0x9d,0xff,0x13,0x43,0x91,0xe3,0x09,0x1c,0xb2,0xb2,0x82,0x06,0xa3,0x3c,0x35,0x85,0x9e,0xd0,0xcf,0x1c,0xb9,0x13,0x09,0x7d,0x3d,0x17,0x0f,0xf8,0x2f,0x61,0x97,0x7e,0x02,0xe0,0x78,0x07,0x69,0x8c,0x91,0xbe,0x96,0x92 +.byte 0x4a,0x03,0xa7,0x31,0x5f,0x6c,0xfe,0x55,0xb2,0x17,0xe8,0x4c,0x64,0x48,0x18,0xde,0x4f,0x5a,0xce,0xd2,0xcb,0x83,0x4d,0x1b,0x2a,0x1f,0xce,0x85,0xf7,0xdc,0x74,0x8c,0x42,0xc6,0x5a,0x3a,0x51,0x22,0x79,0x70,0xa0,0xe0,0x29,0x2a,0x73,0xe4,0x53,0xb4,0x47,0x5f,0x54,0xa8,0x65,0xe4,0x89,0x78,0xf9,0xb9,0x5f,0x5f,0x9d,0xa8,0xf7,0x82 +.byte 0x4e,0x34,0x60,0xfc,0xe3,0x88,0x65,0x73,0x99,0x1f,0x53,0xed,0xe8,0xf0,0xf4,0x5a,0x0a,0x49,0x42,0x6e,0x02,0x3f,0xa8,0x63,0x21,0x02,0x2e,0x8f,0x33,0xba,0x0e,0x10,0xd3,0x4c,0x1a,0x8b,0xf5,0x84,0x8e,0x2b,0x37,0x12,0x23,0x77,0x02,0x45,0xc7,0xc3,0x79,0x06,0xc2,0x8c,0xaa,0x32,0x53,0x7c,0x19,0xa2,0x92,0x7e,0x47,0x40,0x8f,0xae +.byte 0x8a,0x64,0x51,0x67,0xe1,0xc1,0xc3,0xd2,0x14,0x1d,0x63,0x0c,0x80,0x04,0x30,0x3d,0xee,0x58,0x44,0xe4,0x14,0x63,0xfc,0x95,0x05,0x3e,0xc1,0x8d,0xd3,0xcb,0x5d,0xc1,0x8e,0xf9,0xd7,0xe5,0x9d,0x97,0xef,0x8a,0xaa,0x50,0x31,0xa3,0x01,0x3a,0xb2,0x8d,0x63,0xb6,0xe7,0x34,0xec,0xa1,0x7a,0xff,0x57,0x95,0xbb,0x1d,0xbe,0x0c,0xa5,0x91 +.byte 0x92,0x08,0x06,0x1c,0x67,0x03,0x2e,0xee,0xf6,0x6f,0xa0,0xb7,0x9a,0x7c,0xe3,0x6a,0x8e,0xd8,0x50,0xc1,0xd6,0xa1,0x8d,0xe9,0x66,0x9a,0x1f,0x62,0x15,0x04,0x93,0x74,0xe8,0x04,0x0d,0x27,0x55,0x2b,0x07,0xb1,0xbd,0x69,0xe4,0xc1,0x34,0x8e,0xe7,0xfb,0xa0,0x3f,0x40,0x31,0x47,0xba,0xcb,0x80,0x88,0xf7,0x4f,0x46,0x05,0x31,0xaf,0x23 +.byte 0xdf,0x93,0x09,0x0a,0x15,0xc9,0x95,0x74,0x52,0x72,0xf4,0xbf,0x0d,0x07,0xb6,0xcc,0x4b,0x40,0x12,0xf3,0x87,0xea,0x29,0xd8,0x29,0x31,0x23,0xac,0x29,0x1a,0x89,0x83,0x5b,0x33,0x4b,0x6b,0x69,0xbe,0xb6,0x15,0x7e,0xfd,0xf2,0x95,0xc4,0xbe,0xeb,0xee,0x59,0x01,0x2a,0xce,0xca,0x80,0xda,0xf8,0x1a,0x01,0x23,0xf7,0xa1,0x4f,0xf5,0x83 +.byte 0x5e,0x16,0xd9,0x12,0xa9,0x4e,0xcb,0x59,0x23,0x4f,0x40,0xd7,0xbf,0xaf,0x76,0xf0,0x50,0x31,0x27,0x3a,0x8b,0x1d,0x9b,0xb1,0x1c,0x41,0xb0,0xed,0xe6,0xf3,0xa8,0x5f,0x6b,0x58,0x54,0x92,0xaf,0xcc,0x44,0x5c,0xea,0xdb,0x09,0xc5,0x26,0x5e,0xbe,0x46,0xbd,0x72,0x49,0x5a,0x4e,0x65,0x7e,0x75,0xcf,0xfc,0xf6,0xd0,0x3c,0x4a,0x7e,0xd6 +.byte 0x8e,0x8e,0xb4,0x19,0x45,0x75,0xbf,0xc3,0x5e,0x46,0xff,0xc9,0x46,0x65,0x8d,0x31,0x01,0x5e,0x1c,0x13,0x93,0x56,0x6f,0x28,0xec,0xf3,0x77,0xfa,0x6e,0xb9,0x0e,0xb6,0x8e,0x0e,0x38,0xf8,0x28,0x64,0xa2,0xa1,0x42,0x9a,0xb4,0xf3,0x14,0x8d,0x17,0x80,0x05,0x82,0x7c,0xf1,0xea,0x8b,0x4b,0x62,0xa0,0xde,0xf6,0xd7,0x36,0xb0,0x70,0x8d +.byte 0x03,0xf6,0xc8,0x2a,0x9e,0xc0,0xbb,0x2f,0xcb,0xef,0x35,0xf7,0x16,0xcd,0xd6,0xd6,0x90,0xd7,0x5d,0x61,0x00,0x33,0x9f,0xd8,0xd1,0xda,0x17,0x67,0x90,0xd1,0xf8,0x59,0xcb,0xf1,0x76,0xc2,0xbe,0x1f,0x5d,0x0d,0xb2,0x02,0xbd,0x19,0x9f,0x5a,0xa0,0x91,0xac,0x51,0xb5,0xf5,0x0a,0x64,0x67,0xf2,0x49,0x30,0x6c,0x57,0x83,0xda,0x90,0xf1 +.byte 0xc6,0xc7,0xe6,0x05,0x13,0x30,0x52,0xfd,0x2a,0x47,0xea,0xae,0xd3,0xed,0xe4,0x64,0x1f,0x6c,0xb1,0xdf,0xca,0x20,0x97,0x2a,0xc8,0xdc,0x00,0x0e,0x5b,0x59,0xc8,0x16,0x95,0x68,0x9a,0x2e,0x44,0xab,0xf6,0x93,0x7c,0x8f,0x66,0x4f,0x07,0x42,0x3f,0xa5,0x81,0xe7,0xab,0x59,0xbb,0xae,0xb1,0x3e,0x9a,0x25,0xf1,0xde,0xac,0x4c,0x1d,0x7a +.byte 0x54,0xb9,0xa9,0x59,0xaf,0xb0,0xab,0xaf,0x6b,0x76,0x66,0x1e,0xbe,0x1a,0xc1,0x61,0x1b,0x81,0x6b,0xe8,0xe4,0x73,0x6a,0x87,0xe9,0x39,0xcb,0x2c,0xab,0x64,0x36,0x9a,0x11,0x46,0xec,0x9f,0x30,0xb6,0x2c,0x14,0xe0,0xec,0xbe,0x33,0xde,0x60,0xc6,0x00,0x29,0x3c,0x55,0xda,0xfc,0x64,0xff,0xaa,0xbf,0x99,0x58,0xe2,0xe3,0xec,0xde,0xca +.byte 0xd1,0x3d,0xd2,0xad,0xaa,0xca,0x36,0x8f,0x93,0xa2,0xdd,0xde,0xaa,0x49,0x7f,0xdd,0x39,0x91,0xa0,0x7b,0x33,0xdf,0x36,0xcd,0xc3,0x3a,0xbc,0x53,0xf0,0x07,0x99,0x78,0x4e,0x63,0x47,0x79,0xbf,0x21,0xfc,0x05,0x47,0x69,0xec,0xee,0xf4,0x21,0x97,0x94,0x0c,0x7a,0x9f,0xa6,0xeb,0x5b,0x23,0xed,0x9d,0xc1,0xe1,0x5e,0x10,0xca,0xe0,0x84 +.byte 0x5a,0xdd,0xf6,0xae,0xd8,0x23,0x98,0xea,0x6c,0x43,0x77,0x41,0xf3,0x84,0x5a,0xe8,0xda,0xb3,0x11,0x0e,0x19,0x33,0xe9,0xf9,0x7a,0x90,0x07,0x68,0xf1,0xe4,0x52,0x0c,0x03,0x67,0xb9,0x42,0x41,0x24,0xa3,0x61,0x67,0x75,0xc9,0xb5,0xdd,0x10,0xf1,0x20,0x93,0x54,0xdb,0x0d,0xc7,0x0d,0x25,0x3e,0xda,0xb3,0xe7,0xce,0x97,0x7e,0xdb,0x1a +.byte 0x8f,0x92,0xff,0xe3,0x44,0x2d,0x6b,0xdb,0xe0,0x69,0x8b,0x16,0xce,0xe8,0xc7,0x93,0xf1,0x19,0xb9,0xd3,0x41,0x45,0x8d,0x95,0xb3,0x03,0xb2,0x66,0x96,0x95,0x91,0x33,0x1c,0xee,0xde,0xd7,0x9d,0xab,0x32,0x2f,0xb8,0x3c,0x7a,0x44,0x8f,0xa6,0xca,0x02,0x03,0x2f,0xa8,0x44,0x85,0x0e,0xf5,0x27,0x90,0x84,0xd9,0x80,0x06,0xf4,0x4f,0xc7 +.byte 0x21,0xc5,0x92,0xa4,0x2d,0x08,0x42,0x4c,0xa7,0x84,0xfa,0x7e,0x2b,0x66,0xfb,0x7c,0x81,0xea,0x5c,0x7d,0xdd,0x86,0xf1,0xf5,0x04,0xef,0xf2,0x50,0x12,0x72,0x42,0x22,0x23,0x74,0x7f,0xe7,0xed,0xd9,0xce,0x78,0x10,0x83,0x37,0xd0,0x81,0x97,0x4a,0xac,0xc2,0xe5,0x13,0x91,0x83,0xe2,0x6e,0xff,0x5a,0x0b,0xc3,0x4d,0xc1,0x3e,0x97,0x16 +.byte 0x96,0x69,0x39,0x9e,0x1d,0x6b,0x16,0x82,0xa2,0x94,0x0d,0x50,0xdd,0xa3,0xda,0x9d,0xda,0x3f,0x46,0xce,0x6c,0xd0,0xdf,0x6e,0x1b,0x17,0x47,0x51,0x74,0x6f,0xe9,0xa4,0x6b,0xae,0xd2,0x6e,0x5b,0xc0,0x26,0xc6,0x0b,0x84,0xb1,0x39,0xcf,0x9e,0x7c,0x18,0x52,0xd7,0x8f,0x33,0xae,0x3d,0xaf,0x3d,0x1a,0xba,0x3f,0x09,0x76,0x22,0x1d,0xf3 +.byte 0x42,0x14,0x4f,0x06,0xc7,0x33,0xc1,0x2d,0x58,0x1b,0x4c,0xc0,0x3a,0x29,0xa6,0x5e,0x19,0x26,0xdf,0x36,0x18,0xa9,0xc5,0xe9,0xd3,0xb1,0xae,0x86,0xa8,0x7f,0xd9,0xb4,0x18,0xef,0x9c,0x46,0xb6,0xf2,0xb2,0xb6,0x6e,0xe2,0xf8,0x5f,0x27,0xea,0x76,0xd3,0x40,0x68,0x94,0x66,0x8a,0xf5,0x9f,0xee,0x0c,0xe5,0xae,0xb6,0xba,0x87,0x42,0x40 +.byte 0xc9,0x83,0xac,0xb4,0x2c,0xec,0x74,0xb7,0x55,0x17,0x0b,0x1e,0x45,0x1a,0x87,0x9d,0x52,0xce,0xb7,0x58,0x2f,0x45,0xc7,0x7d,0xf3,0xd3,0x11,0x2e,0xf4,0xd8,0xc0,0xb8,0xc3,0x31,0x45,0x68,0x40,0xe8,0x8a,0x33,0x20,0x9a,0x06,0xa8,0x18,0x53,0xb2,0x73,0xa1,0x57,0xac,0x8f,0x56,0xeb,0x8e,0xa4,0xfc,0xd6,0x76,0x7e,0x81,0x62,0x2c,0x17 +.byte 0x49,0xb4,0xcc,0x15,0x66,0xcb,0xa2,0x3c,0x29,0xf0,0x73,0x0e,0x9a,0x34,0x16,0x6d,0x43,0x62,0x20,0x89,0x14,0xae,0x8b,0x5d,0x61,0x54,0xa1,0x82,0x49,0x73,0xb9,0x2b,0x48,0xd4,0xe3,0x21,0x37,0x5e,0x4d,0xbf,0xd0,0x72,0xa4,0x23,0xdb,0x7c,0xd9,0x45,0x77,0x8a,0x24,0x23,0x56,0xcd,0x84,0x80,0x44,0x12,0xce,0x99,0x39,0xbd,0x77,0xff +.byte 0x8c,0x62,0x8d,0x56,0x77,0x24,0x40,0x11,0x22,0xab,0x28,0xd6,0x75,0x2b,0xbb,0xc1,0x51,0xd6,0x5e,0x61,0x1c,0xe9,0xac,0x36,0x99,0x52,0x44,0xa5,0x20,0xdb,0xe0,0x12,0x9a,0x45,0x8f,0x7f,0x47,0xf9,0xa3,0x91,0x18,0x2b,0x51,0x9a,0x9f,0x3f,0x7d,0x36,0xde,0x71,0xae,0xca,0x62,0x62,0x16,0xda,0x19,0x9c,0x84,0xce,0xde,0x93,0x22,0xde +.byte 0xaf,0xe7,0x91,0x09,0xe8,0xf0,0x0e,0x07,0x71,0xdf,0x48,0xcd,0x8a,0x77,0x19,0x3c,0xd6,0xef,0x8e,0xe0,0x49,0xdf,0xcb,0xd6,0x34,0x78,0x7f,0x42,0xc2,0x6e,0x7a,0x50,0x53,0xee,0xbf,0x73,0x4b,0xd4,0x4f,0x06,0x18,0x26,0x67,0x51,0x54,0xa3,0x40,0xe6,0xb3,0x61,0x4b,0xfd,0xee,0x62,0x00,0x44,0x6c,0x0d,0x8b,0x2f,0x4d,0x06,0x17,0x41 +.byte 0xee,0x8b,0xde,0x1f,0x80,0x36,0x58,0x3e,0x0a,0x53,0x0a,0x83,0xf9,0xba,0xbd,0x91,0x6a,0x20,0x32,0x42,0x6c,0x85,0xdc,0x84,0xfd,0xce,0x57,0xbe,0xf8,0xa5,0x2c,0x7e,0xf9,0x1b,0x07,0xf4,0x32,0x13,0x32,0x79,0xdc,0x91,0xfc,0xc0,0x18,0xe6,0x1e,0xb2,0x67,0x9d,0x08,0xd2,0x89,0xa2,0xb1,0xbf,0x37,0xe1,0x3f,0x9e,0xb5,0x17,0xf7,0x2f +.byte 0x9a,0x4f,0x3c,0xea,0x5d,0x48,0x56,0x48,0x35,0x17,0xe9,0x5a,0x99,0xa7,0x2e,0x25,0x4f,0x96,0xa6,0x3d,0x3c,0xf8,0xdc,0xe7,0xe5,0x98,0x46,0xf7,0x10,0x16,0x4f,0xb0,0x7b,0x48,0x06,0xbb,0x9a,0x5a,0xad,0x32,0x49,0x92,0x39,0xb2,0xfe,0x01,0x1a,0x5e,0xcc,0xf7,0x0d,0x65,0x1c,0xf5,0x3d,0xb3,0x40,0x28,0x06,0x6e,0xbb,0x74,0x2a,0x95 +.byte 0xe9,0x62,0x2a,0xe2,0x19,0x38,0xc6,0x0d,0x46,0x30,0x6d,0x90,0xa5,0x68,0x4d,0x89,0xf0,0xf4,0xaf,0x52,0x11,0x8a,0x47,0x65,0xc0,0x6d,0xee,0xde,0xbc,0xed,0xf2,0x94,0xf3,0xfb,0xfd,0x2f,0xea,0xd5,0x36,0x89,0x8a,0x22,0xb8,0x75,0x3c,0xda,0x8d,0x3f,0x71,0xe5,0x50,0xb8,0xef,0xfc,0xa1,0x34,0x4a,0xb0,0x56,0x64,0xaf,0x28,0x0c,0x7a +.byte 0x28,0x3e,0xc8,0x83,0xc2,0xbb,0x89,0xc4,0x29,0x7f,0xc9,0xe7,0x4e,0xcb,0xdc,0x8f,0xe8,0xa4,0xdc,0x0d,0xcc,0xa0,0x16,0xda,0xa9,0x34,0x61,0xec,0x64,0xa7,0xf4,0x47,0xe9,0xee,0xbf,0xc6,0x4b,0xc5,0x01,0x65,0xe4,0xe0,0x12,0xd6,0x27,0xda,0x30,0xb5,0x60,0x72,0xe1,0xee,0x38,0x23,0x6c,0x9d,0xbb,0x83,0x01,0x4b,0x26,0x9a,0x68,0xb3 +.byte 0x89,0xb3,0xe0,0x10,0x22,0x58,0xef,0x2d,0xd4,0x86,0xab,0xab,0xc4,0xd8,0x9c,0x56,0xe8,0x54,0x40,0x86,0x11,0xd2,0x6b,0xc0,0xaf,0xfc,0x4a,0xef,0x24,0x38,0x79,0x32,0x54,0x26,0x8b,0x7e,0x02,0xad,0x86,0x9d,0x40,0x65,0x28,0x28,0xa3,0xa6,0xe4,0x07,0x29,0x3a,0xbb,0x81,0xed,0x17,0x54,0x51,0x35,0xc6,0x88,0x9c,0x63,0x7e,0x73,0x02 +.byte 0x28,0x13,0x4b,0x33,0xc0,0x68,0xbc,0xae,0x8c,0x59,0xd4,0x84,0x1d,0x41,0x86,0x5a,0xf6,0x14,0x50,0x13,0x88,0xca,0xc8,0xb8,0xfc,0x61,0xeb,0xe6,0x69,0x70,0x4a,0xa5,0xa5,0x36,0x4b,0xac,0xca,0x00,0x28,0xae,0xb0,0x03,0xef,0xe3,0x92,0xad,0x97,0x32,0x05,0x8c,0x93,0x95,0x45,0xd5,0x75,0x66,0x11,0xd3,0x6f,0x7f,0x5f,0x35,0x44,0xb7 +.byte 0xd7,0x34,0xcf,0x8c,0x4a,0x61,0x68,0x63,0x3f,0x92,0x54,0x01,0x3c,0x25,0x2d,0x6f,0x4a,0x2d,0x55,0xff,0x3f,0x86,0x85,0x9f,0xc2,0xa1,0xde,0x6b,0xbf,0x7e,0xb4,0x7c,0xc1,0x80,0x73,0xf5,0x3b,0x85,0xae,0x36,0x1a,0xdf,0x00,0x52,0xb7,0x70,0xa9,0x42,0x79,0xd2,0x26,0xf8,0x3b,0xeb,0x9f,0x2e,0x15,0x33,0xc8,0x85,0x2d,0x63,0xb2,0x89 +.byte 0x24,0x8e,0xfd,0xe6,0xdf,0x01,0x80,0x8b,0x27,0xe3,0x7e,0x17,0xc2,0x4e,0x26,0xa2,0xe1,0x95,0x81,0x3a,0xdd,0x2a,0xf4,0x75,0x21,0x64,0x11,0x04,0x5e,0x00,0x39,0xf0,0x08,0x68,0x67,0x09,0xa8,0x9b,0xbe,0xb7,0x62,0x0e,0xa8,0x69,0xcd,0x4e,0xaf,0xc8,0x4f,0x92,0x3d,0x8e,0x35,0x60,0x70,0xb3,0xda,0x2f,0x38,0x80,0x6f,0x5e,0xcc,0x3b +.byte 0x6e,0x05,0x26,0x14,0x9d,0x36,0x72,0x7d,0x09,0xb8,0xb7,0xa1,0xf7,0x5f,0xb3,0xe1,0xd6,0xc5,0x54,0x4e,0x80,0x4d,0x06,0x8f,0x84,0xbb,0xb6,0x65,0x87,0x2c,0x19,0x4a,0x74,0x3c,0x34,0x62,0x32,0xad,0x4c,0x06,0xa3,0xbb,0xfb,0x4f,0x4f,0x9d,0x91,0x84,0x63,0x75,0x34,0xcc,0x6b,0x00,0xa1,0x5a,0x63,0x03,0x8d,0x1e,0xdb,0xa4,0x0c,0xe6 +.byte 0x3d,0xd1,0x94,0x77,0xd8,0x77,0x8c,0x39,0x48,0x78,0xb1,0xb5,0xa2,0x41,0xd0,0x6d,0x27,0x20,0x4a,0x41,0x88,0xa5,0x78,0x3f,0x51,0x72,0x8c,0x80,0xe7,0x37,0x81,0x8b,0x06,0x46,0x58,0xab,0x23,0x85,0x47,0x89,0x39,0xf9,0x14,0xfe,0xbf,0x07,0x7c,0x47,0x8e,0xcc,0xd7,0x08,0xfe,0x5d,0xee,0xf9,0x94,0xa2,0x83,0x81,0x8a,0xfd,0x0f,0x9a +.byte 0xa7,0xe4,0x59,0xad,0xe6,0x1f,0xed,0x5d,0xe4,0x20,0xd6,0x2f,0xa7,0xd3,0xcf,0x5b,0x18,0x6d,0x24,0x79,0x66,0xd9,0xaa,0x44,0xfa,0x8d,0x74,0x60,0xcc,0x7e,0xbf,0x4f,0x0e,0xe3,0x9c,0xa5,0xe4,0xff,0x14,0x05,0xff,0x24,0x62,0x94,0x00,0x7a,0x58,0xe5,0x0b,0x3b,0xe8,0xee,0xe1,0x4d,0x4e,0x34,0x26,0xba,0x70,0x10,0x5e,0x14,0x4f,0xa5 +.byte 0x7a,0x9e,0x7b,0x28,0x99,0xbe,0x94,0x4a,0xcb,0x8d,0x65,0x60,0xa0,0x6e,0xc7,0xbc,0x51,0xba,0xb5,0x07,0x97,0x25,0x42,0xb7,0x2c,0x0e,0x9b,0xfc,0xfb,0x35,0x6f,0x74,0x10,0xce,0x25,0xdb,0xa9,0x7c,0x11,0x61,0x43,0xf9,0x19,0xbf,0xe2,0x21,0xa3,0x57,0x3c,0x41,0x0a,0x15,0x4e,0x7f,0x6b,0x38,0xb6,0x73,0x41,0xa2,0x4e,0x8e,0xb9,0x44 +.byte 0xee,0x2a,0x2e,0x0a,0x9e,0x85,0xf1,0x6e,0x93,0x72,0x42,0x50,0x55,0xe1,0xc6,0x18,0x11,0x92,0xf7,0xbf,0x05,0xd8,0xb6,0xbc,0x2b,0xd5,0xe0,0xd3,0x9b,0x64,0xc4,0xdd,0xb0,0xb3,0x46,0xd8,0xfb,0x73,0xea,0xed,0x06,0x96,0x16,0x9e,0xf6,0xc6,0xe8,0xbe,0xae,0x00,0x2f,0x5a,0xf4,0x1f,0xb5,0x28,0x7c,0x75,0x76,0x68,0x74,0xa2,0x57,0x0e +.byte 0x6c,0xfa,0x2d,0xbe,0x34,0xf1,0xc9,0x2b,0x83,0x58,0xe7,0x2a,0x87,0xdb,0x47,0xae,0xc7,0xc2,0x78,0x50,0xed,0x20,0xdf,0x30,0x38,0xdd,0x84,0xa9,0x6b,0x00,0xb1,0x7b,0xbb,0x69,0xd3,0xbe,0xed,0x3d,0x99,0x6e,0x39,0x42,0x75,0x8a,0x6c,0x7c,0xa5,0xcf,0xc9,0xcf,0x11,0x14,0xb3,0xaf,0x72,0x00,0x3b,0x58,0xdd,0x2a,0xe1,0x44,0xa7,0x51 +.byte 0x15,0x05,0x1b,0x18,0x49,0x07,0x90,0x4c,0xbc,0x99,0x88,0x64,0xf6,0x14,0x0b,0x99,0xc0,0x84,0xc9,0x06,0x32,0xf0,0xec,0x19,0x8d,0x4a,0xb8,0xdb,0x32,0xb4,0x5e,0xc9,0x0c,0x24,0xf0,0xad,0xdc,0xf4,0x32,0x3b,0xf6,0x68,0x28,0x4a,0xa5,0x5b,0xb7,0xd5,0x00,0x35,0xf8,0x56,0x03,0xa3,0x86,0xa0,0x8a,0x1b,0x53,0xb5,0x58,0x73,0x8c,0xf9 +.byte 0x2b,0xd8,0xcb,0x88,0xe7,0x7e,0x79,0x68,0x13,0x5d,0x7d,0x23,0xc4,0xec,0x9c,0xf4,0x95,0x97,0xbf,0xb2,0xd9,0xdf,0x38,0xe8,0xa2,0x79,0xf7,0xe8,0x36,0x80,0x59,0x3f,0x58,0x2f,0xf7,0xf9,0x32,0x73,0xdd,0xd6,0x9e,0x20,0x1a,0x29,0xab,0xc1,0x77,0x14,0x71,0x3c,0xde,0x90,0xe9,0xea,0xdb,0x78,0x14,0xa3,0x89,0x43,0xf1,0x42,0x43,0x3f +.byte 0xe7,0x67,0x32,0x3d,0x65,0xdc,0xa4,0x79,0x8f,0x81,0xa5,0xb0,0x94,0x0f,0x96,0xf5,0x82,0xcc,0x47,0xc1,0x29,0x39,0x70,0x7a,0xf3,0x49,0xf5,0x09,0x43,0x50,0x56,0xd6,0xea,0xc4,0x35,0xa5,0xa2,0x8a,0xbe,0xc0,0xe3,0xfe,0x4c,0xa2,0x83,0x09,0xab,0x72,0x8a,0x96,0x7c,0x01,0x70,0xb2,0xd5,0x62,0xb7,0x67,0x59,0x36,0xcf,0x56,0x2d,0x14 +.byte 0xc2,0x69,0x49,0x52,0x4e,0x7c,0x45,0x4b,0xef,0xcd,0x79,0xcd,0xe6,0xa6,0xd0,0xbe,0x10,0x1e,0x18,0xca,0xe7,0x8d,0x65,0xb1,0x17,0xc7,0x2c,0xc8,0x2a,0x5b,0xe8,0x08,0x11,0x15,0xea,0xa9,0x43,0x7b,0x70,0x04,0x0c,0xc8,0xca,0x67,0x18,0x18,0x12,0x16,0xc2,0xd3,0xf2,0x0a,0xc7,0x01,0xa9,0x97,0x61,0xf6,0xa7,0x44,0x9a,0xb3,0x67,0xdc +.byte 0x07,0x63,0x02,0x02,0x2e,0x58,0x80,0xa9,0x95,0xa0,0x8e,0x86,0xb6,0xf6,0x14,0x13,0x0a,0xea,0xf1,0x6d,0xd9,0x98,0x37,0x12,0xdb,0x67,0x1b,0x13,0x8e,0xd1,0xfa,0x2f,0x98,0x53,0x3c,0xd7,0x56,0x55,0x42,0x2f,0x64,0x59,0xd5,0xb7,0x6e,0xa8,0x6c,0xc2,0x40,0x11,0xb5,0xa1,0xc0,0x5c,0x45,0x87,0x91,0xb1,0x1c,0x4e,0xa9,0xf6,0x72,0x57 +.byte 0x50,0x8e,0xc5,0xfc,0x64,0x59,0x52,0x82,0xb0,0x75,0xc3,0x98,0xff,0x32,0xce,0xa4,0x39,0xb8,0xa4,0x61,0xb4,0x53,0x3f,0xc7,0x80,0x35,0x48,0xaf,0xa8,0x67,0xfe,0xa1,0x1d,0x3c,0x95,0xb5,0x63,0x1c,0x3a,0x2c,0x68,0xfa,0x98,0x8b,0xa7,0x19,0x29,0x79,0xe4,0x9b,0xff,0x8f,0x15,0x9c,0x65,0x60,0xd2,0xa9,0x4f,0xd5,0xb2,0x57,0xff,0x32 +.byte 0x4c,0x96,0x82,0x6b,0x09,0x6c,0x74,0x55,0x00,0x5c,0x68,0x68,0xd5,0x9b,0xd4,0xdf,0x3d,0x2d,0xb9,0x0b,0xf5,0x2c,0x87,0x35,0x2a,0xc0,0xc0,0xc9,0xd7,0xa1,0x76,0x30,0x82,0x46,0xd8,0x24,0x6e,0x27,0x02,0x71,0x57,0x5c,0x43,0xf2,0x54,0xd6,0xea,0xd7,0x67,0x7d,0xac,0x76,0x91,0xf1,0x26,0x6e,0xaf,0x87,0x05,0x06,0x48,0x57,0xbd,0x67 +.byte 0x1d,0xd7,0x07,0xcd,0x41,0x02,0x49,0x6c,0x8c,0xe1,0xe3,0x00,0x78,0xbe,0x28,0x84,0x16,0x44,0xb1,0x0d,0x6d,0x40,0xfe,0xab,0x7e,0xf6,0x6b,0xff,0xfa,0xe1,0xc7,0x9d,0x56,0x62,0xf1,0x68,0xba,0x76,0x34,0x8f,0x54,0x20,0x49,0xf5,0xa2,0x54,0x52,0xca,0x42,0xed,0x4f,0x9b,0xdf,0xcf,0xfb,0xf6,0xee,0x12,0x29,0x43,0x8f,0xf9,0xfd,0xf4 +.byte 0x8a,0xbf,0xae,0x50,0xf2,0x8f,0x46,0xa2,0x97,0x3b,0x2d,0xfb,0x84,0x98,0x61,0xae,0xba,0x36,0x25,0x30,0x8b,0xdc,0xd3,0x08,0x8e,0x7e,0xfa,0x91,0xac,0x4b,0x29,0x6d,0x0c,0x81,0x0f,0xc7,0xc8,0xc4,0x5c,0x48,0x68,0xa7,0x83,0xf3,0x6a,0xc8,0x0d,0x3a,0x9b,0x46,0xb9,0xe1,0x31,0xac,0x3c,0x12,0xa2,0xae,0x74,0xb8,0x91,0xed,0x63,0xba +.byte 0x40,0xb8,0x57,0x58,0x1f,0x1d,0x1a,0x2d,0x98,0x60,0xe8,0xe1,0x84,0x16,0xe5,0xf0,0x1e,0x35,0x58,0x31,0xc3,0x0c,0x49,0x6e,0x13,0x2c,0xac,0x14,0xc2,0xde,0x5f,0x62,0xe5,0x37,0x5b,0x1d,0x71,0x8b,0xc3,0x3d,0xd8,0xaf,0x3d,0x0a,0xef,0x80,0x3c,0x9a,0x4b,0x0a,0x3f,0x0e,0x8f,0x90,0x8f,0x73,0x2e,0xff,0x8e,0x8e,0x87,0xf8,0x46,0x52 +.byte 0xed,0x7d,0x76,0xf3,0xff,0xaf,0x5e,0x62,0x87,0x16,0x9c,0xa6,0x12,0x39,0x13,0xc3,0x62,0x4b,0xd2,0x21,0xa2,0x43,0xfa,0x4c,0x5d,0x75,0x61,0x64,0x5b,0x23,0xcd,0x76,0x86,0x81,0xd6,0xa6,0x25,0xe1,0xc1,0xc6,0x04,0x5e,0x65,0xfe,0x89,0x0e,0x67,0x02,0xeb,0xb9,0x26,0x88,0x81,0x97,0x1e,0x62,0x4e,0xf4,0x4e,0x0d,0xef,0xac,0xcf,0xd7 +.byte 0xc5,0x9b,0x9d,0x3a,0xa2,0x71,0xd7,0xd4,0x72,0xa6,0x66,0x90,0xe2,0xf7,0xb7,0xec,0xe4,0xca,0x9f,0xd1,0xd8,0x5a,0x65,0xff,0x39,0x65,0x78,0x47,0x1c,0x64,0xab,0x1a,0x35,0x2e,0xe2,0xf7,0x67,0xa4,0x7f,0xd5,0xea,0x04,0xee,0x4d,0xf6,0x29,0xe4,0xcd,0x1b,0xcf,0x0a,0xef,0xa1,0x14,0x90,0x0e,0xed,0x1a,0x10,0x63,0xa0,0x56,0x11,0x05 +.byte 0x57,0x94,0x3a,0x11,0xff,0xe0,0xc7,0x33,0x19,0x67,0xd7,0xd0,0xcc,0x76,0x52,0x5d,0x9e,0x10,0xe7,0xd6,0xaa,0x13,0xe8,0x8d,0xa5,0x60,0x66,0x98,0x26,0x11,0x66,0x0f,0x2d,0x4d,0xec,0x28,0x93,0x17,0x3a,0x6f,0x99,0x70,0x00,0x2b,0x66,0xb3,0x49,0x69,0x3c,0x3b,0x03,0xb8,0xc0,0x9b,0x1c,0x96,0xd9,0xd1,0xe1,0x6d,0x8f,0x45,0xce,0x22 +.byte 0xcf,0x48,0x61,0x85,0x10,0x1b,0x3f,0x2b,0x74,0x48,0x61,0x68,0x63,0xe3,0xa3,0x83,0xe2,0xcc,0xa0,0x6d,0x82,0x8b,0xe5,0x42,0xab,0xa7,0x62,0x6c,0x05,0xb4,0x7b,0x65,0xf5,0xd8,0x0b,0x7d,0x61,0xd6,0x5c,0xf0,0xc0,0x03,0x0c,0x51,0xec,0x06,0xad,0x79,0x8c,0x62,0x0c,0xf5,0x8e,0xcb,0x97,0x62,0xf9,0x3e,0x39,0x8d,0x3c,0x2e,0xd1,0xc0 +.byte 0x5f,0x98,0xea,0xb5,0x26,0x19,0xf5,0x93,0xbb,0xf8,0xd4,0xd5,0x35,0xee,0x1f,0xf8,0x71,0x81,0x0e,0xe6,0xe9,0xf3,0x2c,0x80,0xa8,0x15,0x35,0x1e,0xda,0x07,0x41,0x39,0x8a,0x19,0x1f,0x70,0x99,0xbe,0x3d,0x5c,0x1f,0xf6,0x72,0x85,0x73,0xea,0xb5,0x61,0xbb,0x77,0xaa,0xef,0xc7,0x2c,0xed,0x1e,0xa6,0xfd,0xc9,0xde,0xa9,0x82,0xba,0x19 +.byte 0x04,0x17,0xf7,0xa1,0x59,0x5c,0x7d,0x8d,0xe7,0x1c,0x89,0x7f,0xe1,0x02,0xd3,0xb0,0x46,0x6c,0xcf,0xde,0xf0,0x0b,0x00,0x43,0x8d,0xd6,0xe6,0xf7,0xc8,0x83,0x20,0x77,0x8b,0x9f,0x14,0xea,0x2b,0xb2,0xd2,0x41,0xfd,0x96,0x7c,0x0d,0x05,0xb9,0x5a,0xa0,0x83,0x50,0xde,0x0e,0xc6,0xa6,0x29,0x55,0x12,0x8e,0x2f,0x0a,0x5c,0xcd,0xae,0x92 +.byte 0x76,0x84,0xc9,0x8a,0x81,0xe5,0x3e,0xf0,0xe6,0x5b,0xe4,0x21,0xfb,0x4c,0xb6,0x0a,0x7b,0x7f,0x7e,0xab,0xdc,0x15,0x44,0xf8,0xeb,0x23,0x21,0x31,0xef,0x98,0xec,0x84,0x69,0x34,0x29,0x99,0x03,0x8a,0x12,0x8e,0x28,0xdd,0x00,0x6a,0xa3,0xe7,0x08,0x17,0x35,0x2a,0x42,0x8a,0xcb,0x4a,0x7b,0x1c,0xd2,0x74,0x4f,0x6a,0x8c,0x85,0x1c,0xd6 +.byte 0x05,0x3a,0xfd,0xdf,0x1c,0xa5,0x59,0xbb,0xdb,0xe3,0xa7,0x59,0xb1,0x67,0x3d,0xa4,0x71,0x4d,0x6c,0x99,0xe0,0xa7,0x8c,0xfa,0x96,0x1f,0x8d,0x0c,0xa7,0xc8,0xce,0xa3,0xbf,0x4d,0xc7,0xa9,0xb7,0xfd,0x04,0x58,0xcd,0xd7,0x20,0xb1,0xb9,0xf5,0x06,0x70,0x1b,0xdd,0xf4,0x1c,0xdc,0x32,0xa0,0x90,0x0d,0xb2,0x91,0x14,0x05,0xa2,0xf7,0xb7 +.byte 0xb6,0xd2,0xf1,0x30,0x75,0xcc,0x78,0x0d,0x56,0x70,0x64,0x02,0xe7,0x83,0x97,0x65,0x63,0x4b,0x64,0xff,0x8b,0x62,0xc9,0xa4,0x6e,0x96,0xbf,0xd3,0xeb,0x74,0xc5,0x1f,0xdb,0x1c,0xf3,0xca,0x54,0x7d,0x8d,0xd9,0xec,0x18,0xd8,0x99,0xd1,0xa5,0x70,0x8a,0xc5,0xdc,0xa0,0xcb,0xb7,0x52,0xe3,0xe6,0x88,0x0c,0x5a,0x42,0xde,0xe6,0xd8,0xc4 +.byte 0x39,0xe5,0x6c,0x0b,0xd4,0xa5,0x9b,0x51,0xa2,0x3d,0xc5,0xc7,0x17,0x17,0xb8,0xd8,0x09,0xad,0xeb,0x67,0x47,0xe0,0x88,0xef,0x1d,0x22,0x18,0x25,0xdc,0x32,0xb2,0xf7,0x47,0xc5,0xb3,0x0b,0x57,0x01,0x67,0xac,0xc3,0x9e,0xb0,0xa8,0xd7,0xce,0xb2,0xcd,0xea,0x3b,0x61,0xbb,0x24,0xad,0x91,0x7b,0xa2,0x9a,0xb3,0x63,0x56,0xe2,0x9d,0x69 +.byte 0x9e,0xd7,0x5f,0x5f,0x47,0x9f,0xae,0xf6,0x09,0xb1,0x9e,0x22,0x35,0xaa,0x55,0x0b,0xfc,0x70,0x96,0xfd,0x53,0x8a,0x37,0xaf,0x2d,0xa2,0xc5,0x49,0x5b,0x1e,0x32,0x47,0x9d,0xc3,0xb4,0x46,0xf3,0x54,0xdb,0x3f,0xb9,0x69,0x9e,0x8b,0xad,0x11,0xb2,0x68,0xe8,0x27,0x0d,0xca,0x33,0x1c,0x86,0xb2,0x2c,0xaa,0xc2,0x15,0xf9,0x6e,0xed,0x30 +.byte 0x71,0x08,0xeb,0x93,0x1d,0x16,0xc5,0x34,0x73,0x65,0x7a,0x19,0x2b,0xa7,0x3d,0xe6,0x88,0xb5,0x0f,0xa0,0x92,0x91,0x22,0x9d,0x01,0xf3,0xf4,0x57,0x9f,0xd9,0x23,0x1b,0xbd,0xd7,0xd5,0x11,0xc9,0x24,0xf6,0x36,0x30,0x30,0x69,0x95,0x17,0x48,0xf9,0x76,0x71,0xef,0xef,0xc0,0x00,0x9c,0x7d,0x87,0xdc,0xdc,0x1a,0x32,0x82,0x7a,0x13,0xc2 +.byte 0x9f,0x53,0xc2,0x7d,0x4d,0xbf,0xbe,0xf5,0x9d,0xc8,0x81,0x5b,0x81,0xe9,0x38,0xb6,0xa5,0x40,0xa5,0xd4,0x6f,0x0c,0xea,0xf1,0x52,0x59,0x37,0x3b,0xc2,0xb2,0x5f,0x10,0xdf,0x22,0xf7,0x77,0xe8,0x66,0xb0,0x97,0x91,0x5f,0xc2,0x18,0x8d,0x17,0x40,0xd1,0x6d,0xde,0x6e,0xf0,0x6c,0x1f,0x4e,0x9b,0x15,0x83,0x9b,0x70,0x21,0x2b,0x98,0x46 +.byte 0xbf,0xa5,0x82,0xac,0x63,0xac,0xd7,0x52,0xec,0x2c,0xf2,0xe4,0xe0,0x2a,0xbf,0x7e,0xa2,0xd2,0x9d,0x0d,0xf2,0x9b,0x79,0x5f,0x22,0xb0,0x6d,0x22,0x2e,0xed,0xe2,0x4f,0x73,0xc5,0x89,0xcc,0x4a,0xaa,0x9a,0x7e,0xab,0x95,0x25,0xa7,0x9d,0xf4,0xc2,0xe8,0x42,0x6e,0xd3,0xf9,0x25,0x54,0xb9,0x1f,0xa9,0x16,0x9c,0x22,0x7a,0xf0,0xa6,0xac +.byte 0x8b,0x9d,0xe6,0xe3,0x93,0x4e,0x65,0x3a,0x39,0x3e,0xf5,0x41,0x38,0x02,0xb7,0x37,0xd4,0xdc,0xea,0xc5,0x53,0x0e,0x52,0x85,0x96,0xc0,0xa7,0x21,0xbf,0xe7,0xca,0x12,0x1c,0x59,0x33,0xe4,0xd5,0x70,0x6b,0x25,0x54,0x24,0x58,0x48,0x1b,0x65,0x6e,0x7e,0xe6,0x84,0x39,0x38,0xbc,0xdf,0x96,0xbc,0x39,0xdf,0x8f,0x36,0x9e,0x3a,0xda,0x02 +.byte 0x86,0xe2,0x9f,0xb7,0x3a,0xd0,0xdb,0xc2,0x5d,0xb0,0xde,0x31,0x73,0x43,0xe5,0x4b,0x6a,0xa1,0x6d,0xaa,0xca,0x34,0xfa,0xa9,0xaf,0xec,0x05,0x2a,0xdb,0x82,0xa1,0xdc,0xdc,0x3d,0xb5,0x92,0x42,0x28,0xdc,0x93,0xec,0xab,0x9b,0x75,0xae,0x7c,0xbf,0x9b,0x25,0x01,0xb1,0xc8,0x3b,0x47,0xb6,0xfd,0x11,0x6f,0x4b,0xaa,0x6f,0xdf,0x1f,0x15 +.byte 0xc2,0xf3,0x87,0x4a,0xaf,0xf7,0x41,0x64,0x5a,0x19,0xa0,0xc4,0x4f,0x58,0xe8,0x19,0xe0,0x84,0x44,0xc7,0x65,0x0c,0xf1,0xff,0xcb,0x73,0xb2,0xac,0x25,0x28,0xe1,0xd4,0x03,0x16,0x3c,0x1c,0x24,0x3a,0xfc,0x2b,0x7e,0xcb,0xa3,0xba,0xb7,0x78,0x87,0xbe,0x95,0x06,0x27,0xb8,0x16,0x72,0xe4,0x24,0xa6,0x5d,0xe7,0x5e,0x93,0xa9,0x96,0xfd +.byte 0x01,0x1d,0xb8,0x7c,0x85,0x3c,0xe3,0xc9,0x56,0x68,0xcd,0xd9,0x79,0x97,0x50,0x39,0xfe,0x96,0x93,0x50,0xae,0xde,0xcd,0x8d,0xa0,0x38,0x31,0xba,0xca,0x21,0xff,0x19,0xea,0x44,0x95,0x4d,0xba,0xae,0xe2,0x62,0xd2,0x82,0x60,0x0c,0xb9,0x10,0x40,0x9a,0xaf,0x9b,0x17,0xcd,0xf3,0x26,0xec,0x38,0x13,0x18,0xd3,0xf2,0xd2,0x11,0xa6,0xc3 +.byte 0x3c,0x3b,0xe8,0xa0,0x49,0xba,0x4e,0x07,0xec,0x44,0x75,0x1c,0xc9,0x2f,0x68,0x64,0x02,0x1d,0x14,0x35,0x80,0xd8,0xa8,0x53,0xde,0x44,0x65,0x72,0x37,0x28,0x61,0x5f,0xa1,0x58,0xea,0x17,0xb3,0x89,0x25,0xf7,0xcb,0x87,0xe6,0x43,0xc5,0xc3,0xf3,0xd1,0xf5,0x1f,0x18,0xe9,0xd1,0x05,0xd9,0x85,0x38,0xf0,0x5e,0x26,0x35,0xf2,0x72,0x92 +.byte 0x34,0x2f,0xea,0xdd,0x7b,0x64,0xac,0x1d,0x78,0x41,0x56,0x83,0x7d,0x83,0x83,0x59,0xbe,0x9f,0x81,0x90,0x00,0x1f,0x04,0xd8,0xd8,0x8e,0xd9,0xeb,0x12,0x16,0x96,0x81,0x61,0x96,0xe8,0x7b,0x36,0x7b,0x26,0x9b,0x43,0x1e,0x0e,0xc2,0x59,0xdf,0x8f,0xb4,0x91,0x74,0x2e,0x1e,0x6d,0x20,0x70,0xe7,0x3c,0x39,0xe3,0xa8,0x62,0x66,0x32,0x63 +.byte 0x7d,0x89,0xb6,0xad,0x69,0x38,0x2c,0x21,0xe5,0x02,0xcc,0x93,0x8a,0x65,0x71,0x65,0x02,0x5c,0xeb,0xc9,0x70,0xf3,0x81,0xce,0x65,0x37,0x22,0xb7,0x47,0x3c,0xd6,0x3d,0x29,0x65,0x29,0xba,0xf9,0xae,0xd9,0x1f,0xd7,0x38,0x88,0x95,0xa9,0x66,0xa8,0x77,0x75,0x4a,0xf9,0x2e,0xd9,0x63,0x75,0x80,0x90,0x82,0x39,0x8b,0x21,0x58,0xf4,0x2e +.byte 0x2d,0x1f,0x7f,0xcb,0x33,0xdb,0x9b,0x9b,0x31,0x21,0x4e,0x6e,0xdb,0x0f,0x1f,0x69,0x22,0x97,0x69,0xd7,0x7f,0x2e,0xd7,0xce,0x6c,0xe4,0xc0,0xe7,0x27,0x82,0xe6,0x8a,0xf8,0xae,0x46,0x2d,0x5a,0x45,0x82,0xce,0xb6,0x49,0x84,0x15,0x4a,0x54,0xa6,0x76,0xf3,0x29,0x28,0xc0,0x05,0x82,0xae,0x7d,0x85,0x41,0xb0,0x87,0x67,0x44,0x37,0x46 +.byte 0x3e,0x47,0xbc,0x00,0x7c,0x05,0xd3,0xdc,0x9a,0x31,0x49,0xf8,0x48,0x99,0x57,0x4a,0x2b,0xe7,0xcf,0xb2,0xa7,0xf0,0xcf,0xc7,0xf5,0xfd,0x73,0x59,0xf1,0xe4,0x86,0xb5,0x5d,0xce,0x6d,0xbf,0xc6,0xe5,0xa9,0xca,0x75,0xe9,0x69,0xe6,0x09,0xab,0x66,0x17,0x09,0xe9,0xbc,0x14,0xd8,0x6f,0xe9,0xc2,0x87,0x39,0x2f,0x87,0x1e,0xb8,0x16,0x08 +.byte 0x10,0xee,0x1c,0x2f,0x47,0x7d,0xa3,0x5b,0x1f,0x1f,0x5d,0x95,0xd0,0xa4,0xbb,0x08,0xc2,0x47,0xab,0x46,0x3c,0xbb,0xbe,0x3a,0x64,0x82,0x40,0x08,0x75,0x03,0x02,0x6e,0x6a,0xab,0x6b,0xd4,0x90,0xa7,0x28,0x7a,0xb4,0x8b,0x1f,0x6b,0xcc,0x16,0x30,0x16,0xf5,0xc6,0xd8,0x4a,0xed,0xc9,0xc7,0xac,0x0f,0x75,0x1b,0x13,0xe3,0x45,0x6d,0x22 +.byte 0x7e,0x3d,0x59,0x55,0x87,0x8d,0x04,0xee,0x85,0xac,0x98,0x0c,0x52,0x5b,0xe6,0x92,0x04,0x31,0xdf,0x7c,0x44,0x4d,0x06,0xbe,0xb2,0x5a,0x95,0xef,0x29,0x75,0x9b,0xb2,0xe7,0xb8,0x83,0x18,0x82,0x23,0x4e,0x66,0xe5,0xdd,0x47,0xa1,0x6b,0x33,0x4e,0x9c,0x13,0x0e,0x0a,0x8a,0x5c,0xba,0x7b,0x2f,0x6c,0x72,0x78,0x86,0xd2,0xf8,0xbd,0x1b +.byte 0x4b,0x9e,0xe0,0x99,0x46,0x7f,0x24,0x0f,0x1b,0xda,0x85,0x87,0xe9,0xda,0x96,0x25,0xc6,0x81,0x77,0x8b,0x56,0xae,0x7a,0x9c,0x47,0x34,0xe1,0xac,0xf2,0xba,0x52,0x95,0xf8,0x56,0x26,0x66,0xf0,0x53,0xcc,0xc4,0x6f,0x46,0x94,0x10,0x22,0x69,0xb1,0x93,0x7b,0x51,0xb7,0xb8,0xdd,0x42,0x67,0x51,0x6d,0x9c,0xb2,0xbd,0xdb,0xdd,0x19,0xa2 +.byte 0x25,0x13,0xfe,0x42,0xca,0x36,0xeb,0xce,0x15,0x41,0xe7,0x35,0xce,0xa8,0x45,0x56,0x58,0x9f,0x46,0xcf,0x11,0xe7,0xcc,0x40,0x54,0xe4,0x85,0x0d,0x73,0x36,0x7e,0xae,0x38,0x8c,0x56,0xab,0xf0,0x5f,0x5c,0xff,0x14,0x9b,0x46,0x1b,0x35,0xbd,0x03,0x0e,0x2f,0x9e,0xde,0xd8,0x82,0xfe,0xa0,0x09,0xb4,0xb4,0xbd,0x58,0xc0,0xe2,0x01,0xb1 +.byte 0xca,0x5c,0x3d,0xc3,0x18,0x5e,0xc1,0xee,0x61,0x60,0x00,0xca,0x1e,0xf3,0x71,0xd8,0x15,0x37,0xf0,0x2e,0x13,0xa0,0xf7,0xac,0x73,0x4b,0xfb,0x6a,0x27,0x6b,0xde,0x69,0x3d,0x19,0x36,0x4b,0x63,0x55,0xae,0xd1,0x2b,0x66,0x69,0x0d,0x64,0xa7,0x86,0xfd,0x3a,0xb8,0xe6,0x87,0xaa,0x32,0x5f,0xbc,0xa7,0x67,0xde,0x7a,0xe0,0xdd,0xff,0x57 +.byte 0x2c,0xc9,0x25,0x92,0x03,0x91,0xa8,0x0e,0x39,0xe4,0x9a,0xdf,0x21,0x29,0xc7,0xbc,0x93,0x01,0x2a,0x02,0xd8,0xaf,0xbc,0x20,0x57,0xc7,0x37,0x77,0xa7,0xad,0x5e,0x15,0x20,0xcf,0x4a,0x3c,0x22,0x1b,0x92,0xa9,0x05,0x91,0x70,0xb3,0x88,0x4e,0x97,0x58,0xf7,0x33,0x1a,0x05,0x33,0x57,0xdc,0xbb,0x2a,0xba,0xd0,0x22,0xac,0x40,0xbe,0x60 +.byte 0xa2,0x89,0xe6,0x6c,0xf3,0x5d,0xef,0x58,0xb4,0x7c,0x4a,0x28,0xb8,0x16,0xd2,0xe0,0x49,0xf5,0xe8,0xaf,0x84,0x39,0xae,0x1e,0xa2,0x34,0x67,0x42,0x26,0x31,0x93,0x87,0x7a,0xd5,0xde,0x79,0xdb,0x4c,0x7e,0xcf,0x1f,0xef,0x9a,0x4c,0xb9,0x70,0xe2,0x72,0x9b,0xcd,0x30,0xe5,0xf1,0x84,0x44,0x5a,0xff,0x36,0xa2,0x37,0xe7,0x49,0x78,0x63 +.byte 0xbe,0xe0,0x90,0xdf,0xef,0x9e,0xf3,0x55,0x9e,0x8a,0x51,0xe8,0xa3,0x32,0x2d,0xed,0xc8,0x99,0xf6,0x92,0xf9,0x62,0x74,0xa7,0x8d,0xcf,0xa5,0x09,0xb3,0x43,0xb9,0x18,0x70,0x59,0x4f,0xd2,0x7f,0x7e,0xce,0x1e,0x7d,0xe8,0xa9,0xb7,0x29,0x0f,0x86,0x8a,0xac,0x22,0x41,0x98,0xb2,0xc3,0x48,0x3b,0x60,0xcb,0x7b,0x1d,0xc3,0x5e,0x19,0x5b +.byte 0x31,0x57,0x12,0x09,0x41,0x54,0xf8,0x01,0x70,0x02,0x03,0x8a,0x6e,0x8e,0x5b,0x23,0xf3,0xd4,0x13,0xbf,0x51,0xba,0xf9,0x2d,0x6c,0xb9,0xb3,0x90,0xd0,0xa3,0x76,0xfb,0xef,0x85,0x17,0x8b,0x2c,0x05,0xa3,0x06,0x0a,0xaa,0xdd,0xbf,0xd4,0xcc,0xe4,0x96,0x19,0x7f,0x51,0xf6,0x7e,0xa1,0x2c,0x14,0x1c,0x21,0x99,0x28,0x3a,0x0e,0x36,0x1b +.byte 0xf1,0xd7,0x3e,0x29,0x94,0xa6,0x03,0xf7,0xe5,0x6f,0x1b,0x56,0xc8,0xfb,0x2d,0x4f,0x12,0x2b,0xc7,0x3a,0xec,0x5e,0xc8,0x88,0x1b,0xd8,0x65,0x21,0x04,0x0e,0xe2,0x95,0x6d,0x62,0xea,0xeb,0xee,0xbe,0x47,0x0a,0x90,0x26,0xe3,0x85,0xd7,0x1d,0xb5,0xd5,0x56,0x8b,0xc0,0x2f,0x7f,0x01,0xc8,0xac,0x90,0xc3,0x2d,0x10,0xf2,0x11,0x30,0x0c +.byte 0xa9,0x4d,0x13,0xde,0x65,0x6d,0x34,0x68,0x5d,0xad,0x3f,0x7a,0x56,0x3a,0x1f,0xb9,0xd6,0x7b,0x8f,0xe8,0x42,0x2a,0x16,0xb6,0x3f,0xf2,0x4f,0x14,0x8e,0x8e,0x29,0x88,0x68,0x1b,0x10,0x80,0x80,0x47,0x36,0xaa,0x82,0xf5,0xa8,0x97,0xc4,0xcb,0xc2,0xef,0xaa,0x9f,0xdc,0x96,0x4f,0x1f,0xaf,0x39,0x71,0x55,0x8f,0x3c,0xbf,0x26,0x91,0x46 +.byte 0x38,0x59,0xa7,0xd1,0xb5,0x87,0xd6,0x81,0x71,0x17,0x83,0x05,0x40,0x9c,0xf3,0x33,0x4b,0x09,0x06,0xb1,0x69,0xfb,0x43,0x1f,0xef,0x9a,0xfe,0xc3,0x4e,0x4e,0x25,0xe1,0x3a,0xfb,0xf9,0xc9,0x97,0xe2,0x1c,0xa1,0x9a,0x06,0x6e,0xbb,0x16,0x4a,0x9f,0xf4,0x87,0x31,0x38,0x78,0xae,0x77,0x4c,0x42,0x28,0xc4,0x63,0xc0,0x49,0x37,0x4f,0xf9 +.byte 0xeb,0x31,0x0d,0x3e,0x0c,0x8a,0xb7,0x17,0xa7,0x90,0x26,0xc2,0xea,0xa5,0x9d,0xe4,0x4d,0xc6,0x3a,0x33,0x2d,0x47,0x42,0x8c,0xeb,0x50,0xea,0xfe,0x74,0x43,0x06,0xcd,0xa5,0xb1,0x49,0xf0,0x98,0x91,0x25,0xf4,0x8d,0x06,0xd1,0xeb,0x56,0x2c,0xf9,0xc4,0x84,0x02,0x9e,0xf2,0x3a,0xfe,0xb4,0x39,0xce,0xee,0x85,0xb6,0x64,0x6c,0xbc,0x1f +.byte 0xe6,0x86,0x00,0xc3,0xa9,0xb4,0x53,0xdf,0x2d,0x7c,0xc6,0xde,0x2e,0x79,0x25,0x5c,0xbb,0xe5,0xbe,0x33,0xe9,0x58,0x49,0x35,0xbe,0xae,0xbc,0x06,0xdc,0x48,0x9d,0xc3,0x08,0x6f,0xe8,0xb8,0x48,0x67,0xea,0x1c,0x05,0xb4,0xf7,0xe3,0xcc,0xc1,0xb3,0xa8,0x61,0xcb,0xa8,0xf6,0x12,0x52,0x68,0x06,0x36,0x2b,0x15,0x43,0xc9,0x98,0xfe,0xe5 +.byte 0x43,0x11,0x0d,0xc3,0x37,0x38,0x7a,0xcb,0x98,0x14,0xc1,0xaf,0x29,0x36,0x35,0x63,0x74,0x98,0xcf,0x0f,0x44,0xe4,0x6e,0xf7,0x3f,0x6e,0x15,0xe8,0xe9,0x93,0x7b,0x96,0x1b,0x84,0xe7,0x8b,0x83,0x30,0xa1,0xdc,0xc3,0xb8,0x18,0x2f,0xc5,0x34,0xd1,0xa5,0xb9,0xee,0x4a,0x04,0xbf,0x26,0x63,0x29,0xba,0x90,0xb5,0x7c,0x83,0x2b,0x1f,0xe8 +.byte 0x5c,0x9f,0x23,0x40,0x7f,0x9c,0x2f,0x76,0x96,0xd6,0xd5,0x13,0xda,0x5c,0x81,0xa4,0x60,0x60,0xbd,0x5e,0xb3,0xd2,0x2c,0xaa,0x48,0x04,0x74,0x31,0x5d,0xbd,0x46,0xd8,0x8d,0x3f,0x62,0x2d,0x1e,0x17,0x97,0x08,0x71,0x06,0x1b,0x96,0x1b,0xd5,0x80,0xa6,0x41,0x06,0x10,0x6e,0x36,0xd4,0xfb,0x36,0x6d,0x96,0xb8,0x86,0x22,0x34,0xda,0x7e +.byte 0x6c,0x5f,0x3b,0x95,0x35,0x1b,0x42,0x3c,0xf2,0x9d,0xe3,0xe9,0x3f,0x44,0xd5,0x4c,0x60,0x55,0xae,0xbe,0x4f,0xf2,0xb3,0x84,0xa1,0x79,0xdf,0x86,0xf0,0x8f,0xad,0xa5,0xa3,0x4a,0xea,0x5d,0x68,0x34,0x17,0x4c,0xb7,0xd8,0x6f,0x67,0x22,0x85,0xe2,0x16,0xcf,0xba,0xee,0x92,0xeb,0x95,0x8e,0x67,0xb1,0xf0,0xbb,0xb0,0x34,0x2f,0x58,0x49 +.byte 0x56,0x3e,0x81,0x31,0xb6,0xc3,0x2c,0xee,0x2b,0x85,0x72,0xbc,0xe9,0x20,0xaa,0x4e,0x34,0xb9,0x8b,0x32,0x2f,0x9e,0xd7,0x98,0x63,0x9d,0xfd,0x3a,0xe9,0x30,0x49,0x23,0x4a,0xb4,0xcb,0xc5,0xe5,0x78,0xcd,0x22,0x90,0xce,0x9f,0x35,0x13,0xda,0x8f,0x14,0xdb,0x36,0x0f,0x66,0x87,0x62,0x50,0xde,0x52,0x15,0x10,0x67,0x8a,0x5c,0xdb,0x76 +.byte 0x51,0x7f,0x72,0x9b,0x8e,0x91,0x39,0xc8,0x3c,0x34,0x0f,0x3d,0x92,0x07,0xb8,0xef,0x2a,0x8b,0x59,0xbd,0x82,0xc1,0x5c,0x95,0x93,0x0d,0x3d,0x9b,0x51,0x53,0x38,0x6b,0xd0,0xe3,0x5b,0xbb,0xe5,0x6c,0xc0,0xb5,0x71,0xa8,0xd8,0x7d,0x5d,0xbd,0xfc,0x69,0xcf,0xcc,0xa1,0xcd,0x83,0x9d,0x8f,0x46,0x47,0xe7,0x36,0x19,0x9f,0x4d,0xda,0x9c +.byte 0xcb,0x2a,0x47,0x58,0x93,0xbb,0x64,0xa3,0x89,0x53,0xbf,0xc7,0xc2,0xe2,0x65,0x0f,0x4f,0x17,0xc6,0x4c,0x15,0xfe,0x4b,0x95,0xb2,0x79,0x4a,0xb8,0xf6,0xae,0xcc,0xba,0xc3,0x5d,0x18,0xb2,0x8e,0xd8,0x6b,0x43,0x1b,0x2f,0xe1,0x36,0xb2,0xa5,0x22,0xa0,0xc7,0xc0,0x26,0x8e,0x48,0x77,0x0c,0x14,0xdd,0xdc,0xde,0x71,0x98,0xce,0xdd,0x61 +.byte 0x85,0xd9,0x23,0x42,0x7f,0x85,0xc8,0x06,0x81,0x3e,0xa2,0x0f,0x1e,0x3e,0xcf,0x33,0xef,0x43,0x6a,0xc7,0xee,0x3f,0x91,0x68,0x32,0x89,0xd9,0xed,0xdf,0x45,0x33,0x10,0xbb,0xd5,0xef,0x1d,0x3c,0x1e,0x26,0x21,0x4d,0x1a,0x06,0x98,0x60,0x71,0x7f,0xce,0x45,0x4e,0xe3,0x3f,0xfa,0xff,0xcd,0xe2,0x92,0x82,0x2e,0x83,0x69,0x9c,0xc6,0x5c +.byte 0x6e,0xb6,0xec,0x28,0xdc,0x7b,0xdb,0xf3,0x02,0x3a,0xf7,0xad,0x9b,0x7a,0x73,0xb2,0x07,0x70,0x76,0x9d,0xa2,0x11,0xcf,0x89,0xea,0xaf,0x6a,0xd2,0x15,0xeb,0x5a,0x99,0x1a,0x17,0x1d,0xce,0xc0,0x7f,0x50,0x26,0x84,0x07,0xd7,0x7e,0x33,0x27,0x74,0x84,0x18,0x32,0x86,0x32,0x34,0x28,0xe8,0x45,0x21,0xb7,0x26,0x3b,0x11,0xbb,0x9a,0x8b +.byte 0x46,0x8e,0x27,0xf8,0x62,0xb5,0x98,0x6e,0x03,0xee,0x9e,0xcb,0xbc,0x74,0xbe,0x63,0x7a,0x86,0xe5,0x75,0xeb,0x7f,0x14,0xa6,0x96,0x76,0x5a,0x46,0xa9,0xda,0xf1,0x4e,0x0e,0x90,0x59,0x56,0x4a,0x48,0x2d,0x91,0xbe,0x78,0x5b,0xfb,0xf7,0xea,0xab,0x1c,0xc0,0x0c,0x5d,0xba,0xb4,0x7b,0xc7,0x21,0xb1,0xc9,0xa3,0x20,0xe6,0xae,0xee,0x0e +.byte 0xf0,0x3b,0x44,0xd6,0xaa,0x57,0x88,0x1f,0x76,0xc8,0x43,0x07,0x91,0x71,0xa5,0xcc,0x04,0x38,0x01,0x13,0xa6,0xea,0x18,0x48,0x8f,0x09,0x8d,0x37,0x8b,0x6f,0x35,0x36,0x51,0xc6,0x30,0xca,0x9e,0xe2,0xaf,0x0c,0x26,0x14,0xe3,0xbf,0xea,0x0e,0x14,0x88,0x97,0xcc,0xf6,0xc1,0x8f,0xad,0xef,0x2d,0xc1,0x0f,0xad,0x45,0x12,0x7a,0xe6,0x37 +.byte 0x97,0xcb,0x34,0x83,0xd8,0xef,0x34,0x2a,0xce,0xd0,0x21,0x8a,0x7d,0x87,0x7a,0x66,0xf7,0x1c,0xdf,0xa0,0x3f,0xa0,0xf6,0xb3,0x24,0xee,0x6e,0x21,0xe9,0xc3,0x73,0xe4,0xd9,0xc6,0xf6,0xf6,0xac,0x25,0xb7,0xb5,0x64,0x7f,0xcc,0x88,0x3e,0x98,0xe1,0xef,0xa9,0xd2,0x03,0x10,0x4b,0xa3,0xbc,0x3c,0x24,0xfc,0x41,0x36,0x30,0x2d,0xca,0x17 +.byte 0x35,0xd6,0x17,0xa2,0x2b,0x48,0xed,0xd3,0xd7,0x18,0x4f,0x45,0xe9,0x59,0x03,0x35,0xa0,0x80,0x75,0x17,0x48,0xd5,0xea,0x07,0x7a,0x6c,0x3f,0x7a,0x2c,0x02,0x0a,0x7f,0xb5,0x17,0xea,0xf4,0xf6,0xb5,0xf4,0x81,0xba,0x69,0x44,0x81,0x6b,0xff,0xb2,0x43,0xae,0x3d,0x37,0x81,0x91,0x3f,0x6a,0x70,0x35,0x2d,0x06,0x9d,0xa8,0xb5,0xb8,0xc7 +.byte 0x19,0x3a,0x5f,0x59,0x79,0x0b,0x62,0x23,0xa4,0x5b,0x46,0x7b,0x17,0x82,0x19,0x87,0xe8,0xdf,0x09,0xb7,0x50,0x7e,0x40,0xe3,0x71,0x2d,0x09,0xde,0x69,0x2e,0x6c,0x35,0x5c,0x44,0xae,0xb7,0x05,0xb8,0x7e,0xb4,0xe4,0x34,0x05,0x1f,0xd2,0x1f,0xe5,0x79,0x2a,0x15,0xf8,0x8f,0x02,0xc7,0xc8,0x1e,0xe6,0x12,0x83,0x08,0x9c,0x7a,0x2f,0xc6 +.byte 0xc9,0x15,0x0f,0x0f,0x0f,0xa9,0x53,0x16,0x19,0x5b,0x74,0x58,0x6c,0xac,0x21,0x72,0x7f,0xa1,0xae,0xbc,0x34,0x76,0xa6,0x9b,0xbe,0x0f,0x13,0x55,0x50,0x5a,0x8b,0x9e,0xb3,0xf3,0x9e,0x8b,0x61,0xbe,0xb4,0x09,0x71,0x61,0xf0,0xd6,0xaa,0x8c,0x0d,0x0c,0x66,0x31,0x88,0xe3,0x71,0x6a,0xb5,0xaa,0xc0,0x9b,0xce,0x0d,0x79,0x90,0xc1,0x0a +.byte 0xf9,0xfe,0x4d,0x49,0xd0,0x5a,0x63,0xf1,0xfc,0x47,0x71,0x9e,0xbb,0xd1,0x2c,0xef,0xfe,0x90,0x28,0x75,0x82,0xf6,0xa5,0x95,0xea,0x65,0xfa,0xe8,0x04,0xcd,0xb4,0xe1,0x0d,0xb2,0xac,0xd5,0x12,0xf5,0x17,0xbb,0x3b,0x2e,0x52,0x9e,0x7b,0xe7,0x8e,0x86,0x03,0xce,0x77,0x01,0xf0,0x4f,0xb5,0xf7,0xef,0x8b,0x37,0x5e,0x97,0x80,0xbb,0x2b +.byte 0xcf,0x9a,0x63,0x18,0xc5,0x0c,0xfb,0x3c,0x91,0x9c,0x37,0x90,0x76,0x71,0x62,0xbc,0x80,0x40,0x1a,0x74,0xb8,0x1b,0x61,0xb1,0x89,0x4d,0xf7,0x8d,0xd4,0x46,0xef,0x1f,0x3b,0xac,0xe8,0x41,0x62,0x8e,0xea,0x2b,0x56,0x22,0x25,0x37,0x70,0x53,0xcd,0x8f,0x57,0xfa,0xad,0x00,0xc5,0x0c,0x9e,0x57,0xde,0x50,0x07,0x8d,0x80,0xbf,0x22,0x5d +.byte 0x4a,0xbd,0x6a,0xcb,0xfc,0x6f,0xd1,0x56,0x8f,0xd5,0x34,0x8a,0xe6,0xe9,0xa0,0x00,0x06,0x12,0xd8,0xb1,0x49,0x0a,0xbb,0x87,0xe5,0xca,0x75,0x11,0x4c,0x85,0x60,0x77,0xc0,0x90,0x1c,0x14,0x38,0x38,0x3e,0x4f,0xff,0xbf,0xfc,0xa1,0xa1,0xe7,0xb0,0x5d,0xd8,0x1f,0x33,0x07,0x5f,0x04,0x4f,0xc7,0x93,0xc6,0xcc,0xe3,0x01,0xd0,0x43,0xe1 +.byte 0xd9,0x00,0xc5,0x9f,0x79,0xab,0xfc,0xe9,0x55,0x51,0x03,0x0c,0xe1,0x73,0xd6,0x09,0xe3,0xb9,0x76,0x72,0x77,0x4c,0x1b,0x7c,0x57,0x1e,0x7f,0x5f,0x02,0x83,0xa3,0xc6,0xde,0x23,0x85,0x76,0x1a,0xbf,0x48,0xc8,0x02,0xdb,0x31,0x30,0x95,0x85,0x68,0x8a,0xf6,0xe9,0x48,0x7f,0xc9,0x26,0xab,0x68,0x36,0x9f,0x1c,0xf0,0x90,0xbc,0x4a,0x68 +.byte 0x94,0xf8,0x7f,0xae,0xa9,0x3b,0x5b,0x63,0x9a,0xcd,0xe3,0xf0,0xac,0x9f,0x6f,0x78,0xa0,0x67,0x58,0xd8,0x2c,0x71,0x8a,0x14,0x31,0x07,0x95,0x0c,0x38,0xa4,0x53,0x33,0x60,0x23,0x21,0x87,0x6b,0x4f,0xf9,0xa8,0xb8,0xfc,0x8e,0xf1,0x3a,0x03,0x0b,0x03,0x02,0x33,0xbc,0x6a,0xb9,0x8e,0x41,0xc8,0x38,0xd8,0x83,0x30,0x6a,0x61,0x5c,0xcf +.byte 0x49,0xdd,0xd7,0xda,0x2c,0xaf,0xc4,0x68,0xad,0x07,0x9c,0xd4,0xaf,0x94,0x64,0xcf,0xe1,0x9b,0x37,0x50,0x65,0x03,0x20,0x3c,0x34,0x43,0xe9,0xb0,0x9b,0xba,0xb1,0x9a,0x3e,0x10,0x99,0x8f,0x93,0xb7,0x3d,0xac,0xbd,0xab,0xa8,0xfa,0x74,0x90,0xe1,0x38,0xe4,0xf3,0x47,0xfc,0xad,0x8b,0xb4,0x98,0xe4,0x65,0xe9,0xd9,0x8a,0x21,0x81,0x4f +.byte 0x0c,0xd7,0xb1,0x84,0xb9,0x69,0x68,0x64,0xa3,0x1f,0x25,0x84,0x5f,0xf7,0x3f,0xca,0x52,0xff,0xda,0xc9,0x3d,0x5e,0x8b,0x57,0xd3,0x9a,0x1d,0xb7,0xae,0x90,0xa4,0xc3,0x78,0x68,0xfd,0x80,0x3f,0xfd,0x5c,0x09,0x83,0x5d,0xc2,0x48,0xd8,0x84,0xeb,0x8a,0xfe,0xbe,0x30,0x12,0x79,0x54,0x5f,0x7f,0x6e,0x4b,0x8a,0x1e,0xcb,0xcd,0xed,0xb6 +.byte 0xe9,0x6d,0x8a,0x1f,0xdc,0xb1,0x46,0xab,0xdc,0x0d,0xbf,0xda,0xd9,0x39,0x3b,0xd2,0x81,0x00,0x83,0x77,0x32,0xf7,0xdf,0x0e,0x31,0x5d,0x1d,0x6c,0xa7,0x4e,0x54,0xa8,0xac,0x81,0x8c,0xb6,0xa5,0x89,0x02,0xd7,0x2e,0xfd,0x26,0xa3,0x9e,0xcf,0xdb,0x1f,0x5a,0xf3,0x54,0xac,0xe5,0xd0,0x1f,0x9b,0xa7,0xab,0x28,0xcc,0x66,0xd3,0xbc,0x4c +.byte 0x54,0x1a,0x54,0x73,0x78,0xde,0x08,0xd5,0xa5,0x08,0xdc,0x00,0x09,0xc5,0x37,0x61,0x1a,0x98,0x12,0x84,0x2d,0xff,0xc3,0x25,0x62,0x93,0x83,0x05,0x66,0x3d,0xfb,0x1d,0x54,0x08,0x8a,0x50,0x03,0xc4,0xc4,0x6e,0xfa,0x16,0x83,0xbb,0x27,0xf1,0xb7,0x31,0x92,0x64,0x76,0xbc,0xf0,0x44,0x62,0xe9,0x5e,0x15,0x94,0xdc,0xe9,0xf3,0xf8,0x20 +.byte 0x93,0x4d,0x11,0xa2,0xc8,0xde,0x83,0xe6,0x75,0x63,0xfe,0x13,0x75,0x0f,0x79,0xd1,0x3d,0x75,0xb7,0x43,0x62,0x57,0x8d,0x96,0x9c,0xa3,0xc4,0xb2,0x84,0x6a,0x14,0x6e,0x17,0x32,0x09,0x76,0x95,0xbb,0xd6,0xc1,0x2e,0xdc,0x8c,0x73,0xd7,0xad,0x5a,0x41,0x8b,0xb3,0x7e,0x8d,0x90,0xec,0xf5,0xa0,0x46,0x90,0x4c,0x52,0xec,0x97,0xc6,0x98 +.byte 0x7d,0x19,0x77,0xa0,0x99,0x85,0x11,0x26,0x77,0x26,0xf9,0xac,0xe3,0x81,0xcf,0x7d,0x22,0xc8,0x00,0x3d,0x5b,0xee,0xa5,0xf8,0x6d,0xfe,0x47,0xe4,0xef,0x60,0xcc,0xd0,0x33,0xf7,0x5b,0xed,0xbd,0x82,0xc9,0xa8,0x41,0xb8,0x47,0x34,0x9f,0x62,0xb2,0x67,0x62,0xb0,0x3a,0x27,0x95,0xe1,0x22,0x76,0x98,0x0f,0x35,0xaf,0xfc,0x4d,0xc7,0x92 +.byte 0x92,0x7e,0xaf,0x3b,0x3a,0x36,0x5e,0x5c,0xbf,0x43,0x02,0x66,0x5a,0x30,0x78,0x82,0x52,0x20,0x98,0xd6,0xa1,0xe9,0x9a,0x61,0x54,0x0b,0x74,0x85,0xb5,0x99,0x69,0x9f,0x9b,0x3b,0x2f,0x49,0xec,0xb3,0x18,0x0c,0x4a,0x53,0x20,0xd7,0x80,0x7b,0xd4,0x20,0x21,0x32,0x89,0x08,0x81,0x50,0x2b,0x16,0x8d,0xbb,0xe6,0xbb,0xc7,0x74,0x80,0x67 +.byte 0x47,0xf1,0x06,0x68,0x02,0x37,0x31,0x00,0x50,0x8b,0xe2,0x44,0x85,0x2e,0x39,0x54,0xda,0x26,0x7b,0xe1,0xb0,0x23,0xd7,0x0c,0x3c,0x3b,0x81,0x9b,0xa6,0xbe,0x24,0xfd,0x09,0x73,0xbe,0xc3,0x2f,0xa0,0x7b,0x85,0x5b,0x1b,0x55,0x4e,0x9e,0x38,0x80,0x61,0xd7,0xe8,0x9b,0xec,0x88,0x00,0x6a,0x64,0x1b,0xd5,0x65,0x20,0x2a,0x62,0x64,0xbc +.byte 0x21,0xca,0xce,0xc3,0xeb,0x2d,0x2b,0x5c,0x4d,0xb8,0x7c,0xb5,0xbe,0x98,0x0d,0x5b,0x88,0x23,0x60,0xff,0xbe,0x0a,0xb6,0xdd,0xdf,0x28,0xd5,0x2c,0xe5,0x9d,0xb5,0x29,0xea,0x6c,0x3a,0xf4,0x78,0x91,0xa3,0xb2,0xab,0x12,0xf9,0x90,0x96,0xc9,0xa4,0xfc,0x4d,0x28,0x2b,0x0c,0x28,0x8b,0xb7,0x8b,0x36,0xd6,0x80,0xbf,0x07,0x09,0xf9,0x62 +.byte 0x32,0xc0,0x50,0x60,0xd9,0x73,0xe3,0xbe,0xfa,0xa6,0x78,0x48,0x47,0xd7,0xb5,0x39,0xd8,0x04,0x6d,0x79,0x98,0x2e,0xd6,0x3a,0xe5,0xc9,0x01,0xd0,0x00,0x2e,0xd2,0x8b,0xd7,0x1f,0xf1,0xba,0xd4,0x0e,0x9f,0x9d,0xab,0xbf,0x2c,0xe1,0x75,0xf6,0x9c,0xc0,0xae,0x73,0x2b,0x58,0xcb,0x6d,0x46,0x6d,0x11,0xb7,0xce,0xc7,0xef,0x34,0x2c,0x11 +.byte 0x93,0x3c,0x17,0xd9,0x3e,0xad,0xc9,0x4c,0xb3,0xd0,0x0a,0xd0,0xfe,0xf3,0x9d,0xc5,0x43,0x03,0xa9,0x78,0x4a,0x42,0x7f,0xfb,0x75,0xd2,0x85,0xfb,0xe7,0xe6,0xa9,0x48,0x2f,0xa6,0xc3,0x16,0xe2,0x2a,0x9d,0x0d,0xcb,0x2e,0x8b,0x75,0xa8,0x14,0x3a,0x2e,0xb1,0xff,0x58,0x1d,0xa8,0xa6,0xc0,0xf6,0x17,0xda,0xc1,0xce,0xaf,0x08,0xa9,0xc2 +.byte 0xa3,0xc1,0xab,0xb6,0xe8,0x10,0x57,0x8a,0xce,0xc0,0x03,0x5c,0x53,0x5c,0x02,0x5d,0xcf,0x5c,0x65,0xc6,0x47,0x3c,0x62,0x0e,0xa3,0xfc,0xe2,0xae,0x10,0x55,0x4a,0xb4,0x27,0xe8,0x59,0x5e,0x45,0xa9,0xbb,0x21,0x10,0x91,0x46,0x1f,0x50,0x3b,0xc6,0x8c,0xa1,0x8a,0xee,0x5e,0x6e,0x32,0xe6,0x42,0x40,0x79,0x7f,0xbb,0xb3,0x5b,0x05,0xde +.byte 0xe0,0xf6,0x7f,0x3d,0x37,0xe6,0xc3,0x3b,0x40,0xc9,0xe0,0x42,0x36,0xd0,0x0e,0x13,0x32,0x3e,0x48,0xce,0xd8,0xa2,0xef,0xae,0x93,0x66,0x7d,0xde,0xb9,0xdd,0x60,0x15,0x53,0xf2,0xd9,0x90,0x3d,0x38,0x8c,0xa6,0x34,0x44,0xb5,0x6c,0x74,0x7d,0x9d,0xe7,0xd0,0xef,0x6c,0xd6,0xfe,0x9b,0x79,0x4e,0x79,0x5e,0x48,0xef,0x93,0xb2,0x81,0x0b +.byte 0x2b,0xee,0x83,0x69,0x3d,0x15,0x8c,0x27,0x69,0x6f,0xca,0xbf,0x75,0x29,0x37,0xc6,0xe6,0xca,0xb2,0x70,0xd0,0xaf,0xc8,0x5e,0x69,0xf1,0x6b,0x2d,0x0d,0xe7,0xe9,0xbf,0x07,0x52,0xe5,0xac,0x98,0xcf,0xcf,0xd6,0xdd,0x7c,0x2b,0xfc,0x8f,0xd2,0x5f,0x81,0x4b,0x1b,0x7b,0x2d,0x84,0xe2,0x69,0x96,0xcb,0xa2,0x59,0x10,0xba,0xda,0x51,0x11 +.byte 0xeb,0xc3,0x4f,0x10,0xbf,0x8e,0x5b,0xbb,0xa3,0x29,0xe9,0xd8,0x0e,0x71,0xa0,0x1b,0xff,0xee,0x36,0x8c,0x00,0x83,0x6b,0x32,0xfe,0x05,0xeb,0x89,0x8f,0xed,0x48,0x22,0xe1,0x76,0x0a,0xac,0xae,0x3c,0x24,0x54,0x84,0xc2,0x0f,0x79,0x33,0x2b,0x49,0x35,0x1c,0x84,0x5a,0xca,0x92,0x6c,0x1f,0x78,0x15,0x5a,0x36,0xad,0xd5,0x1d,0x9d,0x10 +.byte 0xc1,0x5f,0x7c,0x61,0x60,0xba,0x2e,0xe6,0x9b,0x34,0x02,0xe9,0x68,0x1c,0xfb,0xbf,0x02,0xdc,0x79,0x57,0x1c,0x0f,0xc8,0x8c,0x2a,0x66,0x2a,0x50,0xaa,0x81,0x4e,0x1f,0xa8,0x2d,0xe4,0x61,0xe8,0x43,0x84,0xcb,0xda,0x96,0xf9,0x4a,0xd0,0x8f,0xe1,0xd7,0xc4,0x05,0xf5,0x76,0xfa,0x47,0x7a,0x07,0x1a,0x77,0xbb,0x63,0xb3,0x3a,0x85,0x3b +.byte 0x0d,0x32,0x4f,0x14,0x15,0x02,0x5b,0x9c,0xbc,0xc2,0x12,0x90,0x0f,0x7b,0x94,0x27,0x5f,0x70,0x23,0xd8,0x5d,0x54,0xc4,0xca,0x6a,0x69,0x9e,0xd1,0xb3,0x2a,0x75,0x1a,0x07,0x9c,0x20,0xf6,0x76,0x22,0x4d,0x09,0x30,0x24,0x3f,0x3b,0xe5,0xcb,0x4b,0x5a,0x03,0x2d,0xe8,0xbe,0xed,0xf0,0xe3,0x91,0xf2,0x6c,0xb8,0x02,0x2d,0x6c,0x7a,0xa6 +.byte 0xc1,0x8e,0xa7,0xbb,0x73,0xdf,0x40,0xa5,0x60,0x91,0xbf,0xbe,0x28,0x0b,0x37,0x2e,0x5f,0x4b,0xcd,0x14,0x4d,0x2d,0xfc,0x5e,0x43,0xb5,0x78,0x8d,0xea,0xa0,0x86,0x54,0x4f,0xb6,0x25,0x40,0x39,0x3f,0x9c,0x7a,0x26,0x74,0x88,0x42,0x53,0xb0,0x3b,0x81,0x75,0x04,0x67,0x41,0x65,0x66,0x2c,0xdc,0xe9,0xf0,0xb3,0xab,0x2a,0xa5,0xf3,0xef +.byte 0xfa,0xc5,0x10,0x63,0xe2,0x70,0xb5,0x29,0x60,0x86,0x9e,0xb9,0x0b,0xe2,0xc4,0x05,0xa9,0x3c,0x1b,0x60,0x15,0x6b,0x2f,0x74,0x93,0x5e,0x70,0x9a,0x56,0x6a,0xc4,0x92,0x49,0xaa,0x95,0x51,0xc4,0xba,0xfd,0xf6,0x2d,0x36,0x3e,0x66,0xbd,0x74,0xbc,0x2e,0xb3,0xad,0xa1,0x41,0x50,0x33,0x79,0x84,0xac,0x21,0x7a,0xfc,0x3a,0x8e,0xdb,0xcc +.byte 0x27,0xf6,0x2c,0x5c,0x23,0x38,0x73,0xd5,0xaf,0xc9,0x2d,0x9c,0x18,0x58,0xdf,0x8f,0x89,0x9d,0xdd,0x00,0x3c,0x5f,0x23,0x00,0x6e,0x66,0x1d,0xf3,0x1c,0x40,0x9d,0x43,0xb0,0x74,0xf1,0x41,0xa5,0x77,0xcb,0x8d,0x5b,0x94,0x68,0x95,0xb6,0x0e,0xd4,0x4d,0x47,0x9b,0xd2,0xcd,0x9b,0x94,0xa4,0x28,0xf9,0xf0,0x3d,0xcf,0x89,0xb1,0xc3,0x73 +.byte 0x84,0x15,0xb6,0xc8,0x6b,0xf1,0xb1,0xdc,0x1b,0x1a,0x6f,0xb5,0x73,0x87,0x8b,0x63,0xbf,0x4b,0x25,0x9b,0xe4,0xdd,0x44,0xed,0xe7,0x0e,0x6f,0x03,0xae,0xa1,0x5e,0x1f,0x5f,0xa7,0xa4,0xed,0x69,0x7a,0x91,0x6d,0x55,0xac,0xce,0x18,0x32,0x17,0x78,0x49,0x9f,0x1e,0x9c,0xd2,0x7b,0x1f,0x74,0x60,0xa5,0x64,0xb1,0x99,0xe6,0xc5,0x0d,0x69 +.byte 0xfa,0xb2,0xd9,0x05,0x61,0x71,0xa4,0x6f,0xc2,0xb6,0x91,0x0e,0x6c,0xf2,0xa6,0x6c,0xea,0x8e,0x94,0x8b,0xac,0xa7,0xfe,0x70,0x8e,0x8d,0xc2,0x85,0xa6,0xa7,0x8e,0xe8,0xfa,0xbc,0xa1,0xaf,0x0e,0xa9,0x06,0xa4,0x9a,0xb0,0x23,0x93,0xbc,0x93,0x2d,0x97,0x42,0xe2,0x0d,0x3a,0x65,0xb4,0x60,0x5b,0xeb,0xa1,0x20,0x8a,0xdc,0x17,0x6b,0xc5 +.byte 0x19,0xc3,0x67,0xbf,0xae,0xf7,0xb9,0xb1,0x88,0x7f,0xe5,0x1b,0xc2,0x61,0x97,0xa0,0xd3,0x64,0x74,0x6b,0x7a,0x46,0x39,0x3f,0xc8,0xd3,0x53,0x79,0x74,0x4e,0x1e,0x63,0x91,0xc5,0x4a,0x70,0xb0,0x05,0x35,0x19,0xc2,0x26,0x54,0x44,0x3b,0xa9,0x12,0x40,0xd0,0x21,0x19,0xf3,0x8d,0xc7,0x2b,0x88,0x9a,0xec,0x41,0x8f,0x4f,0x23,0x19,0x1a +.byte 0xf3,0x1d,0x0a,0x88,0x0f,0xa7,0x02,0xd4,0x78,0x88,0xe6,0x43,0xb6,0x9e,0x07,0xdf,0x6a,0x1f,0x41,0xbb,0x3e,0xea,0x15,0xff,0x66,0x4c,0x7a,0x8b,0xee,0x27,0x47,0x81,0x81,0x95,0xa2,0x22,0xb4,0x9f,0x1c,0x09,0x1c,0xfc,0x0a,0xef,0x88,0x7f,0x59,0x60,0x91,0x6a,0xe4,0x92,0x8c,0x02,0x54,0xc9,0xee,0xc7,0x5e,0xd1,0xbf,0xc9,0x41,0xde +.byte 0x2f,0xa3,0x22,0x07,0x1d,0x8c,0xe1,0x04,0x59,0x94,0x75,0x3e,0xee,0x56,0x62,0x07,0x80,0x18,0x60,0x78,0x0e,0x55,0x06,0xec,0xe1,0xa5,0xf6,0x21,0x7e,0xf9,0x37,0xab,0x6a,0xed,0x07,0xcb,0xbf,0xa2,0xab,0x50,0xee,0x1f,0x2f,0x54,0x2b,0x82,0x93,0x59,0x03,0x35,0xd9,0xe8,0x2b,0xa6,0x03,0xc2,0xef,0x37,0x85,0xfc,0x89,0x06,0x30,0xe0 +.byte 0xc2,0x00,0xc4,0xaf,0x59,0xb6,0x31,0x52,0x37,0xa4,0x6c,0xdb,0x1b,0x20,0x87,0xf0,0xa4,0x15,0x4b,0xa8,0xd9,0x7e,0x1b,0x96,0x00,0x07,0xf4,0x86,0x07,0x14,0x55,0x70,0x37,0xe3,0xe3,0xf0,0xeb,0xd6,0xf1,0xe0,0xe9,0x6c,0xdf,0x3d,0xaf,0x86,0xb8,0x00,0x9b,0xdf,0xc6,0x5c,0xd2,0x53,0xcb,0xcf,0x63,0xcc,0x3e,0x6d,0x62,0xeb,0xe6,0x97 +.byte 0xd8,0x54,0xed,0x36,0xe4,0xed,0x69,0xaa,0x10,0x83,0xde,0x16,0xfd,0xcc,0xd6,0x24,0xb9,0x3c,0x4f,0x99,0x81,0xc2,0x23,0x16,0x91,0x5d,0x9f,0x46,0xa5,0xdd,0xb4,0x8a,0xe1,0x07,0x89,0x84,0x2e,0x62,0x48,0xf6,0x1a,0x17,0x7b,0xc8,0xf7,0xb4,0x3d,0x9e,0x82,0xe3,0xe3,0xcf,0x0b,0xd9,0x52,0x90,0x61,0xd8,0xdf,0x9e,0xc4,0xc7,0x7c,0xfa +.byte 0xcf,0x09,0xd2,0x94,0x86,0x37,0x94,0xaf,0x7e,0x0a,0x9d,0x16,0xee,0xad,0xfb,0xa2,0x9e,0x2d,0x2f,0xad,0xd5,0xc2,0xf9,0x91,0xf8,0x7e,0x2b,0xb8,0xb2,0x60,0x3c,0x0a,0x89,0x53,0x07,0x87,0x3b,0x83,0x70,0xee,0x71,0xa3,0x94,0x0b,0x77,0x50,0xeb,0xcc,0x23,0xf0,0xbe,0x95,0x51,0x54,0xd2,0xd6,0xd2,0x09,0xa5,0x19,0x3d,0x4e,0xec,0xe3 +.byte 0x88,0x71,0xa7,0xb1,0x10,0x03,0x7e,0xc4,0x92,0x2a,0xe7,0x99,0x75,0xff,0xae,0x10,0x3d,0xbb,0x33,0xc9,0x7f,0xc2,0xe6,0x3c,0xc4,0xe7,0xba,0x37,0xba,0x68,0x69,0x92,0x4a,0xfb,0x32,0x3b,0xb5,0xde,0xdb,0x91,0xd0,0x8e,0x77,0xf2,0x1e,0x2d,0x25,0xb4,0xa0,0x42,0xef,0x78,0x6c,0x75,0xcb,0xa0,0x73,0xdf,0xde,0xd8,0x26,0xfe,0xe3,0xf9 +.byte 0x74,0xe7,0xa0,0xd2,0xbd,0x6c,0x99,0x8d,0x07,0xf2,0xf8,0xff,0x36,0x2d,0x8e,0xda,0x5e,0x5c,0x47,0x06,0xf8,0x08,0x33,0x1d,0x93,0xcf,0xc3,0x1a,0x20,0x86,0xb6,0x8e,0x44,0x10,0xbc,0xba,0x89,0xfc,0xa3,0x57,0x92,0x2c,0x28,0xa1,0xd0,0xab,0xdc,0xba,0x0a,0x7e,0x9d,0xd2,0xfd,0x09,0xd3,0x87,0x6c,0x06,0x44,0x17,0x73,0xfe,0xc9,0x8b +.byte 0x52,0xd3,0x09,0x60,0x14,0x03,0xb1,0x79,0x4c,0x9c,0xc4,0xec,0x42,0x4c,0xd3,0x21,0xe5,0x34,0x21,0x38,0xdd,0x12,0x95,0xd4,0x20,0x50,0xef,0x5f,0x46,0x4f,0x37,0x65,0xd5,0xf1,0xb2,0x2c,0x6c,0x9a,0x06,0x28,0x77,0xbf,0xe3,0xec,0xec,0x2b,0xcb,0x2c,0x8b,0x62,0x2e,0x39,0xaa,0x28,0x0b,0x51,0x01,0xa5,0x02,0x06,0x66,0x4a,0x67,0x0c +.byte 0x96,0xa3,0x12,0x74,0x94,0x2c,0x0f,0x23,0xa3,0xea,0xda,0x1a,0x6d,0x54,0x30,0x33,0xc8,0x33,0x0a,0xfb,0x25,0x2a,0x8b,0x9a,0x87,0xd9,0x9d,0x37,0x4c,0x41,0x3b,0xe5,0x4a,0x81,0x92,0x40,0x38,0x18,0x82,0x13,0x54,0xde,0x56,0x11,0x63,0xf3,0x09,0x61,0x3b,0xdd,0x0c,0x71,0xe8,0x4f,0xc2,0x9a,0x77,0x2f,0xeb,0xf1,0x39,0x1c,0x10,0x0e +.byte 0x01,0xaf,0x92,0x34,0x9a,0xb6,0x7b,0x79,0x86,0x0c,0xf1,0x53,0xb6,0x59,0xbd,0x6d,0x79,0x6e,0x37,0x11,0x25,0x67,0x95,0x31,0x4f,0x43,0xdf,0xb7,0x4b,0x80,0x8d,0x07,0x3c,0x49,0x73,0x8a,0x72,0x61,0x02,0x0f,0x2f,0x13,0xed,0x91,0x10,0xf6,0x08,0xf3,0x50,0x4a,0xd4,0x36,0xcb,0x52,0xb3,0x3b,0xe6,0xef,0x85,0xe9,0xe0,0xad,0x0d,0x3d +.byte 0x84,0x07,0x70,0xdf,0x16,0x47,0xeb,0x26,0x19,0x27,0xaf,0x7a,0x9f,0x2f,0x2b,0x6d,0xbb,0x37,0x68,0x8e,0x19,0x46,0x5a,0x65,0x0d,0x0a,0x67,0xd8,0xe2,0xc2,0xcd,0x49,0xf6,0xc2,0x27,0xac,0x12,0xea,0x1f,0x81,0x60,0xac,0x8b,0x5d,0xcc,0x9a,0x5b,0xec,0xc3,0xcb,0x85,0x0d,0xef,0xa6,0xd5,0x33,0xb3,0x67,0x73,0x3f,0xc9,0x90,0x25,0x3e +.byte 0xe6,0x7c,0x41,0x59,0x83,0xf7,0x90,0x4a,0xbf,0x14,0x72,0x11,0xf2,0x3a,0x38,0x58,0x17,0xd8,0x3d,0x00,0xc6,0x42,0xf2,0xbc,0xfd,0x05,0x37,0x6d,0x11,0xb0,0xd7,0xb2,0xb7,0x73,0x69,0x80,0x47,0x30,0x64,0x13,0x8c,0x24,0xb2,0x42,0x12,0x8c,0xc0,0x8a,0x45,0x0b,0x71,0x23,0xeb,0xac,0x65,0xda,0x44,0x13,0x85,0x77,0xdf,0xb8,0x4b,0x69 +.byte 0xd4,0x8e,0x40,0x54,0x24,0xac,0xc8,0x62,0x36,0x51,0x20,0xaa,0xcd,0x5d,0xa5,0x73,0x2c,0x81,0x92,0x99,0x44,0x6b,0x04,0xac,0x8e,0xee,0x96,0x29,0xca,0xdc,0x2f,0xd1,0x13,0x5c,0x9e,0xc2,0x67,0x6a,0xaf,0xf6,0x3e,0xe2,0xa1,0x6d,0xda,0xbe,0x8a,0x55,0x50,0x27,0xee,0x6d,0xb8,0x35,0x5f,0xb4,0xa8,0x76,0xa1,0xe2,0x52,0x87,0xf6,0xfb +.byte 0xe2,0x16,0x1c,0x90,0x78,0xe4,0x17,0xb0,0xd9,0x56,0xf5,0xd3,0xa4,0xb0,0x3f,0xe9,0x01,0xf9,0xd0,0x67,0x2b,0xeb,0x1d,0x73,0x24,0x90,0x36,0x36,0x0d,0xcf,0xfb,0x3f,0xa1,0xa0,0x25,0x3b,0xf1,0x7f,0x9e,0x90,0xcf,0xb6,0xd0,0x83,0x90,0xcd,0x3f,0xff,0x5f,0xa3,0x33,0x95,0xd7,0xbe,0x78,0xfe,0xcc,0x9a,0xb9,0x64,0x88,0xb7,0xd9,0x5e +.byte 0x46,0x2d,0xf0,0xb1,0xa1,0x81,0x2b,0xab,0x80,0xf5,0x4d,0x3b,0xd8,0x53,0x64,0x8f,0xac,0x7a,0x03,0xb3,0x39,0x7a,0x85,0xef,0x61,0xb5,0x2c,0x8e,0xf4,0x27,0x07,0x9b,0x7b,0xc9,0x8b,0x1a,0xe4,0x4f,0xce,0x8b,0x35,0x32,0xac,0xcf,0x47,0xb8,0x2f,0x9e,0xe5,0x11,0x48,0xc1,0x07,0xea,0x0c,0xee,0x06,0xc6,0xa3,0x48,0xb6,0x1a,0xd8,0xb4 +.byte 0xa7,0xae,0x59,0x7d,0x9e,0x4e,0x66,0x7f,0xe9,0x02,0x40,0xdc,0x21,0x5e,0x74,0x2c,0x1d,0x29,0x22,0xca,0x97,0x4f,0xc8,0xc7,0xea,0x69,0x02,0x89,0xd1,0x43,0xff,0x83,0x89,0x58,0x66,0x92,0xbc,0x11,0xf6,0x02,0x8b,0xa8,0x34,0x8d,0xbe,0x3a,0x70,0xc3,0x10,0xe7,0xb5,0xc4,0xda,0xdb,0xc6,0x87,0xee,0xee,0xe0,0x48,0x62,0x80,0x8d,0xfc +.byte 0xaa,0xc7,0xce,0x1a,0xea,0xb9,0x1b,0x30,0x4a,0x48,0x9b,0xf4,0x58,0xff,0x5d,0x15,0xc8,0xf2,0x84,0x44,0xae,0x63,0xe8,0xb1,0xe0,0x2e,0x38,0x8e,0x47,0xf9,0x09,0xec,0xb9,0x94,0x18,0x37,0x68,0xef,0xbd,0xd5,0x67,0x72,0x01,0x9a,0x15,0xb9,0x7c,0x36,0xc0,0x22,0x80,0x12,0xb1,0x4e,0xab,0x3c,0xea,0x81,0xcf,0x70,0xf3,0xde,0x1f,0xd4 +.byte 0x67,0x94,0xfa,0xe1,0xf0,0xb6,0xd6,0x6b,0xc3,0xa2,0xbb,0x59,0x6b,0x9f,0x58,0x26,0x99,0x0c,0xdc,0xcd,0xb8,0xae,0x49,0xf0,0x8f,0xd3,0x0d,0xb7,0x4c,0x22,0xcf,0xb6,0x6c,0xa3,0x19,0x09,0x42,0x59,0x25,0xf8,0xdc,0xf3,0xc2,0x00,0xc3,0xc3,0xd3,0x9e,0x98,0xd3,0xa3,0xd0,0x96,0xfd,0x4f,0x15,0x57,0x5b,0xa7,0x08,0x3a,0x0e,0x3d,0xd2 +.byte 0x7d,0xa1,0xa0,0x94,0xc0,0x76,0x83,0xf6,0xc1,0xe8,0x7e,0xd3,0x97,0xc1,0xbf,0x38,0x74,0x9b,0xfb,0x35,0xeb,0xf7,0x34,0x20,0xea,0xda,0xd3,0xb1,0x2e,0x10,0x16,0x9c,0x09,0x1c,0x67,0x46,0xa2,0x05,0xf9,0x47,0xde,0x35,0x53,0x18,0x58,0xb0,0xbb,0x7a,0x88,0x58,0xc5,0x3e,0x98,0x29,0x43,0x98,0x07,0x76,0xa3,0xe1,0x95,0x92,0x21,0xe9 +.byte 0x06,0x17,0x15,0xe0,0x6b,0xd5,0x5a,0x6d,0x10,0xa6,0x08,0x92,0xa9,0xf5,0xcf,0x57,0x1a,0x28,0x5d,0x14,0x33,0x99,0xf9,0xa0,0xb3,0xeb,0xee,0xd4,0x6e,0x0b,0x5e,0xf7,0xe9,0xe3,0xc6,0x71,0x34,0x55,0xf3,0xde,0xd5,0xc2,0x52,0xc3,0x7b,0x06,0x87,0xef,0x26,0x81,0xc9,0xbd,0xaf,0x12,0x61,0x95,0x2b,0xa4,0x8e,0xe8,0x08,0x9a,0x13,0x48 +.byte 0x2e,0x84,0x98,0xf6,0x95,0x21,0x22,0xe5,0xcf,0x30,0x8d,0xaf,0x70,0x16,0x27,0x0c,0xcd,0x26,0x7f,0xe8,0xa0,0x35,0x0c,0x01,0x0e,0xdd,0x9d,0x2c,0x89,0x41,0x34,0xc4,0xa2,0xaa,0xf6,0x3f,0xca,0x3b,0x86,0xce,0xd7,0x4c,0xe3,0xb5,0x69,0xe9,0x41,0xbe,0x3c,0x9a,0x4c,0x1a,0xb3,0x88,0xea,0x78,0x12,0x4c,0x1b,0x79,0xc7,0xcd,0x32,0x72 +.byte 0xfa,0x3f,0x0b,0x73,0x1b,0xd9,0xec,0x85,0xd4,0x52,0x6c,0x91,0x2d,0xbe,0x76,0x8b,0xfd,0xb6,0x49,0xcf,0x67,0xd1,0x18,0x7b,0xae,0x86,0x47,0x47,0xfd,0xff,0x63,0xf2,0x88,0x1b,0x58,0xd5,0x30,0x69,0xf9,0x9a,0x03,0x52,0xae,0xe5,0xe2,0x55,0xbf,0x35,0x12,0xb0,0x84,0xa9,0xed,0xb6,0x8d,0x5f,0x6c,0xed,0x1a,0x00,0x7a,0xdc,0xf2,0x03 +.byte 0x9e,0xef,0x59,0x27,0x4c,0xf4,0x83,0xa2,0x36,0x3d,0x3d,0x8c,0x75,0x8c,0x37,0x68,0x93,0x0b,0x30,0x48,0xea,0x91,0x14,0x37,0x88,0x87,0x7f,0xe6,0xd8,0xbd,0x04,0x34,0x1e,0xe8,0x2a,0x41,0x48,0x5c,0x66,0xf9,0xc2,0xd1,0x56,0x25,0x29,0x45,0xfa,0x71,0xe1,0x59,0xa8,0x52,0x99,0x0b,0x92,0xe0,0x33,0x52,0x91,0xd6,0x5f,0x0a,0x70,0x83 +.byte 0x4f,0xa3,0x47,0x6e,0xfa,0x85,0x5e,0xb1,0x0a,0x1d,0xe7,0x35,0xc9,0x88,0x27,0xc9,0x8c,0x3e,0x7f,0x6d,0x34,0x1e,0x11,0x7b,0xcd,0xe7,0x09,0x82,0x3a,0xa1,0x46,0xc6,0x15,0xde,0x0b,0xde,0x35,0x71,0x92,0x5c,0x72,0x50,0x08,0x6b,0x62,0xa7,0xec,0xa2,0xca,0x53,0x6e,0x47,0x7d,0x50,0x32,0xa7,0x32,0x7b,0x49,0x0c,0x97,0xcc,0x98,0x8d +.byte 0xc3,0x29,0x72,0x1e,0x85,0x47,0x1b,0xa7,0x89,0x19,0x85,0xaa,0x3f,0x11,0x6a,0xea,0x61,0x84,0x07,0x9a,0xc8,0xb3,0x25,0xfe,0x72,0xca,0x83,0xa9,0xf0,0x9e,0x01,0xe4,0x9a,0xd6,0x1b,0x87,0xfc,0xd4,0x3a,0x04,0x34,0x8c,0x0b,0x46,0xbc,0xe9,0x3c,0x3f,0xd9,0x93,0xf1,0xca,0x41,0x0b,0xdb,0x28,0xe8,0x28,0x1b,0x84,0x36,0x16,0x84,0x22 +.byte 0x1e,0x1e,0x2b,0xb0,0xfb,0xa6,0xcc,0x95,0x31,0x46,0xd7,0xca,0xc2,0x8b,0xa3,0x3a,0xa5,0xb0,0xaf,0x52,0x66,0x53,0x39,0x5f,0x58,0xb5,0xdf,0x01,0x52,0x07,0xb4,0x82,0xdc,0xb7,0xf9,0x88,0xd8,0x77,0xf8,0x12,0x9d,0xe8,0x21,0xd7,0x0b,0x0f,0x57,0x90,0x40,0xb2,0x64,0x3f,0xce,0xa0,0xa3,0xfa,0x12,0x16,0xec,0x6d,0xcc,0xc7,0x2a,0x43 +.byte 0xc9,0xe7,0xb7,0x90,0x52,0x35,0x22,0x6d,0x46,0x99,0x1e,0x44,0x12,0xd6,0x0f,0xaf,0x5c,0x16,0xd3,0x7a,0xd6,0xb4,0xfe,0x20,0x26,0x11,0xe1,0xc6,0xa5,0x10,0xfd,0x9f,0x0c,0x47,0xae,0x32,0x08,0x15,0x8f,0xef,0xef,0x4c,0x83,0xbc,0xbf,0x6a,0xe5,0xf5,0x69,0x11,0x4d,0x7d,0x47,0x1f,0x10,0x58,0x61,0xb0,0x0d,0x98,0x67,0xc0,0x99,0x3a +.byte 0x2d,0x9a,0x5b,0xd5,0x37,0xe7,0xe5,0xd4,0x56,0x96,0x69,0xf8,0x53,0x7e,0x24,0x70,0x51,0x01,0x83,0x8d,0x49,0x01,0x32,0x7d,0x4f,0x41,0x92,0x54,0x9c,0x15,0xf1,0x3c,0x05,0x32,0x28,0x0d,0x0f,0x67,0xbe,0x65,0xfa,0x1b,0xa3,0xd0,0x28,0x18,0xb8,0x84,0xfe,0x6a,0x30,0xea,0xb9,0x00,0xb1,0x10,0x7c,0xa2,0x94,0x4f,0x86,0x18,0xdd,0xb4 +.byte 0x80,0x18,0x48,0x18,0xe1,0x56,0x70,0x7d,0x5c,0x3b,0xe5,0xd7,0x88,0x66,0x57,0xe3,0xe1,0x04,0x4c,0x68,0x5b,0x64,0x4d,0x0d,0x30,0x76,0x26,0xaa,0x84,0x0e,0xe0,0xed,0x53,0x62,0x20,0x33,0xaf,0x45,0x42,0x40,0x47,0x01,0x15,0xc9,0x0b,0x27,0x7c,0x68,0x4d,0x55,0xc4,0x6a,0x5f,0x96,0x9f,0x96,0x67,0xae,0x13,0x1c,0x84,0x52,0x33,0x41 +.byte 0x80,0xfc,0xae,0xb6,0xb1,0x8c,0xc3,0x19,0x80,0xa8,0x5f,0xe5,0x8c,0xd0,0xa8,0xb4,0x58,0xc9,0x48,0x29,0xab,0x11,0xd1,0x09,0xc6,0x20,0x98,0x4c,0xdb,0xa4,0x83,0x5c,0x26,0x51,0xce,0x80,0xe5,0xc4,0x9b,0xae,0xba,0x8e,0x99,0x4e,0xa4,0xff,0xdc,0x99,0x4c,0x02,0xa0,0x42,0x80,0xca,0xd7,0xea,0x6a,0x58,0x31,0xdb,0x16,0xd8,0x4d,0xab +.byte 0x03,0x2e,0x3a,0xdc,0xe9,0x07,0xfb,0xfb,0x5b,0x57,0x67,0x2a,0x7b,0xdc,0xc1,0x66,0xd1,0x31,0x3a,0x03,0x87,0xd8,0x66,0xda,0xa1,0x24,0x00,0x26,0xc0,0x26,0x78,0xf8,0x59,0x13,0x3f,0x34,0x08,0x35,0x45,0xbd,0x45,0x4f,0x89,0x65,0x97,0xdb,0xe6,0x1e,0x09,0x6e,0x23,0x2a,0xc4,0xf5,0x6a,0x74,0x28,0xb0,0xae,0x8c,0xfb,0x49,0x35,0x99 +.byte 0x06,0x30,0xc6,0xb2,0x8c,0xcd,0x8b,0x41,0xea,0xf2,0x04,0x18,0x29,0x25,0x1b,0x32,0x42,0x45,0xb5,0x92,0x42,0xb4,0x33,0xd2,0x90,0x31,0x08,0xcd,0x35,0x5d,0x50,0x64,0xa8,0x93,0xfd,0xa5,0xfd,0x32,0xbd,0xe8,0x13,0x1c,0x48,0x5c,0x14,0x70,0x03,0x92,0x0f,0x12,0x86,0xf6,0x6c,0xcd,0xc6,0xec,0xbf,0x8e,0x85,0x28,0x1d,0x1c,0x63,0x3f +.byte 0x81,0x93,0xd4,0x80,0x3c,0x29,0x0b,0x63,0xfe,0x87,0xa6,0x24,0xd6,0x3e,0x62,0xb6,0xd9,0xb0,0x58,0xf1,0x41,0x36,0xc7,0x47,0x8b,0xfd,0x4b,0x91,0x4e,0x5d,0x41,0x44,0xb0,0x65,0x3d,0x9e,0x3b,0x70,0x01,0xcc,0x7d,0x77,0xf0,0x23,0xd9,0xca,0x5f,0xda,0xa1,0x8c,0x71,0x11,0x91,0x7d,0x36,0xf5,0xc9,0xcd,0xf4,0x34,0x5f,0x69,0x57,0xd6 +.byte 0x33,0x4c,0xb2,0xe1,0x38,0x5f,0x86,0x3c,0x57,0x7b,0x2e,0x99,0x05,0x80,0x63,0xc4,0x77,0x69,0x06,0xc2,0x47,0x44,0xca,0x17,0x27,0x1d,0x55,0x34,0x02,0xd0,0x89,0x3a,0x3b,0x79,0xf0,0x86,0xd7,0x6b,0x01,0x9c,0xc7,0xa8,0xde,0xdb,0xdf,0x49,0xd1,0xb9,0x11,0xaf,0x7e,0x22,0x8b,0x5d,0xb5,0x0b,0xdc,0xd0,0x36,0xe6,0x9d,0x85,0x41,0x4a +.byte 0x35,0xf0,0xe1,0xcd,0xce,0x7b,0xd1,0xd6,0x00,0xdd,0xb6,0xe4,0x06,0x3e,0x66,0xe9,0x2b,0xa8,0x44,0x0d,0x18,0xd4,0xbc,0xfb,0x3c,0x58,0x6c,0x11,0xe9,0xdc,0x19,0x14,0x08,0x27,0x23,0x0c,0xd0,0xf9,0x97,0xaf,0x97,0x07,0x02,0x1a,0x5e,0xcd,0xae,0xd2,0x80,0x96,0x16,0x49,0xc3,0xfc,0xda,0x25,0x12,0x20,0xe1,0xc0,0x68,0x90,0x4b,0x30 +.byte 0x2d,0x06,0x53,0x2c,0x57,0x63,0x4a,0x7a,0xf6,0xc8,0x5a,0xb7,0x58,0x8c,0x13,0xfe,0x43,0xb3,0xf8,0x25,0x3e,0x7a,0x25,0x3e,0x1d,0x7f,0x8f,0x5e,0xdb,0xad,0x99,0x83,0xfc,0xd9,0x0a,0xdf,0xb5,0x19,0x1c,0x2c,0xf6,0xe8,0x06,0xbe,0xc0,0x9f,0x7e,0x0f,0x95,0xaa,0xac,0x09,0xdc,0x8c,0x37,0xcf,0x35,0x35,0x95,0x62,0xf1,0xff,0x96,0x1c +.byte 0x77,0xe9,0x53,0x7e,0x12,0x56,0x2d,0x4e,0x3e,0x1f,0xdb,0x1d,0x71,0x0e,0xdc,0xf7,0x65,0xb1,0x78,0x7f,0xe4,0xba,0xbf,0x7f,0x6c,0xcb,0x73,0xd3,0xe8,0xd9,0xce,0xfb,0xdb,0x48,0x87,0xe0,0x10,0x00,0x74,0xcb,0xdf,0x32,0xa8,0xdd,0x83,0x24,0x49,0xda,0x86,0x38,0x1c,0x2c,0x93,0x09,0x8a,0x26,0xbb,0x34,0x21,0x1d,0xac,0xb5,0x16,0xae +.byte 0xd8,0xcb,0x94,0x04,0xd6,0xbc,0xde,0x9c,0x70,0x28,0xa5,0x1a,0x15,0x5e,0x35,0xe4,0xe6,0x53,0xea,0x9c,0x3b,0x0c,0x36,0x3b,0x80,0x13,0x28,0x1d,0xc7,0x1a,0xa8,0x8e,0x9e,0x09,0xce,0x5d,0x50,0xd3,0xc7,0x6f,0x3a,0x75,0xa5,0x84,0x1c,0x08,0x66,0xe6,0x05,0xda,0x8b,0xf1,0x4b,0x5c,0xe2,0xc7,0x0f,0xa1,0xf1,0x47,0x02,0xf4,0xa7,0x24 +.byte 0xf3,0x0e,0x2c,0xa9,0xae,0x67,0xdf,0xce,0x30,0x88,0x4a,0x9a,0x39,0x4a,0x97,0x64,0xa8,0x30,0x53,0xf9,0x47,0x66,0x5c,0x19,0x1c,0xfb,0x2f,0x05,0x89,0x4f,0xfe,0x25,0xe7,0xed,0xed,0x17,0x5a,0x86,0xeb,0x25,0xee,0xe4,0x09,0x88,0x05,0x49,0x20,0x54,0x4b,0x7f,0x3e,0xb5,0x23,0x85,0xa9,0x66,0x61,0x73,0xe0,0x61,0x94,0xc6,0xe5,0x29 +.byte 0xb4,0xe1,0x6f,0xa4,0x4d,0x50,0x56,0x2e,0x30,0x75,0x51,0x5d,0xdd,0xa2,0x68,0x56,0x67,0xd8,0xec,0x2d,0x2a,0xfd,0x49,0xc5,0xbc,0xae,0x2f,0x6b,0xc7,0x8d,0x2e,0xca,0x91,0x35,0xe8,0xea,0x65,0xe9,0x9c,0x65,0xaf,0x8e,0xd5,0x16,0xdf,0xac,0x44,0x1e,0xb6,0x16,0xf0,0xb6,0x33,0x6a,0xe6,0x96,0x0f,0x85,0x2e,0xa1,0xaa,0x6a,0xe0,0x12 +.byte 0x0c,0xaa,0x7d,0xae,0xf7,0xe3,0xb2,0x4c,0x3c,0x10,0xc6,0x87,0x8e,0x87,0xfb,0xac,0xf7,0xd7,0x7a,0x2e,0x9a,0x7a,0xa7,0x4f,0xf0,0x75,0xce,0xbd,0xc3,0xe6,0x79,0x1d,0x56,0xab,0xff,0x56,0xfe,0x69,0xbd,0xcf,0x15,0x27,0x64,0x3c,0x83,0x1c,0x08,0xb0,0x91,0x60,0x67,0xe7,0x27,0x44,0x49,0x22,0x78,0xd5,0x1a,0xc8,0x3b,0x35,0x9b,0xa5 +.byte 0x53,0xce,0xde,0x04,0xd2,0x3e,0x67,0x48,0xaf,0x54,0xdf,0x9c,0xf7,0xb9,0xd4,0xe3,0xb6,0x85,0x02,0x68,0x21,0x10,0xdb,0xb5,0xca,0x11,0xa2,0x7c,0xcf,0x13,0x41,0x7a,0xfd,0xe9,0x0a,0x3c,0x53,0xd6,0x07,0xf2,0xdd,0xe2,0x7c,0x16,0xf0,0x44,0x3f,0x5d,0x34,0x09,0x7c,0x7b,0x21,0x8c,0x8e,0xdb,0x0d,0xc5,0x73,0xce,0x61,0xce,0x17,0x46 +.byte 0x6c,0x14,0x07,0xb5,0x70,0x80,0xf0,0x29,0x7c,0x13,0x41,0x2d,0x8e,0xdc,0x53,0xc2,0xbf,0xf0,0xc2,0xfb,0x59,0xa0,0x66,0x5f,0x25,0xda,0x17,0x5f,0xac,0xab,0x75,0x1b,0xc7,0x61,0x87,0x53,0x80,0x2e,0x11,0x4e,0x04,0x48,0xf9,0xee,0x54,0xe6,0x69,0x69,0x57,0xc2,0x46,0xd8,0xb3,0x2e,0x7b,0xc8,0xa5,0xd0,0xb2,0x5e,0xd4,0x6b,0x9b,0x1a +.byte 0xd6,0x79,0x9d,0x99,0xa6,0xbb,0x4d,0xca,0x74,0x2c,0x3d,0xd4,0x86,0xd0,0x64,0xd4,0x81,0x49,0x76,0x42,0xb8,0xf9,0x2c,0x52,0xe7,0x77,0x37,0x31,0xbb,0x2e,0x5b,0x38,0x81,0x01,0x2c,0x27,0x28,0xcb,0x0c,0xba,0xfa,0x8a,0x9a,0x45,0x51,0xa2,0xde,0xf2,0x7b,0xe6,0x65,0xec,0x5b,0x2d,0xe8,0x55,0x8e,0xb4,0x7f,0xf8,0x1a,0x66,0x3a,0x5f +.byte 0x06,0x10,0x15,0xb2,0x3d,0xb2,0x36,0x6e,0x9f,0x8e,0xe2,0x4c,0x78,0xe5,0x3a,0xac,0x21,0x16,0x20,0x30,0x0f,0x51,0x56,0xcb,0x53,0xca,0x70,0x3c,0xa2,0x3f,0x37,0x06,0x6c,0x70,0xec,0xf4,0x3d,0x7c,0x77,0xa0,0x61,0xc7,0x0e,0x26,0x9f,0x25,0xc0,0xf2,0x28,0xdb,0x57,0xbe,0xe6,0x4e,0x9c,0x4d,0x2e,0x48,0x50,0xc2,0xd4,0xfd,0x5e,0x52 +.byte 0x3f,0xd0,0x82,0xd1,0xd4,0x53,0xad,0x42,0x38,0xb1,0x02,0xd6,0xa0,0x34,0x7a,0xb4,0xb3,0xdd,0x91,0x12,0xf4,0x91,0xc9,0xa2,0x35,0x2d,0xdc,0x97,0xa1,0xdb,0x82,0xe7,0x92,0x99,0x66,0x13,0x99,0x20,0x95,0x1f,0x47,0x64,0x80,0x5e,0x5f,0x74,0x6b,0xa6,0xca,0x47,0x0b,0x24,0x72,0xa6,0x27,0xe7,0x56,0x61,0xa7,0x8e,0x62,0xa4,0xff,0x8e +.byte 0x29,0xf8,0x09,0xa4,0xbb,0x70,0x97,0x8a,0x39,0xe8,0x65,0xc8,0x52,0x23,0x9d,0xbf,0x10,0xe8,0x7d,0xbc,0x3c,0xc4,0x8b,0x1e,0x5c,0x75,0x94,0x24,0x62,0x3f,0x5b,0x2b,0x9a,0x08,0x00,0x78,0xfd,0x28,0x44,0x12,0x62,0x2a,0x6f,0x47,0x9d,0x57,0xb0,0x4e,0x3b,0xcd,0x01,0x7d,0x6e,0x62,0xe3,0x99,0x9c,0xae,0x6e,0xe2,0x70,0x7a,0x32,0xb4 +.byte 0xc1,0x19,0xb1,0x03,0x6b,0x92,0x89,0x4f,0x37,0xaf,0x36,0xee,0x5e,0x03,0x31,0x8c,0x41,0x27,0x17,0x21,0xdf,0xe4,0x34,0x97,0x8d,0xe7,0x41,0x47,0xf2,0x80,0x51,0x41,0x01,0xe4,0x0c,0x1a,0x09,0xfc,0x07,0xc3,0x94,0x07,0x6f,0xa7,0x6c,0xff,0x32,0x21,0xa5,0x01,0x8c,0xa2,0x88,0x3c,0xc8,0x57,0xe8,0x68,0x19,0x4a,0x46,0x7a,0x36,0xd2 +.byte 0x75,0x8e,0xc5,0xa4,0x84,0x91,0x13,0x7f,0xdd,0x2b,0x3c,0x2e,0xc4,0x92,0x29,0xb3,0x60,0x74,0xc8,0x81,0x58,0x0e,0xad,0x6a,0x9d,0xaa,0x81,0x49,0x26,0x0f,0xd4,0x2a,0x39,0xdd,0x4d,0x2b,0x13,0xdb,0x2e,0x72,0xe6,0x45,0x99,0xeb,0xe6,0xe5,0xd5,0x76,0xd4,0x19,0xd8,0xd7,0xa9,0x1f,0xce,0x7f,0xc4,0x1c,0x9e,0x6f,0x68,0x32,0xb1,0x26 +.byte 0xc4,0xb6,0x4e,0x9f,0xbf,0xdc,0xe0,0xde,0x54,0x9b,0xe0,0x04,0x03,0xae,0xc9,0xce,0x3a,0xcb,0x93,0xad,0xcc,0x1f,0x46,0xf6,0xbb,0xff,0x40,0x52,0x9c,0x64,0x97,0x5a,0x6f,0x8d,0x28,0x45,0x1c,0xf6,0x8b,0xcb,0xb9,0x38,0xb8,0x00,0xee,0xec,0xac,0x68,0x3f,0x50,0xcb,0x36,0x6e,0x97,0xfd,0xa5,0x1d,0x29,0x6e,0xfa,0x9f,0x4b,0x83,0xcd +.byte 0x0d,0x34,0xf3,0x1e,0x3f,0x0f,0x2e,0x89,0xeb,0xf7,0x8e,0x5f,0xe0,0x3b,0x39,0xd2,0xe8,0x87,0xe3,0xe7,0xe9,0xd0,0x1b,0x32,0x03,0x6b,0x3c,0x75,0x7d,0xe2,0x5c,0x3c,0x42,0xb4,0x46,0x69,0x0b,0xaf,0x0a,0x5d,0x1a,0x83,0x0b,0x0e,0x3c,0x5a,0x36,0xbd,0x5d,0xb6,0xad,0x4c,0xdd,0xf1,0x8d,0xbf,0x2b,0x70,0x8e,0xbc,0x92,0x95,0x1b,0x0f +.byte 0xed,0x3f,0xae,0x9e,0xa2,0x5a,0x50,0xe4,0xda,0xde,0x04,0x51,0x31,0xac,0xa4,0x0b,0x94,0xcc,0x14,0x87,0x59,0xa8,0x30,0x09,0xe6,0x46,0xb9,0x07,0x3e,0x1a,0xbf,0x5a,0x23,0x32,0xfb,0x60,0x63,0x24,0x25,0x12,0xf6,0x3e,0x2d,0xd0,0x8b,0x88,0x9b,0xe9,0x2d,0xab,0xf5,0xaf,0xba,0xbc,0xfe,0xab,0xb2,0x61,0x7a,0x7c,0xbb,0x28,0x6b,0x86 +.byte 0xe5,0xa2,0x9c,0x2c,0x5a,0x23,0x12,0x11,0xe5,0x72,0xe8,0x7b,0x6b,0x40,0xf1,0x91,0x37,0x3b,0x47,0x75,0x65,0xac,0x4d,0x22,0x59,0x75,0x13,0xb0,0x73,0xff,0x59,0xd1,0x1b,0xcc,0x05,0x1f,0xf2,0xc8,0x50,0x83,0xf1,0x28,0x38,0x0b,0xc3,0xa0,0x3b,0xe3,0x86,0xbb,0x9c,0x7e,0xc1,0xe9,0xcc,0xd9,0xb8,0x2b,0x05,0xf3,0x6f,0xc7,0x9d,0xaf +.byte 0x7b,0xb7,0x38,0x41,0xa3,0x50,0x8f,0x92,0xe0,0x63,0x35,0xb3,0x95,0x9f,0x80,0xf8,0x75,0xbb,0xf3,0x2b,0x0e,0xaf,0x32,0x6e,0xff,0xeb,0x79,0xca,0xbf,0x1c,0x4f,0x6c,0x9c,0x06,0xb2,0xeb,0x99,0x57,0x1f,0xf6,0x64,0x0b,0x81,0x57,0xba,0xf4,0x32,0x1e,0x77,0x37,0x55,0xb7,0xbc,0xba,0x70,0x0b,0x0d,0xdd,0x95,0x41,0xb5,0x17,0x5b,0x14 +.byte 0x10,0x9d,0x14,0x52,0x83,0x65,0x0a,0xf4,0x55,0xca,0xf8,0xbe,0xa6,0x3a,0xa0,0x6e,0xcc,0x83,0x84,0x65,0xb4,0x1c,0x7e,0x40,0xdd,0x32,0x36,0x5a,0x23,0x17,0x7d,0xb5,0xb9,0x38,0x48,0x5c,0x6f,0x23,0x54,0x0e,0x93,0x74,0x27,0x0f,0xfd,0x58,0xc1,0x97,0x26,0x78,0x9a,0xd3,0x85,0xc5,0xb2,0xb3,0x44,0xb7,0x36,0x85,0x69,0xde,0x3b,0xa1 +.byte 0x2b,0x11,0xef,0x75,0xfc,0xaa,0x92,0xf1,0xf1,0x72,0xa0,0x5f,0x33,0xf6,0x0b,0x72,0xdb,0xce,0x6c,0x2a,0x15,0x76,0x40,0xd4,0x85,0xff,0x96,0xe1,0x48,0xe1,0x27,0x8f,0x74,0xf3,0xfa,0xa1,0xb7,0x2a,0xb6,0x41,0x90,0x92,0x7e,0xfa,0xfc,0xad,0xa3,0x94,0x91,0x77,0xf1,0x8f,0xee,0xa2,0x64,0x47,0x01,0xb3,0x01,0x99,0x05,0xe7,0x31,0x4a +.byte 0xe8,0xd2,0x65,0x40,0x21,0xc4,0x83,0x8e,0xc9,0x89,0xda,0x16,0x7b,0xe0,0xcb,0xc0,0xc0,0x3d,0x37,0x18,0x66,0xe9,0x70,0x86,0x0b,0x6c,0xe8,0x65,0x44,0xce,0x3a,0xcd,0x84,0x1e,0xce,0x0e,0xe3,0xf9,0x77,0x12,0xfb,0xe6,0x92,0x8b,0x0d,0x7e,0x15,0x7a,0x34,0x94,0x2a,0xa7,0xc5,0x35,0xa4,0xfc,0xbe,0xa3,0x13,0x70,0xe4,0x6b,0x2f,0x71 +.byte 0x31,0xef,0xdb,0x79,0x44,0xf2,0x77,0xc7,0xc9,0x0d,0x1a,0x7b,0xff,0x34,0xf8,0xc9,0xe8,0xc9,0xc2,0xe0,0x0c,0x9e,0xd6,0xb4,0x7a,0xdb,0x1f,0x65,0xb8,0xd4,0x92,0xbf,0x7f,0x06,0x44,0xe3,0xb4,0xd8,0x14,0xe3,0x9b,0x49,0x81,0x12,0xec,0x7d,0x01,0xe2,0x50,0x2c,0x0e,0xfd,0x4b,0x84,0x3b,0x4d,0x89,0x1d,0x2e,0x4b,0xe9,0xda,0xa5,0x3f +.byte 0x19,0xc2,0x53,0x36,0x5d,0xd8,0xdc,0x6e,0xc3,0x48,0x8f,0x09,0xd5,0x95,0x4b,0x0c,0x7c,0x00,0x15,0x33,0x8e,0x1d,0x0c,0xdf,0x32,0x3b,0x93,0x1f,0xf5,0x49,0x4f,0xfd,0x8b,0x64,0xe7,0x96,0xaf,0x2f,0xc8,0xea,0xab,0x91,0x53,0x29,0xe3,0x31,0x0a,0x1c,0x6e,0xe0,0xbb,0x81,0x11,0x83,0xe0,0x07,0xfb,0x29,0x11,0x0f,0x0d,0x85,0xd4,0x61 +.byte 0x3c,0x75,0xbb,0x8a,0x23,0xb6,0xa0,0x7f,0xa4,0xbb,0x11,0xd4,0x75,0xde,0x27,0xe5,0xeb,0x11,0x5d,0x02,0xfe,0x5c,0x62,0x60,0x0f,0x6f,0x45,0x9b,0xfb,0xb7,0x32,0xa8,0x1c,0xd6,0xff,0x43,0x7b,0x53,0xee,0xa4,0x1f,0xf2,0xba,0xb6,0xb7,0xb7,0x39,0x18,0x85,0x79,0x77,0x27,0x30,0x26,0xe4,0xef,0xd1,0x39,0xc9,0xa2,0x0d,0x50,0xd7,0xef +.byte 0x9e,0xd8,0x8e,0xd2,0x74,0x1a,0x3f,0x99,0x24,0xf4,0x8b,0x4d,0x02,0x63,0x18,0x3a,0xaf,0x26,0xef,0xfc,0x1d,0xfe,0x46,0xc1,0x55,0xd7,0x92,0x65,0x2f,0xe7,0x4f,0x47,0xa8,0x2f,0x5d,0x47,0x67,0xeb,0x62,0x1d,0x69,0xa6,0x0e,0x51,0x1d,0x2c,0xed,0x6e,0x94,0xe9,0x48,0x4c,0x22,0xc2,0x93,0x79,0x6f,0x1b,0xc2,0x93,0x61,0x3d,0x8b,0xba +.byte 0xcb,0xe9,0x4a,0x88,0x5e,0x19,0x50,0x14,0xfe,0xda,0x3f,0x4d,0x47,0x54,0xfc,0x1c,0x09,0x77,0x37,0x30,0xfe,0x75,0x9f,0xdd,0xa4,0x74,0x04,0x04,0x88,0xe0,0xac,0x93,0x64,0x6f,0xbf,0x50,0xd8,0xf0,0xf7,0xa0,0xfa,0x98,0x49,0xfa,0xf7,0x6e,0xcf,0xa2,0xbf,0xb6,0x07,0x15,0x0e,0x4e,0x21,0x74,0x0a,0xa6,0xa3,0x67,0xce,0xf9,0x3b,0xd6 +.byte 0x4c,0xc8,0x43,0xe3,0x3b,0x3b,0x6a,0x86,0x62,0x3f,0x5a,0xf3,0x3f,0xf9,0xeb,0xbf,0xa3,0x2a,0x83,0x8a,0x70,0x8f,0x01,0x65,0x17,0x9a,0xa6,0x26,0x3b,0x09,0x06,0x22,0x19,0xed,0xd7,0x25,0x4b,0xd2,0x9a,0x30,0xfe,0x1c,0x82,0x68,0x16,0x04,0x0e,0x04,0x8f,0xc6,0x92,0xbe,0xe4,0x43,0x98,0x1d,0x3b,0x10,0x15,0x5b,0xef,0x4e,0x60,0x5e +.byte 0x6b,0xc9,0xde,0xb8,0x47,0x02,0x86,0x45,0x39,0x7a,0x1a,0xef,0x67,0x28,0xc5,0x40,0x73,0x2a,0xa7,0x12,0x9d,0x58,0x3a,0x34,0xc2,0xda,0x34,0xb0,0x48,0xd9,0x34,0xcd,0x18,0xe9,0x76,0x41,0x78,0x8f,0xe5,0xe8,0x3d,0xb2,0x01,0x3b,0x84,0xd1,0xca,0x5e,0x26,0x1d,0x8c,0xea,0xe1,0x46,0xa3,0xf9,0x11,0xac,0x0d,0x98,0x9f,0xd3,0x46,0x79 +.byte 0xff,0xad,0x99,0x32,0x63,0x96,0xbc,0x57,0x39,0x16,0xce,0x06,0x7e,0x63,0x78,0x7b,0x86,0x92,0x1a,0xe1,0x45,0xc0,0x73,0xe1,0xec,0xfc,0x88,0x8f,0xf8,0x36,0x0f,0x54,0x76,0x02,0x98,0x49,0x40,0xb9,0xef,0xd8,0x13,0x68,0xf5,0x1d,0x0a,0x98,0x65,0x21,0xc5,0x1a,0x22,0x4e,0x8e,0xad,0xa9,0x52,0x57,0xc4,0xc6,0xa8,0x48,0x01,0x7a,0x78 +.byte 0xc9,0xfc,0xdd,0xf3,0xc3,0x83,0xc0,0x06,0xb5,0x56,0x84,0xe2,0x0c,0x6b,0x80,0xd9,0x59,0xa1,0x3d,0xe3,0x56,0xf0,0xe3,0x3f,0x93,0x61,0xf7,0x8c,0x6b,0x40,0x65,0x6e,0x01,0xc2,0xa1,0xc1,0xb8,0x9b,0x15,0x6c,0xa1,0x18,0x4a,0x6c,0x8b,0x18,0x2d,0x8e,0x71,0x7a,0xa1,0x26,0xc1,0x4b,0xac,0x0c,0xca,0x08,0x33,0xef,0x35,0x33,0x63,0xeb +.byte 0x57,0x6e,0x7e,0x36,0xe0,0x31,0xad,0x10,0x76,0xb7,0x45,0xd9,0x3a,0x92,0x66,0x69,0x13,0x61,0x59,0x87,0xfd,0x6b,0xf1,0x46,0x0a,0x7a,0x3f,0x29,0x88,0x5b,0x7d,0xef,0x07,0x02,0xa8,0xa1,0xdc,0xd4,0x0e,0x77,0x8f,0x68,0x32,0xbd,0x8e,0xd6,0x0b,0xe4,0xd1,0x75,0xc1,0xb0,0x74,0x6c,0x0e,0xc3,0x46,0x79,0x36,0x3b,0x5f,0x0e,0xa0,0xad +.byte 0x28,0x8c,0xcb,0x01,0x8e,0x58,0x14,0x09,0xf1,0xd4,0x3b,0x2e,0xdc,0xbf,0x37,0x95,0x26,0xda,0xb6,0xcf,0xc8,0xa1,0xd4,0xec,0x72,0xf3,0x44,0xf5,0x4e,0x27,0x9b,0x2e,0x7c,0xfa,0x37,0x16,0x1d,0x7f,0x90,0x86,0xae,0x96,0x3b,0xe1,0xda,0xf7,0xc4,0x54,0x0b,0x51,0x7e,0x83,0xbe,0xed,0xd6,0x5f,0xd2,0x6d,0xbb,0xd3,0xc6,0x53,0x95,0x65 +.byte 0x3d,0x19,0xc2,0xc5,0xdf,0x47,0x00,0x2c,0x4b,0x2d,0xec,0x32,0xd5,0x28,0xb5,0x30,0xe0,0x79,0x15,0x2e,0xab,0x97,0xa8,0xcf,0xc5,0x40,0x98,0x30,0x22,0x9f,0xbc,0xdb,0x65,0x06,0xfc,0x58,0xe5,0x55,0x5b,0xe2,0xf8,0x6e,0xc6,0xfc,0xec,0x6c,0x14,0xd2,0xe3,0x9a,0x71,0x8a,0x61,0xea,0x39,0xc6,0x77,0x94,0xdf,0x7b,0x99,0x71,0xdd,0x18 +.byte 0xc6,0x03,0x2d,0x49,0xf6,0xc3,0xe8,0x2b,0x7e,0x3f,0x28,0xfc,0xc8,0xa1,0xb0,0x15,0x31,0x7e,0x83,0xb8,0x14,0x34,0x0e,0x7f,0xde,0x74,0x7b,0xbf,0xb7,0x8e,0xd9,0x31,0x90,0x16,0xb6,0x57,0x14,0x4a,0xc6,0x67,0x3d,0xb9,0x46,0x92,0xf2,0xf9,0x94,0x36,0x2b,0xd6,0x1f,0x84,0xa5,0x8c,0x0f,0xd9,0x8c,0x5f,0x97,0x7a,0x7b,0xff,0xc9,0xf5 +.byte 0x5e,0x13,0x5f,0x19,0x58,0xba,0xa6,0xe8,0x29,0xf4,0xb8,0x7e,0x98,0xb7,0xef,0x1b,0x00,0xe8,0x90,0x8f,0x86,0x4c,0xe0,0x51,0x13,0x8b,0xa1,0x37,0x40,0x38,0x51,0x2f,0x5a,0x9b,0x63,0x8f,0xce,0x9a,0x97,0x07,0x0d,0x8e,0xce,0xb1,0x66,0x89,0x78,0xca,0xa6,0x0c,0x20,0xc4,0xf1,0xe3,0xab,0xe2,0x1c,0x83,0x2b,0x46,0x97,0xe8,0x8f,0x94 +.byte 0xb4,0x71,0x40,0xde,0xa1,0x05,0x4b,0xed,0xbf,0x0c,0x46,0xe1,0x25,0xf1,0xd0,0x5a,0xdb,0x9c,0x2a,0x09,0x03,0x80,0x24,0xc1,0x22,0x02,0xa5,0xde,0xf6,0x4c,0xbc,0x93,0x37,0xa9,0x28,0xb3,0x92,0x19,0xa8,0x3f,0x71,0x90,0x62,0x78,0xaa,0x9a,0x0c,0xab,0x50,0xaf,0x89,0x2b,0xf1,0xf4,0x12,0xbd,0xc9,0xd5,0xee,0x64,0x8b,0x48,0x21,0xd6 +.byte 0xa1,0xa1,0xf2,0x68,0x4a,0xf8,0x06,0x3e,0x20,0x31,0x66,0xb7,0x2f,0x64,0x01,0x5a,0x46,0x14,0x85,0xfb,0xde,0x04,0xc3,0xe4,0xd6,0x25,0x14,0xa0,0xbe,0x4d,0x39,0xd8,0xe0,0x9b,0xb7,0x6b,0x00,0xe6,0x46,0xfb,0xcc,0xa8,0xad,0x67,0x12,0x2c,0x53,0x2c,0xb6,0x9f,0x6e,0xfe,0xbc,0xcc,0x2c,0xa8,0x09,0x17,0x00,0x8e,0xf1,0xf4,0x3e,0xa9 +.byte 0x92,0x4d,0x83,0xe6,0x3c,0xf0,0xd3,0x1c,0xaf,0x84,0x2c,0x59,0x7e,0xda,0x1e,0xfd,0x7d,0xf3,0xef,0x93,0x05,0x03,0xb0,0x76,0x69,0xb5,0x51,0xa8,0x65,0x8f,0x8a,0xf8,0x55,0x92,0x08,0xfe,0xbf,0xc1,0x95,0x98,0x58,0xb1,0xd3,0xb6,0x78,0x4f,0x2f,0x25,0xcb,0x9d,0x32,0x4f,0xa6,0xcc,0xf8,0x36,0xff,0x72,0xb3,0x93,0x3d,0xd8,0x0b,0xe6 +.byte 0xc6,0xf6,0xed,0xcc,0x2a,0xa5,0x44,0x6e,0xe2,0x2d,0x6e,0x02,0xb4,0x7c,0x24,0x7f,0x57,0x02,0x84,0x61,0x8e,0xbd,0x32,0x4e,0x41,0x92,0x01,0x1b,0x8b,0x1d,0xd1,0x1e,0x31,0xc1,0x4c,0x5b,0x0c,0xa7,0x48,0x52,0x67,0xc2,0xd9,0xdc,0x86,0x9d,0xbd,0x6c,0x19,0x95,0x00,0xf0,0xd4,0x47,0xaf,0xfe,0x5d,0xa5,0x81,0xbd,0x1b,0x42,0x62,0xce +.byte 0x18,0x1b,0xa3,0x6f,0xf5,0x0b,0xb7,0x6a,0x3d,0xe3,0xcc,0x41,0x27,0xcd,0x49,0x4b,0xe5,0x2b,0xc4,0x28,0xfa,0xbe,0xd5,0x7e,0xb7,0xac,0xab,0x64,0x3b,0xe3,0x87,0xb1,0x33,0x8b,0xa8,0xe5,0x75,0xce,0x61,0x57,0x89,0xad,0x5f,0x61,0xdd,0x7c,0x06,0x2a,0x3f,0x50,0xb8,0x7e,0xd2,0xfb,0x32,0x83,0x07,0xd4,0xc5,0x3f,0xad,0x64,0x59,0x1f +.byte 0x21,0x59,0x6f,0x1b,0xd7,0x40,0x89,0x28,0x18,0xac,0xca,0xee,0x92,0x1c,0x0d,0x88,0x98,0x7a,0x75,0x68,0xe0,0xe2,0x96,0xda,0x88,0xb3,0xc6,0x21,0x02,0x34,0xfa,0xae,0x0b,0x38,0xcf,0x1c,0x6c,0x7a,0xc9,0xd9,0x5f,0xf0,0x4c,0x73,0xfd,0xe6,0x14,0xf3,0x39,0xed,0xbc,0x28,0x2f,0xf8,0x79,0x02,0x39,0x05,0xf3,0x6a,0x88,0xd9,0x03,0xe2 +.byte 0xb9,0x65,0x81,0x3a,0x34,0x80,0x3f,0x17,0x37,0x1e,0xe8,0x7d,0x41,0x49,0xfb,0x70,0x5d,0x58,0x3a,0x71,0x7b,0x3e,0xd3,0x83,0x0b,0x1b,0x11,0xfc,0x53,0xce,0xc6,0xc4,0x39,0x55,0xbe,0xbe,0x32,0xa5,0x88,0xab,0xcd,0x38,0x78,0x3e,0x52,0xaf,0x64,0x42,0x10,0xc3,0x70,0x81,0x76,0xe9,0x7d,0x8e,0x46,0x41,0xca,0x2c,0x0c,0x4c,0x30,0xd3 +.byte 0xca,0x38,0xa3,0x97,0x2e,0x0f,0xa5,0x18,0x3b,0xaa,0x0f,0x00,0x75,0x35,0x9c,0xcd,0x28,0x83,0xd4,0xa7,0x7c,0xb9,0xcd,0xb5,0x55,0x29,0x4c,0x14,0xcd,0xfc,0x8f,0xaf,0x7d,0x69,0x4f,0xf7,0x0f,0xed,0x7c,0xa5,0x79,0x9d,0x36,0xbb,0x72,0xbc,0xf2,0x14,0xfd,0xf0,0x04,0x2a,0x89,0x1e,0xf7,0x80,0x4c,0x5e,0xb8,0xc1,0xdb,0xfa,0x3c,0x27 +.byte 0xbb,0x30,0x08,0x2b,0xd2,0xf8,0xdb,0xe0,0x8c,0x00,0xe4,0xca,0xa9,0xde,0xb0,0x14,0x5b,0xec,0x6b,0xe6,0x5c,0x90,0x17,0x02,0x59,0x5f,0x5f,0x51,0xf8,0x30,0x10,0x11,0xc4,0xdf,0x37,0x30,0x32,0xb1,0x4d,0x49,0xfe,0x82,0x87,0xd2,0x42,0xf5,0x38,0x76,0xf9,0xa5,0x28,0xfc,0x14,0xb2,0xe0,0x72,0x82,0xde,0xc8,0x47,0x9e,0x8f,0x8a,0xb5 +.byte 0x85,0x44,0x42,0x12,0xc6,0xc0,0xa5,0x60,0x5a,0x27,0xd0,0x36,0x14,0x7b,0x2a,0x83,0x98,0x92,0x08,0xe9,0x03,0xc9,0xc3,0xd3,0x36,0x97,0xba,0x5e,0xd5,0x51,0xcc,0x44,0xeb,0x81,0x76,0xae,0x28,0x94,0x0b,0xf6,0xc7,0xeb,0xae,0x61,0x6f,0x7b,0x34,0xb5,0x8c,0x5f,0x31,0xb6,0x23,0xe3,0xe7,0x4b,0x60,0xe6,0xba,0x8d,0x0e,0xd1,0xb2,0x37 +.byte 0x72,0x3d,0xc1,0x75,0x9b,0x5e,0xcb,0x0f,0xf9,0xe4,0xdb,0x82,0x4c,0xc4,0x37,0xef,0x9d,0xde,0x16,0x85,0xe9,0xc2,0x03,0xd8,0x5b,0xa1,0xff,0xfa,0xd4,0xd7,0x5c,0x34,0xb6,0x1e,0x25,0x96,0xf5,0x8b,0xc3,0xee,0x16,0x1f,0xf8,0x55,0x4e,0x1c,0x83,0x80,0x77,0x1d,0x4f,0xb6,0x95,0x1c,0x91,0x7d,0x50,0x25,0xf4,0x2a,0x5d,0x2e,0xc7,0x8a +.byte 0x14,0xf8,0xb9,0xbc,0xab,0x5b,0xcd,0x47,0xb5,0xaf,0x85,0xc0,0x34,0x27,0x7d,0x6a,0x8c,0x84,0x8a,0xae,0x68,0x60,0x0e,0xa1,0x45,0xf7,0x83,0x66,0x91,0x69,0x30,0xed,0x26,0x5e,0xf5,0x48,0x6b,0x20,0xb3,0x11,0x50,0xf7,0x70,0x9d,0x10,0x50,0x44,0x87,0xfe,0x96,0x5c,0xc6,0xa4,0xa4,0xed,0x5e,0x7f,0x3d,0x90,0x19,0xbe,0x31,0xa3,0xdd +.byte 0x44,0xbb,0x9b,0x51,0x5a,0x06,0x1d,0x2e,0xd7,0xef,0xd1,0x81,0xb6,0xec,0xc6,0x89,0xfb,0x13,0xc5,0x21,0xef,0x9a,0x1a,0x48,0xf2,0xf8,0xb3,0xa3,0xec,0x7f,0x85,0xc1,0xc6,0x8c,0x5f,0xa9,0x30,0x38,0x25,0x1e,0x8d,0xcf,0x18,0x24,0xef,0x5a,0x9a,0x14,0x31,0xc0,0x2c,0x88,0xa5,0x3f,0x50,0x8b,0xb1,0xda,0x5d,0x26,0xd9,0xd3,0x81,0xb1 +.byte 0xec,0xf0,0x42,0x88,0xd0,0x81,0x51,0xf9,0x1b,0xbc,0x43,0xa4,0x37,0xf1,0xd7,0x90,0x21,0x7e,0xa0,0x3e,0x63,0xfb,0x21,0xfa,0x12,0xfb,0xde,0xc7,0xbf,0xb3,0x58,0xe7,0x76,0x42,0x20,0x01,0x3d,0x66,0x80,0xf1,0xb8,0xaf,0xfa,0x7d,0x96,0x89,0x36,0x48,0x95,0xd9,0x6e,0x6d,0xe6,0x4f,0xff,0x2a,0x47,0x61,0xf2,0x04,0xb7,0x83,0x14,0xce +.byte 0x0a,0x3c,0x73,0x17,0x50,0x88,0x03,0x25,0x4a,0xe3,0x13,0x55,0x8b,0x7e,0x50,0x38,0xfc,0x14,0x0b,0x04,0x8e,0xa8,0x5b,0xd6,0x72,0x20,0x60,0xe9,0xaa,0x22,0x82,0x11,0xc6,0xc4,0xd7,0xb9,0xc8,0x0c,0x7e,0x05,0xfb,0x90,0xe4,0x9c,0x28,0x89,0x29,0x99,0x63,0x4d,0xec,0x7b,0x50,0xbd,0xd8,0xa3,0x5b,0x50,0x77,0x19,0x81,0x92,0xce,0x82 + +.align 5 +Lpoly: +.quad 0xffffffffffffffff,0x00000000ffffffff,0x0000000000000000,0xffffffff00000001 +LRR: // 2^512 mod P precomputed for NIST P256 polynomial +.quad 0x0000000000000003,0xfffffffbffffffff,0xfffffffffffffffe,0x00000004fffffffd +Lone_mont: +.quad 0x0000000000000001,0xffffffff00000000,0xffffffffffffffff,0x00000000fffffffe +Lone: +.quad 1,0,0,0 +Lord: +.quad 0xf3b9cac2fc632551,0xbce6faada7179e84,0xffffffffffffffff,0xffffffff00000000 +LordK: +.quad 0xccd1c8aaee00bc4f +.byte 69,67,80,95,78,73,83,84,90,50,53,54,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 2 + +// void ecp_nistz256_to_mont(BN_ULONG x0[4],const BN_ULONG x1[4]); +.globl _ecp_nistz256_to_mont + +.align 6 +_ecp_nistz256_to_mont: +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-32]! + add x29,sp,#0 + stp x19,x20,[sp,#16] + + ldr x3,LRR // bp[0] + ldp x4,x5,[x1] + ldp x6,x7,[x1,#16] + ldr x12,Lpoly+8 + ldr x13,Lpoly+24 + adr x2,LRR // &bp[0] + + bl __ecp_nistz256_mul_mont + + ldp x19,x20,[sp,#16] + ldp x29,x30,[sp],#32 +.long 0xd50323bf // autiasp + ret + + +// void ecp_nistz256_from_mont(BN_ULONG x0[4],const BN_ULONG x1[4]); +.globl _ecp_nistz256_from_mont + +.align 4 +_ecp_nistz256_from_mont: +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-32]! + add x29,sp,#0 + stp x19,x20,[sp,#16] + + mov x3,#1 // bp[0] + ldp x4,x5,[x1] + ldp x6,x7,[x1,#16] + ldr x12,Lpoly+8 + ldr x13,Lpoly+24 + adr x2,Lone // &bp[0] + + bl __ecp_nistz256_mul_mont + + ldp x19,x20,[sp,#16] + ldp x29,x30,[sp],#32 +.long 0xd50323bf // autiasp + ret + + +// void ecp_nistz256_mul_mont(BN_ULONG x0[4],const BN_ULONG x1[4], +// const BN_ULONG x2[4]); +.globl _ecp_nistz256_mul_mont + +.align 4 +_ecp_nistz256_mul_mont: +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-32]! + add x29,sp,#0 + stp x19,x20,[sp,#16] + + ldr x3,[x2] // bp[0] + ldp x4,x5,[x1] + ldp x6,x7,[x1,#16] + ldr x12,Lpoly+8 + ldr x13,Lpoly+24 + + bl __ecp_nistz256_mul_mont + + ldp x19,x20,[sp,#16] + ldp x29,x30,[sp],#32 +.long 0xd50323bf // autiasp + ret + + +// void ecp_nistz256_sqr_mont(BN_ULONG x0[4],const BN_ULONG x1[4]); +.globl _ecp_nistz256_sqr_mont + +.align 4 +_ecp_nistz256_sqr_mont: +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-32]! + add x29,sp,#0 + stp x19,x20,[sp,#16] + + ldp x4,x5,[x1] + ldp x6,x7,[x1,#16] + ldr x12,Lpoly+8 + ldr x13,Lpoly+24 + + bl __ecp_nistz256_sqr_mont + + ldp x19,x20,[sp,#16] + ldp x29,x30,[sp],#32 +.long 0xd50323bf // autiasp + ret + + +// void ecp_nistz256_add(BN_ULONG x0[4],const BN_ULONG x1[4], +// const BN_ULONG x2[4]); +.globl _ecp_nistz256_add + +.align 4 +_ecp_nistz256_add: +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + + ldp x14,x15,[x1] + ldp x8,x9,[x2] + ldp x16,x17,[x1,#16] + ldp x10,x11,[x2,#16] + ldr x12,Lpoly+8 + ldr x13,Lpoly+24 + + bl __ecp_nistz256_add + + ldp x29,x30,[sp],#16 +.long 0xd50323bf // autiasp + ret + + +// void ecp_nistz256_div_by_2(BN_ULONG x0[4],const BN_ULONG x1[4]); +.globl _ecp_nistz256_div_by_2 + +.align 4 +_ecp_nistz256_div_by_2: +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + + ldp x14,x15,[x1] + ldp x16,x17,[x1,#16] + ldr x12,Lpoly+8 + ldr x13,Lpoly+24 + + bl __ecp_nistz256_div_by_2 + + ldp x29,x30,[sp],#16 +.long 0xd50323bf // autiasp + ret + + +// void ecp_nistz256_mul_by_2(BN_ULONG x0[4],const BN_ULONG x1[4]); +.globl _ecp_nistz256_mul_by_2 + +.align 4 +_ecp_nistz256_mul_by_2: +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + + ldp x14,x15,[x1] + ldp x16,x17,[x1,#16] + ldr x12,Lpoly+8 + ldr x13,Lpoly+24 + mov x8,x14 + mov x9,x15 + mov x10,x16 + mov x11,x17 + + bl __ecp_nistz256_add // ret = a+a // 2*a + + ldp x29,x30,[sp],#16 +.long 0xd50323bf // autiasp + ret + + +// void ecp_nistz256_mul_by_3(BN_ULONG x0[4],const BN_ULONG x1[4]); +.globl _ecp_nistz256_mul_by_3 + +.align 4 +_ecp_nistz256_mul_by_3: +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + + ldp x14,x15,[x1] + ldp x16,x17,[x1,#16] + ldr x12,Lpoly+8 + ldr x13,Lpoly+24 + mov x8,x14 + mov x9,x15 + mov x10,x16 + mov x11,x17 + mov x4,x14 + mov x5,x15 + mov x6,x16 + mov x7,x17 + + bl __ecp_nistz256_add // ret = a+a // 2*a + + mov x8,x4 + mov x9,x5 + mov x10,x6 + mov x11,x7 + + bl __ecp_nistz256_add // ret += a // 2*a+a=3*a + + ldp x29,x30,[sp],#16 +.long 0xd50323bf // autiasp + ret + + +// void ecp_nistz256_sub(BN_ULONG x0[4],const BN_ULONG x1[4], +// const BN_ULONG x2[4]); +.globl _ecp_nistz256_sub + +.align 4 +_ecp_nistz256_sub: +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + + ldp x14,x15,[x1] + ldp x16,x17,[x1,#16] + ldr x12,Lpoly+8 + ldr x13,Lpoly+24 + + bl __ecp_nistz256_sub_from + + ldp x29,x30,[sp],#16 +.long 0xd50323bf // autiasp + ret + + +// void ecp_nistz256_neg(BN_ULONG x0[4],const BN_ULONG x1[4]); +.globl _ecp_nistz256_neg + +.align 4 +_ecp_nistz256_neg: +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + + mov x2,x1 + mov x14,xzr // a = 0 + mov x15,xzr + mov x16,xzr + mov x17,xzr + ldr x12,Lpoly+8 + ldr x13,Lpoly+24 + + bl __ecp_nistz256_sub_from + + ldp x29,x30,[sp],#16 +.long 0xd50323bf // autiasp + ret + + +// note that __ecp_nistz256_mul_mont expects a[0-3] input pre-loaded +// to x4-x7 and b[0] - to x3 + +.align 4 +__ecp_nistz256_mul_mont: + mul x14,x4,x3 // a[0]*b[0] + umulh x8,x4,x3 + + mul x15,x5,x3 // a[1]*b[0] + umulh x9,x5,x3 + + mul x16,x6,x3 // a[2]*b[0] + umulh x10,x6,x3 + + mul x17,x7,x3 // a[3]*b[0] + umulh x11,x7,x3 + ldr x3,[x2,#8] // b[1] + + adds x15,x15,x8 // accumulate high parts of multiplication + lsl x8,x14,#32 + adcs x16,x16,x9 + lsr x9,x14,#32 + adcs x17,x17,x10 + adc x19,xzr,x11 + mov x20,xzr + subs x10,x14,x8 // "*0xffff0001" + sbc x11,x14,x9 + adds x14,x15,x8 // +=acc[0]<<96 and omit acc[0] + mul x8,x4,x3 // lo(a[0]*b[i]) + adcs x15,x16,x9 + mul x9,x5,x3 // lo(a[1]*b[i]) + adcs x16,x17,x10 // +=acc[0]*0xffff0001 + mul x10,x6,x3 // lo(a[2]*b[i]) + adcs x17,x19,x11 + mul x11,x7,x3 // lo(a[3]*b[i]) + adc x19,x20,xzr + + adds x14,x14,x8 // accumulate low parts of multiplication + umulh x8,x4,x3 // hi(a[0]*b[i]) + adcs x15,x15,x9 + umulh x9,x5,x3 // hi(a[1]*b[i]) + adcs x16,x16,x10 + umulh x10,x6,x3 // hi(a[2]*b[i]) + adcs x17,x17,x11 + umulh x11,x7,x3 // hi(a[3]*b[i]) + adc x19,x19,xzr + ldr x3,[x2,#8*(1+1)] // b[1+1] + adds x15,x15,x8 // accumulate high parts of multiplication + lsl x8,x14,#32 + adcs x16,x16,x9 + lsr x9,x14,#32 + adcs x17,x17,x10 + adcs x19,x19,x11 + adc x20,xzr,xzr + subs x10,x14,x8 // "*0xffff0001" + sbc x11,x14,x9 + adds x14,x15,x8 // +=acc[0]<<96 and omit acc[0] + mul x8,x4,x3 // lo(a[0]*b[i]) + adcs x15,x16,x9 + mul x9,x5,x3 // lo(a[1]*b[i]) + adcs x16,x17,x10 // +=acc[0]*0xffff0001 + mul x10,x6,x3 // lo(a[2]*b[i]) + adcs x17,x19,x11 + mul x11,x7,x3 // lo(a[3]*b[i]) + adc x19,x20,xzr + + adds x14,x14,x8 // accumulate low parts of multiplication + umulh x8,x4,x3 // hi(a[0]*b[i]) + adcs x15,x15,x9 + umulh x9,x5,x3 // hi(a[1]*b[i]) + adcs x16,x16,x10 + umulh x10,x6,x3 // hi(a[2]*b[i]) + adcs x17,x17,x11 + umulh x11,x7,x3 // hi(a[3]*b[i]) + adc x19,x19,xzr + ldr x3,[x2,#8*(2+1)] // b[2+1] + adds x15,x15,x8 // accumulate high parts of multiplication + lsl x8,x14,#32 + adcs x16,x16,x9 + lsr x9,x14,#32 + adcs x17,x17,x10 + adcs x19,x19,x11 + adc x20,xzr,xzr + subs x10,x14,x8 // "*0xffff0001" + sbc x11,x14,x9 + adds x14,x15,x8 // +=acc[0]<<96 and omit acc[0] + mul x8,x4,x3 // lo(a[0]*b[i]) + adcs x15,x16,x9 + mul x9,x5,x3 // lo(a[1]*b[i]) + adcs x16,x17,x10 // +=acc[0]*0xffff0001 + mul x10,x6,x3 // lo(a[2]*b[i]) + adcs x17,x19,x11 + mul x11,x7,x3 // lo(a[3]*b[i]) + adc x19,x20,xzr + + adds x14,x14,x8 // accumulate low parts of multiplication + umulh x8,x4,x3 // hi(a[0]*b[i]) + adcs x15,x15,x9 + umulh x9,x5,x3 // hi(a[1]*b[i]) + adcs x16,x16,x10 + umulh x10,x6,x3 // hi(a[2]*b[i]) + adcs x17,x17,x11 + umulh x11,x7,x3 // hi(a[3]*b[i]) + adc x19,x19,xzr + adds x15,x15,x8 // accumulate high parts of multiplication + lsl x8,x14,#32 + adcs x16,x16,x9 + lsr x9,x14,#32 + adcs x17,x17,x10 + adcs x19,x19,x11 + adc x20,xzr,xzr + // last reduction + subs x10,x14,x8 // "*0xffff0001" + sbc x11,x14,x9 + adds x14,x15,x8 // +=acc[0]<<96 and omit acc[0] + adcs x15,x16,x9 + adcs x16,x17,x10 // +=acc[0]*0xffff0001 + adcs x17,x19,x11 + adc x19,x20,xzr + + adds x8,x14,#1 // subs x8,x14,#-1 // tmp = ret-modulus + sbcs x9,x15,x12 + sbcs x10,x16,xzr + sbcs x11,x17,x13 + sbcs xzr,x19,xzr // did it borrow? + + csel x14,x14,x8,lo // ret = borrow ? ret : ret-modulus + csel x15,x15,x9,lo + csel x16,x16,x10,lo + stp x14,x15,[x0] + csel x17,x17,x11,lo + stp x16,x17,[x0,#16] + + ret + + +// note that __ecp_nistz256_sqr_mont expects a[0-3] input pre-loaded +// to x4-x7 + +.align 4 +__ecp_nistz256_sqr_mont: + // | | | | | |a1*a0| | + // | | | | |a2*a0| | | + // | |a3*a2|a3*a0| | | | + // | | | |a2*a1| | | | + // | | |a3*a1| | | | | + // *| | | | | | | | 2| + // +|a3*a3|a2*a2|a1*a1|a0*a0| + // |--+--+--+--+--+--+--+--| + // |A7|A6|A5|A4|A3|A2|A1|A0|, where Ax is , i.e. follow + // + // "can't overflow" below mark carrying into high part of + // multiplication result, which can't overflow, because it + // can never be all ones. + + mul x15,x5,x4 // a[1]*a[0] + umulh x9,x5,x4 + mul x16,x6,x4 // a[2]*a[0] + umulh x10,x6,x4 + mul x17,x7,x4 // a[3]*a[0] + umulh x19,x7,x4 + + adds x16,x16,x9 // accumulate high parts of multiplication + mul x8,x6,x5 // a[2]*a[1] + umulh x9,x6,x5 + adcs x17,x17,x10 + mul x10,x7,x5 // a[3]*a[1] + umulh x11,x7,x5 + adc x19,x19,xzr // can't overflow + + mul x20,x7,x6 // a[3]*a[2] + umulh x1,x7,x6 + + adds x9,x9,x10 // accumulate high parts of multiplication + mul x14,x4,x4 // a[0]*a[0] + adc x10,x11,xzr // can't overflow + + adds x17,x17,x8 // accumulate low parts of multiplication + umulh x4,x4,x4 + adcs x19,x19,x9 + mul x9,x5,x5 // a[1]*a[1] + adcs x20,x20,x10 + umulh x5,x5,x5 + adc x1,x1,xzr // can't overflow + + adds x15,x15,x15 // acc[1-6]*=2 + mul x10,x6,x6 // a[2]*a[2] + adcs x16,x16,x16 + umulh x6,x6,x6 + adcs x17,x17,x17 + mul x11,x7,x7 // a[3]*a[3] + adcs x19,x19,x19 + umulh x7,x7,x7 + adcs x20,x20,x20 + adcs x1,x1,x1 + adc x2,xzr,xzr + + adds x15,x15,x4 // +a[i]*a[i] + adcs x16,x16,x9 + adcs x17,x17,x5 + adcs x19,x19,x10 + adcs x20,x20,x6 + lsl x8,x14,#32 + adcs x1,x1,x11 + lsr x9,x14,#32 + adc x2,x2,x7 + subs x10,x14,x8 // "*0xffff0001" + sbc x11,x14,x9 + adds x14,x15,x8 // +=acc[0]<<96 and omit acc[0] + adcs x15,x16,x9 + lsl x8,x14,#32 + adcs x16,x17,x10 // +=acc[0]*0xffff0001 + lsr x9,x14,#32 + adc x17,x11,xzr // can't overflow + subs x10,x14,x8 // "*0xffff0001" + sbc x11,x14,x9 + adds x14,x15,x8 // +=acc[0]<<96 and omit acc[0] + adcs x15,x16,x9 + lsl x8,x14,#32 + adcs x16,x17,x10 // +=acc[0]*0xffff0001 + lsr x9,x14,#32 + adc x17,x11,xzr // can't overflow + subs x10,x14,x8 // "*0xffff0001" + sbc x11,x14,x9 + adds x14,x15,x8 // +=acc[0]<<96 and omit acc[0] + adcs x15,x16,x9 + lsl x8,x14,#32 + adcs x16,x17,x10 // +=acc[0]*0xffff0001 + lsr x9,x14,#32 + adc x17,x11,xzr // can't overflow + subs x10,x14,x8 // "*0xffff0001" + sbc x11,x14,x9 + adds x14,x15,x8 // +=acc[0]<<96 and omit acc[0] + adcs x15,x16,x9 + adcs x16,x17,x10 // +=acc[0]*0xffff0001 + adc x17,x11,xzr // can't overflow + + adds x14,x14,x19 // accumulate upper half + adcs x15,x15,x20 + adcs x16,x16,x1 + adcs x17,x17,x2 + adc x19,xzr,xzr + + adds x8,x14,#1 // subs x8,x14,#-1 // tmp = ret-modulus + sbcs x9,x15,x12 + sbcs x10,x16,xzr + sbcs x11,x17,x13 + sbcs xzr,x19,xzr // did it borrow? + + csel x14,x14,x8,lo // ret = borrow ? ret : ret-modulus + csel x15,x15,x9,lo + csel x16,x16,x10,lo + stp x14,x15,[x0] + csel x17,x17,x11,lo + stp x16,x17,[x0,#16] + + ret + + +// Note that __ecp_nistz256_add expects both input vectors pre-loaded to +// x4-x7 and x8-x11. This is done because it's used in multiple +// contexts, e.g. in multiplication by 2 and 3... + +.align 4 +__ecp_nistz256_add: + adds x14,x14,x8 // ret = a+b + adcs x15,x15,x9 + adcs x16,x16,x10 + adcs x17,x17,x11 + adc x1,xzr,xzr // zap x1 + + adds x8,x14,#1 // subs x8,x4,#-1 // tmp = ret-modulus + sbcs x9,x15,x12 + sbcs x10,x16,xzr + sbcs x11,x17,x13 + sbcs xzr,x1,xzr // did subtraction borrow? + + csel x14,x14,x8,lo // ret = borrow ? ret : ret-modulus + csel x15,x15,x9,lo + csel x16,x16,x10,lo + stp x14,x15,[x0] + csel x17,x17,x11,lo + stp x16,x17,[x0,#16] + + ret + + + +.align 4 +__ecp_nistz256_sub_from: + ldp x8,x9,[x2] + ldp x10,x11,[x2,#16] + subs x14,x14,x8 // ret = a-b + sbcs x15,x15,x9 + sbcs x16,x16,x10 + sbcs x17,x17,x11 + sbc x1,xzr,xzr // zap x1 + + subs x8,x14,#1 // adds x8,x4,#-1 // tmp = ret+modulus + adcs x9,x15,x12 + adcs x10,x16,xzr + adc x11,x17,x13 + cmp x1,xzr // did subtraction borrow? + + csel x14,x14,x8,eq // ret = borrow ? ret+modulus : ret + csel x15,x15,x9,eq + csel x16,x16,x10,eq + stp x14,x15,[x0] + csel x17,x17,x11,eq + stp x16,x17,[x0,#16] + + ret + + + +.align 4 +__ecp_nistz256_sub_morf: + ldp x8,x9,[x2] + ldp x10,x11,[x2,#16] + subs x14,x8,x14 // ret = b-a + sbcs x15,x9,x15 + sbcs x16,x10,x16 + sbcs x17,x11,x17 + sbc x1,xzr,xzr // zap x1 + + subs x8,x14,#1 // adds x8,x4,#-1 // tmp = ret+modulus + adcs x9,x15,x12 + adcs x10,x16,xzr + adc x11,x17,x13 + cmp x1,xzr // did subtraction borrow? + + csel x14,x14,x8,eq // ret = borrow ? ret+modulus : ret + csel x15,x15,x9,eq + csel x16,x16,x10,eq + stp x14,x15,[x0] + csel x17,x17,x11,eq + stp x16,x17,[x0,#16] + + ret + + + +.align 4 +__ecp_nistz256_div_by_2: + subs x8,x14,#1 // adds x8,x4,#-1 // tmp = a+modulus + adcs x9,x15,x12 + adcs x10,x16,xzr + adcs x11,x17,x13 + adc x1,xzr,xzr // zap x1 + tst x14,#1 // is a even? + + csel x14,x14,x8,eq // ret = even ? a : a+modulus + csel x15,x15,x9,eq + csel x16,x16,x10,eq + csel x17,x17,x11,eq + csel x1,xzr,x1,eq + + lsr x14,x14,#1 // ret >>= 1 + orr x14,x14,x15,lsl#63 + lsr x15,x15,#1 + orr x15,x15,x16,lsl#63 + lsr x16,x16,#1 + orr x16,x16,x17,lsl#63 + lsr x17,x17,#1 + stp x14,x15,[x0] + orr x17,x17,x1,lsl#63 + stp x16,x17,[x0,#16] + + ret + +.globl _ecp_nistz256_point_double + +.align 5 +_ecp_nistz256_point_double: +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-96]! + add x29,sp,#0 + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + sub sp,sp,#32*4 + +Ldouble_shortcut: + ldp x14,x15,[x1,#32] + mov x21,x0 + ldp x16,x17,[x1,#48] + mov x22,x1 + ldr x12,Lpoly+8 + mov x8,x14 + ldr x13,Lpoly+24 + mov x9,x15 + ldp x4,x5,[x22,#64] // forward load for p256_sqr_mont + mov x10,x16 + mov x11,x17 + ldp x6,x7,[x22,#64+16] + add x0,sp,#0 + bl __ecp_nistz256_add // p256_mul_by_2(S, in_y); + + add x0,sp,#64 + bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Zsqr, in_z); + + ldp x8,x9,[x22] + ldp x10,x11,[x22,#16] + mov x4,x14 // put Zsqr aside for p256_sub + mov x5,x15 + mov x6,x16 + mov x7,x17 + add x0,sp,#32 + bl __ecp_nistz256_add // p256_add(M, Zsqr, in_x); + + add x2,x22,#0 + mov x14,x4 // restore Zsqr + mov x15,x5 + ldp x4,x5,[sp,#0] // forward load for p256_sqr_mont + mov x16,x6 + mov x17,x7 + ldp x6,x7,[sp,#0+16] + add x0,sp,#64 + bl __ecp_nistz256_sub_morf // p256_sub(Zsqr, in_x, Zsqr); + + add x0,sp,#0 + bl __ecp_nistz256_sqr_mont // p256_sqr_mont(S, S); + + ldr x3,[x22,#32] + ldp x4,x5,[x22,#64] + ldp x6,x7,[x22,#64+16] + add x2,x22,#32 + add x0,sp,#96 + bl __ecp_nistz256_mul_mont // p256_mul_mont(tmp0, in_z, in_y); + + mov x8,x14 + mov x9,x15 + ldp x4,x5,[sp,#0] // forward load for p256_sqr_mont + mov x10,x16 + mov x11,x17 + ldp x6,x7,[sp,#0+16] + add x0,x21,#64 + bl __ecp_nistz256_add // p256_mul_by_2(res_z, tmp0); + + add x0,sp,#96 + bl __ecp_nistz256_sqr_mont // p256_sqr_mont(tmp0, S); + + ldr x3,[sp,#64] // forward load for p256_mul_mont + ldp x4,x5,[sp,#32] + ldp x6,x7,[sp,#32+16] + add x0,x21,#32 + bl __ecp_nistz256_div_by_2 // p256_div_by_2(res_y, tmp0); + + add x2,sp,#64 + add x0,sp,#32 + bl __ecp_nistz256_mul_mont // p256_mul_mont(M, M, Zsqr); + + mov x8,x14 // duplicate M + mov x9,x15 + mov x10,x16 + mov x11,x17 + mov x4,x14 // put M aside + mov x5,x15 + mov x6,x16 + mov x7,x17 + add x0,sp,#32 + bl __ecp_nistz256_add + mov x8,x4 // restore M + mov x9,x5 + ldr x3,[x22] // forward load for p256_mul_mont + mov x10,x6 + ldp x4,x5,[sp,#0] + mov x11,x7 + ldp x6,x7,[sp,#0+16] + bl __ecp_nistz256_add // p256_mul_by_3(M, M); + + add x2,x22,#0 + add x0,sp,#0 + bl __ecp_nistz256_mul_mont // p256_mul_mont(S, S, in_x); + + mov x8,x14 + mov x9,x15 + ldp x4,x5,[sp,#32] // forward load for p256_sqr_mont + mov x10,x16 + mov x11,x17 + ldp x6,x7,[sp,#32+16] + add x0,sp,#96 + bl __ecp_nistz256_add // p256_mul_by_2(tmp0, S); + + add x0,x21,#0 + bl __ecp_nistz256_sqr_mont // p256_sqr_mont(res_x, M); + + add x2,sp,#96 + bl __ecp_nistz256_sub_from // p256_sub(res_x, res_x, tmp0); + + add x2,sp,#0 + add x0,sp,#0 + bl __ecp_nistz256_sub_morf // p256_sub(S, S, res_x); + + ldr x3,[sp,#32] + mov x4,x14 // copy S + mov x5,x15 + mov x6,x16 + mov x7,x17 + add x2,sp,#32 + bl __ecp_nistz256_mul_mont // p256_mul_mont(S, S, M); + + add x2,x21,#32 + add x0,x21,#32 + bl __ecp_nistz256_sub_from // p256_sub(res_y, S, res_y); + + add sp,x29,#0 // destroy frame + ldp x19,x20,[x29,#16] + ldp x21,x22,[x29,#32] + ldp x29,x30,[sp],#96 +.long 0xd50323bf // autiasp + ret + +.globl _ecp_nistz256_point_add + +.align 5 +_ecp_nistz256_point_add: +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-96]! + add x29,sp,#0 + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + stp x23,x24,[sp,#48] + stp x25,x26,[sp,#64] + stp x27,x28,[sp,#80] + sub sp,sp,#32*12 + + ldp x4,x5,[x2,#64] // in2_z + ldp x6,x7,[x2,#64+16] + mov x21,x0 + mov x22,x1 + mov x23,x2 + ldr x12,Lpoly+8 + ldr x13,Lpoly+24 + orr x8,x4,x5 + orr x10,x6,x7 + orr x25,x8,x10 + cmp x25,#0 + csetm x25,ne // ~in2infty + add x0,sp,#192 + bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Z2sqr, in2_z); + + ldp x4,x5,[x22,#64] // in1_z + ldp x6,x7,[x22,#64+16] + orr x8,x4,x5 + orr x10,x6,x7 + orr x24,x8,x10 + cmp x24,#0 + csetm x24,ne // ~in1infty + add x0,sp,#128 + bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Z1sqr, in1_z); + + ldr x3,[x23,#64] + ldp x4,x5,[sp,#192] + ldp x6,x7,[sp,#192+16] + add x2,x23,#64 + add x0,sp,#320 + bl __ecp_nistz256_mul_mont // p256_mul_mont(S1, Z2sqr, in2_z); + + ldr x3,[x22,#64] + ldp x4,x5,[sp,#128] + ldp x6,x7,[sp,#128+16] + add x2,x22,#64 + add x0,sp,#352 + bl __ecp_nistz256_mul_mont // p256_mul_mont(S2, Z1sqr, in1_z); + + ldr x3,[x22,#32] + ldp x4,x5,[sp,#320] + ldp x6,x7,[sp,#320+16] + add x2,x22,#32 + add x0,sp,#320 + bl __ecp_nistz256_mul_mont // p256_mul_mont(S1, S1, in1_y); + + ldr x3,[x23,#32] + ldp x4,x5,[sp,#352] + ldp x6,x7,[sp,#352+16] + add x2,x23,#32 + add x0,sp,#352 + bl __ecp_nistz256_mul_mont // p256_mul_mont(S2, S2, in2_y); + + add x2,sp,#320 + ldr x3,[sp,#192] // forward load for p256_mul_mont + ldp x4,x5,[x22] + ldp x6,x7,[x22,#16] + add x0,sp,#160 + bl __ecp_nistz256_sub_from // p256_sub(R, S2, S1); + + orr x14,x14,x15 // see if result is zero + orr x16,x16,x17 + orr x26,x14,x16 // ~is_equal(S1,S2) + + add x2,sp,#192 + add x0,sp,#256 + bl __ecp_nistz256_mul_mont // p256_mul_mont(U1, in1_x, Z2sqr); + + ldr x3,[sp,#128] + ldp x4,x5,[x23] + ldp x6,x7,[x23,#16] + add x2,sp,#128 + add x0,sp,#288 + bl __ecp_nistz256_mul_mont // p256_mul_mont(U2, in2_x, Z1sqr); + + add x2,sp,#256 + ldp x4,x5,[sp,#160] // forward load for p256_sqr_mont + ldp x6,x7,[sp,#160+16] + add x0,sp,#96 + bl __ecp_nistz256_sub_from // p256_sub(H, U2, U1); + + orr x14,x14,x15 // see if result is zero + orr x16,x16,x17 + orr x14,x14,x16 // ~is_equal(U1,U2) + + mvn x27,x24 // -1/0 -> 0/-1 + mvn x28,x25 // -1/0 -> 0/-1 + orr x14,x14,x27 + orr x14,x14,x28 + orr x14,x14,x26 + cbnz x14,Ladd_proceed // if(~is_equal(U1,U2) | in1infty | in2infty | ~is_equal(S1,S2)) + +Ladd_double: + mov x1,x22 + mov x0,x21 + ldp x23,x24,[x29,#48] + ldp x25,x26,[x29,#64] + ldp x27,x28,[x29,#80] + add sp,sp,#32*(12-4) // difference in stack frames + b Ldouble_shortcut + +.align 4 +Ladd_proceed: + add x0,sp,#192 + bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Rsqr, R); + + ldr x3,[x22,#64] + ldp x4,x5,[sp,#96] + ldp x6,x7,[sp,#96+16] + add x2,x22,#64 + add x0,sp,#64 + bl __ecp_nistz256_mul_mont // p256_mul_mont(res_z, H, in1_z); + + ldp x4,x5,[sp,#96] + ldp x6,x7,[sp,#96+16] + add x0,sp,#128 + bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Hsqr, H); + + ldr x3,[x23,#64] + ldp x4,x5,[sp,#64] + ldp x6,x7,[sp,#64+16] + add x2,x23,#64 + add x0,sp,#64 + bl __ecp_nistz256_mul_mont // p256_mul_mont(res_z, res_z, in2_z); + + ldr x3,[sp,#96] + ldp x4,x5,[sp,#128] + ldp x6,x7,[sp,#128+16] + add x2,sp,#96 + add x0,sp,#224 + bl __ecp_nistz256_mul_mont // p256_mul_mont(Hcub, Hsqr, H); + + ldr x3,[sp,#128] + ldp x4,x5,[sp,#256] + ldp x6,x7,[sp,#256+16] + add x2,sp,#128 + add x0,sp,#288 + bl __ecp_nistz256_mul_mont // p256_mul_mont(U2, U1, Hsqr); + + mov x8,x14 + mov x9,x15 + mov x10,x16 + mov x11,x17 + add x0,sp,#128 + bl __ecp_nistz256_add // p256_mul_by_2(Hsqr, U2); + + add x2,sp,#192 + add x0,sp,#0 + bl __ecp_nistz256_sub_morf // p256_sub(res_x, Rsqr, Hsqr); + + add x2,sp,#224 + bl __ecp_nistz256_sub_from // p256_sub(res_x, res_x, Hcub); + + add x2,sp,#288 + ldr x3,[sp,#224] // forward load for p256_mul_mont + ldp x4,x5,[sp,#320] + ldp x6,x7,[sp,#320+16] + add x0,sp,#32 + bl __ecp_nistz256_sub_morf // p256_sub(res_y, U2, res_x); + + add x2,sp,#224 + add x0,sp,#352 + bl __ecp_nistz256_mul_mont // p256_mul_mont(S2, S1, Hcub); + + ldr x3,[sp,#160] + ldp x4,x5,[sp,#32] + ldp x6,x7,[sp,#32+16] + add x2,sp,#160 + add x0,sp,#32 + bl __ecp_nistz256_mul_mont // p256_mul_mont(res_y, res_y, R); + + add x2,sp,#352 + bl __ecp_nistz256_sub_from // p256_sub(res_y, res_y, S2); + + ldp x4,x5,[sp,#0] // res + ldp x6,x7,[sp,#0+16] + ldp x8,x9,[x23] // in2 + ldp x10,x11,[x23,#16] + ldp x14,x15,[x22,#0] // in1 + cmp x24,#0 // ~, remember? + ldp x16,x17,[x22,#0+16] + csel x8,x4,x8,ne + csel x9,x5,x9,ne + ldp x4,x5,[sp,#0+0+32] // res + csel x10,x6,x10,ne + csel x11,x7,x11,ne + cmp x25,#0 // ~, remember? + ldp x6,x7,[sp,#0+0+48] + csel x14,x8,x14,ne + csel x15,x9,x15,ne + ldp x8,x9,[x23,#0+32] // in2 + csel x16,x10,x16,ne + csel x17,x11,x17,ne + ldp x10,x11,[x23,#0+48] + stp x14,x15,[x21,#0] + stp x16,x17,[x21,#0+16] + ldp x14,x15,[x22,#32] // in1 + cmp x24,#0 // ~, remember? + ldp x16,x17,[x22,#32+16] + csel x8,x4,x8,ne + csel x9,x5,x9,ne + ldp x4,x5,[sp,#0+32+32] // res + csel x10,x6,x10,ne + csel x11,x7,x11,ne + cmp x25,#0 // ~, remember? + ldp x6,x7,[sp,#0+32+48] + csel x14,x8,x14,ne + csel x15,x9,x15,ne + ldp x8,x9,[x23,#32+32] // in2 + csel x16,x10,x16,ne + csel x17,x11,x17,ne + ldp x10,x11,[x23,#32+48] + stp x14,x15,[x21,#32] + stp x16,x17,[x21,#32+16] + ldp x14,x15,[x22,#64] // in1 + cmp x24,#0 // ~, remember? + ldp x16,x17,[x22,#64+16] + csel x8,x4,x8,ne + csel x9,x5,x9,ne + csel x10,x6,x10,ne + csel x11,x7,x11,ne + cmp x25,#0 // ~, remember? + csel x14,x8,x14,ne + csel x15,x9,x15,ne + csel x16,x10,x16,ne + csel x17,x11,x17,ne + stp x14,x15,[x21,#64] + stp x16,x17,[x21,#64+16] + +Ladd_done: + add sp,x29,#0 // destroy frame + ldp x19,x20,[x29,#16] + ldp x21,x22,[x29,#32] + ldp x23,x24,[x29,#48] + ldp x25,x26,[x29,#64] + ldp x27,x28,[x29,#80] + ldp x29,x30,[sp],#96 +.long 0xd50323bf // autiasp + ret + +.globl _ecp_nistz256_point_add_affine + +.align 5 +_ecp_nistz256_point_add_affine: +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-80]! + add x29,sp,#0 + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + stp x23,x24,[sp,#48] + stp x25,x26,[sp,#64] + sub sp,sp,#32*10 + + mov x21,x0 + mov x22,x1 + mov x23,x2 + ldr x12,Lpoly+8 + ldr x13,Lpoly+24 + + ldp x4,x5,[x1,#64] // in1_z + ldp x6,x7,[x1,#64+16] + orr x8,x4,x5 + orr x10,x6,x7 + orr x24,x8,x10 + cmp x24,#0 + csetm x24,ne // ~in1infty + + ldp x14,x15,[x2] // in2_x + ldp x16,x17,[x2,#16] + ldp x8,x9,[x2,#32] // in2_y + ldp x10,x11,[x2,#48] + orr x14,x14,x15 + orr x16,x16,x17 + orr x8,x8,x9 + orr x10,x10,x11 + orr x14,x14,x16 + orr x8,x8,x10 + orr x25,x14,x8 + cmp x25,#0 + csetm x25,ne // ~in2infty + + add x0,sp,#128 + bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Z1sqr, in1_z); + + mov x4,x14 + mov x5,x15 + mov x6,x16 + mov x7,x17 + ldr x3,[x23] + add x2,x23,#0 + add x0,sp,#96 + bl __ecp_nistz256_mul_mont // p256_mul_mont(U2, Z1sqr, in2_x); + + add x2,x22,#0 + ldr x3,[x22,#64] // forward load for p256_mul_mont + ldp x4,x5,[sp,#128] + ldp x6,x7,[sp,#128+16] + add x0,sp,#160 + bl __ecp_nistz256_sub_from // p256_sub(H, U2, in1_x); + + add x2,x22,#64 + add x0,sp,#128 + bl __ecp_nistz256_mul_mont // p256_mul_mont(S2, Z1sqr, in1_z); + + ldr x3,[x22,#64] + ldp x4,x5,[sp,#160] + ldp x6,x7,[sp,#160+16] + add x2,x22,#64 + add x0,sp,#64 + bl __ecp_nistz256_mul_mont // p256_mul_mont(res_z, H, in1_z); + + ldr x3,[x23,#32] + ldp x4,x5,[sp,#128] + ldp x6,x7,[sp,#128+16] + add x2,x23,#32 + add x0,sp,#128 + bl __ecp_nistz256_mul_mont // p256_mul_mont(S2, S2, in2_y); + + add x2,x22,#32 + ldp x4,x5,[sp,#160] // forward load for p256_sqr_mont + ldp x6,x7,[sp,#160+16] + add x0,sp,#192 + bl __ecp_nistz256_sub_from // p256_sub(R, S2, in1_y); + + add x0,sp,#224 + bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Hsqr, H); + + ldp x4,x5,[sp,#192] + ldp x6,x7,[sp,#192+16] + add x0,sp,#288 + bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Rsqr, R); + + ldr x3,[sp,#160] + ldp x4,x5,[sp,#224] + ldp x6,x7,[sp,#224+16] + add x2,sp,#160 + add x0,sp,#256 + bl __ecp_nistz256_mul_mont // p256_mul_mont(Hcub, Hsqr, H); + + ldr x3,[x22] + ldp x4,x5,[sp,#224] + ldp x6,x7,[sp,#224+16] + add x2,x22,#0 + add x0,sp,#96 + bl __ecp_nistz256_mul_mont // p256_mul_mont(U2, in1_x, Hsqr); + + mov x8,x14 + mov x9,x15 + mov x10,x16 + mov x11,x17 + add x0,sp,#224 + bl __ecp_nistz256_add // p256_mul_by_2(Hsqr, U2); + + add x2,sp,#288 + add x0,sp,#0 + bl __ecp_nistz256_sub_morf // p256_sub(res_x, Rsqr, Hsqr); + + add x2,sp,#256 + bl __ecp_nistz256_sub_from // p256_sub(res_x, res_x, Hcub); + + add x2,sp,#96 + ldr x3,[x22,#32] // forward load for p256_mul_mont + ldp x4,x5,[sp,#256] + ldp x6,x7,[sp,#256+16] + add x0,sp,#32 + bl __ecp_nistz256_sub_morf // p256_sub(res_y, U2, res_x); + + add x2,x22,#32 + add x0,sp,#128 + bl __ecp_nistz256_mul_mont // p256_mul_mont(S2, in1_y, Hcub); + + ldr x3,[sp,#192] + ldp x4,x5,[sp,#32] + ldp x6,x7,[sp,#32+16] + add x2,sp,#192 + add x0,sp,#32 + bl __ecp_nistz256_mul_mont // p256_mul_mont(res_y, res_y, R); + + add x2,sp,#128 + bl __ecp_nistz256_sub_from // p256_sub(res_y, res_y, S2); + + ldp x4,x5,[sp,#0] // res + ldp x6,x7,[sp,#0+16] + ldp x8,x9,[x23] // in2 + ldp x10,x11,[x23,#16] + ldp x14,x15,[x22,#0] // in1 + cmp x24,#0 // ~, remember? + ldp x16,x17,[x22,#0+16] + csel x8,x4,x8,ne + csel x9,x5,x9,ne + ldp x4,x5,[sp,#0+0+32] // res + csel x10,x6,x10,ne + csel x11,x7,x11,ne + cmp x25,#0 // ~, remember? + ldp x6,x7,[sp,#0+0+48] + csel x14,x8,x14,ne + csel x15,x9,x15,ne + ldp x8,x9,[x23,#0+32] // in2 + csel x16,x10,x16,ne + csel x17,x11,x17,ne + ldp x10,x11,[x23,#0+48] + stp x14,x15,[x21,#0] + stp x16,x17,[x21,#0+16] + adr x23,Lone_mont-64 + ldp x14,x15,[x22,#32] // in1 + cmp x24,#0 // ~, remember? + ldp x16,x17,[x22,#32+16] + csel x8,x4,x8,ne + csel x9,x5,x9,ne + ldp x4,x5,[sp,#0+32+32] // res + csel x10,x6,x10,ne + csel x11,x7,x11,ne + cmp x25,#0 // ~, remember? + ldp x6,x7,[sp,#0+32+48] + csel x14,x8,x14,ne + csel x15,x9,x15,ne + ldp x8,x9,[x23,#32+32] // in2 + csel x16,x10,x16,ne + csel x17,x11,x17,ne + ldp x10,x11,[x23,#32+48] + stp x14,x15,[x21,#32] + stp x16,x17,[x21,#32+16] + ldp x14,x15,[x22,#64] // in1 + cmp x24,#0 // ~, remember? + ldp x16,x17,[x22,#64+16] + csel x8,x4,x8,ne + csel x9,x5,x9,ne + csel x10,x6,x10,ne + csel x11,x7,x11,ne + cmp x25,#0 // ~, remember? + csel x14,x8,x14,ne + csel x15,x9,x15,ne + csel x16,x10,x16,ne + csel x17,x11,x17,ne + stp x14,x15,[x21,#64] + stp x16,x17,[x21,#64+16] + + add sp,x29,#0 // destroy frame + ldp x19,x20,[x29,#16] + ldp x21,x22,[x29,#32] + ldp x23,x24,[x29,#48] + ldp x25,x26,[x29,#64] + ldp x29,x30,[sp],#80 +.long 0xd50323bf // autiasp + ret + +//////////////////////////////////////////////////////////////////////// +// void ecp_nistz256_ord_mul_mont(uint64_t res[4], uint64_t a[4], +// uint64_t b[4]); +.globl _ecp_nistz256_ord_mul_mont + +.align 4 +_ecp_nistz256_ord_mul_mont: + stp x29,x30,[sp,#-64]! + add x29,sp,#0 + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + stp x23,x24,[sp,#48] + + adr x23,Lord + ldr x3,[x2] // bp[0] + ldp x4,x5,[x1] + ldp x6,x7,[x1,#16] + + ldp x12,x13,[x23,#0] + ldp x21,x22,[x23,#16] + ldr x23,[x23,#32] + + mul x14,x4,x3 // a[0]*b[0] + umulh x8,x4,x3 + + mul x15,x5,x3 // a[1]*b[0] + umulh x9,x5,x3 + + mul x16,x6,x3 // a[2]*b[0] + umulh x10,x6,x3 + + mul x17,x7,x3 // a[3]*b[0] + umulh x19,x7,x3 + + mul x24,x14,x23 + + adds x15,x15,x8 // accumulate high parts of multiplication + adcs x16,x16,x9 + adcs x17,x17,x10 + adc x19,x19,xzr + mov x20,xzr + ldr x3,[x2,#8*1] // b[i] + + lsl x8,x24,#32 + subs x16,x16,x24 + lsr x9,x24,#32 + sbcs x17,x17,x8 + sbcs x19,x19,x9 + sbc x20,x20,xzr + + subs xzr,x14,#1 + umulh x9,x12,x24 + mul x10,x13,x24 + umulh x11,x13,x24 + + adcs x10,x10,x9 + mul x8,x4,x3 + adc x11,x11,xzr + mul x9,x5,x3 + + adds x14,x15,x10 + mul x10,x6,x3 + adcs x15,x16,x11 + mul x11,x7,x3 + adcs x16,x17,x24 + adcs x17,x19,x24 + adc x19,x20,xzr + + adds x14,x14,x8 // accumulate low parts + umulh x8,x4,x3 + adcs x15,x15,x9 + umulh x9,x5,x3 + adcs x16,x16,x10 + umulh x10,x6,x3 + adcs x17,x17,x11 + umulh x11,x7,x3 + adc x19,x19,xzr + mul x24,x14,x23 + adds x15,x15,x8 // accumulate high parts + adcs x16,x16,x9 + adcs x17,x17,x10 + adcs x19,x19,x11 + adc x20,xzr,xzr + ldr x3,[x2,#8*2] // b[i] + + lsl x8,x24,#32 + subs x16,x16,x24 + lsr x9,x24,#32 + sbcs x17,x17,x8 + sbcs x19,x19,x9 + sbc x20,x20,xzr + + subs xzr,x14,#1 + umulh x9,x12,x24 + mul x10,x13,x24 + umulh x11,x13,x24 + + adcs x10,x10,x9 + mul x8,x4,x3 + adc x11,x11,xzr + mul x9,x5,x3 + + adds x14,x15,x10 + mul x10,x6,x3 + adcs x15,x16,x11 + mul x11,x7,x3 + adcs x16,x17,x24 + adcs x17,x19,x24 + adc x19,x20,xzr + + adds x14,x14,x8 // accumulate low parts + umulh x8,x4,x3 + adcs x15,x15,x9 + umulh x9,x5,x3 + adcs x16,x16,x10 + umulh x10,x6,x3 + adcs x17,x17,x11 + umulh x11,x7,x3 + adc x19,x19,xzr + mul x24,x14,x23 + adds x15,x15,x8 // accumulate high parts + adcs x16,x16,x9 + adcs x17,x17,x10 + adcs x19,x19,x11 + adc x20,xzr,xzr + ldr x3,[x2,#8*3] // b[i] + + lsl x8,x24,#32 + subs x16,x16,x24 + lsr x9,x24,#32 + sbcs x17,x17,x8 + sbcs x19,x19,x9 + sbc x20,x20,xzr + + subs xzr,x14,#1 + umulh x9,x12,x24 + mul x10,x13,x24 + umulh x11,x13,x24 + + adcs x10,x10,x9 + mul x8,x4,x3 + adc x11,x11,xzr + mul x9,x5,x3 + + adds x14,x15,x10 + mul x10,x6,x3 + adcs x15,x16,x11 + mul x11,x7,x3 + adcs x16,x17,x24 + adcs x17,x19,x24 + adc x19,x20,xzr + + adds x14,x14,x8 // accumulate low parts + umulh x8,x4,x3 + adcs x15,x15,x9 + umulh x9,x5,x3 + adcs x16,x16,x10 + umulh x10,x6,x3 + adcs x17,x17,x11 + umulh x11,x7,x3 + adc x19,x19,xzr + mul x24,x14,x23 + adds x15,x15,x8 // accumulate high parts + adcs x16,x16,x9 + adcs x17,x17,x10 + adcs x19,x19,x11 + adc x20,xzr,xzr + lsl x8,x24,#32 // last reduction + subs x16,x16,x24 + lsr x9,x24,#32 + sbcs x17,x17,x8 + sbcs x19,x19,x9 + sbc x20,x20,xzr + + subs xzr,x14,#1 + umulh x9,x12,x24 + mul x10,x13,x24 + umulh x11,x13,x24 + + adcs x10,x10,x9 + adc x11,x11,xzr + + adds x14,x15,x10 + adcs x15,x16,x11 + adcs x16,x17,x24 + adcs x17,x19,x24 + adc x19,x20,xzr + + subs x8,x14,x12 // ret -= modulus + sbcs x9,x15,x13 + sbcs x10,x16,x21 + sbcs x11,x17,x22 + sbcs xzr,x19,xzr + + csel x14,x14,x8,lo // ret = borrow ? ret : ret-modulus + csel x15,x15,x9,lo + csel x16,x16,x10,lo + stp x14,x15,[x0] + csel x17,x17,x11,lo + stp x16,x17,[x0,#16] + + ldp x19,x20,[sp,#16] + ldp x21,x22,[sp,#32] + ldp x23,x24,[sp,#48] + ldr x29,[sp],#64 + ret + + +//////////////////////////////////////////////////////////////////////// +// void ecp_nistz256_ord_sqr_mont(uint64_t res[4], uint64_t a[4], +// int rep); +.globl _ecp_nistz256_ord_sqr_mont + +.align 4 +_ecp_nistz256_ord_sqr_mont: + stp x29,x30,[sp,#-64]! + add x29,sp,#0 + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + stp x23,x24,[sp,#48] + + adr x23,Lord + ldp x4,x5,[x1] + ldp x6,x7,[x1,#16] + + ldp x12,x13,[x23,#0] + ldp x21,x22,[x23,#16] + ldr x23,[x23,#32] + b Loop_ord_sqr + +.align 4 +Loop_ord_sqr: + sub x2,x2,#1 + //////////////////////////////////////////////////////////////// + // | | | | | |a1*a0| | + // | | | | |a2*a0| | | + // | |a3*a2|a3*a0| | | | + // | | | |a2*a1| | | | + // | | |a3*a1| | | | | + // *| | | | | | | | 2| + // +|a3*a3|a2*a2|a1*a1|a0*a0| + // |--+--+--+--+--+--+--+--| + // |A7|A6|A5|A4|A3|A2|A1|A0|, where Ax is , i.e. follow + // + // "can't overflow" below mark carrying into high part of + // multiplication result, which can't overflow, because it + // can never be all ones. + + mul x15,x5,x4 // a[1]*a[0] + umulh x9,x5,x4 + mul x16,x6,x4 // a[2]*a[0] + umulh x10,x6,x4 + mul x17,x7,x4 // a[3]*a[0] + umulh x19,x7,x4 + + adds x16,x16,x9 // accumulate high parts of multiplication + mul x8,x6,x5 // a[2]*a[1] + umulh x9,x6,x5 + adcs x17,x17,x10 + mul x10,x7,x5 // a[3]*a[1] + umulh x11,x7,x5 + adc x19,x19,xzr // can't overflow + + mul x20,x7,x6 // a[3]*a[2] + umulh x1,x7,x6 + + adds x9,x9,x10 // accumulate high parts of multiplication + mul x14,x4,x4 // a[0]*a[0] + adc x10,x11,xzr // can't overflow + + adds x17,x17,x8 // accumulate low parts of multiplication + umulh x4,x4,x4 + adcs x19,x19,x9 + mul x9,x5,x5 // a[1]*a[1] + adcs x20,x20,x10 + umulh x5,x5,x5 + adc x1,x1,xzr // can't overflow + + adds x15,x15,x15 // acc[1-6]*=2 + mul x10,x6,x6 // a[2]*a[2] + adcs x16,x16,x16 + umulh x6,x6,x6 + adcs x17,x17,x17 + mul x11,x7,x7 // a[3]*a[3] + adcs x19,x19,x19 + umulh x7,x7,x7 + adcs x20,x20,x20 + adcs x1,x1,x1 + adc x3,xzr,xzr + + adds x15,x15,x4 // +a[i]*a[i] + mul x24,x14,x23 + adcs x16,x16,x9 + adcs x17,x17,x5 + adcs x19,x19,x10 + adcs x20,x20,x6 + adcs x1,x1,x11 + adc x3,x3,x7 + subs xzr,x14,#1 + umulh x9,x12,x24 + mul x10,x13,x24 + umulh x11,x13,x24 + + adcs x10,x10,x9 + adc x11,x11,xzr + + adds x14,x15,x10 + adcs x15,x16,x11 + adcs x16,x17,x24 + adc x17,xzr,x24 // can't overflow + mul x11,x14,x23 + lsl x8,x24,#32 + subs x15,x15,x24 + lsr x9,x24,#32 + sbcs x16,x16,x8 + sbc x17,x17,x9 // can't borrow + subs xzr,x14,#1 + umulh x9,x12,x11 + mul x10,x13,x11 + umulh x24,x13,x11 + + adcs x10,x10,x9 + adc x24,x24,xzr + + adds x14,x15,x10 + adcs x15,x16,x24 + adcs x16,x17,x11 + adc x17,xzr,x11 // can't overflow + mul x24,x14,x23 + lsl x8,x11,#32 + subs x15,x15,x11 + lsr x9,x11,#32 + sbcs x16,x16,x8 + sbc x17,x17,x9 // can't borrow + subs xzr,x14,#1 + umulh x9,x12,x24 + mul x10,x13,x24 + umulh x11,x13,x24 + + adcs x10,x10,x9 + adc x11,x11,xzr + + adds x14,x15,x10 + adcs x15,x16,x11 + adcs x16,x17,x24 + adc x17,xzr,x24 // can't overflow + mul x11,x14,x23 + lsl x8,x24,#32 + subs x15,x15,x24 + lsr x9,x24,#32 + sbcs x16,x16,x8 + sbc x17,x17,x9 // can't borrow + subs xzr,x14,#1 + umulh x9,x12,x11 + mul x10,x13,x11 + umulh x24,x13,x11 + + adcs x10,x10,x9 + adc x24,x24,xzr + + adds x14,x15,x10 + adcs x15,x16,x24 + adcs x16,x17,x11 + adc x17,xzr,x11 // can't overflow + lsl x8,x11,#32 + subs x15,x15,x11 + lsr x9,x11,#32 + sbcs x16,x16,x8 + sbc x17,x17,x9 // can't borrow + adds x14,x14,x19 // accumulate upper half + adcs x15,x15,x20 + adcs x16,x16,x1 + adcs x17,x17,x3 + adc x19,xzr,xzr + + subs x8,x14,x12 // ret -= modulus + sbcs x9,x15,x13 + sbcs x10,x16,x21 + sbcs x11,x17,x22 + sbcs xzr,x19,xzr + + csel x4,x14,x8,lo // ret = borrow ? ret : ret-modulus + csel x5,x15,x9,lo + csel x6,x16,x10,lo + csel x7,x17,x11,lo + + cbnz x2,Loop_ord_sqr + + stp x4,x5,[x0] + stp x6,x7,[x0,#16] + + ldp x19,x20,[sp,#16] + ldp x21,x22,[sp,#32] + ldp x23,x24,[sp,#48] + ldr x29,[sp],#64 + ret + +// void ecp_nistz256_scatter_w5(void *x0,const P256_POINT *x1, +// int x2); +.globl _ecp_nistz256_scatter_w5 + +.align 4 +_ecp_nistz256_scatter_w5: + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + + add x0,x0,x2,lsl#2 + + ldp x4,x5,[x1] // X + ldp x6,x7,[x1,#16] + str w4,[x0,#64*0-4] + lsr x4,x4,#32 + str w5,[x0,#64*1-4] + lsr x5,x5,#32 + str w6,[x0,#64*2-4] + lsr x6,x6,#32 + str w7,[x0,#64*3-4] + lsr x7,x7,#32 + str w4,[x0,#64*4-4] + str w5,[x0,#64*5-4] + str w6,[x0,#64*6-4] + str w7,[x0,#64*7-4] + add x0,x0,#64*8 + + ldp x4,x5,[x1,#32] // Y + ldp x6,x7,[x1,#48] + str w4,[x0,#64*0-4] + lsr x4,x4,#32 + str w5,[x0,#64*1-4] + lsr x5,x5,#32 + str w6,[x0,#64*2-4] + lsr x6,x6,#32 + str w7,[x0,#64*3-4] + lsr x7,x7,#32 + str w4,[x0,#64*4-4] + str w5,[x0,#64*5-4] + str w6,[x0,#64*6-4] + str w7,[x0,#64*7-4] + add x0,x0,#64*8 + + ldp x4,x5,[x1,#64] // Z + ldp x6,x7,[x1,#80] + str w4,[x0,#64*0-4] + lsr x4,x4,#32 + str w5,[x0,#64*1-4] + lsr x5,x5,#32 + str w6,[x0,#64*2-4] + lsr x6,x6,#32 + str w7,[x0,#64*3-4] + lsr x7,x7,#32 + str w4,[x0,#64*4-4] + str w5,[x0,#64*5-4] + str w6,[x0,#64*6-4] + str w7,[x0,#64*7-4] + + ldr x29,[sp],#16 + ret + + +// void ecp_nistz256_gather_w5(P256_POINT *x0,const void *x1, +// int x2); +.globl _ecp_nistz256_gather_w5 + +.align 4 +_ecp_nistz256_gather_w5: + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + + cmp x2,xzr + csetm x3,ne + add x2,x2,x3 + add x1,x1,x2,lsl#2 + + ldr w4,[x1,#64*0] + ldr w5,[x1,#64*1] + ldr w6,[x1,#64*2] + ldr w7,[x1,#64*3] + ldr w8,[x1,#64*4] + ldr w9,[x1,#64*5] + ldr w10,[x1,#64*6] + ldr w11,[x1,#64*7] + add x1,x1,#64*8 + orr x4,x4,x8,lsl#32 + orr x5,x5,x9,lsl#32 + orr x6,x6,x10,lsl#32 + orr x7,x7,x11,lsl#32 + csel x4,x4,xzr,ne + csel x5,x5,xzr,ne + csel x6,x6,xzr,ne + csel x7,x7,xzr,ne + stp x4,x5,[x0] // X + stp x6,x7,[x0,#16] + + ldr w4,[x1,#64*0] + ldr w5,[x1,#64*1] + ldr w6,[x1,#64*2] + ldr w7,[x1,#64*3] + ldr w8,[x1,#64*4] + ldr w9,[x1,#64*5] + ldr w10,[x1,#64*6] + ldr w11,[x1,#64*7] + add x1,x1,#64*8 + orr x4,x4,x8,lsl#32 + orr x5,x5,x9,lsl#32 + orr x6,x6,x10,lsl#32 + orr x7,x7,x11,lsl#32 + csel x4,x4,xzr,ne + csel x5,x5,xzr,ne + csel x6,x6,xzr,ne + csel x7,x7,xzr,ne + stp x4,x5,[x0,#32] // Y + stp x6,x7,[x0,#48] + + ldr w4,[x1,#64*0] + ldr w5,[x1,#64*1] + ldr w6,[x1,#64*2] + ldr w7,[x1,#64*3] + ldr w8,[x1,#64*4] + ldr w9,[x1,#64*5] + ldr w10,[x1,#64*6] + ldr w11,[x1,#64*7] + orr x4,x4,x8,lsl#32 + orr x5,x5,x9,lsl#32 + orr x6,x6,x10,lsl#32 + orr x7,x7,x11,lsl#32 + csel x4,x4,xzr,ne + csel x5,x5,xzr,ne + csel x6,x6,xzr,ne + csel x7,x7,xzr,ne + stp x4,x5,[x0,#64] // Z + stp x6,x7,[x0,#80] + + ldr x29,[sp],#16 + ret + + +// void ecp_nistz256_scatter_w7(void *x0,const P256_POINT_AFFINE *x1, +// int x2); +.globl _ecp_nistz256_scatter_w7 + +.align 4 +_ecp_nistz256_scatter_w7: + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + + add x0,x0,x2 + mov x2,#64/8 +Loop_scatter_w7: + ldr x3,[x1],#8 + subs x2,x2,#1 + prfm pstl1strm,[x0,#4096+64*0] + prfm pstl1strm,[x0,#4096+64*1] + prfm pstl1strm,[x0,#4096+64*2] + prfm pstl1strm,[x0,#4096+64*3] + prfm pstl1strm,[x0,#4096+64*4] + prfm pstl1strm,[x0,#4096+64*5] + prfm pstl1strm,[x0,#4096+64*6] + prfm pstl1strm,[x0,#4096+64*7] + strb w3,[x0,#64*0] + lsr x3,x3,#8 + strb w3,[x0,#64*1] + lsr x3,x3,#8 + strb w3,[x0,#64*2] + lsr x3,x3,#8 + strb w3,[x0,#64*3] + lsr x3,x3,#8 + strb w3,[x0,#64*4] + lsr x3,x3,#8 + strb w3,[x0,#64*5] + lsr x3,x3,#8 + strb w3,[x0,#64*6] + lsr x3,x3,#8 + strb w3,[x0,#64*7] + add x0,x0,#64*8 + b.ne Loop_scatter_w7 + + ldr x29,[sp],#16 + ret + + +// void ecp_nistz256_gather_w7(P256_POINT_AFFINE *x0,const void *x1, +// int x2); +.globl _ecp_nistz256_gather_w7 + +.align 4 +_ecp_nistz256_gather_w7: + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + + cmp x2,xzr + csetm x3,ne + add x2,x2,x3 + add x1,x1,x2 + mov x2,#64/8 + nop +Loop_gather_w7: + ldrb w4,[x1,#64*0] + prfm pldl1strm,[x1,#4096+64*0] + subs x2,x2,#1 + ldrb w5,[x1,#64*1] + prfm pldl1strm,[x1,#4096+64*1] + ldrb w6,[x1,#64*2] + prfm pldl1strm,[x1,#4096+64*2] + ldrb w7,[x1,#64*3] + prfm pldl1strm,[x1,#4096+64*3] + ldrb w8,[x1,#64*4] + prfm pldl1strm,[x1,#4096+64*4] + ldrb w9,[x1,#64*5] + prfm pldl1strm,[x1,#4096+64*5] + ldrb w10,[x1,#64*6] + prfm pldl1strm,[x1,#4096+64*6] + ldrb w11,[x1,#64*7] + prfm pldl1strm,[x1,#4096+64*7] + add x1,x1,#64*8 + orr x4,x4,x5,lsl#8 + orr x6,x6,x7,lsl#8 + orr x8,x8,x9,lsl#8 + orr x4,x4,x6,lsl#16 + orr x10,x10,x11,lsl#8 + orr x4,x4,x8,lsl#32 + orr x4,x4,x10,lsl#48 + and x4,x4,x3 + str x4,[x0],#8 + b.ne Loop_gather_w7 + + ldr x29,[sp],#16 + ret + diff --git a/vere/ext/openssl/gen/macos-aarch64/crypto/modes/ghashv8-armx.S b/vere/ext/openssl/gen/macos-aarch64/crypto/modes/ghashv8-armx.S new file mode 100644 index 0000000..ccb4de5 --- /dev/null +++ b/vere/ext/openssl/gen/macos-aarch64/crypto/modes/ghashv8-armx.S @@ -0,0 +1,552 @@ +#include "arm_arch.h" + +#if __ARM_MAX_ARCH__>=7 +.text + +.globl _gcm_init_v8 + +.align 4 +_gcm_init_v8: + ld1 {v17.2d},[x1] //load input H + movi v19.16b,#0xe1 + shl v19.2d,v19.2d,#57 //0xc2.0 + ext v3.16b,v17.16b,v17.16b,#8 + ushr v18.2d,v19.2d,#63 + dup v17.4s,v17.s[1] + ext v16.16b,v18.16b,v19.16b,#8 //t0=0xc2....01 + ushr v18.2d,v3.2d,#63 + sshr v17.4s,v17.4s,#31 //broadcast carry bit + and v18.16b,v18.16b,v16.16b + shl v3.2d,v3.2d,#1 + ext v18.16b,v18.16b,v18.16b,#8 + and v16.16b,v16.16b,v17.16b + orr v3.16b,v3.16b,v18.16b //H<<<=1 + eor v20.16b,v3.16b,v16.16b //twisted H + st1 {v20.2d},[x0],#16 //store Htable[0] + + //calculate H^2 + ext v16.16b,v20.16b,v20.16b,#8 //Karatsuba pre-processing + pmull v0.1q,v20.1d,v20.1d + eor v16.16b,v16.16b,v20.16b + pmull2 v2.1q,v20.2d,v20.2d + pmull v1.1q,v16.1d,v16.1d + + ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing + eor v18.16b,v0.16b,v2.16b + eor v1.16b,v1.16b,v17.16b + eor v1.16b,v1.16b,v18.16b + pmull v18.1q,v0.1d,v19.1d //1st phase + + ins v2.d[0],v1.d[1] + ins v1.d[1],v0.d[0] + eor v0.16b,v1.16b,v18.16b + + ext v18.16b,v0.16b,v0.16b,#8 //2nd phase + pmull v0.1q,v0.1d,v19.1d + eor v18.16b,v18.16b,v2.16b + eor v22.16b,v0.16b,v18.16b + + ext v17.16b,v22.16b,v22.16b,#8 //Karatsuba pre-processing + eor v17.16b,v17.16b,v22.16b + ext v21.16b,v16.16b,v17.16b,#8 //pack Karatsuba pre-processed + st1 {v21.2d,v22.2d},[x0],#32 //store Htable[1..2] + //calculate H^3 and H^4 + pmull v0.1q,v20.1d, v22.1d + pmull v5.1q,v22.1d,v22.1d + pmull2 v2.1q,v20.2d, v22.2d + pmull2 v7.1q,v22.2d,v22.2d + pmull v1.1q,v16.1d,v17.1d + pmull v6.1q,v17.1d,v17.1d + + ext v16.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing + ext v17.16b,v5.16b,v7.16b,#8 + eor v18.16b,v0.16b,v2.16b + eor v1.16b,v1.16b,v16.16b + eor v4.16b,v5.16b,v7.16b + eor v6.16b,v6.16b,v17.16b + eor v1.16b,v1.16b,v18.16b + pmull v18.1q,v0.1d,v19.1d //1st phase + eor v6.16b,v6.16b,v4.16b + pmull v4.1q,v5.1d,v19.1d + + ins v2.d[0],v1.d[1] + ins v7.d[0],v6.d[1] + ins v1.d[1],v0.d[0] + ins v6.d[1],v5.d[0] + eor v0.16b,v1.16b,v18.16b + eor v5.16b,v6.16b,v4.16b + + ext v18.16b,v0.16b,v0.16b,#8 //2nd phase + ext v4.16b,v5.16b,v5.16b,#8 + pmull v0.1q,v0.1d,v19.1d + pmull v5.1q,v5.1d,v19.1d + eor v18.16b,v18.16b,v2.16b + eor v4.16b,v4.16b,v7.16b + eor v20.16b, v0.16b,v18.16b //H^3 + eor v22.16b,v5.16b,v4.16b //H^4 + + ext v16.16b,v20.16b, v20.16b,#8 //Karatsuba pre-processing + ext v17.16b,v22.16b,v22.16b,#8 + eor v16.16b,v16.16b,v20.16b + eor v17.16b,v17.16b,v22.16b + ext v21.16b,v16.16b,v17.16b,#8 //pack Karatsuba pre-processed + st1 {v20.2d,v21.2d,v22.2d},[x0] //store Htable[3..5] + ret + +.globl _gcm_gmult_v8 + +.align 4 +_gcm_gmult_v8: + ld1 {v17.2d},[x0] //load Xi + movi v19.16b,#0xe1 + ld1 {v20.2d,v21.2d},[x1] //load twisted H, ... + shl v19.2d,v19.2d,#57 +#ifndef __ARMEB__ + rev64 v17.16b,v17.16b +#endif + ext v3.16b,v17.16b,v17.16b,#8 + + pmull v0.1q,v20.1d,v3.1d //H.lo·Xi.lo + eor v17.16b,v17.16b,v3.16b //Karatsuba pre-processing + pmull2 v2.1q,v20.2d,v3.2d //H.hi·Xi.hi + pmull v1.1q,v21.1d,v17.1d //(H.lo+H.hi)·(Xi.lo+Xi.hi) + + ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing + eor v18.16b,v0.16b,v2.16b + eor v1.16b,v1.16b,v17.16b + eor v1.16b,v1.16b,v18.16b + pmull v18.1q,v0.1d,v19.1d //1st phase of reduction + + ins v2.d[0],v1.d[1] + ins v1.d[1],v0.d[0] + eor v0.16b,v1.16b,v18.16b + + ext v18.16b,v0.16b,v0.16b,#8 //2nd phase of reduction + pmull v0.1q,v0.1d,v19.1d + eor v18.16b,v18.16b,v2.16b + eor v0.16b,v0.16b,v18.16b + +#ifndef __ARMEB__ + rev64 v0.16b,v0.16b +#endif + ext v0.16b,v0.16b,v0.16b,#8 + st1 {v0.2d},[x0] //write out Xi + + ret + +.globl _gcm_ghash_v8 + +.align 4 +_gcm_ghash_v8: + cmp x3,#64 + b.hs Lgcm_ghash_v8_4x + ld1 {v0.2d},[x0] //load [rotated] Xi + //"[rotated]" means that + //loaded value would have + //to be rotated in order to + //make it appear as in + //algorithm specification + subs x3,x3,#32 //see if x3 is 32 or larger + mov x12,#16 //x12 is used as post- + //increment for input pointer; + //as loop is modulo-scheduled + //x12 is zeroed just in time + //to preclude overstepping + //inp[len], which means that + //last block[s] are actually + //loaded twice, but last + //copy is not processed + ld1 {v20.2d,v21.2d},[x1],#32 //load twisted H, ..., H^2 + movi v19.16b,#0xe1 + ld1 {v22.2d},[x1] + csel x12,xzr,x12,eq //is it time to zero x12? + ext v0.16b,v0.16b,v0.16b,#8 //rotate Xi + ld1 {v16.2d},[x2],#16 //load [rotated] I[0] + shl v19.2d,v19.2d,#57 //compose 0xc2.0 constant +#ifndef __ARMEB__ + rev64 v16.16b,v16.16b + rev64 v0.16b,v0.16b +#endif + ext v3.16b,v16.16b,v16.16b,#8 //rotate I[0] + b.lo Lodd_tail_v8 //x3 was less than 32 + ld1 {v17.2d},[x2],x12 //load [rotated] I[1] +#ifndef __ARMEB__ + rev64 v17.16b,v17.16b +#endif + ext v7.16b,v17.16b,v17.16b,#8 + eor v3.16b,v3.16b,v0.16b //I[i]^=Xi + pmull v4.1q,v20.1d,v7.1d //H·Ii+1 + eor v17.16b,v17.16b,v7.16b //Karatsuba pre-processing + pmull2 v6.1q,v20.2d,v7.2d + b Loop_mod2x_v8 + +.align 4 +Loop_mod2x_v8: + ext v18.16b,v3.16b,v3.16b,#8 + subs x3,x3,#32 //is there more data? + pmull v0.1q,v22.1d,v3.1d //H^2.lo·Xi.lo + csel x12,xzr,x12,lo //is it time to zero x12? + + pmull v5.1q,v21.1d,v17.1d + eor v18.16b,v18.16b,v3.16b //Karatsuba pre-processing + pmull2 v2.1q,v22.2d,v3.2d //H^2.hi·Xi.hi + eor v0.16b,v0.16b,v4.16b //accumulate + pmull2 v1.1q,v21.2d,v18.2d //(H^2.lo+H^2.hi)·(Xi.lo+Xi.hi) + ld1 {v16.2d},[x2],x12 //load [rotated] I[i+2] + + eor v2.16b,v2.16b,v6.16b + csel x12,xzr,x12,eq //is it time to zero x12? + eor v1.16b,v1.16b,v5.16b + + ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing + eor v18.16b,v0.16b,v2.16b + eor v1.16b,v1.16b,v17.16b + ld1 {v17.2d},[x2],x12 //load [rotated] I[i+3] +#ifndef __ARMEB__ + rev64 v16.16b,v16.16b +#endif + eor v1.16b,v1.16b,v18.16b + pmull v18.1q,v0.1d,v19.1d //1st phase of reduction + +#ifndef __ARMEB__ + rev64 v17.16b,v17.16b +#endif + ins v2.d[0],v1.d[1] + ins v1.d[1],v0.d[0] + ext v7.16b,v17.16b,v17.16b,#8 + ext v3.16b,v16.16b,v16.16b,#8 + eor v0.16b,v1.16b,v18.16b + pmull v4.1q,v20.1d,v7.1d //H·Ii+1 + eor v3.16b,v3.16b,v2.16b //accumulate v3.16b early + + ext v18.16b,v0.16b,v0.16b,#8 //2nd phase of reduction + pmull v0.1q,v0.1d,v19.1d + eor v3.16b,v3.16b,v18.16b + eor v17.16b,v17.16b,v7.16b //Karatsuba pre-processing + eor v3.16b,v3.16b,v0.16b + pmull2 v6.1q,v20.2d,v7.2d + b.hs Loop_mod2x_v8 //there was at least 32 more bytes + + eor v2.16b,v2.16b,v18.16b + ext v3.16b,v16.16b,v16.16b,#8 //re-construct v3.16b + adds x3,x3,#32 //re-construct x3 + eor v0.16b,v0.16b,v2.16b //re-construct v0.16b + b.eq Ldone_v8 //is x3 zero? +Lodd_tail_v8: + ext v18.16b,v0.16b,v0.16b,#8 + eor v3.16b,v3.16b,v0.16b //inp^=Xi + eor v17.16b,v16.16b,v18.16b //v17.16b is rotated inp^Xi + + pmull v0.1q,v20.1d,v3.1d //H.lo·Xi.lo + eor v17.16b,v17.16b,v3.16b //Karatsuba pre-processing + pmull2 v2.1q,v20.2d,v3.2d //H.hi·Xi.hi + pmull v1.1q,v21.1d,v17.1d //(H.lo+H.hi)·(Xi.lo+Xi.hi) + + ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing + eor v18.16b,v0.16b,v2.16b + eor v1.16b,v1.16b,v17.16b + eor v1.16b,v1.16b,v18.16b + pmull v18.1q,v0.1d,v19.1d //1st phase of reduction + + ins v2.d[0],v1.d[1] + ins v1.d[1],v0.d[0] + eor v0.16b,v1.16b,v18.16b + + ext v18.16b,v0.16b,v0.16b,#8 //2nd phase of reduction + pmull v0.1q,v0.1d,v19.1d + eor v18.16b,v18.16b,v2.16b + eor v0.16b,v0.16b,v18.16b + +Ldone_v8: +#ifndef __ARMEB__ + rev64 v0.16b,v0.16b +#endif + ext v0.16b,v0.16b,v0.16b,#8 + st1 {v0.2d},[x0] //write out Xi + + ret + + +.align 4 +gcm_ghash_v8_4x: +Lgcm_ghash_v8_4x: + ld1 {v0.2d},[x0] //load [rotated] Xi + ld1 {v20.2d,v21.2d,v22.2d},[x1],#48 //load twisted H, ..., H^2 + movi v19.16b,#0xe1 + ld1 {v26.2d,v27.2d,v28.2d},[x1] //load twisted H^3, ..., H^4 + shl v19.2d,v19.2d,#57 //compose 0xc2.0 constant + + ld1 {v4.2d,v5.2d,v6.2d,v7.2d},[x2],#64 +#ifndef __ARMEB__ + rev64 v0.16b,v0.16b + rev64 v5.16b,v5.16b + rev64 v6.16b,v6.16b + rev64 v7.16b,v7.16b + rev64 v4.16b,v4.16b +#endif + ext v25.16b,v7.16b,v7.16b,#8 + ext v24.16b,v6.16b,v6.16b,#8 + ext v23.16b,v5.16b,v5.16b,#8 + + pmull v29.1q,v20.1d,v25.1d //H·Ii+3 + eor v7.16b,v7.16b,v25.16b + pmull2 v31.1q,v20.2d,v25.2d + pmull v30.1q,v21.1d,v7.1d + + pmull v16.1q,v22.1d,v24.1d //H^2·Ii+2 + eor v6.16b,v6.16b,v24.16b + pmull2 v24.1q,v22.2d,v24.2d + pmull2 v6.1q,v21.2d,v6.2d + + eor v29.16b,v29.16b,v16.16b + eor v31.16b,v31.16b,v24.16b + eor v30.16b,v30.16b,v6.16b + + pmull v7.1q,v26.1d,v23.1d //H^3·Ii+1 + eor v5.16b,v5.16b,v23.16b + pmull2 v23.1q,v26.2d,v23.2d + pmull v5.1q,v27.1d,v5.1d + + eor v29.16b,v29.16b,v7.16b + eor v31.16b,v31.16b,v23.16b + eor v30.16b,v30.16b,v5.16b + + subs x3,x3,#128 + b.lo Ltail4x + + b Loop4x + +.align 4 +Loop4x: + eor v16.16b,v4.16b,v0.16b + ld1 {v4.2d,v5.2d,v6.2d,v7.2d},[x2],#64 + ext v3.16b,v16.16b,v16.16b,#8 +#ifndef __ARMEB__ + rev64 v5.16b,v5.16b + rev64 v6.16b,v6.16b + rev64 v7.16b,v7.16b + rev64 v4.16b,v4.16b +#endif + + pmull v0.1q,v28.1d,v3.1d //H^4·(Xi+Ii) + eor v16.16b,v16.16b,v3.16b + pmull2 v2.1q,v28.2d,v3.2d + ext v25.16b,v7.16b,v7.16b,#8 + pmull2 v1.1q,v27.2d,v16.2d + + eor v0.16b,v0.16b,v29.16b + eor v2.16b,v2.16b,v31.16b + ext v24.16b,v6.16b,v6.16b,#8 + eor v1.16b,v1.16b,v30.16b + ext v23.16b,v5.16b,v5.16b,#8 + + ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing + eor v18.16b,v0.16b,v2.16b + pmull v29.1q,v20.1d,v25.1d //H·Ii+3 + eor v7.16b,v7.16b,v25.16b + eor v1.16b,v1.16b,v17.16b + pmull2 v31.1q,v20.2d,v25.2d + eor v1.16b,v1.16b,v18.16b + pmull v30.1q,v21.1d,v7.1d + + pmull v18.1q,v0.1d,v19.1d //1st phase of reduction + ins v2.d[0],v1.d[1] + ins v1.d[1],v0.d[0] + pmull v16.1q,v22.1d,v24.1d //H^2·Ii+2 + eor v6.16b,v6.16b,v24.16b + pmull2 v24.1q,v22.2d,v24.2d + eor v0.16b,v1.16b,v18.16b + pmull2 v6.1q,v21.2d,v6.2d + + eor v29.16b,v29.16b,v16.16b + eor v31.16b,v31.16b,v24.16b + eor v30.16b,v30.16b,v6.16b + + ext v18.16b,v0.16b,v0.16b,#8 //2nd phase of reduction + pmull v0.1q,v0.1d,v19.1d + pmull v7.1q,v26.1d,v23.1d //H^3·Ii+1 + eor v5.16b,v5.16b,v23.16b + eor v18.16b,v18.16b,v2.16b + pmull2 v23.1q,v26.2d,v23.2d + pmull v5.1q,v27.1d,v5.1d + + eor v0.16b,v0.16b,v18.16b + eor v29.16b,v29.16b,v7.16b + eor v31.16b,v31.16b,v23.16b + ext v0.16b,v0.16b,v0.16b,#8 + eor v30.16b,v30.16b,v5.16b + + subs x3,x3,#64 + b.hs Loop4x + +Ltail4x: + eor v16.16b,v4.16b,v0.16b + ext v3.16b,v16.16b,v16.16b,#8 + + pmull v0.1q,v28.1d,v3.1d //H^4·(Xi+Ii) + eor v16.16b,v16.16b,v3.16b + pmull2 v2.1q,v28.2d,v3.2d + pmull2 v1.1q,v27.2d,v16.2d + + eor v0.16b,v0.16b,v29.16b + eor v2.16b,v2.16b,v31.16b + eor v1.16b,v1.16b,v30.16b + + adds x3,x3,#64 + b.eq Ldone4x + + cmp x3,#32 + b.lo Lone + b.eq Ltwo +Lthree: + ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing + eor v18.16b,v0.16b,v2.16b + eor v1.16b,v1.16b,v17.16b + ld1 {v4.2d,v5.2d,v6.2d},[x2] + eor v1.16b,v1.16b,v18.16b +#ifndef __ARMEB__ + rev64 v5.16b,v5.16b + rev64 v6.16b,v6.16b + rev64 v4.16b,v4.16b +#endif + + pmull v18.1q,v0.1d,v19.1d //1st phase of reduction + ins v2.d[0],v1.d[1] + ins v1.d[1],v0.d[0] + ext v24.16b,v6.16b,v6.16b,#8 + ext v23.16b,v5.16b,v5.16b,#8 + eor v0.16b,v1.16b,v18.16b + + pmull v29.1q,v20.1d,v24.1d //H·Ii+2 + eor v6.16b,v6.16b,v24.16b + + ext v18.16b,v0.16b,v0.16b,#8 //2nd phase of reduction + pmull v0.1q,v0.1d,v19.1d + eor v18.16b,v18.16b,v2.16b + pmull2 v31.1q,v20.2d,v24.2d + pmull v30.1q,v21.1d,v6.1d + eor v0.16b,v0.16b,v18.16b + pmull v7.1q,v22.1d,v23.1d //H^2·Ii+1 + eor v5.16b,v5.16b,v23.16b + ext v0.16b,v0.16b,v0.16b,#8 + + pmull2 v23.1q,v22.2d,v23.2d + eor v16.16b,v4.16b,v0.16b + pmull2 v5.1q,v21.2d,v5.2d + ext v3.16b,v16.16b,v16.16b,#8 + + eor v29.16b,v29.16b,v7.16b + eor v31.16b,v31.16b,v23.16b + eor v30.16b,v30.16b,v5.16b + + pmull v0.1q,v26.1d,v3.1d //H^3·(Xi+Ii) + eor v16.16b,v16.16b,v3.16b + pmull2 v2.1q,v26.2d,v3.2d + pmull v1.1q,v27.1d,v16.1d + + eor v0.16b,v0.16b,v29.16b + eor v2.16b,v2.16b,v31.16b + eor v1.16b,v1.16b,v30.16b + b Ldone4x + +.align 4 +Ltwo: + ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing + eor v18.16b,v0.16b,v2.16b + eor v1.16b,v1.16b,v17.16b + ld1 {v4.2d,v5.2d},[x2] + eor v1.16b,v1.16b,v18.16b +#ifndef __ARMEB__ + rev64 v5.16b,v5.16b + rev64 v4.16b,v4.16b +#endif + + pmull v18.1q,v0.1d,v19.1d //1st phase of reduction + ins v2.d[0],v1.d[1] + ins v1.d[1],v0.d[0] + ext v23.16b,v5.16b,v5.16b,#8 + eor v0.16b,v1.16b,v18.16b + + ext v18.16b,v0.16b,v0.16b,#8 //2nd phase of reduction + pmull v0.1q,v0.1d,v19.1d + eor v18.16b,v18.16b,v2.16b + eor v0.16b,v0.16b,v18.16b + ext v0.16b,v0.16b,v0.16b,#8 + + pmull v29.1q,v20.1d,v23.1d //H·Ii+1 + eor v5.16b,v5.16b,v23.16b + + eor v16.16b,v4.16b,v0.16b + ext v3.16b,v16.16b,v16.16b,#8 + + pmull2 v31.1q,v20.2d,v23.2d + pmull v30.1q,v21.1d,v5.1d + + pmull v0.1q,v22.1d,v3.1d //H^2·(Xi+Ii) + eor v16.16b,v16.16b,v3.16b + pmull2 v2.1q,v22.2d,v3.2d + pmull2 v1.1q,v21.2d,v16.2d + + eor v0.16b,v0.16b,v29.16b + eor v2.16b,v2.16b,v31.16b + eor v1.16b,v1.16b,v30.16b + b Ldone4x + +.align 4 +Lone: + ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing + eor v18.16b,v0.16b,v2.16b + eor v1.16b,v1.16b,v17.16b + ld1 {v4.2d},[x2] + eor v1.16b,v1.16b,v18.16b +#ifndef __ARMEB__ + rev64 v4.16b,v4.16b +#endif + + pmull v18.1q,v0.1d,v19.1d //1st phase of reduction + ins v2.d[0],v1.d[1] + ins v1.d[1],v0.d[0] + eor v0.16b,v1.16b,v18.16b + + ext v18.16b,v0.16b,v0.16b,#8 //2nd phase of reduction + pmull v0.1q,v0.1d,v19.1d + eor v18.16b,v18.16b,v2.16b + eor v0.16b,v0.16b,v18.16b + ext v0.16b,v0.16b,v0.16b,#8 + + eor v16.16b,v4.16b,v0.16b + ext v3.16b,v16.16b,v16.16b,#8 + + pmull v0.1q,v20.1d,v3.1d + eor v16.16b,v16.16b,v3.16b + pmull2 v2.1q,v20.2d,v3.2d + pmull v1.1q,v21.1d,v16.1d + +Ldone4x: + ext v17.16b,v0.16b,v2.16b,#8 //Karatsuba post-processing + eor v18.16b,v0.16b,v2.16b + eor v1.16b,v1.16b,v17.16b + eor v1.16b,v1.16b,v18.16b + + pmull v18.1q,v0.1d,v19.1d //1st phase of reduction + ins v2.d[0],v1.d[1] + ins v1.d[1],v0.d[0] + eor v0.16b,v1.16b,v18.16b + + ext v18.16b,v0.16b,v0.16b,#8 //2nd phase of reduction + pmull v0.1q,v0.1d,v19.1d + eor v18.16b,v18.16b,v2.16b + eor v0.16b,v0.16b,v18.16b + ext v0.16b,v0.16b,v0.16b,#8 + +#ifndef __ARMEB__ + rev64 v0.16b,v0.16b +#endif + st1 {v0.2d},[x0] //write out Xi + + ret + +.byte 71,72,65,83,72,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 2 +.align 2 +#endif diff --git a/vere/ext/openssl/gen/macos-aarch64/crypto/poly1305/poly1305-armv8.S b/vere/ext/openssl/gen/macos-aarch64/crypto/poly1305/poly1305-armv8.S new file mode 100644 index 0000000..32e4686 --- /dev/null +++ b/vere/ext/openssl/gen/macos-aarch64/crypto/poly1305/poly1305-armv8.S @@ -0,0 +1,870 @@ +#include "arm_arch.h" + +.text + +// forward "declarations" are required for Apple + +.private_extern _OPENSSL_armcap_P +.globl _poly1305_init +.private_extern _poly1305_init +.globl _poly1305_blocks +.private_extern _poly1305_blocks +.globl _poly1305_emit +.private_extern _poly1305_emit + + +.align 5 +_poly1305_init: + cmp x1,xzr + stp xzr,xzr,[x0] // zero hash value + stp xzr,xzr,[x0,#16] // [along with is_base2_26] + + csel x0,xzr,x0,eq + b.eq Lno_key + +#ifdef __ILP32__ + ldrsw x11,LOPENSSL_armcap_P +#else + ldr x11,LOPENSSL_armcap_P +#endif + adr x10,LOPENSSL_armcap_P + + ldp x7,x8,[x1] // load key + mov x9,#0xfffffffc0fffffff + movk x9,#0x0fff,lsl#48 + ldr w17,[x10,x11] +#ifdef __ARMEB__ + rev x7,x7 // flip bytes + rev x8,x8 +#endif + and x7,x7,x9 // &=0ffffffc0fffffff + and x9,x9,#-4 + and x8,x8,x9 // &=0ffffffc0ffffffc + stp x7,x8,[x0,#32] // save key value + + tst w17,#ARMV7_NEON + + adr x12,_poly1305_blocks + adr x7,poly1305_blocks_neon + adr x13,_poly1305_emit + adr x8,poly1305_emit_neon + + csel x12,x12,x7,eq + csel x13,x13,x8,eq + +#ifdef __ILP32__ + stp w12,w13,[x2] +#else + stp x12,x13,[x2] +#endif + + mov x0,#1 +Lno_key: + ret + + + +.align 5 +_poly1305_blocks: + ands x2,x2,#-16 + b.eq Lno_data + + ldp x4,x5,[x0] // load hash value + ldp x7,x8,[x0,#32] // load key value + ldr x6,[x0,#16] + add x9,x8,x8,lsr#2 // s1 = r1 + (r1 >> 2) + b Loop + +.align 5 +Loop: + ldp x10,x11,[x1],#16 // load input + sub x2,x2,#16 +#ifdef __ARMEB__ + rev x10,x10 + rev x11,x11 +#endif + adds x4,x4,x10 // accumulate input + adcs x5,x5,x11 + + mul x12,x4,x7 // h0*r0 + adc x6,x6,x3 + umulh x13,x4,x7 + + mul x10,x5,x9 // h1*5*r1 + umulh x11,x5,x9 + + adds x12,x12,x10 + mul x10,x4,x8 // h0*r1 + adc x13,x13,x11 + umulh x14,x4,x8 + + adds x13,x13,x10 + mul x10,x5,x7 // h1*r0 + adc x14,x14,xzr + umulh x11,x5,x7 + + adds x13,x13,x10 + mul x10,x6,x9 // h2*5*r1 + adc x14,x14,x11 + mul x11,x6,x7 // h2*r0 + + adds x13,x13,x10 + adc x14,x14,x11 + + and x10,x14,#-4 // final reduction + and x6,x14,#3 + add x10,x10,x14,lsr#2 + adds x4,x12,x10 + adcs x5,x13,xzr + adc x6,x6,xzr + + cbnz x2,Loop + + stp x4,x5,[x0] // store hash value + str x6,[x0,#16] + +Lno_data: + ret + + + +.align 5 +_poly1305_emit: + ldp x4,x5,[x0] // load hash base 2^64 + ldr x6,[x0,#16] + ldp x10,x11,[x2] // load nonce + + adds x12,x4,#5 // compare to modulus + adcs x13,x5,xzr + adc x14,x6,xzr + + tst x14,#-4 // see if it's carried/borrowed + + csel x4,x4,x12,eq + csel x5,x5,x13,eq + +#ifdef __ARMEB__ + ror x10,x10,#32 // flip nonce words + ror x11,x11,#32 +#endif + adds x4,x4,x10 // accumulate nonce + adc x5,x5,x11 +#ifdef __ARMEB__ + rev x4,x4 // flip output bytes + rev x5,x5 +#endif + stp x4,x5,[x1] // write result + + ret + + +.align 5 +poly1305_mult: + mul x12,x4,x7 // h0*r0 + umulh x13,x4,x7 + + mul x10,x5,x9 // h1*5*r1 + umulh x11,x5,x9 + + adds x12,x12,x10 + mul x10,x4,x8 // h0*r1 + adc x13,x13,x11 + umulh x14,x4,x8 + + adds x13,x13,x10 + mul x10,x5,x7 // h1*r0 + adc x14,x14,xzr + umulh x11,x5,x7 + + adds x13,x13,x10 + mul x10,x6,x9 // h2*5*r1 + adc x14,x14,x11 + mul x11,x6,x7 // h2*r0 + + adds x13,x13,x10 + adc x14,x14,x11 + + and x10,x14,#-4 // final reduction + and x6,x14,#3 + add x10,x10,x14,lsr#2 + adds x4,x12,x10 + adcs x5,x13,xzr + adc x6,x6,xzr + + ret + + + +.align 5 +poly1305_splat: + and x12,x4,#0x03ffffff // base 2^64 -> base 2^26 + ubfx x13,x4,#26,#26 + extr x14,x5,x4,#52 + and x14,x14,#0x03ffffff + ubfx x15,x5,#14,#26 + extr x16,x6,x5,#40 + + str w12,[x0,#16*0] // r0 + add w12,w13,w13,lsl#2 // r1*5 + str w13,[x0,#16*1] // r1 + add w13,w14,w14,lsl#2 // r2*5 + str w12,[x0,#16*2] // s1 + str w14,[x0,#16*3] // r2 + add w14,w15,w15,lsl#2 // r3*5 + str w13,[x0,#16*4] // s2 + str w15,[x0,#16*5] // r3 + add w15,w16,w16,lsl#2 // r4*5 + str w14,[x0,#16*6] // s3 + str w16,[x0,#16*7] // r4 + str w15,[x0,#16*8] // s4 + + ret + + + +.align 5 +poly1305_blocks_neon: + ldr x17,[x0,#24] + cmp x2,#128 + b.hs Lblocks_neon + cbz x17,_poly1305_blocks + +Lblocks_neon: +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-80]! + add x29,sp,#0 + + ands x2,x2,#-16 + b.eq Lno_data_neon + + cbz x17,Lbase2_64_neon + + ldp w10,w11,[x0] // load hash value base 2^26 + ldp w12,w13,[x0,#8] + ldr w14,[x0,#16] + + tst x2,#31 + b.eq Leven_neon + + ldp x7,x8,[x0,#32] // load key value + + add x4,x10,x11,lsl#26 // base 2^26 -> base 2^64 + lsr x5,x12,#12 + adds x4,x4,x12,lsl#52 + add x5,x5,x13,lsl#14 + adc x5,x5,xzr + lsr x6,x14,#24 + adds x5,x5,x14,lsl#40 + adc x14,x6,xzr // can be partially reduced... + + ldp x12,x13,[x1],#16 // load input + sub x2,x2,#16 + add x9,x8,x8,lsr#2 // s1 = r1 + (r1 >> 2) + + and x10,x14,#-4 // ... so reduce + and x6,x14,#3 + add x10,x10,x14,lsr#2 + adds x4,x4,x10 + adcs x5,x5,xzr + adc x6,x6,xzr + +#ifdef __ARMEB__ + rev x12,x12 + rev x13,x13 +#endif + adds x4,x4,x12 // accumulate input + adcs x5,x5,x13 + adc x6,x6,x3 + + bl poly1305_mult + ldr x30,[sp,#8] + + cbz x3,Lstore_base2_64_neon + + and x10,x4,#0x03ffffff // base 2^64 -> base 2^26 + ubfx x11,x4,#26,#26 + extr x12,x5,x4,#52 + and x12,x12,#0x03ffffff + ubfx x13,x5,#14,#26 + extr x14,x6,x5,#40 + + cbnz x2,Leven_neon + + stp w10,w11,[x0] // store hash value base 2^26 + stp w12,w13,[x0,#8] + str w14,[x0,#16] + b Lno_data_neon + +.align 4 +Lstore_base2_64_neon: + stp x4,x5,[x0] // store hash value base 2^64 + stp x6,xzr,[x0,#16] // note that is_base2_26 is zeroed + b Lno_data_neon + +.align 4 +Lbase2_64_neon: + ldp x7,x8,[x0,#32] // load key value + + ldp x4,x5,[x0] // load hash value base 2^64 + ldr x6,[x0,#16] + + tst x2,#31 + b.eq Linit_neon + + ldp x12,x13,[x1],#16 // load input + sub x2,x2,#16 + add x9,x8,x8,lsr#2 // s1 = r1 + (r1 >> 2) +#ifdef __ARMEB__ + rev x12,x12 + rev x13,x13 +#endif + adds x4,x4,x12 // accumulate input + adcs x5,x5,x13 + adc x6,x6,x3 + + bl poly1305_mult + +Linit_neon: + and x10,x4,#0x03ffffff // base 2^64 -> base 2^26 + ubfx x11,x4,#26,#26 + extr x12,x5,x4,#52 + and x12,x12,#0x03ffffff + ubfx x13,x5,#14,#26 + extr x14,x6,x5,#40 + + stp d8,d9,[sp,#16] // meet ABI requirements + stp d10,d11,[sp,#32] + stp d12,d13,[sp,#48] + stp d14,d15,[sp,#64] + + fmov d24,x10 + fmov d25,x11 + fmov d26,x12 + fmov d27,x13 + fmov d28,x14 + + ////////////////////////////////// initialize r^n table + mov x4,x7 // r^1 + add x9,x8,x8,lsr#2 // s1 = r1 + (r1 >> 2) + mov x5,x8 + mov x6,xzr + add x0,x0,#48+12 + bl poly1305_splat + + bl poly1305_mult // r^2 + sub x0,x0,#4 + bl poly1305_splat + + bl poly1305_mult // r^3 + sub x0,x0,#4 + bl poly1305_splat + + bl poly1305_mult // r^4 + sub x0,x0,#4 + bl poly1305_splat + ldr x30,[sp,#8] + + add x16,x1,#32 + adr x17,Lzeros + subs x2,x2,#64 + csel x16,x17,x16,lo + + mov x4,#1 + str x4,[x0,#-24] // set is_base2_26 + sub x0,x0,#48 // restore original x0 + b Ldo_neon + +.align 4 +Leven_neon: + add x16,x1,#32 + adr x17,Lzeros + subs x2,x2,#64 + csel x16,x17,x16,lo + + stp d8,d9,[sp,#16] // meet ABI requirements + stp d10,d11,[sp,#32] + stp d12,d13,[sp,#48] + stp d14,d15,[sp,#64] + + fmov d24,x10 + fmov d25,x11 + fmov d26,x12 + fmov d27,x13 + fmov d28,x14 + +Ldo_neon: + ldp x8,x12,[x16],#16 // inp[2:3] (or zero) + ldp x9,x13,[x16],#48 + + lsl x3,x3,#24 + add x15,x0,#48 + +#ifdef __ARMEB__ + rev x8,x8 + rev x12,x12 + rev x9,x9 + rev x13,x13 +#endif + and x4,x8,#0x03ffffff // base 2^64 -> base 2^26 + and x5,x9,#0x03ffffff + ubfx x6,x8,#26,#26 + ubfx x7,x9,#26,#26 + add x4,x4,x5,lsl#32 // bfi x4,x5,#32,#32 + extr x8,x12,x8,#52 + extr x9,x13,x9,#52 + add x6,x6,x7,lsl#32 // bfi x6,x7,#32,#32 + fmov d14,x4 + and x8,x8,#0x03ffffff + and x9,x9,#0x03ffffff + ubfx x10,x12,#14,#26 + ubfx x11,x13,#14,#26 + add x12,x3,x12,lsr#40 + add x13,x3,x13,lsr#40 + add x8,x8,x9,lsl#32 // bfi x8,x9,#32,#32 + fmov d15,x6 + add x10,x10,x11,lsl#32 // bfi x10,x11,#32,#32 + add x12,x12,x13,lsl#32 // bfi x12,x13,#32,#32 + fmov d16,x8 + fmov d17,x10 + fmov d18,x12 + + ldp x8,x12,[x1],#16 // inp[0:1] + ldp x9,x13,[x1],#48 + + ld1 {v0.4s,v1.4s,v2.4s,v3.4s},[x15],#64 + ld1 {v4.4s,v5.4s,v6.4s,v7.4s},[x15],#64 + ld1 {v8.4s},[x15] + +#ifdef __ARMEB__ + rev x8,x8 + rev x12,x12 + rev x9,x9 + rev x13,x13 +#endif + and x4,x8,#0x03ffffff // base 2^64 -> base 2^26 + and x5,x9,#0x03ffffff + ubfx x6,x8,#26,#26 + ubfx x7,x9,#26,#26 + add x4,x4,x5,lsl#32 // bfi x4,x5,#32,#32 + extr x8,x12,x8,#52 + extr x9,x13,x9,#52 + add x6,x6,x7,lsl#32 // bfi x6,x7,#32,#32 + fmov d9,x4 + and x8,x8,#0x03ffffff + and x9,x9,#0x03ffffff + ubfx x10,x12,#14,#26 + ubfx x11,x13,#14,#26 + add x12,x3,x12,lsr#40 + add x13,x3,x13,lsr#40 + add x8,x8,x9,lsl#32 // bfi x8,x9,#32,#32 + fmov d10,x6 + add x10,x10,x11,lsl#32 // bfi x10,x11,#32,#32 + add x12,x12,x13,lsl#32 // bfi x12,x13,#32,#32 + movi v31.2d,#-1 + fmov d11,x8 + fmov d12,x10 + fmov d13,x12 + ushr v31.2d,v31.2d,#38 + + b.ls Lskip_loop + +.align 4 +Loop_neon: + //////////////////////////////////////////////////////////////// + // ((inp[0]*r^4+inp[2]*r^2+inp[4])*r^4+inp[6]*r^2 + // ((inp[1]*r^4+inp[3]*r^2+inp[5])*r^3+inp[7]*r + // ___________________/ + // ((inp[0]*r^4+inp[2]*r^2+inp[4])*r^4+inp[6]*r^2+inp[8])*r^2 + // ((inp[1]*r^4+inp[3]*r^2+inp[5])*r^4+inp[7]*r^2+inp[9])*r + // ___________________/ ____________________/ + // + // Note that we start with inp[2:3]*r^2. This is because it + // doesn't depend on reduction in previous iteration. + //////////////////////////////////////////////////////////////// + // d4 = h0*r4 + h1*r3 + h2*r2 + h3*r1 + h4*r0 + // d3 = h0*r3 + h1*r2 + h2*r1 + h3*r0 + h4*5*r4 + // d2 = h0*r2 + h1*r1 + h2*r0 + h3*5*r4 + h4*5*r3 + // d1 = h0*r1 + h1*r0 + h2*5*r4 + h3*5*r3 + h4*5*r2 + // d0 = h0*r0 + h1*5*r4 + h2*5*r3 + h3*5*r2 + h4*5*r1 + + subs x2,x2,#64 + umull v23.2d,v14.2s,v7.s[2] + csel x16,x17,x16,lo + umull v22.2d,v14.2s,v5.s[2] + umull v21.2d,v14.2s,v3.s[2] + ldp x8,x12,[x16],#16 // inp[2:3] (or zero) + umull v20.2d,v14.2s,v1.s[2] + ldp x9,x13,[x16],#48 + umull v19.2d,v14.2s,v0.s[2] +#ifdef __ARMEB__ + rev x8,x8 + rev x12,x12 + rev x9,x9 + rev x13,x13 +#endif + + umlal v23.2d,v15.2s,v5.s[2] + and x4,x8,#0x03ffffff // base 2^64 -> base 2^26 + umlal v22.2d,v15.2s,v3.s[2] + and x5,x9,#0x03ffffff + umlal v21.2d,v15.2s,v1.s[2] + ubfx x6,x8,#26,#26 + umlal v20.2d,v15.2s,v0.s[2] + ubfx x7,x9,#26,#26 + umlal v19.2d,v15.2s,v8.s[2] + add x4,x4,x5,lsl#32 // bfi x4,x5,#32,#32 + + umlal v23.2d,v16.2s,v3.s[2] + extr x8,x12,x8,#52 + umlal v22.2d,v16.2s,v1.s[2] + extr x9,x13,x9,#52 + umlal v21.2d,v16.2s,v0.s[2] + add x6,x6,x7,lsl#32 // bfi x6,x7,#32,#32 + umlal v20.2d,v16.2s,v8.s[2] + fmov d14,x4 + umlal v19.2d,v16.2s,v6.s[2] + and x8,x8,#0x03ffffff + + umlal v23.2d,v17.2s,v1.s[2] + and x9,x9,#0x03ffffff + umlal v22.2d,v17.2s,v0.s[2] + ubfx x10,x12,#14,#26 + umlal v21.2d,v17.2s,v8.s[2] + ubfx x11,x13,#14,#26 + umlal v20.2d,v17.2s,v6.s[2] + add x8,x8,x9,lsl#32 // bfi x8,x9,#32,#32 + umlal v19.2d,v17.2s,v4.s[2] + fmov d15,x6 + + add v11.2s,v11.2s,v26.2s + add x12,x3,x12,lsr#40 + umlal v23.2d,v18.2s,v0.s[2] + add x13,x3,x13,lsr#40 + umlal v22.2d,v18.2s,v8.s[2] + add x10,x10,x11,lsl#32 // bfi x10,x11,#32,#32 + umlal v21.2d,v18.2s,v6.s[2] + add x12,x12,x13,lsl#32 // bfi x12,x13,#32,#32 + umlal v20.2d,v18.2s,v4.s[2] + fmov d16,x8 + umlal v19.2d,v18.2s,v2.s[2] + fmov d17,x10 + + //////////////////////////////////////////////////////////////// + // (hash+inp[0:1])*r^4 and accumulate + + add v9.2s,v9.2s,v24.2s + fmov d18,x12 + umlal v22.2d,v11.2s,v1.s[0] + ldp x8,x12,[x1],#16 // inp[0:1] + umlal v19.2d,v11.2s,v6.s[0] + ldp x9,x13,[x1],#48 + umlal v23.2d,v11.2s,v3.s[0] + umlal v20.2d,v11.2s,v8.s[0] + umlal v21.2d,v11.2s,v0.s[0] +#ifdef __ARMEB__ + rev x8,x8 + rev x12,x12 + rev x9,x9 + rev x13,x13 +#endif + + add v10.2s,v10.2s,v25.2s + umlal v22.2d,v9.2s,v5.s[0] + umlal v23.2d,v9.2s,v7.s[0] + and x4,x8,#0x03ffffff // base 2^64 -> base 2^26 + umlal v21.2d,v9.2s,v3.s[0] + and x5,x9,#0x03ffffff + umlal v19.2d,v9.2s,v0.s[0] + ubfx x6,x8,#26,#26 + umlal v20.2d,v9.2s,v1.s[0] + ubfx x7,x9,#26,#26 + + add v12.2s,v12.2s,v27.2s + add x4,x4,x5,lsl#32 // bfi x4,x5,#32,#32 + umlal v22.2d,v10.2s,v3.s[0] + extr x8,x12,x8,#52 + umlal v23.2d,v10.2s,v5.s[0] + extr x9,x13,x9,#52 + umlal v19.2d,v10.2s,v8.s[0] + add x6,x6,x7,lsl#32 // bfi x6,x7,#32,#32 + umlal v21.2d,v10.2s,v1.s[0] + fmov d9,x4 + umlal v20.2d,v10.2s,v0.s[0] + and x8,x8,#0x03ffffff + + add v13.2s,v13.2s,v28.2s + and x9,x9,#0x03ffffff + umlal v22.2d,v12.2s,v0.s[0] + ubfx x10,x12,#14,#26 + umlal v19.2d,v12.2s,v4.s[0] + ubfx x11,x13,#14,#26 + umlal v23.2d,v12.2s,v1.s[0] + add x8,x8,x9,lsl#32 // bfi x8,x9,#32,#32 + umlal v20.2d,v12.2s,v6.s[0] + fmov d10,x6 + umlal v21.2d,v12.2s,v8.s[0] + add x12,x3,x12,lsr#40 + + umlal v22.2d,v13.2s,v8.s[0] + add x13,x3,x13,lsr#40 + umlal v19.2d,v13.2s,v2.s[0] + add x10,x10,x11,lsl#32 // bfi x10,x11,#32,#32 + umlal v23.2d,v13.2s,v0.s[0] + add x12,x12,x13,lsl#32 // bfi x12,x13,#32,#32 + umlal v20.2d,v13.2s,v4.s[0] + fmov d11,x8 + umlal v21.2d,v13.2s,v6.s[0] + fmov d12,x10 + fmov d13,x12 + + ///////////////////////////////////////////////////////////////// + // lazy reduction as discussed in "NEON crypto" by D.J. Bernstein + // and P. Schwabe + // + // [see discussion in poly1305-armv4 module] + + ushr v29.2d,v22.2d,#26 + xtn v27.2s,v22.2d + ushr v30.2d,v19.2d,#26 + and v19.16b,v19.16b,v31.16b + add v23.2d,v23.2d,v29.2d // h3 -> h4 + bic v27.2s,#0xfc,lsl#24 // &=0x03ffffff + add v20.2d,v20.2d,v30.2d // h0 -> h1 + + ushr v29.2d,v23.2d,#26 + xtn v28.2s,v23.2d + ushr v30.2d,v20.2d,#26 + xtn v25.2s,v20.2d + bic v28.2s,#0xfc,lsl#24 + add v21.2d,v21.2d,v30.2d // h1 -> h2 + + add v19.2d,v19.2d,v29.2d + shl v29.2d,v29.2d,#2 + shrn v30.2s,v21.2d,#26 + xtn v26.2s,v21.2d + add v19.2d,v19.2d,v29.2d // h4 -> h0 + bic v25.2s,#0xfc,lsl#24 + add v27.2s,v27.2s,v30.2s // h2 -> h3 + bic v26.2s,#0xfc,lsl#24 + + shrn v29.2s,v19.2d,#26 + xtn v24.2s,v19.2d + ushr v30.2s,v27.2s,#26 + bic v27.2s,#0xfc,lsl#24 + bic v24.2s,#0xfc,lsl#24 + add v25.2s,v25.2s,v29.2s // h0 -> h1 + add v28.2s,v28.2s,v30.2s // h3 -> h4 + + b.hi Loop_neon + +Lskip_loop: + dup v16.2d,v16.d[0] + add v11.2s,v11.2s,v26.2s + + //////////////////////////////////////////////////////////////// + // multiply (inp[0:1]+hash) or inp[2:3] by r^2:r^1 + + adds x2,x2,#32 + b.ne Long_tail + + dup v16.2d,v11.d[0] + add v14.2s,v9.2s,v24.2s + add v17.2s,v12.2s,v27.2s + add v15.2s,v10.2s,v25.2s + add v18.2s,v13.2s,v28.2s + +Long_tail: + dup v14.2d,v14.d[0] + umull2 v19.2d,v16.4s,v6.4s + umull2 v22.2d,v16.4s,v1.4s + umull2 v23.2d,v16.4s,v3.4s + umull2 v21.2d,v16.4s,v0.4s + umull2 v20.2d,v16.4s,v8.4s + + dup v15.2d,v15.d[0] + umlal2 v19.2d,v14.4s,v0.4s + umlal2 v21.2d,v14.4s,v3.4s + umlal2 v22.2d,v14.4s,v5.4s + umlal2 v23.2d,v14.4s,v7.4s + umlal2 v20.2d,v14.4s,v1.4s + + dup v17.2d,v17.d[0] + umlal2 v19.2d,v15.4s,v8.4s + umlal2 v22.2d,v15.4s,v3.4s + umlal2 v21.2d,v15.4s,v1.4s + umlal2 v23.2d,v15.4s,v5.4s + umlal2 v20.2d,v15.4s,v0.4s + + dup v18.2d,v18.d[0] + umlal2 v22.2d,v17.4s,v0.4s + umlal2 v23.2d,v17.4s,v1.4s + umlal2 v19.2d,v17.4s,v4.4s + umlal2 v20.2d,v17.4s,v6.4s + umlal2 v21.2d,v17.4s,v8.4s + + umlal2 v22.2d,v18.4s,v8.4s + umlal2 v19.2d,v18.4s,v2.4s + umlal2 v23.2d,v18.4s,v0.4s + umlal2 v20.2d,v18.4s,v4.4s + umlal2 v21.2d,v18.4s,v6.4s + + b.eq Lshort_tail + + //////////////////////////////////////////////////////////////// + // (hash+inp[0:1])*r^4:r^3 and accumulate + + add v9.2s,v9.2s,v24.2s + umlal v22.2d,v11.2s,v1.2s + umlal v19.2d,v11.2s,v6.2s + umlal v23.2d,v11.2s,v3.2s + umlal v20.2d,v11.2s,v8.2s + umlal v21.2d,v11.2s,v0.2s + + add v10.2s,v10.2s,v25.2s + umlal v22.2d,v9.2s,v5.2s + umlal v19.2d,v9.2s,v0.2s + umlal v23.2d,v9.2s,v7.2s + umlal v20.2d,v9.2s,v1.2s + umlal v21.2d,v9.2s,v3.2s + + add v12.2s,v12.2s,v27.2s + umlal v22.2d,v10.2s,v3.2s + umlal v19.2d,v10.2s,v8.2s + umlal v23.2d,v10.2s,v5.2s + umlal v20.2d,v10.2s,v0.2s + umlal v21.2d,v10.2s,v1.2s + + add v13.2s,v13.2s,v28.2s + umlal v22.2d,v12.2s,v0.2s + umlal v19.2d,v12.2s,v4.2s + umlal v23.2d,v12.2s,v1.2s + umlal v20.2d,v12.2s,v6.2s + umlal v21.2d,v12.2s,v8.2s + + umlal v22.2d,v13.2s,v8.2s + umlal v19.2d,v13.2s,v2.2s + umlal v23.2d,v13.2s,v0.2s + umlal v20.2d,v13.2s,v4.2s + umlal v21.2d,v13.2s,v6.2s + +Lshort_tail: + //////////////////////////////////////////////////////////////// + // horizontal add + + addp v22.2d,v22.2d,v22.2d + ldp d8,d9,[sp,#16] // meet ABI requirements + addp v19.2d,v19.2d,v19.2d + ldp d10,d11,[sp,#32] + addp v23.2d,v23.2d,v23.2d + ldp d12,d13,[sp,#48] + addp v20.2d,v20.2d,v20.2d + ldp d14,d15,[sp,#64] + addp v21.2d,v21.2d,v21.2d + + //////////////////////////////////////////////////////////////// + // lazy reduction, but without narrowing + + ushr v29.2d,v22.2d,#26 + and v22.16b,v22.16b,v31.16b + ushr v30.2d,v19.2d,#26 + and v19.16b,v19.16b,v31.16b + + add v23.2d,v23.2d,v29.2d // h3 -> h4 + add v20.2d,v20.2d,v30.2d // h0 -> h1 + + ushr v29.2d,v23.2d,#26 + and v23.16b,v23.16b,v31.16b + ushr v30.2d,v20.2d,#26 + and v20.16b,v20.16b,v31.16b + add v21.2d,v21.2d,v30.2d // h1 -> h2 + + add v19.2d,v19.2d,v29.2d + shl v29.2d,v29.2d,#2 + ushr v30.2d,v21.2d,#26 + and v21.16b,v21.16b,v31.16b + add v19.2d,v19.2d,v29.2d // h4 -> h0 + add v22.2d,v22.2d,v30.2d // h2 -> h3 + + ushr v29.2d,v19.2d,#26 + and v19.16b,v19.16b,v31.16b + ushr v30.2d,v22.2d,#26 + and v22.16b,v22.16b,v31.16b + add v20.2d,v20.2d,v29.2d // h0 -> h1 + add v23.2d,v23.2d,v30.2d // h3 -> h4 + + //////////////////////////////////////////////////////////////// + // write the result, can be partially reduced + + st4 {v19.s,v20.s,v21.s,v22.s}[0],[x0],#16 + st1 {v23.s}[0],[x0] + +Lno_data_neon: + ldr x29,[sp],#80 +.long 0xd50323bf // autiasp + ret + + + +.align 5 +poly1305_emit_neon: + ldr x17,[x0,#24] + cbz x17,_poly1305_emit + + ldp w10,w11,[x0] // load hash value base 2^26 + ldp w12,w13,[x0,#8] + ldr w14,[x0,#16] + + add x4,x10,x11,lsl#26 // base 2^26 -> base 2^64 + lsr x5,x12,#12 + adds x4,x4,x12,lsl#52 + add x5,x5,x13,lsl#14 + adc x5,x5,xzr + lsr x6,x14,#24 + adds x5,x5,x14,lsl#40 + adc x6,x6,xzr // can be partially reduced... + + ldp x10,x11,[x2] // load nonce + + and x12,x6,#-4 // ... so reduce + add x12,x12,x6,lsr#2 + and x6,x6,#3 + adds x4,x4,x12 + adcs x5,x5,xzr + adc x6,x6,xzr + + adds x12,x4,#5 // compare to modulus + adcs x13,x5,xzr + adc x14,x6,xzr + + tst x14,#-4 // see if it's carried/borrowed + + csel x4,x4,x12,eq + csel x5,x5,x13,eq + +#ifdef __ARMEB__ + ror x10,x10,#32 // flip nonce words + ror x11,x11,#32 +#endif + adds x4,x4,x10 // accumulate nonce + adc x5,x5,x11 +#ifdef __ARMEB__ + rev x4,x4 // flip output bytes + rev x5,x5 +#endif + stp x4,x5,[x1] // write result + + ret + + +.align 5 +Lzeros: +.long 0,0,0,0,0,0,0,0 +LOPENSSL_armcap_P: +#ifdef __ILP32__ +.long _OPENSSL_armcap_P-. +#else +.quad ARMV7_NEON +#endif +.byte 80,111,108,121,49,51,48,53,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 2 +.align 2 diff --git a/vere/ext/openssl/gen/macos-aarch64/crypto/sha/keccak1600-armv8.S b/vere/ext/openssl/gen/macos-aarch64/crypto/sha/keccak1600-armv8.S new file mode 100644 index 0000000..ecb1151 --- /dev/null +++ b/vere/ext/openssl/gen/macos-aarch64/crypto/sha/keccak1600-armv8.S @@ -0,0 +1,1095 @@ +.text + +.align 8 // strategic alignment and padding that allows to use + // address value as loop termination condition... +.quad 0,0,0,0,0,0,0,0 + +iotas: +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x8000000080008008 + + +.align 5 +KeccakF1600_int: + adr x28,iotas +.long 0xd503233f // paciasp + stp x28,x30,[sp,#16] // 32 bytes on top are mine + b Loop +.align 4 +Loop: + ////////////////////////////////////////// Theta + eor x26,x0,x5 + stp x4,x9,[sp,#0] // offload pair... + eor x27,x1,x6 + eor x28,x2,x7 + eor x30,x3,x8 + eor x4,x4,x9 + eor x26,x26,x10 + eor x27,x27,x11 + eor x28,x28,x12 + eor x30,x30,x13 + eor x4,x4,x14 + eor x26,x26,x15 + eor x27,x27,x16 + eor x28,x28,x17 + eor x30,x30,x25 + eor x4,x4,x19 + eor x26,x26,x20 + eor x28,x28,x22 + eor x27,x27,x21 + eor x30,x30,x23 + eor x4,x4,x24 + + eor x9,x26,x28,ror#63 + + eor x1,x1,x9 + eor x6,x6,x9 + eor x11,x11,x9 + eor x16,x16,x9 + eor x21,x21,x9 + + eor x9,x27,x30,ror#63 + eor x28,x28,x4,ror#63 + eor x30,x30,x26,ror#63 + eor x4,x4,x27,ror#63 + + eor x27, x2,x9 // mov x27,x2 + eor x7,x7,x9 + eor x12,x12,x9 + eor x17,x17,x9 + eor x22,x22,x9 + + eor x0,x0,x4 + eor x5,x5,x4 + eor x10,x10,x4 + eor x15,x15,x4 + eor x20,x20,x4 + ldp x4,x9,[sp,#0] // re-load offloaded data + eor x26, x3,x28 // mov x26,x3 + eor x8,x8,x28 + eor x13,x13,x28 + eor x25,x25,x28 + eor x23,x23,x28 + + eor x28, x4,x30 // mov x28,x4 + eor x9,x9,x30 + eor x14,x14,x30 + eor x19,x19,x30 + eor x24,x24,x30 + + ////////////////////////////////////////// Rho+Pi + mov x30,x1 + ror x1,x6,#64-44 + //mov x27,x2 + ror x2,x12,#64-43 + //mov x26,x3 + ror x3,x25,#64-21 + //mov x28,x4 + ror x4,x24,#64-14 + + ror x6,x9,#64-20 + ror x12,x13,#64-25 + ror x25,x17,#64-15 + ror x24,x21,#64-2 + + ror x9,x22,#64-61 + ror x13,x19,#64-8 + ror x17,x11,#64-10 + ror x21,x8,#64-55 + + ror x22,x14,#64-39 + ror x19,x23,#64-56 + ror x11,x7,#64-6 + ror x8,x16,#64-45 + + ror x14,x20,#64-18 + ror x23,x15,#64-41 + ror x7,x10,#64-3 + ror x16,x5,#64-36 + + ror x5,x26,#64-28 + ror x10,x30,#64-1 + ror x15,x28,#64-27 + ror x20,x27,#64-62 + + ////////////////////////////////////////// Chi+Iota + bic x26,x2,x1 + bic x27,x3,x2 + bic x28,x0,x4 + bic x30,x1,x0 + eor x0,x0,x26 + bic x26,x4,x3 + eor x1,x1,x27 + ldr x27,[sp,#16] + eor x3,x3,x28 + eor x4,x4,x30 + eor x2,x2,x26 + ldr x30,[x27],#8 // Iota[i++] + + bic x26,x7,x6 + tst x27,#255 // are we done? + str x27,[sp,#16] + bic x27,x8,x7 + bic x28,x5,x9 + eor x0,x0,x30 // A[0][0] ^= Iota + bic x30,x6,x5 + eor x5,x5,x26 + bic x26,x9,x8 + eor x6,x6,x27 + eor x8,x8,x28 + eor x9,x9,x30 + eor x7,x7,x26 + + bic x26,x12,x11 + bic x27,x13,x12 + bic x28,x10,x14 + bic x30,x11,x10 + eor x10,x10,x26 + bic x26,x14,x13 + eor x11,x11,x27 + eor x13,x13,x28 + eor x14,x14,x30 + eor x12,x12,x26 + + bic x26,x17,x16 + bic x27,x25,x17 + bic x28,x15,x19 + bic x30,x16,x15 + eor x15,x15,x26 + bic x26,x19,x25 + eor x16,x16,x27 + eor x25,x25,x28 + eor x19,x19,x30 + eor x17,x17,x26 + + bic x26,x22,x21 + bic x27,x23,x22 + bic x28,x20,x24 + bic x30,x21,x20 + eor x20,x20,x26 + bic x26,x24,x23 + eor x21,x21,x27 + eor x23,x23,x28 + eor x24,x24,x30 + eor x22,x22,x26 + + bne Loop + + ldr x30,[sp,#24] +.long 0xd50323bf // autiasp + ret + + + +.align 5 +KeccakF1600: +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-128]! + add x29,sp,#0 + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + stp x23,x24,[sp,#48] + stp x25,x26,[sp,#64] + stp x27,x28,[sp,#80] + sub sp,sp,#48 + + str x0,[sp,#32] // offload argument + mov x26,x0 + ldp x0,x1,[x0,#16*0] + ldp x2,x3,[x26,#16*1] + ldp x4,x5,[x26,#16*2] + ldp x6,x7,[x26,#16*3] + ldp x8,x9,[x26,#16*4] + ldp x10,x11,[x26,#16*5] + ldp x12,x13,[x26,#16*6] + ldp x14,x15,[x26,#16*7] + ldp x16,x17,[x26,#16*8] + ldp x25,x19,[x26,#16*9] + ldp x20,x21,[x26,#16*10] + ldp x22,x23,[x26,#16*11] + ldr x24,[x26,#16*12] + + bl KeccakF1600_int + + ldr x26,[sp,#32] + stp x0,x1,[x26,#16*0] + stp x2,x3,[x26,#16*1] + stp x4,x5,[x26,#16*2] + stp x6,x7,[x26,#16*3] + stp x8,x9,[x26,#16*4] + stp x10,x11,[x26,#16*5] + stp x12,x13,[x26,#16*6] + stp x14,x15,[x26,#16*7] + stp x16,x17,[x26,#16*8] + stp x25,x19,[x26,#16*9] + stp x20,x21,[x26,#16*10] + stp x22,x23,[x26,#16*11] + str x24,[x26,#16*12] + + ldp x19,x20,[x29,#16] + add sp,sp,#48 + ldp x21,x22,[x29,#32] + ldp x23,x24,[x29,#48] + ldp x25,x26,[x29,#64] + ldp x27,x28,[x29,#80] + ldp x29,x30,[sp],#128 +.long 0xd50323bf // autiasp + ret + + +.globl _SHA3_absorb + +.align 5 +_SHA3_absorb: +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-128]! + add x29,sp,#0 + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + stp x23,x24,[sp,#48] + stp x25,x26,[sp,#64] + stp x27,x28,[sp,#80] + sub sp,sp,#64 + + stp x0,x1,[sp,#32] // offload arguments + stp x2,x3,[sp,#48] + + mov x26,x0 // uint64_t A[5][5] + mov x27,x1 // const void *inp + mov x28,x2 // size_t len + mov x30,x3 // size_t bsz + ldp x0,x1,[x26,#16*0] + ldp x2,x3,[x26,#16*1] + ldp x4,x5,[x26,#16*2] + ldp x6,x7,[x26,#16*3] + ldp x8,x9,[x26,#16*4] + ldp x10,x11,[x26,#16*5] + ldp x12,x13,[x26,#16*6] + ldp x14,x15,[x26,#16*7] + ldp x16,x17,[x26,#16*8] + ldp x25,x19,[x26,#16*9] + ldp x20,x21,[x26,#16*10] + ldp x22,x23,[x26,#16*11] + ldr x24,[x26,#16*12] + b Loop_absorb + +.align 4 +Loop_absorb: + subs x26,x28,x30 // len - bsz + blo Labsorbed + + str x26,[sp,#48] // save len - bsz + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x0,x0,x26 + cmp x30,#8*(0+2) + blo Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x1,x1,x26 + beq Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x2,x2,x26 + cmp x30,#8*(2+2) + blo Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x3,x3,x26 + beq Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x4,x4,x26 + cmp x30,#8*(4+2) + blo Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x5,x5,x26 + beq Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x6,x6,x26 + cmp x30,#8*(6+2) + blo Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x7,x7,x26 + beq Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x8,x8,x26 + cmp x30,#8*(8+2) + blo Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x9,x9,x26 + beq Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x10,x10,x26 + cmp x30,#8*(10+2) + blo Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x11,x11,x26 + beq Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x12,x12,x26 + cmp x30,#8*(12+2) + blo Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x13,x13,x26 + beq Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x14,x14,x26 + cmp x30,#8*(14+2) + blo Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x15,x15,x26 + beq Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x16,x16,x26 + cmp x30,#8*(16+2) + blo Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x17,x17,x26 + beq Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x25,x25,x26 + cmp x30,#8*(18+2) + blo Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x19,x19,x26 + beq Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x20,x20,x26 + cmp x30,#8*(20+2) + blo Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x21,x21,x26 + beq Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x22,x22,x26 + cmp x30,#8*(22+2) + blo Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x23,x23,x26 + beq Lprocess_block + ldr x26,[x27],#8 // *inp++ +#ifdef __AARCH64EB__ + rev x26,x26 +#endif + eor x24,x24,x26 + +Lprocess_block: + str x27,[sp,#40] // save inp + + bl KeccakF1600_int + + ldr x27,[sp,#40] // restore arguments + ldp x28,x30,[sp,#48] + b Loop_absorb + +.align 4 +Labsorbed: + ldr x27,[sp,#32] + stp x0,x1,[x27,#16*0] + stp x2,x3,[x27,#16*1] + stp x4,x5,[x27,#16*2] + stp x6,x7,[x27,#16*3] + stp x8,x9,[x27,#16*4] + stp x10,x11,[x27,#16*5] + stp x12,x13,[x27,#16*6] + stp x14,x15,[x27,#16*7] + stp x16,x17,[x27,#16*8] + stp x25,x19,[x27,#16*9] + stp x20,x21,[x27,#16*10] + stp x22,x23,[x27,#16*11] + str x24,[x27,#16*12] + + mov x0,x28 // return value + ldp x19,x20,[x29,#16] + add sp,sp,#64 + ldp x21,x22,[x29,#32] + ldp x23,x24,[x29,#48] + ldp x25,x26,[x29,#64] + ldp x27,x28,[x29,#80] + ldp x29,x30,[sp],#128 +.long 0xd50323bf // autiasp + ret + +.globl _SHA3_squeeze + +.align 5 +_SHA3_squeeze: +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-48]! + add x29,sp,#0 + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + + mov x19,x0 // put aside arguments + mov x20,x1 + mov x21,x2 + mov x22,x3 + +Loop_squeeze: + ldr x4,[x0],#8 + cmp x21,#8 + blo Lsqueeze_tail +#ifdef __AARCH64EB__ + rev x4,x4 +#endif + str x4,[x20],#8 + subs x21,x21,#8 + beq Lsqueeze_done + + subs x3,x3,#8 + bhi Loop_squeeze + + mov x0,x19 + bl KeccakF1600 + mov x0,x19 + mov x3,x22 + b Loop_squeeze + +.align 4 +Lsqueeze_tail: + strb w4,[x20],#1 + lsr x4,x4,#8 + subs x21,x21,#1 + beq Lsqueeze_done + strb w4,[x20],#1 + lsr x4,x4,#8 + subs x21,x21,#1 + beq Lsqueeze_done + strb w4,[x20],#1 + lsr x4,x4,#8 + subs x21,x21,#1 + beq Lsqueeze_done + strb w4,[x20],#1 + lsr x4,x4,#8 + subs x21,x21,#1 + beq Lsqueeze_done + strb w4,[x20],#1 + lsr x4,x4,#8 + subs x21,x21,#1 + beq Lsqueeze_done + strb w4,[x20],#1 + lsr x4,x4,#8 + subs x21,x21,#1 + beq Lsqueeze_done + strb w4,[x20],#1 + +Lsqueeze_done: + ldp x19,x20,[sp,#16] + ldp x21,x22,[sp,#32] + ldp x29,x30,[sp],#48 +.long 0xd50323bf // autiasp + ret + + +.align 5 +KeccakF1600_ce: + mov x9,#12 + adr x10,iotas + b Loop_ce +.align 4 +Loop_ce: + ////////////////////////////////////////////////// Theta +.long 0xce052819 //eor3 v25.16b,v0.16b,v5.16b,v10.16b +.long 0xce062c3a //eor3 v26.16b,v1.16b,v6.16b,v11.16b +.long 0xce07305b //eor3 v27.16b,v2.16b,v7.16b,v12.16b +.long 0xce08347c //eor3 v28.16b,v3.16b,v8.16b,v13.16b +.long 0xce09389d //eor3 v29.16b,v4.16b,v9.16b,v14.16b +.long 0xce0f5339 //eor3 v25.16b,v25.16b, v15.16b,v20.16b +.long 0xce10575a //eor3 v26.16b,v26.16b, v16.16b,v21.16b +.long 0xce115b7b //eor3 v27.16b,v27.16b, v17.16b,v22.16b +.long 0xce125f9c //eor3 v28.16b,v28.16b, v18.16b,v23.16b +.long 0xce1363bd //eor3 v29.16b,v29.16b, v19.16b,v24.16b + +.long 0xce7b8f3e //rax1 v30.16b,v25.16b,v27.16b // D[1] +.long 0xce7c8f5f //rax1 v31.16b,v26.16b,v28.16b // D[2] +.long 0xce7d8f7b //rax1 v27.16b,v27.16b,v29.16b // D[3] +.long 0xce798f9c //rax1 v28.16b,v28.16b,v25.16b // D[4] +.long 0xce7a8fbd //rax1 v29.16b,v29.16b,v26.16b // D[0] + + ////////////////////////////////////////////////// Theta+Rho+Pi +.long 0xce9e50d9 //xar v25.16b, v6.16b,v30.16b,#64-44 // C[0]=A[0][1] +.long 0xce9cb126 //xar v6.16b,v9.16b,v28.16b,#64-20 +.long 0xce9f0ec9 //xar v9.16b,v22.16b,v31.16b,#64-61 +.long 0xce9c65d6 //xar v22.16b,v14.16b,v28.16b,#64-39 +.long 0xce9dba8e //xar v14.16b,v20.16b,v29.16b,#64-18 + +.long 0xce9f0854 //xar v20.16b,v2.16b,v31.16b,#64-62 + +.long 0xce9f5582 //xar v2.16b,v12.16b,v31.16b,#64-43 +.long 0xce9b9dac //xar v12.16b,v13.16b,v27.16b,#64-25 +.long 0xce9ce26d //xar v13.16b,v19.16b,v28.16b,#64-8 +.long 0xce9b22f3 //xar v19.16b,v23.16b,v27.16b,#64-56 +.long 0xce9d5df7 //xar v23.16b,v15.16b,v29.16b,#64-41 + +.long 0xce9c948f //xar v15.16b,v4.16b,v28.16b,#64-27 + + eor v0.16b,v0.16b,v29.16b + ldr x11,[x10],#8 + +.long 0xce9bae5a //xar v26.16b, v18.16b,v27.16b,#64-21 // C[1]=A[0][3] +.long 0xce9fc632 //xar v18.16b,v17.16b,v31.16b,#64-15 +.long 0xce9ed971 //xar v17.16b,v11.16b,v30.16b,#64-10 +.long 0xce9fe8eb //xar v11.16b,v7.16b,v31.16b,#64-6 +.long 0xce9df547 //xar v7.16b,v10.16b,v29.16b,#64-3 + +.long 0xce9efc2a //xar v10.16b,v1.16b,v30.16b,#64-1 // * + +.long 0xce9ccb04 //xar v4.16b,v24.16b,v28.16b,#64-14 +.long 0xce9efab8 //xar v24.16b,v21.16b,v30.16b,#64-2 +.long 0xce9b2515 //xar v21.16b,v8.16b,v27.16b,#64-55 +.long 0xce9e4e08 //xar v8.16b,v16.16b,v30.16b,#64-45 +.long 0xce9d70b0 //xar v16.16b,v5.16b,v29.16b,#64-36 + +.long 0xce9b907b //xar v27.16b, v3.16b,v27.16b,#64-28 // C[2]=A[1][0] + + ////////////////////////////////////////////////// Chi+Iota + dup v31.2d,x11 // borrow C[6] +.long 0xce22641c //bcax v28.16b, v0.16b,v2.16b,v25.16b // * +.long 0xce3a0b21 //bcax v1.16b,v25.16b, v26.16b, v2.16b // * +.long 0xce246842 //bcax v2.16b,v2.16b,v4.16b,v26.16b +.long 0xce201343 //bcax v3.16b,v26.16b, v0.16b,v4.16b +.long 0xce390084 //bcax v4.16b,v4.16b,v25.16b, v0.16b + +.long 0xce271b65 //bcax v5.16b,v27.16b, v7.16b,v6.16b // * +.long 0xce281cd9 //bcax v25.16b, v6.16b,v8.16b,v7.16b // * +.long 0xce2920e7 //bcax v7.16b,v7.16b,v9.16b,v8.16b +.long 0xce3b2508 //bcax v8.16b,v8.16b,v27.16b, v9.16b +.long 0xce266d29 //bcax v9.16b,v9.16b,v6.16b,v27.16b + + eor v0.16b,v28.16b,v31.16b // Iota + +.long 0xce2c2d5a //bcax v26.16b, v10.16b,v12.16b,v11.16b // * +.long 0xce2d317b //bcax v27.16b, v11.16b,v13.16b,v12.16b // * +.long 0xce2e358c //bcax v12.16b,v12.16b,v14.16b,v13.16b +.long 0xce2a39ad //bcax v13.16b,v13.16b,v10.16b,v14.16b +.long 0xce2b29ce //bcax v14.16b,v14.16b,v11.16b,v10.16b + +.long 0xce3141fc //bcax v28.16b, v15.16b,v17.16b,v16.16b // * +.long 0xce32461d //bcax v29.16b, v16.16b,v18.16b,v17.16b // * +.long 0xce334a31 //bcax v17.16b,v17.16b,v19.16b,v18.16b +.long 0xce2f4e52 //bcax v18.16b,v18.16b,v15.16b,v19.16b +.long 0xce303e73 //bcax v19.16b,v19.16b,v16.16b,v15.16b + +.long 0xce36569e //bcax v30.16b, v20.16b,v22.16b,v21.16b // * +.long 0xce375abf //bcax v31.16b, v21.16b,v23.16b,v22.16b // * +.long 0xce385ed6 //bcax v22.16b,v22.16b,v24.16b,v23.16b +.long 0xce3462f7 //bcax v23.16b,v23.16b,v20.16b,v24.16b +.long 0xce355318 //bcax v24.16b,v24.16b,v21.16b,v20.16b + ////////////////////////////////////////////////// Theta +.long 0xce056806 //eor3 v6.16b,v0.16b,v5.16b,v26.16b +.long 0xce196c2a //eor3 v10.16b,v1.16b,v25.16b,v27.16b +.long 0xce07304b //eor3 v11.16b,v2.16b,v7.16b,v12.16b +.long 0xce08346f //eor3 v15.16b,v3.16b,v8.16b,v13.16b +.long 0xce093890 //eor3 v16.16b,v4.16b,v9.16b,v14.16b +.long 0xce1c78c6 //eor3 v6.16b,v6.16b, v28.16b,v30.16b +.long 0xce1d7d4a //eor3 v10.16b,v10.16b, v29.16b,v31.16b +.long 0xce11596b //eor3 v11.16b,v11.16b, v17.16b,v22.16b +.long 0xce125def //eor3 v15.16b,v15.16b, v18.16b,v23.16b +.long 0xce136210 //eor3 v16.16b,v16.16b, v19.16b,v24.16b + +.long 0xce6b8cd4 //rax1 v20.16b,v6.16b,v11.16b // D[1] +.long 0xce6f8d55 //rax1 v21.16b,v10.16b,v15.16b // D[2] +.long 0xce708d6b //rax1 v11.16b,v11.16b,v16.16b // D[3] +.long 0xce668def //rax1 v15.16b,v15.16b,v6.16b // D[4] +.long 0xce6a8e10 //rax1 v16.16b,v16.16b,v10.16b // D[0] + + ////////////////////////////////////////////////// Theta+Rho+Pi +.long 0xce945326 //xar v6.16b, v25.16b,v20.16b,#64-44 // C[0]=A[0][1] +.long 0xce8fb139 //xar v25.16b,v9.16b,v15.16b,#64-20 +.long 0xce950ec9 //xar v9.16b,v22.16b,v21.16b,#64-61 +.long 0xce8f65d6 //xar v22.16b,v14.16b,v15.16b,#64-39 +.long 0xce90bbce //xar v14.16b,v30.16b,v16.16b,#64-18 + +.long 0xce95085e //xar v30.16b,v2.16b,v21.16b,#64-62 + +.long 0xce955582 //xar v2.16b,v12.16b,v21.16b,#64-43 +.long 0xce8b9dac //xar v12.16b,v13.16b,v11.16b,#64-25 +.long 0xce8fe26d //xar v13.16b,v19.16b,v15.16b,#64-8 +.long 0xce8b22f3 //xar v19.16b,v23.16b,v11.16b,#64-56 +.long 0xce905f97 //xar v23.16b,v28.16b,v16.16b,#64-41 + +.long 0xce8f949c //xar v28.16b,v4.16b,v15.16b,#64-27 + + eor v0.16b,v0.16b,v16.16b + ldr x11,[x10],#8 + +.long 0xce8bae4a //xar v10.16b, v18.16b,v11.16b,#64-21 // C[1]=A[0][3] +.long 0xce95c632 //xar v18.16b,v17.16b,v21.16b,#64-15 +.long 0xce94db71 //xar v17.16b,v27.16b,v20.16b,#64-10 +.long 0xce95e8fb //xar v27.16b,v7.16b,v21.16b,#64-6 +.long 0xce90f747 //xar v7.16b,v26.16b,v16.16b,#64-3 + +.long 0xce94fc3a //xar v26.16b,v1.16b,v20.16b,#64-1 // * + +.long 0xce8fcb04 //xar v4.16b,v24.16b,v15.16b,#64-14 +.long 0xce94fbf8 //xar v24.16b,v31.16b,v20.16b,#64-2 +.long 0xce8b251f //xar v31.16b,v8.16b,v11.16b,#64-55 +.long 0xce944fa8 //xar v8.16b,v29.16b,v20.16b,#64-45 +.long 0xce9070bd //xar v29.16b,v5.16b,v16.16b,#64-36 + +.long 0xce8b906b //xar v11.16b, v3.16b,v11.16b,#64-28 // C[2]=A[1][0] + + ////////////////////////////////////////////////// Chi+Iota + dup v21.2d,x11 // borrow C[6] +.long 0xce22180f //bcax v15.16b, v0.16b,v2.16b,v6.16b // * +.long 0xce2a08c1 //bcax v1.16b,v6.16b, v10.16b, v2.16b // * +.long 0xce242842 //bcax v2.16b,v2.16b,v4.16b,v10.16b +.long 0xce201143 //bcax v3.16b,v10.16b, v0.16b,v4.16b +.long 0xce260084 //bcax v4.16b,v4.16b,v6.16b, v0.16b + +.long 0xce276565 //bcax v5.16b,v11.16b, v7.16b,v25.16b // * +.long 0xce281f26 //bcax v6.16b, v25.16b,v8.16b,v7.16b // * +.long 0xce2920e7 //bcax v7.16b,v7.16b,v9.16b,v8.16b +.long 0xce2b2508 //bcax v8.16b,v8.16b,v11.16b, v9.16b +.long 0xce392d29 //bcax v9.16b,v9.16b,v25.16b,v11.16b + + eor v0.16b,v15.16b,v21.16b // Iota + +.long 0xce2c6f4a //bcax v10.16b, v26.16b,v12.16b,v27.16b // * +.long 0xce2d336b //bcax v11.16b, v27.16b,v13.16b,v12.16b // * +.long 0xce2e358c //bcax v12.16b,v12.16b,v14.16b,v13.16b +.long 0xce3a39ad //bcax v13.16b,v13.16b,v26.16b,v14.16b +.long 0xce3b69ce //bcax v14.16b,v14.16b,v27.16b,v26.16b + +.long 0xce31778f //bcax v15.16b, v28.16b,v17.16b,v29.16b // * +.long 0xce3247b0 //bcax v16.16b, v29.16b,v18.16b,v17.16b // * +.long 0xce334a31 //bcax v17.16b,v17.16b,v19.16b,v18.16b +.long 0xce3c4e52 //bcax v18.16b,v18.16b,v28.16b,v19.16b +.long 0xce3d7273 //bcax v19.16b,v19.16b,v29.16b,v28.16b + +.long 0xce367fd4 //bcax v20.16b, v30.16b,v22.16b,v31.16b // * +.long 0xce375bf5 //bcax v21.16b, v31.16b,v23.16b,v22.16b // * +.long 0xce385ed6 //bcax v22.16b,v22.16b,v24.16b,v23.16b +.long 0xce3e62f7 //bcax v23.16b,v23.16b,v30.16b,v24.16b +.long 0xce3f7b18 //bcax v24.16b,v24.16b,v31.16b,v30.16b + subs x9,x9,#1 + bne Loop_ce + + ret + + + +.align 5 +KeccakF1600_cext: +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-80]! + add x29,sp,#0 + stp d8,d9,[sp,#16] // per ABI requirement + stp d10,d11,[sp,#32] + stp d12,d13,[sp,#48] + stp d14,d15,[sp,#64] + ldp d0,d1,[x0,#8*0] + ldp d2,d3,[x0,#8*2] + ldp d4,d5,[x0,#8*4] + ldp d6,d7,[x0,#8*6] + ldp d8,d9,[x0,#8*8] + ldp d10,d11,[x0,#8*10] + ldp d12,d13,[x0,#8*12] + ldp d14,d15,[x0,#8*14] + ldp d16,d17,[x0,#8*16] + ldp d18,d19,[x0,#8*18] + ldp d20,d21,[x0,#8*20] + ldp d22,d23,[x0,#8*22] + ldr d24,[x0,#8*24] + bl KeccakF1600_ce + ldr x30,[sp,#8] + stp d0,d1,[x0,#8*0] + stp d2,d3,[x0,#8*2] + stp d4,d5,[x0,#8*4] + stp d6,d7,[x0,#8*6] + stp d8,d9,[x0,#8*8] + stp d10,d11,[x0,#8*10] + stp d12,d13,[x0,#8*12] + stp d14,d15,[x0,#8*14] + stp d16,d17,[x0,#8*16] + stp d18,d19,[x0,#8*18] + stp d20,d21,[x0,#8*20] + stp d22,d23,[x0,#8*22] + str d24,[x0,#8*24] + + ldp d8,d9,[sp,#16] + ldp d10,d11,[sp,#32] + ldp d12,d13,[sp,#48] + ldp d14,d15,[sp,#64] + ldr x29,[sp],#80 +.long 0xd50323bf // autiasp + ret + +.globl _SHA3_absorb_cext + +.align 5 +_SHA3_absorb_cext: +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-80]! + add x29,sp,#0 + stp d8,d9,[sp,#16] // per ABI requirement + stp d10,d11,[sp,#32] + stp d12,d13,[sp,#48] + stp d14,d15,[sp,#64] + ldp d0,d1,[x0,#8*0] + ldp d2,d3,[x0,#8*2] + ldp d4,d5,[x0,#8*4] + ldp d6,d7,[x0,#8*6] + ldp d8,d9,[x0,#8*8] + ldp d10,d11,[x0,#8*10] + ldp d12,d13,[x0,#8*12] + ldp d14,d15,[x0,#8*14] + ldp d16,d17,[x0,#8*16] + ldp d18,d19,[x0,#8*18] + ldp d20,d21,[x0,#8*20] + ldp d22,d23,[x0,#8*22] + ldr d24,[x0,#8*24] + b Loop_absorb_ce + +.align 4 +Loop_absorb_ce: + subs x2,x2,x3 // len - bsz + blo Labsorbed_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v0.16b,v0.16b,v31.16b + cmp x3,#8*(0+2) + blo Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v1.16b,v1.16b,v31.16b + beq Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v2.16b,v2.16b,v31.16b + cmp x3,#8*(2+2) + blo Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v3.16b,v3.16b,v31.16b + beq Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v4.16b,v4.16b,v31.16b + cmp x3,#8*(4+2) + blo Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v5.16b,v5.16b,v31.16b + beq Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v6.16b,v6.16b,v31.16b + cmp x3,#8*(6+2) + blo Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v7.16b,v7.16b,v31.16b + beq Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v8.16b,v8.16b,v31.16b + cmp x3,#8*(8+2) + blo Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v9.16b,v9.16b,v31.16b + beq Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v10.16b,v10.16b,v31.16b + cmp x3,#8*(10+2) + blo Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v11.16b,v11.16b,v31.16b + beq Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v12.16b,v12.16b,v31.16b + cmp x3,#8*(12+2) + blo Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v13.16b,v13.16b,v31.16b + beq Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v14.16b,v14.16b,v31.16b + cmp x3,#8*(14+2) + blo Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v15.16b,v15.16b,v31.16b + beq Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v16.16b,v16.16b,v31.16b + cmp x3,#8*(16+2) + blo Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v17.16b,v17.16b,v31.16b + beq Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v18.16b,v18.16b,v31.16b + cmp x3,#8*(18+2) + blo Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v19.16b,v19.16b,v31.16b + beq Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v20.16b,v20.16b,v31.16b + cmp x3,#8*(20+2) + blo Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v21.16b,v21.16b,v31.16b + beq Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v22.16b,v22.16b,v31.16b + cmp x3,#8*(22+2) + blo Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v23.16b,v23.16b,v31.16b + beq Lprocess_block_ce + ldr d31,[x1],#8 // *inp++ +#ifdef __AARCH64EB__ + rev64 v31.16b,v31.16b +#endif + eor v24.16b,v24.16b,v31.16b + +Lprocess_block_ce: + + bl KeccakF1600_ce + + b Loop_absorb_ce + +.align 4 +Labsorbed_ce: + stp d0,d1,[x0,#8*0] + stp d2,d3,[x0,#8*2] + stp d4,d5,[x0,#8*4] + stp d6,d7,[x0,#8*6] + stp d8,d9,[x0,#8*8] + stp d10,d11,[x0,#8*10] + stp d12,d13,[x0,#8*12] + stp d14,d15,[x0,#8*14] + stp d16,d17,[x0,#8*16] + stp d18,d19,[x0,#8*18] + stp d20,d21,[x0,#8*20] + stp d22,d23,[x0,#8*22] + str d24,[x0,#8*24] + add x0,x2,x3 // return value + + ldp d8,d9,[sp,#16] + ldp d10,d11,[sp,#32] + ldp d12,d13,[sp,#48] + ldp d14,d15,[sp,#64] + ldp x29,x30,[sp],#80 +.long 0xd50323bf // autiasp + ret + +.globl _SHA3_squeeze_cext + +.align 5 +_SHA3_squeeze_cext: +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + mov x9,x0 + mov x10,x3 + +Loop_squeeze_ce: + ldr x4,[x9],#8 + cmp x2,#8 + blo Lsqueeze_tail_ce +#ifdef __AARCH64EB__ + rev x4,x4 +#endif + str x4,[x1],#8 + beq Lsqueeze_done_ce + + sub x2,x2,#8 + subs x10,x10,#8 + bhi Loop_squeeze_ce + + bl KeccakF1600_cext + ldr x30,[sp,#8] + mov x9,x0 + mov x10,x3 + b Loop_squeeze_ce + +.align 4 +Lsqueeze_tail_ce: + strb w4,[x1],#1 + lsr x4,x4,#8 + subs x2,x2,#1 + beq Lsqueeze_done_ce + strb w4,[x1],#1 + lsr x4,x4,#8 + subs x2,x2,#1 + beq Lsqueeze_done_ce + strb w4,[x1],#1 + lsr x4,x4,#8 + subs x2,x2,#1 + beq Lsqueeze_done_ce + strb w4,[x1],#1 + lsr x4,x4,#8 + subs x2,x2,#1 + beq Lsqueeze_done_ce + strb w4,[x1],#1 + lsr x4,x4,#8 + subs x2,x2,#1 + beq Lsqueeze_done_ce + strb w4,[x1],#1 + lsr x4,x4,#8 + subs x2,x2,#1 + beq Lsqueeze_done_ce + strb w4,[x1],#1 + +Lsqueeze_done_ce: + ldr x29,[sp],#16 +.long 0xd50323bf // autiasp + ret + +.byte 75,101,99,99,97,107,45,49,54,48,48,32,97,98,115,111,114,98,32,97,110,100,32,115,113,117,101,101,122,101,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 2 diff --git a/vere/ext/openssl/gen/macos-aarch64/crypto/sha/sha1-armv8.S b/vere/ext/openssl/gen/macos-aarch64/crypto/sha/sha1-armv8.S new file mode 100644 index 0000000..d5a5fc6 --- /dev/null +++ b/vere/ext/openssl/gen/macos-aarch64/crypto/sha/sha1-armv8.S @@ -0,0 +1,1221 @@ +#include "arm_arch.h" + +.text + + +.private_extern _OPENSSL_armcap_P +.globl _sha1_block_data_order + +.align 6 +_sha1_block_data_order: +#ifdef __ILP32__ + ldrsw x16,LOPENSSL_armcap_P +#else + ldr x16,LOPENSSL_armcap_P +#endif + adr x17,LOPENSSL_armcap_P + add x16,x16,x17 + ldr w16,[x16] + tst w16,#ARMV8_SHA1 + b.ne Lv8_entry + + stp x29,x30,[sp,#-96]! + add x29,sp,#0 + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + stp x23,x24,[sp,#48] + stp x25,x26,[sp,#64] + stp x27,x28,[sp,#80] + + ldp w20,w21,[x0] + ldp w22,w23,[x0,#8] + ldr w24,[x0,#16] + +Loop: + ldr x3,[x1],#64 + movz w28,#0x7999 + sub x2,x2,#1 + movk w28,#0x5a82,lsl#16 +#ifdef __ARMEB__ + ror x3,x3,#32 +#else + rev32 x3,x3 +#endif + add w24,w24,w28 // warm it up + add w24,w24,w3 + lsr x4,x3,#32 + ldr x5,[x1,#-56] + bic w25,w23,w21 + and w26,w22,w21 + ror w27,w20,#27 + add w23,w23,w28 // future e+=K + orr w25,w25,w26 + add w24,w24,w27 // e+=rot(a,5) + ror w21,w21,#2 + add w23,w23,w4 // future e+=X[i] + add w24,w24,w25 // e+=F(b,c,d) +#ifdef __ARMEB__ + ror x5,x5,#32 +#else + rev32 x5,x5 +#endif + bic w25,w22,w20 + and w26,w21,w20 + ror w27,w24,#27 + add w22,w22,w28 // future e+=K + orr w25,w25,w26 + add w23,w23,w27 // e+=rot(a,5) + ror w20,w20,#2 + add w22,w22,w5 // future e+=X[i] + add w23,w23,w25 // e+=F(b,c,d) + lsr x6,x5,#32 + ldr x7,[x1,#-48] + bic w25,w21,w24 + and w26,w20,w24 + ror w27,w23,#27 + add w21,w21,w28 // future e+=K + orr w25,w25,w26 + add w22,w22,w27 // e+=rot(a,5) + ror w24,w24,#2 + add w21,w21,w6 // future e+=X[i] + add w22,w22,w25 // e+=F(b,c,d) +#ifdef __ARMEB__ + ror x7,x7,#32 +#else + rev32 x7,x7 +#endif + bic w25,w20,w23 + and w26,w24,w23 + ror w27,w22,#27 + add w20,w20,w28 // future e+=K + orr w25,w25,w26 + add w21,w21,w27 // e+=rot(a,5) + ror w23,w23,#2 + add w20,w20,w7 // future e+=X[i] + add w21,w21,w25 // e+=F(b,c,d) + lsr x8,x7,#32 + ldr x9,[x1,#-40] + bic w25,w24,w22 + and w26,w23,w22 + ror w27,w21,#27 + add w24,w24,w28 // future e+=K + orr w25,w25,w26 + add w20,w20,w27 // e+=rot(a,5) + ror w22,w22,#2 + add w24,w24,w8 // future e+=X[i] + add w20,w20,w25 // e+=F(b,c,d) +#ifdef __ARMEB__ + ror x9,x9,#32 +#else + rev32 x9,x9 +#endif + bic w25,w23,w21 + and w26,w22,w21 + ror w27,w20,#27 + add w23,w23,w28 // future e+=K + orr w25,w25,w26 + add w24,w24,w27 // e+=rot(a,5) + ror w21,w21,#2 + add w23,w23,w9 // future e+=X[i] + add w24,w24,w25 // e+=F(b,c,d) + lsr x10,x9,#32 + ldr x11,[x1,#-32] + bic w25,w22,w20 + and w26,w21,w20 + ror w27,w24,#27 + add w22,w22,w28 // future e+=K + orr w25,w25,w26 + add w23,w23,w27 // e+=rot(a,5) + ror w20,w20,#2 + add w22,w22,w10 // future e+=X[i] + add w23,w23,w25 // e+=F(b,c,d) +#ifdef __ARMEB__ + ror x11,x11,#32 +#else + rev32 x11,x11 +#endif + bic w25,w21,w24 + and w26,w20,w24 + ror w27,w23,#27 + add w21,w21,w28 // future e+=K + orr w25,w25,w26 + add w22,w22,w27 // e+=rot(a,5) + ror w24,w24,#2 + add w21,w21,w11 // future e+=X[i] + add w22,w22,w25 // e+=F(b,c,d) + lsr x12,x11,#32 + ldr x13,[x1,#-24] + bic w25,w20,w23 + and w26,w24,w23 + ror w27,w22,#27 + add w20,w20,w28 // future e+=K + orr w25,w25,w26 + add w21,w21,w27 // e+=rot(a,5) + ror w23,w23,#2 + add w20,w20,w12 // future e+=X[i] + add w21,w21,w25 // e+=F(b,c,d) +#ifdef __ARMEB__ + ror x13,x13,#32 +#else + rev32 x13,x13 +#endif + bic w25,w24,w22 + and w26,w23,w22 + ror w27,w21,#27 + add w24,w24,w28 // future e+=K + orr w25,w25,w26 + add w20,w20,w27 // e+=rot(a,5) + ror w22,w22,#2 + add w24,w24,w13 // future e+=X[i] + add w20,w20,w25 // e+=F(b,c,d) + lsr x14,x13,#32 + ldr x15,[x1,#-16] + bic w25,w23,w21 + and w26,w22,w21 + ror w27,w20,#27 + add w23,w23,w28 // future e+=K + orr w25,w25,w26 + add w24,w24,w27 // e+=rot(a,5) + ror w21,w21,#2 + add w23,w23,w14 // future e+=X[i] + add w24,w24,w25 // e+=F(b,c,d) +#ifdef __ARMEB__ + ror x15,x15,#32 +#else + rev32 x15,x15 +#endif + bic w25,w22,w20 + and w26,w21,w20 + ror w27,w24,#27 + add w22,w22,w28 // future e+=K + orr w25,w25,w26 + add w23,w23,w27 // e+=rot(a,5) + ror w20,w20,#2 + add w22,w22,w15 // future e+=X[i] + add w23,w23,w25 // e+=F(b,c,d) + lsr x16,x15,#32 + ldr x17,[x1,#-8] + bic w25,w21,w24 + and w26,w20,w24 + ror w27,w23,#27 + add w21,w21,w28 // future e+=K + orr w25,w25,w26 + add w22,w22,w27 // e+=rot(a,5) + ror w24,w24,#2 + add w21,w21,w16 // future e+=X[i] + add w22,w22,w25 // e+=F(b,c,d) +#ifdef __ARMEB__ + ror x17,x17,#32 +#else + rev32 x17,x17 +#endif + bic w25,w20,w23 + and w26,w24,w23 + ror w27,w22,#27 + add w20,w20,w28 // future e+=K + orr w25,w25,w26 + add w21,w21,w27 // e+=rot(a,5) + ror w23,w23,#2 + add w20,w20,w17 // future e+=X[i] + add w21,w21,w25 // e+=F(b,c,d) + lsr x19,x17,#32 + eor w3,w3,w5 + bic w25,w24,w22 + and w26,w23,w22 + ror w27,w21,#27 + eor w3,w3,w11 + add w24,w24,w28 // future e+=K + orr w25,w25,w26 + add w20,w20,w27 // e+=rot(a,5) + eor w3,w3,w16 + ror w22,w22,#2 + add w24,w24,w19 // future e+=X[i] + add w20,w20,w25 // e+=F(b,c,d) + ror w3,w3,#31 + eor w4,w4,w6 + bic w25,w23,w21 + and w26,w22,w21 + ror w27,w20,#27 + eor w4,w4,w12 + add w23,w23,w28 // future e+=K + orr w25,w25,w26 + add w24,w24,w27 // e+=rot(a,5) + eor w4,w4,w17 + ror w21,w21,#2 + add w23,w23,w3 // future e+=X[i] + add w24,w24,w25 // e+=F(b,c,d) + ror w4,w4,#31 + eor w5,w5,w7 + bic w25,w22,w20 + and w26,w21,w20 + ror w27,w24,#27 + eor w5,w5,w13 + add w22,w22,w28 // future e+=K + orr w25,w25,w26 + add w23,w23,w27 // e+=rot(a,5) + eor w5,w5,w19 + ror w20,w20,#2 + add w22,w22,w4 // future e+=X[i] + add w23,w23,w25 // e+=F(b,c,d) + ror w5,w5,#31 + eor w6,w6,w8 + bic w25,w21,w24 + and w26,w20,w24 + ror w27,w23,#27 + eor w6,w6,w14 + add w21,w21,w28 // future e+=K + orr w25,w25,w26 + add w22,w22,w27 // e+=rot(a,5) + eor w6,w6,w3 + ror w24,w24,#2 + add w21,w21,w5 // future e+=X[i] + add w22,w22,w25 // e+=F(b,c,d) + ror w6,w6,#31 + eor w7,w7,w9 + bic w25,w20,w23 + and w26,w24,w23 + ror w27,w22,#27 + eor w7,w7,w15 + add w20,w20,w28 // future e+=K + orr w25,w25,w26 + add w21,w21,w27 // e+=rot(a,5) + eor w7,w7,w4 + ror w23,w23,#2 + add w20,w20,w6 // future e+=X[i] + add w21,w21,w25 // e+=F(b,c,d) + ror w7,w7,#31 + movz w28,#0xeba1 + movk w28,#0x6ed9,lsl#16 + eor w8,w8,w10 + bic w25,w24,w22 + and w26,w23,w22 + ror w27,w21,#27 + eor w8,w8,w16 + add w24,w24,w28 // future e+=K + orr w25,w25,w26 + add w20,w20,w27 // e+=rot(a,5) + eor w8,w8,w5 + ror w22,w22,#2 + add w24,w24,w7 // future e+=X[i] + add w20,w20,w25 // e+=F(b,c,d) + ror w8,w8,#31 + eor w9,w9,w11 + eor w25,w23,w21 + ror w27,w20,#27 + add w23,w23,w28 // future e+=K + eor w9,w9,w17 + eor w25,w25,w22 + add w24,w24,w27 // e+=rot(a,5) + ror w21,w21,#2 + eor w9,w9,w6 + add w23,w23,w8 // future e+=X[i] + add w24,w24,w25 // e+=F(b,c,d) + ror w9,w9,#31 + eor w10,w10,w12 + eor w25,w22,w20 + ror w27,w24,#27 + add w22,w22,w28 // future e+=K + eor w10,w10,w19 + eor w25,w25,w21 + add w23,w23,w27 // e+=rot(a,5) + ror w20,w20,#2 + eor w10,w10,w7 + add w22,w22,w9 // future e+=X[i] + add w23,w23,w25 // e+=F(b,c,d) + ror w10,w10,#31 + eor w11,w11,w13 + eor w25,w21,w24 + ror w27,w23,#27 + add w21,w21,w28 // future e+=K + eor w11,w11,w3 + eor w25,w25,w20 + add w22,w22,w27 // e+=rot(a,5) + ror w24,w24,#2 + eor w11,w11,w8 + add w21,w21,w10 // future e+=X[i] + add w22,w22,w25 // e+=F(b,c,d) + ror w11,w11,#31 + eor w12,w12,w14 + eor w25,w20,w23 + ror w27,w22,#27 + add w20,w20,w28 // future e+=K + eor w12,w12,w4 + eor w25,w25,w24 + add w21,w21,w27 // e+=rot(a,5) + ror w23,w23,#2 + eor w12,w12,w9 + add w20,w20,w11 // future e+=X[i] + add w21,w21,w25 // e+=F(b,c,d) + ror w12,w12,#31 + eor w13,w13,w15 + eor w25,w24,w22 + ror w27,w21,#27 + add w24,w24,w28 // future e+=K + eor w13,w13,w5 + eor w25,w25,w23 + add w20,w20,w27 // e+=rot(a,5) + ror w22,w22,#2 + eor w13,w13,w10 + add w24,w24,w12 // future e+=X[i] + add w20,w20,w25 // e+=F(b,c,d) + ror w13,w13,#31 + eor w14,w14,w16 + eor w25,w23,w21 + ror w27,w20,#27 + add w23,w23,w28 // future e+=K + eor w14,w14,w6 + eor w25,w25,w22 + add w24,w24,w27 // e+=rot(a,5) + ror w21,w21,#2 + eor w14,w14,w11 + add w23,w23,w13 // future e+=X[i] + add w24,w24,w25 // e+=F(b,c,d) + ror w14,w14,#31 + eor w15,w15,w17 + eor w25,w22,w20 + ror w27,w24,#27 + add w22,w22,w28 // future e+=K + eor w15,w15,w7 + eor w25,w25,w21 + add w23,w23,w27 // e+=rot(a,5) + ror w20,w20,#2 + eor w15,w15,w12 + add w22,w22,w14 // future e+=X[i] + add w23,w23,w25 // e+=F(b,c,d) + ror w15,w15,#31 + eor w16,w16,w19 + eor w25,w21,w24 + ror w27,w23,#27 + add w21,w21,w28 // future e+=K + eor w16,w16,w8 + eor w25,w25,w20 + add w22,w22,w27 // e+=rot(a,5) + ror w24,w24,#2 + eor w16,w16,w13 + add w21,w21,w15 // future e+=X[i] + add w22,w22,w25 // e+=F(b,c,d) + ror w16,w16,#31 + eor w17,w17,w3 + eor w25,w20,w23 + ror w27,w22,#27 + add w20,w20,w28 // future e+=K + eor w17,w17,w9 + eor w25,w25,w24 + add w21,w21,w27 // e+=rot(a,5) + ror w23,w23,#2 + eor w17,w17,w14 + add w20,w20,w16 // future e+=X[i] + add w21,w21,w25 // e+=F(b,c,d) + ror w17,w17,#31 + eor w19,w19,w4 + eor w25,w24,w22 + ror w27,w21,#27 + add w24,w24,w28 // future e+=K + eor w19,w19,w10 + eor w25,w25,w23 + add w20,w20,w27 // e+=rot(a,5) + ror w22,w22,#2 + eor w19,w19,w15 + add w24,w24,w17 // future e+=X[i] + add w20,w20,w25 // e+=F(b,c,d) + ror w19,w19,#31 + eor w3,w3,w5 + eor w25,w23,w21 + ror w27,w20,#27 + add w23,w23,w28 // future e+=K + eor w3,w3,w11 + eor w25,w25,w22 + add w24,w24,w27 // e+=rot(a,5) + ror w21,w21,#2 + eor w3,w3,w16 + add w23,w23,w19 // future e+=X[i] + add w24,w24,w25 // e+=F(b,c,d) + ror w3,w3,#31 + eor w4,w4,w6 + eor w25,w22,w20 + ror w27,w24,#27 + add w22,w22,w28 // future e+=K + eor w4,w4,w12 + eor w25,w25,w21 + add w23,w23,w27 // e+=rot(a,5) + ror w20,w20,#2 + eor w4,w4,w17 + add w22,w22,w3 // future e+=X[i] + add w23,w23,w25 // e+=F(b,c,d) + ror w4,w4,#31 + eor w5,w5,w7 + eor w25,w21,w24 + ror w27,w23,#27 + add w21,w21,w28 // future e+=K + eor w5,w5,w13 + eor w25,w25,w20 + add w22,w22,w27 // e+=rot(a,5) + ror w24,w24,#2 + eor w5,w5,w19 + add w21,w21,w4 // future e+=X[i] + add w22,w22,w25 // e+=F(b,c,d) + ror w5,w5,#31 + eor w6,w6,w8 + eor w25,w20,w23 + ror w27,w22,#27 + add w20,w20,w28 // future e+=K + eor w6,w6,w14 + eor w25,w25,w24 + add w21,w21,w27 // e+=rot(a,5) + ror w23,w23,#2 + eor w6,w6,w3 + add w20,w20,w5 // future e+=X[i] + add w21,w21,w25 // e+=F(b,c,d) + ror w6,w6,#31 + eor w7,w7,w9 + eor w25,w24,w22 + ror w27,w21,#27 + add w24,w24,w28 // future e+=K + eor w7,w7,w15 + eor w25,w25,w23 + add w20,w20,w27 // e+=rot(a,5) + ror w22,w22,#2 + eor w7,w7,w4 + add w24,w24,w6 // future e+=X[i] + add w20,w20,w25 // e+=F(b,c,d) + ror w7,w7,#31 + eor w8,w8,w10 + eor w25,w23,w21 + ror w27,w20,#27 + add w23,w23,w28 // future e+=K + eor w8,w8,w16 + eor w25,w25,w22 + add w24,w24,w27 // e+=rot(a,5) + ror w21,w21,#2 + eor w8,w8,w5 + add w23,w23,w7 // future e+=X[i] + add w24,w24,w25 // e+=F(b,c,d) + ror w8,w8,#31 + eor w9,w9,w11 + eor w25,w22,w20 + ror w27,w24,#27 + add w22,w22,w28 // future e+=K + eor w9,w9,w17 + eor w25,w25,w21 + add w23,w23,w27 // e+=rot(a,5) + ror w20,w20,#2 + eor w9,w9,w6 + add w22,w22,w8 // future e+=X[i] + add w23,w23,w25 // e+=F(b,c,d) + ror w9,w9,#31 + eor w10,w10,w12 + eor w25,w21,w24 + ror w27,w23,#27 + add w21,w21,w28 // future e+=K + eor w10,w10,w19 + eor w25,w25,w20 + add w22,w22,w27 // e+=rot(a,5) + ror w24,w24,#2 + eor w10,w10,w7 + add w21,w21,w9 // future e+=X[i] + add w22,w22,w25 // e+=F(b,c,d) + ror w10,w10,#31 + eor w11,w11,w13 + eor w25,w20,w23 + ror w27,w22,#27 + add w20,w20,w28 // future e+=K + eor w11,w11,w3 + eor w25,w25,w24 + add w21,w21,w27 // e+=rot(a,5) + ror w23,w23,#2 + eor w11,w11,w8 + add w20,w20,w10 // future e+=X[i] + add w21,w21,w25 // e+=F(b,c,d) + ror w11,w11,#31 + movz w28,#0xbcdc + movk w28,#0x8f1b,lsl#16 + eor w12,w12,w14 + eor w25,w24,w22 + ror w27,w21,#27 + add w24,w24,w28 // future e+=K + eor w12,w12,w4 + eor w25,w25,w23 + add w20,w20,w27 // e+=rot(a,5) + ror w22,w22,#2 + eor w12,w12,w9 + add w24,w24,w11 // future e+=X[i] + add w20,w20,w25 // e+=F(b,c,d) + ror w12,w12,#31 + orr w25,w21,w22 + and w26,w21,w22 + eor w13,w13,w15 + ror w27,w20,#27 + and w25,w25,w23 + add w23,w23,w28 // future e+=K + eor w13,w13,w5 + add w24,w24,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w21,w21,#2 + eor w13,w13,w10 + add w23,w23,w12 // future e+=X[i] + add w24,w24,w25 // e+=F(b,c,d) + ror w13,w13,#31 + orr w25,w20,w21 + and w26,w20,w21 + eor w14,w14,w16 + ror w27,w24,#27 + and w25,w25,w22 + add w22,w22,w28 // future e+=K + eor w14,w14,w6 + add w23,w23,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w20,w20,#2 + eor w14,w14,w11 + add w22,w22,w13 // future e+=X[i] + add w23,w23,w25 // e+=F(b,c,d) + ror w14,w14,#31 + orr w25,w24,w20 + and w26,w24,w20 + eor w15,w15,w17 + ror w27,w23,#27 + and w25,w25,w21 + add w21,w21,w28 // future e+=K + eor w15,w15,w7 + add w22,w22,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w24,w24,#2 + eor w15,w15,w12 + add w21,w21,w14 // future e+=X[i] + add w22,w22,w25 // e+=F(b,c,d) + ror w15,w15,#31 + orr w25,w23,w24 + and w26,w23,w24 + eor w16,w16,w19 + ror w27,w22,#27 + and w25,w25,w20 + add w20,w20,w28 // future e+=K + eor w16,w16,w8 + add w21,w21,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w23,w23,#2 + eor w16,w16,w13 + add w20,w20,w15 // future e+=X[i] + add w21,w21,w25 // e+=F(b,c,d) + ror w16,w16,#31 + orr w25,w22,w23 + and w26,w22,w23 + eor w17,w17,w3 + ror w27,w21,#27 + and w25,w25,w24 + add w24,w24,w28 // future e+=K + eor w17,w17,w9 + add w20,w20,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w22,w22,#2 + eor w17,w17,w14 + add w24,w24,w16 // future e+=X[i] + add w20,w20,w25 // e+=F(b,c,d) + ror w17,w17,#31 + orr w25,w21,w22 + and w26,w21,w22 + eor w19,w19,w4 + ror w27,w20,#27 + and w25,w25,w23 + add w23,w23,w28 // future e+=K + eor w19,w19,w10 + add w24,w24,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w21,w21,#2 + eor w19,w19,w15 + add w23,w23,w17 // future e+=X[i] + add w24,w24,w25 // e+=F(b,c,d) + ror w19,w19,#31 + orr w25,w20,w21 + and w26,w20,w21 + eor w3,w3,w5 + ror w27,w24,#27 + and w25,w25,w22 + add w22,w22,w28 // future e+=K + eor w3,w3,w11 + add w23,w23,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w20,w20,#2 + eor w3,w3,w16 + add w22,w22,w19 // future e+=X[i] + add w23,w23,w25 // e+=F(b,c,d) + ror w3,w3,#31 + orr w25,w24,w20 + and w26,w24,w20 + eor w4,w4,w6 + ror w27,w23,#27 + and w25,w25,w21 + add w21,w21,w28 // future e+=K + eor w4,w4,w12 + add w22,w22,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w24,w24,#2 + eor w4,w4,w17 + add w21,w21,w3 // future e+=X[i] + add w22,w22,w25 // e+=F(b,c,d) + ror w4,w4,#31 + orr w25,w23,w24 + and w26,w23,w24 + eor w5,w5,w7 + ror w27,w22,#27 + and w25,w25,w20 + add w20,w20,w28 // future e+=K + eor w5,w5,w13 + add w21,w21,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w23,w23,#2 + eor w5,w5,w19 + add w20,w20,w4 // future e+=X[i] + add w21,w21,w25 // e+=F(b,c,d) + ror w5,w5,#31 + orr w25,w22,w23 + and w26,w22,w23 + eor w6,w6,w8 + ror w27,w21,#27 + and w25,w25,w24 + add w24,w24,w28 // future e+=K + eor w6,w6,w14 + add w20,w20,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w22,w22,#2 + eor w6,w6,w3 + add w24,w24,w5 // future e+=X[i] + add w20,w20,w25 // e+=F(b,c,d) + ror w6,w6,#31 + orr w25,w21,w22 + and w26,w21,w22 + eor w7,w7,w9 + ror w27,w20,#27 + and w25,w25,w23 + add w23,w23,w28 // future e+=K + eor w7,w7,w15 + add w24,w24,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w21,w21,#2 + eor w7,w7,w4 + add w23,w23,w6 // future e+=X[i] + add w24,w24,w25 // e+=F(b,c,d) + ror w7,w7,#31 + orr w25,w20,w21 + and w26,w20,w21 + eor w8,w8,w10 + ror w27,w24,#27 + and w25,w25,w22 + add w22,w22,w28 // future e+=K + eor w8,w8,w16 + add w23,w23,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w20,w20,#2 + eor w8,w8,w5 + add w22,w22,w7 // future e+=X[i] + add w23,w23,w25 // e+=F(b,c,d) + ror w8,w8,#31 + orr w25,w24,w20 + and w26,w24,w20 + eor w9,w9,w11 + ror w27,w23,#27 + and w25,w25,w21 + add w21,w21,w28 // future e+=K + eor w9,w9,w17 + add w22,w22,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w24,w24,#2 + eor w9,w9,w6 + add w21,w21,w8 // future e+=X[i] + add w22,w22,w25 // e+=F(b,c,d) + ror w9,w9,#31 + orr w25,w23,w24 + and w26,w23,w24 + eor w10,w10,w12 + ror w27,w22,#27 + and w25,w25,w20 + add w20,w20,w28 // future e+=K + eor w10,w10,w19 + add w21,w21,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w23,w23,#2 + eor w10,w10,w7 + add w20,w20,w9 // future e+=X[i] + add w21,w21,w25 // e+=F(b,c,d) + ror w10,w10,#31 + orr w25,w22,w23 + and w26,w22,w23 + eor w11,w11,w13 + ror w27,w21,#27 + and w25,w25,w24 + add w24,w24,w28 // future e+=K + eor w11,w11,w3 + add w20,w20,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w22,w22,#2 + eor w11,w11,w8 + add w24,w24,w10 // future e+=X[i] + add w20,w20,w25 // e+=F(b,c,d) + ror w11,w11,#31 + orr w25,w21,w22 + and w26,w21,w22 + eor w12,w12,w14 + ror w27,w20,#27 + and w25,w25,w23 + add w23,w23,w28 // future e+=K + eor w12,w12,w4 + add w24,w24,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w21,w21,#2 + eor w12,w12,w9 + add w23,w23,w11 // future e+=X[i] + add w24,w24,w25 // e+=F(b,c,d) + ror w12,w12,#31 + orr w25,w20,w21 + and w26,w20,w21 + eor w13,w13,w15 + ror w27,w24,#27 + and w25,w25,w22 + add w22,w22,w28 // future e+=K + eor w13,w13,w5 + add w23,w23,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w20,w20,#2 + eor w13,w13,w10 + add w22,w22,w12 // future e+=X[i] + add w23,w23,w25 // e+=F(b,c,d) + ror w13,w13,#31 + orr w25,w24,w20 + and w26,w24,w20 + eor w14,w14,w16 + ror w27,w23,#27 + and w25,w25,w21 + add w21,w21,w28 // future e+=K + eor w14,w14,w6 + add w22,w22,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w24,w24,#2 + eor w14,w14,w11 + add w21,w21,w13 // future e+=X[i] + add w22,w22,w25 // e+=F(b,c,d) + ror w14,w14,#31 + orr w25,w23,w24 + and w26,w23,w24 + eor w15,w15,w17 + ror w27,w22,#27 + and w25,w25,w20 + add w20,w20,w28 // future e+=K + eor w15,w15,w7 + add w21,w21,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w23,w23,#2 + eor w15,w15,w12 + add w20,w20,w14 // future e+=X[i] + add w21,w21,w25 // e+=F(b,c,d) + ror w15,w15,#31 + movz w28,#0xc1d6 + movk w28,#0xca62,lsl#16 + orr w25,w22,w23 + and w26,w22,w23 + eor w16,w16,w19 + ror w27,w21,#27 + and w25,w25,w24 + add w24,w24,w28 // future e+=K + eor w16,w16,w8 + add w20,w20,w27 // e+=rot(a,5) + orr w25,w25,w26 + ror w22,w22,#2 + eor w16,w16,w13 + add w24,w24,w15 // future e+=X[i] + add w20,w20,w25 // e+=F(b,c,d) + ror w16,w16,#31 + eor w17,w17,w3 + eor w25,w23,w21 + ror w27,w20,#27 + add w23,w23,w28 // future e+=K + eor w17,w17,w9 + eor w25,w25,w22 + add w24,w24,w27 // e+=rot(a,5) + ror w21,w21,#2 + eor w17,w17,w14 + add w23,w23,w16 // future e+=X[i] + add w24,w24,w25 // e+=F(b,c,d) + ror w17,w17,#31 + eor w19,w19,w4 + eor w25,w22,w20 + ror w27,w24,#27 + add w22,w22,w28 // future e+=K + eor w19,w19,w10 + eor w25,w25,w21 + add w23,w23,w27 // e+=rot(a,5) + ror w20,w20,#2 + eor w19,w19,w15 + add w22,w22,w17 // future e+=X[i] + add w23,w23,w25 // e+=F(b,c,d) + ror w19,w19,#31 + eor w3,w3,w5 + eor w25,w21,w24 + ror w27,w23,#27 + add w21,w21,w28 // future e+=K + eor w3,w3,w11 + eor w25,w25,w20 + add w22,w22,w27 // e+=rot(a,5) + ror w24,w24,#2 + eor w3,w3,w16 + add w21,w21,w19 // future e+=X[i] + add w22,w22,w25 // e+=F(b,c,d) + ror w3,w3,#31 + eor w4,w4,w6 + eor w25,w20,w23 + ror w27,w22,#27 + add w20,w20,w28 // future e+=K + eor w4,w4,w12 + eor w25,w25,w24 + add w21,w21,w27 // e+=rot(a,5) + ror w23,w23,#2 + eor w4,w4,w17 + add w20,w20,w3 // future e+=X[i] + add w21,w21,w25 // e+=F(b,c,d) + ror w4,w4,#31 + eor w5,w5,w7 + eor w25,w24,w22 + ror w27,w21,#27 + add w24,w24,w28 // future e+=K + eor w5,w5,w13 + eor w25,w25,w23 + add w20,w20,w27 // e+=rot(a,5) + ror w22,w22,#2 + eor w5,w5,w19 + add w24,w24,w4 // future e+=X[i] + add w20,w20,w25 // e+=F(b,c,d) + ror w5,w5,#31 + eor w6,w6,w8 + eor w25,w23,w21 + ror w27,w20,#27 + add w23,w23,w28 // future e+=K + eor w6,w6,w14 + eor w25,w25,w22 + add w24,w24,w27 // e+=rot(a,5) + ror w21,w21,#2 + eor w6,w6,w3 + add w23,w23,w5 // future e+=X[i] + add w24,w24,w25 // e+=F(b,c,d) + ror w6,w6,#31 + eor w7,w7,w9 + eor w25,w22,w20 + ror w27,w24,#27 + add w22,w22,w28 // future e+=K + eor w7,w7,w15 + eor w25,w25,w21 + add w23,w23,w27 // e+=rot(a,5) + ror w20,w20,#2 + eor w7,w7,w4 + add w22,w22,w6 // future e+=X[i] + add w23,w23,w25 // e+=F(b,c,d) + ror w7,w7,#31 + eor w8,w8,w10 + eor w25,w21,w24 + ror w27,w23,#27 + add w21,w21,w28 // future e+=K + eor w8,w8,w16 + eor w25,w25,w20 + add w22,w22,w27 // e+=rot(a,5) + ror w24,w24,#2 + eor w8,w8,w5 + add w21,w21,w7 // future e+=X[i] + add w22,w22,w25 // e+=F(b,c,d) + ror w8,w8,#31 + eor w9,w9,w11 + eor w25,w20,w23 + ror w27,w22,#27 + add w20,w20,w28 // future e+=K + eor w9,w9,w17 + eor w25,w25,w24 + add w21,w21,w27 // e+=rot(a,5) + ror w23,w23,#2 + eor w9,w9,w6 + add w20,w20,w8 // future e+=X[i] + add w21,w21,w25 // e+=F(b,c,d) + ror w9,w9,#31 + eor w10,w10,w12 + eor w25,w24,w22 + ror w27,w21,#27 + add w24,w24,w28 // future e+=K + eor w10,w10,w19 + eor w25,w25,w23 + add w20,w20,w27 // e+=rot(a,5) + ror w22,w22,#2 + eor w10,w10,w7 + add w24,w24,w9 // future e+=X[i] + add w20,w20,w25 // e+=F(b,c,d) + ror w10,w10,#31 + eor w11,w11,w13 + eor w25,w23,w21 + ror w27,w20,#27 + add w23,w23,w28 // future e+=K + eor w11,w11,w3 + eor w25,w25,w22 + add w24,w24,w27 // e+=rot(a,5) + ror w21,w21,#2 + eor w11,w11,w8 + add w23,w23,w10 // future e+=X[i] + add w24,w24,w25 // e+=F(b,c,d) + ror w11,w11,#31 + eor w12,w12,w14 + eor w25,w22,w20 + ror w27,w24,#27 + add w22,w22,w28 // future e+=K + eor w12,w12,w4 + eor w25,w25,w21 + add w23,w23,w27 // e+=rot(a,5) + ror w20,w20,#2 + eor w12,w12,w9 + add w22,w22,w11 // future e+=X[i] + add w23,w23,w25 // e+=F(b,c,d) + ror w12,w12,#31 + eor w13,w13,w15 + eor w25,w21,w24 + ror w27,w23,#27 + add w21,w21,w28 // future e+=K + eor w13,w13,w5 + eor w25,w25,w20 + add w22,w22,w27 // e+=rot(a,5) + ror w24,w24,#2 + eor w13,w13,w10 + add w21,w21,w12 // future e+=X[i] + add w22,w22,w25 // e+=F(b,c,d) + ror w13,w13,#31 + eor w14,w14,w16 + eor w25,w20,w23 + ror w27,w22,#27 + add w20,w20,w28 // future e+=K + eor w14,w14,w6 + eor w25,w25,w24 + add w21,w21,w27 // e+=rot(a,5) + ror w23,w23,#2 + eor w14,w14,w11 + add w20,w20,w13 // future e+=X[i] + add w21,w21,w25 // e+=F(b,c,d) + ror w14,w14,#31 + eor w15,w15,w17 + eor w25,w24,w22 + ror w27,w21,#27 + add w24,w24,w28 // future e+=K + eor w15,w15,w7 + eor w25,w25,w23 + add w20,w20,w27 // e+=rot(a,5) + ror w22,w22,#2 + eor w15,w15,w12 + add w24,w24,w14 // future e+=X[i] + add w20,w20,w25 // e+=F(b,c,d) + ror w15,w15,#31 + eor w16,w16,w19 + eor w25,w23,w21 + ror w27,w20,#27 + add w23,w23,w28 // future e+=K + eor w16,w16,w8 + eor w25,w25,w22 + add w24,w24,w27 // e+=rot(a,5) + ror w21,w21,#2 + eor w16,w16,w13 + add w23,w23,w15 // future e+=X[i] + add w24,w24,w25 // e+=F(b,c,d) + ror w16,w16,#31 + eor w17,w17,w3 + eor w25,w22,w20 + ror w27,w24,#27 + add w22,w22,w28 // future e+=K + eor w17,w17,w9 + eor w25,w25,w21 + add w23,w23,w27 // e+=rot(a,5) + ror w20,w20,#2 + eor w17,w17,w14 + add w22,w22,w16 // future e+=X[i] + add w23,w23,w25 // e+=F(b,c,d) + ror w17,w17,#31 + eor w19,w19,w4 + eor w25,w21,w24 + ror w27,w23,#27 + add w21,w21,w28 // future e+=K + eor w19,w19,w10 + eor w25,w25,w20 + add w22,w22,w27 // e+=rot(a,5) + ror w24,w24,#2 + eor w19,w19,w15 + add w21,w21,w17 // future e+=X[i] + add w22,w22,w25 // e+=F(b,c,d) + ror w19,w19,#31 + ldp w4,w5,[x0] + eor w25,w20,w23 + ror w27,w22,#27 + add w20,w20,w28 // future e+=K + eor w25,w25,w24 + add w21,w21,w27 // e+=rot(a,5) + ror w23,w23,#2 + add w20,w20,w19 // future e+=X[i] + add w21,w21,w25 // e+=F(b,c,d) + ldp w6,w7,[x0,#8] + eor w25,w24,w22 + ror w27,w21,#27 + eor w25,w25,w23 + add w20,w20,w27 // e+=rot(a,5) + ror w22,w22,#2 + ldr w8,[x0,#16] + add w20,w20,w25 // e+=F(b,c,d) + add w21,w21,w5 + add w22,w22,w6 + add w20,w20,w4 + add w23,w23,w7 + add w24,w24,w8 + stp w20,w21,[x0] + stp w22,w23,[x0,#8] + str w24,[x0,#16] + cbnz x2,Loop + + ldp x19,x20,[sp,#16] + ldp x21,x22,[sp,#32] + ldp x23,x24,[sp,#48] + ldp x25,x26,[sp,#64] + ldp x27,x28,[sp,#80] + ldr x29,[sp],#96 + ret + + +.align 6 +sha1_block_armv8: +Lv8_entry: + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + + adr x4,Lconst + eor v1.16b,v1.16b,v1.16b + ld1 {v0.4s},[x0],#16 + ld1 {v1.s}[0],[x0] + sub x0,x0,#16 + ld1 {v16.4s,v17.4s,v18.4s,v19.4s},[x4] + +Loop_hw: + ld1 {v4.16b,v5.16b,v6.16b,v7.16b},[x1],#64 + sub x2,x2,#1 + rev32 v4.16b,v4.16b + rev32 v5.16b,v5.16b + + add v20.4s,v16.4s,v4.4s + rev32 v6.16b,v6.16b + orr v22.16b,v0.16b,v0.16b // offload + + add v21.4s,v16.4s,v5.4s + rev32 v7.16b,v7.16b +.long 0x5e280803 //sha1h v3.16b,v0.16b +.long 0x5e140020 //sha1c v0.16b,v1.16b,v20.4s // 0 + add v20.4s,v16.4s,v6.4s +.long 0x5e0630a4 //sha1su0 v4.16b,v5.16b,v6.16b +.long 0x5e280802 //sha1h v2.16b,v0.16b // 1 +.long 0x5e150060 //sha1c v0.16b,v3.16b,v21.4s + add v21.4s,v16.4s,v7.4s +.long 0x5e2818e4 //sha1su1 v4.16b,v7.16b +.long 0x5e0730c5 //sha1su0 v5.16b,v6.16b,v7.16b +.long 0x5e280803 //sha1h v3.16b,v0.16b // 2 +.long 0x5e140040 //sha1c v0.16b,v2.16b,v20.4s + add v20.4s,v16.4s,v4.4s +.long 0x5e281885 //sha1su1 v5.16b,v4.16b +.long 0x5e0430e6 //sha1su0 v6.16b,v7.16b,v4.16b +.long 0x5e280802 //sha1h v2.16b,v0.16b // 3 +.long 0x5e150060 //sha1c v0.16b,v3.16b,v21.4s + add v21.4s,v17.4s,v5.4s +.long 0x5e2818a6 //sha1su1 v6.16b,v5.16b +.long 0x5e053087 //sha1su0 v7.16b,v4.16b,v5.16b +.long 0x5e280803 //sha1h v3.16b,v0.16b // 4 +.long 0x5e140040 //sha1c v0.16b,v2.16b,v20.4s + add v20.4s,v17.4s,v6.4s +.long 0x5e2818c7 //sha1su1 v7.16b,v6.16b +.long 0x5e0630a4 //sha1su0 v4.16b,v5.16b,v6.16b +.long 0x5e280802 //sha1h v2.16b,v0.16b // 5 +.long 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s + add v21.4s,v17.4s,v7.4s +.long 0x5e2818e4 //sha1su1 v4.16b,v7.16b +.long 0x5e0730c5 //sha1su0 v5.16b,v6.16b,v7.16b +.long 0x5e280803 //sha1h v3.16b,v0.16b // 6 +.long 0x5e141040 //sha1p v0.16b,v2.16b,v20.4s + add v20.4s,v17.4s,v4.4s +.long 0x5e281885 //sha1su1 v5.16b,v4.16b +.long 0x5e0430e6 //sha1su0 v6.16b,v7.16b,v4.16b +.long 0x5e280802 //sha1h v2.16b,v0.16b // 7 +.long 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s + add v21.4s,v17.4s,v5.4s +.long 0x5e2818a6 //sha1su1 v6.16b,v5.16b +.long 0x5e053087 //sha1su0 v7.16b,v4.16b,v5.16b +.long 0x5e280803 //sha1h v3.16b,v0.16b // 8 +.long 0x5e141040 //sha1p v0.16b,v2.16b,v20.4s + add v20.4s,v18.4s,v6.4s +.long 0x5e2818c7 //sha1su1 v7.16b,v6.16b +.long 0x5e0630a4 //sha1su0 v4.16b,v5.16b,v6.16b +.long 0x5e280802 //sha1h v2.16b,v0.16b // 9 +.long 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s + add v21.4s,v18.4s,v7.4s +.long 0x5e2818e4 //sha1su1 v4.16b,v7.16b +.long 0x5e0730c5 //sha1su0 v5.16b,v6.16b,v7.16b +.long 0x5e280803 //sha1h v3.16b,v0.16b // 10 +.long 0x5e142040 //sha1m v0.16b,v2.16b,v20.4s + add v20.4s,v18.4s,v4.4s +.long 0x5e281885 //sha1su1 v5.16b,v4.16b +.long 0x5e0430e6 //sha1su0 v6.16b,v7.16b,v4.16b +.long 0x5e280802 //sha1h v2.16b,v0.16b // 11 +.long 0x5e152060 //sha1m v0.16b,v3.16b,v21.4s + add v21.4s,v18.4s,v5.4s +.long 0x5e2818a6 //sha1su1 v6.16b,v5.16b +.long 0x5e053087 //sha1su0 v7.16b,v4.16b,v5.16b +.long 0x5e280803 //sha1h v3.16b,v0.16b // 12 +.long 0x5e142040 //sha1m v0.16b,v2.16b,v20.4s + add v20.4s,v18.4s,v6.4s +.long 0x5e2818c7 //sha1su1 v7.16b,v6.16b +.long 0x5e0630a4 //sha1su0 v4.16b,v5.16b,v6.16b +.long 0x5e280802 //sha1h v2.16b,v0.16b // 13 +.long 0x5e152060 //sha1m v0.16b,v3.16b,v21.4s + add v21.4s,v19.4s,v7.4s +.long 0x5e2818e4 //sha1su1 v4.16b,v7.16b +.long 0x5e0730c5 //sha1su0 v5.16b,v6.16b,v7.16b +.long 0x5e280803 //sha1h v3.16b,v0.16b // 14 +.long 0x5e142040 //sha1m v0.16b,v2.16b,v20.4s + add v20.4s,v19.4s,v4.4s +.long 0x5e281885 //sha1su1 v5.16b,v4.16b +.long 0x5e0430e6 //sha1su0 v6.16b,v7.16b,v4.16b +.long 0x5e280802 //sha1h v2.16b,v0.16b // 15 +.long 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s + add v21.4s,v19.4s,v5.4s +.long 0x5e2818a6 //sha1su1 v6.16b,v5.16b +.long 0x5e053087 //sha1su0 v7.16b,v4.16b,v5.16b +.long 0x5e280803 //sha1h v3.16b,v0.16b // 16 +.long 0x5e141040 //sha1p v0.16b,v2.16b,v20.4s + add v20.4s,v19.4s,v6.4s +.long 0x5e2818c7 //sha1su1 v7.16b,v6.16b +.long 0x5e280802 //sha1h v2.16b,v0.16b // 17 +.long 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s + add v21.4s,v19.4s,v7.4s + +.long 0x5e280803 //sha1h v3.16b,v0.16b // 18 +.long 0x5e141040 //sha1p v0.16b,v2.16b,v20.4s + +.long 0x5e280802 //sha1h v2.16b,v0.16b // 19 +.long 0x5e151060 //sha1p v0.16b,v3.16b,v21.4s + + add v1.4s,v1.4s,v2.4s + add v0.4s,v0.4s,v22.4s + + cbnz x2,Loop_hw + + st1 {v0.4s},[x0],#16 + st1 {v1.s}[0],[x0] + + ldr x29,[sp],#16 + ret + +.align 6 +Lconst: +.long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 //K_00_19 +.long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1 //K_20_39 +.long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc //K_40_59 +.long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6 //K_60_79 +LOPENSSL_armcap_P: +#ifdef __ILP32__ +.long _OPENSSL_armcap_P-. +#else +.quad ARMV7_NEON +#endif +.byte 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 2 +.align 2 diff --git a/vere/ext/openssl/gen/macos-aarch64/crypto/sha/sha256-armv8.S b/vere/ext/openssl/gen/macos-aarch64/crypto/sha/sha256-armv8.S new file mode 100644 index 0000000..2439362 --- /dev/null +++ b/vere/ext/openssl/gen/macos-aarch64/crypto/sha/sha256-armv8.S @@ -0,0 +1,2063 @@ +// Copyright 2014-2020 The OpenSSL Project Authors. All Rights Reserved. +// +// Licensed under the OpenSSL license (the "License"). You may not use +// this file except in compliance with the License. You can obtain a copy +// in the file LICENSE in the source distribution or at +// https://www.openssl.org/source/license.html + +// ==================================================================== +// Written by Andy Polyakov for the OpenSSL +// project. The module is, however, dual licensed under OpenSSL and +// CRYPTOGAMS licenses depending on where you obtain it. For further +// details see http://www.openssl.org/~appro/cryptogams/. +// +// Permission to use under GPLv2 terms is granted. +// ==================================================================== +// +// SHA256/512 for ARMv8. +// +// Performance in cycles per processed byte and improvement coefficient +// over code generated with "default" compiler: +// +// SHA256-hw SHA256(*) SHA512 +// Apple A7 1.97 10.5 (+33%) 6.73 (-1%(**)) +// Cortex-A53 2.38 15.5 (+115%) 10.0 (+150%(***)) +// Cortex-A57 2.31 11.6 (+86%) 7.51 (+260%(***)) +// Denver 2.01 10.5 (+26%) 6.70 (+8%) +// X-Gene 20.0 (+100%) 12.8 (+300%(***)) +// Mongoose 2.36 13.0 (+50%) 8.36 (+33%) +// Kryo 1.92 17.4 (+30%) 11.2 (+8%) +// +// (*) Software SHA256 results are of lesser relevance, presented +// mostly for informational purposes. +// (**) The result is a trade-off: it's possible to improve it by +// 10% (or by 1 cycle per round), but at the cost of 20% loss +// on Cortex-A53 (or by 4 cycles per round). +// (***) Super-impressive coefficients over gcc-generated code are +// indication of some compiler "pathology", most notably code +// generated with -mgeneral-regs-only is significantly faster +// and the gap is only 40-90%. +// +// October 2016. +// +// Originally it was reckoned that it makes no sense to implement NEON +// version of SHA256 for 64-bit processors. This is because performance +// improvement on most wide-spread Cortex-A5x processors was observed +// to be marginal, same on Cortex-A53 and ~10% on A57. But then it was +// observed that 32-bit NEON SHA256 performs significantly better than +// 64-bit scalar version on *some* of the more recent processors. As +// result 64-bit NEON version of SHA256 was added to provide best +// all-round performance. For example it executes ~30% faster on X-Gene +// and Mongoose. [For reference, NEON version of SHA512 is bound to +// deliver much less improvement, likely *negative* on Cortex-A5x. +// Which is why NEON support is limited to SHA256.] + +#ifndef __KERNEL__ +# include "arm_arch.h" +#endif + +.text + + +.private_extern _OPENSSL_armcap_P +.globl _sha256_block_data_order + +.align 6 +_sha256_block_data_order: +#ifndef __KERNEL__ +# ifdef __ILP32__ + ldrsw x16,LOPENSSL_armcap_P +# else + ldr x16,LOPENSSL_armcap_P +# endif + adr x17,LOPENSSL_armcap_P + add x16,x16,x17 + ldr w16,[x16] + tst w16,#ARMV8_SHA256 + b.ne Lv8_entry + tst w16,#ARMV7_NEON + b.ne Lneon_entry +#endif +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-128]! + add x29,sp,#0 + + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + stp x23,x24,[sp,#48] + stp x25,x26,[sp,#64] + stp x27,x28,[sp,#80] + sub sp,sp,#4*4 + + ldp w20,w21,[x0] // load context + ldp w22,w23,[x0,#2*4] + ldp w24,w25,[x0,#4*4] + add x2,x1,x2,lsl#6 // end of input + ldp w26,w27,[x0,#6*4] + adr x30,LK256 + stp x0,x2,[x29,#96] + +Loop: + ldp w3,w4,[x1],#2*4 + ldr w19,[x30],#4 // *K++ + eor w28,w21,w22 // magic seed + str x1,[x29,#112] +#ifndef __AARCH64EB__ + rev w3,w3 // 0 +#endif + ror w16,w24,#6 + add w27,w27,w19 // h+=K[i] + eor w6,w24,w24,ror#14 + and w17,w25,w24 + bic w19,w26,w24 + add w27,w27,w3 // h+=X[i] + orr w17,w17,w19 // Ch(e,f,g) + eor w19,w20,w21 // a^b, b^c in next round + eor w16,w16,w6,ror#11 // Sigma1(e) + ror w6,w20,#2 + add w27,w27,w17 // h+=Ch(e,f,g) + eor w17,w20,w20,ror#9 + add w27,w27,w16 // h+=Sigma1(e) + and w28,w28,w19 // (b^c)&=(a^b) + add w23,w23,w27 // d+=h + eor w28,w28,w21 // Maj(a,b,c) + eor w17,w6,w17,ror#13 // Sigma0(a) + add w27,w27,w28 // h+=Maj(a,b,c) + ldr w28,[x30],#4 // *K++, w19 in next round + //add w27,w27,w17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev w4,w4 // 1 +#endif + ldp w5,w6,[x1],#2*4 + add w27,w27,w17 // h+=Sigma0(a) + ror w16,w23,#6 + add w26,w26,w28 // h+=K[i] + eor w7,w23,w23,ror#14 + and w17,w24,w23 + bic w28,w25,w23 + add w26,w26,w4 // h+=X[i] + orr w17,w17,w28 // Ch(e,f,g) + eor w28,w27,w20 // a^b, b^c in next round + eor w16,w16,w7,ror#11 // Sigma1(e) + ror w7,w27,#2 + add w26,w26,w17 // h+=Ch(e,f,g) + eor w17,w27,w27,ror#9 + add w26,w26,w16 // h+=Sigma1(e) + and w19,w19,w28 // (b^c)&=(a^b) + add w22,w22,w26 // d+=h + eor w19,w19,w20 // Maj(a,b,c) + eor w17,w7,w17,ror#13 // Sigma0(a) + add w26,w26,w19 // h+=Maj(a,b,c) + ldr w19,[x30],#4 // *K++, w28 in next round + //add w26,w26,w17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev w5,w5 // 2 +#endif + add w26,w26,w17 // h+=Sigma0(a) + ror w16,w22,#6 + add w25,w25,w19 // h+=K[i] + eor w8,w22,w22,ror#14 + and w17,w23,w22 + bic w19,w24,w22 + add w25,w25,w5 // h+=X[i] + orr w17,w17,w19 // Ch(e,f,g) + eor w19,w26,w27 // a^b, b^c in next round + eor w16,w16,w8,ror#11 // Sigma1(e) + ror w8,w26,#2 + add w25,w25,w17 // h+=Ch(e,f,g) + eor w17,w26,w26,ror#9 + add w25,w25,w16 // h+=Sigma1(e) + and w28,w28,w19 // (b^c)&=(a^b) + add w21,w21,w25 // d+=h + eor w28,w28,w27 // Maj(a,b,c) + eor w17,w8,w17,ror#13 // Sigma0(a) + add w25,w25,w28 // h+=Maj(a,b,c) + ldr w28,[x30],#4 // *K++, w19 in next round + //add w25,w25,w17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev w6,w6 // 3 +#endif + ldp w7,w8,[x1],#2*4 + add w25,w25,w17 // h+=Sigma0(a) + ror w16,w21,#6 + add w24,w24,w28 // h+=K[i] + eor w9,w21,w21,ror#14 + and w17,w22,w21 + bic w28,w23,w21 + add w24,w24,w6 // h+=X[i] + orr w17,w17,w28 // Ch(e,f,g) + eor w28,w25,w26 // a^b, b^c in next round + eor w16,w16,w9,ror#11 // Sigma1(e) + ror w9,w25,#2 + add w24,w24,w17 // h+=Ch(e,f,g) + eor w17,w25,w25,ror#9 + add w24,w24,w16 // h+=Sigma1(e) + and w19,w19,w28 // (b^c)&=(a^b) + add w20,w20,w24 // d+=h + eor w19,w19,w26 // Maj(a,b,c) + eor w17,w9,w17,ror#13 // Sigma0(a) + add w24,w24,w19 // h+=Maj(a,b,c) + ldr w19,[x30],#4 // *K++, w28 in next round + //add w24,w24,w17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev w7,w7 // 4 +#endif + add w24,w24,w17 // h+=Sigma0(a) + ror w16,w20,#6 + add w23,w23,w19 // h+=K[i] + eor w10,w20,w20,ror#14 + and w17,w21,w20 + bic w19,w22,w20 + add w23,w23,w7 // h+=X[i] + orr w17,w17,w19 // Ch(e,f,g) + eor w19,w24,w25 // a^b, b^c in next round + eor w16,w16,w10,ror#11 // Sigma1(e) + ror w10,w24,#2 + add w23,w23,w17 // h+=Ch(e,f,g) + eor w17,w24,w24,ror#9 + add w23,w23,w16 // h+=Sigma1(e) + and w28,w28,w19 // (b^c)&=(a^b) + add w27,w27,w23 // d+=h + eor w28,w28,w25 // Maj(a,b,c) + eor w17,w10,w17,ror#13 // Sigma0(a) + add w23,w23,w28 // h+=Maj(a,b,c) + ldr w28,[x30],#4 // *K++, w19 in next round + //add w23,w23,w17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev w8,w8 // 5 +#endif + ldp w9,w10,[x1],#2*4 + add w23,w23,w17 // h+=Sigma0(a) + ror w16,w27,#6 + add w22,w22,w28 // h+=K[i] + eor w11,w27,w27,ror#14 + and w17,w20,w27 + bic w28,w21,w27 + add w22,w22,w8 // h+=X[i] + orr w17,w17,w28 // Ch(e,f,g) + eor w28,w23,w24 // a^b, b^c in next round + eor w16,w16,w11,ror#11 // Sigma1(e) + ror w11,w23,#2 + add w22,w22,w17 // h+=Ch(e,f,g) + eor w17,w23,w23,ror#9 + add w22,w22,w16 // h+=Sigma1(e) + and w19,w19,w28 // (b^c)&=(a^b) + add w26,w26,w22 // d+=h + eor w19,w19,w24 // Maj(a,b,c) + eor w17,w11,w17,ror#13 // Sigma0(a) + add w22,w22,w19 // h+=Maj(a,b,c) + ldr w19,[x30],#4 // *K++, w28 in next round + //add w22,w22,w17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev w9,w9 // 6 +#endif + add w22,w22,w17 // h+=Sigma0(a) + ror w16,w26,#6 + add w21,w21,w19 // h+=K[i] + eor w12,w26,w26,ror#14 + and w17,w27,w26 + bic w19,w20,w26 + add w21,w21,w9 // h+=X[i] + orr w17,w17,w19 // Ch(e,f,g) + eor w19,w22,w23 // a^b, b^c in next round + eor w16,w16,w12,ror#11 // Sigma1(e) + ror w12,w22,#2 + add w21,w21,w17 // h+=Ch(e,f,g) + eor w17,w22,w22,ror#9 + add w21,w21,w16 // h+=Sigma1(e) + and w28,w28,w19 // (b^c)&=(a^b) + add w25,w25,w21 // d+=h + eor w28,w28,w23 // Maj(a,b,c) + eor w17,w12,w17,ror#13 // Sigma0(a) + add w21,w21,w28 // h+=Maj(a,b,c) + ldr w28,[x30],#4 // *K++, w19 in next round + //add w21,w21,w17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev w10,w10 // 7 +#endif + ldp w11,w12,[x1],#2*4 + add w21,w21,w17 // h+=Sigma0(a) + ror w16,w25,#6 + add w20,w20,w28 // h+=K[i] + eor w13,w25,w25,ror#14 + and w17,w26,w25 + bic w28,w27,w25 + add w20,w20,w10 // h+=X[i] + orr w17,w17,w28 // Ch(e,f,g) + eor w28,w21,w22 // a^b, b^c in next round + eor w16,w16,w13,ror#11 // Sigma1(e) + ror w13,w21,#2 + add w20,w20,w17 // h+=Ch(e,f,g) + eor w17,w21,w21,ror#9 + add w20,w20,w16 // h+=Sigma1(e) + and w19,w19,w28 // (b^c)&=(a^b) + add w24,w24,w20 // d+=h + eor w19,w19,w22 // Maj(a,b,c) + eor w17,w13,w17,ror#13 // Sigma0(a) + add w20,w20,w19 // h+=Maj(a,b,c) + ldr w19,[x30],#4 // *K++, w28 in next round + //add w20,w20,w17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev w11,w11 // 8 +#endif + add w20,w20,w17 // h+=Sigma0(a) + ror w16,w24,#6 + add w27,w27,w19 // h+=K[i] + eor w14,w24,w24,ror#14 + and w17,w25,w24 + bic w19,w26,w24 + add w27,w27,w11 // h+=X[i] + orr w17,w17,w19 // Ch(e,f,g) + eor w19,w20,w21 // a^b, b^c in next round + eor w16,w16,w14,ror#11 // Sigma1(e) + ror w14,w20,#2 + add w27,w27,w17 // h+=Ch(e,f,g) + eor w17,w20,w20,ror#9 + add w27,w27,w16 // h+=Sigma1(e) + and w28,w28,w19 // (b^c)&=(a^b) + add w23,w23,w27 // d+=h + eor w28,w28,w21 // Maj(a,b,c) + eor w17,w14,w17,ror#13 // Sigma0(a) + add w27,w27,w28 // h+=Maj(a,b,c) + ldr w28,[x30],#4 // *K++, w19 in next round + //add w27,w27,w17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev w12,w12 // 9 +#endif + ldp w13,w14,[x1],#2*4 + add w27,w27,w17 // h+=Sigma0(a) + ror w16,w23,#6 + add w26,w26,w28 // h+=K[i] + eor w15,w23,w23,ror#14 + and w17,w24,w23 + bic w28,w25,w23 + add w26,w26,w12 // h+=X[i] + orr w17,w17,w28 // Ch(e,f,g) + eor w28,w27,w20 // a^b, b^c in next round + eor w16,w16,w15,ror#11 // Sigma1(e) + ror w15,w27,#2 + add w26,w26,w17 // h+=Ch(e,f,g) + eor w17,w27,w27,ror#9 + add w26,w26,w16 // h+=Sigma1(e) + and w19,w19,w28 // (b^c)&=(a^b) + add w22,w22,w26 // d+=h + eor w19,w19,w20 // Maj(a,b,c) + eor w17,w15,w17,ror#13 // Sigma0(a) + add w26,w26,w19 // h+=Maj(a,b,c) + ldr w19,[x30],#4 // *K++, w28 in next round + //add w26,w26,w17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev w13,w13 // 10 +#endif + add w26,w26,w17 // h+=Sigma0(a) + ror w16,w22,#6 + add w25,w25,w19 // h+=K[i] + eor w0,w22,w22,ror#14 + and w17,w23,w22 + bic w19,w24,w22 + add w25,w25,w13 // h+=X[i] + orr w17,w17,w19 // Ch(e,f,g) + eor w19,w26,w27 // a^b, b^c in next round + eor w16,w16,w0,ror#11 // Sigma1(e) + ror w0,w26,#2 + add w25,w25,w17 // h+=Ch(e,f,g) + eor w17,w26,w26,ror#9 + add w25,w25,w16 // h+=Sigma1(e) + and w28,w28,w19 // (b^c)&=(a^b) + add w21,w21,w25 // d+=h + eor w28,w28,w27 // Maj(a,b,c) + eor w17,w0,w17,ror#13 // Sigma0(a) + add w25,w25,w28 // h+=Maj(a,b,c) + ldr w28,[x30],#4 // *K++, w19 in next round + //add w25,w25,w17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev w14,w14 // 11 +#endif + ldp w15,w0,[x1],#2*4 + add w25,w25,w17 // h+=Sigma0(a) + str w6,[sp,#12] + ror w16,w21,#6 + add w24,w24,w28 // h+=K[i] + eor w6,w21,w21,ror#14 + and w17,w22,w21 + bic w28,w23,w21 + add w24,w24,w14 // h+=X[i] + orr w17,w17,w28 // Ch(e,f,g) + eor w28,w25,w26 // a^b, b^c in next round + eor w16,w16,w6,ror#11 // Sigma1(e) + ror w6,w25,#2 + add w24,w24,w17 // h+=Ch(e,f,g) + eor w17,w25,w25,ror#9 + add w24,w24,w16 // h+=Sigma1(e) + and w19,w19,w28 // (b^c)&=(a^b) + add w20,w20,w24 // d+=h + eor w19,w19,w26 // Maj(a,b,c) + eor w17,w6,w17,ror#13 // Sigma0(a) + add w24,w24,w19 // h+=Maj(a,b,c) + ldr w19,[x30],#4 // *K++, w28 in next round + //add w24,w24,w17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev w15,w15 // 12 +#endif + add w24,w24,w17 // h+=Sigma0(a) + str w7,[sp,#0] + ror w16,w20,#6 + add w23,w23,w19 // h+=K[i] + eor w7,w20,w20,ror#14 + and w17,w21,w20 + bic w19,w22,w20 + add w23,w23,w15 // h+=X[i] + orr w17,w17,w19 // Ch(e,f,g) + eor w19,w24,w25 // a^b, b^c in next round + eor w16,w16,w7,ror#11 // Sigma1(e) + ror w7,w24,#2 + add w23,w23,w17 // h+=Ch(e,f,g) + eor w17,w24,w24,ror#9 + add w23,w23,w16 // h+=Sigma1(e) + and w28,w28,w19 // (b^c)&=(a^b) + add w27,w27,w23 // d+=h + eor w28,w28,w25 // Maj(a,b,c) + eor w17,w7,w17,ror#13 // Sigma0(a) + add w23,w23,w28 // h+=Maj(a,b,c) + ldr w28,[x30],#4 // *K++, w19 in next round + //add w23,w23,w17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev w0,w0 // 13 +#endif + ldp w1,w2,[x1] + add w23,w23,w17 // h+=Sigma0(a) + str w8,[sp,#4] + ror w16,w27,#6 + add w22,w22,w28 // h+=K[i] + eor w8,w27,w27,ror#14 + and w17,w20,w27 + bic w28,w21,w27 + add w22,w22,w0 // h+=X[i] + orr w17,w17,w28 // Ch(e,f,g) + eor w28,w23,w24 // a^b, b^c in next round + eor w16,w16,w8,ror#11 // Sigma1(e) + ror w8,w23,#2 + add w22,w22,w17 // h+=Ch(e,f,g) + eor w17,w23,w23,ror#9 + add w22,w22,w16 // h+=Sigma1(e) + and w19,w19,w28 // (b^c)&=(a^b) + add w26,w26,w22 // d+=h + eor w19,w19,w24 // Maj(a,b,c) + eor w17,w8,w17,ror#13 // Sigma0(a) + add w22,w22,w19 // h+=Maj(a,b,c) + ldr w19,[x30],#4 // *K++, w28 in next round + //add w22,w22,w17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev w1,w1 // 14 +#endif + ldr w6,[sp,#12] + add w22,w22,w17 // h+=Sigma0(a) + str w9,[sp,#8] + ror w16,w26,#6 + add w21,w21,w19 // h+=K[i] + eor w9,w26,w26,ror#14 + and w17,w27,w26 + bic w19,w20,w26 + add w21,w21,w1 // h+=X[i] + orr w17,w17,w19 // Ch(e,f,g) + eor w19,w22,w23 // a^b, b^c in next round + eor w16,w16,w9,ror#11 // Sigma1(e) + ror w9,w22,#2 + add w21,w21,w17 // h+=Ch(e,f,g) + eor w17,w22,w22,ror#9 + add w21,w21,w16 // h+=Sigma1(e) + and w28,w28,w19 // (b^c)&=(a^b) + add w25,w25,w21 // d+=h + eor w28,w28,w23 // Maj(a,b,c) + eor w17,w9,w17,ror#13 // Sigma0(a) + add w21,w21,w28 // h+=Maj(a,b,c) + ldr w28,[x30],#4 // *K++, w19 in next round + //add w21,w21,w17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev w2,w2 // 15 +#endif + ldr w7,[sp,#0] + add w21,w21,w17 // h+=Sigma0(a) + str w10,[sp,#12] + ror w16,w25,#6 + add w20,w20,w28 // h+=K[i] + ror w9,w4,#7 + and w17,w26,w25 + ror w8,w1,#17 + bic w28,w27,w25 + ror w10,w21,#2 + add w20,w20,w2 // h+=X[i] + eor w16,w16,w25,ror#11 + eor w9,w9,w4,ror#18 + orr w17,w17,w28 // Ch(e,f,g) + eor w28,w21,w22 // a^b, b^c in next round + eor w16,w16,w25,ror#25 // Sigma1(e) + eor w10,w10,w21,ror#13 + add w20,w20,w17 // h+=Ch(e,f,g) + and w19,w19,w28 // (b^c)&=(a^b) + eor w8,w8,w1,ror#19 + eor w9,w9,w4,lsr#3 // sigma0(X[i+1]) + add w20,w20,w16 // h+=Sigma1(e) + eor w19,w19,w22 // Maj(a,b,c) + eor w17,w10,w21,ror#22 // Sigma0(a) + eor w8,w8,w1,lsr#10 // sigma1(X[i+14]) + add w3,w3,w12 + add w24,w24,w20 // d+=h + add w20,w20,w19 // h+=Maj(a,b,c) + ldr w19,[x30],#4 // *K++, w28 in next round + add w3,w3,w9 + add w20,w20,w17 // h+=Sigma0(a) + add w3,w3,w8 +Loop_16_xx: + ldr w8,[sp,#4] + str w11,[sp,#0] + ror w16,w24,#6 + add w27,w27,w19 // h+=K[i] + ror w10,w5,#7 + and w17,w25,w24 + ror w9,w2,#17 + bic w19,w26,w24 + ror w11,w20,#2 + add w27,w27,w3 // h+=X[i] + eor w16,w16,w24,ror#11 + eor w10,w10,w5,ror#18 + orr w17,w17,w19 // Ch(e,f,g) + eor w19,w20,w21 // a^b, b^c in next round + eor w16,w16,w24,ror#25 // Sigma1(e) + eor w11,w11,w20,ror#13 + add w27,w27,w17 // h+=Ch(e,f,g) + and w28,w28,w19 // (b^c)&=(a^b) + eor w9,w9,w2,ror#19 + eor w10,w10,w5,lsr#3 // sigma0(X[i+1]) + add w27,w27,w16 // h+=Sigma1(e) + eor w28,w28,w21 // Maj(a,b,c) + eor w17,w11,w20,ror#22 // Sigma0(a) + eor w9,w9,w2,lsr#10 // sigma1(X[i+14]) + add w4,w4,w13 + add w23,w23,w27 // d+=h + add w27,w27,w28 // h+=Maj(a,b,c) + ldr w28,[x30],#4 // *K++, w19 in next round + add w4,w4,w10 + add w27,w27,w17 // h+=Sigma0(a) + add w4,w4,w9 + ldr w9,[sp,#8] + str w12,[sp,#4] + ror w16,w23,#6 + add w26,w26,w28 // h+=K[i] + ror w11,w6,#7 + and w17,w24,w23 + ror w10,w3,#17 + bic w28,w25,w23 + ror w12,w27,#2 + add w26,w26,w4 // h+=X[i] + eor w16,w16,w23,ror#11 + eor w11,w11,w6,ror#18 + orr w17,w17,w28 // Ch(e,f,g) + eor w28,w27,w20 // a^b, b^c in next round + eor w16,w16,w23,ror#25 // Sigma1(e) + eor w12,w12,w27,ror#13 + add w26,w26,w17 // h+=Ch(e,f,g) + and w19,w19,w28 // (b^c)&=(a^b) + eor w10,w10,w3,ror#19 + eor w11,w11,w6,lsr#3 // sigma0(X[i+1]) + add w26,w26,w16 // h+=Sigma1(e) + eor w19,w19,w20 // Maj(a,b,c) + eor w17,w12,w27,ror#22 // Sigma0(a) + eor w10,w10,w3,lsr#10 // sigma1(X[i+14]) + add w5,w5,w14 + add w22,w22,w26 // d+=h + add w26,w26,w19 // h+=Maj(a,b,c) + ldr w19,[x30],#4 // *K++, w28 in next round + add w5,w5,w11 + add w26,w26,w17 // h+=Sigma0(a) + add w5,w5,w10 + ldr w10,[sp,#12] + str w13,[sp,#8] + ror w16,w22,#6 + add w25,w25,w19 // h+=K[i] + ror w12,w7,#7 + and w17,w23,w22 + ror w11,w4,#17 + bic w19,w24,w22 + ror w13,w26,#2 + add w25,w25,w5 // h+=X[i] + eor w16,w16,w22,ror#11 + eor w12,w12,w7,ror#18 + orr w17,w17,w19 // Ch(e,f,g) + eor w19,w26,w27 // a^b, b^c in next round + eor w16,w16,w22,ror#25 // Sigma1(e) + eor w13,w13,w26,ror#13 + add w25,w25,w17 // h+=Ch(e,f,g) + and w28,w28,w19 // (b^c)&=(a^b) + eor w11,w11,w4,ror#19 + eor w12,w12,w7,lsr#3 // sigma0(X[i+1]) + add w25,w25,w16 // h+=Sigma1(e) + eor w28,w28,w27 // Maj(a,b,c) + eor w17,w13,w26,ror#22 // Sigma0(a) + eor w11,w11,w4,lsr#10 // sigma1(X[i+14]) + add w6,w6,w15 + add w21,w21,w25 // d+=h + add w25,w25,w28 // h+=Maj(a,b,c) + ldr w28,[x30],#4 // *K++, w19 in next round + add w6,w6,w12 + add w25,w25,w17 // h+=Sigma0(a) + add w6,w6,w11 + ldr w11,[sp,#0] + str w14,[sp,#12] + ror w16,w21,#6 + add w24,w24,w28 // h+=K[i] + ror w13,w8,#7 + and w17,w22,w21 + ror w12,w5,#17 + bic w28,w23,w21 + ror w14,w25,#2 + add w24,w24,w6 // h+=X[i] + eor w16,w16,w21,ror#11 + eor w13,w13,w8,ror#18 + orr w17,w17,w28 // Ch(e,f,g) + eor w28,w25,w26 // a^b, b^c in next round + eor w16,w16,w21,ror#25 // Sigma1(e) + eor w14,w14,w25,ror#13 + add w24,w24,w17 // h+=Ch(e,f,g) + and w19,w19,w28 // (b^c)&=(a^b) + eor w12,w12,w5,ror#19 + eor w13,w13,w8,lsr#3 // sigma0(X[i+1]) + add w24,w24,w16 // h+=Sigma1(e) + eor w19,w19,w26 // Maj(a,b,c) + eor w17,w14,w25,ror#22 // Sigma0(a) + eor w12,w12,w5,lsr#10 // sigma1(X[i+14]) + add w7,w7,w0 + add w20,w20,w24 // d+=h + add w24,w24,w19 // h+=Maj(a,b,c) + ldr w19,[x30],#4 // *K++, w28 in next round + add w7,w7,w13 + add w24,w24,w17 // h+=Sigma0(a) + add w7,w7,w12 + ldr w12,[sp,#4] + str w15,[sp,#0] + ror w16,w20,#6 + add w23,w23,w19 // h+=K[i] + ror w14,w9,#7 + and w17,w21,w20 + ror w13,w6,#17 + bic w19,w22,w20 + ror w15,w24,#2 + add w23,w23,w7 // h+=X[i] + eor w16,w16,w20,ror#11 + eor w14,w14,w9,ror#18 + orr w17,w17,w19 // Ch(e,f,g) + eor w19,w24,w25 // a^b, b^c in next round + eor w16,w16,w20,ror#25 // Sigma1(e) + eor w15,w15,w24,ror#13 + add w23,w23,w17 // h+=Ch(e,f,g) + and w28,w28,w19 // (b^c)&=(a^b) + eor w13,w13,w6,ror#19 + eor w14,w14,w9,lsr#3 // sigma0(X[i+1]) + add w23,w23,w16 // h+=Sigma1(e) + eor w28,w28,w25 // Maj(a,b,c) + eor w17,w15,w24,ror#22 // Sigma0(a) + eor w13,w13,w6,lsr#10 // sigma1(X[i+14]) + add w8,w8,w1 + add w27,w27,w23 // d+=h + add w23,w23,w28 // h+=Maj(a,b,c) + ldr w28,[x30],#4 // *K++, w19 in next round + add w8,w8,w14 + add w23,w23,w17 // h+=Sigma0(a) + add w8,w8,w13 + ldr w13,[sp,#8] + str w0,[sp,#4] + ror w16,w27,#6 + add w22,w22,w28 // h+=K[i] + ror w15,w10,#7 + and w17,w20,w27 + ror w14,w7,#17 + bic w28,w21,w27 + ror w0,w23,#2 + add w22,w22,w8 // h+=X[i] + eor w16,w16,w27,ror#11 + eor w15,w15,w10,ror#18 + orr w17,w17,w28 // Ch(e,f,g) + eor w28,w23,w24 // a^b, b^c in next round + eor w16,w16,w27,ror#25 // Sigma1(e) + eor w0,w0,w23,ror#13 + add w22,w22,w17 // h+=Ch(e,f,g) + and w19,w19,w28 // (b^c)&=(a^b) + eor w14,w14,w7,ror#19 + eor w15,w15,w10,lsr#3 // sigma0(X[i+1]) + add w22,w22,w16 // h+=Sigma1(e) + eor w19,w19,w24 // Maj(a,b,c) + eor w17,w0,w23,ror#22 // Sigma0(a) + eor w14,w14,w7,lsr#10 // sigma1(X[i+14]) + add w9,w9,w2 + add w26,w26,w22 // d+=h + add w22,w22,w19 // h+=Maj(a,b,c) + ldr w19,[x30],#4 // *K++, w28 in next round + add w9,w9,w15 + add w22,w22,w17 // h+=Sigma0(a) + add w9,w9,w14 + ldr w14,[sp,#12] + str w1,[sp,#8] + ror w16,w26,#6 + add w21,w21,w19 // h+=K[i] + ror w0,w11,#7 + and w17,w27,w26 + ror w15,w8,#17 + bic w19,w20,w26 + ror w1,w22,#2 + add w21,w21,w9 // h+=X[i] + eor w16,w16,w26,ror#11 + eor w0,w0,w11,ror#18 + orr w17,w17,w19 // Ch(e,f,g) + eor w19,w22,w23 // a^b, b^c in next round + eor w16,w16,w26,ror#25 // Sigma1(e) + eor w1,w1,w22,ror#13 + add w21,w21,w17 // h+=Ch(e,f,g) + and w28,w28,w19 // (b^c)&=(a^b) + eor w15,w15,w8,ror#19 + eor w0,w0,w11,lsr#3 // sigma0(X[i+1]) + add w21,w21,w16 // h+=Sigma1(e) + eor w28,w28,w23 // Maj(a,b,c) + eor w17,w1,w22,ror#22 // Sigma0(a) + eor w15,w15,w8,lsr#10 // sigma1(X[i+14]) + add w10,w10,w3 + add w25,w25,w21 // d+=h + add w21,w21,w28 // h+=Maj(a,b,c) + ldr w28,[x30],#4 // *K++, w19 in next round + add w10,w10,w0 + add w21,w21,w17 // h+=Sigma0(a) + add w10,w10,w15 + ldr w15,[sp,#0] + str w2,[sp,#12] + ror w16,w25,#6 + add w20,w20,w28 // h+=K[i] + ror w1,w12,#7 + and w17,w26,w25 + ror w0,w9,#17 + bic w28,w27,w25 + ror w2,w21,#2 + add w20,w20,w10 // h+=X[i] + eor w16,w16,w25,ror#11 + eor w1,w1,w12,ror#18 + orr w17,w17,w28 // Ch(e,f,g) + eor w28,w21,w22 // a^b, b^c in next round + eor w16,w16,w25,ror#25 // Sigma1(e) + eor w2,w2,w21,ror#13 + add w20,w20,w17 // h+=Ch(e,f,g) + and w19,w19,w28 // (b^c)&=(a^b) + eor w0,w0,w9,ror#19 + eor w1,w1,w12,lsr#3 // sigma0(X[i+1]) + add w20,w20,w16 // h+=Sigma1(e) + eor w19,w19,w22 // Maj(a,b,c) + eor w17,w2,w21,ror#22 // Sigma0(a) + eor w0,w0,w9,lsr#10 // sigma1(X[i+14]) + add w11,w11,w4 + add w24,w24,w20 // d+=h + add w20,w20,w19 // h+=Maj(a,b,c) + ldr w19,[x30],#4 // *K++, w28 in next round + add w11,w11,w1 + add w20,w20,w17 // h+=Sigma0(a) + add w11,w11,w0 + ldr w0,[sp,#4] + str w3,[sp,#0] + ror w16,w24,#6 + add w27,w27,w19 // h+=K[i] + ror w2,w13,#7 + and w17,w25,w24 + ror w1,w10,#17 + bic w19,w26,w24 + ror w3,w20,#2 + add w27,w27,w11 // h+=X[i] + eor w16,w16,w24,ror#11 + eor w2,w2,w13,ror#18 + orr w17,w17,w19 // Ch(e,f,g) + eor w19,w20,w21 // a^b, b^c in next round + eor w16,w16,w24,ror#25 // Sigma1(e) + eor w3,w3,w20,ror#13 + add w27,w27,w17 // h+=Ch(e,f,g) + and w28,w28,w19 // (b^c)&=(a^b) + eor w1,w1,w10,ror#19 + eor w2,w2,w13,lsr#3 // sigma0(X[i+1]) + add w27,w27,w16 // h+=Sigma1(e) + eor w28,w28,w21 // Maj(a,b,c) + eor w17,w3,w20,ror#22 // Sigma0(a) + eor w1,w1,w10,lsr#10 // sigma1(X[i+14]) + add w12,w12,w5 + add w23,w23,w27 // d+=h + add w27,w27,w28 // h+=Maj(a,b,c) + ldr w28,[x30],#4 // *K++, w19 in next round + add w12,w12,w2 + add w27,w27,w17 // h+=Sigma0(a) + add w12,w12,w1 + ldr w1,[sp,#8] + str w4,[sp,#4] + ror w16,w23,#6 + add w26,w26,w28 // h+=K[i] + ror w3,w14,#7 + and w17,w24,w23 + ror w2,w11,#17 + bic w28,w25,w23 + ror w4,w27,#2 + add w26,w26,w12 // h+=X[i] + eor w16,w16,w23,ror#11 + eor w3,w3,w14,ror#18 + orr w17,w17,w28 // Ch(e,f,g) + eor w28,w27,w20 // a^b, b^c in next round + eor w16,w16,w23,ror#25 // Sigma1(e) + eor w4,w4,w27,ror#13 + add w26,w26,w17 // h+=Ch(e,f,g) + and w19,w19,w28 // (b^c)&=(a^b) + eor w2,w2,w11,ror#19 + eor w3,w3,w14,lsr#3 // sigma0(X[i+1]) + add w26,w26,w16 // h+=Sigma1(e) + eor w19,w19,w20 // Maj(a,b,c) + eor w17,w4,w27,ror#22 // Sigma0(a) + eor w2,w2,w11,lsr#10 // sigma1(X[i+14]) + add w13,w13,w6 + add w22,w22,w26 // d+=h + add w26,w26,w19 // h+=Maj(a,b,c) + ldr w19,[x30],#4 // *K++, w28 in next round + add w13,w13,w3 + add w26,w26,w17 // h+=Sigma0(a) + add w13,w13,w2 + ldr w2,[sp,#12] + str w5,[sp,#8] + ror w16,w22,#6 + add w25,w25,w19 // h+=K[i] + ror w4,w15,#7 + and w17,w23,w22 + ror w3,w12,#17 + bic w19,w24,w22 + ror w5,w26,#2 + add w25,w25,w13 // h+=X[i] + eor w16,w16,w22,ror#11 + eor w4,w4,w15,ror#18 + orr w17,w17,w19 // Ch(e,f,g) + eor w19,w26,w27 // a^b, b^c in next round + eor w16,w16,w22,ror#25 // Sigma1(e) + eor w5,w5,w26,ror#13 + add w25,w25,w17 // h+=Ch(e,f,g) + and w28,w28,w19 // (b^c)&=(a^b) + eor w3,w3,w12,ror#19 + eor w4,w4,w15,lsr#3 // sigma0(X[i+1]) + add w25,w25,w16 // h+=Sigma1(e) + eor w28,w28,w27 // Maj(a,b,c) + eor w17,w5,w26,ror#22 // Sigma0(a) + eor w3,w3,w12,lsr#10 // sigma1(X[i+14]) + add w14,w14,w7 + add w21,w21,w25 // d+=h + add w25,w25,w28 // h+=Maj(a,b,c) + ldr w28,[x30],#4 // *K++, w19 in next round + add w14,w14,w4 + add w25,w25,w17 // h+=Sigma0(a) + add w14,w14,w3 + ldr w3,[sp,#0] + str w6,[sp,#12] + ror w16,w21,#6 + add w24,w24,w28 // h+=K[i] + ror w5,w0,#7 + and w17,w22,w21 + ror w4,w13,#17 + bic w28,w23,w21 + ror w6,w25,#2 + add w24,w24,w14 // h+=X[i] + eor w16,w16,w21,ror#11 + eor w5,w5,w0,ror#18 + orr w17,w17,w28 // Ch(e,f,g) + eor w28,w25,w26 // a^b, b^c in next round + eor w16,w16,w21,ror#25 // Sigma1(e) + eor w6,w6,w25,ror#13 + add w24,w24,w17 // h+=Ch(e,f,g) + and w19,w19,w28 // (b^c)&=(a^b) + eor w4,w4,w13,ror#19 + eor w5,w5,w0,lsr#3 // sigma0(X[i+1]) + add w24,w24,w16 // h+=Sigma1(e) + eor w19,w19,w26 // Maj(a,b,c) + eor w17,w6,w25,ror#22 // Sigma0(a) + eor w4,w4,w13,lsr#10 // sigma1(X[i+14]) + add w15,w15,w8 + add w20,w20,w24 // d+=h + add w24,w24,w19 // h+=Maj(a,b,c) + ldr w19,[x30],#4 // *K++, w28 in next round + add w15,w15,w5 + add w24,w24,w17 // h+=Sigma0(a) + add w15,w15,w4 + ldr w4,[sp,#4] + str w7,[sp,#0] + ror w16,w20,#6 + add w23,w23,w19 // h+=K[i] + ror w6,w1,#7 + and w17,w21,w20 + ror w5,w14,#17 + bic w19,w22,w20 + ror w7,w24,#2 + add w23,w23,w15 // h+=X[i] + eor w16,w16,w20,ror#11 + eor w6,w6,w1,ror#18 + orr w17,w17,w19 // Ch(e,f,g) + eor w19,w24,w25 // a^b, b^c in next round + eor w16,w16,w20,ror#25 // Sigma1(e) + eor w7,w7,w24,ror#13 + add w23,w23,w17 // h+=Ch(e,f,g) + and w28,w28,w19 // (b^c)&=(a^b) + eor w5,w5,w14,ror#19 + eor w6,w6,w1,lsr#3 // sigma0(X[i+1]) + add w23,w23,w16 // h+=Sigma1(e) + eor w28,w28,w25 // Maj(a,b,c) + eor w17,w7,w24,ror#22 // Sigma0(a) + eor w5,w5,w14,lsr#10 // sigma1(X[i+14]) + add w0,w0,w9 + add w27,w27,w23 // d+=h + add w23,w23,w28 // h+=Maj(a,b,c) + ldr w28,[x30],#4 // *K++, w19 in next round + add w0,w0,w6 + add w23,w23,w17 // h+=Sigma0(a) + add w0,w0,w5 + ldr w5,[sp,#8] + str w8,[sp,#4] + ror w16,w27,#6 + add w22,w22,w28 // h+=K[i] + ror w7,w2,#7 + and w17,w20,w27 + ror w6,w15,#17 + bic w28,w21,w27 + ror w8,w23,#2 + add w22,w22,w0 // h+=X[i] + eor w16,w16,w27,ror#11 + eor w7,w7,w2,ror#18 + orr w17,w17,w28 // Ch(e,f,g) + eor w28,w23,w24 // a^b, b^c in next round + eor w16,w16,w27,ror#25 // Sigma1(e) + eor w8,w8,w23,ror#13 + add w22,w22,w17 // h+=Ch(e,f,g) + and w19,w19,w28 // (b^c)&=(a^b) + eor w6,w6,w15,ror#19 + eor w7,w7,w2,lsr#3 // sigma0(X[i+1]) + add w22,w22,w16 // h+=Sigma1(e) + eor w19,w19,w24 // Maj(a,b,c) + eor w17,w8,w23,ror#22 // Sigma0(a) + eor w6,w6,w15,lsr#10 // sigma1(X[i+14]) + add w1,w1,w10 + add w26,w26,w22 // d+=h + add w22,w22,w19 // h+=Maj(a,b,c) + ldr w19,[x30],#4 // *K++, w28 in next round + add w1,w1,w7 + add w22,w22,w17 // h+=Sigma0(a) + add w1,w1,w6 + ldr w6,[sp,#12] + str w9,[sp,#8] + ror w16,w26,#6 + add w21,w21,w19 // h+=K[i] + ror w8,w3,#7 + and w17,w27,w26 + ror w7,w0,#17 + bic w19,w20,w26 + ror w9,w22,#2 + add w21,w21,w1 // h+=X[i] + eor w16,w16,w26,ror#11 + eor w8,w8,w3,ror#18 + orr w17,w17,w19 // Ch(e,f,g) + eor w19,w22,w23 // a^b, b^c in next round + eor w16,w16,w26,ror#25 // Sigma1(e) + eor w9,w9,w22,ror#13 + add w21,w21,w17 // h+=Ch(e,f,g) + and w28,w28,w19 // (b^c)&=(a^b) + eor w7,w7,w0,ror#19 + eor w8,w8,w3,lsr#3 // sigma0(X[i+1]) + add w21,w21,w16 // h+=Sigma1(e) + eor w28,w28,w23 // Maj(a,b,c) + eor w17,w9,w22,ror#22 // Sigma0(a) + eor w7,w7,w0,lsr#10 // sigma1(X[i+14]) + add w2,w2,w11 + add w25,w25,w21 // d+=h + add w21,w21,w28 // h+=Maj(a,b,c) + ldr w28,[x30],#4 // *K++, w19 in next round + add w2,w2,w8 + add w21,w21,w17 // h+=Sigma0(a) + add w2,w2,w7 + ldr w7,[sp,#0] + str w10,[sp,#12] + ror w16,w25,#6 + add w20,w20,w28 // h+=K[i] + ror w9,w4,#7 + and w17,w26,w25 + ror w8,w1,#17 + bic w28,w27,w25 + ror w10,w21,#2 + add w20,w20,w2 // h+=X[i] + eor w16,w16,w25,ror#11 + eor w9,w9,w4,ror#18 + orr w17,w17,w28 // Ch(e,f,g) + eor w28,w21,w22 // a^b, b^c in next round + eor w16,w16,w25,ror#25 // Sigma1(e) + eor w10,w10,w21,ror#13 + add w20,w20,w17 // h+=Ch(e,f,g) + and w19,w19,w28 // (b^c)&=(a^b) + eor w8,w8,w1,ror#19 + eor w9,w9,w4,lsr#3 // sigma0(X[i+1]) + add w20,w20,w16 // h+=Sigma1(e) + eor w19,w19,w22 // Maj(a,b,c) + eor w17,w10,w21,ror#22 // Sigma0(a) + eor w8,w8,w1,lsr#10 // sigma1(X[i+14]) + add w3,w3,w12 + add w24,w24,w20 // d+=h + add w20,w20,w19 // h+=Maj(a,b,c) + ldr w19,[x30],#4 // *K++, w28 in next round + add w3,w3,w9 + add w20,w20,w17 // h+=Sigma0(a) + add w3,w3,w8 + cbnz w19,Loop_16_xx + + ldp x0,x2,[x29,#96] + ldr x1,[x29,#112] + sub x30,x30,#260 // rewind + + ldp w3,w4,[x0] + ldp w5,w6,[x0,#2*4] + add x1,x1,#14*4 // advance input pointer + ldp w7,w8,[x0,#4*4] + add w20,w20,w3 + ldp w9,w10,[x0,#6*4] + add w21,w21,w4 + add w22,w22,w5 + add w23,w23,w6 + stp w20,w21,[x0] + add w24,w24,w7 + add w25,w25,w8 + stp w22,w23,[x0,#2*4] + add w26,w26,w9 + add w27,w27,w10 + cmp x1,x2 + stp w24,w25,[x0,#4*4] + stp w26,w27,[x0,#6*4] + b.ne Loop + + ldp x19,x20,[x29,#16] + add sp,sp,#4*4 + ldp x21,x22,[x29,#32] + ldp x23,x24,[x29,#48] + ldp x25,x26,[x29,#64] + ldp x27,x28,[x29,#80] + ldp x29,x30,[sp],#128 +.long 0xd50323bf // autiasp + ret + + +.align 6 + +LK256: +.long 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5 +.long 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5 +.long 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3 +.long 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174 +.long 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc +.long 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da +.long 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7 +.long 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967 +.long 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13 +.long 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85 +.long 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3 +.long 0xd192e819,0xd6990624,0xf40e3585,0x106aa070 +.long 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5 +.long 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3 +.long 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208 +.long 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 +.long 0 //terminator + +#ifndef __KERNEL__ +.align 3 +LOPENSSL_armcap_P: +# ifdef __ILP32__ +.long _OPENSSL_armcap_P-. +# else +.quad ARMV7_NEON +# endif +#endif +.byte 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 2 +.align 2 +#ifndef __KERNEL__ + +.align 6 +sha256_block_armv8: +Lv8_entry: + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + + ld1 {v0.4s,v1.4s},[x0] + adr x3,LK256 + +Loop_hw: + ld1 {v4.16b,v5.16b,v6.16b,v7.16b},[x1],#64 + sub x2,x2,#1 + ld1 {v16.4s},[x3],#16 + rev32 v4.16b,v4.16b + rev32 v5.16b,v5.16b + rev32 v6.16b,v6.16b + rev32 v7.16b,v7.16b + orr v18.16b,v0.16b,v0.16b // offload + orr v19.16b,v1.16b,v1.16b + ld1 {v17.4s},[x3],#16 + add v16.4s,v16.4s,v4.4s +.long 0x5e2828a4 //sha256su0 v4.16b,v5.16b + orr v2.16b,v0.16b,v0.16b +.long 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s +.long 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s +.long 0x5e0760c4 //sha256su1 v4.16b,v6.16b,v7.16b + ld1 {v16.4s},[x3],#16 + add v17.4s,v17.4s,v5.4s +.long 0x5e2828c5 //sha256su0 v5.16b,v6.16b + orr v2.16b,v0.16b,v0.16b +.long 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s +.long 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s +.long 0x5e0460e5 //sha256su1 v5.16b,v7.16b,v4.16b + ld1 {v17.4s},[x3],#16 + add v16.4s,v16.4s,v6.4s +.long 0x5e2828e6 //sha256su0 v6.16b,v7.16b + orr v2.16b,v0.16b,v0.16b +.long 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s +.long 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s +.long 0x5e056086 //sha256su1 v6.16b,v4.16b,v5.16b + ld1 {v16.4s},[x3],#16 + add v17.4s,v17.4s,v7.4s +.long 0x5e282887 //sha256su0 v7.16b,v4.16b + orr v2.16b,v0.16b,v0.16b +.long 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s +.long 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s +.long 0x5e0660a7 //sha256su1 v7.16b,v5.16b,v6.16b + ld1 {v17.4s},[x3],#16 + add v16.4s,v16.4s,v4.4s +.long 0x5e2828a4 //sha256su0 v4.16b,v5.16b + orr v2.16b,v0.16b,v0.16b +.long 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s +.long 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s +.long 0x5e0760c4 //sha256su1 v4.16b,v6.16b,v7.16b + ld1 {v16.4s},[x3],#16 + add v17.4s,v17.4s,v5.4s +.long 0x5e2828c5 //sha256su0 v5.16b,v6.16b + orr v2.16b,v0.16b,v0.16b +.long 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s +.long 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s +.long 0x5e0460e5 //sha256su1 v5.16b,v7.16b,v4.16b + ld1 {v17.4s},[x3],#16 + add v16.4s,v16.4s,v6.4s +.long 0x5e2828e6 //sha256su0 v6.16b,v7.16b + orr v2.16b,v0.16b,v0.16b +.long 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s +.long 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s +.long 0x5e056086 //sha256su1 v6.16b,v4.16b,v5.16b + ld1 {v16.4s},[x3],#16 + add v17.4s,v17.4s,v7.4s +.long 0x5e282887 //sha256su0 v7.16b,v4.16b + orr v2.16b,v0.16b,v0.16b +.long 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s +.long 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s +.long 0x5e0660a7 //sha256su1 v7.16b,v5.16b,v6.16b + ld1 {v17.4s},[x3],#16 + add v16.4s,v16.4s,v4.4s +.long 0x5e2828a4 //sha256su0 v4.16b,v5.16b + orr v2.16b,v0.16b,v0.16b +.long 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s +.long 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s +.long 0x5e0760c4 //sha256su1 v4.16b,v6.16b,v7.16b + ld1 {v16.4s},[x3],#16 + add v17.4s,v17.4s,v5.4s +.long 0x5e2828c5 //sha256su0 v5.16b,v6.16b + orr v2.16b,v0.16b,v0.16b +.long 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s +.long 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s +.long 0x5e0460e5 //sha256su1 v5.16b,v7.16b,v4.16b + ld1 {v17.4s},[x3],#16 + add v16.4s,v16.4s,v6.4s +.long 0x5e2828e6 //sha256su0 v6.16b,v7.16b + orr v2.16b,v0.16b,v0.16b +.long 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s +.long 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s +.long 0x5e056086 //sha256su1 v6.16b,v4.16b,v5.16b + ld1 {v16.4s},[x3],#16 + add v17.4s,v17.4s,v7.4s +.long 0x5e282887 //sha256su0 v7.16b,v4.16b + orr v2.16b,v0.16b,v0.16b +.long 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s +.long 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s +.long 0x5e0660a7 //sha256su1 v7.16b,v5.16b,v6.16b + ld1 {v17.4s},[x3],#16 + add v16.4s,v16.4s,v4.4s + orr v2.16b,v0.16b,v0.16b +.long 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s +.long 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s + + ld1 {v16.4s},[x3],#16 + add v17.4s,v17.4s,v5.4s + orr v2.16b,v0.16b,v0.16b +.long 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s +.long 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s + + ld1 {v17.4s},[x3] + add v16.4s,v16.4s,v6.4s + sub x3,x3,#64*4-16 // rewind + orr v2.16b,v0.16b,v0.16b +.long 0x5e104020 //sha256h v0.16b,v1.16b,v16.4s +.long 0x5e105041 //sha256h2 v1.16b,v2.16b,v16.4s + + add v17.4s,v17.4s,v7.4s + orr v2.16b,v0.16b,v0.16b +.long 0x5e114020 //sha256h v0.16b,v1.16b,v17.4s +.long 0x5e115041 //sha256h2 v1.16b,v2.16b,v17.4s + + add v0.4s,v0.4s,v18.4s + add v1.4s,v1.4s,v19.4s + + cbnz x2,Loop_hw + + st1 {v0.4s,v1.4s},[x0] + + ldr x29,[sp],#16 + ret + +#endif +#ifdef __KERNEL__ +.globl _sha256_block_neon +#endif + +.align 4 +_sha256_block_neon: +Lneon_entry: + stp x29, x30, [sp, #-16]! + mov x29, sp + sub sp,sp,#16*4 + + adr x16,LK256 + add x2,x1,x2,lsl#6 // len to point at the end of inp + + ld1 {v0.16b},[x1], #16 + ld1 {v1.16b},[x1], #16 + ld1 {v2.16b},[x1], #16 + ld1 {v3.16b},[x1], #16 + ld1 {v4.4s},[x16], #16 + ld1 {v5.4s},[x16], #16 + ld1 {v6.4s},[x16], #16 + ld1 {v7.4s},[x16], #16 + rev32 v0.16b,v0.16b // yes, even on + rev32 v1.16b,v1.16b // big-endian + rev32 v2.16b,v2.16b + rev32 v3.16b,v3.16b + mov x17,sp + add v4.4s,v4.4s,v0.4s + add v5.4s,v5.4s,v1.4s + add v6.4s,v6.4s,v2.4s + st1 {v4.4s,v5.4s},[x17], #32 + add v7.4s,v7.4s,v3.4s + st1 {v6.4s,v7.4s},[x17] + sub x17,x17,#32 + + ldp w3,w4,[x0] + ldp w5,w6,[x0,#8] + ldp w7,w8,[x0,#16] + ldp w9,w10,[x0,#24] + ldr w12,[sp,#0] + mov w13,wzr + eor w14,w4,w5 + mov w15,wzr + b L_00_48 + +.align 4 +L_00_48: + ext v4.16b,v0.16b,v1.16b,#4 + add w10,w10,w12 + add w3,w3,w15 + and w12,w8,w7 + bic w15,w9,w7 + ext v7.16b,v2.16b,v3.16b,#4 + eor w11,w7,w7,ror#5 + add w3,w3,w13 + mov d19,v3.d[1] + orr w12,w12,w15 + eor w11,w11,w7,ror#19 + ushr v6.4s,v4.4s,#7 + eor w15,w3,w3,ror#11 + ushr v5.4s,v4.4s,#3 + add w10,w10,w12 + add v0.4s,v0.4s,v7.4s + ror w11,w11,#6 + sli v6.4s,v4.4s,#25 + eor w13,w3,w4 + eor w15,w15,w3,ror#20 + ushr v7.4s,v4.4s,#18 + add w10,w10,w11 + ldr w12,[sp,#4] + and w14,w14,w13 + eor v5.16b,v5.16b,v6.16b + ror w15,w15,#2 + add w6,w6,w10 + sli v7.4s,v4.4s,#14 + eor w14,w14,w4 + ushr v16.4s,v19.4s,#17 + add w9,w9,w12 + add w10,w10,w15 + and w12,w7,w6 + eor v5.16b,v5.16b,v7.16b + bic w15,w8,w6 + eor w11,w6,w6,ror#5 + sli v16.4s,v19.4s,#15 + add w10,w10,w14 + orr w12,w12,w15 + ushr v17.4s,v19.4s,#10 + eor w11,w11,w6,ror#19 + eor w15,w10,w10,ror#11 + ushr v7.4s,v19.4s,#19 + add w9,w9,w12 + ror w11,w11,#6 + add v0.4s,v0.4s,v5.4s + eor w14,w10,w3 + eor w15,w15,w10,ror#20 + sli v7.4s,v19.4s,#13 + add w9,w9,w11 + ldr w12,[sp,#8] + and w13,w13,w14 + eor v17.16b,v17.16b,v16.16b + ror w15,w15,#2 + add w5,w5,w9 + eor w13,w13,w3 + eor v17.16b,v17.16b,v7.16b + add w8,w8,w12 + add w9,w9,w15 + and w12,w6,w5 + add v0.4s,v0.4s,v17.4s + bic w15,w7,w5 + eor w11,w5,w5,ror#5 + add w9,w9,w13 + ushr v18.4s,v0.4s,#17 + orr w12,w12,w15 + ushr v19.4s,v0.4s,#10 + eor w11,w11,w5,ror#19 + eor w15,w9,w9,ror#11 + sli v18.4s,v0.4s,#15 + add w8,w8,w12 + ushr v17.4s,v0.4s,#19 + ror w11,w11,#6 + eor w13,w9,w10 + eor v19.16b,v19.16b,v18.16b + eor w15,w15,w9,ror#20 + add w8,w8,w11 + sli v17.4s,v0.4s,#13 + ldr w12,[sp,#12] + and w14,w14,w13 + ror w15,w15,#2 + ld1 {v4.4s},[x16], #16 + add w4,w4,w8 + eor v19.16b,v19.16b,v17.16b + eor w14,w14,w10 + eor v17.16b,v17.16b,v17.16b + add w7,w7,w12 + add w8,w8,w15 + and w12,w5,w4 + mov v17.d[1],v19.d[0] + bic w15,w6,w4 + eor w11,w4,w4,ror#5 + add w8,w8,w14 + add v0.4s,v0.4s,v17.4s + orr w12,w12,w15 + eor w11,w11,w4,ror#19 + eor w15,w8,w8,ror#11 + add v4.4s,v4.4s,v0.4s + add w7,w7,w12 + ror w11,w11,#6 + eor w14,w8,w9 + eor w15,w15,w8,ror#20 + add w7,w7,w11 + ldr w12,[sp,#16] + and w13,w13,w14 + ror w15,w15,#2 + add w3,w3,w7 + eor w13,w13,w9 + st1 {v4.4s},[x17], #16 + ext v4.16b,v1.16b,v2.16b,#4 + add w6,w6,w12 + add w7,w7,w15 + and w12,w4,w3 + bic w15,w5,w3 + ext v7.16b,v3.16b,v0.16b,#4 + eor w11,w3,w3,ror#5 + add w7,w7,w13 + mov d19,v0.d[1] + orr w12,w12,w15 + eor w11,w11,w3,ror#19 + ushr v6.4s,v4.4s,#7 + eor w15,w7,w7,ror#11 + ushr v5.4s,v4.4s,#3 + add w6,w6,w12 + add v1.4s,v1.4s,v7.4s + ror w11,w11,#6 + sli v6.4s,v4.4s,#25 + eor w13,w7,w8 + eor w15,w15,w7,ror#20 + ushr v7.4s,v4.4s,#18 + add w6,w6,w11 + ldr w12,[sp,#20] + and w14,w14,w13 + eor v5.16b,v5.16b,v6.16b + ror w15,w15,#2 + add w10,w10,w6 + sli v7.4s,v4.4s,#14 + eor w14,w14,w8 + ushr v16.4s,v19.4s,#17 + add w5,w5,w12 + add w6,w6,w15 + and w12,w3,w10 + eor v5.16b,v5.16b,v7.16b + bic w15,w4,w10 + eor w11,w10,w10,ror#5 + sli v16.4s,v19.4s,#15 + add w6,w6,w14 + orr w12,w12,w15 + ushr v17.4s,v19.4s,#10 + eor w11,w11,w10,ror#19 + eor w15,w6,w6,ror#11 + ushr v7.4s,v19.4s,#19 + add w5,w5,w12 + ror w11,w11,#6 + add v1.4s,v1.4s,v5.4s + eor w14,w6,w7 + eor w15,w15,w6,ror#20 + sli v7.4s,v19.4s,#13 + add w5,w5,w11 + ldr w12,[sp,#24] + and w13,w13,w14 + eor v17.16b,v17.16b,v16.16b + ror w15,w15,#2 + add w9,w9,w5 + eor w13,w13,w7 + eor v17.16b,v17.16b,v7.16b + add w4,w4,w12 + add w5,w5,w15 + and w12,w10,w9 + add v1.4s,v1.4s,v17.4s + bic w15,w3,w9 + eor w11,w9,w9,ror#5 + add w5,w5,w13 + ushr v18.4s,v1.4s,#17 + orr w12,w12,w15 + ushr v19.4s,v1.4s,#10 + eor w11,w11,w9,ror#19 + eor w15,w5,w5,ror#11 + sli v18.4s,v1.4s,#15 + add w4,w4,w12 + ushr v17.4s,v1.4s,#19 + ror w11,w11,#6 + eor w13,w5,w6 + eor v19.16b,v19.16b,v18.16b + eor w15,w15,w5,ror#20 + add w4,w4,w11 + sli v17.4s,v1.4s,#13 + ldr w12,[sp,#28] + and w14,w14,w13 + ror w15,w15,#2 + ld1 {v4.4s},[x16], #16 + add w8,w8,w4 + eor v19.16b,v19.16b,v17.16b + eor w14,w14,w6 + eor v17.16b,v17.16b,v17.16b + add w3,w3,w12 + add w4,w4,w15 + and w12,w9,w8 + mov v17.d[1],v19.d[0] + bic w15,w10,w8 + eor w11,w8,w8,ror#5 + add w4,w4,w14 + add v1.4s,v1.4s,v17.4s + orr w12,w12,w15 + eor w11,w11,w8,ror#19 + eor w15,w4,w4,ror#11 + add v4.4s,v4.4s,v1.4s + add w3,w3,w12 + ror w11,w11,#6 + eor w14,w4,w5 + eor w15,w15,w4,ror#20 + add w3,w3,w11 + ldr w12,[sp,#32] + and w13,w13,w14 + ror w15,w15,#2 + add w7,w7,w3 + eor w13,w13,w5 + st1 {v4.4s},[x17], #16 + ext v4.16b,v2.16b,v3.16b,#4 + add w10,w10,w12 + add w3,w3,w15 + and w12,w8,w7 + bic w15,w9,w7 + ext v7.16b,v0.16b,v1.16b,#4 + eor w11,w7,w7,ror#5 + add w3,w3,w13 + mov d19,v1.d[1] + orr w12,w12,w15 + eor w11,w11,w7,ror#19 + ushr v6.4s,v4.4s,#7 + eor w15,w3,w3,ror#11 + ushr v5.4s,v4.4s,#3 + add w10,w10,w12 + add v2.4s,v2.4s,v7.4s + ror w11,w11,#6 + sli v6.4s,v4.4s,#25 + eor w13,w3,w4 + eor w15,w15,w3,ror#20 + ushr v7.4s,v4.4s,#18 + add w10,w10,w11 + ldr w12,[sp,#36] + and w14,w14,w13 + eor v5.16b,v5.16b,v6.16b + ror w15,w15,#2 + add w6,w6,w10 + sli v7.4s,v4.4s,#14 + eor w14,w14,w4 + ushr v16.4s,v19.4s,#17 + add w9,w9,w12 + add w10,w10,w15 + and w12,w7,w6 + eor v5.16b,v5.16b,v7.16b + bic w15,w8,w6 + eor w11,w6,w6,ror#5 + sli v16.4s,v19.4s,#15 + add w10,w10,w14 + orr w12,w12,w15 + ushr v17.4s,v19.4s,#10 + eor w11,w11,w6,ror#19 + eor w15,w10,w10,ror#11 + ushr v7.4s,v19.4s,#19 + add w9,w9,w12 + ror w11,w11,#6 + add v2.4s,v2.4s,v5.4s + eor w14,w10,w3 + eor w15,w15,w10,ror#20 + sli v7.4s,v19.4s,#13 + add w9,w9,w11 + ldr w12,[sp,#40] + and w13,w13,w14 + eor v17.16b,v17.16b,v16.16b + ror w15,w15,#2 + add w5,w5,w9 + eor w13,w13,w3 + eor v17.16b,v17.16b,v7.16b + add w8,w8,w12 + add w9,w9,w15 + and w12,w6,w5 + add v2.4s,v2.4s,v17.4s + bic w15,w7,w5 + eor w11,w5,w5,ror#5 + add w9,w9,w13 + ushr v18.4s,v2.4s,#17 + orr w12,w12,w15 + ushr v19.4s,v2.4s,#10 + eor w11,w11,w5,ror#19 + eor w15,w9,w9,ror#11 + sli v18.4s,v2.4s,#15 + add w8,w8,w12 + ushr v17.4s,v2.4s,#19 + ror w11,w11,#6 + eor w13,w9,w10 + eor v19.16b,v19.16b,v18.16b + eor w15,w15,w9,ror#20 + add w8,w8,w11 + sli v17.4s,v2.4s,#13 + ldr w12,[sp,#44] + and w14,w14,w13 + ror w15,w15,#2 + ld1 {v4.4s},[x16], #16 + add w4,w4,w8 + eor v19.16b,v19.16b,v17.16b + eor w14,w14,w10 + eor v17.16b,v17.16b,v17.16b + add w7,w7,w12 + add w8,w8,w15 + and w12,w5,w4 + mov v17.d[1],v19.d[0] + bic w15,w6,w4 + eor w11,w4,w4,ror#5 + add w8,w8,w14 + add v2.4s,v2.4s,v17.4s + orr w12,w12,w15 + eor w11,w11,w4,ror#19 + eor w15,w8,w8,ror#11 + add v4.4s,v4.4s,v2.4s + add w7,w7,w12 + ror w11,w11,#6 + eor w14,w8,w9 + eor w15,w15,w8,ror#20 + add w7,w7,w11 + ldr w12,[sp,#48] + and w13,w13,w14 + ror w15,w15,#2 + add w3,w3,w7 + eor w13,w13,w9 + st1 {v4.4s},[x17], #16 + ext v4.16b,v3.16b,v0.16b,#4 + add w6,w6,w12 + add w7,w7,w15 + and w12,w4,w3 + bic w15,w5,w3 + ext v7.16b,v1.16b,v2.16b,#4 + eor w11,w3,w3,ror#5 + add w7,w7,w13 + mov d19,v2.d[1] + orr w12,w12,w15 + eor w11,w11,w3,ror#19 + ushr v6.4s,v4.4s,#7 + eor w15,w7,w7,ror#11 + ushr v5.4s,v4.4s,#3 + add w6,w6,w12 + add v3.4s,v3.4s,v7.4s + ror w11,w11,#6 + sli v6.4s,v4.4s,#25 + eor w13,w7,w8 + eor w15,w15,w7,ror#20 + ushr v7.4s,v4.4s,#18 + add w6,w6,w11 + ldr w12,[sp,#52] + and w14,w14,w13 + eor v5.16b,v5.16b,v6.16b + ror w15,w15,#2 + add w10,w10,w6 + sli v7.4s,v4.4s,#14 + eor w14,w14,w8 + ushr v16.4s,v19.4s,#17 + add w5,w5,w12 + add w6,w6,w15 + and w12,w3,w10 + eor v5.16b,v5.16b,v7.16b + bic w15,w4,w10 + eor w11,w10,w10,ror#5 + sli v16.4s,v19.4s,#15 + add w6,w6,w14 + orr w12,w12,w15 + ushr v17.4s,v19.4s,#10 + eor w11,w11,w10,ror#19 + eor w15,w6,w6,ror#11 + ushr v7.4s,v19.4s,#19 + add w5,w5,w12 + ror w11,w11,#6 + add v3.4s,v3.4s,v5.4s + eor w14,w6,w7 + eor w15,w15,w6,ror#20 + sli v7.4s,v19.4s,#13 + add w5,w5,w11 + ldr w12,[sp,#56] + and w13,w13,w14 + eor v17.16b,v17.16b,v16.16b + ror w15,w15,#2 + add w9,w9,w5 + eor w13,w13,w7 + eor v17.16b,v17.16b,v7.16b + add w4,w4,w12 + add w5,w5,w15 + and w12,w10,w9 + add v3.4s,v3.4s,v17.4s + bic w15,w3,w9 + eor w11,w9,w9,ror#5 + add w5,w5,w13 + ushr v18.4s,v3.4s,#17 + orr w12,w12,w15 + ushr v19.4s,v3.4s,#10 + eor w11,w11,w9,ror#19 + eor w15,w5,w5,ror#11 + sli v18.4s,v3.4s,#15 + add w4,w4,w12 + ushr v17.4s,v3.4s,#19 + ror w11,w11,#6 + eor w13,w5,w6 + eor v19.16b,v19.16b,v18.16b + eor w15,w15,w5,ror#20 + add w4,w4,w11 + sli v17.4s,v3.4s,#13 + ldr w12,[sp,#60] + and w14,w14,w13 + ror w15,w15,#2 + ld1 {v4.4s},[x16], #16 + add w8,w8,w4 + eor v19.16b,v19.16b,v17.16b + eor w14,w14,w6 + eor v17.16b,v17.16b,v17.16b + add w3,w3,w12 + add w4,w4,w15 + and w12,w9,w8 + mov v17.d[1],v19.d[0] + bic w15,w10,w8 + eor w11,w8,w8,ror#5 + add w4,w4,w14 + add v3.4s,v3.4s,v17.4s + orr w12,w12,w15 + eor w11,w11,w8,ror#19 + eor w15,w4,w4,ror#11 + add v4.4s,v4.4s,v3.4s + add w3,w3,w12 + ror w11,w11,#6 + eor w14,w4,w5 + eor w15,w15,w4,ror#20 + add w3,w3,w11 + ldr w12,[x16] + and w13,w13,w14 + ror w15,w15,#2 + add w7,w7,w3 + eor w13,w13,w5 + st1 {v4.4s},[x17], #16 + cmp w12,#0 // check for K256 terminator + ldr w12,[sp,#0] + sub x17,x17,#64 + bne L_00_48 + + sub x16,x16,#256 // rewind x16 + cmp x1,x2 + mov x17, #64 + csel x17, x17, xzr, eq + sub x1,x1,x17 // avoid SEGV + mov x17,sp + add w10,w10,w12 + add w3,w3,w15 + and w12,w8,w7 + ld1 {v0.16b},[x1],#16 + bic w15,w9,w7 + eor w11,w7,w7,ror#5 + ld1 {v4.4s},[x16],#16 + add w3,w3,w13 + orr w12,w12,w15 + eor w11,w11,w7,ror#19 + eor w15,w3,w3,ror#11 + rev32 v0.16b,v0.16b + add w10,w10,w12 + ror w11,w11,#6 + eor w13,w3,w4 + eor w15,w15,w3,ror#20 + add v4.4s,v4.4s,v0.4s + add w10,w10,w11 + ldr w12,[sp,#4] + and w14,w14,w13 + ror w15,w15,#2 + add w6,w6,w10 + eor w14,w14,w4 + add w9,w9,w12 + add w10,w10,w15 + and w12,w7,w6 + bic w15,w8,w6 + eor w11,w6,w6,ror#5 + add w10,w10,w14 + orr w12,w12,w15 + eor w11,w11,w6,ror#19 + eor w15,w10,w10,ror#11 + add w9,w9,w12 + ror w11,w11,#6 + eor w14,w10,w3 + eor w15,w15,w10,ror#20 + add w9,w9,w11 + ldr w12,[sp,#8] + and w13,w13,w14 + ror w15,w15,#2 + add w5,w5,w9 + eor w13,w13,w3 + add w8,w8,w12 + add w9,w9,w15 + and w12,w6,w5 + bic w15,w7,w5 + eor w11,w5,w5,ror#5 + add w9,w9,w13 + orr w12,w12,w15 + eor w11,w11,w5,ror#19 + eor w15,w9,w9,ror#11 + add w8,w8,w12 + ror w11,w11,#6 + eor w13,w9,w10 + eor w15,w15,w9,ror#20 + add w8,w8,w11 + ldr w12,[sp,#12] + and w14,w14,w13 + ror w15,w15,#2 + add w4,w4,w8 + eor w14,w14,w10 + add w7,w7,w12 + add w8,w8,w15 + and w12,w5,w4 + bic w15,w6,w4 + eor w11,w4,w4,ror#5 + add w8,w8,w14 + orr w12,w12,w15 + eor w11,w11,w4,ror#19 + eor w15,w8,w8,ror#11 + add w7,w7,w12 + ror w11,w11,#6 + eor w14,w8,w9 + eor w15,w15,w8,ror#20 + add w7,w7,w11 + ldr w12,[sp,#16] + and w13,w13,w14 + ror w15,w15,#2 + add w3,w3,w7 + eor w13,w13,w9 + st1 {v4.4s},[x17], #16 + add w6,w6,w12 + add w7,w7,w15 + and w12,w4,w3 + ld1 {v1.16b},[x1],#16 + bic w15,w5,w3 + eor w11,w3,w3,ror#5 + ld1 {v4.4s},[x16],#16 + add w7,w7,w13 + orr w12,w12,w15 + eor w11,w11,w3,ror#19 + eor w15,w7,w7,ror#11 + rev32 v1.16b,v1.16b + add w6,w6,w12 + ror w11,w11,#6 + eor w13,w7,w8 + eor w15,w15,w7,ror#20 + add v4.4s,v4.4s,v1.4s + add w6,w6,w11 + ldr w12,[sp,#20] + and w14,w14,w13 + ror w15,w15,#2 + add w10,w10,w6 + eor w14,w14,w8 + add w5,w5,w12 + add w6,w6,w15 + and w12,w3,w10 + bic w15,w4,w10 + eor w11,w10,w10,ror#5 + add w6,w6,w14 + orr w12,w12,w15 + eor w11,w11,w10,ror#19 + eor w15,w6,w6,ror#11 + add w5,w5,w12 + ror w11,w11,#6 + eor w14,w6,w7 + eor w15,w15,w6,ror#20 + add w5,w5,w11 + ldr w12,[sp,#24] + and w13,w13,w14 + ror w15,w15,#2 + add w9,w9,w5 + eor w13,w13,w7 + add w4,w4,w12 + add w5,w5,w15 + and w12,w10,w9 + bic w15,w3,w9 + eor w11,w9,w9,ror#5 + add w5,w5,w13 + orr w12,w12,w15 + eor w11,w11,w9,ror#19 + eor w15,w5,w5,ror#11 + add w4,w4,w12 + ror w11,w11,#6 + eor w13,w5,w6 + eor w15,w15,w5,ror#20 + add w4,w4,w11 + ldr w12,[sp,#28] + and w14,w14,w13 + ror w15,w15,#2 + add w8,w8,w4 + eor w14,w14,w6 + add w3,w3,w12 + add w4,w4,w15 + and w12,w9,w8 + bic w15,w10,w8 + eor w11,w8,w8,ror#5 + add w4,w4,w14 + orr w12,w12,w15 + eor w11,w11,w8,ror#19 + eor w15,w4,w4,ror#11 + add w3,w3,w12 + ror w11,w11,#6 + eor w14,w4,w5 + eor w15,w15,w4,ror#20 + add w3,w3,w11 + ldr w12,[sp,#32] + and w13,w13,w14 + ror w15,w15,#2 + add w7,w7,w3 + eor w13,w13,w5 + st1 {v4.4s},[x17], #16 + add w10,w10,w12 + add w3,w3,w15 + and w12,w8,w7 + ld1 {v2.16b},[x1],#16 + bic w15,w9,w7 + eor w11,w7,w7,ror#5 + ld1 {v4.4s},[x16],#16 + add w3,w3,w13 + orr w12,w12,w15 + eor w11,w11,w7,ror#19 + eor w15,w3,w3,ror#11 + rev32 v2.16b,v2.16b + add w10,w10,w12 + ror w11,w11,#6 + eor w13,w3,w4 + eor w15,w15,w3,ror#20 + add v4.4s,v4.4s,v2.4s + add w10,w10,w11 + ldr w12,[sp,#36] + and w14,w14,w13 + ror w15,w15,#2 + add w6,w6,w10 + eor w14,w14,w4 + add w9,w9,w12 + add w10,w10,w15 + and w12,w7,w6 + bic w15,w8,w6 + eor w11,w6,w6,ror#5 + add w10,w10,w14 + orr w12,w12,w15 + eor w11,w11,w6,ror#19 + eor w15,w10,w10,ror#11 + add w9,w9,w12 + ror w11,w11,#6 + eor w14,w10,w3 + eor w15,w15,w10,ror#20 + add w9,w9,w11 + ldr w12,[sp,#40] + and w13,w13,w14 + ror w15,w15,#2 + add w5,w5,w9 + eor w13,w13,w3 + add w8,w8,w12 + add w9,w9,w15 + and w12,w6,w5 + bic w15,w7,w5 + eor w11,w5,w5,ror#5 + add w9,w9,w13 + orr w12,w12,w15 + eor w11,w11,w5,ror#19 + eor w15,w9,w9,ror#11 + add w8,w8,w12 + ror w11,w11,#6 + eor w13,w9,w10 + eor w15,w15,w9,ror#20 + add w8,w8,w11 + ldr w12,[sp,#44] + and w14,w14,w13 + ror w15,w15,#2 + add w4,w4,w8 + eor w14,w14,w10 + add w7,w7,w12 + add w8,w8,w15 + and w12,w5,w4 + bic w15,w6,w4 + eor w11,w4,w4,ror#5 + add w8,w8,w14 + orr w12,w12,w15 + eor w11,w11,w4,ror#19 + eor w15,w8,w8,ror#11 + add w7,w7,w12 + ror w11,w11,#6 + eor w14,w8,w9 + eor w15,w15,w8,ror#20 + add w7,w7,w11 + ldr w12,[sp,#48] + and w13,w13,w14 + ror w15,w15,#2 + add w3,w3,w7 + eor w13,w13,w9 + st1 {v4.4s},[x17], #16 + add w6,w6,w12 + add w7,w7,w15 + and w12,w4,w3 + ld1 {v3.16b},[x1],#16 + bic w15,w5,w3 + eor w11,w3,w3,ror#5 + ld1 {v4.4s},[x16],#16 + add w7,w7,w13 + orr w12,w12,w15 + eor w11,w11,w3,ror#19 + eor w15,w7,w7,ror#11 + rev32 v3.16b,v3.16b + add w6,w6,w12 + ror w11,w11,#6 + eor w13,w7,w8 + eor w15,w15,w7,ror#20 + add v4.4s,v4.4s,v3.4s + add w6,w6,w11 + ldr w12,[sp,#52] + and w14,w14,w13 + ror w15,w15,#2 + add w10,w10,w6 + eor w14,w14,w8 + add w5,w5,w12 + add w6,w6,w15 + and w12,w3,w10 + bic w15,w4,w10 + eor w11,w10,w10,ror#5 + add w6,w6,w14 + orr w12,w12,w15 + eor w11,w11,w10,ror#19 + eor w15,w6,w6,ror#11 + add w5,w5,w12 + ror w11,w11,#6 + eor w14,w6,w7 + eor w15,w15,w6,ror#20 + add w5,w5,w11 + ldr w12,[sp,#56] + and w13,w13,w14 + ror w15,w15,#2 + add w9,w9,w5 + eor w13,w13,w7 + add w4,w4,w12 + add w5,w5,w15 + and w12,w10,w9 + bic w15,w3,w9 + eor w11,w9,w9,ror#5 + add w5,w5,w13 + orr w12,w12,w15 + eor w11,w11,w9,ror#19 + eor w15,w5,w5,ror#11 + add w4,w4,w12 + ror w11,w11,#6 + eor w13,w5,w6 + eor w15,w15,w5,ror#20 + add w4,w4,w11 + ldr w12,[sp,#60] + and w14,w14,w13 + ror w15,w15,#2 + add w8,w8,w4 + eor w14,w14,w6 + add w3,w3,w12 + add w4,w4,w15 + and w12,w9,w8 + bic w15,w10,w8 + eor w11,w8,w8,ror#5 + add w4,w4,w14 + orr w12,w12,w15 + eor w11,w11,w8,ror#19 + eor w15,w4,w4,ror#11 + add w3,w3,w12 + ror w11,w11,#6 + eor w14,w4,w5 + eor w15,w15,w4,ror#20 + add w3,w3,w11 + and w13,w13,w14 + ror w15,w15,#2 + add w7,w7,w3 + eor w13,w13,w5 + st1 {v4.4s},[x17], #16 + add w3,w3,w15 // h+=Sigma0(a) from the past + ldp w11,w12,[x0,#0] + add w3,w3,w13 // h+=Maj(a,b,c) from the past + ldp w13,w14,[x0,#8] + add w3,w3,w11 // accumulate + add w4,w4,w12 + ldp w11,w12,[x0,#16] + add w5,w5,w13 + add w6,w6,w14 + ldp w13,w14,[x0,#24] + add w7,w7,w11 + add w8,w8,w12 + ldr w12,[sp,#0] + stp w3,w4,[x0,#0] + add w9,w9,w13 + mov w13,wzr + stp w5,w6,[x0,#8] + add w10,w10,w14 + stp w7,w8,[x0,#16] + eor w14,w4,w5 + stp w9,w10,[x0,#24] + mov w15,wzr + mov x17,sp + b.ne L_00_48 + + ldr x29,[x29] + add sp,sp,#16*4+16 + ret + diff --git a/vere/ext/openssl/gen/macos-aarch64/crypto/sha/sha512-armv8.S b/vere/ext/openssl/gen/macos-aarch64/crypto/sha/sha512-armv8.S new file mode 100644 index 0000000..aa812a0 --- /dev/null +++ b/vere/ext/openssl/gen/macos-aarch64/crypto/sha/sha512-armv8.S @@ -0,0 +1,1618 @@ +// Copyright 2014-2020 The OpenSSL Project Authors. All Rights Reserved. +// +// Licensed under the OpenSSL license (the "License"). You may not use +// this file except in compliance with the License. You can obtain a copy +// in the file LICENSE in the source distribution or at +// https://www.openssl.org/source/license.html + +// ==================================================================== +// Written by Andy Polyakov for the OpenSSL +// project. The module is, however, dual licensed under OpenSSL and +// CRYPTOGAMS licenses depending on where you obtain it. For further +// details see http://www.openssl.org/~appro/cryptogams/. +// +// Permission to use under GPLv2 terms is granted. +// ==================================================================== +// +// SHA256/512 for ARMv8. +// +// Performance in cycles per processed byte and improvement coefficient +// over code generated with "default" compiler: +// +// SHA256-hw SHA256(*) SHA512 +// Apple A7 1.97 10.5 (+33%) 6.73 (-1%(**)) +// Cortex-A53 2.38 15.5 (+115%) 10.0 (+150%(***)) +// Cortex-A57 2.31 11.6 (+86%) 7.51 (+260%(***)) +// Denver 2.01 10.5 (+26%) 6.70 (+8%) +// X-Gene 20.0 (+100%) 12.8 (+300%(***)) +// Mongoose 2.36 13.0 (+50%) 8.36 (+33%) +// Kryo 1.92 17.4 (+30%) 11.2 (+8%) +// +// (*) Software SHA256 results are of lesser relevance, presented +// mostly for informational purposes. +// (**) The result is a trade-off: it's possible to improve it by +// 10% (or by 1 cycle per round), but at the cost of 20% loss +// on Cortex-A53 (or by 4 cycles per round). +// (***) Super-impressive coefficients over gcc-generated code are +// indication of some compiler "pathology", most notably code +// generated with -mgeneral-regs-only is significantly faster +// and the gap is only 40-90%. +// +// October 2016. +// +// Originally it was reckoned that it makes no sense to implement NEON +// version of SHA256 for 64-bit processors. This is because performance +// improvement on most wide-spread Cortex-A5x processors was observed +// to be marginal, same on Cortex-A53 and ~10% on A57. But then it was +// observed that 32-bit NEON SHA256 performs significantly better than +// 64-bit scalar version on *some* of the more recent processors. As +// result 64-bit NEON version of SHA256 was added to provide best +// all-round performance. For example it executes ~30% faster on X-Gene +// and Mongoose. [For reference, NEON version of SHA512 is bound to +// deliver much less improvement, likely *negative* on Cortex-A5x. +// Which is why NEON support is limited to SHA256.] + +#ifndef __KERNEL__ +# include "arm_arch.h" +#endif + +.text + + +.private_extern _OPENSSL_armcap_P +.globl _sha512_block_data_order + +.align 6 +_sha512_block_data_order: +#ifndef __KERNEL__ +# ifdef __ILP32__ + ldrsw x16,LOPENSSL_armcap_P +# else + ldr x16,LOPENSSL_armcap_P +# endif + adr x17,LOPENSSL_armcap_P + add x16,x16,x17 + ldr w16,[x16] + tst w16,#ARMV8_SHA512 + b.ne Lv8_entry +#endif +.long 0xd503233f // paciasp + stp x29,x30,[sp,#-128]! + add x29,sp,#0 + + stp x19,x20,[sp,#16] + stp x21,x22,[sp,#32] + stp x23,x24,[sp,#48] + stp x25,x26,[sp,#64] + stp x27,x28,[sp,#80] + sub sp,sp,#4*8 + + ldp x20,x21,[x0] // load context + ldp x22,x23,[x0,#2*8] + ldp x24,x25,[x0,#4*8] + add x2,x1,x2,lsl#7 // end of input + ldp x26,x27,[x0,#6*8] + adr x30,LK512 + stp x0,x2,[x29,#96] + +Loop: + ldp x3,x4,[x1],#2*8 + ldr x19,[x30],#8 // *K++ + eor x28,x21,x22 // magic seed + str x1,[x29,#112] +#ifndef __AARCH64EB__ + rev x3,x3 // 0 +#endif + ror x16,x24,#14 + add x27,x27,x19 // h+=K[i] + eor x6,x24,x24,ror#23 + and x17,x25,x24 + bic x19,x26,x24 + add x27,x27,x3 // h+=X[i] + orr x17,x17,x19 // Ch(e,f,g) + eor x19,x20,x21 // a^b, b^c in next round + eor x16,x16,x6,ror#18 // Sigma1(e) + ror x6,x20,#28 + add x27,x27,x17 // h+=Ch(e,f,g) + eor x17,x20,x20,ror#5 + add x27,x27,x16 // h+=Sigma1(e) + and x28,x28,x19 // (b^c)&=(a^b) + add x23,x23,x27 // d+=h + eor x28,x28,x21 // Maj(a,b,c) + eor x17,x6,x17,ror#34 // Sigma0(a) + add x27,x27,x28 // h+=Maj(a,b,c) + ldr x28,[x30],#8 // *K++, x19 in next round + //add x27,x27,x17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev x4,x4 // 1 +#endif + ldp x5,x6,[x1],#2*8 + add x27,x27,x17 // h+=Sigma0(a) + ror x16,x23,#14 + add x26,x26,x28 // h+=K[i] + eor x7,x23,x23,ror#23 + and x17,x24,x23 + bic x28,x25,x23 + add x26,x26,x4 // h+=X[i] + orr x17,x17,x28 // Ch(e,f,g) + eor x28,x27,x20 // a^b, b^c in next round + eor x16,x16,x7,ror#18 // Sigma1(e) + ror x7,x27,#28 + add x26,x26,x17 // h+=Ch(e,f,g) + eor x17,x27,x27,ror#5 + add x26,x26,x16 // h+=Sigma1(e) + and x19,x19,x28 // (b^c)&=(a^b) + add x22,x22,x26 // d+=h + eor x19,x19,x20 // Maj(a,b,c) + eor x17,x7,x17,ror#34 // Sigma0(a) + add x26,x26,x19 // h+=Maj(a,b,c) + ldr x19,[x30],#8 // *K++, x28 in next round + //add x26,x26,x17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev x5,x5 // 2 +#endif + add x26,x26,x17 // h+=Sigma0(a) + ror x16,x22,#14 + add x25,x25,x19 // h+=K[i] + eor x8,x22,x22,ror#23 + and x17,x23,x22 + bic x19,x24,x22 + add x25,x25,x5 // h+=X[i] + orr x17,x17,x19 // Ch(e,f,g) + eor x19,x26,x27 // a^b, b^c in next round + eor x16,x16,x8,ror#18 // Sigma1(e) + ror x8,x26,#28 + add x25,x25,x17 // h+=Ch(e,f,g) + eor x17,x26,x26,ror#5 + add x25,x25,x16 // h+=Sigma1(e) + and x28,x28,x19 // (b^c)&=(a^b) + add x21,x21,x25 // d+=h + eor x28,x28,x27 // Maj(a,b,c) + eor x17,x8,x17,ror#34 // Sigma0(a) + add x25,x25,x28 // h+=Maj(a,b,c) + ldr x28,[x30],#8 // *K++, x19 in next round + //add x25,x25,x17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev x6,x6 // 3 +#endif + ldp x7,x8,[x1],#2*8 + add x25,x25,x17 // h+=Sigma0(a) + ror x16,x21,#14 + add x24,x24,x28 // h+=K[i] + eor x9,x21,x21,ror#23 + and x17,x22,x21 + bic x28,x23,x21 + add x24,x24,x6 // h+=X[i] + orr x17,x17,x28 // Ch(e,f,g) + eor x28,x25,x26 // a^b, b^c in next round + eor x16,x16,x9,ror#18 // Sigma1(e) + ror x9,x25,#28 + add x24,x24,x17 // h+=Ch(e,f,g) + eor x17,x25,x25,ror#5 + add x24,x24,x16 // h+=Sigma1(e) + and x19,x19,x28 // (b^c)&=(a^b) + add x20,x20,x24 // d+=h + eor x19,x19,x26 // Maj(a,b,c) + eor x17,x9,x17,ror#34 // Sigma0(a) + add x24,x24,x19 // h+=Maj(a,b,c) + ldr x19,[x30],#8 // *K++, x28 in next round + //add x24,x24,x17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev x7,x7 // 4 +#endif + add x24,x24,x17 // h+=Sigma0(a) + ror x16,x20,#14 + add x23,x23,x19 // h+=K[i] + eor x10,x20,x20,ror#23 + and x17,x21,x20 + bic x19,x22,x20 + add x23,x23,x7 // h+=X[i] + orr x17,x17,x19 // Ch(e,f,g) + eor x19,x24,x25 // a^b, b^c in next round + eor x16,x16,x10,ror#18 // Sigma1(e) + ror x10,x24,#28 + add x23,x23,x17 // h+=Ch(e,f,g) + eor x17,x24,x24,ror#5 + add x23,x23,x16 // h+=Sigma1(e) + and x28,x28,x19 // (b^c)&=(a^b) + add x27,x27,x23 // d+=h + eor x28,x28,x25 // Maj(a,b,c) + eor x17,x10,x17,ror#34 // Sigma0(a) + add x23,x23,x28 // h+=Maj(a,b,c) + ldr x28,[x30],#8 // *K++, x19 in next round + //add x23,x23,x17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev x8,x8 // 5 +#endif + ldp x9,x10,[x1],#2*8 + add x23,x23,x17 // h+=Sigma0(a) + ror x16,x27,#14 + add x22,x22,x28 // h+=K[i] + eor x11,x27,x27,ror#23 + and x17,x20,x27 + bic x28,x21,x27 + add x22,x22,x8 // h+=X[i] + orr x17,x17,x28 // Ch(e,f,g) + eor x28,x23,x24 // a^b, b^c in next round + eor x16,x16,x11,ror#18 // Sigma1(e) + ror x11,x23,#28 + add x22,x22,x17 // h+=Ch(e,f,g) + eor x17,x23,x23,ror#5 + add x22,x22,x16 // h+=Sigma1(e) + and x19,x19,x28 // (b^c)&=(a^b) + add x26,x26,x22 // d+=h + eor x19,x19,x24 // Maj(a,b,c) + eor x17,x11,x17,ror#34 // Sigma0(a) + add x22,x22,x19 // h+=Maj(a,b,c) + ldr x19,[x30],#8 // *K++, x28 in next round + //add x22,x22,x17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev x9,x9 // 6 +#endif + add x22,x22,x17 // h+=Sigma0(a) + ror x16,x26,#14 + add x21,x21,x19 // h+=K[i] + eor x12,x26,x26,ror#23 + and x17,x27,x26 + bic x19,x20,x26 + add x21,x21,x9 // h+=X[i] + orr x17,x17,x19 // Ch(e,f,g) + eor x19,x22,x23 // a^b, b^c in next round + eor x16,x16,x12,ror#18 // Sigma1(e) + ror x12,x22,#28 + add x21,x21,x17 // h+=Ch(e,f,g) + eor x17,x22,x22,ror#5 + add x21,x21,x16 // h+=Sigma1(e) + and x28,x28,x19 // (b^c)&=(a^b) + add x25,x25,x21 // d+=h + eor x28,x28,x23 // Maj(a,b,c) + eor x17,x12,x17,ror#34 // Sigma0(a) + add x21,x21,x28 // h+=Maj(a,b,c) + ldr x28,[x30],#8 // *K++, x19 in next round + //add x21,x21,x17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev x10,x10 // 7 +#endif + ldp x11,x12,[x1],#2*8 + add x21,x21,x17 // h+=Sigma0(a) + ror x16,x25,#14 + add x20,x20,x28 // h+=K[i] + eor x13,x25,x25,ror#23 + and x17,x26,x25 + bic x28,x27,x25 + add x20,x20,x10 // h+=X[i] + orr x17,x17,x28 // Ch(e,f,g) + eor x28,x21,x22 // a^b, b^c in next round + eor x16,x16,x13,ror#18 // Sigma1(e) + ror x13,x21,#28 + add x20,x20,x17 // h+=Ch(e,f,g) + eor x17,x21,x21,ror#5 + add x20,x20,x16 // h+=Sigma1(e) + and x19,x19,x28 // (b^c)&=(a^b) + add x24,x24,x20 // d+=h + eor x19,x19,x22 // Maj(a,b,c) + eor x17,x13,x17,ror#34 // Sigma0(a) + add x20,x20,x19 // h+=Maj(a,b,c) + ldr x19,[x30],#8 // *K++, x28 in next round + //add x20,x20,x17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev x11,x11 // 8 +#endif + add x20,x20,x17 // h+=Sigma0(a) + ror x16,x24,#14 + add x27,x27,x19 // h+=K[i] + eor x14,x24,x24,ror#23 + and x17,x25,x24 + bic x19,x26,x24 + add x27,x27,x11 // h+=X[i] + orr x17,x17,x19 // Ch(e,f,g) + eor x19,x20,x21 // a^b, b^c in next round + eor x16,x16,x14,ror#18 // Sigma1(e) + ror x14,x20,#28 + add x27,x27,x17 // h+=Ch(e,f,g) + eor x17,x20,x20,ror#5 + add x27,x27,x16 // h+=Sigma1(e) + and x28,x28,x19 // (b^c)&=(a^b) + add x23,x23,x27 // d+=h + eor x28,x28,x21 // Maj(a,b,c) + eor x17,x14,x17,ror#34 // Sigma0(a) + add x27,x27,x28 // h+=Maj(a,b,c) + ldr x28,[x30],#8 // *K++, x19 in next round + //add x27,x27,x17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev x12,x12 // 9 +#endif + ldp x13,x14,[x1],#2*8 + add x27,x27,x17 // h+=Sigma0(a) + ror x16,x23,#14 + add x26,x26,x28 // h+=K[i] + eor x15,x23,x23,ror#23 + and x17,x24,x23 + bic x28,x25,x23 + add x26,x26,x12 // h+=X[i] + orr x17,x17,x28 // Ch(e,f,g) + eor x28,x27,x20 // a^b, b^c in next round + eor x16,x16,x15,ror#18 // Sigma1(e) + ror x15,x27,#28 + add x26,x26,x17 // h+=Ch(e,f,g) + eor x17,x27,x27,ror#5 + add x26,x26,x16 // h+=Sigma1(e) + and x19,x19,x28 // (b^c)&=(a^b) + add x22,x22,x26 // d+=h + eor x19,x19,x20 // Maj(a,b,c) + eor x17,x15,x17,ror#34 // Sigma0(a) + add x26,x26,x19 // h+=Maj(a,b,c) + ldr x19,[x30],#8 // *K++, x28 in next round + //add x26,x26,x17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev x13,x13 // 10 +#endif + add x26,x26,x17 // h+=Sigma0(a) + ror x16,x22,#14 + add x25,x25,x19 // h+=K[i] + eor x0,x22,x22,ror#23 + and x17,x23,x22 + bic x19,x24,x22 + add x25,x25,x13 // h+=X[i] + orr x17,x17,x19 // Ch(e,f,g) + eor x19,x26,x27 // a^b, b^c in next round + eor x16,x16,x0,ror#18 // Sigma1(e) + ror x0,x26,#28 + add x25,x25,x17 // h+=Ch(e,f,g) + eor x17,x26,x26,ror#5 + add x25,x25,x16 // h+=Sigma1(e) + and x28,x28,x19 // (b^c)&=(a^b) + add x21,x21,x25 // d+=h + eor x28,x28,x27 // Maj(a,b,c) + eor x17,x0,x17,ror#34 // Sigma0(a) + add x25,x25,x28 // h+=Maj(a,b,c) + ldr x28,[x30],#8 // *K++, x19 in next round + //add x25,x25,x17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev x14,x14 // 11 +#endif + ldp x15,x0,[x1],#2*8 + add x25,x25,x17 // h+=Sigma0(a) + str x6,[sp,#24] + ror x16,x21,#14 + add x24,x24,x28 // h+=K[i] + eor x6,x21,x21,ror#23 + and x17,x22,x21 + bic x28,x23,x21 + add x24,x24,x14 // h+=X[i] + orr x17,x17,x28 // Ch(e,f,g) + eor x28,x25,x26 // a^b, b^c in next round + eor x16,x16,x6,ror#18 // Sigma1(e) + ror x6,x25,#28 + add x24,x24,x17 // h+=Ch(e,f,g) + eor x17,x25,x25,ror#5 + add x24,x24,x16 // h+=Sigma1(e) + and x19,x19,x28 // (b^c)&=(a^b) + add x20,x20,x24 // d+=h + eor x19,x19,x26 // Maj(a,b,c) + eor x17,x6,x17,ror#34 // Sigma0(a) + add x24,x24,x19 // h+=Maj(a,b,c) + ldr x19,[x30],#8 // *K++, x28 in next round + //add x24,x24,x17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev x15,x15 // 12 +#endif + add x24,x24,x17 // h+=Sigma0(a) + str x7,[sp,#0] + ror x16,x20,#14 + add x23,x23,x19 // h+=K[i] + eor x7,x20,x20,ror#23 + and x17,x21,x20 + bic x19,x22,x20 + add x23,x23,x15 // h+=X[i] + orr x17,x17,x19 // Ch(e,f,g) + eor x19,x24,x25 // a^b, b^c in next round + eor x16,x16,x7,ror#18 // Sigma1(e) + ror x7,x24,#28 + add x23,x23,x17 // h+=Ch(e,f,g) + eor x17,x24,x24,ror#5 + add x23,x23,x16 // h+=Sigma1(e) + and x28,x28,x19 // (b^c)&=(a^b) + add x27,x27,x23 // d+=h + eor x28,x28,x25 // Maj(a,b,c) + eor x17,x7,x17,ror#34 // Sigma0(a) + add x23,x23,x28 // h+=Maj(a,b,c) + ldr x28,[x30],#8 // *K++, x19 in next round + //add x23,x23,x17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev x0,x0 // 13 +#endif + ldp x1,x2,[x1] + add x23,x23,x17 // h+=Sigma0(a) + str x8,[sp,#8] + ror x16,x27,#14 + add x22,x22,x28 // h+=K[i] + eor x8,x27,x27,ror#23 + and x17,x20,x27 + bic x28,x21,x27 + add x22,x22,x0 // h+=X[i] + orr x17,x17,x28 // Ch(e,f,g) + eor x28,x23,x24 // a^b, b^c in next round + eor x16,x16,x8,ror#18 // Sigma1(e) + ror x8,x23,#28 + add x22,x22,x17 // h+=Ch(e,f,g) + eor x17,x23,x23,ror#5 + add x22,x22,x16 // h+=Sigma1(e) + and x19,x19,x28 // (b^c)&=(a^b) + add x26,x26,x22 // d+=h + eor x19,x19,x24 // Maj(a,b,c) + eor x17,x8,x17,ror#34 // Sigma0(a) + add x22,x22,x19 // h+=Maj(a,b,c) + ldr x19,[x30],#8 // *K++, x28 in next round + //add x22,x22,x17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev x1,x1 // 14 +#endif + ldr x6,[sp,#24] + add x22,x22,x17 // h+=Sigma0(a) + str x9,[sp,#16] + ror x16,x26,#14 + add x21,x21,x19 // h+=K[i] + eor x9,x26,x26,ror#23 + and x17,x27,x26 + bic x19,x20,x26 + add x21,x21,x1 // h+=X[i] + orr x17,x17,x19 // Ch(e,f,g) + eor x19,x22,x23 // a^b, b^c in next round + eor x16,x16,x9,ror#18 // Sigma1(e) + ror x9,x22,#28 + add x21,x21,x17 // h+=Ch(e,f,g) + eor x17,x22,x22,ror#5 + add x21,x21,x16 // h+=Sigma1(e) + and x28,x28,x19 // (b^c)&=(a^b) + add x25,x25,x21 // d+=h + eor x28,x28,x23 // Maj(a,b,c) + eor x17,x9,x17,ror#34 // Sigma0(a) + add x21,x21,x28 // h+=Maj(a,b,c) + ldr x28,[x30],#8 // *K++, x19 in next round + //add x21,x21,x17 // h+=Sigma0(a) +#ifndef __AARCH64EB__ + rev x2,x2 // 15 +#endif + ldr x7,[sp,#0] + add x21,x21,x17 // h+=Sigma0(a) + str x10,[sp,#24] + ror x16,x25,#14 + add x20,x20,x28 // h+=K[i] + ror x9,x4,#1 + and x17,x26,x25 + ror x8,x1,#19 + bic x28,x27,x25 + ror x10,x21,#28 + add x20,x20,x2 // h+=X[i] + eor x16,x16,x25,ror#18 + eor x9,x9,x4,ror#8 + orr x17,x17,x28 // Ch(e,f,g) + eor x28,x21,x22 // a^b, b^c in next round + eor x16,x16,x25,ror#41 // Sigma1(e) + eor x10,x10,x21,ror#34 + add x20,x20,x17 // h+=Ch(e,f,g) + and x19,x19,x28 // (b^c)&=(a^b) + eor x8,x8,x1,ror#61 + eor x9,x9,x4,lsr#7 // sigma0(X[i+1]) + add x20,x20,x16 // h+=Sigma1(e) + eor x19,x19,x22 // Maj(a,b,c) + eor x17,x10,x21,ror#39 // Sigma0(a) + eor x8,x8,x1,lsr#6 // sigma1(X[i+14]) + add x3,x3,x12 + add x24,x24,x20 // d+=h + add x20,x20,x19 // h+=Maj(a,b,c) + ldr x19,[x30],#8 // *K++, x28 in next round + add x3,x3,x9 + add x20,x20,x17 // h+=Sigma0(a) + add x3,x3,x8 +Loop_16_xx: + ldr x8,[sp,#8] + str x11,[sp,#0] + ror x16,x24,#14 + add x27,x27,x19 // h+=K[i] + ror x10,x5,#1 + and x17,x25,x24 + ror x9,x2,#19 + bic x19,x26,x24 + ror x11,x20,#28 + add x27,x27,x3 // h+=X[i] + eor x16,x16,x24,ror#18 + eor x10,x10,x5,ror#8 + orr x17,x17,x19 // Ch(e,f,g) + eor x19,x20,x21 // a^b, b^c in next round + eor x16,x16,x24,ror#41 // Sigma1(e) + eor x11,x11,x20,ror#34 + add x27,x27,x17 // h+=Ch(e,f,g) + and x28,x28,x19 // (b^c)&=(a^b) + eor x9,x9,x2,ror#61 + eor x10,x10,x5,lsr#7 // sigma0(X[i+1]) + add x27,x27,x16 // h+=Sigma1(e) + eor x28,x28,x21 // Maj(a,b,c) + eor x17,x11,x20,ror#39 // Sigma0(a) + eor x9,x9,x2,lsr#6 // sigma1(X[i+14]) + add x4,x4,x13 + add x23,x23,x27 // d+=h + add x27,x27,x28 // h+=Maj(a,b,c) + ldr x28,[x30],#8 // *K++, x19 in next round + add x4,x4,x10 + add x27,x27,x17 // h+=Sigma0(a) + add x4,x4,x9 + ldr x9,[sp,#16] + str x12,[sp,#8] + ror x16,x23,#14 + add x26,x26,x28 // h+=K[i] + ror x11,x6,#1 + and x17,x24,x23 + ror x10,x3,#19 + bic x28,x25,x23 + ror x12,x27,#28 + add x26,x26,x4 // h+=X[i] + eor x16,x16,x23,ror#18 + eor x11,x11,x6,ror#8 + orr x17,x17,x28 // Ch(e,f,g) + eor x28,x27,x20 // a^b, b^c in next round + eor x16,x16,x23,ror#41 // Sigma1(e) + eor x12,x12,x27,ror#34 + add x26,x26,x17 // h+=Ch(e,f,g) + and x19,x19,x28 // (b^c)&=(a^b) + eor x10,x10,x3,ror#61 + eor x11,x11,x6,lsr#7 // sigma0(X[i+1]) + add x26,x26,x16 // h+=Sigma1(e) + eor x19,x19,x20 // Maj(a,b,c) + eor x17,x12,x27,ror#39 // Sigma0(a) + eor x10,x10,x3,lsr#6 // sigma1(X[i+14]) + add x5,x5,x14 + add x22,x22,x26 // d+=h + add x26,x26,x19 // h+=Maj(a,b,c) + ldr x19,[x30],#8 // *K++, x28 in next round + add x5,x5,x11 + add x26,x26,x17 // h+=Sigma0(a) + add x5,x5,x10 + ldr x10,[sp,#24] + str x13,[sp,#16] + ror x16,x22,#14 + add x25,x25,x19 // h+=K[i] + ror x12,x7,#1 + and x17,x23,x22 + ror x11,x4,#19 + bic x19,x24,x22 + ror x13,x26,#28 + add x25,x25,x5 // h+=X[i] + eor x16,x16,x22,ror#18 + eor x12,x12,x7,ror#8 + orr x17,x17,x19 // Ch(e,f,g) + eor x19,x26,x27 // a^b, b^c in next round + eor x16,x16,x22,ror#41 // Sigma1(e) + eor x13,x13,x26,ror#34 + add x25,x25,x17 // h+=Ch(e,f,g) + and x28,x28,x19 // (b^c)&=(a^b) + eor x11,x11,x4,ror#61 + eor x12,x12,x7,lsr#7 // sigma0(X[i+1]) + add x25,x25,x16 // h+=Sigma1(e) + eor x28,x28,x27 // Maj(a,b,c) + eor x17,x13,x26,ror#39 // Sigma0(a) + eor x11,x11,x4,lsr#6 // sigma1(X[i+14]) + add x6,x6,x15 + add x21,x21,x25 // d+=h + add x25,x25,x28 // h+=Maj(a,b,c) + ldr x28,[x30],#8 // *K++, x19 in next round + add x6,x6,x12 + add x25,x25,x17 // h+=Sigma0(a) + add x6,x6,x11 + ldr x11,[sp,#0] + str x14,[sp,#24] + ror x16,x21,#14 + add x24,x24,x28 // h+=K[i] + ror x13,x8,#1 + and x17,x22,x21 + ror x12,x5,#19 + bic x28,x23,x21 + ror x14,x25,#28 + add x24,x24,x6 // h+=X[i] + eor x16,x16,x21,ror#18 + eor x13,x13,x8,ror#8 + orr x17,x17,x28 // Ch(e,f,g) + eor x28,x25,x26 // a^b, b^c in next round + eor x16,x16,x21,ror#41 // Sigma1(e) + eor x14,x14,x25,ror#34 + add x24,x24,x17 // h+=Ch(e,f,g) + and x19,x19,x28 // (b^c)&=(a^b) + eor x12,x12,x5,ror#61 + eor x13,x13,x8,lsr#7 // sigma0(X[i+1]) + add x24,x24,x16 // h+=Sigma1(e) + eor x19,x19,x26 // Maj(a,b,c) + eor x17,x14,x25,ror#39 // Sigma0(a) + eor x12,x12,x5,lsr#6 // sigma1(X[i+14]) + add x7,x7,x0 + add x20,x20,x24 // d+=h + add x24,x24,x19 // h+=Maj(a,b,c) + ldr x19,[x30],#8 // *K++, x28 in next round + add x7,x7,x13 + add x24,x24,x17 // h+=Sigma0(a) + add x7,x7,x12 + ldr x12,[sp,#8] + str x15,[sp,#0] + ror x16,x20,#14 + add x23,x23,x19 // h+=K[i] + ror x14,x9,#1 + and x17,x21,x20 + ror x13,x6,#19 + bic x19,x22,x20 + ror x15,x24,#28 + add x23,x23,x7 // h+=X[i] + eor x16,x16,x20,ror#18 + eor x14,x14,x9,ror#8 + orr x17,x17,x19 // Ch(e,f,g) + eor x19,x24,x25 // a^b, b^c in next round + eor x16,x16,x20,ror#41 // Sigma1(e) + eor x15,x15,x24,ror#34 + add x23,x23,x17 // h+=Ch(e,f,g) + and x28,x28,x19 // (b^c)&=(a^b) + eor x13,x13,x6,ror#61 + eor x14,x14,x9,lsr#7 // sigma0(X[i+1]) + add x23,x23,x16 // h+=Sigma1(e) + eor x28,x28,x25 // Maj(a,b,c) + eor x17,x15,x24,ror#39 // Sigma0(a) + eor x13,x13,x6,lsr#6 // sigma1(X[i+14]) + add x8,x8,x1 + add x27,x27,x23 // d+=h + add x23,x23,x28 // h+=Maj(a,b,c) + ldr x28,[x30],#8 // *K++, x19 in next round + add x8,x8,x14 + add x23,x23,x17 // h+=Sigma0(a) + add x8,x8,x13 + ldr x13,[sp,#16] + str x0,[sp,#8] + ror x16,x27,#14 + add x22,x22,x28 // h+=K[i] + ror x15,x10,#1 + and x17,x20,x27 + ror x14,x7,#19 + bic x28,x21,x27 + ror x0,x23,#28 + add x22,x22,x8 // h+=X[i] + eor x16,x16,x27,ror#18 + eor x15,x15,x10,ror#8 + orr x17,x17,x28 // Ch(e,f,g) + eor x28,x23,x24 // a^b, b^c in next round + eor x16,x16,x27,ror#41 // Sigma1(e) + eor x0,x0,x23,ror#34 + add x22,x22,x17 // h+=Ch(e,f,g) + and x19,x19,x28 // (b^c)&=(a^b) + eor x14,x14,x7,ror#61 + eor x15,x15,x10,lsr#7 // sigma0(X[i+1]) + add x22,x22,x16 // h+=Sigma1(e) + eor x19,x19,x24 // Maj(a,b,c) + eor x17,x0,x23,ror#39 // Sigma0(a) + eor x14,x14,x7,lsr#6 // sigma1(X[i+14]) + add x9,x9,x2 + add x26,x26,x22 // d+=h + add x22,x22,x19 // h+=Maj(a,b,c) + ldr x19,[x30],#8 // *K++, x28 in next round + add x9,x9,x15 + add x22,x22,x17 // h+=Sigma0(a) + add x9,x9,x14 + ldr x14,[sp,#24] + str x1,[sp,#16] + ror x16,x26,#14 + add x21,x21,x19 // h+=K[i] + ror x0,x11,#1 + and x17,x27,x26 + ror x15,x8,#19 + bic x19,x20,x26 + ror x1,x22,#28 + add x21,x21,x9 // h+=X[i] + eor x16,x16,x26,ror#18 + eor x0,x0,x11,ror#8 + orr x17,x17,x19 // Ch(e,f,g) + eor x19,x22,x23 // a^b, b^c in next round + eor x16,x16,x26,ror#41 // Sigma1(e) + eor x1,x1,x22,ror#34 + add x21,x21,x17 // h+=Ch(e,f,g) + and x28,x28,x19 // (b^c)&=(a^b) + eor x15,x15,x8,ror#61 + eor x0,x0,x11,lsr#7 // sigma0(X[i+1]) + add x21,x21,x16 // h+=Sigma1(e) + eor x28,x28,x23 // Maj(a,b,c) + eor x17,x1,x22,ror#39 // Sigma0(a) + eor x15,x15,x8,lsr#6 // sigma1(X[i+14]) + add x10,x10,x3 + add x25,x25,x21 // d+=h + add x21,x21,x28 // h+=Maj(a,b,c) + ldr x28,[x30],#8 // *K++, x19 in next round + add x10,x10,x0 + add x21,x21,x17 // h+=Sigma0(a) + add x10,x10,x15 + ldr x15,[sp,#0] + str x2,[sp,#24] + ror x16,x25,#14 + add x20,x20,x28 // h+=K[i] + ror x1,x12,#1 + and x17,x26,x25 + ror x0,x9,#19 + bic x28,x27,x25 + ror x2,x21,#28 + add x20,x20,x10 // h+=X[i] + eor x16,x16,x25,ror#18 + eor x1,x1,x12,ror#8 + orr x17,x17,x28 // Ch(e,f,g) + eor x28,x21,x22 // a^b, b^c in next round + eor x16,x16,x25,ror#41 // Sigma1(e) + eor x2,x2,x21,ror#34 + add x20,x20,x17 // h+=Ch(e,f,g) + and x19,x19,x28 // (b^c)&=(a^b) + eor x0,x0,x9,ror#61 + eor x1,x1,x12,lsr#7 // sigma0(X[i+1]) + add x20,x20,x16 // h+=Sigma1(e) + eor x19,x19,x22 // Maj(a,b,c) + eor x17,x2,x21,ror#39 // Sigma0(a) + eor x0,x0,x9,lsr#6 // sigma1(X[i+14]) + add x11,x11,x4 + add x24,x24,x20 // d+=h + add x20,x20,x19 // h+=Maj(a,b,c) + ldr x19,[x30],#8 // *K++, x28 in next round + add x11,x11,x1 + add x20,x20,x17 // h+=Sigma0(a) + add x11,x11,x0 + ldr x0,[sp,#8] + str x3,[sp,#0] + ror x16,x24,#14 + add x27,x27,x19 // h+=K[i] + ror x2,x13,#1 + and x17,x25,x24 + ror x1,x10,#19 + bic x19,x26,x24 + ror x3,x20,#28 + add x27,x27,x11 // h+=X[i] + eor x16,x16,x24,ror#18 + eor x2,x2,x13,ror#8 + orr x17,x17,x19 // Ch(e,f,g) + eor x19,x20,x21 // a^b, b^c in next round + eor x16,x16,x24,ror#41 // Sigma1(e) + eor x3,x3,x20,ror#34 + add x27,x27,x17 // h+=Ch(e,f,g) + and x28,x28,x19 // (b^c)&=(a^b) + eor x1,x1,x10,ror#61 + eor x2,x2,x13,lsr#7 // sigma0(X[i+1]) + add x27,x27,x16 // h+=Sigma1(e) + eor x28,x28,x21 // Maj(a,b,c) + eor x17,x3,x20,ror#39 // Sigma0(a) + eor x1,x1,x10,lsr#6 // sigma1(X[i+14]) + add x12,x12,x5 + add x23,x23,x27 // d+=h + add x27,x27,x28 // h+=Maj(a,b,c) + ldr x28,[x30],#8 // *K++, x19 in next round + add x12,x12,x2 + add x27,x27,x17 // h+=Sigma0(a) + add x12,x12,x1 + ldr x1,[sp,#16] + str x4,[sp,#8] + ror x16,x23,#14 + add x26,x26,x28 // h+=K[i] + ror x3,x14,#1 + and x17,x24,x23 + ror x2,x11,#19 + bic x28,x25,x23 + ror x4,x27,#28 + add x26,x26,x12 // h+=X[i] + eor x16,x16,x23,ror#18 + eor x3,x3,x14,ror#8 + orr x17,x17,x28 // Ch(e,f,g) + eor x28,x27,x20 // a^b, b^c in next round + eor x16,x16,x23,ror#41 // Sigma1(e) + eor x4,x4,x27,ror#34 + add x26,x26,x17 // h+=Ch(e,f,g) + and x19,x19,x28 // (b^c)&=(a^b) + eor x2,x2,x11,ror#61 + eor x3,x3,x14,lsr#7 // sigma0(X[i+1]) + add x26,x26,x16 // h+=Sigma1(e) + eor x19,x19,x20 // Maj(a,b,c) + eor x17,x4,x27,ror#39 // Sigma0(a) + eor x2,x2,x11,lsr#6 // sigma1(X[i+14]) + add x13,x13,x6 + add x22,x22,x26 // d+=h + add x26,x26,x19 // h+=Maj(a,b,c) + ldr x19,[x30],#8 // *K++, x28 in next round + add x13,x13,x3 + add x26,x26,x17 // h+=Sigma0(a) + add x13,x13,x2 + ldr x2,[sp,#24] + str x5,[sp,#16] + ror x16,x22,#14 + add x25,x25,x19 // h+=K[i] + ror x4,x15,#1 + and x17,x23,x22 + ror x3,x12,#19 + bic x19,x24,x22 + ror x5,x26,#28 + add x25,x25,x13 // h+=X[i] + eor x16,x16,x22,ror#18 + eor x4,x4,x15,ror#8 + orr x17,x17,x19 // Ch(e,f,g) + eor x19,x26,x27 // a^b, b^c in next round + eor x16,x16,x22,ror#41 // Sigma1(e) + eor x5,x5,x26,ror#34 + add x25,x25,x17 // h+=Ch(e,f,g) + and x28,x28,x19 // (b^c)&=(a^b) + eor x3,x3,x12,ror#61 + eor x4,x4,x15,lsr#7 // sigma0(X[i+1]) + add x25,x25,x16 // h+=Sigma1(e) + eor x28,x28,x27 // Maj(a,b,c) + eor x17,x5,x26,ror#39 // Sigma0(a) + eor x3,x3,x12,lsr#6 // sigma1(X[i+14]) + add x14,x14,x7 + add x21,x21,x25 // d+=h + add x25,x25,x28 // h+=Maj(a,b,c) + ldr x28,[x30],#8 // *K++, x19 in next round + add x14,x14,x4 + add x25,x25,x17 // h+=Sigma0(a) + add x14,x14,x3 + ldr x3,[sp,#0] + str x6,[sp,#24] + ror x16,x21,#14 + add x24,x24,x28 // h+=K[i] + ror x5,x0,#1 + and x17,x22,x21 + ror x4,x13,#19 + bic x28,x23,x21 + ror x6,x25,#28 + add x24,x24,x14 // h+=X[i] + eor x16,x16,x21,ror#18 + eor x5,x5,x0,ror#8 + orr x17,x17,x28 // Ch(e,f,g) + eor x28,x25,x26 // a^b, b^c in next round + eor x16,x16,x21,ror#41 // Sigma1(e) + eor x6,x6,x25,ror#34 + add x24,x24,x17 // h+=Ch(e,f,g) + and x19,x19,x28 // (b^c)&=(a^b) + eor x4,x4,x13,ror#61 + eor x5,x5,x0,lsr#7 // sigma0(X[i+1]) + add x24,x24,x16 // h+=Sigma1(e) + eor x19,x19,x26 // Maj(a,b,c) + eor x17,x6,x25,ror#39 // Sigma0(a) + eor x4,x4,x13,lsr#6 // sigma1(X[i+14]) + add x15,x15,x8 + add x20,x20,x24 // d+=h + add x24,x24,x19 // h+=Maj(a,b,c) + ldr x19,[x30],#8 // *K++, x28 in next round + add x15,x15,x5 + add x24,x24,x17 // h+=Sigma0(a) + add x15,x15,x4 + ldr x4,[sp,#8] + str x7,[sp,#0] + ror x16,x20,#14 + add x23,x23,x19 // h+=K[i] + ror x6,x1,#1 + and x17,x21,x20 + ror x5,x14,#19 + bic x19,x22,x20 + ror x7,x24,#28 + add x23,x23,x15 // h+=X[i] + eor x16,x16,x20,ror#18 + eor x6,x6,x1,ror#8 + orr x17,x17,x19 // Ch(e,f,g) + eor x19,x24,x25 // a^b, b^c in next round + eor x16,x16,x20,ror#41 // Sigma1(e) + eor x7,x7,x24,ror#34 + add x23,x23,x17 // h+=Ch(e,f,g) + and x28,x28,x19 // (b^c)&=(a^b) + eor x5,x5,x14,ror#61 + eor x6,x6,x1,lsr#7 // sigma0(X[i+1]) + add x23,x23,x16 // h+=Sigma1(e) + eor x28,x28,x25 // Maj(a,b,c) + eor x17,x7,x24,ror#39 // Sigma0(a) + eor x5,x5,x14,lsr#6 // sigma1(X[i+14]) + add x0,x0,x9 + add x27,x27,x23 // d+=h + add x23,x23,x28 // h+=Maj(a,b,c) + ldr x28,[x30],#8 // *K++, x19 in next round + add x0,x0,x6 + add x23,x23,x17 // h+=Sigma0(a) + add x0,x0,x5 + ldr x5,[sp,#16] + str x8,[sp,#8] + ror x16,x27,#14 + add x22,x22,x28 // h+=K[i] + ror x7,x2,#1 + and x17,x20,x27 + ror x6,x15,#19 + bic x28,x21,x27 + ror x8,x23,#28 + add x22,x22,x0 // h+=X[i] + eor x16,x16,x27,ror#18 + eor x7,x7,x2,ror#8 + orr x17,x17,x28 // Ch(e,f,g) + eor x28,x23,x24 // a^b, b^c in next round + eor x16,x16,x27,ror#41 // Sigma1(e) + eor x8,x8,x23,ror#34 + add x22,x22,x17 // h+=Ch(e,f,g) + and x19,x19,x28 // (b^c)&=(a^b) + eor x6,x6,x15,ror#61 + eor x7,x7,x2,lsr#7 // sigma0(X[i+1]) + add x22,x22,x16 // h+=Sigma1(e) + eor x19,x19,x24 // Maj(a,b,c) + eor x17,x8,x23,ror#39 // Sigma0(a) + eor x6,x6,x15,lsr#6 // sigma1(X[i+14]) + add x1,x1,x10 + add x26,x26,x22 // d+=h + add x22,x22,x19 // h+=Maj(a,b,c) + ldr x19,[x30],#8 // *K++, x28 in next round + add x1,x1,x7 + add x22,x22,x17 // h+=Sigma0(a) + add x1,x1,x6 + ldr x6,[sp,#24] + str x9,[sp,#16] + ror x16,x26,#14 + add x21,x21,x19 // h+=K[i] + ror x8,x3,#1 + and x17,x27,x26 + ror x7,x0,#19 + bic x19,x20,x26 + ror x9,x22,#28 + add x21,x21,x1 // h+=X[i] + eor x16,x16,x26,ror#18 + eor x8,x8,x3,ror#8 + orr x17,x17,x19 // Ch(e,f,g) + eor x19,x22,x23 // a^b, b^c in next round + eor x16,x16,x26,ror#41 // Sigma1(e) + eor x9,x9,x22,ror#34 + add x21,x21,x17 // h+=Ch(e,f,g) + and x28,x28,x19 // (b^c)&=(a^b) + eor x7,x7,x0,ror#61 + eor x8,x8,x3,lsr#7 // sigma0(X[i+1]) + add x21,x21,x16 // h+=Sigma1(e) + eor x28,x28,x23 // Maj(a,b,c) + eor x17,x9,x22,ror#39 // Sigma0(a) + eor x7,x7,x0,lsr#6 // sigma1(X[i+14]) + add x2,x2,x11 + add x25,x25,x21 // d+=h + add x21,x21,x28 // h+=Maj(a,b,c) + ldr x28,[x30],#8 // *K++, x19 in next round + add x2,x2,x8 + add x21,x21,x17 // h+=Sigma0(a) + add x2,x2,x7 + ldr x7,[sp,#0] + str x10,[sp,#24] + ror x16,x25,#14 + add x20,x20,x28 // h+=K[i] + ror x9,x4,#1 + and x17,x26,x25 + ror x8,x1,#19 + bic x28,x27,x25 + ror x10,x21,#28 + add x20,x20,x2 // h+=X[i] + eor x16,x16,x25,ror#18 + eor x9,x9,x4,ror#8 + orr x17,x17,x28 // Ch(e,f,g) + eor x28,x21,x22 // a^b, b^c in next round + eor x16,x16,x25,ror#41 // Sigma1(e) + eor x10,x10,x21,ror#34 + add x20,x20,x17 // h+=Ch(e,f,g) + and x19,x19,x28 // (b^c)&=(a^b) + eor x8,x8,x1,ror#61 + eor x9,x9,x4,lsr#7 // sigma0(X[i+1]) + add x20,x20,x16 // h+=Sigma1(e) + eor x19,x19,x22 // Maj(a,b,c) + eor x17,x10,x21,ror#39 // Sigma0(a) + eor x8,x8,x1,lsr#6 // sigma1(X[i+14]) + add x3,x3,x12 + add x24,x24,x20 // d+=h + add x20,x20,x19 // h+=Maj(a,b,c) + ldr x19,[x30],#8 // *K++, x28 in next round + add x3,x3,x9 + add x20,x20,x17 // h+=Sigma0(a) + add x3,x3,x8 + cbnz x19,Loop_16_xx + + ldp x0,x2,[x29,#96] + ldr x1,[x29,#112] + sub x30,x30,#648 // rewind + + ldp x3,x4,[x0] + ldp x5,x6,[x0,#2*8] + add x1,x1,#14*8 // advance input pointer + ldp x7,x8,[x0,#4*8] + add x20,x20,x3 + ldp x9,x10,[x0,#6*8] + add x21,x21,x4 + add x22,x22,x5 + add x23,x23,x6 + stp x20,x21,[x0] + add x24,x24,x7 + add x25,x25,x8 + stp x22,x23,[x0,#2*8] + add x26,x26,x9 + add x27,x27,x10 + cmp x1,x2 + stp x24,x25,[x0,#4*8] + stp x26,x27,[x0,#6*8] + b.ne Loop + + ldp x19,x20,[x29,#16] + add sp,sp,#4*8 + ldp x21,x22,[x29,#32] + ldp x23,x24,[x29,#48] + ldp x25,x26,[x29,#64] + ldp x27,x28,[x29,#80] + ldp x29,x30,[sp],#128 +.long 0xd50323bf // autiasp + ret + + +.align 6 + +LK512: +.quad 0x428a2f98d728ae22,0x7137449123ef65cd +.quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc +.quad 0x3956c25bf348b538,0x59f111f1b605d019 +.quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118 +.quad 0xd807aa98a3030242,0x12835b0145706fbe +.quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2 +.quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1 +.quad 0x9bdc06a725c71235,0xc19bf174cf692694 +.quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3 +.quad 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65 +.quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483 +.quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5 +.quad 0x983e5152ee66dfab,0xa831c66d2db43210 +.quad 0xb00327c898fb213f,0xbf597fc7beef0ee4 +.quad 0xc6e00bf33da88fc2,0xd5a79147930aa725 +.quad 0x06ca6351e003826f,0x142929670a0e6e70 +.quad 0x27b70a8546d22ffc,0x2e1b21385c26c926 +.quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df +.quad 0x650a73548baf63de,0x766a0abb3c77b2a8 +.quad 0x81c2c92e47edaee6,0x92722c851482353b +.quad 0xa2bfe8a14cf10364,0xa81a664bbc423001 +.quad 0xc24b8b70d0f89791,0xc76c51a30654be30 +.quad 0xd192e819d6ef5218,0xd69906245565a910 +.quad 0xf40e35855771202a,0x106aa07032bbd1b8 +.quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53 +.quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8 +.quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb +.quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3 +.quad 0x748f82ee5defb2fc,0x78a5636f43172f60 +.quad 0x84c87814a1f0ab72,0x8cc702081a6439ec +.quad 0x90befffa23631e28,0xa4506cebde82bde9 +.quad 0xbef9a3f7b2c67915,0xc67178f2e372532b +.quad 0xca273eceea26619c,0xd186b8c721c0c207 +.quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178 +.quad 0x06f067aa72176fba,0x0a637dc5a2c898a6 +.quad 0x113f9804bef90dae,0x1b710b35131c471b +.quad 0x28db77f523047d84,0x32caab7b40c72493 +.quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c +.quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a +.quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817 +.quad 0 // terminator + +#ifndef __KERNEL__ +.align 3 +LOPENSSL_armcap_P: +# ifdef __ILP32__ +.long _OPENSSL_armcap_P-. +# else +.quad ARMV7_NEON +# endif +#endif +.byte 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.align 2 +.align 2 +#ifndef __KERNEL__ + +.align 6 +sha512_block_armv8: +Lv8_entry: + stp x29,x30,[sp,#-16]! + add x29,sp,#0 + + ld1 {v16.16b,v17.16b,v18.16b,v19.16b},[x1],#64 // load input + ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x1],#64 + + ld1 {v0.2d,v1.2d,v2.2d,v3.2d},[x0] // load context + adr x3,LK512 + + rev64 v16.16b,v16.16b + rev64 v17.16b,v17.16b + rev64 v18.16b,v18.16b + rev64 v19.16b,v19.16b + rev64 v20.16b,v20.16b + rev64 v21.16b,v21.16b + rev64 v22.16b,v22.16b + rev64 v23.16b,v23.16b + b Loop_hw + +.align 4 +Loop_hw: + ld1 {v24.2d},[x3],#16 + subs x2,x2,#1 + sub x4,x1,#128 + orr v26.16b,v0.16b,v0.16b // offload + orr v27.16b,v1.16b,v1.16b + orr v28.16b,v2.16b,v2.16b + orr v29.16b,v3.16b,v3.16b + csel x1,x1,x4,ne // conditional rewind + add v24.2d,v24.2d,v16.2d + ld1 {v25.2d},[x3],#16 + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v2.16b,v3.16b,#8 + ext v6.16b,v1.16b,v2.16b,#8 + add v3.2d,v3.2d,v24.2d // "T1 + H + K512[i]" +.long 0xcec08230 //sha512su0 v16.16b,v17.16b + ext v7.16b,v20.16b,v21.16b,#8 +.long 0xce6680a3 //sha512h v3.16b,v5.16b,v6.16b +.long 0xce678af0 //sha512su1 v16.16b,v23.16b,v7.16b + add v4.2d,v1.2d,v3.2d // "D + T1" +.long 0xce608423 //sha512h2 v3.16b,v1.16b,v0.16b + add v25.2d,v25.2d,v17.2d + ld1 {v24.2d},[x3],#16 + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v4.16b,v2.16b,#8 + ext v6.16b,v0.16b,v4.16b,#8 + add v2.2d,v2.2d,v25.2d // "T1 + H + K512[i]" +.long 0xcec08251 //sha512su0 v17.16b,v18.16b + ext v7.16b,v21.16b,v22.16b,#8 +.long 0xce6680a2 //sha512h v2.16b,v5.16b,v6.16b +.long 0xce678a11 //sha512su1 v17.16b,v16.16b,v7.16b + add v1.2d,v0.2d,v2.2d // "D + T1" +.long 0xce638402 //sha512h2 v2.16b,v0.16b,v3.16b + add v24.2d,v24.2d,v18.2d + ld1 {v25.2d},[x3],#16 + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v1.16b,v4.16b,#8 + ext v6.16b,v3.16b,v1.16b,#8 + add v4.2d,v4.2d,v24.2d // "T1 + H + K512[i]" +.long 0xcec08272 //sha512su0 v18.16b,v19.16b + ext v7.16b,v22.16b,v23.16b,#8 +.long 0xce6680a4 //sha512h v4.16b,v5.16b,v6.16b +.long 0xce678a32 //sha512su1 v18.16b,v17.16b,v7.16b + add v0.2d,v3.2d,v4.2d // "D + T1" +.long 0xce628464 //sha512h2 v4.16b,v3.16b,v2.16b + add v25.2d,v25.2d,v19.2d + ld1 {v24.2d},[x3],#16 + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v0.16b,v1.16b,#8 + ext v6.16b,v2.16b,v0.16b,#8 + add v1.2d,v1.2d,v25.2d // "T1 + H + K512[i]" +.long 0xcec08293 //sha512su0 v19.16b,v20.16b + ext v7.16b,v23.16b,v16.16b,#8 +.long 0xce6680a1 //sha512h v1.16b,v5.16b,v6.16b +.long 0xce678a53 //sha512su1 v19.16b,v18.16b,v7.16b + add v3.2d,v2.2d,v1.2d // "D + T1" +.long 0xce648441 //sha512h2 v1.16b,v2.16b,v4.16b + add v24.2d,v24.2d,v20.2d + ld1 {v25.2d},[x3],#16 + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v3.16b,v0.16b,#8 + ext v6.16b,v4.16b,v3.16b,#8 + add v0.2d,v0.2d,v24.2d // "T1 + H + K512[i]" +.long 0xcec082b4 //sha512su0 v20.16b,v21.16b + ext v7.16b,v16.16b,v17.16b,#8 +.long 0xce6680a0 //sha512h v0.16b,v5.16b,v6.16b +.long 0xce678a74 //sha512su1 v20.16b,v19.16b,v7.16b + add v2.2d,v4.2d,v0.2d // "D + T1" +.long 0xce618480 //sha512h2 v0.16b,v4.16b,v1.16b + add v25.2d,v25.2d,v21.2d + ld1 {v24.2d},[x3],#16 + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v2.16b,v3.16b,#8 + ext v6.16b,v1.16b,v2.16b,#8 + add v3.2d,v3.2d,v25.2d // "T1 + H + K512[i]" +.long 0xcec082d5 //sha512su0 v21.16b,v22.16b + ext v7.16b,v17.16b,v18.16b,#8 +.long 0xce6680a3 //sha512h v3.16b,v5.16b,v6.16b +.long 0xce678a95 //sha512su1 v21.16b,v20.16b,v7.16b + add v4.2d,v1.2d,v3.2d // "D + T1" +.long 0xce608423 //sha512h2 v3.16b,v1.16b,v0.16b + add v24.2d,v24.2d,v22.2d + ld1 {v25.2d},[x3],#16 + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v4.16b,v2.16b,#8 + ext v6.16b,v0.16b,v4.16b,#8 + add v2.2d,v2.2d,v24.2d // "T1 + H + K512[i]" +.long 0xcec082f6 //sha512su0 v22.16b,v23.16b + ext v7.16b,v18.16b,v19.16b,#8 +.long 0xce6680a2 //sha512h v2.16b,v5.16b,v6.16b +.long 0xce678ab6 //sha512su1 v22.16b,v21.16b,v7.16b + add v1.2d,v0.2d,v2.2d // "D + T1" +.long 0xce638402 //sha512h2 v2.16b,v0.16b,v3.16b + add v25.2d,v25.2d,v23.2d + ld1 {v24.2d},[x3],#16 + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v1.16b,v4.16b,#8 + ext v6.16b,v3.16b,v1.16b,#8 + add v4.2d,v4.2d,v25.2d // "T1 + H + K512[i]" +.long 0xcec08217 //sha512su0 v23.16b,v16.16b + ext v7.16b,v19.16b,v20.16b,#8 +.long 0xce6680a4 //sha512h v4.16b,v5.16b,v6.16b +.long 0xce678ad7 //sha512su1 v23.16b,v22.16b,v7.16b + add v0.2d,v3.2d,v4.2d // "D + T1" +.long 0xce628464 //sha512h2 v4.16b,v3.16b,v2.16b + add v24.2d,v24.2d,v16.2d + ld1 {v25.2d},[x3],#16 + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v0.16b,v1.16b,#8 + ext v6.16b,v2.16b,v0.16b,#8 + add v1.2d,v1.2d,v24.2d // "T1 + H + K512[i]" +.long 0xcec08230 //sha512su0 v16.16b,v17.16b + ext v7.16b,v20.16b,v21.16b,#8 +.long 0xce6680a1 //sha512h v1.16b,v5.16b,v6.16b +.long 0xce678af0 //sha512su1 v16.16b,v23.16b,v7.16b + add v3.2d,v2.2d,v1.2d // "D + T1" +.long 0xce648441 //sha512h2 v1.16b,v2.16b,v4.16b + add v25.2d,v25.2d,v17.2d + ld1 {v24.2d},[x3],#16 + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v3.16b,v0.16b,#8 + ext v6.16b,v4.16b,v3.16b,#8 + add v0.2d,v0.2d,v25.2d // "T1 + H + K512[i]" +.long 0xcec08251 //sha512su0 v17.16b,v18.16b + ext v7.16b,v21.16b,v22.16b,#8 +.long 0xce6680a0 //sha512h v0.16b,v5.16b,v6.16b +.long 0xce678a11 //sha512su1 v17.16b,v16.16b,v7.16b + add v2.2d,v4.2d,v0.2d // "D + T1" +.long 0xce618480 //sha512h2 v0.16b,v4.16b,v1.16b + add v24.2d,v24.2d,v18.2d + ld1 {v25.2d},[x3],#16 + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v2.16b,v3.16b,#8 + ext v6.16b,v1.16b,v2.16b,#8 + add v3.2d,v3.2d,v24.2d // "T1 + H + K512[i]" +.long 0xcec08272 //sha512su0 v18.16b,v19.16b + ext v7.16b,v22.16b,v23.16b,#8 +.long 0xce6680a3 //sha512h v3.16b,v5.16b,v6.16b +.long 0xce678a32 //sha512su1 v18.16b,v17.16b,v7.16b + add v4.2d,v1.2d,v3.2d // "D + T1" +.long 0xce608423 //sha512h2 v3.16b,v1.16b,v0.16b + add v25.2d,v25.2d,v19.2d + ld1 {v24.2d},[x3],#16 + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v4.16b,v2.16b,#8 + ext v6.16b,v0.16b,v4.16b,#8 + add v2.2d,v2.2d,v25.2d // "T1 + H + K512[i]" +.long 0xcec08293 //sha512su0 v19.16b,v20.16b + ext v7.16b,v23.16b,v16.16b,#8 +.long 0xce6680a2 //sha512h v2.16b,v5.16b,v6.16b +.long 0xce678a53 //sha512su1 v19.16b,v18.16b,v7.16b + add v1.2d,v0.2d,v2.2d // "D + T1" +.long 0xce638402 //sha512h2 v2.16b,v0.16b,v3.16b + add v24.2d,v24.2d,v20.2d + ld1 {v25.2d},[x3],#16 + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v1.16b,v4.16b,#8 + ext v6.16b,v3.16b,v1.16b,#8 + add v4.2d,v4.2d,v24.2d // "T1 + H + K512[i]" +.long 0xcec082b4 //sha512su0 v20.16b,v21.16b + ext v7.16b,v16.16b,v17.16b,#8 +.long 0xce6680a4 //sha512h v4.16b,v5.16b,v6.16b +.long 0xce678a74 //sha512su1 v20.16b,v19.16b,v7.16b + add v0.2d,v3.2d,v4.2d // "D + T1" +.long 0xce628464 //sha512h2 v4.16b,v3.16b,v2.16b + add v25.2d,v25.2d,v21.2d + ld1 {v24.2d},[x3],#16 + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v0.16b,v1.16b,#8 + ext v6.16b,v2.16b,v0.16b,#8 + add v1.2d,v1.2d,v25.2d // "T1 + H + K512[i]" +.long 0xcec082d5 //sha512su0 v21.16b,v22.16b + ext v7.16b,v17.16b,v18.16b,#8 +.long 0xce6680a1 //sha512h v1.16b,v5.16b,v6.16b +.long 0xce678a95 //sha512su1 v21.16b,v20.16b,v7.16b + add v3.2d,v2.2d,v1.2d // "D + T1" +.long 0xce648441 //sha512h2 v1.16b,v2.16b,v4.16b + add v24.2d,v24.2d,v22.2d + ld1 {v25.2d},[x3],#16 + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v3.16b,v0.16b,#8 + ext v6.16b,v4.16b,v3.16b,#8 + add v0.2d,v0.2d,v24.2d // "T1 + H + K512[i]" +.long 0xcec082f6 //sha512su0 v22.16b,v23.16b + ext v7.16b,v18.16b,v19.16b,#8 +.long 0xce6680a0 //sha512h v0.16b,v5.16b,v6.16b +.long 0xce678ab6 //sha512su1 v22.16b,v21.16b,v7.16b + add v2.2d,v4.2d,v0.2d // "D + T1" +.long 0xce618480 //sha512h2 v0.16b,v4.16b,v1.16b + add v25.2d,v25.2d,v23.2d + ld1 {v24.2d},[x3],#16 + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v2.16b,v3.16b,#8 + ext v6.16b,v1.16b,v2.16b,#8 + add v3.2d,v3.2d,v25.2d // "T1 + H + K512[i]" +.long 0xcec08217 //sha512su0 v23.16b,v16.16b + ext v7.16b,v19.16b,v20.16b,#8 +.long 0xce6680a3 //sha512h v3.16b,v5.16b,v6.16b +.long 0xce678ad7 //sha512su1 v23.16b,v22.16b,v7.16b + add v4.2d,v1.2d,v3.2d // "D + T1" +.long 0xce608423 //sha512h2 v3.16b,v1.16b,v0.16b + add v24.2d,v24.2d,v16.2d + ld1 {v25.2d},[x3],#16 + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v4.16b,v2.16b,#8 + ext v6.16b,v0.16b,v4.16b,#8 + add v2.2d,v2.2d,v24.2d // "T1 + H + K512[i]" +.long 0xcec08230 //sha512su0 v16.16b,v17.16b + ext v7.16b,v20.16b,v21.16b,#8 +.long 0xce6680a2 //sha512h v2.16b,v5.16b,v6.16b +.long 0xce678af0 //sha512su1 v16.16b,v23.16b,v7.16b + add v1.2d,v0.2d,v2.2d // "D + T1" +.long 0xce638402 //sha512h2 v2.16b,v0.16b,v3.16b + add v25.2d,v25.2d,v17.2d + ld1 {v24.2d},[x3],#16 + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v1.16b,v4.16b,#8 + ext v6.16b,v3.16b,v1.16b,#8 + add v4.2d,v4.2d,v25.2d // "T1 + H + K512[i]" +.long 0xcec08251 //sha512su0 v17.16b,v18.16b + ext v7.16b,v21.16b,v22.16b,#8 +.long 0xce6680a4 //sha512h v4.16b,v5.16b,v6.16b +.long 0xce678a11 //sha512su1 v17.16b,v16.16b,v7.16b + add v0.2d,v3.2d,v4.2d // "D + T1" +.long 0xce628464 //sha512h2 v4.16b,v3.16b,v2.16b + add v24.2d,v24.2d,v18.2d + ld1 {v25.2d},[x3],#16 + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v0.16b,v1.16b,#8 + ext v6.16b,v2.16b,v0.16b,#8 + add v1.2d,v1.2d,v24.2d // "T1 + H + K512[i]" +.long 0xcec08272 //sha512su0 v18.16b,v19.16b + ext v7.16b,v22.16b,v23.16b,#8 +.long 0xce6680a1 //sha512h v1.16b,v5.16b,v6.16b +.long 0xce678a32 //sha512su1 v18.16b,v17.16b,v7.16b + add v3.2d,v2.2d,v1.2d // "D + T1" +.long 0xce648441 //sha512h2 v1.16b,v2.16b,v4.16b + add v25.2d,v25.2d,v19.2d + ld1 {v24.2d},[x3],#16 + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v3.16b,v0.16b,#8 + ext v6.16b,v4.16b,v3.16b,#8 + add v0.2d,v0.2d,v25.2d // "T1 + H + K512[i]" +.long 0xcec08293 //sha512su0 v19.16b,v20.16b + ext v7.16b,v23.16b,v16.16b,#8 +.long 0xce6680a0 //sha512h v0.16b,v5.16b,v6.16b +.long 0xce678a53 //sha512su1 v19.16b,v18.16b,v7.16b + add v2.2d,v4.2d,v0.2d // "D + T1" +.long 0xce618480 //sha512h2 v0.16b,v4.16b,v1.16b + add v24.2d,v24.2d,v20.2d + ld1 {v25.2d},[x3],#16 + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v2.16b,v3.16b,#8 + ext v6.16b,v1.16b,v2.16b,#8 + add v3.2d,v3.2d,v24.2d // "T1 + H + K512[i]" +.long 0xcec082b4 //sha512su0 v20.16b,v21.16b + ext v7.16b,v16.16b,v17.16b,#8 +.long 0xce6680a3 //sha512h v3.16b,v5.16b,v6.16b +.long 0xce678a74 //sha512su1 v20.16b,v19.16b,v7.16b + add v4.2d,v1.2d,v3.2d // "D + T1" +.long 0xce608423 //sha512h2 v3.16b,v1.16b,v0.16b + add v25.2d,v25.2d,v21.2d + ld1 {v24.2d},[x3],#16 + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v4.16b,v2.16b,#8 + ext v6.16b,v0.16b,v4.16b,#8 + add v2.2d,v2.2d,v25.2d // "T1 + H + K512[i]" +.long 0xcec082d5 //sha512su0 v21.16b,v22.16b + ext v7.16b,v17.16b,v18.16b,#8 +.long 0xce6680a2 //sha512h v2.16b,v5.16b,v6.16b +.long 0xce678a95 //sha512su1 v21.16b,v20.16b,v7.16b + add v1.2d,v0.2d,v2.2d // "D + T1" +.long 0xce638402 //sha512h2 v2.16b,v0.16b,v3.16b + add v24.2d,v24.2d,v22.2d + ld1 {v25.2d},[x3],#16 + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v1.16b,v4.16b,#8 + ext v6.16b,v3.16b,v1.16b,#8 + add v4.2d,v4.2d,v24.2d // "T1 + H + K512[i]" +.long 0xcec082f6 //sha512su0 v22.16b,v23.16b + ext v7.16b,v18.16b,v19.16b,#8 +.long 0xce6680a4 //sha512h v4.16b,v5.16b,v6.16b +.long 0xce678ab6 //sha512su1 v22.16b,v21.16b,v7.16b + add v0.2d,v3.2d,v4.2d // "D + T1" +.long 0xce628464 //sha512h2 v4.16b,v3.16b,v2.16b + add v25.2d,v25.2d,v23.2d + ld1 {v24.2d},[x3],#16 + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v0.16b,v1.16b,#8 + ext v6.16b,v2.16b,v0.16b,#8 + add v1.2d,v1.2d,v25.2d // "T1 + H + K512[i]" +.long 0xcec08217 //sha512su0 v23.16b,v16.16b + ext v7.16b,v19.16b,v20.16b,#8 +.long 0xce6680a1 //sha512h v1.16b,v5.16b,v6.16b +.long 0xce678ad7 //sha512su1 v23.16b,v22.16b,v7.16b + add v3.2d,v2.2d,v1.2d // "D + T1" +.long 0xce648441 //sha512h2 v1.16b,v2.16b,v4.16b + add v24.2d,v24.2d,v16.2d + ld1 {v25.2d},[x3],#16 + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v3.16b,v0.16b,#8 + ext v6.16b,v4.16b,v3.16b,#8 + add v0.2d,v0.2d,v24.2d // "T1 + H + K512[i]" +.long 0xcec08230 //sha512su0 v16.16b,v17.16b + ext v7.16b,v20.16b,v21.16b,#8 +.long 0xce6680a0 //sha512h v0.16b,v5.16b,v6.16b +.long 0xce678af0 //sha512su1 v16.16b,v23.16b,v7.16b + add v2.2d,v4.2d,v0.2d // "D + T1" +.long 0xce618480 //sha512h2 v0.16b,v4.16b,v1.16b + add v25.2d,v25.2d,v17.2d + ld1 {v24.2d},[x3],#16 + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v2.16b,v3.16b,#8 + ext v6.16b,v1.16b,v2.16b,#8 + add v3.2d,v3.2d,v25.2d // "T1 + H + K512[i]" +.long 0xcec08251 //sha512su0 v17.16b,v18.16b + ext v7.16b,v21.16b,v22.16b,#8 +.long 0xce6680a3 //sha512h v3.16b,v5.16b,v6.16b +.long 0xce678a11 //sha512su1 v17.16b,v16.16b,v7.16b + add v4.2d,v1.2d,v3.2d // "D + T1" +.long 0xce608423 //sha512h2 v3.16b,v1.16b,v0.16b + add v24.2d,v24.2d,v18.2d + ld1 {v25.2d},[x3],#16 + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v4.16b,v2.16b,#8 + ext v6.16b,v0.16b,v4.16b,#8 + add v2.2d,v2.2d,v24.2d // "T1 + H + K512[i]" +.long 0xcec08272 //sha512su0 v18.16b,v19.16b + ext v7.16b,v22.16b,v23.16b,#8 +.long 0xce6680a2 //sha512h v2.16b,v5.16b,v6.16b +.long 0xce678a32 //sha512su1 v18.16b,v17.16b,v7.16b + add v1.2d,v0.2d,v2.2d // "D + T1" +.long 0xce638402 //sha512h2 v2.16b,v0.16b,v3.16b + add v25.2d,v25.2d,v19.2d + ld1 {v24.2d},[x3],#16 + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v1.16b,v4.16b,#8 + ext v6.16b,v3.16b,v1.16b,#8 + add v4.2d,v4.2d,v25.2d // "T1 + H + K512[i]" +.long 0xcec08293 //sha512su0 v19.16b,v20.16b + ext v7.16b,v23.16b,v16.16b,#8 +.long 0xce6680a4 //sha512h v4.16b,v5.16b,v6.16b +.long 0xce678a53 //sha512su1 v19.16b,v18.16b,v7.16b + add v0.2d,v3.2d,v4.2d // "D + T1" +.long 0xce628464 //sha512h2 v4.16b,v3.16b,v2.16b + add v24.2d,v24.2d,v20.2d + ld1 {v25.2d},[x3],#16 + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v0.16b,v1.16b,#8 + ext v6.16b,v2.16b,v0.16b,#8 + add v1.2d,v1.2d,v24.2d // "T1 + H + K512[i]" +.long 0xcec082b4 //sha512su0 v20.16b,v21.16b + ext v7.16b,v16.16b,v17.16b,#8 +.long 0xce6680a1 //sha512h v1.16b,v5.16b,v6.16b +.long 0xce678a74 //sha512su1 v20.16b,v19.16b,v7.16b + add v3.2d,v2.2d,v1.2d // "D + T1" +.long 0xce648441 //sha512h2 v1.16b,v2.16b,v4.16b + add v25.2d,v25.2d,v21.2d + ld1 {v24.2d},[x3],#16 + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v3.16b,v0.16b,#8 + ext v6.16b,v4.16b,v3.16b,#8 + add v0.2d,v0.2d,v25.2d // "T1 + H + K512[i]" +.long 0xcec082d5 //sha512su0 v21.16b,v22.16b + ext v7.16b,v17.16b,v18.16b,#8 +.long 0xce6680a0 //sha512h v0.16b,v5.16b,v6.16b +.long 0xce678a95 //sha512su1 v21.16b,v20.16b,v7.16b + add v2.2d,v4.2d,v0.2d // "D + T1" +.long 0xce618480 //sha512h2 v0.16b,v4.16b,v1.16b + add v24.2d,v24.2d,v22.2d + ld1 {v25.2d},[x3],#16 + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v2.16b,v3.16b,#8 + ext v6.16b,v1.16b,v2.16b,#8 + add v3.2d,v3.2d,v24.2d // "T1 + H + K512[i]" +.long 0xcec082f6 //sha512su0 v22.16b,v23.16b + ext v7.16b,v18.16b,v19.16b,#8 +.long 0xce6680a3 //sha512h v3.16b,v5.16b,v6.16b +.long 0xce678ab6 //sha512su1 v22.16b,v21.16b,v7.16b + add v4.2d,v1.2d,v3.2d // "D + T1" +.long 0xce608423 //sha512h2 v3.16b,v1.16b,v0.16b + add v25.2d,v25.2d,v23.2d + ld1 {v24.2d},[x3],#16 + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v4.16b,v2.16b,#8 + ext v6.16b,v0.16b,v4.16b,#8 + add v2.2d,v2.2d,v25.2d // "T1 + H + K512[i]" +.long 0xcec08217 //sha512su0 v23.16b,v16.16b + ext v7.16b,v19.16b,v20.16b,#8 +.long 0xce6680a2 //sha512h v2.16b,v5.16b,v6.16b +.long 0xce678ad7 //sha512su1 v23.16b,v22.16b,v7.16b + add v1.2d,v0.2d,v2.2d // "D + T1" +.long 0xce638402 //sha512h2 v2.16b,v0.16b,v3.16b + ld1 {v25.2d},[x3],#16 + add v24.2d,v24.2d,v16.2d + ld1 {v16.16b},[x1],#16 // load next input + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v1.16b,v4.16b,#8 + ext v6.16b,v3.16b,v1.16b,#8 + add v4.2d,v4.2d,v24.2d // "T1 + H + K512[i]" +.long 0xce6680a4 //sha512h v4.16b,v5.16b,v6.16b + rev64 v16.16b,v16.16b + add v0.2d,v3.2d,v4.2d // "D + T1" +.long 0xce628464 //sha512h2 v4.16b,v3.16b,v2.16b + ld1 {v24.2d},[x3],#16 + add v25.2d,v25.2d,v17.2d + ld1 {v17.16b},[x1],#16 // load next input + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v0.16b,v1.16b,#8 + ext v6.16b,v2.16b,v0.16b,#8 + add v1.2d,v1.2d,v25.2d // "T1 + H + K512[i]" +.long 0xce6680a1 //sha512h v1.16b,v5.16b,v6.16b + rev64 v17.16b,v17.16b + add v3.2d,v2.2d,v1.2d // "D + T1" +.long 0xce648441 //sha512h2 v1.16b,v2.16b,v4.16b + ld1 {v25.2d},[x3],#16 + add v24.2d,v24.2d,v18.2d + ld1 {v18.16b},[x1],#16 // load next input + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v3.16b,v0.16b,#8 + ext v6.16b,v4.16b,v3.16b,#8 + add v0.2d,v0.2d,v24.2d // "T1 + H + K512[i]" +.long 0xce6680a0 //sha512h v0.16b,v5.16b,v6.16b + rev64 v18.16b,v18.16b + add v2.2d,v4.2d,v0.2d // "D + T1" +.long 0xce618480 //sha512h2 v0.16b,v4.16b,v1.16b + ld1 {v24.2d},[x3],#16 + add v25.2d,v25.2d,v19.2d + ld1 {v19.16b},[x1],#16 // load next input + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v2.16b,v3.16b,#8 + ext v6.16b,v1.16b,v2.16b,#8 + add v3.2d,v3.2d,v25.2d // "T1 + H + K512[i]" +.long 0xce6680a3 //sha512h v3.16b,v5.16b,v6.16b + rev64 v19.16b,v19.16b + add v4.2d,v1.2d,v3.2d // "D + T1" +.long 0xce608423 //sha512h2 v3.16b,v1.16b,v0.16b + ld1 {v25.2d},[x3],#16 + add v24.2d,v24.2d,v20.2d + ld1 {v20.16b},[x1],#16 // load next input + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v4.16b,v2.16b,#8 + ext v6.16b,v0.16b,v4.16b,#8 + add v2.2d,v2.2d,v24.2d // "T1 + H + K512[i]" +.long 0xce6680a2 //sha512h v2.16b,v5.16b,v6.16b + rev64 v20.16b,v20.16b + add v1.2d,v0.2d,v2.2d // "D + T1" +.long 0xce638402 //sha512h2 v2.16b,v0.16b,v3.16b + ld1 {v24.2d},[x3],#16 + add v25.2d,v25.2d,v21.2d + ld1 {v21.16b},[x1],#16 // load next input + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v1.16b,v4.16b,#8 + ext v6.16b,v3.16b,v1.16b,#8 + add v4.2d,v4.2d,v25.2d // "T1 + H + K512[i]" +.long 0xce6680a4 //sha512h v4.16b,v5.16b,v6.16b + rev64 v21.16b,v21.16b + add v0.2d,v3.2d,v4.2d // "D + T1" +.long 0xce628464 //sha512h2 v4.16b,v3.16b,v2.16b + ld1 {v25.2d},[x3],#16 + add v24.2d,v24.2d,v22.2d + ld1 {v22.16b},[x1],#16 // load next input + ext v24.16b,v24.16b,v24.16b,#8 + ext v5.16b,v0.16b,v1.16b,#8 + ext v6.16b,v2.16b,v0.16b,#8 + add v1.2d,v1.2d,v24.2d // "T1 + H + K512[i]" +.long 0xce6680a1 //sha512h v1.16b,v5.16b,v6.16b + rev64 v22.16b,v22.16b + add v3.2d,v2.2d,v1.2d // "D + T1" +.long 0xce648441 //sha512h2 v1.16b,v2.16b,v4.16b + sub x3,x3,#80*8 // rewind + add v25.2d,v25.2d,v23.2d + ld1 {v23.16b},[x1],#16 // load next input + ext v25.16b,v25.16b,v25.16b,#8 + ext v5.16b,v3.16b,v0.16b,#8 + ext v6.16b,v4.16b,v3.16b,#8 + add v0.2d,v0.2d,v25.2d // "T1 + H + K512[i]" +.long 0xce6680a0 //sha512h v0.16b,v5.16b,v6.16b + rev64 v23.16b,v23.16b + add v2.2d,v4.2d,v0.2d // "D + T1" +.long 0xce618480 //sha512h2 v0.16b,v4.16b,v1.16b + add v0.2d,v0.2d,v26.2d // accumulate + add v1.2d,v1.2d,v27.2d + add v2.2d,v2.2d,v28.2d + add v3.2d,v3.2d,v29.2d + + cbnz x2,Loop_hw + + st1 {v0.2d,v1.2d,v2.2d,v3.2d},[x0] // store context + + ldr x29,[sp],#16 + ret + +#endif diff --git a/vere/ext/openssl/gen/macos-aarch64/include/crypto/bn_conf.h b/vere/ext/openssl/gen/macos-aarch64/include/crypto/bn_conf.h new file mode 100644 index 0000000..5312ef5 --- /dev/null +++ b/vere/ext/openssl/gen/macos-aarch64/include/crypto/bn_conf.h @@ -0,0 +1,28 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from include/crypto/bn_conf.h.in */ +/* + * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef OSSL_CRYPTO_BN_CONF_H +# define OSSL_CRYPTO_BN_CONF_H + +/* + * The contents of this file are not used in the UEFI build, as + * both 32-bit and 64-bit builds are supported from a single run + * of the Configure script. + */ + +/* Should we define BN_DIV2W here? */ + +/* Only one for the following should be defined */ +#define SIXTY_FOUR_BIT_LONG +#undef SIXTY_FOUR_BIT +#undef THIRTY_TWO_BIT + +#endif diff --git a/vere/ext/openssl/gen/macos-aarch64/include/crypto/buildinf.h b/vere/ext/openssl/gen/macos-aarch64/include/crypto/buildinf.h new file mode 100644 index 0000000..e56419f --- /dev/null +++ b/vere/ext/openssl/gen/macos-aarch64/include/crypto/buildinf.h @@ -0,0 +1,37 @@ +/* + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: darwin64-arm64-cc" +#define DATE "built on: Tue Sep 3 15:02:18 2024 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a + * workaround for the situation where CFLAGS gets too long for a C90 string + * literal + */ +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','c','c',' ','-','f','P', + 'I','C',' ','-','a','r','c','h',' ','a','r','m','6','4',' ','-', + 'O','3',' ','-','W','a','l','l',' ','-','D','L','_','E','N','D', + 'I','A','N',' ','-','D','O','P','E','N','S','S','L','_','P','I', + 'C',' ','-','D','O','P','E','N','S','S','L','_','C','P','U','I', + 'D','_','O','B','J',' ','-','D','O','P','E','N','S','S','L','_', + 'B','N','_','A','S','M','_','M','O','N','T',' ','-','D','S','H', + 'A','1','_','A','S','M',' ','-','D','S','H','A','2','5','6','_', + 'A','S','M',' ','-','D','S','H','A','5','1','2','_','A','S','M', + ' ','-','D','K','E','C','C','A','K','1','6','0','0','_','A','S', + 'M',' ','-','D','V','P','A','E','S','_','A','S','M',' ','-','D', + 'E','C','P','_','N','I','S','T','Z','2','5','6','_','A','S','M', + ' ','-','D','P','O','L','Y','1','3','0','5','_','A','S','M',' ', + '-','D','_','R','E','E','N','T','R','A','N','T',' ','-','D','N', + 'D','E','B','U','G','\0' +}; diff --git a/vere/ext/openssl/gen/macos-aarch64/include/crypto/dso_conf.h b/vere/ext/openssl/gen/macos-aarch64/include/crypto/dso_conf.h new file mode 100644 index 0000000..e2d05cd --- /dev/null +++ b/vere/ext/openssl/gen/macos-aarch64/include/crypto/dso_conf.h @@ -0,0 +1,17 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from include/crypto/dso_conf.h.in */ +/* + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef OSSL_CRYPTO_DSO_CONF_H +# define OSSL_CRYPTO_DSO_CONF_H +# define DSO_DLFCN +# define HAVE_DLFCN_H +# define DSO_EXTENSION ".dylib" +#endif diff --git a/vere/ext/openssl/gen/macos-aarch64/include/openssl/opensslconf.h b/vere/ext/openssl/gen/macos-aarch64/include/openssl/opensslconf.h new file mode 100644 index 0000000..7530b04 --- /dev/null +++ b/vere/ext/openssl/gen/macos-aarch64/include/openssl/opensslconf.h @@ -0,0 +1,203 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/opensslconf.h.in + * + * Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef OPENSSL_ALGORITHM_DEFINES +# error OPENSSL_ALGORITHM_DEFINES no longer supported +#endif + +/* + * OpenSSL was configured with the following options: + */ + +#ifndef OPENSSL_SYS_MACOSX +# define OPENSSL_SYS_MACOSX 1 +#endif +#ifndef OPENSSL_NO_MD2 +# define OPENSSL_NO_MD2 +#endif +#ifndef OPENSSL_NO_RC5 +# define OPENSSL_NO_RC5 +#endif +#ifndef OPENSSL_THREADS +# define OPENSSL_THREADS +#endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif +#ifndef OPENSSL_NO_ASAN +# define OPENSSL_NO_ASAN +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG +# define OPENSSL_NO_CRYPTO_MDEBUG +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +#endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif +#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +# define OPENSSL_NO_EC_NISTP_64_GCC_128 +#endif +#ifndef OPENSSL_NO_EGD +# define OPENSSL_NO_EGD +#endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif +#ifndef OPENSSL_NO_FUZZ_AFL +# define OPENSSL_NO_FUZZ_AFL +#endif +#ifndef OPENSSL_NO_FUZZ_LIBFUZZER +# define OPENSSL_NO_FUZZ_LIBFUZZER +#endif +#ifndef OPENSSL_NO_HEARTBEATS +# define OPENSSL_NO_HEARTBEATS +#endif +#ifndef OPENSSL_NO_MSAN +# define OPENSSL_NO_MSAN +#endif +#ifndef OPENSSL_NO_SCTP +# define OPENSSL_NO_SCTP +#endif +#ifndef OPENSSL_NO_SSL_TRACE +# define OPENSSL_NO_SSL_TRACE +#endif +#ifndef OPENSSL_NO_SSL3 +# define OPENSSL_NO_SSL3 +#endif +#ifndef OPENSSL_NO_SSL3_METHOD +# define OPENSSL_NO_SSL3_METHOD +#endif +#ifndef OPENSSL_NO_UBSAN +# define OPENSSL_NO_UBSAN +#endif +#ifndef OPENSSL_NO_UNIT_TEST +# define OPENSSL_NO_UNIT_TEST +#endif +#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS +# define OPENSSL_NO_WEAK_SSL_CIPHERS +#endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif + + +/* + * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers + * don't like that. This will hopefully silence them. + */ +#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; + +/* + * Applications should use -DOPENSSL_API_COMPAT= to suppress the + * declarations of functions deprecated in or before . Otherwise, they + * still won't see them if the library has been built to disable deprecated + * functions. + */ +#ifndef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# elif defined(__SUNPRO_C) +# if (__SUNPRO_C >= 0x5130) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +#endif + +#ifndef OPENSSL_FILE +# ifdef OPENSSL_NO_FILENAMES +# define OPENSSL_FILE "" +# define OPENSSL_LINE 0 +# else +# define OPENSSL_FILE __FILE__ +# define OPENSSL_LINE __LINE__ +# endif +#endif + +#ifndef OPENSSL_MIN_API +# define OPENSSL_MIN_API 0 +#endif + +#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API +# undef OPENSSL_API_COMPAT +# define OPENSSL_API_COMPAT OPENSSL_MIN_API +#endif + +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10100000L +# define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_1_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10000000L +# define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_0_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x00908000L +# define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_0_9_8(f) +#endif + +/* Generate 80386 code? */ +#undef I386_ONLY + +#undef OPENSSL_UNISTD +#define OPENSSL_UNISTD + +#undef OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* + * The following are cipher-specific, but are part of the public API. + */ +#if !defined(OPENSSL_SYS_UEFI) +# undef BN_LLONG +/* Only one for the following should be defined */ +# define SIXTY_FOUR_BIT_LONG +# undef SIXTY_FOUR_BIT +# undef THIRTY_TWO_BIT +#endif + +#define RC4_INT unsigned int + +#ifdef __cplusplus +} +#endif diff --git a/vere/ext/openssl/gen/macos-x86_64/crypto/aes/aesni-mb-x86_64.s b/vere/ext/openssl/gen/macos-x86_64/crypto/aes/aesni-mb-x86_64.s new file mode 100644 index 0000000..8f97b85 --- /dev/null +++ b/vere/ext/openssl/gen/macos-x86_64/crypto/aes/aesni-mb-x86_64.s @@ -0,0 +1,1507 @@ +.text + + + +.globl _aesni_multi_cbc_encrypt + +.p2align 5 +_aesni_multi_cbc_encrypt: + + cmpl $2,%edx + jb L$enc_non_avx + movl _OPENSSL_ia32cap_P+4(%rip),%ecx + testl $268435456,%ecx + jnz _avx_cbc_enc_shortcut + jmp L$enc_non_avx +.p2align 4 +L$enc_non_avx: + movq %rsp,%rax + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + + + + + + + subq $48,%rsp + andq $-64,%rsp + movq %rax,16(%rsp) + + +L$enc4x_body: + movdqu (%rsi),%xmm12 + leaq 120(%rsi),%rsi + leaq 80(%rdi),%rdi + +L$enc4x_loop_grande: + movl %edx,24(%rsp) + xorl %edx,%edx + movl -64(%rdi),%ecx + movq -80(%rdi),%r8 + cmpl %edx,%ecx + movq -72(%rdi),%r12 + cmovgl %ecx,%edx + testl %ecx,%ecx + movdqu -56(%rdi),%xmm2 + movl %ecx,32(%rsp) + cmovleq %rsp,%r8 + movl -24(%rdi),%ecx + movq -40(%rdi),%r9 + cmpl %edx,%ecx + movq -32(%rdi),%r13 + cmovgl %ecx,%edx + testl %ecx,%ecx + movdqu -16(%rdi),%xmm3 + movl %ecx,36(%rsp) + cmovleq %rsp,%r9 + movl 16(%rdi),%ecx + movq 0(%rdi),%r10 + cmpl %edx,%ecx + movq 8(%rdi),%r14 + cmovgl %ecx,%edx + testl %ecx,%ecx + movdqu 24(%rdi),%xmm4 + movl %ecx,40(%rsp) + cmovleq %rsp,%r10 + movl 56(%rdi),%ecx + movq 40(%rdi),%r11 + cmpl %edx,%ecx + movq 48(%rdi),%r15 + cmovgl %ecx,%edx + testl %ecx,%ecx + movdqu 64(%rdi),%xmm5 + movl %ecx,44(%rsp) + cmovleq %rsp,%r11 + testl %edx,%edx + jz L$enc4x_done + + movups 16-120(%rsi),%xmm1 + pxor %xmm12,%xmm2 + movups 32-120(%rsi),%xmm0 + pxor %xmm12,%xmm3 + movl 240-120(%rsi),%eax + pxor %xmm12,%xmm4 + movdqu (%r8),%xmm6 + pxor %xmm12,%xmm5 + movdqu (%r9),%xmm7 + pxor %xmm6,%xmm2 + movdqu (%r10),%xmm8 + pxor %xmm7,%xmm3 + movdqu (%r11),%xmm9 + pxor %xmm8,%xmm4 + pxor %xmm9,%xmm5 + movdqa 32(%rsp),%xmm10 + xorq %rbx,%rbx + jmp L$oop_enc4x + +.p2align 5 +L$oop_enc4x: + addq $16,%rbx + leaq 16(%rsp),%rbp + movl $1,%ecx + subq %rbx,%rbp + +.byte 102,15,56,220,209 + prefetcht0 31(%r8,%rbx,1) + prefetcht0 31(%r9,%rbx,1) +.byte 102,15,56,220,217 + prefetcht0 31(%r10,%rbx,1) + prefetcht0 31(%r10,%rbx,1) +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 + movups 48-120(%rsi),%xmm1 + cmpl 32(%rsp),%ecx +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 + cmovgeq %rbp,%r8 + cmovgq %rbp,%r12 +.byte 102,15,56,220,232 + movups -56(%rsi),%xmm0 + cmpl 36(%rsp),%ecx +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 + cmovgeq %rbp,%r9 + cmovgq %rbp,%r13 +.byte 102,15,56,220,233 + movups -40(%rsi),%xmm1 + cmpl 40(%rsp),%ecx +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 + cmovgeq %rbp,%r10 + cmovgq %rbp,%r14 +.byte 102,15,56,220,232 + movups -24(%rsi),%xmm0 + cmpl 44(%rsp),%ecx +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 + cmovgeq %rbp,%r11 + cmovgq %rbp,%r15 +.byte 102,15,56,220,233 + movups -8(%rsi),%xmm1 + movdqa %xmm10,%xmm11 +.byte 102,15,56,220,208 + prefetcht0 15(%r12,%rbx,1) + prefetcht0 15(%r13,%rbx,1) +.byte 102,15,56,220,216 + prefetcht0 15(%r14,%rbx,1) + prefetcht0 15(%r15,%rbx,1) +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 + movups 128-120(%rsi),%xmm0 + pxor %xmm12,%xmm12 + +.byte 102,15,56,220,209 + pcmpgtd %xmm12,%xmm11 + movdqu -120(%rsi),%xmm12 +.byte 102,15,56,220,217 + paddd %xmm11,%xmm10 + movdqa %xmm10,32(%rsp) +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 + movups 144-120(%rsi),%xmm1 + + cmpl $11,%eax + +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 + movups 160-120(%rsi),%xmm0 + + jb L$enc4x_tail + +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 + movups 176-120(%rsi),%xmm1 + +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 + movups 192-120(%rsi),%xmm0 + + je L$enc4x_tail + +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 + movups 208-120(%rsi),%xmm1 + +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 + movups 224-120(%rsi),%xmm0 + jmp L$enc4x_tail + +.p2align 5 +L$enc4x_tail: +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 + movdqu (%r8,%rbx,1),%xmm6 + movdqu 16-120(%rsi),%xmm1 + +.byte 102,15,56,221,208 + movdqu (%r9,%rbx,1),%xmm7 + pxor %xmm12,%xmm6 +.byte 102,15,56,221,216 + movdqu (%r10,%rbx,1),%xmm8 + pxor %xmm12,%xmm7 +.byte 102,15,56,221,224 + movdqu (%r11,%rbx,1),%xmm9 + pxor %xmm12,%xmm8 +.byte 102,15,56,221,232 + movdqu 32-120(%rsi),%xmm0 + pxor %xmm12,%xmm9 + + movups %xmm2,-16(%r12,%rbx,1) + pxor %xmm6,%xmm2 + movups %xmm3,-16(%r13,%rbx,1) + pxor %xmm7,%xmm3 + movups %xmm4,-16(%r14,%rbx,1) + pxor %xmm8,%xmm4 + movups %xmm5,-16(%r15,%rbx,1) + pxor %xmm9,%xmm5 + + decl %edx + jnz L$oop_enc4x + + movq 16(%rsp),%rax + + movl 24(%rsp),%edx + + + + + + + + + + + leaq 160(%rdi),%rdi + decl %edx + jnz L$enc4x_loop_grande + +L$enc4x_done: + movq -48(%rax),%r15 + + movq -40(%rax),%r14 + + movq -32(%rax),%r13 + + movq -24(%rax),%r12 + + movq -16(%rax),%rbp + + movq -8(%rax),%rbx + + leaq (%rax),%rsp + +L$enc4x_epilogue: + .byte 0xf3,0xc3 + + + +.globl _aesni_multi_cbc_decrypt + +.p2align 5 +_aesni_multi_cbc_decrypt: + + cmpl $2,%edx + jb L$dec_non_avx + movl _OPENSSL_ia32cap_P+4(%rip),%ecx + testl $268435456,%ecx + jnz _avx_cbc_dec_shortcut + jmp L$dec_non_avx +.p2align 4 +L$dec_non_avx: + movq %rsp,%rax + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + + + + + + + subq $48,%rsp + andq $-64,%rsp + movq %rax,16(%rsp) + + +L$dec4x_body: + movdqu (%rsi),%xmm12 + leaq 120(%rsi),%rsi + leaq 80(%rdi),%rdi + +L$dec4x_loop_grande: + movl %edx,24(%rsp) + xorl %edx,%edx + movl -64(%rdi),%ecx + movq -80(%rdi),%r8 + cmpl %edx,%ecx + movq -72(%rdi),%r12 + cmovgl %ecx,%edx + testl %ecx,%ecx + movdqu -56(%rdi),%xmm6 + movl %ecx,32(%rsp) + cmovleq %rsp,%r8 + movl -24(%rdi),%ecx + movq -40(%rdi),%r9 + cmpl %edx,%ecx + movq -32(%rdi),%r13 + cmovgl %ecx,%edx + testl %ecx,%ecx + movdqu -16(%rdi),%xmm7 + movl %ecx,36(%rsp) + cmovleq %rsp,%r9 + movl 16(%rdi),%ecx + movq 0(%rdi),%r10 + cmpl %edx,%ecx + movq 8(%rdi),%r14 + cmovgl %ecx,%edx + testl %ecx,%ecx + movdqu 24(%rdi),%xmm8 + movl %ecx,40(%rsp) + cmovleq %rsp,%r10 + movl 56(%rdi),%ecx + movq 40(%rdi),%r11 + cmpl %edx,%ecx + movq 48(%rdi),%r15 + cmovgl %ecx,%edx + testl %ecx,%ecx + movdqu 64(%rdi),%xmm9 + movl %ecx,44(%rsp) + cmovleq %rsp,%r11 + testl %edx,%edx + jz L$dec4x_done + + movups 16-120(%rsi),%xmm1 + movups 32-120(%rsi),%xmm0 + movl 240-120(%rsi),%eax + movdqu (%r8),%xmm2 + movdqu (%r9),%xmm3 + pxor %xmm12,%xmm2 + movdqu (%r10),%xmm4 + pxor %xmm12,%xmm3 + movdqu (%r11),%xmm5 + pxor %xmm12,%xmm4 + pxor %xmm12,%xmm5 + movdqa 32(%rsp),%xmm10 + xorq %rbx,%rbx + jmp L$oop_dec4x + +.p2align 5 +L$oop_dec4x: + addq $16,%rbx + leaq 16(%rsp),%rbp + movl $1,%ecx + subq %rbx,%rbp + +.byte 102,15,56,222,209 + prefetcht0 31(%r8,%rbx,1) + prefetcht0 31(%r9,%rbx,1) +.byte 102,15,56,222,217 + prefetcht0 31(%r10,%rbx,1) + prefetcht0 31(%r11,%rbx,1) +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 + movups 48-120(%rsi),%xmm1 + cmpl 32(%rsp),%ecx +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 + cmovgeq %rbp,%r8 + cmovgq %rbp,%r12 +.byte 102,15,56,222,232 + movups -56(%rsi),%xmm0 + cmpl 36(%rsp),%ecx +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 + cmovgeq %rbp,%r9 + cmovgq %rbp,%r13 +.byte 102,15,56,222,233 + movups -40(%rsi),%xmm1 + cmpl 40(%rsp),%ecx +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 + cmovgeq %rbp,%r10 + cmovgq %rbp,%r14 +.byte 102,15,56,222,232 + movups -24(%rsi),%xmm0 + cmpl 44(%rsp),%ecx +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 + cmovgeq %rbp,%r11 + cmovgq %rbp,%r15 +.byte 102,15,56,222,233 + movups -8(%rsi),%xmm1 + movdqa %xmm10,%xmm11 +.byte 102,15,56,222,208 + prefetcht0 15(%r12,%rbx,1) + prefetcht0 15(%r13,%rbx,1) +.byte 102,15,56,222,216 + prefetcht0 15(%r14,%rbx,1) + prefetcht0 15(%r15,%rbx,1) +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 + movups 128-120(%rsi),%xmm0 + pxor %xmm12,%xmm12 + +.byte 102,15,56,222,209 + pcmpgtd %xmm12,%xmm11 + movdqu -120(%rsi),%xmm12 +.byte 102,15,56,222,217 + paddd %xmm11,%xmm10 + movdqa %xmm10,32(%rsp) +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 + movups 144-120(%rsi),%xmm1 + + cmpl $11,%eax + +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 + movups 160-120(%rsi),%xmm0 + + jb L$dec4x_tail + +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 + movups 176-120(%rsi),%xmm1 + +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 + movups 192-120(%rsi),%xmm0 + + je L$dec4x_tail + +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 + movups 208-120(%rsi),%xmm1 + +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 + movups 224-120(%rsi),%xmm0 + jmp L$dec4x_tail + +.p2align 5 +L$dec4x_tail: +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 + pxor %xmm0,%xmm6 + pxor %xmm0,%xmm7 +.byte 102,15,56,222,233 + movdqu 16-120(%rsi),%xmm1 + pxor %xmm0,%xmm8 + pxor %xmm0,%xmm9 + movdqu 32-120(%rsi),%xmm0 + +.byte 102,15,56,223,214 +.byte 102,15,56,223,223 + movdqu -16(%r8,%rbx,1),%xmm6 + movdqu -16(%r9,%rbx,1),%xmm7 +.byte 102,65,15,56,223,224 +.byte 102,65,15,56,223,233 + movdqu -16(%r10,%rbx,1),%xmm8 + movdqu -16(%r11,%rbx,1),%xmm9 + + movups %xmm2,-16(%r12,%rbx,1) + movdqu (%r8,%rbx,1),%xmm2 + movups %xmm3,-16(%r13,%rbx,1) + movdqu (%r9,%rbx,1),%xmm3 + pxor %xmm12,%xmm2 + movups %xmm4,-16(%r14,%rbx,1) + movdqu (%r10,%rbx,1),%xmm4 + pxor %xmm12,%xmm3 + movups %xmm5,-16(%r15,%rbx,1) + movdqu (%r11,%rbx,1),%xmm5 + pxor %xmm12,%xmm4 + pxor %xmm12,%xmm5 + + decl %edx + jnz L$oop_dec4x + + movq 16(%rsp),%rax + + movl 24(%rsp),%edx + + leaq 160(%rdi),%rdi + decl %edx + jnz L$dec4x_loop_grande + +L$dec4x_done: + movq -48(%rax),%r15 + + movq -40(%rax),%r14 + + movq -32(%rax),%r13 + + movq -24(%rax),%r12 + + movq -16(%rax),%rbp + + movq -8(%rax),%rbx + + leaq (%rax),%rsp + +L$dec4x_epilogue: + .byte 0xf3,0xc3 + + + +.p2align 5 +aesni_multi_cbc_encrypt_avx: + +_avx_cbc_enc_shortcut: + movq %rsp,%rax + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + + + + + + + + + subq $192,%rsp + andq $-128,%rsp + movq %rax,16(%rsp) + + +L$enc8x_body: + vzeroupper + vmovdqu (%rsi),%xmm15 + leaq 120(%rsi),%rsi + leaq 160(%rdi),%rdi + shrl $1,%edx + +L$enc8x_loop_grande: + + xorl %edx,%edx + movl -144(%rdi),%ecx + movq -160(%rdi),%r8 + cmpl %edx,%ecx + movq -152(%rdi),%rbx + cmovgl %ecx,%edx + testl %ecx,%ecx + vmovdqu -136(%rdi),%xmm2 + movl %ecx,32(%rsp) + cmovleq %rsp,%r8 + subq %r8,%rbx + movq %rbx,64(%rsp) + movl -104(%rdi),%ecx + movq -120(%rdi),%r9 + cmpl %edx,%ecx + movq -112(%rdi),%rbp + cmovgl %ecx,%edx + testl %ecx,%ecx + vmovdqu -96(%rdi),%xmm3 + movl %ecx,36(%rsp) + cmovleq %rsp,%r9 + subq %r9,%rbp + movq %rbp,72(%rsp) + movl -64(%rdi),%ecx + movq -80(%rdi),%r10 + cmpl %edx,%ecx + movq -72(%rdi),%rbp + cmovgl %ecx,%edx + testl %ecx,%ecx + vmovdqu -56(%rdi),%xmm4 + movl %ecx,40(%rsp) + cmovleq %rsp,%r10 + subq %r10,%rbp + movq %rbp,80(%rsp) + movl -24(%rdi),%ecx + movq -40(%rdi),%r11 + cmpl %edx,%ecx + movq -32(%rdi),%rbp + cmovgl %ecx,%edx + testl %ecx,%ecx + vmovdqu -16(%rdi),%xmm5 + movl %ecx,44(%rsp) + cmovleq %rsp,%r11 + subq %r11,%rbp + movq %rbp,88(%rsp) + movl 16(%rdi),%ecx + movq 0(%rdi),%r12 + cmpl %edx,%ecx + movq 8(%rdi),%rbp + cmovgl %ecx,%edx + testl %ecx,%ecx + vmovdqu 24(%rdi),%xmm6 + movl %ecx,48(%rsp) + cmovleq %rsp,%r12 + subq %r12,%rbp + movq %rbp,96(%rsp) + movl 56(%rdi),%ecx + movq 40(%rdi),%r13 + cmpl %edx,%ecx + movq 48(%rdi),%rbp + cmovgl %ecx,%edx + testl %ecx,%ecx + vmovdqu 64(%rdi),%xmm7 + movl %ecx,52(%rsp) + cmovleq %rsp,%r13 + subq %r13,%rbp + movq %rbp,104(%rsp) + movl 96(%rdi),%ecx + movq 80(%rdi),%r14 + cmpl %edx,%ecx + movq 88(%rdi),%rbp + cmovgl %ecx,%edx + testl %ecx,%ecx + vmovdqu 104(%rdi),%xmm8 + movl %ecx,56(%rsp) + cmovleq %rsp,%r14 + subq %r14,%rbp + movq %rbp,112(%rsp) + movl 136(%rdi),%ecx + movq 120(%rdi),%r15 + cmpl %edx,%ecx + movq 128(%rdi),%rbp + cmovgl %ecx,%edx + testl %ecx,%ecx + vmovdqu 144(%rdi),%xmm9 + movl %ecx,60(%rsp) + cmovleq %rsp,%r15 + subq %r15,%rbp + movq %rbp,120(%rsp) + testl %edx,%edx + jz L$enc8x_done + + vmovups 16-120(%rsi),%xmm1 + vmovups 32-120(%rsi),%xmm0 + movl 240-120(%rsi),%eax + + vpxor (%r8),%xmm15,%xmm10 + leaq 128(%rsp),%rbp + vpxor (%r9),%xmm15,%xmm11 + vpxor (%r10),%xmm15,%xmm12 + vpxor (%r11),%xmm15,%xmm13 + vpxor %xmm10,%xmm2,%xmm2 + vpxor (%r12),%xmm15,%xmm10 + vpxor %xmm11,%xmm3,%xmm3 + vpxor (%r13),%xmm15,%xmm11 + vpxor %xmm12,%xmm4,%xmm4 + vpxor (%r14),%xmm15,%xmm12 + vpxor %xmm13,%xmm5,%xmm5 + vpxor (%r15),%xmm15,%xmm13 + vpxor %xmm10,%xmm6,%xmm6 + movl $1,%ecx + vpxor %xmm11,%xmm7,%xmm7 + vpxor %xmm12,%xmm8,%xmm8 + vpxor %xmm13,%xmm9,%xmm9 + jmp L$oop_enc8x + +.p2align 5 +L$oop_enc8x: + vaesenc %xmm1,%xmm2,%xmm2 + cmpl 32+0(%rsp),%ecx + vaesenc %xmm1,%xmm3,%xmm3 + prefetcht0 31(%r8) + vaesenc %xmm1,%xmm4,%xmm4 + vaesenc %xmm1,%xmm5,%xmm5 + leaq (%r8,%rbx,1),%rbx + cmovgeq %rsp,%r8 + vaesenc %xmm1,%xmm6,%xmm6 + cmovgq %rsp,%rbx + vaesenc %xmm1,%xmm7,%xmm7 + subq %r8,%rbx + vaesenc %xmm1,%xmm8,%xmm8 + vpxor 16(%r8),%xmm15,%xmm10 + movq %rbx,64+0(%rsp) + vaesenc %xmm1,%xmm9,%xmm9 + vmovups -72(%rsi),%xmm1 + leaq 16(%r8,%rbx,1),%r8 + vmovdqu %xmm10,0(%rbp) + vaesenc %xmm0,%xmm2,%xmm2 + cmpl 32+4(%rsp),%ecx + movq 64+8(%rsp),%rbx + vaesenc %xmm0,%xmm3,%xmm3 + prefetcht0 31(%r9) + vaesenc %xmm0,%xmm4,%xmm4 + vaesenc %xmm0,%xmm5,%xmm5 + leaq (%r9,%rbx,1),%rbx + cmovgeq %rsp,%r9 + vaesenc %xmm0,%xmm6,%xmm6 + cmovgq %rsp,%rbx + vaesenc %xmm0,%xmm7,%xmm7 + subq %r9,%rbx + vaesenc %xmm0,%xmm8,%xmm8 + vpxor 16(%r9),%xmm15,%xmm11 + movq %rbx,64+8(%rsp) + vaesenc %xmm0,%xmm9,%xmm9 + vmovups -56(%rsi),%xmm0 + leaq 16(%r9,%rbx,1),%r9 + vmovdqu %xmm11,16(%rbp) + vaesenc %xmm1,%xmm2,%xmm2 + cmpl 32+8(%rsp),%ecx + movq 64+16(%rsp),%rbx + vaesenc %xmm1,%xmm3,%xmm3 + prefetcht0 31(%r10) + vaesenc %xmm1,%xmm4,%xmm4 + prefetcht0 15(%r8) + vaesenc %xmm1,%xmm5,%xmm5 + leaq (%r10,%rbx,1),%rbx + cmovgeq %rsp,%r10 + vaesenc %xmm1,%xmm6,%xmm6 + cmovgq %rsp,%rbx + vaesenc %xmm1,%xmm7,%xmm7 + subq %r10,%rbx + vaesenc %xmm1,%xmm8,%xmm8 + vpxor 16(%r10),%xmm15,%xmm12 + movq %rbx,64+16(%rsp) + vaesenc %xmm1,%xmm9,%xmm9 + vmovups -40(%rsi),%xmm1 + leaq 16(%r10,%rbx,1),%r10 + vmovdqu %xmm12,32(%rbp) + vaesenc %xmm0,%xmm2,%xmm2 + cmpl 32+12(%rsp),%ecx + movq 64+24(%rsp),%rbx + vaesenc %xmm0,%xmm3,%xmm3 + prefetcht0 31(%r11) + vaesenc %xmm0,%xmm4,%xmm4 + prefetcht0 15(%r9) + vaesenc %xmm0,%xmm5,%xmm5 + leaq (%r11,%rbx,1),%rbx + cmovgeq %rsp,%r11 + vaesenc %xmm0,%xmm6,%xmm6 + cmovgq %rsp,%rbx + vaesenc %xmm0,%xmm7,%xmm7 + subq %r11,%rbx + vaesenc %xmm0,%xmm8,%xmm8 + vpxor 16(%r11),%xmm15,%xmm13 + movq %rbx,64+24(%rsp) + vaesenc %xmm0,%xmm9,%xmm9 + vmovups -24(%rsi),%xmm0 + leaq 16(%r11,%rbx,1),%r11 + vmovdqu %xmm13,48(%rbp) + vaesenc %xmm1,%xmm2,%xmm2 + cmpl 32+16(%rsp),%ecx + movq 64+32(%rsp),%rbx + vaesenc %xmm1,%xmm3,%xmm3 + prefetcht0 31(%r12) + vaesenc %xmm1,%xmm4,%xmm4 + prefetcht0 15(%r10) + vaesenc %xmm1,%xmm5,%xmm5 + leaq (%r12,%rbx,1),%rbx + cmovgeq %rsp,%r12 + vaesenc %xmm1,%xmm6,%xmm6 + cmovgq %rsp,%rbx + vaesenc %xmm1,%xmm7,%xmm7 + subq %r12,%rbx + vaesenc %xmm1,%xmm8,%xmm8 + vpxor 16(%r12),%xmm15,%xmm10 + movq %rbx,64+32(%rsp) + vaesenc %xmm1,%xmm9,%xmm9 + vmovups -8(%rsi),%xmm1 + leaq 16(%r12,%rbx,1),%r12 + vaesenc %xmm0,%xmm2,%xmm2 + cmpl 32+20(%rsp),%ecx + movq 64+40(%rsp),%rbx + vaesenc %xmm0,%xmm3,%xmm3 + prefetcht0 31(%r13) + vaesenc %xmm0,%xmm4,%xmm4 + prefetcht0 15(%r11) + vaesenc %xmm0,%xmm5,%xmm5 + leaq (%rbx,%r13,1),%rbx + cmovgeq %rsp,%r13 + vaesenc %xmm0,%xmm6,%xmm6 + cmovgq %rsp,%rbx + vaesenc %xmm0,%xmm7,%xmm7 + subq %r13,%rbx + vaesenc %xmm0,%xmm8,%xmm8 + vpxor 16(%r13),%xmm15,%xmm11 + movq %rbx,64+40(%rsp) + vaesenc %xmm0,%xmm9,%xmm9 + vmovups 8(%rsi),%xmm0 + leaq 16(%r13,%rbx,1),%r13 + vaesenc %xmm1,%xmm2,%xmm2 + cmpl 32+24(%rsp),%ecx + movq 64+48(%rsp),%rbx + vaesenc %xmm1,%xmm3,%xmm3 + prefetcht0 31(%r14) + vaesenc %xmm1,%xmm4,%xmm4 + prefetcht0 15(%r12) + vaesenc %xmm1,%xmm5,%xmm5 + leaq (%r14,%rbx,1),%rbx + cmovgeq %rsp,%r14 + vaesenc %xmm1,%xmm6,%xmm6 + cmovgq %rsp,%rbx + vaesenc %xmm1,%xmm7,%xmm7 + subq %r14,%rbx + vaesenc %xmm1,%xmm8,%xmm8 + vpxor 16(%r14),%xmm15,%xmm12 + movq %rbx,64+48(%rsp) + vaesenc %xmm1,%xmm9,%xmm9 + vmovups 24(%rsi),%xmm1 + leaq 16(%r14,%rbx,1),%r14 + vaesenc %xmm0,%xmm2,%xmm2 + cmpl 32+28(%rsp),%ecx + movq 64+56(%rsp),%rbx + vaesenc %xmm0,%xmm3,%xmm3 + prefetcht0 31(%r15) + vaesenc %xmm0,%xmm4,%xmm4 + prefetcht0 15(%r13) + vaesenc %xmm0,%xmm5,%xmm5 + leaq (%r15,%rbx,1),%rbx + cmovgeq %rsp,%r15 + vaesenc %xmm0,%xmm6,%xmm6 + cmovgq %rsp,%rbx + vaesenc %xmm0,%xmm7,%xmm7 + subq %r15,%rbx + vaesenc %xmm0,%xmm8,%xmm8 + vpxor 16(%r15),%xmm15,%xmm13 + movq %rbx,64+56(%rsp) + vaesenc %xmm0,%xmm9,%xmm9 + vmovups 40(%rsi),%xmm0 + leaq 16(%r15,%rbx,1),%r15 + vmovdqu 32(%rsp),%xmm14 + prefetcht0 15(%r14) + prefetcht0 15(%r15) + cmpl $11,%eax + jb L$enc8x_tail + + vaesenc %xmm1,%xmm2,%xmm2 + vaesenc %xmm1,%xmm3,%xmm3 + vaesenc %xmm1,%xmm4,%xmm4 + vaesenc %xmm1,%xmm5,%xmm5 + vaesenc %xmm1,%xmm6,%xmm6 + vaesenc %xmm1,%xmm7,%xmm7 + vaesenc %xmm1,%xmm8,%xmm8 + vaesenc %xmm1,%xmm9,%xmm9 + vmovups 176-120(%rsi),%xmm1 + + vaesenc %xmm0,%xmm2,%xmm2 + vaesenc %xmm0,%xmm3,%xmm3 + vaesenc %xmm0,%xmm4,%xmm4 + vaesenc %xmm0,%xmm5,%xmm5 + vaesenc %xmm0,%xmm6,%xmm6 + vaesenc %xmm0,%xmm7,%xmm7 + vaesenc %xmm0,%xmm8,%xmm8 + vaesenc %xmm0,%xmm9,%xmm9 + vmovups 192-120(%rsi),%xmm0 + je L$enc8x_tail + + vaesenc %xmm1,%xmm2,%xmm2 + vaesenc %xmm1,%xmm3,%xmm3 + vaesenc %xmm1,%xmm4,%xmm4 + vaesenc %xmm1,%xmm5,%xmm5 + vaesenc %xmm1,%xmm6,%xmm6 + vaesenc %xmm1,%xmm7,%xmm7 + vaesenc %xmm1,%xmm8,%xmm8 + vaesenc %xmm1,%xmm9,%xmm9 + vmovups 208-120(%rsi),%xmm1 + + vaesenc %xmm0,%xmm2,%xmm2 + vaesenc %xmm0,%xmm3,%xmm3 + vaesenc %xmm0,%xmm4,%xmm4 + vaesenc %xmm0,%xmm5,%xmm5 + vaesenc %xmm0,%xmm6,%xmm6 + vaesenc %xmm0,%xmm7,%xmm7 + vaesenc %xmm0,%xmm8,%xmm8 + vaesenc %xmm0,%xmm9,%xmm9 + vmovups 224-120(%rsi),%xmm0 + +L$enc8x_tail: + vaesenc %xmm1,%xmm2,%xmm2 + vpxor %xmm15,%xmm15,%xmm15 + vaesenc %xmm1,%xmm3,%xmm3 + vaesenc %xmm1,%xmm4,%xmm4 + vpcmpgtd %xmm15,%xmm14,%xmm15 + vaesenc %xmm1,%xmm5,%xmm5 + vaesenc %xmm1,%xmm6,%xmm6 + vpaddd %xmm14,%xmm15,%xmm15 + vmovdqu 48(%rsp),%xmm14 + vaesenc %xmm1,%xmm7,%xmm7 + movq 64(%rsp),%rbx + vaesenc %xmm1,%xmm8,%xmm8 + vaesenc %xmm1,%xmm9,%xmm9 + vmovups 16-120(%rsi),%xmm1 + + vaesenclast %xmm0,%xmm2,%xmm2 + vmovdqa %xmm15,32(%rsp) + vpxor %xmm15,%xmm15,%xmm15 + vaesenclast %xmm0,%xmm3,%xmm3 + vaesenclast %xmm0,%xmm4,%xmm4 + vpcmpgtd %xmm15,%xmm14,%xmm15 + vaesenclast %xmm0,%xmm5,%xmm5 + vaesenclast %xmm0,%xmm6,%xmm6 + vpaddd %xmm15,%xmm14,%xmm14 + vmovdqu -120(%rsi),%xmm15 + vaesenclast %xmm0,%xmm7,%xmm7 + vaesenclast %xmm0,%xmm8,%xmm8 + vmovdqa %xmm14,48(%rsp) + vaesenclast %xmm0,%xmm9,%xmm9 + vmovups 32-120(%rsi),%xmm0 + + vmovups %xmm2,-16(%r8) + subq %rbx,%r8 + vpxor 0(%rbp),%xmm2,%xmm2 + vmovups %xmm3,-16(%r9) + subq 72(%rsp),%r9 + vpxor 16(%rbp),%xmm3,%xmm3 + vmovups %xmm4,-16(%r10) + subq 80(%rsp),%r10 + vpxor 32(%rbp),%xmm4,%xmm4 + vmovups %xmm5,-16(%r11) + subq 88(%rsp),%r11 + vpxor 48(%rbp),%xmm5,%xmm5 + vmovups %xmm6,-16(%r12) + subq 96(%rsp),%r12 + vpxor %xmm10,%xmm6,%xmm6 + vmovups %xmm7,-16(%r13) + subq 104(%rsp),%r13 + vpxor %xmm11,%xmm7,%xmm7 + vmovups %xmm8,-16(%r14) + subq 112(%rsp),%r14 + vpxor %xmm12,%xmm8,%xmm8 + vmovups %xmm9,-16(%r15) + subq 120(%rsp),%r15 + vpxor %xmm13,%xmm9,%xmm9 + + decl %edx + jnz L$oop_enc8x + + movq 16(%rsp),%rax + + + + + + +L$enc8x_done: + vzeroupper + movq -48(%rax),%r15 + + movq -40(%rax),%r14 + + movq -32(%rax),%r13 + + movq -24(%rax),%r12 + + movq -16(%rax),%rbp + + movq -8(%rax),%rbx + + leaq (%rax),%rsp + +L$enc8x_epilogue: + .byte 0xf3,0xc3 + + + + +.p2align 5 +aesni_multi_cbc_decrypt_avx: + +_avx_cbc_dec_shortcut: + movq %rsp,%rax + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + + + + + + + + + + subq $256,%rsp + andq $-256,%rsp + subq $192,%rsp + movq %rax,16(%rsp) + + +L$dec8x_body: + vzeroupper + vmovdqu (%rsi),%xmm15 + leaq 120(%rsi),%rsi + leaq 160(%rdi),%rdi + shrl $1,%edx + +L$dec8x_loop_grande: + + xorl %edx,%edx + movl -144(%rdi),%ecx + movq -160(%rdi),%r8 + cmpl %edx,%ecx + movq -152(%rdi),%rbx + cmovgl %ecx,%edx + testl %ecx,%ecx + vmovdqu -136(%rdi),%xmm2 + movl %ecx,32(%rsp) + cmovleq %rsp,%r8 + subq %r8,%rbx + movq %rbx,64(%rsp) + vmovdqu %xmm2,192(%rsp) + movl -104(%rdi),%ecx + movq -120(%rdi),%r9 + cmpl %edx,%ecx + movq -112(%rdi),%rbp + cmovgl %ecx,%edx + testl %ecx,%ecx + vmovdqu -96(%rdi),%xmm3 + movl %ecx,36(%rsp) + cmovleq %rsp,%r9 + subq %r9,%rbp + movq %rbp,72(%rsp) + vmovdqu %xmm3,208(%rsp) + movl -64(%rdi),%ecx + movq -80(%rdi),%r10 + cmpl %edx,%ecx + movq -72(%rdi),%rbp + cmovgl %ecx,%edx + testl %ecx,%ecx + vmovdqu -56(%rdi),%xmm4 + movl %ecx,40(%rsp) + cmovleq %rsp,%r10 + subq %r10,%rbp + movq %rbp,80(%rsp) + vmovdqu %xmm4,224(%rsp) + movl -24(%rdi),%ecx + movq -40(%rdi),%r11 + cmpl %edx,%ecx + movq -32(%rdi),%rbp + cmovgl %ecx,%edx + testl %ecx,%ecx + vmovdqu -16(%rdi),%xmm5 + movl %ecx,44(%rsp) + cmovleq %rsp,%r11 + subq %r11,%rbp + movq %rbp,88(%rsp) + vmovdqu %xmm5,240(%rsp) + movl 16(%rdi),%ecx + movq 0(%rdi),%r12 + cmpl %edx,%ecx + movq 8(%rdi),%rbp + cmovgl %ecx,%edx + testl %ecx,%ecx + vmovdqu 24(%rdi),%xmm6 + movl %ecx,48(%rsp) + cmovleq %rsp,%r12 + subq %r12,%rbp + movq %rbp,96(%rsp) + vmovdqu %xmm6,256(%rsp) + movl 56(%rdi),%ecx + movq 40(%rdi),%r13 + cmpl %edx,%ecx + movq 48(%rdi),%rbp + cmovgl %ecx,%edx + testl %ecx,%ecx + vmovdqu 64(%rdi),%xmm7 + movl %ecx,52(%rsp) + cmovleq %rsp,%r13 + subq %r13,%rbp + movq %rbp,104(%rsp) + vmovdqu %xmm7,272(%rsp) + movl 96(%rdi),%ecx + movq 80(%rdi),%r14 + cmpl %edx,%ecx + movq 88(%rdi),%rbp + cmovgl %ecx,%edx + testl %ecx,%ecx + vmovdqu 104(%rdi),%xmm8 + movl %ecx,56(%rsp) + cmovleq %rsp,%r14 + subq %r14,%rbp + movq %rbp,112(%rsp) + vmovdqu %xmm8,288(%rsp) + movl 136(%rdi),%ecx + movq 120(%rdi),%r15 + cmpl %edx,%ecx + movq 128(%rdi),%rbp + cmovgl %ecx,%edx + testl %ecx,%ecx + vmovdqu 144(%rdi),%xmm9 + movl %ecx,60(%rsp) + cmovleq %rsp,%r15 + subq %r15,%rbp + movq %rbp,120(%rsp) + vmovdqu %xmm9,304(%rsp) + testl %edx,%edx + jz L$dec8x_done + + vmovups 16-120(%rsi),%xmm1 + vmovups 32-120(%rsi),%xmm0 + movl 240-120(%rsi),%eax + leaq 192+128(%rsp),%rbp + + vmovdqu (%r8),%xmm2 + vmovdqu (%r9),%xmm3 + vmovdqu (%r10),%xmm4 + vmovdqu (%r11),%xmm5 + vmovdqu (%r12),%xmm6 + vmovdqu (%r13),%xmm7 + vmovdqu (%r14),%xmm8 + vmovdqu (%r15),%xmm9 + vmovdqu %xmm2,0(%rbp) + vpxor %xmm15,%xmm2,%xmm2 + vmovdqu %xmm3,16(%rbp) + vpxor %xmm15,%xmm3,%xmm3 + vmovdqu %xmm4,32(%rbp) + vpxor %xmm15,%xmm4,%xmm4 + vmovdqu %xmm5,48(%rbp) + vpxor %xmm15,%xmm5,%xmm5 + vmovdqu %xmm6,64(%rbp) + vpxor %xmm15,%xmm6,%xmm6 + vmovdqu %xmm7,80(%rbp) + vpxor %xmm15,%xmm7,%xmm7 + vmovdqu %xmm8,96(%rbp) + vpxor %xmm15,%xmm8,%xmm8 + vmovdqu %xmm9,112(%rbp) + vpxor %xmm15,%xmm9,%xmm9 + xorq $0x80,%rbp + movl $1,%ecx + jmp L$oop_dec8x + +.p2align 5 +L$oop_dec8x: + vaesdec %xmm1,%xmm2,%xmm2 + cmpl 32+0(%rsp),%ecx + vaesdec %xmm1,%xmm3,%xmm3 + prefetcht0 31(%r8) + vaesdec %xmm1,%xmm4,%xmm4 + vaesdec %xmm1,%xmm5,%xmm5 + leaq (%r8,%rbx,1),%rbx + cmovgeq %rsp,%r8 + vaesdec %xmm1,%xmm6,%xmm6 + cmovgq %rsp,%rbx + vaesdec %xmm1,%xmm7,%xmm7 + subq %r8,%rbx + vaesdec %xmm1,%xmm8,%xmm8 + vmovdqu 16(%r8),%xmm10 + movq %rbx,64+0(%rsp) + vaesdec %xmm1,%xmm9,%xmm9 + vmovups -72(%rsi),%xmm1 + leaq 16(%r8,%rbx,1),%r8 + vmovdqu %xmm10,128(%rsp) + vaesdec %xmm0,%xmm2,%xmm2 + cmpl 32+4(%rsp),%ecx + movq 64+8(%rsp),%rbx + vaesdec %xmm0,%xmm3,%xmm3 + prefetcht0 31(%r9) + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + leaq (%r9,%rbx,1),%rbx + cmovgeq %rsp,%r9 + vaesdec %xmm0,%xmm6,%xmm6 + cmovgq %rsp,%rbx + vaesdec %xmm0,%xmm7,%xmm7 + subq %r9,%rbx + vaesdec %xmm0,%xmm8,%xmm8 + vmovdqu 16(%r9),%xmm11 + movq %rbx,64+8(%rsp) + vaesdec %xmm0,%xmm9,%xmm9 + vmovups -56(%rsi),%xmm0 + leaq 16(%r9,%rbx,1),%r9 + vmovdqu %xmm11,144(%rsp) + vaesdec %xmm1,%xmm2,%xmm2 + cmpl 32+8(%rsp),%ecx + movq 64+16(%rsp),%rbx + vaesdec %xmm1,%xmm3,%xmm3 + prefetcht0 31(%r10) + vaesdec %xmm1,%xmm4,%xmm4 + prefetcht0 15(%r8) + vaesdec %xmm1,%xmm5,%xmm5 + leaq (%r10,%rbx,1),%rbx + cmovgeq %rsp,%r10 + vaesdec %xmm1,%xmm6,%xmm6 + cmovgq %rsp,%rbx + vaesdec %xmm1,%xmm7,%xmm7 + subq %r10,%rbx + vaesdec %xmm1,%xmm8,%xmm8 + vmovdqu 16(%r10),%xmm12 + movq %rbx,64+16(%rsp) + vaesdec %xmm1,%xmm9,%xmm9 + vmovups -40(%rsi),%xmm1 + leaq 16(%r10,%rbx,1),%r10 + vmovdqu %xmm12,160(%rsp) + vaesdec %xmm0,%xmm2,%xmm2 + cmpl 32+12(%rsp),%ecx + movq 64+24(%rsp),%rbx + vaesdec %xmm0,%xmm3,%xmm3 + prefetcht0 31(%r11) + vaesdec %xmm0,%xmm4,%xmm4 + prefetcht0 15(%r9) + vaesdec %xmm0,%xmm5,%xmm5 + leaq (%r11,%rbx,1),%rbx + cmovgeq %rsp,%r11 + vaesdec %xmm0,%xmm6,%xmm6 + cmovgq %rsp,%rbx + vaesdec %xmm0,%xmm7,%xmm7 + subq %r11,%rbx + vaesdec %xmm0,%xmm8,%xmm8 + vmovdqu 16(%r11),%xmm13 + movq %rbx,64+24(%rsp) + vaesdec %xmm0,%xmm9,%xmm9 + vmovups -24(%rsi),%xmm0 + leaq 16(%r11,%rbx,1),%r11 + vmovdqu %xmm13,176(%rsp) + vaesdec %xmm1,%xmm2,%xmm2 + cmpl 32+16(%rsp),%ecx + movq 64+32(%rsp),%rbx + vaesdec %xmm1,%xmm3,%xmm3 + prefetcht0 31(%r12) + vaesdec %xmm1,%xmm4,%xmm4 + prefetcht0 15(%r10) + vaesdec %xmm1,%xmm5,%xmm5 + leaq (%r12,%rbx,1),%rbx + cmovgeq %rsp,%r12 + vaesdec %xmm1,%xmm6,%xmm6 + cmovgq %rsp,%rbx + vaesdec %xmm1,%xmm7,%xmm7 + subq %r12,%rbx + vaesdec %xmm1,%xmm8,%xmm8 + vmovdqu 16(%r12),%xmm10 + movq %rbx,64+32(%rsp) + vaesdec %xmm1,%xmm9,%xmm9 + vmovups -8(%rsi),%xmm1 + leaq 16(%r12,%rbx,1),%r12 + vaesdec %xmm0,%xmm2,%xmm2 + cmpl 32+20(%rsp),%ecx + movq 64+40(%rsp),%rbx + vaesdec %xmm0,%xmm3,%xmm3 + prefetcht0 31(%r13) + vaesdec %xmm0,%xmm4,%xmm4 + prefetcht0 15(%r11) + vaesdec %xmm0,%xmm5,%xmm5 + leaq (%rbx,%r13,1),%rbx + cmovgeq %rsp,%r13 + vaesdec %xmm0,%xmm6,%xmm6 + cmovgq %rsp,%rbx + vaesdec %xmm0,%xmm7,%xmm7 + subq %r13,%rbx + vaesdec %xmm0,%xmm8,%xmm8 + vmovdqu 16(%r13),%xmm11 + movq %rbx,64+40(%rsp) + vaesdec %xmm0,%xmm9,%xmm9 + vmovups 8(%rsi),%xmm0 + leaq 16(%r13,%rbx,1),%r13 + vaesdec %xmm1,%xmm2,%xmm2 + cmpl 32+24(%rsp),%ecx + movq 64+48(%rsp),%rbx + vaesdec %xmm1,%xmm3,%xmm3 + prefetcht0 31(%r14) + vaesdec %xmm1,%xmm4,%xmm4 + prefetcht0 15(%r12) + vaesdec %xmm1,%xmm5,%xmm5 + leaq (%r14,%rbx,1),%rbx + cmovgeq %rsp,%r14 + vaesdec %xmm1,%xmm6,%xmm6 + cmovgq %rsp,%rbx + vaesdec %xmm1,%xmm7,%xmm7 + subq %r14,%rbx + vaesdec %xmm1,%xmm8,%xmm8 + vmovdqu 16(%r14),%xmm12 + movq %rbx,64+48(%rsp) + vaesdec %xmm1,%xmm9,%xmm9 + vmovups 24(%rsi),%xmm1 + leaq 16(%r14,%rbx,1),%r14 + vaesdec %xmm0,%xmm2,%xmm2 + cmpl 32+28(%rsp),%ecx + movq 64+56(%rsp),%rbx + vaesdec %xmm0,%xmm3,%xmm3 + prefetcht0 31(%r15) + vaesdec %xmm0,%xmm4,%xmm4 + prefetcht0 15(%r13) + vaesdec %xmm0,%xmm5,%xmm5 + leaq (%r15,%rbx,1),%rbx + cmovgeq %rsp,%r15 + vaesdec %xmm0,%xmm6,%xmm6 + cmovgq %rsp,%rbx + vaesdec %xmm0,%xmm7,%xmm7 + subq %r15,%rbx + vaesdec %xmm0,%xmm8,%xmm8 + vmovdqu 16(%r15),%xmm13 + movq %rbx,64+56(%rsp) + vaesdec %xmm0,%xmm9,%xmm9 + vmovups 40(%rsi),%xmm0 + leaq 16(%r15,%rbx,1),%r15 + vmovdqu 32(%rsp),%xmm14 + prefetcht0 15(%r14) + prefetcht0 15(%r15) + cmpl $11,%eax + jb L$dec8x_tail + + vaesdec %xmm1,%xmm2,%xmm2 + vaesdec %xmm1,%xmm3,%xmm3 + vaesdec %xmm1,%xmm4,%xmm4 + vaesdec %xmm1,%xmm5,%xmm5 + vaesdec %xmm1,%xmm6,%xmm6 + vaesdec %xmm1,%xmm7,%xmm7 + vaesdec %xmm1,%xmm8,%xmm8 + vaesdec %xmm1,%xmm9,%xmm9 + vmovups 176-120(%rsi),%xmm1 + + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vaesdec %xmm0,%xmm8,%xmm8 + vaesdec %xmm0,%xmm9,%xmm9 + vmovups 192-120(%rsi),%xmm0 + je L$dec8x_tail + + vaesdec %xmm1,%xmm2,%xmm2 + vaesdec %xmm1,%xmm3,%xmm3 + vaesdec %xmm1,%xmm4,%xmm4 + vaesdec %xmm1,%xmm5,%xmm5 + vaesdec %xmm1,%xmm6,%xmm6 + vaesdec %xmm1,%xmm7,%xmm7 + vaesdec %xmm1,%xmm8,%xmm8 + vaesdec %xmm1,%xmm9,%xmm9 + vmovups 208-120(%rsi),%xmm1 + + vaesdec %xmm0,%xmm2,%xmm2 + vaesdec %xmm0,%xmm3,%xmm3 + vaesdec %xmm0,%xmm4,%xmm4 + vaesdec %xmm0,%xmm5,%xmm5 + vaesdec %xmm0,%xmm6,%xmm6 + vaesdec %xmm0,%xmm7,%xmm7 + vaesdec %xmm0,%xmm8,%xmm8 + vaesdec %xmm0,%xmm9,%xmm9 + vmovups 224-120(%rsi),%xmm0 + +L$dec8x_tail: + vaesdec %xmm1,%xmm2,%xmm2 + vpxor %xmm15,%xmm15,%xmm15 + vaesdec %xmm1,%xmm3,%xmm3 + vaesdec %xmm1,%xmm4,%xmm4 + vpcmpgtd %xmm15,%xmm14,%xmm15 + vaesdec %xmm1,%xmm5,%xmm5 + vaesdec %xmm1,%xmm6,%xmm6 + vpaddd %xmm14,%xmm15,%xmm15 + vmovdqu 48(%rsp),%xmm14 + vaesdec %xmm1,%xmm7,%xmm7 + movq 64(%rsp),%rbx + vaesdec %xmm1,%xmm8,%xmm8 + vaesdec %xmm1,%xmm9,%xmm9 + vmovups 16-120(%rsi),%xmm1 + + vaesdeclast %xmm0,%xmm2,%xmm2 + vmovdqa %xmm15,32(%rsp) + vpxor %xmm15,%xmm15,%xmm15 + vaesdeclast %xmm0,%xmm3,%xmm3 + vpxor 0(%rbp),%xmm2,%xmm2 + vaesdeclast %xmm0,%xmm4,%xmm4 + vpxor 16(%rbp),%xmm3,%xmm3 + vpcmpgtd %xmm15,%xmm14,%xmm15 + vaesdeclast %xmm0,%xmm5,%xmm5 + vpxor 32(%rbp),%xmm4,%xmm4 + vaesdeclast %xmm0,%xmm6,%xmm6 + vpxor 48(%rbp),%xmm5,%xmm5 + vpaddd %xmm15,%xmm14,%xmm14 + vmovdqu -120(%rsi),%xmm15 + vaesdeclast %xmm0,%xmm7,%xmm7 + vpxor 64(%rbp),%xmm6,%xmm6 + vaesdeclast %xmm0,%xmm8,%xmm8 + vpxor 80(%rbp),%xmm7,%xmm7 + vmovdqa %xmm14,48(%rsp) + vaesdeclast %xmm0,%xmm9,%xmm9 + vpxor 96(%rbp),%xmm8,%xmm8 + vmovups 32-120(%rsi),%xmm0 + + vmovups %xmm2,-16(%r8) + subq %rbx,%r8 + vmovdqu 128+0(%rsp),%xmm2 + vpxor 112(%rbp),%xmm9,%xmm9 + vmovups %xmm3,-16(%r9) + subq 72(%rsp),%r9 + vmovdqu %xmm2,0(%rbp) + vpxor %xmm15,%xmm2,%xmm2 + vmovdqu 128+16(%rsp),%xmm3 + vmovups %xmm4,-16(%r10) + subq 80(%rsp),%r10 + vmovdqu %xmm3,16(%rbp) + vpxor %xmm15,%xmm3,%xmm3 + vmovdqu 128+32(%rsp),%xmm4 + vmovups %xmm5,-16(%r11) + subq 88(%rsp),%r11 + vmovdqu %xmm4,32(%rbp) + vpxor %xmm15,%xmm4,%xmm4 + vmovdqu 128+48(%rsp),%xmm5 + vmovups %xmm6,-16(%r12) + subq 96(%rsp),%r12 + vmovdqu %xmm5,48(%rbp) + vpxor %xmm15,%xmm5,%xmm5 + vmovdqu %xmm10,64(%rbp) + vpxor %xmm10,%xmm15,%xmm6 + vmovups %xmm7,-16(%r13) + subq 104(%rsp),%r13 + vmovdqu %xmm11,80(%rbp) + vpxor %xmm11,%xmm15,%xmm7 + vmovups %xmm8,-16(%r14) + subq 112(%rsp),%r14 + vmovdqu %xmm12,96(%rbp) + vpxor %xmm12,%xmm15,%xmm8 + vmovups %xmm9,-16(%r15) + subq 120(%rsp),%r15 + vmovdqu %xmm13,112(%rbp) + vpxor %xmm13,%xmm15,%xmm9 + + xorq $128,%rbp + decl %edx + jnz L$oop_dec8x + + movq 16(%rsp),%rax + + + + + + +L$dec8x_done: + vzeroupper + movq -48(%rax),%r15 + + movq -40(%rax),%r14 + + movq -32(%rax),%r13 + + movq -24(%rax),%r12 + + movq -16(%rax),%rbp + + movq -8(%rax),%rbx + + leaq (%rax),%rsp + +L$dec8x_epilogue: + .byte 0xf3,0xc3 + + diff --git a/vere/ext/openssl/gen/macos-x86_64/crypto/aes/aesni-sha1-x86_64.s b/vere/ext/openssl/gen/macos-x86_64/crypto/aes/aesni-sha1-x86_64.s new file mode 100644 index 0000000..b0e1036 --- /dev/null +++ b/vere/ext/openssl/gen/macos-x86_64/crypto/aes/aesni-sha1-x86_64.s @@ -0,0 +1,3023 @@ +.text + + +.globl _aesni_cbc_sha1_enc + +.p2align 5 +_aesni_cbc_sha1_enc: + + + movl _OPENSSL_ia32cap_P+0(%rip),%r10d + movq _OPENSSL_ia32cap_P+4(%rip),%r11 + btq $61,%r11 + jc aesni_cbc_sha1_enc_shaext + andl $268435456,%r11d + andl $1073741824,%r10d + orl %r11d,%r10d + cmpl $1342177280,%r10d + je aesni_cbc_sha1_enc_avx + jmp aesni_cbc_sha1_enc_ssse3 + .byte 0xf3,0xc3 + + + +.p2align 5 +aesni_cbc_sha1_enc_ssse3: + + movq 8(%rsp),%r10 + + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + leaq -104(%rsp),%rsp + + + + movq %rdi,%r12 + movq %rsi,%r13 + movq %rdx,%r14 + leaq 112(%rcx),%r15 + movdqu (%r8),%xmm2 + movq %r8,88(%rsp) + shlq $6,%r14 + subq %r12,%r13 + movl 240-112(%r15),%r8d + addq %r10,%r14 + + leaq K_XX_XX(%rip),%r11 + movl 0(%r9),%eax + movl 4(%r9),%ebx + movl 8(%r9),%ecx + movl 12(%r9),%edx + movl %ebx,%esi + movl 16(%r9),%ebp + movl %ecx,%edi + xorl %edx,%edi + andl %edi,%esi + + movdqa 64(%r11),%xmm3 + movdqa 0(%r11),%xmm13 + movdqu 0(%r10),%xmm4 + movdqu 16(%r10),%xmm5 + movdqu 32(%r10),%xmm6 + movdqu 48(%r10),%xmm7 +.byte 102,15,56,0,227 +.byte 102,15,56,0,235 +.byte 102,15,56,0,243 + addq $64,%r10 + paddd %xmm13,%xmm4 +.byte 102,15,56,0,251 + paddd %xmm13,%xmm5 + paddd %xmm13,%xmm6 + movdqa %xmm4,0(%rsp) + psubd %xmm13,%xmm4 + movdqa %xmm5,16(%rsp) + psubd %xmm13,%xmm5 + movdqa %xmm6,32(%rsp) + psubd %xmm13,%xmm6 + movups -112(%r15),%xmm15 + movups 16-112(%r15),%xmm0 + jmp L$oop_ssse3 +.p2align 5 +L$oop_ssse3: + rorl $2,%ebx + movups 0(%r12),%xmm14 + xorps %xmm15,%xmm14 + xorps %xmm14,%xmm2 + movups -80(%r15),%xmm1 +.byte 102,15,56,220,208 + pshufd $238,%xmm4,%xmm8 + xorl %edx,%esi + movdqa %xmm7,%xmm12 + paddd %xmm7,%xmm13 + movl %eax,%edi + addl 0(%rsp),%ebp + punpcklqdq %xmm5,%xmm8 + xorl %ecx,%ebx + roll $5,%eax + addl %esi,%ebp + psrldq $4,%xmm12 + andl %ebx,%edi + xorl %ecx,%ebx + pxor %xmm4,%xmm8 + addl %eax,%ebp + rorl $7,%eax + pxor %xmm6,%xmm12 + xorl %ecx,%edi + movl %ebp,%esi + addl 4(%rsp),%edx + pxor %xmm12,%xmm8 + xorl %ebx,%eax + roll $5,%ebp + movdqa %xmm13,48(%rsp) + addl %edi,%edx + movups -64(%r15),%xmm0 +.byte 102,15,56,220,209 + andl %eax,%esi + movdqa %xmm8,%xmm3 + xorl %ebx,%eax + addl %ebp,%edx + rorl $7,%ebp + movdqa %xmm8,%xmm12 + xorl %ebx,%esi + pslldq $12,%xmm3 + paddd %xmm8,%xmm8 + movl %edx,%edi + addl 8(%rsp),%ecx + psrld $31,%xmm12 + xorl %eax,%ebp + roll $5,%edx + addl %esi,%ecx + movdqa %xmm3,%xmm13 + andl %ebp,%edi + xorl %eax,%ebp + psrld $30,%xmm3 + addl %edx,%ecx + rorl $7,%edx + por %xmm12,%xmm8 + xorl %eax,%edi + movl %ecx,%esi + addl 12(%rsp),%ebx + movups -48(%r15),%xmm1 +.byte 102,15,56,220,208 + pslld $2,%xmm13 + pxor %xmm3,%xmm8 + xorl %ebp,%edx + movdqa 0(%r11),%xmm3 + roll $5,%ecx + addl %edi,%ebx + andl %edx,%esi + pxor %xmm13,%xmm8 + xorl %ebp,%edx + addl %ecx,%ebx + rorl $7,%ecx + pshufd $238,%xmm5,%xmm9 + xorl %ebp,%esi + movdqa %xmm8,%xmm13 + paddd %xmm8,%xmm3 + movl %ebx,%edi + addl 16(%rsp),%eax + punpcklqdq %xmm6,%xmm9 + xorl %edx,%ecx + roll $5,%ebx + addl %esi,%eax + psrldq $4,%xmm13 + andl %ecx,%edi + xorl %edx,%ecx + pxor %xmm5,%xmm9 + addl %ebx,%eax + rorl $7,%ebx + movups -32(%r15),%xmm0 +.byte 102,15,56,220,209 + pxor %xmm7,%xmm13 + xorl %edx,%edi + movl %eax,%esi + addl 20(%rsp),%ebp + pxor %xmm13,%xmm9 + xorl %ecx,%ebx + roll $5,%eax + movdqa %xmm3,0(%rsp) + addl %edi,%ebp + andl %ebx,%esi + movdqa %xmm9,%xmm12 + xorl %ecx,%ebx + addl %eax,%ebp + rorl $7,%eax + movdqa %xmm9,%xmm13 + xorl %ecx,%esi + pslldq $12,%xmm12 + paddd %xmm9,%xmm9 + movl %ebp,%edi + addl 24(%rsp),%edx + psrld $31,%xmm13 + xorl %ebx,%eax + roll $5,%ebp + addl %esi,%edx + movups -16(%r15),%xmm1 +.byte 102,15,56,220,208 + movdqa %xmm12,%xmm3 + andl %eax,%edi + xorl %ebx,%eax + psrld $30,%xmm12 + addl %ebp,%edx + rorl $7,%ebp + por %xmm13,%xmm9 + xorl %ebx,%edi + movl %edx,%esi + addl 28(%rsp),%ecx + pslld $2,%xmm3 + pxor %xmm12,%xmm9 + xorl %eax,%ebp + movdqa 16(%r11),%xmm12 + roll $5,%edx + addl %edi,%ecx + andl %ebp,%esi + pxor %xmm3,%xmm9 + xorl %eax,%ebp + addl %edx,%ecx + rorl $7,%edx + pshufd $238,%xmm6,%xmm10 + xorl %eax,%esi + movdqa %xmm9,%xmm3 + paddd %xmm9,%xmm12 + movl %ecx,%edi + addl 32(%rsp),%ebx + movups 0(%r15),%xmm0 +.byte 102,15,56,220,209 + punpcklqdq %xmm7,%xmm10 + xorl %ebp,%edx + roll $5,%ecx + addl %esi,%ebx + psrldq $4,%xmm3 + andl %edx,%edi + xorl %ebp,%edx + pxor %xmm6,%xmm10 + addl %ecx,%ebx + rorl $7,%ecx + pxor %xmm8,%xmm3 + xorl %ebp,%edi + movl %ebx,%esi + addl 36(%rsp),%eax + pxor %xmm3,%xmm10 + xorl %edx,%ecx + roll $5,%ebx + movdqa %xmm12,16(%rsp) + addl %edi,%eax + andl %ecx,%esi + movdqa %xmm10,%xmm13 + xorl %edx,%ecx + addl %ebx,%eax + rorl $7,%ebx + movups 16(%r15),%xmm1 +.byte 102,15,56,220,208 + movdqa %xmm10,%xmm3 + xorl %edx,%esi + pslldq $12,%xmm13 + paddd %xmm10,%xmm10 + movl %eax,%edi + addl 40(%rsp),%ebp + psrld $31,%xmm3 + xorl %ecx,%ebx + roll $5,%eax + addl %esi,%ebp + movdqa %xmm13,%xmm12 + andl %ebx,%edi + xorl %ecx,%ebx + psrld $30,%xmm13 + addl %eax,%ebp + rorl $7,%eax + por %xmm3,%xmm10 + xorl %ecx,%edi + movl %ebp,%esi + addl 44(%rsp),%edx + pslld $2,%xmm12 + pxor %xmm13,%xmm10 + xorl %ebx,%eax + movdqa 16(%r11),%xmm13 + roll $5,%ebp + addl %edi,%edx + movups 32(%r15),%xmm0 +.byte 102,15,56,220,209 + andl %eax,%esi + pxor %xmm12,%xmm10 + xorl %ebx,%eax + addl %ebp,%edx + rorl $7,%ebp + pshufd $238,%xmm7,%xmm11 + xorl %ebx,%esi + movdqa %xmm10,%xmm12 + paddd %xmm10,%xmm13 + movl %edx,%edi + addl 48(%rsp),%ecx + punpcklqdq %xmm8,%xmm11 + xorl %eax,%ebp + roll $5,%edx + addl %esi,%ecx + psrldq $4,%xmm12 + andl %ebp,%edi + xorl %eax,%ebp + pxor %xmm7,%xmm11 + addl %edx,%ecx + rorl $7,%edx + pxor %xmm9,%xmm12 + xorl %eax,%edi + movl %ecx,%esi + addl 52(%rsp),%ebx + movups 48(%r15),%xmm1 +.byte 102,15,56,220,208 + pxor %xmm12,%xmm11 + xorl %ebp,%edx + roll $5,%ecx + movdqa %xmm13,32(%rsp) + addl %edi,%ebx + andl %edx,%esi + movdqa %xmm11,%xmm3 + xorl %ebp,%edx + addl %ecx,%ebx + rorl $7,%ecx + movdqa %xmm11,%xmm12 + xorl %ebp,%esi + pslldq $12,%xmm3 + paddd %xmm11,%xmm11 + movl %ebx,%edi + addl 56(%rsp),%eax + psrld $31,%xmm12 + xorl %edx,%ecx + roll $5,%ebx + addl %esi,%eax + movdqa %xmm3,%xmm13 + andl %ecx,%edi + xorl %edx,%ecx + psrld $30,%xmm3 + addl %ebx,%eax + rorl $7,%ebx + cmpl $11,%r8d + jb L$aesenclast1 + movups 64(%r15),%xmm0 +.byte 102,15,56,220,209 + movups 80(%r15),%xmm1 +.byte 102,15,56,220,208 + je L$aesenclast1 + movups 96(%r15),%xmm0 +.byte 102,15,56,220,209 + movups 112(%r15),%xmm1 +.byte 102,15,56,220,208 +L$aesenclast1: +.byte 102,15,56,221,209 + movups 16-112(%r15),%xmm0 + por %xmm12,%xmm11 + xorl %edx,%edi + movl %eax,%esi + addl 60(%rsp),%ebp + pslld $2,%xmm13 + pxor %xmm3,%xmm11 + xorl %ecx,%ebx + movdqa 16(%r11),%xmm3 + roll $5,%eax + addl %edi,%ebp + andl %ebx,%esi + pxor %xmm13,%xmm11 + pshufd $238,%xmm10,%xmm13 + xorl %ecx,%ebx + addl %eax,%ebp + rorl $7,%eax + pxor %xmm8,%xmm4 + xorl %ecx,%esi + movl %ebp,%edi + addl 0(%rsp),%edx + punpcklqdq %xmm11,%xmm13 + xorl %ebx,%eax + roll $5,%ebp + pxor %xmm5,%xmm4 + addl %esi,%edx + movups 16(%r12),%xmm14 + xorps %xmm15,%xmm14 + movups %xmm2,0(%r12,%r13,1) + xorps %xmm14,%xmm2 + movups -80(%r15),%xmm1 +.byte 102,15,56,220,208 + andl %eax,%edi + movdqa %xmm3,%xmm12 + xorl %ebx,%eax + paddd %xmm11,%xmm3 + addl %ebp,%edx + pxor %xmm13,%xmm4 + rorl $7,%ebp + xorl %ebx,%edi + movl %edx,%esi + addl 4(%rsp),%ecx + movdqa %xmm4,%xmm13 + xorl %eax,%ebp + roll $5,%edx + movdqa %xmm3,48(%rsp) + addl %edi,%ecx + andl %ebp,%esi + xorl %eax,%ebp + pslld $2,%xmm4 + addl %edx,%ecx + rorl $7,%edx + psrld $30,%xmm13 + xorl %eax,%esi + movl %ecx,%edi + addl 8(%rsp),%ebx + movups -64(%r15),%xmm0 +.byte 102,15,56,220,209 + por %xmm13,%xmm4 + xorl %ebp,%edx + roll $5,%ecx + pshufd $238,%xmm11,%xmm3 + addl %esi,%ebx + andl %edx,%edi + xorl %ebp,%edx + addl %ecx,%ebx + addl 12(%rsp),%eax + xorl %ebp,%edi + movl %ebx,%esi + roll $5,%ebx + addl %edi,%eax + xorl %edx,%esi + rorl $7,%ecx + addl %ebx,%eax + pxor %xmm9,%xmm5 + addl 16(%rsp),%ebp + movups -48(%r15),%xmm1 +.byte 102,15,56,220,208 + xorl %ecx,%esi + punpcklqdq %xmm4,%xmm3 + movl %eax,%edi + roll $5,%eax + pxor %xmm6,%xmm5 + addl %esi,%ebp + xorl %ecx,%edi + movdqa %xmm12,%xmm13 + rorl $7,%ebx + paddd %xmm4,%xmm12 + addl %eax,%ebp + pxor %xmm3,%xmm5 + addl 20(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + roll $5,%ebp + movdqa %xmm5,%xmm3 + addl %edi,%edx + xorl %ebx,%esi + movdqa %xmm12,0(%rsp) + rorl $7,%eax + addl %ebp,%edx + addl 24(%rsp),%ecx + pslld $2,%xmm5 + xorl %eax,%esi + movl %edx,%edi + psrld $30,%xmm3 + roll $5,%edx + addl %esi,%ecx + movups -32(%r15),%xmm0 +.byte 102,15,56,220,209 + xorl %eax,%edi + rorl $7,%ebp + por %xmm3,%xmm5 + addl %edx,%ecx + addl 28(%rsp),%ebx + pshufd $238,%xmm4,%xmm12 + xorl %ebp,%edi + movl %ecx,%esi + roll $5,%ecx + addl %edi,%ebx + xorl %ebp,%esi + rorl $7,%edx + addl %ecx,%ebx + pxor %xmm10,%xmm6 + addl 32(%rsp),%eax + xorl %edx,%esi + punpcklqdq %xmm5,%xmm12 + movl %ebx,%edi + roll $5,%ebx + pxor %xmm7,%xmm6 + addl %esi,%eax + xorl %edx,%edi + movdqa 32(%r11),%xmm3 + rorl $7,%ecx + paddd %xmm5,%xmm13 + addl %ebx,%eax + pxor %xmm12,%xmm6 + addl 36(%rsp),%ebp + movups -16(%r15),%xmm1 +.byte 102,15,56,220,208 + xorl %ecx,%edi + movl %eax,%esi + roll $5,%eax + movdqa %xmm6,%xmm12 + addl %edi,%ebp + xorl %ecx,%esi + movdqa %xmm13,16(%rsp) + rorl $7,%ebx + addl %eax,%ebp + addl 40(%rsp),%edx + pslld $2,%xmm6 + xorl %ebx,%esi + movl %ebp,%edi + psrld $30,%xmm12 + roll $5,%ebp + addl %esi,%edx + xorl %ebx,%edi + rorl $7,%eax + por %xmm12,%xmm6 + addl %ebp,%edx + addl 44(%rsp),%ecx + pshufd $238,%xmm5,%xmm13 + xorl %eax,%edi + movl %edx,%esi + roll $5,%edx + addl %edi,%ecx + movups 0(%r15),%xmm0 +.byte 102,15,56,220,209 + xorl %eax,%esi + rorl $7,%ebp + addl %edx,%ecx + pxor %xmm11,%xmm7 + addl 48(%rsp),%ebx + xorl %ebp,%esi + punpcklqdq %xmm6,%xmm13 + movl %ecx,%edi + roll $5,%ecx + pxor %xmm8,%xmm7 + addl %esi,%ebx + xorl %ebp,%edi + movdqa %xmm3,%xmm12 + rorl $7,%edx + paddd %xmm6,%xmm3 + addl %ecx,%ebx + pxor %xmm13,%xmm7 + addl 52(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + roll $5,%ebx + movdqa %xmm7,%xmm13 + addl %edi,%eax + xorl %edx,%esi + movdqa %xmm3,32(%rsp) + rorl $7,%ecx + addl %ebx,%eax + addl 56(%rsp),%ebp + movups 16(%r15),%xmm1 +.byte 102,15,56,220,208 + pslld $2,%xmm7 + xorl %ecx,%esi + movl %eax,%edi + psrld $30,%xmm13 + roll $5,%eax + addl %esi,%ebp + xorl %ecx,%edi + rorl $7,%ebx + por %xmm13,%xmm7 + addl %eax,%ebp + addl 60(%rsp),%edx + pshufd $238,%xmm6,%xmm3 + xorl %ebx,%edi + movl %ebp,%esi + roll $5,%ebp + addl %edi,%edx + xorl %ebx,%esi + rorl $7,%eax + addl %ebp,%edx + pxor %xmm4,%xmm8 + addl 0(%rsp),%ecx + xorl %eax,%esi + punpcklqdq %xmm7,%xmm3 + movl %edx,%edi + roll $5,%edx + pxor %xmm9,%xmm8 + addl %esi,%ecx + movups 32(%r15),%xmm0 +.byte 102,15,56,220,209 + xorl %eax,%edi + movdqa %xmm12,%xmm13 + rorl $7,%ebp + paddd %xmm7,%xmm12 + addl %edx,%ecx + pxor %xmm3,%xmm8 + addl 4(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + roll $5,%ecx + movdqa %xmm8,%xmm3 + addl %edi,%ebx + xorl %ebp,%esi + movdqa %xmm12,48(%rsp) + rorl $7,%edx + addl %ecx,%ebx + addl 8(%rsp),%eax + pslld $2,%xmm8 + xorl %edx,%esi + movl %ebx,%edi + psrld $30,%xmm3 + roll $5,%ebx + addl %esi,%eax + xorl %edx,%edi + rorl $7,%ecx + por %xmm3,%xmm8 + addl %ebx,%eax + addl 12(%rsp),%ebp + movups 48(%r15),%xmm1 +.byte 102,15,56,220,208 + pshufd $238,%xmm7,%xmm12 + xorl %ecx,%edi + movl %eax,%esi + roll $5,%eax + addl %edi,%ebp + xorl %ecx,%esi + rorl $7,%ebx + addl %eax,%ebp + pxor %xmm5,%xmm9 + addl 16(%rsp),%edx + xorl %ebx,%esi + punpcklqdq %xmm8,%xmm12 + movl %ebp,%edi + roll $5,%ebp + pxor %xmm10,%xmm9 + addl %esi,%edx + xorl %ebx,%edi + movdqa %xmm13,%xmm3 + rorl $7,%eax + paddd %xmm8,%xmm13 + addl %ebp,%edx + pxor %xmm12,%xmm9 + addl 20(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + roll $5,%edx + movdqa %xmm9,%xmm12 + addl %edi,%ecx + cmpl $11,%r8d + jb L$aesenclast2 + movups 64(%r15),%xmm0 +.byte 102,15,56,220,209 + movups 80(%r15),%xmm1 +.byte 102,15,56,220,208 + je L$aesenclast2 + movups 96(%r15),%xmm0 +.byte 102,15,56,220,209 + movups 112(%r15),%xmm1 +.byte 102,15,56,220,208 +L$aesenclast2: +.byte 102,15,56,221,209 + movups 16-112(%r15),%xmm0 + xorl %eax,%esi + movdqa %xmm13,0(%rsp) + rorl $7,%ebp + addl %edx,%ecx + addl 24(%rsp),%ebx + pslld $2,%xmm9 + xorl %ebp,%esi + movl %ecx,%edi + psrld $30,%xmm12 + roll $5,%ecx + addl %esi,%ebx + xorl %ebp,%edi + rorl $7,%edx + por %xmm12,%xmm9 + addl %ecx,%ebx + addl 28(%rsp),%eax + pshufd $238,%xmm8,%xmm13 + rorl $7,%ecx + movl %ebx,%esi + xorl %edx,%edi + roll $5,%ebx + addl %edi,%eax + xorl %ecx,%esi + xorl %edx,%ecx + addl %ebx,%eax + pxor %xmm6,%xmm10 + addl 32(%rsp),%ebp + movups 32(%r12),%xmm14 + xorps %xmm15,%xmm14 + movups %xmm2,16(%r13,%r12,1) + xorps %xmm14,%xmm2 + movups -80(%r15),%xmm1 +.byte 102,15,56,220,208 + andl %ecx,%esi + xorl %edx,%ecx + rorl $7,%ebx + punpcklqdq %xmm9,%xmm13 + movl %eax,%edi + xorl %ecx,%esi + pxor %xmm11,%xmm10 + roll $5,%eax + addl %esi,%ebp + movdqa %xmm3,%xmm12 + xorl %ebx,%edi + paddd %xmm9,%xmm3 + xorl %ecx,%ebx + pxor %xmm13,%xmm10 + addl %eax,%ebp + addl 36(%rsp),%edx + andl %ebx,%edi + xorl %ecx,%ebx + rorl $7,%eax + movdqa %xmm10,%xmm13 + movl %ebp,%esi + xorl %ebx,%edi + movdqa %xmm3,16(%rsp) + roll $5,%ebp + addl %edi,%edx + movups -64(%r15),%xmm0 +.byte 102,15,56,220,209 + xorl %eax,%esi + pslld $2,%xmm10 + xorl %ebx,%eax + addl %ebp,%edx + psrld $30,%xmm13 + addl 40(%rsp),%ecx + andl %eax,%esi + xorl %ebx,%eax + por %xmm13,%xmm10 + rorl $7,%ebp + movl %edx,%edi + xorl %eax,%esi + roll $5,%edx + pshufd $238,%xmm9,%xmm3 + addl %esi,%ecx + xorl %ebp,%edi + xorl %eax,%ebp + addl %edx,%ecx + addl 44(%rsp),%ebx + andl %ebp,%edi + xorl %eax,%ebp + rorl $7,%edx + movups -48(%r15),%xmm1 +.byte 102,15,56,220,208 + movl %ecx,%esi + xorl %ebp,%edi + roll $5,%ecx + addl %edi,%ebx + xorl %edx,%esi + xorl %ebp,%edx + addl %ecx,%ebx + pxor %xmm7,%xmm11 + addl 48(%rsp),%eax + andl %edx,%esi + xorl %ebp,%edx + rorl $7,%ecx + punpcklqdq %xmm10,%xmm3 + movl %ebx,%edi + xorl %edx,%esi + pxor %xmm4,%xmm11 + roll $5,%ebx + addl %esi,%eax + movdqa 48(%r11),%xmm13 + xorl %ecx,%edi + paddd %xmm10,%xmm12 + xorl %edx,%ecx + pxor %xmm3,%xmm11 + addl %ebx,%eax + addl 52(%rsp),%ebp + movups -32(%r15),%xmm0 +.byte 102,15,56,220,209 + andl %ecx,%edi + xorl %edx,%ecx + rorl $7,%ebx + movdqa %xmm11,%xmm3 + movl %eax,%esi + xorl %ecx,%edi + movdqa %xmm12,32(%rsp) + roll $5,%eax + addl %edi,%ebp + xorl %ebx,%esi + pslld $2,%xmm11 + xorl %ecx,%ebx + addl %eax,%ebp + psrld $30,%xmm3 + addl 56(%rsp),%edx + andl %ebx,%esi + xorl %ecx,%ebx + por %xmm3,%xmm11 + rorl $7,%eax + movl %ebp,%edi + xorl %ebx,%esi + roll $5,%ebp + pshufd $238,%xmm10,%xmm12 + addl %esi,%edx + movups -16(%r15),%xmm1 +.byte 102,15,56,220,208 + xorl %eax,%edi + xorl %ebx,%eax + addl %ebp,%edx + addl 60(%rsp),%ecx + andl %eax,%edi + xorl %ebx,%eax + rorl $7,%ebp + movl %edx,%esi + xorl %eax,%edi + roll $5,%edx + addl %edi,%ecx + xorl %ebp,%esi + xorl %eax,%ebp + addl %edx,%ecx + pxor %xmm8,%xmm4 + addl 0(%rsp),%ebx + andl %ebp,%esi + xorl %eax,%ebp + rorl $7,%edx + movups 0(%r15),%xmm0 +.byte 102,15,56,220,209 + punpcklqdq %xmm11,%xmm12 + movl %ecx,%edi + xorl %ebp,%esi + pxor %xmm5,%xmm4 + roll $5,%ecx + addl %esi,%ebx + movdqa %xmm13,%xmm3 + xorl %edx,%edi + paddd %xmm11,%xmm13 + xorl %ebp,%edx + pxor %xmm12,%xmm4 + addl %ecx,%ebx + addl 4(%rsp),%eax + andl %edx,%edi + xorl %ebp,%edx + rorl $7,%ecx + movdqa %xmm4,%xmm12 + movl %ebx,%esi + xorl %edx,%edi + movdqa %xmm13,48(%rsp) + roll $5,%ebx + addl %edi,%eax + xorl %ecx,%esi + pslld $2,%xmm4 + xorl %edx,%ecx + addl %ebx,%eax + psrld $30,%xmm12 + addl 8(%rsp),%ebp + movups 16(%r15),%xmm1 +.byte 102,15,56,220,208 + andl %ecx,%esi + xorl %edx,%ecx + por %xmm12,%xmm4 + rorl $7,%ebx + movl %eax,%edi + xorl %ecx,%esi + roll $5,%eax + pshufd $238,%xmm11,%xmm13 + addl %esi,%ebp + xorl %ebx,%edi + xorl %ecx,%ebx + addl %eax,%ebp + addl 12(%rsp),%edx + andl %ebx,%edi + xorl %ecx,%ebx + rorl $7,%eax + movl %ebp,%esi + xorl %ebx,%edi + roll $5,%ebp + addl %edi,%edx + movups 32(%r15),%xmm0 +.byte 102,15,56,220,209 + xorl %eax,%esi + xorl %ebx,%eax + addl %ebp,%edx + pxor %xmm9,%xmm5 + addl 16(%rsp),%ecx + andl %eax,%esi + xorl %ebx,%eax + rorl $7,%ebp + punpcklqdq %xmm4,%xmm13 + movl %edx,%edi + xorl %eax,%esi + pxor %xmm6,%xmm5 + roll $5,%edx + addl %esi,%ecx + movdqa %xmm3,%xmm12 + xorl %ebp,%edi + paddd %xmm4,%xmm3 + xorl %eax,%ebp + pxor %xmm13,%xmm5 + addl %edx,%ecx + addl 20(%rsp),%ebx + andl %ebp,%edi + xorl %eax,%ebp + rorl $7,%edx + movups 48(%r15),%xmm1 +.byte 102,15,56,220,208 + movdqa %xmm5,%xmm13 + movl %ecx,%esi + xorl %ebp,%edi + movdqa %xmm3,0(%rsp) + roll $5,%ecx + addl %edi,%ebx + xorl %edx,%esi + pslld $2,%xmm5 + xorl %ebp,%edx + addl %ecx,%ebx + psrld $30,%xmm13 + addl 24(%rsp),%eax + andl %edx,%esi + xorl %ebp,%edx + por %xmm13,%xmm5 + rorl $7,%ecx + movl %ebx,%edi + xorl %edx,%esi + roll $5,%ebx + pshufd $238,%xmm4,%xmm3 + addl %esi,%eax + xorl %ecx,%edi + xorl %edx,%ecx + addl %ebx,%eax + addl 28(%rsp),%ebp + cmpl $11,%r8d + jb L$aesenclast3 + movups 64(%r15),%xmm0 +.byte 102,15,56,220,209 + movups 80(%r15),%xmm1 +.byte 102,15,56,220,208 + je L$aesenclast3 + movups 96(%r15),%xmm0 +.byte 102,15,56,220,209 + movups 112(%r15),%xmm1 +.byte 102,15,56,220,208 +L$aesenclast3: +.byte 102,15,56,221,209 + movups 16-112(%r15),%xmm0 + andl %ecx,%edi + xorl %edx,%ecx + rorl $7,%ebx + movl %eax,%esi + xorl %ecx,%edi + roll $5,%eax + addl %edi,%ebp + xorl %ebx,%esi + xorl %ecx,%ebx + addl %eax,%ebp + pxor %xmm10,%xmm6 + addl 32(%rsp),%edx + andl %ebx,%esi + xorl %ecx,%ebx + rorl $7,%eax + punpcklqdq %xmm5,%xmm3 + movl %ebp,%edi + xorl %ebx,%esi + pxor %xmm7,%xmm6 + roll $5,%ebp + addl %esi,%edx + movups 48(%r12),%xmm14 + xorps %xmm15,%xmm14 + movups %xmm2,32(%r13,%r12,1) + xorps %xmm14,%xmm2 + movups -80(%r15),%xmm1 +.byte 102,15,56,220,208 + movdqa %xmm12,%xmm13 + xorl %eax,%edi + paddd %xmm5,%xmm12 + xorl %ebx,%eax + pxor %xmm3,%xmm6 + addl %ebp,%edx + addl 36(%rsp),%ecx + andl %eax,%edi + xorl %ebx,%eax + rorl $7,%ebp + movdqa %xmm6,%xmm3 + movl %edx,%esi + xorl %eax,%edi + movdqa %xmm12,16(%rsp) + roll $5,%edx + addl %edi,%ecx + xorl %ebp,%esi + pslld $2,%xmm6 + xorl %eax,%ebp + addl %edx,%ecx + psrld $30,%xmm3 + addl 40(%rsp),%ebx + andl %ebp,%esi + xorl %eax,%ebp + por %xmm3,%xmm6 + rorl $7,%edx + movups -64(%r15),%xmm0 +.byte 102,15,56,220,209 + movl %ecx,%edi + xorl %ebp,%esi + roll $5,%ecx + pshufd $238,%xmm5,%xmm12 + addl %esi,%ebx + xorl %edx,%edi + xorl %ebp,%edx + addl %ecx,%ebx + addl 44(%rsp),%eax + andl %edx,%edi + xorl %ebp,%edx + rorl $7,%ecx + movl %ebx,%esi + xorl %edx,%edi + roll $5,%ebx + addl %edi,%eax + xorl %edx,%esi + addl %ebx,%eax + pxor %xmm11,%xmm7 + addl 48(%rsp),%ebp + movups -48(%r15),%xmm1 +.byte 102,15,56,220,208 + xorl %ecx,%esi + punpcklqdq %xmm6,%xmm12 + movl %eax,%edi + roll $5,%eax + pxor %xmm8,%xmm7 + addl %esi,%ebp + xorl %ecx,%edi + movdqa %xmm13,%xmm3 + rorl $7,%ebx + paddd %xmm6,%xmm13 + addl %eax,%ebp + pxor %xmm12,%xmm7 + addl 52(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + roll $5,%ebp + movdqa %xmm7,%xmm12 + addl %edi,%edx + xorl %ebx,%esi + movdqa %xmm13,32(%rsp) + rorl $7,%eax + addl %ebp,%edx + addl 56(%rsp),%ecx + pslld $2,%xmm7 + xorl %eax,%esi + movl %edx,%edi + psrld $30,%xmm12 + roll $5,%edx + addl %esi,%ecx + movups -32(%r15),%xmm0 +.byte 102,15,56,220,209 + xorl %eax,%edi + rorl $7,%ebp + por %xmm12,%xmm7 + addl %edx,%ecx + addl 60(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + roll $5,%ecx + addl %edi,%ebx + xorl %ebp,%esi + rorl $7,%edx + addl %ecx,%ebx + addl 0(%rsp),%eax + xorl %edx,%esi + movl %ebx,%edi + roll $5,%ebx + paddd %xmm7,%xmm3 + addl %esi,%eax + xorl %edx,%edi + movdqa %xmm3,48(%rsp) + rorl $7,%ecx + addl %ebx,%eax + addl 4(%rsp),%ebp + movups -16(%r15),%xmm1 +.byte 102,15,56,220,208 + xorl %ecx,%edi + movl %eax,%esi + roll $5,%eax + addl %edi,%ebp + xorl %ecx,%esi + rorl $7,%ebx + addl %eax,%ebp + addl 8(%rsp),%edx + xorl %ebx,%esi + movl %ebp,%edi + roll $5,%ebp + addl %esi,%edx + xorl %ebx,%edi + rorl $7,%eax + addl %ebp,%edx + addl 12(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + roll $5,%edx + addl %edi,%ecx + movups 0(%r15),%xmm0 +.byte 102,15,56,220,209 + xorl %eax,%esi + rorl $7,%ebp + addl %edx,%ecx + cmpq %r14,%r10 + je L$done_ssse3 + movdqa 64(%r11),%xmm3 + movdqa 0(%r11),%xmm13 + movdqu 0(%r10),%xmm4 + movdqu 16(%r10),%xmm5 + movdqu 32(%r10),%xmm6 + movdqu 48(%r10),%xmm7 +.byte 102,15,56,0,227 + addq $64,%r10 + addl 16(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi +.byte 102,15,56,0,235 + roll $5,%ecx + addl %esi,%ebx + xorl %ebp,%edi + rorl $7,%edx + paddd %xmm13,%xmm4 + addl %ecx,%ebx + addl 20(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + movdqa %xmm4,0(%rsp) + roll $5,%ebx + addl %edi,%eax + xorl %edx,%esi + rorl $7,%ecx + psubd %xmm13,%xmm4 + addl %ebx,%eax + addl 24(%rsp),%ebp + movups 16(%r15),%xmm1 +.byte 102,15,56,220,208 + xorl %ecx,%esi + movl %eax,%edi + roll $5,%eax + addl %esi,%ebp + xorl %ecx,%edi + rorl $7,%ebx + addl %eax,%ebp + addl 28(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + roll $5,%ebp + addl %edi,%edx + xorl %ebx,%esi + rorl $7,%eax + addl %ebp,%edx + addl 32(%rsp),%ecx + xorl %eax,%esi + movl %edx,%edi +.byte 102,15,56,0,243 + roll $5,%edx + addl %esi,%ecx + movups 32(%r15),%xmm0 +.byte 102,15,56,220,209 + xorl %eax,%edi + rorl $7,%ebp + paddd %xmm13,%xmm5 + addl %edx,%ecx + addl 36(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + movdqa %xmm5,16(%rsp) + roll $5,%ecx + addl %edi,%ebx + xorl %ebp,%esi + rorl $7,%edx + psubd %xmm13,%xmm5 + addl %ecx,%ebx + addl 40(%rsp),%eax + xorl %edx,%esi + movl %ebx,%edi + roll $5,%ebx + addl %esi,%eax + xorl %edx,%edi + rorl $7,%ecx + addl %ebx,%eax + addl 44(%rsp),%ebp + movups 48(%r15),%xmm1 +.byte 102,15,56,220,208 + xorl %ecx,%edi + movl %eax,%esi + roll $5,%eax + addl %edi,%ebp + xorl %ecx,%esi + rorl $7,%ebx + addl %eax,%ebp + addl 48(%rsp),%edx + xorl %ebx,%esi + movl %ebp,%edi +.byte 102,15,56,0,251 + roll $5,%ebp + addl %esi,%edx + xorl %ebx,%edi + rorl $7,%eax + paddd %xmm13,%xmm6 + addl %ebp,%edx + addl 52(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + movdqa %xmm6,32(%rsp) + roll $5,%edx + addl %edi,%ecx + cmpl $11,%r8d + jb L$aesenclast4 + movups 64(%r15),%xmm0 +.byte 102,15,56,220,209 + movups 80(%r15),%xmm1 +.byte 102,15,56,220,208 + je L$aesenclast4 + movups 96(%r15),%xmm0 +.byte 102,15,56,220,209 + movups 112(%r15),%xmm1 +.byte 102,15,56,220,208 +L$aesenclast4: +.byte 102,15,56,221,209 + movups 16-112(%r15),%xmm0 + xorl %eax,%esi + rorl $7,%ebp + psubd %xmm13,%xmm6 + addl %edx,%ecx + addl 56(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi + roll $5,%ecx + addl %esi,%ebx + xorl %ebp,%edi + rorl $7,%edx + addl %ecx,%ebx + addl 60(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + roll $5,%ebx + addl %edi,%eax + rorl $7,%ecx + addl %ebx,%eax + movups %xmm2,48(%r13,%r12,1) + leaq 64(%r12),%r12 + + addl 0(%r9),%eax + addl 4(%r9),%esi + addl 8(%r9),%ecx + addl 12(%r9),%edx + movl %eax,0(%r9) + addl 16(%r9),%ebp + movl %esi,4(%r9) + movl %esi,%ebx + movl %ecx,8(%r9) + movl %ecx,%edi + movl %edx,12(%r9) + xorl %edx,%edi + movl %ebp,16(%r9) + andl %edi,%esi + jmp L$oop_ssse3 + +L$done_ssse3: + addl 16(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi + roll $5,%ecx + addl %esi,%ebx + xorl %ebp,%edi + rorl $7,%edx + addl %ecx,%ebx + addl 20(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + roll $5,%ebx + addl %edi,%eax + xorl %edx,%esi + rorl $7,%ecx + addl %ebx,%eax + addl 24(%rsp),%ebp + movups 16(%r15),%xmm1 +.byte 102,15,56,220,208 + xorl %ecx,%esi + movl %eax,%edi + roll $5,%eax + addl %esi,%ebp + xorl %ecx,%edi + rorl $7,%ebx + addl %eax,%ebp + addl 28(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + roll $5,%ebp + addl %edi,%edx + xorl %ebx,%esi + rorl $7,%eax + addl %ebp,%edx + addl 32(%rsp),%ecx + xorl %eax,%esi + movl %edx,%edi + roll $5,%edx + addl %esi,%ecx + movups 32(%r15),%xmm0 +.byte 102,15,56,220,209 + xorl %eax,%edi + rorl $7,%ebp + addl %edx,%ecx + addl 36(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + roll $5,%ecx + addl %edi,%ebx + xorl %ebp,%esi + rorl $7,%edx + addl %ecx,%ebx + addl 40(%rsp),%eax + xorl %edx,%esi + movl %ebx,%edi + roll $5,%ebx + addl %esi,%eax + xorl %edx,%edi + rorl $7,%ecx + addl %ebx,%eax + addl 44(%rsp),%ebp + movups 48(%r15),%xmm1 +.byte 102,15,56,220,208 + xorl %ecx,%edi + movl %eax,%esi + roll $5,%eax + addl %edi,%ebp + xorl %ecx,%esi + rorl $7,%ebx + addl %eax,%ebp + addl 48(%rsp),%edx + xorl %ebx,%esi + movl %ebp,%edi + roll $5,%ebp + addl %esi,%edx + xorl %ebx,%edi + rorl $7,%eax + addl %ebp,%edx + addl 52(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + roll $5,%edx + addl %edi,%ecx + cmpl $11,%r8d + jb L$aesenclast5 + movups 64(%r15),%xmm0 +.byte 102,15,56,220,209 + movups 80(%r15),%xmm1 +.byte 102,15,56,220,208 + je L$aesenclast5 + movups 96(%r15),%xmm0 +.byte 102,15,56,220,209 + movups 112(%r15),%xmm1 +.byte 102,15,56,220,208 +L$aesenclast5: +.byte 102,15,56,221,209 + movups 16-112(%r15),%xmm0 + xorl %eax,%esi + rorl $7,%ebp + addl %edx,%ecx + addl 56(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi + roll $5,%ecx + addl %esi,%ebx + xorl %ebp,%edi + rorl $7,%edx + addl %ecx,%ebx + addl 60(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + roll $5,%ebx + addl %edi,%eax + rorl $7,%ecx + addl %ebx,%eax + movups %xmm2,48(%r13,%r12,1) + movq 88(%rsp),%r8 + + addl 0(%r9),%eax + addl 4(%r9),%esi + addl 8(%r9),%ecx + movl %eax,0(%r9) + addl 12(%r9),%edx + movl %esi,4(%r9) + addl 16(%r9),%ebp + movl %ecx,8(%r9) + movl %edx,12(%r9) + movl %ebp,16(%r9) + movups %xmm2,(%r8) + leaq 104(%rsp),%rsi + + movq 0(%rsi),%r15 + + movq 8(%rsi),%r14 + + movq 16(%rsi),%r13 + + movq 24(%rsi),%r12 + + movq 32(%rsi),%rbp + + movq 40(%rsi),%rbx + + leaq 48(%rsi),%rsp + +L$epilogue_ssse3: + .byte 0xf3,0xc3 + + + +.p2align 5 +aesni_cbc_sha1_enc_avx: + + movq 8(%rsp),%r10 + + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + leaq -104(%rsp),%rsp + + + + vzeroall + movq %rdi,%r12 + movq %rsi,%r13 + movq %rdx,%r14 + leaq 112(%rcx),%r15 + vmovdqu (%r8),%xmm12 + movq %r8,88(%rsp) + shlq $6,%r14 + subq %r12,%r13 + movl 240-112(%r15),%r8d + addq %r10,%r14 + + leaq K_XX_XX(%rip),%r11 + movl 0(%r9),%eax + movl 4(%r9),%ebx + movl 8(%r9),%ecx + movl 12(%r9),%edx + movl %ebx,%esi + movl 16(%r9),%ebp + movl %ecx,%edi + xorl %edx,%edi + andl %edi,%esi + + vmovdqa 64(%r11),%xmm6 + vmovdqa 0(%r11),%xmm10 + vmovdqu 0(%r10),%xmm0 + vmovdqu 16(%r10),%xmm1 + vmovdqu 32(%r10),%xmm2 + vmovdqu 48(%r10),%xmm3 + vpshufb %xmm6,%xmm0,%xmm0 + addq $64,%r10 + vpshufb %xmm6,%xmm1,%xmm1 + vpshufb %xmm6,%xmm2,%xmm2 + vpshufb %xmm6,%xmm3,%xmm3 + vpaddd %xmm10,%xmm0,%xmm4 + vpaddd %xmm10,%xmm1,%xmm5 + vpaddd %xmm10,%xmm2,%xmm6 + vmovdqa %xmm4,0(%rsp) + vmovdqa %xmm5,16(%rsp) + vmovdqa %xmm6,32(%rsp) + vmovups -112(%r15),%xmm15 + vmovups 16-112(%r15),%xmm14 + jmp L$oop_avx +.p2align 5 +L$oop_avx: + shrdl $2,%ebx,%ebx + vmovdqu 0(%r12),%xmm13 + vpxor %xmm15,%xmm13,%xmm13 + vpxor %xmm13,%xmm12,%xmm12 + vaesenc %xmm14,%xmm12,%xmm12 + vmovups -80(%r15),%xmm15 + xorl %edx,%esi + vpalignr $8,%xmm0,%xmm1,%xmm4 + movl %eax,%edi + addl 0(%rsp),%ebp + vpaddd %xmm3,%xmm10,%xmm9 + xorl %ecx,%ebx + shldl $5,%eax,%eax + vpsrldq $4,%xmm3,%xmm8 + addl %esi,%ebp + andl %ebx,%edi + vpxor %xmm0,%xmm4,%xmm4 + xorl %ecx,%ebx + addl %eax,%ebp + vpxor %xmm2,%xmm8,%xmm8 + shrdl $7,%eax,%eax + xorl %ecx,%edi + movl %ebp,%esi + addl 4(%rsp),%edx + vpxor %xmm8,%xmm4,%xmm4 + xorl %ebx,%eax + shldl $5,%ebp,%ebp + vmovdqa %xmm9,48(%rsp) + addl %edi,%edx + vaesenc %xmm15,%xmm12,%xmm12 + vmovups -64(%r15),%xmm14 + andl %eax,%esi + vpsrld $31,%xmm4,%xmm8 + xorl %ebx,%eax + addl %ebp,%edx + shrdl $7,%ebp,%ebp + xorl %ebx,%esi + vpslldq $12,%xmm4,%xmm9 + vpaddd %xmm4,%xmm4,%xmm4 + movl %edx,%edi + addl 8(%rsp),%ecx + xorl %eax,%ebp + shldl $5,%edx,%edx + vpor %xmm8,%xmm4,%xmm4 + vpsrld $30,%xmm9,%xmm8 + addl %esi,%ecx + andl %ebp,%edi + xorl %eax,%ebp + addl %edx,%ecx + vpslld $2,%xmm9,%xmm9 + vpxor %xmm8,%xmm4,%xmm4 + shrdl $7,%edx,%edx + xorl %eax,%edi + movl %ecx,%esi + addl 12(%rsp),%ebx + vaesenc %xmm14,%xmm12,%xmm12 + vmovups -48(%r15),%xmm15 + vpxor %xmm9,%xmm4,%xmm4 + xorl %ebp,%edx + shldl $5,%ecx,%ecx + addl %edi,%ebx + andl %edx,%esi + xorl %ebp,%edx + addl %ecx,%ebx + shrdl $7,%ecx,%ecx + xorl %ebp,%esi + vpalignr $8,%xmm1,%xmm2,%xmm5 + movl %ebx,%edi + addl 16(%rsp),%eax + vpaddd %xmm4,%xmm10,%xmm9 + xorl %edx,%ecx + shldl $5,%ebx,%ebx + vpsrldq $4,%xmm4,%xmm8 + addl %esi,%eax + andl %ecx,%edi + vpxor %xmm1,%xmm5,%xmm5 + xorl %edx,%ecx + addl %ebx,%eax + vpxor %xmm3,%xmm8,%xmm8 + shrdl $7,%ebx,%ebx + vaesenc %xmm15,%xmm12,%xmm12 + vmovups -32(%r15),%xmm14 + xorl %edx,%edi + movl %eax,%esi + addl 20(%rsp),%ebp + vpxor %xmm8,%xmm5,%xmm5 + xorl %ecx,%ebx + shldl $5,%eax,%eax + vmovdqa %xmm9,0(%rsp) + addl %edi,%ebp + andl %ebx,%esi + vpsrld $31,%xmm5,%xmm8 + xorl %ecx,%ebx + addl %eax,%ebp + shrdl $7,%eax,%eax + xorl %ecx,%esi + vpslldq $12,%xmm5,%xmm9 + vpaddd %xmm5,%xmm5,%xmm5 + movl %ebp,%edi + addl 24(%rsp),%edx + xorl %ebx,%eax + shldl $5,%ebp,%ebp + vpor %xmm8,%xmm5,%xmm5 + vpsrld $30,%xmm9,%xmm8 + addl %esi,%edx + vaesenc %xmm14,%xmm12,%xmm12 + vmovups -16(%r15),%xmm15 + andl %eax,%edi + xorl %ebx,%eax + addl %ebp,%edx + vpslld $2,%xmm9,%xmm9 + vpxor %xmm8,%xmm5,%xmm5 + shrdl $7,%ebp,%ebp + xorl %ebx,%edi + movl %edx,%esi + addl 28(%rsp),%ecx + vpxor %xmm9,%xmm5,%xmm5 + xorl %eax,%ebp + shldl $5,%edx,%edx + vmovdqa 16(%r11),%xmm10 + addl %edi,%ecx + andl %ebp,%esi + xorl %eax,%ebp + addl %edx,%ecx + shrdl $7,%edx,%edx + xorl %eax,%esi + vpalignr $8,%xmm2,%xmm3,%xmm6 + movl %ecx,%edi + addl 32(%rsp),%ebx + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 0(%r15),%xmm14 + vpaddd %xmm5,%xmm10,%xmm9 + xorl %ebp,%edx + shldl $5,%ecx,%ecx + vpsrldq $4,%xmm5,%xmm8 + addl %esi,%ebx + andl %edx,%edi + vpxor %xmm2,%xmm6,%xmm6 + xorl %ebp,%edx + addl %ecx,%ebx + vpxor %xmm4,%xmm8,%xmm8 + shrdl $7,%ecx,%ecx + xorl %ebp,%edi + movl %ebx,%esi + addl 36(%rsp),%eax + vpxor %xmm8,%xmm6,%xmm6 + xorl %edx,%ecx + shldl $5,%ebx,%ebx + vmovdqa %xmm9,16(%rsp) + addl %edi,%eax + andl %ecx,%esi + vpsrld $31,%xmm6,%xmm8 + xorl %edx,%ecx + addl %ebx,%eax + shrdl $7,%ebx,%ebx + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 16(%r15),%xmm15 + xorl %edx,%esi + vpslldq $12,%xmm6,%xmm9 + vpaddd %xmm6,%xmm6,%xmm6 + movl %eax,%edi + addl 40(%rsp),%ebp + xorl %ecx,%ebx + shldl $5,%eax,%eax + vpor %xmm8,%xmm6,%xmm6 + vpsrld $30,%xmm9,%xmm8 + addl %esi,%ebp + andl %ebx,%edi + xorl %ecx,%ebx + addl %eax,%ebp + vpslld $2,%xmm9,%xmm9 + vpxor %xmm8,%xmm6,%xmm6 + shrdl $7,%eax,%eax + xorl %ecx,%edi + movl %ebp,%esi + addl 44(%rsp),%edx + vpxor %xmm9,%xmm6,%xmm6 + xorl %ebx,%eax + shldl $5,%ebp,%ebp + addl %edi,%edx + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 32(%r15),%xmm14 + andl %eax,%esi + xorl %ebx,%eax + addl %ebp,%edx + shrdl $7,%ebp,%ebp + xorl %ebx,%esi + vpalignr $8,%xmm3,%xmm4,%xmm7 + movl %edx,%edi + addl 48(%rsp),%ecx + vpaddd %xmm6,%xmm10,%xmm9 + xorl %eax,%ebp + shldl $5,%edx,%edx + vpsrldq $4,%xmm6,%xmm8 + addl %esi,%ecx + andl %ebp,%edi + vpxor %xmm3,%xmm7,%xmm7 + xorl %eax,%ebp + addl %edx,%ecx + vpxor %xmm5,%xmm8,%xmm8 + shrdl $7,%edx,%edx + xorl %eax,%edi + movl %ecx,%esi + addl 52(%rsp),%ebx + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 48(%r15),%xmm15 + vpxor %xmm8,%xmm7,%xmm7 + xorl %ebp,%edx + shldl $5,%ecx,%ecx + vmovdqa %xmm9,32(%rsp) + addl %edi,%ebx + andl %edx,%esi + vpsrld $31,%xmm7,%xmm8 + xorl %ebp,%edx + addl %ecx,%ebx + shrdl $7,%ecx,%ecx + xorl %ebp,%esi + vpslldq $12,%xmm7,%xmm9 + vpaddd %xmm7,%xmm7,%xmm7 + movl %ebx,%edi + addl 56(%rsp),%eax + xorl %edx,%ecx + shldl $5,%ebx,%ebx + vpor %xmm8,%xmm7,%xmm7 + vpsrld $30,%xmm9,%xmm8 + addl %esi,%eax + andl %ecx,%edi + xorl %edx,%ecx + addl %ebx,%eax + vpslld $2,%xmm9,%xmm9 + vpxor %xmm8,%xmm7,%xmm7 + shrdl $7,%ebx,%ebx + cmpl $11,%r8d + jb L$vaesenclast6 + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 64(%r15),%xmm14 + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 80(%r15),%xmm15 + je L$vaesenclast6 + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 96(%r15),%xmm14 + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 112(%r15),%xmm15 +L$vaesenclast6: + vaesenclast %xmm15,%xmm12,%xmm12 + vmovups -112(%r15),%xmm15 + vmovups 16-112(%r15),%xmm14 + xorl %edx,%edi + movl %eax,%esi + addl 60(%rsp),%ebp + vpxor %xmm9,%xmm7,%xmm7 + xorl %ecx,%ebx + shldl $5,%eax,%eax + addl %edi,%ebp + andl %ebx,%esi + xorl %ecx,%ebx + addl %eax,%ebp + vpalignr $8,%xmm6,%xmm7,%xmm8 + vpxor %xmm4,%xmm0,%xmm0 + shrdl $7,%eax,%eax + xorl %ecx,%esi + movl %ebp,%edi + addl 0(%rsp),%edx + vpxor %xmm1,%xmm0,%xmm0 + xorl %ebx,%eax + shldl $5,%ebp,%ebp + vpaddd %xmm7,%xmm10,%xmm9 + addl %esi,%edx + vmovdqu 16(%r12),%xmm13 + vpxor %xmm15,%xmm13,%xmm13 + vmovups %xmm12,0(%r12,%r13,1) + vpxor %xmm13,%xmm12,%xmm12 + vaesenc %xmm14,%xmm12,%xmm12 + vmovups -80(%r15),%xmm15 + andl %eax,%edi + vpxor %xmm8,%xmm0,%xmm0 + xorl %ebx,%eax + addl %ebp,%edx + shrdl $7,%ebp,%ebp + xorl %ebx,%edi + vpsrld $30,%xmm0,%xmm8 + vmovdqa %xmm9,48(%rsp) + movl %edx,%esi + addl 4(%rsp),%ecx + xorl %eax,%ebp + shldl $5,%edx,%edx + vpslld $2,%xmm0,%xmm0 + addl %edi,%ecx + andl %ebp,%esi + xorl %eax,%ebp + addl %edx,%ecx + shrdl $7,%edx,%edx + xorl %eax,%esi + movl %ecx,%edi + addl 8(%rsp),%ebx + vaesenc %xmm15,%xmm12,%xmm12 + vmovups -64(%r15),%xmm14 + vpor %xmm8,%xmm0,%xmm0 + xorl %ebp,%edx + shldl $5,%ecx,%ecx + addl %esi,%ebx + andl %edx,%edi + xorl %ebp,%edx + addl %ecx,%ebx + addl 12(%rsp),%eax + xorl %ebp,%edi + movl %ebx,%esi + shldl $5,%ebx,%ebx + addl %edi,%eax + xorl %edx,%esi + shrdl $7,%ecx,%ecx + addl %ebx,%eax + vpalignr $8,%xmm7,%xmm0,%xmm8 + vpxor %xmm5,%xmm1,%xmm1 + addl 16(%rsp),%ebp + vaesenc %xmm14,%xmm12,%xmm12 + vmovups -48(%r15),%xmm15 + xorl %ecx,%esi + movl %eax,%edi + shldl $5,%eax,%eax + vpxor %xmm2,%xmm1,%xmm1 + addl %esi,%ebp + xorl %ecx,%edi + vpaddd %xmm0,%xmm10,%xmm9 + shrdl $7,%ebx,%ebx + addl %eax,%ebp + vpxor %xmm8,%xmm1,%xmm1 + addl 20(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + shldl $5,%ebp,%ebp + vpsrld $30,%xmm1,%xmm8 + vmovdqa %xmm9,0(%rsp) + addl %edi,%edx + xorl %ebx,%esi + shrdl $7,%eax,%eax + addl %ebp,%edx + vpslld $2,%xmm1,%xmm1 + addl 24(%rsp),%ecx + xorl %eax,%esi + movl %edx,%edi + shldl $5,%edx,%edx + addl %esi,%ecx + vaesenc %xmm15,%xmm12,%xmm12 + vmovups -32(%r15),%xmm14 + xorl %eax,%edi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + vpor %xmm8,%xmm1,%xmm1 + addl 28(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + shldl $5,%ecx,%ecx + addl %edi,%ebx + xorl %ebp,%esi + shrdl $7,%edx,%edx + addl %ecx,%ebx + vpalignr $8,%xmm0,%xmm1,%xmm8 + vpxor %xmm6,%xmm2,%xmm2 + addl 32(%rsp),%eax + xorl %edx,%esi + movl %ebx,%edi + shldl $5,%ebx,%ebx + vpxor %xmm3,%xmm2,%xmm2 + addl %esi,%eax + xorl %edx,%edi + vpaddd %xmm1,%xmm10,%xmm9 + vmovdqa 32(%r11),%xmm10 + shrdl $7,%ecx,%ecx + addl %ebx,%eax + vpxor %xmm8,%xmm2,%xmm2 + addl 36(%rsp),%ebp + vaesenc %xmm14,%xmm12,%xmm12 + vmovups -16(%r15),%xmm15 + xorl %ecx,%edi + movl %eax,%esi + shldl $5,%eax,%eax + vpsrld $30,%xmm2,%xmm8 + vmovdqa %xmm9,16(%rsp) + addl %edi,%ebp + xorl %ecx,%esi + shrdl $7,%ebx,%ebx + addl %eax,%ebp + vpslld $2,%xmm2,%xmm2 + addl 40(%rsp),%edx + xorl %ebx,%esi + movl %ebp,%edi + shldl $5,%ebp,%ebp + addl %esi,%edx + xorl %ebx,%edi + shrdl $7,%eax,%eax + addl %ebp,%edx + vpor %xmm8,%xmm2,%xmm2 + addl 44(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + shldl $5,%edx,%edx + addl %edi,%ecx + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 0(%r15),%xmm14 + xorl %eax,%esi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + vpalignr $8,%xmm1,%xmm2,%xmm8 + vpxor %xmm7,%xmm3,%xmm3 + addl 48(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi + shldl $5,%ecx,%ecx + vpxor %xmm4,%xmm3,%xmm3 + addl %esi,%ebx + xorl %ebp,%edi + vpaddd %xmm2,%xmm10,%xmm9 + shrdl $7,%edx,%edx + addl %ecx,%ebx + vpxor %xmm8,%xmm3,%xmm3 + addl 52(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + shldl $5,%ebx,%ebx + vpsrld $30,%xmm3,%xmm8 + vmovdqa %xmm9,32(%rsp) + addl %edi,%eax + xorl %edx,%esi + shrdl $7,%ecx,%ecx + addl %ebx,%eax + vpslld $2,%xmm3,%xmm3 + addl 56(%rsp),%ebp + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 16(%r15),%xmm15 + xorl %ecx,%esi + movl %eax,%edi + shldl $5,%eax,%eax + addl %esi,%ebp + xorl %ecx,%edi + shrdl $7,%ebx,%ebx + addl %eax,%ebp + vpor %xmm8,%xmm3,%xmm3 + addl 60(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + shldl $5,%ebp,%ebp + addl %edi,%edx + xorl %ebx,%esi + shrdl $7,%eax,%eax + addl %ebp,%edx + vpalignr $8,%xmm2,%xmm3,%xmm8 + vpxor %xmm0,%xmm4,%xmm4 + addl 0(%rsp),%ecx + xorl %eax,%esi + movl %edx,%edi + shldl $5,%edx,%edx + vpxor %xmm5,%xmm4,%xmm4 + addl %esi,%ecx + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 32(%r15),%xmm14 + xorl %eax,%edi + vpaddd %xmm3,%xmm10,%xmm9 + shrdl $7,%ebp,%ebp + addl %edx,%ecx + vpxor %xmm8,%xmm4,%xmm4 + addl 4(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + shldl $5,%ecx,%ecx + vpsrld $30,%xmm4,%xmm8 + vmovdqa %xmm9,48(%rsp) + addl %edi,%ebx + xorl %ebp,%esi + shrdl $7,%edx,%edx + addl %ecx,%ebx + vpslld $2,%xmm4,%xmm4 + addl 8(%rsp),%eax + xorl %edx,%esi + movl %ebx,%edi + shldl $5,%ebx,%ebx + addl %esi,%eax + xorl %edx,%edi + shrdl $7,%ecx,%ecx + addl %ebx,%eax + vpor %xmm8,%xmm4,%xmm4 + addl 12(%rsp),%ebp + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 48(%r15),%xmm15 + xorl %ecx,%edi + movl %eax,%esi + shldl $5,%eax,%eax + addl %edi,%ebp + xorl %ecx,%esi + shrdl $7,%ebx,%ebx + addl %eax,%ebp + vpalignr $8,%xmm3,%xmm4,%xmm8 + vpxor %xmm1,%xmm5,%xmm5 + addl 16(%rsp),%edx + xorl %ebx,%esi + movl %ebp,%edi + shldl $5,%ebp,%ebp + vpxor %xmm6,%xmm5,%xmm5 + addl %esi,%edx + xorl %ebx,%edi + vpaddd %xmm4,%xmm10,%xmm9 + shrdl $7,%eax,%eax + addl %ebp,%edx + vpxor %xmm8,%xmm5,%xmm5 + addl 20(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + shldl $5,%edx,%edx + vpsrld $30,%xmm5,%xmm8 + vmovdqa %xmm9,0(%rsp) + addl %edi,%ecx + cmpl $11,%r8d + jb L$vaesenclast7 + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 64(%r15),%xmm14 + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 80(%r15),%xmm15 + je L$vaesenclast7 + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 96(%r15),%xmm14 + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 112(%r15),%xmm15 +L$vaesenclast7: + vaesenclast %xmm15,%xmm12,%xmm12 + vmovups -112(%r15),%xmm15 + vmovups 16-112(%r15),%xmm14 + xorl %eax,%esi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + vpslld $2,%xmm5,%xmm5 + addl 24(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi + shldl $5,%ecx,%ecx + addl %esi,%ebx + xorl %ebp,%edi + shrdl $7,%edx,%edx + addl %ecx,%ebx + vpor %xmm8,%xmm5,%xmm5 + addl 28(%rsp),%eax + shrdl $7,%ecx,%ecx + movl %ebx,%esi + xorl %edx,%edi + shldl $5,%ebx,%ebx + addl %edi,%eax + xorl %ecx,%esi + xorl %edx,%ecx + addl %ebx,%eax + vpalignr $8,%xmm4,%xmm5,%xmm8 + vpxor %xmm2,%xmm6,%xmm6 + addl 32(%rsp),%ebp + vmovdqu 32(%r12),%xmm13 + vpxor %xmm15,%xmm13,%xmm13 + vmovups %xmm12,16(%r13,%r12,1) + vpxor %xmm13,%xmm12,%xmm12 + vaesenc %xmm14,%xmm12,%xmm12 + vmovups -80(%r15),%xmm15 + andl %ecx,%esi + xorl %edx,%ecx + shrdl $7,%ebx,%ebx + vpxor %xmm7,%xmm6,%xmm6 + movl %eax,%edi + xorl %ecx,%esi + vpaddd %xmm5,%xmm10,%xmm9 + shldl $5,%eax,%eax + addl %esi,%ebp + vpxor %xmm8,%xmm6,%xmm6 + xorl %ebx,%edi + xorl %ecx,%ebx + addl %eax,%ebp + addl 36(%rsp),%edx + vpsrld $30,%xmm6,%xmm8 + vmovdqa %xmm9,16(%rsp) + andl %ebx,%edi + xorl %ecx,%ebx + shrdl $7,%eax,%eax + movl %ebp,%esi + vpslld $2,%xmm6,%xmm6 + xorl %ebx,%edi + shldl $5,%ebp,%ebp + addl %edi,%edx + vaesenc %xmm15,%xmm12,%xmm12 + vmovups -64(%r15),%xmm14 + xorl %eax,%esi + xorl %ebx,%eax + addl %ebp,%edx + addl 40(%rsp),%ecx + andl %eax,%esi + vpor %xmm8,%xmm6,%xmm6 + xorl %ebx,%eax + shrdl $7,%ebp,%ebp + movl %edx,%edi + xorl %eax,%esi + shldl $5,%edx,%edx + addl %esi,%ecx + xorl %ebp,%edi + xorl %eax,%ebp + addl %edx,%ecx + addl 44(%rsp),%ebx + andl %ebp,%edi + xorl %eax,%ebp + shrdl $7,%edx,%edx + vaesenc %xmm14,%xmm12,%xmm12 + vmovups -48(%r15),%xmm15 + movl %ecx,%esi + xorl %ebp,%edi + shldl $5,%ecx,%ecx + addl %edi,%ebx + xorl %edx,%esi + xorl %ebp,%edx + addl %ecx,%ebx + vpalignr $8,%xmm5,%xmm6,%xmm8 + vpxor %xmm3,%xmm7,%xmm7 + addl 48(%rsp),%eax + andl %edx,%esi + xorl %ebp,%edx + shrdl $7,%ecx,%ecx + vpxor %xmm0,%xmm7,%xmm7 + movl %ebx,%edi + xorl %edx,%esi + vpaddd %xmm6,%xmm10,%xmm9 + vmovdqa 48(%r11),%xmm10 + shldl $5,%ebx,%ebx + addl %esi,%eax + vpxor %xmm8,%xmm7,%xmm7 + xorl %ecx,%edi + xorl %edx,%ecx + addl %ebx,%eax + addl 52(%rsp),%ebp + vaesenc %xmm15,%xmm12,%xmm12 + vmovups -32(%r15),%xmm14 + vpsrld $30,%xmm7,%xmm8 + vmovdqa %xmm9,32(%rsp) + andl %ecx,%edi + xorl %edx,%ecx + shrdl $7,%ebx,%ebx + movl %eax,%esi + vpslld $2,%xmm7,%xmm7 + xorl %ecx,%edi + shldl $5,%eax,%eax + addl %edi,%ebp + xorl %ebx,%esi + xorl %ecx,%ebx + addl %eax,%ebp + addl 56(%rsp),%edx + andl %ebx,%esi + vpor %xmm8,%xmm7,%xmm7 + xorl %ecx,%ebx + shrdl $7,%eax,%eax + movl %ebp,%edi + xorl %ebx,%esi + shldl $5,%ebp,%ebp + addl %esi,%edx + vaesenc %xmm14,%xmm12,%xmm12 + vmovups -16(%r15),%xmm15 + xorl %eax,%edi + xorl %ebx,%eax + addl %ebp,%edx + addl 60(%rsp),%ecx + andl %eax,%edi + xorl %ebx,%eax + shrdl $7,%ebp,%ebp + movl %edx,%esi + xorl %eax,%edi + shldl $5,%edx,%edx + addl %edi,%ecx + xorl %ebp,%esi + xorl %eax,%ebp + addl %edx,%ecx + vpalignr $8,%xmm6,%xmm7,%xmm8 + vpxor %xmm4,%xmm0,%xmm0 + addl 0(%rsp),%ebx + andl %ebp,%esi + xorl %eax,%ebp + shrdl $7,%edx,%edx + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 0(%r15),%xmm14 + vpxor %xmm1,%xmm0,%xmm0 + movl %ecx,%edi + xorl %ebp,%esi + vpaddd %xmm7,%xmm10,%xmm9 + shldl $5,%ecx,%ecx + addl %esi,%ebx + vpxor %xmm8,%xmm0,%xmm0 + xorl %edx,%edi + xorl %ebp,%edx + addl %ecx,%ebx + addl 4(%rsp),%eax + vpsrld $30,%xmm0,%xmm8 + vmovdqa %xmm9,48(%rsp) + andl %edx,%edi + xorl %ebp,%edx + shrdl $7,%ecx,%ecx + movl %ebx,%esi + vpslld $2,%xmm0,%xmm0 + xorl %edx,%edi + shldl $5,%ebx,%ebx + addl %edi,%eax + xorl %ecx,%esi + xorl %edx,%ecx + addl %ebx,%eax + addl 8(%rsp),%ebp + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 16(%r15),%xmm15 + andl %ecx,%esi + vpor %xmm8,%xmm0,%xmm0 + xorl %edx,%ecx + shrdl $7,%ebx,%ebx + movl %eax,%edi + xorl %ecx,%esi + shldl $5,%eax,%eax + addl %esi,%ebp + xorl %ebx,%edi + xorl %ecx,%ebx + addl %eax,%ebp + addl 12(%rsp),%edx + andl %ebx,%edi + xorl %ecx,%ebx + shrdl $7,%eax,%eax + movl %ebp,%esi + xorl %ebx,%edi + shldl $5,%ebp,%ebp + addl %edi,%edx + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 32(%r15),%xmm14 + xorl %eax,%esi + xorl %ebx,%eax + addl %ebp,%edx + vpalignr $8,%xmm7,%xmm0,%xmm8 + vpxor %xmm5,%xmm1,%xmm1 + addl 16(%rsp),%ecx + andl %eax,%esi + xorl %ebx,%eax + shrdl $7,%ebp,%ebp + vpxor %xmm2,%xmm1,%xmm1 + movl %edx,%edi + xorl %eax,%esi + vpaddd %xmm0,%xmm10,%xmm9 + shldl $5,%edx,%edx + addl %esi,%ecx + vpxor %xmm8,%xmm1,%xmm1 + xorl %ebp,%edi + xorl %eax,%ebp + addl %edx,%ecx + addl 20(%rsp),%ebx + vpsrld $30,%xmm1,%xmm8 + vmovdqa %xmm9,0(%rsp) + andl %ebp,%edi + xorl %eax,%ebp + shrdl $7,%edx,%edx + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 48(%r15),%xmm15 + movl %ecx,%esi + vpslld $2,%xmm1,%xmm1 + xorl %ebp,%edi + shldl $5,%ecx,%ecx + addl %edi,%ebx + xorl %edx,%esi + xorl %ebp,%edx + addl %ecx,%ebx + addl 24(%rsp),%eax + andl %edx,%esi + vpor %xmm8,%xmm1,%xmm1 + xorl %ebp,%edx + shrdl $7,%ecx,%ecx + movl %ebx,%edi + xorl %edx,%esi + shldl $5,%ebx,%ebx + addl %esi,%eax + xorl %ecx,%edi + xorl %edx,%ecx + addl %ebx,%eax + addl 28(%rsp),%ebp + cmpl $11,%r8d + jb L$vaesenclast8 + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 64(%r15),%xmm14 + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 80(%r15),%xmm15 + je L$vaesenclast8 + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 96(%r15),%xmm14 + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 112(%r15),%xmm15 +L$vaesenclast8: + vaesenclast %xmm15,%xmm12,%xmm12 + vmovups -112(%r15),%xmm15 + vmovups 16-112(%r15),%xmm14 + andl %ecx,%edi + xorl %edx,%ecx + shrdl $7,%ebx,%ebx + movl %eax,%esi + xorl %ecx,%edi + shldl $5,%eax,%eax + addl %edi,%ebp + xorl %ebx,%esi + xorl %ecx,%ebx + addl %eax,%ebp + vpalignr $8,%xmm0,%xmm1,%xmm8 + vpxor %xmm6,%xmm2,%xmm2 + addl 32(%rsp),%edx + andl %ebx,%esi + xorl %ecx,%ebx + shrdl $7,%eax,%eax + vpxor %xmm3,%xmm2,%xmm2 + movl %ebp,%edi + xorl %ebx,%esi + vpaddd %xmm1,%xmm10,%xmm9 + shldl $5,%ebp,%ebp + addl %esi,%edx + vmovdqu 48(%r12),%xmm13 + vpxor %xmm15,%xmm13,%xmm13 + vmovups %xmm12,32(%r13,%r12,1) + vpxor %xmm13,%xmm12,%xmm12 + vaesenc %xmm14,%xmm12,%xmm12 + vmovups -80(%r15),%xmm15 + vpxor %xmm8,%xmm2,%xmm2 + xorl %eax,%edi + xorl %ebx,%eax + addl %ebp,%edx + addl 36(%rsp),%ecx + vpsrld $30,%xmm2,%xmm8 + vmovdqa %xmm9,16(%rsp) + andl %eax,%edi + xorl %ebx,%eax + shrdl $7,%ebp,%ebp + movl %edx,%esi + vpslld $2,%xmm2,%xmm2 + xorl %eax,%edi + shldl $5,%edx,%edx + addl %edi,%ecx + xorl %ebp,%esi + xorl %eax,%ebp + addl %edx,%ecx + addl 40(%rsp),%ebx + andl %ebp,%esi + vpor %xmm8,%xmm2,%xmm2 + xorl %eax,%ebp + shrdl $7,%edx,%edx + vaesenc %xmm15,%xmm12,%xmm12 + vmovups -64(%r15),%xmm14 + movl %ecx,%edi + xorl %ebp,%esi + shldl $5,%ecx,%ecx + addl %esi,%ebx + xorl %edx,%edi + xorl %ebp,%edx + addl %ecx,%ebx + addl 44(%rsp),%eax + andl %edx,%edi + xorl %ebp,%edx + shrdl $7,%ecx,%ecx + movl %ebx,%esi + xorl %edx,%edi + shldl $5,%ebx,%ebx + addl %edi,%eax + xorl %edx,%esi + addl %ebx,%eax + vpalignr $8,%xmm1,%xmm2,%xmm8 + vpxor %xmm7,%xmm3,%xmm3 + addl 48(%rsp),%ebp + vaesenc %xmm14,%xmm12,%xmm12 + vmovups -48(%r15),%xmm15 + xorl %ecx,%esi + movl %eax,%edi + shldl $5,%eax,%eax + vpxor %xmm4,%xmm3,%xmm3 + addl %esi,%ebp + xorl %ecx,%edi + vpaddd %xmm2,%xmm10,%xmm9 + shrdl $7,%ebx,%ebx + addl %eax,%ebp + vpxor %xmm8,%xmm3,%xmm3 + addl 52(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + shldl $5,%ebp,%ebp + vpsrld $30,%xmm3,%xmm8 + vmovdqa %xmm9,32(%rsp) + addl %edi,%edx + xorl %ebx,%esi + shrdl $7,%eax,%eax + addl %ebp,%edx + vpslld $2,%xmm3,%xmm3 + addl 56(%rsp),%ecx + xorl %eax,%esi + movl %edx,%edi + shldl $5,%edx,%edx + addl %esi,%ecx + vaesenc %xmm15,%xmm12,%xmm12 + vmovups -32(%r15),%xmm14 + xorl %eax,%edi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + vpor %xmm8,%xmm3,%xmm3 + addl 60(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + shldl $5,%ecx,%ecx + addl %edi,%ebx + xorl %ebp,%esi + shrdl $7,%edx,%edx + addl %ecx,%ebx + addl 0(%rsp),%eax + vpaddd %xmm3,%xmm10,%xmm9 + xorl %edx,%esi + movl %ebx,%edi + shldl $5,%ebx,%ebx + addl %esi,%eax + vmovdqa %xmm9,48(%rsp) + xorl %edx,%edi + shrdl $7,%ecx,%ecx + addl %ebx,%eax + addl 4(%rsp),%ebp + vaesenc %xmm14,%xmm12,%xmm12 + vmovups -16(%r15),%xmm15 + xorl %ecx,%edi + movl %eax,%esi + shldl $5,%eax,%eax + addl %edi,%ebp + xorl %ecx,%esi + shrdl $7,%ebx,%ebx + addl %eax,%ebp + addl 8(%rsp),%edx + xorl %ebx,%esi + movl %ebp,%edi + shldl $5,%ebp,%ebp + addl %esi,%edx + xorl %ebx,%edi + shrdl $7,%eax,%eax + addl %ebp,%edx + addl 12(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + shldl $5,%edx,%edx + addl %edi,%ecx + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 0(%r15),%xmm14 + xorl %eax,%esi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + cmpq %r14,%r10 + je L$done_avx + vmovdqa 64(%r11),%xmm9 + vmovdqa 0(%r11),%xmm10 + vmovdqu 0(%r10),%xmm0 + vmovdqu 16(%r10),%xmm1 + vmovdqu 32(%r10),%xmm2 + vmovdqu 48(%r10),%xmm3 + vpshufb %xmm9,%xmm0,%xmm0 + addq $64,%r10 + addl 16(%rsp),%ebx + xorl %ebp,%esi + vpshufb %xmm9,%xmm1,%xmm1 + movl %ecx,%edi + shldl $5,%ecx,%ecx + vpaddd %xmm10,%xmm0,%xmm8 + addl %esi,%ebx + xorl %ebp,%edi + shrdl $7,%edx,%edx + addl %ecx,%ebx + vmovdqa %xmm8,0(%rsp) + addl 20(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + shldl $5,%ebx,%ebx + addl %edi,%eax + xorl %edx,%esi + shrdl $7,%ecx,%ecx + addl %ebx,%eax + addl 24(%rsp),%ebp + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 16(%r15),%xmm15 + xorl %ecx,%esi + movl %eax,%edi + shldl $5,%eax,%eax + addl %esi,%ebp + xorl %ecx,%edi + shrdl $7,%ebx,%ebx + addl %eax,%ebp + addl 28(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + shldl $5,%ebp,%ebp + addl %edi,%edx + xorl %ebx,%esi + shrdl $7,%eax,%eax + addl %ebp,%edx + addl 32(%rsp),%ecx + xorl %eax,%esi + vpshufb %xmm9,%xmm2,%xmm2 + movl %edx,%edi + shldl $5,%edx,%edx + vpaddd %xmm10,%xmm1,%xmm8 + addl %esi,%ecx + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 32(%r15),%xmm14 + xorl %eax,%edi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + vmovdqa %xmm8,16(%rsp) + addl 36(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + shldl $5,%ecx,%ecx + addl %edi,%ebx + xorl %ebp,%esi + shrdl $7,%edx,%edx + addl %ecx,%ebx + addl 40(%rsp),%eax + xorl %edx,%esi + movl %ebx,%edi + shldl $5,%ebx,%ebx + addl %esi,%eax + xorl %edx,%edi + shrdl $7,%ecx,%ecx + addl %ebx,%eax + addl 44(%rsp),%ebp + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 48(%r15),%xmm15 + xorl %ecx,%edi + movl %eax,%esi + shldl $5,%eax,%eax + addl %edi,%ebp + xorl %ecx,%esi + shrdl $7,%ebx,%ebx + addl %eax,%ebp + addl 48(%rsp),%edx + xorl %ebx,%esi + vpshufb %xmm9,%xmm3,%xmm3 + movl %ebp,%edi + shldl $5,%ebp,%ebp + vpaddd %xmm10,%xmm2,%xmm8 + addl %esi,%edx + xorl %ebx,%edi + shrdl $7,%eax,%eax + addl %ebp,%edx + vmovdqa %xmm8,32(%rsp) + addl 52(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + shldl $5,%edx,%edx + addl %edi,%ecx + cmpl $11,%r8d + jb L$vaesenclast9 + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 64(%r15),%xmm14 + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 80(%r15),%xmm15 + je L$vaesenclast9 + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 96(%r15),%xmm14 + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 112(%r15),%xmm15 +L$vaesenclast9: + vaesenclast %xmm15,%xmm12,%xmm12 + vmovups -112(%r15),%xmm15 + vmovups 16-112(%r15),%xmm14 + xorl %eax,%esi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + addl 56(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi + shldl $5,%ecx,%ecx + addl %esi,%ebx + xorl %ebp,%edi + shrdl $7,%edx,%edx + addl %ecx,%ebx + addl 60(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + shldl $5,%ebx,%ebx + addl %edi,%eax + shrdl $7,%ecx,%ecx + addl %ebx,%eax + vmovups %xmm12,48(%r13,%r12,1) + leaq 64(%r12),%r12 + + addl 0(%r9),%eax + addl 4(%r9),%esi + addl 8(%r9),%ecx + addl 12(%r9),%edx + movl %eax,0(%r9) + addl 16(%r9),%ebp + movl %esi,4(%r9) + movl %esi,%ebx + movl %ecx,8(%r9) + movl %ecx,%edi + movl %edx,12(%r9) + xorl %edx,%edi + movl %ebp,16(%r9) + andl %edi,%esi + jmp L$oop_avx + +L$done_avx: + addl 16(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi + shldl $5,%ecx,%ecx + addl %esi,%ebx + xorl %ebp,%edi + shrdl $7,%edx,%edx + addl %ecx,%ebx + addl 20(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + shldl $5,%ebx,%ebx + addl %edi,%eax + xorl %edx,%esi + shrdl $7,%ecx,%ecx + addl %ebx,%eax + addl 24(%rsp),%ebp + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 16(%r15),%xmm15 + xorl %ecx,%esi + movl %eax,%edi + shldl $5,%eax,%eax + addl %esi,%ebp + xorl %ecx,%edi + shrdl $7,%ebx,%ebx + addl %eax,%ebp + addl 28(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + shldl $5,%ebp,%ebp + addl %edi,%edx + xorl %ebx,%esi + shrdl $7,%eax,%eax + addl %ebp,%edx + addl 32(%rsp),%ecx + xorl %eax,%esi + movl %edx,%edi + shldl $5,%edx,%edx + addl %esi,%ecx + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 32(%r15),%xmm14 + xorl %eax,%edi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + addl 36(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + shldl $5,%ecx,%ecx + addl %edi,%ebx + xorl %ebp,%esi + shrdl $7,%edx,%edx + addl %ecx,%ebx + addl 40(%rsp),%eax + xorl %edx,%esi + movl %ebx,%edi + shldl $5,%ebx,%ebx + addl %esi,%eax + xorl %edx,%edi + shrdl $7,%ecx,%ecx + addl %ebx,%eax + addl 44(%rsp),%ebp + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 48(%r15),%xmm15 + xorl %ecx,%edi + movl %eax,%esi + shldl $5,%eax,%eax + addl %edi,%ebp + xorl %ecx,%esi + shrdl $7,%ebx,%ebx + addl %eax,%ebp + addl 48(%rsp),%edx + xorl %ebx,%esi + movl %ebp,%edi + shldl $5,%ebp,%ebp + addl %esi,%edx + xorl %ebx,%edi + shrdl $7,%eax,%eax + addl %ebp,%edx + addl 52(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + shldl $5,%edx,%edx + addl %edi,%ecx + cmpl $11,%r8d + jb L$vaesenclast10 + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 64(%r15),%xmm14 + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 80(%r15),%xmm15 + je L$vaesenclast10 + vaesenc %xmm15,%xmm12,%xmm12 + vmovups 96(%r15),%xmm14 + vaesenc %xmm14,%xmm12,%xmm12 + vmovups 112(%r15),%xmm15 +L$vaesenclast10: + vaesenclast %xmm15,%xmm12,%xmm12 + vmovups -112(%r15),%xmm15 + vmovups 16-112(%r15),%xmm14 + xorl %eax,%esi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + addl 56(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi + shldl $5,%ecx,%ecx + addl %esi,%ebx + xorl %ebp,%edi + shrdl $7,%edx,%edx + addl %ecx,%ebx + addl 60(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + shldl $5,%ebx,%ebx + addl %edi,%eax + shrdl $7,%ecx,%ecx + addl %ebx,%eax + vmovups %xmm12,48(%r13,%r12,1) + movq 88(%rsp),%r8 + + addl 0(%r9),%eax + addl 4(%r9),%esi + addl 8(%r9),%ecx + movl %eax,0(%r9) + addl 12(%r9),%edx + movl %esi,4(%r9) + addl 16(%r9),%ebp + movl %ecx,8(%r9) + movl %edx,12(%r9) + movl %ebp,16(%r9) + vmovups %xmm12,(%r8) + vzeroall + leaq 104(%rsp),%rsi + + movq 0(%rsi),%r15 + + movq 8(%rsi),%r14 + + movq 16(%rsi),%r13 + + movq 24(%rsi),%r12 + + movq 32(%rsi),%rbp + + movq 40(%rsi),%rbx + + leaq 48(%rsi),%rsp + +L$epilogue_avx: + .byte 0xf3,0xc3 + + +.p2align 6 +K_XX_XX: +.long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 +.long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1 +.long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc +.long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6 +.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f +.byte 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0 + +.byte 65,69,83,78,73,45,67,66,67,43,83,72,65,49,32,115,116,105,116,99,104,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.p2align 6 + +.p2align 5 +aesni_cbc_sha1_enc_shaext: + + movq 8(%rsp),%r10 + movdqu (%r9),%xmm8 + movd 16(%r9),%xmm9 + movdqa K_XX_XX+80(%rip),%xmm7 + + movl 240(%rcx),%r11d + subq %rdi,%rsi + movups (%rcx),%xmm15 + movups (%r8),%xmm2 + movups 16(%rcx),%xmm0 + leaq 112(%rcx),%rcx + + pshufd $27,%xmm8,%xmm8 + pshufd $27,%xmm9,%xmm9 + jmp L$oop_shaext + +.p2align 4 +L$oop_shaext: + movups 0(%rdi),%xmm14 + xorps %xmm15,%xmm14 + xorps %xmm14,%xmm2 + movups -80(%rcx),%xmm1 +.byte 102,15,56,220,208 + movdqu (%r10),%xmm3 + movdqa %xmm9,%xmm12 +.byte 102,15,56,0,223 + movdqu 16(%r10),%xmm4 + movdqa %xmm8,%xmm11 + movups -64(%rcx),%xmm0 +.byte 102,15,56,220,209 +.byte 102,15,56,0,231 + + paddd %xmm3,%xmm9 + movdqu 32(%r10),%xmm5 + leaq 64(%r10),%r10 + pxor %xmm12,%xmm3 + movups -48(%rcx),%xmm1 +.byte 102,15,56,220,208 + pxor %xmm12,%xmm3 + movdqa %xmm8,%xmm10 +.byte 102,15,56,0,239 +.byte 69,15,58,204,193,0 +.byte 68,15,56,200,212 + movups -32(%rcx),%xmm0 +.byte 102,15,56,220,209 +.byte 15,56,201,220 + movdqu -16(%r10),%xmm6 + movdqa %xmm8,%xmm9 +.byte 102,15,56,0,247 + movups -16(%rcx),%xmm1 +.byte 102,15,56,220,208 +.byte 69,15,58,204,194,0 +.byte 68,15,56,200,205 + pxor %xmm5,%xmm3 +.byte 15,56,201,229 + movups 0(%rcx),%xmm0 +.byte 102,15,56,220,209 + movdqa %xmm8,%xmm10 +.byte 69,15,58,204,193,0 +.byte 68,15,56,200,214 + movups 16(%rcx),%xmm1 +.byte 102,15,56,220,208 +.byte 15,56,202,222 + pxor %xmm6,%xmm4 +.byte 15,56,201,238 + movups 32(%rcx),%xmm0 +.byte 102,15,56,220,209 + movdqa %xmm8,%xmm9 +.byte 69,15,58,204,194,0 +.byte 68,15,56,200,203 + movups 48(%rcx),%xmm1 +.byte 102,15,56,220,208 +.byte 15,56,202,227 + pxor %xmm3,%xmm5 +.byte 15,56,201,243 + cmpl $11,%r11d + jb L$aesenclast11 + movups 64(%rcx),%xmm0 +.byte 102,15,56,220,209 + movups 80(%rcx),%xmm1 +.byte 102,15,56,220,208 + je L$aesenclast11 + movups 96(%rcx),%xmm0 +.byte 102,15,56,220,209 + movups 112(%rcx),%xmm1 +.byte 102,15,56,220,208 +L$aesenclast11: +.byte 102,15,56,221,209 + movups 16-112(%rcx),%xmm0 + movdqa %xmm8,%xmm10 +.byte 69,15,58,204,193,0 +.byte 68,15,56,200,212 + movups 16(%rdi),%xmm14 + xorps %xmm15,%xmm14 + movups %xmm2,0(%rsi,%rdi,1) + xorps %xmm14,%xmm2 + movups -80(%rcx),%xmm1 +.byte 102,15,56,220,208 +.byte 15,56,202,236 + pxor %xmm4,%xmm6 +.byte 15,56,201,220 + movups -64(%rcx),%xmm0 +.byte 102,15,56,220,209 + movdqa %xmm8,%xmm9 +.byte 69,15,58,204,194,1 +.byte 68,15,56,200,205 + movups -48(%rcx),%xmm1 +.byte 102,15,56,220,208 +.byte 15,56,202,245 + pxor %xmm5,%xmm3 +.byte 15,56,201,229 + movups -32(%rcx),%xmm0 +.byte 102,15,56,220,209 + movdqa %xmm8,%xmm10 +.byte 69,15,58,204,193,1 +.byte 68,15,56,200,214 + movups -16(%rcx),%xmm1 +.byte 102,15,56,220,208 +.byte 15,56,202,222 + pxor %xmm6,%xmm4 +.byte 15,56,201,238 + movups 0(%rcx),%xmm0 +.byte 102,15,56,220,209 + movdqa %xmm8,%xmm9 +.byte 69,15,58,204,194,1 +.byte 68,15,56,200,203 + movups 16(%rcx),%xmm1 +.byte 102,15,56,220,208 +.byte 15,56,202,227 + pxor %xmm3,%xmm5 +.byte 15,56,201,243 + movups 32(%rcx),%xmm0 +.byte 102,15,56,220,209 + movdqa %xmm8,%xmm10 +.byte 69,15,58,204,193,1 +.byte 68,15,56,200,212 + movups 48(%rcx),%xmm1 +.byte 102,15,56,220,208 +.byte 15,56,202,236 + pxor %xmm4,%xmm6 +.byte 15,56,201,220 + cmpl $11,%r11d + jb L$aesenclast12 + movups 64(%rcx),%xmm0 +.byte 102,15,56,220,209 + movups 80(%rcx),%xmm1 +.byte 102,15,56,220,208 + je L$aesenclast12 + movups 96(%rcx),%xmm0 +.byte 102,15,56,220,209 + movups 112(%rcx),%xmm1 +.byte 102,15,56,220,208 +L$aesenclast12: +.byte 102,15,56,221,209 + movups 16-112(%rcx),%xmm0 + movdqa %xmm8,%xmm9 +.byte 69,15,58,204,194,1 +.byte 68,15,56,200,205 + movups 32(%rdi),%xmm14 + xorps %xmm15,%xmm14 + movups %xmm2,16(%rsi,%rdi,1) + xorps %xmm14,%xmm2 + movups -80(%rcx),%xmm1 +.byte 102,15,56,220,208 +.byte 15,56,202,245 + pxor %xmm5,%xmm3 +.byte 15,56,201,229 + movups -64(%rcx),%xmm0 +.byte 102,15,56,220,209 + movdqa %xmm8,%xmm10 +.byte 69,15,58,204,193,2 +.byte 68,15,56,200,214 + movups -48(%rcx),%xmm1 +.byte 102,15,56,220,208 +.byte 15,56,202,222 + pxor %xmm6,%xmm4 +.byte 15,56,201,238 + movups -32(%rcx),%xmm0 +.byte 102,15,56,220,209 + movdqa %xmm8,%xmm9 +.byte 69,15,58,204,194,2 +.byte 68,15,56,200,203 + movups -16(%rcx),%xmm1 +.byte 102,15,56,220,208 +.byte 15,56,202,227 + pxor %xmm3,%xmm5 +.byte 15,56,201,243 + movups 0(%rcx),%xmm0 +.byte 102,15,56,220,209 + movdqa %xmm8,%xmm10 +.byte 69,15,58,204,193,2 +.byte 68,15,56,200,212 + movups 16(%rcx),%xmm1 +.byte 102,15,56,220,208 +.byte 15,56,202,236 + pxor %xmm4,%xmm6 +.byte 15,56,201,220 + movups 32(%rcx),%xmm0 +.byte 102,15,56,220,209 + movdqa %xmm8,%xmm9 +.byte 69,15,58,204,194,2 +.byte 68,15,56,200,205 + movups 48(%rcx),%xmm1 +.byte 102,15,56,220,208 +.byte 15,56,202,245 + pxor %xmm5,%xmm3 +.byte 15,56,201,229 + cmpl $11,%r11d + jb L$aesenclast13 + movups 64(%rcx),%xmm0 +.byte 102,15,56,220,209 + movups 80(%rcx),%xmm1 +.byte 102,15,56,220,208 + je L$aesenclast13 + movups 96(%rcx),%xmm0 +.byte 102,15,56,220,209 + movups 112(%rcx),%xmm1 +.byte 102,15,56,220,208 +L$aesenclast13: +.byte 102,15,56,221,209 + movups 16-112(%rcx),%xmm0 + movdqa %xmm8,%xmm10 +.byte 69,15,58,204,193,2 +.byte 68,15,56,200,214 + movups 48(%rdi),%xmm14 + xorps %xmm15,%xmm14 + movups %xmm2,32(%rsi,%rdi,1) + xorps %xmm14,%xmm2 + movups -80(%rcx),%xmm1 +.byte 102,15,56,220,208 +.byte 15,56,202,222 + pxor %xmm6,%xmm4 +.byte 15,56,201,238 + movups -64(%rcx),%xmm0 +.byte 102,15,56,220,209 + movdqa %xmm8,%xmm9 +.byte 69,15,58,204,194,3 +.byte 68,15,56,200,203 + movups -48(%rcx),%xmm1 +.byte 102,15,56,220,208 +.byte 15,56,202,227 + pxor %xmm3,%xmm5 +.byte 15,56,201,243 + movups -32(%rcx),%xmm0 +.byte 102,15,56,220,209 + movdqa %xmm8,%xmm10 +.byte 69,15,58,204,193,3 +.byte 68,15,56,200,212 +.byte 15,56,202,236 + pxor %xmm4,%xmm6 + movups -16(%rcx),%xmm1 +.byte 102,15,56,220,208 + movdqa %xmm8,%xmm9 +.byte 69,15,58,204,194,3 +.byte 68,15,56,200,205 +.byte 15,56,202,245 + movups 0(%rcx),%xmm0 +.byte 102,15,56,220,209 + movdqa %xmm12,%xmm5 + movdqa %xmm8,%xmm10 +.byte 69,15,58,204,193,3 +.byte 68,15,56,200,214 + movups 16(%rcx),%xmm1 +.byte 102,15,56,220,208 + movdqa %xmm8,%xmm9 +.byte 69,15,58,204,194,3 +.byte 68,15,56,200,205 + movups 32(%rcx),%xmm0 +.byte 102,15,56,220,209 + movups 48(%rcx),%xmm1 +.byte 102,15,56,220,208 + cmpl $11,%r11d + jb L$aesenclast14 + movups 64(%rcx),%xmm0 +.byte 102,15,56,220,209 + movups 80(%rcx),%xmm1 +.byte 102,15,56,220,208 + je L$aesenclast14 + movups 96(%rcx),%xmm0 +.byte 102,15,56,220,209 + movups 112(%rcx),%xmm1 +.byte 102,15,56,220,208 +L$aesenclast14: +.byte 102,15,56,221,209 + movups 16-112(%rcx),%xmm0 + decq %rdx + + paddd %xmm11,%xmm8 + movups %xmm2,48(%rsi,%rdi,1) + leaq 64(%rdi),%rdi + jnz L$oop_shaext + + pshufd $27,%xmm8,%xmm8 + pshufd $27,%xmm9,%xmm9 + movups %xmm2,(%r8) + movdqu %xmm8,(%r9) + movd %xmm9,16(%r9) + .byte 0xf3,0xc3 + + diff --git a/vere/ext/openssl/gen/macos-x86_64/crypto/aes/aesni-sha256-x86_64.s b/vere/ext/openssl/gen/macos-x86_64/crypto/aes/aesni-sha256-x86_64.s new file mode 100644 index 0000000..cbf5ae8 --- /dev/null +++ b/vere/ext/openssl/gen/macos-x86_64/crypto/aes/aesni-sha256-x86_64.s @@ -0,0 +1,4435 @@ +.text + + +.globl _aesni_cbc_sha256_enc + +.p2align 4 +_aesni_cbc_sha256_enc: + + leaq _OPENSSL_ia32cap_P(%rip),%r11 + movl $1,%eax + cmpq $0,%rdi + je L$probe + movl 0(%r11),%eax + movq 4(%r11),%r10 + btq $61,%r10 + jc aesni_cbc_sha256_enc_shaext + movq %r10,%r11 + shrq $32,%r11 + + testl $2048,%r10d + jnz aesni_cbc_sha256_enc_xop + andl $296,%r11d + cmpl $296,%r11d + je aesni_cbc_sha256_enc_avx2 + andl $268435456,%r10d + jnz aesni_cbc_sha256_enc_avx + ud2 + xorl %eax,%eax + cmpq $0,%rdi + je L$probe + ud2 +L$probe: + .byte 0xf3,0xc3 + + + +.p2align 6 + +K256: +.long 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5 +.long 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5 +.long 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5 +.long 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5 +.long 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3 +.long 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3 +.long 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174 +.long 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174 +.long 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc +.long 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc +.long 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da +.long 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da +.long 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7 +.long 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7 +.long 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967 +.long 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967 +.long 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13 +.long 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13 +.long 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85 +.long 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85 +.long 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3 +.long 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3 +.long 0xd192e819,0xd6990624,0xf40e3585,0x106aa070 +.long 0xd192e819,0xd6990624,0xf40e3585,0x106aa070 +.long 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5 +.long 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5 +.long 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3 +.long 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3 +.long 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208 +.long 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208 +.long 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 +.long 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 + +.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f +.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f +.long 0,0,0,0, 0,0,0,0, -1,-1,-1,-1 +.long 0,0,0,0, 0,0,0,0 +.byte 65,69,83,78,73,45,67,66,67,43,83,72,65,50,53,54,32,115,116,105,116,99,104,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.p2align 6 + +.p2align 6 +aesni_cbc_sha256_enc_xop: + +L$xop_shortcut: + movq 8(%rsp),%r10 + movq %rsp,%rax + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + subq $128,%rsp + andq $-64,%rsp + + shlq $6,%rdx + subq %rdi,%rsi + subq %rdi,%r10 + addq %rdi,%rdx + + + movq %rsi,64+8(%rsp) + movq %rdx,64+16(%rsp) + + movq %r8,64+32(%rsp) + movq %r9,64+40(%rsp) + movq %r10,64+48(%rsp) + movq %rax,120(%rsp) + +L$prologue_xop: + vzeroall + + movq %rdi,%r12 + leaq 128(%rcx),%rdi + leaq K256+544(%rip),%r13 + movl 240-128(%rdi),%r14d + movq %r9,%r15 + movq %r10,%rsi + vmovdqu (%r8),%xmm8 + subq $9,%r14 + + movl 0(%r15),%eax + movl 4(%r15),%ebx + movl 8(%r15),%ecx + movl 12(%r15),%edx + movl 16(%r15),%r8d + movl 20(%r15),%r9d + movl 24(%r15),%r10d + movl 28(%r15),%r11d + + vmovdqa 0(%r13,%r14,8),%xmm14 + vmovdqa 16(%r13,%r14,8),%xmm13 + vmovdqa 32(%r13,%r14,8),%xmm12 + vmovdqu 0-128(%rdi),%xmm10 + jmp L$loop_xop +.p2align 4 +L$loop_xop: + vmovdqa K256+512(%rip),%xmm7 + vmovdqu 0(%rsi,%r12,1),%xmm0 + vmovdqu 16(%rsi,%r12,1),%xmm1 + vmovdqu 32(%rsi,%r12,1),%xmm2 + vmovdqu 48(%rsi,%r12,1),%xmm3 + vpshufb %xmm7,%xmm0,%xmm0 + leaq K256(%rip),%rbp + vpshufb %xmm7,%xmm1,%xmm1 + vpshufb %xmm7,%xmm2,%xmm2 + vpaddd 0(%rbp),%xmm0,%xmm4 + vpshufb %xmm7,%xmm3,%xmm3 + vpaddd 32(%rbp),%xmm1,%xmm5 + vpaddd 64(%rbp),%xmm2,%xmm6 + vpaddd 96(%rbp),%xmm3,%xmm7 + vmovdqa %xmm4,0(%rsp) + movl %eax,%r14d + vmovdqa %xmm5,16(%rsp) + movl %ebx,%esi + vmovdqa %xmm6,32(%rsp) + xorl %ecx,%esi + vmovdqa %xmm7,48(%rsp) + movl %r8d,%r13d + jmp L$xop_00_47 + +.p2align 4 +L$xop_00_47: + subq $-32*4,%rbp + vmovdqu (%r12),%xmm9 + movq %r12,64+0(%rsp) + vpalignr $4,%xmm0,%xmm1,%xmm4 + rorl $14,%r13d + movl %r14d,%eax + vpalignr $4,%xmm2,%xmm3,%xmm7 + movl %r9d,%r12d + xorl %r8d,%r13d +.byte 143,232,120,194,236,14 + rorl $9,%r14d + xorl %r10d,%r12d + vpsrld $3,%xmm4,%xmm4 + rorl $5,%r13d + xorl %eax,%r14d + vpaddd %xmm7,%xmm0,%xmm0 + andl %r8d,%r12d + vpxor %xmm10,%xmm9,%xmm9 + vmovdqu 16-128(%rdi),%xmm10 + xorl %r8d,%r13d + addl 0(%rsp),%r11d + movl %eax,%r15d +.byte 143,232,120,194,245,11 + rorl $11,%r14d + xorl %r10d,%r12d + vpxor %xmm5,%xmm4,%xmm4 + xorl %ebx,%r15d + rorl $6,%r13d + addl %r12d,%r11d + andl %r15d,%esi +.byte 143,232,120,194,251,13 + xorl %eax,%r14d + addl %r13d,%r11d + vpxor %xmm6,%xmm4,%xmm4 + xorl %ebx,%esi + addl %r11d,%edx + vpsrld $10,%xmm3,%xmm6 + rorl $2,%r14d + addl %esi,%r11d + vpaddd %xmm4,%xmm0,%xmm0 + movl %edx,%r13d + addl %r11d,%r14d +.byte 143,232,120,194,239,2 + rorl $14,%r13d + movl %r14d,%r11d + vpxor %xmm6,%xmm7,%xmm7 + movl %r8d,%r12d + xorl %edx,%r13d + rorl $9,%r14d + xorl %r9d,%r12d + vpxor %xmm5,%xmm7,%xmm7 + rorl $5,%r13d + xorl %r11d,%r14d + andl %edx,%r12d + vpxor %xmm8,%xmm9,%xmm9 + xorl %edx,%r13d + vpsrldq $8,%xmm7,%xmm7 + addl 4(%rsp),%r10d + movl %r11d,%esi + rorl $11,%r14d + xorl %r9d,%r12d + vpaddd %xmm7,%xmm0,%xmm0 + xorl %eax,%esi + rorl $6,%r13d + addl %r12d,%r10d + andl %esi,%r15d +.byte 143,232,120,194,248,13 + xorl %r11d,%r14d + addl %r13d,%r10d + vpsrld $10,%xmm0,%xmm6 + xorl %eax,%r15d + addl %r10d,%ecx +.byte 143,232,120,194,239,2 + rorl $2,%r14d + addl %r15d,%r10d + vpxor %xmm6,%xmm7,%xmm7 + movl %ecx,%r13d + addl %r10d,%r14d + rorl $14,%r13d + movl %r14d,%r10d + vpxor %xmm5,%xmm7,%xmm7 + movl %edx,%r12d + xorl %ecx,%r13d + rorl $9,%r14d + xorl %r8d,%r12d + vpslldq $8,%xmm7,%xmm7 + rorl $5,%r13d + xorl %r10d,%r14d + andl %ecx,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 32-128(%rdi),%xmm10 + xorl %ecx,%r13d + vpaddd %xmm7,%xmm0,%xmm0 + addl 8(%rsp),%r9d + movl %r10d,%r15d + rorl $11,%r14d + xorl %r8d,%r12d + vpaddd 0(%rbp),%xmm0,%xmm6 + xorl %r11d,%r15d + rorl $6,%r13d + addl %r12d,%r9d + andl %r15d,%esi + xorl %r10d,%r14d + addl %r13d,%r9d + xorl %r11d,%esi + addl %r9d,%ebx + rorl $2,%r14d + addl %esi,%r9d + movl %ebx,%r13d + addl %r9d,%r14d + rorl $14,%r13d + movl %r14d,%r9d + movl %ecx,%r12d + xorl %ebx,%r13d + rorl $9,%r14d + xorl %edx,%r12d + rorl $5,%r13d + xorl %r9d,%r14d + andl %ebx,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 48-128(%rdi),%xmm10 + xorl %ebx,%r13d + addl 12(%rsp),%r8d + movl %r9d,%esi + rorl $11,%r14d + xorl %edx,%r12d + xorl %r10d,%esi + rorl $6,%r13d + addl %r12d,%r8d + andl %esi,%r15d + xorl %r9d,%r14d + addl %r13d,%r8d + xorl %r10d,%r15d + addl %r8d,%eax + rorl $2,%r14d + addl %r15d,%r8d + movl %eax,%r13d + addl %r8d,%r14d + vmovdqa %xmm6,0(%rsp) + vpalignr $4,%xmm1,%xmm2,%xmm4 + rorl $14,%r13d + movl %r14d,%r8d + vpalignr $4,%xmm3,%xmm0,%xmm7 + movl %ebx,%r12d + xorl %eax,%r13d +.byte 143,232,120,194,236,14 + rorl $9,%r14d + xorl %ecx,%r12d + vpsrld $3,%xmm4,%xmm4 + rorl $5,%r13d + xorl %r8d,%r14d + vpaddd %xmm7,%xmm1,%xmm1 + andl %eax,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 64-128(%rdi),%xmm10 + xorl %eax,%r13d + addl 16(%rsp),%edx + movl %r8d,%r15d +.byte 143,232,120,194,245,11 + rorl $11,%r14d + xorl %ecx,%r12d + vpxor %xmm5,%xmm4,%xmm4 + xorl %r9d,%r15d + rorl $6,%r13d + addl %r12d,%edx + andl %r15d,%esi +.byte 143,232,120,194,248,13 + xorl %r8d,%r14d + addl %r13d,%edx + vpxor %xmm6,%xmm4,%xmm4 + xorl %r9d,%esi + addl %edx,%r11d + vpsrld $10,%xmm0,%xmm6 + rorl $2,%r14d + addl %esi,%edx + vpaddd %xmm4,%xmm1,%xmm1 + movl %r11d,%r13d + addl %edx,%r14d +.byte 143,232,120,194,239,2 + rorl $14,%r13d + movl %r14d,%edx + vpxor %xmm6,%xmm7,%xmm7 + movl %eax,%r12d + xorl %r11d,%r13d + rorl $9,%r14d + xorl %ebx,%r12d + vpxor %xmm5,%xmm7,%xmm7 + rorl $5,%r13d + xorl %edx,%r14d + andl %r11d,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 80-128(%rdi),%xmm10 + xorl %r11d,%r13d + vpsrldq $8,%xmm7,%xmm7 + addl 20(%rsp),%ecx + movl %edx,%esi + rorl $11,%r14d + xorl %ebx,%r12d + vpaddd %xmm7,%xmm1,%xmm1 + xorl %r8d,%esi + rorl $6,%r13d + addl %r12d,%ecx + andl %esi,%r15d +.byte 143,232,120,194,249,13 + xorl %edx,%r14d + addl %r13d,%ecx + vpsrld $10,%xmm1,%xmm6 + xorl %r8d,%r15d + addl %ecx,%r10d +.byte 143,232,120,194,239,2 + rorl $2,%r14d + addl %r15d,%ecx + vpxor %xmm6,%xmm7,%xmm7 + movl %r10d,%r13d + addl %ecx,%r14d + rorl $14,%r13d + movl %r14d,%ecx + vpxor %xmm5,%xmm7,%xmm7 + movl %r11d,%r12d + xorl %r10d,%r13d + rorl $9,%r14d + xorl %eax,%r12d + vpslldq $8,%xmm7,%xmm7 + rorl $5,%r13d + xorl %ecx,%r14d + andl %r10d,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 96-128(%rdi),%xmm10 + xorl %r10d,%r13d + vpaddd %xmm7,%xmm1,%xmm1 + addl 24(%rsp),%ebx + movl %ecx,%r15d + rorl $11,%r14d + xorl %eax,%r12d + vpaddd 32(%rbp),%xmm1,%xmm6 + xorl %edx,%r15d + rorl $6,%r13d + addl %r12d,%ebx + andl %r15d,%esi + xorl %ecx,%r14d + addl %r13d,%ebx + xorl %edx,%esi + addl %ebx,%r9d + rorl $2,%r14d + addl %esi,%ebx + movl %r9d,%r13d + addl %ebx,%r14d + rorl $14,%r13d + movl %r14d,%ebx + movl %r10d,%r12d + xorl %r9d,%r13d + rorl $9,%r14d + xorl %r11d,%r12d + rorl $5,%r13d + xorl %ebx,%r14d + andl %r9d,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 112-128(%rdi),%xmm10 + xorl %r9d,%r13d + addl 28(%rsp),%eax + movl %ebx,%esi + rorl $11,%r14d + xorl %r11d,%r12d + xorl %ecx,%esi + rorl $6,%r13d + addl %r12d,%eax + andl %esi,%r15d + xorl %ebx,%r14d + addl %r13d,%eax + xorl %ecx,%r15d + addl %eax,%r8d + rorl $2,%r14d + addl %r15d,%eax + movl %r8d,%r13d + addl %eax,%r14d + vmovdqa %xmm6,16(%rsp) + vpalignr $4,%xmm2,%xmm3,%xmm4 + rorl $14,%r13d + movl %r14d,%eax + vpalignr $4,%xmm0,%xmm1,%xmm7 + movl %r9d,%r12d + xorl %r8d,%r13d +.byte 143,232,120,194,236,14 + rorl $9,%r14d + xorl %r10d,%r12d + vpsrld $3,%xmm4,%xmm4 + rorl $5,%r13d + xorl %eax,%r14d + vpaddd %xmm7,%xmm2,%xmm2 + andl %r8d,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 128-128(%rdi),%xmm10 + xorl %r8d,%r13d + addl 32(%rsp),%r11d + movl %eax,%r15d +.byte 143,232,120,194,245,11 + rorl $11,%r14d + xorl %r10d,%r12d + vpxor %xmm5,%xmm4,%xmm4 + xorl %ebx,%r15d + rorl $6,%r13d + addl %r12d,%r11d + andl %r15d,%esi +.byte 143,232,120,194,249,13 + xorl %eax,%r14d + addl %r13d,%r11d + vpxor %xmm6,%xmm4,%xmm4 + xorl %ebx,%esi + addl %r11d,%edx + vpsrld $10,%xmm1,%xmm6 + rorl $2,%r14d + addl %esi,%r11d + vpaddd %xmm4,%xmm2,%xmm2 + movl %edx,%r13d + addl %r11d,%r14d +.byte 143,232,120,194,239,2 + rorl $14,%r13d + movl %r14d,%r11d + vpxor %xmm6,%xmm7,%xmm7 + movl %r8d,%r12d + xorl %edx,%r13d + rorl $9,%r14d + xorl %r9d,%r12d + vpxor %xmm5,%xmm7,%xmm7 + rorl $5,%r13d + xorl %r11d,%r14d + andl %edx,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 144-128(%rdi),%xmm10 + xorl %edx,%r13d + vpsrldq $8,%xmm7,%xmm7 + addl 36(%rsp),%r10d + movl %r11d,%esi + rorl $11,%r14d + xorl %r9d,%r12d + vpaddd %xmm7,%xmm2,%xmm2 + xorl %eax,%esi + rorl $6,%r13d + addl %r12d,%r10d + andl %esi,%r15d +.byte 143,232,120,194,250,13 + xorl %r11d,%r14d + addl %r13d,%r10d + vpsrld $10,%xmm2,%xmm6 + xorl %eax,%r15d + addl %r10d,%ecx +.byte 143,232,120,194,239,2 + rorl $2,%r14d + addl %r15d,%r10d + vpxor %xmm6,%xmm7,%xmm7 + movl %ecx,%r13d + addl %r10d,%r14d + rorl $14,%r13d + movl %r14d,%r10d + vpxor %xmm5,%xmm7,%xmm7 + movl %edx,%r12d + xorl %ecx,%r13d + rorl $9,%r14d + xorl %r8d,%r12d + vpslldq $8,%xmm7,%xmm7 + rorl $5,%r13d + xorl %r10d,%r14d + andl %ecx,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 160-128(%rdi),%xmm10 + xorl %ecx,%r13d + vpaddd %xmm7,%xmm2,%xmm2 + addl 40(%rsp),%r9d + movl %r10d,%r15d + rorl $11,%r14d + xorl %r8d,%r12d + vpaddd 64(%rbp),%xmm2,%xmm6 + xorl %r11d,%r15d + rorl $6,%r13d + addl %r12d,%r9d + andl %r15d,%esi + xorl %r10d,%r14d + addl %r13d,%r9d + xorl %r11d,%esi + addl %r9d,%ebx + rorl $2,%r14d + addl %esi,%r9d + movl %ebx,%r13d + addl %r9d,%r14d + rorl $14,%r13d + movl %r14d,%r9d + movl %ecx,%r12d + xorl %ebx,%r13d + rorl $9,%r14d + xorl %edx,%r12d + rorl $5,%r13d + xorl %r9d,%r14d + andl %ebx,%r12d + vaesenclast %xmm10,%xmm9,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 176-128(%rdi),%xmm10 + xorl %ebx,%r13d + addl 44(%rsp),%r8d + movl %r9d,%esi + rorl $11,%r14d + xorl %edx,%r12d + xorl %r10d,%esi + rorl $6,%r13d + addl %r12d,%r8d + andl %esi,%r15d + xorl %r9d,%r14d + addl %r13d,%r8d + xorl %r10d,%r15d + addl %r8d,%eax + rorl $2,%r14d + addl %r15d,%r8d + movl %eax,%r13d + addl %r8d,%r14d + vmovdqa %xmm6,32(%rsp) + vpalignr $4,%xmm3,%xmm0,%xmm4 + rorl $14,%r13d + movl %r14d,%r8d + vpalignr $4,%xmm1,%xmm2,%xmm7 + movl %ebx,%r12d + xorl %eax,%r13d +.byte 143,232,120,194,236,14 + rorl $9,%r14d + xorl %ecx,%r12d + vpsrld $3,%xmm4,%xmm4 + rorl $5,%r13d + xorl %r8d,%r14d + vpaddd %xmm7,%xmm3,%xmm3 + andl %eax,%r12d + vpand %xmm12,%xmm11,%xmm8 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 192-128(%rdi),%xmm10 + xorl %eax,%r13d + addl 48(%rsp),%edx + movl %r8d,%r15d +.byte 143,232,120,194,245,11 + rorl $11,%r14d + xorl %ecx,%r12d + vpxor %xmm5,%xmm4,%xmm4 + xorl %r9d,%r15d + rorl $6,%r13d + addl %r12d,%edx + andl %r15d,%esi +.byte 143,232,120,194,250,13 + xorl %r8d,%r14d + addl %r13d,%edx + vpxor %xmm6,%xmm4,%xmm4 + xorl %r9d,%esi + addl %edx,%r11d + vpsrld $10,%xmm2,%xmm6 + rorl $2,%r14d + addl %esi,%edx + vpaddd %xmm4,%xmm3,%xmm3 + movl %r11d,%r13d + addl %edx,%r14d +.byte 143,232,120,194,239,2 + rorl $14,%r13d + movl %r14d,%edx + vpxor %xmm6,%xmm7,%xmm7 + movl %eax,%r12d + xorl %r11d,%r13d + rorl $9,%r14d + xorl %ebx,%r12d + vpxor %xmm5,%xmm7,%xmm7 + rorl $5,%r13d + xorl %edx,%r14d + andl %r11d,%r12d + vaesenclast %xmm10,%xmm9,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 208-128(%rdi),%xmm10 + xorl %r11d,%r13d + vpsrldq $8,%xmm7,%xmm7 + addl 52(%rsp),%ecx + movl %edx,%esi + rorl $11,%r14d + xorl %ebx,%r12d + vpaddd %xmm7,%xmm3,%xmm3 + xorl %r8d,%esi + rorl $6,%r13d + addl %r12d,%ecx + andl %esi,%r15d +.byte 143,232,120,194,251,13 + xorl %edx,%r14d + addl %r13d,%ecx + vpsrld $10,%xmm3,%xmm6 + xorl %r8d,%r15d + addl %ecx,%r10d +.byte 143,232,120,194,239,2 + rorl $2,%r14d + addl %r15d,%ecx + vpxor %xmm6,%xmm7,%xmm7 + movl %r10d,%r13d + addl %ecx,%r14d + rorl $14,%r13d + movl %r14d,%ecx + vpxor %xmm5,%xmm7,%xmm7 + movl %r11d,%r12d + xorl %r10d,%r13d + rorl $9,%r14d + xorl %eax,%r12d + vpslldq $8,%xmm7,%xmm7 + rorl $5,%r13d + xorl %ecx,%r14d + andl %r10d,%r12d + vpand %xmm13,%xmm11,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 224-128(%rdi),%xmm10 + xorl %r10d,%r13d + vpaddd %xmm7,%xmm3,%xmm3 + addl 56(%rsp),%ebx + movl %ecx,%r15d + rorl $11,%r14d + xorl %eax,%r12d + vpaddd 96(%rbp),%xmm3,%xmm6 + xorl %edx,%r15d + rorl $6,%r13d + addl %r12d,%ebx + andl %r15d,%esi + xorl %ecx,%r14d + addl %r13d,%ebx + xorl %edx,%esi + addl %ebx,%r9d + rorl $2,%r14d + addl %esi,%ebx + movl %r9d,%r13d + addl %ebx,%r14d + rorl $14,%r13d + movl %r14d,%ebx + movl %r10d,%r12d + xorl %r9d,%r13d + rorl $9,%r14d + xorl %r11d,%r12d + rorl $5,%r13d + xorl %ebx,%r14d + andl %r9d,%r12d + vpor %xmm11,%xmm8,%xmm8 + vaesenclast %xmm10,%xmm9,%xmm11 + vmovdqu 0-128(%rdi),%xmm10 + xorl %r9d,%r13d + addl 60(%rsp),%eax + movl %ebx,%esi + rorl $11,%r14d + xorl %r11d,%r12d + xorl %ecx,%esi + rorl $6,%r13d + addl %r12d,%eax + andl %esi,%r15d + xorl %ebx,%r14d + addl %r13d,%eax + xorl %ecx,%r15d + addl %eax,%r8d + rorl $2,%r14d + addl %r15d,%eax + movl %r8d,%r13d + addl %eax,%r14d + vmovdqa %xmm6,48(%rsp) + movq 64+0(%rsp),%r12 + vpand %xmm14,%xmm11,%xmm11 + movq 64+8(%rsp),%r15 + vpor %xmm11,%xmm8,%xmm8 + vmovdqu %xmm8,(%r15,%r12,1) + leaq 16(%r12),%r12 + cmpb $0,131(%rbp) + jne L$xop_00_47 + vmovdqu (%r12),%xmm9 + movq %r12,64+0(%rsp) + rorl $14,%r13d + movl %r14d,%eax + movl %r9d,%r12d + xorl %r8d,%r13d + rorl $9,%r14d + xorl %r10d,%r12d + rorl $5,%r13d + xorl %eax,%r14d + andl %r8d,%r12d + vpxor %xmm10,%xmm9,%xmm9 + vmovdqu 16-128(%rdi),%xmm10 + xorl %r8d,%r13d + addl 0(%rsp),%r11d + movl %eax,%r15d + rorl $11,%r14d + xorl %r10d,%r12d + xorl %ebx,%r15d + rorl $6,%r13d + addl %r12d,%r11d + andl %r15d,%esi + xorl %eax,%r14d + addl %r13d,%r11d + xorl %ebx,%esi + addl %r11d,%edx + rorl $2,%r14d + addl %esi,%r11d + movl %edx,%r13d + addl %r11d,%r14d + rorl $14,%r13d + movl %r14d,%r11d + movl %r8d,%r12d + xorl %edx,%r13d + rorl $9,%r14d + xorl %r9d,%r12d + rorl $5,%r13d + xorl %r11d,%r14d + andl %edx,%r12d + vpxor %xmm8,%xmm9,%xmm9 + xorl %edx,%r13d + addl 4(%rsp),%r10d + movl %r11d,%esi + rorl $11,%r14d + xorl %r9d,%r12d + xorl %eax,%esi + rorl $6,%r13d + addl %r12d,%r10d + andl %esi,%r15d + xorl %r11d,%r14d + addl %r13d,%r10d + xorl %eax,%r15d + addl %r10d,%ecx + rorl $2,%r14d + addl %r15d,%r10d + movl %ecx,%r13d + addl %r10d,%r14d + rorl $14,%r13d + movl %r14d,%r10d + movl %edx,%r12d + xorl %ecx,%r13d + rorl $9,%r14d + xorl %r8d,%r12d + rorl $5,%r13d + xorl %r10d,%r14d + andl %ecx,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 32-128(%rdi),%xmm10 + xorl %ecx,%r13d + addl 8(%rsp),%r9d + movl %r10d,%r15d + rorl $11,%r14d + xorl %r8d,%r12d + xorl %r11d,%r15d + rorl $6,%r13d + addl %r12d,%r9d + andl %r15d,%esi + xorl %r10d,%r14d + addl %r13d,%r9d + xorl %r11d,%esi + addl %r9d,%ebx + rorl $2,%r14d + addl %esi,%r9d + movl %ebx,%r13d + addl %r9d,%r14d + rorl $14,%r13d + movl %r14d,%r9d + movl %ecx,%r12d + xorl %ebx,%r13d + rorl $9,%r14d + xorl %edx,%r12d + rorl $5,%r13d + xorl %r9d,%r14d + andl %ebx,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 48-128(%rdi),%xmm10 + xorl %ebx,%r13d + addl 12(%rsp),%r8d + movl %r9d,%esi + rorl $11,%r14d + xorl %edx,%r12d + xorl %r10d,%esi + rorl $6,%r13d + addl %r12d,%r8d + andl %esi,%r15d + xorl %r9d,%r14d + addl %r13d,%r8d + xorl %r10d,%r15d + addl %r8d,%eax + rorl $2,%r14d + addl %r15d,%r8d + movl %eax,%r13d + addl %r8d,%r14d + rorl $14,%r13d + movl %r14d,%r8d + movl %ebx,%r12d + xorl %eax,%r13d + rorl $9,%r14d + xorl %ecx,%r12d + rorl $5,%r13d + xorl %r8d,%r14d + andl %eax,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 64-128(%rdi),%xmm10 + xorl %eax,%r13d + addl 16(%rsp),%edx + movl %r8d,%r15d + rorl $11,%r14d + xorl %ecx,%r12d + xorl %r9d,%r15d + rorl $6,%r13d + addl %r12d,%edx + andl %r15d,%esi + xorl %r8d,%r14d + addl %r13d,%edx + xorl %r9d,%esi + addl %edx,%r11d + rorl $2,%r14d + addl %esi,%edx + movl %r11d,%r13d + addl %edx,%r14d + rorl $14,%r13d + movl %r14d,%edx + movl %eax,%r12d + xorl %r11d,%r13d + rorl $9,%r14d + xorl %ebx,%r12d + rorl $5,%r13d + xorl %edx,%r14d + andl %r11d,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 80-128(%rdi),%xmm10 + xorl %r11d,%r13d + addl 20(%rsp),%ecx + movl %edx,%esi + rorl $11,%r14d + xorl %ebx,%r12d + xorl %r8d,%esi + rorl $6,%r13d + addl %r12d,%ecx + andl %esi,%r15d + xorl %edx,%r14d + addl %r13d,%ecx + xorl %r8d,%r15d + addl %ecx,%r10d + rorl $2,%r14d + addl %r15d,%ecx + movl %r10d,%r13d + addl %ecx,%r14d + rorl $14,%r13d + movl %r14d,%ecx + movl %r11d,%r12d + xorl %r10d,%r13d + rorl $9,%r14d + xorl %eax,%r12d + rorl $5,%r13d + xorl %ecx,%r14d + andl %r10d,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 96-128(%rdi),%xmm10 + xorl %r10d,%r13d + addl 24(%rsp),%ebx + movl %ecx,%r15d + rorl $11,%r14d + xorl %eax,%r12d + xorl %edx,%r15d + rorl $6,%r13d + addl %r12d,%ebx + andl %r15d,%esi + xorl %ecx,%r14d + addl %r13d,%ebx + xorl %edx,%esi + addl %ebx,%r9d + rorl $2,%r14d + addl %esi,%ebx + movl %r9d,%r13d + addl %ebx,%r14d + rorl $14,%r13d + movl %r14d,%ebx + movl %r10d,%r12d + xorl %r9d,%r13d + rorl $9,%r14d + xorl %r11d,%r12d + rorl $5,%r13d + xorl %ebx,%r14d + andl %r9d,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 112-128(%rdi),%xmm10 + xorl %r9d,%r13d + addl 28(%rsp),%eax + movl %ebx,%esi + rorl $11,%r14d + xorl %r11d,%r12d + xorl %ecx,%esi + rorl $6,%r13d + addl %r12d,%eax + andl %esi,%r15d + xorl %ebx,%r14d + addl %r13d,%eax + xorl %ecx,%r15d + addl %eax,%r8d + rorl $2,%r14d + addl %r15d,%eax + movl %r8d,%r13d + addl %eax,%r14d + rorl $14,%r13d + movl %r14d,%eax + movl %r9d,%r12d + xorl %r8d,%r13d + rorl $9,%r14d + xorl %r10d,%r12d + rorl $5,%r13d + xorl %eax,%r14d + andl %r8d,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 128-128(%rdi),%xmm10 + xorl %r8d,%r13d + addl 32(%rsp),%r11d + movl %eax,%r15d + rorl $11,%r14d + xorl %r10d,%r12d + xorl %ebx,%r15d + rorl $6,%r13d + addl %r12d,%r11d + andl %r15d,%esi + xorl %eax,%r14d + addl %r13d,%r11d + xorl %ebx,%esi + addl %r11d,%edx + rorl $2,%r14d + addl %esi,%r11d + movl %edx,%r13d + addl %r11d,%r14d + rorl $14,%r13d + movl %r14d,%r11d + movl %r8d,%r12d + xorl %edx,%r13d + rorl $9,%r14d + xorl %r9d,%r12d + rorl $5,%r13d + xorl %r11d,%r14d + andl %edx,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 144-128(%rdi),%xmm10 + xorl %edx,%r13d + addl 36(%rsp),%r10d + movl %r11d,%esi + rorl $11,%r14d + xorl %r9d,%r12d + xorl %eax,%esi + rorl $6,%r13d + addl %r12d,%r10d + andl %esi,%r15d + xorl %r11d,%r14d + addl %r13d,%r10d + xorl %eax,%r15d + addl %r10d,%ecx + rorl $2,%r14d + addl %r15d,%r10d + movl %ecx,%r13d + addl %r10d,%r14d + rorl $14,%r13d + movl %r14d,%r10d + movl %edx,%r12d + xorl %ecx,%r13d + rorl $9,%r14d + xorl %r8d,%r12d + rorl $5,%r13d + xorl %r10d,%r14d + andl %ecx,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 160-128(%rdi),%xmm10 + xorl %ecx,%r13d + addl 40(%rsp),%r9d + movl %r10d,%r15d + rorl $11,%r14d + xorl %r8d,%r12d + xorl %r11d,%r15d + rorl $6,%r13d + addl %r12d,%r9d + andl %r15d,%esi + xorl %r10d,%r14d + addl %r13d,%r9d + xorl %r11d,%esi + addl %r9d,%ebx + rorl $2,%r14d + addl %esi,%r9d + movl %ebx,%r13d + addl %r9d,%r14d + rorl $14,%r13d + movl %r14d,%r9d + movl %ecx,%r12d + xorl %ebx,%r13d + rorl $9,%r14d + xorl %edx,%r12d + rorl $5,%r13d + xorl %r9d,%r14d + andl %ebx,%r12d + vaesenclast %xmm10,%xmm9,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 176-128(%rdi),%xmm10 + xorl %ebx,%r13d + addl 44(%rsp),%r8d + movl %r9d,%esi + rorl $11,%r14d + xorl %edx,%r12d + xorl %r10d,%esi + rorl $6,%r13d + addl %r12d,%r8d + andl %esi,%r15d + xorl %r9d,%r14d + addl %r13d,%r8d + xorl %r10d,%r15d + addl %r8d,%eax + rorl $2,%r14d + addl %r15d,%r8d + movl %eax,%r13d + addl %r8d,%r14d + rorl $14,%r13d + movl %r14d,%r8d + movl %ebx,%r12d + xorl %eax,%r13d + rorl $9,%r14d + xorl %ecx,%r12d + rorl $5,%r13d + xorl %r8d,%r14d + andl %eax,%r12d + vpand %xmm12,%xmm11,%xmm8 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 192-128(%rdi),%xmm10 + xorl %eax,%r13d + addl 48(%rsp),%edx + movl %r8d,%r15d + rorl $11,%r14d + xorl %ecx,%r12d + xorl %r9d,%r15d + rorl $6,%r13d + addl %r12d,%edx + andl %r15d,%esi + xorl %r8d,%r14d + addl %r13d,%edx + xorl %r9d,%esi + addl %edx,%r11d + rorl $2,%r14d + addl %esi,%edx + movl %r11d,%r13d + addl %edx,%r14d + rorl $14,%r13d + movl %r14d,%edx + movl %eax,%r12d + xorl %r11d,%r13d + rorl $9,%r14d + xorl %ebx,%r12d + rorl $5,%r13d + xorl %edx,%r14d + andl %r11d,%r12d + vaesenclast %xmm10,%xmm9,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 208-128(%rdi),%xmm10 + xorl %r11d,%r13d + addl 52(%rsp),%ecx + movl %edx,%esi + rorl $11,%r14d + xorl %ebx,%r12d + xorl %r8d,%esi + rorl $6,%r13d + addl %r12d,%ecx + andl %esi,%r15d + xorl %edx,%r14d + addl %r13d,%ecx + xorl %r8d,%r15d + addl %ecx,%r10d + rorl $2,%r14d + addl %r15d,%ecx + movl %r10d,%r13d + addl %ecx,%r14d + rorl $14,%r13d + movl %r14d,%ecx + movl %r11d,%r12d + xorl %r10d,%r13d + rorl $9,%r14d + xorl %eax,%r12d + rorl $5,%r13d + xorl %ecx,%r14d + andl %r10d,%r12d + vpand %xmm13,%xmm11,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 224-128(%rdi),%xmm10 + xorl %r10d,%r13d + addl 56(%rsp),%ebx + movl %ecx,%r15d + rorl $11,%r14d + xorl %eax,%r12d + xorl %edx,%r15d + rorl $6,%r13d + addl %r12d,%ebx + andl %r15d,%esi + xorl %ecx,%r14d + addl %r13d,%ebx + xorl %edx,%esi + addl %ebx,%r9d + rorl $2,%r14d + addl %esi,%ebx + movl %r9d,%r13d + addl %ebx,%r14d + rorl $14,%r13d + movl %r14d,%ebx + movl %r10d,%r12d + xorl %r9d,%r13d + rorl $9,%r14d + xorl %r11d,%r12d + rorl $5,%r13d + xorl %ebx,%r14d + andl %r9d,%r12d + vpor %xmm11,%xmm8,%xmm8 + vaesenclast %xmm10,%xmm9,%xmm11 + vmovdqu 0-128(%rdi),%xmm10 + xorl %r9d,%r13d + addl 60(%rsp),%eax + movl %ebx,%esi + rorl $11,%r14d + xorl %r11d,%r12d + xorl %ecx,%esi + rorl $6,%r13d + addl %r12d,%eax + andl %esi,%r15d + xorl %ebx,%r14d + addl %r13d,%eax + xorl %ecx,%r15d + addl %eax,%r8d + rorl $2,%r14d + addl %r15d,%eax + movl %r8d,%r13d + addl %eax,%r14d + movq 64+0(%rsp),%r12 + movq 64+8(%rsp),%r13 + movq 64+40(%rsp),%r15 + movq 64+48(%rsp),%rsi + + vpand %xmm14,%xmm11,%xmm11 + movl %r14d,%eax + vpor %xmm11,%xmm8,%xmm8 + vmovdqu %xmm8,(%r12,%r13,1) + leaq 16(%r12),%r12 + + addl 0(%r15),%eax + addl 4(%r15),%ebx + addl 8(%r15),%ecx + addl 12(%r15),%edx + addl 16(%r15),%r8d + addl 20(%r15),%r9d + addl 24(%r15),%r10d + addl 28(%r15),%r11d + + cmpq 64+16(%rsp),%r12 + + movl %eax,0(%r15) + movl %ebx,4(%r15) + movl %ecx,8(%r15) + movl %edx,12(%r15) + movl %r8d,16(%r15) + movl %r9d,20(%r15) + movl %r10d,24(%r15) + movl %r11d,28(%r15) + + jb L$loop_xop + + movq 64+32(%rsp),%r8 + movq 120(%rsp),%rsi + + vmovdqu %xmm8,(%r8) + vzeroall + movq -48(%rsi),%r15 + + movq -40(%rsi),%r14 + + movq -32(%rsi),%r13 + + movq -24(%rsi),%r12 + + movq -16(%rsi),%rbp + + movq -8(%rsi),%rbx + + leaq (%rsi),%rsp + +L$epilogue_xop: + .byte 0xf3,0xc3 + + + +.p2align 6 +aesni_cbc_sha256_enc_avx: + +L$avx_shortcut: + movq 8(%rsp),%r10 + movq %rsp,%rax + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + subq $128,%rsp + andq $-64,%rsp + + shlq $6,%rdx + subq %rdi,%rsi + subq %rdi,%r10 + addq %rdi,%rdx + + + movq %rsi,64+8(%rsp) + movq %rdx,64+16(%rsp) + + movq %r8,64+32(%rsp) + movq %r9,64+40(%rsp) + movq %r10,64+48(%rsp) + movq %rax,120(%rsp) + +L$prologue_avx: + vzeroall + + movq %rdi,%r12 + leaq 128(%rcx),%rdi + leaq K256+544(%rip),%r13 + movl 240-128(%rdi),%r14d + movq %r9,%r15 + movq %r10,%rsi + vmovdqu (%r8),%xmm8 + subq $9,%r14 + + movl 0(%r15),%eax + movl 4(%r15),%ebx + movl 8(%r15),%ecx + movl 12(%r15),%edx + movl 16(%r15),%r8d + movl 20(%r15),%r9d + movl 24(%r15),%r10d + movl 28(%r15),%r11d + + vmovdqa 0(%r13,%r14,8),%xmm14 + vmovdqa 16(%r13,%r14,8),%xmm13 + vmovdqa 32(%r13,%r14,8),%xmm12 + vmovdqu 0-128(%rdi),%xmm10 + jmp L$loop_avx +.p2align 4 +L$loop_avx: + vmovdqa K256+512(%rip),%xmm7 + vmovdqu 0(%rsi,%r12,1),%xmm0 + vmovdqu 16(%rsi,%r12,1),%xmm1 + vmovdqu 32(%rsi,%r12,1),%xmm2 + vmovdqu 48(%rsi,%r12,1),%xmm3 + vpshufb %xmm7,%xmm0,%xmm0 + leaq K256(%rip),%rbp + vpshufb %xmm7,%xmm1,%xmm1 + vpshufb %xmm7,%xmm2,%xmm2 + vpaddd 0(%rbp),%xmm0,%xmm4 + vpshufb %xmm7,%xmm3,%xmm3 + vpaddd 32(%rbp),%xmm1,%xmm5 + vpaddd 64(%rbp),%xmm2,%xmm6 + vpaddd 96(%rbp),%xmm3,%xmm7 + vmovdqa %xmm4,0(%rsp) + movl %eax,%r14d + vmovdqa %xmm5,16(%rsp) + movl %ebx,%esi + vmovdqa %xmm6,32(%rsp) + xorl %ecx,%esi + vmovdqa %xmm7,48(%rsp) + movl %r8d,%r13d + jmp L$avx_00_47 + +.p2align 4 +L$avx_00_47: + subq $-32*4,%rbp + vmovdqu (%r12),%xmm9 + movq %r12,64+0(%rsp) + vpalignr $4,%xmm0,%xmm1,%xmm4 + shrdl $14,%r13d,%r13d + movl %r14d,%eax + movl %r9d,%r12d + vpalignr $4,%xmm2,%xmm3,%xmm7 + xorl %r8d,%r13d + shrdl $9,%r14d,%r14d + xorl %r10d,%r12d + vpsrld $7,%xmm4,%xmm6 + shrdl $5,%r13d,%r13d + xorl %eax,%r14d + andl %r8d,%r12d + vpaddd %xmm7,%xmm0,%xmm0 + vpxor %xmm10,%xmm9,%xmm9 + vmovdqu 16-128(%rdi),%xmm10 + xorl %r8d,%r13d + addl 0(%rsp),%r11d + movl %eax,%r15d + vpsrld $3,%xmm4,%xmm7 + shrdl $11,%r14d,%r14d + xorl %r10d,%r12d + xorl %ebx,%r15d + vpslld $14,%xmm4,%xmm5 + shrdl $6,%r13d,%r13d + addl %r12d,%r11d + andl %r15d,%esi + vpxor %xmm6,%xmm7,%xmm4 + xorl %eax,%r14d + addl %r13d,%r11d + xorl %ebx,%esi + vpshufd $250,%xmm3,%xmm7 + addl %r11d,%edx + shrdl $2,%r14d,%r14d + addl %esi,%r11d + vpsrld $11,%xmm6,%xmm6 + movl %edx,%r13d + addl %r11d,%r14d + shrdl $14,%r13d,%r13d + vpxor %xmm5,%xmm4,%xmm4 + movl %r14d,%r11d + movl %r8d,%r12d + xorl %edx,%r13d + vpslld $11,%xmm5,%xmm5 + shrdl $9,%r14d,%r14d + xorl %r9d,%r12d + shrdl $5,%r13d,%r13d + vpxor %xmm6,%xmm4,%xmm4 + xorl %r11d,%r14d + andl %edx,%r12d + vpxor %xmm8,%xmm9,%xmm9 + xorl %edx,%r13d + vpsrld $10,%xmm7,%xmm6 + addl 4(%rsp),%r10d + movl %r11d,%esi + shrdl $11,%r14d,%r14d + vpxor %xmm5,%xmm4,%xmm4 + xorl %r9d,%r12d + xorl %eax,%esi + shrdl $6,%r13d,%r13d + vpsrlq $17,%xmm7,%xmm7 + addl %r12d,%r10d + andl %esi,%r15d + xorl %r11d,%r14d + vpaddd %xmm4,%xmm0,%xmm0 + addl %r13d,%r10d + xorl %eax,%r15d + addl %r10d,%ecx + vpxor %xmm7,%xmm6,%xmm6 + shrdl $2,%r14d,%r14d + addl %r15d,%r10d + movl %ecx,%r13d + vpsrlq $2,%xmm7,%xmm7 + addl %r10d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r10d + vpxor %xmm7,%xmm6,%xmm6 + movl %edx,%r12d + xorl %ecx,%r13d + shrdl $9,%r14d,%r14d + vpshufd $132,%xmm6,%xmm6 + xorl %r8d,%r12d + shrdl $5,%r13d,%r13d + xorl %r10d,%r14d + vpsrldq $8,%xmm6,%xmm6 + andl %ecx,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 32-128(%rdi),%xmm10 + xorl %ecx,%r13d + addl 8(%rsp),%r9d + vpaddd %xmm6,%xmm0,%xmm0 + movl %r10d,%r15d + shrdl $11,%r14d,%r14d + xorl %r8d,%r12d + vpshufd $80,%xmm0,%xmm7 + xorl %r11d,%r15d + shrdl $6,%r13d,%r13d + addl %r12d,%r9d + vpsrld $10,%xmm7,%xmm6 + andl %r15d,%esi + xorl %r10d,%r14d + addl %r13d,%r9d + vpsrlq $17,%xmm7,%xmm7 + xorl %r11d,%esi + addl %r9d,%ebx + shrdl $2,%r14d,%r14d + vpxor %xmm7,%xmm6,%xmm6 + addl %esi,%r9d + movl %ebx,%r13d + addl %r9d,%r14d + vpsrlq $2,%xmm7,%xmm7 + shrdl $14,%r13d,%r13d + movl %r14d,%r9d + movl %ecx,%r12d + vpxor %xmm7,%xmm6,%xmm6 + xorl %ebx,%r13d + shrdl $9,%r14d,%r14d + xorl %edx,%r12d + vpshufd $232,%xmm6,%xmm6 + shrdl $5,%r13d,%r13d + xorl %r9d,%r14d + andl %ebx,%r12d + vpslldq $8,%xmm6,%xmm6 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 48-128(%rdi),%xmm10 + xorl %ebx,%r13d + addl 12(%rsp),%r8d + movl %r9d,%esi + vpaddd %xmm6,%xmm0,%xmm0 + shrdl $11,%r14d,%r14d + xorl %edx,%r12d + xorl %r10d,%esi + vpaddd 0(%rbp),%xmm0,%xmm6 + shrdl $6,%r13d,%r13d + addl %r12d,%r8d + andl %esi,%r15d + xorl %r9d,%r14d + addl %r13d,%r8d + xorl %r10d,%r15d + addl %r8d,%eax + shrdl $2,%r14d,%r14d + addl %r15d,%r8d + movl %eax,%r13d + addl %r8d,%r14d + vmovdqa %xmm6,0(%rsp) + vpalignr $4,%xmm1,%xmm2,%xmm4 + shrdl $14,%r13d,%r13d + movl %r14d,%r8d + movl %ebx,%r12d + vpalignr $4,%xmm3,%xmm0,%xmm7 + xorl %eax,%r13d + shrdl $9,%r14d,%r14d + xorl %ecx,%r12d + vpsrld $7,%xmm4,%xmm6 + shrdl $5,%r13d,%r13d + xorl %r8d,%r14d + andl %eax,%r12d + vpaddd %xmm7,%xmm1,%xmm1 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 64-128(%rdi),%xmm10 + xorl %eax,%r13d + addl 16(%rsp),%edx + movl %r8d,%r15d + vpsrld $3,%xmm4,%xmm7 + shrdl $11,%r14d,%r14d + xorl %ecx,%r12d + xorl %r9d,%r15d + vpslld $14,%xmm4,%xmm5 + shrdl $6,%r13d,%r13d + addl %r12d,%edx + andl %r15d,%esi + vpxor %xmm6,%xmm7,%xmm4 + xorl %r8d,%r14d + addl %r13d,%edx + xorl %r9d,%esi + vpshufd $250,%xmm0,%xmm7 + addl %edx,%r11d + shrdl $2,%r14d,%r14d + addl %esi,%edx + vpsrld $11,%xmm6,%xmm6 + movl %r11d,%r13d + addl %edx,%r14d + shrdl $14,%r13d,%r13d + vpxor %xmm5,%xmm4,%xmm4 + movl %r14d,%edx + movl %eax,%r12d + xorl %r11d,%r13d + vpslld $11,%xmm5,%xmm5 + shrdl $9,%r14d,%r14d + xorl %ebx,%r12d + shrdl $5,%r13d,%r13d + vpxor %xmm6,%xmm4,%xmm4 + xorl %edx,%r14d + andl %r11d,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 80-128(%rdi),%xmm10 + xorl %r11d,%r13d + vpsrld $10,%xmm7,%xmm6 + addl 20(%rsp),%ecx + movl %edx,%esi + shrdl $11,%r14d,%r14d + vpxor %xmm5,%xmm4,%xmm4 + xorl %ebx,%r12d + xorl %r8d,%esi + shrdl $6,%r13d,%r13d + vpsrlq $17,%xmm7,%xmm7 + addl %r12d,%ecx + andl %esi,%r15d + xorl %edx,%r14d + vpaddd %xmm4,%xmm1,%xmm1 + addl %r13d,%ecx + xorl %r8d,%r15d + addl %ecx,%r10d + vpxor %xmm7,%xmm6,%xmm6 + shrdl $2,%r14d,%r14d + addl %r15d,%ecx + movl %r10d,%r13d + vpsrlq $2,%xmm7,%xmm7 + addl %ecx,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%ecx + vpxor %xmm7,%xmm6,%xmm6 + movl %r11d,%r12d + xorl %r10d,%r13d + shrdl $9,%r14d,%r14d + vpshufd $132,%xmm6,%xmm6 + xorl %eax,%r12d + shrdl $5,%r13d,%r13d + xorl %ecx,%r14d + vpsrldq $8,%xmm6,%xmm6 + andl %r10d,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 96-128(%rdi),%xmm10 + xorl %r10d,%r13d + addl 24(%rsp),%ebx + vpaddd %xmm6,%xmm1,%xmm1 + movl %ecx,%r15d + shrdl $11,%r14d,%r14d + xorl %eax,%r12d + vpshufd $80,%xmm1,%xmm7 + xorl %edx,%r15d + shrdl $6,%r13d,%r13d + addl %r12d,%ebx + vpsrld $10,%xmm7,%xmm6 + andl %r15d,%esi + xorl %ecx,%r14d + addl %r13d,%ebx + vpsrlq $17,%xmm7,%xmm7 + xorl %edx,%esi + addl %ebx,%r9d + shrdl $2,%r14d,%r14d + vpxor %xmm7,%xmm6,%xmm6 + addl %esi,%ebx + movl %r9d,%r13d + addl %ebx,%r14d + vpsrlq $2,%xmm7,%xmm7 + shrdl $14,%r13d,%r13d + movl %r14d,%ebx + movl %r10d,%r12d + vpxor %xmm7,%xmm6,%xmm6 + xorl %r9d,%r13d + shrdl $9,%r14d,%r14d + xorl %r11d,%r12d + vpshufd $232,%xmm6,%xmm6 + shrdl $5,%r13d,%r13d + xorl %ebx,%r14d + andl %r9d,%r12d + vpslldq $8,%xmm6,%xmm6 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 112-128(%rdi),%xmm10 + xorl %r9d,%r13d + addl 28(%rsp),%eax + movl %ebx,%esi + vpaddd %xmm6,%xmm1,%xmm1 + shrdl $11,%r14d,%r14d + xorl %r11d,%r12d + xorl %ecx,%esi + vpaddd 32(%rbp),%xmm1,%xmm6 + shrdl $6,%r13d,%r13d + addl %r12d,%eax + andl %esi,%r15d + xorl %ebx,%r14d + addl %r13d,%eax + xorl %ecx,%r15d + addl %eax,%r8d + shrdl $2,%r14d,%r14d + addl %r15d,%eax + movl %r8d,%r13d + addl %eax,%r14d + vmovdqa %xmm6,16(%rsp) + vpalignr $4,%xmm2,%xmm3,%xmm4 + shrdl $14,%r13d,%r13d + movl %r14d,%eax + movl %r9d,%r12d + vpalignr $4,%xmm0,%xmm1,%xmm7 + xorl %r8d,%r13d + shrdl $9,%r14d,%r14d + xorl %r10d,%r12d + vpsrld $7,%xmm4,%xmm6 + shrdl $5,%r13d,%r13d + xorl %eax,%r14d + andl %r8d,%r12d + vpaddd %xmm7,%xmm2,%xmm2 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 128-128(%rdi),%xmm10 + xorl %r8d,%r13d + addl 32(%rsp),%r11d + movl %eax,%r15d + vpsrld $3,%xmm4,%xmm7 + shrdl $11,%r14d,%r14d + xorl %r10d,%r12d + xorl %ebx,%r15d + vpslld $14,%xmm4,%xmm5 + shrdl $6,%r13d,%r13d + addl %r12d,%r11d + andl %r15d,%esi + vpxor %xmm6,%xmm7,%xmm4 + xorl %eax,%r14d + addl %r13d,%r11d + xorl %ebx,%esi + vpshufd $250,%xmm1,%xmm7 + addl %r11d,%edx + shrdl $2,%r14d,%r14d + addl %esi,%r11d + vpsrld $11,%xmm6,%xmm6 + movl %edx,%r13d + addl %r11d,%r14d + shrdl $14,%r13d,%r13d + vpxor %xmm5,%xmm4,%xmm4 + movl %r14d,%r11d + movl %r8d,%r12d + xorl %edx,%r13d + vpslld $11,%xmm5,%xmm5 + shrdl $9,%r14d,%r14d + xorl %r9d,%r12d + shrdl $5,%r13d,%r13d + vpxor %xmm6,%xmm4,%xmm4 + xorl %r11d,%r14d + andl %edx,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 144-128(%rdi),%xmm10 + xorl %edx,%r13d + vpsrld $10,%xmm7,%xmm6 + addl 36(%rsp),%r10d + movl %r11d,%esi + shrdl $11,%r14d,%r14d + vpxor %xmm5,%xmm4,%xmm4 + xorl %r9d,%r12d + xorl %eax,%esi + shrdl $6,%r13d,%r13d + vpsrlq $17,%xmm7,%xmm7 + addl %r12d,%r10d + andl %esi,%r15d + xorl %r11d,%r14d + vpaddd %xmm4,%xmm2,%xmm2 + addl %r13d,%r10d + xorl %eax,%r15d + addl %r10d,%ecx + vpxor %xmm7,%xmm6,%xmm6 + shrdl $2,%r14d,%r14d + addl %r15d,%r10d + movl %ecx,%r13d + vpsrlq $2,%xmm7,%xmm7 + addl %r10d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r10d + vpxor %xmm7,%xmm6,%xmm6 + movl %edx,%r12d + xorl %ecx,%r13d + shrdl $9,%r14d,%r14d + vpshufd $132,%xmm6,%xmm6 + xorl %r8d,%r12d + shrdl $5,%r13d,%r13d + xorl %r10d,%r14d + vpsrldq $8,%xmm6,%xmm6 + andl %ecx,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 160-128(%rdi),%xmm10 + xorl %ecx,%r13d + addl 40(%rsp),%r9d + vpaddd %xmm6,%xmm2,%xmm2 + movl %r10d,%r15d + shrdl $11,%r14d,%r14d + xorl %r8d,%r12d + vpshufd $80,%xmm2,%xmm7 + xorl %r11d,%r15d + shrdl $6,%r13d,%r13d + addl %r12d,%r9d + vpsrld $10,%xmm7,%xmm6 + andl %r15d,%esi + xorl %r10d,%r14d + addl %r13d,%r9d + vpsrlq $17,%xmm7,%xmm7 + xorl %r11d,%esi + addl %r9d,%ebx + shrdl $2,%r14d,%r14d + vpxor %xmm7,%xmm6,%xmm6 + addl %esi,%r9d + movl %ebx,%r13d + addl %r9d,%r14d + vpsrlq $2,%xmm7,%xmm7 + shrdl $14,%r13d,%r13d + movl %r14d,%r9d + movl %ecx,%r12d + vpxor %xmm7,%xmm6,%xmm6 + xorl %ebx,%r13d + shrdl $9,%r14d,%r14d + xorl %edx,%r12d + vpshufd $232,%xmm6,%xmm6 + shrdl $5,%r13d,%r13d + xorl %r9d,%r14d + andl %ebx,%r12d + vpslldq $8,%xmm6,%xmm6 + vaesenclast %xmm10,%xmm9,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 176-128(%rdi),%xmm10 + xorl %ebx,%r13d + addl 44(%rsp),%r8d + movl %r9d,%esi + vpaddd %xmm6,%xmm2,%xmm2 + shrdl $11,%r14d,%r14d + xorl %edx,%r12d + xorl %r10d,%esi + vpaddd 64(%rbp),%xmm2,%xmm6 + shrdl $6,%r13d,%r13d + addl %r12d,%r8d + andl %esi,%r15d + xorl %r9d,%r14d + addl %r13d,%r8d + xorl %r10d,%r15d + addl %r8d,%eax + shrdl $2,%r14d,%r14d + addl %r15d,%r8d + movl %eax,%r13d + addl %r8d,%r14d + vmovdqa %xmm6,32(%rsp) + vpalignr $4,%xmm3,%xmm0,%xmm4 + shrdl $14,%r13d,%r13d + movl %r14d,%r8d + movl %ebx,%r12d + vpalignr $4,%xmm1,%xmm2,%xmm7 + xorl %eax,%r13d + shrdl $9,%r14d,%r14d + xorl %ecx,%r12d + vpsrld $7,%xmm4,%xmm6 + shrdl $5,%r13d,%r13d + xorl %r8d,%r14d + andl %eax,%r12d + vpaddd %xmm7,%xmm3,%xmm3 + vpand %xmm12,%xmm11,%xmm8 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 192-128(%rdi),%xmm10 + xorl %eax,%r13d + addl 48(%rsp),%edx + movl %r8d,%r15d + vpsrld $3,%xmm4,%xmm7 + shrdl $11,%r14d,%r14d + xorl %ecx,%r12d + xorl %r9d,%r15d + vpslld $14,%xmm4,%xmm5 + shrdl $6,%r13d,%r13d + addl %r12d,%edx + andl %r15d,%esi + vpxor %xmm6,%xmm7,%xmm4 + xorl %r8d,%r14d + addl %r13d,%edx + xorl %r9d,%esi + vpshufd $250,%xmm2,%xmm7 + addl %edx,%r11d + shrdl $2,%r14d,%r14d + addl %esi,%edx + vpsrld $11,%xmm6,%xmm6 + movl %r11d,%r13d + addl %edx,%r14d + shrdl $14,%r13d,%r13d + vpxor %xmm5,%xmm4,%xmm4 + movl %r14d,%edx + movl %eax,%r12d + xorl %r11d,%r13d + vpslld $11,%xmm5,%xmm5 + shrdl $9,%r14d,%r14d + xorl %ebx,%r12d + shrdl $5,%r13d,%r13d + vpxor %xmm6,%xmm4,%xmm4 + xorl %edx,%r14d + andl %r11d,%r12d + vaesenclast %xmm10,%xmm9,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 208-128(%rdi),%xmm10 + xorl %r11d,%r13d + vpsrld $10,%xmm7,%xmm6 + addl 52(%rsp),%ecx + movl %edx,%esi + shrdl $11,%r14d,%r14d + vpxor %xmm5,%xmm4,%xmm4 + xorl %ebx,%r12d + xorl %r8d,%esi + shrdl $6,%r13d,%r13d + vpsrlq $17,%xmm7,%xmm7 + addl %r12d,%ecx + andl %esi,%r15d + xorl %edx,%r14d + vpaddd %xmm4,%xmm3,%xmm3 + addl %r13d,%ecx + xorl %r8d,%r15d + addl %ecx,%r10d + vpxor %xmm7,%xmm6,%xmm6 + shrdl $2,%r14d,%r14d + addl %r15d,%ecx + movl %r10d,%r13d + vpsrlq $2,%xmm7,%xmm7 + addl %ecx,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%ecx + vpxor %xmm7,%xmm6,%xmm6 + movl %r11d,%r12d + xorl %r10d,%r13d + shrdl $9,%r14d,%r14d + vpshufd $132,%xmm6,%xmm6 + xorl %eax,%r12d + shrdl $5,%r13d,%r13d + xorl %ecx,%r14d + vpsrldq $8,%xmm6,%xmm6 + andl %r10d,%r12d + vpand %xmm13,%xmm11,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 224-128(%rdi),%xmm10 + xorl %r10d,%r13d + addl 56(%rsp),%ebx + vpaddd %xmm6,%xmm3,%xmm3 + movl %ecx,%r15d + shrdl $11,%r14d,%r14d + xorl %eax,%r12d + vpshufd $80,%xmm3,%xmm7 + xorl %edx,%r15d + shrdl $6,%r13d,%r13d + addl %r12d,%ebx + vpsrld $10,%xmm7,%xmm6 + andl %r15d,%esi + xorl %ecx,%r14d + addl %r13d,%ebx + vpsrlq $17,%xmm7,%xmm7 + xorl %edx,%esi + addl %ebx,%r9d + shrdl $2,%r14d,%r14d + vpxor %xmm7,%xmm6,%xmm6 + addl %esi,%ebx + movl %r9d,%r13d + addl %ebx,%r14d + vpsrlq $2,%xmm7,%xmm7 + shrdl $14,%r13d,%r13d + movl %r14d,%ebx + movl %r10d,%r12d + vpxor %xmm7,%xmm6,%xmm6 + xorl %r9d,%r13d + shrdl $9,%r14d,%r14d + xorl %r11d,%r12d + vpshufd $232,%xmm6,%xmm6 + shrdl $5,%r13d,%r13d + xorl %ebx,%r14d + andl %r9d,%r12d + vpslldq $8,%xmm6,%xmm6 + vpor %xmm11,%xmm8,%xmm8 + vaesenclast %xmm10,%xmm9,%xmm11 + vmovdqu 0-128(%rdi),%xmm10 + xorl %r9d,%r13d + addl 60(%rsp),%eax + movl %ebx,%esi + vpaddd %xmm6,%xmm3,%xmm3 + shrdl $11,%r14d,%r14d + xorl %r11d,%r12d + xorl %ecx,%esi + vpaddd 96(%rbp),%xmm3,%xmm6 + shrdl $6,%r13d,%r13d + addl %r12d,%eax + andl %esi,%r15d + xorl %ebx,%r14d + addl %r13d,%eax + xorl %ecx,%r15d + addl %eax,%r8d + shrdl $2,%r14d,%r14d + addl %r15d,%eax + movl %r8d,%r13d + addl %eax,%r14d + vmovdqa %xmm6,48(%rsp) + movq 64+0(%rsp),%r12 + vpand %xmm14,%xmm11,%xmm11 + movq 64+8(%rsp),%r15 + vpor %xmm11,%xmm8,%xmm8 + vmovdqu %xmm8,(%r15,%r12,1) + leaq 16(%r12),%r12 + cmpb $0,131(%rbp) + jne L$avx_00_47 + vmovdqu (%r12),%xmm9 + movq %r12,64+0(%rsp) + shrdl $14,%r13d,%r13d + movl %r14d,%eax + movl %r9d,%r12d + xorl %r8d,%r13d + shrdl $9,%r14d,%r14d + xorl %r10d,%r12d + shrdl $5,%r13d,%r13d + xorl %eax,%r14d + andl %r8d,%r12d + vpxor %xmm10,%xmm9,%xmm9 + vmovdqu 16-128(%rdi),%xmm10 + xorl %r8d,%r13d + addl 0(%rsp),%r11d + movl %eax,%r15d + shrdl $11,%r14d,%r14d + xorl %r10d,%r12d + xorl %ebx,%r15d + shrdl $6,%r13d,%r13d + addl %r12d,%r11d + andl %r15d,%esi + xorl %eax,%r14d + addl %r13d,%r11d + xorl %ebx,%esi + addl %r11d,%edx + shrdl $2,%r14d,%r14d + addl %esi,%r11d + movl %edx,%r13d + addl %r11d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r11d + movl %r8d,%r12d + xorl %edx,%r13d + shrdl $9,%r14d,%r14d + xorl %r9d,%r12d + shrdl $5,%r13d,%r13d + xorl %r11d,%r14d + andl %edx,%r12d + vpxor %xmm8,%xmm9,%xmm9 + xorl %edx,%r13d + addl 4(%rsp),%r10d + movl %r11d,%esi + shrdl $11,%r14d,%r14d + xorl %r9d,%r12d + xorl %eax,%esi + shrdl $6,%r13d,%r13d + addl %r12d,%r10d + andl %esi,%r15d + xorl %r11d,%r14d + addl %r13d,%r10d + xorl %eax,%r15d + addl %r10d,%ecx + shrdl $2,%r14d,%r14d + addl %r15d,%r10d + movl %ecx,%r13d + addl %r10d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r10d + movl %edx,%r12d + xorl %ecx,%r13d + shrdl $9,%r14d,%r14d + xorl %r8d,%r12d + shrdl $5,%r13d,%r13d + xorl %r10d,%r14d + andl %ecx,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 32-128(%rdi),%xmm10 + xorl %ecx,%r13d + addl 8(%rsp),%r9d + movl %r10d,%r15d + shrdl $11,%r14d,%r14d + xorl %r8d,%r12d + xorl %r11d,%r15d + shrdl $6,%r13d,%r13d + addl %r12d,%r9d + andl %r15d,%esi + xorl %r10d,%r14d + addl %r13d,%r9d + xorl %r11d,%esi + addl %r9d,%ebx + shrdl $2,%r14d,%r14d + addl %esi,%r9d + movl %ebx,%r13d + addl %r9d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r9d + movl %ecx,%r12d + xorl %ebx,%r13d + shrdl $9,%r14d,%r14d + xorl %edx,%r12d + shrdl $5,%r13d,%r13d + xorl %r9d,%r14d + andl %ebx,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 48-128(%rdi),%xmm10 + xorl %ebx,%r13d + addl 12(%rsp),%r8d + movl %r9d,%esi + shrdl $11,%r14d,%r14d + xorl %edx,%r12d + xorl %r10d,%esi + shrdl $6,%r13d,%r13d + addl %r12d,%r8d + andl %esi,%r15d + xorl %r9d,%r14d + addl %r13d,%r8d + xorl %r10d,%r15d + addl %r8d,%eax + shrdl $2,%r14d,%r14d + addl %r15d,%r8d + movl %eax,%r13d + addl %r8d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r8d + movl %ebx,%r12d + xorl %eax,%r13d + shrdl $9,%r14d,%r14d + xorl %ecx,%r12d + shrdl $5,%r13d,%r13d + xorl %r8d,%r14d + andl %eax,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 64-128(%rdi),%xmm10 + xorl %eax,%r13d + addl 16(%rsp),%edx + movl %r8d,%r15d + shrdl $11,%r14d,%r14d + xorl %ecx,%r12d + xorl %r9d,%r15d + shrdl $6,%r13d,%r13d + addl %r12d,%edx + andl %r15d,%esi + xorl %r8d,%r14d + addl %r13d,%edx + xorl %r9d,%esi + addl %edx,%r11d + shrdl $2,%r14d,%r14d + addl %esi,%edx + movl %r11d,%r13d + addl %edx,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%edx + movl %eax,%r12d + xorl %r11d,%r13d + shrdl $9,%r14d,%r14d + xorl %ebx,%r12d + shrdl $5,%r13d,%r13d + xorl %edx,%r14d + andl %r11d,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 80-128(%rdi),%xmm10 + xorl %r11d,%r13d + addl 20(%rsp),%ecx + movl %edx,%esi + shrdl $11,%r14d,%r14d + xorl %ebx,%r12d + xorl %r8d,%esi + shrdl $6,%r13d,%r13d + addl %r12d,%ecx + andl %esi,%r15d + xorl %edx,%r14d + addl %r13d,%ecx + xorl %r8d,%r15d + addl %ecx,%r10d + shrdl $2,%r14d,%r14d + addl %r15d,%ecx + movl %r10d,%r13d + addl %ecx,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%ecx + movl %r11d,%r12d + xorl %r10d,%r13d + shrdl $9,%r14d,%r14d + xorl %eax,%r12d + shrdl $5,%r13d,%r13d + xorl %ecx,%r14d + andl %r10d,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 96-128(%rdi),%xmm10 + xorl %r10d,%r13d + addl 24(%rsp),%ebx + movl %ecx,%r15d + shrdl $11,%r14d,%r14d + xorl %eax,%r12d + xorl %edx,%r15d + shrdl $6,%r13d,%r13d + addl %r12d,%ebx + andl %r15d,%esi + xorl %ecx,%r14d + addl %r13d,%ebx + xorl %edx,%esi + addl %ebx,%r9d + shrdl $2,%r14d,%r14d + addl %esi,%ebx + movl %r9d,%r13d + addl %ebx,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%ebx + movl %r10d,%r12d + xorl %r9d,%r13d + shrdl $9,%r14d,%r14d + xorl %r11d,%r12d + shrdl $5,%r13d,%r13d + xorl %ebx,%r14d + andl %r9d,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 112-128(%rdi),%xmm10 + xorl %r9d,%r13d + addl 28(%rsp),%eax + movl %ebx,%esi + shrdl $11,%r14d,%r14d + xorl %r11d,%r12d + xorl %ecx,%esi + shrdl $6,%r13d,%r13d + addl %r12d,%eax + andl %esi,%r15d + xorl %ebx,%r14d + addl %r13d,%eax + xorl %ecx,%r15d + addl %eax,%r8d + shrdl $2,%r14d,%r14d + addl %r15d,%eax + movl %r8d,%r13d + addl %eax,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%eax + movl %r9d,%r12d + xorl %r8d,%r13d + shrdl $9,%r14d,%r14d + xorl %r10d,%r12d + shrdl $5,%r13d,%r13d + xorl %eax,%r14d + andl %r8d,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 128-128(%rdi),%xmm10 + xorl %r8d,%r13d + addl 32(%rsp),%r11d + movl %eax,%r15d + shrdl $11,%r14d,%r14d + xorl %r10d,%r12d + xorl %ebx,%r15d + shrdl $6,%r13d,%r13d + addl %r12d,%r11d + andl %r15d,%esi + xorl %eax,%r14d + addl %r13d,%r11d + xorl %ebx,%esi + addl %r11d,%edx + shrdl $2,%r14d,%r14d + addl %esi,%r11d + movl %edx,%r13d + addl %r11d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r11d + movl %r8d,%r12d + xorl %edx,%r13d + shrdl $9,%r14d,%r14d + xorl %r9d,%r12d + shrdl $5,%r13d,%r13d + xorl %r11d,%r14d + andl %edx,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 144-128(%rdi),%xmm10 + xorl %edx,%r13d + addl 36(%rsp),%r10d + movl %r11d,%esi + shrdl $11,%r14d,%r14d + xorl %r9d,%r12d + xorl %eax,%esi + shrdl $6,%r13d,%r13d + addl %r12d,%r10d + andl %esi,%r15d + xorl %r11d,%r14d + addl %r13d,%r10d + xorl %eax,%r15d + addl %r10d,%ecx + shrdl $2,%r14d,%r14d + addl %r15d,%r10d + movl %ecx,%r13d + addl %r10d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r10d + movl %edx,%r12d + xorl %ecx,%r13d + shrdl $9,%r14d,%r14d + xorl %r8d,%r12d + shrdl $5,%r13d,%r13d + xorl %r10d,%r14d + andl %ecx,%r12d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 160-128(%rdi),%xmm10 + xorl %ecx,%r13d + addl 40(%rsp),%r9d + movl %r10d,%r15d + shrdl $11,%r14d,%r14d + xorl %r8d,%r12d + xorl %r11d,%r15d + shrdl $6,%r13d,%r13d + addl %r12d,%r9d + andl %r15d,%esi + xorl %r10d,%r14d + addl %r13d,%r9d + xorl %r11d,%esi + addl %r9d,%ebx + shrdl $2,%r14d,%r14d + addl %esi,%r9d + movl %ebx,%r13d + addl %r9d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r9d + movl %ecx,%r12d + xorl %ebx,%r13d + shrdl $9,%r14d,%r14d + xorl %edx,%r12d + shrdl $5,%r13d,%r13d + xorl %r9d,%r14d + andl %ebx,%r12d + vaesenclast %xmm10,%xmm9,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 176-128(%rdi),%xmm10 + xorl %ebx,%r13d + addl 44(%rsp),%r8d + movl %r9d,%esi + shrdl $11,%r14d,%r14d + xorl %edx,%r12d + xorl %r10d,%esi + shrdl $6,%r13d,%r13d + addl %r12d,%r8d + andl %esi,%r15d + xorl %r9d,%r14d + addl %r13d,%r8d + xorl %r10d,%r15d + addl %r8d,%eax + shrdl $2,%r14d,%r14d + addl %r15d,%r8d + movl %eax,%r13d + addl %r8d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r8d + movl %ebx,%r12d + xorl %eax,%r13d + shrdl $9,%r14d,%r14d + xorl %ecx,%r12d + shrdl $5,%r13d,%r13d + xorl %r8d,%r14d + andl %eax,%r12d + vpand %xmm12,%xmm11,%xmm8 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 192-128(%rdi),%xmm10 + xorl %eax,%r13d + addl 48(%rsp),%edx + movl %r8d,%r15d + shrdl $11,%r14d,%r14d + xorl %ecx,%r12d + xorl %r9d,%r15d + shrdl $6,%r13d,%r13d + addl %r12d,%edx + andl %r15d,%esi + xorl %r8d,%r14d + addl %r13d,%edx + xorl %r9d,%esi + addl %edx,%r11d + shrdl $2,%r14d,%r14d + addl %esi,%edx + movl %r11d,%r13d + addl %edx,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%edx + movl %eax,%r12d + xorl %r11d,%r13d + shrdl $9,%r14d,%r14d + xorl %ebx,%r12d + shrdl $5,%r13d,%r13d + xorl %edx,%r14d + andl %r11d,%r12d + vaesenclast %xmm10,%xmm9,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 208-128(%rdi),%xmm10 + xorl %r11d,%r13d + addl 52(%rsp),%ecx + movl %edx,%esi + shrdl $11,%r14d,%r14d + xorl %ebx,%r12d + xorl %r8d,%esi + shrdl $6,%r13d,%r13d + addl %r12d,%ecx + andl %esi,%r15d + xorl %edx,%r14d + addl %r13d,%ecx + xorl %r8d,%r15d + addl %ecx,%r10d + shrdl $2,%r14d,%r14d + addl %r15d,%ecx + movl %r10d,%r13d + addl %ecx,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%ecx + movl %r11d,%r12d + xorl %r10d,%r13d + shrdl $9,%r14d,%r14d + xorl %eax,%r12d + shrdl $5,%r13d,%r13d + xorl %ecx,%r14d + andl %r10d,%r12d + vpand %xmm13,%xmm11,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 224-128(%rdi),%xmm10 + xorl %r10d,%r13d + addl 56(%rsp),%ebx + movl %ecx,%r15d + shrdl $11,%r14d,%r14d + xorl %eax,%r12d + xorl %edx,%r15d + shrdl $6,%r13d,%r13d + addl %r12d,%ebx + andl %r15d,%esi + xorl %ecx,%r14d + addl %r13d,%ebx + xorl %edx,%esi + addl %ebx,%r9d + shrdl $2,%r14d,%r14d + addl %esi,%ebx + movl %r9d,%r13d + addl %ebx,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%ebx + movl %r10d,%r12d + xorl %r9d,%r13d + shrdl $9,%r14d,%r14d + xorl %r11d,%r12d + shrdl $5,%r13d,%r13d + xorl %ebx,%r14d + andl %r9d,%r12d + vpor %xmm11,%xmm8,%xmm8 + vaesenclast %xmm10,%xmm9,%xmm11 + vmovdqu 0-128(%rdi),%xmm10 + xorl %r9d,%r13d + addl 60(%rsp),%eax + movl %ebx,%esi + shrdl $11,%r14d,%r14d + xorl %r11d,%r12d + xorl %ecx,%esi + shrdl $6,%r13d,%r13d + addl %r12d,%eax + andl %esi,%r15d + xorl %ebx,%r14d + addl %r13d,%eax + xorl %ecx,%r15d + addl %eax,%r8d + shrdl $2,%r14d,%r14d + addl %r15d,%eax + movl %r8d,%r13d + addl %eax,%r14d + movq 64+0(%rsp),%r12 + movq 64+8(%rsp),%r13 + movq 64+40(%rsp),%r15 + movq 64+48(%rsp),%rsi + + vpand %xmm14,%xmm11,%xmm11 + movl %r14d,%eax + vpor %xmm11,%xmm8,%xmm8 + vmovdqu %xmm8,(%r12,%r13,1) + leaq 16(%r12),%r12 + + addl 0(%r15),%eax + addl 4(%r15),%ebx + addl 8(%r15),%ecx + addl 12(%r15),%edx + addl 16(%r15),%r8d + addl 20(%r15),%r9d + addl 24(%r15),%r10d + addl 28(%r15),%r11d + + cmpq 64+16(%rsp),%r12 + + movl %eax,0(%r15) + movl %ebx,4(%r15) + movl %ecx,8(%r15) + movl %edx,12(%r15) + movl %r8d,16(%r15) + movl %r9d,20(%r15) + movl %r10d,24(%r15) + movl %r11d,28(%r15) + jb L$loop_avx + + movq 64+32(%rsp),%r8 + movq 120(%rsp),%rsi + + vmovdqu %xmm8,(%r8) + vzeroall + movq -48(%rsi),%r15 + + movq -40(%rsi),%r14 + + movq -32(%rsi),%r13 + + movq -24(%rsi),%r12 + + movq -16(%rsi),%rbp + + movq -8(%rsi),%rbx + + leaq (%rsi),%rsp + +L$epilogue_avx: + .byte 0xf3,0xc3 + + + +.p2align 6 +aesni_cbc_sha256_enc_avx2: + +L$avx2_shortcut: + movq 8(%rsp),%r10 + movq %rsp,%rax + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + subq $576,%rsp + andq $-1024,%rsp + addq $448,%rsp + + shlq $6,%rdx + subq %rdi,%rsi + subq %rdi,%r10 + addq %rdi,%rdx + + + + movq %rdx,64+16(%rsp) + + movq %r8,64+32(%rsp) + movq %r9,64+40(%rsp) + movq %r10,64+48(%rsp) + movq %rax,120(%rsp) + +L$prologue_avx2: + vzeroall + + movq %rdi,%r13 + vpinsrq $1,%rsi,%xmm15,%xmm15 + leaq 128(%rcx),%rdi + leaq K256+544(%rip),%r12 + movl 240-128(%rdi),%r14d + movq %r9,%r15 + movq %r10,%rsi + vmovdqu (%r8),%xmm8 + leaq -9(%r14),%r14 + + vmovdqa 0(%r12,%r14,8),%xmm14 + vmovdqa 16(%r12,%r14,8),%xmm13 + vmovdqa 32(%r12,%r14,8),%xmm12 + + subq $-64,%r13 + movl 0(%r15),%eax + leaq (%rsi,%r13,1),%r12 + movl 4(%r15),%ebx + cmpq %rdx,%r13 + movl 8(%r15),%ecx + cmoveq %rsp,%r12 + movl 12(%r15),%edx + movl 16(%r15),%r8d + movl 20(%r15),%r9d + movl 24(%r15),%r10d + movl 28(%r15),%r11d + vmovdqu 0-128(%rdi),%xmm10 + jmp L$oop_avx2 +.p2align 4 +L$oop_avx2: + vmovdqa K256+512(%rip),%ymm7 + vmovdqu -64+0(%rsi,%r13,1),%xmm0 + vmovdqu -64+16(%rsi,%r13,1),%xmm1 + vmovdqu -64+32(%rsi,%r13,1),%xmm2 + vmovdqu -64+48(%rsi,%r13,1),%xmm3 + + vinserti128 $1,(%r12),%ymm0,%ymm0 + vinserti128 $1,16(%r12),%ymm1,%ymm1 + vpshufb %ymm7,%ymm0,%ymm0 + vinserti128 $1,32(%r12),%ymm2,%ymm2 + vpshufb %ymm7,%ymm1,%ymm1 + vinserti128 $1,48(%r12),%ymm3,%ymm3 + + leaq K256(%rip),%rbp + vpshufb %ymm7,%ymm2,%ymm2 + leaq -64(%r13),%r13 + vpaddd 0(%rbp),%ymm0,%ymm4 + vpshufb %ymm7,%ymm3,%ymm3 + vpaddd 32(%rbp),%ymm1,%ymm5 + vpaddd 64(%rbp),%ymm2,%ymm6 + vpaddd 96(%rbp),%ymm3,%ymm7 + vmovdqa %ymm4,0(%rsp) + xorl %r14d,%r14d + vmovdqa %ymm5,32(%rsp) + + movq 120(%rsp),%rsi + + leaq -64(%rsp),%rsp + + + + movq %rsi,-8(%rsp) + + movl %ebx,%esi + vmovdqa %ymm6,0(%rsp) + xorl %ecx,%esi + vmovdqa %ymm7,32(%rsp) + movl %r9d,%r12d + subq $-32*4,%rbp + jmp L$avx2_00_47 + +.p2align 4 +L$avx2_00_47: + vmovdqu (%r13),%xmm9 + vpinsrq $0,%r13,%xmm15,%xmm15 + leaq -64(%rsp),%rsp + + + pushq 64-8(%rsp) + + leaq 8(%rsp),%rsp + + vpalignr $4,%ymm0,%ymm1,%ymm4 + addl 0+128(%rsp),%r11d + andl %r8d,%r12d + rorxl $25,%r8d,%r13d + vpalignr $4,%ymm2,%ymm3,%ymm7 + rorxl $11,%r8d,%r15d + leal (%rax,%r14,1),%eax + leal (%r11,%r12,1),%r11d + vpsrld $7,%ymm4,%ymm6 + andnl %r10d,%r8d,%r12d + xorl %r15d,%r13d + rorxl $6,%r8d,%r14d + vpaddd %ymm7,%ymm0,%ymm0 + leal (%r11,%r12,1),%r11d + xorl %r14d,%r13d + movl %eax,%r15d + vpsrld $3,%ymm4,%ymm7 + rorxl $22,%eax,%r12d + leal (%r11,%r13,1),%r11d + xorl %ebx,%r15d + vpslld $14,%ymm4,%ymm5 + rorxl $13,%eax,%r14d + rorxl $2,%eax,%r13d + leal (%rdx,%r11,1),%edx + vpxor %ymm6,%ymm7,%ymm4 + andl %r15d,%esi + vpxor %xmm10,%xmm9,%xmm9 + vmovdqu 16-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %ebx,%esi + vpshufd $250,%ymm3,%ymm7 + xorl %r13d,%r14d + leal (%r11,%rsi,1),%r11d + movl %r8d,%r12d + vpsrld $11,%ymm6,%ymm6 + addl 4+128(%rsp),%r10d + andl %edx,%r12d + rorxl $25,%edx,%r13d + vpxor %ymm5,%ymm4,%ymm4 + rorxl $11,%edx,%esi + leal (%r11,%r14,1),%r11d + leal (%r10,%r12,1),%r10d + vpslld $11,%ymm5,%ymm5 + andnl %r9d,%edx,%r12d + xorl %esi,%r13d + rorxl $6,%edx,%r14d + vpxor %ymm6,%ymm4,%ymm4 + leal (%r10,%r12,1),%r10d + xorl %r14d,%r13d + movl %r11d,%esi + vpsrld $10,%ymm7,%ymm6 + rorxl $22,%r11d,%r12d + leal (%r10,%r13,1),%r10d + xorl %eax,%esi + vpxor %ymm5,%ymm4,%ymm4 + rorxl $13,%r11d,%r14d + rorxl $2,%r11d,%r13d + leal (%rcx,%r10,1),%ecx + vpsrlq $17,%ymm7,%ymm7 + andl %esi,%r15d + vpxor %xmm8,%xmm9,%xmm9 + xorl %r12d,%r14d + xorl %eax,%r15d + vpaddd %ymm4,%ymm0,%ymm0 + xorl %r13d,%r14d + leal (%r10,%r15,1),%r10d + movl %edx,%r12d + vpxor %ymm7,%ymm6,%ymm6 + addl 8+128(%rsp),%r9d + andl %ecx,%r12d + rorxl $25,%ecx,%r13d + vpsrlq $2,%ymm7,%ymm7 + rorxl $11,%ecx,%r15d + leal (%r10,%r14,1),%r10d + leal (%r9,%r12,1),%r9d + vpxor %ymm7,%ymm6,%ymm6 + andnl %r8d,%ecx,%r12d + xorl %r15d,%r13d + rorxl $6,%ecx,%r14d + vpshufd $132,%ymm6,%ymm6 + leal (%r9,%r12,1),%r9d + xorl %r14d,%r13d + movl %r10d,%r15d + vpsrldq $8,%ymm6,%ymm6 + rorxl $22,%r10d,%r12d + leal (%r9,%r13,1),%r9d + xorl %r11d,%r15d + vpaddd %ymm6,%ymm0,%ymm0 + rorxl $13,%r10d,%r14d + rorxl $2,%r10d,%r13d + leal (%rbx,%r9,1),%ebx + vpshufd $80,%ymm0,%ymm7 + andl %r15d,%esi + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 32-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r11d,%esi + vpsrld $10,%ymm7,%ymm6 + xorl %r13d,%r14d + leal (%r9,%rsi,1),%r9d + movl %ecx,%r12d + vpsrlq $17,%ymm7,%ymm7 + addl 12+128(%rsp),%r8d + andl %ebx,%r12d + rorxl $25,%ebx,%r13d + vpxor %ymm7,%ymm6,%ymm6 + rorxl $11,%ebx,%esi + leal (%r9,%r14,1),%r9d + leal (%r8,%r12,1),%r8d + vpsrlq $2,%ymm7,%ymm7 + andnl %edx,%ebx,%r12d + xorl %esi,%r13d + rorxl $6,%ebx,%r14d + vpxor %ymm7,%ymm6,%ymm6 + leal (%r8,%r12,1),%r8d + xorl %r14d,%r13d + movl %r9d,%esi + vpshufd $232,%ymm6,%ymm6 + rorxl $22,%r9d,%r12d + leal (%r8,%r13,1),%r8d + xorl %r10d,%esi + vpslldq $8,%ymm6,%ymm6 + rorxl $13,%r9d,%r14d + rorxl $2,%r9d,%r13d + leal (%rax,%r8,1),%eax + vpaddd %ymm6,%ymm0,%ymm0 + andl %esi,%r15d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 48-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r10d,%r15d + vpaddd 0(%rbp),%ymm0,%ymm6 + xorl %r13d,%r14d + leal (%r8,%r15,1),%r8d + movl %ebx,%r12d + vmovdqa %ymm6,0(%rsp) + vpalignr $4,%ymm1,%ymm2,%ymm4 + addl 32+128(%rsp),%edx + andl %eax,%r12d + rorxl $25,%eax,%r13d + vpalignr $4,%ymm3,%ymm0,%ymm7 + rorxl $11,%eax,%r15d + leal (%r8,%r14,1),%r8d + leal (%rdx,%r12,1),%edx + vpsrld $7,%ymm4,%ymm6 + andnl %ecx,%eax,%r12d + xorl %r15d,%r13d + rorxl $6,%eax,%r14d + vpaddd %ymm7,%ymm1,%ymm1 + leal (%rdx,%r12,1),%edx + xorl %r14d,%r13d + movl %r8d,%r15d + vpsrld $3,%ymm4,%ymm7 + rorxl $22,%r8d,%r12d + leal (%rdx,%r13,1),%edx + xorl %r9d,%r15d + vpslld $14,%ymm4,%ymm5 + rorxl $13,%r8d,%r14d + rorxl $2,%r8d,%r13d + leal (%r11,%rdx,1),%r11d + vpxor %ymm6,%ymm7,%ymm4 + andl %r15d,%esi + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 64-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r9d,%esi + vpshufd $250,%ymm0,%ymm7 + xorl %r13d,%r14d + leal (%rdx,%rsi,1),%edx + movl %eax,%r12d + vpsrld $11,%ymm6,%ymm6 + addl 36+128(%rsp),%ecx + andl %r11d,%r12d + rorxl $25,%r11d,%r13d + vpxor %ymm5,%ymm4,%ymm4 + rorxl $11,%r11d,%esi + leal (%rdx,%r14,1),%edx + leal (%rcx,%r12,1),%ecx + vpslld $11,%ymm5,%ymm5 + andnl %ebx,%r11d,%r12d + xorl %esi,%r13d + rorxl $6,%r11d,%r14d + vpxor %ymm6,%ymm4,%ymm4 + leal (%rcx,%r12,1),%ecx + xorl %r14d,%r13d + movl %edx,%esi + vpsrld $10,%ymm7,%ymm6 + rorxl $22,%edx,%r12d + leal (%rcx,%r13,1),%ecx + xorl %r8d,%esi + vpxor %ymm5,%ymm4,%ymm4 + rorxl $13,%edx,%r14d + rorxl $2,%edx,%r13d + leal (%r10,%rcx,1),%r10d + vpsrlq $17,%ymm7,%ymm7 + andl %esi,%r15d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 80-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r8d,%r15d + vpaddd %ymm4,%ymm1,%ymm1 + xorl %r13d,%r14d + leal (%rcx,%r15,1),%ecx + movl %r11d,%r12d + vpxor %ymm7,%ymm6,%ymm6 + addl 40+128(%rsp),%ebx + andl %r10d,%r12d + rorxl $25,%r10d,%r13d + vpsrlq $2,%ymm7,%ymm7 + rorxl $11,%r10d,%r15d + leal (%rcx,%r14,1),%ecx + leal (%rbx,%r12,1),%ebx + vpxor %ymm7,%ymm6,%ymm6 + andnl %eax,%r10d,%r12d + xorl %r15d,%r13d + rorxl $6,%r10d,%r14d + vpshufd $132,%ymm6,%ymm6 + leal (%rbx,%r12,1),%ebx + xorl %r14d,%r13d + movl %ecx,%r15d + vpsrldq $8,%ymm6,%ymm6 + rorxl $22,%ecx,%r12d + leal (%rbx,%r13,1),%ebx + xorl %edx,%r15d + vpaddd %ymm6,%ymm1,%ymm1 + rorxl $13,%ecx,%r14d + rorxl $2,%ecx,%r13d + leal (%r9,%rbx,1),%r9d + vpshufd $80,%ymm1,%ymm7 + andl %r15d,%esi + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 96-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %edx,%esi + vpsrld $10,%ymm7,%ymm6 + xorl %r13d,%r14d + leal (%rbx,%rsi,1),%ebx + movl %r10d,%r12d + vpsrlq $17,%ymm7,%ymm7 + addl 44+128(%rsp),%eax + andl %r9d,%r12d + rorxl $25,%r9d,%r13d + vpxor %ymm7,%ymm6,%ymm6 + rorxl $11,%r9d,%esi + leal (%rbx,%r14,1),%ebx + leal (%rax,%r12,1),%eax + vpsrlq $2,%ymm7,%ymm7 + andnl %r11d,%r9d,%r12d + xorl %esi,%r13d + rorxl $6,%r9d,%r14d + vpxor %ymm7,%ymm6,%ymm6 + leal (%rax,%r12,1),%eax + xorl %r14d,%r13d + movl %ebx,%esi + vpshufd $232,%ymm6,%ymm6 + rorxl $22,%ebx,%r12d + leal (%rax,%r13,1),%eax + xorl %ecx,%esi + vpslldq $8,%ymm6,%ymm6 + rorxl $13,%ebx,%r14d + rorxl $2,%ebx,%r13d + leal (%r8,%rax,1),%r8d + vpaddd %ymm6,%ymm1,%ymm1 + andl %esi,%r15d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 112-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %ecx,%r15d + vpaddd 32(%rbp),%ymm1,%ymm6 + xorl %r13d,%r14d + leal (%rax,%r15,1),%eax + movl %r9d,%r12d + vmovdqa %ymm6,32(%rsp) + leaq -64(%rsp),%rsp + + + pushq 64-8(%rsp) + + leaq 8(%rsp),%rsp + + vpalignr $4,%ymm2,%ymm3,%ymm4 + addl 0+128(%rsp),%r11d + andl %r8d,%r12d + rorxl $25,%r8d,%r13d + vpalignr $4,%ymm0,%ymm1,%ymm7 + rorxl $11,%r8d,%r15d + leal (%rax,%r14,1),%eax + leal (%r11,%r12,1),%r11d + vpsrld $7,%ymm4,%ymm6 + andnl %r10d,%r8d,%r12d + xorl %r15d,%r13d + rorxl $6,%r8d,%r14d + vpaddd %ymm7,%ymm2,%ymm2 + leal (%r11,%r12,1),%r11d + xorl %r14d,%r13d + movl %eax,%r15d + vpsrld $3,%ymm4,%ymm7 + rorxl $22,%eax,%r12d + leal (%r11,%r13,1),%r11d + xorl %ebx,%r15d + vpslld $14,%ymm4,%ymm5 + rorxl $13,%eax,%r14d + rorxl $2,%eax,%r13d + leal (%rdx,%r11,1),%edx + vpxor %ymm6,%ymm7,%ymm4 + andl %r15d,%esi + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 128-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %ebx,%esi + vpshufd $250,%ymm1,%ymm7 + xorl %r13d,%r14d + leal (%r11,%rsi,1),%r11d + movl %r8d,%r12d + vpsrld $11,%ymm6,%ymm6 + addl 4+128(%rsp),%r10d + andl %edx,%r12d + rorxl $25,%edx,%r13d + vpxor %ymm5,%ymm4,%ymm4 + rorxl $11,%edx,%esi + leal (%r11,%r14,1),%r11d + leal (%r10,%r12,1),%r10d + vpslld $11,%ymm5,%ymm5 + andnl %r9d,%edx,%r12d + xorl %esi,%r13d + rorxl $6,%edx,%r14d + vpxor %ymm6,%ymm4,%ymm4 + leal (%r10,%r12,1),%r10d + xorl %r14d,%r13d + movl %r11d,%esi + vpsrld $10,%ymm7,%ymm6 + rorxl $22,%r11d,%r12d + leal (%r10,%r13,1),%r10d + xorl %eax,%esi + vpxor %ymm5,%ymm4,%ymm4 + rorxl $13,%r11d,%r14d + rorxl $2,%r11d,%r13d + leal (%rcx,%r10,1),%ecx + vpsrlq $17,%ymm7,%ymm7 + andl %esi,%r15d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 144-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %eax,%r15d + vpaddd %ymm4,%ymm2,%ymm2 + xorl %r13d,%r14d + leal (%r10,%r15,1),%r10d + movl %edx,%r12d + vpxor %ymm7,%ymm6,%ymm6 + addl 8+128(%rsp),%r9d + andl %ecx,%r12d + rorxl $25,%ecx,%r13d + vpsrlq $2,%ymm7,%ymm7 + rorxl $11,%ecx,%r15d + leal (%r10,%r14,1),%r10d + leal (%r9,%r12,1),%r9d + vpxor %ymm7,%ymm6,%ymm6 + andnl %r8d,%ecx,%r12d + xorl %r15d,%r13d + rorxl $6,%ecx,%r14d + vpshufd $132,%ymm6,%ymm6 + leal (%r9,%r12,1),%r9d + xorl %r14d,%r13d + movl %r10d,%r15d + vpsrldq $8,%ymm6,%ymm6 + rorxl $22,%r10d,%r12d + leal (%r9,%r13,1),%r9d + xorl %r11d,%r15d + vpaddd %ymm6,%ymm2,%ymm2 + rorxl $13,%r10d,%r14d + rorxl $2,%r10d,%r13d + leal (%rbx,%r9,1),%ebx + vpshufd $80,%ymm2,%ymm7 + andl %r15d,%esi + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 160-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r11d,%esi + vpsrld $10,%ymm7,%ymm6 + xorl %r13d,%r14d + leal (%r9,%rsi,1),%r9d + movl %ecx,%r12d + vpsrlq $17,%ymm7,%ymm7 + addl 12+128(%rsp),%r8d + andl %ebx,%r12d + rorxl $25,%ebx,%r13d + vpxor %ymm7,%ymm6,%ymm6 + rorxl $11,%ebx,%esi + leal (%r9,%r14,1),%r9d + leal (%r8,%r12,1),%r8d + vpsrlq $2,%ymm7,%ymm7 + andnl %edx,%ebx,%r12d + xorl %esi,%r13d + rorxl $6,%ebx,%r14d + vpxor %ymm7,%ymm6,%ymm6 + leal (%r8,%r12,1),%r8d + xorl %r14d,%r13d + movl %r9d,%esi + vpshufd $232,%ymm6,%ymm6 + rorxl $22,%r9d,%r12d + leal (%r8,%r13,1),%r8d + xorl %r10d,%esi + vpslldq $8,%ymm6,%ymm6 + rorxl $13,%r9d,%r14d + rorxl $2,%r9d,%r13d + leal (%rax,%r8,1),%eax + vpaddd %ymm6,%ymm2,%ymm2 + andl %esi,%r15d + vaesenclast %xmm10,%xmm9,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 176-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r10d,%r15d + vpaddd 64(%rbp),%ymm2,%ymm6 + xorl %r13d,%r14d + leal (%r8,%r15,1),%r8d + movl %ebx,%r12d + vmovdqa %ymm6,0(%rsp) + vpalignr $4,%ymm3,%ymm0,%ymm4 + addl 32+128(%rsp),%edx + andl %eax,%r12d + rorxl $25,%eax,%r13d + vpalignr $4,%ymm1,%ymm2,%ymm7 + rorxl $11,%eax,%r15d + leal (%r8,%r14,1),%r8d + leal (%rdx,%r12,1),%edx + vpsrld $7,%ymm4,%ymm6 + andnl %ecx,%eax,%r12d + xorl %r15d,%r13d + rorxl $6,%eax,%r14d + vpaddd %ymm7,%ymm3,%ymm3 + leal (%rdx,%r12,1),%edx + xorl %r14d,%r13d + movl %r8d,%r15d + vpsrld $3,%ymm4,%ymm7 + rorxl $22,%r8d,%r12d + leal (%rdx,%r13,1),%edx + xorl %r9d,%r15d + vpslld $14,%ymm4,%ymm5 + rorxl $13,%r8d,%r14d + rorxl $2,%r8d,%r13d + leal (%r11,%rdx,1),%r11d + vpxor %ymm6,%ymm7,%ymm4 + andl %r15d,%esi + vpand %xmm12,%xmm11,%xmm8 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 192-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r9d,%esi + vpshufd $250,%ymm2,%ymm7 + xorl %r13d,%r14d + leal (%rdx,%rsi,1),%edx + movl %eax,%r12d + vpsrld $11,%ymm6,%ymm6 + addl 36+128(%rsp),%ecx + andl %r11d,%r12d + rorxl $25,%r11d,%r13d + vpxor %ymm5,%ymm4,%ymm4 + rorxl $11,%r11d,%esi + leal (%rdx,%r14,1),%edx + leal (%rcx,%r12,1),%ecx + vpslld $11,%ymm5,%ymm5 + andnl %ebx,%r11d,%r12d + xorl %esi,%r13d + rorxl $6,%r11d,%r14d + vpxor %ymm6,%ymm4,%ymm4 + leal (%rcx,%r12,1),%ecx + xorl %r14d,%r13d + movl %edx,%esi + vpsrld $10,%ymm7,%ymm6 + rorxl $22,%edx,%r12d + leal (%rcx,%r13,1),%ecx + xorl %r8d,%esi + vpxor %ymm5,%ymm4,%ymm4 + rorxl $13,%edx,%r14d + rorxl $2,%edx,%r13d + leal (%r10,%rcx,1),%r10d + vpsrlq $17,%ymm7,%ymm7 + andl %esi,%r15d + vaesenclast %xmm10,%xmm9,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 208-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r8d,%r15d + vpaddd %ymm4,%ymm3,%ymm3 + xorl %r13d,%r14d + leal (%rcx,%r15,1),%ecx + movl %r11d,%r12d + vpxor %ymm7,%ymm6,%ymm6 + addl 40+128(%rsp),%ebx + andl %r10d,%r12d + rorxl $25,%r10d,%r13d + vpsrlq $2,%ymm7,%ymm7 + rorxl $11,%r10d,%r15d + leal (%rcx,%r14,1),%ecx + leal (%rbx,%r12,1),%ebx + vpxor %ymm7,%ymm6,%ymm6 + andnl %eax,%r10d,%r12d + xorl %r15d,%r13d + rorxl $6,%r10d,%r14d + vpshufd $132,%ymm6,%ymm6 + leal (%rbx,%r12,1),%ebx + xorl %r14d,%r13d + movl %ecx,%r15d + vpsrldq $8,%ymm6,%ymm6 + rorxl $22,%ecx,%r12d + leal (%rbx,%r13,1),%ebx + xorl %edx,%r15d + vpaddd %ymm6,%ymm3,%ymm3 + rorxl $13,%ecx,%r14d + rorxl $2,%ecx,%r13d + leal (%r9,%rbx,1),%r9d + vpshufd $80,%ymm3,%ymm7 + andl %r15d,%esi + vpand %xmm13,%xmm11,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 224-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %edx,%esi + vpsrld $10,%ymm7,%ymm6 + xorl %r13d,%r14d + leal (%rbx,%rsi,1),%ebx + movl %r10d,%r12d + vpsrlq $17,%ymm7,%ymm7 + addl 44+128(%rsp),%eax + andl %r9d,%r12d + rorxl $25,%r9d,%r13d + vpxor %ymm7,%ymm6,%ymm6 + rorxl $11,%r9d,%esi + leal (%rbx,%r14,1),%ebx + leal (%rax,%r12,1),%eax + vpsrlq $2,%ymm7,%ymm7 + andnl %r11d,%r9d,%r12d + xorl %esi,%r13d + rorxl $6,%r9d,%r14d + vpxor %ymm7,%ymm6,%ymm6 + leal (%rax,%r12,1),%eax + xorl %r14d,%r13d + movl %ebx,%esi + vpshufd $232,%ymm6,%ymm6 + rorxl $22,%ebx,%r12d + leal (%rax,%r13,1),%eax + xorl %ecx,%esi + vpslldq $8,%ymm6,%ymm6 + rorxl $13,%ebx,%r14d + rorxl $2,%ebx,%r13d + leal (%r8,%rax,1),%r8d + vpaddd %ymm6,%ymm3,%ymm3 + andl %esi,%r15d + vpor %xmm11,%xmm8,%xmm8 + vaesenclast %xmm10,%xmm9,%xmm11 + vmovdqu 0-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %ecx,%r15d + vpaddd 96(%rbp),%ymm3,%ymm6 + xorl %r13d,%r14d + leal (%rax,%r15,1),%eax + movl %r9d,%r12d + vmovdqa %ymm6,32(%rsp) + vmovq %xmm15,%r13 + vpextrq $1,%xmm15,%r15 + vpand %xmm14,%xmm11,%xmm11 + vpor %xmm11,%xmm8,%xmm8 + vmovdqu %xmm8,(%r15,%r13,1) + leaq 16(%r13),%r13 + leaq 128(%rbp),%rbp + cmpb $0,3(%rbp) + jne L$avx2_00_47 + vmovdqu (%r13),%xmm9 + vpinsrq $0,%r13,%xmm15,%xmm15 + addl 0+64(%rsp),%r11d + andl %r8d,%r12d + rorxl $25,%r8d,%r13d + rorxl $11,%r8d,%r15d + leal (%rax,%r14,1),%eax + leal (%r11,%r12,1),%r11d + andnl %r10d,%r8d,%r12d + xorl %r15d,%r13d + rorxl $6,%r8d,%r14d + leal (%r11,%r12,1),%r11d + xorl %r14d,%r13d + movl %eax,%r15d + rorxl $22,%eax,%r12d + leal (%r11,%r13,1),%r11d + xorl %ebx,%r15d + rorxl $13,%eax,%r14d + rorxl $2,%eax,%r13d + leal (%rdx,%r11,1),%edx + andl %r15d,%esi + vpxor %xmm10,%xmm9,%xmm9 + vmovdqu 16-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %ebx,%esi + xorl %r13d,%r14d + leal (%r11,%rsi,1),%r11d + movl %r8d,%r12d + addl 4+64(%rsp),%r10d + andl %edx,%r12d + rorxl $25,%edx,%r13d + rorxl $11,%edx,%esi + leal (%r11,%r14,1),%r11d + leal (%r10,%r12,1),%r10d + andnl %r9d,%edx,%r12d + xorl %esi,%r13d + rorxl $6,%edx,%r14d + leal (%r10,%r12,1),%r10d + xorl %r14d,%r13d + movl %r11d,%esi + rorxl $22,%r11d,%r12d + leal (%r10,%r13,1),%r10d + xorl %eax,%esi + rorxl $13,%r11d,%r14d + rorxl $2,%r11d,%r13d + leal (%rcx,%r10,1),%ecx + andl %esi,%r15d + vpxor %xmm8,%xmm9,%xmm9 + xorl %r12d,%r14d + xorl %eax,%r15d + xorl %r13d,%r14d + leal (%r10,%r15,1),%r10d + movl %edx,%r12d + addl 8+64(%rsp),%r9d + andl %ecx,%r12d + rorxl $25,%ecx,%r13d + rorxl $11,%ecx,%r15d + leal (%r10,%r14,1),%r10d + leal (%r9,%r12,1),%r9d + andnl %r8d,%ecx,%r12d + xorl %r15d,%r13d + rorxl $6,%ecx,%r14d + leal (%r9,%r12,1),%r9d + xorl %r14d,%r13d + movl %r10d,%r15d + rorxl $22,%r10d,%r12d + leal (%r9,%r13,1),%r9d + xorl %r11d,%r15d + rorxl $13,%r10d,%r14d + rorxl $2,%r10d,%r13d + leal (%rbx,%r9,1),%ebx + andl %r15d,%esi + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 32-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r11d,%esi + xorl %r13d,%r14d + leal (%r9,%rsi,1),%r9d + movl %ecx,%r12d + addl 12+64(%rsp),%r8d + andl %ebx,%r12d + rorxl $25,%ebx,%r13d + rorxl $11,%ebx,%esi + leal (%r9,%r14,1),%r9d + leal (%r8,%r12,1),%r8d + andnl %edx,%ebx,%r12d + xorl %esi,%r13d + rorxl $6,%ebx,%r14d + leal (%r8,%r12,1),%r8d + xorl %r14d,%r13d + movl %r9d,%esi + rorxl $22,%r9d,%r12d + leal (%r8,%r13,1),%r8d + xorl %r10d,%esi + rorxl $13,%r9d,%r14d + rorxl $2,%r9d,%r13d + leal (%rax,%r8,1),%eax + andl %esi,%r15d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 48-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r10d,%r15d + xorl %r13d,%r14d + leal (%r8,%r15,1),%r8d + movl %ebx,%r12d + addl 32+64(%rsp),%edx + andl %eax,%r12d + rorxl $25,%eax,%r13d + rorxl $11,%eax,%r15d + leal (%r8,%r14,1),%r8d + leal (%rdx,%r12,1),%edx + andnl %ecx,%eax,%r12d + xorl %r15d,%r13d + rorxl $6,%eax,%r14d + leal (%rdx,%r12,1),%edx + xorl %r14d,%r13d + movl %r8d,%r15d + rorxl $22,%r8d,%r12d + leal (%rdx,%r13,1),%edx + xorl %r9d,%r15d + rorxl $13,%r8d,%r14d + rorxl $2,%r8d,%r13d + leal (%r11,%rdx,1),%r11d + andl %r15d,%esi + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 64-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r9d,%esi + xorl %r13d,%r14d + leal (%rdx,%rsi,1),%edx + movl %eax,%r12d + addl 36+64(%rsp),%ecx + andl %r11d,%r12d + rorxl $25,%r11d,%r13d + rorxl $11,%r11d,%esi + leal (%rdx,%r14,1),%edx + leal (%rcx,%r12,1),%ecx + andnl %ebx,%r11d,%r12d + xorl %esi,%r13d + rorxl $6,%r11d,%r14d + leal (%rcx,%r12,1),%ecx + xorl %r14d,%r13d + movl %edx,%esi + rorxl $22,%edx,%r12d + leal (%rcx,%r13,1),%ecx + xorl %r8d,%esi + rorxl $13,%edx,%r14d + rorxl $2,%edx,%r13d + leal (%r10,%rcx,1),%r10d + andl %esi,%r15d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 80-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r8d,%r15d + xorl %r13d,%r14d + leal (%rcx,%r15,1),%ecx + movl %r11d,%r12d + addl 40+64(%rsp),%ebx + andl %r10d,%r12d + rorxl $25,%r10d,%r13d + rorxl $11,%r10d,%r15d + leal (%rcx,%r14,1),%ecx + leal (%rbx,%r12,1),%ebx + andnl %eax,%r10d,%r12d + xorl %r15d,%r13d + rorxl $6,%r10d,%r14d + leal (%rbx,%r12,1),%ebx + xorl %r14d,%r13d + movl %ecx,%r15d + rorxl $22,%ecx,%r12d + leal (%rbx,%r13,1),%ebx + xorl %edx,%r15d + rorxl $13,%ecx,%r14d + rorxl $2,%ecx,%r13d + leal (%r9,%rbx,1),%r9d + andl %r15d,%esi + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 96-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %edx,%esi + xorl %r13d,%r14d + leal (%rbx,%rsi,1),%ebx + movl %r10d,%r12d + addl 44+64(%rsp),%eax + andl %r9d,%r12d + rorxl $25,%r9d,%r13d + rorxl $11,%r9d,%esi + leal (%rbx,%r14,1),%ebx + leal (%rax,%r12,1),%eax + andnl %r11d,%r9d,%r12d + xorl %esi,%r13d + rorxl $6,%r9d,%r14d + leal (%rax,%r12,1),%eax + xorl %r14d,%r13d + movl %ebx,%esi + rorxl $22,%ebx,%r12d + leal (%rax,%r13,1),%eax + xorl %ecx,%esi + rorxl $13,%ebx,%r14d + rorxl $2,%ebx,%r13d + leal (%r8,%rax,1),%r8d + andl %esi,%r15d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 112-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %ecx,%r15d + xorl %r13d,%r14d + leal (%rax,%r15,1),%eax + movl %r9d,%r12d + addl 0(%rsp),%r11d + andl %r8d,%r12d + rorxl $25,%r8d,%r13d + rorxl $11,%r8d,%r15d + leal (%rax,%r14,1),%eax + leal (%r11,%r12,1),%r11d + andnl %r10d,%r8d,%r12d + xorl %r15d,%r13d + rorxl $6,%r8d,%r14d + leal (%r11,%r12,1),%r11d + xorl %r14d,%r13d + movl %eax,%r15d + rorxl $22,%eax,%r12d + leal (%r11,%r13,1),%r11d + xorl %ebx,%r15d + rorxl $13,%eax,%r14d + rorxl $2,%eax,%r13d + leal (%rdx,%r11,1),%edx + andl %r15d,%esi + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 128-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %ebx,%esi + xorl %r13d,%r14d + leal (%r11,%rsi,1),%r11d + movl %r8d,%r12d + addl 4(%rsp),%r10d + andl %edx,%r12d + rorxl $25,%edx,%r13d + rorxl $11,%edx,%esi + leal (%r11,%r14,1),%r11d + leal (%r10,%r12,1),%r10d + andnl %r9d,%edx,%r12d + xorl %esi,%r13d + rorxl $6,%edx,%r14d + leal (%r10,%r12,1),%r10d + xorl %r14d,%r13d + movl %r11d,%esi + rorxl $22,%r11d,%r12d + leal (%r10,%r13,1),%r10d + xorl %eax,%esi + rorxl $13,%r11d,%r14d + rorxl $2,%r11d,%r13d + leal (%rcx,%r10,1),%ecx + andl %esi,%r15d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 144-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %eax,%r15d + xorl %r13d,%r14d + leal (%r10,%r15,1),%r10d + movl %edx,%r12d + addl 8(%rsp),%r9d + andl %ecx,%r12d + rorxl $25,%ecx,%r13d + rorxl $11,%ecx,%r15d + leal (%r10,%r14,1),%r10d + leal (%r9,%r12,1),%r9d + andnl %r8d,%ecx,%r12d + xorl %r15d,%r13d + rorxl $6,%ecx,%r14d + leal (%r9,%r12,1),%r9d + xorl %r14d,%r13d + movl %r10d,%r15d + rorxl $22,%r10d,%r12d + leal (%r9,%r13,1),%r9d + xorl %r11d,%r15d + rorxl $13,%r10d,%r14d + rorxl $2,%r10d,%r13d + leal (%rbx,%r9,1),%ebx + andl %r15d,%esi + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 160-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r11d,%esi + xorl %r13d,%r14d + leal (%r9,%rsi,1),%r9d + movl %ecx,%r12d + addl 12(%rsp),%r8d + andl %ebx,%r12d + rorxl $25,%ebx,%r13d + rorxl $11,%ebx,%esi + leal (%r9,%r14,1),%r9d + leal (%r8,%r12,1),%r8d + andnl %edx,%ebx,%r12d + xorl %esi,%r13d + rorxl $6,%ebx,%r14d + leal (%r8,%r12,1),%r8d + xorl %r14d,%r13d + movl %r9d,%esi + rorxl $22,%r9d,%r12d + leal (%r8,%r13,1),%r8d + xorl %r10d,%esi + rorxl $13,%r9d,%r14d + rorxl $2,%r9d,%r13d + leal (%rax,%r8,1),%eax + andl %esi,%r15d + vaesenclast %xmm10,%xmm9,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 176-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r10d,%r15d + xorl %r13d,%r14d + leal (%r8,%r15,1),%r8d + movl %ebx,%r12d + addl 32(%rsp),%edx + andl %eax,%r12d + rorxl $25,%eax,%r13d + rorxl $11,%eax,%r15d + leal (%r8,%r14,1),%r8d + leal (%rdx,%r12,1),%edx + andnl %ecx,%eax,%r12d + xorl %r15d,%r13d + rorxl $6,%eax,%r14d + leal (%rdx,%r12,1),%edx + xorl %r14d,%r13d + movl %r8d,%r15d + rorxl $22,%r8d,%r12d + leal (%rdx,%r13,1),%edx + xorl %r9d,%r15d + rorxl $13,%r8d,%r14d + rorxl $2,%r8d,%r13d + leal (%r11,%rdx,1),%r11d + andl %r15d,%esi + vpand %xmm12,%xmm11,%xmm8 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 192-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r9d,%esi + xorl %r13d,%r14d + leal (%rdx,%rsi,1),%edx + movl %eax,%r12d + addl 36(%rsp),%ecx + andl %r11d,%r12d + rorxl $25,%r11d,%r13d + rorxl $11,%r11d,%esi + leal (%rdx,%r14,1),%edx + leal (%rcx,%r12,1),%ecx + andnl %ebx,%r11d,%r12d + xorl %esi,%r13d + rorxl $6,%r11d,%r14d + leal (%rcx,%r12,1),%ecx + xorl %r14d,%r13d + movl %edx,%esi + rorxl $22,%edx,%r12d + leal (%rcx,%r13,1),%ecx + xorl %r8d,%esi + rorxl $13,%edx,%r14d + rorxl $2,%edx,%r13d + leal (%r10,%rcx,1),%r10d + andl %esi,%r15d + vaesenclast %xmm10,%xmm9,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 208-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r8d,%r15d + xorl %r13d,%r14d + leal (%rcx,%r15,1),%ecx + movl %r11d,%r12d + addl 40(%rsp),%ebx + andl %r10d,%r12d + rorxl $25,%r10d,%r13d + rorxl $11,%r10d,%r15d + leal (%rcx,%r14,1),%ecx + leal (%rbx,%r12,1),%ebx + andnl %eax,%r10d,%r12d + xorl %r15d,%r13d + rorxl $6,%r10d,%r14d + leal (%rbx,%r12,1),%ebx + xorl %r14d,%r13d + movl %ecx,%r15d + rorxl $22,%ecx,%r12d + leal (%rbx,%r13,1),%ebx + xorl %edx,%r15d + rorxl $13,%ecx,%r14d + rorxl $2,%ecx,%r13d + leal (%r9,%rbx,1),%r9d + andl %r15d,%esi + vpand %xmm13,%xmm11,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 224-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %edx,%esi + xorl %r13d,%r14d + leal (%rbx,%rsi,1),%ebx + movl %r10d,%r12d + addl 44(%rsp),%eax + andl %r9d,%r12d + rorxl $25,%r9d,%r13d + rorxl $11,%r9d,%esi + leal (%rbx,%r14,1),%ebx + leal (%rax,%r12,1),%eax + andnl %r11d,%r9d,%r12d + xorl %esi,%r13d + rorxl $6,%r9d,%r14d + leal (%rax,%r12,1),%eax + xorl %r14d,%r13d + movl %ebx,%esi + rorxl $22,%ebx,%r12d + leal (%rax,%r13,1),%eax + xorl %ecx,%esi + rorxl $13,%ebx,%r14d + rorxl $2,%ebx,%r13d + leal (%r8,%rax,1),%r8d + andl %esi,%r15d + vpor %xmm11,%xmm8,%xmm8 + vaesenclast %xmm10,%xmm9,%xmm11 + vmovdqu 0-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %ecx,%r15d + xorl %r13d,%r14d + leal (%rax,%r15,1),%eax + movl %r9d,%r12d + vpextrq $1,%xmm15,%r12 + vmovq %xmm15,%r13 + movq 552(%rsp),%r15 + addl %r14d,%eax + leaq 448(%rsp),%rbp + + vpand %xmm14,%xmm11,%xmm11 + vpor %xmm11,%xmm8,%xmm8 + vmovdqu %xmm8,(%r12,%r13,1) + leaq 16(%r13),%r13 + + addl 0(%r15),%eax + addl 4(%r15),%ebx + addl 8(%r15),%ecx + addl 12(%r15),%edx + addl 16(%r15),%r8d + addl 20(%r15),%r9d + addl 24(%r15),%r10d + addl 28(%r15),%r11d + + movl %eax,0(%r15) + movl %ebx,4(%r15) + movl %ecx,8(%r15) + movl %edx,12(%r15) + movl %r8d,16(%r15) + movl %r9d,20(%r15) + movl %r10d,24(%r15) + movl %r11d,28(%r15) + + cmpq 80(%rbp),%r13 + je L$done_avx2 + + xorl %r14d,%r14d + movl %ebx,%esi + movl %r9d,%r12d + xorl %ecx,%esi + jmp L$ower_avx2 +.p2align 4 +L$ower_avx2: + vmovdqu (%r13),%xmm9 + vpinsrq $0,%r13,%xmm15,%xmm15 + addl 0+16(%rbp),%r11d + andl %r8d,%r12d + rorxl $25,%r8d,%r13d + rorxl $11,%r8d,%r15d + leal (%rax,%r14,1),%eax + leal (%r11,%r12,1),%r11d + andnl %r10d,%r8d,%r12d + xorl %r15d,%r13d + rorxl $6,%r8d,%r14d + leal (%r11,%r12,1),%r11d + xorl %r14d,%r13d + movl %eax,%r15d + rorxl $22,%eax,%r12d + leal (%r11,%r13,1),%r11d + xorl %ebx,%r15d + rorxl $13,%eax,%r14d + rorxl $2,%eax,%r13d + leal (%rdx,%r11,1),%edx + andl %r15d,%esi + vpxor %xmm10,%xmm9,%xmm9 + vmovdqu 16-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %ebx,%esi + xorl %r13d,%r14d + leal (%r11,%rsi,1),%r11d + movl %r8d,%r12d + addl 4+16(%rbp),%r10d + andl %edx,%r12d + rorxl $25,%edx,%r13d + rorxl $11,%edx,%esi + leal (%r11,%r14,1),%r11d + leal (%r10,%r12,1),%r10d + andnl %r9d,%edx,%r12d + xorl %esi,%r13d + rorxl $6,%edx,%r14d + leal (%r10,%r12,1),%r10d + xorl %r14d,%r13d + movl %r11d,%esi + rorxl $22,%r11d,%r12d + leal (%r10,%r13,1),%r10d + xorl %eax,%esi + rorxl $13,%r11d,%r14d + rorxl $2,%r11d,%r13d + leal (%rcx,%r10,1),%ecx + andl %esi,%r15d + vpxor %xmm8,%xmm9,%xmm9 + xorl %r12d,%r14d + xorl %eax,%r15d + xorl %r13d,%r14d + leal (%r10,%r15,1),%r10d + movl %edx,%r12d + addl 8+16(%rbp),%r9d + andl %ecx,%r12d + rorxl $25,%ecx,%r13d + rorxl $11,%ecx,%r15d + leal (%r10,%r14,1),%r10d + leal (%r9,%r12,1),%r9d + andnl %r8d,%ecx,%r12d + xorl %r15d,%r13d + rorxl $6,%ecx,%r14d + leal (%r9,%r12,1),%r9d + xorl %r14d,%r13d + movl %r10d,%r15d + rorxl $22,%r10d,%r12d + leal (%r9,%r13,1),%r9d + xorl %r11d,%r15d + rorxl $13,%r10d,%r14d + rorxl $2,%r10d,%r13d + leal (%rbx,%r9,1),%ebx + andl %r15d,%esi + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 32-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r11d,%esi + xorl %r13d,%r14d + leal (%r9,%rsi,1),%r9d + movl %ecx,%r12d + addl 12+16(%rbp),%r8d + andl %ebx,%r12d + rorxl $25,%ebx,%r13d + rorxl $11,%ebx,%esi + leal (%r9,%r14,1),%r9d + leal (%r8,%r12,1),%r8d + andnl %edx,%ebx,%r12d + xorl %esi,%r13d + rorxl $6,%ebx,%r14d + leal (%r8,%r12,1),%r8d + xorl %r14d,%r13d + movl %r9d,%esi + rorxl $22,%r9d,%r12d + leal (%r8,%r13,1),%r8d + xorl %r10d,%esi + rorxl $13,%r9d,%r14d + rorxl $2,%r9d,%r13d + leal (%rax,%r8,1),%eax + andl %esi,%r15d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 48-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r10d,%r15d + xorl %r13d,%r14d + leal (%r8,%r15,1),%r8d + movl %ebx,%r12d + addl 32+16(%rbp),%edx + andl %eax,%r12d + rorxl $25,%eax,%r13d + rorxl $11,%eax,%r15d + leal (%r8,%r14,1),%r8d + leal (%rdx,%r12,1),%edx + andnl %ecx,%eax,%r12d + xorl %r15d,%r13d + rorxl $6,%eax,%r14d + leal (%rdx,%r12,1),%edx + xorl %r14d,%r13d + movl %r8d,%r15d + rorxl $22,%r8d,%r12d + leal (%rdx,%r13,1),%edx + xorl %r9d,%r15d + rorxl $13,%r8d,%r14d + rorxl $2,%r8d,%r13d + leal (%r11,%rdx,1),%r11d + andl %r15d,%esi + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 64-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r9d,%esi + xorl %r13d,%r14d + leal (%rdx,%rsi,1),%edx + movl %eax,%r12d + addl 36+16(%rbp),%ecx + andl %r11d,%r12d + rorxl $25,%r11d,%r13d + rorxl $11,%r11d,%esi + leal (%rdx,%r14,1),%edx + leal (%rcx,%r12,1),%ecx + andnl %ebx,%r11d,%r12d + xorl %esi,%r13d + rorxl $6,%r11d,%r14d + leal (%rcx,%r12,1),%ecx + xorl %r14d,%r13d + movl %edx,%esi + rorxl $22,%edx,%r12d + leal (%rcx,%r13,1),%ecx + xorl %r8d,%esi + rorxl $13,%edx,%r14d + rorxl $2,%edx,%r13d + leal (%r10,%rcx,1),%r10d + andl %esi,%r15d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 80-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r8d,%r15d + xorl %r13d,%r14d + leal (%rcx,%r15,1),%ecx + movl %r11d,%r12d + addl 40+16(%rbp),%ebx + andl %r10d,%r12d + rorxl $25,%r10d,%r13d + rorxl $11,%r10d,%r15d + leal (%rcx,%r14,1),%ecx + leal (%rbx,%r12,1),%ebx + andnl %eax,%r10d,%r12d + xorl %r15d,%r13d + rorxl $6,%r10d,%r14d + leal (%rbx,%r12,1),%ebx + xorl %r14d,%r13d + movl %ecx,%r15d + rorxl $22,%ecx,%r12d + leal (%rbx,%r13,1),%ebx + xorl %edx,%r15d + rorxl $13,%ecx,%r14d + rorxl $2,%ecx,%r13d + leal (%r9,%rbx,1),%r9d + andl %r15d,%esi + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 96-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %edx,%esi + xorl %r13d,%r14d + leal (%rbx,%rsi,1),%ebx + movl %r10d,%r12d + addl 44+16(%rbp),%eax + andl %r9d,%r12d + rorxl $25,%r9d,%r13d + rorxl $11,%r9d,%esi + leal (%rbx,%r14,1),%ebx + leal (%rax,%r12,1),%eax + andnl %r11d,%r9d,%r12d + xorl %esi,%r13d + rorxl $6,%r9d,%r14d + leal (%rax,%r12,1),%eax + xorl %r14d,%r13d + movl %ebx,%esi + rorxl $22,%ebx,%r12d + leal (%rax,%r13,1),%eax + xorl %ecx,%esi + rorxl $13,%ebx,%r14d + rorxl $2,%ebx,%r13d + leal (%r8,%rax,1),%r8d + andl %esi,%r15d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 112-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %ecx,%r15d + xorl %r13d,%r14d + leal (%rax,%r15,1),%eax + movl %r9d,%r12d + leaq -64(%rbp),%rbp + addl 0+16(%rbp),%r11d + andl %r8d,%r12d + rorxl $25,%r8d,%r13d + rorxl $11,%r8d,%r15d + leal (%rax,%r14,1),%eax + leal (%r11,%r12,1),%r11d + andnl %r10d,%r8d,%r12d + xorl %r15d,%r13d + rorxl $6,%r8d,%r14d + leal (%r11,%r12,1),%r11d + xorl %r14d,%r13d + movl %eax,%r15d + rorxl $22,%eax,%r12d + leal (%r11,%r13,1),%r11d + xorl %ebx,%r15d + rorxl $13,%eax,%r14d + rorxl $2,%eax,%r13d + leal (%rdx,%r11,1),%edx + andl %r15d,%esi + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 128-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %ebx,%esi + xorl %r13d,%r14d + leal (%r11,%rsi,1),%r11d + movl %r8d,%r12d + addl 4+16(%rbp),%r10d + andl %edx,%r12d + rorxl $25,%edx,%r13d + rorxl $11,%edx,%esi + leal (%r11,%r14,1),%r11d + leal (%r10,%r12,1),%r10d + andnl %r9d,%edx,%r12d + xorl %esi,%r13d + rorxl $6,%edx,%r14d + leal (%r10,%r12,1),%r10d + xorl %r14d,%r13d + movl %r11d,%esi + rorxl $22,%r11d,%r12d + leal (%r10,%r13,1),%r10d + xorl %eax,%esi + rorxl $13,%r11d,%r14d + rorxl $2,%r11d,%r13d + leal (%rcx,%r10,1),%ecx + andl %esi,%r15d + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 144-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %eax,%r15d + xorl %r13d,%r14d + leal (%r10,%r15,1),%r10d + movl %edx,%r12d + addl 8+16(%rbp),%r9d + andl %ecx,%r12d + rorxl $25,%ecx,%r13d + rorxl $11,%ecx,%r15d + leal (%r10,%r14,1),%r10d + leal (%r9,%r12,1),%r9d + andnl %r8d,%ecx,%r12d + xorl %r15d,%r13d + rorxl $6,%ecx,%r14d + leal (%r9,%r12,1),%r9d + xorl %r14d,%r13d + movl %r10d,%r15d + rorxl $22,%r10d,%r12d + leal (%r9,%r13,1),%r9d + xorl %r11d,%r15d + rorxl $13,%r10d,%r14d + rorxl $2,%r10d,%r13d + leal (%rbx,%r9,1),%ebx + andl %r15d,%esi + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 160-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r11d,%esi + xorl %r13d,%r14d + leal (%r9,%rsi,1),%r9d + movl %ecx,%r12d + addl 12+16(%rbp),%r8d + andl %ebx,%r12d + rorxl $25,%ebx,%r13d + rorxl $11,%ebx,%esi + leal (%r9,%r14,1),%r9d + leal (%r8,%r12,1),%r8d + andnl %edx,%ebx,%r12d + xorl %esi,%r13d + rorxl $6,%ebx,%r14d + leal (%r8,%r12,1),%r8d + xorl %r14d,%r13d + movl %r9d,%esi + rorxl $22,%r9d,%r12d + leal (%r8,%r13,1),%r8d + xorl %r10d,%esi + rorxl $13,%r9d,%r14d + rorxl $2,%r9d,%r13d + leal (%rax,%r8,1),%eax + andl %esi,%r15d + vaesenclast %xmm10,%xmm9,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 176-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r10d,%r15d + xorl %r13d,%r14d + leal (%r8,%r15,1),%r8d + movl %ebx,%r12d + addl 32+16(%rbp),%edx + andl %eax,%r12d + rorxl $25,%eax,%r13d + rorxl $11,%eax,%r15d + leal (%r8,%r14,1),%r8d + leal (%rdx,%r12,1),%edx + andnl %ecx,%eax,%r12d + xorl %r15d,%r13d + rorxl $6,%eax,%r14d + leal (%rdx,%r12,1),%edx + xorl %r14d,%r13d + movl %r8d,%r15d + rorxl $22,%r8d,%r12d + leal (%rdx,%r13,1),%edx + xorl %r9d,%r15d + rorxl $13,%r8d,%r14d + rorxl $2,%r8d,%r13d + leal (%r11,%rdx,1),%r11d + andl %r15d,%esi + vpand %xmm12,%xmm11,%xmm8 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 192-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r9d,%esi + xorl %r13d,%r14d + leal (%rdx,%rsi,1),%edx + movl %eax,%r12d + addl 36+16(%rbp),%ecx + andl %r11d,%r12d + rorxl $25,%r11d,%r13d + rorxl $11,%r11d,%esi + leal (%rdx,%r14,1),%edx + leal (%rcx,%r12,1),%ecx + andnl %ebx,%r11d,%r12d + xorl %esi,%r13d + rorxl $6,%r11d,%r14d + leal (%rcx,%r12,1),%ecx + xorl %r14d,%r13d + movl %edx,%esi + rorxl $22,%edx,%r12d + leal (%rcx,%r13,1),%ecx + xorl %r8d,%esi + rorxl $13,%edx,%r14d + rorxl $2,%edx,%r13d + leal (%r10,%rcx,1),%r10d + andl %esi,%r15d + vaesenclast %xmm10,%xmm9,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 208-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %r8d,%r15d + xorl %r13d,%r14d + leal (%rcx,%r15,1),%ecx + movl %r11d,%r12d + addl 40+16(%rbp),%ebx + andl %r10d,%r12d + rorxl $25,%r10d,%r13d + rorxl $11,%r10d,%r15d + leal (%rcx,%r14,1),%ecx + leal (%rbx,%r12,1),%ebx + andnl %eax,%r10d,%r12d + xorl %r15d,%r13d + rorxl $6,%r10d,%r14d + leal (%rbx,%r12,1),%ebx + xorl %r14d,%r13d + movl %ecx,%r15d + rorxl $22,%ecx,%r12d + leal (%rbx,%r13,1),%ebx + xorl %edx,%r15d + rorxl $13,%ecx,%r14d + rorxl $2,%ecx,%r13d + leal (%r9,%rbx,1),%r9d + andl %r15d,%esi + vpand %xmm13,%xmm11,%xmm11 + vaesenc %xmm10,%xmm9,%xmm9 + vmovdqu 224-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %edx,%esi + xorl %r13d,%r14d + leal (%rbx,%rsi,1),%ebx + movl %r10d,%r12d + addl 44+16(%rbp),%eax + andl %r9d,%r12d + rorxl $25,%r9d,%r13d + rorxl $11,%r9d,%esi + leal (%rbx,%r14,1),%ebx + leal (%rax,%r12,1),%eax + andnl %r11d,%r9d,%r12d + xorl %esi,%r13d + rorxl $6,%r9d,%r14d + leal (%rax,%r12,1),%eax + xorl %r14d,%r13d + movl %ebx,%esi + rorxl $22,%ebx,%r12d + leal (%rax,%r13,1),%eax + xorl %ecx,%esi + rorxl $13,%ebx,%r14d + rorxl $2,%ebx,%r13d + leal (%r8,%rax,1),%r8d + andl %esi,%r15d + vpor %xmm11,%xmm8,%xmm8 + vaesenclast %xmm10,%xmm9,%xmm11 + vmovdqu 0-128(%rdi),%xmm10 + xorl %r12d,%r14d + xorl %ecx,%r15d + xorl %r13d,%r14d + leal (%rax,%r15,1),%eax + movl %r9d,%r12d + vmovq %xmm15,%r13 + vpextrq $1,%xmm15,%r15 + vpand %xmm14,%xmm11,%xmm11 + vpor %xmm11,%xmm8,%xmm8 + leaq -64(%rbp),%rbp + vmovdqu %xmm8,(%r15,%r13,1) + leaq 16(%r13),%r13 + cmpq %rsp,%rbp + jae L$ower_avx2 + + movq 552(%rsp),%r15 + leaq 64(%r13),%r13 + movq 560(%rsp),%rsi + addl %r14d,%eax + leaq 448(%rsp),%rsp + + addl 0(%r15),%eax + addl 4(%r15),%ebx + addl 8(%r15),%ecx + addl 12(%r15),%edx + addl 16(%r15),%r8d + addl 20(%r15),%r9d + addl 24(%r15),%r10d + leaq (%rsi,%r13,1),%r12 + addl 28(%r15),%r11d + + cmpq 64+16(%rsp),%r13 + + movl %eax,0(%r15) + cmoveq %rsp,%r12 + movl %ebx,4(%r15) + movl %ecx,8(%r15) + movl %edx,12(%r15) + movl %r8d,16(%r15) + movl %r9d,20(%r15) + movl %r10d,24(%r15) + movl %r11d,28(%r15) + + jbe L$oop_avx2 + leaq (%rsp),%rbp + + + + +L$done_avx2: + movq 64+32(%rbp),%r8 + movq 64+56(%rbp),%rsi + + vmovdqu %xmm8,(%r8) + vzeroall + movq -48(%rsi),%r15 + + movq -40(%rsi),%r14 + + movq -32(%rsi),%r13 + + movq -24(%rsi),%r12 + + movq -16(%rsi),%rbp + + movq -8(%rsi),%rbx + + leaq (%rsi),%rsp + +L$epilogue_avx2: + .byte 0xf3,0xc3 + + + +.p2align 5 +aesni_cbc_sha256_enc_shaext: + + movq 8(%rsp),%r10 + leaq K256+128(%rip),%rax + movdqu (%r9),%xmm1 + movdqu 16(%r9),%xmm2 + movdqa 512-128(%rax),%xmm3 + + movl 240(%rcx),%r11d + subq %rdi,%rsi + movups (%rcx),%xmm15 + movups (%r8),%xmm6 + movups 16(%rcx),%xmm4 + leaq 112(%rcx),%rcx + + pshufd $0x1b,%xmm1,%xmm0 + pshufd $0xb1,%xmm1,%xmm1 + pshufd $0x1b,%xmm2,%xmm2 + movdqa %xmm3,%xmm7 +.byte 102,15,58,15,202,8 + punpcklqdq %xmm0,%xmm2 + + jmp L$oop_shaext + +.p2align 4 +L$oop_shaext: + movdqu (%r10),%xmm10 + movdqu 16(%r10),%xmm11 + movdqu 32(%r10),%xmm12 +.byte 102,68,15,56,0,211 + movdqu 48(%r10),%xmm13 + + movdqa 0-128(%rax),%xmm0 + paddd %xmm10,%xmm0 +.byte 102,68,15,56,0,219 + movdqa %xmm2,%xmm9 + movdqa %xmm1,%xmm8 + movups 0(%rdi),%xmm14 + xorps %xmm15,%xmm14 + xorps %xmm14,%xmm6 + movups -80(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movups -64(%rcx),%xmm4 + aesenc %xmm5,%xmm6 +.byte 15,56,203,202 + + movdqa 32-128(%rax),%xmm0 + paddd %xmm11,%xmm0 +.byte 102,68,15,56,0,227 + leaq 64(%r10),%r10 + movups -48(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movups -32(%rcx),%xmm4 + aesenc %xmm5,%xmm6 +.byte 15,56,203,202 + + movdqa 64-128(%rax),%xmm0 + paddd %xmm12,%xmm0 +.byte 102,68,15,56,0,235 +.byte 69,15,56,204,211 + movups -16(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm13,%xmm3 +.byte 102,65,15,58,15,220,4 + paddd %xmm3,%xmm10 + movups 0(%rcx),%xmm4 + aesenc %xmm5,%xmm6 +.byte 15,56,203,202 + + movdqa 96-128(%rax),%xmm0 + paddd %xmm13,%xmm0 +.byte 69,15,56,205,213 +.byte 69,15,56,204,220 + movups 16(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movups 32(%rcx),%xmm4 + aesenc %xmm5,%xmm6 + movdqa %xmm10,%xmm3 +.byte 102,65,15,58,15,221,4 + paddd %xmm3,%xmm11 +.byte 15,56,203,202 + movdqa 128-128(%rax),%xmm0 + paddd %xmm10,%xmm0 +.byte 69,15,56,205,218 +.byte 69,15,56,204,229 + movups 48(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm11,%xmm3 +.byte 102,65,15,58,15,218,4 + paddd %xmm3,%xmm12 + cmpl $11,%r11d + jb L$aesenclast1 + movups 64(%rcx),%xmm4 + aesenc %xmm5,%xmm6 + movups 80(%rcx),%xmm5 + aesenc %xmm4,%xmm6 + je L$aesenclast1 + movups 96(%rcx),%xmm4 + aesenc %xmm5,%xmm6 + movups 112(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +L$aesenclast1: + aesenclast %xmm5,%xmm6 + movups 16-112(%rcx),%xmm4 + nop +.byte 15,56,203,202 + movups 16(%rdi),%xmm14 + xorps %xmm15,%xmm14 + movups %xmm6,0(%rsi,%rdi,1) + xorps %xmm14,%xmm6 + movups -80(%rcx),%xmm5 + aesenc %xmm4,%xmm6 + movdqa 160-128(%rax),%xmm0 + paddd %xmm11,%xmm0 +.byte 69,15,56,205,227 +.byte 69,15,56,204,234 + movups -64(%rcx),%xmm4 + aesenc %xmm5,%xmm6 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm12,%xmm3 +.byte 102,65,15,58,15,219,4 + paddd %xmm3,%xmm13 + movups -48(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +.byte 15,56,203,202 + movdqa 192-128(%rax),%xmm0 + paddd %xmm12,%xmm0 +.byte 69,15,56,205,236 +.byte 69,15,56,204,211 + movups -32(%rcx),%xmm4 + aesenc %xmm5,%xmm6 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm13,%xmm3 +.byte 102,65,15,58,15,220,4 + paddd %xmm3,%xmm10 + movups -16(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +.byte 15,56,203,202 + movdqa 224-128(%rax),%xmm0 + paddd %xmm13,%xmm0 +.byte 69,15,56,205,213 +.byte 69,15,56,204,220 + movups 0(%rcx),%xmm4 + aesenc %xmm5,%xmm6 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm10,%xmm3 +.byte 102,65,15,58,15,221,4 + paddd %xmm3,%xmm11 + movups 16(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +.byte 15,56,203,202 + movdqa 256-128(%rax),%xmm0 + paddd %xmm10,%xmm0 +.byte 69,15,56,205,218 +.byte 69,15,56,204,229 + movups 32(%rcx),%xmm4 + aesenc %xmm5,%xmm6 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm11,%xmm3 +.byte 102,65,15,58,15,218,4 + paddd %xmm3,%xmm12 + movups 48(%rcx),%xmm5 + aesenc %xmm4,%xmm6 + cmpl $11,%r11d + jb L$aesenclast2 + movups 64(%rcx),%xmm4 + aesenc %xmm5,%xmm6 + movups 80(%rcx),%xmm5 + aesenc %xmm4,%xmm6 + je L$aesenclast2 + movups 96(%rcx),%xmm4 + aesenc %xmm5,%xmm6 + movups 112(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +L$aesenclast2: + aesenclast %xmm5,%xmm6 + movups 16-112(%rcx),%xmm4 + nop +.byte 15,56,203,202 + movups 32(%rdi),%xmm14 + xorps %xmm15,%xmm14 + movups %xmm6,16(%rsi,%rdi,1) + xorps %xmm14,%xmm6 + movups -80(%rcx),%xmm5 + aesenc %xmm4,%xmm6 + movdqa 288-128(%rax),%xmm0 + paddd %xmm11,%xmm0 +.byte 69,15,56,205,227 +.byte 69,15,56,204,234 + movups -64(%rcx),%xmm4 + aesenc %xmm5,%xmm6 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm12,%xmm3 +.byte 102,65,15,58,15,219,4 + paddd %xmm3,%xmm13 + movups -48(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +.byte 15,56,203,202 + movdqa 320-128(%rax),%xmm0 + paddd %xmm12,%xmm0 +.byte 69,15,56,205,236 +.byte 69,15,56,204,211 + movups -32(%rcx),%xmm4 + aesenc %xmm5,%xmm6 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm13,%xmm3 +.byte 102,65,15,58,15,220,4 + paddd %xmm3,%xmm10 + movups -16(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +.byte 15,56,203,202 + movdqa 352-128(%rax),%xmm0 + paddd %xmm13,%xmm0 +.byte 69,15,56,205,213 +.byte 69,15,56,204,220 + movups 0(%rcx),%xmm4 + aesenc %xmm5,%xmm6 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm10,%xmm3 +.byte 102,65,15,58,15,221,4 + paddd %xmm3,%xmm11 + movups 16(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +.byte 15,56,203,202 + movdqa 384-128(%rax),%xmm0 + paddd %xmm10,%xmm0 +.byte 69,15,56,205,218 +.byte 69,15,56,204,229 + movups 32(%rcx),%xmm4 + aesenc %xmm5,%xmm6 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm11,%xmm3 +.byte 102,65,15,58,15,218,4 + paddd %xmm3,%xmm12 + movups 48(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +.byte 15,56,203,202 + movdqa 416-128(%rax),%xmm0 + paddd %xmm11,%xmm0 +.byte 69,15,56,205,227 +.byte 69,15,56,204,234 + cmpl $11,%r11d + jb L$aesenclast3 + movups 64(%rcx),%xmm4 + aesenc %xmm5,%xmm6 + movups 80(%rcx),%xmm5 + aesenc %xmm4,%xmm6 + je L$aesenclast3 + movups 96(%rcx),%xmm4 + aesenc %xmm5,%xmm6 + movups 112(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +L$aesenclast3: + aesenclast %xmm5,%xmm6 + movups 16-112(%rcx),%xmm4 + nop +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm12,%xmm3 +.byte 102,65,15,58,15,219,4 + paddd %xmm3,%xmm13 + movups 48(%rdi),%xmm14 + xorps %xmm15,%xmm14 + movups %xmm6,32(%rsi,%rdi,1) + xorps %xmm14,%xmm6 + movups -80(%rcx),%xmm5 + aesenc %xmm4,%xmm6 + movups -64(%rcx),%xmm4 + aesenc %xmm5,%xmm6 +.byte 15,56,203,202 + + movdqa 448-128(%rax),%xmm0 + paddd %xmm12,%xmm0 +.byte 69,15,56,205,236 + movdqa %xmm7,%xmm3 + movups -48(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movups -32(%rcx),%xmm4 + aesenc %xmm5,%xmm6 +.byte 15,56,203,202 + + movdqa 480-128(%rax),%xmm0 + paddd %xmm13,%xmm0 + movups -16(%rcx),%xmm5 + aesenc %xmm4,%xmm6 + movups 0(%rcx),%xmm4 + aesenc %xmm5,%xmm6 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movups 16(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +.byte 15,56,203,202 + + movups 32(%rcx),%xmm4 + aesenc %xmm5,%xmm6 + movups 48(%rcx),%xmm5 + aesenc %xmm4,%xmm6 + cmpl $11,%r11d + jb L$aesenclast4 + movups 64(%rcx),%xmm4 + aesenc %xmm5,%xmm6 + movups 80(%rcx),%xmm5 + aesenc %xmm4,%xmm6 + je L$aesenclast4 + movups 96(%rcx),%xmm4 + aesenc %xmm5,%xmm6 + movups 112(%rcx),%xmm5 + aesenc %xmm4,%xmm6 +L$aesenclast4: + aesenclast %xmm5,%xmm6 + movups 16-112(%rcx),%xmm4 + nop + + paddd %xmm9,%xmm2 + paddd %xmm8,%xmm1 + + decq %rdx + movups %xmm6,48(%rsi,%rdi,1) + leaq 64(%rdi),%rdi + jnz L$oop_shaext + + pshufd $0xb1,%xmm2,%xmm2 + pshufd $0x1b,%xmm1,%xmm3 + pshufd $0xb1,%xmm1,%xmm1 + punpckhqdq %xmm2,%xmm1 +.byte 102,15,58,15,211,8 + + movups %xmm6,(%r8) + movdqu %xmm1,(%r9) + movdqu %xmm2,16(%r9) + .byte 0xf3,0xc3 + + diff --git a/vere/ext/openssl/gen/macos-x86_64/crypto/aes/aesni-x86_64.s b/vere/ext/openssl/gen/macos-x86_64/crypto/aes/aesni-x86_64.s new file mode 100644 index 0000000..924900d --- /dev/null +++ b/vere/ext/openssl/gen/macos-x86_64/crypto/aes/aesni-x86_64.s @@ -0,0 +1,4464 @@ +.text + +.globl _aesni_encrypt + +.p2align 4 +_aesni_encrypt: + + movups (%rdi),%xmm2 + movl 240(%rdx),%eax + movups (%rdx),%xmm0 + movups 16(%rdx),%xmm1 + leaq 32(%rdx),%rdx + xorps %xmm0,%xmm2 +L$oop_enc1_1: +.byte 102,15,56,220,209 + decl %eax + movups (%rdx),%xmm1 + leaq 16(%rdx),%rdx + jnz L$oop_enc1_1 +.byte 102,15,56,221,209 + pxor %xmm0,%xmm0 + pxor %xmm1,%xmm1 + movups %xmm2,(%rsi) + pxor %xmm2,%xmm2 + .byte 0xf3,0xc3 + + + +.globl _aesni_decrypt + +.p2align 4 +_aesni_decrypt: + + movups (%rdi),%xmm2 + movl 240(%rdx),%eax + movups (%rdx),%xmm0 + movups 16(%rdx),%xmm1 + leaq 32(%rdx),%rdx + xorps %xmm0,%xmm2 +L$oop_dec1_2: +.byte 102,15,56,222,209 + decl %eax + movups (%rdx),%xmm1 + leaq 16(%rdx),%rdx + jnz L$oop_dec1_2 +.byte 102,15,56,223,209 + pxor %xmm0,%xmm0 + pxor %xmm1,%xmm1 + movups %xmm2,(%rsi) + pxor %xmm2,%xmm2 + .byte 0xf3,0xc3 + + + +.p2align 4 +_aesni_encrypt2: + + movups (%rcx),%xmm0 + shll $4,%eax + movups 16(%rcx),%xmm1 + xorps %xmm0,%xmm2 + xorps %xmm0,%xmm3 + movups 32(%rcx),%xmm0 + leaq 32(%rcx,%rax,1),%rcx + negq %rax + addq $16,%rax + +L$enc_loop2: +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 + movups -16(%rcx,%rax,1),%xmm0 + jnz L$enc_loop2 + +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,221,208 +.byte 102,15,56,221,216 + .byte 0xf3,0xc3 + + + +.p2align 4 +_aesni_decrypt2: + + movups (%rcx),%xmm0 + shll $4,%eax + movups 16(%rcx),%xmm1 + xorps %xmm0,%xmm2 + xorps %xmm0,%xmm3 + movups 32(%rcx),%xmm0 + leaq 32(%rcx,%rax,1),%rcx + negq %rax + addq $16,%rax + +L$dec_loop2: +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 + movups -16(%rcx,%rax,1),%xmm0 + jnz L$dec_loop2 + +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,223,208 +.byte 102,15,56,223,216 + .byte 0xf3,0xc3 + + + +.p2align 4 +_aesni_encrypt3: + + movups (%rcx),%xmm0 + shll $4,%eax + movups 16(%rcx),%xmm1 + xorps %xmm0,%xmm2 + xorps %xmm0,%xmm3 + xorps %xmm0,%xmm4 + movups 32(%rcx),%xmm0 + leaq 32(%rcx,%rax,1),%rcx + negq %rax + addq $16,%rax + +L$enc_loop3: +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 + movups -16(%rcx,%rax,1),%xmm0 + jnz L$enc_loop3 + +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,221,208 +.byte 102,15,56,221,216 +.byte 102,15,56,221,224 + .byte 0xf3,0xc3 + + + +.p2align 4 +_aesni_decrypt3: + + movups (%rcx),%xmm0 + shll $4,%eax + movups 16(%rcx),%xmm1 + xorps %xmm0,%xmm2 + xorps %xmm0,%xmm3 + xorps %xmm0,%xmm4 + movups 32(%rcx),%xmm0 + leaq 32(%rcx,%rax,1),%rcx + negq %rax + addq $16,%rax + +L$dec_loop3: +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 + movups -16(%rcx,%rax,1),%xmm0 + jnz L$dec_loop3 + +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,223,208 +.byte 102,15,56,223,216 +.byte 102,15,56,223,224 + .byte 0xf3,0xc3 + + + +.p2align 4 +_aesni_encrypt4: + + movups (%rcx),%xmm0 + shll $4,%eax + movups 16(%rcx),%xmm1 + xorps %xmm0,%xmm2 + xorps %xmm0,%xmm3 + xorps %xmm0,%xmm4 + xorps %xmm0,%xmm5 + movups 32(%rcx),%xmm0 + leaq 32(%rcx,%rax,1),%rcx + negq %rax +.byte 0x0f,0x1f,0x00 + addq $16,%rax + +L$enc_loop4: +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 + movups -16(%rcx,%rax,1),%xmm0 + jnz L$enc_loop4 + +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 +.byte 102,15,56,221,208 +.byte 102,15,56,221,216 +.byte 102,15,56,221,224 +.byte 102,15,56,221,232 + .byte 0xf3,0xc3 + + + +.p2align 4 +_aesni_decrypt4: + + movups (%rcx),%xmm0 + shll $4,%eax + movups 16(%rcx),%xmm1 + xorps %xmm0,%xmm2 + xorps %xmm0,%xmm3 + xorps %xmm0,%xmm4 + xorps %xmm0,%xmm5 + movups 32(%rcx),%xmm0 + leaq 32(%rcx,%rax,1),%rcx + negq %rax +.byte 0x0f,0x1f,0x00 + addq $16,%rax + +L$dec_loop4: +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 + movups -16(%rcx,%rax,1),%xmm0 + jnz L$dec_loop4 + +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 +.byte 102,15,56,223,208 +.byte 102,15,56,223,216 +.byte 102,15,56,223,224 +.byte 102,15,56,223,232 + .byte 0xf3,0xc3 + + + +.p2align 4 +_aesni_encrypt6: + + movups (%rcx),%xmm0 + shll $4,%eax + movups 16(%rcx),%xmm1 + xorps %xmm0,%xmm2 + pxor %xmm0,%xmm3 + pxor %xmm0,%xmm4 +.byte 102,15,56,220,209 + leaq 32(%rcx,%rax,1),%rcx + negq %rax +.byte 102,15,56,220,217 + pxor %xmm0,%xmm5 + pxor %xmm0,%xmm6 +.byte 102,15,56,220,225 + pxor %xmm0,%xmm7 + movups (%rcx,%rax,1),%xmm0 + addq $16,%rax + jmp L$enc_loop6_enter +.p2align 4 +L$enc_loop6: +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +L$enc_loop6_enter: +.byte 102,15,56,220,233 +.byte 102,15,56,220,241 +.byte 102,15,56,220,249 + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 +.byte 102,15,56,220,240 +.byte 102,15,56,220,248 + movups -16(%rcx,%rax,1),%xmm0 + jnz L$enc_loop6 + +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 +.byte 102,15,56,220,241 +.byte 102,15,56,220,249 +.byte 102,15,56,221,208 +.byte 102,15,56,221,216 +.byte 102,15,56,221,224 +.byte 102,15,56,221,232 +.byte 102,15,56,221,240 +.byte 102,15,56,221,248 + .byte 0xf3,0xc3 + + + +.p2align 4 +_aesni_decrypt6: + + movups (%rcx),%xmm0 + shll $4,%eax + movups 16(%rcx),%xmm1 + xorps %xmm0,%xmm2 + pxor %xmm0,%xmm3 + pxor %xmm0,%xmm4 +.byte 102,15,56,222,209 + leaq 32(%rcx,%rax,1),%rcx + negq %rax +.byte 102,15,56,222,217 + pxor %xmm0,%xmm5 + pxor %xmm0,%xmm6 +.byte 102,15,56,222,225 + pxor %xmm0,%xmm7 + movups (%rcx,%rax,1),%xmm0 + addq $16,%rax + jmp L$dec_loop6_enter +.p2align 4 +L$dec_loop6: +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +L$dec_loop6_enter: +.byte 102,15,56,222,233 +.byte 102,15,56,222,241 +.byte 102,15,56,222,249 + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 +.byte 102,15,56,222,240 +.byte 102,15,56,222,248 + movups -16(%rcx,%rax,1),%xmm0 + jnz L$dec_loop6 + +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 +.byte 102,15,56,222,241 +.byte 102,15,56,222,249 +.byte 102,15,56,223,208 +.byte 102,15,56,223,216 +.byte 102,15,56,223,224 +.byte 102,15,56,223,232 +.byte 102,15,56,223,240 +.byte 102,15,56,223,248 + .byte 0xf3,0xc3 + + + +.p2align 4 +_aesni_encrypt8: + + movups (%rcx),%xmm0 + shll $4,%eax + movups 16(%rcx),%xmm1 + xorps %xmm0,%xmm2 + xorps %xmm0,%xmm3 + pxor %xmm0,%xmm4 + pxor %xmm0,%xmm5 + pxor %xmm0,%xmm6 + leaq 32(%rcx,%rax,1),%rcx + negq %rax +.byte 102,15,56,220,209 + pxor %xmm0,%xmm7 + pxor %xmm0,%xmm8 +.byte 102,15,56,220,217 + pxor %xmm0,%xmm9 + movups (%rcx,%rax,1),%xmm0 + addq $16,%rax + jmp L$enc_loop8_inner +.p2align 4 +L$enc_loop8: +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +L$enc_loop8_inner: +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 +.byte 102,15,56,220,241 +.byte 102,15,56,220,249 +.byte 102,68,15,56,220,193 +.byte 102,68,15,56,220,201 +L$enc_loop8_enter: + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 +.byte 102,15,56,220,240 +.byte 102,15,56,220,248 +.byte 102,68,15,56,220,192 +.byte 102,68,15,56,220,200 + movups -16(%rcx,%rax,1),%xmm0 + jnz L$enc_loop8 + +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 +.byte 102,15,56,220,241 +.byte 102,15,56,220,249 +.byte 102,68,15,56,220,193 +.byte 102,68,15,56,220,201 +.byte 102,15,56,221,208 +.byte 102,15,56,221,216 +.byte 102,15,56,221,224 +.byte 102,15,56,221,232 +.byte 102,15,56,221,240 +.byte 102,15,56,221,248 +.byte 102,68,15,56,221,192 +.byte 102,68,15,56,221,200 + .byte 0xf3,0xc3 + + + +.p2align 4 +_aesni_decrypt8: + + movups (%rcx),%xmm0 + shll $4,%eax + movups 16(%rcx),%xmm1 + xorps %xmm0,%xmm2 + xorps %xmm0,%xmm3 + pxor %xmm0,%xmm4 + pxor %xmm0,%xmm5 + pxor %xmm0,%xmm6 + leaq 32(%rcx,%rax,1),%rcx + negq %rax +.byte 102,15,56,222,209 + pxor %xmm0,%xmm7 + pxor %xmm0,%xmm8 +.byte 102,15,56,222,217 + pxor %xmm0,%xmm9 + movups (%rcx,%rax,1),%xmm0 + addq $16,%rax + jmp L$dec_loop8_inner +.p2align 4 +L$dec_loop8: +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +L$dec_loop8_inner: +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 +.byte 102,15,56,222,241 +.byte 102,15,56,222,249 +.byte 102,68,15,56,222,193 +.byte 102,68,15,56,222,201 +L$dec_loop8_enter: + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 +.byte 102,15,56,222,240 +.byte 102,15,56,222,248 +.byte 102,68,15,56,222,192 +.byte 102,68,15,56,222,200 + movups -16(%rcx,%rax,1),%xmm0 + jnz L$dec_loop8 + +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 +.byte 102,15,56,222,241 +.byte 102,15,56,222,249 +.byte 102,68,15,56,222,193 +.byte 102,68,15,56,222,201 +.byte 102,15,56,223,208 +.byte 102,15,56,223,216 +.byte 102,15,56,223,224 +.byte 102,15,56,223,232 +.byte 102,15,56,223,240 +.byte 102,15,56,223,248 +.byte 102,68,15,56,223,192 +.byte 102,68,15,56,223,200 + .byte 0xf3,0xc3 + + +.globl _aesni_ecb_encrypt + +.p2align 4 +_aesni_ecb_encrypt: + + andq $-16,%rdx + jz L$ecb_ret + + movl 240(%rcx),%eax + movups (%rcx),%xmm0 + movq %rcx,%r11 + movl %eax,%r10d + testl %r8d,%r8d + jz L$ecb_decrypt + + cmpq $0x80,%rdx + jb L$ecb_enc_tail + + movdqu (%rdi),%xmm2 + movdqu 16(%rdi),%xmm3 + movdqu 32(%rdi),%xmm4 + movdqu 48(%rdi),%xmm5 + movdqu 64(%rdi),%xmm6 + movdqu 80(%rdi),%xmm7 + movdqu 96(%rdi),%xmm8 + movdqu 112(%rdi),%xmm9 + leaq 128(%rdi),%rdi + subq $0x80,%rdx + jmp L$ecb_enc_loop8_enter +.p2align 4 +L$ecb_enc_loop8: + movups %xmm2,(%rsi) + movq %r11,%rcx + movdqu (%rdi),%xmm2 + movl %r10d,%eax + movups %xmm3,16(%rsi) + movdqu 16(%rdi),%xmm3 + movups %xmm4,32(%rsi) + movdqu 32(%rdi),%xmm4 + movups %xmm5,48(%rsi) + movdqu 48(%rdi),%xmm5 + movups %xmm6,64(%rsi) + movdqu 64(%rdi),%xmm6 + movups %xmm7,80(%rsi) + movdqu 80(%rdi),%xmm7 + movups %xmm8,96(%rsi) + movdqu 96(%rdi),%xmm8 + movups %xmm9,112(%rsi) + leaq 128(%rsi),%rsi + movdqu 112(%rdi),%xmm9 + leaq 128(%rdi),%rdi +L$ecb_enc_loop8_enter: + + call _aesni_encrypt8 + + subq $0x80,%rdx + jnc L$ecb_enc_loop8 + + movups %xmm2,(%rsi) + movq %r11,%rcx + movups %xmm3,16(%rsi) + movl %r10d,%eax + movups %xmm4,32(%rsi) + movups %xmm5,48(%rsi) + movups %xmm6,64(%rsi) + movups %xmm7,80(%rsi) + movups %xmm8,96(%rsi) + movups %xmm9,112(%rsi) + leaq 128(%rsi),%rsi + addq $0x80,%rdx + jz L$ecb_ret + +L$ecb_enc_tail: + movups (%rdi),%xmm2 + cmpq $0x20,%rdx + jb L$ecb_enc_one + movups 16(%rdi),%xmm3 + je L$ecb_enc_two + movups 32(%rdi),%xmm4 + cmpq $0x40,%rdx + jb L$ecb_enc_three + movups 48(%rdi),%xmm5 + je L$ecb_enc_four + movups 64(%rdi),%xmm6 + cmpq $0x60,%rdx + jb L$ecb_enc_five + movups 80(%rdi),%xmm7 + je L$ecb_enc_six + movdqu 96(%rdi),%xmm8 + xorps %xmm9,%xmm9 + call _aesni_encrypt8 + movups %xmm2,(%rsi) + movups %xmm3,16(%rsi) + movups %xmm4,32(%rsi) + movups %xmm5,48(%rsi) + movups %xmm6,64(%rsi) + movups %xmm7,80(%rsi) + movups %xmm8,96(%rsi) + jmp L$ecb_ret +.p2align 4 +L$ecb_enc_one: + movups (%rcx),%xmm0 + movups 16(%rcx),%xmm1 + leaq 32(%rcx),%rcx + xorps %xmm0,%xmm2 +L$oop_enc1_3: +.byte 102,15,56,220,209 + decl %eax + movups (%rcx),%xmm1 + leaq 16(%rcx),%rcx + jnz L$oop_enc1_3 +.byte 102,15,56,221,209 + movups %xmm2,(%rsi) + jmp L$ecb_ret +.p2align 4 +L$ecb_enc_two: + call _aesni_encrypt2 + movups %xmm2,(%rsi) + movups %xmm3,16(%rsi) + jmp L$ecb_ret +.p2align 4 +L$ecb_enc_three: + call _aesni_encrypt3 + movups %xmm2,(%rsi) + movups %xmm3,16(%rsi) + movups %xmm4,32(%rsi) + jmp L$ecb_ret +.p2align 4 +L$ecb_enc_four: + call _aesni_encrypt4 + movups %xmm2,(%rsi) + movups %xmm3,16(%rsi) + movups %xmm4,32(%rsi) + movups %xmm5,48(%rsi) + jmp L$ecb_ret +.p2align 4 +L$ecb_enc_five: + xorps %xmm7,%xmm7 + call _aesni_encrypt6 + movups %xmm2,(%rsi) + movups %xmm3,16(%rsi) + movups %xmm4,32(%rsi) + movups %xmm5,48(%rsi) + movups %xmm6,64(%rsi) + jmp L$ecb_ret +.p2align 4 +L$ecb_enc_six: + call _aesni_encrypt6 + movups %xmm2,(%rsi) + movups %xmm3,16(%rsi) + movups %xmm4,32(%rsi) + movups %xmm5,48(%rsi) + movups %xmm6,64(%rsi) + movups %xmm7,80(%rsi) + jmp L$ecb_ret + +.p2align 4 +L$ecb_decrypt: + cmpq $0x80,%rdx + jb L$ecb_dec_tail + + movdqu (%rdi),%xmm2 + movdqu 16(%rdi),%xmm3 + movdqu 32(%rdi),%xmm4 + movdqu 48(%rdi),%xmm5 + movdqu 64(%rdi),%xmm6 + movdqu 80(%rdi),%xmm7 + movdqu 96(%rdi),%xmm8 + movdqu 112(%rdi),%xmm9 + leaq 128(%rdi),%rdi + subq $0x80,%rdx + jmp L$ecb_dec_loop8_enter +.p2align 4 +L$ecb_dec_loop8: + movups %xmm2,(%rsi) + movq %r11,%rcx + movdqu (%rdi),%xmm2 + movl %r10d,%eax + movups %xmm3,16(%rsi) + movdqu 16(%rdi),%xmm3 + movups %xmm4,32(%rsi) + movdqu 32(%rdi),%xmm4 + movups %xmm5,48(%rsi) + movdqu 48(%rdi),%xmm5 + movups %xmm6,64(%rsi) + movdqu 64(%rdi),%xmm6 + movups %xmm7,80(%rsi) + movdqu 80(%rdi),%xmm7 + movups %xmm8,96(%rsi) + movdqu 96(%rdi),%xmm8 + movups %xmm9,112(%rsi) + leaq 128(%rsi),%rsi + movdqu 112(%rdi),%xmm9 + leaq 128(%rdi),%rdi +L$ecb_dec_loop8_enter: + + call _aesni_decrypt8 + + movups (%r11),%xmm0 + subq $0x80,%rdx + jnc L$ecb_dec_loop8 + + movups %xmm2,(%rsi) + pxor %xmm2,%xmm2 + movq %r11,%rcx + movups %xmm3,16(%rsi) + pxor %xmm3,%xmm3 + movl %r10d,%eax + movups %xmm4,32(%rsi) + pxor %xmm4,%xmm4 + movups %xmm5,48(%rsi) + pxor %xmm5,%xmm5 + movups %xmm6,64(%rsi) + pxor %xmm6,%xmm6 + movups %xmm7,80(%rsi) + pxor %xmm7,%xmm7 + movups %xmm8,96(%rsi) + pxor %xmm8,%xmm8 + movups %xmm9,112(%rsi) + pxor %xmm9,%xmm9 + leaq 128(%rsi),%rsi + addq $0x80,%rdx + jz L$ecb_ret + +L$ecb_dec_tail: + movups (%rdi),%xmm2 + cmpq $0x20,%rdx + jb L$ecb_dec_one + movups 16(%rdi),%xmm3 + je L$ecb_dec_two + movups 32(%rdi),%xmm4 + cmpq $0x40,%rdx + jb L$ecb_dec_three + movups 48(%rdi),%xmm5 + je L$ecb_dec_four + movups 64(%rdi),%xmm6 + cmpq $0x60,%rdx + jb L$ecb_dec_five + movups 80(%rdi),%xmm7 + je L$ecb_dec_six + movups 96(%rdi),%xmm8 + movups (%rcx),%xmm0 + xorps %xmm9,%xmm9 + call _aesni_decrypt8 + movups %xmm2,(%rsi) + pxor %xmm2,%xmm2 + movups %xmm3,16(%rsi) + pxor %xmm3,%xmm3 + movups %xmm4,32(%rsi) + pxor %xmm4,%xmm4 + movups %xmm5,48(%rsi) + pxor %xmm5,%xmm5 + movups %xmm6,64(%rsi) + pxor %xmm6,%xmm6 + movups %xmm7,80(%rsi) + pxor %xmm7,%xmm7 + movups %xmm8,96(%rsi) + pxor %xmm8,%xmm8 + pxor %xmm9,%xmm9 + jmp L$ecb_ret +.p2align 4 +L$ecb_dec_one: + movups (%rcx),%xmm0 + movups 16(%rcx),%xmm1 + leaq 32(%rcx),%rcx + xorps %xmm0,%xmm2 +L$oop_dec1_4: +.byte 102,15,56,222,209 + decl %eax + movups (%rcx),%xmm1 + leaq 16(%rcx),%rcx + jnz L$oop_dec1_4 +.byte 102,15,56,223,209 + movups %xmm2,(%rsi) + pxor %xmm2,%xmm2 + jmp L$ecb_ret +.p2align 4 +L$ecb_dec_two: + call _aesni_decrypt2 + movups %xmm2,(%rsi) + pxor %xmm2,%xmm2 + movups %xmm3,16(%rsi) + pxor %xmm3,%xmm3 + jmp L$ecb_ret +.p2align 4 +L$ecb_dec_three: + call _aesni_decrypt3 + movups %xmm2,(%rsi) + pxor %xmm2,%xmm2 + movups %xmm3,16(%rsi) + pxor %xmm3,%xmm3 + movups %xmm4,32(%rsi) + pxor %xmm4,%xmm4 + jmp L$ecb_ret +.p2align 4 +L$ecb_dec_four: + call _aesni_decrypt4 + movups %xmm2,(%rsi) + pxor %xmm2,%xmm2 + movups %xmm3,16(%rsi) + pxor %xmm3,%xmm3 + movups %xmm4,32(%rsi) + pxor %xmm4,%xmm4 + movups %xmm5,48(%rsi) + pxor %xmm5,%xmm5 + jmp L$ecb_ret +.p2align 4 +L$ecb_dec_five: + xorps %xmm7,%xmm7 + call _aesni_decrypt6 + movups %xmm2,(%rsi) + pxor %xmm2,%xmm2 + movups %xmm3,16(%rsi) + pxor %xmm3,%xmm3 + movups %xmm4,32(%rsi) + pxor %xmm4,%xmm4 + movups %xmm5,48(%rsi) + pxor %xmm5,%xmm5 + movups %xmm6,64(%rsi) + pxor %xmm6,%xmm6 + pxor %xmm7,%xmm7 + jmp L$ecb_ret +.p2align 4 +L$ecb_dec_six: + call _aesni_decrypt6 + movups %xmm2,(%rsi) + pxor %xmm2,%xmm2 + movups %xmm3,16(%rsi) + pxor %xmm3,%xmm3 + movups %xmm4,32(%rsi) + pxor %xmm4,%xmm4 + movups %xmm5,48(%rsi) + pxor %xmm5,%xmm5 + movups %xmm6,64(%rsi) + pxor %xmm6,%xmm6 + movups %xmm7,80(%rsi) + pxor %xmm7,%xmm7 + +L$ecb_ret: + xorps %xmm0,%xmm0 + pxor %xmm1,%xmm1 + .byte 0xf3,0xc3 + + +.globl _aesni_ccm64_encrypt_blocks + +.p2align 4 +_aesni_ccm64_encrypt_blocks: + + movl 240(%rcx),%eax + movdqu (%r8),%xmm6 + movdqa L$increment64(%rip),%xmm9 + movdqa L$bswap_mask(%rip),%xmm7 + + shll $4,%eax + movl $16,%r10d + leaq 0(%rcx),%r11 + movdqu (%r9),%xmm3 + movdqa %xmm6,%xmm2 + leaq 32(%rcx,%rax,1),%rcx +.byte 102,15,56,0,247 + subq %rax,%r10 + jmp L$ccm64_enc_outer +.p2align 4 +L$ccm64_enc_outer: + movups (%r11),%xmm0 + movq %r10,%rax + movups (%rdi),%xmm8 + + xorps %xmm0,%xmm2 + movups 16(%r11),%xmm1 + xorps %xmm8,%xmm0 + xorps %xmm0,%xmm3 + movups 32(%r11),%xmm0 + +L$ccm64_enc2_loop: +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 + movups -16(%rcx,%rax,1),%xmm0 + jnz L$ccm64_enc2_loop +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 + paddq %xmm9,%xmm6 + decq %rdx +.byte 102,15,56,221,208 +.byte 102,15,56,221,216 + + leaq 16(%rdi),%rdi + xorps %xmm2,%xmm8 + movdqa %xmm6,%xmm2 + movups %xmm8,(%rsi) +.byte 102,15,56,0,215 + leaq 16(%rsi),%rsi + jnz L$ccm64_enc_outer + + pxor %xmm0,%xmm0 + pxor %xmm1,%xmm1 + pxor %xmm2,%xmm2 + movups %xmm3,(%r9) + pxor %xmm3,%xmm3 + pxor %xmm8,%xmm8 + pxor %xmm6,%xmm6 + .byte 0xf3,0xc3 + + +.globl _aesni_ccm64_decrypt_blocks + +.p2align 4 +_aesni_ccm64_decrypt_blocks: + + movl 240(%rcx),%eax + movups (%r8),%xmm6 + movdqu (%r9),%xmm3 + movdqa L$increment64(%rip),%xmm9 + movdqa L$bswap_mask(%rip),%xmm7 + + movaps %xmm6,%xmm2 + movl %eax,%r10d + movq %rcx,%r11 +.byte 102,15,56,0,247 + movups (%rcx),%xmm0 + movups 16(%rcx),%xmm1 + leaq 32(%rcx),%rcx + xorps %xmm0,%xmm2 +L$oop_enc1_5: +.byte 102,15,56,220,209 + decl %eax + movups (%rcx),%xmm1 + leaq 16(%rcx),%rcx + jnz L$oop_enc1_5 +.byte 102,15,56,221,209 + shll $4,%r10d + movl $16,%eax + movups (%rdi),%xmm8 + paddq %xmm9,%xmm6 + leaq 16(%rdi),%rdi + subq %r10,%rax + leaq 32(%r11,%r10,1),%rcx + movq %rax,%r10 + jmp L$ccm64_dec_outer +.p2align 4 +L$ccm64_dec_outer: + xorps %xmm2,%xmm8 + movdqa %xmm6,%xmm2 + movups %xmm8,(%rsi) + leaq 16(%rsi),%rsi +.byte 102,15,56,0,215 + + subq $1,%rdx + jz L$ccm64_dec_break + + movups (%r11),%xmm0 + movq %r10,%rax + movups 16(%r11),%xmm1 + xorps %xmm0,%xmm8 + xorps %xmm0,%xmm2 + xorps %xmm8,%xmm3 + movups 32(%r11),%xmm0 + jmp L$ccm64_dec2_loop +.p2align 4 +L$ccm64_dec2_loop: +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 + movups -16(%rcx,%rax,1),%xmm0 + jnz L$ccm64_dec2_loop + movups (%rdi),%xmm8 + paddq %xmm9,%xmm6 +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,221,208 +.byte 102,15,56,221,216 + leaq 16(%rdi),%rdi + jmp L$ccm64_dec_outer + +.p2align 4 +L$ccm64_dec_break: + + movl 240(%r11),%eax + movups (%r11),%xmm0 + movups 16(%r11),%xmm1 + xorps %xmm0,%xmm8 + leaq 32(%r11),%r11 + xorps %xmm8,%xmm3 +L$oop_enc1_6: +.byte 102,15,56,220,217 + decl %eax + movups (%r11),%xmm1 + leaq 16(%r11),%r11 + jnz L$oop_enc1_6 +.byte 102,15,56,221,217 + pxor %xmm0,%xmm0 + pxor %xmm1,%xmm1 + pxor %xmm2,%xmm2 + movups %xmm3,(%r9) + pxor %xmm3,%xmm3 + pxor %xmm8,%xmm8 + pxor %xmm6,%xmm6 + .byte 0xf3,0xc3 + + +.globl _aesni_ctr32_encrypt_blocks + +.p2align 4 +_aesni_ctr32_encrypt_blocks: + + cmpq $1,%rdx + jne L$ctr32_bulk + + + + movups (%r8),%xmm2 + movups (%rdi),%xmm3 + movl 240(%rcx),%edx + movups (%rcx),%xmm0 + movups 16(%rcx),%xmm1 + leaq 32(%rcx),%rcx + xorps %xmm0,%xmm2 +L$oop_enc1_7: +.byte 102,15,56,220,209 + decl %edx + movups (%rcx),%xmm1 + leaq 16(%rcx),%rcx + jnz L$oop_enc1_7 +.byte 102,15,56,221,209 + pxor %xmm0,%xmm0 + pxor %xmm1,%xmm1 + xorps %xmm3,%xmm2 + pxor %xmm3,%xmm3 + movups %xmm2,(%rsi) + xorps %xmm2,%xmm2 + jmp L$ctr32_epilogue + +.p2align 4 +L$ctr32_bulk: + leaq (%rsp),%r11 + + pushq %rbp + + subq $128,%rsp + andq $-16,%rsp + + + + + movdqu (%r8),%xmm2 + movdqu (%rcx),%xmm0 + movl 12(%r8),%r8d + pxor %xmm0,%xmm2 + movl 12(%rcx),%ebp + movdqa %xmm2,0(%rsp) + bswapl %r8d + movdqa %xmm2,%xmm3 + movdqa %xmm2,%xmm4 + movdqa %xmm2,%xmm5 + movdqa %xmm2,64(%rsp) + movdqa %xmm2,80(%rsp) + movdqa %xmm2,96(%rsp) + movq %rdx,%r10 + movdqa %xmm2,112(%rsp) + + leaq 1(%r8),%rax + leaq 2(%r8),%rdx + bswapl %eax + bswapl %edx + xorl %ebp,%eax + xorl %ebp,%edx +.byte 102,15,58,34,216,3 + leaq 3(%r8),%rax + movdqa %xmm3,16(%rsp) +.byte 102,15,58,34,226,3 + bswapl %eax + movq %r10,%rdx + leaq 4(%r8),%r10 + movdqa %xmm4,32(%rsp) + xorl %ebp,%eax + bswapl %r10d +.byte 102,15,58,34,232,3 + xorl %ebp,%r10d + movdqa %xmm5,48(%rsp) + leaq 5(%r8),%r9 + movl %r10d,64+12(%rsp) + bswapl %r9d + leaq 6(%r8),%r10 + movl 240(%rcx),%eax + xorl %ebp,%r9d + bswapl %r10d + movl %r9d,80+12(%rsp) + xorl %ebp,%r10d + leaq 7(%r8),%r9 + movl %r10d,96+12(%rsp) + bswapl %r9d + movl _OPENSSL_ia32cap_P+4(%rip),%r10d + xorl %ebp,%r9d + andl $71303168,%r10d + movl %r9d,112+12(%rsp) + + movups 16(%rcx),%xmm1 + + movdqa 64(%rsp),%xmm6 + movdqa 80(%rsp),%xmm7 + + cmpq $8,%rdx + jb L$ctr32_tail + + subq $6,%rdx + cmpl $4194304,%r10d + je L$ctr32_6x + + leaq 128(%rcx),%rcx + subq $2,%rdx + jmp L$ctr32_loop8 + +.p2align 4 +L$ctr32_6x: + shll $4,%eax + movl $48,%r10d + bswapl %ebp + leaq 32(%rcx,%rax,1),%rcx + subq %rax,%r10 + jmp L$ctr32_loop6 + +.p2align 4 +L$ctr32_loop6: + addl $6,%r8d + movups -48(%rcx,%r10,1),%xmm0 +.byte 102,15,56,220,209 + movl %r8d,%eax + xorl %ebp,%eax +.byte 102,15,56,220,217 +.byte 0x0f,0x38,0xf1,0x44,0x24,12 + leal 1(%r8),%eax +.byte 102,15,56,220,225 + xorl %ebp,%eax +.byte 0x0f,0x38,0xf1,0x44,0x24,28 +.byte 102,15,56,220,233 + leal 2(%r8),%eax + xorl %ebp,%eax +.byte 102,15,56,220,241 +.byte 0x0f,0x38,0xf1,0x44,0x24,44 + leal 3(%r8),%eax +.byte 102,15,56,220,249 + movups -32(%rcx,%r10,1),%xmm1 + xorl %ebp,%eax + +.byte 102,15,56,220,208 +.byte 0x0f,0x38,0xf1,0x44,0x24,60 + leal 4(%r8),%eax +.byte 102,15,56,220,216 + xorl %ebp,%eax +.byte 0x0f,0x38,0xf1,0x44,0x24,76 +.byte 102,15,56,220,224 + leal 5(%r8),%eax + xorl %ebp,%eax +.byte 102,15,56,220,232 +.byte 0x0f,0x38,0xf1,0x44,0x24,92 + movq %r10,%rax +.byte 102,15,56,220,240 +.byte 102,15,56,220,248 + movups -16(%rcx,%r10,1),%xmm0 + + call L$enc_loop6 + + movdqu (%rdi),%xmm8 + movdqu 16(%rdi),%xmm9 + movdqu 32(%rdi),%xmm10 + movdqu 48(%rdi),%xmm11 + movdqu 64(%rdi),%xmm12 + movdqu 80(%rdi),%xmm13 + leaq 96(%rdi),%rdi + movups -64(%rcx,%r10,1),%xmm1 + pxor %xmm2,%xmm8 + movaps 0(%rsp),%xmm2 + pxor %xmm3,%xmm9 + movaps 16(%rsp),%xmm3 + pxor %xmm4,%xmm10 + movaps 32(%rsp),%xmm4 + pxor %xmm5,%xmm11 + movaps 48(%rsp),%xmm5 + pxor %xmm6,%xmm12 + movaps 64(%rsp),%xmm6 + pxor %xmm7,%xmm13 + movaps 80(%rsp),%xmm7 + movdqu %xmm8,(%rsi) + movdqu %xmm9,16(%rsi) + movdqu %xmm10,32(%rsi) + movdqu %xmm11,48(%rsi) + movdqu %xmm12,64(%rsi) + movdqu %xmm13,80(%rsi) + leaq 96(%rsi),%rsi + + subq $6,%rdx + jnc L$ctr32_loop6 + + addq $6,%rdx + jz L$ctr32_done + + leal -48(%r10),%eax + leaq -80(%rcx,%r10,1),%rcx + negl %eax + shrl $4,%eax + jmp L$ctr32_tail + +.p2align 5 +L$ctr32_loop8: + addl $8,%r8d + movdqa 96(%rsp),%xmm8 +.byte 102,15,56,220,209 + movl %r8d,%r9d + movdqa 112(%rsp),%xmm9 +.byte 102,15,56,220,217 + bswapl %r9d + movups 32-128(%rcx),%xmm0 +.byte 102,15,56,220,225 + xorl %ebp,%r9d + nop +.byte 102,15,56,220,233 + movl %r9d,0+12(%rsp) + leaq 1(%r8),%r9 +.byte 102,15,56,220,241 +.byte 102,15,56,220,249 +.byte 102,68,15,56,220,193 +.byte 102,68,15,56,220,201 + movups 48-128(%rcx),%xmm1 + bswapl %r9d +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 + xorl %ebp,%r9d +.byte 0x66,0x90 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 + movl %r9d,16+12(%rsp) + leaq 2(%r8),%r9 +.byte 102,15,56,220,240 +.byte 102,15,56,220,248 +.byte 102,68,15,56,220,192 +.byte 102,68,15,56,220,200 + movups 64-128(%rcx),%xmm0 + bswapl %r9d +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 + xorl %ebp,%r9d +.byte 0x66,0x90 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 + movl %r9d,32+12(%rsp) + leaq 3(%r8),%r9 +.byte 102,15,56,220,241 +.byte 102,15,56,220,249 +.byte 102,68,15,56,220,193 +.byte 102,68,15,56,220,201 + movups 80-128(%rcx),%xmm1 + bswapl %r9d +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 + xorl %ebp,%r9d +.byte 0x66,0x90 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 + movl %r9d,48+12(%rsp) + leaq 4(%r8),%r9 +.byte 102,15,56,220,240 +.byte 102,15,56,220,248 +.byte 102,68,15,56,220,192 +.byte 102,68,15,56,220,200 + movups 96-128(%rcx),%xmm0 + bswapl %r9d +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 + xorl %ebp,%r9d +.byte 0x66,0x90 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 + movl %r9d,64+12(%rsp) + leaq 5(%r8),%r9 +.byte 102,15,56,220,241 +.byte 102,15,56,220,249 +.byte 102,68,15,56,220,193 +.byte 102,68,15,56,220,201 + movups 112-128(%rcx),%xmm1 + bswapl %r9d +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 + xorl %ebp,%r9d +.byte 0x66,0x90 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 + movl %r9d,80+12(%rsp) + leaq 6(%r8),%r9 +.byte 102,15,56,220,240 +.byte 102,15,56,220,248 +.byte 102,68,15,56,220,192 +.byte 102,68,15,56,220,200 + movups 128-128(%rcx),%xmm0 + bswapl %r9d +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 + xorl %ebp,%r9d +.byte 0x66,0x90 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 + movl %r9d,96+12(%rsp) + leaq 7(%r8),%r9 +.byte 102,15,56,220,241 +.byte 102,15,56,220,249 +.byte 102,68,15,56,220,193 +.byte 102,68,15,56,220,201 + movups 144-128(%rcx),%xmm1 + bswapl %r9d +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 + xorl %ebp,%r9d + movdqu 0(%rdi),%xmm10 +.byte 102,15,56,220,232 + movl %r9d,112+12(%rsp) + cmpl $11,%eax +.byte 102,15,56,220,240 +.byte 102,15,56,220,248 +.byte 102,68,15,56,220,192 +.byte 102,68,15,56,220,200 + movups 160-128(%rcx),%xmm0 + + jb L$ctr32_enc_done + +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 +.byte 102,15,56,220,241 +.byte 102,15,56,220,249 +.byte 102,68,15,56,220,193 +.byte 102,68,15,56,220,201 + movups 176-128(%rcx),%xmm1 + +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 +.byte 102,15,56,220,240 +.byte 102,15,56,220,248 +.byte 102,68,15,56,220,192 +.byte 102,68,15,56,220,200 + movups 192-128(%rcx),%xmm0 + je L$ctr32_enc_done + +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 +.byte 102,15,56,220,241 +.byte 102,15,56,220,249 +.byte 102,68,15,56,220,193 +.byte 102,68,15,56,220,201 + movups 208-128(%rcx),%xmm1 + +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 +.byte 102,15,56,220,240 +.byte 102,15,56,220,248 +.byte 102,68,15,56,220,192 +.byte 102,68,15,56,220,200 + movups 224-128(%rcx),%xmm0 + jmp L$ctr32_enc_done + +.p2align 4 +L$ctr32_enc_done: + movdqu 16(%rdi),%xmm11 + pxor %xmm0,%xmm10 + movdqu 32(%rdi),%xmm12 + pxor %xmm0,%xmm11 + movdqu 48(%rdi),%xmm13 + pxor %xmm0,%xmm12 + movdqu 64(%rdi),%xmm14 + pxor %xmm0,%xmm13 + movdqu 80(%rdi),%xmm15 + pxor %xmm0,%xmm14 + pxor %xmm0,%xmm15 +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 +.byte 102,15,56,220,241 +.byte 102,15,56,220,249 +.byte 102,68,15,56,220,193 +.byte 102,68,15,56,220,201 + movdqu 96(%rdi),%xmm1 + leaq 128(%rdi),%rdi + +.byte 102,65,15,56,221,210 + pxor %xmm0,%xmm1 + movdqu 112-128(%rdi),%xmm10 +.byte 102,65,15,56,221,219 + pxor %xmm0,%xmm10 + movdqa 0(%rsp),%xmm11 +.byte 102,65,15,56,221,228 +.byte 102,65,15,56,221,237 + movdqa 16(%rsp),%xmm12 + movdqa 32(%rsp),%xmm13 +.byte 102,65,15,56,221,246 +.byte 102,65,15,56,221,255 + movdqa 48(%rsp),%xmm14 + movdqa 64(%rsp),%xmm15 +.byte 102,68,15,56,221,193 + movdqa 80(%rsp),%xmm0 + movups 16-128(%rcx),%xmm1 +.byte 102,69,15,56,221,202 + + movups %xmm2,(%rsi) + movdqa %xmm11,%xmm2 + movups %xmm3,16(%rsi) + movdqa %xmm12,%xmm3 + movups %xmm4,32(%rsi) + movdqa %xmm13,%xmm4 + movups %xmm5,48(%rsi) + movdqa %xmm14,%xmm5 + movups %xmm6,64(%rsi) + movdqa %xmm15,%xmm6 + movups %xmm7,80(%rsi) + movdqa %xmm0,%xmm7 + movups %xmm8,96(%rsi) + movups %xmm9,112(%rsi) + leaq 128(%rsi),%rsi + + subq $8,%rdx + jnc L$ctr32_loop8 + + addq $8,%rdx + jz L$ctr32_done + leaq -128(%rcx),%rcx + +L$ctr32_tail: + + + leaq 16(%rcx),%rcx + cmpq $4,%rdx + jb L$ctr32_loop3 + je L$ctr32_loop4 + + + shll $4,%eax + movdqa 96(%rsp),%xmm8 + pxor %xmm9,%xmm9 + + movups 16(%rcx),%xmm0 +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 + leaq 32-16(%rcx,%rax,1),%rcx + negq %rax +.byte 102,15,56,220,225 + addq $16,%rax + movups (%rdi),%xmm10 +.byte 102,15,56,220,233 +.byte 102,15,56,220,241 + movups 16(%rdi),%xmm11 + movups 32(%rdi),%xmm12 +.byte 102,15,56,220,249 +.byte 102,68,15,56,220,193 + + call L$enc_loop8_enter + + movdqu 48(%rdi),%xmm13 + pxor %xmm10,%xmm2 + movdqu 64(%rdi),%xmm10 + pxor %xmm11,%xmm3 + movdqu %xmm2,(%rsi) + pxor %xmm12,%xmm4 + movdqu %xmm3,16(%rsi) + pxor %xmm13,%xmm5 + movdqu %xmm4,32(%rsi) + pxor %xmm10,%xmm6 + movdqu %xmm5,48(%rsi) + movdqu %xmm6,64(%rsi) + cmpq $6,%rdx + jb L$ctr32_done + + movups 80(%rdi),%xmm11 + xorps %xmm11,%xmm7 + movups %xmm7,80(%rsi) + je L$ctr32_done + + movups 96(%rdi),%xmm12 + xorps %xmm12,%xmm8 + movups %xmm8,96(%rsi) + jmp L$ctr32_done + +.p2align 5 +L$ctr32_loop4: +.byte 102,15,56,220,209 + leaq 16(%rcx),%rcx + decl %eax +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 + movups (%rcx),%xmm1 + jnz L$ctr32_loop4 +.byte 102,15,56,221,209 +.byte 102,15,56,221,217 + movups (%rdi),%xmm10 + movups 16(%rdi),%xmm11 +.byte 102,15,56,221,225 +.byte 102,15,56,221,233 + movups 32(%rdi),%xmm12 + movups 48(%rdi),%xmm13 + + xorps %xmm10,%xmm2 + movups %xmm2,(%rsi) + xorps %xmm11,%xmm3 + movups %xmm3,16(%rsi) + pxor %xmm12,%xmm4 + movdqu %xmm4,32(%rsi) + pxor %xmm13,%xmm5 + movdqu %xmm5,48(%rsi) + jmp L$ctr32_done + +.p2align 5 +L$ctr32_loop3: +.byte 102,15,56,220,209 + leaq 16(%rcx),%rcx + decl %eax +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 + movups (%rcx),%xmm1 + jnz L$ctr32_loop3 +.byte 102,15,56,221,209 +.byte 102,15,56,221,217 +.byte 102,15,56,221,225 + + movups (%rdi),%xmm10 + xorps %xmm10,%xmm2 + movups %xmm2,(%rsi) + cmpq $2,%rdx + jb L$ctr32_done + + movups 16(%rdi),%xmm11 + xorps %xmm11,%xmm3 + movups %xmm3,16(%rsi) + je L$ctr32_done + + movups 32(%rdi),%xmm12 + xorps %xmm12,%xmm4 + movups %xmm4,32(%rsi) + +L$ctr32_done: + xorps %xmm0,%xmm0 + xorl %ebp,%ebp + pxor %xmm1,%xmm1 + pxor %xmm2,%xmm2 + pxor %xmm3,%xmm3 + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + pxor %xmm6,%xmm6 + pxor %xmm7,%xmm7 + movaps %xmm0,0(%rsp) + pxor %xmm8,%xmm8 + movaps %xmm0,16(%rsp) + pxor %xmm9,%xmm9 + movaps %xmm0,32(%rsp) + pxor %xmm10,%xmm10 + movaps %xmm0,48(%rsp) + pxor %xmm11,%xmm11 + movaps %xmm0,64(%rsp) + pxor %xmm12,%xmm12 + movaps %xmm0,80(%rsp) + pxor %xmm13,%xmm13 + movaps %xmm0,96(%rsp) + pxor %xmm14,%xmm14 + movaps %xmm0,112(%rsp) + pxor %xmm15,%xmm15 + movq -8(%r11),%rbp + + leaq (%r11),%rsp + +L$ctr32_epilogue: + .byte 0xf3,0xc3 + + +.globl _aesni_xts_encrypt + +.p2align 4 +_aesni_xts_encrypt: + + leaq (%rsp),%r11 + + pushq %rbp + + subq $112,%rsp + andq $-16,%rsp + movups (%r9),%xmm2 + movl 240(%r8),%eax + movl 240(%rcx),%r10d + movups (%r8),%xmm0 + movups 16(%r8),%xmm1 + leaq 32(%r8),%r8 + xorps %xmm0,%xmm2 +L$oop_enc1_8: +.byte 102,15,56,220,209 + decl %eax + movups (%r8),%xmm1 + leaq 16(%r8),%r8 + jnz L$oop_enc1_8 +.byte 102,15,56,221,209 + movups (%rcx),%xmm0 + movq %rcx,%rbp + movl %r10d,%eax + shll $4,%r10d + movq %rdx,%r9 + andq $-16,%rdx + + movups 16(%rcx,%r10,1),%xmm1 + + movdqa L$xts_magic(%rip),%xmm8 + movdqa %xmm2,%xmm15 + pshufd $0x5f,%xmm2,%xmm9 + pxor %xmm0,%xmm1 + movdqa %xmm9,%xmm14 + paddd %xmm9,%xmm9 + movdqa %xmm15,%xmm10 + psrad $31,%xmm14 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm14 + pxor %xmm0,%xmm10 + pxor %xmm14,%xmm15 + movdqa %xmm9,%xmm14 + paddd %xmm9,%xmm9 + movdqa %xmm15,%xmm11 + psrad $31,%xmm14 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm14 + pxor %xmm0,%xmm11 + pxor %xmm14,%xmm15 + movdqa %xmm9,%xmm14 + paddd %xmm9,%xmm9 + movdqa %xmm15,%xmm12 + psrad $31,%xmm14 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm14 + pxor %xmm0,%xmm12 + pxor %xmm14,%xmm15 + movdqa %xmm9,%xmm14 + paddd %xmm9,%xmm9 + movdqa %xmm15,%xmm13 + psrad $31,%xmm14 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm14 + pxor %xmm0,%xmm13 + pxor %xmm14,%xmm15 + movdqa %xmm15,%xmm14 + psrad $31,%xmm9 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm9 + pxor %xmm0,%xmm14 + pxor %xmm9,%xmm15 + movaps %xmm1,96(%rsp) + + subq $96,%rdx + jc L$xts_enc_short + + movl $16+96,%eax + leaq 32(%rbp,%r10,1),%rcx + subq %r10,%rax + movups 16(%rbp),%xmm1 + movq %rax,%r10 + leaq L$xts_magic(%rip),%r8 + jmp L$xts_enc_grandloop + +.p2align 5 +L$xts_enc_grandloop: + movdqu 0(%rdi),%xmm2 + movdqa %xmm0,%xmm8 + movdqu 16(%rdi),%xmm3 + pxor %xmm10,%xmm2 + movdqu 32(%rdi),%xmm4 + pxor %xmm11,%xmm3 +.byte 102,15,56,220,209 + movdqu 48(%rdi),%xmm5 + pxor %xmm12,%xmm4 +.byte 102,15,56,220,217 + movdqu 64(%rdi),%xmm6 + pxor %xmm13,%xmm5 +.byte 102,15,56,220,225 + movdqu 80(%rdi),%xmm7 + pxor %xmm15,%xmm8 + movdqa 96(%rsp),%xmm9 + pxor %xmm14,%xmm6 +.byte 102,15,56,220,233 + movups 32(%rbp),%xmm0 + leaq 96(%rdi),%rdi + pxor %xmm8,%xmm7 + + pxor %xmm9,%xmm10 +.byte 102,15,56,220,241 + pxor %xmm9,%xmm11 + movdqa %xmm10,0(%rsp) +.byte 102,15,56,220,249 + movups 48(%rbp),%xmm1 + pxor %xmm9,%xmm12 + +.byte 102,15,56,220,208 + pxor %xmm9,%xmm13 + movdqa %xmm11,16(%rsp) +.byte 102,15,56,220,216 + pxor %xmm9,%xmm14 + movdqa %xmm12,32(%rsp) +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 + pxor %xmm9,%xmm8 + movdqa %xmm14,64(%rsp) +.byte 102,15,56,220,240 +.byte 102,15,56,220,248 + movups 64(%rbp),%xmm0 + movdqa %xmm8,80(%rsp) + pshufd $0x5f,%xmm15,%xmm9 + jmp L$xts_enc_loop6 +.p2align 5 +L$xts_enc_loop6: +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 +.byte 102,15,56,220,241 +.byte 102,15,56,220,249 + movups -64(%rcx,%rax,1),%xmm1 + addq $32,%rax + +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 +.byte 102,15,56,220,240 +.byte 102,15,56,220,248 + movups -80(%rcx,%rax,1),%xmm0 + jnz L$xts_enc_loop6 + + movdqa (%r8),%xmm8 + movdqa %xmm9,%xmm14 + paddd %xmm9,%xmm9 +.byte 102,15,56,220,209 + paddq %xmm15,%xmm15 + psrad $31,%xmm14 +.byte 102,15,56,220,217 + pand %xmm8,%xmm14 + movups (%rbp),%xmm10 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 +.byte 102,15,56,220,241 + pxor %xmm14,%xmm15 + movaps %xmm10,%xmm11 +.byte 102,15,56,220,249 + movups -64(%rcx),%xmm1 + + movdqa %xmm9,%xmm14 +.byte 102,15,56,220,208 + paddd %xmm9,%xmm9 + pxor %xmm15,%xmm10 +.byte 102,15,56,220,216 + psrad $31,%xmm14 + paddq %xmm15,%xmm15 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 + pand %xmm8,%xmm14 + movaps %xmm11,%xmm12 +.byte 102,15,56,220,240 + pxor %xmm14,%xmm15 + movdqa %xmm9,%xmm14 +.byte 102,15,56,220,248 + movups -48(%rcx),%xmm0 + + paddd %xmm9,%xmm9 +.byte 102,15,56,220,209 + pxor %xmm15,%xmm11 + psrad $31,%xmm14 +.byte 102,15,56,220,217 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm14 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 + movdqa %xmm13,48(%rsp) + pxor %xmm14,%xmm15 +.byte 102,15,56,220,241 + movaps %xmm12,%xmm13 + movdqa %xmm9,%xmm14 +.byte 102,15,56,220,249 + movups -32(%rcx),%xmm1 + + paddd %xmm9,%xmm9 +.byte 102,15,56,220,208 + pxor %xmm15,%xmm12 + psrad $31,%xmm14 +.byte 102,15,56,220,216 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm14 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 +.byte 102,15,56,220,240 + pxor %xmm14,%xmm15 + movaps %xmm13,%xmm14 +.byte 102,15,56,220,248 + + movdqa %xmm9,%xmm0 + paddd %xmm9,%xmm9 +.byte 102,15,56,220,209 + pxor %xmm15,%xmm13 + psrad $31,%xmm0 +.byte 102,15,56,220,217 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm0 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 + pxor %xmm0,%xmm15 + movups (%rbp),%xmm0 +.byte 102,15,56,220,241 +.byte 102,15,56,220,249 + movups 16(%rbp),%xmm1 + + pxor %xmm15,%xmm14 +.byte 102,15,56,221,84,36,0 + psrad $31,%xmm9 + paddq %xmm15,%xmm15 +.byte 102,15,56,221,92,36,16 +.byte 102,15,56,221,100,36,32 + pand %xmm8,%xmm9 + movq %r10,%rax +.byte 102,15,56,221,108,36,48 +.byte 102,15,56,221,116,36,64 +.byte 102,15,56,221,124,36,80 + pxor %xmm9,%xmm15 + + leaq 96(%rsi),%rsi + movups %xmm2,-96(%rsi) + movups %xmm3,-80(%rsi) + movups %xmm4,-64(%rsi) + movups %xmm5,-48(%rsi) + movups %xmm6,-32(%rsi) + movups %xmm7,-16(%rsi) + subq $96,%rdx + jnc L$xts_enc_grandloop + + movl $16+96,%eax + subl %r10d,%eax + movq %rbp,%rcx + shrl $4,%eax + +L$xts_enc_short: + + movl %eax,%r10d + pxor %xmm0,%xmm10 + addq $96,%rdx + jz L$xts_enc_done + + pxor %xmm0,%xmm11 + cmpq $0x20,%rdx + jb L$xts_enc_one + pxor %xmm0,%xmm12 + je L$xts_enc_two + + pxor %xmm0,%xmm13 + cmpq $0x40,%rdx + jb L$xts_enc_three + pxor %xmm0,%xmm14 + je L$xts_enc_four + + movdqu (%rdi),%xmm2 + movdqu 16(%rdi),%xmm3 + movdqu 32(%rdi),%xmm4 + pxor %xmm10,%xmm2 + movdqu 48(%rdi),%xmm5 + pxor %xmm11,%xmm3 + movdqu 64(%rdi),%xmm6 + leaq 80(%rdi),%rdi + pxor %xmm12,%xmm4 + pxor %xmm13,%xmm5 + pxor %xmm14,%xmm6 + pxor %xmm7,%xmm7 + + call _aesni_encrypt6 + + xorps %xmm10,%xmm2 + movdqa %xmm15,%xmm10 + xorps %xmm11,%xmm3 + xorps %xmm12,%xmm4 + movdqu %xmm2,(%rsi) + xorps %xmm13,%xmm5 + movdqu %xmm3,16(%rsi) + xorps %xmm14,%xmm6 + movdqu %xmm4,32(%rsi) + movdqu %xmm5,48(%rsi) + movdqu %xmm6,64(%rsi) + leaq 80(%rsi),%rsi + jmp L$xts_enc_done + +.p2align 4 +L$xts_enc_one: + movups (%rdi),%xmm2 + leaq 16(%rdi),%rdi + xorps %xmm10,%xmm2 + movups (%rcx),%xmm0 + movups 16(%rcx),%xmm1 + leaq 32(%rcx),%rcx + xorps %xmm0,%xmm2 +L$oop_enc1_9: +.byte 102,15,56,220,209 + decl %eax + movups (%rcx),%xmm1 + leaq 16(%rcx),%rcx + jnz L$oop_enc1_9 +.byte 102,15,56,221,209 + xorps %xmm10,%xmm2 + movdqa %xmm11,%xmm10 + movups %xmm2,(%rsi) + leaq 16(%rsi),%rsi + jmp L$xts_enc_done + +.p2align 4 +L$xts_enc_two: + movups (%rdi),%xmm2 + movups 16(%rdi),%xmm3 + leaq 32(%rdi),%rdi + xorps %xmm10,%xmm2 + xorps %xmm11,%xmm3 + + call _aesni_encrypt2 + + xorps %xmm10,%xmm2 + movdqa %xmm12,%xmm10 + xorps %xmm11,%xmm3 + movups %xmm2,(%rsi) + movups %xmm3,16(%rsi) + leaq 32(%rsi),%rsi + jmp L$xts_enc_done + +.p2align 4 +L$xts_enc_three: + movups (%rdi),%xmm2 + movups 16(%rdi),%xmm3 + movups 32(%rdi),%xmm4 + leaq 48(%rdi),%rdi + xorps %xmm10,%xmm2 + xorps %xmm11,%xmm3 + xorps %xmm12,%xmm4 + + call _aesni_encrypt3 + + xorps %xmm10,%xmm2 + movdqa %xmm13,%xmm10 + xorps %xmm11,%xmm3 + xorps %xmm12,%xmm4 + movups %xmm2,(%rsi) + movups %xmm3,16(%rsi) + movups %xmm4,32(%rsi) + leaq 48(%rsi),%rsi + jmp L$xts_enc_done + +.p2align 4 +L$xts_enc_four: + movups (%rdi),%xmm2 + movups 16(%rdi),%xmm3 + movups 32(%rdi),%xmm4 + xorps %xmm10,%xmm2 + movups 48(%rdi),%xmm5 + leaq 64(%rdi),%rdi + xorps %xmm11,%xmm3 + xorps %xmm12,%xmm4 + xorps %xmm13,%xmm5 + + call _aesni_encrypt4 + + pxor %xmm10,%xmm2 + movdqa %xmm14,%xmm10 + pxor %xmm11,%xmm3 + pxor %xmm12,%xmm4 + movdqu %xmm2,(%rsi) + pxor %xmm13,%xmm5 + movdqu %xmm3,16(%rsi) + movdqu %xmm4,32(%rsi) + movdqu %xmm5,48(%rsi) + leaq 64(%rsi),%rsi + jmp L$xts_enc_done + +.p2align 4 +L$xts_enc_done: + andq $15,%r9 + jz L$xts_enc_ret + movq %r9,%rdx + +L$xts_enc_steal: + movzbl (%rdi),%eax + movzbl -16(%rsi),%ecx + leaq 1(%rdi),%rdi + movb %al,-16(%rsi) + movb %cl,0(%rsi) + leaq 1(%rsi),%rsi + subq $1,%rdx + jnz L$xts_enc_steal + + subq %r9,%rsi + movq %rbp,%rcx + movl %r10d,%eax + + movups -16(%rsi),%xmm2 + xorps %xmm10,%xmm2 + movups (%rcx),%xmm0 + movups 16(%rcx),%xmm1 + leaq 32(%rcx),%rcx + xorps %xmm0,%xmm2 +L$oop_enc1_10: +.byte 102,15,56,220,209 + decl %eax + movups (%rcx),%xmm1 + leaq 16(%rcx),%rcx + jnz L$oop_enc1_10 +.byte 102,15,56,221,209 + xorps %xmm10,%xmm2 + movups %xmm2,-16(%rsi) + +L$xts_enc_ret: + xorps %xmm0,%xmm0 + pxor %xmm1,%xmm1 + pxor %xmm2,%xmm2 + pxor %xmm3,%xmm3 + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + pxor %xmm6,%xmm6 + pxor %xmm7,%xmm7 + movaps %xmm0,0(%rsp) + pxor %xmm8,%xmm8 + movaps %xmm0,16(%rsp) + pxor %xmm9,%xmm9 + movaps %xmm0,32(%rsp) + pxor %xmm10,%xmm10 + movaps %xmm0,48(%rsp) + pxor %xmm11,%xmm11 + movaps %xmm0,64(%rsp) + pxor %xmm12,%xmm12 + movaps %xmm0,80(%rsp) + pxor %xmm13,%xmm13 + movaps %xmm0,96(%rsp) + pxor %xmm14,%xmm14 + pxor %xmm15,%xmm15 + movq -8(%r11),%rbp + + leaq (%r11),%rsp + +L$xts_enc_epilogue: + .byte 0xf3,0xc3 + + +.globl _aesni_xts_decrypt + +.p2align 4 +_aesni_xts_decrypt: + + leaq (%rsp),%r11 + + pushq %rbp + + subq $112,%rsp + andq $-16,%rsp + movups (%r9),%xmm2 + movl 240(%r8),%eax + movl 240(%rcx),%r10d + movups (%r8),%xmm0 + movups 16(%r8),%xmm1 + leaq 32(%r8),%r8 + xorps %xmm0,%xmm2 +L$oop_enc1_11: +.byte 102,15,56,220,209 + decl %eax + movups (%r8),%xmm1 + leaq 16(%r8),%r8 + jnz L$oop_enc1_11 +.byte 102,15,56,221,209 + xorl %eax,%eax + testq $15,%rdx + setnz %al + shlq $4,%rax + subq %rax,%rdx + + movups (%rcx),%xmm0 + movq %rcx,%rbp + movl %r10d,%eax + shll $4,%r10d + movq %rdx,%r9 + andq $-16,%rdx + + movups 16(%rcx,%r10,1),%xmm1 + + movdqa L$xts_magic(%rip),%xmm8 + movdqa %xmm2,%xmm15 + pshufd $0x5f,%xmm2,%xmm9 + pxor %xmm0,%xmm1 + movdqa %xmm9,%xmm14 + paddd %xmm9,%xmm9 + movdqa %xmm15,%xmm10 + psrad $31,%xmm14 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm14 + pxor %xmm0,%xmm10 + pxor %xmm14,%xmm15 + movdqa %xmm9,%xmm14 + paddd %xmm9,%xmm9 + movdqa %xmm15,%xmm11 + psrad $31,%xmm14 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm14 + pxor %xmm0,%xmm11 + pxor %xmm14,%xmm15 + movdqa %xmm9,%xmm14 + paddd %xmm9,%xmm9 + movdqa %xmm15,%xmm12 + psrad $31,%xmm14 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm14 + pxor %xmm0,%xmm12 + pxor %xmm14,%xmm15 + movdqa %xmm9,%xmm14 + paddd %xmm9,%xmm9 + movdqa %xmm15,%xmm13 + psrad $31,%xmm14 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm14 + pxor %xmm0,%xmm13 + pxor %xmm14,%xmm15 + movdqa %xmm15,%xmm14 + psrad $31,%xmm9 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm9 + pxor %xmm0,%xmm14 + pxor %xmm9,%xmm15 + movaps %xmm1,96(%rsp) + + subq $96,%rdx + jc L$xts_dec_short + + movl $16+96,%eax + leaq 32(%rbp,%r10,1),%rcx + subq %r10,%rax + movups 16(%rbp),%xmm1 + movq %rax,%r10 + leaq L$xts_magic(%rip),%r8 + jmp L$xts_dec_grandloop + +.p2align 5 +L$xts_dec_grandloop: + movdqu 0(%rdi),%xmm2 + movdqa %xmm0,%xmm8 + movdqu 16(%rdi),%xmm3 + pxor %xmm10,%xmm2 + movdqu 32(%rdi),%xmm4 + pxor %xmm11,%xmm3 +.byte 102,15,56,222,209 + movdqu 48(%rdi),%xmm5 + pxor %xmm12,%xmm4 +.byte 102,15,56,222,217 + movdqu 64(%rdi),%xmm6 + pxor %xmm13,%xmm5 +.byte 102,15,56,222,225 + movdqu 80(%rdi),%xmm7 + pxor %xmm15,%xmm8 + movdqa 96(%rsp),%xmm9 + pxor %xmm14,%xmm6 +.byte 102,15,56,222,233 + movups 32(%rbp),%xmm0 + leaq 96(%rdi),%rdi + pxor %xmm8,%xmm7 + + pxor %xmm9,%xmm10 +.byte 102,15,56,222,241 + pxor %xmm9,%xmm11 + movdqa %xmm10,0(%rsp) +.byte 102,15,56,222,249 + movups 48(%rbp),%xmm1 + pxor %xmm9,%xmm12 + +.byte 102,15,56,222,208 + pxor %xmm9,%xmm13 + movdqa %xmm11,16(%rsp) +.byte 102,15,56,222,216 + pxor %xmm9,%xmm14 + movdqa %xmm12,32(%rsp) +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 + pxor %xmm9,%xmm8 + movdqa %xmm14,64(%rsp) +.byte 102,15,56,222,240 +.byte 102,15,56,222,248 + movups 64(%rbp),%xmm0 + movdqa %xmm8,80(%rsp) + pshufd $0x5f,%xmm15,%xmm9 + jmp L$xts_dec_loop6 +.p2align 5 +L$xts_dec_loop6: +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 +.byte 102,15,56,222,241 +.byte 102,15,56,222,249 + movups -64(%rcx,%rax,1),%xmm1 + addq $32,%rax + +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 +.byte 102,15,56,222,240 +.byte 102,15,56,222,248 + movups -80(%rcx,%rax,1),%xmm0 + jnz L$xts_dec_loop6 + + movdqa (%r8),%xmm8 + movdqa %xmm9,%xmm14 + paddd %xmm9,%xmm9 +.byte 102,15,56,222,209 + paddq %xmm15,%xmm15 + psrad $31,%xmm14 +.byte 102,15,56,222,217 + pand %xmm8,%xmm14 + movups (%rbp),%xmm10 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 +.byte 102,15,56,222,241 + pxor %xmm14,%xmm15 + movaps %xmm10,%xmm11 +.byte 102,15,56,222,249 + movups -64(%rcx),%xmm1 + + movdqa %xmm9,%xmm14 +.byte 102,15,56,222,208 + paddd %xmm9,%xmm9 + pxor %xmm15,%xmm10 +.byte 102,15,56,222,216 + psrad $31,%xmm14 + paddq %xmm15,%xmm15 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 + pand %xmm8,%xmm14 + movaps %xmm11,%xmm12 +.byte 102,15,56,222,240 + pxor %xmm14,%xmm15 + movdqa %xmm9,%xmm14 +.byte 102,15,56,222,248 + movups -48(%rcx),%xmm0 + + paddd %xmm9,%xmm9 +.byte 102,15,56,222,209 + pxor %xmm15,%xmm11 + psrad $31,%xmm14 +.byte 102,15,56,222,217 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm14 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 + movdqa %xmm13,48(%rsp) + pxor %xmm14,%xmm15 +.byte 102,15,56,222,241 + movaps %xmm12,%xmm13 + movdqa %xmm9,%xmm14 +.byte 102,15,56,222,249 + movups -32(%rcx),%xmm1 + + paddd %xmm9,%xmm9 +.byte 102,15,56,222,208 + pxor %xmm15,%xmm12 + psrad $31,%xmm14 +.byte 102,15,56,222,216 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm14 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 +.byte 102,15,56,222,240 + pxor %xmm14,%xmm15 + movaps %xmm13,%xmm14 +.byte 102,15,56,222,248 + + movdqa %xmm9,%xmm0 + paddd %xmm9,%xmm9 +.byte 102,15,56,222,209 + pxor %xmm15,%xmm13 + psrad $31,%xmm0 +.byte 102,15,56,222,217 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm0 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 + pxor %xmm0,%xmm15 + movups (%rbp),%xmm0 +.byte 102,15,56,222,241 +.byte 102,15,56,222,249 + movups 16(%rbp),%xmm1 + + pxor %xmm15,%xmm14 +.byte 102,15,56,223,84,36,0 + psrad $31,%xmm9 + paddq %xmm15,%xmm15 +.byte 102,15,56,223,92,36,16 +.byte 102,15,56,223,100,36,32 + pand %xmm8,%xmm9 + movq %r10,%rax +.byte 102,15,56,223,108,36,48 +.byte 102,15,56,223,116,36,64 +.byte 102,15,56,223,124,36,80 + pxor %xmm9,%xmm15 + + leaq 96(%rsi),%rsi + movups %xmm2,-96(%rsi) + movups %xmm3,-80(%rsi) + movups %xmm4,-64(%rsi) + movups %xmm5,-48(%rsi) + movups %xmm6,-32(%rsi) + movups %xmm7,-16(%rsi) + subq $96,%rdx + jnc L$xts_dec_grandloop + + movl $16+96,%eax + subl %r10d,%eax + movq %rbp,%rcx + shrl $4,%eax + +L$xts_dec_short: + + movl %eax,%r10d + pxor %xmm0,%xmm10 + pxor %xmm0,%xmm11 + addq $96,%rdx + jz L$xts_dec_done + + pxor %xmm0,%xmm12 + cmpq $0x20,%rdx + jb L$xts_dec_one + pxor %xmm0,%xmm13 + je L$xts_dec_two + + pxor %xmm0,%xmm14 + cmpq $0x40,%rdx + jb L$xts_dec_three + je L$xts_dec_four + + movdqu (%rdi),%xmm2 + movdqu 16(%rdi),%xmm3 + movdqu 32(%rdi),%xmm4 + pxor %xmm10,%xmm2 + movdqu 48(%rdi),%xmm5 + pxor %xmm11,%xmm3 + movdqu 64(%rdi),%xmm6 + leaq 80(%rdi),%rdi + pxor %xmm12,%xmm4 + pxor %xmm13,%xmm5 + pxor %xmm14,%xmm6 + + call _aesni_decrypt6 + + xorps %xmm10,%xmm2 + xorps %xmm11,%xmm3 + xorps %xmm12,%xmm4 + movdqu %xmm2,(%rsi) + xorps %xmm13,%xmm5 + movdqu %xmm3,16(%rsi) + xorps %xmm14,%xmm6 + movdqu %xmm4,32(%rsi) + pxor %xmm14,%xmm14 + movdqu %xmm5,48(%rsi) + pcmpgtd %xmm15,%xmm14 + movdqu %xmm6,64(%rsi) + leaq 80(%rsi),%rsi + pshufd $0x13,%xmm14,%xmm11 + andq $15,%r9 + jz L$xts_dec_ret + + movdqa %xmm15,%xmm10 + paddq %xmm15,%xmm15 + pand %xmm8,%xmm11 + pxor %xmm15,%xmm11 + jmp L$xts_dec_done2 + +.p2align 4 +L$xts_dec_one: + movups (%rdi),%xmm2 + leaq 16(%rdi),%rdi + xorps %xmm10,%xmm2 + movups (%rcx),%xmm0 + movups 16(%rcx),%xmm1 + leaq 32(%rcx),%rcx + xorps %xmm0,%xmm2 +L$oop_dec1_12: +.byte 102,15,56,222,209 + decl %eax + movups (%rcx),%xmm1 + leaq 16(%rcx),%rcx + jnz L$oop_dec1_12 +.byte 102,15,56,223,209 + xorps %xmm10,%xmm2 + movdqa %xmm11,%xmm10 + movups %xmm2,(%rsi) + movdqa %xmm12,%xmm11 + leaq 16(%rsi),%rsi + jmp L$xts_dec_done + +.p2align 4 +L$xts_dec_two: + movups (%rdi),%xmm2 + movups 16(%rdi),%xmm3 + leaq 32(%rdi),%rdi + xorps %xmm10,%xmm2 + xorps %xmm11,%xmm3 + + call _aesni_decrypt2 + + xorps %xmm10,%xmm2 + movdqa %xmm12,%xmm10 + xorps %xmm11,%xmm3 + movdqa %xmm13,%xmm11 + movups %xmm2,(%rsi) + movups %xmm3,16(%rsi) + leaq 32(%rsi),%rsi + jmp L$xts_dec_done + +.p2align 4 +L$xts_dec_three: + movups (%rdi),%xmm2 + movups 16(%rdi),%xmm3 + movups 32(%rdi),%xmm4 + leaq 48(%rdi),%rdi + xorps %xmm10,%xmm2 + xorps %xmm11,%xmm3 + xorps %xmm12,%xmm4 + + call _aesni_decrypt3 + + xorps %xmm10,%xmm2 + movdqa %xmm13,%xmm10 + xorps %xmm11,%xmm3 + movdqa %xmm14,%xmm11 + xorps %xmm12,%xmm4 + movups %xmm2,(%rsi) + movups %xmm3,16(%rsi) + movups %xmm4,32(%rsi) + leaq 48(%rsi),%rsi + jmp L$xts_dec_done + +.p2align 4 +L$xts_dec_four: + movups (%rdi),%xmm2 + movups 16(%rdi),%xmm3 + movups 32(%rdi),%xmm4 + xorps %xmm10,%xmm2 + movups 48(%rdi),%xmm5 + leaq 64(%rdi),%rdi + xorps %xmm11,%xmm3 + xorps %xmm12,%xmm4 + xorps %xmm13,%xmm5 + + call _aesni_decrypt4 + + pxor %xmm10,%xmm2 + movdqa %xmm14,%xmm10 + pxor %xmm11,%xmm3 + movdqa %xmm15,%xmm11 + pxor %xmm12,%xmm4 + movdqu %xmm2,(%rsi) + pxor %xmm13,%xmm5 + movdqu %xmm3,16(%rsi) + movdqu %xmm4,32(%rsi) + movdqu %xmm5,48(%rsi) + leaq 64(%rsi),%rsi + jmp L$xts_dec_done + +.p2align 4 +L$xts_dec_done: + andq $15,%r9 + jz L$xts_dec_ret +L$xts_dec_done2: + movq %r9,%rdx + movq %rbp,%rcx + movl %r10d,%eax + + movups (%rdi),%xmm2 + xorps %xmm11,%xmm2 + movups (%rcx),%xmm0 + movups 16(%rcx),%xmm1 + leaq 32(%rcx),%rcx + xorps %xmm0,%xmm2 +L$oop_dec1_13: +.byte 102,15,56,222,209 + decl %eax + movups (%rcx),%xmm1 + leaq 16(%rcx),%rcx + jnz L$oop_dec1_13 +.byte 102,15,56,223,209 + xorps %xmm11,%xmm2 + movups %xmm2,(%rsi) + +L$xts_dec_steal: + movzbl 16(%rdi),%eax + movzbl (%rsi),%ecx + leaq 1(%rdi),%rdi + movb %al,(%rsi) + movb %cl,16(%rsi) + leaq 1(%rsi),%rsi + subq $1,%rdx + jnz L$xts_dec_steal + + subq %r9,%rsi + movq %rbp,%rcx + movl %r10d,%eax + + movups (%rsi),%xmm2 + xorps %xmm10,%xmm2 + movups (%rcx),%xmm0 + movups 16(%rcx),%xmm1 + leaq 32(%rcx),%rcx + xorps %xmm0,%xmm2 +L$oop_dec1_14: +.byte 102,15,56,222,209 + decl %eax + movups (%rcx),%xmm1 + leaq 16(%rcx),%rcx + jnz L$oop_dec1_14 +.byte 102,15,56,223,209 + xorps %xmm10,%xmm2 + movups %xmm2,(%rsi) + +L$xts_dec_ret: + xorps %xmm0,%xmm0 + pxor %xmm1,%xmm1 + pxor %xmm2,%xmm2 + pxor %xmm3,%xmm3 + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + pxor %xmm6,%xmm6 + pxor %xmm7,%xmm7 + movaps %xmm0,0(%rsp) + pxor %xmm8,%xmm8 + movaps %xmm0,16(%rsp) + pxor %xmm9,%xmm9 + movaps %xmm0,32(%rsp) + pxor %xmm10,%xmm10 + movaps %xmm0,48(%rsp) + pxor %xmm11,%xmm11 + movaps %xmm0,64(%rsp) + pxor %xmm12,%xmm12 + movaps %xmm0,80(%rsp) + pxor %xmm13,%xmm13 + movaps %xmm0,96(%rsp) + pxor %xmm14,%xmm14 + pxor %xmm15,%xmm15 + movq -8(%r11),%rbp + + leaq (%r11),%rsp + +L$xts_dec_epilogue: + .byte 0xf3,0xc3 + + +.globl _aesni_ocb_encrypt + +.p2align 5 +_aesni_ocb_encrypt: + + leaq (%rsp),%rax + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + movq 8(%rax),%rbx + movq 8+8(%rax),%rbp + + movl 240(%rcx),%r10d + movq %rcx,%r11 + shll $4,%r10d + movups (%rcx),%xmm9 + movups 16(%rcx,%r10,1),%xmm1 + + movdqu (%r9),%xmm15 + pxor %xmm1,%xmm9 + pxor %xmm1,%xmm15 + + movl $16+32,%eax + leaq 32(%r11,%r10,1),%rcx + movups 16(%r11),%xmm1 + subq %r10,%rax + movq %rax,%r10 + + movdqu (%rbx),%xmm10 + movdqu (%rbp),%xmm8 + + testq $1,%r8 + jnz L$ocb_enc_odd + + bsfq %r8,%r12 + addq $1,%r8 + shlq $4,%r12 + movdqu (%rbx,%r12,1),%xmm7 + movdqu (%rdi),%xmm2 + leaq 16(%rdi),%rdi + + call __ocb_encrypt1 + + movdqa %xmm7,%xmm15 + movups %xmm2,(%rsi) + leaq 16(%rsi),%rsi + subq $1,%rdx + jz L$ocb_enc_done + +L$ocb_enc_odd: + leaq 1(%r8),%r12 + leaq 3(%r8),%r13 + leaq 5(%r8),%r14 + leaq 6(%r8),%r8 + bsfq %r12,%r12 + bsfq %r13,%r13 + bsfq %r14,%r14 + shlq $4,%r12 + shlq $4,%r13 + shlq $4,%r14 + + subq $6,%rdx + jc L$ocb_enc_short + jmp L$ocb_enc_grandloop + +.p2align 5 +L$ocb_enc_grandloop: + movdqu 0(%rdi),%xmm2 + movdqu 16(%rdi),%xmm3 + movdqu 32(%rdi),%xmm4 + movdqu 48(%rdi),%xmm5 + movdqu 64(%rdi),%xmm6 + movdqu 80(%rdi),%xmm7 + leaq 96(%rdi),%rdi + + call __ocb_encrypt6 + + movups %xmm2,0(%rsi) + movups %xmm3,16(%rsi) + movups %xmm4,32(%rsi) + movups %xmm5,48(%rsi) + movups %xmm6,64(%rsi) + movups %xmm7,80(%rsi) + leaq 96(%rsi),%rsi + subq $6,%rdx + jnc L$ocb_enc_grandloop + +L$ocb_enc_short: + addq $6,%rdx + jz L$ocb_enc_done + + movdqu 0(%rdi),%xmm2 + cmpq $2,%rdx + jb L$ocb_enc_one + movdqu 16(%rdi),%xmm3 + je L$ocb_enc_two + + movdqu 32(%rdi),%xmm4 + cmpq $4,%rdx + jb L$ocb_enc_three + movdqu 48(%rdi),%xmm5 + je L$ocb_enc_four + + movdqu 64(%rdi),%xmm6 + pxor %xmm7,%xmm7 + + call __ocb_encrypt6 + + movdqa %xmm14,%xmm15 + movups %xmm2,0(%rsi) + movups %xmm3,16(%rsi) + movups %xmm4,32(%rsi) + movups %xmm5,48(%rsi) + movups %xmm6,64(%rsi) + + jmp L$ocb_enc_done + +.p2align 4 +L$ocb_enc_one: + movdqa %xmm10,%xmm7 + + call __ocb_encrypt1 + + movdqa %xmm7,%xmm15 + movups %xmm2,0(%rsi) + jmp L$ocb_enc_done + +.p2align 4 +L$ocb_enc_two: + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + + call __ocb_encrypt4 + + movdqa %xmm11,%xmm15 + movups %xmm2,0(%rsi) + movups %xmm3,16(%rsi) + + jmp L$ocb_enc_done + +.p2align 4 +L$ocb_enc_three: + pxor %xmm5,%xmm5 + + call __ocb_encrypt4 + + movdqa %xmm12,%xmm15 + movups %xmm2,0(%rsi) + movups %xmm3,16(%rsi) + movups %xmm4,32(%rsi) + + jmp L$ocb_enc_done + +.p2align 4 +L$ocb_enc_four: + call __ocb_encrypt4 + + movdqa %xmm13,%xmm15 + movups %xmm2,0(%rsi) + movups %xmm3,16(%rsi) + movups %xmm4,32(%rsi) + movups %xmm5,48(%rsi) + +L$ocb_enc_done: + pxor %xmm0,%xmm15 + movdqu %xmm8,(%rbp) + movdqu %xmm15,(%r9) + + xorps %xmm0,%xmm0 + pxor %xmm1,%xmm1 + pxor %xmm2,%xmm2 + pxor %xmm3,%xmm3 + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + pxor %xmm6,%xmm6 + pxor %xmm7,%xmm7 + pxor %xmm8,%xmm8 + pxor %xmm9,%xmm9 + pxor %xmm10,%xmm10 + pxor %xmm11,%xmm11 + pxor %xmm12,%xmm12 + pxor %xmm13,%xmm13 + pxor %xmm14,%xmm14 + pxor %xmm15,%xmm15 + leaq 40(%rsp),%rax + + movq -40(%rax),%r14 + + movq -32(%rax),%r13 + + movq -24(%rax),%r12 + + movq -16(%rax),%rbp + + movq -8(%rax),%rbx + + leaq (%rax),%rsp + +L$ocb_enc_epilogue: + .byte 0xf3,0xc3 + + + + +.p2align 5 +__ocb_encrypt6: + + pxor %xmm9,%xmm15 + movdqu (%rbx,%r12,1),%xmm11 + movdqa %xmm10,%xmm12 + movdqu (%rbx,%r13,1),%xmm13 + movdqa %xmm10,%xmm14 + pxor %xmm15,%xmm10 + movdqu (%rbx,%r14,1),%xmm15 + pxor %xmm10,%xmm11 + pxor %xmm2,%xmm8 + pxor %xmm10,%xmm2 + pxor %xmm11,%xmm12 + pxor %xmm3,%xmm8 + pxor %xmm11,%xmm3 + pxor %xmm12,%xmm13 + pxor %xmm4,%xmm8 + pxor %xmm12,%xmm4 + pxor %xmm13,%xmm14 + pxor %xmm5,%xmm8 + pxor %xmm13,%xmm5 + pxor %xmm14,%xmm15 + pxor %xmm6,%xmm8 + pxor %xmm14,%xmm6 + pxor %xmm7,%xmm8 + pxor %xmm15,%xmm7 + movups 32(%r11),%xmm0 + + leaq 1(%r8),%r12 + leaq 3(%r8),%r13 + leaq 5(%r8),%r14 + addq $6,%r8 + pxor %xmm9,%xmm10 + bsfq %r12,%r12 + bsfq %r13,%r13 + bsfq %r14,%r14 + +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 + pxor %xmm9,%xmm11 + pxor %xmm9,%xmm12 +.byte 102,15,56,220,241 + pxor %xmm9,%xmm13 + pxor %xmm9,%xmm14 +.byte 102,15,56,220,249 + movups 48(%r11),%xmm1 + pxor %xmm9,%xmm15 + +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 +.byte 102,15,56,220,240 +.byte 102,15,56,220,248 + movups 64(%r11),%xmm0 + shlq $4,%r12 + shlq $4,%r13 + jmp L$ocb_enc_loop6 + +.p2align 5 +L$ocb_enc_loop6: +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 +.byte 102,15,56,220,241 +.byte 102,15,56,220,249 + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax + +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 +.byte 102,15,56,220,240 +.byte 102,15,56,220,248 + movups -16(%rcx,%rax,1),%xmm0 + jnz L$ocb_enc_loop6 + +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 +.byte 102,15,56,220,241 +.byte 102,15,56,220,249 + movups 16(%r11),%xmm1 + shlq $4,%r14 + +.byte 102,65,15,56,221,210 + movdqu (%rbx),%xmm10 + movq %r10,%rax +.byte 102,65,15,56,221,219 +.byte 102,65,15,56,221,228 +.byte 102,65,15,56,221,237 +.byte 102,65,15,56,221,246 +.byte 102,65,15,56,221,255 + .byte 0xf3,0xc3 + + + + +.p2align 5 +__ocb_encrypt4: + + pxor %xmm9,%xmm15 + movdqu (%rbx,%r12,1),%xmm11 + movdqa %xmm10,%xmm12 + movdqu (%rbx,%r13,1),%xmm13 + pxor %xmm15,%xmm10 + pxor %xmm10,%xmm11 + pxor %xmm2,%xmm8 + pxor %xmm10,%xmm2 + pxor %xmm11,%xmm12 + pxor %xmm3,%xmm8 + pxor %xmm11,%xmm3 + pxor %xmm12,%xmm13 + pxor %xmm4,%xmm8 + pxor %xmm12,%xmm4 + pxor %xmm5,%xmm8 + pxor %xmm13,%xmm5 + movups 32(%r11),%xmm0 + + pxor %xmm9,%xmm10 + pxor %xmm9,%xmm11 + pxor %xmm9,%xmm12 + pxor %xmm9,%xmm13 + +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 + movups 48(%r11),%xmm1 + +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 + movups 64(%r11),%xmm0 + jmp L$ocb_enc_loop4 + +.p2align 5 +L$ocb_enc_loop4: +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax + +.byte 102,15,56,220,208 +.byte 102,15,56,220,216 +.byte 102,15,56,220,224 +.byte 102,15,56,220,232 + movups -16(%rcx,%rax,1),%xmm0 + jnz L$ocb_enc_loop4 + +.byte 102,15,56,220,209 +.byte 102,15,56,220,217 +.byte 102,15,56,220,225 +.byte 102,15,56,220,233 + movups 16(%r11),%xmm1 + movq %r10,%rax + +.byte 102,65,15,56,221,210 +.byte 102,65,15,56,221,219 +.byte 102,65,15,56,221,228 +.byte 102,65,15,56,221,237 + .byte 0xf3,0xc3 + + + + +.p2align 5 +__ocb_encrypt1: + + pxor %xmm15,%xmm7 + pxor %xmm9,%xmm7 + pxor %xmm2,%xmm8 + pxor %xmm7,%xmm2 + movups 32(%r11),%xmm0 + +.byte 102,15,56,220,209 + movups 48(%r11),%xmm1 + pxor %xmm9,%xmm7 + +.byte 102,15,56,220,208 + movups 64(%r11),%xmm0 + jmp L$ocb_enc_loop1 + +.p2align 5 +L$ocb_enc_loop1: +.byte 102,15,56,220,209 + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax + +.byte 102,15,56,220,208 + movups -16(%rcx,%rax,1),%xmm0 + jnz L$ocb_enc_loop1 + +.byte 102,15,56,220,209 + movups 16(%r11),%xmm1 + movq %r10,%rax + +.byte 102,15,56,221,215 + .byte 0xf3,0xc3 + + + +.globl _aesni_ocb_decrypt + +.p2align 5 +_aesni_ocb_decrypt: + + leaq (%rsp),%rax + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + movq 8(%rax),%rbx + movq 8+8(%rax),%rbp + + movl 240(%rcx),%r10d + movq %rcx,%r11 + shll $4,%r10d + movups (%rcx),%xmm9 + movups 16(%rcx,%r10,1),%xmm1 + + movdqu (%r9),%xmm15 + pxor %xmm1,%xmm9 + pxor %xmm1,%xmm15 + + movl $16+32,%eax + leaq 32(%r11,%r10,1),%rcx + movups 16(%r11),%xmm1 + subq %r10,%rax + movq %rax,%r10 + + movdqu (%rbx),%xmm10 + movdqu (%rbp),%xmm8 + + testq $1,%r8 + jnz L$ocb_dec_odd + + bsfq %r8,%r12 + addq $1,%r8 + shlq $4,%r12 + movdqu (%rbx,%r12,1),%xmm7 + movdqu (%rdi),%xmm2 + leaq 16(%rdi),%rdi + + call __ocb_decrypt1 + + movdqa %xmm7,%xmm15 + movups %xmm2,(%rsi) + xorps %xmm2,%xmm8 + leaq 16(%rsi),%rsi + subq $1,%rdx + jz L$ocb_dec_done + +L$ocb_dec_odd: + leaq 1(%r8),%r12 + leaq 3(%r8),%r13 + leaq 5(%r8),%r14 + leaq 6(%r8),%r8 + bsfq %r12,%r12 + bsfq %r13,%r13 + bsfq %r14,%r14 + shlq $4,%r12 + shlq $4,%r13 + shlq $4,%r14 + + subq $6,%rdx + jc L$ocb_dec_short + jmp L$ocb_dec_grandloop + +.p2align 5 +L$ocb_dec_grandloop: + movdqu 0(%rdi),%xmm2 + movdqu 16(%rdi),%xmm3 + movdqu 32(%rdi),%xmm4 + movdqu 48(%rdi),%xmm5 + movdqu 64(%rdi),%xmm6 + movdqu 80(%rdi),%xmm7 + leaq 96(%rdi),%rdi + + call __ocb_decrypt6 + + movups %xmm2,0(%rsi) + pxor %xmm2,%xmm8 + movups %xmm3,16(%rsi) + pxor %xmm3,%xmm8 + movups %xmm4,32(%rsi) + pxor %xmm4,%xmm8 + movups %xmm5,48(%rsi) + pxor %xmm5,%xmm8 + movups %xmm6,64(%rsi) + pxor %xmm6,%xmm8 + movups %xmm7,80(%rsi) + pxor %xmm7,%xmm8 + leaq 96(%rsi),%rsi + subq $6,%rdx + jnc L$ocb_dec_grandloop + +L$ocb_dec_short: + addq $6,%rdx + jz L$ocb_dec_done + + movdqu 0(%rdi),%xmm2 + cmpq $2,%rdx + jb L$ocb_dec_one + movdqu 16(%rdi),%xmm3 + je L$ocb_dec_two + + movdqu 32(%rdi),%xmm4 + cmpq $4,%rdx + jb L$ocb_dec_three + movdqu 48(%rdi),%xmm5 + je L$ocb_dec_four + + movdqu 64(%rdi),%xmm6 + pxor %xmm7,%xmm7 + + call __ocb_decrypt6 + + movdqa %xmm14,%xmm15 + movups %xmm2,0(%rsi) + pxor %xmm2,%xmm8 + movups %xmm3,16(%rsi) + pxor %xmm3,%xmm8 + movups %xmm4,32(%rsi) + pxor %xmm4,%xmm8 + movups %xmm5,48(%rsi) + pxor %xmm5,%xmm8 + movups %xmm6,64(%rsi) + pxor %xmm6,%xmm8 + + jmp L$ocb_dec_done + +.p2align 4 +L$ocb_dec_one: + movdqa %xmm10,%xmm7 + + call __ocb_decrypt1 + + movdqa %xmm7,%xmm15 + movups %xmm2,0(%rsi) + xorps %xmm2,%xmm8 + jmp L$ocb_dec_done + +.p2align 4 +L$ocb_dec_two: + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + + call __ocb_decrypt4 + + movdqa %xmm11,%xmm15 + movups %xmm2,0(%rsi) + xorps %xmm2,%xmm8 + movups %xmm3,16(%rsi) + xorps %xmm3,%xmm8 + + jmp L$ocb_dec_done + +.p2align 4 +L$ocb_dec_three: + pxor %xmm5,%xmm5 + + call __ocb_decrypt4 + + movdqa %xmm12,%xmm15 + movups %xmm2,0(%rsi) + xorps %xmm2,%xmm8 + movups %xmm3,16(%rsi) + xorps %xmm3,%xmm8 + movups %xmm4,32(%rsi) + xorps %xmm4,%xmm8 + + jmp L$ocb_dec_done + +.p2align 4 +L$ocb_dec_four: + call __ocb_decrypt4 + + movdqa %xmm13,%xmm15 + movups %xmm2,0(%rsi) + pxor %xmm2,%xmm8 + movups %xmm3,16(%rsi) + pxor %xmm3,%xmm8 + movups %xmm4,32(%rsi) + pxor %xmm4,%xmm8 + movups %xmm5,48(%rsi) + pxor %xmm5,%xmm8 + +L$ocb_dec_done: + pxor %xmm0,%xmm15 + movdqu %xmm8,(%rbp) + movdqu %xmm15,(%r9) + + xorps %xmm0,%xmm0 + pxor %xmm1,%xmm1 + pxor %xmm2,%xmm2 + pxor %xmm3,%xmm3 + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + pxor %xmm6,%xmm6 + pxor %xmm7,%xmm7 + pxor %xmm8,%xmm8 + pxor %xmm9,%xmm9 + pxor %xmm10,%xmm10 + pxor %xmm11,%xmm11 + pxor %xmm12,%xmm12 + pxor %xmm13,%xmm13 + pxor %xmm14,%xmm14 + pxor %xmm15,%xmm15 + leaq 40(%rsp),%rax + + movq -40(%rax),%r14 + + movq -32(%rax),%r13 + + movq -24(%rax),%r12 + + movq -16(%rax),%rbp + + movq -8(%rax),%rbx + + leaq (%rax),%rsp + +L$ocb_dec_epilogue: + .byte 0xf3,0xc3 + + + + +.p2align 5 +__ocb_decrypt6: + + pxor %xmm9,%xmm15 + movdqu (%rbx,%r12,1),%xmm11 + movdqa %xmm10,%xmm12 + movdqu (%rbx,%r13,1),%xmm13 + movdqa %xmm10,%xmm14 + pxor %xmm15,%xmm10 + movdqu (%rbx,%r14,1),%xmm15 + pxor %xmm10,%xmm11 + pxor %xmm10,%xmm2 + pxor %xmm11,%xmm12 + pxor %xmm11,%xmm3 + pxor %xmm12,%xmm13 + pxor %xmm12,%xmm4 + pxor %xmm13,%xmm14 + pxor %xmm13,%xmm5 + pxor %xmm14,%xmm15 + pxor %xmm14,%xmm6 + pxor %xmm15,%xmm7 + movups 32(%r11),%xmm0 + + leaq 1(%r8),%r12 + leaq 3(%r8),%r13 + leaq 5(%r8),%r14 + addq $6,%r8 + pxor %xmm9,%xmm10 + bsfq %r12,%r12 + bsfq %r13,%r13 + bsfq %r14,%r14 + +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 + pxor %xmm9,%xmm11 + pxor %xmm9,%xmm12 +.byte 102,15,56,222,241 + pxor %xmm9,%xmm13 + pxor %xmm9,%xmm14 +.byte 102,15,56,222,249 + movups 48(%r11),%xmm1 + pxor %xmm9,%xmm15 + +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 +.byte 102,15,56,222,240 +.byte 102,15,56,222,248 + movups 64(%r11),%xmm0 + shlq $4,%r12 + shlq $4,%r13 + jmp L$ocb_dec_loop6 + +.p2align 5 +L$ocb_dec_loop6: +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 +.byte 102,15,56,222,241 +.byte 102,15,56,222,249 + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax + +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 +.byte 102,15,56,222,240 +.byte 102,15,56,222,248 + movups -16(%rcx,%rax,1),%xmm0 + jnz L$ocb_dec_loop6 + +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 +.byte 102,15,56,222,241 +.byte 102,15,56,222,249 + movups 16(%r11),%xmm1 + shlq $4,%r14 + +.byte 102,65,15,56,223,210 + movdqu (%rbx),%xmm10 + movq %r10,%rax +.byte 102,65,15,56,223,219 +.byte 102,65,15,56,223,228 +.byte 102,65,15,56,223,237 +.byte 102,65,15,56,223,246 +.byte 102,65,15,56,223,255 + .byte 0xf3,0xc3 + + + + +.p2align 5 +__ocb_decrypt4: + + pxor %xmm9,%xmm15 + movdqu (%rbx,%r12,1),%xmm11 + movdqa %xmm10,%xmm12 + movdqu (%rbx,%r13,1),%xmm13 + pxor %xmm15,%xmm10 + pxor %xmm10,%xmm11 + pxor %xmm10,%xmm2 + pxor %xmm11,%xmm12 + pxor %xmm11,%xmm3 + pxor %xmm12,%xmm13 + pxor %xmm12,%xmm4 + pxor %xmm13,%xmm5 + movups 32(%r11),%xmm0 + + pxor %xmm9,%xmm10 + pxor %xmm9,%xmm11 + pxor %xmm9,%xmm12 + pxor %xmm9,%xmm13 + +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 + movups 48(%r11),%xmm1 + +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 + movups 64(%r11),%xmm0 + jmp L$ocb_dec_loop4 + +.p2align 5 +L$ocb_dec_loop4: +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax + +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 + movups -16(%rcx,%rax,1),%xmm0 + jnz L$ocb_dec_loop4 + +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 + movups 16(%r11),%xmm1 + movq %r10,%rax + +.byte 102,65,15,56,223,210 +.byte 102,65,15,56,223,219 +.byte 102,65,15,56,223,228 +.byte 102,65,15,56,223,237 + .byte 0xf3,0xc3 + + + + +.p2align 5 +__ocb_decrypt1: + + pxor %xmm15,%xmm7 + pxor %xmm9,%xmm7 + pxor %xmm7,%xmm2 + movups 32(%r11),%xmm0 + +.byte 102,15,56,222,209 + movups 48(%r11),%xmm1 + pxor %xmm9,%xmm7 + +.byte 102,15,56,222,208 + movups 64(%r11),%xmm0 + jmp L$ocb_dec_loop1 + +.p2align 5 +L$ocb_dec_loop1: +.byte 102,15,56,222,209 + movups (%rcx,%rax,1),%xmm1 + addq $32,%rax + +.byte 102,15,56,222,208 + movups -16(%rcx,%rax,1),%xmm0 + jnz L$ocb_dec_loop1 + +.byte 102,15,56,222,209 + movups 16(%r11),%xmm1 + movq %r10,%rax + +.byte 102,15,56,223,215 + .byte 0xf3,0xc3 + + +.globl _aesni_cbc_encrypt + +.p2align 4 +_aesni_cbc_encrypt: + + testq %rdx,%rdx + jz L$cbc_ret + + movl 240(%rcx),%r10d + movq %rcx,%r11 + testl %r9d,%r9d + jz L$cbc_decrypt + + movups (%r8),%xmm2 + movl %r10d,%eax + cmpq $16,%rdx + jb L$cbc_enc_tail + subq $16,%rdx + jmp L$cbc_enc_loop +.p2align 4 +L$cbc_enc_loop: + movups (%rdi),%xmm3 + leaq 16(%rdi),%rdi + + movups (%rcx),%xmm0 + movups 16(%rcx),%xmm1 + xorps %xmm0,%xmm3 + leaq 32(%rcx),%rcx + xorps %xmm3,%xmm2 +L$oop_enc1_15: +.byte 102,15,56,220,209 + decl %eax + movups (%rcx),%xmm1 + leaq 16(%rcx),%rcx + jnz L$oop_enc1_15 +.byte 102,15,56,221,209 + movl %r10d,%eax + movq %r11,%rcx + movups %xmm2,0(%rsi) + leaq 16(%rsi),%rsi + subq $16,%rdx + jnc L$cbc_enc_loop + addq $16,%rdx + jnz L$cbc_enc_tail + pxor %xmm0,%xmm0 + pxor %xmm1,%xmm1 + movups %xmm2,(%r8) + pxor %xmm2,%xmm2 + pxor %xmm3,%xmm3 + jmp L$cbc_ret + +L$cbc_enc_tail: + movq %rdx,%rcx + xchgq %rdi,%rsi +.long 0x9066A4F3 + movl $16,%ecx + subq %rdx,%rcx + xorl %eax,%eax +.long 0x9066AAF3 + leaq -16(%rdi),%rdi + movl %r10d,%eax + movq %rdi,%rsi + movq %r11,%rcx + xorq %rdx,%rdx + jmp L$cbc_enc_loop + +.p2align 4 +L$cbc_decrypt: + cmpq $16,%rdx + jne L$cbc_decrypt_bulk + + + + movdqu (%rdi),%xmm2 + movdqu (%r8),%xmm3 + movdqa %xmm2,%xmm4 + movups (%rcx),%xmm0 + movups 16(%rcx),%xmm1 + leaq 32(%rcx),%rcx + xorps %xmm0,%xmm2 +L$oop_dec1_16: +.byte 102,15,56,222,209 + decl %r10d + movups (%rcx),%xmm1 + leaq 16(%rcx),%rcx + jnz L$oop_dec1_16 +.byte 102,15,56,223,209 + pxor %xmm0,%xmm0 + pxor %xmm1,%xmm1 + movdqu %xmm4,(%r8) + xorps %xmm3,%xmm2 + pxor %xmm3,%xmm3 + movups %xmm2,(%rsi) + pxor %xmm2,%xmm2 + jmp L$cbc_ret +.p2align 4 +L$cbc_decrypt_bulk: + leaq (%rsp),%r11 + + pushq %rbp + + subq $16,%rsp + andq $-16,%rsp + movq %rcx,%rbp + movups (%r8),%xmm10 + movl %r10d,%eax + cmpq $0x50,%rdx + jbe L$cbc_dec_tail + + movups (%rcx),%xmm0 + movdqu 0(%rdi),%xmm2 + movdqu 16(%rdi),%xmm3 + movdqa %xmm2,%xmm11 + movdqu 32(%rdi),%xmm4 + movdqa %xmm3,%xmm12 + movdqu 48(%rdi),%xmm5 + movdqa %xmm4,%xmm13 + movdqu 64(%rdi),%xmm6 + movdqa %xmm5,%xmm14 + movdqu 80(%rdi),%xmm7 + movdqa %xmm6,%xmm15 + movl _OPENSSL_ia32cap_P+4(%rip),%r9d + cmpq $0x70,%rdx + jbe L$cbc_dec_six_or_seven + + andl $71303168,%r9d + subq $0x50,%rdx + cmpl $4194304,%r9d + je L$cbc_dec_loop6_enter + subq $0x20,%rdx + leaq 112(%rcx),%rcx + jmp L$cbc_dec_loop8_enter +.p2align 4 +L$cbc_dec_loop8: + movups %xmm9,(%rsi) + leaq 16(%rsi),%rsi +L$cbc_dec_loop8_enter: + movdqu 96(%rdi),%xmm8 + pxor %xmm0,%xmm2 + movdqu 112(%rdi),%xmm9 + pxor %xmm0,%xmm3 + movups 16-112(%rcx),%xmm1 + pxor %xmm0,%xmm4 + movq $-1,%rbp + cmpq $0x70,%rdx + pxor %xmm0,%xmm5 + pxor %xmm0,%xmm6 + pxor %xmm0,%xmm7 + pxor %xmm0,%xmm8 + +.byte 102,15,56,222,209 + pxor %xmm0,%xmm9 + movups 32-112(%rcx),%xmm0 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 +.byte 102,15,56,222,241 +.byte 102,15,56,222,249 +.byte 102,68,15,56,222,193 + adcq $0,%rbp + andq $128,%rbp +.byte 102,68,15,56,222,201 + addq %rdi,%rbp + movups 48-112(%rcx),%xmm1 +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 +.byte 102,15,56,222,240 +.byte 102,15,56,222,248 +.byte 102,68,15,56,222,192 +.byte 102,68,15,56,222,200 + movups 64-112(%rcx),%xmm0 + nop +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 +.byte 102,15,56,222,241 +.byte 102,15,56,222,249 +.byte 102,68,15,56,222,193 +.byte 102,68,15,56,222,201 + movups 80-112(%rcx),%xmm1 + nop +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 +.byte 102,15,56,222,240 +.byte 102,15,56,222,248 +.byte 102,68,15,56,222,192 +.byte 102,68,15,56,222,200 + movups 96-112(%rcx),%xmm0 + nop +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 +.byte 102,15,56,222,241 +.byte 102,15,56,222,249 +.byte 102,68,15,56,222,193 +.byte 102,68,15,56,222,201 + movups 112-112(%rcx),%xmm1 + nop +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 +.byte 102,15,56,222,240 +.byte 102,15,56,222,248 +.byte 102,68,15,56,222,192 +.byte 102,68,15,56,222,200 + movups 128-112(%rcx),%xmm0 + nop +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 +.byte 102,15,56,222,241 +.byte 102,15,56,222,249 +.byte 102,68,15,56,222,193 +.byte 102,68,15,56,222,201 + movups 144-112(%rcx),%xmm1 + cmpl $11,%eax +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 +.byte 102,15,56,222,240 +.byte 102,15,56,222,248 +.byte 102,68,15,56,222,192 +.byte 102,68,15,56,222,200 + movups 160-112(%rcx),%xmm0 + jb L$cbc_dec_done +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 +.byte 102,15,56,222,241 +.byte 102,15,56,222,249 +.byte 102,68,15,56,222,193 +.byte 102,68,15,56,222,201 + movups 176-112(%rcx),%xmm1 + nop +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 +.byte 102,15,56,222,240 +.byte 102,15,56,222,248 +.byte 102,68,15,56,222,192 +.byte 102,68,15,56,222,200 + movups 192-112(%rcx),%xmm0 + je L$cbc_dec_done +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 +.byte 102,15,56,222,241 +.byte 102,15,56,222,249 +.byte 102,68,15,56,222,193 +.byte 102,68,15,56,222,201 + movups 208-112(%rcx),%xmm1 + nop +.byte 102,15,56,222,208 +.byte 102,15,56,222,216 +.byte 102,15,56,222,224 +.byte 102,15,56,222,232 +.byte 102,15,56,222,240 +.byte 102,15,56,222,248 +.byte 102,68,15,56,222,192 +.byte 102,68,15,56,222,200 + movups 224-112(%rcx),%xmm0 + jmp L$cbc_dec_done +.p2align 4 +L$cbc_dec_done: +.byte 102,15,56,222,209 +.byte 102,15,56,222,217 + pxor %xmm0,%xmm10 + pxor %xmm0,%xmm11 +.byte 102,15,56,222,225 +.byte 102,15,56,222,233 + pxor %xmm0,%xmm12 + pxor %xmm0,%xmm13 +.byte 102,15,56,222,241 +.byte 102,15,56,222,249 + pxor %xmm0,%xmm14 + pxor %xmm0,%xmm15 +.byte 102,68,15,56,222,193 +.byte 102,68,15,56,222,201 + movdqu 80(%rdi),%xmm1 + +.byte 102,65,15,56,223,210 + movdqu 96(%rdi),%xmm10 + pxor %xmm0,%xmm1 +.byte 102,65,15,56,223,219 + pxor %xmm0,%xmm10 + movdqu 112(%rdi),%xmm0 +.byte 102,65,15,56,223,228 + leaq 128(%rdi),%rdi + movdqu 0(%rbp),%xmm11 +.byte 102,65,15,56,223,237 +.byte 102,65,15,56,223,246 + movdqu 16(%rbp),%xmm12 + movdqu 32(%rbp),%xmm13 +.byte 102,65,15,56,223,255 +.byte 102,68,15,56,223,193 + movdqu 48(%rbp),%xmm14 + movdqu 64(%rbp),%xmm15 +.byte 102,69,15,56,223,202 + movdqa %xmm0,%xmm10 + movdqu 80(%rbp),%xmm1 + movups -112(%rcx),%xmm0 + + movups %xmm2,(%rsi) + movdqa %xmm11,%xmm2 + movups %xmm3,16(%rsi) + movdqa %xmm12,%xmm3 + movups %xmm4,32(%rsi) + movdqa %xmm13,%xmm4 + movups %xmm5,48(%rsi) + movdqa %xmm14,%xmm5 + movups %xmm6,64(%rsi) + movdqa %xmm15,%xmm6 + movups %xmm7,80(%rsi) + movdqa %xmm1,%xmm7 + movups %xmm8,96(%rsi) + leaq 112(%rsi),%rsi + + subq $0x80,%rdx + ja L$cbc_dec_loop8 + + movaps %xmm9,%xmm2 + leaq -112(%rcx),%rcx + addq $0x70,%rdx + jle L$cbc_dec_clear_tail_collected + movups %xmm9,(%rsi) + leaq 16(%rsi),%rsi + cmpq $0x50,%rdx + jbe L$cbc_dec_tail + + movaps %xmm11,%xmm2 +L$cbc_dec_six_or_seven: + cmpq $0x60,%rdx + ja L$cbc_dec_seven + + movaps %xmm7,%xmm8 + call _aesni_decrypt6 + pxor %xmm10,%xmm2 + movaps %xmm8,%xmm10 + pxor %xmm11,%xmm3 + movdqu %xmm2,(%rsi) + pxor %xmm12,%xmm4 + movdqu %xmm3,16(%rsi) + pxor %xmm3,%xmm3 + pxor %xmm13,%xmm5 + movdqu %xmm4,32(%rsi) + pxor %xmm4,%xmm4 + pxor %xmm14,%xmm6 + movdqu %xmm5,48(%rsi) + pxor %xmm5,%xmm5 + pxor %xmm15,%xmm7 + movdqu %xmm6,64(%rsi) + pxor %xmm6,%xmm6 + leaq 80(%rsi),%rsi + movdqa %xmm7,%xmm2 + pxor %xmm7,%xmm7 + jmp L$cbc_dec_tail_collected + +.p2align 4 +L$cbc_dec_seven: + movups 96(%rdi),%xmm8 + xorps %xmm9,%xmm9 + call _aesni_decrypt8 + movups 80(%rdi),%xmm9 + pxor %xmm10,%xmm2 + movups 96(%rdi),%xmm10 + pxor %xmm11,%xmm3 + movdqu %xmm2,(%rsi) + pxor %xmm12,%xmm4 + movdqu %xmm3,16(%rsi) + pxor %xmm3,%xmm3 + pxor %xmm13,%xmm5 + movdqu %xmm4,32(%rsi) + pxor %xmm4,%xmm4 + pxor %xmm14,%xmm6 + movdqu %xmm5,48(%rsi) + pxor %xmm5,%xmm5 + pxor %xmm15,%xmm7 + movdqu %xmm6,64(%rsi) + pxor %xmm6,%xmm6 + pxor %xmm9,%xmm8 + movdqu %xmm7,80(%rsi) + pxor %xmm7,%xmm7 + leaq 96(%rsi),%rsi + movdqa %xmm8,%xmm2 + pxor %xmm8,%xmm8 + pxor %xmm9,%xmm9 + jmp L$cbc_dec_tail_collected + +.p2align 4 +L$cbc_dec_loop6: + movups %xmm7,(%rsi) + leaq 16(%rsi),%rsi + movdqu 0(%rdi),%xmm2 + movdqu 16(%rdi),%xmm3 + movdqa %xmm2,%xmm11 + movdqu 32(%rdi),%xmm4 + movdqa %xmm3,%xmm12 + movdqu 48(%rdi),%xmm5 + movdqa %xmm4,%xmm13 + movdqu 64(%rdi),%xmm6 + movdqa %xmm5,%xmm14 + movdqu 80(%rdi),%xmm7 + movdqa %xmm6,%xmm15 +L$cbc_dec_loop6_enter: + leaq 96(%rdi),%rdi + movdqa %xmm7,%xmm8 + + call _aesni_decrypt6 + + pxor %xmm10,%xmm2 + movdqa %xmm8,%xmm10 + pxor %xmm11,%xmm3 + movdqu %xmm2,(%rsi) + pxor %xmm12,%xmm4 + movdqu %xmm3,16(%rsi) + pxor %xmm13,%xmm5 + movdqu %xmm4,32(%rsi) + pxor %xmm14,%xmm6 + movq %rbp,%rcx + movdqu %xmm5,48(%rsi) + pxor %xmm15,%xmm7 + movl %r10d,%eax + movdqu %xmm6,64(%rsi) + leaq 80(%rsi),%rsi + subq $0x60,%rdx + ja L$cbc_dec_loop6 + + movdqa %xmm7,%xmm2 + addq $0x50,%rdx + jle L$cbc_dec_clear_tail_collected + movups %xmm7,(%rsi) + leaq 16(%rsi),%rsi + +L$cbc_dec_tail: + movups (%rdi),%xmm2 + subq $0x10,%rdx + jbe L$cbc_dec_one + + movups 16(%rdi),%xmm3 + movaps %xmm2,%xmm11 + subq $0x10,%rdx + jbe L$cbc_dec_two + + movups 32(%rdi),%xmm4 + movaps %xmm3,%xmm12 + subq $0x10,%rdx + jbe L$cbc_dec_three + + movups 48(%rdi),%xmm5 + movaps %xmm4,%xmm13 + subq $0x10,%rdx + jbe L$cbc_dec_four + + movups 64(%rdi),%xmm6 + movaps %xmm5,%xmm14 + movaps %xmm6,%xmm15 + xorps %xmm7,%xmm7 + call _aesni_decrypt6 + pxor %xmm10,%xmm2 + movaps %xmm15,%xmm10 + pxor %xmm11,%xmm3 + movdqu %xmm2,(%rsi) + pxor %xmm12,%xmm4 + movdqu %xmm3,16(%rsi) + pxor %xmm3,%xmm3 + pxor %xmm13,%xmm5 + movdqu %xmm4,32(%rsi) + pxor %xmm4,%xmm4 + pxor %xmm14,%xmm6 + movdqu %xmm5,48(%rsi) + pxor %xmm5,%xmm5 + leaq 64(%rsi),%rsi + movdqa %xmm6,%xmm2 + pxor %xmm6,%xmm6 + pxor %xmm7,%xmm7 + subq $0x10,%rdx + jmp L$cbc_dec_tail_collected + +.p2align 4 +L$cbc_dec_one: + movaps %xmm2,%xmm11 + movups (%rcx),%xmm0 + movups 16(%rcx),%xmm1 + leaq 32(%rcx),%rcx + xorps %xmm0,%xmm2 +L$oop_dec1_17: +.byte 102,15,56,222,209 + decl %eax + movups (%rcx),%xmm1 + leaq 16(%rcx),%rcx + jnz L$oop_dec1_17 +.byte 102,15,56,223,209 + xorps %xmm10,%xmm2 + movaps %xmm11,%xmm10 + jmp L$cbc_dec_tail_collected +.p2align 4 +L$cbc_dec_two: + movaps %xmm3,%xmm12 + call _aesni_decrypt2 + pxor %xmm10,%xmm2 + movaps %xmm12,%xmm10 + pxor %xmm11,%xmm3 + movdqu %xmm2,(%rsi) + movdqa %xmm3,%xmm2 + pxor %xmm3,%xmm3 + leaq 16(%rsi),%rsi + jmp L$cbc_dec_tail_collected +.p2align 4 +L$cbc_dec_three: + movaps %xmm4,%xmm13 + call _aesni_decrypt3 + pxor %xmm10,%xmm2 + movaps %xmm13,%xmm10 + pxor %xmm11,%xmm3 + movdqu %xmm2,(%rsi) + pxor %xmm12,%xmm4 + movdqu %xmm3,16(%rsi) + pxor %xmm3,%xmm3 + movdqa %xmm4,%xmm2 + pxor %xmm4,%xmm4 + leaq 32(%rsi),%rsi + jmp L$cbc_dec_tail_collected +.p2align 4 +L$cbc_dec_four: + movaps %xmm5,%xmm14 + call _aesni_decrypt4 + pxor %xmm10,%xmm2 + movaps %xmm14,%xmm10 + pxor %xmm11,%xmm3 + movdqu %xmm2,(%rsi) + pxor %xmm12,%xmm4 + movdqu %xmm3,16(%rsi) + pxor %xmm3,%xmm3 + pxor %xmm13,%xmm5 + movdqu %xmm4,32(%rsi) + pxor %xmm4,%xmm4 + movdqa %xmm5,%xmm2 + pxor %xmm5,%xmm5 + leaq 48(%rsi),%rsi + jmp L$cbc_dec_tail_collected + +.p2align 4 +L$cbc_dec_clear_tail_collected: + pxor %xmm3,%xmm3 + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + pxor %xmm6,%xmm6 + pxor %xmm7,%xmm7 + pxor %xmm8,%xmm8 + pxor %xmm9,%xmm9 +L$cbc_dec_tail_collected: + movups %xmm10,(%r8) + andq $15,%rdx + jnz L$cbc_dec_tail_partial + movups %xmm2,(%rsi) + pxor %xmm2,%xmm2 + jmp L$cbc_dec_ret +.p2align 4 +L$cbc_dec_tail_partial: + movaps %xmm2,(%rsp) + pxor %xmm2,%xmm2 + movq $16,%rcx + movq %rsi,%rdi + subq %rdx,%rcx + leaq (%rsp),%rsi +.long 0x9066A4F3 + movdqa %xmm2,(%rsp) + +L$cbc_dec_ret: + xorps %xmm0,%xmm0 + pxor %xmm1,%xmm1 + movq -8(%r11),%rbp + + leaq (%r11),%rsp + +L$cbc_ret: + .byte 0xf3,0xc3 + + +.globl _aesni_set_decrypt_key + +.p2align 4 +_aesni_set_decrypt_key: + +.byte 0x48,0x83,0xEC,0x08 + + call __aesni_set_encrypt_key + shll $4,%esi + testl %eax,%eax + jnz L$dec_key_ret + leaq 16(%rdx,%rsi,1),%rdi + + movups (%rdx),%xmm0 + movups (%rdi),%xmm1 + movups %xmm0,(%rdi) + movups %xmm1,(%rdx) + leaq 16(%rdx),%rdx + leaq -16(%rdi),%rdi + +L$dec_key_inverse: + movups (%rdx),%xmm0 + movups (%rdi),%xmm1 +.byte 102,15,56,219,192 +.byte 102,15,56,219,201 + leaq 16(%rdx),%rdx + leaq -16(%rdi),%rdi + movups %xmm0,16(%rdi) + movups %xmm1,-16(%rdx) + cmpq %rdx,%rdi + ja L$dec_key_inverse + + movups (%rdx),%xmm0 +.byte 102,15,56,219,192 + pxor %xmm1,%xmm1 + movups %xmm0,(%rdi) + pxor %xmm0,%xmm0 +L$dec_key_ret: + addq $8,%rsp + + .byte 0xf3,0xc3 + +L$SEH_end_set_decrypt_key: + +.globl _aesni_set_encrypt_key + +.p2align 4 +_aesni_set_encrypt_key: +__aesni_set_encrypt_key: + +.byte 0x48,0x83,0xEC,0x08 + + movq $-1,%rax + testq %rdi,%rdi + jz L$enc_key_ret + testq %rdx,%rdx + jz L$enc_key_ret + + movl $268437504,%r10d + movups (%rdi),%xmm0 + xorps %xmm4,%xmm4 + andl _OPENSSL_ia32cap_P+4(%rip),%r10d + leaq 16(%rdx),%rax + cmpl $256,%esi + je L$14rounds + cmpl $192,%esi + je L$12rounds + cmpl $128,%esi + jne L$bad_keybits + +L$10rounds: + movl $9,%esi + cmpl $268435456,%r10d + je L$10rounds_alt + + movups %xmm0,(%rdx) +.byte 102,15,58,223,200,1 + call L$key_expansion_128_cold +.byte 102,15,58,223,200,2 + call L$key_expansion_128 +.byte 102,15,58,223,200,4 + call L$key_expansion_128 +.byte 102,15,58,223,200,8 + call L$key_expansion_128 +.byte 102,15,58,223,200,16 + call L$key_expansion_128 +.byte 102,15,58,223,200,32 + call L$key_expansion_128 +.byte 102,15,58,223,200,64 + call L$key_expansion_128 +.byte 102,15,58,223,200,128 + call L$key_expansion_128 +.byte 102,15,58,223,200,27 + call L$key_expansion_128 +.byte 102,15,58,223,200,54 + call L$key_expansion_128 + movups %xmm0,(%rax) + movl %esi,80(%rax) + xorl %eax,%eax + jmp L$enc_key_ret + +.p2align 4 +L$10rounds_alt: + movdqa L$key_rotate(%rip),%xmm5 + movl $8,%r10d + movdqa L$key_rcon1(%rip),%xmm4 + movdqa %xmm0,%xmm2 + movdqu %xmm0,(%rdx) + jmp L$oop_key128 + +.p2align 4 +L$oop_key128: +.byte 102,15,56,0,197 +.byte 102,15,56,221,196 + pslld $1,%xmm4 + leaq 16(%rax),%rax + + movdqa %xmm2,%xmm3 + pslldq $4,%xmm2 + pxor %xmm2,%xmm3 + pslldq $4,%xmm2 + pxor %xmm2,%xmm3 + pslldq $4,%xmm2 + pxor %xmm3,%xmm2 + + pxor %xmm2,%xmm0 + movdqu %xmm0,-16(%rax) + movdqa %xmm0,%xmm2 + + decl %r10d + jnz L$oop_key128 + + movdqa L$key_rcon1b(%rip),%xmm4 + +.byte 102,15,56,0,197 +.byte 102,15,56,221,196 + pslld $1,%xmm4 + + movdqa %xmm2,%xmm3 + pslldq $4,%xmm2 + pxor %xmm2,%xmm3 + pslldq $4,%xmm2 + pxor %xmm2,%xmm3 + pslldq $4,%xmm2 + pxor %xmm3,%xmm2 + + pxor %xmm2,%xmm0 + movdqu %xmm0,(%rax) + + movdqa %xmm0,%xmm2 +.byte 102,15,56,0,197 +.byte 102,15,56,221,196 + + movdqa %xmm2,%xmm3 + pslldq $4,%xmm2 + pxor %xmm2,%xmm3 + pslldq $4,%xmm2 + pxor %xmm2,%xmm3 + pslldq $4,%xmm2 + pxor %xmm3,%xmm2 + + pxor %xmm2,%xmm0 + movdqu %xmm0,16(%rax) + + movl %esi,96(%rax) + xorl %eax,%eax + jmp L$enc_key_ret + +.p2align 4 +L$12rounds: + movq 16(%rdi),%xmm2 + movl $11,%esi + cmpl $268435456,%r10d + je L$12rounds_alt + + movups %xmm0,(%rdx) +.byte 102,15,58,223,202,1 + call L$key_expansion_192a_cold +.byte 102,15,58,223,202,2 + call L$key_expansion_192b +.byte 102,15,58,223,202,4 + call L$key_expansion_192a +.byte 102,15,58,223,202,8 + call L$key_expansion_192b +.byte 102,15,58,223,202,16 + call L$key_expansion_192a +.byte 102,15,58,223,202,32 + call L$key_expansion_192b +.byte 102,15,58,223,202,64 + call L$key_expansion_192a +.byte 102,15,58,223,202,128 + call L$key_expansion_192b + movups %xmm0,(%rax) + movl %esi,48(%rax) + xorq %rax,%rax + jmp L$enc_key_ret + +.p2align 4 +L$12rounds_alt: + movdqa L$key_rotate192(%rip),%xmm5 + movdqa L$key_rcon1(%rip),%xmm4 + movl $8,%r10d + movdqu %xmm0,(%rdx) + jmp L$oop_key192 + +.p2align 4 +L$oop_key192: + movq %xmm2,0(%rax) + movdqa %xmm2,%xmm1 +.byte 102,15,56,0,213 +.byte 102,15,56,221,212 + pslld $1,%xmm4 + leaq 24(%rax),%rax + + movdqa %xmm0,%xmm3 + pslldq $4,%xmm0 + pxor %xmm0,%xmm3 + pslldq $4,%xmm0 + pxor %xmm0,%xmm3 + pslldq $4,%xmm0 + pxor %xmm3,%xmm0 + + pshufd $0xff,%xmm0,%xmm3 + pxor %xmm1,%xmm3 + pslldq $4,%xmm1 + pxor %xmm1,%xmm3 + + pxor %xmm2,%xmm0 + pxor %xmm3,%xmm2 + movdqu %xmm0,-16(%rax) + + decl %r10d + jnz L$oop_key192 + + movl %esi,32(%rax) + xorl %eax,%eax + jmp L$enc_key_ret + +.p2align 4 +L$14rounds: + movups 16(%rdi),%xmm2 + movl $13,%esi + leaq 16(%rax),%rax + cmpl $268435456,%r10d + je L$14rounds_alt + + movups %xmm0,(%rdx) + movups %xmm2,16(%rdx) +.byte 102,15,58,223,202,1 + call L$key_expansion_256a_cold +.byte 102,15,58,223,200,1 + call L$key_expansion_256b +.byte 102,15,58,223,202,2 + call L$key_expansion_256a +.byte 102,15,58,223,200,2 + call L$key_expansion_256b +.byte 102,15,58,223,202,4 + call L$key_expansion_256a +.byte 102,15,58,223,200,4 + call L$key_expansion_256b +.byte 102,15,58,223,202,8 + call L$key_expansion_256a +.byte 102,15,58,223,200,8 + call L$key_expansion_256b +.byte 102,15,58,223,202,16 + call L$key_expansion_256a +.byte 102,15,58,223,200,16 + call L$key_expansion_256b +.byte 102,15,58,223,202,32 + call L$key_expansion_256a +.byte 102,15,58,223,200,32 + call L$key_expansion_256b +.byte 102,15,58,223,202,64 + call L$key_expansion_256a + movups %xmm0,(%rax) + movl %esi,16(%rax) + xorq %rax,%rax + jmp L$enc_key_ret + +.p2align 4 +L$14rounds_alt: + movdqa L$key_rotate(%rip),%xmm5 + movdqa L$key_rcon1(%rip),%xmm4 + movl $7,%r10d + movdqu %xmm0,0(%rdx) + movdqa %xmm2,%xmm1 + movdqu %xmm2,16(%rdx) + jmp L$oop_key256 + +.p2align 4 +L$oop_key256: +.byte 102,15,56,0,213 +.byte 102,15,56,221,212 + + movdqa %xmm0,%xmm3 + pslldq $4,%xmm0 + pxor %xmm0,%xmm3 + pslldq $4,%xmm0 + pxor %xmm0,%xmm3 + pslldq $4,%xmm0 + pxor %xmm3,%xmm0 + pslld $1,%xmm4 + + pxor %xmm2,%xmm0 + movdqu %xmm0,(%rax) + + decl %r10d + jz L$done_key256 + + pshufd $0xff,%xmm0,%xmm2 + pxor %xmm3,%xmm3 +.byte 102,15,56,221,211 + + movdqa %xmm1,%xmm3 + pslldq $4,%xmm1 + pxor %xmm1,%xmm3 + pslldq $4,%xmm1 + pxor %xmm1,%xmm3 + pslldq $4,%xmm1 + pxor %xmm3,%xmm1 + + pxor %xmm1,%xmm2 + movdqu %xmm2,16(%rax) + leaq 32(%rax),%rax + movdqa %xmm2,%xmm1 + + jmp L$oop_key256 + +L$done_key256: + movl %esi,16(%rax) + xorl %eax,%eax + jmp L$enc_key_ret + +.p2align 4 +L$bad_keybits: + movq $-2,%rax +L$enc_key_ret: + pxor %xmm0,%xmm0 + pxor %xmm1,%xmm1 + pxor %xmm2,%xmm2 + pxor %xmm3,%xmm3 + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + addq $8,%rsp + + .byte 0xf3,0xc3 +L$SEH_end_set_encrypt_key: + +.p2align 4 +L$key_expansion_128: + movups %xmm0,(%rax) + leaq 16(%rax),%rax +L$key_expansion_128_cold: + shufps $16,%xmm0,%xmm4 + xorps %xmm4,%xmm0 + shufps $140,%xmm0,%xmm4 + xorps %xmm4,%xmm0 + shufps $255,%xmm1,%xmm1 + xorps %xmm1,%xmm0 + .byte 0xf3,0xc3 + +.p2align 4 +L$key_expansion_192a: + movups %xmm0,(%rax) + leaq 16(%rax),%rax +L$key_expansion_192a_cold: + movaps %xmm2,%xmm5 +L$key_expansion_192b_warm: + shufps $16,%xmm0,%xmm4 + movdqa %xmm2,%xmm3 + xorps %xmm4,%xmm0 + shufps $140,%xmm0,%xmm4 + pslldq $4,%xmm3 + xorps %xmm4,%xmm0 + pshufd $85,%xmm1,%xmm1 + pxor %xmm3,%xmm2 + pxor %xmm1,%xmm0 + pshufd $255,%xmm0,%xmm3 + pxor %xmm3,%xmm2 + .byte 0xf3,0xc3 + +.p2align 4 +L$key_expansion_192b: + movaps %xmm0,%xmm3 + shufps $68,%xmm0,%xmm5 + movups %xmm5,(%rax) + shufps $78,%xmm2,%xmm3 + movups %xmm3,16(%rax) + leaq 32(%rax),%rax + jmp L$key_expansion_192b_warm + +.p2align 4 +L$key_expansion_256a: + movups %xmm2,(%rax) + leaq 16(%rax),%rax +L$key_expansion_256a_cold: + shufps $16,%xmm0,%xmm4 + xorps %xmm4,%xmm0 + shufps $140,%xmm0,%xmm4 + xorps %xmm4,%xmm0 + shufps $255,%xmm1,%xmm1 + xorps %xmm1,%xmm0 + .byte 0xf3,0xc3 + +.p2align 4 +L$key_expansion_256b: + movups %xmm0,(%rax) + leaq 16(%rax),%rax + + shufps $16,%xmm2,%xmm4 + xorps %xmm4,%xmm2 + shufps $140,%xmm2,%xmm4 + xorps %xmm4,%xmm2 + shufps $170,%xmm1,%xmm1 + xorps %xmm1,%xmm2 + .byte 0xf3,0xc3 + + + +.p2align 6 +L$bswap_mask: +.byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 +L$increment32: +.long 6,6,6,0 +L$increment64: +.long 1,0,0,0 +L$xts_magic: +.long 0x87,0,1,0 +L$increment1: +.byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +L$key_rotate: +.long 0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d +L$key_rotate192: +.long 0x04070605,0x04070605,0x04070605,0x04070605 +L$key_rcon1: +.long 1,1,1,1 +L$key_rcon1b: +.long 0x1b,0x1b,0x1b,0x1b + +.byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69,83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.p2align 6 diff --git a/vere/ext/openssl/gen/macos-x86_64/crypto/aes/vpaes-x86_64.s b/vere/ext/openssl/gen/macos-x86_64/crypto/aes/vpaes-x86_64.s new file mode 100644 index 0000000..79e834a --- /dev/null +++ b/vere/ext/openssl/gen/macos-x86_64/crypto/aes/vpaes-x86_64.s @@ -0,0 +1,853 @@ +.text + + + + + + + + + + + + + + + + + +.p2align 4 +_vpaes_encrypt_core: + + movq %rdx,%r9 + movq $16,%r11 + movl 240(%rdx),%eax + movdqa %xmm9,%xmm1 + movdqa L$k_ipt(%rip),%xmm2 + pandn %xmm0,%xmm1 + movdqu (%r9),%xmm5 + psrld $4,%xmm1 + pand %xmm9,%xmm0 +.byte 102,15,56,0,208 + movdqa L$k_ipt+16(%rip),%xmm0 +.byte 102,15,56,0,193 + pxor %xmm5,%xmm2 + addq $16,%r9 + pxor %xmm2,%xmm0 + leaq L$k_mc_backward(%rip),%r10 + jmp L$enc_entry + +.p2align 4 +L$enc_loop: + + movdqa %xmm13,%xmm4 + movdqa %xmm12,%xmm0 +.byte 102,15,56,0,226 +.byte 102,15,56,0,195 + pxor %xmm5,%xmm4 + movdqa %xmm15,%xmm5 + pxor %xmm4,%xmm0 + movdqa -64(%r11,%r10,1),%xmm1 +.byte 102,15,56,0,234 + movdqa (%r11,%r10,1),%xmm4 + movdqa %xmm14,%xmm2 +.byte 102,15,56,0,211 + movdqa %xmm0,%xmm3 + pxor %xmm5,%xmm2 +.byte 102,15,56,0,193 + addq $16,%r9 + pxor %xmm2,%xmm0 +.byte 102,15,56,0,220 + addq $16,%r11 + pxor %xmm0,%xmm3 +.byte 102,15,56,0,193 + andq $0x30,%r11 + subq $1,%rax + pxor %xmm3,%xmm0 + +L$enc_entry: + + movdqa %xmm9,%xmm1 + movdqa %xmm11,%xmm5 + pandn %xmm0,%xmm1 + psrld $4,%xmm1 + pand %xmm9,%xmm0 +.byte 102,15,56,0,232 + movdqa %xmm10,%xmm3 + pxor %xmm1,%xmm0 +.byte 102,15,56,0,217 + movdqa %xmm10,%xmm4 + pxor %xmm5,%xmm3 +.byte 102,15,56,0,224 + movdqa %xmm10,%xmm2 + pxor %xmm5,%xmm4 +.byte 102,15,56,0,211 + movdqa %xmm10,%xmm3 + pxor %xmm0,%xmm2 +.byte 102,15,56,0,220 + movdqu (%r9),%xmm5 + pxor %xmm1,%xmm3 + jnz L$enc_loop + + + movdqa -96(%r10),%xmm4 + movdqa -80(%r10),%xmm0 +.byte 102,15,56,0,226 + pxor %xmm5,%xmm4 +.byte 102,15,56,0,195 + movdqa 64(%r11,%r10,1),%xmm1 + pxor %xmm4,%xmm0 +.byte 102,15,56,0,193 + .byte 0xf3,0xc3 + + + + + + + + + +.p2align 4 +_vpaes_decrypt_core: + + movq %rdx,%r9 + movl 240(%rdx),%eax + movdqa %xmm9,%xmm1 + movdqa L$k_dipt(%rip),%xmm2 + pandn %xmm0,%xmm1 + movq %rax,%r11 + psrld $4,%xmm1 + movdqu (%r9),%xmm5 + shlq $4,%r11 + pand %xmm9,%xmm0 +.byte 102,15,56,0,208 + movdqa L$k_dipt+16(%rip),%xmm0 + xorq $0x30,%r11 + leaq L$k_dsbd(%rip),%r10 +.byte 102,15,56,0,193 + andq $0x30,%r11 + pxor %xmm5,%xmm2 + movdqa L$k_mc_forward+48(%rip),%xmm5 + pxor %xmm2,%xmm0 + addq $16,%r9 + addq %r10,%r11 + jmp L$dec_entry + +.p2align 4 +L$dec_loop: + + + + movdqa -32(%r10),%xmm4 + movdqa -16(%r10),%xmm1 +.byte 102,15,56,0,226 +.byte 102,15,56,0,203 + pxor %xmm4,%xmm0 + movdqa 0(%r10),%xmm4 + pxor %xmm1,%xmm0 + movdqa 16(%r10),%xmm1 + +.byte 102,15,56,0,226 +.byte 102,15,56,0,197 +.byte 102,15,56,0,203 + pxor %xmm4,%xmm0 + movdqa 32(%r10),%xmm4 + pxor %xmm1,%xmm0 + movdqa 48(%r10),%xmm1 + +.byte 102,15,56,0,226 +.byte 102,15,56,0,197 +.byte 102,15,56,0,203 + pxor %xmm4,%xmm0 + movdqa 64(%r10),%xmm4 + pxor %xmm1,%xmm0 + movdqa 80(%r10),%xmm1 + +.byte 102,15,56,0,226 +.byte 102,15,56,0,197 +.byte 102,15,56,0,203 + pxor %xmm4,%xmm0 + addq $16,%r9 +.byte 102,15,58,15,237,12 + pxor %xmm1,%xmm0 + subq $1,%rax + +L$dec_entry: + + movdqa %xmm9,%xmm1 + pandn %xmm0,%xmm1 + movdqa %xmm11,%xmm2 + psrld $4,%xmm1 + pand %xmm9,%xmm0 +.byte 102,15,56,0,208 + movdqa %xmm10,%xmm3 + pxor %xmm1,%xmm0 +.byte 102,15,56,0,217 + movdqa %xmm10,%xmm4 + pxor %xmm2,%xmm3 +.byte 102,15,56,0,224 + pxor %xmm2,%xmm4 + movdqa %xmm10,%xmm2 +.byte 102,15,56,0,211 + movdqa %xmm10,%xmm3 + pxor %xmm0,%xmm2 +.byte 102,15,56,0,220 + movdqu (%r9),%xmm0 + pxor %xmm1,%xmm3 + jnz L$dec_loop + + + movdqa 96(%r10),%xmm4 +.byte 102,15,56,0,226 + pxor %xmm0,%xmm4 + movdqa 112(%r10),%xmm0 + movdqa -352(%r11),%xmm2 +.byte 102,15,56,0,195 + pxor %xmm4,%xmm0 +.byte 102,15,56,0,194 + .byte 0xf3,0xc3 + + + + + + + + + +.p2align 4 +_vpaes_schedule_core: + + + + + + + call _vpaes_preheat + movdqa L$k_rcon(%rip),%xmm8 + movdqu (%rdi),%xmm0 + + + movdqa %xmm0,%xmm3 + leaq L$k_ipt(%rip),%r11 + call _vpaes_schedule_transform + movdqa %xmm0,%xmm7 + + leaq L$k_sr(%rip),%r10 + testq %rcx,%rcx + jnz L$schedule_am_decrypting + + + movdqu %xmm0,(%rdx) + jmp L$schedule_go + +L$schedule_am_decrypting: + + movdqa (%r8,%r10,1),%xmm1 +.byte 102,15,56,0,217 + movdqu %xmm3,(%rdx) + xorq $0x30,%r8 + +L$schedule_go: + cmpl $192,%esi + ja L$schedule_256 + je L$schedule_192 + + + + + + + + + + +L$schedule_128: + movl $10,%esi + +L$oop_schedule_128: + call _vpaes_schedule_round + decq %rsi + jz L$schedule_mangle_last + call _vpaes_schedule_mangle + jmp L$oop_schedule_128 + + + + + + + + + + + + + + + + +.p2align 4 +L$schedule_192: + movdqu 8(%rdi),%xmm0 + call _vpaes_schedule_transform + movdqa %xmm0,%xmm6 + pxor %xmm4,%xmm4 + movhlps %xmm4,%xmm6 + movl $4,%esi + +L$oop_schedule_192: + call _vpaes_schedule_round +.byte 102,15,58,15,198,8 + call _vpaes_schedule_mangle + call _vpaes_schedule_192_smear + call _vpaes_schedule_mangle + call _vpaes_schedule_round + decq %rsi + jz L$schedule_mangle_last + call _vpaes_schedule_mangle + call _vpaes_schedule_192_smear + jmp L$oop_schedule_192 + + + + + + + + + + + +.p2align 4 +L$schedule_256: + movdqu 16(%rdi),%xmm0 + call _vpaes_schedule_transform + movl $7,%esi + +L$oop_schedule_256: + call _vpaes_schedule_mangle + movdqa %xmm0,%xmm6 + + + call _vpaes_schedule_round + decq %rsi + jz L$schedule_mangle_last + call _vpaes_schedule_mangle + + + pshufd $0xFF,%xmm0,%xmm0 + movdqa %xmm7,%xmm5 + movdqa %xmm6,%xmm7 + call _vpaes_schedule_low_round + movdqa %xmm5,%xmm7 + + jmp L$oop_schedule_256 + + + + + + + + + + + + +.p2align 4 +L$schedule_mangle_last: + + leaq L$k_deskew(%rip),%r11 + testq %rcx,%rcx + jnz L$schedule_mangle_last_dec + + + movdqa (%r8,%r10,1),%xmm1 +.byte 102,15,56,0,193 + leaq L$k_opt(%rip),%r11 + addq $32,%rdx + +L$schedule_mangle_last_dec: + addq $-16,%rdx + pxor L$k_s63(%rip),%xmm0 + call _vpaes_schedule_transform + movdqu %xmm0,(%rdx) + + + pxor %xmm0,%xmm0 + pxor %xmm1,%xmm1 + pxor %xmm2,%xmm2 + pxor %xmm3,%xmm3 + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + pxor %xmm6,%xmm6 + pxor %xmm7,%xmm7 + .byte 0xf3,0xc3 + + + + + + + + + + + + + + + + + + +.p2align 4 +_vpaes_schedule_192_smear: + + pshufd $0x80,%xmm6,%xmm1 + pshufd $0xFE,%xmm7,%xmm0 + pxor %xmm1,%xmm6 + pxor %xmm1,%xmm1 + pxor %xmm0,%xmm6 + movdqa %xmm6,%xmm0 + movhlps %xmm1,%xmm6 + .byte 0xf3,0xc3 + + + + + + + + + + + + + + + + + + + + + + +.p2align 4 +_vpaes_schedule_round: + + + pxor %xmm1,%xmm1 +.byte 102,65,15,58,15,200,15 +.byte 102,69,15,58,15,192,15 + pxor %xmm1,%xmm7 + + + pshufd $0xFF,%xmm0,%xmm0 +.byte 102,15,58,15,192,1 + + + + +_vpaes_schedule_low_round: + + movdqa %xmm7,%xmm1 + pslldq $4,%xmm7 + pxor %xmm1,%xmm7 + movdqa %xmm7,%xmm1 + pslldq $8,%xmm7 + pxor %xmm1,%xmm7 + pxor L$k_s63(%rip),%xmm7 + + + movdqa %xmm9,%xmm1 + pandn %xmm0,%xmm1 + psrld $4,%xmm1 + pand %xmm9,%xmm0 + movdqa %xmm11,%xmm2 +.byte 102,15,56,0,208 + pxor %xmm1,%xmm0 + movdqa %xmm10,%xmm3 +.byte 102,15,56,0,217 + pxor %xmm2,%xmm3 + movdqa %xmm10,%xmm4 +.byte 102,15,56,0,224 + pxor %xmm2,%xmm4 + movdqa %xmm10,%xmm2 +.byte 102,15,56,0,211 + pxor %xmm0,%xmm2 + movdqa %xmm10,%xmm3 +.byte 102,15,56,0,220 + pxor %xmm1,%xmm3 + movdqa %xmm13,%xmm4 +.byte 102,15,56,0,226 + movdqa %xmm12,%xmm0 +.byte 102,15,56,0,195 + pxor %xmm4,%xmm0 + + + pxor %xmm7,%xmm0 + movdqa %xmm0,%xmm7 + .byte 0xf3,0xc3 + + + + + + + + + + + + + +.p2align 4 +_vpaes_schedule_transform: + + movdqa %xmm9,%xmm1 + pandn %xmm0,%xmm1 + psrld $4,%xmm1 + pand %xmm9,%xmm0 + movdqa (%r11),%xmm2 +.byte 102,15,56,0,208 + movdqa 16(%r11),%xmm0 +.byte 102,15,56,0,193 + pxor %xmm2,%xmm0 + .byte 0xf3,0xc3 + + + + + + + + + + + + + + + + + + + + + + + + + + + +.p2align 4 +_vpaes_schedule_mangle: + + movdqa %xmm0,%xmm4 + movdqa L$k_mc_forward(%rip),%xmm5 + testq %rcx,%rcx + jnz L$schedule_mangle_dec + + + addq $16,%rdx + pxor L$k_s63(%rip),%xmm4 +.byte 102,15,56,0,229 + movdqa %xmm4,%xmm3 +.byte 102,15,56,0,229 + pxor %xmm4,%xmm3 +.byte 102,15,56,0,229 + pxor %xmm4,%xmm3 + + jmp L$schedule_mangle_both +.p2align 4 +L$schedule_mangle_dec: + + leaq L$k_dksd(%rip),%r11 + movdqa %xmm9,%xmm1 + pandn %xmm4,%xmm1 + psrld $4,%xmm1 + pand %xmm9,%xmm4 + + movdqa 0(%r11),%xmm2 +.byte 102,15,56,0,212 + movdqa 16(%r11),%xmm3 +.byte 102,15,56,0,217 + pxor %xmm2,%xmm3 +.byte 102,15,56,0,221 + + movdqa 32(%r11),%xmm2 +.byte 102,15,56,0,212 + pxor %xmm3,%xmm2 + movdqa 48(%r11),%xmm3 +.byte 102,15,56,0,217 + pxor %xmm2,%xmm3 +.byte 102,15,56,0,221 + + movdqa 64(%r11),%xmm2 +.byte 102,15,56,0,212 + pxor %xmm3,%xmm2 + movdqa 80(%r11),%xmm3 +.byte 102,15,56,0,217 + pxor %xmm2,%xmm3 +.byte 102,15,56,0,221 + + movdqa 96(%r11),%xmm2 +.byte 102,15,56,0,212 + pxor %xmm3,%xmm2 + movdqa 112(%r11),%xmm3 +.byte 102,15,56,0,217 + pxor %xmm2,%xmm3 + + addq $-16,%rdx + +L$schedule_mangle_both: + movdqa (%r8,%r10,1),%xmm1 +.byte 102,15,56,0,217 + addq $-16,%r8 + andq $0x30,%r8 + movdqu %xmm3,(%rdx) + .byte 0xf3,0xc3 + + + + + + +.globl _vpaes_set_encrypt_key + +.p2align 4 +_vpaes_set_encrypt_key: + + movl %esi,%eax + shrl $5,%eax + addl $5,%eax + movl %eax,240(%rdx) + + movl $0,%ecx + movl $0x30,%r8d + call _vpaes_schedule_core + xorl %eax,%eax + .byte 0xf3,0xc3 + + + +.globl _vpaes_set_decrypt_key + +.p2align 4 +_vpaes_set_decrypt_key: + + movl %esi,%eax + shrl $5,%eax + addl $5,%eax + movl %eax,240(%rdx) + shll $4,%eax + leaq 16(%rdx,%rax,1),%rdx + + movl $1,%ecx + movl %esi,%r8d + shrl $1,%r8d + andl $32,%r8d + xorl $32,%r8d + call _vpaes_schedule_core + xorl %eax,%eax + .byte 0xf3,0xc3 + + + +.globl _vpaes_encrypt + +.p2align 4 +_vpaes_encrypt: + + movdqu (%rdi),%xmm0 + call _vpaes_preheat + call _vpaes_encrypt_core + movdqu %xmm0,(%rsi) + .byte 0xf3,0xc3 + + + +.globl _vpaes_decrypt + +.p2align 4 +_vpaes_decrypt: + + movdqu (%rdi),%xmm0 + call _vpaes_preheat + call _vpaes_decrypt_core + movdqu %xmm0,(%rsi) + .byte 0xf3,0xc3 + + +.globl _vpaes_cbc_encrypt + +.p2align 4 +_vpaes_cbc_encrypt: + + xchgq %rcx,%rdx + subq $16,%rcx + jc L$cbc_abort + movdqu (%r8),%xmm6 + subq %rdi,%rsi + call _vpaes_preheat + cmpl $0,%r9d + je L$cbc_dec_loop + jmp L$cbc_enc_loop +.p2align 4 +L$cbc_enc_loop: + movdqu (%rdi),%xmm0 + pxor %xmm6,%xmm0 + call _vpaes_encrypt_core + movdqa %xmm0,%xmm6 + movdqu %xmm0,(%rsi,%rdi,1) + leaq 16(%rdi),%rdi + subq $16,%rcx + jnc L$cbc_enc_loop + jmp L$cbc_done +.p2align 4 +L$cbc_dec_loop: + movdqu (%rdi),%xmm0 + movdqa %xmm0,%xmm7 + call _vpaes_decrypt_core + pxor %xmm6,%xmm0 + movdqa %xmm7,%xmm6 + movdqu %xmm0,(%rsi,%rdi,1) + leaq 16(%rdi),%rdi + subq $16,%rcx + jnc L$cbc_dec_loop +L$cbc_done: + movdqu %xmm6,(%r8) +L$cbc_abort: + .byte 0xf3,0xc3 + + + + + + + + + +.p2align 4 +_vpaes_preheat: + + leaq L$k_s0F(%rip),%r10 + movdqa -32(%r10),%xmm10 + movdqa -16(%r10),%xmm11 + movdqa 0(%r10),%xmm9 + movdqa 48(%r10),%xmm13 + movdqa 64(%r10),%xmm12 + movdqa 80(%r10),%xmm15 + movdqa 96(%r10),%xmm14 + .byte 0xf3,0xc3 + + + + + + + + +.p2align 6 +_vpaes_consts: +L$k_inv: +.quad 0x0E05060F0D080180, 0x040703090A0B0C02 +.quad 0x01040A060F0B0780, 0x030D0E0C02050809 + +L$k_s0F: +.quad 0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F + +L$k_ipt: +.quad 0xC2B2E8985A2A7000, 0xCABAE09052227808 +.quad 0x4C01307D317C4D00, 0xCD80B1FCB0FDCC81 + +L$k_sb1: +.quad 0xB19BE18FCB503E00, 0xA5DF7A6E142AF544 +.quad 0x3618D415FAE22300, 0x3BF7CCC10D2ED9EF +L$k_sb2: +.quad 0xE27A93C60B712400, 0x5EB7E955BC982FCD +.quad 0x69EB88400AE12900, 0xC2A163C8AB82234A +L$k_sbo: +.quad 0xD0D26D176FBDC700, 0x15AABF7AC502A878 +.quad 0xCFE474A55FBB6A00, 0x8E1E90D1412B35FA + +L$k_mc_forward: +.quad 0x0407060500030201, 0x0C0F0E0D080B0A09 +.quad 0x080B0A0904070605, 0x000302010C0F0E0D +.quad 0x0C0F0E0D080B0A09, 0x0407060500030201 +.quad 0x000302010C0F0E0D, 0x080B0A0904070605 + +L$k_mc_backward: +.quad 0x0605040702010003, 0x0E0D0C0F0A09080B +.quad 0x020100030E0D0C0F, 0x0A09080B06050407 +.quad 0x0E0D0C0F0A09080B, 0x0605040702010003 +.quad 0x0A09080B06050407, 0x020100030E0D0C0F + +L$k_sr: +.quad 0x0706050403020100, 0x0F0E0D0C0B0A0908 +.quad 0x030E09040F0A0500, 0x0B06010C07020D08 +.quad 0x0F060D040B020900, 0x070E050C030A0108 +.quad 0x0B0E0104070A0D00, 0x0306090C0F020508 + +L$k_rcon: +.quad 0x1F8391B9AF9DEEB6, 0x702A98084D7C7D81 + +L$k_s63: +.quad 0x5B5B5B5B5B5B5B5B, 0x5B5B5B5B5B5B5B5B + +L$k_opt: +.quad 0xFF9F4929D6B66000, 0xF7974121DEBE6808 +.quad 0x01EDBD5150BCEC00, 0xE10D5DB1B05C0CE0 + +L$k_deskew: +.quad 0x07E4A34047A4E300, 0x1DFEB95A5DBEF91A +.quad 0x5F36B5DC83EA6900, 0x2841C2ABF49D1E77 + + + + + +L$k_dksd: +.quad 0xFEB91A5DA3E44700, 0x0740E3A45A1DBEF9 +.quad 0x41C277F4B5368300, 0x5FDC69EAAB289D1E +L$k_dksb: +.quad 0x9A4FCA1F8550D500, 0x03D653861CC94C99 +.quad 0x115BEDA7B6FC4A00, 0xD993256F7E3482C8 +L$k_dkse: +.quad 0xD5031CCA1FC9D600, 0x53859A4C994F5086 +.quad 0xA23196054FDC7BE8, 0xCD5EF96A20B31487 +L$k_dks9: +.quad 0xB6116FC87ED9A700, 0x4AED933482255BFC +.quad 0x4576516227143300, 0x8BB89FACE9DAFDCE + + + + + +L$k_dipt: +.quad 0x0F505B040B545F00, 0x154A411E114E451A +.quad 0x86E383E660056500, 0x12771772F491F194 + +L$k_dsb9: +.quad 0x851C03539A86D600, 0xCAD51F504F994CC9 +.quad 0xC03B1789ECD74900, 0x725E2C9EB2FBA565 +L$k_dsbd: +.quad 0x7D57CCDFE6B1A200, 0xF56E9B13882A4439 +.quad 0x3CE2FAF724C6CB00, 0x2931180D15DEEFD3 +L$k_dsbb: +.quad 0xD022649296B44200, 0x602646F6B0F2D404 +.quad 0xC19498A6CD596700, 0xF3FF0C3E3255AA6B +L$k_dsbe: +.quad 0x46F2929626D4D000, 0x2242600464B4F6B0 +.quad 0x0C55A6CDFFAAC100, 0x9467F36B98593E32 +L$k_dsbo: +.quad 0x1387EA537EF94000, 0xC7AA6DB9D4943E2D +.quad 0x12D7560F93441D00, 0xCA4B8159D8C58E9C +.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0 +.p2align 6 + diff --git a/vere/ext/openssl/gen/macos-x86_64/crypto/bn/rsaz-avx2.s b/vere/ext/openssl/gen/macos-x86_64/crypto/bn/rsaz-avx2.s new file mode 100644 index 0000000..de597b1 --- /dev/null +++ b/vere/ext/openssl/gen/macos-x86_64/crypto/bn/rsaz-avx2.s @@ -0,0 +1,1744 @@ +.text + +.globl _rsaz_1024_sqr_avx2 + +.p2align 6 +_rsaz_1024_sqr_avx2: + + leaq (%rsp),%rax + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + vzeroupper + movq %rax,%rbp + + movq %rdx,%r13 + subq $832,%rsp + movq %r13,%r15 + subq $-128,%rdi + subq $-128,%rsi + subq $-128,%r13 + + andq $4095,%r15 + addq $320,%r15 + shrq $12,%r15 + vpxor %ymm9,%ymm9,%ymm9 + jz L$sqr_1024_no_n_copy + + + + + + subq $320,%rsp + vmovdqu 0-128(%r13),%ymm0 + andq $-2048,%rsp + vmovdqu 32-128(%r13),%ymm1 + vmovdqu 64-128(%r13),%ymm2 + vmovdqu 96-128(%r13),%ymm3 + vmovdqu 128-128(%r13),%ymm4 + vmovdqu 160-128(%r13),%ymm5 + vmovdqu 192-128(%r13),%ymm6 + vmovdqu 224-128(%r13),%ymm7 + vmovdqu 256-128(%r13),%ymm8 + leaq 832+128(%rsp),%r13 + vmovdqu %ymm0,0-128(%r13) + vmovdqu %ymm1,32-128(%r13) + vmovdqu %ymm2,64-128(%r13) + vmovdqu %ymm3,96-128(%r13) + vmovdqu %ymm4,128-128(%r13) + vmovdqu %ymm5,160-128(%r13) + vmovdqu %ymm6,192-128(%r13) + vmovdqu %ymm7,224-128(%r13) + vmovdqu %ymm8,256-128(%r13) + vmovdqu %ymm9,288-128(%r13) + +L$sqr_1024_no_n_copy: + andq $-1024,%rsp + + vmovdqu 32-128(%rsi),%ymm1 + vmovdqu 64-128(%rsi),%ymm2 + vmovdqu 96-128(%rsi),%ymm3 + vmovdqu 128-128(%rsi),%ymm4 + vmovdqu 160-128(%rsi),%ymm5 + vmovdqu 192-128(%rsi),%ymm6 + vmovdqu 224-128(%rsi),%ymm7 + vmovdqu 256-128(%rsi),%ymm8 + + leaq 192(%rsp),%rbx + vmovdqu L$and_mask(%rip),%ymm15 + jmp L$OOP_GRANDE_SQR_1024 + +.p2align 5 +L$OOP_GRANDE_SQR_1024: + leaq 576+128(%rsp),%r9 + leaq 448(%rsp),%r12 + + + + + vpaddq %ymm1,%ymm1,%ymm1 + vpbroadcastq 0-128(%rsi),%ymm10 + vpaddq %ymm2,%ymm2,%ymm2 + vmovdqa %ymm1,0-128(%r9) + vpaddq %ymm3,%ymm3,%ymm3 + vmovdqa %ymm2,32-128(%r9) + vpaddq %ymm4,%ymm4,%ymm4 + vmovdqa %ymm3,64-128(%r9) + vpaddq %ymm5,%ymm5,%ymm5 + vmovdqa %ymm4,96-128(%r9) + vpaddq %ymm6,%ymm6,%ymm6 + vmovdqa %ymm5,128-128(%r9) + vpaddq %ymm7,%ymm7,%ymm7 + vmovdqa %ymm6,160-128(%r9) + vpaddq %ymm8,%ymm8,%ymm8 + vmovdqa %ymm7,192-128(%r9) + vpxor %ymm9,%ymm9,%ymm9 + vmovdqa %ymm8,224-128(%r9) + + vpmuludq 0-128(%rsi),%ymm10,%ymm0 + vpbroadcastq 32-128(%rsi),%ymm11 + vmovdqu %ymm9,288-192(%rbx) + vpmuludq %ymm10,%ymm1,%ymm1 + vmovdqu %ymm9,320-448(%r12) + vpmuludq %ymm10,%ymm2,%ymm2 + vmovdqu %ymm9,352-448(%r12) + vpmuludq %ymm10,%ymm3,%ymm3 + vmovdqu %ymm9,384-448(%r12) + vpmuludq %ymm10,%ymm4,%ymm4 + vmovdqu %ymm9,416-448(%r12) + vpmuludq %ymm10,%ymm5,%ymm5 + vmovdqu %ymm9,448-448(%r12) + vpmuludq %ymm10,%ymm6,%ymm6 + vmovdqu %ymm9,480-448(%r12) + vpmuludq %ymm10,%ymm7,%ymm7 + vmovdqu %ymm9,512-448(%r12) + vpmuludq %ymm10,%ymm8,%ymm8 + vpbroadcastq 64-128(%rsi),%ymm10 + vmovdqu %ymm9,544-448(%r12) + + movq %rsi,%r15 + movl $4,%r14d + jmp L$sqr_entry_1024 +.p2align 5 +L$OOP_SQR_1024: + vpbroadcastq 32-128(%r15),%ymm11 + vpmuludq 0-128(%rsi),%ymm10,%ymm0 + vpaddq 0-192(%rbx),%ymm0,%ymm0 + vpmuludq 0-128(%r9),%ymm10,%ymm1 + vpaddq 32-192(%rbx),%ymm1,%ymm1 + vpmuludq 32-128(%r9),%ymm10,%ymm2 + vpaddq 64-192(%rbx),%ymm2,%ymm2 + vpmuludq 64-128(%r9),%ymm10,%ymm3 + vpaddq 96-192(%rbx),%ymm3,%ymm3 + vpmuludq 96-128(%r9),%ymm10,%ymm4 + vpaddq 128-192(%rbx),%ymm4,%ymm4 + vpmuludq 128-128(%r9),%ymm10,%ymm5 + vpaddq 160-192(%rbx),%ymm5,%ymm5 + vpmuludq 160-128(%r9),%ymm10,%ymm6 + vpaddq 192-192(%rbx),%ymm6,%ymm6 + vpmuludq 192-128(%r9),%ymm10,%ymm7 + vpaddq 224-192(%rbx),%ymm7,%ymm7 + vpmuludq 224-128(%r9),%ymm10,%ymm8 + vpbroadcastq 64-128(%r15),%ymm10 + vpaddq 256-192(%rbx),%ymm8,%ymm8 +L$sqr_entry_1024: + vmovdqu %ymm0,0-192(%rbx) + vmovdqu %ymm1,32-192(%rbx) + + vpmuludq 32-128(%rsi),%ymm11,%ymm12 + vpaddq %ymm12,%ymm2,%ymm2 + vpmuludq 32-128(%r9),%ymm11,%ymm14 + vpaddq %ymm14,%ymm3,%ymm3 + vpmuludq 64-128(%r9),%ymm11,%ymm13 + vpaddq %ymm13,%ymm4,%ymm4 + vpmuludq 96-128(%r9),%ymm11,%ymm12 + vpaddq %ymm12,%ymm5,%ymm5 + vpmuludq 128-128(%r9),%ymm11,%ymm14 + vpaddq %ymm14,%ymm6,%ymm6 + vpmuludq 160-128(%r9),%ymm11,%ymm13 + vpaddq %ymm13,%ymm7,%ymm7 + vpmuludq 192-128(%r9),%ymm11,%ymm12 + vpaddq %ymm12,%ymm8,%ymm8 + vpmuludq 224-128(%r9),%ymm11,%ymm0 + vpbroadcastq 96-128(%r15),%ymm11 + vpaddq 288-192(%rbx),%ymm0,%ymm0 + + vmovdqu %ymm2,64-192(%rbx) + vmovdqu %ymm3,96-192(%rbx) + + vpmuludq 64-128(%rsi),%ymm10,%ymm13 + vpaddq %ymm13,%ymm4,%ymm4 + vpmuludq 64-128(%r9),%ymm10,%ymm12 + vpaddq %ymm12,%ymm5,%ymm5 + vpmuludq 96-128(%r9),%ymm10,%ymm14 + vpaddq %ymm14,%ymm6,%ymm6 + vpmuludq 128-128(%r9),%ymm10,%ymm13 + vpaddq %ymm13,%ymm7,%ymm7 + vpmuludq 160-128(%r9),%ymm10,%ymm12 + vpaddq %ymm12,%ymm8,%ymm8 + vpmuludq 192-128(%r9),%ymm10,%ymm14 + vpaddq %ymm14,%ymm0,%ymm0 + vpmuludq 224-128(%r9),%ymm10,%ymm1 + vpbroadcastq 128-128(%r15),%ymm10 + vpaddq 320-448(%r12),%ymm1,%ymm1 + + vmovdqu %ymm4,128-192(%rbx) + vmovdqu %ymm5,160-192(%rbx) + + vpmuludq 96-128(%rsi),%ymm11,%ymm12 + vpaddq %ymm12,%ymm6,%ymm6 + vpmuludq 96-128(%r9),%ymm11,%ymm14 + vpaddq %ymm14,%ymm7,%ymm7 + vpmuludq 128-128(%r9),%ymm11,%ymm13 + vpaddq %ymm13,%ymm8,%ymm8 + vpmuludq 160-128(%r9),%ymm11,%ymm12 + vpaddq %ymm12,%ymm0,%ymm0 + vpmuludq 192-128(%r9),%ymm11,%ymm14 + vpaddq %ymm14,%ymm1,%ymm1 + vpmuludq 224-128(%r9),%ymm11,%ymm2 + vpbroadcastq 160-128(%r15),%ymm11 + vpaddq 352-448(%r12),%ymm2,%ymm2 + + vmovdqu %ymm6,192-192(%rbx) + vmovdqu %ymm7,224-192(%rbx) + + vpmuludq 128-128(%rsi),%ymm10,%ymm12 + vpaddq %ymm12,%ymm8,%ymm8 + vpmuludq 128-128(%r9),%ymm10,%ymm14 + vpaddq %ymm14,%ymm0,%ymm0 + vpmuludq 160-128(%r9),%ymm10,%ymm13 + vpaddq %ymm13,%ymm1,%ymm1 + vpmuludq 192-128(%r9),%ymm10,%ymm12 + vpaddq %ymm12,%ymm2,%ymm2 + vpmuludq 224-128(%r9),%ymm10,%ymm3 + vpbroadcastq 192-128(%r15),%ymm10 + vpaddq 384-448(%r12),%ymm3,%ymm3 + + vmovdqu %ymm8,256-192(%rbx) + vmovdqu %ymm0,288-192(%rbx) + leaq 8(%rbx),%rbx + + vpmuludq 160-128(%rsi),%ymm11,%ymm13 + vpaddq %ymm13,%ymm1,%ymm1 + vpmuludq 160-128(%r9),%ymm11,%ymm12 + vpaddq %ymm12,%ymm2,%ymm2 + vpmuludq 192-128(%r9),%ymm11,%ymm14 + vpaddq %ymm14,%ymm3,%ymm3 + vpmuludq 224-128(%r9),%ymm11,%ymm4 + vpbroadcastq 224-128(%r15),%ymm11 + vpaddq 416-448(%r12),%ymm4,%ymm4 + + vmovdqu %ymm1,320-448(%r12) + vmovdqu %ymm2,352-448(%r12) + + vpmuludq 192-128(%rsi),%ymm10,%ymm12 + vpaddq %ymm12,%ymm3,%ymm3 + vpmuludq 192-128(%r9),%ymm10,%ymm14 + vpbroadcastq 256-128(%r15),%ymm0 + vpaddq %ymm14,%ymm4,%ymm4 + vpmuludq 224-128(%r9),%ymm10,%ymm5 + vpbroadcastq 0+8-128(%r15),%ymm10 + vpaddq 448-448(%r12),%ymm5,%ymm5 + + vmovdqu %ymm3,384-448(%r12) + vmovdqu %ymm4,416-448(%r12) + leaq 8(%r15),%r15 + + vpmuludq 224-128(%rsi),%ymm11,%ymm12 + vpaddq %ymm12,%ymm5,%ymm5 + vpmuludq 224-128(%r9),%ymm11,%ymm6 + vpaddq 480-448(%r12),%ymm6,%ymm6 + + vpmuludq 256-128(%rsi),%ymm0,%ymm7 + vmovdqu %ymm5,448-448(%r12) + vpaddq 512-448(%r12),%ymm7,%ymm7 + vmovdqu %ymm6,480-448(%r12) + vmovdqu %ymm7,512-448(%r12) + leaq 8(%r12),%r12 + + decl %r14d + jnz L$OOP_SQR_1024 + + vmovdqu 256(%rsp),%ymm8 + vmovdqu 288(%rsp),%ymm1 + vmovdqu 320(%rsp),%ymm2 + leaq 192(%rsp),%rbx + + vpsrlq $29,%ymm8,%ymm14 + vpand %ymm15,%ymm8,%ymm8 + vpsrlq $29,%ymm1,%ymm11 + vpand %ymm15,%ymm1,%ymm1 + + vpermq $0x93,%ymm14,%ymm14 + vpxor %ymm9,%ymm9,%ymm9 + vpermq $0x93,%ymm11,%ymm11 + + vpblendd $3,%ymm9,%ymm14,%ymm10 + vpblendd $3,%ymm14,%ymm11,%ymm14 + vpaddq %ymm10,%ymm8,%ymm8 + vpblendd $3,%ymm11,%ymm9,%ymm11 + vpaddq %ymm14,%ymm1,%ymm1 + vpaddq %ymm11,%ymm2,%ymm2 + vmovdqu %ymm1,288-192(%rbx) + vmovdqu %ymm2,320-192(%rbx) + + movq (%rsp),%rax + movq 8(%rsp),%r10 + movq 16(%rsp),%r11 + movq 24(%rsp),%r12 + vmovdqu 32(%rsp),%ymm1 + vmovdqu 64-192(%rbx),%ymm2 + vmovdqu 96-192(%rbx),%ymm3 + vmovdqu 128-192(%rbx),%ymm4 + vmovdqu 160-192(%rbx),%ymm5 + vmovdqu 192-192(%rbx),%ymm6 + vmovdqu 224-192(%rbx),%ymm7 + + movq %rax,%r9 + imull %ecx,%eax + andl $0x1fffffff,%eax + vmovd %eax,%xmm12 + + movq %rax,%rdx + imulq -128(%r13),%rax + vpbroadcastq %xmm12,%ymm12 + addq %rax,%r9 + movq %rdx,%rax + imulq 8-128(%r13),%rax + shrq $29,%r9 + addq %rax,%r10 + movq %rdx,%rax + imulq 16-128(%r13),%rax + addq %r9,%r10 + addq %rax,%r11 + imulq 24-128(%r13),%rdx + addq %rdx,%r12 + + movq %r10,%rax + imull %ecx,%eax + andl $0x1fffffff,%eax + + movl $9,%r14d + jmp L$OOP_REDUCE_1024 + +.p2align 5 +L$OOP_REDUCE_1024: + vmovd %eax,%xmm13 + vpbroadcastq %xmm13,%ymm13 + + vpmuludq 32-128(%r13),%ymm12,%ymm10 + movq %rax,%rdx + imulq -128(%r13),%rax + vpaddq %ymm10,%ymm1,%ymm1 + addq %rax,%r10 + vpmuludq 64-128(%r13),%ymm12,%ymm14 + movq %rdx,%rax + imulq 8-128(%r13),%rax + vpaddq %ymm14,%ymm2,%ymm2 + vpmuludq 96-128(%r13),%ymm12,%ymm11 +.byte 0x67 + addq %rax,%r11 +.byte 0x67 + movq %rdx,%rax + imulq 16-128(%r13),%rax + shrq $29,%r10 + vpaddq %ymm11,%ymm3,%ymm3 + vpmuludq 128-128(%r13),%ymm12,%ymm10 + addq %rax,%r12 + addq %r10,%r11 + vpaddq %ymm10,%ymm4,%ymm4 + vpmuludq 160-128(%r13),%ymm12,%ymm14 + movq %r11,%rax + imull %ecx,%eax + vpaddq %ymm14,%ymm5,%ymm5 + vpmuludq 192-128(%r13),%ymm12,%ymm11 + andl $0x1fffffff,%eax + vpaddq %ymm11,%ymm6,%ymm6 + vpmuludq 224-128(%r13),%ymm12,%ymm10 + vpaddq %ymm10,%ymm7,%ymm7 + vpmuludq 256-128(%r13),%ymm12,%ymm14 + vmovd %eax,%xmm12 + + vpaddq %ymm14,%ymm8,%ymm8 + + vpbroadcastq %xmm12,%ymm12 + + vpmuludq 32-8-128(%r13),%ymm13,%ymm11 + vmovdqu 96-8-128(%r13),%ymm14 + movq %rax,%rdx + imulq -128(%r13),%rax + vpaddq %ymm11,%ymm1,%ymm1 + vpmuludq 64-8-128(%r13),%ymm13,%ymm10 + vmovdqu 128-8-128(%r13),%ymm11 + addq %rax,%r11 + movq %rdx,%rax + imulq 8-128(%r13),%rax + vpaddq %ymm10,%ymm2,%ymm2 + addq %r12,%rax + shrq $29,%r11 + vpmuludq %ymm13,%ymm14,%ymm14 + vmovdqu 160-8-128(%r13),%ymm10 + addq %r11,%rax + vpaddq %ymm14,%ymm3,%ymm3 + vpmuludq %ymm13,%ymm11,%ymm11 + vmovdqu 192-8-128(%r13),%ymm14 +.byte 0x67 + movq %rax,%r12 + imull %ecx,%eax + vpaddq %ymm11,%ymm4,%ymm4 + vpmuludq %ymm13,%ymm10,%ymm10 +.byte 0xc4,0x41,0x7e,0x6f,0x9d,0x58,0x00,0x00,0x00 + andl $0x1fffffff,%eax + vpaddq %ymm10,%ymm5,%ymm5 + vpmuludq %ymm13,%ymm14,%ymm14 + vmovdqu 256-8-128(%r13),%ymm10 + vpaddq %ymm14,%ymm6,%ymm6 + vpmuludq %ymm13,%ymm11,%ymm11 + vmovdqu 288-8-128(%r13),%ymm9 + vmovd %eax,%xmm0 + imulq -128(%r13),%rax + vpaddq %ymm11,%ymm7,%ymm7 + vpmuludq %ymm13,%ymm10,%ymm10 + vmovdqu 32-16-128(%r13),%ymm14 + vpbroadcastq %xmm0,%ymm0 + vpaddq %ymm10,%ymm8,%ymm8 + vpmuludq %ymm13,%ymm9,%ymm9 + vmovdqu 64-16-128(%r13),%ymm11 + addq %rax,%r12 + + vmovdqu 32-24-128(%r13),%ymm13 + vpmuludq %ymm12,%ymm14,%ymm14 + vmovdqu 96-16-128(%r13),%ymm10 + vpaddq %ymm14,%ymm1,%ymm1 + vpmuludq %ymm0,%ymm13,%ymm13 + vpmuludq %ymm12,%ymm11,%ymm11 +.byte 0xc4,0x41,0x7e,0x6f,0xb5,0xf0,0xff,0xff,0xff + vpaddq %ymm1,%ymm13,%ymm13 + vpaddq %ymm11,%ymm2,%ymm2 + vpmuludq %ymm12,%ymm10,%ymm10 + vmovdqu 160-16-128(%r13),%ymm11 +.byte 0x67 + vmovq %xmm13,%rax + vmovdqu %ymm13,(%rsp) + vpaddq %ymm10,%ymm3,%ymm3 + vpmuludq %ymm12,%ymm14,%ymm14 + vmovdqu 192-16-128(%r13),%ymm10 + vpaddq %ymm14,%ymm4,%ymm4 + vpmuludq %ymm12,%ymm11,%ymm11 + vmovdqu 224-16-128(%r13),%ymm14 + vpaddq %ymm11,%ymm5,%ymm5 + vpmuludq %ymm12,%ymm10,%ymm10 + vmovdqu 256-16-128(%r13),%ymm11 + vpaddq %ymm10,%ymm6,%ymm6 + vpmuludq %ymm12,%ymm14,%ymm14 + shrq $29,%r12 + vmovdqu 288-16-128(%r13),%ymm10 + addq %r12,%rax + vpaddq %ymm14,%ymm7,%ymm7 + vpmuludq %ymm12,%ymm11,%ymm11 + + movq %rax,%r9 + imull %ecx,%eax + vpaddq %ymm11,%ymm8,%ymm8 + vpmuludq %ymm12,%ymm10,%ymm10 + andl $0x1fffffff,%eax + vmovd %eax,%xmm12 + vmovdqu 96-24-128(%r13),%ymm11 +.byte 0x67 + vpaddq %ymm10,%ymm9,%ymm9 + vpbroadcastq %xmm12,%ymm12 + + vpmuludq 64-24-128(%r13),%ymm0,%ymm14 + vmovdqu 128-24-128(%r13),%ymm10 + movq %rax,%rdx + imulq -128(%r13),%rax + movq 8(%rsp),%r10 + vpaddq %ymm14,%ymm2,%ymm1 + vpmuludq %ymm0,%ymm11,%ymm11 + vmovdqu 160-24-128(%r13),%ymm14 + addq %rax,%r9 + movq %rdx,%rax + imulq 8-128(%r13),%rax +.byte 0x67 + shrq $29,%r9 + movq 16(%rsp),%r11 + vpaddq %ymm11,%ymm3,%ymm2 + vpmuludq %ymm0,%ymm10,%ymm10 + vmovdqu 192-24-128(%r13),%ymm11 + addq %rax,%r10 + movq %rdx,%rax + imulq 16-128(%r13),%rax + vpaddq %ymm10,%ymm4,%ymm3 + vpmuludq %ymm0,%ymm14,%ymm14 + vmovdqu 224-24-128(%r13),%ymm10 + imulq 24-128(%r13),%rdx + addq %rax,%r11 + leaq (%r9,%r10,1),%rax + vpaddq %ymm14,%ymm5,%ymm4 + vpmuludq %ymm0,%ymm11,%ymm11 + vmovdqu 256-24-128(%r13),%ymm14 + movq %rax,%r10 + imull %ecx,%eax + vpmuludq %ymm0,%ymm10,%ymm10 + vpaddq %ymm11,%ymm6,%ymm5 + vmovdqu 288-24-128(%r13),%ymm11 + andl $0x1fffffff,%eax + vpaddq %ymm10,%ymm7,%ymm6 + vpmuludq %ymm0,%ymm14,%ymm14 + addq 24(%rsp),%rdx + vpaddq %ymm14,%ymm8,%ymm7 + vpmuludq %ymm0,%ymm11,%ymm11 + vpaddq %ymm11,%ymm9,%ymm8 + vmovq %r12,%xmm9 + movq %rdx,%r12 + + decl %r14d + jnz L$OOP_REDUCE_1024 + leaq 448(%rsp),%r12 + vpaddq %ymm9,%ymm13,%ymm0 + vpxor %ymm9,%ymm9,%ymm9 + + vpaddq 288-192(%rbx),%ymm0,%ymm0 + vpaddq 320-448(%r12),%ymm1,%ymm1 + vpaddq 352-448(%r12),%ymm2,%ymm2 + vpaddq 384-448(%r12),%ymm3,%ymm3 + vpaddq 416-448(%r12),%ymm4,%ymm4 + vpaddq 448-448(%r12),%ymm5,%ymm5 + vpaddq 480-448(%r12),%ymm6,%ymm6 + vpaddq 512-448(%r12),%ymm7,%ymm7 + vpaddq 544-448(%r12),%ymm8,%ymm8 + + vpsrlq $29,%ymm0,%ymm14 + vpand %ymm15,%ymm0,%ymm0 + vpsrlq $29,%ymm1,%ymm11 + vpand %ymm15,%ymm1,%ymm1 + vpsrlq $29,%ymm2,%ymm12 + vpermq $0x93,%ymm14,%ymm14 + vpand %ymm15,%ymm2,%ymm2 + vpsrlq $29,%ymm3,%ymm13 + vpermq $0x93,%ymm11,%ymm11 + vpand %ymm15,%ymm3,%ymm3 + vpermq $0x93,%ymm12,%ymm12 + + vpblendd $3,%ymm9,%ymm14,%ymm10 + vpermq $0x93,%ymm13,%ymm13 + vpblendd $3,%ymm14,%ymm11,%ymm14 + vpaddq %ymm10,%ymm0,%ymm0 + vpblendd $3,%ymm11,%ymm12,%ymm11 + vpaddq %ymm14,%ymm1,%ymm1 + vpblendd $3,%ymm12,%ymm13,%ymm12 + vpaddq %ymm11,%ymm2,%ymm2 + vpblendd $3,%ymm13,%ymm9,%ymm13 + vpaddq %ymm12,%ymm3,%ymm3 + vpaddq %ymm13,%ymm4,%ymm4 + + vpsrlq $29,%ymm0,%ymm14 + vpand %ymm15,%ymm0,%ymm0 + vpsrlq $29,%ymm1,%ymm11 + vpand %ymm15,%ymm1,%ymm1 + vpsrlq $29,%ymm2,%ymm12 + vpermq $0x93,%ymm14,%ymm14 + vpand %ymm15,%ymm2,%ymm2 + vpsrlq $29,%ymm3,%ymm13 + vpermq $0x93,%ymm11,%ymm11 + vpand %ymm15,%ymm3,%ymm3 + vpermq $0x93,%ymm12,%ymm12 + + vpblendd $3,%ymm9,%ymm14,%ymm10 + vpermq $0x93,%ymm13,%ymm13 + vpblendd $3,%ymm14,%ymm11,%ymm14 + vpaddq %ymm10,%ymm0,%ymm0 + vpblendd $3,%ymm11,%ymm12,%ymm11 + vpaddq %ymm14,%ymm1,%ymm1 + vmovdqu %ymm0,0-128(%rdi) + vpblendd $3,%ymm12,%ymm13,%ymm12 + vpaddq %ymm11,%ymm2,%ymm2 + vmovdqu %ymm1,32-128(%rdi) + vpblendd $3,%ymm13,%ymm9,%ymm13 + vpaddq %ymm12,%ymm3,%ymm3 + vmovdqu %ymm2,64-128(%rdi) + vpaddq %ymm13,%ymm4,%ymm4 + vmovdqu %ymm3,96-128(%rdi) + vpsrlq $29,%ymm4,%ymm14 + vpand %ymm15,%ymm4,%ymm4 + vpsrlq $29,%ymm5,%ymm11 + vpand %ymm15,%ymm5,%ymm5 + vpsrlq $29,%ymm6,%ymm12 + vpermq $0x93,%ymm14,%ymm14 + vpand %ymm15,%ymm6,%ymm6 + vpsrlq $29,%ymm7,%ymm13 + vpermq $0x93,%ymm11,%ymm11 + vpand %ymm15,%ymm7,%ymm7 + vpsrlq $29,%ymm8,%ymm0 + vpermq $0x93,%ymm12,%ymm12 + vpand %ymm15,%ymm8,%ymm8 + vpermq $0x93,%ymm13,%ymm13 + + vpblendd $3,%ymm9,%ymm14,%ymm10 + vpermq $0x93,%ymm0,%ymm0 + vpblendd $3,%ymm14,%ymm11,%ymm14 + vpaddq %ymm10,%ymm4,%ymm4 + vpblendd $3,%ymm11,%ymm12,%ymm11 + vpaddq %ymm14,%ymm5,%ymm5 + vpblendd $3,%ymm12,%ymm13,%ymm12 + vpaddq %ymm11,%ymm6,%ymm6 + vpblendd $3,%ymm13,%ymm0,%ymm13 + vpaddq %ymm12,%ymm7,%ymm7 + vpaddq %ymm13,%ymm8,%ymm8 + + vpsrlq $29,%ymm4,%ymm14 + vpand %ymm15,%ymm4,%ymm4 + vpsrlq $29,%ymm5,%ymm11 + vpand %ymm15,%ymm5,%ymm5 + vpsrlq $29,%ymm6,%ymm12 + vpermq $0x93,%ymm14,%ymm14 + vpand %ymm15,%ymm6,%ymm6 + vpsrlq $29,%ymm7,%ymm13 + vpermq $0x93,%ymm11,%ymm11 + vpand %ymm15,%ymm7,%ymm7 + vpsrlq $29,%ymm8,%ymm0 + vpermq $0x93,%ymm12,%ymm12 + vpand %ymm15,%ymm8,%ymm8 + vpermq $0x93,%ymm13,%ymm13 + + vpblendd $3,%ymm9,%ymm14,%ymm10 + vpermq $0x93,%ymm0,%ymm0 + vpblendd $3,%ymm14,%ymm11,%ymm14 + vpaddq %ymm10,%ymm4,%ymm4 + vpblendd $3,%ymm11,%ymm12,%ymm11 + vpaddq %ymm14,%ymm5,%ymm5 + vmovdqu %ymm4,128-128(%rdi) + vpblendd $3,%ymm12,%ymm13,%ymm12 + vpaddq %ymm11,%ymm6,%ymm6 + vmovdqu %ymm5,160-128(%rdi) + vpblendd $3,%ymm13,%ymm0,%ymm13 + vpaddq %ymm12,%ymm7,%ymm7 + vmovdqu %ymm6,192-128(%rdi) + vpaddq %ymm13,%ymm8,%ymm8 + vmovdqu %ymm7,224-128(%rdi) + vmovdqu %ymm8,256-128(%rdi) + + movq %rdi,%rsi + decl %r8d + jne L$OOP_GRANDE_SQR_1024 + + vzeroall + movq %rbp,%rax + + movq -48(%rax),%r15 + + movq -40(%rax),%r14 + + movq -32(%rax),%r13 + + movq -24(%rax),%r12 + + movq -16(%rax),%rbp + + movq -8(%rax),%rbx + + leaq (%rax),%rsp + +L$sqr_1024_epilogue: + .byte 0xf3,0xc3 + + +.globl _rsaz_1024_mul_avx2 + +.p2align 6 +_rsaz_1024_mul_avx2: + + leaq (%rsp),%rax + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + movq %rax,%rbp + + vzeroall + movq %rdx,%r13 + subq $64,%rsp + + + + + + +.byte 0x67,0x67 + movq %rsi,%r15 + andq $4095,%r15 + addq $320,%r15 + shrq $12,%r15 + movq %rsi,%r15 + cmovnzq %r13,%rsi + cmovnzq %r15,%r13 + + movq %rcx,%r15 + subq $-128,%rsi + subq $-128,%rcx + subq $-128,%rdi + + andq $4095,%r15 + addq $320,%r15 +.byte 0x67,0x67 + shrq $12,%r15 + jz L$mul_1024_no_n_copy + + + + + + subq $320,%rsp + vmovdqu 0-128(%rcx),%ymm0 + andq $-512,%rsp + vmovdqu 32-128(%rcx),%ymm1 + vmovdqu 64-128(%rcx),%ymm2 + vmovdqu 96-128(%rcx),%ymm3 + vmovdqu 128-128(%rcx),%ymm4 + vmovdqu 160-128(%rcx),%ymm5 + vmovdqu 192-128(%rcx),%ymm6 + vmovdqu 224-128(%rcx),%ymm7 + vmovdqu 256-128(%rcx),%ymm8 + leaq 64+128(%rsp),%rcx + vmovdqu %ymm0,0-128(%rcx) + vpxor %ymm0,%ymm0,%ymm0 + vmovdqu %ymm1,32-128(%rcx) + vpxor %ymm1,%ymm1,%ymm1 + vmovdqu %ymm2,64-128(%rcx) + vpxor %ymm2,%ymm2,%ymm2 + vmovdqu %ymm3,96-128(%rcx) + vpxor %ymm3,%ymm3,%ymm3 + vmovdqu %ymm4,128-128(%rcx) + vpxor %ymm4,%ymm4,%ymm4 + vmovdqu %ymm5,160-128(%rcx) + vpxor %ymm5,%ymm5,%ymm5 + vmovdqu %ymm6,192-128(%rcx) + vpxor %ymm6,%ymm6,%ymm6 + vmovdqu %ymm7,224-128(%rcx) + vpxor %ymm7,%ymm7,%ymm7 + vmovdqu %ymm8,256-128(%rcx) + vmovdqa %ymm0,%ymm8 + vmovdqu %ymm9,288-128(%rcx) +L$mul_1024_no_n_copy: + andq $-64,%rsp + + movq (%r13),%rbx + vpbroadcastq (%r13),%ymm10 + vmovdqu %ymm0,(%rsp) + xorq %r9,%r9 +.byte 0x67 + xorq %r10,%r10 + xorq %r11,%r11 + xorq %r12,%r12 + + vmovdqu L$and_mask(%rip),%ymm15 + movl $9,%r14d + vmovdqu %ymm9,288-128(%rdi) + jmp L$oop_mul_1024 + +.p2align 5 +L$oop_mul_1024: + vpsrlq $29,%ymm3,%ymm9 + movq %rbx,%rax + imulq -128(%rsi),%rax + addq %r9,%rax + movq %rbx,%r10 + imulq 8-128(%rsi),%r10 + addq 8(%rsp),%r10 + + movq %rax,%r9 + imull %r8d,%eax + andl $0x1fffffff,%eax + + movq %rbx,%r11 + imulq 16-128(%rsi),%r11 + addq 16(%rsp),%r11 + + movq %rbx,%r12 + imulq 24-128(%rsi),%r12 + addq 24(%rsp),%r12 + vpmuludq 32-128(%rsi),%ymm10,%ymm0 + vmovd %eax,%xmm11 + vpaddq %ymm0,%ymm1,%ymm1 + vpmuludq 64-128(%rsi),%ymm10,%ymm12 + vpbroadcastq %xmm11,%ymm11 + vpaddq %ymm12,%ymm2,%ymm2 + vpmuludq 96-128(%rsi),%ymm10,%ymm13 + vpand %ymm15,%ymm3,%ymm3 + vpaddq %ymm13,%ymm3,%ymm3 + vpmuludq 128-128(%rsi),%ymm10,%ymm0 + vpaddq %ymm0,%ymm4,%ymm4 + vpmuludq 160-128(%rsi),%ymm10,%ymm12 + vpaddq %ymm12,%ymm5,%ymm5 + vpmuludq 192-128(%rsi),%ymm10,%ymm13 + vpaddq %ymm13,%ymm6,%ymm6 + vpmuludq 224-128(%rsi),%ymm10,%ymm0 + vpermq $0x93,%ymm9,%ymm9 + vpaddq %ymm0,%ymm7,%ymm7 + vpmuludq 256-128(%rsi),%ymm10,%ymm12 + vpbroadcastq 8(%r13),%ymm10 + vpaddq %ymm12,%ymm8,%ymm8 + + movq %rax,%rdx + imulq -128(%rcx),%rax + addq %rax,%r9 + movq %rdx,%rax + imulq 8-128(%rcx),%rax + addq %rax,%r10 + movq %rdx,%rax + imulq 16-128(%rcx),%rax + addq %rax,%r11 + shrq $29,%r9 + imulq 24-128(%rcx),%rdx + addq %rdx,%r12 + addq %r9,%r10 + + vpmuludq 32-128(%rcx),%ymm11,%ymm13 + vmovq %xmm10,%rbx + vpaddq %ymm13,%ymm1,%ymm1 + vpmuludq 64-128(%rcx),%ymm11,%ymm0 + vpaddq %ymm0,%ymm2,%ymm2 + vpmuludq 96-128(%rcx),%ymm11,%ymm12 + vpaddq %ymm12,%ymm3,%ymm3 + vpmuludq 128-128(%rcx),%ymm11,%ymm13 + vpaddq %ymm13,%ymm4,%ymm4 + vpmuludq 160-128(%rcx),%ymm11,%ymm0 + vpaddq %ymm0,%ymm5,%ymm5 + vpmuludq 192-128(%rcx),%ymm11,%ymm12 + vpaddq %ymm12,%ymm6,%ymm6 + vpmuludq 224-128(%rcx),%ymm11,%ymm13 + vpblendd $3,%ymm14,%ymm9,%ymm12 + vpaddq %ymm13,%ymm7,%ymm7 + vpmuludq 256-128(%rcx),%ymm11,%ymm0 + vpaddq %ymm12,%ymm3,%ymm3 + vpaddq %ymm0,%ymm8,%ymm8 + + movq %rbx,%rax + imulq -128(%rsi),%rax + addq %rax,%r10 + vmovdqu -8+32-128(%rsi),%ymm12 + movq %rbx,%rax + imulq 8-128(%rsi),%rax + addq %rax,%r11 + vmovdqu -8+64-128(%rsi),%ymm13 + + movq %r10,%rax + vpblendd $0xfc,%ymm14,%ymm9,%ymm9 + imull %r8d,%eax + vpaddq %ymm9,%ymm4,%ymm4 + andl $0x1fffffff,%eax + + imulq 16-128(%rsi),%rbx + addq %rbx,%r12 + vpmuludq %ymm10,%ymm12,%ymm12 + vmovd %eax,%xmm11 + vmovdqu -8+96-128(%rsi),%ymm0 + vpaddq %ymm12,%ymm1,%ymm1 + vpmuludq %ymm10,%ymm13,%ymm13 + vpbroadcastq %xmm11,%ymm11 + vmovdqu -8+128-128(%rsi),%ymm12 + vpaddq %ymm13,%ymm2,%ymm2 + vpmuludq %ymm10,%ymm0,%ymm0 + vmovdqu -8+160-128(%rsi),%ymm13 + vpaddq %ymm0,%ymm3,%ymm3 + vpmuludq %ymm10,%ymm12,%ymm12 + vmovdqu -8+192-128(%rsi),%ymm0 + vpaddq %ymm12,%ymm4,%ymm4 + vpmuludq %ymm10,%ymm13,%ymm13 + vmovdqu -8+224-128(%rsi),%ymm12 + vpaddq %ymm13,%ymm5,%ymm5 + vpmuludq %ymm10,%ymm0,%ymm0 + vmovdqu -8+256-128(%rsi),%ymm13 + vpaddq %ymm0,%ymm6,%ymm6 + vpmuludq %ymm10,%ymm12,%ymm12 + vmovdqu -8+288-128(%rsi),%ymm9 + vpaddq %ymm12,%ymm7,%ymm7 + vpmuludq %ymm10,%ymm13,%ymm13 + vpaddq %ymm13,%ymm8,%ymm8 + vpmuludq %ymm10,%ymm9,%ymm9 + vpbroadcastq 16(%r13),%ymm10 + + movq %rax,%rdx + imulq -128(%rcx),%rax + addq %rax,%r10 + vmovdqu -8+32-128(%rcx),%ymm0 + movq %rdx,%rax + imulq 8-128(%rcx),%rax + addq %rax,%r11 + vmovdqu -8+64-128(%rcx),%ymm12 + shrq $29,%r10 + imulq 16-128(%rcx),%rdx + addq %rdx,%r12 + addq %r10,%r11 + + vpmuludq %ymm11,%ymm0,%ymm0 + vmovq %xmm10,%rbx + vmovdqu -8+96-128(%rcx),%ymm13 + vpaddq %ymm0,%ymm1,%ymm1 + vpmuludq %ymm11,%ymm12,%ymm12 + vmovdqu -8+128-128(%rcx),%ymm0 + vpaddq %ymm12,%ymm2,%ymm2 + vpmuludq %ymm11,%ymm13,%ymm13 + vmovdqu -8+160-128(%rcx),%ymm12 + vpaddq %ymm13,%ymm3,%ymm3 + vpmuludq %ymm11,%ymm0,%ymm0 + vmovdqu -8+192-128(%rcx),%ymm13 + vpaddq %ymm0,%ymm4,%ymm4 + vpmuludq %ymm11,%ymm12,%ymm12 + vmovdqu -8+224-128(%rcx),%ymm0 + vpaddq %ymm12,%ymm5,%ymm5 + vpmuludq %ymm11,%ymm13,%ymm13 + vmovdqu -8+256-128(%rcx),%ymm12 + vpaddq %ymm13,%ymm6,%ymm6 + vpmuludq %ymm11,%ymm0,%ymm0 + vmovdqu -8+288-128(%rcx),%ymm13 + vpaddq %ymm0,%ymm7,%ymm7 + vpmuludq %ymm11,%ymm12,%ymm12 + vpaddq %ymm12,%ymm8,%ymm8 + vpmuludq %ymm11,%ymm13,%ymm13 + vpaddq %ymm13,%ymm9,%ymm9 + + vmovdqu -16+32-128(%rsi),%ymm0 + movq %rbx,%rax + imulq -128(%rsi),%rax + addq %r11,%rax + + vmovdqu -16+64-128(%rsi),%ymm12 + movq %rax,%r11 + imull %r8d,%eax + andl $0x1fffffff,%eax + + imulq 8-128(%rsi),%rbx + addq %rbx,%r12 + vpmuludq %ymm10,%ymm0,%ymm0 + vmovd %eax,%xmm11 + vmovdqu -16+96-128(%rsi),%ymm13 + vpaddq %ymm0,%ymm1,%ymm1 + vpmuludq %ymm10,%ymm12,%ymm12 + vpbroadcastq %xmm11,%ymm11 + vmovdqu -16+128-128(%rsi),%ymm0 + vpaddq %ymm12,%ymm2,%ymm2 + vpmuludq %ymm10,%ymm13,%ymm13 + vmovdqu -16+160-128(%rsi),%ymm12 + vpaddq %ymm13,%ymm3,%ymm3 + vpmuludq %ymm10,%ymm0,%ymm0 + vmovdqu -16+192-128(%rsi),%ymm13 + vpaddq %ymm0,%ymm4,%ymm4 + vpmuludq %ymm10,%ymm12,%ymm12 + vmovdqu -16+224-128(%rsi),%ymm0 + vpaddq %ymm12,%ymm5,%ymm5 + vpmuludq %ymm10,%ymm13,%ymm13 + vmovdqu -16+256-128(%rsi),%ymm12 + vpaddq %ymm13,%ymm6,%ymm6 + vpmuludq %ymm10,%ymm0,%ymm0 + vmovdqu -16+288-128(%rsi),%ymm13 + vpaddq %ymm0,%ymm7,%ymm7 + vpmuludq %ymm10,%ymm12,%ymm12 + vpaddq %ymm12,%ymm8,%ymm8 + vpmuludq %ymm10,%ymm13,%ymm13 + vpbroadcastq 24(%r13),%ymm10 + vpaddq %ymm13,%ymm9,%ymm9 + + vmovdqu -16+32-128(%rcx),%ymm0 + movq %rax,%rdx + imulq -128(%rcx),%rax + addq %rax,%r11 + vmovdqu -16+64-128(%rcx),%ymm12 + imulq 8-128(%rcx),%rdx + addq %rdx,%r12 + shrq $29,%r11 + + vpmuludq %ymm11,%ymm0,%ymm0 + vmovq %xmm10,%rbx + vmovdqu -16+96-128(%rcx),%ymm13 + vpaddq %ymm0,%ymm1,%ymm1 + vpmuludq %ymm11,%ymm12,%ymm12 + vmovdqu -16+128-128(%rcx),%ymm0 + vpaddq %ymm12,%ymm2,%ymm2 + vpmuludq %ymm11,%ymm13,%ymm13 + vmovdqu -16+160-128(%rcx),%ymm12 + vpaddq %ymm13,%ymm3,%ymm3 + vpmuludq %ymm11,%ymm0,%ymm0 + vmovdqu -16+192-128(%rcx),%ymm13 + vpaddq %ymm0,%ymm4,%ymm4 + vpmuludq %ymm11,%ymm12,%ymm12 + vmovdqu -16+224-128(%rcx),%ymm0 + vpaddq %ymm12,%ymm5,%ymm5 + vpmuludq %ymm11,%ymm13,%ymm13 + vmovdqu -16+256-128(%rcx),%ymm12 + vpaddq %ymm13,%ymm6,%ymm6 + vpmuludq %ymm11,%ymm0,%ymm0 + vmovdqu -16+288-128(%rcx),%ymm13 + vpaddq %ymm0,%ymm7,%ymm7 + vpmuludq %ymm11,%ymm12,%ymm12 + vmovdqu -24+32-128(%rsi),%ymm0 + vpaddq %ymm12,%ymm8,%ymm8 + vpmuludq %ymm11,%ymm13,%ymm13 + vmovdqu -24+64-128(%rsi),%ymm12 + vpaddq %ymm13,%ymm9,%ymm9 + + addq %r11,%r12 + imulq -128(%rsi),%rbx + addq %rbx,%r12 + + movq %r12,%rax + imull %r8d,%eax + andl $0x1fffffff,%eax + + vpmuludq %ymm10,%ymm0,%ymm0 + vmovd %eax,%xmm11 + vmovdqu -24+96-128(%rsi),%ymm13 + vpaddq %ymm0,%ymm1,%ymm1 + vpmuludq %ymm10,%ymm12,%ymm12 + vpbroadcastq %xmm11,%ymm11 + vmovdqu -24+128-128(%rsi),%ymm0 + vpaddq %ymm12,%ymm2,%ymm2 + vpmuludq %ymm10,%ymm13,%ymm13 + vmovdqu -24+160-128(%rsi),%ymm12 + vpaddq %ymm13,%ymm3,%ymm3 + vpmuludq %ymm10,%ymm0,%ymm0 + vmovdqu -24+192-128(%rsi),%ymm13 + vpaddq %ymm0,%ymm4,%ymm4 + vpmuludq %ymm10,%ymm12,%ymm12 + vmovdqu -24+224-128(%rsi),%ymm0 + vpaddq %ymm12,%ymm5,%ymm5 + vpmuludq %ymm10,%ymm13,%ymm13 + vmovdqu -24+256-128(%rsi),%ymm12 + vpaddq %ymm13,%ymm6,%ymm6 + vpmuludq %ymm10,%ymm0,%ymm0 + vmovdqu -24+288-128(%rsi),%ymm13 + vpaddq %ymm0,%ymm7,%ymm7 + vpmuludq %ymm10,%ymm12,%ymm12 + vpaddq %ymm12,%ymm8,%ymm8 + vpmuludq %ymm10,%ymm13,%ymm13 + vpbroadcastq 32(%r13),%ymm10 + vpaddq %ymm13,%ymm9,%ymm9 + addq $32,%r13 + + vmovdqu -24+32-128(%rcx),%ymm0 + imulq -128(%rcx),%rax + addq %rax,%r12 + shrq $29,%r12 + + vmovdqu -24+64-128(%rcx),%ymm12 + vpmuludq %ymm11,%ymm0,%ymm0 + vmovq %xmm10,%rbx + vmovdqu -24+96-128(%rcx),%ymm13 + vpaddq %ymm0,%ymm1,%ymm0 + vpmuludq %ymm11,%ymm12,%ymm12 + vmovdqu %ymm0,(%rsp) + vpaddq %ymm12,%ymm2,%ymm1 + vmovdqu -24+128-128(%rcx),%ymm0 + vpmuludq %ymm11,%ymm13,%ymm13 + vmovdqu -24+160-128(%rcx),%ymm12 + vpaddq %ymm13,%ymm3,%ymm2 + vpmuludq %ymm11,%ymm0,%ymm0 + vmovdqu -24+192-128(%rcx),%ymm13 + vpaddq %ymm0,%ymm4,%ymm3 + vpmuludq %ymm11,%ymm12,%ymm12 + vmovdqu -24+224-128(%rcx),%ymm0 + vpaddq %ymm12,%ymm5,%ymm4 + vpmuludq %ymm11,%ymm13,%ymm13 + vmovdqu -24+256-128(%rcx),%ymm12 + vpaddq %ymm13,%ymm6,%ymm5 + vpmuludq %ymm11,%ymm0,%ymm0 + vmovdqu -24+288-128(%rcx),%ymm13 + movq %r12,%r9 + vpaddq %ymm0,%ymm7,%ymm6 + vpmuludq %ymm11,%ymm12,%ymm12 + addq (%rsp),%r9 + vpaddq %ymm12,%ymm8,%ymm7 + vpmuludq %ymm11,%ymm13,%ymm13 + vmovq %r12,%xmm12 + vpaddq %ymm13,%ymm9,%ymm8 + + decl %r14d + jnz L$oop_mul_1024 + vpaddq (%rsp),%ymm12,%ymm0 + + vpsrlq $29,%ymm0,%ymm12 + vpand %ymm15,%ymm0,%ymm0 + vpsrlq $29,%ymm1,%ymm13 + vpand %ymm15,%ymm1,%ymm1 + vpsrlq $29,%ymm2,%ymm10 + vpermq $0x93,%ymm12,%ymm12 + vpand %ymm15,%ymm2,%ymm2 + vpsrlq $29,%ymm3,%ymm11 + vpermq $0x93,%ymm13,%ymm13 + vpand %ymm15,%ymm3,%ymm3 + + vpblendd $3,%ymm14,%ymm12,%ymm9 + vpermq $0x93,%ymm10,%ymm10 + vpblendd $3,%ymm12,%ymm13,%ymm12 + vpermq $0x93,%ymm11,%ymm11 + vpaddq %ymm9,%ymm0,%ymm0 + vpblendd $3,%ymm13,%ymm10,%ymm13 + vpaddq %ymm12,%ymm1,%ymm1 + vpblendd $3,%ymm10,%ymm11,%ymm10 + vpaddq %ymm13,%ymm2,%ymm2 + vpblendd $3,%ymm11,%ymm14,%ymm11 + vpaddq %ymm10,%ymm3,%ymm3 + vpaddq %ymm11,%ymm4,%ymm4 + + vpsrlq $29,%ymm0,%ymm12 + vpand %ymm15,%ymm0,%ymm0 + vpsrlq $29,%ymm1,%ymm13 + vpand %ymm15,%ymm1,%ymm1 + vpsrlq $29,%ymm2,%ymm10 + vpermq $0x93,%ymm12,%ymm12 + vpand %ymm15,%ymm2,%ymm2 + vpsrlq $29,%ymm3,%ymm11 + vpermq $0x93,%ymm13,%ymm13 + vpand %ymm15,%ymm3,%ymm3 + vpermq $0x93,%ymm10,%ymm10 + + vpblendd $3,%ymm14,%ymm12,%ymm9 + vpermq $0x93,%ymm11,%ymm11 + vpblendd $3,%ymm12,%ymm13,%ymm12 + vpaddq %ymm9,%ymm0,%ymm0 + vpblendd $3,%ymm13,%ymm10,%ymm13 + vpaddq %ymm12,%ymm1,%ymm1 + vpblendd $3,%ymm10,%ymm11,%ymm10 + vpaddq %ymm13,%ymm2,%ymm2 + vpblendd $3,%ymm11,%ymm14,%ymm11 + vpaddq %ymm10,%ymm3,%ymm3 + vpaddq %ymm11,%ymm4,%ymm4 + + vmovdqu %ymm0,0-128(%rdi) + vmovdqu %ymm1,32-128(%rdi) + vmovdqu %ymm2,64-128(%rdi) + vmovdqu %ymm3,96-128(%rdi) + vpsrlq $29,%ymm4,%ymm12 + vpand %ymm15,%ymm4,%ymm4 + vpsrlq $29,%ymm5,%ymm13 + vpand %ymm15,%ymm5,%ymm5 + vpsrlq $29,%ymm6,%ymm10 + vpermq $0x93,%ymm12,%ymm12 + vpand %ymm15,%ymm6,%ymm6 + vpsrlq $29,%ymm7,%ymm11 + vpermq $0x93,%ymm13,%ymm13 + vpand %ymm15,%ymm7,%ymm7 + vpsrlq $29,%ymm8,%ymm0 + vpermq $0x93,%ymm10,%ymm10 + vpand %ymm15,%ymm8,%ymm8 + vpermq $0x93,%ymm11,%ymm11 + + vpblendd $3,%ymm14,%ymm12,%ymm9 + vpermq $0x93,%ymm0,%ymm0 + vpblendd $3,%ymm12,%ymm13,%ymm12 + vpaddq %ymm9,%ymm4,%ymm4 + vpblendd $3,%ymm13,%ymm10,%ymm13 + vpaddq %ymm12,%ymm5,%ymm5 + vpblendd $3,%ymm10,%ymm11,%ymm10 + vpaddq %ymm13,%ymm6,%ymm6 + vpblendd $3,%ymm11,%ymm0,%ymm11 + vpaddq %ymm10,%ymm7,%ymm7 + vpaddq %ymm11,%ymm8,%ymm8 + + vpsrlq $29,%ymm4,%ymm12 + vpand %ymm15,%ymm4,%ymm4 + vpsrlq $29,%ymm5,%ymm13 + vpand %ymm15,%ymm5,%ymm5 + vpsrlq $29,%ymm6,%ymm10 + vpermq $0x93,%ymm12,%ymm12 + vpand %ymm15,%ymm6,%ymm6 + vpsrlq $29,%ymm7,%ymm11 + vpermq $0x93,%ymm13,%ymm13 + vpand %ymm15,%ymm7,%ymm7 + vpsrlq $29,%ymm8,%ymm0 + vpermq $0x93,%ymm10,%ymm10 + vpand %ymm15,%ymm8,%ymm8 + vpermq $0x93,%ymm11,%ymm11 + + vpblendd $3,%ymm14,%ymm12,%ymm9 + vpermq $0x93,%ymm0,%ymm0 + vpblendd $3,%ymm12,%ymm13,%ymm12 + vpaddq %ymm9,%ymm4,%ymm4 + vpblendd $3,%ymm13,%ymm10,%ymm13 + vpaddq %ymm12,%ymm5,%ymm5 + vpblendd $3,%ymm10,%ymm11,%ymm10 + vpaddq %ymm13,%ymm6,%ymm6 + vpblendd $3,%ymm11,%ymm0,%ymm11 + vpaddq %ymm10,%ymm7,%ymm7 + vpaddq %ymm11,%ymm8,%ymm8 + + vmovdqu %ymm4,128-128(%rdi) + vmovdqu %ymm5,160-128(%rdi) + vmovdqu %ymm6,192-128(%rdi) + vmovdqu %ymm7,224-128(%rdi) + vmovdqu %ymm8,256-128(%rdi) + vzeroupper + + movq %rbp,%rax + + movq -48(%rax),%r15 + + movq -40(%rax),%r14 + + movq -32(%rax),%r13 + + movq -24(%rax),%r12 + + movq -16(%rax),%rbp + + movq -8(%rax),%rbx + + leaq (%rax),%rsp + +L$mul_1024_epilogue: + .byte 0xf3,0xc3 + + +.globl _rsaz_1024_red2norm_avx2 + +.p2align 5 +_rsaz_1024_red2norm_avx2: + + subq $-128,%rsi + xorq %rax,%rax + movq -128(%rsi),%r8 + movq -120(%rsi),%r9 + movq -112(%rsi),%r10 + shlq $0,%r8 + shlq $29,%r9 + movq %r10,%r11 + shlq $58,%r10 + shrq $6,%r11 + addq %r8,%rax + addq %r9,%rax + addq %r10,%rax + adcq $0,%r11 + movq %rax,0(%rdi) + movq %r11,%rax + movq -104(%rsi),%r8 + movq -96(%rsi),%r9 + shlq $23,%r8 + movq %r9,%r10 + shlq $52,%r9 + shrq $12,%r10 + addq %r8,%rax + addq %r9,%rax + adcq $0,%r10 + movq %rax,8(%rdi) + movq %r10,%rax + movq -88(%rsi),%r11 + movq -80(%rsi),%r8 + shlq $17,%r11 + movq %r8,%r9 + shlq $46,%r8 + shrq $18,%r9 + addq %r11,%rax + addq %r8,%rax + adcq $0,%r9 + movq %rax,16(%rdi) + movq %r9,%rax + movq -72(%rsi),%r10 + movq -64(%rsi),%r11 + shlq $11,%r10 + movq %r11,%r8 + shlq $40,%r11 + shrq $24,%r8 + addq %r10,%rax + addq %r11,%rax + adcq $0,%r8 + movq %rax,24(%rdi) + movq %r8,%rax + movq -56(%rsi),%r9 + movq -48(%rsi),%r10 + movq -40(%rsi),%r11 + shlq $5,%r9 + shlq $34,%r10 + movq %r11,%r8 + shlq $63,%r11 + shrq $1,%r8 + addq %r9,%rax + addq %r10,%rax + addq %r11,%rax + adcq $0,%r8 + movq %rax,32(%rdi) + movq %r8,%rax + movq -32(%rsi),%r9 + movq -24(%rsi),%r10 + shlq $28,%r9 + movq %r10,%r11 + shlq $57,%r10 + shrq $7,%r11 + addq %r9,%rax + addq %r10,%rax + adcq $0,%r11 + movq %rax,40(%rdi) + movq %r11,%rax + movq -16(%rsi),%r8 + movq -8(%rsi),%r9 + shlq $22,%r8 + movq %r9,%r10 + shlq $51,%r9 + shrq $13,%r10 + addq %r8,%rax + addq %r9,%rax + adcq $0,%r10 + movq %rax,48(%rdi) + movq %r10,%rax + movq 0(%rsi),%r11 + movq 8(%rsi),%r8 + shlq $16,%r11 + movq %r8,%r9 + shlq $45,%r8 + shrq $19,%r9 + addq %r11,%rax + addq %r8,%rax + adcq $0,%r9 + movq %rax,56(%rdi) + movq %r9,%rax + movq 16(%rsi),%r10 + movq 24(%rsi),%r11 + shlq $10,%r10 + movq %r11,%r8 + shlq $39,%r11 + shrq $25,%r8 + addq %r10,%rax + addq %r11,%rax + adcq $0,%r8 + movq %rax,64(%rdi) + movq %r8,%rax + movq 32(%rsi),%r9 + movq 40(%rsi),%r10 + movq 48(%rsi),%r11 + shlq $4,%r9 + shlq $33,%r10 + movq %r11,%r8 + shlq $62,%r11 + shrq $2,%r8 + addq %r9,%rax + addq %r10,%rax + addq %r11,%rax + adcq $0,%r8 + movq %rax,72(%rdi) + movq %r8,%rax + movq 56(%rsi),%r9 + movq 64(%rsi),%r10 + shlq $27,%r9 + movq %r10,%r11 + shlq $56,%r10 + shrq $8,%r11 + addq %r9,%rax + addq %r10,%rax + adcq $0,%r11 + movq %rax,80(%rdi) + movq %r11,%rax + movq 72(%rsi),%r8 + movq 80(%rsi),%r9 + shlq $21,%r8 + movq %r9,%r10 + shlq $50,%r9 + shrq $14,%r10 + addq %r8,%rax + addq %r9,%rax + adcq $0,%r10 + movq %rax,88(%rdi) + movq %r10,%rax + movq 88(%rsi),%r11 + movq 96(%rsi),%r8 + shlq $15,%r11 + movq %r8,%r9 + shlq $44,%r8 + shrq $20,%r9 + addq %r11,%rax + addq %r8,%rax + adcq $0,%r9 + movq %rax,96(%rdi) + movq %r9,%rax + movq 104(%rsi),%r10 + movq 112(%rsi),%r11 + shlq $9,%r10 + movq %r11,%r8 + shlq $38,%r11 + shrq $26,%r8 + addq %r10,%rax + addq %r11,%rax + adcq $0,%r8 + movq %rax,104(%rdi) + movq %r8,%rax + movq 120(%rsi),%r9 + movq 128(%rsi),%r10 + movq 136(%rsi),%r11 + shlq $3,%r9 + shlq $32,%r10 + movq %r11,%r8 + shlq $61,%r11 + shrq $3,%r8 + addq %r9,%rax + addq %r10,%rax + addq %r11,%rax + adcq $0,%r8 + movq %rax,112(%rdi) + movq %r8,%rax + movq 144(%rsi),%r9 + movq 152(%rsi),%r10 + shlq $26,%r9 + movq %r10,%r11 + shlq $55,%r10 + shrq $9,%r11 + addq %r9,%rax + addq %r10,%rax + adcq $0,%r11 + movq %rax,120(%rdi) + movq %r11,%rax + .byte 0xf3,0xc3 + + + +.globl _rsaz_1024_norm2red_avx2 + +.p2align 5 +_rsaz_1024_norm2red_avx2: + + subq $-128,%rdi + movq (%rsi),%r8 + movl $0x1fffffff,%eax + movq 8(%rsi),%r9 + movq %r8,%r11 + shrq $0,%r11 + andq %rax,%r11 + movq %r11,-128(%rdi) + movq %r8,%r10 + shrq $29,%r10 + andq %rax,%r10 + movq %r10,-120(%rdi) + shrdq $58,%r9,%r8 + andq %rax,%r8 + movq %r8,-112(%rdi) + movq 16(%rsi),%r10 + movq %r9,%r8 + shrq $23,%r8 + andq %rax,%r8 + movq %r8,-104(%rdi) + shrdq $52,%r10,%r9 + andq %rax,%r9 + movq %r9,-96(%rdi) + movq 24(%rsi),%r11 + movq %r10,%r9 + shrq $17,%r9 + andq %rax,%r9 + movq %r9,-88(%rdi) + shrdq $46,%r11,%r10 + andq %rax,%r10 + movq %r10,-80(%rdi) + movq 32(%rsi),%r8 + movq %r11,%r10 + shrq $11,%r10 + andq %rax,%r10 + movq %r10,-72(%rdi) + shrdq $40,%r8,%r11 + andq %rax,%r11 + movq %r11,-64(%rdi) + movq 40(%rsi),%r9 + movq %r8,%r11 + shrq $5,%r11 + andq %rax,%r11 + movq %r11,-56(%rdi) + movq %r8,%r10 + shrq $34,%r10 + andq %rax,%r10 + movq %r10,-48(%rdi) + shrdq $63,%r9,%r8 + andq %rax,%r8 + movq %r8,-40(%rdi) + movq 48(%rsi),%r10 + movq %r9,%r8 + shrq $28,%r8 + andq %rax,%r8 + movq %r8,-32(%rdi) + shrdq $57,%r10,%r9 + andq %rax,%r9 + movq %r9,-24(%rdi) + movq 56(%rsi),%r11 + movq %r10,%r9 + shrq $22,%r9 + andq %rax,%r9 + movq %r9,-16(%rdi) + shrdq $51,%r11,%r10 + andq %rax,%r10 + movq %r10,-8(%rdi) + movq 64(%rsi),%r8 + movq %r11,%r10 + shrq $16,%r10 + andq %rax,%r10 + movq %r10,0(%rdi) + shrdq $45,%r8,%r11 + andq %rax,%r11 + movq %r11,8(%rdi) + movq 72(%rsi),%r9 + movq %r8,%r11 + shrq $10,%r11 + andq %rax,%r11 + movq %r11,16(%rdi) + shrdq $39,%r9,%r8 + andq %rax,%r8 + movq %r8,24(%rdi) + movq 80(%rsi),%r10 + movq %r9,%r8 + shrq $4,%r8 + andq %rax,%r8 + movq %r8,32(%rdi) + movq %r9,%r11 + shrq $33,%r11 + andq %rax,%r11 + movq %r11,40(%rdi) + shrdq $62,%r10,%r9 + andq %rax,%r9 + movq %r9,48(%rdi) + movq 88(%rsi),%r11 + movq %r10,%r9 + shrq $27,%r9 + andq %rax,%r9 + movq %r9,56(%rdi) + shrdq $56,%r11,%r10 + andq %rax,%r10 + movq %r10,64(%rdi) + movq 96(%rsi),%r8 + movq %r11,%r10 + shrq $21,%r10 + andq %rax,%r10 + movq %r10,72(%rdi) + shrdq $50,%r8,%r11 + andq %rax,%r11 + movq %r11,80(%rdi) + movq 104(%rsi),%r9 + movq %r8,%r11 + shrq $15,%r11 + andq %rax,%r11 + movq %r11,88(%rdi) + shrdq $44,%r9,%r8 + andq %rax,%r8 + movq %r8,96(%rdi) + movq 112(%rsi),%r10 + movq %r9,%r8 + shrq $9,%r8 + andq %rax,%r8 + movq %r8,104(%rdi) + shrdq $38,%r10,%r9 + andq %rax,%r9 + movq %r9,112(%rdi) + movq 120(%rsi),%r11 + movq %r10,%r9 + shrq $3,%r9 + andq %rax,%r9 + movq %r9,120(%rdi) + movq %r10,%r8 + shrq $32,%r8 + andq %rax,%r8 + movq %r8,128(%rdi) + shrdq $61,%r11,%r10 + andq %rax,%r10 + movq %r10,136(%rdi) + xorq %r8,%r8 + movq %r11,%r10 + shrq $26,%r10 + andq %rax,%r10 + movq %r10,144(%rdi) + shrdq $55,%r8,%r11 + andq %rax,%r11 + movq %r11,152(%rdi) + movq %r8,160(%rdi) + movq %r8,168(%rdi) + movq %r8,176(%rdi) + movq %r8,184(%rdi) + .byte 0xf3,0xc3 + + +.globl _rsaz_1024_scatter5_avx2 + +.p2align 5 +_rsaz_1024_scatter5_avx2: + + vzeroupper + vmovdqu L$scatter_permd(%rip),%ymm5 + shll $4,%edx + leaq (%rdi,%rdx,1),%rdi + movl $9,%eax + jmp L$oop_scatter_1024 + +.p2align 5 +L$oop_scatter_1024: + vmovdqu (%rsi),%ymm0 + leaq 32(%rsi),%rsi + vpermd %ymm0,%ymm5,%ymm0 + vmovdqu %xmm0,(%rdi) + leaq 512(%rdi),%rdi + decl %eax + jnz L$oop_scatter_1024 + + vzeroupper + .byte 0xf3,0xc3 + + + +.globl _rsaz_1024_gather5_avx2 + +.p2align 5 +_rsaz_1024_gather5_avx2: + + vzeroupper + movq %rsp,%r11 + + leaq -256(%rsp),%rsp + andq $-32,%rsp + leaq L$inc(%rip),%r10 + leaq -128(%rsp),%rax + + vmovd %edx,%xmm4 + vmovdqa (%r10),%ymm0 + vmovdqa 32(%r10),%ymm1 + vmovdqa 64(%r10),%ymm5 + vpbroadcastd %xmm4,%ymm4 + + vpaddd %ymm5,%ymm0,%ymm2 + vpcmpeqd %ymm4,%ymm0,%ymm0 + vpaddd %ymm5,%ymm1,%ymm3 + vpcmpeqd %ymm4,%ymm1,%ymm1 + vmovdqa %ymm0,0+128(%rax) + vpaddd %ymm5,%ymm2,%ymm0 + vpcmpeqd %ymm4,%ymm2,%ymm2 + vmovdqa %ymm1,32+128(%rax) + vpaddd %ymm5,%ymm3,%ymm1 + vpcmpeqd %ymm4,%ymm3,%ymm3 + vmovdqa %ymm2,64+128(%rax) + vpaddd %ymm5,%ymm0,%ymm2 + vpcmpeqd %ymm4,%ymm0,%ymm0 + vmovdqa %ymm3,96+128(%rax) + vpaddd %ymm5,%ymm1,%ymm3 + vpcmpeqd %ymm4,%ymm1,%ymm1 + vmovdqa %ymm0,128+128(%rax) + vpaddd %ymm5,%ymm2,%ymm8 + vpcmpeqd %ymm4,%ymm2,%ymm2 + vmovdqa %ymm1,160+128(%rax) + vpaddd %ymm5,%ymm3,%ymm9 + vpcmpeqd %ymm4,%ymm3,%ymm3 + vmovdqa %ymm2,192+128(%rax) + vpaddd %ymm5,%ymm8,%ymm10 + vpcmpeqd %ymm4,%ymm8,%ymm8 + vmovdqa %ymm3,224+128(%rax) + vpaddd %ymm5,%ymm9,%ymm11 + vpcmpeqd %ymm4,%ymm9,%ymm9 + vpaddd %ymm5,%ymm10,%ymm12 + vpcmpeqd %ymm4,%ymm10,%ymm10 + vpaddd %ymm5,%ymm11,%ymm13 + vpcmpeqd %ymm4,%ymm11,%ymm11 + vpaddd %ymm5,%ymm12,%ymm14 + vpcmpeqd %ymm4,%ymm12,%ymm12 + vpaddd %ymm5,%ymm13,%ymm15 + vpcmpeqd %ymm4,%ymm13,%ymm13 + vpcmpeqd %ymm4,%ymm14,%ymm14 + vpcmpeqd %ymm4,%ymm15,%ymm15 + + vmovdqa -32(%r10),%ymm7 + leaq 128(%rsi),%rsi + movl $9,%edx + +L$oop_gather_1024: + vmovdqa 0-128(%rsi),%ymm0 + vmovdqa 32-128(%rsi),%ymm1 + vmovdqa 64-128(%rsi),%ymm2 + vmovdqa 96-128(%rsi),%ymm3 + vpand 0+128(%rax),%ymm0,%ymm0 + vpand 32+128(%rax),%ymm1,%ymm1 + vpand 64+128(%rax),%ymm2,%ymm2 + vpor %ymm0,%ymm1,%ymm4 + vpand 96+128(%rax),%ymm3,%ymm3 + vmovdqa 128-128(%rsi),%ymm0 + vmovdqa 160-128(%rsi),%ymm1 + vpor %ymm2,%ymm3,%ymm5 + vmovdqa 192-128(%rsi),%ymm2 + vmovdqa 224-128(%rsi),%ymm3 + vpand 128+128(%rax),%ymm0,%ymm0 + vpand 160+128(%rax),%ymm1,%ymm1 + vpand 192+128(%rax),%ymm2,%ymm2 + vpor %ymm0,%ymm4,%ymm4 + vpand 224+128(%rax),%ymm3,%ymm3 + vpand 256-128(%rsi),%ymm8,%ymm0 + vpor %ymm1,%ymm5,%ymm5 + vpand 288-128(%rsi),%ymm9,%ymm1 + vpor %ymm2,%ymm4,%ymm4 + vpand 320-128(%rsi),%ymm10,%ymm2 + vpor %ymm3,%ymm5,%ymm5 + vpand 352-128(%rsi),%ymm11,%ymm3 + vpor %ymm0,%ymm4,%ymm4 + vpand 384-128(%rsi),%ymm12,%ymm0 + vpor %ymm1,%ymm5,%ymm5 + vpand 416-128(%rsi),%ymm13,%ymm1 + vpor %ymm2,%ymm4,%ymm4 + vpand 448-128(%rsi),%ymm14,%ymm2 + vpor %ymm3,%ymm5,%ymm5 + vpand 480-128(%rsi),%ymm15,%ymm3 + leaq 512(%rsi),%rsi + vpor %ymm0,%ymm4,%ymm4 + vpor %ymm1,%ymm5,%ymm5 + vpor %ymm2,%ymm4,%ymm4 + vpor %ymm3,%ymm5,%ymm5 + + vpor %ymm5,%ymm4,%ymm4 + vextracti128 $1,%ymm4,%xmm5 + vpor %xmm4,%xmm5,%xmm5 + vpermd %ymm5,%ymm7,%ymm5 + vmovdqu %ymm5,(%rdi) + leaq 32(%rdi),%rdi + decl %edx + jnz L$oop_gather_1024 + + vpxor %ymm0,%ymm0,%ymm0 + vmovdqu %ymm0,(%rdi) + vzeroupper + leaq (%r11),%rsp + + .byte 0xf3,0xc3 + +L$SEH_end_rsaz_1024_gather5: + + +.globl _rsaz_avx2_eligible + +.p2align 5 +_rsaz_avx2_eligible: + movl _OPENSSL_ia32cap_P+8(%rip),%eax + movl $524544,%ecx + movl $0,%edx + andl %eax,%ecx + cmpl $524544,%ecx + cmovel %edx,%eax + andl $32,%eax + shrl $5,%eax + .byte 0xf3,0xc3 + + +.p2align 6 +L$and_mask: +.quad 0x1fffffff,0x1fffffff,0x1fffffff,0x1fffffff +L$scatter_permd: +.long 0,2,4,6,7,7,7,7 +L$gather_permd: +.long 0,7,1,7,2,7,3,7 +L$inc: +.long 0,0,0,0, 1,1,1,1 +.long 2,2,2,2, 3,3,3,3 +.long 4,4,4,4, 4,4,4,4 +.p2align 6 diff --git a/vere/ext/openssl/gen/macos-x86_64/crypto/bn/rsaz-x86_64.s b/vere/ext/openssl/gen/macos-x86_64/crypto/bn/rsaz-x86_64.s new file mode 100644 index 0000000..b572410 --- /dev/null +++ b/vere/ext/openssl/gen/macos-x86_64/crypto/bn/rsaz-x86_64.s @@ -0,0 +1,1985 @@ +.text + + + +.globl _rsaz_512_sqr + +.p2align 5 +_rsaz_512_sqr: + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + + subq $128+24,%rsp + +L$sqr_body: +.byte 102,72,15,110,202 + movq (%rsi),%rdx + movq 8(%rsi),%rax + movq %rcx,128(%rsp) + movl $0x80100,%r11d + andl _OPENSSL_ia32cap_P+8(%rip),%r11d + cmpl $0x80100,%r11d + je L$oop_sqrx + jmp L$oop_sqr + +.p2align 5 +L$oop_sqr: + movl %r8d,128+8(%rsp) + + movq %rdx,%rbx + movq %rax,%rbp + mulq %rdx + movq %rax,%r8 + movq 16(%rsi),%rax + movq %rdx,%r9 + + mulq %rbx + addq %rax,%r9 + movq 24(%rsi),%rax + movq %rdx,%r10 + adcq $0,%r10 + + mulq %rbx + addq %rax,%r10 + movq 32(%rsi),%rax + movq %rdx,%r11 + adcq $0,%r11 + + mulq %rbx + addq %rax,%r11 + movq 40(%rsi),%rax + movq %rdx,%r12 + adcq $0,%r12 + + mulq %rbx + addq %rax,%r12 + movq 48(%rsi),%rax + movq %rdx,%r13 + adcq $0,%r13 + + mulq %rbx + addq %rax,%r13 + movq 56(%rsi),%rax + movq %rdx,%r14 + adcq $0,%r14 + + mulq %rbx + addq %rax,%r14 + movq %rbx,%rax + adcq $0,%rdx + + xorq %rcx,%rcx + addq %r8,%r8 + movq %rdx,%r15 + adcq $0,%rcx + + mulq %rax + addq %r8,%rdx + adcq $0,%rcx + + movq %rax,(%rsp) + movq %rdx,8(%rsp) + + + movq 16(%rsi),%rax + mulq %rbp + addq %rax,%r10 + movq 24(%rsi),%rax + movq %rdx,%rbx + adcq $0,%rbx + + mulq %rbp + addq %rax,%r11 + movq 32(%rsi),%rax + adcq $0,%rdx + addq %rbx,%r11 + movq %rdx,%rbx + adcq $0,%rbx + + mulq %rbp + addq %rax,%r12 + movq 40(%rsi),%rax + adcq $0,%rdx + addq %rbx,%r12 + movq %rdx,%rbx + adcq $0,%rbx + + mulq %rbp + addq %rax,%r13 + movq 48(%rsi),%rax + adcq $0,%rdx + addq %rbx,%r13 + movq %rdx,%rbx + adcq $0,%rbx + + mulq %rbp + addq %rax,%r14 + movq 56(%rsi),%rax + adcq $0,%rdx + addq %rbx,%r14 + movq %rdx,%rbx + adcq $0,%rbx + + mulq %rbp + addq %rax,%r15 + movq %rbp,%rax + adcq $0,%rdx + addq %rbx,%r15 + adcq $0,%rdx + + xorq %rbx,%rbx + addq %r9,%r9 + movq %rdx,%r8 + adcq %r10,%r10 + adcq $0,%rbx + + mulq %rax + + addq %rcx,%rax + movq 16(%rsi),%rbp + addq %rax,%r9 + movq 24(%rsi),%rax + adcq %rdx,%r10 + adcq $0,%rbx + + movq %r9,16(%rsp) + movq %r10,24(%rsp) + + + mulq %rbp + addq %rax,%r12 + movq 32(%rsi),%rax + movq %rdx,%rcx + adcq $0,%rcx + + mulq %rbp + addq %rax,%r13 + movq 40(%rsi),%rax + adcq $0,%rdx + addq %rcx,%r13 + movq %rdx,%rcx + adcq $0,%rcx + + mulq %rbp + addq %rax,%r14 + movq 48(%rsi),%rax + adcq $0,%rdx + addq %rcx,%r14 + movq %rdx,%rcx + adcq $0,%rcx + + mulq %rbp + addq %rax,%r15 + movq 56(%rsi),%rax + adcq $0,%rdx + addq %rcx,%r15 + movq %rdx,%rcx + adcq $0,%rcx + + mulq %rbp + addq %rax,%r8 + movq %rbp,%rax + adcq $0,%rdx + addq %rcx,%r8 + adcq $0,%rdx + + xorq %rcx,%rcx + addq %r11,%r11 + movq %rdx,%r9 + adcq %r12,%r12 + adcq $0,%rcx + + mulq %rax + + addq %rbx,%rax + movq 24(%rsi),%r10 + addq %rax,%r11 + movq 32(%rsi),%rax + adcq %rdx,%r12 + adcq $0,%rcx + + movq %r11,32(%rsp) + movq %r12,40(%rsp) + + + movq %rax,%r11 + mulq %r10 + addq %rax,%r14 + movq 40(%rsi),%rax + movq %rdx,%rbx + adcq $0,%rbx + + movq %rax,%r12 + mulq %r10 + addq %rax,%r15 + movq 48(%rsi),%rax + adcq $0,%rdx + addq %rbx,%r15 + movq %rdx,%rbx + adcq $0,%rbx + + movq %rax,%rbp + mulq %r10 + addq %rax,%r8 + movq 56(%rsi),%rax + adcq $0,%rdx + addq %rbx,%r8 + movq %rdx,%rbx + adcq $0,%rbx + + mulq %r10 + addq %rax,%r9 + movq %r10,%rax + adcq $0,%rdx + addq %rbx,%r9 + adcq $0,%rdx + + xorq %rbx,%rbx + addq %r13,%r13 + movq %rdx,%r10 + adcq %r14,%r14 + adcq $0,%rbx + + mulq %rax + + addq %rcx,%rax + addq %rax,%r13 + movq %r12,%rax + adcq %rdx,%r14 + adcq $0,%rbx + + movq %r13,48(%rsp) + movq %r14,56(%rsp) + + + mulq %r11 + addq %rax,%r8 + movq %rbp,%rax + movq %rdx,%rcx + adcq $0,%rcx + + mulq %r11 + addq %rax,%r9 + movq 56(%rsi),%rax + adcq $0,%rdx + addq %rcx,%r9 + movq %rdx,%rcx + adcq $0,%rcx + + movq %rax,%r14 + mulq %r11 + addq %rax,%r10 + movq %r11,%rax + adcq $0,%rdx + addq %rcx,%r10 + adcq $0,%rdx + + xorq %rcx,%rcx + addq %r15,%r15 + movq %rdx,%r11 + adcq %r8,%r8 + adcq $0,%rcx + + mulq %rax + + addq %rbx,%rax + addq %rax,%r15 + movq %rbp,%rax + adcq %rdx,%r8 + adcq $0,%rcx + + movq %r15,64(%rsp) + movq %r8,72(%rsp) + + + mulq %r12 + addq %rax,%r10 + movq %r14,%rax + movq %rdx,%rbx + adcq $0,%rbx + + mulq %r12 + addq %rax,%r11 + movq %r12,%rax + adcq $0,%rdx + addq %rbx,%r11 + adcq $0,%rdx + + xorq %rbx,%rbx + addq %r9,%r9 + movq %rdx,%r12 + adcq %r10,%r10 + adcq $0,%rbx + + mulq %rax + + addq %rcx,%rax + addq %rax,%r9 + movq %r14,%rax + adcq %rdx,%r10 + adcq $0,%rbx + + movq %r9,80(%rsp) + movq %r10,88(%rsp) + + + mulq %rbp + addq %rax,%r12 + movq %rbp,%rax + adcq $0,%rdx + + xorq %rcx,%rcx + addq %r11,%r11 + movq %rdx,%r13 + adcq %r12,%r12 + adcq $0,%rcx + + mulq %rax + + addq %rbx,%rax + addq %rax,%r11 + movq %r14,%rax + adcq %rdx,%r12 + adcq $0,%rcx + + movq %r11,96(%rsp) + movq %r12,104(%rsp) + + + xorq %rbx,%rbx + addq %r13,%r13 + adcq $0,%rbx + + mulq %rax + + addq %rcx,%rax + addq %r13,%rax + adcq %rbx,%rdx + + movq (%rsp),%r8 + movq 8(%rsp),%r9 + movq 16(%rsp),%r10 + movq 24(%rsp),%r11 + movq 32(%rsp),%r12 + movq 40(%rsp),%r13 + movq 48(%rsp),%r14 + movq 56(%rsp),%r15 +.byte 102,72,15,126,205 + + movq %rax,112(%rsp) + movq %rdx,120(%rsp) + + call __rsaz_512_reduce + + addq 64(%rsp),%r8 + adcq 72(%rsp),%r9 + adcq 80(%rsp),%r10 + adcq 88(%rsp),%r11 + adcq 96(%rsp),%r12 + adcq 104(%rsp),%r13 + adcq 112(%rsp),%r14 + adcq 120(%rsp),%r15 + sbbq %rcx,%rcx + + call __rsaz_512_subtract + + movq %r8,%rdx + movq %r9,%rax + movl 128+8(%rsp),%r8d + movq %rdi,%rsi + + decl %r8d + jnz L$oop_sqr + jmp L$sqr_tail + +.p2align 5 +L$oop_sqrx: + movl %r8d,128+8(%rsp) +.byte 102,72,15,110,199 + + mulxq %rax,%r8,%r9 + movq %rax,%rbx + + mulxq 16(%rsi),%rcx,%r10 + xorq %rbp,%rbp + + mulxq 24(%rsi),%rax,%r11 + adcxq %rcx,%r9 + +.byte 0xc4,0x62,0xf3,0xf6,0xa6,0x20,0x00,0x00,0x00 + adcxq %rax,%r10 + +.byte 0xc4,0x62,0xfb,0xf6,0xae,0x28,0x00,0x00,0x00 + adcxq %rcx,%r11 + + mulxq 48(%rsi),%rcx,%r14 + adcxq %rax,%r12 + adcxq %rcx,%r13 + + mulxq 56(%rsi),%rax,%r15 + adcxq %rax,%r14 + adcxq %rbp,%r15 + + mulxq %rdx,%rax,%rdi + movq %rbx,%rdx + xorq %rcx,%rcx + adoxq %r8,%r8 + adcxq %rdi,%r8 + adoxq %rbp,%rcx + adcxq %rbp,%rcx + + movq %rax,(%rsp) + movq %r8,8(%rsp) + + +.byte 0xc4,0xe2,0xfb,0xf6,0x9e,0x10,0x00,0x00,0x00 + adoxq %rax,%r10 + adcxq %rbx,%r11 + + mulxq 24(%rsi),%rdi,%r8 + adoxq %rdi,%r11 +.byte 0x66 + adcxq %r8,%r12 + + mulxq 32(%rsi),%rax,%rbx + adoxq %rax,%r12 + adcxq %rbx,%r13 + + mulxq 40(%rsi),%rdi,%r8 + adoxq %rdi,%r13 + adcxq %r8,%r14 + +.byte 0xc4,0xe2,0xfb,0xf6,0x9e,0x30,0x00,0x00,0x00 + adoxq %rax,%r14 + adcxq %rbx,%r15 + +.byte 0xc4,0x62,0xc3,0xf6,0x86,0x38,0x00,0x00,0x00 + adoxq %rdi,%r15 + adcxq %rbp,%r8 + mulxq %rdx,%rax,%rdi + adoxq %rbp,%r8 +.byte 0x48,0x8b,0x96,0x10,0x00,0x00,0x00 + + xorq %rbx,%rbx + adoxq %r9,%r9 + + adcxq %rcx,%rax + adoxq %r10,%r10 + adcxq %rax,%r9 + adoxq %rbp,%rbx + adcxq %rdi,%r10 + adcxq %rbp,%rbx + + movq %r9,16(%rsp) +.byte 0x4c,0x89,0x94,0x24,0x18,0x00,0x00,0x00 + + + mulxq 24(%rsi),%rdi,%r9 + adoxq %rdi,%r12 + adcxq %r9,%r13 + + mulxq 32(%rsi),%rax,%rcx + adoxq %rax,%r13 + adcxq %rcx,%r14 + +.byte 0xc4,0x62,0xc3,0xf6,0x8e,0x28,0x00,0x00,0x00 + adoxq %rdi,%r14 + adcxq %r9,%r15 + +.byte 0xc4,0xe2,0xfb,0xf6,0x8e,0x30,0x00,0x00,0x00 + adoxq %rax,%r15 + adcxq %rcx,%r8 + + mulxq 56(%rsi),%rdi,%r9 + adoxq %rdi,%r8 + adcxq %rbp,%r9 + mulxq %rdx,%rax,%rdi + adoxq %rbp,%r9 + movq 24(%rsi),%rdx + + xorq %rcx,%rcx + adoxq %r11,%r11 + + adcxq %rbx,%rax + adoxq %r12,%r12 + adcxq %rax,%r11 + adoxq %rbp,%rcx + adcxq %rdi,%r12 + adcxq %rbp,%rcx + + movq %r11,32(%rsp) + movq %r12,40(%rsp) + + + mulxq 32(%rsi),%rax,%rbx + adoxq %rax,%r14 + adcxq %rbx,%r15 + + mulxq 40(%rsi),%rdi,%r10 + adoxq %rdi,%r15 + adcxq %r10,%r8 + + mulxq 48(%rsi),%rax,%rbx + adoxq %rax,%r8 + adcxq %rbx,%r9 + + mulxq 56(%rsi),%rdi,%r10 + adoxq %rdi,%r9 + adcxq %rbp,%r10 + mulxq %rdx,%rax,%rdi + adoxq %rbp,%r10 + movq 32(%rsi),%rdx + + xorq %rbx,%rbx + adoxq %r13,%r13 + + adcxq %rcx,%rax + adoxq %r14,%r14 + adcxq %rax,%r13 + adoxq %rbp,%rbx + adcxq %rdi,%r14 + adcxq %rbp,%rbx + + movq %r13,48(%rsp) + movq %r14,56(%rsp) + + + mulxq 40(%rsi),%rdi,%r11 + adoxq %rdi,%r8 + adcxq %r11,%r9 + + mulxq 48(%rsi),%rax,%rcx + adoxq %rax,%r9 + adcxq %rcx,%r10 + + mulxq 56(%rsi),%rdi,%r11 + adoxq %rdi,%r10 + adcxq %rbp,%r11 + mulxq %rdx,%rax,%rdi + movq 40(%rsi),%rdx + adoxq %rbp,%r11 + + xorq %rcx,%rcx + adoxq %r15,%r15 + + adcxq %rbx,%rax + adoxq %r8,%r8 + adcxq %rax,%r15 + adoxq %rbp,%rcx + adcxq %rdi,%r8 + adcxq %rbp,%rcx + + movq %r15,64(%rsp) + movq %r8,72(%rsp) + + +.byte 0xc4,0xe2,0xfb,0xf6,0x9e,0x30,0x00,0x00,0x00 + adoxq %rax,%r10 + adcxq %rbx,%r11 + +.byte 0xc4,0x62,0xc3,0xf6,0xa6,0x38,0x00,0x00,0x00 + adoxq %rdi,%r11 + adcxq %rbp,%r12 + mulxq %rdx,%rax,%rdi + adoxq %rbp,%r12 + movq 48(%rsi),%rdx + + xorq %rbx,%rbx + adoxq %r9,%r9 + + adcxq %rcx,%rax + adoxq %r10,%r10 + adcxq %rax,%r9 + adcxq %rdi,%r10 + adoxq %rbp,%rbx + adcxq %rbp,%rbx + + movq %r9,80(%rsp) + movq %r10,88(%rsp) + + +.byte 0xc4,0x62,0xfb,0xf6,0xae,0x38,0x00,0x00,0x00 + adoxq %rax,%r12 + adoxq %rbp,%r13 + + mulxq %rdx,%rax,%rdi + xorq %rcx,%rcx + movq 56(%rsi),%rdx + adoxq %r11,%r11 + + adcxq %rbx,%rax + adoxq %r12,%r12 + adcxq %rax,%r11 + adoxq %rbp,%rcx + adcxq %rdi,%r12 + adcxq %rbp,%rcx + +.byte 0x4c,0x89,0x9c,0x24,0x60,0x00,0x00,0x00 +.byte 0x4c,0x89,0xa4,0x24,0x68,0x00,0x00,0x00 + + + mulxq %rdx,%rax,%rdx + xorq %rbx,%rbx + adoxq %r13,%r13 + + adcxq %rcx,%rax + adoxq %rbp,%rbx + adcxq %r13,%rax + adcxq %rdx,%rbx + +.byte 102,72,15,126,199 +.byte 102,72,15,126,205 + + movq 128(%rsp),%rdx + movq (%rsp),%r8 + movq 8(%rsp),%r9 + movq 16(%rsp),%r10 + movq 24(%rsp),%r11 + movq 32(%rsp),%r12 + movq 40(%rsp),%r13 + movq 48(%rsp),%r14 + movq 56(%rsp),%r15 + + movq %rax,112(%rsp) + movq %rbx,120(%rsp) + + call __rsaz_512_reducex + + addq 64(%rsp),%r8 + adcq 72(%rsp),%r9 + adcq 80(%rsp),%r10 + adcq 88(%rsp),%r11 + adcq 96(%rsp),%r12 + adcq 104(%rsp),%r13 + adcq 112(%rsp),%r14 + adcq 120(%rsp),%r15 + sbbq %rcx,%rcx + + call __rsaz_512_subtract + + movq %r8,%rdx + movq %r9,%rax + movl 128+8(%rsp),%r8d + movq %rdi,%rsi + + decl %r8d + jnz L$oop_sqrx + +L$sqr_tail: + + leaq 128+24+48(%rsp),%rax + + movq -48(%rax),%r15 + + movq -40(%rax),%r14 + + movq -32(%rax),%r13 + + movq -24(%rax),%r12 + + movq -16(%rax),%rbp + + movq -8(%rax),%rbx + + leaq (%rax),%rsp + +L$sqr_epilogue: + .byte 0xf3,0xc3 + + +.globl _rsaz_512_mul + +.p2align 5 +_rsaz_512_mul: + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + + subq $128+24,%rsp + +L$mul_body: +.byte 102,72,15,110,199 +.byte 102,72,15,110,201 + movq %r8,128(%rsp) + movl $0x80100,%r11d + andl _OPENSSL_ia32cap_P+8(%rip),%r11d + cmpl $0x80100,%r11d + je L$mulx + movq (%rdx),%rbx + movq %rdx,%rbp + call __rsaz_512_mul + +.byte 102,72,15,126,199 +.byte 102,72,15,126,205 + + movq (%rsp),%r8 + movq 8(%rsp),%r9 + movq 16(%rsp),%r10 + movq 24(%rsp),%r11 + movq 32(%rsp),%r12 + movq 40(%rsp),%r13 + movq 48(%rsp),%r14 + movq 56(%rsp),%r15 + + call __rsaz_512_reduce + jmp L$mul_tail + +.p2align 5 +L$mulx: + movq %rdx,%rbp + movq (%rdx),%rdx + call __rsaz_512_mulx + +.byte 102,72,15,126,199 +.byte 102,72,15,126,205 + + movq 128(%rsp),%rdx + movq (%rsp),%r8 + movq 8(%rsp),%r9 + movq 16(%rsp),%r10 + movq 24(%rsp),%r11 + movq 32(%rsp),%r12 + movq 40(%rsp),%r13 + movq 48(%rsp),%r14 + movq 56(%rsp),%r15 + + call __rsaz_512_reducex +L$mul_tail: + addq 64(%rsp),%r8 + adcq 72(%rsp),%r9 + adcq 80(%rsp),%r10 + adcq 88(%rsp),%r11 + adcq 96(%rsp),%r12 + adcq 104(%rsp),%r13 + adcq 112(%rsp),%r14 + adcq 120(%rsp),%r15 + sbbq %rcx,%rcx + + call __rsaz_512_subtract + + leaq 128+24+48(%rsp),%rax + + movq -48(%rax),%r15 + + movq -40(%rax),%r14 + + movq -32(%rax),%r13 + + movq -24(%rax),%r12 + + movq -16(%rax),%rbp + + movq -8(%rax),%rbx + + leaq (%rax),%rsp + +L$mul_epilogue: + .byte 0xf3,0xc3 + + +.globl _rsaz_512_mul_gather4 + +.p2align 5 +_rsaz_512_mul_gather4: + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + + subq $152,%rsp + +L$mul_gather4_body: + movd %r9d,%xmm8 + movdqa L$inc+16(%rip),%xmm1 + movdqa L$inc(%rip),%xmm0 + + pshufd $0,%xmm8,%xmm8 + movdqa %xmm1,%xmm7 + movdqa %xmm1,%xmm2 + paddd %xmm0,%xmm1 + pcmpeqd %xmm8,%xmm0 + movdqa %xmm7,%xmm3 + paddd %xmm1,%xmm2 + pcmpeqd %xmm8,%xmm1 + movdqa %xmm7,%xmm4 + paddd %xmm2,%xmm3 + pcmpeqd %xmm8,%xmm2 + movdqa %xmm7,%xmm5 + paddd %xmm3,%xmm4 + pcmpeqd %xmm8,%xmm3 + movdqa %xmm7,%xmm6 + paddd %xmm4,%xmm5 + pcmpeqd %xmm8,%xmm4 + paddd %xmm5,%xmm6 + pcmpeqd %xmm8,%xmm5 + paddd %xmm6,%xmm7 + pcmpeqd %xmm8,%xmm6 + pcmpeqd %xmm8,%xmm7 + + movdqa 0(%rdx),%xmm8 + movdqa 16(%rdx),%xmm9 + movdqa 32(%rdx),%xmm10 + movdqa 48(%rdx),%xmm11 + pand %xmm0,%xmm8 + movdqa 64(%rdx),%xmm12 + pand %xmm1,%xmm9 + movdqa 80(%rdx),%xmm13 + pand %xmm2,%xmm10 + movdqa 96(%rdx),%xmm14 + pand %xmm3,%xmm11 + movdqa 112(%rdx),%xmm15 + leaq 128(%rdx),%rbp + pand %xmm4,%xmm12 + pand %xmm5,%xmm13 + pand %xmm6,%xmm14 + pand %xmm7,%xmm15 + por %xmm10,%xmm8 + por %xmm11,%xmm9 + por %xmm12,%xmm8 + por %xmm13,%xmm9 + por %xmm14,%xmm8 + por %xmm15,%xmm9 + + por %xmm9,%xmm8 + pshufd $0x4e,%xmm8,%xmm9 + por %xmm9,%xmm8 + movl $0x80100,%r11d + andl _OPENSSL_ia32cap_P+8(%rip),%r11d + cmpl $0x80100,%r11d + je L$mulx_gather +.byte 102,76,15,126,195 + + movq %r8,128(%rsp) + movq %rdi,128+8(%rsp) + movq %rcx,128+16(%rsp) + + movq (%rsi),%rax + movq 8(%rsi),%rcx + mulq %rbx + movq %rax,(%rsp) + movq %rcx,%rax + movq %rdx,%r8 + + mulq %rbx + addq %rax,%r8 + movq 16(%rsi),%rax + movq %rdx,%r9 + adcq $0,%r9 + + mulq %rbx + addq %rax,%r9 + movq 24(%rsi),%rax + movq %rdx,%r10 + adcq $0,%r10 + + mulq %rbx + addq %rax,%r10 + movq 32(%rsi),%rax + movq %rdx,%r11 + adcq $0,%r11 + + mulq %rbx + addq %rax,%r11 + movq 40(%rsi),%rax + movq %rdx,%r12 + adcq $0,%r12 + + mulq %rbx + addq %rax,%r12 + movq 48(%rsi),%rax + movq %rdx,%r13 + adcq $0,%r13 + + mulq %rbx + addq %rax,%r13 + movq 56(%rsi),%rax + movq %rdx,%r14 + adcq $0,%r14 + + mulq %rbx + addq %rax,%r14 + movq (%rsi),%rax + movq %rdx,%r15 + adcq $0,%r15 + + leaq 8(%rsp),%rdi + movl $7,%ecx + jmp L$oop_mul_gather + +.p2align 5 +L$oop_mul_gather: + movdqa 0(%rbp),%xmm8 + movdqa 16(%rbp),%xmm9 + movdqa 32(%rbp),%xmm10 + movdqa 48(%rbp),%xmm11 + pand %xmm0,%xmm8 + movdqa 64(%rbp),%xmm12 + pand %xmm1,%xmm9 + movdqa 80(%rbp),%xmm13 + pand %xmm2,%xmm10 + movdqa 96(%rbp),%xmm14 + pand %xmm3,%xmm11 + movdqa 112(%rbp),%xmm15 + leaq 128(%rbp),%rbp + pand %xmm4,%xmm12 + pand %xmm5,%xmm13 + pand %xmm6,%xmm14 + pand %xmm7,%xmm15 + por %xmm10,%xmm8 + por %xmm11,%xmm9 + por %xmm12,%xmm8 + por %xmm13,%xmm9 + por %xmm14,%xmm8 + por %xmm15,%xmm9 + + por %xmm9,%xmm8 + pshufd $0x4e,%xmm8,%xmm9 + por %xmm9,%xmm8 +.byte 102,76,15,126,195 + + mulq %rbx + addq %rax,%r8 + movq 8(%rsi),%rax + movq %r8,(%rdi) + movq %rdx,%r8 + adcq $0,%r8 + + mulq %rbx + addq %rax,%r9 + movq 16(%rsi),%rax + adcq $0,%rdx + addq %r9,%r8 + movq %rdx,%r9 + adcq $0,%r9 + + mulq %rbx + addq %rax,%r10 + movq 24(%rsi),%rax + adcq $0,%rdx + addq %r10,%r9 + movq %rdx,%r10 + adcq $0,%r10 + + mulq %rbx + addq %rax,%r11 + movq 32(%rsi),%rax + adcq $0,%rdx + addq %r11,%r10 + movq %rdx,%r11 + adcq $0,%r11 + + mulq %rbx + addq %rax,%r12 + movq 40(%rsi),%rax + adcq $0,%rdx + addq %r12,%r11 + movq %rdx,%r12 + adcq $0,%r12 + + mulq %rbx + addq %rax,%r13 + movq 48(%rsi),%rax + adcq $0,%rdx + addq %r13,%r12 + movq %rdx,%r13 + adcq $0,%r13 + + mulq %rbx + addq %rax,%r14 + movq 56(%rsi),%rax + adcq $0,%rdx + addq %r14,%r13 + movq %rdx,%r14 + adcq $0,%r14 + + mulq %rbx + addq %rax,%r15 + movq (%rsi),%rax + adcq $0,%rdx + addq %r15,%r14 + movq %rdx,%r15 + adcq $0,%r15 + + leaq 8(%rdi),%rdi + + decl %ecx + jnz L$oop_mul_gather + + movq %r8,(%rdi) + movq %r9,8(%rdi) + movq %r10,16(%rdi) + movq %r11,24(%rdi) + movq %r12,32(%rdi) + movq %r13,40(%rdi) + movq %r14,48(%rdi) + movq %r15,56(%rdi) + + movq 128+8(%rsp),%rdi + movq 128+16(%rsp),%rbp + + movq (%rsp),%r8 + movq 8(%rsp),%r9 + movq 16(%rsp),%r10 + movq 24(%rsp),%r11 + movq 32(%rsp),%r12 + movq 40(%rsp),%r13 + movq 48(%rsp),%r14 + movq 56(%rsp),%r15 + + call __rsaz_512_reduce + jmp L$mul_gather_tail + +.p2align 5 +L$mulx_gather: +.byte 102,76,15,126,194 + + movq %r8,128(%rsp) + movq %rdi,128+8(%rsp) + movq %rcx,128+16(%rsp) + + mulxq (%rsi),%rbx,%r8 + movq %rbx,(%rsp) + xorl %edi,%edi + + mulxq 8(%rsi),%rax,%r9 + + mulxq 16(%rsi),%rbx,%r10 + adcxq %rax,%r8 + + mulxq 24(%rsi),%rax,%r11 + adcxq %rbx,%r9 + + mulxq 32(%rsi),%rbx,%r12 + adcxq %rax,%r10 + + mulxq 40(%rsi),%rax,%r13 + adcxq %rbx,%r11 + + mulxq 48(%rsi),%rbx,%r14 + adcxq %rax,%r12 + + mulxq 56(%rsi),%rax,%r15 + adcxq %rbx,%r13 + adcxq %rax,%r14 +.byte 0x67 + movq %r8,%rbx + adcxq %rdi,%r15 + + movq $-7,%rcx + jmp L$oop_mulx_gather + +.p2align 5 +L$oop_mulx_gather: + movdqa 0(%rbp),%xmm8 + movdqa 16(%rbp),%xmm9 + movdqa 32(%rbp),%xmm10 + movdqa 48(%rbp),%xmm11 + pand %xmm0,%xmm8 + movdqa 64(%rbp),%xmm12 + pand %xmm1,%xmm9 + movdqa 80(%rbp),%xmm13 + pand %xmm2,%xmm10 + movdqa 96(%rbp),%xmm14 + pand %xmm3,%xmm11 + movdqa 112(%rbp),%xmm15 + leaq 128(%rbp),%rbp + pand %xmm4,%xmm12 + pand %xmm5,%xmm13 + pand %xmm6,%xmm14 + pand %xmm7,%xmm15 + por %xmm10,%xmm8 + por %xmm11,%xmm9 + por %xmm12,%xmm8 + por %xmm13,%xmm9 + por %xmm14,%xmm8 + por %xmm15,%xmm9 + + por %xmm9,%xmm8 + pshufd $0x4e,%xmm8,%xmm9 + por %xmm9,%xmm8 +.byte 102,76,15,126,194 + +.byte 0xc4,0x62,0xfb,0xf6,0x86,0x00,0x00,0x00,0x00 + adcxq %rax,%rbx + adoxq %r9,%r8 + + mulxq 8(%rsi),%rax,%r9 + adcxq %rax,%r8 + adoxq %r10,%r9 + + mulxq 16(%rsi),%rax,%r10 + adcxq %rax,%r9 + adoxq %r11,%r10 + +.byte 0xc4,0x62,0xfb,0xf6,0x9e,0x18,0x00,0x00,0x00 + adcxq %rax,%r10 + adoxq %r12,%r11 + + mulxq 32(%rsi),%rax,%r12 + adcxq %rax,%r11 + adoxq %r13,%r12 + + mulxq 40(%rsi),%rax,%r13 + adcxq %rax,%r12 + adoxq %r14,%r13 + +.byte 0xc4,0x62,0xfb,0xf6,0xb6,0x30,0x00,0x00,0x00 + adcxq %rax,%r13 +.byte 0x67 + adoxq %r15,%r14 + + mulxq 56(%rsi),%rax,%r15 + movq %rbx,64(%rsp,%rcx,8) + adcxq %rax,%r14 + adoxq %rdi,%r15 + movq %r8,%rbx + adcxq %rdi,%r15 + + incq %rcx + jnz L$oop_mulx_gather + + movq %r8,64(%rsp) + movq %r9,64+8(%rsp) + movq %r10,64+16(%rsp) + movq %r11,64+24(%rsp) + movq %r12,64+32(%rsp) + movq %r13,64+40(%rsp) + movq %r14,64+48(%rsp) + movq %r15,64+56(%rsp) + + movq 128(%rsp),%rdx + movq 128+8(%rsp),%rdi + movq 128+16(%rsp),%rbp + + movq (%rsp),%r8 + movq 8(%rsp),%r9 + movq 16(%rsp),%r10 + movq 24(%rsp),%r11 + movq 32(%rsp),%r12 + movq 40(%rsp),%r13 + movq 48(%rsp),%r14 + movq 56(%rsp),%r15 + + call __rsaz_512_reducex + +L$mul_gather_tail: + addq 64(%rsp),%r8 + adcq 72(%rsp),%r9 + adcq 80(%rsp),%r10 + adcq 88(%rsp),%r11 + adcq 96(%rsp),%r12 + adcq 104(%rsp),%r13 + adcq 112(%rsp),%r14 + adcq 120(%rsp),%r15 + sbbq %rcx,%rcx + + call __rsaz_512_subtract + + leaq 128+24+48(%rsp),%rax + + movq -48(%rax),%r15 + + movq -40(%rax),%r14 + + movq -32(%rax),%r13 + + movq -24(%rax),%r12 + + movq -16(%rax),%rbp + + movq -8(%rax),%rbx + + leaq (%rax),%rsp + +L$mul_gather4_epilogue: + .byte 0xf3,0xc3 + + +.globl _rsaz_512_mul_scatter4 + +.p2align 5 +_rsaz_512_mul_scatter4: + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + + movl %r9d,%r9d + subq $128+24,%rsp + +L$mul_scatter4_body: + leaq (%r8,%r9,8),%r8 +.byte 102,72,15,110,199 +.byte 102,72,15,110,202 +.byte 102,73,15,110,208 + movq %rcx,128(%rsp) + + movq %rdi,%rbp + movl $0x80100,%r11d + andl _OPENSSL_ia32cap_P+8(%rip),%r11d + cmpl $0x80100,%r11d + je L$mulx_scatter + movq (%rdi),%rbx + call __rsaz_512_mul + +.byte 102,72,15,126,199 +.byte 102,72,15,126,205 + + movq (%rsp),%r8 + movq 8(%rsp),%r9 + movq 16(%rsp),%r10 + movq 24(%rsp),%r11 + movq 32(%rsp),%r12 + movq 40(%rsp),%r13 + movq 48(%rsp),%r14 + movq 56(%rsp),%r15 + + call __rsaz_512_reduce + jmp L$mul_scatter_tail + +.p2align 5 +L$mulx_scatter: + movq (%rdi),%rdx + call __rsaz_512_mulx + +.byte 102,72,15,126,199 +.byte 102,72,15,126,205 + + movq 128(%rsp),%rdx + movq (%rsp),%r8 + movq 8(%rsp),%r9 + movq 16(%rsp),%r10 + movq 24(%rsp),%r11 + movq 32(%rsp),%r12 + movq 40(%rsp),%r13 + movq 48(%rsp),%r14 + movq 56(%rsp),%r15 + + call __rsaz_512_reducex + +L$mul_scatter_tail: + addq 64(%rsp),%r8 + adcq 72(%rsp),%r9 + adcq 80(%rsp),%r10 + adcq 88(%rsp),%r11 + adcq 96(%rsp),%r12 + adcq 104(%rsp),%r13 + adcq 112(%rsp),%r14 + adcq 120(%rsp),%r15 +.byte 102,72,15,126,214 + sbbq %rcx,%rcx + + call __rsaz_512_subtract + + movq %r8,0(%rsi) + movq %r9,128(%rsi) + movq %r10,256(%rsi) + movq %r11,384(%rsi) + movq %r12,512(%rsi) + movq %r13,640(%rsi) + movq %r14,768(%rsi) + movq %r15,896(%rsi) + + leaq 128+24+48(%rsp),%rax + + movq -48(%rax),%r15 + + movq -40(%rax),%r14 + + movq -32(%rax),%r13 + + movq -24(%rax),%r12 + + movq -16(%rax),%rbp + + movq -8(%rax),%rbx + + leaq (%rax),%rsp + +L$mul_scatter4_epilogue: + .byte 0xf3,0xc3 + + +.globl _rsaz_512_mul_by_one + +.p2align 5 +_rsaz_512_mul_by_one: + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + + subq $128+24,%rsp + +L$mul_by_one_body: + movl _OPENSSL_ia32cap_P+8(%rip),%eax + movq %rdx,%rbp + movq %rcx,128(%rsp) + + movq (%rsi),%r8 + pxor %xmm0,%xmm0 + movq 8(%rsi),%r9 + movq 16(%rsi),%r10 + movq 24(%rsi),%r11 + movq 32(%rsi),%r12 + movq 40(%rsi),%r13 + movq 48(%rsi),%r14 + movq 56(%rsi),%r15 + + movdqa %xmm0,(%rsp) + movdqa %xmm0,16(%rsp) + movdqa %xmm0,32(%rsp) + movdqa %xmm0,48(%rsp) + movdqa %xmm0,64(%rsp) + movdqa %xmm0,80(%rsp) + movdqa %xmm0,96(%rsp) + andl $0x80100,%eax + cmpl $0x80100,%eax + je L$by_one_callx + call __rsaz_512_reduce + jmp L$by_one_tail +.p2align 5 +L$by_one_callx: + movq 128(%rsp),%rdx + call __rsaz_512_reducex +L$by_one_tail: + movq %r8,(%rdi) + movq %r9,8(%rdi) + movq %r10,16(%rdi) + movq %r11,24(%rdi) + movq %r12,32(%rdi) + movq %r13,40(%rdi) + movq %r14,48(%rdi) + movq %r15,56(%rdi) + + leaq 128+24+48(%rsp),%rax + + movq -48(%rax),%r15 + + movq -40(%rax),%r14 + + movq -32(%rax),%r13 + + movq -24(%rax),%r12 + + movq -16(%rax),%rbp + + movq -8(%rax),%rbx + + leaq (%rax),%rsp + +L$mul_by_one_epilogue: + .byte 0xf3,0xc3 + + + +.p2align 5 +__rsaz_512_reduce: + + movq %r8,%rbx + imulq 128+8(%rsp),%rbx + movq 0(%rbp),%rax + movl $8,%ecx + jmp L$reduction_loop + +.p2align 5 +L$reduction_loop: + mulq %rbx + movq 8(%rbp),%rax + negq %r8 + movq %rdx,%r8 + adcq $0,%r8 + + mulq %rbx + addq %rax,%r9 + movq 16(%rbp),%rax + adcq $0,%rdx + addq %r9,%r8 + movq %rdx,%r9 + adcq $0,%r9 + + mulq %rbx + addq %rax,%r10 + movq 24(%rbp),%rax + adcq $0,%rdx + addq %r10,%r9 + movq %rdx,%r10 + adcq $0,%r10 + + mulq %rbx + addq %rax,%r11 + movq 32(%rbp),%rax + adcq $0,%rdx + addq %r11,%r10 + movq 128+8(%rsp),%rsi + + + adcq $0,%rdx + movq %rdx,%r11 + + mulq %rbx + addq %rax,%r12 + movq 40(%rbp),%rax + adcq $0,%rdx + imulq %r8,%rsi + addq %r12,%r11 + movq %rdx,%r12 + adcq $0,%r12 + + mulq %rbx + addq %rax,%r13 + movq 48(%rbp),%rax + adcq $0,%rdx + addq %r13,%r12 + movq %rdx,%r13 + adcq $0,%r13 + + mulq %rbx + addq %rax,%r14 + movq 56(%rbp),%rax + adcq $0,%rdx + addq %r14,%r13 + movq %rdx,%r14 + adcq $0,%r14 + + mulq %rbx + movq %rsi,%rbx + addq %rax,%r15 + movq 0(%rbp),%rax + adcq $0,%rdx + addq %r15,%r14 + movq %rdx,%r15 + adcq $0,%r15 + + decl %ecx + jne L$reduction_loop + + .byte 0xf3,0xc3 + + + +.p2align 5 +__rsaz_512_reducex: + + + imulq %r8,%rdx + xorq %rsi,%rsi + movl $8,%ecx + jmp L$reduction_loopx + +.p2align 5 +L$reduction_loopx: + movq %r8,%rbx + mulxq 0(%rbp),%rax,%r8 + adcxq %rbx,%rax + adoxq %r9,%r8 + + mulxq 8(%rbp),%rax,%r9 + adcxq %rax,%r8 + adoxq %r10,%r9 + + mulxq 16(%rbp),%rbx,%r10 + adcxq %rbx,%r9 + adoxq %r11,%r10 + + mulxq 24(%rbp),%rbx,%r11 + adcxq %rbx,%r10 + adoxq %r12,%r11 + +.byte 0xc4,0x62,0xe3,0xf6,0xa5,0x20,0x00,0x00,0x00 + movq %rdx,%rax + movq %r8,%rdx + adcxq %rbx,%r11 + adoxq %r13,%r12 + + mulxq 128+8(%rsp),%rbx,%rdx + movq %rax,%rdx + + mulxq 40(%rbp),%rax,%r13 + adcxq %rax,%r12 + adoxq %r14,%r13 + +.byte 0xc4,0x62,0xfb,0xf6,0xb5,0x30,0x00,0x00,0x00 + adcxq %rax,%r13 + adoxq %r15,%r14 + + mulxq 56(%rbp),%rax,%r15 + movq %rbx,%rdx + adcxq %rax,%r14 + adoxq %rsi,%r15 + adcxq %rsi,%r15 + + decl %ecx + jne L$reduction_loopx + + .byte 0xf3,0xc3 + + + +.p2align 5 +__rsaz_512_subtract: + + movq %r8,(%rdi) + movq %r9,8(%rdi) + movq %r10,16(%rdi) + movq %r11,24(%rdi) + movq %r12,32(%rdi) + movq %r13,40(%rdi) + movq %r14,48(%rdi) + movq %r15,56(%rdi) + + movq 0(%rbp),%r8 + movq 8(%rbp),%r9 + negq %r8 + notq %r9 + andq %rcx,%r8 + movq 16(%rbp),%r10 + andq %rcx,%r9 + notq %r10 + movq 24(%rbp),%r11 + andq %rcx,%r10 + notq %r11 + movq 32(%rbp),%r12 + andq %rcx,%r11 + notq %r12 + movq 40(%rbp),%r13 + andq %rcx,%r12 + notq %r13 + movq 48(%rbp),%r14 + andq %rcx,%r13 + notq %r14 + movq 56(%rbp),%r15 + andq %rcx,%r14 + notq %r15 + andq %rcx,%r15 + + addq (%rdi),%r8 + adcq 8(%rdi),%r9 + adcq 16(%rdi),%r10 + adcq 24(%rdi),%r11 + adcq 32(%rdi),%r12 + adcq 40(%rdi),%r13 + adcq 48(%rdi),%r14 + adcq 56(%rdi),%r15 + + movq %r8,(%rdi) + movq %r9,8(%rdi) + movq %r10,16(%rdi) + movq %r11,24(%rdi) + movq %r12,32(%rdi) + movq %r13,40(%rdi) + movq %r14,48(%rdi) + movq %r15,56(%rdi) + + .byte 0xf3,0xc3 + + + +.p2align 5 +__rsaz_512_mul: + + leaq 8(%rsp),%rdi + + movq (%rsi),%rax + mulq %rbx + movq %rax,(%rdi) + movq 8(%rsi),%rax + movq %rdx,%r8 + + mulq %rbx + addq %rax,%r8 + movq 16(%rsi),%rax + movq %rdx,%r9 + adcq $0,%r9 + + mulq %rbx + addq %rax,%r9 + movq 24(%rsi),%rax + movq %rdx,%r10 + adcq $0,%r10 + + mulq %rbx + addq %rax,%r10 + movq 32(%rsi),%rax + movq %rdx,%r11 + adcq $0,%r11 + + mulq %rbx + addq %rax,%r11 + movq 40(%rsi),%rax + movq %rdx,%r12 + adcq $0,%r12 + + mulq %rbx + addq %rax,%r12 + movq 48(%rsi),%rax + movq %rdx,%r13 + adcq $0,%r13 + + mulq %rbx + addq %rax,%r13 + movq 56(%rsi),%rax + movq %rdx,%r14 + adcq $0,%r14 + + mulq %rbx + addq %rax,%r14 + movq (%rsi),%rax + movq %rdx,%r15 + adcq $0,%r15 + + leaq 8(%rbp),%rbp + leaq 8(%rdi),%rdi + + movl $7,%ecx + jmp L$oop_mul + +.p2align 5 +L$oop_mul: + movq (%rbp),%rbx + mulq %rbx + addq %rax,%r8 + movq 8(%rsi),%rax + movq %r8,(%rdi) + movq %rdx,%r8 + adcq $0,%r8 + + mulq %rbx + addq %rax,%r9 + movq 16(%rsi),%rax + adcq $0,%rdx + addq %r9,%r8 + movq %rdx,%r9 + adcq $0,%r9 + + mulq %rbx + addq %rax,%r10 + movq 24(%rsi),%rax + adcq $0,%rdx + addq %r10,%r9 + movq %rdx,%r10 + adcq $0,%r10 + + mulq %rbx + addq %rax,%r11 + movq 32(%rsi),%rax + adcq $0,%rdx + addq %r11,%r10 + movq %rdx,%r11 + adcq $0,%r11 + + mulq %rbx + addq %rax,%r12 + movq 40(%rsi),%rax + adcq $0,%rdx + addq %r12,%r11 + movq %rdx,%r12 + adcq $0,%r12 + + mulq %rbx + addq %rax,%r13 + movq 48(%rsi),%rax + adcq $0,%rdx + addq %r13,%r12 + movq %rdx,%r13 + adcq $0,%r13 + + mulq %rbx + addq %rax,%r14 + movq 56(%rsi),%rax + adcq $0,%rdx + addq %r14,%r13 + movq %rdx,%r14 + leaq 8(%rbp),%rbp + adcq $0,%r14 + + mulq %rbx + addq %rax,%r15 + movq (%rsi),%rax + adcq $0,%rdx + addq %r15,%r14 + movq %rdx,%r15 + adcq $0,%r15 + + leaq 8(%rdi),%rdi + + decl %ecx + jnz L$oop_mul + + movq %r8,(%rdi) + movq %r9,8(%rdi) + movq %r10,16(%rdi) + movq %r11,24(%rdi) + movq %r12,32(%rdi) + movq %r13,40(%rdi) + movq %r14,48(%rdi) + movq %r15,56(%rdi) + + .byte 0xf3,0xc3 + + + +.p2align 5 +__rsaz_512_mulx: + + mulxq (%rsi),%rbx,%r8 + movq $-6,%rcx + + mulxq 8(%rsi),%rax,%r9 + movq %rbx,8(%rsp) + + mulxq 16(%rsi),%rbx,%r10 + adcq %rax,%r8 + + mulxq 24(%rsi),%rax,%r11 + adcq %rbx,%r9 + + mulxq 32(%rsi),%rbx,%r12 + adcq %rax,%r10 + + mulxq 40(%rsi),%rax,%r13 + adcq %rbx,%r11 + + mulxq 48(%rsi),%rbx,%r14 + adcq %rax,%r12 + + mulxq 56(%rsi),%rax,%r15 + movq 8(%rbp),%rdx + adcq %rbx,%r13 + adcq %rax,%r14 + adcq $0,%r15 + + xorq %rdi,%rdi + jmp L$oop_mulx + +.p2align 5 +L$oop_mulx: + movq %r8,%rbx + mulxq (%rsi),%rax,%r8 + adcxq %rax,%rbx + adoxq %r9,%r8 + + mulxq 8(%rsi),%rax,%r9 + adcxq %rax,%r8 + adoxq %r10,%r9 + + mulxq 16(%rsi),%rax,%r10 + adcxq %rax,%r9 + adoxq %r11,%r10 + + mulxq 24(%rsi),%rax,%r11 + adcxq %rax,%r10 + adoxq %r12,%r11 + +.byte 0x3e,0xc4,0x62,0xfb,0xf6,0xa6,0x20,0x00,0x00,0x00 + adcxq %rax,%r11 + adoxq %r13,%r12 + + mulxq 40(%rsi),%rax,%r13 + adcxq %rax,%r12 + adoxq %r14,%r13 + + mulxq 48(%rsi),%rax,%r14 + adcxq %rax,%r13 + adoxq %r15,%r14 + + mulxq 56(%rsi),%rax,%r15 + movq 64(%rbp,%rcx,8),%rdx + movq %rbx,8+64-8(%rsp,%rcx,8) + adcxq %rax,%r14 + adoxq %rdi,%r15 + adcxq %rdi,%r15 + + incq %rcx + jnz L$oop_mulx + + movq %r8,%rbx + mulxq (%rsi),%rax,%r8 + adcxq %rax,%rbx + adoxq %r9,%r8 + +.byte 0xc4,0x62,0xfb,0xf6,0x8e,0x08,0x00,0x00,0x00 + adcxq %rax,%r8 + adoxq %r10,%r9 + +.byte 0xc4,0x62,0xfb,0xf6,0x96,0x10,0x00,0x00,0x00 + adcxq %rax,%r9 + adoxq %r11,%r10 + + mulxq 24(%rsi),%rax,%r11 + adcxq %rax,%r10 + adoxq %r12,%r11 + + mulxq 32(%rsi),%rax,%r12 + adcxq %rax,%r11 + adoxq %r13,%r12 + + mulxq 40(%rsi),%rax,%r13 + adcxq %rax,%r12 + adoxq %r14,%r13 + +.byte 0xc4,0x62,0xfb,0xf6,0xb6,0x30,0x00,0x00,0x00 + adcxq %rax,%r13 + adoxq %r15,%r14 + +.byte 0xc4,0x62,0xfb,0xf6,0xbe,0x38,0x00,0x00,0x00 + adcxq %rax,%r14 + adoxq %rdi,%r15 + adcxq %rdi,%r15 + + movq %rbx,8+64-8(%rsp) + movq %r8,8+64(%rsp) + movq %r9,8+64+8(%rsp) + movq %r10,8+64+16(%rsp) + movq %r11,8+64+24(%rsp) + movq %r12,8+64+32(%rsp) + movq %r13,8+64+40(%rsp) + movq %r14,8+64+48(%rsp) + movq %r15,8+64+56(%rsp) + + .byte 0xf3,0xc3 + + +.globl _rsaz_512_scatter4 + +.p2align 4 +_rsaz_512_scatter4: + + leaq (%rdi,%rdx,8),%rdi + movl $8,%r9d + jmp L$oop_scatter +.p2align 4 +L$oop_scatter: + movq (%rsi),%rax + leaq 8(%rsi),%rsi + movq %rax,(%rdi) + leaq 128(%rdi),%rdi + decl %r9d + jnz L$oop_scatter + .byte 0xf3,0xc3 + + + +.globl _rsaz_512_gather4 + +.p2align 4 +_rsaz_512_gather4: + + movd %edx,%xmm8 + movdqa L$inc+16(%rip),%xmm1 + movdqa L$inc(%rip),%xmm0 + + pshufd $0,%xmm8,%xmm8 + movdqa %xmm1,%xmm7 + movdqa %xmm1,%xmm2 + paddd %xmm0,%xmm1 + pcmpeqd %xmm8,%xmm0 + movdqa %xmm7,%xmm3 + paddd %xmm1,%xmm2 + pcmpeqd %xmm8,%xmm1 + movdqa %xmm7,%xmm4 + paddd %xmm2,%xmm3 + pcmpeqd %xmm8,%xmm2 + movdqa %xmm7,%xmm5 + paddd %xmm3,%xmm4 + pcmpeqd %xmm8,%xmm3 + movdqa %xmm7,%xmm6 + paddd %xmm4,%xmm5 + pcmpeqd %xmm8,%xmm4 + paddd %xmm5,%xmm6 + pcmpeqd %xmm8,%xmm5 + paddd %xmm6,%xmm7 + pcmpeqd %xmm8,%xmm6 + pcmpeqd %xmm8,%xmm7 + movl $8,%r9d + jmp L$oop_gather +.p2align 4 +L$oop_gather: + movdqa 0(%rsi),%xmm8 + movdqa 16(%rsi),%xmm9 + movdqa 32(%rsi),%xmm10 + movdqa 48(%rsi),%xmm11 + pand %xmm0,%xmm8 + movdqa 64(%rsi),%xmm12 + pand %xmm1,%xmm9 + movdqa 80(%rsi),%xmm13 + pand %xmm2,%xmm10 + movdqa 96(%rsi),%xmm14 + pand %xmm3,%xmm11 + movdqa 112(%rsi),%xmm15 + leaq 128(%rsi),%rsi + pand %xmm4,%xmm12 + pand %xmm5,%xmm13 + pand %xmm6,%xmm14 + pand %xmm7,%xmm15 + por %xmm10,%xmm8 + por %xmm11,%xmm9 + por %xmm12,%xmm8 + por %xmm13,%xmm9 + por %xmm14,%xmm8 + por %xmm15,%xmm9 + + por %xmm9,%xmm8 + pshufd $0x4e,%xmm8,%xmm9 + por %xmm9,%xmm8 + movq %xmm8,(%rdi) + leaq 8(%rdi),%rdi + decl %r9d + jnz L$oop_gather + .byte 0xf3,0xc3 +L$SEH_end_rsaz_512_gather4: + + + +.p2align 6 +L$inc: +.long 0,0, 1,1 +.long 2,2, 2,2 diff --git a/vere/ext/openssl/gen/macos-x86_64/crypto/bn/x86_64-gf2m.s b/vere/ext/openssl/gen/macos-x86_64/crypto/bn/x86_64-gf2m.s new file mode 100644 index 0000000..4137d59 --- /dev/null +++ b/vere/ext/openssl/gen/macos-x86_64/crypto/bn/x86_64-gf2m.s @@ -0,0 +1,311 @@ +.text + + +.p2align 4 +_mul_1x1: + + subq $128+8,%rsp + + movq $-1,%r9 + leaq (%rax,%rax,1),%rsi + shrq $3,%r9 + leaq (,%rax,4),%rdi + andq %rax,%r9 + leaq (,%rax,8),%r12 + sarq $63,%rax + leaq (%r9,%r9,1),%r10 + sarq $63,%rsi + leaq (,%r9,4),%r11 + andq %rbp,%rax + sarq $63,%rdi + movq %rax,%rdx + shlq $63,%rax + andq %rbp,%rsi + shrq $1,%rdx + movq %rsi,%rcx + shlq $62,%rsi + andq %rbp,%rdi + shrq $2,%rcx + xorq %rsi,%rax + movq %rdi,%rbx + shlq $61,%rdi + xorq %rcx,%rdx + shrq $3,%rbx + xorq %rdi,%rax + xorq %rbx,%rdx + + movq %r9,%r13 + movq $0,0(%rsp) + xorq %r10,%r13 + movq %r9,8(%rsp) + movq %r11,%r14 + movq %r10,16(%rsp) + xorq %r12,%r14 + movq %r13,24(%rsp) + + xorq %r11,%r9 + movq %r11,32(%rsp) + xorq %r11,%r10 + movq %r9,40(%rsp) + xorq %r11,%r13 + movq %r10,48(%rsp) + xorq %r14,%r9 + movq %r13,56(%rsp) + xorq %r14,%r10 + + movq %r12,64(%rsp) + xorq %r14,%r13 + movq %r9,72(%rsp) + xorq %r11,%r9 + movq %r10,80(%rsp) + xorq %r11,%r10 + movq %r13,88(%rsp) + + xorq %r11,%r13 + movq %r14,96(%rsp) + movq %r8,%rsi + movq %r9,104(%rsp) + andq %rbp,%rsi + movq %r10,112(%rsp) + shrq $4,%rbp + movq %r13,120(%rsp) + movq %r8,%rdi + andq %rbp,%rdi + shrq $4,%rbp + + movq (%rsp,%rsi,8),%xmm0 + movq %r8,%rsi + andq %rbp,%rsi + shrq $4,%rbp + movq (%rsp,%rdi,8),%rcx + movq %r8,%rdi + movq %rcx,%rbx + shlq $4,%rcx + andq %rbp,%rdi + movq (%rsp,%rsi,8),%xmm1 + shrq $60,%rbx + xorq %rcx,%rax + pslldq $1,%xmm1 + movq %r8,%rsi + shrq $4,%rbp + xorq %rbx,%rdx + andq %rbp,%rsi + shrq $4,%rbp + pxor %xmm1,%xmm0 + movq (%rsp,%rdi,8),%rcx + movq %r8,%rdi + movq %rcx,%rbx + shlq $12,%rcx + andq %rbp,%rdi + movq (%rsp,%rsi,8),%xmm1 + shrq $52,%rbx + xorq %rcx,%rax + pslldq $2,%xmm1 + movq %r8,%rsi + shrq $4,%rbp + xorq %rbx,%rdx + andq %rbp,%rsi + shrq $4,%rbp + pxor %xmm1,%xmm0 + movq (%rsp,%rdi,8),%rcx + movq %r8,%rdi + movq %rcx,%rbx + shlq $20,%rcx + andq %rbp,%rdi + movq (%rsp,%rsi,8),%xmm1 + shrq $44,%rbx + xorq %rcx,%rax + pslldq $3,%xmm1 + movq %r8,%rsi + shrq $4,%rbp + xorq %rbx,%rdx + andq %rbp,%rsi + shrq $4,%rbp + pxor %xmm1,%xmm0 + movq (%rsp,%rdi,8),%rcx + movq %r8,%rdi + movq %rcx,%rbx + shlq $28,%rcx + andq %rbp,%rdi + movq (%rsp,%rsi,8),%xmm1 + shrq $36,%rbx + xorq %rcx,%rax + pslldq $4,%xmm1 + movq %r8,%rsi + shrq $4,%rbp + xorq %rbx,%rdx + andq %rbp,%rsi + shrq $4,%rbp + pxor %xmm1,%xmm0 + movq (%rsp,%rdi,8),%rcx + movq %r8,%rdi + movq %rcx,%rbx + shlq $36,%rcx + andq %rbp,%rdi + movq (%rsp,%rsi,8),%xmm1 + shrq $28,%rbx + xorq %rcx,%rax + pslldq $5,%xmm1 + movq %r8,%rsi + shrq $4,%rbp + xorq %rbx,%rdx + andq %rbp,%rsi + shrq $4,%rbp + pxor %xmm1,%xmm0 + movq (%rsp,%rdi,8),%rcx + movq %r8,%rdi + movq %rcx,%rbx + shlq $44,%rcx + andq %rbp,%rdi + movq (%rsp,%rsi,8),%xmm1 + shrq $20,%rbx + xorq %rcx,%rax + pslldq $6,%xmm1 + movq %r8,%rsi + shrq $4,%rbp + xorq %rbx,%rdx + andq %rbp,%rsi + shrq $4,%rbp + pxor %xmm1,%xmm0 + movq (%rsp,%rdi,8),%rcx + movq %r8,%rdi + movq %rcx,%rbx + shlq $52,%rcx + andq %rbp,%rdi + movq (%rsp,%rsi,8),%xmm1 + shrq $12,%rbx + xorq %rcx,%rax + pslldq $7,%xmm1 + movq %r8,%rsi + shrq $4,%rbp + xorq %rbx,%rdx + andq %rbp,%rsi + shrq $4,%rbp + pxor %xmm1,%xmm0 + movq (%rsp,%rdi,8),%rcx + movq %rcx,%rbx + shlq $60,%rcx +.byte 102,72,15,126,198 + shrq $4,%rbx + xorq %rcx,%rax + psrldq $8,%xmm0 + xorq %rbx,%rdx +.byte 102,72,15,126,199 + xorq %rsi,%rax + xorq %rdi,%rdx + + addq $128+8,%rsp + + .byte 0xf3,0xc3 +L$end_mul_1x1: + + + +.globl _bn_GF2m_mul_2x2 + +.p2align 4 +_bn_GF2m_mul_2x2: + + movq %rsp,%rax + movq _OPENSSL_ia32cap_P(%rip),%r10 + btq $33,%r10 + jnc L$vanilla_mul_2x2 + +.byte 102,72,15,110,198 +.byte 102,72,15,110,201 +.byte 102,72,15,110,210 +.byte 102,73,15,110,216 + movdqa %xmm0,%xmm4 + movdqa %xmm1,%xmm5 +.byte 102,15,58,68,193,0 + pxor %xmm2,%xmm4 + pxor %xmm3,%xmm5 +.byte 102,15,58,68,211,0 +.byte 102,15,58,68,229,0 + xorps %xmm0,%xmm4 + xorps %xmm2,%xmm4 + movdqa %xmm4,%xmm5 + pslldq $8,%xmm4 + psrldq $8,%xmm5 + pxor %xmm4,%xmm2 + pxor %xmm5,%xmm0 + movdqu %xmm2,0(%rdi) + movdqu %xmm0,16(%rdi) + .byte 0xf3,0xc3 + +.p2align 4 +L$vanilla_mul_2x2: + leaq -136(%rsp),%rsp + + movq %r14,80(%rsp) + + movq %r13,88(%rsp) + + movq %r12,96(%rsp) + + movq %rbp,104(%rsp) + + movq %rbx,112(%rsp) + +L$body_mul_2x2: + movq %rdi,32(%rsp) + movq %rsi,40(%rsp) + movq %rdx,48(%rsp) + movq %rcx,56(%rsp) + movq %r8,64(%rsp) + + movq $0xf,%r8 + movq %rsi,%rax + movq %rcx,%rbp + call _mul_1x1 + movq %rax,16(%rsp) + movq %rdx,24(%rsp) + + movq 48(%rsp),%rax + movq 64(%rsp),%rbp + call _mul_1x1 + movq %rax,0(%rsp) + movq %rdx,8(%rsp) + + movq 40(%rsp),%rax + movq 56(%rsp),%rbp + xorq 48(%rsp),%rax + xorq 64(%rsp),%rbp + call _mul_1x1 + movq 0(%rsp),%rbx + movq 8(%rsp),%rcx + movq 16(%rsp),%rdi + movq 24(%rsp),%rsi + movq 32(%rsp),%rbp + + xorq %rdx,%rax + xorq %rcx,%rdx + xorq %rbx,%rax + movq %rbx,0(%rbp) + xorq %rdi,%rdx + movq %rsi,24(%rbp) + xorq %rsi,%rax + xorq %rsi,%rdx + xorq %rdx,%rax + movq %rdx,16(%rbp) + movq %rax,8(%rbp) + + movq 80(%rsp),%r14 + + movq 88(%rsp),%r13 + + movq 96(%rsp),%r12 + + movq 104(%rsp),%rbp + + movq 112(%rsp),%rbx + + leaq 136(%rsp),%rsp + +L$epilogue_mul_2x2: + .byte 0xf3,0xc3 +L$end_mul_2x2: + + +.byte 71,70,40,50,94,109,41,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.p2align 4 diff --git a/vere/ext/openssl/gen/macos-x86_64/crypto/bn/x86_64-mont.s b/vere/ext/openssl/gen/macos-x86_64/crypto/bn/x86_64-mont.s new file mode 100644 index 0000000..5abe369 --- /dev/null +++ b/vere/ext/openssl/gen/macos-x86_64/crypto/bn/x86_64-mont.s @@ -0,0 +1,1239 @@ +.text + + + +.globl _bn_mul_mont + +.p2align 4 +_bn_mul_mont: + + movl %r9d,%r9d + movq %rsp,%rax + + testl $3,%r9d + jnz L$mul_enter + cmpl $8,%r9d + jb L$mul_enter + movl _OPENSSL_ia32cap_P+8(%rip),%r11d + cmpq %rsi,%rdx + jne L$mul4x_enter + testl $7,%r9d + jz L$sqr8x_enter + jmp L$mul4x_enter + +.p2align 4 +L$mul_enter: + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + + negq %r9 + movq %rsp,%r11 + leaq -16(%rsp,%r9,8),%r10 + negq %r9 + andq $-1024,%r10 + + + + + + + + + + subq %r10,%r11 + andq $-4096,%r11 + leaq (%r10,%r11,1),%rsp + movq (%rsp),%r11 + cmpq %r10,%rsp + ja L$mul_page_walk + jmp L$mul_page_walk_done + +.p2align 4 +L$mul_page_walk: + leaq -4096(%rsp),%rsp + movq (%rsp),%r11 + cmpq %r10,%rsp + ja L$mul_page_walk +L$mul_page_walk_done: + + movq %rax,8(%rsp,%r9,8) + +L$mul_body: + movq %rdx,%r12 + movq (%r8),%r8 + movq (%r12),%rbx + movq (%rsi),%rax + + xorq %r14,%r14 + xorq %r15,%r15 + + movq %r8,%rbp + mulq %rbx + movq %rax,%r10 + movq (%rcx),%rax + + imulq %r10,%rbp + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r10 + movq 8(%rsi),%rax + adcq $0,%rdx + movq %rdx,%r13 + + leaq 1(%r15),%r15 + jmp L$1st_enter + +.p2align 4 +L$1st: + addq %rax,%r13 + movq (%rsi,%r15,8),%rax + adcq $0,%rdx + addq %r11,%r13 + movq %r10,%r11 + adcq $0,%rdx + movq %r13,-16(%rsp,%r15,8) + movq %rdx,%r13 + +L$1st_enter: + mulq %rbx + addq %rax,%r11 + movq (%rcx,%r15,8),%rax + adcq $0,%rdx + leaq 1(%r15),%r15 + movq %rdx,%r10 + + mulq %rbp + cmpq %r9,%r15 + jne L$1st + + addq %rax,%r13 + movq (%rsi),%rax + adcq $0,%rdx + addq %r11,%r13 + adcq $0,%rdx + movq %r13,-16(%rsp,%r15,8) + movq %rdx,%r13 + movq %r10,%r11 + + xorq %rdx,%rdx + addq %r11,%r13 + adcq $0,%rdx + movq %r13,-8(%rsp,%r9,8) + movq %rdx,(%rsp,%r9,8) + + leaq 1(%r14),%r14 + jmp L$outer +.p2align 4 +L$outer: + movq (%r12,%r14,8),%rbx + xorq %r15,%r15 + movq %r8,%rbp + movq (%rsp),%r10 + mulq %rbx + addq %rax,%r10 + movq (%rcx),%rax + adcq $0,%rdx + + imulq %r10,%rbp + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r10 + movq 8(%rsi),%rax + adcq $0,%rdx + movq 8(%rsp),%r10 + movq %rdx,%r13 + + leaq 1(%r15),%r15 + jmp L$inner_enter + +.p2align 4 +L$inner: + addq %rax,%r13 + movq (%rsi,%r15,8),%rax + adcq $0,%rdx + addq %r10,%r13 + movq (%rsp,%r15,8),%r10 + adcq $0,%rdx + movq %r13,-16(%rsp,%r15,8) + movq %rdx,%r13 + +L$inner_enter: + mulq %rbx + addq %rax,%r11 + movq (%rcx,%r15,8),%rax + adcq $0,%rdx + addq %r11,%r10 + movq %rdx,%r11 + adcq $0,%r11 + leaq 1(%r15),%r15 + + mulq %rbp + cmpq %r9,%r15 + jne L$inner + + addq %rax,%r13 + movq (%rsi),%rax + adcq $0,%rdx + addq %r10,%r13 + movq (%rsp,%r15,8),%r10 + adcq $0,%rdx + movq %r13,-16(%rsp,%r15,8) + movq %rdx,%r13 + + xorq %rdx,%rdx + addq %r11,%r13 + adcq $0,%rdx + addq %r10,%r13 + adcq $0,%rdx + movq %r13,-8(%rsp,%r9,8) + movq %rdx,(%rsp,%r9,8) + + leaq 1(%r14),%r14 + cmpq %r9,%r14 + jb L$outer + + xorq %r14,%r14 + movq (%rsp),%rax + movq %r9,%r15 + +.p2align 4 +L$sub: sbbq (%rcx,%r14,8),%rax + movq %rax,(%rdi,%r14,8) + movq 8(%rsp,%r14,8),%rax + leaq 1(%r14),%r14 + decq %r15 + jnz L$sub + + sbbq $0,%rax + movq $-1,%rbx + xorq %rax,%rbx + xorq %r14,%r14 + movq %r9,%r15 + +L$copy: + movq (%rdi,%r14,8),%rcx + movq (%rsp,%r14,8),%rdx + andq %rbx,%rcx + andq %rax,%rdx + movq %r9,(%rsp,%r14,8) + orq %rcx,%rdx + movq %rdx,(%rdi,%r14,8) + leaq 1(%r14),%r14 + subq $1,%r15 + jnz L$copy + + movq 8(%rsp,%r9,8),%rsi + + movq $1,%rax + movq -48(%rsi),%r15 + + movq -40(%rsi),%r14 + + movq -32(%rsi),%r13 + + movq -24(%rsi),%r12 + + movq -16(%rsi),%rbp + + movq -8(%rsi),%rbx + + leaq (%rsi),%rsp + +L$mul_epilogue: + .byte 0xf3,0xc3 + + + +.p2align 4 +bn_mul4x_mont: + + movl %r9d,%r9d + movq %rsp,%rax + +L$mul4x_enter: + andl $0x80100,%r11d + cmpl $0x80100,%r11d + je L$mulx4x_enter + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + + negq %r9 + movq %rsp,%r11 + leaq -32(%rsp,%r9,8),%r10 + negq %r9 + andq $-1024,%r10 + + subq %r10,%r11 + andq $-4096,%r11 + leaq (%r10,%r11,1),%rsp + movq (%rsp),%r11 + cmpq %r10,%rsp + ja L$mul4x_page_walk + jmp L$mul4x_page_walk_done + +L$mul4x_page_walk: + leaq -4096(%rsp),%rsp + movq (%rsp),%r11 + cmpq %r10,%rsp + ja L$mul4x_page_walk +L$mul4x_page_walk_done: + + movq %rax,8(%rsp,%r9,8) + +L$mul4x_body: + movq %rdi,16(%rsp,%r9,8) + movq %rdx,%r12 + movq (%r8),%r8 + movq (%r12),%rbx + movq (%rsi),%rax + + xorq %r14,%r14 + xorq %r15,%r15 + + movq %r8,%rbp + mulq %rbx + movq %rax,%r10 + movq (%rcx),%rax + + imulq %r10,%rbp + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r10 + movq 8(%rsi),%rax + adcq $0,%rdx + movq %rdx,%rdi + + mulq %rbx + addq %rax,%r11 + movq 8(%rcx),%rax + adcq $0,%rdx + movq %rdx,%r10 + + mulq %rbp + addq %rax,%rdi + movq 16(%rsi),%rax + adcq $0,%rdx + addq %r11,%rdi + leaq 4(%r15),%r15 + adcq $0,%rdx + movq %rdi,(%rsp) + movq %rdx,%r13 + jmp L$1st4x +.p2align 4 +L$1st4x: + mulq %rbx + addq %rax,%r10 + movq -16(%rcx,%r15,8),%rax + adcq $0,%rdx + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r13 + movq -8(%rsi,%r15,8),%rax + adcq $0,%rdx + addq %r10,%r13 + adcq $0,%rdx + movq %r13,-24(%rsp,%r15,8) + movq %rdx,%rdi + + mulq %rbx + addq %rax,%r11 + movq -8(%rcx,%r15,8),%rax + adcq $0,%rdx + movq %rdx,%r10 + + mulq %rbp + addq %rax,%rdi + movq (%rsi,%r15,8),%rax + adcq $0,%rdx + addq %r11,%rdi + adcq $0,%rdx + movq %rdi,-16(%rsp,%r15,8) + movq %rdx,%r13 + + mulq %rbx + addq %rax,%r10 + movq (%rcx,%r15,8),%rax + adcq $0,%rdx + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r13 + movq 8(%rsi,%r15,8),%rax + adcq $0,%rdx + addq %r10,%r13 + adcq $0,%rdx + movq %r13,-8(%rsp,%r15,8) + movq %rdx,%rdi + + mulq %rbx + addq %rax,%r11 + movq 8(%rcx,%r15,8),%rax + adcq $0,%rdx + leaq 4(%r15),%r15 + movq %rdx,%r10 + + mulq %rbp + addq %rax,%rdi + movq -16(%rsi,%r15,8),%rax + adcq $0,%rdx + addq %r11,%rdi + adcq $0,%rdx + movq %rdi,-32(%rsp,%r15,8) + movq %rdx,%r13 + cmpq %r9,%r15 + jb L$1st4x + + mulq %rbx + addq %rax,%r10 + movq -16(%rcx,%r15,8),%rax + adcq $0,%rdx + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r13 + movq -8(%rsi,%r15,8),%rax + adcq $0,%rdx + addq %r10,%r13 + adcq $0,%rdx + movq %r13,-24(%rsp,%r15,8) + movq %rdx,%rdi + + mulq %rbx + addq %rax,%r11 + movq -8(%rcx,%r15,8),%rax + adcq $0,%rdx + movq %rdx,%r10 + + mulq %rbp + addq %rax,%rdi + movq (%rsi),%rax + adcq $0,%rdx + addq %r11,%rdi + adcq $0,%rdx + movq %rdi,-16(%rsp,%r15,8) + movq %rdx,%r13 + + xorq %rdi,%rdi + addq %r10,%r13 + adcq $0,%rdi + movq %r13,-8(%rsp,%r15,8) + movq %rdi,(%rsp,%r15,8) + + leaq 1(%r14),%r14 +.p2align 2 +L$outer4x: + movq (%r12,%r14,8),%rbx + xorq %r15,%r15 + movq (%rsp),%r10 + movq %r8,%rbp + mulq %rbx + addq %rax,%r10 + movq (%rcx),%rax + adcq $0,%rdx + + imulq %r10,%rbp + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r10 + movq 8(%rsi),%rax + adcq $0,%rdx + movq %rdx,%rdi + + mulq %rbx + addq %rax,%r11 + movq 8(%rcx),%rax + adcq $0,%rdx + addq 8(%rsp),%r11 + adcq $0,%rdx + movq %rdx,%r10 + + mulq %rbp + addq %rax,%rdi + movq 16(%rsi),%rax + adcq $0,%rdx + addq %r11,%rdi + leaq 4(%r15),%r15 + adcq $0,%rdx + movq %rdi,(%rsp) + movq %rdx,%r13 + jmp L$inner4x +.p2align 4 +L$inner4x: + mulq %rbx + addq %rax,%r10 + movq -16(%rcx,%r15,8),%rax + adcq $0,%rdx + addq -16(%rsp,%r15,8),%r10 + adcq $0,%rdx + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r13 + movq -8(%rsi,%r15,8),%rax + adcq $0,%rdx + addq %r10,%r13 + adcq $0,%rdx + movq %r13,-24(%rsp,%r15,8) + movq %rdx,%rdi + + mulq %rbx + addq %rax,%r11 + movq -8(%rcx,%r15,8),%rax + adcq $0,%rdx + addq -8(%rsp,%r15,8),%r11 + adcq $0,%rdx + movq %rdx,%r10 + + mulq %rbp + addq %rax,%rdi + movq (%rsi,%r15,8),%rax + adcq $0,%rdx + addq %r11,%rdi + adcq $0,%rdx + movq %rdi,-16(%rsp,%r15,8) + movq %rdx,%r13 + + mulq %rbx + addq %rax,%r10 + movq (%rcx,%r15,8),%rax + adcq $0,%rdx + addq (%rsp,%r15,8),%r10 + adcq $0,%rdx + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r13 + movq 8(%rsi,%r15,8),%rax + adcq $0,%rdx + addq %r10,%r13 + adcq $0,%rdx + movq %r13,-8(%rsp,%r15,8) + movq %rdx,%rdi + + mulq %rbx + addq %rax,%r11 + movq 8(%rcx,%r15,8),%rax + adcq $0,%rdx + addq 8(%rsp,%r15,8),%r11 + adcq $0,%rdx + leaq 4(%r15),%r15 + movq %rdx,%r10 + + mulq %rbp + addq %rax,%rdi + movq -16(%rsi,%r15,8),%rax + adcq $0,%rdx + addq %r11,%rdi + adcq $0,%rdx + movq %rdi,-32(%rsp,%r15,8) + movq %rdx,%r13 + cmpq %r9,%r15 + jb L$inner4x + + mulq %rbx + addq %rax,%r10 + movq -16(%rcx,%r15,8),%rax + adcq $0,%rdx + addq -16(%rsp,%r15,8),%r10 + adcq $0,%rdx + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r13 + movq -8(%rsi,%r15,8),%rax + adcq $0,%rdx + addq %r10,%r13 + adcq $0,%rdx + movq %r13,-24(%rsp,%r15,8) + movq %rdx,%rdi + + mulq %rbx + addq %rax,%r11 + movq -8(%rcx,%r15,8),%rax + adcq $0,%rdx + addq -8(%rsp,%r15,8),%r11 + adcq $0,%rdx + leaq 1(%r14),%r14 + movq %rdx,%r10 + + mulq %rbp + addq %rax,%rdi + movq (%rsi),%rax + adcq $0,%rdx + addq %r11,%rdi + adcq $0,%rdx + movq %rdi,-16(%rsp,%r15,8) + movq %rdx,%r13 + + xorq %rdi,%rdi + addq %r10,%r13 + adcq $0,%rdi + addq (%rsp,%r9,8),%r13 + adcq $0,%rdi + movq %r13,-8(%rsp,%r15,8) + movq %rdi,(%rsp,%r15,8) + + cmpq %r9,%r14 + jb L$outer4x + movq 16(%rsp,%r9,8),%rdi + leaq -4(%r9),%r15 + movq 0(%rsp),%rax + movq 8(%rsp),%rdx + shrq $2,%r15 + leaq (%rsp),%rsi + xorq %r14,%r14 + + subq 0(%rcx),%rax + movq 16(%rsi),%rbx + movq 24(%rsi),%rbp + sbbq 8(%rcx),%rdx + +L$sub4x: + movq %rax,0(%rdi,%r14,8) + movq %rdx,8(%rdi,%r14,8) + sbbq 16(%rcx,%r14,8),%rbx + movq 32(%rsi,%r14,8),%rax + movq 40(%rsi,%r14,8),%rdx + sbbq 24(%rcx,%r14,8),%rbp + movq %rbx,16(%rdi,%r14,8) + movq %rbp,24(%rdi,%r14,8) + sbbq 32(%rcx,%r14,8),%rax + movq 48(%rsi,%r14,8),%rbx + movq 56(%rsi,%r14,8),%rbp + sbbq 40(%rcx,%r14,8),%rdx + leaq 4(%r14),%r14 + decq %r15 + jnz L$sub4x + + movq %rax,0(%rdi,%r14,8) + movq 32(%rsi,%r14,8),%rax + sbbq 16(%rcx,%r14,8),%rbx + movq %rdx,8(%rdi,%r14,8) + sbbq 24(%rcx,%r14,8),%rbp + movq %rbx,16(%rdi,%r14,8) + + sbbq $0,%rax + movq %rbp,24(%rdi,%r14,8) + pxor %xmm0,%xmm0 +.byte 102,72,15,110,224 + pcmpeqd %xmm5,%xmm5 + pshufd $0,%xmm4,%xmm4 + movq %r9,%r15 + pxor %xmm4,%xmm5 + shrq $2,%r15 + xorl %eax,%eax + + jmp L$copy4x +.p2align 4 +L$copy4x: + movdqa (%rsp,%rax,1),%xmm1 + movdqu (%rdi,%rax,1),%xmm2 + pand %xmm4,%xmm1 + pand %xmm5,%xmm2 + movdqa 16(%rsp,%rax,1),%xmm3 + movdqa %xmm0,(%rsp,%rax,1) + por %xmm2,%xmm1 + movdqu 16(%rdi,%rax,1),%xmm2 + movdqu %xmm1,(%rdi,%rax,1) + pand %xmm4,%xmm3 + pand %xmm5,%xmm2 + movdqa %xmm0,16(%rsp,%rax,1) + por %xmm2,%xmm3 + movdqu %xmm3,16(%rdi,%rax,1) + leaq 32(%rax),%rax + decq %r15 + jnz L$copy4x + movq 8(%rsp,%r9,8),%rsi + + movq $1,%rax + movq -48(%rsi),%r15 + + movq -40(%rsi),%r14 + + movq -32(%rsi),%r13 + + movq -24(%rsi),%r12 + + movq -16(%rsi),%rbp + + movq -8(%rsi),%rbx + + leaq (%rsi),%rsp + +L$mul4x_epilogue: + .byte 0xf3,0xc3 + + + + + + +.p2align 5 +bn_sqr8x_mont: + + movq %rsp,%rax + +L$sqr8x_enter: + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + +L$sqr8x_prologue: + + movl %r9d,%r10d + shll $3,%r9d + shlq $3+2,%r10 + negq %r9 + + + + + + + leaq -64(%rsp,%r9,2),%r11 + movq %rsp,%rbp + movq (%r8),%r8 + subq %rsi,%r11 + andq $4095,%r11 + cmpq %r11,%r10 + jb L$sqr8x_sp_alt + subq %r11,%rbp + leaq -64(%rbp,%r9,2),%rbp + jmp L$sqr8x_sp_done + +.p2align 5 +L$sqr8x_sp_alt: + leaq 4096-64(,%r9,2),%r10 + leaq -64(%rbp,%r9,2),%rbp + subq %r10,%r11 + movq $0,%r10 + cmovcq %r10,%r11 + subq %r11,%rbp +L$sqr8x_sp_done: + andq $-64,%rbp + movq %rsp,%r11 + subq %rbp,%r11 + andq $-4096,%r11 + leaq (%r11,%rbp,1),%rsp + movq (%rsp),%r10 + cmpq %rbp,%rsp + ja L$sqr8x_page_walk + jmp L$sqr8x_page_walk_done + +.p2align 4 +L$sqr8x_page_walk: + leaq -4096(%rsp),%rsp + movq (%rsp),%r10 + cmpq %rbp,%rsp + ja L$sqr8x_page_walk +L$sqr8x_page_walk_done: + + movq %r9,%r10 + negq %r9 + + movq %r8,32(%rsp) + movq %rax,40(%rsp) + +L$sqr8x_body: + +.byte 102,72,15,110,209 + pxor %xmm0,%xmm0 +.byte 102,72,15,110,207 +.byte 102,73,15,110,218 + movl _OPENSSL_ia32cap_P+8(%rip),%eax + andl $0x80100,%eax + cmpl $0x80100,%eax + jne L$sqr8x_nox + + call _bn_sqrx8x_internal + + + + + leaq (%r8,%rcx,1),%rbx + movq %rcx,%r9 + movq %rcx,%rdx +.byte 102,72,15,126,207 + sarq $3+2,%rcx + jmp L$sqr8x_sub + +.p2align 5 +L$sqr8x_nox: + call _bn_sqr8x_internal + + + + + leaq (%rdi,%r9,1),%rbx + movq %r9,%rcx + movq %r9,%rdx +.byte 102,72,15,126,207 + sarq $3+2,%rcx + jmp L$sqr8x_sub + +.p2align 5 +L$sqr8x_sub: + movq 0(%rbx),%r12 + movq 8(%rbx),%r13 + movq 16(%rbx),%r14 + movq 24(%rbx),%r15 + leaq 32(%rbx),%rbx + sbbq 0(%rbp),%r12 + sbbq 8(%rbp),%r13 + sbbq 16(%rbp),%r14 + sbbq 24(%rbp),%r15 + leaq 32(%rbp),%rbp + movq %r12,0(%rdi) + movq %r13,8(%rdi) + movq %r14,16(%rdi) + movq %r15,24(%rdi) + leaq 32(%rdi),%rdi + incq %rcx + jnz L$sqr8x_sub + + sbbq $0,%rax + leaq (%rbx,%r9,1),%rbx + leaq (%rdi,%r9,1),%rdi + +.byte 102,72,15,110,200 + pxor %xmm0,%xmm0 + pshufd $0,%xmm1,%xmm1 + movq 40(%rsp),%rsi + + jmp L$sqr8x_cond_copy + +.p2align 5 +L$sqr8x_cond_copy: + movdqa 0(%rbx),%xmm2 + movdqa 16(%rbx),%xmm3 + leaq 32(%rbx),%rbx + movdqu 0(%rdi),%xmm4 + movdqu 16(%rdi),%xmm5 + leaq 32(%rdi),%rdi + movdqa %xmm0,-32(%rbx) + movdqa %xmm0,-16(%rbx) + movdqa %xmm0,-32(%rbx,%rdx,1) + movdqa %xmm0,-16(%rbx,%rdx,1) + pcmpeqd %xmm1,%xmm0 + pand %xmm1,%xmm2 + pand %xmm1,%xmm3 + pand %xmm0,%xmm4 + pand %xmm0,%xmm5 + pxor %xmm0,%xmm0 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + movdqu %xmm4,-32(%rdi) + movdqu %xmm5,-16(%rdi) + addq $32,%r9 + jnz L$sqr8x_cond_copy + + movq $1,%rax + movq -48(%rsi),%r15 + + movq -40(%rsi),%r14 + + movq -32(%rsi),%r13 + + movq -24(%rsi),%r12 + + movq -16(%rsi),%rbp + + movq -8(%rsi),%rbx + + leaq (%rsi),%rsp + +L$sqr8x_epilogue: + .byte 0xf3,0xc3 + + + +.p2align 5 +bn_mulx4x_mont: + + movq %rsp,%rax + +L$mulx4x_enter: + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + +L$mulx4x_prologue: + + shll $3,%r9d + xorq %r10,%r10 + subq %r9,%r10 + movq (%r8),%r8 + leaq -72(%rsp,%r10,1),%rbp + andq $-128,%rbp + movq %rsp,%r11 + subq %rbp,%r11 + andq $-4096,%r11 + leaq (%r11,%rbp,1),%rsp + movq (%rsp),%r10 + cmpq %rbp,%rsp + ja L$mulx4x_page_walk + jmp L$mulx4x_page_walk_done + +.p2align 4 +L$mulx4x_page_walk: + leaq -4096(%rsp),%rsp + movq (%rsp),%r10 + cmpq %rbp,%rsp + ja L$mulx4x_page_walk +L$mulx4x_page_walk_done: + + leaq (%rdx,%r9,1),%r10 + + + + + + + + + + + + + movq %r9,0(%rsp) + shrq $5,%r9 + movq %r10,16(%rsp) + subq $1,%r9 + movq %r8,24(%rsp) + movq %rdi,32(%rsp) + movq %rax,40(%rsp) + + movq %r9,48(%rsp) + jmp L$mulx4x_body + +.p2align 5 +L$mulx4x_body: + leaq 8(%rdx),%rdi + movq (%rdx),%rdx + leaq 64+32(%rsp),%rbx + movq %rdx,%r9 + + mulxq 0(%rsi),%r8,%rax + mulxq 8(%rsi),%r11,%r14 + addq %rax,%r11 + movq %rdi,8(%rsp) + mulxq 16(%rsi),%r12,%r13 + adcq %r14,%r12 + adcq $0,%r13 + + movq %r8,%rdi + imulq 24(%rsp),%r8 + xorq %rbp,%rbp + + mulxq 24(%rsi),%rax,%r14 + movq %r8,%rdx + leaq 32(%rsi),%rsi + adcxq %rax,%r13 + adcxq %rbp,%r14 + + mulxq 0(%rcx),%rax,%r10 + adcxq %rax,%rdi + adoxq %r11,%r10 + mulxq 8(%rcx),%rax,%r11 + adcxq %rax,%r10 + adoxq %r12,%r11 +.byte 0xc4,0x62,0xfb,0xf6,0xa1,0x10,0x00,0x00,0x00 + movq 48(%rsp),%rdi + movq %r10,-32(%rbx) + adcxq %rax,%r11 + adoxq %r13,%r12 + mulxq 24(%rcx),%rax,%r15 + movq %r9,%rdx + movq %r11,-24(%rbx) + adcxq %rax,%r12 + adoxq %rbp,%r15 + leaq 32(%rcx),%rcx + movq %r12,-16(%rbx) + + jmp L$mulx4x_1st + +.p2align 5 +L$mulx4x_1st: + adcxq %rbp,%r15 + mulxq 0(%rsi),%r10,%rax + adcxq %r14,%r10 + mulxq 8(%rsi),%r11,%r14 + adcxq %rax,%r11 + mulxq 16(%rsi),%r12,%rax + adcxq %r14,%r12 + mulxq 24(%rsi),%r13,%r14 +.byte 0x67,0x67 + movq %r8,%rdx + adcxq %rax,%r13 + adcxq %rbp,%r14 + leaq 32(%rsi),%rsi + leaq 32(%rbx),%rbx + + adoxq %r15,%r10 + mulxq 0(%rcx),%rax,%r15 + adcxq %rax,%r10 + adoxq %r15,%r11 + mulxq 8(%rcx),%rax,%r15 + adcxq %rax,%r11 + adoxq %r15,%r12 + mulxq 16(%rcx),%rax,%r15 + movq %r10,-40(%rbx) + adcxq %rax,%r12 + movq %r11,-32(%rbx) + adoxq %r15,%r13 + mulxq 24(%rcx),%rax,%r15 + movq %r9,%rdx + movq %r12,-24(%rbx) + adcxq %rax,%r13 + adoxq %rbp,%r15 + leaq 32(%rcx),%rcx + movq %r13,-16(%rbx) + + decq %rdi + jnz L$mulx4x_1st + + movq 0(%rsp),%rax + movq 8(%rsp),%rdi + adcq %rbp,%r15 + addq %r15,%r14 + sbbq %r15,%r15 + movq %r14,-8(%rbx) + jmp L$mulx4x_outer + +.p2align 5 +L$mulx4x_outer: + movq (%rdi),%rdx + leaq 8(%rdi),%rdi + subq %rax,%rsi + movq %r15,(%rbx) + leaq 64+32(%rsp),%rbx + subq %rax,%rcx + + mulxq 0(%rsi),%r8,%r11 + xorl %ebp,%ebp + movq %rdx,%r9 + mulxq 8(%rsi),%r14,%r12 + adoxq -32(%rbx),%r8 + adcxq %r14,%r11 + mulxq 16(%rsi),%r15,%r13 + adoxq -24(%rbx),%r11 + adcxq %r15,%r12 + adoxq -16(%rbx),%r12 + adcxq %rbp,%r13 + adoxq %rbp,%r13 + + movq %rdi,8(%rsp) + movq %r8,%r15 + imulq 24(%rsp),%r8 + xorl %ebp,%ebp + + mulxq 24(%rsi),%rax,%r14 + movq %r8,%rdx + adcxq %rax,%r13 + adoxq -8(%rbx),%r13 + adcxq %rbp,%r14 + leaq 32(%rsi),%rsi + adoxq %rbp,%r14 + + mulxq 0(%rcx),%rax,%r10 + adcxq %rax,%r15 + adoxq %r11,%r10 + mulxq 8(%rcx),%rax,%r11 + adcxq %rax,%r10 + adoxq %r12,%r11 + mulxq 16(%rcx),%rax,%r12 + movq %r10,-32(%rbx) + adcxq %rax,%r11 + adoxq %r13,%r12 + mulxq 24(%rcx),%rax,%r15 + movq %r9,%rdx + movq %r11,-24(%rbx) + leaq 32(%rcx),%rcx + adcxq %rax,%r12 + adoxq %rbp,%r15 + movq 48(%rsp),%rdi + movq %r12,-16(%rbx) + + jmp L$mulx4x_inner + +.p2align 5 +L$mulx4x_inner: + mulxq 0(%rsi),%r10,%rax + adcxq %rbp,%r15 + adoxq %r14,%r10 + mulxq 8(%rsi),%r11,%r14 + adcxq 0(%rbx),%r10 + adoxq %rax,%r11 + mulxq 16(%rsi),%r12,%rax + adcxq 8(%rbx),%r11 + adoxq %r14,%r12 + mulxq 24(%rsi),%r13,%r14 + movq %r8,%rdx + adcxq 16(%rbx),%r12 + adoxq %rax,%r13 + adcxq 24(%rbx),%r13 + adoxq %rbp,%r14 + leaq 32(%rsi),%rsi + leaq 32(%rbx),%rbx + adcxq %rbp,%r14 + + adoxq %r15,%r10 + mulxq 0(%rcx),%rax,%r15 + adcxq %rax,%r10 + adoxq %r15,%r11 + mulxq 8(%rcx),%rax,%r15 + adcxq %rax,%r11 + adoxq %r15,%r12 + mulxq 16(%rcx),%rax,%r15 + movq %r10,-40(%rbx) + adcxq %rax,%r12 + adoxq %r15,%r13 + mulxq 24(%rcx),%rax,%r15 + movq %r9,%rdx + movq %r11,-32(%rbx) + movq %r12,-24(%rbx) + adcxq %rax,%r13 + adoxq %rbp,%r15 + leaq 32(%rcx),%rcx + movq %r13,-16(%rbx) + + decq %rdi + jnz L$mulx4x_inner + + movq 0(%rsp),%rax + movq 8(%rsp),%rdi + adcq %rbp,%r15 + subq 0(%rbx),%rbp + adcq %r15,%r14 + sbbq %r15,%r15 + movq %r14,-8(%rbx) + + cmpq 16(%rsp),%rdi + jne L$mulx4x_outer + + leaq 64(%rsp),%rbx + subq %rax,%rcx + negq %r15 + movq %rax,%rdx + shrq $3+2,%rax + movq 32(%rsp),%rdi + jmp L$mulx4x_sub + +.p2align 5 +L$mulx4x_sub: + movq 0(%rbx),%r11 + movq 8(%rbx),%r12 + movq 16(%rbx),%r13 + movq 24(%rbx),%r14 + leaq 32(%rbx),%rbx + sbbq 0(%rcx),%r11 + sbbq 8(%rcx),%r12 + sbbq 16(%rcx),%r13 + sbbq 24(%rcx),%r14 + leaq 32(%rcx),%rcx + movq %r11,0(%rdi) + movq %r12,8(%rdi) + movq %r13,16(%rdi) + movq %r14,24(%rdi) + leaq 32(%rdi),%rdi + decq %rax + jnz L$mulx4x_sub + + sbbq $0,%r15 + leaq 64(%rsp),%rbx + subq %rdx,%rdi + +.byte 102,73,15,110,207 + pxor %xmm0,%xmm0 + pshufd $0,%xmm1,%xmm1 + movq 40(%rsp),%rsi + + jmp L$mulx4x_cond_copy + +.p2align 5 +L$mulx4x_cond_copy: + movdqa 0(%rbx),%xmm2 + movdqa 16(%rbx),%xmm3 + leaq 32(%rbx),%rbx + movdqu 0(%rdi),%xmm4 + movdqu 16(%rdi),%xmm5 + leaq 32(%rdi),%rdi + movdqa %xmm0,-32(%rbx) + movdqa %xmm0,-16(%rbx) + pcmpeqd %xmm1,%xmm0 + pand %xmm1,%xmm2 + pand %xmm1,%xmm3 + pand %xmm0,%xmm4 + pand %xmm0,%xmm5 + pxor %xmm0,%xmm0 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + movdqu %xmm4,-32(%rdi) + movdqu %xmm5,-16(%rdi) + subq $32,%rdx + jnz L$mulx4x_cond_copy + + movq %rdx,(%rbx) + + movq $1,%rax + movq -48(%rsi),%r15 + + movq -40(%rsi),%r14 + + movq -32(%rsi),%r13 + + movq -24(%rsi),%r12 + + movq -16(%rsi),%rbp + + movq -8(%rsi),%rbx + + leaq (%rsi),%rsp + +L$mulx4x_epilogue: + .byte 0xf3,0xc3 + + +.byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.p2align 4 diff --git a/vere/ext/openssl/gen/macos-x86_64/crypto/bn/x86_64-mont5.s b/vere/ext/openssl/gen/macos-x86_64/crypto/bn/x86_64-mont5.s new file mode 100644 index 0000000..8520cd9 --- /dev/null +++ b/vere/ext/openssl/gen/macos-x86_64/crypto/bn/x86_64-mont5.s @@ -0,0 +1,3603 @@ +.text + + + +.globl _bn_mul_mont_gather5 + +.p2align 6 +_bn_mul_mont_gather5: + + movl %r9d,%r9d + movq %rsp,%rax + + testl $7,%r9d + jnz L$mul_enter + movl _OPENSSL_ia32cap_P+8(%rip),%r11d + jmp L$mul4x_enter + +.p2align 4 +L$mul_enter: + movd 8(%rsp),%xmm5 + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + + negq %r9 + movq %rsp,%r11 + leaq -280(%rsp,%r9,8),%r10 + negq %r9 + andq $-1024,%r10 + + + + + + + + + + subq %r10,%r11 + andq $-4096,%r11 + leaq (%r10,%r11,1),%rsp + movq (%rsp),%r11 + cmpq %r10,%rsp + ja L$mul_page_walk + jmp L$mul_page_walk_done + +L$mul_page_walk: + leaq -4096(%rsp),%rsp + movq (%rsp),%r11 + cmpq %r10,%rsp + ja L$mul_page_walk +L$mul_page_walk_done: + + leaq L$inc(%rip),%r10 + movq %rax,8(%rsp,%r9,8) + +L$mul_body: + + leaq 128(%rdx),%r12 + movdqa 0(%r10),%xmm0 + movdqa 16(%r10),%xmm1 + leaq 24-112(%rsp,%r9,8),%r10 + andq $-16,%r10 + + pshufd $0,%xmm5,%xmm5 + movdqa %xmm1,%xmm4 + movdqa %xmm1,%xmm2 + paddd %xmm0,%xmm1 + pcmpeqd %xmm5,%xmm0 +.byte 0x67 + movdqa %xmm4,%xmm3 + paddd %xmm1,%xmm2 + pcmpeqd %xmm5,%xmm1 + movdqa %xmm0,112(%r10) + movdqa %xmm4,%xmm0 + + paddd %xmm2,%xmm3 + pcmpeqd %xmm5,%xmm2 + movdqa %xmm1,128(%r10) + movdqa %xmm4,%xmm1 + + paddd %xmm3,%xmm0 + pcmpeqd %xmm5,%xmm3 + movdqa %xmm2,144(%r10) + movdqa %xmm4,%xmm2 + + paddd %xmm0,%xmm1 + pcmpeqd %xmm5,%xmm0 + movdqa %xmm3,160(%r10) + movdqa %xmm4,%xmm3 + paddd %xmm1,%xmm2 + pcmpeqd %xmm5,%xmm1 + movdqa %xmm0,176(%r10) + movdqa %xmm4,%xmm0 + + paddd %xmm2,%xmm3 + pcmpeqd %xmm5,%xmm2 + movdqa %xmm1,192(%r10) + movdqa %xmm4,%xmm1 + + paddd %xmm3,%xmm0 + pcmpeqd %xmm5,%xmm3 + movdqa %xmm2,208(%r10) + movdqa %xmm4,%xmm2 + + paddd %xmm0,%xmm1 + pcmpeqd %xmm5,%xmm0 + movdqa %xmm3,224(%r10) + movdqa %xmm4,%xmm3 + paddd %xmm1,%xmm2 + pcmpeqd %xmm5,%xmm1 + movdqa %xmm0,240(%r10) + movdqa %xmm4,%xmm0 + + paddd %xmm2,%xmm3 + pcmpeqd %xmm5,%xmm2 + movdqa %xmm1,256(%r10) + movdqa %xmm4,%xmm1 + + paddd %xmm3,%xmm0 + pcmpeqd %xmm5,%xmm3 + movdqa %xmm2,272(%r10) + movdqa %xmm4,%xmm2 + + paddd %xmm0,%xmm1 + pcmpeqd %xmm5,%xmm0 + movdqa %xmm3,288(%r10) + movdqa %xmm4,%xmm3 + paddd %xmm1,%xmm2 + pcmpeqd %xmm5,%xmm1 + movdqa %xmm0,304(%r10) + + paddd %xmm2,%xmm3 +.byte 0x67 + pcmpeqd %xmm5,%xmm2 + movdqa %xmm1,320(%r10) + + pcmpeqd %xmm5,%xmm3 + movdqa %xmm2,336(%r10) + pand 64(%r12),%xmm0 + + pand 80(%r12),%xmm1 + pand 96(%r12),%xmm2 + movdqa %xmm3,352(%r10) + pand 112(%r12),%xmm3 + por %xmm2,%xmm0 + por %xmm3,%xmm1 + movdqa -128(%r12),%xmm4 + movdqa -112(%r12),%xmm5 + movdqa -96(%r12),%xmm2 + pand 112(%r10),%xmm4 + movdqa -80(%r12),%xmm3 + pand 128(%r10),%xmm5 + por %xmm4,%xmm0 + pand 144(%r10),%xmm2 + por %xmm5,%xmm1 + pand 160(%r10),%xmm3 + por %xmm2,%xmm0 + por %xmm3,%xmm1 + movdqa -64(%r12),%xmm4 + movdqa -48(%r12),%xmm5 + movdqa -32(%r12),%xmm2 + pand 176(%r10),%xmm4 + movdqa -16(%r12),%xmm3 + pand 192(%r10),%xmm5 + por %xmm4,%xmm0 + pand 208(%r10),%xmm2 + por %xmm5,%xmm1 + pand 224(%r10),%xmm3 + por %xmm2,%xmm0 + por %xmm3,%xmm1 + movdqa 0(%r12),%xmm4 + movdqa 16(%r12),%xmm5 + movdqa 32(%r12),%xmm2 + pand 240(%r10),%xmm4 + movdqa 48(%r12),%xmm3 + pand 256(%r10),%xmm5 + por %xmm4,%xmm0 + pand 272(%r10),%xmm2 + por %xmm5,%xmm1 + pand 288(%r10),%xmm3 + por %xmm2,%xmm0 + por %xmm3,%xmm1 + por %xmm1,%xmm0 + pshufd $0x4e,%xmm0,%xmm1 + por %xmm1,%xmm0 + leaq 256(%r12),%r12 +.byte 102,72,15,126,195 + + movq (%r8),%r8 + movq (%rsi),%rax + + xorq %r14,%r14 + xorq %r15,%r15 + + movq %r8,%rbp + mulq %rbx + movq %rax,%r10 + movq (%rcx),%rax + + imulq %r10,%rbp + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r10 + movq 8(%rsi),%rax + adcq $0,%rdx + movq %rdx,%r13 + + leaq 1(%r15),%r15 + jmp L$1st_enter + +.p2align 4 +L$1st: + addq %rax,%r13 + movq (%rsi,%r15,8),%rax + adcq $0,%rdx + addq %r11,%r13 + movq %r10,%r11 + adcq $0,%rdx + movq %r13,-16(%rsp,%r15,8) + movq %rdx,%r13 + +L$1st_enter: + mulq %rbx + addq %rax,%r11 + movq (%rcx,%r15,8),%rax + adcq $0,%rdx + leaq 1(%r15),%r15 + movq %rdx,%r10 + + mulq %rbp + cmpq %r9,%r15 + jne L$1st + + + addq %rax,%r13 + adcq $0,%rdx + addq %r11,%r13 + adcq $0,%rdx + movq %r13,-16(%rsp,%r9,8) + movq %rdx,%r13 + movq %r10,%r11 + + xorq %rdx,%rdx + addq %r11,%r13 + adcq $0,%rdx + movq %r13,-8(%rsp,%r9,8) + movq %rdx,(%rsp,%r9,8) + + leaq 1(%r14),%r14 + jmp L$outer +.p2align 4 +L$outer: + leaq 24+128(%rsp,%r9,8),%rdx + andq $-16,%rdx + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + movdqa -128(%r12),%xmm0 + movdqa -112(%r12),%xmm1 + movdqa -96(%r12),%xmm2 + movdqa -80(%r12),%xmm3 + pand -128(%rdx),%xmm0 + pand -112(%rdx),%xmm1 + por %xmm0,%xmm4 + pand -96(%rdx),%xmm2 + por %xmm1,%xmm5 + pand -80(%rdx),%xmm3 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + movdqa -64(%r12),%xmm0 + movdqa -48(%r12),%xmm1 + movdqa -32(%r12),%xmm2 + movdqa -16(%r12),%xmm3 + pand -64(%rdx),%xmm0 + pand -48(%rdx),%xmm1 + por %xmm0,%xmm4 + pand -32(%rdx),%xmm2 + por %xmm1,%xmm5 + pand -16(%rdx),%xmm3 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + movdqa 0(%r12),%xmm0 + movdqa 16(%r12),%xmm1 + movdqa 32(%r12),%xmm2 + movdqa 48(%r12),%xmm3 + pand 0(%rdx),%xmm0 + pand 16(%rdx),%xmm1 + por %xmm0,%xmm4 + pand 32(%rdx),%xmm2 + por %xmm1,%xmm5 + pand 48(%rdx),%xmm3 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + movdqa 64(%r12),%xmm0 + movdqa 80(%r12),%xmm1 + movdqa 96(%r12),%xmm2 + movdqa 112(%r12),%xmm3 + pand 64(%rdx),%xmm0 + pand 80(%rdx),%xmm1 + por %xmm0,%xmm4 + pand 96(%rdx),%xmm2 + por %xmm1,%xmm5 + pand 112(%rdx),%xmm3 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + por %xmm5,%xmm4 + pshufd $0x4e,%xmm4,%xmm0 + por %xmm4,%xmm0 + leaq 256(%r12),%r12 + + movq (%rsi),%rax +.byte 102,72,15,126,195 + + xorq %r15,%r15 + movq %r8,%rbp + movq (%rsp),%r10 + + mulq %rbx + addq %rax,%r10 + movq (%rcx),%rax + adcq $0,%rdx + + imulq %r10,%rbp + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r10 + movq 8(%rsi),%rax + adcq $0,%rdx + movq 8(%rsp),%r10 + movq %rdx,%r13 + + leaq 1(%r15),%r15 + jmp L$inner_enter + +.p2align 4 +L$inner: + addq %rax,%r13 + movq (%rsi,%r15,8),%rax + adcq $0,%rdx + addq %r10,%r13 + movq (%rsp,%r15,8),%r10 + adcq $0,%rdx + movq %r13,-16(%rsp,%r15,8) + movq %rdx,%r13 + +L$inner_enter: + mulq %rbx + addq %rax,%r11 + movq (%rcx,%r15,8),%rax + adcq $0,%rdx + addq %r11,%r10 + movq %rdx,%r11 + adcq $0,%r11 + leaq 1(%r15),%r15 + + mulq %rbp + cmpq %r9,%r15 + jne L$inner + + addq %rax,%r13 + adcq $0,%rdx + addq %r10,%r13 + movq (%rsp,%r9,8),%r10 + adcq $0,%rdx + movq %r13,-16(%rsp,%r9,8) + movq %rdx,%r13 + + xorq %rdx,%rdx + addq %r11,%r13 + adcq $0,%rdx + addq %r10,%r13 + adcq $0,%rdx + movq %r13,-8(%rsp,%r9,8) + movq %rdx,(%rsp,%r9,8) + + leaq 1(%r14),%r14 + cmpq %r9,%r14 + jb L$outer + + xorq %r14,%r14 + movq (%rsp),%rax + leaq (%rsp),%rsi + movq %r9,%r15 + jmp L$sub +.p2align 4 +L$sub: sbbq (%rcx,%r14,8),%rax + movq %rax,(%rdi,%r14,8) + movq 8(%rsi,%r14,8),%rax + leaq 1(%r14),%r14 + decq %r15 + jnz L$sub + + sbbq $0,%rax + movq $-1,%rbx + xorq %rax,%rbx + xorq %r14,%r14 + movq %r9,%r15 + +L$copy: + movq (%rdi,%r14,8),%rcx + movq (%rsp,%r14,8),%rdx + andq %rbx,%rcx + andq %rax,%rdx + movq %r14,(%rsp,%r14,8) + orq %rcx,%rdx + movq %rdx,(%rdi,%r14,8) + leaq 1(%r14),%r14 + subq $1,%r15 + jnz L$copy + + movq 8(%rsp,%r9,8),%rsi + + movq $1,%rax + + movq -48(%rsi),%r15 + + movq -40(%rsi),%r14 + + movq -32(%rsi),%r13 + + movq -24(%rsi),%r12 + + movq -16(%rsi),%rbp + + movq -8(%rsi),%rbx + + leaq (%rsi),%rsp + +L$mul_epilogue: + .byte 0xf3,0xc3 + + + +.p2align 5 +bn_mul4x_mont_gather5: + +.byte 0x67 + movq %rsp,%rax + +L$mul4x_enter: + andl $0x80108,%r11d + cmpl $0x80108,%r11d + je L$mulx4x_enter + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + +L$mul4x_prologue: + +.byte 0x67 + shll $3,%r9d + leaq (%r9,%r9,2),%r10 + negq %r9 + + + + + + + + + + + leaq -320(%rsp,%r9,2),%r11 + movq %rsp,%rbp + subq %rdi,%r11 + andq $4095,%r11 + cmpq %r11,%r10 + jb L$mul4xsp_alt + subq %r11,%rbp + leaq -320(%rbp,%r9,2),%rbp + jmp L$mul4xsp_done + +.p2align 5 +L$mul4xsp_alt: + leaq 4096-320(,%r9,2),%r10 + leaq -320(%rbp,%r9,2),%rbp + subq %r10,%r11 + movq $0,%r10 + cmovcq %r10,%r11 + subq %r11,%rbp +L$mul4xsp_done: + andq $-64,%rbp + movq %rsp,%r11 + subq %rbp,%r11 + andq $-4096,%r11 + leaq (%r11,%rbp,1),%rsp + movq (%rsp),%r10 + cmpq %rbp,%rsp + ja L$mul4x_page_walk + jmp L$mul4x_page_walk_done + +L$mul4x_page_walk: + leaq -4096(%rsp),%rsp + movq (%rsp),%r10 + cmpq %rbp,%rsp + ja L$mul4x_page_walk +L$mul4x_page_walk_done: + + negq %r9 + + movq %rax,40(%rsp) + +L$mul4x_body: + + call mul4x_internal + + movq 40(%rsp),%rsi + + movq $1,%rax + + movq -48(%rsi),%r15 + + movq -40(%rsi),%r14 + + movq -32(%rsi),%r13 + + movq -24(%rsi),%r12 + + movq -16(%rsi),%rbp + + movq -8(%rsi),%rbx + + leaq (%rsi),%rsp + +L$mul4x_epilogue: + .byte 0xf3,0xc3 + + + + +.p2align 5 +mul4x_internal: + + shlq $5,%r9 + movd 8(%rax),%xmm5 + leaq L$inc(%rip),%rax + leaq 128(%rdx,%r9,1),%r13 + shrq $5,%r9 + movdqa 0(%rax),%xmm0 + movdqa 16(%rax),%xmm1 + leaq 88-112(%rsp,%r9,1),%r10 + leaq 128(%rdx),%r12 + + pshufd $0,%xmm5,%xmm5 + movdqa %xmm1,%xmm4 +.byte 0x67,0x67 + movdqa %xmm1,%xmm2 + paddd %xmm0,%xmm1 + pcmpeqd %xmm5,%xmm0 +.byte 0x67 + movdqa %xmm4,%xmm3 + paddd %xmm1,%xmm2 + pcmpeqd %xmm5,%xmm1 + movdqa %xmm0,112(%r10) + movdqa %xmm4,%xmm0 + + paddd %xmm2,%xmm3 + pcmpeqd %xmm5,%xmm2 + movdqa %xmm1,128(%r10) + movdqa %xmm4,%xmm1 + + paddd %xmm3,%xmm0 + pcmpeqd %xmm5,%xmm3 + movdqa %xmm2,144(%r10) + movdqa %xmm4,%xmm2 + + paddd %xmm0,%xmm1 + pcmpeqd %xmm5,%xmm0 + movdqa %xmm3,160(%r10) + movdqa %xmm4,%xmm3 + paddd %xmm1,%xmm2 + pcmpeqd %xmm5,%xmm1 + movdqa %xmm0,176(%r10) + movdqa %xmm4,%xmm0 + + paddd %xmm2,%xmm3 + pcmpeqd %xmm5,%xmm2 + movdqa %xmm1,192(%r10) + movdqa %xmm4,%xmm1 + + paddd %xmm3,%xmm0 + pcmpeqd %xmm5,%xmm3 + movdqa %xmm2,208(%r10) + movdqa %xmm4,%xmm2 + + paddd %xmm0,%xmm1 + pcmpeqd %xmm5,%xmm0 + movdqa %xmm3,224(%r10) + movdqa %xmm4,%xmm3 + paddd %xmm1,%xmm2 + pcmpeqd %xmm5,%xmm1 + movdqa %xmm0,240(%r10) + movdqa %xmm4,%xmm0 + + paddd %xmm2,%xmm3 + pcmpeqd %xmm5,%xmm2 + movdqa %xmm1,256(%r10) + movdqa %xmm4,%xmm1 + + paddd %xmm3,%xmm0 + pcmpeqd %xmm5,%xmm3 + movdqa %xmm2,272(%r10) + movdqa %xmm4,%xmm2 + + paddd %xmm0,%xmm1 + pcmpeqd %xmm5,%xmm0 + movdqa %xmm3,288(%r10) + movdqa %xmm4,%xmm3 + paddd %xmm1,%xmm2 + pcmpeqd %xmm5,%xmm1 + movdqa %xmm0,304(%r10) + + paddd %xmm2,%xmm3 +.byte 0x67 + pcmpeqd %xmm5,%xmm2 + movdqa %xmm1,320(%r10) + + pcmpeqd %xmm5,%xmm3 + movdqa %xmm2,336(%r10) + pand 64(%r12),%xmm0 + + pand 80(%r12),%xmm1 + pand 96(%r12),%xmm2 + movdqa %xmm3,352(%r10) + pand 112(%r12),%xmm3 + por %xmm2,%xmm0 + por %xmm3,%xmm1 + movdqa -128(%r12),%xmm4 + movdqa -112(%r12),%xmm5 + movdqa -96(%r12),%xmm2 + pand 112(%r10),%xmm4 + movdqa -80(%r12),%xmm3 + pand 128(%r10),%xmm5 + por %xmm4,%xmm0 + pand 144(%r10),%xmm2 + por %xmm5,%xmm1 + pand 160(%r10),%xmm3 + por %xmm2,%xmm0 + por %xmm3,%xmm1 + movdqa -64(%r12),%xmm4 + movdqa -48(%r12),%xmm5 + movdqa -32(%r12),%xmm2 + pand 176(%r10),%xmm4 + movdqa -16(%r12),%xmm3 + pand 192(%r10),%xmm5 + por %xmm4,%xmm0 + pand 208(%r10),%xmm2 + por %xmm5,%xmm1 + pand 224(%r10),%xmm3 + por %xmm2,%xmm0 + por %xmm3,%xmm1 + movdqa 0(%r12),%xmm4 + movdqa 16(%r12),%xmm5 + movdqa 32(%r12),%xmm2 + pand 240(%r10),%xmm4 + movdqa 48(%r12),%xmm3 + pand 256(%r10),%xmm5 + por %xmm4,%xmm0 + pand 272(%r10),%xmm2 + por %xmm5,%xmm1 + pand 288(%r10),%xmm3 + por %xmm2,%xmm0 + por %xmm3,%xmm1 + por %xmm1,%xmm0 + pshufd $0x4e,%xmm0,%xmm1 + por %xmm1,%xmm0 + leaq 256(%r12),%r12 +.byte 102,72,15,126,195 + + movq %r13,16+8(%rsp) + movq %rdi,56+8(%rsp) + + movq (%r8),%r8 + movq (%rsi),%rax + leaq (%rsi,%r9,1),%rsi + negq %r9 + + movq %r8,%rbp + mulq %rbx + movq %rax,%r10 + movq (%rcx),%rax + + imulq %r10,%rbp + leaq 64+8(%rsp),%r14 + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r10 + movq 8(%rsi,%r9,1),%rax + adcq $0,%rdx + movq %rdx,%rdi + + mulq %rbx + addq %rax,%r11 + movq 8(%rcx),%rax + adcq $0,%rdx + movq %rdx,%r10 + + mulq %rbp + addq %rax,%rdi + movq 16(%rsi,%r9,1),%rax + adcq $0,%rdx + addq %r11,%rdi + leaq 32(%r9),%r15 + leaq 32(%rcx),%rcx + adcq $0,%rdx + movq %rdi,(%r14) + movq %rdx,%r13 + jmp L$1st4x + +.p2align 5 +L$1st4x: + mulq %rbx + addq %rax,%r10 + movq -16(%rcx),%rax + leaq 32(%r14),%r14 + adcq $0,%rdx + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r13 + movq -8(%rsi,%r15,1),%rax + adcq $0,%rdx + addq %r10,%r13 + adcq $0,%rdx + movq %r13,-24(%r14) + movq %rdx,%rdi + + mulq %rbx + addq %rax,%r11 + movq -8(%rcx),%rax + adcq $0,%rdx + movq %rdx,%r10 + + mulq %rbp + addq %rax,%rdi + movq (%rsi,%r15,1),%rax + adcq $0,%rdx + addq %r11,%rdi + adcq $0,%rdx + movq %rdi,-16(%r14) + movq %rdx,%r13 + + mulq %rbx + addq %rax,%r10 + movq 0(%rcx),%rax + adcq $0,%rdx + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r13 + movq 8(%rsi,%r15,1),%rax + adcq $0,%rdx + addq %r10,%r13 + adcq $0,%rdx + movq %r13,-8(%r14) + movq %rdx,%rdi + + mulq %rbx + addq %rax,%r11 + movq 8(%rcx),%rax + adcq $0,%rdx + movq %rdx,%r10 + + mulq %rbp + addq %rax,%rdi + movq 16(%rsi,%r15,1),%rax + adcq $0,%rdx + addq %r11,%rdi + leaq 32(%rcx),%rcx + adcq $0,%rdx + movq %rdi,(%r14) + movq %rdx,%r13 + + addq $32,%r15 + jnz L$1st4x + + mulq %rbx + addq %rax,%r10 + movq -16(%rcx),%rax + leaq 32(%r14),%r14 + adcq $0,%rdx + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r13 + movq -8(%rsi),%rax + adcq $0,%rdx + addq %r10,%r13 + adcq $0,%rdx + movq %r13,-24(%r14) + movq %rdx,%rdi + + mulq %rbx + addq %rax,%r11 + movq -8(%rcx),%rax + adcq $0,%rdx + movq %rdx,%r10 + + mulq %rbp + addq %rax,%rdi + movq (%rsi,%r9,1),%rax + adcq $0,%rdx + addq %r11,%rdi + adcq $0,%rdx + movq %rdi,-16(%r14) + movq %rdx,%r13 + + leaq (%rcx,%r9,1),%rcx + + xorq %rdi,%rdi + addq %r10,%r13 + adcq $0,%rdi + movq %r13,-8(%r14) + + jmp L$outer4x + +.p2align 5 +L$outer4x: + leaq 16+128(%r14),%rdx + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + movdqa -128(%r12),%xmm0 + movdqa -112(%r12),%xmm1 + movdqa -96(%r12),%xmm2 + movdqa -80(%r12),%xmm3 + pand -128(%rdx),%xmm0 + pand -112(%rdx),%xmm1 + por %xmm0,%xmm4 + pand -96(%rdx),%xmm2 + por %xmm1,%xmm5 + pand -80(%rdx),%xmm3 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + movdqa -64(%r12),%xmm0 + movdqa -48(%r12),%xmm1 + movdqa -32(%r12),%xmm2 + movdqa -16(%r12),%xmm3 + pand -64(%rdx),%xmm0 + pand -48(%rdx),%xmm1 + por %xmm0,%xmm4 + pand -32(%rdx),%xmm2 + por %xmm1,%xmm5 + pand -16(%rdx),%xmm3 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + movdqa 0(%r12),%xmm0 + movdqa 16(%r12),%xmm1 + movdqa 32(%r12),%xmm2 + movdqa 48(%r12),%xmm3 + pand 0(%rdx),%xmm0 + pand 16(%rdx),%xmm1 + por %xmm0,%xmm4 + pand 32(%rdx),%xmm2 + por %xmm1,%xmm5 + pand 48(%rdx),%xmm3 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + movdqa 64(%r12),%xmm0 + movdqa 80(%r12),%xmm1 + movdqa 96(%r12),%xmm2 + movdqa 112(%r12),%xmm3 + pand 64(%rdx),%xmm0 + pand 80(%rdx),%xmm1 + por %xmm0,%xmm4 + pand 96(%rdx),%xmm2 + por %xmm1,%xmm5 + pand 112(%rdx),%xmm3 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + por %xmm5,%xmm4 + pshufd $0x4e,%xmm4,%xmm0 + por %xmm4,%xmm0 + leaq 256(%r12),%r12 +.byte 102,72,15,126,195 + + movq (%r14,%r9,1),%r10 + movq %r8,%rbp + mulq %rbx + addq %rax,%r10 + movq (%rcx),%rax + adcq $0,%rdx + + imulq %r10,%rbp + movq %rdx,%r11 + movq %rdi,(%r14) + + leaq (%r14,%r9,1),%r14 + + mulq %rbp + addq %rax,%r10 + movq 8(%rsi,%r9,1),%rax + adcq $0,%rdx + movq %rdx,%rdi + + mulq %rbx + addq %rax,%r11 + movq 8(%rcx),%rax + adcq $0,%rdx + addq 8(%r14),%r11 + adcq $0,%rdx + movq %rdx,%r10 + + mulq %rbp + addq %rax,%rdi + movq 16(%rsi,%r9,1),%rax + adcq $0,%rdx + addq %r11,%rdi + leaq 32(%r9),%r15 + leaq 32(%rcx),%rcx + adcq $0,%rdx + movq %rdx,%r13 + jmp L$inner4x + +.p2align 5 +L$inner4x: + mulq %rbx + addq %rax,%r10 + movq -16(%rcx),%rax + adcq $0,%rdx + addq 16(%r14),%r10 + leaq 32(%r14),%r14 + adcq $0,%rdx + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r13 + movq -8(%rsi,%r15,1),%rax + adcq $0,%rdx + addq %r10,%r13 + adcq $0,%rdx + movq %rdi,-32(%r14) + movq %rdx,%rdi + + mulq %rbx + addq %rax,%r11 + movq -8(%rcx),%rax + adcq $0,%rdx + addq -8(%r14),%r11 + adcq $0,%rdx + movq %rdx,%r10 + + mulq %rbp + addq %rax,%rdi + movq (%rsi,%r15,1),%rax + adcq $0,%rdx + addq %r11,%rdi + adcq $0,%rdx + movq %r13,-24(%r14) + movq %rdx,%r13 + + mulq %rbx + addq %rax,%r10 + movq 0(%rcx),%rax + adcq $0,%rdx + addq (%r14),%r10 + adcq $0,%rdx + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r13 + movq 8(%rsi,%r15,1),%rax + adcq $0,%rdx + addq %r10,%r13 + adcq $0,%rdx + movq %rdi,-16(%r14) + movq %rdx,%rdi + + mulq %rbx + addq %rax,%r11 + movq 8(%rcx),%rax + adcq $0,%rdx + addq 8(%r14),%r11 + adcq $0,%rdx + movq %rdx,%r10 + + mulq %rbp + addq %rax,%rdi + movq 16(%rsi,%r15,1),%rax + adcq $0,%rdx + addq %r11,%rdi + leaq 32(%rcx),%rcx + adcq $0,%rdx + movq %r13,-8(%r14) + movq %rdx,%r13 + + addq $32,%r15 + jnz L$inner4x + + mulq %rbx + addq %rax,%r10 + movq -16(%rcx),%rax + adcq $0,%rdx + addq 16(%r14),%r10 + leaq 32(%r14),%r14 + adcq $0,%rdx + movq %rdx,%r11 + + mulq %rbp + addq %rax,%r13 + movq -8(%rsi),%rax + adcq $0,%rdx + addq %r10,%r13 + adcq $0,%rdx + movq %rdi,-32(%r14) + movq %rdx,%rdi + + mulq %rbx + addq %rax,%r11 + movq %rbp,%rax + movq -8(%rcx),%rbp + adcq $0,%rdx + addq -8(%r14),%r11 + adcq $0,%rdx + movq %rdx,%r10 + + mulq %rbp + addq %rax,%rdi + movq (%rsi,%r9,1),%rax + adcq $0,%rdx + addq %r11,%rdi + adcq $0,%rdx + movq %r13,-24(%r14) + movq %rdx,%r13 + + movq %rdi,-16(%r14) + leaq (%rcx,%r9,1),%rcx + + xorq %rdi,%rdi + addq %r10,%r13 + adcq $0,%rdi + addq (%r14),%r13 + adcq $0,%rdi + movq %r13,-8(%r14) + + cmpq 16+8(%rsp),%r12 + jb L$outer4x + xorq %rax,%rax + subq %r13,%rbp + adcq %r15,%r15 + orq %r15,%rdi + subq %rdi,%rax + leaq (%r14,%r9,1),%rbx + movq (%rcx),%r12 + leaq (%rcx),%rbp + movq %r9,%rcx + sarq $3+2,%rcx + movq 56+8(%rsp),%rdi + decq %r12 + xorq %r10,%r10 + movq 8(%rbp),%r13 + movq 16(%rbp),%r14 + movq 24(%rbp),%r15 + jmp L$sqr4x_sub_entry + + +.globl _bn_power5 + +.p2align 5 +_bn_power5: + + movq %rsp,%rax + + movl _OPENSSL_ia32cap_P+8(%rip),%r11d + andl $0x80108,%r11d + cmpl $0x80108,%r11d + je L$powerx5_enter + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + +L$power5_prologue: + + shll $3,%r9d + leal (%r9,%r9,2),%r10d + negq %r9 + movq (%r8),%r8 + + + + + + + + + leaq -320(%rsp,%r9,2),%r11 + movq %rsp,%rbp + subq %rdi,%r11 + andq $4095,%r11 + cmpq %r11,%r10 + jb L$pwr_sp_alt + subq %r11,%rbp + leaq -320(%rbp,%r9,2),%rbp + jmp L$pwr_sp_done + +.p2align 5 +L$pwr_sp_alt: + leaq 4096-320(,%r9,2),%r10 + leaq -320(%rbp,%r9,2),%rbp + subq %r10,%r11 + movq $0,%r10 + cmovcq %r10,%r11 + subq %r11,%rbp +L$pwr_sp_done: + andq $-64,%rbp + movq %rsp,%r11 + subq %rbp,%r11 + andq $-4096,%r11 + leaq (%r11,%rbp,1),%rsp + movq (%rsp),%r10 + cmpq %rbp,%rsp + ja L$pwr_page_walk + jmp L$pwr_page_walk_done + +L$pwr_page_walk: + leaq -4096(%rsp),%rsp + movq (%rsp),%r10 + cmpq %rbp,%rsp + ja L$pwr_page_walk +L$pwr_page_walk_done: + + movq %r9,%r10 + negq %r9 + + + + + + + + + + + movq %r8,32(%rsp) + movq %rax,40(%rsp) + +L$power5_body: +.byte 102,72,15,110,207 +.byte 102,72,15,110,209 +.byte 102,73,15,110,218 +.byte 102,72,15,110,226 + + call __bn_sqr8x_internal + call __bn_post4x_internal + call __bn_sqr8x_internal + call __bn_post4x_internal + call __bn_sqr8x_internal + call __bn_post4x_internal + call __bn_sqr8x_internal + call __bn_post4x_internal + call __bn_sqr8x_internal + call __bn_post4x_internal + +.byte 102,72,15,126,209 +.byte 102,72,15,126,226 + movq %rsi,%rdi + movq 40(%rsp),%rax + leaq 32(%rsp),%r8 + + call mul4x_internal + + movq 40(%rsp),%rsi + + movq $1,%rax + movq -48(%rsi),%r15 + + movq -40(%rsi),%r14 + + movq -32(%rsi),%r13 + + movq -24(%rsi),%r12 + + movq -16(%rsi),%rbp + + movq -8(%rsi),%rbx + + leaq (%rsi),%rsp + +L$power5_epilogue: + .byte 0xf3,0xc3 + + + +.globl _bn_sqr8x_internal +.private_extern _bn_sqr8x_internal + +.p2align 5 +_bn_sqr8x_internal: +__bn_sqr8x_internal: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + leaq 32(%r10),%rbp + leaq (%rsi,%r9,1),%rsi + + movq %r9,%rcx + + + movq -32(%rsi,%rbp,1),%r14 + leaq 48+8(%rsp,%r9,2),%rdi + movq -24(%rsi,%rbp,1),%rax + leaq -32(%rdi,%rbp,1),%rdi + movq -16(%rsi,%rbp,1),%rbx + movq %rax,%r15 + + mulq %r14 + movq %rax,%r10 + movq %rbx,%rax + movq %rdx,%r11 + movq %r10,-24(%rdi,%rbp,1) + + mulq %r14 + addq %rax,%r11 + movq %rbx,%rax + adcq $0,%rdx + movq %r11,-16(%rdi,%rbp,1) + movq %rdx,%r10 + + + movq -8(%rsi,%rbp,1),%rbx + mulq %r15 + movq %rax,%r12 + movq %rbx,%rax + movq %rdx,%r13 + + leaq (%rbp),%rcx + mulq %r14 + addq %rax,%r10 + movq %rbx,%rax + movq %rdx,%r11 + adcq $0,%r11 + addq %r12,%r10 + adcq $0,%r11 + movq %r10,-8(%rdi,%rcx,1) + jmp L$sqr4x_1st + +.p2align 5 +L$sqr4x_1st: + movq (%rsi,%rcx,1),%rbx + mulq %r15 + addq %rax,%r13 + movq %rbx,%rax + movq %rdx,%r12 + adcq $0,%r12 + + mulq %r14 + addq %rax,%r11 + movq %rbx,%rax + movq 8(%rsi,%rcx,1),%rbx + movq %rdx,%r10 + adcq $0,%r10 + addq %r13,%r11 + adcq $0,%r10 + + + mulq %r15 + addq %rax,%r12 + movq %rbx,%rax + movq %r11,(%rdi,%rcx,1) + movq %rdx,%r13 + adcq $0,%r13 + + mulq %r14 + addq %rax,%r10 + movq %rbx,%rax + movq 16(%rsi,%rcx,1),%rbx + movq %rdx,%r11 + adcq $0,%r11 + addq %r12,%r10 + adcq $0,%r11 + + mulq %r15 + addq %rax,%r13 + movq %rbx,%rax + movq %r10,8(%rdi,%rcx,1) + movq %rdx,%r12 + adcq $0,%r12 + + mulq %r14 + addq %rax,%r11 + movq %rbx,%rax + movq 24(%rsi,%rcx,1),%rbx + movq %rdx,%r10 + adcq $0,%r10 + addq %r13,%r11 + adcq $0,%r10 + + + mulq %r15 + addq %rax,%r12 + movq %rbx,%rax + movq %r11,16(%rdi,%rcx,1) + movq %rdx,%r13 + adcq $0,%r13 + leaq 32(%rcx),%rcx + + mulq %r14 + addq %rax,%r10 + movq %rbx,%rax + movq %rdx,%r11 + adcq $0,%r11 + addq %r12,%r10 + adcq $0,%r11 + movq %r10,-8(%rdi,%rcx,1) + + cmpq $0,%rcx + jne L$sqr4x_1st + + mulq %r15 + addq %rax,%r13 + leaq 16(%rbp),%rbp + adcq $0,%rdx + addq %r11,%r13 + adcq $0,%rdx + + movq %r13,(%rdi) + movq %rdx,%r12 + movq %rdx,8(%rdi) + jmp L$sqr4x_outer + +.p2align 5 +L$sqr4x_outer: + movq -32(%rsi,%rbp,1),%r14 + leaq 48+8(%rsp,%r9,2),%rdi + movq -24(%rsi,%rbp,1),%rax + leaq -32(%rdi,%rbp,1),%rdi + movq -16(%rsi,%rbp,1),%rbx + movq %rax,%r15 + + mulq %r14 + movq -24(%rdi,%rbp,1),%r10 + addq %rax,%r10 + movq %rbx,%rax + adcq $0,%rdx + movq %r10,-24(%rdi,%rbp,1) + movq %rdx,%r11 + + mulq %r14 + addq %rax,%r11 + movq %rbx,%rax + adcq $0,%rdx + addq -16(%rdi,%rbp,1),%r11 + movq %rdx,%r10 + adcq $0,%r10 + movq %r11,-16(%rdi,%rbp,1) + + xorq %r12,%r12 + + movq -8(%rsi,%rbp,1),%rbx + mulq %r15 + addq %rax,%r12 + movq %rbx,%rax + adcq $0,%rdx + addq -8(%rdi,%rbp,1),%r12 + movq %rdx,%r13 + adcq $0,%r13 + + mulq %r14 + addq %rax,%r10 + movq %rbx,%rax + adcq $0,%rdx + addq %r12,%r10 + movq %rdx,%r11 + adcq $0,%r11 + movq %r10,-8(%rdi,%rbp,1) + + leaq (%rbp),%rcx + jmp L$sqr4x_inner + +.p2align 5 +L$sqr4x_inner: + movq (%rsi,%rcx,1),%rbx + mulq %r15 + addq %rax,%r13 + movq %rbx,%rax + movq %rdx,%r12 + adcq $0,%r12 + addq (%rdi,%rcx,1),%r13 + adcq $0,%r12 + +.byte 0x67 + mulq %r14 + addq %rax,%r11 + movq %rbx,%rax + movq 8(%rsi,%rcx,1),%rbx + movq %rdx,%r10 + adcq $0,%r10 + addq %r13,%r11 + adcq $0,%r10 + + mulq %r15 + addq %rax,%r12 + movq %r11,(%rdi,%rcx,1) + movq %rbx,%rax + movq %rdx,%r13 + adcq $0,%r13 + addq 8(%rdi,%rcx,1),%r12 + leaq 16(%rcx),%rcx + adcq $0,%r13 + + mulq %r14 + addq %rax,%r10 + movq %rbx,%rax + adcq $0,%rdx + addq %r12,%r10 + movq %rdx,%r11 + adcq $0,%r11 + movq %r10,-8(%rdi,%rcx,1) + + cmpq $0,%rcx + jne L$sqr4x_inner + +.byte 0x67 + mulq %r15 + addq %rax,%r13 + adcq $0,%rdx + addq %r11,%r13 + adcq $0,%rdx + + movq %r13,(%rdi) + movq %rdx,%r12 + movq %rdx,8(%rdi) + + addq $16,%rbp + jnz L$sqr4x_outer + + + movq -32(%rsi),%r14 + leaq 48+8(%rsp,%r9,2),%rdi + movq -24(%rsi),%rax + leaq -32(%rdi,%rbp,1),%rdi + movq -16(%rsi),%rbx + movq %rax,%r15 + + mulq %r14 + addq %rax,%r10 + movq %rbx,%rax + movq %rdx,%r11 + adcq $0,%r11 + + mulq %r14 + addq %rax,%r11 + movq %rbx,%rax + movq %r10,-24(%rdi) + movq %rdx,%r10 + adcq $0,%r10 + addq %r13,%r11 + movq -8(%rsi),%rbx + adcq $0,%r10 + + mulq %r15 + addq %rax,%r12 + movq %rbx,%rax + movq %r11,-16(%rdi) + movq %rdx,%r13 + adcq $0,%r13 + + mulq %r14 + addq %rax,%r10 + movq %rbx,%rax + movq %rdx,%r11 + adcq $0,%r11 + addq %r12,%r10 + adcq $0,%r11 + movq %r10,-8(%rdi) + + mulq %r15 + addq %rax,%r13 + movq -16(%rsi),%rax + adcq $0,%rdx + addq %r11,%r13 + adcq $0,%rdx + + movq %r13,(%rdi) + movq %rdx,%r12 + movq %rdx,8(%rdi) + + mulq %rbx + addq $16,%rbp + xorq %r14,%r14 + subq %r9,%rbp + xorq %r15,%r15 + + addq %r12,%rax + adcq $0,%rdx + movq %rax,8(%rdi) + movq %rdx,16(%rdi) + movq %r15,24(%rdi) + + movq -16(%rsi,%rbp,1),%rax + leaq 48+8(%rsp),%rdi + xorq %r10,%r10 + movq 8(%rdi),%r11 + + leaq (%r14,%r10,2),%r12 + shrq $63,%r10 + leaq (%rcx,%r11,2),%r13 + shrq $63,%r11 + orq %r10,%r13 + movq 16(%rdi),%r10 + movq %r11,%r14 + mulq %rax + negq %r15 + movq 24(%rdi),%r11 + adcq %rax,%r12 + movq -8(%rsi,%rbp,1),%rax + movq %r12,(%rdi) + adcq %rdx,%r13 + + leaq (%r14,%r10,2),%rbx + movq %r13,8(%rdi) + sbbq %r15,%r15 + shrq $63,%r10 + leaq (%rcx,%r11,2),%r8 + shrq $63,%r11 + orq %r10,%r8 + movq 32(%rdi),%r10 + movq %r11,%r14 + mulq %rax + negq %r15 + movq 40(%rdi),%r11 + adcq %rax,%rbx + movq 0(%rsi,%rbp,1),%rax + movq %rbx,16(%rdi) + adcq %rdx,%r8 + leaq 16(%rbp),%rbp + movq %r8,24(%rdi) + sbbq %r15,%r15 + leaq 64(%rdi),%rdi + jmp L$sqr4x_shift_n_add + +.p2align 5 +L$sqr4x_shift_n_add: + leaq (%r14,%r10,2),%r12 + shrq $63,%r10 + leaq (%rcx,%r11,2),%r13 + shrq $63,%r11 + orq %r10,%r13 + movq -16(%rdi),%r10 + movq %r11,%r14 + mulq %rax + negq %r15 + movq -8(%rdi),%r11 + adcq %rax,%r12 + movq -8(%rsi,%rbp,1),%rax + movq %r12,-32(%rdi) + adcq %rdx,%r13 + + leaq (%r14,%r10,2),%rbx + movq %r13,-24(%rdi) + sbbq %r15,%r15 + shrq $63,%r10 + leaq (%rcx,%r11,2),%r8 + shrq $63,%r11 + orq %r10,%r8 + movq 0(%rdi),%r10 + movq %r11,%r14 + mulq %rax + negq %r15 + movq 8(%rdi),%r11 + adcq %rax,%rbx + movq 0(%rsi,%rbp,1),%rax + movq %rbx,-16(%rdi) + adcq %rdx,%r8 + + leaq (%r14,%r10,2),%r12 + movq %r8,-8(%rdi) + sbbq %r15,%r15 + shrq $63,%r10 + leaq (%rcx,%r11,2),%r13 + shrq $63,%r11 + orq %r10,%r13 + movq 16(%rdi),%r10 + movq %r11,%r14 + mulq %rax + negq %r15 + movq 24(%rdi),%r11 + adcq %rax,%r12 + movq 8(%rsi,%rbp,1),%rax + movq %r12,0(%rdi) + adcq %rdx,%r13 + + leaq (%r14,%r10,2),%rbx + movq %r13,8(%rdi) + sbbq %r15,%r15 + shrq $63,%r10 + leaq (%rcx,%r11,2),%r8 + shrq $63,%r11 + orq %r10,%r8 + movq 32(%rdi),%r10 + movq %r11,%r14 + mulq %rax + negq %r15 + movq 40(%rdi),%r11 + adcq %rax,%rbx + movq 16(%rsi,%rbp,1),%rax + movq %rbx,16(%rdi) + adcq %rdx,%r8 + movq %r8,24(%rdi) + sbbq %r15,%r15 + leaq 64(%rdi),%rdi + addq $32,%rbp + jnz L$sqr4x_shift_n_add + + leaq (%r14,%r10,2),%r12 +.byte 0x67 + shrq $63,%r10 + leaq (%rcx,%r11,2),%r13 + shrq $63,%r11 + orq %r10,%r13 + movq -16(%rdi),%r10 + movq %r11,%r14 + mulq %rax + negq %r15 + movq -8(%rdi),%r11 + adcq %rax,%r12 + movq -8(%rsi),%rax + movq %r12,-32(%rdi) + adcq %rdx,%r13 + + leaq (%r14,%r10,2),%rbx + movq %r13,-24(%rdi) + sbbq %r15,%r15 + shrq $63,%r10 + leaq (%rcx,%r11,2),%r8 + shrq $63,%r11 + orq %r10,%r8 + mulq %rax + negq %r15 + adcq %rax,%rbx + adcq %rdx,%r8 + movq %rbx,-16(%rdi) + movq %r8,-8(%rdi) +.byte 102,72,15,126,213 +__bn_sqr8x_reduction: + xorq %rax,%rax + leaq (%r9,%rbp,1),%rcx + leaq 48+8(%rsp,%r9,2),%rdx + movq %rcx,0+8(%rsp) + leaq 48+8(%rsp,%r9,1),%rdi + movq %rdx,8+8(%rsp) + negq %r9 + jmp L$8x_reduction_loop + +.p2align 5 +L$8x_reduction_loop: + leaq (%rdi,%r9,1),%rdi +.byte 0x66 + movq 0(%rdi),%rbx + movq 8(%rdi),%r9 + movq 16(%rdi),%r10 + movq 24(%rdi),%r11 + movq 32(%rdi),%r12 + movq 40(%rdi),%r13 + movq 48(%rdi),%r14 + movq 56(%rdi),%r15 + movq %rax,(%rdx) + leaq 64(%rdi),%rdi + +.byte 0x67 + movq %rbx,%r8 + imulq 32+8(%rsp),%rbx + movq 0(%rbp),%rax + movl $8,%ecx + jmp L$8x_reduce + +.p2align 5 +L$8x_reduce: + mulq %rbx + movq 8(%rbp),%rax + negq %r8 + movq %rdx,%r8 + adcq $0,%r8 + + mulq %rbx + addq %rax,%r9 + movq 16(%rbp),%rax + adcq $0,%rdx + addq %r9,%r8 + movq %rbx,48-8+8(%rsp,%rcx,8) + movq %rdx,%r9 + adcq $0,%r9 + + mulq %rbx + addq %rax,%r10 + movq 24(%rbp),%rax + adcq $0,%rdx + addq %r10,%r9 + movq 32+8(%rsp),%rsi + movq %rdx,%r10 + adcq $0,%r10 + + mulq %rbx + addq %rax,%r11 + movq 32(%rbp),%rax + adcq $0,%rdx + imulq %r8,%rsi + addq %r11,%r10 + movq %rdx,%r11 + adcq $0,%r11 + + mulq %rbx + addq %rax,%r12 + movq 40(%rbp),%rax + adcq $0,%rdx + addq %r12,%r11 + movq %rdx,%r12 + adcq $0,%r12 + + mulq %rbx + addq %rax,%r13 + movq 48(%rbp),%rax + adcq $0,%rdx + addq %r13,%r12 + movq %rdx,%r13 + adcq $0,%r13 + + mulq %rbx + addq %rax,%r14 + movq 56(%rbp),%rax + adcq $0,%rdx + addq %r14,%r13 + movq %rdx,%r14 + adcq $0,%r14 + + mulq %rbx + movq %rsi,%rbx + addq %rax,%r15 + movq 0(%rbp),%rax + adcq $0,%rdx + addq %r15,%r14 + movq %rdx,%r15 + adcq $0,%r15 + + decl %ecx + jnz L$8x_reduce + + leaq 64(%rbp),%rbp + xorq %rax,%rax + movq 8+8(%rsp),%rdx + cmpq 0+8(%rsp),%rbp + jae L$8x_no_tail + +.byte 0x66 + addq 0(%rdi),%r8 + adcq 8(%rdi),%r9 + adcq 16(%rdi),%r10 + adcq 24(%rdi),%r11 + adcq 32(%rdi),%r12 + adcq 40(%rdi),%r13 + adcq 48(%rdi),%r14 + adcq 56(%rdi),%r15 + sbbq %rsi,%rsi + + movq 48+56+8(%rsp),%rbx + movl $8,%ecx + movq 0(%rbp),%rax + jmp L$8x_tail + +.p2align 5 +L$8x_tail: + mulq %rbx + addq %rax,%r8 + movq 8(%rbp),%rax + movq %r8,(%rdi) + movq %rdx,%r8 + adcq $0,%r8 + + mulq %rbx + addq %rax,%r9 + movq 16(%rbp),%rax + adcq $0,%rdx + addq %r9,%r8 + leaq 8(%rdi),%rdi + movq %rdx,%r9 + adcq $0,%r9 + + mulq %rbx + addq %rax,%r10 + movq 24(%rbp),%rax + adcq $0,%rdx + addq %r10,%r9 + movq %rdx,%r10 + adcq $0,%r10 + + mulq %rbx + addq %rax,%r11 + movq 32(%rbp),%rax + adcq $0,%rdx + addq %r11,%r10 + movq %rdx,%r11 + adcq $0,%r11 + + mulq %rbx + addq %rax,%r12 + movq 40(%rbp),%rax + adcq $0,%rdx + addq %r12,%r11 + movq %rdx,%r12 + adcq $0,%r12 + + mulq %rbx + addq %rax,%r13 + movq 48(%rbp),%rax + adcq $0,%rdx + addq %r13,%r12 + movq %rdx,%r13 + adcq $0,%r13 + + mulq %rbx + addq %rax,%r14 + movq 56(%rbp),%rax + adcq $0,%rdx + addq %r14,%r13 + movq %rdx,%r14 + adcq $0,%r14 + + mulq %rbx + movq 48-16+8(%rsp,%rcx,8),%rbx + addq %rax,%r15 + adcq $0,%rdx + addq %r15,%r14 + movq 0(%rbp),%rax + movq %rdx,%r15 + adcq $0,%r15 + + decl %ecx + jnz L$8x_tail + + leaq 64(%rbp),%rbp + movq 8+8(%rsp),%rdx + cmpq 0+8(%rsp),%rbp + jae L$8x_tail_done + + movq 48+56+8(%rsp),%rbx + negq %rsi + movq 0(%rbp),%rax + adcq 0(%rdi),%r8 + adcq 8(%rdi),%r9 + adcq 16(%rdi),%r10 + adcq 24(%rdi),%r11 + adcq 32(%rdi),%r12 + adcq 40(%rdi),%r13 + adcq 48(%rdi),%r14 + adcq 56(%rdi),%r15 + sbbq %rsi,%rsi + + movl $8,%ecx + jmp L$8x_tail + +.p2align 5 +L$8x_tail_done: + xorq %rax,%rax + addq (%rdx),%r8 + adcq $0,%r9 + adcq $0,%r10 + adcq $0,%r11 + adcq $0,%r12 + adcq $0,%r13 + adcq $0,%r14 + adcq $0,%r15 + adcq $0,%rax + + negq %rsi +L$8x_no_tail: + adcq 0(%rdi),%r8 + adcq 8(%rdi),%r9 + adcq 16(%rdi),%r10 + adcq 24(%rdi),%r11 + adcq 32(%rdi),%r12 + adcq 40(%rdi),%r13 + adcq 48(%rdi),%r14 + adcq 56(%rdi),%r15 + adcq $0,%rax + movq -8(%rbp),%rcx + xorq %rsi,%rsi + +.byte 102,72,15,126,213 + + movq %r8,0(%rdi) + movq %r9,8(%rdi) +.byte 102,73,15,126,217 + movq %r10,16(%rdi) + movq %r11,24(%rdi) + movq %r12,32(%rdi) + movq %r13,40(%rdi) + movq %r14,48(%rdi) + movq %r15,56(%rdi) + leaq 64(%rdi),%rdi + + cmpq %rdx,%rdi + jb L$8x_reduction_loop + .byte 0xf3,0xc3 + + + +.p2align 5 +__bn_post4x_internal: + + movq 0(%rbp),%r12 + leaq (%rdi,%r9,1),%rbx + movq %r9,%rcx +.byte 102,72,15,126,207 + negq %rax +.byte 102,72,15,126,206 + sarq $3+2,%rcx + decq %r12 + xorq %r10,%r10 + movq 8(%rbp),%r13 + movq 16(%rbp),%r14 + movq 24(%rbp),%r15 + jmp L$sqr4x_sub_entry + +.p2align 4 +L$sqr4x_sub: + movq 0(%rbp),%r12 + movq 8(%rbp),%r13 + movq 16(%rbp),%r14 + movq 24(%rbp),%r15 +L$sqr4x_sub_entry: + leaq 32(%rbp),%rbp + notq %r12 + notq %r13 + notq %r14 + notq %r15 + andq %rax,%r12 + andq %rax,%r13 + andq %rax,%r14 + andq %rax,%r15 + + negq %r10 + adcq 0(%rbx),%r12 + adcq 8(%rbx),%r13 + adcq 16(%rbx),%r14 + adcq 24(%rbx),%r15 + movq %r12,0(%rdi) + leaq 32(%rbx),%rbx + movq %r13,8(%rdi) + sbbq %r10,%r10 + movq %r14,16(%rdi) + movq %r15,24(%rdi) + leaq 32(%rdi),%rdi + + incq %rcx + jnz L$sqr4x_sub + + movq %r9,%r10 + negq %r9 + .byte 0xf3,0xc3 + + + +.p2align 5 +bn_mulx4x_mont_gather5: + + movq %rsp,%rax + +L$mulx4x_enter: + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + +L$mulx4x_prologue: + + shll $3,%r9d + leaq (%r9,%r9,2),%r10 + negq %r9 + movq (%r8),%r8 + + + + + + + + + + + leaq -320(%rsp,%r9,2),%r11 + movq %rsp,%rbp + subq %rdi,%r11 + andq $4095,%r11 + cmpq %r11,%r10 + jb L$mulx4xsp_alt + subq %r11,%rbp + leaq -320(%rbp,%r9,2),%rbp + jmp L$mulx4xsp_done + +L$mulx4xsp_alt: + leaq 4096-320(,%r9,2),%r10 + leaq -320(%rbp,%r9,2),%rbp + subq %r10,%r11 + movq $0,%r10 + cmovcq %r10,%r11 + subq %r11,%rbp +L$mulx4xsp_done: + andq $-64,%rbp + movq %rsp,%r11 + subq %rbp,%r11 + andq $-4096,%r11 + leaq (%r11,%rbp,1),%rsp + movq (%rsp),%r10 + cmpq %rbp,%rsp + ja L$mulx4x_page_walk + jmp L$mulx4x_page_walk_done + +L$mulx4x_page_walk: + leaq -4096(%rsp),%rsp + movq (%rsp),%r10 + cmpq %rbp,%rsp + ja L$mulx4x_page_walk +L$mulx4x_page_walk_done: + + + + + + + + + + + + + + movq %r8,32(%rsp) + movq %rax,40(%rsp) + +L$mulx4x_body: + call mulx4x_internal + + movq 40(%rsp),%rsi + + movq $1,%rax + + movq -48(%rsi),%r15 + + movq -40(%rsi),%r14 + + movq -32(%rsi),%r13 + + movq -24(%rsi),%r12 + + movq -16(%rsi),%rbp + + movq -8(%rsi),%rbx + + leaq (%rsi),%rsp + +L$mulx4x_epilogue: + .byte 0xf3,0xc3 + + + + +.p2align 5 +mulx4x_internal: + + movq %r9,8(%rsp) + movq %r9,%r10 + negq %r9 + shlq $5,%r9 + negq %r10 + leaq 128(%rdx,%r9,1),%r13 + shrq $5+5,%r9 + movd 8(%rax),%xmm5 + subq $1,%r9 + leaq L$inc(%rip),%rax + movq %r13,16+8(%rsp) + movq %r9,24+8(%rsp) + movq %rdi,56+8(%rsp) + movdqa 0(%rax),%xmm0 + movdqa 16(%rax),%xmm1 + leaq 88-112(%rsp,%r10,1),%r10 + leaq 128(%rdx),%rdi + + pshufd $0,%xmm5,%xmm5 + movdqa %xmm1,%xmm4 +.byte 0x67 + movdqa %xmm1,%xmm2 +.byte 0x67 + paddd %xmm0,%xmm1 + pcmpeqd %xmm5,%xmm0 + movdqa %xmm4,%xmm3 + paddd %xmm1,%xmm2 + pcmpeqd %xmm5,%xmm1 + movdqa %xmm0,112(%r10) + movdqa %xmm4,%xmm0 + + paddd %xmm2,%xmm3 + pcmpeqd %xmm5,%xmm2 + movdqa %xmm1,128(%r10) + movdqa %xmm4,%xmm1 + + paddd %xmm3,%xmm0 + pcmpeqd %xmm5,%xmm3 + movdqa %xmm2,144(%r10) + movdqa %xmm4,%xmm2 + + paddd %xmm0,%xmm1 + pcmpeqd %xmm5,%xmm0 + movdqa %xmm3,160(%r10) + movdqa %xmm4,%xmm3 + paddd %xmm1,%xmm2 + pcmpeqd %xmm5,%xmm1 + movdqa %xmm0,176(%r10) + movdqa %xmm4,%xmm0 + + paddd %xmm2,%xmm3 + pcmpeqd %xmm5,%xmm2 + movdqa %xmm1,192(%r10) + movdqa %xmm4,%xmm1 + + paddd %xmm3,%xmm0 + pcmpeqd %xmm5,%xmm3 + movdqa %xmm2,208(%r10) + movdqa %xmm4,%xmm2 + + paddd %xmm0,%xmm1 + pcmpeqd %xmm5,%xmm0 + movdqa %xmm3,224(%r10) + movdqa %xmm4,%xmm3 + paddd %xmm1,%xmm2 + pcmpeqd %xmm5,%xmm1 + movdqa %xmm0,240(%r10) + movdqa %xmm4,%xmm0 + + paddd %xmm2,%xmm3 + pcmpeqd %xmm5,%xmm2 + movdqa %xmm1,256(%r10) + movdqa %xmm4,%xmm1 + + paddd %xmm3,%xmm0 + pcmpeqd %xmm5,%xmm3 + movdqa %xmm2,272(%r10) + movdqa %xmm4,%xmm2 + + paddd %xmm0,%xmm1 + pcmpeqd %xmm5,%xmm0 + movdqa %xmm3,288(%r10) + movdqa %xmm4,%xmm3 +.byte 0x67 + paddd %xmm1,%xmm2 + pcmpeqd %xmm5,%xmm1 + movdqa %xmm0,304(%r10) + + paddd %xmm2,%xmm3 + pcmpeqd %xmm5,%xmm2 + movdqa %xmm1,320(%r10) + + pcmpeqd %xmm5,%xmm3 + movdqa %xmm2,336(%r10) + + pand 64(%rdi),%xmm0 + pand 80(%rdi),%xmm1 + pand 96(%rdi),%xmm2 + movdqa %xmm3,352(%r10) + pand 112(%rdi),%xmm3 + por %xmm2,%xmm0 + por %xmm3,%xmm1 + movdqa -128(%rdi),%xmm4 + movdqa -112(%rdi),%xmm5 + movdqa -96(%rdi),%xmm2 + pand 112(%r10),%xmm4 + movdqa -80(%rdi),%xmm3 + pand 128(%r10),%xmm5 + por %xmm4,%xmm0 + pand 144(%r10),%xmm2 + por %xmm5,%xmm1 + pand 160(%r10),%xmm3 + por %xmm2,%xmm0 + por %xmm3,%xmm1 + movdqa -64(%rdi),%xmm4 + movdqa -48(%rdi),%xmm5 + movdqa -32(%rdi),%xmm2 + pand 176(%r10),%xmm4 + movdqa -16(%rdi),%xmm3 + pand 192(%r10),%xmm5 + por %xmm4,%xmm0 + pand 208(%r10),%xmm2 + por %xmm5,%xmm1 + pand 224(%r10),%xmm3 + por %xmm2,%xmm0 + por %xmm3,%xmm1 + movdqa 0(%rdi),%xmm4 + movdqa 16(%rdi),%xmm5 + movdqa 32(%rdi),%xmm2 + pand 240(%r10),%xmm4 + movdqa 48(%rdi),%xmm3 + pand 256(%r10),%xmm5 + por %xmm4,%xmm0 + pand 272(%r10),%xmm2 + por %xmm5,%xmm1 + pand 288(%r10),%xmm3 + por %xmm2,%xmm0 + por %xmm3,%xmm1 + pxor %xmm1,%xmm0 + pshufd $0x4e,%xmm0,%xmm1 + por %xmm1,%xmm0 + leaq 256(%rdi),%rdi +.byte 102,72,15,126,194 + leaq 64+32+8(%rsp),%rbx + + movq %rdx,%r9 + mulxq 0(%rsi),%r8,%rax + mulxq 8(%rsi),%r11,%r12 + addq %rax,%r11 + mulxq 16(%rsi),%rax,%r13 + adcq %rax,%r12 + adcq $0,%r13 + mulxq 24(%rsi),%rax,%r14 + + movq %r8,%r15 + imulq 32+8(%rsp),%r8 + xorq %rbp,%rbp + movq %r8,%rdx + + movq %rdi,8+8(%rsp) + + leaq 32(%rsi),%rsi + adcxq %rax,%r13 + adcxq %rbp,%r14 + + mulxq 0(%rcx),%rax,%r10 + adcxq %rax,%r15 + adoxq %r11,%r10 + mulxq 8(%rcx),%rax,%r11 + adcxq %rax,%r10 + adoxq %r12,%r11 + mulxq 16(%rcx),%rax,%r12 + movq 24+8(%rsp),%rdi + movq %r10,-32(%rbx) + adcxq %rax,%r11 + adoxq %r13,%r12 + mulxq 24(%rcx),%rax,%r15 + movq %r9,%rdx + movq %r11,-24(%rbx) + adcxq %rax,%r12 + adoxq %rbp,%r15 + leaq 32(%rcx),%rcx + movq %r12,-16(%rbx) + jmp L$mulx4x_1st + +.p2align 5 +L$mulx4x_1st: + adcxq %rbp,%r15 + mulxq 0(%rsi),%r10,%rax + adcxq %r14,%r10 + mulxq 8(%rsi),%r11,%r14 + adcxq %rax,%r11 + mulxq 16(%rsi),%r12,%rax + adcxq %r14,%r12 + mulxq 24(%rsi),%r13,%r14 +.byte 0x67,0x67 + movq %r8,%rdx + adcxq %rax,%r13 + adcxq %rbp,%r14 + leaq 32(%rsi),%rsi + leaq 32(%rbx),%rbx + + adoxq %r15,%r10 + mulxq 0(%rcx),%rax,%r15 + adcxq %rax,%r10 + adoxq %r15,%r11 + mulxq 8(%rcx),%rax,%r15 + adcxq %rax,%r11 + adoxq %r15,%r12 + mulxq 16(%rcx),%rax,%r15 + movq %r10,-40(%rbx) + adcxq %rax,%r12 + movq %r11,-32(%rbx) + adoxq %r15,%r13 + mulxq 24(%rcx),%rax,%r15 + movq %r9,%rdx + movq %r12,-24(%rbx) + adcxq %rax,%r13 + adoxq %rbp,%r15 + leaq 32(%rcx),%rcx + movq %r13,-16(%rbx) + + decq %rdi + jnz L$mulx4x_1st + + movq 8(%rsp),%rax + adcq %rbp,%r15 + leaq (%rsi,%rax,1),%rsi + addq %r15,%r14 + movq 8+8(%rsp),%rdi + adcq %rbp,%rbp + movq %r14,-8(%rbx) + jmp L$mulx4x_outer + +.p2align 5 +L$mulx4x_outer: + leaq 16-256(%rbx),%r10 + pxor %xmm4,%xmm4 +.byte 0x67,0x67 + pxor %xmm5,%xmm5 + movdqa -128(%rdi),%xmm0 + movdqa -112(%rdi),%xmm1 + movdqa -96(%rdi),%xmm2 + pand 256(%r10),%xmm0 + movdqa -80(%rdi),%xmm3 + pand 272(%r10),%xmm1 + por %xmm0,%xmm4 + pand 288(%r10),%xmm2 + por %xmm1,%xmm5 + pand 304(%r10),%xmm3 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + movdqa -64(%rdi),%xmm0 + movdqa -48(%rdi),%xmm1 + movdqa -32(%rdi),%xmm2 + pand 320(%r10),%xmm0 + movdqa -16(%rdi),%xmm3 + pand 336(%r10),%xmm1 + por %xmm0,%xmm4 + pand 352(%r10),%xmm2 + por %xmm1,%xmm5 + pand 368(%r10),%xmm3 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + movdqa 0(%rdi),%xmm0 + movdqa 16(%rdi),%xmm1 + movdqa 32(%rdi),%xmm2 + pand 384(%r10),%xmm0 + movdqa 48(%rdi),%xmm3 + pand 400(%r10),%xmm1 + por %xmm0,%xmm4 + pand 416(%r10),%xmm2 + por %xmm1,%xmm5 + pand 432(%r10),%xmm3 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + movdqa 64(%rdi),%xmm0 + movdqa 80(%rdi),%xmm1 + movdqa 96(%rdi),%xmm2 + pand 448(%r10),%xmm0 + movdqa 112(%rdi),%xmm3 + pand 464(%r10),%xmm1 + por %xmm0,%xmm4 + pand 480(%r10),%xmm2 + por %xmm1,%xmm5 + pand 496(%r10),%xmm3 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + por %xmm5,%xmm4 + pshufd $0x4e,%xmm4,%xmm0 + por %xmm4,%xmm0 + leaq 256(%rdi),%rdi +.byte 102,72,15,126,194 + + movq %rbp,(%rbx) + leaq 32(%rbx,%rax,1),%rbx + mulxq 0(%rsi),%r8,%r11 + xorq %rbp,%rbp + movq %rdx,%r9 + mulxq 8(%rsi),%r14,%r12 + adoxq -32(%rbx),%r8 + adcxq %r14,%r11 + mulxq 16(%rsi),%r15,%r13 + adoxq -24(%rbx),%r11 + adcxq %r15,%r12 + mulxq 24(%rsi),%rdx,%r14 + adoxq -16(%rbx),%r12 + adcxq %rdx,%r13 + leaq (%rcx,%rax,1),%rcx + leaq 32(%rsi),%rsi + adoxq -8(%rbx),%r13 + adcxq %rbp,%r14 + adoxq %rbp,%r14 + + movq %r8,%r15 + imulq 32+8(%rsp),%r8 + + movq %r8,%rdx + xorq %rbp,%rbp + movq %rdi,8+8(%rsp) + + mulxq 0(%rcx),%rax,%r10 + adcxq %rax,%r15 + adoxq %r11,%r10 + mulxq 8(%rcx),%rax,%r11 + adcxq %rax,%r10 + adoxq %r12,%r11 + mulxq 16(%rcx),%rax,%r12 + adcxq %rax,%r11 + adoxq %r13,%r12 + mulxq 24(%rcx),%rax,%r15 + movq %r9,%rdx + movq 24+8(%rsp),%rdi + movq %r10,-32(%rbx) + adcxq %rax,%r12 + movq %r11,-24(%rbx) + adoxq %rbp,%r15 + movq %r12,-16(%rbx) + leaq 32(%rcx),%rcx + jmp L$mulx4x_inner + +.p2align 5 +L$mulx4x_inner: + mulxq 0(%rsi),%r10,%rax + adcxq %rbp,%r15 + adoxq %r14,%r10 + mulxq 8(%rsi),%r11,%r14 + adcxq 0(%rbx),%r10 + adoxq %rax,%r11 + mulxq 16(%rsi),%r12,%rax + adcxq 8(%rbx),%r11 + adoxq %r14,%r12 + mulxq 24(%rsi),%r13,%r14 + movq %r8,%rdx + adcxq 16(%rbx),%r12 + adoxq %rax,%r13 + adcxq 24(%rbx),%r13 + adoxq %rbp,%r14 + leaq 32(%rsi),%rsi + leaq 32(%rbx),%rbx + adcxq %rbp,%r14 + + adoxq %r15,%r10 + mulxq 0(%rcx),%rax,%r15 + adcxq %rax,%r10 + adoxq %r15,%r11 + mulxq 8(%rcx),%rax,%r15 + adcxq %rax,%r11 + adoxq %r15,%r12 + mulxq 16(%rcx),%rax,%r15 + movq %r10,-40(%rbx) + adcxq %rax,%r12 + adoxq %r15,%r13 + movq %r11,-32(%rbx) + mulxq 24(%rcx),%rax,%r15 + movq %r9,%rdx + leaq 32(%rcx),%rcx + movq %r12,-24(%rbx) + adcxq %rax,%r13 + adoxq %rbp,%r15 + movq %r13,-16(%rbx) + + decq %rdi + jnz L$mulx4x_inner + + movq 0+8(%rsp),%rax + adcq %rbp,%r15 + subq 0(%rbx),%rdi + movq 8+8(%rsp),%rdi + movq 16+8(%rsp),%r10 + adcq %r15,%r14 + leaq (%rsi,%rax,1),%rsi + adcq %rbp,%rbp + movq %r14,-8(%rbx) + + cmpq %r10,%rdi + jb L$mulx4x_outer + + movq -8(%rcx),%r10 + movq %rbp,%r8 + movq (%rcx,%rax,1),%r12 + leaq (%rcx,%rax,1),%rbp + movq %rax,%rcx + leaq (%rbx,%rax,1),%rdi + xorl %eax,%eax + xorq %r15,%r15 + subq %r14,%r10 + adcq %r15,%r15 + orq %r15,%r8 + sarq $3+2,%rcx + subq %r8,%rax + movq 56+8(%rsp),%rdx + decq %r12 + movq 8(%rbp),%r13 + xorq %r8,%r8 + movq 16(%rbp),%r14 + movq 24(%rbp),%r15 + jmp L$sqrx4x_sub_entry + + + +.p2align 5 +bn_powerx5: + + movq %rsp,%rax + +L$powerx5_enter: + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + +L$powerx5_prologue: + + shll $3,%r9d + leaq (%r9,%r9,2),%r10 + negq %r9 + movq (%r8),%r8 + + + + + + + + + leaq -320(%rsp,%r9,2),%r11 + movq %rsp,%rbp + subq %rdi,%r11 + andq $4095,%r11 + cmpq %r11,%r10 + jb L$pwrx_sp_alt + subq %r11,%rbp + leaq -320(%rbp,%r9,2),%rbp + jmp L$pwrx_sp_done + +.p2align 5 +L$pwrx_sp_alt: + leaq 4096-320(,%r9,2),%r10 + leaq -320(%rbp,%r9,2),%rbp + subq %r10,%r11 + movq $0,%r10 + cmovcq %r10,%r11 + subq %r11,%rbp +L$pwrx_sp_done: + andq $-64,%rbp + movq %rsp,%r11 + subq %rbp,%r11 + andq $-4096,%r11 + leaq (%r11,%rbp,1),%rsp + movq (%rsp),%r10 + cmpq %rbp,%rsp + ja L$pwrx_page_walk + jmp L$pwrx_page_walk_done + +L$pwrx_page_walk: + leaq -4096(%rsp),%rsp + movq (%rsp),%r10 + cmpq %rbp,%rsp + ja L$pwrx_page_walk +L$pwrx_page_walk_done: + + movq %r9,%r10 + negq %r9 + + + + + + + + + + + + + pxor %xmm0,%xmm0 +.byte 102,72,15,110,207 +.byte 102,72,15,110,209 +.byte 102,73,15,110,218 +.byte 102,72,15,110,226 + movq %r8,32(%rsp) + movq %rax,40(%rsp) + +L$powerx5_body: + + call __bn_sqrx8x_internal + call __bn_postx4x_internal + call __bn_sqrx8x_internal + call __bn_postx4x_internal + call __bn_sqrx8x_internal + call __bn_postx4x_internal + call __bn_sqrx8x_internal + call __bn_postx4x_internal + call __bn_sqrx8x_internal + call __bn_postx4x_internal + + movq %r10,%r9 + movq %rsi,%rdi +.byte 102,72,15,126,209 +.byte 102,72,15,126,226 + movq 40(%rsp),%rax + + call mulx4x_internal + + movq 40(%rsp),%rsi + + movq $1,%rax + + movq -48(%rsi),%r15 + + movq -40(%rsi),%r14 + + movq -32(%rsi),%r13 + + movq -24(%rsi),%r12 + + movq -16(%rsi),%rbp + + movq -8(%rsi),%rbx + + leaq (%rsi),%rsp + +L$powerx5_epilogue: + .byte 0xf3,0xc3 + + + +.globl _bn_sqrx8x_internal +.private_extern _bn_sqrx8x_internal + +.p2align 5 +_bn_sqrx8x_internal: +__bn_sqrx8x_internal: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + leaq 48+8(%rsp),%rdi + leaq (%rsi,%r9,1),%rbp + movq %r9,0+8(%rsp) + movq %rbp,8+8(%rsp) + jmp L$sqr8x_zero_start + +.p2align 5 +.byte 0x66,0x66,0x66,0x2e,0x0f,0x1f,0x84,0x00,0x00,0x00,0x00,0x00 +L$sqrx8x_zero: +.byte 0x3e + movdqa %xmm0,0(%rdi) + movdqa %xmm0,16(%rdi) + movdqa %xmm0,32(%rdi) + movdqa %xmm0,48(%rdi) +L$sqr8x_zero_start: + movdqa %xmm0,64(%rdi) + movdqa %xmm0,80(%rdi) + movdqa %xmm0,96(%rdi) + movdqa %xmm0,112(%rdi) + leaq 128(%rdi),%rdi + subq $64,%r9 + jnz L$sqrx8x_zero + + movq 0(%rsi),%rdx + + xorq %r10,%r10 + xorq %r11,%r11 + xorq %r12,%r12 + xorq %r13,%r13 + xorq %r14,%r14 + xorq %r15,%r15 + leaq 48+8(%rsp),%rdi + xorq %rbp,%rbp + jmp L$sqrx8x_outer_loop + +.p2align 5 +L$sqrx8x_outer_loop: + mulxq 8(%rsi),%r8,%rax + adcxq %r9,%r8 + adoxq %rax,%r10 + mulxq 16(%rsi),%r9,%rax + adcxq %r10,%r9 + adoxq %rax,%r11 +.byte 0xc4,0xe2,0xab,0xf6,0x86,0x18,0x00,0x00,0x00 + adcxq %r11,%r10 + adoxq %rax,%r12 +.byte 0xc4,0xe2,0xa3,0xf6,0x86,0x20,0x00,0x00,0x00 + adcxq %r12,%r11 + adoxq %rax,%r13 + mulxq 40(%rsi),%r12,%rax + adcxq %r13,%r12 + adoxq %rax,%r14 + mulxq 48(%rsi),%r13,%rax + adcxq %r14,%r13 + adoxq %r15,%rax + mulxq 56(%rsi),%r14,%r15 + movq 8(%rsi),%rdx + adcxq %rax,%r14 + adoxq %rbp,%r15 + adcq 64(%rdi),%r15 + movq %r8,8(%rdi) + movq %r9,16(%rdi) + sbbq %rcx,%rcx + xorq %rbp,%rbp + + + mulxq 16(%rsi),%r8,%rbx + mulxq 24(%rsi),%r9,%rax + adcxq %r10,%r8 + adoxq %rbx,%r9 + mulxq 32(%rsi),%r10,%rbx + adcxq %r11,%r9 + adoxq %rax,%r10 +.byte 0xc4,0xe2,0xa3,0xf6,0x86,0x28,0x00,0x00,0x00 + adcxq %r12,%r10 + adoxq %rbx,%r11 +.byte 0xc4,0xe2,0x9b,0xf6,0x9e,0x30,0x00,0x00,0x00 + adcxq %r13,%r11 + adoxq %r14,%r12 +.byte 0xc4,0x62,0x93,0xf6,0xb6,0x38,0x00,0x00,0x00 + movq 16(%rsi),%rdx + adcxq %rax,%r12 + adoxq %rbx,%r13 + adcxq %r15,%r13 + adoxq %rbp,%r14 + adcxq %rbp,%r14 + + movq %r8,24(%rdi) + movq %r9,32(%rdi) + + mulxq 24(%rsi),%r8,%rbx + mulxq 32(%rsi),%r9,%rax + adcxq %r10,%r8 + adoxq %rbx,%r9 + mulxq 40(%rsi),%r10,%rbx + adcxq %r11,%r9 + adoxq %rax,%r10 +.byte 0xc4,0xe2,0xa3,0xf6,0x86,0x30,0x00,0x00,0x00 + adcxq %r12,%r10 + adoxq %r13,%r11 +.byte 0xc4,0x62,0x9b,0xf6,0xae,0x38,0x00,0x00,0x00 +.byte 0x3e + movq 24(%rsi),%rdx + adcxq %rbx,%r11 + adoxq %rax,%r12 + adcxq %r14,%r12 + movq %r8,40(%rdi) + movq %r9,48(%rdi) + mulxq 32(%rsi),%r8,%rax + adoxq %rbp,%r13 + adcxq %rbp,%r13 + + mulxq 40(%rsi),%r9,%rbx + adcxq %r10,%r8 + adoxq %rax,%r9 + mulxq 48(%rsi),%r10,%rax + adcxq %r11,%r9 + adoxq %r12,%r10 + mulxq 56(%rsi),%r11,%r12 + movq 32(%rsi),%rdx + movq 40(%rsi),%r14 + adcxq %rbx,%r10 + adoxq %rax,%r11 + movq 48(%rsi),%r15 + adcxq %r13,%r11 + adoxq %rbp,%r12 + adcxq %rbp,%r12 + + movq %r8,56(%rdi) + movq %r9,64(%rdi) + + mulxq %r14,%r9,%rax + movq 56(%rsi),%r8 + adcxq %r10,%r9 + mulxq %r15,%r10,%rbx + adoxq %rax,%r10 + adcxq %r11,%r10 + mulxq %r8,%r11,%rax + movq %r14,%rdx + adoxq %rbx,%r11 + adcxq %r12,%r11 + + adcxq %rbp,%rax + + mulxq %r15,%r14,%rbx + mulxq %r8,%r12,%r13 + movq %r15,%rdx + leaq 64(%rsi),%rsi + adcxq %r14,%r11 + adoxq %rbx,%r12 + adcxq %rax,%r12 + adoxq %rbp,%r13 + +.byte 0x67,0x67 + mulxq %r8,%r8,%r14 + adcxq %r8,%r13 + adcxq %rbp,%r14 + + cmpq 8+8(%rsp),%rsi + je L$sqrx8x_outer_break + + negq %rcx + movq $-8,%rcx + movq %rbp,%r15 + movq 64(%rdi),%r8 + adcxq 72(%rdi),%r9 + adcxq 80(%rdi),%r10 + adcxq 88(%rdi),%r11 + adcq 96(%rdi),%r12 + adcq 104(%rdi),%r13 + adcq 112(%rdi),%r14 + adcq 120(%rdi),%r15 + leaq (%rsi),%rbp + leaq 128(%rdi),%rdi + sbbq %rax,%rax + + movq -64(%rsi),%rdx + movq %rax,16+8(%rsp) + movq %rdi,24+8(%rsp) + + + xorl %eax,%eax + jmp L$sqrx8x_loop + +.p2align 5 +L$sqrx8x_loop: + movq %r8,%rbx + mulxq 0(%rbp),%rax,%r8 + adcxq %rax,%rbx + adoxq %r9,%r8 + + mulxq 8(%rbp),%rax,%r9 + adcxq %rax,%r8 + adoxq %r10,%r9 + + mulxq 16(%rbp),%rax,%r10 + adcxq %rax,%r9 + adoxq %r11,%r10 + + mulxq 24(%rbp),%rax,%r11 + adcxq %rax,%r10 + adoxq %r12,%r11 + +.byte 0xc4,0x62,0xfb,0xf6,0xa5,0x20,0x00,0x00,0x00 + adcxq %rax,%r11 + adoxq %r13,%r12 + + mulxq 40(%rbp),%rax,%r13 + adcxq %rax,%r12 + adoxq %r14,%r13 + + mulxq 48(%rbp),%rax,%r14 + movq %rbx,(%rdi,%rcx,8) + movl $0,%ebx + adcxq %rax,%r13 + adoxq %r15,%r14 + +.byte 0xc4,0x62,0xfb,0xf6,0xbd,0x38,0x00,0x00,0x00 + movq 8(%rsi,%rcx,8),%rdx + adcxq %rax,%r14 + adoxq %rbx,%r15 + adcxq %rbx,%r15 + +.byte 0x67 + incq %rcx + jnz L$sqrx8x_loop + + leaq 64(%rbp),%rbp + movq $-8,%rcx + cmpq 8+8(%rsp),%rbp + je L$sqrx8x_break + + subq 16+8(%rsp),%rbx +.byte 0x66 + movq -64(%rsi),%rdx + adcxq 0(%rdi),%r8 + adcxq 8(%rdi),%r9 + adcq 16(%rdi),%r10 + adcq 24(%rdi),%r11 + adcq 32(%rdi),%r12 + adcq 40(%rdi),%r13 + adcq 48(%rdi),%r14 + adcq 56(%rdi),%r15 + leaq 64(%rdi),%rdi +.byte 0x67 + sbbq %rax,%rax + xorl %ebx,%ebx + movq %rax,16+8(%rsp) + jmp L$sqrx8x_loop + +.p2align 5 +L$sqrx8x_break: + xorq %rbp,%rbp + subq 16+8(%rsp),%rbx + adcxq %rbp,%r8 + movq 24+8(%rsp),%rcx + adcxq %rbp,%r9 + movq 0(%rsi),%rdx + adcq $0,%r10 + movq %r8,0(%rdi) + adcq $0,%r11 + adcq $0,%r12 + adcq $0,%r13 + adcq $0,%r14 + adcq $0,%r15 + cmpq %rcx,%rdi + je L$sqrx8x_outer_loop + + movq %r9,8(%rdi) + movq 8(%rcx),%r9 + movq %r10,16(%rdi) + movq 16(%rcx),%r10 + movq %r11,24(%rdi) + movq 24(%rcx),%r11 + movq %r12,32(%rdi) + movq 32(%rcx),%r12 + movq %r13,40(%rdi) + movq 40(%rcx),%r13 + movq %r14,48(%rdi) + movq 48(%rcx),%r14 + movq %r15,56(%rdi) + movq 56(%rcx),%r15 + movq %rcx,%rdi + jmp L$sqrx8x_outer_loop + +.p2align 5 +L$sqrx8x_outer_break: + movq %r9,72(%rdi) +.byte 102,72,15,126,217 + movq %r10,80(%rdi) + movq %r11,88(%rdi) + movq %r12,96(%rdi) + movq %r13,104(%rdi) + movq %r14,112(%rdi) + leaq 48+8(%rsp),%rdi + movq (%rsi,%rcx,1),%rdx + + movq 8(%rdi),%r11 + xorq %r10,%r10 + movq 0+8(%rsp),%r9 + adoxq %r11,%r11 + movq 16(%rdi),%r12 + movq 24(%rdi),%r13 + + +.p2align 5 +L$sqrx4x_shift_n_add: + mulxq %rdx,%rax,%rbx + adoxq %r12,%r12 + adcxq %r10,%rax +.byte 0x48,0x8b,0x94,0x0e,0x08,0x00,0x00,0x00 +.byte 0x4c,0x8b,0x97,0x20,0x00,0x00,0x00 + adoxq %r13,%r13 + adcxq %r11,%rbx + movq 40(%rdi),%r11 + movq %rax,0(%rdi) + movq %rbx,8(%rdi) + + mulxq %rdx,%rax,%rbx + adoxq %r10,%r10 + adcxq %r12,%rax + movq 16(%rsi,%rcx,1),%rdx + movq 48(%rdi),%r12 + adoxq %r11,%r11 + adcxq %r13,%rbx + movq 56(%rdi),%r13 + movq %rax,16(%rdi) + movq %rbx,24(%rdi) + + mulxq %rdx,%rax,%rbx + adoxq %r12,%r12 + adcxq %r10,%rax + movq 24(%rsi,%rcx,1),%rdx + leaq 32(%rcx),%rcx + movq 64(%rdi),%r10 + adoxq %r13,%r13 + adcxq %r11,%rbx + movq 72(%rdi),%r11 + movq %rax,32(%rdi) + movq %rbx,40(%rdi) + + mulxq %rdx,%rax,%rbx + adoxq %r10,%r10 + adcxq %r12,%rax + jrcxz L$sqrx4x_shift_n_add_break +.byte 0x48,0x8b,0x94,0x0e,0x00,0x00,0x00,0x00 + adoxq %r11,%r11 + adcxq %r13,%rbx + movq 80(%rdi),%r12 + movq 88(%rdi),%r13 + movq %rax,48(%rdi) + movq %rbx,56(%rdi) + leaq 64(%rdi),%rdi + nop + jmp L$sqrx4x_shift_n_add + +.p2align 5 +L$sqrx4x_shift_n_add_break: + adcxq %r13,%rbx + movq %rax,48(%rdi) + movq %rbx,56(%rdi) + leaq 64(%rdi),%rdi +.byte 102,72,15,126,213 +__bn_sqrx8x_reduction: + xorl %eax,%eax + movq 32+8(%rsp),%rbx + movq 48+8(%rsp),%rdx + leaq -64(%rbp,%r9,1),%rcx + + movq %rcx,0+8(%rsp) + movq %rdi,8+8(%rsp) + + leaq 48+8(%rsp),%rdi + jmp L$sqrx8x_reduction_loop + +.p2align 5 +L$sqrx8x_reduction_loop: + movq 8(%rdi),%r9 + movq 16(%rdi),%r10 + movq 24(%rdi),%r11 + movq 32(%rdi),%r12 + movq %rdx,%r8 + imulq %rbx,%rdx + movq 40(%rdi),%r13 + movq 48(%rdi),%r14 + movq 56(%rdi),%r15 + movq %rax,24+8(%rsp) + + leaq 64(%rdi),%rdi + xorq %rsi,%rsi + movq $-8,%rcx + jmp L$sqrx8x_reduce + +.p2align 5 +L$sqrx8x_reduce: + movq %r8,%rbx + mulxq 0(%rbp),%rax,%r8 + adcxq %rbx,%rax + adoxq %r9,%r8 + + mulxq 8(%rbp),%rbx,%r9 + adcxq %rbx,%r8 + adoxq %r10,%r9 + + mulxq 16(%rbp),%rbx,%r10 + adcxq %rbx,%r9 + adoxq %r11,%r10 + + mulxq 24(%rbp),%rbx,%r11 + adcxq %rbx,%r10 + adoxq %r12,%r11 + +.byte 0xc4,0x62,0xe3,0xf6,0xa5,0x20,0x00,0x00,0x00 + movq %rdx,%rax + movq %r8,%rdx + adcxq %rbx,%r11 + adoxq %r13,%r12 + + mulxq 32+8(%rsp),%rbx,%rdx + movq %rax,%rdx + movq %rax,64+48+8(%rsp,%rcx,8) + + mulxq 40(%rbp),%rax,%r13 + adcxq %rax,%r12 + adoxq %r14,%r13 + + mulxq 48(%rbp),%rax,%r14 + adcxq %rax,%r13 + adoxq %r15,%r14 + + mulxq 56(%rbp),%rax,%r15 + movq %rbx,%rdx + adcxq %rax,%r14 + adoxq %rsi,%r15 + adcxq %rsi,%r15 + +.byte 0x67,0x67,0x67 + incq %rcx + jnz L$sqrx8x_reduce + + movq %rsi,%rax + cmpq 0+8(%rsp),%rbp + jae L$sqrx8x_no_tail + + movq 48+8(%rsp),%rdx + addq 0(%rdi),%r8 + leaq 64(%rbp),%rbp + movq $-8,%rcx + adcxq 8(%rdi),%r9 + adcxq 16(%rdi),%r10 + adcq 24(%rdi),%r11 + adcq 32(%rdi),%r12 + adcq 40(%rdi),%r13 + adcq 48(%rdi),%r14 + adcq 56(%rdi),%r15 + leaq 64(%rdi),%rdi + sbbq %rax,%rax + + xorq %rsi,%rsi + movq %rax,16+8(%rsp) + jmp L$sqrx8x_tail + +.p2align 5 +L$sqrx8x_tail: + movq %r8,%rbx + mulxq 0(%rbp),%rax,%r8 + adcxq %rax,%rbx + adoxq %r9,%r8 + + mulxq 8(%rbp),%rax,%r9 + adcxq %rax,%r8 + adoxq %r10,%r9 + + mulxq 16(%rbp),%rax,%r10 + adcxq %rax,%r9 + adoxq %r11,%r10 + + mulxq 24(%rbp),%rax,%r11 + adcxq %rax,%r10 + adoxq %r12,%r11 + +.byte 0xc4,0x62,0xfb,0xf6,0xa5,0x20,0x00,0x00,0x00 + adcxq %rax,%r11 + adoxq %r13,%r12 + + mulxq 40(%rbp),%rax,%r13 + adcxq %rax,%r12 + adoxq %r14,%r13 + + mulxq 48(%rbp),%rax,%r14 + adcxq %rax,%r13 + adoxq %r15,%r14 + + mulxq 56(%rbp),%rax,%r15 + movq 72+48+8(%rsp,%rcx,8),%rdx + adcxq %rax,%r14 + adoxq %rsi,%r15 + movq %rbx,(%rdi,%rcx,8) + movq %r8,%rbx + adcxq %rsi,%r15 + + incq %rcx + jnz L$sqrx8x_tail + + cmpq 0+8(%rsp),%rbp + jae L$sqrx8x_tail_done + + subq 16+8(%rsp),%rsi + movq 48+8(%rsp),%rdx + leaq 64(%rbp),%rbp + adcq 0(%rdi),%r8 + adcq 8(%rdi),%r9 + adcq 16(%rdi),%r10 + adcq 24(%rdi),%r11 + adcq 32(%rdi),%r12 + adcq 40(%rdi),%r13 + adcq 48(%rdi),%r14 + adcq 56(%rdi),%r15 + leaq 64(%rdi),%rdi + sbbq %rax,%rax + subq $8,%rcx + + xorq %rsi,%rsi + movq %rax,16+8(%rsp) + jmp L$sqrx8x_tail + +.p2align 5 +L$sqrx8x_tail_done: + xorq %rax,%rax + addq 24+8(%rsp),%r8 + adcq $0,%r9 + adcq $0,%r10 + adcq $0,%r11 + adcq $0,%r12 + adcq $0,%r13 + adcq $0,%r14 + adcq $0,%r15 + adcq $0,%rax + + subq 16+8(%rsp),%rsi +L$sqrx8x_no_tail: + adcq 0(%rdi),%r8 +.byte 102,72,15,126,217 + adcq 8(%rdi),%r9 + movq 56(%rbp),%rsi +.byte 102,72,15,126,213 + adcq 16(%rdi),%r10 + adcq 24(%rdi),%r11 + adcq 32(%rdi),%r12 + adcq 40(%rdi),%r13 + adcq 48(%rdi),%r14 + adcq 56(%rdi),%r15 + adcq $0,%rax + + movq 32+8(%rsp),%rbx + movq 64(%rdi,%rcx,1),%rdx + + movq %r8,0(%rdi) + leaq 64(%rdi),%r8 + movq %r9,8(%rdi) + movq %r10,16(%rdi) + movq %r11,24(%rdi) + movq %r12,32(%rdi) + movq %r13,40(%rdi) + movq %r14,48(%rdi) + movq %r15,56(%rdi) + + leaq 64(%rdi,%rcx,1),%rdi + cmpq 8+8(%rsp),%r8 + jb L$sqrx8x_reduction_loop + .byte 0xf3,0xc3 + + +.p2align 5 +__bn_postx4x_internal: + + movq 0(%rbp),%r12 + movq %rcx,%r10 + movq %rcx,%r9 + negq %rax + sarq $3+2,%rcx + +.byte 102,72,15,126,202 +.byte 102,72,15,126,206 + decq %r12 + movq 8(%rbp),%r13 + xorq %r8,%r8 + movq 16(%rbp),%r14 + movq 24(%rbp),%r15 + jmp L$sqrx4x_sub_entry + +.p2align 4 +L$sqrx4x_sub: + movq 0(%rbp),%r12 + movq 8(%rbp),%r13 + movq 16(%rbp),%r14 + movq 24(%rbp),%r15 +L$sqrx4x_sub_entry: + andnq %rax,%r12,%r12 + leaq 32(%rbp),%rbp + andnq %rax,%r13,%r13 + andnq %rax,%r14,%r14 + andnq %rax,%r15,%r15 + + negq %r8 + adcq 0(%rdi),%r12 + adcq 8(%rdi),%r13 + adcq 16(%rdi),%r14 + adcq 24(%rdi),%r15 + movq %r12,0(%rdx) + leaq 32(%rdi),%rdi + movq %r13,8(%rdx) + sbbq %r8,%r8 + movq %r14,16(%rdx) + movq %r15,24(%rdx) + leaq 32(%rdx),%rdx + + incq %rcx + jnz L$sqrx4x_sub + + negq %r9 + + .byte 0xf3,0xc3 + + +.globl _bn_get_bits5 + +.p2align 4 +_bn_get_bits5: + + leaq 0(%rdi),%r10 + leaq 1(%rdi),%r11 + movl %esi,%ecx + shrl $4,%esi + andl $15,%ecx + leal -8(%rcx),%eax + cmpl $11,%ecx + cmovaq %r11,%r10 + cmoval %eax,%ecx + movzwl (%r10,%rsi,2),%eax + shrl %cl,%eax + andl $31,%eax + .byte 0xf3,0xc3 + + + +.globl _bn_scatter5 + +.p2align 4 +_bn_scatter5: + + cmpl $0,%esi + jz L$scatter_epilogue + leaq (%rdx,%rcx,8),%rdx +L$scatter: + movq (%rdi),%rax + leaq 8(%rdi),%rdi + movq %rax,(%rdx) + leaq 256(%rdx),%rdx + subl $1,%esi + jnz L$scatter +L$scatter_epilogue: + .byte 0xf3,0xc3 + + + +.globl _bn_gather5 + +.p2align 5 +_bn_gather5: +L$SEH_begin_bn_gather5: + + +.byte 0x4c,0x8d,0x14,0x24 +.byte 0x48,0x81,0xec,0x08,0x01,0x00,0x00 + leaq L$inc(%rip),%rax + andq $-16,%rsp + + movd %ecx,%xmm5 + movdqa 0(%rax),%xmm0 + movdqa 16(%rax),%xmm1 + leaq 128(%rdx),%r11 + leaq 128(%rsp),%rax + + pshufd $0,%xmm5,%xmm5 + movdqa %xmm1,%xmm4 + movdqa %xmm1,%xmm2 + paddd %xmm0,%xmm1 + pcmpeqd %xmm5,%xmm0 + movdqa %xmm4,%xmm3 + + paddd %xmm1,%xmm2 + pcmpeqd %xmm5,%xmm1 + movdqa %xmm0,-128(%rax) + movdqa %xmm4,%xmm0 + + paddd %xmm2,%xmm3 + pcmpeqd %xmm5,%xmm2 + movdqa %xmm1,-112(%rax) + movdqa %xmm4,%xmm1 + + paddd %xmm3,%xmm0 + pcmpeqd %xmm5,%xmm3 + movdqa %xmm2,-96(%rax) + movdqa %xmm4,%xmm2 + paddd %xmm0,%xmm1 + pcmpeqd %xmm5,%xmm0 + movdqa %xmm3,-80(%rax) + movdqa %xmm4,%xmm3 + + paddd %xmm1,%xmm2 + pcmpeqd %xmm5,%xmm1 + movdqa %xmm0,-64(%rax) + movdqa %xmm4,%xmm0 + + paddd %xmm2,%xmm3 + pcmpeqd %xmm5,%xmm2 + movdqa %xmm1,-48(%rax) + movdqa %xmm4,%xmm1 + + paddd %xmm3,%xmm0 + pcmpeqd %xmm5,%xmm3 + movdqa %xmm2,-32(%rax) + movdqa %xmm4,%xmm2 + paddd %xmm0,%xmm1 + pcmpeqd %xmm5,%xmm0 + movdqa %xmm3,-16(%rax) + movdqa %xmm4,%xmm3 + + paddd %xmm1,%xmm2 + pcmpeqd %xmm5,%xmm1 + movdqa %xmm0,0(%rax) + movdqa %xmm4,%xmm0 + + paddd %xmm2,%xmm3 + pcmpeqd %xmm5,%xmm2 + movdqa %xmm1,16(%rax) + movdqa %xmm4,%xmm1 + + paddd %xmm3,%xmm0 + pcmpeqd %xmm5,%xmm3 + movdqa %xmm2,32(%rax) + movdqa %xmm4,%xmm2 + paddd %xmm0,%xmm1 + pcmpeqd %xmm5,%xmm0 + movdqa %xmm3,48(%rax) + movdqa %xmm4,%xmm3 + + paddd %xmm1,%xmm2 + pcmpeqd %xmm5,%xmm1 + movdqa %xmm0,64(%rax) + movdqa %xmm4,%xmm0 + + paddd %xmm2,%xmm3 + pcmpeqd %xmm5,%xmm2 + movdqa %xmm1,80(%rax) + movdqa %xmm4,%xmm1 + + paddd %xmm3,%xmm0 + pcmpeqd %xmm5,%xmm3 + movdqa %xmm2,96(%rax) + movdqa %xmm4,%xmm2 + movdqa %xmm3,112(%rax) + jmp L$gather + +.p2align 5 +L$gather: + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + movdqa -128(%r11),%xmm0 + movdqa -112(%r11),%xmm1 + movdqa -96(%r11),%xmm2 + pand -128(%rax),%xmm0 + movdqa -80(%r11),%xmm3 + pand -112(%rax),%xmm1 + por %xmm0,%xmm4 + pand -96(%rax),%xmm2 + por %xmm1,%xmm5 + pand -80(%rax),%xmm3 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + movdqa -64(%r11),%xmm0 + movdqa -48(%r11),%xmm1 + movdqa -32(%r11),%xmm2 + pand -64(%rax),%xmm0 + movdqa -16(%r11),%xmm3 + pand -48(%rax),%xmm1 + por %xmm0,%xmm4 + pand -32(%rax),%xmm2 + por %xmm1,%xmm5 + pand -16(%rax),%xmm3 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + movdqa 0(%r11),%xmm0 + movdqa 16(%r11),%xmm1 + movdqa 32(%r11),%xmm2 + pand 0(%rax),%xmm0 + movdqa 48(%r11),%xmm3 + pand 16(%rax),%xmm1 + por %xmm0,%xmm4 + pand 32(%rax),%xmm2 + por %xmm1,%xmm5 + pand 48(%rax),%xmm3 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + movdqa 64(%r11),%xmm0 + movdqa 80(%r11),%xmm1 + movdqa 96(%r11),%xmm2 + pand 64(%rax),%xmm0 + movdqa 112(%r11),%xmm3 + pand 80(%rax),%xmm1 + por %xmm0,%xmm4 + pand 96(%rax),%xmm2 + por %xmm1,%xmm5 + pand 112(%rax),%xmm3 + por %xmm2,%xmm4 + por %xmm3,%xmm5 + por %xmm5,%xmm4 + leaq 256(%r11),%r11 + pshufd $0x4e,%xmm4,%xmm0 + por %xmm4,%xmm0 + movq %xmm0,(%rdi) + leaq 8(%rdi),%rdi + subl $1,%esi + jnz L$gather + + leaq (%r10),%rsp + .byte 0xf3,0xc3 +L$SEH_end_bn_gather5: + + +.p2align 6 +L$inc: +.long 0,0, 1,1 +.long 2,2, 2,2 +.byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,119,105,116,104,32,115,99,97,116,116,101,114,47,103,97,116,104,101,114,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 diff --git a/vere/ext/openssl/gen/macos-x86_64/crypto/camellia/cmll-x86_64.s b/vere/ext/openssl/gen/macos-x86_64/crypto/camellia/cmll-x86_64.s new file mode 100644 index 0000000..d815175 --- /dev/null +++ b/vere/ext/openssl/gen/macos-x86_64/crypto/camellia/cmll-x86_64.s @@ -0,0 +1,1903 @@ +.text + + +.globl _Camellia_EncryptBlock + +.p2align 4 +_Camellia_EncryptBlock: + + movl $128,%eax + subl %edi,%eax + movl $3,%edi + adcl $0,%edi + jmp L$enc_rounds + + + +.globl _Camellia_EncryptBlock_Rounds + +.p2align 4 +L$enc_rounds: +_Camellia_EncryptBlock_Rounds: + + pushq %rbx + + pushq %rbp + + pushq %r13 + + pushq %r14 + + pushq %r15 + +L$enc_prologue: + + + movq %rcx,%r13 + movq %rdx,%r14 + + shll $6,%edi + leaq L$Camellia_SBOX(%rip),%rbp + leaq (%r14,%rdi,1),%r15 + + movl 0(%rsi),%r8d + movl 4(%rsi),%r9d + movl 8(%rsi),%r10d + bswapl %r8d + movl 12(%rsi),%r11d + bswapl %r9d + bswapl %r10d + bswapl %r11d + + call _x86_64_Camellia_encrypt + + bswapl %r8d + bswapl %r9d + bswapl %r10d + movl %r8d,0(%r13) + bswapl %r11d + movl %r9d,4(%r13) + movl %r10d,8(%r13) + movl %r11d,12(%r13) + + movq 0(%rsp),%r15 + + movq 8(%rsp),%r14 + + movq 16(%rsp),%r13 + + movq 24(%rsp),%rbp + + movq 32(%rsp),%rbx + + leaq 40(%rsp),%rsp + +L$enc_epilogue: + .byte 0xf3,0xc3 + + + + +.p2align 4 +_x86_64_Camellia_encrypt: + + xorl 0(%r14),%r9d + xorl 4(%r14),%r8d + xorl 8(%r14),%r11d + xorl 12(%r14),%r10d +.p2align 4 +L$eloop: + movl 16(%r14),%ebx + movl 20(%r14),%eax + + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 24(%r14),%ebx + movl 28(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 32(%r14),%ebx + movl 36(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 40(%r14),%ebx + movl 44(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 48(%r14),%ebx + movl 52(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 56(%r14),%ebx + movl 60(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 64(%r14),%ebx + movl 68(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + leaq 64(%r14),%r14 + cmpq %r15,%r14 + movl 8(%r14),%edx + movl 12(%r14),%ecx + je L$edone + + andl %r8d,%eax + orl %r11d,%edx + roll $1,%eax + xorl %edx,%r10d + xorl %eax,%r9d + andl %r10d,%ecx + orl %r9d,%ebx + roll $1,%ecx + xorl %ebx,%r8d + xorl %ecx,%r11d + jmp L$eloop + +.p2align 4 +L$edone: + xorl %r10d,%eax + xorl %r11d,%ebx + xorl %r8d,%ecx + xorl %r9d,%edx + + movl %eax,%r8d + movl %ebx,%r9d + movl %ecx,%r10d + movl %edx,%r11d + +.byte 0xf3,0xc3 + + + + +.globl _Camellia_DecryptBlock + +.p2align 4 +_Camellia_DecryptBlock: + + movl $128,%eax + subl %edi,%eax + movl $3,%edi + adcl $0,%edi + jmp L$dec_rounds + + + +.globl _Camellia_DecryptBlock_Rounds + +.p2align 4 +L$dec_rounds: +_Camellia_DecryptBlock_Rounds: + + pushq %rbx + + pushq %rbp + + pushq %r13 + + pushq %r14 + + pushq %r15 + +L$dec_prologue: + + + movq %rcx,%r13 + movq %rdx,%r15 + + shll $6,%edi + leaq L$Camellia_SBOX(%rip),%rbp + leaq (%r15,%rdi,1),%r14 + + movl 0(%rsi),%r8d + movl 4(%rsi),%r9d + movl 8(%rsi),%r10d + bswapl %r8d + movl 12(%rsi),%r11d + bswapl %r9d + bswapl %r10d + bswapl %r11d + + call _x86_64_Camellia_decrypt + + bswapl %r8d + bswapl %r9d + bswapl %r10d + movl %r8d,0(%r13) + bswapl %r11d + movl %r9d,4(%r13) + movl %r10d,8(%r13) + movl %r11d,12(%r13) + + movq 0(%rsp),%r15 + + movq 8(%rsp),%r14 + + movq 16(%rsp),%r13 + + movq 24(%rsp),%rbp + + movq 32(%rsp),%rbx + + leaq 40(%rsp),%rsp + +L$dec_epilogue: + .byte 0xf3,0xc3 + + + + +.p2align 4 +_x86_64_Camellia_decrypt: + + xorl 0(%r14),%r9d + xorl 4(%r14),%r8d + xorl 8(%r14),%r11d + xorl 12(%r14),%r10d +.p2align 4 +L$dloop: + movl -8(%r14),%ebx + movl -4(%r14),%eax + + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl -16(%r14),%ebx + movl -12(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl -24(%r14),%ebx + movl -20(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl -32(%r14),%ebx + movl -28(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl -40(%r14),%ebx + movl -36(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl -48(%r14),%ebx + movl -44(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl -56(%r14),%ebx + movl -52(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + leaq -64(%r14),%r14 + cmpq %r15,%r14 + movl 0(%r14),%edx + movl 4(%r14),%ecx + je L$ddone + + andl %r8d,%eax + orl %r11d,%edx + roll $1,%eax + xorl %edx,%r10d + xorl %eax,%r9d + andl %r10d,%ecx + orl %r9d,%ebx + roll $1,%ecx + xorl %ebx,%r8d + xorl %ecx,%r11d + + jmp L$dloop + +.p2align 4 +L$ddone: + xorl %r10d,%ecx + xorl %r11d,%edx + xorl %r8d,%eax + xorl %r9d,%ebx + + movl %ecx,%r8d + movl %edx,%r9d + movl %eax,%r10d + movl %ebx,%r11d + +.byte 0xf3,0xc3 + + +.globl _Camellia_Ekeygen + +.p2align 4 +_Camellia_Ekeygen: + + pushq %rbx + + pushq %rbp + + pushq %r13 + + pushq %r14 + + pushq %r15 + +L$key_prologue: + + movl %edi,%r15d + movq %rdx,%r13 + + movl 0(%rsi),%r8d + movl 4(%rsi),%r9d + movl 8(%rsi),%r10d + movl 12(%rsi),%r11d + + bswapl %r8d + bswapl %r9d + bswapl %r10d + bswapl %r11d + movl %r9d,0(%r13) + movl %r8d,4(%r13) + movl %r11d,8(%r13) + movl %r10d,12(%r13) + cmpq $128,%r15 + je L$1st128 + + movl 16(%rsi),%r8d + movl 20(%rsi),%r9d + cmpq $192,%r15 + je L$1st192 + movl 24(%rsi),%r10d + movl 28(%rsi),%r11d + jmp L$1st256 +L$1st192: + movl %r8d,%r10d + movl %r9d,%r11d + notl %r10d + notl %r11d +L$1st256: + bswapl %r8d + bswapl %r9d + bswapl %r10d + bswapl %r11d + movl %r9d,32(%r13) + movl %r8d,36(%r13) + movl %r11d,40(%r13) + movl %r10d,44(%r13) + xorl 0(%r13),%r9d + xorl 4(%r13),%r8d + xorl 8(%r13),%r11d + xorl 12(%r13),%r10d + +L$1st128: + leaq L$Camellia_SIGMA(%rip),%r14 + leaq L$Camellia_SBOX(%rip),%rbp + + movl 0(%r14),%ebx + movl 4(%r14),%eax + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 8(%r14),%ebx + movl 12(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 16(%r14),%ebx + movl 20(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + xorl 0(%r13),%r9d + xorl 4(%r13),%r8d + xorl 8(%r13),%r11d + xorl 12(%r13),%r10d + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 24(%r14),%ebx + movl 28(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 32(%r14),%ebx + movl 36(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + cmpq $128,%r15 + jne L$2nd256 + + leaq 128(%r13),%r13 + shlq $32,%r8 + shlq $32,%r10 + orq %r9,%r8 + orq %r11,%r10 + movq -128(%r13),%rax + movq -120(%r13),%rbx + movq %r8,-112(%r13) + movq %r10,-104(%r13) + movq %rax,%r11 + shlq $15,%rax + movq %rbx,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%rax + shlq $15,%rbx + orq %r11,%rbx + movq %rax,-96(%r13) + movq %rbx,-88(%r13) + movq %r8,%r11 + shlq $15,%r8 + movq %r10,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%r8 + shlq $15,%r10 + orq %r11,%r10 + movq %r8,-80(%r13) + movq %r10,-72(%r13) + movq %r8,%r11 + shlq $15,%r8 + movq %r10,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%r8 + shlq $15,%r10 + orq %r11,%r10 + movq %r8,-64(%r13) + movq %r10,-56(%r13) + movq %rax,%r11 + shlq $30,%rax + movq %rbx,%r9 + shrq $34,%r9 + shrq $34,%r11 + orq %r9,%rax + shlq $30,%rbx + orq %r11,%rbx + movq %rax,-48(%r13) + movq %rbx,-40(%r13) + movq %r8,%r11 + shlq $15,%r8 + movq %r10,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%r8 + shlq $15,%r10 + orq %r11,%r10 + movq %r8,-32(%r13) + movq %rax,%r11 + shlq $15,%rax + movq %rbx,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%rax + shlq $15,%rbx + orq %r11,%rbx + movq %rbx,-24(%r13) + movq %r8,%r11 + shlq $15,%r8 + movq %r10,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%r8 + shlq $15,%r10 + orq %r11,%r10 + movq %r8,-16(%r13) + movq %r10,-8(%r13) + movq %rax,%r11 + shlq $17,%rax + movq %rbx,%r9 + shrq $47,%r9 + shrq $47,%r11 + orq %r9,%rax + shlq $17,%rbx + orq %r11,%rbx + movq %rax,0(%r13) + movq %rbx,8(%r13) + movq %rax,%r11 + shlq $17,%rax + movq %rbx,%r9 + shrq $47,%r9 + shrq $47,%r11 + orq %r9,%rax + shlq $17,%rbx + orq %r11,%rbx + movq %rax,16(%r13) + movq %rbx,24(%r13) + movq %r8,%r11 + shlq $34,%r8 + movq %r10,%r9 + shrq $30,%r9 + shrq $30,%r11 + orq %r9,%r8 + shlq $34,%r10 + orq %r11,%r10 + movq %r8,32(%r13) + movq %r10,40(%r13) + movq %rax,%r11 + shlq $17,%rax + movq %rbx,%r9 + shrq $47,%r9 + shrq $47,%r11 + orq %r9,%rax + shlq $17,%rbx + orq %r11,%rbx + movq %rax,48(%r13) + movq %rbx,56(%r13) + movq %r8,%r11 + shlq $17,%r8 + movq %r10,%r9 + shrq $47,%r9 + shrq $47,%r11 + orq %r9,%r8 + shlq $17,%r10 + orq %r11,%r10 + movq %r8,64(%r13) + movq %r10,72(%r13) + movl $3,%eax + jmp L$done +.p2align 4 +L$2nd256: + movl %r9d,48(%r13) + movl %r8d,52(%r13) + movl %r11d,56(%r13) + movl %r10d,60(%r13) + xorl 32(%r13),%r9d + xorl 36(%r13),%r8d + xorl 40(%r13),%r11d + xorl 44(%r13),%r10d + xorl %r8d,%eax + xorl %r9d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 40(%r14),%ebx + movl 44(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r10d + xorl %ecx,%r11d + xorl %edx,%r11d + xorl %r10d,%eax + xorl %r11d,%ebx + movzbl %ah,%esi + movzbl %bl,%edi + movl 2052(%rbp,%rsi,8),%edx + movl 0(%rbp,%rdi,8),%ecx + movzbl %al,%esi + shrl $16,%eax + movzbl %bh,%edi + xorl 4(%rbp,%rsi,8),%edx + shrl $16,%ebx + xorl 4(%rbp,%rdi,8),%ecx + movzbl %ah,%esi + movzbl %bl,%edi + xorl 0(%rbp,%rsi,8),%edx + xorl 2052(%rbp,%rdi,8),%ecx + movzbl %al,%esi + movzbl %bh,%edi + xorl 2048(%rbp,%rsi,8),%edx + xorl 2048(%rbp,%rdi,8),%ecx + movl 48(%r14),%ebx + movl 52(%r14),%eax + xorl %edx,%ecx + rorl $8,%edx + xorl %ecx,%r8d + xorl %ecx,%r9d + xorl %edx,%r9d + movq 0(%r13),%rax + movq 8(%r13),%rbx + movq 32(%r13),%rcx + movq 40(%r13),%rdx + movq 48(%r13),%r14 + movq 56(%r13),%r15 + leaq 128(%r13),%r13 + shlq $32,%r8 + shlq $32,%r10 + orq %r9,%r8 + orq %r11,%r10 + movq %r8,-112(%r13) + movq %r10,-104(%r13) + movq %rcx,%r11 + shlq $15,%rcx + movq %rdx,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%rcx + shlq $15,%rdx + orq %r11,%rdx + movq %rcx,-96(%r13) + movq %rdx,-88(%r13) + movq %r14,%r11 + shlq $15,%r14 + movq %r15,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%r14 + shlq $15,%r15 + orq %r11,%r15 + movq %r14,-80(%r13) + movq %r15,-72(%r13) + movq %rcx,%r11 + shlq $15,%rcx + movq %rdx,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%rcx + shlq $15,%rdx + orq %r11,%rdx + movq %rcx,-64(%r13) + movq %rdx,-56(%r13) + movq %r8,%r11 + shlq $30,%r8 + movq %r10,%r9 + shrq $34,%r9 + shrq $34,%r11 + orq %r9,%r8 + shlq $30,%r10 + orq %r11,%r10 + movq %r8,-48(%r13) + movq %r10,-40(%r13) + movq %rax,%r11 + shlq $45,%rax + movq %rbx,%r9 + shrq $19,%r9 + shrq $19,%r11 + orq %r9,%rax + shlq $45,%rbx + orq %r11,%rbx + movq %rax,-32(%r13) + movq %rbx,-24(%r13) + movq %r14,%r11 + shlq $30,%r14 + movq %r15,%r9 + shrq $34,%r9 + shrq $34,%r11 + orq %r9,%r14 + shlq $30,%r15 + orq %r11,%r15 + movq %r14,-16(%r13) + movq %r15,-8(%r13) + movq %rax,%r11 + shlq $15,%rax + movq %rbx,%r9 + shrq $49,%r9 + shrq $49,%r11 + orq %r9,%rax + shlq $15,%rbx + orq %r11,%rbx + movq %rax,0(%r13) + movq %rbx,8(%r13) + movq %rcx,%r11 + shlq $30,%rcx + movq %rdx,%r9 + shrq $34,%r9 + shrq $34,%r11 + orq %r9,%rcx + shlq $30,%rdx + orq %r11,%rdx + movq %rcx,16(%r13) + movq %rdx,24(%r13) + movq %r8,%r11 + shlq $30,%r8 + movq %r10,%r9 + shrq $34,%r9 + shrq $34,%r11 + orq %r9,%r8 + shlq $30,%r10 + orq %r11,%r10 + movq %r8,32(%r13) + movq %r10,40(%r13) + movq %rax,%r11 + shlq $17,%rax + movq %rbx,%r9 + shrq $47,%r9 + shrq $47,%r11 + orq %r9,%rax + shlq $17,%rbx + orq %r11,%rbx + movq %rax,48(%r13) + movq %rbx,56(%r13) + movq %r14,%r11 + shlq $32,%r14 + movq %r15,%r9 + shrq $32,%r9 + shrq $32,%r11 + orq %r9,%r14 + shlq $32,%r15 + orq %r11,%r15 + movq %r14,64(%r13) + movq %r15,72(%r13) + movq %rcx,%r11 + shlq $34,%rcx + movq %rdx,%r9 + shrq $30,%r9 + shrq $30,%r11 + orq %r9,%rcx + shlq $34,%rdx + orq %r11,%rdx + movq %rcx,80(%r13) + movq %rdx,88(%r13) + movq %r14,%r11 + shlq $17,%r14 + movq %r15,%r9 + shrq $47,%r9 + shrq $47,%r11 + orq %r9,%r14 + shlq $17,%r15 + orq %r11,%r15 + movq %r14,96(%r13) + movq %r15,104(%r13) + movq %rax,%r11 + shlq $34,%rax + movq %rbx,%r9 + shrq $30,%r9 + shrq $30,%r11 + orq %r9,%rax + shlq $34,%rbx + orq %r11,%rbx + movq %rax,112(%r13) + movq %rbx,120(%r13) + movq %r8,%r11 + shlq $51,%r8 + movq %r10,%r9 + shrq $13,%r9 + shrq $13,%r11 + orq %r9,%r8 + shlq $51,%r10 + orq %r11,%r10 + movq %r8,128(%r13) + movq %r10,136(%r13) + movl $4,%eax +L$done: + movq 0(%rsp),%r15 + + movq 8(%rsp),%r14 + + movq 16(%rsp),%r13 + + movq 24(%rsp),%rbp + + movq 32(%rsp),%rbx + + leaq 40(%rsp),%rsp + +L$key_epilogue: + .byte 0xf3,0xc3 + + +.p2align 6 +L$Camellia_SIGMA: +.long 0x3bcc908b, 0xa09e667f, 0x4caa73b2, 0xb67ae858 +.long 0xe94f82be, 0xc6ef372f, 0xf1d36f1c, 0x54ff53a5 +.long 0xde682d1d, 0x10e527fa, 0xb3e6c1fd, 0xb05688c2 +.long 0, 0, 0, 0 +L$Camellia_SBOX: +.long 0x70707000,0x70700070 +.long 0x82828200,0x2c2c002c +.long 0x2c2c2c00,0xb3b300b3 +.long 0xececec00,0xc0c000c0 +.long 0xb3b3b300,0xe4e400e4 +.long 0x27272700,0x57570057 +.long 0xc0c0c000,0xeaea00ea +.long 0xe5e5e500,0xaeae00ae +.long 0xe4e4e400,0x23230023 +.long 0x85858500,0x6b6b006b +.long 0x57575700,0x45450045 +.long 0x35353500,0xa5a500a5 +.long 0xeaeaea00,0xeded00ed +.long 0x0c0c0c00,0x4f4f004f +.long 0xaeaeae00,0x1d1d001d +.long 0x41414100,0x92920092 +.long 0x23232300,0x86860086 +.long 0xefefef00,0xafaf00af +.long 0x6b6b6b00,0x7c7c007c +.long 0x93939300,0x1f1f001f +.long 0x45454500,0x3e3e003e +.long 0x19191900,0xdcdc00dc +.long 0xa5a5a500,0x5e5e005e +.long 0x21212100,0x0b0b000b +.long 0xededed00,0xa6a600a6 +.long 0x0e0e0e00,0x39390039 +.long 0x4f4f4f00,0xd5d500d5 +.long 0x4e4e4e00,0x5d5d005d +.long 0x1d1d1d00,0xd9d900d9 +.long 0x65656500,0x5a5a005a +.long 0x92929200,0x51510051 +.long 0xbdbdbd00,0x6c6c006c +.long 0x86868600,0x8b8b008b +.long 0xb8b8b800,0x9a9a009a +.long 0xafafaf00,0xfbfb00fb +.long 0x8f8f8f00,0xb0b000b0 +.long 0x7c7c7c00,0x74740074 +.long 0xebebeb00,0x2b2b002b +.long 0x1f1f1f00,0xf0f000f0 +.long 0xcecece00,0x84840084 +.long 0x3e3e3e00,0xdfdf00df +.long 0x30303000,0xcbcb00cb +.long 0xdcdcdc00,0x34340034 +.long 0x5f5f5f00,0x76760076 +.long 0x5e5e5e00,0x6d6d006d +.long 0xc5c5c500,0xa9a900a9 +.long 0x0b0b0b00,0xd1d100d1 +.long 0x1a1a1a00,0x04040004 +.long 0xa6a6a600,0x14140014 +.long 0xe1e1e100,0x3a3a003a +.long 0x39393900,0xdede00de +.long 0xcacaca00,0x11110011 +.long 0xd5d5d500,0x32320032 +.long 0x47474700,0x9c9c009c +.long 0x5d5d5d00,0x53530053 +.long 0x3d3d3d00,0xf2f200f2 +.long 0xd9d9d900,0xfefe00fe +.long 0x01010100,0xcfcf00cf +.long 0x5a5a5a00,0xc3c300c3 +.long 0xd6d6d600,0x7a7a007a +.long 0x51515100,0x24240024 +.long 0x56565600,0xe8e800e8 +.long 0x6c6c6c00,0x60600060 +.long 0x4d4d4d00,0x69690069 +.long 0x8b8b8b00,0xaaaa00aa +.long 0x0d0d0d00,0xa0a000a0 +.long 0x9a9a9a00,0xa1a100a1 +.long 0x66666600,0x62620062 +.long 0xfbfbfb00,0x54540054 +.long 0xcccccc00,0x1e1e001e +.long 0xb0b0b000,0xe0e000e0 +.long 0x2d2d2d00,0x64640064 +.long 0x74747400,0x10100010 +.long 0x12121200,0x00000000 +.long 0x2b2b2b00,0xa3a300a3 +.long 0x20202000,0x75750075 +.long 0xf0f0f000,0x8a8a008a +.long 0xb1b1b100,0xe6e600e6 +.long 0x84848400,0x09090009 +.long 0x99999900,0xdddd00dd +.long 0xdfdfdf00,0x87870087 +.long 0x4c4c4c00,0x83830083 +.long 0xcbcbcb00,0xcdcd00cd +.long 0xc2c2c200,0x90900090 +.long 0x34343400,0x73730073 +.long 0x7e7e7e00,0xf6f600f6 +.long 0x76767600,0x9d9d009d +.long 0x05050500,0xbfbf00bf +.long 0x6d6d6d00,0x52520052 +.long 0xb7b7b700,0xd8d800d8 +.long 0xa9a9a900,0xc8c800c8 +.long 0x31313100,0xc6c600c6 +.long 0xd1d1d100,0x81810081 +.long 0x17171700,0x6f6f006f +.long 0x04040400,0x13130013 +.long 0xd7d7d700,0x63630063 +.long 0x14141400,0xe9e900e9 +.long 0x58585800,0xa7a700a7 +.long 0x3a3a3a00,0x9f9f009f +.long 0x61616100,0xbcbc00bc +.long 0xdedede00,0x29290029 +.long 0x1b1b1b00,0xf9f900f9 +.long 0x11111100,0x2f2f002f +.long 0x1c1c1c00,0xb4b400b4 +.long 0x32323200,0x78780078 +.long 0x0f0f0f00,0x06060006 +.long 0x9c9c9c00,0xe7e700e7 +.long 0x16161600,0x71710071 +.long 0x53535300,0xd4d400d4 +.long 0x18181800,0xabab00ab +.long 0xf2f2f200,0x88880088 +.long 0x22222200,0x8d8d008d +.long 0xfefefe00,0x72720072 +.long 0x44444400,0xb9b900b9 +.long 0xcfcfcf00,0xf8f800f8 +.long 0xb2b2b200,0xacac00ac +.long 0xc3c3c300,0x36360036 +.long 0xb5b5b500,0x2a2a002a +.long 0x7a7a7a00,0x3c3c003c +.long 0x91919100,0xf1f100f1 +.long 0x24242400,0x40400040 +.long 0x08080800,0xd3d300d3 +.long 0xe8e8e800,0xbbbb00bb +.long 0xa8a8a800,0x43430043 +.long 0x60606000,0x15150015 +.long 0xfcfcfc00,0xadad00ad +.long 0x69696900,0x77770077 +.long 0x50505000,0x80800080 +.long 0xaaaaaa00,0x82820082 +.long 0xd0d0d000,0xecec00ec +.long 0xa0a0a000,0x27270027 +.long 0x7d7d7d00,0xe5e500e5 +.long 0xa1a1a100,0x85850085 +.long 0x89898900,0x35350035 +.long 0x62626200,0x0c0c000c +.long 0x97979700,0x41410041 +.long 0x54545400,0xefef00ef +.long 0x5b5b5b00,0x93930093 +.long 0x1e1e1e00,0x19190019 +.long 0x95959500,0x21210021 +.long 0xe0e0e000,0x0e0e000e +.long 0xffffff00,0x4e4e004e +.long 0x64646400,0x65650065 +.long 0xd2d2d200,0xbdbd00bd +.long 0x10101000,0xb8b800b8 +.long 0xc4c4c400,0x8f8f008f +.long 0x00000000,0xebeb00eb +.long 0x48484800,0xcece00ce +.long 0xa3a3a300,0x30300030 +.long 0xf7f7f700,0x5f5f005f +.long 0x75757500,0xc5c500c5 +.long 0xdbdbdb00,0x1a1a001a +.long 0x8a8a8a00,0xe1e100e1 +.long 0x03030300,0xcaca00ca +.long 0xe6e6e600,0x47470047 +.long 0xdadada00,0x3d3d003d +.long 0x09090900,0x01010001 +.long 0x3f3f3f00,0xd6d600d6 +.long 0xdddddd00,0x56560056 +.long 0x94949400,0x4d4d004d +.long 0x87878700,0x0d0d000d +.long 0x5c5c5c00,0x66660066 +.long 0x83838300,0xcccc00cc +.long 0x02020200,0x2d2d002d +.long 0xcdcdcd00,0x12120012 +.long 0x4a4a4a00,0x20200020 +.long 0x90909000,0xb1b100b1 +.long 0x33333300,0x99990099 +.long 0x73737300,0x4c4c004c +.long 0x67676700,0xc2c200c2 +.long 0xf6f6f600,0x7e7e007e +.long 0xf3f3f300,0x05050005 +.long 0x9d9d9d00,0xb7b700b7 +.long 0x7f7f7f00,0x31310031 +.long 0xbfbfbf00,0x17170017 +.long 0xe2e2e200,0xd7d700d7 +.long 0x52525200,0x58580058 +.long 0x9b9b9b00,0x61610061 +.long 0xd8d8d800,0x1b1b001b +.long 0x26262600,0x1c1c001c +.long 0xc8c8c800,0x0f0f000f +.long 0x37373700,0x16160016 +.long 0xc6c6c600,0x18180018 +.long 0x3b3b3b00,0x22220022 +.long 0x81818100,0x44440044 +.long 0x96969600,0xb2b200b2 +.long 0x6f6f6f00,0xb5b500b5 +.long 0x4b4b4b00,0x91910091 +.long 0x13131300,0x08080008 +.long 0xbebebe00,0xa8a800a8 +.long 0x63636300,0xfcfc00fc +.long 0x2e2e2e00,0x50500050 +.long 0xe9e9e900,0xd0d000d0 +.long 0x79797900,0x7d7d007d +.long 0xa7a7a700,0x89890089 +.long 0x8c8c8c00,0x97970097 +.long 0x9f9f9f00,0x5b5b005b +.long 0x6e6e6e00,0x95950095 +.long 0xbcbcbc00,0xffff00ff +.long 0x8e8e8e00,0xd2d200d2 +.long 0x29292900,0xc4c400c4 +.long 0xf5f5f500,0x48480048 +.long 0xf9f9f900,0xf7f700f7 +.long 0xb6b6b600,0xdbdb00db +.long 0x2f2f2f00,0x03030003 +.long 0xfdfdfd00,0xdada00da +.long 0xb4b4b400,0x3f3f003f +.long 0x59595900,0x94940094 +.long 0x78787800,0x5c5c005c +.long 0x98989800,0x02020002 +.long 0x06060600,0x4a4a004a +.long 0x6a6a6a00,0x33330033 +.long 0xe7e7e700,0x67670067 +.long 0x46464600,0xf3f300f3 +.long 0x71717100,0x7f7f007f +.long 0xbababa00,0xe2e200e2 +.long 0xd4d4d400,0x9b9b009b +.long 0x25252500,0x26260026 +.long 0xababab00,0x37370037 +.long 0x42424200,0x3b3b003b +.long 0x88888800,0x96960096 +.long 0xa2a2a200,0x4b4b004b +.long 0x8d8d8d00,0xbebe00be +.long 0xfafafa00,0x2e2e002e +.long 0x72727200,0x79790079 +.long 0x07070700,0x8c8c008c +.long 0xb9b9b900,0x6e6e006e +.long 0x55555500,0x8e8e008e +.long 0xf8f8f800,0xf5f500f5 +.long 0xeeeeee00,0xb6b600b6 +.long 0xacacac00,0xfdfd00fd +.long 0x0a0a0a00,0x59590059 +.long 0x36363600,0x98980098 +.long 0x49494900,0x6a6a006a +.long 0x2a2a2a00,0x46460046 +.long 0x68686800,0xbaba00ba +.long 0x3c3c3c00,0x25250025 +.long 0x38383800,0x42420042 +.long 0xf1f1f100,0xa2a200a2 +.long 0xa4a4a400,0xfafa00fa +.long 0x40404000,0x07070007 +.long 0x28282800,0x55550055 +.long 0xd3d3d300,0xeeee00ee +.long 0x7b7b7b00,0x0a0a000a +.long 0xbbbbbb00,0x49490049 +.long 0xc9c9c900,0x68680068 +.long 0x43434300,0x38380038 +.long 0xc1c1c100,0xa4a400a4 +.long 0x15151500,0x28280028 +.long 0xe3e3e300,0x7b7b007b +.long 0xadadad00,0xc9c900c9 +.long 0xf4f4f400,0xc1c100c1 +.long 0x77777700,0xe3e300e3 +.long 0xc7c7c700,0xf4f400f4 +.long 0x80808000,0xc7c700c7 +.long 0x9e9e9e00,0x9e9e009e +.long 0x00e0e0e0,0x38003838 +.long 0x00050505,0x41004141 +.long 0x00585858,0x16001616 +.long 0x00d9d9d9,0x76007676 +.long 0x00676767,0xd900d9d9 +.long 0x004e4e4e,0x93009393 +.long 0x00818181,0x60006060 +.long 0x00cbcbcb,0xf200f2f2 +.long 0x00c9c9c9,0x72007272 +.long 0x000b0b0b,0xc200c2c2 +.long 0x00aeaeae,0xab00abab +.long 0x006a6a6a,0x9a009a9a +.long 0x00d5d5d5,0x75007575 +.long 0x00181818,0x06000606 +.long 0x005d5d5d,0x57005757 +.long 0x00828282,0xa000a0a0 +.long 0x00464646,0x91009191 +.long 0x00dfdfdf,0xf700f7f7 +.long 0x00d6d6d6,0xb500b5b5 +.long 0x00272727,0xc900c9c9 +.long 0x008a8a8a,0xa200a2a2 +.long 0x00323232,0x8c008c8c +.long 0x004b4b4b,0xd200d2d2 +.long 0x00424242,0x90009090 +.long 0x00dbdbdb,0xf600f6f6 +.long 0x001c1c1c,0x07000707 +.long 0x009e9e9e,0xa700a7a7 +.long 0x009c9c9c,0x27002727 +.long 0x003a3a3a,0x8e008e8e +.long 0x00cacaca,0xb200b2b2 +.long 0x00252525,0x49004949 +.long 0x007b7b7b,0xde00dede +.long 0x000d0d0d,0x43004343 +.long 0x00717171,0x5c005c5c +.long 0x005f5f5f,0xd700d7d7 +.long 0x001f1f1f,0xc700c7c7 +.long 0x00f8f8f8,0x3e003e3e +.long 0x00d7d7d7,0xf500f5f5 +.long 0x003e3e3e,0x8f008f8f +.long 0x009d9d9d,0x67006767 +.long 0x007c7c7c,0x1f001f1f +.long 0x00606060,0x18001818 +.long 0x00b9b9b9,0x6e006e6e +.long 0x00bebebe,0xaf00afaf +.long 0x00bcbcbc,0x2f002f2f +.long 0x008b8b8b,0xe200e2e2 +.long 0x00161616,0x85008585 +.long 0x00343434,0x0d000d0d +.long 0x004d4d4d,0x53005353 +.long 0x00c3c3c3,0xf000f0f0 +.long 0x00727272,0x9c009c9c +.long 0x00959595,0x65006565 +.long 0x00ababab,0xea00eaea +.long 0x008e8e8e,0xa300a3a3 +.long 0x00bababa,0xae00aeae +.long 0x007a7a7a,0x9e009e9e +.long 0x00b3b3b3,0xec00ecec +.long 0x00020202,0x80008080 +.long 0x00b4b4b4,0x2d002d2d +.long 0x00adadad,0x6b006b6b +.long 0x00a2a2a2,0xa800a8a8 +.long 0x00acacac,0x2b002b2b +.long 0x00d8d8d8,0x36003636 +.long 0x009a9a9a,0xa600a6a6 +.long 0x00171717,0xc500c5c5 +.long 0x001a1a1a,0x86008686 +.long 0x00353535,0x4d004d4d +.long 0x00cccccc,0x33003333 +.long 0x00f7f7f7,0xfd00fdfd +.long 0x00999999,0x66006666 +.long 0x00616161,0x58005858 +.long 0x005a5a5a,0x96009696 +.long 0x00e8e8e8,0x3a003a3a +.long 0x00242424,0x09000909 +.long 0x00565656,0x95009595 +.long 0x00404040,0x10001010 +.long 0x00e1e1e1,0x78007878 +.long 0x00636363,0xd800d8d8 +.long 0x00090909,0x42004242 +.long 0x00333333,0xcc00cccc +.long 0x00bfbfbf,0xef00efef +.long 0x00989898,0x26002626 +.long 0x00979797,0xe500e5e5 +.long 0x00858585,0x61006161 +.long 0x00686868,0x1a001a1a +.long 0x00fcfcfc,0x3f003f3f +.long 0x00ececec,0x3b003b3b +.long 0x000a0a0a,0x82008282 +.long 0x00dadada,0xb600b6b6 +.long 0x006f6f6f,0xdb00dbdb +.long 0x00535353,0xd400d4d4 +.long 0x00626262,0x98009898 +.long 0x00a3a3a3,0xe800e8e8 +.long 0x002e2e2e,0x8b008b8b +.long 0x00080808,0x02000202 +.long 0x00afafaf,0xeb00ebeb +.long 0x00282828,0x0a000a0a +.long 0x00b0b0b0,0x2c002c2c +.long 0x00747474,0x1d001d1d +.long 0x00c2c2c2,0xb000b0b0 +.long 0x00bdbdbd,0x6f006f6f +.long 0x00363636,0x8d008d8d +.long 0x00222222,0x88008888 +.long 0x00383838,0x0e000e0e +.long 0x00646464,0x19001919 +.long 0x001e1e1e,0x87008787 +.long 0x00393939,0x4e004e4e +.long 0x002c2c2c,0x0b000b0b +.long 0x00a6a6a6,0xa900a9a9 +.long 0x00303030,0x0c000c0c +.long 0x00e5e5e5,0x79007979 +.long 0x00444444,0x11001111 +.long 0x00fdfdfd,0x7f007f7f +.long 0x00888888,0x22002222 +.long 0x009f9f9f,0xe700e7e7 +.long 0x00656565,0x59005959 +.long 0x00878787,0xe100e1e1 +.long 0x006b6b6b,0xda00dada +.long 0x00f4f4f4,0x3d003d3d +.long 0x00232323,0xc800c8c8 +.long 0x00484848,0x12001212 +.long 0x00101010,0x04000404 +.long 0x00d1d1d1,0x74007474 +.long 0x00515151,0x54005454 +.long 0x00c0c0c0,0x30003030 +.long 0x00f9f9f9,0x7e007e7e +.long 0x00d2d2d2,0xb400b4b4 +.long 0x00a0a0a0,0x28002828 +.long 0x00555555,0x55005555 +.long 0x00a1a1a1,0x68006868 +.long 0x00414141,0x50005050 +.long 0x00fafafa,0xbe00bebe +.long 0x00434343,0xd000d0d0 +.long 0x00131313,0xc400c4c4 +.long 0x00c4c4c4,0x31003131 +.long 0x002f2f2f,0xcb00cbcb +.long 0x00a8a8a8,0x2a002a2a +.long 0x00b6b6b6,0xad00adad +.long 0x003c3c3c,0x0f000f0f +.long 0x002b2b2b,0xca00caca +.long 0x00c1c1c1,0x70007070 +.long 0x00ffffff,0xff00ffff +.long 0x00c8c8c8,0x32003232 +.long 0x00a5a5a5,0x69006969 +.long 0x00202020,0x08000808 +.long 0x00898989,0x62006262 +.long 0x00000000,0x00000000 +.long 0x00909090,0x24002424 +.long 0x00474747,0xd100d1d1 +.long 0x00efefef,0xfb00fbfb +.long 0x00eaeaea,0xba00baba +.long 0x00b7b7b7,0xed00eded +.long 0x00151515,0x45004545 +.long 0x00060606,0x81008181 +.long 0x00cdcdcd,0x73007373 +.long 0x00b5b5b5,0x6d006d6d +.long 0x00121212,0x84008484 +.long 0x007e7e7e,0x9f009f9f +.long 0x00bbbbbb,0xee00eeee +.long 0x00292929,0x4a004a4a +.long 0x000f0f0f,0xc300c3c3 +.long 0x00b8b8b8,0x2e002e2e +.long 0x00070707,0xc100c1c1 +.long 0x00040404,0x01000101 +.long 0x009b9b9b,0xe600e6e6 +.long 0x00949494,0x25002525 +.long 0x00212121,0x48004848 +.long 0x00666666,0x99009999 +.long 0x00e6e6e6,0xb900b9b9 +.long 0x00cecece,0xb300b3b3 +.long 0x00ededed,0x7b007b7b +.long 0x00e7e7e7,0xf900f9f9 +.long 0x003b3b3b,0xce00cece +.long 0x00fefefe,0xbf00bfbf +.long 0x007f7f7f,0xdf00dfdf +.long 0x00c5c5c5,0x71007171 +.long 0x00a4a4a4,0x29002929 +.long 0x00373737,0xcd00cdcd +.long 0x00b1b1b1,0x6c006c6c +.long 0x004c4c4c,0x13001313 +.long 0x00919191,0x64006464 +.long 0x006e6e6e,0x9b009b9b +.long 0x008d8d8d,0x63006363 +.long 0x00767676,0x9d009d9d +.long 0x00030303,0xc000c0c0 +.long 0x002d2d2d,0x4b004b4b +.long 0x00dedede,0xb700b7b7 +.long 0x00969696,0xa500a5a5 +.long 0x00262626,0x89008989 +.long 0x007d7d7d,0x5f005f5f +.long 0x00c6c6c6,0xb100b1b1 +.long 0x005c5c5c,0x17001717 +.long 0x00d3d3d3,0xf400f4f4 +.long 0x00f2f2f2,0xbc00bcbc +.long 0x004f4f4f,0xd300d3d3 +.long 0x00191919,0x46004646 +.long 0x003f3f3f,0xcf00cfcf +.long 0x00dcdcdc,0x37003737 +.long 0x00797979,0x5e005e5e +.long 0x001d1d1d,0x47004747 +.long 0x00525252,0x94009494 +.long 0x00ebebeb,0xfa00fafa +.long 0x00f3f3f3,0xfc00fcfc +.long 0x006d6d6d,0x5b005b5b +.long 0x005e5e5e,0x97009797 +.long 0x00fbfbfb,0xfe00fefe +.long 0x00696969,0x5a005a5a +.long 0x00b2b2b2,0xac00acac +.long 0x00f0f0f0,0x3c003c3c +.long 0x00313131,0x4c004c4c +.long 0x000c0c0c,0x03000303 +.long 0x00d4d4d4,0x35003535 +.long 0x00cfcfcf,0xf300f3f3 +.long 0x008c8c8c,0x23002323 +.long 0x00e2e2e2,0xb800b8b8 +.long 0x00757575,0x5d005d5d +.long 0x00a9a9a9,0x6a006a6a +.long 0x004a4a4a,0x92009292 +.long 0x00575757,0xd500d5d5 +.long 0x00848484,0x21002121 +.long 0x00111111,0x44004444 +.long 0x00454545,0x51005151 +.long 0x001b1b1b,0xc600c6c6 +.long 0x00f5f5f5,0x7d007d7d +.long 0x00e4e4e4,0x39003939 +.long 0x000e0e0e,0x83008383 +.long 0x00737373,0xdc00dcdc +.long 0x00aaaaaa,0xaa00aaaa +.long 0x00f1f1f1,0x7c007c7c +.long 0x00dddddd,0x77007777 +.long 0x00595959,0x56005656 +.long 0x00141414,0x05000505 +.long 0x006c6c6c,0x1b001b1b +.long 0x00929292,0xa400a4a4 +.long 0x00545454,0x15001515 +.long 0x00d0d0d0,0x34003434 +.long 0x00787878,0x1e001e1e +.long 0x00707070,0x1c001c1c +.long 0x00e3e3e3,0xf800f8f8 +.long 0x00494949,0x52005252 +.long 0x00808080,0x20002020 +.long 0x00505050,0x14001414 +.long 0x00a7a7a7,0xe900e9e9 +.long 0x00f6f6f6,0xbd00bdbd +.long 0x00777777,0xdd00dddd +.long 0x00939393,0xe400e4e4 +.long 0x00868686,0xa100a1a1 +.long 0x00838383,0xe000e0e0 +.long 0x002a2a2a,0x8a008a8a +.long 0x00c7c7c7,0xf100f1f1 +.long 0x005b5b5b,0xd600d6d6 +.long 0x00e9e9e9,0x7a007a7a +.long 0x00eeeeee,0xbb00bbbb +.long 0x008f8f8f,0xe300e3e3 +.long 0x00010101,0x40004040 +.long 0x003d3d3d,0x4f004f4f +.globl _Camellia_cbc_encrypt + +.p2align 4 +_Camellia_cbc_encrypt: + + cmpq $0,%rdx + je L$cbc_abort + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + +L$cbc_prologue: + + movq %rsp,%rbp + + subq $64,%rsp + andq $-64,%rsp + + + + leaq -64-63(%rcx),%r10 + subq %rsp,%r10 + negq %r10 + andq $0x3C0,%r10 + subq %r10,%rsp + + + movq %rdi,%r12 + movq %rsi,%r13 + movq %r8,%rbx + movq %rcx,%r14 + movl 272(%rcx),%r15d + + movq %r8,40(%rsp) + movq %rbp,48(%rsp) + + +L$cbc_body: + leaq L$Camellia_SBOX(%rip),%rbp + + movl $32,%ecx +.p2align 2 +L$cbc_prefetch_sbox: + movq 0(%rbp),%rax + movq 32(%rbp),%rsi + movq 64(%rbp),%rdi + movq 96(%rbp),%r11 + leaq 128(%rbp),%rbp + loop L$cbc_prefetch_sbox + subq $4096,%rbp + shlq $6,%r15 + movq %rdx,%rcx + leaq (%r14,%r15,1),%r15 + + cmpl $0,%r9d + je L$CBC_DECRYPT + + andq $-16,%rdx + andq $15,%rcx + leaq (%r12,%rdx,1),%rdx + movq %r14,0(%rsp) + movq %rdx,8(%rsp) + movq %rcx,16(%rsp) + + cmpq %r12,%rdx + movl 0(%rbx),%r8d + movl 4(%rbx),%r9d + movl 8(%rbx),%r10d + movl 12(%rbx),%r11d + je L$cbc_enc_tail + jmp L$cbc_eloop + +.p2align 4 +L$cbc_eloop: + xorl 0(%r12),%r8d + xorl 4(%r12),%r9d + xorl 8(%r12),%r10d + bswapl %r8d + xorl 12(%r12),%r11d + bswapl %r9d + bswapl %r10d + bswapl %r11d + + call _x86_64_Camellia_encrypt + + movq 0(%rsp),%r14 + bswapl %r8d + movq 8(%rsp),%rdx + bswapl %r9d + movq 16(%rsp),%rcx + bswapl %r10d + movl %r8d,0(%r13) + bswapl %r11d + movl %r9d,4(%r13) + movl %r10d,8(%r13) + leaq 16(%r12),%r12 + movl %r11d,12(%r13) + cmpq %rdx,%r12 + leaq 16(%r13),%r13 + jne L$cbc_eloop + + cmpq $0,%rcx + jne L$cbc_enc_tail + + movq 40(%rsp),%r13 + movl %r8d,0(%r13) + movl %r9d,4(%r13) + movl %r10d,8(%r13) + movl %r11d,12(%r13) + jmp L$cbc_done + +.p2align 4 +L$cbc_enc_tail: + xorq %rax,%rax + movq %rax,0+24(%rsp) + movq %rax,8+24(%rsp) + movq %rax,16(%rsp) + +L$cbc_enc_pushf: + pushfq + cld + movq %r12,%rsi + leaq 8+24(%rsp),%rdi +.long 0x9066A4F3 + popfq +L$cbc_enc_popf: + + leaq 24(%rsp),%r12 + leaq 16+24(%rsp),%rax + movq %rax,8(%rsp) + jmp L$cbc_eloop + +.p2align 4 +L$CBC_DECRYPT: + xchgq %r14,%r15 + addq $15,%rdx + andq $15,%rcx + andq $-16,%rdx + movq %r14,0(%rsp) + leaq (%r12,%rdx,1),%rdx + movq %rdx,8(%rsp) + movq %rcx,16(%rsp) + + movq (%rbx),%rax + movq 8(%rbx),%rbx + jmp L$cbc_dloop +.p2align 4 +L$cbc_dloop: + movl 0(%r12),%r8d + movl 4(%r12),%r9d + movl 8(%r12),%r10d + bswapl %r8d + movl 12(%r12),%r11d + bswapl %r9d + movq %rax,0+24(%rsp) + bswapl %r10d + movq %rbx,8+24(%rsp) + bswapl %r11d + + call _x86_64_Camellia_decrypt + + movq 0(%rsp),%r14 + movq 8(%rsp),%rdx + movq 16(%rsp),%rcx + + bswapl %r8d + movq (%r12),%rax + bswapl %r9d + movq 8(%r12),%rbx + bswapl %r10d + xorl 0+24(%rsp),%r8d + bswapl %r11d + xorl 4+24(%rsp),%r9d + xorl 8+24(%rsp),%r10d + leaq 16(%r12),%r12 + xorl 12+24(%rsp),%r11d + cmpq %rdx,%r12 + je L$cbc_ddone + + movl %r8d,0(%r13) + movl %r9d,4(%r13) + movl %r10d,8(%r13) + movl %r11d,12(%r13) + + leaq 16(%r13),%r13 + jmp L$cbc_dloop + +.p2align 4 +L$cbc_ddone: + movq 40(%rsp),%rdx + cmpq $0,%rcx + jne L$cbc_dec_tail + + movl %r8d,0(%r13) + movl %r9d,4(%r13) + movl %r10d,8(%r13) + movl %r11d,12(%r13) + + movq %rax,(%rdx) + movq %rbx,8(%rdx) + jmp L$cbc_done +.p2align 4 +L$cbc_dec_tail: + movl %r8d,0+24(%rsp) + movl %r9d,4+24(%rsp) + movl %r10d,8+24(%rsp) + movl %r11d,12+24(%rsp) + +L$cbc_dec_pushf: + pushfq + cld + leaq 8+24(%rsp),%rsi + leaq (%r13),%rdi +.long 0x9066A4F3 + popfq +L$cbc_dec_popf: + + movq %rax,(%rdx) + movq %rbx,8(%rdx) + jmp L$cbc_done + +.p2align 4 +L$cbc_done: + movq 48(%rsp),%rcx + + movq 0(%rcx),%r15 + + movq 8(%rcx),%r14 + + movq 16(%rcx),%r13 + + movq 24(%rcx),%r12 + + movq 32(%rcx),%rbp + + movq 40(%rcx),%rbx + + leaq 48(%rcx),%rsp + +L$cbc_abort: + .byte 0xf3,0xc3 + + + +.byte 67,97,109,101,108,108,105,97,32,102,111,114,32,120,56,54,95,54,52,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 diff --git a/vere/ext/openssl/gen/macos-x86_64/crypto/chacha/chacha-x86_64.s b/vere/ext/openssl/gen/macos-x86_64/crypto/chacha/chacha-x86_64.s new file mode 100644 index 0000000..fd8910b --- /dev/null +++ b/vere/ext/openssl/gen/macos-x86_64/crypto/chacha/chacha-x86_64.s @@ -0,0 +1,2187 @@ +.text + + + +.p2align 6 +L$zero: +.long 0,0,0,0 +L$one: +.long 1,0,0,0 +L$inc: +.long 0,1,2,3 +L$four: +.long 4,4,4,4 +L$incy: +.long 0,2,4,6,1,3,5,7 +L$eight: +.long 8,8,8,8,8,8,8,8 +L$rot16: +.byte 0x2,0x3,0x0,0x1, 0x6,0x7,0x4,0x5, 0xa,0xb,0x8,0x9, 0xe,0xf,0xc,0xd +L$rot24: +.byte 0x3,0x0,0x1,0x2, 0x7,0x4,0x5,0x6, 0xb,0x8,0x9,0xa, 0xf,0xc,0xd,0xe +L$twoy: +.long 2,0,0,0, 2,0,0,0 +.p2align 6 +L$zeroz: +.long 0,0,0,0, 1,0,0,0, 2,0,0,0, 3,0,0,0 +L$fourz: +.long 4,0,0,0, 4,0,0,0, 4,0,0,0, 4,0,0,0 +L$incz: +.long 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 +L$sixteen: +.long 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16 +L$sigma: +.byte 101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107,0 +.byte 67,104,97,67,104,97,50,48,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.globl _ChaCha20_ctr32 + +.p2align 6 +_ChaCha20_ctr32: + + cmpq $0,%rdx + je L$no_data + movq _OPENSSL_ia32cap_P+4(%rip),%r10 + testl $512,%r10d + jnz L$ChaCha20_ssse3 + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + subq $64+24,%rsp + +L$ctr32_body: + + + movdqu (%rcx),%xmm1 + movdqu 16(%rcx),%xmm2 + movdqu (%r8),%xmm3 + movdqa L$one(%rip),%xmm4 + + + movdqa %xmm1,16(%rsp) + movdqa %xmm2,32(%rsp) + movdqa %xmm3,48(%rsp) + movq %rdx,%rbp + jmp L$oop_outer + +.p2align 5 +L$oop_outer: + movl $0x61707865,%eax + movl $0x3320646e,%ebx + movl $0x79622d32,%ecx + movl $0x6b206574,%edx + movl 16(%rsp),%r8d + movl 20(%rsp),%r9d + movl 24(%rsp),%r10d + movl 28(%rsp),%r11d + movd %xmm3,%r12d + movl 52(%rsp),%r13d + movl 56(%rsp),%r14d + movl 60(%rsp),%r15d + + movq %rbp,64+0(%rsp) + movl $10,%ebp + movq %rsi,64+8(%rsp) +.byte 102,72,15,126,214 + movq %rdi,64+16(%rsp) + movq %rsi,%rdi + shrq $32,%rdi + jmp L$oop + +.p2align 5 +L$oop: + addl %r8d,%eax + xorl %eax,%r12d + roll $16,%r12d + addl %r9d,%ebx + xorl %ebx,%r13d + roll $16,%r13d + addl %r12d,%esi + xorl %esi,%r8d + roll $12,%r8d + addl %r13d,%edi + xorl %edi,%r9d + roll $12,%r9d + addl %r8d,%eax + xorl %eax,%r12d + roll $8,%r12d + addl %r9d,%ebx + xorl %ebx,%r13d + roll $8,%r13d + addl %r12d,%esi + xorl %esi,%r8d + roll $7,%r8d + addl %r13d,%edi + xorl %edi,%r9d + roll $7,%r9d + movl %esi,32(%rsp) + movl %edi,36(%rsp) + movl 40(%rsp),%esi + movl 44(%rsp),%edi + addl %r10d,%ecx + xorl %ecx,%r14d + roll $16,%r14d + addl %r11d,%edx + xorl %edx,%r15d + roll $16,%r15d + addl %r14d,%esi + xorl %esi,%r10d + roll $12,%r10d + addl %r15d,%edi + xorl %edi,%r11d + roll $12,%r11d + addl %r10d,%ecx + xorl %ecx,%r14d + roll $8,%r14d + addl %r11d,%edx + xorl %edx,%r15d + roll $8,%r15d + addl %r14d,%esi + xorl %esi,%r10d + roll $7,%r10d + addl %r15d,%edi + xorl %edi,%r11d + roll $7,%r11d + addl %r9d,%eax + xorl %eax,%r15d + roll $16,%r15d + addl %r10d,%ebx + xorl %ebx,%r12d + roll $16,%r12d + addl %r15d,%esi + xorl %esi,%r9d + roll $12,%r9d + addl %r12d,%edi + xorl %edi,%r10d + roll $12,%r10d + addl %r9d,%eax + xorl %eax,%r15d + roll $8,%r15d + addl %r10d,%ebx + xorl %ebx,%r12d + roll $8,%r12d + addl %r15d,%esi + xorl %esi,%r9d + roll $7,%r9d + addl %r12d,%edi + xorl %edi,%r10d + roll $7,%r10d + movl %esi,40(%rsp) + movl %edi,44(%rsp) + movl 32(%rsp),%esi + movl 36(%rsp),%edi + addl %r11d,%ecx + xorl %ecx,%r13d + roll $16,%r13d + addl %r8d,%edx + xorl %edx,%r14d + roll $16,%r14d + addl %r13d,%esi + xorl %esi,%r11d + roll $12,%r11d + addl %r14d,%edi + xorl %edi,%r8d + roll $12,%r8d + addl %r11d,%ecx + xorl %ecx,%r13d + roll $8,%r13d + addl %r8d,%edx + xorl %edx,%r14d + roll $8,%r14d + addl %r13d,%esi + xorl %esi,%r11d + roll $7,%r11d + addl %r14d,%edi + xorl %edi,%r8d + roll $7,%r8d + decl %ebp + jnz L$oop + movl %edi,36(%rsp) + movl %esi,32(%rsp) + movq 64(%rsp),%rbp + movdqa %xmm2,%xmm1 + movq 64+8(%rsp),%rsi + paddd %xmm4,%xmm3 + movq 64+16(%rsp),%rdi + + addl $0x61707865,%eax + addl $0x3320646e,%ebx + addl $0x79622d32,%ecx + addl $0x6b206574,%edx + addl 16(%rsp),%r8d + addl 20(%rsp),%r9d + addl 24(%rsp),%r10d + addl 28(%rsp),%r11d + addl 48(%rsp),%r12d + addl 52(%rsp),%r13d + addl 56(%rsp),%r14d + addl 60(%rsp),%r15d + paddd 32(%rsp),%xmm1 + + cmpq $64,%rbp + jb L$tail + + xorl 0(%rsi),%eax + xorl 4(%rsi),%ebx + xorl 8(%rsi),%ecx + xorl 12(%rsi),%edx + xorl 16(%rsi),%r8d + xorl 20(%rsi),%r9d + xorl 24(%rsi),%r10d + xorl 28(%rsi),%r11d + movdqu 32(%rsi),%xmm0 + xorl 48(%rsi),%r12d + xorl 52(%rsi),%r13d + xorl 56(%rsi),%r14d + xorl 60(%rsi),%r15d + leaq 64(%rsi),%rsi + pxor %xmm1,%xmm0 + + movdqa %xmm2,32(%rsp) + movd %xmm3,48(%rsp) + + movl %eax,0(%rdi) + movl %ebx,4(%rdi) + movl %ecx,8(%rdi) + movl %edx,12(%rdi) + movl %r8d,16(%rdi) + movl %r9d,20(%rdi) + movl %r10d,24(%rdi) + movl %r11d,28(%rdi) + movdqu %xmm0,32(%rdi) + movl %r12d,48(%rdi) + movl %r13d,52(%rdi) + movl %r14d,56(%rdi) + movl %r15d,60(%rdi) + leaq 64(%rdi),%rdi + + subq $64,%rbp + jnz L$oop_outer + + jmp L$done + +.p2align 4 +L$tail: + movl %eax,0(%rsp) + movl %ebx,4(%rsp) + xorq %rbx,%rbx + movl %ecx,8(%rsp) + movl %edx,12(%rsp) + movl %r8d,16(%rsp) + movl %r9d,20(%rsp) + movl %r10d,24(%rsp) + movl %r11d,28(%rsp) + movdqa %xmm1,32(%rsp) + movl %r12d,48(%rsp) + movl %r13d,52(%rsp) + movl %r14d,56(%rsp) + movl %r15d,60(%rsp) + +L$oop_tail: + movzbl (%rsi,%rbx,1),%eax + movzbl (%rsp,%rbx,1),%edx + leaq 1(%rbx),%rbx + xorl %edx,%eax + movb %al,-1(%rdi,%rbx,1) + decq %rbp + jnz L$oop_tail + +L$done: + leaq 64+24+48(%rsp),%rsi + + movq -48(%rsi),%r15 + + movq -40(%rsi),%r14 + + movq -32(%rsi),%r13 + + movq -24(%rsi),%r12 + + movq -16(%rsi),%rbp + + movq -8(%rsi),%rbx + + leaq (%rsi),%rsp + +L$no_data: + .byte 0xf3,0xc3 + + + +.p2align 5 +ChaCha20_ssse3: + +L$ChaCha20_ssse3: + movq %rsp,%r9 + + testl $2048,%r10d + jnz L$ChaCha20_4xop + cmpq $128,%rdx + je L$ChaCha20_128 + ja L$ChaCha20_4x + +L$do_sse3_after_all: + subq $64+8,%rsp + movdqa L$sigma(%rip),%xmm0 + movdqu (%rcx),%xmm1 + movdqu 16(%rcx),%xmm2 + movdqu (%r8),%xmm3 + movdqa L$rot16(%rip),%xmm6 + movdqa L$rot24(%rip),%xmm7 + + movdqa %xmm0,0(%rsp) + movdqa %xmm1,16(%rsp) + movdqa %xmm2,32(%rsp) + movdqa %xmm3,48(%rsp) + movq $10,%r8 + jmp L$oop_ssse3 + +.p2align 5 +L$oop_outer_ssse3: + movdqa L$one(%rip),%xmm3 + movdqa 0(%rsp),%xmm0 + movdqa 16(%rsp),%xmm1 + movdqa 32(%rsp),%xmm2 + paddd 48(%rsp),%xmm3 + movq $10,%r8 + movdqa %xmm3,48(%rsp) + jmp L$oop_ssse3 + +.p2align 5 +L$oop_ssse3: + paddd %xmm1,%xmm0 + pxor %xmm0,%xmm3 +.byte 102,15,56,0,222 + paddd %xmm3,%xmm2 + pxor %xmm2,%xmm1 + movdqa %xmm1,%xmm4 + psrld $20,%xmm1 + pslld $12,%xmm4 + por %xmm4,%xmm1 + paddd %xmm1,%xmm0 + pxor %xmm0,%xmm3 +.byte 102,15,56,0,223 + paddd %xmm3,%xmm2 + pxor %xmm2,%xmm1 + movdqa %xmm1,%xmm4 + psrld $25,%xmm1 + pslld $7,%xmm4 + por %xmm4,%xmm1 + pshufd $78,%xmm2,%xmm2 + pshufd $57,%xmm1,%xmm1 + pshufd $147,%xmm3,%xmm3 + nop + paddd %xmm1,%xmm0 + pxor %xmm0,%xmm3 +.byte 102,15,56,0,222 + paddd %xmm3,%xmm2 + pxor %xmm2,%xmm1 + movdqa %xmm1,%xmm4 + psrld $20,%xmm1 + pslld $12,%xmm4 + por %xmm4,%xmm1 + paddd %xmm1,%xmm0 + pxor %xmm0,%xmm3 +.byte 102,15,56,0,223 + paddd %xmm3,%xmm2 + pxor %xmm2,%xmm1 + movdqa %xmm1,%xmm4 + psrld $25,%xmm1 + pslld $7,%xmm4 + por %xmm4,%xmm1 + pshufd $78,%xmm2,%xmm2 + pshufd $147,%xmm1,%xmm1 + pshufd $57,%xmm3,%xmm3 + decq %r8 + jnz L$oop_ssse3 + paddd 0(%rsp),%xmm0 + paddd 16(%rsp),%xmm1 + paddd 32(%rsp),%xmm2 + paddd 48(%rsp),%xmm3 + + cmpq $64,%rdx + jb L$tail_ssse3 + + movdqu 0(%rsi),%xmm4 + movdqu 16(%rsi),%xmm5 + pxor %xmm4,%xmm0 + movdqu 32(%rsi),%xmm4 + pxor %xmm5,%xmm1 + movdqu 48(%rsi),%xmm5 + leaq 64(%rsi),%rsi + pxor %xmm4,%xmm2 + pxor %xmm5,%xmm3 + + movdqu %xmm0,0(%rdi) + movdqu %xmm1,16(%rdi) + movdqu %xmm2,32(%rdi) + movdqu %xmm3,48(%rdi) + leaq 64(%rdi),%rdi + + subq $64,%rdx + jnz L$oop_outer_ssse3 + + jmp L$done_ssse3 + +.p2align 4 +L$tail_ssse3: + movdqa %xmm0,0(%rsp) + movdqa %xmm1,16(%rsp) + movdqa %xmm2,32(%rsp) + movdqa %xmm3,48(%rsp) + xorq %r8,%r8 + +L$oop_tail_ssse3: + movzbl (%rsi,%r8,1),%eax + movzbl (%rsp,%r8,1),%ecx + leaq 1(%r8),%r8 + xorl %ecx,%eax + movb %al,-1(%rdi,%r8,1) + decq %rdx + jnz L$oop_tail_ssse3 + +L$done_ssse3: + leaq (%r9),%rsp + +L$ssse3_epilogue: + .byte 0xf3,0xc3 + + + +.p2align 5 +ChaCha20_128: + +L$ChaCha20_128: + movq %rsp,%r9 + + subq $64+8,%rsp + movdqa L$sigma(%rip),%xmm8 + movdqu (%rcx),%xmm9 + movdqu 16(%rcx),%xmm2 + movdqu (%r8),%xmm3 + movdqa L$one(%rip),%xmm1 + movdqa L$rot16(%rip),%xmm6 + movdqa L$rot24(%rip),%xmm7 + + movdqa %xmm8,%xmm10 + movdqa %xmm8,0(%rsp) + movdqa %xmm9,%xmm11 + movdqa %xmm9,16(%rsp) + movdqa %xmm2,%xmm0 + movdqa %xmm2,32(%rsp) + paddd %xmm3,%xmm1 + movdqa %xmm3,48(%rsp) + movq $10,%r8 + jmp L$oop_128 + +.p2align 5 +L$oop_128: + paddd %xmm9,%xmm8 + pxor %xmm8,%xmm3 + paddd %xmm11,%xmm10 + pxor %xmm10,%xmm1 +.byte 102,15,56,0,222 +.byte 102,15,56,0,206 + paddd %xmm3,%xmm2 + paddd %xmm1,%xmm0 + pxor %xmm2,%xmm9 + pxor %xmm0,%xmm11 + movdqa %xmm9,%xmm4 + psrld $20,%xmm9 + movdqa %xmm11,%xmm5 + pslld $12,%xmm4 + psrld $20,%xmm11 + por %xmm4,%xmm9 + pslld $12,%xmm5 + por %xmm5,%xmm11 + paddd %xmm9,%xmm8 + pxor %xmm8,%xmm3 + paddd %xmm11,%xmm10 + pxor %xmm10,%xmm1 +.byte 102,15,56,0,223 +.byte 102,15,56,0,207 + paddd %xmm3,%xmm2 + paddd %xmm1,%xmm0 + pxor %xmm2,%xmm9 + pxor %xmm0,%xmm11 + movdqa %xmm9,%xmm4 + psrld $25,%xmm9 + movdqa %xmm11,%xmm5 + pslld $7,%xmm4 + psrld $25,%xmm11 + por %xmm4,%xmm9 + pslld $7,%xmm5 + por %xmm5,%xmm11 + pshufd $78,%xmm2,%xmm2 + pshufd $57,%xmm9,%xmm9 + pshufd $147,%xmm3,%xmm3 + pshufd $78,%xmm0,%xmm0 + pshufd $57,%xmm11,%xmm11 + pshufd $147,%xmm1,%xmm1 + paddd %xmm9,%xmm8 + pxor %xmm8,%xmm3 + paddd %xmm11,%xmm10 + pxor %xmm10,%xmm1 +.byte 102,15,56,0,222 +.byte 102,15,56,0,206 + paddd %xmm3,%xmm2 + paddd %xmm1,%xmm0 + pxor %xmm2,%xmm9 + pxor %xmm0,%xmm11 + movdqa %xmm9,%xmm4 + psrld $20,%xmm9 + movdqa %xmm11,%xmm5 + pslld $12,%xmm4 + psrld $20,%xmm11 + por %xmm4,%xmm9 + pslld $12,%xmm5 + por %xmm5,%xmm11 + paddd %xmm9,%xmm8 + pxor %xmm8,%xmm3 + paddd %xmm11,%xmm10 + pxor %xmm10,%xmm1 +.byte 102,15,56,0,223 +.byte 102,15,56,0,207 + paddd %xmm3,%xmm2 + paddd %xmm1,%xmm0 + pxor %xmm2,%xmm9 + pxor %xmm0,%xmm11 + movdqa %xmm9,%xmm4 + psrld $25,%xmm9 + movdqa %xmm11,%xmm5 + pslld $7,%xmm4 + psrld $25,%xmm11 + por %xmm4,%xmm9 + pslld $7,%xmm5 + por %xmm5,%xmm11 + pshufd $78,%xmm2,%xmm2 + pshufd $147,%xmm9,%xmm9 + pshufd $57,%xmm3,%xmm3 + pshufd $78,%xmm0,%xmm0 + pshufd $147,%xmm11,%xmm11 + pshufd $57,%xmm1,%xmm1 + decq %r8 + jnz L$oop_128 + paddd 0(%rsp),%xmm8 + paddd 16(%rsp),%xmm9 + paddd 32(%rsp),%xmm2 + paddd 48(%rsp),%xmm3 + paddd L$one(%rip),%xmm1 + paddd 0(%rsp),%xmm10 + paddd 16(%rsp),%xmm11 + paddd 32(%rsp),%xmm0 + paddd 48(%rsp),%xmm1 + + movdqu 0(%rsi),%xmm4 + movdqu 16(%rsi),%xmm5 + pxor %xmm4,%xmm8 + movdqu 32(%rsi),%xmm4 + pxor %xmm5,%xmm9 + movdqu 48(%rsi),%xmm5 + pxor %xmm4,%xmm2 + movdqu 64(%rsi),%xmm4 + pxor %xmm5,%xmm3 + movdqu 80(%rsi),%xmm5 + pxor %xmm4,%xmm10 + movdqu 96(%rsi),%xmm4 + pxor %xmm5,%xmm11 + movdqu 112(%rsi),%xmm5 + pxor %xmm4,%xmm0 + pxor %xmm5,%xmm1 + + movdqu %xmm8,0(%rdi) + movdqu %xmm9,16(%rdi) + movdqu %xmm2,32(%rdi) + movdqu %xmm3,48(%rdi) + movdqu %xmm10,64(%rdi) + movdqu %xmm11,80(%rdi) + movdqu %xmm0,96(%rdi) + movdqu %xmm1,112(%rdi) + leaq (%r9),%rsp + +L$128_epilogue: + .byte 0xf3,0xc3 + + + +.p2align 5 +ChaCha20_4x: + +L$ChaCha20_4x: + movq %rsp,%r9 + + movq %r10,%r11 + shrq $32,%r10 + testq $32,%r10 + jnz L$ChaCha20_8x + cmpq $192,%rdx + ja L$proceed4x + + andq $71303168,%r11 + cmpq $4194304,%r11 + je L$do_sse3_after_all + +L$proceed4x: + subq $0x140+8,%rsp + movdqa L$sigma(%rip),%xmm11 + movdqu (%rcx),%xmm15 + movdqu 16(%rcx),%xmm7 + movdqu (%r8),%xmm3 + leaq 256(%rsp),%rcx + leaq L$rot16(%rip),%r10 + leaq L$rot24(%rip),%r11 + + pshufd $0x00,%xmm11,%xmm8 + pshufd $0x55,%xmm11,%xmm9 + movdqa %xmm8,64(%rsp) + pshufd $0xaa,%xmm11,%xmm10 + movdqa %xmm9,80(%rsp) + pshufd $0xff,%xmm11,%xmm11 + movdqa %xmm10,96(%rsp) + movdqa %xmm11,112(%rsp) + + pshufd $0x00,%xmm15,%xmm12 + pshufd $0x55,%xmm15,%xmm13 + movdqa %xmm12,128-256(%rcx) + pshufd $0xaa,%xmm15,%xmm14 + movdqa %xmm13,144-256(%rcx) + pshufd $0xff,%xmm15,%xmm15 + movdqa %xmm14,160-256(%rcx) + movdqa %xmm15,176-256(%rcx) + + pshufd $0x00,%xmm7,%xmm4 + pshufd $0x55,%xmm7,%xmm5 + movdqa %xmm4,192-256(%rcx) + pshufd $0xaa,%xmm7,%xmm6 + movdqa %xmm5,208-256(%rcx) + pshufd $0xff,%xmm7,%xmm7 + movdqa %xmm6,224-256(%rcx) + movdqa %xmm7,240-256(%rcx) + + pshufd $0x00,%xmm3,%xmm0 + pshufd $0x55,%xmm3,%xmm1 + paddd L$inc(%rip),%xmm0 + pshufd $0xaa,%xmm3,%xmm2 + movdqa %xmm1,272-256(%rcx) + pshufd $0xff,%xmm3,%xmm3 + movdqa %xmm2,288-256(%rcx) + movdqa %xmm3,304-256(%rcx) + + jmp L$oop_enter4x + +.p2align 5 +L$oop_outer4x: + movdqa 64(%rsp),%xmm8 + movdqa 80(%rsp),%xmm9 + movdqa 96(%rsp),%xmm10 + movdqa 112(%rsp),%xmm11 + movdqa 128-256(%rcx),%xmm12 + movdqa 144-256(%rcx),%xmm13 + movdqa 160-256(%rcx),%xmm14 + movdqa 176-256(%rcx),%xmm15 + movdqa 192-256(%rcx),%xmm4 + movdqa 208-256(%rcx),%xmm5 + movdqa 224-256(%rcx),%xmm6 + movdqa 240-256(%rcx),%xmm7 + movdqa 256-256(%rcx),%xmm0 + movdqa 272-256(%rcx),%xmm1 + movdqa 288-256(%rcx),%xmm2 + movdqa 304-256(%rcx),%xmm3 + paddd L$four(%rip),%xmm0 + +L$oop_enter4x: + movdqa %xmm6,32(%rsp) + movdqa %xmm7,48(%rsp) + movdqa (%r10),%xmm7 + movl $10,%eax + movdqa %xmm0,256-256(%rcx) + jmp L$oop4x + +.p2align 5 +L$oop4x: + paddd %xmm12,%xmm8 + paddd %xmm13,%xmm9 + pxor %xmm8,%xmm0 + pxor %xmm9,%xmm1 +.byte 102,15,56,0,199 +.byte 102,15,56,0,207 + paddd %xmm0,%xmm4 + paddd %xmm1,%xmm5 + pxor %xmm4,%xmm12 + pxor %xmm5,%xmm13 + movdqa %xmm12,%xmm6 + pslld $12,%xmm12 + psrld $20,%xmm6 + movdqa %xmm13,%xmm7 + pslld $12,%xmm13 + por %xmm6,%xmm12 + psrld $20,%xmm7 + movdqa (%r11),%xmm6 + por %xmm7,%xmm13 + paddd %xmm12,%xmm8 + paddd %xmm13,%xmm9 + pxor %xmm8,%xmm0 + pxor %xmm9,%xmm1 +.byte 102,15,56,0,198 +.byte 102,15,56,0,206 + paddd %xmm0,%xmm4 + paddd %xmm1,%xmm5 + pxor %xmm4,%xmm12 + pxor %xmm5,%xmm13 + movdqa %xmm12,%xmm7 + pslld $7,%xmm12 + psrld $25,%xmm7 + movdqa %xmm13,%xmm6 + pslld $7,%xmm13 + por %xmm7,%xmm12 + psrld $25,%xmm6 + movdqa (%r10),%xmm7 + por %xmm6,%xmm13 + movdqa %xmm4,0(%rsp) + movdqa %xmm5,16(%rsp) + movdqa 32(%rsp),%xmm4 + movdqa 48(%rsp),%xmm5 + paddd %xmm14,%xmm10 + paddd %xmm15,%xmm11 + pxor %xmm10,%xmm2 + pxor %xmm11,%xmm3 +.byte 102,15,56,0,215 +.byte 102,15,56,0,223 + paddd %xmm2,%xmm4 + paddd %xmm3,%xmm5 + pxor %xmm4,%xmm14 + pxor %xmm5,%xmm15 + movdqa %xmm14,%xmm6 + pslld $12,%xmm14 + psrld $20,%xmm6 + movdqa %xmm15,%xmm7 + pslld $12,%xmm15 + por %xmm6,%xmm14 + psrld $20,%xmm7 + movdqa (%r11),%xmm6 + por %xmm7,%xmm15 + paddd %xmm14,%xmm10 + paddd %xmm15,%xmm11 + pxor %xmm10,%xmm2 + pxor %xmm11,%xmm3 +.byte 102,15,56,0,214 +.byte 102,15,56,0,222 + paddd %xmm2,%xmm4 + paddd %xmm3,%xmm5 + pxor %xmm4,%xmm14 + pxor %xmm5,%xmm15 + movdqa %xmm14,%xmm7 + pslld $7,%xmm14 + psrld $25,%xmm7 + movdqa %xmm15,%xmm6 + pslld $7,%xmm15 + por %xmm7,%xmm14 + psrld $25,%xmm6 + movdqa (%r10),%xmm7 + por %xmm6,%xmm15 + paddd %xmm13,%xmm8 + paddd %xmm14,%xmm9 + pxor %xmm8,%xmm3 + pxor %xmm9,%xmm0 +.byte 102,15,56,0,223 +.byte 102,15,56,0,199 + paddd %xmm3,%xmm4 + paddd %xmm0,%xmm5 + pxor %xmm4,%xmm13 + pxor %xmm5,%xmm14 + movdqa %xmm13,%xmm6 + pslld $12,%xmm13 + psrld $20,%xmm6 + movdqa %xmm14,%xmm7 + pslld $12,%xmm14 + por %xmm6,%xmm13 + psrld $20,%xmm7 + movdqa (%r11),%xmm6 + por %xmm7,%xmm14 + paddd %xmm13,%xmm8 + paddd %xmm14,%xmm9 + pxor %xmm8,%xmm3 + pxor %xmm9,%xmm0 +.byte 102,15,56,0,222 +.byte 102,15,56,0,198 + paddd %xmm3,%xmm4 + paddd %xmm0,%xmm5 + pxor %xmm4,%xmm13 + pxor %xmm5,%xmm14 + movdqa %xmm13,%xmm7 + pslld $7,%xmm13 + psrld $25,%xmm7 + movdqa %xmm14,%xmm6 + pslld $7,%xmm14 + por %xmm7,%xmm13 + psrld $25,%xmm6 + movdqa (%r10),%xmm7 + por %xmm6,%xmm14 + movdqa %xmm4,32(%rsp) + movdqa %xmm5,48(%rsp) + movdqa 0(%rsp),%xmm4 + movdqa 16(%rsp),%xmm5 + paddd %xmm15,%xmm10 + paddd %xmm12,%xmm11 + pxor %xmm10,%xmm1 + pxor %xmm11,%xmm2 +.byte 102,15,56,0,207 +.byte 102,15,56,0,215 + paddd %xmm1,%xmm4 + paddd %xmm2,%xmm5 + pxor %xmm4,%xmm15 + pxor %xmm5,%xmm12 + movdqa %xmm15,%xmm6 + pslld $12,%xmm15 + psrld $20,%xmm6 + movdqa %xmm12,%xmm7 + pslld $12,%xmm12 + por %xmm6,%xmm15 + psrld $20,%xmm7 + movdqa (%r11),%xmm6 + por %xmm7,%xmm12 + paddd %xmm15,%xmm10 + paddd %xmm12,%xmm11 + pxor %xmm10,%xmm1 + pxor %xmm11,%xmm2 +.byte 102,15,56,0,206 +.byte 102,15,56,0,214 + paddd %xmm1,%xmm4 + paddd %xmm2,%xmm5 + pxor %xmm4,%xmm15 + pxor %xmm5,%xmm12 + movdqa %xmm15,%xmm7 + pslld $7,%xmm15 + psrld $25,%xmm7 + movdqa %xmm12,%xmm6 + pslld $7,%xmm12 + por %xmm7,%xmm15 + psrld $25,%xmm6 + movdqa (%r10),%xmm7 + por %xmm6,%xmm12 + decl %eax + jnz L$oop4x + + paddd 64(%rsp),%xmm8 + paddd 80(%rsp),%xmm9 + paddd 96(%rsp),%xmm10 + paddd 112(%rsp),%xmm11 + + movdqa %xmm8,%xmm6 + punpckldq %xmm9,%xmm8 + movdqa %xmm10,%xmm7 + punpckldq %xmm11,%xmm10 + punpckhdq %xmm9,%xmm6 + punpckhdq %xmm11,%xmm7 + movdqa %xmm8,%xmm9 + punpcklqdq %xmm10,%xmm8 + movdqa %xmm6,%xmm11 + punpcklqdq %xmm7,%xmm6 + punpckhqdq %xmm10,%xmm9 + punpckhqdq %xmm7,%xmm11 + paddd 128-256(%rcx),%xmm12 + paddd 144-256(%rcx),%xmm13 + paddd 160-256(%rcx),%xmm14 + paddd 176-256(%rcx),%xmm15 + + movdqa %xmm8,0(%rsp) + movdqa %xmm9,16(%rsp) + movdqa 32(%rsp),%xmm8 + movdqa 48(%rsp),%xmm9 + + movdqa %xmm12,%xmm10 + punpckldq %xmm13,%xmm12 + movdqa %xmm14,%xmm7 + punpckldq %xmm15,%xmm14 + punpckhdq %xmm13,%xmm10 + punpckhdq %xmm15,%xmm7 + movdqa %xmm12,%xmm13 + punpcklqdq %xmm14,%xmm12 + movdqa %xmm10,%xmm15 + punpcklqdq %xmm7,%xmm10 + punpckhqdq %xmm14,%xmm13 + punpckhqdq %xmm7,%xmm15 + paddd 192-256(%rcx),%xmm4 + paddd 208-256(%rcx),%xmm5 + paddd 224-256(%rcx),%xmm8 + paddd 240-256(%rcx),%xmm9 + + movdqa %xmm6,32(%rsp) + movdqa %xmm11,48(%rsp) + + movdqa %xmm4,%xmm14 + punpckldq %xmm5,%xmm4 + movdqa %xmm8,%xmm7 + punpckldq %xmm9,%xmm8 + punpckhdq %xmm5,%xmm14 + punpckhdq %xmm9,%xmm7 + movdqa %xmm4,%xmm5 + punpcklqdq %xmm8,%xmm4 + movdqa %xmm14,%xmm9 + punpcklqdq %xmm7,%xmm14 + punpckhqdq %xmm8,%xmm5 + punpckhqdq %xmm7,%xmm9 + paddd 256-256(%rcx),%xmm0 + paddd 272-256(%rcx),%xmm1 + paddd 288-256(%rcx),%xmm2 + paddd 304-256(%rcx),%xmm3 + + movdqa %xmm0,%xmm8 + punpckldq %xmm1,%xmm0 + movdqa %xmm2,%xmm7 + punpckldq %xmm3,%xmm2 + punpckhdq %xmm1,%xmm8 + punpckhdq %xmm3,%xmm7 + movdqa %xmm0,%xmm1 + punpcklqdq %xmm2,%xmm0 + movdqa %xmm8,%xmm3 + punpcklqdq %xmm7,%xmm8 + punpckhqdq %xmm2,%xmm1 + punpckhqdq %xmm7,%xmm3 + cmpq $256,%rdx + jb L$tail4x + + movdqu 0(%rsi),%xmm6 + movdqu 16(%rsi),%xmm11 + movdqu 32(%rsi),%xmm2 + movdqu 48(%rsi),%xmm7 + pxor 0(%rsp),%xmm6 + pxor %xmm12,%xmm11 + pxor %xmm4,%xmm2 + pxor %xmm0,%xmm7 + + movdqu %xmm6,0(%rdi) + movdqu 64(%rsi),%xmm6 + movdqu %xmm11,16(%rdi) + movdqu 80(%rsi),%xmm11 + movdqu %xmm2,32(%rdi) + movdqu 96(%rsi),%xmm2 + movdqu %xmm7,48(%rdi) + movdqu 112(%rsi),%xmm7 + leaq 128(%rsi),%rsi + pxor 16(%rsp),%xmm6 + pxor %xmm13,%xmm11 + pxor %xmm5,%xmm2 + pxor %xmm1,%xmm7 + + movdqu %xmm6,64(%rdi) + movdqu 0(%rsi),%xmm6 + movdqu %xmm11,80(%rdi) + movdqu 16(%rsi),%xmm11 + movdqu %xmm2,96(%rdi) + movdqu 32(%rsi),%xmm2 + movdqu %xmm7,112(%rdi) + leaq 128(%rdi),%rdi + movdqu 48(%rsi),%xmm7 + pxor 32(%rsp),%xmm6 + pxor %xmm10,%xmm11 + pxor %xmm14,%xmm2 + pxor %xmm8,%xmm7 + + movdqu %xmm6,0(%rdi) + movdqu 64(%rsi),%xmm6 + movdqu %xmm11,16(%rdi) + movdqu 80(%rsi),%xmm11 + movdqu %xmm2,32(%rdi) + movdqu 96(%rsi),%xmm2 + movdqu %xmm7,48(%rdi) + movdqu 112(%rsi),%xmm7 + leaq 128(%rsi),%rsi + pxor 48(%rsp),%xmm6 + pxor %xmm15,%xmm11 + pxor %xmm9,%xmm2 + pxor %xmm3,%xmm7 + movdqu %xmm6,64(%rdi) + movdqu %xmm11,80(%rdi) + movdqu %xmm2,96(%rdi) + movdqu %xmm7,112(%rdi) + leaq 128(%rdi),%rdi + + subq $256,%rdx + jnz L$oop_outer4x + + jmp L$done4x + +L$tail4x: + cmpq $192,%rdx + jae L$192_or_more4x + cmpq $128,%rdx + jae L$128_or_more4x + cmpq $64,%rdx + jae L$64_or_more4x + + + xorq %r10,%r10 + + movdqa %xmm12,16(%rsp) + movdqa %xmm4,32(%rsp) + movdqa %xmm0,48(%rsp) + jmp L$oop_tail4x + +.p2align 5 +L$64_or_more4x: + movdqu 0(%rsi),%xmm6 + movdqu 16(%rsi),%xmm11 + movdqu 32(%rsi),%xmm2 + movdqu 48(%rsi),%xmm7 + pxor 0(%rsp),%xmm6 + pxor %xmm12,%xmm11 + pxor %xmm4,%xmm2 + pxor %xmm0,%xmm7 + movdqu %xmm6,0(%rdi) + movdqu %xmm11,16(%rdi) + movdqu %xmm2,32(%rdi) + movdqu %xmm7,48(%rdi) + je L$done4x + + movdqa 16(%rsp),%xmm6 + leaq 64(%rsi),%rsi + xorq %r10,%r10 + movdqa %xmm6,0(%rsp) + movdqa %xmm13,16(%rsp) + leaq 64(%rdi),%rdi + movdqa %xmm5,32(%rsp) + subq $64,%rdx + movdqa %xmm1,48(%rsp) + jmp L$oop_tail4x + +.p2align 5 +L$128_or_more4x: + movdqu 0(%rsi),%xmm6 + movdqu 16(%rsi),%xmm11 + movdqu 32(%rsi),%xmm2 + movdqu 48(%rsi),%xmm7 + pxor 0(%rsp),%xmm6 + pxor %xmm12,%xmm11 + pxor %xmm4,%xmm2 + pxor %xmm0,%xmm7 + + movdqu %xmm6,0(%rdi) + movdqu 64(%rsi),%xmm6 + movdqu %xmm11,16(%rdi) + movdqu 80(%rsi),%xmm11 + movdqu %xmm2,32(%rdi) + movdqu 96(%rsi),%xmm2 + movdqu %xmm7,48(%rdi) + movdqu 112(%rsi),%xmm7 + pxor 16(%rsp),%xmm6 + pxor %xmm13,%xmm11 + pxor %xmm5,%xmm2 + pxor %xmm1,%xmm7 + movdqu %xmm6,64(%rdi) + movdqu %xmm11,80(%rdi) + movdqu %xmm2,96(%rdi) + movdqu %xmm7,112(%rdi) + je L$done4x + + movdqa 32(%rsp),%xmm6 + leaq 128(%rsi),%rsi + xorq %r10,%r10 + movdqa %xmm6,0(%rsp) + movdqa %xmm10,16(%rsp) + leaq 128(%rdi),%rdi + movdqa %xmm14,32(%rsp) + subq $128,%rdx + movdqa %xmm8,48(%rsp) + jmp L$oop_tail4x + +.p2align 5 +L$192_or_more4x: + movdqu 0(%rsi),%xmm6 + movdqu 16(%rsi),%xmm11 + movdqu 32(%rsi),%xmm2 + movdqu 48(%rsi),%xmm7 + pxor 0(%rsp),%xmm6 + pxor %xmm12,%xmm11 + pxor %xmm4,%xmm2 + pxor %xmm0,%xmm7 + + movdqu %xmm6,0(%rdi) + movdqu 64(%rsi),%xmm6 + movdqu %xmm11,16(%rdi) + movdqu 80(%rsi),%xmm11 + movdqu %xmm2,32(%rdi) + movdqu 96(%rsi),%xmm2 + movdqu %xmm7,48(%rdi) + movdqu 112(%rsi),%xmm7 + leaq 128(%rsi),%rsi + pxor 16(%rsp),%xmm6 + pxor %xmm13,%xmm11 + pxor %xmm5,%xmm2 + pxor %xmm1,%xmm7 + + movdqu %xmm6,64(%rdi) + movdqu 0(%rsi),%xmm6 + movdqu %xmm11,80(%rdi) + movdqu 16(%rsi),%xmm11 + movdqu %xmm2,96(%rdi) + movdqu 32(%rsi),%xmm2 + movdqu %xmm7,112(%rdi) + leaq 128(%rdi),%rdi + movdqu 48(%rsi),%xmm7 + pxor 32(%rsp),%xmm6 + pxor %xmm10,%xmm11 + pxor %xmm14,%xmm2 + pxor %xmm8,%xmm7 + movdqu %xmm6,0(%rdi) + movdqu %xmm11,16(%rdi) + movdqu %xmm2,32(%rdi) + movdqu %xmm7,48(%rdi) + je L$done4x + + movdqa 48(%rsp),%xmm6 + leaq 64(%rsi),%rsi + xorq %r10,%r10 + movdqa %xmm6,0(%rsp) + movdqa %xmm15,16(%rsp) + leaq 64(%rdi),%rdi + movdqa %xmm9,32(%rsp) + subq $192,%rdx + movdqa %xmm3,48(%rsp) + +L$oop_tail4x: + movzbl (%rsi,%r10,1),%eax + movzbl (%rsp,%r10,1),%ecx + leaq 1(%r10),%r10 + xorl %ecx,%eax + movb %al,-1(%rdi,%r10,1) + decq %rdx + jnz L$oop_tail4x + +L$done4x: + leaq (%r9),%rsp + +L$4x_epilogue: + .byte 0xf3,0xc3 + + + +.p2align 5 +ChaCha20_4xop: + +L$ChaCha20_4xop: + movq %rsp,%r9 + + subq $0x140+8,%rsp + vzeroupper + + vmovdqa L$sigma(%rip),%xmm11 + vmovdqu (%rcx),%xmm3 + vmovdqu 16(%rcx),%xmm15 + vmovdqu (%r8),%xmm7 + leaq 256(%rsp),%rcx + + vpshufd $0x00,%xmm11,%xmm8 + vpshufd $0x55,%xmm11,%xmm9 + vmovdqa %xmm8,64(%rsp) + vpshufd $0xaa,%xmm11,%xmm10 + vmovdqa %xmm9,80(%rsp) + vpshufd $0xff,%xmm11,%xmm11 + vmovdqa %xmm10,96(%rsp) + vmovdqa %xmm11,112(%rsp) + + vpshufd $0x00,%xmm3,%xmm0 + vpshufd $0x55,%xmm3,%xmm1 + vmovdqa %xmm0,128-256(%rcx) + vpshufd $0xaa,%xmm3,%xmm2 + vmovdqa %xmm1,144-256(%rcx) + vpshufd $0xff,%xmm3,%xmm3 + vmovdqa %xmm2,160-256(%rcx) + vmovdqa %xmm3,176-256(%rcx) + + vpshufd $0x00,%xmm15,%xmm12 + vpshufd $0x55,%xmm15,%xmm13 + vmovdqa %xmm12,192-256(%rcx) + vpshufd $0xaa,%xmm15,%xmm14 + vmovdqa %xmm13,208-256(%rcx) + vpshufd $0xff,%xmm15,%xmm15 + vmovdqa %xmm14,224-256(%rcx) + vmovdqa %xmm15,240-256(%rcx) + + vpshufd $0x00,%xmm7,%xmm4 + vpshufd $0x55,%xmm7,%xmm5 + vpaddd L$inc(%rip),%xmm4,%xmm4 + vpshufd $0xaa,%xmm7,%xmm6 + vmovdqa %xmm5,272-256(%rcx) + vpshufd $0xff,%xmm7,%xmm7 + vmovdqa %xmm6,288-256(%rcx) + vmovdqa %xmm7,304-256(%rcx) + + jmp L$oop_enter4xop + +.p2align 5 +L$oop_outer4xop: + vmovdqa 64(%rsp),%xmm8 + vmovdqa 80(%rsp),%xmm9 + vmovdqa 96(%rsp),%xmm10 + vmovdqa 112(%rsp),%xmm11 + vmovdqa 128-256(%rcx),%xmm0 + vmovdqa 144-256(%rcx),%xmm1 + vmovdqa 160-256(%rcx),%xmm2 + vmovdqa 176-256(%rcx),%xmm3 + vmovdqa 192-256(%rcx),%xmm12 + vmovdqa 208-256(%rcx),%xmm13 + vmovdqa 224-256(%rcx),%xmm14 + vmovdqa 240-256(%rcx),%xmm15 + vmovdqa 256-256(%rcx),%xmm4 + vmovdqa 272-256(%rcx),%xmm5 + vmovdqa 288-256(%rcx),%xmm6 + vmovdqa 304-256(%rcx),%xmm7 + vpaddd L$four(%rip),%xmm4,%xmm4 + +L$oop_enter4xop: + movl $10,%eax + vmovdqa %xmm4,256-256(%rcx) + jmp L$oop4xop + +.p2align 5 +L$oop4xop: + vpaddd %xmm0,%xmm8,%xmm8 + vpaddd %xmm1,%xmm9,%xmm9 + vpaddd %xmm2,%xmm10,%xmm10 + vpaddd %xmm3,%xmm11,%xmm11 + vpxor %xmm4,%xmm8,%xmm4 + vpxor %xmm5,%xmm9,%xmm5 + vpxor %xmm6,%xmm10,%xmm6 + vpxor %xmm7,%xmm11,%xmm7 +.byte 143,232,120,194,228,16 +.byte 143,232,120,194,237,16 +.byte 143,232,120,194,246,16 +.byte 143,232,120,194,255,16 + vpaddd %xmm4,%xmm12,%xmm12 + vpaddd %xmm5,%xmm13,%xmm13 + vpaddd %xmm6,%xmm14,%xmm14 + vpaddd %xmm7,%xmm15,%xmm15 + vpxor %xmm0,%xmm12,%xmm0 + vpxor %xmm1,%xmm13,%xmm1 + vpxor %xmm14,%xmm2,%xmm2 + vpxor %xmm15,%xmm3,%xmm3 +.byte 143,232,120,194,192,12 +.byte 143,232,120,194,201,12 +.byte 143,232,120,194,210,12 +.byte 143,232,120,194,219,12 + vpaddd %xmm8,%xmm0,%xmm8 + vpaddd %xmm9,%xmm1,%xmm9 + vpaddd %xmm2,%xmm10,%xmm10 + vpaddd %xmm3,%xmm11,%xmm11 + vpxor %xmm4,%xmm8,%xmm4 + vpxor %xmm5,%xmm9,%xmm5 + vpxor %xmm6,%xmm10,%xmm6 + vpxor %xmm7,%xmm11,%xmm7 +.byte 143,232,120,194,228,8 +.byte 143,232,120,194,237,8 +.byte 143,232,120,194,246,8 +.byte 143,232,120,194,255,8 + vpaddd %xmm4,%xmm12,%xmm12 + vpaddd %xmm5,%xmm13,%xmm13 + vpaddd %xmm6,%xmm14,%xmm14 + vpaddd %xmm7,%xmm15,%xmm15 + vpxor %xmm0,%xmm12,%xmm0 + vpxor %xmm1,%xmm13,%xmm1 + vpxor %xmm14,%xmm2,%xmm2 + vpxor %xmm15,%xmm3,%xmm3 +.byte 143,232,120,194,192,7 +.byte 143,232,120,194,201,7 +.byte 143,232,120,194,210,7 +.byte 143,232,120,194,219,7 + vpaddd %xmm1,%xmm8,%xmm8 + vpaddd %xmm2,%xmm9,%xmm9 + vpaddd %xmm3,%xmm10,%xmm10 + vpaddd %xmm0,%xmm11,%xmm11 + vpxor %xmm7,%xmm8,%xmm7 + vpxor %xmm4,%xmm9,%xmm4 + vpxor %xmm5,%xmm10,%xmm5 + vpxor %xmm6,%xmm11,%xmm6 +.byte 143,232,120,194,255,16 +.byte 143,232,120,194,228,16 +.byte 143,232,120,194,237,16 +.byte 143,232,120,194,246,16 + vpaddd %xmm7,%xmm14,%xmm14 + vpaddd %xmm4,%xmm15,%xmm15 + vpaddd %xmm5,%xmm12,%xmm12 + vpaddd %xmm6,%xmm13,%xmm13 + vpxor %xmm1,%xmm14,%xmm1 + vpxor %xmm2,%xmm15,%xmm2 + vpxor %xmm12,%xmm3,%xmm3 + vpxor %xmm13,%xmm0,%xmm0 +.byte 143,232,120,194,201,12 +.byte 143,232,120,194,210,12 +.byte 143,232,120,194,219,12 +.byte 143,232,120,194,192,12 + vpaddd %xmm8,%xmm1,%xmm8 + vpaddd %xmm9,%xmm2,%xmm9 + vpaddd %xmm3,%xmm10,%xmm10 + vpaddd %xmm0,%xmm11,%xmm11 + vpxor %xmm7,%xmm8,%xmm7 + vpxor %xmm4,%xmm9,%xmm4 + vpxor %xmm5,%xmm10,%xmm5 + vpxor %xmm6,%xmm11,%xmm6 +.byte 143,232,120,194,255,8 +.byte 143,232,120,194,228,8 +.byte 143,232,120,194,237,8 +.byte 143,232,120,194,246,8 + vpaddd %xmm7,%xmm14,%xmm14 + vpaddd %xmm4,%xmm15,%xmm15 + vpaddd %xmm5,%xmm12,%xmm12 + vpaddd %xmm6,%xmm13,%xmm13 + vpxor %xmm1,%xmm14,%xmm1 + vpxor %xmm2,%xmm15,%xmm2 + vpxor %xmm12,%xmm3,%xmm3 + vpxor %xmm13,%xmm0,%xmm0 +.byte 143,232,120,194,201,7 +.byte 143,232,120,194,210,7 +.byte 143,232,120,194,219,7 +.byte 143,232,120,194,192,7 + decl %eax + jnz L$oop4xop + + vpaddd 64(%rsp),%xmm8,%xmm8 + vpaddd 80(%rsp),%xmm9,%xmm9 + vpaddd 96(%rsp),%xmm10,%xmm10 + vpaddd 112(%rsp),%xmm11,%xmm11 + + vmovdqa %xmm14,32(%rsp) + vmovdqa %xmm15,48(%rsp) + + vpunpckldq %xmm9,%xmm8,%xmm14 + vpunpckldq %xmm11,%xmm10,%xmm15 + vpunpckhdq %xmm9,%xmm8,%xmm8 + vpunpckhdq %xmm11,%xmm10,%xmm10 + vpunpcklqdq %xmm15,%xmm14,%xmm9 + vpunpckhqdq %xmm15,%xmm14,%xmm14 + vpunpcklqdq %xmm10,%xmm8,%xmm11 + vpunpckhqdq %xmm10,%xmm8,%xmm8 + vpaddd 128-256(%rcx),%xmm0,%xmm0 + vpaddd 144-256(%rcx),%xmm1,%xmm1 + vpaddd 160-256(%rcx),%xmm2,%xmm2 + vpaddd 176-256(%rcx),%xmm3,%xmm3 + + vmovdqa %xmm9,0(%rsp) + vmovdqa %xmm14,16(%rsp) + vmovdqa 32(%rsp),%xmm9 + vmovdqa 48(%rsp),%xmm14 + + vpunpckldq %xmm1,%xmm0,%xmm10 + vpunpckldq %xmm3,%xmm2,%xmm15 + vpunpckhdq %xmm1,%xmm0,%xmm0 + vpunpckhdq %xmm3,%xmm2,%xmm2 + vpunpcklqdq %xmm15,%xmm10,%xmm1 + vpunpckhqdq %xmm15,%xmm10,%xmm10 + vpunpcklqdq %xmm2,%xmm0,%xmm3 + vpunpckhqdq %xmm2,%xmm0,%xmm0 + vpaddd 192-256(%rcx),%xmm12,%xmm12 + vpaddd 208-256(%rcx),%xmm13,%xmm13 + vpaddd 224-256(%rcx),%xmm9,%xmm9 + vpaddd 240-256(%rcx),%xmm14,%xmm14 + + vpunpckldq %xmm13,%xmm12,%xmm2 + vpunpckldq %xmm14,%xmm9,%xmm15 + vpunpckhdq %xmm13,%xmm12,%xmm12 + vpunpckhdq %xmm14,%xmm9,%xmm9 + vpunpcklqdq %xmm15,%xmm2,%xmm13 + vpunpckhqdq %xmm15,%xmm2,%xmm2 + vpunpcklqdq %xmm9,%xmm12,%xmm14 + vpunpckhqdq %xmm9,%xmm12,%xmm12 + vpaddd 256-256(%rcx),%xmm4,%xmm4 + vpaddd 272-256(%rcx),%xmm5,%xmm5 + vpaddd 288-256(%rcx),%xmm6,%xmm6 + vpaddd 304-256(%rcx),%xmm7,%xmm7 + + vpunpckldq %xmm5,%xmm4,%xmm9 + vpunpckldq %xmm7,%xmm6,%xmm15 + vpunpckhdq %xmm5,%xmm4,%xmm4 + vpunpckhdq %xmm7,%xmm6,%xmm6 + vpunpcklqdq %xmm15,%xmm9,%xmm5 + vpunpckhqdq %xmm15,%xmm9,%xmm9 + vpunpcklqdq %xmm6,%xmm4,%xmm7 + vpunpckhqdq %xmm6,%xmm4,%xmm4 + vmovdqa 0(%rsp),%xmm6 + vmovdqa 16(%rsp),%xmm15 + + cmpq $256,%rdx + jb L$tail4xop + + vpxor 0(%rsi),%xmm6,%xmm6 + vpxor 16(%rsi),%xmm1,%xmm1 + vpxor 32(%rsi),%xmm13,%xmm13 + vpxor 48(%rsi),%xmm5,%xmm5 + vpxor 64(%rsi),%xmm15,%xmm15 + vpxor 80(%rsi),%xmm10,%xmm10 + vpxor 96(%rsi),%xmm2,%xmm2 + vpxor 112(%rsi),%xmm9,%xmm9 + leaq 128(%rsi),%rsi + vpxor 0(%rsi),%xmm11,%xmm11 + vpxor 16(%rsi),%xmm3,%xmm3 + vpxor 32(%rsi),%xmm14,%xmm14 + vpxor 48(%rsi),%xmm7,%xmm7 + vpxor 64(%rsi),%xmm8,%xmm8 + vpxor 80(%rsi),%xmm0,%xmm0 + vpxor 96(%rsi),%xmm12,%xmm12 + vpxor 112(%rsi),%xmm4,%xmm4 + leaq 128(%rsi),%rsi + + vmovdqu %xmm6,0(%rdi) + vmovdqu %xmm1,16(%rdi) + vmovdqu %xmm13,32(%rdi) + vmovdqu %xmm5,48(%rdi) + vmovdqu %xmm15,64(%rdi) + vmovdqu %xmm10,80(%rdi) + vmovdqu %xmm2,96(%rdi) + vmovdqu %xmm9,112(%rdi) + leaq 128(%rdi),%rdi + vmovdqu %xmm11,0(%rdi) + vmovdqu %xmm3,16(%rdi) + vmovdqu %xmm14,32(%rdi) + vmovdqu %xmm7,48(%rdi) + vmovdqu %xmm8,64(%rdi) + vmovdqu %xmm0,80(%rdi) + vmovdqu %xmm12,96(%rdi) + vmovdqu %xmm4,112(%rdi) + leaq 128(%rdi),%rdi + + subq $256,%rdx + jnz L$oop_outer4xop + + jmp L$done4xop + +.p2align 5 +L$tail4xop: + cmpq $192,%rdx + jae L$192_or_more4xop + cmpq $128,%rdx + jae L$128_or_more4xop + cmpq $64,%rdx + jae L$64_or_more4xop + + xorq %r10,%r10 + vmovdqa %xmm6,0(%rsp) + vmovdqa %xmm1,16(%rsp) + vmovdqa %xmm13,32(%rsp) + vmovdqa %xmm5,48(%rsp) + jmp L$oop_tail4xop + +.p2align 5 +L$64_or_more4xop: + vpxor 0(%rsi),%xmm6,%xmm6 + vpxor 16(%rsi),%xmm1,%xmm1 + vpxor 32(%rsi),%xmm13,%xmm13 + vpxor 48(%rsi),%xmm5,%xmm5 + vmovdqu %xmm6,0(%rdi) + vmovdqu %xmm1,16(%rdi) + vmovdqu %xmm13,32(%rdi) + vmovdqu %xmm5,48(%rdi) + je L$done4xop + + leaq 64(%rsi),%rsi + vmovdqa %xmm15,0(%rsp) + xorq %r10,%r10 + vmovdqa %xmm10,16(%rsp) + leaq 64(%rdi),%rdi + vmovdqa %xmm2,32(%rsp) + subq $64,%rdx + vmovdqa %xmm9,48(%rsp) + jmp L$oop_tail4xop + +.p2align 5 +L$128_or_more4xop: + vpxor 0(%rsi),%xmm6,%xmm6 + vpxor 16(%rsi),%xmm1,%xmm1 + vpxor 32(%rsi),%xmm13,%xmm13 + vpxor 48(%rsi),%xmm5,%xmm5 + vpxor 64(%rsi),%xmm15,%xmm15 + vpxor 80(%rsi),%xmm10,%xmm10 + vpxor 96(%rsi),%xmm2,%xmm2 + vpxor 112(%rsi),%xmm9,%xmm9 + + vmovdqu %xmm6,0(%rdi) + vmovdqu %xmm1,16(%rdi) + vmovdqu %xmm13,32(%rdi) + vmovdqu %xmm5,48(%rdi) + vmovdqu %xmm15,64(%rdi) + vmovdqu %xmm10,80(%rdi) + vmovdqu %xmm2,96(%rdi) + vmovdqu %xmm9,112(%rdi) + je L$done4xop + + leaq 128(%rsi),%rsi + vmovdqa %xmm11,0(%rsp) + xorq %r10,%r10 + vmovdqa %xmm3,16(%rsp) + leaq 128(%rdi),%rdi + vmovdqa %xmm14,32(%rsp) + subq $128,%rdx + vmovdqa %xmm7,48(%rsp) + jmp L$oop_tail4xop + +.p2align 5 +L$192_or_more4xop: + vpxor 0(%rsi),%xmm6,%xmm6 + vpxor 16(%rsi),%xmm1,%xmm1 + vpxor 32(%rsi),%xmm13,%xmm13 + vpxor 48(%rsi),%xmm5,%xmm5 + vpxor 64(%rsi),%xmm15,%xmm15 + vpxor 80(%rsi),%xmm10,%xmm10 + vpxor 96(%rsi),%xmm2,%xmm2 + vpxor 112(%rsi),%xmm9,%xmm9 + leaq 128(%rsi),%rsi + vpxor 0(%rsi),%xmm11,%xmm11 + vpxor 16(%rsi),%xmm3,%xmm3 + vpxor 32(%rsi),%xmm14,%xmm14 + vpxor 48(%rsi),%xmm7,%xmm7 + + vmovdqu %xmm6,0(%rdi) + vmovdqu %xmm1,16(%rdi) + vmovdqu %xmm13,32(%rdi) + vmovdqu %xmm5,48(%rdi) + vmovdqu %xmm15,64(%rdi) + vmovdqu %xmm10,80(%rdi) + vmovdqu %xmm2,96(%rdi) + vmovdqu %xmm9,112(%rdi) + leaq 128(%rdi),%rdi + vmovdqu %xmm11,0(%rdi) + vmovdqu %xmm3,16(%rdi) + vmovdqu %xmm14,32(%rdi) + vmovdqu %xmm7,48(%rdi) + je L$done4xop + + leaq 64(%rsi),%rsi + vmovdqa %xmm8,0(%rsp) + xorq %r10,%r10 + vmovdqa %xmm0,16(%rsp) + leaq 64(%rdi),%rdi + vmovdqa %xmm12,32(%rsp) + subq $192,%rdx + vmovdqa %xmm4,48(%rsp) + +L$oop_tail4xop: + movzbl (%rsi,%r10,1),%eax + movzbl (%rsp,%r10,1),%ecx + leaq 1(%r10),%r10 + xorl %ecx,%eax + movb %al,-1(%rdi,%r10,1) + decq %rdx + jnz L$oop_tail4xop + +L$done4xop: + vzeroupper + leaq (%r9),%rsp + +L$4xop_epilogue: + .byte 0xf3,0xc3 + + + +.p2align 5 +ChaCha20_8x: + +L$ChaCha20_8x: + movq %rsp,%r9 + + subq $0x280+8,%rsp + andq $-32,%rsp + vzeroupper + + + + + + + + + + + vbroadcasti128 L$sigma(%rip),%ymm11 + vbroadcasti128 (%rcx),%ymm3 + vbroadcasti128 16(%rcx),%ymm15 + vbroadcasti128 (%r8),%ymm7 + leaq 256(%rsp),%rcx + leaq 512(%rsp),%rax + leaq L$rot16(%rip),%r10 + leaq L$rot24(%rip),%r11 + + vpshufd $0x00,%ymm11,%ymm8 + vpshufd $0x55,%ymm11,%ymm9 + vmovdqa %ymm8,128-256(%rcx) + vpshufd $0xaa,%ymm11,%ymm10 + vmovdqa %ymm9,160-256(%rcx) + vpshufd $0xff,%ymm11,%ymm11 + vmovdqa %ymm10,192-256(%rcx) + vmovdqa %ymm11,224-256(%rcx) + + vpshufd $0x00,%ymm3,%ymm0 + vpshufd $0x55,%ymm3,%ymm1 + vmovdqa %ymm0,256-256(%rcx) + vpshufd $0xaa,%ymm3,%ymm2 + vmovdqa %ymm1,288-256(%rcx) + vpshufd $0xff,%ymm3,%ymm3 + vmovdqa %ymm2,320-256(%rcx) + vmovdqa %ymm3,352-256(%rcx) + + vpshufd $0x00,%ymm15,%ymm12 + vpshufd $0x55,%ymm15,%ymm13 + vmovdqa %ymm12,384-512(%rax) + vpshufd $0xaa,%ymm15,%ymm14 + vmovdqa %ymm13,416-512(%rax) + vpshufd $0xff,%ymm15,%ymm15 + vmovdqa %ymm14,448-512(%rax) + vmovdqa %ymm15,480-512(%rax) + + vpshufd $0x00,%ymm7,%ymm4 + vpshufd $0x55,%ymm7,%ymm5 + vpaddd L$incy(%rip),%ymm4,%ymm4 + vpshufd $0xaa,%ymm7,%ymm6 + vmovdqa %ymm5,544-512(%rax) + vpshufd $0xff,%ymm7,%ymm7 + vmovdqa %ymm6,576-512(%rax) + vmovdqa %ymm7,608-512(%rax) + + jmp L$oop_enter8x + +.p2align 5 +L$oop_outer8x: + vmovdqa 128-256(%rcx),%ymm8 + vmovdqa 160-256(%rcx),%ymm9 + vmovdqa 192-256(%rcx),%ymm10 + vmovdqa 224-256(%rcx),%ymm11 + vmovdqa 256-256(%rcx),%ymm0 + vmovdqa 288-256(%rcx),%ymm1 + vmovdqa 320-256(%rcx),%ymm2 + vmovdqa 352-256(%rcx),%ymm3 + vmovdqa 384-512(%rax),%ymm12 + vmovdqa 416-512(%rax),%ymm13 + vmovdqa 448-512(%rax),%ymm14 + vmovdqa 480-512(%rax),%ymm15 + vmovdqa 512-512(%rax),%ymm4 + vmovdqa 544-512(%rax),%ymm5 + vmovdqa 576-512(%rax),%ymm6 + vmovdqa 608-512(%rax),%ymm7 + vpaddd L$eight(%rip),%ymm4,%ymm4 + +L$oop_enter8x: + vmovdqa %ymm14,64(%rsp) + vmovdqa %ymm15,96(%rsp) + vbroadcasti128 (%r10),%ymm15 + vmovdqa %ymm4,512-512(%rax) + movl $10,%eax + jmp L$oop8x + +.p2align 5 +L$oop8x: + vpaddd %ymm0,%ymm8,%ymm8 + vpxor %ymm4,%ymm8,%ymm4 + vpshufb %ymm15,%ymm4,%ymm4 + vpaddd %ymm1,%ymm9,%ymm9 + vpxor %ymm5,%ymm9,%ymm5 + vpshufb %ymm15,%ymm5,%ymm5 + vpaddd %ymm4,%ymm12,%ymm12 + vpxor %ymm0,%ymm12,%ymm0 + vpslld $12,%ymm0,%ymm14 + vpsrld $20,%ymm0,%ymm0 + vpor %ymm0,%ymm14,%ymm0 + vbroadcasti128 (%r11),%ymm14 + vpaddd %ymm5,%ymm13,%ymm13 + vpxor %ymm1,%ymm13,%ymm1 + vpslld $12,%ymm1,%ymm15 + vpsrld $20,%ymm1,%ymm1 + vpor %ymm1,%ymm15,%ymm1 + vpaddd %ymm0,%ymm8,%ymm8 + vpxor %ymm4,%ymm8,%ymm4 + vpshufb %ymm14,%ymm4,%ymm4 + vpaddd %ymm1,%ymm9,%ymm9 + vpxor %ymm5,%ymm9,%ymm5 + vpshufb %ymm14,%ymm5,%ymm5 + vpaddd %ymm4,%ymm12,%ymm12 + vpxor %ymm0,%ymm12,%ymm0 + vpslld $7,%ymm0,%ymm15 + vpsrld $25,%ymm0,%ymm0 + vpor %ymm0,%ymm15,%ymm0 + vbroadcasti128 (%r10),%ymm15 + vpaddd %ymm5,%ymm13,%ymm13 + vpxor %ymm1,%ymm13,%ymm1 + vpslld $7,%ymm1,%ymm14 + vpsrld $25,%ymm1,%ymm1 + vpor %ymm1,%ymm14,%ymm1 + vmovdqa %ymm12,0(%rsp) + vmovdqa %ymm13,32(%rsp) + vmovdqa 64(%rsp),%ymm12 + vmovdqa 96(%rsp),%ymm13 + vpaddd %ymm2,%ymm10,%ymm10 + vpxor %ymm6,%ymm10,%ymm6 + vpshufb %ymm15,%ymm6,%ymm6 + vpaddd %ymm3,%ymm11,%ymm11 + vpxor %ymm7,%ymm11,%ymm7 + vpshufb %ymm15,%ymm7,%ymm7 + vpaddd %ymm6,%ymm12,%ymm12 + vpxor %ymm2,%ymm12,%ymm2 + vpslld $12,%ymm2,%ymm14 + vpsrld $20,%ymm2,%ymm2 + vpor %ymm2,%ymm14,%ymm2 + vbroadcasti128 (%r11),%ymm14 + vpaddd %ymm7,%ymm13,%ymm13 + vpxor %ymm3,%ymm13,%ymm3 + vpslld $12,%ymm3,%ymm15 + vpsrld $20,%ymm3,%ymm3 + vpor %ymm3,%ymm15,%ymm3 + vpaddd %ymm2,%ymm10,%ymm10 + vpxor %ymm6,%ymm10,%ymm6 + vpshufb %ymm14,%ymm6,%ymm6 + vpaddd %ymm3,%ymm11,%ymm11 + vpxor %ymm7,%ymm11,%ymm7 + vpshufb %ymm14,%ymm7,%ymm7 + vpaddd %ymm6,%ymm12,%ymm12 + vpxor %ymm2,%ymm12,%ymm2 + vpslld $7,%ymm2,%ymm15 + vpsrld $25,%ymm2,%ymm2 + vpor %ymm2,%ymm15,%ymm2 + vbroadcasti128 (%r10),%ymm15 + vpaddd %ymm7,%ymm13,%ymm13 + vpxor %ymm3,%ymm13,%ymm3 + vpslld $7,%ymm3,%ymm14 + vpsrld $25,%ymm3,%ymm3 + vpor %ymm3,%ymm14,%ymm3 + vpaddd %ymm1,%ymm8,%ymm8 + vpxor %ymm7,%ymm8,%ymm7 + vpshufb %ymm15,%ymm7,%ymm7 + vpaddd %ymm2,%ymm9,%ymm9 + vpxor %ymm4,%ymm9,%ymm4 + vpshufb %ymm15,%ymm4,%ymm4 + vpaddd %ymm7,%ymm12,%ymm12 + vpxor %ymm1,%ymm12,%ymm1 + vpslld $12,%ymm1,%ymm14 + vpsrld $20,%ymm1,%ymm1 + vpor %ymm1,%ymm14,%ymm1 + vbroadcasti128 (%r11),%ymm14 + vpaddd %ymm4,%ymm13,%ymm13 + vpxor %ymm2,%ymm13,%ymm2 + vpslld $12,%ymm2,%ymm15 + vpsrld $20,%ymm2,%ymm2 + vpor %ymm2,%ymm15,%ymm2 + vpaddd %ymm1,%ymm8,%ymm8 + vpxor %ymm7,%ymm8,%ymm7 + vpshufb %ymm14,%ymm7,%ymm7 + vpaddd %ymm2,%ymm9,%ymm9 + vpxor %ymm4,%ymm9,%ymm4 + vpshufb %ymm14,%ymm4,%ymm4 + vpaddd %ymm7,%ymm12,%ymm12 + vpxor %ymm1,%ymm12,%ymm1 + vpslld $7,%ymm1,%ymm15 + vpsrld $25,%ymm1,%ymm1 + vpor %ymm1,%ymm15,%ymm1 + vbroadcasti128 (%r10),%ymm15 + vpaddd %ymm4,%ymm13,%ymm13 + vpxor %ymm2,%ymm13,%ymm2 + vpslld $7,%ymm2,%ymm14 + vpsrld $25,%ymm2,%ymm2 + vpor %ymm2,%ymm14,%ymm2 + vmovdqa %ymm12,64(%rsp) + vmovdqa %ymm13,96(%rsp) + vmovdqa 0(%rsp),%ymm12 + vmovdqa 32(%rsp),%ymm13 + vpaddd %ymm3,%ymm10,%ymm10 + vpxor %ymm5,%ymm10,%ymm5 + vpshufb %ymm15,%ymm5,%ymm5 + vpaddd %ymm0,%ymm11,%ymm11 + vpxor %ymm6,%ymm11,%ymm6 + vpshufb %ymm15,%ymm6,%ymm6 + vpaddd %ymm5,%ymm12,%ymm12 + vpxor %ymm3,%ymm12,%ymm3 + vpslld $12,%ymm3,%ymm14 + vpsrld $20,%ymm3,%ymm3 + vpor %ymm3,%ymm14,%ymm3 + vbroadcasti128 (%r11),%ymm14 + vpaddd %ymm6,%ymm13,%ymm13 + vpxor %ymm0,%ymm13,%ymm0 + vpslld $12,%ymm0,%ymm15 + vpsrld $20,%ymm0,%ymm0 + vpor %ymm0,%ymm15,%ymm0 + vpaddd %ymm3,%ymm10,%ymm10 + vpxor %ymm5,%ymm10,%ymm5 + vpshufb %ymm14,%ymm5,%ymm5 + vpaddd %ymm0,%ymm11,%ymm11 + vpxor %ymm6,%ymm11,%ymm6 + vpshufb %ymm14,%ymm6,%ymm6 + vpaddd %ymm5,%ymm12,%ymm12 + vpxor %ymm3,%ymm12,%ymm3 + vpslld $7,%ymm3,%ymm15 + vpsrld $25,%ymm3,%ymm3 + vpor %ymm3,%ymm15,%ymm3 + vbroadcasti128 (%r10),%ymm15 + vpaddd %ymm6,%ymm13,%ymm13 + vpxor %ymm0,%ymm13,%ymm0 + vpslld $7,%ymm0,%ymm14 + vpsrld $25,%ymm0,%ymm0 + vpor %ymm0,%ymm14,%ymm0 + decl %eax + jnz L$oop8x + + leaq 512(%rsp),%rax + vpaddd 128-256(%rcx),%ymm8,%ymm8 + vpaddd 160-256(%rcx),%ymm9,%ymm9 + vpaddd 192-256(%rcx),%ymm10,%ymm10 + vpaddd 224-256(%rcx),%ymm11,%ymm11 + + vpunpckldq %ymm9,%ymm8,%ymm14 + vpunpckldq %ymm11,%ymm10,%ymm15 + vpunpckhdq %ymm9,%ymm8,%ymm8 + vpunpckhdq %ymm11,%ymm10,%ymm10 + vpunpcklqdq %ymm15,%ymm14,%ymm9 + vpunpckhqdq %ymm15,%ymm14,%ymm14 + vpunpcklqdq %ymm10,%ymm8,%ymm11 + vpunpckhqdq %ymm10,%ymm8,%ymm8 + vpaddd 256-256(%rcx),%ymm0,%ymm0 + vpaddd 288-256(%rcx),%ymm1,%ymm1 + vpaddd 320-256(%rcx),%ymm2,%ymm2 + vpaddd 352-256(%rcx),%ymm3,%ymm3 + + vpunpckldq %ymm1,%ymm0,%ymm10 + vpunpckldq %ymm3,%ymm2,%ymm15 + vpunpckhdq %ymm1,%ymm0,%ymm0 + vpunpckhdq %ymm3,%ymm2,%ymm2 + vpunpcklqdq %ymm15,%ymm10,%ymm1 + vpunpckhqdq %ymm15,%ymm10,%ymm10 + vpunpcklqdq %ymm2,%ymm0,%ymm3 + vpunpckhqdq %ymm2,%ymm0,%ymm0 + vperm2i128 $0x20,%ymm1,%ymm9,%ymm15 + vperm2i128 $0x31,%ymm1,%ymm9,%ymm1 + vperm2i128 $0x20,%ymm10,%ymm14,%ymm9 + vperm2i128 $0x31,%ymm10,%ymm14,%ymm10 + vperm2i128 $0x20,%ymm3,%ymm11,%ymm14 + vperm2i128 $0x31,%ymm3,%ymm11,%ymm3 + vperm2i128 $0x20,%ymm0,%ymm8,%ymm11 + vperm2i128 $0x31,%ymm0,%ymm8,%ymm0 + vmovdqa %ymm15,0(%rsp) + vmovdqa %ymm9,32(%rsp) + vmovdqa 64(%rsp),%ymm15 + vmovdqa 96(%rsp),%ymm9 + + vpaddd 384-512(%rax),%ymm12,%ymm12 + vpaddd 416-512(%rax),%ymm13,%ymm13 + vpaddd 448-512(%rax),%ymm15,%ymm15 + vpaddd 480-512(%rax),%ymm9,%ymm9 + + vpunpckldq %ymm13,%ymm12,%ymm2 + vpunpckldq %ymm9,%ymm15,%ymm8 + vpunpckhdq %ymm13,%ymm12,%ymm12 + vpunpckhdq %ymm9,%ymm15,%ymm15 + vpunpcklqdq %ymm8,%ymm2,%ymm13 + vpunpckhqdq %ymm8,%ymm2,%ymm2 + vpunpcklqdq %ymm15,%ymm12,%ymm9 + vpunpckhqdq %ymm15,%ymm12,%ymm12 + vpaddd 512-512(%rax),%ymm4,%ymm4 + vpaddd 544-512(%rax),%ymm5,%ymm5 + vpaddd 576-512(%rax),%ymm6,%ymm6 + vpaddd 608-512(%rax),%ymm7,%ymm7 + + vpunpckldq %ymm5,%ymm4,%ymm15 + vpunpckldq %ymm7,%ymm6,%ymm8 + vpunpckhdq %ymm5,%ymm4,%ymm4 + vpunpckhdq %ymm7,%ymm6,%ymm6 + vpunpcklqdq %ymm8,%ymm15,%ymm5 + vpunpckhqdq %ymm8,%ymm15,%ymm15 + vpunpcklqdq %ymm6,%ymm4,%ymm7 + vpunpckhqdq %ymm6,%ymm4,%ymm4 + vperm2i128 $0x20,%ymm5,%ymm13,%ymm8 + vperm2i128 $0x31,%ymm5,%ymm13,%ymm5 + vperm2i128 $0x20,%ymm15,%ymm2,%ymm13 + vperm2i128 $0x31,%ymm15,%ymm2,%ymm15 + vperm2i128 $0x20,%ymm7,%ymm9,%ymm2 + vperm2i128 $0x31,%ymm7,%ymm9,%ymm7 + vperm2i128 $0x20,%ymm4,%ymm12,%ymm9 + vperm2i128 $0x31,%ymm4,%ymm12,%ymm4 + vmovdqa 0(%rsp),%ymm6 + vmovdqa 32(%rsp),%ymm12 + + cmpq $512,%rdx + jb L$tail8x + + vpxor 0(%rsi),%ymm6,%ymm6 + vpxor 32(%rsi),%ymm8,%ymm8 + vpxor 64(%rsi),%ymm1,%ymm1 + vpxor 96(%rsi),%ymm5,%ymm5 + leaq 128(%rsi),%rsi + vmovdqu %ymm6,0(%rdi) + vmovdqu %ymm8,32(%rdi) + vmovdqu %ymm1,64(%rdi) + vmovdqu %ymm5,96(%rdi) + leaq 128(%rdi),%rdi + + vpxor 0(%rsi),%ymm12,%ymm12 + vpxor 32(%rsi),%ymm13,%ymm13 + vpxor 64(%rsi),%ymm10,%ymm10 + vpxor 96(%rsi),%ymm15,%ymm15 + leaq 128(%rsi),%rsi + vmovdqu %ymm12,0(%rdi) + vmovdqu %ymm13,32(%rdi) + vmovdqu %ymm10,64(%rdi) + vmovdqu %ymm15,96(%rdi) + leaq 128(%rdi),%rdi + + vpxor 0(%rsi),%ymm14,%ymm14 + vpxor 32(%rsi),%ymm2,%ymm2 + vpxor 64(%rsi),%ymm3,%ymm3 + vpxor 96(%rsi),%ymm7,%ymm7 + leaq 128(%rsi),%rsi + vmovdqu %ymm14,0(%rdi) + vmovdqu %ymm2,32(%rdi) + vmovdqu %ymm3,64(%rdi) + vmovdqu %ymm7,96(%rdi) + leaq 128(%rdi),%rdi + + vpxor 0(%rsi),%ymm11,%ymm11 + vpxor 32(%rsi),%ymm9,%ymm9 + vpxor 64(%rsi),%ymm0,%ymm0 + vpxor 96(%rsi),%ymm4,%ymm4 + leaq 128(%rsi),%rsi + vmovdqu %ymm11,0(%rdi) + vmovdqu %ymm9,32(%rdi) + vmovdqu %ymm0,64(%rdi) + vmovdqu %ymm4,96(%rdi) + leaq 128(%rdi),%rdi + + subq $512,%rdx + jnz L$oop_outer8x + + jmp L$done8x + +L$tail8x: + cmpq $448,%rdx + jae L$448_or_more8x + cmpq $384,%rdx + jae L$384_or_more8x + cmpq $320,%rdx + jae L$320_or_more8x + cmpq $256,%rdx + jae L$256_or_more8x + cmpq $192,%rdx + jae L$192_or_more8x + cmpq $128,%rdx + jae L$128_or_more8x + cmpq $64,%rdx + jae L$64_or_more8x + + xorq %r10,%r10 + vmovdqa %ymm6,0(%rsp) + vmovdqa %ymm8,32(%rsp) + jmp L$oop_tail8x + +.p2align 5 +L$64_or_more8x: + vpxor 0(%rsi),%ymm6,%ymm6 + vpxor 32(%rsi),%ymm8,%ymm8 + vmovdqu %ymm6,0(%rdi) + vmovdqu %ymm8,32(%rdi) + je L$done8x + + leaq 64(%rsi),%rsi + xorq %r10,%r10 + vmovdqa %ymm1,0(%rsp) + leaq 64(%rdi),%rdi + subq $64,%rdx + vmovdqa %ymm5,32(%rsp) + jmp L$oop_tail8x + +.p2align 5 +L$128_or_more8x: + vpxor 0(%rsi),%ymm6,%ymm6 + vpxor 32(%rsi),%ymm8,%ymm8 + vpxor 64(%rsi),%ymm1,%ymm1 + vpxor 96(%rsi),%ymm5,%ymm5 + vmovdqu %ymm6,0(%rdi) + vmovdqu %ymm8,32(%rdi) + vmovdqu %ymm1,64(%rdi) + vmovdqu %ymm5,96(%rdi) + je L$done8x + + leaq 128(%rsi),%rsi + xorq %r10,%r10 + vmovdqa %ymm12,0(%rsp) + leaq 128(%rdi),%rdi + subq $128,%rdx + vmovdqa %ymm13,32(%rsp) + jmp L$oop_tail8x + +.p2align 5 +L$192_or_more8x: + vpxor 0(%rsi),%ymm6,%ymm6 + vpxor 32(%rsi),%ymm8,%ymm8 + vpxor 64(%rsi),%ymm1,%ymm1 + vpxor 96(%rsi),%ymm5,%ymm5 + vpxor 128(%rsi),%ymm12,%ymm12 + vpxor 160(%rsi),%ymm13,%ymm13 + vmovdqu %ymm6,0(%rdi) + vmovdqu %ymm8,32(%rdi) + vmovdqu %ymm1,64(%rdi) + vmovdqu %ymm5,96(%rdi) + vmovdqu %ymm12,128(%rdi) + vmovdqu %ymm13,160(%rdi) + je L$done8x + + leaq 192(%rsi),%rsi + xorq %r10,%r10 + vmovdqa %ymm10,0(%rsp) + leaq 192(%rdi),%rdi + subq $192,%rdx + vmovdqa %ymm15,32(%rsp) + jmp L$oop_tail8x + +.p2align 5 +L$256_or_more8x: + vpxor 0(%rsi),%ymm6,%ymm6 + vpxor 32(%rsi),%ymm8,%ymm8 + vpxor 64(%rsi),%ymm1,%ymm1 + vpxor 96(%rsi),%ymm5,%ymm5 + vpxor 128(%rsi),%ymm12,%ymm12 + vpxor 160(%rsi),%ymm13,%ymm13 + vpxor 192(%rsi),%ymm10,%ymm10 + vpxor 224(%rsi),%ymm15,%ymm15 + vmovdqu %ymm6,0(%rdi) + vmovdqu %ymm8,32(%rdi) + vmovdqu %ymm1,64(%rdi) + vmovdqu %ymm5,96(%rdi) + vmovdqu %ymm12,128(%rdi) + vmovdqu %ymm13,160(%rdi) + vmovdqu %ymm10,192(%rdi) + vmovdqu %ymm15,224(%rdi) + je L$done8x + + leaq 256(%rsi),%rsi + xorq %r10,%r10 + vmovdqa %ymm14,0(%rsp) + leaq 256(%rdi),%rdi + subq $256,%rdx + vmovdqa %ymm2,32(%rsp) + jmp L$oop_tail8x + +.p2align 5 +L$320_or_more8x: + vpxor 0(%rsi),%ymm6,%ymm6 + vpxor 32(%rsi),%ymm8,%ymm8 + vpxor 64(%rsi),%ymm1,%ymm1 + vpxor 96(%rsi),%ymm5,%ymm5 + vpxor 128(%rsi),%ymm12,%ymm12 + vpxor 160(%rsi),%ymm13,%ymm13 + vpxor 192(%rsi),%ymm10,%ymm10 + vpxor 224(%rsi),%ymm15,%ymm15 + vpxor 256(%rsi),%ymm14,%ymm14 + vpxor 288(%rsi),%ymm2,%ymm2 + vmovdqu %ymm6,0(%rdi) + vmovdqu %ymm8,32(%rdi) + vmovdqu %ymm1,64(%rdi) + vmovdqu %ymm5,96(%rdi) + vmovdqu %ymm12,128(%rdi) + vmovdqu %ymm13,160(%rdi) + vmovdqu %ymm10,192(%rdi) + vmovdqu %ymm15,224(%rdi) + vmovdqu %ymm14,256(%rdi) + vmovdqu %ymm2,288(%rdi) + je L$done8x + + leaq 320(%rsi),%rsi + xorq %r10,%r10 + vmovdqa %ymm3,0(%rsp) + leaq 320(%rdi),%rdi + subq $320,%rdx + vmovdqa %ymm7,32(%rsp) + jmp L$oop_tail8x + +.p2align 5 +L$384_or_more8x: + vpxor 0(%rsi),%ymm6,%ymm6 + vpxor 32(%rsi),%ymm8,%ymm8 + vpxor 64(%rsi),%ymm1,%ymm1 + vpxor 96(%rsi),%ymm5,%ymm5 + vpxor 128(%rsi),%ymm12,%ymm12 + vpxor 160(%rsi),%ymm13,%ymm13 + vpxor 192(%rsi),%ymm10,%ymm10 + vpxor 224(%rsi),%ymm15,%ymm15 + vpxor 256(%rsi),%ymm14,%ymm14 + vpxor 288(%rsi),%ymm2,%ymm2 + vpxor 320(%rsi),%ymm3,%ymm3 + vpxor 352(%rsi),%ymm7,%ymm7 + vmovdqu %ymm6,0(%rdi) + vmovdqu %ymm8,32(%rdi) + vmovdqu %ymm1,64(%rdi) + vmovdqu %ymm5,96(%rdi) + vmovdqu %ymm12,128(%rdi) + vmovdqu %ymm13,160(%rdi) + vmovdqu %ymm10,192(%rdi) + vmovdqu %ymm15,224(%rdi) + vmovdqu %ymm14,256(%rdi) + vmovdqu %ymm2,288(%rdi) + vmovdqu %ymm3,320(%rdi) + vmovdqu %ymm7,352(%rdi) + je L$done8x + + leaq 384(%rsi),%rsi + xorq %r10,%r10 + vmovdqa %ymm11,0(%rsp) + leaq 384(%rdi),%rdi + subq $384,%rdx + vmovdqa %ymm9,32(%rsp) + jmp L$oop_tail8x + +.p2align 5 +L$448_or_more8x: + vpxor 0(%rsi),%ymm6,%ymm6 + vpxor 32(%rsi),%ymm8,%ymm8 + vpxor 64(%rsi),%ymm1,%ymm1 + vpxor 96(%rsi),%ymm5,%ymm5 + vpxor 128(%rsi),%ymm12,%ymm12 + vpxor 160(%rsi),%ymm13,%ymm13 + vpxor 192(%rsi),%ymm10,%ymm10 + vpxor 224(%rsi),%ymm15,%ymm15 + vpxor 256(%rsi),%ymm14,%ymm14 + vpxor 288(%rsi),%ymm2,%ymm2 + vpxor 320(%rsi),%ymm3,%ymm3 + vpxor 352(%rsi),%ymm7,%ymm7 + vpxor 384(%rsi),%ymm11,%ymm11 + vpxor 416(%rsi),%ymm9,%ymm9 + vmovdqu %ymm6,0(%rdi) + vmovdqu %ymm8,32(%rdi) + vmovdqu %ymm1,64(%rdi) + vmovdqu %ymm5,96(%rdi) + vmovdqu %ymm12,128(%rdi) + vmovdqu %ymm13,160(%rdi) + vmovdqu %ymm10,192(%rdi) + vmovdqu %ymm15,224(%rdi) + vmovdqu %ymm14,256(%rdi) + vmovdqu %ymm2,288(%rdi) + vmovdqu %ymm3,320(%rdi) + vmovdqu %ymm7,352(%rdi) + vmovdqu %ymm11,384(%rdi) + vmovdqu %ymm9,416(%rdi) + je L$done8x + + leaq 448(%rsi),%rsi + xorq %r10,%r10 + vmovdqa %ymm0,0(%rsp) + leaq 448(%rdi),%rdi + subq $448,%rdx + vmovdqa %ymm4,32(%rsp) + +L$oop_tail8x: + movzbl (%rsi,%r10,1),%eax + movzbl (%rsp,%r10,1),%ecx + leaq 1(%r10),%r10 + xorl %ecx,%eax + movb %al,-1(%rdi,%r10,1) + decq %rdx + jnz L$oop_tail8x + +L$done8x: + vzeroall + leaq (%r9),%rsp + +L$8x_epilogue: + .byte 0xf3,0xc3 + + diff --git a/vere/ext/openssl/gen/macos-x86_64/crypto/ec/ecp_nistz256-x86_64.s b/vere/ext/openssl/gen/macos-x86_64/crypto/ec/ecp_nistz256-x86_64.s new file mode 100644 index 0000000..dc6bed3 --- /dev/null +++ b/vere/ext/openssl/gen/macos-x86_64/crypto/ec/ecp_nistz256-x86_64.s @@ -0,0 +1,7257 @@ +.text +.globl _ecp_nistz256_precomputed + +.p2align 12 +_ecp_nistz256_precomputed: +.long 0x18a9143c,0x79e730d4,0x5fedb601,0x75ba95fc,0x77622510,0x79fb732b,0xa53755c6,0x18905f76,0xce95560a,0xddf25357,0xba19e45c,0x8b4ab8e4,0xdd21f325,0xd2e88688,0x25885d85,0x8571ff18 +.long 0x10ddd64d,0x850046d4,0xa433827d,0xaa6ae3c1,0x8d1490d9,0x73220503,0x3dcf3a3b,0xf6bb32e4,0x61bee1a5,0x2f3648d3,0xeb236ff8,0x152cd7cb,0x92042dbe,0x19a8fb0e,0x0a5b8a3b,0x78c57751 +.long 0x4eebc127,0xffac3f90,0x087d81fb,0xb027f84a,0x87cbbc98,0x66ad77dd,0xb6ff747e,0x26936a3f,0xc983a7eb,0xb04c5c1f,0x0861fe1a,0x583e47ad,0x1a2ee98e,0x78820831,0xe587cc07,0xd5f06a29 +.long 0x46918dcc,0x74b0b50d,0xc623c173,0x4650a6ed,0xe8100af2,0x0cdaacac,0x41b0176b,0x577362f5,0xe4cbaba6,0x2d96f24c,0xfad6f447,0x17628471,0xe5ddd22e,0x6b6c36de,0x4c5ab863,0x84b14c39 +.long 0xc45c61f5,0xbe1b8aae,0x94b9537d,0x90ec649a,0xd076c20c,0x941cb5aa,0x890523c8,0xc9079605,0xe7ba4f10,0xeb309b4a,0xe5eb882b,0x73c568ef,0x7e7a1f68,0x3540a987,0x2dd1e916,0x73a076bb +.long 0x3e77664a,0x40394737,0x346cee3e,0x55ae744f,0x5b17a3ad,0xd50a961a,0x54213673,0x13074b59,0xd377e44b,0x93d36220,0xadff14b5,0x299c2b53,0xef639f11,0xf424d44c,0x4a07f75f,0xa4c9916d +.long 0xa0173b4f,0x0746354e,0xd23c00f7,0x2bd20213,0x0c23bb08,0xf43eaab5,0xc3123e03,0x13ba5119,0x3f5b9d4d,0x2847d030,0x5da67bdd,0x6742f2f2,0x77c94195,0xef933bdc,0x6e240867,0xeaedd915 +.long 0x9499a78f,0x27f14cd1,0x6f9b3455,0x462ab5c5,0xf02cfc6b,0x8f90f02a,0xb265230d,0xb763891e,0x532d4977,0xf59da3a9,0xcf9eba15,0x21e3327d,0xbe60bbf0,0x123c7b84,0x7706df76,0x56ec12f2 +.long 0x264e20e8,0x75c96e8f,0x59a7a841,0xabe6bfed,0x44c8eb00,0x2cc09c04,0xf0c4e16b,0xe05b3080,0xa45f3314,0x1eb7777a,0xce5d45e3,0x56af7bed,0x88b12f1a,0x2b6e019a,0xfd835f9b,0x086659cd +.long 0x9dc21ec8,0x2c18dbd1,0x0fcf8139,0x98f9868a,0x48250b49,0x737d2cd6,0x24b3428f,0xcc61c947,0x80dd9e76,0x0c2b4078,0x383fbe08,0xc43a8991,0x779be5d2,0x5f7d2d65,0xeb3b4ab5,0x78719a54 +.long 0x6245e404,0xea7d260a,0x6e7fdfe0,0x9de40795,0x8dac1ab5,0x1ff3a415,0x649c9073,0x3e7090f1,0x2b944e88,0x1a768561,0xe57f61c8,0x250f939e,0x1ead643d,0x0c0daa89,0xe125b88e,0x68930023 +.long 0xd2697768,0x04b71aa7,0xca345a33,0xabdedef5,0xee37385e,0x2409d29d,0xcb83e156,0x4ee1df77,0x1cbb5b43,0x0cac12d9,0xca895637,0x170ed2f6,0x8ade6d66,0x28228cfa,0x53238aca,0x7ff57c95 +.long 0x4b2ed709,0xccc42563,0x856fd30d,0x0e356769,0x559e9811,0xbcbcd43f,0x5395b759,0x738477ac,0xc00ee17f,0x35752b90,0x742ed2e3,0x68748390,0xbd1f5bc1,0x7cd06422,0xc9e7b797,0xfbc08769 +.long 0xb0cf664a,0xa242a35b,0x7f9707e3,0x126e48f7,0xc6832660,0x1717bf54,0xfd12c72e,0xfaae7332,0x995d586b,0x27b52db7,0x832237c2,0xbe29569e,0x2a65e7db,0xe8e4193e,0x2eaa1bbb,0x152706dc +.long 0xbc60055b,0x72bcd8b7,0x56e27e4b,0x03cc23ee,0xe4819370,0xee337424,0x0ad3da09,0xe2aa0e43,0x6383c45d,0x40b8524f,0x42a41b25,0xd7663554,0x778a4797,0x64efa6de,0x7079adf4,0x2042170a +.long 0x0bc6fb80,0x808b0b65,0x3ffe2e6b,0x5882e075,0x2c83f549,0xd5ef2f7c,0x9103b723,0x54d63c80,0x52a23f9b,0xf2f11bd6,0x4b0b6587,0x3670c319,0xb1580e9e,0x55c4623b,0x01efe220,0x64edf7b2 +.long 0xd53c5c9d,0x97091dcb,0xac0a177b,0xf17624b6,0x2cfe2dff,0xb0f13975,0x6c7a574e,0xc1a35c0a,0x93e79987,0x227d3146,0xe89cb80e,0x0575bf30,0x0d1883bb,0x2f4e247f,0x3274c3d0,0xebd51226 +.long 0x56ada97a,0x5f3e51c8,0x8f8b403e,0x4afc964d,0x412e2979,0xa6f247ab,0x6f80ebda,0x675abd1b,0x5e485a1d,0x66a2bd72,0x8f4f0b3c,0x4b2a5caf,0x1b847bba,0x2626927f,0x0502394d,0x6c6fc7d9 +.long 0xa5659ae8,0xfea912ba,0x25e1a16e,0x68363aba,0x752c41ac,0xb8842277,0x2897c3fc,0xfe545c28,0xdc4c696b,0x2d36e9e7,0xfba977c5,0x5806244a,0xe39508c1,0x85665e9b,0x6d12597b,0xf720ee25 +.long 0xd2337a31,0x8a979129,0x0f862bdc,0x5916868f,0x5dd283ba,0x048099d9,0xfe5bfb4e,0xe2d1eeb6,0x7884005d,0x82ef1c41,0xffffcbae,0xa2d4ec17,0x8aa95e66,0x9161c53f,0xc5fee0d0,0x5ee104e1 +.long 0xc135b208,0x562e4cec,0x4783f47d,0x74e1b265,0x5a3f3b30,0x6d2a506c,0xc16762fc,0xecead9f4,0xe286e5b9,0xf29dd4b2,0x83bb3c61,0x1b0fadc0,0x7fac29a4,0x7a75023e,0xc9477fa3,0xc086d5f1 +.long 0x2f6f3076,0x0fc61135,0xe3912a9a,0xc99ffa23,0xd2f8ba3d,0x6a0b0685,0xe93358a4,0xfdc777e8,0x35415f04,0x94a787bb,0x4d23fea4,0x640c2d6a,0x153a35b5,0x9de917da,0x5d5cd074,0x793e8d07 +.long 0x2de45068,0xf4f87653,0x9e2e1f6e,0x37c7a7e8,0xa3584069,0xd0825fa2,0x1727bf42,0xaf2cea7c,0x9e4785a9,0x0360a4fb,0x27299f4a,0xe5fda49c,0x71ac2f71,0x48068e13,0x9077666f,0x83d0687b +.long 0x15d02819,0x6d3883b2,0x40dd9a35,0x6d0d7550,0x1d2b469f,0x61d7cbf9,0x2efc3115,0xf97b232f,0xb24bcbc7,0xa551d750,0x88a1e356,0x11ea4949,0x93cb7501,0x7669f031,0xca737b8a,0x595dc55e +.long 0xd837879f,0xa4a319ac,0xed6b67b0,0x6fc1b49e,0x32f1f3af,0xe3959933,0x65432a2e,0x966742eb,0xb4966228,0x4b8dc9fe,0x43f43950,0x96cc6312,0xc9b731ee,0x12068859,0x56f79968,0x7b948dc3 +.long 0xed1f8008,0x61e4ad32,0xd8b17538,0xe6c9267a,0x857ff6fb,0x1ac7c5eb,0x55f2fb10,0x994baaa8,0x1d248018,0x84cf14e1,0x628ac508,0x5a39898b,0x5fa944f5,0x14fde97b,0xd12e5ac7,0xed178030 +.long 0x97e2feb4,0x042c2af4,0xaebf7313,0xd36a42d7,0x084ffdd7,0x49d2c9eb,0x2ef7c76a,0x9f8aa54b,0x09895e70,0x9200b7ba,0xddb7fb58,0x3bd0c66f,0x78eb4cbb,0x2d97d108,0xd84bde31,0x2d431068 +.long 0x172ccd1f,0x4b523eb7,0x30a6a892,0x7323cb28,0xcfe153eb,0x97082ec0,0xf2aadb97,0xe97f6b6a,0xd1a83da1,0x1d3d393e,0x804b2a68,0xa6a7f9c7,0x2d0cb71e,0x4a688b48,0x40585278,0xa9b4cc5f +.long 0xcb66e132,0x5e5db46a,0x0d925880,0xf1be963a,0x0317b9e2,0x944a7027,0x48603d48,0xe266f959,0x5c208899,0x98db6673,0xa2fb18a3,0x90472447,0x777c619f,0x8a966939,0x2a3be21b,0x3798142a +.long 0x3298b343,0xb4241cb1,0xb44f65a1,0xa3a14e49,0x3ac77acd,0xc5f4d6cd,0x52b6fc3c,0xd0288cb5,0x1c040abc,0xd5cc8c2f,0x06bf9b4a,0xb675511e,0x9b3aa441,0xd667da37,0x51601f72,0x460d45ce +.long 0x6755ff89,0xe2f73c69,0x473017e6,0xdd3cf7e7,0x3cf7600d,0x8ef5689d,0xb1fc87b4,0x948dc4f8,0x4ea53299,0xd9e9fe81,0x98eb6028,0x2d921ca2,0x0c9803fc,0xfaecedfd,0x4d7b4745,0xf38ae891 +.long 0xc5e3a3d8,0xd8c5fccf,0x4079dfbf,0xbefd904c,0xfead0197,0xbc6d6a58,0x695532a4,0x39227077,0xdbef42f5,0x09e23e6d,0x480a9908,0x7e449b64,0xad9a2e40,0x7b969c1a,0x9591c2a4,0x6231d792 +.long 0x0f664534,0x87151456,0x4b68f103,0x85ceae7c,0x65578ab9,0xac09c4ae,0xf044b10c,0x33ec6868,0x3a8ec1f1,0x6ac4832b,0x5847d5ef,0x5509d128,0x763f1574,0xf909604f,0xc32f63c4,0xb16c4303 +.long 0x7ca23cd3,0xb6ab2014,0xa391849d,0xcaa7a5c6,0x75678d94,0x5b0673a3,0xdd303e64,0xc982ddd4,0x5db6f971,0xfd7b000b,0x6f876f92,0xbba2cb1f,0x3c569426,0xc77332a3,0x570d74f8,0xa159100c +.long 0xdec67ef5,0xfd16847f,0x233e76b7,0x742ee464,0xefc2b4c8,0x0b8e4134,0x42a3e521,0xca640b86,0x8ceb6aa9,0x653a0190,0x547852d5,0x313c300c,0x6b237af7,0x24e4ab12,0x8bb47af8,0x2ba90162 +.long 0xa8219bb7,0x3d5e58d6,0x1b06c57f,0xc691d0bd,0xd257576e,0x0ae4cb10,0xd54a3dc3,0x3569656c,0x94cda03a,0xe5ebaebd,0x162bfe13,0x934e82d3,0xe251a0c6,0x450ac0ba,0xdd6da526,0x480b9e11 +.long 0x8cce08b5,0x00467bc5,0x7f178d55,0xb636458c,0xa677d806,0xc5748bae,0xdfa394eb,0x2763a387,0x7d3cebb6,0xa12b448a,0x6f20d850,0xe7adda3e,0x1558462c,0xf63ebce5,0x620088a8,0x58b36143 +.long 0x4d63c0ee,0x8a2cc3ca,0x0fe948ce,0x51233117,0x222ef33b,0x7463fd85,0x7c603d6c,0xadf0c7dc,0xfe7765e5,0x0ec32d3b,0xbf380409,0xccaab359,0x8e59319c,0xbdaa84d6,0x9c80c34d,0xd9a4c280 +.long 0xa059c142,0xa9d89488,0xff0b9346,0x6f5ae714,0x16fb3664,0x068f237d,0x363186ac,0x5853e4c4,0x63c52f98,0xe2d87d23,0x81828876,0x2ec4a766,0xe14e7b1c,0x47b864fa,0x69192408,0x0c0bc0e5 +.long 0xb82e9f3e,0xe4d7681d,0xdf25e13c,0x83200f0b,0x66f27280,0x8909984c,0x75f73227,0x462d7b00,0xf2651798,0xd90ba188,0x36ab1c34,0x74c6e18c,0x5ef54359,0xab256ea3,0xd1aa702f,0x03466612 +.long 0x2ed22e91,0x624d6049,0x6f072822,0x6fdfe0b5,0x39ce2271,0xeeca1115,0xdb01614f,0x98100a4f,0xa35c628f,0xb6b0daa2,0xc87e9a47,0xb6f94d2e,0x1d57d9ce,0xc6773259,0x03884a7b,0xf70bfeec +.long 0xed2bad01,0x5fb35ccf,0x1da6a5c7,0xa155cbe3,0x30a92f8f,0xc2e2594c,0x5bfafe43,0x649c89ce,0xe9ff257a,0xd158667d,0xf32c50ae,0x9b359611,0x906014cf,0x4b00b20b,0x89bc7d3d,0xf3a8cfe3 +.long 0x248a7d06,0x4ff23ffd,0x878873fa,0x80c5bfb4,0x05745981,0xb7d9ad90,0x3db01994,0x179c85db,0x61a6966c,0xba41b062,0xeadce5a8,0x4d82d052,0xa5e6a318,0x9e91cd3b,0x95b2dda0,0x47795f4f +.long 0xd55a897c,0xecfd7c1f,0xb29110fb,0x009194ab,0xe381d3b0,0x5f0e2046,0xa98dd291,0x5f3425f6,0x730d50da,0xbfa06687,0x4b083b7f,0x0423446c,0xd69d3417,0x397a247d,0x387ba42a,0xeb629f90 +.long 0xd5cd79bf,0x1ee426cc,0x946c6e18,0x0032940b,0x57477f58,0x1b1e8ae0,0x6d823278,0xe94f7d34,0x782ba21a,0xc747cb96,0xf72b33a5,0xc5254469,0xc7f80c81,0x772ef6de,0x2cd9e6b5,0xd73acbfe +.long 0x49ee90d9,0x4075b5b1,0xa06e9eba,0x785c339a,0xabf825e0,0xa1030d5b,0xa42931dc,0xcec684c3,0xc1586e63,0x42ab62c9,0x5ab43f2b,0x45431d66,0x55f7835d,0x57c8b2c0,0xc1b7f865,0x033da338 +.long 0xcaa76097,0x283c7513,0x36c83906,0x0a624fa9,0x715af2c7,0x6b20afec,0xeba78bfd,0x4b969974,0xd921d60e,0x220755cc,0x7baeca13,0x9b944e10,0x5ded93d4,0x04819d51,0x6dddfd27,0x9bbff86e +.long 0x77adc612,0x6b344130,0xbbd803a0,0xa7496529,0x6d8805bd,0x1a1baaa7,0x470343ad,0xc8403902,0x175adff1,0x39f59f66,0xb7d8c5b7,0x0b26d7fb,0x529d75e3,0xa875f5ce,0x41325cc2,0x85efc7e9 +.long 0x1ff6acd3,0x21950b42,0x53dc6909,0xffe70484,0x28766127,0xff4cd0b2,0x4fb7db2b,0xabdbe608,0x5e1109e8,0x837c9228,0xf4645b5a,0x26147d27,0xf7818ed8,0x4d78f592,0xf247fa36,0xd394077e +.long 0x488c171a,0x0fb9c2d0,0x13685278,0xa78bfbaa,0xd5b1fa6a,0xedfbe268,0x2b7eaba7,0x0dceb8db,0x9ae2b710,0xbf9e8089,0xa4449c96,0xefde7ae6,0xcc143a46,0x43b7716b,0xc3628c13,0xd7d34194 +.long 0x3b3f64c9,0x508cec1c,0x1e5edf3f,0xe20bc0ba,0x2f4318d4,0xda1deb85,0x5c3fa443,0xd20ebe0d,0x73241ea3,0x370b4ea7,0x5e1a5f65,0x61f1511c,0x82681c62,0x99a5e23d,0xa2f54c2d,0xd731e383 +.long 0x83445904,0x2692f36e,0xaf45f9c0,0x2e0ec469,0xc67528b7,0x905a3201,0xd0e5e542,0x88f77f34,0x5864687c,0xf67a8d29,0x22df3562,0x23b92eae,0x9bbec39e,0x5c27014b,0x9c0f0f8d,0x7ef2f226 +.long 0x546c4d8d,0x97359638,0x92f24679,0x5f9c3fc4,0xa8c8acd9,0x912e8bed,0x306634b0,0xec3a318d,0xc31cb264,0x80167f41,0x522113f2,0x3db82f6f,0xdcafe197,0xb155bcd2,0x43465283,0xfba1da59 +.long 0xb212cf53,0xa0425b8e,0xf8557c5f,0x4f2e512e,0x25c4d56c,0xc1286ff9,0xee26c851,0xbb8a0fea,0xe7d6107e,0xc28f70d2,0xe76265aa,0x7ee0c444,0x1d1936b1,0x3df277a4,0xea9595eb,0x1a556e3f +.long 0xe7305683,0x258bbbf9,0x07ef5be6,0x31eea5bf,0x46c814c1,0x0deb0e4a,0xa7b730dd,0x5cee8449,0xa0182bde,0xeab495c5,0x9e27a6b4,0xee759f87,0x80e518ca,0xc2cf6a68,0xf14cf3f4,0x25e8013f +.long 0x7e8d7a14,0x8fc44140,0x9556f36a,0xbb1ff3ca,0x14600044,0x6a844385,0x7451ae63,0xba3f0c4a,0x1f9af32a,0xdfcac25b,0xb1f2214b,0x01e0db86,0xa4b596ac,0x4e9a5bc2,0x026c2c08,0x83927681 +.long 0x7acaca28,0x3ec832e7,0xc7385b29,0x1bfeea57,0xfd1eaf38,0x068212e3,0x6acf8ccc,0xc1329830,0x2aac9e59,0xb909f2db,0xb661782a,0x5748060d,0xc79b7a01,0xc5ab2632,0x00017626,0xda44c6c6 +.long 0xa7ea82f0,0xf26c00e8,0xe4299aaf,0x99cac80d,0x7ed78be1,0xd66fe3b6,0x648d02cd,0x305f725f,0x623fb21b,0x33ed1bc4,0x7a6319ad,0xfa70533e,0xbe5ffb3e,0x17ab562d,0x56674741,0x06374994 +.long 0x5c46aa8e,0x69d44ed6,0xa8d063d1,0x2100d5d3,0xa2d17c36,0xcb9727ea,0x8add53b7,0x4c2bab1b,0x15426704,0xa084e90c,0xa837ebea,0x778afcd3,0x7ce477f8,0x6651f701,0x46fb7a8b,0xa0624998 +.long 0xed8a6e19,0xdc1e6828,0x4189d9c7,0x33fc2336,0x671c39bc,0x026f8fe2,0xbc6f9915,0xd40c4ccd,0xf80e75ca,0xafa135bb,0x22adff2c,0x12c651a0,0x4f51ad96,0xc40a04bd,0xbbe4e832,0x04820109 +.long 0x7f4c04cc,0x3667eb1a,0xa9404f84,0x59556621,0x7eceb50a,0x71cdf653,0x9b8335fa,0x994a44a6,0xdbeb9b69,0xd7faf819,0xeed4350d,0x473c5680,0xda44bba2,0xb6658466,0x872bdbf3,0x0d1bc780 +.long 0xa1962f91,0xe535f175,0xed58f5a7,0x6ed7e061,0x2089a233,0x177aa4c0,0xe539b413,0x0dbcb03a,0xbb32e38e,0xe3dc424e,0x6806701e,0x6472e5ef,0x814be9ee,0xdd47ff98,0x35ace009,0x6b60cfff +.long 0x9ff91fe5,0xb8d3d931,0xf0518eed,0x039c4800,0x9182cb26,0x95c37632,0x82fc568d,0x0763a434,0x383e76ba,0x707c04d5,0x824e8197,0xac98b930,0x91230de0,0x92bf7c8f,0x40959b70,0x90876a01 +.long 0x05968b80,0xdb6d96f3,0x089f73b9,0x380a0913,0xc2c61e01,0x7da70b83,0x569b38c7,0x95fb8394,0x80edfe2f,0x9a3c6512,0x8faeaf82,0x8f726bb9,0x78424bf8,0x8010a4a0,0x0e844970,0x29672044 +.long 0x7a2ad62a,0x63c5cb81,0xac62ff54,0x7ef2b6b9,0xb3ad9db5,0x3749bba4,0x46d5a617,0xad311f2c,0xc2ff3b6d,0xb77a8087,0x367834ff,0xb46feaf3,0x75d6b138,0xf8aa266d,0xec008188,0xfa38d320 +.long 0x696946fc,0x486d8ffa,0xb9cba56d,0x50fbc6d8,0x90f35a15,0x7e3d423e,0xc0dd962c,0x7c3da195,0x3cfd5d8b,0xe673fdb0,0x889dfca5,0x0704b7c2,0xf52305aa,0xf6ce581f,0x914d5e53,0x399d49eb +.long 0x6ec293cd,0x380a496d,0x8e7051f5,0x733dbda7,0xb849140a,0x037e388d,0x5946dbf6,0xee4b32b0,0xcae368d1,0xb1c4fda9,0xfdb0b2f3,0x5001a7b0,0x2e3ac46e,0x6df59374,0x39b3e656,0x4af675f2 +.long 0x39949296,0x44e38110,0x361db1b5,0x5b63827b,0x206eaff5,0x3e5323ed,0xc21f4290,0x942370d2,0xe0d985a1,0xf2caaf2e,0x7239846d,0x192cc64b,0xae6312f8,0x7c0b8f47,0x96620108,0x7dc61f91 +.long 0xc2da7de9,0xb830fb5b,0x0ff8d3be,0xd0e643df,0x188a9641,0x31ee77ba,0xbcf6d502,0x4e8aa3aa,0x9a49110f,0xf9fb6532,0x2dd6b220,0xd18317f6,0x52c3ea5a,0x7e3ced41,0x7d579c4a,0x0d296a14 +.long 0xed4c3717,0x35d6a53e,0x3d0ed2a3,0x9f8240cf,0xe5543aa5,0x8c0d4d05,0xdd33b4b4,0x45d5bbfb,0x137fd28e,0xfa04cc73,0xc73b3ffd,0x862ac6ef,0x31f51ef2,0x403ff9f5,0xbc73f5a2,0x34d5e0fc +.long 0x08913f4f,0xf2526820,0xeac93d95,0xea20ed61,0x6ca6b26c,0x51ed38b4,0xea4327b0,0x8662dcbc,0x725d2aaa,0x6daf295c,0x8e52dcda,0xbad2752f,0x0b17dacc,0x2210e721,0xd51e8232,0xa37f7912 +.long 0x44cc3add,0x4f7081e1,0x87be82cf,0xd5ffa1d6,0x0edd6472,0x89890b6c,0x3ed17863,0xada26e1a,0x63483caa,0x276f2715,0x2f6077fd,0xe6924cd9,0x0a466e3c,0x05a7fe98,0xb1902d1f,0xf1c794b0 +.long 0x82a8042c,0xe5213688,0xcd278298,0xd931cfaf,0xf597a740,0x069a0ae0,0xeb59107c,0x0adbb3f3,0x5eaa8eb8,0x983e951e,0x11b48e78,0xe663a8b5,0x8a03f2c5,0x1631cc0d,0x11e271e2,0x7577c11e +.long 0x08369a90,0x33b2385c,0x190eb4f8,0x2990c59b,0xc68eac80,0x819a6145,0x2ec4a014,0x7a786d62,0x20ac3a8d,0x33faadbe,0x5aba2d30,0x31a21781,0xdba4f565,0x209d2742,0x55aa0fbb,0xdb2ce9e3 +.long 0x168984df,0x8cef334b,0x33879638,0xe81dce17,0x263720f0,0xf6e6949c,0xf593cbec,0x5c56feaf,0xfde58c84,0x8bff5601,0x2eccb314,0x74e24117,0x4c9a8a78,0xbcf01b61,0x544c9868,0xa233e35e +.long 0x8bd7aff1,0xb3156bf3,0x1d81b146,0x1b5ee4cb,0xd628a915,0x7ba1ac41,0xfd89699e,0x8f3a8f9c,0xa0748be7,0x7329b9c9,0xa92e621f,0x1d391c95,0x4d10a837,0xe51e6b21,0x4947b435,0xd255f53a +.long 0xf1788ee3,0x07669e04,0xa86938a2,0xc14f27af,0xe93a01c0,0x8b47a334,0xd9366808,0xff627438,0xca2a5965,0x7a0985d8,0xd6e9b9b3,0x3d9a5542,0x4cf972e8,0xc23eb80b,0x4fdf72fd,0x5c1c33bb +.long 0x74a86108,0x0c4a58d4,0xee4c5d90,0xf8048a8f,0xe86d4c80,0xe3c7c924,0x056a1e60,0x28c889de,0xb214a040,0x57e2662e,0x37e10347,0xe8c48e98,0x80ac748a,0x87742862,0x186b06f2,0xf1c24022 +.long 0x5f74040a,0xac2dd4c3,0xfceac957,0x409aeb71,0x55c4ec23,0x4fbad782,0x8a7b76ec,0xb359ed61,0xed6f4a60,0x12744926,0x4b912de3,0xe21e8d7f,0xfc705a59,0xe2575a59,0xed2dbc0e,0x72f1d4de +.long 0xeb7926b8,0x3d2b24b9,0xcdbe5509,0xbff88cb3,0xe4dd640b,0xd0f399af,0x2f76ed45,0x3c5fe130,0x3764fb3d,0x6f3562f4,0x3151b62d,0x7b5af318,0xd79ce5f3,0xd5bd0bc7,0xec66890f,0xfdaf6b20 +.long 0x6063540c,0x735c67ec,0xe5f9cb8f,0x50b259c2,0x3f99c6ab,0xb8734f9a,0xa3a7bc85,0xf8cc13d5,0xc5217659,0x80c1b305,0x4ec12a54,0xfe5364d4,0x681345fe,0xbd87045e,0x582f897f,0x7f8efeb1 +.long 0xd5923359,0xe8cbf1e5,0x539b9fb0,0xdb0cea9d,0x49859b98,0x0c5b34cf,0xa4403cc6,0x5e583c56,0xd48185b7,0x11fc1a2d,0x6e521787,0xc93fbc7e,0x05105b8b,0x47e7a058,0xdb8260c8,0x7b4d4d58 +.long 0x46eb842a,0xe33930b0,0x7bdae56d,0x8e844a9a,0x13f7fdfc,0x34ef3a9e,0x636ca176,0xb3768f82,0x4e09e61c,0x2821f4e0,0xa0c7cddc,0x414dc3a1,0x54945fcd,0xd5379437,0xb3555ff1,0x151b6eef +.long 0x6339c083,0xb31bd613,0xdfb64701,0x39ff8155,0xe29604ab,0x7c3388d2,0xa6b10442,0x1e19084b,0xeccd47ef,0x17cf54c0,0x4a5dfb30,0x89693385,0x47daf9f6,0x69d023fb,0x7d91d959,0x9222840b +.long 0x803bac62,0x439108f5,0x379bd45f,0x0b7dd91d,0xca63c581,0xd651e827,0x509c104f,0x5c5d75f6,0x1f2dc308,0x7d5fc738,0xd98454be,0x20faa7bf,0xa517b031,0x95374bee,0x642692ac,0xf036b9b1 +.long 0x39842194,0xc5106109,0x49d05295,0xb7e2353e,0xefb42ee0,0xfc8c1d5c,0x08ce811c,0xe04884eb,0x7419f40e,0xf1f75d81,0xa995c241,0x5b0ac162,0xc4c55646,0x120921bb,0x8d33cf97,0x713520c2 +.long 0xe98c5100,0xb4a65a5c,0x2ddd0f5a,0x6cec871d,0x9ba2e78b,0x251f0b7f,0xce3a2a5f,0x224a8434,0x25f5c46f,0x26827f61,0x48545ec0,0x6a22bedc,0xb1bb5cdc,0x25ae5fa0,0xfcb9b98f,0xd693682f +.long 0x91e5d7d3,0x32027fe8,0x73a07678,0xf14b7d17,0xc0dfdd61,0xf88497b3,0x2a8c4f48,0xf7c2eec0,0x3756e621,0xaa5573f4,0x1825b948,0xc013a240,0x63878572,0x1c03b345,0x653a4184,0xa0472bea +.long 0x0ac69a80,0xf4222e27,0xf51e54f6,0x34096d25,0x8fffa591,0x00a648cb,0x69b6527f,0x4e87acdc,0xe285ccb4,0x0575e037,0x50ddcf52,0x188089e4,0x870ff719,0xaa96c9a8,0x1fc7e369,0x74a56cd8 +.long 0x1726931a,0x41d04ee2,0x3660ecfd,0x0bbbb2c8,0x24818e18,0xa6ef6de5,0xe7d57887,0xe421cc51,0xbea87be6,0xf127d208,0xb1cdd682,0x16a475d3,0x439b63f7,0x9db1b684,0xf0f113b6,0x5359b3db +.long 0x8bf06e31,0xdfccf1de,0xdd383901,0x1fdf8f44,0x5017e7d2,0x10775cad,0x58d11eef,0xdfc3a597,0xb1ecff10,0x6ec9c8a0,0x28400549,0xee6ed6cc,0x1b4f8d73,0xb5ad7bae,0xe00aaab9,0x61b4f11d +.long 0xd4eff2d7,0x7b32d69b,0x4288b60f,0x88ae6771,0x37a1e723,0x159461b4,0x570aae8c,0x1f3d4789,0x7f9871da,0x869118c0,0xf635e278,0x35fbda78,0xe1541dac,0x738f3641,0xc0dae45f,0x6794b13a +.long 0x09cc0917,0x065064ac,0xc68540fd,0x27c53729,0xef227671,0x0d2d4c8e,0xa1785a04,0xd23a9f80,0x52650359,0x98c59528,0x74a1acad,0xfa09ad01,0x0b55bf5c,0x082d5a29,0x419b8084,0xa40f1c67 +.long 0xdcc18770,0x3a5c752e,0x8825c3a5,0x4baf1f2f,0x21b153ed,0xebd63f74,0xb2f64723,0xa2383e47,0x2646d19a,0xe7bf620a,0x03c83ffd,0x56cb44ec,0x4f6be9f1,0xaf7267c9,0xc06bb5e9,0x8b2dfd7b +.long 0xa672c5c7,0xb87072f2,0x0d53c5e2,0xeacb11c8,0xff435932,0x22dac29d,0x4408693c,0x37bdb99d,0x2899c20f,0xf6e62fb6,0x447ece24,0x3535d512,0xff577ce3,0xfbdc6b88,0x190575f2,0x726693bd +.long 0xab4b35a2,0x6772b0e5,0xf5eeaacf,0x1d8b6001,0x795b9580,0x728f7ce4,0x41fb81da,0x4a20ed2a,0x4fec01e6,0x9f685cd4,0xa7ff50ad,0x3ed7ddcc,0x0c2d97fd,0x460fd264,0xeb82f4f9,0x3a241426 +.long 0x6a8ea820,0x17d1df2c,0xf22cc254,0xb2b50d3b,0xb7291426,0x03856cba,0x04f5ee39,0x87fd26ae,0x02bee4ba,0x9cb696cc,0x06820fd6,0x53121804,0x0212e985,0xa5dfc269,0x160f9a09,0x666f7ffa +.long 0xbccd9617,0xc503cd33,0xba7730a3,0x365dede4,0x5ddb0786,0x798c6355,0xfc9cd3bc,0xa6c3200e,0xe5e35efd,0x060ffb2c,0x5555a1c1,0x99a4e25b,0xf70b3751,0x11d95375,0x160e1bf6,0x0a57354a +.long 0xf8e4b065,0xecb3ae4b,0x2e53022b,0x07a834c4,0x8692ed96,0x1cd300b3,0x61ee14ec,0x16a6f792,0x6a8649ed,0x8f1063c6,0x869f3e14,0xfbcdfcfe,0x00a7b3ec,0x2cfb97c1,0x7130c2f1,0xcea49b3c +.long 0xe9d96488,0x462d044f,0x8182a0c1,0x4b53d52e,0x0391e9e9,0x84b6ddd3,0xb1741a09,0x80ab7b48,0x27d3317f,0xec0e15d4,0x1a64671e,0x8dfc1ddb,0xd49c5b92,0x93cc5d5f,0x3674a331,0xc995d53d +.long 0x090090ae,0x302e41ec,0xedb06830,0x2278a0cc,0xfbc99690,0x1d025932,0xb80d68da,0x0c32fbd2,0xf341a6c1,0xd79146da,0x1bef68a0,0xae0ba139,0x8d774b3a,0xc6b8a563,0x880ba4d7,0x1cf307bd +.long 0x19803511,0xc033bdc7,0x8888c3be,0xa9f97b3b,0x85c6d05e,0x3d68aebc,0x193919eb,0xc3b88a9d,0xc48b0ee3,0x2d300748,0x07a746c1,0x7506bc7c,0x6e6d57f3,0xfc48437c,0xcfeaa91a,0x5bd71587 +.long 0xc1bc5225,0xa4ed0408,0x2719226d,0xd0b946db,0x758d2d43,0x109ecd62,0x2751759b,0x75c8485a,0x9ce4177a,0xb0b75f49,0x79c10c3d,0x4fa61a1e,0xa167fcd7,0xc062d300,0x750f0fa8,0x4df3874c +.long 0x83dfedc9,0x29ae2cf9,0x8d87631a,0xf8437134,0x7429c8d2,0xaf571711,0x146d9272,0x18d15867,0x69769bb7,0x83053ecf,0xc479ab82,0xc55eb856,0x21b0f4b2,0x5ef7791c,0x3d491525,0xaa5956ba +.long 0x9fe20eba,0x407a96c2,0xe52a5ad3,0xf27168bb,0xbf1d9d89,0x43b60ab3,0x710e727a,0xe45c51ef,0x099b4221,0xdfca5276,0x2557a159,0x8dc6407c,0x91035895,0x0ead8335,0x9c55dc32,0x0a9db957 +.long 0xdf61bc76,0xe40736d3,0x3f778cdb,0x13a619c0,0xc56ea28f,0x6dd921a4,0x2fa647b4,0x76a52433,0xac5bdc5d,0x23591891,0xbac7dc01,0xff4a1a72,0x62df8453,0x9905e261,0xe63b265f,0x3ac045df +.long 0xad53dba7,0x8a3f341b,0x837b625a,0x8ec269cc,0x3ae31189,0xd71a2782,0x55e96120,0x8fb4f9a3,0xff9875cf,0x804af823,0x5d442a9b,0x23224f57,0xecc62679,0x1c4d3b9e,0xa0e7ddb1,0x91da22fb +.long 0x6c04a661,0xa370324d,0x5e376d17,0x9710d3b6,0x3044e357,0xed8c98f0,0x6422701c,0xc364ebbe,0x7733d61c,0x347f5d51,0xcea826c3,0xd55644b9,0x55a25548,0x80c6e0ad,0x844220a7,0x0aa7641d +.long 0x31810660,0x1438ec81,0xde4b4043,0x9dfa6507,0xcc3e0273,0x10b515d8,0x28d8cfb2,0x1b6066dd,0x9c9efebd,0xd3b04591,0xa21c1ff4,0x425d4bdf,0xd57607d3,0x5fe5af19,0x54481084,0xbbf773f7 +.long 0x94b03ed1,0x8435bd69,0x634cc546,0xd9ad1de3,0x00e420ca,0x2cf423fc,0xa03096dd,0xeed26d80,0xa4db09d2,0xd7f60be7,0x960622f7,0xf47f569d,0x7296c729,0xe5925fd7,0x26ca2715,0xeff2db26 +.long 0xb913e759,0xa6fcd014,0x8ff4de93,0x53da4786,0xc32068e1,0x14616d79,0xccdf352e,0xb187d664,0x1dc90b59,0xf7afb650,0x7daa1b26,0x8170e943,0x700c0a84,0xc8e3bdd8,0x6482bdfa,0x6e8d345f +.long 0xc5c5ea50,0x84cfbfa1,0x67960681,0xd3baf14c,0x0dd50942,0x26398403,0x4716a663,0xe4b7839c,0xe7de6dc0,0xd5f1f794,0x622aa7ce,0x5cd0f4d4,0x59acfeec,0x5295f3f1,0x953e0607,0x8d933552 +.long 0x776c5722,0xc7db8ec5,0x2b5f290c,0xdc467e62,0x4ff425a9,0xd4297e70,0x0cf7bb72,0x4be924c1,0xa1892131,0x0d5dc5ae,0xa705c992,0x8bf8a8e3,0x7a305ac5,0x73a0b064,0x9a8c77a8,0x00c9ca4e +.long 0x83774bdd,0x5dfee80f,0x85734485,0x63131602,0x914a69a9,0xa1b524ae,0xd4e300d7,0xebc2ffaf,0x7cfa46a5,0x52c93db7,0x21653b50,0x71e6161f,0xa4bc580a,0x3574fc57,0xe1bc1253,0xc09015dd +.long 0xd174d7aa,0x4b7b47b2,0xf3a15d04,0x4072d8e8,0xd6fa07ed,0xeeb7d47f,0xedbdafb1,0x6f2b9ff9,0x3760fe8a,0x18c51615,0xf06c6c13,0x7a96e6bf,0x0ea2d071,0x4d7a0410,0x0be2a5ce,0xa1914e9b +.long 0xd8a3c5cf,0x5726e357,0x2abb2b13,0x1197ecc3,0x31ae88dd,0x6c0d7f7f,0xfdbb3efe,0x15b20d1a,0x70584039,0xcd06aa26,0xa7dc9747,0x2277c969,0x7855d815,0xbca69587,0x5188b32a,0x899ea238 +.long 0x760c1c9d,0x37d9228b,0x9b5c18da,0xc7efbb11,0x19f6dbc5,0x7f0d1bc8,0x07e6905b,0x4875384b,0x3ba8cd86,0xc7c50baa,0xc2905de0,0xb0ce40fb,0x7a231952,0x70840673,0xcf43de26,0xa912a262 +.long 0xeb5b76c1,0x9c38ddcc,0x26fc0ab4,0x746f5285,0xd62c269f,0x52a63a50,0x99458621,0x60049c55,0x3c2f7c9e,0xe7f48f82,0x917d5cf3,0x6bd99043,0x8701f469,0xeb1317a8,0x9a449fe0,0xbd3fe2ed +.long 0x12ef3d36,0x421e79ca,0x3e7ea5de,0x9ee3c36c,0xcdff36f7,0xe48198b5,0xc6b82228,0xaff4f967,0xc47adb7e,0x15e19dd0,0x032e7dfa,0x45699b23,0x1fae026a,0x40680c8b,0x550dbf4d,0x5a347a48 +.long 0x3cef0d7d,0xe652533b,0x2bbb4381,0xd94f7b18,0x0e80f500,0x838752be,0x9e9c9bfb,0x8e6e2488,0x16caca6a,0xc9751697,0x38531ad9,0x866c49d8,0x7151ade1,0xc917e239,0x6037c407,0x2d016ec1 +.long 0x00eac3f9,0xa407ccc9,0xe2ed4748,0x835f6280,0x1cc98e0d,0xcc54c347,0xdcb572eb,0x0e969937,0x8f30c9cb,0x1b16c8e8,0x373c4661,0xa606ae75,0x35502cab,0x47aa689b,0x4d9bb64f,0xf89014ae +.long 0x31c71f7b,0x202f6a9c,0x296ffe5c,0x01f95aa3,0x53cec3a3,0x5fc06014,0x5f498a45,0xeb991237,0x5d91ba87,0xae9a935e,0x0b564a19,0xc6ac6281,0x3bd44e69,0x8a8fe81c,0x9dd11d45,0x7c8b467f +.long 0xea5b8e69,0xf772251f,0xc5b75fbc,0xaeecb3bd,0x887ff0e5,0x1aca3331,0x19f0a131,0xbe5d49ff,0xe5c8646f,0x582c13aa,0x20e19980,0xdbaa12e8,0xf7abbd94,0x8f40f31a,0x1dfc7663,0x1f13f5a8 +.long 0xaceb4fc0,0x5d81f1ee,0x5e6f0f42,0x36256002,0x751370c8,0x4b67d6d7,0x03e80589,0x2608b698,0x05268301,0xcfc0d2fc,0x40309212,0xa6943d39,0x1fd0e1c2,0x192a90c2,0x37f1dc76,0xb209f113 +.long 0x97bf1298,0xefcc5e06,0x219d639e,0xcbdb6730,0xb81e8c6f,0xd009c116,0x1a7ce2e5,0xa3ffdde3,0xa914d3ba,0xc53fbaaa,0x88df85ee,0x836d500f,0x66ee0751,0xd98dc71b,0x714516fd,0x5a3d7005 +.long 0x39eedbba,0x21d3634d,0x0455a46d,0x35cd2e68,0xf9d7eb0c,0xc8cafe65,0x00cefb3e,0xbda3ce9e,0x2c9cf7a4,0xddc17a60,0x7bcb8773,0x01572ee4,0x8c7548df,0xa92b2b01,0xa84600e3,0x732fd309 +.long 0x16543a40,0xe22109c7,0xfede3c6c,0x9acafd36,0x6824e614,0xfb206852,0xda25dca0,0x2a4544a9,0x91d60b06,0x25985262,0x28753545,0x281b7be9,0x90f13b27,0xec667b1a,0x940e2eb4,0x33a83aff +.long 0xd5d721d5,0x80009862,0x5bd3a182,0x0c3357a3,0x7aa2cda4,0x27f3a83b,0xf6f83085,0xb58ae74e,0x2e6dad6b,0x2a911a81,0xf43d6c5b,0xde286051,0xf996c4d8,0x4bdccc41,0x0ae1e24e,0xe7312ec0 +.long 0x6e6485b3,0xf8d112e7,0x771c52f8,0x4d3e24db,0x684a2f6d,0x48e3ee41,0x21d95551,0x7161957d,0xcdb12a6c,0x19631283,0x2e50e164,0xbf3fa882,0x3166cc73,0xf6254b63,0xaee8cc38,0x3aefa7ae +.long 0x3b36f9fd,0x79b0fe62,0xfde19fc0,0x26543b23,0x958482ef,0x136e64a0,0x9b095825,0x23f63771,0xb6a1142e,0x14cfd596,0x335aac0b,0x5ea6aac6,0xf3081dd5,0x86a0e8bd,0x003dc12a,0x5fb89d79 +.long 0xf72e34d4,0xf615c33a,0x110eec35,0x0bd9ea40,0xc1dea34e,0x1c12bc5b,0x49ae4699,0x686584c9,0x8c97b942,0x13ad95d3,0x4e5c7562,0x4609561a,0xf2737f89,0x9e94a4ae,0x371c78b6,0xf57594c6 +.long 0xe3779ee3,0x0f0165fc,0xbd495d9e,0xe00e7f9d,0x20284e7a,0x1fa4efa2,0x47ac6219,0x4564bade,0xc4708e8e,0x90e6312a,0xa71e9adf,0x4f5725fb,0x3d684b9f,0xe95f55ae,0x1e94b415,0x47f7ccb1 +.long 0x8d946581,0x7322851b,0xbdf4a012,0xf0d13133,0x6584dae0,0xa3510f69,0x3c9f6c6d,0x03a7c171,0xe475381a,0x5be97f38,0x85823334,0xca1ba422,0x0be17dda,0xf83cc5c7,0x0b918c0f,0x158b1494 +.long 0x522e6b69,0xda3a77e5,0xbbcd6c18,0x69c908c3,0xd924fd56,0x1f1b9e48,0xaa4bb3f7,0x37c64e36,0xee478d7d,0x5a4fdbdf,0x0193f7a0,0xba75c8bc,0x56cd16df,0x84bc1e84,0x46fad151,0x1fb08f08 +.long 0x842e9f30,0x8a7cabf9,0x5eab83af,0xa331d4bf,0x017f2a6a,0xd272cfba,0x83aba0e3,0x27560abc,0x0e3a6b75,0x94b83387,0x6b9f50f5,0x25c6aea2,0xb5fdf6d0,0x803d691d,0xe6333514,0x03b77509 +.long 0x61a341c1,0x36178903,0x0cfd6142,0x3604dc60,0x8533316c,0x022295eb,0x44af2922,0x3dbde4ac,0x1c7eef69,0x898afc5d,0xd14f4fa1,0x58896805,0x203c21ca,0x05002160,0x40ef730b,0x6f0d1f30 +.long 0x196224f8,0x8e8c44d4,0x374d079d,0x75a4ab95,0x7d48f123,0x79085ecc,0x1bf65ad8,0x56f04d31,0xbda602b2,0xe220bf1c,0xf9612c69,0x73ee1742,0x084fd06b,0x76008fc8,0xf11380d1,0x4000ef9f +.long 0x12cfe297,0x48201b4b,0x292f74e5,0x3eee129c,0xc9e874e8,0xe1fe114e,0x92c5fc41,0x899b055c,0x3a39c8cf,0x4e477a64,0x78963cc9,0x82f09efe,0xd333f863,0x6fd3fd8f,0xdc949c63,0x85132b2a +.long 0x516eb17b,0x7e06a3ab,0xd2c7372b,0x73bec06f,0xba896da6,0xe4f74f55,0x8e9eb40f,0xbb4afef8,0xe61d66b0,0x2d75bec8,0xef29300b,0x02bda4b4,0x026baa5a,0x8bbaa8de,0xa07f4440,0xff54befd +.long 0xbe7a2af3,0xbd9b8b1d,0x4fb74a72,0xec51caa9,0x63879697,0xb9937a4b,0xec2687d5,0x7c9a9d20,0x6ef5f014,0x1773e44f,0xe90c6900,0x8abcf412,0x8142161e,0x387bd022,0xfcb6ff2a,0x50393755 +.long 0xed6def63,0x9813fd56,0x7d53106c,0x53cf6482,0x431f7ac1,0x991a35bd,0x63e65faf,0xf1e274dd,0x44cc7880,0xf63ffa3c,0x7c256981,0x411a426b,0x93a420e0,0xb698b9fd,0xae53f8fe,0x89fdddc0 +.long 0x32398baa,0x766e0722,0x5cfca031,0x205fee42,0x7a029cf2,0xa49f5341,0x4023890d,0xa88c68b8,0x7337aaa8,0xbc275041,0x0eb384f4,0x9ed364ad,0x29aba92f,0xe0816f85,0x04e38a88,0x2e9e1941 +.long 0x3dafd2d5,0x57eef44a,0x97ed98d8,0x35d1fae5,0x2307f9b1,0x50628c09,0xd6cba5c6,0x09d84aae,0x88aaa691,0x67071bc7,0xafe6cb03,0x2dea57a9,0x3d78ac01,0xdfe11bb4,0x7fd7aa51,0x7286418c +.long 0x77f7195a,0xfabf7709,0xadeb838f,0x8ec86167,0xbb4f012d,0xea1285a8,0x9a3eab3f,0xd6883503,0x309004c2,0xee5d24f8,0x13ffe95e,0xa96e4b76,0xbd223ea4,0x0cdffe12,0xb6739a53,0x8f5c2ee5 +.long 0xdd968198,0x5cb4aaa5,0x72413a6c,0xfa131c52,0x9536d903,0x53d46a90,0x48606d8e,0xb270f0d3,0xa053a3bc,0x518c7564,0x1a86caef,0x088254b7,0x0ab5efd0,0xb3ba8cb4,0x4605945d,0x5c59900e +.long 0xa1887395,0xecace1dd,0x932a65de,0x40960f36,0x3aa95529,0x9611ff5c,0x7c1e5a36,0xc58215b0,0xf0e1a524,0xd48c9b58,0xf590dfb8,0xb406856b,0x9cd95662,0xc7605e04,0xa33ecf82,0x0dd036ee +.long 0xc33156b3,0xa50171ac,0x4a80172e,0xf09d24ea,0x76dc8eef,0x4e1f72c6,0x5e3d44ee,0xe60caadc,0x979b1d8f,0x006ef8a6,0x97788d26,0x60908a1c,0x266feec0,0x6e08f95b,0x22e8c94e,0x618427c2 +.long 0x59145a65,0x3d613339,0xfa406337,0xcd9bc368,0x2d8a52a0,0x82d11be3,0x97a1c590,0xf6877b27,0xf5cbdb25,0x837a819b,0xde090249,0x2a4fd1d8,0x74990e5f,0x622a7de7,0x7945511b,0x840fa5a0 +.long 0x6558842d,0x30b974be,0x17f3d0a6,0x70df8c64,0x7542e46d,0x7c803520,0xe4ecc823,0x7251fe7f,0x5e9aac9a,0xe59134cb,0xf0045d71,0x11bb0934,0xdbcb1d4e,0x53e5d9b5,0x92defc91,0x8d97a905 +.long 0x7946d3f9,0xfe289327,0x07472273,0xe132bd24,0x1eb6ae86,0xeeeb510c,0xf0595067,0x777708c5,0x1297029e,0x18e2c8cd,0xbbf9305e,0x2c61095c,0x6b85d6d9,0xe466c258,0xda1ea530,0x8ac06c36 +.long 0xa1304668,0xa365dc39,0x07f89606,0xe4a9c885,0xacc7228d,0x65a4898f,0x84ca8303,0x3e2347ff,0xea7d23a3,0xa5f6fb77,0x672a71cd,0x2fac257d,0x7e6a44d3,0x6908bef8,0x891d3d7a,0x8ff87566 +.long 0x6b0cf82e,0xe58e90b3,0x2615b5e7,0x6438d246,0x669c145a,0x07b1f8fc,0x36f1e1cb,0xb0d8b2da,0xd9184c4d,0x54d5dadb,0xf93d9976,0x3dbb18d5,0xd1147d47,0x0a3e0f56,0xa0a48609,0x2afa8c8d +.long 0xbc36742c,0x275353e8,0xeea0ed90,0x898f427e,0x3e477b00,0x26f4947e,0x308741e3,0x8ad8848a,0xd74a2a46,0x6c703c38,0x9ba17ba2,0x5e3e05a9,0x4ab9a9e4,0xc1fa6f66,0x3841d6ec,0x474a2d9a +.long 0x653ae326,0x871239ad,0xa74cbb43,0x14bcf72a,0x20d4c083,0x8737650e,0x110ed4af,0x3df86536,0xb53ca555,0xd2d86fe7,0xabd5d538,0x688cb00d,0x1ad38468,0xcf81bda3,0xf01167b6,0x7ccfe3cc +.long 0x6c4c1fe6,0xcf4f47e0,0x298bbb79,0x557e1f1a,0x30d45a14,0xf93b974f,0x0baf97c4,0x174a1d2d,0xc51fbf53,0x7a003b30,0xee68b225,0xd8940991,0x1c0f4173,0x5b0aa7b7,0xa20a7153,0x975797c9 +.long 0xe3533d77,0x26e08c07,0x2e341c99,0xd7222e6a,0x8d2dc4ed,0x9d60ec3d,0x7c476cf8,0xbdfe0d8f,0x1d056605,0x1fe59ab6,0x86a8551f,0xa9ea9df6,0x47fb8d8c,0x8489941e,0x4a7f1b10,0xfeb874eb +.long 0x7ee0d98f,0xfe5fea86,0xdbf61864,0x201ad34b,0x37c031d4,0x45d8fe47,0x795f0822,0xd5f49fae,0xc7f4a40c,0xdb0fb291,0x730ddd92,0x2e69d9c1,0x49d76987,0x754e1054,0x7662db87,0x8a24911d +.long 0x60a71676,0x61fc1810,0xf66a8ad1,0xe852d1a8,0x6417231e,0x172bbd65,0x3babb11f,0x0d6de7bd,0xc8e347f8,0x6fde6f88,0x9bd99cc3,0x1c587547,0x34076950,0x78e54ed0,0x796e83ba,0x97f0f334 +.long 0x4924867a,0xe4dbe1ce,0x60b84917,0xbd5f51b0,0x3cb09a79,0x37530040,0xff1743d8,0xdb3fe0f8,0x556fa9db,0xed7894d8,0x23412fbf,0xfa262169,0xba7b9291,0x563be0db,0x0c9fb234,0x6ca8b8c0 +.long 0xbd763802,0xed406aa9,0x65303da1,0xc21486a0,0xc7e62ec4,0x61ae291e,0xdf99333e,0x622a0492,0xbb7a8ee0,0x7fd80c9d,0x6c01aedb,0xdc2ed3bc,0x08be74ec,0x35c35a12,0x469f671f,0xd540cb1a +.long 0xcf84f6c7,0xd16ced4e,0x2d090f43,0x8561fb9c,0x6f239db4,0x7e693d79,0x77bd0d94,0xa736f928,0x2c1950ee,0x07b4d929,0x56dc11b3,0xda177543,0x7a6a878e,0xa5dfbbaa,0x4decb08a,0x1c70cb29 +.long 0x6f0f7c50,0xfba28c8b,0x854dcc6d,0xa8eba2b8,0x36b78642,0x5ff8e89a,0xf6873adf,0x070c1c8e,0x6484d2e4,0xbbd3c371,0x0d414129,0xfb78318f,0x6ad93b0b,0x2621a39c,0xa9e917f7,0x979d74c2 +.long 0x61fb0428,0xfc195647,0xbee624d4,0x4d78954a,0xb8ae86fd,0xb94896e0,0xc91c8b13,0x6667ac0c,0x43bcf832,0x9f180512,0xa0010137,0xfbadf8b7,0xb3ba8aa7,0xc69b4089,0xe687ce85,0xfac4bacd +.long 0x977eab40,0x9164088d,0x2760b390,0x51f4c5b6,0x340dd553,0xd238238f,0xdb1d31c9,0x358566c3,0x5068f5ff,0x3a5ad69e,0xdaff6b06,0xf31435fc,0xd6debff0,0xae549a5b,0x75e01331,0x59e5f0b7 +.long 0x98559acf,0x5d492fb8,0x4db79b50,0x96018c2e,0x609f66aa,0x55f4a48f,0x4900a14f,0x1943b3af,0x15a40d39,0xc22496df,0x4c20f7c5,0xb2a44684,0x3b98404c,0x76a35afa,0xff5d1b77,0xbec75725 +.long 0xbea06444,0xb67aa163,0xf724b6f2,0x27e95bb2,0xd238c8ab,0x3c20e3e9,0xddd6ae17,0x1213754e,0x716e0f74,0x8c431020,0xffc095c2,0x6679c82e,0xd0ac2932,0x2eb3adf4,0x01bb7a76,0x2cc970d3 +.long 0x740f0e66,0x70c71f2f,0x2b6b23cc,0x545c616b,0xb40a8bd7,0x4528cfcb,0x2ab27722,0xff839633,0x025ac99a,0x049127d9,0x2b63e33b,0xd314d4a0,0x28d84519,0xc8c310e7,0xb3bc84ba,0x0fcb8983 +.long 0x38634818,0x2cc52261,0xb44c2e0b,0x501814f4,0x54dfdba3,0xf7e181aa,0xe759718c,0xcfd58ff0,0xd3b507a8,0xf90cdb14,0xc50bdad8,0x57bd478e,0x50e5f9aa,0x29c197e2,0xe40bc855,0x4db6eef8 +.long 0xd1fc0654,0x2cc8f21a,0x81269d73,0xc71cc963,0x077f49f9,0xecfbb204,0xca56b793,0xdde92571,0xf97ad8f7,0x9abed6a3,0x924de3bd,0xe6c19d3f,0xa140a800,0x8dce92f4,0x1337af07,0x85f44d1e +.long 0x09d64c52,0x5953c08b,0xf5df9749,0xa1b5e49f,0x52735f7d,0x336a8fb8,0x9add676b,0xb332b6db,0xb4511aa4,0x558b88a0,0xdbd5cc55,0x09788752,0xd8cd52bd,0x16b43b9c,0xc2a2696b,0x7f0bc5a0 +.long 0xc11f61ef,0x146e12d4,0x3a83e79e,0x9ce10754,0x6cbfca15,0x08ec73d9,0x5b49653f,0x09ff29ad,0xe7da946e,0xe31b72bd,0xee80a4f2,0xebf9eb3b,0x17598ce4,0xd1aabd08,0x53f37e80,0x18b5fef4 +.long 0x5958cd79,0xd5d5cdd3,0x1d373114,0x3580a1b5,0xfa935726,0xa36e4c91,0xef20d760,0xa38c534d,0x2ff5845b,0x7088e40a,0xbd78177f,0xe5bb40bd,0x857f9920,0x4f06a7a8,0xe968f05d,0xe3cc3e50 +.long 0xe5682d26,0x1d68b7fe,0xaec7f87c,0x5206f76f,0x041951ab,0x41110530,0xd4b5a71a,0x58ec52c1,0x0f75cf9a,0xf3488f99,0xba82d0d5,0xf411951f,0x618895ab,0x27ee75be,0x6d8aab14,0xeae060d4 +.long 0x7fb54dc2,0x9ae1df73,0x25963649,0x1f3e391b,0xfe055081,0x242ec32a,0x8491c9bd,0x5bd450ef,0x981eb389,0x367efc67,0x3a0550d5,0xed7e1928,0xab3ce75c,0x362e776b,0x1f24c523,0xe890e308 +.long 0xfeccef76,0xb961b682,0x8bba6d92,0x8b8e11f5,0x2b2375c4,0x8f2ccc4c,0xe2f86cfa,0x0d7f7a52,0x9efe5633,0xfd94d30a,0x5451f934,0x2d8d246b,0x244e6a00,0x2234c6e3,0xddec8c50,0xde2b5b0d +.long 0xbf776f5b,0x2ce53c5a,0x60357b05,0x6f724071,0x71bf3f7a,0xb2593717,0x440c4a9f,0x87d2501c,0x87b05340,0x440552e1,0x21624c32,0xb7bf7cc8,0x22facddb,0x4155a6ce,0x889837ef,0x5a4228cb +.long 0xfd4fd671,0xef87d6d6,0xc2daa10e,0xa233687e,0x03c0eb96,0x75622244,0x8bf19be6,0x7632d184,0x40735ff4,0x05d0f8e9,0xc00931f1,0x3a3e6e13,0xdafe3f18,0x31ccde6a,0xcfe51207,0xf381366a +.long 0x60167d92,0x24c222a9,0x7529f18c,0x62f9d6f8,0x0353b114,0x412397c0,0xef808043,0x334d89dc,0x2a4383ce,0xd9ec63ba,0x5cf92ba0,0xcec8e937,0xc8be74c0,0xfb8b4288,0x105d4391,0x67d6912f +.long 0x1b913149,0x7b996c46,0x3a4e02da,0x36aae2ef,0x972de594,0xb68aa003,0x4ec6d545,0x284ec70d,0x61391d54,0xf3d2b2d0,0xfe114e92,0x69c5d5d6,0xb4482dff,0xbe0f00b5,0xf5bf33c5,0xe1596fa5 +.long 0x96a71cba,0x10595b56,0xfdcadeb7,0x944938b2,0xfccd8471,0xa282da4c,0x0d37bfe1,0x98ec05f3,0x0698304a,0xe171ce1b,0x21bdf79b,0x2d691444,0x1b21dec1,0xd0cd3b74,0x16a15f71,0x712ecd8b +.long 0x00fd56e1,0x8d4c00a7,0xf9527c18,0x02ec9692,0x4a3e42e1,0x21c44937,0x1392ae0a,0x9176fbab,0x44b7b618,0x8726f1ba,0xf1de491c,0xb4d7aae9,0x07b582c0,0xf91df7b9,0xef60aa3a,0x7e116c30 +.long 0x466265d7,0x99270f81,0x4df7adf0,0xb15b6fe2,0xf9738f7f,0xfe33b2d3,0xd6d70f95,0x48553ab9,0xc21e94db,0x2cc72ac8,0xbdc0bbee,0x795ac38d,0x2e40478f,0x0a1be449,0x052bde55,0x81bd3394 +.long 0x56b3c4f2,0x63c8dbe9,0x904177cc,0x017a99cf,0x4d010fc1,0x947bbddb,0xbb2c9b21,0xacf9b00b,0x47173611,0x2970bc8d,0xac7d756f,0x1a4cbe08,0x67d541a2,0x06d9f4aa,0x59c2cf44,0xa3e8b689 +.long 0x4d88f1dd,0xaad066da,0x7ad35dea,0xc604f165,0x4478ca67,0x7edc0720,0xba02ce06,0xa10dfae0,0xaf36f4e4,0xeceb1c76,0xaf3f8f48,0x994b2292,0x77c8a68c,0xbf9ed77b,0x51744c9d,0x74f544ea +.long 0x8113a757,0x82d05bb9,0x8a9885e4,0x4ef2d2b4,0x1aa7865f,0x1e332be5,0x290d1a52,0x22b76b18,0x44351683,0x308a2310,0xa3f22840,0x9d861896,0x841ed947,0x5959ddcd,0x154b73bf,0x0def0c94 +.long 0x4c7c15e0,0xf0105417,0x3a277c32,0x539bfb02,0xf9dccf5f,0xe699268e,0x0247a3bd,0x9f5796a5,0x4f157269,0x8b839de8,0x7a30196b,0xc825c1e5,0xdc8a5a91,0x6ef0aabc,0x498b7fe6,0xf4a8ce6c +.long 0x70cbac78,0x1cce35a7,0xf6b23958,0x83488e9b,0xd76cb011,0x0341a070,0xae1b2658,0xda6c9d06,0xdd648c52,0xb701fb30,0x52fb9fd1,0x994ca02c,0x6f563086,0x06933117,0x17856bab,0x3d2b8100 +.long 0x5963a46e,0xe89f48c8,0xa99e61c7,0x658ab875,0x4b8517b4,0x6e296f87,0xfc1bc656,0x36c4fcdc,0xa3906def,0xde5227a1,0x62418945,0x9fe95f57,0xfdd96cde,0x20c91e81,0xda4480de,0x5adbe47e +.long 0x396de2b6,0xa009370f,0xf0ecc7bd,0x98583d4b,0xe51d0672,0xf44f6b57,0x556b1984,0x03d6b078,0xb0b64912,0x27dbdd93,0x15687b09,0x9b3a3434,0x51ec20a9,0x0dba6461,0xff28187c,0xec93db7f +.long 0x66e48bdd,0x00ff8c24,0x11ccd78e,0x2514f2f9,0xe1250603,0xeba11f4f,0x243fa156,0x8a22cd41,0xb283e4c6,0xa4e58df4,0x8b39783f,0x78c29859,0xa5259809,0x5235aee2,0x0e0227dd,0xc16284b5 +.long 0x1338830d,0xa5f57916,0xd2123fca,0x6d4b8a6b,0xf9c546f8,0x236ea68a,0xfa608d36,0xc1d36873,0x8d436d13,0xcd76e495,0x8fb080af,0xd4d9c221,0xe8ad3fb5,0x665c1728,0xb3d572e0,0xcf1ebe4d +.long 0x584c5e20,0xa7a8746a,0xb9dc7035,0x267e4ea1,0xb9548c9b,0x593a15cf,0x4bd012f3,0x5e6e2135,0x8c8f936e,0xdf31cc6a,0xb5c241dc,0x8af84d04,0x345efb86,0x63990a6f,0xb9b962cb,0x6fef4e61 +.long 0x25722608,0xf6368f09,0x131cf5c6,0x131260db,0xfab4f7ac,0x40eb353b,0x37eee829,0x85c78880,0xc3bdf24e,0x4c1581ff,0xf5c3c5a8,0x5bff75cb,0xa14e6f40,0x35e8c83f,0x0295e0ca,0xb81d1c0f +.long 0xf43a730f,0xfcde7cc8,0x33ab590e,0xe89b6f3c,0xad03240b,0xc823f529,0x98bea5db,0x82b79afe,0x962fe5de,0x568f2856,0x60c591f3,0x0c590adb,0x4a28a858,0x1fc74a14,0xb3203f4c,0x3b662498 +.long 0x6c39765a,0x91e3cf0d,0xac3cca0b,0xa2db3acd,0xcb953b50,0x288f2f08,0xcf43cf1a,0x2414582c,0x60eee9a8,0x8dec8bbc,0x729aa042,0x54c79f02,0x6532f5d5,0xd81cd5ec,0xcf82e15f,0xa672303a +.long 0x719c0563,0x376aafa8,0xbc5fc79f,0xcd8ad2dc,0xcb750cd3,0x303fdb9f,0x4418b08e,0x14ff052f,0x3e2d6520,0xf75084cf,0x144ed509,0x7ebdf0f8,0xd3f25b98,0xf43bf0f2,0xa354d837,0x86ad71cf +.long 0x26f43572,0xb827fe92,0x5d824758,0xdfd3ab5b,0x539094c1,0x315dd23a,0x66623d68,0x85c0e37a,0x7be19ae0,0x575c7972,0xdf0d36b5,0x616a3396,0x26b1ff7e,0xa1ebb3c8,0x140ad453,0x635b9485 +.long 0xda430c0b,0x92bf3cda,0x3a96dac6,0x4702850e,0x15ac326a,0xc91cf0a5,0xab8c25e4,0x95de4f49,0xe265c17c,0xb01bad09,0x087b3881,0x24e45464,0xe1fac5ca,0xd43e583c,0x6ead97a6,0xe17cb318 +.long 0x74dcec46,0x6cc39243,0x54c2b73f,0x33cfc02d,0xf26cd99c,0x82917844,0xd1773f89,0x8819dd95,0x0871f427,0x09572aa6,0xf6f01c34,0x8e0cf365,0xbff1f5af,0x7fa52988,0xe75e8e50,0x4eb357ea +.long 0x868af75d,0xd9d0c8c4,0x45c8c7ea,0xd7325cff,0xcc81ecb0,0xab471996,0x611824ed,0xff5d55f3,0x1977a0ee,0xbe314541,0x722038c6,0x5085c4c5,0xf94bb495,0x2d5335bf,0xc8e2a082,0x894ad8a6 +.long 0xada35438,0x5c3e2341,0x049b8c4e,0xf4a9fc89,0x9f17cf34,0xbeeb355a,0x6c91fe10,0x3f311e0e,0x92ab9891,0xc2d20038,0x3e8ce9a9,0x257bdcc1,0x88c53bee,0x1b2d9789,0xcdba143a,0x927ce89a +.long 0x523db280,0xb0a32cca,0x50d43783,0x5c889f8a,0x4897d16f,0x503e04b3,0x08f5f2e8,0x8cdb6e78,0x179c8e74,0x6ab91cf0,0x48211d60,0xd8874e52,0xea851200,0xf948d4d5,0xe6f9840a,0x4076d41e +.long 0x47b517ea,0xc20e263c,0x30685e5e,0x79a448fd,0xf90631a0,0xe55f6f78,0xa79e6346,0x88a790b1,0x80969fe8,0x62160c7d,0x41491bb9,0x54f92fd4,0x5c957526,0xa6645c23,0xbea3ce7b,0xf44cc5ae +.long 0x8b1e68b7,0xf7628327,0x303f29d3,0xc731ad7a,0x57d03ecb,0xfe5a9ca9,0x41bc97a7,0x96c0d50c,0x9b4f7f24,0xc4669fe7,0x3d9967ef,0xfdd781d8,0x5d2c208d,0x7892c7c3,0xae545cb3,0x8bf64f7c +.long 0x467be912,0xc01f862c,0xc73d30cc,0xf4c85ee9,0x6ab83ec7,0x1fa6f4be,0x4e3e3cf9,0xa07a3c1c,0x0c00beb3,0x87f8ef45,0x000d4c3e,0x30e2c2b3,0xfe08bf5b,0x1aa00b94,0x9224ef52,0x32c133aa +.long 0x32e5685d,0x38df16bb,0x58e6f544,0x68a9e069,0xcdc5ebc6,0x495aaff7,0x378b135f,0xf894a645,0x09e27ecf,0xf316350a,0x58f7179d,0xeced201e,0xe97861ba,0x2eec273c,0xd693be2e,0x47ec2cae +.long 0xf68367ce,0xfa4c97c4,0xbe5a5755,0xe4f47d0b,0xb298a979,0x17de815d,0xc177dc7d,0xd7eca659,0x49ded0a3,0x20fdbb71,0xfb34d3c5,0x4cb2aad4,0x60858a33,0x2cf31d28,0xa24aa40f,0x3b6873ef +.long 0x2c11bb37,0x540234b2,0xed4c74a3,0x2d0366dd,0xeec5f25d,0xf9a968da,0x67b63142,0x36601068,0x68d7b6d4,0x07cd6d2c,0x0c842942,0xa8f74f09,0x7768b1ee,0xe2751404,0xfe62aee4,0x4b5f7e89 +.long 0x89070d26,0xc6a77177,0xdd1c8bc7,0xa1f28e4e,0x469e1f17,0xea5f4f06,0xfbdb78e0,0x78fc242a,0x8b0588f1,0xc9c7c592,0x1535921e,0xb6b7a0fd,0xbde5ae35,0xcc5bdb91,0x12ff1864,0xb42c485e +.long 0xdbab98aa,0xa1113e13,0xa17b1024,0xde9d469b,0xc0462d3a,0x23f48b37,0x7c5c078d,0x3752e537,0x15544eb9,0xe3a86add,0x80fba279,0xf013aea7,0xf22001b5,0x8b5bb76c,0xf02891ab,0xe617ba14 +.long 0x936219d3,0xd39182a6,0xae51cb19,0x5ce1f194,0xbf07a74c,0xc78f8598,0x22cbf1bc,0x6d7158f2,0xe300ce18,0x3b846b21,0x2d11275d,0x35fba630,0xa0239b9b,0x5fe25c36,0xdf05d940,0xd8beb35d +.long 0x1f7e320d,0x4db02bb0,0x6da320ea,0x0641c364,0x821389a3,0x6d95fa5d,0x8fcd8e3d,0x92699748,0xceb6c143,0x316fef17,0xd933762b,0x67fcb841,0x118b17f8,0xbb837e35,0x9fd24821,0x4b92552f +.long 0x46aca793,0xae6bc70e,0xe579311b,0x1cf0b0e4,0x5802f716,0x8dc631be,0xbddbee4d,0x099bdc6f,0x0caf8b05,0xcc352bb2,0x72d63df2,0xf74d505a,0x91c4f408,0xb9876d4b,0x9e229b2d,0x1ce18473 +.long 0x83abdb4a,0x49507597,0xdee84b18,0x850fbcb6,0x609e67dc,0x6325236e,0x9336c6d8,0x04d831d9,0xfa12d45d,0x8deaae3b,0x4746e246,0xe425f8ce,0x24f5f31e,0x8004c175,0xad62c3b7,0xaca16d8f +.long 0x9152f934,0x0dc15a6a,0xed0e12c1,0xf1235e5d,0xda477dac,0xc33c06ec,0xb2ea0006,0x76be8732,0x0c0cd313,0xcf3f7831,0xa614260d,0x3c524553,0xcab22d15,0x31a756f8,0x77827a20,0x03ee10d1 +.long 0x1994ef20,0xd1e059b2,0x638ae318,0x2a653b69,0x2f699010,0x70d5eb58,0x09f5f84a,0x279739f7,0x8b799336,0x5da4663c,0x203c37eb,0xfdfdf14d,0xa1dbfb2d,0x32d8a9dc,0x77d48f9b,0xab40cff0 +.long 0xd20b42d5,0xc018b383,0x9f78845f,0xf9a810ef,0xbdba9df0,0x40af3753,0x131dfdf9,0xb90bdcfc,0xf01ab782,0x18720591,0x6af12a88,0xc823f211,0x0dc14401,0xa51b80f3,0xfb2dfbe3,0xde248f77 +.long 0x0cafe751,0xef5a44e5,0xd4dcd221,0x73997c9c,0xde854024,0x32fd86d1,0xa09b84bb,0xd5b53adc,0xdcedd8d1,0x008d7a11,0x74b32c84,0x406bd1c8,0x05dde8b1,0x5d4472ff,0xfce2b32f,0x2e25f2cd +.long 0x29dfc254,0xbec0dd5e,0x2b98b267,0x4455fcf6,0xc72df2ad,0x0b4d43a5,0x48a75397,0xea70e6be,0x5820f3bf,0x2aad6169,0x9e37f68f,0xf410d2dd,0x7be5ac83,0x70fb7dba,0x36ec3eec,0x636bb645 +.long 0x9754e21c,0x27104ea3,0x8d63c373,0xbc87a3e6,0x4109db9a,0x483351d7,0x60134da7,0x0fa724e3,0xb0720b16,0x9ff44c29,0x06aceead,0x2dd0cf13,0xe26929a6,0x5942758c,0xb766a92b,0x96c5db92 +.long 0x5f18395e,0xcec7d4c0,0x1f80d032,0xd3f22744,0xcb86075b,0x7a68b37a,0xafef92db,0x074764dd,0x7bc7f389,0xded1e950,0xb9756460,0xc580c850,0x7da48157,0xaeeec2a4,0x82c587b3,0x3f0b4e7f +.long 0xa9f19c53,0x231c6de8,0x6974e34e,0x5717bd73,0xf1508fa9,0xd9e1d216,0xdadaa124,0x9f112361,0x823b7348,0x80145e31,0xac634069,0x4dd8f0d5,0x2297c258,0xe3d82fc7,0x9cee7431,0x276fcfee +.long 0x2bc0aea9,0x8eb61b5e,0xde329431,0x4f668fd5,0x38e4b87e,0x03a32ab1,0x73d0ef0b,0xe1374517,0x853ac983,0x1a46f7e6,0x68e78a57,0xc3bdf42e,0x2ea96dd1,0xacf20785,0xf1638460,0xa10649b9 +.long 0x879fbbed,0xf2369f0b,0xda9d1869,0x0ff0ae86,0x56766f45,0x5251d759,0x2be8d0fc,0x4984d8c0,0xd21008f0,0x7ecc95a6,0x3a1a1c49,0x29bd54a0,0xd26c50f3,0xab9828c5,0x51d0d251,0x32c0087c +.long 0x0c1cdb26,0x9bac3ce6,0x557ca205,0xcd94d947,0x9db1fdcd,0x1b1bd598,0xa3d8b149,0x0eda0108,0x56152fcc,0x95066610,0xe7192b33,0xc2f037e6,0xc92e05a4,0xdeffb41a,0xc2f6c62e,0x1105f6c2 +.long 0x8733913c,0x68e73500,0x3f3adc40,0xcce86163,0x38a278e9,0xf407a942,0x2ab21292,0xd13c1b9d,0x1c74cf5c,0x93ed7ec7,0xf1a4c1b4,0x8887dc48,0x4b3a11f1,0x3830ff30,0x58937cb6,0x358c5a3c +.long 0x89022829,0x027dc404,0x3b798f79,0x40e93977,0x38be6ead,0x90ad3337,0xf34c0a5d,0x9c23f6bc,0xfbffd8bb,0xd1711a35,0x1949d3dd,0x60fcfb49,0x7825d93a,0x09c8ef4b,0xa0a8c968,0x24233cff +.long 0xe6d982af,0x67ade46c,0xe7544d7c,0xebb6bf3e,0x3d8bd087,0xd6b9ba76,0x4dc61280,0x46fe382d,0xb5bdbd75,0xbd39a7e8,0xb8f228fe,0xab381331,0xce1c4300,0x0709a77c,0xf337ceac,0x6a247e56 +.long 0x636288be,0x8f34f21b,0xc8a7c305,0x9dfdca74,0xea919e04,0x6decfd1b,0x8e1991f8,0xcdf2688d,0xd0f8a67e,0xe607df44,0x0b58d010,0xd985df4b,0x0c24f8f4,0x57f834c5,0xa0bf01ae,0xe976ef56 +.long 0xa1c32373,0x536395ac,0x734c0a13,0x351027aa,0x5e6bd5bc,0xd2f1b5d6,0x223debed,0x2b539e24,0x0eaa1d71,0xd4994cec,0x661dcf65,0x2a83381d,0x7b54c740,0x5f1aed2f,0xd6dda5ee,0x0bea3fa5 +.long 0x36cc6134,0x9d4fb684,0xc0a443dd,0x8eb9bbf3,0x383b7d2a,0xfc500e2e,0x5b775257,0x7aad621c,0x0a8f7cc0,0x69284d74,0x07562d65,0xe820c2ce,0x499758ee,0xbf9531b9,0x6ee0cc2d,0x73e95ca5 +.long 0xfbaf50a5,0xf61790ab,0x684e0750,0xdf55e76b,0xf176b005,0xec516da7,0x7a2dddc7,0x575553bb,0x553afa73,0x37c87ca3,0x4d55c251,0x315f3ffc,0xaf3e5d35,0xe846442a,0x6495ff28,0x61b91149 +.long 0xfa326dc3,0x23cc95d3,0x18fc2cea,0x1df4da1f,0xd0a37d59,0x24bf9adc,0x320d6e1e,0xb6710053,0x618344d1,0x96f9667e,0xa06445af,0xcc7ce042,0xd68dbc3a,0xa02d8514,0x280b5a5b,0x4ea109e4 +.long 0xb40961bf,0x5741a7ac,0x6aa56bfa,0x4ada5937,0x02b765d1,0x7feb9145,0xe6ad1582,0x561e97be,0xda3982f5,0xbbc4a5b6,0xb546f468,0x0c2659ed,0x59612d20,0xb8e7e6aa,0xac19e8e0,0xd83dfe20 +.long 0xb835398c,0x8530c45f,0xb38a41c2,0x6106a8bf,0x35f5dcdb,0x21e8f9a6,0xcae498ed,0x39707137,0xd8249f00,0x70c23834,0xab2537a0,0x9f14b58f,0x5f61c0c2,0xd043c365,0x09a194a7,0xdc5926d6 +.long 0x8e77738a,0xddec0339,0xfba46426,0xd07a63ef,0xee7f6e86,0x2e58e79c,0xff32d241,0xe59b0459,0x20fa0338,0xc5ec84e5,0xeaff5ace,0x97939ac8,0xb4a38313,0x0310a4e3,0x8f9d9885,0x9115fba2 +.long 0x5fadf8c3,0x8dd710c2,0xce19c0e2,0x66be38a2,0x4cfe5022,0xd42a279c,0x0e24e1b8,0x597bb530,0xc153ca7f,0x3cde86b7,0x707d63bd,0xa8d30fb3,0xbd60d21e,0xac905f92,0x7b9a54ab,0x98e7ffb6 +.long 0xe9726a30,0xd7147df8,0xafce3533,0xb5e216ff,0x2ff1ec40,0xb550b799,0xa1e953fd,0x6b613b87,0x792d5610,0x87b88dba,0xa190fbe1,0x2ee1270a,0x2ef581da,0x02f4e2dc,0xeff82a95,0x016530e4 +.long 0x8fd6ee89,0xcbb93dfd,0x46848fff,0x16d3d986,0x1da47adf,0x600eff24,0x0ad47a71,0x1b9754a0,0x70c33b98,0x8f9266df,0xdf34186e,0xaadc87ae,0x4ad24132,0x0d2ce8e1,0x19946eba,0x8a47cbfc +.long 0x62b5f3af,0x47feeb66,0x0abb3734,0xcefab561,0x19f35cb1,0x449de60e,0x157f0eb9,0x39f8db14,0x3c61bfd6,0xffaecc5b,0x41216703,0xa5a4d41d,0x224e1cc2,0x7f8fabed,0x871ad953,0x0d5a8186 +.long 0xd22da9a9,0xf10774f7,0xcc8a9b0d,0x45b8a678,0xbdc32cff,0xd9c2e722,0x337202a5,0xbf71b5f5,0x69fc4db9,0x95c57f2f,0x765d01e1,0xb6dad34c,0xcb904635,0x7e0bd13f,0x763a588c,0x61751253 +.long 0x81af2c2d,0xd85c2997,0x81b9d7da,0xc0f7d9c4,0x08533e8d,0x838a34ae,0x311d8311,0x15c4cb08,0x8e121e14,0x97f83285,0x85000a5f,0xeea7dc1e,0x5d256274,0x0c6059b6,0xb95075c0,0xec9beace +.long 0x1df97828,0x173daad7,0xa8937877,0xbf851cb5,0x01646f3c,0xb083c594,0x50c6d352,0x3bad30cf,0x496bbcea,0xfeb2b202,0x18a1e8ba,0x3cf9fd4f,0x1c066029,0xd26de7ff,0x4e9ed4f8,0x39c81e9e +.long 0x7b390d35,0xd8be0cb9,0x964aab27,0x01df2bbd,0xc3ef64f8,0x3e8c1a65,0x716ed1dd,0x567291d1,0x5f5406d3,0x95499c6c,0x5ba8e23f,0x71fdda39,0xd5096ece,0xcfeb320e,0xca66dd16,0xbe7ba92b +.long 0xc6fb5a7d,0x4608d36b,0x6d2dd0e0,0xe3eea15a,0x8f97a36a,0x75b0a3eb,0x1c83de1e,0xf59814cc,0x1c33c23f,0x56c9c5b0,0x6faa4136,0xa96c1da4,0xde316551,0x46bf2074,0x1f756c8f,0x3b866e7b +.long 0x1495ed6b,0x727727d8,0xb682dce7,0xb2394243,0x758610f3,0x8ab8454e,0x857d72a4,0xc243ce84,0xdbbf370f,0x7b320d71,0x78e0f7ca,0xff9afa37,0xea7b523f,0x0119d1e0,0x058c7d42,0xb997f8cb +.long 0x37bbb184,0x285bcd2a,0xa45d1fa6,0x51dcec49,0xe29634cb,0x6ade3b64,0x26b86ef1,0x080c94a7,0x2283fbe3,0xba583db1,0x5a9315ed,0x902bddc8,0x86964bec,0x07c1ccb3,0xb6258301,0x78f4eacf +.long 0x56f90823,0x4bdf3a49,0x741d777b,0xba0f5080,0xf38bf760,0x091d71c3,0x9b625b02,0x9633d50f,0xb8c9de61,0x03ecb743,0x5de74720,0xb4751254,0x74ce1cb2,0x9f9defc9,0x00bd32ef,0x774a4f6a +.long 0x73848f22,0xaca385f7,0xf3f8558e,0x53dad716,0x93c471f9,0xab7b34b0,0x19644bc7,0xf530e069,0xdd59d31a,0x3d9fb1ff,0x08daa795,0x4382e0df,0xd5cc88d7,0x165c6f4b,0x4a18c900,0xeaa392d5 +.long 0x648024ee,0x94203c67,0x8c2fabcd,0x188763f2,0xbbaec835,0xa80f87ac,0xf29d8d54,0x632c96e0,0x4c00a95e,0x29b0a60e,0xe011e9fa,0x2ef17f40,0x15b77223,0xf6c0e1d1,0x14b04e32,0xaaec2c62 +.long 0x3d84e58c,0xd35688d8,0x958571db,0x2af5094c,0x760682a6,0x4fff7e19,0xe39a407c,0x4cb27077,0x4ff0e321,0x0f59c547,0x1b34c8ff,0x169f34a6,0x52bc1ba7,0x2bff1096,0x83583544,0xa25423b7 +.long 0x0ac8b782,0x5d55d5d5,0x2db3c892,0xff6622ec,0x6b8bb642,0x48fce741,0x69d7e3dc,0x31d6998c,0xcadcaed0,0xdbaf8004,0xd81d053c,0x801b0142,0x59630ec6,0x94b189fc,0xaf762c8e,0x120e9934 +.long 0xfdc6a404,0x53a29aa4,0xa1909948,0x19d8e01e,0xd7e89681,0x3cfcabf1,0x4e132d37,0x3321a50d,0xe9a86111,0xd0496863,0x06a3bc65,0x8c0cde61,0xfc9f8eef,0xaf866c49,0xff7f5141,0x2066350e +.long 0xe56ddfbd,0x4f8a4689,0xfe32983a,0xea1b0c07,0x873cb8cb,0x2b317462,0x2d93229f,0x658deddc,0x0f64ef58,0x65efaf4d,0x730cc7a8,0xfe43287d,0x3d047d70,0xaebc0c72,0xd92d26c9,0x92efa539 +.long 0x94b56526,0x06e78457,0x0961002d,0x415cb80f,0x76dcb10f,0x89e5c565,0xff9259fe,0x8bbb6982,0x9abc2668,0x4fe8795b,0x1e678fb1,0xb5d4f534,0x7b7da2b9,0x6601f3be,0xa13d6805,0x98da59e2 +.long 0x01799a52,0x190d8ea6,0xb86d2952,0xa20cec41,0x7fff2a7c,0x3062ffb2,0x79f19d37,0x741b32e5,0x4eb57d47,0xf80d8181,0x16aef06b,0x7a2d0ed4,0x1cecb588,0x09735fb0,0xc6061f5b,0x1641caaa +.long 0x20151427,0x7f99824f,0x92430206,0x206828b6,0xe1112357,0xaa9097d7,0x09e414ec,0xacf9a2f2,0x27915356,0xdbdac9da,0x001efee3,0x7e0734b7,0xd2b288e2,0x54fab5bb,0xf62dd09c,0x4c630fc4 +.long 0x1ac2703b,0x8537107a,0x6bc857b5,0xb49258d8,0xbcdaccd1,0x57df14de,0xc4ae8529,0x24ab68d7,0x734e59d0,0x7ed8b5d4,0xc495cc80,0x5f8740c8,0x291db9b3,0x84aedd5a,0x4fb995be,0x80b360f8 +.long 0x5fa067d1,0xae915f5d,0x9668960c,0x4134b57f,0xa48edaac,0xbd3656d6,0xfc1d7436,0xdac1e3e4,0xd81fbb26,0x674ff869,0xb26c33d4,0x449ed3ec,0xd94203e8,0x85138705,0xbeeb6f4a,0xccde538b +.long 0xa61a76fa,0x55d5c68d,0xca1554dc,0x598b441d,0x773b279c,0xd39923b9,0x36bf9efc,0x33331d3c,0x298de399,0x2d4c848e,0xa1a27f56,0xcfdb8e77,0x57b8ab70,0x94c855ea,0x6f7879ba,0xdcdb9dae +.long 0x019f2a59,0x7bdff8c2,0xcb4fbc74,0xb3ce5bb3,0x8a9173dd,0xea907f68,0x95a75439,0x6cd3d0d3,0xefed021c,0x92ecc4d6,0x6a77339a,0x09a9f9b0,0x7188c64a,0x87ca6b15,0x44899158,0x10c29968 +.long 0xed6e82ef,0x5859a229,0x65ebaf4e,0x16f338e3,0x5ead67ae,0x0cd31387,0x54ef0bb4,0x1c73d228,0x74a5c8c7,0x4cb55131,0x7f69ad6a,0x01cd2970,0xe966f87e,0xa04d00dd,0x0b7b0321,0xd96fe447 +.long 0x88fbd381,0x342ac06e,0x5c35a493,0x02cd4a84,0x54f1bbcd,0xe8fa89de,0x2575ed4c,0x341d6367,0xd238202b,0xebe357fb,0xa984ead9,0x600b4d1a,0x52436ea0,0xc35c9f44,0xa370751b,0x96fe0a39 +.long 0x7f636a38,0x4c4f0736,0x0e76d5cb,0x9f943fb7,0xa8b68b8b,0xb03510ba,0x9ed07a1f,0xc246780a,0x6d549fc2,0x3c051415,0x607781ca,0xc2953f31,0xd8d95413,0x955e2c69,0x7bd282e3,0xb300fadc +.long 0x87e9189f,0x81fe7b50,0xf42dda27,0xdb17375c,0xcf0a5904,0x22f7d896,0xebe348e6,0xa0e57c5a,0xf40e3c80,0xa61011d3,0x8db705c5,0xb1189321,0x50fedec3,0x4ed9309e,0x4d6d5c1d,0xdcf14a10 +.long 0x55691342,0x056c265b,0x91049dc7,0xe8e08504,0xc9bae20a,0x131329f5,0xd9dccdb4,0x96c8b3e8,0xfb4ee6b4,0x8c5ff838,0x41e8ccf0,0xfc5a9aeb,0xfae050c6,0x7417b764,0x00452080,0x0953c3d7 +.long 0x38dfe7e8,0x21372682,0x2bb79d4b,0xea417e15,0x76e7cf2d,0x59641f1c,0xea0bcfcc,0x271e3059,0x7253ecbd,0x624c7dfd,0x4fca6186,0x2f552e25,0x4d866e9c,0xcbf84ecd,0xf68d4610,0x73967709 +.long 0xc27901b4,0xa14b1163,0x899b8bf3,0xfd9236e0,0xcbc6da0a,0x42b091ec,0x5ad1d297,0xbb1dac6f,0xa91cf76e,0x80e61d53,0xd31f1ee7,0x4110a412,0x13efcf77,0x2d87c3ba,0xdf450d76,0x1f374bb4 +.long 0x0d188dab,0x5e78e2f2,0xf4b885ef,0xe3968ed0,0x7314570f,0x46c0568e,0x01170521,0x31616338,0x4f0c8afe,0x18e1e7e2,0xdeea78da,0x4caa75ff,0x7c5d8a51,0x82db67f2,0x6f505370,0x36a44d86 +.long 0x0333974f,0xd72c5bda,0x27a70146,0x5db516ae,0x210ef921,0x34705281,0x0c9c38e5,0xbff17a8f,0x12476da1,0x78f4814e,0x33c16980,0xc1e16613,0x424d4bca,0x9e5b386f,0xc85740de,0x4c274e87 +.long 0x6c2f5226,0xb6a9b88d,0x550d7ca8,0x14d1b944,0x1fc41709,0x580c85fc,0x54c6d519,0xc1da368b,0xd5113cf7,0x2b0785ce,0x5a34708f,0x0670f633,0x15cc3f88,0x46e23767,0x50c72c8f,0x1b480cfa +.long 0x4147519a,0x20288602,0x26b372f0,0xd0981eac,0xa785ebc8,0xa9d4a7ca,0xdbdf58e9,0xd953c50d,0xfd590f8f,0x9d6361cc,0x44e6c917,0x72e9626b,0x22eb64cf,0x7fd96110,0x9eb288f3,0x863ebb7e +.long 0x6aca8ee7,0x6e6ab761,0xd7b40358,0x97d10b39,0x1e5feb0d,0x1687d377,0x8265a27a,0xc83e50e4,0xc954b313,0x8f75a9fe,0x310d1f61,0xcc2e8f47,0x6557d0e0,0xf5ba81c5,0x3eaf6207,0x25f9680c +.long 0x4354080b,0xf95c6609,0x7bf2fe1c,0x5225bfa5,0x5c7d98fa,0xc5c004e2,0x019aaf60,0x3561bf1c,0xba151474,0x5e6f9f17,0xb04f6eca,0xdec2f934,0x269acb1e,0x64e368a1,0x0cdda493,0x1332d9e4 +.long 0xdf23de05,0x60d6cf69,0x009339a0,0x66d17da2,0x0a693923,0x9fcac985,0xed7c6a6d,0xbcf057fc,0xf0b5662c,0xc3c5c8c5,0xdcba4f24,0x25318dd8,0x082b69ff,0x60e8cb75,0x1e728c01,0x7c23b3ee +.long 0x097e4403,0x15e10a0a,0x19854665,0xcb3d0a86,0xd67d4826,0x88d8e211,0x0b9d2839,0xb39af66e,0xbd475ca8,0xa5f94588,0xc077b80b,0xe06b7966,0xda27c26c,0xfedb1485,0xfe0fd5e0,0xd290d33a +.long 0xf34fb0fa,0xa40bcc47,0x1fb1ab09,0xb4760cc8,0xa273bfe3,0x8fca0993,0xf70b213c,0x13e4fe07,0xfdb05163,0x3bcdb992,0x0c2b19b6,0x8c484b11,0xaaf2e3e2,0x1acb815f,0xb89ff1b4,0xc6905935 +.long 0x586e74e1,0xb2ad6f9d,0x67b80484,0x488883ad,0x369c3ddb,0x758aa2c7,0x9f9afd31,0x8ab74e69,0x5e21beb1,0x10fc2d28,0x318c42f9,0x3484518a,0x53cf40c3,0x377427dc,0x391bc1d9,0x9de0781a +.long 0x693807e1,0x8faee858,0x4e81ccc7,0xa3865327,0x6f835b84,0x02c30ff2,0x0d3d38d4,0xb604437b,0x5ca1823d,0xb3fc8a98,0x03be0324,0xb82f7ec9,0xcf684a33,0xee36d761,0x9f29bf7d,0x5a01df0e +.long 0x1306583d,0x686202f3,0x437c622e,0x05b10da0,0x076a7bc8,0xbf9aaa0f,0x8f8f4e43,0x25e94efb,0xfa3dc26d,0x8a35c9b7,0x96ff03c5,0xe0e5fb93,0xebc394ce,0xa77e3843,0x8361de60,0xcede6595 +.long 0xa1993545,0xd27c22f6,0x24d671ba,0xab01cc36,0xa169c28e,0x63fa2877,0x2eb08376,0x925ef904,0x53aa0b32,0x3b2fa3cf,0x71c49d7a,0xb27beb5b,0xd105e27f,0xb60e1834,0x4f68570d,0xd6089788 +.long 0xd6fbc2ac,0x23094ce0,0x815ff551,0x738037a1,0x6bef119c,0xda73b1bb,0xeef506ba,0xdcf6c430,0xe3ef104a,0x00e4fe7b,0x0a065628,0xebdd9a2c,0x8792043e,0x853a81c3,0xb3b59108,0x22ad6ece +.long 0x39cd297d,0x9fb813c0,0x05bda5d9,0x8ec7e16e,0x0d104b96,0x2834797c,0x7c511510,0xcc11a2e7,0x96ee6380,0x96ca5a53,0xcea38742,0x054c8655,0xd54dfa7d,0xb5946852,0x1f4ab207,0x97c422e7 +.long 0x0c22b540,0xbf907509,0xb7c267d4,0x2cde42aa,0x5ab0d693,0xba18f9ed,0x6e4660d9,0x3ba62aa6,0xab9ea96a,0xb24bf97b,0xe3b60e32,0x5d039642,0x7c4d9bd5,0x4e6a4506,0x7ed4a6a4,0x666c5b9e +.long 0x8edbd7cc,0xfa3fdcd9,0xc6ccd753,0x4660bb87,0x21e6b64f,0x9ae90820,0xb36bfb3f,0x8a56a713,0x5726d47f,0xabfce096,0x0b1a9a7f,0x9eed01b2,0x4eb74a37,0x30e9cad4,0x53e9666d,0x7b2524cc +.long 0x8f4b002f,0x6a29683b,0x41f4fc20,0xc2200d7a,0x3a338acc,0xcf3af47a,0xe7128975,0x6539a4fb,0xc33c7fcf,0xcec31c14,0xc7be322b,0x7eb6799b,0x6646f623,0x119ef4e9,0x54d7299b,0x7b7a26a5 +.long 0x403f46f2,0xcb37f08d,0x1a0ec0c7,0x94b8fc43,0xc332142f,0xbb8514e3,0xe80d2a7a,0xf3ed2c33,0xb639126c,0x8d2080af,0xe3553ade,0xf7b6be60,0x1c7e2b09,0x3950aa9f,0x6410f02b,0x847ff958 +.long 0x678a31b0,0x877b7cf5,0x3998b620,0xd50301ae,0xc00fb396,0x734257c5,0x04e672a6,0xf9fb18a0,0xe8758851,0xff8bd8eb,0x5d99ba44,0x1e64e4c6,0x7dfd93b7,0x4b8eaedf,0x04e76b8c,0xba2f2a98 +.long 0xe8053433,0x7d790cba,0x3d2c9585,0xc8e725a0,0xcdd8f5ed,0x58c5c476,0xefa9fe1d,0xd106b952,0x0eff13a9,0x3c5c775b,0xe057b930,0x242442ba,0xc9b70cbd,0xe9f458d4,0xa3cdb89a,0x69b71448 +.long 0x0e2ed742,0x41ee46f6,0x40067493,0x573f1045,0x9d54c304,0xb1e154ff,0x8d3a7502,0x2ad0436a,0x431a8121,0xee4aaa2d,0x886f11ed,0xcd38b3ab,0x034a0eb7,0x57d49ea6,0xf7e85e58,0xd2b773bd +.long 0x9b5c1f14,0x4a559ac4,0x3e54df2b,0xc444be1a,0xeda41891,0x13aad704,0x5eb5c788,0xcd927bec,0xe48c8a34,0xeb3c8516,0x4b546669,0x1b7ac812,0x594df8ec,0x1815f896,0x79227865,0x87c6a79c +.long 0x9b56ddbd,0xae02a2f0,0x8a2f1cf3,0x1339b5ac,0x839dff0d,0xf2b569c7,0xfee9a43d,0xb0b9e864,0x77bb064e,0x4ff8ca41,0xfd249f63,0x145a2812,0xf86f689a,0x3ab7beac,0x01d35f5e,0x9bafec27 +.long 0x4265aa91,0x28054c65,0x035efe42,0xa4b18304,0x9639dec7,0x6887b0e6,0x3d52aea5,0xf4b8f6ad,0x971a8a13,0xfb9293cc,0x4c934d07,0x3f159e5d,0x09acbc29,0x2c50e9b1,0x7154d129,0x08eb65e6 +.long 0x30b75c3e,0x4feff589,0x94491c93,0x0bb82fe2,0x89af62bb,0xd8ac377a,0x9685e49f,0xd7b51490,0x04497f19,0xabca9a7b,0x1a7ad13f,0x1b35ed0a,0x3ec86ed6,0x6b601e21,0xce0c76f1,0xda91fcb9 +.long 0xd7ab27e1,0x9e28507b,0x63945b7b,0x7c19a555,0xaafc9827,0x6b43f0a1,0x3aa55b91,0x443b4fbd,0x6962c88f,0x962b2e65,0xce0db0ca,0x139da8d4,0x1b8d6c4f,0xb93f05dd,0x180b9824,0x779cdff7 +.long 0xae57c7b7,0xbba23fdd,0x1b932522,0x345342f2,0x556d4aa3,0xfd9c80fe,0x6525bb61,0xa03907ba,0xff218933,0x38b010e1,0xaa52117b,0xc066b654,0x94f2e6ea,0x8e141920,0x0d32f2b2,0x66a27dca +.long 0x048b3717,0x69c7f993,0xb178ae1c,0xbf5a989a,0x564f1d6b,0x49fa9058,0xd31fde4e,0x27ec6e15,0x7276e7fc,0x4cce0373,0x89d6bf02,0x64086d79,0x4ccdd979,0x5a72f046,0x47775631,0x909c3566 +.long 0x75dd7125,0x1c07bc6b,0x87a0428d,0xb4c6bc97,0xfdeb6b9d,0x507ece52,0xb2c95432,0xfca56512,0xd0e8bd06,0x15d97181,0xc6bb46ea,0x384dd317,0x3952b624,0x5441ea20,0x4e7dc2fb,0xbcf70dee +.long 0x6628e8c3,0x372b016e,0xb60a7522,0x07a0d667,0x0a344ee2,0xcf05751b,0x118bdeec,0x0ec09a48,0xd83dce46,0x6e4b3d4e,0x99d2fc6e,0x43a6316d,0x56cf044c,0xa99d8989,0xae3e5fb7,0x7c7f4454 +.long 0xfbabbe92,0xb2e6b121,0xe1330076,0x281850fb,0x97890015,0x093581ec,0x75ff77f5,0x69b1dded,0xab105105,0x7cf0b18f,0xa89ccfef,0x953ced31,0xeb914009,0x3151f85f,0x88ed48ad,0x3c9f1b87 +.long 0x4a7eadcb,0xc9aba1a1,0x522e71cf,0x928e7501,0x3a2e4f83,0xeaede727,0x1ce3bbd3,0x467e10d1,0xb955dcf0,0xf3442ac3,0xd3d5e527,0xba96307d,0xfd77f474,0xf763a10e,0x6a6e1ff0,0x5d744bd0 +.long 0xa777899e,0xd287282a,0xd03f3cde,0xe20eda8f,0x50b07d31,0x6a7e75bb,0x6f379de4,0x0b7e2a94,0x19f593cf,0x31cb64ad,0x1e76ef1d,0x7b1a9e4f,0xb62d609c,0xe18c9c9d,0xe779a650,0x439bad6d +.long 0xe032f144,0x219d9066,0xe8b2ec6a,0x1db632b8,0xfda12f78,0xff0d0fd4,0x2a25d265,0x56fb4c2d,0x255a03f1,0x5f4e2ee1,0xe96af176,0x61cd6af2,0xd068bc97,0xe0317ba8,0x264b988e,0x927d6bab +.long 0xe90fb21e,0xa18f07e0,0xbba7fca1,0x00fd2b80,0x95cd67b5,0x20387f27,0xd39707f7,0x5b89a4e7,0x894407ce,0x8f83ad3f,0x6c226132,0xa0025b94,0xf906c13b,0xc79563c7,0x4e7bb025,0x5f548f31 +.long 0xeac6d113,0x2b4c6b8f,0x0e813c76,0xa67e3f9c,0x3fe1f4b9,0x3982717c,0x26d8050e,0x58865819,0xf7f06f20,0x99f3640c,0x2a66ebc2,0xdc610216,0x767a1e08,0x52f2c175,0x5999871b,0x05660e1a +.long 0x6d3c4693,0x6b0f1762,0x37ed7bea,0xf0e7d627,0xb75b226d,0xc51758c7,0x1f91613b,0x40a88628,0xbbb38ce0,0x889dbaa7,0xbddcad81,0xe0404b65,0x8bc9671f,0xfebccd3a,0xee1f5375,0xfbf9a357 +.long 0x28f33398,0x5dc169b0,0x72e90f65,0xb07ec11d,0xfaab1eb1,0xae7f3b4a,0x5f17538a,0xd970195e,0x0181e640,0x52b05cbe,0x2643313d,0xf5debd62,0x5df31f82,0x76148154,0x3a9e13c5,0x23e03b33 +.long 0x4fde0c1f,0xff758949,0xe5b6ec20,0xbf8a1abe,0x87e1db6c,0x702278fb,0x35ed658f,0xc447ad7a,0x03d0ccf2,0x48d4aa38,0x819a7c03,0x80acb338,0x6e17cecc,0x9bc7c89e,0x03be1d82,0x46736b8b +.long 0xc0432f96,0xd65d7b60,0xdeb5442f,0xddebe7a3,0x7dff69a2,0x79a25307,0x02cf3122,0x37a56d94,0xf2350d0a,0x8bab8aed,0x037b0d9a,0x13c3f276,0x44c65cae,0xc664957c,0xc2e71a88,0x88b44089 +.long 0x5cb02664,0xdb88e5a3,0x8686c72e,0x5d4c0bf1,0xa682d53e,0xea3d9b62,0x0b2ad431,0x9b605ef4,0xc69645d0,0x71bac202,0x6a1b66e7,0xa115f03a,0x158f4dc4,0xfe2c563a,0x4d12a78c,0xf715b3a0 +.long 0xd413213a,0x8f7f0a48,0xc04becdb,0x2035806d,0x5d8587f5,0xecd34a99,0x9f6d3a71,0x4d8c3079,0x8d95a8f6,0x1b2a2a67,0xf2110d0d,0xc58c9d7d,0xcf8fba3f,0xdeee81d5,0x0c7cdf68,0xa42be3c0 +.long 0xd43b5eaa,0x2126f742,0xdfa59b85,0x054a0766,0x126bfd45,0x9d0d5e36,0x384f8a8f,0xa1f8fbd7,0xd563fccc,0x317680f5,0xf280a928,0x48ca5055,0x27b578cf,0xe00b81b2,0x2994a514,0x10aad918 +.long 0xb7bdc953,0xd9e07b62,0x5bc086dd,0x9f0f6ff2,0x655eee77,0x09d1ccff,0x5bef7df1,0x45475f79,0x86f702cc,0x3faa28fa,0x0f021f07,0x92e60905,0x7f8fa8c6,0xe9e62968,0xf036ea2c,0xbd71419a +.long 0x6028da9a,0x171ee1cc,0xc251f573,0x5352fe1a,0x3fa997f4,0xf8ff236e,0xa5749d5f,0xd831b6c9,0xe350e2c2,0x7c872e1d,0x1e0ce403,0xc56240d9,0x6974f5cb,0xf9deb077,0x961c3728,0x7d50ba87 +.long 0x5a3a2518,0xd6f89426,0xc6303d43,0xcf817799,0x619e5696,0x510a0471,0x3a5e307b,0xab049ff6,0xfeb13ec7,0xe4cdf9b0,0x9d8ff90c,0xd5e97117,0x9afa96af,0xf6f64d06,0x9d2012a2,0x00d0bf5e +.long 0x358bcdc0,0xe63f301f,0x0a9d47f8,0x07689e99,0x4f43d43a,0x1f689e2f,0x90920904,0x4d542a16,0x9ca0a707,0xaea293d5,0x8ac68065,0xd061fe45,0x0090008c,0x1033bf1b,0xc08a6db6,0x29749558 +.long 0xc1d5d034,0x74b5fc59,0x67e215e0,0xf712e9f6,0x860200e6,0xfd520cbd,0x3ea22588,0x0229acb4,0xfff0c82e,0x9cd1e14c,0x59c69e73,0x87684b62,0x96ccb989,0xda85e61c,0xa3d06493,0x2d5dbb02 +.long 0xe86b173c,0xf22ad33a,0xa79ff0e3,0xe8e41ea5,0xdd0d0c10,0x01d2d725,0x032d28f9,0x31f39088,0x7829839e,0x7b3f71e1,0x4502ae58,0x0cf691b4,0xbefc6115,0xef658dbd,0xb3ab5314,0xa5cd6ee5 +.long 0x5f1d2347,0x206c8d7b,0x4cc2253a,0x794645ba,0x58389e08,0xd517d8ff,0x9f847288,0x4fa20dee,0xd797770a,0xeba072d8,0xbf429e26,0x7360c91d,0x80af8279,0x7200a3b3,0x82dadce3,0x6a1c9150 +.long 0xc35d8794,0x0ee6d3a7,0x0356bae5,0x042e6558,0x643322fd,0x9f59698d,0x50a61967,0x9379ae15,0xfcc9981e,0x64b9ae62,0x6d2934c6,0xaed3d631,0x5e4e65eb,0x2454b302,0xf9950428,0xab09f647 +.long 0x22248acc,0xb2083a12,0x3264e366,0x1f6ec0ef,0x5afdee28,0x5659b704,0xe6430bb5,0x7a823a40,0xe1900a79,0x24592a04,0xc9ee6576,0xcde09d4a,0x4b5ea54a,0x52b6463f,0xd3ca65a7,0x1efe9ed3 +.long 0x305406dd,0xe27a6dbe,0xdd5d1957,0x8eb7dc7f,0x387d4d8f,0xf54a6876,0xc7762de4,0x9c479409,0x99b30778,0xbe4d5b5d,0x6e793682,0x25380c56,0xdac740e3,0x602d37f3,0x1566e4ae,0x140deabe +.long 0xafd32acf,0x4481d067,0xe1f71ccf,0xd8f0fcca,0xb596f2da,0xd208dd0c,0x9aad93f9,0xd049d730,0x42ab580e,0xc79f263d,0x23f707b4,0x09411bb1,0x835e0eda,0x8cfde1ff,0x90f03402,0x72707490 +.long 0xc49a861e,0xeaee6126,0xe14f0d06,0x024f3b65,0xc69bfc17,0x51a3f1e8,0xa7686381,0xc3c3a8e9,0xb103d4c8,0x3400752c,0x9218b36b,0x02bc4613,0x7651504a,0xc67f75eb,0xd02aebfa,0xd6848b56 +.long 0xc30fa92b,0xbd9802e6,0x9a552784,0x5a70d96d,0x3f83169b,0x9085c4ea,0x06908228,0xfa9423bb,0xfe97a5b9,0x2ffebe12,0x71b99118,0x85da6049,0x63178846,0x9cbc2f7f,0x9153218e,0xfd96bc70 +.long 0x1782269b,0x958381db,0x2597e550,0xae34bf79,0x5f385153,0xbb5c6064,0xe3088048,0x6f0e96af,0x77884456,0xbf6a0215,0x69310ea7,0xb3b5688c,0x04fad2de,0x17c94295,0x17896d4d,0xe020f0e5 +.long 0x0976505f,0x730ba0ab,0x095e2ec5,0x567f6813,0x6331ab71,0x47062010,0x41d22b9f,0x72cfa977,0x8a2373da,0x33e55ead,0x7ba45a68,0xa8d0d5f4,0x03029d15,0xba1d8f9c,0xfc55b9f3,0x8f34f1cc +.long 0xbbe5a1a9,0xcca4428d,0x3126bd67,0x8187fd5f,0x48105826,0x0036973a,0xb8bd61a0,0xa39b6663,0x2d65a808,0x6d42deef,0x94636b19,0x4969044f,0xdd5d564c,0xf611ee47,0xd2873077,0x7b2f3a49 +.long 0x300eb294,0x94157d45,0x169c1494,0x2b2a656e,0xd3a47aa9,0xc000dd76,0xa6243ea4,0xa2864e4f,0xdb89842e,0x82716c47,0x61479fb7,0x12dfd7d7,0xe0b2f6dc,0x3b9a2c56,0xd7f85d67,0x46be862a +.long 0x0f82b214,0x03b0d8dd,0xf103cbc6,0x460c34f9,0x18d79e19,0xf32e5c03,0xa84117f8,0x8b8888ba,0xc0722677,0x8f3c37dc,0x1c1c0f27,0x10d21be9,0xe0f7a0c6,0xd47c8468,0xadecc0e0,0x9bf02213 +.long 0x42b48b99,0x0baa7d12,0x48424096,0x1bcb665d,0xebfb5cfb,0x8b847cd6,0x9ad4d10d,0x87c2ae56,0x0de36726,0xf1cbb122,0x3fdfbd21,0xe7043c68,0x4e79d460,0x4bd0826a,0x4bd1a2cb,0x11f5e598 +.long 0xb7fe7b6e,0x97554160,0x400a3fb2,0x7d16189a,0xe328ca1e,0xd73e9bea,0xe793d8cc,0x0dd04b97,0x506db8cc,0xa9c83c9b,0xcf38814c,0x5cd47aae,0xb64b45e6,0x26fc430d,0xd818ea84,0x079b5499 +.long 0xc1c24a3b,0xebb01102,0x1c161c1a,0xca24e568,0x36f00a4a,0x103eea69,0x76176c7b,0x9ad76ee8,0x538e0ff7,0x97451fc2,0x6604b3b0,0x94f89809,0x3249cfd7,0x6311436e,0x41224f69,0x27b4a7bd +.long 0xe0ac2941,0x03b5d21a,0xc2d31937,0x279b0254,0xcac992d0,0x3307c052,0xefa8b1f3,0x6aa7cb92,0x0d37c7a5,0x5a182580,0x342d5422,0x13380c37,0xd5d2ef92,0x92ac2d66,0x030c63c6,0x035a70c9 +.long 0x4ce4f152,0xc16025dd,0xf9df7c06,0x1f419a71,0x91e4bb14,0x6d5b2214,0x839fb4ce,0xfc43c6cc,0x925d6b2d,0x49f06591,0x62186598,0x4b37d9d3,0xd01b1629,0x8c54a971,0x51d50e05,0xe1a9c29f +.long 0x71ba1861,0x5109b785,0xd0c8f93d,0x48b22d5c,0x8633bb93,0xe8fa84a7,0x5aebbd08,0x53fba6ba,0xe5eea7d8,0x7ff27df3,0x68ca7158,0x521c8796,0xce6f1a05,0xb9d5133b,0xfd0ebee4,0x2d50cd53 +.long 0xc5a3ef16,0xc82115d6,0xba079221,0x993eff9d,0x4b5da81c,0xe4da2c5e,0x8033fd85,0x9a89dbdb,0x2b892891,0x60819ebf,0x5d14a4d5,0x53902b21,0xd7fda421,0x6ac35051,0x61c83284,0xcc6ab885 +.long 0xf74cff17,0x14eba133,0xecb813f2,0x240aaa03,0x6f665bee,0xcfbb6540,0xa425ad73,0x084b1fe4,0xd081f6a6,0x009d5d16,0xeef82c90,0x35304fe8,0xaa9eaa22,0xf20346d5,0xac1c91e3,0x0ada9f07 +.long 0x968a6144,0xa6e21678,0x07b31a1e,0x54c1f77c,0x5781fbe1,0xd6bb787e,0xe31f1c4a,0x61bd2ee0,0x781105fc,0xf25aa1e9,0x7b2f8e80,0x9cf2971f,0xcdff919b,0x26d15412,0x34bc896e,0x01db4ebe +.long 0xb40df1cf,0x7d9b3e23,0x94e971b4,0x59337373,0x669cf921,0xbf57bd14,0x0c1a1064,0x865daedf,0x83279125,0x3eb70bd3,0x34ecdaab,0xbc3d5b9f,0x5f755caf,0x91e3ed7e,0xd41e6f02,0x49699f54 +.long 0xd4a7a15b,0x185770e1,0xeaac87e7,0x08f3587a,0x473133ea,0x352018db,0x04fd30fc,0x674ce719,0x088b3e0e,0x7b8d9835,0x5d0d47a1,0x7a0356a9,0x6474a3c4,0x9d9e7659,0xff66966c,0x61ea48a7 +.long 0x0f3e4834,0x30417758,0x17a9afcb,0xfdbb21c2,0x2f9a67b3,0x756fa17f,0xa245c1a8,0x2a6b2421,0x4af02291,0x64be2794,0x2a5804fe,0xade465c6,0xa6f08fd7,0x8dffbd39,0xaa14403b,0xc4efa84c +.long 0x442b0f5c,0xa1b91b2a,0xcf997736,0xb748e317,0xcee90e16,0x8d1b62bf,0x0b2078c0,0x907ae271,0x0c9bcddd,0xdf31534b,0x39adce83,0x043fb054,0xd826846a,0x99031043,0xb144f393,0x61a9c0d6 +.long 0x47718427,0xdab48046,0x6e830f8b,0xdf17ff9b,0xe49a1347,0x408d7ee8,0x91c1d4ae,0x6ac71e23,0x1defd73c,0xc8cbb9fd,0xbbbbfec5,0x19840657,0x9e7ef8ea,0x39db1cb5,0x64105f30,0x78aa8296 +.long 0xa3738c29,0xa3d9b7f0,0xbc3250a3,0x0a2f235a,0x445e4caf,0x55e506f6,0x33475f7a,0x0974f73d,0x5ba2f5a8,0xd37dbba3,0x6af40066,0x542c6e63,0xc5d73e2c,0x26d99b53,0x6c3ca33e,0x06060d7d +.long 0x065fef4a,0xcdbef1c2,0xfd5b92e3,0x77e60f7d,0x26708350,0xd7c549f0,0x34f121bf,0x201b3ad0,0x0334fc14,0x5fcac2a1,0x344552f6,0x8a9a9e09,0x97653082,0x7dd8a1d3,0x79d4f289,0x5fc0738f +.long 0x17d2d8c3,0x787d244d,0x70830684,0xeffc6345,0xe4f73ae5,0x5ddb96dd,0x172549a5,0x8efb14b1,0x2245ae7a,0x6eb73eee,0xea11f13e,0xbca4061e,0x30b01f5d,0xb577421d,0x782e152c,0xaa688b24 +.long 0xbd3502ba,0x67608e71,0xb4de75a0,0x4ef41f24,0xfd6125e5,0xb08dde5e,0xa409543f,0xde484825,0x65cc2295,0x1f198d98,0x6e0edfa2,0x428a3771,0xadf35fc7,0x4f9697a2,0xf7cac3c7,0x01a43c79 +.long 0x0fd3659a,0xb05d7059,0xbb7f2d9a,0x8927f30c,0x8cf984d3,0x4023d1ac,0x02897a45,0x32125ed3,0x3d414205,0xfb572dad,0xe3fa82a9,0x73000ef2,0xf10a5581,0x4c0868e9,0x6b0b3ca5,0x5b61fc67 +.long 0x7cae440c,0xc1258d5b,0x402b7531,0x21c08b41,0xde932321,0xf61a8955,0x2d1408af,0x3568faf8,0x9ecf965b,0x71b15e99,0xe917276f,0xf14ed248,0x820cf9e2,0xc6f4caa1,0x18d83c7e,0x681b20b2 +.long 0xc6c01120,0x6cde738d,0xae70e0db,0x71db0813,0x74afe18c,0x95fc0644,0x129e2be7,0x34619053,0xdb2a3b15,0x80615cea,0xdb4c7073,0x0a49a19e,0x8fd2d367,0x0e1b84c8,0x033fb8aa,0xd74bf462 +.long 0x533ef217,0x889f6d65,0xc3ca2e87,0x7158c7e4,0xdc2b4167,0xfb670dfb,0x844c257f,0x75910a01,0xcf88577d,0xf336bf07,0xe45e2ace,0x22245250,0x7ca23d85,0x2ed92e8d,0x2b812f58,0x29f8be4c +.long 0x076fe12b,0xdd9ebaa7,0xae1537f9,0x3f2400cb,0x17bdfb46,0x1aa93528,0x67883b41,0xc0f98430,0x0170911d,0x5590ede1,0x34d4b17f,0x7562f5bb,0x1826b8d2,0xe1fa1df2,0x6bd80d59,0xb40b796a +.long 0x3467ba92,0xd65bf197,0xf70954b0,0x8c9b46db,0x0e78f15d,0x97c8a0f3,0x85a4c961,0xa8f3a69a,0x61e4ce9b,0x4242660f,0x6ea6790c,0xbf06aab3,0xec986416,0xc6706f8e,0x9a9fc225,0x9e56dec1 +.long 0x9a9898d9,0x527c46f4,0x5633cdef,0xd799e77b,0x7d9e4297,0x24eacc16,0x6b1cb734,0xabb61cea,0xf778443c,0xbee2e8a7,0x29de2fe6,0x3bb42bf1,0x3003bb6f,0xcbed86a1,0xd781cdf6,0xd3918e6c +.long 0x9a5103f1,0x4bee3271,0xf50eac06,0x5243efc6,0x6adcc119,0xb8e122cb,0xc0b80a08,0x1b7faa84,0x6dfcd08c,0x32c3d1bd,0x0be427de,0x129dec4e,0x1d263c83,0x98ab679c,0xcef64eff,0xafc83cb7 +.long 0x2fa6be76,0x85eb6088,0x1328cbfe,0x892585fb,0xcf618dda,0xc154d3ed,0x3abaf26e,0xc44f601b,0x2be1fdfd,0x7bf57d0b,0x21137fee,0xa833bd2d,0x2db591a8,0x9353af36,0x5562a056,0xc76f26dc +.long 0x3fdf5a51,0x1d87e47d,0x55c9cab0,0x7afb5f93,0x89e0586e,0x91bbf58f,0x0d843709,0x7c72c018,0x99b5c3dc,0xa9a5aafb,0x3844aeb0,0xa48a0f1d,0xb667e482,0x7178b7dd,0x6e23a59a,0x453985e9 +.long 0x01b25dd8,0x4a54c860,0xfb897c8a,0x0dd37f48,0x0ea90cd9,0x5f8aa610,0x16d5830d,0xc8892c68,0xef514ca5,0xeb4befc0,0xe72c9ee6,0x478eb679,0xdbc40d5f,0x9bca20da,0xdde4f64a,0xf015de21 +.long 0xeaf4b8a5,0xaa6a4de0,0x4bc60e32,0x68cfd9ca,0x7fd15e70,0x668a4b01,0xf27dc09d,0xd9f0694a,0xba708bcd,0xf6c3cad5,0x5bb95c2a,0x5cd2ba69,0x33c0a58f,0xaa28c1d3,0xabc77870,0x23e274e3 +.long 0xdfd20a4a,0x44c3692d,0x81a66653,0x091c5fd3,0x09a0757d,0x6c0bb691,0x667343ea,0x9072e8b9,0x80848bec,0x31d40eb0,0x79fd36cc,0x95bd480a,0x65ed43f5,0x01a77c61,0x2e0d40bf,0xafccd127 +.long 0x1cc1884b,0xeccfc82d,0x5d4753b4,0xc85ac201,0x658e099f,0xc7a6caac,0x04b27390,0xcf46369e,0x506467ea,0xe2e7d049,0x37cdeccc,0x481b63a2,0xed80143a,0x4029abd8,0xbcb00b88,0x28bfe3c7 +.long 0x0643d84a,0x3bec1009,0xabd11041,0x885f3668,0xf83a34d6,0xdb02432c,0x719ceebe,0x32f7b360,0xdad1fe7a,0xf06c7837,0x5441a0b0,0x60a157a9,0xe2d47550,0x704970e9,0x271b9020,0xcd2bd553 +.long 0x33e24a0b,0xff57f82f,0xf2565079,0x9cbee23f,0xeb5f5825,0x16353427,0xe948d662,0x276feec4,0xda10032b,0xd1b62bc6,0xf0e72a53,0x718351dd,0x2420e7ba,0x93452076,0x3a00118d,0x96368fff +.long 0x150a49e4,0x00ce2d26,0x3f04706b,0x0c28b636,0x58b196d0,0xbad65a46,0xec9f8b7c,0x6c8455fc,0x2d71867e,0xe90c895f,0xedf9f38c,0x5c0be31b,0xd8f6ec04,0x2a37a15e,0x8cd85251,0x239639e7 +.long 0x9c7c4c6b,0xd8975315,0xd7409af7,0x603aa3c0,0x007132fb,0xb8d53d0c,0xa6849238,0x68d12af7,0xbf5d9279,0xbe0607e7,0xaada74ce,0x9aa50055,0xba7e8ccb,0xe81079cb,0xa5f4ff5e,0x610c71d1 +.long 0x5aa07093,0x9e2ee1a7,0xa75da47c,0xca84004b,0x3de75401,0x074d3951,0xbb311592,0xf938f756,0x00a43421,0x96197618,0x07bc78c8,0x39a25362,0x0a171276,0x278f710a,0x8d1a8f08,0xb28446ea +.long 0xe3b6a661,0x184781bf,0xe6d279f7,0x7751cb1d,0xc59eb662,0xf8ff95d6,0x58d3dea7,0x186d90b7,0xdfb4f754,0x0e4bb6c1,0x2b2801dc,0x5c5cf56b,0x1f54564d,0xc561e452,0xf0dd7f13,0xb4fb8c60 +.long 0x33ff98c7,0xf8849630,0xcf17769c,0x9619fffa,0x1bfdd80a,0xf8090bf6,0x422cfe63,0x14d9a149,0x6f6df9ea,0xb354c360,0x218f17ea,0xdbcf770d,0x79eb3480,0x207db7c8,0x559b6a26,0x213dbda8 +.long 0x29fc81b3,0xac4c200b,0x171d87c1,0xebc3e09f,0x1481aa9e,0x91799530,0x92e114fa,0x051b92e1,0xecb5537f,0xdf8f92e9,0x290c7483,0x44b1b2cc,0x2adeb016,0xa711455a,0x81a10c2c,0x964b6856 +.long 0xcec03623,0x4f159d99,0xef3271ea,0x05532225,0xc5ee4849,0xb231bea3,0x7094f103,0x57a54f50,0x9598b352,0x3e2d421d,0x67412ab4,0xe865a49c,0x1cc3a912,0xd2998a25,0x0c74d65d,0x5d092808 +.long 0x4088567a,0x73f45908,0x1f214a61,0xeb6b280e,0xcaf0c13d,0x8c9adc34,0xf561fb80,0x39d12938,0xbc6edfb4,0xb2dc3a5e,0xfe4d210e,0x7485b1b1,0xe186ae72,0x062e0400,0x6eeb3b88,0x91e32d5c +.long 0x4be59224,0x6df574d7,0x716d55f3,0xebc88ccc,0xcad6ed33,0x26c2e6d0,0x0d3e8b10,0xc6e21e7d,0x5bcc36bb,0x2cc5840e,0x7da74f69,0x9292445e,0x4e5193a8,0x8be8d321,0x8df06413,0x3ec23629 +.long 0xb134defa,0xc7e9ae85,0x1bb2d475,0x6073b1d0,0x2863c00d,0xb9ad615e,0x525f4ac4,0x9e29493d,0x4e9acf4f,0xc32b1dea,0xa50db88d,0x3e1f01c8,0x04da916c,0xb05d70ea,0xd865803e,0x714b0d0a +.long 0x9920cb5e,0x4bd493fc,0x92c7a3ac,0x5b44b1f7,0xbcec9235,0xa2a77293,0xcd378553,0x5ee06e87,0xda621607,0xceff8173,0x99f5d290,0x2bb03e4c,0xa6f734ac,0x2945106a,0xd25c4732,0xb5056604 +.long 0xe079afee,0x5945920c,0x6789831f,0x686e17a0,0xb74a5ae5,0x5966bee8,0x1e258d46,0x38a673a2,0x83141c95,0xbd1cc1f2,0x0e96e486,0x3b2ecf4f,0x74e5fc78,0xcd3aa896,0x2482fa7a,0x415ec10c +.long 0x80503380,0x15234419,0xd314b392,0x513d917a,0x63caecae,0xb0b52f4e,0x2dc7780b,0x07bf22ad,0xe4306839,0xe761e8a1,0x5dd7feaa,0x1b3be962,0x74c778f1,0x4fe728de,0x5e0070f6,0xf1fa0bda +.long 0x6ec3f510,0x85205a31,0xd2980475,0x2c7e4a14,0x6f30ebfd,0xde3c19c0,0xd4b7e644,0xdb1c1f38,0x5dce364a,0xfe291a75,0x058f5be3,0xb7b22a3c,0x37fea38c,0x2cd2c302,0x2e17be17,0x2930967a +.long 0x0c061c65,0x87f009de,0xedc6ed44,0xcb014aac,0x3bafb1eb,0x49bd1cb4,0x282d3688,0x81bd8b5c,0xf01a17af,0x1cdab87e,0xe710063b,0x21f37ac4,0x42fc8193,0x5a6c5676,0x56a6015c,0xf4753e70 +.long 0xa15b0a44,0x020f795e,0x8958a958,0x8f37c8d7,0xa4b675b5,0x63b7e89b,0x0fc31aea,0xb4fb0c0c,0xa7ff1f2e,0xed95e639,0x619614fb,0x9880f5a3,0x947151ab,0xdeb6ff02,0xa868dcdb,0x5bc5118c +.long 0x4c20cea5,0xd8da2055,0x14c4d69a,0xcac2776e,0x622d599b,0xcccb22c1,0x68a9bb50,0xa4ddb653,0x1b4941b4,0x2c4ff151,0x6efba588,0xe1ff19b4,0xc48345e0,0x35034363,0x1e29dfc4,0x45542e3d +.long 0x349f7aed,0xf197cb91,0x8fca8420,0x3b2b5a00,0x23aaf6d8,0x7c175ee8,0x35af32b6,0x54dcf421,0x27d6561e,0x0ba14307,0xd175b1e2,0x879d5ee4,0x99807db5,0xc7c43673,0x9cd55bcd,0x77a54455 +.long 0x0105c072,0xe6c2ff13,0x8dda7da4,0x18f7a99f,0x0e2d35c1,0x4c301820,0xd9cc6c82,0x06a53ca0,0xf1aa1d9e,0xaa21cc1e,0x4a75b1e8,0x32414334,0x0ebe9fdc,0x2a6d1328,0x98a4755a,0x16bd173f +.long 0x2133ffd9,0xfbb9b245,0x830f1a20,0x39a8b2f1,0xd5a1f52a,0x484bc97d,0xa40eddf8,0xd6aebf56,0x76ccdac6,0x32257acb,0x1586ff27,0xaf4d36ec,0xf8de7dd1,0x8eaa8863,0x88647c16,0x0045d5cf +.long 0xc005979d,0xa6f3d574,0x6a40e350,0xc2072b42,0x8de2ecf9,0xfca5c156,0xa515344e,0xa8c8bf5b,0x114df14a,0x97aee555,0xfdc5ec6b,0xd4374a4d,0x2ca85418,0x754cc28f,0xd3c41f78,0x71cb9e27 +.long 0x03605c39,0x89105079,0xa142c96c,0xf0843d9e,0x16923684,0xf3744934,0xfa0a2893,0x732caa2f,0x61160170,0xb2e8c270,0x437fbaa3,0xc32788cc,0xa6eda3ac,0x39cd818e,0x9e2b2e07,0xe2e94239 +.long 0x0260e52a,0x6967d39b,0x90653325,0xd42585cc,0x21ca7954,0x0d9bd605,0x81ed57b3,0x4fa20877,0xe34a0bbe,0x60c1eff8,0x84f6ef64,0x56b0040c,0xb1af8483,0x28be2b24,0xf5531614,0xb2278163 +.long 0x5922ac1c,0x8df27545,0xa52b3f63,0xa7b3ef5c,0x71de57c4,0x8e77b214,0x834c008b,0x31682c10,0x4bd55d31,0xc76824f0,0x17b61c71,0xb6d1c086,0xc2a5089d,0x31db0903,0x184e5d3f,0x9c092172 +.long 0xc00cc638,0xdd7ced5b,0x61278fc2,0x1a2015eb,0x6a37f8d6,0x2e8e5288,0xe79933ad,0xc457786f,0x2c51211a,0xb3fe4cce,0x24c20498,0xad9b10b2,0xd28db5e5,0x90d87a4f,0x3aca2fc3,0x698cd105 +.long 0xe91b536d,0x4f112d07,0x9eba09d6,0xceb982f2,0x197c396f,0x3c157b2c,0x7b66eb24,0xe23c2d41,0x3f330d37,0x480c57d9,0x79108deb,0xb3a4c8a1,0xcb199ce5,0x702388de,0xb944a8d4,0x0b019211 +.long 0x840bb336,0x24f2a692,0xa669fa7b,0x7c353bdc,0xdec9c300,0xda20d6fc,0xa13a4f17,0x625fbe2f,0xdbc17328,0xa2b1b61a,0xa9515621,0x008965bf,0xc620ff46,0x49690939,0x8717e91c,0x182dd27d +.long 0xea6c3997,0x5ace5035,0xc2610bef,0x54259aaa,0x3c80dd39,0xef18bb3f,0x5fc3fa39,0x6910b95b,0x43e09aee,0xfce2f510,0xa7675665,0xced56c9f,0xd872db61,0x10e265ac,0xae9fce69,0x6982812e +.long 0xce800998,0x29be11c6,0xb90360d9,0x72bb1752,0x5a4ad590,0x2c193197,0x9fc1dbc0,0x2ba2f548,0xe490ebe0,0x7fe4eebb,0x7fae11c0,0x12a0a4cd,0xe903ba37,0x7197cf81,0xde1c6dd8,0xcf7d4aa8 +.long 0x3fd5684c,0x92af6bf4,0x80360aa1,0x2b26eecf,0x00546a82,0xbd960f30,0xf59ad8fe,0x407b3c43,0x249c82ba,0x86cae5fe,0x2463744c,0x9e0faec7,0x94916272,0x87f551e8,0x6ceb0615,0x033f9344 +.long 0x8be82e84,0x1e5eb0d1,0x7a582fef,0x89967f0e,0xa6e921fa,0xbcf687d5,0xd37a09ba,0xdfee4cf3,0xb493c465,0x94f06965,0x7635c030,0x638b9a1c,0x66f05e9f,0x76667864,0xc04da725,0xccaf6808 +.long 0x768fccfc,0xca2eb690,0xb835b362,0xf402d37d,0xe2fdfcce,0x0efac0d0,0xb638d990,0xefc9cdef,0xd1669a8b,0x2af12b72,0x5774ccbd,0x33c536bc,0xfb34870e,0x30b21909,0x7df25aca,0xc38fa2f7 +.long 0xbf81f3f5,0x74c5f02b,0xaf7e4581,0x0525a5ae,0x433c54ae,0x88d2aaba,0x806a56c5,0xed9775db,0xc0edb37d,0xd320738a,0x66cc1f51,0x25fdb6ee,0x10600d76,0xac661d17,0xbdd1ed76,0x931ec1f3 +.long 0x19ee43f1,0x65c11d62,0x60829d97,0x5cd57c3e,0x984be6e8,0xd26c91a3,0x8b0c53bd,0xf08d9309,0xc016e4ea,0x94bc9e5b,0x11d43d2b,0xd3916839,0x73701155,0x886c5ad7,0x20b00715,0xe0377626 +.long 0xaa80ba59,0x7f01c9ec,0x68538e51,0x3083411a,0xe88128af,0x970370f1,0x91dec14b,0x625cc3db,0x01ac3107,0xfef9666c,0xd5057ac3,0xb2a8d577,0x92be5df7,0xb0f26299,0x00353924,0xf579c8e5 +.long 0x1341ed7a,0xb8fa3d93,0xa7b59d49,0x4223272c,0x83b8c4a4,0x3dcb1947,0xed1302e4,0x4e413c01,0xe17e44ce,0x6d999127,0x33b3adfb,0xee86bf75,0x25aa96ca,0xf6902fe6,0xe5aae47d,0xb73540e4 +.long 0x1b4a158c,0x32801d7b,0x27e2a369,0xe571c99e,0x10d9f197,0x40cb76c0,0x3167c0ae,0xc308c289,0xeb7958f2,0xa6ef9dd3,0x300879b1,0xa7226dfc,0x7edf0636,0x6cd0b362,0x7bc37eed,0x4efbce6c +.long 0x8d699021,0x75f92a05,0x772566e3,0x586d4c79,0x761ad23a,0x378ca5f1,0x1465a8ac,0x650d86fc,0x842ba251,0x7a4ed457,0x42234933,0x6b65e3e6,0x31aad657,0xaf1543b7,0xcbfec369,0xa4cefe98 +.long 0x9f47befb,0xb587da90,0x41312d13,0x6562e9fb,0xeff1cefe,0xa691ea59,0x05fc4cf6,0xcc30477a,0x0b0ffd3d,0xa1632461,0x5b355956,0xa1f16f3b,0x4224ec24,0x5b148d53,0xf977012a,0xdc834e7b +.long 0xb2c69dbc,0x7bfc5e75,0x03c3da6c,0x3aa77a29,0xca910271,0xde0df03c,0x7806dc55,0xcbd5ca4a,0x6db476cb,0xe1ca5807,0x5f37a31e,0xfde15d62,0xf41af416,0xf49af520,0x7d342db5,0x96c5c5b1 +.long 0xeb4ceb9b,0x155c43b7,0x4e77371a,0x2e993010,0x675d43af,0x1d2987da,0x8599fd72,0xef2bc1c0,0x9342f6b2,0x96894b7b,0x7c8e71f0,0x201eadf2,0x4a1f3efc,0xf3479d9f,0x702a9704,0xe0f8a742 +.long 0xb3eba40c,0xeafd44b6,0xc1c1e0d0,0xf9739f29,0x619d505e,0x0091471a,0x9d7c263e,0xc15f9c96,0x83afbe33,0x5be47285,0x04f1e092,0xa3b6d6af,0x751a9d11,0xe76526b9,0x9a4ae4d2,0x2ec5b26d +.long 0x02f6fb8d,0xeb66f4d9,0x96912164,0x4063c561,0x80ef3000,0xeb7050c1,0xeaa5b3f0,0x288d1c33,0x07806fd8,0xe87c68d6,0x4bbbf50f,0xb2f7f9d5,0xac8d6627,0x25972f3a,0x10e8c13b,0xf8547774 +.long 0x872b4a60,0xcc50ef6c,0x4613521b,0xab2a34a4,0x983e15d1,0x39c5c190,0x59905512,0x61dde5df,0x9f2275f3,0xe417f621,0x451d894b,0x0750c8b6,0x78b0bdaa,0x75b04ab9,0x458589bd,0x3bfd9fd4 +.long 0xee9120b6,0xf1013e30,0x23a4743e,0x2b51af93,0x48d14d9e,0xea96ffae,0x698a1d32,0x71dc0dbe,0x0180cca4,0x914962d2,0xc3568963,0x1ae60677,0x437bc444,0x8cf227b1,0xc9962c7a,0xc650c83b +.long 0xfe7ccfc4,0x23c2c7dd,0x1b929d48,0xf925c89d,0x06783c33,0x4460f74b,0xa590475a,0xac2c8d49,0xb807bba0,0xfb40b407,0x69ff8f3a,0x9d1e362d,0xcbef64a4,0xa33e9681,0x332fb4b2,0x67ece5fa +.long 0x739f10e3,0x6900a99b,0xff525925,0xc3341ca9,0xa9e2d041,0xee18a626,0x29580ddd,0xa5a83685,0x9d7de3cd,0xf3470c81,0x2062cf9c,0xedf02586,0xc010edb0,0xf43522fa,0x13a4b1ae,0x30314135 +.long 0xdb22b94b,0xc792e02a,0xa1eaa45b,0x993d8ae9,0xcd1e1c63,0x8aad6cd3,0xc5ce688a,0x89529ca7,0xe572a253,0x2ccee3aa,0x02a21efb,0xe02b6438,0xc9430358,0xa7091b6e,0x9d7db504,0x06d1b1fa +.long 0xc4744733,0x58846d32,0x379f9e34,0x40517c71,0x130ef6ca,0x2f65655f,0xf1f3503f,0x526e4488,0x7ee4a976,0x8467bd17,0x921363d1,0x1d9dc913,0xb069e041,0xd8d24c33,0x2cdf7f51,0x5eb5da0a +.long 0x197b994f,0x1c0f3cb1,0x2843eae9,0x3c95a6c5,0xa6097ea5,0x7766ffc9,0xd723b867,0x7bea4093,0x4db378f9,0xb48e1f73,0xe37b77ac,0x70025b00,0xaf24ad46,0x943dc8e7,0x16d00a85,0xb98a15ac +.long 0x2743b004,0x3adc38ba,0x334415ee,0xb1c7f4f7,0x1e62d05a,0xea43df8f,0x9d76a3b6,0x32618905,0xa23a0f46,0x2fbd0bb5,0x6a01918c,0x5bc971db,0xb4743f94,0x7801d94a,0x676ae22b,0xb94df65e +.long 0xaf95894c,0xaafcbfab,0x276b2241,0x7b9bdc07,0x5bdda48b,0xeaf98362,0xa3fcb4df,0x5977faf2,0x052c4b5b,0xbed042ef,0x067591f0,0x9fe87f71,0x22f24ec7,0xc89c73ca,0xe64a9f1b,0x7d37fa9e +.long 0x15562627,0x2710841a,0xc243b034,0x2c01a613,0x2bc68609,0x1d135c56,0x8b03f1f6,0xc2ca1715,0x3eb81d82,0xc9966c2d,0x8f6df13e,0xc02abf4a,0x8f72b43b,0x77b34bd7,0x360c82b0,0xaff6218f +.long 0x8d55b9d2,0x0aa5726c,0x99e9bffb,0xdc0adbe9,0xefb9e72a,0x9097549c,0x9dfb3111,0x16755712,0xf26847f9,0xdd8bf984,0xdfb30cb7,0xbcb8e387,0x5171ef9c,0xc1fd32a7,0x389b363f,0x977f3fc7 +.long 0xf4babda0,0x116eaf2b,0xf7113c8e,0xfeab68bd,0xb7def526,0xd1e3f064,0xe0b3fa02,0x1ac30885,0x40142d9d,0x1c5a6e7b,0x30921c0b,0x839b5603,0x36a116a3,0x48f301fa,0xcfd9ee6d,0x380e1107 +.long 0x58854be1,0x7945ead8,0xcbd4d49d,0x4111c12e,0x3a29c2ef,0xece3b1ec,0x8d3616f5,0x6356d404,0x594d320e,0x9f0d6a8f,0xf651ccd2,0x0989316d,0x0f8fdde4,0x6c32117a,0xa26a9bbc,0x9abe5cc5 +.long 0x9723f671,0xcff560fb,0x7f3d593c,0x21b2a12d,0x24ba0696,0xe4cb18da,0xc3543384,0x186e2220,0x88312c29,0x722f64e0,0x17dc7752,0x94282a99,0x5a85ee89,0x62467bbf,0xf10076a0,0xf435c650 +.long 0x43b3a50b,0xc9ff1539,0x1a53efbc,0x7132130c,0xf7b0c5b7,0x31bfe063,0x4ea994cc,0xb0179a7d,0xc85f455b,0x12d064b3,0x8f6e0062,0x47259328,0xb875d6d9,0xf64e590b,0xad92bcc7,0x22dd6225 +.long 0xb9c3bd6d,0xb658038e,0xfbba27c8,0x00cdb0d6,0x1062c45d,0x0c681337,0x2d33407d,0xd8515b8c,0x8cbb5ecf,0xcb8f699e,0xc608d7d8,0x8c4347f8,0xbb3e00db,0x2c11850a,0xecb49d19,0x20a8dafd +.long 0x45ee2f40,0xbd781480,0x416b60cf,0x75e354af,0x8d49a8c4,0xde0b58a1,0xfa359536,0xe40e94e2,0x62accd76,0xbd4fa59f,0x8c762837,0x05cf466a,0x448c277b,0xb5abda99,0x48b13740,0x5a9e01bf +.long 0x326aad8d,0x9d457798,0xc396f7e7,0xbdef4954,0xc253e292,0x6fb274a2,0x1cfe53e7,0x2800bf0a,0x44438fd4,0x22426d31,0x5e259f9a,0xef233923,0x03f66264,0x4188503c,0x7f9fdfab,0x9e5e7f13 +.long 0x5fcc1aba,0x565eb76c,0x59b5bff8,0xea632548,0xaab6d3fa,0x5587c087,0x6ce39c1b,0x92b639ea,0x953b135c,0x0706e782,0x425268ef,0x7308912e,0x090e7469,0x599e92c7,0x9bc35e75,0x83b90f52 +.long 0x244975b3,0x4750b3d0,0x11965d72,0xf3a44358,0x9c8dc751,0x179c6774,0xd23d9ff0,0xff18cdfe,0x2028e247,0xc4013833,0xf3bfbc79,0x96e280e2,0xd0880a84,0xf60417bd,0x2a568151,0x263c9f3d +.long 0x2d2ce811,0x36be15b3,0xf8291d21,0x846dc0c2,0x789fcfdb,0x5cfa0ecb,0xd7535b9a,0x45a0beed,0x96d69af1,0xec8e9f07,0x599ab6dc,0x31a7c5b8,0xf9e2e09f,0xd36d45ef,0xdcee954b,0x3cf49ef1 +.long 0x086cff9b,0x6be34cf3,0x39a3360f,0x88dbd491,0x0dbfbd1d,0x1e96b8cc,0xcb7e2552,0xc1e5f7bf,0x28819d98,0x0547b214,0x7aea9dcb,0xc770dd9c,0x041d68c8,0xaef0d4c7,0x13cb9ba8,0xcc2b9818 +.long 0xfe86c607,0x7fc7bc76,0x502a9a95,0x6b7b9337,0xd14dab63,0x1948dc27,0xdae047be,0x249dd198,0xa981a202,0xe8356584,0x3a893387,0x3531dd18,0xc85c7209,0x1be11f90,0xe2a52b5a,0x93d2fe1e +.long 0xec6d6b97,0x8225bfe2,0xbd0aa5de,0x9cf6d6f4,0x54779f5f,0x911459cb,0x86aeb1f3,0x5649cddb,0x3f26ce5a,0x32133579,0x550f431e,0xc289a102,0x73b84c6f,0x559dcfda,0xee3ac4d7,0x84973819 +.long 0xf2606a82,0xb51e55e6,0x90f2fb57,0xe25f7061,0xb1a4e37c,0xacef6c2a,0x5dcf2706,0x864e359d,0x7ce57316,0x479e6b18,0x3a96b23d,0x2cab2500,0x8ef16df7,0xed489862,0xef3758b5,0x2056538c +.long 0xf15d3101,0xa7df865e,0x61b553d7,0x80c5533a,0x4ed14294,0x366e1997,0xb3c0bcd6,0x6620741f,0xedc45418,0x21d1d9c4,0xc1cc4a9d,0x005b859e,0xa1c462f0,0xdf01f630,0xf26820c7,0x15d06cf3 +.long 0x3484be47,0x9f7f24ee,0x4a0c902f,0x2ff33e96,0x5a0bc453,0x00bdf457,0x1aa238db,0x2378dfaf,0x856720f2,0x272420ec,0x96797291,0x2ad9d95b,0x768a1558,0xd1242cc6,0x5cc86aa8,0x2e287f8b +.long 0x990cecaa,0x796873d0,0x675d4080,0xade55f81,0x21f0cd84,0x2645eea3,0xb4e17d02,0x7a1efa0f,0x037cc061,0xf6858420,0xd5d43e12,0x682e05f0,0x27218710,0x59c36994,0x3f7cd2fc,0x85cbba4d +.long 0x7a3cd22a,0x726f9729,0x4a628397,0x9f8cd5dc,0xc23165ed,0x17b93ab9,0x122823d4,0xff5f5dbf,0x654a446d,0xc1e4e4b5,0x677257ba,0xd1a9496f,0xde766a56,0x6387ba94,0x521ec74a,0x23608bc8 +.long 0x6688c4d4,0x16a522d7,0x07373abd,0x9d6b4282,0xb42efaa3,0xa62f07ac,0xe3b90180,0xf73e00f7,0x49421c3e,0x36175fec,0x3dcf2678,0xc4e44f9b,0x7220f09f,0x76df436b,0x3aa8b6cf,0x172755fb +.long 0x446139cc,0xbab89d57,0x5fe0208f,0x0a0a6e02,0x11e5d399,0xcdbb63e2,0xa8977f0b,0x33ecaa12,0xf7c42664,0x59598b21,0xab65d08a,0xb3e91b32,0xf4502526,0x035822ee,0x720a82a9,0x1dcf0176 +.long 0x3d589e02,0x50f8598f,0xb1d63d2c,0xdf0478ff,0x1571cd07,0x8b8068bd,0xd79670cd,0x30c3aa4f,0x941ade7f,0x25e8fd4b,0x32790011,0x3d1debdc,0x3a3f9ff0,0x65b6dcbd,0x793de69c,0x282736a4 +.long 0xd41d3bd3,0xef69a0c3,0x07a26bde,0xb533b8c9,0xdb2edf9f,0xe2801d97,0xe1877af0,0xdc4a8269,0x3d590dbe,0x6c1c5851,0xee4e9357,0x84632f6b,0x79b33374,0xd36d36b7,0x9bbca2e6,0xb46833e3 +.long 0xf7fc0586,0x37893913,0x66bf4719,0x385315f7,0xb31855dc,0x72c56293,0x849061fe,0xd1416d4e,0x51047213,0xbeb3ab78,0xf040c996,0x447f6e61,0x638b1d0c,0xd06d310d,0xbad1522e,0xe28a413f +.long 0x82003f86,0x685a76cb,0x0bcdbca3,0x610d07f7,0x9ca4c455,0x6ff66021,0xcea10eec,0x7df39b87,0xe22db218,0xb9255f96,0x08a34c44,0x8cc6d9eb,0x859f9276,0xcd4ffb86,0x50d07335,0x8fa15eb2 +.long 0xcf2c24b5,0xdf553845,0x52f9c3ba,0x89f66a9f,0xe4a7ceb3,0x8f22b5b9,0x0e134686,0xaffef809,0x8eb8fac2,0x3e53e1c6,0x28aec98e,0x93c1e4eb,0x32a43bcb,0xb6b91ec5,0xb2d74a51,0x2dbfa947 +.long 0xca84bad7,0xe065d190,0xad58e65c,0xfb13919f,0xf1cb6e31,0x3c41718b,0x06d05c3f,0x688969f0,0x21264d45,0xd4f94ce7,0x7367532b,0xfdfb65e9,0x0945a39d,0x5b1be8b1,0x2b8baf3b,0x229f789c +.long 0x6f49f15d,0xd8f41f3e,0x907f0792,0x678ce828,0xfca6e867,0xc69ace82,0xd01dcc89,0x106451ae,0x19fc32d2,0x1bb4f7f0,0xb00c52d2,0x64633dfc,0xad9ea445,0x8f13549a,0xfb323705,0x99a3bf50 +.long 0x534d4dbc,0x0c9625a2,0xc2a2fea3,0x45b8f1d1,0xa530fc1a,0x76ec21a1,0x9e5bd734,0x4bac9c2a,0x7b4e3587,0x5996d76a,0x1182d9e3,0x0045cdee,0x1207f13d,0x1aee24b9,0x97345a41,0x66452e97 +.long 0x9f950cd0,0x16e5b054,0xd7fdd075,0x9cc72fb1,0x66249663,0x6edd61e7,0xf043cccb,0xde4caa4d,0x55c7ac17,0x11b1f57a,0x1a85e24d,0x779cbd44,0xe46081e7,0x78030f86,0x8e20f643,0xfd4a6032 +.long 0x0a750c0f,0xcc7a6488,0x4e548e83,0x39bacfe3,0x0c110f05,0x3d418c76,0xb1f11588,0x3e4daa4c,0x5ffc69ff,0x2733e7b5,0x92053127,0x46f147bc,0xd722df94,0x885b2434,0xe6fc6b7c,0x6a444f65 +.long 0xc3f16ea8,0x7a1a465a,0xb2f1d11c,0x115a461d,0x6c68a172,0x4767dd95,0xd13a4698,0x3392f2eb,0xe526cdc7,0xc7a99ccd,0x22292b81,0x8e537fdc,0xa6d39198,0x76d8cf69,0x2446852d,0xffc5ff43 +.long 0xa90567e6,0x97b14f7e,0xb6ae5cb7,0x513257b7,0x9f10903d,0x85454a3c,0x69bc3724,0xd8d2c9ad,0x6b29cb44,0x38da9324,0x77c8cbac,0xb540a21d,0x01918e42,0x9bbfe435,0x56c3614e,0xfffa707a +.long 0xd4e353b7,0x0ce4e3f1,0xef46b0a0,0x062d8a14,0x574b73fd,0x6408d5ab,0xd3273ffd,0xbc41d1c9,0x6be77800,0x3538e1e7,0xc5655031,0x71fe8b37,0x6b9b331a,0x1cd91621,0xbb388f73,0xad825d0b +.long 0x1cb76219,0x56c2e05b,0x71567e7e,0x0ec0bf91,0x61c4c910,0xe7076f86,0xbabc04d9,0xd67b085b,0x5e93a96a,0x9fb90459,0xfbdc249a,0x7526c1ea,0xecdd0bb7,0x0d44d367,0x9dc0d695,0x95399917 +.long 0x9e240d18,0x61360ee9,0xb4b94466,0x057cdcac,0x2fe5325c,0xe7667cd1,0x21974e3b,0x1fa297b5,0xdb083d76,0xfa4081e7,0xf206bd15,0x31993be6,0x14c19f8c,0x8949269b,0xa9d92357,0x21468d72 +.long 0xa4c506ec,0x2ccbc583,0xd1acfe97,0x957ed188,0x12f1aea2,0x8baed833,0x8325362d,0xef2a6cb4,0x8e195c43,0x130dde42,0x0e6050c6,0xc842025a,0x08686a5d,0x2da972a7,0xe508b4a8,0xb52999a1 +.long 0x10a5a8bd,0xd9f090b9,0x096864da,0xca91d249,0x3f67dbc1,0x8e6a93be,0xf5f4764c,0xacae6fba,0xd21411a0,0x1563c6e0,0xda0a4ad8,0x28fa787f,0x908c8030,0xd524491c,0x4c795f07,0x1257ba0e +.long 0xceca9754,0x83f49167,0x4b7939a0,0x426d2cf6,0x723fd0bf,0x2555e355,0xc4f144e2,0xa96e6d06,0x87880e61,0x4768a8dd,0xe508e4d5,0x15543815,0xb1b65e15,0x09d7e772,0xac302fa0,0x63439dd6 +.long 0xc14e35c2,0xb93f802f,0x4341333c,0x71735b7c,0x16d4f362,0x03a25104,0xbf433c8e,0x3f4d069b,0xf78f5a7c,0x0d83ae01,0x7c4eed07,0x50a8ffbe,0x76e10f83,0xc74f8906,0x9ddaf8e1,0x7d080966 +.long 0x698e04cc,0xb11df8e1,0x169005c8,0x877be203,0x4f3c6179,0x32749e8c,0x7853fc05,0x2dbc9d0a,0x9454d937,0x187d4f93,0xb4800e1b,0xe682ce9d,0x165e68e8,0xa9129ad8,0xbe7f785b,0x0fe29735 +.long 0x5b9e02b7,0x5303f40c,0x35ee04e8,0xa37c9692,0x34d6632b,0x5f46cc20,0x96ac545b,0x55ef72b2,0x7b91b062,0xabec5c1f,0xbb33e821,0x0a79e1c7,0x3a9f4117,0xbb04b428,0xfd2a475a,0x0de1f28f +.long 0x3a4434b4,0x31019ccf,0x1a7954dc,0xa3458111,0xe34972a7,0xa9dac80d,0x74f6b8dd,0xb043d054,0x11137b1a,0x021c319e,0xed5cc03f,0x00a754ce,0xcbea5ad4,0x0aa2c794,0x70c015b6,0x093e67f4 +.long 0xc97e3f6b,0x72cdfee9,0xb6da7461,0xc10bcab4,0xb59806b9,0x3b02d2fc,0xa1de6f47,0x85185e89,0x0eb6c4d4,0x39e6931f,0xd4fa5b04,0x4d4440bd,0x34be7eb8,0x5418786e,0x9d7259bc,0x6380e521 +.long 0xd598d710,0x20ac0351,0xcb3a4da4,0x272c4166,0xca71de1f,0xdb82fe1a,0xd8f54b0f,0x746e79f2,0x4b573e9b,0x6e7fc736,0xfd4b5040,0x75d03f46,0x0b98d87b,0x5c1cc36d,0x1f472da1,0x513ba3f1 +.long 0xabb177dd,0x79d0af26,0x7891d564,0xf82ab568,0x72232173,0x2b6768a9,0x8c1f6619,0xefbb3bb0,0xa6d18358,0xb29c11db,0xb0916d3a,0x519e2797,0x9188e290,0xd4dc18f0,0x98b0ca7f,0x648e86e3 +.long 0x983c38b5,0x859d3145,0x637abc8b,0xb14f176c,0xcaff7be6,0x2793fb9d,0x35a66a5a,0xebe5a55f,0x9f87dc59,0x7cec1dcd,0xfbdbf560,0x7c595cd3,0x26eb3257,0x5b543b22,0xc4c935fd,0x69080646 +.long 0x81e9ede3,0x7f2e4403,0xcaf6df0a,0x243c3894,0x1c073b11,0x7c605bb1,0xba6a4a62,0xcd06a541,0x49d4e2e5,0x29168949,0x4af66880,0x33649d07,0xe9a85035,0xbfc0c885,0xfc410f4b,0xb4e52113 +.long 0x78a6513b,0xdca3b706,0x9edb1943,0x92ea4a2a,0xdb6e2dd8,0x02642216,0x9fd57894,0x9b45d0b4,0xc69d11ae,0x114e70db,0x4c57595f,0x1477dd19,0xec77c272,0xbc2208b4,0xdb68f59c,0x95c5b4d7 +.long 0x42e532b7,0xb8c4fc63,0x9ae35290,0x386ba422,0xd201ecbc,0xfb5dda42,0xa0e38fd6,0x2353dc8b,0x68f7e978,0x9a0b85ea,0x2ad6d11f,0x96ec5682,0xe5f6886d,0x5e279d6c,0x3cb1914d,0xd3fe03cd +.long 0x7ea67c77,0xfe541fa4,0xe3ea810c,0x952bd2af,0x8d01d374,0x791fef56,0x0f11336e,0xa3a1c621,0xc7ec6d79,0x5ad0d5a9,0x3225c342,0xff7038af,0xbc69601b,0x003c6689,0x45e8747d,0x25059bc7 +.long 0xf2086fbf,0xfa4965b2,0x86916078,0xf6840ea6,0x70081d6c,0xd7ac7620,0xb5328645,0xe600da31,0x529b8a80,0x01916f63,0x2d7d6f3e,0xe80e4858,0xd664ca7c,0x29eb0fe8,0xe7b43b0c,0xf017637b +.long 0x76cb2566,0x9a75c806,0xb24892d9,0x8f76acb1,0x1f08fe45,0x7ae7b9cc,0x6a4907d8,0x19ef7329,0x5f228bf0,0x2db4ab71,0x817032d7,0xf3cdea39,0xdcabe3c0,0x0b1f482e,0xbb86325c,0x3baf76b4 +.long 0x10089465,0xd49065e0,0x8e77c596,0x3bab5d29,0x193dbd95,0x7636c3a6,0xb246e499,0xdef5d294,0x286b2475,0xb22c58b9,0xcd80862b,0xa0b93939,0xf0992388,0x3002c83a,0xeacbe14c,0x6de01f9b +.long 0xadd70482,0x6aac688e,0x7b4a4e8a,0x708de92a,0x758a6eef,0x75b6dd73,0x725b3c43,0xea4bf352,0x87912868,0x10041f2c,0xef09297a,0xb1b1be95,0xa9f3860a,0x19ae23c5,0x515dcf4b,0xc4f0f839 +.long 0x97f6306a,0x3c7ecca3,0x68a3a4b0,0x744c44ae,0xb3a1d8a2,0x69cd13a0,0x5256b578,0x7cad0a1e,0x33791d9e,0xea653fcd,0x74b2e05f,0x9cc2a05d,0xfd7affa2,0x73b391dc,0xb6b05442,0xddb7091e +.long 0x8538a5c6,0xc71e27bf,0x89abff17,0x195c63dd,0x1b71e3da,0xfd315285,0xfa680fa0,0x9cbdfda7,0x849d7eab,0x9db876ca,0x3c273271,0xebe2764b,0xf208dcea,0x663357e3,0x565b1b70,0x8c5bd833 +.long 0x9837fc0d,0xccc3b4f5,0xa79cf00f,0x9b641ba8,0xdfdf3990,0x7428243d,0x020786b1,0x83a594c4,0x526c4502,0xb712451a,0x6adb3f93,0x9d39438e,0xe9ff0ccd,0xfdb261e3,0xe07af4c3,0x80344e3c +.long 0x2fa4f126,0x75900d7c,0x5c99a232,0x08a3b865,0xdb25e0c3,0x2478b6bf,0x71db2edf,0x482cc2c2,0x5f321bb8,0x37df7e64,0x9a8005b4,0x8a93821b,0xcc8c1958,0x3fa2f10c,0x2c269d0a,0x0d332218 +.long 0xe246b0e6,0x20ab8119,0xd349fd17,0xb39781e4,0xb31aa100,0xd293231e,0xbb032168,0x4b779c97,0xc8470500,0x4b3f19e1,0x0c4c869d,0x45b7efe9,0xa1a6bbcc,0xdb84f38a,0xb2fddbc1,0x3b59cb15 +.long 0x3fd165e8,0xba5514df,0x061f8811,0x499fd6a9,0xbfef9f00,0x72cd1fe0,0x79ad7e8a,0x120a4bb9,0x5f4a5ac5,0xf2ffd095,0x95a7a2f0,0xcfd174f1,0x9d17baf1,0xd42301ba,0x77f22089,0xd2fa487a +.long 0xb1dc77e1,0x9cb09efe,0x21c99682,0xe9566939,0x6c6067bb,0x8c546901,0x61c24456,0xfd378574,0x81796b33,0x2b6a6cbe,0x58e87f8b,0x62d550f6,0x7f1b01b4,0x1b763e1c,0x1b1b5e12,0x4b93cfea +.long 0x1d531696,0xb9345238,0x88cdde69,0x57201c00,0x9a86afc7,0xdde92251,0xbd35cea8,0xe3043895,0x8555970d,0x7608c1e1,0x2535935e,0x8267dfa9,0x322ea38b,0xd4c60a57,0x804ef8b5,0xe0bf7977 +.long 0xc06fece4,0x1a0dab28,0x94e7b49d,0xd405991e,0x706dab28,0xc542b6d2,0xa91618fb,0xcb228da3,0x107d1cea,0x224e4164,0xd0f5d8f1,0xeb9fdab3,0x0d6e41cd,0xc02ba386,0x9b1f7146,0x676a72c5 +.long 0x4d6cb00b,0xffd6dd98,0xde2e8d7c,0xcef9c5ca,0x641c7936,0xa1bbf5d7,0xee8f772e,0x1b95b230,0xe8ac25b1,0xf765a92e,0x3a18b7c6,0xceb04cfc,0x0acc8966,0x27944cef,0x434c1004,0xcbb3c957 +.long 0xa43ff93c,0x9c9971a1,0xa1e358a9,0x5bc2db17,0xa8d9bc82,0x45b4862e,0x2201e052,0x70ebfbfb,0x92871591,0xafdf64c7,0xb42d0219,0xea5bcae6,0x2ad8f03c,0xde536c55,0xa76aa33c,0xcd6c3f4d +.long 0x0bca6de3,0xbeb5f623,0xb1e706fd,0xdd20dd99,0xac9059d4,0x90b3ff9d,0x7ccccc4e,0x2d7b2902,0xce98840f,0x8a090a59,0x8410680a,0xa5d947e0,0x923379a5,0x49ae346a,0xb28a3156,0x7dbc84f9 +.long 0x54a1aff2,0xfd40d916,0x3a78fb9b,0xabf318ba,0x3029f95e,0x50152ed8,0xc58ad7fa,0x9fc1dd77,0x13595c17,0x5fa57915,0x8f62b3a9,0xb9504668,0xff3055b0,0x907b5b24,0x9a84f125,0x2e995e35 +.long 0x7e9bbcfb,0x87dacf69,0xe86d96e3,0x95d0c1d6,0x2d95a75c,0x65726e3c,0xacd27f21,0x2c3c9001,0x6c973f57,0x1deab561,0xa5221643,0x108b7e2c,0xc4ef79d4,0x5fee9859,0x40d4b8c6,0xbd62b88a +.long 0x197c75d6,0xb4dd29c4,0xb7076feb,0x266a6df2,0x4bf2df11,0x9512d0ea,0x6b0cc9ec,0x1320c24f,0x01a59596,0x6bb1e0e1,0xeff9aaac,0x8317c5bb,0x385aa6c9,0x65bb405e,0x8f07988f,0x613439c1 +.long 0x16a66e91,0xd730049f,0xfa1b0e0d,0xe97f2820,0x304c28ea,0x4131e003,0x526bac62,0x820ab732,0x28714423,0xb2ac9ef9,0xadb10cb2,0x54ecfffa,0xf886a4cc,0x8781476e,0xdb2f8d49,0x4b2c87b5 +.long 0x0a44295d,0xe857cd20,0x58c6b044,0x707d7d21,0xf596757c,0xae8521f9,0x67b2b714,0x87448f03,0x5ebcd58d,0x13a9bc45,0x9122d3c1,0x79bcced9,0x9e076642,0x3c644247,0x2df4767d,0x0cf22778 +.long 0x71d444b6,0x5e61aee4,0xc5084a1d,0x211236bf,0x4fd3eaf6,0x7e15bc9a,0xab622bf5,0x68df2c34,0x59bf4f36,0x9e674f0f,0xd7f34d73,0xf883669b,0x31497b1d,0xc48ac1b8,0x5106703b,0x323b925d +.long 0x74082008,0x22156f42,0xc8482bcb,0xeffc521a,0x12173479,0x5c6831bf,0xc4739490,0xcaa2528f,0x8f1b3c4d,0x84d2102a,0x2d9bec0d,0xcf64dfc1,0x78a546ef,0x433febad,0x7b73cef1,0x1f621ec3 +.long 0x37338615,0x6aecd627,0x01d8edf6,0x162082ab,0x19e86b66,0x833a8119,0xd299b5db,0x6023a251,0xbbf04b89,0xf5bb0c3a,0xae749a44,0x6735eb69,0x4713de3b,0xd0e058c5,0x2c3d4ccd,0xfdf2593e +.long 0xfdd23667,0x1b8f414e,0xfa2015ee,0xdd52aaca,0xbd9625ff,0x3e31b517,0x8db5918c,0x5ec9322d,0xa96f5294,0xbc73ac85,0x61a0666a,0x82aa5bf3,0xbf08ac42,0x49755810,0x891cedfc,0xd21cdfd5 +.long 0x67f8be10,0x918cb57b,0x56ffa726,0x365d1a7c,0x6532de93,0x2435c504,0x2674cd02,0xc0fc5e10,0x9cbbb142,0x6e51fcf8,0xafc50692,0x1d436e5a,0x3fbcae22,0x766bffff,0xfd55d3b8,0x3148c2fd +.long 0x233222fa,0x52c7fdc9,0xe419fb6b,0x89ff1092,0x25254977,0x3cd6db99,0x1cf12ca7,0x2e85a161,0xdc810bc9,0xadd2547c,0x9d257c22,0xea3f458f,0x27d6b19b,0x642c1fbe,0x140481a6,0xed07e6b5 +.long 0x86d2e0f8,0x6ada1d42,0x0e8a9fd5,0xe5920122,0x708c1b49,0x02c936af,0x2b4bfaff,0x60f30fee,0x858e6a61,0x6637ad06,0x3fd374d0,0xce4c7767,0x7188defb,0x39d54b2d,0xf56a6b66,0xa8c9d250 +.long 0xb24fe1dc,0x58fc0f5e,0x6b73f24c,0x9eaf9dee,0x33650705,0xa90d588b,0xaf2ec729,0xde5b62c5,0xd3c2b36e,0x5c72cfae,0x034435da,0x868c19d5,0xe17ee145,0x88605f93,0x77a5d5b1,0xaa60c4ee +.long 0x3b60c472,0xbcf5bfd2,0xeb1d3049,0xaf4ef13c,0xe13895c9,0x373f44fc,0x0cbc9822,0xf29b382f,0x73efaef6,0x1bfcb853,0xa8c96f40,0xcf56ac9c,0x7a191e24,0xd7adf109,0xbf8a8dc2,0x98035f44 +.long 0x1e750c84,0xf40a71b9,0x5dc6c469,0xc57f7b0c,0x6fbc19c1,0x49a0e79c,0xa48ebdb8,0x6b0f5889,0xa07c4e9f,0x5d3fd084,0xab27de14,0xc3830111,0x33e08dcc,0x0e4929fe,0x40bb73a3,0xf4a5ad24 +.long 0x490f97ca,0xde86c2bf,0x67a1ce18,0x288f09c6,0x1844478d,0x364bb886,0xceedb040,0x7840fa42,0x5a631b37,0x1269fdd2,0xa47c8b7d,0x94761f1e,0x481c6266,0xfc0c2e17,0x3daa5fa7,0x85e16ea2 +.long 0x92491048,0xccd86033,0xf4d402d7,0x0c2f6963,0xdf6a865c,0x6336f7df,0xb5c02a87,0x0a2a463c,0xbf2f12ee,0xb0e29be7,0x66bad988,0xf0a22002,0x9123c1d7,0x27f87e03,0x328a8c98,0x21669c55 +.long 0x92f14529,0x186b9803,0x63954df3,0xd3d056cc,0x175a46f6,0x2f03fd58,0x11558558,0x63e34ebe,0x5b80cfa5,0xe13fedee,0xd401dbd1,0xe872a120,0xe8a9d667,0x52657616,0xe08d6693,0xbc8da4b6 +.long 0x1b703e75,0x370fb9bb,0xd4338363,0x6773b186,0xecef7bff,0x18dad378,0x995677da,0xaac787ed,0x0437164b,0x4801ea8b,0x73fe795e,0xf430ad20,0x8ee5eb73,0xb164154d,0x108f7c0e,0x0884ecd8 +.long 0x5f520698,0x0e6ec096,0x44f7b8d9,0x640631fe,0xa35a68b9,0x92fd34fc,0x4d40cf4e,0x9c5a4b66,0x80b6783d,0x949454bf,0x3a320a10,0x80e701fe,0x1a0a39b2,0x8d1a564a,0x320587db,0x1436d53d +.long 0x6556c362,0xf5096e6d,0xe2455d7e,0xbc23a3c0,0x807230f9,0x3a7aee54,0x22ae82fd,0x9ba1cfa6,0x99c5d706,0x833a057a,0x842315c9,0x8be85f4b,0x66a72f12,0xd083179a,0xcdcc73cd,0x2fc77d5d +.long 0x5616ee30,0x22b88a80,0xe7ab1083,0xfb09548f,0x511270cd,0x8ad6ab0d,0x6924d9ab,0x61f6c57a,0x90aecb08,0xa0f7bf72,0x0df784a4,0x849f87c9,0xcfaf1d03,0x27c79c15,0xc463face,0xbbf9f675 +.long 0x765ba543,0x91502c65,0x42ea60dd,0x18ce3cac,0x6e43ecb3,0xe5cee6ac,0x68f2aeeb,0x63e4e910,0xc85932ee,0x26234fa3,0x4c90c44d,0x96883e8b,0xa18a50f6,0x29b9e738,0x3f0420df,0xbfc62b2a +.long 0x6d3e1fa9,0xd22a7d90,0xfe05b8a3,0x17115618,0xbb2b9c01,0x2a0c9926,0xe07e76a2,0xc739fcc6,0x165e439a,0x540e9157,0x6a9063d8,0x06353a62,0x61e927a3,0x84d95594,0xe2e0be7f,0x013b9b26 +.long 0x973497f1,0x4feaec3b,0x093ebc2d,0x15c0f94e,0x33af0583,0x6af5f227,0xc61f3340,0x0c2af206,0x4457397c,0xd25dbdf1,0xcabcbae0,0x2e8ed017,0xc2815306,0xe3010938,0xe8c6cd68,0xbaa99337 +.long 0x3b0ec7de,0x08513182,0x58df05df,0x1e1b822b,0xa5c3b683,0x5c14842f,0x3eba34ce,0x98fe977e,0x0d5e8873,0xfd2316c2,0xbd0d427d,0xe48d839a,0x623fc961,0x495b2218,0xb46fba5e,0x24ee56e7 +.long 0x91e4de58,0x9184a55b,0xdfdea288,0xa7488ca5,0xa8dcc943,0xa723862e,0x849dc0fc,0x92d762b2,0x091ff4a9,0x3c444a12,0x0cada274,0x581113fa,0x30d8eae2,0xb9de0a45,0xdf6b41ea,0x5e0fcd85 +.long 0xc094dbb5,0x6233ea68,0xd968d410,0xb77d062e,0x58b3002d,0x3e719bbc,0x3dc49d58,0x68e7dd3d,0x013a5e58,0x8d825740,0x3c9e3c1b,0x21311747,0x7c99b6ab,0x0cb0a2a7,0xc2f888f2,0x5c48a3b3 +.long 0x991724f3,0xc7913e91,0x39cbd686,0x5eda799c,0x63d4fc1e,0xddb595c7,0xac4fed54,0x6b63b80b,0x7e5fb516,0x6ea0fc69,0xd0f1c964,0x737708ba,0x11a92ca5,0x9628745f,0x9a86967a,0x61f37958 +.long 0xaa665072,0x9af39b2c,0xefd324ef,0x78322fa4,0xc327bd31,0x3d153394,0x3129dab0,0x81d5f271,0xf48027f5,0xc72e0c42,0x8536e717,0xaa40cdbc,0x2d369d0f,0xf45a657a,0xea7f74e6,0xb03bbfc4 +.long 0x0d738ded,0x46a8c418,0xe0de5729,0x6f1a5bb0,0x8ba81675,0xf10230b9,0x112b33d4,0x32c6f30c,0xd8fffb62,0x7559129d,0xb459bf05,0x6a281b47,0xfa3b6776,0x77c1bd3a,0x7829973a,0x0709b380 +.long 0xa3326505,0x8c26b232,0xee1d41bf,0x38d69272,0xffe32afa,0x0459453e,0x7cb3ea87,0xce8143ad,0x7e6ab666,0x932ec1fa,0x22286264,0x6cd2d230,0x6736f8ed,0x459a46fe,0x9eca85bb,0x50bf0d00 +.long 0x877a21ec,0x0b825852,0x0f537a94,0x300414a7,0x21a9a6a2,0x3f1cba40,0x76943c00,0x50824eee,0xf83cba5d,0xa0dbfcec,0x93b4f3c0,0xf9538148,0x48f24dd7,0x61744162,0xe4fb09dd,0x5322d64d +.long 0x3d9325f3,0x57447384,0xf371cb84,0xa9bef2d0,0xa61e36c5,0x77d2188b,0xc602df72,0xbbd6a7d7,0x8f61bc0b,0xba3aa902,0x6ed0b6a1,0xf49085ed,0xae6e8298,0x8bc625d6,0xa2e9c01d,0x832b0b1d +.long 0xf1f0ced1,0xa337c447,0x9492dd2b,0x800cc793,0xbea08efa,0x4b93151d,0xde0a741e,0x820cf3f8,0x1c0f7d13,0xff1982dc,0x84dde6ca,0xef921960,0x45f96ee3,0x1ad7d972,0x29dea0c7,0x319c8dbe +.long 0x7b82b99b,0xd3ea3871,0x470eb624,0x75922d4d,0x3b95d466,0x8f66ec54,0xbee1e346,0x66e673cc,0xb5f2b89a,0x6afe67c4,0x290e5cd3,0x3de9c1e6,0x310a2ada,0x8c278bb6,0x0bdb323b,0x420fa384 +.long 0x0eb919b0,0x0ae1d63b,0xa74b9620,0xd74ee51d,0xa674290c,0x395458d0,0x4620a510,0x324c930f,0xfbac27d4,0x2d1f4d19,0x9bedeeac,0x4086e8ca,0x9b679ab8,0x0cdd211b,0x7090fec4,0x5970167d +.long 0xfaf1fc63,0x3420f2c9,0x328c8bb4,0x616d333a,0x57f1fe4a,0x7d65364c,0x55e5c73a,0x9343e877,0xe970e78c,0x5795176b,0x60533627,0xa36ccebf,0x09cdfc1b,0xfc7c7380,0xb3fec326,0xb39a2afe +.long 0x6224408a,0xb7ff1ba1,0x247cfc5e,0xcc856e92,0xc18bc493,0x01f102e7,0x2091c727,0x4613ab74,0xc420bf2b,0xaa25e89c,0x90337ec2,0x00a53176,0x7d025fc7,0xd2be9f43,0x6e6fe3dc,0x3316fb85 +.long 0x9ac50814,0x27520af5,0x9a8e4223,0xfdf95e78,0x56bec5a0,0xb7e7df2a,0xdf159e5d,0xf7022f7d,0xcac1fe8f,0x93eeeab1,0x37451168,0x8040188c,0xd967dce6,0x7ee8aa8a,0x3abc9299,0xfa0e79e7 +.long 0x2064cfd1,0x67332cfc,0xb0651934,0x339c31de,0x2a3bcbea,0x719b28d5,0x9d6ae5c6,0xee74c82b,0xbaf28ee6,0x0927d05e,0x9d719028,0x82cecf2c,0xddb30289,0x0b0d353e,0xfddb2e29,0xfe4bb977 +.long 0x640bfd9e,0xbb5bb990,0x82f62108,0xd226e277,0x02ffdd56,0x4bf00985,0x2ca1b1b5,0x7756758a,0x5285fe91,0xc32b62a3,0x8c9cd140,0xedbc546a,0xaf5cb008,0x1e47a013,0x073ce8f2,0xbca7e720 +.long 0x17a91cae,0xe10b2ab8,0x08e27f63,0xb89aab65,0xdba3ddf9,0x7b3074a7,0x330c2972,0x1c20ce09,0x5fcf7e33,0x6b9917b4,0x945ceb42,0xe6793743,0x5c633d19,0x18fc2215,0xc7485474,0xad1adb3c +.long 0x6424c49b,0x646f9679,0x67c241c9,0xf888dfe8,0x24f68b49,0xe12d4b93,0xa571df20,0x9a6b62d8,0x179483cb,0x81b4b26d,0x9511fae2,0x666f9632,0xd53aa51f,0xd281b3e4,0x7f3dbd16,0x7f96a765 +.long 0x074a30ce,0xa7f8b5bf,0x005a32e6,0xd7f52107,0x50237ed4,0x6f9e0907,0x8096fa2b,0x2f21da47,0xeec863a0,0xf3e19cb4,0x9527620a,0xd18f77fd,0x407c1cf8,0x9505c81c,0x1b6ec284,0x9998db4e +.long 0xc247d44d,0x7e3389e5,0x3f4f3d80,0x12507141,0x4a78a6c7,0xd4ba0110,0x767720be,0x312874a0,0x75944370,0xded059a6,0x3b2c0bdd,0xd6123d90,0x51c108e3,0xa56b717b,0x070623e9,0x9bb7940e +.long 0x84ac066c,0x794e2d59,0xe68c69a0,0xf5954a92,0x4fd99dcc,0x28c52458,0xb1012517,0x60e639fc,0x7de79248,0xc2e60125,0xf12fc6d7,0xe9ef6404,0x2a3b5d32,0x4c4f2808,0xc768eb8a,0x865ad32e +.long 0x13fb70b6,0xac02331b,0x95599b27,0x037b44c1,0x60bd082c,0x1a860fc4,0xc980cd01,0xa2e25745,0x1da0263e,0xee3387a8,0x2d10f3d6,0x931bfb95,0xa1f24a32,0x5b687270,0xca494b86,0xf140e65d +.long 0xb2f1ac7a,0x4f4ddf91,0x760fee27,0xf99eaabb,0x49c228e5,0x57f4008a,0x1cf713bb,0x090be440,0x5004f022,0xac91fbe4,0x569e1af6,0xd838c2c2,0x0f1daaa5,0xd6c7d20b,0x1bbb02c0,0xaa063ac1 +.long 0x59558a78,0x0938a422,0x8435da2f,0x5343c669,0x034410dc,0x96f67b18,0x84510804,0x7cc1e424,0x16dfbb7d,0x86a1543f,0x5b5bd592,0x921fa942,0xb33dd03c,0x9dcccb6e,0xb843f51e,0x8581ddd9 +.long 0x81d73c9e,0x54935fcb,0x0a5e97ab,0x6d07e979,0xcf3a6bab,0x4dc7b30a,0x170bee11,0x147ab1f3,0x9fafdee4,0x0aaf8e3d,0x538a8b95,0xfab3dbcb,0x6ef13871,0x405df4b3,0x088d5a49,0xf1f4e9cb +.long 0x66b33f1d,0x9bcd24d3,0x5ce445c0,0x3b97b820,0xba93ff61,0xe2926549,0x4dafe616,0xd9c341ce,0x16efb6f3,0xfb30a76e,0x605b953c,0xdf24b8ca,0xc2fffb9f,0x8bd52afe,0xe19d0b96,0xbbac5ff7 +.long 0x459afccd,0x43c01b87,0xb7432652,0x6bd45143,0x55b5d78e,0x84734530,0x1554ba7d,0x81088fdb,0x1e269375,0xada0a52c,0x2dc5ec10,0xf9f037c4,0x94bfbc11,0xc0660607,0xc9c40d2f,0xc0a630bb +.long 0xab64c31e,0x5efc797e,0x74507144,0xffdb1dab,0x1ca6790c,0xf6124287,0xe69bf1bf,0xe9609d81,0x00d24fc9,0xdb898595,0xe51fb417,0x9c750333,0xfef7bbde,0x51830a91,0x945f585c,0x0ce67dc8 +.long 0x4763eb50,0x9a730ed4,0xc1ab0d66,0x24a0e221,0x648748f3,0x643b6393,0x6d3c6291,0x1982daa1,0x8bbc5549,0x6f00a9f7,0x7f36384e,0x7a1783e1,0xde977f50,0xe8346323,0xb245502a,0x91ab688d +.long 0x6d0bdd66,0x331ab6b5,0x64b71229,0x0a6ef32e,0xfe7c352f,0x1028150e,0xce7b39d3,0x27e04350,0xc1070c82,0x2a3c8acd,0x80c9feef,0xfb2034d3,0x709f3729,0x2d729621,0x62cb4549,0x8df290bf +.long 0xfc2e4326,0x02f99f33,0x5eddf032,0x3b30076d,0x0c652fb5,0xbb21f8cf,0xed91cf7b,0x314fb49e,0x2f700750,0xa013eca5,0x712a4575,0x2b9e3c23,0xaf30fbb0,0xe5355557,0x7c77e771,0x1ada3516 +.long 0x7b135670,0x45f6ecb2,0x7cfc202e,0xe85d19df,0x58d1be9f,0x0f1b50c7,0xead2e344,0x5ebf2c0a,0xabc199c9,0x1531fe4e,0x56bab0ae,0xc7032592,0x6c1fec54,0x16ab2e48,0x04280188,0x0f87fda8 +.long 0x609e4a74,0xdc9f46fc,0xba667f91,0x2a44a143,0xb4d83436,0xbc3d8b95,0xc7bd2958,0xa01e4bd0,0x73483c90,0x7b182932,0xa7c7b598,0xa79c6aa1,0xeaaac07e,0xbf3983c6,0x96e0d4e6,0x8f18181e +.long 0x051af62b,0x8553d37c,0x0bf94496,0xe9a998eb,0xb0d59aa1,0xe0844f9f,0xe6afb813,0x983fd558,0x65d69804,0x9670c0ca,0x6ea5ff2d,0x732b22de,0x5fd8623b,0xd7640ba9,0xa6351782,0x9f619163 +.long 0xacee5043,0x0bfc27ee,0x2eb10f02,0xae419e73,0x8943fb05,0x19c028d1,0xff13aa2a,0x71f01cf7,0x8887a132,0x7790737e,0x66318410,0x67513309,0x7ddb795e,0x9819e8a3,0xdad100b2,0xfecb8ef5 +.long 0x3021926a,0x59f74a22,0x6f9b4c1c,0xb7c28a49,0x912ad0ab,0xed1a733f,0x01a5659c,0x42a910af,0x7bd68cab,0x3842c6e0,0x76d70ac8,0x2b57fa38,0x3c53aaeb,0x8a6707a8,0x65b4db18,0x62c1c510 +.long 0xb2d09dc7,0x8de2c1fb,0x266bd23b,0xc3dfed12,0xd5b27db6,0x927d039b,0x103243da,0x2fb2f0f1,0x80be7399,0xf855a07b,0x1f9f27a8,0xed9327ce,0x729bdef7,0xa0bd99c7,0x28250d88,0x2b67125e +.long 0x8670ced7,0x784b26e8,0xc31bd3b4,0xe3dfe41f,0xbcc85cbc,0x9e353a06,0x60178a9d,0x302e2909,0xa6eac16e,0x860abf11,0xaa2b3aac,0x76447000,0x850afdab,0x46ff9d19,0xfdb2d4c1,0x35bdd6a5 +.long 0x7e5c9ce9,0xe82594b0,0x20af346e,0x0f379e53,0xbc65ad4a,0x608b31e3,0x267c4826,0x710c6b12,0x71954cf1,0x51c966f9,0x0d0aa215,0xb1cec793,0x86bd23a8,0x1f155989,0xf9452e86,0xae2ff99c +.long 0x340ceaa2,0xd8dd953c,0x2e2e9333,0x26355275,0x8586f06d,0x15d4e5f9,0xf7cab546,0xd6bf94a8,0xb76a9af0,0x33c59a0a,0xba095af7,0x52740ab3,0x24389ca0,0xc444de8a,0x706da0cb,0xcc6f9863 +.long 0x6b2515cf,0xb5a741a7,0x9585c749,0x71c41601,0xe683de97,0x78350d4f,0x63d0b5f5,0x31d61524,0xfbce090b,0x7a0cc5e1,0xfbcb2a5b,0xaac927ed,0x20d84c35,0xe920de49,0x22b4de26,0x8c06a0b6 +.long 0xafe7ddf3,0xd34dd58b,0xc1e6e55b,0x55851fed,0x960696e7,0xd1395616,0x5f22705f,0x940304b2,0xb0a2a860,0x6f43f861,0x0e7cc981,0xcf121282,0x0ab64a96,0x12186212,0xb789383c,0x09215b9a +.long 0x37387c09,0x311eb305,0xf03ee760,0xc5832fce,0x32f7ea19,0x30358f58,0x91d53551,0xe01d3c34,0xda48ea80,0x1ca5ee41,0xcf4fa4c1,0x34e71e8e,0x7af1e1c7,0x312abd25,0x2153f4a5,0xe3afcdeb +.long 0x00235e9a,0x9d5c84d7,0x8c4c836f,0x0308d3f4,0x89332de5,0xc0a66b04,0x89e566ef,0x610dd399,0xd1ac1635,0xf8eea460,0x20a2c0df,0x84cbb3fb,0xe74a48c5,0x40afb488,0xd326b150,0x29738198 +.long 0xa6d74081,0x2a17747f,0x55a26214,0x60ea4c05,0x1f88c5fe,0x53514bb4,0x7e83426c,0xedd64567,0x96460b25,0xd5d6cbec,0x68dc115e,0xa12fd0ce,0x697840ea,0xc5bc3ed2,0xa6331e31,0x969876a8 +.long 0x472ff580,0x60c36217,0x4ad41393,0xf4229705,0xa03b8b92,0x4bd99ef0,0xc144f4f6,0x501c7317,0x18464945,0x159009b3,0x74c5c6be,0x6d5e594c,0x321a3660,0x2d587011,0x3898d022,0xd1e184b1 +.long 0x4c6a7e04,0x5ba04752,0x45550b65,0x47fa1e2b,0x48c0a9a5,0x9419daf0,0x7c243236,0x66362953,0x5cb12a88,0xcd0744b1,0x2b646188,0x561b6f9a,0x66c2c0c0,0x599415a5,0x0f83f09a,0xbe3f0859 +.long 0xb92041b8,0x9141c5be,0x26477d0d,0x01ae38c7,0xd12c7a94,0xca8b71f3,0x765c70db,0xfab5b31f,0x487443e9,0x76ae7492,0x990d1349,0x8595a310,0x7d460a37,0xf8dbeda8,0x1e45a38f,0x7f7ad082 +.long 0x1059705a,0xed1d4db6,0xe6b9c697,0xa3dd492a,0x6eb38bd5,0x4b92ee3a,0x67cc0bb7,0xbab2609d,0x6e70ee82,0x7fc4fe89,0x13e6b7e3,0xeff2c56e,0x34d26fca,0x9b18959e,0x889d6b45,0x2517ab66 +.long 0xbdefdd4f,0xf167b4e0,0xf366e401,0x69958465,0xa73bbec0,0x5aa368ab,0x7b240c21,0x12148709,0x18969006,0x378c3233,0xe1fe53d1,0xcb4d73ce,0x130c4361,0x5f50a80e,0x7ef5212b,0xd67f5951 +.long 0x9e70c72e,0xf145e21e,0x5566d2fb,0xb2e52e29,0x032397f5,0x44eaba4a,0x7e31a7de,0x5e56937b,0x456c61e1,0x68dcf517,0xa8b0a388,0xbc2e954a,0x60a8b755,0xe3552fa7,0x73ad0cde,0x03442dae +.long 0xceb26210,0x37ffe747,0x787baef9,0x983545e8,0x86a3de31,0x8b8c8535,0xfacd46db,0xc621dbcb,0x59266fbb,0x82e442e9,0x339d471c,0xa3514c37,0x62cdad96,0x3a11b771,0xecf9bdf0,0xf0cb3b3c +.long 0x478e2135,0x3fcbdbce,0xbda35342,0x7547b5cf,0x8a677af6,0xa97e81f1,0x28817987,0xc8c2bf83,0x45580985,0xdf07eaaf,0xc93b45cb,0xc68d1f05,0xc77b4cac,0x106aa2fe,0x04a7ae86,0x4c1d8afc +.long 0x9eb45ab2,0xdb41c3fd,0xd4b22e74,0x5b234b5b,0xf215958a,0xda253dec,0xa04edfa0,0x67e0606e,0xef751b11,0xabbbf070,0xf6f06dce,0xf352f175,0x6839f6b4,0xdfc4b6af,0x9959848e,0x53ddf9a8 +.long 0xc21520b0,0xda49c379,0xdbd5d1b6,0x90864ff0,0x5f49c7f7,0x2f055d23,0xa796b2d8,0xe51e4e6a,0x5c9dc340,0xc361a67f,0xbca7c620,0x5ad53c37,0x32c756d0,0xda1d6588,0x8bb67e13,0xad60d911 +.long 0x0eeec8c6,0xd6c47bdf,0x078a1821,0x4a27fec1,0xc3099524,0x081f7415,0x82cd8060,0x8effdf0b,0x65842df8,0xdb70ec1c,0xd319a901,0x8821b358,0xde42b529,0x72ee56ee,0x236e4286,0x5bb39592 +.long 0xfd6f7140,0xd1183316,0xbd8e81f7,0xf9fadb5b,0x5a02d962,0x701d5e0c,0x1b601324,0xfdee4dbf,0x35d7620e,0xbed17407,0xf48c0012,0x04e3c2c3,0x3455449a,0x9ee29da7,0x91a836c4,0x562cdef4 +.long 0x47701097,0x8f682a5f,0xff88d0c2,0x617125d8,0x57bb86dd,0x948fda24,0x289f7286,0x348abb8f,0x99d94bbd,0xeb10eab5,0x4684d160,0xd51ba28e,0x30c8f41a,0xabe0e51c,0x13254f4a,0x66588b45 +.long 0xfad097a5,0x147ebf01,0x610e815d,0x49883ea8,0x8a11de56,0xe44d60ba,0x827a7a6d,0xa970de6e,0x5e17fc19,0x2be41424,0x01214057,0xd833c657,0x363e723f,0x1375813b,0xe6a52e9b,0x6820bb88 +.long 0xd875d56a,0x7e7f6970,0x51fbf6bf,0xd6a0a9ac,0xa3083c12,0x54ba8790,0x6ae7eb64,0xebaeb23d,0xb99a907a,0xa8685c3a,0x026bf40b,0xf1e74550,0xc802cd9e,0x7b73a027,0x4fef4635,0x9a8a927c +.long 0x08191224,0xe1b6f60c,0xde4ec091,0xc4126ebb,0x4ae38d84,0xe1dff4dc,0x4f2ef985,0xde3f57db,0xd446a1dd,0x34964337,0x859e77f6,0x7bf217a0,0x8e1d13f5,0x8ff10527,0x74eeae27,0xa304ef03 +.long 0xd19dfa5a,0xfc6f5e47,0x7fad982b,0xdb007de3,0x613715f5,0x28205ad1,0x7889529e,0x251e6729,0x1ae98e78,0x72705184,0x271cac32,0xf818537d,0xb7f410f5,0xc8a15b7e,0x81f62393,0xc474356f +.long 0xc242316b,0x92dbdc5a,0xdbf4aff5,0xabe060ac,0x909a8ec6,0x6e8c38fe,0x6116cb94,0x43e514e5,0x07d784f9,0x2078fa38,0xf4b5b357,0x1161a880,0x13adea3d,0x5283ce79,0xcc6a910b,0x0756c3e6 +.long 0xaaa79697,0x60bcfe01,0x56391db1,0x04a73b29,0x189b45a0,0xdd8dad47,0x48d5b8d9,0xbfac0dd0,0x7d3d2ec2,0x34ab3af5,0x207bd3af,0x6fa2fc2d,0x66550ded,0x9ff40092,0x1fd5b913,0x719b3e87 +.long 0x6d17fbc7,0xa573a496,0x73d2b24e,0x0cd1a70a,0xb2676937,0x34e2c5ca,0xbf669f21,0xe7050b06,0x1ede9046,0xfbe948b6,0x97662659,0xa0530051,0xf10124c5,0x58cbd4ed,0xdd6c06c8,0xde2646e4 +.long 0x8cad38c0,0x332f8108,0x6bd68ae2,0x471b7e90,0x0d8e27a3,0x56ac3fb2,0x136b4b0d,0xb54660db,0xa6fd8de4,0x123a1e11,0xa37799ef,0x44dbffea,0xce6ac17c,0x4540b977,0xaf60acef,0x495173a8 +.long 0x391c2a82,0x9ebb284d,0x158308e8,0xbcdd4863,0x83f1edca,0x006f16ec,0x695dc6c8,0xa13e2c37,0x4a057a87,0x2ab756f0,0xa6b48f98,0xa8765500,0x68651c44,0x4252face,0xe1765e02,0xa52b540b +.long 0x16a0d2bb,0x4f922fc5,0x1a623499,0x0d5cc16c,0x57c62c8b,0x9241cf3a,0xfd1b667f,0x2f5e6961,0xf5a01797,0x5c15c70b,0x60956192,0x3d20b44d,0x071fdb52,0x04911b37,0x8d6f0f7b,0xf648f916 +.long 0xe60b7cf7,0x6dc1acaf,0x84a9d869,0x25860a50,0xe7ba8ac4,0x56fc6f09,0x6148d29e,0x828c5bd0,0xdc55ae5f,0xac6b435e,0xc0117411,0xa527f56c,0xfd24342c,0x94d5045e,0x70b67c0d,0x2c4c0a35 +.long 0xfac61d9a,0x027cc8b8,0xe3c6fe8a,0x7d25e062,0xe5bff503,0xe08805bf,0x6ff632f7,0x13271e6c,0x232f76a5,0x55dca6c0,0x701ef426,0x8957c32d,0xa10a5178,0xee728bcb,0xb62c5173,0x5ea60411 +.long 0xd0b8892b,0xfc4e964e,0x9301bb74,0x9ea17683,0xfcc48626,0x6265c5ae,0xbb3e9102,0xe60cf82e,0xd4df5531,0x57adf797,0x8deeefe2,0x235b59a1,0x3f306eb1,0x60adcf58,0x3d09492d,0x105c2753 +.long 0xb5def996,0x4090914b,0x233dd1e7,0x1cb69c83,0x9b3d5e76,0xc1e9c1d3,0xfccf6012,0x1f3338ed,0x2f5378a8,0xb1e95d0d,0x2f00cd21,0xacf4c2c7,0xeb5fe290,0x6e984240,0x248088ae,0xd66c038d +.long 0xf94d70cf,0x804d264a,0x7314bf7e,0xbdb802ef,0x4333ed02,0x8fb54de2,0x285635d9,0x740461e0,0x365e9383,0x4113b2c8,0x3fdef652,0xea762c83,0x47b956c1,0x4eec6e2e,0x65620fa4,0xa3d814be +.long 0xb4d8bc50,0x9ad5462b,0xa9195770,0x181c0b16,0x78412a68,0xebd4fe1c,0xc0dff48c,0xae0341bc,0x7003e866,0xb6bc45cf,0x8a24a41b,0xf11a6dea,0xd04c24c2,0x5407151a,0xda5b7b68,0x62c9d27d +.long 0x88cceff6,0x2e964235,0x8b07ed69,0x8594c54f,0xc84d0d0d,0x1578e73c,0xff532868,0x7b4e1055,0xb5ec995a,0xa348c0d5,0x14289a54,0xbf4b9d55,0x58fbd777,0x9ba155a6,0x1a84491d,0x186ed7a8 +.long 0x614c0900,0xd4992b30,0xbd00c24b,0xda98d121,0x7ec4bfa1,0x7f534dc8,0x37dc34bc,0x4a5ff674,0x1d7ea1d7,0x68c196b8,0x80a6d208,0x38cf2893,0xe3cbbd6e,0xfd56cd09,0x4205a5b6,0xec72e27e +.long 0xa44f77f7,0x15ea68f5,0xb43c52bc,0x7aa5f9fd,0x94f0e609,0x86ff676f,0x2e2d432b,0xa4cde963,0xeee470af,0x8cafa0c0,0x8a3f5ec8,0x84137d0e,0xfaa31231,0xebb40411,0x6f7f7ccf,0xa239c13f +.long 0xa8afd30b,0x32865719,0x8a826dce,0x86798328,0xc4a8fbe0,0xdf04e891,0xebf56ad3,0xbb6b6e1b,0x471f1ff0,0x0a695b11,0xbe15baf0,0xd76c3389,0xbe96c43e,0x018edb95,0x90794158,0xf2beaaf4 +.long 0xc3076a27,0x152db09e,0xe416545d,0x5e82908e,0x356d6f2e,0xa2c41272,0x31fd74e1,0xdc9c9642,0x519bf615,0x66ceb88d,0x05a2274e,0xe29ecd76,0xbf5e2fa0,0x3a0473c4,0x64284e67,0x6b6eb671 +.long 0xb88756dd,0xe8b97932,0xf17e3e61,0xed4e8652,0x3ee1c4a4,0xc2dd1499,0x597f8c0e,0xc0aaee17,0x6c168af3,0x15c4edb9,0xb39ae875,0x6563c7bf,0x20adb436,0xadfadb6f,0x9a042ac0,0xad55e8c9 +.long 0xb76da1f5,0x975a1ed8,0xa58acb94,0x10dfa466,0xac060282,0x8dd7f7e3,0x572a051e,0x6813e66a,0x350cb901,0xb4ccae1e,0x50cb7822,0xb653d656,0xdfab3b87,0x42484710,0x9b670fd0,0xcd7ee537 +.long 0x523b8bf6,0x0a50b12e,0x8f910c1b,0x8009eb5b,0x4a167588,0xf535af82,0xfb2a2abd,0x0f835f9c,0x2afceb62,0xf59b2931,0x169d383f,0xc797df2a,0x66ac02b0,0xeb3f5fb0,0xdaa2d0ca,0x029d4c6f +.long 0xafab4bc5,0xd4059bc1,0x56783247,0x833f5c6f,0x8d2d3605,0xb5346630,0xd34d8433,0x83387891,0xadd9419a,0xd973b30f,0xafe3fce8,0xbcca1099,0x0809aac6,0x08178315,0x540f0f11,0x01b7f21a +.long 0x909523c8,0x65c29219,0xa3a1c741,0xa62f648f,0x60c9e55a,0x88598d4f,0x0e4f347a,0xbce9141b,0x35f9b988,0x9af97d84,0x320475b6,0x0210da62,0x9191476c,0x3c076e22,0x44fc7834,0x7520dbd9 +.long 0xc1ab1bbd,0x6a6b2cfe,0xdc650938,0xef8a65be,0x805d7bc4,0x72855540,0xed11fdfd,0xda389396,0x74660876,0xa9d5bd36,0xb45dff35,0x11d67c54,0xa4f5da94,0x6af7d148,0xc0bbeb31,0xbb8d4c3f +.long 0xe0a1b12a,0x87a7ebd1,0x770ba95f,0x1e4ef88d,0xdc2ae9cb,0x8c33345c,0x01cc8403,0xcecf1276,0x1b39b80f,0x687c012e,0x35c33ba4,0xfd90d0ad,0x5c9661c2,0xa3ef5a67,0xe017429e,0x368fc88e +.long 0x196a2fa2,0xd30c6761,0xbd5b312e,0x931b9817,0x72f54a31,0xba01000c,0x66eaa541,0xa203d2c8,0x98939db3,0xf2abdee0,0x3e606c02,0xe37d6c2c,0x521ff643,0xf2921574,0xd7e2fca3,0x2781b3c4 +.long 0x7850ec06,0x664300b0,0x7d3a10cf,0xac5a38b9,0xe34ab39d,0x9233188d,0x5072cbb9,0xe77057e4,0xb59e78df,0xbcf0c042,0x1d97de52,0x4cfc91e8,0x3ee0ca4a,0x4661a26c,0xfb8507bc,0x5620a4c1 +.long 0x049f842c,0x4b44d4aa,0x1540e82b,0xceabc5d5,0x15c6f156,0x306710fd,0x63db1d72,0xbe5ae52b,0x334957f1,0x06f1e7e6,0x31144a70,0x57e388f0,0xdf96447b,0xfb69bb2f,0x73e38a12,0x0f78ebd3 +.long 0x2b7ce542,0xb8222605,0x7472bde1,0xe6d4ce99,0x09d2f4da,0x53e16ebe,0x53b92b2e,0x180ff42e,0x2c34a1c6,0xc59bcc02,0x422c46c2,0x3803d6f9,0x5c14a8a2,0x18aff74f,0x10a08b28,0x55aebf80 +.long 0x7135593f,0x66097d58,0x2be570cd,0x32e6eff7,0x2a8c860d,0x584e6a10,0xa2eb4163,0xcd185890,0x6d97e134,0x7ceae99d,0xdd8447ce,0xd42c6b70,0xb8c50273,0x59ddbb4a,0x3cf34e1e,0x03c612df +.long 0x04b6c5a0,0x84b9ca15,0x18f0e3a3,0x35216f39,0xbd986c00,0x3ec2d2bc,0xd19228fe,0x8bf546d9,0x4cd623c3,0xd1c655a4,0x502b8e5a,0x366ce718,0xeea0bfe7,0x2cfc84b4,0xcf443e8e,0xe01d5cee +.long 0x036520f8,0x8ec045d9,0x92d40e98,0xdfb3c3d1,0xcc559a04,0x0bac4cce,0x240ea6b1,0x35eccae5,0xf8a5a0ac,0x180b32db,0xeb699700,0x547972a5,0xca26bca0,0xa3765801,0xa647f25a,0x57e09d0e +.long 0x2fdd23cc,0xb956970e,0x5682e971,0xb80288bc,0x9ae86ebc,0xe6e6d91e,0x8c9f1939,0x0564c83f,0x39560368,0x551932a2,0x049c28e2,0xe893752b,0xa6a158c3,0x0b03cee5,0x04964263,0xe12d656b +.long 0x63e3bc1d,0x4b47554e,0x45044ff7,0xc719b6a2,0xe48daa07,0x4f24d30a,0xc8c1edc3,0xa3f37556,0x0700d360,0x9a47bf76,0x822ae4e2,0xbb1a1824,0x89f1fb4c,0x22e275a3,0x9968c5f5,0x72b1aa23 +.long 0xbe063f64,0xa75feaca,0xbce47a09,0x9b392f43,0x1ad07aca,0xd4241509,0x8d26cd0f,0x4b0c591b,0x92f1169a,0x2d42ddfd,0x4cbf2392,0x63aeb1ac,0x0691a2af,0x1de9e877,0xd98021da,0xebe79af7 +.long 0x40e50acf,0xcfdf2a4e,0xaf01d665,0xf0a98ad7,0x1831be1f,0xefb640bf,0x80e9ada0,0x6fe8bd2f,0x6cafbc91,0x94c103a1,0x8308e08c,0x170f8759,0x9780ff4f,0x5de2d2ab,0x45b201f2,0x666466bc +.long 0xf5b343bc,0x58af2010,0xf2f142fe,0x0f2e400a,0xa85f4bdf,0x3483bfde,0x03bfeaa9,0xf0b1d093,0xc7081603,0x2ea01b95,0x3dba1097,0xe943e4c9,0xb438f3a6,0x47be92ad,0xe5bf6636,0x00bb7742 +.long 0x824297b4,0x136b7083,0x5584455f,0x9d0e5580,0xf1c7d69e,0xab48cedc,0x2a256e76,0x53a9e481,0x65eb2413,0x0402b0e0,0x8fc407a7,0xdadbbb84,0x8d7f5492,0xa65cd5a4,0x74bae294,0x21d44293 +.long 0x3b5f1cc4,0x66917ce6,0xce872e62,0x37ae52ea,0x2905f244,0xbb087b72,0x1e6af74f,0x12077086,0x1058edea,0x4b644e49,0xb638ca1d,0x827510e3,0x6038591c,0x8cf2b704,0xfe635063,0xffc8b47a +.long 0x1b4d5e63,0x3ae220e6,0x9d961b4b,0xbd864742,0x9bd16bed,0x610c107e,0x1127147b,0x4270352a,0x64cfc50e,0x7d17ffe6,0x1e36cb42,0x50dee01a,0x35dc5f9a,0x068a7622,0xdf53f62c,0x9a08d536 +.long 0x6be5f7de,0x4ed71457,0xc2263c9e,0xd93006f8,0xcacacb36,0xe073694c,0x3ae118ab,0x2ff7a5b4,0xcd871236,0x3cce53f1,0xc2aa6d52,0xf156a39d,0xb198d76d,0x9cc5f271,0x81383d39,0xbc615b6f +.long 0xde3eee6b,0xa54538e8,0xab910d91,0x58c77538,0x58d278bd,0x31e5bdbc,0xb963acae,0x3cde4adf,0x5302169c,0xb1881fd2,0xa989ed8b,0x8ca60fa0,0xff96a0ee,0xa1999458,0xac6c283d,0xc1141f03 +.long 0x6dfafed3,0x7677408d,0x39661588,0x33a01653,0x0b726fa0,0x3c9c15ec,0x6c9b56da,0x090cfd93,0xa3c40af5,0xe34f4bae,0xd21129f1,0x3469eadb,0x1e207ce8,0xcc51674a,0xc83b1ef9,0x1e293b24 +.long 0x1e6c0bb4,0x17173d13,0x90776d35,0x19004695,0x6de6f922,0xe7980e34,0xf4dd9a22,0x873554cb,0xcbf18a51,0x0316c627,0x3032c081,0x4d93651b,0x3946834d,0x207f2771,0x30cdbf80,0x2c08d7b4 +.long 0x86df2a61,0x137a4fb4,0xecf7b4a2,0xa1ed9c07,0x7bd042ff,0xb2e460e2,0x5f62f5ec,0xb7f5e2fa,0xcc2423b7,0x7aa6ec6b,0xba63eea7,0x75ce0a7f,0xf250a6e1,0x67a45fb1,0xe53cdc9f,0x93bc919c +.long 0x871942df,0x9271f56f,0x7859ad66,0x2372ff6f,0x33cb1a78,0x5f4c2b96,0x5838aa83,0xe3e29101,0xe4e8110c,0xa7ed1611,0x330198ce,0x2a2d70d5,0x6720efe0,0xbdf132e8,0x66a471bf,0xe61a8962 +.long 0x825808bd,0x796d3a85,0x3fd6e902,0x51dc3cb7,0x916219d1,0x643c768a,0xa2ad7d32,0x36cd7685,0xb22922a4,0xe3db9d05,0xdba29660,0x6494c87e,0xbcd2ebc7,0xf0ac91df,0x45107f8d,0x4deb57a0 +.long 0xc3d12a73,0x42271f59,0xa5c2c51d,0x5f71687c,0x05797bcb,0xcb1f50c6,0xd6d34eb0,0x29ed0ed9,0x4683c2eb,0xe5fe5b47,0x97447c46,0x4956eeb5,0x71207167,0x5b163a43,0x0248c5ef,0x93fa2fed +.long 0x31f63950,0x67930af2,0x14caa2c9,0xa77797c1,0x27ac7e62,0x526e80ee,0x58b28aec,0xe1e6e626,0xb3c9fef0,0x636178b0,0x6d5f90be,0xaf7752e0,0xeece51cf,0x94ecaf18,0xca806e1f,0x2864d0ed +.long 0x97c69134,0x6de2e383,0xeb291293,0x5a42c316,0x6a60bae0,0xc7779219,0x6b7599d1,0xa24de346,0xb75d4941,0x49d374aa,0x2d501ff0,0x98900586,0xeb7974cf,0x9f16d40e,0xcdd8c115,0x1033860b +.long 0x2094cec3,0xb6c69ac8,0x403b770c,0x9976fb88,0x4859590d,0x1dea026c,0x8562d1fd,0xb6acbb46,0x44569d85,0x7cd6c461,0x97f0891d,0xc3190a36,0x48d5a17d,0xc6f53195,0xd749abc8,0x7d919966 +.long 0xdd1c8a20,0x65104837,0x2f683419,0x7e5410c8,0xbe94022e,0x958c3ca8,0x6145dac2,0x605c3197,0x01683d54,0x3fc07501,0x595b1234,0x1d7127c5,0x9481277f,0x10b8f87c,0xe65a1adb,0x677db2a8 +.long 0xddce3345,0xec2fccaa,0x012a4350,0x2a6811b7,0xac598bdc,0x96760ff1,0xd1bf4128,0x054d652a,0x92a21005,0x0a1151d4,0x33110fdf,0xad7f3971,0x1960100f,0x8c95928c,0x7bf03362,0x6c91c825 +.long 0xce309f06,0xc8c8b2a2,0xca27204b,0xfdb27b59,0x0848e32e,0xd223eaa5,0xe7bfaf1e,0xb93e4b2e,0x44aa3ded,0xc5308ae6,0xc015d573,0x317a666a,0x1a979707,0xc888ce23,0x0d5c4958,0xf141c1e6 +.long 0x61906373,0xb53b7de5,0xeb999595,0x858dbade,0xa59e5c36,0x8cbb47b2,0xdcf4e842,0x660318b3,0x12ba4b7a,0xbd161ccd,0xf8c8282a,0xf399daab,0xeeb2130d,0x1587633a,0xda38dd7d,0xa465311a +.long 0x64d3779b,0x5f75eec8,0xad64c171,0x3c5d0476,0x2a914428,0x87410371,0x90e2fc29,0x8096a891,0x23b3ebc2,0xd3d2ae9d,0xa580cfd6,0x90bdd6db,0xc5b01f6c,0x52dbb7f3,0xe102a2dc,0xe68eded4 +.long 0x99eb6df0,0x17785b77,0x7386b779,0x26c3cc51,0x6417a48e,0x345ed988,0x07d6ef31,0xe990b4e4,0x2586abba,0x0f456b7e,0x59c96e9a,0x239ca6a5,0xe2eb4206,0xe327459c,0xa002b90a,0x3a4c3313 +.long 0xf6a3f6fb,0x2a114806,0x85c251dd,0xad5cad2f,0xf5a784d3,0x92c1f613,0x349766d5,0xec7bfacf,0x3e23cb3b,0x04b3cd33,0xc5a64b2d,0x3979fe84,0x7e589106,0x192e2720,0xa15b527f,0xa60c43d1 +.long 0xbe7cf3a6,0x2dae9082,0xbc967274,0xcc86ba92,0xaea0a8a9,0xf28a2ce8,0x6ee988b3,0x404ca6d9,0x005921b8,0xfd7e9c5d,0x44e79bf9,0xf56297f1,0x0d75ddc2,0xa163b460,0xa1f2be87,0x30b23616 +.long 0xbfe50e2b,0x4b070d21,0xe1bfede1,0x7ef8cfd0,0x2aac4ae0,0xadba0011,0xb9ebd033,0x2a3e7d01,0xe38d9d1c,0x995277ec,0x9c5d2de3,0xb500249e,0xf13ca8c9,0x8912b820,0x877793af,0xc8798114 +.long 0xec3f1dec,0x19e6125d,0x911178da,0x07b1f040,0x904a6738,0xd93ededa,0x0bebedcd,0x55187a5a,0xeb329d41,0xf7d04722,0xf170b391,0xf449099e,0xca99f828,0xfd317a69,0x34a4976d,0x50c3db2b +.long 0x3757b392,0xe9ba7784,0xaa3ca05a,0x326caefd,0xf1e593d4,0x78e5293b,0x0d98fd13,0x7842a937,0x5f96b10d,0xe694bf96,0x06a8cd05,0x373a9df6,0xe8f0c7fc,0x997d1e51,0x63fd972e,0x1d019790 +.long 0x5499fb32,0x0064d858,0x77a8aeb7,0x7b67bad9,0x2d08eec5,0x1d3eb977,0xcbabae1d,0x5fc047a6,0xe54a64bb,0x0577d159,0xc43497e4,0x8862201b,0x2ce0608d,0xad6b4e28,0x0b167aac,0x8b687b7d +.long 0x8b2ecfa9,0x6ed4d367,0xa90c3c38,0x24dfe62d,0x3fe5c42b,0xa1862e10,0xd5732a9f,0x1ca73dca,0x76bb87ad,0x35f038b7,0xf242b81f,0x674976ab,0xb0fd90cd,0x4f2bde7e,0xa7fdf092,0x6efc172e +.long 0x92222f1f,0x3806b69b,0x6cf7ae70,0x5a2459ca,0xa85217ee,0x6789f69c,0xe3dc85ac,0x5f232b5e,0x48e9e516,0x660e3ec5,0x3197eb31,0x124b4e47,0xaafcca23,0x10a0cb13,0x8213224f,0x7bd63ba4 +.long 0x290a7f4f,0xaffad7cc,0x0286b461,0x6b409c9e,0xffa407af,0x58ab809f,0xc68ac073,0xc3122eed,0x4ef24d7e,0x17bf9e50,0x3e2a5811,0x5d929794,0x02902e01,0x519bc867,0x39c8a851,0x76bba5da +.long 0xda94951e,0xe9f9669c,0x66b8d418,0x4b6af58d,0x17d426a4,0xfa321074,0x9dde6027,0xc78e66a9,0x4a53b964,0x0516c083,0xff602330,0xfc659d38,0x58c5c897,0x0ab55e5c,0x838bc5df,0x985099b2 +.long 0xc52fc238,0x061d9efc,0x6ac1da3f,0x712b2728,0x9283fe08,0xfb658149,0xb8aaa2f7,0x4954ac94,0x7fb2e74f,0x85c0ada4,0xb89926b0,0xee8ba98e,0x23d1af5b,0xe4f9d37d,0xba9b015e,0x14ccdbf9 +.long 0x7bfe7178,0xb674481b,0x65405868,0x4e1debae,0xc48c867d,0x061b2821,0x513b30ea,0x69c15b35,0x36871088,0x3b4a1666,0x1220b1ff,0xe5e29f5d,0x233d9f4d,0x4b82bb35,0x18cdc675,0x4e076333 +.long 0xa3e6fced,0x0d53f5c7,0xf45fbdeb,0xe8cbbdd5,0x13339a70,0xf85c01df,0x142ceb81,0x0ff71880,0xbd70437a,0x4c4e8774,0xba0bda6a,0x5fb32891,0xf18bd26e,0x1cdbebd2,0x03a9d522,0x2f9526f1 +.long 0x92c4d684,0x40ce3051,0x7612efcd,0x8b04d725,0x6f9cae20,0xb9dcda36,0xf058856c,0x0edc4d24,0x85427900,0x64f2e6bf,0xdc09dfea,0x3de81295,0x379bf26c,0xd41b4487,0x6df135a9,0x50b62c6d +.long 0xc72dfe67,0xd4f8e3b4,0x90e19fdf,0xc416b0f6,0x4c13bd35,0x18b9098d,0x15b8cb9e,0xac11118a,0xf0062841,0xf598a318,0x89f356f4,0xbfe0602f,0x30177a0c,0x7ae3637e,0x61136537,0x34097747 +.long 0xd005832a,0x0db2fb5e,0x91042e4f,0x5f5efd3b,0xed70f8ca,0x8c4ffdc6,0xb52da9cc,0xe4645d0b,0xc9001d1f,0x9596f58b,0x4e117205,0x52c8f0bc,0xe398a084,0xfd4aa0d2,0x104f49de,0x815bfe3a +.long 0x23885e5f,0x97e5443f,0xe8433aab,0xf72f8f99,0xe4d4e604,0xbd00b154,0xe5e173ff,0xd0b35e6a,0x9164722d,0x57b2a048,0x88761ec8,0x3e3c665b,0x3da83832,0x6bdd1397,0x73dafe3b,0x3c8b1a1e +.long 0x54317cac,0x4497ace6,0x521771b3,0xbe600ab9,0xb0dfe8b8,0xb42e409e,0x3942310f,0x386a67d7,0x4431cc28,0x25548d8d,0x985dc524,0xa7cff142,0x93c4be32,0x4d60f5a1,0xd071c6e1,0x83ebd5c8 +.long 0xb1fd2b0b,0xba3a80a7,0x5bec33e8,0x9b3ad396,0x79743fb3,0xb3868d61,0xfdb462fa,0xcfd169fc,0x9ce0a6af,0xd3b499d7,0xe42d3ff8,0x55dc1cf1,0xc6c3e1b2,0x04fb9e6c,0x6f69a474,0x47e6961d +.long 0xe548b37b,0x54eb3acc,0x84d40549,0xb38e7542,0x7b341b4f,0x8c3daa51,0x690bf7fa,0x2f6928ec,0x86ce6c41,0x0496b323,0x10adadcd,0x01be1c55,0x4bb5faf9,0xc04e67e7,0xe15c9985,0x3cbaf678 +.long 0x50ca4247,0x8cd12145,0xe7dd30aa,0xba1aa47a,0xe58fee24,0x2f81ddf1,0xeec9b0e8,0x03452936,0x243aea96,0x8bdc3b81,0x15c3d0e5,0x9a2919af,0x10948361,0x9ea640ec,0x6e0bcccf,0x5ac86d5b +.long 0xc36cf440,0xf892d918,0xc939719c,0xaed3e837,0xc0218b64,0xb07b08d2,0xce9790dd,0x6f1bcbba,0x60919b8e,0x4a84d6ed,0x8ac1f9eb,0xd8900791,0x0dd5daef,0xf84941aa,0x67fd62c5,0xb22fe40a +.long 0x157f2db3,0x97e15ba2,0x8e28ca9c,0xbda2fc8f,0x37b9f454,0x5d050da4,0x2379d72e,0x3d57eb57,0xfb5ee997,0xe9b5eba2,0xe11538ca,0x01648ca2,0xf6327974,0x32bb76f6,0xff3f4bb7,0x338f14b8 +.long 0xd7ab9a2d,0x524d226a,0x7dfae958,0x9c00090d,0x8751d8c2,0x0ba5f539,0x3ab8262d,0x8afcbcdd,0xe99d043b,0x57392729,0xaebc943a,0xef51263b,0x20862935,0x9feace93,0xb06c817b,0x639efc03 +.long 0x66b4be7a,0x1fe054b3,0x84a37a1e,0x3f25a9de,0x78d75cd9,0xf39ef1ad,0x5062c1b5,0xd7b58f49,0xff563436,0x6f74f9a9,0xe8af51e7,0xf718ff29,0x15e97fec,0x5234d313,0x292f1c0a,0xb6a8e2b1 +.long 0x327720c1,0xa7f53aa8,0xba092cc8,0x956ca322,0x28746c4d,0x8f03d64a,0x66d0d392,0x51fe1782,0x3c832c80,0xd19b34db,0x6da2e3b4,0x60dccc5c,0x0a104ccc,0x245dd62e,0x620b21fd,0xa7ab1de1 +.long 0x3893d123,0xb293ae0b,0xb15ee71c,0xf7b75783,0x42a9468b,0x5aa3c614,0xdb15d744,0xd686123c,0xa7ab4116,0x8c616891,0xa4e6a459,0x6fcd72c8,0x77e5fad7,0xac219110,0x704fa46b,0xfb6a20e7 +.long 0x341d81dc,0xe839be7d,0x32148379,0xcddb6889,0xf7026ead,0xda6211a1,0xf4d1cc5e,0xf3b2575f,0xa7a73ae6,0x40cfc8f6,0x61d5b483,0x83879a5e,0x41a50ebc,0xc5acb1ed,0x3c07d8fa,0x59a60cc8 +.long 0xb1876262,0x1b73bdce,0x12af4ee9,0x2b0d79f0,0xd46e1d07,0x8bcf3b0b,0xe45d152f,0x17d6af9d,0x6d736451,0x73520461,0x56b0bf5a,0x43cbbd97,0xd5999b9d,0xb0833a5b,0xeb72e398,0x702614f0 +.long 0x59c3e9f8,0x0aadf01a,0xce6b3d16,0x40200e77,0xdeddafad,0xda22bdd3,0x310d72e1,0x76dedaf4,0x4bc2e88f,0x49ef807c,0x146dd5a5,0x6ba81291,0x7d8d59e9,0xa1a4077a,0x802db349,0x87b6a2e7 +.long 0x1b4e598e,0xd5679997,0x06fe4b1d,0xf499ef1f,0xfcb267c5,0x3978d3ae,0x235786d0,0xb582b557,0x1715cb07,0x32b3b2ca,0x8480241d,0x4c3de6a2,0xcb571ecd,0x63b5ffed,0xed2fe9a9,0xeaf53900 +.long 0xc3b81990,0xdec98d4a,0x9e0cc8fe,0x1cb83722,0xd2b427b9,0xfe0b0491,0xe983a66c,0x0f2386ac,0xb3291213,0x930c4d1e,0x59a62ae4,0xa2f82b2e,0xf93e89e3,0x77233853,0x11777c7f,0x7f8063ac +.long 0x59ad2877,0xff0eb567,0x9865c754,0x6f454642,0x236e9a84,0xe6fe701a,0x06e40fc3,0xc586ef16,0x24bafad9,0x3f62b6e0,0x64da906a,0xc8b42bd2,0xda3276a0,0xc98e1eb4,0x06cbf852,0x30d0e5fc +.long 0xe8b4dfd4,0x1b6b2ae1,0x8301cbac,0xd754d5c7,0x112a39ac,0x66097629,0x93ba4ab9,0xf86b5999,0x99f9d581,0x26c9dea7,0xc2fafeaa,0x0473b1a8,0x3b2505a5,0x1469af55,0xd6a43323,0x227d16d7 +.long 0xad3d97f9,0x3316f73c,0x1f137455,0x52bf3bb5,0x09954e7c,0x953eafeb,0xdd732411,0xa721dfed,0x141d4579,0xb4929821,0xaa3bd435,0x3411321c,0x17fa6015,0xafb355aa,0x18e42f0e,0xb4e7ef4a +.long 0x59371000,0x604ac97c,0x7f759c18,0xe1c48c70,0xa5db6b65,0x3f62ecc5,0x38a21495,0x0a78b173,0xbcc8ad94,0x6be1819d,0xd89c3400,0x70dc04f6,0xa6b4840a,0x462557b4,0x60bd21c0,0x544c6ade +.long 0x907a544b,0x6a00f24e,0x313da210,0xa7520dcb,0x11e4994b,0xfe939b75,0xbc275d70,0x918b6ba6,0x644be892,0xd3e5e0fc,0xfdaf6c42,0x707a9816,0xf15c13fe,0x60145567,0xe130a54a,0x4818ebaa +.long 0x58d2f767,0x28aad3ad,0xd7e7c773,0xdc5267fd,0xc3afcc98,0x4919cc88,0x2db8cd4b,0xaa2e6ab0,0xd0c63eaa,0xd46fec04,0x19ffa832,0xa1cb92c5,0xe43a631f,0x678dd178,0x3dc788b3,0xfb5ae1cd +.long 0x6e77de04,0x68b4fb90,0xf06dbb97,0x7992bcf0,0xc417c01d,0x896e6a13,0xb956be01,0x8d96332c,0x413aa2b9,0x902fc93a,0xfc98c8a5,0x99a4d915,0x565f1137,0x52c29407,0x21e4f281,0x4072690f +.long 0x02ff6072,0x36e607cf,0x8ad98cdc,0xa47d2ca9,0xf5f56609,0xbf471d1e,0xf264ada0,0xbcf86623,0xaa9e5cb6,0xb70c0687,0x17401c6c,0xc98124f2,0xd4a61435,0x8189635f,0xa9d98ea6,0xd28fb8af +.long 0x40c251f8,0xb9a67c2a,0xa2da44be,0x88cd5d87,0xe09b5423,0x437deb96,0x64287dc1,0x150467db,0xcdabb839,0xe161debb,0xf1839a3e,0xa79e9742,0x652d202b,0xbb8dd3c2,0xe9f97d96,0x7b3e67f7 +.long 0xb1cb6ac9,0x5aa5d78f,0xca1d0d45,0xffa13e8e,0x2ba5bf95,0x369295dd,0x39aff05e,0xd68bd1f8,0x26d783f2,0xaf0d86f9,0xfc3aafc1,0x543a59b3,0x7b7da97c,0x3fcf81d2,0xd25dee46,0xc990a056 +.long 0x519cce2c,0x3e6775b8,0xae13d863,0xfc9af71f,0x47c1605c,0x774a4a6f,0x2fd205e8,0x46ba4245,0xd3fd524d,0xa06feea4,0x6de1acc2,0x1e724641,0x334e2b42,0xf53816f1,0x922f0024,0x49e5918e +.long 0x65c7322d,0x439530b6,0xb3c1b3fb,0xcf12cc01,0x0172f685,0xc70b0186,0x1b58391d,0xb915ee22,0xa317db24,0x9afdf03b,0x17b8ffc4,0x87dec659,0xe4d3d050,0x7f46597b,0x006500e7,0x80a1c1ed +.long 0x78bf030e,0x84902a96,0x50560148,0xfb5e9c9a,0x63362426,0x6dae0a92,0xa9e30c40,0xdcaeecf4,0x518d0c6b,0xc0d887bb,0xcb985b9d,0x99181152,0xef7bc381,0xad186898,0x9ee46201,0x18168ffb +.long 0x2502753c,0x9a04cdaa,0x51407c41,0xbb279e26,0xf23564e5,0xeacb03aa,0x71e61016,0x18336582,0xeb809877,0x8684b8c4,0xea0e672e,0xb336e18d,0x34ee5867,0xefb601f0,0x1341cfd1,0x2733edbe +.long 0x26025c3c,0xb15e809a,0x9350df88,0xe6e981a6,0x8502fd8e,0x92376237,0x0c12be9b,0x4791f216,0x25f02425,0xb7256789,0x7a974443,0xec863194,0xfb41cc52,0x7c0ce882,0xf25c07f2,0xc266ff7e +.long 0x017025f3,0x3d4da8c3,0xfb9579b4,0xefcf628c,0x1f3716ec,0x5c4d0016,0x6801116e,0x9c27ebc4,0x1da1767e,0x5eba0ea1,0x47004c57,0xfe151452,0x8c2373b7,0x3ace6df6,0x5dbc37ac,0x75c3dffe +.long 0xddc925fc,0x3dc32a73,0x2f65ee0b,0xb679c841,0x451cbfeb,0x715a3295,0xf76e9a29,0xd9889768,0xb28ad247,0xec20ce7f,0x00894d79,0xe99146c4,0x9f5e3ea7,0x71457d7c,0x38030031,0x097b2662 +.long 0xcf9f82a8,0xdb7f6ae6,0x438f473a,0x319decb9,0x283856c3,0xa63ab386,0xb06a361b,0x13e3172f,0x7d5a006c,0x2959f8dc,0x75fba752,0x2dbc27c6,0x87c22c9e,0xc1227ab2,0x71a268b2,0x06f61f75 +.long 0x04779ce2,0x1b6bb971,0x0aadcb1d,0xaca83812,0xaeaab2d5,0x297ae0bc,0x5bfb9f13,0xa5c14ee7,0xf17a62c7,0xaa00c583,0x173759f6,0x39eb962c,0x86c9a88f,0x1eeba1d4,0xdf016c5e,0x0ab6c37a +.long 0xa28a0749,0xa2a147db,0xee519165,0x246c20d6,0xd3810715,0x5068d1b1,0x748160b9,0xb1e7018c,0xf380ff62,0x03f5b1fa,0xf3cb2c1e,0xef7fb1dd,0xfc91a7da,0xeab539a8,0xf3f9b561,0x83ddb707 +.long 0xfe7df7a4,0xc550e211,0x063f6f40,0xa7cd07f2,0x2976879c,0xb0de3635,0xe55741da,0xb5f83f85,0xf3d8ac3d,0x4ea9d25e,0x62819f02,0x6fe2066f,0xcef4a564,0x4ab2b9c2,0x5ffa2de3,0x1e155d96 +.long 0xc3a72d00,0x0eb0a19b,0x8513c31b,0x4037665b,0x04c64637,0x2fb2b6bf,0x08cdc639,0x45c34d6e,0xf01fd796,0x56f1e10f,0xfe3667b8,0x4dfb8101,0x9021d0c0,0xe0eda253,0x8a06c6ab,0x7a94e9ff +.long 0xbb9aa882,0x2d3bb0d9,0xec05fd10,0xea20e4e5,0x1a1ca64e,0xed7eeb5f,0xc6327cbd,0x2fa6b43c,0x3aa91121,0xb577e3cf,0x3a34079b,0x8c6bd5ea,0x60e02fc0,0xd7e5ba39,0x90141bf8,0xf16dd2c3 +.long 0x80101b98,0xb57276d9,0xb82f0f66,0x760883fd,0x4bc3eff3,0x89d7de75,0x5dc2ab40,0x03b60643,0xe05beeac,0xcd6e53df,0xbc3325cd,0xf2f1e862,0x774f03c3,0xdd0f7921,0x4552cc1b,0x97ca7221 +.long 0x1cd19f72,0x5a0d6afe,0xf183fbeb,0xa20915dc,0x832c403c,0x9fda4b40,0xbe425442,0x32738edd,0xb5eccf1a,0x469a1df6,0x28bbe1f0,0x4b5aff42,0x570dfc93,0x31359d7f,0xf0088628,0xa18be235 +.long 0xb00ed3a9,0xa5b30fba,0x73cdf8be,0x34c61374,0xabc56797,0x2c5c5f46,0xb82a8ae2,0x5cecf93d,0xa968fbf0,0x7d3dbe41,0x1a5c7f3d,0xd23d4583,0xc087a9c7,0xf28f69a0,0x474471ca,0xc2d75471 +.long 0x4eb732ec,0x36ec9f4a,0xb1ca6bed,0x6c943bbd,0xf2457892,0xd64535e1,0xf7e2ac06,0x8b84a8ea,0x2499dd5f,0xe0936cd3,0x0ed04e57,0x12053d7e,0xe4305d9d,0x4bdd0076,0x1f67f0a2,0x34a527b9 +.long 0x9cec46ea,0xe79a4af0,0x658b9bc7,0xb15347a1,0x35af2f75,0x6bd2796f,0x4051c435,0xac957990,0xc33a655d,0x2669dda3,0x88514aa3,0x5d503c2e,0x3753dd41,0xdfa11337,0x0b754f78,0x3f054673 +.long 0x496125bd,0xbf185677,0x3775006c,0xfb0023c8,0x3a037899,0xfa0f072f,0x0e4aea57,0x4222b6eb,0x7866d25a,0x3dde5e76,0x4837aa6f,0xb6eb04f8,0x2cf1cdb8,0x5315591a,0x2d4e683c,0x6dfb4f41 +.long 0x48ee1f3a,0x7e923ea4,0x05a2afd5,0x9604d9f7,0x40ea4948,0xbe1d4a33,0xb44cbd2f,0x5b45f1f4,0x4acc757e,0x5faf8376,0x63d68ff7,0xa7cf9ab8,0xdf0e404b,0x8ad62f69,0x12bdafdf,0xd65f33c2 +.long 0xa377b14e,0xc365de15,0x8e39f60c,0x6bf5463b,0x2ce68148,0x62030d2d,0xe6f843a8,0xd95867ef,0xef5ab017,0xd39a0244,0x4ab55d12,0x0bd2d8c1,0x41639169,0xc9503db3,0xf7660c8a,0x2d4e25b0 +.long 0xe224c5d7,0x760cb3b5,0x68616919,0xfa3baf8c,0x8d142552,0x9fbca113,0x7669ebf5,0x1ab18bf1,0x9bdf25dd,0x55e6f53e,0xcb6cd154,0x04cc0bf3,0x95e89080,0x595bef49,0x104a9ac1,0xfe9459a8 +.long 0xcce9bb32,0xad2d89ca,0xf7de8285,0xddea65e1,0xb351bd4b,0x62ed8c35,0x0c0e19a7,0x4150ff36,0x345f4e47,0x86e3c801,0x203a266c,0x3bf21f71,0x855b1f13,0x7ae110d4,0x07262517,0x5d6aaf6a +.long 0x813d28f1,0x1e0f12e1,0x7ad7a523,0x6000e11d,0xc744a17b,0xc7d8deef,0x14c05a00,0x1e990b48,0x93e976d5,0x68fddaee,0x46610d63,0x696241d1,0x893dda88,0xb204e7c3,0x6a3a6946,0x8bccfa65 +.long 0xc5cd1411,0xb59425b4,0xff3658b1,0x701b4042,0x4784cf93,0xe3e56bca,0x8fe68d60,0x27de5f15,0xf8d53f19,0x4ab9cfce,0xa40a730d,0xddb10311,0x4eee0a8a,0x6fa73cd1,0x5249719d,0xfd548748 +.long 0xa8123ef0,0x49d66316,0xe7f95438,0x73c32db4,0x0d9e7854,0x2e2ed209,0x9d9f0507,0xf98a9329,0x0c6aa20a,0xc5d33cf6,0x75279bb2,0x9a32ba14,0x774a7307,0x7e3202cb,0xe8c42dbd,0x64ed4bc4 +.long 0xd4caed0d,0xc20f1a06,0x171d22b3,0xb8021407,0xd13268d7,0xd426ca04,0x25f4d126,0x92377007,0x71f21a85,0x4204cbc3,0xf82369ba,0x18461b7a,0x3fc858f9,0xc0c07d31,0xe2bab569,0x5deb5a50 +.long 0xd5eea89e,0xd5959d46,0x08437f4b,0xfdff8424,0x3cfe254f,0xf21071e4,0x95468321,0x72417696,0x102cae3e,0x5d8288b9,0xf1965dff,0x2d143e3d,0xa078d847,0x00c9a376,0x26028731,0x6fc0da31 +.long 0xe45083a2,0xa2baeadf,0x5e5b4bcd,0x66bc7218,0xd04b8e7f,0x2c826442,0x6c4b586b,0xc19f5451,0x5b7eeed5,0x60182c49,0x7aa9dfa1,0xd9954ecd,0xc73884ad,0xa403a8ec,0x9bb39041,0x7fb17de2 +.long 0xabb020e8,0x694b64c5,0x19c4eec7,0x3d18c184,0x1c4793e5,0x9c4673ef,0x056092e6,0xc7b8aeb5,0xf0f8c16b,0x3aa1ca43,0xd679b2f6,0x224ed5ec,0x55a205c9,0x0d56eeaf,0x4b8e028b,0xbfe115ba +.long 0x3927f4fe,0x97e60849,0x759aa7c5,0xf91fbf94,0x6be90a51,0x985af769,0x78ccb823,0xc1277b78,0xe7a75952,0x395b656e,0x928da5f5,0x00df7de0,0x4ca4454f,0x09c23175,0x7aa2d3c1,0x4ec971f4 +.long 0xe75d9ccc,0x45c3c507,0x3dc90306,0x63b7be8a,0x5db44bdc,0x37e09c66,0x6841c6a2,0x50d60da1,0x08df1b12,0x6f9b65ee,0x7ff089df,0x38734879,0x3fe8013d,0x9c331a66,0x5f42fcc8,0x017f5de9 +.long 0xe8e57567,0x43077866,0xf9fcdb18,0xc9f781ce,0x9b12e174,0x38131dda,0x8a03752a,0x25d84aa3,0x4d0c0ce2,0x45e09e09,0x92bebba5,0x1564008b,0xa87284c7,0xf7e8ad31,0x97e7bbaa,0xb7c4b46c +.long 0x97acf4ec,0x3e22a7b3,0x5ea8b640,0x0426c400,0x4e969285,0x5e3295a6,0xa6a45670,0x22aabc59,0x5f5942bc,0xb929714c,0xfa3182ed,0x9a6168bd,0x104152ba,0x2216a665,0xb6926368,0x46908d03 +.long 0x5a1251fb,0xa9f5d874,0xc72725c7,0x967747a8,0x31ffe89e,0x195c33e5,0xe964935e,0x609d210f,0x2fe12227,0xcafd6ca8,0x0426469d,0xaf9b5b96,0x5693183c,0x2e9ee04c,0xc8146fef,0x1084a333 +.long 0xaed1d1f7,0x96649933,0x50563090,0x566eaff3,0xad2e39cf,0x345057f0,0x1f832124,0x148ff65b,0xcf94cf0d,0x042e89d4,0x520c58b3,0x319bec84,0x5361aa0d,0x2a267626,0x8fbc87ad,0xc86fa302 +.long 0x5c8b06d5,0xfc83d2ab,0xfe4eac46,0xb1a785a2,0x846f7779,0xb99315bc,0xef9ea505,0xcf31d816,0x15d7dc85,0x2391fe6a,0xb4016b33,0x2f132b04,0x181cb4c7,0x29547fe3,0x650155a1,0xdb66d8a6 +.long 0xadc1696f,0x6b66d7e1,0x0acd72d0,0x98ebe593,0xcc1b7435,0x65f24550,0xb4b9a5ec,0xce231393,0xdb067df9,0x234a22d4,0xcaff9b00,0x98dda095,0x6100c9c1,0x1bbc75a0,0x939cf695,0x1560a9c8 +.long 0x99e0925f,0xcf006d3e,0x6322375a,0x2dd74a96,0xb56af5ba,0xc58b446a,0xe0b9b4f1,0x50292683,0x1aeaffa3,0xe2c34cb4,0x9b9587c1,0x8b17203f,0xead1350c,0x6d559207,0xfb7f9604,0x2b66a215 +.long 0xfe51bf74,0x0850325e,0x5e460094,0x9c4f579e,0x76da2f25,0x5c87b92a,0x6febef33,0x889de4e0,0x646083ce,0x6900ec06,0xbfe12773,0xbe2a0335,0xc5344110,0xadd1da35,0xb802cd20,0x757568b7 +.long 0x00f7e6c8,0x75559779,0x0facd2f0,0x38e8b94f,0x03fde375,0xfea1f3af,0x75881dfc,0x5e11a1d8,0xc1e2f2ef,0xb3a6b02e,0xc605a6c5,0x193d2bbb,0x339a0b2d,0x325ffeee,0x9e0c8846,0x27b6a724 +.long 0xf1c367ca,0xe4050f1c,0xc90fbc7d,0x9bc85a9b,0xe1a11032,0xa373c4a2,0xad0393a9,0xb64232b7,0x167dad29,0xf5577eb0,0x94b78ab2,0x1604f301,0xe829348b,0x0baa94af,0x41654342,0x77fbd8dd +.long 0xb964e39a,0xdab50ea5,0xd0d3c76e,0xd4c29e3c,0x56d11964,0x80dae67c,0xe5ffcc2f,0x7307a8bf,0x91708c3b,0x65bbc1aa,0x28bf0eeb,0xa151e62c,0x6fa34db7,0x6cb53381,0xa29403a8,0x5139e05c +.long 0x94a7cd2e,0x6ff651b4,0x0699336c,0x5671ffd1,0x979a896a,0x6f5fd2cc,0xd8148cef,0x11e893a8,0x65cf7b10,0x988906a1,0xc50d8485,0x81b67178,0x8a35b3de,0x7c0deb35,0xc1d29799,0x423ac855 +.long 0xdac50b74,0xaf580d87,0x5869734c,0x28b2b89f,0x874e28fb,0x99a3b936,0x25f3f73a,0xbb2c9190,0x84a9d5b7,0x199f6918,0x7e770374,0x7ebe2325,0x0738efe2,0xf442e107,0xcf9082d2,0xcf9f3f56 +.long 0x09618708,0x719f69e1,0xc183f9b1,0xcc9e8364,0x366a21af,0xec203a95,0x068b141f,0x6aec5d6d,0x994f04e9,0xee2df78a,0x271245b0,0xb39ccae8,0x97e43f4f,0xb875a4a9,0xdb2cea98,0x507dfe11 +.long 0x489b03e9,0x4fbf81cb,0x6ec414fa,0xdb86ec5b,0xf51b3ae5,0xfad444f9,0x1914e3fe,0xca7d33d6,0x0ae6c4d0,0xa9c32f5c,0x73969568,0xa9ca1d1e,0x1aa7467e,0x98043c31,0xe21b5ac6,0xe832e75c +.long 0x5232123d,0x314b7aea,0x65ae86db,0x08307c8c,0xaa4668ed,0x06e7165c,0xb4d3ec39,0xb170458b,0xc19bb986,0x4d2e3ec6,0xae0304ed,0xc5f34846,0x6c9f9722,0x917695a0,0x4cab1c0a,0x6c7f7317 +.long 0x9d6d2e8b,0x6295940e,0x549f7c97,0xd318b8c1,0x97713885,0x22453204,0xa8a440fe,0x468d834b,0xbfba796e,0xd81fe5b2,0x6d71f116,0x152364db,0xb5b66e53,0xbb8c7c59,0x2641a192,0x0b12c61b +.long 0xfcf0a7fd,0x31f14802,0x5488b01e,0x42fd0789,0x9952b498,0x71d78d6d,0x07ac5201,0x8eb572d9,0x4d194a88,0xe0a2a44c,0xba017e66,0xd2b63fd9,0xf888aefc,0x78efc6c8,0x4a881a11,0xb76f6bda +.long 0xb46c2397,0x187f314b,0x5ded2819,0x004cf566,0x38764d34,0xa9ea5704,0x78084709,0xbba45217,0x1171121e,0x06474571,0xe7c9b671,0xad7b7eb1,0x730f7507,0xdacfbc40,0xc7ad7bd1,0x178cd8c6 +.long 0xb2a67238,0xbf0be101,0xaf9c14f2,0x3556d367,0xa5662075,0x104b7831,0x79d9e60a,0x58ca59bb,0xa569a73b,0x4bc45392,0x5698f6c9,0x517a52e8,0xaeadd755,0x85643da5,0x2a581b84,0x1aed0cd5 +.long 0x80af1372,0xb9b4ff84,0xf1ba5d1f,0x244c3113,0xf5f98d31,0x2a5dacbe,0x4375bc2a,0x2c3323e8,0x5594b1dd,0x17a3ab4a,0xceb4797e,0xa1928bfb,0xe4886a19,0xe83af245,0x72b5a74a,0x8979d546 +.long 0x19f9e967,0xa0f726bc,0xe8fbbf4e,0xd9d03152,0xb7707d40,0xcfd6f51d,0x63f6e6e0,0x633084d9,0x55667eaf,0xedcd9cdc,0x2e44d56f,0x73b7f92b,0x4e962b14,0xfb2e39b6,0xf671fcbf,0x7d408f6e +.long 0x164a89bb,0xcc634ddc,0x3ef3bd05,0x74a42bb2,0x428decbb,0x1280dbb2,0x402c8596,0x6103f6bb,0x355a5752,0xfa2bf581,0x00946674,0x562f96a8,0x6da0223b,0x4e4ca16d,0x28d3aa25,0xfe47819f +.long 0xf8dfcf8a,0x9eea3075,0x95669825,0xa284f0aa,0x867d3fd8,0xb3fca250,0x269d691e,0x20757b5f,0x93b8a5de,0xf2c24020,0xebc06da6,0xd3f93359,0xb2739c33,0x1178293e,0xbcd686e5,0xd2a3e770 +.long 0xcd941534,0xa76f49f4,0xe3c71c0e,0x0d37406b,0x3b97f7e3,0x172d9397,0xbd7fd0de,0xec17e239,0x6f496ba2,0xe3290551,0x36ad50e7,0x6a693172,0x83e7eff5,0xc4e539a2,0x18e1b4cf,0x752737e7 +.long 0x68af43ee,0xa2f7932c,0x703d00bd,0x5502468e,0x2fb061f5,0xe5dc978f,0x28c815ad,0xc9a1904a,0x470c56a4,0xd3af538d,0x193d8ced,0x159abc5f,0x20108ef3,0x2a37245f,0x223f7178,0xfa17081e +.long 0x10c8c0f5,0x27b0fb2b,0x40650547,0x2102c3ea,0x8ac3bfa7,0x594564df,0x509dad96,0x98102033,0xf1d18a13,0x6989643f,0xd7fc5af0,0x35eebd91,0xfaeaafd8,0x078d096a,0xdef3de98,0xb7a89341 +.long 0xecf2a73a,0x2a206e8d,0x8e551994,0x066a6397,0xb98d53a2,0x3a6a088a,0x2d1124aa,0x0ce7c67c,0x759a113c,0x48cec671,0x4f6f67fa,0xe3b373d3,0xfd36727b,0x5455d479,0xa13c0d81,0xe5a428ee +.long 0x1c86682b,0xb853dbc8,0xb8d02b2a,0xb78d2727,0x8ebc329a,0xaaf69bed,0x293b2148,0xdb6b40b3,0xb8c4961f,0xe42ea77d,0x20e5e0ab,0xb1a12f7c,0x79e8b05e,0xa0ec5274,0xfab60a80,0x68027391 +.long 0x16b1bd5e,0x6bfeea5f,0x4de30ad3,0xf957e420,0x6a353b9e,0xcbaf664e,0x26d14feb,0x5c873312,0xb65f57cb,0x4e87f98c,0x5e0cdd41,0xdb60a621,0xa6881440,0x67c16865,0x46ab52aa,0x1093ef1a +.long 0x3f4ece64,0xc095afb5,0x7604551a,0x6a6bb02e,0x0b26b8cd,0x55d44b4e,0xf971268a,0xe5f9a999,0x11a7de84,0xc08ec425,0xfda469dd,0x83568095,0x6c6c90a2,0x737bfba1,0xbe229831,0x1cb9c4a0 +.long 0xbb2eec64,0x93bccbba,0xda03adbe,0xa0c23b64,0xe0e86ac4,0x5f7aa00a,0xfc1401e6,0x470b941e,0x9df43574,0x5ad8d679,0x0f65d810,0x4ccfb8a9,0xaa7fbd81,0x1bce80e3,0x9508d20a,0x273291ad +.long 0x42a92806,0xf5c4b46b,0xa86ab44a,0x810684ec,0xca0bc9f8,0x4591640b,0x5c4b6054,0xb5efcdfc,0x6e9edd12,0x16fc8907,0xd4d792f9,0xe29d0b50,0x9b03116d,0xa45fd01c,0xc81765a4,0x85035235 +.long 0xb4b4b67c,0x1fe2a9b2,0xe8020604,0xc1d10df0,0xbc8058d8,0x9d64abfc,0x712a0fbb,0x8943b9b2,0x3b3def04,0x90eed914,0x4ce775ff,0x85ab3aa2,0x7bbc9040,0x605fd4ca,0xe2c75dfb,0x8b34a564 +.long 0x10358560,0x41ffc94a,0x9e5c28aa,0x2d8a5072,0x4cc7eb15,0xe915a0fc,0x8f6d0f5d,0xe9efab05,0xd19e9b91,0xdbab47a9,0x0276154c,0x8cfed745,0x2cfede0d,0x154357ae,0x19f5a4ef,0x520630df +.long 0xe382360f,0x25759f7c,0x88bf5857,0xb6db05c9,0x6c58d46c,0x2917d61d,0xfd20cb7a,0x14f8e491,0x11c20340,0xb68a727a,0xaf7ccbb6,0x0386f86f,0xfee09a20,0x5c8bc6cc,0xbb7eea35,0x7d76ff4a +.long 0xdb15be7a,0xa7bdebe7,0xd89f0302,0x67a08054,0xc1193364,0x56bf0ea9,0x62837ebe,0xc8244467,0x20d841b8,0x32bd8e8b,0xdbb8a54f,0x127a0548,0x63b20236,0x83dd4ca6,0x203491fa,0x87714718 +.long 0xaa8a5288,0x4dabcaaa,0xaf23a1c9,0x91cc0c8a,0x3f220e0c,0x34c72c6a,0x1232144a,0xbcc20bdf,0xa20ede1b,0x6e2f42da,0x74a00515,0xc441f00c,0x734b8c4b,0xbf46a5b6,0x7b56c9a4,0x57409503 +.long 0xe4585d45,0x9f735261,0x6734e642,0x9231faed,0xbe70ee6c,0x1158a176,0x7c3501bf,0x35f1068d,0xa2d26115,0x6beef900,0xef0afee3,0x649406f2,0xbc2420a1,0x3f43a60a,0xd5aee4ac,0x509002a7 +.long 0x3ff3571b,0xb46836a5,0x837927c1,0x24f98b78,0x4533c716,0x6254256a,0xd07ee196,0xf27abb0b,0x5c6d5bfd,0xd7cf64fc,0xf0cd7a77,0x6915c751,0x8798f534,0xd9f59012,0xf81d8b5f,0x772b0da8 +.long 0x2e03fa69,0x1244260c,0x3be1a374,0x36cf0e3a,0xef06b960,0x6e7c1633,0x671f90f6,0xa71a4c55,0x33c673db,0x7a941251,0x73e8c131,0xc0bea510,0xd4f6c734,0x61a8a699,0x341ed001,0x25e78c88 +.long 0x8e2f7d90,0x5c18acf8,0x77be32cd,0xfdbf33d7,0xd2eb5ee9,0x0a085cd7,0xb3201115,0x2d702cfb,0x85c88ce8,0xb6e0ebdb,0x1e01d617,0x23a3ce3c,0x567333ac,0x3041618e,0x157edb6b,0x9dd0fd8f +.long 0xb57872b8,0x27f74702,0x657d5fe1,0x2ef26b4f,0x57cf3d40,0x95426f0a,0x65a6067a,0x847e2ad1,0x09996a74,0xd474d9a0,0x2a26115c,0x16a56acd,0xd16f4d43,0x02a615c3,0xaadb85b7,0xcc3fc965 +.long 0xce07d1b0,0x386bda73,0x58ad4178,0xd82910c2,0xcd2617f4,0x124f82cf,0xef691770,0xcc2f5e8d,0xb8c30ccc,0x82702550,0x1a8e575a,0x7b856aea,0xb1ab9459,0xbb822fef,0xec24e38e,0x085928bc +.long 0xba8f4b4d,0x5d0402ec,0x00b4d58b,0xc07cd4ba,0x29227e7a,0x5d8dffd5,0x31bf386f,0x61d44d0c,0x135e6f4d,0xe486dc2b,0xe79410ef,0x680962eb,0xf10088b5,0xa61bd343,0xe2e28686,0x6aa76076 +.long 0x8fb98871,0x80463d11,0xbbc76aff,0xcb26f5c3,0xfbe03614,0xd4ab8edd,0xc0cf2dee,0xc8eb579b,0xc93bae41,0xcc004c15,0x3aeca3b2,0x46fbae5d,0x0f1e9ab1,0x671235cf,0x9ec285c1,0xadfba934 +.long 0xf216c980,0x88ded013,0xf79e0bc1,0xc8ac4fb8,0xfb97a237,0xa29b89c6,0x9922d8e7,0xb697b780,0xddb945b5,0x3142c639,0xe094c3a9,0x447b06c7,0x72266c90,0xcdcb3642,0xa9385046,0x633aad08 +.long 0xb57c6477,0xa36c936b,0xe94dbcc6,0x871f8b64,0xa591a67b,0x28d0fb62,0xc1d926f5,0x9d40e081,0xf2d84b5a,0x3111eaf6,0xa565b644,0x228993f9,0x2c83188b,0x0ccbf592,0x3df3e197,0xf87b30ab +.long 0x7642bca8,0xb8658b31,0x52800f17,0x1a032d7f,0x79bf9445,0x051dcae5,0x54a2e253,0xeba6b8ee,0xd4485692,0x5c8b9cad,0x8986e9be,0x84bda40e,0x2f0db448,0xd16d16a4,0xa14d4188,0x8ec80050 +.long 0x98fa7aaa,0xb2b26107,0xf073aa4e,0x41209ee4,0xf2d6b19b,0xf1570359,0xfc577caf,0xcbe6868c,0x32c04dd3,0x186c4bdc,0xcfeee397,0xa6c35fae,0xf086c0cf,0xb4a1b312,0xd9461fe2,0xe0a5ccc6 +.long 0x1536189f,0xc32278aa,0xba6df571,0x1126c55f,0xb194560e,0x0f71a602,0x324bd6e1,0x8b2d7405,0x3738be71,0x8481939e,0x1a4d97a9,0xb5090b1a,0xf05ba915,0x116c65a3,0xaae448aa,0x21863ad3 +.long 0xa7aae5d3,0xd24e2679,0x0de5c1c4,0x7076013d,0xbb05b629,0x2d50f8ba,0x6e66efbb,0x73c1abe2,0xf2488af7,0xefd4b422,0x663ba575,0xe4105d02,0x53a69457,0x7eb60a8b,0xc945973b,0x62210008 +.long 0x77a50ec6,0xfb255478,0x0a37a72c,0xbf0392f7,0x4be18e7a,0xa0a7a19c,0x25b1e0af,0x90d8ea16,0xef953f57,0x7582a293,0xbdc5465a,0x90a64d05,0xe2510717,0xca79c497,0x18cb641f,0x560dbb7c +.long 0x4b66abfb,0x1d8e3286,0x59030900,0xd26f52e5,0x5584941a,0x1ee3f643,0x569f5958,0x6d3b3730,0x4789dba5,0x9ff2a62f,0x72b5c9b7,0x91fcb815,0x6c8f9a0e,0xf446cb7d,0x39b7ecb5,0x48f625c1 +.long 0x1c6219b8,0xbabae801,0x28ac2f23,0xe7a562d9,0x26e20588,0xe1b48732,0x775af051,0x06ee1cad,0xfaff79f7,0xda29ae43,0x652ee9e0,0xc141a412,0x195f4bd0,0x1e127f6f,0x072f34f8,0x29c6ab4f +.long 0x30448112,0x7b7c1477,0xe4a38656,0x82b51af1,0x2f315010,0x2bf2028a,0x6ea88cd4,0xc9a4a01f,0x257e5818,0xf63e95d8,0xb4519b16,0xdd8efa10,0x0da910bf,0xed8973e0,0x5c0fe4a9,0xed49d077 +.long 0xb7caee1e,0xac3aac5e,0xa7f4da57,0x1033898d,0x5c6669b9,0x42145c0e,0xc1aa2aa0,0x42daa688,0x1a1d885a,0x629cc15c,0xf4b76817,0x25572ec0,0x9c8f8f28,0x8312e435,0x81965490,0x8107f8cd +.long 0x6fa6110c,0x516ff3a3,0xfb93561f,0x74fb1eb1,0x8457522b,0x6c0c9047,0x6bb8bdc6,0xcfd32104,0xcc80ad57,0x2d6884a2,0x86a9b637,0x7c27fc35,0xadf4e8cd,0x3461baed,0x617242f0,0x1d56251a +.long 0xc955bef4,0x0b80d209,0x06adb047,0xdf02cad2,0x5ec74fee,0xf0d7cb91,0x1111ba44,0xd2503375,0xdf53cb36,0x9671755e,0x3368551b,0x54dcb612,0xc8a025a4,0x66d69aac,0xe77ef445,0x6be946c6 +.long 0xa995e094,0x719946d1,0xe51e04d8,0x65e848f6,0x6a1e3113,0xe62f3300,0x501de503,0x1541c7c1,0xf4acfade,0x4daac9fa,0x44cd0b71,0x0e585897,0x0a51cd77,0x544fd869,0x0031016d,0x60fc20ed +.long 0xa4276867,0x58b404ec,0x34f34993,0x46f6c3cc,0xc636e5bd,0x477ca007,0x7c458b47,0x8018f5e5,0xe47b668f,0xa1202270,0xee14f203,0xcef48ccd,0x62ff9b4d,0x23f98bae,0xc589eddd,0x55acc035 +.long 0x64db4444,0x3fe712af,0xbecdd480,0x19e9d634,0xa930978a,0xe08bc047,0xa1280733,0x2dbf24ec,0x2cd706b2,0x3c0ae38c,0x359017b9,0x5b012a5b,0x72e0f5ae,0x3943c38c,0x57176fa3,0x786167ea +.long 0x594881dc,0xe5f9897d,0xcfb820c1,0x6b5efad8,0xd55018de,0xb2179093,0x0bac56ce,0x39ad7d32,0x2cfc0e81,0xb55122e0,0xf6d89daa,0x117c4661,0xcb64fa09,0x362d01e1,0x3e9c4ddd,0x6a309b4e +.long 0xabea49b1,0xfa979fb7,0x10e2c6c5,0xb4b1d27d,0x23afde7a,0xbd61c2c4,0x9786d358,0xeb6614f8,0x7f6f7459,0x4a5d816b,0x09360e7b,0xe431a44f,0xc309914c,0x8c27a032,0xcaede3d8,0xcea5d68a +.long 0x3a0a3f95,0x3668f665,0x7ceba27b,0x89369416,0xe4728fe9,0x89981fad,0x8a093562,0x7102c8a0,0x235d21c8,0xbb80310e,0xbefb7f7b,0x505e55d1,0x12958a67,0xa0a90811,0x4d851fef,0xd67e106a +.long 0x431dd80e,0xb84011a9,0x73306cd9,0xeb7c7cca,0xd1b3b730,0x20fadd29,0xfe37b3d3,0x83858b5b,0xb6251d5c,0xbf4cd193,0x1352d952,0x1cca1fd3,0x90fbc051,0xc66157a4,0x89b98636,0x7990a638 +.long 0x87dec0e1,0xe5aa692a,0xf7b39d00,0x010ded8d,0x54cfa0b5,0x7b1b80c8,0xa0f8ea28,0x66beb876,0x3476cd0e,0x50d7f531,0xb08d3949,0xa63d0e65,0x53479fc6,0x1a09eea9,0xf499e742,0x82ae9891 +.long 0x5ca7d866,0xab58b910,0x3adb3b34,0x582967e2,0xcceac0bc,0x89ae4447,0x7bf56af5,0x919c667c,0x60f5dcd7,0x9aec17b1,0xddcaadbc,0xec697b9f,0x463467f5,0x0b98f341,0xa967132f,0xb187f1f7 +.long 0x214aeb18,0x90fe7a1d,0x741432f7,0x1506af3c,0xe591a0c4,0xbb5565f9,0xb44f1bc3,0x10d41a77,0xa84bde96,0xa09d65e4,0xf20a6a1c,0x42f060d8,0xf27f9ce7,0x652a3bfd,0x3b3d739f,0xb6bdb65c +.long 0xec7fae9f,0xeb5ddcb6,0xefb66e5a,0x995f2714,0x69445d52,0xdee95d8e,0x09e27620,0x1b6c2d46,0x8129d716,0x32621c31,0x0958c1aa,0xb03909f1,0x1af4af63,0x8c468ef9,0xfba5cdf6,0x162c429f +.long 0x753b9371,0x2f682343,0x5f1f9cd7,0x29cab45a,0xb245db96,0x571623ab,0x3fd79999,0xc507db09,0xaf036c32,0x4e2ef652,0x05018e5c,0x86f0cc78,0xab8be350,0xc10a73d4,0x7e826327,0x6519b397 +.long 0x9c053df7,0xe8cb5eef,0xb300ea6f,0x8de25b37,0xc849cffb,0xdb03fa92,0xe84169bb,0x242e43a7,0xdd6f958e,0xe4fa51f4,0xf4445a8d,0x6925a77f,0xe90d8949,0xe6e72a50,0x2b1f6390,0xc66648e3 +.long 0x173e460c,0xb2ab1957,0x30704590,0x1bbbce75,0xdb1c7162,0xc0a90dbd,0x15cdd65d,0x505e399e,0x57797ab7,0x68434dcb,0x6a2ca8e8,0x60ad35ba,0xde3336c1,0x4bfdb1e0,0xd8b39015,0xbbef99eb +.long 0x1711ebec,0x6c3b96f3,0xce98fdc4,0x2da40f1f,0x57b4411f,0xb99774d3,0x15b65bb6,0x87c8bdf4,0xc2eef12d,0xda3a89e3,0x3c7471f3,0xde95bb9b,0xd812c594,0x600f225b,0x2b75a56b,0x54907c5d +.long 0x8db60e35,0xa93cc5f0,0xfa833319,0x743e3cd6,0xf81683c9,0x7dad5c41,0x9c34107e,0x70c1e7d9,0xa6be0907,0x0edc4a39,0x86d0b7d3,0x36d47035,0x272bfa60,0x8c76da03,0x0f08a414,0x0b4a07ea +.long 0x45c1dd53,0x699e4d29,0x231debb5,0xcadc5898,0xa77f00e0,0xdf49fcc7,0xa73e5a0e,0x93057bbf,0x027a4cd1,0x2f8b7ecd,0xc614011a,0x114734b3,0x67677c68,0xe7a01db7,0x7e273f4f,0x89d9be5e +.long 0x089808ef,0xd225cb2e,0xd59e4107,0xf1f7a27d,0x8211b9c9,0x53afc761,0xe6819159,0x0361bc67,0x7f071426,0x2a865d0b,0xe7072567,0x6a3c1810,0x0d6bcabd,0x3e3bca1e,0x408591bc,0xa1b02bc1 +.long 0x31fba239,0xe0deee59,0x98bd91d1,0xf47424d3,0x071a3c1d,0x0f8886f4,0xa819233b,0x3f7d41e8,0xcf6eb998,0x708623c2,0x609a287f,0x86bb49af,0x63c90762,0x942bb249,0x55a9654b,0x0ef6eea5 +.long 0x36f5defe,0x5f6d2d72,0x56f99176,0xfa9922dc,0xf78ce0c7,0x6c8c5ece,0xbe09b55e,0x7b44589d,0x9ea83770,0xe11b3bca,0x2ab71547,0xd7fa2c7f,0x2a1ddcc0,0x2a3dd6fa,0x5a7b7707,0x09acb430 +.long 0x649d4e57,0x4add4a2e,0x1917526e,0xcd53a2b0,0x20b44ac4,0xc5262330,0xbaa2c31d,0x4028746a,0x64291d4c,0x51318390,0xee5ad909,0xbf48f151,0x7b185681,0xcce57f59,0x4854d442,0x7c3ac1b0 +.long 0xc093c171,0x65587dc3,0x24f42b65,0xae7acb24,0x955996cb,0x5a338adb,0x6051f91b,0xc8e65675,0x28b8d0b1,0x66711fba,0xb6c10a90,0x15d74137,0x3a232a80,0x70cdd7eb,0x6191ed24,0xc9e2f07f +.long 0xf79588c0,0xa80d1db6,0xb55768cc,0xfa52fc69,0x7f54438a,0x0b4df1ae,0xf9b46a4f,0x0cadd1a7,0x1803dd6f,0xb40ea6b3,0x55eaae35,0x488e4fa5,0x382e4e16,0x9f047d55,0x2f6e0c98,0xc9b5b7e0 +.long 0x95762649,0x6b1bd2d3,0xc7aea3f6,0xa9604ee7,0x6dc6f896,0x3646ff27,0x2860bad1,0x9bf0e7f5,0x7cb44b92,0x2d92c821,0xaea9c182,0xa2f5ce63,0x9154a5fd,0xd0a2afb1,0x95801da6,0x482e474c +.long 0xb611c24b,0xc19972d0,0x60a8f351,0x1d468e65,0x7bcf6421,0xeb758069,0x88fbc491,0xec9dd0ee,0x956c2e32,0x5b59d2bf,0xdcddf94e,0x73dc6864,0xbcee7665,0xfd5e2321,0x5e9a06c4,0xa7b4f8ef +.long 0x7280f855,0xfba918dd,0x8baec688,0xbbaac260,0x33400f42,0xa3b3f00f,0x66f2e6e4,0x3d2dba29,0x98509375,0xb6f71a94,0xcea423cc,0x8f33031f,0x4807e6fb,0x009b8dd0,0x5cdb954c,0x5163cfe5 +.long 0xcf41c6e8,0x03cc8f17,0x037b925c,0xf1f03c2a,0x66d2427c,0xc39c19cc,0x7b6c18e4,0x823d24ba,0x901f0b4f,0x32ef9013,0xf8941c2e,0x684360f1,0x2c28092e,0x0ebaff52,0x256c932f,0x7891e4e3 +.long 0xac445e3d,0x51264319,0x8ea74381,0x553432e7,0x67e9c50a,0xe6eeaa69,0x62e628c7,0x27ced284,0x7a4afa57,0x3f96d375,0xe484c150,0xde0a14c3,0x38bd9923,0x364a24eb,0xe5177422,0x1df18da0 +.long 0xd8d38a9b,0x174e8f82,0xe7de1391,0x2e97c600,0xa1c175dd,0xc5709850,0x32ae5035,0x969041a0,0x76a2086b,0xcbfd533b,0xd7c2e8fe,0xd6bba71b,0x099dfb67,0xb2d58ee6,0x064a85d9,0x3a8b342d +.long 0x522f9be3,0x3bc07649,0xdf1f49a8,0x690c075b,0x3854ec42,0x80e1aee8,0x17689dc7,0x2a7dbf44,0x3faf4078,0xc004fc0e,0xdf11862c,0xb2f02e9e,0xa0a1b7b3,0xf10a5e0f,0x8936ec80,0x30aca623 +.long 0x02f40d9a,0xf83cbf05,0x2c318a4d,0x4681c468,0x0e9c2674,0x98575618,0x1847092e,0xbe79d046,0x78bd01e0,0xaf1e480a,0x72a51db9,0x6dd359e4,0xe3afbab6,0x62ce3821,0x17733199,0xc5cee5b6 +.long 0x6ffd9fbb,0xe08b30d4,0x36c610b7,0x6e5bc699,0x9ce262cf,0xf343cff2,0x68b914c1,0xca2e4e35,0x16de36c5,0x011d64c0,0x42e2b829,0xe0b10fdd,0x6685aaf8,0x78942981,0x230ede97,0xe7511708 +.long 0x3b922bf8,0x671ed8fc,0x4c29b133,0xe4d8c0a0,0x3b6e99c4,0x87eb1239,0x8793beba,0xaff3974c,0x2c18df9b,0x03749405,0x91007139,0xc5c3a293,0xe37a0b95,0x6a77234f,0xb661c96b,0x02c29a21 +.long 0x141ecf61,0xc3aaf1d6,0x3bb22f53,0x9195509e,0x22d51357,0x29597404,0x537bed60,0x1b083822,0xe07289f0,0xcd7d6e35,0x6dd86eff,0x1f94c48c,0xeb0f9cfa,0xc8bb1f82,0x1b2eb97d,0x9ee0b7e6 +.long 0x34d74e31,0x5a52fe2e,0x3bf79ab6,0xa352c310,0xabfeeb8f,0x97ff6c5a,0xf5c97305,0xbfbe8fef,0xa7904608,0xd6081ce6,0xc4fca249,0x1f812f3a,0xb9e5e200,0x9b24bc9a,0x38012ee8,0x91022c67 +.long 0x30a713a1,0xe83d9c5d,0x84ef0f93,0x4876e3f0,0xc1fbf928,0xc9777029,0xbce7d2a4,0xef7a6bb3,0xdfa2a659,0xb8067228,0xd877a48f,0xd5cd3398,0x025d0f3f,0xbea4fd8f,0x2eae7c2b,0xd67d2e35 +.long 0xcc5f4394,0x184de7d7,0x4536e142,0xb5551b5c,0xd34aa60a,0x2e89b212,0xf50051d5,0x14a96fea,0x0d12bb0b,0x4e21ef74,0x60b9677e,0xc522f020,0x2df7731d,0x8b12e467,0x7b326d31,0x39f80382 +.long 0x39024a94,0xdfb8630c,0x97319452,0xaacb96a8,0xeda3867c,0xd68a3961,0x77c4ffca,0x0c58e2b0,0x4da919fa,0x3d545d63,0xf15e2289,0xef79b69a,0x808bab10,0x54bc3d3d,0x45f82c37,0xc8ab3007 +.long 0x7c4a658a,0xc12738b6,0x40e72182,0xb3c47639,0x8798e44f,0x3b77be46,0x17a7f85f,0xdc047df2,0x5e59d92d,0x2439d4c5,0xe8e64d8d,0xcedca475,0x87ca9b16,0xa724cd0d,0xa5540dfe,0x35e4fd59 +.long 0xe4bcf6b1,0xf8c1ff18,0x295018fa,0x856d6285,0x3263c949,0x433f665c,0xa1f21409,0xa6a76dd6,0xcc7b4f79,0x17d32334,0x06720e4a,0xa1d03122,0x81d9bed5,0xadb6661d,0x11db15d1,0xf0d6fb02 +.long 0x1fb747d2,0x7fd11ad5,0x3033762b,0xab50f959,0xfbefaf5a,0x2a7e711b,0x3fef2bbf,0xc7393278,0x0df6f9be,0xe29fa244,0x71efd215,0x9092757b,0x4f3d6fd9,0xee60e311,0x0acfb78b,0x338542d4 +.long 0x38961a0f,0x44a23f08,0x986987ca,0x1426eade,0x4a863cc6,0x36e6ee2e,0x628b8b79,0x48059420,0x7396e1de,0x30303ad8,0x38c5aad1,0x5c8bdc48,0x5c8f5066,0x3e40e11f,0x8d246bbd,0xabd6e768 +.long 0x23330a01,0x68aa40bb,0xc34eafa0,0xd23f5ee4,0x5de02c21,0x3bbee315,0xd1d8dd06,0x18dd4397,0x122d7b44,0x3ba1939a,0xa33870d6,0xe6d3b40a,0x1c4fe3f8,0x8e620f70,0xd3a50cbf,0xf6bba1a5 +.long 0xcfc0aee0,0x4a78bde5,0xc08c50bd,0x847edc46,0xad63c9b2,0xbaa2439c,0x10fc2acb,0xceb4a728,0x26da033d,0xa419e40e,0x03e02683,0x6cc3889d,0xfdccf725,0x1cd28559,0x8d13d208,0x0fd7e0f1 +.long 0x1f0df9d4,0x01b9733b,0xa2b5e4f3,0x8cc2c5f3,0x3a304fd4,0x43053bfa,0x0a9f1aa7,0x8e87665c,0xd73dc965,0x087f29ec,0x3e9023db,0x15ace455,0x2bce28b4,0x2370e309,0xb6b1e84a,0xf9723442 +.long 0xb72d9f26,0xbeee662e,0xf0e47109,0xb19396de,0xe13289d0,0x85b1fa73,0x54e58e32,0x436cf77e,0xe990ef77,0x0ec833b3,0x1b11fc25,0x7373e3ed,0x0fc332ce,0xbe0eda87,0x8d7ea856,0xced04970 +.long 0x7e977ca0,0xf85ff785,0xdfdd5d2b,0xb66ee8da,0x905af461,0xf5e37950,0x966d487c,0x587b9090,0x32ba0127,0x6a198a1b,0x141615ac,0xa7720e07,0x996ef2f2,0xa23f3499,0x470bcb3d,0xef5f64b4 +.long 0x92b8c559,0xa526a962,0x69740a0f,0x0c14aac0,0xa6bdc0a5,0x0d41a9e3,0x9c48aef4,0x97d52106,0x3e7c253b,0xcf16bd30,0x47fdedc1,0xcc834b1a,0x373aab2e,0x7362c6e5,0xc5f590ff,0x264ed85e +.long 0x66d41870,0x7a46d9c0,0x4787ba09,0xa50c20b1,0xe3d44635,0x185e7e51,0x31e2d8dc,0xb3b3e080,0xa179e9d9,0xbed1e558,0x74a76781,0x2daa3f79,0x3a40864f,0x4372baf2,0x4fe75cb5,0x46900c54 +.long 0xf76765d0,0xb95f171e,0x95c87502,0x4ad726d2,0x4d7c99bd,0x2ec769da,0xc36cdfa8,0x5e2ddd19,0xa93e6dea,0xc22117fc,0x93771123,0xe8a2583b,0xfa08a3a2,0xbe2f6089,0x8f0e1112,0x4809d5ed +.long 0xda7a095e,0x3b414aa3,0x26f5aadd,0x9049acf1,0x6be8b84a,0x78d46a4d,0xb732b9b3,0xd66b1963,0xde6e9555,0x5c2ac2a0,0xb5bd8770,0xcf52d098,0x0fd28921,0x15a15fa6,0x8b27536d,0x56ccb81e +.long 0x9f4ccbb8,0x0f0d8ab8,0xdb221729,0xed5f44d2,0x00bed10c,0x43141988,0x1d735b8b,0xc94348a4,0x29ef8479,0x79f3e9c4,0x614c693f,0x4c13a4e3,0x8e143a14,0x32c9af56,0xe29ac5c4,0xbc517799 +.long 0x2774856f,0x05e17992,0x6c1bf55f,0x6e52fb05,0xe4f19e16,0xaeda4225,0xaf5ccb26,0x70f4728a,0xb2947f22,0x5d2118d1,0x281d6fb9,0xc827ea16,0x8cf0eabd,0x8412328d,0x03ef9dcf,0x45ee9fb2 +.long 0xbb937d63,0x8e700421,0xcc4b37a6,0xdf8ff2d5,0x5ced7b68,0xa4c0d5b2,0xc7308f59,0x6537c1ef,0x3b37f8e8,0x25ce6a26,0xdeebc6ce,0x170e9a9b,0x8728d72c,0xdd037952,0x850154bc,0x445b0e55 +.long 0x83a7337b,0x4b7d0e06,0xffecf249,0x1e3416d4,0x66a2b71f,0x24840eff,0xb37cc26d,0xd0d9a50a,0x6fe28ef7,0xe2198150,0x23324c7f,0x3cc5ef16,0x769b5263,0x220f3455,0xa10bf475,0xe2ade2f1 +.long 0x458d3671,0x28cd20fa,0x2dc4847b,0x1549722c,0x591941e3,0x6dd01e55,0x27128ccb,0x0e6fbcea,0x3bef0262,0xae1a1e6b,0x8f54e103,0xfa8c472c,0x72c052ec,0x7539c0a8,0x5a3490e9,0xd7b27369 +.long 0x71684349,0x143fe1f1,0x32e19b97,0x36b4722e,0x90980aff,0xdc059227,0x9e13d674,0x175c9c88,0x6e6bfdb1,0xa7de5b22,0xbedb4b46,0x5ea5b7b2,0xd34a6e44,0xd5570191,0xa24ff7e6,0xfcf60d2e +.long 0x677819e1,0x614a392d,0xaa5a29e8,0x7be74c7e,0x63c85f3f,0xab50fece,0x46cab337,0xaca2e2a9,0x122a6fe3,0x7f700388,0x882a04a8,0xdb69f703,0xcf7aed57,0x9a77935d,0x8d91c86f,0xdf16207c +.long 0x63ed9998,0x2fca49ab,0xa77ddf96,0xa3125c44,0x24344072,0x05dd8a86,0xfec3fb56,0xa023dda2,0x0c743032,0x421b41fc,0x5e438639,0x4f2120c1,0xc83c1b07,0xfb7cae51,0xcac2171a,0xb2370caa +.long 0x6cc820fb,0x2eb2d962,0xb85a44bf,0x59feee5c,0x5b6598f0,0x94620fca,0x7e314051,0x6b922cae,0x106bed4e,0xff8745ad,0xdfa1e9ab,0x546e71f5,0x1ec29487,0x935c1e48,0x4d936530,0x9509216c +.long 0x85c9a2db,0xc7ca3067,0x6be8606f,0xd6ae5152,0xe14c651d,0x09dbcae6,0x9bc32f96,0xc9536e23,0x34521b03,0xa90535a9,0x878756ff,0xf39c526c,0x8aedf03c,0x383172ec,0xefe0c034,0x20a8075e +.long 0x64026422,0xf22f9c62,0x24b9d076,0x8dd10780,0x3bef2950,0x944c742a,0x88a2b00b,0x55b9502e,0x86a09817,0xa59e14b4,0x47bb4071,0xa39dd3ac,0x3be0592f,0x55137f66,0xc9e63f5b,0x07fcafd4 +.long 0x346eb226,0x963652ee,0xec2facb7,0x7dfab085,0x691add26,0x273bf2b8,0xf2b46c44,0x30d74540,0xf2c2d065,0x05e8e73e,0xd42eeac9,0xff9b8a00,0x97209d22,0x2fcbd205,0xde14ea2c,0xeb740ffa +.long 0xa8aef518,0xc71ff913,0xfff4cfa2,0x7bfc74bb,0xb6b36048,0x1716680c,0x9ef79af1,0x121b2cce,0xa01eb3d3,0xbff3c836,0x5f79077b,0x50eb1c6a,0xa004bbcf,0xa48c32d6,0x7d64f61d,0x47a59316 +.long 0x93102016,0x6068147f,0x94d12576,0x12c5f654,0xc9bc6b91,0xefb071a7,0x6e23ea95,0x7c2da0c5,0xd4a1dd5d,0xf4fd45b6,0x9122b13c,0x3e7ad9b6,0xe6f57a48,0x342ca118,0x06f8288f,0x1c2e94a7 +.long 0x5a97d231,0x99e68f07,0x4d838758,0x7c80de97,0x05872727,0xbce0f5d0,0x19c4d016,0xbe5d95c2,0x9c2492ee,0x921d5cb1,0x404d6fb3,0x42192dc1,0x32f988d3,0x4c84dcd1,0xa17b8e85,0xde26d61f +.long 0x137c7408,0xc466dcb6,0x36a266da,0x9a38d7b6,0x83bebf1b,0x7ef5cb06,0x0fd014e3,0xe5cdcbbf,0xf65965a0,0x30aa376d,0xebb3e95e,0x60fe88c2,0x66ee6f20,0x33fd0b61,0x3f41f0a0,0x8827dcdb +.long 0x0c56c690,0xbf8a9d24,0xddb7641d,0x40265dad,0x3a6b662b,0x522b05bf,0xb1478c9b,0x466d1dfe,0x1484469b,0xaa616962,0x02df8f9f,0x0db60549,0x3cb8bf51,0xc37bca02,0x21371ce8,0x5effe346 +.long 0xff112c32,0xe8f65264,0x7b971fb2,0x8a9c736d,0x7b75080d,0xa4f19470,0x8839c59b,0xfc3f2c5a,0x5aeb49c2,0x1d6c777e,0xda1addfe,0xf3db034d,0x5535affc,0xd76fee5a,0xb92251fd,0x0853ac70 +.long 0x8b2a29d5,0x37e3d594,0x4de00ddb,0x28f1f457,0xf42c328b,0x8083c1b5,0xe493c73b,0xd8ef1d8f,0x41dc61bd,0x96fb6260,0x27ee2f8a,0xf74e8a9d,0x2c946a5d,0x7c605a80,0x3839ccfd,0xeed48d65 +.long 0x3a29467a,0x9894344f,0xc51eba6d,0xde81e949,0xa5e5c2f2,0xdaea066b,0x08c8c7b3,0x3fc8a614,0x06d0de9f,0x7adff88f,0x3b75ce0a,0xbbc11cf5,0xfbbc87d5,0x9fbb7acc,0x7badfde2,0xa1458e26 +.long 0xe039c256,0x1cb43668,0x7c17fd5d,0x5f26fb8b,0x79aa062b,0xeee426af,0xd78fbf04,0x072002d0,0xe84fb7e3,0x4c9ca237,0x0c82133d,0xb401d8a1,0x6d7e4181,0xaaa52592,0x73dbb152,0xe9430833 +.long 0xbe24319a,0xf92dda31,0xe095a8e7,0x03f7d28b,0x98782185,0xa52fe840,0x29c24dbc,0x276ddafe,0x1d7a64eb,0x80cd5496,0x7f1dbe42,0xe4360889,0x8438d2d5,0x2f81a877,0x85169036,0x7e4d52a8 +.long 0x1d59715d,0x19e3d5b1,0xd788983e,0xc7eaa762,0xabf1f248,0xe5a730b0,0xfae3fd83,0xfbab8084,0x53765b2f,0x65e50d21,0xfa127f3d,0xbdd4e083,0x397b1b10,0x9cf3c074,0xb1b59fd3,0x59f8090c +.long 0x615faa8f,0x7b15fd9d,0x968554ed,0x8fa1eb40,0x7aa44882,0x7bb4447e,0x029fff32,0x2bb2d0d1,0x6caa6d2f,0x075e2a64,0x22e7351b,0x8eb879de,0x9a506c62,0xbcd5624e,0xa87e24dc,0x218eaef0 +.long 0x44ddfa35,0x37e56847,0xdab3f747,0x9ccfc5c5,0x1ee96cf4,0x9ac1df3f,0x3b480b8f,0x0c0571a1,0x4b3a7b3c,0x2fbeb3d5,0x5dcdbb99,0x35c03669,0xb2415b3a,0x52a0f5dc,0x4413ed9a,0xd57759b4 +.long 0x3d30a2c5,0x1fe647d8,0xf78a81dc,0x0857f77e,0x131a4a9b,0x11d5a334,0x29d393f5,0xc0a94af9,0xdaa6ec1a,0xbc3a5c0b,0x88d2d7ed,0xba9fe493,0xbb614797,0xbb4335b4,0x72f83533,0x991c4d68 +.long 0xd2f01cb3,0x53258c28,0xd75db0b1,0x93d6eaa3,0xe87d0db4,0x419a2b0d,0xd8fe8493,0xa1e48f03,0xc508b23a,0xf747faf6,0x35d53549,0xf137571a,0xfcf9b838,0x9f5e58e2,0xa7fd3cf5,0xc7186cee +.long 0xe978a1d3,0x77b868ce,0x7ab92d04,0xe3a68b33,0x87a5b862,0x51029794,0x3a61d41d,0x5f0606c3,0x6f9326f1,0x2814be27,0xc6fe3c2e,0x2f521c14,0xacdf7351,0x17464d7d,0x777f7e44,0x10f5f9d3 +.long 0x269fb37d,0xce8e616b,0x7de62de5,0xaaf73804,0x4fdd4153,0xaba11175,0x3770b49b,0x515759ba,0xaa423a61,0x8b09ebf8,0xcd41fb92,0x592245a1,0x9b4c8936,0x1cba8ec1,0xaf36710e,0xa87e91e3 +.long 0x3d34a2e3,0x1fd84ce4,0xb43b5d61,0xee3759ce,0x619186c7,0x895bc78c,0xcbb9725a,0xf19c3809,0xde744b1f,0xc0be21aa,0x60f8056b,0xa7d222b0,0xb23efe11,0x74be6157,0x0cd68253,0x6fab2b4f +.long 0x4bf1d725,0xad33ea5f,0x4f6c950f,0x9c1d8ee2,0xa377af06,0x544ee78a,0x94a113e1,0x54f489bb,0x992fb7e8,0x8f11d634,0xa2a44347,0x0169a7aa,0x95020e00,0x1d49d4af,0xe08e120b,0x95945722 +.long 0xa4d32282,0xb6e33878,0x48020ae7,0xe36e029d,0x37a9b750,0xe05847fb,0xb29e3819,0xf876812c,0xd23a17f0,0x84ad138e,0xf0b3950e,0x6d7b4480,0x2fd67ae0,0xdfa8aef4,0x52333af6,0x8d3eea24 +.long 0xb15d5acc,0x0d052075,0xbd815bc4,0xc6d9c79f,0xdfa36cf2,0x8dcafd88,0x38aa9070,0x908ccbe2,0xba35afce,0x638722c4,0xfd6abf0b,0x5a3da8b0,0xc9c335c1,0x2dce252c,0x65aa799b,0x84e7f0de +.long 0xb99a72cb,0x2101a522,0x87618016,0x06de6e67,0xe6f3653e,0x5ff8c7cd,0xc7a6754a,0x0a821ab5,0x7cb0b5a2,0x7e3fa52b,0xc9048790,0xa7fb121c,0x06ce053a,0x1a725020,0x04e929b0,0xb490a31f +.long 0x62dd61ad,0xe17be47d,0x6be01371,0x781a961c,0xdae3cbba,0x1063bfd3,0x7f73c9ba,0x35647406,0x2736a129,0xf50e957b,0xed13f256,0xa6313702,0x3a19fcc5,0x9436ee65,0xe7a4c8b6,0xcf2bdb29 +.long 0xc5f95cd8,0xb06b1244,0xf4ab95f4,0xda8c8af0,0xb9e5836d,0x1bae59c2,0x3acffffc,0x07d51e7e,0xc2ccbcda,0x01e15e6a,0x8528c3e0,0x3bc1923f,0xa49fead4,0x43324577,0x2aa7a711,0x61a1b884 +.long 0x700230ef,0xf9a86e08,0xbd19adf8,0x0af585a1,0xf55ad8f2,0x7645f361,0x46c3614c,0x6e676223,0x4e774d3f,0x23cb257c,0xac102d1b,0x82a38513,0x7b126aa5,0x9bcddd88,0xeefd3ee4,0xe716998b +.long 0xfb167583,0x4239d571,0xd16c8f8a,0xdd011c78,0x69a27519,0x271c2895,0xd2d64b6a,0x9ce0a3b7,0xd5ec6738,0x8c977289,0x8840ef6b,0xa3b49f9a,0x9a453419,0x808c14c9,0x0cf0a2d5,0x5c00295b +.long 0x1d4bcc76,0x524414fb,0x459a88f1,0xb07691d2,0xf70d110f,0x77f43263,0xb7abf9f3,0x64ada5e0,0x5b544cf5,0xafd0f94e,0xfd2713fe,0xb4a13a15,0x250c74f4,0xb99b7d6e,0x20324e45,0x097f2f73 +.long 0xaffa8208,0x994b37d8,0xdc29aafc,0xc3c31b0b,0x7a3a607f,0x3da74651,0xfe6955d6,0xd8e1b8c1,0xc8418682,0x716e1815,0x7dc91d97,0x541d487f,0xc6996982,0x48a04669,0x83a6502e,0xf39cab15 +.long 0xe68db055,0x025801a0,0xba3338d5,0xf3569758,0xee2afa84,0xb0c8c0aa,0xfb6562d1,0x4f6985d3,0x132ed17a,0x351f1f15,0xc04365fe,0x510ed0b4,0xe5b1f066,0xa3f98138,0x32df03dc,0xbc9d95d6 +.long 0x19abd09e,0xa83ccf6e,0x4ff17edb,0x0b4097c1,0xd64a06ce,0x58a5c478,0x544a58fd,0x2ddcc3fd,0x9e8153b8,0xd449503d,0x7774179b,0x3324fd02,0xdbd9120c,0xaf5d47c8,0x34fa94db,0xeb860162 +.long 0x972f07f4,0x5817bdd1,0xd27bbceb,0xe5579e2e,0x5f11e5a6,0x86847a1f,0x7c3cf048,0xb39ed255,0xa2f62e55,0xe1076417,0x1bcf82a2,0x6b9ab38f,0x7aeb29f9,0x4bb7c319,0x17227a46,0xf6d17da3 +.long 0x0f968c00,0xab53ddbd,0x000c880b,0xa03da7ec,0x6a9ad24d,0x7b239624,0x01ec60d0,0x612c0401,0x109f5df1,0x70d10493,0x80af7550,0xfbda4030,0xc6b9a9b3,0x30b93f95,0x007d9418,0x0c74ec71 +.long 0x6edb951f,0x94175564,0x7f22c282,0x5f4a9d78,0xb38d1196,0xb7870895,0xa228ce7c,0xbc593df3,0x6af3641a,0xc78c5bd4,0x3d9b3dcc,0x7802200b,0x8be33304,0x0dc73f32,0x61ffb79a,0x847ed87d +.long 0x6d671192,0xf85c974e,0xde16f60f,0x1e14100a,0x95c38797,0x45cb0d5a,0x9b022da4,0x18923bba,0xbbe7e86e,0xef2be899,0x216067bf,0x4a1510ee,0x84d5ce3e,0xd98c8154,0xf92a2b90,0x1af777f0 +.long 0x4ef65724,0x9fbcb400,0x3c0ca6fe,0x3e04a4c9,0x55002994,0xfb3e2cb5,0x5363ecab,0x1f3a93c5,0x3923555b,0x1fe00efe,0x1e1751ea,0x744bedd9,0x6ab69357,0x3fb2db59,0xf5e6618b,0x8dbd7365 +.long 0xdf1ea40e,0x99d53099,0x57d61e64,0xb3f24a0b,0x596eb812,0xd088a198,0x5762940b,0x22c8361b,0xf9c0d95c,0x66f01f97,0x8e43cdae,0x88461172,0xb72b15c3,0x11599a7f,0x420d95cc,0x135a7536 +.long 0x5f7ae2f6,0x2dcdf0f7,0xd7fa6da2,0x15fc6e1d,0xd1d441b6,0x81ca829a,0x04a106b6,0x84c10cf8,0xa73fbbd0,0xa9b26c95,0x4d8f6ee8,0x7f24e0cb,0x1e25a043,0x48b45937,0x036f3dfe,0xf8a74fca +.long 0xc9f84296,0x1ed46585,0x3bc278b0,0x7fbaa8fb,0x6c4fcbd0,0xa8e96cd4,0x73b60a5f,0x940a1202,0x55a4aec8,0x34aae120,0xdbd742f0,0x550e9a74,0x228c68ab,0x794456d7,0xa4e25ec6,0x492f8868 +.long 0xb2d8f398,0x682915ad,0x5b84c953,0xf13b51cc,0x5bb917d6,0xcda90ab8,0x4ea3dee1,0x4b615560,0x0a52c1c8,0x578b4e85,0x20b75fc4,0xeab1a695,0xaa0bb3c6,0x60c14f3c,0xb8216094,0x220f448a +.long 0xb0e63d34,0x4fe7ee31,0xa9e54fab,0xf4600572,0xd5e7b5a4,0xc0493334,0x06d54831,0x8589fb92,0x6583553a,0xaa70f5cc,0xe25649e5,0x0879094a,0x10044652,0xcc904507,0x02541c4f,0xebb0696d +.long 0xb9718710,0x5a171fde,0xf374a9f5,0x38f1bed8,0xba39bdc1,0xc8c582e1,0x908cc0ce,0xfc457b0a,0x883841e2,0x9a187fd4,0x38725381,0x8ec25b39,0x96f84395,0x2553ed05,0x6f6c6897,0x095c7661 +.long 0x4bdc5610,0x917ac85c,0x179eb301,0xb2885fe4,0x8b78bdcc,0x5fc65547,0xe59e4699,0x4a9fc893,0x3ce299af,0xbb7ff0cd,0xadf38b20,0x195be9b3,0xd38ddb8f,0x6a929c87,0xb21a51b9,0x55fcc99c +.long 0x721a4593,0x2b695b4c,0x768eaac2,0xed1e9a15,0x7489f914,0xfb63d71c,0x78118910,0xf98ba31c,0x9b128eb4,0x80291373,0xd448af4a,0x7801214e,0x55418dd3,0xdbd2e22b,0xd3998242,0xeffb3c0d +.long 0xc7bf3827,0xdfa6077c,0x47f8238f,0xf2165bcb,0x8564d554,0xfe37cf68,0x0a81fb98,0xe5f825c4,0xffed4d6f,0x43cc4f67,0xb50a34b0,0xbc609578,0x5041faf1,0x8aa8fcf9,0x651773b6,0x5659f053 +.long 0x6044d63b,0xe87582c3,0x0cdb0ca0,0xa6089409,0xbfb2bcf6,0x8c993e0f,0x45985cfc,0xfc64a719,0x83dbedba,0x15c4da80,0x2be67df7,0x804ae112,0xa23defde,0xda4c9658,0x5156e0d3,0x12002ddd +.long 0x5dd21b96,0xe68eae89,0xcf44624d,0x8b99f28b,0x1ec8897a,0x0ae00808,0x6712f76e,0xdd0a9303,0x4e233de4,0x96237522,0x2b36a8a5,0x192445b1,0x023993d9,0xabf9ff74,0x2aad4a8f,0x21f37bf4 +.long 0xf8bd2bbd,0x340a4349,0x4868195d,0x1d902cd9,0xe5fdb6f1,0x3d27bbf1,0x124f9f1c,0x7a5ab088,0xf7a09e03,0xc466ab06,0x31f2c123,0x2f8a1977,0x041b6657,0xda355dc7,0x8ece2a7c,0xcb840d12 +.long 0x7db32675,0xb600ad9f,0x07a06f1b,0x78fea133,0xb31f6094,0x5d032269,0x83ec37aa,0x07753ef5,0x9c0bea78,0x03485aed,0xbc3f4524,0x41bb3989,0x697f726d,0x09403761,0xdf394820,0x6109beb3 +.long 0x3b6d1145,0x804111ea,0xa8582654,0xb6271ea9,0x24e66562,0x619615e6,0xd7b6ad9c,0xa2554945,0x99bfe35f,0xd9c4985e,0x7b51cdf6,0x9770ccc0,0x92881832,0x7c327013,0x286b26d1,0x8777d45f +.long 0xd847999d,0x9bbeda22,0xc3525d32,0x03aa33b6,0x28a959a1,0x4b7b96d4,0x31e5d234,0xbb3786e5,0x6961f247,0xaeb5d3ce,0x02f93d3f,0x20aa85af,0xd7a7ae4f,0x9cd1ad3d,0x781adaa8,0xbf6688f0 +.long 0x7469cead,0xb1b40e86,0x309fca48,0x1904c524,0x4b54bbc7,0x9b7312af,0x593affa2,0xbe24bf8f,0xbd98764b,0xbe5e0790,0xa26e299e,0xa0f45f17,0x6b8fe4c7,0x4af0d2c2,0x8ae8a3e6,0xef170db1 +.long 0x29e0ccc1,0x0e8d61a0,0x60ad36ca,0xcd53e87e,0xc8173822,0x328c6623,0xa496be55,0x7ee1767d,0x648945af,0x89f13259,0x25c8009c,0x9e45a5fd,0x1f61ab8c,0xaf2febd9,0x8a275385,0x43f6bc86 +.long 0xf2142e79,0x87792348,0xc6e6238a,0x17d89259,0x4a839d9b,0x7536d2f6,0x76a1fbdc,0x1f428fce,0x0db06dfe,0x1c109601,0x50a3a3cc,0xbfc16bc1,0x9b30f41b,0xf9cbd9ec,0x00138cce,0x5b5da0d6 +.long 0x56ef96a7,0xec1d0a48,0x982bf842,0xb47eb848,0xec3f700d,0x66deae32,0xaa1181e0,0x4e43c42c,0xd1a4aa2a,0xa1d72a31,0xc004f3ce,0x440d4668,0x45fe8a7a,0x0d6a2d3b,0xfb128365,0x820e52e2 +.long 0x25e51b09,0x29ac5fcf,0x2023d159,0x180cd2bf,0xa1ebf90e,0xa9892171,0x7c132181,0xf97c4c87,0xc03dbb7e,0x9f1dc724,0x018cbbe4,0xae043765,0x0767d153,0xfb0b2a36,0x249cbaeb,0xa8e2f4d6 +.long 0xd95ea168,0x172a5247,0x2970764a,0x1758fada,0x1d978169,0xac803a51,0xde77e01b,0x299cfe2e,0xb0a98927,0x652a1e17,0x20014495,0x2e26e1d1,0x7175b56a,0x7ae0af9f,0xd64b9f95,0xc2e22a80 +.long 0xd90a060a,0x4d0ff9fb,0xbaf38085,0x496a27db,0xda776bcf,0x32305401,0x725f209e,0xb8cdcef6,0x436a0bba,0x61ba0f37,0x76860049,0x263fa108,0xda3542cf,0x92beb98e,0xd5849538,0xa2d4d14a +.long 0x12e9a1bc,0x989b9d68,0x5f6e3268,0x61d9075c,0x99ace638,0x352c6aa9,0x920f43ff,0xde4e4a55,0xd673c017,0xe5e4144a,0x6f6e05ea,0x667417ae,0xdcd1bd56,0x613416ae,0x86693711,0x5eb36201 +.long 0x3a1aa914,0x2d7bc504,0x76dc5975,0x175a1299,0x3fc8125c,0xe900e0f2,0x11198875,0x569ef68c,0x63a113b4,0x9012db63,0x98835766,0xe3bd3f56,0x76412dea,0xa5c94a52,0xaa735e5c,0xad9e2a09 +.long 0x508b65e9,0x405a984c,0x6df1a0d1,0xbde4a1d1,0xdfba80da,0x1a9433a1,0x9440ad2e,0xe9192ff9,0x5099fe92,0x9f649696,0x0b27a54a,0x25ddb65c,0xc590da61,0x178279dd,0xfbde681a,0x5479a999 +.long 0x013fe162,0xd0e84e05,0x632d471b,0xbe11dc92,0xfc0e089f,0xdf0b0c45,0x4c144025,0x04fb15b0,0x13c99927,0xa61d5fc2,0x3de2eb35,0xa033e9e0,0xb8dacbb4,0xf8185d5c,0x8644549d,0x9a88e265 +.long 0x54671ff6,0xf717af62,0x5fa58603,0x4bd4241b,0xe67773c0,0x06fba40b,0x6a2847e9,0xc1d933d2,0x689e2c70,0xf4f5acf3,0x46bafd31,0x92aab0e7,0x3473f6e5,0x798d76aa,0x93141934,0xcc6641db +.long 0xd31e535e,0xcae27757,0x87c2ee11,0x04cc43b6,0x2e029ffa,0x8d1f9675,0xe4cc7a2c,0xc2150672,0x8d68b013,0x3b03c1e0,0xedf298f3,0xa9d6816f,0xa2804464,0x1bfbb529,0x5db22125,0x95a52fae +.long 0x0e1cb64e,0x55b32160,0x7e7fc9fe,0x004828f6,0x1bb0fb93,0x13394b82,0x35f1a920,0xb6293a2d,0xd145d2d9,0xde35ef21,0xbb8fa603,0xbe6225b3,0x32cf252d,0x00fc8f6b,0x117cf8c2,0xa28e52e6 +.long 0x4c371e6d,0x9d1dc89b,0x36ef0f28,0xcebe0675,0xa4292f81,0x5de05d09,0x353e3083,0xa8303593,0x7e37a9bb,0xa1715b0a,0x2b8faec3,0x8c56f61e,0x33c9b102,0x52507431,0xa44431f0,0x0130cefc +.long 0xbd865cfb,0x56039fa0,0xbc5f1dd7,0x4b03e578,0xbabe7224,0x40edf2e4,0x3a1988f6,0xc752496d,0x564beb6b,0xd1572d3b,0x39a1c608,0x0db1d110,0x16f60126,0x568d1934,0xf354af33,0x05ae9668 +.long 0xc92544f2,0x19de6d37,0xa35837d5,0xcc084353,0x1a514ece,0xcbb6869c,0x2e1d1066,0xb633e728,0x936c581c,0xf15dd69f,0x7439c4f9,0x96e7b8ce,0x2e448a5b,0x5e676f48,0xfd916bbb,0xb2ca7d5b +.long 0xf5024025,0xd55a2541,0xe4c2d937,0x47bc5769,0x0362189f,0x7d31b92a,0xef7816f9,0x83f3086e,0xb587579a,0xf9f46d94,0x30e76c5f,0xec2d22d8,0xb000ffcf,0x27d57461,0x364ffc2c,0xbb7e65f9 +.long 0x6652a220,0x7c7c9477,0xd696c981,0x61618f89,0x89effff3,0x5021701d,0x7c314163,0xf2c8ff8e,0x8efb4d3e,0x2da413ad,0xce176d95,0x937b5adf,0x2a67d51c,0x22867d34,0x18eb3ac9,0x262b9b10 +.long 0xc43ff28b,0x4e314fe4,0x6a664e7a,0x76476627,0xb7a565c2,0x3e90e40b,0xc1acf831,0x8588993a,0x8f938829,0xd7b501d6,0x3edd7d4c,0x996627ee,0x90cd34c7,0x37d44a62,0xf3833e8d,0xa8327499 +.long 0x4bf50353,0x2e18917d,0x556765fb,0x85dd726b,0x93d5ab66,0x54fe65d6,0x915c25fe,0x3ddbaced,0x12f22e85,0xa799d9a4,0x6d06f6bc,0xe2a24867,0x43ca1637,0xf4f1ee56,0x61ece30a,0xfda2828b +.long 0xa2dee7a6,0x758c1a3e,0x734b2284,0xdcde2f3c,0x4eaba6ad,0xaba445d2,0x76cee0a7,0x35aaf668,0xe5aa049a,0x7e0b04a9,0x91103e84,0xe74083ad,0x40afecc3,0xbeb183ce,0xea043f7a,0x6b89de9f +.long 0xfe67ba66,0x0e299d23,0x93cf2f34,0x91450760,0x97fcf913,0xf45b5ea9,0x8bd7ddda,0x5be00843,0xd53ff04d,0x358c3e05,0x5de91ef7,0xbf7ccdc3,0xb69ec1a0,0xad684dbf,0x801fd997,0x367e7cf2 +.long 0xb0dc8595,0x0ca1f3b7,0x9f1d9f2e,0x27de4608,0xbadd82a7,0x1af3bf39,0x65862448,0x79356a79,0xf5f9a052,0xc0602345,0x139a42f9,0x1a8b0f89,0x844d40fc,0xb53eee42,0x4e5b6368,0x93b0bfe5 +.long 0xc024789c,0x5434dd02,0x41b57bfc,0x90dca9ea,0x243398df,0x8aa898e2,0x894a94bb,0xf607c834,0xc2c99b76,0xbb07be97,0x18c29302,0x6576ba67,0xe703a88c,0x3d79efcc,0xb6a0d106,0xf259ced7 +.long 0xc8de610b,0x0f893a5d,0x67e223ce,0xe8c515fb,0x4ead6dc5,0x7774bfa6,0x925c728f,0x89d20f95,0x098583ce,0x7a1e0966,0x93f2a7d7,0xa2eedb94,0x4c304d4a,0x1b282097,0xc077282d,0x0842e3da +.long 0x3b9e2d7b,0xe4d972a3,0xc48218ff,0x7cc60b27,0x84149d91,0x8fc70838,0x2f461ecc,0x5c04346f,0x614650a9,0xebe9fdf2,0xc1f666ac,0x5e35b537,0x88babc83,0x645613d1,0xc5e1c93e,0x88cace3a +.long 0x3de92e23,0x209ca375,0x5fbbb6e3,0xccb03cc8,0xd7b1487e,0xccb90f03,0xc710941f,0xfa9c2a38,0x6724ceed,0x756c3823,0x192d0323,0x3a902258,0xea5e038e,0xb150e519,0xc7427591,0xdcba2865 +.long 0x78890732,0xe549237f,0x53fcb4d9,0xc443bef9,0xeb3480d6,0x9884d8a6,0x3048b186,0x8a35b6a1,0x65e9a90a,0xb4e44716,0x653006c0,0x45bf380d,0x4fe9ae3b,0x8f3f820d,0x979a3b71,0x244a35a0 +.long 0x74cd06ff,0xa1010e9d,0xaca3eeac,0x9c17c7df,0x8063aa2b,0x74c86cd3,0x734614ff,0x8595c4b3,0x990f62cc,0xa3de00ca,0xca0c3be5,0xd9bed213,0xdf8ce9f5,0x7886078a,0x5cd44444,0xddb27ce3 +.long 0x58926ddd,0xed374a66,0x908015b8,0x138b2d49,0xde1f7ab8,0x886c6579,0xc3020b7a,0x888b9aa0,0x3a96e355,0xd3ec034e,0xf30fbe9a,0xba65b0b8,0xff21367a,0x064c8e50,0x0b04b46e,0x1f508ea4 +.long 0x747c866c,0x98561a49,0x0518a062,0xbbb1e5fe,0xecdc3608,0x20ff4e8b,0x20184027,0x7f55cded,0xf38c85f0,0x8d73ec95,0x8bc3b8c3,0x5b589fdf,0x0f12b66f,0xbe95dd98,0x0e338e01,0xf5bd1a09 +.long 0x5e915918,0x65163ae5,0x86f8a46b,0x6158d6d9,0xeeebf99c,0x8466b538,0xbca477ef,0xca8761f6,0x9ebbc601,0xaf3449c2,0xe0c3ae2f,0xef3b0f41,0x5de63752,0xaa6c577d,0x64682a51,0xe9166601 +.long 0xfc15aa1e,0x5a3097be,0xb54b0745,0x40d12548,0x519a5f12,0x5bad4706,0xa439dee6,0xed03f717,0x4a02c499,0x0794bb6c,0xcffe71d2,0xf725083d,0x0f3adcaf,0x2cad7519,0x43729310,0x7f68ea1c +.long 0xb7ffd977,0xe747c8c7,0x80761a22,0xec104c35,0x5a3ffb83,0x8395ebaf,0xe4b63db7,0xfb3261f4,0xd883e544,0x53544960,0x8cc2eeb8,0x13520d70,0xd3d65f99,0x08f6337b,0x781cf95b,0x83997db2 +.long 0x0dbd2c01,0xce6ff106,0x1f9ce934,0x4f8eea6b,0x0e993921,0x546f7c4b,0x5e753fc7,0x6236a324,0xa16022e9,0x65a41f84,0x43d1dbb2,0x0c18d878,0x2d4cef9c,0x73c55640,0x70444c74,0xa0428108 +.long 0x9afdfb3c,0x68e4f15e,0x5bdfb6df,0x49a56143,0x5f823d97,0xa9bc1bd4,0xea111c2a,0xbceb5970,0xb269bbc4,0x366b455f,0xe9bc5d62,0x7cd85e1e,0x4f18b086,0xc743c41c,0x95294fb9,0xa4b40990 +.long 0x26ee8382,0x9c7c581d,0x359d638e,0xcf17dcc5,0xb728ae3d,0xee8273ab,0xf821f047,0x1d112926,0x50491a74,0x11498477,0xfde0dfb9,0x687fa761,0x7ea435ab,0x2c258022,0x91ce7e3f,0x6b8bdb94 +.long 0x3bf834aa,0x4c5b5dc9,0x4f6c7e4b,0x04371819,0x3736bcad,0xc284e00a,0x21ae8f8d,0x0d881118,0xf48c8e33,0xf9cf0f82,0xa1bf40db,0xa11fd075,0xdc2733e5,0xdceab0de,0x8e986bd7,0xc560a8b5 +.long 0x3929d097,0x48dd1fe2,0x92f188f1,0x3885b290,0xda6fcdac,0x0f2ae613,0xb662a46c,0x9054303e,0x0738042a,0xb6871e44,0xbdaf6449,0x98e6a977,0xd1c9df1b,0xd8bc0650,0x36e098f9,0xef3d6451 +.long 0xb6d72d28,0x03fbae82,0xf5d84080,0x77ca9db1,0xa58efc1c,0x8a112cff,0xc564cb4a,0x518d761c,0xf0d1b5ce,0x69b5740e,0xe9eb1785,0x717039cc,0x22f53382,0x3fe29f90,0x6bc7c95c,0x8e54ba56 +.long 0xf7f91d0f,0x9c806d8a,0xa82a5728,0x3b61b0f1,0x94d76754,0x4640032d,0x47d834c6,0x273eb5de,0x7b4e4d53,0x2988abf7,0xde401777,0xb7ce66bf,0x715071b3,0x9fba6b32,0xad3a1a98,0x82413c24 +.long 0xe0e8ad93,0x5b7fc8c4,0x5fab868d,0xb5679aee,0x2b3946f3,0xb1f9d2fa,0x5685b50a,0x458897dc,0x89d0caf3,0x1e98c930,0x78642e92,0x39564c5f,0x0dbdaf18,0x1b77729a,0x579e82e6,0xf9170722 +.long 0xe4515fa5,0x680c0317,0xfb0c790f,0xf85cff84,0x6d2e0765,0xc7a82aab,0x35c82b32,0x7446bca9,0x6d63184f,0x5de607aa,0x262803a6,0x7c1a46a8,0xaebe8035,0xd218313d,0xc73c51f8,0x92113ffd +.long 0x12e7e46c,0x4b38e083,0x56126bd5,0x69d0a37a,0x73c07e04,0xfb3f324b,0x8fda7267,0xa0c22f67,0x4d2c7d8f,0x8f2c0051,0xcbe2cae5,0xbc45ced3,0xa8f0f277,0xe1c6cf07,0x1eb99a98,0xbc392312 +.long 0x3cc8ac85,0x75537b7e,0xdd02753b,0x8d725f57,0xb737df2f,0xfd05ff64,0xf6d2531d,0x55fe8712,0x6ab6b01c,0x57ce04a9,0x7cd93724,0x69a02a89,0xcf86699b,0x4f82ac35,0x9cb4b232,0x8242d3ad +.long 0xd62105e5,0x713d0f65,0x2d29be61,0xbb222bfa,0x6cfbef09,0xf2f9a79e,0xd5d6782f,0xfc24d8d3,0xd4129967,0x5db77085,0xdc3c2a43,0xdb81c3cc,0x05d8d9a3,0x9d655fc0,0x54298026,0x3f5d057a +.long 0x88c54694,0x1157f56d,0x9b09573e,0xb26baba5,0x22adffd1,0x2cab03b0,0xdd69f383,0x60a412c8,0x54b25039,0xed76e98b,0x687e714d,0xd4ee67d3,0x7b00b594,0x87739648,0xc9ef709b,0xce419775 +.long 0x1c203a40,0x40f76f85,0xeafd8f91,0x30d352d6,0x95578dd2,0xaf196d3d,0x77cc3f3d,0xea4bb3d7,0xb98e782b,0x42a5bd03,0x0624920d,0xac958c40,0xfc56fcc8,0xb838134c,0x89572e5e,0x86ec4ccf +.long 0x9be47be0,0x69c43526,0xcb28fea1,0x323b7dd8,0x3a6c67e5,0xfa5538ba,0x1d378e46,0xef921d70,0x3c4b880e,0xf92961fc,0x98940a67,0x3f6f914e,0xfef0ff39,0xa990eb0a,0xf0eeff9c,0xa6c2920f +.long 0x51b8d9a3,0xca804166,0x0ffb0db1,0x42531bc9,0xaa82e7ce,0x72ce4718,0xdf574741,0x6e199913,0xd5d36946,0xd5f1b13d,0xf68f0194,0x8255dc65,0x8710d230,0xdc9df4cd,0x138c1988,0x3453c20f +.long 0x89a6ef01,0x9af98dc0,0x9857df85,0x4dbcc3f0,0x5c1ad924,0x34805601,0xd0493046,0x40448da5,0x4ee343e2,0xf629926d,0x90e8a301,0x6343f1bd,0x40815b3f,0xefc93491,0xde8f66fb,0xf882a423 +.long 0xe7db9f57,0x3a12d5f4,0x3c384c27,0x7dfba38a,0x6fc660b1,0x7a904bfd,0x2773b21c,0xeb6c5db3,0x1cdfe049,0xc350ee66,0x44540f29,0x9baac0ce,0xa5ec6aad,0xbc57b6ab,0x0a7c1baa,0x167ce8c3 +.long 0x53fb2b56,0xb23a03a5,0x4e057f78,0x6ce141e7,0x89e490d9,0x796525c3,0xa31a7e75,0x0bc95725,0x1220fd06,0x1ec56791,0x408b0bd6,0x716e3a3c,0xe8ebeba9,0x31cd6bf7,0xbee6b670,0xa7326ca6 +.long 0xcd090c43,0x3d9f851c,0xf12c3988,0x561e8f13,0x904b7be4,0x50490b6a,0x0410737b,0x61690ce1,0x0f009052,0x299e9a37,0xf026092e,0x258758f0,0xfdfcdc0f,0x9fa255f3,0xc0e1bcd2,0xdbc9fb1f +.long 0x24651840,0x35f9dd6e,0xa5c59abc,0xdca45a84,0xecca4938,0x103d396f,0xb97b3f29,0x4532da0a,0x1999a6bf,0xc4135ea5,0x5e6bf2ee,0x3aa9505a,0x3f5be093,0xf77cef06,0xa943152e,0x97d1a0f8 +.long 0x2e1c21dd,0x2cb0ebba,0x2c6797c4,0xf41b29fc,0xb300101f,0xc6e17321,0xd0d79a89,0x4422b0e9,0x92f1bfc4,0x49e4901c,0xe1e10ed9,0x06ab1f8f,0xdb2926b8,0x84d35577,0x356e8ec2,0xca349d39 +.long 0x343bf1a9,0x70b63d32,0x37d1a6b1,0x8fd3bd28,0x316865b4,0x0454879c,0xc458efa2,0xee959ff6,0x9706dc3f,0x0461dcf8,0x164e4b2e,0x737db0e2,0x2f8843c8,0x09262680,0x7745e6f6,0x54498bbc +.long 0xa29e24af,0x359473fa,0x70aa87a1,0xfcc3c454,0x00573ace,0xfd2c4bf5,0x28dd1965,0xb65b514e,0x2193e393,0xe46ae7cf,0xf5444d97,0x60e9a4e1,0x00ff38ed,0xe7594e96,0x0a0e0f02,0x43d84d2f +.long 0xee398a21,0x8b6db141,0xe3bcc5be,0xb88a56ae,0x373460ea,0x0a1aa52f,0x160bb19b,0x20da1a56,0x65bf0384,0xfb54999d,0x5d5a180e,0x71a14d24,0x21737b04,0xbc44db7b,0x01dd8e92,0xd84fcb18 +.long 0xfa44b479,0x80de937b,0x5c98fd4f,0x53505499,0x28f08727,0x1edb12ab,0xa5f3ef53,0x4c58b582,0x8327f246,0xbfb236d8,0x4d7df320,0xc3a3bfaa,0xb96024f2,0xecd96c59,0x7f4e0433,0xfc293a53 +.long 0x5acf6e10,0x5341352b,0xafe652c3,0xc50343fd,0x18577a7f,0x4af3792d,0xaf16823d,0xe1a4c617,0x33425d0a,0x9b26d0cd,0x9b7bc47f,0x306399ed,0x706bb20b,0x2a792f33,0x98111055,0x31219614 +.long 0x87f5d28b,0x864ec064,0x962277fd,0x11392d91,0xbb6aed5f,0xb5aa7942,0x47e799d9,0x080094dc,0x208ba19b,0x4afa588c,0x8512f284,0xd3e7570f,0x02f5799a,0xcbae64e6,0x514b9492,0xdeebe7ef +.long 0xe5c298ff,0x30300f98,0x3678361f,0x17f561be,0x98cb9a16,0xf52ff312,0x5562d490,0x6233c3bc,0x92e3a2cb,0x7bfa15a1,0xe6365119,0x961bcfd1,0x2c8c53b1,0x3bdd29bf,0x822844ba,0x739704df +.long 0x7e7b754b,0x7dacfb58,0xa806c9b9,0x23360791,0x23504452,0xe7eb88c9,0x852c1783,0x2983e996,0x958d881d,0xdd4ae529,0x262c7b3c,0x026bae03,0x960b52d1,0x3a6f9193,0x92696cfb,0xd0980f90 +.long 0xd5f30851,0x4c1f428c,0x2a4f6630,0x94dfed27,0xfc5d48a4,0x4df53772,0x933260ce,0xdd2d5a2f,0xd44cc7a5,0x574115bd,0xbd12533a,0x4ba6b20d,0x243057c9,0x30e93cb8,0x14de320e,0x794c486a +.long 0xf21496e4,0xe925d4ce,0xec696331,0xf951d198,0x3e8d812f,0x9810e2de,0x389294ab,0xd0a47259,0x0e3bab66,0x513ba2b5,0xabad306f,0x462caff5,0xaf04c49e,0xe2dc6d59,0xe0b84b0b,0x1aeb8750 +.long 0x2f7d0ca2,0xc034f12f,0xe06acf2f,0x6d2e8128,0x21facc2f,0x801f4f83,0xf40ef607,0xa1170c03,0x7805a99c,0xfe0a1d4f,0xcc26aba5,0xbde56a36,0x35531f40,0x5b1629d0,0x9afa6108,0xac212c2b +.long 0x15697be5,0x30a06bf3,0x2c63c7c1,0x6f0545dc,0x7ccdadaf,0x5d8cb842,0xac7015bb,0xd52e379b,0xf462c23e,0xc4f56147,0x46bc24b0,0xd44a4298,0xe2856d4f,0xbc73d23a,0x0832bcdf,0x61cedd8c +.long 0x99f241d7,0x60953556,0x001a349d,0xee4adbd7,0xaa89e491,0x0b35bf6a,0x136f7546,0x7f0076f4,0x9264da3d,0xd19a18ba,0x62a7a28b,0x6eb2d2cd,0x8761c971,0xcdba941f,0xa3be4a5d,0x1550518b +.long 0x57d0b70c,0xd0e8e2f0,0xcd133ba3,0xeea8612e,0x44416aec,0x814670f0,0x30775061,0x424db6c3,0x16213fd1,0xd96039d1,0x18a3478f,0xc61e7fa5,0xcb0c5021,0xa805bdcc,0x0cc616dd,0xbdd6f3a8 +.long 0x5d97f7e2,0x06009667,0xaf0bf4b6,0x31db0fc1,0x5491627a,0x23680ed4,0x7d741fb1,0xb99a3c66,0x36b1ff92,0xe9bb5f55,0x512b388d,0x29738577,0x50fcf263,0xdb8a2ce7,0x6c4f7b47,0x385346d4 +.long 0x31631f9e,0xbe86c5ef,0x03a57a29,0xbf91da21,0x7b23f821,0xc3b1f796,0x770db354,0x0f7d00d2,0xd8fe79da,0x8ffc6c3b,0xd525c996,0xcc5e8c40,0xcfff632a,0x4640991d,0x67112528,0x64d97e8c +.long 0x02f1cd1e,0xc232d973,0x1dd212a4,0xce87eacb,0xe69802f7,0x6e4c8c73,0x1fffddbd,0x12ef0290,0x1bcea6e2,0x941ec74e,0x3cb92cbb,0xd0b54024,0x7e8f9d05,0x809fb9d4,0xf2992aae,0x3bf16159 +.long 0xf8a7a838,0xad40f279,0x05615660,0x11aea631,0xa01f6fa1,0xbf52e6f1,0x3dc2aec9,0xef046995,0xd8080711,0x785dbec9,0x9fdedf76,0xe1aec60a,0xfa21c126,0xece797b5,0x05e52732,0xc66e898f +.long 0x08811fdb,0x39bb69c4,0x2fc7f082,0x8bfe1ef8,0x174f4138,0xc8e7a393,0xd58d1f98,0xfba8ad1d,0xbfd2fd5b,0xbc21d0ce,0x6ee60d61,0x0b839a82,0xafd22253,0xaacf7658,0xaae396b3,0xb526bed8 +.long 0x38564464,0xccc1bbc2,0x8c45bc73,0x9e3ff947,0x58188a78,0xcde9bca3,0xd73bf8f7,0x138b8ee0,0x4123c489,0x5c7e234c,0xfa643297,0x66e69368,0x39a15fa3,0x0629eeee,0xa9e2a927,0x95fab881 +.long 0xeafbb1e1,0xb2497007,0xe75b7a93,0xd75c9ce6,0xefb68d78,0x3558352d,0x223f6396,0xa2f26699,0xe469b17a,0xeb911ecf,0xe72d3ec2,0x62545779,0x82cb113f,0x8ea47de7,0x4e1fa98d,0xebe4b086 +.long 0x8cdfedb1,0xec2d5ed7,0xfe211a74,0xa535c077,0x11d244c5,0x9678109b,0xbe299a76,0xf17c8bfb,0xfb11fbc4,0xb651412e,0x94ab3f65,0xea0b5482,0x0cf78243,0xd8dffd95,0xce0361d4,0x2e719e57 +.long 0x304ddc5b,0x9007f085,0x4daba2ea,0x095e8c6d,0x3f9d28a9,0x5a33cdb4,0xe2283003,0x85b95cd8,0xb9744733,0xbcd6c819,0xfc7f5783,0x29c5f538,0xd59038e4,0x6c49b2fa,0x3bbe1018,0x68349cc1 +.long 0x21830ee5,0xcc490c1d,0xe9bfa297,0x36f9c4ee,0x48de1a94,0x58fd7294,0x4e8f2cdc,0xaadb13a8,0x81313dba,0x515eaaa0,0xc2152dd8,0xc76bb468,0xa653dbf8,0x357f8d75,0xb14ac143,0xe4d8c4d1 +.long 0xb055cb40,0xbdb8e675,0x977b5167,0x898f8e7b,0xb82fb863,0xecc65651,0x6d88f01f,0x56544814,0x263a75a9,0xb0928e95,0x1a22fcda,0xcfb6836f,0x3f3bd37c,0x651d14db,0xb6ad4664,0x1d3837fb +.long 0xff4f94ab,0x7c5fb538,0x6d7fb8f2,0x7243c712,0xa85c5287,0xef13d60c,0x4bb8dd1b,0x18cfb7c7,0x72908219,0x82f9bfe6,0x9d5144ab,0x35c4592b,0x9cf4b42f,0x52734f37,0x8c60ddc4,0x6bac55e7 +.long 0x94dea0f6,0xb5cd811e,0xe18cc1a3,0x259ecae4,0x15e660f8,0x6a0e836e,0x0e02bff2,0x6c639ea6,0x7e1026fd,0x8721b8cb,0x63261942,0x9e73b50b,0x77f01da3,0xb8c70974,0x8268f57f,0x1839e6a6 +.long 0x5150b805,0x571b9415,0xf92c7097,0x1892389e,0x4a084b95,0x8d69c18e,0xbe5b495c,0x7014c512,0x1b07523c,0x4780db36,0x2c1c64fa,0x2f6219ce,0x602c105a,0xc38b81b0,0x5dc8e360,0xab4f4f20 +.long 0xcf7d62d2,0x20d3c982,0x23ba8150,0x1f36e29d,0x92763f9e,0x48ae0bf0,0x1d3a7007,0x7a527e6b,0x581a85e3,0xb4a89097,0xdc158be5,0x1f1a520f,0x167d726e,0xf98db37d,0x1113e862,0x8802786e +.long 0x36f09ab0,0xefb2149e,0x4a10bb5b,0x03f163ca,0x06e20998,0xd0297045,0x1b5a3bab,0x56f0af00,0x70880e0d,0x7af4cfec,0xbe3d913f,0x7332a66f,0x7eceb4bd,0x32e6c84a,0x9c228f55,0xedc4a79a +.long 0xc55c4496,0xc37c7dd0,0x25bbabd2,0xa6a96357,0xadd7f363,0x5b7e63f2,0x2e73f1df,0x9dce3782,0xb2b91f71,0xe1e5a16a,0x5ba0163c,0xe4489823,0xf6e515ad,0xf2759c32,0x8615eecf,0xa5e2f1f8 +.long 0xabded551,0x74519be7,0xc8b74410,0x03d358b8,0x0e10d9a9,0x4d00b10b,0x28da52b7,0x6392b0b1,0x0b75c904,0x6744a298,0xa8f7f96c,0xc305b0ae,0x182cf932,0x042e421d,0x9e4636ca,0xf6fc5d50 +.long 0xd64cc78c,0x795847c9,0x9b6cb27b,0x6c50621b,0xdf8022ab,0x07099bf8,0xc04eda1d,0x48f862eb,0xe1603c16,0xd12732ed,0x5c9a9450,0x19a80e0f,0xb429b4fc,0xe2257f54,0x45460515,0x66d3b2c6 +.long 0x822e37be,0x6ca4f87e,0x253bda4e,0x73f237b4,0x41190aeb,0xf747f3a2,0x804cf284,0xf06fa36f,0xfc621c12,0x0a6bbb6e,0x40b80ec6,0x5d624b64,0x7ba556f3,0x4b072425,0x3e2d20a8,0x7fa0c354 +.long 0xe3229d41,0xe921fa31,0x94531bd4,0xa929c652,0xa6d38209,0x84156027,0x6bdb97bd,0xf3d69f73,0x16833631,0x8906d19a,0x03d51be3,0x68a34c2e,0x0e511cd8,0xcb59583b,0xfdc132a8,0x99ce6bfd +.long 0xffcdb463,0x3facdaaa,0x34a38b08,0x658bbc1a,0xf1a9078d,0x12a801f8,0x6ab855de,0x1567bcf9,0x3572359b,0xe08498e0,0x8659e68b,0xcf0353e5,0x7d23807c,0xbb86e9c8,0x2198e8a2,0xbc08728d +.long 0x453cadd6,0x8de2b7bc,0xbc0bc1f8,0x203900a7,0xa6abd3af,0xbcd86e47,0x8502effb,0x911cac12,0xec965469,0x2d550242,0x29e0017e,0x0e9f7692,0x65979885,0x633f078f,0x4cf751ef,0xfb87d449 +.long 0xfc25419a,0xe1790e4b,0x4bff3cfd,0x36467203,0x25b6e83f,0xc8db6386,0x6cad6fd2,0x6cc69f23,0x6bc68bb9,0x0219e45a,0x297f7334,0xe43d79b6,0x465dc97c,0x7d445368,0x2a0b949a,0x4b9eea32 +.long 0x6102d021,0x1b96c6ba,0x2f4461ea,0xeaafac78,0xc49f19a8,0xd4b85c41,0xcf538875,0x275c28e4,0xdd2e54e0,0x35451a9d,0x0605618b,0x6991adb5,0x7b36cd24,0x5b8b4bcd,0x56f37216,0x372a4f8c +.long 0xa6a5da60,0xc890bd73,0xdc4c9ff0,0x6f083da0,0xf0536e57,0xf4e14d94,0xaaec8243,0xf9ee1eda,0x8bdcf8e7,0x571241ec,0x0b041e26,0xa5db8271,0xe3fff040,0x9a0b9a99,0x7c271202,0xcaaf21dd +.long 0x4f0dd2e8,0xb4e2b2e1,0x0a377ac7,0xe77e7c4f,0x0d7a2198,0x69202c3f,0x28200eb8,0xf759b7ff,0xdcfe314e,0xc87526ed,0x53d5cf99,0xeb84c524,0x515138b6,0xb1b52ace,0x23fca3f4,0x5aa7ff8c +.long 0xb9791a26,0xff0b13c3,0xcdd58b16,0x960022da,0x57aad2de,0xdbd55c92,0xf30fe619,0x3baaaaa3,0x0d881efd,0x9a4b2346,0x46325e2a,0x506416c0,0x035c18d4,0x91381e76,0xf27817b0,0xb3bb68be +.long 0x5116f937,0x15bfb8bf,0xc1268943,0x7c64a586,0x8419a2c8,0x71e25cc3,0x8335f463,0x9fd6b0c4,0xe8ee0e0e,0x4bf0ba3c,0x298c21fa,0x6f6fba60,0xae66bee0,0x57d57b39,0x22672544,0x292d5130 +.long 0xbab093b3,0xf451105d,0x02839986,0x012f59b9,0x3474a89c,0x8a915802,0x2de03e97,0x048c919c,0x91071cd5,0xc476a2b5,0x034970a5,0x791ed89a,0xe1b7994b,0x89bd9042,0xa1057ffd,0x8eaf5179 +.long 0xd551ee10,0x6066e2a2,0x727e09a6,0x87a8f1d8,0x2c01148d,0x00d08bab,0x424f33fe,0x6da8e4f1,0xcf9a4e71,0x466d17f0,0x3bf5cb19,0xff502010,0xd062ecc0,0xdccf97d8,0x81d80ac4,0x80c0d9af +.long 0x033f2876,0xe87771d8,0x7d5cc3db,0xb0186ec6,0x3bc9bc1d,0x58e8bb80,0x6f6ef60e,0x4d1395cc,0x186244a0,0xa73c62d6,0x110a5b53,0x918e5f23,0x741b7eab,0xed4878ca,0xdbe03e51,0x3038d71a +.long 0xa93c3246,0x840204b7,0xa0b9b4cd,0x21ab6069,0xb1d64218,0xf5fa6e2b,0xf3d56191,0x1de6ad0e,0xff1929c7,0x570aaa88,0x640e87b5,0xc6df4c6b,0xc65f0ccc,0xde8a74f2,0xe6f6cc01,0x8b972fd5 +.long 0x0b846531,0x3fff36b6,0x10a5e475,0xba7e45e6,0x4145b6c5,0x84a1d10e,0x5e046d9d,0xf1f7f91a,0x44de90d7,0x0317a692,0xf199c15e,0x951a1d4a,0xc9d73deb,0x91f78046,0xfab8224f,0x74c82828 +.long 0xe7560b90,0xaa6778fc,0xa7e824ce,0xb4073e61,0xd642eba8,0xff0d693c,0x5dccef38,0x7ce2e57a,0x1df1ad46,0x89c2c789,0x098346fd,0x83a06922,0xda2fc177,0x2d715d72,0x85b6cf1d,0x7b6dd71d +.long 0x73fa9cb0,0xc60a6d0a,0x328bf5a9,0xedd3992e,0x832c8c82,0xc380ddd0,0xa2a0bf50,0xd182d410,0xd9a528db,0x7d9d7438,0xcaf53994,0xe8b1a0e9,0x0e19987c,0xddd6e5fe,0x190b059d,0xacb8df03 +.long 0x8300129f,0x53703a32,0x68c43bfd,0x1f637662,0x00e54051,0xbcbd1913,0x7bf5a8c5,0x812fcc62,0x29fb85da,0x3f969d5f,0x694759e8,0x72f4e00a,0x790726b7,0x426b6e52,0x3bdbb209,0x617bbc87 +.long 0x97aee317,0x511f8bb9,0xe81536a8,0x812a4096,0x3ac09b9b,0x137dfe59,0xba8c9a7a,0x0682238f,0xaeccb4bd,0x7072ead6,0x692ba633,0x6a34e9aa,0x6fff9d33,0xc82eaec2,0x1d4d2b62,0xfb753512 +.long 0x1d7aadab,0x1a0445ff,0xd5f6a67c,0x65d38260,0x91cfb26f,0x6e62fb08,0x5c7d91d6,0xef1e0fa5,0x33db72cd,0x47e7c7ba,0xfa7c74b2,0x017cbc09,0xf50a503c,0x3c931590,0x616baa42,0xcac54f60 +.long 0xb2369f0f,0x9b6cd380,0x23c76151,0x97d3a70d,0x9862a9c6,0x5f9dd6fc,0x12312f51,0x044c4ab2,0x834a2ddc,0x035ea0fd,0xcc7b826d,0x49e6b862,0x62fce490,0xb03d6883,0xb37e36e9,0x62f2497a +.long 0xc6458293,0x04b005b6,0xe8d10af7,0x36bb5276,0x8ee617b8,0xacf2dc13,0xb004b3d4,0x470d2d35,0xfeeb1b77,0x06790832,0x85657f9c,0x2bb75c39,0xc0f60004,0xd70bd4ed,0x219b018b,0xfe797ecc +.long 0x753aebcc,0x9b5bec2a,0xc939eca5,0xdaf9f3dc,0xd095ad09,0xd6bc6833,0xdaa4d2fc,0x98abdd51,0x8d168be5,0xd9840a31,0x2325a23c,0xcf7c10e0,0x7e6ecfaf,0xa5c02aa0,0xb5bfdf18,0x2462e7e6 +.long 0xa0cc3f12,0xab2d8a8b,0xbc672a29,0x68dd485d,0x596f2cd3,0x72039752,0xa0cf3d8d,0x5d3eea67,0xe6602671,0x810a1a81,0x14026c0c,0x8f144a40,0x76b50f85,0xbc753a6d,0x645cd4a4,0xc4dc21e8 +.long 0x521d0378,0xc5262dea,0x05011c6f,0x802b8e0e,0x0b4c19ea,0x1ba19cbb,0xebf0aaec,0x21db64b5,0x70342f9d,0x1f394ee9,0x1bc44a14,0x93a10aee,0x3efd0baa,0xa7eed31b,0x1d154e65,0x6e7c824e +.long 0x9966e7ee,0xee23fa81,0x05b7920d,0x64ec4aa8,0x2d90aad4,0x2d44462d,0xdf277ad5,0xf44dd195,0xbb46b6a1,0x8d6471f1,0xfd885090,0x1e65d313,0x13a977b4,0x33a800f5,0x0797e1ef,0xaca9d721 +.long 0xfcff6a17,0x9a5a85a0,0x1eca7cee,0x9970a3f3,0xc9504be3,0xbb9f0d6b,0xadd24ee2,0xe0c504be,0x77fcc2f4,0x7e09d956,0x65bb5fc4,0xef1a5227,0x8b9286aa,0x145d4fb1,0x6649028b,0x66fd0c5d +.long 0x1bf4581c,0x98857ceb,0xaca7b166,0xe635e186,0x659722ac,0x278ddd22,0x1db68007,0xa0903c4c,0x48f21402,0x366e4589,0xb96abda2,0x31b49c14,0xe0403190,0x329c4b09,0xd29f43fe,0x97197ca3 +.long 0x274983d8,0x8073dd1e,0x55717c8f,0xda1a3bde,0x0361f9d1,0xfd3d4da2,0x4c7de1ce,0x1332d081,0xaa6d0e10,0x9b7ef7a3,0xf54f1c4a,0x17db2e73,0x4cd35567,0xaf3dffae,0xe56f4e71,0xaaa2f406 +.long 0x7ace3fc7,0x8966759e,0x45a8d8c6,0x9594eacf,0x91834e0e,0x8de3bd8b,0x548c0421,0xafe4ca53,0xe6ee81c6,0xfdd7e856,0x6b891a3a,0x8f671beb,0xfae63829,0xf7a58f2b,0x9c11ac9f,0x9ab186fb +.long 0x10b5be76,0x8d6eb369,0xfb040bcd,0x046b7739,0xcb73de88,0xccb4529f,0xcf26be03,0x1df0fefc,0xbcfcd027,0xad7757a6,0xbb3165ca,0xa8786c75,0x7e99a4d9,0xe9db1e34,0xb06c504b,0x99ee86df +.long 0xc15c9f0a,0x5b7c2ddd,0x4295989e,0xdf87a734,0x03d08fda,0x59ece47c,0xad5fc702,0xb074d3dd,0x51a03776,0x20407903,0x2a608007,0x2bb1f77b,0xe1153185,0x25c58f4f,0x766e6447,0xe6df62f6 +.long 0xed51275a,0xefb3d1be,0x2f0f483f,0x5de47dc7,0x97c2bedf,0x7932d98e,0x0219f8a1,0xd5c11927,0xa73a294e,0x9d751200,0x9dc20172,0x5f88434a,0xa26f506a,0xd28d9fd3,0x9d1dcd48,0xa890cd31 +.long 0x70f4d3b4,0x0aebaec1,0x0ffc8d00,0xfd1a1369,0x57d57838,0xb9d9c240,0x68bac361,0x45929d26,0x25b15ca6,0x5a2cd060,0x6e474446,0x4b3c83e1,0xee1e5134,0x1aac7578,0xc91e2f41,0xa418f5d6 +.long 0x213ed68b,0x6936fc8a,0x510a5224,0x860ae7ed,0xdef09b53,0x63660335,0xcd79c98d,0x641b2897,0x01110f35,0x29bd38e1,0x648b1937,0x79c26f42,0x9d9164f4,0x64dae519,0x0265c273,0xd85a2310 +.long 0x4b07e2b1,0x7173dd5d,0x8d9ea221,0xd144c4cb,0x1105ab14,0xe8b04ea4,0xfe80d8f1,0x92dda542,0xcf03dce6,0xe9982fa8,0x1a22cffc,0x8b5ea965,0x3fad88c4,0xf7f4ea7f,0x6a5ba95c,0x62db773e +.long 0x93f24567,0xd20f02fb,0x315257ca,0xfd46c69a,0x8bcab987,0x0ac74cc7,0x5ceca2f5,0x46f31c01,0x888b219e,0x40aedb59,0xe1fccd02,0xe50ecc37,0x911f816c,0x1bcd9dad,0x8db9b00c,0x583cc1ec +.long 0xa483bf11,0xf3cd2e66,0xb1b2c169,0xfa08a6f5,0x4be9fa28,0xf375e245,0x5b6d011f,0x99a7ffec,0xc4ae62da,0x6a3ebddb,0x374aef5d,0x6cea00ae,0x9d4d05bc,0xab5fb98d,0xd560f252,0x7cba1423 +.long 0x208490de,0x49b2cc21,0xbcfb2879,0x1ca66ec3,0x1b6fb16f,0x7f1166b7,0x65fe5db3,0xfff63e08,0x8b2610be,0xb8345abe,0x39de3df4,0xb732ed80,0x211c32b4,0x0e24ed50,0x848ff27d,0xd10d8a69 +.long 0xed4de248,0xc1074398,0x10488927,0xd7cedace,0x85673e13,0xa4aa6bf8,0x6daf30af,0xb46bae91,0xfcef7ad8,0x07088472,0xd4b35e97,0x61151608,0xdde29986,0xbcfe8f26,0xd5a34c79,0xeb84c4c7 +.long 0x164e1214,0xc1eec55c,0xa147bb03,0x891be86d,0x0ba96835,0x9fab4d10,0xa5c1ae9f,0xbf01e9b8,0xb186ebc0,0x6b4de139,0x85b91bca,0xd5c74c26,0xc2d93854,0x5086a99c,0xa7a9dfbc,0xeed62a7b +.long 0x76b7618a,0x8778ed6f,0x03b66062,0xbff750a5,0xb65186db,0x4cb7be22,0xcc3a6d13,0x369dfbf0,0x7191a321,0xc7dab26c,0x40ed718e,0x9edac3f9,0xd0cfd183,0xbc142b36,0x7c991693,0xc8af82f6 +.long 0x97ce0b2a,0xb3d1e4d8,0xc3a55cdf,0xe6d7c87f,0x68b81afe,0x35846b95,0xd3c239d8,0x018d12af,0x01206e15,0x2b2c6208,0xa3b882c6,0xe0e42453,0xa50162d5,0x854470a3,0x7017a62a,0x08157478 +.long 0x820357c7,0x18bd3fb4,0x6f1458ad,0x992039ae,0x25b44aa1,0x9a1df3c5,0xed3d5281,0x2d780357,0xc77ad4d4,0x58cf7e4d,0xf9df4fc4,0xd49a7998,0x1d71205e,0x4465a8b5,0x649254aa,0xa0ee0ea6 +.long 0xab7bd771,0x4b5eeecf,0x35c262b9,0x6c873073,0x3c9d61e7,0xdc5bd648,0x321460d2,0x233d6d54,0xfc195bcc,0xd20c5626,0x04d78b63,0x25445958,0x17ec8ef3,0xe03fcb3d,0x46b8f781,0x54b690d1 +.long 0x21230646,0x82fa2c8a,0x084f418c,0xf51aabb9,0x1a30ba43,0xff4fbec1,0x743c9df7,0x6a5acf73,0xd635b4d5,0x1da2b357,0xecd5c1da,0xc3de68dd,0xd61af0dd,0xa689080b,0xd665bf99,0xdea5938a +.long 0xfe637294,0x0231d71a,0xa5a81cd8,0x01968aa6,0x048e63b5,0x11252d50,0x6ca007e9,0xc446bc52,0x96d6134b,0xef8c50a6,0x9e09a05c,0x9361fbf5,0xdca3291a,0xf17f85a6,0xff251a21,0xb178d548 +.long 0xa4df3915,0x87f6374b,0x2fd5d608,0x566ce1bf,0x7de35102,0x425cba4d,0x58c5d5e2,0x6b745f8f,0x63122edf,0x88402af6,0x3b989a89,0x3190f9ed,0xebba3156,0x4ad3d387,0xc7c469a5,0xef385ad9 +.long 0x3f642c29,0xb08281de,0x910ffb88,0x20be0888,0xd5292546,0xf353dd4a,0x8377a262,0x3f1627de,0xeefcd638,0xa5faa013,0x74cc77c3,0x8f3bf626,0xa348f55e,0x32618f65,0x9fefeb9e,0x5787c0dc +.long 0xd9a23e44,0xf1673aa2,0x4e10690d,0x88dfa993,0x2bf91108,0x1ced1b36,0x3af48649,0x9193ceca,0x2d738fc5,0xfb34327d,0x975fee6c,0x6697b037,0xc04079a5,0x2f485da0,0x2feaa1ac,0x2cdf5735 +.long 0xbd55659e,0x76944420,0x4376090c,0x7973e32b,0x163b591a,0x86bb4fe1,0xc196f0ca,0x10441aed,0x045ad915,0x3b431f4a,0xa4afacb1,0x6c11b437,0x71fdbbd8,0x30b0c7db,0xeda65acd,0xb642931f +.long 0x9c92b235,0x4baae6e8,0x6b3993a1,0xa73bbd0e,0x693dd031,0xd06d60ec,0x7156881c,0x03cab91b,0x1db3574b,0xd615862f,0x64bb061a,0x485b0185,0xa0181e06,0x27434988,0xc1c0c757,0x2cd61ad4 +.long 0x2ff9f403,0x3effed5a,0x62239029,0x8dc98d8b,0x1f17b70d,0x2206021e,0xbf510015,0xafbec0ca,0x80130dfa,0x9fed7164,0x8a02dcf5,0x306dc2b5,0xfeb10fc0,0x48f06620,0x5a57cf51,0x78d1e1d5 +.long 0x192ef710,0xadef8c5a,0x3b7431f9,0x88afbd4b,0x64250c9e,0x7e1f7407,0xb58bec07,0x6e31318d,0x24f89b4e,0xfd4fc4b8,0x48c36a2a,0x65a5dd88,0xf024baa7,0x4f1eccff,0xcba94650,0x22a21cf2 +.long 0x42a554f7,0x95d29dee,0x002ec4ba,0x828983a5,0x8badb73d,0x8112a1f7,0xa27c1839,0x79ea8897,0xd065fd83,0x8969a5a7,0xb262a0bc,0xf49af791,0xaf2b5127,0xfcdea8b6,0x564c2dbc,0x10e913e1 +.long 0xbc21ef51,0x51239d14,0x4ce57292,0xe51c3ceb,0x47bbcc3b,0x795ff068,0xbd7e11e6,0x86b46e1e,0x80041ef4,0x0ea6ba23,0x6262342e,0xd72fe505,0x31d294d4,0x8abc6dfd,0x1278c2c9,0xbbe017a2 +.long 0xb389328a,0xb1fcfa09,0xd01771b5,0x322fbc62,0x60b045bf,0x04c0d063,0x10e52d01,0xdb652edc,0x03ec6627,0x50ef932c,0xc1ee50e3,0xde1b3b2d,0xdc37a90d,0x5ab7bdc5,0x31e33a96,0xfea67213 +.long 0x4f2999aa,0x6482b5cb,0xb8cbf0dd,0x38476cc6,0x173405bb,0x93ebfacb,0xe52369ec,0x15cdafe7,0xd935b7db,0xd42d5ba4,0x1c99a4cd,0x648b6004,0xa3b5545b,0x785101bd,0x9dd67faf,0x4bf2c38a +.long 0x4442449c,0xb1aadc63,0x33ad4fb8,0xe0e9921a,0xaa686d82,0x5c552313,0x465d866c,0xdee635fa,0x18ee6e8a,0xbc3c224a,0xed42e02f,0xeed748a6,0xd474cd08,0xe70f930a,0xfff24adf,0x774ea6ec +.long 0xf3480d4a,0x03e2de1c,0xbc8acf1a,0xf0d8edc7,0x68295a9c,0xf23e3303,0xc546a97d,0xfadd5f68,0x96f8acb1,0x895597ad,0x671bdae2,0xbddd49d5,0x21dd43f4,0x16fcd528,0x6619141a,0xa5a45412 +.long 0xc360e25a,0x8ce9b6bf,0x075a1a78,0xe6425195,0x481732f4,0x9dc756a8,0x5432b57a,0x83c0440f,0xd720281f,0xc670b3f1,0xd135e051,0x2205910e,0xdb052be7,0xded14b0e,0xc568ea39,0x697b3d27 +.long 0xfb3ff9ed,0x2e599b9a,0x17f6515c,0x28c2e0ab,0x474da449,0x1cbee4fd,0x4f364452,0x071279a4,0x01fbe855,0x97abff66,0x5fda51c4,0x3ee394e8,0x67597c0b,0x190385f6,0xa27ee34b,0x6e9fccc6 +.long 0x14092ebb,0x0b89de93,0x428e240c,0xf17256bd,0x93d2f064,0xcf89a7f3,0xe1ed3b14,0x4f57841e,0xe708d855,0x4ee14405,0x03f1c3d0,0x856aae72,0xbdd7eed5,0xc8e5424f,0x73ab4270,0x3333e4ef +.long 0xdda492f8,0x3bc77ade,0x78297205,0xc11a3aea,0x34931b4c,0x5e89a3e7,0x9f5694bb,0x17512e2e,0x177bf8b6,0x5dc349f3,0x08c7ff3e,0x232ea4ba,0xf511145d,0x9c4f9d16,0x33b379c3,0xccf109a3 +.long 0xa1f25897,0xe75e7a88,0xa1b5d4d8,0x7ac6961f,0x08f3ed5c,0xe3e10773,0x0a892dfb,0x208a54ec,0x78660710,0xbe826e19,0x237df2c8,0x0cf70a97,0xed704da5,0x418a7340,0x08ca33fd,0xa3eeb9a9 +.long 0x169bca96,0x49d96233,0x2da6aafb,0x04d286d4,0xa0c2fa94,0xc09606ec,0x23ff0fb3,0x8869d0d5,0xd0150d65,0xa99937e5,0x240c14c9,0xa92e2503,0x108e2d49,0x656bf945,0xa2f59e2b,0x152a733a +.long 0x8434a920,0xb4323d58,0x622103c5,0xc0af8e93,0x938dbf9a,0x667518ef,0x83a9cdf2,0xa1843073,0x5447ab80,0x350a94aa,0xc75a3d61,0xe5e5a325,0x68411a9e,0x74ba507f,0x594f70c5,0x10581fc1 +.long 0x80eb24a9,0x60e28570,0x488e0cfd,0x7bedfb4d,0xc259cdb8,0x721ebbd7,0xbc6390a9,0x0b0da855,0xde314c70,0x2b4d04db,0x6c32e846,0xcdbf1fbc,0xb162fc9e,0x33833eab,0xb0dd3ab7,0x9939b48b +.long 0xcb0c9c8c,0x5aaa98a7,0x81c4375c,0x75105f30,0x5ef1c90f,0xceee5057,0xc23a17bf,0xb31e065f,0xd4b6d45a,0x5364d275,0x62ec8996,0xd363f3ad,0x4391c65b,0xb5d21239,0xebb41b47,0x84564765 +.long 0x37107c78,0x20d18ecc,0x570c2a66,0xacff3b6b,0x9bd0d845,0x22f975d9,0xba178fa0,0xef0a0c46,0x76b6028e,0x1a419651,0x248612d4,0xc49ec674,0x7338af55,0x5b6ac4f2,0x7bee5a36,0x06145e62 +.long 0xe75746b5,0x33e95d07,0xc40c78be,0x1c1e1f6d,0x222ff8e2,0x967833ef,0xb49180ad,0x4bedcf6a,0x3d7a4c8a,0x6b37e9c1,0x6ddfe760,0x2748887c,0xaa3a5bbc,0xf7055123,0x7bbb8e74,0x954ff225 +.long 0x97c3dfb9,0xc42b8ab1,0xcf168154,0x55a549b0,0xc1b50692,0xad6748e7,0x6fc5cbcb,0x2775780f,0xe1c9d7c8,0x4eab80b8,0x3fdbcd56,0x8c69dae1,0x9969eace,0x47e6b4fb,0xa705cb5a,0x002f1085 +.long 0x6d3fea55,0x4e23ca44,0xf4810568,0xb4ae9c86,0x2a62f27d,0x47bfb91b,0xd9bac28c,0x60deb4c9,0x7de6c34c,0xa892d894,0x4494587d,0x4ee68259,0x1a3f8a5b,0x914ee14e,0x28700385,0xbb113eaa +.long 0x2115b4c9,0x81ca03b9,0x8908cad1,0x7c163d38,0xaa18179a,0xc912a118,0x886e3081,0xe09ed750,0x26f516ca,0xa676e3fa,0x8e732f91,0x753cacf7,0x833da8b4,0x51592aea,0x4cbea8aa,0xc626f42f +.long 0xa7b56eaf,0xef9dc899,0x34ef7316,0x00c0e52c,0xfe818a86,0x5b1e4e24,0xc538be47,0x9d31e20d,0x3ed68974,0x22eb932d,0x7c4e87c4,0xe44bbc08,0x0dde9aef,0x4121086e,0x134f4345,0x8e6b9cff +.long 0x711b0eb9,0x96892c1f,0x780ab954,0xb905f2c8,0xa20792db,0xace26309,0x0684e126,0xec8ac9b3,0xb40a2447,0x486ad8b6,0x9fe3fb24,0x60121fc1,0x1a8e3b3f,0x5626fccf,0x6ad1f394,0x4e568622 +.long 0x196aa5a1,0xda7aae0d,0x1041b5fb,0xe0df8c77,0x26b318b7,0x451465d9,0x7ab136e9,0xc29b6e55,0x71148463,0x2c2ab48b,0x64454a76,0xb5738de3,0x5a03abe4,0x54ccf9a0,0x0427d58e,0x377c0296 +.long 0x2bb39c1f,0x73f5f0b9,0xe608d8c5,0x14373f2c,0x00fbb805,0xdcbfd314,0x83afdcfb,0xdf18fb20,0x42b3523f,0x81a57f42,0x87f650fb,0xe958532d,0x8b0a7d7c,0xaa8dc8b6,0x150166be,0x1b75dfb7 +.long 0x2d7d1413,0x90e4f7c9,0x9834f597,0x67e2d6b5,0xa808c3e8,0x4fd4f4f9,0xd5281ec1,0xaf8237e0,0x84687cee,0x25ab5fdc,0xa5b26c09,0xc5ded6b1,0xc8ea7650,0x8e4a5aec,0x14cc417f,0x23b73e5c +.long 0x3037bf52,0x2bfb4318,0x78c725d7,0xb61e6db5,0xbbb3e5d7,0x8efd4060,0xdbac488e,0x2e014701,0x360aa449,0xac75cf9a,0x79634d08,0xb70cfd05,0xfffb15ef,0xa591536d,0xd07c106c,0xb2c37582 +.long 0xf50225f9,0xb4293fdc,0xb0e12b03,0xc52e175c,0xd0a8bf64,0xf649c3ba,0xeb8ae3c6,0x745a8fef,0x58321bc3,0x30d7e5a3,0x0bc4df48,0xb1732be7,0xe9ea5058,0x1f217993,0x3e4fd745,0xf7a71cde +.long 0x894c5bbb,0x86cc533e,0x69d83082,0x6915c7d9,0x5815c244,0xa6aa2d05,0x49b22ce5,0xaeeee592,0x78135486,0x89e39d13,0x16b76f2f,0x3a275c1f,0xe036e8f5,0xdb6bcc1b,0x5e4709f5,0x4df69b21 +.long 0x2d0f39aa,0xa188b250,0x15a85947,0x622118bb,0xfde0f4fa,0x2ebf520f,0x4860e539,0xa40e9f29,0x22b57f0f,0x7b6a51eb,0x7e80644a,0x849a33b9,0x1cf095fe,0x50e5d16f,0xec55f002,0xd754b54e +.long 0x236f4a98,0x5cfbbb22,0x066800bb,0x0b0c59e9,0x5a9a7774,0x4ac69a8f,0xd6bec948,0x2b33f804,0x32e6c466,0xb3729295,0x4e599c73,0x68956d0f,0x155c31cc,0xa47a249f,0xe1ce284e,0x24d80f0d +.long 0x988baf01,0xcd821dfb,0xdbb16647,0xe6331a7d,0x094cb960,0x1eb8ad33,0xc91bbca5,0x593cca38,0x26567456,0x384aac8d,0xc04b6490,0x40fa0309,0xdab6c8f6,0x97834cd6,0x3f91e55f,0x68a7318d +.long 0xfc4d3157,0xa00fd04e,0x2bf3bdea,0xb56f8ab2,0x4fa57172,0x014f5648,0x450abdb3,0x948c5860,0x0ebd4f08,0x342b5df0,0x0e82938e,0x3e5168cd,0xb0df5dd0,0x7aedc1ce,0xe5732516,0x6bbbc6d9 +.long 0x605daaa6,0xc7bfd486,0xbb9a6c9e,0x46fd72b7,0xa124fb89,0xe4847fb1,0xa2d8ffbc,0x75959cbd,0xc8a588ee,0x42579f65,0xb80b499d,0x368c92e6,0x999a5df1,0xea4ef6cd,0x936fe604,0xaa73bb7f +.long 0x6457d188,0xf347a70d,0x8b7a388b,0x86eda86b,0x0ccd6013,0xb7cdff06,0xd0053fb2,0xbeb1b6c7,0x99240a9f,0x0b022387,0x776189b2,0x1bbb384f,0x9066193a,0x8695e71e,0x06ffac7e,0x2eb50097 +.long 0x4a7d2caa,0x0654a9c0,0xa5aaa290,0x6f3fb3d1,0xff476e8f,0x835db041,0xc42295e4,0x540b8b0b,0x05e214f5,0xa5c73ac9,0x56a0b638,0x9a74075a,0xce9e680b,0x2e4b1090,0x6b8d9afa,0x57a5b479 +.long 0x26bfe65c,0x0dca48e7,0x7290c307,0x097e391c,0x6669e72e,0x683c462e,0x062559ac,0xf505be1e,0xe3a3035a,0x5fbe3ea1,0x9cd50da8,0x6431ebf6,0x1f6407f2,0xfd169d5c,0x60fce6b8,0x8d838a95 +.long 0x650006f0,0x2a2bfa7f,0x50c0fbb2,0xdfd7dad3,0xccf9ad96,0x92452495,0xd95635f9,0x183bf494,0x4a7bd989,0x02d5df43,0xa5431095,0x505385cc,0xfd43f53e,0xdd98e67d,0x500c34a9,0xd61e1a6c +.long 0x4a8a3d62,0x5a4b46c6,0x247743d2,0x8469c4d0,0x88f7e433,0x2bb3a13d,0x01be5849,0x62b23a10,0xa63d1a4c,0xe83596b4,0x7d183f3e,0x454e7fea,0x17afb01c,0x643fce61,0x1c4c3638,0x4e65e5e6 +.long 0xef74c45b,0x41d85ea1,0xae328506,0x2cfbfa66,0x3ada7da9,0x98b078f5,0xec752fbb,0xd985fe37,0x5a0148b4,0xeece68fe,0x2d78136d,0x6f9a55c7,0xd2b729ce,0x232dccc4,0x90aafbc4,0xa27e0dfd +.long 0x12b4603e,0x96474452,0x6b706d14,0xa876c551,0x69a9d412,0xdf145fcf,0x2d479c34,0xe2ab75b7,0x1a23ff97,0x12df9a76,0x5d359d10,0xc6138992,0xfa835f22,0x6e51c7ae,0xc0fcc4d9,0x69a79cb1 +.long 0x594cc7e1,0xf57f350d,0x3350ab79,0x3079ca63,0x9aff594a,0x226fb614,0x6d59a62b,0x35afec02,0x06ed2c6e,0x9bee46f4,0x7d939a57,0x58da1735,0x8fd1797e,0x44c50402,0x5ccea6ca,0xd8853e7c +.long 0xa35fcd5f,0x4065508d,0x495ccaeb,0x8965df8c,0x12e1a962,0x0f2da850,0xc1cf1cc4,0xee471b94,0x0a08fb75,0xcef19bc8,0x81de3591,0x704958f5,0x3aef4f88,0x2867f8b2,0xea9f9a5f,0x8d749384 +.long 0x8c9049f4,0x1b385537,0x7b92d8b6,0x5be948f3,0xb6e2bd6b,0xd96f725d,0x958c454d,0x37a222bc,0x8809bf61,0xe7c61abb,0x1346f18d,0x46f07fbc,0xe87c0d1c,0xfb567a7a,0x7ef3d07a,0x84a461c8 +.long 0xd9278d98,0x0a5adce6,0x9dfc73e1,0x24d94813,0x054321c3,0x4f3528b6,0x692ea706,0x2e03fdde,0x47b533c0,0x10e60619,0x2ca3c055,0x1a8bc73f,0x1bb62b8f,0xae58d4b2,0x584a24e3,0xb2045a73 +.long 0xbd76e195,0x3ab3d5af,0x6938a810,0x478dd1ad,0x6ee3d5cb,0x6ffab393,0x22b361e4,0xdfb693db,0x51dbf1a7,0xf9694496,0x08a2e762,0xcab4b4ef,0xd39bba9a,0xe8c92f25,0xf1464d96,0x850e61bc +.long 0xdc09508b,0xb7e830e3,0x74317655,0xfaf6d2cf,0xdf690355,0x72606ceb,0xd0c3ded6,0x48bb92b3,0x5c7cf892,0x65b75484,0xd5d5f01f,0xf6cd7ac9,0x96401d69,0xc2c30a59,0xed921878,0x91268650 +.long 0xb78c558f,0x380bf913,0xc8afdaa9,0x43c0baeb,0x54f169d3,0x377f61d5,0xae5ff20b,0xf8da07e3,0xa8a90ea8,0xb676c49d,0x83a29b21,0x81c1ff2b,0x2ad8d276,0x383297ac,0xba89f982,0x3001122f +.long 0x6718e448,0xe1d794be,0x7c3e6e13,0x246c1482,0x5d26b5ef,0x56646ef8,0x88069cdd,0x80f5091e,0x724bdd38,0xc5992e2f,0x8471e8c7,0x02e915b4,0x0d0ff2a9,0x96ff320a,0x4384d1a0,0xbf886487 +.long 0xc93f72d6,0xbbe1e6a6,0xcad800ea,0xd5f75d12,0xe7acf117,0xfa40a09f,0x7581a355,0x32c8cdd5,0x7023c499,0x74221992,0x38ec3901,0xa8afe5d7,0xa90e83f0,0x5691afcb,0x0b8f8eac,0x41bcaa03 +.long 0x8d2668d5,0xe38b5ff9,0x7ad81965,0x0715281a,0x03c6ce11,0x1bc8fc7c,0x8b650436,0xcbbee6e2,0x0cdb9808,0x06b00fe8,0xfe3ed315,0x17d6e066,0x4d0b5018,0x2e9d38c6,0x844dcaef,0xab8bfd56 +.long 0x513aed8b,0x42894a59,0x314bd07a,0xf77f3b6d,0x8e42b582,0xbbdecb8f,0xd2390fe6,0xf10e2fa8,0x62a2f201,0xefb95022,0x50ee32b0,0x4d59ea50,0x6da789a8,0xd87f7728,0xf79492c4,0xcf98a2cf +.long 0x720943c2,0xf9577239,0x3990b9d0,0xba044cf5,0x95f2884a,0x5aa8e823,0x0278a0af,0x834de6ed,0x5f25bd12,0xc8e1ee9a,0x6f7ab271,0x9259ceaa,0x77d00b76,0x7e6d97a2,0xa437832a,0x5c0c6eea +.long 0x5606b81d,0x5232c20f,0x0d991ee5,0xabd7b375,0x8632d951,0x4d2bfe35,0x98ed9364,0x78f85146,0xf30c3282,0x951873f0,0xa789230b,0x0da8ac80,0x5398967f,0x3ac7789c,0xbdda0fb5,0xa69b8f7f +.long 0x6add8545,0xe5db7717,0x72c49b66,0x1b71cb66,0x68421d77,0xd8560739,0x83e3afea,0x03840fe8,0x1ec69977,0xb391dad5,0x307f6726,0xae243fb9,0xe8ca160c,0xc88ac87b,0x4ce355f4,0x5174cced +.long 0xe58ba37d,0x98a35966,0x7817335d,0xfdcc8da2,0x83fbc7bf,0x5b752830,0xd9c96984,0x68e419d4,0x02a40380,0x409a39f4,0x1fe977bc,0x88940faf,0x8f8edea6,0xc640a94b,0xed11547d,0x1e22cd17 +.long 0x59ffc3e2,0xe28568ce,0xc1dee4e7,0x60aa1b55,0x837cb363,0xc67497c8,0x105a2bf2,0x06fb438a,0x500d8e20,0x30357ec4,0x0670db10,0x1ad9095d,0xc73b7cfd,0x7f589a05,0x880d6d28,0xf544607d +.long 0xa20ef103,0x17ba93b1,0x6ba6577b,0xad859130,0x6fa214a0,0x65c91cf6,0x27990da5,0xd7d49c6c,0x20bb569d,0xecd9ec8d,0xeeffbc33,0xbd4b2502,0x6bed0467,0x2056ca5a,0x5b63728c,0x7916a1f7 +.long 0x53a4f566,0xd4f9497d,0x97b56810,0x89734664,0x0494a621,0xf8e1da74,0x8d011c68,0x82546a93,0xc61ac162,0x1f3acb19,0xabad0d3e,0x52f8fa9c,0xb4b7ea43,0x15356523,0xae608125,0x5a16ad61 +.long 0x4faed184,0xb0bcb87f,0x5029f45f,0x5f236b1d,0x0bc6b1fc,0xd42c7607,0x68aefce3,0xc644324e,0x5c5d8446,0x8e191d59,0x13ae1979,0xc0208077,0x3ba59cc7,0xadcaee55,0xa2cb81ba,0x20ed6d6b +.long 0xb6efcffc,0x0952ba19,0x97c0b87c,0x60f12d68,0x9caa30bc,0x4ee2c7c4,0x97fbff4e,0x767238b7,0x501b5d92,0xebc73921,0xc2a37737,0x3279e3df,0x6d197543,0x9fc12bc8,0x0a40db4e,0xfa94dc6f +.long 0x530ccbbd,0x7392b41a,0xea823525,0x87c82146,0x05d98d0c,0xa52f984c,0x5ef6974c,0x2ae57d73,0x3042a6dd,0x9377f7bf,0x19647a64,0xb1a007c0,0x0cca9767,0xfaa9079a,0xf68f72d5,0x3d81a25b +.long 0xff81578e,0x752067f8,0x9045447d,0x78622150,0x0505aa6f,0xc0c22fcf,0x6bed1c77,0x1030f0a6,0x1f0bd739,0x31f29f15,0xe6debe85,0x2d7989c7,0x8e677e98,0x5c070e72,0x06e81fd5,0x0a817bd3 +.long 0xb0f2ac95,0xc110d830,0xab20e64e,0x48d0995a,0x7729cd9a,0x0f3e00e1,0xdd556946,0x2a570c20,0x4e86214d,0x912dbcfd,0xcf615498,0x2d014ee2,0x3530d76e,0x55e2b1e6,0xfd0fd6d1,0xc5135ae4 +.long 0xd4f3049f,0x0066273a,0xe7087477,0xbb8e9893,0x14c6e5fd,0x2dba1ddb,0x51f57e6c,0xdba37886,0x5a72f2cf,0x5aaee0a6,0x7bea5642,0x1208bfbf,0x67872c37,0xf5c6aa3b,0x43f93224,0xd726e083 +.long 0x061f1658,0x1854daa5,0xdf0cd2b3,0xc0016df1,0x833d50de,0xc2a3f23e,0xbbbd3017,0x73b681d2,0x3ac343c0,0x2f046dc4,0x85716421,0x9c847e7d,0x0917eed4,0xe1e13c91,0x63a1b9c6,0x3fc9eebd +.long 0x7fe02299,0x0f816a72,0x294f3319,0x6335ccc2,0x4745c5be,0x3820179f,0x922f066e,0xe647b782,0x02cafb8a,0xc22e49de,0xfcc2eccc,0x299bc2ff,0x6e0e8282,0x9a8feea2,0xfe893205,0xa627278b +.long 0x7933e47b,0xa7e19733,0x2e766402,0xf4ff6b13,0x98440d9f,0xa4d8be0a,0x38938808,0x658f5c2f,0xc95b3b3e,0x90b75677,0x3137b6ff,0xfa044269,0x43c47c29,0x077b039b,0x8a6445b2,0xcca95dd3 +.long 0x2333fc4c,0x0b498ba4,0xf736a1b1,0x274f8e68,0x5f1d4b2e,0x6ca348fd,0xa8f10199,0x24d3be78,0xca14f530,0x8535f858,0x5b982e51,0xa6e7f163,0x36e1bf62,0x847c8512,0x03448418,0xf6a7c58e +.long 0xf9374ab6,0x583f3703,0x6e564145,0x864f9195,0x22526d50,0x33bc3f48,0x1262a496,0x9f323c80,0x3f046a9a,0xaa97a7ae,0xdf8a039a,0x70da183e,0x52aa0ba6,0x5b68f71c,0x21459c2d,0x9be0fe51 +.long 0xcbc613e5,0xc1e17eb6,0x497ea61c,0x33131d55,0xaf7eded5,0x2f69d39e,0xde6af11b,0x73c2f434,0xa4a375fa,0x4ca52493,0xb833c5c2,0x5f06787c,0x3e6e71cf,0x814e091f,0x8b746666,0x76451f57 +.long 0x694db7e0,0x80f9bdef,0xb9fcddc6,0xedca8787,0x03b8dce1,0x51981c34,0x70e10ba1,0x4274dcf1,0x6def6d1a,0xf72743b8,0xebdb1866,0xd25b1670,0x050c6f58,0xc4491e8c,0x87fbd7f5,0x2be2b2ab +.long 0xd111f8ec,0x3e0e5c9d,0xb7c4e760,0xbcc33f8d,0xbd392a51,0x702f9a91,0xc132e92d,0x7da4a795,0x0bb1151b,0x1a0b0ae3,0x02e32251,0x54febac8,0x694e9e78,0xea3a5082,0xe4fe40b8,0xe58ffec1 +.long 0xd1e0cf9e,0xf85592fc,0xc0e7b2e8,0xdea75f0d,0xc135584e,0xc04215cf,0x2f57092a,0x174fc727,0xeb930bea,0xe7277877,0x5eb02a5a,0x504caccb,0xf5241b9b,0xf9fe08f7,0x8d5ca954,0xe7fb62f4 +.long 0x29c4120b,0xfbb8349d,0xc0d0d915,0x9f94391f,0x5410ba51,0xc4074fa7,0x150a5911,0xa66adbf6,0x34bfca38,0xc164543c,0xb9e1ccfc,0xe0f27560,0xe820219c,0x99da0f53,0xc6b4997a,0xe8234498 +.long 0x9d4c5423,0xcfb88b76,0xb0521c49,0x9e56eb10,0xbe8700a1,0x418e0b5e,0xf93cb58a,0x00cbaad6,0xd92a5e67,0xe923fbde,0x1f347f11,0xca4979ac,0x6bc0585b,0x89162d85,0xac3c70e3,0xdd6254af +.long 0x516e19e4,0x7b23c513,0xc5c4d593,0x56e2e847,0x5ce71ef6,0x9f727d73,0xf79a44c5,0x5b6304a6,0x3ab7e433,0x6638a736,0xfe742f83,0x1adea470,0x5b7fc19f,0xe054b854,0xba1d0698,0xf935381a +.long 0x799e9a74,0x546eab2d,0xa949f729,0x96239e0e,0x7090055a,0xca274c6b,0x9020c9b0,0x835142c3,0xa2e8807f,0xa405667a,0x1aa3d39e,0x29f2c085,0x42fc72f5,0xcc555d64,0xfbeacb3c,0xe856e0e7 +.long 0x918e4936,0xb5504f9d,0xb2513982,0x65035ef6,0x6f4d9cb9,0x0553a0c2,0xbea85509,0x6cb10d56,0xa242da11,0x48d957b7,0x672b7268,0x16a4d3dd,0x8502a96b,0x3d7e637c,0x730d463b,0x27c7032b +.long 0xe4136a14,0xbdc02b18,0x678e32bf,0xbacf969d,0xdd9c3c03,0xc98d89a3,0x23becc4f,0x7b92420a,0xc64d565c,0xd4b41f78,0x10f28295,0x9f969d00,0xb13d051a,0xec7f7f76,0xa92da585,0x08945e1e +.long 0x5846426f,0x55366b7d,0x247d441d,0xe7d09e89,0x736fbf48,0x510b404d,0xe784bd7d,0x7fa003d0,0x17fd9596,0x25f7614f,0x35cb98db,0x49e0e0a1,0x2e83a76a,0x2c65957b,0xcddbe0f8,0x5d40da8d +.long 0x050bad24,0xf2b8c405,0xc2aa4823,0x8918426d,0xa38365a7,0x2aeab3dd,0x7c91b690,0x72031717,0x60a94120,0x8b00d699,0xe99eaeec,0x478a255d,0x6f60aafd,0xbf656a5f,0x5dee77b3,0xdfd7cb75 +.long 0xa595939d,0x37f68bb4,0x28740217,0x03556479,0x84ad7612,0x8e740e7c,0x9044695f,0xd89bc843,0x85a9184d,0xf7f3da5d,0x9fc0b074,0x562563bb,0xf88a888e,0x06d2e6aa,0x161fbe7c,0x612d8643 +.long 0xf64085e7,0x465edba7,0x29aa8511,0xb230f304,0xcda2d188,0x53388426,0x4b666649,0x90885735,0x652f54f6,0x6f02ff9a,0x5fae2bf0,0x65c82294,0x62f5eee3,0x7816ade0,0xfcc56d70,0xdcdbdf43 +.long 0x54530bb2,0x9fb3bba3,0xcb0869ea,0xbde3ef77,0x0b431163,0x89bc9046,0xe4819a35,0x4d03d7d2,0x43b6a782,0x33ae4f9e,0x9c88a686,0x216db307,0x00ffedd9,0x91dd88e0,0x12bd4840,0xb280da9f +.long 0x1635e741,0x32a7cb8a,0x78be02a7,0xfe14008a,0x1b7ae030,0x3fafb334,0x5add0ce9,0x7fd508e7,0xd607ad51,0x72c83219,0x8d40964a,0x0f229c0a,0x1c878da2,0x1be2c336,0xeab2ab86,0xe0c96742 +.long 0x3e538cd7,0x458f8691,0x8e08ad53,0xa7001f6c,0xbf5d15ff,0x52b8c6e6,0x011215dd,0x548234a4,0x3d5b4045,0xff5a9d2d,0x4a904190,0xb0ffeeb6,0x48607f8b,0x55a3aca4,0x30a0672a,0x8cbd665c +.long 0x42583068,0x87f834e0,0xf3f6e683,0x02da2aeb,0x05c12248,0x6b763e5d,0x65a8aefc,0x7230378f,0x71e8e5ca,0x93bd80b5,0xb3b62524,0x53ab041c,0x6c9c552e,0x1b860513,0xd5524e66,0xe84d402c +.long 0xf37f5937,0xa37f3573,0xd1e4fca5,0xeb0f6c7d,0xac8ab0fc,0x2965a554,0x274676ac,0x17fbf56c,0xacf7d720,0x2e2f6bd9,0x10224766,0x41fc8f88,0x85d53bef,0x517a14b3,0x7d76a7d1,0xdae327a5 +.long 0xc4818267,0x6ad0a065,0x37c1bbc1,0x33aa189b,0x27392a92,0x64970b52,0x2d1535ea,0x21699a1c,0xc2d7a7fd,0xcd20779c,0x99c83cf2,0xe3186059,0x72c0b8c7,0x9b69440b,0x7b9e0e4d,0xa81497d7 +.long 0x1f5f82dc,0x515d5c89,0x6361079e,0x9a7f67d7,0x11a35330,0xa8da81e3,0x4b18be1b,0xe44990c4,0xaf103e59,0xc7d5ed95,0x8dac9261,0xece8aba7,0x9394b8d3,0xbe82b099,0x16adfe83,0x6830f09a +.long 0x88172d01,0x250a29b4,0xcaff9e02,0x8b20bd65,0xe8a6329a,0xb8a7661e,0xd3fce920,0x4520304d,0x2b47f7ef,0xae45da1f,0x5bffc540,0xe07f5288,0x3464f874,0xf7997009,0xa6fa1f38,0x2244c2cd +.long 0x94d7d9b1,0x43c41ac1,0xc82e7f17,0x5bafdd82,0x5fda0fca,0xdf0614c1,0xa8ae37ad,0x74b043a7,0x9e71734c,0x3ba6afa1,0x9c450f2e,0x15d5437e,0x67e242b1,0x4a5883fe,0x2c1953c2,0x5143bdc2 +.long 0xfc5e8920,0x542b8b53,0x9a9cee08,0x363bf9a8,0xc3486e08,0x02375f10,0x8c5e70d2,0x2037543b,0x625640b4,0x7109bccc,0x8bc62c3b,0xcbc1051e,0x803f26ea,0xf8455fed,0xeb372424,0x6badceab +.long 0x6b53f5f9,0xa2a9ce7c,0x1b176d99,0x64246595,0xb95c081b,0xb1298d36,0x1d9a9ee6,0x53505bb8,0xf2ba70b0,0x3f6f9e61,0x8afad453,0xd07e16c9,0xe7eb4a6a,0x9f1694bb,0x3cb0bc8e,0xdfebced9 +.long 0x53868c8b,0x92d3dcdc,0x386107a6,0x174311a2,0x689b4e64,0x4109e07c,0x2df3dcb6,0x30e4587f,0x0811b3b2,0x841aea31,0x0cce43ea,0x6144d41d,0x2a9a7803,0x464c4581,0x3e158930,0xd03d371f +.long 0xb1f3390b,0xc676d7f2,0xa5b61272,0x9f7a1b8c,0xc2e127a9,0x4ebebfc9,0x5dd997bf,0x4602500c,0x4711230f,0x7f09771c,0x020f09c1,0x058eb37c,0xfee5e38b,0xab693d4b,0x4653cbc0,0x9289eb1f +.long 0xd51b9cf5,0xbecf46ab,0x9f0121af,0xd2aa9c02,0xe90dc274,0x36aaf7d2,0x48b95a3c,0x909e4ea0,0x6f32dbdb,0xe6b70496,0x8b030b3e,0x672188a0,0xcfb617e2,0xeeffe5b3,0x7c82709e,0x87e947de +.long 0x1770f5a7,0xa44d2b39,0x0e44eb82,0xe4d4d791,0x3f69712a,0x42e69d1e,0xac6a820e,0xbf11c4d6,0x42c4224c,0xb5e7f3e5,0x449d941c,0xd6b4e81c,0x5450e878,0x5d72bd16,0xee25ac54,0x6a61e28a +.long 0xe6f1cd95,0x33272094,0x0d18673f,0x7512f30d,0x5afc1464,0x32f7a4ca,0x6bbb977b,0x2f095656,0xa8226200,0x586f47ca,0x1ac07369,0x02c868ad,0xc613acbe,0x4ef2b845,0x0386054c,0x43d7563e +.long 0xab952578,0x54da9dc7,0x26e84d0b,0xb5423df2,0x9b872042,0xa8b64eeb,0x5990f6df,0xac205782,0x21f4c77a,0x4ff696eb,0xaab273af,0x1a79c3e4,0x9436b3f1,0x29bc922e,0xd6d9a27a,0xff807ef8 +.long 0x778f22a0,0x82acea3d,0x5b5e7469,0xfb10b2e8,0x2818ee7d,0xc0b16980,0xc91c1a2f,0x011afff4,0xad124418,0x95a6d126,0xe72e295f,0x31c081a5,0xf2f4db75,0x36bb283a,0x7acef462,0xd115540f +.long 0x33f6746c,0xc7f3a8f8,0xfea990ca,0x21e46f65,0xcaddb0a9,0x915fd5c5,0x78614555,0xbd41f016,0x426ffb58,0x346f4434,0x14dbc204,0x80559436,0x5a969b7f,0xf3dd20fe,0xe899a39a,0x9d59e956 +.long 0x8ad4cf4b,0xf1b0971c,0x2ffb8fb8,0x03448860,0x65340ba4,0xf071ac3c,0xb27fd758,0x408d0596,0x98c364b0,0xe7c78ea4,0x051e8ab5,0xa4aac4a5,0x485d9002,0xb9e1d560,0x88844455,0x9acd518a +.long 0xd06f56c0,0xe4ca688f,0xdf027972,0xa48af70d,0x5e9a609d,0x691f0f04,0xee61270e,0xa9dd82cd,0xa0ef18d3,0x8903ca63,0x3d6ca3bd,0x9fb7ee35,0xabf47d03,0xa7b4a09c,0x1c67de8e,0x4cdada01 +.long 0x9355a244,0x52003749,0x4f2151a9,0xe77fd2b6,0x66b4efcb,0x695d6cf6,0xda2cfe25,0xc5a0cacf,0xef811865,0x104efe5c,0x9ea5cc3d,0xf52813e8,0x40b58dbc,0x855683dc,0x175fcb11,0x0338ecde +.long 0x74921592,0xf9a05637,0xb9bb9d31,0xb4f1261d,0x4e9c5459,0x551429b7,0x6ea71f53,0xbe182e6f,0xdfc50573,0xd3a3b07c,0x62be8d44,0x9ba1afda,0x52ab65d3,0x9bcfd2cb,0xa9571802,0xdf11d547 +.long 0x02a2404a,0x099403ee,0x21088a71,0x497406f4,0x5004ae71,0x99479409,0xa812c362,0xbdb42078,0xd8828442,0x2b72a30f,0xfcb5ed1c,0x283add27,0x66a40015,0xf7c0e200,0x08b295ef,0x3e3be641 +.long 0xe038a675,0xac127dc1,0x8c5c6320,0x729deff3,0xa90d2c53,0xb7df8fd4,0x681e7cd3,0x9b74b0ec,0xdab407e5,0x5cb5a623,0x76b340c6,0xcdbd3615,0x7d28392c,0xa184415a,0xe96f7830,0xc184c1d8 +.long 0x81d3a80f,0xc3204f19,0xc8e02432,0xfde0c841,0x8149e0c1,0x78203b3e,0x08053a73,0x5904bdbb,0x101b6805,0x30fc1dd1,0x49aa6d49,0x43c223bc,0x7a174087,0x9ed67141,0xd5997008,0x311469a0 +.long 0x5e43fc61,0xb189b684,0xe0d3ab57,0xf3282375,0xb1181da8,0x4fa34b67,0x99ee52b8,0x621ed0b2,0xad990676,0x9b178de1,0x56d54065,0xd51de67b,0x7538c201,0x2a2c27c4,0x38a40f5c,0x33856ec8 +.long 0xbe6cdcde,0x2522fc15,0x9f0c6f89,0x1e603f33,0x103e30a6,0x7994edc3,0x220c853e,0x033a00db,0xf7bb7fd7,0xd3cfa409,0x462d18f6,0x70f8781e,0x687fe295,0xbbd82980,0x595669f3,0x6eef4c32 +.long 0x2f7e85c3,0x86a9303b,0x71988f9b,0x5fce4621,0xc138acb5,0x5b935bf6,0x25661212,0x30ea7d67,0xe51ab9a2,0xef1eb5f4,0xae067c78,0x0587c98a,0x77ca9ca6,0xb3ce1b3c,0x54b5f057,0x2a553d4d +.long 0x4da29ec2,0xc7898236,0xb9c57316,0xdbdd5d13,0x2cd80d47,0xc57d6e6b,0xfe9e7391,0x80b460cf,0xf963c31e,0x98648cab,0xcc4d32fd,0x67f9f633,0xfdf7c687,0x0af42a9d,0x0b015ea7,0x55f292a3 +.long 0xcd21ab3d,0x89e468b2,0xc393d392,0xe504f022,0xa5013af9,0xab21e1d4,0xc2c28acb,0xe3283f78,0x226bf99f,0xf38b35f6,0x0e291e69,0xe8354274,0xb20c162d,0x61673a15,0xb04fbdbe,0xc101dc75 +.long 0x255bd617,0x8323b4c2,0x6c2a9154,0x6c969693,0x62679387,0xc6e65860,0xb8c88e23,0x8e01db0c,0x893a5559,0x33c42873,0x47a3e149,0x7630f04b,0xddcf35f8,0xb5d80805,0x77dfe732,0x582ca080 +.long 0x0b1894a0,0x2c7156e1,0xd81c68c0,0x92034001,0xc8b115b5,0xed225d00,0x83b907f2,0x237f9c22,0x4470e2c0,0x0ea2f32f,0x58be4e95,0xb725f7c1,0xb1ae5463,0x0f1dcafa,0x1ba2fc04,0x59ed5187 +.long 0xd0115d4d,0xf6e0f316,0xd3691599,0x5180b12f,0x527f0a41,0x157e32c9,0xa8e0ecc0,0x7b0b081d,0xbf4f0dd0,0x6dbaaa8a,0x4d252696,0x99b289c7,0xdbf864fe,0x79b7755e,0x76cad3ab,0x6974e2b1 +.long 0x06ddd657,0x35dbbee2,0x2ff3a96d,0xe7cbdd11,0x076be758,0x88381968,0x08c91f5d,0x2d737e72,0x86ec3776,0x5f83ab62,0x945fa7a1,0x98aa649d,0x72ef0933,0xf477ec37,0x098c17b1,0x66f52b1e +.long 0xd803738b,0x9eec58fb,0xe4e86aa4,0x91aaade7,0xa5b51492,0x6b1ae617,0xbbc45974,0x63272121,0x862c5129,0x7e0e28f0,0x3321a4a0,0x0a8f79a9,0x5041c88f,0xe26d1664,0x53233e3a,0x0571b805 +.long 0xc9520711,0xd1b0ccde,0x3c8b84bf,0x55a9e4ed,0xa1fef314,0x9426bd39,0x6eb93f2b,0x4f5f638e,0x2bf9341b,0xba2a1ed3,0x4d42d5a9,0xd63c1321,0x316dc7c5,0xd2964a89,0xca511851,0xd1759606 +.long 0xf9e6ed35,0xd8a9201f,0x6736925a,0xb7b5ee45,0x99581af7,0x0a83fbbc,0x64eeb051,0x3076bc40,0x02dec312,0x5511c98c,0x238dcb78,0x270de898,0x539c08c9,0x2cf4cf9c,0x38d3b06e,0xa70cb65e +.long 0xcfe57bbd,0xb12ec10e,0x35a0c2b5,0x82c7b656,0x161c67bd,0xddc7d5cd,0xae3a32cc,0xe32e8985,0xd11a5529,0x7aba9444,0x2427fa1a,0xe964ed02,0x24a1770a,0x1528392d,0x12c72fcd,0xa152ce2c +.long 0x8ec07649,0x714553a4,0x459dd453,0x18b4c290,0x7b64b110,0xea32b714,0x2e6f07a2,0xb871bfa5,0x9e2e3c9b,0xb67112e5,0x44aa90f6,0xfbf250e5,0xbd539006,0xf77aedb8,0xd172a66f,0x3b0cdf9a +.long 0xf8c51187,0xedf69fea,0x741e4da7,0x05bb67ec,0x08114345,0x47df0f32,0xbb9792b1,0x56facb07,0x8f6229e4,0xf3e007e9,0x526fba0f,0x62d103f4,0xb0339d79,0x4f33bef7,0xb59bfec1,0x9841357b +.long 0xc34e6705,0xfa8dbb59,0x7fdaa84c,0xc3c7180b,0xa4108537,0xf95872fc,0x932a3e5a,0x8750cc3b,0xb7275d7d,0xb61cc69d,0x2e59b2e9,0xffa0168b,0x6ecbb493,0xca032abc,0x2c9082d8,0x1d86dbd3 +.long 0xe28ef5ba,0xae1e0b67,0xcb18e169,0x2c9a4699,0x1e6bbd20,0x0ecd0e33,0xaf5e81d2,0x571b360e,0x101c1d45,0xcd9fea58,0x18880452,0x6651788e,0x1f8dd446,0xa9972635,0xe37281d0,0x44bed022 +.long 0x33da525d,0x094b2b2d,0x13144fd8,0xf193678e,0xf4c1061d,0xb8ab5ba4,0xdccbe0f4,0x4343b5fa,0x63812713,0xa8702371,0xf7611d93,0x47bf6d2d,0xbd21e1d7,0x46729b8c,0xd629e77d,0x7484d4e0 +.long 0x60dbac1f,0x830e6eea,0xda06a2f7,0x23d8c484,0x50ca535b,0x896714b0,0xebd97a9b,0xdc8d3644,0xb12177b4,0x106ef9fa,0x534d5d9c,0xf79bf464,0xa6ab360b,0x2537a349,0xa00c744f,0xc7c54253 +.long 0xe5911a76,0xb3c7a047,0x647f1ee7,0x61ffa5c8,0x8f56ab42,0x15aed36f,0xa3ff9ac9,0x6a0d41b0,0xcc30d357,0x68f469f5,0x6b72be96,0xbe9adf81,0x903ad461,0x1cd926fe,0xcaca441b,0x7e89e38f +.long 0xfacf69d4,0xf0f82de5,0x4775344c,0x363b7e76,0xb2e36d04,0x6894f312,0x11d1c9a5,0x3c6cb4fe,0x4008e1f2,0x85d9c339,0x249f326c,0x5e9a85ea,0x678c5e06,0xdc35c60a,0x9f86fba9,0xc08b944f +.long 0x89f71f0f,0xde40c02c,0xff3da3c0,0xad8f3e31,0x42125ded,0x3ea5096b,0xa7379183,0x13879cbf,0x6b306a0b,0x6f4714a5,0x67646c5e,0x359c2ea6,0x07726368,0xfacf8943,0x65ff431e,0x07a58935 +.long 0x68754ab0,0x24d661d1,0x6f429a76,0x801fce1d,0xa58ce769,0xc068a85f,0x5d5eca2b,0xedc35c54,0xa3f660d1,0xea31276f,0xb8fc7167,0xa0184ebe,0x1d8db0ae,0x0f20f21a,0x56c35e12,0xd96d095f +.long 0xf8c2a25b,0xedf402b5,0x059204b6,0x1bb772b9,0x19b4e34c,0x50cbeae2,0x3fa0845a,0x93109d80,0x8ef59fb5,0x54f7ccf7,0x88070963,0x3b438fe2,0x31f3ba9b,0x9e28c659,0xead9da92,0x9cc31b46 +.long 0xb733aa5f,0x3c2f0ba9,0xf05af235,0xdece47cb,0xa2ac82a5,0xf8e3f715,0x2203f18a,0xc97ba641,0x09c11060,0xc3af5504,0x46af512d,0x56ea2c05,0xf3f28146,0xfac28daf,0x959ef494,0x87fab43a +.long 0xd4c5105f,0x09891641,0x6d7fbd65,0x1ae80f8e,0xbee6bdb0,0x9d67225f,0x7fc4d860,0x3b433b59,0x93e85638,0x44e66db6,0xe3e9862f,0xf7b59252,0x665c32ec,0xdb785157,0xae362f50,0x702fefd7 +.long 0x0fefb0c3,0x3754475d,0x46d7c35d,0xd48fb56b,0x363798a4,0xa070b633,0x8fdb98e6,0xae89f3d2,0x6363d14c,0x970b89c8,0x67abd27d,0x89817521,0x44d5a021,0x9bf7d474,0xcac72aee,0xb3083baf +.long 0xbe949a44,0x389741de,0x546a4fa5,0x638e9388,0xa0047bdc,0x3fe6419c,0xaaea57ca,0x7047f648,0x41fbab17,0x54e48a90,0x576bdba2,0xda8e0b28,0xc72afddc,0xe807eebc,0xf42577bf,0x07d3336d +.long 0xbfe20925,0x62a8c244,0x8fdce867,0x91c19ac3,0xdd387063,0x5a96a5d5,0x21d324f6,0x61d587d4,0xa37173ea,0xe87673a2,0x53778b65,0x23848008,0x05bab43e,0x10f8441e,0x4621efbe,0xfa11fe12 +.long 0x81685d7b,0x047b772e,0xbf34a976,0x23f27d81,0x915f48ef,0xc27608e2,0xa521d5c3,0x3b0b43fa,0x63ca7284,0x7613fb26,0x1d4db837,0x7f5729b4,0x583b526b,0x87b14898,0xbbadd3d1,0x00b732a6 +.long 0x2048e396,0x8e02f426,0x383d9de4,0x436b50b6,0x471e85ad,0xf78d3481,0xd005c8d6,0x8b01ea6a,0x97015c07,0xd3c7afee,0x4e3ba2ae,0x46cdf1a9,0x83d3a1d2,0x7a42e501,0xb541dff4,0xd54b5268 +.long 0x4e23e9bc,0x3f24cf30,0x126e3624,0x4387f816,0x3b0b6d61,0x26a46a03,0x8b2d777c,0xaf1bc845,0x527de79c,0x25c401ba,0x4261bbb6,0x0e1346d4,0x287b4bc7,0x4b96c44b,0x5254562f,0x658493c7 +.long 0xb8a24a20,0x23f949fe,0xf52ca53f,0x17ebfed1,0xbcfb4853,0x9b691bbe,0x6278a05d,0x5617ff6b,0xe3c99ebd,0x241b34c5,0x1784156a,0xfc64242e,0x695d67df,0x4206482f,0xee27c011,0xb967ce0e +.long 0x21c80b5d,0x65db3751,0xa31ecca0,0x2e7a563c,0x5238a07e,0xe56ffc4e,0x32ced854,0x3d6c2966,0xaf70b885,0xe99d7d1a,0x2d686459,0xafc3bad9,0x0cc8ba5b,0x9c78bf46,0x18955aa3,0x5a439519 +.long 0x5fe4e314,0xf8b517a8,0xfcb8906f,0xe60234d0,0xf2061b23,0xffe542ac,0x6b4cb59c,0x287e191f,0x09d877d8,0x21857ddc,0x14678941,0x1c23478c,0xb6e05ea4,0xbbf0c056,0xb01594fe,0x82da4b53 +.long 0xfadb8608,0xf7526791,0x7b74cdf6,0x049e832d,0xc2b90a34,0xa43581cc,0x9360b10c,0x73639eb8,0xe1e4a71b,0x4fba331f,0x8072f919,0x6ffd6b93,0x65679032,0x6e53271c,0xf14272ce,0x67206444 +.long 0xb2335834,0xc0f734a3,0x90ef6860,0x9526205a,0x04e2bb0d,0xcb8be717,0x02f383fa,0x2418871e,0x4082c157,0xd7177681,0x29c20073,0xcc914ad0,0xe587e728,0xf186c1eb,0x61bcd5fd,0x6fdb3c22 +.long 0xf2f9f8e9,0x30d014a6,0x4fec49d2,0x963ece23,0x9605a8d9,0x862025c5,0x19f8929a,0x39874445,0x12bf476a,0x01b6ff65,0x09cf7d91,0x598a64d8,0x93be56ca,0xd7ec7749,0xcbb33615,0x10899785 +.long 0x02eee3ad,0xb8a092fd,0x30145270,0xa86b3d35,0x8512b675,0x323d98c6,0x62ebb40f,0x4b8bc785,0x413f9cde,0x7d301f54,0x2bab5664,0xa5e4fb4f,0x1cbfec23,0x1d2b252d,0xe177120d,0xfcd576bb +.long 0x83731a34,0x04427d3e,0xed836e8e,0x2bb9028e,0xb612ca7c,0xb36acff8,0xd3d9c73a,0xb88fe5ef,0xedea4eb3,0xbe2a6bc6,0x488eec77,0x43b93133,0xb17106e1,0xf41ff566,0x654efa32,0x469e9172 +.long 0x41c23fa3,0xb4480f04,0xc1989a2e,0xb4712eb0,0x93a29ca7,0x3ccbba0f,0xd619428c,0x6e205c14,0xb3641686,0x90db7957,0x45ac8b4e,0x0432691d,0xf64e0350,0x07a759ac,0x9c972517,0x0514d89c +.long 0xa8e67fc3,0x1701147f,0xab2085be,0x9e2e0b8b,0xac284e57,0xd5651824,0x74893664,0x890d4325,0xc55e68a3,0x8a7c5e6e,0x4339c85a,0xbf12e90b,0xf922b655,0x31846b85,0x0bf4d700,0x9a54ce4d +.long 0xf1a14295,0xd7f4e83a,0xb285d4f9,0x916f955c,0x99ffdaba,0xe57bb0e0,0xeab0d152,0x28a43034,0xb8a9cef8,0x0a36ffa2,0xb9ec051a,0x5517407e,0xea68e672,0x9c796096,0xfb3c77fb,0x853db5fb +.long 0xe864a51a,0x21474ba9,0x6e8a1b8b,0x6c267699,0x94120a28,0x7c823626,0x8383a5db,0xe61e9a48,0x9f84216d,0x7dd75003,0xad43cd85,0xab020d07,0xda12c659,0x9437ae48,0xe65452ad,0x6449c2eb +.long 0x2cf9d7c1,0xcc7c4c1c,0xee95e5ab,0x1320886a,0xbeae170c,0xbb7b9056,0xdbc0d662,0xc8a5b250,0xc11d2303,0x4ed81432,0x1f03769f,0x7da66912,0x84539828,0x3ac7a5fd,0x3bccdd02,0x14dada94 +.long 0x7ef6b0d1,0x8b84c321,0x7c933f22,0x52a9477a,0xfd440b82,0x5ef6728a,0x6ce4bd5e,0x5c3bd859,0xf22c2d3e,0x918b80f5,0xb7bb6cc5,0x368d5040,0x2695a11c,0xb66142a1,0xeb19ea70,0x60ac583a +.long 0x0eab2437,0x317cbb98,0x5e2654c8,0x8cc08c55,0xe6d8307f,0xfe2d6520,0x57428993,0xe9f147f3,0xd2fd6cf1,0x5f9c7d14,0x2d4fcbb0,0xa3ecd064,0x8e7341f7,0xad83fef0,0x3a63115c,0x643f23a0 +.long 0xe65ab743,0xd38a78ab,0x35edc89c,0xbf7c75b1,0x530df568,0x3dd8752e,0xe308c682,0xf85c4a76,0xe68acf37,0x4c9955b2,0xab32af85,0xa544df3d,0xa25cf493,0x4b8ec3f5,0x1a622feb,0x4d8f2764 +.long 0xf0dcbc49,0x7bb4f7aa,0x70bbb45b,0x7de551f9,0x9f2ca2e5,0xcfd0f3e4,0x1f5c76ef,0xece58709,0x167d79ae,0x32920edd,0xfa7d7ec1,0x039df8a2,0xbb30af91,0xf46206c0,0x22676b59,0x1ff5e2f5 +.long 0x6ea51d66,0x11f4a039,0x807d7a26,0x506c1445,0x755a9b24,0x60da5705,0x1f1a319e,0x8fc8cc32,0x9433d67d,0x83642d4d,0x6a7dd296,0x7fa5cb8f,0x9b7bde07,0x576591db,0x419716fb,0x13173d25 +.long 0xd5b340ff,0xea30599d,0xb0fe76c5,0xfc6b5297,0xab8f5adc,0x1c6968c8,0x901c928d,0xf723c7f5,0x9773d402,0x4203c321,0x1b51dd47,0xdf7c6aa3,0x552be23c,0x3d49e37a,0x0b5a6e87,0x57febee8 +.long 0x7bd8e739,0xc5ecbee4,0xae63bf75,0x79d44994,0x38fb8923,0x168bd00f,0xd0533130,0x75d48ee4,0xdb5cdf33,0x554f77aa,0x3c696769,0x3396e896,0xd3fd674e,0x2fdddbf2,0x99d0e3e5,0xbbb8f6ee +.long 0xcbae2f70,0x51b90651,0x93aaa8eb,0xefc4bc05,0xdd1df499,0x8ecd8689,0x22f367a5,0x1aee99a8,0xae8274c5,0x95d485b9,0x7d30b39c,0x6c14d445,0xbcc1ef81,0xbafea90b,0xa459a2ed,0x7c5f317a +.long 0x4ef44227,0x01211075,0xdc20f496,0xa17bed6e,0x819853cd,0x0cdfe424,0xf71e2ce7,0x13793298,0xdbbe307b,0x3c1f3078,0x76ee9936,0x6dd1c20e,0x423caa20,0x23ee4b57,0x8efb840e,0x4ac3793b +.long 0xed1f8ca0,0x934438eb,0x4ebb25a2,0x3e546658,0xc069896f,0xc415af0e,0x9a5aa43d,0xc13eddb0,0xd49eb8f6,0x7a04204f,0xd74f1670,0xd0d5bdfc,0x56fc0558,0x3697e286,0x01cebade,0x10207371 +.long 0x0647a82b,0x5f87e690,0x8f40054f,0x908e0ed4,0x79853803,0xa9f633d4,0x4a28b252,0x8ed13c9a,0x1f460f64,0x3e2ef676,0x36d06336,0x53930b9b,0x8fc4979b,0x347073ac,0x5ecd5597,0x84380e0e +.long 0xc4fe3c39,0xe3b22c6b,0x6c7bebdf,0xba4a8153,0x25693459,0xf23ab6b7,0x14922b11,0x53bc3770,0x5afc60db,0x4645c8ab,0x20b9f2a3,0xaa022355,0xce0fc507,0x52a2954c,0x7ce1c2e7,0x8c2731bb +.long 0x18a0339d,0xf39608ab,0x3735436c,0xac7a658d,0xcd992b4f,0xb22c2b07,0xf40dcfd4,0x4e83daec,0x2f39ea3e,0x8a34c7be,0xb0a56d2e,0xef0c005f,0x6edd8038,0x62731f6a,0x4e3cb075,0x5721d740 +.long 0xfbeeee1b,0x1ea41511,0xef1d0c05,0xd1ef5e73,0x73c07d35,0x42feefd1,0x8a329493,0xe530a00a,0xf15ebfb0,0x5d55b7fe,0xd322491a,0x549de03c,0x745b3237,0xf7b5f602,0x1ab6e2b6,0x3632a3a2 +.long 0x0ef59f78,0x0d3bba89,0xc9e52b9a,0x0dfc6443,0x72631447,0x1dc79699,0xb3be20b1,0xef033917,0xb1383948,0x0c92735d,0xc0dd7d7d,0xc1fc29a2,0x403ed068,0x6485b697,0xaac93bdc,0x13bfaab3 +.long 0x0deeaf52,0x410dc6a9,0x4c641c15,0xb003fb02,0x5bc504c4,0x1384978c,0x864a6a77,0x37640487,0x222a77da,0x05991bc6,0x5e47eb11,0x62260a57,0xf21b432c,0xc7af6613,0xab4953e9,0x22f3acc9 +.long 0x8e41d155,0x52934922,0x3ac059ef,0x4d024568,0x4d884411,0xb0201755,0xa59a178f,0xce8055cf,0xf6204549,0xcd77d1af,0xc7066759,0xa0a00a3e,0x0272c229,0x471071ef,0xd3c4b6b0,0x009bcf6b +.long 0x22305177,0x2a2638a8,0x41645bbf,0xd51d59df,0xc0a7a3c0,0xa81142fd,0x4c7063ee,0xa17eca6d,0x60d9dcec,0x0bb887ed,0x20ad2455,0xd6d28e51,0xa67102ba,0xebed6308,0x8bffa408,0x042c3114 +.long 0x8aa68e30,0xfd099ac5,0x1483513e,0x7a6a3d7c,0xba2d8f0c,0xffcc6b75,0x1e78b954,0x54dacf96,0xa4a9af89,0xf645696f,0x06ac98ec,0x3a411940,0x22a67a20,0x41b8b3f6,0x99dec626,0x2d0b1e0f +.long 0x40be34e8,0x27c89192,0x91907f35,0xc7162b37,0xa956702b,0x90188ec1,0xdf93769c,0xca132f7d,0x0e2025b4,0x3ece44f9,0x0c62f14c,0x67aaec69,0x22e3cc11,0xad741418,0x7ff9a50e,0xcf9b75c3 +.long 0x4d348272,0x02fa2b16,0x9959d56d,0xbd99d61a,0x18762916,0xbc4f19db,0x49c1ac80,0xcc7cce50,0xd846bd83,0x4d59ebaa,0xa9202849,0x8775a9dc,0x6e1f4ca9,0x07ec4ae1,0xba893f11,0x27eb5875 +.long 0x662cc565,0x00284d51,0x0db4138d,0x82353a6b,0xaa32a594,0xd9c7aaaa,0xa5669c47,0xf5528b5e,0x2f23c5ff,0xf3220231,0x6affa3a1,0xe3e8147a,0x202ddda0,0xfb423d5c,0x6b871bd4,0x3d6414ac +.long 0xa51a168a,0x586f82e1,0x48ae5448,0xb712c671,0x76233eb8,0x9a2e4bd1,0x78811ca9,0x0188223a,0xf7c18de1,0x553c5e21,0xb27bb286,0x7682e451,0x0e51e929,0x3ed036b3,0xec9cb34f,0xf487211b +.long 0x0c24efc8,0x0d094277,0xbef737a4,0x0349fd04,0x514cdd28,0x6d1c9dd2,0x30da9521,0x29c135ff,0xf78b0b6f,0xea6e4508,0x678c143c,0x176f5dd2,0x4be21e65,0x08148418,0xe7df38c4,0x27f7525c +.long 0x748ab1a4,0x1fb70e09,0x5efe4433,0x9cba50a0,0x15f75af2,0x7846c7a6,0x5ee73ea8,0x2a7c2c57,0x3f0a449a,0x42e566a4,0xad90fc3d,0x45474c3b,0x8b61d057,0x7447be3d,0x3a4ec092,0x3e9d1cf1 +.long 0xf380a6e6,0x1603e453,0x9b1437c2,0x0b86e431,0xef29610a,0x7a4173f2,0xf03d57f7,0x8fa729a7,0x6c9c217e,0x3e186f6e,0x91919524,0xbe1d3079,0x153d4fb1,0x92a62a70,0xd68c2f71,0x32ed3e34 +.long 0x9eb1a8b7,0xd785027f,0xc5b22fe8,0xbc37eb77,0xb9d6a191,0x466b34f0,0x9a05f816,0x008a89af,0x7d42c10a,0x19b028fb,0x49b3f6b8,0x7fe8c92f,0xa5a0ade3,0x58907cc0,0x559d1a7c,0xb3154f51 +.long 0xd9790ed6,0x5066efb6,0xa6aa793b,0xa77a0cbc,0x223e042e,0x1a915f3c,0x69c5874b,0x1c5def04,0x73b6c1da,0x0e830078,0xfcd8557a,0x55cf85d2,0x0460f3b1,0x0f7c7c76,0x46e58063,0x87052acb +.long 0x907eae66,0x09212b80,0x4d721c89,0x3cb068e0,0xdd45ac1c,0xa87941ae,0x0daa0dbb,0xde8d5c0d,0xe3502e6e,0xda421fdc,0x4d89a084,0xc8944201,0xf0c24bfb,0x7307ba5e,0x20bde0ef,0xda212beb +.long 0xf82ce682,0xea2da24b,0x07f71fe4,0x058d3816,0x5ffad8de,0x35a02462,0xaadcefab,0xcd7b05dc,0x1d9f54ec,0xd442f8ed,0xb2d3b5ca,0x8be3d618,0xe06b2ce2,0xe2220ed0,0x1b0da4c0,0x82699a5f +.long 0x71c0c3a7,0x3ff106f5,0x0d34180c,0x8f580f5a,0x22d7d375,0x4ebb120e,0xe9513675,0x5e5782cc,0x99c82a70,0x2275580c,0x15ea8c4c,0xe8359fbf,0x7b415e70,0x53b48db8,0x100c6014,0xaacf2240 +.long 0xe4652f1d,0x9faaccf5,0xd56157b2,0xbd6fdd2a,0x6261ec50,0xa4f4fb1f,0x476bcd52,0x244e55ad,0x047d320b,0x881c9305,0x6181263f,0x1ca983d5,0x278fb8ee,0x354e9a44,0x396e4964,0xad2dbc0f +.long 0x9268b3de,0x723f3aa2,0xe6e0609a,0x0d1ca29a,0x6cf44252,0x794866aa,0x01af87ed,0x0b59f3e3,0x7f4a6c51,0xe234e5ff,0x61dc2f7e,0xa8768fd2,0x0a94d81f,0xdafc7332,0x06938ce1,0xd7f84282 +.long 0x0546063e,0xae0b3c0e,0x5d61abc6,0x7fbadcb2,0x369ac400,0xd5d7a2c9,0xae67d10c,0xa5978d09,0x4f85eaac,0x290f211e,0xfacac681,0xe61e2ad1,0x388384cd,0xae125225,0xccfde30f,0xa7fb68e9 +.long 0x3daed4c2,0x7a59b936,0x2606f789,0x80a9aa40,0xf6a6d90a,0xb40c1ea5,0x514d5885,0x948364d3,0x70985182,0x062ebc60,0x33310895,0xa6db5b0e,0xe329c2f5,0x64a12175,0x90ea237e,0xc5f25bd2 +.long 0x2d0a4c23,0x7915c524,0x6bb3cc52,0xeb5d26e4,0xc09e2c92,0x369a9116,0xcf182cf8,0x0c527f92,0x2aede0ac,0x9e591938,0x6cc34939,0xb2922208,0x99a34361,0x3c9d8962,0xc1905fe6,0x3c81836d +.long 0xa001ec5a,0x4bfeb57f,0xa0dc5dba,0xe993f5bb,0x724a1380,0x47884109,0x32fe9a04,0x8a0369ab,0x8c927db8,0xea068d60,0x94655741,0xbf5f37cf,0x04b6c7ea,0x47d402a2,0x6af259cb,0x4551c295 +.long 0xed77ee8b,0x698b71e7,0xf309d5c7,0xbddf7bd0,0x34e780ca,0x6201c22c,0x4c295ef4,0xab04f7d8,0x4313a8ce,0x1c947294,0x92ca4cfe,0xe532e4ac,0xd0a7a97a,0x89738f80,0xa580fd5b,0xec088c88 +.long 0x42ce9e51,0x612b1ecc,0xb25fdd2a,0x8f9840fd,0x01e7f839,0x3cda78c0,0xece05480,0x546b3d3a,0x80d30916,0x271719a9,0x584c20c4,0x45497107,0x5bc78608,0xaf8f9478,0x277e2a4c,0x28c7d484 +.long 0x88a2ffe4,0xfce01767,0x28e169a5,0xdc506a35,0x7af9c93a,0x0ea10861,0x03fa0e08,0x1ed24361,0xa3d694e7,0x96eaaa92,0xef50bc74,0xc0f43b4d,0x64114db4,0xce6aa58c,0x7c000fd4,0x8218e8ea +.long 0x185f8844,0xac815dfb,0x1557abfb,0xcd7e90cb,0xafbfecdf,0x23d16655,0x085cac4a,0x80f3271f,0xd0e62f47,0x7fc39aa7,0x460a48e5,0x88d519d1,0xd28f101e,0x59559ac4,0xca9ae816,0x7981d9e9 +.long 0x9ac38203,0x5c38652c,0x57657fe5,0x86eaf87f,0xe21f5416,0x568fc472,0xe7e597b5,0x2afff39c,0x256d4eab,0x3adbbb07,0x8285ab89,0x22598692,0x041caefe,0x35f8112a,0xa5064c8b,0x95df02e3 +.long 0xc7004bf3,0x4d63356e,0xdb83c7de,0x230a08f4,0x8709a7b7,0xca27b270,0xcb9abd2d,0x0d1c4cc4,0x7550fee8,0x8a0bc66e,0x9cf7247e,0x369cd4c7,0x92b5b7e7,0x75562e84,0x5802af7b,0x8fed0da0 +.long 0xe48fb889,0x6a7091c2,0x7b8a9d06,0x26882c13,0x1b82a0e2,0xa2498663,0x3518152d,0x844ed736,0xd86e27c7,0x282f476f,0x04afefdc,0xa04edaca,0x6119e34d,0x8b256ebc,0x0787d78b,0x56a413e9 +.long 0x5a74be50,0x82ee061d,0xdea16ff5,0xe41781c4,0x99bfc8a2,0xe0b0c81e,0x0b547e2d,0x624f4d69,0xbdcc9ae4,0x3a83545d,0x409b1e8e,0x2573dbb6,0xa6c93539,0x482960c4,0x5ae18798,0xf01059ad +.long 0x3112795f,0x715c9f97,0x984e6ee1,0xe8244437,0xecb66bcd,0x55cb4858,0xabaffbee,0x7c136735,0x5dbec38e,0x54661595,0x388ad153,0x51c0782c,0xc6e0952f,0x9ba4c53a,0x1b21dfa8,0x27e6782a +.long 0x4ed2dbc2,0x682f903d,0x7c3b2d83,0x0eba59c8,0x9c7e9335,0x8e9dc84d,0x0eb226d7,0x5f9b21b0,0xaf267bae,0xe33bd394,0xbe2e15ae,0xaa86cc25,0x6a8ec500,0x4f0bf67d,0xf9630658,0x5846aa44 +.long 0xe2c2bf15,0xfeb09740,0xa9e99704,0x627a2205,0xc2fbc565,0xec8d73d0,0xc20c8de8,0x223eed8f,0xa8363b49,0x1ee32583,0xc9c2b0a6,0x1a0b6cb9,0x90dbc85c,0x49f7c3d2,0x1ef4c1ac,0xa8dfbb97 +.long 0x65c7c2ab,0xafb34d4c,0xe2c5ea84,0x1d4610e7,0x973c4ab5,0x893f6d1b,0x945ba5c4,0xa3cdd7e9,0x064417ee,0x60514983,0xad6bdf2b,0x1459b23c,0x5cf726c3,0x23b2c341,0x32d6354a,0x3a829635 +.long 0xab192c18,0x294f901f,0x7030164f,0xec5fcbfe,0xe2246ba6,0xe2e2fcb7,0x221a1a0c,0x1e7c88b3,0xc92d88c5,0x72c7dd93,0x1106fb59,0x41c2148e,0xa0f60f14,0x547dd4f5,0x63960f31,0xed9b52b2 +.long 0xb0a5b358,0x6c8349eb,0x9e7e2ed6,0xb154c5c2,0xeda462db,0xcad5eccf,0x2de66b69,0xf2d6dbe4,0x8665e5b2,0x426aedf3,0x7b7f5723,0x488a8513,0x8bcbb386,0x15cc43b3,0xd791d879,0x27ad0af3 +.long 0x846e364f,0xc16c236e,0xdea50ca0,0x7f33527c,0x0926b86d,0xc4810775,0x0598e70c,0x6c2a3609,0xf024e924,0xa6755e52,0x9db4afca,0xe0fa07a4,0x66831790,0x15c3ce7d,0xa6cbb0d6,0x5b4ef350 +.long 0xb6205969,0x2c4aafc4,0xf6c7854f,0x42563f02,0x1d983b48,0x016aced5,0x99949755,0xfeb356d8,0xd1a39bd7,0x8c2a2c81,0xe6934ae9,0x8f44340f,0x447904da,0x148cf91c,0x0f51a926,0x7340185f +.long 0x7409ab46,0x2f8f00fb,0x80e289b2,0x057e78e6,0xa888e5d1,0x03e5022c,0x9dede4e2,0x3c87111a,0x7809460b,0x5b9b0e1c,0x71c9abc7,0xe751c852,0xc7cc1dc9,0x8b944e28,0x1d3cfa08,0x4f201ffa +.long 0x3e6721ce,0x02fc905c,0xd0b3674c,0xd52d70da,0x18810da4,0x5dc2e5ca,0x5c69dd99,0xa984b273,0x84de5ca4,0x63b92527,0xc852dec4,0x2f1c9872,0xc2e3de09,0x18b03593,0x9813dc2f,0x19d70b01 +.long 0xa6dc1d29,0x42806b2d,0xf871e144,0xd3030009,0xaaf49276,0xa1feb333,0xc70bc04b,0xb5583b9e,0x95695f20,0x1db0be78,0x89d012b5,0xfc841811,0x05f61643,0x6409f272,0xd5883128,0x40d34174 +.long 0x67419833,0xd79196f5,0x863b7b08,0x6059e252,0x1c56700c,0x84da1817,0xb28d3ec4,0x5758ee56,0x013b0ea6,0x7da2771d,0x54c5e9b9,0xfddf524b,0x24305d80,0x7df4faf8,0x3a97763f,0x58f5c1bf +.long 0x7c696042,0xa5af37f1,0x4a2538de,0xd4cba22c,0x9ea42600,0x211cb995,0x7b069889,0xcd105f41,0xddb81e74,0xb1e1cf19,0x5157b8ca,0x472f2d89,0xee9db885,0x086fb008,0x0f26d131,0x365cd570 +.long 0xa2be7053,0x284b02bb,0x7ab9a6d6,0xdcbbf7c6,0x20f7a530,0x4425559c,0x188767c8,0x961f2dfa,0x70dc80c4,0xe2fd9435,0xf0784120,0x104d6b63,0x53567122,0x7f592bc1,0xf688ad77,0xf6bc1246 +.long 0x0f15dde9,0x05214c05,0x0d5f2b82,0xa47a76a8,0x62e82b62,0xbb254d30,0x3ec955ee,0x11a05fe0,0x9d529b36,0x7eaff46e,0x8f9e3df6,0x55ab1301,0x99317698,0xc463e371,0xccda47ad,0xfd251438 +.long 0x23d695ea,0xca9c3547,0x16e589b5,0x48ce626e,0xb187d086,0x6b5b64c7,0xb2207948,0xd02e1794,0x7198111d,0x8b58e98f,0xdcf9c3cc,0x90ca6305,0xf34089b0,0x5691fe72,0xfc7c80ff,0x60941af1 +.long 0x22eb51e5,0xa09bc0a2,0xaa9cf09a,0xc0bb7244,0x80159f06,0x36a8077f,0xdddc560e,0x8b5c989e,0x512e1f43,0x19d2f316,0xad08ff62,0x02eac554,0x07d20b4e,0x012ab84c,0xd6d4e4e1,0x37d1e115 +.long 0xab7b19a8,0xb6443e1a,0xdef8cd45,0xf08d067e,0x685e03da,0x63adf3e9,0x4792b916,0xcf15a10e,0xb738a425,0xf44bcce5,0x9636b2fd,0xebe131d5,0x7850d605,0x94068841,0xb40d749d,0x09684eaa +.long 0x72ba075b,0x8c3c669c,0xba469015,0x89f78b55,0x3e9f8ba8,0x5706aade,0xb32d7ed7,0x6d8bd565,0x805f08d6,0x25f4e63b,0xc3bcc1b5,0x7f48200d,0xb025d847,0x4e801968,0x87cbe0a8,0x74afac04 +.long 0x7e63d690,0x43ed2c2b,0x0223cdb8,0xefb6bbf0,0x2884d3fe,0x4fec3cae,0xd75e25a4,0x065ecce6,0x69f79071,0x6c2294ce,0x044b8666,0x0d9a8e5f,0x17b69d8f,0x5009f238,0xc5dfdaf7,0x3c29f8fe +.long 0xebae68c4,0x9067528f,0x30c5ba21,0x5b385632,0x1fdd1aec,0x540df119,0xcfba4c78,0xcf37825b,0xbeb11454,0x77eff980,0x60c1b066,0x40a1a991,0xf889a1c7,0xe8018980,0x76c24be0,0xb9c52ae9 +.long 0x45650ef4,0x05fbbcce,0x8aa29ac7,0xae000f10,0x4f04c470,0x884b7172,0x19bb5c25,0x7cd4fde2,0xe8840869,0x6477b22a,0x5fbd0686,0xa8868859,0x1116dfba,0xf23cc02e,0xd87d7776,0x76cd563f +.long 0xa9d82abf,0xe2a37598,0xe6c170f5,0x5f188ccb,0x5066b087,0x81682200,0xc7155ada,0xda22c212,0xfbddb479,0x151e5d3a,0x6d715b99,0x4b606b84,0xf997cb2e,0x4a73b54b,0x3ecd8b66,0x9a1bfe43 +.long 0x2a67d48a,0x1c312809,0x031fa9e2,0xcd6a671e,0x0e43a34a,0xbec3312a,0x55ef47d3,0x1d935639,0x8fea73ea,0x5ea02489,0xa035afb2,0x8247b364,0x5265b54c,0xb58300a6,0x722c7148,0x3286662f +.long 0xb4ec4c20,0xb77fd76b,0x0f3fe3fd,0xf0a12fa7,0x41d8c7e8,0xf845bbf5,0x5ec10aa8,0xe4d969ca,0x43e232a3,0x4c0053b7,0x37f8a45a,0xdc7a3fac,0x20d81c8f,0x3c4261c5,0xb00eab00,0xfd4b3453 +.long 0xd36e3062,0x76d48f86,0xa143ff02,0x626c5277,0xaf76f42e,0x538174de,0x6407ceac,0x2267aa86,0x72e572d5,0xfad76351,0xba7330eb,0xab861af7,0x418d8657,0xa0a1c8c7,0x20289a52,0x988821cb +.long 0xcccc18ad,0x79732522,0xf1a6e027,0xaadf3f8d,0x17c2354d,0xf7382c93,0xd818b689,0x5ce1680c,0xd9ecbee9,0x359ebbfc,0x1cae62ac,0x4330689c,0xc51ac38a,0xb55ce5b4,0xfe238ee8,0x7921dfea +.long 0x271d1ca5,0x3972bef8,0xe8aabd18,0x3e423bc7,0x44a3e5e3,0x57b09f3f,0x7b444d66,0x5da886ae,0xa9964375,0x68206634,0x699cd0ff,0x356a2fa3,0xdba515e9,0xaf0faa24,0xb321d79a,0x536e1f5c +.long 0x5c04e4ea,0xd3b9913a,0xd6f11513,0xd549dcfe,0x79fd1d94,0xee227bf5,0xb43f2c67,0x9f35afee,0xf1314f53,0xd2638d24,0xcabcd822,0x62baf948,0x4ef48db0,0x5542de29,0xfc5f6bb2,0xb3eb6a04 +.long 0x1208e16a,0x23c110ae,0xf8363e24,0x1a4d15b5,0x164be00b,0x30716844,0xf6f4690d,0xa8e24824,0x90b170cf,0x548773a2,0x42f191f4,0xa1bef331,0x9247aa97,0x70f418d0,0x48be9147,0xea06028e +.long 0xdbfb894e,0xe13122f3,0xce274b18,0xbe9b79f6,0xca58aadf,0x85a49de5,0x11487351,0x24957758,0xbb939099,0x111def61,0x26d13694,0x1d6a974a,0xd3fc253b,0x4474b4ce,0x4c5db15e,0x3a1485e6 +.long 0x147c15b4,0xe79667b4,0x7bc61301,0xe34f553b,0x17094381,0x032b80f8,0x723eaa21,0x55d8bafd,0xf1c0e74e,0x5a987995,0xebba289c,0x5a9b292e,0xeb4c8251,0x413cd4b2,0xd162db0a,0x98b5d243 +.long 0x68342520,0xbb47bf66,0xbaa862d1,0x08d68949,0xe906abcd,0x11f349c7,0xed7bf00e,0x454ce985,0xb55b803b,0xacab5c9e,0x31e3c16d,0xb03468ea,0xd273bf12,0x5c24213d,0x71587887,0x211538eb +.long 0x731dea2d,0x198e4a2f,0x74ed7b2a,0xd5856cf2,0x13a664fe,0x86a632eb,0xbda41291,0x932cd909,0xc0c4ddc0,0x850e95d4,0x347fc2c9,0xc0f422f8,0x86076bcb,0xe68cbec4,0xcd6cd286,0xf9e7c0c0 +.long 0x0f5f27ca,0x65994ddb,0xa80d59ff,0xe85461fb,0x66601023,0xff05481a,0xfc9ebbfb,0xc665427a,0x7587fd52,0xb0571a69,0x8d49efce,0x935289f8,0xea420688,0x61becc60,0x13a786af,0xb22639d9 +.long 0x361ecf90,0x1a8e6220,0x25506463,0x001f23e0,0x0a5c2b79,0xe4ae9b5d,0xd8149db5,0xebc9cdad,0x934aa728,0xb33164a1,0xae9b60f3,0x750eb00e,0x9b9cfbfd,0x5a91615b,0xef45f7f6,0x97015cbf +.long 0xbf5151df,0xb462c4a5,0xb07118f2,0x21adcc41,0x043fa42c,0xd60c545b,0xe96be1ab,0xfc21aa54,0x4e51ea80,0xe84bc32f,0x259b5d8d,0x3dae45f0,0xc38f1b5e,0xbb73c7eb,0xe8ae617d,0xe405a74a +.long 0x9f1c56bd,0xbb1ae9c6,0x49f196a4,0x8c176b98,0x6875092b,0xc448f311,0x9f976033,0xb5afe3de,0x145813e5,0xa8dafd49,0xe2b34226,0x687fc4d9,0x4c7ff57f,0xf2dfc92d,0x401f1b46,0x004e3fc1 +.long 0x1430c9ab,0x5afddab6,0x2238e997,0x0bdd41d3,0x418042ae,0xf0947430,0xcdddc4cb,0x71f9adda,0xc52dd907,0x7090c016,0x29e2047f,0xd9bdf44d,0x1b1011a6,0xe6f1fe80,0xd9acdc78,0xb63accbc +.long 0x1272a95b,0xcfc7e235,0xa6276ac8,0x0c667717,0xe2d7eef7,0x3c0d3709,0x9a685b3e,0x5add2b06,0x14ea5d65,0x363ad32d,0x8d7dd506,0xf8e01f06,0x75b4aac6,0xc9ea2213,0x0d353466,0xed2a2bf9 +.long 0xe9d3a7c3,0x439d79b5,0x81b7f34b,0x8e0ee5a6,0x1dc4ba75,0xcf3dacf5,0xeb3310c7,0x1d3d1773,0x7747ae83,0xa8e67112,0x197d6b40,0x31f43160,0xcd961400,0x0521ccee,0xf6535768,0x67246f11 +.long 0xef0c3133,0x702fcc5a,0x7e16693b,0x247cc45d,0xc729b749,0xfd484e49,0xb218320f,0x522cef7d,0x59ab93b3,0xe56ef405,0x9f181071,0x225fba11,0x15330ed0,0x33bd6595,0x1ddb32f7,0xc4be69d5 +.long 0x0448087c,0x264c7668,0x71432dae,0xac30903f,0x00f9bf47,0x3851b266,0x6cdd6d03,0x400ed311,0xf8fd2424,0x045e79fe,0xfa6da98b,0xfdfd974a,0x0c1e673a,0x45c9f641,0x5b2c5168,0x76f2e733 +.long 0x2a601753,0x1adaebb5,0xc57c2d49,0xb286514c,0x1e0bfd24,0xd8769670,0x04478922,0x950c547e,0xe5d32bfe,0xd1d41969,0x750d6c3e,0x30bc1472,0xe0e27f3a,0x8f3679fe,0xa4a6ee0c,0x8f64a7dc +.long 0x633dfb1f,0x2fe59937,0x977f2547,0xea82c395,0x661ea646,0xcbdfdf1a,0xb9085451,0xc7ccc591,0x81761e13,0x82177962,0x9196885c,0xda57596f,0x28ffbd70,0xbc17e849,0x2671d36f,0x1e6e0a41 +.long 0x4152fcf5,0x61ae872c,0x9e77e754,0x441c87b0,0xa34dff09,0xd0799dd5,0x88a6b171,0x766b4e44,0x11f1c792,0xdc06a512,0x4be35c3e,0xea02ae93,0xe90c469e,0xe5ca4d6d,0x56e4ff5c,0x4df4368e +.long 0x4baef62e,0x7817acab,0xa85b91e8,0x9f5a2202,0x6ce57610,0x9666ebe6,0xf73bfe03,0x32ad31f3,0x25bcf4d6,0x628330a4,0x515056e6,0xea950593,0xe1332156,0x59811c89,0x8c11b2d7,0xc89cf1fe +.long 0x04e60cc0,0x75b63913,0x4625d375,0xce811e8d,0x2d26e562,0x030e43fc,0x608d36a0,0xfbb30b4b,0x48528118,0x634ff82c,0xcd285911,0x7c6fe085,0x99358f28,0x7f2830c0,0x665e6c09,0x2e60a95e +.long 0x9b785dbf,0x08407d3d,0xa759bce7,0x530889ab,0x52f61239,0xf228e0e6,0x6879be3c,0x2b6d1461,0x51a7bbf7,0xe6902c04,0x76f24a64,0x30ad99f0,0x98bc6da0,0x66d9317a,0xcb596ac0,0xf4f877f3 +.long 0x4c44f119,0xb05ff62d,0xe9b77416,0x4555f536,0x8caed63b,0xc7c0d059,0xc358b2a9,0x0cd2b7ce,0x46945fa3,0x3f33287b,0xd67c8791,0xf8785b20,0x9637bd08,0xc54a7a61,0x18be79d7,0x54d4598c +.long 0xc46d7ce1,0x889e5acb,0x8b085877,0x9a515bb7,0x0b7a5050,0xfac1a03d,0xf2926035,0x7d3e738a,0x2a6cb0eb,0x861cc2ce,0x8f7adc79,0x6f2e2955,0x33016376,0x61c4d451,0x5ad59090,0xd9fd2c80 +.long 0xb2b836a1,0xe5a83738,0x7c0d6622,0x855b41a0,0x7cc19af1,0x186fe317,0xfdd99acb,0x6465c1ff,0x6974b99e,0x46e5c23f,0xa2717cbe,0x75a7cf8b,0x062be658,0x4d2ebc3f,0x5f209c98,0x094b4447 +.long 0xb940cb5a,0x4af285ed,0x7cc82f10,0x6706d792,0x030526fa,0xc8c8776c,0xa0da9140,0xfa8e6f76,0x591ee4f0,0x77ea9d34,0x40274166,0x5f46e337,0xea671457,0x1bdf98bb,0x862a1fe2,0xd7c08b46 +.long 0x1c08ad63,0x46cc303c,0x4c845e7b,0x99543440,0x48f36bf7,0x1b8fbdb5,0x8c8273a7,0x5b82c392,0x928435d5,0x08f712c4,0x79330380,0x071cf0f1,0xa8da054a,0xc74c2d24,0x43c46b5c,0xcb0e7201 +.long 0xc0b7eff3,0x0ad7337a,0xc5e48b3c,0x8552225e,0x73f13a5f,0xe6f78b0c,0x82349cbe,0x5e70062e,0xe7073969,0x6b8d5048,0xc33cb3d2,0x392d2a29,0x4ecaa20f,0xee4f727c,0x2ccde707,0xa068c99e +.long 0xb87a2913,0xfcd5651f,0x3cc252f0,0xea3e3c15,0x3b6cd3e4,0x777d92df,0xc5a732e7,0x7a414143,0xa71ff493,0xa895951a,0xbbd37cf6,0xfe980c92,0xdecfeeff,0x45bd5e64,0xa44c43e9,0x910dc2a9 +.long 0xcca9f54d,0xcb403f26,0x9303f6db,0x928bbdfb,0xa9eee67c,0x3c37951e,0xf79961c3,0x3bd61a52,0x395c9a79,0x09a238e6,0x61eb352d,0x6940ca2d,0xc1875631,0x7d1e5c5e,0x1e1b20d1,0x1e19742c +.long 0x23fc2e6e,0x4633d908,0x08959149,0xa76e29a9,0x84ed7da5,0x61069d9c,0x5dbcad51,0x0baa11cf,0x961849da,0xd01eec64,0xaf3d8c28,0x93b75f1f,0x1ca2ee44,0x57bc4f9f,0x00e00558,0x5a26322d +.long 0x61a023ef,0x1888d658,0xb9e5246e,0x1d72aab4,0xe5563ec0,0xa9a26348,0xc3439a43,0xa0971963,0xadb9b5b7,0x567dd54b,0xc45a524b,0x73fac1a1,0xfe38e608,0x8fe97ef7,0x3f384f48,0x608748d2 +.long 0xc486094f,0xb0571794,0x8bf3a8d6,0x869254a3,0x310b0e25,0x148a8dd1,0x9aa3f7d8,0x99ab9f3f,0x6706c02e,0x0927c68a,0x69790e6c,0x22b5e76c,0x6c71376c,0x6c325260,0x09ef6657,0x53a57690 +.long 0xedffcf3a,0x8d63f852,0x3c0a6f55,0xb4d2ed04,0x12519b9e,0xdb3aa8de,0x1e0a569a,0x5d38e9c4,0x303747e2,0x871528bf,0xf5b5c18d,0xa208e77c,0xca6bf923,0x9d129c88,0xbf02839f,0xbcbf197f +.long 0x27323194,0x9b9bf030,0x339ca59d,0x3b055a8b,0x0f669520,0xb46b2312,0x497e5f24,0x19789f1f,0xaaf01801,0x9c499468,0x8b69d59c,0x72ee1190,0xacf4c079,0x8bd39595,0x8e0cd048,0x3ee11ece +.long 0x1ed66f18,0xebde86ec,0xd61fce43,0x225d906b,0xe8bed74d,0x5cab07d6,0x27855ab7,0x16e4617f,0xb2fbc3dd,0x6568aadd,0x8aeddf5b,0xedb5484f,0x6dcf2fad,0x878f20e8,0x615f5699,0x3516497c +.long 0xfa181e69,0xef0a3fec,0x30d69a98,0x9ea02f81,0x66eab95d,0xb2e9cf8e,0x24720021,0x520f2beb,0x1df84361,0x621c540a,0x71fa6d5d,0x12037721,0x0ff5f6ff,0x6e3c7b51,0xabb2bef3,0x817a069b +.long 0xb294cda6,0x83572fb6,0xb9039f34,0x6ce9bf75,0x095cbb21,0x20e012f0,0xd063f0da,0xa0aecc1b,0xf02909e5,0x57c21c3a,0x48ce9cdc,0xc7d59ecf,0x8ae336f8,0x2732b844,0x3f4f85f4,0x056e3723 +.long 0x89e800ca,0x8a10b531,0x145208fd,0x50fe0c17,0xb714ba37,0x9e43c0d3,0x34189acc,0x427d200e,0xe616e2c0,0x05dee24f,0xee1854c1,0x9c25f4c8,0x8f342a73,0x4d3222a5,0xa027c952,0x0807804f +.long 0x4f0d56f3,0xc222653a,0xca28b805,0x961e4047,0x4a73434b,0x2c03f8b0,0xab712a19,0x4c966787,0x864fee42,0xcc196c42,0x5b0ece5c,0xc1be93da,0xc131c159,0xa87d9f22,0xdce45655,0x2bb6d593 +.long 0xb809b7ce,0x22c49ec9,0xe2c72c2c,0x8a41486b,0xfea0bf36,0x813b9420,0xa66dac69,0xb3d36ee9,0x328cc987,0x6fddc08a,0x3a326461,0x0a3bcd2c,0xd810dbba,0x7103c49d,0x4b78a4c4,0xf9d81a28 +.long 0xe4d55941,0x3de865ad,0x30384087,0xdedafa5e,0x4ef18b9b,0x6f414abb,0xfaee5268,0x9ee9ea42,0x37a55a4a,0x260faa16,0x015f93b9,0xeb19a514,0x9e9c3598,0x51d7ebd2,0x1932178e,0x523fc56d +.long 0xb98fe684,0x501d070c,0x124a1458,0xd60fbe9a,0x92bc6b3f,0xa45761c8,0xfe6f27cb,0xf5384858,0xb59e763b,0x4b0271f7,0x5b5a8e5e,0x3d4606a9,0x05a48292,0x1eda5d9b,0xe6fec446,0xda7731d0 +.long 0x90d45871,0xa3e33693,0x06166d8d,0xe9764040,0x89a90403,0xb5c33682,0x72f1d637,0x4bd17983,0xd5d2c53a,0xa616679e,0xfdcf3b87,0x5ec4bcd8,0xb66a694e,0xae6d7613,0xe3fc27e5,0x7460fc76 +.long 0x95caabee,0x70469b82,0x889501e3,0xde024ca5,0x076ed265,0x6bdadc06,0x5a0ef8b2,0x0cb1236b,0x0972ebf9,0x4065ddbf,0x22aca432,0xf1dd3875,0x744aff76,0xa88b97cf,0xfe8e3d24,0xd1359afd +.long 0x91502cf3,0x52a3ba2b,0x084db75d,0x2c3832a8,0xde30b1c9,0x04a12ddd,0xe31fd60c,0x7802eabc,0xa37fddab,0x33707327,0xfaafa973,0x65d6f2ab,0x11e6f91a,0x3525c5b8,0x5f46530b,0x76aeb0c9 +.long 0x2f93a675,0xe8815ff6,0x05f48679,0xa6ec9684,0x358ae884,0x6dcbb556,0xe19e3873,0x0af61472,0xa5f696be,0x72334372,0x6f22fb70,0xc65e57ea,0x946cea90,0x268da30c,0x65681b2a,0x136a8a87 +.long 0x0f9f44d4,0xad5e81dc,0x2c46585a,0xf09a6960,0xc447d1b1,0xd1649164,0x879dc8b1,0x3b4b36c8,0x3b6b234c,0x20d4177b,0x1730d9d0,0x096a2505,0xef80531d,0x0611b9b8,0x64bb495d,0xba904b3b +.long 0x93a3147a,0x1192d9d4,0x9a565545,0x9f30a5dc,0x6ef07212,0x90b1f9cb,0x0d87fc13,0x29958546,0xc17db9ba,0xd3323eff,0xcb1644a8,0xcb18548c,0x4f49ffbc,0x18a306d4,0x4c2e8684,0x28d658f1 +.long 0xa99f8c71,0x44ba60cd,0x4bf742ff,0x67b7abdb,0x914b3f99,0x66310f9c,0xf412c161,0xae430a32,0x88ace52f,0x1e6776d3,0x52d7067d,0x4bc0fa24,0x8f07cd1b,0x03c286aa,0xa985b2c1,0x4cb8f38c +.long 0x8c3bff36,0x83ccbe80,0x5263e575,0x005a0bd2,0x259bdcd1,0x460d7dda,0xfa5cab6b,0x4a1c5642,0x9fe4fc88,0x2b7bdbb9,0xcc97bbb5,0x09418e28,0xa12321ae,0xd8274fb4,0x5c87b64e,0xb137007d +.long 0xc63c4962,0x80531fe1,0x981fdb25,0x50541e89,0xfd4c2b6b,0xdc1291a1,0xa6df4fca,0xc0693a17,0x0117f203,0xb2c4604e,0x0a99b8d0,0x245f1963,0xc6212c44,0xaedc20aa,0x520f52a8,0xb1ed4e56 +.long 0xf8547be3,0xfe48f575,0xa9e45f98,0x0a7033cd,0x18c50100,0x4b45d3a9,0xa61d41da,0xb2a6cd6a,0x57933c6b,0x60bbb4f5,0x2b0d7ffc,0xa7538ebd,0x8cd626b6,0x9ea3ab8d,0x3601625a,0x8273a484 +.long 0x0168e508,0x88859845,0x99a94abd,0x8cbc9bb2,0xfab0a671,0x713ac792,0x6c9ebffc,0xa3995b19,0x1239e152,0xe711668e,0xbbb8dff4,0x56892558,0xdbf17963,0x8bfc7dab,0xb3de1253,0x5b59fe5a +.long 0x34a9f7ae,0x7e3320eb,0xd751efe4,0xe5e8cf72,0xd9be2f37,0x7ea003bc,0xb6c08ef7,0xc0f551a0,0x038f6725,0x56606268,0x6d92d3b6,0x1dd38e35,0xc3cbd686,0x07dfce7c,0x651c5da8,0x4e549e04 +.long 0x08b19340,0x4058f93b,0xcac6d89d,0xc2fae6f4,0x8f159cc7,0x4bad8a8c,0xcb0b601c,0x0ddba4b3,0x1dd95f8c,0xda4fc7b5,0xcea5c255,0x1d163cd7,0x274a8c4c,0x30707d06,0x2802e9ce,0x79d9e008 +.long 0xe6ddd505,0x02a29ebf,0xb50bed1a,0x37064e74,0xa7327d57,0x3f6bae65,0xf83920bc,0x3846f5f1,0x60df1b9b,0x87c37491,0x2d1da29f,0x4cfb2895,0x4ed1743c,0x10a478ca,0x3edd47c6,0x390c6030 +.long 0x8c0a78de,0x8f3e5312,0x1e85df70,0xccd02bda,0xa61b6582,0xd6c75c03,0xfc0eebd1,0x0762921c,0xd85010c0,0xd34d0823,0x0044cf1f,0xd73aaacb,0xa3b5e78a,0xfb4159bb,0xe5826f3f,0x2287c7f7 +.long 0x580b1a01,0x4aeaf742,0x60423b79,0xf080415d,0xa7dea144,0xe12622cd,0x59d62472,0x49ea4996,0x571f3913,0xb42991ef,0xf5b25a8a,0x0610f214,0x30b79e8f,0x47adc585,0x07a065a2,0xf90e3df6 +.long 0x43e2e034,0x5d0a5deb,0x444024aa,0x53fb5a34,0x6b0c9f7f,0xa8628c68,0xac563656,0x9c69c29c,0xbace47b6,0x5a231feb,0x9ea5a2ec,0xbdce0289,0x9463853e,0x05da1fac,0x509e78aa,0x96812c52 +.long 0x57151692,0xd3fb5771,0xd98e1c44,0xeb2721f8,0x32399be1,0xc0506087,0xd979d8b8,0xda5a5511,0xc6f56780,0x737ed55d,0x0dc7a7f4,0xe20d3004,0xf5941a03,0x02ce7301,0xed30f83a,0x91ef5215 +.long 0x4092d85f,0x28727fc1,0x5c49e41a,0x72d223c6,0xba6a4d81,0xa7cf30a2,0xb030d87d,0x7c086209,0xfc588b09,0x04844c7d,0x5874bbb0,0x728cd499,0xe84c0495,0xcc1281ee,0xec31958f,0x0769b5ba +.long 0xf99c2471,0x665c228b,0x191eb110,0xf2d8a11b,0xd36d7024,0x4594f494,0xcdcb25a1,0x482ded8b,0xdadd4885,0xc958a9d8,0xf1d2b547,0x7004477e,0x2a0af550,0x0a45f6ef,0x2f8d6351,0x4fc739d6 +.long 0x786f08a9,0x75cdaf27,0x42c2737f,0x8700bb26,0x1c4e2670,0x855a7141,0x15076fef,0x810188c1,0xabcd3297,0xc251d0c9,0xf48108eb,0xae4c8967,0x18ceed30,0xbd146de7,0xc986bced,0xf9d4f07a +.long 0x83fa1e08,0x5ad98ed5,0xbeabd1fb,0x7780d33e,0x903b1196,0xe330513c,0xa47bc8c4,0xba11de9e,0x02c2d064,0x684334da,0xa48de23b,0x7ecf360d,0x0a9089d8,0x57a1b474,0xff36734c,0xf28fa439 +.long 0xea4570b3,0xf2a482cb,0xa5ebcee9,0xee65d68b,0xb9694cd5,0x988d0036,0x37885d32,0x53edd0e9,0xbeb9bc6d,0xe37e3307,0x9f5c6768,0xe9abb907,0x51f2160f,0x4396ccd5,0x47336da6,0x2500888c +.long 0x926fce43,0x383f9ed9,0x04da2930,0x809dd1c7,0x8a4cb227,0x30f6f596,0x73a56b38,0x0d700c7f,0xab64a065,0x1825ea33,0x1338df80,0xaab9b735,0x9b63f57f,0x1516100d,0x27a6a634,0x2574395a +.long 0x700a1acd,0xb5560fb6,0xfd999681,0xe823fd73,0x6cb4e1ba,0xda915d1f,0x6ebe00a3,0x0d030118,0x89fca8cd,0x744fb0c9,0xf9da0e0b,0x970d01db,0x7931d76f,0x0ad8c564,0xf659b96a,0xb15737bf +.long 0xa8b484e7,0xdc9933e8,0x7a26dec7,0xb2fdbdf9,0x9f1f0136,0x2349e9a4,0x70fddddb,0x7860368e,0xf9ad3e18,0xd93d2c1c,0x689f4e79,0x6d6c5f17,0xb24ff1b6,0x7a544d91,0xfe16cd8c,0x3e12a5eb +.long 0xa56b872f,0x543574e9,0xfcf68ea2,0xa1ad550c,0x3f560ef7,0x689e37d2,0xc9d47a8b,0x8c54b9ca,0x088ac342,0x46d40a4a,0x1576c6d0,0xec450c7c,0x1f9689e9,0xb589e31c,0xb8781718,0xdacf2602 +.long 0xc8cb6b42,0xa89237c6,0xb96ef381,0x1326fc93,0xb5f07825,0x55d56c6d,0x7449e22d,0xacba2eea,0x633c3000,0x74e0887a,0xd7cbcf71,0xcb6cd172,0xc36cf1be,0x309e81de,0x60ae399b,0x07a18a6d +.long 0x9edce57e,0xb36c2679,0xdf001d41,0x52b892f4,0x16a1f2c6,0xd884ae5d,0xefcc370a,0x9b329424,0xbd2e21df,0x3120daf2,0x02470a99,0x55298d2d,0xa05db32e,0x0b78af6c,0x601f5636,0x5c76a331 +.long 0xf8a4f29c,0xaae861ff,0xd68f8d49,0x70dc9240,0x81b1321c,0x960e649f,0x8792e4ce,0x3d2c801b,0x42521876,0xf479f772,0x416c79b1,0x0bed93bc,0x263e5bc9,0xa67fbc05,0x521db049,0x01e8e630 +.long 0xc6f3431e,0x76f26738,0xe3267541,0xe609cb02,0x818c877c,0xb10cff2d,0x786a13cb,0x1f0e75ce,0x1158544d,0xf4fdca64,0x6cb71ed0,0x5d777e89,0xa9aa4755,0x3c233737,0xe527ab40,0x7b453192 +.long 0x39f05ffe,0xdb59f688,0x6d82574e,0x8f4f4be0,0xee292d1b,0xcce3450c,0x61ccd086,0xaa448a12,0xf7914967,0xabce91b3,0x1908a5ed,0x4537f09b,0xf51042e7,0xa812421e,0xec0b3a34,0xfaf5cebc +.long 0x4ca6b39a,0x730ffd87,0x02efd342,0x70fb72ed,0xd75c8edb,0xeb4735f9,0xc278aa51,0xc11f2157,0xbf3bfebf,0xc459f635,0x6bd9601f,0x3a1ff0b4,0xc420cb73,0xc9d12823,0x3c2915a3,0x3e9af3e2 +.long 0xb41c3440,0xe0c82c72,0xe3039a5f,0x175239e5,0x558795a3,0xe1084b8a,0xd01e5c60,0x328d0a1d,0xd3788a04,0x0a495f2e,0x66c11a9f,0x25d8ff16,0x9ed692d6,0xf5155f05,0x4f425fe4,0x954fa107 +.long 0xe98aaa99,0xd16aabf2,0x96b0f88a,0x90cd8ba0,0xc154026a,0x957f4782,0x52af56d2,0x54ee0734,0x45b4147a,0xbcf89e54,0x9a52816c,0x3d102f21,0x39b62e77,0x6808517e,0x69169ad8,0x92e25421 +.long 0xbb608558,0xd721d871,0xf6d4ff9b,0x60e4ebae,0x41f2763e,0x0ba10819,0x51ee3247,0xca2e45be,0x2bfd7a5f,0x66d172ec,0x74d0b12d,0x528a8f2f,0xdabe70dc,0xe17f1e38,0x9f93983c,0x1d5d7316 +.long 0xdf423e31,0x51b2184a,0xaedb1a10,0xcb417291,0x625bcab9,0x2054ca93,0xa98998f0,0x54396860,0xa54ae57e,0x4e53f6c4,0xee648e9d,0x0ffeb590,0x6afaf6bc,0xfbbdaadc,0xaa3bfb8a,0xf88ae796 +.long 0xd2359ed9,0x209f1d44,0xf3544ce2,0xac68dd03,0xfd51e569,0xf378da47,0x2cc80097,0xe1abd860,0x343b6e3a,0x23ca18d9,0xb40a1bae,0x480797e8,0x533f3e67,0xd1f0c717,0x06e6cdfc,0x44896970 +.long 0x52a82e8d,0x8ca21055,0x78460cdc,0xb2caf785,0xe9037178,0x4c1b7b62,0xdb514b58,0xefc09d2c,0x9113be5c,0x5f2df9ee,0xb3f9271c,0x2fbda78f,0x8f83fc54,0xe09a81af,0x8afb5141,0x06b13866 +.long 0x43e3865d,0x38f6480f,0x1ddf47d9,0x72dd77a8,0x4c205ff7,0xf2a8e971,0x9d088ad8,0x46d449d8,0x185d706f,0x926619ea,0xc7dd7f62,0xe47e02eb,0x8cbc2031,0xe7f120a7,0x998d4ac9,0xc18bef00 +.long 0x6bdf22da,0x18f37a9c,0x90dc82df,0xefbc432f,0x5d703651,0xc52cef8e,0xd99881a5,0x82887ba0,0xb920ec1d,0x7cec9dda,0xec3e8d3b,0xd0d7e8c3,0x4ca88747,0x445bc395,0x9fd53535,0xedeaa2e0 +.long 0x6cc87475,0x461b1d93,0x6d2383bd,0xd92a52e2,0xd7903546,0xfabccb59,0x3d14b112,0x6111a761,0xb3d5f612,0x0ae584fe,0x60e828ec,0x5ea69b8d,0x54087030,0x6c078985,0xac4821fe,0x649cab04 +.long 0x8bdce214,0x25ecedcf,0x86af7361,0xb5622f72,0x7038b9e2,0x0e1227aa,0xac20fa77,0xd0efb273,0x79df975b,0x817ff88b,0x1999503e,0x856bf286,0x5038ec46,0xb4d5351f,0xfc42af6e,0x740a52c5 +.long 0x2cbb1a3f,0x2e38bb15,0x17a83429,0xc3eb99fe,0xdd66bb74,0xca4fcbf1,0xcde5e8fc,0x880784d6,0xb4e7a0be,0xddc84c1c,0xbd15a72f,0x8780510d,0x81ec30e1,0x44bcf1af,0x0a61073e,0x141e50a8 +.long 0x47be87ae,0x0d955718,0xf76a4372,0x68a61417,0xc607c3d3,0xf57e7e87,0x5252f332,0x043afaf8,0x1552a4d2,0xcc14e121,0xbb4d4ab4,0xb6dee692,0xa03816a4,0xb6ab74c8,0x6f394a29,0x84001ae4 +.long 0xd795fb45,0x5bed8344,0xb79f55a5,0x57326e7d,0x4accdffc,0xc9533ce0,0x3993fa04,0x53473caf,0xa13df4c8,0x7906eb93,0x97cbe46f,0xa73e51f6,0x0ae4ccf8,0xd1ab3ae1,0x8a5b3dbc,0x25614508 +.long 0x11a71b27,0x61eff962,0x6bb7fa39,0xdf71412b,0x2bd7f3ef,0xb31ba6b8,0x69180d29,0xb0b9c415,0x014cdde5,0xeec14552,0x227b4bbb,0x702c624b,0xd3e988f3,0x2b15e8c2,0xa4f7fd04,0xee3bcc6d +.long 0x42ac6c85,0x9d00822a,0x1df9f2b7,0x2db0cea6,0x42de1e58,0xd7cad2ab,0x2d6fbb61,0x346ed526,0x1a2faf09,0xb3962995,0x7c25612e,0x2fa8a580,0x7cf56490,0x30ae04da,0x0eea3961,0x75662908 +.long 0x3d080847,0x3609f5c5,0x5241d4f6,0xcb081d39,0x77961a63,0xb4fb3810,0x2abb66fc,0xc20c5984,0xf902f245,0x3d40aa7c,0x4e536b1e,0x9cb12736,0x99b3134f,0x5eda24da,0x5cd011af,0xafbd9c69 +.long 0xc7088c7d,0x9a16e30a,0x3207389f,0x5ab65710,0xe7407a53,0x1b09547f,0x4fdc6eab,0x2322f9d7,0x7430de4d,0xc0f2f22d,0xe68ca9a9,0x19382696,0x918e5868,0x17f1eff1,0x586f4204,0xe3b5b635 +.long 0x3fbc4341,0x146ef980,0x5b5eed4e,0x359f2c80,0x7482e41d,0x9f35744e,0xf3b224c2,0x9a9ac3ec,0x91fc50ae,0x9161a6fe,0xc613fa7c,0x89ccc66b,0xc732f15a,0x89268b14,0xb467ed03,0x7cd6f4e2 +.long 0xce56b40e,0xfbf79869,0xc02dde98,0xf93e094c,0xedee2cd7,0xefe0c3a8,0xb268fd42,0x90f3ffc0,0x08241aed,0x81a7fd56,0x00b1afe8,0x95ab7ad8,0x3e310d52,0x40127056,0x09d9fc43,0xd3ffdeb1 +.long 0xd11a8594,0xc8f85c91,0x31cf6db8,0x2e74d258,0x02b5dfd0,0x829c7ca3,0x69143c86,0xe389cfbe,0x941768d8,0xd01b6405,0x03bf825d,0x45103995,0x56cd17e2,0xcc4ee166,0xba037e79,0xbea3c283 +.long 0xd9a47520,0x4e1ac06e,0xaf852404,0xfbfe18aa,0x8087648a,0x5615f8e2,0xb9d150d9,0x7301e47e,0xb299b977,0x79f9f9dd,0xa5b78314,0x76697a7b,0x7d7c90e7,0x10d67468,0x937210b5,0x7afffe03 +.long 0x28c22cee,0x5aef3e4b,0x09fd55ae,0xefb0ecd8,0x0d2a5d6a,0x4cea7132,0x01db6357,0x9cfb5fa1,0xf36e1ac5,0x395e0b57,0x36cafb7d,0x008fa9ad,0x5308c4db,0x8f6cdf70,0x95ed2477,0x51527a37 +.long 0x5bd21311,0xba0dee30,0x909c90d7,0x6ed41b22,0x7c8696d3,0xc5f6b758,0x3ce83a80,0x0db8eaa8,0xb24b4b6f,0xd297fe37,0x522d1f0d,0xfe58afe8,0x8c98dbd9,0x97358736,0x9454a527,0x6bc226ca +.long 0xce53c2d0,0xa12b384e,0x5e4606da,0x779d897d,0x73ec12b0,0xa53e47b0,0x5756f1ad,0x462dbbba,0xcafe37b6,0x69fe09f2,0xecce2e17,0x273d1ebf,0x3cf607fd,0x8ac1d538,0x12e10c25,0x8035f7ff +.long 0x7e6c5520,0x854d34c7,0xdcb9ea58,0xc27df9ef,0xd686666d,0x405f2369,0x0417aa85,0x29d1febf,0x93470afe,0x9846819e,0xe2a27f9e,0x3e6a9669,0xe31e6504,0x24d008a2,0x9cb7680a,0xdba7cecf +.long 0x338d6e43,0xecaff541,0x4541d5cc,0x56f7dd73,0x96bc88ca,0xb5d426de,0x9ed3a2c3,0x48d94f6b,0x2ef8279c,0x6354a3bb,0x0b1867f2,0xd575465b,0x95225151,0xef99b0ff,0xf94500d8,0xf3e19d88 +.long 0xe32dd620,0x92a83268,0x627849a2,0x913ec99f,0x2c378882,0xedd8fdfa,0xee6f8cfe,0xaf96f33e,0xdc3fa8a5,0xc06737e5,0xb0b03a1d,0x236bb531,0x89f037b0,0x33e59f29,0xd9a12a53,0x13f9b5a7 +.long 0x51efb310,0x0d0df6ce,0x958df5be,0xcb5b2eb4,0x36158e59,0xd6459e29,0x1466e336,0x82aae2b9,0x411aa636,0xfb658a39,0xd4c0a933,0x7152ecc5,0x49f026b7,0xf10c758a,0xcb09311f,0xf4837f97 +.long 0xc753c45f,0xddfb02c4,0xf9c840fe,0x18ca81b6,0xb0f8a3e6,0x846fd09a,0xe7733dbc,0xb1162add,0x236e3ab6,0x7070ad20,0xb2a56326,0xf88cdaf5,0x997cbc7a,0x05fc8719,0x4b665272,0x442cd452 +.long 0xb71698f5,0x7807f364,0x9f7b605e,0x6ba418d2,0xa03b2cbb,0xfd20b00f,0xda54386f,0x883eca37,0xf3437f24,0xff0be43f,0xa48bb33c,0xe910b432,0x329df765,0x4963a128,0xbe2fe6f7,0xac1dd556 +.long 0x24a0a3fc,0x557610f9,0xe881c3f9,0x38e17bf4,0xed0dac99,0x6ba84faf,0x59eeb918,0xd4a222c3,0x13f542b6,0xc79c1dbe,0xe425d457,0x1fc65e0d,0x1debb779,0xeffb754f,0x9e08af60,0x638d8fd0 +.long 0x626332d5,0x994f523a,0x5561bb44,0x7bc38833,0x3d845ea2,0x005ed4b0,0xc2a1f08a,0xd39d3ee1,0xe7676b0d,0x6561fdd3,0xfb706017,0x620e35ff,0xf264f9a8,0x36ce424f,0xda2681f7,0xc4c3419f +.long 0x69beb6e8,0xfb6afd2f,0x6d700d03,0x3a50b993,0x0c83a14f,0xc840b2ad,0x54085bef,0x573207be,0x09fe7e5b,0x5af882e3,0x3b40a7e1,0x957678a4,0x543056e2,0x172d4bdd,0x0df13c0a,0x9c1b26b4 +.long 0xf405ff06,0x1c30861c,0x486e828b,0xebac86bd,0x636933fc,0xe791a971,0x7aeee947,0x50e7c2be,0xfa90d767,0xc3d4a095,0xe670ab7b,0xae60eb7b,0x397b056d,0x17633a64,0x105012aa,0x93a21f33 +.long 0xabb88643,0x663c370b,0x22e21599,0x91df36d7,0x8b761671,0x183ba835,0x728f3bf1,0x381eea1d,0x39966e6c,0xb9b2f1ba,0xe7295492,0x7c464a28,0x09b26b7f,0x0fd5f70a,0xfbe009df,0xa9aba1f9 +.long 0x369b87ad,0x857c1f22,0x32fca556,0x3c00e5d9,0x90b06466,0x1ad74cab,0x550faaf2,0xa7112386,0x6d9bd5f5,0x7435e198,0x59c3463f,0x2dcc7e38,0xca7bd4b2,0xdc7df748,0x9dec2f31,0x13cd4c08 +.long 0xe3237710,0x0d3b5df8,0xcbd2f7b0,0x0dadb26e,0xe4aa082b,0x9f5966ab,0x350e966e,0x666ec8de,0xee524216,0x1bfd1ed5,0x41dab0b6,0xcd93c59b,0xd186d6ba,0x658a8435,0x159d1195,0x1b7d34d2 +.long 0x22caf46b,0x5936e460,0x9a96fe4f,0x6a45dd8f,0xb98f474e,0xf7925434,0x0053ef15,0x41410412,0x41de97bf,0x71cf8d12,0xbd80bef4,0xb8547b61,0xc4db0037,0xb47d3970,0xfef20dff,0xf1bcd328 +.long 0x10caad67,0x31a92e09,0x5531a1e1,0x1f591960,0x5f4fc840,0x3bb852e0,0x93a72c6c,0x63e297ca,0x49abad67,0x3c2b0b2e,0xed3db0d9,0x6ec405fc,0x7fef1d40,0xdc14a530,0x280896fc,0xccd19846 +.long 0x9bb81648,0x00f83176,0x653120d0,0xd69eb485,0x4ccabc62,0xd17d75f4,0xb749fcb1,0x34a07f82,0xbbfb5554,0x2c3af787,0x62e283f8,0xb06ed4d0,0xa19213a0,0x5722889f,0xdcf3c7b4,0x162b085e +.long 0xe0dd3eca,0xbcaecb31,0xe52f13a5,0xc6237fbc,0x27bac297,0xcc2b6b03,0xb917f54a,0x2ae1cac5,0x7845ae4f,0x474807d4,0xce5972e0,0xfec7dd92,0x1d7915bb,0xc3bd2541,0xd94907ca,0x66f85dc4 +.long 0xbdbcf0ca,0xd981b888,0xdf279e9f,0xd75f5da6,0x7054e934,0x128bbf24,0x81db134b,0x3c6ff6e5,0x047d26e4,0x795b7cf4,0x5049ec37,0xf370f7b8,0xced945af,0xc6712d4d,0x095642bc,0xdf30b5ec +.long 0x4896246e,0x9b034c62,0xee90bbd1,0x5652c016,0x87fedb73,0xeb38636f,0x0135a613,0x5e32f847,0xcf933c83,0x0703b312,0x1a7f47e6,0xd05bb76e,0x949c2415,0x825e4f0c,0x7250d6f8,0x569e5622 +.long 0x6568013e,0xbbe9eb3a,0x22f243fc,0x8dbd203f,0xb342734a,0x9dbd7694,0x46afa984,0x8f6d12f8,0xc9eade29,0xb98610a2,0x47dd0f18,0xbab4f323,0x671c0d46,0x5779737b,0xd3e0a42a,0x10b6a7c6 +.long 0x3035b41c,0xfb19ddf3,0x99c45895,0xd336343f,0x54c857e5,0x61fe4938,0xae4e57d5,0xc4d506be,0xbbc33f75,0x3cd8c8cb,0x9262c77d,0x7281f08a,0xf11a2823,0x083f4ea6,0x9fba2e33,0x8895041e +.long 0x9c438edf,0xfcdfea49,0x91edba44,0x7678dcc3,0xe2ba50f0,0xf07b3b87,0x43948c1b,0xc13888ef,0x1140af42,0xc2135ad4,0x926ed1a7,0x8e5104f3,0x88f6695f,0xf24430cb,0x6d73c120,0x0ce0637b +.long 0xfe631e8f,0xb2db01e6,0xd7bdd24b,0x1c5563d7,0x369ad44f,0x8daea3ba,0x8187a9f9,0x000c81b6,0xaae1fd9a,0x5f48a951,0x8d5aed8a,0xe35626c7,0x0498c622,0x20952763,0x773aa504,0x76d17634 +.long 0xeb300f7a,0x36d90dda,0xedb5e801,0x9dcf7dfc,0x74d5244c,0x645cb268,0x348e3aa2,0xa127ee79,0x575f1dbb,0x488acc53,0x80e6161e,0x95037e85,0x292650d0,0x57e59283,0x14938216,0xabe67d99 +.long 0x3f8e1065,0x3c7f944b,0x330e8924,0xed908cb6,0x6f530136,0x08ee8fd5,0xd7ffc169,0x2227b7d5,0xb5cd6dd5,0x4f55c893,0xa62796e8,0x82225e11,0xcb18e12c,0x5c6cead1,0x84f5a51a,0x4381ae0c +.long 0x7fafa4c8,0x345913d3,0x0491aac0,0x3d918082,0x3e69264c,0x9347871f,0xb4f4f0cd,0xbea9dd3c,0x3eadd3e7,0xbda5d067,0x0573bcd8,0x0033c1b8,0x5da2486c,0x25589379,0x86abbee7,0xcb89ee5b +.long 0x22532e5d,0x8fe0a8f3,0x727dfc4c,0xb6410ff0,0x226726db,0x619b9d58,0x7a2b2dc7,0x5ec25669,0x4c3beb01,0xaf4d2e06,0x7acea556,0x852123d0,0xf783487a,0x0e9470fa,0x5664b3eb,0x75a7ea04 +.long 0x6798e4ba,0x4ad78f35,0xc7d0e091,0x9214e6e5,0xb1290403,0xc420b488,0xfc295749,0x64049e0a,0x3ae9841f,0x03ef5af1,0xb0b662a6,0xdbe4ca19,0xfa453458,0x46845c5f,0x10b66722,0xf8dabf19 +.long 0xcce2793b,0xb650f0aa,0xc5ec47c1,0x71db851e,0x3b234fa9,0x3eb78f3e,0xfc0106ce,0xb0c60f35,0x774eadbd,0x05427121,0xce323863,0x25367faf,0xcd086976,0x7541b5c9,0xdc507ad1,0x4ff069e2 +.long 0x8776e667,0x74145256,0xb23c6bb5,0x6e76142c,0x1b3a8a87,0xdbf30712,0x98450836,0x60e7363e,0xb7366d80,0x5741450e,0x4837dbdf,0xe4ee14ca,0x69d4316f,0xa765eb9b,0x8ef43825,0x04548dca +.long 0x5ae888eb,0x9c9f4e4c,0x56e9ac99,0x733abb51,0xba6ac029,0xdaad3c20,0x2ba3e38e,0x9b8dd3d3,0x0bc5d11a,0xa9bb4c92,0x9c5f88a3,0xf20127a7,0x161d3cb8,0x4f52b06e,0x6afaf0a6,0x26c1ff09 +.long 0x7189e71f,0x32670d2f,0x5ecf91e7,0xc6438748,0xdb757a21,0x15758e57,0x290a9ce5,0x427d09f8,0x38384a7a,0x846a308f,0xb0732b99,0xaac3acb4,0x17845819,0x9e941009,0xa7ce5e03,0x95cba111 +.long 0xb00009c4,0x6f3d4f7f,0x8ff28b5f,0xb8396c27,0x1c97975d,0xb1a9ae43,0xe5d9fed5,0x9d7ba8af,0x34f485b6,0x338cf09f,0x64122516,0xbc0ddacc,0x05d471fe,0xa450da12,0x628dd8c9,0x4c3a6250 +.long 0xd1295837,0x69c7d103,0x3807eb2f,0xa2893e50,0xbdb41491,0xd6e1e1de,0x5e138235,0xc630745b,0x48661ae1,0xc892109e,0xea2b2674,0x8d17e7eb,0xc328d6b5,0x00ec0f87,0xf079ff9e,0x6d858645 +.long 0x19115ead,0x6cdf243e,0x4bac4fcf,0x1ce1393e,0x9c29f25b,0x2c960ed0,0x9d388a05,0x59be4d8e,0xd0def72b,0x0d46e06c,0xe0342748,0xb923db5d,0x936d4a3d,0xf7d3aacd,0x0b0b099e,0x558519cc +.long 0x827097ef,0x3ea8ebf8,0xd054f55d,0x259353db,0x6d2ed089,0x84c89abc,0x8e096a7c,0x5c548b69,0x994b995d,0xd587f616,0xa5845601,0x4d1531f6,0x451fd9f0,0x792ab31e,0x65adf6ca,0xc8b57bb2 +.long 0x1cd5ad73,0x68440fcb,0x6144da4f,0xb9c860e6,0x8462beb8,0x2ab286aa,0xef46797f,0xcc6b8fff,0x20c8a471,0xac820da4,0x77ff7faf,0x69ae05a1,0xbfb5da77,0xb9163f39,0x2c73ab7a,0xbd03e590 +.long 0xb2940d9e,0x7e862b5e,0x4b9af564,0x3c663d86,0xbde3033d,0xd8309031,0xd42c5bc6,0x298231b2,0x552ad093,0x42090d2c,0xff854695,0xa4799d1c,0xd31f0d00,0x0a88b5d6,0xa2f26b46,0xf8b40825 +.long 0xf1bd7218,0xec29b1ed,0x4b24c86e,0xd491c53b,0x3395ea65,0xd2fe588f,0x4456ef15,0x6f3764f7,0xcdc34800,0xdb43116d,0xc1e33955,0xcdbcd456,0x74ab286b,0xefdb5540,0xd18c5d7c,0x948c7a51 +.long 0x7378058e,0xeb81aa37,0x04411154,0x41c746a1,0xfb828ac7,0xa10c73bc,0x9d972b29,0x6439be91,0x43a2fbad,0x4bf3b4b0,0x82b5e840,0x39e6dadf,0x6397bd4c,0x4f716408,0x7f1eeccb,0x0f7de568 +.long 0xd2ffbfc1,0x5865c5a1,0x4ccb6451,0xf74211fa,0xc0b32558,0x66368a88,0x9ad7812e,0x5b539dc2,0x2f3af6f6,0x579483d0,0x99934ece,0x52132078,0xdcc9e983,0x50b9650f,0xaee42b8a,0xca989ec9 +.long 0xd6f62f99,0x6a44c829,0x4c2a7c0c,0x8f06a309,0x98a0cb0a,0x4ea2b3a0,0xbeee8364,0x5c547b70,0x682afe11,0x461d40e1,0x7b41c0a8,0x9e0fc77a,0xe20d5d36,0x79e4aefd,0x32dd9f63,0x2916e520 +.long 0x3f883faf,0xf59e52e8,0x2b868d35,0x396f9639,0x4ca19881,0xc902a9df,0xdb2401a6,0x0fc96822,0x66f1c68d,0x41237587,0xfb476c0d,0x10fc6de3,0x841f5d90,0xf8b6b579,0xfa24f44a,0x2ba8446c +.long 0xef4a9975,0xa237b920,0x2330435f,0x60bb6004,0xcfb7e7b5,0xd6f4ab5a,0x83435391,0xb2ac5097,0xb0d1ea67,0xf036ee2f,0x74c56230,0xae779a6a,0xab838ae6,0x59bff8c8,0x9b38e6f0,0xcd83ca99 +.long 0xe33deed3,0xbb27bef5,0x001892a8,0xe6356f6f,0x7adfbd3e,0xbf3be6cc,0x33d1ac9d,0xaecbc81c,0xe6e861dc,0xe4feb909,0x53f5f801,0x90a247a4,0x27346e57,0x01c50acb,0x461acc1b,0xce29242e +.long 0x2f998a91,0x04dd214a,0xd4baf27b,0x271ee9b1,0xe8c26722,0x7e3027d1,0x1820dce5,0x21d1645c,0x7501779c,0x086f242c,0xfa0e8009,0xf0061407,0x60187129,0xf23ce477,0x0fde9bd0,0x05bbdedb +.long 0x25d98473,0x682f4832,0x5c658427,0xf207fe85,0x4166ffa1,0xb6fdd7ba,0x9eed799d,0x0c314056,0x4107e28f,0x0db8048f,0x41216840,0x74ed3871,0x56a3c06e,0x74489f8f,0x12777134,0x1e1c005b +.long 0xf37ec3c3,0xdb332a73,0xdd59eba0,0xc65259bd,0xdb4d3257,0x2291709c,0xbd389390,0x9a793b25,0xe43756f0,0xf39fe34b,0x9afb56c9,0x2f76bdce,0x61208b27,0x9f37867a,0x089972c3,0xea1d4307 +.long 0x8bdf623a,0x8c595330,0x8441fb7d,0x5f5accda,0x32ddfd95,0xfafa9418,0x0fde9be7,0x6ad40c5a,0xaeca8709,0x43faba89,0x2c248a9d,0xc64a7cf1,0x72637a76,0x16620252,0x22b8d1bb,0xaee1c791 +.long 0x21a843b2,0xf0f798fd,0x8d005cb1,0x56e4ed4d,0x1f0d8abe,0x355f7780,0x34522326,0x197b04cf,0xfd42c13f,0x41f9b31f,0xb40f933d,0x5ef7feb2,0x5d60bad4,0x27326f42,0x8c92cf89,0x027ecdb2 +.long 0x4e3352fe,0x04aae4d1,0x73591b90,0x08414d2f,0xb7da7d60,0x5ed6124e,0x4d13d4ec,0xb985b931,0x96bf36f9,0xa592d3ab,0xbbdf51df,0x012dbed5,0xdf6c177d,0xa57963c0,0x87ca29cf,0x010ec869 +.long 0xbf926dff,0xba1700f6,0xf4bf6bc2,0x7c9fdbd1,0x64da11f5,0xdc18dc8f,0xd938ae75,0xa6074b7a,0xe84f44a4,0x14270066,0xd27b954e,0x99998d38,0xb4f38e9a,0xc1be8ab2,0x15c01016,0x8bb55bbf +.long 0x0ea2ab30,0xf73472b4,0xf73d68dd,0xd365a340,0x19c2e1eb,0xc01a7168,0x34061719,0x32f49e37,0x01d8b4d6,0xb73c57f1,0x26b47700,0x03c8423c,0xa4d8826a,0x321d0bc8,0x4bc0e638,0x6004213c +.long 0xc1c06681,0xf78c64a1,0xef018e50,0x16e0a16f,0xdb42b2b3,0x31cbdf91,0xe0d36f58,0xf8f4ffce,0x4cc5e3e0,0xcdcc71cd,0xa129e3e0,0xd55c7cfa,0x0fb2cbf1,0xccdb6ba0,0xc4bce3cb,0x6aba0005 +.long 0xd232cfc4,0x501cdb30,0xd58a3cef,0x9ddcf12e,0x87e09149,0x02d2cf9c,0x2c976257,0xdc5d7ec7,0x0b50d7dd,0x6447986e,0x807f112a,0x88fdbaf7,0xb00ae9f6,0x58c9822a,0x6d3d27e0,0x6abfb950 +.long 0x8a429f4f,0xd0a74487,0xdb516609,0x0649712b,0xe769b5df,0xb826ba57,0x1fc7aaf2,0x82335df2,0x5c93d995,0x2389f067,0x68677be6,0x59ac367a,0x21d9951b,0xa77985ff,0x85011cce,0x038956fb +.long 0xbb734e37,0x608e48cb,0x2be5b26f,0xc08c0bf2,0xf9b1a0d9,0x17bbdd3b,0x10483319,0xeac7d898,0xbc1a6dea,0xc95c4baf,0x172aafdb,0xfdd0e2bf,0x8235c41a,0x40373cbc,0xfb6f41d5,0x14303f21 +.long 0x0408f237,0xba063621,0xecd2d1ed,0xcad3b09a,0x52abb6a2,0x4667855a,0xaa8b417b,0xba9157dc,0x4f013efb,0xfe7f3507,0xaa38c4a2,0x1b112c4b,0x9ba64345,0xa1406a60,0x6993c80b,0xe53cba33 +.long 0xded40d23,0x45466063,0x54908e25,0x3d5f1f4d,0x403c3c31,0x9ebefe62,0x0672a624,0x274ea0b5,0x451d1b71,0xff818d99,0x8f79cf79,0x80e82643,0x73ce37f5,0xa165df13,0xfe3a21fd,0xa744ef4f +.long 0xcf551396,0x73f1e7f5,0x868c676b,0xc616898e,0x8c442c36,0x671c28c7,0x5e0a317d,0xcfe5e558,0x7051f476,0x1242d818,0x14f03442,0x56fad2a6,0x0a44d0f6,0x262068bc,0xce6edf4e,0xdfa2cd6e +.long 0xd15d1517,0x0f43813a,0x377d44f5,0x61214cb2,0xc639b35f,0xd399aa29,0x54c51c19,0x42136d71,0x08417221,0x9774711b,0x52545a57,0x0a5546b3,0x1150582d,0x80624c41,0xfbc555bc,0x9ec5c418 +.long 0x771849f1,0x2c87dcad,0x01d7bf6f,0xb0c932c5,0x89116eb2,0x6aa5cd3e,0x51ca7bd3,0xd378c25a,0x9e6e3e31,0xc612a0da,0xb68ad5d0,0x0417a54d,0x22c6edb8,0x00451e4a,0xb42827ce,0x9fbfe019 +.long 0xba9384a2,0x2fa92505,0x64ad69c1,0x21b8596e,0x983b35a6,0x8f4fcc49,0x72754672,0xde093760,0xf7bffe6d,0x2f14ccc8,0x5d94263d,0x27566bff,0x2df3ec30,0xb5b4e9c6,0x3e6ea6ba,0x94f1d7d5 +.long 0xaaca5e9b,0x97b7851a,0x56713b97,0x518aa521,0x150a61f6,0x3357e8c7,0xec2c2b69,0x7842e7e2,0x6868a548,0x8dffaf65,0xe068fc81,0xd963bd82,0x65917733,0x64da5c8b,0x7b247328,0x927090ff +.long 0xd298c241,0x214bc9a7,0x56807cfd,0xe3b697ba,0x4564eadb,0xef1c7802,0xb48149c5,0xdde8cdcf,0x5a4d2604,0x946bf0a7,0x6c1538af,0x27154d7f,0xde5b1fcc,0x95cc9230,0x66864f82,0xd88519e9 +.long 0x7cb1282c,0xb828dd1a,0xbe46973a,0xa08d7626,0xe708d6b2,0x6baf8d40,0x4daeb3f3,0x72571fa1,0xf22dfd98,0x85b1732f,0x0087108d,0x87ab01a7,0x5988207a,0xaaaafea8,0x69f00755,0xccc832f8 +.long 0x36ff3bf0,0x964d950e,0xf0b34638,0x8ad20f6f,0xb5d7585f,0x4d9177b3,0xef3f019f,0xcf839760,0x8288c545,0x582fc5b3,0x13116bd1,0x2f8e4e9b,0x332120ef,0xf91e1b2f,0x2a17dd23,0xcf568724 +.long 0xca8d9d1a,0x488f1185,0xd987ded2,0xadf2c77d,0x60c46124,0x5f3039f0,0x71e095f4,0xe5d70b75,0x6260e70f,0x82d58650,0xf750d105,0x39d75ea7,0x75bac364,0x8cf3d0b1,0x21d01329,0xf3a7564d +.long 0x2f52d2a7,0x182f04cd,0xe2df565a,0x4fde149a,0xa79fb2f7,0xb80c5eec,0x22ddc897,0xab491d7b,0xc6312c7f,0x99d76c18,0x6aa41a57,0xca0d5f3d,0xd15363a0,0x71207325,0xbeb252c2,0xe82aa265 +.long 0xec3128c2,0x94ab4700,0x8e383f49,0x6c76d862,0xc03024eb,0xdc36b150,0x53daac69,0xfb439477,0x8dc79623,0xfc68764a,0xb440fbb2,0x5b86995d,0xccc5ee0d,0xd66879bf,0x95aa8bd3,0x05228942 +.long 0x1e6a75c1,0xb51a40a5,0x0ea7d817,0x24327c76,0x07774597,0x06630182,0x97fa7164,0xd6fdbec3,0x13c90f48,0x20c99dfb,0x686ef263,0xd6ac5273,0xfef64eeb,0xc6a50bdc,0x86fdfc32,0xcd87b281 +.long 0x3fcd3efc,0xb24aa43e,0xb8088e9a,0xdd26c034,0xbd3d46ea,0xa5ef4dc9,0x8a4c6a6f,0xa2f99d58,0x2f1da46c,0xddabd355,0x1afacdd1,0x72c3f8ce,0x92d40578,0xd90c4eee,0xca623b94,0xd28bb41f +.long 0x745edc11,0x50fc0711,0x3dc87558,0x9dd9ad7d,0xb49d1e64,0xce6931fb,0xc98bd0f9,0x6c77a0a2,0x6baf7cb1,0x62b9a629,0xccf72d22,0xcf065f91,0x79639071,0x7203cce9,0xf9cb732f,0x09ae4885 +.long 0xee8314f3,0x5e7c3bec,0xdbea298f,0x1c068aed,0x7c80acec,0x08d381f1,0xe330495b,0x03b56be8,0x9222882d,0xaeffb8f2,0xc4af8bf7,0x95ff38f6,0x1fc57d8c,0x50e32d35,0x17b444f0,0x6635be52 +.long 0xa5177900,0x04d15276,0xf6858752,0x4e1dbb47,0xc615796c,0x5b475622,0x691867bf,0xa6fa0387,0x2844c6d0,0xed7f5d56,0x03a2477d,0xc633cf9b,0x2d3721d6,0xf6be5c40,0xe9fd68e6,0xaf312eb7 +.long 0xe7417ce1,0x242792d2,0x970ee7f5,0xff42bc71,0x5c67a41e,0x1ff4dc6d,0x20882a58,0x77709b7b,0xbe217f2c,0x3554731d,0x5bb72177,0x2af2a8cd,0x591dd059,0x58eee769,0x4bba6477,0xbb2930c9 +.long 0x7d930cfc,0x863ee047,0x396fd1f4,0x4c262ad1,0x039af7e1,0xf4765bc8,0x5ba104f6,0x2519834b,0xd105f961,0x7cd61b4c,0xd63bca54,0xa5415da5,0x88a1f17c,0x778280a0,0x2329512c,0xc4968949 +.long 0xcecdaa7a,0x174a9126,0x0b13247b,0xfc8c7e0e,0x3484c1c4,0x29c110d2,0x831dfc3b,0xf8eb8757,0xc0067452,0x022f0212,0x7b9b926c,0x3f6f69ee,0xef42daf4,0x09032da0,0x83f80de4,0x79f00ade +.long 0x81236c97,0x6210db71,0x3ee0781f,0x74f7685b,0xa3e41372,0x4df7da7b,0xb1a1553e,0x2aae38b1,0xf6dd9d1b,0x1688e222,0x5b8b6487,0x57695448,0x4b2edeaa,0x478d2127,0x1e85956a,0xb2818fa5 +.long 0xf176f2c0,0x1e6addda,0xe2572658,0x01ca4604,0x85342ffb,0x0a404ded,0x441838d6,0x8cf60f96,0xc9071c4a,0x9bbc691c,0x34442803,0xfd588744,0x809c0d81,0x97101c85,0x8c456f7f,0xa7fb754c +.long 0xd51805e1,0xc95f3c5c,0xb299dca8,0xab4ccd39,0x47eaf500,0x3e03d20b,0xd7b80893,0xfa3165c1,0xe160e552,0x005e8b54,0x9019d11f,0xdc4972ba,0x0c9a4a7a,0x21a6972e,0x37840fd7,0xa52c258f +.long 0xc1e99d81,0xf8559ff4,0xa3c617c0,0x08e1a7d6,0x248c6ba7,0xb398fd43,0xd1283794,0x6ffedd91,0xd629d208,0x8a6a59d2,0x3490530e,0xa9d141d5,0x38505989,0x42f6fc18,0x479d94ee,0x09bf250d +.long 0xb3822790,0x223ad3b1,0x93b8971c,0x6c5926c0,0x75f7fa62,0x609efc7e,0x1ec2d989,0x45d66a6d,0x987d2792,0x4422d663,0x3eb31d2b,0x4a73caad,0xa32cb9e6,0xf06c2ac1,0x91aeba84,0xd9445c5f +.long 0xaf71013f,0x6af7a1d5,0x0bedc946,0xe68216e5,0xd27370a0,0xf4cba30b,0x870421cc,0x7981afbf,0x9449f0e1,0x02496a67,0x0a47edae,0x86cfc4be,0xb1feca22,0x3073c936,0x03f8f8fb,0xf5694612 +.long 0x901515ea,0xd063b723,0x749cf038,0x4c6c77a5,0xab9e5059,0x6361e360,0xa76a37c0,0x596cf171,0x6530ae7a,0x800f53fa,0x0792a7a6,0x0f5e631e,0xefdb81c9,0x5cc29c24,0x3f9c40ba,0xa269e868 +.long 0x2cb7191e,0xec14f9e1,0xe5b08ea6,0x78ea1bd8,0x46332bb9,0x3c65aa9b,0xbf80ce25,0x84cc22b3,0xd49d5bf1,0x0098e9e9,0x19087da4,0xcd4ec1c6,0xaef6e357,0x3c9d07c5,0x9f8f64b8,0x839a0268 +.long 0xc6d8607f,0xc5e9eb62,0x6aa995e4,0x759689f5,0xbbb48317,0x70464669,0xe402417d,0x921474bf,0x2a354c8c,0xcabe135b,0x812fa4b5,0xd51e52d2,0x53311fe8,0xec741096,0xb864514b,0x4f774535 +.long 0x5bde48f8,0xbcadd671,0x2189bc7d,0xc9703873,0xc709ee8a,0x5d45299e,0x845aaff8,0xd1287ee2,0xdb1dbf1f,0x7d1f8874,0x990c88d6,0xea46588b,0x84368313,0x60ba649a,0x60d543ae,0xd5fdcbce +.long 0x810d5ab0,0x90b46d43,0x04d7e5cc,0x6739d8f9,0x0d337c33,0x021c1a58,0x68e67c40,0x00a61162,0x379f0a1f,0x95ef413b,0xe9e2ab95,0xfe126605,0x2f5f199c,0x67578b85,0x2cb84913,0xf5c00329 +.long 0x37577dd8,0xf7956430,0x29c5fe88,0x83b82af4,0xcdbdc132,0x9c1bea26,0x9c04339e,0x589fa086,0xb13799df,0x033e9538,0xd295d034,0x85fa8b21,0xbd9ddcca,0xdf17f73f,0xddb66334,0xf32bd122 +.long 0x858b044c,0x55ef88a7,0x5aa9e397,0x1f0d69c2,0x40d85559,0x55fd9cc3,0x7785ddb2,0xc774df72,0xd3bd2e1c,0x5dcce9f6,0xa85dfed0,0xeb30da20,0xd3ed09c4,0x5ed7f5bb,0x82a9c1bd,0x7d42a35c +.long 0x9890272d,0xcf3de995,0x3e713a10,0x75f3432a,0xe28227b8,0x5e13479f,0xfefacdc8,0xb8561ea9,0x8332aafd,0xa6a297a0,0x73809b62,0x9b0d8bb5,0x0c63036f,0xd2fa1cfd,0xbd64bda8,0x7a16eb55 +.long 0x78e62ddc,0x3f5cf5f6,0x07fd752b,0x2267c454,0x5e437bbe,0x5e361b6b,0x8354e075,0x95c59501,0xf2b254d9,0xec725f85,0x2cb52b4e,0x844b617d,0xcf425fb5,0xed8554f5,0x2af9f312,0xab67703e +.long 0x3cf48283,0x4cc34ec1,0x9c8a705e,0xb09daa25,0x5b7d4f84,0xd1e9d0d0,0xdb38929d,0x4df6ef64,0xaa21ba46,0xe16b0763,0xa293f8fb,0xc6b1d178,0xd520aabf,0x0ff5b602,0xc339397a,0x94d671bd +.long 0x4f5792fa,0x7c7d98cf,0x11215261,0x7c5e0d67,0xa7c5a6d4,0x9b19a631,0x7a45274d,0xc8511a62,0xa5a60d99,0x0c16621c,0xcf5e48cb,0xf7fbab88,0xf7ddee08,0xab1e6ca2,0xe7867f3c,0x83bd08ce +.long 0x2ac13e27,0xf7e48e8a,0x4eb1a9f5,0x4494f6df,0x981f0a62,0xedbf84eb,0x536438f0,0x49badc32,0x004f7571,0x50bea541,0xdf1c94ee,0xbac67d10,0xb727bc31,0x253d73a1,0x30686e28,0xb3d01cf2 +.long 0x55fd0b8b,0x51b77b1b,0xfeec3173,0xa099d183,0x670e72b7,0x202b1fb7,0xa8e1635f,0xadc88b33,0xf989d905,0x34e8216a,0x29b58d01,0xc2e68d20,0x6fe55a93,0x11f81c92,0x8f296f40,0x15f1462a +.long 0xea3d62f2,0x1915d375,0x01c8977d,0xa17765a3,0xe47b26f6,0x7559710a,0x535077a5,0xe0bd29c8,0x08d84858,0x615f976d,0x69ced5c1,0x370dfe85,0xa734fa56,0xbbc7503c,0x91ac4574,0xfbb9f1ec +.long 0x060dd7ef,0x95d7ec53,0x6e657979,0xeef2dacd,0xe2a08235,0x54511af3,0x1f4aea3d,0x1e324aa4,0xe6e67671,0x550e7e71,0xbf52faf7,0xbccd5190,0x223cc62a,0xf880d316,0x2b32eb5d,0x0d402c7e +.long 0x306a5a3b,0xa40bc039,0x96783a1b,0x4e0a41fd,0x0253cdd4,0xa1e8d39a,0xc7388638,0x6480be26,0x2285f382,0xee365e1d,0xec0b5c36,0x188d8d8f,0x1f0f4d82,0x34ef1a48,0xa487d29a,0x1a8f43e1 +.long 0x77aefb3a,0x8168226d,0x1e72c253,0xf69a751e,0xe9594df1,0x8e04359a,0xd14c0467,0x475ffd7d,0x3844e95c,0xb5a2c2b1,0xdd12ef94,0x85caf647,0xf1063d00,0x1ecd2a9f,0x23843311,0x1dd2e229 +.long 0x73d17244,0x38f0e09d,0x8fc653f1,0x3ede7746,0xdc20e21c,0xae4459f5,0x6a8599ea,0x00db2ffa,0x30cfd905,0x11682c39,0xa5c112a6,0x4934d074,0x568bfe95,0xbdf063c5,0x016c441a,0x779a440a +.long 0x97d6fbdc,0x0c23f218,0xe0776aac,0xd3a5cd87,0xd712e8db,0xcee37f72,0x26f74e8d,0xfb28c70d,0xb61301a0,0xffe0c728,0xd3724354,0xa6282168,0x768ffedc,0x7ff4cb00,0x03b02de9,0xc51b3088 +.long 0x3902dda5,0xa5a8147c,0xfe6973b4,0x35d2f706,0xc257457e,0x5ac2efcf,0x8700611b,0x933f48d4,0x4912beb2,0xc365af88,0x162edf94,0x7f5a4de6,0x0c32f34b,0xc646ba7c,0xb2091074,0x632c6af3 +.long 0x753e43a9,0x58d4f2e3,0x24d4e23f,0x70e1d217,0xafede6a6,0xb24bf729,0x710c8b60,0x7f4a94d8,0x8d4faa6a,0xaad90a96,0xb066b690,0xd9ed0b32,0x78b6dbfd,0x52fcd37b,0x8bd2b431,0x0b64615e +.long 0xcfb9fad5,0x228e2048,0x240b76bd,0xbeaa386d,0x90dad7bc,0x2d6681c8,0x06d38f5e,0x3e553fc3,0x9d5f9750,0xf27cdb9b,0xd28c5b0e,0x3e85c52a,0x5247c39b,0x190795af,0xbddd6828,0x547831eb +.long 0x4a82f424,0xf327a227,0x7e47f89d,0x36919c78,0x43c7392c,0xe4783919,0x2316fefe,0xf101b9aa,0x1c5009d2,0xbcdc9e9c,0x9cd18345,0xfb55ea13,0xa3ce77c7,0xf5b5e231,0xd2f2cb3d,0xde6b4527 +.long 0x9bb26f5f,0x10f6a333,0x044d85b6,0x1e85db8e,0x94197e54,0xc3697a08,0xa7cb4ea8,0x65e18cc0,0xa471fe6e,0xa38c4f50,0x2f13439c,0xf031747a,0xc007318b,0x53c4a6ba,0x1deccb3d,0xa8da3ee5 +.long 0x558216b1,0x0555b31c,0x2f79e6c2,0x90c7810c,0xfe8eed3c,0x9b669f4d,0xe0fac126,0x70398ec8,0xf701b235,0xa96a449e,0xeb94f395,0x0ceecdb3,0xd0cb7431,0x285fc368,0x16a18c64,0x0d37bb52 +.long 0xb880d2dd,0x05110d38,0x65930d57,0xa60f177b,0xf36235f5,0x7da34a67,0x183816b9,0x47f5e17c,0xdb394af4,0xc7664b57,0x7036f789,0x39ba215d,0x2f27b472,0x46d2ca0e,0xf73a84b7,0xc42647ee +.long 0x64488f1d,0x44bc7545,0xf4cf85d5,0xaa922708,0x53e4df63,0x721a01d5,0x5db46ced,0x649c0c51,0x3cffcb6c,0x6bf0d64e,0x50f71d96,0xe3bf93fe,0xbcc194a0,0x75044558,0x6afdc554,0x16ae3372 +.long 0x5ca48f3f,0xbfc01adf,0xe22a9b84,0x64352f06,0xc1099e4a,0xcee54da1,0xfa1b89c0,0xbbda54e8,0x6f6e55fb,0x166a3df5,0x20176f88,0x1ca44a24,0xdfb7b5ff,0x936afd88,0x8611d4a0,0xe34c2437 +.long 0x86142103,0x7effbb75,0x1f34fc4d,0x6704ba1b,0x10c1b122,0x7c2a468f,0x8c6aace9,0x36b3a610,0x75a0d050,0xabfcc0a7,0x3ce33e32,0x066f9197,0x29fe09be,0xce905ef4,0xa8376351,0x89ee25ba +.long 0xfd29dc76,0x2a3ede22,0x36f17260,0x7fd32ed9,0x284b4126,0x0cadcf68,0xa7951fc8,0x63422f08,0x0807e199,0x562b24f4,0x22ad4490,0xfe9ce5d1,0x0db2b1b4,0xc2f51b10,0xe4541d0d,0xeb3613ff +.long 0x2680813b,0xbd2c4a05,0x561b08d6,0x527aa55d,0xa7205558,0xa9f8a40e,0x243d0bec,0xe3eea56f,0xa0ff58b3,0x7b853817,0x1a69e627,0xb67d3f65,0xa869b5d6,0x0b76bbb9,0x546723ed,0xa3afeb82 +.long 0x3e554892,0x5f24416d,0x430e2a45,0x8413b53d,0x9032a2a0,0x99c56aee,0xeec367b1,0x09432bf6,0xdaf0ecc1,0x552850c6,0x5bc92048,0x49ebce55,0x54811307,0xdfb66ba6,0x6f298597,0x1b84f797 +.long 0x8d1d7a0d,0x79590481,0x3a6fa556,0xd9fabe03,0xba9e5d35,0xa40f9c59,0xf6247577,0xcb1771c1,0xe9a6312b,0x542a47ca,0x552dd8c5,0xa34b3560,0x0d794716,0xfdf94de0,0x9c623094,0xd46124a9 +.long 0x68afe8b4,0x56b7435d,0x6c0d8ea1,0x27f20540,0x73186898,0x12b77e14,0x7479490f,0xdbc3dd46,0xc03b0c05,0x951a9842,0x7921bc96,0x8b1b3bb3,0x2b202e0a,0xa573b346,0x47254d56,0x77e4665d +.long 0xd23e3984,0x08b70dfc,0xebd14236,0xab86e8bc,0x57114ba7,0xaa3e07f8,0xab0ef4f2,0x5ac71689,0x0139d9af,0x88fca384,0x76644af0,0x72733f88,0x65d74f4a,0xf122f72a,0xa5626c7a,0x13931577 +.long 0x70f8d5a4,0xd5b5d9eb,0xd7bbb228,0x375adde7,0x0c1c0b32,0x31e88b86,0x173edbaa,0xd1f568c4,0x5459df02,0x1592fc83,0x0fcd9a7e,0x2beac0fb,0x1b473b0a,0xb0a6fdb8,0x0fe8fc48,0xe3224c6f +.long 0xe87edf5b,0x680bd00e,0x20e77cf5,0x30385f02,0x4d42d1b2,0xe9ab98c0,0xd3816d77,0x72d191d2,0x0917d9e5,0x1564daca,0x1f8fed7f,0x394eab59,0x7fbb3896,0xa209aa8d,0xbe6ac98e,0x5564f3b9 +.long 0xd73654ef,0xead21d05,0x13d78d74,0x68d1a9c4,0x6d4973a0,0x61e01708,0x46e6d32a,0x83da3500,0x68ae0118,0x6a3dfca4,0xd02da069,0xa1b9a4c9,0xebab8302,0x0b2ff9c7,0x944ba436,0x98af07c3 +.long 0x995f0f9f,0x85997326,0x71b58bc6,0x467fade0,0xbd625a2b,0x47e4495a,0x33c3b8cd,0xfdd2d01d,0xc693f9fa,0x2c38ae28,0x348f7999,0x48622329,0x2161f583,0x97bf738e,0x565e8cc9,0x15ee2fa7 +.long 0x5777e189,0xa1a5c845,0x456f2829,0xcc10bee0,0xda762bd5,0x8ad95c56,0xe9d91da8,0x152e2214,0x7cb23c74,0x975b0e72,0xa90c66df,0xfd5d7670,0x225ffc53,0xb5b5b8ad,0xfaded2ae,0xab6dff73 +.long 0x6f4cbe9d,0xebd56781,0x6a574bd7,0x0ed8b249,0x81a881fa,0x41c246fe,0xc3db9c70,0x91564805,0x5b862809,0xd7c12b08,0x55858d7b,0x1facd1f1,0xaf09e92a,0x7693747c,0x189a425f,0x3b69dcba +.long 0x967365ef,0x0be28e9f,0xe801f5c9,0x57300eb2,0xd583352f,0x93b8ac6a,0xcd05b2b7,0xa2cf1f89,0x4dcc40cc,0x7c0c9b74,0xada523fb,0xfee38c45,0x1099cc4d,0xb49a4dec,0x69f069c6,0x325c377f +.long 0x476cc9ff,0xe12458ce,0xc6d4cb63,0x580e0b6c,0x9072289b,0xd561c8b7,0xa619e6da,0x0377f264,0x88e591a5,0x26685362,0x7523ca2b,0xa453a7bd,0xc1df4533,0x8a9536d2,0xbe972f79,0xc8e50f2f +.long 0x6d3549cf,0xd433e50f,0xfacd665e,0x6f33696f,0xce11fcb4,0x695bfdac,0xaf7c9860,0x810ee252,0x7159bb2c,0x65450fe1,0x758b357b,0xf7dfbebe,0xd69fea72,0x2b057e74,0x92731745,0xd485717a +.long 0xee36860c,0x896c42e8,0x4113c22d,0xdaf04dfd,0x44104213,0x1adbb7b7,0x1fd394ea,0xe5fd5fa1,0x1a4e0551,0x68235d94,0x18d10151,0x6772cfbe,0x09984523,0x276071e3,0x5a56ba98,0xe4e879de +.long 0x285b9491,0xaaafafb0,0x1e4c705e,0x01a0be88,0x2ad9caab,0xff1d4f5d,0xc37a233f,0x6e349a4a,0x4a1c6a16,0xcf1c1246,0x29383260,0xd99e6b66,0x5f6d5471,0xea3d4366,0xff8cc89b,0x36974d04 +.long 0xcfe89d80,0xc26c49a1,0xda9c8371,0xb42c026d,0xdad066d2,0xca6c013a,0x56a4f3ee,0xfb8f7228,0xd850935b,0x08b579ec,0xd631e1b3,0x34c1a74c,0xac198534,0xcb5fe596,0xe1f24f25,0x39ff21f6 +.long 0x8f929057,0x27f29e14,0xc0c853df,0x7a64ae06,0x58e9c5ce,0x256cd183,0xded092a5,0x9d9cce82,0x6e93b7c7,0xcc6e5979,0x31bb9e27,0xe1e47092,0xaa9e29a0,0xb70b3083,0x3785e644,0xbf181a75 +.long 0x8ead09f7,0xf53f2c65,0x9780d14d,0x1335e1d5,0xcd1b66bc,0x69cc20e0,0xbbe0bfc8,0x9b670a37,0x28efbeed,0xce53dc81,0x8326a6e5,0x0c74e77c,0xb88e9a63,0x3604e0d2,0x13dc2248,0xbab38fca +.long 0x5c0a3f1e,0x8ed6e8c8,0x7c87c37f,0xbcad2492,0x9ee3b78d,0xfdfb62bb,0xcbceba46,0xeba8e477,0xeeaede4b,0x37d38cb0,0x7976deb6,0x0bc498e8,0x6b6147fb,0xb2944c04,0xf71f9609,0x8b123f35 +.long 0xde79dc24,0xa155dcc7,0x558f69cd,0xf1168a32,0x0d1850df,0xbac21595,0xb204c848,0x15c8295b,0x7d8184ff,0xf661aa36,0x30447bdb,0xc396228e,0xbde4a59e,0x11cd5143,0x6beab5e6,0xe3a26e3b +.long 0x1402b9d0,0xd3b3a13f,0x2c7bc863,0x573441c3,0x578c3e6e,0x4b301ec4,0x0adaf57e,0xc26fc9c4,0x7493cea3,0x96e71bfd,0x1af81456,0xd05d4b3f,0x6a8c608f,0xdaca2a8a,0x0725b276,0x53ef07f6 +.long 0x7824fc56,0x07a5fbd2,0x13289077,0x34675218,0xe0c48349,0x5bf69fd5,0xb6aa7875,0xa613ddd3,0x5450d866,0x7f78c19c,0x8f84a481,0x46f4409c,0x90fce239,0x9f1d1928,0xb2ce44b9,0x016c4168 +.long 0xc7435978,0xbae023f0,0x20e30e19,0xb152c888,0xe3fa6faf,0x9c241645,0x84823e60,0x735d95c1,0x03955317,0x03197573,0xf03b4995,0x0b4b02a9,0x70274600,0x076bf559,0xaaf57508,0x32c5cc53 +.long 0x60624129,0xe8af6d1f,0x9a5e2b5e,0xb7bc5d64,0x5f082d72,0x3814b048,0xce19677a,0x76f267f2,0xb36eed93,0x626c630f,0x3bf56803,0x55230cd7,0xce2736a0,0x78837949,0xaa6c55f1,0x0d792d60 +.long 0xd5c7c5d2,0x0318dbfd,0x072b342d,0xb38f8da7,0x7b8de38a,0x3569bddc,0xa1c94842,0xf25b5887,0x2946ad60,0xb2d5b284,0xe9d1707e,0x854f29ad,0x2c6a4509,0xaa5159dc,0x57189837,0x899f94c0 +.long 0xf4a55b03,0xcf6adc51,0x35e3b2d5,0x261762de,0x04827b51,0x4cc43012,0xc6021442,0xcd22a113,0x247c9569,0xce2fd61a,0xd152beca,0x59a50973,0x63a716d4,0x6c835a11,0x187dedcf,0xc26455ed +.long 0x49ce89e7,0x27f536e0,0xcc890cb5,0x18908539,0xd83c2aa1,0x308909ab,0x1ab73bd3,0xecd3142b,0xb3f5ab84,0x6a85bf59,0xf2bea4c6,0x3c320a68,0x6da4541f,0xad8dc538,0xb7c41186,0xeaf34eb0 +.long 0x977c97c4,0x1c780129,0xc57eb9fa,0x5ff9beeb,0xc822c478,0xa24d0524,0x461cd415,0xfd8eec2a,0xf027458c,0xfbde194e,0x1d1be115,0xb4ff5319,0x4866d6f4,0x63f874d9,0xb21ad0c9,0x35c75015 +.long 0x46ac49d2,0xa6b5c9d6,0x83137aa9,0x42c77c0b,0x68225a38,0x24d000fc,0x2fe1e907,0x0f63cfc8,0xc6441f95,0x22d1b01b,0xec8e448f,0x7d38f719,0x787fb1ba,0x9b33fa5f,0x190158df,0x94dcfda1 +.long 0x5f6d4a09,0xc47cb339,0xee52b826,0x6b4f355c,0xf51b930a,0x3d100f5d,0x9f668f69,0xf4512fac,0x206c4c74,0x546781d5,0xcb4d2e48,0xd021d4d4,0xca085c2d,0x494a54c2,0x520850a8,0xf1dbaca4 +.long 0x490a1aca,0x63c79326,0x41526b02,0xcb64dd9c,0xa2979258,0xbb772591,0x48d97846,0x3f582970,0x7c213ba7,0xd66b70d1,0xe8a0ced4,0xc28febb5,0xc10338c1,0x6b911831,0xbf0126f3,0x0d54e389 +.long 0x4af206ee,0x7048d460,0x77e97cb9,0x786c88f6,0xac64802e,0xd4375ae1,0xd53ec11c,0x469bcfe1,0x47062230,0xfc9b340d,0xc5b4a3ac,0xe743bb57,0x59ef45ac,0xfe00b4aa,0x59edf188,0x29a4ef23 +.long 0xb483689b,0x40242efe,0x513ac262,0x2575d3f6,0x0ca6db72,0xf30037c8,0x98864be2,0xc9fcce82,0x0149362d,0x84a112ff,0x1c4ae971,0x95e57582,0x945cf86c,0x1fa4b1a8,0x0b024a2f,0x4525a734 +.long 0x8f338360,0xe76c8b62,0x28edf32b,0x483ff593,0x298b1aec,0x67e8e90a,0x736d9a21,0x9caab338,0x66892709,0x5c09d2fd,0xb55a1d41,0x2496b4dc,0xe24a4394,0x93f5fb1a,0x6fa8f6c1,0x08c75049 +.long 0xc905d85f,0xcaead1c2,0x0733ae57,0xe9d7f790,0xf07cdd94,0x24c9a65c,0xa4b55931,0x7389359c,0x367e45f7,0xf58709b7,0xcb7e7adc,0x1f203067,0xc7b72818,0x82444bff,0xbaac8033,0x07303b35 +.long 0xd13b7ea1,0x1e1ee4e4,0xe0e74180,0xe6489b24,0x7e70ef70,0xa5f2c610,0xbdd10894,0xa1655412,0x7af4194e,0x555ebefb,0x8e89bd9c,0x533c1c3c,0x89895856,0x735b9b57,0x567f5c15,0x15fb3cd2 +.long 0x526f09fd,0x057fed45,0x8128240a,0xe8a4f10c,0xff2bfd8d,0x9332efc4,0xbd35aa31,0x214e77a0,0x14faa40e,0x32896d73,0x01e5f186,0x767867ec,0x17a1813e,0xc9adf8f1,0x54741795,0xcb6cda78 +.long 0x349d51aa,0xb7521b6d,0xe3c7b8e9,0xf56b5a9e,0x32a096df,0xc6f1e5c9,0xa3635024,0x083667c4,0x18087f2f,0x365ea135,0xd136e45d,0xf1b8eaac,0x73aec989,0xc8a0e484,0x142c9259,0xd75a324b +.long 0x01dae185,0xb7b4d001,0x9b7a94bc,0x45434e0b,0xfbd8cb0b,0xf54339af,0xe98ef49e,0xdcc4569e,0x09a51299,0x7789318a,0xb2b025d8,0x81b4d206,0xfae85792,0xf64aa418,0xacd7baf7,0x3e50258f +.long 0x2996864b,0xdce84cdb,0x1f485fa4,0xa2e67089,0x534c6a5a,0xb28b2bb6,0xc94b9d39,0x31a7ec6b,0xd6bc20da,0x1d217766,0x86761190,0x4acdb5ec,0x73701063,0x68726328,0x2128c29b,0x4d24ee7c +.long 0xa19fd868,0xc072ebd3,0xdb8ddd3b,0x612e481c,0x1a64d852,0xb4e1d754,0xc4c6c4ab,0x00ef95ac,0xaa0a6c46,0x1536d2ed,0x43774790,0x61294086,0x343fda10,0x54af25e8,0xfd25d6f2,0x9ff9d98d +.long 0x468b8835,0x0746af7c,0x730ecea7,0x977a31cb,0xc2cf4a81,0xa5096b80,0x6458c37a,0xaa986833,0xa6bd9d34,0x6af29bf3,0x33c5d854,0x6a62fe9b,0xb7133b5e,0x50e6c304,0x7d6e6848,0x04b60159 +.long 0x5579bea4,0x4cd296df,0x5ceedaf1,0x10e35ac8,0xe3bcc5b1,0x04c4c5fd,0x89412cf9,0x95f9ee8a,0x82b6eb0f,0x2c9459ee,0x95c2aadd,0x2e845765,0xd327fcfe,0x774a84ae,0x0368d476,0xd8c93722 +.long 0xf83e8a3b,0x0dbd5748,0x8d2495f3,0xa579aa96,0xae496e9b,0x535996a0,0xb7f9bcc2,0x07afbfe9,0x5b7bd293,0x3ac1dc6d,0x7022323d,0x3b592cff,0x9c0a3e76,0xba0deb98,0x4b197acb,0x18e78e9f +.long 0x296c36ef,0x211cde10,0x82c4da77,0x7ee89672,0xa57836da,0xb617d270,0x9cb7560b,0xf0cd9c31,0xe455fe90,0x01fdcbf7,0x7e7334f3,0x3fb53cbb,0x4e7de4ec,0x781e2ea4,0x0b384fd0,0x8adab3ad +.long 0x53d64829,0x129eee2f,0xa261492b,0x7a471e17,0xe4cb4a2c,0xe4f9adb9,0x97ba2c2d,0x3d359f6f,0x0aacd697,0x346c6786,0x75c2f8a8,0x92b444c3,0xd85df44e,0xc79fa117,0x398ddf31,0x56782372 +.long 0xbbbab3b8,0x60e690f2,0x8b04816b,0x4851f8ae,0x9c92e4d2,0xc72046ab,0x7cf3136b,0x518c74a1,0xf9877d4c,0xff4eb50a,0xa919cabb,0x14578d90,0xac5eb2b6,0x8218f8c4,0x542016e4,0xa3ccc547 +.long 0x327f8349,0x025bf48e,0xf43cb641,0xf3e97346,0x500f1085,0xdc2bafdf,0x2f063055,0x57167876,0x411925a6,0x5bd914b9,0xa1123de5,0x7c078d48,0x182b165d,0xee6bf835,0xba519727,0xb11b5e5b +.long 0x1eea7b85,0xe33ea76c,0x92d4f85e,0x2352b461,0xafe115bb,0xf101d334,0x889175a3,0xfabc1294,0x5233f925,0x7f6bcdc0,0xe77fec55,0xe0a802db,0x8069b659,0xbdb47b75,0xf98fbd74,0x1c5e12de +.long 0x4b8457ee,0x869c58c6,0x4f7ea9f7,0xa5360f69,0xf460b38f,0xe576c09f,0x22b7fb36,0x6b70d548,0x3bfae315,0x3fd237f1,0xcbdff369,0x33797852,0x25b516f9,0x97df25f5,0xba38ad2d,0x46f388f2 +.long 0x89d8ddbb,0x656c4658,0x70f38ee8,0x8830b26e,0xde1212b0,0x4320fd5c,0xe4a2edb2,0xc34f30cf,0x56ab64b8,0xabb131a3,0xd99c5d26,0x7f77f0cc,0xbf981d94,0x66856a37,0x738bd76e,0x19e76d09 +.long 0x96238f39,0xe76c8ac3,0xa830b366,0xc0a482be,0x0b4eb499,0xb7b8eaff,0x4bfb4865,0x8ecd83bc,0xa2f3776f,0x971b2cb7,0xf4b88adf,0xb42176a4,0xbe1fa446,0xb9617df5,0xcd031bd2,0x8b32d508 +.long 0x53b618c0,0x1c6bd47d,0x6a227923,0xc424f46c,0xdd92d964,0x7303ffde,0x71b5abf2,0xe9712878,0xf815561d,0x8f48a632,0xd3c055d1,0x85f48ff5,0x7525684f,0x222a1427,0x67360cc3,0xd0d841a0 +.long 0x0b9267c6,0x4245a926,0xcf07f863,0xc78913f1,0x4d0d9e24,0xaa844c8e,0x3d5f9017,0xa42ad522,0xa2c989d5,0xbd371749,0xe1f5e78e,0x928292df,0x0a1ea6da,0x493b383e,0x13aee529,0x5136fd8d +.long 0xf2c34a99,0x860c44b1,0xbf5855ac,0x3b00aca4,0xfaaf37be,0xabf6aaa0,0x2a53ec08,0x65f43682,0xa11b12e1,0x1d9a5801,0xe20ed475,0x78a7ab2c,0x9a41e0d5,0x0de1067e,0x305023ea,0x30473f5f +.long 0x169c7d97,0xdd3ae09d,0xcfaef9cd,0x5cd5baa4,0x65a44803,0x5cd7440b,0x47f364de,0xdc13966a,0x2b8357c1,0x077b2be8,0xe9d57c2a,0x0cb1b4c5,0x05ff363e,0x7a4ceb32,0xca35a9ef,0xf310fa4d +.long 0xf97f68c6,0xdbb7b352,0x0b02cf58,0x0c773b50,0x3c1f96d9,0xea2e4821,0xeee01815,0xffb357b0,0xe0f28039,0xb9c924cd,0x46a3fbe4,0x0b36c95a,0x5e46db6c,0x1faaaea4,0x1928aaff,0xcae575c3 +.long 0xa70dab86,0x7f671302,0x71c58cfc,0xfcbd12a9,0xbee0cb92,0xcbef9acf,0xf8c1b583,0x573da0b9,0x0d41d550,0x4752fcfe,0x2155cffe,0xe7eec0e3,0x545ae248,0x0fc39fcb,0x8065f44e,0x522cb8d1 +.long 0x70cbb96c,0x263c962a,0xbcd124a9,0xe034362a,0x3c2ae58d,0xf120db28,0xfef6d507,0xb9a38d49,0x1ff140fd,0xb1fd2a82,0x20aee7e0,0xbd162f30,0xcb251949,0x4e17a5d4,0x4f7e1c3d,0x2aebcb83 +.long 0x937b0527,0x608eb25f,0xeb7d9997,0xf42e1e47,0xb8a53a29,0xeba699c4,0xe091b536,0x1f921c71,0x5b26bbd5,0xcce29e7b,0x3b61a680,0x7a8ef5ed,0xba1f1c7e,0xe5ef8043,0x18158dda,0x16ea8217 +.long 0x599ff0f9,0x01778a2b,0x8104fc6b,0x68a923d7,0xda694ff3,0x5bfa44df,0xf7667f12,0x4f7199db,0xe46f2a79,0xc06d8ff6,0xe9f8131d,0x08b5dead,0xabb4ce7c,0x02519a59,0xb42aec3e,0xc4f710bc +.long 0x78bde41a,0x3d77b057,0xb4186b5a,0x6474bf80,0x88c65741,0x048b3f67,0x03c7c154,0xc64519de,0x0edfcc4f,0xdf073846,0x48f1aa6b,0x319aa737,0xca909f77,0x8b9f8a02,0x7580bfef,0x90258139 +.long 0xc0c22719,0xd8bfd3ca,0xc9ca151e,0xc60209e4,0xd9a1a69c,0x7a744ab5,0x14937f8f,0x6de5048b,0xe115ac04,0x171938d8,0x1c6b16d2,0x7df70940,0x7f8e94e7,0xa6aeb663,0x2a2cf094,0xc130388e +.long 0x77f54e6e,0x1850be84,0x65d60fe5,0x9f258a72,0x6c9146d6,0xff7ff0c0,0xe63a830b,0x039aaf90,0x9460342f,0x38f27a73,0x3f795f8a,0x4703148c,0x9681a97e,0x1bb5467b,0xecaeb594,0x00931ba5 +.long 0x786f337c,0xcdb6719d,0xe704397d,0xd9c01cd2,0x555c2fef,0x0f4a3f20,0x7c0af223,0x00452509,0x84db8e76,0x54a58047,0x93c8aa06,0x3bacf1aa,0xf7919422,0x11ca957c,0x78cdaa40,0x50641053 +.long 0x9f7144ae,0x7a303874,0x43d4acfd,0x170c963f,0x58ddd3ef,0x5e148149,0x9e72dba8,0xa7bde582,0x6fa68750,0x0769da8b,0x572e0249,0xfa64e532,0x2619ad31,0xfcaadf9d,0xa7b349cd,0x87882daa +.long 0x6c67a775,0x9f6eb731,0xefc5d0b1,0xcb10471a,0xe1b806b2,0xb433750c,0x57b1ae7e,0x19c5714d,0xed03fd3f,0xc0dc8b7b,0x31bc194e,0xdd03344f,0x8c6320b5,0xa66c52a7,0xd0b6fd93,0x8bc82ce3 +.long 0xb35f1341,0xf8e13501,0x25a43e42,0xe53156dd,0x4daeb85c,0xd3adf27e,0xbbeddeb5,0xb81d8379,0x2e435867,0x1b0b546e,0xeba5dd60,0x9020eb94,0x8210cb9d,0x37d91161,0x5c91f1cf,0x4c596b31 +.long 0x0e0b040d,0xb228a90f,0x45ff897f,0xbaf02d82,0x00fa6122,0x2aac79e6,0x8e36f557,0x24828817,0x113ec356,0xb9521d31,0x15eff1f8,0x9e48861e,0xe0d41715,0x2aa1d412,0x53f131b8,0x71f86203 +.long 0x3fd19408,0xf60da8da,0x278d9d99,0x4aa716dc,0xa8c51c90,0x394531f7,0xf59db51c,0xb560b0e8,0xfa34bdad,0xa28fc992,0x9cd4f8bd,0xf024fa14,0x23a9d0d3,0x5cf530f7,0xe28c9b56,0x615ca193 +.long 0x6f73c51e,0x6d2a483d,0xea0dc2dd,0xa4cb2412,0x1eb917ff,0x50663c41,0xeade299e,0x3d3a74cf,0x4a7a9202,0x29b3990f,0xa7b15c3d,0xa9bccf59,0xa5df9208,0x66a3ccdc,0x43f2f929,0x48027c14 +.long 0x40b557f0,0xd385377c,0xcd684660,0xe001c366,0xe2183a27,0x1b18ed6b,0x63210329,0x879738d8,0xbda94882,0xa687c74b,0xa684b299,0xd1bbcc48,0x863b3724,0xaf6f1112,0x2c8ce9f8,0x6943d1b4 +.long 0x098cafb4,0xe044a3bb,0x60d48caf,0x27ed2310,0x3a31b84d,0x542b5675,0xfcddbed7,0xcbf3dd50,0x41b1d830,0x25031f16,0xcb0c1e27,0xa7ec851d,0xb5ae75db,0xac1c8fe0,0x08c52120,0xb24c7557 +.long 0x1d4636c3,0x57f811dc,0x681a9939,0xf8436526,0x9c81adb3,0x1f6bc6d9,0x5b7d80d4,0x840f8ac3,0xf4387f1a,0x731a9811,0xb5156880,0x7c501cd3,0xdfe68867,0xa5ca4a07,0x5fcea120,0xf123d8f0 +.long 0xd607039e,0x1fbb0e71,0xcd3a4546,0x2b70e215,0x53324091,0x32d2f01d,0x180ab19b,0xb796ff08,0x3c57c4aa,0x32d87a86,0xb7c49a27,0x2aed9caf,0x31630d98,0x9fb35eac,0x5c3e20a3,0x338e8cdf +.long 0x66cde8db,0x80f16182,0x2d72fd36,0x4e159980,0x9b6e5072,0xd7b8f13b,0x3b7b5dc1,0xf5213907,0x8ce4396e,0x4d431f1d,0xa7ed2142,0x37a1a680,0xd01aaf6b,0xbf375696,0xe63aab66,0xaa1c0c54 +.long 0x4ed80940,0x3014368b,0x7a6fcedd,0x67e6d056,0xca97579f,0x7c208c49,0xa23597f6,0xfe3d7a81,0x7e096ae2,0x5e203202,0x24b39366,0xb1f3e1e7,0x2fdcdffc,0x26da26f3,0x6097be83,0x79422f1d +.long 0x9db3b381,0x263a2cfb,0xd4df0a4b,0x9c3a2dee,0x7d04e61f,0x728d06e9,0x42449325,0x8b1adfbc,0x7e053a1b,0x6ec1d939,0x66daf707,0xee2be5c7,0x810ac7ab,0x80ba1e14,0xf530f174,0xdd2ae778 +.long 0x205b9d8b,0x0435d97a,0x056756d4,0x6eb8f064,0xb6f8210e,0xd5e88a8b,0xec9fd9ea,0x070ef12d,0x3bcc876a,0x4d849505,0xa7404ce3,0x12a75338,0xb8a1db5e,0xd22b49e1,0x14bfa5ad,0xec1f2051 +.long 0xb6828f36,0xadbaeb79,0x01bd5b9e,0x9d7a0258,0x1e844b0c,0xeda01e0d,0x887edfc9,0x4b625175,0x9669b621,0x14109fdd,0xf6f87b98,0x88a2ca56,0x170df6bc,0xfe2eb788,0xffa473f9,0x0cea06f4 +.long 0xc4e83d33,0x43ed81b5,0x5efd488b,0xd9f35879,0x9deb4d0f,0x164a620f,0xac6a7394,0xc6927bdb,0x9f9e0f03,0x45c28df7,0xfcd7e1a9,0x2868661e,0xffa348f1,0x7cf4e8d0,0x398538e0,0x6bd4c284 +.long 0x289a8619,0x2618a091,0x6671b173,0xef796e60,0x9090c632,0x664e46e5,0x1e66f8fb,0xa38062d4,0x0573274e,0x6c744a20,0xa9271394,0xd07b67e4,0x6bdc0e20,0x391223b2,0xeb0a05a7,0xbe2d93f1 +.long 0x3f36d141,0xf23e2e53,0x4dfca442,0xe84bb3d4,0x6b7c023a,0xb804a48d,0x76431c3b,0x1e16a8fa,0xddd472e0,0x1b5452ad,0x0d1ee127,0x7d405ee7,0xffa27599,0x50fc6f1d,0xbf391b35,0x351ac53c +.long 0x4444896b,0x7efa14b8,0xf94027fb,0x64974d2f,0xde84487d,0xefdcd0e8,0x2b48989b,0x8c45b260,0xd8463487,0xa8fcbbc2,0x3fbc476c,0xd1b2b3f7,0xc8f443c0,0x21d005b7,0x40c0139c,0x518f2e67 +.long 0x06d75fc1,0x56036e8c,0x3249a89f,0x2dcf7bb7,0xe245e7dd,0x81dd1d3d,0xebd6e2a7,0xf578dc4b,0xdf2ce7a0,0x4c028903,0x9c39afac,0xaee36288,0x146404ab,0xdc847c31,0xa4e97818,0x6304c0d8 +.long 0xa91f6791,0xae51dca2,0x9baa9efc,0x2abe4190,0x559c7ac1,0xd9d2e2f4,0xfc9f773a,0xe82f4b51,0x4073e81c,0xa7713027,0xfbb596fc,0xc0276fac,0xa684f70c,0x1d819fc9,0xc9f7b1e0,0x29b47fdd +.long 0x459b1940,0x358de103,0x5b013e93,0xec881c59,0x49532ad3,0x51574c93,0xb37b46de,0x2db1d445,0xdf239fd8,0xc6445b87,0x151d24ee,0xc718af75,0xf43c6259,0xaea1c4a4,0x70be02f7,0x40c0e5d7 +.long 0x721b33f2,0x6a4590f4,0xfedf04ea,0x2124f1fb,0x9745efe7,0xf8e53cde,0x65f046d9,0xe7e10432,0xe4d0c7e6,0xc3fca28e,0x87253b1b,0x847e339a,0x3743e643,0x9b595348,0x4fd12fc5,0xcb6a0a0b +.long 0x27d02dcc,0xfb6836c3,0x7a68bcc2,0x5ad00982,0x005e912d,0x1b24b44c,0x811fdcfe,0xcc83d20f,0x666fba0c,0x36527ec1,0x14754635,0x69948197,0x556da9c2,0xfcdcb1a8,0x81a732b2,0xa5934267 +.long 0xa714181d,0xec1214ed,0x6067b341,0x609ac13b,0xa545df1f,0xff4b4c97,0x34d2076b,0xa1240501,0x1409ca97,0x6efa0c23,0x20638c43,0x254cc1a8,0xdcfb46cd,0xd4e363af,0x03942a27,0x62c2adc3 +.long 0x56e46483,0xc67b9df0,0x63736356,0xa55abb20,0xc551bc52,0xab93c098,0xb15fe64b,0x382b49f9,0x4dff8d47,0x9ec221ad,0x437df4d6,0x79caf615,0xbb456509,0x5f13dc64,0x191f0714,0xe4c589d9 +.long 0x3fd40e09,0x27b6a8ab,0x77313ea9,0xe455842e,0x1f55988b,0x8b51d1e2,0x062bbbfc,0x5716dd73,0x4e8bf3de,0x633c11e5,0x1b85be3b,0x9a0e77b6,0x0911cca6,0x56510729,0xefa6590f,0x27e76495 +.long 0x070d3aab,0xe4ac8b33,0x9a2cd5e5,0x2643672b,0x1cfc9173,0x52eff79b,0x90a7c13f,0x665ca49b,0xb3efb998,0x5a8dda59,0x052f1341,0x8a5b922d,0x3cf9a530,0xae9ebbab,0xf56da4d7,0x35986e7b +.long 0xff3513cc,0x3a636b5c,0x3198f7dd,0xbb0cf8ba,0x41f16f86,0xb8d40522,0xde13a7bf,0x760575d8,0x9f7aa181,0x36f74e16,0xf509ed1c,0x163a3ecf,0x3c40a491,0x6aead61f,0xdfe8fcaa,0x158c95fc +.long 0x13cda46f,0xa3991b6e,0x342faed0,0x79482415,0x666b5970,0xf3ba5bde,0xb26ab6dd,0x1d52e6bc,0x8608dd3d,0x768ba1e7,0xea076586,0x4930db2a,0xe7dc1afa,0xd9575714,0xf7c58817,0x1fc7bf7d +.long 0xd9eee96c,0x6b47accd,0xe58cec37,0x0ca277fb,0xe702c42a,0x113fe413,0xc47cbe51,0xdd1764ee,0x7b3ed739,0x041e7cde,0x5ce9e1c0,0x50cb7459,0x2925b212,0x35568513,0x001b081c,0x7cff95c4 +.long 0x8088b454,0x63ee4cbd,0x9a9e0c8a,0xdb7f32f7,0x6b2447cb,0xb377d418,0xd370219b,0xe3e982aa,0xc2a2a593,0x06ccc1e4,0x0773f24f,0x72c36865,0x95859423,0xa13b4da7,0x75040c8f,0x8bbf1d33 +.long 0xda50c991,0x726f0973,0x822d6ee2,0x48afcd5b,0x20fd7771,0xe5fc718b,0xfd0807a1,0xb9e8e77d,0x99a7703d,0x7f5e0f44,0x618e36f3,0x6972930e,0x23807bbe,0x2b7c77b8,0xcb27ff50,0xe5b82405 +.long 0xbd379062,0xba8b8be3,0x2dce4a92,0xd64b7a1d,0xb2952e37,0x040a73c5,0xd438aeca,0x0a9e252e,0xc39d3bcb,0xdd43956b,0xb32b2d63,0x1a31ca00,0x5c417a18,0xd67133b8,0x2ef442c8,0xd08e4790 +.long 0x255c0980,0x98cb1ae9,0x2b4a739f,0x4bd86381,0x1e4a45a1,0x5a5c31e1,0x9cb0db2f,0x1e5d55fe,0x8ff5cc29,0x74661b06,0x0eb8a4f4,0x026b389f,0x58848c24,0x536b21a4,0x81dc72b0,0x2e5bf8ec +.long 0xad886aac,0x03c187d0,0xb771b645,0x5c16878a,0xc74045ab,0xb07dfc6f,0x7800caed,0x2c6360bf,0xb9c972a3,0x24295bb5,0x7c9a6dba,0xc9e6f88e,0x92a79aa6,0x90ffbf24,0x41c26ac2,0xde29d50a +.long 0xd309cbe6,0x9f0af483,0xe0bced4f,0x5b020d8a,0xb38023e3,0x606e986d,0x1abc6933,0xad8f2c9d,0xe7400e93,0x19292e1d,0x52be5e4d,0xfe3e18a9,0x2e0680bf,0xe8e9771d,0xc54db063,0x8c5bec98 +.long 0x74a55d1f,0x2af9662a,0x046f66d8,0xe3fbf28f,0xd4dc4794,0xa3a72ab4,0x5c7c2dd8,0x09779f45,0xc3d19d8d,0xd893bdaf,0x57d6a6df,0xd5a75094,0x952e6255,0x8cf8fef9,0xda9a8aff,0x3da67cfb +.long 0x2c160dcd,0x4c23f62a,0x8f90eaef,0x34e6c5e3,0xa9a65d5a,0x35865519,0x8fd38a3d,0x07c48aae,0x50068527,0xb7e7aeda,0x1c90936a,0x2c09ef23,0xe879324c,0x31ecfeb6,0xfb0ec938,0xa0871f6b +.long 0xd84d835d,0xb1f0fb68,0x861dc1e6,0xc90caf39,0x7594f8d7,0x12e5b046,0x65012b92,0x26897ae2,0xa4d6755d,0xbcf68a08,0x0991fbda,0x403ee41c,0x3bbf17e8,0x733e343e,0x679b3d65,0xd2c7980d +.long 0xd2e11305,0x33056232,0xf3c07a6f,0x966be492,0xbb15509d,0x6a8878ff,0x0a9b59a4,0xff221101,0xabe30129,0x6c9f564a,0x336e64cf,0xc6f2c940,0x8b0c8022,0x0fe75262,0x6ae8db87,0xbe0267e9 +.long 0x93bc042b,0x22e192f1,0xb237c458,0xf085b534,0x832c4168,0xa0d192bd,0xbdf6271d,0x7a76e9e3,0xb88911b5,0x52a882fa,0xb4db0eb5,0xc85345e4,0x81a7c3ff,0xa3be02a6,0xf0ec0469,0x51889c8c +.long 0xa5e829e5,0x9d031369,0x1607aa41,0xcbb4c6fc,0x241d84c1,0x75ac59a6,0x8829e0ee,0xc043f2bf,0x8ea5e185,0x82a38f75,0xd87cbd9f,0x8bda40b9,0x2d8fc601,0x9e65e75e,0xa35690b3,0x3d515f74 +.long 0xda79e5ac,0x534acf4f,0x8630215f,0x68b83b3a,0xd085756e,0x5c748b2e,0xe5d37cb2,0xb0317258,0xc5ccc2c4,0x6735841a,0x3d9d5069,0x7d7dc96b,0xfd1754bd,0xa147e410,0xd399ddd5,0x65296e94 +.long 0xbc8fa5bc,0xf6b5b2d0,0x500c277b,0x8a5ead67,0xdfa08a5d,0x214625e6,0x959cf047,0x51fdfedc,0x289fca32,0x6bc9430b,0x9d9bdc3f,0xe36ff0cf,0x58ea0ede,0x2fe187cb,0x5a900b3f,0xed66af20 +.long 0x5fa9f4d6,0x00e0968b,0x37a362e7,0x2d4066ce,0xbd07e772,0xa99a9748,0x06a4f1d0,0x710989c0,0xce40cbd8,0xd5dedf35,0x1743293d,0xab55c5f0,0x8aa24e2c,0x766f1144,0x605fbcb4,0x94d874f8 +.long 0xa518001b,0xa365f0e8,0x9d04ef0f,0xee605eb6,0xba8d4d25,0x5a3915cd,0xb5113472,0x44c0e1b8,0x8b6740dc,0xcbb024e8,0xee1d4f0c,0x89087a53,0x1fc4e372,0xa88fa05c,0xaf8b3af2,0x8bf395cb +.long 0xdeb8568b,0x1e71c9a1,0x80fb3d32,0xa35daea0,0x2cf8fb81,0xe8b6f266,0x9490696a,0x6d51afe8,0x51803a19,0x81beac6e,0x86219080,0xe3d24b7f,0xdf6f463c,0x727cfd9d,0x72284ee8,0x8c6865ca +.long 0xb743f4ef,0x32c88b7d,0xe7d11dce,0x3793909b,0x2ff2ebe8,0xd398f922,0xe5e49796,0x2c70ca44,0xcb1131b1,0xdf4d9929,0x25888e79,0x7826f298,0xf1d8740a,0x4d3a112c,0x270afa8b,0x00384cb6 +.long 0x3ab48095,0xcb64125b,0x62d05106,0x3451c256,0xa4955845,0xd73d577d,0xbf9f4433,0x39570c16,0xadecf263,0xd7dfaad3,0xdc76e102,0xf1c3d8d1,0x54c6a836,0x5e774a58,0x3e92d47b,0xdad4b672 +.long 0xf0d796a0,0xbe7e990f,0xdf0e8b02,0x5fc62478,0x030c00ad,0x8aae8bf4,0x9004ba0f,0x3d2db93b,0xd85d5ddc,0xe48c8a79,0x6bb07f34,0xe907caa7,0xa39eaed5,0x58db343a,0xadaf5724,0x0ea6e007 +.long 0xd23233f3,0xe00df169,0x77cb637f,0x3e322796,0x1da0cf6c,0x1f897c0e,0x31d6bbdd,0xa651f5d8,0x1a230c76,0xdd61af19,0xcdaa5e4a,0xbd527272,0xd0abcd7e,0xca753636,0x370bd8dc,0x78bdd37c +.long 0x17cd93fe,0xc23916c2,0xdadce6e2,0x65b97a4d,0x174e42f8,0xe04ed4eb,0xbb21480a,0x1491ccaa,0x23196332,0x145a8280,0x587b479a,0x3c3862d7,0x01dcd0ed,0x9f4a88a3,0x3ea12f1f,0x4da2b7ef +.long 0xb126e48e,0xf8e7ae33,0xf494e237,0x404a0b32,0xc55acadb,0x9beac474,0xcbec9fd9,0x4ee5cf3b,0x7df3c8c3,0x336b33b9,0xb76808fd,0xbd905fe3,0xaa45c16a,0x8f436981,0x3dd27b62,0x255c5bfa +.long 0xc3dd9b4d,0x71965cbf,0xfc068a87,0xce23edbf,0x745b029b,0xb78d4725,0xcefdd9bd,0x74610713,0x1266bf52,0x7116f75f,0x18e49bb6,0x02046722,0x3d6f19e3,0xdf43df9f,0xe685cb2f,0xef1bc7d0 +.long 0x7078c432,0xcddb27c1,0xb77fedb7,0xe1961b9c,0xc2290570,0x1edc2f5c,0x19cbd886,0x2c3fefca,0xc2af389a,0xcf880a36,0xbda71cea,0x96c610fd,0x32aa8463,0xf03977a9,0x8586d90a,0x8eb7763f +.long 0x2a296e77,0x3f342454,0x42837a35,0xc8718683,0x6a09c731,0x7dc71090,0x51b816db,0x54778ffb,0xaf06defd,0x6b33bfec,0x8592b70b,0xfe3c105f,0x61da6114,0xf937fda4,0x4c266ad7,0x3c13e651 +.long 0x855938e8,0xe363a829,0x9de54b72,0x2eeb5d9e,0x20ccfab9,0xbeb93b0e,0x25e61a25,0x3dffbb5f,0x1acc093d,0x7f655e43,0x3964ce61,0x0cb6cc3d,0xe5e9b460,0x6ab283a1,0xa1c7e72d,0x55d787c5 +.long 0xdeadbf02,0x4d2efd47,0xac459068,0x11e80219,0x71f311f0,0x810c7626,0x4ab6ef53,0xfa17ef8d,0x93e43bff,0xaf47fd25,0x0be40632,0x5cb5ff3f,0x8ee61da3,0x54687106,0xb08afd0f,0x7764196e +.long 0xf0290a8f,0x831ab3ed,0xcb47c387,0xcae81966,0x184efb4f,0xaad7dece,0x4749110e,0xdcfc53b3,0x4cb632f9,0x6698f23c,0xb91f8067,0xc42a1ad6,0x6284180a,0xb116a81d,0xe901326f,0xebedf5f8 +.long 0x97e3e044,0xf2274c9f,0x11d09fc9,0x42018520,0xd18e6e23,0x56a65f17,0x352b683c,0x2ea61e2a,0x575eaa94,0x27d291bc,0xb8ff522d,0x9e7bc721,0xa7f04d6f,0x5f7268bf,0xaba41748,0x5868c73f +.long 0x7be0eead,0x9f85c2db,0xff719135,0x511e7842,0xc5ea90d7,0x5a06b1e9,0x26fab631,0x0c19e283,0xe9206c55,0x8af8f0cf,0x3553c06a,0x89389cb4,0xf65f8004,0x39dbed97,0xc508991d,0x0621b037 +.long 0x96e78cc4,0x1c52e635,0x0c06b4a8,0x5385c8b2,0xb0e87d03,0xd84ddfdb,0x934bafad,0xc49dfb66,0x59f70772,0x7071e170,0x3a1db56b,0x3a073a84,0x3b8af190,0x03494903,0xd32920f0,0x7d882de3 +.long 0xb2cf8940,0x91633f0a,0x6f948f51,0x72b0b178,0x782653c8,0x2d28dc30,0xdb903a05,0x88829849,0x6a19d2bb,0xb8095d0c,0x86f782cb,0x4b9e7f0c,0x2d907064,0x7af73988,0x8b32643c,0xd12be0fe +.long 0x0e165dc3,0x358ed23d,0x4e2378ce,0x3d47ce62,0xfeb8a087,0x7e2bb0b9,0xe29e10b9,0x3246e8ae,0x03ce2b4d,0x459f4ec7,0xbbc077cf,0xe9b4ca1b,0x0e9940c1,0x2613b4f2,0x047d1eb1,0xfc598bb9 +.long 0x45036099,0x9744c62b,0x167c65d8,0xa9dee742,0xdabe1943,0x0c511525,0x93c6c624,0xda110554,0x651a3be2,0xae00a52c,0x884449a6,0xcda5111d,0xff33bed1,0x063c06f4,0x0d3d76b4,0x73baaf9a +.long 0x7fc63668,0x52fb0c9d,0x0c039cde,0x6886c9dd,0x55b22351,0x602bd599,0x360c7c13,0xb00cab02,0x81b69442,0x8cb616bc,0xb55c3cee,0x41486700,0xf49ba278,0x71093281,0x64a50710,0xad956d9c +.long 0x638a7e81,0x9561f28b,0x5980ddc3,0x54155cdf,0xd26f247a,0xb2db4a96,0x4787d100,0x9d774e4e,0x078637d2,0x1a9e6e2e,0x5e0ae06a,0x1c363e2d,0xe9cfa354,0x7493483e,0x7f74b98d,0x76843cb3 +.long 0xd4b66947,0xbaca6591,0x04460a8c,0xb452ce98,0x43768f55,0x6830d246,0x7dff12df,0xf4197ed8,0x400dd0f7,0x6521b472,0x4b1e7093,0x59f5ca8f,0x080338ae,0x6feff11b,0xa29ca3c6,0x0ada31f6 +.long 0x94a2c215,0x24794eb6,0x05a57ab4,0xd83a43ab,0x2a6f89fe,0x264a543a,0xdd5ec7c2,0x2c2a3868,0x8439d9b2,0xd3373940,0x0acd1f11,0x715ea672,0xe7e6cc19,0x42c1d235,0xb990585c,0x81ce6e96 +.long 0xd809c7bd,0x04e5dfe0,0x8f1050ab,0xd7b2580c,0xd8a4176f,0x6d91ad78,0x4e2e897c,0x0af556ee,0x921de0ac,0x162a8b73,0x7ea78400,0x52ac9c22,0xefce2174,0xee2a4eea,0x6d637f79,0xbe61844e +.long 0x789a283b,0x0491f1bc,0x880836f4,0x72d3ac3d,0x88e5402d,0xaa1c5ea3,0xd5cc473d,0x1b192421,0x9dc84cac,0x5c0b9998,0x9c6e75b8,0xb0a8482d,0x3a191ce2,0x639961d0,0x6d837930,0xda3bc865 +.long 0x056e6f8f,0xca990653,0x64d133a7,0x84861c41,0x746abe40,0x8b403276,0xebf8e303,0xb7b4d51a,0x220a255d,0x05b43211,0x02419e6e,0xc997152c,0x630c2fea,0x76ff47b6,0x281fdade,0x50518677 +.long 0xcf902b0b,0x3283b8ba,0x37db303b,0x8d4b4eb5,0x755011bc,0xcc89f42d,0xdd09d19b,0xb43d74bb,0x8adba350,0x65746bc9,0xb51c1927,0x364eaf8c,0x10ad72ec,0x13c76596,0xf8d40c20,0x30045121 +.long 0xea7b979b,0x6d2d99b7,0xe6fb3bcd,0xcd78cd74,0x86cffbfe,0x11e45a9e,0x637024f6,0x78a61cf4,0x3d502295,0xd06bc872,0x458cb288,0xf1376854,0x342f8586,0xb9db26a1,0x4beee09e,0xf33effcf +.long 0xb30cfb3a,0xd7e0c4cd,0x6c9db4c8,0x6d09b8c1,0x07c8d9df,0x40ba1a42,0x1c52c66d,0x6fd495f7,0x275264da,0xfb0e169f,0xe57d8362,0x80c2b746,0x49ad7222,0xedd987f7,0x4398ec7b,0xfdc229af +.long 0x52666a58,0xb0d1ed84,0xe6a9c3c2,0x4bcb6e00,0x26906408,0x3c57411c,0x13556400,0xcfc20755,0x5294dba3,0xa08b1c50,0x8b7dd31e,0xa30ba286,0x991eca74,0xd70ba90e,0xe762c2b9,0x094e142c +.long 0x979f3925,0xb81d783e,0xaf4c89a7,0x1efd130a,0xfd1bf7fa,0x525c2144,0x1b265a9e,0x4b296904,0xb9db65b6,0xed8e9634,0x03599d8a,0x35c82e32,0x403563f3,0xdaa7a54f,0x022c38ab,0x9df088ad +.long 0xbb3fd30a,0xe5cfb066,0xeff0354e,0x429169da,0x3524e36c,0x809cf852,0x0155be1d,0x136f4fb3,0x1fbba712,0x4826af01,0x506ba1a1,0x6ef0f0b4,0x77aea73e,0xd9928b31,0x5eaa244e,0xe2bf6af2 +.long 0x4237b64b,0x8d084f12,0xe3ecfd07,0x688ebe99,0xf6845dd8,0x57b8a70c,0x5da4a325,0x808fc59c,0xa3585862,0xa9032b2b,0xedf29386,0xb66825d5,0x431ec29b,0xb5a5a8db,0x3a1e8dc8,0xbb143a98 +.long 0x12ae381b,0x35ee94ce,0x86ccda90,0x3a7f176c,0x4606eaca,0xc63a657e,0x43cd04df,0x9ae5a380,0xed251b46,0x9bec8d15,0xcaca5e64,0x1f5d6d30,0x9ff20f07,0x347b3b35,0xf7e4b286,0x4d65f034 +.long 0xf111661e,0x9e93ba24,0xb105eb04,0xedced484,0xf424b578,0x96dc9ba1,0xe83e9069,0xbf8f66b7,0xd7ed8216,0x872d4df4,0x8e2cbecf,0xbf07f377,0x98e73754,0x4281d899,0x8aab8708,0xfec85fbb +.long 0xa5ba5b0b,0x9a3c0dee,0x42d05299,0xe6a116ce,0xe9b02d42,0xae9775fe,0xa1545cb6,0x72b05200,0x31a3b4ea,0xbc506f7d,0x8bbd9b32,0xe5893078,0xe4b12a97,0xc8bc5f37,0x4a73b671,0x6b000c06 +.long 0x765fa7d0,0x13b5bf22,0x1d6a5370,0x59805bf0,0x4280db98,0x67a5e29d,0x776b1ce3,0x4f53916f,0x33ddf626,0x714ff61f,0xa085d103,0x4206238e,0xe5809ee3,0x1c50d4b7,0x85f8eb1d,0x999f450d +.long 0xe4c79e9b,0x658a6051,0xc66a9fea,0x1394cb73,0xc6be7b23,0x27f31ed5,0x5aa6f8fe,0xf4c88f36,0x4aaa499e,0x0fb0721f,0xe3fb2a6b,0x68b3a7d5,0x3a92851d,0xa788097d,0xe96f4913,0x060e7f8a +.long 0x1a3a93bc,0x82eebe73,0xa21adc1a,0x42bbf465,0xef030efd,0xc10b6fa4,0x87b097bb,0x247aa4c7,0xf60c77da,0x8b8dc632,0xc223523e,0x6ffbc26a,0x344579cf,0xa4f6ff11,0x980250f6,0x5825653c +.long 0xbc1aa2b9,0xb2dd097e,0x37a0333a,0x07889393,0x37a0db38,0x1cf55e71,0x792c1613,0x2648487f,0x3fcef261,0xdad01336,0x0eabf129,0x6239c81d,0x9d276be2,0x8ee761de,0x1eda6ad3,0x406a7a34 +.long 0x4a493b31,0x4bf367ba,0x9bf7f026,0x54f20a52,0x9795914b,0xb696e062,0x8bf236ac,0xcddab96d,0xed25ea13,0x4ff2c70a,0x81cbbbe7,0xfa1d09eb,0x468544c5,0x88fc8c87,0x696b3317,0x847a670d +.long 0x64bcb626,0xf133421e,0x26dee0b5,0xaea638c8,0xb310346c,0xd6e7680b,0xd5d4ced3,0xe06f4097,0x7512a30b,0x09961452,0xe589a59a,0xf3d867fd,0x52d0c180,0x2e73254f,0x333c74ac,0x9063d8a3 +.long 0xd314e7bc,0xeda6c595,0x467899ed,0x2ee7464b,0x0a1ed5d3,0x1cef423c,0x69cc7613,0x217e76ea,0xe7cda917,0x27ccce1f,0x8a893f16,0x12d8016b,0x9fc74f6b,0xbcd6de84,0xf3144e61,0xfa5817e2 +.long 0x0821ee4c,0x1f354164,0x0bc61992,0x1583eab4,0x1d72879f,0x7490caf6,0xf76ae7b2,0x998ad9f3,0xa41157f7,0x1e181950,0xe8da3a7e,0xa9d7e1e6,0x8426b95f,0x963784eb,0x542e2a10,0x0ee4ed6e +.long 0xac751e7b,0xb79d4cc5,0xfd4211bd,0x93f96472,0xc8de4fc6,0x8c72d3d2,0xdf44f064,0x7b69cbf5,0xf4bf94e1,0x3da90ca2,0xf12894e2,0x1a5325f8,0x7917d60b,0x0a437f6c,0x96c9cb5d,0x9be70486 +.long 0xe1dc5c05,0xb4d880bf,0xeebeeb57,0xd738adda,0xdf0fe6a3,0x6f0119d3,0x66eaaf5a,0x5c686e55,0xdfd0b7ec,0x9cb10b50,0x6a497c21,0xbdd0264b,0x8c546c96,0xfc093514,0x79dbf42a,0x58a947fa +.long 0x49ccd6d7,0xc0b48d4e,0x88bd5580,0xff8fb02c,0x07d473b2,0xc75235e9,0xa2188af3,0x4fab1ac5,0x97576ec0,0x030fa3bc,0x0b7e7d2f,0xe8c946e8,0x70305600,0x40a5c9cc,0xc8b013b4,0x6d8260a9 +.long 0x70bba85c,0x0368304f,0xa4a0d311,0xad090da1,0x2415eec1,0x7170e870,0x8461ea47,0xbfba35fe,0xc1e91938,0x6279019a,0x1afc415f,0xa47638f3,0xbcba0e0f,0x36c65cbb,0x034e2c48,0x02160efb +.long 0x615cd9e4,0xe6c51073,0xf1243c06,0x498ec047,0xb17b3d8c,0x3e5a8809,0x0cc565f1,0x5cd99e61,0x7851dafe,0x81e312df,0xa79061e2,0xf156f5ba,0x880c590e,0x80d62b71,0x0a39faa1,0xbec9746f +.long 0xc8ed1f7a,0x1d98a9c1,0xa81d5ff2,0x09e43bb5,0x0da0794a,0xd5f00f68,0x661aa836,0x412050d9,0x90747e40,0xa89f7c4e,0xb62a3686,0x6dc05ebb,0x308e3353,0xdf4de847,0x9fb53bb9,0x53868fbb +.long 0xcfdcf7dd,0x2b09d2c3,0x723fcab4,0x41a9fce3,0x07f57ca3,0x73d905f7,0xac8e1555,0x080f9fb1,0x9ba7a531,0x7c088e84,0xed9a147f,0x07d35586,0xaf48c336,0x602846ab,0x0ccf0e79,0x7320fd32 +.long 0xb18bd1ff,0xaa780798,0xafdd2905,0x52c2e300,0x434267cd,0xf27ea3d6,0x15605b5f,0x8b96d16d,0x4b45706b,0x7bb31049,0x743d25f8,0xe7f58b8e,0x87f30076,0xe9b5e45b,0x5d053d5a,0xd19448d6 +.long 0xd3210a04,0x1ecc8cb9,0xdafb5269,0x6bc7d463,0x67c3489f,0x3e59b10a,0x65641e1b,0x1769788c,0xbd6cb838,0x8a53b82d,0x236d5f22,0x7066d6e6,0x6908536e,0x03aa1c61,0x66ae9809,0xc971da0d +.long 0xc49a2fac,0x01b3a86b,0x3092e77a,0x3b8420c0,0x7d6fb556,0x02057300,0xbff40a87,0x6941b2a1,0x0658ff2a,0x140b6308,0x3424ab36,0x87804363,0x5751e299,0x0253bd51,0x449c3e3a,0xc75bcd76 +.long 0x7f8f875d,0x92eb4090,0x56c26bbf,0x9c9d754e,0x8110bbe7,0x158cea61,0x745f91ea,0x62a6b802,0xc6e7394b,0xa79c41aa,0xad57ef10,0x445b6a83,0x6ea6f40c,0x0c5277eb,0x88633365,0x319fe96b +.long 0x385f63cb,0x0b0fc61f,0x22bdd127,0x41250c84,0x09e942c2,0x67d153f1,0xc021ad5d,0x60920d08,0x724d81a5,0x229f5746,0x5bba3299,0xb7ffb892,0xde413032,0x518c51a1,0x3c2fd94c,0x2a9bfe77 +.long 0x3191f4fd,0xcbcde239,0xd3d6ada1,0x43093e16,0x58769606,0x184579f3,0xd236625c,0x2c94a8b3,0x5c437d8e,0x6922b9c0,0xd8d9f3c8,0x3d4ae423,0x2e7090a2,0xf72c31c1,0xd76a55bd,0x4ac3f5f3 +.long 0x6b6af991,0x342508fc,0x1b5cebbd,0x0d527100,0xdd440dd7,0xb84740d0,0x780162fd,0x748ef841,0xdfc6fafb,0xa8dbfe0e,0xf7300f27,0xeadfdf05,0xfeba4ec9,0x7d06555f,0x9e25fa97,0x12c56f83 +.long 0xd39b8c34,0x77f84203,0x3125eddb,0xed8b1be6,0xf6e39dc5,0x5bbf2441,0x6a5d678a,0xb00f6ee6,0x57d0ea99,0xba456ecf,0x17e06c43,0xdcae0f58,0x0f5b4baa,0x01643de4,0xd161b9be,0x2c324341 +.long 0xe126d468,0x80177f55,0x76748e09,0xed325f1f,0xcfa9bdc2,0x6116004a,0x3a9fb468,0x2d8607e6,0x6009d660,0x0e573e27,0x8d10c5a1,0x3a525d2e,0x3b9009a0,0xd26cb45c,0xde9d7448,0xb6b0cdc0 +.long 0xe1337c26,0x949c9976,0xd73d68e5,0x6faadebd,0xf1b768d9,0x9e158614,0x9cc4f069,0x22dfa557,0xbe93c6d6,0xccd6da17,0xa504f5b9,0x24866c61,0x8d694da1,0x2121353c,0x0140b8c6,0x1c6ca580 +.long 0xe964021e,0xc245ad8c,0x032b82b3,0xb83bffba,0x47ef9898,0xfaa220c6,0x982c948a,0x7e8d3ac6,0xbc2d124a,0x1faa2091,0x05b15ff4,0xbd54c3dd,0xc87c6fb7,0x386bf3ab,0xfdeb6f66,0xfb2b0563 +.long 0x5b45afb4,0x4e77c557,0xefb8912d,0xe9ded649,0x42f6e557,0x7ec9bbf5,0x62671f00,0x2570dfff,0x88e084bd,0x2b3bfb78,0xf37fe5b4,0xa024b238,0x95649aee,0x44e7dc04,0x5e7ec1d8,0x498ca255 +.long 0xaaa07e86,0x3bc766ea,0xf3608586,0x0db6facb,0xbdc259c8,0xbadd2549,0x041c649f,0x95af3c6e,0x02e30afb,0xb36a928c,0x008a88b8,0x9b5356ad,0xcf1d9e9d,0x4b67a5f1,0xa5d8d8ce,0xc6542e47 +.long 0x7adfb6cc,0x73061fe8,0x98678141,0xcc826fd3,0x3c80515a,0x00e758b1,0x41485083,0x6afe3247,0xb6ae8a75,0x0fcb08b9,0x4acf51e1,0xb8cf388d,0x6961b9d6,0x344a5560,0x6a97fd0c,0x1a6778b8 +.long 0xecc4c7e3,0xd840fdc1,0x16db68cc,0xde9fe47d,0xa3e216aa,0xe95f89de,0x9594a8be,0x84f1a6a4,0x5a7b162b,0x7ddc7d72,0xadc817a3,0xc5cfda19,0x78b58d46,0x80a5d350,0x82978f19,0x93365b13 +.long 0x26a1fc90,0x2e44d225,0x4d70705d,0x0d6d10d2,0xd70c45f4,0xd94b6b10,0xb216c079,0x0f201022,0x658fde41,0xcec966c5,0x7e27601d,0xa8d2bc7d,0xff230be7,0xbfcce3e1,0x0033ffb5,0x3394ff6b +.long 0x8132c9af,0xd890c509,0x361e7868,0xaac4b0eb,0xe82d15aa,0x5194ded3,0x23ae6b7d,0x4550bd2e,0xea5399d4,0x3fda318e,0x91638b80,0xd989bffa,0xa14aa12d,0x5ea124d0,0x3667b944,0x1fb1b899 +.long 0x44c44d6a,0x95ec7969,0x57e86137,0x91df144a,0x73adac44,0x915fd620,0x59a83801,0x8f01732d,0x3aa0a633,0xec579d25,0xc9d6d59c,0x06de5e7c,0xb1ef8010,0xc132f958,0xe65c1a02,0x29476f96 +.long 0xd34c3565,0x336a77c0,0x1b9f1e9e,0xef1105b2,0xf9e08002,0x63e6d08b,0xc613809e,0x9aff2f21,0x3a80e75d,0xb5754f85,0x6bbda681,0xde71853e,0x8197fd7a,0x86f041df,0x127817fa,0x8b332e08 +.long 0xb9c20cda,0x05d99be8,0xd5cd0c98,0x89f7aad5,0x5bb94183,0x7ef936fe,0xb05cd7f2,0x92ca0753,0x74a1e035,0x9d65db11,0x13eaea92,0x02628cc8,0x49e4fbf2,0xf2d9e242,0xe384f8b7,0x94fdfd9b +.long 0x63428c6b,0x65f56054,0x90b409a5,0x2f7205b2,0xff45ae11,0xf778bb78,0xc5ee53b2,0xa13045be,0x03ef77fe,0xe00a14ff,0xffef8bef,0x689cd59f,0x1e9ade22,0x3578f0ed,0x6268b6a8,0xe99f3ec0 +.long 0xea1b3c3e,0xa2057d91,0xb8823a4a,0x2d1a7053,0x2cca451e,0xabbb336a,0x2218bb5d,0xcd2466e3,0xc8cb762d,0x3ac1f42f,0x7690211f,0x7e312aae,0x45d07450,0xebb9bd73,0x46c2213f,0x207c4b82 +.long 0x375913ec,0x99d425c1,0x67908220,0x94e45e96,0xcd67dbf6,0xc08f3087,0xc0887056,0xa5670fbe,0x66f5b8fc,0x6717b64a,0x786fec28,0xd5a56aea,0xc0ff4952,0xa8c3f55f,0x457ac49b,0xa77fefae +.long 0x98379d44,0x29882d7c,0x509edc8a,0xd000bdfb,0xe66fe464,0xc6f95979,0xfa61bde0,0x504a6115,0xeffea31a,0x56b3b871,0xf0c21a54,0x2d3de26d,0x834753bf,0x21dbff31,0x69269d86,0xe67ecf49 +.long 0x151fe690,0x7a176952,0x7f2adb5f,0x03515804,0xd1b62a8d,0xee794b15,0xaae454e6,0xf004ceec,0xf0386fac,0x0897ea7c,0xd1fca751,0x3b62ff12,0x1b7a04ec,0x154181df,0xfb5847ec,0x2008e04a +.long 0x41dbd772,0xd147148e,0x22942654,0x2b419f73,0xe9c544f7,0x669f30d3,0xc8540149,0x52a2c223,0x634dfb02,0x5da9ee14,0xf47869f3,0x5f074ff0,0xa3933acc,0x74ee878d,0x4fe35ed1,0xe6510651 +.long 0xf1012e7a,0xb3eb9482,0xa8a566ae,0x51013cc0,0x47c00d3b,0xdd5e9243,0x946bb0e5,0x7fde089d,0xc731b4b3,0x030754fe,0x99fda062,0x12a136a4,0x5a1a35bc,0x7c1064b8,0x446c84ef,0xbf1f5763 +.long 0xa16d4b34,0xed29a56d,0xdca21c4f,0x7fba9d09,0x6d8de486,0x66d7ac00,0x73a2a5e1,0x60061987,0x9da28ff0,0x8b400f86,0x43c4599c,0x3133f708,0xee28cb0d,0x9911c9b8,0x8e0af61d,0xcd7e2874 +.long 0x72ed91fc,0x5a85f0f2,0x9cd4a373,0x85214f31,0x1925253c,0x881fe5be,0x91e8bc76,0xd8dc98e0,0x585cc3a2,0x7120affe,0x735bf97a,0x724952ed,0x3eb34581,0x5581e7dc,0xe52ee57d,0x5cbff4f2 +.long 0x87d8cc7b,0x8d320a0e,0xf1d280d0,0x9beaa7f3,0x9beec704,0x7a0b9571,0x5b7f0057,0x9126332e,0x8ed3bd6d,0x01fbc1b4,0xd945eb24,0x35bb2c12,0x9a8ae255,0x6404694e,0x8d6abfb3,0xb6092eec +.long 0xcc058865,0x4d76143f,0x6e249922,0x7b0a5af2,0x6a50d353,0x8aef9440,0x64f0e07a,0xe11e4bcc,0xa14a90fa,0x4472993a,0xba0c51d4,0x7706e20c,0x1532672d,0xf403292f,0x21829382,0x52573bfa +.long 0x3b5bdb83,0x6a7bb6a9,0xa4a72318,0x08da65c0,0x63eb065f,0xc58d22aa,0x1b15d685,0x1717596c,0xb266d88b,0x112df0d0,0x5941945a,0xf688ae97,0x7c292cac,0x487386e3,0x57d6985c,0x42f3b50d +.long 0x6a90fc34,0x6da4f998,0x65ca8a8d,0xc8f257d3,0x6951f762,0xc2feabca,0x74c323ac,0xe1bc81d0,0x251a2a12,0x1bc68f67,0xbe8a70dc,0x10d86587,0xf0f84d2e,0xd648af7f,0x6a43ac92,0xf0aa9ebc +.long 0x27596893,0x69e3be04,0x45bf452b,0xb6bb02a6,0xf4c698c8,0x0875c11a,0xbece3794,0x6652b5c7,0x4f5c0499,0x7b3755fd,0xb5532b38,0x6ea16558,0xa2e96ef7,0xd1c69889,0x61ed8f48,0x9c773c3a +.long 0x9b323abc,0x2b653a40,0xf0e1d791,0xe26605e1,0x4a87157a,0x45d41064,0xcbbce616,0x8f9a78b7,0xc407eddd,0xcf1e44aa,0xa35b964f,0x81ddd1d8,0xfd083999,0x473e339e,0x8e796802,0x6c94bdde +.long 0x8545d185,0x5a304ada,0x738bb8cb,0x82ae44ea,0xdf87e10e,0x628a35e3,0xa15b9fe3,0xd3624f3d,0x14be4254,0xcc44209b,0xbdbc2ea5,0x7d0efcbc,0x04c37bbe,0x1f603362,0x56a5852c,0x21f363f5 +.long 0xa8501550,0xa1503d1c,0xd8ab10bb,0x2251e0e1,0x6961c51c,0xde129c96,0x81910f68,0x1f7246a4,0x5f2591f2,0x2eb744ee,0x5e627157,0x3c47d33f,0x22f3bd68,0x4d6d62c9,0xcb8df856,0x6120a64b +.long 0x7b5d07df,0x3a9ac6c0,0x7ef39783,0xa92b9558,0xab3a9b4f,0xe128a134,0xb1252f05,0x41c18807,0x80ba9b1c,0xfc7ed089,0xc532a9dd,0xac8dc6de,0x55246809,0xbf829cef,0x5b4ee80f,0x101b784f +.long 0xb6f11603,0xc09945bb,0x41d2801e,0x57b09dbe,0xa97534a8,0xfba5202f,0xc17b9614,0x7fd8ae5f,0x78308435,0xa50ba666,0xd3868c4d,0x9572f77c,0x2dd7aab0,0x0cef7bfd,0x2c7c79ff,0xe7958e08 +.long 0x25346689,0x81262e42,0xb07c7004,0x716da290,0xb7950ee3,0x35f911ea,0x261d21b5,0x6fd72969,0x08b640d3,0x52389803,0x887f12a1,0x5b0026ee,0x742e9311,0x20e21660,0x5ff77ff7,0x0ef6d541 +.long 0xf9c41135,0x969127f0,0x68a64993,0xf21d60c9,0xe541875c,0x656e5d0c,0xa1d3c233,0xf1e0f84e,0x06002d60,0x9bcca359,0x06191552,0xbe2da60c,0x61181ec3,0x5da8bbae,0x65806f19,0x9f04b823 +.long 0xd4b79bb8,0xf1604a7d,0x52c878c8,0xaee806fb,0x8d47b8e8,0x34144f11,0x949f9054,0x72edf52b,0x2127015a,0xebfca84e,0x9cb7cef3,0x9051d0c0,0x296deec8,0x86e8fe58,0x41010d74,0x33b28188 +.long 0x171b445f,0x01079383,0x8131ad4c,0x9bcf21e3,0xc93987e8,0x8cdfe205,0xc92e8c8f,0xe63f4152,0x30add43d,0x729462a9,0xc980f05a,0x62ebb143,0x3b06e968,0x4f3954e5,0x242cf6b1,0xfe1d75ad +.long 0xaf8685c8,0x5f95c6c7,0x2f8f01aa,0xd4c1c8ce,0x2574692a,0xc44bbe32,0xd4a4a068,0xb8003478,0x2eca3cdb,0x7c8fc6e5,0xec04d399,0xea1db16b,0x8f2bc5cf,0xb05bc82e,0xf44793d2,0x763d517f +.long 0x08bd98d0,0x4451c1b8,0x6575f240,0x644b1cd4,0x7375d270,0x6907eb33,0xfa2286bd,0x56c8bebd,0xc4632b46,0xc713d2ac,0xafd60242,0x17da427a,0xc95c7546,0x313065b7,0xbf17a3de,0xf8239898 +.long 0x4c830320,0xf3b7963f,0x903203e3,0x842c7aa0,0xe7327afb,0xaf22ca0a,0x967609b6,0x38e13092,0x757558f1,0x73b8fb62,0xf7eca8c1,0x3cc3e831,0xf6331627,0xe4174474,0xc3c40234,0xa77989ca +.long 0x44a081e0,0xe5fd17a1,0xb70e296a,0xd797fb7d,0x481f719c,0x2b472b30,0xfe6f8c52,0x0e632a98,0xc5f0c284,0x89ccd116,0x2d987c62,0xf51088af,0x4c2de6cf,0x2a2bccda,0xf679f0f9,0x810f9efe +.long 0x7ffe4b3e,0xb0f394b9,0xe5fa5d21,0x0b691d21,0x9dfbbc75,0xb0bd7747,0xfaf78b00,0xd2830fda,0x52434f57,0xf78c249c,0x98096dab,0x4b1f7545,0x8ff8c0b3,0x73bf6f94,0x454e134c,0x34aef03d +.long 0xb7ac7ec5,0xf8d151f4,0xe50da7d5,0xd6ceb95a,0xdc3a0eb8,0xa1b492b0,0xb3dd2863,0x75157b69,0xc5413d62,0xe2c4c74e,0xbc5fc4c7,0xbe329ff7,0x60fa9dda,0x835a2aea,0x7445cb87,0xf117f5ad +.long 0xb0166f7a,0xae8317f4,0xceec74e6,0xfbd3e3f7,0xe0874bfd,0xfdb516ac,0xc681f3a3,0x3d846019,0x7c1620b0,0x0b12ee5c,0x2b63c501,0xba68b4dd,0x6668c51e,0xac03cd32,0x4e0bcb5b,0x2a6279f7 +.long 0x6ae85c10,0x17bd69b0,0x1dfdd3a6,0x72946979,0x2c078bec,0xd9a03268,0xbfd68a52,0x41c6a658,0x0e023900,0xcdea1024,0xb10d144d,0xbaeec121,0x058ab8dc,0x5a600e74,0xbb89ccdd,0x1333af21 +.long 0x3aaba1f1,0xdf25eae0,0x3b7144cf,0x2cada16e,0x71ab98bc,0x657ee27d,0x7a6fc96e,0x99088b4c,0x3549dbd4,0x05d5c0a0,0xf158c3ac,0x42cbdf8f,0x87edd685,0x3fb6b3b0,0x86f064d0,0x22071cf6 +.long 0xff2811e5,0xd2d6721f,0xfe7fae8c,0xdb81b703,0xd3f1f7bb,0x3cfb74ef,0x16cdeb5d,0x0cdbcd76,0x566a808c,0x4f39642a,0x340064d6,0x02b74454,0x0528fa6f,0xfabbadca,0xd3fc0bb6,0xe4c3074c +.long 0xb796d219,0xb32cb8b0,0x34741dd9,0xc3e95f4f,0x68edf6f5,0x87212125,0xa2b9cb8e,0x7a03aee4,0xf53a89aa,0x0cd3c376,0x948a28dc,0x0d8af9b1,0x902ab04f,0xcf86a3f4,0x7f42002d,0x8aacb62a +.long 0xf62ffd52,0x106985eb,0x5797bf10,0xe670b54e,0xc5e30aef,0x4b405209,0x4365b5e9,0x12c97a20,0x1fe32093,0x104646ce,0x3907a8c9,0x13cb4ff6,0xd46e726b,0x8b9f30d1,0xaba0f499,0xe1985e21 +.long 0x10a230cd,0xc573dea9,0xcd30f947,0x24f46a93,0xabe2010a,0xf2623fcf,0x73f00e4f,0x3f278cb2,0x50b920eb,0xed55c67d,0x8e760571,0xf1cb9a2d,0x0895b709,0x7c50d109,0x190d4369,0x4207cf07 +.long 0xc4127fe1,0x3b027e81,0x3ae9c566,0xa9f8b9ad,0xacbfbba5,0x5ab10851,0x569556f5,0xa747d648,0x2ba97bf7,0xcc172b5c,0xbcfa3324,0x15e0f77d,0x7686279d,0xa345b797,0xe38003d3,0x5a723480 +.long 0x8f5fcda8,0xfd8e139f,0xbdee5bfd,0xf3e558c4,0xe33f9f77,0xd76cbaf4,0x71771969,0x3a4c97a4,0xf6dce6a7,0xda27e84b,0x13e6c2d1,0xff373d96,0xd759a6e9,0xf115193c,0x63d2262c,0x3f9b7025 +.long 0x317cd062,0xd9764a31,0x199f8332,0x30779d8e,0x16b11b0b,0xd8074106,0x78aeaed8,0x7917ab9f,0x28fb1d8e,0xb67a9cbe,0x136eda33,0x2e313563,0xa371a86c,0x010b7069,0x6744e6b7,0x44d90fa2 +.long 0xd6b3e243,0x68190867,0x59048c48,0x9fe6cd9d,0x95731538,0xb900b028,0x32cae04f,0xa012062f,0x9399d082,0x8107c8bc,0x41df12e2,0x47e8c54a,0xb6ef3f73,0x14ba5117,0x81362f0b,0x22260bea +.long 0x1a18cc20,0x90ea261e,0x2321d636,0x2192999f,0xe311b6a0,0xef64d314,0x3b54a1f5,0xd7401e4c,0x6fbca2ba,0x19019983,0x8fbffc4b,0x46ad3293,0x3786bf40,0xa142d3f6,0xb67039fc,0xeb5cbc26 +.long 0x252bd479,0x9cb0ae6c,0x12b5848f,0x05e0f88a,0xa5c97663,0x78f6d2b2,0xc162225c,0x6f6e149b,0xde601a89,0xe602235c,0xf373be1f,0xd17bbe98,0xa8471827,0xcaf49a5b,0x18aaa116,0x7e1a0a85 +.long 0x270580c3,0x6c833196,0xf1c98a14,0x1e233839,0xae34e0a5,0x67b2f7b4,0xd8ce7289,0x47ac8745,0x100dd467,0x2b74779a,0x4ee50d09,0x274a4337,0x83608bc9,0x603dcf13,0xc89e8388,0xcd9da6c3 +.long 0x355116ac,0x2660199f,0xb6d18eed,0xcc38bb59,0x2f4bc071,0x3075f31f,0x265dc57e,0x9774457f,0xc6db88bb,0x06a6a9c8,0x4ec98e04,0x6429d07f,0x05ecaa8b,0x8d05e57b,0x7872ea7b,0x20f140b1 +.long 0xca494693,0xdf8c0f09,0xf252e909,0x48d3a020,0x57b14b12,0x4c5c29af,0xbf47ad1c,0x7e6fa37d,0x49a0c938,0x66e7b506,0x6be5f41f,0xb72c0d48,0xb2359412,0x6a6242b8,0x8e859480,0xcd35c774 +.long 0x87baa627,0x12536fea,0xf72aa680,0x58c1fec1,0x601e5dc9,0x6c29b637,0xde9e01b9,0x9e3c3c1c,0x2bcfe0b0,0xefc8127b,0x2a12f50d,0x35107102,0x4879b397,0x6ccd6cb1,0xf8a82f21,0xf792f804 +.long 0xa9b46402,0x509d4804,0xc10f0850,0xedddf85d,0x4b6208aa,0x928410dc,0x391012dc,0xf6229c46,0x7727b9b6,0xc5a7c41e,0xaa444842,0x289e4e4b,0xe9a947ea,0x049ba1d9,0x83c8debc,0x44f9e47f +.long 0x611f8b8e,0xfa77a1fe,0xf518f427,0xfd2e416a,0x114ebac3,0xc5fffa70,0x5d89697b,0xfe57c4e9,0xb1aaf613,0xfdd053ac,0xea585a45,0x31df210f,0x24985034,0x318cc10e,0x5f1d6130,0x1a38efd1 +.long 0x0b1e9e21,0xbf86f237,0x1dbe88aa,0xb258514d,0x90c1baf9,0x1e38a588,0xbdb9b692,0x2936a01e,0x6dd5b20c,0xd576de98,0x70f98ecf,0xb586bf71,0xc42d2fd7,0xcccf0f12,0xfb35bd7b,0x8717e61c +.long 0x35e6fc06,0x8b1e5722,0x0b3e13d5,0x3477728f,0xaa8a7372,0x150c294d,0x3bfa528a,0xc0291d43,0xcec5a196,0xc6c8bc67,0x5c2e8a7c,0xdeeb31e4,0xfb6e1c51,0xba93e244,0x2e28e156,0xb9f8b71b +.long 0x968a2ab9,0xce65a287,0x46bbcb1f,0xe3c5ce69,0xe7ae3f30,0xf8c835b9,0xff72b82b,0x16bbee26,0xfd42cd22,0x665e2017,0xf8b1d2a0,0x1e139970,0x79204932,0x125cda29,0x49c3bee5,0x7aee94a5 +.long 0x89821a66,0x68c70160,0x8f981669,0xf7c37678,0x48cc3645,0xd90829fc,0xd70addfc,0x346af049,0x370bf29c,0x2057b232,0x42e650ee,0xf90c73ce,0xa126ab90,0xe03386ea,0x975a087b,0x0e266e7e +.long 0x0fca65d9,0x80578eb9,0x16af45b8,0x7e2989ea,0xcac75a4e,0x7438212d,0x4fef36b8,0x38c7ca39,0xd402676a,0x8650c494,0xf72c7c48,0x26ab5a66,0xce3a464e,0x4e6cb426,0x2b72f841,0xf8f99896 +.long 0x1a335cc8,0x8c318491,0x6a5913e4,0x563459ba,0xc7b32919,0x1b920d61,0xa02425ad,0x805ab8b6,0x8d006086,0x2ac512da,0xbcf5c0fd,0x6ca4846a,0xac2138d7,0xafea51d8,0x344cd443,0xcb647545 +.long 0xbd7d9040,0x0429ee8f,0x819b9c96,0xee66a2de,0xdea7d744,0x54f9ec25,0x671721bb,0x2ffea642,0x114344ea,0x4f19dbd1,0xfd0dbc8b,0x04304536,0x29ec7f91,0x014b50aa,0xbb06014d,0xb5fc22fe +.long 0x1ee682e0,0x60d963a9,0xfe85c727,0xdf48abc0,0x2e707c2d,0x0cadba13,0xa645aeff,0xde608d3a,0xedafd883,0x05f1c28b,0xbd94de1f,0x3c362ede,0x13593e41,0x8dd0629d,0x766d6eaf,0x0a5e736f +.long 0xf68cf9d1,0xbfa92311,0xc1797556,0xa4f9ef87,0x5601c209,0x10d75a1f,0x09b07361,0x651c374c,0x88b5cead,0x49950b58,0x6fa9dbaa,0x0ef00058,0x4e15f33a,0xf51ddc26,0x2ef46140,0x1f8b5ca6 +.long 0xee9523f0,0x343ac0a3,0x975ea978,0xbb75eab2,0x107387f4,0x1bccf332,0x9ab0062e,0x790f9259,0x1e4f6a5f,0xf1a363ad,0x62519a50,0x06e08b84,0x7265f1ee,0x60915187,0x93ae985e,0x6a80ca34 +.long 0xaaba4864,0x81b29768,0x8d52a7d6,0xb13cabf2,0x8ead03f1,0xb5c36348,0x81c7c1c0,0xc932ad95,0xcae1e27b,0x5452708e,0x1b0df648,0x9dac4269,0xdfcdb8bc,0x233e3f0c,0xec540174,0xe6ceccdf +.long 0x95081181,0xbd0d845e,0x699355d5,0xcc8a7920,0xc3b375a8,0x111c0f6d,0xfd51e0dc,0xfd95bc6b,0x6888523a,0x4a106a26,0xcb01a06d,0x4d142bd6,0xadb9b397,0x79bfd289,0xe9863914,0x0bdbfb94 +.long 0x1660f6a6,0x29d8a229,0x551c042d,0x7f6abcd6,0x0ac3ffe8,0x13039deb,0xec8523fb,0xa01be628,0x0ca1c328,0x6ea34103,0xb903928e,0xc74114bd,0x9e9144b0,0x8aa4ff4e,0x7f9a4b17,0x7064091f +.long 0xe447f2c4,0xa3f4f521,0x604291f0,0x81b8da7a,0x7d5926de,0xd680bc46,0x34a1202f,0x84f21fd5,0x4e9df3d8,0x1d1e3181,0x39ab8d34,0x1ca4861a,0x5b19aa4a,0x809ddeec,0x4d329366,0x59f72f7e +.long 0x386d5087,0xa2f93f41,0xdd67d64f,0x40bf739c,0x66702158,0xb4494205,0x73b1e178,0xc33c65be,0x38ca6153,0xcdcd657c,0xdc791976,0x97f4519a,0xcd6e1f39,0xcc7c7f29,0x7e3c3932,0x38de9cfb +.long 0x7b793f85,0xe448eba3,0xf067e914,0xe9f8dbf9,0xf114ae87,0xc0390266,0xcd6a8e2a,0x39ed75a7,0x7ffba390,0xadb14848,0x6af9bc09,0x67f8cb8b,0x9c7476db,0x322c3848,0x52a538d6,0xa320fecf +.long 0xb2aced2b,0xe0493002,0x616bd430,0xdfba1809,0xc331be70,0x531c4644,0x90d2e450,0xbc04d32e,0x0f9f142d,0x1805a0d1,0x47ee5a23,0x2c44a0c5,0x3989b4e3,0x31875a43,0x0c063481,0x6b1949fd +.long 0xbe0f4492,0x2dfb9e08,0xe9d5e517,0x3ff0da03,0xf79466a8,0x03dbe9a1,0x15ea9932,0x0b87bcd0,0xab1f58ab,0xeb64fc83,0x817edc8a,0x6d9598da,0x1d3b67e5,0x699cff66,0x92635853,0x645c0f29 +.long 0xeabaf21c,0x253cdd82,0x2241659e,0x82b9602a,0x2d9f7091,0x2cae07ec,0x8b48cd9b,0xbe4c720c,0x6f08d6c9,0x6ce5bc03,0xaf10bf40,0x36e8a997,0x3e10ff12,0x83422d21,0xbcc12494,0x7b26d3eb +.long 0xc9469ad6,0xb240d2d0,0x30afa05b,0xc4a11b4d,0xdd6ba286,0x4b604ace,0x3ee2864c,0x18486600,0x8d9ce5be,0x5869d6ba,0xff4bfb0d,0x0d8f68c5,0x5700cf73,0xb69f210b,0x6d37c135,0x61f6653a +.long 0x5aff5a48,0xff3d432b,0x72ba3a69,0x0d81c4b9,0xfa1899ef,0xee879ae9,0x2d6acafd,0xbac7e2a0,0x1c664399,0xd6d93f6c,0x5bcb135d,0x4c288de1,0x9dab7cbf,0x83031dab,0x3abbf5f0,0xfe23feb0 +.long 0xcdedca85,0x9f1b2466,0x1a09538c,0x140bb710,0x5e11115d,0xac8ae851,0x6f03f59e,0x0d63ff67,0x7d234afb,0x755e5551,0x7e208fc1,0x61c2db4e,0xf28a4b5d,0xaa9859ce,0x34af030f,0xbdd6d4fc +.long 0x3be01cb1,0xd1c4a26d,0x243aa07c,0x9ba14ffc,0xb2503502,0xf95cd3a9,0x7d2a93ab,0xe379bc06,0xd4ca8d68,0x3efc18e9,0x80bb412a,0x083558ec,0x9645a968,0xd903b940,0x9ba6054f,0xa499f0b6 +.long 0xb8349abe,0x208b573c,0x30b4fc1c,0x3baab3e5,0xcb524990,0x87e978ba,0xccdf0e80,0x3524194e,0x7d4bcc42,0x62711725,0xb90109ba,0xe90a3d9b,0x1323e1e0,0x3b1bdd57,0x5eae1599,0xb78e9bd5 +.long 0x9e03d278,0x0794b746,0xd70e6297,0x80178605,0x99c97855,0x171792f8,0xf5a86b5c,0x11b393ee,0xd8884f27,0x48ef6582,0xbf19ba5f,0xbd44737a,0xa42062c6,0x8698de4c,0x61ce9c54,0x8975eb80 +.long 0xd7fe71f3,0xd50e57c7,0xbc97ce38,0x15342190,0x4df07b63,0x51bda2de,0x200eb87d,0xba12aeae,0xa9b4f8f6,0xabe135d2,0xfad6d99c,0x04619d65,0x7994937c,0x4a6683a7,0x6f94f09a,0x7a778c8b +.long 0x20a71b89,0x8c508623,0x1c229165,0x241a2aed,0xaaf83a99,0x352be595,0x1562bac8,0x9fbfee7f,0x5c4017e3,0xeaf658b9,0x15120b86,0x1dc7f9e0,0x4c034d6f,0xd84f13dd,0xeaea3038,0x283dd737 +.long 0xcd85d6a2,0x197f2609,0xfae60177,0x6ebbc345,0x4e12fede,0xb80f031b,0x07a2186b,0xde55d0c2,0x24dcdd5a,0x1fb3e37f,0x7ed191fb,0x8d602da5,0x76023e0d,0x108fb056,0x459c20c0,0x70178c71 +.long 0x3fe54cf0,0xfad5a386,0x02bbb475,0xa4a3ec4f,0x919d94d7,0x1aa5ec20,0xa81e4ab3,0x5d3b63b5,0x5ad3d2af,0x7fa733d8,0xd1ac7a37,0xfbc586dd,0x40779614,0x282925de,0xe74a242a,0xfe0ffffb +.long 0x906151e5,0x3f39e67f,0x55e10649,0xcea27f5f,0xc17cf7b7,0xdca1d4e1,0x2fe2362d,0x0c326d12,0x7dd35df3,0x05f7ac33,0xc396dbdf,0x0c3b7639,0x03b7db1c,0x0912f5ac,0x5c9ed4a9,0x9dea4b70 +.long 0xaae3f639,0x475e6e53,0xfc278bac,0xfaba0e7c,0x9490375f,0x16f9e221,0xa5a7ed0a,0xaebf9746,0xf41ad5d6,0x45f9af3f,0xb2e99224,0x03c4623c,0xb3cf56aa,0x82c5bb5c,0x34567ed3,0x64311819 +.long 0x8be489ac,0xec57f211,0xb9a1104b,0x2821895d,0x6064e007,0x610dc875,0x5b20d0fe,0x8e526f3f,0x5b645aee,0x6e71ca77,0x800e10ff,0x3d1dcb9f,0x189cf6de,0x36b51162,0x6bb17353,0x2c5a3e30 +.long 0x2a6c6fbf,0xc186cd3e,0x4bf97906,0xa74516fa,0x279d6901,0x5b4b8f4b,0x2b573743,0x0c4e57b4,0xb6e386b6,0x75fdb229,0x99deac27,0xb46793fd,0xcf712629,0xeeec47ea,0xcbc3b2dd,0xe965f3c4 +.long 0x425c6559,0x8dd1fb83,0x0af06fda,0x7fc00ee6,0x33d956df,0xe98c9225,0x4fbdc8a2,0x0f1ef335,0xb79b8ea2,0x2abb5145,0xbdbff288,0x40fd2945,0xd7185db7,0x6a814ac4,0xc084609a,0xc4329d6f +.long 0xed1be45d,0xc9ba7b52,0xe4cd2c74,0x891dd20d,0x824139b1,0x5a4d4a7f,0xb873c710,0x66c17716,0x2843c4e0,0x5e5bc141,0xb97eb5bf,0xd5ac4817,0x450c95c7,0xc0f8af54,0x318406c5,0xc91b3fa0 +.long 0xab9d97f8,0x360c340a,0x90a2d611,0xfb57bd07,0xa6a6f7e5,0x4339ae3c,0x2feb8a10,0x9c1fcd2a,0xc7ea7432,0x972bcca9,0x308076f6,0x1b0b924c,0x2a5b4ca5,0x80b2814a,0x61ef3b29,0x2f78f55b +.long 0xc18a414f,0xf838744a,0x903d0a86,0xc611eaae,0x2a453f55,0x94dabc16,0x14efb279,0xe6f2e3da,0x9320dc3c,0x5b7a6017,0x8df6b5a4,0x692e382f,0x2d40fa90,0x3f5e15e0,0x643dd318,0xc87883ae +.long 0x53544774,0x511053e4,0x3adba2bc,0x834d0ecc,0xbae371f5,0x4215d7f7,0x6c8663bc,0xfcfd57bf,0xd6901b1d,0xded2383d,0xb5587dc3,0x3b49fbb4,0x07625f62,0xfd44a08d,0x9de9b762,0x3ee4d65b +.long 0x0d63d1fa,0x64e5137d,0x02a9d89f,0x658fc052,0x50436309,0x48894874,0xd598da61,0xe9ae30f8,0x818baf91,0x2ed710d1,0x8b6a0c20,0xe27e9e06,0x1c1a6b44,0x1e28dcfb,0xd6ac57dc,0x883acb64 +.long 0xc2c6ff70,0x8735728d,0xc5dc2235,0x79d6122f,0x19e277f9,0x23f5d003,0xdded8cc7,0x7ee84e25,0x63cd880a,0x91a8afb0,0x3574af60,0x3f3ea7c6,0x02de7f42,0x0cfcdc84,0xb31aa152,0x62d0792f +.long 0x8a5807ce,0x8e1b4e43,0xe4109a7e,0xad283893,0xafd59dda,0xc30cc9cb,0x3d8d8093,0xf65f36c6,0xa60d32b2,0xdf31469e,0x3e8191c8,0xee93df4b,0x355bdeb5,0x9c1017c5,0x8616aa28,0xd2623185 +.long 0xdec31a21,0xb02c83f9,0x6ad9d573,0x988c8b23,0xa57be365,0x53e983ae,0x646f834e,0xe968734d,0x5da6309b,0x9137ea8f,0xc1f1ce16,0x10f3a624,0xca440921,0x782a9ea2,0x5b46f1b5,0xdf94739e +.long 0xcce85c9b,0x9f9be006,0xa4c7c2d3,0x360e70d6,0xaefa1e60,0x2cd5beea,0x8c3d2b6d,0x64cf63c0,0xe1cf6f90,0xfb107fa3,0xd5e044e6,0xb7e937c6,0xce34db9f,0x74e8ca78,0x3e210bd0,0x4f8b36c1 +.long 0x34a35ea8,0x1df165a4,0x4d4412f6,0x3418e0f7,0x518836c3,0x5af1f8af,0x130e1965,0x42ceef4d,0x543a1957,0x5560ca0b,0x886cb123,0xc33761e5,0xfe98ed30,0x66624b1f,0x1090997d,0xf772f4bf +.long 0x4885d410,0xf4e540bb,0x9ba5f8d7,0x7287f810,0xde98dfb1,0x22d0d865,0xbcfbb8a3,0x49ff51a1,0x6bc3012e,0xb6b6fa53,0x170d541d,0x3d31fd72,0x4b0f4966,0x8018724f,0x87dbde07,0x79e7399f +.long 0xf4f8b16a,0x56f8410e,0xc47b266a,0x97241afe,0x6d9c87c1,0x0a406b8e,0xcd42ab1b,0x803f3e02,0x04dbec69,0x7f0309a8,0x3bbad05f,0xa83b85f7,0xad8e197f,0xc6097273,0x5067adc1,0xc097440e +.long 0x3524ff16,0x730eafb6,0x823fc6ce,0xd7f9b51e,0x443e4ac0,0x27bd0d32,0x4d66f217,0x40c59ad9,0x17c387a4,0x6c33136f,0xeb86804d,0x5043b8d5,0x675a73c9,0x74970312,0xf16669b6,0x838fdb31 +.long 0x418e7ddd,0xc507b6dd,0x472f19d6,0x39888d93,0x0c27eb4d,0x7eae26be,0xfbabb884,0x17b53ed3,0x2b01ae4f,0xfc27021b,0xcf488682,0x88462e87,0x215e2d87,0xbee096ec,0xd242e29b,0xeb2fea9a +.long 0xb821fc28,0x5d985b5f,0xdc1e2ad2,0x89d2e197,0x9030ba62,0x55b566b8,0x4f41b1c6,0xe3fd41b5,0xb9a96d61,0xb738ac2e,0x369443f4,0x7f8567ca,0xf803a440,0x8698622d,0x8fe2f4dc,0x2b586236 +.long 0x56b95bce,0xbbcc00c7,0x616da680,0x5ec03906,0x72214252,0x79162ee6,0x86a892d2,0x43132b63,0x2f3263bf,0x4bdd3ff2,0x9cd0a142,0xd5b3733c,0x44415ccb,0x592eaa82,0x8d5474ea,0x663e8924 +.long 0x5236344e,0x8058a25e,0xbda76ee6,0x82e8df9d,0x11cc3d22,0xdcf6efd8,0x3b4ab529,0x00089cda,0xbd38a3db,0x91d3a071,0xef72b925,0x4ea97fc0,0xea3edf75,0x0c9fc15b,0xa4348ed3,0x5a6297cd +.long 0xce7c42d4,0x0d38ab35,0x82feab10,0x9fd493ef,0x82111b45,0x46056b6d,0x73efc5c3,0xda11dae1,0x5545a7fb,0xdc740278,0x40d507e6,0xbdb2601c,0x7066fa58,0x121dfeeb,0x39ae8c2a,0x214369a8 +.long 0x06e0956c,0x195709cb,0x010cd34b,0x4c9d254f,0x0471a532,0xf51e13f7,0x1e73054d,0xe19d6791,0xdb5c7be3,0xf702a628,0xb24dde05,0xc7141218,0xf29b2e2e,0xdc18233c,0x85342dba,0x3a6bd1e8 +.long 0xb311898c,0x3f747fa0,0xcd0eac65,0xe2a272e4,0xf914d0bc,0x4bba5851,0xc4a43ee3,0x7a1a9660,0xa1c8cde9,0xe5a367ce,0x7271abe3,0x9d958ba9,0x3d1615cd,0xf3ff7eb6,0xf5ae20b0,0xa2280dce +.long 0xcf640147,0x56dba5c1,0x5e83d118,0xea5a2e3d,0xda24c511,0x04cd6b6d,0xe854d214,0x1c0f4671,0x69565381,0x91a6b7a9,0xdecf1f5b,0xdc966240,0xfcf5d009,0x1b22d21c,0x9021dbd5,0x2a05f641 +.long 0xd4312483,0x8c0ed566,0x643e216f,0x5179a95d,0x17044493,0xcc185fec,0x54991a21,0xb3063339,0x0081a726,0xd801ecdb,0x4fa89bbb,0x0149b0c6,0x4391b6b9,0xafe9065a,0xd633f3a3,0xedc92786 +.long 0xae6a8e13,0xe408c24a,0x9f3897ab,0x85833fde,0xd81a0715,0x43800e7e,0xb44ffc5f,0xde08e346,0xcdeff2e0,0x7094184c,0x165eaed1,0x49f9387b,0x777c468a,0x635d6129,0x538c2dd8,0x8c0dcfd1 +.long 0x7a6a308b,0xd6d9d9e3,0x4c2767d3,0x62375830,0xf38cbeb6,0x874a8bc6,0xccb6fd9e,0xd94d3f1a,0xba21f248,0x92a9735b,0x6cd1efb0,0x272ad0e5,0x05b03284,0x7437b69c,0x6948c225,0xe7f04702 +.long 0xcba2ecec,0x8a56c04a,0xe3a73e41,0x0c181270,0x03e93725,0x6cb34e9d,0x496521a9,0xf77c8713,0xfa7f9f90,0x94569183,0x8c9707ad,0xf2e7aa4c,0x26c1c9a3,0xced2c9ba,0x40197507,0x9109fe96 +.long 0xe9adfe1c,0x9ae868a9,0x314e39bb,0x3984403d,0xf2fe378f,0xb5875720,0xba44a628,0x33f901e0,0x3652438c,0xea1125fe,0x9dd1f20b,0xae9ec4e6,0xbebf7fbd,0x1e740d9e,0x42dbe79c,0x6dbd3ddc +.long 0xedd36776,0x62082aec,0xe9859039,0xf612c478,0x032f7065,0xa493b201,0x4ff9b211,0xebd4d8f2,0xaac4cb32,0x3f23a0aa,0x15ed4005,0xea3aadb7,0xafa27e63,0xacf17ea4,0xc11fd66c,0x56125c1a +.long 0x3794f8dc,0x266344a4,0x483c5c36,0xdcca923a,0x3f9d10a0,0x2d6b6bbf,0x81d9bdf3,0xb320c5ca,0x47b50a95,0x620e28ff,0xcef03371,0x933e3b01,0x99100153,0xf081bf85,0xc3a8c8d6,0x183be9a0 +.long 0xd6bbe24d,0x4e3ddc5a,0x53843795,0xc6c74630,0x65ec2d4c,0x78193dd7,0xcd3c89b2,0xb8df26cc,0x5a483f8d,0x98dbe399,0x7dd3313a,0x72d8a957,0xab0bd375,0x65087294,0x7c259d16,0xfcd89248 +.long 0x7613aa81,0x8a9443d7,0x85fe6584,0x80100800,0x7fb10288,0x70fc4dbc,0xe86beee8,0xf58280d3,0x7c978c38,0x14fdd82f,0x0de44d7b,0xdf1204c1,0x4160252f,0xa08a1c84,0xc17646a5,0x591554ca +.long 0xa05bd525,0x214a37d6,0x07957b3c,0x48d5f09b,0xd7109bc9,0x0247cdcb,0x30599ce7,0x40f9e4bb,0xf46ad2ec,0xc325fa03,0xc3e3f9ee,0x00f766cf,0xd43a4577,0xab556668,0x3ee03b93,0x68d30a61 +.long 0x77b46a08,0x7ddc81ea,0xc7480699,0xcf5a6477,0x6633f683,0x43a8cb34,0x92363c60,0x1b867e6b,0x1f60558e,0x43921114,0x2f41450e,0xcdbcdd63,0xcc630e8b,0x7fc04601,0x97038b43,0xea7c66d5 +.long 0x04e99fd8,0x7259b8a5,0x4785549a,0x98a8dd12,0x840552e1,0x0e459a7c,0x4bb0909e,0xcdfcf4d0,0x53758da7,0x34a86db2,0xeac997e1,0xe643bb83,0x530c5b7e,0x96400bd7,0xb41c8b52,0x9f97af87 +.long 0xfbeee3f9,0x34fc8820,0x49091afd,0x93e53490,0x9a31f35c,0x764b9be5,0x57e3d924,0x71f37864,0x943aa75e,0x02fb34e0,0xab8ff6e4,0xa18c9c58,0x33cf0d19,0x080f31b1,0x083518a7,0x5c9682db +.long 0xb709c3de,0x873d4ca6,0x3575b8f0,0x64a84262,0x020154bb,0x6275da1f,0xd17cf1ab,0x97678caa,0x951a95c3,0x8779795f,0x50fccc08,0xdd35b163,0x33d8f031,0x32709627,0x498dd85c,0x3c5ab10a +.long 0x41dca566,0xb6c185c3,0xd8622aa3,0x7de7feda,0x901b6dfb,0x99e84d92,0x7c4ad288,0x30a02b0e,0x2fd3cf36,0xc7c81daa,0xdf89e59f,0xd1319547,0xcd496733,0xb2be8184,0x93d3412b,0xd5f449eb +.long 0x25fe531d,0x7ea41b1b,0x6a1d5646,0xf9797432,0x2bde501a,0x86067f72,0x0c85e89c,0xf91481c0,0xf8b05bc6,0xca8ee465,0x02e83cda,0x1844e1cf,0xb4dbe33b,0xca82114a,0x4eabfde2,0x0f9f8769 +.long 0x38b27fe2,0x4936b1c0,0xaba402df,0x63b6359b,0x656bdbab,0x40c0ea2f,0x6580c39c,0x9c992a89,0x2a60aed1,0x600e8f15,0xe0bf49df,0xeb089ca4,0x2d42d99a,0x9c233d7d,0x4c6bc2fa,0x648d3f95 +.long 0xe1add3f3,0xdcc383a8,0x4f64a348,0xf42c0c6a,0x0030dbdb,0x2abd176f,0x7d6c215e,0x4de501a3,0x4b9a64bc,0x4a107c1f,0x2496cd59,0xa77f0ad3,0x7688dffb,0xfb78ac62,0x67937d8e,0x7025a2ca +.long 0xd1a8f4e7,0xfde8b2d1,0x7354927c,0xf5b3da47,0xd9205735,0xe48606a3,0xe177b917,0xac477cc6,0xa883239a,0xfb1f73d2,0xcc8b8357,0xe12572f6,0xfb1f4f86,0x9d355e9c,0xd9f3ec6e,0x89b795f8 +.long 0xb54398dc,0x27be56f1,0x3fedeed5,0x1890efd7,0x9c6d0140,0x62f77f1f,0x596f0ee4,0x7ef0e314,0xcc61dab3,0x50ca6631,0xf4866e4f,0x4a39801d,0xae363b39,0x66c8d032,0x2ead66aa,0x22c591e5 +.long 0xde02a53e,0x954ba308,0xd389f357,0x2a6c060f,0xfbf40b66,0xe6cfcde8,0xc6340ce1,0x8e02fc56,0x73adb4ba,0xe4957795,0xa7b03805,0x7b86122c,0x0c8e6fa6,0x63f83512,0x057d7804,0x83660ea0 +.long 0x21ba473c,0xbad79105,0xded5389d,0xb6c50bee,0xaa7c9bc0,0xee2caf4d,0x8c4e98a7,0xd97b8de4,0xab3bbddb,0xa9f63e70,0x2597815a,0x3898aabf,0xac15b3d9,0x7659af89,0x703ce784,0xedf7725b +.long 0xe085116b,0x25470fab,0x87285310,0x04a43375,0xe2bfd52f,0x4e39187e,0x7d9ebc74,0x36166b44,0xfd4b322c,0x92ad433c,0xba79ab51,0x726aa817,0xc1db15eb,0xf96eacd8,0x0476be63,0xfaf71e91 +.long 0x641fad98,0xdd69a640,0x29622559,0xb7995918,0xde4199dc,0x03c6daa5,0xad545eb4,0x92cadc97,0x256534e4,0x1028238b,0x8595409a,0x73e80ce6,0xd05dc59b,0x690d4c66,0x981dee80,0xc95f7b8f +.long 0xd856ac25,0xf4337014,0xac524dca,0x441bd9dd,0x5f0499f5,0x640b3d85,0xd5fda182,0x39cf84a9,0xb2aa95a0,0x04e7b055,0x0ddf1860,0x29e33f0a,0x423f6b43,0x082e74b5,0x0aaa2b0f,0x217edeb9 +.long 0x83cbea55,0x58b83f35,0xbc185d70,0xc485ee4d,0x1e5f6992,0x833ff03b,0xcf0c0dd5,0xb5b9b9cc,0x4e9e8a50,0x7caaee8e,0x6269dafd,0x462e907b,0xfbe791c6,0x6ed5cee9,0xed430790,0x68ca3259 +.long 0x13b5ba88,0x2b72bdf2,0x35ef0ac4,0x60294c8a,0x19b99b08,0x9c3230ed,0x6c2589aa,0x560fff17,0xd6770374,0x552b8487,0x9a56f685,0xa373202d,0x45f175d9,0xd3e7f907,0xd080d810,0x3c2f315f +.long 0x7b9520e8,0x1130e9dd,0x0af037b5,0xc078f9e2,0x1e9c104c,0x38cd2ec7,0xc472fe92,0x0f684368,0x6247e7ef,0xd3f1b5ed,0x396dfe21,0xb32d33a9,0x4a9aa2c2,0x46f59cf4,0xff0f7e41,0x69cd5168 +.long 0x4b3234da,0x3f59da0f,0xb4579ebe,0xcf0b0235,0x6d2476c7,0x6d1cbb25,0x9dc30f08,0x4f0837e6,0x906f6e98,0x9a4075bb,0xc761e7d1,0x253bb434,0x6e73af10,0xde2e645f,0x0c5f131c,0xb89a4060 +.long 0xb8cc037f,0xd12840c5,0x7405bb47,0x3d093a5b,0x206348b8,0x6202c253,0xc55a3ca7,0xbf5d57fc,0x8c3bef48,0x89f6c90c,0x5a0a960a,0x23ac7623,0x552b42ab,0xdfbd3d6b,0x132061f6,0x3ef22458 +.long 0xc97e6516,0xd74e9bda,0xc230f49e,0x88779360,0x1e74ea49,0xa6ec1de3,0x3fb645a2,0x581dcee5,0x8f483f14,0xbaef2391,0xd137d13b,0x6d2dddfc,0xd2743a42,0x54cde50e,0xe4d97e67,0x89a34fc5 +.long 0x12e08ce5,0x13f1f5b3,0xa7f0b2ca,0xa80540b8,0x01982805,0x854bcf77,0x233bea04,0xb8653ffd,0x02b0b4c9,0x8e7b8787,0x9acb170a,0x2675261f,0x930c14e5,0x061a9d90,0xdef0abea,0xb59b30e0 +.long 0x0200ec7d,0x1dc19ea6,0x0bce132b,0xb6f4a3f9,0xf13e27e0,0xb8d5de90,0x1fade16f,0xbaee5ef0,0xe4c6cf38,0x6f406aaa,0xd1369815,0xab4cfe06,0xefd550c6,0x0dcffe87,0x75ff7d39,0x9d4f59c7 +.long 0x51deb6ad,0xb02553b1,0xb1877749,0x812399a4,0xca6006e1,0xce90f71f,0xb02b6e77,0xc32363a6,0xdc36c64d,0x02284fbe,0xa7e1ae61,0x86c81e31,0xb909d94a,0x2576c7e5,0x818b2bb0,0x8b6f7d02 +.long 0x56faa38a,0xeca3ed07,0x9305bb54,0xa3790e6c,0x7bc73061,0xd784eeda,0x6dd50614,0xbd56d369,0x229a8aa9,0xd6575949,0x4595ec28,0xdcca8f47,0x06ab4fe6,0x814305c1,0x24f43f16,0xc8c39768 +.long 0x523f2b36,0xe2a45f36,0x920d93bb,0x995c6493,0x90f1632b,0xf8afdab7,0x1c295954,0x79ebbecd,0x79592f48,0xc7bb3ddb,0x5f88e998,0x67216a7b,0xbc01193e,0xd91f098b,0xb1db83fc,0xf7d928a5 +.long 0xe991f600,0x55e38417,0x2981a934,0x2a91113e,0x06b13bde,0xcbc9d648,0x0755ff44,0xb011b6ac,0x045ec613,0x6f4cb518,0xc2f5930a,0x522d2d31,0x382e65de,0x5acae1af,0x27bc966f,0x57643067 +.long 0x1c7193f0,0x5e12705d,0x3be8858e,0xf0f32f47,0x96c6dfc7,0x785c3d7d,0xbf31795d,0xd75b4a20,0x342659d4,0x91acf17b,0x44f0378f,0xe596ea34,0xce52129d,0x4515708f,0x79f2f585,0x17387e1e +.long 0x49dee168,0x72cfd2e9,0x3e2af239,0x1ae05223,0x1d94066a,0x009e75be,0x38abf413,0x6cca31c7,0x9bc49908,0xb50bd61d,0xf5e2bc1e,0x4a9b4a8c,0x946f83ac,0xeb6cc5f7,0xebffab28,0x27da93fc +.long 0x4821c8c5,0xea314c96,0xa83c15f4,0x8de49ded,0x7af33004,0x7a64cf20,0xc9627e10,0x45f1bfeb,0x54b9df60,0x878b0626,0xa95c0b33,0x5e4fdc3c,0xc2035d8e,0xe54a37ca,0x80f20b8c,0x9087cda9 +.long 0x8319ade4,0x36f61c23,0xde8cfdf8,0x766f287a,0x346f3705,0x48821948,0x16e4f4a2,0x49a7b853,0x5cedadfd,0xb9b3f8a7,0x8db2a815,0x8f562815,0x01f68f95,0xc0b7d554,0x688a208e,0x12971e27 +.long 0xd0ff34fc,0xc9f8b696,0x1222718c,0x20824de2,0x0c95284d,0x7213cf9f,0xdc158240,0xe2ad741b,0x54043ccf,0x0ee3a6df,0xd84412b3,0x16ff479b,0xdfc98af0,0xf6c74ee0,0x52fcd2fb,0xa78a169f +.long 0x99c930e9,0xd8ae8746,0x49e117a5,0x1d33e858,0x6624759f,0x7581fcb4,0x5bedc01d,0xde50644f,0xcaf3155e,0xbeec5d00,0xbc73e75f,0x672d66ac,0x270b01db,0x86b9d8c6,0x50f55b79,0xd249ef83 +.long 0x73978fe3,0x6131d6d4,0x754b00a1,0xcc4e4542,0x57dfcfe9,0x4e05df05,0x51ef6bf0,0x94b29cdd,0x9bc7edf2,0xe4530cff,0xd3da65f3,0x8ac236fd,0xc8eb0b48,0x0faf7d5f,0x660eb039,0x4d2de14c +.long 0x60430e54,0xc006bba7,0xda3289ab,0x10a2d0d6,0xd7979c59,0x9c037a5d,0xa116d944,0x04d1f3d3,0x8a0983cd,0x9ff22473,0xc883cabb,0x28e25b38,0x47a58995,0xe968dba5,0x774eebdf,0x2c80b505 +.long 0x4a953beb,0xee763b71,0x1642e7f6,0x502e223f,0x61d5e722,0x6fe4b641,0xdbef5316,0x9d37c5b0,0xf8330bc7,0x0115ed70,0x75a72789,0x139850e6,0xffceccc2,0x27d7faec,0x4fd9f7f6,0x3016a860 +.long 0x4cd8f64c,0xc492ec64,0x279d7b51,0x58a2d790,0x1fc75256,0x0ced1fc5,0x8f433017,0x3e658aed,0x05da59eb,0x0b61942e,0x0ddc3722,0xba3d60a3,0x742e7f87,0x7c311cd1,0xf6b01b6e,0x6473ffee +.long 0x692ac542,0x8303604f,0x227b91d3,0xf079ffe1,0x15aaf9bd,0x19f63e63,0xf1f344fb,0xf99ee565,0xd6219199,0x8a1d661f,0xd48ce41c,0x8c883bc6,0x3c74d904,0x1065118f,0x0faf8b1b,0x713889ee +.long 0x81a1b3be,0x972b3f8f,0xce2764a0,0x4f3ce145,0x28c4f5f7,0xe2d0f1cc,0xc7f3985b,0xdeee0c0d,0xd39e25c3,0x7df4adc0,0xc467a080,0x40619820,0x61cf5a58,0x440ebc93,0x422ad600,0x527729a6 +.long 0xb1b76ba6,0xca6c0937,0x4d2026dc,0x1a2eab85,0x19d9ae0a,0xb1715e15,0xbac4a026,0xf1ad9199,0x07ea7b0e,0x35b3dfb8,0x3ed9eb89,0xedf5496f,0x2d6d08ab,0x8932e5ff,0x25bd2731,0xf314874e +.long 0x3f73f449,0xefb26a75,0x8d44fc79,0x1d1c94f8,0x3bc0dc4d,0x49f0fbc5,0x3698a0d0,0xb747ea0b,0x228d291e,0x5218c3fe,0x43c129d6,0x35b804b5,0xd1acc516,0xfac859b8,0x95d6e668,0x6c10697d +.long 0x0876fd4e,0xc38e438f,0x83d2f383,0x45f0c307,0xb10934cb,0x203cc2ec,0x2c9d46ee,0x6a8f2439,0x65ccde7b,0xf16b431b,0x27e76a6f,0x41e2cd18,0x4e3484d7,0xb9c8cf8f,0x8315244a,0x64426efd +.long 0xfc94dea3,0x1c0a8e44,0xdad6a0b0,0x34c8cdbf,0x04113cef,0x919c3840,0x15490ffa,0xfd32fba4,0x795dcfb7,0x58d190f6,0x83588baf,0xfef01b03,0xca1fc1c0,0x9e6d1d63,0xf0a41ac9,0x53173f96 +.long 0xba16f73b,0x2b1d402a,0x8cf9b9fc,0x2fb31014,0x446ef7bf,0x2d51e60e,0xb91e1745,0xc731021b,0x4fee99d4,0x9d3b4724,0xfac5c1ea,0x4bca48b6,0xbbea9af7,0x70f5f514,0x974c283a,0x751f55a5 +.long 0xcb452fdb,0x6e30251a,0x50f30650,0x31ee6965,0x933548d9,0xb0b3e508,0xf4b0ef5b,0xb8949a4f,0x3c88f3bd,0x208b8326,0xdb1d9989,0xab147c30,0x44d4df03,0xed6515fd,0xe72eb0c5,0x17a12f75 +.long 0x36cf69db,0x3b59796d,0x56670c18,0x1219eee9,0x7a070d8e,0xfe3341f7,0xa327f90c,0x9b70130b,0x0ae18e0e,0x36a32462,0x46c0a638,0x2021a623,0xc62eb0d4,0x251b5817,0x4c762293,0x87bfbcdf +.long 0xcdd61d64,0xf78ab505,0xc8c18857,0x8c7a53fc,0x16147515,0xa653ce6f,0xea7d52d5,0x9c923aa5,0x5c18871f,0xc24709cb,0x73b3cc74,0x7d53bec8,0xfdd1d4c4,0x59264aff,0x240da582,0x5555917e +.long 0x548f5a0e,0xcae8bbda,0x3bbfbbe1,0x1910eaba,0x7677afc3,0xae579685,0x73ff0b5c,0x49ea61f1,0x4f7c3922,0x78655478,0x20c68eef,0x95d337cd,0xdf779ab9,0x68f1e1e5,0xb5cf69a8,0x14b491b0 +.long 0x28e3fe89,0x7a6cbbe0,0xc5aac0eb,0xe7e1fee4,0x697e5140,0x7f47eda5,0xb454921f,0x4f450137,0x95cd8185,0xdb625f84,0xcdb2e583,0x74be0ba1,0xdd5e6de4,0xaee4fd7c,0xe8101739,0x4251437d +.long 0xac620366,0x686d72a0,0xb6d59344,0x4be3fb9c,0xa1eb75b9,0x6e8b44e7,0x91a5c10c,0x84e39da3,0xb38f0409,0x37cc1490,0x2c2ade82,0x02951943,0x1190a2d8,0x9b688783,0x231182ba,0x25627d14 +.long 0x658a6d87,0x6eb550aa,0xcf9c7325,0x1405aaa7,0x5c8748c9,0xd147142e,0x53ede0e0,0x7f637e4f,0x14ffad2c,0xf8ca2776,0xbafb6791,0xe58fb1bd,0xbf8f93fc,0x17158c23,0x0a4a4655,0x7f15b373 +.long 0xd842ca72,0x39d4add2,0x3ed96305,0xa71e4391,0x6700be14,0x5bb09cbe,0xd8befcf6,0x68d69d54,0x37183bcf,0xa45f5367,0x3370dff7,0x7152b7bb,0xbf12525b,0xcf887baa,0xd6d1e3cd,0xe7ac7bdd +.long 0x81fdad90,0x25914f78,0x0d2cf6ab,0xcf638f56,0xcc054de5,0xb90bc03f,0x18b06350,0x932811a7,0x9bbd11ff,0x2f00b330,0xb4044974,0x76108a6f,0xa851d266,0x801bb9e0,0xbf8990c1,0x0dd099be +.long 0xabe32986,0x58c5aaaa,0x50d59c27,0x0fe9dd2a,0x8d307305,0x84951ff4,0x86529b78,0x6c23f829,0x0b136a79,0x50bb2218,0x77a20996,0x7e2174de,0xc0bb4da6,0x6f00a4b9,0xefdde8da,0x89a25a17 +.long 0xc11ee01d,0xf728a27e,0xe5f10dfb,0xf900553a,0x02ec893c,0x189a83c8,0x23f66d77,0x3ca5bdc1,0x97eada9f,0x98781537,0x10256230,0x59c50ab3,0x323c69b3,0x346042d9,0x2c460449,0x1b715a6d +.long 0x6ae06e0b,0xa41dd476,0x9d42e25f,0xcdd7888e,0x56b25a20,0x0f395f74,0x8700e27e,0xeadfe0ae,0x69950093,0xb09d52a9,0x327f8d40,0x3525d9cb,0x67df886a,0xb8235a94,0x035faec2,0x77e4b0dd +.long 0x517d7061,0x115eb20a,0x6c2df683,0x77fe3433,0xcdc6fc67,0x6870ddc7,0x0b87de83,0xb1610588,0xd9c4ddbe,0x343584ca,0x3d754be2,0xb3164f1c,0xc1e6c894,0x0731ed3a,0x4f6b904c,0x26327dec +.long 0x97b5cd32,0x9d49c6de,0xb5eceecd,0x40835dae,0xd9ded7fe,0xc66350ed,0x7a678804,0x8aeebb5c,0x5b8ee9ec,0x51d42fb7,0x8e3ca118,0xd7a17bdd,0x2ef4400e,0x40d7511a,0x875a66f4,0xc48990ac +.long 0x2199e347,0x8de07d2a,0x2a39e051,0xbee75556,0x916e51dc,0x56918786,0x4a2d89ec,0xeb191313,0x37d341ed,0x6679610d,0x56d51c2b,0x434fbb41,0xd7492dba,0xe54b7ee7,0x59021493,0xaa33a79a +.long 0xe4bd6d3d,0x49fc5054,0x5ab551d0,0x09540f04,0x4942d3a6,0x8acc9085,0x2d28323b,0x231af02f,0x0992c163,0x93458cac,0x888e3bb4,0x1fef8e71,0xbe8c268c,0x27578da5,0xe805ec00,0xcc8be792 +.long 0xc61c3855,0x29267bae,0x58c1fd3b,0xebff429d,0x8c0b93b8,0x22d886c0,0x2ddb8953,0xca5e00b2,0xc3fed8b7,0xcf330117,0x819c01f6,0xd49ac6fa,0x3c0fbd54,0x6ddaa6bd,0x8049a2cf,0x91743068 +.long 0xaff2ef81,0xd67f981e,0x2818ae80,0xc3654d35,0x1b2aa892,0x81d05044,0x3d099328,0x2db067bf,0x703dcc97,0xe7c79e86,0xe133e215,0xe66f9b37,0xe39a7a5c,0xcdf119a6,0x876f1b61,0x47c60de3 +.long 0xd860f1b2,0x6e405939,0xf5ed4d4a,0x3e9a1dbc,0xc9b6bcbd,0x3f23619e,0x734e4497,0x5ee790cf,0x5bdaf9bb,0xf0a834b1,0x4ca295f0,0x02cedda7,0xcb8e378c,0x4619aa2b,0xcc987ea4,0xe5613244 +.long 0x76b23a50,0x0bc022cc,0x0a6c21ce,0x4a2793ad,0x89cac3f5,0x38328780,0xcba26d56,0x29176f1b,0x4f6f59eb,0x06296187,0x8bdc658e,0x86e9bca9,0x57e30402,0x2ca9c4d3,0x516a09bb,0x5438b216 +.long 0x7672765a,0x0a6a063c,0x0547b9bf,0x37a3ce64,0x98b1a633,0x42c099c8,0x05ee6961,0xb5ab800d,0x11a5acd6,0xf1963f59,0x46201063,0xbaee6157,0xa596210a,0x36d9a649,0x1ba7138c,0xaed04363 +.long 0xa4a82b76,0xcf817d1c,0xf3806be9,0x5586960e,0x09dc6bb5,0x7ab67c89,0x114fe7eb,0x52ace7a0,0xcbbc9b70,0xcd987618,0x604ca5e1,0x4f06fd5a,0x6dbde133,0x90af14ca,0x948a3264,0x1afe4322 +.long 0xc44b2c6c,0xa70d2ca6,0x0ef87dfe,0xab726799,0x2e696377,0x310f64dc,0x4c8126a0,0x49b42e68,0xcea0b176,0x0ea444c3,0xcb269182,0x53a8ddf7,0xbbba9dcb,0xf3e674eb,0xd8669d33,0x0d2878a8 +.long 0xd019b6a3,0x04b935d5,0x406f1e46,0xbb5cf88e,0x5b57c111,0xa1912d16,0x19ebfd78,0x9803fc21,0xc07764a9,0x4f231c9e,0xb75bd055,0xd93286ee,0x8ee6c9de,0x83a9457d,0x6087ec90,0x04695915 +.long 0x58d6cd46,0x14c6dd8a,0x8e6634d2,0x9cb633b5,0xf81bc328,0xc1305047,0x26a177e5,0x12ede0e2,0x065a6f4f,0x332cca62,0x67be487b,0xc3a47ecd,0x0f47ed1c,0x741eb187,0xe7598b14,0x99e66e58 +.long 0x63d0ff12,0x6f0544ca,0xb610a05f,0xe5efc784,0x7cad7b47,0xf72917b1,0xf2cac0c0,0x3ff6ea20,0xf21db8b7,0xcc23791b,0xd7d93565,0x7dac70b1,0x694bdaad,0x682cda1d,0x1023516d,0xeb88bb8c +.long 0xdfdbeb1b,0xc4c634b4,0xb4ee4dea,0x22f5ca72,0xe6524821,0x1045a368,0x052b18b2,0xed9e8a3f,0xb961f49a,0x9b7f2cb1,0x7b009670,0x7fee2ec1,0x22507a6d,0x350d8754,0x4db55f1d,0x561bd711 +.long 0x320bbcaf,0x4c189ccc,0xdf1de48c,0x568434cf,0x0fa8f128,0x6af1b00e,0x8907583c,0xf0ba9d02,0x32ff9f60,0x735a4004,0xc25dcf33,0x3dd8e4b6,0x42c74cef,0xf2230f16,0x013fa8ad,0xd8117623 +.long 0xf51fe76e,0x36822876,0x11d62589,0x8a6811cc,0x46225718,0xc3fc7e65,0xc82fdbcd,0xb7df2c9f,0xdd7b205b,0x3b1d4e52,0x47a2e414,0xb6959478,0xefa91148,0x05e4d793,0xfd2e9675,0xb47ed446 +.long 0x04c9d9bf,0x1a7098b9,0x1b793048,0x661e2881,0xb01ee461,0xb1a16966,0x2954746f,0xbc521308,0x2477de50,0xc909a0fc,0x7dbd51ef,0xd80bb41c,0x53294905,0xa85be7ec,0x83958f97,0x6d465b18 +.long 0xfb6840fd,0x16f6f330,0x3401e6c8,0xfaaeb214,0xccb5b4f8,0xaf83d30f,0x266dec4b,0x22885739,0x7bc467df,0x51b4367c,0xd842d27a,0x926562e3,0x0fea14a6,0xdfcb6614,0xf2734cd9,0xeb394dae +.long 0x11c0be98,0x3eeae5d2,0x814e8165,0xb1e6ed11,0xe52bce1c,0x191086bc,0xa75a04da,0x14b74cc6,0x8c060985,0x63cf1186,0x2dbd7f7c,0x071047de,0xce0942ca,0x4e433b8b,0xd8fec61d,0xecbac447 +.long 0xebf3232f,0x8f0ed0e2,0xc52a2edd,0xfff80f9e,0x75b55fdb,0xad9ab433,0xe42e0c11,0x73ca7820,0xe6251b46,0x6dace0a0,0x4c0d932d,0x89bc6b5c,0x095da19a,0x3438cd77,0x8d48bdfb,0x2f24a939 +.long 0x766561b7,0x99b47e46,0x0ed0322a,0x736600e6,0x638e1865,0x06a47cb1,0xcb136000,0x927c1c2d,0x0cc5df69,0x29542337,0x09d649a9,0x99b37c02,0x6aefdb27,0xc5f0043c,0x1be95c27,0x6cdd9987 +.long 0x390420d2,0x69850931,0x0983efa4,0x299c40ac,0xaf39aead,0x3a05e778,0x43a45193,0x84274408,0x91a711a0,0x6bcd0fb9,0x9f52ab17,0x461592c8,0xda3c6ed6,0xb49302b4,0x330d7067,0xc51fddc7 +.long 0xda50d531,0x94babeb6,0xa6a7b9da,0x521b840d,0x404bdc89,0x5305151e,0xd0d07449,0x1bcde201,0x3b76a59a,0xf427a78b,0x07791a1b,0xf84841ce,0xbf91ed1c,0xebd314be,0xbf172943,0x8e61d34c +.long 0x5541b892,0x1d5dc451,0xfc9d9e54,0xb186ee41,0xd5bf610d,0x9d9f345e,0xf6acca9f,0x3e7ba65d,0xa8369486,0x9dda787a,0x8eb5ba53,0x09f9dab7,0xd6481bc3,0x5afb2033,0xafa62104,0x76f4ce30 +.long 0xf4f066b5,0xa8fa00cf,0x461dafc2,0x89ab5143,0xa3389998,0x44339ed7,0xbc214903,0x2ff862f1,0xb05556e3,0x2c88f985,0x3467081e,0xcd96058e,0xedc637ea,0x7d6a4176,0x36a5acdc,0xe1743d09 +.long 0x7eb37726,0x66fd72e2,0x1481a037,0xf7fa264e,0x45f4aa79,0x9fbd3bde,0x767c3e22,0xed1e0147,0x82e7abe2,0x7621f979,0x45f633f8,0x19eedc72,0x6137bf3a,0xe69b155e,0x414ee94e,0xa0ad13ce +.long 0x1c0e651a,0x93e3d524,0x02ce227e,0xab1a6e2a,0x4ab27eca,0xe7af1797,0xbd444f39,0x245446de,0x56c07613,0x59e22a21,0xf4275498,0x43deafce,0x67fd0946,0x10834ccb,0x47406edf,0xa75841e5 +.long 0x7b0ac93d,0xebd6a677,0x78f5e0d7,0xa6e37b0d,0x76f5492b,0x2516c096,0x9ac05f3a,0x1e4bf888,0x4df0ba2b,0xcdb42ce0,0x5062341b,0x935d5cfd,0x82acac20,0x8a303333,0x5198b00e,0x429438c4 +.long 0x049d33fa,0x1d083bc9,0x946f67ff,0x58b82dda,0x67a1d6a3,0xac3e2db8,0x1798aac8,0x62e6bead,0xde46c58c,0xfc85980f,0x69c8d7be,0xa7f69379,0x837b35ec,0x23557927,0xe0790c0c,0x06a933d8 +.long 0x077ff55d,0x827c0e9b,0xbb26e680,0x53977798,0x1d9cb54f,0x59530874,0x4aac53ef,0xcca3f449,0xa07eda0f,0x11dc5c87,0xfd6400c8,0xc138bccf,0x13e5da72,0x549680d3,0x4540617e,0xc93eed82 +.long 0x4d0b75c0,0xfd3db157,0x6386075b,0x9716eb42,0x817b2c16,0x0639605c,0xf1e4f201,0x09915109,0x5cca6c3b,0x35c9a928,0x3505c900,0xb25f7d1a,0x630480c4,0xeb9f7d20,0x2a1a501c,0xc3c7b8c6 +.long 0x5a1f8e24,0x3f99183c,0x9dd255f0,0xfdb118fa,0xc27f62a6,0xb9b18b90,0x396ec191,0xe8f732f7,0x0be786ab,0x524a2d91,0x0ac5a0f5,0x5d32adef,0x9725f694,0x9b53d4d6,0x0510ba89,0x032a76c6 +.long 0xebeb1544,0x840391a3,0x3ed73ac3,0x44b7b88c,0x256cb8b3,0xd24bae7a,0xe394cb12,0x7ceb151a,0x5bc1e6a8,0xbd6b66d0,0x090f07bf,0xec70cecb,0x7d937589,0x270644ed,0x5f1dccfe,0xee9e1a3d +.long 0x745b98d2,0xb0d40a84,0x2556ed40,0xda429a21,0x85148cb9,0xf676eced,0xded18936,0x5a22d40c,0x70e8a4ce,0x3bc4b9e5,0x9eae0379,0xbfd1445b,0x1a0bd47e,0xf23f2c0c,0xe1845531,0xa9c0bb31 +.long 0x0a4c3f6b,0x9ddc4d60,0x2c15ef44,0xbdfaad79,0x7f484acc,0xce55a236,0x055b1f15,0x08653ca7,0x538873a3,0x2efa8724,0xace1c7e7,0x09299e5d,0xade332ba,0x07afab66,0x92dd71b7,0x9be1fdf6 +.long 0x5758b11c,0xa49b5d59,0xc8654f40,0x0b852893,0x52379447,0xb63ef6f4,0x105e690c,0xd4957d29,0x646559b0,0x7d484363,0x49788a8e,0xf4a8273c,0x34ce54a9,0xee406cb8,0xf86fda9b,0x1e1c260f +.long 0xcf6a4a81,0xe150e228,0x1b488772,0x1fa3b6a3,0xc5a9c15b,0x1e6ff110,0x8ad6aa47,0xc6133b91,0x9dffa978,0x8ac5d55c,0x5f3965f2,0xba1d1c1d,0x7732b52f,0xf969f4e0,0xa5172a07,0xfceecdb5 +.long 0x10f2b8f5,0xb0120a5f,0x5c4c2f63,0xc83a6cdf,0xf8f9c213,0x4d47a491,0xd3f1bbd5,0xd9e1cce5,0xaba7e372,0x0d91bc7c,0xdfd1a2db,0xfcdc74c8,0x374618e5,0x05efa800,0x15a7925e,0x11216969 +.long 0xf6021c5d,0xd4c89823,0xeff14423,0x880d5e84,0x6dcd1396,0x6523bc5a,0x113c978b,0xd1acfdfc,0xbbb66840,0xb0c164e8,0x72b58459,0xf7f4301e,0xa638e8ec,0xc29ad4a6,0x46b78699,0xf5ab8961 +.long 0x0e954750,0x9dbd7974,0x64f9d2c6,0x0121de88,0xd985232e,0x2e597b42,0x53451777,0x55b6c3c5,0x519cb9fb,0xbb53e547,0x8428600d,0xf134019f,0xe081791a,0x5a473176,0x35fb0c08,0x2f3e2263 +.long 0x73d273b0,0xb28c3017,0x7721ef9a,0xccd21076,0xb650dc39,0x054cc292,0x6188045e,0x662246de,0x6b83c0d1,0x904b52fa,0x97e9cd46,0xa72df267,0x899725e4,0x886b43cd,0xd849ff22,0x2b651688 +.long 0x02f34533,0x60479b79,0x0c77c148,0x5e354c14,0xa8537c78,0xb4bb7581,0xefe1495f,0x188043d7,0x8c1d5026,0x9ba12f42,0x93d4aaab,0x2e0c8a26,0xaa57c450,0xbdba7b8b,0x9bbdafef,0x140c9ad6 +.long 0x25ac0f18,0x2067aa42,0x04d1fbf3,0xf7b1295b,0xa4b04824,0x14829111,0x33bd5e91,0x2ce3f192,0x8f2e1b72,0x9c7a1d55,0x302aa243,0xfe932286,0xd4be9554,0x497ca7b4,0xe0547a6e,0xb8e821b8 +.long 0x67e573e0,0xfb2838be,0x4084c44b,0x05891db9,0x96c1c2c5,0x91311373,0xd958444b,0x6aebfa3f,0xe56e55c1,0xac9cdce9,0x2caa46d0,0x7148ced3,0xb61fe8eb,0x2e10c7ef,0xff97cf4d,0x9fd835da +.long 0x081e9387,0xa36da109,0x8c935828,0xfb9780d7,0xe540b015,0xd5940332,0xe0f466fa,0xc9d7b51b,0xd6d9f671,0xfaadcd41,0xb1a2ac17,0xba6c1e28,0xed201e5f,0x066a7833,0xf90f462b,0x19d99719 +.long 0x060b5f61,0xf431f462,0x7bd057c2,0xa56f46b4,0x47e1bf65,0x348dca6c,0x41bcf1ff,0x9a38783e,0xda710718,0x7a5d33a9,0x2e0aeaf6,0x5a779987,0x2d29d187,0xca87314d,0xc687d733,0xfa0edc3e +.long 0x6a31e09b,0x9df33621,0xc1350e35,0xde89e44d,0x4ca0cf52,0x29214871,0x0b88a538,0xdf379672,0x2591d61b,0xc92a510a,0x585b447b,0x79aa87d7,0xe5287f77,0xf67db604,0x5efe7a80,0x1697c8bf +.long 0xcb198ac7,0x1c894849,0x0f264665,0xa884a93d,0x9b200678,0x2da964ef,0x009834e6,0x3c351b87,0xe2c4b44b,0xafb2ef9f,0x3326790c,0x580f6c47,0x0b02264a,0xb8480521,0x42a194e2,0x8ba6f9e2 +.long 0x8fb54738,0xfc87975f,0x27c3ead3,0x35160788,0xb74a085a,0x834116d2,0xa62fe996,0x53c99a73,0x5b81c51b,0x87585be0,0xbe0852b7,0x925bafa8,0xa84d19a7,0x76a4fafd,0x585206d4,0x39a45982 +.long 0x5eb03c0e,0x499b6ab6,0x72bc3fde,0xf19b7954,0x6e3a80d2,0xa86b5b9c,0x6d42819f,0xe4377508,0xbb3ee8a3,0xc1663650,0xb132075f,0x75eb14fc,0x7ad834f6,0xa8ccc906,0xe6e92ffd,0xea6a2474 +.long 0x0f8d6758,0x9d72fd95,0x408c07dd,0xcb84e101,0xa5e23221,0xb9114bfd,0xe94e742c,0x358b5fe2,0x95f40e75,0x1c0577ec,0x3d73f3d6,0xf0155451,0xbd1b9b66,0x9d55cd67,0xaf8d63c7,0x63e86e78 +.long 0xd3c095f1,0x39d934ab,0xe4b76d71,0x04b261be,0xe73e6984,0x1d2e6970,0x5e5fcb11,0x879fb23b,0xdfd75490,0x11506c72,0x61bcf1c1,0x3a97d085,0xbf5e7007,0x43201d82,0x798232a7,0x7f0ac52f +.long 0x6eb564d4,0x2715cbc4,0x9e570e29,0x8d6c752c,0x9ef5fd5d,0xf80247c8,0xd53eb514,0xc3c66b46,0x0f87de56,0x9666b401,0xc6c603b5,0xce62c06f,0x7e4fc942,0xae7b4c60,0x663a9c19,0x38ac0b77 +.long 0x4b049136,0xcb4d20ee,0x356a4613,0x8b63bf12,0x70e08128,0x1221aef6,0x4acb6b16,0xe62d8c51,0x379e7896,0x71f64a67,0xcafd7fa5,0xb25237a2,0x3841ba6a,0xf077bd98,0x3cd16e7e,0xc4ac0244 +.long 0x21fea4ca,0x548ba869,0xf3dfdac1,0xd36d0817,0xf4685faf,0x09d8d71f,0xc52c459a,0x8eff66be,0x0b57235e,0x182faee7,0x0106712b,0xee3c39b1,0xc0fcdcb0,0x5107331f,0xa51054ba,0x669fb9dc +.long 0x319d7682,0xb25101fb,0x0a982fee,0xb0293129,0x0261b344,0x51c1c9b9,0xbfd371fa,0x0e008c5b,0x0278ca33,0xd866dd1c,0xe5aa53b1,0x666f76a6,0x6013a2cf,0xe5cfb779,0xa3521836,0x1d3a1aad +.long 0x73faa485,0xcedd2531,0xc0a76878,0xc8ee6c4f,0x2a11667d,0xddbccfc9,0x1c2f695a,0x1a418ea9,0x51f73971,0xdb11bd92,0xda2ed89f,0x3e4b3c82,0xe73e0319,0x9a44f3f4,0x303431af,0xd1e3de0f +.long 0x50f75f9c,0x3c5604ff,0x7e752b22,0x1d8eddf3,0x3c9a1118,0x0ef074dd,0xccb86d7b,0xd0ffc172,0x037d90f2,0xabd1ece3,0x6055856c,0xe3f307d6,0x7e4c6daf,0x422f9328,0x334879a0,0x902aac66 +.long 0x94cdfade,0xb6a1e7bf,0x7fc6d634,0x6c97e1ed,0xa2fb63f8,0x662ad24d,0xa5928405,0xf81be1b9,0xd14b4206,0x86d765e4,0x8fa0db65,0xbecc2e0e,0xb17fc76c,0xa28838e0,0xe37cf24e,0xe49a602a +.long 0x567193ec,0x76b4131a,0xe5f6e70b,0xaf3c305a,0x031eebdd,0x9587bd39,0x71bbe831,0x5709def8,0x0eb2b669,0x57059983,0x875b7029,0x4d80ce1b,0x0364ac16,0x838a7da8,0xbe1c83ab,0x2f431d23 +.long 0xf9294dd3,0xe56812a6,0x9b4b0d77,0xb448d01f,0x04e8305c,0xf3ae6061,0x94d8c63e,0x2bead645,0x84fd8b07,0x0a85434d,0xf7a9dee5,0x537b983f,0xef55bd85,0xedcc5f18,0x21c6cf8b,0x2041af62 +.long 0xb940c71e,0x8e52874c,0xdb5f4b3a,0x211935a9,0x301b1dc3,0x94350492,0x29958620,0x33d2646d,0xef911404,0x16b0d64b,0x9a3c5ef4,0x9d1f25ea,0x4a352c78,0x20f200eb,0x4bd0b428,0x43929f2c +.long 0xc7196e29,0xa5656667,0x9391be48,0x7992c2f0,0x9ee0cd6e,0xaaa97cbd,0x3dc8c9bf,0x51b0310c,0xdd9f22cb,0x237f8acf,0xb585d584,0xbb1d81a1,0x8c416388,0x8d5d85f5,0x42fe474f,0x0d6e5a5a +.long 0x38235d4e,0xe7812766,0x496e3298,0x1c62bd67,0x3f175bc8,0x8378660c,0x17afdd4d,0x4d04e189,0x85a8068c,0x32a81601,0x92b29a85,0xdb58e4e1,0xc70d8a3b,0xe8a65b86,0x98a0403b,0x5f0e6f4e +.long 0x69ed2370,0x08129684,0x0871ee26,0x34dc30bd,0x7c9c5b05,0x3a5ce948,0x43a90c87,0x7d487b80,0xdd0e7179,0x4089ba37,0xb4041811,0x45f80191,0x98747ba5,0x1c3e1058,0x6e1ae592,0x98c4e13a +.long 0xe82c9f9e,0xd44636e6,0xc33a1043,0x711db87c,0xaa8aec05,0x6f431263,0x2744a4aa,0x43ff120d,0xae77779b,0xd3bd892f,0x8cdc9f82,0xf0fe0cc9,0xf1c5b1bc,0xca5f7fe6,0x44929a72,0xcc63a682 +.long 0x09dbe19a,0xc7eaba0c,0x6b5c73c2,0x2f3585ad,0x0ae50c30,0x8ab8924b,0x638b30ba,0x17fcd27a,0x10b3d5a5,0xaf414d34,0x2a9accf1,0x09c107d2,0x946a6242,0x15dac49f,0xd707d642,0xaec3df2a +.long 0x3f894ae0,0x2c2492b7,0xb75f18ce,0xf59df3e5,0x8f53cad0,0x7cb740d2,0xc4f01294,0x3eb585fb,0x32c7f717,0x17da0c86,0xaf943f4c,0xeb8c795b,0xf67c51d2,0x4ee23fb5,0x68889949,0xef187575 +.long 0x0389168b,0xa6b4bdb2,0xea577d03,0xc4ecd258,0x55743082,0x3a63782b,0xc72f08cd,0x6f678f4c,0x65e58dd8,0x553511cf,0xd402c0cd,0xd53b4e3e,0xa037c14c,0x37de3e29,0xc05712aa,0x86b6c516 +.long 0xb38dff6f,0x2834da3e,0xea636be8,0xbe012c52,0x61dd37f8,0x292d238c,0x8f8142db,0x0e54523f,0x036a05d8,0xe31eb436,0x1e93c0ff,0x83e3cdff,0x50821ddf,0x3fd2fe0f,0xff9eb33b,0xc8e19b0d +.long 0xb569a5fe,0xc8cc943f,0xd4342d75,0xad0090d4,0xcaeca000,0x82090b4b,0x1bd410eb,0xca39687f,0x65959d77,0xe7bb0df7,0x9c964999,0x39d78218,0xb2415451,0xd87f62e8,0xbed76108,0xe5efb774 +.long 0xe822f0d0,0x3ea011a4,0x5a8704f8,0xbc647ad1,0x50c6820f,0xbb315b35,0xb7e76bec,0x863dec3d,0xf017bfc7,0x01ff5d3a,0x976b8229,0x20054439,0x0bbd0d3b,0x067fca37,0x7f5e3d0f,0xf63dde64 +.long 0x2a4c94e9,0x22dbefb3,0x96f8278a,0xafbff0fe,0x3503793d,0x80aea0b1,0x5f06cd29,0xb2238029,0x8ec3feca,0x65703e57,0x393e7053,0x06c38314,0x7c6734c4,0xa0b751eb,0xc59f0f1e,0xd2e8a435 +.long 0x5e9ca895,0x147d9052,0x972072df,0x2f4dd31e,0xe6c6755c,0xa16fda8e,0xcf196558,0xc66826ff,0x0cf43895,0x1f1a76a3,0x83c3097b,0xa9d604e0,0x66390e0e,0xe1908309,0xb3c85eff,0xa50bf753 +.long 0xf6a70251,0x0696bdde,0x3c6ab16a,0x548b801b,0xa4d08762,0x37fcf704,0xdff76c4e,0x090b3def,0x69cb9158,0x87e8cb89,0x995ece43,0x44a90744,0x0ad9fbf5,0xf85395f4,0x4fb0c82d,0x49b0f6c5 +.long 0xadf7cccf,0x75d9bc15,0xdfa1e1b0,0x81a3e5d6,0x249bc17e,0x8c39e444,0x8ea7fd43,0xf37dccb2,0x907fba12,0xda654873,0x4a372904,0x35daa6da,0x6283a6c5,0x0564cfc6,0x4a9395bf,0xd09fa4f6 +.long 0xaeb19a36,0x688e9ec9,0xc7bfbfb4,0xd913f1ce,0x61c2faa6,0x797b9a3c,0x6a0a9c12,0x2f979bec,0x359679ec,0xb5969d0f,0x079b0460,0xebcf523d,0x10fab870,0xfd6b0008,0x9373a39c,0x3f2edcda +.long 0x6f568431,0x0d64f9a7,0x02f8898c,0xf848c27c,0x260b5bd5,0xf418ade1,0x6973dee8,0xc1f3e323,0x26c185dd,0x46e9319c,0x546f0ac4,0x6d85b7d8,0x247f9d57,0x427965f2,0xb0035f48,0xb519b636 +.long 0xab87d59c,0x6b6163a9,0x39caaa11,0xff9f58c3,0x3177387b,0x4ac39cde,0x873e77f9,0x5f6557c2,0x36a83041,0x67504006,0x75ef196c,0x9b1c96ca,0xb08c7940,0xf34283de,0x1128c316,0x7ea09644 +.long 0x6aa39dff,0xb510b3b5,0x9f8e4d8c,0x59b43da2,0x9e4c4b9f,0xa8ce31fd,0xc1303c01,0x0e20be26,0xe8ee47c9,0x18187182,0x7db98101,0xd9687cdb,0xa1e14ff6,0x7a520e4d,0x8836d572,0x429808ba +.long 0x4944b663,0xa37ca60d,0xa3f91ae5,0xf901f7a9,0x9e36e3b1,0xe4e3e76e,0x29d93250,0x9aa219cf,0x056a2512,0x347fe275,0xde65d95c,0xa4d643d9,0x699fc3ed,0x9669d396,0xcf8c6bbe,0xb598dee2 +.long 0xdda9e5c6,0x682ac1e5,0xcaa9fc95,0x4e0d3c72,0x772bea44,0x17faaade,0xab0009c8,0x5ef8428c,0x460ff016,0xcc4ce47a,0x725281cb,0xda6d12bf,0x0223aad2,0x44c67848,0x36256e28,0x6e342afa +.long 0x93a37c04,0x1400bb0b,0xdd10bd96,0x62b1bc9b,0x0dac46b7,0x7251adeb,0x7be4ef51,0x7d33b92e,0xe61fa29a,0x28b2a94b,0x06422233,0x4b2be13f,0x330d8d37,0x36d6d062,0xb28ca005,0x5ef80e1e +.long 0x6d16768e,0x174d4699,0x628bf217,0x9fc4ff6a,0x154e490d,0x77705a94,0x8d2d997a,0x9d96dd28,0xce5d72c4,0x77e2d9d8,0xc11c714f,0x9d06c5a4,0x79e4a03e,0x02aa5136,0x030ff28b,0x1386b3c2 +.long 0xfb283f61,0xfe82e8a6,0xf3abc3fb,0x7df203e5,0x3a4d3622,0xeec7c351,0xdf762761,0xf7d17dbf,0x522055f0,0xc3956e44,0x8fa748db,0xde3012db,0xbf1dcc14,0xca9fcb63,0xbe4e2f3a,0xa56d9dcf +.long 0x8bcec9c2,0xb86186b6,0x680b9f06,0x7cf24df9,0xc0d29281,0xc46b45ea,0x07b10e12,0xfff42bc5,0x4d289427,0x12263c40,0xb4848ec4,0x3d5f1899,0xd040800c,0x11f97010,0x300feb20,0xb4c5f529 +.long 0xde94fdcb,0xcc543f8f,0xc7c2f05e,0xe96af739,0x882692e1,0xaa5e0036,0x950d4ae9,0x09c75b68,0xb5932a7a,0x62f63df2,0xde0979ad,0x2658252e,0xb5e69631,0x2a19343f,0x525b666b,0x718c7501 +.long 0xea40dc3a,0x26a42d69,0xaecc018f,0xdc84ad22,0x3270f04a,0x25c36c7b,0x50fa72ed,0x46ba6d47,0x93e58a8e,0x6c37d1c5,0x120c088c,0xa2394731,0xcb6e86da,0xc3be4263,0x7126d038,0x2c417d36 +.long 0x8b6f8efa,0x5b70f9c5,0x37718536,0x671a2faa,0xb539c92b,0xd3ced3c6,0xa31203c2,0xe56f1bd9,0x9ff3c8eb,0x8b096ec4,0x43491cea,0x2deae432,0x17943794,0x2465c6eb,0x20586843,0x5d267e66 +.long 0xb07159d0,0x9d3d116d,0xc1896210,0xae07a67f,0xbb961579,0x8fc84d87,0x1c1f8dd6,0x30009e49,0xe3132819,0x8a8caf22,0xf23ab4ff,0xcffa197c,0x205dd687,0x58103a44,0x0ded67a2,0x57b796c3 +.long 0xa1779ad7,0x0b9c3a6c,0x357c09c5,0xa33cfe2e,0x3db4a57e,0x2ea29315,0x8ebeb52e,0x91959695,0xe546c879,0x118db9a6,0x6295c8d6,0x8e996df4,0x55ec806b,0xdd990484,0x165c1035,0x24f291ca +.long 0x440e2229,0xcca523bb,0x73ef4d04,0x324673a2,0x3e11ec39,0xaf3adf34,0xdc5968d3,0x6136d7f1,0xb053a927,0x7a7b2899,0xae067ecd,0x3eaa2661,0x02779cd9,0x8549b9c8,0xc53385ea,0x061d7940 +.long 0xf06d18bd,0x3e0ba883,0xb2700843,0x4ba6de53,0x591a9e4d,0xb966b668,0x7f4fa0ed,0x93f67567,0x4347237b,0x5a02711b,0xe794608e,0xbc041e2f,0x70f73d8c,0x55af10f5,0xbb7564f7,0xd2d4d4f7 +.long 0xb3e93ce7,0xd7d27a89,0x5d3a2c1b,0xf7b5a875,0x255b218a,0xb29e68a0,0x8af76754,0xb533837e,0x579fab2e,0xd1b05a73,0xecd74385,0xb41055a1,0x445e9115,0xb2369274,0xf520274e,0x2972a7c4 +.long 0xf678e68a,0x6c08334e,0x99b057ed,0x4e4160f0,0x52ccb69a,0x3cfe11b8,0x21c8f772,0x2fd1823a,0x3298f055,0xdf7f072f,0xfec74a6e,0x8c0566f9,0x5bb4d041,0xe549e019,0x9208d850,0x7c3930ba +.long 0xaaa2902b,0xe07141fc,0xe4f69ad3,0x539ad799,0x813f9ffd,0xa6453f94,0x375bc2f7,0xc58d3c48,0x5dc64e96,0xb3326fad,0xb240e354,0x3aafcaa9,0xaca1e7a9,0x1d1b0903,0x1211b8a0,0x4ceb9767 +.long 0xe32a858e,0xeca83e49,0xae907bad,0x4c32892e,0x2eb9b494,0xd5b42ab6,0x1eabae1b,0x7fde3ee2,0xcaf54957,0x13b5ab09,0xe5f5d5d5,0xbfb028be,0x2003e2c0,0x928a0650,0x67476843,0x90793aac +.long 0xc81710a0,0x5e942e79,0x27ccadd4,0x557e4a36,0x4bcf6d0c,0x72a2bc56,0x26d7b80c,0x09ee5f43,0xd4292f19,0x6b70dbe9,0x63f16b18,0x56f74c26,0x35fbb42a,0xc23db0f7,0x6ae10040,0xb606bdf6 +.long 0x044573ac,0x1eb15d4d,0x556b0ba4,0x7dc3cf86,0xc60df6f7,0x97af9a33,0xa716ce8c,0x0b1ef85c,0xc96958be,0x2922f884,0x35690963,0x7c32fa94,0xeaa00061,0x2d7f667c,0x3547365c,0xeaaf7c17 +.long 0x87032d58,0x1eb4de46,0x5e2c79e0,0xc54f3d83,0x5d04ef23,0x07818df4,0x673d41b4,0x55faa9c8,0x89b95355,0xced64f6f,0xb7415c84,0x4860d2ea,0x050ebad3,0x5fdb9bd2,0x6685a5bf,0xdb53e0cc +.long 0x9feb6593,0xb830c031,0x6accff17,0xdd87f310,0x9f555c10,0x2303ebab,0x287e7065,0x94603695,0x2e83358c,0xf88311c3,0xeefb0178,0x508dd9b4,0x2dba8652,0x7ca23706,0x0047abe5,0x62aac5a3 +.long 0x8b1ea7b3,0x9a61d2a0,0xae8b1485,0xd495ab63,0x87052f99,0x38740f84,0xb2974eea,0x178ebe5b,0x5b36d17f,0x030bbcca,0xaaf86eea,0xb5e4cce3,0x68f8e9e0,0xb51a0220,0x09eb3e75,0xa4348796 +.long 0xeef1a752,0xbe592309,0x6f2aa1ed,0x5d7162d7,0x0f007dd2,0xaebfb5ed,0xc89edd22,0x255e14b2,0x0303b697,0xba85e072,0xf05720ff,0xc5d17e25,0x5128ebb6,0x02b58d6e,0xd754e113,0x2c80242d +.long 0xabfae1ca,0x919fca5f,0x1a21459b,0x937afaac,0x1f66a4d2,0x9e0ca91c,0x23ec1331,0x194cc7f3,0x8aa11690,0xad25143a,0x09b59e08,0xbe40ad8d,0xe750860a,0x37d60d9b,0xc6bf434c,0x6c53b008 +.long 0x1356eb80,0xb572415d,0x9578ded8,0xb8bf9da3,0x5e8fb38b,0x22658e36,0x5af8cb22,0x9b70ce22,0x829a8180,0x7c00018a,0xb81ed295,0x84329f93,0x5f3cea83,0x7c343ea2,0x67586536,0x38f8655f +.long 0x1d3ec517,0xa661a0d0,0x512321ae,0x98744652,0xeca92598,0x084ca591,0x1dcb3feb,0xa9bb9dc9,0x78b4c240,0x14c54355,0x610cafdc,0x5ed62a3b,0x1b38846b,0x07512f37,0xb0e38161,0x571bb70a +.long 0x2da705d2,0xb556b95b,0xb1a08f98,0x3ef8ada6,0xddecfbe5,0x85302ca7,0x943105cd,0x0e530573,0x21a9255d,0x60554d55,0xf2f3802a,0x63a32fa1,0xcd477875,0x35c8c5b0,0x6ad42da1,0x97f458ea +.long 0xeb6b242d,0x832d7080,0x3b71e246,0xd30bd023,0xbe31139d,0x7027991b,0x462e4e53,0x68797e91,0x6b4e185a,0x423fe20a,0x42d9b707,0x82f2c67e,0x4cf7811b,0x25c81768,0x045bb95d,0xbd53005e +.long 0x9d8e68fd,0xe5f649be,0x1b044320,0xdb0f0533,0xe0c33398,0xf6fde9b3,0x66c8cfae,0x92f4209b,0x1a739d4b,0xe9d1afcc,0xa28ab8de,0x09aea75f,0xeac6f1d0,0x14375fb5,0x708f7aa5,0x6420b560 +.long 0x6254dc41,0x9eae499c,0x7a837e7e,0x7e293924,0x090524a7,0x74aec08c,0x8d6f55f2,0xf82b9219,0x1402cec5,0x493c962e,0xfa2f30e7,0x9f17ca17,0xe9b879cb,0xbcd783e8,0x5a6f145f,0xea3d8c14 +.long 0x5e0dee6e,0xdede15e7,0xdc628aa2,0x74f24872,0x7861bb93,0xd3e9c4fe,0x6187b2e0,0x56d4822a,0xc59826f9,0xb66417cf,0x2408169e,0xca260969,0xc79ef885,0xedf69d06,0xdc7d138f,0x00031f8a +.long 0x0ebcf726,0x103c46e6,0x6231470e,0x4482b831,0x487c2109,0x6f6dfaca,0x62e666ef,0x2e0ace97,0x1f8d1f42,0x3246a9d3,0x574944d2,0x1b1e83f1,0xa57f334b,0x13dfa63a,0x9f025d81,0x0cf8daed +.long 0x00ee11c1,0x30d78ea8,0xb5e3dd75,0xeb053cd4,0xd58c43c5,0x9b65b13e,0xbd151663,0xc3ad49bd,0xb6427990,0x99fd8e41,0x707eae1e,0x12cf15bd,0x1aabb71e,0x29ad4f1b,0x07545d0e,0x5143e74d +.long 0xc88bdee1,0x30266336,0x5876767c,0x25f29306,0xc6731996,0x9c078571,0xed552951,0xc88690b2,0x852705b4,0x274f2c2d,0x4e09552d,0xb0bf8d44,0x986575d1,0x7628beeb,0x7f864651,0x407be238 +.long 0xa639fc6b,0x0e5e3049,0x86003625,0xe75c35d9,0x5dcc1646,0x0cf35bd8,0x6c26273a,0x8bcaced2,0xb5536742,0xe22ecf1d,0x1a9e068b,0x013dd897,0x8a7909c5,0x17f411cb,0x861dd506,0x5757ac98 +.long 0x1e935abb,0x85de1f0d,0x154de37a,0xdefd10b4,0x369cebb5,0xb8d9e392,0x761324be,0x54d5ef9b,0x74f17e26,0x4d6341ba,0x78c1dde4,0xc0a0e3c8,0x87d918fd,0xa6d77581,0x02ca3a13,0x66876015 +.long 0xf36658f0,0xc7313e9c,0x71f8057e,0xc433ef1c,0x1b6a835a,0x85326246,0x7c86394c,0xc8f05398,0xe983c4a1,0xff398cdf,0x03b7b931,0xbf5e8162,0xb7b9045b,0x93193c46,0xa4a6e46b,0x1e4ebf5d +.long 0x43a24fe7,0xf9942a60,0xffb3492b,0x29c1191e,0x902fde05,0x9f662449,0x6713c32d,0xc792a7ac,0xb737982c,0x2fd88ad8,0xa21e60e3,0x7e3a0319,0x7383591a,0x09b0de44,0x8310a456,0x6df141ee +.long 0xe6d6f471,0xaec1a039,0x1198d12e,0x14b2ba0f,0x3aeee5ac,0xebc1a160,0xe0b964ce,0x401f4836,0x4fd03f66,0x2ee43796,0xdd8f3f12,0x3fdb4e49,0x29380f18,0x6ef267f6,0x8da64d16,0x3e8e9670 +.long 0x207674f1,0xbc19180c,0x33ae8fdb,0x112e09a7,0x6aaeb71e,0x99667554,0xe101b1c7,0x79432af1,0xde2ddec6,0xd5eb558f,0x5357753f,0x81392d1f,0x3ae1158a,0xa7a76b97,0x4a899991,0x416fbbff +.long 0x0d4a9dcf,0x9e65fdfd,0x944ddf12,0x7bc29e48,0x3c856866,0xbc1a92d9,0x6e98dfe2,0x273c6905,0xcdfaa6b8,0x69fce418,0x5061c69f,0x606bd823,0x6af75e27,0x42d495a0,0x6d873a1f,0x8ed3d505 +.long 0x6ab25b6a,0xaf552841,0x2b1a4523,0xc6c0ffc7,0x21c99e03,0xab18827b,0x9034691b,0x060e8648,0x93c7f398,0x5207f90f,0x82f8d10b,0x9f4a96cb,0x3ad0f9e3,0xdd71cd79,0xfc3a54f5,0x84f435d2 +.long 0x8e33787f,0x4b03c55b,0xa6384673,0xef42f975,0x5051b9f0,0xff7304f7,0x741c87c2,0x18aca1dc,0x2d4bfe80,0x56f120a7,0x053e732c,0xfd823b3d,0x7537ca16,0x11bccfe4,0x1b5a996b,0xdf6c9c74 +.long 0x904fc3fa,0xee7332c7,0xc7e3636a,0x14a23f45,0xf091d9aa,0xc38659c3,0xb12d8540,0x4a995e5d,0xf3a5598a,0x20a53bec,0xb1eaa995,0x56534b17,0xbf04e03c,0x9ed3dca4,0xd8d56268,0x716c563a +.long 0x1d6178e7,0x27ba77a4,0x68a1ff8e,0xe4c80c40,0x0a13f63d,0x75011099,0xa61d46f3,0x7bf33521,0x10b365bb,0x0aff218e,0x0fd7ea75,0x81021804,0xa4b3a925,0x05a3fd8a,0x9b3db4e6,0xb829e75f +.long 0x4d53e5fb,0x6bdc75a5,0xd52717e3,0x04a5dc02,0xe9a42ec2,0x86af502f,0x2630e382,0x8867e8fb,0xbec9889b,0xbf845c6e,0xcb47c98d,0x54f491f2,0x790c2a12,0xa3091fba,0xc20f708b,0xd7f6fd78 +.long 0xacde5e17,0xa569ac30,0x6852b4d7,0xd0f996d0,0x4609ae54,0xe51d4bb5,0x0daed061,0x3fa37d17,0x34b8fb41,0x62a88684,0x9efb64f1,0x99a2acbd,0x6448e1f2,0xb75c1a5e,0x42b5a069,0xfa99951a +.long 0x2f3b26e7,0x6d956e89,0xda875247,0xf4709860,0x2482dda3,0x3ad15179,0x017d82f0,0xd64110e3,0xfad414e4,0x14928d2c,0x2ed02b24,0x2b155f58,0xcb821bf1,0x481a141b,0x4f81f5da,0x12e3c770 +.long 0x9fff8381,0xe49c5de5,0x5bbec894,0x11053232,0x454d88c4,0xa0d051cc,0x1f8e531b,0x4f6db89c,0xca563a44,0x34fe3fd6,0x58da8ab9,0x7f5c2215,0x9474f0a1,0x8445016d,0xcb7d8a0a,0x17d34d61 +.long 0x1c474019,0x8e9d3910,0xd52ceefb,0xcaff2629,0xc1622c2b,0xf9cf3e32,0xe9071a05,0xd4b95e3c,0x1594438c,0xfbbca61f,0x04aadedf,0x1eb6e6a6,0x68e14940,0x853027f4,0xdfabda9c,0x221d322a +.long 0xb7cb179a,0xed8ea9f6,0xb7934dcc,0xdc7b764d,0x5e09180d,0xfcb13940,0xb47dc2dd,0x6629a6bf,0x9f5a915e,0xbfc55e4e,0x6204441e,0xb1db9d37,0x930c5f53,0xf82d68cf,0xcbb605b1,0x17d3a142 +.long 0x308780f2,0xdd5944ea,0x3845f5e4,0xdc8de761,0x7624d7a3,0x6beaba7d,0x304df11e,0x1e709afd,0x02170456,0x95364376,0xc8f94b64,0xbf204b3a,0x5680ca68,0x4e53af7c,0xe0c67574,0x0526074a +.long 0xecd92af6,0x95d8cef8,0x6cd1745a,0xe6b9fa7a,0xa325c3e4,0x3d546d3d,0x9ae93aae,0x1f57691d,0x9d2e1a33,0xe891f3fe,0xac063d35,0xd430093f,0x5513a327,0xeda59b12,0x5536f18f,0xdc2134f3 +.long 0x5c210286,0xaa51fe2c,0x1cab658c,0x3f68aaee,0xf9357292,0x5a23a00b,0x7efdabed,0x9a626f39,0x199d78e3,0xfe2b3bf3,0x71bbc345,0xb7a2af77,0x1e59802c,0x3d19827a,0xb487a51c,0x823bbc15 +.long 0x99d0a422,0x856139f2,0xf456c6fb,0x9ac3df65,0x701f8bd6,0xaddf65c6,0x3758df87,0x149f321e,0x721b7eba,0xb1ecf714,0x31a3312a,0xe17df098,0xd5c4d581,0xdb2fd6ec,0x8fcea1b3,0xfd02996f +.long 0x7882f14f,0xe29fa63e,0x07c6cadc,0xc9f6dc35,0xb882bed0,0x46f22d6f,0xd118e52c,0x1a45755b,0x7c4608cf,0x9f2c7c27,0x568012c2,0x7ccbdf32,0x61729b0e,0xfcb0aedd,0xf7d75dbf,0x7ca2ca9e +.long 0x6f640f62,0xf58fecb1,0x39f51946,0xe274b92b,0x6288af44,0x7f4dfc04,0xeac329e5,0x0a91f32a,0xd6aaba31,0x43ad274b,0x0f6884f9,0x719a1640,0xdaf91e20,0x685d29f6,0x27e49d52,0x5ec1cc33 +.long 0x3b54a059,0x38f4de96,0xefbcfdb3,0x0e0015e5,0x4dbb8da6,0x177d23d9,0x97a617ad,0x98724aa2,0xfdb6558e,0x30f0885b,0xc7899a96,0xf9f7a28a,0x872dc112,0xd2ae8ac8,0x73c3c459,0xfa0642ca +.long 0xe7dfc8d6,0x15296981,0x1fb5b94a,0x67cd4450,0x0eddfd37,0x0ec71cf1,0x9a8eddc7,0xc7e5eeb3,0x81d95028,0x02ac8e3d,0x70b0e35d,0x0088f172,0xe1881fe3,0xec041fab,0xd99e7faa,0x62cf71b8 +.long 0xe0f222c2,0x5043dea7,0x72e65142,0x309d42ac,0x9216cd30,0x94fe9ddd,0x0f87feec,0xd6539c7d,0x432ac7d7,0x03c5a57c,0x327fda10,0x72692cf0,0x280698de,0xec28c85f,0x7ec283b1,0x2331fb46 +.long 0x2867e633,0xd34bfa32,0x0a9cc815,0x78709a82,0x875e2fa5,0xb7fe6964,0x9e98bfb5,0x25cc064f,0x493a65c5,0x9eb0151c,0x53182464,0x5fb5d941,0xf04618e2,0x69e6f130,0xf89c8ab6,0xa8ecec22 +.long 0xb96209bd,0xcd6ac88b,0xb3e1c9e0,0x65fa8cdb,0x4a8d8eac,0xa47d22f5,0x8d33f963,0x83895cdf,0xb56cd3d1,0xa8adca59,0xdaf38232,0x10c8350b,0xa5080a9f,0x2b161fb3,0x3af65b3a,0xbe7f5c64 +.long 0x97403a11,0x2c754039,0x121b96af,0x94626cf7,0x6a983ec2,0x431de7c4,0x52cc3df7,0x3780dd3a,0x2baf8e3b,0xe28a0e46,0x51d299ae,0xabe68aad,0x647a2408,0x603eb8f9,0x5c750981,0x14c61ed6 +.long 0xc53352e7,0x88b34414,0x1337d46e,0x5a34889c,0xf95f2bc8,0x612c1560,0xd4807a3a,0x8a3f8441,0x5224da68,0x680d9e97,0xc3eb00e9,0x60cd6e88,0x9a6bc375,0x3875a98e,0x4fd554c2,0xdc80f924 +.long 0x6ac77407,0x6c4b3415,0x25420681,0xa1e5ea8f,0x4607a458,0x541bfa14,0x96d7fbf9,0x5dbc7e7a,0x31590a47,0x646a851b,0x15ee6df8,0x039e85ba,0xd7b43fc0,0xd19fa231,0x299a0e04,0x84bc8be8 +.long 0xf20df03a,0x2b9d2936,0x8608d472,0x24054382,0x9149202a,0x76b6ba04,0x3670e7b7,0xb21c3831,0xd6fdee10,0xddd93059,0x78488e71,0x9da47ad3,0xa0fcfb25,0x99cc1dfd,0x64696954,0x42abde10 +.long 0x17eab9fe,0x14cc15fc,0xd3e70972,0xd6e863e4,0x6432112c,0x29a7765c,0x5b0774d8,0x88660001,0x2c088eae,0x3729175a,0x8230b8d4,0x13afbcae,0x915f4379,0x44768151,0xd8d22812,0xf086431a +.long 0xc298b974,0x37461955,0xf8711e04,0x905fb5f0,0xfe969d18,0x787abf3a,0x6f6a494e,0x392167c2,0x28c511da,0xfc7a0d2d,0xb66a262d,0xf127c7dc,0xfd63fdf0,0xf9c4bb95,0x3913ef46,0x90016589 +.long 0x11aa600d,0x74d2a73c,0x9fb5ab52,0x2f5379bd,0x7fb70068,0xe49e53a4,0x404aa9a7,0x68dd39e5,0x2ecaa9c3,0xb9b0cf57,0xe824826b,0xba0e103b,0x4631a3c4,0x60c2198b,0xfa8966a2,0xc5ff84ab +.long 0xac95aff8,0x2d6ebe22,0xb5a46d09,0x1c9bb6db,0x53ee4f8d,0x419062da,0xbb97efef,0x7b9042d0,0x830cf6bd,0x0f87f080,0x6ec8a6c6,0x4861d19a,0x202f01aa,0xd3a0daa1,0xf25afbd5,0xb0111674 +.long 0x1afb20d9,0x6d00d6cf,0x40671bc5,0x13695000,0x2485ea9b,0x913ab0dc,0x9eef61ac,0x1f2bed06,0x6d799e20,0x850c8217,0x3271c2de,0x93415f37,0x6c4f5910,0x5afb06e9,0xc4e9e421,0x688a52df +.long 0xe2a9a6db,0x30495ba3,0x58f9268b,0x4601303d,0x7eb0f04f,0xbe3b0dad,0x4456936d,0x4ea47250,0xd33fd3e7,0x8caf8798,0xeb433708,0x1ccd8a89,0x87fd50ad,0x9effe3e8,0x6b29c4df,0xbe240a56 +.long 0xca0e7ebd,0xec4ffd98,0xe748616e,0xf586783a,0xc77baa99,0xa5b00d8f,0xb4f34c9c,0x0acada29,0x0fe723ac,0x36dad67d,0x39c36c1e,0x1d8e53a5,0x1f4bea41,0xe4dd342d,0xebc9e4e0,0x64fd5e35 +.long 0x57908805,0x96f01f90,0x5ed480dd,0xb5b9ea3d,0x3efd2dd0,0x366c5dc2,0x6e9dfa27,0xed2fe305,0x6e9197e2,0x4575e892,0xab502a5d,0x11719c09,0xe81f213f,0x264c7bec,0x55f5c457,0x741b9241 +.long 0x49a5f4f4,0x78ac7b68,0x9fc45b7d,0xf91d70a2,0xb0f5f355,0x39b05544,0xeef930d9,0x11f06bce,0x038d05e1,0xdb84d25d,0xbacc1d51,0x04838ee5,0x9e8ee00b,0x9da3ce86,0xc36eda1f,0xc3412057 +.long 0x64d9c2f4,0xae80b913,0xa010a8ff,0x7468bac3,0x37359d41,0xdfd20037,0x15efeacc,0x1a0f5ab8,0x659d0ce0,0x7c25ad2f,0x6785cff1,0x4011bcbb,0x7e2192c7,0x128b9912,0x13ccb0e8,0xa549d8e1 +.long 0xc85438b1,0x805588d8,0xbc25cb27,0x5680332d,0x1a4bfdf4,0xdcd1bc96,0x706f6566,0x779ff428,0xf059987a,0x8bbee998,0xcc686de7,0xf6ce8cf2,0x953cfdb2,0xf8ad3c4a,0x2205da36,0xd1d426d9 +.long 0xc781a241,0xb3c0f13f,0xd75362a8,0x3e89360e,0xc8a91184,0xccd05863,0xefa8a7f4,0x9bd0c9b7,0x8a912a4b,0x97ee4d53,0xbcf518fd,0xde5e15f8,0xc467e1e0,0x6a055bf8,0x1587e256,0x10be4b4b +.long 0x668621c9,0xd90c14f2,0xab9c92c1,0xd5518f51,0xd6d47b3c,0x8e6a0100,0x66716175,0xcbe980dd,0xddd83683,0x500d3f10,0x99cac73c,0x3b6cb35d,0x6083d550,0x53730c8b,0xdf0a1987,0xcf159767 +.long 0x43ad73b3,0x84bfcf53,0x4f035a94,0x1b528c20,0x33eeac69,0x4294edf7,0x817f3240,0xb6283e83,0x0a5f25b1,0xc3fdc959,0x5844ee22,0xefaf8aa5,0xdbdde4de,0xde269ba5,0xc56133bf,0xe3347160 +.long 0x8d9ea9f8,0xc1184219,0xf3fc1ab5,0x090de5db,0x0bf22cda,0x404c37b1,0xf5618894,0x7de20ec8,0xecdaecab,0x754c588e,0x88342743,0x6ca4b0ed,0xf4a938ec,0x76f08bdd,0x91493ccb,0xd182de89 +.long 0xc8a4186a,0xd652c53e,0x946d8e33,0xb3e878db,0x5f37663c,0x088453c0,0xb407748b,0x5cd9daaa,0x586d5e72,0xa1f5197f,0xc443ca59,0x47500be8,0xe2652424,0x78ef35b2,0x6dd7767d,0x09c5d26f +.long 0xa74d3f7b,0x7175a79a,0xcf5ea459,0x0428fd8d,0xa5d1746d,0x511cb97c,0xe71d1278,0x36363939,0x10350bf4,0xcf2df955,0x60aae782,0xb3817439,0x3e688809,0xa748c0e4,0xd7a5a006,0x98021fbf +.long 0x0e367a98,0x9076a70c,0x0f62b7c2,0xbea1bc15,0x30fe0343,0x2645a68c,0x699dc14f,0xacaffa78,0x457bf9c4,0xf4469964,0x0d2ead83,0x0db6407b,0xb2c6f3eb,0x68d56cad,0xf376356c,0x3b512e73 +.long 0xfce10408,0xe43b0e1f,0x5a5e257d,0x89ddc003,0x0362e5b3,0xb0ae0d12,0xb0519161,0x07f983c7,0x5d5231e7,0xc2e94d15,0x0b4f9513,0xcff22aed,0x6ad0b0b5,0xb02588dd,0x11d0dcd5,0xb967d1ac +.long 0xcf777b6c,0x8dac6bc6,0x4c6d1959,0x0062bdbd,0x0ef5cc85,0x53da71b5,0x4006f14f,0x07012c7d,0xac47800d,0x4617f962,0xc102ed75,0x53365f2b,0x4ab8c9d3,0xb422efcb,0x34af31c9,0x195cb26b +.long 0x05f2c4ce,0x3a926e29,0x9856966c,0xbd2bdecb,0x85527015,0x5d16ab3a,0x4486c231,0x9f81609e,0xda350002,0xd8b96b2c,0xfa1b7d36,0xbd054690,0xe71d79bc,0xdc90ebf5,0x08964e4e,0xf241b6f9 +.long 0x2fe3cd4c,0x7c838643,0xb4bc633c,0xe0f33acb,0x3d139f1f,0xb4a9ecec,0xdc4a1f49,0x05ce69cd,0xf5f98aaf,0xa19d1b16,0x6f23e0ef,0x45bb71d6,0x46cdfdd3,0x33789fcd,0xcee040ca,0x9b8e2978 +.long 0xae0a6828,0x9c69b246,0x7078d5aa,0xba533d24,0x7bb4fbdb,0x7a2e42c0,0x7035385c,0xcfb4879a,0x3281705b,0x8c3dd30b,0x404fe081,0x7e361c6c,0x3f604edf,0x7b21649c,0xe52ffe47,0x5dbf6a3f +.long 0x4b54d9bf,0xc41b7c23,0x3511c3d9,0x1374e681,0xc1b2b758,0x1863bf16,0x1e9e6a96,0x90e78507,0x5d86f174,0xab4bf98d,0x85e96fe4,0xd74e0bd3,0xcac5d344,0x8afde39f,0xbd91b847,0x90946dbc +.long 0xfe1a838c,0xf5b42358,0x620ac9d8,0x05aae6c5,0xa1ce5a0b,0x8e193bd8,0x4dabfd72,0x8f710571,0x182caaac,0x8d8fdd48,0x040745cf,0x8c4aeefa,0xf3b93e6d,0x73c6c30a,0x16f42011,0x991241f3 +.long 0xe457a477,0xa0158eea,0xee6ddc05,0xd19857db,0x18c41671,0xb3265224,0x3c2c0d58,0x3ffdfc7e,0x26ee7cda,0x3a3a5254,0xdf02c3a8,0x341b0869,0x723bbfc8,0xa023bf42,0x14452691,0x3d15002a +.long 0x85edfa30,0x5ef7324c,0x87d4f3da,0x25976554,0xdcb50c86,0x352f5bc0,0x4832a96c,0x8f6927b0,0x55f2f94c,0xd08ee1ba,0x344b45fa,0x6a996f99,0xa8aa455d,0xe133cb8d,0x758dc1f7,0x5d0721ec +.long 0x79e5fb67,0x6ba7a920,0x70aa725e,0xe1331feb,0x7df5d837,0x5080ccf5,0x7ff72e21,0xe4cae01d,0x0412a77d,0xd9243ee6,0xdf449025,0x06ff7cac,0x23ef5a31,0xbe75f7cd,0x0ddef7a8,0xbc957822 +.long 0xb0ce1c55,0x8cf7230c,0x0bbfb607,0x5b534d05,0x0e16363b,0xee1ef113,0xb4999e82,0x27e0aa7a,0x79362c41,0xce1dac2d,0x91bb6cb0,0x67920c90,0x2223df24,0x1e648d63,0xe32e8f28,0x0f7d9eef +.long 0xfa833834,0x6943f39a,0xa6328562,0x22951722,0x4170fc10,0x81d63dd5,0xaecc2e6d,0x9f5fa58f,0xe77d9a3b,0xb66c8725,0x6384ebe0,0x11235cea,0x5845e24a,0x06a8c118,0xebd093b1,0x0137b286 +.long 0x44ace150,0xc589e1ce,0x4381e97c,0xe0f8d3d9,0x62c5a4b8,0x59e99b11,0xfd0ec9f9,0x90d262f7,0x283e13c9,0xfbc854c9,0xaedc7085,0x2d04fde7,0x47dcbecb,0x057d7765,0x9a76fa5f,0x8dbdf591 +.long 0x0de1e578,0xd0150695,0xe9f72bc6,0x2e1463e7,0x1b39eca5,0xffa68441,0x7c037f2f,0x673c8530,0x747f91da,0xd0d6a600,0xc9cb78e9,0xb08d43e1,0x27b5cef5,0x0fc0c644,0xa60a2fd6,0x5c1d160a +.long 0x28c8e13b,0xf98cae53,0xb2eddcd1,0x375f10c4,0x5cce06ad,0xd4eb8b7f,0x80a2e1ef,0xb4669f45,0x5bbd8699,0xd593f9d0,0xe7976d13,0x5528a4c9,0x1c7e28d3,0x3923e095,0x3f6bb577,0xb9293790 +.long 0xc42bd6d2,0xdb567d6a,0xbb1f96ae,0x6df86468,0x4843b28e,0x0efe5b1a,0x6379b240,0x961bbb05,0x70a6a26b,0xb6caf5f0,0x328e6e39,0x70686c0d,0x895fc8d3,0x80da06cf,0xb363fdc9,0x804d8810 +.long 0x207f1670,0xbe22877b,0x4e615291,0x9b0dd188,0x97a3c2bf,0x625ae8dc,0x439b86e8,0x08584ef7,0xdcd898ff,0xde7190a5,0x2058ee3d,0x26286c40,0x5f87b1c1,0x3db0b217,0x102a6db5,0xcc334771 +.long 0x2f770fb1,0xd99de954,0x4cd7535e,0x97c1c620,0x3f09cefc,0xd3b6c448,0x5a63b4f8,0xd725af15,0xc01e20ec,0x0c95d24f,0x9ae7121f,0xdfd37494,0xec77b7ec,0x7d6ddb72,0x0353a4ae,0xfe079d3b +.long 0x2e6ac8d2,0x3066e70a,0x106e5c05,0x9c6b5a43,0xede59b8c,0x52d3c6f5,0xfccec9ae,0x30d6a5c3,0x4fc0a9ef,0xedec7c22,0x95c16ced,0x190ff083,0x94de0fde,0xbe12ec8f,0x852d3433,0x0d131ab8 +.long 0x85701291,0x42ace07e,0x194061a8,0x94793ed9,0xd7f4a485,0x30e83ed6,0xf9eeff4d,0x9eec7269,0x0c9d8005,0x90acba59,0x1e79b9d1,0x5feca458,0x1d506a1e,0x8fbe5427,0x2439cfa7,0xa32b2c8e +.long 0x73dd0b4e,0x1671c173,0x44a054c6,0x37a28214,0x4e8b53f1,0x81760a1b,0xf9f93b9e,0xa6c04224,0xcf671e3c,0x18784b34,0xcda9b994,0x81bbecd2,0xb2ab3848,0x38831979,0xf2e03c2d,0xef54feb7 +.long 0xfb8088fa,0xcf197ca7,0x4ddc96c5,0x01427247,0x30777176,0xa2d2550a,0x4d0cf71d,0x53469898,0x3a2aaac6,0x6ce937b8,0x5af38d9b,0xe9f91dc3,0xc8bf2899,0x2598ad83,0xb5536c16,0x8e706ac9 +.long 0xf688dc98,0x40dc7495,0x124c4afc,0x26490cd7,0x1f18775c,0xe651ec84,0xb4fdaf4a,0x393ea6c3,0x7f338e0d,0x1e1f3343,0x6053e7b5,0x39fb832b,0x619e14d5,0x46e702da,0xcdeef6e0,0x859cacd1 +.long 0x4462007d,0x63b99ce7,0x4cb5f5b7,0xb8ab48a5,0xf55edde7,0x9ec673d2,0x8cfaefda,0xd1567f74,0x0887bcec,0x46381b6b,0xe178f3c2,0x694497ce,0x1e6266cb,0x5e6525e3,0x697d6413,0x5931de26 +.long 0x0e58d493,0x87f8df7c,0x58b73f12,0xb1ae5ed0,0xdea0c34d,0xc368f784,0x859a91a0,0x9bd0a120,0xcc863c68,0xb00d88b7,0x3d1f4d65,0x3a1cc11e,0x0aa85593,0xea38e0e7,0x7dc4aee8,0x37f13e98 +.long 0xbc947bad,0x10d38667,0x2a36ee2e,0x738e07ce,0xc577fcac,0xc93470cd,0x2782470d,0xdee1b616,0x2e793d12,0x36a25e67,0xe0f186da,0xd6aa6cae,0x80e07af7,0x474d0fd9,0xba8a5cd4,0xf7cdc47d +.long 0xab15247f,0x28af6d9d,0x493a537f,0x7c789c10,0x23a334e7,0x7ac9b110,0x12c9c277,0x0236ac09,0x1d7a5144,0xa7e5bd25,0xf13ec4ec,0x098b9c2a,0xd3f0abca,0x3639daca,0xa23960f9,0x642da81a +.long 0x4f7269b1,0x7d2e5c05,0xe287c385,0xfcf30777,0xf2a46f21,0x10edc84f,0x4f43fa36,0x35441757,0xfd703431,0xf1327899,0x16dd587a,0xa438d7a6,0xe9c8352d,0x65c34c57,0x5cc5a24e,0xa728edab +.long 0x42531689,0xaed78abc,0x010963ef,0x0a51a0e8,0xd717d9b3,0x5776fa0a,0x7dd3428b,0xf356c239,0x8d3a3dac,0x29903fff,0x3d94491f,0x409597fa,0xbf4a56a4,0x4cd7a5ff,0x8adab462,0xe5096474 +.long 0x5c3427b0,0xa97b5126,0xd282c9bd,0x6401405c,0x222c5c45,0x3629f8d7,0xe8d50aed,0xb1c02c16,0xd9635bc9,0xbea2ed75,0x6e24552f,0x226790c7,0x65f1d066,0x3c33f2a3,0x6dfccc2e,0x2a43463e +.long 0xdb483761,0x8cc3453a,0x65d5672b,0xe7cc6085,0xde3efc87,0x277ed6cb,0x69234eaf,0x19f2f368,0x5c0b800b,0x9aaf4317,0x8b6da6e2,0x1f1e7c89,0xb94ec75e,0x6cfb4715,0x453118c2,0xd590dd5f +.long 0x1f17a34c,0x14e49da1,0x235a1456,0x5420ab39,0x2f50363b,0xb7637241,0xc3fabb6e,0x7b15d623,0xe274e49c,0xa0ef40b1,0x96b1860a,0x5cf50744,0x66afe5a4,0xd6583fbf,0xf47e3e9a,0x44240510 +.long 0x11b2d595,0x99254343,0xeec8df57,0xf1367499,0x3e73dd05,0x3cb12c61,0x7dac102a,0xd248c033,0xa77739f5,0xcf154f13,0x23d2af42,0xbf4288cb,0x32e4a1cf,0xaa64c9b6,0xc8a208f3,0xee8c07a8 +.long 0x6fe8393f,0xe10d4999,0xe91f3a32,0x0f809a3f,0x802f63c8,0x61096d1c,0x57750d3d,0x289e1462,0x9889feea,0xed06167e,0xe0993909,0xd5c9c0e2,0x56508ac6,0x46fca0d8,0x4f1b8e83,0x91826047 +.long 0x9a4a2751,0x4f2c877a,0xcae6fead,0x71bd0072,0x06aa1941,0x38df8dcc,0x63beeaa8,0x5a074b4c,0xc1cec8ed,0xd6d65934,0xaabc03bd,0xa6ecb49e,0xde8a8415,0xaade91c2,0x691136e0,0xcfb0efdf +.long 0x23ab3495,0x11af45ee,0x0b77463d,0xa132df88,0x815d06f4,0x8923c15c,0x0d61a436,0xc3ceb3f5,0xe88fb1da,0xaf52291d,0x1da12179,0xea057974,0xd2fef720,0xb0d7218c,0x8e1d8845,0x6c0899c9 +.long 0x752ddad7,0x98157504,0xa1a68a97,0xd60bd74f,0xf658fb99,0x7047a3a9,0x5f8511e4,0x1f5d86d6,0x4b5a6d88,0xb8a4bc42,0x1abefa7d,0x69eb2c33,0x13c9c510,0x95bf39e8,0xd48aab43,0xf571960a +.long 0x704e23c6,0x7e8cfbcf,0x28aaa65b,0xc71b7d22,0x245e3c83,0xa041b2bd,0xd21854ff,0x69b98834,0x963bfeec,0x89d227a3,0xde7da7cb,0x99947aaa,0xee68a9b1,0x1d9ee9db,0x698ec368,0x0a08f003 +.long 0x78ef2487,0xe9ea4094,0x02cfec26,0xc8d2d415,0xb7dcf328,0xc52f9a6e,0x85b6a937,0x0ed489e3,0xbef3366e,0x9b94986b,0xedddddb8,0x0de59c70,0xeadddbe2,0xffdb748c,0x8266ea40,0x9b9784bb +.long 0x1a93507a,0x142b5502,0x8d3c06cf,0xb4cd1187,0x91ec3f40,0xdf70e76a,0x4e7553c2,0x484e81ad,0x272e9d6e,0x830f87b5,0xc6ff514a,0xea1c93e5,0xc4192a8e,0x67cc2adc,0x42f4535a,0xc77e27e2 +.long 0xd2b713c5,0x9cdbab36,0xcf7b0cd3,0x86274ea0,0x09af826b,0x784680f3,0x0c72dea3,0xbfcc837a,0xd6529b73,0xa8bdfe9d,0x63a88002,0x708aa228,0xc91d45b9,0x6c7a9a54,0xfd004f56,0xdf1a38bb +.long 0xb8bad853,0x2e8c9a26,0x3723eae7,0x2d52cea3,0x56ca2830,0x054d6d81,0x9a8dc411,0xa3317d14,0xfd4ddeda,0xa08662fe,0xb55d792b,0xed2a153a,0xbfc6e944,0x7035c16a,0x00171cf3,0xb6bc5834 +.long 0x83d102b6,0xe27152b3,0x0646b848,0xfe695a47,0x916e6d37,0xa5bb09d8,0x0d17015e,0xb4269d64,0x0a1d2285,0x8d8156a1,0x46d26d72,0xfeef6c51,0x4c5434a7,0x9dac57c8,0x59d39e31,0x0282e5be +.long 0x721c486d,0xedfff181,0xbc58824e,0x301baf10,0x00570031,0x8136a6aa,0x1cddde68,0x55aaf78c,0x59c63952,0x26829371,0x8bc25baf,0x3a3bd274,0xb7e52dc3,0xecdf8657,0xfd78e6c8,0x2dd8c087 +.long 0xf5531461,0x20553274,0x5d95499b,0x8b4a1281,0x1a80f9d2,0xe2c8763a,0x4ddec758,0xd1dbe32b,0x30c34169,0xaf12210d,0x78baa533,0xba74a953,0xa438f254,0x3d133c6e,0x201bef5b,0xa431531a +.long 0xf669d7ec,0x15295e22,0x357fb515,0xca374f64,0xeaa3fdb3,0x8a8406ff,0xdf3f2da8,0x106ae448,0x33c8e9a1,0x8f9b0a90,0x71ad5885,0x234645e2,0x1c0aed14,0x3d083224,0x7a942d46,0xf10a7d3e +.long 0x40d5c9be,0x7c11deee,0xba84ed98,0xb2bae7ff,0xaad58ddd,0x93e97139,0x3f6d1fa3,0x3d872796,0x8569ff13,0x483aca81,0x9a600f72,0x8b89a5fb,0xc06f2b86,0x4cbc27c3,0x63ad9c0b,0x22130713 +.long 0x48ac2840,0xb5358b1e,0xecba9477,0x18311294,0xa6946b43,0xda58f990,0x9ab41819,0x3098baf9,0x4198da52,0x66c4c158,0x146bfd1b,0xab4fc17c,0xbf36a908,0x2f0a4c3c,0x58cf7838,0x2ae9e34b +.long 0x3fa11b1f,0xf411529e,0x974af2b4,0x21e43677,0xc230793b,0x7c20958e,0x16e840f3,0x710ea885,0xc5dc67cf,0xfc0b21fc,0x88405718,0x08d51647,0xcfe49eb7,0xd955c21f,0x56dd4a1f,0x9722a5d5 +.long 0xc861baa5,0xc9ef50e2,0x9505ac3e,0xc0c21a5d,0x8b7c063f,0xaf6b9a33,0x2f4779c1,0xc6370339,0x638167c3,0x22df99c7,0x795db30c,0xfe6ffe76,0xa4854989,0x2b822d33,0x30563aa5,0xfef031dd +.long 0xd57c667f,0x16b09f82,0xcc0b76f1,0xc70312ce,0xc9118aec,0xbf04a9e6,0x3409d133,0x82fcb419,0xab45d44d,0x1a8ab385,0x617b83a3,0xfba07222,0x58e81b52,0xb05f50dd,0x21ce5aff,0x1d8db553 +.long 0xe344a873,0x3097b8d4,0xfe36d53e,0x7d8d116d,0x7875e750,0x6db22f58,0x43e144ea,0x2dc5e373,0xe799eb95,0xc05f32e6,0x6899e6ec,0xe9e5f4df,0x1fab23d5,0xbdc3bd68,0x73af60e6,0xb72b8ab7 +.long 0x2cecc84a,0x8db27ae0,0x7bdb871c,0x600016d8,0xd7c46f58,0x42a44b13,0xc3a77d39,0xb8919727,0xdafd6088,0xcfc6bbbd,0x6bd20d39,0x1a740146,0x98c41072,0x8c747abd,0xbdf68ea1,0x4c91e765 +.long 0x08819a78,0x7c95e5ca,0xc9587921,0xcf48b729,0xdebbcc7d,0x091c7c5f,0xf0e05149,0x6f287404,0x26cd44ec,0xf83b5ac2,0xcfea250e,0x88ae32a6,0x1d06ebc5,0x6ac5047a,0xd434f781,0xc7e550b4 +.long 0x5c727bd2,0x61ab1cf2,0x1cf915b0,0x2e4badb1,0xf69d3920,0x1b4dadec,0xf14c1dfe,0xe61b1ca6,0xbd6bd51f,0x90b479cc,0x8045ec30,0x8024e401,0x25ef0e62,0xcab29ca3,0x49e4ebc0,0x4f2e9416 +.long 0x0ccced58,0x45eb40ec,0x0da44f98,0x25cd4b9c,0x871812c6,0x43e06458,0x16cef651,0x99f80d55,0xce6dc153,0x571340c9,0xd8665521,0x138d5117,0x4e07014d,0xacdb45bc,0x84b60b91,0x2f34bb38 +.long 0x2ae8921e,0xf44a4fd2,0x892ba1e2,0xb039288e,0xb1c180b2,0x9da50174,0x1693dc87,0x6b70ab66,0xe7057481,0x7e9babc9,0x9c80dc41,0x4581ddef,0x51294682,0x0c890da9,0x3f4736e5,0x0b5629d3 +.long 0xb06f5b41,0x2340c79e,0x4e243469,0xa42e84ce,0x045a71a9,0xf9a20135,0xd27b6fb6,0xefbfb415,0x9d33cd6f,0x25ebea23,0xaa6c0af8,0x9caedb88,0xd9ce6f96,0x53dc7e9a,0x51e0b15a,0x3897f9fd +.long 0x8e5d788e,0xf51cb1f8,0xe1d490ee,0x1aec7ba8,0xcc58cb3c,0x265991e0,0x9fc3ad31,0x9f306e8c,0x5040a0ac,0x5fed006e,0xfb476f2e,0xca9d5043,0xbeea7a23,0xa19c06e8,0x0edabb63,0xd2865801 +.long 0x6967469a,0xdb92293f,0x8d8a8ed8,0x2894d839,0xbbc77122,0x87c9e406,0x2ea3a26a,0x8671c6f1,0xd7de9853,0xe42df8d6,0xb1f2bcc7,0x2e3ce346,0x899d50cf,0xda601dfc,0xfb1b598f,0xbfc913de +.long 0xe61f7908,0x81c4909f,0x9bbc7b29,0x192e304f,0xc104b338,0xc3ed8738,0x783f5d61,0xedbe9e47,0x2db30660,0x0c06e9be,0xc0eb7d8e,0xda3e613f,0x322e096e,0xd8fa3e97,0xd336e247,0xfebd91e8 +.long 0xdf655a49,0x8f13ccc4,0x5eb20210,0xa9e00dfc,0xc656b6ea,0x84631d0f,0xd8c0d947,0x93a058cd,0x67bd3448,0x6846904a,0xf394fd5c,0x4a3d4e1a,0xdb225f52,0xc102c1a5,0xfc4f5e9a,0xe3455bba +.long 0x4b9ad1ce,0x6b36985b,0x5bb7f793,0xa9818536,0x48b1a416,0x6c25e1d0,0x3c81bee7,0x1381dd53,0x7a4a7620,0xd2a30d61,0x39b8944c,0xc8412926,0x7a97c33a,0x3c1c6fbe,0x938664e7,0x941e541d +.long 0x4a34f239,0x417499e8,0xb90402d5,0x15fdb83c,0x433aa832,0xb75f46bf,0x63215db1,0xb61e15af,0xa127f89a,0xaabe59d4,0x07e816da,0x5d541e0c,0xa618b692,0xaaba0659,0x17266026,0x55327733 +.long 0x95f57552,0xaf53a0fc,0x6cacb0c9,0x32947650,0xc821be01,0x253ff58d,0xa06f1146,0xb0309531,0x05c2e54d,0x59bbbdf5,0x26e8dd22,0x158f27ad,0x397e1e53,0xcc5b7ffb,0x7fc1e50d,0xae03f65b +.long 0x9c95f0f9,0xa9784ebd,0x24640771,0x5ed9deb2,0x035561c4,0x31244af7,0x7ee857de,0x87332f3a,0x2b9e0d88,0x09e16e9e,0x56a06049,0x52d910f4,0xa9592f48,0x507ed477,0x2365d678,0x85cb917b +.long 0x4c8998d1,0xf8511c93,0x730ea58f,0x2186a3f1,0xb2029db0,0x50189626,0x02ceb75a,0x9137a6d9,0x748bc82c,0x2fe17f37,0x80469f8c,0x87c2e931,0xbf891aa2,0x850f71cd,0x75ec3d8d,0x0ca1b89b +.long 0x5e1cd3cd,0x516c43aa,0x9a887c28,0x89397808,0xddea1f9f,0x0059c699,0x8e6868f7,0x7737d6fa,0x60f1524b,0x6d93746a,0xba052aa7,0x36985e55,0xed923ea5,0x41b1d322,0x25852a11,0x3429759f +.long 0x092e9f41,0xbeca6ec3,0x62256bbd,0x3a238c66,0x70ad487d,0xd82958ea,0x65610d93,0x4ac8aaf9,0x5e4ccab0,0x3fa101b1,0x9de14bfb,0x9bf430f2,0x6531899d,0xa10f5cc6,0xea8ce17d,0x590005fb +.long 0x24544cb6,0xc437912f,0xd79ac2e3,0x9987b71a,0xc058a212,0x13e3d9dd,0xd2de9606,0x00075aac,0x6cac8369,0x80ab508b,0xf54f6c89,0x87842be7,0x6bc532a4,0xa7ad663d,0x78a91bc8,0x67813de7 +.long 0xc3427239,0x5dcb61ce,0xc56934d9,0x5f3c7cf0,0xe3191591,0xc079e0fb,0xb01aada7,0xe40896bd,0x0492d25f,0x8d466791,0xe7408276,0x8aeb30c9,0x9287aacc,0xe9437495,0x79fe03d4,0x23d4708d +.long 0xd0c05199,0x8cda9cf2,0xfae78454,0x502fbc22,0xf572a182,0xc0bda9df,0x6158b372,0x5f9b71b8,0x2b82dd07,0xe0f33a59,0x9523032e,0x76302735,0xc4505a32,0x7fe1a721,0xf796409f,0x7b6e3e82 +.long 0x35d0b34a,0xe3417bc0,0x8327c0a7,0x440b386b,0xac0362d1,0x8fb7262d,0xe0cdf943,0x2c41114c,0xad95a0b1,0x2ba5cef1,0x67d54362,0xc09b37a8,0x01e486c9,0x26d6cdd2,0x42ff9297,0x20477abf +.long 0x292a9287,0xa004dcb3,0x77b092c7,0xddc15cf6,0x806c0605,0x083a8464,0x3db997b0,0x4a68df70,0x05bf7dd0,0x9c134e45,0x8ccf7f8c,0xa4e63d39,0x41b5f8af,0xa6e6517f,0xad7bc1cc,0xaa8b9342 +.long 0x1e706ad9,0x126f35b5,0xc3a9ebdf,0xb99cebb4,0xbf608d90,0xa75389af,0xc6c89858,0x76113c4f,0x97e2b5aa,0x80de8eb0,0x63b91304,0x7e1022cc,0x6ccc066c,0x3bdab605,0xb2edf900,0x33cbb144 +.long 0x7af715d2,0xc4176471,0xd0134a96,0xe2f7f594,0xa41ec956,0x2c1873ef,0x77821304,0xe4e7b4f6,0x88d5374a,0xe5c8ff97,0x80823d5b,0x2b915e63,0xb2ee8fe2,0xea6bc755,0xe7112651,0x6657624c +.long 0xdace5aca,0x157af101,0x11a6a267,0xc4fdbcf2,0xc49c8609,0xdaddf340,0xe9604a65,0x97e49f52,0x937e2ad5,0x9be8e790,0x326e17f1,0x846e2508,0x0bbbc0dc,0x3f38007a,0xb11e16d6,0xcf03603f +.long 0x7442f1d5,0xd6f800e0,0x66e0e3ab,0x475607d1,0xb7c64047,0x82807f16,0xa749883d,0x8858e1e3,0x8231ee10,0x5859120b,0x638a1ece,0x1b80e7eb,0xc6aa73a4,0xcb72525a,0x844423ac,0xa7cdea3d +.long 0xf8ae7c38,0x5ed0c007,0x3d740192,0x6db07a5c,0x5fe36db3,0xbe5e9c2a,0x76e95046,0xd5b9d57a,0x8eba20f2,0x54ac32e7,0x71b9a352,0xef11ca8f,0xff98a658,0x305e373e,0x823eb667,0xffe5a100 +.long 0xe51732d2,0x57477b11,0x2538fc0e,0xdfd6eb28,0x3b39eec5,0x5c43b0cc,0xcb36cc57,0x6af12778,0x06c425ae,0x70b0852d,0x5c221b9b,0x6df92f8c,0xce826d9c,0x6c8d4f9e,0xb49359c3,0xf59aba7b +.long 0xda64309d,0x5c8ed8d5,0x91b30704,0x61a6de56,0x2f9b5808,0xd6b52f6a,0x98c958a7,0x0eee4194,0x771e4caa,0xcddd9aab,0x78bc21be,0x83965dfd,0xb3b504f5,0x02affce3,0x561c8291,0x30847a21 +.long 0x52bfda05,0xd2eb2cf1,0x6197b98c,0xe0e4c4e9,0xf8a1726f,0x1d35076c,0x2db11e3d,0x6c06085b,0x4463ba14,0x15c0c4d7,0x0030238c,0x9d292f83,0x3727536d,0x1311ee8b,0xbeaedc1e,0xfeea86ef +.long 0x66131e2e,0xb9d18cd3,0x80fe2682,0xf31d974f,0xe4160289,0xb6e49e0f,0x08e92799,0x7c48ec0b,0xd1989aa7,0x818111d8,0xebf926f9,0xb34fa0aa,0xa245474a,0xdb5fe2f5,0x3c7ca756,0xf80a6ebb +.long 0xafa05dd8,0xa7f96054,0xfcaf119e,0x26dfcf21,0x0564bb59,0xe20ef2e3,0x61cb02b8,0xef4dca50,0x65d30672,0xcda7838a,0xfd657e86,0x8b08d534,0x46d595c8,0x4c5b4395,0x425cb836,0x39b58725 +.long 0x3de9abe3,0x8ea61059,0x9cdc03be,0x40434881,0xcfedce8c,0x9b261245,0xcf5234a1,0x78c318b4,0xfde24c99,0x510bcf16,0xa2c2ff5d,0x2a77cb75,0x27960fb4,0x9c895c2b,0xb0eda42b,0xd30ce975 +.long 0x1a62cc26,0xfda85393,0x50c0e052,0x23c69b96,0xbfc633f3,0xa227df15,0x1bae7d48,0x2ac78848,0x187d073d,0x487878f9,0x967f807d,0x6c2be919,0x336e6d8f,0x765861d8,0xce528a43,0x88b8974c +.long 0xff57d051,0x09521177,0xfb6a1961,0x2ff38037,0xa3d76ad4,0xfc0aba74,0x25a7ec17,0x7c764803,0x48879bc8,0x7532d75f,0x58ce6bc1,0xea7eacc0,0x8e896c16,0xc82176b4,0x2c750fed,0x9a30e0b2 +.long 0x421d3aa4,0xc37e2c2e,0xe84fa840,0xf926407c,0x1454e41c,0x18abc03d,0x3f7af644,0x26605ecd,0xd6a5eabf,0x242341a6,0x216b668e,0x1edb84f4,0x04010102,0xd836edb8,0x945e1d8c,0x5b337ce7 +.long 0xc055dc14,0xd2075c77,0x81d89cdf,0x2a0ffa25,0x6ffdcbaf,0x8ce815ea,0xfb648867,0xa3428878,0x884655fb,0x277699cf,0x364d3e41,0xfa5b5bd6,0x441e1cb7,0x01f680c6,0xb70a7d67,0x3fd61e66 +.long 0xcc78cf66,0x666ba2dc,0x6fdbff77,0xb3018174,0x168d4668,0x8d4dd0db,0x1dab3a2a,0x259455d0,0xcde3acec,0xf58564c5,0x13adb276,0x77141925,0x8a303f65,0x527d725d,0xe6f38f7b,0x55deb6c9 +.long 0xb1fa70fb,0xfd5bb657,0xd8073a00,0xfa07f50f,0xbca02500,0xf72e3aa7,0x9975740d,0xf68f895d,0x5cae2a6a,0x30112060,0x02874842,0x01bd7218,0x7ce47bd3,0x3d423891,0x789544f6,0xa66663c1 +.long 0x3272d838,0x864d05d7,0xfa6295c5,0xe22924f9,0x6c2fda32,0x8189593f,0xb184b544,0x330d7189,0xbde1f714,0x79efa62c,0xe5cb1a63,0x35771c94,0x641c8332,0x2f4826b8,0xc8cee854,0x00a894fb +.long 0x36194d40,0xb4b9a39b,0x77612601,0xe857a7c5,0x4ecf2f58,0xf4209dd2,0x5a033487,0x82b9e66d,0xe4e8b9dd,0xc1e36934,0xa42377d7,0xd2372c9d,0x0e3ae43b,0x51dc94c7,0x04474f6f,0x4c57761e +.long 0x1058a318,0xdcdacd0a,0x78053a9a,0x369cf3f5,0x31c68de2,0xc6c3de50,0x3c4b6d9f,0x4653a576,0xaa4e5c97,0x1688dd5a,0xb7ab3c74,0x5be80aa1,0xbc65c283,0x70cefe7c,0x06867091,0x57f95f13 +.long 0x4415503b,0xa39114e2,0x4cbb17e9,0xc08ff7c6,0xd7dec966,0x1eff674d,0x53376f63,0x6d4690af,0xea74237b,0xff6fe32e,0xcd57508e,0xc436d17e,0xedcc40fe,0x15aa28e1,0x581bbb44,0x0d769c04 +.long 0x34eaacda,0xc240b6de,0x2ba0f1de,0xd9e116e8,0x79438e55,0xcbe45ec7,0x96f752d7,0x91787c9d,0xf129ac2f,0x897f532b,0x5a36e22c,0xd307b7c8,0x749fb8f3,0x91940675,0x157fdb28,0xd14f95d0 +.long 0x6ae55043,0xfe51d029,0x44a87de1,0x8931e98f,0x09e4fee2,0xe57f1cc6,0x4e072d92,0x0d063b67,0xed0e4316,0x70a998b9,0x306aca46,0xe74a736b,0x4fda97c7,0xecf0fbf2,0x3e178d93,0xa40f65cb +.long 0x16df4285,0x16253604,0xd0c56ae2,0xb0c9babb,0xcfc5cfc3,0x73032b19,0x09752056,0xe497e5c3,0x164bda96,0x12096bb4,0xa0b74da1,0x1ee42419,0x403826ba,0x8fc36243,0xdc09e660,0x0c8f0069 +.long 0xc27253c9,0x8667e981,0x92b36a45,0x05a6aefb,0x9cb7bb46,0xa62c4b36,0x11f7027b,0x8394f375,0x5f109d0f,0x747bc79c,0x5b8cc60a,0xcad88a76,0x58f09e68,0x80c5a66b,0xf6127eac,0xe753d451 +.long 0x5b0ec6f5,0xc44b74a1,0x5289b2b8,0x47989fe4,0x58d6fc73,0x745f8484,0xf61c70ab,0xec362a6f,0xb3a8ad41,0x070c98a7,0x7b63db51,0x73a20fc0,0xf44c35f4,0xed2c2173,0x9acc9dca,0x8a56149d +.long 0x9ac6e0f4,0x98f17881,0xa413b5ed,0x360fdeaf,0xa300b0fd,0x0625b8f4,0x5b3222d3,0xf1f4d76a,0x587f76b8,0x9d6f5109,0x2317fdb5,0x8b4ee08d,0x8c68b095,0x88089bb7,0x5808d9b9,0x95570e9a +.long 0x35d33ae7,0xa395c36f,0x50bb5a94,0x200ea123,0x0bafe84b,0x20c789bd,0x0919276a,0x243ef52d,0xe23ae233,0x3934c577,0xa460d1ec,0xb93807af,0xf8fa76a4,0xb72a53b1,0xc3ca4491,0xd8914cb0 +.long 0x3fb42622,0x2e128494,0x500907d5,0x3b2700ac,0x1a95ec63,0xf370fb09,0x31b6dfbd,0xf8f30be2,0x69e55f15,0xf2b2f8d2,0xcc1323e9,0x1fead851,0xd9e5eef6,0xfa366010,0xe316107e,0x64d487b0 +.long 0xd23ddc82,0x4c076b86,0x7e0143f0,0x03fd344c,0x317af2c5,0xa95362ff,0xe18b7a4f,0x0add3db7,0x8260e01b,0x9c673e3f,0x54a1cc91,0xfbeb49e5,0x92f2e433,0x91351bf2,0x851141eb,0xc755e7ec +.long 0x29607745,0xc9a95139,0xa26f2b28,0x0ca07420,0x4bc6f9dd,0xcb2790e7,0xadcaffc0,0x345bbb58,0xbe0f27a2,0xc65ea38c,0x641fcb56,0x67c24d7c,0xa9e2c757,0x2c25f0a7,0x16f16c49,0x93f5cdb0 +.long 0xc5ee30a1,0x2ca5a9d7,0xb909b729,0xd1593635,0xdadeff48,0x804ce9f3,0xb07c30c3,0xec464751,0x9e49af6a,0x89d65ff3,0x6f3d01bc,0xf2d6238a,0x0bced843,0x1095561e,0xc8a13fd8,0x51789e12 +.long 0x763231df,0xd633f929,0xe7cbddef,0x46df9f7d,0xcb265da8,0x01c889c0,0xaf4336d2,0xfce1ad10,0xfc6a0a7e,0x8d110df6,0x6da425dc,0xdd431b98,0x1834aabe,0xcdc4aeab,0x8439b7fc,0x84deb124 +.long 0x3c2a5998,0x8796f169,0x7947190d,0x9b9247b4,0x11597014,0x55b9d9a5,0x7b1566ee,0x7e9dd70d,0xcbcd5e64,0x94ad78f7,0x9bd4c032,0x0359ac17,0x7cc222ae,0x3b11baaf,0xba78e812,0xa6a6e284 +.long 0x24cea1a0,0x8392053f,0x33621491,0xc97bce4a,0x35399ee9,0x7eb1db34,0xece81ad1,0x473f78ef,0xf63d3d0d,0x41d72fe0,0xafab62fc,0xe620b880,0x93158383,0x92096bc9,0x8f896f6c,0x41a21357 +.long 0xc7dcfcab,0x1b5ee2fa,0x9546e007,0x650acfde,0xb1b02e07,0xc081b749,0xf9eca03d,0xda9e41a0,0x175a54ab,0x013ba727,0xea5d8d10,0xca0cd190,0x95fd96a9,0x85ea52c0,0xbc5c3940,0x2c591b9f +.long 0x2bad4d5f,0x6fb4d4e4,0xfef0059b,0xfa4c3590,0xf5122294,0x6a10218a,0xa85751d1,0x9a78a81a,0xa98e84e7,0x04f20579,0x4997e5b5,0xfe1242c0,0xca21e1e4,0xe77a273b,0x9411939d,0xfcc8b1ef +.long 0x92d0487a,0xe20ea302,0x294b91fe,0x1442dbec,0xbb6b0e8f,0x1f7a4afe,0x6889c318,0x1700ef74,0x70f1fc62,0xf5bbffc3,0x69c79cca,0x3b31d4b6,0xa7f6340d,0xe8bc2aab,0xa725e10a,0xb0b08ab4 +.long 0xae340050,0x44f05701,0x1cf0c569,0xba4b3016,0xfbe19a51,0x5aa29f83,0xb71d752e,0x1b9ed428,0xeb4819f5,0x1666e54e,0x9e18b75b,0x616cdfed,0x3ee27b0b,0x112ed5be,0x44c7de4d,0xfbf28319 +.long 0xe0e60d84,0xd685ec85,0x1db7ee78,0x68037e30,0x003c4d6e,0x5b65bdcd,0x93e29a6a,0x33e7363a,0x08d0756c,0x995b3a61,0x2faf134b,0xd727f85c,0x1d337823,0xfac6edf7,0x0439b8b4,0x99b9aa50 +.long 0xe2b4e075,0x722eb104,0x437c4926,0x49987295,0x46a9b82d,0xb1e4c0e4,0x57a006f5,0xd0cb3197,0xd7808c56,0xf3de0f7d,0x51f89772,0xb5c54d8f,0xadbd31aa,0x500a114a,0x295f6cab,0x9afaaaa6 +.long 0x04cf667a,0x94705e21,0x9d3935d7,0xfc2a811b,0x6d09267c,0x560b0280,0xf780e53b,0xf19ed119,0x067b6269,0xf0227c09,0x5caef599,0x967b8533,0x68efeebc,0x155b9243,0xc497bae6,0xcd6d34f5 +.long 0x6cceb370,0x1dd8d5d3,0xa78d7bf9,0x2aeac579,0x70b67a62,0x5d65017d,0x17c53f67,0x70c8e44f,0x86a34d09,0xd1fc0950,0xe7134907,0xe0fca256,0x80fdd315,0xe24fa29c,0xd87499ad,0x2c4acd03 +.long 0x3b5a9ba6,0xbaaf7517,0x12e51a51,0xb9cbe1f6,0x5e154897,0xd88edae3,0x77b66ca0,0xe4309c3c,0xf67f3746,0xf5555805,0xa36401ff,0x85fc37ba,0xd9499a53,0xdf86e2ca,0xecbc955b,0x6270b2a3 +.long 0x974ad33b,0xafae64f5,0xfe7b2df1,0x04d85977,0x4ab03f73,0x2a3db3ff,0x8702740a,0x0b87878a,0x5a061732,0x6d263f01,0xa32a1901,0xc25430ce,0xdb155018,0xf7ebab3d,0x63a9b78e,0x3a86f693 +.long 0xda9f3804,0x349ae368,0xa164349c,0x470f07fe,0x8562baa5,0xd52f4cc9,0x2b290df3,0xc74a9e86,0x43471a24,0xd3a1aa35,0xb8194511,0x239446be,0x81dcd44d,0xbec2dd00,0xc42ac82d,0xca3d7f0f +.long 0xfdaf4520,0x1f3db085,0x4549daf2,0xbb6d3e80,0x19ad5c42,0xf5969d8a,0xdbfd1511,0x7052b13d,0x682b9060,0x11890d1b,0xac34452c,0xa71d3883,0x783805b4,0xa438055b,0x4725b23e,0x43241277 +.long 0x4901bbed,0xf20cf96e,0xf432a2bb,0x6419c710,0xdfa9cd7d,0x57a0fbb9,0x00daa249,0x589111e4,0x7b60554e,0x19809a33,0xede283a4,0xea5f8887,0x503bfd35,0x2d713802,0x585d2a53,0x151bb0af +.long 0x43b30ca8,0x40b08f74,0xd9934583,0xe10b5bba,0xb51110ad,0xe8a546d6,0x28e0b6c5,0x1dd50e66,0xcff2b821,0x292e9d54,0x47281760,0x3882555d,0x3724d6e3,0x134838f8,0x22ddcda1,0xf2c679e0 +.long 0x6d2a5768,0x40ee8815,0x1c1e7e2d,0x7f227bd2,0xd04ff443,0x487ba134,0xc614e54b,0x76e2ff3d,0xa3177ec7,0x36b88d6f,0x2328fff5,0xbf731d51,0x49ba158e,0x758caea2,0x02938188,0x5ab8ff4c +.long 0x35edc56d,0x33e16056,0x7e940d79,0x5a69d349,0x03866dcb,0x6c4fd001,0x4893cdef,0x20a38f57,0xfac3a15b,0xfbf3e790,0x7a4f8e6b,0x6ed7ea2e,0xbc3aca86,0xa663eb4f,0x080d53f7,0x22061ea5 +.long 0xf546783f,0x2480dfe6,0x5a0a641e,0xd38bc6da,0x2ede8965,0xfb093cd1,0xacb455cf,0x89654db4,0x26e1adee,0x413cbf9a,0x373294d4,0x291f3764,0x648083fe,0x00797257,0x208cc341,0x25f504d3 +.long 0xc3a0ee43,0x635a8e5e,0x679898ff,0x70aaebca,0x5dc63d56,0x9ee9f547,0xffb34d00,0xce987966,0x5e26310a,0xf9f86b19,0x382a8ca8,0x9e435484,0xc2352fe4,0x253bcb81,0x4474b571,0xa4eac8b0 +.long 0xc1ad8cf8,0xc1b97512,0x99e0b697,0x193b4e9e,0x01e85df0,0x939d2716,0xcd44eafd,0x4fb265b3,0xe51e1ae2,0x321e7dcd,0xe3d8b096,0x8e3a8ca6,0x52604998,0x8de46cb0,0x39072aa7,0x91099ad8 +.long 0x93aa96b8,0x2617f91c,0x7fca2e13,0x0fc8716b,0x95328723,0xa7106f5e,0x262e6522,0xd1c9c40b,0x42b7c094,0xb9bafe86,0x1543c021,0x1873439d,0x5cbefd5d,0xe1baa5de,0x521e8aff,0xa363fc5e +.long 0xf862eaac,0xefe6320d,0x22c647dc,0x14419c63,0x4e46d428,0x0e06707c,0x4a178f8f,0xcb6c834f,0xd30f917c,0x0f993a45,0x9879afee,0xd4c4b049,0x70500063,0xb6142a1e,0xa5d9d605,0x7c9b41c3 +.long 0x2f8ba2c7,0xbc00fc2f,0x7c67aa28,0x0966eb2f,0x5a786972,0x13f7b516,0x8a2fbba0,0x3bfb7557,0x5a2b9620,0x131c4f23,0x6faf46be,0xbff3ed27,0x7e172323,0x9b4473d1,0x339f6246,0x421e8878 +.long 0x25a41632,0x0fa8587a,0xa35b6c93,0xc0814124,0x59ebb8db,0x2b18a9f5,0x76edb29c,0x264e3357,0xc87c51e2,0xaf245ccd,0x501e6214,0x16b3015b,0x0a3882ce,0xbb31c560,0xfec11e04,0x6961bb94 +.long 0xeff7a3a0,0x3b825b8d,0xb1df7326,0xbec33738,0x99604a1f,0x68ad747c,0x9a3bd499,0xd154c934,0x1cc7a906,0xac33506f,0x6c560e8f,0x73bb5392,0x263e3944,0x6428fcbe,0x1c387434,0xc11828d5 +.long 0x3e4b12ff,0x3cd04be1,0x2d88667c,0xc3aad9f9,0x248120cf,0xc52ddcf8,0x2a389532,0x985a892e,0x3bb85fa0,0xfbb4b21b,0x8dfc6269,0xf95375e0,0x7ee2acea,0xfb4fb06c,0x309c4d1f,0x6785426e +.long 0xd8ceb147,0x659b17c8,0xb70a5554,0x9b649eee,0xac6bc634,0x6b7fa0b5,0x1d6e732f,0xd99fe2c7,0x8d3abba2,0x30e6e762,0xa797b799,0x18fee6e7,0xc696464d,0x5c9d360d,0x27bfde12,0xe3baeb48 +.long 0xf23206d5,0x2bf5db47,0x1d260152,0x2f6d3420,0x3f8ff89a,0x17b87653,0x378fa458,0x5157c30c,0x2d4fb936,0x7517c5c5,0xe6518cdc,0xef22f7ac,0xbf847a64,0xdeb483e6,0x92e0fa89,0xf5084558 +.long 0xdf7304d4,0xab9659d8,0xff210e8e,0xb71bcf1b,0xd73fbd60,0xa9a2438b,0x5d11b4de,0x4595cd1f,0x4835859d,0x9c0d329a,0x7dbb6e56,0x4a0f0d2d,0xdf928a4e,0xc6038e5e,0x8f5ad154,0xc9429621 +.long 0xf23f2d92,0x91213462,0x60b94078,0x6cab71bd,0x176cde20,0x6bdd0a63,0xee4d54bc,0x54c9b20c,0x9f2ac02f,0x3cd2d8aa,0x206eedb0,0x03f8e617,0x93086434,0xc7f68e16,0x92dd3db9,0x831469c5 +.long 0x8f981354,0x8521df24,0x3588a259,0x587e23ec,0xd7a0992c,0xcbedf281,0x38961407,0x06930a55,0xbe5bbe21,0x09320deb,0x2491817f,0xa7ffa5b5,0x09065160,0xe6c8b4d9,0xfff6d2a9,0xac4f3992 +.long 0x3ae9c1bd,0x7aa7a158,0xe37ce240,0xe0af6d98,0x28ab38b4,0xe54342d9,0x0a1c98ca,0xe8b75007,0xe02358f2,0xefce86af,0xea921228,0x31b8b856,0x0a1c67fc,0x052a1912,0xe3aead59,0xb4069ea4 +.long 0x7fa03cb3,0x3232d6e2,0x0fdd7d88,0xdb938e5b,0x2ccbfc5d,0x04c1d2cd,0xaf3a580f,0xd2f45c12,0x7883e614,0x592620b5,0xbe7c5f26,0x5fd27e68,0x1567e1e3,0x139e45a9,0x44d8aaaf,0x2cc71d2d +.long 0xe36d0757,0x4a9090cd,0xd9a29382,0xf722d7b1,0x04b48ddf,0xfb7fb04c,0xebe16f43,0x628ad2a7,0x20226040,0xcd3fbfb5,0x5104b6c4,0x6c34ecb1,0xc903c188,0x30c0754e,0x2d23cab0,0xec336b08 +.long 0x1e206ee5,0x473d62a2,0x8c49a633,0xf1e27480,0xe9f6b2c3,0x87ab956c,0x62b606ea,0x61830b48,0xe78e815f,0x67cd6846,0x4c02082a,0xfe40139f,0x952ec365,0x52bbbfcb,0x6b9836ab,0x74c11642 +.long 0x558df019,0x9f51439e,0xac712b27,0x230da4ba,0x55185a24,0x518919e3,0x84b78f50,0x4dcefcdd,0xa47d4c5a,0xa7d90fb2,0xb30e009e,0x55ac9abf,0x74eed273,0xfd2fc359,0xdbea8faf,0xb72d824c +.long 0x4513e2ca,0xce721a74,0x38240b2c,0x0b418612,0xd5baa450,0x05199968,0x2b0e8c25,0xeb1757ed,0x3dfac6d5,0x6ebc3e28,0x48a237f5,0xb2431e2e,0x52f61499,0x2acb5e23,0xe06c936b,0x5558a2a7 +.long 0xcbb13d1b,0xd213f923,0x5bfb9bfe,0x98799f42,0x701144a9,0x1ae8ddc9,0x4c5595ee,0x0b8b3bb6,0x3ecebb21,0x0ea9ef2e,0x3671f9a7,0x17cb6c4b,0x726f1d1f,0x47ef464f,0x6943a276,0x171b9484 +.long 0x7ef0329c,0x51a4ae2d,0x91c4402a,0x08509222,0xafd45bbc,0x64a61d35,0x3035a851,0x38f096fe,0xa1dec027,0xc7468b74,0x4fc7dcba,0xe8cf10e7,0xf4a06353,0xea35ff40,0x8b77dd66,0x0b4c0dfa +.long 0xde7e5c19,0x779b8552,0xc1c0256c,0xfab28609,0xabd4743d,0x64f58eee,0x7b6cc93b,0x4e8ef838,0x4cb1bf3d,0xee650d26,0x73dedf61,0x4c1f9d09,0xbfb70ced,0xaef7c9d7,0x1641de1e,0x1ec0507e +.long 0xcde45079,0xcd7e5cc7,0x516ac9e4,0xde173c9a,0xc170315c,0x517a8494,0x91d8e8fb,0x438fd905,0xc7d9630b,0x5145c506,0xf47d4d75,0x6457a87b,0x0d9a80e8,0xd31646bf,0xcef3aabe,0x453add2b +.long 0xa607419d,0xc9941109,0xbb6bca80,0xfaa71e62,0x07c431f3,0x34158c13,0x992bc47a,0x594abebc,0xeb78399f,0x6dfea691,0x3f42cba4,0x48aafb35,0x077c04f0,0xedcd65af,0xe884491a,0x1a29a366 +.long 0x1c21f2bf,0x023a40e5,0xa5057aee,0xf99a513c,0xbcab072e,0xa3fe7e25,0x40e32bcf,0x8568d2e1,0xd3f69d9f,0x904594eb,0x07affab1,0x181a9733,0xb6e330f4,0xe4d68d76,0xc75a7fc1,0x87a6dafb +.long 0xef7d9289,0x549db2b5,0x197f015a,0x2480d4a8,0xc40493b6,0x61d5590b,0x6f780331,0x3a55b52e,0x309eadb0,0x40eb8115,0x92e5c625,0xdea7de5a,0xcc6a3d5a,0x64d631f0,0x93e8dd61,0x9d5e9d7c +.long 0x206d3ffc,0xf297bef5,0x7d808bd4,0x23d5e033,0xd24cf5ba,0x4a4f6912,0x09cdaa8a,0xe4d8163b,0xd3082e8e,0x0e0de9ef,0x0192f360,0x4fe1246c,0x4b8eee0a,0x1f900150,0xf1da391b,0x5219da81 +.long 0xf7ea25aa,0x7bf6a5c1,0xfbb07d5f,0xd165e6bf,0x89e78671,0xe3539361,0x2bac4219,0xa3fcac89,0xf0baa8ab,0xdfab6fd4,0xe2c1c2e5,0x5a4adac1,0x40d85849,0x6cd75e31,0x19b39181,0xce263fea +.long 0x07032c72,0xcb6803d3,0x790968c8,0x7f40d5ce,0xdce978f0,0xa6de86bd,0x368f751c,0x25547c4f,0x65fb2a9e,0xb1e685fd,0x1eb9179c,0xce69336f,0x12504442,0xb15d1c27,0xb911a06b,0xb7df465c +.long 0x315980cd,0xb8d804a3,0xfa3bebf7,0x693bc492,0x2253c504,0x3578aeee,0xcd2474a2,0x158de498,0xcfda8368,0x1331f5c7,0x78d7177e,0xd2d7bbb3,0xf3c1e46e,0xdf61133a,0xd30e7be8,0x5836ce7d +.long 0x94f834cb,0x83084f19,0x429ed782,0xd35653d4,0x59e58243,0xa542f16f,0x0470a22d,0xc2b52f65,0x18f23d96,0xe3b6221b,0x3f5252b4,0xcb05abac,0x87d61402,0xca00938b,0x411933e4,0x2f186cdd +.long 0x9a29a5c5,0xe042ece5,0x3b6c8402,0xb19b3c07,0x19d92684,0xc97667c7,0xebc66372,0xb5624622,0x3c04fa02,0x0cb96e65,0x8eaa39aa,0x83a7176c,0xeaa1633f,0x2033561d,0x4533df73,0x45a9d086 +.long 0x3dc090bc,0xe0542c1d,0xaa59c167,0x82c996ef,0x0ee7fc4d,0xe3f735e8,0x7c35db79,0x7b179393,0xf8c5dbfd,0xb6419e25,0x1f327b04,0x4d9d7a1e,0x298dfca8,0x979f6f9b,0x8de9366a,0xc7c5dff1 +.long 0x04c82bdd,0x1b7a588d,0xf8319dfd,0x68005534,0xd8eb9580,0xde8a55b5,0x8d5bca81,0x5ea886da,0x252a0b4d,0xe8530a01,0x35eaa0a1,0x1bffb4fe,0xd8e99563,0x2ad828b1,0x95f9cd87,0x7de96ef5 +.long 0xd77d970c,0x4abb2d0c,0xd33ef9cb,0x03cfb933,0x8b211fe9,0xb0547c01,0xa56ed1c6,0x2fe64809,0xc2ac98cc,0xcb7d5624,0x1a393e33,0x2a1372c0,0x29660521,0xc8d1ec1c,0xb37ac3e9,0xf3d31b04 +.long 0x5ece6e7c,0xa29ae9df,0x0facfb55,0x0603ac8f,0xdda233a5,0xcfe85b7a,0xbd75f0b8,0xe618919f,0x99bf1603,0xf555a3d2,0xf184255a,0x1f43afc9,0x319a3e02,0xdcdaf341,0x03903a39,0xd3b117ef +.long 0x65d1d131,0xe095da13,0xc37ad03e,0x86f16367,0x462cd8dd,0x5f37389e,0xd67a60e6,0xc103fa04,0xf4b478f0,0x57c34344,0xe117c98d,0xce91edd8,0x231fc12e,0x001777b0,0xb207bccb,0x11ae47f2 +.long 0x20f8a242,0xd983cf8d,0xf22e1ad8,0x7aff5b1d,0x7fc4feb3,0x68fd11d0,0xb0f1c3e1,0x5d53ae90,0xec041803,0x50fb7905,0x14404888,0x85e3c977,0xac628d8f,0x0e67faed,0x6668532c,0x2e865150 +.long 0x6a67a6b0,0x15acaaa4,0xb25cec41,0xf4cdee25,0xe4c6701e,0x49ee565a,0xfc7d63d8,0x2a04ca66,0xef0543fb,0xeb105018,0xd1b0d81d,0xf709a4f5,0x2915d333,0x5b906ee6,0x96f1f0ab,0xf4a87412 +.long 0x4d82f4c2,0xb6b82fa7,0x6804efb3,0x90725a60,0xadc3425e,0xbc82ec46,0x2787843e,0xb7b80581,0xdd1fc74c,0xdf46d91c,0xe783a6c4,0xdc1c62cb,0x1a04cbba,0x59d1b9f3,0x95e40764,0xd87f6f72 +.long 0x317f4a76,0x02b4cfc1,0x91036bce,0x8d2703eb,0xa5e72a56,0x98206cc6,0xcf53fb0f,0x57be9ed1,0xef0b17ac,0x09374571,0xd9181b38,0x74b2655e,0x89935d0e,0xc8f80ea8,0x91529936,0xc0d9e942 +.long 0x1e84e0e5,0x19686041,0xaea34c93,0xa5db84d3,0x7073a732,0xf9d5bb19,0x6bcfd7c0,0xb8d2fe56,0xf3eb82fa,0x45775f36,0xfdff8b58,0x8cb20ccc,0x8374c110,0x1659b65f,0x330c789a,0xb8b4a422 +.long 0x6fe8208b,0x75e3c3ea,0x286e78fe,0xbd74b9e4,0xd7d93a1a,0x0be2e81b,0xdd0a5aae,0x7ed06e27,0x6be8b800,0x721f5a58,0xd846db28,0x428299d1,0x5be88ed3,0x95cb8e6b,0x1c034e11,0xc3186b23 +.long 0x8977d99b,0xa6312c9e,0x83f531e7,0xbe944331,0x18d3b1d4,0x8232c0c2,0xe1247b73,0x617aae8b,0x282aec3b,0x40153fc4,0xf7b8f823,0xc6063d2f,0x3304f94c,0x68f10e58,0xee676346,0x31efae74 +.long 0x40a9b97c,0xbadb6c6d,0x4f666256,0x14702c63,0x5184b2e3,0xdeb954f1,0x94b6ca40,0x5184a526,0x003c32ea,0xfff05337,0x205974c7,0x5aa374dd,0x4b0dd71a,0x9a763854,0xdeb947ec,0x459cd27f +.long 0x459c2b92,0xa6e28161,0x75ee8ef5,0x2f020fa8,0x30b06310,0xb132ec2d,0xbc6a4530,0xc3e15899,0xaa3f451a,0xdc5f53fe,0xc2d9acac,0x3a3c7f23,0x6b27e58b,0x2ec2f892,0xd742799f,0x68466ee7 +.long 0x1fa26613,0x98324dd4,0xbdc29d63,0xa2dc6dab,0xd712d657,0xf9675faa,0x21fd8d15,0x813994be,0xfd4f7553,0x5ccbb722,0xf3a36b20,0x5135ff8b,0x69559df5,0x44be28af,0x9d41bf30,0x40b65bed +.long 0x3734e520,0xd98bf2a4,0x209bdcba,0x5e3abbe3,0xbc945b35,0x77c76553,0xc6ef14aa,0x5331c093,0x76b60c80,0x518ffe29,0x7ace16f8,0x2285593b,0xbe2b9784,0xab1f64cc,0xab2421b6,0xe8f2c0d9 +.long 0xc1df065c,0x617d7174,0x5f6578fa,0xafeeb5ab,0x263b54a8,0x16ff1329,0xc990dce3,0x45c55808,0xecc8c177,0x42eab6c0,0x5982ecaa,0x799ea9b5,0xb607ef8e,0xf65da244,0x32a3fc2c,0x8ab226ce +.long 0x7ea973dc,0x745741e5,0x20888f2e,0x5c00ca70,0x45fd9cf1,0x7cdce3cf,0x5507f872,0x8a741ef1,0x196b4cec,0x47c51c2f,0xc97ea618,0x70d08e43,0x15b18a2b,0x930da15c,0x2f610514,0x33b6c678 +.long 0x07ac9794,0xc662e4f8,0xba06cb79,0x1eccf050,0xe7d954e5,0x1ff08623,0x24cf71c3,0x6ef2c5fb,0x67978453,0xb2c063d2,0x1d654af8,0xa0cf3796,0x7ebdaa37,0x7cb242ea,0xb86747e0,0x206e0b10 +.long 0xd5ecfefc,0x481dae5f,0xc2bff8fc,0x07084fd8,0xea324596,0x8040a01a,0xd4de4036,0x4c646980,0xd65abfc3,0x9eb8ab4e,0x13541ec7,0xe01cb91f,0xfd695012,0x8f029adb,0x3c7569ec,0x9ae28483 +.long 0xa66d80a1,0xa5614c9e,0x75f5f911,0x680a3e44,0xceba4fc1,0x0c07b14d,0xa13071c1,0x891c285b,0x799ece3c,0xcac67ceb,0x41e07e27,0x29b910a9,0xf2e43123,0x66bdb409,0x7ac9ecbe,0x06f8b137 +.long 0x38547090,0x5981fafd,0x85e3415d,0x19ab8b9f,0xc7e31b27,0xfc28c194,0x6fbcbb42,0x843be0aa,0xa6db836c,0xf3b1ed43,0x01a45c05,0x2a1330e4,0x95c1a377,0x4f19f3c5,0x44b5ee33,0xa85f39d0 +.long 0x4ae52834,0x3da18e6d,0x7423dcb0,0x5a403b39,0xf2374aef,0xbb555e0a,0x1e8ca111,0x2ad599c4,0x014b3bf8,0x1b3a2fb9,0xf66d5007,0x73092684,0xc4340102,0x079f1426,0x8fddf4de,0x1827cf81 +.long 0xf10ff927,0xc83605f6,0x23739fc6,0xd3871451,0xcac1c2cc,0x6d163450,0xa2ec1ac5,0x6b521296,0x6e3cb4a5,0x0606c4f9,0x778abff7,0xe47d3f41,0xbe8e3a45,0x425a8d5e,0xa6102160,0x53ea9e97 +.long 0x39cbb688,0x477a106e,0xf3386d32,0x532401d2,0xb1b9b421,0x8e564f64,0x81dad33f,0xca9b8388,0x2093913e,0xb1422b4e,0x69bc8112,0x533d2f92,0xebe7b2c7,0x3fa017be,0xcaf197c6,0xb2767c4a +.long 0xaedbae9f,0xc925ff87,0x36880a54,0x7daf0eb9,0x9c4d0e71,0x9284ddf5,0x316f8cf5,0x1581cf93,0x3ac1f452,0x3eeca887,0xfb6aeffe,0xb417fce9,0xeefb8dc3,0xa5918046,0x02209400,0x73d318ac +.long 0x728693e5,0xe800400f,0x339927ed,0xe87d814b,0x57ea9910,0x93e94d3b,0x2245fb69,0xff8a35b6,0x7f200d34,0x043853d7,0x0f653ce1,0x470f1e68,0x59a06379,0x81ac05bd,0x03930c29,0xa14052c2 +.long 0x26bc2797,0x6b72fab5,0x99f16771,0x13670d16,0x1e3e48d1,0x00170052,0xb7adf678,0x978fe401,0xd41c5dd4,0x55ecfb92,0xc7b27da5,0x5ff8e247,0x013fb606,0xe7518272,0x2f547a3c,0x5768d7e5 +.long 0x60017a5f,0xbb24eaa3,0x9c64ce9b,0x6b18e6e4,0x103dde07,0xc225c655,0x7592f7ea,0xfc3672ae,0xd06283a1,0x9606ad77,0xe4d59d99,0x542fc650,0x2a40e7c2,0xabb57c49,0xa8db9f55,0xac948f13 +.long 0xb04465c3,0x6d4c9682,0x6468bd15,0xe3d062fa,0x5f318d7e,0xa51729ac,0x9eb6fc95,0x1fc87df6,0x0591f652,0x63d146a8,0x589621aa,0xa861b8f7,0xce31348c,0x59f5f15a,0x440da6da,0x8f663391 +.long 0xb591ffa3,0xcfa778ac,0x4cdfebce,0x027ca9c5,0x444ea6b3,0xbe8e05a5,0xa78d8254,0x8aab4e69,0xb474d6b8,0x2437f04f,0x045b3855,0x6597ffd4,0xca47ecaa,0xbb0aea4e,0x85c7ebfc,0x568aae83 +.long 0xc73b2383,0x0e966e64,0xd17d8762,0x49eb3447,0x8da05dab,0xde107821,0x016b7236,0x443d8baa,0xea7610d6,0x163b63a5,0xce1ca979,0xe47e4185,0x80baa132,0xae648b65,0x0e0d5b64,0xebf53de2 +.long 0xd3c8c1ca,0x8d3bfcb4,0x5d04b309,0x0d914ef3,0x3de7d395,0x55ef6415,0x26b850e8,0xbde1666f,0xd449ab19,0xdbe1ca6e,0xe89a2672,0x8902b322,0xdacb7a53,0xb1674b7e,0xf52523ff,0x8e9faf6e +.long 0x9a85788b,0x6ba535da,0xbd0626d4,0xd21f03ae,0xe873dc64,0x099f8c47,0x018ec97e,0xcda8564d,0xde92c68c,0x3e8d7a5c,0x73323cc4,0x78e035a1,0xf880ff7c,0x3ef26275,0x273eedaa,0xa4ee3dff +.long 0xaf4e18f8,0x58823507,0x0672f328,0x967ec9b5,0x559d3186,0x9ded19d9,0x6cdce39c,0x5e2ab3de,0x11c226df,0xabad6e4d,0x87723014,0xf9783f43,0x1a885719,0x9a49a0cf,0x90da9dbf,0xfc0c1a5a +.long 0x571d92ac,0x8bbaec49,0x4692517f,0x569e85fe,0xa14ea4af,0x8333b014,0x12e5c5ad,0x32f2a62f,0x06d89b85,0x98c2ce3a,0x2ff77a08,0xb90741aa,0x01f795a2,0x2530defc,0x84b3c199,0xd6e5ba0b +.long 0x12e4c936,0x7d8e8451,0xbd0be17b,0xae419f7d,0x22262bc9,0xa583fc8c,0x91bfe2bd,0x6b842ac7,0x440d6827,0x33cef4e9,0xef81fb14,0x5f69f4de,0x234fbb92,0xf16cf6f6,0xd9e7e158,0x76ae3fc3 +.long 0xe9740b33,0x4e89f6c2,0x4962d6a1,0x677bc85d,0x68d10d15,0x6c6d8a7f,0x0257b1cd,0x5f9a7224,0x4ad85961,0x7096b916,0xe657ab4a,0x5f8c47f7,0xf7461d7e,0xde57d7d0,0x80ce5ee2,0x7eb6094d +.long 0x34190547,0x0b1e1dfd,0xf05dd150,0x8a394f43,0x97df44e6,0x0a9eb24d,0x87675719,0x78ca06bf,0x6ffeec22,0x6f0b3462,0x36cdd8fb,0x9d91bcea,0xa105be47,0xac83363c,0x069710e3,0x81ba76c1 +.long 0x28c682c6,0x3d1b24cb,0x8612575b,0x27f25228,0xe8e66e98,0xb587c779,0x405eb1fe,0x7b0c03e9,0x15b548e7,0xfdf0d030,0x38b36af7,0xa8be76e0,0x4f310c40,0x4cdab04a,0xf47ecaec,0x6287223e +.long 0x8b399320,0x678e6055,0xc01e4646,0x61fe3fa6,0x03261a5e,0xc482866b,0x5c2f244a,0xdfcf45b8,0x2f684b43,0x8fab9a51,0xc7220a66,0xf796c654,0xf5afa58f,0x1d90707e,0x4fdbe0de,0x2c421d97 +.long 0xaf2ebc2f,0xc4f4cda3,0xcb4efe24,0xa0af843d,0x9ccd10b1,0x53b857c1,0x914d3e04,0xddc9d1eb,0x62771deb,0x7bdec8bb,0x91c5aa81,0x829277aa,0x832391ae,0x7af18dd6,0xc71a84ca,0x1740f316 +.long 0xeeaf8c49,0x8928e99a,0x6e24d728,0xee7aa73d,0xe72b156c,0x4c5007c2,0xed408a1d,0x5fcf57c5,0xb6057604,0x9f719e39,0xc2868bbf,0x7d343c01,0x7e103e2d,0x2cca254b,0xf131bea2,0xe6eb38a9 +.long 0x8be762b4,0xb33e624f,0x058e3413,0x2a9ee4d1,0x67d805fa,0x968e6369,0x7db8bfd7,0x9848949b,0xd23a8417,0x5308d7e5,0xf3e29da5,0x892f3b1d,0x3dee471f,0xc95c139e,0xd757e089,0x8631594d +.long 0xde918dcc,0xe0c82a3c,0x26fdcf4b,0x2e7b5994,0x32cb1b2d,0x82c50249,0x7657ae07,0xea613a9d,0xf1fdc9f7,0xc2eb5f6c,0x879fe682,0xb6eae8b8,0x591cbc7f,0x253dfee0,0x3e1290e6,0x000da713 +.long 0x1f095615,0x1083e2ea,0x14e68c33,0x0a28ad77,0x3d8818be,0x6bfc0252,0xf35850cd,0xb585113a,0x30df8aa1,0x7d935f0b,0x4ab7e3ac,0xaddda07c,0x552f00cb,0x92c34299,0x2909df6c,0xc33ed1de +.long 0x80e87766,0x22c2195d,0x9ddf4ac0,0x9e99e6d8,0x65e74934,0x09642e4e,0xff1ff241,0x2610ffa2,0x751c8159,0x4d1d47d4,0xaf3a9363,0x697b4985,0x87477c33,0x0318ca46,0x9441eff3,0xa90cb565 +.long 0x36f024cb,0x58bb3848,0x36016168,0x85be1f77,0xdc7e07f1,0x6c59587c,0xaf1d8f02,0x191be071,0xcca5e55c,0xbf169fa5,0xf7d04eac,0x3864ba3c,0x8d7d05db,0x915e367f,0xa6549e5d,0xb48a876d +.long 0x580e40a2,0xef89c656,0x728068bc,0xf194ed8c,0xa47990c9,0x74528045,0x5e1a4649,0xf53fc7d7,0x78593e7d,0xbec5ae9b,0x41db65d7,0x2cac4ee3,0x04a3d39b,0xa8c1eb24,0x03f8f3ef,0x53b7d634 +.long 0x3e07113c,0x2dc40d48,0x7d8b63ae,0x6e4a5d39,0x79684c2b,0x5582a94b,0x622da26c,0x932b33d4,0x0dbbf08d,0xf534f651,0x64c23a52,0x211d07c9,0xee5bdc9b,0x0eeece0f,0xf7015558,0xdf178168 +.long 0x0a712229,0xd4294635,0x09273f8c,0x93cbe448,0x8f13bc83,0x00b095ef,0x8798978c,0xbb741972,0x56dbe6e7,0x9d7309a2,0x5a5d39ec,0xe578ec56,0x851f9a31,0x3961151b,0xe5709eb4,0x2da7715d +.long 0x53dfabf0,0x867f3017,0xb8e39259,0x728d2078,0x815d9958,0x5c75a0cd,0x16603be1,0xf84867a6,0x70e35b1c,0xc865b13d,0x19b03e2c,0x02414468,0xac1f3121,0xe46041da,0x6f028a7c,0x7c9017ad +.long 0x0a482873,0xabc96de9,0xb77e54d4,0x4265d6b1,0xa57d88e7,0x68c38e79,0x9ce82de3,0xd461d766,0x64a7e489,0x817a9ec5,0xa0def5f2,0xcc5675cd,0x985d494e,0x9a00e785,0x1b03514a,0xc626833f +.long 0x83cdd60e,0xabe7905a,0xa1170184,0x50602fb5,0xb023642a,0x689886cd,0xa6e1fb00,0xd568d090,0x0259217f,0x5b1922c7,0xc43141e4,0x93831cd9,0x0c95f86e,0xdfca3587,0x568ae828,0xdec2057a +.long 0xf98a759a,0xc44ea599,0xf7c23c1d,0x55a0a7a2,0x94c4f687,0xd5ffb6e6,0x12848478,0x3563cce2,0xe7b1fbe1,0x812b3517,0x4f7338e0,0x8a7dc979,0x52d048db,0x211ecee9,0xc86ea3b8,0x2eea4056 +.long 0xba772b34,0xd8cb68a7,0x5f4e2541,0xe16ed341,0x0fec14db,0x9b32f6a6,0x391698be,0xeee376f7,0x83674c02,0xe9a7aa17,0x5843022a,0x65832f97,0x5ba4990f,0x29f3a8da,0xfb8e3216,0x79a59c3a +.long 0xbd19bb16,0x9cdc4d2e,0xb3262d86,0xc6c7cfd0,0x969c0b47,0xd4ce14d0,0x13e56128,0x1fa352b7,0x973db6d3,0x383d55b8,0xe8e5b7bf,0x71836850,0xe6bb571f,0xc7714596,0x2d5b2dd2,0x259df31f +.long 0x913cc16d,0x568f8925,0xe1a26f5a,0x18bc5b6d,0xf5f499ae,0xdfa413be,0xc3f0ae84,0xf8835dec,0x65a40ab0,0xb6e60bd8,0x194b377e,0x65596439,0x92084a69,0xbcd85625,0x4f23ede0,0x5ce433b9 +.long 0x6ad65143,0xe8e8f04f,0xd6e14af6,0x11511827,0x8295c0c7,0x3d390a10,0x621eba16,0x71e29ee4,0x63717b46,0xa588fc09,0xe06ad4a2,0x02be02fe,0x04c22b22,0x931558c6,0x12f3c849,0xbb4d4bd6 +.long 0x20efd662,0x54a4f496,0xc5952d14,0x92ba6d20,0xcc9784c2,0x2db8ea1e,0x4b353644,0x81cc10ca,0x4b4d7f6c,0x40b570ad,0x84a1dcd2,0x5c9f1d96,0x3147e797,0x01379f81,0x2bd499f5,0xe5c6097b +.long 0x328e5e20,0x40dcafa6,0x54815550,0xf7b5244a,0x47bfc978,0xb9a4f118,0xd25825b1,0x0ea0e79f,0x646c7ecf,0xa50f96eb,0x446dea9d,0xeb811493,0xdfabcf69,0x2af04677,0xc713f6e8,0xbe3a068f +.long 0x42e06189,0x860d523d,0x4e3aff13,0xbf077941,0xc1b20650,0x0b616dca,0x2131300d,0xe66dd6d1,0xff99abde,0xd4a0fd67,0xc7aac50d,0xc9903550,0x7c46b2d7,0x022ecf8b,0x3abf92af,0x3333b1e8 +.long 0x6c491c14,0x11cc113c,0x80dd3f88,0x05976688,0x29d932ed,0xf5b4d9e7,0xa2c38b6d,0xe982aad8,0x8be0dcf0,0x6f925347,0x65ca53f2,0x700080ae,0x443ca77f,0xd8131156,0xec51f984,0xe92d6942 +.long 0x85dfe9ae,0xd2a08af8,0x4d2a86ca,0xd825d9a5,0x39dff020,0x2c53988d,0x430cdc40,0xf38b135a,0x62a7150b,0x0c918ae0,0x0c340e9b,0xf31fd8de,0x4dbbf02e,0xafa0e7ae,0x5eba6239,0x5847fb2a +.long 0xdccbac8b,0x6b1647dc,0x06f485c8,0xb642aa78,0x7038ecdf,0x873f3765,0xfa49d3fe,0x2ce5e865,0xc98c4400,0xea223788,0xf1fa5279,0x8104a8cd,0x06becfd7,0xbcf7cc7a,0xc8f974ae,0x49424316 +.long 0x84d6365d,0xc0da65e7,0x8f759fb8,0xbcb7443f,0x7ae81930,0x35c712b1,0x4c6e08ab,0x80428dff,0xa4faf843,0xf19dafef,0xffa9855f,0xced8538d,0xbe3ac7ce,0x20ac409c,0x882da71e,0x358c1fb6 +.long 0xfd349961,0xafa9c0e5,0x8421c2fc,0x2b2cfa51,0xf3a28d38,0x2a80db17,0x5d138e7e,0xa8aba539,0x6e96eb8d,0x52012d1d,0xcbaf9622,0x65d8dea0,0xb264f56c,0x57735447,0x1b6c8da2,0xbeebef3f +.long 0xce785254,0xfc346d98,0xbb64a161,0xd50e8d72,0x49794add,0xc03567c7,0x752c7ef6,0x15a76065,0x961f23d6,0x59f3a222,0x73ecc0b0,0x378e4438,0x5a82fde4,0xc74be434,0xd8b9cf34,0xae509af2 +.long 0x577f44a1,0x4a61ee46,0xb611deeb,0xe09b748c,0xf5f7b884,0xc0481b2c,0x61acfa6b,0x35626678,0xbf8d21e6,0x37f4c518,0xb205a76d,0x22d96531,0x954073c0,0x37fb85e1,0x65b3a567,0xbceafe4f +.long 0xbe42a582,0xefecdef7,0x65046be6,0xd3fc6080,0x09e8dba9,0xc9af13c8,0x641491ff,0x1e6c9847,0xd30c31f7,0x3b574925,0xac2a2122,0xb7eb72ba,0xef0859e7,0x776a0dac,0x21900942,0x06fec314 +.long 0xf8c22049,0x2464bc10,0x875ebf69,0x9bfbcce7,0x4336326b,0xd7a88e2a,0x5bc2acfa,0xda05261c,0xeba7efc8,0xc29f5bdc,0x25dbbf2e,0x471237ca,0x2975f127,0xa72773f2,0x04d0b326,0xdc744e8e +.long 0xa56edb73,0x38a7ed16,0x2c007e70,0x64357e37,0x5080b400,0xa167d15b,0x23de4be1,0x07b41164,0x74c89883,0xb2d91e32,0x2882e7ed,0x3c162821,0x7503e482,0xad6b36ba,0x0ea34331,0x48434e8e +.long 0x2c7ae0b9,0x79f4f24f,0x1939b44a,0xc46fbf81,0x56595eb1,0x76fefae8,0xcd5f29c7,0x417b66ab,0xc5ceec20,0x5f2332b2,0xe1a1cae2,0xd69661ff,0x9b0286e6,0x5ede7e52,0xe276b993,0x9d062529 +.long 0x7e50122b,0x324794b0,0x4af07ca5,0xdd744f8b,0xd63fc97b,0x30a12f08,0x76626d9d,0x39650f1a,0x1fa38477,0x101b47f7,0xd4dc124f,0x3d815f19,0xb26eb58a,0x1569ae95,0x95fb1887,0xc3cde188 +.long 0xf9539a48,0x54e9f37b,0x7408c1a5,0xb0100e06,0xea580cbb,0x821d9811,0x86e50c56,0x8af52d35,0xdbbf698b,0xdfbd9d47,0x03dc1c73,0x2961a1ea,0xe76a5df8,0x203d38f8,0x6def707a,0x08a53a68 +.long 0x1bee45d4,0x26eefb48,0x3c688036,0xb3cee346,0xc42f2469,0x463c5315,0x81378162,0x19d84d2e,0x1c4d349f,0x22d7c3c5,0x163d59c5,0x65965844,0xb8abceae,0xcf198c56,0x628559d5,0x6fb1fb1b +.long 0x07bf8fe3,0x8bbffd06,0x3467734b,0x46259c58,0x35f7f0d3,0xd8953cea,0xd65b0ff1,0x1f0bece2,0xf3c72914,0xf7d5b4b3,0x3cb53389,0x29e8ea95,0x836b6d46,0x4a365626,0xea174fde,0xe849f910 +.long 0xf4737f21,0x7ec62fbb,0x6209f5ac,0xd8dba5ab,0xa5f9adbe,0x24b5d7a9,0xa61dc768,0x707d28f7,0xcaa999ea,0x7711460b,0x1c92e4cc,0xba7b174d,0x18d4bf2d,0x3c4bab66,0xeb8bd279,0xb8f0c980 +.long 0x324b4737,0x024bea9a,0x32a83bca,0xfba9e423,0xa232dced,0x6e635643,0x2571c8ba,0x99619367,0x54b7032b,0xe8c9f357,0x2442d54a,0xf936b3ba,0x8290c65a,0x2263f0f0,0xee2c7fdb,0x48989780 +.long 0x13d4f95e,0xadc5d55a,0xad9b8500,0x737cff85,0x8a73f43d,0x271c557b,0xe18bc476,0xbed617a4,0x7dfd8ab2,0x66245401,0x3a2870aa,0xae7b89ae,0x23a7e545,0x1b555f53,0xbe057e4c,0x6791e247 +.long 0x324fa34d,0x860136ad,0x4cbeae28,0xea111447,0xbedd3299,0x023a4270,0xc1c35c34,0x3d5c3a7f,0x8d0412d2,0xb0f6db67,0xfcdc6b9a,0xd92625e2,0x4e28a982,0x92ae5ccc,0x47a3ce7e,0xea251c36 +.long 0x790691bf,0x9d658932,0x06b736ae,0xed610589,0xc0d63b6e,0x712c2f04,0xc63d488f,0x5cf06fd5,0xd9588e41,0x97363fac,0x2b93257e,0x1f9bf762,0x667acace,0xa9d1ffc4,0x0a061ecf,0x1cf4a1aa +.long 0xdc1818d0,0x40e48a49,0xa3621ab0,0x0643ff39,0xe39ef639,0x5768640c,0x04d86854,0x1fc099ea,0xeccd28fd,0x9130b9c3,0x7eec54ab,0xd743cbd2,0xe5b475b6,0x052b146f,0x900a7d1f,0x058d9a82 +.long 0x91262b72,0x65e02292,0xbb0edf03,0x96f924f9,0xfe206842,0x5cfa59c8,0x5eafa720,0xf6037004,0x18d7dd96,0x5f30699e,0xcbab2495,0x381e8782,0xdd8be949,0x91669b46,0x26aae8ef,0xb40606f5 +.long 0xfc6751a4,0x2812b839,0xfba800ef,0x16196214,0x4c1a2875,0x4398d5ca,0x653d8349,0x720c00ee,0xd820007c,0xc2699eb0,0xa39b5825,0x880ee660,0x471f6984,0x70694694,0xe3dda99a,0xf7d16ea8 +.long 0xc0519a23,0x28d675b2,0x4f6952e3,0x9ebf94fe,0xa2294a8a,0xf28bb767,0xfe0af3f5,0x85512b4d,0x99b16a0d,0x18958ba8,0xba7548a7,0x95c2430c,0xa16be615,0xb30d1b10,0x85bfb74c,0xe3ebbb97 +.long 0x18549fdb,0xa3273cfe,0x4fcdb792,0xf6e200bf,0x83aba56c,0x54a76e18,0x89ef6aa2,0x73ec66f6,0xd1b9a305,0x8d17add7,0xb7ae1b9d,0xa959c5b9,0x6bcc094a,0x88643522,0xd7d429b9,0xcc5616c4 +.long 0xe6a33f7c,0xa6dada01,0x9d4e70ad,0xc6217a07,0x09c15b7c,0xd619a818,0x0e80c854,0xea06b329,0xa5f5e7b9,0x174811ce,0x787c65f4,0x66dfc310,0x3316ab54,0x4ea7bd69,0x1dcc0f70,0xc12c4acb +.long 0x1e407dd9,0xe4308d1a,0x91afa997,0xe8a3587c,0xab77b7a5,0xea296c12,0x673c0d52,0xb5ad49e4,0x7006085a,0x40f9b2b2,0x87bf6ec2,0xa88ff340,0x4e3066a6,0x978603b1,0xb5e486e2,0xb3f99fc2 +.long 0xb2e63645,0x07b53f5e,0x84c84232,0xbe57e547,0x7214d5cf,0xd779c216,0x029a3aca,0x617969cd,0x8a7017a0,0xd17668cd,0xbe9b7ee8,0x77b4d19a,0x9c161776,0x58fd0e93,0xd5968a72,0xa8c4f4ef +.long 0x67b3de77,0x296071cc,0x634f7905,0xae3c0b8e,0x8a7100c9,0x67e440c2,0xeb4b9b42,0xbb8c3c1b,0xc51b3583,0x6d71e8ea,0x9525e642,0x7591f5af,0x13f509f3,0xf73a2f7b,0x5619ac9b,0x618487aa +.long 0x9d61718a,0x3a72e5f7,0x7592d28c,0x00413bcc,0x963c35cf,0x7d9b11d3,0xb90a46ed,0x77623bcf,0xdcdd2a50,0xdeef273b,0x0601846e,0x4a741f9b,0x0ec6e929,0x33b89e51,0x8b7f22cd,0xcb02319f +.long 0x084bae24,0xbbe1500d,0x343d2693,0x2f0ae8d7,0x7cdef811,0xacffb5f2,0x263fb94f,0xaa0c030a,0xa0f442de,0x6eef0d61,0x27b139d3,0xf92e1817,0x0ad8bc28,0x1ae6deb7,0xc0514130,0xa89e38dc +.long 0xd2fdca23,0x81eeb865,0xcc8ef895,0x5a15ee08,0x01905614,0x768fa10a,0x880ee19b,0xeff5b8ef,0xcb1c8a0e,0xf0c0cabb,0xb8c838f9,0x2e1ee9cd,0x8a4a14c0,0x0587d8b8,0x2ff698e5,0xf6f27896 +.long 0x89ee6256,0xed38ef1c,0x6b353b45,0xf44ee1fe,0x70e903b3,0x9115c0c7,0x818f31df,0xc78ec0a1,0xb7dccbc6,0x6c003324,0x163bbc25,0xd96dd1f3,0x5cedd805,0x33aa82dd,0x7f7eb2f1,0x123aae4f +.long 0xa26262cd,0x1723fcf5,0x0060ebd5,0x1f7f4d5d,0xb2eaa3af,0xf19c5c01,0x9790accf,0x2ccb9b14,0x52324aa6,0x1f9c1cad,0x7247df54,0x63200526,0xbac96f82,0x5732fe42,0x01a1c384,0x52fe771f +.long 0xb1001684,0x546ca13d,0xa1709f75,0xb56b4eee,0xd5db8672,0x266545a9,0x1e8f3cfb,0xed971c90,0xe3a07b29,0x4e7d8691,0xe4b696b9,0x7570d9ec,0x7bc7e9ae,0xdc5fa067,0xc82c4844,0x68b44caf +.long 0xbf44da80,0x519d34b3,0x5ab32e66,0x283834f9,0x6278a000,0x6e608797,0x627312f6,0x1e62960e,0xe6901c55,0x9b87b27b,0x24fdbc1f,0x80e78538,0x2facc27d,0xbbbc0951,0xac143b5a,0x06394239 +.long 0x376c1944,0x35bb4a40,0x63da1511,0x7cb62694,0xb7148a3b,0xafd29161,0x4e2ea2ee,0xa6f9d9ed,0x880dd212,0x15dc2ca2,0xa61139a9,0x903c3813,0x6c0f8785,0x2aa7b46d,0x901c60ff,0x36ce2871 +.long 0xe10d9c12,0xc683b028,0x032f33d3,0x7573baa2,0x67a31b58,0x87a9b1f6,0xf4ffae12,0xfd3ed11a,0x0cb2748e,0x83dcaa9a,0x5d6fdf16,0x8239f018,0x72753941,0xba67b49c,0xc321cb36,0x2beec455 +.long 0x3f8b84ce,0x88015606,0x8d38c86f,0x76417083,0x598953dd,0x054f1ca7,0x4e8e7429,0xc939e110,0x5a914f2f,0x9b1ac2b3,0xe74b8f9c,0x39e35ed3,0x781b2fb0,0xd0debdb2,0x2d997ba2,0x1585638f +.long 0x9e2fce99,0x9c4b646e,0x1e80857f,0x68a21081,0x3643b52a,0x06d54e44,0x0d8eb843,0xde8d6d63,0x42146a0a,0x70321563,0x5eaa3622,0x8ba826f2,0x86138787,0x227a58bd,0x10281d37,0x43b6c03c +.long 0xb54dde39,0x6326afbb,0xdb6f2d5f,0x744e5e8a,0xcff158e1,0x48b2a99a,0xef87918f,0xa93c8fa0,0xde058c5c,0x2182f956,0x936f9e7a,0x216235d2,0xd2e31e67,0xace0c0db,0xf23ac3e7,0xc96449bf +.long 0x170693bd,0x7e9a2874,0xa45e6335,0xa28e14fd,0x56427344,0x5757f6b3,0xacf8edf9,0x822e4556,0xe6a285cd,0x2b7a6ee2,0xa9df3af0,0x5866f211,0xf845b844,0x40dde2dd,0x110e5e49,0x986c3726 +.long 0xf7172277,0x73680c2a,0x0cccb244,0x57b94f0f,0x2d438ca7,0xbdff7267,0xcf4663fd,0xbad1ce11,0xd8f71cae,0x9813ed9d,0x961fdaa6,0xf43272a6,0xbd6d1637,0xbeff0119,0x30361978,0xfebc4f91 +.long 0x2f41deff,0x02b37a95,0xe63b89b7,0x0e44a59a,0x143ff951,0x673257dc,0xd752baf4,0x19c02205,0xc4b7d692,0x46c23069,0xfd1502ac,0x2e6392c3,0x1b220846,0x6057b1a2,0x0c1b5b63,0xe51ff946 +.long 0x566c5c43,0x6e85cb51,0x3597f046,0xcff9c919,0x4994d94a,0x9354e90c,0x2147927d,0xe0a39332,0x0dc1eb2b,0x8427fac1,0x2ff319fa,0x88cfd8c2,0x01965274,0xe2d4e684,0x67aaa746,0xfa2e067d +.long 0x3e5f9f11,0xb6d92a7f,0xd6cb3b8e,0x9afe153a,0xddf800bd,0x4d1a6dd7,0xcaf17e19,0xf6c13cc0,0x325fc3ee,0x15f6c58e,0xa31dc3b2,0x71095400,0xafa3d3e7,0x168e7c07,0x94c7ae2d,0x3f8417a1 +.long 0x813b230d,0xec234772,0x17344427,0x634d0f5f,0xd77fc56a,0x11548ab1,0xce06af77,0x7fab1750,0x4f7c4f83,0xb62c10a7,0x220a67d9,0xa7d2edc4,0x921209a0,0x1c404170,0xface59f0,0x0b9815a0 +.long 0x319540c3,0x2842589b,0xa283d6f8,0x18490f59,0xdaae9fcb,0xa2731f84,0xc3683ba0,0x3db6d960,0x14611069,0xc85c63bb,0x0788bf05,0xb19436af,0x347460d2,0x905459df,0xe11a7db1,0x73f6e094 +.long 0xb6357f37,0xdc7f938e,0x2bd8aa62,0xc5d00f79,0x2ca979fc,0xc878dcb9,0xeb023a99,0x37e83ed9,0x1560bf3d,0x6b23e273,0x1d0fae61,0x1086e459,0x9a9414bd,0x78248316,0xf0ea9ea1,0x1b956bc0 +.long 0xc31b9c38,0x7b85bb91,0x48ef57b5,0x0c5aa90b,0xaf3bab6f,0xdedeb169,0x2d373685,0xe610ad73,0x02ba8e15,0xf13870df,0x8ca7f771,0x0337edb6,0xb62c036c,0xe4acf747,0xb6b94e81,0xd921d576 +.long 0x2c422f7a,0xdbc86439,0xed348898,0xfb635362,0xc45bfcd1,0x83084668,0x2b315e11,0xc357c9e3,0x5b2e5b8c,0xb173b540,0xe102b9a4,0x7e946931,0x7b0fb199,0x17c890eb,0xd61b662b,0xec225a83 +.long 0xee3c76cb,0xf306a3c8,0xd32a1f6e,0x3cf11623,0x6863e956,0xe6d5ab64,0x5c005c26,0x3b8a4cbe,0x9ce6bb27,0xdcd529a5,0x04d4b16f,0xc4afaa52,0x7923798d,0xb0624a26,0x6b307fab,0x85e56df6 +.long 0x2bf29698,0x0281893c,0xd7ce7603,0x91fc19a4,0xad9a558f,0x75a5dca3,0x4d50bf77,0x40ceb3fa,0xbc9ba369,0x1baf6060,0x597888c2,0x927e1037,0x86a34c07,0xd936bf19,0xc34ae980,0xd4cf10c1 +.long 0x859dd614,0x3a3e5334,0x18d0c8ee,0x9c475b5b,0x07cd51d5,0x63080d1f,0xb88b4326,0xc9c0d0a6,0xc234296f,0x1ac98691,0x94887fb6,0x2a0a83a4,0x0cea9cf2,0x56511427,0xa24802f5,0x5230a6e8 +.long 0x72e3d5c1,0xf7a2bf0f,0x4f21439e,0x37717446,0x9ce30334,0xfedcbf25,0x7ce202f9,0xe0030a78,0x1202e9ca,0x6f2d9ebf,0x75e6e591,0xe79dde6c,0xf1dac4f8,0xf52072af,0xbb9b404d,0x6c8d087e +.long 0xbce913af,0xad0fc73d,0x458a07cb,0x909e587b,0xd4f00c8a,0x1300da84,0xb54466ac,0x425cd048,0x90e9d8bf,0xb59cb9be,0x3e431b0e,0x991616db,0x531aecff,0xd3aa117a,0x59f4dc3b,0x91af92d3 +.long 0xe93fda29,0x9b1ec292,0xe97d91bc,0x76bb6c17,0xaface1e6,0x7509d95f,0xbe855ae3,0x3653fe47,0x0f680e75,0x73180b28,0xeeb6c26c,0x75eefd1b,0xb66d4236,0xa4cdf29f,0x6b5821d8,0x2d70a997 +.long 0x20445c36,0x7a3ee207,0x59877174,0x71d1ac82,0x949f73e9,0x0fc539f7,0x982e3081,0xd05cf3d7,0x7b1c7129,0x8758e20b,0x569e61f2,0xffadcc20,0x59544c2d,0xb05d3a2f,0x9fff5e53,0xbe16f5c1 +.long 0xaad58135,0x73cf65b8,0x037aa5be,0x622c2119,0x646fd6a0,0x79373b3f,0x0d3978cf,0x0e029db5,0x94fba037,0x8bdfc437,0x620797a6,0xaefbd687,0xbd30d38e,0x3fa5382b,0x585d7464,0x7627cfbf +.long 0x4e4ca463,0xb2330fef,0x3566cc63,0xbcef7287,0xcf780900,0xd161d2ca,0x5b54827d,0x135dc539,0x27bf1bc6,0x638f052e,0x07dfa06c,0x10a224f0,0x6d3321da,0xe973586d,0x26152c8f,0x8b0c5738 +.long 0x34606074,0x07ef4f2a,0xa0f7047a,0x80fe7fe8,0xe1a0e306,0x3d1a8152,0x88da5222,0x32cf43d8,0x5f02ffe6,0xbf89a95f,0x806ad3ea,0x3d9eb9a4,0x79c8e55e,0x012c17bb,0x99c81dac,0xfdcd1a74 +.long 0xb9556098,0x7043178b,0x801c3886,0x4090a1df,0x9b67b912,0x759800ff,0x232620c8,0x3e5c0304,0x70dceeca,0x4b9d3c4b,0x181f648e,0xbb2d3c15,0x6e33345c,0xf981d837,0x0cf2297a,0xb626289b +.long 0x8baebdcf,0x766ac659,0x75df01e5,0x1a28ae09,0x375876d8,0xb71283da,0x607b9800,0x4865a96d,0x237936b2,0x25dd1bcd,0x60417494,0x332f4f4b,0x370a2147,0xd0923d68,0xdc842203,0x497f5dfb +.long 0x32be5e0f,0x9dc74cbd,0x17a01375,0x7475bcb7,0x50d872b1,0x438477c9,0xffe1d63d,0xcec67879,0xd8578c70,0x9b006014,0x78bb6b8b,0xc9ad99a8,0x11fb3806,0x6799008e,0xcd44cab3,0xcfe81435 +.long 0x2f4fb344,0xa2ee1582,0x483fa6eb,0xb8823450,0x652c7749,0x622d323d,0xbeb0a15b,0xd8474a98,0x5d1c00d0,0xe43c154d,0x0e3e7aac,0x7fd581d9,0x2525ddf8,0x2b44c619,0xb8ae9739,0x67a033eb +.long 0x9ef2d2e4,0x113ffec1,0xd5a0ea7f,0x1bf6767e,0x03714c0a,0x57fff75e,0x0a23e9ee,0xa23c422e,0x540f83af,0xdd5f6b2d,0x55ea46a7,0xc2c2c27e,0x672a1208,0xeb6b4246,0xae634f7a,0xd13599f7 +.long 0xd7b32c6e,0xcf914b5c,0xeaf61814,0x61a5a640,0x208a1bbb,0x8dc3df8b,0xb6d79aa5,0xef627fd6,0xc4c86bc8,0x44232ffc,0x061539fe,0xe6f9231b,0x958b9533,0x1d04f25a,0x49e8c885,0x180cf934 +.long 0x9884aaf7,0x89689595,0x07b348a6,0xb1959be3,0x3c147c87,0x96250e57,0xdd0c61f8,0xae0efb3a,0xca8c325e,0xed00745e,0xecff3f70,0x3c911696,0x319ad41d,0x73acbc65,0xf0b1c7ef,0x7b01a020 +.long 0x63a1483f,0xea32b293,0x7a248f96,0x89eabe71,0x343157e5,0x9c6231d3,0xdf3c546d,0x93a375e5,0x6a2afe69,0xe76e9343,0xe166c88e,0xc4f89100,0x4f872093,0x248efd0d,0x8fe0ea61,0xae0eb3ea +.long 0x9d79046e,0xaf89790d,0x6cee0976,0x4d650f2d,0x43071eca,0xa3935d9a,0x283b0bfe,0x66fcd2c9,0x696605f1,0x0e665eb5,0xa54cd38d,0xe77e5d07,0x43d950cf,0x90ee050a,0xd32e69b5,0x86ddebda +.long 0xfddf7415,0x6ad94a3d,0x3f6e8d5a,0xf7fa1309,0xe9957f75,0xc4831d1d,0xd5817447,0x7de28501,0x9e2aeb6b,0x6f1d7078,0xf67a53c2,0xba2b9ff4,0xdf9defc3,0x36963767,0x0d38022c,0x479deed3 +.long 0x3a8631e8,0xd2edb89b,0x7a213746,0x8de855de,0xb00c5f11,0xb2056cb7,0x2c9b85e4,0xdeaefbd0,0xd150892d,0x03f39a8d,0x218b7985,0x37b84686,0xb7375f1a,0x36296dd8,0xb78e898e,0x472cd4b1 +.long 0xe9f05de9,0x15dff651,0x2ce98ba9,0xd4045069,0x9b38024c,0x8466a7ae,0xe5a6b5ef,0xb910e700,0xb3aa8f0d,0xae1c56ea,0x7eee74a6,0xbab2a507,0x4b4c4620,0x0dca11e2,0x4c47d1f4,0xfd896e2e +.long 0x308fbd93,0xeb45ae53,0x02c36fda,0x46cd5a2e,0xbaa48385,0x6a3d4e90,0x9dbe9960,0xdd55e62e,0x2a81ede7,0xa1406aa0,0xf9274ea7,0x6860dd14,0x80414f86,0xcfdcb0c2,0x22f94327,0xff410b10 +.long 0x49ad467b,0x5a33cc38,0x0a7335f1,0xefb48b6c,0xb153a360,0x14fb54a4,0xb52469cc,0x604aa9d2,0x754e48e9,0x5e9dc486,0x37471e8e,0x693cb455,0x8d3b37b6,0xfb2fd7cd,0xcf09ff07,0x63345e16 +.long 0x23a5d896,0x9910ba6b,0x7fe4364e,0x1fe19e35,0x9a33c677,0x6e1da8c3,0x29fd9fd0,0x15b4488b,0x1a1f22bf,0x1f439254,0xab8163e8,0x920a8a70,0x07e5658e,0x3fd1b249,0xb6ec839b,0xf2c4f79c +.long 0x4aa38d1b,0x1abbc3d0,0xb5d9510e,0x3b0db35c,0x3e60dec0,0x1754ac78,0xea099b33,0x53272fd7,0x07a8e107,0x5fb0494f,0x6a8191fa,0x4a89e137,0x3c4ad544,0xa113b7f6,0x6cb9897b,0x88a2e909 +.long 0xb44a3f84,0x17d55de3,0x17c6c690,0xacb2f344,0x10232390,0x32088168,0x6c733bf7,0xf2e8a61f,0x9c2d7652,0xa774aab6,0xed95c5bc,0xfb5307e3,0x4981f110,0xa05c73c2,0xa39458c9,0x1baae31c +.long 0xcbea62e7,0x1def185b,0xeaf63059,0xe8ac9eae,0x9921851c,0x098a8cfd,0x3abe2f5b,0xd959c3f1,0x20e40ae5,0xa4f19525,0x07a24aa1,0x320789e3,0x7392b2bc,0x259e6927,0x1918668b,0x58f6c667 +.long 0xc55d2d8b,0xce1db2bb,0xf4f6ca56,0x41d58bb7,0x8f877614,0x7650b680,0xf4c349ed,0x905e16ba,0xf661acac,0xed415140,0xcb2270af,0x3b8784f0,0x8a402cba,0x3bc280ac,0x0937921a,0xd53f7146 +.long 0xe5681e83,0xc03c8ee5,0xf6ac9e4a,0x62126105,0x936b1a38,0x9503a53f,0x782fecbd,0x3d45e2d4,0x76e8ae98,0x69a5c439,0xbfb4b00e,0xb53b2eeb,0x72386c89,0xf1674712,0x4268bce4,0x30ca34a2 +.long 0x78341730,0x7f1ed86c,0xb525e248,0x8ef5beb8,0xb74fbf38,0xbbc489fd,0x91a0b382,0x38a92a0e,0x22433ccf,0x7a77ba3f,0xa29f05a9,0xde8362d6,0x61189afc,0x7f6a30ea,0x59ef114f,0x693b5505 +.long 0xcd1797a1,0x50266bc0,0xf4b7af2d,0xea17b47e,0x3df9483e,0xd6c4025c,0xa37b18c9,0x8cbb9d9f,0x4d8424cf,0x91cbfd9c,0xab1c3506,0xdb7048f1,0x028206a3,0x9eaf641f,0x25bdf6ce,0xf986f3f9 +.long 0x224c08dc,0x262143b5,0x81b50c91,0x2bbb09b4,0xaca8c84f,0xc16ed709,0xb2850ca8,0xa6210d9d,0x09cb54d6,0x6d8df67a,0x500919a4,0x91eef6e0,0x0f132857,0x90f61381,0xf8d5028b,0x9acede47 +.long 0x90b771c3,0x844d1b71,0xba6426be,0x563b71e4,0xbdb802ff,0x2efa2e83,0xab5b4a41,0x3410cbab,0x30da84dd,0x555b2d26,0xee1cc29a,0xd0711ae9,0x2f547792,0xcf3e8c60,0xdc678b35,0x03d7d5de +.long 0xced806b8,0x071a2fa8,0x697f1478,0x222e6134,0xabfcdbbf,0xdc16fd5d,0x121b53b8,0x44912ebf,0x2496c27c,0xac943674,0x1ffc26b0,0x8ea3176c,0x13debf2c,0xb6e224ac,0xf372a832,0x524cc235 +.long 0x9f6f1b18,0xd706e1d8,0x44cce35b,0x2552f005,0xa88e31fc,0x8c8326c2,0xf9552047,0xb5468b2c,0x3ff90f2b,0xce683e88,0x2f0a5423,0x77947bdf,0xed56e328,0xd0a1b28b,0xc20134ac,0xaee35253 +.long 0x3567962f,0x7e98367d,0x8188bffb,0x379ed61f,0xfaf130a1,0x73bba348,0x904ed734,0x6c1f75e1,0x3b4a79fc,0x18956642,0x54ef4493,0xf20bc83d,0x9111eca1,0x836d425d,0x009a8dcf,0xe5b5c318 +.long 0x13221bc5,0x3360b25d,0x6b3eeaf7,0x707baad2,0x743a95a1,0xd7279ed8,0x969e809f,0x7450a875,0xe5d0338f,0x32b6bd53,0x2b883bbc,0x1e77f7af,0x1063ecd0,0x90da12cc,0xc315be47,0xe2697b58 +.long 0xda85d534,0x2771a5bd,0xff980eea,0x53e78c1f,0x900385e7,0xadf1cf84,0xc9387b62,0x7d3b14f6,0xcb8f2bd2,0x170e74b0,0x827fa993,0x2d50b486,0xf6f32bab,0xcdbe8c9a,0xc3b93ab8,0x55e906b0 +.long 0x8fe280d1,0x747f22fc,0xb2e114ab,0xcd8e0de5,0xe10b68b0,0x5ab7dbeb,0xa480d4b2,0x9dc63a9c,0x4be1495f,0x78d4bc3b,0x9359122d,0x25eb3db8,0x0809cbdc,0x3f8ac05b,0xd37c702f,0xbf4187bb +.long 0x1416a6a5,0x84cea069,0x43ef881c,0x8f860c79,0x38038a5d,0x41311f8a,0xfc612067,0xe78c2ec0,0x5ad73581,0x494d2e81,0x59604097,0xb4cc9e00,0xf3612cba,0xff558aec,0x9e36c39e,0x35beef7a +.long 0xdbcf41b9,0x1845c7cf,0xaea997c0,0x5703662a,0xe402f6d8,0x8b925afe,0x4dd72162,0xd0a1b1ae,0x03c41c4b,0x9f47b375,0x0391d042,0xa023829b,0x503b8b0a,0x5f5045c3,0x98c010e5,0x123c2688 +.long 0x36ba06ee,0x324ec0cc,0x3dd2cc0c,0xface3115,0xf333e91f,0xb364f3be,0x28e832b0,0xef8aff73,0x2d05841b,0x1e9bad04,0x356a21e2,0x42f0e3df,0x4add627e,0xa3270bcb,0xd322e711,0xb09a8158 +.long 0x0fee104a,0x86e326a1,0x3703f65d,0xad7788f8,0x47bc4833,0x7e765430,0x2b9b893a,0x6cee582b,0xe8f55a7b,0x9cd2a167,0xd9e4190d,0xefbee3c6,0xd40c2e9d,0x33ee7185,0xa380b548,0x844cc9c5 +.long 0x66926e04,0x323f8ecd,0x8110c1ba,0x0001e38f,0xfc6a7f07,0x8dbcac12,0x0cec0827,0xd65e1d58,0xbe76ca2d,0xd2cd4141,0xe892f33a,0x7895cf5c,0x367139d2,0x956d230d,0xd012c4c1,0xa91abd3e +.long 0x87eb36bf,0x34fa4883,0x914b8fb4,0xc5f07102,0xadb9c95f,0x90f0e579,0x28888195,0xfe6ea8cb,0xedfa9284,0x7b9b5065,0x2b8c8d65,0x6c510bd2,0xcbe8aafd,0xd7b8ebef,0x96b1da07,0xedb3af98 +.long 0x6295d426,0x28ff779d,0x3fa3ad7b,0x0c4f6ac7,0x8b8e2604,0xec44d054,0x8b0050e1,0x9b32a66d,0xf0476ce2,0x1f943366,0xa602c7b4,0x7554d953,0x524f2809,0xbe35aca6,0xfd4edbea,0xb6881229 +.long 0x508efb63,0xe8cd0c8f,0x6abcefc7,0x9eb5b5c8,0xb441ab4f,0xf5621f5f,0xb76a2b22,0x79e6c046,0xe37a1f69,0x74a4792c,0x03542b60,0xcbd252cb,0xb3c20bd3,0x785f65d5,0x4fabc60c,0x8dea6143 +.long 0xde673629,0x45e21446,0x703c2d21,0x57f7aa1e,0x98c868c7,0xa0e99b7f,0x8b641676,0x4e42f66d,0x91077896,0x602884dc,0xc2c9885b,0xa0d690cf,0x3b9a5187,0xfeb4da33,0x153c87ee,0x5f789598 +.long 0x52b16dba,0x2192dd47,0x3524c1b1,0xdeefc0e6,0xe4383693,0x465ea76e,0x361b8d98,0x79401711,0xf21a15cb,0xa5f9ace9,0xefee9aeb,0x73d26163,0xe677016c,0xcca844b3,0x57eaee06,0x6c122b07 +.long 0x15f09690,0xb782dce7,0x2dfc0fc9,0x508b9b12,0x65d89fc6,0x9015ab4b,0xd6d5bb0f,0x5e79dab7,0x6c775aa2,0x64f021f0,0x37c7eca1,0xdf09d8cc,0xef2fa506,0x9a761367,0x5b81eec6,0xed4ca476 +.long 0x10bbb8b5,0x262ede36,0x0641ada3,0x0737ce83,0xe9831ccc,0x4c94288a,0x8065e635,0x487fc1ce,0xb8bb3659,0xb13d7ab3,0x855e4120,0xdea5df3e,0x85eb0244,0xb9a18573,0xa7cfe0a3,0x1a1b8ea3 +.long 0x67b0867c,0x3b837119,0x9d364520,0x8d5e0d08,0xd930f0e3,0x52dccc1e,0xbf20bbaf,0xefbbcec7,0x0263ad10,0x99cffcab,0xfcd18f8a,0xd8199e6d,0xe9f10617,0x64e2773f,0x08704848,0x0079e8e1 +.long 0x8a342283,0x1169989f,0xa83012e6,0x8097799c,0x8a6a9001,0xece966cb,0x072ac7fc,0x93b3afef,0x2db3d5ba,0xe6893a2a,0x89bf4fdc,0x263dc462,0xe0396673,0x8852dfc9,0x3af362b6,0x7ac70895 +.long 0x5c2f342b,0xbb9cce4d,0xb52d7aae,0xbf80907a,0x2161bcd0,0x97f3d3cd,0x0962744d,0xb25b0834,0x6c3a1dda,0xc5b18ea5,0x06c92317,0xfe4ec7eb,0xad1c4afe,0xb787b890,0x0ede801a,0xdccd9a92 +.long 0xdb58da1f,0x9ac6ddda,0xb8cae6ee,0x22bbc12f,0x815c4a43,0xc6f8bced,0xf96480c7,0x8105a92c,0x7a859d51,0x0dc3dbf3,0x3041196b,0xe3ec7ce6,0x0d1067c9,0xd9f64b25,0x3d1f8dd8,0xf2321321 +.long 0x76497ee8,0x8b5c619c,0xc717370e,0x5d2b0ac6,0x4fcf68e1,0x98204cb6,0x62bc6792,0x0bdec211,0xa63b1011,0x6973ccef,0xe0de1ac5,0xf9e3fa97,0x3d0e0c8b,0x5efb693e,0xd2d4fcb4,0x037248e9 +.long 0x1ec34f9e,0x80802dc9,0x33810603,0xd8772d35,0x530cb4f3,0x3f06d66c,0xc475c129,0x7be5ed0d,0x31e82b10,0xcb9e3c19,0xc9ff6b4c,0xc63d2857,0x92a1b45e,0xb92118c6,0x7285bbca,0x0aec4414 +.long 0x1e29a3ef,0xfc189ae7,0x4c93302e,0xcbe906f0,0xceaae10e,0xd0107914,0xb68e19f8,0xb7a23f34,0xefd2119d,0xe9d875c2,0xfcadc9c8,0x03198c6e,0x4da17113,0x65591bf6,0x3d443038,0x3cf0bbf8 +.long 0x2b724759,0xae485bb7,0xb2d4c63a,0x945353e1,0xde7d6f2c,0x82159d07,0x4ec5b109,0x389caef3,0xdb65ef14,0x4a8ebb53,0xdd99de43,0x2dc2cb7e,0x83f2405f,0x816fa3ed,0xc14208a3,0x73429bb9 +.long 0xb01e6e27,0xb618d590,0xe180b2dc,0x047e2ccd,0x04aea4a9,0xd1b299b5,0x9fa403a4,0x412c9e1e,0x79407552,0x88d28a36,0xf332b8e3,0x49c50136,0xe668de19,0x3a1b6fcc,0x75122b97,0x178851bc +.long 0xfb85fa4c,0xb1e13752,0x383c8ce9,0xd61257ce,0xd2f74dae,0xd43da670,0xbf846bbb,0xa35aa23f,0x4421fc83,0x5e74235d,0xc363473b,0xf6df8ee0,0x3c4aa158,0x34d7f52a,0x9bc6d22e,0x50d05aab +.long 0xa64785f4,0x8c56e735,0x5f29cd07,0xbc56637b,0x3ee35067,0x53b2bb80,0xdc919270,0x50235a0f,0xf2c4aa65,0x191ab6d8,0x8396023b,0xc3475831,0xf0f805ba,0x80400ba5,0x5ec0f80f,0x8881065b +.long 0xcc1b5e83,0xc370e522,0x860b8bfb,0xde2d4ad1,0x67b256df,0xad364df0,0xe0138997,0x8f12502e,0x7783920a,0x503fa0dc,0xc0bc866a,0xe80014ad,0xd3064ba6,0x3f89b744,0xcba5dba5,0x03511dcd +.long 0x95a7b1a2,0x197dd46d,0x3c6341fb,0x9c4e7ad6,0x484c2ece,0x426eca29,0xde7f4f8a,0x9211e489,0xc78ef1f4,0x14997f6e,0x06574586,0x2b2c0910,0x1c3eede8,0x17286a6e,0x0f60e018,0x25f92e47 +.long 0x31890a36,0x805c5646,0x57feea5b,0x703ef600,0xaf3c3030,0x389f747c,0x54dd3739,0xe0e5daeb,0xc9c9f155,0xfe24a4c3,0xb5393962,0x7e4bf176,0xaf20bf29,0x37183de2,0xf95a8c3b,0x4a1bd7b5 +.long 0x46191d3d,0xa83b9699,0x7b87f257,0x281fc8dd,0x54107588,0xb18e2c13,0x9b2bafe8,0x6372def7,0x0d8972ca,0xdaf4bb48,0x56167a3f,0x3f2dd4b7,0x84310cf4,0x1eace32d,0xe42700aa,0xe3bcefaf +.long 0xd785e73d,0x5fe5691e,0x2ea60467,0xa5db5ab6,0xdfc6514a,0x02e23d41,0xe03c3665,0x35e8048e,0x1adaa0f8,0x3f8b118f,0x84ce1a5a,0x28ec3b45,0x2c6646b8,0xe8cacc6e,0xdbd0e40f,0x1343d185 +.long 0xcaaa358c,0xe5d7f844,0x9924182a,0x1a1db7e4,0x9c875d9a,0xd64cd42d,0x042eeec8,0xb37b515f,0x7b165fbe,0x4d4dd409,0xe206eff3,0xfc322ed9,0x59b7e17e,0x7dee4102,0x8236ca00,0x55a481c0 +.long 0xc23fc975,0x8c885312,0x05d6297b,0x15715806,0xf78edd39,0xa078868e,0x03c45e52,0x956b31e0,0xff7b33a6,0x470275d5,0x0c7e673f,0xc8d5dc3a,0x7e2f2598,0x419227b4,0x4c14a975,0x8b37b634 +.long 0x8b11888c,0xd0667ed6,0x803e25dc,0x5e0e8c3e,0xb987a24a,0x34e5d0dc,0xae920323,0x9f40ac3b,0x34e0f63a,0x5463de95,0x6b6328f9,0xa128bf92,0xda64f1b7,0x491ccd7c,0xc47bde35,0x7ef1ec27 +.long 0xa36a2737,0xa857240f,0x63621bc1,0x35dc1366,0xd4fb6897,0x7a3a6453,0xc929319d,0x80f1a439,0xf8cb0ba0,0xfc18274b,0x8078c5eb,0xb0b53766,0x1e01d0ef,0xfb0d4924,0x372ab09c,0x50d7c67d +.long 0x3aeac968,0xb4e370af,0xc4b63266,0xe4f7fee9,0xe3ac5664,0xb4acd4c2,0xceb38cbf,0xf8910bd2,0xc9c0726e,0x1c3ae50c,0xd97b40bf,0x15309569,0xfd5a5a1b,0x70884b7f,0xef8314cd,0x3890896a +.long 0xa5618c93,0x58e1515c,0x77d942d1,0xe665432b,0xb6f767a8,0xb32181bf,0x3a604110,0x753794e8,0xe8c0dbcc,0x09afeb7c,0x598673a3,0x31e02613,0x7d46db00,0x5d98e557,0x9d985b28,0xfc21fb8c +.long 0xb0843e0b,0xc9040116,0x69b04531,0x53b1b3a8,0x85d7d830,0xdd1649f0,0xcb7427e8,0xbb3bcc87,0xc93dce83,0x77261100,0xa1922a2a,0x7e79da61,0xf3149ce8,0x587a2b02,0xde92ec83,0x147e1384 +.long 0xaf077f30,0x484c83d3,0x0658b53a,0xea78f844,0x027aec53,0x912076c2,0x93c8177d,0xf34714e3,0xc2376c84,0x37ef5d15,0x3d1aa783,0x8315b659,0xef852a90,0x3a75c484,0x16086bd4,0x0ba0c58a +.long 0x529a6d48,0x29688d7a,0xc2f19203,0x9c7f250d,0x682e2df9,0x123042fb,0xad8121bc,0x2b7587e7,0xe0182a65,0x30fc0233,0xe3e1128a,0xb82ecf87,0x93fb098f,0x71682861,0x85e9e6a7,0x043e21ae +.long 0x66c834ea,0xab5b49d6,0x47414287,0x3be43e18,0x219a2a47,0xf40fb859,0xcc58df3c,0x0e6559e9,0x0c6615b4,0xfe1dfe8e,0x56459d70,0x14abc8fd,0x05de0386,0x7be0fa8e,0xe9035c7c,0x8e63ef68 +.long 0x53b31e91,0x116401b4,0x4436b4d8,0x0cba7ad4,0x107afd66,0x9151f9a0,0x1f0ee4c4,0xafaca8d0,0x9ee9761c,0x75fe5c1d,0xf0c0588f,0x3497a16b,0x0304804c,0x3ee2bebd,0xc2c990b9,0xa8fb9a60 +.long 0x39251114,0xd14d32fe,0xcac73366,0x36bf25bc,0xdba7495c,0xc9562c66,0x46ad348b,0x324d301b,0xd670407e,0x9f46620c,0xe3733a01,0x0ea8d4f1,0xb0c324e0,0xd396d532,0x03c317cd,0x5b211a0e +.long 0x5ffe7b37,0x090d7d20,0x1747d2da,0x3b7f3efb,0xb54fc519,0xa2cb525f,0xf66a971e,0x6e220932,0xb486d440,0xddc160df,0x3fe13465,0x7fcfec46,0x76e4c151,0x83da7e4e,0xd8d302b5,0xd6fa48a1 +.long 0x5872cd88,0xc6304f26,0x278b90a1,0x806c1d3c,0xcaf0bc1c,0x3553e725,0xbb9d8d5c,0xff59e603,0x7a0b85dd,0xa4550f32,0x93ecc217,0xdec5720a,0x69d62213,0x0b88b741,0x5b365955,0x7212f245 +.long 0xb5cae787,0x20764111,0x1dfd3124,0x13cb7f58,0x1175aefb,0x2dca77da,0xffaae775,0xeb75466b,0xdb6cff32,0x74d76f3b,0x61fcda9a,0x7440f37a,0xb525028b,0x1bb3ac92,0xa1975f29,0x20fbf8f7 +.long 0xdf83097f,0x982692e1,0x554b0800,0x28738f6c,0xa2ce2f2f,0xdc703717,0x40814194,0x7913b93c,0x1fe89636,0x04924593,0xf78834a6,0x7b98443f,0x5114a5a1,0x11c6ab01,0xffba5f4c,0x60deb383 +.long 0x01a982e6,0x4caa54c6,0x3491cd26,0x1dd35e11,0x7cbd6b05,0x973c315f,0x52494724,0xcab00775,0x6565e15a,0x04659b1f,0x8c8fb026,0xbf30f529,0xa8a0de37,0xfc21641b,0xfa5e5114,0xe9c7a366 +.long 0x52f03ad8,0xdb849ca5,0x024e35c0,0xc7e8dbe9,0xcfc3c789,0xa1a2bbac,0x9c26f262,0xbf733e7d,0xb8444823,0x882ffbf5,0x6bf8483b,0xb7224e88,0x65bef640,0x53023b8b,0xd4d5f8cd,0xaabfec91 +.long 0x079ea1bd,0xa40e1510,0xd05d5d26,0x1ad9addc,0x13e68d4f,0xdb3f2eab,0x640f803f,0x1cff1ae2,0xd4cee117,0xe0e7b749,0x4036d909,0x8e9f275b,0x8f4d4c38,0xce34e31d,0xd75130fc,0x22b37f69 +.long 0xb4014604,0x83e0f1fd,0x89415078,0xa8ce9919,0x41792efe,0x82375b75,0x97d4515b,0x4f59bf5c,0x923a277d,0xac4f324f,0x650f3406,0xd9bc9b7d,0x8a39bc51,0xc6fa87d1,0x5ccc108f,0x82588530 +.long 0x82e4c634,0x5ced3c9f,0x3a4464f8,0x8efb8314,0x7a1dca25,0xe706381b,0x5a2a412b,0x6cd15a3c,0xbfcd8fb5,0x9347a8fd,0x6e54cd22,0x31db2eef,0xf8d8932f,0xc4aeb11e,0x344411af,0x11e7c1ed +.long 0xdc9a151e,0x2653050c,0x3bb0a859,0x9edbfc08,0xfd5691e7,0x926c81c7,0x6f39019a,0x9c1b2342,0x7f8474b9,0x64a81c8b,0x01761819,0x90657c07,0x55e0375a,0x390b3331,0xb6ebc47d,0xc676c626 +.long 0xb7d6dee8,0x51623247,0x79659313,0x0948d927,0xe9ab35ed,0x99700161,0x8ddde408,0x06cc32b4,0x061ef338,0x6f2fd664,0xc202e9ed,0x1606fa02,0x929ba99b,0x55388bc1,0x1e81df69,0xc4428c5e +.long 0xf91b0b2a,0xce2028ae,0xf03dfd3f,0xce870a23,0x0affe8ed,0x66ec2c87,0x284d0c00,0xb205fb46,0x44cefa48,0xbf5dffe7,0xa19876d7,0xb6fc37a8,0x08b72863,0xbecfa84c,0x2576374f,0xd7205ff5 +.long 0x8887de41,0x80330d32,0x869ea534,0x5de0df0c,0x3c56ea17,0x13f42753,0x452b1a78,0xeb1f6069,0xe30ea15c,0x50474396,0xc1494125,0x575816a1,0xfe6bb38f,0xbe1ce55b,0x96ae30f7,0xb901a948 +.long 0xd8fc3548,0xe5af0f08,0xd73bfd08,0x5010b5d0,0x53fe655a,0x993d2880,0x1c1309fd,0x99f2630b,0xb4e3b76f,0xd8677baf,0xb840784b,0x14e51ddc,0xbf0092ce,0x326c750c,0xf528320f,0xc83d306b +.long 0x77d4715c,0xc4456715,0x6b703235,0xd30019f9,0xd669e986,0x207ccb2e,0xf6dbfc28,0x57c824af,0xd8f92a23,0xf0eb532f,0x9bb98fd2,0x4a557fd4,0xc1e6199a,0xa57acea7,0x8b94b1ed,0x0c663820 +.long 0xf83a9266,0x9b42be8f,0x0101bd45,0xc7741c97,0x07bd9ceb,0x95770c11,0x8b2e0744,0x1f50250a,0x1477b654,0xf762eec8,0x15efe59a,0xc65b900e,0x9546a897,0x88c96148,0xc30b4d7c,0x7e8025b3 +.long 0x12045cf9,0xae4065ef,0x9ccce8bd,0x6fcb2caf,0xf2cf6525,0x1fa0ba4e,0xcb72c312,0xf683125d,0xe312410e,0xa01da4ea,0x6cd8e830,0x67e28677,0x98fb3f07,0xabd95752,0xeef649a5,0x05f11e11 +.long 0x9d3472c2,0xba47faef,0xc77d1345,0x3adff697,0xdd15afee,0x4761fa04,0xb9e69462,0x64f1f61a,0x9bfb9093,0xfa691fab,0xa1133dfe,0x3df8ae8f,0x58cc710d,0xcd5f8967,0x16c7fe79,0xfbb88d50 +.long 0xe88c50d1,0x8e011b4c,0xa8771c4f,0x7532e807,0xe2278ee4,0x64c78a48,0x3845072a,0x0b283e83,0x49e69274,0x98a6f291,0x1868b21c,0xb96e9668,0xb1a8908e,0x38f0adc2,0x1feb829d,0x90afcff7 +.long 0x210b0856,0x9915a383,0xdef04889,0xa5a80602,0x7c64d509,0x800e9af9,0xb8996f6f,0x81382d0b,0x81927e27,0x490eba53,0x4af50182,0x46c63b32,0xd3ad62ce,0x784c5fd9,0xf8ae8736,0xe4fa1870 +.long 0xd7466b25,0x4ec9d0bc,0xdb235c65,0x84ddbe1a,0x163c1688,0x5e2645ee,0x00eba747,0x570bd00e,0x128bfa0f,0xfa51b629,0x6c1d3b68,0x92fce1bd,0xb66778b1,0x3e7361dc,0x5561d2bb,0x9c7d249d +.long 0x0bbc6229,0xa40b28bf,0xdfd91497,0x1c83c05e,0xf083df05,0x5f9f5154,0xeee66c9d,0xbac38b3c,0xec0dfcfd,0xf71db7e3,0x8b0a8416,0xf2ecda8e,0x7812aa66,0x52fddd86,0x4e6f4272,0x2896ef10 +.long 0x0fe9a745,0xff27186a,0x49ca70db,0x08249fcd,0x441cac49,0x7425a2e6,0xece5ff57,0xf4a0885a,0x7d7ead58,0x6e2cb731,0x1898d104,0xf96cf7d6,0x4f2c9a89,0xafe67c9d,0x1c7bf5bc,0x89895a50 +.long 0x573cecfa,0xdc7cb8e5,0xd15f03e6,0x66497eae,0x3f084420,0x6bc0de69,0xacd532b0,0x323b9b36,0x0115a3c1,0xcfed390a,0x2d65ca0e,0x9414c40b,0x2f530c78,0x641406bd,0x833438f2,0x29369a44 +.long 0x903fa271,0x996884f5,0xb9da921e,0xe6da0fd2,0x5db01e54,0xa6f2f269,0x6876214e,0x1ee3e9bd,0xe27a9497,0xa26e181c,0x8e215e04,0x36d254e4,0x252cabca,0x42f32a6c,0x80b57614,0x99481487 +.long 0x40d9cae1,0x4c4dfe69,0x11a10f09,0x05869580,0x3491b64b,0xca287b57,0x3fd4a53b,0x77862d5d,0x50349126,0xbf94856e,0x71c5268f,0x2be30bd1,0xcbb650a6,0x10393f19,0x778cf9fd,0x639531fe +.long 0xb2935359,0x02556a11,0xaf8c126e,0xda38aa96,0x0960167f,0x47dbe6c2,0x501901cd,0x37bbabb6,0x2c947778,0xb6e979e0,0x7a1a1dc6,0xd69a5175,0x9d9faf0c,0xc3ed5095,0x1d5fa5f0,0x4dd9c096 +.long 0x64f16ea8,0xa0c4304d,0x7e718623,0x8b1cac16,0x7c67f03e,0x0b576546,0xcbd88c01,0x559cf5ad,0x0e2af19a,0x074877bb,0xa1228c92,0x1f717ec1,0x326e8920,0x70bcb800,0x4f312804,0xec6e2c5c +.long 0x3fca4752,0x426aea7d,0x2211f62a,0xf12c0949,0x7be7b6b5,0x24beecd8,0x36d7a27d,0xb77eaf4c,0xfda78fd3,0x154c2781,0x264eeabe,0x848a83b0,0x4ffe2bc4,0x81287ef0,0xb6b6fc2a,0x7b6d88c6 +.long 0xce417d99,0x805fb947,0x8b916cc4,0x4b93dcc3,0x21273323,0x72e65bb3,0x6ea9886e,0xbcc1badd,0x4bc5ee85,0x0e223011,0xc18ee1e4,0xa561be74,0xa6bcf1f1,0x762fd2d4,0x95231489,0x50e6a5a4 +.long 0xa00b500b,0xca96001f,0x5d7dcdf5,0x5c098cfc,0x8c446a85,0xa64e2d2e,0x971f3c62,0xbae9bcf1,0x8435a2c5,0x4ec22683,0x4bad4643,0x8ceaed6c,0xccccf4e3,0xe9f8fb47,0x1ce3b21e,0xbd4f3fa4 +.long 0xa3db3292,0xd79fb110,0xb536c66a,0xe28a37da,0x8e49e6a9,0x279ce87b,0xfdcec8e3,0x70ccfe8d,0x3ba464b2,0x2193e4e0,0xaca9a398,0x0f39d60e,0xf82c12ab,0x7d7932af,0x91e7e0f7,0xd8ff50ed +.long 0xfa28a7e0,0xea961058,0x0bf5ec74,0xc726cf25,0xdb229666,0xe74d55c8,0xa57f5799,0x0bd9abbf,0x4dfc47b3,0x7479ef07,0x0c52f91d,0xd9c65fc3,0x36a8bde2,0x8e0283fe,0x7d4b7280,0xa32a8b5e +.long 0x12e83233,0x6a677c61,0xdcc9bf28,0x0fbb3512,0x0d780f61,0x562e8ea5,0x1dc4e89c,0x0db8b22b,0x89be0144,0x0a6fd1fb,0xca57113b,0x8c77d246,0xff09c91c,0x4639075d,0x5060824c,0x5b47b17f +.long 0x16287b52,0x58aea2b0,0xd0cd8eb0,0xa1343520,0xc5d58573,0x6148b4d0,0x291c68ae,0xdd2b6170,0x1da3b3b7,0xa61b3929,0x08c4ac10,0x5f946d79,0x7217d583,0x4105d4a5,0x25e6de5e,0x5061da3d +.long 0xec1b4991,0x3113940d,0x36f485ae,0xf12195e1,0x731a2ee0,0xa7507fb2,0x6e9e196e,0x95057a8e,0x2e130136,0xa3c2c911,0x33c60d15,0x97dfbb36,0xb300ee2b,0xcaf3c581,0xf4bac8b8,0x77f25d90 +.long 0x6d840cd6,0xdb1c4f98,0xe634288c,0x471d62c0,0xcec8a161,0x8ec2f85e,0xfa6f4ae2,0x41f37cbc,0x4b709985,0x6793a20f,0xefa8985b,0x7a7bd33b,0x938e6446,0x2c6a3fbd,0x2a8d47c1,0x19042619 +.long 0xcc36975f,0x16848667,0x9d5f1dfb,0x02acf168,0x613baa94,0x62d41ad4,0x9f684670,0xb56fbb92,0xe9e40569,0xce610d0d,0x35489fef,0x7b99c65f,0x3df18b97,0x0c88ad1b,0x5d0e9edb,0x81b7d9be +.long 0xc716cc0a,0xd85218c0,0x85691c49,0xf4b5ff90,0xce356ac6,0xa4fd666b,0x4b327a7a,0x17c72895,0xda6be7de,0xf93d5085,0x3301d34e,0xff71530e,0xd8f448e8,0x4cd96442,0x2ed18ffa,0x9283d331 +.long 0x2a849870,0x4d33dd99,0x41576335,0xa716964b,0x179be0e5,0xff5e3a9b,0x83b13632,0x5b9d6b1b,0xa52f313b,0x3b8bd7d4,0x637a4660,0xc9dd95a0,0x0b3e218f,0x30035962,0xc7b28a3c,0xce1481a3 +.long 0x43228d83,0xab41b43a,0x4ad63f99,0x24ae1c30,0x46a51229,0x8e525f1a,0xcd26d2b4,0x14af860f,0x3f714aa1,0xd6baef61,0xeb78795e,0xf51865ad,0xe6a9d694,0xd3e21fce,0x8a37b527,0x82ceb1dd + +.text + + + +.p2align 6 +L$poly: +.quad 0xffffffffffffffff, 0x00000000ffffffff, 0x0000000000000000, 0xffffffff00000001 + + +L$RR: +.quad 0x0000000000000003, 0xfffffffbffffffff, 0xfffffffffffffffe, 0x00000004fffffffd + +L$One: +.long 1,1,1,1,1,1,1,1 +L$Two: +.long 2,2,2,2,2,2,2,2 +L$Three: +.long 3,3,3,3,3,3,3,3 +L$ONE_mont: +.quad 0x0000000000000001, 0xffffffff00000000, 0xffffffffffffffff, 0x00000000fffffffe + + +L$ord: +.quad 0xf3b9cac2fc632551, 0xbce6faada7179e84, 0xffffffffffffffff, 0xffffffff00000000 +L$ordK: +.quad 0xccd1c8aaee00bc4f + +.globl _ecp_nistz256_mul_by_2 + +.p2align 6 +_ecp_nistz256_mul_by_2: + + pushq %r12 + + pushq %r13 + +L$mul_by_2_body: + + movq 0(%rsi),%r8 + xorq %r13,%r13 + movq 8(%rsi),%r9 + addq %r8,%r8 + movq 16(%rsi),%r10 + adcq %r9,%r9 + movq 24(%rsi),%r11 + leaq L$poly(%rip),%rsi + movq %r8,%rax + adcq %r10,%r10 + adcq %r11,%r11 + movq %r9,%rdx + adcq $0,%r13 + + subq 0(%rsi),%r8 + movq %r10,%rcx + sbbq 8(%rsi),%r9 + sbbq 16(%rsi),%r10 + movq %r11,%r12 + sbbq 24(%rsi),%r11 + sbbq $0,%r13 + + cmovcq %rax,%r8 + cmovcq %rdx,%r9 + movq %r8,0(%rdi) + cmovcq %rcx,%r10 + movq %r9,8(%rdi) + cmovcq %r12,%r11 + movq %r10,16(%rdi) + movq %r11,24(%rdi) + + movq 0(%rsp),%r13 + + movq 8(%rsp),%r12 + + leaq 16(%rsp),%rsp + +L$mul_by_2_epilogue: + .byte 0xf3,0xc3 + + + + + +.globl _ecp_nistz256_div_by_2 + +.p2align 5 +_ecp_nistz256_div_by_2: + + pushq %r12 + + pushq %r13 + +L$div_by_2_body: + + movq 0(%rsi),%r8 + movq 8(%rsi),%r9 + movq 16(%rsi),%r10 + movq %r8,%rax + movq 24(%rsi),%r11 + leaq L$poly(%rip),%rsi + + movq %r9,%rdx + xorq %r13,%r13 + addq 0(%rsi),%r8 + movq %r10,%rcx + adcq 8(%rsi),%r9 + adcq 16(%rsi),%r10 + movq %r11,%r12 + adcq 24(%rsi),%r11 + adcq $0,%r13 + xorq %rsi,%rsi + testq $1,%rax + + cmovzq %rax,%r8 + cmovzq %rdx,%r9 + cmovzq %rcx,%r10 + cmovzq %r12,%r11 + cmovzq %rsi,%r13 + + movq %r9,%rax + shrq $1,%r8 + shlq $63,%rax + movq %r10,%rdx + shrq $1,%r9 + orq %rax,%r8 + shlq $63,%rdx + movq %r11,%rcx + shrq $1,%r10 + orq %rdx,%r9 + shlq $63,%rcx + shrq $1,%r11 + shlq $63,%r13 + orq %rcx,%r10 + orq %r13,%r11 + + movq %r8,0(%rdi) + movq %r9,8(%rdi) + movq %r10,16(%rdi) + movq %r11,24(%rdi) + + movq 0(%rsp),%r13 + + movq 8(%rsp),%r12 + + leaq 16(%rsp),%rsp + +L$div_by_2_epilogue: + .byte 0xf3,0xc3 + + + + + +.globl _ecp_nistz256_mul_by_3 + +.p2align 5 +_ecp_nistz256_mul_by_3: + + pushq %r12 + + pushq %r13 + +L$mul_by_3_body: + + movq 0(%rsi),%r8 + xorq %r13,%r13 + movq 8(%rsi),%r9 + addq %r8,%r8 + movq 16(%rsi),%r10 + adcq %r9,%r9 + movq 24(%rsi),%r11 + movq %r8,%rax + adcq %r10,%r10 + adcq %r11,%r11 + movq %r9,%rdx + adcq $0,%r13 + + subq $-1,%r8 + movq %r10,%rcx + sbbq L$poly+8(%rip),%r9 + sbbq $0,%r10 + movq %r11,%r12 + sbbq L$poly+24(%rip),%r11 + sbbq $0,%r13 + + cmovcq %rax,%r8 + cmovcq %rdx,%r9 + cmovcq %rcx,%r10 + cmovcq %r12,%r11 + + xorq %r13,%r13 + addq 0(%rsi),%r8 + adcq 8(%rsi),%r9 + movq %r8,%rax + adcq 16(%rsi),%r10 + adcq 24(%rsi),%r11 + movq %r9,%rdx + adcq $0,%r13 + + subq $-1,%r8 + movq %r10,%rcx + sbbq L$poly+8(%rip),%r9 + sbbq $0,%r10 + movq %r11,%r12 + sbbq L$poly+24(%rip),%r11 + sbbq $0,%r13 + + cmovcq %rax,%r8 + cmovcq %rdx,%r9 + movq %r8,0(%rdi) + cmovcq %rcx,%r10 + movq %r9,8(%rdi) + cmovcq %r12,%r11 + movq %r10,16(%rdi) + movq %r11,24(%rdi) + + movq 0(%rsp),%r13 + + movq 8(%rsp),%r12 + + leaq 16(%rsp),%rsp + +L$mul_by_3_epilogue: + .byte 0xf3,0xc3 + + + + + +.globl _ecp_nistz256_add + +.p2align 5 +_ecp_nistz256_add: + + pushq %r12 + + pushq %r13 + +L$add_body: + + movq 0(%rsi),%r8 + xorq %r13,%r13 + movq 8(%rsi),%r9 + movq 16(%rsi),%r10 + movq 24(%rsi),%r11 + leaq L$poly(%rip),%rsi + + addq 0(%rdx),%r8 + adcq 8(%rdx),%r9 + movq %r8,%rax + adcq 16(%rdx),%r10 + adcq 24(%rdx),%r11 + movq %r9,%rdx + adcq $0,%r13 + + subq 0(%rsi),%r8 + movq %r10,%rcx + sbbq 8(%rsi),%r9 + sbbq 16(%rsi),%r10 + movq %r11,%r12 + sbbq 24(%rsi),%r11 + sbbq $0,%r13 + + cmovcq %rax,%r8 + cmovcq %rdx,%r9 + movq %r8,0(%rdi) + cmovcq %rcx,%r10 + movq %r9,8(%rdi) + cmovcq %r12,%r11 + movq %r10,16(%rdi) + movq %r11,24(%rdi) + + movq 0(%rsp),%r13 + + movq 8(%rsp),%r12 + + leaq 16(%rsp),%rsp + +L$add_epilogue: + .byte 0xf3,0xc3 + + + + + +.globl _ecp_nistz256_sub + +.p2align 5 +_ecp_nistz256_sub: + + pushq %r12 + + pushq %r13 + +L$sub_body: + + movq 0(%rsi),%r8 + xorq %r13,%r13 + movq 8(%rsi),%r9 + movq 16(%rsi),%r10 + movq 24(%rsi),%r11 + leaq L$poly(%rip),%rsi + + subq 0(%rdx),%r8 + sbbq 8(%rdx),%r9 + movq %r8,%rax + sbbq 16(%rdx),%r10 + sbbq 24(%rdx),%r11 + movq %r9,%rdx + sbbq $0,%r13 + + addq 0(%rsi),%r8 + movq %r10,%rcx + adcq 8(%rsi),%r9 + adcq 16(%rsi),%r10 + movq %r11,%r12 + adcq 24(%rsi),%r11 + testq %r13,%r13 + + cmovzq %rax,%r8 + cmovzq %rdx,%r9 + movq %r8,0(%rdi) + cmovzq %rcx,%r10 + movq %r9,8(%rdi) + cmovzq %r12,%r11 + movq %r10,16(%rdi) + movq %r11,24(%rdi) + + movq 0(%rsp),%r13 + + movq 8(%rsp),%r12 + + leaq 16(%rsp),%rsp + +L$sub_epilogue: + .byte 0xf3,0xc3 + + + + + +.globl _ecp_nistz256_neg + +.p2align 5 +_ecp_nistz256_neg: + + pushq %r12 + + pushq %r13 + +L$neg_body: + + xorq %r8,%r8 + xorq %r9,%r9 + xorq %r10,%r10 + xorq %r11,%r11 + xorq %r13,%r13 + + subq 0(%rsi),%r8 + sbbq 8(%rsi),%r9 + sbbq 16(%rsi),%r10 + movq %r8,%rax + sbbq 24(%rsi),%r11 + leaq L$poly(%rip),%rsi + movq %r9,%rdx + sbbq $0,%r13 + + addq 0(%rsi),%r8 + movq %r10,%rcx + adcq 8(%rsi),%r9 + adcq 16(%rsi),%r10 + movq %r11,%r12 + adcq 24(%rsi),%r11 + testq %r13,%r13 + + cmovzq %rax,%r8 + cmovzq %rdx,%r9 + movq %r8,0(%rdi) + cmovzq %rcx,%r10 + movq %r9,8(%rdi) + cmovzq %r12,%r11 + movq %r10,16(%rdi) + movq %r11,24(%rdi) + + movq 0(%rsp),%r13 + + movq 8(%rsp),%r12 + + leaq 16(%rsp),%rsp + +L$neg_epilogue: + .byte 0xf3,0xc3 + + + + + + + + +.globl _ecp_nistz256_ord_mul_mont + +.p2align 5 +_ecp_nistz256_ord_mul_mont: + + movl $0x80100,%ecx + andl _OPENSSL_ia32cap_P+8(%rip),%ecx + cmpl $0x80100,%ecx + je L$ecp_nistz256_ord_mul_montx + pushq %rbp + + pushq %rbx + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + +L$ord_mul_body: + + movq 0(%rdx),%rax + movq %rdx,%rbx + leaq L$ord(%rip),%r14 + movq L$ordK(%rip),%r15 + + + movq %rax,%rcx + mulq 0(%rsi) + movq %rax,%r8 + movq %rcx,%rax + movq %rdx,%r9 + + mulq 8(%rsi) + addq %rax,%r9 + movq %rcx,%rax + adcq $0,%rdx + movq %rdx,%r10 + + mulq 16(%rsi) + addq %rax,%r10 + movq %rcx,%rax + adcq $0,%rdx + + movq %r8,%r13 + imulq %r15,%r8 + + movq %rdx,%r11 + mulq 24(%rsi) + addq %rax,%r11 + movq %r8,%rax + adcq $0,%rdx + movq %rdx,%r12 + + + mulq 0(%r14) + movq %r8,%rbp + addq %rax,%r13 + movq %r8,%rax + adcq $0,%rdx + movq %rdx,%rcx + + subq %r8,%r10 + sbbq $0,%r8 + + mulq 8(%r14) + addq %rcx,%r9 + adcq $0,%rdx + addq %rax,%r9 + movq %rbp,%rax + adcq %rdx,%r10 + movq %rbp,%rdx + adcq $0,%r8 + + shlq $32,%rax + shrq $32,%rdx + subq %rax,%r11 + movq 8(%rbx),%rax + sbbq %rdx,%rbp + + addq %r8,%r11 + adcq %rbp,%r12 + adcq $0,%r13 + + + movq %rax,%rcx + mulq 0(%rsi) + addq %rax,%r9 + movq %rcx,%rax + adcq $0,%rdx + movq %rdx,%rbp + + mulq 8(%rsi) + addq %rbp,%r10 + adcq $0,%rdx + addq %rax,%r10 + movq %rcx,%rax + adcq $0,%rdx + movq %rdx,%rbp + + mulq 16(%rsi) + addq %rbp,%r11 + adcq $0,%rdx + addq %rax,%r11 + movq %rcx,%rax + adcq $0,%rdx + + movq %r9,%rcx + imulq %r15,%r9 + + movq %rdx,%rbp + mulq 24(%rsi) + addq %rbp,%r12 + adcq $0,%rdx + xorq %r8,%r8 + addq %rax,%r12 + movq %r9,%rax + adcq %rdx,%r13 + adcq $0,%r8 + + + mulq 0(%r14) + movq %r9,%rbp + addq %rax,%rcx + movq %r9,%rax + adcq %rdx,%rcx + + subq %r9,%r11 + sbbq $0,%r9 + + mulq 8(%r14) + addq %rcx,%r10 + adcq $0,%rdx + addq %rax,%r10 + movq %rbp,%rax + adcq %rdx,%r11 + movq %rbp,%rdx + adcq $0,%r9 + + shlq $32,%rax + shrq $32,%rdx + subq %rax,%r12 + movq 16(%rbx),%rax + sbbq %rdx,%rbp + + addq %r9,%r12 + adcq %rbp,%r13 + adcq $0,%r8 + + + movq %rax,%rcx + mulq 0(%rsi) + addq %rax,%r10 + movq %rcx,%rax + adcq $0,%rdx + movq %rdx,%rbp + + mulq 8(%rsi) + addq %rbp,%r11 + adcq $0,%rdx + addq %rax,%r11 + movq %rcx,%rax + adcq $0,%rdx + movq %rdx,%rbp + + mulq 16(%rsi) + addq %rbp,%r12 + adcq $0,%rdx + addq %rax,%r12 + movq %rcx,%rax + adcq $0,%rdx + + movq %r10,%rcx + imulq %r15,%r10 + + movq %rdx,%rbp + mulq 24(%rsi) + addq %rbp,%r13 + adcq $0,%rdx + xorq %r9,%r9 + addq %rax,%r13 + movq %r10,%rax + adcq %rdx,%r8 + adcq $0,%r9 + + + mulq 0(%r14) + movq %r10,%rbp + addq %rax,%rcx + movq %r10,%rax + adcq %rdx,%rcx + + subq %r10,%r12 + sbbq $0,%r10 + + mulq 8(%r14) + addq %rcx,%r11 + adcq $0,%rdx + addq %rax,%r11 + movq %rbp,%rax + adcq %rdx,%r12 + movq %rbp,%rdx + adcq $0,%r10 + + shlq $32,%rax + shrq $32,%rdx + subq %rax,%r13 + movq 24(%rbx),%rax + sbbq %rdx,%rbp + + addq %r10,%r13 + adcq %rbp,%r8 + adcq $0,%r9 + + + movq %rax,%rcx + mulq 0(%rsi) + addq %rax,%r11 + movq %rcx,%rax + adcq $0,%rdx + movq %rdx,%rbp + + mulq 8(%rsi) + addq %rbp,%r12 + adcq $0,%rdx + addq %rax,%r12 + movq %rcx,%rax + adcq $0,%rdx + movq %rdx,%rbp + + mulq 16(%rsi) + addq %rbp,%r13 + adcq $0,%rdx + addq %rax,%r13 + movq %rcx,%rax + adcq $0,%rdx + + movq %r11,%rcx + imulq %r15,%r11 + + movq %rdx,%rbp + mulq 24(%rsi) + addq %rbp,%r8 + adcq $0,%rdx + xorq %r10,%r10 + addq %rax,%r8 + movq %r11,%rax + adcq %rdx,%r9 + adcq $0,%r10 + + + mulq 0(%r14) + movq %r11,%rbp + addq %rax,%rcx + movq %r11,%rax + adcq %rdx,%rcx + + subq %r11,%r13 + sbbq $0,%r11 + + mulq 8(%r14) + addq %rcx,%r12 + adcq $0,%rdx + addq %rax,%r12 + movq %rbp,%rax + adcq %rdx,%r13 + movq %rbp,%rdx + adcq $0,%r11 + + shlq $32,%rax + shrq $32,%rdx + subq %rax,%r8 + sbbq %rdx,%rbp + + addq %r11,%r8 + adcq %rbp,%r9 + adcq $0,%r10 + + + movq %r12,%rsi + subq 0(%r14),%r12 + movq %r13,%r11 + sbbq 8(%r14),%r13 + movq %r8,%rcx + sbbq 16(%r14),%r8 + movq %r9,%rbp + sbbq 24(%r14),%r9 + sbbq $0,%r10 + + cmovcq %rsi,%r12 + cmovcq %r11,%r13 + cmovcq %rcx,%r8 + cmovcq %rbp,%r9 + + movq %r12,0(%rdi) + movq %r13,8(%rdi) + movq %r8,16(%rdi) + movq %r9,24(%rdi) + + movq 0(%rsp),%r15 + + movq 8(%rsp),%r14 + + movq 16(%rsp),%r13 + + movq 24(%rsp),%r12 + + movq 32(%rsp),%rbx + + movq 40(%rsp),%rbp + + leaq 48(%rsp),%rsp + +L$ord_mul_epilogue: + .byte 0xf3,0xc3 + + + + + + + + + +.globl _ecp_nistz256_ord_sqr_mont + +.p2align 5 +_ecp_nistz256_ord_sqr_mont: + + movl $0x80100,%ecx + andl _OPENSSL_ia32cap_P+8(%rip),%ecx + cmpl $0x80100,%ecx + je L$ecp_nistz256_ord_sqr_montx + pushq %rbp + + pushq %rbx + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + +L$ord_sqr_body: + + movq 0(%rsi),%r8 + movq 8(%rsi),%rax + movq 16(%rsi),%r14 + movq 24(%rsi),%r15 + leaq L$ord(%rip),%rsi + movq %rdx,%rbx + jmp L$oop_ord_sqr + +.p2align 5 +L$oop_ord_sqr: + + movq %rax,%rbp + mulq %r8 + movq %rax,%r9 +.byte 102,72,15,110,205 + movq %r14,%rax + movq %rdx,%r10 + + mulq %r8 + addq %rax,%r10 + movq %r15,%rax +.byte 102,73,15,110,214 + adcq $0,%rdx + movq %rdx,%r11 + + mulq %r8 + addq %rax,%r11 + movq %r15,%rax +.byte 102,73,15,110,223 + adcq $0,%rdx + movq %rdx,%r12 + + + mulq %r14 + movq %rax,%r13 + movq %r14,%rax + movq %rdx,%r14 + + + mulq %rbp + addq %rax,%r11 + movq %r15,%rax + adcq $0,%rdx + movq %rdx,%r15 + + mulq %rbp + addq %rax,%r12 + adcq $0,%rdx + + addq %r15,%r12 + adcq %rdx,%r13 + adcq $0,%r14 + + + xorq %r15,%r15 + movq %r8,%rax + addq %r9,%r9 + adcq %r10,%r10 + adcq %r11,%r11 + adcq %r12,%r12 + adcq %r13,%r13 + adcq %r14,%r14 + adcq $0,%r15 + + + mulq %rax + movq %rax,%r8 +.byte 102,72,15,126,200 + movq %rdx,%rbp + + mulq %rax + addq %rbp,%r9 + adcq %rax,%r10 +.byte 102,72,15,126,208 + adcq $0,%rdx + movq %rdx,%rbp + + mulq %rax + addq %rbp,%r11 + adcq %rax,%r12 +.byte 102,72,15,126,216 + adcq $0,%rdx + movq %rdx,%rbp + + movq %r8,%rcx + imulq 32(%rsi),%r8 + + mulq %rax + addq %rbp,%r13 + adcq %rax,%r14 + movq 0(%rsi),%rax + adcq %rdx,%r15 + + + mulq %r8 + movq %r8,%rbp + addq %rax,%rcx + movq 8(%rsi),%rax + adcq %rdx,%rcx + + subq %r8,%r10 + sbbq $0,%rbp + + mulq %r8 + addq %rcx,%r9 + adcq $0,%rdx + addq %rax,%r9 + movq %r8,%rax + adcq %rdx,%r10 + movq %r8,%rdx + adcq $0,%rbp + + movq %r9,%rcx + imulq 32(%rsi),%r9 + + shlq $32,%rax + shrq $32,%rdx + subq %rax,%r11 + movq 0(%rsi),%rax + sbbq %rdx,%r8 + + addq %rbp,%r11 + adcq $0,%r8 + + + mulq %r9 + movq %r9,%rbp + addq %rax,%rcx + movq 8(%rsi),%rax + adcq %rdx,%rcx + + subq %r9,%r11 + sbbq $0,%rbp + + mulq %r9 + addq %rcx,%r10 + adcq $0,%rdx + addq %rax,%r10 + movq %r9,%rax + adcq %rdx,%r11 + movq %r9,%rdx + adcq $0,%rbp + + movq %r10,%rcx + imulq 32(%rsi),%r10 + + shlq $32,%rax + shrq $32,%rdx + subq %rax,%r8 + movq 0(%rsi),%rax + sbbq %rdx,%r9 + + addq %rbp,%r8 + adcq $0,%r9 + + + mulq %r10 + movq %r10,%rbp + addq %rax,%rcx + movq 8(%rsi),%rax + adcq %rdx,%rcx + + subq %r10,%r8 + sbbq $0,%rbp + + mulq %r10 + addq %rcx,%r11 + adcq $0,%rdx + addq %rax,%r11 + movq %r10,%rax + adcq %rdx,%r8 + movq %r10,%rdx + adcq $0,%rbp + + movq %r11,%rcx + imulq 32(%rsi),%r11 + + shlq $32,%rax + shrq $32,%rdx + subq %rax,%r9 + movq 0(%rsi),%rax + sbbq %rdx,%r10 + + addq %rbp,%r9 + adcq $0,%r10 + + + mulq %r11 + movq %r11,%rbp + addq %rax,%rcx + movq 8(%rsi),%rax + adcq %rdx,%rcx + + subq %r11,%r9 + sbbq $0,%rbp + + mulq %r11 + addq %rcx,%r8 + adcq $0,%rdx + addq %rax,%r8 + movq %r11,%rax + adcq %rdx,%r9 + movq %r11,%rdx + adcq $0,%rbp + + shlq $32,%rax + shrq $32,%rdx + subq %rax,%r10 + sbbq %rdx,%r11 + + addq %rbp,%r10 + adcq $0,%r11 + + + xorq %rdx,%rdx + addq %r12,%r8 + adcq %r13,%r9 + movq %r8,%r12 + adcq %r14,%r10 + adcq %r15,%r11 + movq %r9,%rax + adcq $0,%rdx + + + subq 0(%rsi),%r8 + movq %r10,%r14 + sbbq 8(%rsi),%r9 + sbbq 16(%rsi),%r10 + movq %r11,%r15 + sbbq 24(%rsi),%r11 + sbbq $0,%rdx + + cmovcq %r12,%r8 + cmovncq %r9,%rax + cmovncq %r10,%r14 + cmovncq %r11,%r15 + + decq %rbx + jnz L$oop_ord_sqr + + movq %r8,0(%rdi) + movq %rax,8(%rdi) + pxor %xmm1,%xmm1 + movq %r14,16(%rdi) + pxor %xmm2,%xmm2 + movq %r15,24(%rdi) + pxor %xmm3,%xmm3 + + movq 0(%rsp),%r15 + + movq 8(%rsp),%r14 + + movq 16(%rsp),%r13 + + movq 24(%rsp),%r12 + + movq 32(%rsp),%rbx + + movq 40(%rsp),%rbp + + leaq 48(%rsp),%rsp + +L$ord_sqr_epilogue: + .byte 0xf3,0xc3 + + + + +.p2align 5 +ecp_nistz256_ord_mul_montx: + +L$ecp_nistz256_ord_mul_montx: + pushq %rbp + + pushq %rbx + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + +L$ord_mulx_body: + + movq %rdx,%rbx + movq 0(%rdx),%rdx + movq 0(%rsi),%r9 + movq 8(%rsi),%r10 + movq 16(%rsi),%r11 + movq 24(%rsi),%r12 + leaq -128(%rsi),%rsi + leaq L$ord-128(%rip),%r14 + movq L$ordK(%rip),%r15 + + + mulxq %r9,%r8,%r9 + mulxq %r10,%rcx,%r10 + mulxq %r11,%rbp,%r11 + addq %rcx,%r9 + mulxq %r12,%rcx,%r12 + movq %r8,%rdx + mulxq %r15,%rdx,%rax + adcq %rbp,%r10 + adcq %rcx,%r11 + adcq $0,%r12 + + + xorq %r13,%r13 + mulxq 0+128(%r14),%rcx,%rbp + adcxq %rcx,%r8 + adoxq %rbp,%r9 + + mulxq 8+128(%r14),%rcx,%rbp + adcxq %rcx,%r9 + adoxq %rbp,%r10 + + mulxq 16+128(%r14),%rcx,%rbp + adcxq %rcx,%r10 + adoxq %rbp,%r11 + + mulxq 24+128(%r14),%rcx,%rbp + movq 8(%rbx),%rdx + adcxq %rcx,%r11 + adoxq %rbp,%r12 + adcxq %r8,%r12 + adoxq %r8,%r13 + adcq $0,%r13 + + + mulxq 0+128(%rsi),%rcx,%rbp + adcxq %rcx,%r9 + adoxq %rbp,%r10 + + mulxq 8+128(%rsi),%rcx,%rbp + adcxq %rcx,%r10 + adoxq %rbp,%r11 + + mulxq 16+128(%rsi),%rcx,%rbp + adcxq %rcx,%r11 + adoxq %rbp,%r12 + + mulxq 24+128(%rsi),%rcx,%rbp + movq %r9,%rdx + mulxq %r15,%rdx,%rax + adcxq %rcx,%r12 + adoxq %rbp,%r13 + + adcxq %r8,%r13 + adoxq %r8,%r8 + adcq $0,%r8 + + + mulxq 0+128(%r14),%rcx,%rbp + adcxq %rcx,%r9 + adoxq %rbp,%r10 + + mulxq 8+128(%r14),%rcx,%rbp + adcxq %rcx,%r10 + adoxq %rbp,%r11 + + mulxq 16+128(%r14),%rcx,%rbp + adcxq %rcx,%r11 + adoxq %rbp,%r12 + + mulxq 24+128(%r14),%rcx,%rbp + movq 16(%rbx),%rdx + adcxq %rcx,%r12 + adoxq %rbp,%r13 + adcxq %r9,%r13 + adoxq %r9,%r8 + adcq $0,%r8 + + + mulxq 0+128(%rsi),%rcx,%rbp + adcxq %rcx,%r10 + adoxq %rbp,%r11 + + mulxq 8+128(%rsi),%rcx,%rbp + adcxq %rcx,%r11 + adoxq %rbp,%r12 + + mulxq 16+128(%rsi),%rcx,%rbp + adcxq %rcx,%r12 + adoxq %rbp,%r13 + + mulxq 24+128(%rsi),%rcx,%rbp + movq %r10,%rdx + mulxq %r15,%rdx,%rax + adcxq %rcx,%r13 + adoxq %rbp,%r8 + + adcxq %r9,%r8 + adoxq %r9,%r9 + adcq $0,%r9 + + + mulxq 0+128(%r14),%rcx,%rbp + adcxq %rcx,%r10 + adoxq %rbp,%r11 + + mulxq 8+128(%r14),%rcx,%rbp + adcxq %rcx,%r11 + adoxq %rbp,%r12 + + mulxq 16+128(%r14),%rcx,%rbp + adcxq %rcx,%r12 + adoxq %rbp,%r13 + + mulxq 24+128(%r14),%rcx,%rbp + movq 24(%rbx),%rdx + adcxq %rcx,%r13 + adoxq %rbp,%r8 + adcxq %r10,%r8 + adoxq %r10,%r9 + adcq $0,%r9 + + + mulxq 0+128(%rsi),%rcx,%rbp + adcxq %rcx,%r11 + adoxq %rbp,%r12 + + mulxq 8+128(%rsi),%rcx,%rbp + adcxq %rcx,%r12 + adoxq %rbp,%r13 + + mulxq 16+128(%rsi),%rcx,%rbp + adcxq %rcx,%r13 + adoxq %rbp,%r8 + + mulxq 24+128(%rsi),%rcx,%rbp + movq %r11,%rdx + mulxq %r15,%rdx,%rax + adcxq %rcx,%r8 + adoxq %rbp,%r9 + + adcxq %r10,%r9 + adoxq %r10,%r10 + adcq $0,%r10 + + + mulxq 0+128(%r14),%rcx,%rbp + adcxq %rcx,%r11 + adoxq %rbp,%r12 + + mulxq 8+128(%r14),%rcx,%rbp + adcxq %rcx,%r12 + adoxq %rbp,%r13 + + mulxq 16+128(%r14),%rcx,%rbp + adcxq %rcx,%r13 + adoxq %rbp,%r8 + + mulxq 24+128(%r14),%rcx,%rbp + leaq 128(%r14),%r14 + movq %r12,%rbx + adcxq %rcx,%r8 + adoxq %rbp,%r9 + movq %r13,%rdx + adcxq %r11,%r9 + adoxq %r11,%r10 + adcq $0,%r10 + + + + movq %r8,%rcx + subq 0(%r14),%r12 + sbbq 8(%r14),%r13 + sbbq 16(%r14),%r8 + movq %r9,%rbp + sbbq 24(%r14),%r9 + sbbq $0,%r10 + + cmovcq %rbx,%r12 + cmovcq %rdx,%r13 + cmovcq %rcx,%r8 + cmovcq %rbp,%r9 + + movq %r12,0(%rdi) + movq %r13,8(%rdi) + movq %r8,16(%rdi) + movq %r9,24(%rdi) + + movq 0(%rsp),%r15 + + movq 8(%rsp),%r14 + + movq 16(%rsp),%r13 + + movq 24(%rsp),%r12 + + movq 32(%rsp),%rbx + + movq 40(%rsp),%rbp + + leaq 48(%rsp),%rsp + +L$ord_mulx_epilogue: + .byte 0xf3,0xc3 + + + + +.p2align 5 +ecp_nistz256_ord_sqr_montx: + +L$ecp_nistz256_ord_sqr_montx: + pushq %rbp + + pushq %rbx + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + +L$ord_sqrx_body: + + movq %rdx,%rbx + movq 0(%rsi),%rdx + movq 8(%rsi),%r14 + movq 16(%rsi),%r15 + movq 24(%rsi),%r8 + leaq L$ord(%rip),%rsi + jmp L$oop_ord_sqrx + +.p2align 5 +L$oop_ord_sqrx: + mulxq %r14,%r9,%r10 + mulxq %r15,%rcx,%r11 + movq %rdx,%rax +.byte 102,73,15,110,206 + mulxq %r8,%rbp,%r12 + movq %r14,%rdx + addq %rcx,%r10 +.byte 102,73,15,110,215 + adcq %rbp,%r11 + adcq $0,%r12 + xorq %r13,%r13 + + mulxq %r15,%rcx,%rbp + adcxq %rcx,%r11 + adoxq %rbp,%r12 + + mulxq %r8,%rcx,%rbp + movq %r15,%rdx + adcxq %rcx,%r12 + adoxq %rbp,%r13 + adcq $0,%r13 + + mulxq %r8,%rcx,%r14 + movq %rax,%rdx +.byte 102,73,15,110,216 + xorq %r15,%r15 + adcxq %r9,%r9 + adoxq %rcx,%r13 + adcxq %r10,%r10 + adoxq %r15,%r14 + + + mulxq %rdx,%r8,%rbp +.byte 102,72,15,126,202 + adcxq %r11,%r11 + adoxq %rbp,%r9 + adcxq %r12,%r12 + mulxq %rdx,%rcx,%rax +.byte 102,72,15,126,210 + adcxq %r13,%r13 + adoxq %rcx,%r10 + adcxq %r14,%r14 + mulxq %rdx,%rcx,%rbp +.byte 0x67 +.byte 102,72,15,126,218 + adoxq %rax,%r11 + adcxq %r15,%r15 + adoxq %rcx,%r12 + adoxq %rbp,%r13 + mulxq %rdx,%rcx,%rax + adoxq %rcx,%r14 + adoxq %rax,%r15 + + + movq %r8,%rdx + mulxq 32(%rsi),%rdx,%rcx + + xorq %rax,%rax + mulxq 0(%rsi),%rcx,%rbp + adcxq %rcx,%r8 + adoxq %rbp,%r9 + mulxq 8(%rsi),%rcx,%rbp + adcxq %rcx,%r9 + adoxq %rbp,%r10 + mulxq 16(%rsi),%rcx,%rbp + adcxq %rcx,%r10 + adoxq %rbp,%r11 + mulxq 24(%rsi),%rcx,%rbp + adcxq %rcx,%r11 + adoxq %rbp,%r8 + adcxq %rax,%r8 + + + movq %r9,%rdx + mulxq 32(%rsi),%rdx,%rcx + + mulxq 0(%rsi),%rcx,%rbp + adoxq %rcx,%r9 + adcxq %rbp,%r10 + mulxq 8(%rsi),%rcx,%rbp + adoxq %rcx,%r10 + adcxq %rbp,%r11 + mulxq 16(%rsi),%rcx,%rbp + adoxq %rcx,%r11 + adcxq %rbp,%r8 + mulxq 24(%rsi),%rcx,%rbp + adoxq %rcx,%r8 + adcxq %rbp,%r9 + adoxq %rax,%r9 + + + movq %r10,%rdx + mulxq 32(%rsi),%rdx,%rcx + + mulxq 0(%rsi),%rcx,%rbp + adcxq %rcx,%r10 + adoxq %rbp,%r11 + mulxq 8(%rsi),%rcx,%rbp + adcxq %rcx,%r11 + adoxq %rbp,%r8 + mulxq 16(%rsi),%rcx,%rbp + adcxq %rcx,%r8 + adoxq %rbp,%r9 + mulxq 24(%rsi),%rcx,%rbp + adcxq %rcx,%r9 + adoxq %rbp,%r10 + adcxq %rax,%r10 + + + movq %r11,%rdx + mulxq 32(%rsi),%rdx,%rcx + + mulxq 0(%rsi),%rcx,%rbp + adoxq %rcx,%r11 + adcxq %rbp,%r8 + mulxq 8(%rsi),%rcx,%rbp + adoxq %rcx,%r8 + adcxq %rbp,%r9 + mulxq 16(%rsi),%rcx,%rbp + adoxq %rcx,%r9 + adcxq %rbp,%r10 + mulxq 24(%rsi),%rcx,%rbp + adoxq %rcx,%r10 + adcxq %rbp,%r11 + adoxq %rax,%r11 + + + addq %r8,%r12 + adcq %r13,%r9 + movq %r12,%rdx + adcq %r14,%r10 + adcq %r15,%r11 + movq %r9,%r14 + adcq $0,%rax + + + subq 0(%rsi),%r12 + movq %r10,%r15 + sbbq 8(%rsi),%r9 + sbbq 16(%rsi),%r10 + movq %r11,%r8 + sbbq 24(%rsi),%r11 + sbbq $0,%rax + + cmovncq %r12,%rdx + cmovncq %r9,%r14 + cmovncq %r10,%r15 + cmovncq %r11,%r8 + + decq %rbx + jnz L$oop_ord_sqrx + + movq %rdx,0(%rdi) + movq %r14,8(%rdi) + pxor %xmm1,%xmm1 + movq %r15,16(%rdi) + pxor %xmm2,%xmm2 + movq %r8,24(%rdi) + pxor %xmm3,%xmm3 + + movq 0(%rsp),%r15 + + movq 8(%rsp),%r14 + + movq 16(%rsp),%r13 + + movq 24(%rsp),%r12 + + movq 32(%rsp),%rbx + + movq 40(%rsp),%rbp + + leaq 48(%rsp),%rsp + +L$ord_sqrx_epilogue: + .byte 0xf3,0xc3 + + + + + + +.globl _ecp_nistz256_to_mont + +.p2align 5 +_ecp_nistz256_to_mont: + + movl $0x80100,%ecx + andl _OPENSSL_ia32cap_P+8(%rip),%ecx + leaq L$RR(%rip),%rdx + jmp L$mul_mont + + + + + + + + + +.globl _ecp_nistz256_mul_mont + +.p2align 5 +_ecp_nistz256_mul_mont: + + movl $0x80100,%ecx + andl _OPENSSL_ia32cap_P+8(%rip),%ecx +L$mul_mont: + pushq %rbp + + pushq %rbx + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + +L$mul_body: + cmpl $0x80100,%ecx + je L$mul_montx + movq %rdx,%rbx + movq 0(%rdx),%rax + movq 0(%rsi),%r9 + movq 8(%rsi),%r10 + movq 16(%rsi),%r11 + movq 24(%rsi),%r12 + + call __ecp_nistz256_mul_montq + jmp L$mul_mont_done + +.p2align 5 +L$mul_montx: + movq %rdx,%rbx + movq 0(%rdx),%rdx + movq 0(%rsi),%r9 + movq 8(%rsi),%r10 + movq 16(%rsi),%r11 + movq 24(%rsi),%r12 + leaq -128(%rsi),%rsi + + call __ecp_nistz256_mul_montx +L$mul_mont_done: + movq 0(%rsp),%r15 + + movq 8(%rsp),%r14 + + movq 16(%rsp),%r13 + + movq 24(%rsp),%r12 + + movq 32(%rsp),%rbx + + movq 40(%rsp),%rbp + + leaq 48(%rsp),%rsp + +L$mul_epilogue: + .byte 0xf3,0xc3 + + + + +.p2align 5 +__ecp_nistz256_mul_montq: + + + + movq %rax,%rbp + mulq %r9 + movq L$poly+8(%rip),%r14 + movq %rax,%r8 + movq %rbp,%rax + movq %rdx,%r9 + + mulq %r10 + movq L$poly+24(%rip),%r15 + addq %rax,%r9 + movq %rbp,%rax + adcq $0,%rdx + movq %rdx,%r10 + + mulq %r11 + addq %rax,%r10 + movq %rbp,%rax + adcq $0,%rdx + movq %rdx,%r11 + + mulq %r12 + addq %rax,%r11 + movq %r8,%rax + adcq $0,%rdx + xorq %r13,%r13 + movq %rdx,%r12 + + + + + + + + + + + movq %r8,%rbp + shlq $32,%r8 + mulq %r15 + shrq $32,%rbp + addq %r8,%r9 + adcq %rbp,%r10 + adcq %rax,%r11 + movq 8(%rbx),%rax + adcq %rdx,%r12 + adcq $0,%r13 + xorq %r8,%r8 + + + + movq %rax,%rbp + mulq 0(%rsi) + addq %rax,%r9 + movq %rbp,%rax + adcq $0,%rdx + movq %rdx,%rcx + + mulq 8(%rsi) + addq %rcx,%r10 + adcq $0,%rdx + addq %rax,%r10 + movq %rbp,%rax + adcq $0,%rdx + movq %rdx,%rcx + + mulq 16(%rsi) + addq %rcx,%r11 + adcq $0,%rdx + addq %rax,%r11 + movq %rbp,%rax + adcq $0,%rdx + movq %rdx,%rcx + + mulq 24(%rsi) + addq %rcx,%r12 + adcq $0,%rdx + addq %rax,%r12 + movq %r9,%rax + adcq %rdx,%r13 + adcq $0,%r8 + + + + movq %r9,%rbp + shlq $32,%r9 + mulq %r15 + shrq $32,%rbp + addq %r9,%r10 + adcq %rbp,%r11 + adcq %rax,%r12 + movq 16(%rbx),%rax + adcq %rdx,%r13 + adcq $0,%r8 + xorq %r9,%r9 + + + + movq %rax,%rbp + mulq 0(%rsi) + addq %rax,%r10 + movq %rbp,%rax + adcq $0,%rdx + movq %rdx,%rcx + + mulq 8(%rsi) + addq %rcx,%r11 + adcq $0,%rdx + addq %rax,%r11 + movq %rbp,%rax + adcq $0,%rdx + movq %rdx,%rcx + + mulq 16(%rsi) + addq %rcx,%r12 + adcq $0,%rdx + addq %rax,%r12 + movq %rbp,%rax + adcq $0,%rdx + movq %rdx,%rcx + + mulq 24(%rsi) + addq %rcx,%r13 + adcq $0,%rdx + addq %rax,%r13 + movq %r10,%rax + adcq %rdx,%r8 + adcq $0,%r9 + + + + movq %r10,%rbp + shlq $32,%r10 + mulq %r15 + shrq $32,%rbp + addq %r10,%r11 + adcq %rbp,%r12 + adcq %rax,%r13 + movq 24(%rbx),%rax + adcq %rdx,%r8 + adcq $0,%r9 + xorq %r10,%r10 + + + + movq %rax,%rbp + mulq 0(%rsi) + addq %rax,%r11 + movq %rbp,%rax + adcq $0,%rdx + movq %rdx,%rcx + + mulq 8(%rsi) + addq %rcx,%r12 + adcq $0,%rdx + addq %rax,%r12 + movq %rbp,%rax + adcq $0,%rdx + movq %rdx,%rcx + + mulq 16(%rsi) + addq %rcx,%r13 + adcq $0,%rdx + addq %rax,%r13 + movq %rbp,%rax + adcq $0,%rdx + movq %rdx,%rcx + + mulq 24(%rsi) + addq %rcx,%r8 + adcq $0,%rdx + addq %rax,%r8 + movq %r11,%rax + adcq %rdx,%r9 + adcq $0,%r10 + + + + movq %r11,%rbp + shlq $32,%r11 + mulq %r15 + shrq $32,%rbp + addq %r11,%r12 + adcq %rbp,%r13 + movq %r12,%rcx + adcq %rax,%r8 + adcq %rdx,%r9 + movq %r13,%rbp + adcq $0,%r10 + + + + subq $-1,%r12 + movq %r8,%rbx + sbbq %r14,%r13 + sbbq $0,%r8 + movq %r9,%rdx + sbbq %r15,%r9 + sbbq $0,%r10 + + cmovcq %rcx,%r12 + cmovcq %rbp,%r13 + movq %r12,0(%rdi) + cmovcq %rbx,%r8 + movq %r13,8(%rdi) + cmovcq %rdx,%r9 + movq %r8,16(%rdi) + movq %r9,24(%rdi) + + .byte 0xf3,0xc3 + + + + + + + + + + +.globl _ecp_nistz256_sqr_mont + +.p2align 5 +_ecp_nistz256_sqr_mont: + + movl $0x80100,%ecx + andl _OPENSSL_ia32cap_P+8(%rip),%ecx + pushq %rbp + + pushq %rbx + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + +L$sqr_body: + cmpl $0x80100,%ecx + je L$sqr_montx + movq 0(%rsi),%rax + movq 8(%rsi),%r14 + movq 16(%rsi),%r15 + movq 24(%rsi),%r8 + + call __ecp_nistz256_sqr_montq + jmp L$sqr_mont_done + +.p2align 5 +L$sqr_montx: + movq 0(%rsi),%rdx + movq 8(%rsi),%r14 + movq 16(%rsi),%r15 + movq 24(%rsi),%r8 + leaq -128(%rsi),%rsi + + call __ecp_nistz256_sqr_montx +L$sqr_mont_done: + movq 0(%rsp),%r15 + + movq 8(%rsp),%r14 + + movq 16(%rsp),%r13 + + movq 24(%rsp),%r12 + + movq 32(%rsp),%rbx + + movq 40(%rsp),%rbp + + leaq 48(%rsp),%rsp + +L$sqr_epilogue: + .byte 0xf3,0xc3 + + + + +.p2align 5 +__ecp_nistz256_sqr_montq: + + movq %rax,%r13 + mulq %r14 + movq %rax,%r9 + movq %r15,%rax + movq %rdx,%r10 + + mulq %r13 + addq %rax,%r10 + movq %r8,%rax + adcq $0,%rdx + movq %rdx,%r11 + + mulq %r13 + addq %rax,%r11 + movq %r15,%rax + adcq $0,%rdx + movq %rdx,%r12 + + + mulq %r14 + addq %rax,%r11 + movq %r8,%rax + adcq $0,%rdx + movq %rdx,%rbp + + mulq %r14 + addq %rax,%r12 + movq %r8,%rax + adcq $0,%rdx + addq %rbp,%r12 + movq %rdx,%r13 + adcq $0,%r13 + + + mulq %r15 + xorq %r15,%r15 + addq %rax,%r13 + movq 0(%rsi),%rax + movq %rdx,%r14 + adcq $0,%r14 + + addq %r9,%r9 + adcq %r10,%r10 + adcq %r11,%r11 + adcq %r12,%r12 + adcq %r13,%r13 + adcq %r14,%r14 + adcq $0,%r15 + + mulq %rax + movq %rax,%r8 + movq 8(%rsi),%rax + movq %rdx,%rcx + + mulq %rax + addq %rcx,%r9 + adcq %rax,%r10 + movq 16(%rsi),%rax + adcq $0,%rdx + movq %rdx,%rcx + + mulq %rax + addq %rcx,%r11 + adcq %rax,%r12 + movq 24(%rsi),%rax + adcq $0,%rdx + movq %rdx,%rcx + + mulq %rax + addq %rcx,%r13 + adcq %rax,%r14 + movq %r8,%rax + adcq %rdx,%r15 + + movq L$poly+8(%rip),%rsi + movq L$poly+24(%rip),%rbp + + + + + movq %r8,%rcx + shlq $32,%r8 + mulq %rbp + shrq $32,%rcx + addq %r8,%r9 + adcq %rcx,%r10 + adcq %rax,%r11 + movq %r9,%rax + adcq $0,%rdx + + + + movq %r9,%rcx + shlq $32,%r9 + movq %rdx,%r8 + mulq %rbp + shrq $32,%rcx + addq %r9,%r10 + adcq %rcx,%r11 + adcq %rax,%r8 + movq %r10,%rax + adcq $0,%rdx + + + + movq %r10,%rcx + shlq $32,%r10 + movq %rdx,%r9 + mulq %rbp + shrq $32,%rcx + addq %r10,%r11 + adcq %rcx,%r8 + adcq %rax,%r9 + movq %r11,%rax + adcq $0,%rdx + + + + movq %r11,%rcx + shlq $32,%r11 + movq %rdx,%r10 + mulq %rbp + shrq $32,%rcx + addq %r11,%r8 + adcq %rcx,%r9 + adcq %rax,%r10 + adcq $0,%rdx + xorq %r11,%r11 + + + + addq %r8,%r12 + adcq %r9,%r13 + movq %r12,%r8 + adcq %r10,%r14 + adcq %rdx,%r15 + movq %r13,%r9 + adcq $0,%r11 + + subq $-1,%r12 + movq %r14,%r10 + sbbq %rsi,%r13 + sbbq $0,%r14 + movq %r15,%rcx + sbbq %rbp,%r15 + sbbq $0,%r11 + + cmovcq %r8,%r12 + cmovcq %r9,%r13 + movq %r12,0(%rdi) + cmovcq %r10,%r14 + movq %r13,8(%rdi) + cmovcq %rcx,%r15 + movq %r14,16(%rdi) + movq %r15,24(%rdi) + + .byte 0xf3,0xc3 + + + +.p2align 5 +__ecp_nistz256_mul_montx: + + + + mulxq %r9,%r8,%r9 + mulxq %r10,%rcx,%r10 + movq $32,%r14 + xorq %r13,%r13 + mulxq %r11,%rbp,%r11 + movq L$poly+24(%rip),%r15 + adcq %rcx,%r9 + mulxq %r12,%rcx,%r12 + movq %r8,%rdx + adcq %rbp,%r10 + shlxq %r14,%r8,%rbp + adcq %rcx,%r11 + shrxq %r14,%r8,%rcx + adcq $0,%r12 + + + + addq %rbp,%r9 + adcq %rcx,%r10 + + mulxq %r15,%rcx,%rbp + movq 8(%rbx),%rdx + adcq %rcx,%r11 + adcq %rbp,%r12 + adcq $0,%r13 + xorq %r8,%r8 + + + + mulxq 0+128(%rsi),%rcx,%rbp + adcxq %rcx,%r9 + adoxq %rbp,%r10 + + mulxq 8+128(%rsi),%rcx,%rbp + adcxq %rcx,%r10 + adoxq %rbp,%r11 + + mulxq 16+128(%rsi),%rcx,%rbp + adcxq %rcx,%r11 + adoxq %rbp,%r12 + + mulxq 24+128(%rsi),%rcx,%rbp + movq %r9,%rdx + adcxq %rcx,%r12 + shlxq %r14,%r9,%rcx + adoxq %rbp,%r13 + shrxq %r14,%r9,%rbp + + adcxq %r8,%r13 + adoxq %r8,%r8 + adcq $0,%r8 + + + + addq %rcx,%r10 + adcq %rbp,%r11 + + mulxq %r15,%rcx,%rbp + movq 16(%rbx),%rdx + adcq %rcx,%r12 + adcq %rbp,%r13 + adcq $0,%r8 + xorq %r9,%r9 + + + + mulxq 0+128(%rsi),%rcx,%rbp + adcxq %rcx,%r10 + adoxq %rbp,%r11 + + mulxq 8+128(%rsi),%rcx,%rbp + adcxq %rcx,%r11 + adoxq %rbp,%r12 + + mulxq 16+128(%rsi),%rcx,%rbp + adcxq %rcx,%r12 + adoxq %rbp,%r13 + + mulxq 24+128(%rsi),%rcx,%rbp + movq %r10,%rdx + adcxq %rcx,%r13 + shlxq %r14,%r10,%rcx + adoxq %rbp,%r8 + shrxq %r14,%r10,%rbp + + adcxq %r9,%r8 + adoxq %r9,%r9 + adcq $0,%r9 + + + + addq %rcx,%r11 + adcq %rbp,%r12 + + mulxq %r15,%rcx,%rbp + movq 24(%rbx),%rdx + adcq %rcx,%r13 + adcq %rbp,%r8 + adcq $0,%r9 + xorq %r10,%r10 + + + + mulxq 0+128(%rsi),%rcx,%rbp + adcxq %rcx,%r11 + adoxq %rbp,%r12 + + mulxq 8+128(%rsi),%rcx,%rbp + adcxq %rcx,%r12 + adoxq %rbp,%r13 + + mulxq 16+128(%rsi),%rcx,%rbp + adcxq %rcx,%r13 + adoxq %rbp,%r8 + + mulxq 24+128(%rsi),%rcx,%rbp + movq %r11,%rdx + adcxq %rcx,%r8 + shlxq %r14,%r11,%rcx + adoxq %rbp,%r9 + shrxq %r14,%r11,%rbp + + adcxq %r10,%r9 + adoxq %r10,%r10 + adcq $0,%r10 + + + + addq %rcx,%r12 + adcq %rbp,%r13 + + mulxq %r15,%rcx,%rbp + movq %r12,%rbx + movq L$poly+8(%rip),%r14 + adcq %rcx,%r8 + movq %r13,%rdx + adcq %rbp,%r9 + adcq $0,%r10 + + + + xorl %eax,%eax + movq %r8,%rcx + sbbq $-1,%r12 + sbbq %r14,%r13 + sbbq $0,%r8 + movq %r9,%rbp + sbbq %r15,%r9 + sbbq $0,%r10 + + cmovcq %rbx,%r12 + cmovcq %rdx,%r13 + movq %r12,0(%rdi) + cmovcq %rcx,%r8 + movq %r13,8(%rdi) + cmovcq %rbp,%r9 + movq %r8,16(%rdi) + movq %r9,24(%rdi) + + .byte 0xf3,0xc3 + + + + +.p2align 5 +__ecp_nistz256_sqr_montx: + + mulxq %r14,%r9,%r10 + mulxq %r15,%rcx,%r11 + xorl %eax,%eax + adcq %rcx,%r10 + mulxq %r8,%rbp,%r12 + movq %r14,%rdx + adcq %rbp,%r11 + adcq $0,%r12 + xorq %r13,%r13 + + + mulxq %r15,%rcx,%rbp + adcxq %rcx,%r11 + adoxq %rbp,%r12 + + mulxq %r8,%rcx,%rbp + movq %r15,%rdx + adcxq %rcx,%r12 + adoxq %rbp,%r13 + adcq $0,%r13 + + + mulxq %r8,%rcx,%r14 + movq 0+128(%rsi),%rdx + xorq %r15,%r15 + adcxq %r9,%r9 + adoxq %rcx,%r13 + adcxq %r10,%r10 + adoxq %r15,%r14 + + mulxq %rdx,%r8,%rbp + movq 8+128(%rsi),%rdx + adcxq %r11,%r11 + adoxq %rbp,%r9 + adcxq %r12,%r12 + mulxq %rdx,%rcx,%rax + movq 16+128(%rsi),%rdx + adcxq %r13,%r13 + adoxq %rcx,%r10 + adcxq %r14,%r14 +.byte 0x67 + mulxq %rdx,%rcx,%rbp + movq 24+128(%rsi),%rdx + adoxq %rax,%r11 + adcxq %r15,%r15 + adoxq %rcx,%r12 + movq $32,%rsi + adoxq %rbp,%r13 +.byte 0x67,0x67 + mulxq %rdx,%rcx,%rax + movq L$poly+24(%rip),%rdx + adoxq %rcx,%r14 + shlxq %rsi,%r8,%rcx + adoxq %rax,%r15 + shrxq %rsi,%r8,%rax + movq %rdx,%rbp + + + addq %rcx,%r9 + adcq %rax,%r10 + + mulxq %r8,%rcx,%r8 + adcq %rcx,%r11 + shlxq %rsi,%r9,%rcx + adcq $0,%r8 + shrxq %rsi,%r9,%rax + + + addq %rcx,%r10 + adcq %rax,%r11 + + mulxq %r9,%rcx,%r9 + adcq %rcx,%r8 + shlxq %rsi,%r10,%rcx + adcq $0,%r9 + shrxq %rsi,%r10,%rax + + + addq %rcx,%r11 + adcq %rax,%r8 + + mulxq %r10,%rcx,%r10 + adcq %rcx,%r9 + shlxq %rsi,%r11,%rcx + adcq $0,%r10 + shrxq %rsi,%r11,%rax + + + addq %rcx,%r8 + adcq %rax,%r9 + + mulxq %r11,%rcx,%r11 + adcq %rcx,%r10 + adcq $0,%r11 + + xorq %rdx,%rdx + addq %r8,%r12 + movq L$poly+8(%rip),%rsi + adcq %r9,%r13 + movq %r12,%r8 + adcq %r10,%r14 + adcq %r11,%r15 + movq %r13,%r9 + adcq $0,%rdx + + subq $-1,%r12 + movq %r14,%r10 + sbbq %rsi,%r13 + sbbq $0,%r14 + movq %r15,%r11 + sbbq %rbp,%r15 + sbbq $0,%rdx + + cmovcq %r8,%r12 + cmovcq %r9,%r13 + movq %r12,0(%rdi) + cmovcq %r10,%r14 + movq %r13,8(%rdi) + cmovcq %r11,%r15 + movq %r14,16(%rdi) + movq %r15,24(%rdi) + + .byte 0xf3,0xc3 + + + + + + + + +.globl _ecp_nistz256_from_mont + +.p2align 5 +_ecp_nistz256_from_mont: + + pushq %r12 + + pushq %r13 + +L$from_body: + + movq 0(%rsi),%rax + movq L$poly+24(%rip),%r13 + movq 8(%rsi),%r9 + movq 16(%rsi),%r10 + movq 24(%rsi),%r11 + movq %rax,%r8 + movq L$poly+8(%rip),%r12 + + + + movq %rax,%rcx + shlq $32,%r8 + mulq %r13 + shrq $32,%rcx + addq %r8,%r9 + adcq %rcx,%r10 + adcq %rax,%r11 + movq %r9,%rax + adcq $0,%rdx + + + + movq %r9,%rcx + shlq $32,%r9 + movq %rdx,%r8 + mulq %r13 + shrq $32,%rcx + addq %r9,%r10 + adcq %rcx,%r11 + adcq %rax,%r8 + movq %r10,%rax + adcq $0,%rdx + + + + movq %r10,%rcx + shlq $32,%r10 + movq %rdx,%r9 + mulq %r13 + shrq $32,%rcx + addq %r10,%r11 + adcq %rcx,%r8 + adcq %rax,%r9 + movq %r11,%rax + adcq $0,%rdx + + + + movq %r11,%rcx + shlq $32,%r11 + movq %rdx,%r10 + mulq %r13 + shrq $32,%rcx + addq %r11,%r8 + adcq %rcx,%r9 + movq %r8,%rcx + adcq %rax,%r10 + movq %r9,%rsi + adcq $0,%rdx + + + + subq $-1,%r8 + movq %r10,%rax + sbbq %r12,%r9 + sbbq $0,%r10 + movq %rdx,%r11 + sbbq %r13,%rdx + sbbq %r13,%r13 + + cmovnzq %rcx,%r8 + cmovnzq %rsi,%r9 + movq %r8,0(%rdi) + cmovnzq %rax,%r10 + movq %r9,8(%rdi) + cmovzq %rdx,%r11 + movq %r10,16(%rdi) + movq %r11,24(%rdi) + + movq 0(%rsp),%r13 + + movq 8(%rsp),%r12 + + leaq 16(%rsp),%rsp + +L$from_epilogue: + .byte 0xf3,0xc3 + + + + +.globl _ecp_nistz256_scatter_w5 + +.p2align 5 +_ecp_nistz256_scatter_w5: + + leal -3(%rdx,%rdx,2),%edx + movdqa 0(%rsi),%xmm0 + shll $5,%edx + movdqa 16(%rsi),%xmm1 + movdqa 32(%rsi),%xmm2 + movdqa 48(%rsi),%xmm3 + movdqa 64(%rsi),%xmm4 + movdqa 80(%rsi),%xmm5 + movdqa %xmm0,0(%rdi,%rdx,1) + movdqa %xmm1,16(%rdi,%rdx,1) + movdqa %xmm2,32(%rdi,%rdx,1) + movdqa %xmm3,48(%rdi,%rdx,1) + movdqa %xmm4,64(%rdi,%rdx,1) + movdqa %xmm5,80(%rdi,%rdx,1) + + .byte 0xf3,0xc3 + + + + + +.globl _ecp_nistz256_gather_w5 + +.p2align 5 +_ecp_nistz256_gather_w5: + + movl _OPENSSL_ia32cap_P+8(%rip),%eax + testl $32,%eax + jnz L$avx2_gather_w5 + movdqa L$One(%rip),%xmm0 + movd %edx,%xmm1 + + pxor %xmm2,%xmm2 + pxor %xmm3,%xmm3 + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + pxor %xmm6,%xmm6 + pxor %xmm7,%xmm7 + + movdqa %xmm0,%xmm8 + pshufd $0,%xmm1,%xmm1 + + movq $16,%rax +L$select_loop_sse_w5: + + movdqa %xmm8,%xmm15 + paddd %xmm0,%xmm8 + pcmpeqd %xmm1,%xmm15 + + movdqa 0(%rsi),%xmm9 + movdqa 16(%rsi),%xmm10 + movdqa 32(%rsi),%xmm11 + movdqa 48(%rsi),%xmm12 + movdqa 64(%rsi),%xmm13 + movdqa 80(%rsi),%xmm14 + leaq 96(%rsi),%rsi + + pand %xmm15,%xmm9 + pand %xmm15,%xmm10 + por %xmm9,%xmm2 + pand %xmm15,%xmm11 + por %xmm10,%xmm3 + pand %xmm15,%xmm12 + por %xmm11,%xmm4 + pand %xmm15,%xmm13 + por %xmm12,%xmm5 + pand %xmm15,%xmm14 + por %xmm13,%xmm6 + por %xmm14,%xmm7 + + decq %rax + jnz L$select_loop_sse_w5 + + movdqu %xmm2,0(%rdi) + movdqu %xmm3,16(%rdi) + movdqu %xmm4,32(%rdi) + movdqu %xmm5,48(%rdi) + movdqu %xmm6,64(%rdi) + movdqu %xmm7,80(%rdi) + .byte 0xf3,0xc3 + +L$SEH_end_ecp_nistz256_gather_w5: + + + + +.globl _ecp_nistz256_scatter_w7 + +.p2align 5 +_ecp_nistz256_scatter_w7: + + movdqu 0(%rsi),%xmm0 + shll $6,%edx + movdqu 16(%rsi),%xmm1 + movdqu 32(%rsi),%xmm2 + movdqu 48(%rsi),%xmm3 + movdqa %xmm0,0(%rdi,%rdx,1) + movdqa %xmm1,16(%rdi,%rdx,1) + movdqa %xmm2,32(%rdi,%rdx,1) + movdqa %xmm3,48(%rdi,%rdx,1) + + .byte 0xf3,0xc3 + + + + + +.globl _ecp_nistz256_gather_w7 + +.p2align 5 +_ecp_nistz256_gather_w7: + + movl _OPENSSL_ia32cap_P+8(%rip),%eax + testl $32,%eax + jnz L$avx2_gather_w7 + movdqa L$One(%rip),%xmm8 + movd %edx,%xmm1 + + pxor %xmm2,%xmm2 + pxor %xmm3,%xmm3 + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + + movdqa %xmm8,%xmm0 + pshufd $0,%xmm1,%xmm1 + movq $64,%rax + +L$select_loop_sse_w7: + movdqa %xmm8,%xmm15 + paddd %xmm0,%xmm8 + movdqa 0(%rsi),%xmm9 + movdqa 16(%rsi),%xmm10 + pcmpeqd %xmm1,%xmm15 + movdqa 32(%rsi),%xmm11 + movdqa 48(%rsi),%xmm12 + leaq 64(%rsi),%rsi + + pand %xmm15,%xmm9 + pand %xmm15,%xmm10 + por %xmm9,%xmm2 + pand %xmm15,%xmm11 + por %xmm10,%xmm3 + pand %xmm15,%xmm12 + por %xmm11,%xmm4 + prefetcht0 255(%rsi) + por %xmm12,%xmm5 + + decq %rax + jnz L$select_loop_sse_w7 + + movdqu %xmm2,0(%rdi) + movdqu %xmm3,16(%rdi) + movdqu %xmm4,32(%rdi) + movdqu %xmm5,48(%rdi) + .byte 0xf3,0xc3 + +L$SEH_end_ecp_nistz256_gather_w7: + + + + +.p2align 5 +ecp_nistz256_avx2_gather_w5: + +L$avx2_gather_w5: + vzeroupper + vmovdqa L$Two(%rip),%ymm0 + + vpxor %ymm2,%ymm2,%ymm2 + vpxor %ymm3,%ymm3,%ymm3 + vpxor %ymm4,%ymm4,%ymm4 + + vmovdqa L$One(%rip),%ymm5 + vmovdqa L$Two(%rip),%ymm10 + + vmovd %edx,%xmm1 + vpermd %ymm1,%ymm2,%ymm1 + + movq $8,%rax +L$select_loop_avx2_w5: + + vmovdqa 0(%rsi),%ymm6 + vmovdqa 32(%rsi),%ymm7 + vmovdqa 64(%rsi),%ymm8 + + vmovdqa 96(%rsi),%ymm11 + vmovdqa 128(%rsi),%ymm12 + vmovdqa 160(%rsi),%ymm13 + + vpcmpeqd %ymm1,%ymm5,%ymm9 + vpcmpeqd %ymm1,%ymm10,%ymm14 + + vpaddd %ymm0,%ymm5,%ymm5 + vpaddd %ymm0,%ymm10,%ymm10 + leaq 192(%rsi),%rsi + + vpand %ymm9,%ymm6,%ymm6 + vpand %ymm9,%ymm7,%ymm7 + vpand %ymm9,%ymm8,%ymm8 + vpand %ymm14,%ymm11,%ymm11 + vpand %ymm14,%ymm12,%ymm12 + vpand %ymm14,%ymm13,%ymm13 + + vpxor %ymm6,%ymm2,%ymm2 + vpxor %ymm7,%ymm3,%ymm3 + vpxor %ymm8,%ymm4,%ymm4 + vpxor %ymm11,%ymm2,%ymm2 + vpxor %ymm12,%ymm3,%ymm3 + vpxor %ymm13,%ymm4,%ymm4 + + decq %rax + jnz L$select_loop_avx2_w5 + + vmovdqu %ymm2,0(%rdi) + vmovdqu %ymm3,32(%rdi) + vmovdqu %ymm4,64(%rdi) + vzeroupper + .byte 0xf3,0xc3 + +L$SEH_end_ecp_nistz256_avx2_gather_w5: + + + + +.globl _ecp_nistz256_avx2_gather_w7 + +.p2align 5 +_ecp_nistz256_avx2_gather_w7: + +L$avx2_gather_w7: + vzeroupper + vmovdqa L$Three(%rip),%ymm0 + + vpxor %ymm2,%ymm2,%ymm2 + vpxor %ymm3,%ymm3,%ymm3 + + vmovdqa L$One(%rip),%ymm4 + vmovdqa L$Two(%rip),%ymm8 + vmovdqa L$Three(%rip),%ymm12 + + vmovd %edx,%xmm1 + vpermd %ymm1,%ymm2,%ymm1 + + + movq $21,%rax +L$select_loop_avx2_w7: + + vmovdqa 0(%rsi),%ymm5 + vmovdqa 32(%rsi),%ymm6 + + vmovdqa 64(%rsi),%ymm9 + vmovdqa 96(%rsi),%ymm10 + + vmovdqa 128(%rsi),%ymm13 + vmovdqa 160(%rsi),%ymm14 + + vpcmpeqd %ymm1,%ymm4,%ymm7 + vpcmpeqd %ymm1,%ymm8,%ymm11 + vpcmpeqd %ymm1,%ymm12,%ymm15 + + vpaddd %ymm0,%ymm4,%ymm4 + vpaddd %ymm0,%ymm8,%ymm8 + vpaddd %ymm0,%ymm12,%ymm12 + leaq 192(%rsi),%rsi + + vpand %ymm7,%ymm5,%ymm5 + vpand %ymm7,%ymm6,%ymm6 + vpand %ymm11,%ymm9,%ymm9 + vpand %ymm11,%ymm10,%ymm10 + vpand %ymm15,%ymm13,%ymm13 + vpand %ymm15,%ymm14,%ymm14 + + vpxor %ymm5,%ymm2,%ymm2 + vpxor %ymm6,%ymm3,%ymm3 + vpxor %ymm9,%ymm2,%ymm2 + vpxor %ymm10,%ymm3,%ymm3 + vpxor %ymm13,%ymm2,%ymm2 + vpxor %ymm14,%ymm3,%ymm3 + + decq %rax + jnz L$select_loop_avx2_w7 + + + vmovdqa 0(%rsi),%ymm5 + vmovdqa 32(%rsi),%ymm6 + + vpcmpeqd %ymm1,%ymm4,%ymm7 + + vpand %ymm7,%ymm5,%ymm5 + vpand %ymm7,%ymm6,%ymm6 + + vpxor %ymm5,%ymm2,%ymm2 + vpxor %ymm6,%ymm3,%ymm3 + + vmovdqu %ymm2,0(%rdi) + vmovdqu %ymm3,32(%rdi) + vzeroupper + .byte 0xf3,0xc3 + +L$SEH_end_ecp_nistz256_avx2_gather_w7: + + +.p2align 5 +__ecp_nistz256_add_toq: + + xorq %r11,%r11 + addq 0(%rbx),%r12 + adcq 8(%rbx),%r13 + movq %r12,%rax + adcq 16(%rbx),%r8 + adcq 24(%rbx),%r9 + movq %r13,%rbp + adcq $0,%r11 + + subq $-1,%r12 + movq %r8,%rcx + sbbq %r14,%r13 + sbbq $0,%r8 + movq %r9,%r10 + sbbq %r15,%r9 + sbbq $0,%r11 + + cmovcq %rax,%r12 + cmovcq %rbp,%r13 + movq %r12,0(%rdi) + cmovcq %rcx,%r8 + movq %r13,8(%rdi) + cmovcq %r10,%r9 + movq %r8,16(%rdi) + movq %r9,24(%rdi) + + .byte 0xf3,0xc3 + + + + +.p2align 5 +__ecp_nistz256_sub_fromq: + + subq 0(%rbx),%r12 + sbbq 8(%rbx),%r13 + movq %r12,%rax + sbbq 16(%rbx),%r8 + sbbq 24(%rbx),%r9 + movq %r13,%rbp + sbbq %r11,%r11 + + addq $-1,%r12 + movq %r8,%rcx + adcq %r14,%r13 + adcq $0,%r8 + movq %r9,%r10 + adcq %r15,%r9 + testq %r11,%r11 + + cmovzq %rax,%r12 + cmovzq %rbp,%r13 + movq %r12,0(%rdi) + cmovzq %rcx,%r8 + movq %r13,8(%rdi) + cmovzq %r10,%r9 + movq %r8,16(%rdi) + movq %r9,24(%rdi) + + .byte 0xf3,0xc3 + + + + +.p2align 5 +__ecp_nistz256_subq: + + subq %r12,%rax + sbbq %r13,%rbp + movq %rax,%r12 + sbbq %r8,%rcx + sbbq %r9,%r10 + movq %rbp,%r13 + sbbq %r11,%r11 + + addq $-1,%rax + movq %rcx,%r8 + adcq %r14,%rbp + adcq $0,%rcx + movq %r10,%r9 + adcq %r15,%r10 + testq %r11,%r11 + + cmovnzq %rax,%r12 + cmovnzq %rbp,%r13 + cmovnzq %rcx,%r8 + cmovnzq %r10,%r9 + + .byte 0xf3,0xc3 + + + + +.p2align 5 +__ecp_nistz256_mul_by_2q: + + xorq %r11,%r11 + addq %r12,%r12 + adcq %r13,%r13 + movq %r12,%rax + adcq %r8,%r8 + adcq %r9,%r9 + movq %r13,%rbp + adcq $0,%r11 + + subq $-1,%r12 + movq %r8,%rcx + sbbq %r14,%r13 + sbbq $0,%r8 + movq %r9,%r10 + sbbq %r15,%r9 + sbbq $0,%r11 + + cmovcq %rax,%r12 + cmovcq %rbp,%r13 + movq %r12,0(%rdi) + cmovcq %rcx,%r8 + movq %r13,8(%rdi) + cmovcq %r10,%r9 + movq %r8,16(%rdi) + movq %r9,24(%rdi) + + .byte 0xf3,0xc3 + + +.globl _ecp_nistz256_point_double + +.p2align 5 +_ecp_nistz256_point_double: + + movl $0x80100,%ecx + andl _OPENSSL_ia32cap_P+8(%rip),%ecx + cmpl $0x80100,%ecx + je L$point_doublex + pushq %rbp + + pushq %rbx + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + subq $160+8,%rsp + +L$point_doubleq_body: + +L$point_double_shortcutq: + movdqu 0(%rsi),%xmm0 + movq %rsi,%rbx + movdqu 16(%rsi),%xmm1 + movq 32+0(%rsi),%r12 + movq 32+8(%rsi),%r13 + movq 32+16(%rsi),%r8 + movq 32+24(%rsi),%r9 + movq L$poly+8(%rip),%r14 + movq L$poly+24(%rip),%r15 + movdqa %xmm0,96(%rsp) + movdqa %xmm1,96+16(%rsp) + leaq 32(%rdi),%r10 + leaq 64(%rdi),%r11 +.byte 102,72,15,110,199 +.byte 102,73,15,110,202 +.byte 102,73,15,110,211 + + leaq 0(%rsp),%rdi + call __ecp_nistz256_mul_by_2q + + movq 64+0(%rsi),%rax + movq 64+8(%rsi),%r14 + movq 64+16(%rsi),%r15 + movq 64+24(%rsi),%r8 + leaq 64-0(%rsi),%rsi + leaq 64(%rsp),%rdi + call __ecp_nistz256_sqr_montq + + movq 0+0(%rsp),%rax + movq 8+0(%rsp),%r14 + leaq 0+0(%rsp),%rsi + movq 16+0(%rsp),%r15 + movq 24+0(%rsp),%r8 + leaq 0(%rsp),%rdi + call __ecp_nistz256_sqr_montq + + movq 32(%rbx),%rax + movq 64+0(%rbx),%r9 + movq 64+8(%rbx),%r10 + movq 64+16(%rbx),%r11 + movq 64+24(%rbx),%r12 + leaq 64-0(%rbx),%rsi + leaq 32(%rbx),%rbx +.byte 102,72,15,126,215 + call __ecp_nistz256_mul_montq + call __ecp_nistz256_mul_by_2q + + movq 96+0(%rsp),%r12 + movq 96+8(%rsp),%r13 + leaq 64(%rsp),%rbx + movq 96+16(%rsp),%r8 + movq 96+24(%rsp),%r9 + leaq 32(%rsp),%rdi + call __ecp_nistz256_add_toq + + movq 96+0(%rsp),%r12 + movq 96+8(%rsp),%r13 + leaq 64(%rsp),%rbx + movq 96+16(%rsp),%r8 + movq 96+24(%rsp),%r9 + leaq 64(%rsp),%rdi + call __ecp_nistz256_sub_fromq + + movq 0+0(%rsp),%rax + movq 8+0(%rsp),%r14 + leaq 0+0(%rsp),%rsi + movq 16+0(%rsp),%r15 + movq 24+0(%rsp),%r8 +.byte 102,72,15,126,207 + call __ecp_nistz256_sqr_montq + xorq %r9,%r9 + movq %r12,%rax + addq $-1,%r12 + movq %r13,%r10 + adcq %rsi,%r13 + movq %r14,%rcx + adcq $0,%r14 + movq %r15,%r8 + adcq %rbp,%r15 + adcq $0,%r9 + xorq %rsi,%rsi + testq $1,%rax + + cmovzq %rax,%r12 + cmovzq %r10,%r13 + cmovzq %rcx,%r14 + cmovzq %r8,%r15 + cmovzq %rsi,%r9 + + movq %r13,%rax + shrq $1,%r12 + shlq $63,%rax + movq %r14,%r10 + shrq $1,%r13 + orq %rax,%r12 + shlq $63,%r10 + movq %r15,%rcx + shrq $1,%r14 + orq %r10,%r13 + shlq $63,%rcx + movq %r12,0(%rdi) + shrq $1,%r15 + movq %r13,8(%rdi) + shlq $63,%r9 + orq %rcx,%r14 + orq %r9,%r15 + movq %r14,16(%rdi) + movq %r15,24(%rdi) + movq 64(%rsp),%rax + leaq 64(%rsp),%rbx + movq 0+32(%rsp),%r9 + movq 8+32(%rsp),%r10 + leaq 0+32(%rsp),%rsi + movq 16+32(%rsp),%r11 + movq 24+32(%rsp),%r12 + leaq 32(%rsp),%rdi + call __ecp_nistz256_mul_montq + + leaq 128(%rsp),%rdi + call __ecp_nistz256_mul_by_2q + + leaq 32(%rsp),%rbx + leaq 32(%rsp),%rdi + call __ecp_nistz256_add_toq + + movq 96(%rsp),%rax + leaq 96(%rsp),%rbx + movq 0+0(%rsp),%r9 + movq 8+0(%rsp),%r10 + leaq 0+0(%rsp),%rsi + movq 16+0(%rsp),%r11 + movq 24+0(%rsp),%r12 + leaq 0(%rsp),%rdi + call __ecp_nistz256_mul_montq + + leaq 128(%rsp),%rdi + call __ecp_nistz256_mul_by_2q + + movq 0+32(%rsp),%rax + movq 8+32(%rsp),%r14 + leaq 0+32(%rsp),%rsi + movq 16+32(%rsp),%r15 + movq 24+32(%rsp),%r8 +.byte 102,72,15,126,199 + call __ecp_nistz256_sqr_montq + + leaq 128(%rsp),%rbx + movq %r14,%r8 + movq %r15,%r9 + movq %rsi,%r14 + movq %rbp,%r15 + call __ecp_nistz256_sub_fromq + + movq 0+0(%rsp),%rax + movq 0+8(%rsp),%rbp + movq 0+16(%rsp),%rcx + movq 0+24(%rsp),%r10 + leaq 0(%rsp),%rdi + call __ecp_nistz256_subq + + movq 32(%rsp),%rax + leaq 32(%rsp),%rbx + movq %r12,%r14 + xorl %ecx,%ecx + movq %r12,0+0(%rsp) + movq %r13,%r10 + movq %r13,0+8(%rsp) + cmovzq %r8,%r11 + movq %r8,0+16(%rsp) + leaq 0-0(%rsp),%rsi + cmovzq %r9,%r12 + movq %r9,0+24(%rsp) + movq %r14,%r9 + leaq 0(%rsp),%rdi + call __ecp_nistz256_mul_montq + +.byte 102,72,15,126,203 +.byte 102,72,15,126,207 + call __ecp_nistz256_sub_fromq + + leaq 160+56(%rsp),%rsi + + movq -48(%rsi),%r15 + + movq -40(%rsi),%r14 + + movq -32(%rsi),%r13 + + movq -24(%rsi),%r12 + + movq -16(%rsi),%rbx + + movq -8(%rsi),%rbp + + leaq (%rsi),%rsp + +L$point_doubleq_epilogue: + .byte 0xf3,0xc3 + + +.globl _ecp_nistz256_point_add + +.p2align 5 +_ecp_nistz256_point_add: + + movl $0x80100,%ecx + andl _OPENSSL_ia32cap_P+8(%rip),%ecx + cmpl $0x80100,%ecx + je L$point_addx + pushq %rbp + + pushq %rbx + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + subq $576+8,%rsp + +L$point_addq_body: + + movdqu 0(%rsi),%xmm0 + movdqu 16(%rsi),%xmm1 + movdqu 32(%rsi),%xmm2 + movdqu 48(%rsi),%xmm3 + movdqu 64(%rsi),%xmm4 + movdqu 80(%rsi),%xmm5 + movq %rsi,%rbx + movq %rdx,%rsi + movdqa %xmm0,384(%rsp) + movdqa %xmm1,384+16(%rsp) + movdqa %xmm2,416(%rsp) + movdqa %xmm3,416+16(%rsp) + movdqa %xmm4,448(%rsp) + movdqa %xmm5,448+16(%rsp) + por %xmm4,%xmm5 + + movdqu 0(%rsi),%xmm0 + pshufd $0xb1,%xmm5,%xmm3 + movdqu 16(%rsi),%xmm1 + movdqu 32(%rsi),%xmm2 + por %xmm3,%xmm5 + movdqu 48(%rsi),%xmm3 + movq 64+0(%rsi),%rax + movq 64+8(%rsi),%r14 + movq 64+16(%rsi),%r15 + movq 64+24(%rsi),%r8 + movdqa %xmm0,480(%rsp) + pshufd $0x1e,%xmm5,%xmm4 + movdqa %xmm1,480+16(%rsp) + movdqu 64(%rsi),%xmm0 + movdqu 80(%rsi),%xmm1 + movdqa %xmm2,512(%rsp) + movdqa %xmm3,512+16(%rsp) + por %xmm4,%xmm5 + pxor %xmm4,%xmm4 + por %xmm0,%xmm1 +.byte 102,72,15,110,199 + + leaq 64-0(%rsi),%rsi + movq %rax,544+0(%rsp) + movq %r14,544+8(%rsp) + movq %r15,544+16(%rsp) + movq %r8,544+24(%rsp) + leaq 96(%rsp),%rdi + call __ecp_nistz256_sqr_montq + + pcmpeqd %xmm4,%xmm5 + pshufd $0xb1,%xmm1,%xmm4 + por %xmm1,%xmm4 + pshufd $0,%xmm5,%xmm5 + pshufd $0x1e,%xmm4,%xmm3 + por %xmm3,%xmm4 + pxor %xmm3,%xmm3 + pcmpeqd %xmm3,%xmm4 + pshufd $0,%xmm4,%xmm4 + movq 64+0(%rbx),%rax + movq 64+8(%rbx),%r14 + movq 64+16(%rbx),%r15 + movq 64+24(%rbx),%r8 +.byte 102,72,15,110,203 + + leaq 64-0(%rbx),%rsi + leaq 32(%rsp),%rdi + call __ecp_nistz256_sqr_montq + + movq 544(%rsp),%rax + leaq 544(%rsp),%rbx + movq 0+96(%rsp),%r9 + movq 8+96(%rsp),%r10 + leaq 0+96(%rsp),%rsi + movq 16+96(%rsp),%r11 + movq 24+96(%rsp),%r12 + leaq 224(%rsp),%rdi + call __ecp_nistz256_mul_montq + + movq 448(%rsp),%rax + leaq 448(%rsp),%rbx + movq 0+32(%rsp),%r9 + movq 8+32(%rsp),%r10 + leaq 0+32(%rsp),%rsi + movq 16+32(%rsp),%r11 + movq 24+32(%rsp),%r12 + leaq 256(%rsp),%rdi + call __ecp_nistz256_mul_montq + + movq 416(%rsp),%rax + leaq 416(%rsp),%rbx + movq 0+224(%rsp),%r9 + movq 8+224(%rsp),%r10 + leaq 0+224(%rsp),%rsi + movq 16+224(%rsp),%r11 + movq 24+224(%rsp),%r12 + leaq 224(%rsp),%rdi + call __ecp_nistz256_mul_montq + + movq 512(%rsp),%rax + leaq 512(%rsp),%rbx + movq 0+256(%rsp),%r9 + movq 8+256(%rsp),%r10 + leaq 0+256(%rsp),%rsi + movq 16+256(%rsp),%r11 + movq 24+256(%rsp),%r12 + leaq 256(%rsp),%rdi + call __ecp_nistz256_mul_montq + + leaq 224(%rsp),%rbx + leaq 64(%rsp),%rdi + call __ecp_nistz256_sub_fromq + + orq %r13,%r12 + movdqa %xmm4,%xmm2 + orq %r8,%r12 + orq %r9,%r12 + por %xmm5,%xmm2 +.byte 102,73,15,110,220 + + movq 384(%rsp),%rax + leaq 384(%rsp),%rbx + movq 0+96(%rsp),%r9 + movq 8+96(%rsp),%r10 + leaq 0+96(%rsp),%rsi + movq 16+96(%rsp),%r11 + movq 24+96(%rsp),%r12 + leaq 160(%rsp),%rdi + call __ecp_nistz256_mul_montq + + movq 480(%rsp),%rax + leaq 480(%rsp),%rbx + movq 0+32(%rsp),%r9 + movq 8+32(%rsp),%r10 + leaq 0+32(%rsp),%rsi + movq 16+32(%rsp),%r11 + movq 24+32(%rsp),%r12 + leaq 192(%rsp),%rdi + call __ecp_nistz256_mul_montq + + leaq 160(%rsp),%rbx + leaq 0(%rsp),%rdi + call __ecp_nistz256_sub_fromq + + orq %r13,%r12 + orq %r8,%r12 + orq %r9,%r12 + +.byte 102,73,15,126,208 +.byte 102,73,15,126,217 + + orq %r8,%r12 + orq %r9,%r12 + + +.byte 0x3e + jnz L$add_proceedq + +L$add_doubleq: +.byte 102,72,15,126,206 +.byte 102,72,15,126,199 + addq $416,%rsp + + jmp L$point_double_shortcutq + + +.p2align 5 +L$add_proceedq: + movq 0+64(%rsp),%rax + movq 8+64(%rsp),%r14 + leaq 0+64(%rsp),%rsi + movq 16+64(%rsp),%r15 + movq 24+64(%rsp),%r8 + leaq 96(%rsp),%rdi + call __ecp_nistz256_sqr_montq + + movq 448(%rsp),%rax + leaq 448(%rsp),%rbx + movq 0+0(%rsp),%r9 + movq 8+0(%rsp),%r10 + leaq 0+0(%rsp),%rsi + movq 16+0(%rsp),%r11 + movq 24+0(%rsp),%r12 + leaq 352(%rsp),%rdi + call __ecp_nistz256_mul_montq + + movq 0+0(%rsp),%rax + movq 8+0(%rsp),%r14 + leaq 0+0(%rsp),%rsi + movq 16+0(%rsp),%r15 + movq 24+0(%rsp),%r8 + leaq 32(%rsp),%rdi + call __ecp_nistz256_sqr_montq + + movq 544(%rsp),%rax + leaq 544(%rsp),%rbx + movq 0+352(%rsp),%r9 + movq 8+352(%rsp),%r10 + leaq 0+352(%rsp),%rsi + movq 16+352(%rsp),%r11 + movq 24+352(%rsp),%r12 + leaq 352(%rsp),%rdi + call __ecp_nistz256_mul_montq + + movq 0(%rsp),%rax + leaq 0(%rsp),%rbx + movq 0+32(%rsp),%r9 + movq 8+32(%rsp),%r10 + leaq 0+32(%rsp),%rsi + movq 16+32(%rsp),%r11 + movq 24+32(%rsp),%r12 + leaq 128(%rsp),%rdi + call __ecp_nistz256_mul_montq + + movq 160(%rsp),%rax + leaq 160(%rsp),%rbx + movq 0+32(%rsp),%r9 + movq 8+32(%rsp),%r10 + leaq 0+32(%rsp),%rsi + movq 16+32(%rsp),%r11 + movq 24+32(%rsp),%r12 + leaq 192(%rsp),%rdi + call __ecp_nistz256_mul_montq + + + + + xorq %r11,%r11 + addq %r12,%r12 + leaq 96(%rsp),%rsi + adcq %r13,%r13 + movq %r12,%rax + adcq %r8,%r8 + adcq %r9,%r9 + movq %r13,%rbp + adcq $0,%r11 + + subq $-1,%r12 + movq %r8,%rcx + sbbq %r14,%r13 + sbbq $0,%r8 + movq %r9,%r10 + sbbq %r15,%r9 + sbbq $0,%r11 + + cmovcq %rax,%r12 + movq 0(%rsi),%rax + cmovcq %rbp,%r13 + movq 8(%rsi),%rbp + cmovcq %rcx,%r8 + movq 16(%rsi),%rcx + cmovcq %r10,%r9 + movq 24(%rsi),%r10 + + call __ecp_nistz256_subq + + leaq 128(%rsp),%rbx + leaq 288(%rsp),%rdi + call __ecp_nistz256_sub_fromq + + movq 192+0(%rsp),%rax + movq 192+8(%rsp),%rbp + movq 192+16(%rsp),%rcx + movq 192+24(%rsp),%r10 + leaq 320(%rsp),%rdi + + call __ecp_nistz256_subq + + movq %r12,0(%rdi) + movq %r13,8(%rdi) + movq %r8,16(%rdi) + movq %r9,24(%rdi) + movq 128(%rsp),%rax + leaq 128(%rsp),%rbx + movq 0+224(%rsp),%r9 + movq 8+224(%rsp),%r10 + leaq 0+224(%rsp),%rsi + movq 16+224(%rsp),%r11 + movq 24+224(%rsp),%r12 + leaq 256(%rsp),%rdi + call __ecp_nistz256_mul_montq + + movq 320(%rsp),%rax + leaq 320(%rsp),%rbx + movq 0+64(%rsp),%r9 + movq 8+64(%rsp),%r10 + leaq 0+64(%rsp),%rsi + movq 16+64(%rsp),%r11 + movq 24+64(%rsp),%r12 + leaq 320(%rsp),%rdi + call __ecp_nistz256_mul_montq + + leaq 256(%rsp),%rbx + leaq 320(%rsp),%rdi + call __ecp_nistz256_sub_fromq + +.byte 102,72,15,126,199 + + movdqa %xmm5,%xmm0 + movdqa %xmm5,%xmm1 + pandn 352(%rsp),%xmm0 + movdqa %xmm5,%xmm2 + pandn 352+16(%rsp),%xmm1 + movdqa %xmm5,%xmm3 + pand 544(%rsp),%xmm2 + pand 544+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + + movdqa %xmm4,%xmm0 + movdqa %xmm4,%xmm1 + pandn %xmm2,%xmm0 + movdqa %xmm4,%xmm2 + pandn %xmm3,%xmm1 + movdqa %xmm4,%xmm3 + pand 448(%rsp),%xmm2 + pand 448+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + movdqu %xmm2,64(%rdi) + movdqu %xmm3,80(%rdi) + + movdqa %xmm5,%xmm0 + movdqa %xmm5,%xmm1 + pandn 288(%rsp),%xmm0 + movdqa %xmm5,%xmm2 + pandn 288+16(%rsp),%xmm1 + movdqa %xmm5,%xmm3 + pand 480(%rsp),%xmm2 + pand 480+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + + movdqa %xmm4,%xmm0 + movdqa %xmm4,%xmm1 + pandn %xmm2,%xmm0 + movdqa %xmm4,%xmm2 + pandn %xmm3,%xmm1 + movdqa %xmm4,%xmm3 + pand 384(%rsp),%xmm2 + pand 384+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + movdqu %xmm2,0(%rdi) + movdqu %xmm3,16(%rdi) + + movdqa %xmm5,%xmm0 + movdqa %xmm5,%xmm1 + pandn 320(%rsp),%xmm0 + movdqa %xmm5,%xmm2 + pandn 320+16(%rsp),%xmm1 + movdqa %xmm5,%xmm3 + pand 512(%rsp),%xmm2 + pand 512+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + + movdqa %xmm4,%xmm0 + movdqa %xmm4,%xmm1 + pandn %xmm2,%xmm0 + movdqa %xmm4,%xmm2 + pandn %xmm3,%xmm1 + movdqa %xmm4,%xmm3 + pand 416(%rsp),%xmm2 + pand 416+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + movdqu %xmm2,32(%rdi) + movdqu %xmm3,48(%rdi) + +L$add_doneq: + leaq 576+56(%rsp),%rsi + + movq -48(%rsi),%r15 + + movq -40(%rsi),%r14 + + movq -32(%rsi),%r13 + + movq -24(%rsi),%r12 + + movq -16(%rsi),%rbx + + movq -8(%rsi),%rbp + + leaq (%rsi),%rsp + +L$point_addq_epilogue: + .byte 0xf3,0xc3 + + +.globl _ecp_nistz256_point_add_affine + +.p2align 5 +_ecp_nistz256_point_add_affine: + + movl $0x80100,%ecx + andl _OPENSSL_ia32cap_P+8(%rip),%ecx + cmpl $0x80100,%ecx + je L$point_add_affinex + pushq %rbp + + pushq %rbx + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + subq $480+8,%rsp + +L$add_affineq_body: + + movdqu 0(%rsi),%xmm0 + movq %rdx,%rbx + movdqu 16(%rsi),%xmm1 + movdqu 32(%rsi),%xmm2 + movdqu 48(%rsi),%xmm3 + movdqu 64(%rsi),%xmm4 + movdqu 80(%rsi),%xmm5 + movq 64+0(%rsi),%rax + movq 64+8(%rsi),%r14 + movq 64+16(%rsi),%r15 + movq 64+24(%rsi),%r8 + movdqa %xmm0,320(%rsp) + movdqa %xmm1,320+16(%rsp) + movdqa %xmm2,352(%rsp) + movdqa %xmm3,352+16(%rsp) + movdqa %xmm4,384(%rsp) + movdqa %xmm5,384+16(%rsp) + por %xmm4,%xmm5 + + movdqu 0(%rbx),%xmm0 + pshufd $0xb1,%xmm5,%xmm3 + movdqu 16(%rbx),%xmm1 + movdqu 32(%rbx),%xmm2 + por %xmm3,%xmm5 + movdqu 48(%rbx),%xmm3 + movdqa %xmm0,416(%rsp) + pshufd $0x1e,%xmm5,%xmm4 + movdqa %xmm1,416+16(%rsp) + por %xmm0,%xmm1 +.byte 102,72,15,110,199 + movdqa %xmm2,448(%rsp) + movdqa %xmm3,448+16(%rsp) + por %xmm2,%xmm3 + por %xmm4,%xmm5 + pxor %xmm4,%xmm4 + por %xmm1,%xmm3 + + leaq 64-0(%rsi),%rsi + leaq 32(%rsp),%rdi + call __ecp_nistz256_sqr_montq + + pcmpeqd %xmm4,%xmm5 + pshufd $0xb1,%xmm3,%xmm4 + movq 0(%rbx),%rax + + movq %r12,%r9 + por %xmm3,%xmm4 + pshufd $0,%xmm5,%xmm5 + pshufd $0x1e,%xmm4,%xmm3 + movq %r13,%r10 + por %xmm3,%xmm4 + pxor %xmm3,%xmm3 + movq %r14,%r11 + pcmpeqd %xmm3,%xmm4 + pshufd $0,%xmm4,%xmm4 + + leaq 32-0(%rsp),%rsi + movq %r15,%r12 + leaq 0(%rsp),%rdi + call __ecp_nistz256_mul_montq + + leaq 320(%rsp),%rbx + leaq 64(%rsp),%rdi + call __ecp_nistz256_sub_fromq + + movq 384(%rsp),%rax + leaq 384(%rsp),%rbx + movq 0+32(%rsp),%r9 + movq 8+32(%rsp),%r10 + leaq 0+32(%rsp),%rsi + movq 16+32(%rsp),%r11 + movq 24+32(%rsp),%r12 + leaq 32(%rsp),%rdi + call __ecp_nistz256_mul_montq + + movq 384(%rsp),%rax + leaq 384(%rsp),%rbx + movq 0+64(%rsp),%r9 + movq 8+64(%rsp),%r10 + leaq 0+64(%rsp),%rsi + movq 16+64(%rsp),%r11 + movq 24+64(%rsp),%r12 + leaq 288(%rsp),%rdi + call __ecp_nistz256_mul_montq + + movq 448(%rsp),%rax + leaq 448(%rsp),%rbx + movq 0+32(%rsp),%r9 + movq 8+32(%rsp),%r10 + leaq 0+32(%rsp),%rsi + movq 16+32(%rsp),%r11 + movq 24+32(%rsp),%r12 + leaq 32(%rsp),%rdi + call __ecp_nistz256_mul_montq + + leaq 352(%rsp),%rbx + leaq 96(%rsp),%rdi + call __ecp_nistz256_sub_fromq + + movq 0+64(%rsp),%rax + movq 8+64(%rsp),%r14 + leaq 0+64(%rsp),%rsi + movq 16+64(%rsp),%r15 + movq 24+64(%rsp),%r8 + leaq 128(%rsp),%rdi + call __ecp_nistz256_sqr_montq + + movq 0+96(%rsp),%rax + movq 8+96(%rsp),%r14 + leaq 0+96(%rsp),%rsi + movq 16+96(%rsp),%r15 + movq 24+96(%rsp),%r8 + leaq 192(%rsp),%rdi + call __ecp_nistz256_sqr_montq + + movq 128(%rsp),%rax + leaq 128(%rsp),%rbx + movq 0+64(%rsp),%r9 + movq 8+64(%rsp),%r10 + leaq 0+64(%rsp),%rsi + movq 16+64(%rsp),%r11 + movq 24+64(%rsp),%r12 + leaq 160(%rsp),%rdi + call __ecp_nistz256_mul_montq + + movq 320(%rsp),%rax + leaq 320(%rsp),%rbx + movq 0+128(%rsp),%r9 + movq 8+128(%rsp),%r10 + leaq 0+128(%rsp),%rsi + movq 16+128(%rsp),%r11 + movq 24+128(%rsp),%r12 + leaq 0(%rsp),%rdi + call __ecp_nistz256_mul_montq + + + + + xorq %r11,%r11 + addq %r12,%r12 + leaq 192(%rsp),%rsi + adcq %r13,%r13 + movq %r12,%rax + adcq %r8,%r8 + adcq %r9,%r9 + movq %r13,%rbp + adcq $0,%r11 + + subq $-1,%r12 + movq %r8,%rcx + sbbq %r14,%r13 + sbbq $0,%r8 + movq %r9,%r10 + sbbq %r15,%r9 + sbbq $0,%r11 + + cmovcq %rax,%r12 + movq 0(%rsi),%rax + cmovcq %rbp,%r13 + movq 8(%rsi),%rbp + cmovcq %rcx,%r8 + movq 16(%rsi),%rcx + cmovcq %r10,%r9 + movq 24(%rsi),%r10 + + call __ecp_nistz256_subq + + leaq 160(%rsp),%rbx + leaq 224(%rsp),%rdi + call __ecp_nistz256_sub_fromq + + movq 0+0(%rsp),%rax + movq 0+8(%rsp),%rbp + movq 0+16(%rsp),%rcx + movq 0+24(%rsp),%r10 + leaq 64(%rsp),%rdi + + call __ecp_nistz256_subq + + movq %r12,0(%rdi) + movq %r13,8(%rdi) + movq %r8,16(%rdi) + movq %r9,24(%rdi) + movq 352(%rsp),%rax + leaq 352(%rsp),%rbx + movq 0+160(%rsp),%r9 + movq 8+160(%rsp),%r10 + leaq 0+160(%rsp),%rsi + movq 16+160(%rsp),%r11 + movq 24+160(%rsp),%r12 + leaq 32(%rsp),%rdi + call __ecp_nistz256_mul_montq + + movq 96(%rsp),%rax + leaq 96(%rsp),%rbx + movq 0+64(%rsp),%r9 + movq 8+64(%rsp),%r10 + leaq 0+64(%rsp),%rsi + movq 16+64(%rsp),%r11 + movq 24+64(%rsp),%r12 + leaq 64(%rsp),%rdi + call __ecp_nistz256_mul_montq + + leaq 32(%rsp),%rbx + leaq 256(%rsp),%rdi + call __ecp_nistz256_sub_fromq + +.byte 102,72,15,126,199 + + movdqa %xmm5,%xmm0 + movdqa %xmm5,%xmm1 + pandn 288(%rsp),%xmm0 + movdqa %xmm5,%xmm2 + pandn 288+16(%rsp),%xmm1 + movdqa %xmm5,%xmm3 + pand L$ONE_mont(%rip),%xmm2 + pand L$ONE_mont+16(%rip),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + + movdqa %xmm4,%xmm0 + movdqa %xmm4,%xmm1 + pandn %xmm2,%xmm0 + movdqa %xmm4,%xmm2 + pandn %xmm3,%xmm1 + movdqa %xmm4,%xmm3 + pand 384(%rsp),%xmm2 + pand 384+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + movdqu %xmm2,64(%rdi) + movdqu %xmm3,80(%rdi) + + movdqa %xmm5,%xmm0 + movdqa %xmm5,%xmm1 + pandn 224(%rsp),%xmm0 + movdqa %xmm5,%xmm2 + pandn 224+16(%rsp),%xmm1 + movdqa %xmm5,%xmm3 + pand 416(%rsp),%xmm2 + pand 416+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + + movdqa %xmm4,%xmm0 + movdqa %xmm4,%xmm1 + pandn %xmm2,%xmm0 + movdqa %xmm4,%xmm2 + pandn %xmm3,%xmm1 + movdqa %xmm4,%xmm3 + pand 320(%rsp),%xmm2 + pand 320+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + movdqu %xmm2,0(%rdi) + movdqu %xmm3,16(%rdi) + + movdqa %xmm5,%xmm0 + movdqa %xmm5,%xmm1 + pandn 256(%rsp),%xmm0 + movdqa %xmm5,%xmm2 + pandn 256+16(%rsp),%xmm1 + movdqa %xmm5,%xmm3 + pand 448(%rsp),%xmm2 + pand 448+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + + movdqa %xmm4,%xmm0 + movdqa %xmm4,%xmm1 + pandn %xmm2,%xmm0 + movdqa %xmm4,%xmm2 + pandn %xmm3,%xmm1 + movdqa %xmm4,%xmm3 + pand 352(%rsp),%xmm2 + pand 352+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + movdqu %xmm2,32(%rdi) + movdqu %xmm3,48(%rdi) + + leaq 480+56(%rsp),%rsi + + movq -48(%rsi),%r15 + + movq -40(%rsi),%r14 + + movq -32(%rsi),%r13 + + movq -24(%rsi),%r12 + + movq -16(%rsi),%rbx + + movq -8(%rsi),%rbp + + leaq (%rsi),%rsp + +L$add_affineq_epilogue: + .byte 0xf3,0xc3 + + + +.p2align 5 +__ecp_nistz256_add_tox: + + xorq %r11,%r11 + adcq 0(%rbx),%r12 + adcq 8(%rbx),%r13 + movq %r12,%rax + adcq 16(%rbx),%r8 + adcq 24(%rbx),%r9 + movq %r13,%rbp + adcq $0,%r11 + + xorq %r10,%r10 + sbbq $-1,%r12 + movq %r8,%rcx + sbbq %r14,%r13 + sbbq $0,%r8 + movq %r9,%r10 + sbbq %r15,%r9 + sbbq $0,%r11 + + cmovcq %rax,%r12 + cmovcq %rbp,%r13 + movq %r12,0(%rdi) + cmovcq %rcx,%r8 + movq %r13,8(%rdi) + cmovcq %r10,%r9 + movq %r8,16(%rdi) + movq %r9,24(%rdi) + + .byte 0xf3,0xc3 + + + + +.p2align 5 +__ecp_nistz256_sub_fromx: + + xorq %r11,%r11 + sbbq 0(%rbx),%r12 + sbbq 8(%rbx),%r13 + movq %r12,%rax + sbbq 16(%rbx),%r8 + sbbq 24(%rbx),%r9 + movq %r13,%rbp + sbbq $0,%r11 + + xorq %r10,%r10 + adcq $-1,%r12 + movq %r8,%rcx + adcq %r14,%r13 + adcq $0,%r8 + movq %r9,%r10 + adcq %r15,%r9 + + btq $0,%r11 + cmovncq %rax,%r12 + cmovncq %rbp,%r13 + movq %r12,0(%rdi) + cmovncq %rcx,%r8 + movq %r13,8(%rdi) + cmovncq %r10,%r9 + movq %r8,16(%rdi) + movq %r9,24(%rdi) + + .byte 0xf3,0xc3 + + + + +.p2align 5 +__ecp_nistz256_subx: + + xorq %r11,%r11 + sbbq %r12,%rax + sbbq %r13,%rbp + movq %rax,%r12 + sbbq %r8,%rcx + sbbq %r9,%r10 + movq %rbp,%r13 + sbbq $0,%r11 + + xorq %r9,%r9 + adcq $-1,%rax + movq %rcx,%r8 + adcq %r14,%rbp + adcq $0,%rcx + movq %r10,%r9 + adcq %r15,%r10 + + btq $0,%r11 + cmovcq %rax,%r12 + cmovcq %rbp,%r13 + cmovcq %rcx,%r8 + cmovcq %r10,%r9 + + .byte 0xf3,0xc3 + + + + +.p2align 5 +__ecp_nistz256_mul_by_2x: + + xorq %r11,%r11 + adcq %r12,%r12 + adcq %r13,%r13 + movq %r12,%rax + adcq %r8,%r8 + adcq %r9,%r9 + movq %r13,%rbp + adcq $0,%r11 + + xorq %r10,%r10 + sbbq $-1,%r12 + movq %r8,%rcx + sbbq %r14,%r13 + sbbq $0,%r8 + movq %r9,%r10 + sbbq %r15,%r9 + sbbq $0,%r11 + + cmovcq %rax,%r12 + cmovcq %rbp,%r13 + movq %r12,0(%rdi) + cmovcq %rcx,%r8 + movq %r13,8(%rdi) + cmovcq %r10,%r9 + movq %r8,16(%rdi) + movq %r9,24(%rdi) + + .byte 0xf3,0xc3 + + + +.p2align 5 +ecp_nistz256_point_doublex: + +L$point_doublex: + pushq %rbp + + pushq %rbx + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + subq $160+8,%rsp + +L$point_doublex_body: + +L$point_double_shortcutx: + movdqu 0(%rsi),%xmm0 + movq %rsi,%rbx + movdqu 16(%rsi),%xmm1 + movq 32+0(%rsi),%r12 + movq 32+8(%rsi),%r13 + movq 32+16(%rsi),%r8 + movq 32+24(%rsi),%r9 + movq L$poly+8(%rip),%r14 + movq L$poly+24(%rip),%r15 + movdqa %xmm0,96(%rsp) + movdqa %xmm1,96+16(%rsp) + leaq 32(%rdi),%r10 + leaq 64(%rdi),%r11 +.byte 102,72,15,110,199 +.byte 102,73,15,110,202 +.byte 102,73,15,110,211 + + leaq 0(%rsp),%rdi + call __ecp_nistz256_mul_by_2x + + movq 64+0(%rsi),%rdx + movq 64+8(%rsi),%r14 + movq 64+16(%rsi),%r15 + movq 64+24(%rsi),%r8 + leaq 64-128(%rsi),%rsi + leaq 64(%rsp),%rdi + call __ecp_nistz256_sqr_montx + + movq 0+0(%rsp),%rdx + movq 8+0(%rsp),%r14 + leaq -128+0(%rsp),%rsi + movq 16+0(%rsp),%r15 + movq 24+0(%rsp),%r8 + leaq 0(%rsp),%rdi + call __ecp_nistz256_sqr_montx + + movq 32(%rbx),%rdx + movq 64+0(%rbx),%r9 + movq 64+8(%rbx),%r10 + movq 64+16(%rbx),%r11 + movq 64+24(%rbx),%r12 + leaq 64-128(%rbx),%rsi + leaq 32(%rbx),%rbx +.byte 102,72,15,126,215 + call __ecp_nistz256_mul_montx + call __ecp_nistz256_mul_by_2x + + movq 96+0(%rsp),%r12 + movq 96+8(%rsp),%r13 + leaq 64(%rsp),%rbx + movq 96+16(%rsp),%r8 + movq 96+24(%rsp),%r9 + leaq 32(%rsp),%rdi + call __ecp_nistz256_add_tox + + movq 96+0(%rsp),%r12 + movq 96+8(%rsp),%r13 + leaq 64(%rsp),%rbx + movq 96+16(%rsp),%r8 + movq 96+24(%rsp),%r9 + leaq 64(%rsp),%rdi + call __ecp_nistz256_sub_fromx + + movq 0+0(%rsp),%rdx + movq 8+0(%rsp),%r14 + leaq -128+0(%rsp),%rsi + movq 16+0(%rsp),%r15 + movq 24+0(%rsp),%r8 +.byte 102,72,15,126,207 + call __ecp_nistz256_sqr_montx + xorq %r9,%r9 + movq %r12,%rax + addq $-1,%r12 + movq %r13,%r10 + adcq %rsi,%r13 + movq %r14,%rcx + adcq $0,%r14 + movq %r15,%r8 + adcq %rbp,%r15 + adcq $0,%r9 + xorq %rsi,%rsi + testq $1,%rax + + cmovzq %rax,%r12 + cmovzq %r10,%r13 + cmovzq %rcx,%r14 + cmovzq %r8,%r15 + cmovzq %rsi,%r9 + + movq %r13,%rax + shrq $1,%r12 + shlq $63,%rax + movq %r14,%r10 + shrq $1,%r13 + orq %rax,%r12 + shlq $63,%r10 + movq %r15,%rcx + shrq $1,%r14 + orq %r10,%r13 + shlq $63,%rcx + movq %r12,0(%rdi) + shrq $1,%r15 + movq %r13,8(%rdi) + shlq $63,%r9 + orq %rcx,%r14 + orq %r9,%r15 + movq %r14,16(%rdi) + movq %r15,24(%rdi) + movq 64(%rsp),%rdx + leaq 64(%rsp),%rbx + movq 0+32(%rsp),%r9 + movq 8+32(%rsp),%r10 + leaq -128+32(%rsp),%rsi + movq 16+32(%rsp),%r11 + movq 24+32(%rsp),%r12 + leaq 32(%rsp),%rdi + call __ecp_nistz256_mul_montx + + leaq 128(%rsp),%rdi + call __ecp_nistz256_mul_by_2x + + leaq 32(%rsp),%rbx + leaq 32(%rsp),%rdi + call __ecp_nistz256_add_tox + + movq 96(%rsp),%rdx + leaq 96(%rsp),%rbx + movq 0+0(%rsp),%r9 + movq 8+0(%rsp),%r10 + leaq -128+0(%rsp),%rsi + movq 16+0(%rsp),%r11 + movq 24+0(%rsp),%r12 + leaq 0(%rsp),%rdi + call __ecp_nistz256_mul_montx + + leaq 128(%rsp),%rdi + call __ecp_nistz256_mul_by_2x + + movq 0+32(%rsp),%rdx + movq 8+32(%rsp),%r14 + leaq -128+32(%rsp),%rsi + movq 16+32(%rsp),%r15 + movq 24+32(%rsp),%r8 +.byte 102,72,15,126,199 + call __ecp_nistz256_sqr_montx + + leaq 128(%rsp),%rbx + movq %r14,%r8 + movq %r15,%r9 + movq %rsi,%r14 + movq %rbp,%r15 + call __ecp_nistz256_sub_fromx + + movq 0+0(%rsp),%rax + movq 0+8(%rsp),%rbp + movq 0+16(%rsp),%rcx + movq 0+24(%rsp),%r10 + leaq 0(%rsp),%rdi + call __ecp_nistz256_subx + + movq 32(%rsp),%rdx + leaq 32(%rsp),%rbx + movq %r12,%r14 + xorl %ecx,%ecx + movq %r12,0+0(%rsp) + movq %r13,%r10 + movq %r13,0+8(%rsp) + cmovzq %r8,%r11 + movq %r8,0+16(%rsp) + leaq 0-128(%rsp),%rsi + cmovzq %r9,%r12 + movq %r9,0+24(%rsp) + movq %r14,%r9 + leaq 0(%rsp),%rdi + call __ecp_nistz256_mul_montx + +.byte 102,72,15,126,203 +.byte 102,72,15,126,207 + call __ecp_nistz256_sub_fromx + + leaq 160+56(%rsp),%rsi + + movq -48(%rsi),%r15 + + movq -40(%rsi),%r14 + + movq -32(%rsi),%r13 + + movq -24(%rsi),%r12 + + movq -16(%rsi),%rbx + + movq -8(%rsi),%rbp + + leaq (%rsi),%rsp + +L$point_doublex_epilogue: + .byte 0xf3,0xc3 + + + +.p2align 5 +ecp_nistz256_point_addx: + +L$point_addx: + pushq %rbp + + pushq %rbx + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + subq $576+8,%rsp + +L$point_addx_body: + + movdqu 0(%rsi),%xmm0 + movdqu 16(%rsi),%xmm1 + movdqu 32(%rsi),%xmm2 + movdqu 48(%rsi),%xmm3 + movdqu 64(%rsi),%xmm4 + movdqu 80(%rsi),%xmm5 + movq %rsi,%rbx + movq %rdx,%rsi + movdqa %xmm0,384(%rsp) + movdqa %xmm1,384+16(%rsp) + movdqa %xmm2,416(%rsp) + movdqa %xmm3,416+16(%rsp) + movdqa %xmm4,448(%rsp) + movdqa %xmm5,448+16(%rsp) + por %xmm4,%xmm5 + + movdqu 0(%rsi),%xmm0 + pshufd $0xb1,%xmm5,%xmm3 + movdqu 16(%rsi),%xmm1 + movdqu 32(%rsi),%xmm2 + por %xmm3,%xmm5 + movdqu 48(%rsi),%xmm3 + movq 64+0(%rsi),%rdx + movq 64+8(%rsi),%r14 + movq 64+16(%rsi),%r15 + movq 64+24(%rsi),%r8 + movdqa %xmm0,480(%rsp) + pshufd $0x1e,%xmm5,%xmm4 + movdqa %xmm1,480+16(%rsp) + movdqu 64(%rsi),%xmm0 + movdqu 80(%rsi),%xmm1 + movdqa %xmm2,512(%rsp) + movdqa %xmm3,512+16(%rsp) + por %xmm4,%xmm5 + pxor %xmm4,%xmm4 + por %xmm0,%xmm1 +.byte 102,72,15,110,199 + + leaq 64-128(%rsi),%rsi + movq %rdx,544+0(%rsp) + movq %r14,544+8(%rsp) + movq %r15,544+16(%rsp) + movq %r8,544+24(%rsp) + leaq 96(%rsp),%rdi + call __ecp_nistz256_sqr_montx + + pcmpeqd %xmm4,%xmm5 + pshufd $0xb1,%xmm1,%xmm4 + por %xmm1,%xmm4 + pshufd $0,%xmm5,%xmm5 + pshufd $0x1e,%xmm4,%xmm3 + por %xmm3,%xmm4 + pxor %xmm3,%xmm3 + pcmpeqd %xmm3,%xmm4 + pshufd $0,%xmm4,%xmm4 + movq 64+0(%rbx),%rdx + movq 64+8(%rbx),%r14 + movq 64+16(%rbx),%r15 + movq 64+24(%rbx),%r8 +.byte 102,72,15,110,203 + + leaq 64-128(%rbx),%rsi + leaq 32(%rsp),%rdi + call __ecp_nistz256_sqr_montx + + movq 544(%rsp),%rdx + leaq 544(%rsp),%rbx + movq 0+96(%rsp),%r9 + movq 8+96(%rsp),%r10 + leaq -128+96(%rsp),%rsi + movq 16+96(%rsp),%r11 + movq 24+96(%rsp),%r12 + leaq 224(%rsp),%rdi + call __ecp_nistz256_mul_montx + + movq 448(%rsp),%rdx + leaq 448(%rsp),%rbx + movq 0+32(%rsp),%r9 + movq 8+32(%rsp),%r10 + leaq -128+32(%rsp),%rsi + movq 16+32(%rsp),%r11 + movq 24+32(%rsp),%r12 + leaq 256(%rsp),%rdi + call __ecp_nistz256_mul_montx + + movq 416(%rsp),%rdx + leaq 416(%rsp),%rbx + movq 0+224(%rsp),%r9 + movq 8+224(%rsp),%r10 + leaq -128+224(%rsp),%rsi + movq 16+224(%rsp),%r11 + movq 24+224(%rsp),%r12 + leaq 224(%rsp),%rdi + call __ecp_nistz256_mul_montx + + movq 512(%rsp),%rdx + leaq 512(%rsp),%rbx + movq 0+256(%rsp),%r9 + movq 8+256(%rsp),%r10 + leaq -128+256(%rsp),%rsi + movq 16+256(%rsp),%r11 + movq 24+256(%rsp),%r12 + leaq 256(%rsp),%rdi + call __ecp_nistz256_mul_montx + + leaq 224(%rsp),%rbx + leaq 64(%rsp),%rdi + call __ecp_nistz256_sub_fromx + + orq %r13,%r12 + movdqa %xmm4,%xmm2 + orq %r8,%r12 + orq %r9,%r12 + por %xmm5,%xmm2 +.byte 102,73,15,110,220 + + movq 384(%rsp),%rdx + leaq 384(%rsp),%rbx + movq 0+96(%rsp),%r9 + movq 8+96(%rsp),%r10 + leaq -128+96(%rsp),%rsi + movq 16+96(%rsp),%r11 + movq 24+96(%rsp),%r12 + leaq 160(%rsp),%rdi + call __ecp_nistz256_mul_montx + + movq 480(%rsp),%rdx + leaq 480(%rsp),%rbx + movq 0+32(%rsp),%r9 + movq 8+32(%rsp),%r10 + leaq -128+32(%rsp),%rsi + movq 16+32(%rsp),%r11 + movq 24+32(%rsp),%r12 + leaq 192(%rsp),%rdi + call __ecp_nistz256_mul_montx + + leaq 160(%rsp),%rbx + leaq 0(%rsp),%rdi + call __ecp_nistz256_sub_fromx + + orq %r13,%r12 + orq %r8,%r12 + orq %r9,%r12 + +.byte 102,73,15,126,208 +.byte 102,73,15,126,217 + + orq %r8,%r12 + orq %r9,%r12 + + +.byte 0x3e + jnz L$add_proceedx + +L$add_doublex: +.byte 102,72,15,126,206 +.byte 102,72,15,126,199 + addq $416,%rsp + + jmp L$point_double_shortcutx + + +.p2align 5 +L$add_proceedx: + movq 0+64(%rsp),%rdx + movq 8+64(%rsp),%r14 + leaq -128+64(%rsp),%rsi + movq 16+64(%rsp),%r15 + movq 24+64(%rsp),%r8 + leaq 96(%rsp),%rdi + call __ecp_nistz256_sqr_montx + + movq 448(%rsp),%rdx + leaq 448(%rsp),%rbx + movq 0+0(%rsp),%r9 + movq 8+0(%rsp),%r10 + leaq -128+0(%rsp),%rsi + movq 16+0(%rsp),%r11 + movq 24+0(%rsp),%r12 + leaq 352(%rsp),%rdi + call __ecp_nistz256_mul_montx + + movq 0+0(%rsp),%rdx + movq 8+0(%rsp),%r14 + leaq -128+0(%rsp),%rsi + movq 16+0(%rsp),%r15 + movq 24+0(%rsp),%r8 + leaq 32(%rsp),%rdi + call __ecp_nistz256_sqr_montx + + movq 544(%rsp),%rdx + leaq 544(%rsp),%rbx + movq 0+352(%rsp),%r9 + movq 8+352(%rsp),%r10 + leaq -128+352(%rsp),%rsi + movq 16+352(%rsp),%r11 + movq 24+352(%rsp),%r12 + leaq 352(%rsp),%rdi + call __ecp_nistz256_mul_montx + + movq 0(%rsp),%rdx + leaq 0(%rsp),%rbx + movq 0+32(%rsp),%r9 + movq 8+32(%rsp),%r10 + leaq -128+32(%rsp),%rsi + movq 16+32(%rsp),%r11 + movq 24+32(%rsp),%r12 + leaq 128(%rsp),%rdi + call __ecp_nistz256_mul_montx + + movq 160(%rsp),%rdx + leaq 160(%rsp),%rbx + movq 0+32(%rsp),%r9 + movq 8+32(%rsp),%r10 + leaq -128+32(%rsp),%rsi + movq 16+32(%rsp),%r11 + movq 24+32(%rsp),%r12 + leaq 192(%rsp),%rdi + call __ecp_nistz256_mul_montx + + + + + xorq %r11,%r11 + addq %r12,%r12 + leaq 96(%rsp),%rsi + adcq %r13,%r13 + movq %r12,%rax + adcq %r8,%r8 + adcq %r9,%r9 + movq %r13,%rbp + adcq $0,%r11 + + subq $-1,%r12 + movq %r8,%rcx + sbbq %r14,%r13 + sbbq $0,%r8 + movq %r9,%r10 + sbbq %r15,%r9 + sbbq $0,%r11 + + cmovcq %rax,%r12 + movq 0(%rsi),%rax + cmovcq %rbp,%r13 + movq 8(%rsi),%rbp + cmovcq %rcx,%r8 + movq 16(%rsi),%rcx + cmovcq %r10,%r9 + movq 24(%rsi),%r10 + + call __ecp_nistz256_subx + + leaq 128(%rsp),%rbx + leaq 288(%rsp),%rdi + call __ecp_nistz256_sub_fromx + + movq 192+0(%rsp),%rax + movq 192+8(%rsp),%rbp + movq 192+16(%rsp),%rcx + movq 192+24(%rsp),%r10 + leaq 320(%rsp),%rdi + + call __ecp_nistz256_subx + + movq %r12,0(%rdi) + movq %r13,8(%rdi) + movq %r8,16(%rdi) + movq %r9,24(%rdi) + movq 128(%rsp),%rdx + leaq 128(%rsp),%rbx + movq 0+224(%rsp),%r9 + movq 8+224(%rsp),%r10 + leaq -128+224(%rsp),%rsi + movq 16+224(%rsp),%r11 + movq 24+224(%rsp),%r12 + leaq 256(%rsp),%rdi + call __ecp_nistz256_mul_montx + + movq 320(%rsp),%rdx + leaq 320(%rsp),%rbx + movq 0+64(%rsp),%r9 + movq 8+64(%rsp),%r10 + leaq -128+64(%rsp),%rsi + movq 16+64(%rsp),%r11 + movq 24+64(%rsp),%r12 + leaq 320(%rsp),%rdi + call __ecp_nistz256_mul_montx + + leaq 256(%rsp),%rbx + leaq 320(%rsp),%rdi + call __ecp_nistz256_sub_fromx + +.byte 102,72,15,126,199 + + movdqa %xmm5,%xmm0 + movdqa %xmm5,%xmm1 + pandn 352(%rsp),%xmm0 + movdqa %xmm5,%xmm2 + pandn 352+16(%rsp),%xmm1 + movdqa %xmm5,%xmm3 + pand 544(%rsp),%xmm2 + pand 544+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + + movdqa %xmm4,%xmm0 + movdqa %xmm4,%xmm1 + pandn %xmm2,%xmm0 + movdqa %xmm4,%xmm2 + pandn %xmm3,%xmm1 + movdqa %xmm4,%xmm3 + pand 448(%rsp),%xmm2 + pand 448+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + movdqu %xmm2,64(%rdi) + movdqu %xmm3,80(%rdi) + + movdqa %xmm5,%xmm0 + movdqa %xmm5,%xmm1 + pandn 288(%rsp),%xmm0 + movdqa %xmm5,%xmm2 + pandn 288+16(%rsp),%xmm1 + movdqa %xmm5,%xmm3 + pand 480(%rsp),%xmm2 + pand 480+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + + movdqa %xmm4,%xmm0 + movdqa %xmm4,%xmm1 + pandn %xmm2,%xmm0 + movdqa %xmm4,%xmm2 + pandn %xmm3,%xmm1 + movdqa %xmm4,%xmm3 + pand 384(%rsp),%xmm2 + pand 384+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + movdqu %xmm2,0(%rdi) + movdqu %xmm3,16(%rdi) + + movdqa %xmm5,%xmm0 + movdqa %xmm5,%xmm1 + pandn 320(%rsp),%xmm0 + movdqa %xmm5,%xmm2 + pandn 320+16(%rsp),%xmm1 + movdqa %xmm5,%xmm3 + pand 512(%rsp),%xmm2 + pand 512+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + + movdqa %xmm4,%xmm0 + movdqa %xmm4,%xmm1 + pandn %xmm2,%xmm0 + movdqa %xmm4,%xmm2 + pandn %xmm3,%xmm1 + movdqa %xmm4,%xmm3 + pand 416(%rsp),%xmm2 + pand 416+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + movdqu %xmm2,32(%rdi) + movdqu %xmm3,48(%rdi) + +L$add_donex: + leaq 576+56(%rsp),%rsi + + movq -48(%rsi),%r15 + + movq -40(%rsi),%r14 + + movq -32(%rsi),%r13 + + movq -24(%rsi),%r12 + + movq -16(%rsi),%rbx + + movq -8(%rsi),%rbp + + leaq (%rsi),%rsp + +L$point_addx_epilogue: + .byte 0xf3,0xc3 + + + +.p2align 5 +ecp_nistz256_point_add_affinex: + +L$point_add_affinex: + pushq %rbp + + pushq %rbx + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + subq $480+8,%rsp + +L$add_affinex_body: + + movdqu 0(%rsi),%xmm0 + movq %rdx,%rbx + movdqu 16(%rsi),%xmm1 + movdqu 32(%rsi),%xmm2 + movdqu 48(%rsi),%xmm3 + movdqu 64(%rsi),%xmm4 + movdqu 80(%rsi),%xmm5 + movq 64+0(%rsi),%rdx + movq 64+8(%rsi),%r14 + movq 64+16(%rsi),%r15 + movq 64+24(%rsi),%r8 + movdqa %xmm0,320(%rsp) + movdqa %xmm1,320+16(%rsp) + movdqa %xmm2,352(%rsp) + movdqa %xmm3,352+16(%rsp) + movdqa %xmm4,384(%rsp) + movdqa %xmm5,384+16(%rsp) + por %xmm4,%xmm5 + + movdqu 0(%rbx),%xmm0 + pshufd $0xb1,%xmm5,%xmm3 + movdqu 16(%rbx),%xmm1 + movdqu 32(%rbx),%xmm2 + por %xmm3,%xmm5 + movdqu 48(%rbx),%xmm3 + movdqa %xmm0,416(%rsp) + pshufd $0x1e,%xmm5,%xmm4 + movdqa %xmm1,416+16(%rsp) + por %xmm0,%xmm1 +.byte 102,72,15,110,199 + movdqa %xmm2,448(%rsp) + movdqa %xmm3,448+16(%rsp) + por %xmm2,%xmm3 + por %xmm4,%xmm5 + pxor %xmm4,%xmm4 + por %xmm1,%xmm3 + + leaq 64-128(%rsi),%rsi + leaq 32(%rsp),%rdi + call __ecp_nistz256_sqr_montx + + pcmpeqd %xmm4,%xmm5 + pshufd $0xb1,%xmm3,%xmm4 + movq 0(%rbx),%rdx + + movq %r12,%r9 + por %xmm3,%xmm4 + pshufd $0,%xmm5,%xmm5 + pshufd $0x1e,%xmm4,%xmm3 + movq %r13,%r10 + por %xmm3,%xmm4 + pxor %xmm3,%xmm3 + movq %r14,%r11 + pcmpeqd %xmm3,%xmm4 + pshufd $0,%xmm4,%xmm4 + + leaq 32-128(%rsp),%rsi + movq %r15,%r12 + leaq 0(%rsp),%rdi + call __ecp_nistz256_mul_montx + + leaq 320(%rsp),%rbx + leaq 64(%rsp),%rdi + call __ecp_nistz256_sub_fromx + + movq 384(%rsp),%rdx + leaq 384(%rsp),%rbx + movq 0+32(%rsp),%r9 + movq 8+32(%rsp),%r10 + leaq -128+32(%rsp),%rsi + movq 16+32(%rsp),%r11 + movq 24+32(%rsp),%r12 + leaq 32(%rsp),%rdi + call __ecp_nistz256_mul_montx + + movq 384(%rsp),%rdx + leaq 384(%rsp),%rbx + movq 0+64(%rsp),%r9 + movq 8+64(%rsp),%r10 + leaq -128+64(%rsp),%rsi + movq 16+64(%rsp),%r11 + movq 24+64(%rsp),%r12 + leaq 288(%rsp),%rdi + call __ecp_nistz256_mul_montx + + movq 448(%rsp),%rdx + leaq 448(%rsp),%rbx + movq 0+32(%rsp),%r9 + movq 8+32(%rsp),%r10 + leaq -128+32(%rsp),%rsi + movq 16+32(%rsp),%r11 + movq 24+32(%rsp),%r12 + leaq 32(%rsp),%rdi + call __ecp_nistz256_mul_montx + + leaq 352(%rsp),%rbx + leaq 96(%rsp),%rdi + call __ecp_nistz256_sub_fromx + + movq 0+64(%rsp),%rdx + movq 8+64(%rsp),%r14 + leaq -128+64(%rsp),%rsi + movq 16+64(%rsp),%r15 + movq 24+64(%rsp),%r8 + leaq 128(%rsp),%rdi + call __ecp_nistz256_sqr_montx + + movq 0+96(%rsp),%rdx + movq 8+96(%rsp),%r14 + leaq -128+96(%rsp),%rsi + movq 16+96(%rsp),%r15 + movq 24+96(%rsp),%r8 + leaq 192(%rsp),%rdi + call __ecp_nistz256_sqr_montx + + movq 128(%rsp),%rdx + leaq 128(%rsp),%rbx + movq 0+64(%rsp),%r9 + movq 8+64(%rsp),%r10 + leaq -128+64(%rsp),%rsi + movq 16+64(%rsp),%r11 + movq 24+64(%rsp),%r12 + leaq 160(%rsp),%rdi + call __ecp_nistz256_mul_montx + + movq 320(%rsp),%rdx + leaq 320(%rsp),%rbx + movq 0+128(%rsp),%r9 + movq 8+128(%rsp),%r10 + leaq -128+128(%rsp),%rsi + movq 16+128(%rsp),%r11 + movq 24+128(%rsp),%r12 + leaq 0(%rsp),%rdi + call __ecp_nistz256_mul_montx + + + + + xorq %r11,%r11 + addq %r12,%r12 + leaq 192(%rsp),%rsi + adcq %r13,%r13 + movq %r12,%rax + adcq %r8,%r8 + adcq %r9,%r9 + movq %r13,%rbp + adcq $0,%r11 + + subq $-1,%r12 + movq %r8,%rcx + sbbq %r14,%r13 + sbbq $0,%r8 + movq %r9,%r10 + sbbq %r15,%r9 + sbbq $0,%r11 + + cmovcq %rax,%r12 + movq 0(%rsi),%rax + cmovcq %rbp,%r13 + movq 8(%rsi),%rbp + cmovcq %rcx,%r8 + movq 16(%rsi),%rcx + cmovcq %r10,%r9 + movq 24(%rsi),%r10 + + call __ecp_nistz256_subx + + leaq 160(%rsp),%rbx + leaq 224(%rsp),%rdi + call __ecp_nistz256_sub_fromx + + movq 0+0(%rsp),%rax + movq 0+8(%rsp),%rbp + movq 0+16(%rsp),%rcx + movq 0+24(%rsp),%r10 + leaq 64(%rsp),%rdi + + call __ecp_nistz256_subx + + movq %r12,0(%rdi) + movq %r13,8(%rdi) + movq %r8,16(%rdi) + movq %r9,24(%rdi) + movq 352(%rsp),%rdx + leaq 352(%rsp),%rbx + movq 0+160(%rsp),%r9 + movq 8+160(%rsp),%r10 + leaq -128+160(%rsp),%rsi + movq 16+160(%rsp),%r11 + movq 24+160(%rsp),%r12 + leaq 32(%rsp),%rdi + call __ecp_nistz256_mul_montx + + movq 96(%rsp),%rdx + leaq 96(%rsp),%rbx + movq 0+64(%rsp),%r9 + movq 8+64(%rsp),%r10 + leaq -128+64(%rsp),%rsi + movq 16+64(%rsp),%r11 + movq 24+64(%rsp),%r12 + leaq 64(%rsp),%rdi + call __ecp_nistz256_mul_montx + + leaq 32(%rsp),%rbx + leaq 256(%rsp),%rdi + call __ecp_nistz256_sub_fromx + +.byte 102,72,15,126,199 + + movdqa %xmm5,%xmm0 + movdqa %xmm5,%xmm1 + pandn 288(%rsp),%xmm0 + movdqa %xmm5,%xmm2 + pandn 288+16(%rsp),%xmm1 + movdqa %xmm5,%xmm3 + pand L$ONE_mont(%rip),%xmm2 + pand L$ONE_mont+16(%rip),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + + movdqa %xmm4,%xmm0 + movdqa %xmm4,%xmm1 + pandn %xmm2,%xmm0 + movdqa %xmm4,%xmm2 + pandn %xmm3,%xmm1 + movdqa %xmm4,%xmm3 + pand 384(%rsp),%xmm2 + pand 384+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + movdqu %xmm2,64(%rdi) + movdqu %xmm3,80(%rdi) + + movdqa %xmm5,%xmm0 + movdqa %xmm5,%xmm1 + pandn 224(%rsp),%xmm0 + movdqa %xmm5,%xmm2 + pandn 224+16(%rsp),%xmm1 + movdqa %xmm5,%xmm3 + pand 416(%rsp),%xmm2 + pand 416+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + + movdqa %xmm4,%xmm0 + movdqa %xmm4,%xmm1 + pandn %xmm2,%xmm0 + movdqa %xmm4,%xmm2 + pandn %xmm3,%xmm1 + movdqa %xmm4,%xmm3 + pand 320(%rsp),%xmm2 + pand 320+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + movdqu %xmm2,0(%rdi) + movdqu %xmm3,16(%rdi) + + movdqa %xmm5,%xmm0 + movdqa %xmm5,%xmm1 + pandn 256(%rsp),%xmm0 + movdqa %xmm5,%xmm2 + pandn 256+16(%rsp),%xmm1 + movdqa %xmm5,%xmm3 + pand 448(%rsp),%xmm2 + pand 448+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + + movdqa %xmm4,%xmm0 + movdqa %xmm4,%xmm1 + pandn %xmm2,%xmm0 + movdqa %xmm4,%xmm2 + pandn %xmm3,%xmm1 + movdqa %xmm4,%xmm3 + pand 352(%rsp),%xmm2 + pand 352+16(%rsp),%xmm3 + por %xmm0,%xmm2 + por %xmm1,%xmm3 + movdqu %xmm2,32(%rdi) + movdqu %xmm3,48(%rdi) + + leaq 480+56(%rsp),%rsi + + movq -48(%rsi),%r15 + + movq -40(%rsi),%r14 + + movq -32(%rsi),%r13 + + movq -24(%rsi),%r12 + + movq -16(%rsi),%rbx + + movq -8(%rsi),%rbp + + leaq (%rsi),%rsp + +L$add_affinex_epilogue: + .byte 0xf3,0xc3 + + diff --git a/vere/ext/openssl/gen/macos-x86_64/crypto/ec/x25519-x86_64.s b/vere/ext/openssl/gen/macos-x86_64/crypto/ec/x25519-x86_64.s new file mode 100644 index 0000000..158e849 --- /dev/null +++ b/vere/ext/openssl/gen/macos-x86_64/crypto/ec/x25519-x86_64.s @@ -0,0 +1,770 @@ +.text + +.globl _x25519_fe51_mul + +.p2align 5 +_x25519_fe51_mul: + + pushq %rbp + + pushq %rbx + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + leaq -40(%rsp),%rsp + +L$fe51_mul_body: + + movq 0(%rsi),%rax + movq 0(%rdx),%r11 + movq 8(%rdx),%r12 + movq 16(%rdx),%r13 + movq 24(%rdx),%rbp + movq 32(%rdx),%r14 + + movq %rdi,32(%rsp) + movq %rax,%rdi + mulq %r11 + movq %r11,0(%rsp) + movq %rax,%rbx + movq %rdi,%rax + movq %rdx,%rcx + mulq %r12 + movq %r12,8(%rsp) + movq %rax,%r8 + movq %rdi,%rax + leaq (%r14,%r14,8),%r15 + movq %rdx,%r9 + mulq %r13 + movq %r13,16(%rsp) + movq %rax,%r10 + movq %rdi,%rax + leaq (%r14,%r15,2),%rdi + movq %rdx,%r11 + mulq %rbp + movq %rax,%r12 + movq 0(%rsi),%rax + movq %rdx,%r13 + mulq %r14 + movq %rax,%r14 + movq 8(%rsi),%rax + movq %rdx,%r15 + + mulq %rdi + addq %rax,%rbx + movq 16(%rsi),%rax + adcq %rdx,%rcx + mulq %rdi + addq %rax,%r8 + movq 24(%rsi),%rax + adcq %rdx,%r9 + mulq %rdi + addq %rax,%r10 + movq 32(%rsi),%rax + adcq %rdx,%r11 + mulq %rdi + imulq $19,%rbp,%rdi + addq %rax,%r12 + movq 8(%rsi),%rax + adcq %rdx,%r13 + mulq %rbp + movq 16(%rsp),%rbp + addq %rax,%r14 + movq 16(%rsi),%rax + adcq %rdx,%r15 + + mulq %rdi + addq %rax,%rbx + movq 24(%rsi),%rax + adcq %rdx,%rcx + mulq %rdi + addq %rax,%r8 + movq 32(%rsi),%rax + adcq %rdx,%r9 + mulq %rdi + imulq $19,%rbp,%rdi + addq %rax,%r10 + movq 8(%rsi),%rax + adcq %rdx,%r11 + mulq %rbp + addq %rax,%r12 + movq 16(%rsi),%rax + adcq %rdx,%r13 + mulq %rbp + movq 8(%rsp),%rbp + addq %rax,%r14 + movq 24(%rsi),%rax + adcq %rdx,%r15 + + mulq %rdi + addq %rax,%rbx + movq 32(%rsi),%rax + adcq %rdx,%rcx + mulq %rdi + addq %rax,%r8 + movq 8(%rsi),%rax + adcq %rdx,%r9 + mulq %rbp + imulq $19,%rbp,%rdi + addq %rax,%r10 + movq 16(%rsi),%rax + adcq %rdx,%r11 + mulq %rbp + addq %rax,%r12 + movq 24(%rsi),%rax + adcq %rdx,%r13 + mulq %rbp + movq 0(%rsp),%rbp + addq %rax,%r14 + movq 32(%rsi),%rax + adcq %rdx,%r15 + + mulq %rdi + addq %rax,%rbx + movq 8(%rsi),%rax + adcq %rdx,%rcx + mulq %rbp + addq %rax,%r8 + movq 16(%rsi),%rax + adcq %rdx,%r9 + mulq %rbp + addq %rax,%r10 + movq 24(%rsi),%rax + adcq %rdx,%r11 + mulq %rbp + addq %rax,%r12 + movq 32(%rsi),%rax + adcq %rdx,%r13 + mulq %rbp + addq %rax,%r14 + adcq %rdx,%r15 + + movq 32(%rsp),%rdi + jmp L$reduce51 +L$fe51_mul_epilogue: + + + +.globl _x25519_fe51_sqr + +.p2align 5 +_x25519_fe51_sqr: + + pushq %rbp + + pushq %rbx + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + leaq -40(%rsp),%rsp + +L$fe51_sqr_body: + + movq 0(%rsi),%rax + movq 16(%rsi),%r15 + movq 32(%rsi),%rbp + + movq %rdi,32(%rsp) + leaq (%rax,%rax,1),%r14 + mulq %rax + movq %rax,%rbx + movq 8(%rsi),%rax + movq %rdx,%rcx + mulq %r14 + movq %rax,%r8 + movq %r15,%rax + movq %r15,0(%rsp) + movq %rdx,%r9 + mulq %r14 + movq %rax,%r10 + movq 24(%rsi),%rax + movq %rdx,%r11 + imulq $19,%rbp,%rdi + mulq %r14 + movq %rax,%r12 + movq %rbp,%rax + movq %rdx,%r13 + mulq %r14 + movq %rax,%r14 + movq %rbp,%rax + movq %rdx,%r15 + + mulq %rdi + addq %rax,%r12 + movq 8(%rsi),%rax + adcq %rdx,%r13 + + movq 24(%rsi),%rsi + leaq (%rax,%rax,1),%rbp + mulq %rax + addq %rax,%r10 + movq 0(%rsp),%rax + adcq %rdx,%r11 + mulq %rbp + addq %rax,%r12 + movq %rbp,%rax + adcq %rdx,%r13 + mulq %rsi + addq %rax,%r14 + movq %rbp,%rax + adcq %rdx,%r15 + imulq $19,%rsi,%rbp + mulq %rdi + addq %rax,%rbx + leaq (%rsi,%rsi,1),%rax + adcq %rdx,%rcx + + mulq %rdi + addq %rax,%r10 + movq %rsi,%rax + adcq %rdx,%r11 + mulq %rbp + addq %rax,%r8 + movq 0(%rsp),%rax + adcq %rdx,%r9 + + leaq (%rax,%rax,1),%rsi + mulq %rax + addq %rax,%r14 + movq %rbp,%rax + adcq %rdx,%r15 + mulq %rsi + addq %rax,%rbx + movq %rsi,%rax + adcq %rdx,%rcx + mulq %rdi + addq %rax,%r8 + adcq %rdx,%r9 + + movq 32(%rsp),%rdi + jmp L$reduce51 + +.p2align 5 +L$reduce51: + movq $0x7ffffffffffff,%rbp + + movq %r10,%rdx + shrq $51,%r10 + shlq $13,%r11 + andq %rbp,%rdx + orq %r10,%r11 + addq %r11,%r12 + adcq $0,%r13 + + movq %rbx,%rax + shrq $51,%rbx + shlq $13,%rcx + andq %rbp,%rax + orq %rbx,%rcx + addq %rcx,%r8 + adcq $0,%r9 + + movq %r12,%rbx + shrq $51,%r12 + shlq $13,%r13 + andq %rbp,%rbx + orq %r12,%r13 + addq %r13,%r14 + adcq $0,%r15 + + movq %r8,%rcx + shrq $51,%r8 + shlq $13,%r9 + andq %rbp,%rcx + orq %r8,%r9 + addq %r9,%rdx + + movq %r14,%r10 + shrq $51,%r14 + shlq $13,%r15 + andq %rbp,%r10 + orq %r14,%r15 + + leaq (%r15,%r15,8),%r14 + leaq (%r15,%r14,2),%r15 + addq %r15,%rax + + movq %rdx,%r8 + andq %rbp,%rdx + shrq $51,%r8 + addq %r8,%rbx + + movq %rax,%r9 + andq %rbp,%rax + shrq $51,%r9 + addq %r9,%rcx + + movq %rax,0(%rdi) + movq %rcx,8(%rdi) + movq %rdx,16(%rdi) + movq %rbx,24(%rdi) + movq %r10,32(%rdi) + + movq 40(%rsp),%r15 + + movq 48(%rsp),%r14 + + movq 56(%rsp),%r13 + + movq 64(%rsp),%r12 + + movq 72(%rsp),%rbx + + movq 80(%rsp),%rbp + + leaq 88(%rsp),%rsp + +L$fe51_sqr_epilogue: + .byte 0xf3,0xc3 + + + +.globl _x25519_fe51_mul121666 + +.p2align 5 +_x25519_fe51_mul121666: + + pushq %rbp + + pushq %rbx + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + leaq -40(%rsp),%rsp + +L$fe51_mul121666_body: + movl $121666,%eax + + mulq 0(%rsi) + movq %rax,%rbx + movl $121666,%eax + movq %rdx,%rcx + mulq 8(%rsi) + movq %rax,%r8 + movl $121666,%eax + movq %rdx,%r9 + mulq 16(%rsi) + movq %rax,%r10 + movl $121666,%eax + movq %rdx,%r11 + mulq 24(%rsi) + movq %rax,%r12 + movl $121666,%eax + movq %rdx,%r13 + mulq 32(%rsi) + movq %rax,%r14 + movq %rdx,%r15 + + jmp L$reduce51 +L$fe51_mul121666_epilogue: + + + +.globl _x25519_fe64_eligible + +.p2align 5 +_x25519_fe64_eligible: + + movl _OPENSSL_ia32cap_P+8(%rip),%ecx + xorl %eax,%eax + andl $0x80100,%ecx + cmpl $0x80100,%ecx + cmovel %ecx,%eax + .byte 0xf3,0xc3 + + + +.globl _x25519_fe64_mul + +.p2align 5 +_x25519_fe64_mul: + + pushq %rbp + + pushq %rbx + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + pushq %rdi + + leaq -16(%rsp),%rsp + +L$fe64_mul_body: + + movq %rdx,%rax + movq 0(%rdx),%rbp + movq 0(%rsi),%rdx + movq 8(%rax),%rcx + movq 16(%rax),%r14 + movq 24(%rax),%r15 + + mulxq %rbp,%r8,%rax + xorl %edi,%edi + mulxq %rcx,%r9,%rbx + adcxq %rax,%r9 + mulxq %r14,%r10,%rax + adcxq %rbx,%r10 + mulxq %r15,%r11,%r12 + movq 8(%rsi),%rdx + adcxq %rax,%r11 + movq %r14,(%rsp) + adcxq %rdi,%r12 + + mulxq %rbp,%rax,%rbx + adoxq %rax,%r9 + adcxq %rbx,%r10 + mulxq %rcx,%rax,%rbx + adoxq %rax,%r10 + adcxq %rbx,%r11 + mulxq %r14,%rax,%rbx + adoxq %rax,%r11 + adcxq %rbx,%r12 + mulxq %r15,%rax,%r13 + movq 16(%rsi),%rdx + adoxq %rax,%r12 + adcxq %rdi,%r13 + adoxq %rdi,%r13 + + mulxq %rbp,%rax,%rbx + adcxq %rax,%r10 + adoxq %rbx,%r11 + mulxq %rcx,%rax,%rbx + adcxq %rax,%r11 + adoxq %rbx,%r12 + mulxq %r14,%rax,%rbx + adcxq %rax,%r12 + adoxq %rbx,%r13 + mulxq %r15,%rax,%r14 + movq 24(%rsi),%rdx + adcxq %rax,%r13 + adoxq %rdi,%r14 + adcxq %rdi,%r14 + + mulxq %rbp,%rax,%rbx + adoxq %rax,%r11 + adcxq %rbx,%r12 + mulxq %rcx,%rax,%rbx + adoxq %rax,%r12 + adcxq %rbx,%r13 + mulxq (%rsp),%rax,%rbx + adoxq %rax,%r13 + adcxq %rbx,%r14 + mulxq %r15,%rax,%r15 + movl $38,%edx + adoxq %rax,%r14 + adcxq %rdi,%r15 + adoxq %rdi,%r15 + + jmp L$reduce64 +L$fe64_mul_epilogue: + + + +.globl _x25519_fe64_sqr + +.p2align 5 +_x25519_fe64_sqr: + + pushq %rbp + + pushq %rbx + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + pushq %rdi + + leaq -16(%rsp),%rsp + +L$fe64_sqr_body: + + movq 0(%rsi),%rdx + movq 8(%rsi),%rcx + movq 16(%rsi),%rbp + movq 24(%rsi),%rsi + + + mulxq %rdx,%r8,%r15 + mulxq %rcx,%r9,%rax + xorl %edi,%edi + mulxq %rbp,%r10,%rbx + adcxq %rax,%r10 + mulxq %rsi,%r11,%r12 + movq %rcx,%rdx + adcxq %rbx,%r11 + adcxq %rdi,%r12 + + + mulxq %rbp,%rax,%rbx + adoxq %rax,%r11 + adcxq %rbx,%r12 + mulxq %rsi,%rax,%r13 + movq %rbp,%rdx + adoxq %rax,%r12 + adcxq %rdi,%r13 + + + mulxq %rsi,%rax,%r14 + movq %rcx,%rdx + adoxq %rax,%r13 + adcxq %rdi,%r14 + adoxq %rdi,%r14 + + adcxq %r9,%r9 + adoxq %r15,%r9 + adcxq %r10,%r10 + mulxq %rdx,%rax,%rbx + movq %rbp,%rdx + adcxq %r11,%r11 + adoxq %rax,%r10 + adcxq %r12,%r12 + adoxq %rbx,%r11 + mulxq %rdx,%rax,%rbx + movq %rsi,%rdx + adcxq %r13,%r13 + adoxq %rax,%r12 + adcxq %r14,%r14 + adoxq %rbx,%r13 + mulxq %rdx,%rax,%r15 + movl $38,%edx + adoxq %rax,%r14 + adcxq %rdi,%r15 + adoxq %rdi,%r15 + jmp L$reduce64 + +.p2align 5 +L$reduce64: + mulxq %r12,%rax,%rbx + adcxq %rax,%r8 + adoxq %rbx,%r9 + mulxq %r13,%rax,%rbx + adcxq %rax,%r9 + adoxq %rbx,%r10 + mulxq %r14,%rax,%rbx + adcxq %rax,%r10 + adoxq %rbx,%r11 + mulxq %r15,%rax,%r12 + adcxq %rax,%r11 + adoxq %rdi,%r12 + adcxq %rdi,%r12 + + movq 16(%rsp),%rdi + imulq %rdx,%r12 + + addq %r12,%r8 + adcq $0,%r9 + adcq $0,%r10 + adcq $0,%r11 + + sbbq %rax,%rax + andq $38,%rax + + addq %rax,%r8 + movq %r9,8(%rdi) + movq %r10,16(%rdi) + movq %r11,24(%rdi) + movq %r8,0(%rdi) + + movq 24(%rsp),%r15 + + movq 32(%rsp),%r14 + + movq 40(%rsp),%r13 + + movq 48(%rsp),%r12 + + movq 56(%rsp),%rbx + + movq 64(%rsp),%rbp + + leaq 72(%rsp),%rsp + +L$fe64_sqr_epilogue: + .byte 0xf3,0xc3 + + + +.globl _x25519_fe64_mul121666 + +.p2align 5 +_x25519_fe64_mul121666: +L$fe64_mul121666_body: + + movl $121666,%edx + mulxq 0(%rsi),%r8,%rcx + mulxq 8(%rsi),%r9,%rax + addq %rcx,%r9 + mulxq 16(%rsi),%r10,%rcx + adcq %rax,%r10 + mulxq 24(%rsi),%r11,%rax + adcq %rcx,%r11 + adcq $0,%rax + + imulq $38,%rax,%rax + + addq %rax,%r8 + adcq $0,%r9 + adcq $0,%r10 + adcq $0,%r11 + + sbbq %rax,%rax + andq $38,%rax + + addq %rax,%r8 + movq %r9,8(%rdi) + movq %r10,16(%rdi) + movq %r11,24(%rdi) + movq %r8,0(%rdi) + +L$fe64_mul121666_epilogue: + .byte 0xf3,0xc3 + + + +.globl _x25519_fe64_add + +.p2align 5 +_x25519_fe64_add: +L$fe64_add_body: + + movq 0(%rsi),%r8 + movq 8(%rsi),%r9 + movq 16(%rsi),%r10 + movq 24(%rsi),%r11 + + addq 0(%rdx),%r8 + adcq 8(%rdx),%r9 + adcq 16(%rdx),%r10 + adcq 24(%rdx),%r11 + + sbbq %rax,%rax + andq $38,%rax + + addq %rax,%r8 + adcq $0,%r9 + adcq $0,%r10 + movq %r9,8(%rdi) + adcq $0,%r11 + movq %r10,16(%rdi) + sbbq %rax,%rax + movq %r11,24(%rdi) + andq $38,%rax + + addq %rax,%r8 + movq %r8,0(%rdi) + +L$fe64_add_epilogue: + .byte 0xf3,0xc3 + + + +.globl _x25519_fe64_sub + +.p2align 5 +_x25519_fe64_sub: +L$fe64_sub_body: + + movq 0(%rsi),%r8 + movq 8(%rsi),%r9 + movq 16(%rsi),%r10 + movq 24(%rsi),%r11 + + subq 0(%rdx),%r8 + sbbq 8(%rdx),%r9 + sbbq 16(%rdx),%r10 + sbbq 24(%rdx),%r11 + + sbbq %rax,%rax + andq $38,%rax + + subq %rax,%r8 + sbbq $0,%r9 + sbbq $0,%r10 + movq %r9,8(%rdi) + sbbq $0,%r11 + movq %r10,16(%rdi) + sbbq %rax,%rax + movq %r11,24(%rdi) + andq $38,%rax + + subq %rax,%r8 + movq %r8,0(%rdi) + +L$fe64_sub_epilogue: + .byte 0xf3,0xc3 + + + +.globl _x25519_fe64_tobytes + +.p2align 5 +_x25519_fe64_tobytes: +L$fe64_to_body: + + movq 0(%rsi),%r8 + movq 8(%rsi),%r9 + movq 16(%rsi),%r10 + movq 24(%rsi),%r11 + + + leaq (%r11,%r11,1),%rax + sarq $63,%r11 + shrq $1,%rax + andq $19,%r11 + addq $19,%r11 + + addq %r11,%r8 + adcq $0,%r9 + adcq $0,%r10 + adcq $0,%rax + + leaq (%rax,%rax,1),%r11 + sarq $63,%rax + shrq $1,%r11 + notq %rax + andq $19,%rax + + subq %rax,%r8 + sbbq $0,%r9 + sbbq $0,%r10 + sbbq $0,%r11 + + movq %r8,0(%rdi) + movq %r9,8(%rdi) + movq %r10,16(%rdi) + movq %r11,24(%rdi) + +L$fe64_to_epilogue: + .byte 0xf3,0xc3 + + +.byte 88,50,53,53,49,57,32,112,114,105,109,105,116,105,118,101,115,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 diff --git a/vere/ext/openssl/gen/macos-x86_64/crypto/md5/md5-x86_64.s b/vere/ext/openssl/gen/macos-x86_64/crypto/md5/md5-x86_64.s new file mode 100644 index 0000000..285c32c --- /dev/null +++ b/vere/ext/openssl/gen/macos-x86_64/crypto/md5/md5-x86_64.s @@ -0,0 +1,678 @@ +.text +.p2align 4 + +.globl _md5_block_asm_data_order + +_md5_block_asm_data_order: + + pushq %rbp + + pushq %rbx + + pushq %r12 + + pushq %r14 + + pushq %r15 + +L$prologue: + + + + + movq %rdi,%rbp + shlq $6,%rdx + leaq (%rsi,%rdx,1),%rdi + movl 0(%rbp),%eax + movl 4(%rbp),%ebx + movl 8(%rbp),%ecx + movl 12(%rbp),%edx + + + + + + + + cmpq %rdi,%rsi + je L$end + + +L$loop: + movl %eax,%r8d + movl %ebx,%r9d + movl %ecx,%r14d + movl %edx,%r15d + movl 0(%rsi),%r10d + movl %edx,%r11d + xorl %ecx,%r11d + leal -680876936(%rax,%r10,1),%eax + andl %ebx,%r11d + movl 4(%rsi),%r10d + xorl %edx,%r11d + addl %r11d,%eax + roll $7,%eax + movl %ecx,%r11d + addl %ebx,%eax + xorl %ebx,%r11d + leal -389564586(%rdx,%r10,1),%edx + andl %eax,%r11d + movl 8(%rsi),%r10d + xorl %ecx,%r11d + addl %r11d,%edx + roll $12,%edx + movl %ebx,%r11d + addl %eax,%edx + xorl %eax,%r11d + leal 606105819(%rcx,%r10,1),%ecx + andl %edx,%r11d + movl 12(%rsi),%r10d + xorl %ebx,%r11d + addl %r11d,%ecx + roll $17,%ecx + movl %eax,%r11d + addl %edx,%ecx + xorl %edx,%r11d + leal -1044525330(%rbx,%r10,1),%ebx + andl %ecx,%r11d + movl 16(%rsi),%r10d + xorl %eax,%r11d + addl %r11d,%ebx + roll $22,%ebx + movl %edx,%r11d + addl %ecx,%ebx + xorl %ecx,%r11d + leal -176418897(%rax,%r10,1),%eax + andl %ebx,%r11d + movl 20(%rsi),%r10d + xorl %edx,%r11d + addl %r11d,%eax + roll $7,%eax + movl %ecx,%r11d + addl %ebx,%eax + xorl %ebx,%r11d + leal 1200080426(%rdx,%r10,1),%edx + andl %eax,%r11d + movl 24(%rsi),%r10d + xorl %ecx,%r11d + addl %r11d,%edx + roll $12,%edx + movl %ebx,%r11d + addl %eax,%edx + xorl %eax,%r11d + leal -1473231341(%rcx,%r10,1),%ecx + andl %edx,%r11d + movl 28(%rsi),%r10d + xorl %ebx,%r11d + addl %r11d,%ecx + roll $17,%ecx + movl %eax,%r11d + addl %edx,%ecx + xorl %edx,%r11d + leal -45705983(%rbx,%r10,1),%ebx + andl %ecx,%r11d + movl 32(%rsi),%r10d + xorl %eax,%r11d + addl %r11d,%ebx + roll $22,%ebx + movl %edx,%r11d + addl %ecx,%ebx + xorl %ecx,%r11d + leal 1770035416(%rax,%r10,1),%eax + andl %ebx,%r11d + movl 36(%rsi),%r10d + xorl %edx,%r11d + addl %r11d,%eax + roll $7,%eax + movl %ecx,%r11d + addl %ebx,%eax + xorl %ebx,%r11d + leal -1958414417(%rdx,%r10,1),%edx + andl %eax,%r11d + movl 40(%rsi),%r10d + xorl %ecx,%r11d + addl %r11d,%edx + roll $12,%edx + movl %ebx,%r11d + addl %eax,%edx + xorl %eax,%r11d + leal -42063(%rcx,%r10,1),%ecx + andl %edx,%r11d + movl 44(%rsi),%r10d + xorl %ebx,%r11d + addl %r11d,%ecx + roll $17,%ecx + movl %eax,%r11d + addl %edx,%ecx + xorl %edx,%r11d + leal -1990404162(%rbx,%r10,1),%ebx + andl %ecx,%r11d + movl 48(%rsi),%r10d + xorl %eax,%r11d + addl %r11d,%ebx + roll $22,%ebx + movl %edx,%r11d + addl %ecx,%ebx + xorl %ecx,%r11d + leal 1804603682(%rax,%r10,1),%eax + andl %ebx,%r11d + movl 52(%rsi),%r10d + xorl %edx,%r11d + addl %r11d,%eax + roll $7,%eax + movl %ecx,%r11d + addl %ebx,%eax + xorl %ebx,%r11d + leal -40341101(%rdx,%r10,1),%edx + andl %eax,%r11d + movl 56(%rsi),%r10d + xorl %ecx,%r11d + addl %r11d,%edx + roll $12,%edx + movl %ebx,%r11d + addl %eax,%edx + xorl %eax,%r11d + leal -1502002290(%rcx,%r10,1),%ecx + andl %edx,%r11d + movl 60(%rsi),%r10d + xorl %ebx,%r11d + addl %r11d,%ecx + roll $17,%ecx + movl %eax,%r11d + addl %edx,%ecx + xorl %edx,%r11d + leal 1236535329(%rbx,%r10,1),%ebx + andl %ecx,%r11d + movl 4(%rsi),%r10d + xorl %eax,%r11d + addl %r11d,%ebx + roll $22,%ebx + movl %edx,%r11d + addl %ecx,%ebx + movl %edx,%r11d + movl %edx,%r12d + notl %r11d + andl %ebx,%r12d + leal -165796510(%rax,%r10,1),%eax + andl %ecx,%r11d + movl 24(%rsi),%r10d + orl %r11d,%r12d + movl %ecx,%r11d + addl %r12d,%eax + movl %ecx,%r12d + roll $5,%eax + addl %ebx,%eax + notl %r11d + andl %eax,%r12d + leal -1069501632(%rdx,%r10,1),%edx + andl %ebx,%r11d + movl 44(%rsi),%r10d + orl %r11d,%r12d + movl %ebx,%r11d + addl %r12d,%edx + movl %ebx,%r12d + roll $9,%edx + addl %eax,%edx + notl %r11d + andl %edx,%r12d + leal 643717713(%rcx,%r10,1),%ecx + andl %eax,%r11d + movl 0(%rsi),%r10d + orl %r11d,%r12d + movl %eax,%r11d + addl %r12d,%ecx + movl %eax,%r12d + roll $14,%ecx + addl %edx,%ecx + notl %r11d + andl %ecx,%r12d + leal -373897302(%rbx,%r10,1),%ebx + andl %edx,%r11d + movl 20(%rsi),%r10d + orl %r11d,%r12d + movl %edx,%r11d + addl %r12d,%ebx + movl %edx,%r12d + roll $20,%ebx + addl %ecx,%ebx + notl %r11d + andl %ebx,%r12d + leal -701558691(%rax,%r10,1),%eax + andl %ecx,%r11d + movl 40(%rsi),%r10d + orl %r11d,%r12d + movl %ecx,%r11d + addl %r12d,%eax + movl %ecx,%r12d + roll $5,%eax + addl %ebx,%eax + notl %r11d + andl %eax,%r12d + leal 38016083(%rdx,%r10,1),%edx + andl %ebx,%r11d + movl 60(%rsi),%r10d + orl %r11d,%r12d + movl %ebx,%r11d + addl %r12d,%edx + movl %ebx,%r12d + roll $9,%edx + addl %eax,%edx + notl %r11d + andl %edx,%r12d + leal -660478335(%rcx,%r10,1),%ecx + andl %eax,%r11d + movl 16(%rsi),%r10d + orl %r11d,%r12d + movl %eax,%r11d + addl %r12d,%ecx + movl %eax,%r12d + roll $14,%ecx + addl %edx,%ecx + notl %r11d + andl %ecx,%r12d + leal -405537848(%rbx,%r10,1),%ebx + andl %edx,%r11d + movl 36(%rsi),%r10d + orl %r11d,%r12d + movl %edx,%r11d + addl %r12d,%ebx + movl %edx,%r12d + roll $20,%ebx + addl %ecx,%ebx + notl %r11d + andl %ebx,%r12d + leal 568446438(%rax,%r10,1),%eax + andl %ecx,%r11d + movl 56(%rsi),%r10d + orl %r11d,%r12d + movl %ecx,%r11d + addl %r12d,%eax + movl %ecx,%r12d + roll $5,%eax + addl %ebx,%eax + notl %r11d + andl %eax,%r12d + leal -1019803690(%rdx,%r10,1),%edx + andl %ebx,%r11d + movl 12(%rsi),%r10d + orl %r11d,%r12d + movl %ebx,%r11d + addl %r12d,%edx + movl %ebx,%r12d + roll $9,%edx + addl %eax,%edx + notl %r11d + andl %edx,%r12d + leal -187363961(%rcx,%r10,1),%ecx + andl %eax,%r11d + movl 32(%rsi),%r10d + orl %r11d,%r12d + movl %eax,%r11d + addl %r12d,%ecx + movl %eax,%r12d + roll $14,%ecx + addl %edx,%ecx + notl %r11d + andl %ecx,%r12d + leal 1163531501(%rbx,%r10,1),%ebx + andl %edx,%r11d + movl 52(%rsi),%r10d + orl %r11d,%r12d + movl %edx,%r11d + addl %r12d,%ebx + movl %edx,%r12d + roll $20,%ebx + addl %ecx,%ebx + notl %r11d + andl %ebx,%r12d + leal -1444681467(%rax,%r10,1),%eax + andl %ecx,%r11d + movl 8(%rsi),%r10d + orl %r11d,%r12d + movl %ecx,%r11d + addl %r12d,%eax + movl %ecx,%r12d + roll $5,%eax + addl %ebx,%eax + notl %r11d + andl %eax,%r12d + leal -51403784(%rdx,%r10,1),%edx + andl %ebx,%r11d + movl 28(%rsi),%r10d + orl %r11d,%r12d + movl %ebx,%r11d + addl %r12d,%edx + movl %ebx,%r12d + roll $9,%edx + addl %eax,%edx + notl %r11d + andl %edx,%r12d + leal 1735328473(%rcx,%r10,1),%ecx + andl %eax,%r11d + movl 48(%rsi),%r10d + orl %r11d,%r12d + movl %eax,%r11d + addl %r12d,%ecx + movl %eax,%r12d + roll $14,%ecx + addl %edx,%ecx + notl %r11d + andl %ecx,%r12d + leal -1926607734(%rbx,%r10,1),%ebx + andl %edx,%r11d + movl 20(%rsi),%r10d + orl %r11d,%r12d + movl %edx,%r11d + addl %r12d,%ebx + movl %edx,%r12d + roll $20,%ebx + addl %ecx,%ebx + movl %ecx,%r11d + leal -378558(%rax,%r10,1),%eax + xorl %edx,%r11d + movl 32(%rsi),%r10d + xorl %ebx,%r11d + addl %r11d,%eax + movl %ebx,%r11d + roll $4,%eax + addl %ebx,%eax + leal -2022574463(%rdx,%r10,1),%edx + xorl %ecx,%r11d + movl 44(%rsi),%r10d + xorl %eax,%r11d + addl %r11d,%edx + roll $11,%edx + movl %eax,%r11d + addl %eax,%edx + leal 1839030562(%rcx,%r10,1),%ecx + xorl %ebx,%r11d + movl 56(%rsi),%r10d + xorl %edx,%r11d + addl %r11d,%ecx + movl %edx,%r11d + roll $16,%ecx + addl %edx,%ecx + leal -35309556(%rbx,%r10,1),%ebx + xorl %eax,%r11d + movl 4(%rsi),%r10d + xorl %ecx,%r11d + addl %r11d,%ebx + roll $23,%ebx + movl %ecx,%r11d + addl %ecx,%ebx + leal -1530992060(%rax,%r10,1),%eax + xorl %edx,%r11d + movl 16(%rsi),%r10d + xorl %ebx,%r11d + addl %r11d,%eax + movl %ebx,%r11d + roll $4,%eax + addl %ebx,%eax + leal 1272893353(%rdx,%r10,1),%edx + xorl %ecx,%r11d + movl 28(%rsi),%r10d + xorl %eax,%r11d + addl %r11d,%edx + roll $11,%edx + movl %eax,%r11d + addl %eax,%edx + leal -155497632(%rcx,%r10,1),%ecx + xorl %ebx,%r11d + movl 40(%rsi),%r10d + xorl %edx,%r11d + addl %r11d,%ecx + movl %edx,%r11d + roll $16,%ecx + addl %edx,%ecx + leal -1094730640(%rbx,%r10,1),%ebx + xorl %eax,%r11d + movl 52(%rsi),%r10d + xorl %ecx,%r11d + addl %r11d,%ebx + roll $23,%ebx + movl %ecx,%r11d + addl %ecx,%ebx + leal 681279174(%rax,%r10,1),%eax + xorl %edx,%r11d + movl 0(%rsi),%r10d + xorl %ebx,%r11d + addl %r11d,%eax + movl %ebx,%r11d + roll $4,%eax + addl %ebx,%eax + leal -358537222(%rdx,%r10,1),%edx + xorl %ecx,%r11d + movl 12(%rsi),%r10d + xorl %eax,%r11d + addl %r11d,%edx + roll $11,%edx + movl %eax,%r11d + addl %eax,%edx + leal -722521979(%rcx,%r10,1),%ecx + xorl %ebx,%r11d + movl 24(%rsi),%r10d + xorl %edx,%r11d + addl %r11d,%ecx + movl %edx,%r11d + roll $16,%ecx + addl %edx,%ecx + leal 76029189(%rbx,%r10,1),%ebx + xorl %eax,%r11d + movl 36(%rsi),%r10d + xorl %ecx,%r11d + addl %r11d,%ebx + roll $23,%ebx + movl %ecx,%r11d + addl %ecx,%ebx + leal -640364487(%rax,%r10,1),%eax + xorl %edx,%r11d + movl 48(%rsi),%r10d + xorl %ebx,%r11d + addl %r11d,%eax + movl %ebx,%r11d + roll $4,%eax + addl %ebx,%eax + leal -421815835(%rdx,%r10,1),%edx + xorl %ecx,%r11d + movl 60(%rsi),%r10d + xorl %eax,%r11d + addl %r11d,%edx + roll $11,%edx + movl %eax,%r11d + addl %eax,%edx + leal 530742520(%rcx,%r10,1),%ecx + xorl %ebx,%r11d + movl 8(%rsi),%r10d + xorl %edx,%r11d + addl %r11d,%ecx + movl %edx,%r11d + roll $16,%ecx + addl %edx,%ecx + leal -995338651(%rbx,%r10,1),%ebx + xorl %eax,%r11d + movl 0(%rsi),%r10d + xorl %ecx,%r11d + addl %r11d,%ebx + roll $23,%ebx + movl %ecx,%r11d + addl %ecx,%ebx + movl $0xffffffff,%r11d + xorl %edx,%r11d + leal -198630844(%rax,%r10,1),%eax + orl %ebx,%r11d + movl 28(%rsi),%r10d + xorl %ecx,%r11d + addl %r11d,%eax + movl $0xffffffff,%r11d + roll $6,%eax + xorl %ecx,%r11d + addl %ebx,%eax + leal 1126891415(%rdx,%r10,1),%edx + orl %eax,%r11d + movl 56(%rsi),%r10d + xorl %ebx,%r11d + addl %r11d,%edx + movl $0xffffffff,%r11d + roll $10,%edx + xorl %ebx,%r11d + addl %eax,%edx + leal -1416354905(%rcx,%r10,1),%ecx + orl %edx,%r11d + movl 20(%rsi),%r10d + xorl %eax,%r11d + addl %r11d,%ecx + movl $0xffffffff,%r11d + roll $15,%ecx + xorl %eax,%r11d + addl %edx,%ecx + leal -57434055(%rbx,%r10,1),%ebx + orl %ecx,%r11d + movl 48(%rsi),%r10d + xorl %edx,%r11d + addl %r11d,%ebx + movl $0xffffffff,%r11d + roll $21,%ebx + xorl %edx,%r11d + addl %ecx,%ebx + leal 1700485571(%rax,%r10,1),%eax + orl %ebx,%r11d + movl 12(%rsi),%r10d + xorl %ecx,%r11d + addl %r11d,%eax + movl $0xffffffff,%r11d + roll $6,%eax + xorl %ecx,%r11d + addl %ebx,%eax + leal -1894986606(%rdx,%r10,1),%edx + orl %eax,%r11d + movl 40(%rsi),%r10d + xorl %ebx,%r11d + addl %r11d,%edx + movl $0xffffffff,%r11d + roll $10,%edx + xorl %ebx,%r11d + addl %eax,%edx + leal -1051523(%rcx,%r10,1),%ecx + orl %edx,%r11d + movl 4(%rsi),%r10d + xorl %eax,%r11d + addl %r11d,%ecx + movl $0xffffffff,%r11d + roll $15,%ecx + xorl %eax,%r11d + addl %edx,%ecx + leal -2054922799(%rbx,%r10,1),%ebx + orl %ecx,%r11d + movl 32(%rsi),%r10d + xorl %edx,%r11d + addl %r11d,%ebx + movl $0xffffffff,%r11d + roll $21,%ebx + xorl %edx,%r11d + addl %ecx,%ebx + leal 1873313359(%rax,%r10,1),%eax + orl %ebx,%r11d + movl 60(%rsi),%r10d + xorl %ecx,%r11d + addl %r11d,%eax + movl $0xffffffff,%r11d + roll $6,%eax + xorl %ecx,%r11d + addl %ebx,%eax + leal -30611744(%rdx,%r10,1),%edx + orl %eax,%r11d + movl 24(%rsi),%r10d + xorl %ebx,%r11d + addl %r11d,%edx + movl $0xffffffff,%r11d + roll $10,%edx + xorl %ebx,%r11d + addl %eax,%edx + leal -1560198380(%rcx,%r10,1),%ecx + orl %edx,%r11d + movl 52(%rsi),%r10d + xorl %eax,%r11d + addl %r11d,%ecx + movl $0xffffffff,%r11d + roll $15,%ecx + xorl %eax,%r11d + addl %edx,%ecx + leal 1309151649(%rbx,%r10,1),%ebx + orl %ecx,%r11d + movl 16(%rsi),%r10d + xorl %edx,%r11d + addl %r11d,%ebx + movl $0xffffffff,%r11d + roll $21,%ebx + xorl %edx,%r11d + addl %ecx,%ebx + leal -145523070(%rax,%r10,1),%eax + orl %ebx,%r11d + movl 44(%rsi),%r10d + xorl %ecx,%r11d + addl %r11d,%eax + movl $0xffffffff,%r11d + roll $6,%eax + xorl %ecx,%r11d + addl %ebx,%eax + leal -1120210379(%rdx,%r10,1),%edx + orl %eax,%r11d + movl 8(%rsi),%r10d + xorl %ebx,%r11d + addl %r11d,%edx + movl $0xffffffff,%r11d + roll $10,%edx + xorl %ebx,%r11d + addl %eax,%edx + leal 718787259(%rcx,%r10,1),%ecx + orl %edx,%r11d + movl 36(%rsi),%r10d + xorl %eax,%r11d + addl %r11d,%ecx + movl $0xffffffff,%r11d + roll $15,%ecx + xorl %eax,%r11d + addl %edx,%ecx + leal -343485551(%rbx,%r10,1),%ebx + orl %ecx,%r11d + movl 0(%rsi),%r10d + xorl %edx,%r11d + addl %r11d,%ebx + movl $0xffffffff,%r11d + roll $21,%ebx + xorl %edx,%r11d + addl %ecx,%ebx + + addl %r8d,%eax + addl %r9d,%ebx + addl %r14d,%ecx + addl %r15d,%edx + + + addq $64,%rsi + cmpq %rdi,%rsi + jb L$loop + + +L$end: + movl %eax,0(%rbp) + movl %ebx,4(%rbp) + movl %ecx,8(%rbp) + movl %edx,12(%rbp) + + movq (%rsp),%r15 + + movq 8(%rsp),%r14 + + movq 16(%rsp),%r12 + + movq 24(%rsp),%rbx + + movq 32(%rsp),%rbp + + addq $40,%rsp + +L$epilogue: + .byte 0xf3,0xc3 + + diff --git a/vere/ext/openssl/gen/macos-x86_64/crypto/modes/aesni-gcm-x86_64.s b/vere/ext/openssl/gen/macos-x86_64/crypto/modes/aesni-gcm-x86_64.s new file mode 100644 index 0000000..c26df9d --- /dev/null +++ b/vere/ext/openssl/gen/macos-x86_64/crypto/modes/aesni-gcm-x86_64.s @@ -0,0 +1,789 @@ +.text + + +.p2align 5 +_aesni_ctr32_ghash_6x: + + vmovdqu 32(%r11),%xmm2 + subq $6,%rdx + vpxor %xmm4,%xmm4,%xmm4 + vmovdqu 0-128(%rcx),%xmm15 + vpaddb %xmm2,%xmm1,%xmm10 + vpaddb %xmm2,%xmm10,%xmm11 + vpaddb %xmm2,%xmm11,%xmm12 + vpaddb %xmm2,%xmm12,%xmm13 + vpaddb %xmm2,%xmm13,%xmm14 + vpxor %xmm15,%xmm1,%xmm9 + vmovdqu %xmm4,16+8(%rsp) + jmp L$oop6x + +.p2align 5 +L$oop6x: + addl $100663296,%ebx + jc L$handle_ctr32 + vmovdqu 0-32(%r9),%xmm3 + vpaddb %xmm2,%xmm14,%xmm1 + vpxor %xmm15,%xmm10,%xmm10 + vpxor %xmm15,%xmm11,%xmm11 + +L$resume_ctr32: + vmovdqu %xmm1,(%r8) + vpclmulqdq $0x10,%xmm3,%xmm7,%xmm5 + vpxor %xmm15,%xmm12,%xmm12 + vmovups 16-128(%rcx),%xmm2 + vpclmulqdq $0x01,%xmm3,%xmm7,%xmm6 + xorq %r12,%r12 + cmpq %r14,%r15 + + vaesenc %xmm2,%xmm9,%xmm9 + vmovdqu 48+8(%rsp),%xmm0 + vpxor %xmm15,%xmm13,%xmm13 + vpclmulqdq $0x00,%xmm3,%xmm7,%xmm1 + vaesenc %xmm2,%xmm10,%xmm10 + vpxor %xmm15,%xmm14,%xmm14 + setnc %r12b + vpclmulqdq $0x11,%xmm3,%xmm7,%xmm7 + vaesenc %xmm2,%xmm11,%xmm11 + vmovdqu 16-32(%r9),%xmm3 + negq %r12 + vaesenc %xmm2,%xmm12,%xmm12 + vpxor %xmm5,%xmm6,%xmm6 + vpclmulqdq $0x00,%xmm3,%xmm0,%xmm5 + vpxor %xmm4,%xmm8,%xmm8 + vaesenc %xmm2,%xmm13,%xmm13 + vpxor %xmm5,%xmm1,%xmm4 + andq $0x60,%r12 + vmovups 32-128(%rcx),%xmm15 + vpclmulqdq $0x10,%xmm3,%xmm0,%xmm1 + vaesenc %xmm2,%xmm14,%xmm14 + + vpclmulqdq $0x01,%xmm3,%xmm0,%xmm2 + leaq (%r14,%r12,1),%r14 + vaesenc %xmm15,%xmm9,%xmm9 + vpxor 16+8(%rsp),%xmm8,%xmm8 + vpclmulqdq $0x11,%xmm3,%xmm0,%xmm3 + vmovdqu 64+8(%rsp),%xmm0 + vaesenc %xmm15,%xmm10,%xmm10 + movbeq 88(%r14),%r13 + vaesenc %xmm15,%xmm11,%xmm11 + movbeq 80(%r14),%r12 + vaesenc %xmm15,%xmm12,%xmm12 + movq %r13,32+8(%rsp) + vaesenc %xmm15,%xmm13,%xmm13 + movq %r12,40+8(%rsp) + vmovdqu 48-32(%r9),%xmm5 + vaesenc %xmm15,%xmm14,%xmm14 + + vmovups 48-128(%rcx),%xmm15 + vpxor %xmm1,%xmm6,%xmm6 + vpclmulqdq $0x00,%xmm5,%xmm0,%xmm1 + vaesenc %xmm15,%xmm9,%xmm9 + vpxor %xmm2,%xmm6,%xmm6 + vpclmulqdq $0x10,%xmm5,%xmm0,%xmm2 + vaesenc %xmm15,%xmm10,%xmm10 + vpxor %xmm3,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm5,%xmm0,%xmm3 + vaesenc %xmm15,%xmm11,%xmm11 + vpclmulqdq $0x11,%xmm5,%xmm0,%xmm5 + vmovdqu 80+8(%rsp),%xmm0 + vaesenc %xmm15,%xmm12,%xmm12 + vaesenc %xmm15,%xmm13,%xmm13 + vpxor %xmm1,%xmm4,%xmm4 + vmovdqu 64-32(%r9),%xmm1 + vaesenc %xmm15,%xmm14,%xmm14 + + vmovups 64-128(%rcx),%xmm15 + vpxor %xmm2,%xmm6,%xmm6 + vpclmulqdq $0x00,%xmm1,%xmm0,%xmm2 + vaesenc %xmm15,%xmm9,%xmm9 + vpxor %xmm3,%xmm6,%xmm6 + vpclmulqdq $0x10,%xmm1,%xmm0,%xmm3 + vaesenc %xmm15,%xmm10,%xmm10 + movbeq 72(%r14),%r13 + vpxor %xmm5,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm1,%xmm0,%xmm5 + vaesenc %xmm15,%xmm11,%xmm11 + movbeq 64(%r14),%r12 + vpclmulqdq $0x11,%xmm1,%xmm0,%xmm1 + vmovdqu 96+8(%rsp),%xmm0 + vaesenc %xmm15,%xmm12,%xmm12 + movq %r13,48+8(%rsp) + vaesenc %xmm15,%xmm13,%xmm13 + movq %r12,56+8(%rsp) + vpxor %xmm2,%xmm4,%xmm4 + vmovdqu 96-32(%r9),%xmm2 + vaesenc %xmm15,%xmm14,%xmm14 + + vmovups 80-128(%rcx),%xmm15 + vpxor %xmm3,%xmm6,%xmm6 + vpclmulqdq $0x00,%xmm2,%xmm0,%xmm3 + vaesenc %xmm15,%xmm9,%xmm9 + vpxor %xmm5,%xmm6,%xmm6 + vpclmulqdq $0x10,%xmm2,%xmm0,%xmm5 + vaesenc %xmm15,%xmm10,%xmm10 + movbeq 56(%r14),%r13 + vpxor %xmm1,%xmm7,%xmm7 + vpclmulqdq $0x01,%xmm2,%xmm0,%xmm1 + vpxor 112+8(%rsp),%xmm8,%xmm8 + vaesenc %xmm15,%xmm11,%xmm11 + movbeq 48(%r14),%r12 + vpclmulqdq $0x11,%xmm2,%xmm0,%xmm2 + vaesenc %xmm15,%xmm12,%xmm12 + movq %r13,64+8(%rsp) + vaesenc %xmm15,%xmm13,%xmm13 + movq %r12,72+8(%rsp) + vpxor %xmm3,%xmm4,%xmm4 + vmovdqu 112-32(%r9),%xmm3 + vaesenc %xmm15,%xmm14,%xmm14 + + vmovups 96-128(%rcx),%xmm15 + vpxor %xmm5,%xmm6,%xmm6 + vpclmulqdq $0x10,%xmm3,%xmm8,%xmm5 + vaesenc %xmm15,%xmm9,%xmm9 + vpxor %xmm1,%xmm6,%xmm6 + vpclmulqdq $0x01,%xmm3,%xmm8,%xmm1 + vaesenc %xmm15,%xmm10,%xmm10 + movbeq 40(%r14),%r13 + vpxor %xmm2,%xmm7,%xmm7 + vpclmulqdq $0x00,%xmm3,%xmm8,%xmm2 + vaesenc %xmm15,%xmm11,%xmm11 + movbeq 32(%r14),%r12 + vpclmulqdq $0x11,%xmm3,%xmm8,%xmm8 + vaesenc %xmm15,%xmm12,%xmm12 + movq %r13,80+8(%rsp) + vaesenc %xmm15,%xmm13,%xmm13 + movq %r12,88+8(%rsp) + vpxor %xmm5,%xmm6,%xmm6 + vaesenc %xmm15,%xmm14,%xmm14 + vpxor %xmm1,%xmm6,%xmm6 + + vmovups 112-128(%rcx),%xmm15 + vpslldq $8,%xmm6,%xmm5 + vpxor %xmm2,%xmm4,%xmm4 + vmovdqu 16(%r11),%xmm3 + + vaesenc %xmm15,%xmm9,%xmm9 + vpxor %xmm8,%xmm7,%xmm7 + vaesenc %xmm15,%xmm10,%xmm10 + vpxor %xmm5,%xmm4,%xmm4 + movbeq 24(%r14),%r13 + vaesenc %xmm15,%xmm11,%xmm11 + movbeq 16(%r14),%r12 + vpalignr $8,%xmm4,%xmm4,%xmm0 + vpclmulqdq $0x10,%xmm3,%xmm4,%xmm4 + movq %r13,96+8(%rsp) + vaesenc %xmm15,%xmm12,%xmm12 + movq %r12,104+8(%rsp) + vaesenc %xmm15,%xmm13,%xmm13 + vmovups 128-128(%rcx),%xmm1 + vaesenc %xmm15,%xmm14,%xmm14 + + vaesenc %xmm1,%xmm9,%xmm9 + vmovups 144-128(%rcx),%xmm15 + vaesenc %xmm1,%xmm10,%xmm10 + vpsrldq $8,%xmm6,%xmm6 + vaesenc %xmm1,%xmm11,%xmm11 + vpxor %xmm6,%xmm7,%xmm7 + vaesenc %xmm1,%xmm12,%xmm12 + vpxor %xmm0,%xmm4,%xmm4 + movbeq 8(%r14),%r13 + vaesenc %xmm1,%xmm13,%xmm13 + movbeq 0(%r14),%r12 + vaesenc %xmm1,%xmm14,%xmm14 + vmovups 160-128(%rcx),%xmm1 + cmpl $11,%ebp + jb L$enc_tail + + vaesenc %xmm15,%xmm9,%xmm9 + vaesenc %xmm15,%xmm10,%xmm10 + vaesenc %xmm15,%xmm11,%xmm11 + vaesenc %xmm15,%xmm12,%xmm12 + vaesenc %xmm15,%xmm13,%xmm13 + vaesenc %xmm15,%xmm14,%xmm14 + + vaesenc %xmm1,%xmm9,%xmm9 + vaesenc %xmm1,%xmm10,%xmm10 + vaesenc %xmm1,%xmm11,%xmm11 + vaesenc %xmm1,%xmm12,%xmm12 + vaesenc %xmm1,%xmm13,%xmm13 + vmovups 176-128(%rcx),%xmm15 + vaesenc %xmm1,%xmm14,%xmm14 + vmovups 192-128(%rcx),%xmm1 + je L$enc_tail + + vaesenc %xmm15,%xmm9,%xmm9 + vaesenc %xmm15,%xmm10,%xmm10 + vaesenc %xmm15,%xmm11,%xmm11 + vaesenc %xmm15,%xmm12,%xmm12 + vaesenc %xmm15,%xmm13,%xmm13 + vaesenc %xmm15,%xmm14,%xmm14 + + vaesenc %xmm1,%xmm9,%xmm9 + vaesenc %xmm1,%xmm10,%xmm10 + vaesenc %xmm1,%xmm11,%xmm11 + vaesenc %xmm1,%xmm12,%xmm12 + vaesenc %xmm1,%xmm13,%xmm13 + vmovups 208-128(%rcx),%xmm15 + vaesenc %xmm1,%xmm14,%xmm14 + vmovups 224-128(%rcx),%xmm1 + jmp L$enc_tail + +.p2align 5 +L$handle_ctr32: + vmovdqu (%r11),%xmm0 + vpshufb %xmm0,%xmm1,%xmm6 + vmovdqu 48(%r11),%xmm5 + vpaddd 64(%r11),%xmm6,%xmm10 + vpaddd %xmm5,%xmm6,%xmm11 + vmovdqu 0-32(%r9),%xmm3 + vpaddd %xmm5,%xmm10,%xmm12 + vpshufb %xmm0,%xmm10,%xmm10 + vpaddd %xmm5,%xmm11,%xmm13 + vpshufb %xmm0,%xmm11,%xmm11 + vpxor %xmm15,%xmm10,%xmm10 + vpaddd %xmm5,%xmm12,%xmm14 + vpshufb %xmm0,%xmm12,%xmm12 + vpxor %xmm15,%xmm11,%xmm11 + vpaddd %xmm5,%xmm13,%xmm1 + vpshufb %xmm0,%xmm13,%xmm13 + vpshufb %xmm0,%xmm14,%xmm14 + vpshufb %xmm0,%xmm1,%xmm1 + jmp L$resume_ctr32 + +.p2align 5 +L$enc_tail: + vaesenc %xmm15,%xmm9,%xmm9 + vmovdqu %xmm7,16+8(%rsp) + vpalignr $8,%xmm4,%xmm4,%xmm8 + vaesenc %xmm15,%xmm10,%xmm10 + vpclmulqdq $0x10,%xmm3,%xmm4,%xmm4 + vpxor 0(%rdi),%xmm1,%xmm2 + vaesenc %xmm15,%xmm11,%xmm11 + vpxor 16(%rdi),%xmm1,%xmm0 + vaesenc %xmm15,%xmm12,%xmm12 + vpxor 32(%rdi),%xmm1,%xmm5 + vaesenc %xmm15,%xmm13,%xmm13 + vpxor 48(%rdi),%xmm1,%xmm6 + vaesenc %xmm15,%xmm14,%xmm14 + vpxor 64(%rdi),%xmm1,%xmm7 + vpxor 80(%rdi),%xmm1,%xmm3 + vmovdqu (%r8),%xmm1 + + vaesenclast %xmm2,%xmm9,%xmm9 + vmovdqu 32(%r11),%xmm2 + vaesenclast %xmm0,%xmm10,%xmm10 + vpaddb %xmm2,%xmm1,%xmm0 + movq %r13,112+8(%rsp) + leaq 96(%rdi),%rdi + vaesenclast %xmm5,%xmm11,%xmm11 + vpaddb %xmm2,%xmm0,%xmm5 + movq %r12,120+8(%rsp) + leaq 96(%rsi),%rsi + vmovdqu 0-128(%rcx),%xmm15 + vaesenclast %xmm6,%xmm12,%xmm12 + vpaddb %xmm2,%xmm5,%xmm6 + vaesenclast %xmm7,%xmm13,%xmm13 + vpaddb %xmm2,%xmm6,%xmm7 + vaesenclast %xmm3,%xmm14,%xmm14 + vpaddb %xmm2,%xmm7,%xmm3 + + addq $0x60,%r10 + subq $0x6,%rdx + jc L$6x_done + + vmovups %xmm9,-96(%rsi) + vpxor %xmm15,%xmm1,%xmm9 + vmovups %xmm10,-80(%rsi) + vmovdqa %xmm0,%xmm10 + vmovups %xmm11,-64(%rsi) + vmovdqa %xmm5,%xmm11 + vmovups %xmm12,-48(%rsi) + vmovdqa %xmm6,%xmm12 + vmovups %xmm13,-32(%rsi) + vmovdqa %xmm7,%xmm13 + vmovups %xmm14,-16(%rsi) + vmovdqa %xmm3,%xmm14 + vmovdqu 32+8(%rsp),%xmm7 + jmp L$oop6x + +L$6x_done: + vpxor 16+8(%rsp),%xmm8,%xmm8 + vpxor %xmm4,%xmm8,%xmm8 + + .byte 0xf3,0xc3 + + +.globl _aesni_gcm_decrypt + +.p2align 5 +_aesni_gcm_decrypt: + + xorq %r10,%r10 + cmpq $0x60,%rdx + jb L$gcm_dec_abort + + leaq (%rsp),%rax + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + vzeroupper + + vmovdqu (%r8),%xmm1 + addq $-128,%rsp + movl 12(%r8),%ebx + leaq L$bswap_mask(%rip),%r11 + leaq -128(%rcx),%r14 + movq $0xf80,%r15 + vmovdqu (%r9),%xmm8 + andq $-128,%rsp + vmovdqu (%r11),%xmm0 + leaq 128(%rcx),%rcx + leaq 32+32(%r9),%r9 + movl 240-128(%rcx),%ebp + vpshufb %xmm0,%xmm8,%xmm8 + + andq %r15,%r14 + andq %rsp,%r15 + subq %r14,%r15 + jc L$dec_no_key_aliasing + cmpq $768,%r15 + jnc L$dec_no_key_aliasing + subq %r15,%rsp +L$dec_no_key_aliasing: + + vmovdqu 80(%rdi),%xmm7 + leaq (%rdi),%r14 + vmovdqu 64(%rdi),%xmm4 + leaq -192(%rdi,%rdx,1),%r15 + vmovdqu 48(%rdi),%xmm5 + shrq $4,%rdx + xorq %r10,%r10 + vmovdqu 32(%rdi),%xmm6 + vpshufb %xmm0,%xmm7,%xmm7 + vmovdqu 16(%rdi),%xmm2 + vpshufb %xmm0,%xmm4,%xmm4 + vmovdqu (%rdi),%xmm3 + vpshufb %xmm0,%xmm5,%xmm5 + vmovdqu %xmm4,48(%rsp) + vpshufb %xmm0,%xmm6,%xmm6 + vmovdqu %xmm5,64(%rsp) + vpshufb %xmm0,%xmm2,%xmm2 + vmovdqu %xmm6,80(%rsp) + vpshufb %xmm0,%xmm3,%xmm3 + vmovdqu %xmm2,96(%rsp) + vmovdqu %xmm3,112(%rsp) + + call _aesni_ctr32_ghash_6x + + vmovups %xmm9,-96(%rsi) + vmovups %xmm10,-80(%rsi) + vmovups %xmm11,-64(%rsi) + vmovups %xmm12,-48(%rsi) + vmovups %xmm13,-32(%rsi) + vmovups %xmm14,-16(%rsi) + + vpshufb (%r11),%xmm8,%xmm8 + vmovdqu %xmm8,-64(%r9) + + vzeroupper + movq -48(%rax),%r15 + + movq -40(%rax),%r14 + + movq -32(%rax),%r13 + + movq -24(%rax),%r12 + + movq -16(%rax),%rbp + + movq -8(%rax),%rbx + + leaq (%rax),%rsp + +L$gcm_dec_abort: + movq %r10,%rax + .byte 0xf3,0xc3 + + + +.p2align 5 +_aesni_ctr32_6x: + + vmovdqu 0-128(%rcx),%xmm4 + vmovdqu 32(%r11),%xmm2 + leaq -1(%rbp),%r13 + vmovups 16-128(%rcx),%xmm15 + leaq 32-128(%rcx),%r12 + vpxor %xmm4,%xmm1,%xmm9 + addl $100663296,%ebx + jc L$handle_ctr32_2 + vpaddb %xmm2,%xmm1,%xmm10 + vpaddb %xmm2,%xmm10,%xmm11 + vpxor %xmm4,%xmm10,%xmm10 + vpaddb %xmm2,%xmm11,%xmm12 + vpxor %xmm4,%xmm11,%xmm11 + vpaddb %xmm2,%xmm12,%xmm13 + vpxor %xmm4,%xmm12,%xmm12 + vpaddb %xmm2,%xmm13,%xmm14 + vpxor %xmm4,%xmm13,%xmm13 + vpaddb %xmm2,%xmm14,%xmm1 + vpxor %xmm4,%xmm14,%xmm14 + jmp L$oop_ctr32 + +.p2align 4 +L$oop_ctr32: + vaesenc %xmm15,%xmm9,%xmm9 + vaesenc %xmm15,%xmm10,%xmm10 + vaesenc %xmm15,%xmm11,%xmm11 + vaesenc %xmm15,%xmm12,%xmm12 + vaesenc %xmm15,%xmm13,%xmm13 + vaesenc %xmm15,%xmm14,%xmm14 + vmovups (%r12),%xmm15 + leaq 16(%r12),%r12 + decl %r13d + jnz L$oop_ctr32 + + vmovdqu (%r12),%xmm3 + vaesenc %xmm15,%xmm9,%xmm9 + vpxor 0(%rdi),%xmm3,%xmm4 + vaesenc %xmm15,%xmm10,%xmm10 + vpxor 16(%rdi),%xmm3,%xmm5 + vaesenc %xmm15,%xmm11,%xmm11 + vpxor 32(%rdi),%xmm3,%xmm6 + vaesenc %xmm15,%xmm12,%xmm12 + vpxor 48(%rdi),%xmm3,%xmm8 + vaesenc %xmm15,%xmm13,%xmm13 + vpxor 64(%rdi),%xmm3,%xmm2 + vaesenc %xmm15,%xmm14,%xmm14 + vpxor 80(%rdi),%xmm3,%xmm3 + leaq 96(%rdi),%rdi + + vaesenclast %xmm4,%xmm9,%xmm9 + vaesenclast %xmm5,%xmm10,%xmm10 + vaesenclast %xmm6,%xmm11,%xmm11 + vaesenclast %xmm8,%xmm12,%xmm12 + vaesenclast %xmm2,%xmm13,%xmm13 + vaesenclast %xmm3,%xmm14,%xmm14 + vmovups %xmm9,0(%rsi) + vmovups %xmm10,16(%rsi) + vmovups %xmm11,32(%rsi) + vmovups %xmm12,48(%rsi) + vmovups %xmm13,64(%rsi) + vmovups %xmm14,80(%rsi) + leaq 96(%rsi),%rsi + + .byte 0xf3,0xc3 +.p2align 5 +L$handle_ctr32_2: + vpshufb %xmm0,%xmm1,%xmm6 + vmovdqu 48(%r11),%xmm5 + vpaddd 64(%r11),%xmm6,%xmm10 + vpaddd %xmm5,%xmm6,%xmm11 + vpaddd %xmm5,%xmm10,%xmm12 + vpshufb %xmm0,%xmm10,%xmm10 + vpaddd %xmm5,%xmm11,%xmm13 + vpshufb %xmm0,%xmm11,%xmm11 + vpxor %xmm4,%xmm10,%xmm10 + vpaddd %xmm5,%xmm12,%xmm14 + vpshufb %xmm0,%xmm12,%xmm12 + vpxor %xmm4,%xmm11,%xmm11 + vpaddd %xmm5,%xmm13,%xmm1 + vpshufb %xmm0,%xmm13,%xmm13 + vpxor %xmm4,%xmm12,%xmm12 + vpshufb %xmm0,%xmm14,%xmm14 + vpxor %xmm4,%xmm13,%xmm13 + vpshufb %xmm0,%xmm1,%xmm1 + vpxor %xmm4,%xmm14,%xmm14 + jmp L$oop_ctr32 + + + +.globl _aesni_gcm_encrypt + +.p2align 5 +_aesni_gcm_encrypt: + + xorq %r10,%r10 + cmpq $288,%rdx + jb L$gcm_enc_abort + + leaq (%rsp),%rax + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + vzeroupper + + vmovdqu (%r8),%xmm1 + addq $-128,%rsp + movl 12(%r8),%ebx + leaq L$bswap_mask(%rip),%r11 + leaq -128(%rcx),%r14 + movq $0xf80,%r15 + leaq 128(%rcx),%rcx + vmovdqu (%r11),%xmm0 + andq $-128,%rsp + movl 240-128(%rcx),%ebp + + andq %r15,%r14 + andq %rsp,%r15 + subq %r14,%r15 + jc L$enc_no_key_aliasing + cmpq $768,%r15 + jnc L$enc_no_key_aliasing + subq %r15,%rsp +L$enc_no_key_aliasing: + + leaq (%rsi),%r14 + leaq -192(%rsi,%rdx,1),%r15 + shrq $4,%rdx + + call _aesni_ctr32_6x + vpshufb %xmm0,%xmm9,%xmm8 + vpshufb %xmm0,%xmm10,%xmm2 + vmovdqu %xmm8,112(%rsp) + vpshufb %xmm0,%xmm11,%xmm4 + vmovdqu %xmm2,96(%rsp) + vpshufb %xmm0,%xmm12,%xmm5 + vmovdqu %xmm4,80(%rsp) + vpshufb %xmm0,%xmm13,%xmm6 + vmovdqu %xmm5,64(%rsp) + vpshufb %xmm0,%xmm14,%xmm7 + vmovdqu %xmm6,48(%rsp) + + call _aesni_ctr32_6x + + vmovdqu (%r9),%xmm8 + leaq 32+32(%r9),%r9 + subq $12,%rdx + movq $192,%r10 + vpshufb %xmm0,%xmm8,%xmm8 + + call _aesni_ctr32_ghash_6x + vmovdqu 32(%rsp),%xmm7 + vmovdqu (%r11),%xmm0 + vmovdqu 0-32(%r9),%xmm3 + vpunpckhqdq %xmm7,%xmm7,%xmm1 + vmovdqu 32-32(%r9),%xmm15 + vmovups %xmm9,-96(%rsi) + vpshufb %xmm0,%xmm9,%xmm9 + vpxor %xmm7,%xmm1,%xmm1 + vmovups %xmm10,-80(%rsi) + vpshufb %xmm0,%xmm10,%xmm10 + vmovups %xmm11,-64(%rsi) + vpshufb %xmm0,%xmm11,%xmm11 + vmovups %xmm12,-48(%rsi) + vpshufb %xmm0,%xmm12,%xmm12 + vmovups %xmm13,-32(%rsi) + vpshufb %xmm0,%xmm13,%xmm13 + vmovups %xmm14,-16(%rsi) + vpshufb %xmm0,%xmm14,%xmm14 + vmovdqu %xmm9,16(%rsp) + vmovdqu 48(%rsp),%xmm6 + vmovdqu 16-32(%r9),%xmm0 + vpunpckhqdq %xmm6,%xmm6,%xmm2 + vpclmulqdq $0x00,%xmm3,%xmm7,%xmm5 + vpxor %xmm6,%xmm2,%xmm2 + vpclmulqdq $0x11,%xmm3,%xmm7,%xmm7 + vpclmulqdq $0x00,%xmm15,%xmm1,%xmm1 + + vmovdqu 64(%rsp),%xmm9 + vpclmulqdq $0x00,%xmm0,%xmm6,%xmm4 + vmovdqu 48-32(%r9),%xmm3 + vpxor %xmm5,%xmm4,%xmm4 + vpunpckhqdq %xmm9,%xmm9,%xmm5 + vpclmulqdq $0x11,%xmm0,%xmm6,%xmm6 + vpxor %xmm9,%xmm5,%xmm5 + vpxor %xmm7,%xmm6,%xmm6 + vpclmulqdq $0x10,%xmm15,%xmm2,%xmm2 + vmovdqu 80-32(%r9),%xmm15 + vpxor %xmm1,%xmm2,%xmm2 + + vmovdqu 80(%rsp),%xmm1 + vpclmulqdq $0x00,%xmm3,%xmm9,%xmm7 + vmovdqu 64-32(%r9),%xmm0 + vpxor %xmm4,%xmm7,%xmm7 + vpunpckhqdq %xmm1,%xmm1,%xmm4 + vpclmulqdq $0x11,%xmm3,%xmm9,%xmm9 + vpxor %xmm1,%xmm4,%xmm4 + vpxor %xmm6,%xmm9,%xmm9 + vpclmulqdq $0x00,%xmm15,%xmm5,%xmm5 + vpxor %xmm2,%xmm5,%xmm5 + + vmovdqu 96(%rsp),%xmm2 + vpclmulqdq $0x00,%xmm0,%xmm1,%xmm6 + vmovdqu 96-32(%r9),%xmm3 + vpxor %xmm7,%xmm6,%xmm6 + vpunpckhqdq %xmm2,%xmm2,%xmm7 + vpclmulqdq $0x11,%xmm0,%xmm1,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpxor %xmm9,%xmm1,%xmm1 + vpclmulqdq $0x10,%xmm15,%xmm4,%xmm4 + vmovdqu 128-32(%r9),%xmm15 + vpxor %xmm5,%xmm4,%xmm4 + + vpxor 112(%rsp),%xmm8,%xmm8 + vpclmulqdq $0x00,%xmm3,%xmm2,%xmm5 + vmovdqu 112-32(%r9),%xmm0 + vpunpckhqdq %xmm8,%xmm8,%xmm9 + vpxor %xmm6,%xmm5,%xmm5 + vpclmulqdq $0x11,%xmm3,%xmm2,%xmm2 + vpxor %xmm8,%xmm9,%xmm9 + vpxor %xmm1,%xmm2,%xmm2 + vpclmulqdq $0x00,%xmm15,%xmm7,%xmm7 + vpxor %xmm4,%xmm7,%xmm4 + + vpclmulqdq $0x00,%xmm0,%xmm8,%xmm6 + vmovdqu 0-32(%r9),%xmm3 + vpunpckhqdq %xmm14,%xmm14,%xmm1 + vpclmulqdq $0x11,%xmm0,%xmm8,%xmm8 + vpxor %xmm14,%xmm1,%xmm1 + vpxor %xmm5,%xmm6,%xmm5 + vpclmulqdq $0x10,%xmm15,%xmm9,%xmm9 + vmovdqu 32-32(%r9),%xmm15 + vpxor %xmm2,%xmm8,%xmm7 + vpxor %xmm4,%xmm9,%xmm6 + + vmovdqu 16-32(%r9),%xmm0 + vpxor %xmm5,%xmm7,%xmm9 + vpclmulqdq $0x00,%xmm3,%xmm14,%xmm4 + vpxor %xmm9,%xmm6,%xmm6 + vpunpckhqdq %xmm13,%xmm13,%xmm2 + vpclmulqdq $0x11,%xmm3,%xmm14,%xmm14 + vpxor %xmm13,%xmm2,%xmm2 + vpslldq $8,%xmm6,%xmm9 + vpclmulqdq $0x00,%xmm15,%xmm1,%xmm1 + vpxor %xmm9,%xmm5,%xmm8 + vpsrldq $8,%xmm6,%xmm6 + vpxor %xmm6,%xmm7,%xmm7 + + vpclmulqdq $0x00,%xmm0,%xmm13,%xmm5 + vmovdqu 48-32(%r9),%xmm3 + vpxor %xmm4,%xmm5,%xmm5 + vpunpckhqdq %xmm12,%xmm12,%xmm9 + vpclmulqdq $0x11,%xmm0,%xmm13,%xmm13 + vpxor %xmm12,%xmm9,%xmm9 + vpxor %xmm14,%xmm13,%xmm13 + vpalignr $8,%xmm8,%xmm8,%xmm14 + vpclmulqdq $0x10,%xmm15,%xmm2,%xmm2 + vmovdqu 80-32(%r9),%xmm15 + vpxor %xmm1,%xmm2,%xmm2 + + vpclmulqdq $0x00,%xmm3,%xmm12,%xmm4 + vmovdqu 64-32(%r9),%xmm0 + vpxor %xmm5,%xmm4,%xmm4 + vpunpckhqdq %xmm11,%xmm11,%xmm1 + vpclmulqdq $0x11,%xmm3,%xmm12,%xmm12 + vpxor %xmm11,%xmm1,%xmm1 + vpxor %xmm13,%xmm12,%xmm12 + vxorps 16(%rsp),%xmm7,%xmm7 + vpclmulqdq $0x00,%xmm15,%xmm9,%xmm9 + vpxor %xmm2,%xmm9,%xmm9 + + vpclmulqdq $0x10,16(%r11),%xmm8,%xmm8 + vxorps %xmm14,%xmm8,%xmm8 + + vpclmulqdq $0x00,%xmm0,%xmm11,%xmm5 + vmovdqu 96-32(%r9),%xmm3 + vpxor %xmm4,%xmm5,%xmm5 + vpunpckhqdq %xmm10,%xmm10,%xmm2 + vpclmulqdq $0x11,%xmm0,%xmm11,%xmm11 + vpxor %xmm10,%xmm2,%xmm2 + vpalignr $8,%xmm8,%xmm8,%xmm14 + vpxor %xmm12,%xmm11,%xmm11 + vpclmulqdq $0x10,%xmm15,%xmm1,%xmm1 + vmovdqu 128-32(%r9),%xmm15 + vpxor %xmm9,%xmm1,%xmm1 + + vxorps %xmm7,%xmm14,%xmm14 + vpclmulqdq $0x10,16(%r11),%xmm8,%xmm8 + vxorps %xmm14,%xmm8,%xmm8 + + vpclmulqdq $0x00,%xmm3,%xmm10,%xmm4 + vmovdqu 112-32(%r9),%xmm0 + vpxor %xmm5,%xmm4,%xmm4 + vpunpckhqdq %xmm8,%xmm8,%xmm9 + vpclmulqdq $0x11,%xmm3,%xmm10,%xmm10 + vpxor %xmm8,%xmm9,%xmm9 + vpxor %xmm11,%xmm10,%xmm10 + vpclmulqdq $0x00,%xmm15,%xmm2,%xmm2 + vpxor %xmm1,%xmm2,%xmm2 + + vpclmulqdq $0x00,%xmm0,%xmm8,%xmm5 + vpclmulqdq $0x11,%xmm0,%xmm8,%xmm7 + vpxor %xmm4,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm15,%xmm9,%xmm6 + vpxor %xmm10,%xmm7,%xmm7 + vpxor %xmm2,%xmm6,%xmm6 + + vpxor %xmm5,%xmm7,%xmm4 + vpxor %xmm4,%xmm6,%xmm6 + vpslldq $8,%xmm6,%xmm1 + vmovdqu 16(%r11),%xmm3 + vpsrldq $8,%xmm6,%xmm6 + vpxor %xmm1,%xmm5,%xmm8 + vpxor %xmm6,%xmm7,%xmm7 + + vpalignr $8,%xmm8,%xmm8,%xmm2 + vpclmulqdq $0x10,%xmm3,%xmm8,%xmm8 + vpxor %xmm2,%xmm8,%xmm8 + + vpalignr $8,%xmm8,%xmm8,%xmm2 + vpclmulqdq $0x10,%xmm3,%xmm8,%xmm8 + vpxor %xmm7,%xmm2,%xmm2 + vpxor %xmm2,%xmm8,%xmm8 + vpshufb (%r11),%xmm8,%xmm8 + vmovdqu %xmm8,-64(%r9) + + vzeroupper + movq -48(%rax),%r15 + + movq -40(%rax),%r14 + + movq -32(%rax),%r13 + + movq -24(%rax),%r12 + + movq -16(%rax),%rbp + + movq -8(%rax),%rbx + + leaq (%rax),%rsp + +L$gcm_enc_abort: + movq %r10,%rax + .byte 0xf3,0xc3 + + +.p2align 6 +L$bswap_mask: +.byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 +L$poly: +.byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc2 +L$one_msb: +.byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 +L$two_lsb: +.byte 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +L$one_lsb: +.byte 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +.byte 65,69,83,45,78,73,32,71,67,77,32,109,111,100,117,108,101,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.p2align 6 diff --git a/vere/ext/openssl/gen/macos-x86_64/crypto/modes/ghash-x86_64.s b/vere/ext/openssl/gen/macos-x86_64/crypto/modes/ghash-x86_64.s new file mode 100644 index 0000000..3623d18 --- /dev/null +++ b/vere/ext/openssl/gen/macos-x86_64/crypto/modes/ghash-x86_64.s @@ -0,0 +1,1835 @@ +.text + + +.globl _gcm_gmult_4bit + +.p2align 4 +_gcm_gmult_4bit: + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + subq $280,%rsp + +L$gmult_prologue: + + movzbq 15(%rdi),%r8 + leaq L$rem_4bit(%rip),%r11 + xorq %rax,%rax + xorq %rbx,%rbx + movb %r8b,%al + movb %r8b,%bl + shlb $4,%al + movq $14,%rcx + movq 8(%rsi,%rax,1),%r8 + movq (%rsi,%rax,1),%r9 + andb $0xf0,%bl + movq %r8,%rdx + jmp L$oop1 + +.p2align 4 +L$oop1: + shrq $4,%r8 + andq $0xf,%rdx + movq %r9,%r10 + movb (%rdi,%rcx,1),%al + shrq $4,%r9 + xorq 8(%rsi,%rbx,1),%r8 + shlq $60,%r10 + xorq (%rsi,%rbx,1),%r9 + movb %al,%bl + xorq (%r11,%rdx,8),%r9 + movq %r8,%rdx + shlb $4,%al + xorq %r10,%r8 + decq %rcx + js L$break1 + + shrq $4,%r8 + andq $0xf,%rdx + movq %r9,%r10 + shrq $4,%r9 + xorq 8(%rsi,%rax,1),%r8 + shlq $60,%r10 + xorq (%rsi,%rax,1),%r9 + andb $0xf0,%bl + xorq (%r11,%rdx,8),%r9 + movq %r8,%rdx + xorq %r10,%r8 + jmp L$oop1 + +.p2align 4 +L$break1: + shrq $4,%r8 + andq $0xf,%rdx + movq %r9,%r10 + shrq $4,%r9 + xorq 8(%rsi,%rax,1),%r8 + shlq $60,%r10 + xorq (%rsi,%rax,1),%r9 + andb $0xf0,%bl + xorq (%r11,%rdx,8),%r9 + movq %r8,%rdx + xorq %r10,%r8 + + shrq $4,%r8 + andq $0xf,%rdx + movq %r9,%r10 + shrq $4,%r9 + xorq 8(%rsi,%rbx,1),%r8 + shlq $60,%r10 + xorq (%rsi,%rbx,1),%r9 + xorq %r10,%r8 + xorq (%r11,%rdx,8),%r9 + + bswapq %r8 + bswapq %r9 + movq %r8,8(%rdi) + movq %r9,(%rdi) + + leaq 280+48(%rsp),%rsi + + movq -8(%rsi),%rbx + + leaq (%rsi),%rsp + +L$gmult_epilogue: + .byte 0xf3,0xc3 + + +.globl _gcm_ghash_4bit + +.p2align 4 +_gcm_ghash_4bit: + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + subq $280,%rsp + +L$ghash_prologue: + movq %rdx,%r14 + movq %rcx,%r15 + subq $-128,%rsi + leaq 16+128(%rsp),%rbp + xorl %edx,%edx + movq 0+0-128(%rsi),%r8 + movq 0+8-128(%rsi),%rax + movb %al,%dl + shrq $4,%rax + movq %r8,%r10 + shrq $4,%r8 + movq 16+0-128(%rsi),%r9 + shlb $4,%dl + movq 16+8-128(%rsi),%rbx + shlq $60,%r10 + movb %dl,0(%rsp) + orq %r10,%rax + movb %bl,%dl + shrq $4,%rbx + movq %r9,%r10 + shrq $4,%r9 + movq %r8,0(%rbp) + movq 32+0-128(%rsi),%r8 + shlb $4,%dl + movq %rax,0-128(%rbp) + movq 32+8-128(%rsi),%rax + shlq $60,%r10 + movb %dl,1(%rsp) + orq %r10,%rbx + movb %al,%dl + shrq $4,%rax + movq %r8,%r10 + shrq $4,%r8 + movq %r9,8(%rbp) + movq 48+0-128(%rsi),%r9 + shlb $4,%dl + movq %rbx,8-128(%rbp) + movq 48+8-128(%rsi),%rbx + shlq $60,%r10 + movb %dl,2(%rsp) + orq %r10,%rax + movb %bl,%dl + shrq $4,%rbx + movq %r9,%r10 + shrq $4,%r9 + movq %r8,16(%rbp) + movq 64+0-128(%rsi),%r8 + shlb $4,%dl + movq %rax,16-128(%rbp) + movq 64+8-128(%rsi),%rax + shlq $60,%r10 + movb %dl,3(%rsp) + orq %r10,%rbx + movb %al,%dl + shrq $4,%rax + movq %r8,%r10 + shrq $4,%r8 + movq %r9,24(%rbp) + movq 80+0-128(%rsi),%r9 + shlb $4,%dl + movq %rbx,24-128(%rbp) + movq 80+8-128(%rsi),%rbx + shlq $60,%r10 + movb %dl,4(%rsp) + orq %r10,%rax + movb %bl,%dl + shrq $4,%rbx + movq %r9,%r10 + shrq $4,%r9 + movq %r8,32(%rbp) + movq 96+0-128(%rsi),%r8 + shlb $4,%dl + movq %rax,32-128(%rbp) + movq 96+8-128(%rsi),%rax + shlq $60,%r10 + movb %dl,5(%rsp) + orq %r10,%rbx + movb %al,%dl + shrq $4,%rax + movq %r8,%r10 + shrq $4,%r8 + movq %r9,40(%rbp) + movq 112+0-128(%rsi),%r9 + shlb $4,%dl + movq %rbx,40-128(%rbp) + movq 112+8-128(%rsi),%rbx + shlq $60,%r10 + movb %dl,6(%rsp) + orq %r10,%rax + movb %bl,%dl + shrq $4,%rbx + movq %r9,%r10 + shrq $4,%r9 + movq %r8,48(%rbp) + movq 128+0-128(%rsi),%r8 + shlb $4,%dl + movq %rax,48-128(%rbp) + movq 128+8-128(%rsi),%rax + shlq $60,%r10 + movb %dl,7(%rsp) + orq %r10,%rbx + movb %al,%dl + shrq $4,%rax + movq %r8,%r10 + shrq $4,%r8 + movq %r9,56(%rbp) + movq 144+0-128(%rsi),%r9 + shlb $4,%dl + movq %rbx,56-128(%rbp) + movq 144+8-128(%rsi),%rbx + shlq $60,%r10 + movb %dl,8(%rsp) + orq %r10,%rax + movb %bl,%dl + shrq $4,%rbx + movq %r9,%r10 + shrq $4,%r9 + movq %r8,64(%rbp) + movq 160+0-128(%rsi),%r8 + shlb $4,%dl + movq %rax,64-128(%rbp) + movq 160+8-128(%rsi),%rax + shlq $60,%r10 + movb %dl,9(%rsp) + orq %r10,%rbx + movb %al,%dl + shrq $4,%rax + movq %r8,%r10 + shrq $4,%r8 + movq %r9,72(%rbp) + movq 176+0-128(%rsi),%r9 + shlb $4,%dl + movq %rbx,72-128(%rbp) + movq 176+8-128(%rsi),%rbx + shlq $60,%r10 + movb %dl,10(%rsp) + orq %r10,%rax + movb %bl,%dl + shrq $4,%rbx + movq %r9,%r10 + shrq $4,%r9 + movq %r8,80(%rbp) + movq 192+0-128(%rsi),%r8 + shlb $4,%dl + movq %rax,80-128(%rbp) + movq 192+8-128(%rsi),%rax + shlq $60,%r10 + movb %dl,11(%rsp) + orq %r10,%rbx + movb %al,%dl + shrq $4,%rax + movq %r8,%r10 + shrq $4,%r8 + movq %r9,88(%rbp) + movq 208+0-128(%rsi),%r9 + shlb $4,%dl + movq %rbx,88-128(%rbp) + movq 208+8-128(%rsi),%rbx + shlq $60,%r10 + movb %dl,12(%rsp) + orq %r10,%rax + movb %bl,%dl + shrq $4,%rbx + movq %r9,%r10 + shrq $4,%r9 + movq %r8,96(%rbp) + movq 224+0-128(%rsi),%r8 + shlb $4,%dl + movq %rax,96-128(%rbp) + movq 224+8-128(%rsi),%rax + shlq $60,%r10 + movb %dl,13(%rsp) + orq %r10,%rbx + movb %al,%dl + shrq $4,%rax + movq %r8,%r10 + shrq $4,%r8 + movq %r9,104(%rbp) + movq 240+0-128(%rsi),%r9 + shlb $4,%dl + movq %rbx,104-128(%rbp) + movq 240+8-128(%rsi),%rbx + shlq $60,%r10 + movb %dl,14(%rsp) + orq %r10,%rax + movb %bl,%dl + shrq $4,%rbx + movq %r9,%r10 + shrq $4,%r9 + movq %r8,112(%rbp) + shlb $4,%dl + movq %rax,112-128(%rbp) + shlq $60,%r10 + movb %dl,15(%rsp) + orq %r10,%rbx + movq %r9,120(%rbp) + movq %rbx,120-128(%rbp) + addq $-128,%rsi + movq 8(%rdi),%r8 + movq 0(%rdi),%r9 + addq %r14,%r15 + leaq L$rem_8bit(%rip),%r11 + jmp L$outer_loop +.p2align 4 +L$outer_loop: + xorq (%r14),%r9 + movq 8(%r14),%rdx + leaq 16(%r14),%r14 + xorq %r8,%rdx + movq %r9,(%rdi) + movq %rdx,8(%rdi) + shrq $32,%rdx + xorq %rax,%rax + roll $8,%edx + movb %dl,%al + movzbl %dl,%ebx + shlb $4,%al + shrl $4,%ebx + roll $8,%edx + movq 8(%rsi,%rax,1),%r8 + movq (%rsi,%rax,1),%r9 + movb %dl,%al + movzbl %dl,%ecx + shlb $4,%al + movzbq (%rsp,%rbx,1),%r12 + shrl $4,%ecx + xorq %r8,%r12 + movq %r9,%r10 + shrq $8,%r8 + movzbq %r12b,%r12 + shrq $8,%r9 + xorq -128(%rbp,%rbx,8),%r8 + shlq $56,%r10 + xorq (%rbp,%rbx,8),%r9 + roll $8,%edx + xorq 8(%rsi,%rax,1),%r8 + xorq (%rsi,%rax,1),%r9 + movb %dl,%al + xorq %r10,%r8 + movzwq (%r11,%r12,2),%r12 + movzbl %dl,%ebx + shlb $4,%al + movzbq (%rsp,%rcx,1),%r13 + shrl $4,%ebx + shlq $48,%r12 + xorq %r8,%r13 + movq %r9,%r10 + xorq %r12,%r9 + shrq $8,%r8 + movzbq %r13b,%r13 + shrq $8,%r9 + xorq -128(%rbp,%rcx,8),%r8 + shlq $56,%r10 + xorq (%rbp,%rcx,8),%r9 + roll $8,%edx + xorq 8(%rsi,%rax,1),%r8 + xorq (%rsi,%rax,1),%r9 + movb %dl,%al + xorq %r10,%r8 + movzwq (%r11,%r13,2),%r13 + movzbl %dl,%ecx + shlb $4,%al + movzbq (%rsp,%rbx,1),%r12 + shrl $4,%ecx + shlq $48,%r13 + xorq %r8,%r12 + movq %r9,%r10 + xorq %r13,%r9 + shrq $8,%r8 + movzbq %r12b,%r12 + movl 8(%rdi),%edx + shrq $8,%r9 + xorq -128(%rbp,%rbx,8),%r8 + shlq $56,%r10 + xorq (%rbp,%rbx,8),%r9 + roll $8,%edx + xorq 8(%rsi,%rax,1),%r8 + xorq (%rsi,%rax,1),%r9 + movb %dl,%al + xorq %r10,%r8 + movzwq (%r11,%r12,2),%r12 + movzbl %dl,%ebx + shlb $4,%al + movzbq (%rsp,%rcx,1),%r13 + shrl $4,%ebx + shlq $48,%r12 + xorq %r8,%r13 + movq %r9,%r10 + xorq %r12,%r9 + shrq $8,%r8 + movzbq %r13b,%r13 + shrq $8,%r9 + xorq -128(%rbp,%rcx,8),%r8 + shlq $56,%r10 + xorq (%rbp,%rcx,8),%r9 + roll $8,%edx + xorq 8(%rsi,%rax,1),%r8 + xorq (%rsi,%rax,1),%r9 + movb %dl,%al + xorq %r10,%r8 + movzwq (%r11,%r13,2),%r13 + movzbl %dl,%ecx + shlb $4,%al + movzbq (%rsp,%rbx,1),%r12 + shrl $4,%ecx + shlq $48,%r13 + xorq %r8,%r12 + movq %r9,%r10 + xorq %r13,%r9 + shrq $8,%r8 + movzbq %r12b,%r12 + shrq $8,%r9 + xorq -128(%rbp,%rbx,8),%r8 + shlq $56,%r10 + xorq (%rbp,%rbx,8),%r9 + roll $8,%edx + xorq 8(%rsi,%rax,1),%r8 + xorq (%rsi,%rax,1),%r9 + movb %dl,%al + xorq %r10,%r8 + movzwq (%r11,%r12,2),%r12 + movzbl %dl,%ebx + shlb $4,%al + movzbq (%rsp,%rcx,1),%r13 + shrl $4,%ebx + shlq $48,%r12 + xorq %r8,%r13 + movq %r9,%r10 + xorq %r12,%r9 + shrq $8,%r8 + movzbq %r13b,%r13 + shrq $8,%r9 + xorq -128(%rbp,%rcx,8),%r8 + shlq $56,%r10 + xorq (%rbp,%rcx,8),%r9 + roll $8,%edx + xorq 8(%rsi,%rax,1),%r8 + xorq (%rsi,%rax,1),%r9 + movb %dl,%al + xorq %r10,%r8 + movzwq (%r11,%r13,2),%r13 + movzbl %dl,%ecx + shlb $4,%al + movzbq (%rsp,%rbx,1),%r12 + shrl $4,%ecx + shlq $48,%r13 + xorq %r8,%r12 + movq %r9,%r10 + xorq %r13,%r9 + shrq $8,%r8 + movzbq %r12b,%r12 + movl 4(%rdi),%edx + shrq $8,%r9 + xorq -128(%rbp,%rbx,8),%r8 + shlq $56,%r10 + xorq (%rbp,%rbx,8),%r9 + roll $8,%edx + xorq 8(%rsi,%rax,1),%r8 + xorq (%rsi,%rax,1),%r9 + movb %dl,%al + xorq %r10,%r8 + movzwq (%r11,%r12,2),%r12 + movzbl %dl,%ebx + shlb $4,%al + movzbq (%rsp,%rcx,1),%r13 + shrl $4,%ebx + shlq $48,%r12 + xorq %r8,%r13 + movq %r9,%r10 + xorq %r12,%r9 + shrq $8,%r8 + movzbq %r13b,%r13 + shrq $8,%r9 + xorq -128(%rbp,%rcx,8),%r8 + shlq $56,%r10 + xorq (%rbp,%rcx,8),%r9 + roll $8,%edx + xorq 8(%rsi,%rax,1),%r8 + xorq (%rsi,%rax,1),%r9 + movb %dl,%al + xorq %r10,%r8 + movzwq (%r11,%r13,2),%r13 + movzbl %dl,%ecx + shlb $4,%al + movzbq (%rsp,%rbx,1),%r12 + shrl $4,%ecx + shlq $48,%r13 + xorq %r8,%r12 + movq %r9,%r10 + xorq %r13,%r9 + shrq $8,%r8 + movzbq %r12b,%r12 + shrq $8,%r9 + xorq -128(%rbp,%rbx,8),%r8 + shlq $56,%r10 + xorq (%rbp,%rbx,8),%r9 + roll $8,%edx + xorq 8(%rsi,%rax,1),%r8 + xorq (%rsi,%rax,1),%r9 + movb %dl,%al + xorq %r10,%r8 + movzwq (%r11,%r12,2),%r12 + movzbl %dl,%ebx + shlb $4,%al + movzbq (%rsp,%rcx,1),%r13 + shrl $4,%ebx + shlq $48,%r12 + xorq %r8,%r13 + movq %r9,%r10 + xorq %r12,%r9 + shrq $8,%r8 + movzbq %r13b,%r13 + shrq $8,%r9 + xorq -128(%rbp,%rcx,8),%r8 + shlq $56,%r10 + xorq (%rbp,%rcx,8),%r9 + roll $8,%edx + xorq 8(%rsi,%rax,1),%r8 + xorq (%rsi,%rax,1),%r9 + movb %dl,%al + xorq %r10,%r8 + movzwq (%r11,%r13,2),%r13 + movzbl %dl,%ecx + shlb $4,%al + movzbq (%rsp,%rbx,1),%r12 + shrl $4,%ecx + shlq $48,%r13 + xorq %r8,%r12 + movq %r9,%r10 + xorq %r13,%r9 + shrq $8,%r8 + movzbq %r12b,%r12 + movl 0(%rdi),%edx + shrq $8,%r9 + xorq -128(%rbp,%rbx,8),%r8 + shlq $56,%r10 + xorq (%rbp,%rbx,8),%r9 + roll $8,%edx + xorq 8(%rsi,%rax,1),%r8 + xorq (%rsi,%rax,1),%r9 + movb %dl,%al + xorq %r10,%r8 + movzwq (%r11,%r12,2),%r12 + movzbl %dl,%ebx + shlb $4,%al + movzbq (%rsp,%rcx,1),%r13 + shrl $4,%ebx + shlq $48,%r12 + xorq %r8,%r13 + movq %r9,%r10 + xorq %r12,%r9 + shrq $8,%r8 + movzbq %r13b,%r13 + shrq $8,%r9 + xorq -128(%rbp,%rcx,8),%r8 + shlq $56,%r10 + xorq (%rbp,%rcx,8),%r9 + roll $8,%edx + xorq 8(%rsi,%rax,1),%r8 + xorq (%rsi,%rax,1),%r9 + movb %dl,%al + xorq %r10,%r8 + movzwq (%r11,%r13,2),%r13 + movzbl %dl,%ecx + shlb $4,%al + movzbq (%rsp,%rbx,1),%r12 + shrl $4,%ecx + shlq $48,%r13 + xorq %r8,%r12 + movq %r9,%r10 + xorq %r13,%r9 + shrq $8,%r8 + movzbq %r12b,%r12 + shrq $8,%r9 + xorq -128(%rbp,%rbx,8),%r8 + shlq $56,%r10 + xorq (%rbp,%rbx,8),%r9 + roll $8,%edx + xorq 8(%rsi,%rax,1),%r8 + xorq (%rsi,%rax,1),%r9 + movb %dl,%al + xorq %r10,%r8 + movzwq (%r11,%r12,2),%r12 + movzbl %dl,%ebx + shlb $4,%al + movzbq (%rsp,%rcx,1),%r13 + shrl $4,%ebx + shlq $48,%r12 + xorq %r8,%r13 + movq %r9,%r10 + xorq %r12,%r9 + shrq $8,%r8 + movzbq %r13b,%r13 + shrq $8,%r9 + xorq -128(%rbp,%rcx,8),%r8 + shlq $56,%r10 + xorq (%rbp,%rcx,8),%r9 + roll $8,%edx + xorq 8(%rsi,%rax,1),%r8 + xorq (%rsi,%rax,1),%r9 + movb %dl,%al + xorq %r10,%r8 + movzwq (%r11,%r13,2),%r13 + movzbl %dl,%ecx + shlb $4,%al + movzbq (%rsp,%rbx,1),%r12 + andl $240,%ecx + shlq $48,%r13 + xorq %r8,%r12 + movq %r9,%r10 + xorq %r13,%r9 + shrq $8,%r8 + movzbq %r12b,%r12 + movl -4(%rdi),%edx + shrq $8,%r9 + xorq -128(%rbp,%rbx,8),%r8 + shlq $56,%r10 + xorq (%rbp,%rbx,8),%r9 + movzwq (%r11,%r12,2),%r12 + xorq 8(%rsi,%rax,1),%r8 + xorq (%rsi,%rax,1),%r9 + shlq $48,%r12 + xorq %r10,%r8 + xorq %r12,%r9 + movzbq %r8b,%r13 + shrq $4,%r8 + movq %r9,%r10 + shlb $4,%r13b + shrq $4,%r9 + xorq 8(%rsi,%rcx,1),%r8 + movzwq (%r11,%r13,2),%r13 + shlq $60,%r10 + xorq (%rsi,%rcx,1),%r9 + xorq %r10,%r8 + shlq $48,%r13 + bswapq %r8 + xorq %r13,%r9 + bswapq %r9 + cmpq %r15,%r14 + jb L$outer_loop + movq %r8,8(%rdi) + movq %r9,(%rdi) + + leaq 280+48(%rsp),%rsi + + movq -48(%rsi),%r15 + + movq -40(%rsi),%r14 + + movq -32(%rsi),%r13 + + movq -24(%rsi),%r12 + + movq -16(%rsi),%rbp + + movq -8(%rsi),%rbx + + leaq 0(%rsi),%rsp + +L$ghash_epilogue: + .byte 0xf3,0xc3 + + +.globl _gcm_init_clmul + +.p2align 4 +_gcm_init_clmul: + +L$_init_clmul: + movdqu (%rsi),%xmm2 + pshufd $78,%xmm2,%xmm2 + + + pshufd $255,%xmm2,%xmm4 + movdqa %xmm2,%xmm3 + psllq $1,%xmm2 + pxor %xmm5,%xmm5 + psrlq $63,%xmm3 + pcmpgtd %xmm4,%xmm5 + pslldq $8,%xmm3 + por %xmm3,%xmm2 + + + pand L$0x1c2_polynomial(%rip),%xmm5 + pxor %xmm5,%xmm2 + + + pshufd $78,%xmm2,%xmm6 + movdqa %xmm2,%xmm0 + pxor %xmm2,%xmm6 + movdqa %xmm0,%xmm1 + pshufd $78,%xmm0,%xmm3 + pxor %xmm0,%xmm3 +.byte 102,15,58,68,194,0 +.byte 102,15,58,68,202,17 +.byte 102,15,58,68,222,0 + pxor %xmm0,%xmm3 + pxor %xmm1,%xmm3 + + movdqa %xmm3,%xmm4 + psrldq $8,%xmm3 + pslldq $8,%xmm4 + pxor %xmm3,%xmm1 + pxor %xmm4,%xmm0 + + movdqa %xmm0,%xmm4 + movdqa %xmm0,%xmm3 + psllq $5,%xmm0 + pxor %xmm0,%xmm3 + psllq $1,%xmm0 + pxor %xmm3,%xmm0 + psllq $57,%xmm0 + movdqa %xmm0,%xmm3 + pslldq $8,%xmm0 + psrldq $8,%xmm3 + pxor %xmm4,%xmm0 + pxor %xmm3,%xmm1 + + + movdqa %xmm0,%xmm4 + psrlq $1,%xmm0 + pxor %xmm4,%xmm1 + pxor %xmm0,%xmm4 + psrlq $5,%xmm0 + pxor %xmm4,%xmm0 + psrlq $1,%xmm0 + pxor %xmm1,%xmm0 + pshufd $78,%xmm2,%xmm3 + pshufd $78,%xmm0,%xmm4 + pxor %xmm2,%xmm3 + movdqu %xmm2,0(%rdi) + pxor %xmm0,%xmm4 + movdqu %xmm0,16(%rdi) +.byte 102,15,58,15,227,8 + movdqu %xmm4,32(%rdi) + movdqa %xmm0,%xmm1 + pshufd $78,%xmm0,%xmm3 + pxor %xmm0,%xmm3 +.byte 102,15,58,68,194,0 +.byte 102,15,58,68,202,17 +.byte 102,15,58,68,222,0 + pxor %xmm0,%xmm3 + pxor %xmm1,%xmm3 + + movdqa %xmm3,%xmm4 + psrldq $8,%xmm3 + pslldq $8,%xmm4 + pxor %xmm3,%xmm1 + pxor %xmm4,%xmm0 + + movdqa %xmm0,%xmm4 + movdqa %xmm0,%xmm3 + psllq $5,%xmm0 + pxor %xmm0,%xmm3 + psllq $1,%xmm0 + pxor %xmm3,%xmm0 + psllq $57,%xmm0 + movdqa %xmm0,%xmm3 + pslldq $8,%xmm0 + psrldq $8,%xmm3 + pxor %xmm4,%xmm0 + pxor %xmm3,%xmm1 + + + movdqa %xmm0,%xmm4 + psrlq $1,%xmm0 + pxor %xmm4,%xmm1 + pxor %xmm0,%xmm4 + psrlq $5,%xmm0 + pxor %xmm4,%xmm0 + psrlq $1,%xmm0 + pxor %xmm1,%xmm0 + movdqa %xmm0,%xmm5 + movdqa %xmm0,%xmm1 + pshufd $78,%xmm0,%xmm3 + pxor %xmm0,%xmm3 +.byte 102,15,58,68,194,0 +.byte 102,15,58,68,202,17 +.byte 102,15,58,68,222,0 + pxor %xmm0,%xmm3 + pxor %xmm1,%xmm3 + + movdqa %xmm3,%xmm4 + psrldq $8,%xmm3 + pslldq $8,%xmm4 + pxor %xmm3,%xmm1 + pxor %xmm4,%xmm0 + + movdqa %xmm0,%xmm4 + movdqa %xmm0,%xmm3 + psllq $5,%xmm0 + pxor %xmm0,%xmm3 + psllq $1,%xmm0 + pxor %xmm3,%xmm0 + psllq $57,%xmm0 + movdqa %xmm0,%xmm3 + pslldq $8,%xmm0 + psrldq $8,%xmm3 + pxor %xmm4,%xmm0 + pxor %xmm3,%xmm1 + + + movdqa %xmm0,%xmm4 + psrlq $1,%xmm0 + pxor %xmm4,%xmm1 + pxor %xmm0,%xmm4 + psrlq $5,%xmm0 + pxor %xmm4,%xmm0 + psrlq $1,%xmm0 + pxor %xmm1,%xmm0 + pshufd $78,%xmm5,%xmm3 + pshufd $78,%xmm0,%xmm4 + pxor %xmm5,%xmm3 + movdqu %xmm5,48(%rdi) + pxor %xmm0,%xmm4 + movdqu %xmm0,64(%rdi) +.byte 102,15,58,15,227,8 + movdqu %xmm4,80(%rdi) + .byte 0xf3,0xc3 + + +.globl _gcm_gmult_clmul + +.p2align 4 +_gcm_gmult_clmul: + +L$_gmult_clmul: + movdqu (%rdi),%xmm0 + movdqa L$bswap_mask(%rip),%xmm5 + movdqu (%rsi),%xmm2 + movdqu 32(%rsi),%xmm4 +.byte 102,15,56,0,197 + movdqa %xmm0,%xmm1 + pshufd $78,%xmm0,%xmm3 + pxor %xmm0,%xmm3 +.byte 102,15,58,68,194,0 +.byte 102,15,58,68,202,17 +.byte 102,15,58,68,220,0 + pxor %xmm0,%xmm3 + pxor %xmm1,%xmm3 + + movdqa %xmm3,%xmm4 + psrldq $8,%xmm3 + pslldq $8,%xmm4 + pxor %xmm3,%xmm1 + pxor %xmm4,%xmm0 + + movdqa %xmm0,%xmm4 + movdqa %xmm0,%xmm3 + psllq $5,%xmm0 + pxor %xmm0,%xmm3 + psllq $1,%xmm0 + pxor %xmm3,%xmm0 + psllq $57,%xmm0 + movdqa %xmm0,%xmm3 + pslldq $8,%xmm0 + psrldq $8,%xmm3 + pxor %xmm4,%xmm0 + pxor %xmm3,%xmm1 + + + movdqa %xmm0,%xmm4 + psrlq $1,%xmm0 + pxor %xmm4,%xmm1 + pxor %xmm0,%xmm4 + psrlq $5,%xmm0 + pxor %xmm4,%xmm0 + psrlq $1,%xmm0 + pxor %xmm1,%xmm0 +.byte 102,15,56,0,197 + movdqu %xmm0,(%rdi) + .byte 0xf3,0xc3 + + +.globl _gcm_ghash_clmul + +.p2align 5 +_gcm_ghash_clmul: + +L$_ghash_clmul: + movdqa L$bswap_mask(%rip),%xmm10 + + movdqu (%rdi),%xmm0 + movdqu (%rsi),%xmm2 + movdqu 32(%rsi),%xmm7 +.byte 102,65,15,56,0,194 + + subq $0x10,%rcx + jz L$odd_tail + + movdqu 16(%rsi),%xmm6 + movl _OPENSSL_ia32cap_P+4(%rip),%eax + cmpq $0x30,%rcx + jb L$skip4x + + andl $71303168,%eax + cmpl $4194304,%eax + je L$skip4x + + subq $0x30,%rcx + movq $0xA040608020C0E000,%rax + movdqu 48(%rsi),%xmm14 + movdqu 64(%rsi),%xmm15 + + + + + movdqu 48(%rdx),%xmm3 + movdqu 32(%rdx),%xmm11 +.byte 102,65,15,56,0,218 +.byte 102,69,15,56,0,218 + movdqa %xmm3,%xmm5 + pshufd $78,%xmm3,%xmm4 + pxor %xmm3,%xmm4 +.byte 102,15,58,68,218,0 +.byte 102,15,58,68,234,17 +.byte 102,15,58,68,231,0 + + movdqa %xmm11,%xmm13 + pshufd $78,%xmm11,%xmm12 + pxor %xmm11,%xmm12 +.byte 102,68,15,58,68,222,0 +.byte 102,68,15,58,68,238,17 +.byte 102,68,15,58,68,231,16 + xorps %xmm11,%xmm3 + xorps %xmm13,%xmm5 + movups 80(%rsi),%xmm7 + xorps %xmm12,%xmm4 + + movdqu 16(%rdx),%xmm11 + movdqu 0(%rdx),%xmm8 +.byte 102,69,15,56,0,218 +.byte 102,69,15,56,0,194 + movdqa %xmm11,%xmm13 + pshufd $78,%xmm11,%xmm12 + pxor %xmm8,%xmm0 + pxor %xmm11,%xmm12 +.byte 102,69,15,58,68,222,0 + movdqa %xmm0,%xmm1 + pshufd $78,%xmm0,%xmm8 + pxor %xmm0,%xmm8 +.byte 102,69,15,58,68,238,17 +.byte 102,68,15,58,68,231,0 + xorps %xmm11,%xmm3 + xorps %xmm13,%xmm5 + + leaq 64(%rdx),%rdx + subq $0x40,%rcx + jc L$tail4x + + jmp L$mod4_loop +.p2align 5 +L$mod4_loop: +.byte 102,65,15,58,68,199,0 + xorps %xmm12,%xmm4 + movdqu 48(%rdx),%xmm11 +.byte 102,69,15,56,0,218 +.byte 102,65,15,58,68,207,17 + xorps %xmm3,%xmm0 + movdqu 32(%rdx),%xmm3 + movdqa %xmm11,%xmm13 +.byte 102,68,15,58,68,199,16 + pshufd $78,%xmm11,%xmm12 + xorps %xmm5,%xmm1 + pxor %xmm11,%xmm12 +.byte 102,65,15,56,0,218 + movups 32(%rsi),%xmm7 + xorps %xmm4,%xmm8 +.byte 102,68,15,58,68,218,0 + pshufd $78,%xmm3,%xmm4 + + pxor %xmm0,%xmm8 + movdqa %xmm3,%xmm5 + pxor %xmm1,%xmm8 + pxor %xmm3,%xmm4 + movdqa %xmm8,%xmm9 +.byte 102,68,15,58,68,234,17 + pslldq $8,%xmm8 + psrldq $8,%xmm9 + pxor %xmm8,%xmm0 + movdqa L$7_mask(%rip),%xmm8 + pxor %xmm9,%xmm1 +.byte 102,76,15,110,200 + + pand %xmm0,%xmm8 +.byte 102,69,15,56,0,200 + pxor %xmm0,%xmm9 +.byte 102,68,15,58,68,231,0 + psllq $57,%xmm9 + movdqa %xmm9,%xmm8 + pslldq $8,%xmm9 +.byte 102,15,58,68,222,0 + psrldq $8,%xmm8 + pxor %xmm9,%xmm0 + pxor %xmm8,%xmm1 + movdqu 0(%rdx),%xmm8 + + movdqa %xmm0,%xmm9 + psrlq $1,%xmm0 +.byte 102,15,58,68,238,17 + xorps %xmm11,%xmm3 + movdqu 16(%rdx),%xmm11 +.byte 102,69,15,56,0,218 +.byte 102,15,58,68,231,16 + xorps %xmm13,%xmm5 + movups 80(%rsi),%xmm7 +.byte 102,69,15,56,0,194 + pxor %xmm9,%xmm1 + pxor %xmm0,%xmm9 + psrlq $5,%xmm0 + + movdqa %xmm11,%xmm13 + pxor %xmm12,%xmm4 + pshufd $78,%xmm11,%xmm12 + pxor %xmm9,%xmm0 + pxor %xmm8,%xmm1 + pxor %xmm11,%xmm12 +.byte 102,69,15,58,68,222,0 + psrlq $1,%xmm0 + pxor %xmm1,%xmm0 + movdqa %xmm0,%xmm1 +.byte 102,69,15,58,68,238,17 + xorps %xmm11,%xmm3 + pshufd $78,%xmm0,%xmm8 + pxor %xmm0,%xmm8 + +.byte 102,68,15,58,68,231,0 + xorps %xmm13,%xmm5 + + leaq 64(%rdx),%rdx + subq $0x40,%rcx + jnc L$mod4_loop + +L$tail4x: +.byte 102,65,15,58,68,199,0 +.byte 102,65,15,58,68,207,17 +.byte 102,68,15,58,68,199,16 + xorps %xmm12,%xmm4 + xorps %xmm3,%xmm0 + xorps %xmm5,%xmm1 + pxor %xmm0,%xmm1 + pxor %xmm4,%xmm8 + + pxor %xmm1,%xmm8 + pxor %xmm0,%xmm1 + + movdqa %xmm8,%xmm9 + psrldq $8,%xmm8 + pslldq $8,%xmm9 + pxor %xmm8,%xmm1 + pxor %xmm9,%xmm0 + + movdqa %xmm0,%xmm4 + movdqa %xmm0,%xmm3 + psllq $5,%xmm0 + pxor %xmm0,%xmm3 + psllq $1,%xmm0 + pxor %xmm3,%xmm0 + psllq $57,%xmm0 + movdqa %xmm0,%xmm3 + pslldq $8,%xmm0 + psrldq $8,%xmm3 + pxor %xmm4,%xmm0 + pxor %xmm3,%xmm1 + + + movdqa %xmm0,%xmm4 + psrlq $1,%xmm0 + pxor %xmm4,%xmm1 + pxor %xmm0,%xmm4 + psrlq $5,%xmm0 + pxor %xmm4,%xmm0 + psrlq $1,%xmm0 + pxor %xmm1,%xmm0 + addq $0x40,%rcx + jz L$done + movdqu 32(%rsi),%xmm7 + subq $0x10,%rcx + jz L$odd_tail +L$skip4x: + + + + + + movdqu (%rdx),%xmm8 + movdqu 16(%rdx),%xmm3 +.byte 102,69,15,56,0,194 +.byte 102,65,15,56,0,218 + pxor %xmm8,%xmm0 + + movdqa %xmm3,%xmm5 + pshufd $78,%xmm3,%xmm4 + pxor %xmm3,%xmm4 +.byte 102,15,58,68,218,0 +.byte 102,15,58,68,234,17 +.byte 102,15,58,68,231,0 + + leaq 32(%rdx),%rdx + nop + subq $0x20,%rcx + jbe L$even_tail + nop + jmp L$mod_loop + +.p2align 5 +L$mod_loop: + movdqa %xmm0,%xmm1 + movdqa %xmm4,%xmm8 + pshufd $78,%xmm0,%xmm4 + pxor %xmm0,%xmm4 + +.byte 102,15,58,68,198,0 +.byte 102,15,58,68,206,17 +.byte 102,15,58,68,231,16 + + pxor %xmm3,%xmm0 + pxor %xmm5,%xmm1 + movdqu (%rdx),%xmm9 + pxor %xmm0,%xmm8 +.byte 102,69,15,56,0,202 + movdqu 16(%rdx),%xmm3 + + pxor %xmm1,%xmm8 + pxor %xmm9,%xmm1 + pxor %xmm8,%xmm4 +.byte 102,65,15,56,0,218 + movdqa %xmm4,%xmm8 + psrldq $8,%xmm8 + pslldq $8,%xmm4 + pxor %xmm8,%xmm1 + pxor %xmm4,%xmm0 + + movdqa %xmm3,%xmm5 + + movdqa %xmm0,%xmm9 + movdqa %xmm0,%xmm8 + psllq $5,%xmm0 + pxor %xmm0,%xmm8 +.byte 102,15,58,68,218,0 + psllq $1,%xmm0 + pxor %xmm8,%xmm0 + psllq $57,%xmm0 + movdqa %xmm0,%xmm8 + pslldq $8,%xmm0 + psrldq $8,%xmm8 + pxor %xmm9,%xmm0 + pshufd $78,%xmm5,%xmm4 + pxor %xmm8,%xmm1 + pxor %xmm5,%xmm4 + + movdqa %xmm0,%xmm9 + psrlq $1,%xmm0 +.byte 102,15,58,68,234,17 + pxor %xmm9,%xmm1 + pxor %xmm0,%xmm9 + psrlq $5,%xmm0 + pxor %xmm9,%xmm0 + leaq 32(%rdx),%rdx + psrlq $1,%xmm0 +.byte 102,15,58,68,231,0 + pxor %xmm1,%xmm0 + + subq $0x20,%rcx + ja L$mod_loop + +L$even_tail: + movdqa %xmm0,%xmm1 + movdqa %xmm4,%xmm8 + pshufd $78,%xmm0,%xmm4 + pxor %xmm0,%xmm4 + +.byte 102,15,58,68,198,0 +.byte 102,15,58,68,206,17 +.byte 102,15,58,68,231,16 + + pxor %xmm3,%xmm0 + pxor %xmm5,%xmm1 + pxor %xmm0,%xmm8 + pxor %xmm1,%xmm8 + pxor %xmm8,%xmm4 + movdqa %xmm4,%xmm8 + psrldq $8,%xmm8 + pslldq $8,%xmm4 + pxor %xmm8,%xmm1 + pxor %xmm4,%xmm0 + + movdqa %xmm0,%xmm4 + movdqa %xmm0,%xmm3 + psllq $5,%xmm0 + pxor %xmm0,%xmm3 + psllq $1,%xmm0 + pxor %xmm3,%xmm0 + psllq $57,%xmm0 + movdqa %xmm0,%xmm3 + pslldq $8,%xmm0 + psrldq $8,%xmm3 + pxor %xmm4,%xmm0 + pxor %xmm3,%xmm1 + + + movdqa %xmm0,%xmm4 + psrlq $1,%xmm0 + pxor %xmm4,%xmm1 + pxor %xmm0,%xmm4 + psrlq $5,%xmm0 + pxor %xmm4,%xmm0 + psrlq $1,%xmm0 + pxor %xmm1,%xmm0 + testq %rcx,%rcx + jnz L$done + +L$odd_tail: + movdqu (%rdx),%xmm8 +.byte 102,69,15,56,0,194 + pxor %xmm8,%xmm0 + movdqa %xmm0,%xmm1 + pshufd $78,%xmm0,%xmm3 + pxor %xmm0,%xmm3 +.byte 102,15,58,68,194,0 +.byte 102,15,58,68,202,17 +.byte 102,15,58,68,223,0 + pxor %xmm0,%xmm3 + pxor %xmm1,%xmm3 + + movdqa %xmm3,%xmm4 + psrldq $8,%xmm3 + pslldq $8,%xmm4 + pxor %xmm3,%xmm1 + pxor %xmm4,%xmm0 + + movdqa %xmm0,%xmm4 + movdqa %xmm0,%xmm3 + psllq $5,%xmm0 + pxor %xmm0,%xmm3 + psllq $1,%xmm0 + pxor %xmm3,%xmm0 + psllq $57,%xmm0 + movdqa %xmm0,%xmm3 + pslldq $8,%xmm0 + psrldq $8,%xmm3 + pxor %xmm4,%xmm0 + pxor %xmm3,%xmm1 + + + movdqa %xmm0,%xmm4 + psrlq $1,%xmm0 + pxor %xmm4,%xmm1 + pxor %xmm0,%xmm4 + psrlq $5,%xmm0 + pxor %xmm4,%xmm0 + psrlq $1,%xmm0 + pxor %xmm1,%xmm0 +L$done: +.byte 102,65,15,56,0,194 + movdqu %xmm0,(%rdi) + .byte 0xf3,0xc3 + + +.globl _gcm_init_avx + +.p2align 5 +_gcm_init_avx: + + vzeroupper + + vmovdqu (%rsi),%xmm2 + vpshufd $78,%xmm2,%xmm2 + + + vpshufd $255,%xmm2,%xmm4 + vpsrlq $63,%xmm2,%xmm3 + vpsllq $1,%xmm2,%xmm2 + vpxor %xmm5,%xmm5,%xmm5 + vpcmpgtd %xmm4,%xmm5,%xmm5 + vpslldq $8,%xmm3,%xmm3 + vpor %xmm3,%xmm2,%xmm2 + + + vpand L$0x1c2_polynomial(%rip),%xmm5,%xmm5 + vpxor %xmm5,%xmm2,%xmm2 + + vpunpckhqdq %xmm2,%xmm2,%xmm6 + vmovdqa %xmm2,%xmm0 + vpxor %xmm2,%xmm6,%xmm6 + movq $4,%r10 + jmp L$init_start_avx +.p2align 5 +L$init_loop_avx: + vpalignr $8,%xmm3,%xmm4,%xmm5 + vmovdqu %xmm5,-16(%rdi) + vpunpckhqdq %xmm0,%xmm0,%xmm3 + vpxor %xmm0,%xmm3,%xmm3 + vpclmulqdq $0x11,%xmm2,%xmm0,%xmm1 + vpclmulqdq $0x00,%xmm2,%xmm0,%xmm0 + vpclmulqdq $0x00,%xmm6,%xmm3,%xmm3 + vpxor %xmm0,%xmm1,%xmm4 + vpxor %xmm4,%xmm3,%xmm3 + + vpslldq $8,%xmm3,%xmm4 + vpsrldq $8,%xmm3,%xmm3 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm3,%xmm1,%xmm1 + vpsllq $57,%xmm0,%xmm3 + vpsllq $62,%xmm0,%xmm4 + vpxor %xmm3,%xmm4,%xmm4 + vpsllq $63,%xmm0,%xmm3 + vpxor %xmm3,%xmm4,%xmm4 + vpslldq $8,%xmm4,%xmm3 + vpsrldq $8,%xmm4,%xmm4 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm4,%xmm1,%xmm1 + + vpsrlq $1,%xmm0,%xmm4 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpsrlq $5,%xmm4,%xmm4 + vpxor %xmm4,%xmm0,%xmm0 + vpsrlq $1,%xmm0,%xmm0 + vpxor %xmm1,%xmm0,%xmm0 +L$init_start_avx: + vmovdqa %xmm0,%xmm5 + vpunpckhqdq %xmm0,%xmm0,%xmm3 + vpxor %xmm0,%xmm3,%xmm3 + vpclmulqdq $0x11,%xmm2,%xmm0,%xmm1 + vpclmulqdq $0x00,%xmm2,%xmm0,%xmm0 + vpclmulqdq $0x00,%xmm6,%xmm3,%xmm3 + vpxor %xmm0,%xmm1,%xmm4 + vpxor %xmm4,%xmm3,%xmm3 + + vpslldq $8,%xmm3,%xmm4 + vpsrldq $8,%xmm3,%xmm3 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm3,%xmm1,%xmm1 + vpsllq $57,%xmm0,%xmm3 + vpsllq $62,%xmm0,%xmm4 + vpxor %xmm3,%xmm4,%xmm4 + vpsllq $63,%xmm0,%xmm3 + vpxor %xmm3,%xmm4,%xmm4 + vpslldq $8,%xmm4,%xmm3 + vpsrldq $8,%xmm4,%xmm4 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm4,%xmm1,%xmm1 + + vpsrlq $1,%xmm0,%xmm4 + vpxor %xmm0,%xmm1,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpsrlq $5,%xmm4,%xmm4 + vpxor %xmm4,%xmm0,%xmm0 + vpsrlq $1,%xmm0,%xmm0 + vpxor %xmm1,%xmm0,%xmm0 + vpshufd $78,%xmm5,%xmm3 + vpshufd $78,%xmm0,%xmm4 + vpxor %xmm5,%xmm3,%xmm3 + vmovdqu %xmm5,0(%rdi) + vpxor %xmm0,%xmm4,%xmm4 + vmovdqu %xmm0,16(%rdi) + leaq 48(%rdi),%rdi + subq $1,%r10 + jnz L$init_loop_avx + + vpalignr $8,%xmm4,%xmm3,%xmm5 + vmovdqu %xmm5,-16(%rdi) + + vzeroupper + .byte 0xf3,0xc3 + + +.globl _gcm_gmult_avx + +.p2align 5 +_gcm_gmult_avx: + + jmp L$_gmult_clmul + + +.globl _gcm_ghash_avx + +.p2align 5 +_gcm_ghash_avx: + + vzeroupper + + vmovdqu (%rdi),%xmm10 + leaq L$0x1c2_polynomial(%rip),%r10 + leaq 64(%rsi),%rsi + vmovdqu L$bswap_mask(%rip),%xmm13 + vpshufb %xmm13,%xmm10,%xmm10 + cmpq $0x80,%rcx + jb L$short_avx + subq $0x80,%rcx + + vmovdqu 112(%rdx),%xmm14 + vmovdqu 0-64(%rsi),%xmm6 + vpshufb %xmm13,%xmm14,%xmm14 + vmovdqu 32-64(%rsi),%xmm7 + + vpunpckhqdq %xmm14,%xmm14,%xmm9 + vmovdqu 96(%rdx),%xmm15 + vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0 + vpxor %xmm14,%xmm9,%xmm9 + vpshufb %xmm13,%xmm15,%xmm15 + vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1 + vmovdqu 16-64(%rsi),%xmm6 + vpunpckhqdq %xmm15,%xmm15,%xmm8 + vmovdqu 80(%rdx),%xmm14 + vpclmulqdq $0x00,%xmm7,%xmm9,%xmm2 + vpxor %xmm15,%xmm8,%xmm8 + + vpshufb %xmm13,%xmm14,%xmm14 + vpclmulqdq $0x00,%xmm6,%xmm15,%xmm3 + vpunpckhqdq %xmm14,%xmm14,%xmm9 + vpclmulqdq $0x11,%xmm6,%xmm15,%xmm4 + vmovdqu 48-64(%rsi),%xmm6 + vpxor %xmm14,%xmm9,%xmm9 + vmovdqu 64(%rdx),%xmm15 + vpclmulqdq $0x10,%xmm7,%xmm8,%xmm5 + vmovdqu 80-64(%rsi),%xmm7 + + vpshufb %xmm13,%xmm15,%xmm15 + vpxor %xmm0,%xmm3,%xmm3 + vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0 + vpxor %xmm1,%xmm4,%xmm4 + vpunpckhqdq %xmm15,%xmm15,%xmm8 + vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1 + vmovdqu 64-64(%rsi),%xmm6 + vpxor %xmm2,%xmm5,%xmm5 + vpclmulqdq $0x00,%xmm7,%xmm9,%xmm2 + vpxor %xmm15,%xmm8,%xmm8 + + vmovdqu 48(%rdx),%xmm14 + vpxor %xmm3,%xmm0,%xmm0 + vpclmulqdq $0x00,%xmm6,%xmm15,%xmm3 + vpxor %xmm4,%xmm1,%xmm1 + vpshufb %xmm13,%xmm14,%xmm14 + vpclmulqdq $0x11,%xmm6,%xmm15,%xmm4 + vmovdqu 96-64(%rsi),%xmm6 + vpxor %xmm5,%xmm2,%xmm2 + vpunpckhqdq %xmm14,%xmm14,%xmm9 + vpclmulqdq $0x10,%xmm7,%xmm8,%xmm5 + vmovdqu 128-64(%rsi),%xmm7 + vpxor %xmm14,%xmm9,%xmm9 + + vmovdqu 32(%rdx),%xmm15 + vpxor %xmm0,%xmm3,%xmm3 + vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0 + vpxor %xmm1,%xmm4,%xmm4 + vpshufb %xmm13,%xmm15,%xmm15 + vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1 + vmovdqu 112-64(%rsi),%xmm6 + vpxor %xmm2,%xmm5,%xmm5 + vpunpckhqdq %xmm15,%xmm15,%xmm8 + vpclmulqdq $0x00,%xmm7,%xmm9,%xmm2 + vpxor %xmm15,%xmm8,%xmm8 + + vmovdqu 16(%rdx),%xmm14 + vpxor %xmm3,%xmm0,%xmm0 + vpclmulqdq $0x00,%xmm6,%xmm15,%xmm3 + vpxor %xmm4,%xmm1,%xmm1 + vpshufb %xmm13,%xmm14,%xmm14 + vpclmulqdq $0x11,%xmm6,%xmm15,%xmm4 + vmovdqu 144-64(%rsi),%xmm6 + vpxor %xmm5,%xmm2,%xmm2 + vpunpckhqdq %xmm14,%xmm14,%xmm9 + vpclmulqdq $0x10,%xmm7,%xmm8,%xmm5 + vmovdqu 176-64(%rsi),%xmm7 + vpxor %xmm14,%xmm9,%xmm9 + + vmovdqu (%rdx),%xmm15 + vpxor %xmm0,%xmm3,%xmm3 + vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0 + vpxor %xmm1,%xmm4,%xmm4 + vpshufb %xmm13,%xmm15,%xmm15 + vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1 + vmovdqu 160-64(%rsi),%xmm6 + vpxor %xmm2,%xmm5,%xmm5 + vpclmulqdq $0x10,%xmm7,%xmm9,%xmm2 + + leaq 128(%rdx),%rdx + cmpq $0x80,%rcx + jb L$tail_avx + + vpxor %xmm10,%xmm15,%xmm15 + subq $0x80,%rcx + jmp L$oop8x_avx + +.p2align 5 +L$oop8x_avx: + vpunpckhqdq %xmm15,%xmm15,%xmm8 + vmovdqu 112(%rdx),%xmm14 + vpxor %xmm0,%xmm3,%xmm3 + vpxor %xmm15,%xmm8,%xmm8 + vpclmulqdq $0x00,%xmm6,%xmm15,%xmm10 + vpshufb %xmm13,%xmm14,%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vpclmulqdq $0x11,%xmm6,%xmm15,%xmm11 + vmovdqu 0-64(%rsi),%xmm6 + vpunpckhqdq %xmm14,%xmm14,%xmm9 + vpxor %xmm2,%xmm5,%xmm5 + vpclmulqdq $0x00,%xmm7,%xmm8,%xmm12 + vmovdqu 32-64(%rsi),%xmm7 + vpxor %xmm14,%xmm9,%xmm9 + + vmovdqu 96(%rdx),%xmm15 + vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0 + vpxor %xmm3,%xmm10,%xmm10 + vpshufb %xmm13,%xmm15,%xmm15 + vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1 + vxorps %xmm4,%xmm11,%xmm11 + vmovdqu 16-64(%rsi),%xmm6 + vpunpckhqdq %xmm15,%xmm15,%xmm8 + vpclmulqdq $0x00,%xmm7,%xmm9,%xmm2 + vpxor %xmm5,%xmm12,%xmm12 + vxorps %xmm15,%xmm8,%xmm8 + + vmovdqu 80(%rdx),%xmm14 + vpxor %xmm10,%xmm12,%xmm12 + vpclmulqdq $0x00,%xmm6,%xmm15,%xmm3 + vpxor %xmm11,%xmm12,%xmm12 + vpslldq $8,%xmm12,%xmm9 + vpxor %xmm0,%xmm3,%xmm3 + vpclmulqdq $0x11,%xmm6,%xmm15,%xmm4 + vpsrldq $8,%xmm12,%xmm12 + vpxor %xmm9,%xmm10,%xmm10 + vmovdqu 48-64(%rsi),%xmm6 + vpshufb %xmm13,%xmm14,%xmm14 + vxorps %xmm12,%xmm11,%xmm11 + vpxor %xmm1,%xmm4,%xmm4 + vpunpckhqdq %xmm14,%xmm14,%xmm9 + vpclmulqdq $0x10,%xmm7,%xmm8,%xmm5 + vmovdqu 80-64(%rsi),%xmm7 + vpxor %xmm14,%xmm9,%xmm9 + vpxor %xmm2,%xmm5,%xmm5 + + vmovdqu 64(%rdx),%xmm15 + vpalignr $8,%xmm10,%xmm10,%xmm12 + vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0 + vpshufb %xmm13,%xmm15,%xmm15 + vpxor %xmm3,%xmm0,%xmm0 + vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1 + vmovdqu 64-64(%rsi),%xmm6 + vpunpckhqdq %xmm15,%xmm15,%xmm8 + vpxor %xmm4,%xmm1,%xmm1 + vpclmulqdq $0x00,%xmm7,%xmm9,%xmm2 + vxorps %xmm15,%xmm8,%xmm8 + vpxor %xmm5,%xmm2,%xmm2 + + vmovdqu 48(%rdx),%xmm14 + vpclmulqdq $0x10,(%r10),%xmm10,%xmm10 + vpclmulqdq $0x00,%xmm6,%xmm15,%xmm3 + vpshufb %xmm13,%xmm14,%xmm14 + vpxor %xmm0,%xmm3,%xmm3 + vpclmulqdq $0x11,%xmm6,%xmm15,%xmm4 + vmovdqu 96-64(%rsi),%xmm6 + vpunpckhqdq %xmm14,%xmm14,%xmm9 + vpxor %xmm1,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm7,%xmm8,%xmm5 + vmovdqu 128-64(%rsi),%xmm7 + vpxor %xmm14,%xmm9,%xmm9 + vpxor %xmm2,%xmm5,%xmm5 + + vmovdqu 32(%rdx),%xmm15 + vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0 + vpshufb %xmm13,%xmm15,%xmm15 + vpxor %xmm3,%xmm0,%xmm0 + vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1 + vmovdqu 112-64(%rsi),%xmm6 + vpunpckhqdq %xmm15,%xmm15,%xmm8 + vpxor %xmm4,%xmm1,%xmm1 + vpclmulqdq $0x00,%xmm7,%xmm9,%xmm2 + vpxor %xmm15,%xmm8,%xmm8 + vpxor %xmm5,%xmm2,%xmm2 + vxorps %xmm12,%xmm10,%xmm10 + + vmovdqu 16(%rdx),%xmm14 + vpalignr $8,%xmm10,%xmm10,%xmm12 + vpclmulqdq $0x00,%xmm6,%xmm15,%xmm3 + vpshufb %xmm13,%xmm14,%xmm14 + vpxor %xmm0,%xmm3,%xmm3 + vpclmulqdq $0x11,%xmm6,%xmm15,%xmm4 + vmovdqu 144-64(%rsi),%xmm6 + vpclmulqdq $0x10,(%r10),%xmm10,%xmm10 + vxorps %xmm11,%xmm12,%xmm12 + vpunpckhqdq %xmm14,%xmm14,%xmm9 + vpxor %xmm1,%xmm4,%xmm4 + vpclmulqdq $0x10,%xmm7,%xmm8,%xmm5 + vmovdqu 176-64(%rsi),%xmm7 + vpxor %xmm14,%xmm9,%xmm9 + vpxor %xmm2,%xmm5,%xmm5 + + vmovdqu (%rdx),%xmm15 + vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0 + vpshufb %xmm13,%xmm15,%xmm15 + vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1 + vmovdqu 160-64(%rsi),%xmm6 + vpxor %xmm12,%xmm15,%xmm15 + vpclmulqdq $0x10,%xmm7,%xmm9,%xmm2 + vpxor %xmm10,%xmm15,%xmm15 + + leaq 128(%rdx),%rdx + subq $0x80,%rcx + jnc L$oop8x_avx + + addq $0x80,%rcx + jmp L$tail_no_xor_avx + +.p2align 5 +L$short_avx: + vmovdqu -16(%rdx,%rcx,1),%xmm14 + leaq (%rdx,%rcx,1),%rdx + vmovdqu 0-64(%rsi),%xmm6 + vmovdqu 32-64(%rsi),%xmm7 + vpshufb %xmm13,%xmm14,%xmm15 + + vmovdqa %xmm0,%xmm3 + vmovdqa %xmm1,%xmm4 + vmovdqa %xmm2,%xmm5 + subq $0x10,%rcx + jz L$tail_avx + + vpunpckhqdq %xmm15,%xmm15,%xmm8 + vpxor %xmm0,%xmm3,%xmm3 + vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0 + vpxor %xmm15,%xmm8,%xmm8 + vmovdqu -32(%rdx),%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1 + vmovdqu 16-64(%rsi),%xmm6 + vpshufb %xmm13,%xmm14,%xmm15 + vpxor %xmm2,%xmm5,%xmm5 + vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2 + vpsrldq $8,%xmm7,%xmm7 + subq $0x10,%rcx + jz L$tail_avx + + vpunpckhqdq %xmm15,%xmm15,%xmm8 + vpxor %xmm0,%xmm3,%xmm3 + vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0 + vpxor %xmm15,%xmm8,%xmm8 + vmovdqu -48(%rdx),%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1 + vmovdqu 48-64(%rsi),%xmm6 + vpshufb %xmm13,%xmm14,%xmm15 + vpxor %xmm2,%xmm5,%xmm5 + vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2 + vmovdqu 80-64(%rsi),%xmm7 + subq $0x10,%rcx + jz L$tail_avx + + vpunpckhqdq %xmm15,%xmm15,%xmm8 + vpxor %xmm0,%xmm3,%xmm3 + vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0 + vpxor %xmm15,%xmm8,%xmm8 + vmovdqu -64(%rdx),%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1 + vmovdqu 64-64(%rsi),%xmm6 + vpshufb %xmm13,%xmm14,%xmm15 + vpxor %xmm2,%xmm5,%xmm5 + vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2 + vpsrldq $8,%xmm7,%xmm7 + subq $0x10,%rcx + jz L$tail_avx + + vpunpckhqdq %xmm15,%xmm15,%xmm8 + vpxor %xmm0,%xmm3,%xmm3 + vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0 + vpxor %xmm15,%xmm8,%xmm8 + vmovdqu -80(%rdx),%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1 + vmovdqu 96-64(%rsi),%xmm6 + vpshufb %xmm13,%xmm14,%xmm15 + vpxor %xmm2,%xmm5,%xmm5 + vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2 + vmovdqu 128-64(%rsi),%xmm7 + subq $0x10,%rcx + jz L$tail_avx + + vpunpckhqdq %xmm15,%xmm15,%xmm8 + vpxor %xmm0,%xmm3,%xmm3 + vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0 + vpxor %xmm15,%xmm8,%xmm8 + vmovdqu -96(%rdx),%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1 + vmovdqu 112-64(%rsi),%xmm6 + vpshufb %xmm13,%xmm14,%xmm15 + vpxor %xmm2,%xmm5,%xmm5 + vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2 + vpsrldq $8,%xmm7,%xmm7 + subq $0x10,%rcx + jz L$tail_avx + + vpunpckhqdq %xmm15,%xmm15,%xmm8 + vpxor %xmm0,%xmm3,%xmm3 + vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0 + vpxor %xmm15,%xmm8,%xmm8 + vmovdqu -112(%rdx),%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1 + vmovdqu 144-64(%rsi),%xmm6 + vpshufb %xmm13,%xmm14,%xmm15 + vpxor %xmm2,%xmm5,%xmm5 + vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2 + vmovq 184-64(%rsi),%xmm7 + subq $0x10,%rcx + jmp L$tail_avx + +.p2align 5 +L$tail_avx: + vpxor %xmm10,%xmm15,%xmm15 +L$tail_no_xor_avx: + vpunpckhqdq %xmm15,%xmm15,%xmm8 + vpxor %xmm0,%xmm3,%xmm3 + vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0 + vpxor %xmm15,%xmm8,%xmm8 + vpxor %xmm1,%xmm4,%xmm4 + vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1 + vpxor %xmm2,%xmm5,%xmm5 + vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2 + + vmovdqu (%r10),%xmm12 + + vpxor %xmm0,%xmm3,%xmm10 + vpxor %xmm1,%xmm4,%xmm11 + vpxor %xmm2,%xmm5,%xmm5 + + vpxor %xmm10,%xmm5,%xmm5 + vpxor %xmm11,%xmm5,%xmm5 + vpslldq $8,%xmm5,%xmm9 + vpsrldq $8,%xmm5,%xmm5 + vpxor %xmm9,%xmm10,%xmm10 + vpxor %xmm5,%xmm11,%xmm11 + + vpclmulqdq $0x10,%xmm12,%xmm10,%xmm9 + vpalignr $8,%xmm10,%xmm10,%xmm10 + vpxor %xmm9,%xmm10,%xmm10 + + vpclmulqdq $0x10,%xmm12,%xmm10,%xmm9 + vpalignr $8,%xmm10,%xmm10,%xmm10 + vpxor %xmm11,%xmm10,%xmm10 + vpxor %xmm9,%xmm10,%xmm10 + + cmpq $0,%rcx + jne L$short_avx + + vpshufb %xmm13,%xmm10,%xmm10 + vmovdqu %xmm10,(%rdi) + vzeroupper + .byte 0xf3,0xc3 + + +.p2align 6 +L$bswap_mask: +.byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 +L$0x1c2_polynomial: +.byte 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc2 +L$7_mask: +.long 7,0,7,0 +L$7_mask_poly: +.long 7,0,450,0 +.p2align 6 + +L$rem_4bit: +.long 0,0,0,471859200,0,943718400,0,610271232 +.long 0,1887436800,0,1822425088,0,1220542464,0,1423966208 +.long 0,3774873600,0,4246732800,0,3644850176,0,3311403008 +.long 0,2441084928,0,2376073216,0,2847932416,0,3051356160 + +L$rem_8bit: +.value 0x0000,0x01C2,0x0384,0x0246,0x0708,0x06CA,0x048C,0x054E +.value 0x0E10,0x0FD2,0x0D94,0x0C56,0x0918,0x08DA,0x0A9C,0x0B5E +.value 0x1C20,0x1DE2,0x1FA4,0x1E66,0x1B28,0x1AEA,0x18AC,0x196E +.value 0x1230,0x13F2,0x11B4,0x1076,0x1538,0x14FA,0x16BC,0x177E +.value 0x3840,0x3982,0x3BC4,0x3A06,0x3F48,0x3E8A,0x3CCC,0x3D0E +.value 0x3650,0x3792,0x35D4,0x3416,0x3158,0x309A,0x32DC,0x331E +.value 0x2460,0x25A2,0x27E4,0x2626,0x2368,0x22AA,0x20EC,0x212E +.value 0x2A70,0x2BB2,0x29F4,0x2836,0x2D78,0x2CBA,0x2EFC,0x2F3E +.value 0x7080,0x7142,0x7304,0x72C6,0x7788,0x764A,0x740C,0x75CE +.value 0x7E90,0x7F52,0x7D14,0x7CD6,0x7998,0x785A,0x7A1C,0x7BDE +.value 0x6CA0,0x6D62,0x6F24,0x6EE6,0x6BA8,0x6A6A,0x682C,0x69EE +.value 0x62B0,0x6372,0x6134,0x60F6,0x65B8,0x647A,0x663C,0x67FE +.value 0x48C0,0x4902,0x4B44,0x4A86,0x4FC8,0x4E0A,0x4C4C,0x4D8E +.value 0x46D0,0x4712,0x4554,0x4496,0x41D8,0x401A,0x425C,0x439E +.value 0x54E0,0x5522,0x5764,0x56A6,0x53E8,0x522A,0x506C,0x51AE +.value 0x5AF0,0x5B32,0x5974,0x58B6,0x5DF8,0x5C3A,0x5E7C,0x5FBE +.value 0xE100,0xE0C2,0xE284,0xE346,0xE608,0xE7CA,0xE58C,0xE44E +.value 0xEF10,0xEED2,0xEC94,0xED56,0xE818,0xE9DA,0xEB9C,0xEA5E +.value 0xFD20,0xFCE2,0xFEA4,0xFF66,0xFA28,0xFBEA,0xF9AC,0xF86E +.value 0xF330,0xF2F2,0xF0B4,0xF176,0xF438,0xF5FA,0xF7BC,0xF67E +.value 0xD940,0xD882,0xDAC4,0xDB06,0xDE48,0xDF8A,0xDDCC,0xDC0E +.value 0xD750,0xD692,0xD4D4,0xD516,0xD058,0xD19A,0xD3DC,0xD21E +.value 0xC560,0xC4A2,0xC6E4,0xC726,0xC268,0xC3AA,0xC1EC,0xC02E +.value 0xCB70,0xCAB2,0xC8F4,0xC936,0xCC78,0xCDBA,0xCFFC,0xCE3E +.value 0x9180,0x9042,0x9204,0x93C6,0x9688,0x974A,0x950C,0x94CE +.value 0x9F90,0x9E52,0x9C14,0x9DD6,0x9898,0x995A,0x9B1C,0x9ADE +.value 0x8DA0,0x8C62,0x8E24,0x8FE6,0x8AA8,0x8B6A,0x892C,0x88EE +.value 0x83B0,0x8272,0x8034,0x81F6,0x84B8,0x857A,0x873C,0x86FE +.value 0xA9C0,0xA802,0xAA44,0xAB86,0xAEC8,0xAF0A,0xAD4C,0xAC8E +.value 0xA7D0,0xA612,0xA454,0xA596,0xA0D8,0xA11A,0xA35C,0xA29E +.value 0xB5E0,0xB422,0xB664,0xB7A6,0xB2E8,0xB32A,0xB16C,0xB0AE +.value 0xBBF0,0xBA32,0xB874,0xB9B6,0xBCF8,0xBD3A,0xBF7C,0xBEBE + +.byte 71,72,65,83,72,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.p2align 6 diff --git a/vere/ext/openssl/gen/macos-x86_64/crypto/poly1305/poly1305-x86_64.s b/vere/ext/openssl/gen/macos-x86_64/crypto/poly1305/poly1305-x86_64.s new file mode 100644 index 0000000..a5d240b --- /dev/null +++ b/vere/ext/openssl/gen/macos-x86_64/crypto/poly1305/poly1305-x86_64.s @@ -0,0 +1,2038 @@ +.text + + + +.globl _poly1305_init +.private_extern _poly1305_init +.globl _poly1305_blocks +.private_extern _poly1305_blocks +.globl _poly1305_emit +.private_extern _poly1305_emit + + +.p2align 5 +_poly1305_init: + + xorq %rax,%rax + movq %rax,0(%rdi) + movq %rax,8(%rdi) + movq %rax,16(%rdi) + + cmpq $0,%rsi + je L$no_key + + leaq _poly1305_blocks(%rip),%r10 + leaq _poly1305_emit(%rip),%r11 + movq _OPENSSL_ia32cap_P+4(%rip),%r9 + leaq poly1305_blocks_avx(%rip),%rax + leaq poly1305_emit_avx(%rip),%rcx + btq $28,%r9 + cmovcq %rax,%r10 + cmovcq %rcx,%r11 + leaq poly1305_blocks_avx2(%rip),%rax + btq $37,%r9 + cmovcq %rax,%r10 + movq $0x0ffffffc0fffffff,%rax + movq $0x0ffffffc0ffffffc,%rcx + andq 0(%rsi),%rax + andq 8(%rsi),%rcx + movq %rax,24(%rdi) + movq %rcx,32(%rdi) + movq %r10,0(%rdx) + movq %r11,8(%rdx) + movl $1,%eax +L$no_key: + .byte 0xf3,0xc3 + + + + +.p2align 5 +_poly1305_blocks: + +L$blocks: + shrq $4,%rdx + jz L$no_data + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + +L$blocks_body: + + movq %rdx,%r15 + + movq 24(%rdi),%r11 + movq 32(%rdi),%r13 + + movq 0(%rdi),%r14 + movq 8(%rdi),%rbx + movq 16(%rdi),%rbp + + movq %r13,%r12 + shrq $2,%r13 + movq %r12,%rax + addq %r12,%r13 + jmp L$oop + +.p2align 5 +L$oop: + addq 0(%rsi),%r14 + adcq 8(%rsi),%rbx + leaq 16(%rsi),%rsi + adcq %rcx,%rbp + mulq %r14 + movq %rax,%r9 + movq %r11,%rax + movq %rdx,%r10 + + mulq %r14 + movq %rax,%r14 + movq %r11,%rax + movq %rdx,%r8 + + mulq %rbx + addq %rax,%r9 + movq %r13,%rax + adcq %rdx,%r10 + + mulq %rbx + movq %rbp,%rbx + addq %rax,%r14 + adcq %rdx,%r8 + + imulq %r13,%rbx + addq %rbx,%r9 + movq %r8,%rbx + adcq $0,%r10 + + imulq %r11,%rbp + addq %r9,%rbx + movq $-4,%rax + adcq %rbp,%r10 + + andq %r10,%rax + movq %r10,%rbp + shrq $2,%r10 + andq $3,%rbp + addq %r10,%rax + addq %rax,%r14 + adcq $0,%rbx + adcq $0,%rbp + movq %r12,%rax + decq %r15 + jnz L$oop + + movq %r14,0(%rdi) + movq %rbx,8(%rdi) + movq %rbp,16(%rdi) + + movq 0(%rsp),%r15 + + movq 8(%rsp),%r14 + + movq 16(%rsp),%r13 + + movq 24(%rsp),%r12 + + movq 32(%rsp),%rbp + + movq 40(%rsp),%rbx + + leaq 48(%rsp),%rsp + +L$no_data: +L$blocks_epilogue: + .byte 0xf3,0xc3 + + + + +.p2align 5 +_poly1305_emit: + +L$emit: + movq 0(%rdi),%r8 + movq 8(%rdi),%r9 + movq 16(%rdi),%r10 + + movq %r8,%rax + addq $5,%r8 + movq %r9,%rcx + adcq $0,%r9 + adcq $0,%r10 + shrq $2,%r10 + cmovnzq %r8,%rax + cmovnzq %r9,%rcx + + addq 0(%rdx),%rax + adcq 8(%rdx),%rcx + movq %rax,0(%rsi) + movq %rcx,8(%rsi) + + .byte 0xf3,0xc3 + + + +.p2align 5 +__poly1305_block: + + mulq %r14 + movq %rax,%r9 + movq %r11,%rax + movq %rdx,%r10 + + mulq %r14 + movq %rax,%r14 + movq %r11,%rax + movq %rdx,%r8 + + mulq %rbx + addq %rax,%r9 + movq %r13,%rax + adcq %rdx,%r10 + + mulq %rbx + movq %rbp,%rbx + addq %rax,%r14 + adcq %rdx,%r8 + + imulq %r13,%rbx + addq %rbx,%r9 + movq %r8,%rbx + adcq $0,%r10 + + imulq %r11,%rbp + addq %r9,%rbx + movq $-4,%rax + adcq %rbp,%r10 + + andq %r10,%rax + movq %r10,%rbp + shrq $2,%r10 + andq $3,%rbp + addq %r10,%rax + addq %rax,%r14 + adcq $0,%rbx + adcq $0,%rbp + .byte 0xf3,0xc3 + + + + +.p2align 5 +__poly1305_init_avx: + + movq %r11,%r14 + movq %r12,%rbx + xorq %rbp,%rbp + + leaq 48+64(%rdi),%rdi + + movq %r12,%rax + call __poly1305_block + + movl $0x3ffffff,%eax + movl $0x3ffffff,%edx + movq %r14,%r8 + andl %r14d,%eax + movq %r11,%r9 + andl %r11d,%edx + movl %eax,-64(%rdi) + shrq $26,%r8 + movl %edx,-60(%rdi) + shrq $26,%r9 + + movl $0x3ffffff,%eax + movl $0x3ffffff,%edx + andl %r8d,%eax + andl %r9d,%edx + movl %eax,-48(%rdi) + leal (%rax,%rax,4),%eax + movl %edx,-44(%rdi) + leal (%rdx,%rdx,4),%edx + movl %eax,-32(%rdi) + shrq $26,%r8 + movl %edx,-28(%rdi) + shrq $26,%r9 + + movq %rbx,%rax + movq %r12,%rdx + shlq $12,%rax + shlq $12,%rdx + orq %r8,%rax + orq %r9,%rdx + andl $0x3ffffff,%eax + andl $0x3ffffff,%edx + movl %eax,-16(%rdi) + leal (%rax,%rax,4),%eax + movl %edx,-12(%rdi) + leal (%rdx,%rdx,4),%edx + movl %eax,0(%rdi) + movq %rbx,%r8 + movl %edx,4(%rdi) + movq %r12,%r9 + + movl $0x3ffffff,%eax + movl $0x3ffffff,%edx + shrq $14,%r8 + shrq $14,%r9 + andl %r8d,%eax + andl %r9d,%edx + movl %eax,16(%rdi) + leal (%rax,%rax,4),%eax + movl %edx,20(%rdi) + leal (%rdx,%rdx,4),%edx + movl %eax,32(%rdi) + shrq $26,%r8 + movl %edx,36(%rdi) + shrq $26,%r9 + + movq %rbp,%rax + shlq $24,%rax + orq %rax,%r8 + movl %r8d,48(%rdi) + leaq (%r8,%r8,4),%r8 + movl %r9d,52(%rdi) + leaq (%r9,%r9,4),%r9 + movl %r8d,64(%rdi) + movl %r9d,68(%rdi) + + movq %r12,%rax + call __poly1305_block + + movl $0x3ffffff,%eax + movq %r14,%r8 + andl %r14d,%eax + shrq $26,%r8 + movl %eax,-52(%rdi) + + movl $0x3ffffff,%edx + andl %r8d,%edx + movl %edx,-36(%rdi) + leal (%rdx,%rdx,4),%edx + shrq $26,%r8 + movl %edx,-20(%rdi) + + movq %rbx,%rax + shlq $12,%rax + orq %r8,%rax + andl $0x3ffffff,%eax + movl %eax,-4(%rdi) + leal (%rax,%rax,4),%eax + movq %rbx,%r8 + movl %eax,12(%rdi) + + movl $0x3ffffff,%edx + shrq $14,%r8 + andl %r8d,%edx + movl %edx,28(%rdi) + leal (%rdx,%rdx,4),%edx + shrq $26,%r8 + movl %edx,44(%rdi) + + movq %rbp,%rax + shlq $24,%rax + orq %rax,%r8 + movl %r8d,60(%rdi) + leaq (%r8,%r8,4),%r8 + movl %r8d,76(%rdi) + + movq %r12,%rax + call __poly1305_block + + movl $0x3ffffff,%eax + movq %r14,%r8 + andl %r14d,%eax + shrq $26,%r8 + movl %eax,-56(%rdi) + + movl $0x3ffffff,%edx + andl %r8d,%edx + movl %edx,-40(%rdi) + leal (%rdx,%rdx,4),%edx + shrq $26,%r8 + movl %edx,-24(%rdi) + + movq %rbx,%rax + shlq $12,%rax + orq %r8,%rax + andl $0x3ffffff,%eax + movl %eax,-8(%rdi) + leal (%rax,%rax,4),%eax + movq %rbx,%r8 + movl %eax,8(%rdi) + + movl $0x3ffffff,%edx + shrq $14,%r8 + andl %r8d,%edx + movl %edx,24(%rdi) + leal (%rdx,%rdx,4),%edx + shrq $26,%r8 + movl %edx,40(%rdi) + + movq %rbp,%rax + shlq $24,%rax + orq %rax,%r8 + movl %r8d,56(%rdi) + leaq (%r8,%r8,4),%r8 + movl %r8d,72(%rdi) + + leaq -48-64(%rdi),%rdi + .byte 0xf3,0xc3 + + + + +.p2align 5 +poly1305_blocks_avx: + + movl 20(%rdi),%r8d + cmpq $128,%rdx + jae L$blocks_avx + testl %r8d,%r8d + jz L$blocks + +L$blocks_avx: + andq $-16,%rdx + jz L$no_data_avx + + vzeroupper + + testl %r8d,%r8d + jz L$base2_64_avx + + testq $31,%rdx + jz L$even_avx + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + +L$blocks_avx_body: + + movq %rdx,%r15 + + movq 0(%rdi),%r8 + movq 8(%rdi),%r9 + movl 16(%rdi),%ebp + + movq 24(%rdi),%r11 + movq 32(%rdi),%r13 + + + movl %r8d,%r14d + andq $-2147483648,%r8 + movq %r9,%r12 + movl %r9d,%ebx + andq $-2147483648,%r9 + + shrq $6,%r8 + shlq $52,%r12 + addq %r8,%r14 + shrq $12,%rbx + shrq $18,%r9 + addq %r12,%r14 + adcq %r9,%rbx + + movq %rbp,%r8 + shlq $40,%r8 + shrq $24,%rbp + addq %r8,%rbx + adcq $0,%rbp + + movq $-4,%r9 + movq %rbp,%r8 + andq %rbp,%r9 + shrq $2,%r8 + andq $3,%rbp + addq %r9,%r8 + addq %r8,%r14 + adcq $0,%rbx + adcq $0,%rbp + + movq %r13,%r12 + movq %r13,%rax + shrq $2,%r13 + addq %r12,%r13 + + addq 0(%rsi),%r14 + adcq 8(%rsi),%rbx + leaq 16(%rsi),%rsi + adcq %rcx,%rbp + + call __poly1305_block + + testq %rcx,%rcx + jz L$store_base2_64_avx + + + movq %r14,%rax + movq %r14,%rdx + shrq $52,%r14 + movq %rbx,%r11 + movq %rbx,%r12 + shrq $26,%rdx + andq $0x3ffffff,%rax + shlq $12,%r11 + andq $0x3ffffff,%rdx + shrq $14,%rbx + orq %r11,%r14 + shlq $24,%rbp + andq $0x3ffffff,%r14 + shrq $40,%r12 + andq $0x3ffffff,%rbx + orq %r12,%rbp + + subq $16,%r15 + jz L$store_base2_26_avx + + vmovd %eax,%xmm0 + vmovd %edx,%xmm1 + vmovd %r14d,%xmm2 + vmovd %ebx,%xmm3 + vmovd %ebp,%xmm4 + jmp L$proceed_avx + +.p2align 5 +L$store_base2_64_avx: + movq %r14,0(%rdi) + movq %rbx,8(%rdi) + movq %rbp,16(%rdi) + jmp L$done_avx + +.p2align 4 +L$store_base2_26_avx: + movl %eax,0(%rdi) + movl %edx,4(%rdi) + movl %r14d,8(%rdi) + movl %ebx,12(%rdi) + movl %ebp,16(%rdi) +.p2align 4 +L$done_avx: + movq 0(%rsp),%r15 + + movq 8(%rsp),%r14 + + movq 16(%rsp),%r13 + + movq 24(%rsp),%r12 + + movq 32(%rsp),%rbp + + movq 40(%rsp),%rbx + + leaq 48(%rsp),%rsp + +L$no_data_avx: +L$blocks_avx_epilogue: + .byte 0xf3,0xc3 + + +.p2align 5 +L$base2_64_avx: + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + +L$base2_64_avx_body: + + movq %rdx,%r15 + + movq 24(%rdi),%r11 + movq 32(%rdi),%r13 + + movq 0(%rdi),%r14 + movq 8(%rdi),%rbx + movl 16(%rdi),%ebp + + movq %r13,%r12 + movq %r13,%rax + shrq $2,%r13 + addq %r12,%r13 + + testq $31,%rdx + jz L$init_avx + + addq 0(%rsi),%r14 + adcq 8(%rsi),%rbx + leaq 16(%rsi),%rsi + adcq %rcx,%rbp + subq $16,%r15 + + call __poly1305_block + +L$init_avx: + + movq %r14,%rax + movq %r14,%rdx + shrq $52,%r14 + movq %rbx,%r8 + movq %rbx,%r9 + shrq $26,%rdx + andq $0x3ffffff,%rax + shlq $12,%r8 + andq $0x3ffffff,%rdx + shrq $14,%rbx + orq %r8,%r14 + shlq $24,%rbp + andq $0x3ffffff,%r14 + shrq $40,%r9 + andq $0x3ffffff,%rbx + orq %r9,%rbp + + vmovd %eax,%xmm0 + vmovd %edx,%xmm1 + vmovd %r14d,%xmm2 + vmovd %ebx,%xmm3 + vmovd %ebp,%xmm4 + movl $1,20(%rdi) + + call __poly1305_init_avx + +L$proceed_avx: + movq %r15,%rdx + + movq 0(%rsp),%r15 + + movq 8(%rsp),%r14 + + movq 16(%rsp),%r13 + + movq 24(%rsp),%r12 + + movq 32(%rsp),%rbp + + movq 40(%rsp),%rbx + + leaq 48(%rsp),%rax + leaq 48(%rsp),%rsp + +L$base2_64_avx_epilogue: + jmp L$do_avx + + +.p2align 5 +L$even_avx: + + vmovd 0(%rdi),%xmm0 + vmovd 4(%rdi),%xmm1 + vmovd 8(%rdi),%xmm2 + vmovd 12(%rdi),%xmm3 + vmovd 16(%rdi),%xmm4 + +L$do_avx: + leaq -88(%rsp),%r11 + + subq $0x178,%rsp + subq $64,%rdx + leaq -32(%rsi),%rax + cmovcq %rax,%rsi + + vmovdqu 48(%rdi),%xmm14 + leaq 112(%rdi),%rdi + leaq L$const(%rip),%rcx + + + + vmovdqu 32(%rsi),%xmm5 + vmovdqu 48(%rsi),%xmm6 + vmovdqa 64(%rcx),%xmm15 + + vpsrldq $6,%xmm5,%xmm7 + vpsrldq $6,%xmm6,%xmm8 + vpunpckhqdq %xmm6,%xmm5,%xmm9 + vpunpcklqdq %xmm6,%xmm5,%xmm5 + vpunpcklqdq %xmm8,%xmm7,%xmm8 + + vpsrlq $40,%xmm9,%xmm9 + vpsrlq $26,%xmm5,%xmm6 + vpand %xmm15,%xmm5,%xmm5 + vpsrlq $4,%xmm8,%xmm7 + vpand %xmm15,%xmm6,%xmm6 + vpsrlq $30,%xmm8,%xmm8 + vpand %xmm15,%xmm7,%xmm7 + vpand %xmm15,%xmm8,%xmm8 + vpor 32(%rcx),%xmm9,%xmm9 + + jbe L$skip_loop_avx + + + vmovdqu -48(%rdi),%xmm11 + vmovdqu -32(%rdi),%xmm12 + vpshufd $0xEE,%xmm14,%xmm13 + vpshufd $0x44,%xmm14,%xmm10 + vmovdqa %xmm13,-144(%r11) + vmovdqa %xmm10,0(%rsp) + vpshufd $0xEE,%xmm11,%xmm14 + vmovdqu -16(%rdi),%xmm10 + vpshufd $0x44,%xmm11,%xmm11 + vmovdqa %xmm14,-128(%r11) + vmovdqa %xmm11,16(%rsp) + vpshufd $0xEE,%xmm12,%xmm13 + vmovdqu 0(%rdi),%xmm11 + vpshufd $0x44,%xmm12,%xmm12 + vmovdqa %xmm13,-112(%r11) + vmovdqa %xmm12,32(%rsp) + vpshufd $0xEE,%xmm10,%xmm14 + vmovdqu 16(%rdi),%xmm12 + vpshufd $0x44,%xmm10,%xmm10 + vmovdqa %xmm14,-96(%r11) + vmovdqa %xmm10,48(%rsp) + vpshufd $0xEE,%xmm11,%xmm13 + vmovdqu 32(%rdi),%xmm10 + vpshufd $0x44,%xmm11,%xmm11 + vmovdqa %xmm13,-80(%r11) + vmovdqa %xmm11,64(%rsp) + vpshufd $0xEE,%xmm12,%xmm14 + vmovdqu 48(%rdi),%xmm11 + vpshufd $0x44,%xmm12,%xmm12 + vmovdqa %xmm14,-64(%r11) + vmovdqa %xmm12,80(%rsp) + vpshufd $0xEE,%xmm10,%xmm13 + vmovdqu 64(%rdi),%xmm12 + vpshufd $0x44,%xmm10,%xmm10 + vmovdqa %xmm13,-48(%r11) + vmovdqa %xmm10,96(%rsp) + vpshufd $0xEE,%xmm11,%xmm14 + vpshufd $0x44,%xmm11,%xmm11 + vmovdqa %xmm14,-32(%r11) + vmovdqa %xmm11,112(%rsp) + vpshufd $0xEE,%xmm12,%xmm13 + vmovdqa 0(%rsp),%xmm14 + vpshufd $0x44,%xmm12,%xmm12 + vmovdqa %xmm13,-16(%r11) + vmovdqa %xmm12,128(%rsp) + + jmp L$oop_avx + +.p2align 5 +L$oop_avx: + + + + + + + + + + + + + + + + + + + + + vpmuludq %xmm5,%xmm14,%xmm10 + vpmuludq %xmm6,%xmm14,%xmm11 + vmovdqa %xmm2,32(%r11) + vpmuludq %xmm7,%xmm14,%xmm12 + vmovdqa 16(%rsp),%xmm2 + vpmuludq %xmm8,%xmm14,%xmm13 + vpmuludq %xmm9,%xmm14,%xmm14 + + vmovdqa %xmm0,0(%r11) + vpmuludq 32(%rsp),%xmm9,%xmm0 + vmovdqa %xmm1,16(%r11) + vpmuludq %xmm8,%xmm2,%xmm1 + vpaddq %xmm0,%xmm10,%xmm10 + vpaddq %xmm1,%xmm14,%xmm14 + vmovdqa %xmm3,48(%r11) + vpmuludq %xmm7,%xmm2,%xmm0 + vpmuludq %xmm6,%xmm2,%xmm1 + vpaddq %xmm0,%xmm13,%xmm13 + vmovdqa 48(%rsp),%xmm3 + vpaddq %xmm1,%xmm12,%xmm12 + vmovdqa %xmm4,64(%r11) + vpmuludq %xmm5,%xmm2,%xmm2 + vpmuludq %xmm7,%xmm3,%xmm0 + vpaddq %xmm2,%xmm11,%xmm11 + + vmovdqa 64(%rsp),%xmm4 + vpaddq %xmm0,%xmm14,%xmm14 + vpmuludq %xmm6,%xmm3,%xmm1 + vpmuludq %xmm5,%xmm3,%xmm3 + vpaddq %xmm1,%xmm13,%xmm13 + vmovdqa 80(%rsp),%xmm2 + vpaddq %xmm3,%xmm12,%xmm12 + vpmuludq %xmm9,%xmm4,%xmm0 + vpmuludq %xmm8,%xmm4,%xmm4 + vpaddq %xmm0,%xmm11,%xmm11 + vmovdqa 96(%rsp),%xmm3 + vpaddq %xmm4,%xmm10,%xmm10 + + vmovdqa 128(%rsp),%xmm4 + vpmuludq %xmm6,%xmm2,%xmm1 + vpmuludq %xmm5,%xmm2,%xmm2 + vpaddq %xmm1,%xmm14,%xmm14 + vpaddq %xmm2,%xmm13,%xmm13 + vpmuludq %xmm9,%xmm3,%xmm0 + vpmuludq %xmm8,%xmm3,%xmm1 + vpaddq %xmm0,%xmm12,%xmm12 + vmovdqu 0(%rsi),%xmm0 + vpaddq %xmm1,%xmm11,%xmm11 + vpmuludq %xmm7,%xmm3,%xmm3 + vpmuludq %xmm7,%xmm4,%xmm7 + vpaddq %xmm3,%xmm10,%xmm10 + + vmovdqu 16(%rsi),%xmm1 + vpaddq %xmm7,%xmm11,%xmm11 + vpmuludq %xmm8,%xmm4,%xmm8 + vpmuludq %xmm9,%xmm4,%xmm9 + vpsrldq $6,%xmm0,%xmm2 + vpaddq %xmm8,%xmm12,%xmm12 + vpaddq %xmm9,%xmm13,%xmm13 + vpsrldq $6,%xmm1,%xmm3 + vpmuludq 112(%rsp),%xmm5,%xmm9 + vpmuludq %xmm6,%xmm4,%xmm5 + vpunpckhqdq %xmm1,%xmm0,%xmm4 + vpaddq %xmm9,%xmm14,%xmm14 + vmovdqa -144(%r11),%xmm9 + vpaddq %xmm5,%xmm10,%xmm10 + + vpunpcklqdq %xmm1,%xmm0,%xmm0 + vpunpcklqdq %xmm3,%xmm2,%xmm3 + + + vpsrldq $5,%xmm4,%xmm4 + vpsrlq $26,%xmm0,%xmm1 + vpand %xmm15,%xmm0,%xmm0 + vpsrlq $4,%xmm3,%xmm2 + vpand %xmm15,%xmm1,%xmm1 + vpand 0(%rcx),%xmm4,%xmm4 + vpsrlq $30,%xmm3,%xmm3 + vpand %xmm15,%xmm2,%xmm2 + vpand %xmm15,%xmm3,%xmm3 + vpor 32(%rcx),%xmm4,%xmm4 + + vpaddq 0(%r11),%xmm0,%xmm0 + vpaddq 16(%r11),%xmm1,%xmm1 + vpaddq 32(%r11),%xmm2,%xmm2 + vpaddq 48(%r11),%xmm3,%xmm3 + vpaddq 64(%r11),%xmm4,%xmm4 + + leaq 32(%rsi),%rax + leaq 64(%rsi),%rsi + subq $64,%rdx + cmovcq %rax,%rsi + + + + + + + + + + + vpmuludq %xmm0,%xmm9,%xmm5 + vpmuludq %xmm1,%xmm9,%xmm6 + vpaddq %xmm5,%xmm10,%xmm10 + vpaddq %xmm6,%xmm11,%xmm11 + vmovdqa -128(%r11),%xmm7 + vpmuludq %xmm2,%xmm9,%xmm5 + vpmuludq %xmm3,%xmm9,%xmm6 + vpaddq %xmm5,%xmm12,%xmm12 + vpaddq %xmm6,%xmm13,%xmm13 + vpmuludq %xmm4,%xmm9,%xmm9 + vpmuludq -112(%r11),%xmm4,%xmm5 + vpaddq %xmm9,%xmm14,%xmm14 + + vpaddq %xmm5,%xmm10,%xmm10 + vpmuludq %xmm2,%xmm7,%xmm6 + vpmuludq %xmm3,%xmm7,%xmm5 + vpaddq %xmm6,%xmm13,%xmm13 + vmovdqa -96(%r11),%xmm8 + vpaddq %xmm5,%xmm14,%xmm14 + vpmuludq %xmm1,%xmm7,%xmm6 + vpmuludq %xmm0,%xmm7,%xmm7 + vpaddq %xmm6,%xmm12,%xmm12 + vpaddq %xmm7,%xmm11,%xmm11 + + vmovdqa -80(%r11),%xmm9 + vpmuludq %xmm2,%xmm8,%xmm5 + vpmuludq %xmm1,%xmm8,%xmm6 + vpaddq %xmm5,%xmm14,%xmm14 + vpaddq %xmm6,%xmm13,%xmm13 + vmovdqa -64(%r11),%xmm7 + vpmuludq %xmm0,%xmm8,%xmm8 + vpmuludq %xmm4,%xmm9,%xmm5 + vpaddq %xmm8,%xmm12,%xmm12 + vpaddq %xmm5,%xmm11,%xmm11 + vmovdqa -48(%r11),%xmm8 + vpmuludq %xmm3,%xmm9,%xmm9 + vpmuludq %xmm1,%xmm7,%xmm6 + vpaddq %xmm9,%xmm10,%xmm10 + + vmovdqa -16(%r11),%xmm9 + vpaddq %xmm6,%xmm14,%xmm14 + vpmuludq %xmm0,%xmm7,%xmm7 + vpmuludq %xmm4,%xmm8,%xmm5 + vpaddq %xmm7,%xmm13,%xmm13 + vpaddq %xmm5,%xmm12,%xmm12 + vmovdqu 32(%rsi),%xmm5 + vpmuludq %xmm3,%xmm8,%xmm7 + vpmuludq %xmm2,%xmm8,%xmm8 + vpaddq %xmm7,%xmm11,%xmm11 + vmovdqu 48(%rsi),%xmm6 + vpaddq %xmm8,%xmm10,%xmm10 + + vpmuludq %xmm2,%xmm9,%xmm2 + vpmuludq %xmm3,%xmm9,%xmm3 + vpsrldq $6,%xmm5,%xmm7 + vpaddq %xmm2,%xmm11,%xmm11 + vpmuludq %xmm4,%xmm9,%xmm4 + vpsrldq $6,%xmm6,%xmm8 + vpaddq %xmm3,%xmm12,%xmm2 + vpaddq %xmm4,%xmm13,%xmm3 + vpmuludq -32(%r11),%xmm0,%xmm4 + vpmuludq %xmm1,%xmm9,%xmm0 + vpunpckhqdq %xmm6,%xmm5,%xmm9 + vpaddq %xmm4,%xmm14,%xmm4 + vpaddq %xmm0,%xmm10,%xmm0 + + vpunpcklqdq %xmm6,%xmm5,%xmm5 + vpunpcklqdq %xmm8,%xmm7,%xmm8 + + + vpsrldq $5,%xmm9,%xmm9 + vpsrlq $26,%xmm5,%xmm6 + vmovdqa 0(%rsp),%xmm14 + vpand %xmm15,%xmm5,%xmm5 + vpsrlq $4,%xmm8,%xmm7 + vpand %xmm15,%xmm6,%xmm6 + vpand 0(%rcx),%xmm9,%xmm9 + vpsrlq $30,%xmm8,%xmm8 + vpand %xmm15,%xmm7,%xmm7 + vpand %xmm15,%xmm8,%xmm8 + vpor 32(%rcx),%xmm9,%xmm9 + + + + + + vpsrlq $26,%xmm3,%xmm13 + vpand %xmm15,%xmm3,%xmm3 + vpaddq %xmm13,%xmm4,%xmm4 + + vpsrlq $26,%xmm0,%xmm10 + vpand %xmm15,%xmm0,%xmm0 + vpaddq %xmm10,%xmm11,%xmm1 + + vpsrlq $26,%xmm4,%xmm10 + vpand %xmm15,%xmm4,%xmm4 + + vpsrlq $26,%xmm1,%xmm11 + vpand %xmm15,%xmm1,%xmm1 + vpaddq %xmm11,%xmm2,%xmm2 + + vpaddq %xmm10,%xmm0,%xmm0 + vpsllq $2,%xmm10,%xmm10 + vpaddq %xmm10,%xmm0,%xmm0 + + vpsrlq $26,%xmm2,%xmm12 + vpand %xmm15,%xmm2,%xmm2 + vpaddq %xmm12,%xmm3,%xmm3 + + vpsrlq $26,%xmm0,%xmm10 + vpand %xmm15,%xmm0,%xmm0 + vpaddq %xmm10,%xmm1,%xmm1 + + vpsrlq $26,%xmm3,%xmm13 + vpand %xmm15,%xmm3,%xmm3 + vpaddq %xmm13,%xmm4,%xmm4 + + ja L$oop_avx + +L$skip_loop_avx: + + + + vpshufd $0x10,%xmm14,%xmm14 + addq $32,%rdx + jnz L$ong_tail_avx + + vpaddq %xmm2,%xmm7,%xmm7 + vpaddq %xmm0,%xmm5,%xmm5 + vpaddq %xmm1,%xmm6,%xmm6 + vpaddq %xmm3,%xmm8,%xmm8 + vpaddq %xmm4,%xmm9,%xmm9 + +L$ong_tail_avx: + vmovdqa %xmm2,32(%r11) + vmovdqa %xmm0,0(%r11) + vmovdqa %xmm1,16(%r11) + vmovdqa %xmm3,48(%r11) + vmovdqa %xmm4,64(%r11) + + + + + + + + vpmuludq %xmm7,%xmm14,%xmm12 + vpmuludq %xmm5,%xmm14,%xmm10 + vpshufd $0x10,-48(%rdi),%xmm2 + vpmuludq %xmm6,%xmm14,%xmm11 + vpmuludq %xmm8,%xmm14,%xmm13 + vpmuludq %xmm9,%xmm14,%xmm14 + + vpmuludq %xmm8,%xmm2,%xmm0 + vpaddq %xmm0,%xmm14,%xmm14 + vpshufd $0x10,-32(%rdi),%xmm3 + vpmuludq %xmm7,%xmm2,%xmm1 + vpaddq %xmm1,%xmm13,%xmm13 + vpshufd $0x10,-16(%rdi),%xmm4 + vpmuludq %xmm6,%xmm2,%xmm0 + vpaddq %xmm0,%xmm12,%xmm12 + vpmuludq %xmm5,%xmm2,%xmm2 + vpaddq %xmm2,%xmm11,%xmm11 + vpmuludq %xmm9,%xmm3,%xmm3 + vpaddq %xmm3,%xmm10,%xmm10 + + vpshufd $0x10,0(%rdi),%xmm2 + vpmuludq %xmm7,%xmm4,%xmm1 + vpaddq %xmm1,%xmm14,%xmm14 + vpmuludq %xmm6,%xmm4,%xmm0 + vpaddq %xmm0,%xmm13,%xmm13 + vpshufd $0x10,16(%rdi),%xmm3 + vpmuludq %xmm5,%xmm4,%xmm4 + vpaddq %xmm4,%xmm12,%xmm12 + vpmuludq %xmm9,%xmm2,%xmm1 + vpaddq %xmm1,%xmm11,%xmm11 + vpshufd $0x10,32(%rdi),%xmm4 + vpmuludq %xmm8,%xmm2,%xmm2 + vpaddq %xmm2,%xmm10,%xmm10 + + vpmuludq %xmm6,%xmm3,%xmm0 + vpaddq %xmm0,%xmm14,%xmm14 + vpmuludq %xmm5,%xmm3,%xmm3 + vpaddq %xmm3,%xmm13,%xmm13 + vpshufd $0x10,48(%rdi),%xmm2 + vpmuludq %xmm9,%xmm4,%xmm1 + vpaddq %xmm1,%xmm12,%xmm12 + vpshufd $0x10,64(%rdi),%xmm3 + vpmuludq %xmm8,%xmm4,%xmm0 + vpaddq %xmm0,%xmm11,%xmm11 + vpmuludq %xmm7,%xmm4,%xmm4 + vpaddq %xmm4,%xmm10,%xmm10 + + vpmuludq %xmm5,%xmm2,%xmm2 + vpaddq %xmm2,%xmm14,%xmm14 + vpmuludq %xmm9,%xmm3,%xmm1 + vpaddq %xmm1,%xmm13,%xmm13 + vpmuludq %xmm8,%xmm3,%xmm0 + vpaddq %xmm0,%xmm12,%xmm12 + vpmuludq %xmm7,%xmm3,%xmm1 + vpaddq %xmm1,%xmm11,%xmm11 + vpmuludq %xmm6,%xmm3,%xmm3 + vpaddq %xmm3,%xmm10,%xmm10 + + jz L$short_tail_avx + + vmovdqu 0(%rsi),%xmm0 + vmovdqu 16(%rsi),%xmm1 + + vpsrldq $6,%xmm0,%xmm2 + vpsrldq $6,%xmm1,%xmm3 + vpunpckhqdq %xmm1,%xmm0,%xmm4 + vpunpcklqdq %xmm1,%xmm0,%xmm0 + vpunpcklqdq %xmm3,%xmm2,%xmm3 + + vpsrlq $40,%xmm4,%xmm4 + vpsrlq $26,%xmm0,%xmm1 + vpand %xmm15,%xmm0,%xmm0 + vpsrlq $4,%xmm3,%xmm2 + vpand %xmm15,%xmm1,%xmm1 + vpsrlq $30,%xmm3,%xmm3 + vpand %xmm15,%xmm2,%xmm2 + vpand %xmm15,%xmm3,%xmm3 + vpor 32(%rcx),%xmm4,%xmm4 + + vpshufd $0x32,-64(%rdi),%xmm9 + vpaddq 0(%r11),%xmm0,%xmm0 + vpaddq 16(%r11),%xmm1,%xmm1 + vpaddq 32(%r11),%xmm2,%xmm2 + vpaddq 48(%r11),%xmm3,%xmm3 + vpaddq 64(%r11),%xmm4,%xmm4 + + + + + vpmuludq %xmm0,%xmm9,%xmm5 + vpaddq %xmm5,%xmm10,%xmm10 + vpmuludq %xmm1,%xmm9,%xmm6 + vpaddq %xmm6,%xmm11,%xmm11 + vpmuludq %xmm2,%xmm9,%xmm5 + vpaddq %xmm5,%xmm12,%xmm12 + vpshufd $0x32,-48(%rdi),%xmm7 + vpmuludq %xmm3,%xmm9,%xmm6 + vpaddq %xmm6,%xmm13,%xmm13 + vpmuludq %xmm4,%xmm9,%xmm9 + vpaddq %xmm9,%xmm14,%xmm14 + + vpmuludq %xmm3,%xmm7,%xmm5 + vpaddq %xmm5,%xmm14,%xmm14 + vpshufd $0x32,-32(%rdi),%xmm8 + vpmuludq %xmm2,%xmm7,%xmm6 + vpaddq %xmm6,%xmm13,%xmm13 + vpshufd $0x32,-16(%rdi),%xmm9 + vpmuludq %xmm1,%xmm7,%xmm5 + vpaddq %xmm5,%xmm12,%xmm12 + vpmuludq %xmm0,%xmm7,%xmm7 + vpaddq %xmm7,%xmm11,%xmm11 + vpmuludq %xmm4,%xmm8,%xmm8 + vpaddq %xmm8,%xmm10,%xmm10 + + vpshufd $0x32,0(%rdi),%xmm7 + vpmuludq %xmm2,%xmm9,%xmm6 + vpaddq %xmm6,%xmm14,%xmm14 + vpmuludq %xmm1,%xmm9,%xmm5 + vpaddq %xmm5,%xmm13,%xmm13 + vpshufd $0x32,16(%rdi),%xmm8 + vpmuludq %xmm0,%xmm9,%xmm9 + vpaddq %xmm9,%xmm12,%xmm12 + vpmuludq %xmm4,%xmm7,%xmm6 + vpaddq %xmm6,%xmm11,%xmm11 + vpshufd $0x32,32(%rdi),%xmm9 + vpmuludq %xmm3,%xmm7,%xmm7 + vpaddq %xmm7,%xmm10,%xmm10 + + vpmuludq %xmm1,%xmm8,%xmm5 + vpaddq %xmm5,%xmm14,%xmm14 + vpmuludq %xmm0,%xmm8,%xmm8 + vpaddq %xmm8,%xmm13,%xmm13 + vpshufd $0x32,48(%rdi),%xmm7 + vpmuludq %xmm4,%xmm9,%xmm6 + vpaddq %xmm6,%xmm12,%xmm12 + vpshufd $0x32,64(%rdi),%xmm8 + vpmuludq %xmm3,%xmm9,%xmm5 + vpaddq %xmm5,%xmm11,%xmm11 + vpmuludq %xmm2,%xmm9,%xmm9 + vpaddq %xmm9,%xmm10,%xmm10 + + vpmuludq %xmm0,%xmm7,%xmm7 + vpaddq %xmm7,%xmm14,%xmm14 + vpmuludq %xmm4,%xmm8,%xmm6 + vpaddq %xmm6,%xmm13,%xmm13 + vpmuludq %xmm3,%xmm8,%xmm5 + vpaddq %xmm5,%xmm12,%xmm12 + vpmuludq %xmm2,%xmm8,%xmm6 + vpaddq %xmm6,%xmm11,%xmm11 + vpmuludq %xmm1,%xmm8,%xmm8 + vpaddq %xmm8,%xmm10,%xmm10 + +L$short_tail_avx: + + + + vpsrldq $8,%xmm14,%xmm9 + vpsrldq $8,%xmm13,%xmm8 + vpsrldq $8,%xmm11,%xmm6 + vpsrldq $8,%xmm10,%xmm5 + vpsrldq $8,%xmm12,%xmm7 + vpaddq %xmm8,%xmm13,%xmm13 + vpaddq %xmm9,%xmm14,%xmm14 + vpaddq %xmm5,%xmm10,%xmm10 + vpaddq %xmm6,%xmm11,%xmm11 + vpaddq %xmm7,%xmm12,%xmm12 + + + + + vpsrlq $26,%xmm13,%xmm3 + vpand %xmm15,%xmm13,%xmm13 + vpaddq %xmm3,%xmm14,%xmm14 + + vpsrlq $26,%xmm10,%xmm0 + vpand %xmm15,%xmm10,%xmm10 + vpaddq %xmm0,%xmm11,%xmm11 + + vpsrlq $26,%xmm14,%xmm4 + vpand %xmm15,%xmm14,%xmm14 + + vpsrlq $26,%xmm11,%xmm1 + vpand %xmm15,%xmm11,%xmm11 + vpaddq %xmm1,%xmm12,%xmm12 + + vpaddq %xmm4,%xmm10,%xmm10 + vpsllq $2,%xmm4,%xmm4 + vpaddq %xmm4,%xmm10,%xmm10 + + vpsrlq $26,%xmm12,%xmm2 + vpand %xmm15,%xmm12,%xmm12 + vpaddq %xmm2,%xmm13,%xmm13 + + vpsrlq $26,%xmm10,%xmm0 + vpand %xmm15,%xmm10,%xmm10 + vpaddq %xmm0,%xmm11,%xmm11 + + vpsrlq $26,%xmm13,%xmm3 + vpand %xmm15,%xmm13,%xmm13 + vpaddq %xmm3,%xmm14,%xmm14 + + vmovd %xmm10,-112(%rdi) + vmovd %xmm11,-108(%rdi) + vmovd %xmm12,-104(%rdi) + vmovd %xmm13,-100(%rdi) + vmovd %xmm14,-96(%rdi) + leaq 88(%r11),%rsp + + vzeroupper + .byte 0xf3,0xc3 + + + + +.p2align 5 +poly1305_emit_avx: + + cmpl $0,20(%rdi) + je L$emit + + movl 0(%rdi),%eax + movl 4(%rdi),%ecx + movl 8(%rdi),%r8d + movl 12(%rdi),%r11d + movl 16(%rdi),%r10d + + shlq $26,%rcx + movq %r8,%r9 + shlq $52,%r8 + addq %rcx,%rax + shrq $12,%r9 + addq %rax,%r8 + adcq $0,%r9 + + shlq $14,%r11 + movq %r10,%rax + shrq $24,%r10 + addq %r11,%r9 + shlq $40,%rax + addq %rax,%r9 + adcq $0,%r10 + + movq %r10,%rax + movq %r10,%rcx + andq $3,%r10 + shrq $2,%rax + andq $-4,%rcx + addq %rcx,%rax + addq %rax,%r8 + adcq $0,%r9 + adcq $0,%r10 + + movq %r8,%rax + addq $5,%r8 + movq %r9,%rcx + adcq $0,%r9 + adcq $0,%r10 + shrq $2,%r10 + cmovnzq %r8,%rax + cmovnzq %r9,%rcx + + addq 0(%rdx),%rax + adcq 8(%rdx),%rcx + movq %rax,0(%rsi) + movq %rcx,8(%rsi) + + .byte 0xf3,0xc3 + + + +.p2align 5 +poly1305_blocks_avx2: + + movl 20(%rdi),%r8d + cmpq $128,%rdx + jae L$blocks_avx2 + testl %r8d,%r8d + jz L$blocks + +L$blocks_avx2: + andq $-16,%rdx + jz L$no_data_avx2 + + vzeroupper + + testl %r8d,%r8d + jz L$base2_64_avx2 + + testq $63,%rdx + jz L$even_avx2 + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + +L$blocks_avx2_body: + + movq %rdx,%r15 + + movq 0(%rdi),%r8 + movq 8(%rdi),%r9 + movl 16(%rdi),%ebp + + movq 24(%rdi),%r11 + movq 32(%rdi),%r13 + + + movl %r8d,%r14d + andq $-2147483648,%r8 + movq %r9,%r12 + movl %r9d,%ebx + andq $-2147483648,%r9 + + shrq $6,%r8 + shlq $52,%r12 + addq %r8,%r14 + shrq $12,%rbx + shrq $18,%r9 + addq %r12,%r14 + adcq %r9,%rbx + + movq %rbp,%r8 + shlq $40,%r8 + shrq $24,%rbp + addq %r8,%rbx + adcq $0,%rbp + + movq $-4,%r9 + movq %rbp,%r8 + andq %rbp,%r9 + shrq $2,%r8 + andq $3,%rbp + addq %r9,%r8 + addq %r8,%r14 + adcq $0,%rbx + adcq $0,%rbp + + movq %r13,%r12 + movq %r13,%rax + shrq $2,%r13 + addq %r12,%r13 + +L$base2_26_pre_avx2: + addq 0(%rsi),%r14 + adcq 8(%rsi),%rbx + leaq 16(%rsi),%rsi + adcq %rcx,%rbp + subq $16,%r15 + + call __poly1305_block + movq %r12,%rax + + testq $63,%r15 + jnz L$base2_26_pre_avx2 + + testq %rcx,%rcx + jz L$store_base2_64_avx2 + + + movq %r14,%rax + movq %r14,%rdx + shrq $52,%r14 + movq %rbx,%r11 + movq %rbx,%r12 + shrq $26,%rdx + andq $0x3ffffff,%rax + shlq $12,%r11 + andq $0x3ffffff,%rdx + shrq $14,%rbx + orq %r11,%r14 + shlq $24,%rbp + andq $0x3ffffff,%r14 + shrq $40,%r12 + andq $0x3ffffff,%rbx + orq %r12,%rbp + + testq %r15,%r15 + jz L$store_base2_26_avx2 + + vmovd %eax,%xmm0 + vmovd %edx,%xmm1 + vmovd %r14d,%xmm2 + vmovd %ebx,%xmm3 + vmovd %ebp,%xmm4 + jmp L$proceed_avx2 + +.p2align 5 +L$store_base2_64_avx2: + movq %r14,0(%rdi) + movq %rbx,8(%rdi) + movq %rbp,16(%rdi) + jmp L$done_avx2 + +.p2align 4 +L$store_base2_26_avx2: + movl %eax,0(%rdi) + movl %edx,4(%rdi) + movl %r14d,8(%rdi) + movl %ebx,12(%rdi) + movl %ebp,16(%rdi) +.p2align 4 +L$done_avx2: + movq 0(%rsp),%r15 + + movq 8(%rsp),%r14 + + movq 16(%rsp),%r13 + + movq 24(%rsp),%r12 + + movq 32(%rsp),%rbp + + movq 40(%rsp),%rbx + + leaq 48(%rsp),%rsp + +L$no_data_avx2: +L$blocks_avx2_epilogue: + .byte 0xf3,0xc3 + + +.p2align 5 +L$base2_64_avx2: + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + +L$base2_64_avx2_body: + + movq %rdx,%r15 + + movq 24(%rdi),%r11 + movq 32(%rdi),%r13 + + movq 0(%rdi),%r14 + movq 8(%rdi),%rbx + movl 16(%rdi),%ebp + + movq %r13,%r12 + movq %r13,%rax + shrq $2,%r13 + addq %r12,%r13 + + testq $63,%rdx + jz L$init_avx2 + +L$base2_64_pre_avx2: + addq 0(%rsi),%r14 + adcq 8(%rsi),%rbx + leaq 16(%rsi),%rsi + adcq %rcx,%rbp + subq $16,%r15 + + call __poly1305_block + movq %r12,%rax + + testq $63,%r15 + jnz L$base2_64_pre_avx2 + +L$init_avx2: + + movq %r14,%rax + movq %r14,%rdx + shrq $52,%r14 + movq %rbx,%r8 + movq %rbx,%r9 + shrq $26,%rdx + andq $0x3ffffff,%rax + shlq $12,%r8 + andq $0x3ffffff,%rdx + shrq $14,%rbx + orq %r8,%r14 + shlq $24,%rbp + andq $0x3ffffff,%r14 + shrq $40,%r9 + andq $0x3ffffff,%rbx + orq %r9,%rbp + + vmovd %eax,%xmm0 + vmovd %edx,%xmm1 + vmovd %r14d,%xmm2 + vmovd %ebx,%xmm3 + vmovd %ebp,%xmm4 + movl $1,20(%rdi) + + call __poly1305_init_avx + +L$proceed_avx2: + movq %r15,%rdx + movl _OPENSSL_ia32cap_P+8(%rip),%r10d + movl $3221291008,%r11d + + movq 0(%rsp),%r15 + + movq 8(%rsp),%r14 + + movq 16(%rsp),%r13 + + movq 24(%rsp),%r12 + + movq 32(%rsp),%rbp + + movq 40(%rsp),%rbx + + leaq 48(%rsp),%rax + leaq 48(%rsp),%rsp + +L$base2_64_avx2_epilogue: + jmp L$do_avx2 + + +.p2align 5 +L$even_avx2: + + movl _OPENSSL_ia32cap_P+8(%rip),%r10d + vmovd 0(%rdi),%xmm0 + vmovd 4(%rdi),%xmm1 + vmovd 8(%rdi),%xmm2 + vmovd 12(%rdi),%xmm3 + vmovd 16(%rdi),%xmm4 + +L$do_avx2: + leaq -8(%rsp),%r11 + + subq $0x128,%rsp + leaq L$const(%rip),%rcx + leaq 48+64(%rdi),%rdi + vmovdqa 96(%rcx),%ymm7 + + + vmovdqu -64(%rdi),%xmm9 + andq $-512,%rsp + vmovdqu -48(%rdi),%xmm10 + vmovdqu -32(%rdi),%xmm6 + vmovdqu -16(%rdi),%xmm11 + vmovdqu 0(%rdi),%xmm12 + vmovdqu 16(%rdi),%xmm13 + leaq 144(%rsp),%rax + vmovdqu 32(%rdi),%xmm14 + vpermd %ymm9,%ymm7,%ymm9 + vmovdqu 48(%rdi),%xmm15 + vpermd %ymm10,%ymm7,%ymm10 + vmovdqu 64(%rdi),%xmm5 + vpermd %ymm6,%ymm7,%ymm6 + vmovdqa %ymm9,0(%rsp) + vpermd %ymm11,%ymm7,%ymm11 + vmovdqa %ymm10,32-144(%rax) + vpermd %ymm12,%ymm7,%ymm12 + vmovdqa %ymm6,64-144(%rax) + vpermd %ymm13,%ymm7,%ymm13 + vmovdqa %ymm11,96-144(%rax) + vpermd %ymm14,%ymm7,%ymm14 + vmovdqa %ymm12,128-144(%rax) + vpermd %ymm15,%ymm7,%ymm15 + vmovdqa %ymm13,160-144(%rax) + vpermd %ymm5,%ymm7,%ymm5 + vmovdqa %ymm14,192-144(%rax) + vmovdqa %ymm15,224-144(%rax) + vmovdqa %ymm5,256-144(%rax) + vmovdqa 64(%rcx),%ymm5 + + + + vmovdqu 0(%rsi),%xmm7 + vmovdqu 16(%rsi),%xmm8 + vinserti128 $1,32(%rsi),%ymm7,%ymm7 + vinserti128 $1,48(%rsi),%ymm8,%ymm8 + leaq 64(%rsi),%rsi + + vpsrldq $6,%ymm7,%ymm9 + vpsrldq $6,%ymm8,%ymm10 + vpunpckhqdq %ymm8,%ymm7,%ymm6 + vpunpcklqdq %ymm10,%ymm9,%ymm9 + vpunpcklqdq %ymm8,%ymm7,%ymm7 + + vpsrlq $30,%ymm9,%ymm10 + vpsrlq $4,%ymm9,%ymm9 + vpsrlq $26,%ymm7,%ymm8 + vpsrlq $40,%ymm6,%ymm6 + vpand %ymm5,%ymm9,%ymm9 + vpand %ymm5,%ymm7,%ymm7 + vpand %ymm5,%ymm8,%ymm8 + vpand %ymm5,%ymm10,%ymm10 + vpor 32(%rcx),%ymm6,%ymm6 + + vpaddq %ymm2,%ymm9,%ymm2 + subq $64,%rdx + jz L$tail_avx2 + jmp L$oop_avx2 + +.p2align 5 +L$oop_avx2: + + + + + + + + + vpaddq %ymm0,%ymm7,%ymm0 + vmovdqa 0(%rsp),%ymm7 + vpaddq %ymm1,%ymm8,%ymm1 + vmovdqa 32(%rsp),%ymm8 + vpaddq %ymm3,%ymm10,%ymm3 + vmovdqa 96(%rsp),%ymm9 + vpaddq %ymm4,%ymm6,%ymm4 + vmovdqa 48(%rax),%ymm10 + vmovdqa 112(%rax),%ymm5 + + + + + + + + + + + + + + + + + vpmuludq %ymm2,%ymm7,%ymm13 + vpmuludq %ymm2,%ymm8,%ymm14 + vpmuludq %ymm2,%ymm9,%ymm15 + vpmuludq %ymm2,%ymm10,%ymm11 + vpmuludq %ymm2,%ymm5,%ymm12 + + vpmuludq %ymm0,%ymm8,%ymm6 + vpmuludq %ymm1,%ymm8,%ymm2 + vpaddq %ymm6,%ymm12,%ymm12 + vpaddq %ymm2,%ymm13,%ymm13 + vpmuludq %ymm3,%ymm8,%ymm6 + vpmuludq 64(%rsp),%ymm4,%ymm2 + vpaddq %ymm6,%ymm15,%ymm15 + vpaddq %ymm2,%ymm11,%ymm11 + vmovdqa -16(%rax),%ymm8 + + vpmuludq %ymm0,%ymm7,%ymm6 + vpmuludq %ymm1,%ymm7,%ymm2 + vpaddq %ymm6,%ymm11,%ymm11 + vpaddq %ymm2,%ymm12,%ymm12 + vpmuludq %ymm3,%ymm7,%ymm6 + vpmuludq %ymm4,%ymm7,%ymm2 + vmovdqu 0(%rsi),%xmm7 + vpaddq %ymm6,%ymm14,%ymm14 + vpaddq %ymm2,%ymm15,%ymm15 + vinserti128 $1,32(%rsi),%ymm7,%ymm7 + + vpmuludq %ymm3,%ymm8,%ymm6 + vpmuludq %ymm4,%ymm8,%ymm2 + vmovdqu 16(%rsi),%xmm8 + vpaddq %ymm6,%ymm11,%ymm11 + vpaddq %ymm2,%ymm12,%ymm12 + vmovdqa 16(%rax),%ymm2 + vpmuludq %ymm1,%ymm9,%ymm6 + vpmuludq %ymm0,%ymm9,%ymm9 + vpaddq %ymm6,%ymm14,%ymm14 + vpaddq %ymm9,%ymm13,%ymm13 + vinserti128 $1,48(%rsi),%ymm8,%ymm8 + leaq 64(%rsi),%rsi + + vpmuludq %ymm1,%ymm2,%ymm6 + vpmuludq %ymm0,%ymm2,%ymm2 + vpsrldq $6,%ymm7,%ymm9 + vpaddq %ymm6,%ymm15,%ymm15 + vpaddq %ymm2,%ymm14,%ymm14 + vpmuludq %ymm3,%ymm10,%ymm6 + vpmuludq %ymm4,%ymm10,%ymm2 + vpsrldq $6,%ymm8,%ymm10 + vpaddq %ymm6,%ymm12,%ymm12 + vpaddq %ymm2,%ymm13,%ymm13 + vpunpckhqdq %ymm8,%ymm7,%ymm6 + + vpmuludq %ymm3,%ymm5,%ymm3 + vpmuludq %ymm4,%ymm5,%ymm4 + vpunpcklqdq %ymm8,%ymm7,%ymm7 + vpaddq %ymm3,%ymm13,%ymm2 + vpaddq %ymm4,%ymm14,%ymm3 + vpunpcklqdq %ymm10,%ymm9,%ymm10 + vpmuludq 80(%rax),%ymm0,%ymm4 + vpmuludq %ymm1,%ymm5,%ymm0 + vmovdqa 64(%rcx),%ymm5 + vpaddq %ymm4,%ymm15,%ymm4 + vpaddq %ymm0,%ymm11,%ymm0 + + + + + vpsrlq $26,%ymm3,%ymm14 + vpand %ymm5,%ymm3,%ymm3 + vpaddq %ymm14,%ymm4,%ymm4 + + vpsrlq $26,%ymm0,%ymm11 + vpand %ymm5,%ymm0,%ymm0 + vpaddq %ymm11,%ymm12,%ymm1 + + vpsrlq $26,%ymm4,%ymm15 + vpand %ymm5,%ymm4,%ymm4 + + vpsrlq $4,%ymm10,%ymm9 + + vpsrlq $26,%ymm1,%ymm12 + vpand %ymm5,%ymm1,%ymm1 + vpaddq %ymm12,%ymm2,%ymm2 + + vpaddq %ymm15,%ymm0,%ymm0 + vpsllq $2,%ymm15,%ymm15 + vpaddq %ymm15,%ymm0,%ymm0 + + vpand %ymm5,%ymm9,%ymm9 + vpsrlq $26,%ymm7,%ymm8 + + vpsrlq $26,%ymm2,%ymm13 + vpand %ymm5,%ymm2,%ymm2 + vpaddq %ymm13,%ymm3,%ymm3 + + vpaddq %ymm9,%ymm2,%ymm2 + vpsrlq $30,%ymm10,%ymm10 + + vpsrlq $26,%ymm0,%ymm11 + vpand %ymm5,%ymm0,%ymm0 + vpaddq %ymm11,%ymm1,%ymm1 + + vpsrlq $40,%ymm6,%ymm6 + + vpsrlq $26,%ymm3,%ymm14 + vpand %ymm5,%ymm3,%ymm3 + vpaddq %ymm14,%ymm4,%ymm4 + + vpand %ymm5,%ymm7,%ymm7 + vpand %ymm5,%ymm8,%ymm8 + vpand %ymm5,%ymm10,%ymm10 + vpor 32(%rcx),%ymm6,%ymm6 + + subq $64,%rdx + jnz L$oop_avx2 + +.byte 0x66,0x90 +L$tail_avx2: + + + + + + + + vpaddq %ymm0,%ymm7,%ymm0 + vmovdqu 4(%rsp),%ymm7 + vpaddq %ymm1,%ymm8,%ymm1 + vmovdqu 36(%rsp),%ymm8 + vpaddq %ymm3,%ymm10,%ymm3 + vmovdqu 100(%rsp),%ymm9 + vpaddq %ymm4,%ymm6,%ymm4 + vmovdqu 52(%rax),%ymm10 + vmovdqu 116(%rax),%ymm5 + + vpmuludq %ymm2,%ymm7,%ymm13 + vpmuludq %ymm2,%ymm8,%ymm14 + vpmuludq %ymm2,%ymm9,%ymm15 + vpmuludq %ymm2,%ymm10,%ymm11 + vpmuludq %ymm2,%ymm5,%ymm12 + + vpmuludq %ymm0,%ymm8,%ymm6 + vpmuludq %ymm1,%ymm8,%ymm2 + vpaddq %ymm6,%ymm12,%ymm12 + vpaddq %ymm2,%ymm13,%ymm13 + vpmuludq %ymm3,%ymm8,%ymm6 + vpmuludq 68(%rsp),%ymm4,%ymm2 + vpaddq %ymm6,%ymm15,%ymm15 + vpaddq %ymm2,%ymm11,%ymm11 + + vpmuludq %ymm0,%ymm7,%ymm6 + vpmuludq %ymm1,%ymm7,%ymm2 + vpaddq %ymm6,%ymm11,%ymm11 + vmovdqu -12(%rax),%ymm8 + vpaddq %ymm2,%ymm12,%ymm12 + vpmuludq %ymm3,%ymm7,%ymm6 + vpmuludq %ymm4,%ymm7,%ymm2 + vpaddq %ymm6,%ymm14,%ymm14 + vpaddq %ymm2,%ymm15,%ymm15 + + vpmuludq %ymm3,%ymm8,%ymm6 + vpmuludq %ymm4,%ymm8,%ymm2 + vpaddq %ymm6,%ymm11,%ymm11 + vpaddq %ymm2,%ymm12,%ymm12 + vmovdqu 20(%rax),%ymm2 + vpmuludq %ymm1,%ymm9,%ymm6 + vpmuludq %ymm0,%ymm9,%ymm9 + vpaddq %ymm6,%ymm14,%ymm14 + vpaddq %ymm9,%ymm13,%ymm13 + + vpmuludq %ymm1,%ymm2,%ymm6 + vpmuludq %ymm0,%ymm2,%ymm2 + vpaddq %ymm6,%ymm15,%ymm15 + vpaddq %ymm2,%ymm14,%ymm14 + vpmuludq %ymm3,%ymm10,%ymm6 + vpmuludq %ymm4,%ymm10,%ymm2 + vpaddq %ymm6,%ymm12,%ymm12 + vpaddq %ymm2,%ymm13,%ymm13 + + vpmuludq %ymm3,%ymm5,%ymm3 + vpmuludq %ymm4,%ymm5,%ymm4 + vpaddq %ymm3,%ymm13,%ymm2 + vpaddq %ymm4,%ymm14,%ymm3 + vpmuludq 84(%rax),%ymm0,%ymm4 + vpmuludq %ymm1,%ymm5,%ymm0 + vmovdqa 64(%rcx),%ymm5 + vpaddq %ymm4,%ymm15,%ymm4 + vpaddq %ymm0,%ymm11,%ymm0 + + + + + vpsrldq $8,%ymm12,%ymm8 + vpsrldq $8,%ymm2,%ymm9 + vpsrldq $8,%ymm3,%ymm10 + vpsrldq $8,%ymm4,%ymm6 + vpsrldq $8,%ymm0,%ymm7 + vpaddq %ymm8,%ymm12,%ymm12 + vpaddq %ymm9,%ymm2,%ymm2 + vpaddq %ymm10,%ymm3,%ymm3 + vpaddq %ymm6,%ymm4,%ymm4 + vpaddq %ymm7,%ymm0,%ymm0 + + vpermq $0x2,%ymm3,%ymm10 + vpermq $0x2,%ymm4,%ymm6 + vpermq $0x2,%ymm0,%ymm7 + vpermq $0x2,%ymm12,%ymm8 + vpermq $0x2,%ymm2,%ymm9 + vpaddq %ymm10,%ymm3,%ymm3 + vpaddq %ymm6,%ymm4,%ymm4 + vpaddq %ymm7,%ymm0,%ymm0 + vpaddq %ymm8,%ymm12,%ymm12 + vpaddq %ymm9,%ymm2,%ymm2 + + + + + vpsrlq $26,%ymm3,%ymm14 + vpand %ymm5,%ymm3,%ymm3 + vpaddq %ymm14,%ymm4,%ymm4 + + vpsrlq $26,%ymm0,%ymm11 + vpand %ymm5,%ymm0,%ymm0 + vpaddq %ymm11,%ymm12,%ymm1 + + vpsrlq $26,%ymm4,%ymm15 + vpand %ymm5,%ymm4,%ymm4 + + vpsrlq $26,%ymm1,%ymm12 + vpand %ymm5,%ymm1,%ymm1 + vpaddq %ymm12,%ymm2,%ymm2 + + vpaddq %ymm15,%ymm0,%ymm0 + vpsllq $2,%ymm15,%ymm15 + vpaddq %ymm15,%ymm0,%ymm0 + + vpsrlq $26,%ymm2,%ymm13 + vpand %ymm5,%ymm2,%ymm2 + vpaddq %ymm13,%ymm3,%ymm3 + + vpsrlq $26,%ymm0,%ymm11 + vpand %ymm5,%ymm0,%ymm0 + vpaddq %ymm11,%ymm1,%ymm1 + + vpsrlq $26,%ymm3,%ymm14 + vpand %ymm5,%ymm3,%ymm3 + vpaddq %ymm14,%ymm4,%ymm4 + + vmovd %xmm0,-112(%rdi) + vmovd %xmm1,-108(%rdi) + vmovd %xmm2,-104(%rdi) + vmovd %xmm3,-100(%rdi) + vmovd %xmm4,-96(%rdi) + leaq 8(%r11),%rsp + + vzeroupper + .byte 0xf3,0xc3 + + +.p2align 6 +L$const: +L$mask24: +.long 0x0ffffff,0,0x0ffffff,0,0x0ffffff,0,0x0ffffff,0 +L$129: +.long 16777216,0,16777216,0,16777216,0,16777216,0 +L$mask26: +.long 0x3ffffff,0,0x3ffffff,0,0x3ffffff,0,0x3ffffff,0 +L$permd_avx2: +.long 2,2,2,3,2,0,2,1 +L$permd_avx512: +.long 0,0,0,1, 0,2,0,3, 0,4,0,5, 0,6,0,7 + +L$2_44_inp_permd: +.long 0,1,1,2,2,3,7,7 +L$2_44_inp_shift: +.quad 0,12,24,64 +L$2_44_mask: +.quad 0xfffffffffff,0xfffffffffff,0x3ffffffffff,0xffffffffffffffff +L$2_44_shift_rgt: +.quad 44,44,42,64 +L$2_44_shift_lft: +.quad 8,8,10,64 + +.p2align 6 +L$x_mask44: +.quad 0xfffffffffff,0xfffffffffff,0xfffffffffff,0xfffffffffff +.quad 0xfffffffffff,0xfffffffffff,0xfffffffffff,0xfffffffffff +L$x_mask42: +.quad 0x3ffffffffff,0x3ffffffffff,0x3ffffffffff,0x3ffffffffff +.quad 0x3ffffffffff,0x3ffffffffff,0x3ffffffffff,0x3ffffffffff +.byte 80,111,108,121,49,51,48,53,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.p2align 4 +.globl _xor128_encrypt_n_pad + +.p2align 4 +_xor128_encrypt_n_pad: + + subq %rdx,%rsi + subq %rdx,%rdi + movq %rcx,%r10 + shrq $4,%rcx + jz L$tail_enc + nop +L$oop_enc_xmm: + movdqu (%rsi,%rdx,1),%xmm0 + pxor (%rdx),%xmm0 + movdqu %xmm0,(%rdi,%rdx,1) + movdqa %xmm0,(%rdx) + leaq 16(%rdx),%rdx + decq %rcx + jnz L$oop_enc_xmm + + andq $15,%r10 + jz L$done_enc + +L$tail_enc: + movq $16,%rcx + subq %r10,%rcx + xorl %eax,%eax +L$oop_enc_byte: + movb (%rsi,%rdx,1),%al + xorb (%rdx),%al + movb %al,(%rdi,%rdx,1) + movb %al,(%rdx) + leaq 1(%rdx),%rdx + decq %r10 + jnz L$oop_enc_byte + + xorl %eax,%eax +L$oop_enc_pad: + movb %al,(%rdx) + leaq 1(%rdx),%rdx + decq %rcx + jnz L$oop_enc_pad + +L$done_enc: + movq %rdx,%rax + .byte 0xf3,0xc3 + + + +.globl _xor128_decrypt_n_pad + +.p2align 4 +_xor128_decrypt_n_pad: + + subq %rdx,%rsi + subq %rdx,%rdi + movq %rcx,%r10 + shrq $4,%rcx + jz L$tail_dec + nop +L$oop_dec_xmm: + movdqu (%rsi,%rdx,1),%xmm0 + movdqa (%rdx),%xmm1 + pxor %xmm0,%xmm1 + movdqu %xmm1,(%rdi,%rdx,1) + movdqa %xmm0,(%rdx) + leaq 16(%rdx),%rdx + decq %rcx + jnz L$oop_dec_xmm + + pxor %xmm1,%xmm1 + andq $15,%r10 + jz L$done_dec + +L$tail_dec: + movq $16,%rcx + subq %r10,%rcx + xorl %eax,%eax + xorq %r11,%r11 +L$oop_dec_byte: + movb (%rsi,%rdx,1),%r11b + movb (%rdx),%al + xorb %r11b,%al + movb %al,(%rdi,%rdx,1) + movb %r11b,(%rdx) + leaq 1(%rdx),%rdx + decq %r10 + jnz L$oop_dec_byte + + xorl %eax,%eax +L$oop_dec_pad: + movb %al,(%rdx) + leaq 1(%rdx),%rdx + decq %rcx + jnz L$oop_dec_pad + +L$done_dec: + movq %rdx,%rax + .byte 0xf3,0xc3 + + diff --git a/vere/ext/openssl/gen/macos-x86_64/crypto/rc4/rc4-md5-x86_64.s b/vere/ext/openssl/gen/macos-x86_64/crypto/rc4/rc4-md5-x86_64.s new file mode 100644 index 0000000..435976a --- /dev/null +++ b/vere/ext/openssl/gen/macos-x86_64/crypto/rc4/rc4-md5-x86_64.s @@ -0,0 +1,1275 @@ +.text +.p2align 4 + +.globl _rc4_md5_enc + +_rc4_md5_enc: + + cmpq $0,%r9 + je L$abort + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + subq $40,%rsp + +L$body: + movq %rcx,%r11 + movq %r9,%r12 + movq %rsi,%r13 + movq %rdx,%r14 + movq %r8,%r15 + xorq %rbp,%rbp + xorq %rcx,%rcx + + leaq 8(%rdi),%rdi + movb -8(%rdi),%bpl + movb -4(%rdi),%cl + + incb %bpl + subq %r13,%r14 + movl (%rdi,%rbp,4),%eax + addb %al,%cl + leaq (%rdi,%rbp,4),%rsi + shlq $6,%r12 + addq %r15,%r12 + movq %r12,16(%rsp) + + movq %r11,24(%rsp) + movl 0(%r11),%r8d + movl 4(%r11),%r9d + movl 8(%r11),%r10d + movl 12(%r11),%r11d + jmp L$oop + +.p2align 4 +L$oop: + movl %r8d,0(%rsp) + movl %r9d,4(%rsp) + movl %r10d,8(%rsp) + movl %r11d,%r12d + movl %r11d,12(%rsp) + pxor %xmm0,%xmm0 + movl (%rdi,%rcx,4),%edx + xorl %r10d,%r12d + movl %eax,(%rdi,%rcx,4) + andl %r9d,%r12d + addl 0(%r15),%r8d + addb %dl,%al + movl 4(%rsi),%ebx + addl $3614090360,%r8d + xorl %r11d,%r12d + movzbl %al,%eax + movl %edx,0(%rsi) + addl %r12d,%r8d + addb %bl,%cl + roll $7,%r8d + movl %r10d,%r12d + movd (%rdi,%rax,4),%xmm0 + + addl %r9d,%r8d + pxor %xmm1,%xmm1 + movl (%rdi,%rcx,4),%edx + xorl %r9d,%r12d + movl %ebx,(%rdi,%rcx,4) + andl %r8d,%r12d + addl 4(%r15),%r11d + addb %dl,%bl + movl 8(%rsi),%eax + addl $3905402710,%r11d + xorl %r10d,%r12d + movzbl %bl,%ebx + movl %edx,4(%rsi) + addl %r12d,%r11d + addb %al,%cl + roll $12,%r11d + movl %r9d,%r12d + movd (%rdi,%rbx,4),%xmm1 + + addl %r8d,%r11d + movl (%rdi,%rcx,4),%edx + xorl %r8d,%r12d + movl %eax,(%rdi,%rcx,4) + andl %r11d,%r12d + addl 8(%r15),%r10d + addb %dl,%al + movl 12(%rsi),%ebx + addl $606105819,%r10d + xorl %r9d,%r12d + movzbl %al,%eax + movl %edx,8(%rsi) + addl %r12d,%r10d + addb %bl,%cl + roll $17,%r10d + movl %r8d,%r12d + pinsrw $1,(%rdi,%rax,4),%xmm0 + + addl %r11d,%r10d + movl (%rdi,%rcx,4),%edx + xorl %r11d,%r12d + movl %ebx,(%rdi,%rcx,4) + andl %r10d,%r12d + addl 12(%r15),%r9d + addb %dl,%bl + movl 16(%rsi),%eax + addl $3250441966,%r9d + xorl %r8d,%r12d + movzbl %bl,%ebx + movl %edx,12(%rsi) + addl %r12d,%r9d + addb %al,%cl + roll $22,%r9d + movl %r11d,%r12d + pinsrw $1,(%rdi,%rbx,4),%xmm1 + + addl %r10d,%r9d + movl (%rdi,%rcx,4),%edx + xorl %r10d,%r12d + movl %eax,(%rdi,%rcx,4) + andl %r9d,%r12d + addl 16(%r15),%r8d + addb %dl,%al + movl 20(%rsi),%ebx + addl $4118548399,%r8d + xorl %r11d,%r12d + movzbl %al,%eax + movl %edx,16(%rsi) + addl %r12d,%r8d + addb %bl,%cl + roll $7,%r8d + movl %r10d,%r12d + pinsrw $2,(%rdi,%rax,4),%xmm0 + + addl %r9d,%r8d + movl (%rdi,%rcx,4),%edx + xorl %r9d,%r12d + movl %ebx,(%rdi,%rcx,4) + andl %r8d,%r12d + addl 20(%r15),%r11d + addb %dl,%bl + movl 24(%rsi),%eax + addl $1200080426,%r11d + xorl %r10d,%r12d + movzbl %bl,%ebx + movl %edx,20(%rsi) + addl %r12d,%r11d + addb %al,%cl + roll $12,%r11d + movl %r9d,%r12d + pinsrw $2,(%rdi,%rbx,4),%xmm1 + + addl %r8d,%r11d + movl (%rdi,%rcx,4),%edx + xorl %r8d,%r12d + movl %eax,(%rdi,%rcx,4) + andl %r11d,%r12d + addl 24(%r15),%r10d + addb %dl,%al + movl 28(%rsi),%ebx + addl $2821735955,%r10d + xorl %r9d,%r12d + movzbl %al,%eax + movl %edx,24(%rsi) + addl %r12d,%r10d + addb %bl,%cl + roll $17,%r10d + movl %r8d,%r12d + pinsrw $3,(%rdi,%rax,4),%xmm0 + + addl %r11d,%r10d + movl (%rdi,%rcx,4),%edx + xorl %r11d,%r12d + movl %ebx,(%rdi,%rcx,4) + andl %r10d,%r12d + addl 28(%r15),%r9d + addb %dl,%bl + movl 32(%rsi),%eax + addl $4249261313,%r9d + xorl %r8d,%r12d + movzbl %bl,%ebx + movl %edx,28(%rsi) + addl %r12d,%r9d + addb %al,%cl + roll $22,%r9d + movl %r11d,%r12d + pinsrw $3,(%rdi,%rbx,4),%xmm1 + + addl %r10d,%r9d + movl (%rdi,%rcx,4),%edx + xorl %r10d,%r12d + movl %eax,(%rdi,%rcx,4) + andl %r9d,%r12d + addl 32(%r15),%r8d + addb %dl,%al + movl 36(%rsi),%ebx + addl $1770035416,%r8d + xorl %r11d,%r12d + movzbl %al,%eax + movl %edx,32(%rsi) + addl %r12d,%r8d + addb %bl,%cl + roll $7,%r8d + movl %r10d,%r12d + pinsrw $4,(%rdi,%rax,4),%xmm0 + + addl %r9d,%r8d + movl (%rdi,%rcx,4),%edx + xorl %r9d,%r12d + movl %ebx,(%rdi,%rcx,4) + andl %r8d,%r12d + addl 36(%r15),%r11d + addb %dl,%bl + movl 40(%rsi),%eax + addl $2336552879,%r11d + xorl %r10d,%r12d + movzbl %bl,%ebx + movl %edx,36(%rsi) + addl %r12d,%r11d + addb %al,%cl + roll $12,%r11d + movl %r9d,%r12d + pinsrw $4,(%rdi,%rbx,4),%xmm1 + + addl %r8d,%r11d + movl (%rdi,%rcx,4),%edx + xorl %r8d,%r12d + movl %eax,(%rdi,%rcx,4) + andl %r11d,%r12d + addl 40(%r15),%r10d + addb %dl,%al + movl 44(%rsi),%ebx + addl $4294925233,%r10d + xorl %r9d,%r12d + movzbl %al,%eax + movl %edx,40(%rsi) + addl %r12d,%r10d + addb %bl,%cl + roll $17,%r10d + movl %r8d,%r12d + pinsrw $5,(%rdi,%rax,4),%xmm0 + + addl %r11d,%r10d + movl (%rdi,%rcx,4),%edx + xorl %r11d,%r12d + movl %ebx,(%rdi,%rcx,4) + andl %r10d,%r12d + addl 44(%r15),%r9d + addb %dl,%bl + movl 48(%rsi),%eax + addl $2304563134,%r9d + xorl %r8d,%r12d + movzbl %bl,%ebx + movl %edx,44(%rsi) + addl %r12d,%r9d + addb %al,%cl + roll $22,%r9d + movl %r11d,%r12d + pinsrw $5,(%rdi,%rbx,4),%xmm1 + + addl %r10d,%r9d + movl (%rdi,%rcx,4),%edx + xorl %r10d,%r12d + movl %eax,(%rdi,%rcx,4) + andl %r9d,%r12d + addl 48(%r15),%r8d + addb %dl,%al + movl 52(%rsi),%ebx + addl $1804603682,%r8d + xorl %r11d,%r12d + movzbl %al,%eax + movl %edx,48(%rsi) + addl %r12d,%r8d + addb %bl,%cl + roll $7,%r8d + movl %r10d,%r12d + pinsrw $6,(%rdi,%rax,4),%xmm0 + + addl %r9d,%r8d + movl (%rdi,%rcx,4),%edx + xorl %r9d,%r12d + movl %ebx,(%rdi,%rcx,4) + andl %r8d,%r12d + addl 52(%r15),%r11d + addb %dl,%bl + movl 56(%rsi),%eax + addl $4254626195,%r11d + xorl %r10d,%r12d + movzbl %bl,%ebx + movl %edx,52(%rsi) + addl %r12d,%r11d + addb %al,%cl + roll $12,%r11d + movl %r9d,%r12d + pinsrw $6,(%rdi,%rbx,4),%xmm1 + + addl %r8d,%r11d + movl (%rdi,%rcx,4),%edx + xorl %r8d,%r12d + movl %eax,(%rdi,%rcx,4) + andl %r11d,%r12d + addl 56(%r15),%r10d + addb %dl,%al + movl 60(%rsi),%ebx + addl $2792965006,%r10d + xorl %r9d,%r12d + movzbl %al,%eax + movl %edx,56(%rsi) + addl %r12d,%r10d + addb %bl,%cl + roll $17,%r10d + movl %r8d,%r12d + pinsrw $7,(%rdi,%rax,4),%xmm0 + + addl %r11d,%r10d + movdqu (%r13),%xmm2 + movl (%rdi,%rcx,4),%edx + xorl %r11d,%r12d + movl %ebx,(%rdi,%rcx,4) + andl %r10d,%r12d + addl 60(%r15),%r9d + addb %dl,%bl + movl 64(%rsi),%eax + addl $1236535329,%r9d + xorl %r8d,%r12d + movzbl %bl,%ebx + movl %edx,60(%rsi) + addl %r12d,%r9d + addb %al,%cl + roll $22,%r9d + movl %r10d,%r12d + pinsrw $7,(%rdi,%rbx,4),%xmm1 + + addl %r10d,%r9d + psllq $8,%xmm1 + pxor %xmm0,%xmm2 + pxor %xmm1,%xmm2 + pxor %xmm0,%xmm0 + movl (%rdi,%rcx,4),%edx + xorl %r9d,%r12d + movl %eax,(%rdi,%rcx,4) + andl %r11d,%r12d + addl 4(%r15),%r8d + addb %dl,%al + movl 68(%rsi),%ebx + addl $4129170786,%r8d + xorl %r10d,%r12d + movzbl %al,%eax + movl %edx,64(%rsi) + addl %r12d,%r8d + addb %bl,%cl + roll $5,%r8d + movl %r9d,%r12d + movd (%rdi,%rax,4),%xmm0 + + addl %r9d,%r8d + pxor %xmm1,%xmm1 + movl (%rdi,%rcx,4),%edx + xorl %r8d,%r12d + movl %ebx,(%rdi,%rcx,4) + andl %r10d,%r12d + addl 24(%r15),%r11d + addb %dl,%bl + movl 72(%rsi),%eax + addl $3225465664,%r11d + xorl %r9d,%r12d + movzbl %bl,%ebx + movl %edx,68(%rsi) + addl %r12d,%r11d + addb %al,%cl + roll $9,%r11d + movl %r8d,%r12d + movd (%rdi,%rbx,4),%xmm1 + + addl %r8d,%r11d + movl (%rdi,%rcx,4),%edx + xorl %r11d,%r12d + movl %eax,(%rdi,%rcx,4) + andl %r9d,%r12d + addl 44(%r15),%r10d + addb %dl,%al + movl 76(%rsi),%ebx + addl $643717713,%r10d + xorl %r8d,%r12d + movzbl %al,%eax + movl %edx,72(%rsi) + addl %r12d,%r10d + addb %bl,%cl + roll $14,%r10d + movl %r11d,%r12d + pinsrw $1,(%rdi,%rax,4),%xmm0 + + addl %r11d,%r10d + movl (%rdi,%rcx,4),%edx + xorl %r10d,%r12d + movl %ebx,(%rdi,%rcx,4) + andl %r8d,%r12d + addl 0(%r15),%r9d + addb %dl,%bl + movl 80(%rsi),%eax + addl $3921069994,%r9d + xorl %r11d,%r12d + movzbl %bl,%ebx + movl %edx,76(%rsi) + addl %r12d,%r9d + addb %al,%cl + roll $20,%r9d + movl %r10d,%r12d + pinsrw $1,(%rdi,%rbx,4),%xmm1 + + addl %r10d,%r9d + movl (%rdi,%rcx,4),%edx + xorl %r9d,%r12d + movl %eax,(%rdi,%rcx,4) + andl %r11d,%r12d + addl 20(%r15),%r8d + addb %dl,%al + movl 84(%rsi),%ebx + addl $3593408605,%r8d + xorl %r10d,%r12d + movzbl %al,%eax + movl %edx,80(%rsi) + addl %r12d,%r8d + addb %bl,%cl + roll $5,%r8d + movl %r9d,%r12d + pinsrw $2,(%rdi,%rax,4),%xmm0 + + addl %r9d,%r8d + movl (%rdi,%rcx,4),%edx + xorl %r8d,%r12d + movl %ebx,(%rdi,%rcx,4) + andl %r10d,%r12d + addl 40(%r15),%r11d + addb %dl,%bl + movl 88(%rsi),%eax + addl $38016083,%r11d + xorl %r9d,%r12d + movzbl %bl,%ebx + movl %edx,84(%rsi) + addl %r12d,%r11d + addb %al,%cl + roll $9,%r11d + movl %r8d,%r12d + pinsrw $2,(%rdi,%rbx,4),%xmm1 + + addl %r8d,%r11d + movl (%rdi,%rcx,4),%edx + xorl %r11d,%r12d + movl %eax,(%rdi,%rcx,4) + andl %r9d,%r12d + addl 60(%r15),%r10d + addb %dl,%al + movl 92(%rsi),%ebx + addl $3634488961,%r10d + xorl %r8d,%r12d + movzbl %al,%eax + movl %edx,88(%rsi) + addl %r12d,%r10d + addb %bl,%cl + roll $14,%r10d + movl %r11d,%r12d + pinsrw $3,(%rdi,%rax,4),%xmm0 + + addl %r11d,%r10d + movl (%rdi,%rcx,4),%edx + xorl %r10d,%r12d + movl %ebx,(%rdi,%rcx,4) + andl %r8d,%r12d + addl 16(%r15),%r9d + addb %dl,%bl + movl 96(%rsi),%eax + addl $3889429448,%r9d + xorl %r11d,%r12d + movzbl %bl,%ebx + movl %edx,92(%rsi) + addl %r12d,%r9d + addb %al,%cl + roll $20,%r9d + movl %r10d,%r12d + pinsrw $3,(%rdi,%rbx,4),%xmm1 + + addl %r10d,%r9d + movl (%rdi,%rcx,4),%edx + xorl %r9d,%r12d + movl %eax,(%rdi,%rcx,4) + andl %r11d,%r12d + addl 36(%r15),%r8d + addb %dl,%al + movl 100(%rsi),%ebx + addl $568446438,%r8d + xorl %r10d,%r12d + movzbl %al,%eax + movl %edx,96(%rsi) + addl %r12d,%r8d + addb %bl,%cl + roll $5,%r8d + movl %r9d,%r12d + pinsrw $4,(%rdi,%rax,4),%xmm0 + + addl %r9d,%r8d + movl (%rdi,%rcx,4),%edx + xorl %r8d,%r12d + movl %ebx,(%rdi,%rcx,4) + andl %r10d,%r12d + addl 56(%r15),%r11d + addb %dl,%bl + movl 104(%rsi),%eax + addl $3275163606,%r11d + xorl %r9d,%r12d + movzbl %bl,%ebx + movl %edx,100(%rsi) + addl %r12d,%r11d + addb %al,%cl + roll $9,%r11d + movl %r8d,%r12d + pinsrw $4,(%rdi,%rbx,4),%xmm1 + + addl %r8d,%r11d + movl (%rdi,%rcx,4),%edx + xorl %r11d,%r12d + movl %eax,(%rdi,%rcx,4) + andl %r9d,%r12d + addl 12(%r15),%r10d + addb %dl,%al + movl 108(%rsi),%ebx + addl $4107603335,%r10d + xorl %r8d,%r12d + movzbl %al,%eax + movl %edx,104(%rsi) + addl %r12d,%r10d + addb %bl,%cl + roll $14,%r10d + movl %r11d,%r12d + pinsrw $5,(%rdi,%rax,4),%xmm0 + + addl %r11d,%r10d + movl (%rdi,%rcx,4),%edx + xorl %r10d,%r12d + movl %ebx,(%rdi,%rcx,4) + andl %r8d,%r12d + addl 32(%r15),%r9d + addb %dl,%bl + movl 112(%rsi),%eax + addl $1163531501,%r9d + xorl %r11d,%r12d + movzbl %bl,%ebx + movl %edx,108(%rsi) + addl %r12d,%r9d + addb %al,%cl + roll $20,%r9d + movl %r10d,%r12d + pinsrw $5,(%rdi,%rbx,4),%xmm1 + + addl %r10d,%r9d + movl (%rdi,%rcx,4),%edx + xorl %r9d,%r12d + movl %eax,(%rdi,%rcx,4) + andl %r11d,%r12d + addl 52(%r15),%r8d + addb %dl,%al + movl 116(%rsi),%ebx + addl $2850285829,%r8d + xorl %r10d,%r12d + movzbl %al,%eax + movl %edx,112(%rsi) + addl %r12d,%r8d + addb %bl,%cl + roll $5,%r8d + movl %r9d,%r12d + pinsrw $6,(%rdi,%rax,4),%xmm0 + + addl %r9d,%r8d + movl (%rdi,%rcx,4),%edx + xorl %r8d,%r12d + movl %ebx,(%rdi,%rcx,4) + andl %r10d,%r12d + addl 8(%r15),%r11d + addb %dl,%bl + movl 120(%rsi),%eax + addl $4243563512,%r11d + xorl %r9d,%r12d + movzbl %bl,%ebx + movl %edx,116(%rsi) + addl %r12d,%r11d + addb %al,%cl + roll $9,%r11d + movl %r8d,%r12d + pinsrw $6,(%rdi,%rbx,4),%xmm1 + + addl %r8d,%r11d + movl (%rdi,%rcx,4),%edx + xorl %r11d,%r12d + movl %eax,(%rdi,%rcx,4) + andl %r9d,%r12d + addl 28(%r15),%r10d + addb %dl,%al + movl 124(%rsi),%ebx + addl $1735328473,%r10d + xorl %r8d,%r12d + movzbl %al,%eax + movl %edx,120(%rsi) + addl %r12d,%r10d + addb %bl,%cl + roll $14,%r10d + movl %r11d,%r12d + pinsrw $7,(%rdi,%rax,4),%xmm0 + + addl %r11d,%r10d + movdqu 16(%r13),%xmm3 + addb $32,%bpl + movl (%rdi,%rcx,4),%edx + xorl %r10d,%r12d + movl %ebx,(%rdi,%rcx,4) + andl %r8d,%r12d + addl 48(%r15),%r9d + addb %dl,%bl + movl 0(%rdi,%rbp,4),%eax + addl $2368359562,%r9d + xorl %r11d,%r12d + movzbl %bl,%ebx + movl %edx,124(%rsi) + addl %r12d,%r9d + addb %al,%cl + roll $20,%r9d + movl %r11d,%r12d + pinsrw $7,(%rdi,%rbx,4),%xmm1 + + addl %r10d,%r9d + movq %rcx,%rsi + xorq %rcx,%rcx + movb %sil,%cl + leaq (%rdi,%rbp,4),%rsi + psllq $8,%xmm1 + pxor %xmm0,%xmm3 + pxor %xmm1,%xmm3 + pxor %xmm0,%xmm0 + movl (%rdi,%rcx,4),%edx + xorl %r10d,%r12d + movl %eax,(%rdi,%rcx,4) + xorl %r9d,%r12d + addl 20(%r15),%r8d + addb %dl,%al + movl 4(%rsi),%ebx + addl $4294588738,%r8d + movzbl %al,%eax + addl %r12d,%r8d + movl %edx,0(%rsi) + addb %bl,%cl + roll $4,%r8d + movl %r10d,%r12d + movd (%rdi,%rax,4),%xmm0 + + addl %r9d,%r8d + pxor %xmm1,%xmm1 + movl (%rdi,%rcx,4),%edx + xorl %r9d,%r12d + movl %ebx,(%rdi,%rcx,4) + xorl %r8d,%r12d + addl 32(%r15),%r11d + addb %dl,%bl + movl 8(%rsi),%eax + addl $2272392833,%r11d + movzbl %bl,%ebx + addl %r12d,%r11d + movl %edx,4(%rsi) + addb %al,%cl + roll $11,%r11d + movl %r9d,%r12d + movd (%rdi,%rbx,4),%xmm1 + + addl %r8d,%r11d + movl (%rdi,%rcx,4),%edx + xorl %r8d,%r12d + movl %eax,(%rdi,%rcx,4) + xorl %r11d,%r12d + addl 44(%r15),%r10d + addb %dl,%al + movl 12(%rsi),%ebx + addl $1839030562,%r10d + movzbl %al,%eax + addl %r12d,%r10d + movl %edx,8(%rsi) + addb %bl,%cl + roll $16,%r10d + movl %r8d,%r12d + pinsrw $1,(%rdi,%rax,4),%xmm0 + + addl %r11d,%r10d + movl (%rdi,%rcx,4),%edx + xorl %r11d,%r12d + movl %ebx,(%rdi,%rcx,4) + xorl %r10d,%r12d + addl 56(%r15),%r9d + addb %dl,%bl + movl 16(%rsi),%eax + addl $4259657740,%r9d + movzbl %bl,%ebx + addl %r12d,%r9d + movl %edx,12(%rsi) + addb %al,%cl + roll $23,%r9d + movl %r11d,%r12d + pinsrw $1,(%rdi,%rbx,4),%xmm1 + + addl %r10d,%r9d + movl (%rdi,%rcx,4),%edx + xorl %r10d,%r12d + movl %eax,(%rdi,%rcx,4) + xorl %r9d,%r12d + addl 4(%r15),%r8d + addb %dl,%al + movl 20(%rsi),%ebx + addl $2763975236,%r8d + movzbl %al,%eax + addl %r12d,%r8d + movl %edx,16(%rsi) + addb %bl,%cl + roll $4,%r8d + movl %r10d,%r12d + pinsrw $2,(%rdi,%rax,4),%xmm0 + + addl %r9d,%r8d + movl (%rdi,%rcx,4),%edx + xorl %r9d,%r12d + movl %ebx,(%rdi,%rcx,4) + xorl %r8d,%r12d + addl 16(%r15),%r11d + addb %dl,%bl + movl 24(%rsi),%eax + addl $1272893353,%r11d + movzbl %bl,%ebx + addl %r12d,%r11d + movl %edx,20(%rsi) + addb %al,%cl + roll $11,%r11d + movl %r9d,%r12d + pinsrw $2,(%rdi,%rbx,4),%xmm1 + + addl %r8d,%r11d + movl (%rdi,%rcx,4),%edx + xorl %r8d,%r12d + movl %eax,(%rdi,%rcx,4) + xorl %r11d,%r12d + addl 28(%r15),%r10d + addb %dl,%al + movl 28(%rsi),%ebx + addl $4139469664,%r10d + movzbl %al,%eax + addl %r12d,%r10d + movl %edx,24(%rsi) + addb %bl,%cl + roll $16,%r10d + movl %r8d,%r12d + pinsrw $3,(%rdi,%rax,4),%xmm0 + + addl %r11d,%r10d + movl (%rdi,%rcx,4),%edx + xorl %r11d,%r12d + movl %ebx,(%rdi,%rcx,4) + xorl %r10d,%r12d + addl 40(%r15),%r9d + addb %dl,%bl + movl 32(%rsi),%eax + addl $3200236656,%r9d + movzbl %bl,%ebx + addl %r12d,%r9d + movl %edx,28(%rsi) + addb %al,%cl + roll $23,%r9d + movl %r11d,%r12d + pinsrw $3,(%rdi,%rbx,4),%xmm1 + + addl %r10d,%r9d + movl (%rdi,%rcx,4),%edx + xorl %r10d,%r12d + movl %eax,(%rdi,%rcx,4) + xorl %r9d,%r12d + addl 52(%r15),%r8d + addb %dl,%al + movl 36(%rsi),%ebx + addl $681279174,%r8d + movzbl %al,%eax + addl %r12d,%r8d + movl %edx,32(%rsi) + addb %bl,%cl + roll $4,%r8d + movl %r10d,%r12d + pinsrw $4,(%rdi,%rax,4),%xmm0 + + addl %r9d,%r8d + movl (%rdi,%rcx,4),%edx + xorl %r9d,%r12d + movl %ebx,(%rdi,%rcx,4) + xorl %r8d,%r12d + addl 0(%r15),%r11d + addb %dl,%bl + movl 40(%rsi),%eax + addl $3936430074,%r11d + movzbl %bl,%ebx + addl %r12d,%r11d + movl %edx,36(%rsi) + addb %al,%cl + roll $11,%r11d + movl %r9d,%r12d + pinsrw $4,(%rdi,%rbx,4),%xmm1 + + addl %r8d,%r11d + movl (%rdi,%rcx,4),%edx + xorl %r8d,%r12d + movl %eax,(%rdi,%rcx,4) + xorl %r11d,%r12d + addl 12(%r15),%r10d + addb %dl,%al + movl 44(%rsi),%ebx + addl $3572445317,%r10d + movzbl %al,%eax + addl %r12d,%r10d + movl %edx,40(%rsi) + addb %bl,%cl + roll $16,%r10d + movl %r8d,%r12d + pinsrw $5,(%rdi,%rax,4),%xmm0 + + addl %r11d,%r10d + movl (%rdi,%rcx,4),%edx + xorl %r11d,%r12d + movl %ebx,(%rdi,%rcx,4) + xorl %r10d,%r12d + addl 24(%r15),%r9d + addb %dl,%bl + movl 48(%rsi),%eax + addl $76029189,%r9d + movzbl %bl,%ebx + addl %r12d,%r9d + movl %edx,44(%rsi) + addb %al,%cl + roll $23,%r9d + movl %r11d,%r12d + pinsrw $5,(%rdi,%rbx,4),%xmm1 + + addl %r10d,%r9d + movl (%rdi,%rcx,4),%edx + xorl %r10d,%r12d + movl %eax,(%rdi,%rcx,4) + xorl %r9d,%r12d + addl 36(%r15),%r8d + addb %dl,%al + movl 52(%rsi),%ebx + addl $3654602809,%r8d + movzbl %al,%eax + addl %r12d,%r8d + movl %edx,48(%rsi) + addb %bl,%cl + roll $4,%r8d + movl %r10d,%r12d + pinsrw $6,(%rdi,%rax,4),%xmm0 + + addl %r9d,%r8d + movl (%rdi,%rcx,4),%edx + xorl %r9d,%r12d + movl %ebx,(%rdi,%rcx,4) + xorl %r8d,%r12d + addl 48(%r15),%r11d + addb %dl,%bl + movl 56(%rsi),%eax + addl $3873151461,%r11d + movzbl %bl,%ebx + addl %r12d,%r11d + movl %edx,52(%rsi) + addb %al,%cl + roll $11,%r11d + movl %r9d,%r12d + pinsrw $6,(%rdi,%rbx,4),%xmm1 + + addl %r8d,%r11d + movl (%rdi,%rcx,4),%edx + xorl %r8d,%r12d + movl %eax,(%rdi,%rcx,4) + xorl %r11d,%r12d + addl 60(%r15),%r10d + addb %dl,%al + movl 60(%rsi),%ebx + addl $530742520,%r10d + movzbl %al,%eax + addl %r12d,%r10d + movl %edx,56(%rsi) + addb %bl,%cl + roll $16,%r10d + movl %r8d,%r12d + pinsrw $7,(%rdi,%rax,4),%xmm0 + + addl %r11d,%r10d + movdqu 32(%r13),%xmm4 + movl (%rdi,%rcx,4),%edx + xorl %r11d,%r12d + movl %ebx,(%rdi,%rcx,4) + xorl %r10d,%r12d + addl 8(%r15),%r9d + addb %dl,%bl + movl 64(%rsi),%eax + addl $3299628645,%r9d + movzbl %bl,%ebx + addl %r12d,%r9d + movl %edx,60(%rsi) + addb %al,%cl + roll $23,%r9d + movl $-1,%r12d + pinsrw $7,(%rdi,%rbx,4),%xmm1 + + addl %r10d,%r9d + psllq $8,%xmm1 + pxor %xmm0,%xmm4 + pxor %xmm1,%xmm4 + pxor %xmm0,%xmm0 + movl (%rdi,%rcx,4),%edx + xorl %r11d,%r12d + movl %eax,(%rdi,%rcx,4) + orl %r9d,%r12d + addl 0(%r15),%r8d + addb %dl,%al + movl 68(%rsi),%ebx + addl $4096336452,%r8d + movzbl %al,%eax + xorl %r10d,%r12d + movl %edx,64(%rsi) + addl %r12d,%r8d + addb %bl,%cl + roll $6,%r8d + movl $-1,%r12d + movd (%rdi,%rax,4),%xmm0 + + addl %r9d,%r8d + pxor %xmm1,%xmm1 + movl (%rdi,%rcx,4),%edx + xorl %r10d,%r12d + movl %ebx,(%rdi,%rcx,4) + orl %r8d,%r12d + addl 28(%r15),%r11d + addb %dl,%bl + movl 72(%rsi),%eax + addl $1126891415,%r11d + movzbl %bl,%ebx + xorl %r9d,%r12d + movl %edx,68(%rsi) + addl %r12d,%r11d + addb %al,%cl + roll $10,%r11d + movl $-1,%r12d + movd (%rdi,%rbx,4),%xmm1 + + addl %r8d,%r11d + movl (%rdi,%rcx,4),%edx + xorl %r9d,%r12d + movl %eax,(%rdi,%rcx,4) + orl %r11d,%r12d + addl 56(%r15),%r10d + addb %dl,%al + movl 76(%rsi),%ebx + addl $2878612391,%r10d + movzbl %al,%eax + xorl %r8d,%r12d + movl %edx,72(%rsi) + addl %r12d,%r10d + addb %bl,%cl + roll $15,%r10d + movl $-1,%r12d + pinsrw $1,(%rdi,%rax,4),%xmm0 + + addl %r11d,%r10d + movl (%rdi,%rcx,4),%edx + xorl %r8d,%r12d + movl %ebx,(%rdi,%rcx,4) + orl %r10d,%r12d + addl 20(%r15),%r9d + addb %dl,%bl + movl 80(%rsi),%eax + addl $4237533241,%r9d + movzbl %bl,%ebx + xorl %r11d,%r12d + movl %edx,76(%rsi) + addl %r12d,%r9d + addb %al,%cl + roll $21,%r9d + movl $-1,%r12d + pinsrw $1,(%rdi,%rbx,4),%xmm1 + + addl %r10d,%r9d + movl (%rdi,%rcx,4),%edx + xorl %r11d,%r12d + movl %eax,(%rdi,%rcx,4) + orl %r9d,%r12d + addl 48(%r15),%r8d + addb %dl,%al + movl 84(%rsi),%ebx + addl $1700485571,%r8d + movzbl %al,%eax + xorl %r10d,%r12d + movl %edx,80(%rsi) + addl %r12d,%r8d + addb %bl,%cl + roll $6,%r8d + movl $-1,%r12d + pinsrw $2,(%rdi,%rax,4),%xmm0 + + addl %r9d,%r8d + movl (%rdi,%rcx,4),%edx + xorl %r10d,%r12d + movl %ebx,(%rdi,%rcx,4) + orl %r8d,%r12d + addl 12(%r15),%r11d + addb %dl,%bl + movl 88(%rsi),%eax + addl $2399980690,%r11d + movzbl %bl,%ebx + xorl %r9d,%r12d + movl %edx,84(%rsi) + addl %r12d,%r11d + addb %al,%cl + roll $10,%r11d + movl $-1,%r12d + pinsrw $2,(%rdi,%rbx,4),%xmm1 + + addl %r8d,%r11d + movl (%rdi,%rcx,4),%edx + xorl %r9d,%r12d + movl %eax,(%rdi,%rcx,4) + orl %r11d,%r12d + addl 40(%r15),%r10d + addb %dl,%al + movl 92(%rsi),%ebx + addl $4293915773,%r10d + movzbl %al,%eax + xorl %r8d,%r12d + movl %edx,88(%rsi) + addl %r12d,%r10d + addb %bl,%cl + roll $15,%r10d + movl $-1,%r12d + pinsrw $3,(%rdi,%rax,4),%xmm0 + + addl %r11d,%r10d + movl (%rdi,%rcx,4),%edx + xorl %r8d,%r12d + movl %ebx,(%rdi,%rcx,4) + orl %r10d,%r12d + addl 4(%r15),%r9d + addb %dl,%bl + movl 96(%rsi),%eax + addl $2240044497,%r9d + movzbl %bl,%ebx + xorl %r11d,%r12d + movl %edx,92(%rsi) + addl %r12d,%r9d + addb %al,%cl + roll $21,%r9d + movl $-1,%r12d + pinsrw $3,(%rdi,%rbx,4),%xmm1 + + addl %r10d,%r9d + movl (%rdi,%rcx,4),%edx + xorl %r11d,%r12d + movl %eax,(%rdi,%rcx,4) + orl %r9d,%r12d + addl 32(%r15),%r8d + addb %dl,%al + movl 100(%rsi),%ebx + addl $1873313359,%r8d + movzbl %al,%eax + xorl %r10d,%r12d + movl %edx,96(%rsi) + addl %r12d,%r8d + addb %bl,%cl + roll $6,%r8d + movl $-1,%r12d + pinsrw $4,(%rdi,%rax,4),%xmm0 + + addl %r9d,%r8d + movl (%rdi,%rcx,4),%edx + xorl %r10d,%r12d + movl %ebx,(%rdi,%rcx,4) + orl %r8d,%r12d + addl 60(%r15),%r11d + addb %dl,%bl + movl 104(%rsi),%eax + addl $4264355552,%r11d + movzbl %bl,%ebx + xorl %r9d,%r12d + movl %edx,100(%rsi) + addl %r12d,%r11d + addb %al,%cl + roll $10,%r11d + movl $-1,%r12d + pinsrw $4,(%rdi,%rbx,4),%xmm1 + + addl %r8d,%r11d + movl (%rdi,%rcx,4),%edx + xorl %r9d,%r12d + movl %eax,(%rdi,%rcx,4) + orl %r11d,%r12d + addl 24(%r15),%r10d + addb %dl,%al + movl 108(%rsi),%ebx + addl $2734768916,%r10d + movzbl %al,%eax + xorl %r8d,%r12d + movl %edx,104(%rsi) + addl %r12d,%r10d + addb %bl,%cl + roll $15,%r10d + movl $-1,%r12d + pinsrw $5,(%rdi,%rax,4),%xmm0 + + addl %r11d,%r10d + movl (%rdi,%rcx,4),%edx + xorl %r8d,%r12d + movl %ebx,(%rdi,%rcx,4) + orl %r10d,%r12d + addl 52(%r15),%r9d + addb %dl,%bl + movl 112(%rsi),%eax + addl $1309151649,%r9d + movzbl %bl,%ebx + xorl %r11d,%r12d + movl %edx,108(%rsi) + addl %r12d,%r9d + addb %al,%cl + roll $21,%r9d + movl $-1,%r12d + pinsrw $5,(%rdi,%rbx,4),%xmm1 + + addl %r10d,%r9d + movl (%rdi,%rcx,4),%edx + xorl %r11d,%r12d + movl %eax,(%rdi,%rcx,4) + orl %r9d,%r12d + addl 16(%r15),%r8d + addb %dl,%al + movl 116(%rsi),%ebx + addl $4149444226,%r8d + movzbl %al,%eax + xorl %r10d,%r12d + movl %edx,112(%rsi) + addl %r12d,%r8d + addb %bl,%cl + roll $6,%r8d + movl $-1,%r12d + pinsrw $6,(%rdi,%rax,4),%xmm0 + + addl %r9d,%r8d + movl (%rdi,%rcx,4),%edx + xorl %r10d,%r12d + movl %ebx,(%rdi,%rcx,4) + orl %r8d,%r12d + addl 44(%r15),%r11d + addb %dl,%bl + movl 120(%rsi),%eax + addl $3174756917,%r11d + movzbl %bl,%ebx + xorl %r9d,%r12d + movl %edx,116(%rsi) + addl %r12d,%r11d + addb %al,%cl + roll $10,%r11d + movl $-1,%r12d + pinsrw $6,(%rdi,%rbx,4),%xmm1 + + addl %r8d,%r11d + movl (%rdi,%rcx,4),%edx + xorl %r9d,%r12d + movl %eax,(%rdi,%rcx,4) + orl %r11d,%r12d + addl 8(%r15),%r10d + addb %dl,%al + movl 124(%rsi),%ebx + addl $718787259,%r10d + movzbl %al,%eax + xorl %r8d,%r12d + movl %edx,120(%rsi) + addl %r12d,%r10d + addb %bl,%cl + roll $15,%r10d + movl $-1,%r12d + pinsrw $7,(%rdi,%rax,4),%xmm0 + + addl %r11d,%r10d + movdqu 48(%r13),%xmm5 + addb $32,%bpl + movl (%rdi,%rcx,4),%edx + xorl %r8d,%r12d + movl %ebx,(%rdi,%rcx,4) + orl %r10d,%r12d + addl 36(%r15),%r9d + addb %dl,%bl + movl 0(%rdi,%rbp,4),%eax + addl $3951481745,%r9d + movzbl %bl,%ebx + xorl %r11d,%r12d + movl %edx,124(%rsi) + addl %r12d,%r9d + addb %al,%cl + roll $21,%r9d + movl $-1,%r12d + pinsrw $7,(%rdi,%rbx,4),%xmm1 + + addl %r10d,%r9d + movq %rbp,%rsi + xorq %rbp,%rbp + movb %sil,%bpl + movq %rcx,%rsi + xorq %rcx,%rcx + movb %sil,%cl + leaq (%rdi,%rbp,4),%rsi + psllq $8,%xmm1 + pxor %xmm0,%xmm5 + pxor %xmm1,%xmm5 + addl 0(%rsp),%r8d + addl 4(%rsp),%r9d + addl 8(%rsp),%r10d + addl 12(%rsp),%r11d + + movdqu %xmm2,(%r14,%r13,1) + movdqu %xmm3,16(%r14,%r13,1) + movdqu %xmm4,32(%r14,%r13,1) + movdqu %xmm5,48(%r14,%r13,1) + leaq 64(%r15),%r15 + leaq 64(%r13),%r13 + cmpq 16(%rsp),%r15 + jb L$oop + + movq 24(%rsp),%r12 + subb %al,%cl + movl %r8d,0(%r12) + movl %r9d,4(%r12) + movl %r10d,8(%r12) + movl %r11d,12(%r12) + subb $1,%bpl + movl %ebp,-8(%rdi) + movl %ecx,-4(%rdi) + + movq 40(%rsp),%r15 + + movq 48(%rsp),%r14 + + movq 56(%rsp),%r13 + + movq 64(%rsp),%r12 + + movq 72(%rsp),%rbp + + movq 80(%rsp),%rbx + + leaq 88(%rsp),%rsp + +L$epilogue: +L$abort: + .byte 0xf3,0xc3 + + diff --git a/vere/ext/openssl/gen/macos-x86_64/crypto/rc4/rc4-x86_64.s b/vere/ext/openssl/gen/macos-x86_64/crypto/rc4/rc4-x86_64.s new file mode 100644 index 0000000..8b6186f --- /dev/null +++ b/vere/ext/openssl/gen/macos-x86_64/crypto/rc4/rc4-x86_64.s @@ -0,0 +1,629 @@ +.text + + +.globl _RC4 + +.p2align 4 +_RC4: + + orq %rsi,%rsi + jne L$entry + .byte 0xf3,0xc3 +L$entry: + pushq %rbx + + pushq %r12 + + pushq %r13 + +L$prologue: + movq %rsi,%r11 + movq %rdx,%r12 + movq %rcx,%r13 + xorq %r10,%r10 + xorq %rcx,%rcx + + leaq 8(%rdi),%rdi + movb -8(%rdi),%r10b + movb -4(%rdi),%cl + cmpl $-1,256(%rdi) + je L$RC4_CHAR + movl _OPENSSL_ia32cap_P(%rip),%r8d + xorq %rbx,%rbx + incb %r10b + subq %r10,%rbx + subq %r12,%r13 + movl (%rdi,%r10,4),%eax + testq $-16,%r11 + jz L$loop1 + btl $30,%r8d + jc L$intel + andq $7,%rbx + leaq 1(%r10),%rsi + jz L$oop8 + subq %rbx,%r11 +L$oop8_warmup: + addb %al,%cl + movl (%rdi,%rcx,4),%edx + movl %eax,(%rdi,%rcx,4) + movl %edx,(%rdi,%r10,4) + addb %dl,%al + incb %r10b + movl (%rdi,%rax,4),%edx + movl (%rdi,%r10,4),%eax + xorb (%r12),%dl + movb %dl,(%r12,%r13,1) + leaq 1(%r12),%r12 + decq %rbx + jnz L$oop8_warmup + + leaq 1(%r10),%rsi + jmp L$oop8 +.p2align 4 +L$oop8: + addb %al,%cl + movl (%rdi,%rcx,4),%edx + movl %eax,(%rdi,%rcx,4) + movl 0(%rdi,%rsi,4),%ebx + rorq $8,%r8 + movl %edx,0(%rdi,%r10,4) + addb %al,%dl + movb (%rdi,%rdx,4),%r8b + addb %bl,%cl + movl (%rdi,%rcx,4),%edx + movl %ebx,(%rdi,%rcx,4) + movl 4(%rdi,%rsi,4),%eax + rorq $8,%r8 + movl %edx,4(%rdi,%r10,4) + addb %bl,%dl + movb (%rdi,%rdx,4),%r8b + addb %al,%cl + movl (%rdi,%rcx,4),%edx + movl %eax,(%rdi,%rcx,4) + movl 8(%rdi,%rsi,4),%ebx + rorq $8,%r8 + movl %edx,8(%rdi,%r10,4) + addb %al,%dl + movb (%rdi,%rdx,4),%r8b + addb %bl,%cl + movl (%rdi,%rcx,4),%edx + movl %ebx,(%rdi,%rcx,4) + movl 12(%rdi,%rsi,4),%eax + rorq $8,%r8 + movl %edx,12(%rdi,%r10,4) + addb %bl,%dl + movb (%rdi,%rdx,4),%r8b + addb %al,%cl + movl (%rdi,%rcx,4),%edx + movl %eax,(%rdi,%rcx,4) + movl 16(%rdi,%rsi,4),%ebx + rorq $8,%r8 + movl %edx,16(%rdi,%r10,4) + addb %al,%dl + movb (%rdi,%rdx,4),%r8b + addb %bl,%cl + movl (%rdi,%rcx,4),%edx + movl %ebx,(%rdi,%rcx,4) + movl 20(%rdi,%rsi,4),%eax + rorq $8,%r8 + movl %edx,20(%rdi,%r10,4) + addb %bl,%dl + movb (%rdi,%rdx,4),%r8b + addb %al,%cl + movl (%rdi,%rcx,4),%edx + movl %eax,(%rdi,%rcx,4) + movl 24(%rdi,%rsi,4),%ebx + rorq $8,%r8 + movl %edx,24(%rdi,%r10,4) + addb %al,%dl + movb (%rdi,%rdx,4),%r8b + addb $8,%sil + addb %bl,%cl + movl (%rdi,%rcx,4),%edx + movl %ebx,(%rdi,%rcx,4) + movl -4(%rdi,%rsi,4),%eax + rorq $8,%r8 + movl %edx,28(%rdi,%r10,4) + addb %bl,%dl + movb (%rdi,%rdx,4),%r8b + addb $8,%r10b + rorq $8,%r8 + subq $8,%r11 + + xorq (%r12),%r8 + movq %r8,(%r12,%r13,1) + leaq 8(%r12),%r12 + + testq $-8,%r11 + jnz L$oop8 + cmpq $0,%r11 + jne L$loop1 + jmp L$exit + +.p2align 4 +L$intel: + testq $-32,%r11 + jz L$loop1 + andq $15,%rbx + jz L$oop16_is_hot + subq %rbx,%r11 +L$oop16_warmup: + addb %al,%cl + movl (%rdi,%rcx,4),%edx + movl %eax,(%rdi,%rcx,4) + movl %edx,(%rdi,%r10,4) + addb %dl,%al + incb %r10b + movl (%rdi,%rax,4),%edx + movl (%rdi,%r10,4),%eax + xorb (%r12),%dl + movb %dl,(%r12,%r13,1) + leaq 1(%r12),%r12 + decq %rbx + jnz L$oop16_warmup + + movq %rcx,%rbx + xorq %rcx,%rcx + movb %bl,%cl + +L$oop16_is_hot: + leaq (%rdi,%r10,4),%rsi + addb %al,%cl + movl (%rdi,%rcx,4),%edx + pxor %xmm0,%xmm0 + movl %eax,(%rdi,%rcx,4) + addb %dl,%al + movl 4(%rsi),%ebx + movzbl %al,%eax + movl %edx,0(%rsi) + addb %bl,%cl + pinsrw $0,(%rdi,%rax,4),%xmm0 + jmp L$oop16_enter +.p2align 4 +L$oop16: + addb %al,%cl + movl (%rdi,%rcx,4),%edx + pxor %xmm0,%xmm2 + psllq $8,%xmm1 + pxor %xmm0,%xmm0 + movl %eax,(%rdi,%rcx,4) + addb %dl,%al + movl 4(%rsi),%ebx + movzbl %al,%eax + movl %edx,0(%rsi) + pxor %xmm1,%xmm2 + addb %bl,%cl + pinsrw $0,(%rdi,%rax,4),%xmm0 + movdqu %xmm2,(%r12,%r13,1) + leaq 16(%r12),%r12 +L$oop16_enter: + movl (%rdi,%rcx,4),%edx + pxor %xmm1,%xmm1 + movl %ebx,(%rdi,%rcx,4) + addb %dl,%bl + movl 8(%rsi),%eax + movzbl %bl,%ebx + movl %edx,4(%rsi) + addb %al,%cl + pinsrw $0,(%rdi,%rbx,4),%xmm1 + movl (%rdi,%rcx,4),%edx + movl %eax,(%rdi,%rcx,4) + addb %dl,%al + movl 12(%rsi),%ebx + movzbl %al,%eax + movl %edx,8(%rsi) + addb %bl,%cl + pinsrw $1,(%rdi,%rax,4),%xmm0 + movl (%rdi,%rcx,4),%edx + movl %ebx,(%rdi,%rcx,4) + addb %dl,%bl + movl 16(%rsi),%eax + movzbl %bl,%ebx + movl %edx,12(%rsi) + addb %al,%cl + pinsrw $1,(%rdi,%rbx,4),%xmm1 + movl (%rdi,%rcx,4),%edx + movl %eax,(%rdi,%rcx,4) + addb %dl,%al + movl 20(%rsi),%ebx + movzbl %al,%eax + movl %edx,16(%rsi) + addb %bl,%cl + pinsrw $2,(%rdi,%rax,4),%xmm0 + movl (%rdi,%rcx,4),%edx + movl %ebx,(%rdi,%rcx,4) + addb %dl,%bl + movl 24(%rsi),%eax + movzbl %bl,%ebx + movl %edx,20(%rsi) + addb %al,%cl + pinsrw $2,(%rdi,%rbx,4),%xmm1 + movl (%rdi,%rcx,4),%edx + movl %eax,(%rdi,%rcx,4) + addb %dl,%al + movl 28(%rsi),%ebx + movzbl %al,%eax + movl %edx,24(%rsi) + addb %bl,%cl + pinsrw $3,(%rdi,%rax,4),%xmm0 + movl (%rdi,%rcx,4),%edx + movl %ebx,(%rdi,%rcx,4) + addb %dl,%bl + movl 32(%rsi),%eax + movzbl %bl,%ebx + movl %edx,28(%rsi) + addb %al,%cl + pinsrw $3,(%rdi,%rbx,4),%xmm1 + movl (%rdi,%rcx,4),%edx + movl %eax,(%rdi,%rcx,4) + addb %dl,%al + movl 36(%rsi),%ebx + movzbl %al,%eax + movl %edx,32(%rsi) + addb %bl,%cl + pinsrw $4,(%rdi,%rax,4),%xmm0 + movl (%rdi,%rcx,4),%edx + movl %ebx,(%rdi,%rcx,4) + addb %dl,%bl + movl 40(%rsi),%eax + movzbl %bl,%ebx + movl %edx,36(%rsi) + addb %al,%cl + pinsrw $4,(%rdi,%rbx,4),%xmm1 + movl (%rdi,%rcx,4),%edx + movl %eax,(%rdi,%rcx,4) + addb %dl,%al + movl 44(%rsi),%ebx + movzbl %al,%eax + movl %edx,40(%rsi) + addb %bl,%cl + pinsrw $5,(%rdi,%rax,4),%xmm0 + movl (%rdi,%rcx,4),%edx + movl %ebx,(%rdi,%rcx,4) + addb %dl,%bl + movl 48(%rsi),%eax + movzbl %bl,%ebx + movl %edx,44(%rsi) + addb %al,%cl + pinsrw $5,(%rdi,%rbx,4),%xmm1 + movl (%rdi,%rcx,4),%edx + movl %eax,(%rdi,%rcx,4) + addb %dl,%al + movl 52(%rsi),%ebx + movzbl %al,%eax + movl %edx,48(%rsi) + addb %bl,%cl + pinsrw $6,(%rdi,%rax,4),%xmm0 + movl (%rdi,%rcx,4),%edx + movl %ebx,(%rdi,%rcx,4) + addb %dl,%bl + movl 56(%rsi),%eax + movzbl %bl,%ebx + movl %edx,52(%rsi) + addb %al,%cl + pinsrw $6,(%rdi,%rbx,4),%xmm1 + movl (%rdi,%rcx,4),%edx + movl %eax,(%rdi,%rcx,4) + addb %dl,%al + movl 60(%rsi),%ebx + movzbl %al,%eax + movl %edx,56(%rsi) + addb %bl,%cl + pinsrw $7,(%rdi,%rax,4),%xmm0 + addb $16,%r10b + movdqu (%r12),%xmm2 + movl (%rdi,%rcx,4),%edx + movl %ebx,(%rdi,%rcx,4) + addb %dl,%bl + movzbl %bl,%ebx + movl %edx,60(%rsi) + leaq (%rdi,%r10,4),%rsi + pinsrw $7,(%rdi,%rbx,4),%xmm1 + movl (%rsi),%eax + movq %rcx,%rbx + xorq %rcx,%rcx + subq $16,%r11 + movb %bl,%cl + testq $-16,%r11 + jnz L$oop16 + + psllq $8,%xmm1 + pxor %xmm0,%xmm2 + pxor %xmm1,%xmm2 + movdqu %xmm2,(%r12,%r13,1) + leaq 16(%r12),%r12 + + cmpq $0,%r11 + jne L$loop1 + jmp L$exit + +.p2align 4 +L$loop1: + addb %al,%cl + movl (%rdi,%rcx,4),%edx + movl %eax,(%rdi,%rcx,4) + movl %edx,(%rdi,%r10,4) + addb %dl,%al + incb %r10b + movl (%rdi,%rax,4),%edx + movl (%rdi,%r10,4),%eax + xorb (%r12),%dl + movb %dl,(%r12,%r13,1) + leaq 1(%r12),%r12 + decq %r11 + jnz L$loop1 + jmp L$exit + +.p2align 4 +L$RC4_CHAR: + addb $1,%r10b + movzbl (%rdi,%r10,1),%eax + testq $-8,%r11 + jz L$cloop1 + jmp L$cloop8 +.p2align 4 +L$cloop8: + movl (%r12),%r8d + movl 4(%r12),%r9d + addb %al,%cl + leaq 1(%r10),%rsi + movzbl (%rdi,%rcx,1),%edx + movzbl %sil,%esi + movzbl (%rdi,%rsi,1),%ebx + movb %al,(%rdi,%rcx,1) + cmpq %rsi,%rcx + movb %dl,(%rdi,%r10,1) + jne L$cmov0 + movq %rax,%rbx +L$cmov0: + addb %al,%dl + xorb (%rdi,%rdx,1),%r8b + rorl $8,%r8d + addb %bl,%cl + leaq 1(%rsi),%r10 + movzbl (%rdi,%rcx,1),%edx + movzbl %r10b,%r10d + movzbl (%rdi,%r10,1),%eax + movb %bl,(%rdi,%rcx,1) + cmpq %r10,%rcx + movb %dl,(%rdi,%rsi,1) + jne L$cmov1 + movq %rbx,%rax +L$cmov1: + addb %bl,%dl + xorb (%rdi,%rdx,1),%r8b + rorl $8,%r8d + addb %al,%cl + leaq 1(%r10),%rsi + movzbl (%rdi,%rcx,1),%edx + movzbl %sil,%esi + movzbl (%rdi,%rsi,1),%ebx + movb %al,(%rdi,%rcx,1) + cmpq %rsi,%rcx + movb %dl,(%rdi,%r10,1) + jne L$cmov2 + movq %rax,%rbx +L$cmov2: + addb %al,%dl + xorb (%rdi,%rdx,1),%r8b + rorl $8,%r8d + addb %bl,%cl + leaq 1(%rsi),%r10 + movzbl (%rdi,%rcx,1),%edx + movzbl %r10b,%r10d + movzbl (%rdi,%r10,1),%eax + movb %bl,(%rdi,%rcx,1) + cmpq %r10,%rcx + movb %dl,(%rdi,%rsi,1) + jne L$cmov3 + movq %rbx,%rax +L$cmov3: + addb %bl,%dl + xorb (%rdi,%rdx,1),%r8b + rorl $8,%r8d + addb %al,%cl + leaq 1(%r10),%rsi + movzbl (%rdi,%rcx,1),%edx + movzbl %sil,%esi + movzbl (%rdi,%rsi,1),%ebx + movb %al,(%rdi,%rcx,1) + cmpq %rsi,%rcx + movb %dl,(%rdi,%r10,1) + jne L$cmov4 + movq %rax,%rbx +L$cmov4: + addb %al,%dl + xorb (%rdi,%rdx,1),%r9b + rorl $8,%r9d + addb %bl,%cl + leaq 1(%rsi),%r10 + movzbl (%rdi,%rcx,1),%edx + movzbl %r10b,%r10d + movzbl (%rdi,%r10,1),%eax + movb %bl,(%rdi,%rcx,1) + cmpq %r10,%rcx + movb %dl,(%rdi,%rsi,1) + jne L$cmov5 + movq %rbx,%rax +L$cmov5: + addb %bl,%dl + xorb (%rdi,%rdx,1),%r9b + rorl $8,%r9d + addb %al,%cl + leaq 1(%r10),%rsi + movzbl (%rdi,%rcx,1),%edx + movzbl %sil,%esi + movzbl (%rdi,%rsi,1),%ebx + movb %al,(%rdi,%rcx,1) + cmpq %rsi,%rcx + movb %dl,(%rdi,%r10,1) + jne L$cmov6 + movq %rax,%rbx +L$cmov6: + addb %al,%dl + xorb (%rdi,%rdx,1),%r9b + rorl $8,%r9d + addb %bl,%cl + leaq 1(%rsi),%r10 + movzbl (%rdi,%rcx,1),%edx + movzbl %r10b,%r10d + movzbl (%rdi,%r10,1),%eax + movb %bl,(%rdi,%rcx,1) + cmpq %r10,%rcx + movb %dl,(%rdi,%rsi,1) + jne L$cmov7 + movq %rbx,%rax +L$cmov7: + addb %bl,%dl + xorb (%rdi,%rdx,1),%r9b + rorl $8,%r9d + leaq -8(%r11),%r11 + movl %r8d,(%r13) + leaq 8(%r12),%r12 + movl %r9d,4(%r13) + leaq 8(%r13),%r13 + + testq $-8,%r11 + jnz L$cloop8 + cmpq $0,%r11 + jne L$cloop1 + jmp L$exit +.p2align 4 +L$cloop1: + addb %al,%cl + movzbl %cl,%ecx + movzbl (%rdi,%rcx,1),%edx + movb %al,(%rdi,%rcx,1) + movb %dl,(%rdi,%r10,1) + addb %al,%dl + addb $1,%r10b + movzbl %dl,%edx + movzbl %r10b,%r10d + movzbl (%rdi,%rdx,1),%edx + movzbl (%rdi,%r10,1),%eax + xorb (%r12),%dl + leaq 1(%r12),%r12 + movb %dl,(%r13) + leaq 1(%r13),%r13 + subq $1,%r11 + jnz L$cloop1 + jmp L$exit + +.p2align 4 +L$exit: + subb $1,%r10b + movl %r10d,-8(%rdi) + movl %ecx,-4(%rdi) + + movq (%rsp),%r13 + + movq 8(%rsp),%r12 + + movq 16(%rsp),%rbx + + addq $24,%rsp + +L$epilogue: + .byte 0xf3,0xc3 + + +.globl _RC4_set_key + +.p2align 4 +_RC4_set_key: + + leaq 8(%rdi),%rdi + leaq (%rdx,%rsi,1),%rdx + negq %rsi + movq %rsi,%rcx + xorl %eax,%eax + xorq %r9,%r9 + xorq %r10,%r10 + xorq %r11,%r11 + + movl _OPENSSL_ia32cap_P(%rip),%r8d + btl $20,%r8d + jc L$c1stloop + jmp L$w1stloop + +.p2align 4 +L$w1stloop: + movl %eax,(%rdi,%rax,4) + addb $1,%al + jnc L$w1stloop + + xorq %r9,%r9 + xorq %r8,%r8 +.p2align 4 +L$w2ndloop: + movl (%rdi,%r9,4),%r10d + addb (%rdx,%rsi,1),%r8b + addb %r10b,%r8b + addq $1,%rsi + movl (%rdi,%r8,4),%r11d + cmovzq %rcx,%rsi + movl %r10d,(%rdi,%r8,4) + movl %r11d,(%rdi,%r9,4) + addb $1,%r9b + jnc L$w2ndloop + jmp L$exit_key + +.p2align 4 +L$c1stloop: + movb %al,(%rdi,%rax,1) + addb $1,%al + jnc L$c1stloop + + xorq %r9,%r9 + xorq %r8,%r8 +.p2align 4 +L$c2ndloop: + movb (%rdi,%r9,1),%r10b + addb (%rdx,%rsi,1),%r8b + addb %r10b,%r8b + addq $1,%rsi + movb (%rdi,%r8,1),%r11b + jnz L$cnowrap + movq %rcx,%rsi +L$cnowrap: + movb %r10b,(%rdi,%r8,1) + movb %r11b,(%rdi,%r9,1) + addb $1,%r9b + jnc L$c2ndloop + movl $-1,256(%rdi) + +.p2align 4 +L$exit_key: + xorl %eax,%eax + movl %eax,-8(%rdi) + movl %eax,-4(%rdi) + .byte 0xf3,0xc3 + + + +.globl _RC4_options + +.p2align 4 +_RC4_options: + + leaq L$opts(%rip),%rax + movl _OPENSSL_ia32cap_P(%rip),%edx + btl $20,%edx + jc L$8xchar + btl $30,%edx + jnc L$done + addq $25,%rax + .byte 0xf3,0xc3 +L$8xchar: + addq $12,%rax +L$done: + .byte 0xf3,0xc3 + +.p2align 6 +L$opts: +.byte 114,99,52,40,56,120,44,105,110,116,41,0 +.byte 114,99,52,40,56,120,44,99,104,97,114,41,0 +.byte 114,99,52,40,49,54,120,44,105,110,116,41,0 +.byte 82,67,52,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.p2align 6 + diff --git a/vere/ext/openssl/gen/macos-x86_64/crypto/sha/keccak1600-x86_64.s b/vere/ext/openssl/gen/macos-x86_64/crypto/sha/keccak1600-x86_64.s new file mode 100644 index 0000000..5105d98 --- /dev/null +++ b/vere/ext/openssl/gen/macos-x86_64/crypto/sha/keccak1600-x86_64.s @@ -0,0 +1,494 @@ +.text + + +.p2align 5 +__KeccakF1600: + + movq 60(%rdi),%rax + movq 68(%rdi),%rbx + movq 76(%rdi),%rcx + movq 84(%rdi),%rdx + movq 92(%rdi),%rbp + jmp L$oop + +.p2align 5 +L$oop: + movq -100(%rdi),%r8 + movq -52(%rdi),%r9 + movq -4(%rdi),%r10 + movq 44(%rdi),%r11 + + xorq -84(%rdi),%rcx + xorq -76(%rdi),%rdx + xorq %r8,%rax + xorq -92(%rdi),%rbx + xorq -44(%rdi),%rcx + xorq -60(%rdi),%rax + movq %rbp,%r12 + xorq -68(%rdi),%rbp + + xorq %r10,%rcx + xorq -20(%rdi),%rax + xorq -36(%rdi),%rdx + xorq %r9,%rbx + xorq -28(%rdi),%rbp + + xorq 36(%rdi),%rcx + xorq 20(%rdi),%rax + xorq 4(%rdi),%rdx + xorq -12(%rdi),%rbx + xorq 12(%rdi),%rbp + + movq %rcx,%r13 + rolq $1,%rcx + xorq %rax,%rcx + xorq %r11,%rdx + + rolq $1,%rax + xorq %rdx,%rax + xorq 28(%rdi),%rbx + + rolq $1,%rdx + xorq %rbx,%rdx + xorq 52(%rdi),%rbp + + rolq $1,%rbx + xorq %rbp,%rbx + + rolq $1,%rbp + xorq %r13,%rbp + xorq %rcx,%r9 + xorq %rdx,%r10 + rolq $44,%r9 + xorq %rbp,%r11 + xorq %rax,%r12 + rolq $43,%r10 + xorq %rbx,%r8 + movq %r9,%r13 + rolq $21,%r11 + orq %r10,%r9 + xorq %r8,%r9 + rolq $14,%r12 + + xorq (%r15),%r9 + leaq 8(%r15),%r15 + + movq %r12,%r14 + andq %r11,%r12 + movq %r9,-100(%rsi) + xorq %r10,%r12 + notq %r10 + movq %r12,-84(%rsi) + + orq %r11,%r10 + movq 76(%rdi),%r12 + xorq %r13,%r10 + movq %r10,-92(%rsi) + + andq %r8,%r13 + movq -28(%rdi),%r9 + xorq %r14,%r13 + movq -20(%rdi),%r10 + movq %r13,-68(%rsi) + + orq %r8,%r14 + movq -76(%rdi),%r8 + xorq %r11,%r14 + movq 28(%rdi),%r11 + movq %r14,-76(%rsi) + + + xorq %rbp,%r8 + xorq %rdx,%r12 + rolq $28,%r8 + xorq %rcx,%r11 + xorq %rax,%r9 + rolq $61,%r12 + rolq $45,%r11 + xorq %rbx,%r10 + rolq $20,%r9 + movq %r8,%r13 + orq %r12,%r8 + rolq $3,%r10 + + xorq %r11,%r8 + movq %r8,-36(%rsi) + + movq %r9,%r14 + andq %r13,%r9 + movq -92(%rdi),%r8 + xorq %r12,%r9 + notq %r12 + movq %r9,-28(%rsi) + + orq %r11,%r12 + movq -44(%rdi),%r9 + xorq %r10,%r12 + movq %r12,-44(%rsi) + + andq %r10,%r11 + movq 60(%rdi),%r12 + xorq %r14,%r11 + movq %r11,-52(%rsi) + + orq %r10,%r14 + movq 4(%rdi),%r10 + xorq %r13,%r14 + movq 52(%rdi),%r11 + movq %r14,-60(%rsi) + + + xorq %rbp,%r10 + xorq %rax,%r11 + rolq $25,%r10 + xorq %rdx,%r9 + rolq $8,%r11 + xorq %rbx,%r12 + rolq $6,%r9 + xorq %rcx,%r8 + rolq $18,%r12 + movq %r10,%r13 + andq %r11,%r10 + rolq $1,%r8 + + notq %r11 + xorq %r9,%r10 + movq %r10,-12(%rsi) + + movq %r12,%r14 + andq %r11,%r12 + movq -12(%rdi),%r10 + xorq %r13,%r12 + movq %r12,-4(%rsi) + + orq %r9,%r13 + movq 84(%rdi),%r12 + xorq %r8,%r13 + movq %r13,-20(%rsi) + + andq %r8,%r9 + xorq %r14,%r9 + movq %r9,12(%rsi) + + orq %r8,%r14 + movq -60(%rdi),%r9 + xorq %r11,%r14 + movq 36(%rdi),%r11 + movq %r14,4(%rsi) + + + movq -68(%rdi),%r8 + + xorq %rcx,%r10 + xorq %rdx,%r11 + rolq $10,%r10 + xorq %rbx,%r9 + rolq $15,%r11 + xorq %rbp,%r12 + rolq $36,%r9 + xorq %rax,%r8 + rolq $56,%r12 + movq %r10,%r13 + orq %r11,%r10 + rolq $27,%r8 + + notq %r11 + xorq %r9,%r10 + movq %r10,28(%rsi) + + movq %r12,%r14 + orq %r11,%r12 + xorq %r13,%r12 + movq %r12,36(%rsi) + + andq %r9,%r13 + xorq %r8,%r13 + movq %r13,20(%rsi) + + orq %r8,%r9 + xorq %r14,%r9 + movq %r9,52(%rsi) + + andq %r14,%r8 + xorq %r11,%r8 + movq %r8,44(%rsi) + + + xorq -84(%rdi),%rdx + xorq -36(%rdi),%rbp + rolq $62,%rdx + xorq 68(%rdi),%rcx + rolq $55,%rbp + xorq 12(%rdi),%rax + rolq $2,%rcx + xorq 20(%rdi),%rbx + xchgq %rsi,%rdi + rolq $39,%rax + rolq $41,%rbx + movq %rdx,%r13 + andq %rbp,%rdx + notq %rbp + xorq %rcx,%rdx + movq %rdx,92(%rdi) + + movq %rax,%r14 + andq %rbp,%rax + xorq %r13,%rax + movq %rax,60(%rdi) + + orq %rcx,%r13 + xorq %rbx,%r13 + movq %r13,84(%rdi) + + andq %rbx,%rcx + xorq %r14,%rcx + movq %rcx,76(%rdi) + + orq %r14,%rbx + xorq %rbp,%rbx + movq %rbx,68(%rdi) + + movq %rdx,%rbp + movq %r13,%rdx + + testq $255,%r15 + jnz L$oop + + leaq -192(%r15),%r15 + .byte 0xf3,0xc3 + + + + +.p2align 5 +KeccakF1600: + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + + leaq 100(%rdi),%rdi + subq $200,%rsp + + + notq -92(%rdi) + notq -84(%rdi) + notq -36(%rdi) + notq -4(%rdi) + notq 36(%rdi) + notq 60(%rdi) + + leaq iotas(%rip),%r15 + leaq 100(%rsp),%rsi + + call __KeccakF1600 + + notq -92(%rdi) + notq -84(%rdi) + notq -36(%rdi) + notq -4(%rdi) + notq 36(%rdi) + notq 60(%rdi) + leaq -100(%rdi),%rdi + + addq $200,%rsp + + + popq %r15 + + popq %r14 + + popq %r13 + + popq %r12 + + popq %rbp + + popq %rbx + + .byte 0xf3,0xc3 + + +.globl _SHA3_absorb + +.p2align 5 +_SHA3_absorb: + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + + leaq 100(%rdi),%rdi + subq $232,%rsp + + + movq %rsi,%r9 + leaq 100(%rsp),%rsi + + notq -92(%rdi) + notq -84(%rdi) + notq -36(%rdi) + notq -4(%rdi) + notq 36(%rdi) + notq 60(%rdi) + leaq iotas(%rip),%r15 + + movq %rcx,216-100(%rsi) + +L$oop_absorb: + cmpq %rcx,%rdx + jc L$done_absorb + + shrq $3,%rcx + leaq -100(%rdi),%r8 + +L$block_absorb: + movq (%r9),%rax + leaq 8(%r9),%r9 + xorq (%r8),%rax + leaq 8(%r8),%r8 + subq $8,%rdx + movq %rax,-8(%r8) + subq $1,%rcx + jnz L$block_absorb + + movq %r9,200-100(%rsi) + movq %rdx,208-100(%rsi) + call __KeccakF1600 + movq 200-100(%rsi),%r9 + movq 208-100(%rsi),%rdx + movq 216-100(%rsi),%rcx + jmp L$oop_absorb + +.p2align 5 +L$done_absorb: + movq %rdx,%rax + + notq -92(%rdi) + notq -84(%rdi) + notq -36(%rdi) + notq -4(%rdi) + notq 36(%rdi) + notq 60(%rdi) + + addq $232,%rsp + + + popq %r15 + + popq %r14 + + popq %r13 + + popq %r12 + + popq %rbp + + popq %rbx + + .byte 0xf3,0xc3 + + +.globl _SHA3_squeeze + +.p2align 5 +_SHA3_squeeze: + + pushq %r12 + + pushq %r13 + + pushq %r14 + + + shrq $3,%rcx + movq %rdi,%r8 + movq %rsi,%r12 + movq %rdx,%r13 + movq %rcx,%r14 + jmp L$oop_squeeze + +.p2align 5 +L$oop_squeeze: + cmpq $8,%r13 + jb L$tail_squeeze + + movq (%r8),%rax + leaq 8(%r8),%r8 + movq %rax,(%r12) + leaq 8(%r12),%r12 + subq $8,%r13 + jz L$done_squeeze + + subq $1,%rcx + jnz L$oop_squeeze + + call KeccakF1600 + movq %rdi,%r8 + movq %r14,%rcx + jmp L$oop_squeeze + +L$tail_squeeze: + movq %r8,%rsi + movq %r12,%rdi + movq %r13,%rcx +.byte 0xf3,0xa4 + +L$done_squeeze: + popq %r14 + + popq %r13 + + popq %r12 + + .byte 0xf3,0xc3 + + +.p2align 8 +.quad 0,0,0,0,0,0,0,0 + +iotas: +.quad 0x0000000000000001 +.quad 0x0000000000008082 +.quad 0x800000000000808a +.quad 0x8000000080008000 +.quad 0x000000000000808b +.quad 0x0000000080000001 +.quad 0x8000000080008081 +.quad 0x8000000000008009 +.quad 0x000000000000008a +.quad 0x0000000000000088 +.quad 0x0000000080008009 +.quad 0x000000008000000a +.quad 0x000000008000808b +.quad 0x800000000000008b +.quad 0x8000000000008089 +.quad 0x8000000000008003 +.quad 0x8000000000008002 +.quad 0x8000000000000080 +.quad 0x000000000000800a +.quad 0x800000008000000a +.quad 0x8000000080008081 +.quad 0x8000000000008080 +.quad 0x0000000080000001 +.quad 0x8000000080008008 + +.byte 75,101,99,99,97,107,45,49,54,48,48,32,97,98,115,111,114,98,32,97,110,100,32,115,113,117,101,101,122,101,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 diff --git a/vere/ext/openssl/gen/macos-x86_64/crypto/sha/sha1-mb-x86_64.s b/vere/ext/openssl/gen/macos-x86_64/crypto/sha/sha1-mb-x86_64.s new file mode 100644 index 0000000..b2009fb --- /dev/null +++ b/vere/ext/openssl/gen/macos-x86_64/crypto/sha/sha1-mb-x86_64.s @@ -0,0 +1,7267 @@ +.text + + + +.globl _sha1_multi_block + +.p2align 5 +_sha1_multi_block: + + movq _OPENSSL_ia32cap_P+4(%rip),%rcx + btq $61,%rcx + jc _shaext_shortcut + testl $268435456,%ecx + jnz _avx_shortcut + movq %rsp,%rax + + pushq %rbx + + pushq %rbp + + subq $288,%rsp + andq $-256,%rsp + movq %rax,272(%rsp) + +L$body: + leaq K_XX_XX(%rip),%rbp + leaq 256(%rsp),%rbx + +L$oop_grande: + movl %edx,280(%rsp) + xorl %edx,%edx + movq 0(%rsi),%r8 + movl 8(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,0(%rbx) + cmovleq %rbp,%r8 + movq 16(%rsi),%r9 + movl 24(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,4(%rbx) + cmovleq %rbp,%r9 + movq 32(%rsi),%r10 + movl 40(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,8(%rbx) + cmovleq %rbp,%r10 + movq 48(%rsi),%r11 + movl 56(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,12(%rbx) + cmovleq %rbp,%r11 + testl %edx,%edx + jz L$done + + movdqu 0(%rdi),%xmm10 + leaq 128(%rsp),%rax + movdqu 32(%rdi),%xmm11 + movdqu 64(%rdi),%xmm12 + movdqu 96(%rdi),%xmm13 + movdqu 128(%rdi),%xmm14 + movdqa 96(%rbp),%xmm5 + movdqa -32(%rbp),%xmm15 + jmp L$oop + +.p2align 5 +L$oop: + movd (%r8),%xmm0 + leaq 64(%r8),%r8 + movd (%r9),%xmm2 + leaq 64(%r9),%r9 + movd (%r10),%xmm3 + leaq 64(%r10),%r10 + movd (%r11),%xmm4 + leaq 64(%r11),%r11 + punpckldq %xmm3,%xmm0 + movd -60(%r8),%xmm1 + punpckldq %xmm4,%xmm2 + movd -60(%r9),%xmm9 + punpckldq %xmm2,%xmm0 + movd -60(%r10),%xmm8 +.byte 102,15,56,0,197 + movd -60(%r11),%xmm7 + punpckldq %xmm8,%xmm1 + movdqa %xmm10,%xmm8 + paddd %xmm15,%xmm14 + punpckldq %xmm7,%xmm9 + movdqa %xmm11,%xmm7 + movdqa %xmm11,%xmm6 + pslld $5,%xmm8 + pandn %xmm13,%xmm7 + pand %xmm12,%xmm6 + punpckldq %xmm9,%xmm1 + movdqa %xmm10,%xmm9 + + movdqa %xmm0,0-128(%rax) + paddd %xmm0,%xmm14 + movd -56(%r8),%xmm2 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + movdqa %xmm11,%xmm7 + + por %xmm9,%xmm8 + movd -56(%r9),%xmm9 + pslld $30,%xmm7 + paddd %xmm6,%xmm14 + + psrld $2,%xmm11 + paddd %xmm8,%xmm14 +.byte 102,15,56,0,205 + movd -56(%r10),%xmm8 + por %xmm7,%xmm11 + movd -56(%r11),%xmm7 + punpckldq %xmm8,%xmm2 + movdqa %xmm14,%xmm8 + paddd %xmm15,%xmm13 + punpckldq %xmm7,%xmm9 + movdqa %xmm10,%xmm7 + movdqa %xmm10,%xmm6 + pslld $5,%xmm8 + pandn %xmm12,%xmm7 + pand %xmm11,%xmm6 + punpckldq %xmm9,%xmm2 + movdqa %xmm14,%xmm9 + + movdqa %xmm1,16-128(%rax) + paddd %xmm1,%xmm13 + movd -52(%r8),%xmm3 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + movdqa %xmm10,%xmm7 + + por %xmm9,%xmm8 + movd -52(%r9),%xmm9 + pslld $30,%xmm7 + paddd %xmm6,%xmm13 + + psrld $2,%xmm10 + paddd %xmm8,%xmm13 +.byte 102,15,56,0,213 + movd -52(%r10),%xmm8 + por %xmm7,%xmm10 + movd -52(%r11),%xmm7 + punpckldq %xmm8,%xmm3 + movdqa %xmm13,%xmm8 + paddd %xmm15,%xmm12 + punpckldq %xmm7,%xmm9 + movdqa %xmm14,%xmm7 + movdqa %xmm14,%xmm6 + pslld $5,%xmm8 + pandn %xmm11,%xmm7 + pand %xmm10,%xmm6 + punpckldq %xmm9,%xmm3 + movdqa %xmm13,%xmm9 + + movdqa %xmm2,32-128(%rax) + paddd %xmm2,%xmm12 + movd -48(%r8),%xmm4 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + movdqa %xmm14,%xmm7 + + por %xmm9,%xmm8 + movd -48(%r9),%xmm9 + pslld $30,%xmm7 + paddd %xmm6,%xmm12 + + psrld $2,%xmm14 + paddd %xmm8,%xmm12 +.byte 102,15,56,0,221 + movd -48(%r10),%xmm8 + por %xmm7,%xmm14 + movd -48(%r11),%xmm7 + punpckldq %xmm8,%xmm4 + movdqa %xmm12,%xmm8 + paddd %xmm15,%xmm11 + punpckldq %xmm7,%xmm9 + movdqa %xmm13,%xmm7 + movdqa %xmm13,%xmm6 + pslld $5,%xmm8 + pandn %xmm10,%xmm7 + pand %xmm14,%xmm6 + punpckldq %xmm9,%xmm4 + movdqa %xmm12,%xmm9 + + movdqa %xmm3,48-128(%rax) + paddd %xmm3,%xmm11 + movd -44(%r8),%xmm0 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + movdqa %xmm13,%xmm7 + + por %xmm9,%xmm8 + movd -44(%r9),%xmm9 + pslld $30,%xmm7 + paddd %xmm6,%xmm11 + + psrld $2,%xmm13 + paddd %xmm8,%xmm11 +.byte 102,15,56,0,229 + movd -44(%r10),%xmm8 + por %xmm7,%xmm13 + movd -44(%r11),%xmm7 + punpckldq %xmm8,%xmm0 + movdqa %xmm11,%xmm8 + paddd %xmm15,%xmm10 + punpckldq %xmm7,%xmm9 + movdqa %xmm12,%xmm7 + movdqa %xmm12,%xmm6 + pslld $5,%xmm8 + pandn %xmm14,%xmm7 + pand %xmm13,%xmm6 + punpckldq %xmm9,%xmm0 + movdqa %xmm11,%xmm9 + + movdqa %xmm4,64-128(%rax) + paddd %xmm4,%xmm10 + movd -40(%r8),%xmm1 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + movdqa %xmm12,%xmm7 + + por %xmm9,%xmm8 + movd -40(%r9),%xmm9 + pslld $30,%xmm7 + paddd %xmm6,%xmm10 + + psrld $2,%xmm12 + paddd %xmm8,%xmm10 +.byte 102,15,56,0,197 + movd -40(%r10),%xmm8 + por %xmm7,%xmm12 + movd -40(%r11),%xmm7 + punpckldq %xmm8,%xmm1 + movdqa %xmm10,%xmm8 + paddd %xmm15,%xmm14 + punpckldq %xmm7,%xmm9 + movdqa %xmm11,%xmm7 + movdqa %xmm11,%xmm6 + pslld $5,%xmm8 + pandn %xmm13,%xmm7 + pand %xmm12,%xmm6 + punpckldq %xmm9,%xmm1 + movdqa %xmm10,%xmm9 + + movdqa %xmm0,80-128(%rax) + paddd %xmm0,%xmm14 + movd -36(%r8),%xmm2 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + movdqa %xmm11,%xmm7 + + por %xmm9,%xmm8 + movd -36(%r9),%xmm9 + pslld $30,%xmm7 + paddd %xmm6,%xmm14 + + psrld $2,%xmm11 + paddd %xmm8,%xmm14 +.byte 102,15,56,0,205 + movd -36(%r10),%xmm8 + por %xmm7,%xmm11 + movd -36(%r11),%xmm7 + punpckldq %xmm8,%xmm2 + movdqa %xmm14,%xmm8 + paddd %xmm15,%xmm13 + punpckldq %xmm7,%xmm9 + movdqa %xmm10,%xmm7 + movdqa %xmm10,%xmm6 + pslld $5,%xmm8 + pandn %xmm12,%xmm7 + pand %xmm11,%xmm6 + punpckldq %xmm9,%xmm2 + movdqa %xmm14,%xmm9 + + movdqa %xmm1,96-128(%rax) + paddd %xmm1,%xmm13 + movd -32(%r8),%xmm3 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + movdqa %xmm10,%xmm7 + + por %xmm9,%xmm8 + movd -32(%r9),%xmm9 + pslld $30,%xmm7 + paddd %xmm6,%xmm13 + + psrld $2,%xmm10 + paddd %xmm8,%xmm13 +.byte 102,15,56,0,213 + movd -32(%r10),%xmm8 + por %xmm7,%xmm10 + movd -32(%r11),%xmm7 + punpckldq %xmm8,%xmm3 + movdqa %xmm13,%xmm8 + paddd %xmm15,%xmm12 + punpckldq %xmm7,%xmm9 + movdqa %xmm14,%xmm7 + movdqa %xmm14,%xmm6 + pslld $5,%xmm8 + pandn %xmm11,%xmm7 + pand %xmm10,%xmm6 + punpckldq %xmm9,%xmm3 + movdqa %xmm13,%xmm9 + + movdqa %xmm2,112-128(%rax) + paddd %xmm2,%xmm12 + movd -28(%r8),%xmm4 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + movdqa %xmm14,%xmm7 + + por %xmm9,%xmm8 + movd -28(%r9),%xmm9 + pslld $30,%xmm7 + paddd %xmm6,%xmm12 + + psrld $2,%xmm14 + paddd %xmm8,%xmm12 +.byte 102,15,56,0,221 + movd -28(%r10),%xmm8 + por %xmm7,%xmm14 + movd -28(%r11),%xmm7 + punpckldq %xmm8,%xmm4 + movdqa %xmm12,%xmm8 + paddd %xmm15,%xmm11 + punpckldq %xmm7,%xmm9 + movdqa %xmm13,%xmm7 + movdqa %xmm13,%xmm6 + pslld $5,%xmm8 + pandn %xmm10,%xmm7 + pand %xmm14,%xmm6 + punpckldq %xmm9,%xmm4 + movdqa %xmm12,%xmm9 + + movdqa %xmm3,128-128(%rax) + paddd %xmm3,%xmm11 + movd -24(%r8),%xmm0 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + movdqa %xmm13,%xmm7 + + por %xmm9,%xmm8 + movd -24(%r9),%xmm9 + pslld $30,%xmm7 + paddd %xmm6,%xmm11 + + psrld $2,%xmm13 + paddd %xmm8,%xmm11 +.byte 102,15,56,0,229 + movd -24(%r10),%xmm8 + por %xmm7,%xmm13 + movd -24(%r11),%xmm7 + punpckldq %xmm8,%xmm0 + movdqa %xmm11,%xmm8 + paddd %xmm15,%xmm10 + punpckldq %xmm7,%xmm9 + movdqa %xmm12,%xmm7 + movdqa %xmm12,%xmm6 + pslld $5,%xmm8 + pandn %xmm14,%xmm7 + pand %xmm13,%xmm6 + punpckldq %xmm9,%xmm0 + movdqa %xmm11,%xmm9 + + movdqa %xmm4,144-128(%rax) + paddd %xmm4,%xmm10 + movd -20(%r8),%xmm1 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + movdqa %xmm12,%xmm7 + + por %xmm9,%xmm8 + movd -20(%r9),%xmm9 + pslld $30,%xmm7 + paddd %xmm6,%xmm10 + + psrld $2,%xmm12 + paddd %xmm8,%xmm10 +.byte 102,15,56,0,197 + movd -20(%r10),%xmm8 + por %xmm7,%xmm12 + movd -20(%r11),%xmm7 + punpckldq %xmm8,%xmm1 + movdqa %xmm10,%xmm8 + paddd %xmm15,%xmm14 + punpckldq %xmm7,%xmm9 + movdqa %xmm11,%xmm7 + movdqa %xmm11,%xmm6 + pslld $5,%xmm8 + pandn %xmm13,%xmm7 + pand %xmm12,%xmm6 + punpckldq %xmm9,%xmm1 + movdqa %xmm10,%xmm9 + + movdqa %xmm0,160-128(%rax) + paddd %xmm0,%xmm14 + movd -16(%r8),%xmm2 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + movdqa %xmm11,%xmm7 + + por %xmm9,%xmm8 + movd -16(%r9),%xmm9 + pslld $30,%xmm7 + paddd %xmm6,%xmm14 + + psrld $2,%xmm11 + paddd %xmm8,%xmm14 +.byte 102,15,56,0,205 + movd -16(%r10),%xmm8 + por %xmm7,%xmm11 + movd -16(%r11),%xmm7 + punpckldq %xmm8,%xmm2 + movdqa %xmm14,%xmm8 + paddd %xmm15,%xmm13 + punpckldq %xmm7,%xmm9 + movdqa %xmm10,%xmm7 + movdqa %xmm10,%xmm6 + pslld $5,%xmm8 + pandn %xmm12,%xmm7 + pand %xmm11,%xmm6 + punpckldq %xmm9,%xmm2 + movdqa %xmm14,%xmm9 + + movdqa %xmm1,176-128(%rax) + paddd %xmm1,%xmm13 + movd -12(%r8),%xmm3 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + movdqa %xmm10,%xmm7 + + por %xmm9,%xmm8 + movd -12(%r9),%xmm9 + pslld $30,%xmm7 + paddd %xmm6,%xmm13 + + psrld $2,%xmm10 + paddd %xmm8,%xmm13 +.byte 102,15,56,0,213 + movd -12(%r10),%xmm8 + por %xmm7,%xmm10 + movd -12(%r11),%xmm7 + punpckldq %xmm8,%xmm3 + movdqa %xmm13,%xmm8 + paddd %xmm15,%xmm12 + punpckldq %xmm7,%xmm9 + movdqa %xmm14,%xmm7 + movdqa %xmm14,%xmm6 + pslld $5,%xmm8 + pandn %xmm11,%xmm7 + pand %xmm10,%xmm6 + punpckldq %xmm9,%xmm3 + movdqa %xmm13,%xmm9 + + movdqa %xmm2,192-128(%rax) + paddd %xmm2,%xmm12 + movd -8(%r8),%xmm4 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + movdqa %xmm14,%xmm7 + + por %xmm9,%xmm8 + movd -8(%r9),%xmm9 + pslld $30,%xmm7 + paddd %xmm6,%xmm12 + + psrld $2,%xmm14 + paddd %xmm8,%xmm12 +.byte 102,15,56,0,221 + movd -8(%r10),%xmm8 + por %xmm7,%xmm14 + movd -8(%r11),%xmm7 + punpckldq %xmm8,%xmm4 + movdqa %xmm12,%xmm8 + paddd %xmm15,%xmm11 + punpckldq %xmm7,%xmm9 + movdqa %xmm13,%xmm7 + movdqa %xmm13,%xmm6 + pslld $5,%xmm8 + pandn %xmm10,%xmm7 + pand %xmm14,%xmm6 + punpckldq %xmm9,%xmm4 + movdqa %xmm12,%xmm9 + + movdqa %xmm3,208-128(%rax) + paddd %xmm3,%xmm11 + movd -4(%r8),%xmm0 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + movdqa %xmm13,%xmm7 + + por %xmm9,%xmm8 + movd -4(%r9),%xmm9 + pslld $30,%xmm7 + paddd %xmm6,%xmm11 + + psrld $2,%xmm13 + paddd %xmm8,%xmm11 +.byte 102,15,56,0,229 + movd -4(%r10),%xmm8 + por %xmm7,%xmm13 + movdqa 0-128(%rax),%xmm1 + movd -4(%r11),%xmm7 + punpckldq %xmm8,%xmm0 + movdqa %xmm11,%xmm8 + paddd %xmm15,%xmm10 + punpckldq %xmm7,%xmm9 + movdqa %xmm12,%xmm7 + movdqa %xmm12,%xmm6 + pslld $5,%xmm8 + prefetcht0 63(%r8) + pandn %xmm14,%xmm7 + pand %xmm13,%xmm6 + punpckldq %xmm9,%xmm0 + movdqa %xmm11,%xmm9 + + movdqa %xmm4,224-128(%rax) + paddd %xmm4,%xmm10 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + movdqa %xmm12,%xmm7 + prefetcht0 63(%r9) + + por %xmm9,%xmm8 + pslld $30,%xmm7 + paddd %xmm6,%xmm10 + prefetcht0 63(%r10) + + psrld $2,%xmm12 + paddd %xmm8,%xmm10 +.byte 102,15,56,0,197 + prefetcht0 63(%r11) + por %xmm7,%xmm12 + movdqa 16-128(%rax),%xmm2 + pxor %xmm3,%xmm1 + movdqa 32-128(%rax),%xmm3 + + movdqa %xmm10,%xmm8 + pxor 128-128(%rax),%xmm1 + paddd %xmm15,%xmm14 + movdqa %xmm11,%xmm7 + pslld $5,%xmm8 + pxor %xmm3,%xmm1 + movdqa %xmm11,%xmm6 + pandn %xmm13,%xmm7 + movdqa %xmm1,%xmm5 + pand %xmm12,%xmm6 + movdqa %xmm10,%xmm9 + psrld $31,%xmm5 + paddd %xmm1,%xmm1 + + movdqa %xmm0,240-128(%rax) + paddd %xmm0,%xmm14 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + + movdqa %xmm11,%xmm7 + por %xmm9,%xmm8 + pslld $30,%xmm7 + paddd %xmm6,%xmm14 + + psrld $2,%xmm11 + paddd %xmm8,%xmm14 + por %xmm5,%xmm1 + por %xmm7,%xmm11 + pxor %xmm4,%xmm2 + movdqa 48-128(%rax),%xmm4 + + movdqa %xmm14,%xmm8 + pxor 144-128(%rax),%xmm2 + paddd %xmm15,%xmm13 + movdqa %xmm10,%xmm7 + pslld $5,%xmm8 + pxor %xmm4,%xmm2 + movdqa %xmm10,%xmm6 + pandn %xmm12,%xmm7 + movdqa %xmm2,%xmm5 + pand %xmm11,%xmm6 + movdqa %xmm14,%xmm9 + psrld $31,%xmm5 + paddd %xmm2,%xmm2 + + movdqa %xmm1,0-128(%rax) + paddd %xmm1,%xmm13 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + + movdqa %xmm10,%xmm7 + por %xmm9,%xmm8 + pslld $30,%xmm7 + paddd %xmm6,%xmm13 + + psrld $2,%xmm10 + paddd %xmm8,%xmm13 + por %xmm5,%xmm2 + por %xmm7,%xmm10 + pxor %xmm0,%xmm3 + movdqa 64-128(%rax),%xmm0 + + movdqa %xmm13,%xmm8 + pxor 160-128(%rax),%xmm3 + paddd %xmm15,%xmm12 + movdqa %xmm14,%xmm7 + pslld $5,%xmm8 + pxor %xmm0,%xmm3 + movdqa %xmm14,%xmm6 + pandn %xmm11,%xmm7 + movdqa %xmm3,%xmm5 + pand %xmm10,%xmm6 + movdqa %xmm13,%xmm9 + psrld $31,%xmm5 + paddd %xmm3,%xmm3 + + movdqa %xmm2,16-128(%rax) + paddd %xmm2,%xmm12 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + + movdqa %xmm14,%xmm7 + por %xmm9,%xmm8 + pslld $30,%xmm7 + paddd %xmm6,%xmm12 + + psrld $2,%xmm14 + paddd %xmm8,%xmm12 + por %xmm5,%xmm3 + por %xmm7,%xmm14 + pxor %xmm1,%xmm4 + movdqa 80-128(%rax),%xmm1 + + movdqa %xmm12,%xmm8 + pxor 176-128(%rax),%xmm4 + paddd %xmm15,%xmm11 + movdqa %xmm13,%xmm7 + pslld $5,%xmm8 + pxor %xmm1,%xmm4 + movdqa %xmm13,%xmm6 + pandn %xmm10,%xmm7 + movdqa %xmm4,%xmm5 + pand %xmm14,%xmm6 + movdqa %xmm12,%xmm9 + psrld $31,%xmm5 + paddd %xmm4,%xmm4 + + movdqa %xmm3,32-128(%rax) + paddd %xmm3,%xmm11 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + + movdqa %xmm13,%xmm7 + por %xmm9,%xmm8 + pslld $30,%xmm7 + paddd %xmm6,%xmm11 + + psrld $2,%xmm13 + paddd %xmm8,%xmm11 + por %xmm5,%xmm4 + por %xmm7,%xmm13 + pxor %xmm2,%xmm0 + movdqa 96-128(%rax),%xmm2 + + movdqa %xmm11,%xmm8 + pxor 192-128(%rax),%xmm0 + paddd %xmm15,%xmm10 + movdqa %xmm12,%xmm7 + pslld $5,%xmm8 + pxor %xmm2,%xmm0 + movdqa %xmm12,%xmm6 + pandn %xmm14,%xmm7 + movdqa %xmm0,%xmm5 + pand %xmm13,%xmm6 + movdqa %xmm11,%xmm9 + psrld $31,%xmm5 + paddd %xmm0,%xmm0 + + movdqa %xmm4,48-128(%rax) + paddd %xmm4,%xmm10 + psrld $27,%xmm9 + pxor %xmm7,%xmm6 + + movdqa %xmm12,%xmm7 + por %xmm9,%xmm8 + pslld $30,%xmm7 + paddd %xmm6,%xmm10 + + psrld $2,%xmm12 + paddd %xmm8,%xmm10 + por %xmm5,%xmm0 + por %xmm7,%xmm12 + movdqa 0(%rbp),%xmm15 + pxor %xmm3,%xmm1 + movdqa 112-128(%rax),%xmm3 + + movdqa %xmm10,%xmm8 + movdqa %xmm13,%xmm6 + pxor 208-128(%rax),%xmm1 + paddd %xmm15,%xmm14 + pslld $5,%xmm8 + pxor %xmm11,%xmm6 + + movdqa %xmm10,%xmm9 + movdqa %xmm0,64-128(%rax) + paddd %xmm0,%xmm14 + pxor %xmm3,%xmm1 + psrld $27,%xmm9 + pxor %xmm12,%xmm6 + movdqa %xmm11,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm1,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm14 + paddd %xmm1,%xmm1 + + psrld $2,%xmm11 + paddd %xmm8,%xmm14 + por %xmm5,%xmm1 + por %xmm7,%xmm11 + pxor %xmm4,%xmm2 + movdqa 128-128(%rax),%xmm4 + + movdqa %xmm14,%xmm8 + movdqa %xmm12,%xmm6 + pxor 224-128(%rax),%xmm2 + paddd %xmm15,%xmm13 + pslld $5,%xmm8 + pxor %xmm10,%xmm6 + + movdqa %xmm14,%xmm9 + movdqa %xmm1,80-128(%rax) + paddd %xmm1,%xmm13 + pxor %xmm4,%xmm2 + psrld $27,%xmm9 + pxor %xmm11,%xmm6 + movdqa %xmm10,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm2,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm13 + paddd %xmm2,%xmm2 + + psrld $2,%xmm10 + paddd %xmm8,%xmm13 + por %xmm5,%xmm2 + por %xmm7,%xmm10 + pxor %xmm0,%xmm3 + movdqa 144-128(%rax),%xmm0 + + movdqa %xmm13,%xmm8 + movdqa %xmm11,%xmm6 + pxor 240-128(%rax),%xmm3 + paddd %xmm15,%xmm12 + pslld $5,%xmm8 + pxor %xmm14,%xmm6 + + movdqa %xmm13,%xmm9 + movdqa %xmm2,96-128(%rax) + paddd %xmm2,%xmm12 + pxor %xmm0,%xmm3 + psrld $27,%xmm9 + pxor %xmm10,%xmm6 + movdqa %xmm14,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm3,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm12 + paddd %xmm3,%xmm3 + + psrld $2,%xmm14 + paddd %xmm8,%xmm12 + por %xmm5,%xmm3 + por %xmm7,%xmm14 + pxor %xmm1,%xmm4 + movdqa 160-128(%rax),%xmm1 + + movdqa %xmm12,%xmm8 + movdqa %xmm10,%xmm6 + pxor 0-128(%rax),%xmm4 + paddd %xmm15,%xmm11 + pslld $5,%xmm8 + pxor %xmm13,%xmm6 + + movdqa %xmm12,%xmm9 + movdqa %xmm3,112-128(%rax) + paddd %xmm3,%xmm11 + pxor %xmm1,%xmm4 + psrld $27,%xmm9 + pxor %xmm14,%xmm6 + movdqa %xmm13,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm4,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm11 + paddd %xmm4,%xmm4 + + psrld $2,%xmm13 + paddd %xmm8,%xmm11 + por %xmm5,%xmm4 + por %xmm7,%xmm13 + pxor %xmm2,%xmm0 + movdqa 176-128(%rax),%xmm2 + + movdqa %xmm11,%xmm8 + movdqa %xmm14,%xmm6 + pxor 16-128(%rax),%xmm0 + paddd %xmm15,%xmm10 + pslld $5,%xmm8 + pxor %xmm12,%xmm6 + + movdqa %xmm11,%xmm9 + movdqa %xmm4,128-128(%rax) + paddd %xmm4,%xmm10 + pxor %xmm2,%xmm0 + psrld $27,%xmm9 + pxor %xmm13,%xmm6 + movdqa %xmm12,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm0,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm10 + paddd %xmm0,%xmm0 + + psrld $2,%xmm12 + paddd %xmm8,%xmm10 + por %xmm5,%xmm0 + por %xmm7,%xmm12 + pxor %xmm3,%xmm1 + movdqa 192-128(%rax),%xmm3 + + movdqa %xmm10,%xmm8 + movdqa %xmm13,%xmm6 + pxor 32-128(%rax),%xmm1 + paddd %xmm15,%xmm14 + pslld $5,%xmm8 + pxor %xmm11,%xmm6 + + movdqa %xmm10,%xmm9 + movdqa %xmm0,144-128(%rax) + paddd %xmm0,%xmm14 + pxor %xmm3,%xmm1 + psrld $27,%xmm9 + pxor %xmm12,%xmm6 + movdqa %xmm11,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm1,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm14 + paddd %xmm1,%xmm1 + + psrld $2,%xmm11 + paddd %xmm8,%xmm14 + por %xmm5,%xmm1 + por %xmm7,%xmm11 + pxor %xmm4,%xmm2 + movdqa 208-128(%rax),%xmm4 + + movdqa %xmm14,%xmm8 + movdqa %xmm12,%xmm6 + pxor 48-128(%rax),%xmm2 + paddd %xmm15,%xmm13 + pslld $5,%xmm8 + pxor %xmm10,%xmm6 + + movdqa %xmm14,%xmm9 + movdqa %xmm1,160-128(%rax) + paddd %xmm1,%xmm13 + pxor %xmm4,%xmm2 + psrld $27,%xmm9 + pxor %xmm11,%xmm6 + movdqa %xmm10,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm2,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm13 + paddd %xmm2,%xmm2 + + psrld $2,%xmm10 + paddd %xmm8,%xmm13 + por %xmm5,%xmm2 + por %xmm7,%xmm10 + pxor %xmm0,%xmm3 + movdqa 224-128(%rax),%xmm0 + + movdqa %xmm13,%xmm8 + movdqa %xmm11,%xmm6 + pxor 64-128(%rax),%xmm3 + paddd %xmm15,%xmm12 + pslld $5,%xmm8 + pxor %xmm14,%xmm6 + + movdqa %xmm13,%xmm9 + movdqa %xmm2,176-128(%rax) + paddd %xmm2,%xmm12 + pxor %xmm0,%xmm3 + psrld $27,%xmm9 + pxor %xmm10,%xmm6 + movdqa %xmm14,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm3,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm12 + paddd %xmm3,%xmm3 + + psrld $2,%xmm14 + paddd %xmm8,%xmm12 + por %xmm5,%xmm3 + por %xmm7,%xmm14 + pxor %xmm1,%xmm4 + movdqa 240-128(%rax),%xmm1 + + movdqa %xmm12,%xmm8 + movdqa %xmm10,%xmm6 + pxor 80-128(%rax),%xmm4 + paddd %xmm15,%xmm11 + pslld $5,%xmm8 + pxor %xmm13,%xmm6 + + movdqa %xmm12,%xmm9 + movdqa %xmm3,192-128(%rax) + paddd %xmm3,%xmm11 + pxor %xmm1,%xmm4 + psrld $27,%xmm9 + pxor %xmm14,%xmm6 + movdqa %xmm13,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm4,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm11 + paddd %xmm4,%xmm4 + + psrld $2,%xmm13 + paddd %xmm8,%xmm11 + por %xmm5,%xmm4 + por %xmm7,%xmm13 + pxor %xmm2,%xmm0 + movdqa 0-128(%rax),%xmm2 + + movdqa %xmm11,%xmm8 + movdqa %xmm14,%xmm6 + pxor 96-128(%rax),%xmm0 + paddd %xmm15,%xmm10 + pslld $5,%xmm8 + pxor %xmm12,%xmm6 + + movdqa %xmm11,%xmm9 + movdqa %xmm4,208-128(%rax) + paddd %xmm4,%xmm10 + pxor %xmm2,%xmm0 + psrld $27,%xmm9 + pxor %xmm13,%xmm6 + movdqa %xmm12,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm0,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm10 + paddd %xmm0,%xmm0 + + psrld $2,%xmm12 + paddd %xmm8,%xmm10 + por %xmm5,%xmm0 + por %xmm7,%xmm12 + pxor %xmm3,%xmm1 + movdqa 16-128(%rax),%xmm3 + + movdqa %xmm10,%xmm8 + movdqa %xmm13,%xmm6 + pxor 112-128(%rax),%xmm1 + paddd %xmm15,%xmm14 + pslld $5,%xmm8 + pxor %xmm11,%xmm6 + + movdqa %xmm10,%xmm9 + movdqa %xmm0,224-128(%rax) + paddd %xmm0,%xmm14 + pxor %xmm3,%xmm1 + psrld $27,%xmm9 + pxor %xmm12,%xmm6 + movdqa %xmm11,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm1,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm14 + paddd %xmm1,%xmm1 + + psrld $2,%xmm11 + paddd %xmm8,%xmm14 + por %xmm5,%xmm1 + por %xmm7,%xmm11 + pxor %xmm4,%xmm2 + movdqa 32-128(%rax),%xmm4 + + movdqa %xmm14,%xmm8 + movdqa %xmm12,%xmm6 + pxor 128-128(%rax),%xmm2 + paddd %xmm15,%xmm13 + pslld $5,%xmm8 + pxor %xmm10,%xmm6 + + movdqa %xmm14,%xmm9 + movdqa %xmm1,240-128(%rax) + paddd %xmm1,%xmm13 + pxor %xmm4,%xmm2 + psrld $27,%xmm9 + pxor %xmm11,%xmm6 + movdqa %xmm10,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm2,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm13 + paddd %xmm2,%xmm2 + + psrld $2,%xmm10 + paddd %xmm8,%xmm13 + por %xmm5,%xmm2 + por %xmm7,%xmm10 + pxor %xmm0,%xmm3 + movdqa 48-128(%rax),%xmm0 + + movdqa %xmm13,%xmm8 + movdqa %xmm11,%xmm6 + pxor 144-128(%rax),%xmm3 + paddd %xmm15,%xmm12 + pslld $5,%xmm8 + pxor %xmm14,%xmm6 + + movdqa %xmm13,%xmm9 + movdqa %xmm2,0-128(%rax) + paddd %xmm2,%xmm12 + pxor %xmm0,%xmm3 + psrld $27,%xmm9 + pxor %xmm10,%xmm6 + movdqa %xmm14,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm3,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm12 + paddd %xmm3,%xmm3 + + psrld $2,%xmm14 + paddd %xmm8,%xmm12 + por %xmm5,%xmm3 + por %xmm7,%xmm14 + pxor %xmm1,%xmm4 + movdqa 64-128(%rax),%xmm1 + + movdqa %xmm12,%xmm8 + movdqa %xmm10,%xmm6 + pxor 160-128(%rax),%xmm4 + paddd %xmm15,%xmm11 + pslld $5,%xmm8 + pxor %xmm13,%xmm6 + + movdqa %xmm12,%xmm9 + movdqa %xmm3,16-128(%rax) + paddd %xmm3,%xmm11 + pxor %xmm1,%xmm4 + psrld $27,%xmm9 + pxor %xmm14,%xmm6 + movdqa %xmm13,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm4,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm11 + paddd %xmm4,%xmm4 + + psrld $2,%xmm13 + paddd %xmm8,%xmm11 + por %xmm5,%xmm4 + por %xmm7,%xmm13 + pxor %xmm2,%xmm0 + movdqa 80-128(%rax),%xmm2 + + movdqa %xmm11,%xmm8 + movdqa %xmm14,%xmm6 + pxor 176-128(%rax),%xmm0 + paddd %xmm15,%xmm10 + pslld $5,%xmm8 + pxor %xmm12,%xmm6 + + movdqa %xmm11,%xmm9 + movdqa %xmm4,32-128(%rax) + paddd %xmm4,%xmm10 + pxor %xmm2,%xmm0 + psrld $27,%xmm9 + pxor %xmm13,%xmm6 + movdqa %xmm12,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm0,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm10 + paddd %xmm0,%xmm0 + + psrld $2,%xmm12 + paddd %xmm8,%xmm10 + por %xmm5,%xmm0 + por %xmm7,%xmm12 + pxor %xmm3,%xmm1 + movdqa 96-128(%rax),%xmm3 + + movdqa %xmm10,%xmm8 + movdqa %xmm13,%xmm6 + pxor 192-128(%rax),%xmm1 + paddd %xmm15,%xmm14 + pslld $5,%xmm8 + pxor %xmm11,%xmm6 + + movdqa %xmm10,%xmm9 + movdqa %xmm0,48-128(%rax) + paddd %xmm0,%xmm14 + pxor %xmm3,%xmm1 + psrld $27,%xmm9 + pxor %xmm12,%xmm6 + movdqa %xmm11,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm1,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm14 + paddd %xmm1,%xmm1 + + psrld $2,%xmm11 + paddd %xmm8,%xmm14 + por %xmm5,%xmm1 + por %xmm7,%xmm11 + pxor %xmm4,%xmm2 + movdqa 112-128(%rax),%xmm4 + + movdqa %xmm14,%xmm8 + movdqa %xmm12,%xmm6 + pxor 208-128(%rax),%xmm2 + paddd %xmm15,%xmm13 + pslld $5,%xmm8 + pxor %xmm10,%xmm6 + + movdqa %xmm14,%xmm9 + movdqa %xmm1,64-128(%rax) + paddd %xmm1,%xmm13 + pxor %xmm4,%xmm2 + psrld $27,%xmm9 + pxor %xmm11,%xmm6 + movdqa %xmm10,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm2,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm13 + paddd %xmm2,%xmm2 + + psrld $2,%xmm10 + paddd %xmm8,%xmm13 + por %xmm5,%xmm2 + por %xmm7,%xmm10 + pxor %xmm0,%xmm3 + movdqa 128-128(%rax),%xmm0 + + movdqa %xmm13,%xmm8 + movdqa %xmm11,%xmm6 + pxor 224-128(%rax),%xmm3 + paddd %xmm15,%xmm12 + pslld $5,%xmm8 + pxor %xmm14,%xmm6 + + movdqa %xmm13,%xmm9 + movdqa %xmm2,80-128(%rax) + paddd %xmm2,%xmm12 + pxor %xmm0,%xmm3 + psrld $27,%xmm9 + pxor %xmm10,%xmm6 + movdqa %xmm14,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm3,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm12 + paddd %xmm3,%xmm3 + + psrld $2,%xmm14 + paddd %xmm8,%xmm12 + por %xmm5,%xmm3 + por %xmm7,%xmm14 + pxor %xmm1,%xmm4 + movdqa 144-128(%rax),%xmm1 + + movdqa %xmm12,%xmm8 + movdqa %xmm10,%xmm6 + pxor 240-128(%rax),%xmm4 + paddd %xmm15,%xmm11 + pslld $5,%xmm8 + pxor %xmm13,%xmm6 + + movdqa %xmm12,%xmm9 + movdqa %xmm3,96-128(%rax) + paddd %xmm3,%xmm11 + pxor %xmm1,%xmm4 + psrld $27,%xmm9 + pxor %xmm14,%xmm6 + movdqa %xmm13,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm4,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm11 + paddd %xmm4,%xmm4 + + psrld $2,%xmm13 + paddd %xmm8,%xmm11 + por %xmm5,%xmm4 + por %xmm7,%xmm13 + pxor %xmm2,%xmm0 + movdqa 160-128(%rax),%xmm2 + + movdqa %xmm11,%xmm8 + movdqa %xmm14,%xmm6 + pxor 0-128(%rax),%xmm0 + paddd %xmm15,%xmm10 + pslld $5,%xmm8 + pxor %xmm12,%xmm6 + + movdqa %xmm11,%xmm9 + movdqa %xmm4,112-128(%rax) + paddd %xmm4,%xmm10 + pxor %xmm2,%xmm0 + psrld $27,%xmm9 + pxor %xmm13,%xmm6 + movdqa %xmm12,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm0,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm10 + paddd %xmm0,%xmm0 + + psrld $2,%xmm12 + paddd %xmm8,%xmm10 + por %xmm5,%xmm0 + por %xmm7,%xmm12 + movdqa 32(%rbp),%xmm15 + pxor %xmm3,%xmm1 + movdqa 176-128(%rax),%xmm3 + + movdqa %xmm10,%xmm8 + movdqa %xmm13,%xmm7 + pxor 16-128(%rax),%xmm1 + pxor %xmm3,%xmm1 + paddd %xmm15,%xmm14 + pslld $5,%xmm8 + movdqa %xmm10,%xmm9 + pand %xmm12,%xmm7 + + movdqa %xmm13,%xmm6 + movdqa %xmm1,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm14 + pxor %xmm12,%xmm6 + + movdqa %xmm0,128-128(%rax) + paddd %xmm0,%xmm14 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm11,%xmm6 + movdqa %xmm11,%xmm7 + + pslld $30,%xmm7 + paddd %xmm1,%xmm1 + paddd %xmm6,%xmm14 + + psrld $2,%xmm11 + paddd %xmm8,%xmm14 + por %xmm5,%xmm1 + por %xmm7,%xmm11 + pxor %xmm4,%xmm2 + movdqa 192-128(%rax),%xmm4 + + movdqa %xmm14,%xmm8 + movdqa %xmm12,%xmm7 + pxor 32-128(%rax),%xmm2 + pxor %xmm4,%xmm2 + paddd %xmm15,%xmm13 + pslld $5,%xmm8 + movdqa %xmm14,%xmm9 + pand %xmm11,%xmm7 + + movdqa %xmm12,%xmm6 + movdqa %xmm2,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm13 + pxor %xmm11,%xmm6 + + movdqa %xmm1,144-128(%rax) + paddd %xmm1,%xmm13 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm10,%xmm6 + movdqa %xmm10,%xmm7 + + pslld $30,%xmm7 + paddd %xmm2,%xmm2 + paddd %xmm6,%xmm13 + + psrld $2,%xmm10 + paddd %xmm8,%xmm13 + por %xmm5,%xmm2 + por %xmm7,%xmm10 + pxor %xmm0,%xmm3 + movdqa 208-128(%rax),%xmm0 + + movdqa %xmm13,%xmm8 + movdqa %xmm11,%xmm7 + pxor 48-128(%rax),%xmm3 + pxor %xmm0,%xmm3 + paddd %xmm15,%xmm12 + pslld $5,%xmm8 + movdqa %xmm13,%xmm9 + pand %xmm10,%xmm7 + + movdqa %xmm11,%xmm6 + movdqa %xmm3,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm12 + pxor %xmm10,%xmm6 + + movdqa %xmm2,160-128(%rax) + paddd %xmm2,%xmm12 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm14,%xmm6 + movdqa %xmm14,%xmm7 + + pslld $30,%xmm7 + paddd %xmm3,%xmm3 + paddd %xmm6,%xmm12 + + psrld $2,%xmm14 + paddd %xmm8,%xmm12 + por %xmm5,%xmm3 + por %xmm7,%xmm14 + pxor %xmm1,%xmm4 + movdqa 224-128(%rax),%xmm1 + + movdqa %xmm12,%xmm8 + movdqa %xmm10,%xmm7 + pxor 64-128(%rax),%xmm4 + pxor %xmm1,%xmm4 + paddd %xmm15,%xmm11 + pslld $5,%xmm8 + movdqa %xmm12,%xmm9 + pand %xmm14,%xmm7 + + movdqa %xmm10,%xmm6 + movdqa %xmm4,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm11 + pxor %xmm14,%xmm6 + + movdqa %xmm3,176-128(%rax) + paddd %xmm3,%xmm11 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm13,%xmm6 + movdqa %xmm13,%xmm7 + + pslld $30,%xmm7 + paddd %xmm4,%xmm4 + paddd %xmm6,%xmm11 + + psrld $2,%xmm13 + paddd %xmm8,%xmm11 + por %xmm5,%xmm4 + por %xmm7,%xmm13 + pxor %xmm2,%xmm0 + movdqa 240-128(%rax),%xmm2 + + movdqa %xmm11,%xmm8 + movdqa %xmm14,%xmm7 + pxor 80-128(%rax),%xmm0 + pxor %xmm2,%xmm0 + paddd %xmm15,%xmm10 + pslld $5,%xmm8 + movdqa %xmm11,%xmm9 + pand %xmm13,%xmm7 + + movdqa %xmm14,%xmm6 + movdqa %xmm0,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm10 + pxor %xmm13,%xmm6 + + movdqa %xmm4,192-128(%rax) + paddd %xmm4,%xmm10 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm12,%xmm6 + movdqa %xmm12,%xmm7 + + pslld $30,%xmm7 + paddd %xmm0,%xmm0 + paddd %xmm6,%xmm10 + + psrld $2,%xmm12 + paddd %xmm8,%xmm10 + por %xmm5,%xmm0 + por %xmm7,%xmm12 + pxor %xmm3,%xmm1 + movdqa 0-128(%rax),%xmm3 + + movdqa %xmm10,%xmm8 + movdqa %xmm13,%xmm7 + pxor 96-128(%rax),%xmm1 + pxor %xmm3,%xmm1 + paddd %xmm15,%xmm14 + pslld $5,%xmm8 + movdqa %xmm10,%xmm9 + pand %xmm12,%xmm7 + + movdqa %xmm13,%xmm6 + movdqa %xmm1,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm14 + pxor %xmm12,%xmm6 + + movdqa %xmm0,208-128(%rax) + paddd %xmm0,%xmm14 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm11,%xmm6 + movdqa %xmm11,%xmm7 + + pslld $30,%xmm7 + paddd %xmm1,%xmm1 + paddd %xmm6,%xmm14 + + psrld $2,%xmm11 + paddd %xmm8,%xmm14 + por %xmm5,%xmm1 + por %xmm7,%xmm11 + pxor %xmm4,%xmm2 + movdqa 16-128(%rax),%xmm4 + + movdqa %xmm14,%xmm8 + movdqa %xmm12,%xmm7 + pxor 112-128(%rax),%xmm2 + pxor %xmm4,%xmm2 + paddd %xmm15,%xmm13 + pslld $5,%xmm8 + movdqa %xmm14,%xmm9 + pand %xmm11,%xmm7 + + movdqa %xmm12,%xmm6 + movdqa %xmm2,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm13 + pxor %xmm11,%xmm6 + + movdqa %xmm1,224-128(%rax) + paddd %xmm1,%xmm13 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm10,%xmm6 + movdqa %xmm10,%xmm7 + + pslld $30,%xmm7 + paddd %xmm2,%xmm2 + paddd %xmm6,%xmm13 + + psrld $2,%xmm10 + paddd %xmm8,%xmm13 + por %xmm5,%xmm2 + por %xmm7,%xmm10 + pxor %xmm0,%xmm3 + movdqa 32-128(%rax),%xmm0 + + movdqa %xmm13,%xmm8 + movdqa %xmm11,%xmm7 + pxor 128-128(%rax),%xmm3 + pxor %xmm0,%xmm3 + paddd %xmm15,%xmm12 + pslld $5,%xmm8 + movdqa %xmm13,%xmm9 + pand %xmm10,%xmm7 + + movdqa %xmm11,%xmm6 + movdqa %xmm3,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm12 + pxor %xmm10,%xmm6 + + movdqa %xmm2,240-128(%rax) + paddd %xmm2,%xmm12 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm14,%xmm6 + movdqa %xmm14,%xmm7 + + pslld $30,%xmm7 + paddd %xmm3,%xmm3 + paddd %xmm6,%xmm12 + + psrld $2,%xmm14 + paddd %xmm8,%xmm12 + por %xmm5,%xmm3 + por %xmm7,%xmm14 + pxor %xmm1,%xmm4 + movdqa 48-128(%rax),%xmm1 + + movdqa %xmm12,%xmm8 + movdqa %xmm10,%xmm7 + pxor 144-128(%rax),%xmm4 + pxor %xmm1,%xmm4 + paddd %xmm15,%xmm11 + pslld $5,%xmm8 + movdqa %xmm12,%xmm9 + pand %xmm14,%xmm7 + + movdqa %xmm10,%xmm6 + movdqa %xmm4,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm11 + pxor %xmm14,%xmm6 + + movdqa %xmm3,0-128(%rax) + paddd %xmm3,%xmm11 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm13,%xmm6 + movdqa %xmm13,%xmm7 + + pslld $30,%xmm7 + paddd %xmm4,%xmm4 + paddd %xmm6,%xmm11 + + psrld $2,%xmm13 + paddd %xmm8,%xmm11 + por %xmm5,%xmm4 + por %xmm7,%xmm13 + pxor %xmm2,%xmm0 + movdqa 64-128(%rax),%xmm2 + + movdqa %xmm11,%xmm8 + movdqa %xmm14,%xmm7 + pxor 160-128(%rax),%xmm0 + pxor %xmm2,%xmm0 + paddd %xmm15,%xmm10 + pslld $5,%xmm8 + movdqa %xmm11,%xmm9 + pand %xmm13,%xmm7 + + movdqa %xmm14,%xmm6 + movdqa %xmm0,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm10 + pxor %xmm13,%xmm6 + + movdqa %xmm4,16-128(%rax) + paddd %xmm4,%xmm10 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm12,%xmm6 + movdqa %xmm12,%xmm7 + + pslld $30,%xmm7 + paddd %xmm0,%xmm0 + paddd %xmm6,%xmm10 + + psrld $2,%xmm12 + paddd %xmm8,%xmm10 + por %xmm5,%xmm0 + por %xmm7,%xmm12 + pxor %xmm3,%xmm1 + movdqa 80-128(%rax),%xmm3 + + movdqa %xmm10,%xmm8 + movdqa %xmm13,%xmm7 + pxor 176-128(%rax),%xmm1 + pxor %xmm3,%xmm1 + paddd %xmm15,%xmm14 + pslld $5,%xmm8 + movdqa %xmm10,%xmm9 + pand %xmm12,%xmm7 + + movdqa %xmm13,%xmm6 + movdqa %xmm1,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm14 + pxor %xmm12,%xmm6 + + movdqa %xmm0,32-128(%rax) + paddd %xmm0,%xmm14 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm11,%xmm6 + movdqa %xmm11,%xmm7 + + pslld $30,%xmm7 + paddd %xmm1,%xmm1 + paddd %xmm6,%xmm14 + + psrld $2,%xmm11 + paddd %xmm8,%xmm14 + por %xmm5,%xmm1 + por %xmm7,%xmm11 + pxor %xmm4,%xmm2 + movdqa 96-128(%rax),%xmm4 + + movdqa %xmm14,%xmm8 + movdqa %xmm12,%xmm7 + pxor 192-128(%rax),%xmm2 + pxor %xmm4,%xmm2 + paddd %xmm15,%xmm13 + pslld $5,%xmm8 + movdqa %xmm14,%xmm9 + pand %xmm11,%xmm7 + + movdqa %xmm12,%xmm6 + movdqa %xmm2,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm13 + pxor %xmm11,%xmm6 + + movdqa %xmm1,48-128(%rax) + paddd %xmm1,%xmm13 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm10,%xmm6 + movdqa %xmm10,%xmm7 + + pslld $30,%xmm7 + paddd %xmm2,%xmm2 + paddd %xmm6,%xmm13 + + psrld $2,%xmm10 + paddd %xmm8,%xmm13 + por %xmm5,%xmm2 + por %xmm7,%xmm10 + pxor %xmm0,%xmm3 + movdqa 112-128(%rax),%xmm0 + + movdqa %xmm13,%xmm8 + movdqa %xmm11,%xmm7 + pxor 208-128(%rax),%xmm3 + pxor %xmm0,%xmm3 + paddd %xmm15,%xmm12 + pslld $5,%xmm8 + movdqa %xmm13,%xmm9 + pand %xmm10,%xmm7 + + movdqa %xmm11,%xmm6 + movdqa %xmm3,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm12 + pxor %xmm10,%xmm6 + + movdqa %xmm2,64-128(%rax) + paddd %xmm2,%xmm12 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm14,%xmm6 + movdqa %xmm14,%xmm7 + + pslld $30,%xmm7 + paddd %xmm3,%xmm3 + paddd %xmm6,%xmm12 + + psrld $2,%xmm14 + paddd %xmm8,%xmm12 + por %xmm5,%xmm3 + por %xmm7,%xmm14 + pxor %xmm1,%xmm4 + movdqa 128-128(%rax),%xmm1 + + movdqa %xmm12,%xmm8 + movdqa %xmm10,%xmm7 + pxor 224-128(%rax),%xmm4 + pxor %xmm1,%xmm4 + paddd %xmm15,%xmm11 + pslld $5,%xmm8 + movdqa %xmm12,%xmm9 + pand %xmm14,%xmm7 + + movdqa %xmm10,%xmm6 + movdqa %xmm4,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm11 + pxor %xmm14,%xmm6 + + movdqa %xmm3,80-128(%rax) + paddd %xmm3,%xmm11 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm13,%xmm6 + movdqa %xmm13,%xmm7 + + pslld $30,%xmm7 + paddd %xmm4,%xmm4 + paddd %xmm6,%xmm11 + + psrld $2,%xmm13 + paddd %xmm8,%xmm11 + por %xmm5,%xmm4 + por %xmm7,%xmm13 + pxor %xmm2,%xmm0 + movdqa 144-128(%rax),%xmm2 + + movdqa %xmm11,%xmm8 + movdqa %xmm14,%xmm7 + pxor 240-128(%rax),%xmm0 + pxor %xmm2,%xmm0 + paddd %xmm15,%xmm10 + pslld $5,%xmm8 + movdqa %xmm11,%xmm9 + pand %xmm13,%xmm7 + + movdqa %xmm14,%xmm6 + movdqa %xmm0,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm10 + pxor %xmm13,%xmm6 + + movdqa %xmm4,96-128(%rax) + paddd %xmm4,%xmm10 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm12,%xmm6 + movdqa %xmm12,%xmm7 + + pslld $30,%xmm7 + paddd %xmm0,%xmm0 + paddd %xmm6,%xmm10 + + psrld $2,%xmm12 + paddd %xmm8,%xmm10 + por %xmm5,%xmm0 + por %xmm7,%xmm12 + pxor %xmm3,%xmm1 + movdqa 160-128(%rax),%xmm3 + + movdqa %xmm10,%xmm8 + movdqa %xmm13,%xmm7 + pxor 0-128(%rax),%xmm1 + pxor %xmm3,%xmm1 + paddd %xmm15,%xmm14 + pslld $5,%xmm8 + movdqa %xmm10,%xmm9 + pand %xmm12,%xmm7 + + movdqa %xmm13,%xmm6 + movdqa %xmm1,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm14 + pxor %xmm12,%xmm6 + + movdqa %xmm0,112-128(%rax) + paddd %xmm0,%xmm14 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm11,%xmm6 + movdqa %xmm11,%xmm7 + + pslld $30,%xmm7 + paddd %xmm1,%xmm1 + paddd %xmm6,%xmm14 + + psrld $2,%xmm11 + paddd %xmm8,%xmm14 + por %xmm5,%xmm1 + por %xmm7,%xmm11 + pxor %xmm4,%xmm2 + movdqa 176-128(%rax),%xmm4 + + movdqa %xmm14,%xmm8 + movdqa %xmm12,%xmm7 + pxor 16-128(%rax),%xmm2 + pxor %xmm4,%xmm2 + paddd %xmm15,%xmm13 + pslld $5,%xmm8 + movdqa %xmm14,%xmm9 + pand %xmm11,%xmm7 + + movdqa %xmm12,%xmm6 + movdqa %xmm2,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm13 + pxor %xmm11,%xmm6 + + movdqa %xmm1,128-128(%rax) + paddd %xmm1,%xmm13 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm10,%xmm6 + movdqa %xmm10,%xmm7 + + pslld $30,%xmm7 + paddd %xmm2,%xmm2 + paddd %xmm6,%xmm13 + + psrld $2,%xmm10 + paddd %xmm8,%xmm13 + por %xmm5,%xmm2 + por %xmm7,%xmm10 + pxor %xmm0,%xmm3 + movdqa 192-128(%rax),%xmm0 + + movdqa %xmm13,%xmm8 + movdqa %xmm11,%xmm7 + pxor 32-128(%rax),%xmm3 + pxor %xmm0,%xmm3 + paddd %xmm15,%xmm12 + pslld $5,%xmm8 + movdqa %xmm13,%xmm9 + pand %xmm10,%xmm7 + + movdqa %xmm11,%xmm6 + movdqa %xmm3,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm12 + pxor %xmm10,%xmm6 + + movdqa %xmm2,144-128(%rax) + paddd %xmm2,%xmm12 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm14,%xmm6 + movdqa %xmm14,%xmm7 + + pslld $30,%xmm7 + paddd %xmm3,%xmm3 + paddd %xmm6,%xmm12 + + psrld $2,%xmm14 + paddd %xmm8,%xmm12 + por %xmm5,%xmm3 + por %xmm7,%xmm14 + pxor %xmm1,%xmm4 + movdqa 208-128(%rax),%xmm1 + + movdqa %xmm12,%xmm8 + movdqa %xmm10,%xmm7 + pxor 48-128(%rax),%xmm4 + pxor %xmm1,%xmm4 + paddd %xmm15,%xmm11 + pslld $5,%xmm8 + movdqa %xmm12,%xmm9 + pand %xmm14,%xmm7 + + movdqa %xmm10,%xmm6 + movdqa %xmm4,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm11 + pxor %xmm14,%xmm6 + + movdqa %xmm3,160-128(%rax) + paddd %xmm3,%xmm11 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm13,%xmm6 + movdqa %xmm13,%xmm7 + + pslld $30,%xmm7 + paddd %xmm4,%xmm4 + paddd %xmm6,%xmm11 + + psrld $2,%xmm13 + paddd %xmm8,%xmm11 + por %xmm5,%xmm4 + por %xmm7,%xmm13 + pxor %xmm2,%xmm0 + movdqa 224-128(%rax),%xmm2 + + movdqa %xmm11,%xmm8 + movdqa %xmm14,%xmm7 + pxor 64-128(%rax),%xmm0 + pxor %xmm2,%xmm0 + paddd %xmm15,%xmm10 + pslld $5,%xmm8 + movdqa %xmm11,%xmm9 + pand %xmm13,%xmm7 + + movdqa %xmm14,%xmm6 + movdqa %xmm0,%xmm5 + psrld $27,%xmm9 + paddd %xmm7,%xmm10 + pxor %xmm13,%xmm6 + + movdqa %xmm4,176-128(%rax) + paddd %xmm4,%xmm10 + por %xmm9,%xmm8 + psrld $31,%xmm5 + pand %xmm12,%xmm6 + movdqa %xmm12,%xmm7 + + pslld $30,%xmm7 + paddd %xmm0,%xmm0 + paddd %xmm6,%xmm10 + + psrld $2,%xmm12 + paddd %xmm8,%xmm10 + por %xmm5,%xmm0 + por %xmm7,%xmm12 + movdqa 64(%rbp),%xmm15 + pxor %xmm3,%xmm1 + movdqa 240-128(%rax),%xmm3 + + movdqa %xmm10,%xmm8 + movdqa %xmm13,%xmm6 + pxor 80-128(%rax),%xmm1 + paddd %xmm15,%xmm14 + pslld $5,%xmm8 + pxor %xmm11,%xmm6 + + movdqa %xmm10,%xmm9 + movdqa %xmm0,192-128(%rax) + paddd %xmm0,%xmm14 + pxor %xmm3,%xmm1 + psrld $27,%xmm9 + pxor %xmm12,%xmm6 + movdqa %xmm11,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm1,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm14 + paddd %xmm1,%xmm1 + + psrld $2,%xmm11 + paddd %xmm8,%xmm14 + por %xmm5,%xmm1 + por %xmm7,%xmm11 + pxor %xmm4,%xmm2 + movdqa 0-128(%rax),%xmm4 + + movdqa %xmm14,%xmm8 + movdqa %xmm12,%xmm6 + pxor 96-128(%rax),%xmm2 + paddd %xmm15,%xmm13 + pslld $5,%xmm8 + pxor %xmm10,%xmm6 + + movdqa %xmm14,%xmm9 + movdqa %xmm1,208-128(%rax) + paddd %xmm1,%xmm13 + pxor %xmm4,%xmm2 + psrld $27,%xmm9 + pxor %xmm11,%xmm6 + movdqa %xmm10,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm2,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm13 + paddd %xmm2,%xmm2 + + psrld $2,%xmm10 + paddd %xmm8,%xmm13 + por %xmm5,%xmm2 + por %xmm7,%xmm10 + pxor %xmm0,%xmm3 + movdqa 16-128(%rax),%xmm0 + + movdqa %xmm13,%xmm8 + movdqa %xmm11,%xmm6 + pxor 112-128(%rax),%xmm3 + paddd %xmm15,%xmm12 + pslld $5,%xmm8 + pxor %xmm14,%xmm6 + + movdqa %xmm13,%xmm9 + movdqa %xmm2,224-128(%rax) + paddd %xmm2,%xmm12 + pxor %xmm0,%xmm3 + psrld $27,%xmm9 + pxor %xmm10,%xmm6 + movdqa %xmm14,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm3,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm12 + paddd %xmm3,%xmm3 + + psrld $2,%xmm14 + paddd %xmm8,%xmm12 + por %xmm5,%xmm3 + por %xmm7,%xmm14 + pxor %xmm1,%xmm4 + movdqa 32-128(%rax),%xmm1 + + movdqa %xmm12,%xmm8 + movdqa %xmm10,%xmm6 + pxor 128-128(%rax),%xmm4 + paddd %xmm15,%xmm11 + pslld $5,%xmm8 + pxor %xmm13,%xmm6 + + movdqa %xmm12,%xmm9 + movdqa %xmm3,240-128(%rax) + paddd %xmm3,%xmm11 + pxor %xmm1,%xmm4 + psrld $27,%xmm9 + pxor %xmm14,%xmm6 + movdqa %xmm13,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm4,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm11 + paddd %xmm4,%xmm4 + + psrld $2,%xmm13 + paddd %xmm8,%xmm11 + por %xmm5,%xmm4 + por %xmm7,%xmm13 + pxor %xmm2,%xmm0 + movdqa 48-128(%rax),%xmm2 + + movdqa %xmm11,%xmm8 + movdqa %xmm14,%xmm6 + pxor 144-128(%rax),%xmm0 + paddd %xmm15,%xmm10 + pslld $5,%xmm8 + pxor %xmm12,%xmm6 + + movdqa %xmm11,%xmm9 + movdqa %xmm4,0-128(%rax) + paddd %xmm4,%xmm10 + pxor %xmm2,%xmm0 + psrld $27,%xmm9 + pxor %xmm13,%xmm6 + movdqa %xmm12,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm0,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm10 + paddd %xmm0,%xmm0 + + psrld $2,%xmm12 + paddd %xmm8,%xmm10 + por %xmm5,%xmm0 + por %xmm7,%xmm12 + pxor %xmm3,%xmm1 + movdqa 64-128(%rax),%xmm3 + + movdqa %xmm10,%xmm8 + movdqa %xmm13,%xmm6 + pxor 160-128(%rax),%xmm1 + paddd %xmm15,%xmm14 + pslld $5,%xmm8 + pxor %xmm11,%xmm6 + + movdqa %xmm10,%xmm9 + movdqa %xmm0,16-128(%rax) + paddd %xmm0,%xmm14 + pxor %xmm3,%xmm1 + psrld $27,%xmm9 + pxor %xmm12,%xmm6 + movdqa %xmm11,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm1,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm14 + paddd %xmm1,%xmm1 + + psrld $2,%xmm11 + paddd %xmm8,%xmm14 + por %xmm5,%xmm1 + por %xmm7,%xmm11 + pxor %xmm4,%xmm2 + movdqa 80-128(%rax),%xmm4 + + movdqa %xmm14,%xmm8 + movdqa %xmm12,%xmm6 + pxor 176-128(%rax),%xmm2 + paddd %xmm15,%xmm13 + pslld $5,%xmm8 + pxor %xmm10,%xmm6 + + movdqa %xmm14,%xmm9 + movdqa %xmm1,32-128(%rax) + paddd %xmm1,%xmm13 + pxor %xmm4,%xmm2 + psrld $27,%xmm9 + pxor %xmm11,%xmm6 + movdqa %xmm10,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm2,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm13 + paddd %xmm2,%xmm2 + + psrld $2,%xmm10 + paddd %xmm8,%xmm13 + por %xmm5,%xmm2 + por %xmm7,%xmm10 + pxor %xmm0,%xmm3 + movdqa 96-128(%rax),%xmm0 + + movdqa %xmm13,%xmm8 + movdqa %xmm11,%xmm6 + pxor 192-128(%rax),%xmm3 + paddd %xmm15,%xmm12 + pslld $5,%xmm8 + pxor %xmm14,%xmm6 + + movdqa %xmm13,%xmm9 + movdqa %xmm2,48-128(%rax) + paddd %xmm2,%xmm12 + pxor %xmm0,%xmm3 + psrld $27,%xmm9 + pxor %xmm10,%xmm6 + movdqa %xmm14,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm3,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm12 + paddd %xmm3,%xmm3 + + psrld $2,%xmm14 + paddd %xmm8,%xmm12 + por %xmm5,%xmm3 + por %xmm7,%xmm14 + pxor %xmm1,%xmm4 + movdqa 112-128(%rax),%xmm1 + + movdqa %xmm12,%xmm8 + movdqa %xmm10,%xmm6 + pxor 208-128(%rax),%xmm4 + paddd %xmm15,%xmm11 + pslld $5,%xmm8 + pxor %xmm13,%xmm6 + + movdqa %xmm12,%xmm9 + movdqa %xmm3,64-128(%rax) + paddd %xmm3,%xmm11 + pxor %xmm1,%xmm4 + psrld $27,%xmm9 + pxor %xmm14,%xmm6 + movdqa %xmm13,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm4,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm11 + paddd %xmm4,%xmm4 + + psrld $2,%xmm13 + paddd %xmm8,%xmm11 + por %xmm5,%xmm4 + por %xmm7,%xmm13 + pxor %xmm2,%xmm0 + movdqa 128-128(%rax),%xmm2 + + movdqa %xmm11,%xmm8 + movdqa %xmm14,%xmm6 + pxor 224-128(%rax),%xmm0 + paddd %xmm15,%xmm10 + pslld $5,%xmm8 + pxor %xmm12,%xmm6 + + movdqa %xmm11,%xmm9 + movdqa %xmm4,80-128(%rax) + paddd %xmm4,%xmm10 + pxor %xmm2,%xmm0 + psrld $27,%xmm9 + pxor %xmm13,%xmm6 + movdqa %xmm12,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm0,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm10 + paddd %xmm0,%xmm0 + + psrld $2,%xmm12 + paddd %xmm8,%xmm10 + por %xmm5,%xmm0 + por %xmm7,%xmm12 + pxor %xmm3,%xmm1 + movdqa 144-128(%rax),%xmm3 + + movdqa %xmm10,%xmm8 + movdqa %xmm13,%xmm6 + pxor 240-128(%rax),%xmm1 + paddd %xmm15,%xmm14 + pslld $5,%xmm8 + pxor %xmm11,%xmm6 + + movdqa %xmm10,%xmm9 + movdqa %xmm0,96-128(%rax) + paddd %xmm0,%xmm14 + pxor %xmm3,%xmm1 + psrld $27,%xmm9 + pxor %xmm12,%xmm6 + movdqa %xmm11,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm1,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm14 + paddd %xmm1,%xmm1 + + psrld $2,%xmm11 + paddd %xmm8,%xmm14 + por %xmm5,%xmm1 + por %xmm7,%xmm11 + pxor %xmm4,%xmm2 + movdqa 160-128(%rax),%xmm4 + + movdqa %xmm14,%xmm8 + movdqa %xmm12,%xmm6 + pxor 0-128(%rax),%xmm2 + paddd %xmm15,%xmm13 + pslld $5,%xmm8 + pxor %xmm10,%xmm6 + + movdqa %xmm14,%xmm9 + movdqa %xmm1,112-128(%rax) + paddd %xmm1,%xmm13 + pxor %xmm4,%xmm2 + psrld $27,%xmm9 + pxor %xmm11,%xmm6 + movdqa %xmm10,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm2,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm13 + paddd %xmm2,%xmm2 + + psrld $2,%xmm10 + paddd %xmm8,%xmm13 + por %xmm5,%xmm2 + por %xmm7,%xmm10 + pxor %xmm0,%xmm3 + movdqa 176-128(%rax),%xmm0 + + movdqa %xmm13,%xmm8 + movdqa %xmm11,%xmm6 + pxor 16-128(%rax),%xmm3 + paddd %xmm15,%xmm12 + pslld $5,%xmm8 + pxor %xmm14,%xmm6 + + movdqa %xmm13,%xmm9 + paddd %xmm2,%xmm12 + pxor %xmm0,%xmm3 + psrld $27,%xmm9 + pxor %xmm10,%xmm6 + movdqa %xmm14,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm3,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm12 + paddd %xmm3,%xmm3 + + psrld $2,%xmm14 + paddd %xmm8,%xmm12 + por %xmm5,%xmm3 + por %xmm7,%xmm14 + pxor %xmm1,%xmm4 + movdqa 192-128(%rax),%xmm1 + + movdqa %xmm12,%xmm8 + movdqa %xmm10,%xmm6 + pxor 32-128(%rax),%xmm4 + paddd %xmm15,%xmm11 + pslld $5,%xmm8 + pxor %xmm13,%xmm6 + + movdqa %xmm12,%xmm9 + paddd %xmm3,%xmm11 + pxor %xmm1,%xmm4 + psrld $27,%xmm9 + pxor %xmm14,%xmm6 + movdqa %xmm13,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm4,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm11 + paddd %xmm4,%xmm4 + + psrld $2,%xmm13 + paddd %xmm8,%xmm11 + por %xmm5,%xmm4 + por %xmm7,%xmm13 + pxor %xmm2,%xmm0 + movdqa 208-128(%rax),%xmm2 + + movdqa %xmm11,%xmm8 + movdqa %xmm14,%xmm6 + pxor 48-128(%rax),%xmm0 + paddd %xmm15,%xmm10 + pslld $5,%xmm8 + pxor %xmm12,%xmm6 + + movdqa %xmm11,%xmm9 + paddd %xmm4,%xmm10 + pxor %xmm2,%xmm0 + psrld $27,%xmm9 + pxor %xmm13,%xmm6 + movdqa %xmm12,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm0,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm10 + paddd %xmm0,%xmm0 + + psrld $2,%xmm12 + paddd %xmm8,%xmm10 + por %xmm5,%xmm0 + por %xmm7,%xmm12 + pxor %xmm3,%xmm1 + movdqa 224-128(%rax),%xmm3 + + movdqa %xmm10,%xmm8 + movdqa %xmm13,%xmm6 + pxor 64-128(%rax),%xmm1 + paddd %xmm15,%xmm14 + pslld $5,%xmm8 + pxor %xmm11,%xmm6 + + movdqa %xmm10,%xmm9 + paddd %xmm0,%xmm14 + pxor %xmm3,%xmm1 + psrld $27,%xmm9 + pxor %xmm12,%xmm6 + movdqa %xmm11,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm1,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm14 + paddd %xmm1,%xmm1 + + psrld $2,%xmm11 + paddd %xmm8,%xmm14 + por %xmm5,%xmm1 + por %xmm7,%xmm11 + pxor %xmm4,%xmm2 + movdqa 240-128(%rax),%xmm4 + + movdqa %xmm14,%xmm8 + movdqa %xmm12,%xmm6 + pxor 80-128(%rax),%xmm2 + paddd %xmm15,%xmm13 + pslld $5,%xmm8 + pxor %xmm10,%xmm6 + + movdqa %xmm14,%xmm9 + paddd %xmm1,%xmm13 + pxor %xmm4,%xmm2 + psrld $27,%xmm9 + pxor %xmm11,%xmm6 + movdqa %xmm10,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm2,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm13 + paddd %xmm2,%xmm2 + + psrld $2,%xmm10 + paddd %xmm8,%xmm13 + por %xmm5,%xmm2 + por %xmm7,%xmm10 + pxor %xmm0,%xmm3 + movdqa 0-128(%rax),%xmm0 + + movdqa %xmm13,%xmm8 + movdqa %xmm11,%xmm6 + pxor 96-128(%rax),%xmm3 + paddd %xmm15,%xmm12 + pslld $5,%xmm8 + pxor %xmm14,%xmm6 + + movdqa %xmm13,%xmm9 + paddd %xmm2,%xmm12 + pxor %xmm0,%xmm3 + psrld $27,%xmm9 + pxor %xmm10,%xmm6 + movdqa %xmm14,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm3,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm12 + paddd %xmm3,%xmm3 + + psrld $2,%xmm14 + paddd %xmm8,%xmm12 + por %xmm5,%xmm3 + por %xmm7,%xmm14 + pxor %xmm1,%xmm4 + movdqa 16-128(%rax),%xmm1 + + movdqa %xmm12,%xmm8 + movdqa %xmm10,%xmm6 + pxor 112-128(%rax),%xmm4 + paddd %xmm15,%xmm11 + pslld $5,%xmm8 + pxor %xmm13,%xmm6 + + movdqa %xmm12,%xmm9 + paddd %xmm3,%xmm11 + pxor %xmm1,%xmm4 + psrld $27,%xmm9 + pxor %xmm14,%xmm6 + movdqa %xmm13,%xmm7 + + pslld $30,%xmm7 + movdqa %xmm4,%xmm5 + por %xmm9,%xmm8 + psrld $31,%xmm5 + paddd %xmm6,%xmm11 + paddd %xmm4,%xmm4 + + psrld $2,%xmm13 + paddd %xmm8,%xmm11 + por %xmm5,%xmm4 + por %xmm7,%xmm13 + movdqa %xmm11,%xmm8 + paddd %xmm15,%xmm10 + movdqa %xmm14,%xmm6 + pslld $5,%xmm8 + pxor %xmm12,%xmm6 + + movdqa %xmm11,%xmm9 + paddd %xmm4,%xmm10 + psrld $27,%xmm9 + movdqa %xmm12,%xmm7 + pxor %xmm13,%xmm6 + + pslld $30,%xmm7 + por %xmm9,%xmm8 + paddd %xmm6,%xmm10 + + psrld $2,%xmm12 + paddd %xmm8,%xmm10 + por %xmm7,%xmm12 + movdqa (%rbx),%xmm0 + movl $1,%ecx + cmpl 0(%rbx),%ecx + pxor %xmm8,%xmm8 + cmovgeq %rbp,%r8 + cmpl 4(%rbx),%ecx + movdqa %xmm0,%xmm1 + cmovgeq %rbp,%r9 + cmpl 8(%rbx),%ecx + pcmpgtd %xmm8,%xmm1 + cmovgeq %rbp,%r10 + cmpl 12(%rbx),%ecx + paddd %xmm1,%xmm0 + cmovgeq %rbp,%r11 + + movdqu 0(%rdi),%xmm6 + pand %xmm1,%xmm10 + movdqu 32(%rdi),%xmm7 + pand %xmm1,%xmm11 + paddd %xmm6,%xmm10 + movdqu 64(%rdi),%xmm8 + pand %xmm1,%xmm12 + paddd %xmm7,%xmm11 + movdqu 96(%rdi),%xmm9 + pand %xmm1,%xmm13 + paddd %xmm8,%xmm12 + movdqu 128(%rdi),%xmm5 + pand %xmm1,%xmm14 + movdqu %xmm10,0(%rdi) + paddd %xmm9,%xmm13 + movdqu %xmm11,32(%rdi) + paddd %xmm5,%xmm14 + movdqu %xmm12,64(%rdi) + movdqu %xmm13,96(%rdi) + movdqu %xmm14,128(%rdi) + + movdqa %xmm0,(%rbx) + movdqa 96(%rbp),%xmm5 + movdqa -32(%rbp),%xmm15 + decl %edx + jnz L$oop + + movl 280(%rsp),%edx + leaq 16(%rdi),%rdi + leaq 64(%rsi),%rsi + decl %edx + jnz L$oop_grande + +L$done: + movq 272(%rsp),%rax + + movq -16(%rax),%rbp + + movq -8(%rax),%rbx + + leaq (%rax),%rsp + +L$epilogue: + .byte 0xf3,0xc3 + + + +.p2align 5 +sha1_multi_block_shaext: + +_shaext_shortcut: + movq %rsp,%rax + + pushq %rbx + + pushq %rbp + + subq $288,%rsp + shll $1,%edx + andq $-256,%rsp + leaq 64(%rdi),%rdi + movq %rax,272(%rsp) +L$body_shaext: + leaq 256(%rsp),%rbx + movdqa K_XX_XX+128(%rip),%xmm3 + +L$oop_grande_shaext: + movl %edx,280(%rsp) + xorl %edx,%edx + movq 0(%rsi),%r8 + movl 8(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,0(%rbx) + cmovleq %rsp,%r8 + movq 16(%rsi),%r9 + movl 24(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,4(%rbx) + cmovleq %rsp,%r9 + testl %edx,%edx + jz L$done_shaext + + movq 0-64(%rdi),%xmm0 + movq 32-64(%rdi),%xmm4 + movq 64-64(%rdi),%xmm5 + movq 96-64(%rdi),%xmm6 + movq 128-64(%rdi),%xmm7 + + punpckldq %xmm4,%xmm0 + punpckldq %xmm6,%xmm5 + + movdqa %xmm0,%xmm8 + punpcklqdq %xmm5,%xmm0 + punpckhqdq %xmm5,%xmm8 + + pshufd $63,%xmm7,%xmm1 + pshufd $127,%xmm7,%xmm9 + pshufd $27,%xmm0,%xmm0 + pshufd $27,%xmm8,%xmm8 + jmp L$oop_shaext + +.p2align 5 +L$oop_shaext: + movdqu 0(%r8),%xmm4 + movdqu 0(%r9),%xmm11 + movdqu 16(%r8),%xmm5 + movdqu 16(%r9),%xmm12 + movdqu 32(%r8),%xmm6 +.byte 102,15,56,0,227 + movdqu 32(%r9),%xmm13 +.byte 102,68,15,56,0,219 + movdqu 48(%r8),%xmm7 + leaq 64(%r8),%r8 +.byte 102,15,56,0,235 + movdqu 48(%r9),%xmm14 + leaq 64(%r9),%r9 +.byte 102,68,15,56,0,227 + + movdqa %xmm1,80(%rsp) + paddd %xmm4,%xmm1 + movdqa %xmm9,112(%rsp) + paddd %xmm11,%xmm9 + movdqa %xmm0,64(%rsp) + movdqa %xmm0,%xmm2 + movdqa %xmm8,96(%rsp) + movdqa %xmm8,%xmm10 +.byte 15,58,204,193,0 +.byte 15,56,200,213 +.byte 69,15,58,204,193,0 +.byte 69,15,56,200,212 +.byte 102,15,56,0,243 + prefetcht0 127(%r8) +.byte 15,56,201,229 +.byte 102,68,15,56,0,235 + prefetcht0 127(%r9) +.byte 69,15,56,201,220 + +.byte 102,15,56,0,251 + movdqa %xmm0,%xmm1 +.byte 102,68,15,56,0,243 + movdqa %xmm8,%xmm9 +.byte 15,58,204,194,0 +.byte 15,56,200,206 +.byte 69,15,58,204,194,0 +.byte 69,15,56,200,205 + pxor %xmm6,%xmm4 +.byte 15,56,201,238 + pxor %xmm13,%xmm11 +.byte 69,15,56,201,229 + movdqa %xmm0,%xmm2 + movdqa %xmm8,%xmm10 +.byte 15,58,204,193,0 +.byte 15,56,200,215 +.byte 69,15,58,204,193,0 +.byte 69,15,56,200,214 +.byte 15,56,202,231 +.byte 69,15,56,202,222 + pxor %xmm7,%xmm5 +.byte 15,56,201,247 + pxor %xmm14,%xmm12 +.byte 69,15,56,201,238 + movdqa %xmm0,%xmm1 + movdqa %xmm8,%xmm9 +.byte 15,58,204,194,0 +.byte 15,56,200,204 +.byte 69,15,58,204,194,0 +.byte 69,15,56,200,203 +.byte 15,56,202,236 +.byte 69,15,56,202,227 + pxor %xmm4,%xmm6 +.byte 15,56,201,252 + pxor %xmm11,%xmm13 +.byte 69,15,56,201,243 + movdqa %xmm0,%xmm2 + movdqa %xmm8,%xmm10 +.byte 15,58,204,193,0 +.byte 15,56,200,213 +.byte 69,15,58,204,193,0 +.byte 69,15,56,200,212 +.byte 15,56,202,245 +.byte 69,15,56,202,236 + pxor %xmm5,%xmm7 +.byte 15,56,201,229 + pxor %xmm12,%xmm14 +.byte 69,15,56,201,220 + movdqa %xmm0,%xmm1 + movdqa %xmm8,%xmm9 +.byte 15,58,204,194,1 +.byte 15,56,200,206 +.byte 69,15,58,204,194,1 +.byte 69,15,56,200,205 +.byte 15,56,202,254 +.byte 69,15,56,202,245 + pxor %xmm6,%xmm4 +.byte 15,56,201,238 + pxor %xmm13,%xmm11 +.byte 69,15,56,201,229 + movdqa %xmm0,%xmm2 + movdqa %xmm8,%xmm10 +.byte 15,58,204,193,1 +.byte 15,56,200,215 +.byte 69,15,58,204,193,1 +.byte 69,15,56,200,214 +.byte 15,56,202,231 +.byte 69,15,56,202,222 + pxor %xmm7,%xmm5 +.byte 15,56,201,247 + pxor %xmm14,%xmm12 +.byte 69,15,56,201,238 + movdqa %xmm0,%xmm1 + movdqa %xmm8,%xmm9 +.byte 15,58,204,194,1 +.byte 15,56,200,204 +.byte 69,15,58,204,194,1 +.byte 69,15,56,200,203 +.byte 15,56,202,236 +.byte 69,15,56,202,227 + pxor %xmm4,%xmm6 +.byte 15,56,201,252 + pxor %xmm11,%xmm13 +.byte 69,15,56,201,243 + movdqa %xmm0,%xmm2 + movdqa %xmm8,%xmm10 +.byte 15,58,204,193,1 +.byte 15,56,200,213 +.byte 69,15,58,204,193,1 +.byte 69,15,56,200,212 +.byte 15,56,202,245 +.byte 69,15,56,202,236 + pxor %xmm5,%xmm7 +.byte 15,56,201,229 + pxor %xmm12,%xmm14 +.byte 69,15,56,201,220 + movdqa %xmm0,%xmm1 + movdqa %xmm8,%xmm9 +.byte 15,58,204,194,1 +.byte 15,56,200,206 +.byte 69,15,58,204,194,1 +.byte 69,15,56,200,205 +.byte 15,56,202,254 +.byte 69,15,56,202,245 + pxor %xmm6,%xmm4 +.byte 15,56,201,238 + pxor %xmm13,%xmm11 +.byte 69,15,56,201,229 + movdqa %xmm0,%xmm2 + movdqa %xmm8,%xmm10 +.byte 15,58,204,193,2 +.byte 15,56,200,215 +.byte 69,15,58,204,193,2 +.byte 69,15,56,200,214 +.byte 15,56,202,231 +.byte 69,15,56,202,222 + pxor %xmm7,%xmm5 +.byte 15,56,201,247 + pxor %xmm14,%xmm12 +.byte 69,15,56,201,238 + movdqa %xmm0,%xmm1 + movdqa %xmm8,%xmm9 +.byte 15,58,204,194,2 +.byte 15,56,200,204 +.byte 69,15,58,204,194,2 +.byte 69,15,56,200,203 +.byte 15,56,202,236 +.byte 69,15,56,202,227 + pxor %xmm4,%xmm6 +.byte 15,56,201,252 + pxor %xmm11,%xmm13 +.byte 69,15,56,201,243 + movdqa %xmm0,%xmm2 + movdqa %xmm8,%xmm10 +.byte 15,58,204,193,2 +.byte 15,56,200,213 +.byte 69,15,58,204,193,2 +.byte 69,15,56,200,212 +.byte 15,56,202,245 +.byte 69,15,56,202,236 + pxor %xmm5,%xmm7 +.byte 15,56,201,229 + pxor %xmm12,%xmm14 +.byte 69,15,56,201,220 + movdqa %xmm0,%xmm1 + movdqa %xmm8,%xmm9 +.byte 15,58,204,194,2 +.byte 15,56,200,206 +.byte 69,15,58,204,194,2 +.byte 69,15,56,200,205 +.byte 15,56,202,254 +.byte 69,15,56,202,245 + pxor %xmm6,%xmm4 +.byte 15,56,201,238 + pxor %xmm13,%xmm11 +.byte 69,15,56,201,229 + movdqa %xmm0,%xmm2 + movdqa %xmm8,%xmm10 +.byte 15,58,204,193,2 +.byte 15,56,200,215 +.byte 69,15,58,204,193,2 +.byte 69,15,56,200,214 +.byte 15,56,202,231 +.byte 69,15,56,202,222 + pxor %xmm7,%xmm5 +.byte 15,56,201,247 + pxor %xmm14,%xmm12 +.byte 69,15,56,201,238 + movdqa %xmm0,%xmm1 + movdqa %xmm8,%xmm9 +.byte 15,58,204,194,3 +.byte 15,56,200,204 +.byte 69,15,58,204,194,3 +.byte 69,15,56,200,203 +.byte 15,56,202,236 +.byte 69,15,56,202,227 + pxor %xmm4,%xmm6 +.byte 15,56,201,252 + pxor %xmm11,%xmm13 +.byte 69,15,56,201,243 + movdqa %xmm0,%xmm2 + movdqa %xmm8,%xmm10 +.byte 15,58,204,193,3 +.byte 15,56,200,213 +.byte 69,15,58,204,193,3 +.byte 69,15,56,200,212 +.byte 15,56,202,245 +.byte 69,15,56,202,236 + pxor %xmm5,%xmm7 + pxor %xmm12,%xmm14 + + movl $1,%ecx + pxor %xmm4,%xmm4 + cmpl 0(%rbx),%ecx + cmovgeq %rsp,%r8 + + movdqa %xmm0,%xmm1 + movdqa %xmm8,%xmm9 +.byte 15,58,204,194,3 +.byte 15,56,200,206 +.byte 69,15,58,204,194,3 +.byte 69,15,56,200,205 +.byte 15,56,202,254 +.byte 69,15,56,202,245 + + cmpl 4(%rbx),%ecx + cmovgeq %rsp,%r9 + movq (%rbx),%xmm6 + + movdqa %xmm0,%xmm2 + movdqa %xmm8,%xmm10 +.byte 15,58,204,193,3 +.byte 15,56,200,215 +.byte 69,15,58,204,193,3 +.byte 69,15,56,200,214 + + pshufd $0x00,%xmm6,%xmm11 + pshufd $0x55,%xmm6,%xmm12 + movdqa %xmm6,%xmm7 + pcmpgtd %xmm4,%xmm11 + pcmpgtd %xmm4,%xmm12 + + movdqa %xmm0,%xmm1 + movdqa %xmm8,%xmm9 +.byte 15,58,204,194,3 +.byte 15,56,200,204 +.byte 69,15,58,204,194,3 +.byte 68,15,56,200,204 + + pcmpgtd %xmm4,%xmm7 + pand %xmm11,%xmm0 + pand %xmm11,%xmm1 + pand %xmm12,%xmm8 + pand %xmm12,%xmm9 + paddd %xmm7,%xmm6 + + paddd 64(%rsp),%xmm0 + paddd 80(%rsp),%xmm1 + paddd 96(%rsp),%xmm8 + paddd 112(%rsp),%xmm9 + + movq %xmm6,(%rbx) + decl %edx + jnz L$oop_shaext + + movl 280(%rsp),%edx + + pshufd $27,%xmm0,%xmm0 + pshufd $27,%xmm8,%xmm8 + + movdqa %xmm0,%xmm6 + punpckldq %xmm8,%xmm0 + punpckhdq %xmm8,%xmm6 + punpckhdq %xmm9,%xmm1 + movq %xmm0,0-64(%rdi) + psrldq $8,%xmm0 + movq %xmm6,64-64(%rdi) + psrldq $8,%xmm6 + movq %xmm0,32-64(%rdi) + psrldq $8,%xmm1 + movq %xmm6,96-64(%rdi) + movq %xmm1,128-64(%rdi) + + leaq 8(%rdi),%rdi + leaq 32(%rsi),%rsi + decl %edx + jnz L$oop_grande_shaext + +L$done_shaext: + + movq -16(%rax),%rbp + + movq -8(%rax),%rbx + + leaq (%rax),%rsp + +L$epilogue_shaext: + .byte 0xf3,0xc3 + + + +.p2align 5 +sha1_multi_block_avx: + +_avx_shortcut: + shrq $32,%rcx + cmpl $2,%edx + jb L$avx + testl $32,%ecx + jnz _avx2_shortcut + jmp L$avx +.p2align 5 +L$avx: + movq %rsp,%rax + + pushq %rbx + + pushq %rbp + + subq $288,%rsp + andq $-256,%rsp + movq %rax,272(%rsp) + +L$body_avx: + leaq K_XX_XX(%rip),%rbp + leaq 256(%rsp),%rbx + + vzeroupper +L$oop_grande_avx: + movl %edx,280(%rsp) + xorl %edx,%edx + movq 0(%rsi),%r8 + movl 8(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,0(%rbx) + cmovleq %rbp,%r8 + movq 16(%rsi),%r9 + movl 24(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,4(%rbx) + cmovleq %rbp,%r9 + movq 32(%rsi),%r10 + movl 40(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,8(%rbx) + cmovleq %rbp,%r10 + movq 48(%rsi),%r11 + movl 56(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,12(%rbx) + cmovleq %rbp,%r11 + testl %edx,%edx + jz L$done_avx + + vmovdqu 0(%rdi),%xmm10 + leaq 128(%rsp),%rax + vmovdqu 32(%rdi),%xmm11 + vmovdqu 64(%rdi),%xmm12 + vmovdqu 96(%rdi),%xmm13 + vmovdqu 128(%rdi),%xmm14 + vmovdqu 96(%rbp),%xmm5 + jmp L$oop_avx + +.p2align 5 +L$oop_avx: + vmovdqa -32(%rbp),%xmm15 + vmovd (%r8),%xmm0 + leaq 64(%r8),%r8 + vmovd (%r9),%xmm2 + leaq 64(%r9),%r9 + vpinsrd $1,(%r10),%xmm0,%xmm0 + leaq 64(%r10),%r10 + vpinsrd $1,(%r11),%xmm2,%xmm2 + leaq 64(%r11),%r11 + vmovd -60(%r8),%xmm1 + vpunpckldq %xmm2,%xmm0,%xmm0 + vmovd -60(%r9),%xmm9 + vpshufb %xmm5,%xmm0,%xmm0 + vpinsrd $1,-60(%r10),%xmm1,%xmm1 + vpinsrd $1,-60(%r11),%xmm9,%xmm9 + vpaddd %xmm15,%xmm14,%xmm14 + vpslld $5,%xmm10,%xmm8 + vpandn %xmm13,%xmm11,%xmm7 + vpand %xmm12,%xmm11,%xmm6 + + vmovdqa %xmm0,0-128(%rax) + vpaddd %xmm0,%xmm14,%xmm14 + vpunpckldq %xmm9,%xmm1,%xmm1 + vpsrld $27,%xmm10,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vmovd -56(%r8),%xmm2 + + vpslld $30,%xmm11,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vmovd -56(%r9),%xmm9 + vpaddd %xmm6,%xmm14,%xmm14 + + vpsrld $2,%xmm11,%xmm11 + vpaddd %xmm8,%xmm14,%xmm14 + vpshufb %xmm5,%xmm1,%xmm1 + vpor %xmm7,%xmm11,%xmm11 + vpinsrd $1,-56(%r10),%xmm2,%xmm2 + vpinsrd $1,-56(%r11),%xmm9,%xmm9 + vpaddd %xmm15,%xmm13,%xmm13 + vpslld $5,%xmm14,%xmm8 + vpandn %xmm12,%xmm10,%xmm7 + vpand %xmm11,%xmm10,%xmm6 + + vmovdqa %xmm1,16-128(%rax) + vpaddd %xmm1,%xmm13,%xmm13 + vpunpckldq %xmm9,%xmm2,%xmm2 + vpsrld $27,%xmm14,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vmovd -52(%r8),%xmm3 + + vpslld $30,%xmm10,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vmovd -52(%r9),%xmm9 + vpaddd %xmm6,%xmm13,%xmm13 + + vpsrld $2,%xmm10,%xmm10 + vpaddd %xmm8,%xmm13,%xmm13 + vpshufb %xmm5,%xmm2,%xmm2 + vpor %xmm7,%xmm10,%xmm10 + vpinsrd $1,-52(%r10),%xmm3,%xmm3 + vpinsrd $1,-52(%r11),%xmm9,%xmm9 + vpaddd %xmm15,%xmm12,%xmm12 + vpslld $5,%xmm13,%xmm8 + vpandn %xmm11,%xmm14,%xmm7 + vpand %xmm10,%xmm14,%xmm6 + + vmovdqa %xmm2,32-128(%rax) + vpaddd %xmm2,%xmm12,%xmm12 + vpunpckldq %xmm9,%xmm3,%xmm3 + vpsrld $27,%xmm13,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vmovd -48(%r8),%xmm4 + + vpslld $30,%xmm14,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vmovd -48(%r9),%xmm9 + vpaddd %xmm6,%xmm12,%xmm12 + + vpsrld $2,%xmm14,%xmm14 + vpaddd %xmm8,%xmm12,%xmm12 + vpshufb %xmm5,%xmm3,%xmm3 + vpor %xmm7,%xmm14,%xmm14 + vpinsrd $1,-48(%r10),%xmm4,%xmm4 + vpinsrd $1,-48(%r11),%xmm9,%xmm9 + vpaddd %xmm15,%xmm11,%xmm11 + vpslld $5,%xmm12,%xmm8 + vpandn %xmm10,%xmm13,%xmm7 + vpand %xmm14,%xmm13,%xmm6 + + vmovdqa %xmm3,48-128(%rax) + vpaddd %xmm3,%xmm11,%xmm11 + vpunpckldq %xmm9,%xmm4,%xmm4 + vpsrld $27,%xmm12,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vmovd -44(%r8),%xmm0 + + vpslld $30,%xmm13,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vmovd -44(%r9),%xmm9 + vpaddd %xmm6,%xmm11,%xmm11 + + vpsrld $2,%xmm13,%xmm13 + vpaddd %xmm8,%xmm11,%xmm11 + vpshufb %xmm5,%xmm4,%xmm4 + vpor %xmm7,%xmm13,%xmm13 + vpinsrd $1,-44(%r10),%xmm0,%xmm0 + vpinsrd $1,-44(%r11),%xmm9,%xmm9 + vpaddd %xmm15,%xmm10,%xmm10 + vpslld $5,%xmm11,%xmm8 + vpandn %xmm14,%xmm12,%xmm7 + vpand %xmm13,%xmm12,%xmm6 + + vmovdqa %xmm4,64-128(%rax) + vpaddd %xmm4,%xmm10,%xmm10 + vpunpckldq %xmm9,%xmm0,%xmm0 + vpsrld $27,%xmm11,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vmovd -40(%r8),%xmm1 + + vpslld $30,%xmm12,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vmovd -40(%r9),%xmm9 + vpaddd %xmm6,%xmm10,%xmm10 + + vpsrld $2,%xmm12,%xmm12 + vpaddd %xmm8,%xmm10,%xmm10 + vpshufb %xmm5,%xmm0,%xmm0 + vpor %xmm7,%xmm12,%xmm12 + vpinsrd $1,-40(%r10),%xmm1,%xmm1 + vpinsrd $1,-40(%r11),%xmm9,%xmm9 + vpaddd %xmm15,%xmm14,%xmm14 + vpslld $5,%xmm10,%xmm8 + vpandn %xmm13,%xmm11,%xmm7 + vpand %xmm12,%xmm11,%xmm6 + + vmovdqa %xmm0,80-128(%rax) + vpaddd %xmm0,%xmm14,%xmm14 + vpunpckldq %xmm9,%xmm1,%xmm1 + vpsrld $27,%xmm10,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vmovd -36(%r8),%xmm2 + + vpslld $30,%xmm11,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vmovd -36(%r9),%xmm9 + vpaddd %xmm6,%xmm14,%xmm14 + + vpsrld $2,%xmm11,%xmm11 + vpaddd %xmm8,%xmm14,%xmm14 + vpshufb %xmm5,%xmm1,%xmm1 + vpor %xmm7,%xmm11,%xmm11 + vpinsrd $1,-36(%r10),%xmm2,%xmm2 + vpinsrd $1,-36(%r11),%xmm9,%xmm9 + vpaddd %xmm15,%xmm13,%xmm13 + vpslld $5,%xmm14,%xmm8 + vpandn %xmm12,%xmm10,%xmm7 + vpand %xmm11,%xmm10,%xmm6 + + vmovdqa %xmm1,96-128(%rax) + vpaddd %xmm1,%xmm13,%xmm13 + vpunpckldq %xmm9,%xmm2,%xmm2 + vpsrld $27,%xmm14,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vmovd -32(%r8),%xmm3 + + vpslld $30,%xmm10,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vmovd -32(%r9),%xmm9 + vpaddd %xmm6,%xmm13,%xmm13 + + vpsrld $2,%xmm10,%xmm10 + vpaddd %xmm8,%xmm13,%xmm13 + vpshufb %xmm5,%xmm2,%xmm2 + vpor %xmm7,%xmm10,%xmm10 + vpinsrd $1,-32(%r10),%xmm3,%xmm3 + vpinsrd $1,-32(%r11),%xmm9,%xmm9 + vpaddd %xmm15,%xmm12,%xmm12 + vpslld $5,%xmm13,%xmm8 + vpandn %xmm11,%xmm14,%xmm7 + vpand %xmm10,%xmm14,%xmm6 + + vmovdqa %xmm2,112-128(%rax) + vpaddd %xmm2,%xmm12,%xmm12 + vpunpckldq %xmm9,%xmm3,%xmm3 + vpsrld $27,%xmm13,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vmovd -28(%r8),%xmm4 + + vpslld $30,%xmm14,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vmovd -28(%r9),%xmm9 + vpaddd %xmm6,%xmm12,%xmm12 + + vpsrld $2,%xmm14,%xmm14 + vpaddd %xmm8,%xmm12,%xmm12 + vpshufb %xmm5,%xmm3,%xmm3 + vpor %xmm7,%xmm14,%xmm14 + vpinsrd $1,-28(%r10),%xmm4,%xmm4 + vpinsrd $1,-28(%r11),%xmm9,%xmm9 + vpaddd %xmm15,%xmm11,%xmm11 + vpslld $5,%xmm12,%xmm8 + vpandn %xmm10,%xmm13,%xmm7 + vpand %xmm14,%xmm13,%xmm6 + + vmovdqa %xmm3,128-128(%rax) + vpaddd %xmm3,%xmm11,%xmm11 + vpunpckldq %xmm9,%xmm4,%xmm4 + vpsrld $27,%xmm12,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vmovd -24(%r8),%xmm0 + + vpslld $30,%xmm13,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vmovd -24(%r9),%xmm9 + vpaddd %xmm6,%xmm11,%xmm11 + + vpsrld $2,%xmm13,%xmm13 + vpaddd %xmm8,%xmm11,%xmm11 + vpshufb %xmm5,%xmm4,%xmm4 + vpor %xmm7,%xmm13,%xmm13 + vpinsrd $1,-24(%r10),%xmm0,%xmm0 + vpinsrd $1,-24(%r11),%xmm9,%xmm9 + vpaddd %xmm15,%xmm10,%xmm10 + vpslld $5,%xmm11,%xmm8 + vpandn %xmm14,%xmm12,%xmm7 + vpand %xmm13,%xmm12,%xmm6 + + vmovdqa %xmm4,144-128(%rax) + vpaddd %xmm4,%xmm10,%xmm10 + vpunpckldq %xmm9,%xmm0,%xmm0 + vpsrld $27,%xmm11,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vmovd -20(%r8),%xmm1 + + vpslld $30,%xmm12,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vmovd -20(%r9),%xmm9 + vpaddd %xmm6,%xmm10,%xmm10 + + vpsrld $2,%xmm12,%xmm12 + vpaddd %xmm8,%xmm10,%xmm10 + vpshufb %xmm5,%xmm0,%xmm0 + vpor %xmm7,%xmm12,%xmm12 + vpinsrd $1,-20(%r10),%xmm1,%xmm1 + vpinsrd $1,-20(%r11),%xmm9,%xmm9 + vpaddd %xmm15,%xmm14,%xmm14 + vpslld $5,%xmm10,%xmm8 + vpandn %xmm13,%xmm11,%xmm7 + vpand %xmm12,%xmm11,%xmm6 + + vmovdqa %xmm0,160-128(%rax) + vpaddd %xmm0,%xmm14,%xmm14 + vpunpckldq %xmm9,%xmm1,%xmm1 + vpsrld $27,%xmm10,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vmovd -16(%r8),%xmm2 + + vpslld $30,%xmm11,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vmovd -16(%r9),%xmm9 + vpaddd %xmm6,%xmm14,%xmm14 + + vpsrld $2,%xmm11,%xmm11 + vpaddd %xmm8,%xmm14,%xmm14 + vpshufb %xmm5,%xmm1,%xmm1 + vpor %xmm7,%xmm11,%xmm11 + vpinsrd $1,-16(%r10),%xmm2,%xmm2 + vpinsrd $1,-16(%r11),%xmm9,%xmm9 + vpaddd %xmm15,%xmm13,%xmm13 + vpslld $5,%xmm14,%xmm8 + vpandn %xmm12,%xmm10,%xmm7 + vpand %xmm11,%xmm10,%xmm6 + + vmovdqa %xmm1,176-128(%rax) + vpaddd %xmm1,%xmm13,%xmm13 + vpunpckldq %xmm9,%xmm2,%xmm2 + vpsrld $27,%xmm14,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vmovd -12(%r8),%xmm3 + + vpslld $30,%xmm10,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vmovd -12(%r9),%xmm9 + vpaddd %xmm6,%xmm13,%xmm13 + + vpsrld $2,%xmm10,%xmm10 + vpaddd %xmm8,%xmm13,%xmm13 + vpshufb %xmm5,%xmm2,%xmm2 + vpor %xmm7,%xmm10,%xmm10 + vpinsrd $1,-12(%r10),%xmm3,%xmm3 + vpinsrd $1,-12(%r11),%xmm9,%xmm9 + vpaddd %xmm15,%xmm12,%xmm12 + vpslld $5,%xmm13,%xmm8 + vpandn %xmm11,%xmm14,%xmm7 + vpand %xmm10,%xmm14,%xmm6 + + vmovdqa %xmm2,192-128(%rax) + vpaddd %xmm2,%xmm12,%xmm12 + vpunpckldq %xmm9,%xmm3,%xmm3 + vpsrld $27,%xmm13,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vmovd -8(%r8),%xmm4 + + vpslld $30,%xmm14,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vmovd -8(%r9),%xmm9 + vpaddd %xmm6,%xmm12,%xmm12 + + vpsrld $2,%xmm14,%xmm14 + vpaddd %xmm8,%xmm12,%xmm12 + vpshufb %xmm5,%xmm3,%xmm3 + vpor %xmm7,%xmm14,%xmm14 + vpinsrd $1,-8(%r10),%xmm4,%xmm4 + vpinsrd $1,-8(%r11),%xmm9,%xmm9 + vpaddd %xmm15,%xmm11,%xmm11 + vpslld $5,%xmm12,%xmm8 + vpandn %xmm10,%xmm13,%xmm7 + vpand %xmm14,%xmm13,%xmm6 + + vmovdqa %xmm3,208-128(%rax) + vpaddd %xmm3,%xmm11,%xmm11 + vpunpckldq %xmm9,%xmm4,%xmm4 + vpsrld $27,%xmm12,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vmovd -4(%r8),%xmm0 + + vpslld $30,%xmm13,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vmovd -4(%r9),%xmm9 + vpaddd %xmm6,%xmm11,%xmm11 + + vpsrld $2,%xmm13,%xmm13 + vpaddd %xmm8,%xmm11,%xmm11 + vpshufb %xmm5,%xmm4,%xmm4 + vpor %xmm7,%xmm13,%xmm13 + vmovdqa 0-128(%rax),%xmm1 + vpinsrd $1,-4(%r10),%xmm0,%xmm0 + vpinsrd $1,-4(%r11),%xmm9,%xmm9 + vpaddd %xmm15,%xmm10,%xmm10 + prefetcht0 63(%r8) + vpslld $5,%xmm11,%xmm8 + vpandn %xmm14,%xmm12,%xmm7 + vpand %xmm13,%xmm12,%xmm6 + + vmovdqa %xmm4,224-128(%rax) + vpaddd %xmm4,%xmm10,%xmm10 + vpunpckldq %xmm9,%xmm0,%xmm0 + vpsrld $27,%xmm11,%xmm9 + prefetcht0 63(%r9) + vpxor %xmm7,%xmm6,%xmm6 + + vpslld $30,%xmm12,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + prefetcht0 63(%r10) + vpaddd %xmm6,%xmm10,%xmm10 + + vpsrld $2,%xmm12,%xmm12 + vpaddd %xmm8,%xmm10,%xmm10 + prefetcht0 63(%r11) + vpshufb %xmm5,%xmm0,%xmm0 + vpor %xmm7,%xmm12,%xmm12 + vmovdqa 16-128(%rax),%xmm2 + vpxor %xmm3,%xmm1,%xmm1 + vmovdqa 32-128(%rax),%xmm3 + + vpaddd %xmm15,%xmm14,%xmm14 + vpslld $5,%xmm10,%xmm8 + vpandn %xmm13,%xmm11,%xmm7 + + vpand %xmm12,%xmm11,%xmm6 + + vmovdqa %xmm0,240-128(%rax) + vpaddd %xmm0,%xmm14,%xmm14 + vpxor 128-128(%rax),%xmm1,%xmm1 + vpsrld $27,%xmm10,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vpxor %xmm3,%xmm1,%xmm1 + + + vpslld $30,%xmm11,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm14,%xmm14 + + vpsrld $31,%xmm1,%xmm5 + vpaddd %xmm1,%xmm1,%xmm1 + + vpsrld $2,%xmm11,%xmm11 + + vpaddd %xmm8,%xmm14,%xmm14 + vpor %xmm5,%xmm1,%xmm1 + vpor %xmm7,%xmm11,%xmm11 + vpxor %xmm4,%xmm2,%xmm2 + vmovdqa 48-128(%rax),%xmm4 + + vpaddd %xmm15,%xmm13,%xmm13 + vpslld $5,%xmm14,%xmm8 + vpandn %xmm12,%xmm10,%xmm7 + + vpand %xmm11,%xmm10,%xmm6 + + vmovdqa %xmm1,0-128(%rax) + vpaddd %xmm1,%xmm13,%xmm13 + vpxor 144-128(%rax),%xmm2,%xmm2 + vpsrld $27,%xmm14,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vpxor %xmm4,%xmm2,%xmm2 + + + vpslld $30,%xmm10,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm13,%xmm13 + + vpsrld $31,%xmm2,%xmm5 + vpaddd %xmm2,%xmm2,%xmm2 + + vpsrld $2,%xmm10,%xmm10 + + vpaddd %xmm8,%xmm13,%xmm13 + vpor %xmm5,%xmm2,%xmm2 + vpor %xmm7,%xmm10,%xmm10 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqa 64-128(%rax),%xmm0 + + vpaddd %xmm15,%xmm12,%xmm12 + vpslld $5,%xmm13,%xmm8 + vpandn %xmm11,%xmm14,%xmm7 + + vpand %xmm10,%xmm14,%xmm6 + + vmovdqa %xmm2,16-128(%rax) + vpaddd %xmm2,%xmm12,%xmm12 + vpxor 160-128(%rax),%xmm3,%xmm3 + vpsrld $27,%xmm13,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vpxor %xmm0,%xmm3,%xmm3 + + + vpslld $30,%xmm14,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm12,%xmm12 + + vpsrld $31,%xmm3,%xmm5 + vpaddd %xmm3,%xmm3,%xmm3 + + vpsrld $2,%xmm14,%xmm14 + + vpaddd %xmm8,%xmm12,%xmm12 + vpor %xmm5,%xmm3,%xmm3 + vpor %xmm7,%xmm14,%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vmovdqa 80-128(%rax),%xmm1 + + vpaddd %xmm15,%xmm11,%xmm11 + vpslld $5,%xmm12,%xmm8 + vpandn %xmm10,%xmm13,%xmm7 + + vpand %xmm14,%xmm13,%xmm6 + + vmovdqa %xmm3,32-128(%rax) + vpaddd %xmm3,%xmm11,%xmm11 + vpxor 176-128(%rax),%xmm4,%xmm4 + vpsrld $27,%xmm12,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm4 + + + vpslld $30,%xmm13,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm11,%xmm11 + + vpsrld $31,%xmm4,%xmm5 + vpaddd %xmm4,%xmm4,%xmm4 + + vpsrld $2,%xmm13,%xmm13 + + vpaddd %xmm8,%xmm11,%xmm11 + vpor %xmm5,%xmm4,%xmm4 + vpor %xmm7,%xmm13,%xmm13 + vpxor %xmm2,%xmm0,%xmm0 + vmovdqa 96-128(%rax),%xmm2 + + vpaddd %xmm15,%xmm10,%xmm10 + vpslld $5,%xmm11,%xmm8 + vpandn %xmm14,%xmm12,%xmm7 + + vpand %xmm13,%xmm12,%xmm6 + + vmovdqa %xmm4,48-128(%rax) + vpaddd %xmm4,%xmm10,%xmm10 + vpxor 192-128(%rax),%xmm0,%xmm0 + vpsrld $27,%xmm11,%xmm9 + vpxor %xmm7,%xmm6,%xmm6 + vpxor %xmm2,%xmm0,%xmm0 + + + vpslld $30,%xmm12,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm10,%xmm10 + + vpsrld $31,%xmm0,%xmm5 + vpaddd %xmm0,%xmm0,%xmm0 + + vpsrld $2,%xmm12,%xmm12 + + vpaddd %xmm8,%xmm10,%xmm10 + vpor %xmm5,%xmm0,%xmm0 + vpor %xmm7,%xmm12,%xmm12 + vmovdqa 0(%rbp),%xmm15 + vpxor %xmm3,%xmm1,%xmm1 + vmovdqa 112-128(%rax),%xmm3 + + vpslld $5,%xmm10,%xmm8 + vpaddd %xmm15,%xmm14,%xmm14 + vpxor %xmm11,%xmm13,%xmm6 + vmovdqa %xmm0,64-128(%rax) + vpaddd %xmm0,%xmm14,%xmm14 + vpxor 208-128(%rax),%xmm1,%xmm1 + vpsrld $27,%xmm10,%xmm9 + vpxor %xmm12,%xmm6,%xmm6 + vpxor %xmm3,%xmm1,%xmm1 + + vpslld $30,%xmm11,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm14,%xmm14 + vpsrld $31,%xmm1,%xmm5 + vpaddd %xmm1,%xmm1,%xmm1 + + vpsrld $2,%xmm11,%xmm11 + vpaddd %xmm8,%xmm14,%xmm14 + vpor %xmm5,%xmm1,%xmm1 + vpor %xmm7,%xmm11,%xmm11 + vpxor %xmm4,%xmm2,%xmm2 + vmovdqa 128-128(%rax),%xmm4 + + vpslld $5,%xmm14,%xmm8 + vpaddd %xmm15,%xmm13,%xmm13 + vpxor %xmm10,%xmm12,%xmm6 + vmovdqa %xmm1,80-128(%rax) + vpaddd %xmm1,%xmm13,%xmm13 + vpxor 224-128(%rax),%xmm2,%xmm2 + vpsrld $27,%xmm14,%xmm9 + vpxor %xmm11,%xmm6,%xmm6 + vpxor %xmm4,%xmm2,%xmm2 + + vpslld $30,%xmm10,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm13,%xmm13 + vpsrld $31,%xmm2,%xmm5 + vpaddd %xmm2,%xmm2,%xmm2 + + vpsrld $2,%xmm10,%xmm10 + vpaddd %xmm8,%xmm13,%xmm13 + vpor %xmm5,%xmm2,%xmm2 + vpor %xmm7,%xmm10,%xmm10 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqa 144-128(%rax),%xmm0 + + vpslld $5,%xmm13,%xmm8 + vpaddd %xmm15,%xmm12,%xmm12 + vpxor %xmm14,%xmm11,%xmm6 + vmovdqa %xmm2,96-128(%rax) + vpaddd %xmm2,%xmm12,%xmm12 + vpxor 240-128(%rax),%xmm3,%xmm3 + vpsrld $27,%xmm13,%xmm9 + vpxor %xmm10,%xmm6,%xmm6 + vpxor %xmm0,%xmm3,%xmm3 + + vpslld $30,%xmm14,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm12,%xmm12 + vpsrld $31,%xmm3,%xmm5 + vpaddd %xmm3,%xmm3,%xmm3 + + vpsrld $2,%xmm14,%xmm14 + vpaddd %xmm8,%xmm12,%xmm12 + vpor %xmm5,%xmm3,%xmm3 + vpor %xmm7,%xmm14,%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vmovdqa 160-128(%rax),%xmm1 + + vpslld $5,%xmm12,%xmm8 + vpaddd %xmm15,%xmm11,%xmm11 + vpxor %xmm13,%xmm10,%xmm6 + vmovdqa %xmm3,112-128(%rax) + vpaddd %xmm3,%xmm11,%xmm11 + vpxor 0-128(%rax),%xmm4,%xmm4 + vpsrld $27,%xmm12,%xmm9 + vpxor %xmm14,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm4 + + vpslld $30,%xmm13,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm11,%xmm11 + vpsrld $31,%xmm4,%xmm5 + vpaddd %xmm4,%xmm4,%xmm4 + + vpsrld $2,%xmm13,%xmm13 + vpaddd %xmm8,%xmm11,%xmm11 + vpor %xmm5,%xmm4,%xmm4 + vpor %xmm7,%xmm13,%xmm13 + vpxor %xmm2,%xmm0,%xmm0 + vmovdqa 176-128(%rax),%xmm2 + + vpslld $5,%xmm11,%xmm8 + vpaddd %xmm15,%xmm10,%xmm10 + vpxor %xmm12,%xmm14,%xmm6 + vmovdqa %xmm4,128-128(%rax) + vpaddd %xmm4,%xmm10,%xmm10 + vpxor 16-128(%rax),%xmm0,%xmm0 + vpsrld $27,%xmm11,%xmm9 + vpxor %xmm13,%xmm6,%xmm6 + vpxor %xmm2,%xmm0,%xmm0 + + vpslld $30,%xmm12,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm10,%xmm10 + vpsrld $31,%xmm0,%xmm5 + vpaddd %xmm0,%xmm0,%xmm0 + + vpsrld $2,%xmm12,%xmm12 + vpaddd %xmm8,%xmm10,%xmm10 + vpor %xmm5,%xmm0,%xmm0 + vpor %xmm7,%xmm12,%xmm12 + vpxor %xmm3,%xmm1,%xmm1 + vmovdqa 192-128(%rax),%xmm3 + + vpslld $5,%xmm10,%xmm8 + vpaddd %xmm15,%xmm14,%xmm14 + vpxor %xmm11,%xmm13,%xmm6 + vmovdqa %xmm0,144-128(%rax) + vpaddd %xmm0,%xmm14,%xmm14 + vpxor 32-128(%rax),%xmm1,%xmm1 + vpsrld $27,%xmm10,%xmm9 + vpxor %xmm12,%xmm6,%xmm6 + vpxor %xmm3,%xmm1,%xmm1 + + vpslld $30,%xmm11,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm14,%xmm14 + vpsrld $31,%xmm1,%xmm5 + vpaddd %xmm1,%xmm1,%xmm1 + + vpsrld $2,%xmm11,%xmm11 + vpaddd %xmm8,%xmm14,%xmm14 + vpor %xmm5,%xmm1,%xmm1 + vpor %xmm7,%xmm11,%xmm11 + vpxor %xmm4,%xmm2,%xmm2 + vmovdqa 208-128(%rax),%xmm4 + + vpslld $5,%xmm14,%xmm8 + vpaddd %xmm15,%xmm13,%xmm13 + vpxor %xmm10,%xmm12,%xmm6 + vmovdqa %xmm1,160-128(%rax) + vpaddd %xmm1,%xmm13,%xmm13 + vpxor 48-128(%rax),%xmm2,%xmm2 + vpsrld $27,%xmm14,%xmm9 + vpxor %xmm11,%xmm6,%xmm6 + vpxor %xmm4,%xmm2,%xmm2 + + vpslld $30,%xmm10,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm13,%xmm13 + vpsrld $31,%xmm2,%xmm5 + vpaddd %xmm2,%xmm2,%xmm2 + + vpsrld $2,%xmm10,%xmm10 + vpaddd %xmm8,%xmm13,%xmm13 + vpor %xmm5,%xmm2,%xmm2 + vpor %xmm7,%xmm10,%xmm10 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqa 224-128(%rax),%xmm0 + + vpslld $5,%xmm13,%xmm8 + vpaddd %xmm15,%xmm12,%xmm12 + vpxor %xmm14,%xmm11,%xmm6 + vmovdqa %xmm2,176-128(%rax) + vpaddd %xmm2,%xmm12,%xmm12 + vpxor 64-128(%rax),%xmm3,%xmm3 + vpsrld $27,%xmm13,%xmm9 + vpxor %xmm10,%xmm6,%xmm6 + vpxor %xmm0,%xmm3,%xmm3 + + vpslld $30,%xmm14,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm12,%xmm12 + vpsrld $31,%xmm3,%xmm5 + vpaddd %xmm3,%xmm3,%xmm3 + + vpsrld $2,%xmm14,%xmm14 + vpaddd %xmm8,%xmm12,%xmm12 + vpor %xmm5,%xmm3,%xmm3 + vpor %xmm7,%xmm14,%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vmovdqa 240-128(%rax),%xmm1 + + vpslld $5,%xmm12,%xmm8 + vpaddd %xmm15,%xmm11,%xmm11 + vpxor %xmm13,%xmm10,%xmm6 + vmovdqa %xmm3,192-128(%rax) + vpaddd %xmm3,%xmm11,%xmm11 + vpxor 80-128(%rax),%xmm4,%xmm4 + vpsrld $27,%xmm12,%xmm9 + vpxor %xmm14,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm4 + + vpslld $30,%xmm13,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm11,%xmm11 + vpsrld $31,%xmm4,%xmm5 + vpaddd %xmm4,%xmm4,%xmm4 + + vpsrld $2,%xmm13,%xmm13 + vpaddd %xmm8,%xmm11,%xmm11 + vpor %xmm5,%xmm4,%xmm4 + vpor %xmm7,%xmm13,%xmm13 + vpxor %xmm2,%xmm0,%xmm0 + vmovdqa 0-128(%rax),%xmm2 + + vpslld $5,%xmm11,%xmm8 + vpaddd %xmm15,%xmm10,%xmm10 + vpxor %xmm12,%xmm14,%xmm6 + vmovdqa %xmm4,208-128(%rax) + vpaddd %xmm4,%xmm10,%xmm10 + vpxor 96-128(%rax),%xmm0,%xmm0 + vpsrld $27,%xmm11,%xmm9 + vpxor %xmm13,%xmm6,%xmm6 + vpxor %xmm2,%xmm0,%xmm0 + + vpslld $30,%xmm12,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm10,%xmm10 + vpsrld $31,%xmm0,%xmm5 + vpaddd %xmm0,%xmm0,%xmm0 + + vpsrld $2,%xmm12,%xmm12 + vpaddd %xmm8,%xmm10,%xmm10 + vpor %xmm5,%xmm0,%xmm0 + vpor %xmm7,%xmm12,%xmm12 + vpxor %xmm3,%xmm1,%xmm1 + vmovdqa 16-128(%rax),%xmm3 + + vpslld $5,%xmm10,%xmm8 + vpaddd %xmm15,%xmm14,%xmm14 + vpxor %xmm11,%xmm13,%xmm6 + vmovdqa %xmm0,224-128(%rax) + vpaddd %xmm0,%xmm14,%xmm14 + vpxor 112-128(%rax),%xmm1,%xmm1 + vpsrld $27,%xmm10,%xmm9 + vpxor %xmm12,%xmm6,%xmm6 + vpxor %xmm3,%xmm1,%xmm1 + + vpslld $30,%xmm11,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm14,%xmm14 + vpsrld $31,%xmm1,%xmm5 + vpaddd %xmm1,%xmm1,%xmm1 + + vpsrld $2,%xmm11,%xmm11 + vpaddd %xmm8,%xmm14,%xmm14 + vpor %xmm5,%xmm1,%xmm1 + vpor %xmm7,%xmm11,%xmm11 + vpxor %xmm4,%xmm2,%xmm2 + vmovdqa 32-128(%rax),%xmm4 + + vpslld $5,%xmm14,%xmm8 + vpaddd %xmm15,%xmm13,%xmm13 + vpxor %xmm10,%xmm12,%xmm6 + vmovdqa %xmm1,240-128(%rax) + vpaddd %xmm1,%xmm13,%xmm13 + vpxor 128-128(%rax),%xmm2,%xmm2 + vpsrld $27,%xmm14,%xmm9 + vpxor %xmm11,%xmm6,%xmm6 + vpxor %xmm4,%xmm2,%xmm2 + + vpslld $30,%xmm10,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm13,%xmm13 + vpsrld $31,%xmm2,%xmm5 + vpaddd %xmm2,%xmm2,%xmm2 + + vpsrld $2,%xmm10,%xmm10 + vpaddd %xmm8,%xmm13,%xmm13 + vpor %xmm5,%xmm2,%xmm2 + vpor %xmm7,%xmm10,%xmm10 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqa 48-128(%rax),%xmm0 + + vpslld $5,%xmm13,%xmm8 + vpaddd %xmm15,%xmm12,%xmm12 + vpxor %xmm14,%xmm11,%xmm6 + vmovdqa %xmm2,0-128(%rax) + vpaddd %xmm2,%xmm12,%xmm12 + vpxor 144-128(%rax),%xmm3,%xmm3 + vpsrld $27,%xmm13,%xmm9 + vpxor %xmm10,%xmm6,%xmm6 + vpxor %xmm0,%xmm3,%xmm3 + + vpslld $30,%xmm14,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm12,%xmm12 + vpsrld $31,%xmm3,%xmm5 + vpaddd %xmm3,%xmm3,%xmm3 + + vpsrld $2,%xmm14,%xmm14 + vpaddd %xmm8,%xmm12,%xmm12 + vpor %xmm5,%xmm3,%xmm3 + vpor %xmm7,%xmm14,%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vmovdqa 64-128(%rax),%xmm1 + + vpslld $5,%xmm12,%xmm8 + vpaddd %xmm15,%xmm11,%xmm11 + vpxor %xmm13,%xmm10,%xmm6 + vmovdqa %xmm3,16-128(%rax) + vpaddd %xmm3,%xmm11,%xmm11 + vpxor 160-128(%rax),%xmm4,%xmm4 + vpsrld $27,%xmm12,%xmm9 + vpxor %xmm14,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm4 + + vpslld $30,%xmm13,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm11,%xmm11 + vpsrld $31,%xmm4,%xmm5 + vpaddd %xmm4,%xmm4,%xmm4 + + vpsrld $2,%xmm13,%xmm13 + vpaddd %xmm8,%xmm11,%xmm11 + vpor %xmm5,%xmm4,%xmm4 + vpor %xmm7,%xmm13,%xmm13 + vpxor %xmm2,%xmm0,%xmm0 + vmovdqa 80-128(%rax),%xmm2 + + vpslld $5,%xmm11,%xmm8 + vpaddd %xmm15,%xmm10,%xmm10 + vpxor %xmm12,%xmm14,%xmm6 + vmovdqa %xmm4,32-128(%rax) + vpaddd %xmm4,%xmm10,%xmm10 + vpxor 176-128(%rax),%xmm0,%xmm0 + vpsrld $27,%xmm11,%xmm9 + vpxor %xmm13,%xmm6,%xmm6 + vpxor %xmm2,%xmm0,%xmm0 + + vpslld $30,%xmm12,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm10,%xmm10 + vpsrld $31,%xmm0,%xmm5 + vpaddd %xmm0,%xmm0,%xmm0 + + vpsrld $2,%xmm12,%xmm12 + vpaddd %xmm8,%xmm10,%xmm10 + vpor %xmm5,%xmm0,%xmm0 + vpor %xmm7,%xmm12,%xmm12 + vpxor %xmm3,%xmm1,%xmm1 + vmovdqa 96-128(%rax),%xmm3 + + vpslld $5,%xmm10,%xmm8 + vpaddd %xmm15,%xmm14,%xmm14 + vpxor %xmm11,%xmm13,%xmm6 + vmovdqa %xmm0,48-128(%rax) + vpaddd %xmm0,%xmm14,%xmm14 + vpxor 192-128(%rax),%xmm1,%xmm1 + vpsrld $27,%xmm10,%xmm9 + vpxor %xmm12,%xmm6,%xmm6 + vpxor %xmm3,%xmm1,%xmm1 + + vpslld $30,%xmm11,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm14,%xmm14 + vpsrld $31,%xmm1,%xmm5 + vpaddd %xmm1,%xmm1,%xmm1 + + vpsrld $2,%xmm11,%xmm11 + vpaddd %xmm8,%xmm14,%xmm14 + vpor %xmm5,%xmm1,%xmm1 + vpor %xmm7,%xmm11,%xmm11 + vpxor %xmm4,%xmm2,%xmm2 + vmovdqa 112-128(%rax),%xmm4 + + vpslld $5,%xmm14,%xmm8 + vpaddd %xmm15,%xmm13,%xmm13 + vpxor %xmm10,%xmm12,%xmm6 + vmovdqa %xmm1,64-128(%rax) + vpaddd %xmm1,%xmm13,%xmm13 + vpxor 208-128(%rax),%xmm2,%xmm2 + vpsrld $27,%xmm14,%xmm9 + vpxor %xmm11,%xmm6,%xmm6 + vpxor %xmm4,%xmm2,%xmm2 + + vpslld $30,%xmm10,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm13,%xmm13 + vpsrld $31,%xmm2,%xmm5 + vpaddd %xmm2,%xmm2,%xmm2 + + vpsrld $2,%xmm10,%xmm10 + vpaddd %xmm8,%xmm13,%xmm13 + vpor %xmm5,%xmm2,%xmm2 + vpor %xmm7,%xmm10,%xmm10 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqa 128-128(%rax),%xmm0 + + vpslld $5,%xmm13,%xmm8 + vpaddd %xmm15,%xmm12,%xmm12 + vpxor %xmm14,%xmm11,%xmm6 + vmovdqa %xmm2,80-128(%rax) + vpaddd %xmm2,%xmm12,%xmm12 + vpxor 224-128(%rax),%xmm3,%xmm3 + vpsrld $27,%xmm13,%xmm9 + vpxor %xmm10,%xmm6,%xmm6 + vpxor %xmm0,%xmm3,%xmm3 + + vpslld $30,%xmm14,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm12,%xmm12 + vpsrld $31,%xmm3,%xmm5 + vpaddd %xmm3,%xmm3,%xmm3 + + vpsrld $2,%xmm14,%xmm14 + vpaddd %xmm8,%xmm12,%xmm12 + vpor %xmm5,%xmm3,%xmm3 + vpor %xmm7,%xmm14,%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vmovdqa 144-128(%rax),%xmm1 + + vpslld $5,%xmm12,%xmm8 + vpaddd %xmm15,%xmm11,%xmm11 + vpxor %xmm13,%xmm10,%xmm6 + vmovdqa %xmm3,96-128(%rax) + vpaddd %xmm3,%xmm11,%xmm11 + vpxor 240-128(%rax),%xmm4,%xmm4 + vpsrld $27,%xmm12,%xmm9 + vpxor %xmm14,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm4 + + vpslld $30,%xmm13,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm11,%xmm11 + vpsrld $31,%xmm4,%xmm5 + vpaddd %xmm4,%xmm4,%xmm4 + + vpsrld $2,%xmm13,%xmm13 + vpaddd %xmm8,%xmm11,%xmm11 + vpor %xmm5,%xmm4,%xmm4 + vpor %xmm7,%xmm13,%xmm13 + vpxor %xmm2,%xmm0,%xmm0 + vmovdqa 160-128(%rax),%xmm2 + + vpslld $5,%xmm11,%xmm8 + vpaddd %xmm15,%xmm10,%xmm10 + vpxor %xmm12,%xmm14,%xmm6 + vmovdqa %xmm4,112-128(%rax) + vpaddd %xmm4,%xmm10,%xmm10 + vpxor 0-128(%rax),%xmm0,%xmm0 + vpsrld $27,%xmm11,%xmm9 + vpxor %xmm13,%xmm6,%xmm6 + vpxor %xmm2,%xmm0,%xmm0 + + vpslld $30,%xmm12,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm10,%xmm10 + vpsrld $31,%xmm0,%xmm5 + vpaddd %xmm0,%xmm0,%xmm0 + + vpsrld $2,%xmm12,%xmm12 + vpaddd %xmm8,%xmm10,%xmm10 + vpor %xmm5,%xmm0,%xmm0 + vpor %xmm7,%xmm12,%xmm12 + vmovdqa 32(%rbp),%xmm15 + vpxor %xmm3,%xmm1,%xmm1 + vmovdqa 176-128(%rax),%xmm3 + + vpaddd %xmm15,%xmm14,%xmm14 + vpslld $5,%xmm10,%xmm8 + vpand %xmm12,%xmm13,%xmm7 + vpxor 16-128(%rax),%xmm1,%xmm1 + + vpaddd %xmm7,%xmm14,%xmm14 + vpsrld $27,%xmm10,%xmm9 + vpxor %xmm12,%xmm13,%xmm6 + vpxor %xmm3,%xmm1,%xmm1 + + vmovdqu %xmm0,128-128(%rax) + vpaddd %xmm0,%xmm14,%xmm14 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm1,%xmm5 + vpand %xmm11,%xmm6,%xmm6 + vpaddd %xmm1,%xmm1,%xmm1 + + vpslld $30,%xmm11,%xmm7 + vpaddd %xmm6,%xmm14,%xmm14 + + vpsrld $2,%xmm11,%xmm11 + vpaddd %xmm8,%xmm14,%xmm14 + vpor %xmm5,%xmm1,%xmm1 + vpor %xmm7,%xmm11,%xmm11 + vpxor %xmm4,%xmm2,%xmm2 + vmovdqa 192-128(%rax),%xmm4 + + vpaddd %xmm15,%xmm13,%xmm13 + vpslld $5,%xmm14,%xmm8 + vpand %xmm11,%xmm12,%xmm7 + vpxor 32-128(%rax),%xmm2,%xmm2 + + vpaddd %xmm7,%xmm13,%xmm13 + vpsrld $27,%xmm14,%xmm9 + vpxor %xmm11,%xmm12,%xmm6 + vpxor %xmm4,%xmm2,%xmm2 + + vmovdqu %xmm1,144-128(%rax) + vpaddd %xmm1,%xmm13,%xmm13 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm2,%xmm5 + vpand %xmm10,%xmm6,%xmm6 + vpaddd %xmm2,%xmm2,%xmm2 + + vpslld $30,%xmm10,%xmm7 + vpaddd %xmm6,%xmm13,%xmm13 + + vpsrld $2,%xmm10,%xmm10 + vpaddd %xmm8,%xmm13,%xmm13 + vpor %xmm5,%xmm2,%xmm2 + vpor %xmm7,%xmm10,%xmm10 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqa 208-128(%rax),%xmm0 + + vpaddd %xmm15,%xmm12,%xmm12 + vpslld $5,%xmm13,%xmm8 + vpand %xmm10,%xmm11,%xmm7 + vpxor 48-128(%rax),%xmm3,%xmm3 + + vpaddd %xmm7,%xmm12,%xmm12 + vpsrld $27,%xmm13,%xmm9 + vpxor %xmm10,%xmm11,%xmm6 + vpxor %xmm0,%xmm3,%xmm3 + + vmovdqu %xmm2,160-128(%rax) + vpaddd %xmm2,%xmm12,%xmm12 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm3,%xmm5 + vpand %xmm14,%xmm6,%xmm6 + vpaddd %xmm3,%xmm3,%xmm3 + + vpslld $30,%xmm14,%xmm7 + vpaddd %xmm6,%xmm12,%xmm12 + + vpsrld $2,%xmm14,%xmm14 + vpaddd %xmm8,%xmm12,%xmm12 + vpor %xmm5,%xmm3,%xmm3 + vpor %xmm7,%xmm14,%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vmovdqa 224-128(%rax),%xmm1 + + vpaddd %xmm15,%xmm11,%xmm11 + vpslld $5,%xmm12,%xmm8 + vpand %xmm14,%xmm10,%xmm7 + vpxor 64-128(%rax),%xmm4,%xmm4 + + vpaddd %xmm7,%xmm11,%xmm11 + vpsrld $27,%xmm12,%xmm9 + vpxor %xmm14,%xmm10,%xmm6 + vpxor %xmm1,%xmm4,%xmm4 + + vmovdqu %xmm3,176-128(%rax) + vpaddd %xmm3,%xmm11,%xmm11 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm4,%xmm5 + vpand %xmm13,%xmm6,%xmm6 + vpaddd %xmm4,%xmm4,%xmm4 + + vpslld $30,%xmm13,%xmm7 + vpaddd %xmm6,%xmm11,%xmm11 + + vpsrld $2,%xmm13,%xmm13 + vpaddd %xmm8,%xmm11,%xmm11 + vpor %xmm5,%xmm4,%xmm4 + vpor %xmm7,%xmm13,%xmm13 + vpxor %xmm2,%xmm0,%xmm0 + vmovdqa 240-128(%rax),%xmm2 + + vpaddd %xmm15,%xmm10,%xmm10 + vpslld $5,%xmm11,%xmm8 + vpand %xmm13,%xmm14,%xmm7 + vpxor 80-128(%rax),%xmm0,%xmm0 + + vpaddd %xmm7,%xmm10,%xmm10 + vpsrld $27,%xmm11,%xmm9 + vpxor %xmm13,%xmm14,%xmm6 + vpxor %xmm2,%xmm0,%xmm0 + + vmovdqu %xmm4,192-128(%rax) + vpaddd %xmm4,%xmm10,%xmm10 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm0,%xmm5 + vpand %xmm12,%xmm6,%xmm6 + vpaddd %xmm0,%xmm0,%xmm0 + + vpslld $30,%xmm12,%xmm7 + vpaddd %xmm6,%xmm10,%xmm10 + + vpsrld $2,%xmm12,%xmm12 + vpaddd %xmm8,%xmm10,%xmm10 + vpor %xmm5,%xmm0,%xmm0 + vpor %xmm7,%xmm12,%xmm12 + vpxor %xmm3,%xmm1,%xmm1 + vmovdqa 0-128(%rax),%xmm3 + + vpaddd %xmm15,%xmm14,%xmm14 + vpslld $5,%xmm10,%xmm8 + vpand %xmm12,%xmm13,%xmm7 + vpxor 96-128(%rax),%xmm1,%xmm1 + + vpaddd %xmm7,%xmm14,%xmm14 + vpsrld $27,%xmm10,%xmm9 + vpxor %xmm12,%xmm13,%xmm6 + vpxor %xmm3,%xmm1,%xmm1 + + vmovdqu %xmm0,208-128(%rax) + vpaddd %xmm0,%xmm14,%xmm14 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm1,%xmm5 + vpand %xmm11,%xmm6,%xmm6 + vpaddd %xmm1,%xmm1,%xmm1 + + vpslld $30,%xmm11,%xmm7 + vpaddd %xmm6,%xmm14,%xmm14 + + vpsrld $2,%xmm11,%xmm11 + vpaddd %xmm8,%xmm14,%xmm14 + vpor %xmm5,%xmm1,%xmm1 + vpor %xmm7,%xmm11,%xmm11 + vpxor %xmm4,%xmm2,%xmm2 + vmovdqa 16-128(%rax),%xmm4 + + vpaddd %xmm15,%xmm13,%xmm13 + vpslld $5,%xmm14,%xmm8 + vpand %xmm11,%xmm12,%xmm7 + vpxor 112-128(%rax),%xmm2,%xmm2 + + vpaddd %xmm7,%xmm13,%xmm13 + vpsrld $27,%xmm14,%xmm9 + vpxor %xmm11,%xmm12,%xmm6 + vpxor %xmm4,%xmm2,%xmm2 + + vmovdqu %xmm1,224-128(%rax) + vpaddd %xmm1,%xmm13,%xmm13 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm2,%xmm5 + vpand %xmm10,%xmm6,%xmm6 + vpaddd %xmm2,%xmm2,%xmm2 + + vpslld $30,%xmm10,%xmm7 + vpaddd %xmm6,%xmm13,%xmm13 + + vpsrld $2,%xmm10,%xmm10 + vpaddd %xmm8,%xmm13,%xmm13 + vpor %xmm5,%xmm2,%xmm2 + vpor %xmm7,%xmm10,%xmm10 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqa 32-128(%rax),%xmm0 + + vpaddd %xmm15,%xmm12,%xmm12 + vpslld $5,%xmm13,%xmm8 + vpand %xmm10,%xmm11,%xmm7 + vpxor 128-128(%rax),%xmm3,%xmm3 + + vpaddd %xmm7,%xmm12,%xmm12 + vpsrld $27,%xmm13,%xmm9 + vpxor %xmm10,%xmm11,%xmm6 + vpxor %xmm0,%xmm3,%xmm3 + + vmovdqu %xmm2,240-128(%rax) + vpaddd %xmm2,%xmm12,%xmm12 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm3,%xmm5 + vpand %xmm14,%xmm6,%xmm6 + vpaddd %xmm3,%xmm3,%xmm3 + + vpslld $30,%xmm14,%xmm7 + vpaddd %xmm6,%xmm12,%xmm12 + + vpsrld $2,%xmm14,%xmm14 + vpaddd %xmm8,%xmm12,%xmm12 + vpor %xmm5,%xmm3,%xmm3 + vpor %xmm7,%xmm14,%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vmovdqa 48-128(%rax),%xmm1 + + vpaddd %xmm15,%xmm11,%xmm11 + vpslld $5,%xmm12,%xmm8 + vpand %xmm14,%xmm10,%xmm7 + vpxor 144-128(%rax),%xmm4,%xmm4 + + vpaddd %xmm7,%xmm11,%xmm11 + vpsrld $27,%xmm12,%xmm9 + vpxor %xmm14,%xmm10,%xmm6 + vpxor %xmm1,%xmm4,%xmm4 + + vmovdqu %xmm3,0-128(%rax) + vpaddd %xmm3,%xmm11,%xmm11 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm4,%xmm5 + vpand %xmm13,%xmm6,%xmm6 + vpaddd %xmm4,%xmm4,%xmm4 + + vpslld $30,%xmm13,%xmm7 + vpaddd %xmm6,%xmm11,%xmm11 + + vpsrld $2,%xmm13,%xmm13 + vpaddd %xmm8,%xmm11,%xmm11 + vpor %xmm5,%xmm4,%xmm4 + vpor %xmm7,%xmm13,%xmm13 + vpxor %xmm2,%xmm0,%xmm0 + vmovdqa 64-128(%rax),%xmm2 + + vpaddd %xmm15,%xmm10,%xmm10 + vpslld $5,%xmm11,%xmm8 + vpand %xmm13,%xmm14,%xmm7 + vpxor 160-128(%rax),%xmm0,%xmm0 + + vpaddd %xmm7,%xmm10,%xmm10 + vpsrld $27,%xmm11,%xmm9 + vpxor %xmm13,%xmm14,%xmm6 + vpxor %xmm2,%xmm0,%xmm0 + + vmovdqu %xmm4,16-128(%rax) + vpaddd %xmm4,%xmm10,%xmm10 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm0,%xmm5 + vpand %xmm12,%xmm6,%xmm6 + vpaddd %xmm0,%xmm0,%xmm0 + + vpslld $30,%xmm12,%xmm7 + vpaddd %xmm6,%xmm10,%xmm10 + + vpsrld $2,%xmm12,%xmm12 + vpaddd %xmm8,%xmm10,%xmm10 + vpor %xmm5,%xmm0,%xmm0 + vpor %xmm7,%xmm12,%xmm12 + vpxor %xmm3,%xmm1,%xmm1 + vmovdqa 80-128(%rax),%xmm3 + + vpaddd %xmm15,%xmm14,%xmm14 + vpslld $5,%xmm10,%xmm8 + vpand %xmm12,%xmm13,%xmm7 + vpxor 176-128(%rax),%xmm1,%xmm1 + + vpaddd %xmm7,%xmm14,%xmm14 + vpsrld $27,%xmm10,%xmm9 + vpxor %xmm12,%xmm13,%xmm6 + vpxor %xmm3,%xmm1,%xmm1 + + vmovdqu %xmm0,32-128(%rax) + vpaddd %xmm0,%xmm14,%xmm14 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm1,%xmm5 + vpand %xmm11,%xmm6,%xmm6 + vpaddd %xmm1,%xmm1,%xmm1 + + vpslld $30,%xmm11,%xmm7 + vpaddd %xmm6,%xmm14,%xmm14 + + vpsrld $2,%xmm11,%xmm11 + vpaddd %xmm8,%xmm14,%xmm14 + vpor %xmm5,%xmm1,%xmm1 + vpor %xmm7,%xmm11,%xmm11 + vpxor %xmm4,%xmm2,%xmm2 + vmovdqa 96-128(%rax),%xmm4 + + vpaddd %xmm15,%xmm13,%xmm13 + vpslld $5,%xmm14,%xmm8 + vpand %xmm11,%xmm12,%xmm7 + vpxor 192-128(%rax),%xmm2,%xmm2 + + vpaddd %xmm7,%xmm13,%xmm13 + vpsrld $27,%xmm14,%xmm9 + vpxor %xmm11,%xmm12,%xmm6 + vpxor %xmm4,%xmm2,%xmm2 + + vmovdqu %xmm1,48-128(%rax) + vpaddd %xmm1,%xmm13,%xmm13 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm2,%xmm5 + vpand %xmm10,%xmm6,%xmm6 + vpaddd %xmm2,%xmm2,%xmm2 + + vpslld $30,%xmm10,%xmm7 + vpaddd %xmm6,%xmm13,%xmm13 + + vpsrld $2,%xmm10,%xmm10 + vpaddd %xmm8,%xmm13,%xmm13 + vpor %xmm5,%xmm2,%xmm2 + vpor %xmm7,%xmm10,%xmm10 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqa 112-128(%rax),%xmm0 + + vpaddd %xmm15,%xmm12,%xmm12 + vpslld $5,%xmm13,%xmm8 + vpand %xmm10,%xmm11,%xmm7 + vpxor 208-128(%rax),%xmm3,%xmm3 + + vpaddd %xmm7,%xmm12,%xmm12 + vpsrld $27,%xmm13,%xmm9 + vpxor %xmm10,%xmm11,%xmm6 + vpxor %xmm0,%xmm3,%xmm3 + + vmovdqu %xmm2,64-128(%rax) + vpaddd %xmm2,%xmm12,%xmm12 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm3,%xmm5 + vpand %xmm14,%xmm6,%xmm6 + vpaddd %xmm3,%xmm3,%xmm3 + + vpslld $30,%xmm14,%xmm7 + vpaddd %xmm6,%xmm12,%xmm12 + + vpsrld $2,%xmm14,%xmm14 + vpaddd %xmm8,%xmm12,%xmm12 + vpor %xmm5,%xmm3,%xmm3 + vpor %xmm7,%xmm14,%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vmovdqa 128-128(%rax),%xmm1 + + vpaddd %xmm15,%xmm11,%xmm11 + vpslld $5,%xmm12,%xmm8 + vpand %xmm14,%xmm10,%xmm7 + vpxor 224-128(%rax),%xmm4,%xmm4 + + vpaddd %xmm7,%xmm11,%xmm11 + vpsrld $27,%xmm12,%xmm9 + vpxor %xmm14,%xmm10,%xmm6 + vpxor %xmm1,%xmm4,%xmm4 + + vmovdqu %xmm3,80-128(%rax) + vpaddd %xmm3,%xmm11,%xmm11 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm4,%xmm5 + vpand %xmm13,%xmm6,%xmm6 + vpaddd %xmm4,%xmm4,%xmm4 + + vpslld $30,%xmm13,%xmm7 + vpaddd %xmm6,%xmm11,%xmm11 + + vpsrld $2,%xmm13,%xmm13 + vpaddd %xmm8,%xmm11,%xmm11 + vpor %xmm5,%xmm4,%xmm4 + vpor %xmm7,%xmm13,%xmm13 + vpxor %xmm2,%xmm0,%xmm0 + vmovdqa 144-128(%rax),%xmm2 + + vpaddd %xmm15,%xmm10,%xmm10 + vpslld $5,%xmm11,%xmm8 + vpand %xmm13,%xmm14,%xmm7 + vpxor 240-128(%rax),%xmm0,%xmm0 + + vpaddd %xmm7,%xmm10,%xmm10 + vpsrld $27,%xmm11,%xmm9 + vpxor %xmm13,%xmm14,%xmm6 + vpxor %xmm2,%xmm0,%xmm0 + + vmovdqu %xmm4,96-128(%rax) + vpaddd %xmm4,%xmm10,%xmm10 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm0,%xmm5 + vpand %xmm12,%xmm6,%xmm6 + vpaddd %xmm0,%xmm0,%xmm0 + + vpslld $30,%xmm12,%xmm7 + vpaddd %xmm6,%xmm10,%xmm10 + + vpsrld $2,%xmm12,%xmm12 + vpaddd %xmm8,%xmm10,%xmm10 + vpor %xmm5,%xmm0,%xmm0 + vpor %xmm7,%xmm12,%xmm12 + vpxor %xmm3,%xmm1,%xmm1 + vmovdqa 160-128(%rax),%xmm3 + + vpaddd %xmm15,%xmm14,%xmm14 + vpslld $5,%xmm10,%xmm8 + vpand %xmm12,%xmm13,%xmm7 + vpxor 0-128(%rax),%xmm1,%xmm1 + + vpaddd %xmm7,%xmm14,%xmm14 + vpsrld $27,%xmm10,%xmm9 + vpxor %xmm12,%xmm13,%xmm6 + vpxor %xmm3,%xmm1,%xmm1 + + vmovdqu %xmm0,112-128(%rax) + vpaddd %xmm0,%xmm14,%xmm14 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm1,%xmm5 + vpand %xmm11,%xmm6,%xmm6 + vpaddd %xmm1,%xmm1,%xmm1 + + vpslld $30,%xmm11,%xmm7 + vpaddd %xmm6,%xmm14,%xmm14 + + vpsrld $2,%xmm11,%xmm11 + vpaddd %xmm8,%xmm14,%xmm14 + vpor %xmm5,%xmm1,%xmm1 + vpor %xmm7,%xmm11,%xmm11 + vpxor %xmm4,%xmm2,%xmm2 + vmovdqa 176-128(%rax),%xmm4 + + vpaddd %xmm15,%xmm13,%xmm13 + vpslld $5,%xmm14,%xmm8 + vpand %xmm11,%xmm12,%xmm7 + vpxor 16-128(%rax),%xmm2,%xmm2 + + vpaddd %xmm7,%xmm13,%xmm13 + vpsrld $27,%xmm14,%xmm9 + vpxor %xmm11,%xmm12,%xmm6 + vpxor %xmm4,%xmm2,%xmm2 + + vmovdqu %xmm1,128-128(%rax) + vpaddd %xmm1,%xmm13,%xmm13 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm2,%xmm5 + vpand %xmm10,%xmm6,%xmm6 + vpaddd %xmm2,%xmm2,%xmm2 + + vpslld $30,%xmm10,%xmm7 + vpaddd %xmm6,%xmm13,%xmm13 + + vpsrld $2,%xmm10,%xmm10 + vpaddd %xmm8,%xmm13,%xmm13 + vpor %xmm5,%xmm2,%xmm2 + vpor %xmm7,%xmm10,%xmm10 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqa 192-128(%rax),%xmm0 + + vpaddd %xmm15,%xmm12,%xmm12 + vpslld $5,%xmm13,%xmm8 + vpand %xmm10,%xmm11,%xmm7 + vpxor 32-128(%rax),%xmm3,%xmm3 + + vpaddd %xmm7,%xmm12,%xmm12 + vpsrld $27,%xmm13,%xmm9 + vpxor %xmm10,%xmm11,%xmm6 + vpxor %xmm0,%xmm3,%xmm3 + + vmovdqu %xmm2,144-128(%rax) + vpaddd %xmm2,%xmm12,%xmm12 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm3,%xmm5 + vpand %xmm14,%xmm6,%xmm6 + vpaddd %xmm3,%xmm3,%xmm3 + + vpslld $30,%xmm14,%xmm7 + vpaddd %xmm6,%xmm12,%xmm12 + + vpsrld $2,%xmm14,%xmm14 + vpaddd %xmm8,%xmm12,%xmm12 + vpor %xmm5,%xmm3,%xmm3 + vpor %xmm7,%xmm14,%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vmovdqa 208-128(%rax),%xmm1 + + vpaddd %xmm15,%xmm11,%xmm11 + vpslld $5,%xmm12,%xmm8 + vpand %xmm14,%xmm10,%xmm7 + vpxor 48-128(%rax),%xmm4,%xmm4 + + vpaddd %xmm7,%xmm11,%xmm11 + vpsrld $27,%xmm12,%xmm9 + vpxor %xmm14,%xmm10,%xmm6 + vpxor %xmm1,%xmm4,%xmm4 + + vmovdqu %xmm3,160-128(%rax) + vpaddd %xmm3,%xmm11,%xmm11 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm4,%xmm5 + vpand %xmm13,%xmm6,%xmm6 + vpaddd %xmm4,%xmm4,%xmm4 + + vpslld $30,%xmm13,%xmm7 + vpaddd %xmm6,%xmm11,%xmm11 + + vpsrld $2,%xmm13,%xmm13 + vpaddd %xmm8,%xmm11,%xmm11 + vpor %xmm5,%xmm4,%xmm4 + vpor %xmm7,%xmm13,%xmm13 + vpxor %xmm2,%xmm0,%xmm0 + vmovdqa 224-128(%rax),%xmm2 + + vpaddd %xmm15,%xmm10,%xmm10 + vpslld $5,%xmm11,%xmm8 + vpand %xmm13,%xmm14,%xmm7 + vpxor 64-128(%rax),%xmm0,%xmm0 + + vpaddd %xmm7,%xmm10,%xmm10 + vpsrld $27,%xmm11,%xmm9 + vpxor %xmm13,%xmm14,%xmm6 + vpxor %xmm2,%xmm0,%xmm0 + + vmovdqu %xmm4,176-128(%rax) + vpaddd %xmm4,%xmm10,%xmm10 + vpor %xmm9,%xmm8,%xmm8 + vpsrld $31,%xmm0,%xmm5 + vpand %xmm12,%xmm6,%xmm6 + vpaddd %xmm0,%xmm0,%xmm0 + + vpslld $30,%xmm12,%xmm7 + vpaddd %xmm6,%xmm10,%xmm10 + + vpsrld $2,%xmm12,%xmm12 + vpaddd %xmm8,%xmm10,%xmm10 + vpor %xmm5,%xmm0,%xmm0 + vpor %xmm7,%xmm12,%xmm12 + vmovdqa 64(%rbp),%xmm15 + vpxor %xmm3,%xmm1,%xmm1 + vmovdqa 240-128(%rax),%xmm3 + + vpslld $5,%xmm10,%xmm8 + vpaddd %xmm15,%xmm14,%xmm14 + vpxor %xmm11,%xmm13,%xmm6 + vmovdqa %xmm0,192-128(%rax) + vpaddd %xmm0,%xmm14,%xmm14 + vpxor 80-128(%rax),%xmm1,%xmm1 + vpsrld $27,%xmm10,%xmm9 + vpxor %xmm12,%xmm6,%xmm6 + vpxor %xmm3,%xmm1,%xmm1 + + vpslld $30,%xmm11,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm14,%xmm14 + vpsrld $31,%xmm1,%xmm5 + vpaddd %xmm1,%xmm1,%xmm1 + + vpsrld $2,%xmm11,%xmm11 + vpaddd %xmm8,%xmm14,%xmm14 + vpor %xmm5,%xmm1,%xmm1 + vpor %xmm7,%xmm11,%xmm11 + vpxor %xmm4,%xmm2,%xmm2 + vmovdqa 0-128(%rax),%xmm4 + + vpslld $5,%xmm14,%xmm8 + vpaddd %xmm15,%xmm13,%xmm13 + vpxor %xmm10,%xmm12,%xmm6 + vmovdqa %xmm1,208-128(%rax) + vpaddd %xmm1,%xmm13,%xmm13 + vpxor 96-128(%rax),%xmm2,%xmm2 + vpsrld $27,%xmm14,%xmm9 + vpxor %xmm11,%xmm6,%xmm6 + vpxor %xmm4,%xmm2,%xmm2 + + vpslld $30,%xmm10,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm13,%xmm13 + vpsrld $31,%xmm2,%xmm5 + vpaddd %xmm2,%xmm2,%xmm2 + + vpsrld $2,%xmm10,%xmm10 + vpaddd %xmm8,%xmm13,%xmm13 + vpor %xmm5,%xmm2,%xmm2 + vpor %xmm7,%xmm10,%xmm10 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqa 16-128(%rax),%xmm0 + + vpslld $5,%xmm13,%xmm8 + vpaddd %xmm15,%xmm12,%xmm12 + vpxor %xmm14,%xmm11,%xmm6 + vmovdqa %xmm2,224-128(%rax) + vpaddd %xmm2,%xmm12,%xmm12 + vpxor 112-128(%rax),%xmm3,%xmm3 + vpsrld $27,%xmm13,%xmm9 + vpxor %xmm10,%xmm6,%xmm6 + vpxor %xmm0,%xmm3,%xmm3 + + vpslld $30,%xmm14,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm12,%xmm12 + vpsrld $31,%xmm3,%xmm5 + vpaddd %xmm3,%xmm3,%xmm3 + + vpsrld $2,%xmm14,%xmm14 + vpaddd %xmm8,%xmm12,%xmm12 + vpor %xmm5,%xmm3,%xmm3 + vpor %xmm7,%xmm14,%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vmovdqa 32-128(%rax),%xmm1 + + vpslld $5,%xmm12,%xmm8 + vpaddd %xmm15,%xmm11,%xmm11 + vpxor %xmm13,%xmm10,%xmm6 + vmovdqa %xmm3,240-128(%rax) + vpaddd %xmm3,%xmm11,%xmm11 + vpxor 128-128(%rax),%xmm4,%xmm4 + vpsrld $27,%xmm12,%xmm9 + vpxor %xmm14,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm4 + + vpslld $30,%xmm13,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm11,%xmm11 + vpsrld $31,%xmm4,%xmm5 + vpaddd %xmm4,%xmm4,%xmm4 + + vpsrld $2,%xmm13,%xmm13 + vpaddd %xmm8,%xmm11,%xmm11 + vpor %xmm5,%xmm4,%xmm4 + vpor %xmm7,%xmm13,%xmm13 + vpxor %xmm2,%xmm0,%xmm0 + vmovdqa 48-128(%rax),%xmm2 + + vpslld $5,%xmm11,%xmm8 + vpaddd %xmm15,%xmm10,%xmm10 + vpxor %xmm12,%xmm14,%xmm6 + vmovdqa %xmm4,0-128(%rax) + vpaddd %xmm4,%xmm10,%xmm10 + vpxor 144-128(%rax),%xmm0,%xmm0 + vpsrld $27,%xmm11,%xmm9 + vpxor %xmm13,%xmm6,%xmm6 + vpxor %xmm2,%xmm0,%xmm0 + + vpslld $30,%xmm12,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm10,%xmm10 + vpsrld $31,%xmm0,%xmm5 + vpaddd %xmm0,%xmm0,%xmm0 + + vpsrld $2,%xmm12,%xmm12 + vpaddd %xmm8,%xmm10,%xmm10 + vpor %xmm5,%xmm0,%xmm0 + vpor %xmm7,%xmm12,%xmm12 + vpxor %xmm3,%xmm1,%xmm1 + vmovdqa 64-128(%rax),%xmm3 + + vpslld $5,%xmm10,%xmm8 + vpaddd %xmm15,%xmm14,%xmm14 + vpxor %xmm11,%xmm13,%xmm6 + vmovdqa %xmm0,16-128(%rax) + vpaddd %xmm0,%xmm14,%xmm14 + vpxor 160-128(%rax),%xmm1,%xmm1 + vpsrld $27,%xmm10,%xmm9 + vpxor %xmm12,%xmm6,%xmm6 + vpxor %xmm3,%xmm1,%xmm1 + + vpslld $30,%xmm11,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm14,%xmm14 + vpsrld $31,%xmm1,%xmm5 + vpaddd %xmm1,%xmm1,%xmm1 + + vpsrld $2,%xmm11,%xmm11 + vpaddd %xmm8,%xmm14,%xmm14 + vpor %xmm5,%xmm1,%xmm1 + vpor %xmm7,%xmm11,%xmm11 + vpxor %xmm4,%xmm2,%xmm2 + vmovdqa 80-128(%rax),%xmm4 + + vpslld $5,%xmm14,%xmm8 + vpaddd %xmm15,%xmm13,%xmm13 + vpxor %xmm10,%xmm12,%xmm6 + vmovdqa %xmm1,32-128(%rax) + vpaddd %xmm1,%xmm13,%xmm13 + vpxor 176-128(%rax),%xmm2,%xmm2 + vpsrld $27,%xmm14,%xmm9 + vpxor %xmm11,%xmm6,%xmm6 + vpxor %xmm4,%xmm2,%xmm2 + + vpslld $30,%xmm10,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm13,%xmm13 + vpsrld $31,%xmm2,%xmm5 + vpaddd %xmm2,%xmm2,%xmm2 + + vpsrld $2,%xmm10,%xmm10 + vpaddd %xmm8,%xmm13,%xmm13 + vpor %xmm5,%xmm2,%xmm2 + vpor %xmm7,%xmm10,%xmm10 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqa 96-128(%rax),%xmm0 + + vpslld $5,%xmm13,%xmm8 + vpaddd %xmm15,%xmm12,%xmm12 + vpxor %xmm14,%xmm11,%xmm6 + vmovdqa %xmm2,48-128(%rax) + vpaddd %xmm2,%xmm12,%xmm12 + vpxor 192-128(%rax),%xmm3,%xmm3 + vpsrld $27,%xmm13,%xmm9 + vpxor %xmm10,%xmm6,%xmm6 + vpxor %xmm0,%xmm3,%xmm3 + + vpslld $30,%xmm14,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm12,%xmm12 + vpsrld $31,%xmm3,%xmm5 + vpaddd %xmm3,%xmm3,%xmm3 + + vpsrld $2,%xmm14,%xmm14 + vpaddd %xmm8,%xmm12,%xmm12 + vpor %xmm5,%xmm3,%xmm3 + vpor %xmm7,%xmm14,%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vmovdqa 112-128(%rax),%xmm1 + + vpslld $5,%xmm12,%xmm8 + vpaddd %xmm15,%xmm11,%xmm11 + vpxor %xmm13,%xmm10,%xmm6 + vmovdqa %xmm3,64-128(%rax) + vpaddd %xmm3,%xmm11,%xmm11 + vpxor 208-128(%rax),%xmm4,%xmm4 + vpsrld $27,%xmm12,%xmm9 + vpxor %xmm14,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm4 + + vpslld $30,%xmm13,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm11,%xmm11 + vpsrld $31,%xmm4,%xmm5 + vpaddd %xmm4,%xmm4,%xmm4 + + vpsrld $2,%xmm13,%xmm13 + vpaddd %xmm8,%xmm11,%xmm11 + vpor %xmm5,%xmm4,%xmm4 + vpor %xmm7,%xmm13,%xmm13 + vpxor %xmm2,%xmm0,%xmm0 + vmovdqa 128-128(%rax),%xmm2 + + vpslld $5,%xmm11,%xmm8 + vpaddd %xmm15,%xmm10,%xmm10 + vpxor %xmm12,%xmm14,%xmm6 + vmovdqa %xmm4,80-128(%rax) + vpaddd %xmm4,%xmm10,%xmm10 + vpxor 224-128(%rax),%xmm0,%xmm0 + vpsrld $27,%xmm11,%xmm9 + vpxor %xmm13,%xmm6,%xmm6 + vpxor %xmm2,%xmm0,%xmm0 + + vpslld $30,%xmm12,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm10,%xmm10 + vpsrld $31,%xmm0,%xmm5 + vpaddd %xmm0,%xmm0,%xmm0 + + vpsrld $2,%xmm12,%xmm12 + vpaddd %xmm8,%xmm10,%xmm10 + vpor %xmm5,%xmm0,%xmm0 + vpor %xmm7,%xmm12,%xmm12 + vpxor %xmm3,%xmm1,%xmm1 + vmovdqa 144-128(%rax),%xmm3 + + vpslld $5,%xmm10,%xmm8 + vpaddd %xmm15,%xmm14,%xmm14 + vpxor %xmm11,%xmm13,%xmm6 + vmovdqa %xmm0,96-128(%rax) + vpaddd %xmm0,%xmm14,%xmm14 + vpxor 240-128(%rax),%xmm1,%xmm1 + vpsrld $27,%xmm10,%xmm9 + vpxor %xmm12,%xmm6,%xmm6 + vpxor %xmm3,%xmm1,%xmm1 + + vpslld $30,%xmm11,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm14,%xmm14 + vpsrld $31,%xmm1,%xmm5 + vpaddd %xmm1,%xmm1,%xmm1 + + vpsrld $2,%xmm11,%xmm11 + vpaddd %xmm8,%xmm14,%xmm14 + vpor %xmm5,%xmm1,%xmm1 + vpor %xmm7,%xmm11,%xmm11 + vpxor %xmm4,%xmm2,%xmm2 + vmovdqa 160-128(%rax),%xmm4 + + vpslld $5,%xmm14,%xmm8 + vpaddd %xmm15,%xmm13,%xmm13 + vpxor %xmm10,%xmm12,%xmm6 + vmovdqa %xmm1,112-128(%rax) + vpaddd %xmm1,%xmm13,%xmm13 + vpxor 0-128(%rax),%xmm2,%xmm2 + vpsrld $27,%xmm14,%xmm9 + vpxor %xmm11,%xmm6,%xmm6 + vpxor %xmm4,%xmm2,%xmm2 + + vpslld $30,%xmm10,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm13,%xmm13 + vpsrld $31,%xmm2,%xmm5 + vpaddd %xmm2,%xmm2,%xmm2 + + vpsrld $2,%xmm10,%xmm10 + vpaddd %xmm8,%xmm13,%xmm13 + vpor %xmm5,%xmm2,%xmm2 + vpor %xmm7,%xmm10,%xmm10 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqa 176-128(%rax),%xmm0 + + vpslld $5,%xmm13,%xmm8 + vpaddd %xmm15,%xmm12,%xmm12 + vpxor %xmm14,%xmm11,%xmm6 + vpaddd %xmm2,%xmm12,%xmm12 + vpxor 16-128(%rax),%xmm3,%xmm3 + vpsrld $27,%xmm13,%xmm9 + vpxor %xmm10,%xmm6,%xmm6 + vpxor %xmm0,%xmm3,%xmm3 + + vpslld $30,%xmm14,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm12,%xmm12 + vpsrld $31,%xmm3,%xmm5 + vpaddd %xmm3,%xmm3,%xmm3 + + vpsrld $2,%xmm14,%xmm14 + vpaddd %xmm8,%xmm12,%xmm12 + vpor %xmm5,%xmm3,%xmm3 + vpor %xmm7,%xmm14,%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vmovdqa 192-128(%rax),%xmm1 + + vpslld $5,%xmm12,%xmm8 + vpaddd %xmm15,%xmm11,%xmm11 + vpxor %xmm13,%xmm10,%xmm6 + vpaddd %xmm3,%xmm11,%xmm11 + vpxor 32-128(%rax),%xmm4,%xmm4 + vpsrld $27,%xmm12,%xmm9 + vpxor %xmm14,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm4 + + vpslld $30,%xmm13,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm11,%xmm11 + vpsrld $31,%xmm4,%xmm5 + vpaddd %xmm4,%xmm4,%xmm4 + + vpsrld $2,%xmm13,%xmm13 + vpaddd %xmm8,%xmm11,%xmm11 + vpor %xmm5,%xmm4,%xmm4 + vpor %xmm7,%xmm13,%xmm13 + vpxor %xmm2,%xmm0,%xmm0 + vmovdqa 208-128(%rax),%xmm2 + + vpslld $5,%xmm11,%xmm8 + vpaddd %xmm15,%xmm10,%xmm10 + vpxor %xmm12,%xmm14,%xmm6 + vpaddd %xmm4,%xmm10,%xmm10 + vpxor 48-128(%rax),%xmm0,%xmm0 + vpsrld $27,%xmm11,%xmm9 + vpxor %xmm13,%xmm6,%xmm6 + vpxor %xmm2,%xmm0,%xmm0 + + vpslld $30,%xmm12,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm10,%xmm10 + vpsrld $31,%xmm0,%xmm5 + vpaddd %xmm0,%xmm0,%xmm0 + + vpsrld $2,%xmm12,%xmm12 + vpaddd %xmm8,%xmm10,%xmm10 + vpor %xmm5,%xmm0,%xmm0 + vpor %xmm7,%xmm12,%xmm12 + vpxor %xmm3,%xmm1,%xmm1 + vmovdqa 224-128(%rax),%xmm3 + + vpslld $5,%xmm10,%xmm8 + vpaddd %xmm15,%xmm14,%xmm14 + vpxor %xmm11,%xmm13,%xmm6 + vpaddd %xmm0,%xmm14,%xmm14 + vpxor 64-128(%rax),%xmm1,%xmm1 + vpsrld $27,%xmm10,%xmm9 + vpxor %xmm12,%xmm6,%xmm6 + vpxor %xmm3,%xmm1,%xmm1 + + vpslld $30,%xmm11,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm14,%xmm14 + vpsrld $31,%xmm1,%xmm5 + vpaddd %xmm1,%xmm1,%xmm1 + + vpsrld $2,%xmm11,%xmm11 + vpaddd %xmm8,%xmm14,%xmm14 + vpor %xmm5,%xmm1,%xmm1 + vpor %xmm7,%xmm11,%xmm11 + vpxor %xmm4,%xmm2,%xmm2 + vmovdqa 240-128(%rax),%xmm4 + + vpslld $5,%xmm14,%xmm8 + vpaddd %xmm15,%xmm13,%xmm13 + vpxor %xmm10,%xmm12,%xmm6 + vpaddd %xmm1,%xmm13,%xmm13 + vpxor 80-128(%rax),%xmm2,%xmm2 + vpsrld $27,%xmm14,%xmm9 + vpxor %xmm11,%xmm6,%xmm6 + vpxor %xmm4,%xmm2,%xmm2 + + vpslld $30,%xmm10,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm13,%xmm13 + vpsrld $31,%xmm2,%xmm5 + vpaddd %xmm2,%xmm2,%xmm2 + + vpsrld $2,%xmm10,%xmm10 + vpaddd %xmm8,%xmm13,%xmm13 + vpor %xmm5,%xmm2,%xmm2 + vpor %xmm7,%xmm10,%xmm10 + vpxor %xmm0,%xmm3,%xmm3 + vmovdqa 0-128(%rax),%xmm0 + + vpslld $5,%xmm13,%xmm8 + vpaddd %xmm15,%xmm12,%xmm12 + vpxor %xmm14,%xmm11,%xmm6 + vpaddd %xmm2,%xmm12,%xmm12 + vpxor 96-128(%rax),%xmm3,%xmm3 + vpsrld $27,%xmm13,%xmm9 + vpxor %xmm10,%xmm6,%xmm6 + vpxor %xmm0,%xmm3,%xmm3 + + vpslld $30,%xmm14,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm12,%xmm12 + vpsrld $31,%xmm3,%xmm5 + vpaddd %xmm3,%xmm3,%xmm3 + + vpsrld $2,%xmm14,%xmm14 + vpaddd %xmm8,%xmm12,%xmm12 + vpor %xmm5,%xmm3,%xmm3 + vpor %xmm7,%xmm14,%xmm14 + vpxor %xmm1,%xmm4,%xmm4 + vmovdqa 16-128(%rax),%xmm1 + + vpslld $5,%xmm12,%xmm8 + vpaddd %xmm15,%xmm11,%xmm11 + vpxor %xmm13,%xmm10,%xmm6 + vpaddd %xmm3,%xmm11,%xmm11 + vpxor 112-128(%rax),%xmm4,%xmm4 + vpsrld $27,%xmm12,%xmm9 + vpxor %xmm14,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm4 + + vpslld $30,%xmm13,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm11,%xmm11 + vpsrld $31,%xmm4,%xmm5 + vpaddd %xmm4,%xmm4,%xmm4 + + vpsrld $2,%xmm13,%xmm13 + vpaddd %xmm8,%xmm11,%xmm11 + vpor %xmm5,%xmm4,%xmm4 + vpor %xmm7,%xmm13,%xmm13 + vpslld $5,%xmm11,%xmm8 + vpaddd %xmm15,%xmm10,%xmm10 + vpxor %xmm12,%xmm14,%xmm6 + + vpsrld $27,%xmm11,%xmm9 + vpaddd %xmm4,%xmm10,%xmm10 + vpxor %xmm13,%xmm6,%xmm6 + + vpslld $30,%xmm12,%xmm7 + vpor %xmm9,%xmm8,%xmm8 + vpaddd %xmm6,%xmm10,%xmm10 + + vpsrld $2,%xmm12,%xmm12 + vpaddd %xmm8,%xmm10,%xmm10 + vpor %xmm7,%xmm12,%xmm12 + movl $1,%ecx + cmpl 0(%rbx),%ecx + cmovgeq %rbp,%r8 + cmpl 4(%rbx),%ecx + cmovgeq %rbp,%r9 + cmpl 8(%rbx),%ecx + cmovgeq %rbp,%r10 + cmpl 12(%rbx),%ecx + cmovgeq %rbp,%r11 + vmovdqu (%rbx),%xmm6 + vpxor %xmm8,%xmm8,%xmm8 + vmovdqa %xmm6,%xmm7 + vpcmpgtd %xmm8,%xmm7,%xmm7 + vpaddd %xmm7,%xmm6,%xmm6 + + vpand %xmm7,%xmm10,%xmm10 + vpand %xmm7,%xmm11,%xmm11 + vpaddd 0(%rdi),%xmm10,%xmm10 + vpand %xmm7,%xmm12,%xmm12 + vpaddd 32(%rdi),%xmm11,%xmm11 + vpand %xmm7,%xmm13,%xmm13 + vpaddd 64(%rdi),%xmm12,%xmm12 + vpand %xmm7,%xmm14,%xmm14 + vpaddd 96(%rdi),%xmm13,%xmm13 + vpaddd 128(%rdi),%xmm14,%xmm14 + vmovdqu %xmm10,0(%rdi) + vmovdqu %xmm11,32(%rdi) + vmovdqu %xmm12,64(%rdi) + vmovdqu %xmm13,96(%rdi) + vmovdqu %xmm14,128(%rdi) + + vmovdqu %xmm6,(%rbx) + vmovdqu 96(%rbp),%xmm5 + decl %edx + jnz L$oop_avx + + movl 280(%rsp),%edx + leaq 16(%rdi),%rdi + leaq 64(%rsi),%rsi + decl %edx + jnz L$oop_grande_avx + +L$done_avx: + movq 272(%rsp),%rax + + vzeroupper + movq -16(%rax),%rbp + + movq -8(%rax),%rbx + + leaq (%rax),%rsp + +L$epilogue_avx: + .byte 0xf3,0xc3 + + + +.p2align 5 +sha1_multi_block_avx2: + +_avx2_shortcut: + movq %rsp,%rax + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + subq $576,%rsp + andq $-256,%rsp + movq %rax,544(%rsp) + +L$body_avx2: + leaq K_XX_XX(%rip),%rbp + shrl $1,%edx + + vzeroupper +L$oop_grande_avx2: + movl %edx,552(%rsp) + xorl %edx,%edx + leaq 512(%rsp),%rbx + movq 0(%rsi),%r12 + movl 8(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,0(%rbx) + cmovleq %rbp,%r12 + movq 16(%rsi),%r13 + movl 24(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,4(%rbx) + cmovleq %rbp,%r13 + movq 32(%rsi),%r14 + movl 40(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,8(%rbx) + cmovleq %rbp,%r14 + movq 48(%rsi),%r15 + movl 56(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,12(%rbx) + cmovleq %rbp,%r15 + movq 64(%rsi),%r8 + movl 72(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,16(%rbx) + cmovleq %rbp,%r8 + movq 80(%rsi),%r9 + movl 88(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,20(%rbx) + cmovleq %rbp,%r9 + movq 96(%rsi),%r10 + movl 104(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,24(%rbx) + cmovleq %rbp,%r10 + movq 112(%rsi),%r11 + movl 120(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,28(%rbx) + cmovleq %rbp,%r11 + vmovdqu 0(%rdi),%ymm0 + leaq 128(%rsp),%rax + vmovdqu 32(%rdi),%ymm1 + leaq 256+128(%rsp),%rbx + vmovdqu 64(%rdi),%ymm2 + vmovdqu 96(%rdi),%ymm3 + vmovdqu 128(%rdi),%ymm4 + vmovdqu 96(%rbp),%ymm9 + jmp L$oop_avx2 + +.p2align 5 +L$oop_avx2: + vmovdqa -32(%rbp),%ymm15 + vmovd (%r12),%xmm10 + leaq 64(%r12),%r12 + vmovd (%r8),%xmm12 + leaq 64(%r8),%r8 + vmovd (%r13),%xmm7 + leaq 64(%r13),%r13 + vmovd (%r9),%xmm6 + leaq 64(%r9),%r9 + vpinsrd $1,(%r14),%xmm10,%xmm10 + leaq 64(%r14),%r14 + vpinsrd $1,(%r10),%xmm12,%xmm12 + leaq 64(%r10),%r10 + vpinsrd $1,(%r15),%xmm7,%xmm7 + leaq 64(%r15),%r15 + vpunpckldq %ymm7,%ymm10,%ymm10 + vpinsrd $1,(%r11),%xmm6,%xmm6 + leaq 64(%r11),%r11 + vpunpckldq %ymm6,%ymm12,%ymm12 + vmovd -60(%r12),%xmm11 + vinserti128 $1,%xmm12,%ymm10,%ymm10 + vmovd -60(%r8),%xmm8 + vpshufb %ymm9,%ymm10,%ymm10 + vmovd -60(%r13),%xmm7 + vmovd -60(%r9),%xmm6 + vpinsrd $1,-60(%r14),%xmm11,%xmm11 + vpinsrd $1,-60(%r10),%xmm8,%xmm8 + vpinsrd $1,-60(%r15),%xmm7,%xmm7 + vpunpckldq %ymm7,%ymm11,%ymm11 + vpinsrd $1,-60(%r11),%xmm6,%xmm6 + vpunpckldq %ymm6,%ymm8,%ymm8 + vpaddd %ymm15,%ymm4,%ymm4 + vpslld $5,%ymm0,%ymm7 + vpandn %ymm3,%ymm1,%ymm6 + vpand %ymm2,%ymm1,%ymm5 + + vmovdqa %ymm10,0-128(%rax) + vpaddd %ymm10,%ymm4,%ymm4 + vinserti128 $1,%xmm8,%ymm11,%ymm11 + vpsrld $27,%ymm0,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vmovd -56(%r12),%xmm12 + + vpslld $30,%ymm1,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vmovd -56(%r8),%xmm8 + vpaddd %ymm5,%ymm4,%ymm4 + + vpsrld $2,%ymm1,%ymm1 + vpaddd %ymm7,%ymm4,%ymm4 + vpshufb %ymm9,%ymm11,%ymm11 + vpor %ymm6,%ymm1,%ymm1 + vmovd -56(%r13),%xmm7 + vmovd -56(%r9),%xmm6 + vpinsrd $1,-56(%r14),%xmm12,%xmm12 + vpinsrd $1,-56(%r10),%xmm8,%xmm8 + vpinsrd $1,-56(%r15),%xmm7,%xmm7 + vpunpckldq %ymm7,%ymm12,%ymm12 + vpinsrd $1,-56(%r11),%xmm6,%xmm6 + vpunpckldq %ymm6,%ymm8,%ymm8 + vpaddd %ymm15,%ymm3,%ymm3 + vpslld $5,%ymm4,%ymm7 + vpandn %ymm2,%ymm0,%ymm6 + vpand %ymm1,%ymm0,%ymm5 + + vmovdqa %ymm11,32-128(%rax) + vpaddd %ymm11,%ymm3,%ymm3 + vinserti128 $1,%xmm8,%ymm12,%ymm12 + vpsrld $27,%ymm4,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vmovd -52(%r12),%xmm13 + + vpslld $30,%ymm0,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vmovd -52(%r8),%xmm8 + vpaddd %ymm5,%ymm3,%ymm3 + + vpsrld $2,%ymm0,%ymm0 + vpaddd %ymm7,%ymm3,%ymm3 + vpshufb %ymm9,%ymm12,%ymm12 + vpor %ymm6,%ymm0,%ymm0 + vmovd -52(%r13),%xmm7 + vmovd -52(%r9),%xmm6 + vpinsrd $1,-52(%r14),%xmm13,%xmm13 + vpinsrd $1,-52(%r10),%xmm8,%xmm8 + vpinsrd $1,-52(%r15),%xmm7,%xmm7 + vpunpckldq %ymm7,%ymm13,%ymm13 + vpinsrd $1,-52(%r11),%xmm6,%xmm6 + vpunpckldq %ymm6,%ymm8,%ymm8 + vpaddd %ymm15,%ymm2,%ymm2 + vpslld $5,%ymm3,%ymm7 + vpandn %ymm1,%ymm4,%ymm6 + vpand %ymm0,%ymm4,%ymm5 + + vmovdqa %ymm12,64-128(%rax) + vpaddd %ymm12,%ymm2,%ymm2 + vinserti128 $1,%xmm8,%ymm13,%ymm13 + vpsrld $27,%ymm3,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vmovd -48(%r12),%xmm14 + + vpslld $30,%ymm4,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vmovd -48(%r8),%xmm8 + vpaddd %ymm5,%ymm2,%ymm2 + + vpsrld $2,%ymm4,%ymm4 + vpaddd %ymm7,%ymm2,%ymm2 + vpshufb %ymm9,%ymm13,%ymm13 + vpor %ymm6,%ymm4,%ymm4 + vmovd -48(%r13),%xmm7 + vmovd -48(%r9),%xmm6 + vpinsrd $1,-48(%r14),%xmm14,%xmm14 + vpinsrd $1,-48(%r10),%xmm8,%xmm8 + vpinsrd $1,-48(%r15),%xmm7,%xmm7 + vpunpckldq %ymm7,%ymm14,%ymm14 + vpinsrd $1,-48(%r11),%xmm6,%xmm6 + vpunpckldq %ymm6,%ymm8,%ymm8 + vpaddd %ymm15,%ymm1,%ymm1 + vpslld $5,%ymm2,%ymm7 + vpandn %ymm0,%ymm3,%ymm6 + vpand %ymm4,%ymm3,%ymm5 + + vmovdqa %ymm13,96-128(%rax) + vpaddd %ymm13,%ymm1,%ymm1 + vinserti128 $1,%xmm8,%ymm14,%ymm14 + vpsrld $27,%ymm2,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vmovd -44(%r12),%xmm10 + + vpslld $30,%ymm3,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vmovd -44(%r8),%xmm8 + vpaddd %ymm5,%ymm1,%ymm1 + + vpsrld $2,%ymm3,%ymm3 + vpaddd %ymm7,%ymm1,%ymm1 + vpshufb %ymm9,%ymm14,%ymm14 + vpor %ymm6,%ymm3,%ymm3 + vmovd -44(%r13),%xmm7 + vmovd -44(%r9),%xmm6 + vpinsrd $1,-44(%r14),%xmm10,%xmm10 + vpinsrd $1,-44(%r10),%xmm8,%xmm8 + vpinsrd $1,-44(%r15),%xmm7,%xmm7 + vpunpckldq %ymm7,%ymm10,%ymm10 + vpinsrd $1,-44(%r11),%xmm6,%xmm6 + vpunpckldq %ymm6,%ymm8,%ymm8 + vpaddd %ymm15,%ymm0,%ymm0 + vpslld $5,%ymm1,%ymm7 + vpandn %ymm4,%ymm2,%ymm6 + vpand %ymm3,%ymm2,%ymm5 + + vmovdqa %ymm14,128-128(%rax) + vpaddd %ymm14,%ymm0,%ymm0 + vinserti128 $1,%xmm8,%ymm10,%ymm10 + vpsrld $27,%ymm1,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vmovd -40(%r12),%xmm11 + + vpslld $30,%ymm2,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vmovd -40(%r8),%xmm8 + vpaddd %ymm5,%ymm0,%ymm0 + + vpsrld $2,%ymm2,%ymm2 + vpaddd %ymm7,%ymm0,%ymm0 + vpshufb %ymm9,%ymm10,%ymm10 + vpor %ymm6,%ymm2,%ymm2 + vmovd -40(%r13),%xmm7 + vmovd -40(%r9),%xmm6 + vpinsrd $1,-40(%r14),%xmm11,%xmm11 + vpinsrd $1,-40(%r10),%xmm8,%xmm8 + vpinsrd $1,-40(%r15),%xmm7,%xmm7 + vpunpckldq %ymm7,%ymm11,%ymm11 + vpinsrd $1,-40(%r11),%xmm6,%xmm6 + vpunpckldq %ymm6,%ymm8,%ymm8 + vpaddd %ymm15,%ymm4,%ymm4 + vpslld $5,%ymm0,%ymm7 + vpandn %ymm3,%ymm1,%ymm6 + vpand %ymm2,%ymm1,%ymm5 + + vmovdqa %ymm10,160-128(%rax) + vpaddd %ymm10,%ymm4,%ymm4 + vinserti128 $1,%xmm8,%ymm11,%ymm11 + vpsrld $27,%ymm0,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vmovd -36(%r12),%xmm12 + + vpslld $30,%ymm1,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vmovd -36(%r8),%xmm8 + vpaddd %ymm5,%ymm4,%ymm4 + + vpsrld $2,%ymm1,%ymm1 + vpaddd %ymm7,%ymm4,%ymm4 + vpshufb %ymm9,%ymm11,%ymm11 + vpor %ymm6,%ymm1,%ymm1 + vmovd -36(%r13),%xmm7 + vmovd -36(%r9),%xmm6 + vpinsrd $1,-36(%r14),%xmm12,%xmm12 + vpinsrd $1,-36(%r10),%xmm8,%xmm8 + vpinsrd $1,-36(%r15),%xmm7,%xmm7 + vpunpckldq %ymm7,%ymm12,%ymm12 + vpinsrd $1,-36(%r11),%xmm6,%xmm6 + vpunpckldq %ymm6,%ymm8,%ymm8 + vpaddd %ymm15,%ymm3,%ymm3 + vpslld $5,%ymm4,%ymm7 + vpandn %ymm2,%ymm0,%ymm6 + vpand %ymm1,%ymm0,%ymm5 + + vmovdqa %ymm11,192-128(%rax) + vpaddd %ymm11,%ymm3,%ymm3 + vinserti128 $1,%xmm8,%ymm12,%ymm12 + vpsrld $27,%ymm4,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vmovd -32(%r12),%xmm13 + + vpslld $30,%ymm0,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vmovd -32(%r8),%xmm8 + vpaddd %ymm5,%ymm3,%ymm3 + + vpsrld $2,%ymm0,%ymm0 + vpaddd %ymm7,%ymm3,%ymm3 + vpshufb %ymm9,%ymm12,%ymm12 + vpor %ymm6,%ymm0,%ymm0 + vmovd -32(%r13),%xmm7 + vmovd -32(%r9),%xmm6 + vpinsrd $1,-32(%r14),%xmm13,%xmm13 + vpinsrd $1,-32(%r10),%xmm8,%xmm8 + vpinsrd $1,-32(%r15),%xmm7,%xmm7 + vpunpckldq %ymm7,%ymm13,%ymm13 + vpinsrd $1,-32(%r11),%xmm6,%xmm6 + vpunpckldq %ymm6,%ymm8,%ymm8 + vpaddd %ymm15,%ymm2,%ymm2 + vpslld $5,%ymm3,%ymm7 + vpandn %ymm1,%ymm4,%ymm6 + vpand %ymm0,%ymm4,%ymm5 + + vmovdqa %ymm12,224-128(%rax) + vpaddd %ymm12,%ymm2,%ymm2 + vinserti128 $1,%xmm8,%ymm13,%ymm13 + vpsrld $27,%ymm3,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vmovd -28(%r12),%xmm14 + + vpslld $30,%ymm4,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vmovd -28(%r8),%xmm8 + vpaddd %ymm5,%ymm2,%ymm2 + + vpsrld $2,%ymm4,%ymm4 + vpaddd %ymm7,%ymm2,%ymm2 + vpshufb %ymm9,%ymm13,%ymm13 + vpor %ymm6,%ymm4,%ymm4 + vmovd -28(%r13),%xmm7 + vmovd -28(%r9),%xmm6 + vpinsrd $1,-28(%r14),%xmm14,%xmm14 + vpinsrd $1,-28(%r10),%xmm8,%xmm8 + vpinsrd $1,-28(%r15),%xmm7,%xmm7 + vpunpckldq %ymm7,%ymm14,%ymm14 + vpinsrd $1,-28(%r11),%xmm6,%xmm6 + vpunpckldq %ymm6,%ymm8,%ymm8 + vpaddd %ymm15,%ymm1,%ymm1 + vpslld $5,%ymm2,%ymm7 + vpandn %ymm0,%ymm3,%ymm6 + vpand %ymm4,%ymm3,%ymm5 + + vmovdqa %ymm13,256-256-128(%rbx) + vpaddd %ymm13,%ymm1,%ymm1 + vinserti128 $1,%xmm8,%ymm14,%ymm14 + vpsrld $27,%ymm2,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vmovd -24(%r12),%xmm10 + + vpslld $30,%ymm3,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vmovd -24(%r8),%xmm8 + vpaddd %ymm5,%ymm1,%ymm1 + + vpsrld $2,%ymm3,%ymm3 + vpaddd %ymm7,%ymm1,%ymm1 + vpshufb %ymm9,%ymm14,%ymm14 + vpor %ymm6,%ymm3,%ymm3 + vmovd -24(%r13),%xmm7 + vmovd -24(%r9),%xmm6 + vpinsrd $1,-24(%r14),%xmm10,%xmm10 + vpinsrd $1,-24(%r10),%xmm8,%xmm8 + vpinsrd $1,-24(%r15),%xmm7,%xmm7 + vpunpckldq %ymm7,%ymm10,%ymm10 + vpinsrd $1,-24(%r11),%xmm6,%xmm6 + vpunpckldq %ymm6,%ymm8,%ymm8 + vpaddd %ymm15,%ymm0,%ymm0 + vpslld $5,%ymm1,%ymm7 + vpandn %ymm4,%ymm2,%ymm6 + vpand %ymm3,%ymm2,%ymm5 + + vmovdqa %ymm14,288-256-128(%rbx) + vpaddd %ymm14,%ymm0,%ymm0 + vinserti128 $1,%xmm8,%ymm10,%ymm10 + vpsrld $27,%ymm1,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vmovd -20(%r12),%xmm11 + + vpslld $30,%ymm2,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vmovd -20(%r8),%xmm8 + vpaddd %ymm5,%ymm0,%ymm0 + + vpsrld $2,%ymm2,%ymm2 + vpaddd %ymm7,%ymm0,%ymm0 + vpshufb %ymm9,%ymm10,%ymm10 + vpor %ymm6,%ymm2,%ymm2 + vmovd -20(%r13),%xmm7 + vmovd -20(%r9),%xmm6 + vpinsrd $1,-20(%r14),%xmm11,%xmm11 + vpinsrd $1,-20(%r10),%xmm8,%xmm8 + vpinsrd $1,-20(%r15),%xmm7,%xmm7 + vpunpckldq %ymm7,%ymm11,%ymm11 + vpinsrd $1,-20(%r11),%xmm6,%xmm6 + vpunpckldq %ymm6,%ymm8,%ymm8 + vpaddd %ymm15,%ymm4,%ymm4 + vpslld $5,%ymm0,%ymm7 + vpandn %ymm3,%ymm1,%ymm6 + vpand %ymm2,%ymm1,%ymm5 + + vmovdqa %ymm10,320-256-128(%rbx) + vpaddd %ymm10,%ymm4,%ymm4 + vinserti128 $1,%xmm8,%ymm11,%ymm11 + vpsrld $27,%ymm0,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vmovd -16(%r12),%xmm12 + + vpslld $30,%ymm1,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vmovd -16(%r8),%xmm8 + vpaddd %ymm5,%ymm4,%ymm4 + + vpsrld $2,%ymm1,%ymm1 + vpaddd %ymm7,%ymm4,%ymm4 + vpshufb %ymm9,%ymm11,%ymm11 + vpor %ymm6,%ymm1,%ymm1 + vmovd -16(%r13),%xmm7 + vmovd -16(%r9),%xmm6 + vpinsrd $1,-16(%r14),%xmm12,%xmm12 + vpinsrd $1,-16(%r10),%xmm8,%xmm8 + vpinsrd $1,-16(%r15),%xmm7,%xmm7 + vpunpckldq %ymm7,%ymm12,%ymm12 + vpinsrd $1,-16(%r11),%xmm6,%xmm6 + vpunpckldq %ymm6,%ymm8,%ymm8 + vpaddd %ymm15,%ymm3,%ymm3 + vpslld $5,%ymm4,%ymm7 + vpandn %ymm2,%ymm0,%ymm6 + vpand %ymm1,%ymm0,%ymm5 + + vmovdqa %ymm11,352-256-128(%rbx) + vpaddd %ymm11,%ymm3,%ymm3 + vinserti128 $1,%xmm8,%ymm12,%ymm12 + vpsrld $27,%ymm4,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vmovd -12(%r12),%xmm13 + + vpslld $30,%ymm0,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vmovd -12(%r8),%xmm8 + vpaddd %ymm5,%ymm3,%ymm3 + + vpsrld $2,%ymm0,%ymm0 + vpaddd %ymm7,%ymm3,%ymm3 + vpshufb %ymm9,%ymm12,%ymm12 + vpor %ymm6,%ymm0,%ymm0 + vmovd -12(%r13),%xmm7 + vmovd -12(%r9),%xmm6 + vpinsrd $1,-12(%r14),%xmm13,%xmm13 + vpinsrd $1,-12(%r10),%xmm8,%xmm8 + vpinsrd $1,-12(%r15),%xmm7,%xmm7 + vpunpckldq %ymm7,%ymm13,%ymm13 + vpinsrd $1,-12(%r11),%xmm6,%xmm6 + vpunpckldq %ymm6,%ymm8,%ymm8 + vpaddd %ymm15,%ymm2,%ymm2 + vpslld $5,%ymm3,%ymm7 + vpandn %ymm1,%ymm4,%ymm6 + vpand %ymm0,%ymm4,%ymm5 + + vmovdqa %ymm12,384-256-128(%rbx) + vpaddd %ymm12,%ymm2,%ymm2 + vinserti128 $1,%xmm8,%ymm13,%ymm13 + vpsrld $27,%ymm3,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vmovd -8(%r12),%xmm14 + + vpslld $30,%ymm4,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vmovd -8(%r8),%xmm8 + vpaddd %ymm5,%ymm2,%ymm2 + + vpsrld $2,%ymm4,%ymm4 + vpaddd %ymm7,%ymm2,%ymm2 + vpshufb %ymm9,%ymm13,%ymm13 + vpor %ymm6,%ymm4,%ymm4 + vmovd -8(%r13),%xmm7 + vmovd -8(%r9),%xmm6 + vpinsrd $1,-8(%r14),%xmm14,%xmm14 + vpinsrd $1,-8(%r10),%xmm8,%xmm8 + vpinsrd $1,-8(%r15),%xmm7,%xmm7 + vpunpckldq %ymm7,%ymm14,%ymm14 + vpinsrd $1,-8(%r11),%xmm6,%xmm6 + vpunpckldq %ymm6,%ymm8,%ymm8 + vpaddd %ymm15,%ymm1,%ymm1 + vpslld $5,%ymm2,%ymm7 + vpandn %ymm0,%ymm3,%ymm6 + vpand %ymm4,%ymm3,%ymm5 + + vmovdqa %ymm13,416-256-128(%rbx) + vpaddd %ymm13,%ymm1,%ymm1 + vinserti128 $1,%xmm8,%ymm14,%ymm14 + vpsrld $27,%ymm2,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vmovd -4(%r12),%xmm10 + + vpslld $30,%ymm3,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vmovd -4(%r8),%xmm8 + vpaddd %ymm5,%ymm1,%ymm1 + + vpsrld $2,%ymm3,%ymm3 + vpaddd %ymm7,%ymm1,%ymm1 + vpshufb %ymm9,%ymm14,%ymm14 + vpor %ymm6,%ymm3,%ymm3 + vmovdqa 0-128(%rax),%ymm11 + vmovd -4(%r13),%xmm7 + vmovd -4(%r9),%xmm6 + vpinsrd $1,-4(%r14),%xmm10,%xmm10 + vpinsrd $1,-4(%r10),%xmm8,%xmm8 + vpinsrd $1,-4(%r15),%xmm7,%xmm7 + vpunpckldq %ymm7,%ymm10,%ymm10 + vpinsrd $1,-4(%r11),%xmm6,%xmm6 + vpunpckldq %ymm6,%ymm8,%ymm8 + vpaddd %ymm15,%ymm0,%ymm0 + prefetcht0 63(%r12) + vpslld $5,%ymm1,%ymm7 + vpandn %ymm4,%ymm2,%ymm6 + vpand %ymm3,%ymm2,%ymm5 + + vmovdqa %ymm14,448-256-128(%rbx) + vpaddd %ymm14,%ymm0,%ymm0 + vinserti128 $1,%xmm8,%ymm10,%ymm10 + vpsrld $27,%ymm1,%ymm8 + prefetcht0 63(%r13) + vpxor %ymm6,%ymm5,%ymm5 + + vpslld $30,%ymm2,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + prefetcht0 63(%r14) + vpaddd %ymm5,%ymm0,%ymm0 + + vpsrld $2,%ymm2,%ymm2 + vpaddd %ymm7,%ymm0,%ymm0 + prefetcht0 63(%r15) + vpshufb %ymm9,%ymm10,%ymm10 + vpor %ymm6,%ymm2,%ymm2 + vmovdqa 32-128(%rax),%ymm12 + vpxor %ymm13,%ymm11,%ymm11 + vmovdqa 64-128(%rax),%ymm13 + + vpaddd %ymm15,%ymm4,%ymm4 + vpslld $5,%ymm0,%ymm7 + vpandn %ymm3,%ymm1,%ymm6 + prefetcht0 63(%r8) + vpand %ymm2,%ymm1,%ymm5 + + vmovdqa %ymm10,480-256-128(%rbx) + vpaddd %ymm10,%ymm4,%ymm4 + vpxor 256-256-128(%rbx),%ymm11,%ymm11 + vpsrld $27,%ymm0,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vpxor %ymm13,%ymm11,%ymm11 + prefetcht0 63(%r9) + + vpslld $30,%ymm1,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm4,%ymm4 + prefetcht0 63(%r10) + vpsrld $31,%ymm11,%ymm9 + vpaddd %ymm11,%ymm11,%ymm11 + + vpsrld $2,%ymm1,%ymm1 + prefetcht0 63(%r11) + vpaddd %ymm7,%ymm4,%ymm4 + vpor %ymm9,%ymm11,%ymm11 + vpor %ymm6,%ymm1,%ymm1 + vpxor %ymm14,%ymm12,%ymm12 + vmovdqa 96-128(%rax),%ymm14 + + vpaddd %ymm15,%ymm3,%ymm3 + vpslld $5,%ymm4,%ymm7 + vpandn %ymm2,%ymm0,%ymm6 + + vpand %ymm1,%ymm0,%ymm5 + + vmovdqa %ymm11,0-128(%rax) + vpaddd %ymm11,%ymm3,%ymm3 + vpxor 288-256-128(%rbx),%ymm12,%ymm12 + vpsrld $27,%ymm4,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vpxor %ymm14,%ymm12,%ymm12 + + + vpslld $30,%ymm0,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm3,%ymm3 + + vpsrld $31,%ymm12,%ymm9 + vpaddd %ymm12,%ymm12,%ymm12 + + vpsrld $2,%ymm0,%ymm0 + + vpaddd %ymm7,%ymm3,%ymm3 + vpor %ymm9,%ymm12,%ymm12 + vpor %ymm6,%ymm0,%ymm0 + vpxor %ymm10,%ymm13,%ymm13 + vmovdqa 128-128(%rax),%ymm10 + + vpaddd %ymm15,%ymm2,%ymm2 + vpslld $5,%ymm3,%ymm7 + vpandn %ymm1,%ymm4,%ymm6 + + vpand %ymm0,%ymm4,%ymm5 + + vmovdqa %ymm12,32-128(%rax) + vpaddd %ymm12,%ymm2,%ymm2 + vpxor 320-256-128(%rbx),%ymm13,%ymm13 + vpsrld $27,%ymm3,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vpxor %ymm10,%ymm13,%ymm13 + + + vpslld $30,%ymm4,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm2,%ymm2 + + vpsrld $31,%ymm13,%ymm9 + vpaddd %ymm13,%ymm13,%ymm13 + + vpsrld $2,%ymm4,%ymm4 + + vpaddd %ymm7,%ymm2,%ymm2 + vpor %ymm9,%ymm13,%ymm13 + vpor %ymm6,%ymm4,%ymm4 + vpxor %ymm11,%ymm14,%ymm14 + vmovdqa 160-128(%rax),%ymm11 + + vpaddd %ymm15,%ymm1,%ymm1 + vpslld $5,%ymm2,%ymm7 + vpandn %ymm0,%ymm3,%ymm6 + + vpand %ymm4,%ymm3,%ymm5 + + vmovdqa %ymm13,64-128(%rax) + vpaddd %ymm13,%ymm1,%ymm1 + vpxor 352-256-128(%rbx),%ymm14,%ymm14 + vpsrld $27,%ymm2,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vpxor %ymm11,%ymm14,%ymm14 + + + vpslld $30,%ymm3,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm1,%ymm1 + + vpsrld $31,%ymm14,%ymm9 + vpaddd %ymm14,%ymm14,%ymm14 + + vpsrld $2,%ymm3,%ymm3 + + vpaddd %ymm7,%ymm1,%ymm1 + vpor %ymm9,%ymm14,%ymm14 + vpor %ymm6,%ymm3,%ymm3 + vpxor %ymm12,%ymm10,%ymm10 + vmovdqa 192-128(%rax),%ymm12 + + vpaddd %ymm15,%ymm0,%ymm0 + vpslld $5,%ymm1,%ymm7 + vpandn %ymm4,%ymm2,%ymm6 + + vpand %ymm3,%ymm2,%ymm5 + + vmovdqa %ymm14,96-128(%rax) + vpaddd %ymm14,%ymm0,%ymm0 + vpxor 384-256-128(%rbx),%ymm10,%ymm10 + vpsrld $27,%ymm1,%ymm8 + vpxor %ymm6,%ymm5,%ymm5 + vpxor %ymm12,%ymm10,%ymm10 + + + vpslld $30,%ymm2,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm0,%ymm0 + + vpsrld $31,%ymm10,%ymm9 + vpaddd %ymm10,%ymm10,%ymm10 + + vpsrld $2,%ymm2,%ymm2 + + vpaddd %ymm7,%ymm0,%ymm0 + vpor %ymm9,%ymm10,%ymm10 + vpor %ymm6,%ymm2,%ymm2 + vmovdqa 0(%rbp),%ymm15 + vpxor %ymm13,%ymm11,%ymm11 + vmovdqa 224-128(%rax),%ymm13 + + vpslld $5,%ymm0,%ymm7 + vpaddd %ymm15,%ymm4,%ymm4 + vpxor %ymm1,%ymm3,%ymm5 + vmovdqa %ymm10,128-128(%rax) + vpaddd %ymm10,%ymm4,%ymm4 + vpxor 416-256-128(%rbx),%ymm11,%ymm11 + vpsrld $27,%ymm0,%ymm8 + vpxor %ymm2,%ymm5,%ymm5 + vpxor %ymm13,%ymm11,%ymm11 + + vpslld $30,%ymm1,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm4,%ymm4 + vpsrld $31,%ymm11,%ymm9 + vpaddd %ymm11,%ymm11,%ymm11 + + vpsrld $2,%ymm1,%ymm1 + vpaddd %ymm7,%ymm4,%ymm4 + vpor %ymm9,%ymm11,%ymm11 + vpor %ymm6,%ymm1,%ymm1 + vpxor %ymm14,%ymm12,%ymm12 + vmovdqa 256-256-128(%rbx),%ymm14 + + vpslld $5,%ymm4,%ymm7 + vpaddd %ymm15,%ymm3,%ymm3 + vpxor %ymm0,%ymm2,%ymm5 + vmovdqa %ymm11,160-128(%rax) + vpaddd %ymm11,%ymm3,%ymm3 + vpxor 448-256-128(%rbx),%ymm12,%ymm12 + vpsrld $27,%ymm4,%ymm8 + vpxor %ymm1,%ymm5,%ymm5 + vpxor %ymm14,%ymm12,%ymm12 + + vpslld $30,%ymm0,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm3,%ymm3 + vpsrld $31,%ymm12,%ymm9 + vpaddd %ymm12,%ymm12,%ymm12 + + vpsrld $2,%ymm0,%ymm0 + vpaddd %ymm7,%ymm3,%ymm3 + vpor %ymm9,%ymm12,%ymm12 + vpor %ymm6,%ymm0,%ymm0 + vpxor %ymm10,%ymm13,%ymm13 + vmovdqa 288-256-128(%rbx),%ymm10 + + vpslld $5,%ymm3,%ymm7 + vpaddd %ymm15,%ymm2,%ymm2 + vpxor %ymm4,%ymm1,%ymm5 + vmovdqa %ymm12,192-128(%rax) + vpaddd %ymm12,%ymm2,%ymm2 + vpxor 480-256-128(%rbx),%ymm13,%ymm13 + vpsrld $27,%ymm3,%ymm8 + vpxor %ymm0,%ymm5,%ymm5 + vpxor %ymm10,%ymm13,%ymm13 + + vpslld $30,%ymm4,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm2,%ymm2 + vpsrld $31,%ymm13,%ymm9 + vpaddd %ymm13,%ymm13,%ymm13 + + vpsrld $2,%ymm4,%ymm4 + vpaddd %ymm7,%ymm2,%ymm2 + vpor %ymm9,%ymm13,%ymm13 + vpor %ymm6,%ymm4,%ymm4 + vpxor %ymm11,%ymm14,%ymm14 + vmovdqa 320-256-128(%rbx),%ymm11 + + vpslld $5,%ymm2,%ymm7 + vpaddd %ymm15,%ymm1,%ymm1 + vpxor %ymm3,%ymm0,%ymm5 + vmovdqa %ymm13,224-128(%rax) + vpaddd %ymm13,%ymm1,%ymm1 + vpxor 0-128(%rax),%ymm14,%ymm14 + vpsrld $27,%ymm2,%ymm8 + vpxor %ymm4,%ymm5,%ymm5 + vpxor %ymm11,%ymm14,%ymm14 + + vpslld $30,%ymm3,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm1,%ymm1 + vpsrld $31,%ymm14,%ymm9 + vpaddd %ymm14,%ymm14,%ymm14 + + vpsrld $2,%ymm3,%ymm3 + vpaddd %ymm7,%ymm1,%ymm1 + vpor %ymm9,%ymm14,%ymm14 + vpor %ymm6,%ymm3,%ymm3 + vpxor %ymm12,%ymm10,%ymm10 + vmovdqa 352-256-128(%rbx),%ymm12 + + vpslld $5,%ymm1,%ymm7 + vpaddd %ymm15,%ymm0,%ymm0 + vpxor %ymm2,%ymm4,%ymm5 + vmovdqa %ymm14,256-256-128(%rbx) + vpaddd %ymm14,%ymm0,%ymm0 + vpxor 32-128(%rax),%ymm10,%ymm10 + vpsrld $27,%ymm1,%ymm8 + vpxor %ymm3,%ymm5,%ymm5 + vpxor %ymm12,%ymm10,%ymm10 + + vpslld $30,%ymm2,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm0,%ymm0 + vpsrld $31,%ymm10,%ymm9 + vpaddd %ymm10,%ymm10,%ymm10 + + vpsrld $2,%ymm2,%ymm2 + vpaddd %ymm7,%ymm0,%ymm0 + vpor %ymm9,%ymm10,%ymm10 + vpor %ymm6,%ymm2,%ymm2 + vpxor %ymm13,%ymm11,%ymm11 + vmovdqa 384-256-128(%rbx),%ymm13 + + vpslld $5,%ymm0,%ymm7 + vpaddd %ymm15,%ymm4,%ymm4 + vpxor %ymm1,%ymm3,%ymm5 + vmovdqa %ymm10,288-256-128(%rbx) + vpaddd %ymm10,%ymm4,%ymm4 + vpxor 64-128(%rax),%ymm11,%ymm11 + vpsrld $27,%ymm0,%ymm8 + vpxor %ymm2,%ymm5,%ymm5 + vpxor %ymm13,%ymm11,%ymm11 + + vpslld $30,%ymm1,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm4,%ymm4 + vpsrld $31,%ymm11,%ymm9 + vpaddd %ymm11,%ymm11,%ymm11 + + vpsrld $2,%ymm1,%ymm1 + vpaddd %ymm7,%ymm4,%ymm4 + vpor %ymm9,%ymm11,%ymm11 + vpor %ymm6,%ymm1,%ymm1 + vpxor %ymm14,%ymm12,%ymm12 + vmovdqa 416-256-128(%rbx),%ymm14 + + vpslld $5,%ymm4,%ymm7 + vpaddd %ymm15,%ymm3,%ymm3 + vpxor %ymm0,%ymm2,%ymm5 + vmovdqa %ymm11,320-256-128(%rbx) + vpaddd %ymm11,%ymm3,%ymm3 + vpxor 96-128(%rax),%ymm12,%ymm12 + vpsrld $27,%ymm4,%ymm8 + vpxor %ymm1,%ymm5,%ymm5 + vpxor %ymm14,%ymm12,%ymm12 + + vpslld $30,%ymm0,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm3,%ymm3 + vpsrld $31,%ymm12,%ymm9 + vpaddd %ymm12,%ymm12,%ymm12 + + vpsrld $2,%ymm0,%ymm0 + vpaddd %ymm7,%ymm3,%ymm3 + vpor %ymm9,%ymm12,%ymm12 + vpor %ymm6,%ymm0,%ymm0 + vpxor %ymm10,%ymm13,%ymm13 + vmovdqa 448-256-128(%rbx),%ymm10 + + vpslld $5,%ymm3,%ymm7 + vpaddd %ymm15,%ymm2,%ymm2 + vpxor %ymm4,%ymm1,%ymm5 + vmovdqa %ymm12,352-256-128(%rbx) + vpaddd %ymm12,%ymm2,%ymm2 + vpxor 128-128(%rax),%ymm13,%ymm13 + vpsrld $27,%ymm3,%ymm8 + vpxor %ymm0,%ymm5,%ymm5 + vpxor %ymm10,%ymm13,%ymm13 + + vpslld $30,%ymm4,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm2,%ymm2 + vpsrld $31,%ymm13,%ymm9 + vpaddd %ymm13,%ymm13,%ymm13 + + vpsrld $2,%ymm4,%ymm4 + vpaddd %ymm7,%ymm2,%ymm2 + vpor %ymm9,%ymm13,%ymm13 + vpor %ymm6,%ymm4,%ymm4 + vpxor %ymm11,%ymm14,%ymm14 + vmovdqa 480-256-128(%rbx),%ymm11 + + vpslld $5,%ymm2,%ymm7 + vpaddd %ymm15,%ymm1,%ymm1 + vpxor %ymm3,%ymm0,%ymm5 + vmovdqa %ymm13,384-256-128(%rbx) + vpaddd %ymm13,%ymm1,%ymm1 + vpxor 160-128(%rax),%ymm14,%ymm14 + vpsrld $27,%ymm2,%ymm8 + vpxor %ymm4,%ymm5,%ymm5 + vpxor %ymm11,%ymm14,%ymm14 + + vpslld $30,%ymm3,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm1,%ymm1 + vpsrld $31,%ymm14,%ymm9 + vpaddd %ymm14,%ymm14,%ymm14 + + vpsrld $2,%ymm3,%ymm3 + vpaddd %ymm7,%ymm1,%ymm1 + vpor %ymm9,%ymm14,%ymm14 + vpor %ymm6,%ymm3,%ymm3 + vpxor %ymm12,%ymm10,%ymm10 + vmovdqa 0-128(%rax),%ymm12 + + vpslld $5,%ymm1,%ymm7 + vpaddd %ymm15,%ymm0,%ymm0 + vpxor %ymm2,%ymm4,%ymm5 + vmovdqa %ymm14,416-256-128(%rbx) + vpaddd %ymm14,%ymm0,%ymm0 + vpxor 192-128(%rax),%ymm10,%ymm10 + vpsrld $27,%ymm1,%ymm8 + vpxor %ymm3,%ymm5,%ymm5 + vpxor %ymm12,%ymm10,%ymm10 + + vpslld $30,%ymm2,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm0,%ymm0 + vpsrld $31,%ymm10,%ymm9 + vpaddd %ymm10,%ymm10,%ymm10 + + vpsrld $2,%ymm2,%ymm2 + vpaddd %ymm7,%ymm0,%ymm0 + vpor %ymm9,%ymm10,%ymm10 + vpor %ymm6,%ymm2,%ymm2 + vpxor %ymm13,%ymm11,%ymm11 + vmovdqa 32-128(%rax),%ymm13 + + vpslld $5,%ymm0,%ymm7 + vpaddd %ymm15,%ymm4,%ymm4 + vpxor %ymm1,%ymm3,%ymm5 + vmovdqa %ymm10,448-256-128(%rbx) + vpaddd %ymm10,%ymm4,%ymm4 + vpxor 224-128(%rax),%ymm11,%ymm11 + vpsrld $27,%ymm0,%ymm8 + vpxor %ymm2,%ymm5,%ymm5 + vpxor %ymm13,%ymm11,%ymm11 + + vpslld $30,%ymm1,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm4,%ymm4 + vpsrld $31,%ymm11,%ymm9 + vpaddd %ymm11,%ymm11,%ymm11 + + vpsrld $2,%ymm1,%ymm1 + vpaddd %ymm7,%ymm4,%ymm4 + vpor %ymm9,%ymm11,%ymm11 + vpor %ymm6,%ymm1,%ymm1 + vpxor %ymm14,%ymm12,%ymm12 + vmovdqa 64-128(%rax),%ymm14 + + vpslld $5,%ymm4,%ymm7 + vpaddd %ymm15,%ymm3,%ymm3 + vpxor %ymm0,%ymm2,%ymm5 + vmovdqa %ymm11,480-256-128(%rbx) + vpaddd %ymm11,%ymm3,%ymm3 + vpxor 256-256-128(%rbx),%ymm12,%ymm12 + vpsrld $27,%ymm4,%ymm8 + vpxor %ymm1,%ymm5,%ymm5 + vpxor %ymm14,%ymm12,%ymm12 + + vpslld $30,%ymm0,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm3,%ymm3 + vpsrld $31,%ymm12,%ymm9 + vpaddd %ymm12,%ymm12,%ymm12 + + vpsrld $2,%ymm0,%ymm0 + vpaddd %ymm7,%ymm3,%ymm3 + vpor %ymm9,%ymm12,%ymm12 + vpor %ymm6,%ymm0,%ymm0 + vpxor %ymm10,%ymm13,%ymm13 + vmovdqa 96-128(%rax),%ymm10 + + vpslld $5,%ymm3,%ymm7 + vpaddd %ymm15,%ymm2,%ymm2 + vpxor %ymm4,%ymm1,%ymm5 + vmovdqa %ymm12,0-128(%rax) + vpaddd %ymm12,%ymm2,%ymm2 + vpxor 288-256-128(%rbx),%ymm13,%ymm13 + vpsrld $27,%ymm3,%ymm8 + vpxor %ymm0,%ymm5,%ymm5 + vpxor %ymm10,%ymm13,%ymm13 + + vpslld $30,%ymm4,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm2,%ymm2 + vpsrld $31,%ymm13,%ymm9 + vpaddd %ymm13,%ymm13,%ymm13 + + vpsrld $2,%ymm4,%ymm4 + vpaddd %ymm7,%ymm2,%ymm2 + vpor %ymm9,%ymm13,%ymm13 + vpor %ymm6,%ymm4,%ymm4 + vpxor %ymm11,%ymm14,%ymm14 + vmovdqa 128-128(%rax),%ymm11 + + vpslld $5,%ymm2,%ymm7 + vpaddd %ymm15,%ymm1,%ymm1 + vpxor %ymm3,%ymm0,%ymm5 + vmovdqa %ymm13,32-128(%rax) + vpaddd %ymm13,%ymm1,%ymm1 + vpxor 320-256-128(%rbx),%ymm14,%ymm14 + vpsrld $27,%ymm2,%ymm8 + vpxor %ymm4,%ymm5,%ymm5 + vpxor %ymm11,%ymm14,%ymm14 + + vpslld $30,%ymm3,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm1,%ymm1 + vpsrld $31,%ymm14,%ymm9 + vpaddd %ymm14,%ymm14,%ymm14 + + vpsrld $2,%ymm3,%ymm3 + vpaddd %ymm7,%ymm1,%ymm1 + vpor %ymm9,%ymm14,%ymm14 + vpor %ymm6,%ymm3,%ymm3 + vpxor %ymm12,%ymm10,%ymm10 + vmovdqa 160-128(%rax),%ymm12 + + vpslld $5,%ymm1,%ymm7 + vpaddd %ymm15,%ymm0,%ymm0 + vpxor %ymm2,%ymm4,%ymm5 + vmovdqa %ymm14,64-128(%rax) + vpaddd %ymm14,%ymm0,%ymm0 + vpxor 352-256-128(%rbx),%ymm10,%ymm10 + vpsrld $27,%ymm1,%ymm8 + vpxor %ymm3,%ymm5,%ymm5 + vpxor %ymm12,%ymm10,%ymm10 + + vpslld $30,%ymm2,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm0,%ymm0 + vpsrld $31,%ymm10,%ymm9 + vpaddd %ymm10,%ymm10,%ymm10 + + vpsrld $2,%ymm2,%ymm2 + vpaddd %ymm7,%ymm0,%ymm0 + vpor %ymm9,%ymm10,%ymm10 + vpor %ymm6,%ymm2,%ymm2 + vpxor %ymm13,%ymm11,%ymm11 + vmovdqa 192-128(%rax),%ymm13 + + vpslld $5,%ymm0,%ymm7 + vpaddd %ymm15,%ymm4,%ymm4 + vpxor %ymm1,%ymm3,%ymm5 + vmovdqa %ymm10,96-128(%rax) + vpaddd %ymm10,%ymm4,%ymm4 + vpxor 384-256-128(%rbx),%ymm11,%ymm11 + vpsrld $27,%ymm0,%ymm8 + vpxor %ymm2,%ymm5,%ymm5 + vpxor %ymm13,%ymm11,%ymm11 + + vpslld $30,%ymm1,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm4,%ymm4 + vpsrld $31,%ymm11,%ymm9 + vpaddd %ymm11,%ymm11,%ymm11 + + vpsrld $2,%ymm1,%ymm1 + vpaddd %ymm7,%ymm4,%ymm4 + vpor %ymm9,%ymm11,%ymm11 + vpor %ymm6,%ymm1,%ymm1 + vpxor %ymm14,%ymm12,%ymm12 + vmovdqa 224-128(%rax),%ymm14 + + vpslld $5,%ymm4,%ymm7 + vpaddd %ymm15,%ymm3,%ymm3 + vpxor %ymm0,%ymm2,%ymm5 + vmovdqa %ymm11,128-128(%rax) + vpaddd %ymm11,%ymm3,%ymm3 + vpxor 416-256-128(%rbx),%ymm12,%ymm12 + vpsrld $27,%ymm4,%ymm8 + vpxor %ymm1,%ymm5,%ymm5 + vpxor %ymm14,%ymm12,%ymm12 + + vpslld $30,%ymm0,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm3,%ymm3 + vpsrld $31,%ymm12,%ymm9 + vpaddd %ymm12,%ymm12,%ymm12 + + vpsrld $2,%ymm0,%ymm0 + vpaddd %ymm7,%ymm3,%ymm3 + vpor %ymm9,%ymm12,%ymm12 + vpor %ymm6,%ymm0,%ymm0 + vpxor %ymm10,%ymm13,%ymm13 + vmovdqa 256-256-128(%rbx),%ymm10 + + vpslld $5,%ymm3,%ymm7 + vpaddd %ymm15,%ymm2,%ymm2 + vpxor %ymm4,%ymm1,%ymm5 + vmovdqa %ymm12,160-128(%rax) + vpaddd %ymm12,%ymm2,%ymm2 + vpxor 448-256-128(%rbx),%ymm13,%ymm13 + vpsrld $27,%ymm3,%ymm8 + vpxor %ymm0,%ymm5,%ymm5 + vpxor %ymm10,%ymm13,%ymm13 + + vpslld $30,%ymm4,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm2,%ymm2 + vpsrld $31,%ymm13,%ymm9 + vpaddd %ymm13,%ymm13,%ymm13 + + vpsrld $2,%ymm4,%ymm4 + vpaddd %ymm7,%ymm2,%ymm2 + vpor %ymm9,%ymm13,%ymm13 + vpor %ymm6,%ymm4,%ymm4 + vpxor %ymm11,%ymm14,%ymm14 + vmovdqa 288-256-128(%rbx),%ymm11 + + vpslld $5,%ymm2,%ymm7 + vpaddd %ymm15,%ymm1,%ymm1 + vpxor %ymm3,%ymm0,%ymm5 + vmovdqa %ymm13,192-128(%rax) + vpaddd %ymm13,%ymm1,%ymm1 + vpxor 480-256-128(%rbx),%ymm14,%ymm14 + vpsrld $27,%ymm2,%ymm8 + vpxor %ymm4,%ymm5,%ymm5 + vpxor %ymm11,%ymm14,%ymm14 + + vpslld $30,%ymm3,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm1,%ymm1 + vpsrld $31,%ymm14,%ymm9 + vpaddd %ymm14,%ymm14,%ymm14 + + vpsrld $2,%ymm3,%ymm3 + vpaddd %ymm7,%ymm1,%ymm1 + vpor %ymm9,%ymm14,%ymm14 + vpor %ymm6,%ymm3,%ymm3 + vpxor %ymm12,%ymm10,%ymm10 + vmovdqa 320-256-128(%rbx),%ymm12 + + vpslld $5,%ymm1,%ymm7 + vpaddd %ymm15,%ymm0,%ymm0 + vpxor %ymm2,%ymm4,%ymm5 + vmovdqa %ymm14,224-128(%rax) + vpaddd %ymm14,%ymm0,%ymm0 + vpxor 0-128(%rax),%ymm10,%ymm10 + vpsrld $27,%ymm1,%ymm8 + vpxor %ymm3,%ymm5,%ymm5 + vpxor %ymm12,%ymm10,%ymm10 + + vpslld $30,%ymm2,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm0,%ymm0 + vpsrld $31,%ymm10,%ymm9 + vpaddd %ymm10,%ymm10,%ymm10 + + vpsrld $2,%ymm2,%ymm2 + vpaddd %ymm7,%ymm0,%ymm0 + vpor %ymm9,%ymm10,%ymm10 + vpor %ymm6,%ymm2,%ymm2 + vmovdqa 32(%rbp),%ymm15 + vpxor %ymm13,%ymm11,%ymm11 + vmovdqa 352-256-128(%rbx),%ymm13 + + vpaddd %ymm15,%ymm4,%ymm4 + vpslld $5,%ymm0,%ymm7 + vpand %ymm2,%ymm3,%ymm6 + vpxor 32-128(%rax),%ymm11,%ymm11 + + vpaddd %ymm6,%ymm4,%ymm4 + vpsrld $27,%ymm0,%ymm8 + vpxor %ymm2,%ymm3,%ymm5 + vpxor %ymm13,%ymm11,%ymm11 + + vmovdqu %ymm10,256-256-128(%rbx) + vpaddd %ymm10,%ymm4,%ymm4 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm11,%ymm9 + vpand %ymm1,%ymm5,%ymm5 + vpaddd %ymm11,%ymm11,%ymm11 + + vpslld $30,%ymm1,%ymm6 + vpaddd %ymm5,%ymm4,%ymm4 + + vpsrld $2,%ymm1,%ymm1 + vpaddd %ymm7,%ymm4,%ymm4 + vpor %ymm9,%ymm11,%ymm11 + vpor %ymm6,%ymm1,%ymm1 + vpxor %ymm14,%ymm12,%ymm12 + vmovdqa 384-256-128(%rbx),%ymm14 + + vpaddd %ymm15,%ymm3,%ymm3 + vpslld $5,%ymm4,%ymm7 + vpand %ymm1,%ymm2,%ymm6 + vpxor 64-128(%rax),%ymm12,%ymm12 + + vpaddd %ymm6,%ymm3,%ymm3 + vpsrld $27,%ymm4,%ymm8 + vpxor %ymm1,%ymm2,%ymm5 + vpxor %ymm14,%ymm12,%ymm12 + + vmovdqu %ymm11,288-256-128(%rbx) + vpaddd %ymm11,%ymm3,%ymm3 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm12,%ymm9 + vpand %ymm0,%ymm5,%ymm5 + vpaddd %ymm12,%ymm12,%ymm12 + + vpslld $30,%ymm0,%ymm6 + vpaddd %ymm5,%ymm3,%ymm3 + + vpsrld $2,%ymm0,%ymm0 + vpaddd %ymm7,%ymm3,%ymm3 + vpor %ymm9,%ymm12,%ymm12 + vpor %ymm6,%ymm0,%ymm0 + vpxor %ymm10,%ymm13,%ymm13 + vmovdqa 416-256-128(%rbx),%ymm10 + + vpaddd %ymm15,%ymm2,%ymm2 + vpslld $5,%ymm3,%ymm7 + vpand %ymm0,%ymm1,%ymm6 + vpxor 96-128(%rax),%ymm13,%ymm13 + + vpaddd %ymm6,%ymm2,%ymm2 + vpsrld $27,%ymm3,%ymm8 + vpxor %ymm0,%ymm1,%ymm5 + vpxor %ymm10,%ymm13,%ymm13 + + vmovdqu %ymm12,320-256-128(%rbx) + vpaddd %ymm12,%ymm2,%ymm2 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm13,%ymm9 + vpand %ymm4,%ymm5,%ymm5 + vpaddd %ymm13,%ymm13,%ymm13 + + vpslld $30,%ymm4,%ymm6 + vpaddd %ymm5,%ymm2,%ymm2 + + vpsrld $2,%ymm4,%ymm4 + vpaddd %ymm7,%ymm2,%ymm2 + vpor %ymm9,%ymm13,%ymm13 + vpor %ymm6,%ymm4,%ymm4 + vpxor %ymm11,%ymm14,%ymm14 + vmovdqa 448-256-128(%rbx),%ymm11 + + vpaddd %ymm15,%ymm1,%ymm1 + vpslld $5,%ymm2,%ymm7 + vpand %ymm4,%ymm0,%ymm6 + vpxor 128-128(%rax),%ymm14,%ymm14 + + vpaddd %ymm6,%ymm1,%ymm1 + vpsrld $27,%ymm2,%ymm8 + vpxor %ymm4,%ymm0,%ymm5 + vpxor %ymm11,%ymm14,%ymm14 + + vmovdqu %ymm13,352-256-128(%rbx) + vpaddd %ymm13,%ymm1,%ymm1 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm14,%ymm9 + vpand %ymm3,%ymm5,%ymm5 + vpaddd %ymm14,%ymm14,%ymm14 + + vpslld $30,%ymm3,%ymm6 + vpaddd %ymm5,%ymm1,%ymm1 + + vpsrld $2,%ymm3,%ymm3 + vpaddd %ymm7,%ymm1,%ymm1 + vpor %ymm9,%ymm14,%ymm14 + vpor %ymm6,%ymm3,%ymm3 + vpxor %ymm12,%ymm10,%ymm10 + vmovdqa 480-256-128(%rbx),%ymm12 + + vpaddd %ymm15,%ymm0,%ymm0 + vpslld $5,%ymm1,%ymm7 + vpand %ymm3,%ymm4,%ymm6 + vpxor 160-128(%rax),%ymm10,%ymm10 + + vpaddd %ymm6,%ymm0,%ymm0 + vpsrld $27,%ymm1,%ymm8 + vpxor %ymm3,%ymm4,%ymm5 + vpxor %ymm12,%ymm10,%ymm10 + + vmovdqu %ymm14,384-256-128(%rbx) + vpaddd %ymm14,%ymm0,%ymm0 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm10,%ymm9 + vpand %ymm2,%ymm5,%ymm5 + vpaddd %ymm10,%ymm10,%ymm10 + + vpslld $30,%ymm2,%ymm6 + vpaddd %ymm5,%ymm0,%ymm0 + + vpsrld $2,%ymm2,%ymm2 + vpaddd %ymm7,%ymm0,%ymm0 + vpor %ymm9,%ymm10,%ymm10 + vpor %ymm6,%ymm2,%ymm2 + vpxor %ymm13,%ymm11,%ymm11 + vmovdqa 0-128(%rax),%ymm13 + + vpaddd %ymm15,%ymm4,%ymm4 + vpslld $5,%ymm0,%ymm7 + vpand %ymm2,%ymm3,%ymm6 + vpxor 192-128(%rax),%ymm11,%ymm11 + + vpaddd %ymm6,%ymm4,%ymm4 + vpsrld $27,%ymm0,%ymm8 + vpxor %ymm2,%ymm3,%ymm5 + vpxor %ymm13,%ymm11,%ymm11 + + vmovdqu %ymm10,416-256-128(%rbx) + vpaddd %ymm10,%ymm4,%ymm4 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm11,%ymm9 + vpand %ymm1,%ymm5,%ymm5 + vpaddd %ymm11,%ymm11,%ymm11 + + vpslld $30,%ymm1,%ymm6 + vpaddd %ymm5,%ymm4,%ymm4 + + vpsrld $2,%ymm1,%ymm1 + vpaddd %ymm7,%ymm4,%ymm4 + vpor %ymm9,%ymm11,%ymm11 + vpor %ymm6,%ymm1,%ymm1 + vpxor %ymm14,%ymm12,%ymm12 + vmovdqa 32-128(%rax),%ymm14 + + vpaddd %ymm15,%ymm3,%ymm3 + vpslld $5,%ymm4,%ymm7 + vpand %ymm1,%ymm2,%ymm6 + vpxor 224-128(%rax),%ymm12,%ymm12 + + vpaddd %ymm6,%ymm3,%ymm3 + vpsrld $27,%ymm4,%ymm8 + vpxor %ymm1,%ymm2,%ymm5 + vpxor %ymm14,%ymm12,%ymm12 + + vmovdqu %ymm11,448-256-128(%rbx) + vpaddd %ymm11,%ymm3,%ymm3 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm12,%ymm9 + vpand %ymm0,%ymm5,%ymm5 + vpaddd %ymm12,%ymm12,%ymm12 + + vpslld $30,%ymm0,%ymm6 + vpaddd %ymm5,%ymm3,%ymm3 + + vpsrld $2,%ymm0,%ymm0 + vpaddd %ymm7,%ymm3,%ymm3 + vpor %ymm9,%ymm12,%ymm12 + vpor %ymm6,%ymm0,%ymm0 + vpxor %ymm10,%ymm13,%ymm13 + vmovdqa 64-128(%rax),%ymm10 + + vpaddd %ymm15,%ymm2,%ymm2 + vpslld $5,%ymm3,%ymm7 + vpand %ymm0,%ymm1,%ymm6 + vpxor 256-256-128(%rbx),%ymm13,%ymm13 + + vpaddd %ymm6,%ymm2,%ymm2 + vpsrld $27,%ymm3,%ymm8 + vpxor %ymm0,%ymm1,%ymm5 + vpxor %ymm10,%ymm13,%ymm13 + + vmovdqu %ymm12,480-256-128(%rbx) + vpaddd %ymm12,%ymm2,%ymm2 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm13,%ymm9 + vpand %ymm4,%ymm5,%ymm5 + vpaddd %ymm13,%ymm13,%ymm13 + + vpslld $30,%ymm4,%ymm6 + vpaddd %ymm5,%ymm2,%ymm2 + + vpsrld $2,%ymm4,%ymm4 + vpaddd %ymm7,%ymm2,%ymm2 + vpor %ymm9,%ymm13,%ymm13 + vpor %ymm6,%ymm4,%ymm4 + vpxor %ymm11,%ymm14,%ymm14 + vmovdqa 96-128(%rax),%ymm11 + + vpaddd %ymm15,%ymm1,%ymm1 + vpslld $5,%ymm2,%ymm7 + vpand %ymm4,%ymm0,%ymm6 + vpxor 288-256-128(%rbx),%ymm14,%ymm14 + + vpaddd %ymm6,%ymm1,%ymm1 + vpsrld $27,%ymm2,%ymm8 + vpxor %ymm4,%ymm0,%ymm5 + vpxor %ymm11,%ymm14,%ymm14 + + vmovdqu %ymm13,0-128(%rax) + vpaddd %ymm13,%ymm1,%ymm1 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm14,%ymm9 + vpand %ymm3,%ymm5,%ymm5 + vpaddd %ymm14,%ymm14,%ymm14 + + vpslld $30,%ymm3,%ymm6 + vpaddd %ymm5,%ymm1,%ymm1 + + vpsrld $2,%ymm3,%ymm3 + vpaddd %ymm7,%ymm1,%ymm1 + vpor %ymm9,%ymm14,%ymm14 + vpor %ymm6,%ymm3,%ymm3 + vpxor %ymm12,%ymm10,%ymm10 + vmovdqa 128-128(%rax),%ymm12 + + vpaddd %ymm15,%ymm0,%ymm0 + vpslld $5,%ymm1,%ymm7 + vpand %ymm3,%ymm4,%ymm6 + vpxor 320-256-128(%rbx),%ymm10,%ymm10 + + vpaddd %ymm6,%ymm0,%ymm0 + vpsrld $27,%ymm1,%ymm8 + vpxor %ymm3,%ymm4,%ymm5 + vpxor %ymm12,%ymm10,%ymm10 + + vmovdqu %ymm14,32-128(%rax) + vpaddd %ymm14,%ymm0,%ymm0 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm10,%ymm9 + vpand %ymm2,%ymm5,%ymm5 + vpaddd %ymm10,%ymm10,%ymm10 + + vpslld $30,%ymm2,%ymm6 + vpaddd %ymm5,%ymm0,%ymm0 + + vpsrld $2,%ymm2,%ymm2 + vpaddd %ymm7,%ymm0,%ymm0 + vpor %ymm9,%ymm10,%ymm10 + vpor %ymm6,%ymm2,%ymm2 + vpxor %ymm13,%ymm11,%ymm11 + vmovdqa 160-128(%rax),%ymm13 + + vpaddd %ymm15,%ymm4,%ymm4 + vpslld $5,%ymm0,%ymm7 + vpand %ymm2,%ymm3,%ymm6 + vpxor 352-256-128(%rbx),%ymm11,%ymm11 + + vpaddd %ymm6,%ymm4,%ymm4 + vpsrld $27,%ymm0,%ymm8 + vpxor %ymm2,%ymm3,%ymm5 + vpxor %ymm13,%ymm11,%ymm11 + + vmovdqu %ymm10,64-128(%rax) + vpaddd %ymm10,%ymm4,%ymm4 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm11,%ymm9 + vpand %ymm1,%ymm5,%ymm5 + vpaddd %ymm11,%ymm11,%ymm11 + + vpslld $30,%ymm1,%ymm6 + vpaddd %ymm5,%ymm4,%ymm4 + + vpsrld $2,%ymm1,%ymm1 + vpaddd %ymm7,%ymm4,%ymm4 + vpor %ymm9,%ymm11,%ymm11 + vpor %ymm6,%ymm1,%ymm1 + vpxor %ymm14,%ymm12,%ymm12 + vmovdqa 192-128(%rax),%ymm14 + + vpaddd %ymm15,%ymm3,%ymm3 + vpslld $5,%ymm4,%ymm7 + vpand %ymm1,%ymm2,%ymm6 + vpxor 384-256-128(%rbx),%ymm12,%ymm12 + + vpaddd %ymm6,%ymm3,%ymm3 + vpsrld $27,%ymm4,%ymm8 + vpxor %ymm1,%ymm2,%ymm5 + vpxor %ymm14,%ymm12,%ymm12 + + vmovdqu %ymm11,96-128(%rax) + vpaddd %ymm11,%ymm3,%ymm3 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm12,%ymm9 + vpand %ymm0,%ymm5,%ymm5 + vpaddd %ymm12,%ymm12,%ymm12 + + vpslld $30,%ymm0,%ymm6 + vpaddd %ymm5,%ymm3,%ymm3 + + vpsrld $2,%ymm0,%ymm0 + vpaddd %ymm7,%ymm3,%ymm3 + vpor %ymm9,%ymm12,%ymm12 + vpor %ymm6,%ymm0,%ymm0 + vpxor %ymm10,%ymm13,%ymm13 + vmovdqa 224-128(%rax),%ymm10 + + vpaddd %ymm15,%ymm2,%ymm2 + vpslld $5,%ymm3,%ymm7 + vpand %ymm0,%ymm1,%ymm6 + vpxor 416-256-128(%rbx),%ymm13,%ymm13 + + vpaddd %ymm6,%ymm2,%ymm2 + vpsrld $27,%ymm3,%ymm8 + vpxor %ymm0,%ymm1,%ymm5 + vpxor %ymm10,%ymm13,%ymm13 + + vmovdqu %ymm12,128-128(%rax) + vpaddd %ymm12,%ymm2,%ymm2 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm13,%ymm9 + vpand %ymm4,%ymm5,%ymm5 + vpaddd %ymm13,%ymm13,%ymm13 + + vpslld $30,%ymm4,%ymm6 + vpaddd %ymm5,%ymm2,%ymm2 + + vpsrld $2,%ymm4,%ymm4 + vpaddd %ymm7,%ymm2,%ymm2 + vpor %ymm9,%ymm13,%ymm13 + vpor %ymm6,%ymm4,%ymm4 + vpxor %ymm11,%ymm14,%ymm14 + vmovdqa 256-256-128(%rbx),%ymm11 + + vpaddd %ymm15,%ymm1,%ymm1 + vpslld $5,%ymm2,%ymm7 + vpand %ymm4,%ymm0,%ymm6 + vpxor 448-256-128(%rbx),%ymm14,%ymm14 + + vpaddd %ymm6,%ymm1,%ymm1 + vpsrld $27,%ymm2,%ymm8 + vpxor %ymm4,%ymm0,%ymm5 + vpxor %ymm11,%ymm14,%ymm14 + + vmovdqu %ymm13,160-128(%rax) + vpaddd %ymm13,%ymm1,%ymm1 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm14,%ymm9 + vpand %ymm3,%ymm5,%ymm5 + vpaddd %ymm14,%ymm14,%ymm14 + + vpslld $30,%ymm3,%ymm6 + vpaddd %ymm5,%ymm1,%ymm1 + + vpsrld $2,%ymm3,%ymm3 + vpaddd %ymm7,%ymm1,%ymm1 + vpor %ymm9,%ymm14,%ymm14 + vpor %ymm6,%ymm3,%ymm3 + vpxor %ymm12,%ymm10,%ymm10 + vmovdqa 288-256-128(%rbx),%ymm12 + + vpaddd %ymm15,%ymm0,%ymm0 + vpslld $5,%ymm1,%ymm7 + vpand %ymm3,%ymm4,%ymm6 + vpxor 480-256-128(%rbx),%ymm10,%ymm10 + + vpaddd %ymm6,%ymm0,%ymm0 + vpsrld $27,%ymm1,%ymm8 + vpxor %ymm3,%ymm4,%ymm5 + vpxor %ymm12,%ymm10,%ymm10 + + vmovdqu %ymm14,192-128(%rax) + vpaddd %ymm14,%ymm0,%ymm0 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm10,%ymm9 + vpand %ymm2,%ymm5,%ymm5 + vpaddd %ymm10,%ymm10,%ymm10 + + vpslld $30,%ymm2,%ymm6 + vpaddd %ymm5,%ymm0,%ymm0 + + vpsrld $2,%ymm2,%ymm2 + vpaddd %ymm7,%ymm0,%ymm0 + vpor %ymm9,%ymm10,%ymm10 + vpor %ymm6,%ymm2,%ymm2 + vpxor %ymm13,%ymm11,%ymm11 + vmovdqa 320-256-128(%rbx),%ymm13 + + vpaddd %ymm15,%ymm4,%ymm4 + vpslld $5,%ymm0,%ymm7 + vpand %ymm2,%ymm3,%ymm6 + vpxor 0-128(%rax),%ymm11,%ymm11 + + vpaddd %ymm6,%ymm4,%ymm4 + vpsrld $27,%ymm0,%ymm8 + vpxor %ymm2,%ymm3,%ymm5 + vpxor %ymm13,%ymm11,%ymm11 + + vmovdqu %ymm10,224-128(%rax) + vpaddd %ymm10,%ymm4,%ymm4 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm11,%ymm9 + vpand %ymm1,%ymm5,%ymm5 + vpaddd %ymm11,%ymm11,%ymm11 + + vpslld $30,%ymm1,%ymm6 + vpaddd %ymm5,%ymm4,%ymm4 + + vpsrld $2,%ymm1,%ymm1 + vpaddd %ymm7,%ymm4,%ymm4 + vpor %ymm9,%ymm11,%ymm11 + vpor %ymm6,%ymm1,%ymm1 + vpxor %ymm14,%ymm12,%ymm12 + vmovdqa 352-256-128(%rbx),%ymm14 + + vpaddd %ymm15,%ymm3,%ymm3 + vpslld $5,%ymm4,%ymm7 + vpand %ymm1,%ymm2,%ymm6 + vpxor 32-128(%rax),%ymm12,%ymm12 + + vpaddd %ymm6,%ymm3,%ymm3 + vpsrld $27,%ymm4,%ymm8 + vpxor %ymm1,%ymm2,%ymm5 + vpxor %ymm14,%ymm12,%ymm12 + + vmovdqu %ymm11,256-256-128(%rbx) + vpaddd %ymm11,%ymm3,%ymm3 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm12,%ymm9 + vpand %ymm0,%ymm5,%ymm5 + vpaddd %ymm12,%ymm12,%ymm12 + + vpslld $30,%ymm0,%ymm6 + vpaddd %ymm5,%ymm3,%ymm3 + + vpsrld $2,%ymm0,%ymm0 + vpaddd %ymm7,%ymm3,%ymm3 + vpor %ymm9,%ymm12,%ymm12 + vpor %ymm6,%ymm0,%ymm0 + vpxor %ymm10,%ymm13,%ymm13 + vmovdqa 384-256-128(%rbx),%ymm10 + + vpaddd %ymm15,%ymm2,%ymm2 + vpslld $5,%ymm3,%ymm7 + vpand %ymm0,%ymm1,%ymm6 + vpxor 64-128(%rax),%ymm13,%ymm13 + + vpaddd %ymm6,%ymm2,%ymm2 + vpsrld $27,%ymm3,%ymm8 + vpxor %ymm0,%ymm1,%ymm5 + vpxor %ymm10,%ymm13,%ymm13 + + vmovdqu %ymm12,288-256-128(%rbx) + vpaddd %ymm12,%ymm2,%ymm2 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm13,%ymm9 + vpand %ymm4,%ymm5,%ymm5 + vpaddd %ymm13,%ymm13,%ymm13 + + vpslld $30,%ymm4,%ymm6 + vpaddd %ymm5,%ymm2,%ymm2 + + vpsrld $2,%ymm4,%ymm4 + vpaddd %ymm7,%ymm2,%ymm2 + vpor %ymm9,%ymm13,%ymm13 + vpor %ymm6,%ymm4,%ymm4 + vpxor %ymm11,%ymm14,%ymm14 + vmovdqa 416-256-128(%rbx),%ymm11 + + vpaddd %ymm15,%ymm1,%ymm1 + vpslld $5,%ymm2,%ymm7 + vpand %ymm4,%ymm0,%ymm6 + vpxor 96-128(%rax),%ymm14,%ymm14 + + vpaddd %ymm6,%ymm1,%ymm1 + vpsrld $27,%ymm2,%ymm8 + vpxor %ymm4,%ymm0,%ymm5 + vpxor %ymm11,%ymm14,%ymm14 + + vmovdqu %ymm13,320-256-128(%rbx) + vpaddd %ymm13,%ymm1,%ymm1 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm14,%ymm9 + vpand %ymm3,%ymm5,%ymm5 + vpaddd %ymm14,%ymm14,%ymm14 + + vpslld $30,%ymm3,%ymm6 + vpaddd %ymm5,%ymm1,%ymm1 + + vpsrld $2,%ymm3,%ymm3 + vpaddd %ymm7,%ymm1,%ymm1 + vpor %ymm9,%ymm14,%ymm14 + vpor %ymm6,%ymm3,%ymm3 + vpxor %ymm12,%ymm10,%ymm10 + vmovdqa 448-256-128(%rbx),%ymm12 + + vpaddd %ymm15,%ymm0,%ymm0 + vpslld $5,%ymm1,%ymm7 + vpand %ymm3,%ymm4,%ymm6 + vpxor 128-128(%rax),%ymm10,%ymm10 + + vpaddd %ymm6,%ymm0,%ymm0 + vpsrld $27,%ymm1,%ymm8 + vpxor %ymm3,%ymm4,%ymm5 + vpxor %ymm12,%ymm10,%ymm10 + + vmovdqu %ymm14,352-256-128(%rbx) + vpaddd %ymm14,%ymm0,%ymm0 + vpor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm10,%ymm9 + vpand %ymm2,%ymm5,%ymm5 + vpaddd %ymm10,%ymm10,%ymm10 + + vpslld $30,%ymm2,%ymm6 + vpaddd %ymm5,%ymm0,%ymm0 + + vpsrld $2,%ymm2,%ymm2 + vpaddd %ymm7,%ymm0,%ymm0 + vpor %ymm9,%ymm10,%ymm10 + vpor %ymm6,%ymm2,%ymm2 + vmovdqa 64(%rbp),%ymm15 + vpxor %ymm13,%ymm11,%ymm11 + vmovdqa 480-256-128(%rbx),%ymm13 + + vpslld $5,%ymm0,%ymm7 + vpaddd %ymm15,%ymm4,%ymm4 + vpxor %ymm1,%ymm3,%ymm5 + vmovdqa %ymm10,384-256-128(%rbx) + vpaddd %ymm10,%ymm4,%ymm4 + vpxor 160-128(%rax),%ymm11,%ymm11 + vpsrld $27,%ymm0,%ymm8 + vpxor %ymm2,%ymm5,%ymm5 + vpxor %ymm13,%ymm11,%ymm11 + + vpslld $30,%ymm1,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm4,%ymm4 + vpsrld $31,%ymm11,%ymm9 + vpaddd %ymm11,%ymm11,%ymm11 + + vpsrld $2,%ymm1,%ymm1 + vpaddd %ymm7,%ymm4,%ymm4 + vpor %ymm9,%ymm11,%ymm11 + vpor %ymm6,%ymm1,%ymm1 + vpxor %ymm14,%ymm12,%ymm12 + vmovdqa 0-128(%rax),%ymm14 + + vpslld $5,%ymm4,%ymm7 + vpaddd %ymm15,%ymm3,%ymm3 + vpxor %ymm0,%ymm2,%ymm5 + vmovdqa %ymm11,416-256-128(%rbx) + vpaddd %ymm11,%ymm3,%ymm3 + vpxor 192-128(%rax),%ymm12,%ymm12 + vpsrld $27,%ymm4,%ymm8 + vpxor %ymm1,%ymm5,%ymm5 + vpxor %ymm14,%ymm12,%ymm12 + + vpslld $30,%ymm0,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm3,%ymm3 + vpsrld $31,%ymm12,%ymm9 + vpaddd %ymm12,%ymm12,%ymm12 + + vpsrld $2,%ymm0,%ymm0 + vpaddd %ymm7,%ymm3,%ymm3 + vpor %ymm9,%ymm12,%ymm12 + vpor %ymm6,%ymm0,%ymm0 + vpxor %ymm10,%ymm13,%ymm13 + vmovdqa 32-128(%rax),%ymm10 + + vpslld $5,%ymm3,%ymm7 + vpaddd %ymm15,%ymm2,%ymm2 + vpxor %ymm4,%ymm1,%ymm5 + vmovdqa %ymm12,448-256-128(%rbx) + vpaddd %ymm12,%ymm2,%ymm2 + vpxor 224-128(%rax),%ymm13,%ymm13 + vpsrld $27,%ymm3,%ymm8 + vpxor %ymm0,%ymm5,%ymm5 + vpxor %ymm10,%ymm13,%ymm13 + + vpslld $30,%ymm4,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm2,%ymm2 + vpsrld $31,%ymm13,%ymm9 + vpaddd %ymm13,%ymm13,%ymm13 + + vpsrld $2,%ymm4,%ymm4 + vpaddd %ymm7,%ymm2,%ymm2 + vpor %ymm9,%ymm13,%ymm13 + vpor %ymm6,%ymm4,%ymm4 + vpxor %ymm11,%ymm14,%ymm14 + vmovdqa 64-128(%rax),%ymm11 + + vpslld $5,%ymm2,%ymm7 + vpaddd %ymm15,%ymm1,%ymm1 + vpxor %ymm3,%ymm0,%ymm5 + vmovdqa %ymm13,480-256-128(%rbx) + vpaddd %ymm13,%ymm1,%ymm1 + vpxor 256-256-128(%rbx),%ymm14,%ymm14 + vpsrld $27,%ymm2,%ymm8 + vpxor %ymm4,%ymm5,%ymm5 + vpxor %ymm11,%ymm14,%ymm14 + + vpslld $30,%ymm3,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm1,%ymm1 + vpsrld $31,%ymm14,%ymm9 + vpaddd %ymm14,%ymm14,%ymm14 + + vpsrld $2,%ymm3,%ymm3 + vpaddd %ymm7,%ymm1,%ymm1 + vpor %ymm9,%ymm14,%ymm14 + vpor %ymm6,%ymm3,%ymm3 + vpxor %ymm12,%ymm10,%ymm10 + vmovdqa 96-128(%rax),%ymm12 + + vpslld $5,%ymm1,%ymm7 + vpaddd %ymm15,%ymm0,%ymm0 + vpxor %ymm2,%ymm4,%ymm5 + vmovdqa %ymm14,0-128(%rax) + vpaddd %ymm14,%ymm0,%ymm0 + vpxor 288-256-128(%rbx),%ymm10,%ymm10 + vpsrld $27,%ymm1,%ymm8 + vpxor %ymm3,%ymm5,%ymm5 + vpxor %ymm12,%ymm10,%ymm10 + + vpslld $30,%ymm2,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm0,%ymm0 + vpsrld $31,%ymm10,%ymm9 + vpaddd %ymm10,%ymm10,%ymm10 + + vpsrld $2,%ymm2,%ymm2 + vpaddd %ymm7,%ymm0,%ymm0 + vpor %ymm9,%ymm10,%ymm10 + vpor %ymm6,%ymm2,%ymm2 + vpxor %ymm13,%ymm11,%ymm11 + vmovdqa 128-128(%rax),%ymm13 + + vpslld $5,%ymm0,%ymm7 + vpaddd %ymm15,%ymm4,%ymm4 + vpxor %ymm1,%ymm3,%ymm5 + vmovdqa %ymm10,32-128(%rax) + vpaddd %ymm10,%ymm4,%ymm4 + vpxor 320-256-128(%rbx),%ymm11,%ymm11 + vpsrld $27,%ymm0,%ymm8 + vpxor %ymm2,%ymm5,%ymm5 + vpxor %ymm13,%ymm11,%ymm11 + + vpslld $30,%ymm1,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm4,%ymm4 + vpsrld $31,%ymm11,%ymm9 + vpaddd %ymm11,%ymm11,%ymm11 + + vpsrld $2,%ymm1,%ymm1 + vpaddd %ymm7,%ymm4,%ymm4 + vpor %ymm9,%ymm11,%ymm11 + vpor %ymm6,%ymm1,%ymm1 + vpxor %ymm14,%ymm12,%ymm12 + vmovdqa 160-128(%rax),%ymm14 + + vpslld $5,%ymm4,%ymm7 + vpaddd %ymm15,%ymm3,%ymm3 + vpxor %ymm0,%ymm2,%ymm5 + vmovdqa %ymm11,64-128(%rax) + vpaddd %ymm11,%ymm3,%ymm3 + vpxor 352-256-128(%rbx),%ymm12,%ymm12 + vpsrld $27,%ymm4,%ymm8 + vpxor %ymm1,%ymm5,%ymm5 + vpxor %ymm14,%ymm12,%ymm12 + + vpslld $30,%ymm0,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm3,%ymm3 + vpsrld $31,%ymm12,%ymm9 + vpaddd %ymm12,%ymm12,%ymm12 + + vpsrld $2,%ymm0,%ymm0 + vpaddd %ymm7,%ymm3,%ymm3 + vpor %ymm9,%ymm12,%ymm12 + vpor %ymm6,%ymm0,%ymm0 + vpxor %ymm10,%ymm13,%ymm13 + vmovdqa 192-128(%rax),%ymm10 + + vpslld $5,%ymm3,%ymm7 + vpaddd %ymm15,%ymm2,%ymm2 + vpxor %ymm4,%ymm1,%ymm5 + vmovdqa %ymm12,96-128(%rax) + vpaddd %ymm12,%ymm2,%ymm2 + vpxor 384-256-128(%rbx),%ymm13,%ymm13 + vpsrld $27,%ymm3,%ymm8 + vpxor %ymm0,%ymm5,%ymm5 + vpxor %ymm10,%ymm13,%ymm13 + + vpslld $30,%ymm4,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm2,%ymm2 + vpsrld $31,%ymm13,%ymm9 + vpaddd %ymm13,%ymm13,%ymm13 + + vpsrld $2,%ymm4,%ymm4 + vpaddd %ymm7,%ymm2,%ymm2 + vpor %ymm9,%ymm13,%ymm13 + vpor %ymm6,%ymm4,%ymm4 + vpxor %ymm11,%ymm14,%ymm14 + vmovdqa 224-128(%rax),%ymm11 + + vpslld $5,%ymm2,%ymm7 + vpaddd %ymm15,%ymm1,%ymm1 + vpxor %ymm3,%ymm0,%ymm5 + vmovdqa %ymm13,128-128(%rax) + vpaddd %ymm13,%ymm1,%ymm1 + vpxor 416-256-128(%rbx),%ymm14,%ymm14 + vpsrld $27,%ymm2,%ymm8 + vpxor %ymm4,%ymm5,%ymm5 + vpxor %ymm11,%ymm14,%ymm14 + + vpslld $30,%ymm3,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm1,%ymm1 + vpsrld $31,%ymm14,%ymm9 + vpaddd %ymm14,%ymm14,%ymm14 + + vpsrld $2,%ymm3,%ymm3 + vpaddd %ymm7,%ymm1,%ymm1 + vpor %ymm9,%ymm14,%ymm14 + vpor %ymm6,%ymm3,%ymm3 + vpxor %ymm12,%ymm10,%ymm10 + vmovdqa 256-256-128(%rbx),%ymm12 + + vpslld $5,%ymm1,%ymm7 + vpaddd %ymm15,%ymm0,%ymm0 + vpxor %ymm2,%ymm4,%ymm5 + vmovdqa %ymm14,160-128(%rax) + vpaddd %ymm14,%ymm0,%ymm0 + vpxor 448-256-128(%rbx),%ymm10,%ymm10 + vpsrld $27,%ymm1,%ymm8 + vpxor %ymm3,%ymm5,%ymm5 + vpxor %ymm12,%ymm10,%ymm10 + + vpslld $30,%ymm2,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm0,%ymm0 + vpsrld $31,%ymm10,%ymm9 + vpaddd %ymm10,%ymm10,%ymm10 + + vpsrld $2,%ymm2,%ymm2 + vpaddd %ymm7,%ymm0,%ymm0 + vpor %ymm9,%ymm10,%ymm10 + vpor %ymm6,%ymm2,%ymm2 + vpxor %ymm13,%ymm11,%ymm11 + vmovdqa 288-256-128(%rbx),%ymm13 + + vpslld $5,%ymm0,%ymm7 + vpaddd %ymm15,%ymm4,%ymm4 + vpxor %ymm1,%ymm3,%ymm5 + vmovdqa %ymm10,192-128(%rax) + vpaddd %ymm10,%ymm4,%ymm4 + vpxor 480-256-128(%rbx),%ymm11,%ymm11 + vpsrld $27,%ymm0,%ymm8 + vpxor %ymm2,%ymm5,%ymm5 + vpxor %ymm13,%ymm11,%ymm11 + + vpslld $30,%ymm1,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm4,%ymm4 + vpsrld $31,%ymm11,%ymm9 + vpaddd %ymm11,%ymm11,%ymm11 + + vpsrld $2,%ymm1,%ymm1 + vpaddd %ymm7,%ymm4,%ymm4 + vpor %ymm9,%ymm11,%ymm11 + vpor %ymm6,%ymm1,%ymm1 + vpxor %ymm14,%ymm12,%ymm12 + vmovdqa 320-256-128(%rbx),%ymm14 + + vpslld $5,%ymm4,%ymm7 + vpaddd %ymm15,%ymm3,%ymm3 + vpxor %ymm0,%ymm2,%ymm5 + vmovdqa %ymm11,224-128(%rax) + vpaddd %ymm11,%ymm3,%ymm3 + vpxor 0-128(%rax),%ymm12,%ymm12 + vpsrld $27,%ymm4,%ymm8 + vpxor %ymm1,%ymm5,%ymm5 + vpxor %ymm14,%ymm12,%ymm12 + + vpslld $30,%ymm0,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm3,%ymm3 + vpsrld $31,%ymm12,%ymm9 + vpaddd %ymm12,%ymm12,%ymm12 + + vpsrld $2,%ymm0,%ymm0 + vpaddd %ymm7,%ymm3,%ymm3 + vpor %ymm9,%ymm12,%ymm12 + vpor %ymm6,%ymm0,%ymm0 + vpxor %ymm10,%ymm13,%ymm13 + vmovdqa 352-256-128(%rbx),%ymm10 + + vpslld $5,%ymm3,%ymm7 + vpaddd %ymm15,%ymm2,%ymm2 + vpxor %ymm4,%ymm1,%ymm5 + vpaddd %ymm12,%ymm2,%ymm2 + vpxor 32-128(%rax),%ymm13,%ymm13 + vpsrld $27,%ymm3,%ymm8 + vpxor %ymm0,%ymm5,%ymm5 + vpxor %ymm10,%ymm13,%ymm13 + + vpslld $30,%ymm4,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm2,%ymm2 + vpsrld $31,%ymm13,%ymm9 + vpaddd %ymm13,%ymm13,%ymm13 + + vpsrld $2,%ymm4,%ymm4 + vpaddd %ymm7,%ymm2,%ymm2 + vpor %ymm9,%ymm13,%ymm13 + vpor %ymm6,%ymm4,%ymm4 + vpxor %ymm11,%ymm14,%ymm14 + vmovdqa 384-256-128(%rbx),%ymm11 + + vpslld $5,%ymm2,%ymm7 + vpaddd %ymm15,%ymm1,%ymm1 + vpxor %ymm3,%ymm0,%ymm5 + vpaddd %ymm13,%ymm1,%ymm1 + vpxor 64-128(%rax),%ymm14,%ymm14 + vpsrld $27,%ymm2,%ymm8 + vpxor %ymm4,%ymm5,%ymm5 + vpxor %ymm11,%ymm14,%ymm14 + + vpslld $30,%ymm3,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm1,%ymm1 + vpsrld $31,%ymm14,%ymm9 + vpaddd %ymm14,%ymm14,%ymm14 + + vpsrld $2,%ymm3,%ymm3 + vpaddd %ymm7,%ymm1,%ymm1 + vpor %ymm9,%ymm14,%ymm14 + vpor %ymm6,%ymm3,%ymm3 + vpxor %ymm12,%ymm10,%ymm10 + vmovdqa 416-256-128(%rbx),%ymm12 + + vpslld $5,%ymm1,%ymm7 + vpaddd %ymm15,%ymm0,%ymm0 + vpxor %ymm2,%ymm4,%ymm5 + vpaddd %ymm14,%ymm0,%ymm0 + vpxor 96-128(%rax),%ymm10,%ymm10 + vpsrld $27,%ymm1,%ymm8 + vpxor %ymm3,%ymm5,%ymm5 + vpxor %ymm12,%ymm10,%ymm10 + + vpslld $30,%ymm2,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm0,%ymm0 + vpsrld $31,%ymm10,%ymm9 + vpaddd %ymm10,%ymm10,%ymm10 + + vpsrld $2,%ymm2,%ymm2 + vpaddd %ymm7,%ymm0,%ymm0 + vpor %ymm9,%ymm10,%ymm10 + vpor %ymm6,%ymm2,%ymm2 + vpxor %ymm13,%ymm11,%ymm11 + vmovdqa 448-256-128(%rbx),%ymm13 + + vpslld $5,%ymm0,%ymm7 + vpaddd %ymm15,%ymm4,%ymm4 + vpxor %ymm1,%ymm3,%ymm5 + vpaddd %ymm10,%ymm4,%ymm4 + vpxor 128-128(%rax),%ymm11,%ymm11 + vpsrld $27,%ymm0,%ymm8 + vpxor %ymm2,%ymm5,%ymm5 + vpxor %ymm13,%ymm11,%ymm11 + + vpslld $30,%ymm1,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm4,%ymm4 + vpsrld $31,%ymm11,%ymm9 + vpaddd %ymm11,%ymm11,%ymm11 + + vpsrld $2,%ymm1,%ymm1 + vpaddd %ymm7,%ymm4,%ymm4 + vpor %ymm9,%ymm11,%ymm11 + vpor %ymm6,%ymm1,%ymm1 + vpxor %ymm14,%ymm12,%ymm12 + vmovdqa 480-256-128(%rbx),%ymm14 + + vpslld $5,%ymm4,%ymm7 + vpaddd %ymm15,%ymm3,%ymm3 + vpxor %ymm0,%ymm2,%ymm5 + vpaddd %ymm11,%ymm3,%ymm3 + vpxor 160-128(%rax),%ymm12,%ymm12 + vpsrld $27,%ymm4,%ymm8 + vpxor %ymm1,%ymm5,%ymm5 + vpxor %ymm14,%ymm12,%ymm12 + + vpslld $30,%ymm0,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm3,%ymm3 + vpsrld $31,%ymm12,%ymm9 + vpaddd %ymm12,%ymm12,%ymm12 + + vpsrld $2,%ymm0,%ymm0 + vpaddd %ymm7,%ymm3,%ymm3 + vpor %ymm9,%ymm12,%ymm12 + vpor %ymm6,%ymm0,%ymm0 + vpxor %ymm10,%ymm13,%ymm13 + vmovdqa 0-128(%rax),%ymm10 + + vpslld $5,%ymm3,%ymm7 + vpaddd %ymm15,%ymm2,%ymm2 + vpxor %ymm4,%ymm1,%ymm5 + vpaddd %ymm12,%ymm2,%ymm2 + vpxor 192-128(%rax),%ymm13,%ymm13 + vpsrld $27,%ymm3,%ymm8 + vpxor %ymm0,%ymm5,%ymm5 + vpxor %ymm10,%ymm13,%ymm13 + + vpslld $30,%ymm4,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm2,%ymm2 + vpsrld $31,%ymm13,%ymm9 + vpaddd %ymm13,%ymm13,%ymm13 + + vpsrld $2,%ymm4,%ymm4 + vpaddd %ymm7,%ymm2,%ymm2 + vpor %ymm9,%ymm13,%ymm13 + vpor %ymm6,%ymm4,%ymm4 + vpxor %ymm11,%ymm14,%ymm14 + vmovdqa 32-128(%rax),%ymm11 + + vpslld $5,%ymm2,%ymm7 + vpaddd %ymm15,%ymm1,%ymm1 + vpxor %ymm3,%ymm0,%ymm5 + vpaddd %ymm13,%ymm1,%ymm1 + vpxor 224-128(%rax),%ymm14,%ymm14 + vpsrld $27,%ymm2,%ymm8 + vpxor %ymm4,%ymm5,%ymm5 + vpxor %ymm11,%ymm14,%ymm14 + + vpslld $30,%ymm3,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm1,%ymm1 + vpsrld $31,%ymm14,%ymm9 + vpaddd %ymm14,%ymm14,%ymm14 + + vpsrld $2,%ymm3,%ymm3 + vpaddd %ymm7,%ymm1,%ymm1 + vpor %ymm9,%ymm14,%ymm14 + vpor %ymm6,%ymm3,%ymm3 + vpslld $5,%ymm1,%ymm7 + vpaddd %ymm15,%ymm0,%ymm0 + vpxor %ymm2,%ymm4,%ymm5 + + vpsrld $27,%ymm1,%ymm8 + vpaddd %ymm14,%ymm0,%ymm0 + vpxor %ymm3,%ymm5,%ymm5 + + vpslld $30,%ymm2,%ymm6 + vpor %ymm8,%ymm7,%ymm7 + vpaddd %ymm5,%ymm0,%ymm0 + + vpsrld $2,%ymm2,%ymm2 + vpaddd %ymm7,%ymm0,%ymm0 + vpor %ymm6,%ymm2,%ymm2 + movl $1,%ecx + leaq 512(%rsp),%rbx + cmpl 0(%rbx),%ecx + cmovgeq %rbp,%r12 + cmpl 4(%rbx),%ecx + cmovgeq %rbp,%r13 + cmpl 8(%rbx),%ecx + cmovgeq %rbp,%r14 + cmpl 12(%rbx),%ecx + cmovgeq %rbp,%r15 + cmpl 16(%rbx),%ecx + cmovgeq %rbp,%r8 + cmpl 20(%rbx),%ecx + cmovgeq %rbp,%r9 + cmpl 24(%rbx),%ecx + cmovgeq %rbp,%r10 + cmpl 28(%rbx),%ecx + cmovgeq %rbp,%r11 + vmovdqu (%rbx),%ymm5 + vpxor %ymm7,%ymm7,%ymm7 + vmovdqa %ymm5,%ymm6 + vpcmpgtd %ymm7,%ymm6,%ymm6 + vpaddd %ymm6,%ymm5,%ymm5 + + vpand %ymm6,%ymm0,%ymm0 + vpand %ymm6,%ymm1,%ymm1 + vpaddd 0(%rdi),%ymm0,%ymm0 + vpand %ymm6,%ymm2,%ymm2 + vpaddd 32(%rdi),%ymm1,%ymm1 + vpand %ymm6,%ymm3,%ymm3 + vpaddd 64(%rdi),%ymm2,%ymm2 + vpand %ymm6,%ymm4,%ymm4 + vpaddd 96(%rdi),%ymm3,%ymm3 + vpaddd 128(%rdi),%ymm4,%ymm4 + vmovdqu %ymm0,0(%rdi) + vmovdqu %ymm1,32(%rdi) + vmovdqu %ymm2,64(%rdi) + vmovdqu %ymm3,96(%rdi) + vmovdqu %ymm4,128(%rdi) + + vmovdqu %ymm5,(%rbx) + leaq 256+128(%rsp),%rbx + vmovdqu 96(%rbp),%ymm9 + decl %edx + jnz L$oop_avx2 + + + + + + + +L$done_avx2: + movq 544(%rsp),%rax + + vzeroupper + movq -48(%rax),%r15 + + movq -40(%rax),%r14 + + movq -32(%rax),%r13 + + movq -24(%rax),%r12 + + movq -16(%rax),%rbp + + movq -8(%rax),%rbx + + leaq (%rax),%rsp + +L$epilogue_avx2: + .byte 0xf3,0xc3 + + + +.p2align 8 +.long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 +.long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 +K_XX_XX: +.long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1 +.long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1 +.long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc +.long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc +.long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6 +.long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6 +.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f +.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f +.byte 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0 +.byte 83,72,65,49,32,109,117,108,116,105,45,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 diff --git a/vere/ext/openssl/gen/macos-x86_64/crypto/sha/sha1-x86_64.s b/vere/ext/openssl/gen/macos-x86_64/crypto/sha/sha1-x86_64.s new file mode 100644 index 0000000..fb22d41 --- /dev/null +++ b/vere/ext/openssl/gen/macos-x86_64/crypto/sha/sha1-x86_64.s @@ -0,0 +1,5450 @@ +.text + + +.globl _sha1_block_data_order + +.p2align 4 +_sha1_block_data_order: + + movl _OPENSSL_ia32cap_P+0(%rip),%r9d + movl _OPENSSL_ia32cap_P+4(%rip),%r8d + movl _OPENSSL_ia32cap_P+8(%rip),%r10d + testl $512,%r8d + jz L$ialu + testl $536870912,%r10d + jnz _shaext_shortcut + andl $296,%r10d + cmpl $296,%r10d + je _avx2_shortcut + andl $268435456,%r8d + andl $1073741824,%r9d + orl %r9d,%r8d + cmpl $1342177280,%r8d + je _avx_shortcut + jmp _ssse3_shortcut + +.p2align 4 +L$ialu: + movq %rsp,%rax + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + movq %rdi,%r8 + subq $72,%rsp + movq %rsi,%r9 + andq $-64,%rsp + movq %rdx,%r10 + movq %rax,64(%rsp) + +L$prologue: + + movl 0(%r8),%esi + movl 4(%r8),%edi + movl 8(%r8),%r11d + movl 12(%r8),%r12d + movl 16(%r8),%r13d + jmp L$loop + +.p2align 4 +L$loop: + movl 0(%r9),%edx + bswapl %edx + movl 4(%r9),%ebp + movl %r12d,%eax + movl %edx,0(%rsp) + movl %esi,%ecx + bswapl %ebp + xorl %r11d,%eax + roll $5,%ecx + andl %edi,%eax + leal 1518500249(%rdx,%r13,1),%r13d + addl %ecx,%r13d + xorl %r12d,%eax + roll $30,%edi + addl %eax,%r13d + movl 8(%r9),%r14d + movl %r11d,%eax + movl %ebp,4(%rsp) + movl %r13d,%ecx + bswapl %r14d + xorl %edi,%eax + roll $5,%ecx + andl %esi,%eax + leal 1518500249(%rbp,%r12,1),%r12d + addl %ecx,%r12d + xorl %r11d,%eax + roll $30,%esi + addl %eax,%r12d + movl 12(%r9),%edx + movl %edi,%eax + movl %r14d,8(%rsp) + movl %r12d,%ecx + bswapl %edx + xorl %esi,%eax + roll $5,%ecx + andl %r13d,%eax + leal 1518500249(%r14,%r11,1),%r11d + addl %ecx,%r11d + xorl %edi,%eax + roll $30,%r13d + addl %eax,%r11d + movl 16(%r9),%ebp + movl %esi,%eax + movl %edx,12(%rsp) + movl %r11d,%ecx + bswapl %ebp + xorl %r13d,%eax + roll $5,%ecx + andl %r12d,%eax + leal 1518500249(%rdx,%rdi,1),%edi + addl %ecx,%edi + xorl %esi,%eax + roll $30,%r12d + addl %eax,%edi + movl 20(%r9),%r14d + movl %r13d,%eax + movl %ebp,16(%rsp) + movl %edi,%ecx + bswapl %r14d + xorl %r12d,%eax + roll $5,%ecx + andl %r11d,%eax + leal 1518500249(%rbp,%rsi,1),%esi + addl %ecx,%esi + xorl %r13d,%eax + roll $30,%r11d + addl %eax,%esi + movl 24(%r9),%edx + movl %r12d,%eax + movl %r14d,20(%rsp) + movl %esi,%ecx + bswapl %edx + xorl %r11d,%eax + roll $5,%ecx + andl %edi,%eax + leal 1518500249(%r14,%r13,1),%r13d + addl %ecx,%r13d + xorl %r12d,%eax + roll $30,%edi + addl %eax,%r13d + movl 28(%r9),%ebp + movl %r11d,%eax + movl %edx,24(%rsp) + movl %r13d,%ecx + bswapl %ebp + xorl %edi,%eax + roll $5,%ecx + andl %esi,%eax + leal 1518500249(%rdx,%r12,1),%r12d + addl %ecx,%r12d + xorl %r11d,%eax + roll $30,%esi + addl %eax,%r12d + movl 32(%r9),%r14d + movl %edi,%eax + movl %ebp,28(%rsp) + movl %r12d,%ecx + bswapl %r14d + xorl %esi,%eax + roll $5,%ecx + andl %r13d,%eax + leal 1518500249(%rbp,%r11,1),%r11d + addl %ecx,%r11d + xorl %edi,%eax + roll $30,%r13d + addl %eax,%r11d + movl 36(%r9),%edx + movl %esi,%eax + movl %r14d,32(%rsp) + movl %r11d,%ecx + bswapl %edx + xorl %r13d,%eax + roll $5,%ecx + andl %r12d,%eax + leal 1518500249(%r14,%rdi,1),%edi + addl %ecx,%edi + xorl %esi,%eax + roll $30,%r12d + addl %eax,%edi + movl 40(%r9),%ebp + movl %r13d,%eax + movl %edx,36(%rsp) + movl %edi,%ecx + bswapl %ebp + xorl %r12d,%eax + roll $5,%ecx + andl %r11d,%eax + leal 1518500249(%rdx,%rsi,1),%esi + addl %ecx,%esi + xorl %r13d,%eax + roll $30,%r11d + addl %eax,%esi + movl 44(%r9),%r14d + movl %r12d,%eax + movl %ebp,40(%rsp) + movl %esi,%ecx + bswapl %r14d + xorl %r11d,%eax + roll $5,%ecx + andl %edi,%eax + leal 1518500249(%rbp,%r13,1),%r13d + addl %ecx,%r13d + xorl %r12d,%eax + roll $30,%edi + addl %eax,%r13d + movl 48(%r9),%edx + movl %r11d,%eax + movl %r14d,44(%rsp) + movl %r13d,%ecx + bswapl %edx + xorl %edi,%eax + roll $5,%ecx + andl %esi,%eax + leal 1518500249(%r14,%r12,1),%r12d + addl %ecx,%r12d + xorl %r11d,%eax + roll $30,%esi + addl %eax,%r12d + movl 52(%r9),%ebp + movl %edi,%eax + movl %edx,48(%rsp) + movl %r12d,%ecx + bswapl %ebp + xorl %esi,%eax + roll $5,%ecx + andl %r13d,%eax + leal 1518500249(%rdx,%r11,1),%r11d + addl %ecx,%r11d + xorl %edi,%eax + roll $30,%r13d + addl %eax,%r11d + movl 56(%r9),%r14d + movl %esi,%eax + movl %ebp,52(%rsp) + movl %r11d,%ecx + bswapl %r14d + xorl %r13d,%eax + roll $5,%ecx + andl %r12d,%eax + leal 1518500249(%rbp,%rdi,1),%edi + addl %ecx,%edi + xorl %esi,%eax + roll $30,%r12d + addl %eax,%edi + movl 60(%r9),%edx + movl %r13d,%eax + movl %r14d,56(%rsp) + movl %edi,%ecx + bswapl %edx + xorl %r12d,%eax + roll $5,%ecx + andl %r11d,%eax + leal 1518500249(%r14,%rsi,1),%esi + addl %ecx,%esi + xorl %r13d,%eax + roll $30,%r11d + addl %eax,%esi + xorl 0(%rsp),%ebp + movl %r12d,%eax + movl %edx,60(%rsp) + movl %esi,%ecx + xorl 8(%rsp),%ebp + xorl %r11d,%eax + roll $5,%ecx + xorl 32(%rsp),%ebp + andl %edi,%eax + leal 1518500249(%rdx,%r13,1),%r13d + roll $30,%edi + xorl %r12d,%eax + addl %ecx,%r13d + roll $1,%ebp + addl %eax,%r13d + xorl 4(%rsp),%r14d + movl %r11d,%eax + movl %ebp,0(%rsp) + movl %r13d,%ecx + xorl 12(%rsp),%r14d + xorl %edi,%eax + roll $5,%ecx + xorl 36(%rsp),%r14d + andl %esi,%eax + leal 1518500249(%rbp,%r12,1),%r12d + roll $30,%esi + xorl %r11d,%eax + addl %ecx,%r12d + roll $1,%r14d + addl %eax,%r12d + xorl 8(%rsp),%edx + movl %edi,%eax + movl %r14d,4(%rsp) + movl %r12d,%ecx + xorl 16(%rsp),%edx + xorl %esi,%eax + roll $5,%ecx + xorl 40(%rsp),%edx + andl %r13d,%eax + leal 1518500249(%r14,%r11,1),%r11d + roll $30,%r13d + xorl %edi,%eax + addl %ecx,%r11d + roll $1,%edx + addl %eax,%r11d + xorl 12(%rsp),%ebp + movl %esi,%eax + movl %edx,8(%rsp) + movl %r11d,%ecx + xorl 20(%rsp),%ebp + xorl %r13d,%eax + roll $5,%ecx + xorl 44(%rsp),%ebp + andl %r12d,%eax + leal 1518500249(%rdx,%rdi,1),%edi + roll $30,%r12d + xorl %esi,%eax + addl %ecx,%edi + roll $1,%ebp + addl %eax,%edi + xorl 16(%rsp),%r14d + movl %r13d,%eax + movl %ebp,12(%rsp) + movl %edi,%ecx + xorl 24(%rsp),%r14d + xorl %r12d,%eax + roll $5,%ecx + xorl 48(%rsp),%r14d + andl %r11d,%eax + leal 1518500249(%rbp,%rsi,1),%esi + roll $30,%r11d + xorl %r13d,%eax + addl %ecx,%esi + roll $1,%r14d + addl %eax,%esi + xorl 20(%rsp),%edx + movl %edi,%eax + movl %r14d,16(%rsp) + movl %esi,%ecx + xorl 28(%rsp),%edx + xorl %r12d,%eax + roll $5,%ecx + xorl 52(%rsp),%edx + leal 1859775393(%r14,%r13,1),%r13d + xorl %r11d,%eax + addl %ecx,%r13d + roll $30,%edi + addl %eax,%r13d + roll $1,%edx + xorl 24(%rsp),%ebp + movl %esi,%eax + movl %edx,20(%rsp) + movl %r13d,%ecx + xorl 32(%rsp),%ebp + xorl %r11d,%eax + roll $5,%ecx + xorl 56(%rsp),%ebp + leal 1859775393(%rdx,%r12,1),%r12d + xorl %edi,%eax + addl %ecx,%r12d + roll $30,%esi + addl %eax,%r12d + roll $1,%ebp + xorl 28(%rsp),%r14d + movl %r13d,%eax + movl %ebp,24(%rsp) + movl %r12d,%ecx + xorl 36(%rsp),%r14d + xorl %edi,%eax + roll $5,%ecx + xorl 60(%rsp),%r14d + leal 1859775393(%rbp,%r11,1),%r11d + xorl %esi,%eax + addl %ecx,%r11d + roll $30,%r13d + addl %eax,%r11d + roll $1,%r14d + xorl 32(%rsp),%edx + movl %r12d,%eax + movl %r14d,28(%rsp) + movl %r11d,%ecx + xorl 40(%rsp),%edx + xorl %esi,%eax + roll $5,%ecx + xorl 0(%rsp),%edx + leal 1859775393(%r14,%rdi,1),%edi + xorl %r13d,%eax + addl %ecx,%edi + roll $30,%r12d + addl %eax,%edi + roll $1,%edx + xorl 36(%rsp),%ebp + movl %r11d,%eax + movl %edx,32(%rsp) + movl %edi,%ecx + xorl 44(%rsp),%ebp + xorl %r13d,%eax + roll $5,%ecx + xorl 4(%rsp),%ebp + leal 1859775393(%rdx,%rsi,1),%esi + xorl %r12d,%eax + addl %ecx,%esi + roll $30,%r11d + addl %eax,%esi + roll $1,%ebp + xorl 40(%rsp),%r14d + movl %edi,%eax + movl %ebp,36(%rsp) + movl %esi,%ecx + xorl 48(%rsp),%r14d + xorl %r12d,%eax + roll $5,%ecx + xorl 8(%rsp),%r14d + leal 1859775393(%rbp,%r13,1),%r13d + xorl %r11d,%eax + addl %ecx,%r13d + roll $30,%edi + addl %eax,%r13d + roll $1,%r14d + xorl 44(%rsp),%edx + movl %esi,%eax + movl %r14d,40(%rsp) + movl %r13d,%ecx + xorl 52(%rsp),%edx + xorl %r11d,%eax + roll $5,%ecx + xorl 12(%rsp),%edx + leal 1859775393(%r14,%r12,1),%r12d + xorl %edi,%eax + addl %ecx,%r12d + roll $30,%esi + addl %eax,%r12d + roll $1,%edx + xorl 48(%rsp),%ebp + movl %r13d,%eax + movl %edx,44(%rsp) + movl %r12d,%ecx + xorl 56(%rsp),%ebp + xorl %edi,%eax + roll $5,%ecx + xorl 16(%rsp),%ebp + leal 1859775393(%rdx,%r11,1),%r11d + xorl %esi,%eax + addl %ecx,%r11d + roll $30,%r13d + addl %eax,%r11d + roll $1,%ebp + xorl 52(%rsp),%r14d + movl %r12d,%eax + movl %ebp,48(%rsp) + movl %r11d,%ecx + xorl 60(%rsp),%r14d + xorl %esi,%eax + roll $5,%ecx + xorl 20(%rsp),%r14d + leal 1859775393(%rbp,%rdi,1),%edi + xorl %r13d,%eax + addl %ecx,%edi + roll $30,%r12d + addl %eax,%edi + roll $1,%r14d + xorl 56(%rsp),%edx + movl %r11d,%eax + movl %r14d,52(%rsp) + movl %edi,%ecx + xorl 0(%rsp),%edx + xorl %r13d,%eax + roll $5,%ecx + xorl 24(%rsp),%edx + leal 1859775393(%r14,%rsi,1),%esi + xorl %r12d,%eax + addl %ecx,%esi + roll $30,%r11d + addl %eax,%esi + roll $1,%edx + xorl 60(%rsp),%ebp + movl %edi,%eax + movl %edx,56(%rsp) + movl %esi,%ecx + xorl 4(%rsp),%ebp + xorl %r12d,%eax + roll $5,%ecx + xorl 28(%rsp),%ebp + leal 1859775393(%rdx,%r13,1),%r13d + xorl %r11d,%eax + addl %ecx,%r13d + roll $30,%edi + addl %eax,%r13d + roll $1,%ebp + xorl 0(%rsp),%r14d + movl %esi,%eax + movl %ebp,60(%rsp) + movl %r13d,%ecx + xorl 8(%rsp),%r14d + xorl %r11d,%eax + roll $5,%ecx + xorl 32(%rsp),%r14d + leal 1859775393(%rbp,%r12,1),%r12d + xorl %edi,%eax + addl %ecx,%r12d + roll $30,%esi + addl %eax,%r12d + roll $1,%r14d + xorl 4(%rsp),%edx + movl %r13d,%eax + movl %r14d,0(%rsp) + movl %r12d,%ecx + xorl 12(%rsp),%edx + xorl %edi,%eax + roll $5,%ecx + xorl 36(%rsp),%edx + leal 1859775393(%r14,%r11,1),%r11d + xorl %esi,%eax + addl %ecx,%r11d + roll $30,%r13d + addl %eax,%r11d + roll $1,%edx + xorl 8(%rsp),%ebp + movl %r12d,%eax + movl %edx,4(%rsp) + movl %r11d,%ecx + xorl 16(%rsp),%ebp + xorl %esi,%eax + roll $5,%ecx + xorl 40(%rsp),%ebp + leal 1859775393(%rdx,%rdi,1),%edi + xorl %r13d,%eax + addl %ecx,%edi + roll $30,%r12d + addl %eax,%edi + roll $1,%ebp + xorl 12(%rsp),%r14d + movl %r11d,%eax + movl %ebp,8(%rsp) + movl %edi,%ecx + xorl 20(%rsp),%r14d + xorl %r13d,%eax + roll $5,%ecx + xorl 44(%rsp),%r14d + leal 1859775393(%rbp,%rsi,1),%esi + xorl %r12d,%eax + addl %ecx,%esi + roll $30,%r11d + addl %eax,%esi + roll $1,%r14d + xorl 16(%rsp),%edx + movl %edi,%eax + movl %r14d,12(%rsp) + movl %esi,%ecx + xorl 24(%rsp),%edx + xorl %r12d,%eax + roll $5,%ecx + xorl 48(%rsp),%edx + leal 1859775393(%r14,%r13,1),%r13d + xorl %r11d,%eax + addl %ecx,%r13d + roll $30,%edi + addl %eax,%r13d + roll $1,%edx + xorl 20(%rsp),%ebp + movl %esi,%eax + movl %edx,16(%rsp) + movl %r13d,%ecx + xorl 28(%rsp),%ebp + xorl %r11d,%eax + roll $5,%ecx + xorl 52(%rsp),%ebp + leal 1859775393(%rdx,%r12,1),%r12d + xorl %edi,%eax + addl %ecx,%r12d + roll $30,%esi + addl %eax,%r12d + roll $1,%ebp + xorl 24(%rsp),%r14d + movl %r13d,%eax + movl %ebp,20(%rsp) + movl %r12d,%ecx + xorl 32(%rsp),%r14d + xorl %edi,%eax + roll $5,%ecx + xorl 56(%rsp),%r14d + leal 1859775393(%rbp,%r11,1),%r11d + xorl %esi,%eax + addl %ecx,%r11d + roll $30,%r13d + addl %eax,%r11d + roll $1,%r14d + xorl 28(%rsp),%edx + movl %r12d,%eax + movl %r14d,24(%rsp) + movl %r11d,%ecx + xorl 36(%rsp),%edx + xorl %esi,%eax + roll $5,%ecx + xorl 60(%rsp),%edx + leal 1859775393(%r14,%rdi,1),%edi + xorl %r13d,%eax + addl %ecx,%edi + roll $30,%r12d + addl %eax,%edi + roll $1,%edx + xorl 32(%rsp),%ebp + movl %r11d,%eax + movl %edx,28(%rsp) + movl %edi,%ecx + xorl 40(%rsp),%ebp + xorl %r13d,%eax + roll $5,%ecx + xorl 0(%rsp),%ebp + leal 1859775393(%rdx,%rsi,1),%esi + xorl %r12d,%eax + addl %ecx,%esi + roll $30,%r11d + addl %eax,%esi + roll $1,%ebp + xorl 36(%rsp),%r14d + movl %r12d,%eax + movl %ebp,32(%rsp) + movl %r12d,%ebx + xorl 44(%rsp),%r14d + andl %r11d,%eax + movl %esi,%ecx + xorl 4(%rsp),%r14d + leal -1894007588(%rbp,%r13,1),%r13d + xorl %r11d,%ebx + roll $5,%ecx + addl %eax,%r13d + roll $1,%r14d + andl %edi,%ebx + addl %ecx,%r13d + roll $30,%edi + addl %ebx,%r13d + xorl 40(%rsp),%edx + movl %r11d,%eax + movl %r14d,36(%rsp) + movl %r11d,%ebx + xorl 48(%rsp),%edx + andl %edi,%eax + movl %r13d,%ecx + xorl 8(%rsp),%edx + leal -1894007588(%r14,%r12,1),%r12d + xorl %edi,%ebx + roll $5,%ecx + addl %eax,%r12d + roll $1,%edx + andl %esi,%ebx + addl %ecx,%r12d + roll $30,%esi + addl %ebx,%r12d + xorl 44(%rsp),%ebp + movl %edi,%eax + movl %edx,40(%rsp) + movl %edi,%ebx + xorl 52(%rsp),%ebp + andl %esi,%eax + movl %r12d,%ecx + xorl 12(%rsp),%ebp + leal -1894007588(%rdx,%r11,1),%r11d + xorl %esi,%ebx + roll $5,%ecx + addl %eax,%r11d + roll $1,%ebp + andl %r13d,%ebx + addl %ecx,%r11d + roll $30,%r13d + addl %ebx,%r11d + xorl 48(%rsp),%r14d + movl %esi,%eax + movl %ebp,44(%rsp) + movl %esi,%ebx + xorl 56(%rsp),%r14d + andl %r13d,%eax + movl %r11d,%ecx + xorl 16(%rsp),%r14d + leal -1894007588(%rbp,%rdi,1),%edi + xorl %r13d,%ebx + roll $5,%ecx + addl %eax,%edi + roll $1,%r14d + andl %r12d,%ebx + addl %ecx,%edi + roll $30,%r12d + addl %ebx,%edi + xorl 52(%rsp),%edx + movl %r13d,%eax + movl %r14d,48(%rsp) + movl %r13d,%ebx + xorl 60(%rsp),%edx + andl %r12d,%eax + movl %edi,%ecx + xorl 20(%rsp),%edx + leal -1894007588(%r14,%rsi,1),%esi + xorl %r12d,%ebx + roll $5,%ecx + addl %eax,%esi + roll $1,%edx + andl %r11d,%ebx + addl %ecx,%esi + roll $30,%r11d + addl %ebx,%esi + xorl 56(%rsp),%ebp + movl %r12d,%eax + movl %edx,52(%rsp) + movl %r12d,%ebx + xorl 0(%rsp),%ebp + andl %r11d,%eax + movl %esi,%ecx + xorl 24(%rsp),%ebp + leal -1894007588(%rdx,%r13,1),%r13d + xorl %r11d,%ebx + roll $5,%ecx + addl %eax,%r13d + roll $1,%ebp + andl %edi,%ebx + addl %ecx,%r13d + roll $30,%edi + addl %ebx,%r13d + xorl 60(%rsp),%r14d + movl %r11d,%eax + movl %ebp,56(%rsp) + movl %r11d,%ebx + xorl 4(%rsp),%r14d + andl %edi,%eax + movl %r13d,%ecx + xorl 28(%rsp),%r14d + leal -1894007588(%rbp,%r12,1),%r12d + xorl %edi,%ebx + roll $5,%ecx + addl %eax,%r12d + roll $1,%r14d + andl %esi,%ebx + addl %ecx,%r12d + roll $30,%esi + addl %ebx,%r12d + xorl 0(%rsp),%edx + movl %edi,%eax + movl %r14d,60(%rsp) + movl %edi,%ebx + xorl 8(%rsp),%edx + andl %esi,%eax + movl %r12d,%ecx + xorl 32(%rsp),%edx + leal -1894007588(%r14,%r11,1),%r11d + xorl %esi,%ebx + roll $5,%ecx + addl %eax,%r11d + roll $1,%edx + andl %r13d,%ebx + addl %ecx,%r11d + roll $30,%r13d + addl %ebx,%r11d + xorl 4(%rsp),%ebp + movl %esi,%eax + movl %edx,0(%rsp) + movl %esi,%ebx + xorl 12(%rsp),%ebp + andl %r13d,%eax + movl %r11d,%ecx + xorl 36(%rsp),%ebp + leal -1894007588(%rdx,%rdi,1),%edi + xorl %r13d,%ebx + roll $5,%ecx + addl %eax,%edi + roll $1,%ebp + andl %r12d,%ebx + addl %ecx,%edi + roll $30,%r12d + addl %ebx,%edi + xorl 8(%rsp),%r14d + movl %r13d,%eax + movl %ebp,4(%rsp) + movl %r13d,%ebx + xorl 16(%rsp),%r14d + andl %r12d,%eax + movl %edi,%ecx + xorl 40(%rsp),%r14d + leal -1894007588(%rbp,%rsi,1),%esi + xorl %r12d,%ebx + roll $5,%ecx + addl %eax,%esi + roll $1,%r14d + andl %r11d,%ebx + addl %ecx,%esi + roll $30,%r11d + addl %ebx,%esi + xorl 12(%rsp),%edx + movl %r12d,%eax + movl %r14d,8(%rsp) + movl %r12d,%ebx + xorl 20(%rsp),%edx + andl %r11d,%eax + movl %esi,%ecx + xorl 44(%rsp),%edx + leal -1894007588(%r14,%r13,1),%r13d + xorl %r11d,%ebx + roll $5,%ecx + addl %eax,%r13d + roll $1,%edx + andl %edi,%ebx + addl %ecx,%r13d + roll $30,%edi + addl %ebx,%r13d + xorl 16(%rsp),%ebp + movl %r11d,%eax + movl %edx,12(%rsp) + movl %r11d,%ebx + xorl 24(%rsp),%ebp + andl %edi,%eax + movl %r13d,%ecx + xorl 48(%rsp),%ebp + leal -1894007588(%rdx,%r12,1),%r12d + xorl %edi,%ebx + roll $5,%ecx + addl %eax,%r12d + roll $1,%ebp + andl %esi,%ebx + addl %ecx,%r12d + roll $30,%esi + addl %ebx,%r12d + xorl 20(%rsp),%r14d + movl %edi,%eax + movl %ebp,16(%rsp) + movl %edi,%ebx + xorl 28(%rsp),%r14d + andl %esi,%eax + movl %r12d,%ecx + xorl 52(%rsp),%r14d + leal -1894007588(%rbp,%r11,1),%r11d + xorl %esi,%ebx + roll $5,%ecx + addl %eax,%r11d + roll $1,%r14d + andl %r13d,%ebx + addl %ecx,%r11d + roll $30,%r13d + addl %ebx,%r11d + xorl 24(%rsp),%edx + movl %esi,%eax + movl %r14d,20(%rsp) + movl %esi,%ebx + xorl 32(%rsp),%edx + andl %r13d,%eax + movl %r11d,%ecx + xorl 56(%rsp),%edx + leal -1894007588(%r14,%rdi,1),%edi + xorl %r13d,%ebx + roll $5,%ecx + addl %eax,%edi + roll $1,%edx + andl %r12d,%ebx + addl %ecx,%edi + roll $30,%r12d + addl %ebx,%edi + xorl 28(%rsp),%ebp + movl %r13d,%eax + movl %edx,24(%rsp) + movl %r13d,%ebx + xorl 36(%rsp),%ebp + andl %r12d,%eax + movl %edi,%ecx + xorl 60(%rsp),%ebp + leal -1894007588(%rdx,%rsi,1),%esi + xorl %r12d,%ebx + roll $5,%ecx + addl %eax,%esi + roll $1,%ebp + andl %r11d,%ebx + addl %ecx,%esi + roll $30,%r11d + addl %ebx,%esi + xorl 32(%rsp),%r14d + movl %r12d,%eax + movl %ebp,28(%rsp) + movl %r12d,%ebx + xorl 40(%rsp),%r14d + andl %r11d,%eax + movl %esi,%ecx + xorl 0(%rsp),%r14d + leal -1894007588(%rbp,%r13,1),%r13d + xorl %r11d,%ebx + roll $5,%ecx + addl %eax,%r13d + roll $1,%r14d + andl %edi,%ebx + addl %ecx,%r13d + roll $30,%edi + addl %ebx,%r13d + xorl 36(%rsp),%edx + movl %r11d,%eax + movl %r14d,32(%rsp) + movl %r11d,%ebx + xorl 44(%rsp),%edx + andl %edi,%eax + movl %r13d,%ecx + xorl 4(%rsp),%edx + leal -1894007588(%r14,%r12,1),%r12d + xorl %edi,%ebx + roll $5,%ecx + addl %eax,%r12d + roll $1,%edx + andl %esi,%ebx + addl %ecx,%r12d + roll $30,%esi + addl %ebx,%r12d + xorl 40(%rsp),%ebp + movl %edi,%eax + movl %edx,36(%rsp) + movl %edi,%ebx + xorl 48(%rsp),%ebp + andl %esi,%eax + movl %r12d,%ecx + xorl 8(%rsp),%ebp + leal -1894007588(%rdx,%r11,1),%r11d + xorl %esi,%ebx + roll $5,%ecx + addl %eax,%r11d + roll $1,%ebp + andl %r13d,%ebx + addl %ecx,%r11d + roll $30,%r13d + addl %ebx,%r11d + xorl 44(%rsp),%r14d + movl %esi,%eax + movl %ebp,40(%rsp) + movl %esi,%ebx + xorl 52(%rsp),%r14d + andl %r13d,%eax + movl %r11d,%ecx + xorl 12(%rsp),%r14d + leal -1894007588(%rbp,%rdi,1),%edi + xorl %r13d,%ebx + roll $5,%ecx + addl %eax,%edi + roll $1,%r14d + andl %r12d,%ebx + addl %ecx,%edi + roll $30,%r12d + addl %ebx,%edi + xorl 48(%rsp),%edx + movl %r13d,%eax + movl %r14d,44(%rsp) + movl %r13d,%ebx + xorl 56(%rsp),%edx + andl %r12d,%eax + movl %edi,%ecx + xorl 16(%rsp),%edx + leal -1894007588(%r14,%rsi,1),%esi + xorl %r12d,%ebx + roll $5,%ecx + addl %eax,%esi + roll $1,%edx + andl %r11d,%ebx + addl %ecx,%esi + roll $30,%r11d + addl %ebx,%esi + xorl 52(%rsp),%ebp + movl %edi,%eax + movl %edx,48(%rsp) + movl %esi,%ecx + xorl 60(%rsp),%ebp + xorl %r12d,%eax + roll $5,%ecx + xorl 20(%rsp),%ebp + leal -899497514(%rdx,%r13,1),%r13d + xorl %r11d,%eax + addl %ecx,%r13d + roll $30,%edi + addl %eax,%r13d + roll $1,%ebp + xorl 56(%rsp),%r14d + movl %esi,%eax + movl %ebp,52(%rsp) + movl %r13d,%ecx + xorl 0(%rsp),%r14d + xorl %r11d,%eax + roll $5,%ecx + xorl 24(%rsp),%r14d + leal -899497514(%rbp,%r12,1),%r12d + xorl %edi,%eax + addl %ecx,%r12d + roll $30,%esi + addl %eax,%r12d + roll $1,%r14d + xorl 60(%rsp),%edx + movl %r13d,%eax + movl %r14d,56(%rsp) + movl %r12d,%ecx + xorl 4(%rsp),%edx + xorl %edi,%eax + roll $5,%ecx + xorl 28(%rsp),%edx + leal -899497514(%r14,%r11,1),%r11d + xorl %esi,%eax + addl %ecx,%r11d + roll $30,%r13d + addl %eax,%r11d + roll $1,%edx + xorl 0(%rsp),%ebp + movl %r12d,%eax + movl %edx,60(%rsp) + movl %r11d,%ecx + xorl 8(%rsp),%ebp + xorl %esi,%eax + roll $5,%ecx + xorl 32(%rsp),%ebp + leal -899497514(%rdx,%rdi,1),%edi + xorl %r13d,%eax + addl %ecx,%edi + roll $30,%r12d + addl %eax,%edi + roll $1,%ebp + xorl 4(%rsp),%r14d + movl %r11d,%eax + movl %ebp,0(%rsp) + movl %edi,%ecx + xorl 12(%rsp),%r14d + xorl %r13d,%eax + roll $5,%ecx + xorl 36(%rsp),%r14d + leal -899497514(%rbp,%rsi,1),%esi + xorl %r12d,%eax + addl %ecx,%esi + roll $30,%r11d + addl %eax,%esi + roll $1,%r14d + xorl 8(%rsp),%edx + movl %edi,%eax + movl %r14d,4(%rsp) + movl %esi,%ecx + xorl 16(%rsp),%edx + xorl %r12d,%eax + roll $5,%ecx + xorl 40(%rsp),%edx + leal -899497514(%r14,%r13,1),%r13d + xorl %r11d,%eax + addl %ecx,%r13d + roll $30,%edi + addl %eax,%r13d + roll $1,%edx + xorl 12(%rsp),%ebp + movl %esi,%eax + movl %edx,8(%rsp) + movl %r13d,%ecx + xorl 20(%rsp),%ebp + xorl %r11d,%eax + roll $5,%ecx + xorl 44(%rsp),%ebp + leal -899497514(%rdx,%r12,1),%r12d + xorl %edi,%eax + addl %ecx,%r12d + roll $30,%esi + addl %eax,%r12d + roll $1,%ebp + xorl 16(%rsp),%r14d + movl %r13d,%eax + movl %ebp,12(%rsp) + movl %r12d,%ecx + xorl 24(%rsp),%r14d + xorl %edi,%eax + roll $5,%ecx + xorl 48(%rsp),%r14d + leal -899497514(%rbp,%r11,1),%r11d + xorl %esi,%eax + addl %ecx,%r11d + roll $30,%r13d + addl %eax,%r11d + roll $1,%r14d + xorl 20(%rsp),%edx + movl %r12d,%eax + movl %r14d,16(%rsp) + movl %r11d,%ecx + xorl 28(%rsp),%edx + xorl %esi,%eax + roll $5,%ecx + xorl 52(%rsp),%edx + leal -899497514(%r14,%rdi,1),%edi + xorl %r13d,%eax + addl %ecx,%edi + roll $30,%r12d + addl %eax,%edi + roll $1,%edx + xorl 24(%rsp),%ebp + movl %r11d,%eax + movl %edx,20(%rsp) + movl %edi,%ecx + xorl 32(%rsp),%ebp + xorl %r13d,%eax + roll $5,%ecx + xorl 56(%rsp),%ebp + leal -899497514(%rdx,%rsi,1),%esi + xorl %r12d,%eax + addl %ecx,%esi + roll $30,%r11d + addl %eax,%esi + roll $1,%ebp + xorl 28(%rsp),%r14d + movl %edi,%eax + movl %ebp,24(%rsp) + movl %esi,%ecx + xorl 36(%rsp),%r14d + xorl %r12d,%eax + roll $5,%ecx + xorl 60(%rsp),%r14d + leal -899497514(%rbp,%r13,1),%r13d + xorl %r11d,%eax + addl %ecx,%r13d + roll $30,%edi + addl %eax,%r13d + roll $1,%r14d + xorl 32(%rsp),%edx + movl %esi,%eax + movl %r14d,28(%rsp) + movl %r13d,%ecx + xorl 40(%rsp),%edx + xorl %r11d,%eax + roll $5,%ecx + xorl 0(%rsp),%edx + leal -899497514(%r14,%r12,1),%r12d + xorl %edi,%eax + addl %ecx,%r12d + roll $30,%esi + addl %eax,%r12d + roll $1,%edx + xorl 36(%rsp),%ebp + movl %r13d,%eax + + movl %r12d,%ecx + xorl 44(%rsp),%ebp + xorl %edi,%eax + roll $5,%ecx + xorl 4(%rsp),%ebp + leal -899497514(%rdx,%r11,1),%r11d + xorl %esi,%eax + addl %ecx,%r11d + roll $30,%r13d + addl %eax,%r11d + roll $1,%ebp + xorl 40(%rsp),%r14d + movl %r12d,%eax + + movl %r11d,%ecx + xorl 48(%rsp),%r14d + xorl %esi,%eax + roll $5,%ecx + xorl 8(%rsp),%r14d + leal -899497514(%rbp,%rdi,1),%edi + xorl %r13d,%eax + addl %ecx,%edi + roll $30,%r12d + addl %eax,%edi + roll $1,%r14d + xorl 44(%rsp),%edx + movl %r11d,%eax + + movl %edi,%ecx + xorl 52(%rsp),%edx + xorl %r13d,%eax + roll $5,%ecx + xorl 12(%rsp),%edx + leal -899497514(%r14,%rsi,1),%esi + xorl %r12d,%eax + addl %ecx,%esi + roll $30,%r11d + addl %eax,%esi + roll $1,%edx + xorl 48(%rsp),%ebp + movl %edi,%eax + + movl %esi,%ecx + xorl 56(%rsp),%ebp + xorl %r12d,%eax + roll $5,%ecx + xorl 16(%rsp),%ebp + leal -899497514(%rdx,%r13,1),%r13d + xorl %r11d,%eax + addl %ecx,%r13d + roll $30,%edi + addl %eax,%r13d + roll $1,%ebp + xorl 52(%rsp),%r14d + movl %esi,%eax + + movl %r13d,%ecx + xorl 60(%rsp),%r14d + xorl %r11d,%eax + roll $5,%ecx + xorl 20(%rsp),%r14d + leal -899497514(%rbp,%r12,1),%r12d + xorl %edi,%eax + addl %ecx,%r12d + roll $30,%esi + addl %eax,%r12d + roll $1,%r14d + xorl 56(%rsp),%edx + movl %r13d,%eax + + movl %r12d,%ecx + xorl 0(%rsp),%edx + xorl %edi,%eax + roll $5,%ecx + xorl 24(%rsp),%edx + leal -899497514(%r14,%r11,1),%r11d + xorl %esi,%eax + addl %ecx,%r11d + roll $30,%r13d + addl %eax,%r11d + roll $1,%edx + xorl 60(%rsp),%ebp + movl %r12d,%eax + + movl %r11d,%ecx + xorl 4(%rsp),%ebp + xorl %esi,%eax + roll $5,%ecx + xorl 28(%rsp),%ebp + leal -899497514(%rdx,%rdi,1),%edi + xorl %r13d,%eax + addl %ecx,%edi + roll $30,%r12d + addl %eax,%edi + roll $1,%ebp + movl %r11d,%eax + movl %edi,%ecx + xorl %r13d,%eax + leal -899497514(%rbp,%rsi,1),%esi + roll $5,%ecx + xorl %r12d,%eax + addl %ecx,%esi + roll $30,%r11d + addl %eax,%esi + addl 0(%r8),%esi + addl 4(%r8),%edi + addl 8(%r8),%r11d + addl 12(%r8),%r12d + addl 16(%r8),%r13d + movl %esi,0(%r8) + movl %edi,4(%r8) + movl %r11d,8(%r8) + movl %r12d,12(%r8) + movl %r13d,16(%r8) + + subq $1,%r10 + leaq 64(%r9),%r9 + jnz L$loop + + movq 64(%rsp),%rsi + + movq -40(%rsi),%r14 + + movq -32(%rsi),%r13 + + movq -24(%rsi),%r12 + + movq -16(%rsi),%rbp + + movq -8(%rsi),%rbx + + leaq (%rsi),%rsp + +L$epilogue: + .byte 0xf3,0xc3 + + + +.p2align 5 +sha1_block_data_order_shaext: +_shaext_shortcut: + + movdqu (%rdi),%xmm0 + movd 16(%rdi),%xmm1 + movdqa K_XX_XX+160(%rip),%xmm3 + + movdqu (%rsi),%xmm4 + pshufd $27,%xmm0,%xmm0 + movdqu 16(%rsi),%xmm5 + pshufd $27,%xmm1,%xmm1 + movdqu 32(%rsi),%xmm6 +.byte 102,15,56,0,227 + movdqu 48(%rsi),%xmm7 +.byte 102,15,56,0,235 +.byte 102,15,56,0,243 + movdqa %xmm1,%xmm9 +.byte 102,15,56,0,251 + jmp L$oop_shaext + +.p2align 4 +L$oop_shaext: + decq %rdx + leaq 64(%rsi),%r8 + paddd %xmm4,%xmm1 + cmovneq %r8,%rsi + movdqa %xmm0,%xmm8 +.byte 15,56,201,229 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,0 +.byte 15,56,200,213 + pxor %xmm6,%xmm4 +.byte 15,56,201,238 +.byte 15,56,202,231 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,0 +.byte 15,56,200,206 + pxor %xmm7,%xmm5 +.byte 15,56,202,236 +.byte 15,56,201,247 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,0 +.byte 15,56,200,215 + pxor %xmm4,%xmm6 +.byte 15,56,201,252 +.byte 15,56,202,245 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,0 +.byte 15,56,200,204 + pxor %xmm5,%xmm7 +.byte 15,56,202,254 +.byte 15,56,201,229 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,0 +.byte 15,56,200,213 + pxor %xmm6,%xmm4 +.byte 15,56,201,238 +.byte 15,56,202,231 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,1 +.byte 15,56,200,206 + pxor %xmm7,%xmm5 +.byte 15,56,202,236 +.byte 15,56,201,247 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,1 +.byte 15,56,200,215 + pxor %xmm4,%xmm6 +.byte 15,56,201,252 +.byte 15,56,202,245 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,1 +.byte 15,56,200,204 + pxor %xmm5,%xmm7 +.byte 15,56,202,254 +.byte 15,56,201,229 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,1 +.byte 15,56,200,213 + pxor %xmm6,%xmm4 +.byte 15,56,201,238 +.byte 15,56,202,231 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,1 +.byte 15,56,200,206 + pxor %xmm7,%xmm5 +.byte 15,56,202,236 +.byte 15,56,201,247 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,2 +.byte 15,56,200,215 + pxor %xmm4,%xmm6 +.byte 15,56,201,252 +.byte 15,56,202,245 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,2 +.byte 15,56,200,204 + pxor %xmm5,%xmm7 +.byte 15,56,202,254 +.byte 15,56,201,229 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,2 +.byte 15,56,200,213 + pxor %xmm6,%xmm4 +.byte 15,56,201,238 +.byte 15,56,202,231 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,2 +.byte 15,56,200,206 + pxor %xmm7,%xmm5 +.byte 15,56,202,236 +.byte 15,56,201,247 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,2 +.byte 15,56,200,215 + pxor %xmm4,%xmm6 +.byte 15,56,201,252 +.byte 15,56,202,245 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,3 +.byte 15,56,200,204 + pxor %xmm5,%xmm7 +.byte 15,56,202,254 + movdqu (%rsi),%xmm4 + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,3 +.byte 15,56,200,213 + movdqu 16(%rsi),%xmm5 +.byte 102,15,56,0,227 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,3 +.byte 15,56,200,206 + movdqu 32(%rsi),%xmm6 +.byte 102,15,56,0,235 + + movdqa %xmm0,%xmm2 +.byte 15,58,204,193,3 +.byte 15,56,200,215 + movdqu 48(%rsi),%xmm7 +.byte 102,15,56,0,243 + + movdqa %xmm0,%xmm1 +.byte 15,58,204,194,3 +.byte 65,15,56,200,201 +.byte 102,15,56,0,251 + + paddd %xmm8,%xmm0 + movdqa %xmm1,%xmm9 + + jnz L$oop_shaext + + pshufd $27,%xmm0,%xmm0 + pshufd $27,%xmm1,%xmm1 + movdqu %xmm0,(%rdi) + movd %xmm1,16(%rdi) + .byte 0xf3,0xc3 + + + +.p2align 4 +sha1_block_data_order_ssse3: +_ssse3_shortcut: + + movq %rsp,%r11 + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + leaq -64(%rsp),%rsp + andq $-64,%rsp + movq %rdi,%r8 + movq %rsi,%r9 + movq %rdx,%r10 + + shlq $6,%r10 + addq %r9,%r10 + leaq K_XX_XX+64(%rip),%r14 + + movl 0(%r8),%eax + movl 4(%r8),%ebx + movl 8(%r8),%ecx + movl 12(%r8),%edx + movl %ebx,%esi + movl 16(%r8),%ebp + movl %ecx,%edi + xorl %edx,%edi + andl %edi,%esi + + movdqa 64(%r14),%xmm6 + movdqa -64(%r14),%xmm9 + movdqu 0(%r9),%xmm0 + movdqu 16(%r9),%xmm1 + movdqu 32(%r9),%xmm2 + movdqu 48(%r9),%xmm3 +.byte 102,15,56,0,198 +.byte 102,15,56,0,206 +.byte 102,15,56,0,214 + addq $64,%r9 + paddd %xmm9,%xmm0 +.byte 102,15,56,0,222 + paddd %xmm9,%xmm1 + paddd %xmm9,%xmm2 + movdqa %xmm0,0(%rsp) + psubd %xmm9,%xmm0 + movdqa %xmm1,16(%rsp) + psubd %xmm9,%xmm1 + movdqa %xmm2,32(%rsp) + psubd %xmm9,%xmm2 + jmp L$oop_ssse3 +.p2align 4 +L$oop_ssse3: + rorl $2,%ebx + pshufd $238,%xmm0,%xmm4 + xorl %edx,%esi + movdqa %xmm3,%xmm8 + paddd %xmm3,%xmm9 + movl %eax,%edi + addl 0(%rsp),%ebp + punpcklqdq %xmm1,%xmm4 + xorl %ecx,%ebx + roll $5,%eax + addl %esi,%ebp + psrldq $4,%xmm8 + andl %ebx,%edi + xorl %ecx,%ebx + pxor %xmm0,%xmm4 + addl %eax,%ebp + rorl $7,%eax + pxor %xmm2,%xmm8 + xorl %ecx,%edi + movl %ebp,%esi + addl 4(%rsp),%edx + pxor %xmm8,%xmm4 + xorl %ebx,%eax + roll $5,%ebp + movdqa %xmm9,48(%rsp) + addl %edi,%edx + andl %eax,%esi + movdqa %xmm4,%xmm10 + xorl %ebx,%eax + addl %ebp,%edx + rorl $7,%ebp + movdqa %xmm4,%xmm8 + xorl %ebx,%esi + pslldq $12,%xmm10 + paddd %xmm4,%xmm4 + movl %edx,%edi + addl 8(%rsp),%ecx + psrld $31,%xmm8 + xorl %eax,%ebp + roll $5,%edx + addl %esi,%ecx + movdqa %xmm10,%xmm9 + andl %ebp,%edi + xorl %eax,%ebp + psrld $30,%xmm10 + addl %edx,%ecx + rorl $7,%edx + por %xmm8,%xmm4 + xorl %eax,%edi + movl %ecx,%esi + addl 12(%rsp),%ebx + pslld $2,%xmm9 + pxor %xmm10,%xmm4 + xorl %ebp,%edx + movdqa -64(%r14),%xmm10 + roll $5,%ecx + addl %edi,%ebx + andl %edx,%esi + pxor %xmm9,%xmm4 + xorl %ebp,%edx + addl %ecx,%ebx + rorl $7,%ecx + pshufd $238,%xmm1,%xmm5 + xorl %ebp,%esi + movdqa %xmm4,%xmm9 + paddd %xmm4,%xmm10 + movl %ebx,%edi + addl 16(%rsp),%eax + punpcklqdq %xmm2,%xmm5 + xorl %edx,%ecx + roll $5,%ebx + addl %esi,%eax + psrldq $4,%xmm9 + andl %ecx,%edi + xorl %edx,%ecx + pxor %xmm1,%xmm5 + addl %ebx,%eax + rorl $7,%ebx + pxor %xmm3,%xmm9 + xorl %edx,%edi + movl %eax,%esi + addl 20(%rsp),%ebp + pxor %xmm9,%xmm5 + xorl %ecx,%ebx + roll $5,%eax + movdqa %xmm10,0(%rsp) + addl %edi,%ebp + andl %ebx,%esi + movdqa %xmm5,%xmm8 + xorl %ecx,%ebx + addl %eax,%ebp + rorl $7,%eax + movdqa %xmm5,%xmm9 + xorl %ecx,%esi + pslldq $12,%xmm8 + paddd %xmm5,%xmm5 + movl %ebp,%edi + addl 24(%rsp),%edx + psrld $31,%xmm9 + xorl %ebx,%eax + roll $5,%ebp + addl %esi,%edx + movdqa %xmm8,%xmm10 + andl %eax,%edi + xorl %ebx,%eax + psrld $30,%xmm8 + addl %ebp,%edx + rorl $7,%ebp + por %xmm9,%xmm5 + xorl %ebx,%edi + movl %edx,%esi + addl 28(%rsp),%ecx + pslld $2,%xmm10 + pxor %xmm8,%xmm5 + xorl %eax,%ebp + movdqa -32(%r14),%xmm8 + roll $5,%edx + addl %edi,%ecx + andl %ebp,%esi + pxor %xmm10,%xmm5 + xorl %eax,%ebp + addl %edx,%ecx + rorl $7,%edx + pshufd $238,%xmm2,%xmm6 + xorl %eax,%esi + movdqa %xmm5,%xmm10 + paddd %xmm5,%xmm8 + movl %ecx,%edi + addl 32(%rsp),%ebx + punpcklqdq %xmm3,%xmm6 + xorl %ebp,%edx + roll $5,%ecx + addl %esi,%ebx + psrldq $4,%xmm10 + andl %edx,%edi + xorl %ebp,%edx + pxor %xmm2,%xmm6 + addl %ecx,%ebx + rorl $7,%ecx + pxor %xmm4,%xmm10 + xorl %ebp,%edi + movl %ebx,%esi + addl 36(%rsp),%eax + pxor %xmm10,%xmm6 + xorl %edx,%ecx + roll $5,%ebx + movdqa %xmm8,16(%rsp) + addl %edi,%eax + andl %ecx,%esi + movdqa %xmm6,%xmm9 + xorl %edx,%ecx + addl %ebx,%eax + rorl $7,%ebx + movdqa %xmm6,%xmm10 + xorl %edx,%esi + pslldq $12,%xmm9 + paddd %xmm6,%xmm6 + movl %eax,%edi + addl 40(%rsp),%ebp + psrld $31,%xmm10 + xorl %ecx,%ebx + roll $5,%eax + addl %esi,%ebp + movdqa %xmm9,%xmm8 + andl %ebx,%edi + xorl %ecx,%ebx + psrld $30,%xmm9 + addl %eax,%ebp + rorl $7,%eax + por %xmm10,%xmm6 + xorl %ecx,%edi + movl %ebp,%esi + addl 44(%rsp),%edx + pslld $2,%xmm8 + pxor %xmm9,%xmm6 + xorl %ebx,%eax + movdqa -32(%r14),%xmm9 + roll $5,%ebp + addl %edi,%edx + andl %eax,%esi + pxor %xmm8,%xmm6 + xorl %ebx,%eax + addl %ebp,%edx + rorl $7,%ebp + pshufd $238,%xmm3,%xmm7 + xorl %ebx,%esi + movdqa %xmm6,%xmm8 + paddd %xmm6,%xmm9 + movl %edx,%edi + addl 48(%rsp),%ecx + punpcklqdq %xmm4,%xmm7 + xorl %eax,%ebp + roll $5,%edx + addl %esi,%ecx + psrldq $4,%xmm8 + andl %ebp,%edi + xorl %eax,%ebp + pxor %xmm3,%xmm7 + addl %edx,%ecx + rorl $7,%edx + pxor %xmm5,%xmm8 + xorl %eax,%edi + movl %ecx,%esi + addl 52(%rsp),%ebx + pxor %xmm8,%xmm7 + xorl %ebp,%edx + roll $5,%ecx + movdqa %xmm9,32(%rsp) + addl %edi,%ebx + andl %edx,%esi + movdqa %xmm7,%xmm10 + xorl %ebp,%edx + addl %ecx,%ebx + rorl $7,%ecx + movdqa %xmm7,%xmm8 + xorl %ebp,%esi + pslldq $12,%xmm10 + paddd %xmm7,%xmm7 + movl %ebx,%edi + addl 56(%rsp),%eax + psrld $31,%xmm8 + xorl %edx,%ecx + roll $5,%ebx + addl %esi,%eax + movdqa %xmm10,%xmm9 + andl %ecx,%edi + xorl %edx,%ecx + psrld $30,%xmm10 + addl %ebx,%eax + rorl $7,%ebx + por %xmm8,%xmm7 + xorl %edx,%edi + movl %eax,%esi + addl 60(%rsp),%ebp + pslld $2,%xmm9 + pxor %xmm10,%xmm7 + xorl %ecx,%ebx + movdqa -32(%r14),%xmm10 + roll $5,%eax + addl %edi,%ebp + andl %ebx,%esi + pxor %xmm9,%xmm7 + pshufd $238,%xmm6,%xmm9 + xorl %ecx,%ebx + addl %eax,%ebp + rorl $7,%eax + pxor %xmm4,%xmm0 + xorl %ecx,%esi + movl %ebp,%edi + addl 0(%rsp),%edx + punpcklqdq %xmm7,%xmm9 + xorl %ebx,%eax + roll $5,%ebp + pxor %xmm1,%xmm0 + addl %esi,%edx + andl %eax,%edi + movdqa %xmm10,%xmm8 + xorl %ebx,%eax + paddd %xmm7,%xmm10 + addl %ebp,%edx + pxor %xmm9,%xmm0 + rorl $7,%ebp + xorl %ebx,%edi + movl %edx,%esi + addl 4(%rsp),%ecx + movdqa %xmm0,%xmm9 + xorl %eax,%ebp + roll $5,%edx + movdqa %xmm10,48(%rsp) + addl %edi,%ecx + andl %ebp,%esi + xorl %eax,%ebp + pslld $2,%xmm0 + addl %edx,%ecx + rorl $7,%edx + psrld $30,%xmm9 + xorl %eax,%esi + movl %ecx,%edi + addl 8(%rsp),%ebx + por %xmm9,%xmm0 + xorl %ebp,%edx + roll $5,%ecx + pshufd $238,%xmm7,%xmm10 + addl %esi,%ebx + andl %edx,%edi + xorl %ebp,%edx + addl %ecx,%ebx + addl 12(%rsp),%eax + xorl %ebp,%edi + movl %ebx,%esi + roll $5,%ebx + addl %edi,%eax + xorl %edx,%esi + rorl $7,%ecx + addl %ebx,%eax + pxor %xmm5,%xmm1 + addl 16(%rsp),%ebp + xorl %ecx,%esi + punpcklqdq %xmm0,%xmm10 + movl %eax,%edi + roll $5,%eax + pxor %xmm2,%xmm1 + addl %esi,%ebp + xorl %ecx,%edi + movdqa %xmm8,%xmm9 + rorl $7,%ebx + paddd %xmm0,%xmm8 + addl %eax,%ebp + pxor %xmm10,%xmm1 + addl 20(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + roll $5,%ebp + movdqa %xmm1,%xmm10 + addl %edi,%edx + xorl %ebx,%esi + movdqa %xmm8,0(%rsp) + rorl $7,%eax + addl %ebp,%edx + addl 24(%rsp),%ecx + pslld $2,%xmm1 + xorl %eax,%esi + movl %edx,%edi + psrld $30,%xmm10 + roll $5,%edx + addl %esi,%ecx + xorl %eax,%edi + rorl $7,%ebp + por %xmm10,%xmm1 + addl %edx,%ecx + addl 28(%rsp),%ebx + pshufd $238,%xmm0,%xmm8 + xorl %ebp,%edi + movl %ecx,%esi + roll $5,%ecx + addl %edi,%ebx + xorl %ebp,%esi + rorl $7,%edx + addl %ecx,%ebx + pxor %xmm6,%xmm2 + addl 32(%rsp),%eax + xorl %edx,%esi + punpcklqdq %xmm1,%xmm8 + movl %ebx,%edi + roll $5,%ebx + pxor %xmm3,%xmm2 + addl %esi,%eax + xorl %edx,%edi + movdqa 0(%r14),%xmm10 + rorl $7,%ecx + paddd %xmm1,%xmm9 + addl %ebx,%eax + pxor %xmm8,%xmm2 + addl 36(%rsp),%ebp + xorl %ecx,%edi + movl %eax,%esi + roll $5,%eax + movdqa %xmm2,%xmm8 + addl %edi,%ebp + xorl %ecx,%esi + movdqa %xmm9,16(%rsp) + rorl $7,%ebx + addl %eax,%ebp + addl 40(%rsp),%edx + pslld $2,%xmm2 + xorl %ebx,%esi + movl %ebp,%edi + psrld $30,%xmm8 + roll $5,%ebp + addl %esi,%edx + xorl %ebx,%edi + rorl $7,%eax + por %xmm8,%xmm2 + addl %ebp,%edx + addl 44(%rsp),%ecx + pshufd $238,%xmm1,%xmm9 + xorl %eax,%edi + movl %edx,%esi + roll $5,%edx + addl %edi,%ecx + xorl %eax,%esi + rorl $7,%ebp + addl %edx,%ecx + pxor %xmm7,%xmm3 + addl 48(%rsp),%ebx + xorl %ebp,%esi + punpcklqdq %xmm2,%xmm9 + movl %ecx,%edi + roll $5,%ecx + pxor %xmm4,%xmm3 + addl %esi,%ebx + xorl %ebp,%edi + movdqa %xmm10,%xmm8 + rorl $7,%edx + paddd %xmm2,%xmm10 + addl %ecx,%ebx + pxor %xmm9,%xmm3 + addl 52(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + roll $5,%ebx + movdqa %xmm3,%xmm9 + addl %edi,%eax + xorl %edx,%esi + movdqa %xmm10,32(%rsp) + rorl $7,%ecx + addl %ebx,%eax + addl 56(%rsp),%ebp + pslld $2,%xmm3 + xorl %ecx,%esi + movl %eax,%edi + psrld $30,%xmm9 + roll $5,%eax + addl %esi,%ebp + xorl %ecx,%edi + rorl $7,%ebx + por %xmm9,%xmm3 + addl %eax,%ebp + addl 60(%rsp),%edx + pshufd $238,%xmm2,%xmm10 + xorl %ebx,%edi + movl %ebp,%esi + roll $5,%ebp + addl %edi,%edx + xorl %ebx,%esi + rorl $7,%eax + addl %ebp,%edx + pxor %xmm0,%xmm4 + addl 0(%rsp),%ecx + xorl %eax,%esi + punpcklqdq %xmm3,%xmm10 + movl %edx,%edi + roll $5,%edx + pxor %xmm5,%xmm4 + addl %esi,%ecx + xorl %eax,%edi + movdqa %xmm8,%xmm9 + rorl $7,%ebp + paddd %xmm3,%xmm8 + addl %edx,%ecx + pxor %xmm10,%xmm4 + addl 4(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + roll $5,%ecx + movdqa %xmm4,%xmm10 + addl %edi,%ebx + xorl %ebp,%esi + movdqa %xmm8,48(%rsp) + rorl $7,%edx + addl %ecx,%ebx + addl 8(%rsp),%eax + pslld $2,%xmm4 + xorl %edx,%esi + movl %ebx,%edi + psrld $30,%xmm10 + roll $5,%ebx + addl %esi,%eax + xorl %edx,%edi + rorl $7,%ecx + por %xmm10,%xmm4 + addl %ebx,%eax + addl 12(%rsp),%ebp + pshufd $238,%xmm3,%xmm8 + xorl %ecx,%edi + movl %eax,%esi + roll $5,%eax + addl %edi,%ebp + xorl %ecx,%esi + rorl $7,%ebx + addl %eax,%ebp + pxor %xmm1,%xmm5 + addl 16(%rsp),%edx + xorl %ebx,%esi + punpcklqdq %xmm4,%xmm8 + movl %ebp,%edi + roll $5,%ebp + pxor %xmm6,%xmm5 + addl %esi,%edx + xorl %ebx,%edi + movdqa %xmm9,%xmm10 + rorl $7,%eax + paddd %xmm4,%xmm9 + addl %ebp,%edx + pxor %xmm8,%xmm5 + addl 20(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + roll $5,%edx + movdqa %xmm5,%xmm8 + addl %edi,%ecx + xorl %eax,%esi + movdqa %xmm9,0(%rsp) + rorl $7,%ebp + addl %edx,%ecx + addl 24(%rsp),%ebx + pslld $2,%xmm5 + xorl %ebp,%esi + movl %ecx,%edi + psrld $30,%xmm8 + roll $5,%ecx + addl %esi,%ebx + xorl %ebp,%edi + rorl $7,%edx + por %xmm8,%xmm5 + addl %ecx,%ebx + addl 28(%rsp),%eax + pshufd $238,%xmm4,%xmm9 + rorl $7,%ecx + movl %ebx,%esi + xorl %edx,%edi + roll $5,%ebx + addl %edi,%eax + xorl %ecx,%esi + xorl %edx,%ecx + addl %ebx,%eax + pxor %xmm2,%xmm6 + addl 32(%rsp),%ebp + andl %ecx,%esi + xorl %edx,%ecx + rorl $7,%ebx + punpcklqdq %xmm5,%xmm9 + movl %eax,%edi + xorl %ecx,%esi + pxor %xmm7,%xmm6 + roll $5,%eax + addl %esi,%ebp + movdqa %xmm10,%xmm8 + xorl %ebx,%edi + paddd %xmm5,%xmm10 + xorl %ecx,%ebx + pxor %xmm9,%xmm6 + addl %eax,%ebp + addl 36(%rsp),%edx + andl %ebx,%edi + xorl %ecx,%ebx + rorl $7,%eax + movdqa %xmm6,%xmm9 + movl %ebp,%esi + xorl %ebx,%edi + movdqa %xmm10,16(%rsp) + roll $5,%ebp + addl %edi,%edx + xorl %eax,%esi + pslld $2,%xmm6 + xorl %ebx,%eax + addl %ebp,%edx + psrld $30,%xmm9 + addl 40(%rsp),%ecx + andl %eax,%esi + xorl %ebx,%eax + por %xmm9,%xmm6 + rorl $7,%ebp + movl %edx,%edi + xorl %eax,%esi + roll $5,%edx + pshufd $238,%xmm5,%xmm10 + addl %esi,%ecx + xorl %ebp,%edi + xorl %eax,%ebp + addl %edx,%ecx + addl 44(%rsp),%ebx + andl %ebp,%edi + xorl %eax,%ebp + rorl $7,%edx + movl %ecx,%esi + xorl %ebp,%edi + roll $5,%ecx + addl %edi,%ebx + xorl %edx,%esi + xorl %ebp,%edx + addl %ecx,%ebx + pxor %xmm3,%xmm7 + addl 48(%rsp),%eax + andl %edx,%esi + xorl %ebp,%edx + rorl $7,%ecx + punpcklqdq %xmm6,%xmm10 + movl %ebx,%edi + xorl %edx,%esi + pxor %xmm0,%xmm7 + roll $5,%ebx + addl %esi,%eax + movdqa 32(%r14),%xmm9 + xorl %ecx,%edi + paddd %xmm6,%xmm8 + xorl %edx,%ecx + pxor %xmm10,%xmm7 + addl %ebx,%eax + addl 52(%rsp),%ebp + andl %ecx,%edi + xorl %edx,%ecx + rorl $7,%ebx + movdqa %xmm7,%xmm10 + movl %eax,%esi + xorl %ecx,%edi + movdqa %xmm8,32(%rsp) + roll $5,%eax + addl %edi,%ebp + xorl %ebx,%esi + pslld $2,%xmm7 + xorl %ecx,%ebx + addl %eax,%ebp + psrld $30,%xmm10 + addl 56(%rsp),%edx + andl %ebx,%esi + xorl %ecx,%ebx + por %xmm10,%xmm7 + rorl $7,%eax + movl %ebp,%edi + xorl %ebx,%esi + roll $5,%ebp + pshufd $238,%xmm6,%xmm8 + addl %esi,%edx + xorl %eax,%edi + xorl %ebx,%eax + addl %ebp,%edx + addl 60(%rsp),%ecx + andl %eax,%edi + xorl %ebx,%eax + rorl $7,%ebp + movl %edx,%esi + xorl %eax,%edi + roll $5,%edx + addl %edi,%ecx + xorl %ebp,%esi + xorl %eax,%ebp + addl %edx,%ecx + pxor %xmm4,%xmm0 + addl 0(%rsp),%ebx + andl %ebp,%esi + xorl %eax,%ebp + rorl $7,%edx + punpcklqdq %xmm7,%xmm8 + movl %ecx,%edi + xorl %ebp,%esi + pxor %xmm1,%xmm0 + roll $5,%ecx + addl %esi,%ebx + movdqa %xmm9,%xmm10 + xorl %edx,%edi + paddd %xmm7,%xmm9 + xorl %ebp,%edx + pxor %xmm8,%xmm0 + addl %ecx,%ebx + addl 4(%rsp),%eax + andl %edx,%edi + xorl %ebp,%edx + rorl $7,%ecx + movdqa %xmm0,%xmm8 + movl %ebx,%esi + xorl %edx,%edi + movdqa %xmm9,48(%rsp) + roll $5,%ebx + addl %edi,%eax + xorl %ecx,%esi + pslld $2,%xmm0 + xorl %edx,%ecx + addl %ebx,%eax + psrld $30,%xmm8 + addl 8(%rsp),%ebp + andl %ecx,%esi + xorl %edx,%ecx + por %xmm8,%xmm0 + rorl $7,%ebx + movl %eax,%edi + xorl %ecx,%esi + roll $5,%eax + pshufd $238,%xmm7,%xmm9 + addl %esi,%ebp + xorl %ebx,%edi + xorl %ecx,%ebx + addl %eax,%ebp + addl 12(%rsp),%edx + andl %ebx,%edi + xorl %ecx,%ebx + rorl $7,%eax + movl %ebp,%esi + xorl %ebx,%edi + roll $5,%ebp + addl %edi,%edx + xorl %eax,%esi + xorl %ebx,%eax + addl %ebp,%edx + pxor %xmm5,%xmm1 + addl 16(%rsp),%ecx + andl %eax,%esi + xorl %ebx,%eax + rorl $7,%ebp + punpcklqdq %xmm0,%xmm9 + movl %edx,%edi + xorl %eax,%esi + pxor %xmm2,%xmm1 + roll $5,%edx + addl %esi,%ecx + movdqa %xmm10,%xmm8 + xorl %ebp,%edi + paddd %xmm0,%xmm10 + xorl %eax,%ebp + pxor %xmm9,%xmm1 + addl %edx,%ecx + addl 20(%rsp),%ebx + andl %ebp,%edi + xorl %eax,%ebp + rorl $7,%edx + movdqa %xmm1,%xmm9 + movl %ecx,%esi + xorl %ebp,%edi + movdqa %xmm10,0(%rsp) + roll $5,%ecx + addl %edi,%ebx + xorl %edx,%esi + pslld $2,%xmm1 + xorl %ebp,%edx + addl %ecx,%ebx + psrld $30,%xmm9 + addl 24(%rsp),%eax + andl %edx,%esi + xorl %ebp,%edx + por %xmm9,%xmm1 + rorl $7,%ecx + movl %ebx,%edi + xorl %edx,%esi + roll $5,%ebx + pshufd $238,%xmm0,%xmm10 + addl %esi,%eax + xorl %ecx,%edi + xorl %edx,%ecx + addl %ebx,%eax + addl 28(%rsp),%ebp + andl %ecx,%edi + xorl %edx,%ecx + rorl $7,%ebx + movl %eax,%esi + xorl %ecx,%edi + roll $5,%eax + addl %edi,%ebp + xorl %ebx,%esi + xorl %ecx,%ebx + addl %eax,%ebp + pxor %xmm6,%xmm2 + addl 32(%rsp),%edx + andl %ebx,%esi + xorl %ecx,%ebx + rorl $7,%eax + punpcklqdq %xmm1,%xmm10 + movl %ebp,%edi + xorl %ebx,%esi + pxor %xmm3,%xmm2 + roll $5,%ebp + addl %esi,%edx + movdqa %xmm8,%xmm9 + xorl %eax,%edi + paddd %xmm1,%xmm8 + xorl %ebx,%eax + pxor %xmm10,%xmm2 + addl %ebp,%edx + addl 36(%rsp),%ecx + andl %eax,%edi + xorl %ebx,%eax + rorl $7,%ebp + movdqa %xmm2,%xmm10 + movl %edx,%esi + xorl %eax,%edi + movdqa %xmm8,16(%rsp) + roll $5,%edx + addl %edi,%ecx + xorl %ebp,%esi + pslld $2,%xmm2 + xorl %eax,%ebp + addl %edx,%ecx + psrld $30,%xmm10 + addl 40(%rsp),%ebx + andl %ebp,%esi + xorl %eax,%ebp + por %xmm10,%xmm2 + rorl $7,%edx + movl %ecx,%edi + xorl %ebp,%esi + roll $5,%ecx + pshufd $238,%xmm1,%xmm8 + addl %esi,%ebx + xorl %edx,%edi + xorl %ebp,%edx + addl %ecx,%ebx + addl 44(%rsp),%eax + andl %edx,%edi + xorl %ebp,%edx + rorl $7,%ecx + movl %ebx,%esi + xorl %edx,%edi + roll $5,%ebx + addl %edi,%eax + xorl %edx,%esi + addl %ebx,%eax + pxor %xmm7,%xmm3 + addl 48(%rsp),%ebp + xorl %ecx,%esi + punpcklqdq %xmm2,%xmm8 + movl %eax,%edi + roll $5,%eax + pxor %xmm4,%xmm3 + addl %esi,%ebp + xorl %ecx,%edi + movdqa %xmm9,%xmm10 + rorl $7,%ebx + paddd %xmm2,%xmm9 + addl %eax,%ebp + pxor %xmm8,%xmm3 + addl 52(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + roll $5,%ebp + movdqa %xmm3,%xmm8 + addl %edi,%edx + xorl %ebx,%esi + movdqa %xmm9,32(%rsp) + rorl $7,%eax + addl %ebp,%edx + addl 56(%rsp),%ecx + pslld $2,%xmm3 + xorl %eax,%esi + movl %edx,%edi + psrld $30,%xmm8 + roll $5,%edx + addl %esi,%ecx + xorl %eax,%edi + rorl $7,%ebp + por %xmm8,%xmm3 + addl %edx,%ecx + addl 60(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + roll $5,%ecx + addl %edi,%ebx + xorl %ebp,%esi + rorl $7,%edx + addl %ecx,%ebx + addl 0(%rsp),%eax + xorl %edx,%esi + movl %ebx,%edi + roll $5,%ebx + paddd %xmm3,%xmm10 + addl %esi,%eax + xorl %edx,%edi + movdqa %xmm10,48(%rsp) + rorl $7,%ecx + addl %ebx,%eax + addl 4(%rsp),%ebp + xorl %ecx,%edi + movl %eax,%esi + roll $5,%eax + addl %edi,%ebp + xorl %ecx,%esi + rorl $7,%ebx + addl %eax,%ebp + addl 8(%rsp),%edx + xorl %ebx,%esi + movl %ebp,%edi + roll $5,%ebp + addl %esi,%edx + xorl %ebx,%edi + rorl $7,%eax + addl %ebp,%edx + addl 12(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + roll $5,%edx + addl %edi,%ecx + xorl %eax,%esi + rorl $7,%ebp + addl %edx,%ecx + cmpq %r10,%r9 + je L$done_ssse3 + movdqa 64(%r14),%xmm6 + movdqa -64(%r14),%xmm9 + movdqu 0(%r9),%xmm0 + movdqu 16(%r9),%xmm1 + movdqu 32(%r9),%xmm2 + movdqu 48(%r9),%xmm3 +.byte 102,15,56,0,198 + addq $64,%r9 + addl 16(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi +.byte 102,15,56,0,206 + roll $5,%ecx + addl %esi,%ebx + xorl %ebp,%edi + rorl $7,%edx + paddd %xmm9,%xmm0 + addl %ecx,%ebx + addl 20(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + movdqa %xmm0,0(%rsp) + roll $5,%ebx + addl %edi,%eax + xorl %edx,%esi + rorl $7,%ecx + psubd %xmm9,%xmm0 + addl %ebx,%eax + addl 24(%rsp),%ebp + xorl %ecx,%esi + movl %eax,%edi + roll $5,%eax + addl %esi,%ebp + xorl %ecx,%edi + rorl $7,%ebx + addl %eax,%ebp + addl 28(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + roll $5,%ebp + addl %edi,%edx + xorl %ebx,%esi + rorl $7,%eax + addl %ebp,%edx + addl 32(%rsp),%ecx + xorl %eax,%esi + movl %edx,%edi +.byte 102,15,56,0,214 + roll $5,%edx + addl %esi,%ecx + xorl %eax,%edi + rorl $7,%ebp + paddd %xmm9,%xmm1 + addl %edx,%ecx + addl 36(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + movdqa %xmm1,16(%rsp) + roll $5,%ecx + addl %edi,%ebx + xorl %ebp,%esi + rorl $7,%edx + psubd %xmm9,%xmm1 + addl %ecx,%ebx + addl 40(%rsp),%eax + xorl %edx,%esi + movl %ebx,%edi + roll $5,%ebx + addl %esi,%eax + xorl %edx,%edi + rorl $7,%ecx + addl %ebx,%eax + addl 44(%rsp),%ebp + xorl %ecx,%edi + movl %eax,%esi + roll $5,%eax + addl %edi,%ebp + xorl %ecx,%esi + rorl $7,%ebx + addl %eax,%ebp + addl 48(%rsp),%edx + xorl %ebx,%esi + movl %ebp,%edi +.byte 102,15,56,0,222 + roll $5,%ebp + addl %esi,%edx + xorl %ebx,%edi + rorl $7,%eax + paddd %xmm9,%xmm2 + addl %ebp,%edx + addl 52(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + movdqa %xmm2,32(%rsp) + roll $5,%edx + addl %edi,%ecx + xorl %eax,%esi + rorl $7,%ebp + psubd %xmm9,%xmm2 + addl %edx,%ecx + addl 56(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi + roll $5,%ecx + addl %esi,%ebx + xorl %ebp,%edi + rorl $7,%edx + addl %ecx,%ebx + addl 60(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + roll $5,%ebx + addl %edi,%eax + rorl $7,%ecx + addl %ebx,%eax + addl 0(%r8),%eax + addl 4(%r8),%esi + addl 8(%r8),%ecx + addl 12(%r8),%edx + movl %eax,0(%r8) + addl 16(%r8),%ebp + movl %esi,4(%r8) + movl %esi,%ebx + movl %ecx,8(%r8) + movl %ecx,%edi + movl %edx,12(%r8) + xorl %edx,%edi + movl %ebp,16(%r8) + andl %edi,%esi + jmp L$oop_ssse3 + +.p2align 4 +L$done_ssse3: + addl 16(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi + roll $5,%ecx + addl %esi,%ebx + xorl %ebp,%edi + rorl $7,%edx + addl %ecx,%ebx + addl 20(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + roll $5,%ebx + addl %edi,%eax + xorl %edx,%esi + rorl $7,%ecx + addl %ebx,%eax + addl 24(%rsp),%ebp + xorl %ecx,%esi + movl %eax,%edi + roll $5,%eax + addl %esi,%ebp + xorl %ecx,%edi + rorl $7,%ebx + addl %eax,%ebp + addl 28(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + roll $5,%ebp + addl %edi,%edx + xorl %ebx,%esi + rorl $7,%eax + addl %ebp,%edx + addl 32(%rsp),%ecx + xorl %eax,%esi + movl %edx,%edi + roll $5,%edx + addl %esi,%ecx + xorl %eax,%edi + rorl $7,%ebp + addl %edx,%ecx + addl 36(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + roll $5,%ecx + addl %edi,%ebx + xorl %ebp,%esi + rorl $7,%edx + addl %ecx,%ebx + addl 40(%rsp),%eax + xorl %edx,%esi + movl %ebx,%edi + roll $5,%ebx + addl %esi,%eax + xorl %edx,%edi + rorl $7,%ecx + addl %ebx,%eax + addl 44(%rsp),%ebp + xorl %ecx,%edi + movl %eax,%esi + roll $5,%eax + addl %edi,%ebp + xorl %ecx,%esi + rorl $7,%ebx + addl %eax,%ebp + addl 48(%rsp),%edx + xorl %ebx,%esi + movl %ebp,%edi + roll $5,%ebp + addl %esi,%edx + xorl %ebx,%edi + rorl $7,%eax + addl %ebp,%edx + addl 52(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + roll $5,%edx + addl %edi,%ecx + xorl %eax,%esi + rorl $7,%ebp + addl %edx,%ecx + addl 56(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi + roll $5,%ecx + addl %esi,%ebx + xorl %ebp,%edi + rorl $7,%edx + addl %ecx,%ebx + addl 60(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + roll $5,%ebx + addl %edi,%eax + rorl $7,%ecx + addl %ebx,%eax + addl 0(%r8),%eax + addl 4(%r8),%esi + addl 8(%r8),%ecx + movl %eax,0(%r8) + addl 12(%r8),%edx + movl %esi,4(%r8) + addl 16(%r8),%ebp + movl %ecx,8(%r8) + movl %edx,12(%r8) + movl %ebp,16(%r8) + movq -40(%r11),%r14 + + movq -32(%r11),%r13 + + movq -24(%r11),%r12 + + movq -16(%r11),%rbp + + movq -8(%r11),%rbx + + leaq (%r11),%rsp + +L$epilogue_ssse3: + .byte 0xf3,0xc3 + + + +.p2align 4 +sha1_block_data_order_avx: +_avx_shortcut: + + movq %rsp,%r11 + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + leaq -64(%rsp),%rsp + vzeroupper + andq $-64,%rsp + movq %rdi,%r8 + movq %rsi,%r9 + movq %rdx,%r10 + + shlq $6,%r10 + addq %r9,%r10 + leaq K_XX_XX+64(%rip),%r14 + + movl 0(%r8),%eax + movl 4(%r8),%ebx + movl 8(%r8),%ecx + movl 12(%r8),%edx + movl %ebx,%esi + movl 16(%r8),%ebp + movl %ecx,%edi + xorl %edx,%edi + andl %edi,%esi + + vmovdqa 64(%r14),%xmm6 + vmovdqa -64(%r14),%xmm11 + vmovdqu 0(%r9),%xmm0 + vmovdqu 16(%r9),%xmm1 + vmovdqu 32(%r9),%xmm2 + vmovdqu 48(%r9),%xmm3 + vpshufb %xmm6,%xmm0,%xmm0 + addq $64,%r9 + vpshufb %xmm6,%xmm1,%xmm1 + vpshufb %xmm6,%xmm2,%xmm2 + vpshufb %xmm6,%xmm3,%xmm3 + vpaddd %xmm11,%xmm0,%xmm4 + vpaddd %xmm11,%xmm1,%xmm5 + vpaddd %xmm11,%xmm2,%xmm6 + vmovdqa %xmm4,0(%rsp) + vmovdqa %xmm5,16(%rsp) + vmovdqa %xmm6,32(%rsp) + jmp L$oop_avx +.p2align 4 +L$oop_avx: + shrdl $2,%ebx,%ebx + xorl %edx,%esi + vpalignr $8,%xmm0,%xmm1,%xmm4 + movl %eax,%edi + addl 0(%rsp),%ebp + vpaddd %xmm3,%xmm11,%xmm9 + xorl %ecx,%ebx + shldl $5,%eax,%eax + vpsrldq $4,%xmm3,%xmm8 + addl %esi,%ebp + andl %ebx,%edi + vpxor %xmm0,%xmm4,%xmm4 + xorl %ecx,%ebx + addl %eax,%ebp + vpxor %xmm2,%xmm8,%xmm8 + shrdl $7,%eax,%eax + xorl %ecx,%edi + movl %ebp,%esi + addl 4(%rsp),%edx + vpxor %xmm8,%xmm4,%xmm4 + xorl %ebx,%eax + shldl $5,%ebp,%ebp + vmovdqa %xmm9,48(%rsp) + addl %edi,%edx + andl %eax,%esi + vpsrld $31,%xmm4,%xmm8 + xorl %ebx,%eax + addl %ebp,%edx + shrdl $7,%ebp,%ebp + xorl %ebx,%esi + vpslldq $12,%xmm4,%xmm10 + vpaddd %xmm4,%xmm4,%xmm4 + movl %edx,%edi + addl 8(%rsp),%ecx + xorl %eax,%ebp + shldl $5,%edx,%edx + vpsrld $30,%xmm10,%xmm9 + vpor %xmm8,%xmm4,%xmm4 + addl %esi,%ecx + andl %ebp,%edi + xorl %eax,%ebp + addl %edx,%ecx + vpslld $2,%xmm10,%xmm10 + vpxor %xmm9,%xmm4,%xmm4 + shrdl $7,%edx,%edx + xorl %eax,%edi + movl %ecx,%esi + addl 12(%rsp),%ebx + vpxor %xmm10,%xmm4,%xmm4 + xorl %ebp,%edx + shldl $5,%ecx,%ecx + addl %edi,%ebx + andl %edx,%esi + xorl %ebp,%edx + addl %ecx,%ebx + shrdl $7,%ecx,%ecx + xorl %ebp,%esi + vpalignr $8,%xmm1,%xmm2,%xmm5 + movl %ebx,%edi + addl 16(%rsp),%eax + vpaddd %xmm4,%xmm11,%xmm9 + xorl %edx,%ecx + shldl $5,%ebx,%ebx + vpsrldq $4,%xmm4,%xmm8 + addl %esi,%eax + andl %ecx,%edi + vpxor %xmm1,%xmm5,%xmm5 + xorl %edx,%ecx + addl %ebx,%eax + vpxor %xmm3,%xmm8,%xmm8 + shrdl $7,%ebx,%ebx + xorl %edx,%edi + movl %eax,%esi + addl 20(%rsp),%ebp + vpxor %xmm8,%xmm5,%xmm5 + xorl %ecx,%ebx + shldl $5,%eax,%eax + vmovdqa %xmm9,0(%rsp) + addl %edi,%ebp + andl %ebx,%esi + vpsrld $31,%xmm5,%xmm8 + xorl %ecx,%ebx + addl %eax,%ebp + shrdl $7,%eax,%eax + xorl %ecx,%esi + vpslldq $12,%xmm5,%xmm10 + vpaddd %xmm5,%xmm5,%xmm5 + movl %ebp,%edi + addl 24(%rsp),%edx + xorl %ebx,%eax + shldl $5,%ebp,%ebp + vpsrld $30,%xmm10,%xmm9 + vpor %xmm8,%xmm5,%xmm5 + addl %esi,%edx + andl %eax,%edi + xorl %ebx,%eax + addl %ebp,%edx + vpslld $2,%xmm10,%xmm10 + vpxor %xmm9,%xmm5,%xmm5 + shrdl $7,%ebp,%ebp + xorl %ebx,%edi + movl %edx,%esi + addl 28(%rsp),%ecx + vpxor %xmm10,%xmm5,%xmm5 + xorl %eax,%ebp + shldl $5,%edx,%edx + vmovdqa -32(%r14),%xmm11 + addl %edi,%ecx + andl %ebp,%esi + xorl %eax,%ebp + addl %edx,%ecx + shrdl $7,%edx,%edx + xorl %eax,%esi + vpalignr $8,%xmm2,%xmm3,%xmm6 + movl %ecx,%edi + addl 32(%rsp),%ebx + vpaddd %xmm5,%xmm11,%xmm9 + xorl %ebp,%edx + shldl $5,%ecx,%ecx + vpsrldq $4,%xmm5,%xmm8 + addl %esi,%ebx + andl %edx,%edi + vpxor %xmm2,%xmm6,%xmm6 + xorl %ebp,%edx + addl %ecx,%ebx + vpxor %xmm4,%xmm8,%xmm8 + shrdl $7,%ecx,%ecx + xorl %ebp,%edi + movl %ebx,%esi + addl 36(%rsp),%eax + vpxor %xmm8,%xmm6,%xmm6 + xorl %edx,%ecx + shldl $5,%ebx,%ebx + vmovdqa %xmm9,16(%rsp) + addl %edi,%eax + andl %ecx,%esi + vpsrld $31,%xmm6,%xmm8 + xorl %edx,%ecx + addl %ebx,%eax + shrdl $7,%ebx,%ebx + xorl %edx,%esi + vpslldq $12,%xmm6,%xmm10 + vpaddd %xmm6,%xmm6,%xmm6 + movl %eax,%edi + addl 40(%rsp),%ebp + xorl %ecx,%ebx + shldl $5,%eax,%eax + vpsrld $30,%xmm10,%xmm9 + vpor %xmm8,%xmm6,%xmm6 + addl %esi,%ebp + andl %ebx,%edi + xorl %ecx,%ebx + addl %eax,%ebp + vpslld $2,%xmm10,%xmm10 + vpxor %xmm9,%xmm6,%xmm6 + shrdl $7,%eax,%eax + xorl %ecx,%edi + movl %ebp,%esi + addl 44(%rsp),%edx + vpxor %xmm10,%xmm6,%xmm6 + xorl %ebx,%eax + shldl $5,%ebp,%ebp + addl %edi,%edx + andl %eax,%esi + xorl %ebx,%eax + addl %ebp,%edx + shrdl $7,%ebp,%ebp + xorl %ebx,%esi + vpalignr $8,%xmm3,%xmm4,%xmm7 + movl %edx,%edi + addl 48(%rsp),%ecx + vpaddd %xmm6,%xmm11,%xmm9 + xorl %eax,%ebp + shldl $5,%edx,%edx + vpsrldq $4,%xmm6,%xmm8 + addl %esi,%ecx + andl %ebp,%edi + vpxor %xmm3,%xmm7,%xmm7 + xorl %eax,%ebp + addl %edx,%ecx + vpxor %xmm5,%xmm8,%xmm8 + shrdl $7,%edx,%edx + xorl %eax,%edi + movl %ecx,%esi + addl 52(%rsp),%ebx + vpxor %xmm8,%xmm7,%xmm7 + xorl %ebp,%edx + shldl $5,%ecx,%ecx + vmovdqa %xmm9,32(%rsp) + addl %edi,%ebx + andl %edx,%esi + vpsrld $31,%xmm7,%xmm8 + xorl %ebp,%edx + addl %ecx,%ebx + shrdl $7,%ecx,%ecx + xorl %ebp,%esi + vpslldq $12,%xmm7,%xmm10 + vpaddd %xmm7,%xmm7,%xmm7 + movl %ebx,%edi + addl 56(%rsp),%eax + xorl %edx,%ecx + shldl $5,%ebx,%ebx + vpsrld $30,%xmm10,%xmm9 + vpor %xmm8,%xmm7,%xmm7 + addl %esi,%eax + andl %ecx,%edi + xorl %edx,%ecx + addl %ebx,%eax + vpslld $2,%xmm10,%xmm10 + vpxor %xmm9,%xmm7,%xmm7 + shrdl $7,%ebx,%ebx + xorl %edx,%edi + movl %eax,%esi + addl 60(%rsp),%ebp + vpxor %xmm10,%xmm7,%xmm7 + xorl %ecx,%ebx + shldl $5,%eax,%eax + addl %edi,%ebp + andl %ebx,%esi + xorl %ecx,%ebx + addl %eax,%ebp + vpalignr $8,%xmm6,%xmm7,%xmm8 + vpxor %xmm4,%xmm0,%xmm0 + shrdl $7,%eax,%eax + xorl %ecx,%esi + movl %ebp,%edi + addl 0(%rsp),%edx + vpxor %xmm1,%xmm0,%xmm0 + xorl %ebx,%eax + shldl $5,%ebp,%ebp + vpaddd %xmm7,%xmm11,%xmm9 + addl %esi,%edx + andl %eax,%edi + vpxor %xmm8,%xmm0,%xmm0 + xorl %ebx,%eax + addl %ebp,%edx + shrdl $7,%ebp,%ebp + xorl %ebx,%edi + vpsrld $30,%xmm0,%xmm8 + vmovdqa %xmm9,48(%rsp) + movl %edx,%esi + addl 4(%rsp),%ecx + xorl %eax,%ebp + shldl $5,%edx,%edx + vpslld $2,%xmm0,%xmm0 + addl %edi,%ecx + andl %ebp,%esi + xorl %eax,%ebp + addl %edx,%ecx + shrdl $7,%edx,%edx + xorl %eax,%esi + movl %ecx,%edi + addl 8(%rsp),%ebx + vpor %xmm8,%xmm0,%xmm0 + xorl %ebp,%edx + shldl $5,%ecx,%ecx + addl %esi,%ebx + andl %edx,%edi + xorl %ebp,%edx + addl %ecx,%ebx + addl 12(%rsp),%eax + xorl %ebp,%edi + movl %ebx,%esi + shldl $5,%ebx,%ebx + addl %edi,%eax + xorl %edx,%esi + shrdl $7,%ecx,%ecx + addl %ebx,%eax + vpalignr $8,%xmm7,%xmm0,%xmm8 + vpxor %xmm5,%xmm1,%xmm1 + addl 16(%rsp),%ebp + xorl %ecx,%esi + movl %eax,%edi + shldl $5,%eax,%eax + vpxor %xmm2,%xmm1,%xmm1 + addl %esi,%ebp + xorl %ecx,%edi + vpaddd %xmm0,%xmm11,%xmm9 + shrdl $7,%ebx,%ebx + addl %eax,%ebp + vpxor %xmm8,%xmm1,%xmm1 + addl 20(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + shldl $5,%ebp,%ebp + vpsrld $30,%xmm1,%xmm8 + vmovdqa %xmm9,0(%rsp) + addl %edi,%edx + xorl %ebx,%esi + shrdl $7,%eax,%eax + addl %ebp,%edx + vpslld $2,%xmm1,%xmm1 + addl 24(%rsp),%ecx + xorl %eax,%esi + movl %edx,%edi + shldl $5,%edx,%edx + addl %esi,%ecx + xorl %eax,%edi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + vpor %xmm8,%xmm1,%xmm1 + addl 28(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + shldl $5,%ecx,%ecx + addl %edi,%ebx + xorl %ebp,%esi + shrdl $7,%edx,%edx + addl %ecx,%ebx + vpalignr $8,%xmm0,%xmm1,%xmm8 + vpxor %xmm6,%xmm2,%xmm2 + addl 32(%rsp),%eax + xorl %edx,%esi + movl %ebx,%edi + shldl $5,%ebx,%ebx + vpxor %xmm3,%xmm2,%xmm2 + addl %esi,%eax + xorl %edx,%edi + vpaddd %xmm1,%xmm11,%xmm9 + vmovdqa 0(%r14),%xmm11 + shrdl $7,%ecx,%ecx + addl %ebx,%eax + vpxor %xmm8,%xmm2,%xmm2 + addl 36(%rsp),%ebp + xorl %ecx,%edi + movl %eax,%esi + shldl $5,%eax,%eax + vpsrld $30,%xmm2,%xmm8 + vmovdqa %xmm9,16(%rsp) + addl %edi,%ebp + xorl %ecx,%esi + shrdl $7,%ebx,%ebx + addl %eax,%ebp + vpslld $2,%xmm2,%xmm2 + addl 40(%rsp),%edx + xorl %ebx,%esi + movl %ebp,%edi + shldl $5,%ebp,%ebp + addl %esi,%edx + xorl %ebx,%edi + shrdl $7,%eax,%eax + addl %ebp,%edx + vpor %xmm8,%xmm2,%xmm2 + addl 44(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + shldl $5,%edx,%edx + addl %edi,%ecx + xorl %eax,%esi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + vpalignr $8,%xmm1,%xmm2,%xmm8 + vpxor %xmm7,%xmm3,%xmm3 + addl 48(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi + shldl $5,%ecx,%ecx + vpxor %xmm4,%xmm3,%xmm3 + addl %esi,%ebx + xorl %ebp,%edi + vpaddd %xmm2,%xmm11,%xmm9 + shrdl $7,%edx,%edx + addl %ecx,%ebx + vpxor %xmm8,%xmm3,%xmm3 + addl 52(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + shldl $5,%ebx,%ebx + vpsrld $30,%xmm3,%xmm8 + vmovdqa %xmm9,32(%rsp) + addl %edi,%eax + xorl %edx,%esi + shrdl $7,%ecx,%ecx + addl %ebx,%eax + vpslld $2,%xmm3,%xmm3 + addl 56(%rsp),%ebp + xorl %ecx,%esi + movl %eax,%edi + shldl $5,%eax,%eax + addl %esi,%ebp + xorl %ecx,%edi + shrdl $7,%ebx,%ebx + addl %eax,%ebp + vpor %xmm8,%xmm3,%xmm3 + addl 60(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + shldl $5,%ebp,%ebp + addl %edi,%edx + xorl %ebx,%esi + shrdl $7,%eax,%eax + addl %ebp,%edx + vpalignr $8,%xmm2,%xmm3,%xmm8 + vpxor %xmm0,%xmm4,%xmm4 + addl 0(%rsp),%ecx + xorl %eax,%esi + movl %edx,%edi + shldl $5,%edx,%edx + vpxor %xmm5,%xmm4,%xmm4 + addl %esi,%ecx + xorl %eax,%edi + vpaddd %xmm3,%xmm11,%xmm9 + shrdl $7,%ebp,%ebp + addl %edx,%ecx + vpxor %xmm8,%xmm4,%xmm4 + addl 4(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + shldl $5,%ecx,%ecx + vpsrld $30,%xmm4,%xmm8 + vmovdqa %xmm9,48(%rsp) + addl %edi,%ebx + xorl %ebp,%esi + shrdl $7,%edx,%edx + addl %ecx,%ebx + vpslld $2,%xmm4,%xmm4 + addl 8(%rsp),%eax + xorl %edx,%esi + movl %ebx,%edi + shldl $5,%ebx,%ebx + addl %esi,%eax + xorl %edx,%edi + shrdl $7,%ecx,%ecx + addl %ebx,%eax + vpor %xmm8,%xmm4,%xmm4 + addl 12(%rsp),%ebp + xorl %ecx,%edi + movl %eax,%esi + shldl $5,%eax,%eax + addl %edi,%ebp + xorl %ecx,%esi + shrdl $7,%ebx,%ebx + addl %eax,%ebp + vpalignr $8,%xmm3,%xmm4,%xmm8 + vpxor %xmm1,%xmm5,%xmm5 + addl 16(%rsp),%edx + xorl %ebx,%esi + movl %ebp,%edi + shldl $5,%ebp,%ebp + vpxor %xmm6,%xmm5,%xmm5 + addl %esi,%edx + xorl %ebx,%edi + vpaddd %xmm4,%xmm11,%xmm9 + shrdl $7,%eax,%eax + addl %ebp,%edx + vpxor %xmm8,%xmm5,%xmm5 + addl 20(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + shldl $5,%edx,%edx + vpsrld $30,%xmm5,%xmm8 + vmovdqa %xmm9,0(%rsp) + addl %edi,%ecx + xorl %eax,%esi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + vpslld $2,%xmm5,%xmm5 + addl 24(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi + shldl $5,%ecx,%ecx + addl %esi,%ebx + xorl %ebp,%edi + shrdl $7,%edx,%edx + addl %ecx,%ebx + vpor %xmm8,%xmm5,%xmm5 + addl 28(%rsp),%eax + shrdl $7,%ecx,%ecx + movl %ebx,%esi + xorl %edx,%edi + shldl $5,%ebx,%ebx + addl %edi,%eax + xorl %ecx,%esi + xorl %edx,%ecx + addl %ebx,%eax + vpalignr $8,%xmm4,%xmm5,%xmm8 + vpxor %xmm2,%xmm6,%xmm6 + addl 32(%rsp),%ebp + andl %ecx,%esi + xorl %edx,%ecx + shrdl $7,%ebx,%ebx + vpxor %xmm7,%xmm6,%xmm6 + movl %eax,%edi + xorl %ecx,%esi + vpaddd %xmm5,%xmm11,%xmm9 + shldl $5,%eax,%eax + addl %esi,%ebp + vpxor %xmm8,%xmm6,%xmm6 + xorl %ebx,%edi + xorl %ecx,%ebx + addl %eax,%ebp + addl 36(%rsp),%edx + vpsrld $30,%xmm6,%xmm8 + vmovdqa %xmm9,16(%rsp) + andl %ebx,%edi + xorl %ecx,%ebx + shrdl $7,%eax,%eax + movl %ebp,%esi + vpslld $2,%xmm6,%xmm6 + xorl %ebx,%edi + shldl $5,%ebp,%ebp + addl %edi,%edx + xorl %eax,%esi + xorl %ebx,%eax + addl %ebp,%edx + addl 40(%rsp),%ecx + andl %eax,%esi + vpor %xmm8,%xmm6,%xmm6 + xorl %ebx,%eax + shrdl $7,%ebp,%ebp + movl %edx,%edi + xorl %eax,%esi + shldl $5,%edx,%edx + addl %esi,%ecx + xorl %ebp,%edi + xorl %eax,%ebp + addl %edx,%ecx + addl 44(%rsp),%ebx + andl %ebp,%edi + xorl %eax,%ebp + shrdl $7,%edx,%edx + movl %ecx,%esi + xorl %ebp,%edi + shldl $5,%ecx,%ecx + addl %edi,%ebx + xorl %edx,%esi + xorl %ebp,%edx + addl %ecx,%ebx + vpalignr $8,%xmm5,%xmm6,%xmm8 + vpxor %xmm3,%xmm7,%xmm7 + addl 48(%rsp),%eax + andl %edx,%esi + xorl %ebp,%edx + shrdl $7,%ecx,%ecx + vpxor %xmm0,%xmm7,%xmm7 + movl %ebx,%edi + xorl %edx,%esi + vpaddd %xmm6,%xmm11,%xmm9 + vmovdqa 32(%r14),%xmm11 + shldl $5,%ebx,%ebx + addl %esi,%eax + vpxor %xmm8,%xmm7,%xmm7 + xorl %ecx,%edi + xorl %edx,%ecx + addl %ebx,%eax + addl 52(%rsp),%ebp + vpsrld $30,%xmm7,%xmm8 + vmovdqa %xmm9,32(%rsp) + andl %ecx,%edi + xorl %edx,%ecx + shrdl $7,%ebx,%ebx + movl %eax,%esi + vpslld $2,%xmm7,%xmm7 + xorl %ecx,%edi + shldl $5,%eax,%eax + addl %edi,%ebp + xorl %ebx,%esi + xorl %ecx,%ebx + addl %eax,%ebp + addl 56(%rsp),%edx + andl %ebx,%esi + vpor %xmm8,%xmm7,%xmm7 + xorl %ecx,%ebx + shrdl $7,%eax,%eax + movl %ebp,%edi + xorl %ebx,%esi + shldl $5,%ebp,%ebp + addl %esi,%edx + xorl %eax,%edi + xorl %ebx,%eax + addl %ebp,%edx + addl 60(%rsp),%ecx + andl %eax,%edi + xorl %ebx,%eax + shrdl $7,%ebp,%ebp + movl %edx,%esi + xorl %eax,%edi + shldl $5,%edx,%edx + addl %edi,%ecx + xorl %ebp,%esi + xorl %eax,%ebp + addl %edx,%ecx + vpalignr $8,%xmm6,%xmm7,%xmm8 + vpxor %xmm4,%xmm0,%xmm0 + addl 0(%rsp),%ebx + andl %ebp,%esi + xorl %eax,%ebp + shrdl $7,%edx,%edx + vpxor %xmm1,%xmm0,%xmm0 + movl %ecx,%edi + xorl %ebp,%esi + vpaddd %xmm7,%xmm11,%xmm9 + shldl $5,%ecx,%ecx + addl %esi,%ebx + vpxor %xmm8,%xmm0,%xmm0 + xorl %edx,%edi + xorl %ebp,%edx + addl %ecx,%ebx + addl 4(%rsp),%eax + vpsrld $30,%xmm0,%xmm8 + vmovdqa %xmm9,48(%rsp) + andl %edx,%edi + xorl %ebp,%edx + shrdl $7,%ecx,%ecx + movl %ebx,%esi + vpslld $2,%xmm0,%xmm0 + xorl %edx,%edi + shldl $5,%ebx,%ebx + addl %edi,%eax + xorl %ecx,%esi + xorl %edx,%ecx + addl %ebx,%eax + addl 8(%rsp),%ebp + andl %ecx,%esi + vpor %xmm8,%xmm0,%xmm0 + xorl %edx,%ecx + shrdl $7,%ebx,%ebx + movl %eax,%edi + xorl %ecx,%esi + shldl $5,%eax,%eax + addl %esi,%ebp + xorl %ebx,%edi + xorl %ecx,%ebx + addl %eax,%ebp + addl 12(%rsp),%edx + andl %ebx,%edi + xorl %ecx,%ebx + shrdl $7,%eax,%eax + movl %ebp,%esi + xorl %ebx,%edi + shldl $5,%ebp,%ebp + addl %edi,%edx + xorl %eax,%esi + xorl %ebx,%eax + addl %ebp,%edx + vpalignr $8,%xmm7,%xmm0,%xmm8 + vpxor %xmm5,%xmm1,%xmm1 + addl 16(%rsp),%ecx + andl %eax,%esi + xorl %ebx,%eax + shrdl $7,%ebp,%ebp + vpxor %xmm2,%xmm1,%xmm1 + movl %edx,%edi + xorl %eax,%esi + vpaddd %xmm0,%xmm11,%xmm9 + shldl $5,%edx,%edx + addl %esi,%ecx + vpxor %xmm8,%xmm1,%xmm1 + xorl %ebp,%edi + xorl %eax,%ebp + addl %edx,%ecx + addl 20(%rsp),%ebx + vpsrld $30,%xmm1,%xmm8 + vmovdqa %xmm9,0(%rsp) + andl %ebp,%edi + xorl %eax,%ebp + shrdl $7,%edx,%edx + movl %ecx,%esi + vpslld $2,%xmm1,%xmm1 + xorl %ebp,%edi + shldl $5,%ecx,%ecx + addl %edi,%ebx + xorl %edx,%esi + xorl %ebp,%edx + addl %ecx,%ebx + addl 24(%rsp),%eax + andl %edx,%esi + vpor %xmm8,%xmm1,%xmm1 + xorl %ebp,%edx + shrdl $7,%ecx,%ecx + movl %ebx,%edi + xorl %edx,%esi + shldl $5,%ebx,%ebx + addl %esi,%eax + xorl %ecx,%edi + xorl %edx,%ecx + addl %ebx,%eax + addl 28(%rsp),%ebp + andl %ecx,%edi + xorl %edx,%ecx + shrdl $7,%ebx,%ebx + movl %eax,%esi + xorl %ecx,%edi + shldl $5,%eax,%eax + addl %edi,%ebp + xorl %ebx,%esi + xorl %ecx,%ebx + addl %eax,%ebp + vpalignr $8,%xmm0,%xmm1,%xmm8 + vpxor %xmm6,%xmm2,%xmm2 + addl 32(%rsp),%edx + andl %ebx,%esi + xorl %ecx,%ebx + shrdl $7,%eax,%eax + vpxor %xmm3,%xmm2,%xmm2 + movl %ebp,%edi + xorl %ebx,%esi + vpaddd %xmm1,%xmm11,%xmm9 + shldl $5,%ebp,%ebp + addl %esi,%edx + vpxor %xmm8,%xmm2,%xmm2 + xorl %eax,%edi + xorl %ebx,%eax + addl %ebp,%edx + addl 36(%rsp),%ecx + vpsrld $30,%xmm2,%xmm8 + vmovdqa %xmm9,16(%rsp) + andl %eax,%edi + xorl %ebx,%eax + shrdl $7,%ebp,%ebp + movl %edx,%esi + vpslld $2,%xmm2,%xmm2 + xorl %eax,%edi + shldl $5,%edx,%edx + addl %edi,%ecx + xorl %ebp,%esi + xorl %eax,%ebp + addl %edx,%ecx + addl 40(%rsp),%ebx + andl %ebp,%esi + vpor %xmm8,%xmm2,%xmm2 + xorl %eax,%ebp + shrdl $7,%edx,%edx + movl %ecx,%edi + xorl %ebp,%esi + shldl $5,%ecx,%ecx + addl %esi,%ebx + xorl %edx,%edi + xorl %ebp,%edx + addl %ecx,%ebx + addl 44(%rsp),%eax + andl %edx,%edi + xorl %ebp,%edx + shrdl $7,%ecx,%ecx + movl %ebx,%esi + xorl %edx,%edi + shldl $5,%ebx,%ebx + addl %edi,%eax + xorl %edx,%esi + addl %ebx,%eax + vpalignr $8,%xmm1,%xmm2,%xmm8 + vpxor %xmm7,%xmm3,%xmm3 + addl 48(%rsp),%ebp + xorl %ecx,%esi + movl %eax,%edi + shldl $5,%eax,%eax + vpxor %xmm4,%xmm3,%xmm3 + addl %esi,%ebp + xorl %ecx,%edi + vpaddd %xmm2,%xmm11,%xmm9 + shrdl $7,%ebx,%ebx + addl %eax,%ebp + vpxor %xmm8,%xmm3,%xmm3 + addl 52(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + shldl $5,%ebp,%ebp + vpsrld $30,%xmm3,%xmm8 + vmovdqa %xmm9,32(%rsp) + addl %edi,%edx + xorl %ebx,%esi + shrdl $7,%eax,%eax + addl %ebp,%edx + vpslld $2,%xmm3,%xmm3 + addl 56(%rsp),%ecx + xorl %eax,%esi + movl %edx,%edi + shldl $5,%edx,%edx + addl %esi,%ecx + xorl %eax,%edi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + vpor %xmm8,%xmm3,%xmm3 + addl 60(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + shldl $5,%ecx,%ecx + addl %edi,%ebx + xorl %ebp,%esi + shrdl $7,%edx,%edx + addl %ecx,%ebx + addl 0(%rsp),%eax + vpaddd %xmm3,%xmm11,%xmm9 + xorl %edx,%esi + movl %ebx,%edi + shldl $5,%ebx,%ebx + addl %esi,%eax + vmovdqa %xmm9,48(%rsp) + xorl %edx,%edi + shrdl $7,%ecx,%ecx + addl %ebx,%eax + addl 4(%rsp),%ebp + xorl %ecx,%edi + movl %eax,%esi + shldl $5,%eax,%eax + addl %edi,%ebp + xorl %ecx,%esi + shrdl $7,%ebx,%ebx + addl %eax,%ebp + addl 8(%rsp),%edx + xorl %ebx,%esi + movl %ebp,%edi + shldl $5,%ebp,%ebp + addl %esi,%edx + xorl %ebx,%edi + shrdl $7,%eax,%eax + addl %ebp,%edx + addl 12(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + shldl $5,%edx,%edx + addl %edi,%ecx + xorl %eax,%esi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + cmpq %r10,%r9 + je L$done_avx + vmovdqa 64(%r14),%xmm6 + vmovdqa -64(%r14),%xmm11 + vmovdqu 0(%r9),%xmm0 + vmovdqu 16(%r9),%xmm1 + vmovdqu 32(%r9),%xmm2 + vmovdqu 48(%r9),%xmm3 + vpshufb %xmm6,%xmm0,%xmm0 + addq $64,%r9 + addl 16(%rsp),%ebx + xorl %ebp,%esi + vpshufb %xmm6,%xmm1,%xmm1 + movl %ecx,%edi + shldl $5,%ecx,%ecx + vpaddd %xmm11,%xmm0,%xmm4 + addl %esi,%ebx + xorl %ebp,%edi + shrdl $7,%edx,%edx + addl %ecx,%ebx + vmovdqa %xmm4,0(%rsp) + addl 20(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + shldl $5,%ebx,%ebx + addl %edi,%eax + xorl %edx,%esi + shrdl $7,%ecx,%ecx + addl %ebx,%eax + addl 24(%rsp),%ebp + xorl %ecx,%esi + movl %eax,%edi + shldl $5,%eax,%eax + addl %esi,%ebp + xorl %ecx,%edi + shrdl $7,%ebx,%ebx + addl %eax,%ebp + addl 28(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + shldl $5,%ebp,%ebp + addl %edi,%edx + xorl %ebx,%esi + shrdl $7,%eax,%eax + addl %ebp,%edx + addl 32(%rsp),%ecx + xorl %eax,%esi + vpshufb %xmm6,%xmm2,%xmm2 + movl %edx,%edi + shldl $5,%edx,%edx + vpaddd %xmm11,%xmm1,%xmm5 + addl %esi,%ecx + xorl %eax,%edi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + vmovdqa %xmm5,16(%rsp) + addl 36(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + shldl $5,%ecx,%ecx + addl %edi,%ebx + xorl %ebp,%esi + shrdl $7,%edx,%edx + addl %ecx,%ebx + addl 40(%rsp),%eax + xorl %edx,%esi + movl %ebx,%edi + shldl $5,%ebx,%ebx + addl %esi,%eax + xorl %edx,%edi + shrdl $7,%ecx,%ecx + addl %ebx,%eax + addl 44(%rsp),%ebp + xorl %ecx,%edi + movl %eax,%esi + shldl $5,%eax,%eax + addl %edi,%ebp + xorl %ecx,%esi + shrdl $7,%ebx,%ebx + addl %eax,%ebp + addl 48(%rsp),%edx + xorl %ebx,%esi + vpshufb %xmm6,%xmm3,%xmm3 + movl %ebp,%edi + shldl $5,%ebp,%ebp + vpaddd %xmm11,%xmm2,%xmm6 + addl %esi,%edx + xorl %ebx,%edi + shrdl $7,%eax,%eax + addl %ebp,%edx + vmovdqa %xmm6,32(%rsp) + addl 52(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + shldl $5,%edx,%edx + addl %edi,%ecx + xorl %eax,%esi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + addl 56(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi + shldl $5,%ecx,%ecx + addl %esi,%ebx + xorl %ebp,%edi + shrdl $7,%edx,%edx + addl %ecx,%ebx + addl 60(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + shldl $5,%ebx,%ebx + addl %edi,%eax + shrdl $7,%ecx,%ecx + addl %ebx,%eax + addl 0(%r8),%eax + addl 4(%r8),%esi + addl 8(%r8),%ecx + addl 12(%r8),%edx + movl %eax,0(%r8) + addl 16(%r8),%ebp + movl %esi,4(%r8) + movl %esi,%ebx + movl %ecx,8(%r8) + movl %ecx,%edi + movl %edx,12(%r8) + xorl %edx,%edi + movl %ebp,16(%r8) + andl %edi,%esi + jmp L$oop_avx + +.p2align 4 +L$done_avx: + addl 16(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi + shldl $5,%ecx,%ecx + addl %esi,%ebx + xorl %ebp,%edi + shrdl $7,%edx,%edx + addl %ecx,%ebx + addl 20(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + shldl $5,%ebx,%ebx + addl %edi,%eax + xorl %edx,%esi + shrdl $7,%ecx,%ecx + addl %ebx,%eax + addl 24(%rsp),%ebp + xorl %ecx,%esi + movl %eax,%edi + shldl $5,%eax,%eax + addl %esi,%ebp + xorl %ecx,%edi + shrdl $7,%ebx,%ebx + addl %eax,%ebp + addl 28(%rsp),%edx + xorl %ebx,%edi + movl %ebp,%esi + shldl $5,%ebp,%ebp + addl %edi,%edx + xorl %ebx,%esi + shrdl $7,%eax,%eax + addl %ebp,%edx + addl 32(%rsp),%ecx + xorl %eax,%esi + movl %edx,%edi + shldl $5,%edx,%edx + addl %esi,%ecx + xorl %eax,%edi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + addl 36(%rsp),%ebx + xorl %ebp,%edi + movl %ecx,%esi + shldl $5,%ecx,%ecx + addl %edi,%ebx + xorl %ebp,%esi + shrdl $7,%edx,%edx + addl %ecx,%ebx + addl 40(%rsp),%eax + xorl %edx,%esi + movl %ebx,%edi + shldl $5,%ebx,%ebx + addl %esi,%eax + xorl %edx,%edi + shrdl $7,%ecx,%ecx + addl %ebx,%eax + addl 44(%rsp),%ebp + xorl %ecx,%edi + movl %eax,%esi + shldl $5,%eax,%eax + addl %edi,%ebp + xorl %ecx,%esi + shrdl $7,%ebx,%ebx + addl %eax,%ebp + addl 48(%rsp),%edx + xorl %ebx,%esi + movl %ebp,%edi + shldl $5,%ebp,%ebp + addl %esi,%edx + xorl %ebx,%edi + shrdl $7,%eax,%eax + addl %ebp,%edx + addl 52(%rsp),%ecx + xorl %eax,%edi + movl %edx,%esi + shldl $5,%edx,%edx + addl %edi,%ecx + xorl %eax,%esi + shrdl $7,%ebp,%ebp + addl %edx,%ecx + addl 56(%rsp),%ebx + xorl %ebp,%esi + movl %ecx,%edi + shldl $5,%ecx,%ecx + addl %esi,%ebx + xorl %ebp,%edi + shrdl $7,%edx,%edx + addl %ecx,%ebx + addl 60(%rsp),%eax + xorl %edx,%edi + movl %ebx,%esi + shldl $5,%ebx,%ebx + addl %edi,%eax + shrdl $7,%ecx,%ecx + addl %ebx,%eax + vzeroupper + + addl 0(%r8),%eax + addl 4(%r8),%esi + addl 8(%r8),%ecx + movl %eax,0(%r8) + addl 12(%r8),%edx + movl %esi,4(%r8) + addl 16(%r8),%ebp + movl %ecx,8(%r8) + movl %edx,12(%r8) + movl %ebp,16(%r8) + movq -40(%r11),%r14 + + movq -32(%r11),%r13 + + movq -24(%r11),%r12 + + movq -16(%r11),%rbp + + movq -8(%r11),%rbx + + leaq (%r11),%rsp + +L$epilogue_avx: + .byte 0xf3,0xc3 + + + +.p2align 4 +sha1_block_data_order_avx2: +_avx2_shortcut: + + movq %rsp,%r11 + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + vzeroupper + movq %rdi,%r8 + movq %rsi,%r9 + movq %rdx,%r10 + + leaq -640(%rsp),%rsp + shlq $6,%r10 + leaq 64(%r9),%r13 + andq $-128,%rsp + addq %r9,%r10 + leaq K_XX_XX+64(%rip),%r14 + + movl 0(%r8),%eax + cmpq %r10,%r13 + cmovaeq %r9,%r13 + movl 4(%r8),%ebp + movl 8(%r8),%ecx + movl 12(%r8),%edx + movl 16(%r8),%esi + vmovdqu 64(%r14),%ymm6 + + vmovdqu (%r9),%xmm0 + vmovdqu 16(%r9),%xmm1 + vmovdqu 32(%r9),%xmm2 + vmovdqu 48(%r9),%xmm3 + leaq 64(%r9),%r9 + vinserti128 $1,(%r13),%ymm0,%ymm0 + vinserti128 $1,16(%r13),%ymm1,%ymm1 + vpshufb %ymm6,%ymm0,%ymm0 + vinserti128 $1,32(%r13),%ymm2,%ymm2 + vpshufb %ymm6,%ymm1,%ymm1 + vinserti128 $1,48(%r13),%ymm3,%ymm3 + vpshufb %ymm6,%ymm2,%ymm2 + vmovdqu -64(%r14),%ymm11 + vpshufb %ymm6,%ymm3,%ymm3 + + vpaddd %ymm11,%ymm0,%ymm4 + vpaddd %ymm11,%ymm1,%ymm5 + vmovdqu %ymm4,0(%rsp) + vpaddd %ymm11,%ymm2,%ymm6 + vmovdqu %ymm5,32(%rsp) + vpaddd %ymm11,%ymm3,%ymm7 + vmovdqu %ymm6,64(%rsp) + vmovdqu %ymm7,96(%rsp) + vpalignr $8,%ymm0,%ymm1,%ymm4 + vpsrldq $4,%ymm3,%ymm8 + vpxor %ymm0,%ymm4,%ymm4 + vpxor %ymm2,%ymm8,%ymm8 + vpxor %ymm8,%ymm4,%ymm4 + vpsrld $31,%ymm4,%ymm8 + vpslldq $12,%ymm4,%ymm10 + vpaddd %ymm4,%ymm4,%ymm4 + vpsrld $30,%ymm10,%ymm9 + vpor %ymm8,%ymm4,%ymm4 + vpslld $2,%ymm10,%ymm10 + vpxor %ymm9,%ymm4,%ymm4 + vpxor %ymm10,%ymm4,%ymm4 + vpaddd %ymm11,%ymm4,%ymm9 + vmovdqu %ymm9,128(%rsp) + vpalignr $8,%ymm1,%ymm2,%ymm5 + vpsrldq $4,%ymm4,%ymm8 + vpxor %ymm1,%ymm5,%ymm5 + vpxor %ymm3,%ymm8,%ymm8 + vpxor %ymm8,%ymm5,%ymm5 + vpsrld $31,%ymm5,%ymm8 + vmovdqu -32(%r14),%ymm11 + vpslldq $12,%ymm5,%ymm10 + vpaddd %ymm5,%ymm5,%ymm5 + vpsrld $30,%ymm10,%ymm9 + vpor %ymm8,%ymm5,%ymm5 + vpslld $2,%ymm10,%ymm10 + vpxor %ymm9,%ymm5,%ymm5 + vpxor %ymm10,%ymm5,%ymm5 + vpaddd %ymm11,%ymm5,%ymm9 + vmovdqu %ymm9,160(%rsp) + vpalignr $8,%ymm2,%ymm3,%ymm6 + vpsrldq $4,%ymm5,%ymm8 + vpxor %ymm2,%ymm6,%ymm6 + vpxor %ymm4,%ymm8,%ymm8 + vpxor %ymm8,%ymm6,%ymm6 + vpsrld $31,%ymm6,%ymm8 + vpslldq $12,%ymm6,%ymm10 + vpaddd %ymm6,%ymm6,%ymm6 + vpsrld $30,%ymm10,%ymm9 + vpor %ymm8,%ymm6,%ymm6 + vpslld $2,%ymm10,%ymm10 + vpxor %ymm9,%ymm6,%ymm6 + vpxor %ymm10,%ymm6,%ymm6 + vpaddd %ymm11,%ymm6,%ymm9 + vmovdqu %ymm9,192(%rsp) + vpalignr $8,%ymm3,%ymm4,%ymm7 + vpsrldq $4,%ymm6,%ymm8 + vpxor %ymm3,%ymm7,%ymm7 + vpxor %ymm5,%ymm8,%ymm8 + vpxor %ymm8,%ymm7,%ymm7 + vpsrld $31,%ymm7,%ymm8 + vpslldq $12,%ymm7,%ymm10 + vpaddd %ymm7,%ymm7,%ymm7 + vpsrld $30,%ymm10,%ymm9 + vpor %ymm8,%ymm7,%ymm7 + vpslld $2,%ymm10,%ymm10 + vpxor %ymm9,%ymm7,%ymm7 + vpxor %ymm10,%ymm7,%ymm7 + vpaddd %ymm11,%ymm7,%ymm9 + vmovdqu %ymm9,224(%rsp) + leaq 128(%rsp),%r13 + jmp L$oop_avx2 +.p2align 5 +L$oop_avx2: + rorxl $2,%ebp,%ebx + andnl %edx,%ebp,%edi + andl %ecx,%ebp + xorl %edi,%ebp + jmp L$align32_1 +.p2align 5 +L$align32_1: + vpalignr $8,%ymm6,%ymm7,%ymm8 + vpxor %ymm4,%ymm0,%ymm0 + addl -128(%r13),%esi + andnl %ecx,%eax,%edi + vpxor %ymm1,%ymm0,%ymm0 + addl %ebp,%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + vpxor %ymm8,%ymm0,%ymm0 + andl %ebx,%eax + addl %r12d,%esi + xorl %edi,%eax + vpsrld $30,%ymm0,%ymm8 + vpslld $2,%ymm0,%ymm0 + addl -124(%r13),%edx + andnl %ebx,%esi,%edi + addl %eax,%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + andl %ebp,%esi + vpor %ymm8,%ymm0,%ymm0 + addl %r12d,%edx + xorl %edi,%esi + addl -120(%r13),%ecx + andnl %ebp,%edx,%edi + vpaddd %ymm11,%ymm0,%ymm9 + addl %esi,%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + andl %eax,%edx + vmovdqu %ymm9,256(%rsp) + addl %r12d,%ecx + xorl %edi,%edx + addl -116(%r13),%ebx + andnl %eax,%ecx,%edi + addl %edx,%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + andl %esi,%ecx + addl %r12d,%ebx + xorl %edi,%ecx + addl -96(%r13),%ebp + andnl %esi,%ebx,%edi + addl %ecx,%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + andl %edx,%ebx + addl %r12d,%ebp + xorl %edi,%ebx + vpalignr $8,%ymm7,%ymm0,%ymm8 + vpxor %ymm5,%ymm1,%ymm1 + addl -92(%r13),%eax + andnl %edx,%ebp,%edi + vpxor %ymm2,%ymm1,%ymm1 + addl %ebx,%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + vpxor %ymm8,%ymm1,%ymm1 + andl %ecx,%ebp + addl %r12d,%eax + xorl %edi,%ebp + vpsrld $30,%ymm1,%ymm8 + vpslld $2,%ymm1,%ymm1 + addl -88(%r13),%esi + andnl %ecx,%eax,%edi + addl %ebp,%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + andl %ebx,%eax + vpor %ymm8,%ymm1,%ymm1 + addl %r12d,%esi + xorl %edi,%eax + addl -84(%r13),%edx + andnl %ebx,%esi,%edi + vpaddd %ymm11,%ymm1,%ymm9 + addl %eax,%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + andl %ebp,%esi + vmovdqu %ymm9,288(%rsp) + addl %r12d,%edx + xorl %edi,%esi + addl -64(%r13),%ecx + andnl %ebp,%edx,%edi + addl %esi,%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + andl %eax,%edx + addl %r12d,%ecx + xorl %edi,%edx + addl -60(%r13),%ebx + andnl %eax,%ecx,%edi + addl %edx,%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + andl %esi,%ecx + addl %r12d,%ebx + xorl %edi,%ecx + vpalignr $8,%ymm0,%ymm1,%ymm8 + vpxor %ymm6,%ymm2,%ymm2 + addl -56(%r13),%ebp + andnl %esi,%ebx,%edi + vpxor %ymm3,%ymm2,%ymm2 + vmovdqu 0(%r14),%ymm11 + addl %ecx,%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + vpxor %ymm8,%ymm2,%ymm2 + andl %edx,%ebx + addl %r12d,%ebp + xorl %edi,%ebx + vpsrld $30,%ymm2,%ymm8 + vpslld $2,%ymm2,%ymm2 + addl -52(%r13),%eax + andnl %edx,%ebp,%edi + addl %ebx,%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + andl %ecx,%ebp + vpor %ymm8,%ymm2,%ymm2 + addl %r12d,%eax + xorl %edi,%ebp + addl -32(%r13),%esi + andnl %ecx,%eax,%edi + vpaddd %ymm11,%ymm2,%ymm9 + addl %ebp,%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + andl %ebx,%eax + vmovdqu %ymm9,320(%rsp) + addl %r12d,%esi + xorl %edi,%eax + addl -28(%r13),%edx + andnl %ebx,%esi,%edi + addl %eax,%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + andl %ebp,%esi + addl %r12d,%edx + xorl %edi,%esi + addl -24(%r13),%ecx + andnl %ebp,%edx,%edi + addl %esi,%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + andl %eax,%edx + addl %r12d,%ecx + xorl %edi,%edx + vpalignr $8,%ymm1,%ymm2,%ymm8 + vpxor %ymm7,%ymm3,%ymm3 + addl -20(%r13),%ebx + andnl %eax,%ecx,%edi + vpxor %ymm4,%ymm3,%ymm3 + addl %edx,%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + vpxor %ymm8,%ymm3,%ymm3 + andl %esi,%ecx + addl %r12d,%ebx + xorl %edi,%ecx + vpsrld $30,%ymm3,%ymm8 + vpslld $2,%ymm3,%ymm3 + addl 0(%r13),%ebp + andnl %esi,%ebx,%edi + addl %ecx,%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + andl %edx,%ebx + vpor %ymm8,%ymm3,%ymm3 + addl %r12d,%ebp + xorl %edi,%ebx + addl 4(%r13),%eax + andnl %edx,%ebp,%edi + vpaddd %ymm11,%ymm3,%ymm9 + addl %ebx,%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + andl %ecx,%ebp + vmovdqu %ymm9,352(%rsp) + addl %r12d,%eax + xorl %edi,%ebp + addl 8(%r13),%esi + andnl %ecx,%eax,%edi + addl %ebp,%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + andl %ebx,%eax + addl %r12d,%esi + xorl %edi,%eax + addl 12(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + vpalignr $8,%ymm2,%ymm3,%ymm8 + vpxor %ymm0,%ymm4,%ymm4 + addl 32(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + vpxor %ymm5,%ymm4,%ymm4 + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + vpxor %ymm8,%ymm4,%ymm4 + addl %r12d,%ecx + xorl %ebp,%edx + addl 36(%r13),%ebx + vpsrld $30,%ymm4,%ymm8 + vpslld $2,%ymm4,%ymm4 + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + vpor %ymm8,%ymm4,%ymm4 + addl 40(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + vpaddd %ymm11,%ymm4,%ymm9 + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + addl 44(%r13),%eax + vmovdqu %ymm9,384(%rsp) + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + addl 64(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + vpalignr $8,%ymm3,%ymm4,%ymm8 + vpxor %ymm1,%ymm5,%ymm5 + addl 68(%r13),%edx + leal (%rdx,%rax,1),%edx + vpxor %ymm6,%ymm5,%ymm5 + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + vpxor %ymm8,%ymm5,%ymm5 + addl %r12d,%edx + xorl %ebx,%esi + addl 72(%r13),%ecx + vpsrld $30,%ymm5,%ymm8 + vpslld $2,%ymm5,%ymm5 + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + vpor %ymm8,%ymm5,%ymm5 + addl 76(%r13),%ebx + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + vpaddd %ymm11,%ymm5,%ymm9 + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl 96(%r13),%ebp + vmovdqu %ymm9,416(%rsp) + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + addl 100(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + vpalignr $8,%ymm4,%ymm5,%ymm8 + vpxor %ymm2,%ymm6,%ymm6 + addl 104(%r13),%esi + leal (%rsi,%rbp,1),%esi + vpxor %ymm7,%ymm6,%ymm6 + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + vpxor %ymm8,%ymm6,%ymm6 + addl %r12d,%esi + xorl %ecx,%eax + addl 108(%r13),%edx + leaq 256(%r13),%r13 + vpsrld $30,%ymm6,%ymm8 + vpslld $2,%ymm6,%ymm6 + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + vpor %ymm8,%ymm6,%ymm6 + addl -128(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + vpaddd %ymm11,%ymm6,%ymm9 + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl -124(%r13),%ebx + vmovdqu %ymm9,448(%rsp) + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl -120(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + vpalignr $8,%ymm5,%ymm6,%ymm8 + vpxor %ymm3,%ymm7,%ymm7 + addl -116(%r13),%eax + leal (%rax,%rbx,1),%eax + vpxor %ymm0,%ymm7,%ymm7 + vmovdqu 32(%r14),%ymm11 + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + vpxor %ymm8,%ymm7,%ymm7 + addl %r12d,%eax + xorl %edx,%ebp + addl -96(%r13),%esi + vpsrld $30,%ymm7,%ymm8 + vpslld $2,%ymm7,%ymm7 + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + vpor %ymm8,%ymm7,%ymm7 + addl -92(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + vpaddd %ymm11,%ymm7,%ymm9 + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + addl -88(%r13),%ecx + vmovdqu %ymm9,480(%rsp) + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl -84(%r13),%ebx + movl %esi,%edi + xorl %eax,%edi + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + andl %edi,%ecx + jmp L$align32_2 +.p2align 5 +L$align32_2: + vpalignr $8,%ymm6,%ymm7,%ymm8 + vpxor %ymm4,%ymm0,%ymm0 + addl -64(%r13),%ebp + xorl %esi,%ecx + vpxor %ymm1,%ymm0,%ymm0 + movl %edx,%edi + xorl %esi,%edi + leal (%rcx,%rbp,1),%ebp + vpxor %ymm8,%ymm0,%ymm0 + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + vpsrld $30,%ymm0,%ymm8 + vpslld $2,%ymm0,%ymm0 + addl %r12d,%ebp + andl %edi,%ebx + addl -60(%r13),%eax + xorl %edx,%ebx + movl %ecx,%edi + xorl %edx,%edi + vpor %ymm8,%ymm0,%ymm0 + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + vpaddd %ymm11,%ymm0,%ymm9 + addl %r12d,%eax + andl %edi,%ebp + addl -56(%r13),%esi + xorl %ecx,%ebp + vmovdqu %ymm9,512(%rsp) + movl %ebx,%edi + xorl %ecx,%edi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + andl %edi,%eax + addl -52(%r13),%edx + xorl %ebx,%eax + movl %ebp,%edi + xorl %ebx,%edi + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + andl %edi,%esi + addl -32(%r13),%ecx + xorl %ebp,%esi + movl %eax,%edi + xorl %ebp,%edi + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + andl %edi,%edx + vpalignr $8,%ymm7,%ymm0,%ymm8 + vpxor %ymm5,%ymm1,%ymm1 + addl -28(%r13),%ebx + xorl %eax,%edx + vpxor %ymm2,%ymm1,%ymm1 + movl %esi,%edi + xorl %eax,%edi + leal (%rbx,%rdx,1),%ebx + vpxor %ymm8,%ymm1,%ymm1 + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + vpsrld $30,%ymm1,%ymm8 + vpslld $2,%ymm1,%ymm1 + addl %r12d,%ebx + andl %edi,%ecx + addl -24(%r13),%ebp + xorl %esi,%ecx + movl %edx,%edi + xorl %esi,%edi + vpor %ymm8,%ymm1,%ymm1 + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + vpaddd %ymm11,%ymm1,%ymm9 + addl %r12d,%ebp + andl %edi,%ebx + addl -20(%r13),%eax + xorl %edx,%ebx + vmovdqu %ymm9,544(%rsp) + movl %ecx,%edi + xorl %edx,%edi + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + andl %edi,%ebp + addl 0(%r13),%esi + xorl %ecx,%ebp + movl %ebx,%edi + xorl %ecx,%edi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + andl %edi,%eax + addl 4(%r13),%edx + xorl %ebx,%eax + movl %ebp,%edi + xorl %ebx,%edi + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + andl %edi,%esi + vpalignr $8,%ymm0,%ymm1,%ymm8 + vpxor %ymm6,%ymm2,%ymm2 + addl 8(%r13),%ecx + xorl %ebp,%esi + vpxor %ymm3,%ymm2,%ymm2 + movl %eax,%edi + xorl %ebp,%edi + leal (%rcx,%rsi,1),%ecx + vpxor %ymm8,%ymm2,%ymm2 + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + vpsrld $30,%ymm2,%ymm8 + vpslld $2,%ymm2,%ymm2 + addl %r12d,%ecx + andl %edi,%edx + addl 12(%r13),%ebx + xorl %eax,%edx + movl %esi,%edi + xorl %eax,%edi + vpor %ymm8,%ymm2,%ymm2 + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + vpaddd %ymm11,%ymm2,%ymm9 + addl %r12d,%ebx + andl %edi,%ecx + addl 32(%r13),%ebp + xorl %esi,%ecx + vmovdqu %ymm9,576(%rsp) + movl %edx,%edi + xorl %esi,%edi + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + andl %edi,%ebx + addl 36(%r13),%eax + xorl %edx,%ebx + movl %ecx,%edi + xorl %edx,%edi + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + andl %edi,%ebp + addl 40(%r13),%esi + xorl %ecx,%ebp + movl %ebx,%edi + xorl %ecx,%edi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + andl %edi,%eax + vpalignr $8,%ymm1,%ymm2,%ymm8 + vpxor %ymm7,%ymm3,%ymm3 + addl 44(%r13),%edx + xorl %ebx,%eax + vpxor %ymm4,%ymm3,%ymm3 + movl %ebp,%edi + xorl %ebx,%edi + leal (%rdx,%rax,1),%edx + vpxor %ymm8,%ymm3,%ymm3 + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + vpsrld $30,%ymm3,%ymm8 + vpslld $2,%ymm3,%ymm3 + addl %r12d,%edx + andl %edi,%esi + addl 64(%r13),%ecx + xorl %ebp,%esi + movl %eax,%edi + xorl %ebp,%edi + vpor %ymm8,%ymm3,%ymm3 + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + vpaddd %ymm11,%ymm3,%ymm9 + addl %r12d,%ecx + andl %edi,%edx + addl 68(%r13),%ebx + xorl %eax,%edx + vmovdqu %ymm9,608(%rsp) + movl %esi,%edi + xorl %eax,%edi + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + andl %edi,%ecx + addl 72(%r13),%ebp + xorl %esi,%ecx + movl %edx,%edi + xorl %esi,%edi + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + andl %edi,%ebx + addl 76(%r13),%eax + xorl %edx,%ebx + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + addl 96(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + addl 100(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + addl 104(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl 108(%r13),%ebx + leaq 256(%r13),%r13 + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl -128(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + addl -124(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + addl -120(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + addl -116(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + addl -96(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl -92(%r13),%ebx + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl -88(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + addl -84(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + addl -64(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + addl -60(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + addl -56(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl -52(%r13),%ebx + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl -32(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + addl -28(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + addl -24(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + addl -20(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + addl %r12d,%edx + leaq 128(%r9),%r13 + leaq 128(%r9),%rdi + cmpq %r10,%r13 + cmovaeq %r9,%r13 + + + addl 0(%r8),%edx + addl 4(%r8),%esi + addl 8(%r8),%ebp + movl %edx,0(%r8) + addl 12(%r8),%ebx + movl %esi,4(%r8) + movl %edx,%eax + addl 16(%r8),%ecx + movl %ebp,%r12d + movl %ebp,8(%r8) + movl %ebx,%edx + + movl %ebx,12(%r8) + movl %esi,%ebp + movl %ecx,16(%r8) + + movl %ecx,%esi + movl %r12d,%ecx + + + cmpq %r10,%r9 + je L$done_avx2 + vmovdqu 64(%r14),%ymm6 + cmpq %r10,%rdi + ja L$ast_avx2 + + vmovdqu -64(%rdi),%xmm0 + vmovdqu -48(%rdi),%xmm1 + vmovdqu -32(%rdi),%xmm2 + vmovdqu -16(%rdi),%xmm3 + vinserti128 $1,0(%r13),%ymm0,%ymm0 + vinserti128 $1,16(%r13),%ymm1,%ymm1 + vinserti128 $1,32(%r13),%ymm2,%ymm2 + vinserti128 $1,48(%r13),%ymm3,%ymm3 + jmp L$ast_avx2 + +.p2align 5 +L$ast_avx2: + leaq 128+16(%rsp),%r13 + rorxl $2,%ebp,%ebx + andnl %edx,%ebp,%edi + andl %ecx,%ebp + xorl %edi,%ebp + subq $-128,%r9 + addl -128(%r13),%esi + andnl %ecx,%eax,%edi + addl %ebp,%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + andl %ebx,%eax + addl %r12d,%esi + xorl %edi,%eax + addl -124(%r13),%edx + andnl %ebx,%esi,%edi + addl %eax,%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + andl %ebp,%esi + addl %r12d,%edx + xorl %edi,%esi + addl -120(%r13),%ecx + andnl %ebp,%edx,%edi + addl %esi,%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + andl %eax,%edx + addl %r12d,%ecx + xorl %edi,%edx + addl -116(%r13),%ebx + andnl %eax,%ecx,%edi + addl %edx,%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + andl %esi,%ecx + addl %r12d,%ebx + xorl %edi,%ecx + addl -96(%r13),%ebp + andnl %esi,%ebx,%edi + addl %ecx,%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + andl %edx,%ebx + addl %r12d,%ebp + xorl %edi,%ebx + addl -92(%r13),%eax + andnl %edx,%ebp,%edi + addl %ebx,%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + andl %ecx,%ebp + addl %r12d,%eax + xorl %edi,%ebp + addl -88(%r13),%esi + andnl %ecx,%eax,%edi + addl %ebp,%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + andl %ebx,%eax + addl %r12d,%esi + xorl %edi,%eax + addl -84(%r13),%edx + andnl %ebx,%esi,%edi + addl %eax,%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + andl %ebp,%esi + addl %r12d,%edx + xorl %edi,%esi + addl -64(%r13),%ecx + andnl %ebp,%edx,%edi + addl %esi,%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + andl %eax,%edx + addl %r12d,%ecx + xorl %edi,%edx + addl -60(%r13),%ebx + andnl %eax,%ecx,%edi + addl %edx,%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + andl %esi,%ecx + addl %r12d,%ebx + xorl %edi,%ecx + addl -56(%r13),%ebp + andnl %esi,%ebx,%edi + addl %ecx,%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + andl %edx,%ebx + addl %r12d,%ebp + xorl %edi,%ebx + addl -52(%r13),%eax + andnl %edx,%ebp,%edi + addl %ebx,%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + andl %ecx,%ebp + addl %r12d,%eax + xorl %edi,%ebp + addl -32(%r13),%esi + andnl %ecx,%eax,%edi + addl %ebp,%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + andl %ebx,%eax + addl %r12d,%esi + xorl %edi,%eax + addl -28(%r13),%edx + andnl %ebx,%esi,%edi + addl %eax,%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + andl %ebp,%esi + addl %r12d,%edx + xorl %edi,%esi + addl -24(%r13),%ecx + andnl %ebp,%edx,%edi + addl %esi,%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + andl %eax,%edx + addl %r12d,%ecx + xorl %edi,%edx + addl -20(%r13),%ebx + andnl %eax,%ecx,%edi + addl %edx,%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + andl %esi,%ecx + addl %r12d,%ebx + xorl %edi,%ecx + addl 0(%r13),%ebp + andnl %esi,%ebx,%edi + addl %ecx,%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + andl %edx,%ebx + addl %r12d,%ebp + xorl %edi,%ebx + addl 4(%r13),%eax + andnl %edx,%ebp,%edi + addl %ebx,%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + andl %ecx,%ebp + addl %r12d,%eax + xorl %edi,%ebp + addl 8(%r13),%esi + andnl %ecx,%eax,%edi + addl %ebp,%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + andl %ebx,%eax + addl %r12d,%esi + xorl %edi,%eax + addl 12(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + addl 32(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl 36(%r13),%ebx + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl 40(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + addl 44(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + addl 64(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + vmovdqu -64(%r14),%ymm11 + vpshufb %ymm6,%ymm0,%ymm0 + addl 68(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + addl 72(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl 76(%r13),%ebx + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl 96(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + addl 100(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + vpshufb %ymm6,%ymm1,%ymm1 + vpaddd %ymm11,%ymm0,%ymm8 + addl 104(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + addl 108(%r13),%edx + leaq 256(%r13),%r13 + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + addl -128(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl -124(%r13),%ebx + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl -120(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + vmovdqu %ymm8,0(%rsp) + vpshufb %ymm6,%ymm2,%ymm2 + vpaddd %ymm11,%ymm1,%ymm9 + addl -116(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + addl -96(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + addl -92(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + addl -88(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl -84(%r13),%ebx + movl %esi,%edi + xorl %eax,%edi + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + andl %edi,%ecx + vmovdqu %ymm9,32(%rsp) + vpshufb %ymm6,%ymm3,%ymm3 + vpaddd %ymm11,%ymm2,%ymm6 + addl -64(%r13),%ebp + xorl %esi,%ecx + movl %edx,%edi + xorl %esi,%edi + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + andl %edi,%ebx + addl -60(%r13),%eax + xorl %edx,%ebx + movl %ecx,%edi + xorl %edx,%edi + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + andl %edi,%ebp + addl -56(%r13),%esi + xorl %ecx,%ebp + movl %ebx,%edi + xorl %ecx,%edi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + andl %edi,%eax + addl -52(%r13),%edx + xorl %ebx,%eax + movl %ebp,%edi + xorl %ebx,%edi + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + andl %edi,%esi + addl -32(%r13),%ecx + xorl %ebp,%esi + movl %eax,%edi + xorl %ebp,%edi + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + andl %edi,%edx + jmp L$align32_3 +.p2align 5 +L$align32_3: + vmovdqu %ymm6,64(%rsp) + vpaddd %ymm11,%ymm3,%ymm7 + addl -28(%r13),%ebx + xorl %eax,%edx + movl %esi,%edi + xorl %eax,%edi + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + andl %edi,%ecx + addl -24(%r13),%ebp + xorl %esi,%ecx + movl %edx,%edi + xorl %esi,%edi + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + andl %edi,%ebx + addl -20(%r13),%eax + xorl %edx,%ebx + movl %ecx,%edi + xorl %edx,%edi + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + andl %edi,%ebp + addl 0(%r13),%esi + xorl %ecx,%ebp + movl %ebx,%edi + xorl %ecx,%edi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + andl %edi,%eax + addl 4(%r13),%edx + xorl %ebx,%eax + movl %ebp,%edi + xorl %ebx,%edi + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + andl %edi,%esi + vmovdqu %ymm7,96(%rsp) + addl 8(%r13),%ecx + xorl %ebp,%esi + movl %eax,%edi + xorl %ebp,%edi + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + andl %edi,%edx + addl 12(%r13),%ebx + xorl %eax,%edx + movl %esi,%edi + xorl %eax,%edi + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + andl %edi,%ecx + addl 32(%r13),%ebp + xorl %esi,%ecx + movl %edx,%edi + xorl %esi,%edi + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + andl %edi,%ebx + addl 36(%r13),%eax + xorl %edx,%ebx + movl %ecx,%edi + xorl %edx,%edi + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + andl %edi,%ebp + addl 40(%r13),%esi + xorl %ecx,%ebp + movl %ebx,%edi + xorl %ecx,%edi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + andl %edi,%eax + vpalignr $8,%ymm0,%ymm1,%ymm4 + addl 44(%r13),%edx + xorl %ebx,%eax + movl %ebp,%edi + xorl %ebx,%edi + vpsrldq $4,%ymm3,%ymm8 + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + vpxor %ymm0,%ymm4,%ymm4 + vpxor %ymm2,%ymm8,%ymm8 + xorl %ebp,%esi + addl %r12d,%edx + vpxor %ymm8,%ymm4,%ymm4 + andl %edi,%esi + addl 64(%r13),%ecx + xorl %ebp,%esi + movl %eax,%edi + vpsrld $31,%ymm4,%ymm8 + xorl %ebp,%edi + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + vpslldq $12,%ymm4,%ymm10 + vpaddd %ymm4,%ymm4,%ymm4 + rorxl $2,%edx,%esi + xorl %eax,%edx + vpsrld $30,%ymm10,%ymm9 + vpor %ymm8,%ymm4,%ymm4 + addl %r12d,%ecx + andl %edi,%edx + vpslld $2,%ymm10,%ymm10 + vpxor %ymm9,%ymm4,%ymm4 + addl 68(%r13),%ebx + xorl %eax,%edx + vpxor %ymm10,%ymm4,%ymm4 + movl %esi,%edi + xorl %eax,%edi + leal (%rbx,%rdx,1),%ebx + vpaddd %ymm11,%ymm4,%ymm9 + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + vmovdqu %ymm9,128(%rsp) + addl %r12d,%ebx + andl %edi,%ecx + addl 72(%r13),%ebp + xorl %esi,%ecx + movl %edx,%edi + xorl %esi,%edi + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + andl %edi,%ebx + addl 76(%r13),%eax + xorl %edx,%ebx + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + vpalignr $8,%ymm1,%ymm2,%ymm5 + addl 96(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + vpsrldq $4,%ymm4,%ymm8 + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + vpxor %ymm1,%ymm5,%ymm5 + vpxor %ymm3,%ymm8,%ymm8 + addl 100(%r13),%edx + leal (%rdx,%rax,1),%edx + vpxor %ymm8,%ymm5,%ymm5 + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + xorl %ebp,%esi + addl %r12d,%edx + vpsrld $31,%ymm5,%ymm8 + vmovdqu -32(%r14),%ymm11 + xorl %ebx,%esi + addl 104(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + vpslldq $12,%ymm5,%ymm10 + vpaddd %ymm5,%ymm5,%ymm5 + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + vpsrld $30,%ymm10,%ymm9 + vpor %ymm8,%ymm5,%ymm5 + xorl %eax,%edx + addl %r12d,%ecx + vpslld $2,%ymm10,%ymm10 + vpxor %ymm9,%ymm5,%ymm5 + xorl %ebp,%edx + addl 108(%r13),%ebx + leaq 256(%r13),%r13 + vpxor %ymm10,%ymm5,%ymm5 + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + vpaddd %ymm11,%ymm5,%ymm9 + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + vmovdqu %ymm9,160(%rsp) + addl -128(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + vpalignr $8,%ymm2,%ymm3,%ymm6 + addl -124(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + vpsrldq $4,%ymm5,%ymm8 + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + vpxor %ymm2,%ymm6,%ymm6 + vpxor %ymm4,%ymm8,%ymm8 + addl -120(%r13),%esi + leal (%rsi,%rbp,1),%esi + vpxor %ymm8,%ymm6,%ymm6 + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + vpsrld $31,%ymm6,%ymm8 + xorl %ecx,%eax + addl -116(%r13),%edx + leal (%rdx,%rax,1),%edx + vpslldq $12,%ymm6,%ymm10 + vpaddd %ymm6,%ymm6,%ymm6 + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + vpsrld $30,%ymm10,%ymm9 + vpor %ymm8,%ymm6,%ymm6 + xorl %ebp,%esi + addl %r12d,%edx + vpslld $2,%ymm10,%ymm10 + vpxor %ymm9,%ymm6,%ymm6 + xorl %ebx,%esi + addl -96(%r13),%ecx + vpxor %ymm10,%ymm6,%ymm6 + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + vpaddd %ymm11,%ymm6,%ymm9 + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + vmovdqu %ymm9,192(%rsp) + addl -92(%r13),%ebx + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + vpalignr $8,%ymm3,%ymm4,%ymm7 + addl -88(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + vpsrldq $4,%ymm6,%ymm8 + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + vpxor %ymm3,%ymm7,%ymm7 + vpxor %ymm5,%ymm8,%ymm8 + addl -84(%r13),%eax + leal (%rax,%rbx,1),%eax + vpxor %ymm8,%ymm7,%ymm7 + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + vpsrld $31,%ymm7,%ymm8 + xorl %edx,%ebp + addl -64(%r13),%esi + leal (%rsi,%rbp,1),%esi + vpslldq $12,%ymm7,%ymm10 + vpaddd %ymm7,%ymm7,%ymm7 + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + vpsrld $30,%ymm10,%ymm9 + vpor %ymm8,%ymm7,%ymm7 + xorl %ebx,%eax + addl %r12d,%esi + vpslld $2,%ymm10,%ymm10 + vpxor %ymm9,%ymm7,%ymm7 + xorl %ecx,%eax + addl -60(%r13),%edx + vpxor %ymm10,%ymm7,%ymm7 + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + rorxl $2,%esi,%eax + vpaddd %ymm11,%ymm7,%ymm9 + xorl %ebp,%esi + addl %r12d,%edx + xorl %ebx,%esi + vmovdqu %ymm9,224(%rsp) + addl -56(%r13),%ecx + leal (%rcx,%rsi,1),%ecx + rorxl $27,%edx,%r12d + rorxl $2,%edx,%esi + xorl %eax,%edx + addl %r12d,%ecx + xorl %ebp,%edx + addl -52(%r13),%ebx + leal (%rbx,%rdx,1),%ebx + rorxl $27,%ecx,%r12d + rorxl $2,%ecx,%edx + xorl %esi,%ecx + addl %r12d,%ebx + xorl %eax,%ecx + addl -32(%r13),%ebp + leal (%rcx,%rbp,1),%ebp + rorxl $27,%ebx,%r12d + rorxl $2,%ebx,%ecx + xorl %edx,%ebx + addl %r12d,%ebp + xorl %esi,%ebx + addl -28(%r13),%eax + leal (%rax,%rbx,1),%eax + rorxl $27,%ebp,%r12d + rorxl $2,%ebp,%ebx + xorl %ecx,%ebp + addl %r12d,%eax + xorl %edx,%ebp + addl -24(%r13),%esi + leal (%rsi,%rbp,1),%esi + rorxl $27,%eax,%r12d + rorxl $2,%eax,%ebp + xorl %ebx,%eax + addl %r12d,%esi + xorl %ecx,%eax + addl -20(%r13),%edx + leal (%rdx,%rax,1),%edx + rorxl $27,%esi,%r12d + addl %r12d,%edx + leaq 128(%rsp),%r13 + + + addl 0(%r8),%edx + addl 4(%r8),%esi + addl 8(%r8),%ebp + movl %edx,0(%r8) + addl 12(%r8),%ebx + movl %esi,4(%r8) + movl %edx,%eax + addl 16(%r8),%ecx + movl %ebp,%r12d + movl %ebp,8(%r8) + movl %ebx,%edx + + movl %ebx,12(%r8) + movl %esi,%ebp + movl %ecx,16(%r8) + + movl %ecx,%esi + movl %r12d,%ecx + + + cmpq %r10,%r9 + jbe L$oop_avx2 + +L$done_avx2: + vzeroupper + movq -40(%r11),%r14 + + movq -32(%r11),%r13 + + movq -24(%r11),%r12 + + movq -16(%r11),%rbp + + movq -8(%r11),%rbx + + leaq (%r11),%rsp + +L$epilogue_avx2: + .byte 0xf3,0xc3 + + +.p2align 6 +K_XX_XX: +.long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 +.long 0x5a827999,0x5a827999,0x5a827999,0x5a827999 +.long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1 +.long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1 +.long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc +.long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc +.long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6 +.long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6 +.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f +.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f +.byte 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0 +.byte 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.p2align 6 diff --git a/vere/ext/openssl/gen/macos-x86_64/crypto/sha/sha256-mb-x86_64.s b/vere/ext/openssl/gen/macos-x86_64/crypto/sha/sha256-mb-x86_64.s new file mode 100644 index 0000000..bab9a56 --- /dev/null +++ b/vere/ext/openssl/gen/macos-x86_64/crypto/sha/sha256-mb-x86_64.s @@ -0,0 +1,7948 @@ +.text + + + +.globl _sha256_multi_block + +.p2align 5 +_sha256_multi_block: + + movq _OPENSSL_ia32cap_P+4(%rip),%rcx + btq $61,%rcx + jc _shaext_shortcut + testl $268435456,%ecx + jnz _avx_shortcut + movq %rsp,%rax + + pushq %rbx + + pushq %rbp + + subq $288,%rsp + andq $-256,%rsp + movq %rax,272(%rsp) + +L$body: + leaq K256+128(%rip),%rbp + leaq 256(%rsp),%rbx + leaq 128(%rdi),%rdi + +L$oop_grande: + movl %edx,280(%rsp) + xorl %edx,%edx + movq 0(%rsi),%r8 + movl 8(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,0(%rbx) + cmovleq %rbp,%r8 + movq 16(%rsi),%r9 + movl 24(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,4(%rbx) + cmovleq %rbp,%r9 + movq 32(%rsi),%r10 + movl 40(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,8(%rbx) + cmovleq %rbp,%r10 + movq 48(%rsi),%r11 + movl 56(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,12(%rbx) + cmovleq %rbp,%r11 + testl %edx,%edx + jz L$done + + movdqu 0-128(%rdi),%xmm8 + leaq 128(%rsp),%rax + movdqu 32-128(%rdi),%xmm9 + movdqu 64-128(%rdi),%xmm10 + movdqu 96-128(%rdi),%xmm11 + movdqu 128-128(%rdi),%xmm12 + movdqu 160-128(%rdi),%xmm13 + movdqu 192-128(%rdi),%xmm14 + movdqu 224-128(%rdi),%xmm15 + movdqu L$pbswap(%rip),%xmm6 + jmp L$oop + +.p2align 5 +L$oop: + movdqa %xmm10,%xmm4 + pxor %xmm9,%xmm4 + movd 0(%r8),%xmm5 + movd 0(%r9),%xmm0 + movd 0(%r10),%xmm1 + movd 0(%r11),%xmm2 + punpckldq %xmm1,%xmm5 + punpckldq %xmm2,%xmm0 + punpckldq %xmm0,%xmm5 + movdqa %xmm12,%xmm7 +.byte 102,15,56,0,238 + movdqa %xmm12,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm12,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,0-128(%rax) + paddd %xmm15,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd -128(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm12,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm12,%xmm3 + pslld $26-21,%xmm2 + pandn %xmm14,%xmm0 + pand %xmm13,%xmm3 + pxor %xmm1,%xmm7 + + + movdqa %xmm8,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm8,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + movdqa %xmm9,%xmm3 + movdqa %xmm8,%xmm7 + pslld $10,%xmm2 + pxor %xmm8,%xmm3 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm3,%xmm4 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm9,%xmm15 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm4,%xmm15 + paddd %xmm5,%xmm11 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm15 + paddd %xmm7,%xmm15 + movd 4(%r8),%xmm5 + movd 4(%r9),%xmm0 + movd 4(%r10),%xmm1 + movd 4(%r11),%xmm2 + punpckldq %xmm1,%xmm5 + punpckldq %xmm2,%xmm0 + punpckldq %xmm0,%xmm5 + movdqa %xmm11,%xmm7 + + movdqa %xmm11,%xmm2 +.byte 102,15,56,0,238 + psrld $6,%xmm7 + movdqa %xmm11,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,16-128(%rax) + paddd %xmm14,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd -96(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm11,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm11,%xmm4 + pslld $26-21,%xmm2 + pandn %xmm13,%xmm0 + pand %xmm12,%xmm4 + pxor %xmm1,%xmm7 + + + movdqa %xmm15,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm15,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm4,%xmm0 + movdqa %xmm8,%xmm4 + movdqa %xmm15,%xmm7 + pslld $10,%xmm2 + pxor %xmm15,%xmm4 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm4,%xmm3 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm8,%xmm14 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm3,%xmm14 + paddd %xmm5,%xmm10 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm14 + paddd %xmm7,%xmm14 + movd 8(%r8),%xmm5 + movd 8(%r9),%xmm0 + movd 8(%r10),%xmm1 + movd 8(%r11),%xmm2 + punpckldq %xmm1,%xmm5 + punpckldq %xmm2,%xmm0 + punpckldq %xmm0,%xmm5 + movdqa %xmm10,%xmm7 +.byte 102,15,56,0,238 + movdqa %xmm10,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm10,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,32-128(%rax) + paddd %xmm13,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd -64(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm10,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm10,%xmm3 + pslld $26-21,%xmm2 + pandn %xmm12,%xmm0 + pand %xmm11,%xmm3 + pxor %xmm1,%xmm7 + + + movdqa %xmm14,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm14,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + movdqa %xmm15,%xmm3 + movdqa %xmm14,%xmm7 + pslld $10,%xmm2 + pxor %xmm14,%xmm3 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm3,%xmm4 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm15,%xmm13 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm4,%xmm13 + paddd %xmm5,%xmm9 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm13 + paddd %xmm7,%xmm13 + movd 12(%r8),%xmm5 + movd 12(%r9),%xmm0 + movd 12(%r10),%xmm1 + movd 12(%r11),%xmm2 + punpckldq %xmm1,%xmm5 + punpckldq %xmm2,%xmm0 + punpckldq %xmm0,%xmm5 + movdqa %xmm9,%xmm7 + + movdqa %xmm9,%xmm2 +.byte 102,15,56,0,238 + psrld $6,%xmm7 + movdqa %xmm9,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,48-128(%rax) + paddd %xmm12,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd -32(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm9,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm9,%xmm4 + pslld $26-21,%xmm2 + pandn %xmm11,%xmm0 + pand %xmm10,%xmm4 + pxor %xmm1,%xmm7 + + + movdqa %xmm13,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm13,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm4,%xmm0 + movdqa %xmm14,%xmm4 + movdqa %xmm13,%xmm7 + pslld $10,%xmm2 + pxor %xmm13,%xmm4 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm4,%xmm3 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm14,%xmm12 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm3,%xmm12 + paddd %xmm5,%xmm8 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm12 + paddd %xmm7,%xmm12 + movd 16(%r8),%xmm5 + movd 16(%r9),%xmm0 + movd 16(%r10),%xmm1 + movd 16(%r11),%xmm2 + punpckldq %xmm1,%xmm5 + punpckldq %xmm2,%xmm0 + punpckldq %xmm0,%xmm5 + movdqa %xmm8,%xmm7 +.byte 102,15,56,0,238 + movdqa %xmm8,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm8,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,64-128(%rax) + paddd %xmm11,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd 0(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm8,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm8,%xmm3 + pslld $26-21,%xmm2 + pandn %xmm10,%xmm0 + pand %xmm9,%xmm3 + pxor %xmm1,%xmm7 + + + movdqa %xmm12,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm12,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + movdqa %xmm13,%xmm3 + movdqa %xmm12,%xmm7 + pslld $10,%xmm2 + pxor %xmm12,%xmm3 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm3,%xmm4 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm13,%xmm11 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm4,%xmm11 + paddd %xmm5,%xmm15 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm11 + paddd %xmm7,%xmm11 + movd 20(%r8),%xmm5 + movd 20(%r9),%xmm0 + movd 20(%r10),%xmm1 + movd 20(%r11),%xmm2 + punpckldq %xmm1,%xmm5 + punpckldq %xmm2,%xmm0 + punpckldq %xmm0,%xmm5 + movdqa %xmm15,%xmm7 + + movdqa %xmm15,%xmm2 +.byte 102,15,56,0,238 + psrld $6,%xmm7 + movdqa %xmm15,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,80-128(%rax) + paddd %xmm10,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd 32(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm15,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm15,%xmm4 + pslld $26-21,%xmm2 + pandn %xmm9,%xmm0 + pand %xmm8,%xmm4 + pxor %xmm1,%xmm7 + + + movdqa %xmm11,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm11,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm4,%xmm0 + movdqa %xmm12,%xmm4 + movdqa %xmm11,%xmm7 + pslld $10,%xmm2 + pxor %xmm11,%xmm4 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm4,%xmm3 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm12,%xmm10 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm3,%xmm10 + paddd %xmm5,%xmm14 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm10 + paddd %xmm7,%xmm10 + movd 24(%r8),%xmm5 + movd 24(%r9),%xmm0 + movd 24(%r10),%xmm1 + movd 24(%r11),%xmm2 + punpckldq %xmm1,%xmm5 + punpckldq %xmm2,%xmm0 + punpckldq %xmm0,%xmm5 + movdqa %xmm14,%xmm7 +.byte 102,15,56,0,238 + movdqa %xmm14,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm14,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,96-128(%rax) + paddd %xmm9,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd 64(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm14,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm14,%xmm3 + pslld $26-21,%xmm2 + pandn %xmm8,%xmm0 + pand %xmm15,%xmm3 + pxor %xmm1,%xmm7 + + + movdqa %xmm10,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm10,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + movdqa %xmm11,%xmm3 + movdqa %xmm10,%xmm7 + pslld $10,%xmm2 + pxor %xmm10,%xmm3 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm3,%xmm4 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm11,%xmm9 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm4,%xmm9 + paddd %xmm5,%xmm13 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm9 + paddd %xmm7,%xmm9 + movd 28(%r8),%xmm5 + movd 28(%r9),%xmm0 + movd 28(%r10),%xmm1 + movd 28(%r11),%xmm2 + punpckldq %xmm1,%xmm5 + punpckldq %xmm2,%xmm0 + punpckldq %xmm0,%xmm5 + movdqa %xmm13,%xmm7 + + movdqa %xmm13,%xmm2 +.byte 102,15,56,0,238 + psrld $6,%xmm7 + movdqa %xmm13,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,112-128(%rax) + paddd %xmm8,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd 96(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm13,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm13,%xmm4 + pslld $26-21,%xmm2 + pandn %xmm15,%xmm0 + pand %xmm14,%xmm4 + pxor %xmm1,%xmm7 + + + movdqa %xmm9,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm9,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm4,%xmm0 + movdqa %xmm10,%xmm4 + movdqa %xmm9,%xmm7 + pslld $10,%xmm2 + pxor %xmm9,%xmm4 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm4,%xmm3 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm10,%xmm8 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm3,%xmm8 + paddd %xmm5,%xmm12 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm8 + paddd %xmm7,%xmm8 + leaq 256(%rbp),%rbp + movd 32(%r8),%xmm5 + movd 32(%r9),%xmm0 + movd 32(%r10),%xmm1 + movd 32(%r11),%xmm2 + punpckldq %xmm1,%xmm5 + punpckldq %xmm2,%xmm0 + punpckldq %xmm0,%xmm5 + movdqa %xmm12,%xmm7 +.byte 102,15,56,0,238 + movdqa %xmm12,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm12,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,128-128(%rax) + paddd %xmm15,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd -128(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm12,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm12,%xmm3 + pslld $26-21,%xmm2 + pandn %xmm14,%xmm0 + pand %xmm13,%xmm3 + pxor %xmm1,%xmm7 + + + movdqa %xmm8,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm8,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + movdqa %xmm9,%xmm3 + movdqa %xmm8,%xmm7 + pslld $10,%xmm2 + pxor %xmm8,%xmm3 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm3,%xmm4 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm9,%xmm15 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm4,%xmm15 + paddd %xmm5,%xmm11 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm15 + paddd %xmm7,%xmm15 + movd 36(%r8),%xmm5 + movd 36(%r9),%xmm0 + movd 36(%r10),%xmm1 + movd 36(%r11),%xmm2 + punpckldq %xmm1,%xmm5 + punpckldq %xmm2,%xmm0 + punpckldq %xmm0,%xmm5 + movdqa %xmm11,%xmm7 + + movdqa %xmm11,%xmm2 +.byte 102,15,56,0,238 + psrld $6,%xmm7 + movdqa %xmm11,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,144-128(%rax) + paddd %xmm14,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd -96(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm11,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm11,%xmm4 + pslld $26-21,%xmm2 + pandn %xmm13,%xmm0 + pand %xmm12,%xmm4 + pxor %xmm1,%xmm7 + + + movdqa %xmm15,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm15,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm4,%xmm0 + movdqa %xmm8,%xmm4 + movdqa %xmm15,%xmm7 + pslld $10,%xmm2 + pxor %xmm15,%xmm4 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm4,%xmm3 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm8,%xmm14 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm3,%xmm14 + paddd %xmm5,%xmm10 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm14 + paddd %xmm7,%xmm14 + movd 40(%r8),%xmm5 + movd 40(%r9),%xmm0 + movd 40(%r10),%xmm1 + movd 40(%r11),%xmm2 + punpckldq %xmm1,%xmm5 + punpckldq %xmm2,%xmm0 + punpckldq %xmm0,%xmm5 + movdqa %xmm10,%xmm7 +.byte 102,15,56,0,238 + movdqa %xmm10,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm10,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,160-128(%rax) + paddd %xmm13,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd -64(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm10,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm10,%xmm3 + pslld $26-21,%xmm2 + pandn %xmm12,%xmm0 + pand %xmm11,%xmm3 + pxor %xmm1,%xmm7 + + + movdqa %xmm14,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm14,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + movdqa %xmm15,%xmm3 + movdqa %xmm14,%xmm7 + pslld $10,%xmm2 + pxor %xmm14,%xmm3 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm3,%xmm4 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm15,%xmm13 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm4,%xmm13 + paddd %xmm5,%xmm9 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm13 + paddd %xmm7,%xmm13 + movd 44(%r8),%xmm5 + movd 44(%r9),%xmm0 + movd 44(%r10),%xmm1 + movd 44(%r11),%xmm2 + punpckldq %xmm1,%xmm5 + punpckldq %xmm2,%xmm0 + punpckldq %xmm0,%xmm5 + movdqa %xmm9,%xmm7 + + movdqa %xmm9,%xmm2 +.byte 102,15,56,0,238 + psrld $6,%xmm7 + movdqa %xmm9,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,176-128(%rax) + paddd %xmm12,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd -32(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm9,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm9,%xmm4 + pslld $26-21,%xmm2 + pandn %xmm11,%xmm0 + pand %xmm10,%xmm4 + pxor %xmm1,%xmm7 + + + movdqa %xmm13,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm13,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm4,%xmm0 + movdqa %xmm14,%xmm4 + movdqa %xmm13,%xmm7 + pslld $10,%xmm2 + pxor %xmm13,%xmm4 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm4,%xmm3 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm14,%xmm12 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm3,%xmm12 + paddd %xmm5,%xmm8 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm12 + paddd %xmm7,%xmm12 + movd 48(%r8),%xmm5 + movd 48(%r9),%xmm0 + movd 48(%r10),%xmm1 + movd 48(%r11),%xmm2 + punpckldq %xmm1,%xmm5 + punpckldq %xmm2,%xmm0 + punpckldq %xmm0,%xmm5 + movdqa %xmm8,%xmm7 +.byte 102,15,56,0,238 + movdqa %xmm8,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm8,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,192-128(%rax) + paddd %xmm11,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd 0(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm8,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm8,%xmm3 + pslld $26-21,%xmm2 + pandn %xmm10,%xmm0 + pand %xmm9,%xmm3 + pxor %xmm1,%xmm7 + + + movdqa %xmm12,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm12,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + movdqa %xmm13,%xmm3 + movdqa %xmm12,%xmm7 + pslld $10,%xmm2 + pxor %xmm12,%xmm3 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm3,%xmm4 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm13,%xmm11 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm4,%xmm11 + paddd %xmm5,%xmm15 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm11 + paddd %xmm7,%xmm11 + movd 52(%r8),%xmm5 + movd 52(%r9),%xmm0 + movd 52(%r10),%xmm1 + movd 52(%r11),%xmm2 + punpckldq %xmm1,%xmm5 + punpckldq %xmm2,%xmm0 + punpckldq %xmm0,%xmm5 + movdqa %xmm15,%xmm7 + + movdqa %xmm15,%xmm2 +.byte 102,15,56,0,238 + psrld $6,%xmm7 + movdqa %xmm15,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,208-128(%rax) + paddd %xmm10,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd 32(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm15,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm15,%xmm4 + pslld $26-21,%xmm2 + pandn %xmm9,%xmm0 + pand %xmm8,%xmm4 + pxor %xmm1,%xmm7 + + + movdqa %xmm11,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm11,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm4,%xmm0 + movdqa %xmm12,%xmm4 + movdqa %xmm11,%xmm7 + pslld $10,%xmm2 + pxor %xmm11,%xmm4 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm4,%xmm3 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm12,%xmm10 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm3,%xmm10 + paddd %xmm5,%xmm14 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm10 + paddd %xmm7,%xmm10 + movd 56(%r8),%xmm5 + movd 56(%r9),%xmm0 + movd 56(%r10),%xmm1 + movd 56(%r11),%xmm2 + punpckldq %xmm1,%xmm5 + punpckldq %xmm2,%xmm0 + punpckldq %xmm0,%xmm5 + movdqa %xmm14,%xmm7 +.byte 102,15,56,0,238 + movdqa %xmm14,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm14,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,224-128(%rax) + paddd %xmm9,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd 64(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm14,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm14,%xmm3 + pslld $26-21,%xmm2 + pandn %xmm8,%xmm0 + pand %xmm15,%xmm3 + pxor %xmm1,%xmm7 + + + movdqa %xmm10,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm10,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + movdqa %xmm11,%xmm3 + movdqa %xmm10,%xmm7 + pslld $10,%xmm2 + pxor %xmm10,%xmm3 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm3,%xmm4 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm11,%xmm9 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm4,%xmm9 + paddd %xmm5,%xmm13 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm9 + paddd %xmm7,%xmm9 + movd 60(%r8),%xmm5 + leaq 64(%r8),%r8 + movd 60(%r9),%xmm0 + leaq 64(%r9),%r9 + movd 60(%r10),%xmm1 + leaq 64(%r10),%r10 + movd 60(%r11),%xmm2 + leaq 64(%r11),%r11 + punpckldq %xmm1,%xmm5 + punpckldq %xmm2,%xmm0 + punpckldq %xmm0,%xmm5 + movdqa %xmm13,%xmm7 + + movdqa %xmm13,%xmm2 +.byte 102,15,56,0,238 + psrld $6,%xmm7 + movdqa %xmm13,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,240-128(%rax) + paddd %xmm8,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd 96(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm13,%xmm0 + prefetcht0 63(%r8) + pxor %xmm2,%xmm7 + movdqa %xmm13,%xmm4 + pslld $26-21,%xmm2 + pandn %xmm15,%xmm0 + pand %xmm14,%xmm4 + pxor %xmm1,%xmm7 + + prefetcht0 63(%r9) + movdqa %xmm9,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm9,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm4,%xmm0 + movdqa %xmm10,%xmm4 + movdqa %xmm9,%xmm7 + pslld $10,%xmm2 + pxor %xmm9,%xmm4 + + prefetcht0 63(%r10) + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm4,%xmm3 + pxor %xmm7,%xmm1 + + prefetcht0 63(%r11) + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm10,%xmm8 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm3,%xmm8 + paddd %xmm5,%xmm12 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm8 + paddd %xmm7,%xmm8 + leaq 256(%rbp),%rbp + movdqu 0-128(%rax),%xmm5 + movl $3,%ecx + jmp L$oop_16_xx +.p2align 5 +L$oop_16_xx: + movdqa 16-128(%rax),%xmm6 + paddd 144-128(%rax),%xmm5 + + movdqa %xmm6,%xmm7 + movdqa %xmm6,%xmm1 + psrld $3,%xmm7 + movdqa %xmm6,%xmm2 + + psrld $7,%xmm1 + movdqa 224-128(%rax),%xmm0 + pslld $14,%xmm2 + pxor %xmm1,%xmm7 + psrld $18-7,%xmm1 + movdqa %xmm0,%xmm3 + pxor %xmm2,%xmm7 + pslld $25-14,%xmm2 + pxor %xmm1,%xmm7 + psrld $10,%xmm0 + movdqa %xmm3,%xmm1 + + psrld $17,%xmm3 + pxor %xmm2,%xmm7 + pslld $13,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + psrld $19-17,%xmm3 + pxor %xmm1,%xmm0 + pslld $15-13,%xmm1 + pxor %xmm3,%xmm0 + pxor %xmm1,%xmm0 + paddd %xmm0,%xmm5 + movdqa %xmm12,%xmm7 + + movdqa %xmm12,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm12,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,0-128(%rax) + paddd %xmm15,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd -128(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm12,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm12,%xmm3 + pslld $26-21,%xmm2 + pandn %xmm14,%xmm0 + pand %xmm13,%xmm3 + pxor %xmm1,%xmm7 + + + movdqa %xmm8,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm8,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + movdqa %xmm9,%xmm3 + movdqa %xmm8,%xmm7 + pslld $10,%xmm2 + pxor %xmm8,%xmm3 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm3,%xmm4 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm9,%xmm15 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm4,%xmm15 + paddd %xmm5,%xmm11 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm15 + paddd %xmm7,%xmm15 + movdqa 32-128(%rax),%xmm5 + paddd 160-128(%rax),%xmm6 + + movdqa %xmm5,%xmm7 + movdqa %xmm5,%xmm1 + psrld $3,%xmm7 + movdqa %xmm5,%xmm2 + + psrld $7,%xmm1 + movdqa 240-128(%rax),%xmm0 + pslld $14,%xmm2 + pxor %xmm1,%xmm7 + psrld $18-7,%xmm1 + movdqa %xmm0,%xmm4 + pxor %xmm2,%xmm7 + pslld $25-14,%xmm2 + pxor %xmm1,%xmm7 + psrld $10,%xmm0 + movdqa %xmm4,%xmm1 + + psrld $17,%xmm4 + pxor %xmm2,%xmm7 + pslld $13,%xmm1 + paddd %xmm7,%xmm6 + pxor %xmm4,%xmm0 + psrld $19-17,%xmm4 + pxor %xmm1,%xmm0 + pslld $15-13,%xmm1 + pxor %xmm4,%xmm0 + pxor %xmm1,%xmm0 + paddd %xmm0,%xmm6 + movdqa %xmm11,%xmm7 + + movdqa %xmm11,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm11,%xmm1 + pslld $7,%xmm2 + movdqa %xmm6,16-128(%rax) + paddd %xmm14,%xmm6 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd -96(%rbp),%xmm6 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm11,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm11,%xmm4 + pslld $26-21,%xmm2 + pandn %xmm13,%xmm0 + pand %xmm12,%xmm4 + pxor %xmm1,%xmm7 + + + movdqa %xmm15,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm15,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm6 + pxor %xmm4,%xmm0 + movdqa %xmm8,%xmm4 + movdqa %xmm15,%xmm7 + pslld $10,%xmm2 + pxor %xmm15,%xmm4 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm6 + pslld $19-10,%xmm2 + pand %xmm4,%xmm3 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm8,%xmm14 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm3,%xmm14 + paddd %xmm6,%xmm10 + pxor %xmm2,%xmm7 + + paddd %xmm6,%xmm14 + paddd %xmm7,%xmm14 + movdqa 48-128(%rax),%xmm6 + paddd 176-128(%rax),%xmm5 + + movdqa %xmm6,%xmm7 + movdqa %xmm6,%xmm1 + psrld $3,%xmm7 + movdqa %xmm6,%xmm2 + + psrld $7,%xmm1 + movdqa 0-128(%rax),%xmm0 + pslld $14,%xmm2 + pxor %xmm1,%xmm7 + psrld $18-7,%xmm1 + movdqa %xmm0,%xmm3 + pxor %xmm2,%xmm7 + pslld $25-14,%xmm2 + pxor %xmm1,%xmm7 + psrld $10,%xmm0 + movdqa %xmm3,%xmm1 + + psrld $17,%xmm3 + pxor %xmm2,%xmm7 + pslld $13,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + psrld $19-17,%xmm3 + pxor %xmm1,%xmm0 + pslld $15-13,%xmm1 + pxor %xmm3,%xmm0 + pxor %xmm1,%xmm0 + paddd %xmm0,%xmm5 + movdqa %xmm10,%xmm7 + + movdqa %xmm10,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm10,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,32-128(%rax) + paddd %xmm13,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd -64(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm10,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm10,%xmm3 + pslld $26-21,%xmm2 + pandn %xmm12,%xmm0 + pand %xmm11,%xmm3 + pxor %xmm1,%xmm7 + + + movdqa %xmm14,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm14,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + movdqa %xmm15,%xmm3 + movdqa %xmm14,%xmm7 + pslld $10,%xmm2 + pxor %xmm14,%xmm3 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm3,%xmm4 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm15,%xmm13 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm4,%xmm13 + paddd %xmm5,%xmm9 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm13 + paddd %xmm7,%xmm13 + movdqa 64-128(%rax),%xmm5 + paddd 192-128(%rax),%xmm6 + + movdqa %xmm5,%xmm7 + movdqa %xmm5,%xmm1 + psrld $3,%xmm7 + movdqa %xmm5,%xmm2 + + psrld $7,%xmm1 + movdqa 16-128(%rax),%xmm0 + pslld $14,%xmm2 + pxor %xmm1,%xmm7 + psrld $18-7,%xmm1 + movdqa %xmm0,%xmm4 + pxor %xmm2,%xmm7 + pslld $25-14,%xmm2 + pxor %xmm1,%xmm7 + psrld $10,%xmm0 + movdqa %xmm4,%xmm1 + + psrld $17,%xmm4 + pxor %xmm2,%xmm7 + pslld $13,%xmm1 + paddd %xmm7,%xmm6 + pxor %xmm4,%xmm0 + psrld $19-17,%xmm4 + pxor %xmm1,%xmm0 + pslld $15-13,%xmm1 + pxor %xmm4,%xmm0 + pxor %xmm1,%xmm0 + paddd %xmm0,%xmm6 + movdqa %xmm9,%xmm7 + + movdqa %xmm9,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm9,%xmm1 + pslld $7,%xmm2 + movdqa %xmm6,48-128(%rax) + paddd %xmm12,%xmm6 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd -32(%rbp),%xmm6 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm9,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm9,%xmm4 + pslld $26-21,%xmm2 + pandn %xmm11,%xmm0 + pand %xmm10,%xmm4 + pxor %xmm1,%xmm7 + + + movdqa %xmm13,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm13,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm6 + pxor %xmm4,%xmm0 + movdqa %xmm14,%xmm4 + movdqa %xmm13,%xmm7 + pslld $10,%xmm2 + pxor %xmm13,%xmm4 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm6 + pslld $19-10,%xmm2 + pand %xmm4,%xmm3 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm14,%xmm12 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm3,%xmm12 + paddd %xmm6,%xmm8 + pxor %xmm2,%xmm7 + + paddd %xmm6,%xmm12 + paddd %xmm7,%xmm12 + movdqa 80-128(%rax),%xmm6 + paddd 208-128(%rax),%xmm5 + + movdqa %xmm6,%xmm7 + movdqa %xmm6,%xmm1 + psrld $3,%xmm7 + movdqa %xmm6,%xmm2 + + psrld $7,%xmm1 + movdqa 32-128(%rax),%xmm0 + pslld $14,%xmm2 + pxor %xmm1,%xmm7 + psrld $18-7,%xmm1 + movdqa %xmm0,%xmm3 + pxor %xmm2,%xmm7 + pslld $25-14,%xmm2 + pxor %xmm1,%xmm7 + psrld $10,%xmm0 + movdqa %xmm3,%xmm1 + + psrld $17,%xmm3 + pxor %xmm2,%xmm7 + pslld $13,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + psrld $19-17,%xmm3 + pxor %xmm1,%xmm0 + pslld $15-13,%xmm1 + pxor %xmm3,%xmm0 + pxor %xmm1,%xmm0 + paddd %xmm0,%xmm5 + movdqa %xmm8,%xmm7 + + movdqa %xmm8,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm8,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,64-128(%rax) + paddd %xmm11,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd 0(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm8,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm8,%xmm3 + pslld $26-21,%xmm2 + pandn %xmm10,%xmm0 + pand %xmm9,%xmm3 + pxor %xmm1,%xmm7 + + + movdqa %xmm12,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm12,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + movdqa %xmm13,%xmm3 + movdqa %xmm12,%xmm7 + pslld $10,%xmm2 + pxor %xmm12,%xmm3 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm3,%xmm4 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm13,%xmm11 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm4,%xmm11 + paddd %xmm5,%xmm15 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm11 + paddd %xmm7,%xmm11 + movdqa 96-128(%rax),%xmm5 + paddd 224-128(%rax),%xmm6 + + movdqa %xmm5,%xmm7 + movdqa %xmm5,%xmm1 + psrld $3,%xmm7 + movdqa %xmm5,%xmm2 + + psrld $7,%xmm1 + movdqa 48-128(%rax),%xmm0 + pslld $14,%xmm2 + pxor %xmm1,%xmm7 + psrld $18-7,%xmm1 + movdqa %xmm0,%xmm4 + pxor %xmm2,%xmm7 + pslld $25-14,%xmm2 + pxor %xmm1,%xmm7 + psrld $10,%xmm0 + movdqa %xmm4,%xmm1 + + psrld $17,%xmm4 + pxor %xmm2,%xmm7 + pslld $13,%xmm1 + paddd %xmm7,%xmm6 + pxor %xmm4,%xmm0 + psrld $19-17,%xmm4 + pxor %xmm1,%xmm0 + pslld $15-13,%xmm1 + pxor %xmm4,%xmm0 + pxor %xmm1,%xmm0 + paddd %xmm0,%xmm6 + movdqa %xmm15,%xmm7 + + movdqa %xmm15,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm15,%xmm1 + pslld $7,%xmm2 + movdqa %xmm6,80-128(%rax) + paddd %xmm10,%xmm6 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd 32(%rbp),%xmm6 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm15,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm15,%xmm4 + pslld $26-21,%xmm2 + pandn %xmm9,%xmm0 + pand %xmm8,%xmm4 + pxor %xmm1,%xmm7 + + + movdqa %xmm11,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm11,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm6 + pxor %xmm4,%xmm0 + movdqa %xmm12,%xmm4 + movdqa %xmm11,%xmm7 + pslld $10,%xmm2 + pxor %xmm11,%xmm4 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm6 + pslld $19-10,%xmm2 + pand %xmm4,%xmm3 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm12,%xmm10 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm3,%xmm10 + paddd %xmm6,%xmm14 + pxor %xmm2,%xmm7 + + paddd %xmm6,%xmm10 + paddd %xmm7,%xmm10 + movdqa 112-128(%rax),%xmm6 + paddd 240-128(%rax),%xmm5 + + movdqa %xmm6,%xmm7 + movdqa %xmm6,%xmm1 + psrld $3,%xmm7 + movdqa %xmm6,%xmm2 + + psrld $7,%xmm1 + movdqa 64-128(%rax),%xmm0 + pslld $14,%xmm2 + pxor %xmm1,%xmm7 + psrld $18-7,%xmm1 + movdqa %xmm0,%xmm3 + pxor %xmm2,%xmm7 + pslld $25-14,%xmm2 + pxor %xmm1,%xmm7 + psrld $10,%xmm0 + movdqa %xmm3,%xmm1 + + psrld $17,%xmm3 + pxor %xmm2,%xmm7 + pslld $13,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + psrld $19-17,%xmm3 + pxor %xmm1,%xmm0 + pslld $15-13,%xmm1 + pxor %xmm3,%xmm0 + pxor %xmm1,%xmm0 + paddd %xmm0,%xmm5 + movdqa %xmm14,%xmm7 + + movdqa %xmm14,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm14,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,96-128(%rax) + paddd %xmm9,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd 64(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm14,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm14,%xmm3 + pslld $26-21,%xmm2 + pandn %xmm8,%xmm0 + pand %xmm15,%xmm3 + pxor %xmm1,%xmm7 + + + movdqa %xmm10,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm10,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + movdqa %xmm11,%xmm3 + movdqa %xmm10,%xmm7 + pslld $10,%xmm2 + pxor %xmm10,%xmm3 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm3,%xmm4 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm11,%xmm9 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm4,%xmm9 + paddd %xmm5,%xmm13 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm9 + paddd %xmm7,%xmm9 + movdqa 128-128(%rax),%xmm5 + paddd 0-128(%rax),%xmm6 + + movdqa %xmm5,%xmm7 + movdqa %xmm5,%xmm1 + psrld $3,%xmm7 + movdqa %xmm5,%xmm2 + + psrld $7,%xmm1 + movdqa 80-128(%rax),%xmm0 + pslld $14,%xmm2 + pxor %xmm1,%xmm7 + psrld $18-7,%xmm1 + movdqa %xmm0,%xmm4 + pxor %xmm2,%xmm7 + pslld $25-14,%xmm2 + pxor %xmm1,%xmm7 + psrld $10,%xmm0 + movdqa %xmm4,%xmm1 + + psrld $17,%xmm4 + pxor %xmm2,%xmm7 + pslld $13,%xmm1 + paddd %xmm7,%xmm6 + pxor %xmm4,%xmm0 + psrld $19-17,%xmm4 + pxor %xmm1,%xmm0 + pslld $15-13,%xmm1 + pxor %xmm4,%xmm0 + pxor %xmm1,%xmm0 + paddd %xmm0,%xmm6 + movdqa %xmm13,%xmm7 + + movdqa %xmm13,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm13,%xmm1 + pslld $7,%xmm2 + movdqa %xmm6,112-128(%rax) + paddd %xmm8,%xmm6 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd 96(%rbp),%xmm6 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm13,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm13,%xmm4 + pslld $26-21,%xmm2 + pandn %xmm15,%xmm0 + pand %xmm14,%xmm4 + pxor %xmm1,%xmm7 + + + movdqa %xmm9,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm9,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm6 + pxor %xmm4,%xmm0 + movdqa %xmm10,%xmm4 + movdqa %xmm9,%xmm7 + pslld $10,%xmm2 + pxor %xmm9,%xmm4 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm6 + pslld $19-10,%xmm2 + pand %xmm4,%xmm3 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm10,%xmm8 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm3,%xmm8 + paddd %xmm6,%xmm12 + pxor %xmm2,%xmm7 + + paddd %xmm6,%xmm8 + paddd %xmm7,%xmm8 + leaq 256(%rbp),%rbp + movdqa 144-128(%rax),%xmm6 + paddd 16-128(%rax),%xmm5 + + movdqa %xmm6,%xmm7 + movdqa %xmm6,%xmm1 + psrld $3,%xmm7 + movdqa %xmm6,%xmm2 + + psrld $7,%xmm1 + movdqa 96-128(%rax),%xmm0 + pslld $14,%xmm2 + pxor %xmm1,%xmm7 + psrld $18-7,%xmm1 + movdqa %xmm0,%xmm3 + pxor %xmm2,%xmm7 + pslld $25-14,%xmm2 + pxor %xmm1,%xmm7 + psrld $10,%xmm0 + movdqa %xmm3,%xmm1 + + psrld $17,%xmm3 + pxor %xmm2,%xmm7 + pslld $13,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + psrld $19-17,%xmm3 + pxor %xmm1,%xmm0 + pslld $15-13,%xmm1 + pxor %xmm3,%xmm0 + pxor %xmm1,%xmm0 + paddd %xmm0,%xmm5 + movdqa %xmm12,%xmm7 + + movdqa %xmm12,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm12,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,128-128(%rax) + paddd %xmm15,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd -128(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm12,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm12,%xmm3 + pslld $26-21,%xmm2 + pandn %xmm14,%xmm0 + pand %xmm13,%xmm3 + pxor %xmm1,%xmm7 + + + movdqa %xmm8,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm8,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + movdqa %xmm9,%xmm3 + movdqa %xmm8,%xmm7 + pslld $10,%xmm2 + pxor %xmm8,%xmm3 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm3,%xmm4 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm9,%xmm15 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm4,%xmm15 + paddd %xmm5,%xmm11 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm15 + paddd %xmm7,%xmm15 + movdqa 160-128(%rax),%xmm5 + paddd 32-128(%rax),%xmm6 + + movdqa %xmm5,%xmm7 + movdqa %xmm5,%xmm1 + psrld $3,%xmm7 + movdqa %xmm5,%xmm2 + + psrld $7,%xmm1 + movdqa 112-128(%rax),%xmm0 + pslld $14,%xmm2 + pxor %xmm1,%xmm7 + psrld $18-7,%xmm1 + movdqa %xmm0,%xmm4 + pxor %xmm2,%xmm7 + pslld $25-14,%xmm2 + pxor %xmm1,%xmm7 + psrld $10,%xmm0 + movdqa %xmm4,%xmm1 + + psrld $17,%xmm4 + pxor %xmm2,%xmm7 + pslld $13,%xmm1 + paddd %xmm7,%xmm6 + pxor %xmm4,%xmm0 + psrld $19-17,%xmm4 + pxor %xmm1,%xmm0 + pslld $15-13,%xmm1 + pxor %xmm4,%xmm0 + pxor %xmm1,%xmm0 + paddd %xmm0,%xmm6 + movdqa %xmm11,%xmm7 + + movdqa %xmm11,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm11,%xmm1 + pslld $7,%xmm2 + movdqa %xmm6,144-128(%rax) + paddd %xmm14,%xmm6 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd -96(%rbp),%xmm6 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm11,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm11,%xmm4 + pslld $26-21,%xmm2 + pandn %xmm13,%xmm0 + pand %xmm12,%xmm4 + pxor %xmm1,%xmm7 + + + movdqa %xmm15,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm15,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm6 + pxor %xmm4,%xmm0 + movdqa %xmm8,%xmm4 + movdqa %xmm15,%xmm7 + pslld $10,%xmm2 + pxor %xmm15,%xmm4 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm6 + pslld $19-10,%xmm2 + pand %xmm4,%xmm3 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm8,%xmm14 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm3,%xmm14 + paddd %xmm6,%xmm10 + pxor %xmm2,%xmm7 + + paddd %xmm6,%xmm14 + paddd %xmm7,%xmm14 + movdqa 176-128(%rax),%xmm6 + paddd 48-128(%rax),%xmm5 + + movdqa %xmm6,%xmm7 + movdqa %xmm6,%xmm1 + psrld $3,%xmm7 + movdqa %xmm6,%xmm2 + + psrld $7,%xmm1 + movdqa 128-128(%rax),%xmm0 + pslld $14,%xmm2 + pxor %xmm1,%xmm7 + psrld $18-7,%xmm1 + movdqa %xmm0,%xmm3 + pxor %xmm2,%xmm7 + pslld $25-14,%xmm2 + pxor %xmm1,%xmm7 + psrld $10,%xmm0 + movdqa %xmm3,%xmm1 + + psrld $17,%xmm3 + pxor %xmm2,%xmm7 + pslld $13,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + psrld $19-17,%xmm3 + pxor %xmm1,%xmm0 + pslld $15-13,%xmm1 + pxor %xmm3,%xmm0 + pxor %xmm1,%xmm0 + paddd %xmm0,%xmm5 + movdqa %xmm10,%xmm7 + + movdqa %xmm10,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm10,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,160-128(%rax) + paddd %xmm13,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd -64(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm10,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm10,%xmm3 + pslld $26-21,%xmm2 + pandn %xmm12,%xmm0 + pand %xmm11,%xmm3 + pxor %xmm1,%xmm7 + + + movdqa %xmm14,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm14,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + movdqa %xmm15,%xmm3 + movdqa %xmm14,%xmm7 + pslld $10,%xmm2 + pxor %xmm14,%xmm3 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm3,%xmm4 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm15,%xmm13 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm4,%xmm13 + paddd %xmm5,%xmm9 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm13 + paddd %xmm7,%xmm13 + movdqa 192-128(%rax),%xmm5 + paddd 64-128(%rax),%xmm6 + + movdqa %xmm5,%xmm7 + movdqa %xmm5,%xmm1 + psrld $3,%xmm7 + movdqa %xmm5,%xmm2 + + psrld $7,%xmm1 + movdqa 144-128(%rax),%xmm0 + pslld $14,%xmm2 + pxor %xmm1,%xmm7 + psrld $18-7,%xmm1 + movdqa %xmm0,%xmm4 + pxor %xmm2,%xmm7 + pslld $25-14,%xmm2 + pxor %xmm1,%xmm7 + psrld $10,%xmm0 + movdqa %xmm4,%xmm1 + + psrld $17,%xmm4 + pxor %xmm2,%xmm7 + pslld $13,%xmm1 + paddd %xmm7,%xmm6 + pxor %xmm4,%xmm0 + psrld $19-17,%xmm4 + pxor %xmm1,%xmm0 + pslld $15-13,%xmm1 + pxor %xmm4,%xmm0 + pxor %xmm1,%xmm0 + paddd %xmm0,%xmm6 + movdqa %xmm9,%xmm7 + + movdqa %xmm9,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm9,%xmm1 + pslld $7,%xmm2 + movdqa %xmm6,176-128(%rax) + paddd %xmm12,%xmm6 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd -32(%rbp),%xmm6 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm9,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm9,%xmm4 + pslld $26-21,%xmm2 + pandn %xmm11,%xmm0 + pand %xmm10,%xmm4 + pxor %xmm1,%xmm7 + + + movdqa %xmm13,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm13,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm6 + pxor %xmm4,%xmm0 + movdqa %xmm14,%xmm4 + movdqa %xmm13,%xmm7 + pslld $10,%xmm2 + pxor %xmm13,%xmm4 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm6 + pslld $19-10,%xmm2 + pand %xmm4,%xmm3 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm14,%xmm12 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm3,%xmm12 + paddd %xmm6,%xmm8 + pxor %xmm2,%xmm7 + + paddd %xmm6,%xmm12 + paddd %xmm7,%xmm12 + movdqa 208-128(%rax),%xmm6 + paddd 80-128(%rax),%xmm5 + + movdqa %xmm6,%xmm7 + movdqa %xmm6,%xmm1 + psrld $3,%xmm7 + movdqa %xmm6,%xmm2 + + psrld $7,%xmm1 + movdqa 160-128(%rax),%xmm0 + pslld $14,%xmm2 + pxor %xmm1,%xmm7 + psrld $18-7,%xmm1 + movdqa %xmm0,%xmm3 + pxor %xmm2,%xmm7 + pslld $25-14,%xmm2 + pxor %xmm1,%xmm7 + psrld $10,%xmm0 + movdqa %xmm3,%xmm1 + + psrld $17,%xmm3 + pxor %xmm2,%xmm7 + pslld $13,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + psrld $19-17,%xmm3 + pxor %xmm1,%xmm0 + pslld $15-13,%xmm1 + pxor %xmm3,%xmm0 + pxor %xmm1,%xmm0 + paddd %xmm0,%xmm5 + movdqa %xmm8,%xmm7 + + movdqa %xmm8,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm8,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,192-128(%rax) + paddd %xmm11,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd 0(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm8,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm8,%xmm3 + pslld $26-21,%xmm2 + pandn %xmm10,%xmm0 + pand %xmm9,%xmm3 + pxor %xmm1,%xmm7 + + + movdqa %xmm12,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm12,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + movdqa %xmm13,%xmm3 + movdqa %xmm12,%xmm7 + pslld $10,%xmm2 + pxor %xmm12,%xmm3 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm3,%xmm4 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm13,%xmm11 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm4,%xmm11 + paddd %xmm5,%xmm15 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm11 + paddd %xmm7,%xmm11 + movdqa 224-128(%rax),%xmm5 + paddd 96-128(%rax),%xmm6 + + movdqa %xmm5,%xmm7 + movdqa %xmm5,%xmm1 + psrld $3,%xmm7 + movdqa %xmm5,%xmm2 + + psrld $7,%xmm1 + movdqa 176-128(%rax),%xmm0 + pslld $14,%xmm2 + pxor %xmm1,%xmm7 + psrld $18-7,%xmm1 + movdqa %xmm0,%xmm4 + pxor %xmm2,%xmm7 + pslld $25-14,%xmm2 + pxor %xmm1,%xmm7 + psrld $10,%xmm0 + movdqa %xmm4,%xmm1 + + psrld $17,%xmm4 + pxor %xmm2,%xmm7 + pslld $13,%xmm1 + paddd %xmm7,%xmm6 + pxor %xmm4,%xmm0 + psrld $19-17,%xmm4 + pxor %xmm1,%xmm0 + pslld $15-13,%xmm1 + pxor %xmm4,%xmm0 + pxor %xmm1,%xmm0 + paddd %xmm0,%xmm6 + movdqa %xmm15,%xmm7 + + movdqa %xmm15,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm15,%xmm1 + pslld $7,%xmm2 + movdqa %xmm6,208-128(%rax) + paddd %xmm10,%xmm6 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd 32(%rbp),%xmm6 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm15,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm15,%xmm4 + pslld $26-21,%xmm2 + pandn %xmm9,%xmm0 + pand %xmm8,%xmm4 + pxor %xmm1,%xmm7 + + + movdqa %xmm11,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm11,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm6 + pxor %xmm4,%xmm0 + movdqa %xmm12,%xmm4 + movdqa %xmm11,%xmm7 + pslld $10,%xmm2 + pxor %xmm11,%xmm4 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm6 + pslld $19-10,%xmm2 + pand %xmm4,%xmm3 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm12,%xmm10 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm3,%xmm10 + paddd %xmm6,%xmm14 + pxor %xmm2,%xmm7 + + paddd %xmm6,%xmm10 + paddd %xmm7,%xmm10 + movdqa 240-128(%rax),%xmm6 + paddd 112-128(%rax),%xmm5 + + movdqa %xmm6,%xmm7 + movdqa %xmm6,%xmm1 + psrld $3,%xmm7 + movdqa %xmm6,%xmm2 + + psrld $7,%xmm1 + movdqa 192-128(%rax),%xmm0 + pslld $14,%xmm2 + pxor %xmm1,%xmm7 + psrld $18-7,%xmm1 + movdqa %xmm0,%xmm3 + pxor %xmm2,%xmm7 + pslld $25-14,%xmm2 + pxor %xmm1,%xmm7 + psrld $10,%xmm0 + movdqa %xmm3,%xmm1 + + psrld $17,%xmm3 + pxor %xmm2,%xmm7 + pslld $13,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + psrld $19-17,%xmm3 + pxor %xmm1,%xmm0 + pslld $15-13,%xmm1 + pxor %xmm3,%xmm0 + pxor %xmm1,%xmm0 + paddd %xmm0,%xmm5 + movdqa %xmm14,%xmm7 + + movdqa %xmm14,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm14,%xmm1 + pslld $7,%xmm2 + movdqa %xmm5,224-128(%rax) + paddd %xmm9,%xmm5 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd 64(%rbp),%xmm5 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm14,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm14,%xmm3 + pslld $26-21,%xmm2 + pandn %xmm8,%xmm0 + pand %xmm15,%xmm3 + pxor %xmm1,%xmm7 + + + movdqa %xmm10,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm10,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm5 + pxor %xmm3,%xmm0 + movdqa %xmm11,%xmm3 + movdqa %xmm10,%xmm7 + pslld $10,%xmm2 + pxor %xmm10,%xmm3 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm5 + pslld $19-10,%xmm2 + pand %xmm3,%xmm4 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm11,%xmm9 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm4,%xmm9 + paddd %xmm5,%xmm13 + pxor %xmm2,%xmm7 + + paddd %xmm5,%xmm9 + paddd %xmm7,%xmm9 + movdqa 0-128(%rax),%xmm5 + paddd 128-128(%rax),%xmm6 + + movdqa %xmm5,%xmm7 + movdqa %xmm5,%xmm1 + psrld $3,%xmm7 + movdqa %xmm5,%xmm2 + + psrld $7,%xmm1 + movdqa 208-128(%rax),%xmm0 + pslld $14,%xmm2 + pxor %xmm1,%xmm7 + psrld $18-7,%xmm1 + movdqa %xmm0,%xmm4 + pxor %xmm2,%xmm7 + pslld $25-14,%xmm2 + pxor %xmm1,%xmm7 + psrld $10,%xmm0 + movdqa %xmm4,%xmm1 + + psrld $17,%xmm4 + pxor %xmm2,%xmm7 + pslld $13,%xmm1 + paddd %xmm7,%xmm6 + pxor %xmm4,%xmm0 + psrld $19-17,%xmm4 + pxor %xmm1,%xmm0 + pslld $15-13,%xmm1 + pxor %xmm4,%xmm0 + pxor %xmm1,%xmm0 + paddd %xmm0,%xmm6 + movdqa %xmm13,%xmm7 + + movdqa %xmm13,%xmm2 + + psrld $6,%xmm7 + movdqa %xmm13,%xmm1 + pslld $7,%xmm2 + movdqa %xmm6,240-128(%rax) + paddd %xmm8,%xmm6 + + psrld $11,%xmm1 + pxor %xmm2,%xmm7 + pslld $21-7,%xmm2 + paddd 96(%rbp),%xmm6 + pxor %xmm1,%xmm7 + + psrld $25-11,%xmm1 + movdqa %xmm13,%xmm0 + + pxor %xmm2,%xmm7 + movdqa %xmm13,%xmm4 + pslld $26-21,%xmm2 + pandn %xmm15,%xmm0 + pand %xmm14,%xmm4 + pxor %xmm1,%xmm7 + + + movdqa %xmm9,%xmm1 + pxor %xmm2,%xmm7 + movdqa %xmm9,%xmm2 + psrld $2,%xmm1 + paddd %xmm7,%xmm6 + pxor %xmm4,%xmm0 + movdqa %xmm10,%xmm4 + movdqa %xmm9,%xmm7 + pslld $10,%xmm2 + pxor %xmm9,%xmm4 + + + psrld $13,%xmm7 + pxor %xmm2,%xmm1 + paddd %xmm0,%xmm6 + pslld $19-10,%xmm2 + pand %xmm4,%xmm3 + pxor %xmm7,%xmm1 + + + psrld $22-13,%xmm7 + pxor %xmm2,%xmm1 + movdqa %xmm10,%xmm8 + pslld $30-19,%xmm2 + pxor %xmm1,%xmm7 + pxor %xmm3,%xmm8 + paddd %xmm6,%xmm12 + pxor %xmm2,%xmm7 + + paddd %xmm6,%xmm8 + paddd %xmm7,%xmm8 + leaq 256(%rbp),%rbp + decl %ecx + jnz L$oop_16_xx + + movl $1,%ecx + leaq K256+128(%rip),%rbp + + movdqa (%rbx),%xmm7 + cmpl 0(%rbx),%ecx + pxor %xmm0,%xmm0 + cmovgeq %rbp,%r8 + cmpl 4(%rbx),%ecx + movdqa %xmm7,%xmm6 + cmovgeq %rbp,%r9 + cmpl 8(%rbx),%ecx + pcmpgtd %xmm0,%xmm6 + cmovgeq %rbp,%r10 + cmpl 12(%rbx),%ecx + paddd %xmm6,%xmm7 + cmovgeq %rbp,%r11 + + movdqu 0-128(%rdi),%xmm0 + pand %xmm6,%xmm8 + movdqu 32-128(%rdi),%xmm1 + pand %xmm6,%xmm9 + movdqu 64-128(%rdi),%xmm2 + pand %xmm6,%xmm10 + movdqu 96-128(%rdi),%xmm5 + pand %xmm6,%xmm11 + paddd %xmm0,%xmm8 + movdqu 128-128(%rdi),%xmm0 + pand %xmm6,%xmm12 + paddd %xmm1,%xmm9 + movdqu 160-128(%rdi),%xmm1 + pand %xmm6,%xmm13 + paddd %xmm2,%xmm10 + movdqu 192-128(%rdi),%xmm2 + pand %xmm6,%xmm14 + paddd %xmm5,%xmm11 + movdqu 224-128(%rdi),%xmm5 + pand %xmm6,%xmm15 + paddd %xmm0,%xmm12 + paddd %xmm1,%xmm13 + movdqu %xmm8,0-128(%rdi) + paddd %xmm2,%xmm14 + movdqu %xmm9,32-128(%rdi) + paddd %xmm5,%xmm15 + movdqu %xmm10,64-128(%rdi) + movdqu %xmm11,96-128(%rdi) + movdqu %xmm12,128-128(%rdi) + movdqu %xmm13,160-128(%rdi) + movdqu %xmm14,192-128(%rdi) + movdqu %xmm15,224-128(%rdi) + + movdqa %xmm7,(%rbx) + movdqa L$pbswap(%rip),%xmm6 + decl %edx + jnz L$oop + + movl 280(%rsp),%edx + leaq 16(%rdi),%rdi + leaq 64(%rsi),%rsi + decl %edx + jnz L$oop_grande + +L$done: + movq 272(%rsp),%rax + + movq -16(%rax),%rbp + + movq -8(%rax),%rbx + + leaq (%rax),%rsp + +L$epilogue: + .byte 0xf3,0xc3 + + + +.p2align 5 +sha256_multi_block_shaext: + +_shaext_shortcut: + movq %rsp,%rax + + pushq %rbx + + pushq %rbp + + subq $288,%rsp + shll $1,%edx + andq $-256,%rsp + leaq 128(%rdi),%rdi + movq %rax,272(%rsp) +L$body_shaext: + leaq 256(%rsp),%rbx + leaq K256_shaext+128(%rip),%rbp + +L$oop_grande_shaext: + movl %edx,280(%rsp) + xorl %edx,%edx + movq 0(%rsi),%r8 + movl 8(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,0(%rbx) + cmovleq %rsp,%r8 + movq 16(%rsi),%r9 + movl 24(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,4(%rbx) + cmovleq %rsp,%r9 + testl %edx,%edx + jz L$done_shaext + + movq 0-128(%rdi),%xmm12 + movq 32-128(%rdi),%xmm4 + movq 64-128(%rdi),%xmm13 + movq 96-128(%rdi),%xmm5 + movq 128-128(%rdi),%xmm8 + movq 160-128(%rdi),%xmm9 + movq 192-128(%rdi),%xmm10 + movq 224-128(%rdi),%xmm11 + + punpckldq %xmm4,%xmm12 + punpckldq %xmm5,%xmm13 + punpckldq %xmm9,%xmm8 + punpckldq %xmm11,%xmm10 + movdqa K256_shaext-16(%rip),%xmm3 + + movdqa %xmm12,%xmm14 + movdqa %xmm13,%xmm15 + punpcklqdq %xmm8,%xmm12 + punpcklqdq %xmm10,%xmm13 + punpckhqdq %xmm8,%xmm14 + punpckhqdq %xmm10,%xmm15 + + pshufd $27,%xmm12,%xmm12 + pshufd $27,%xmm13,%xmm13 + pshufd $27,%xmm14,%xmm14 + pshufd $27,%xmm15,%xmm15 + jmp L$oop_shaext + +.p2align 5 +L$oop_shaext: + movdqu 0(%r8),%xmm4 + movdqu 0(%r9),%xmm8 + movdqu 16(%r8),%xmm5 + movdqu 16(%r9),%xmm9 + movdqu 32(%r8),%xmm6 +.byte 102,15,56,0,227 + movdqu 32(%r9),%xmm10 +.byte 102,68,15,56,0,195 + movdqu 48(%r8),%xmm7 + leaq 64(%r8),%r8 + movdqu 48(%r9),%xmm11 + leaq 64(%r9),%r9 + + movdqa 0-128(%rbp),%xmm0 +.byte 102,15,56,0,235 + paddd %xmm4,%xmm0 + pxor %xmm12,%xmm4 + movdqa %xmm0,%xmm1 + movdqa 0-128(%rbp),%xmm2 +.byte 102,68,15,56,0,203 + paddd %xmm8,%xmm2 + movdqa %xmm13,80(%rsp) +.byte 69,15,56,203,236 + pxor %xmm14,%xmm8 + movdqa %xmm2,%xmm0 + movdqa %xmm15,112(%rsp) +.byte 69,15,56,203,254 + pshufd $0x0e,%xmm1,%xmm0 + pxor %xmm12,%xmm4 + movdqa %xmm12,64(%rsp) +.byte 69,15,56,203,229 + pshufd $0x0e,%xmm2,%xmm0 + pxor %xmm14,%xmm8 + movdqa %xmm14,96(%rsp) + movdqa 16-128(%rbp),%xmm1 + paddd %xmm5,%xmm1 +.byte 102,15,56,0,243 +.byte 69,15,56,203,247 + + movdqa %xmm1,%xmm0 + movdqa 16-128(%rbp),%xmm2 + paddd %xmm9,%xmm2 +.byte 69,15,56,203,236 + movdqa %xmm2,%xmm0 + prefetcht0 127(%r8) +.byte 102,15,56,0,251 +.byte 102,68,15,56,0,211 + prefetcht0 127(%r9) +.byte 69,15,56,203,254 + pshufd $0x0e,%xmm1,%xmm0 +.byte 102,68,15,56,0,219 +.byte 15,56,204,229 +.byte 69,15,56,203,229 + pshufd $0x0e,%xmm2,%xmm0 + movdqa 32-128(%rbp),%xmm1 + paddd %xmm6,%xmm1 +.byte 69,15,56,203,247 + + movdqa %xmm1,%xmm0 + movdqa 32-128(%rbp),%xmm2 + paddd %xmm10,%xmm2 +.byte 69,15,56,203,236 +.byte 69,15,56,204,193 + movdqa %xmm2,%xmm0 + movdqa %xmm7,%xmm3 +.byte 69,15,56,203,254 + pshufd $0x0e,%xmm1,%xmm0 +.byte 102,15,58,15,222,4 + paddd %xmm3,%xmm4 + movdqa %xmm11,%xmm3 +.byte 102,65,15,58,15,218,4 +.byte 15,56,204,238 +.byte 69,15,56,203,229 + pshufd $0x0e,%xmm2,%xmm0 + movdqa 48-128(%rbp),%xmm1 + paddd %xmm7,%xmm1 +.byte 69,15,56,203,247 +.byte 69,15,56,204,202 + + movdqa %xmm1,%xmm0 + movdqa 48-128(%rbp),%xmm2 + paddd %xmm3,%xmm8 + paddd %xmm11,%xmm2 +.byte 15,56,205,231 +.byte 69,15,56,203,236 + movdqa %xmm2,%xmm0 + movdqa %xmm4,%xmm3 +.byte 102,15,58,15,223,4 +.byte 69,15,56,203,254 +.byte 69,15,56,205,195 + pshufd $0x0e,%xmm1,%xmm0 + paddd %xmm3,%xmm5 + movdqa %xmm8,%xmm3 +.byte 102,65,15,58,15,219,4 +.byte 15,56,204,247 +.byte 69,15,56,203,229 + pshufd $0x0e,%xmm2,%xmm0 + movdqa 64-128(%rbp),%xmm1 + paddd %xmm4,%xmm1 +.byte 69,15,56,203,247 +.byte 69,15,56,204,211 + movdqa %xmm1,%xmm0 + movdqa 64-128(%rbp),%xmm2 + paddd %xmm3,%xmm9 + paddd %xmm8,%xmm2 +.byte 15,56,205,236 +.byte 69,15,56,203,236 + movdqa %xmm2,%xmm0 + movdqa %xmm5,%xmm3 +.byte 102,15,58,15,220,4 +.byte 69,15,56,203,254 +.byte 69,15,56,205,200 + pshufd $0x0e,%xmm1,%xmm0 + paddd %xmm3,%xmm6 + movdqa %xmm9,%xmm3 +.byte 102,65,15,58,15,216,4 +.byte 15,56,204,252 +.byte 69,15,56,203,229 + pshufd $0x0e,%xmm2,%xmm0 + movdqa 80-128(%rbp),%xmm1 + paddd %xmm5,%xmm1 +.byte 69,15,56,203,247 +.byte 69,15,56,204,216 + movdqa %xmm1,%xmm0 + movdqa 80-128(%rbp),%xmm2 + paddd %xmm3,%xmm10 + paddd %xmm9,%xmm2 +.byte 15,56,205,245 +.byte 69,15,56,203,236 + movdqa %xmm2,%xmm0 + movdqa %xmm6,%xmm3 +.byte 102,15,58,15,221,4 +.byte 69,15,56,203,254 +.byte 69,15,56,205,209 + pshufd $0x0e,%xmm1,%xmm0 + paddd %xmm3,%xmm7 + movdqa %xmm10,%xmm3 +.byte 102,65,15,58,15,217,4 +.byte 15,56,204,229 +.byte 69,15,56,203,229 + pshufd $0x0e,%xmm2,%xmm0 + movdqa 96-128(%rbp),%xmm1 + paddd %xmm6,%xmm1 +.byte 69,15,56,203,247 +.byte 69,15,56,204,193 + movdqa %xmm1,%xmm0 + movdqa 96-128(%rbp),%xmm2 + paddd %xmm3,%xmm11 + paddd %xmm10,%xmm2 +.byte 15,56,205,254 +.byte 69,15,56,203,236 + movdqa %xmm2,%xmm0 + movdqa %xmm7,%xmm3 +.byte 102,15,58,15,222,4 +.byte 69,15,56,203,254 +.byte 69,15,56,205,218 + pshufd $0x0e,%xmm1,%xmm0 + paddd %xmm3,%xmm4 + movdqa %xmm11,%xmm3 +.byte 102,65,15,58,15,218,4 +.byte 15,56,204,238 +.byte 69,15,56,203,229 + pshufd $0x0e,%xmm2,%xmm0 + movdqa 112-128(%rbp),%xmm1 + paddd %xmm7,%xmm1 +.byte 69,15,56,203,247 +.byte 69,15,56,204,202 + movdqa %xmm1,%xmm0 + movdqa 112-128(%rbp),%xmm2 + paddd %xmm3,%xmm8 + paddd %xmm11,%xmm2 +.byte 15,56,205,231 +.byte 69,15,56,203,236 + movdqa %xmm2,%xmm0 + movdqa %xmm4,%xmm3 +.byte 102,15,58,15,223,4 +.byte 69,15,56,203,254 +.byte 69,15,56,205,195 + pshufd $0x0e,%xmm1,%xmm0 + paddd %xmm3,%xmm5 + movdqa %xmm8,%xmm3 +.byte 102,65,15,58,15,219,4 +.byte 15,56,204,247 +.byte 69,15,56,203,229 + pshufd $0x0e,%xmm2,%xmm0 + movdqa 128-128(%rbp),%xmm1 + paddd %xmm4,%xmm1 +.byte 69,15,56,203,247 +.byte 69,15,56,204,211 + movdqa %xmm1,%xmm0 + movdqa 128-128(%rbp),%xmm2 + paddd %xmm3,%xmm9 + paddd %xmm8,%xmm2 +.byte 15,56,205,236 +.byte 69,15,56,203,236 + movdqa %xmm2,%xmm0 + movdqa %xmm5,%xmm3 +.byte 102,15,58,15,220,4 +.byte 69,15,56,203,254 +.byte 69,15,56,205,200 + pshufd $0x0e,%xmm1,%xmm0 + paddd %xmm3,%xmm6 + movdqa %xmm9,%xmm3 +.byte 102,65,15,58,15,216,4 +.byte 15,56,204,252 +.byte 69,15,56,203,229 + pshufd $0x0e,%xmm2,%xmm0 + movdqa 144-128(%rbp),%xmm1 + paddd %xmm5,%xmm1 +.byte 69,15,56,203,247 +.byte 69,15,56,204,216 + movdqa %xmm1,%xmm0 + movdqa 144-128(%rbp),%xmm2 + paddd %xmm3,%xmm10 + paddd %xmm9,%xmm2 +.byte 15,56,205,245 +.byte 69,15,56,203,236 + movdqa %xmm2,%xmm0 + movdqa %xmm6,%xmm3 +.byte 102,15,58,15,221,4 +.byte 69,15,56,203,254 +.byte 69,15,56,205,209 + pshufd $0x0e,%xmm1,%xmm0 + paddd %xmm3,%xmm7 + movdqa %xmm10,%xmm3 +.byte 102,65,15,58,15,217,4 +.byte 15,56,204,229 +.byte 69,15,56,203,229 + pshufd $0x0e,%xmm2,%xmm0 + movdqa 160-128(%rbp),%xmm1 + paddd %xmm6,%xmm1 +.byte 69,15,56,203,247 +.byte 69,15,56,204,193 + movdqa %xmm1,%xmm0 + movdqa 160-128(%rbp),%xmm2 + paddd %xmm3,%xmm11 + paddd %xmm10,%xmm2 +.byte 15,56,205,254 +.byte 69,15,56,203,236 + movdqa %xmm2,%xmm0 + movdqa %xmm7,%xmm3 +.byte 102,15,58,15,222,4 +.byte 69,15,56,203,254 +.byte 69,15,56,205,218 + pshufd $0x0e,%xmm1,%xmm0 + paddd %xmm3,%xmm4 + movdqa %xmm11,%xmm3 +.byte 102,65,15,58,15,218,4 +.byte 15,56,204,238 +.byte 69,15,56,203,229 + pshufd $0x0e,%xmm2,%xmm0 + movdqa 176-128(%rbp),%xmm1 + paddd %xmm7,%xmm1 +.byte 69,15,56,203,247 +.byte 69,15,56,204,202 + movdqa %xmm1,%xmm0 + movdqa 176-128(%rbp),%xmm2 + paddd %xmm3,%xmm8 + paddd %xmm11,%xmm2 +.byte 15,56,205,231 +.byte 69,15,56,203,236 + movdqa %xmm2,%xmm0 + movdqa %xmm4,%xmm3 +.byte 102,15,58,15,223,4 +.byte 69,15,56,203,254 +.byte 69,15,56,205,195 + pshufd $0x0e,%xmm1,%xmm0 + paddd %xmm3,%xmm5 + movdqa %xmm8,%xmm3 +.byte 102,65,15,58,15,219,4 +.byte 15,56,204,247 +.byte 69,15,56,203,229 + pshufd $0x0e,%xmm2,%xmm0 + movdqa 192-128(%rbp),%xmm1 + paddd %xmm4,%xmm1 +.byte 69,15,56,203,247 +.byte 69,15,56,204,211 + movdqa %xmm1,%xmm0 + movdqa 192-128(%rbp),%xmm2 + paddd %xmm3,%xmm9 + paddd %xmm8,%xmm2 +.byte 15,56,205,236 +.byte 69,15,56,203,236 + movdqa %xmm2,%xmm0 + movdqa %xmm5,%xmm3 +.byte 102,15,58,15,220,4 +.byte 69,15,56,203,254 +.byte 69,15,56,205,200 + pshufd $0x0e,%xmm1,%xmm0 + paddd %xmm3,%xmm6 + movdqa %xmm9,%xmm3 +.byte 102,65,15,58,15,216,4 +.byte 15,56,204,252 +.byte 69,15,56,203,229 + pshufd $0x0e,%xmm2,%xmm0 + movdqa 208-128(%rbp),%xmm1 + paddd %xmm5,%xmm1 +.byte 69,15,56,203,247 +.byte 69,15,56,204,216 + movdqa %xmm1,%xmm0 + movdqa 208-128(%rbp),%xmm2 + paddd %xmm3,%xmm10 + paddd %xmm9,%xmm2 +.byte 15,56,205,245 +.byte 69,15,56,203,236 + movdqa %xmm2,%xmm0 + movdqa %xmm6,%xmm3 +.byte 102,15,58,15,221,4 +.byte 69,15,56,203,254 +.byte 69,15,56,205,209 + pshufd $0x0e,%xmm1,%xmm0 + paddd %xmm3,%xmm7 + movdqa %xmm10,%xmm3 +.byte 102,65,15,58,15,217,4 + nop +.byte 69,15,56,203,229 + pshufd $0x0e,%xmm2,%xmm0 + movdqa 224-128(%rbp),%xmm1 + paddd %xmm6,%xmm1 +.byte 69,15,56,203,247 + + movdqa %xmm1,%xmm0 + movdqa 224-128(%rbp),%xmm2 + paddd %xmm3,%xmm11 + paddd %xmm10,%xmm2 +.byte 15,56,205,254 + nop +.byte 69,15,56,203,236 + movdqa %xmm2,%xmm0 + movl $1,%ecx + pxor %xmm6,%xmm6 +.byte 69,15,56,203,254 +.byte 69,15,56,205,218 + pshufd $0x0e,%xmm1,%xmm0 + movdqa 240-128(%rbp),%xmm1 + paddd %xmm7,%xmm1 + movq (%rbx),%xmm7 + nop +.byte 69,15,56,203,229 + pshufd $0x0e,%xmm2,%xmm0 + movdqa 240-128(%rbp),%xmm2 + paddd %xmm11,%xmm2 +.byte 69,15,56,203,247 + + movdqa %xmm1,%xmm0 + cmpl 0(%rbx),%ecx + cmovgeq %rsp,%r8 + cmpl 4(%rbx),%ecx + cmovgeq %rsp,%r9 + pshufd $0x00,%xmm7,%xmm9 +.byte 69,15,56,203,236 + movdqa %xmm2,%xmm0 + pshufd $0x55,%xmm7,%xmm10 + movdqa %xmm7,%xmm11 +.byte 69,15,56,203,254 + pshufd $0x0e,%xmm1,%xmm0 + pcmpgtd %xmm6,%xmm9 + pcmpgtd %xmm6,%xmm10 +.byte 69,15,56,203,229 + pshufd $0x0e,%xmm2,%xmm0 + pcmpgtd %xmm6,%xmm11 + movdqa K256_shaext-16(%rip),%xmm3 +.byte 69,15,56,203,247 + + pand %xmm9,%xmm13 + pand %xmm10,%xmm15 + pand %xmm9,%xmm12 + pand %xmm10,%xmm14 + paddd %xmm7,%xmm11 + + paddd 80(%rsp),%xmm13 + paddd 112(%rsp),%xmm15 + paddd 64(%rsp),%xmm12 + paddd 96(%rsp),%xmm14 + + movq %xmm11,(%rbx) + decl %edx + jnz L$oop_shaext + + movl 280(%rsp),%edx + + pshufd $27,%xmm12,%xmm12 + pshufd $27,%xmm13,%xmm13 + pshufd $27,%xmm14,%xmm14 + pshufd $27,%xmm15,%xmm15 + + movdqa %xmm12,%xmm5 + movdqa %xmm13,%xmm6 + punpckldq %xmm14,%xmm12 + punpckhdq %xmm14,%xmm5 + punpckldq %xmm15,%xmm13 + punpckhdq %xmm15,%xmm6 + + movq %xmm12,0-128(%rdi) + psrldq $8,%xmm12 + movq %xmm5,128-128(%rdi) + psrldq $8,%xmm5 + movq %xmm12,32-128(%rdi) + movq %xmm5,160-128(%rdi) + + movq %xmm13,64-128(%rdi) + psrldq $8,%xmm13 + movq %xmm6,192-128(%rdi) + psrldq $8,%xmm6 + movq %xmm13,96-128(%rdi) + movq %xmm6,224-128(%rdi) + + leaq 8(%rdi),%rdi + leaq 32(%rsi),%rsi + decl %edx + jnz L$oop_grande_shaext + +L$done_shaext: + + movq -16(%rax),%rbp + + movq -8(%rax),%rbx + + leaq (%rax),%rsp + +L$epilogue_shaext: + .byte 0xf3,0xc3 + + + +.p2align 5 +sha256_multi_block_avx: + +_avx_shortcut: + shrq $32,%rcx + cmpl $2,%edx + jb L$avx + testl $32,%ecx + jnz _avx2_shortcut + jmp L$avx +.p2align 5 +L$avx: + movq %rsp,%rax + + pushq %rbx + + pushq %rbp + + subq $288,%rsp + andq $-256,%rsp + movq %rax,272(%rsp) + +L$body_avx: + leaq K256+128(%rip),%rbp + leaq 256(%rsp),%rbx + leaq 128(%rdi),%rdi + +L$oop_grande_avx: + movl %edx,280(%rsp) + xorl %edx,%edx + movq 0(%rsi),%r8 + movl 8(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,0(%rbx) + cmovleq %rbp,%r8 + movq 16(%rsi),%r9 + movl 24(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,4(%rbx) + cmovleq %rbp,%r9 + movq 32(%rsi),%r10 + movl 40(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,8(%rbx) + cmovleq %rbp,%r10 + movq 48(%rsi),%r11 + movl 56(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,12(%rbx) + cmovleq %rbp,%r11 + testl %edx,%edx + jz L$done_avx + + vmovdqu 0-128(%rdi),%xmm8 + leaq 128(%rsp),%rax + vmovdqu 32-128(%rdi),%xmm9 + vmovdqu 64-128(%rdi),%xmm10 + vmovdqu 96-128(%rdi),%xmm11 + vmovdqu 128-128(%rdi),%xmm12 + vmovdqu 160-128(%rdi),%xmm13 + vmovdqu 192-128(%rdi),%xmm14 + vmovdqu 224-128(%rdi),%xmm15 + vmovdqu L$pbswap(%rip),%xmm6 + jmp L$oop_avx + +.p2align 5 +L$oop_avx: + vpxor %xmm9,%xmm10,%xmm4 + vmovd 0(%r8),%xmm5 + vmovd 0(%r9),%xmm0 + vpinsrd $1,0(%r10),%xmm5,%xmm5 + vpinsrd $1,0(%r11),%xmm0,%xmm0 + vpunpckldq %xmm0,%xmm5,%xmm5 + vpshufb %xmm6,%xmm5,%xmm5 + vpsrld $6,%xmm12,%xmm7 + vpslld $26,%xmm12,%xmm2 + vmovdqu %xmm5,0-128(%rax) + vpaddd %xmm15,%xmm5,%xmm5 + + vpsrld $11,%xmm12,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm12,%xmm2 + vpaddd -128(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm12,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm12,%xmm2 + vpandn %xmm14,%xmm12,%xmm0 + vpand %xmm13,%xmm12,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm8,%xmm15 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm8,%xmm1 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm8,%xmm9,%xmm3 + + vpxor %xmm1,%xmm15,%xmm15 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm8,%xmm1 + + vpslld $19,%xmm8,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm3,%xmm4,%xmm4 + + vpxor %xmm1,%xmm15,%xmm7 + + vpsrld $22,%xmm8,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm8,%xmm2 + vpxor %xmm4,%xmm9,%xmm15 + vpaddd %xmm5,%xmm11,%xmm11 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm15,%xmm15 + vpaddd %xmm7,%xmm15,%xmm15 + vmovd 4(%r8),%xmm5 + vmovd 4(%r9),%xmm0 + vpinsrd $1,4(%r10),%xmm5,%xmm5 + vpinsrd $1,4(%r11),%xmm0,%xmm0 + vpunpckldq %xmm0,%xmm5,%xmm5 + vpshufb %xmm6,%xmm5,%xmm5 + vpsrld $6,%xmm11,%xmm7 + vpslld $26,%xmm11,%xmm2 + vmovdqu %xmm5,16-128(%rax) + vpaddd %xmm14,%xmm5,%xmm5 + + vpsrld $11,%xmm11,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm11,%xmm2 + vpaddd -96(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm11,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm11,%xmm2 + vpandn %xmm13,%xmm11,%xmm0 + vpand %xmm12,%xmm11,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm15,%xmm14 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm15,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm15,%xmm8,%xmm4 + + vpxor %xmm1,%xmm14,%xmm14 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm15,%xmm1 + + vpslld $19,%xmm15,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm4,%xmm3,%xmm3 + + vpxor %xmm1,%xmm14,%xmm7 + + vpsrld $22,%xmm15,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm15,%xmm2 + vpxor %xmm3,%xmm8,%xmm14 + vpaddd %xmm5,%xmm10,%xmm10 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm14,%xmm14 + vpaddd %xmm7,%xmm14,%xmm14 + vmovd 8(%r8),%xmm5 + vmovd 8(%r9),%xmm0 + vpinsrd $1,8(%r10),%xmm5,%xmm5 + vpinsrd $1,8(%r11),%xmm0,%xmm0 + vpunpckldq %xmm0,%xmm5,%xmm5 + vpshufb %xmm6,%xmm5,%xmm5 + vpsrld $6,%xmm10,%xmm7 + vpslld $26,%xmm10,%xmm2 + vmovdqu %xmm5,32-128(%rax) + vpaddd %xmm13,%xmm5,%xmm5 + + vpsrld $11,%xmm10,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm10,%xmm2 + vpaddd -64(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm10,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm10,%xmm2 + vpandn %xmm12,%xmm10,%xmm0 + vpand %xmm11,%xmm10,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm14,%xmm13 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm14,%xmm1 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm14,%xmm15,%xmm3 + + vpxor %xmm1,%xmm13,%xmm13 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm14,%xmm1 + + vpslld $19,%xmm14,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm3,%xmm4,%xmm4 + + vpxor %xmm1,%xmm13,%xmm7 + + vpsrld $22,%xmm14,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm14,%xmm2 + vpxor %xmm4,%xmm15,%xmm13 + vpaddd %xmm5,%xmm9,%xmm9 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm13,%xmm13 + vpaddd %xmm7,%xmm13,%xmm13 + vmovd 12(%r8),%xmm5 + vmovd 12(%r9),%xmm0 + vpinsrd $1,12(%r10),%xmm5,%xmm5 + vpinsrd $1,12(%r11),%xmm0,%xmm0 + vpunpckldq %xmm0,%xmm5,%xmm5 + vpshufb %xmm6,%xmm5,%xmm5 + vpsrld $6,%xmm9,%xmm7 + vpslld $26,%xmm9,%xmm2 + vmovdqu %xmm5,48-128(%rax) + vpaddd %xmm12,%xmm5,%xmm5 + + vpsrld $11,%xmm9,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm9,%xmm2 + vpaddd -32(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm9,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm9,%xmm2 + vpandn %xmm11,%xmm9,%xmm0 + vpand %xmm10,%xmm9,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm13,%xmm12 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm13,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm13,%xmm14,%xmm4 + + vpxor %xmm1,%xmm12,%xmm12 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm13,%xmm1 + + vpslld $19,%xmm13,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm4,%xmm3,%xmm3 + + vpxor %xmm1,%xmm12,%xmm7 + + vpsrld $22,%xmm13,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm13,%xmm2 + vpxor %xmm3,%xmm14,%xmm12 + vpaddd %xmm5,%xmm8,%xmm8 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm12,%xmm12 + vpaddd %xmm7,%xmm12,%xmm12 + vmovd 16(%r8),%xmm5 + vmovd 16(%r9),%xmm0 + vpinsrd $1,16(%r10),%xmm5,%xmm5 + vpinsrd $1,16(%r11),%xmm0,%xmm0 + vpunpckldq %xmm0,%xmm5,%xmm5 + vpshufb %xmm6,%xmm5,%xmm5 + vpsrld $6,%xmm8,%xmm7 + vpslld $26,%xmm8,%xmm2 + vmovdqu %xmm5,64-128(%rax) + vpaddd %xmm11,%xmm5,%xmm5 + + vpsrld $11,%xmm8,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm8,%xmm2 + vpaddd 0(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm8,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm8,%xmm2 + vpandn %xmm10,%xmm8,%xmm0 + vpand %xmm9,%xmm8,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm12,%xmm11 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm12,%xmm1 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm12,%xmm13,%xmm3 + + vpxor %xmm1,%xmm11,%xmm11 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm12,%xmm1 + + vpslld $19,%xmm12,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm3,%xmm4,%xmm4 + + vpxor %xmm1,%xmm11,%xmm7 + + vpsrld $22,%xmm12,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm12,%xmm2 + vpxor %xmm4,%xmm13,%xmm11 + vpaddd %xmm5,%xmm15,%xmm15 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm11,%xmm11 + vpaddd %xmm7,%xmm11,%xmm11 + vmovd 20(%r8),%xmm5 + vmovd 20(%r9),%xmm0 + vpinsrd $1,20(%r10),%xmm5,%xmm5 + vpinsrd $1,20(%r11),%xmm0,%xmm0 + vpunpckldq %xmm0,%xmm5,%xmm5 + vpshufb %xmm6,%xmm5,%xmm5 + vpsrld $6,%xmm15,%xmm7 + vpslld $26,%xmm15,%xmm2 + vmovdqu %xmm5,80-128(%rax) + vpaddd %xmm10,%xmm5,%xmm5 + + vpsrld $11,%xmm15,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm15,%xmm2 + vpaddd 32(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm15,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm15,%xmm2 + vpandn %xmm9,%xmm15,%xmm0 + vpand %xmm8,%xmm15,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm11,%xmm10 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm11,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm11,%xmm12,%xmm4 + + vpxor %xmm1,%xmm10,%xmm10 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm11,%xmm1 + + vpslld $19,%xmm11,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm4,%xmm3,%xmm3 + + vpxor %xmm1,%xmm10,%xmm7 + + vpsrld $22,%xmm11,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm11,%xmm2 + vpxor %xmm3,%xmm12,%xmm10 + vpaddd %xmm5,%xmm14,%xmm14 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm10,%xmm10 + vpaddd %xmm7,%xmm10,%xmm10 + vmovd 24(%r8),%xmm5 + vmovd 24(%r9),%xmm0 + vpinsrd $1,24(%r10),%xmm5,%xmm5 + vpinsrd $1,24(%r11),%xmm0,%xmm0 + vpunpckldq %xmm0,%xmm5,%xmm5 + vpshufb %xmm6,%xmm5,%xmm5 + vpsrld $6,%xmm14,%xmm7 + vpslld $26,%xmm14,%xmm2 + vmovdqu %xmm5,96-128(%rax) + vpaddd %xmm9,%xmm5,%xmm5 + + vpsrld $11,%xmm14,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm14,%xmm2 + vpaddd 64(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm14,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm14,%xmm2 + vpandn %xmm8,%xmm14,%xmm0 + vpand %xmm15,%xmm14,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm10,%xmm9 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm10,%xmm1 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm10,%xmm11,%xmm3 + + vpxor %xmm1,%xmm9,%xmm9 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm10,%xmm1 + + vpslld $19,%xmm10,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm3,%xmm4,%xmm4 + + vpxor %xmm1,%xmm9,%xmm7 + + vpsrld $22,%xmm10,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm10,%xmm2 + vpxor %xmm4,%xmm11,%xmm9 + vpaddd %xmm5,%xmm13,%xmm13 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm9,%xmm9 + vpaddd %xmm7,%xmm9,%xmm9 + vmovd 28(%r8),%xmm5 + vmovd 28(%r9),%xmm0 + vpinsrd $1,28(%r10),%xmm5,%xmm5 + vpinsrd $1,28(%r11),%xmm0,%xmm0 + vpunpckldq %xmm0,%xmm5,%xmm5 + vpshufb %xmm6,%xmm5,%xmm5 + vpsrld $6,%xmm13,%xmm7 + vpslld $26,%xmm13,%xmm2 + vmovdqu %xmm5,112-128(%rax) + vpaddd %xmm8,%xmm5,%xmm5 + + vpsrld $11,%xmm13,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm13,%xmm2 + vpaddd 96(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm13,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm13,%xmm2 + vpandn %xmm15,%xmm13,%xmm0 + vpand %xmm14,%xmm13,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm9,%xmm8 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm9,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm9,%xmm10,%xmm4 + + vpxor %xmm1,%xmm8,%xmm8 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm9,%xmm1 + + vpslld $19,%xmm9,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm4,%xmm3,%xmm3 + + vpxor %xmm1,%xmm8,%xmm7 + + vpsrld $22,%xmm9,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm9,%xmm2 + vpxor %xmm3,%xmm10,%xmm8 + vpaddd %xmm5,%xmm12,%xmm12 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm8,%xmm8 + vpaddd %xmm7,%xmm8,%xmm8 + addq $256,%rbp + vmovd 32(%r8),%xmm5 + vmovd 32(%r9),%xmm0 + vpinsrd $1,32(%r10),%xmm5,%xmm5 + vpinsrd $1,32(%r11),%xmm0,%xmm0 + vpunpckldq %xmm0,%xmm5,%xmm5 + vpshufb %xmm6,%xmm5,%xmm5 + vpsrld $6,%xmm12,%xmm7 + vpslld $26,%xmm12,%xmm2 + vmovdqu %xmm5,128-128(%rax) + vpaddd %xmm15,%xmm5,%xmm5 + + vpsrld $11,%xmm12,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm12,%xmm2 + vpaddd -128(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm12,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm12,%xmm2 + vpandn %xmm14,%xmm12,%xmm0 + vpand %xmm13,%xmm12,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm8,%xmm15 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm8,%xmm1 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm8,%xmm9,%xmm3 + + vpxor %xmm1,%xmm15,%xmm15 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm8,%xmm1 + + vpslld $19,%xmm8,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm3,%xmm4,%xmm4 + + vpxor %xmm1,%xmm15,%xmm7 + + vpsrld $22,%xmm8,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm8,%xmm2 + vpxor %xmm4,%xmm9,%xmm15 + vpaddd %xmm5,%xmm11,%xmm11 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm15,%xmm15 + vpaddd %xmm7,%xmm15,%xmm15 + vmovd 36(%r8),%xmm5 + vmovd 36(%r9),%xmm0 + vpinsrd $1,36(%r10),%xmm5,%xmm5 + vpinsrd $1,36(%r11),%xmm0,%xmm0 + vpunpckldq %xmm0,%xmm5,%xmm5 + vpshufb %xmm6,%xmm5,%xmm5 + vpsrld $6,%xmm11,%xmm7 + vpslld $26,%xmm11,%xmm2 + vmovdqu %xmm5,144-128(%rax) + vpaddd %xmm14,%xmm5,%xmm5 + + vpsrld $11,%xmm11,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm11,%xmm2 + vpaddd -96(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm11,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm11,%xmm2 + vpandn %xmm13,%xmm11,%xmm0 + vpand %xmm12,%xmm11,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm15,%xmm14 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm15,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm15,%xmm8,%xmm4 + + vpxor %xmm1,%xmm14,%xmm14 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm15,%xmm1 + + vpslld $19,%xmm15,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm4,%xmm3,%xmm3 + + vpxor %xmm1,%xmm14,%xmm7 + + vpsrld $22,%xmm15,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm15,%xmm2 + vpxor %xmm3,%xmm8,%xmm14 + vpaddd %xmm5,%xmm10,%xmm10 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm14,%xmm14 + vpaddd %xmm7,%xmm14,%xmm14 + vmovd 40(%r8),%xmm5 + vmovd 40(%r9),%xmm0 + vpinsrd $1,40(%r10),%xmm5,%xmm5 + vpinsrd $1,40(%r11),%xmm0,%xmm0 + vpunpckldq %xmm0,%xmm5,%xmm5 + vpshufb %xmm6,%xmm5,%xmm5 + vpsrld $6,%xmm10,%xmm7 + vpslld $26,%xmm10,%xmm2 + vmovdqu %xmm5,160-128(%rax) + vpaddd %xmm13,%xmm5,%xmm5 + + vpsrld $11,%xmm10,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm10,%xmm2 + vpaddd -64(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm10,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm10,%xmm2 + vpandn %xmm12,%xmm10,%xmm0 + vpand %xmm11,%xmm10,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm14,%xmm13 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm14,%xmm1 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm14,%xmm15,%xmm3 + + vpxor %xmm1,%xmm13,%xmm13 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm14,%xmm1 + + vpslld $19,%xmm14,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm3,%xmm4,%xmm4 + + vpxor %xmm1,%xmm13,%xmm7 + + vpsrld $22,%xmm14,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm14,%xmm2 + vpxor %xmm4,%xmm15,%xmm13 + vpaddd %xmm5,%xmm9,%xmm9 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm13,%xmm13 + vpaddd %xmm7,%xmm13,%xmm13 + vmovd 44(%r8),%xmm5 + vmovd 44(%r9),%xmm0 + vpinsrd $1,44(%r10),%xmm5,%xmm5 + vpinsrd $1,44(%r11),%xmm0,%xmm0 + vpunpckldq %xmm0,%xmm5,%xmm5 + vpshufb %xmm6,%xmm5,%xmm5 + vpsrld $6,%xmm9,%xmm7 + vpslld $26,%xmm9,%xmm2 + vmovdqu %xmm5,176-128(%rax) + vpaddd %xmm12,%xmm5,%xmm5 + + vpsrld $11,%xmm9,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm9,%xmm2 + vpaddd -32(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm9,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm9,%xmm2 + vpandn %xmm11,%xmm9,%xmm0 + vpand %xmm10,%xmm9,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm13,%xmm12 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm13,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm13,%xmm14,%xmm4 + + vpxor %xmm1,%xmm12,%xmm12 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm13,%xmm1 + + vpslld $19,%xmm13,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm4,%xmm3,%xmm3 + + vpxor %xmm1,%xmm12,%xmm7 + + vpsrld $22,%xmm13,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm13,%xmm2 + vpxor %xmm3,%xmm14,%xmm12 + vpaddd %xmm5,%xmm8,%xmm8 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm12,%xmm12 + vpaddd %xmm7,%xmm12,%xmm12 + vmovd 48(%r8),%xmm5 + vmovd 48(%r9),%xmm0 + vpinsrd $1,48(%r10),%xmm5,%xmm5 + vpinsrd $1,48(%r11),%xmm0,%xmm0 + vpunpckldq %xmm0,%xmm5,%xmm5 + vpshufb %xmm6,%xmm5,%xmm5 + vpsrld $6,%xmm8,%xmm7 + vpslld $26,%xmm8,%xmm2 + vmovdqu %xmm5,192-128(%rax) + vpaddd %xmm11,%xmm5,%xmm5 + + vpsrld $11,%xmm8,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm8,%xmm2 + vpaddd 0(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm8,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm8,%xmm2 + vpandn %xmm10,%xmm8,%xmm0 + vpand %xmm9,%xmm8,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm12,%xmm11 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm12,%xmm1 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm12,%xmm13,%xmm3 + + vpxor %xmm1,%xmm11,%xmm11 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm12,%xmm1 + + vpslld $19,%xmm12,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm3,%xmm4,%xmm4 + + vpxor %xmm1,%xmm11,%xmm7 + + vpsrld $22,%xmm12,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm12,%xmm2 + vpxor %xmm4,%xmm13,%xmm11 + vpaddd %xmm5,%xmm15,%xmm15 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm11,%xmm11 + vpaddd %xmm7,%xmm11,%xmm11 + vmovd 52(%r8),%xmm5 + vmovd 52(%r9),%xmm0 + vpinsrd $1,52(%r10),%xmm5,%xmm5 + vpinsrd $1,52(%r11),%xmm0,%xmm0 + vpunpckldq %xmm0,%xmm5,%xmm5 + vpshufb %xmm6,%xmm5,%xmm5 + vpsrld $6,%xmm15,%xmm7 + vpslld $26,%xmm15,%xmm2 + vmovdqu %xmm5,208-128(%rax) + vpaddd %xmm10,%xmm5,%xmm5 + + vpsrld $11,%xmm15,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm15,%xmm2 + vpaddd 32(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm15,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm15,%xmm2 + vpandn %xmm9,%xmm15,%xmm0 + vpand %xmm8,%xmm15,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm11,%xmm10 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm11,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm11,%xmm12,%xmm4 + + vpxor %xmm1,%xmm10,%xmm10 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm11,%xmm1 + + vpslld $19,%xmm11,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm4,%xmm3,%xmm3 + + vpxor %xmm1,%xmm10,%xmm7 + + vpsrld $22,%xmm11,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm11,%xmm2 + vpxor %xmm3,%xmm12,%xmm10 + vpaddd %xmm5,%xmm14,%xmm14 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm10,%xmm10 + vpaddd %xmm7,%xmm10,%xmm10 + vmovd 56(%r8),%xmm5 + vmovd 56(%r9),%xmm0 + vpinsrd $1,56(%r10),%xmm5,%xmm5 + vpinsrd $1,56(%r11),%xmm0,%xmm0 + vpunpckldq %xmm0,%xmm5,%xmm5 + vpshufb %xmm6,%xmm5,%xmm5 + vpsrld $6,%xmm14,%xmm7 + vpslld $26,%xmm14,%xmm2 + vmovdqu %xmm5,224-128(%rax) + vpaddd %xmm9,%xmm5,%xmm5 + + vpsrld $11,%xmm14,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm14,%xmm2 + vpaddd 64(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm14,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm14,%xmm2 + vpandn %xmm8,%xmm14,%xmm0 + vpand %xmm15,%xmm14,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm10,%xmm9 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm10,%xmm1 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm10,%xmm11,%xmm3 + + vpxor %xmm1,%xmm9,%xmm9 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm10,%xmm1 + + vpslld $19,%xmm10,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm3,%xmm4,%xmm4 + + vpxor %xmm1,%xmm9,%xmm7 + + vpsrld $22,%xmm10,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm10,%xmm2 + vpxor %xmm4,%xmm11,%xmm9 + vpaddd %xmm5,%xmm13,%xmm13 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm9,%xmm9 + vpaddd %xmm7,%xmm9,%xmm9 + vmovd 60(%r8),%xmm5 + leaq 64(%r8),%r8 + vmovd 60(%r9),%xmm0 + leaq 64(%r9),%r9 + vpinsrd $1,60(%r10),%xmm5,%xmm5 + leaq 64(%r10),%r10 + vpinsrd $1,60(%r11),%xmm0,%xmm0 + leaq 64(%r11),%r11 + vpunpckldq %xmm0,%xmm5,%xmm5 + vpshufb %xmm6,%xmm5,%xmm5 + vpsrld $6,%xmm13,%xmm7 + vpslld $26,%xmm13,%xmm2 + vmovdqu %xmm5,240-128(%rax) + vpaddd %xmm8,%xmm5,%xmm5 + + vpsrld $11,%xmm13,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm13,%xmm2 + vpaddd 96(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm13,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + prefetcht0 63(%r8) + vpslld $7,%xmm13,%xmm2 + vpandn %xmm15,%xmm13,%xmm0 + vpand %xmm14,%xmm13,%xmm4 + prefetcht0 63(%r9) + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm9,%xmm8 + vpxor %xmm2,%xmm7,%xmm7 + prefetcht0 63(%r10) + vpslld $30,%xmm9,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm9,%xmm10,%xmm4 + prefetcht0 63(%r11) + vpxor %xmm1,%xmm8,%xmm8 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm9,%xmm1 + + vpslld $19,%xmm9,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm4,%xmm3,%xmm3 + + vpxor %xmm1,%xmm8,%xmm7 + + vpsrld $22,%xmm9,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm9,%xmm2 + vpxor %xmm3,%xmm10,%xmm8 + vpaddd %xmm5,%xmm12,%xmm12 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm8,%xmm8 + vpaddd %xmm7,%xmm8,%xmm8 + addq $256,%rbp + vmovdqu 0-128(%rax),%xmm5 + movl $3,%ecx + jmp L$oop_16_xx_avx +.p2align 5 +L$oop_16_xx_avx: + vmovdqu 16-128(%rax),%xmm6 + vpaddd 144-128(%rax),%xmm5,%xmm5 + + vpsrld $3,%xmm6,%xmm7 + vpsrld $7,%xmm6,%xmm1 + vpslld $25,%xmm6,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $18,%xmm6,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $14,%xmm6,%xmm2 + vmovdqu 224-128(%rax),%xmm0 + vpsrld $10,%xmm0,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $17,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $15,%xmm0,%xmm2 + vpaddd %xmm7,%xmm5,%xmm5 + vpxor %xmm1,%xmm3,%xmm7 + vpsrld $19,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $13,%xmm0,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + vpaddd %xmm7,%xmm5,%xmm5 + vpsrld $6,%xmm12,%xmm7 + vpslld $26,%xmm12,%xmm2 + vmovdqu %xmm5,0-128(%rax) + vpaddd %xmm15,%xmm5,%xmm5 + + vpsrld $11,%xmm12,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm12,%xmm2 + vpaddd -128(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm12,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm12,%xmm2 + vpandn %xmm14,%xmm12,%xmm0 + vpand %xmm13,%xmm12,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm8,%xmm15 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm8,%xmm1 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm8,%xmm9,%xmm3 + + vpxor %xmm1,%xmm15,%xmm15 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm8,%xmm1 + + vpslld $19,%xmm8,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm3,%xmm4,%xmm4 + + vpxor %xmm1,%xmm15,%xmm7 + + vpsrld $22,%xmm8,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm8,%xmm2 + vpxor %xmm4,%xmm9,%xmm15 + vpaddd %xmm5,%xmm11,%xmm11 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm15,%xmm15 + vpaddd %xmm7,%xmm15,%xmm15 + vmovdqu 32-128(%rax),%xmm5 + vpaddd 160-128(%rax),%xmm6,%xmm6 + + vpsrld $3,%xmm5,%xmm7 + vpsrld $7,%xmm5,%xmm1 + vpslld $25,%xmm5,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $18,%xmm5,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $14,%xmm5,%xmm2 + vmovdqu 240-128(%rax),%xmm0 + vpsrld $10,%xmm0,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $17,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $15,%xmm0,%xmm2 + vpaddd %xmm7,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm7 + vpsrld $19,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $13,%xmm0,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + vpaddd %xmm7,%xmm6,%xmm6 + vpsrld $6,%xmm11,%xmm7 + vpslld $26,%xmm11,%xmm2 + vmovdqu %xmm6,16-128(%rax) + vpaddd %xmm14,%xmm6,%xmm6 + + vpsrld $11,%xmm11,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm11,%xmm2 + vpaddd -96(%rbp),%xmm6,%xmm6 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm11,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm11,%xmm2 + vpandn %xmm13,%xmm11,%xmm0 + vpand %xmm12,%xmm11,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm15,%xmm14 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm15,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm15,%xmm8,%xmm4 + + vpxor %xmm1,%xmm14,%xmm14 + vpaddd %xmm7,%xmm6,%xmm6 + + vpsrld $13,%xmm15,%xmm1 + + vpslld $19,%xmm15,%xmm2 + vpaddd %xmm0,%xmm6,%xmm6 + vpand %xmm4,%xmm3,%xmm3 + + vpxor %xmm1,%xmm14,%xmm7 + + vpsrld $22,%xmm15,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm15,%xmm2 + vpxor %xmm3,%xmm8,%xmm14 + vpaddd %xmm6,%xmm10,%xmm10 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm6,%xmm14,%xmm14 + vpaddd %xmm7,%xmm14,%xmm14 + vmovdqu 48-128(%rax),%xmm6 + vpaddd 176-128(%rax),%xmm5,%xmm5 + + vpsrld $3,%xmm6,%xmm7 + vpsrld $7,%xmm6,%xmm1 + vpslld $25,%xmm6,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $18,%xmm6,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $14,%xmm6,%xmm2 + vmovdqu 0-128(%rax),%xmm0 + vpsrld $10,%xmm0,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $17,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $15,%xmm0,%xmm2 + vpaddd %xmm7,%xmm5,%xmm5 + vpxor %xmm1,%xmm3,%xmm7 + vpsrld $19,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $13,%xmm0,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + vpaddd %xmm7,%xmm5,%xmm5 + vpsrld $6,%xmm10,%xmm7 + vpslld $26,%xmm10,%xmm2 + vmovdqu %xmm5,32-128(%rax) + vpaddd %xmm13,%xmm5,%xmm5 + + vpsrld $11,%xmm10,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm10,%xmm2 + vpaddd -64(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm10,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm10,%xmm2 + vpandn %xmm12,%xmm10,%xmm0 + vpand %xmm11,%xmm10,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm14,%xmm13 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm14,%xmm1 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm14,%xmm15,%xmm3 + + vpxor %xmm1,%xmm13,%xmm13 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm14,%xmm1 + + vpslld $19,%xmm14,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm3,%xmm4,%xmm4 + + vpxor %xmm1,%xmm13,%xmm7 + + vpsrld $22,%xmm14,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm14,%xmm2 + vpxor %xmm4,%xmm15,%xmm13 + vpaddd %xmm5,%xmm9,%xmm9 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm13,%xmm13 + vpaddd %xmm7,%xmm13,%xmm13 + vmovdqu 64-128(%rax),%xmm5 + vpaddd 192-128(%rax),%xmm6,%xmm6 + + vpsrld $3,%xmm5,%xmm7 + vpsrld $7,%xmm5,%xmm1 + vpslld $25,%xmm5,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $18,%xmm5,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $14,%xmm5,%xmm2 + vmovdqu 16-128(%rax),%xmm0 + vpsrld $10,%xmm0,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $17,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $15,%xmm0,%xmm2 + vpaddd %xmm7,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm7 + vpsrld $19,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $13,%xmm0,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + vpaddd %xmm7,%xmm6,%xmm6 + vpsrld $6,%xmm9,%xmm7 + vpslld $26,%xmm9,%xmm2 + vmovdqu %xmm6,48-128(%rax) + vpaddd %xmm12,%xmm6,%xmm6 + + vpsrld $11,%xmm9,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm9,%xmm2 + vpaddd -32(%rbp),%xmm6,%xmm6 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm9,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm9,%xmm2 + vpandn %xmm11,%xmm9,%xmm0 + vpand %xmm10,%xmm9,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm13,%xmm12 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm13,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm13,%xmm14,%xmm4 + + vpxor %xmm1,%xmm12,%xmm12 + vpaddd %xmm7,%xmm6,%xmm6 + + vpsrld $13,%xmm13,%xmm1 + + vpslld $19,%xmm13,%xmm2 + vpaddd %xmm0,%xmm6,%xmm6 + vpand %xmm4,%xmm3,%xmm3 + + vpxor %xmm1,%xmm12,%xmm7 + + vpsrld $22,%xmm13,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm13,%xmm2 + vpxor %xmm3,%xmm14,%xmm12 + vpaddd %xmm6,%xmm8,%xmm8 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm6,%xmm12,%xmm12 + vpaddd %xmm7,%xmm12,%xmm12 + vmovdqu 80-128(%rax),%xmm6 + vpaddd 208-128(%rax),%xmm5,%xmm5 + + vpsrld $3,%xmm6,%xmm7 + vpsrld $7,%xmm6,%xmm1 + vpslld $25,%xmm6,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $18,%xmm6,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $14,%xmm6,%xmm2 + vmovdqu 32-128(%rax),%xmm0 + vpsrld $10,%xmm0,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $17,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $15,%xmm0,%xmm2 + vpaddd %xmm7,%xmm5,%xmm5 + vpxor %xmm1,%xmm3,%xmm7 + vpsrld $19,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $13,%xmm0,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + vpaddd %xmm7,%xmm5,%xmm5 + vpsrld $6,%xmm8,%xmm7 + vpslld $26,%xmm8,%xmm2 + vmovdqu %xmm5,64-128(%rax) + vpaddd %xmm11,%xmm5,%xmm5 + + vpsrld $11,%xmm8,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm8,%xmm2 + vpaddd 0(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm8,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm8,%xmm2 + vpandn %xmm10,%xmm8,%xmm0 + vpand %xmm9,%xmm8,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm12,%xmm11 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm12,%xmm1 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm12,%xmm13,%xmm3 + + vpxor %xmm1,%xmm11,%xmm11 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm12,%xmm1 + + vpslld $19,%xmm12,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm3,%xmm4,%xmm4 + + vpxor %xmm1,%xmm11,%xmm7 + + vpsrld $22,%xmm12,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm12,%xmm2 + vpxor %xmm4,%xmm13,%xmm11 + vpaddd %xmm5,%xmm15,%xmm15 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm11,%xmm11 + vpaddd %xmm7,%xmm11,%xmm11 + vmovdqu 96-128(%rax),%xmm5 + vpaddd 224-128(%rax),%xmm6,%xmm6 + + vpsrld $3,%xmm5,%xmm7 + vpsrld $7,%xmm5,%xmm1 + vpslld $25,%xmm5,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $18,%xmm5,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $14,%xmm5,%xmm2 + vmovdqu 48-128(%rax),%xmm0 + vpsrld $10,%xmm0,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $17,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $15,%xmm0,%xmm2 + vpaddd %xmm7,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm7 + vpsrld $19,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $13,%xmm0,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + vpaddd %xmm7,%xmm6,%xmm6 + vpsrld $6,%xmm15,%xmm7 + vpslld $26,%xmm15,%xmm2 + vmovdqu %xmm6,80-128(%rax) + vpaddd %xmm10,%xmm6,%xmm6 + + vpsrld $11,%xmm15,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm15,%xmm2 + vpaddd 32(%rbp),%xmm6,%xmm6 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm15,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm15,%xmm2 + vpandn %xmm9,%xmm15,%xmm0 + vpand %xmm8,%xmm15,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm11,%xmm10 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm11,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm11,%xmm12,%xmm4 + + vpxor %xmm1,%xmm10,%xmm10 + vpaddd %xmm7,%xmm6,%xmm6 + + vpsrld $13,%xmm11,%xmm1 + + vpslld $19,%xmm11,%xmm2 + vpaddd %xmm0,%xmm6,%xmm6 + vpand %xmm4,%xmm3,%xmm3 + + vpxor %xmm1,%xmm10,%xmm7 + + vpsrld $22,%xmm11,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm11,%xmm2 + vpxor %xmm3,%xmm12,%xmm10 + vpaddd %xmm6,%xmm14,%xmm14 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm6,%xmm10,%xmm10 + vpaddd %xmm7,%xmm10,%xmm10 + vmovdqu 112-128(%rax),%xmm6 + vpaddd 240-128(%rax),%xmm5,%xmm5 + + vpsrld $3,%xmm6,%xmm7 + vpsrld $7,%xmm6,%xmm1 + vpslld $25,%xmm6,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $18,%xmm6,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $14,%xmm6,%xmm2 + vmovdqu 64-128(%rax),%xmm0 + vpsrld $10,%xmm0,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $17,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $15,%xmm0,%xmm2 + vpaddd %xmm7,%xmm5,%xmm5 + vpxor %xmm1,%xmm3,%xmm7 + vpsrld $19,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $13,%xmm0,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + vpaddd %xmm7,%xmm5,%xmm5 + vpsrld $6,%xmm14,%xmm7 + vpslld $26,%xmm14,%xmm2 + vmovdqu %xmm5,96-128(%rax) + vpaddd %xmm9,%xmm5,%xmm5 + + vpsrld $11,%xmm14,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm14,%xmm2 + vpaddd 64(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm14,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm14,%xmm2 + vpandn %xmm8,%xmm14,%xmm0 + vpand %xmm15,%xmm14,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm10,%xmm9 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm10,%xmm1 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm10,%xmm11,%xmm3 + + vpxor %xmm1,%xmm9,%xmm9 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm10,%xmm1 + + vpslld $19,%xmm10,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm3,%xmm4,%xmm4 + + vpxor %xmm1,%xmm9,%xmm7 + + vpsrld $22,%xmm10,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm10,%xmm2 + vpxor %xmm4,%xmm11,%xmm9 + vpaddd %xmm5,%xmm13,%xmm13 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm9,%xmm9 + vpaddd %xmm7,%xmm9,%xmm9 + vmovdqu 128-128(%rax),%xmm5 + vpaddd 0-128(%rax),%xmm6,%xmm6 + + vpsrld $3,%xmm5,%xmm7 + vpsrld $7,%xmm5,%xmm1 + vpslld $25,%xmm5,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $18,%xmm5,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $14,%xmm5,%xmm2 + vmovdqu 80-128(%rax),%xmm0 + vpsrld $10,%xmm0,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $17,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $15,%xmm0,%xmm2 + vpaddd %xmm7,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm7 + vpsrld $19,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $13,%xmm0,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + vpaddd %xmm7,%xmm6,%xmm6 + vpsrld $6,%xmm13,%xmm7 + vpslld $26,%xmm13,%xmm2 + vmovdqu %xmm6,112-128(%rax) + vpaddd %xmm8,%xmm6,%xmm6 + + vpsrld $11,%xmm13,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm13,%xmm2 + vpaddd 96(%rbp),%xmm6,%xmm6 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm13,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm13,%xmm2 + vpandn %xmm15,%xmm13,%xmm0 + vpand %xmm14,%xmm13,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm9,%xmm8 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm9,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm9,%xmm10,%xmm4 + + vpxor %xmm1,%xmm8,%xmm8 + vpaddd %xmm7,%xmm6,%xmm6 + + vpsrld $13,%xmm9,%xmm1 + + vpslld $19,%xmm9,%xmm2 + vpaddd %xmm0,%xmm6,%xmm6 + vpand %xmm4,%xmm3,%xmm3 + + vpxor %xmm1,%xmm8,%xmm7 + + vpsrld $22,%xmm9,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm9,%xmm2 + vpxor %xmm3,%xmm10,%xmm8 + vpaddd %xmm6,%xmm12,%xmm12 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm6,%xmm8,%xmm8 + vpaddd %xmm7,%xmm8,%xmm8 + addq $256,%rbp + vmovdqu 144-128(%rax),%xmm6 + vpaddd 16-128(%rax),%xmm5,%xmm5 + + vpsrld $3,%xmm6,%xmm7 + vpsrld $7,%xmm6,%xmm1 + vpslld $25,%xmm6,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $18,%xmm6,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $14,%xmm6,%xmm2 + vmovdqu 96-128(%rax),%xmm0 + vpsrld $10,%xmm0,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $17,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $15,%xmm0,%xmm2 + vpaddd %xmm7,%xmm5,%xmm5 + vpxor %xmm1,%xmm3,%xmm7 + vpsrld $19,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $13,%xmm0,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + vpaddd %xmm7,%xmm5,%xmm5 + vpsrld $6,%xmm12,%xmm7 + vpslld $26,%xmm12,%xmm2 + vmovdqu %xmm5,128-128(%rax) + vpaddd %xmm15,%xmm5,%xmm5 + + vpsrld $11,%xmm12,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm12,%xmm2 + vpaddd -128(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm12,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm12,%xmm2 + vpandn %xmm14,%xmm12,%xmm0 + vpand %xmm13,%xmm12,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm8,%xmm15 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm8,%xmm1 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm8,%xmm9,%xmm3 + + vpxor %xmm1,%xmm15,%xmm15 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm8,%xmm1 + + vpslld $19,%xmm8,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm3,%xmm4,%xmm4 + + vpxor %xmm1,%xmm15,%xmm7 + + vpsrld $22,%xmm8,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm8,%xmm2 + vpxor %xmm4,%xmm9,%xmm15 + vpaddd %xmm5,%xmm11,%xmm11 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm15,%xmm15 + vpaddd %xmm7,%xmm15,%xmm15 + vmovdqu 160-128(%rax),%xmm5 + vpaddd 32-128(%rax),%xmm6,%xmm6 + + vpsrld $3,%xmm5,%xmm7 + vpsrld $7,%xmm5,%xmm1 + vpslld $25,%xmm5,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $18,%xmm5,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $14,%xmm5,%xmm2 + vmovdqu 112-128(%rax),%xmm0 + vpsrld $10,%xmm0,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $17,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $15,%xmm0,%xmm2 + vpaddd %xmm7,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm7 + vpsrld $19,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $13,%xmm0,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + vpaddd %xmm7,%xmm6,%xmm6 + vpsrld $6,%xmm11,%xmm7 + vpslld $26,%xmm11,%xmm2 + vmovdqu %xmm6,144-128(%rax) + vpaddd %xmm14,%xmm6,%xmm6 + + vpsrld $11,%xmm11,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm11,%xmm2 + vpaddd -96(%rbp),%xmm6,%xmm6 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm11,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm11,%xmm2 + vpandn %xmm13,%xmm11,%xmm0 + vpand %xmm12,%xmm11,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm15,%xmm14 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm15,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm15,%xmm8,%xmm4 + + vpxor %xmm1,%xmm14,%xmm14 + vpaddd %xmm7,%xmm6,%xmm6 + + vpsrld $13,%xmm15,%xmm1 + + vpslld $19,%xmm15,%xmm2 + vpaddd %xmm0,%xmm6,%xmm6 + vpand %xmm4,%xmm3,%xmm3 + + vpxor %xmm1,%xmm14,%xmm7 + + vpsrld $22,%xmm15,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm15,%xmm2 + vpxor %xmm3,%xmm8,%xmm14 + vpaddd %xmm6,%xmm10,%xmm10 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm6,%xmm14,%xmm14 + vpaddd %xmm7,%xmm14,%xmm14 + vmovdqu 176-128(%rax),%xmm6 + vpaddd 48-128(%rax),%xmm5,%xmm5 + + vpsrld $3,%xmm6,%xmm7 + vpsrld $7,%xmm6,%xmm1 + vpslld $25,%xmm6,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $18,%xmm6,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $14,%xmm6,%xmm2 + vmovdqu 128-128(%rax),%xmm0 + vpsrld $10,%xmm0,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $17,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $15,%xmm0,%xmm2 + vpaddd %xmm7,%xmm5,%xmm5 + vpxor %xmm1,%xmm3,%xmm7 + vpsrld $19,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $13,%xmm0,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + vpaddd %xmm7,%xmm5,%xmm5 + vpsrld $6,%xmm10,%xmm7 + vpslld $26,%xmm10,%xmm2 + vmovdqu %xmm5,160-128(%rax) + vpaddd %xmm13,%xmm5,%xmm5 + + vpsrld $11,%xmm10,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm10,%xmm2 + vpaddd -64(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm10,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm10,%xmm2 + vpandn %xmm12,%xmm10,%xmm0 + vpand %xmm11,%xmm10,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm14,%xmm13 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm14,%xmm1 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm14,%xmm15,%xmm3 + + vpxor %xmm1,%xmm13,%xmm13 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm14,%xmm1 + + vpslld $19,%xmm14,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm3,%xmm4,%xmm4 + + vpxor %xmm1,%xmm13,%xmm7 + + vpsrld $22,%xmm14,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm14,%xmm2 + vpxor %xmm4,%xmm15,%xmm13 + vpaddd %xmm5,%xmm9,%xmm9 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm13,%xmm13 + vpaddd %xmm7,%xmm13,%xmm13 + vmovdqu 192-128(%rax),%xmm5 + vpaddd 64-128(%rax),%xmm6,%xmm6 + + vpsrld $3,%xmm5,%xmm7 + vpsrld $7,%xmm5,%xmm1 + vpslld $25,%xmm5,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $18,%xmm5,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $14,%xmm5,%xmm2 + vmovdqu 144-128(%rax),%xmm0 + vpsrld $10,%xmm0,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $17,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $15,%xmm0,%xmm2 + vpaddd %xmm7,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm7 + vpsrld $19,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $13,%xmm0,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + vpaddd %xmm7,%xmm6,%xmm6 + vpsrld $6,%xmm9,%xmm7 + vpslld $26,%xmm9,%xmm2 + vmovdqu %xmm6,176-128(%rax) + vpaddd %xmm12,%xmm6,%xmm6 + + vpsrld $11,%xmm9,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm9,%xmm2 + vpaddd -32(%rbp),%xmm6,%xmm6 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm9,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm9,%xmm2 + vpandn %xmm11,%xmm9,%xmm0 + vpand %xmm10,%xmm9,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm13,%xmm12 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm13,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm13,%xmm14,%xmm4 + + vpxor %xmm1,%xmm12,%xmm12 + vpaddd %xmm7,%xmm6,%xmm6 + + vpsrld $13,%xmm13,%xmm1 + + vpslld $19,%xmm13,%xmm2 + vpaddd %xmm0,%xmm6,%xmm6 + vpand %xmm4,%xmm3,%xmm3 + + vpxor %xmm1,%xmm12,%xmm7 + + vpsrld $22,%xmm13,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm13,%xmm2 + vpxor %xmm3,%xmm14,%xmm12 + vpaddd %xmm6,%xmm8,%xmm8 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm6,%xmm12,%xmm12 + vpaddd %xmm7,%xmm12,%xmm12 + vmovdqu 208-128(%rax),%xmm6 + vpaddd 80-128(%rax),%xmm5,%xmm5 + + vpsrld $3,%xmm6,%xmm7 + vpsrld $7,%xmm6,%xmm1 + vpslld $25,%xmm6,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $18,%xmm6,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $14,%xmm6,%xmm2 + vmovdqu 160-128(%rax),%xmm0 + vpsrld $10,%xmm0,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $17,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $15,%xmm0,%xmm2 + vpaddd %xmm7,%xmm5,%xmm5 + vpxor %xmm1,%xmm3,%xmm7 + vpsrld $19,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $13,%xmm0,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + vpaddd %xmm7,%xmm5,%xmm5 + vpsrld $6,%xmm8,%xmm7 + vpslld $26,%xmm8,%xmm2 + vmovdqu %xmm5,192-128(%rax) + vpaddd %xmm11,%xmm5,%xmm5 + + vpsrld $11,%xmm8,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm8,%xmm2 + vpaddd 0(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm8,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm8,%xmm2 + vpandn %xmm10,%xmm8,%xmm0 + vpand %xmm9,%xmm8,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm12,%xmm11 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm12,%xmm1 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm12,%xmm13,%xmm3 + + vpxor %xmm1,%xmm11,%xmm11 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm12,%xmm1 + + vpslld $19,%xmm12,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm3,%xmm4,%xmm4 + + vpxor %xmm1,%xmm11,%xmm7 + + vpsrld $22,%xmm12,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm12,%xmm2 + vpxor %xmm4,%xmm13,%xmm11 + vpaddd %xmm5,%xmm15,%xmm15 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm11,%xmm11 + vpaddd %xmm7,%xmm11,%xmm11 + vmovdqu 224-128(%rax),%xmm5 + vpaddd 96-128(%rax),%xmm6,%xmm6 + + vpsrld $3,%xmm5,%xmm7 + vpsrld $7,%xmm5,%xmm1 + vpslld $25,%xmm5,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $18,%xmm5,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $14,%xmm5,%xmm2 + vmovdqu 176-128(%rax),%xmm0 + vpsrld $10,%xmm0,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $17,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $15,%xmm0,%xmm2 + vpaddd %xmm7,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm7 + vpsrld $19,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $13,%xmm0,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + vpaddd %xmm7,%xmm6,%xmm6 + vpsrld $6,%xmm15,%xmm7 + vpslld $26,%xmm15,%xmm2 + vmovdqu %xmm6,208-128(%rax) + vpaddd %xmm10,%xmm6,%xmm6 + + vpsrld $11,%xmm15,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm15,%xmm2 + vpaddd 32(%rbp),%xmm6,%xmm6 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm15,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm15,%xmm2 + vpandn %xmm9,%xmm15,%xmm0 + vpand %xmm8,%xmm15,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm11,%xmm10 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm11,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm11,%xmm12,%xmm4 + + vpxor %xmm1,%xmm10,%xmm10 + vpaddd %xmm7,%xmm6,%xmm6 + + vpsrld $13,%xmm11,%xmm1 + + vpslld $19,%xmm11,%xmm2 + vpaddd %xmm0,%xmm6,%xmm6 + vpand %xmm4,%xmm3,%xmm3 + + vpxor %xmm1,%xmm10,%xmm7 + + vpsrld $22,%xmm11,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm11,%xmm2 + vpxor %xmm3,%xmm12,%xmm10 + vpaddd %xmm6,%xmm14,%xmm14 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm6,%xmm10,%xmm10 + vpaddd %xmm7,%xmm10,%xmm10 + vmovdqu 240-128(%rax),%xmm6 + vpaddd 112-128(%rax),%xmm5,%xmm5 + + vpsrld $3,%xmm6,%xmm7 + vpsrld $7,%xmm6,%xmm1 + vpslld $25,%xmm6,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $18,%xmm6,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $14,%xmm6,%xmm2 + vmovdqu 192-128(%rax),%xmm0 + vpsrld $10,%xmm0,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $17,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $15,%xmm0,%xmm2 + vpaddd %xmm7,%xmm5,%xmm5 + vpxor %xmm1,%xmm3,%xmm7 + vpsrld $19,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $13,%xmm0,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + vpaddd %xmm7,%xmm5,%xmm5 + vpsrld $6,%xmm14,%xmm7 + vpslld $26,%xmm14,%xmm2 + vmovdqu %xmm5,224-128(%rax) + vpaddd %xmm9,%xmm5,%xmm5 + + vpsrld $11,%xmm14,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm14,%xmm2 + vpaddd 64(%rbp),%xmm5,%xmm5 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm14,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm14,%xmm2 + vpandn %xmm8,%xmm14,%xmm0 + vpand %xmm15,%xmm14,%xmm3 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm10,%xmm9 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm10,%xmm1 + vpxor %xmm3,%xmm0,%xmm0 + vpxor %xmm10,%xmm11,%xmm3 + + vpxor %xmm1,%xmm9,%xmm9 + vpaddd %xmm7,%xmm5,%xmm5 + + vpsrld $13,%xmm10,%xmm1 + + vpslld $19,%xmm10,%xmm2 + vpaddd %xmm0,%xmm5,%xmm5 + vpand %xmm3,%xmm4,%xmm4 + + vpxor %xmm1,%xmm9,%xmm7 + + vpsrld $22,%xmm10,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm10,%xmm2 + vpxor %xmm4,%xmm11,%xmm9 + vpaddd %xmm5,%xmm13,%xmm13 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm5,%xmm9,%xmm9 + vpaddd %xmm7,%xmm9,%xmm9 + vmovdqu 0-128(%rax),%xmm5 + vpaddd 128-128(%rax),%xmm6,%xmm6 + + vpsrld $3,%xmm5,%xmm7 + vpsrld $7,%xmm5,%xmm1 + vpslld $25,%xmm5,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $18,%xmm5,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $14,%xmm5,%xmm2 + vmovdqu 208-128(%rax),%xmm0 + vpsrld $10,%xmm0,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + vpsrld $17,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $15,%xmm0,%xmm2 + vpaddd %xmm7,%xmm6,%xmm6 + vpxor %xmm1,%xmm4,%xmm7 + vpsrld $19,%xmm0,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $13,%xmm0,%xmm2 + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + vpaddd %xmm7,%xmm6,%xmm6 + vpsrld $6,%xmm13,%xmm7 + vpslld $26,%xmm13,%xmm2 + vmovdqu %xmm6,240-128(%rax) + vpaddd %xmm8,%xmm6,%xmm6 + + vpsrld $11,%xmm13,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + vpslld $21,%xmm13,%xmm2 + vpaddd 96(%rbp),%xmm6,%xmm6 + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $25,%xmm13,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $7,%xmm13,%xmm2 + vpandn %xmm15,%xmm13,%xmm0 + vpand %xmm14,%xmm13,%xmm4 + + vpxor %xmm1,%xmm7,%xmm7 + + vpsrld $2,%xmm9,%xmm8 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $30,%xmm9,%xmm1 + vpxor %xmm4,%xmm0,%xmm0 + vpxor %xmm9,%xmm10,%xmm4 + + vpxor %xmm1,%xmm8,%xmm8 + vpaddd %xmm7,%xmm6,%xmm6 + + vpsrld $13,%xmm9,%xmm1 + + vpslld $19,%xmm9,%xmm2 + vpaddd %xmm0,%xmm6,%xmm6 + vpand %xmm4,%xmm3,%xmm3 + + vpxor %xmm1,%xmm8,%xmm7 + + vpsrld $22,%xmm9,%xmm1 + vpxor %xmm2,%xmm7,%xmm7 + + vpslld $10,%xmm9,%xmm2 + vpxor %xmm3,%xmm10,%xmm8 + vpaddd %xmm6,%xmm12,%xmm12 + + vpxor %xmm1,%xmm7,%xmm7 + vpxor %xmm2,%xmm7,%xmm7 + + vpaddd %xmm6,%xmm8,%xmm8 + vpaddd %xmm7,%xmm8,%xmm8 + addq $256,%rbp + decl %ecx + jnz L$oop_16_xx_avx + + movl $1,%ecx + leaq K256+128(%rip),%rbp + cmpl 0(%rbx),%ecx + cmovgeq %rbp,%r8 + cmpl 4(%rbx),%ecx + cmovgeq %rbp,%r9 + cmpl 8(%rbx),%ecx + cmovgeq %rbp,%r10 + cmpl 12(%rbx),%ecx + cmovgeq %rbp,%r11 + vmovdqa (%rbx),%xmm7 + vpxor %xmm0,%xmm0,%xmm0 + vmovdqa %xmm7,%xmm6 + vpcmpgtd %xmm0,%xmm6,%xmm6 + vpaddd %xmm6,%xmm7,%xmm7 + + vmovdqu 0-128(%rdi),%xmm0 + vpand %xmm6,%xmm8,%xmm8 + vmovdqu 32-128(%rdi),%xmm1 + vpand %xmm6,%xmm9,%xmm9 + vmovdqu 64-128(%rdi),%xmm2 + vpand %xmm6,%xmm10,%xmm10 + vmovdqu 96-128(%rdi),%xmm5 + vpand %xmm6,%xmm11,%xmm11 + vpaddd %xmm0,%xmm8,%xmm8 + vmovdqu 128-128(%rdi),%xmm0 + vpand %xmm6,%xmm12,%xmm12 + vpaddd %xmm1,%xmm9,%xmm9 + vmovdqu 160-128(%rdi),%xmm1 + vpand %xmm6,%xmm13,%xmm13 + vpaddd %xmm2,%xmm10,%xmm10 + vmovdqu 192-128(%rdi),%xmm2 + vpand %xmm6,%xmm14,%xmm14 + vpaddd %xmm5,%xmm11,%xmm11 + vmovdqu 224-128(%rdi),%xmm5 + vpand %xmm6,%xmm15,%xmm15 + vpaddd %xmm0,%xmm12,%xmm12 + vpaddd %xmm1,%xmm13,%xmm13 + vmovdqu %xmm8,0-128(%rdi) + vpaddd %xmm2,%xmm14,%xmm14 + vmovdqu %xmm9,32-128(%rdi) + vpaddd %xmm5,%xmm15,%xmm15 + vmovdqu %xmm10,64-128(%rdi) + vmovdqu %xmm11,96-128(%rdi) + vmovdqu %xmm12,128-128(%rdi) + vmovdqu %xmm13,160-128(%rdi) + vmovdqu %xmm14,192-128(%rdi) + vmovdqu %xmm15,224-128(%rdi) + + vmovdqu %xmm7,(%rbx) + vmovdqu L$pbswap(%rip),%xmm6 + decl %edx + jnz L$oop_avx + + movl 280(%rsp),%edx + leaq 16(%rdi),%rdi + leaq 64(%rsi),%rsi + decl %edx + jnz L$oop_grande_avx + +L$done_avx: + movq 272(%rsp),%rax + + vzeroupper + movq -16(%rax),%rbp + + movq -8(%rax),%rbx + + leaq (%rax),%rsp + +L$epilogue_avx: + .byte 0xf3,0xc3 + + + +.p2align 5 +sha256_multi_block_avx2: + +_avx2_shortcut: + movq %rsp,%rax + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + subq $576,%rsp + andq $-256,%rsp + movq %rax,544(%rsp) + +L$body_avx2: + leaq K256+128(%rip),%rbp + leaq 128(%rdi),%rdi + +L$oop_grande_avx2: + movl %edx,552(%rsp) + xorl %edx,%edx + leaq 512(%rsp),%rbx + movq 0(%rsi),%r12 + movl 8(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,0(%rbx) + cmovleq %rbp,%r12 + movq 16(%rsi),%r13 + movl 24(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,4(%rbx) + cmovleq %rbp,%r13 + movq 32(%rsi),%r14 + movl 40(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,8(%rbx) + cmovleq %rbp,%r14 + movq 48(%rsi),%r15 + movl 56(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,12(%rbx) + cmovleq %rbp,%r15 + movq 64(%rsi),%r8 + movl 72(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,16(%rbx) + cmovleq %rbp,%r8 + movq 80(%rsi),%r9 + movl 88(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,20(%rbx) + cmovleq %rbp,%r9 + movq 96(%rsi),%r10 + movl 104(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,24(%rbx) + cmovleq %rbp,%r10 + movq 112(%rsi),%r11 + movl 120(%rsi),%ecx + cmpl %edx,%ecx + cmovgl %ecx,%edx + testl %ecx,%ecx + movl %ecx,28(%rbx) + cmovleq %rbp,%r11 + vmovdqu 0-128(%rdi),%ymm8 + leaq 128(%rsp),%rax + vmovdqu 32-128(%rdi),%ymm9 + leaq 256+128(%rsp),%rbx + vmovdqu 64-128(%rdi),%ymm10 + vmovdqu 96-128(%rdi),%ymm11 + vmovdqu 128-128(%rdi),%ymm12 + vmovdqu 160-128(%rdi),%ymm13 + vmovdqu 192-128(%rdi),%ymm14 + vmovdqu 224-128(%rdi),%ymm15 + vmovdqu L$pbswap(%rip),%ymm6 + jmp L$oop_avx2 + +.p2align 5 +L$oop_avx2: + vpxor %ymm9,%ymm10,%ymm4 + vmovd 0(%r12),%xmm5 + vmovd 0(%r8),%xmm0 + vmovd 0(%r13),%xmm1 + vmovd 0(%r9),%xmm2 + vpinsrd $1,0(%r14),%xmm5,%xmm5 + vpinsrd $1,0(%r10),%xmm0,%xmm0 + vpinsrd $1,0(%r15),%xmm1,%xmm1 + vpunpckldq %ymm1,%ymm5,%ymm5 + vpinsrd $1,0(%r11),%xmm2,%xmm2 + vpunpckldq %ymm2,%ymm0,%ymm0 + vinserti128 $1,%xmm0,%ymm5,%ymm5 + vpshufb %ymm6,%ymm5,%ymm5 + vpsrld $6,%ymm12,%ymm7 + vpslld $26,%ymm12,%ymm2 + vmovdqu %ymm5,0-128(%rax) + vpaddd %ymm15,%ymm5,%ymm5 + + vpsrld $11,%ymm12,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm12,%ymm2 + vpaddd -128(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm12,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm12,%ymm2 + vpandn %ymm14,%ymm12,%ymm0 + vpand %ymm13,%ymm12,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm8,%ymm15 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm8,%ymm1 + vpxor %ymm3,%ymm0,%ymm0 + vpxor %ymm8,%ymm9,%ymm3 + + vpxor %ymm1,%ymm15,%ymm15 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm8,%ymm1 + + vpslld $19,%ymm8,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm3,%ymm4,%ymm4 + + vpxor %ymm1,%ymm15,%ymm7 + + vpsrld $22,%ymm8,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm8,%ymm2 + vpxor %ymm4,%ymm9,%ymm15 + vpaddd %ymm5,%ymm11,%ymm11 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm15,%ymm15 + vpaddd %ymm7,%ymm15,%ymm15 + vmovd 4(%r12),%xmm5 + vmovd 4(%r8),%xmm0 + vmovd 4(%r13),%xmm1 + vmovd 4(%r9),%xmm2 + vpinsrd $1,4(%r14),%xmm5,%xmm5 + vpinsrd $1,4(%r10),%xmm0,%xmm0 + vpinsrd $1,4(%r15),%xmm1,%xmm1 + vpunpckldq %ymm1,%ymm5,%ymm5 + vpinsrd $1,4(%r11),%xmm2,%xmm2 + vpunpckldq %ymm2,%ymm0,%ymm0 + vinserti128 $1,%xmm0,%ymm5,%ymm5 + vpshufb %ymm6,%ymm5,%ymm5 + vpsrld $6,%ymm11,%ymm7 + vpslld $26,%ymm11,%ymm2 + vmovdqu %ymm5,32-128(%rax) + vpaddd %ymm14,%ymm5,%ymm5 + + vpsrld $11,%ymm11,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm11,%ymm2 + vpaddd -96(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm11,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm11,%ymm2 + vpandn %ymm13,%ymm11,%ymm0 + vpand %ymm12,%ymm11,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm15,%ymm14 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm15,%ymm1 + vpxor %ymm4,%ymm0,%ymm0 + vpxor %ymm15,%ymm8,%ymm4 + + vpxor %ymm1,%ymm14,%ymm14 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm15,%ymm1 + + vpslld $19,%ymm15,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm4,%ymm3,%ymm3 + + vpxor %ymm1,%ymm14,%ymm7 + + vpsrld $22,%ymm15,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm15,%ymm2 + vpxor %ymm3,%ymm8,%ymm14 + vpaddd %ymm5,%ymm10,%ymm10 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm14,%ymm14 + vpaddd %ymm7,%ymm14,%ymm14 + vmovd 8(%r12),%xmm5 + vmovd 8(%r8),%xmm0 + vmovd 8(%r13),%xmm1 + vmovd 8(%r9),%xmm2 + vpinsrd $1,8(%r14),%xmm5,%xmm5 + vpinsrd $1,8(%r10),%xmm0,%xmm0 + vpinsrd $1,8(%r15),%xmm1,%xmm1 + vpunpckldq %ymm1,%ymm5,%ymm5 + vpinsrd $1,8(%r11),%xmm2,%xmm2 + vpunpckldq %ymm2,%ymm0,%ymm0 + vinserti128 $1,%xmm0,%ymm5,%ymm5 + vpshufb %ymm6,%ymm5,%ymm5 + vpsrld $6,%ymm10,%ymm7 + vpslld $26,%ymm10,%ymm2 + vmovdqu %ymm5,64-128(%rax) + vpaddd %ymm13,%ymm5,%ymm5 + + vpsrld $11,%ymm10,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm10,%ymm2 + vpaddd -64(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm10,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm10,%ymm2 + vpandn %ymm12,%ymm10,%ymm0 + vpand %ymm11,%ymm10,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm14,%ymm13 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm14,%ymm1 + vpxor %ymm3,%ymm0,%ymm0 + vpxor %ymm14,%ymm15,%ymm3 + + vpxor %ymm1,%ymm13,%ymm13 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm14,%ymm1 + + vpslld $19,%ymm14,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm3,%ymm4,%ymm4 + + vpxor %ymm1,%ymm13,%ymm7 + + vpsrld $22,%ymm14,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm14,%ymm2 + vpxor %ymm4,%ymm15,%ymm13 + vpaddd %ymm5,%ymm9,%ymm9 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm13,%ymm13 + vpaddd %ymm7,%ymm13,%ymm13 + vmovd 12(%r12),%xmm5 + vmovd 12(%r8),%xmm0 + vmovd 12(%r13),%xmm1 + vmovd 12(%r9),%xmm2 + vpinsrd $1,12(%r14),%xmm5,%xmm5 + vpinsrd $1,12(%r10),%xmm0,%xmm0 + vpinsrd $1,12(%r15),%xmm1,%xmm1 + vpunpckldq %ymm1,%ymm5,%ymm5 + vpinsrd $1,12(%r11),%xmm2,%xmm2 + vpunpckldq %ymm2,%ymm0,%ymm0 + vinserti128 $1,%xmm0,%ymm5,%ymm5 + vpshufb %ymm6,%ymm5,%ymm5 + vpsrld $6,%ymm9,%ymm7 + vpslld $26,%ymm9,%ymm2 + vmovdqu %ymm5,96-128(%rax) + vpaddd %ymm12,%ymm5,%ymm5 + + vpsrld $11,%ymm9,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm9,%ymm2 + vpaddd -32(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm9,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm9,%ymm2 + vpandn %ymm11,%ymm9,%ymm0 + vpand %ymm10,%ymm9,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm13,%ymm12 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm13,%ymm1 + vpxor %ymm4,%ymm0,%ymm0 + vpxor %ymm13,%ymm14,%ymm4 + + vpxor %ymm1,%ymm12,%ymm12 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm13,%ymm1 + + vpslld $19,%ymm13,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm4,%ymm3,%ymm3 + + vpxor %ymm1,%ymm12,%ymm7 + + vpsrld $22,%ymm13,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm13,%ymm2 + vpxor %ymm3,%ymm14,%ymm12 + vpaddd %ymm5,%ymm8,%ymm8 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm12,%ymm12 + vpaddd %ymm7,%ymm12,%ymm12 + vmovd 16(%r12),%xmm5 + vmovd 16(%r8),%xmm0 + vmovd 16(%r13),%xmm1 + vmovd 16(%r9),%xmm2 + vpinsrd $1,16(%r14),%xmm5,%xmm5 + vpinsrd $1,16(%r10),%xmm0,%xmm0 + vpinsrd $1,16(%r15),%xmm1,%xmm1 + vpunpckldq %ymm1,%ymm5,%ymm5 + vpinsrd $1,16(%r11),%xmm2,%xmm2 + vpunpckldq %ymm2,%ymm0,%ymm0 + vinserti128 $1,%xmm0,%ymm5,%ymm5 + vpshufb %ymm6,%ymm5,%ymm5 + vpsrld $6,%ymm8,%ymm7 + vpslld $26,%ymm8,%ymm2 + vmovdqu %ymm5,128-128(%rax) + vpaddd %ymm11,%ymm5,%ymm5 + + vpsrld $11,%ymm8,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm8,%ymm2 + vpaddd 0(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm8,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm8,%ymm2 + vpandn %ymm10,%ymm8,%ymm0 + vpand %ymm9,%ymm8,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm12,%ymm11 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm12,%ymm1 + vpxor %ymm3,%ymm0,%ymm0 + vpxor %ymm12,%ymm13,%ymm3 + + vpxor %ymm1,%ymm11,%ymm11 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm12,%ymm1 + + vpslld $19,%ymm12,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm3,%ymm4,%ymm4 + + vpxor %ymm1,%ymm11,%ymm7 + + vpsrld $22,%ymm12,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm12,%ymm2 + vpxor %ymm4,%ymm13,%ymm11 + vpaddd %ymm5,%ymm15,%ymm15 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm11,%ymm11 + vpaddd %ymm7,%ymm11,%ymm11 + vmovd 20(%r12),%xmm5 + vmovd 20(%r8),%xmm0 + vmovd 20(%r13),%xmm1 + vmovd 20(%r9),%xmm2 + vpinsrd $1,20(%r14),%xmm5,%xmm5 + vpinsrd $1,20(%r10),%xmm0,%xmm0 + vpinsrd $1,20(%r15),%xmm1,%xmm1 + vpunpckldq %ymm1,%ymm5,%ymm5 + vpinsrd $1,20(%r11),%xmm2,%xmm2 + vpunpckldq %ymm2,%ymm0,%ymm0 + vinserti128 $1,%xmm0,%ymm5,%ymm5 + vpshufb %ymm6,%ymm5,%ymm5 + vpsrld $6,%ymm15,%ymm7 + vpslld $26,%ymm15,%ymm2 + vmovdqu %ymm5,160-128(%rax) + vpaddd %ymm10,%ymm5,%ymm5 + + vpsrld $11,%ymm15,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm15,%ymm2 + vpaddd 32(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm15,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm15,%ymm2 + vpandn %ymm9,%ymm15,%ymm0 + vpand %ymm8,%ymm15,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm11,%ymm10 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm11,%ymm1 + vpxor %ymm4,%ymm0,%ymm0 + vpxor %ymm11,%ymm12,%ymm4 + + vpxor %ymm1,%ymm10,%ymm10 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm11,%ymm1 + + vpslld $19,%ymm11,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm4,%ymm3,%ymm3 + + vpxor %ymm1,%ymm10,%ymm7 + + vpsrld $22,%ymm11,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm11,%ymm2 + vpxor %ymm3,%ymm12,%ymm10 + vpaddd %ymm5,%ymm14,%ymm14 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm10,%ymm10 + vpaddd %ymm7,%ymm10,%ymm10 + vmovd 24(%r12),%xmm5 + vmovd 24(%r8),%xmm0 + vmovd 24(%r13),%xmm1 + vmovd 24(%r9),%xmm2 + vpinsrd $1,24(%r14),%xmm5,%xmm5 + vpinsrd $1,24(%r10),%xmm0,%xmm0 + vpinsrd $1,24(%r15),%xmm1,%xmm1 + vpunpckldq %ymm1,%ymm5,%ymm5 + vpinsrd $1,24(%r11),%xmm2,%xmm2 + vpunpckldq %ymm2,%ymm0,%ymm0 + vinserti128 $1,%xmm0,%ymm5,%ymm5 + vpshufb %ymm6,%ymm5,%ymm5 + vpsrld $6,%ymm14,%ymm7 + vpslld $26,%ymm14,%ymm2 + vmovdqu %ymm5,192-128(%rax) + vpaddd %ymm9,%ymm5,%ymm5 + + vpsrld $11,%ymm14,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm14,%ymm2 + vpaddd 64(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm14,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm14,%ymm2 + vpandn %ymm8,%ymm14,%ymm0 + vpand %ymm15,%ymm14,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm10,%ymm9 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm10,%ymm1 + vpxor %ymm3,%ymm0,%ymm0 + vpxor %ymm10,%ymm11,%ymm3 + + vpxor %ymm1,%ymm9,%ymm9 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm10,%ymm1 + + vpslld $19,%ymm10,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm3,%ymm4,%ymm4 + + vpxor %ymm1,%ymm9,%ymm7 + + vpsrld $22,%ymm10,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm10,%ymm2 + vpxor %ymm4,%ymm11,%ymm9 + vpaddd %ymm5,%ymm13,%ymm13 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm9,%ymm9 + vpaddd %ymm7,%ymm9,%ymm9 + vmovd 28(%r12),%xmm5 + vmovd 28(%r8),%xmm0 + vmovd 28(%r13),%xmm1 + vmovd 28(%r9),%xmm2 + vpinsrd $1,28(%r14),%xmm5,%xmm5 + vpinsrd $1,28(%r10),%xmm0,%xmm0 + vpinsrd $1,28(%r15),%xmm1,%xmm1 + vpunpckldq %ymm1,%ymm5,%ymm5 + vpinsrd $1,28(%r11),%xmm2,%xmm2 + vpunpckldq %ymm2,%ymm0,%ymm0 + vinserti128 $1,%xmm0,%ymm5,%ymm5 + vpshufb %ymm6,%ymm5,%ymm5 + vpsrld $6,%ymm13,%ymm7 + vpslld $26,%ymm13,%ymm2 + vmovdqu %ymm5,224-128(%rax) + vpaddd %ymm8,%ymm5,%ymm5 + + vpsrld $11,%ymm13,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm13,%ymm2 + vpaddd 96(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm13,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm13,%ymm2 + vpandn %ymm15,%ymm13,%ymm0 + vpand %ymm14,%ymm13,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm9,%ymm8 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm9,%ymm1 + vpxor %ymm4,%ymm0,%ymm0 + vpxor %ymm9,%ymm10,%ymm4 + + vpxor %ymm1,%ymm8,%ymm8 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm9,%ymm1 + + vpslld $19,%ymm9,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm4,%ymm3,%ymm3 + + vpxor %ymm1,%ymm8,%ymm7 + + vpsrld $22,%ymm9,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm9,%ymm2 + vpxor %ymm3,%ymm10,%ymm8 + vpaddd %ymm5,%ymm12,%ymm12 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm8,%ymm8 + vpaddd %ymm7,%ymm8,%ymm8 + addq $256,%rbp + vmovd 32(%r12),%xmm5 + vmovd 32(%r8),%xmm0 + vmovd 32(%r13),%xmm1 + vmovd 32(%r9),%xmm2 + vpinsrd $1,32(%r14),%xmm5,%xmm5 + vpinsrd $1,32(%r10),%xmm0,%xmm0 + vpinsrd $1,32(%r15),%xmm1,%xmm1 + vpunpckldq %ymm1,%ymm5,%ymm5 + vpinsrd $1,32(%r11),%xmm2,%xmm2 + vpunpckldq %ymm2,%ymm0,%ymm0 + vinserti128 $1,%xmm0,%ymm5,%ymm5 + vpshufb %ymm6,%ymm5,%ymm5 + vpsrld $6,%ymm12,%ymm7 + vpslld $26,%ymm12,%ymm2 + vmovdqu %ymm5,256-256-128(%rbx) + vpaddd %ymm15,%ymm5,%ymm5 + + vpsrld $11,%ymm12,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm12,%ymm2 + vpaddd -128(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm12,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm12,%ymm2 + vpandn %ymm14,%ymm12,%ymm0 + vpand %ymm13,%ymm12,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm8,%ymm15 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm8,%ymm1 + vpxor %ymm3,%ymm0,%ymm0 + vpxor %ymm8,%ymm9,%ymm3 + + vpxor %ymm1,%ymm15,%ymm15 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm8,%ymm1 + + vpslld $19,%ymm8,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm3,%ymm4,%ymm4 + + vpxor %ymm1,%ymm15,%ymm7 + + vpsrld $22,%ymm8,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm8,%ymm2 + vpxor %ymm4,%ymm9,%ymm15 + vpaddd %ymm5,%ymm11,%ymm11 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm15,%ymm15 + vpaddd %ymm7,%ymm15,%ymm15 + vmovd 36(%r12),%xmm5 + vmovd 36(%r8),%xmm0 + vmovd 36(%r13),%xmm1 + vmovd 36(%r9),%xmm2 + vpinsrd $1,36(%r14),%xmm5,%xmm5 + vpinsrd $1,36(%r10),%xmm0,%xmm0 + vpinsrd $1,36(%r15),%xmm1,%xmm1 + vpunpckldq %ymm1,%ymm5,%ymm5 + vpinsrd $1,36(%r11),%xmm2,%xmm2 + vpunpckldq %ymm2,%ymm0,%ymm0 + vinserti128 $1,%xmm0,%ymm5,%ymm5 + vpshufb %ymm6,%ymm5,%ymm5 + vpsrld $6,%ymm11,%ymm7 + vpslld $26,%ymm11,%ymm2 + vmovdqu %ymm5,288-256-128(%rbx) + vpaddd %ymm14,%ymm5,%ymm5 + + vpsrld $11,%ymm11,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm11,%ymm2 + vpaddd -96(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm11,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm11,%ymm2 + vpandn %ymm13,%ymm11,%ymm0 + vpand %ymm12,%ymm11,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm15,%ymm14 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm15,%ymm1 + vpxor %ymm4,%ymm0,%ymm0 + vpxor %ymm15,%ymm8,%ymm4 + + vpxor %ymm1,%ymm14,%ymm14 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm15,%ymm1 + + vpslld $19,%ymm15,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm4,%ymm3,%ymm3 + + vpxor %ymm1,%ymm14,%ymm7 + + vpsrld $22,%ymm15,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm15,%ymm2 + vpxor %ymm3,%ymm8,%ymm14 + vpaddd %ymm5,%ymm10,%ymm10 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm14,%ymm14 + vpaddd %ymm7,%ymm14,%ymm14 + vmovd 40(%r12),%xmm5 + vmovd 40(%r8),%xmm0 + vmovd 40(%r13),%xmm1 + vmovd 40(%r9),%xmm2 + vpinsrd $1,40(%r14),%xmm5,%xmm5 + vpinsrd $1,40(%r10),%xmm0,%xmm0 + vpinsrd $1,40(%r15),%xmm1,%xmm1 + vpunpckldq %ymm1,%ymm5,%ymm5 + vpinsrd $1,40(%r11),%xmm2,%xmm2 + vpunpckldq %ymm2,%ymm0,%ymm0 + vinserti128 $1,%xmm0,%ymm5,%ymm5 + vpshufb %ymm6,%ymm5,%ymm5 + vpsrld $6,%ymm10,%ymm7 + vpslld $26,%ymm10,%ymm2 + vmovdqu %ymm5,320-256-128(%rbx) + vpaddd %ymm13,%ymm5,%ymm5 + + vpsrld $11,%ymm10,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm10,%ymm2 + vpaddd -64(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm10,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm10,%ymm2 + vpandn %ymm12,%ymm10,%ymm0 + vpand %ymm11,%ymm10,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm14,%ymm13 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm14,%ymm1 + vpxor %ymm3,%ymm0,%ymm0 + vpxor %ymm14,%ymm15,%ymm3 + + vpxor %ymm1,%ymm13,%ymm13 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm14,%ymm1 + + vpslld $19,%ymm14,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm3,%ymm4,%ymm4 + + vpxor %ymm1,%ymm13,%ymm7 + + vpsrld $22,%ymm14,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm14,%ymm2 + vpxor %ymm4,%ymm15,%ymm13 + vpaddd %ymm5,%ymm9,%ymm9 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm13,%ymm13 + vpaddd %ymm7,%ymm13,%ymm13 + vmovd 44(%r12),%xmm5 + vmovd 44(%r8),%xmm0 + vmovd 44(%r13),%xmm1 + vmovd 44(%r9),%xmm2 + vpinsrd $1,44(%r14),%xmm5,%xmm5 + vpinsrd $1,44(%r10),%xmm0,%xmm0 + vpinsrd $1,44(%r15),%xmm1,%xmm1 + vpunpckldq %ymm1,%ymm5,%ymm5 + vpinsrd $1,44(%r11),%xmm2,%xmm2 + vpunpckldq %ymm2,%ymm0,%ymm0 + vinserti128 $1,%xmm0,%ymm5,%ymm5 + vpshufb %ymm6,%ymm5,%ymm5 + vpsrld $6,%ymm9,%ymm7 + vpslld $26,%ymm9,%ymm2 + vmovdqu %ymm5,352-256-128(%rbx) + vpaddd %ymm12,%ymm5,%ymm5 + + vpsrld $11,%ymm9,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm9,%ymm2 + vpaddd -32(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm9,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm9,%ymm2 + vpandn %ymm11,%ymm9,%ymm0 + vpand %ymm10,%ymm9,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm13,%ymm12 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm13,%ymm1 + vpxor %ymm4,%ymm0,%ymm0 + vpxor %ymm13,%ymm14,%ymm4 + + vpxor %ymm1,%ymm12,%ymm12 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm13,%ymm1 + + vpslld $19,%ymm13,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm4,%ymm3,%ymm3 + + vpxor %ymm1,%ymm12,%ymm7 + + vpsrld $22,%ymm13,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm13,%ymm2 + vpxor %ymm3,%ymm14,%ymm12 + vpaddd %ymm5,%ymm8,%ymm8 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm12,%ymm12 + vpaddd %ymm7,%ymm12,%ymm12 + vmovd 48(%r12),%xmm5 + vmovd 48(%r8),%xmm0 + vmovd 48(%r13),%xmm1 + vmovd 48(%r9),%xmm2 + vpinsrd $1,48(%r14),%xmm5,%xmm5 + vpinsrd $1,48(%r10),%xmm0,%xmm0 + vpinsrd $1,48(%r15),%xmm1,%xmm1 + vpunpckldq %ymm1,%ymm5,%ymm5 + vpinsrd $1,48(%r11),%xmm2,%xmm2 + vpunpckldq %ymm2,%ymm0,%ymm0 + vinserti128 $1,%xmm0,%ymm5,%ymm5 + vpshufb %ymm6,%ymm5,%ymm5 + vpsrld $6,%ymm8,%ymm7 + vpslld $26,%ymm8,%ymm2 + vmovdqu %ymm5,384-256-128(%rbx) + vpaddd %ymm11,%ymm5,%ymm5 + + vpsrld $11,%ymm8,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm8,%ymm2 + vpaddd 0(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm8,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm8,%ymm2 + vpandn %ymm10,%ymm8,%ymm0 + vpand %ymm9,%ymm8,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm12,%ymm11 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm12,%ymm1 + vpxor %ymm3,%ymm0,%ymm0 + vpxor %ymm12,%ymm13,%ymm3 + + vpxor %ymm1,%ymm11,%ymm11 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm12,%ymm1 + + vpslld $19,%ymm12,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm3,%ymm4,%ymm4 + + vpxor %ymm1,%ymm11,%ymm7 + + vpsrld $22,%ymm12,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm12,%ymm2 + vpxor %ymm4,%ymm13,%ymm11 + vpaddd %ymm5,%ymm15,%ymm15 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm11,%ymm11 + vpaddd %ymm7,%ymm11,%ymm11 + vmovd 52(%r12),%xmm5 + vmovd 52(%r8),%xmm0 + vmovd 52(%r13),%xmm1 + vmovd 52(%r9),%xmm2 + vpinsrd $1,52(%r14),%xmm5,%xmm5 + vpinsrd $1,52(%r10),%xmm0,%xmm0 + vpinsrd $1,52(%r15),%xmm1,%xmm1 + vpunpckldq %ymm1,%ymm5,%ymm5 + vpinsrd $1,52(%r11),%xmm2,%xmm2 + vpunpckldq %ymm2,%ymm0,%ymm0 + vinserti128 $1,%xmm0,%ymm5,%ymm5 + vpshufb %ymm6,%ymm5,%ymm5 + vpsrld $6,%ymm15,%ymm7 + vpslld $26,%ymm15,%ymm2 + vmovdqu %ymm5,416-256-128(%rbx) + vpaddd %ymm10,%ymm5,%ymm5 + + vpsrld $11,%ymm15,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm15,%ymm2 + vpaddd 32(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm15,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm15,%ymm2 + vpandn %ymm9,%ymm15,%ymm0 + vpand %ymm8,%ymm15,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm11,%ymm10 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm11,%ymm1 + vpxor %ymm4,%ymm0,%ymm0 + vpxor %ymm11,%ymm12,%ymm4 + + vpxor %ymm1,%ymm10,%ymm10 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm11,%ymm1 + + vpslld $19,%ymm11,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm4,%ymm3,%ymm3 + + vpxor %ymm1,%ymm10,%ymm7 + + vpsrld $22,%ymm11,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm11,%ymm2 + vpxor %ymm3,%ymm12,%ymm10 + vpaddd %ymm5,%ymm14,%ymm14 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm10,%ymm10 + vpaddd %ymm7,%ymm10,%ymm10 + vmovd 56(%r12),%xmm5 + vmovd 56(%r8),%xmm0 + vmovd 56(%r13),%xmm1 + vmovd 56(%r9),%xmm2 + vpinsrd $1,56(%r14),%xmm5,%xmm5 + vpinsrd $1,56(%r10),%xmm0,%xmm0 + vpinsrd $1,56(%r15),%xmm1,%xmm1 + vpunpckldq %ymm1,%ymm5,%ymm5 + vpinsrd $1,56(%r11),%xmm2,%xmm2 + vpunpckldq %ymm2,%ymm0,%ymm0 + vinserti128 $1,%xmm0,%ymm5,%ymm5 + vpshufb %ymm6,%ymm5,%ymm5 + vpsrld $6,%ymm14,%ymm7 + vpslld $26,%ymm14,%ymm2 + vmovdqu %ymm5,448-256-128(%rbx) + vpaddd %ymm9,%ymm5,%ymm5 + + vpsrld $11,%ymm14,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm14,%ymm2 + vpaddd 64(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm14,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm14,%ymm2 + vpandn %ymm8,%ymm14,%ymm0 + vpand %ymm15,%ymm14,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm10,%ymm9 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm10,%ymm1 + vpxor %ymm3,%ymm0,%ymm0 + vpxor %ymm10,%ymm11,%ymm3 + + vpxor %ymm1,%ymm9,%ymm9 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm10,%ymm1 + + vpslld $19,%ymm10,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm3,%ymm4,%ymm4 + + vpxor %ymm1,%ymm9,%ymm7 + + vpsrld $22,%ymm10,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm10,%ymm2 + vpxor %ymm4,%ymm11,%ymm9 + vpaddd %ymm5,%ymm13,%ymm13 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm9,%ymm9 + vpaddd %ymm7,%ymm9,%ymm9 + vmovd 60(%r12),%xmm5 + leaq 64(%r12),%r12 + vmovd 60(%r8),%xmm0 + leaq 64(%r8),%r8 + vmovd 60(%r13),%xmm1 + leaq 64(%r13),%r13 + vmovd 60(%r9),%xmm2 + leaq 64(%r9),%r9 + vpinsrd $1,60(%r14),%xmm5,%xmm5 + leaq 64(%r14),%r14 + vpinsrd $1,60(%r10),%xmm0,%xmm0 + leaq 64(%r10),%r10 + vpinsrd $1,60(%r15),%xmm1,%xmm1 + leaq 64(%r15),%r15 + vpunpckldq %ymm1,%ymm5,%ymm5 + vpinsrd $1,60(%r11),%xmm2,%xmm2 + leaq 64(%r11),%r11 + vpunpckldq %ymm2,%ymm0,%ymm0 + vinserti128 $1,%xmm0,%ymm5,%ymm5 + vpshufb %ymm6,%ymm5,%ymm5 + vpsrld $6,%ymm13,%ymm7 + vpslld $26,%ymm13,%ymm2 + vmovdqu %ymm5,480-256-128(%rbx) + vpaddd %ymm8,%ymm5,%ymm5 + + vpsrld $11,%ymm13,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm13,%ymm2 + vpaddd 96(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm13,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + prefetcht0 63(%r12) + vpslld $7,%ymm13,%ymm2 + vpandn %ymm15,%ymm13,%ymm0 + vpand %ymm14,%ymm13,%ymm4 + prefetcht0 63(%r13) + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm9,%ymm8 + vpxor %ymm2,%ymm7,%ymm7 + prefetcht0 63(%r14) + vpslld $30,%ymm9,%ymm1 + vpxor %ymm4,%ymm0,%ymm0 + vpxor %ymm9,%ymm10,%ymm4 + prefetcht0 63(%r15) + vpxor %ymm1,%ymm8,%ymm8 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm9,%ymm1 + prefetcht0 63(%r8) + vpslld $19,%ymm9,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm4,%ymm3,%ymm3 + prefetcht0 63(%r9) + vpxor %ymm1,%ymm8,%ymm7 + + vpsrld $22,%ymm9,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + prefetcht0 63(%r10) + vpslld $10,%ymm9,%ymm2 + vpxor %ymm3,%ymm10,%ymm8 + vpaddd %ymm5,%ymm12,%ymm12 + prefetcht0 63(%r11) + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm8,%ymm8 + vpaddd %ymm7,%ymm8,%ymm8 + addq $256,%rbp + vmovdqu 0-128(%rax),%ymm5 + movl $3,%ecx + jmp L$oop_16_xx_avx2 +.p2align 5 +L$oop_16_xx_avx2: + vmovdqu 32-128(%rax),%ymm6 + vpaddd 288-256-128(%rbx),%ymm5,%ymm5 + + vpsrld $3,%ymm6,%ymm7 + vpsrld $7,%ymm6,%ymm1 + vpslld $25,%ymm6,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $18,%ymm6,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $14,%ymm6,%ymm2 + vmovdqu 448-256-128(%rbx),%ymm0 + vpsrld $10,%ymm0,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $17,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $15,%ymm0,%ymm2 + vpaddd %ymm7,%ymm5,%ymm5 + vpxor %ymm1,%ymm3,%ymm7 + vpsrld $19,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $13,%ymm0,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + vpaddd %ymm7,%ymm5,%ymm5 + vpsrld $6,%ymm12,%ymm7 + vpslld $26,%ymm12,%ymm2 + vmovdqu %ymm5,0-128(%rax) + vpaddd %ymm15,%ymm5,%ymm5 + + vpsrld $11,%ymm12,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm12,%ymm2 + vpaddd -128(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm12,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm12,%ymm2 + vpandn %ymm14,%ymm12,%ymm0 + vpand %ymm13,%ymm12,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm8,%ymm15 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm8,%ymm1 + vpxor %ymm3,%ymm0,%ymm0 + vpxor %ymm8,%ymm9,%ymm3 + + vpxor %ymm1,%ymm15,%ymm15 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm8,%ymm1 + + vpslld $19,%ymm8,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm3,%ymm4,%ymm4 + + vpxor %ymm1,%ymm15,%ymm7 + + vpsrld $22,%ymm8,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm8,%ymm2 + vpxor %ymm4,%ymm9,%ymm15 + vpaddd %ymm5,%ymm11,%ymm11 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm15,%ymm15 + vpaddd %ymm7,%ymm15,%ymm15 + vmovdqu 64-128(%rax),%ymm5 + vpaddd 320-256-128(%rbx),%ymm6,%ymm6 + + vpsrld $3,%ymm5,%ymm7 + vpsrld $7,%ymm5,%ymm1 + vpslld $25,%ymm5,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $18,%ymm5,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $14,%ymm5,%ymm2 + vmovdqu 480-256-128(%rbx),%ymm0 + vpsrld $10,%ymm0,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $17,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $15,%ymm0,%ymm2 + vpaddd %ymm7,%ymm6,%ymm6 + vpxor %ymm1,%ymm4,%ymm7 + vpsrld $19,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $13,%ymm0,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + vpaddd %ymm7,%ymm6,%ymm6 + vpsrld $6,%ymm11,%ymm7 + vpslld $26,%ymm11,%ymm2 + vmovdqu %ymm6,32-128(%rax) + vpaddd %ymm14,%ymm6,%ymm6 + + vpsrld $11,%ymm11,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm11,%ymm2 + vpaddd -96(%rbp),%ymm6,%ymm6 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm11,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm11,%ymm2 + vpandn %ymm13,%ymm11,%ymm0 + vpand %ymm12,%ymm11,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm15,%ymm14 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm15,%ymm1 + vpxor %ymm4,%ymm0,%ymm0 + vpxor %ymm15,%ymm8,%ymm4 + + vpxor %ymm1,%ymm14,%ymm14 + vpaddd %ymm7,%ymm6,%ymm6 + + vpsrld $13,%ymm15,%ymm1 + + vpslld $19,%ymm15,%ymm2 + vpaddd %ymm0,%ymm6,%ymm6 + vpand %ymm4,%ymm3,%ymm3 + + vpxor %ymm1,%ymm14,%ymm7 + + vpsrld $22,%ymm15,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm15,%ymm2 + vpxor %ymm3,%ymm8,%ymm14 + vpaddd %ymm6,%ymm10,%ymm10 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm6,%ymm14,%ymm14 + vpaddd %ymm7,%ymm14,%ymm14 + vmovdqu 96-128(%rax),%ymm6 + vpaddd 352-256-128(%rbx),%ymm5,%ymm5 + + vpsrld $3,%ymm6,%ymm7 + vpsrld $7,%ymm6,%ymm1 + vpslld $25,%ymm6,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $18,%ymm6,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $14,%ymm6,%ymm2 + vmovdqu 0-128(%rax),%ymm0 + vpsrld $10,%ymm0,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $17,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $15,%ymm0,%ymm2 + vpaddd %ymm7,%ymm5,%ymm5 + vpxor %ymm1,%ymm3,%ymm7 + vpsrld $19,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $13,%ymm0,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + vpaddd %ymm7,%ymm5,%ymm5 + vpsrld $6,%ymm10,%ymm7 + vpslld $26,%ymm10,%ymm2 + vmovdqu %ymm5,64-128(%rax) + vpaddd %ymm13,%ymm5,%ymm5 + + vpsrld $11,%ymm10,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm10,%ymm2 + vpaddd -64(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm10,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm10,%ymm2 + vpandn %ymm12,%ymm10,%ymm0 + vpand %ymm11,%ymm10,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm14,%ymm13 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm14,%ymm1 + vpxor %ymm3,%ymm0,%ymm0 + vpxor %ymm14,%ymm15,%ymm3 + + vpxor %ymm1,%ymm13,%ymm13 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm14,%ymm1 + + vpslld $19,%ymm14,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm3,%ymm4,%ymm4 + + vpxor %ymm1,%ymm13,%ymm7 + + vpsrld $22,%ymm14,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm14,%ymm2 + vpxor %ymm4,%ymm15,%ymm13 + vpaddd %ymm5,%ymm9,%ymm9 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm13,%ymm13 + vpaddd %ymm7,%ymm13,%ymm13 + vmovdqu 128-128(%rax),%ymm5 + vpaddd 384-256-128(%rbx),%ymm6,%ymm6 + + vpsrld $3,%ymm5,%ymm7 + vpsrld $7,%ymm5,%ymm1 + vpslld $25,%ymm5,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $18,%ymm5,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $14,%ymm5,%ymm2 + vmovdqu 32-128(%rax),%ymm0 + vpsrld $10,%ymm0,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $17,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $15,%ymm0,%ymm2 + vpaddd %ymm7,%ymm6,%ymm6 + vpxor %ymm1,%ymm4,%ymm7 + vpsrld $19,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $13,%ymm0,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + vpaddd %ymm7,%ymm6,%ymm6 + vpsrld $6,%ymm9,%ymm7 + vpslld $26,%ymm9,%ymm2 + vmovdqu %ymm6,96-128(%rax) + vpaddd %ymm12,%ymm6,%ymm6 + + vpsrld $11,%ymm9,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm9,%ymm2 + vpaddd -32(%rbp),%ymm6,%ymm6 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm9,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm9,%ymm2 + vpandn %ymm11,%ymm9,%ymm0 + vpand %ymm10,%ymm9,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm13,%ymm12 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm13,%ymm1 + vpxor %ymm4,%ymm0,%ymm0 + vpxor %ymm13,%ymm14,%ymm4 + + vpxor %ymm1,%ymm12,%ymm12 + vpaddd %ymm7,%ymm6,%ymm6 + + vpsrld $13,%ymm13,%ymm1 + + vpslld $19,%ymm13,%ymm2 + vpaddd %ymm0,%ymm6,%ymm6 + vpand %ymm4,%ymm3,%ymm3 + + vpxor %ymm1,%ymm12,%ymm7 + + vpsrld $22,%ymm13,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm13,%ymm2 + vpxor %ymm3,%ymm14,%ymm12 + vpaddd %ymm6,%ymm8,%ymm8 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm6,%ymm12,%ymm12 + vpaddd %ymm7,%ymm12,%ymm12 + vmovdqu 160-128(%rax),%ymm6 + vpaddd 416-256-128(%rbx),%ymm5,%ymm5 + + vpsrld $3,%ymm6,%ymm7 + vpsrld $7,%ymm6,%ymm1 + vpslld $25,%ymm6,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $18,%ymm6,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $14,%ymm6,%ymm2 + vmovdqu 64-128(%rax),%ymm0 + vpsrld $10,%ymm0,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $17,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $15,%ymm0,%ymm2 + vpaddd %ymm7,%ymm5,%ymm5 + vpxor %ymm1,%ymm3,%ymm7 + vpsrld $19,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $13,%ymm0,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + vpaddd %ymm7,%ymm5,%ymm5 + vpsrld $6,%ymm8,%ymm7 + vpslld $26,%ymm8,%ymm2 + vmovdqu %ymm5,128-128(%rax) + vpaddd %ymm11,%ymm5,%ymm5 + + vpsrld $11,%ymm8,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm8,%ymm2 + vpaddd 0(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm8,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm8,%ymm2 + vpandn %ymm10,%ymm8,%ymm0 + vpand %ymm9,%ymm8,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm12,%ymm11 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm12,%ymm1 + vpxor %ymm3,%ymm0,%ymm0 + vpxor %ymm12,%ymm13,%ymm3 + + vpxor %ymm1,%ymm11,%ymm11 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm12,%ymm1 + + vpslld $19,%ymm12,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm3,%ymm4,%ymm4 + + vpxor %ymm1,%ymm11,%ymm7 + + vpsrld $22,%ymm12,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm12,%ymm2 + vpxor %ymm4,%ymm13,%ymm11 + vpaddd %ymm5,%ymm15,%ymm15 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm11,%ymm11 + vpaddd %ymm7,%ymm11,%ymm11 + vmovdqu 192-128(%rax),%ymm5 + vpaddd 448-256-128(%rbx),%ymm6,%ymm6 + + vpsrld $3,%ymm5,%ymm7 + vpsrld $7,%ymm5,%ymm1 + vpslld $25,%ymm5,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $18,%ymm5,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $14,%ymm5,%ymm2 + vmovdqu 96-128(%rax),%ymm0 + vpsrld $10,%ymm0,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $17,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $15,%ymm0,%ymm2 + vpaddd %ymm7,%ymm6,%ymm6 + vpxor %ymm1,%ymm4,%ymm7 + vpsrld $19,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $13,%ymm0,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + vpaddd %ymm7,%ymm6,%ymm6 + vpsrld $6,%ymm15,%ymm7 + vpslld $26,%ymm15,%ymm2 + vmovdqu %ymm6,160-128(%rax) + vpaddd %ymm10,%ymm6,%ymm6 + + vpsrld $11,%ymm15,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm15,%ymm2 + vpaddd 32(%rbp),%ymm6,%ymm6 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm15,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm15,%ymm2 + vpandn %ymm9,%ymm15,%ymm0 + vpand %ymm8,%ymm15,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm11,%ymm10 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm11,%ymm1 + vpxor %ymm4,%ymm0,%ymm0 + vpxor %ymm11,%ymm12,%ymm4 + + vpxor %ymm1,%ymm10,%ymm10 + vpaddd %ymm7,%ymm6,%ymm6 + + vpsrld $13,%ymm11,%ymm1 + + vpslld $19,%ymm11,%ymm2 + vpaddd %ymm0,%ymm6,%ymm6 + vpand %ymm4,%ymm3,%ymm3 + + vpxor %ymm1,%ymm10,%ymm7 + + vpsrld $22,%ymm11,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm11,%ymm2 + vpxor %ymm3,%ymm12,%ymm10 + vpaddd %ymm6,%ymm14,%ymm14 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm6,%ymm10,%ymm10 + vpaddd %ymm7,%ymm10,%ymm10 + vmovdqu 224-128(%rax),%ymm6 + vpaddd 480-256-128(%rbx),%ymm5,%ymm5 + + vpsrld $3,%ymm6,%ymm7 + vpsrld $7,%ymm6,%ymm1 + vpslld $25,%ymm6,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $18,%ymm6,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $14,%ymm6,%ymm2 + vmovdqu 128-128(%rax),%ymm0 + vpsrld $10,%ymm0,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $17,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $15,%ymm0,%ymm2 + vpaddd %ymm7,%ymm5,%ymm5 + vpxor %ymm1,%ymm3,%ymm7 + vpsrld $19,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $13,%ymm0,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + vpaddd %ymm7,%ymm5,%ymm5 + vpsrld $6,%ymm14,%ymm7 + vpslld $26,%ymm14,%ymm2 + vmovdqu %ymm5,192-128(%rax) + vpaddd %ymm9,%ymm5,%ymm5 + + vpsrld $11,%ymm14,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm14,%ymm2 + vpaddd 64(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm14,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm14,%ymm2 + vpandn %ymm8,%ymm14,%ymm0 + vpand %ymm15,%ymm14,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm10,%ymm9 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm10,%ymm1 + vpxor %ymm3,%ymm0,%ymm0 + vpxor %ymm10,%ymm11,%ymm3 + + vpxor %ymm1,%ymm9,%ymm9 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm10,%ymm1 + + vpslld $19,%ymm10,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm3,%ymm4,%ymm4 + + vpxor %ymm1,%ymm9,%ymm7 + + vpsrld $22,%ymm10,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm10,%ymm2 + vpxor %ymm4,%ymm11,%ymm9 + vpaddd %ymm5,%ymm13,%ymm13 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm9,%ymm9 + vpaddd %ymm7,%ymm9,%ymm9 + vmovdqu 256-256-128(%rbx),%ymm5 + vpaddd 0-128(%rax),%ymm6,%ymm6 + + vpsrld $3,%ymm5,%ymm7 + vpsrld $7,%ymm5,%ymm1 + vpslld $25,%ymm5,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $18,%ymm5,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $14,%ymm5,%ymm2 + vmovdqu 160-128(%rax),%ymm0 + vpsrld $10,%ymm0,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $17,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $15,%ymm0,%ymm2 + vpaddd %ymm7,%ymm6,%ymm6 + vpxor %ymm1,%ymm4,%ymm7 + vpsrld $19,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $13,%ymm0,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + vpaddd %ymm7,%ymm6,%ymm6 + vpsrld $6,%ymm13,%ymm7 + vpslld $26,%ymm13,%ymm2 + vmovdqu %ymm6,224-128(%rax) + vpaddd %ymm8,%ymm6,%ymm6 + + vpsrld $11,%ymm13,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm13,%ymm2 + vpaddd 96(%rbp),%ymm6,%ymm6 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm13,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm13,%ymm2 + vpandn %ymm15,%ymm13,%ymm0 + vpand %ymm14,%ymm13,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm9,%ymm8 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm9,%ymm1 + vpxor %ymm4,%ymm0,%ymm0 + vpxor %ymm9,%ymm10,%ymm4 + + vpxor %ymm1,%ymm8,%ymm8 + vpaddd %ymm7,%ymm6,%ymm6 + + vpsrld $13,%ymm9,%ymm1 + + vpslld $19,%ymm9,%ymm2 + vpaddd %ymm0,%ymm6,%ymm6 + vpand %ymm4,%ymm3,%ymm3 + + vpxor %ymm1,%ymm8,%ymm7 + + vpsrld $22,%ymm9,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm9,%ymm2 + vpxor %ymm3,%ymm10,%ymm8 + vpaddd %ymm6,%ymm12,%ymm12 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm6,%ymm8,%ymm8 + vpaddd %ymm7,%ymm8,%ymm8 + addq $256,%rbp + vmovdqu 288-256-128(%rbx),%ymm6 + vpaddd 32-128(%rax),%ymm5,%ymm5 + + vpsrld $3,%ymm6,%ymm7 + vpsrld $7,%ymm6,%ymm1 + vpslld $25,%ymm6,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $18,%ymm6,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $14,%ymm6,%ymm2 + vmovdqu 192-128(%rax),%ymm0 + vpsrld $10,%ymm0,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $17,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $15,%ymm0,%ymm2 + vpaddd %ymm7,%ymm5,%ymm5 + vpxor %ymm1,%ymm3,%ymm7 + vpsrld $19,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $13,%ymm0,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + vpaddd %ymm7,%ymm5,%ymm5 + vpsrld $6,%ymm12,%ymm7 + vpslld $26,%ymm12,%ymm2 + vmovdqu %ymm5,256-256-128(%rbx) + vpaddd %ymm15,%ymm5,%ymm5 + + vpsrld $11,%ymm12,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm12,%ymm2 + vpaddd -128(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm12,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm12,%ymm2 + vpandn %ymm14,%ymm12,%ymm0 + vpand %ymm13,%ymm12,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm8,%ymm15 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm8,%ymm1 + vpxor %ymm3,%ymm0,%ymm0 + vpxor %ymm8,%ymm9,%ymm3 + + vpxor %ymm1,%ymm15,%ymm15 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm8,%ymm1 + + vpslld $19,%ymm8,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm3,%ymm4,%ymm4 + + vpxor %ymm1,%ymm15,%ymm7 + + vpsrld $22,%ymm8,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm8,%ymm2 + vpxor %ymm4,%ymm9,%ymm15 + vpaddd %ymm5,%ymm11,%ymm11 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm15,%ymm15 + vpaddd %ymm7,%ymm15,%ymm15 + vmovdqu 320-256-128(%rbx),%ymm5 + vpaddd 64-128(%rax),%ymm6,%ymm6 + + vpsrld $3,%ymm5,%ymm7 + vpsrld $7,%ymm5,%ymm1 + vpslld $25,%ymm5,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $18,%ymm5,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $14,%ymm5,%ymm2 + vmovdqu 224-128(%rax),%ymm0 + vpsrld $10,%ymm0,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $17,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $15,%ymm0,%ymm2 + vpaddd %ymm7,%ymm6,%ymm6 + vpxor %ymm1,%ymm4,%ymm7 + vpsrld $19,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $13,%ymm0,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + vpaddd %ymm7,%ymm6,%ymm6 + vpsrld $6,%ymm11,%ymm7 + vpslld $26,%ymm11,%ymm2 + vmovdqu %ymm6,288-256-128(%rbx) + vpaddd %ymm14,%ymm6,%ymm6 + + vpsrld $11,%ymm11,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm11,%ymm2 + vpaddd -96(%rbp),%ymm6,%ymm6 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm11,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm11,%ymm2 + vpandn %ymm13,%ymm11,%ymm0 + vpand %ymm12,%ymm11,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm15,%ymm14 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm15,%ymm1 + vpxor %ymm4,%ymm0,%ymm0 + vpxor %ymm15,%ymm8,%ymm4 + + vpxor %ymm1,%ymm14,%ymm14 + vpaddd %ymm7,%ymm6,%ymm6 + + vpsrld $13,%ymm15,%ymm1 + + vpslld $19,%ymm15,%ymm2 + vpaddd %ymm0,%ymm6,%ymm6 + vpand %ymm4,%ymm3,%ymm3 + + vpxor %ymm1,%ymm14,%ymm7 + + vpsrld $22,%ymm15,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm15,%ymm2 + vpxor %ymm3,%ymm8,%ymm14 + vpaddd %ymm6,%ymm10,%ymm10 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm6,%ymm14,%ymm14 + vpaddd %ymm7,%ymm14,%ymm14 + vmovdqu 352-256-128(%rbx),%ymm6 + vpaddd 96-128(%rax),%ymm5,%ymm5 + + vpsrld $3,%ymm6,%ymm7 + vpsrld $7,%ymm6,%ymm1 + vpslld $25,%ymm6,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $18,%ymm6,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $14,%ymm6,%ymm2 + vmovdqu 256-256-128(%rbx),%ymm0 + vpsrld $10,%ymm0,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $17,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $15,%ymm0,%ymm2 + vpaddd %ymm7,%ymm5,%ymm5 + vpxor %ymm1,%ymm3,%ymm7 + vpsrld $19,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $13,%ymm0,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + vpaddd %ymm7,%ymm5,%ymm5 + vpsrld $6,%ymm10,%ymm7 + vpslld $26,%ymm10,%ymm2 + vmovdqu %ymm5,320-256-128(%rbx) + vpaddd %ymm13,%ymm5,%ymm5 + + vpsrld $11,%ymm10,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm10,%ymm2 + vpaddd -64(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm10,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm10,%ymm2 + vpandn %ymm12,%ymm10,%ymm0 + vpand %ymm11,%ymm10,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm14,%ymm13 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm14,%ymm1 + vpxor %ymm3,%ymm0,%ymm0 + vpxor %ymm14,%ymm15,%ymm3 + + vpxor %ymm1,%ymm13,%ymm13 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm14,%ymm1 + + vpslld $19,%ymm14,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm3,%ymm4,%ymm4 + + vpxor %ymm1,%ymm13,%ymm7 + + vpsrld $22,%ymm14,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm14,%ymm2 + vpxor %ymm4,%ymm15,%ymm13 + vpaddd %ymm5,%ymm9,%ymm9 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm13,%ymm13 + vpaddd %ymm7,%ymm13,%ymm13 + vmovdqu 384-256-128(%rbx),%ymm5 + vpaddd 128-128(%rax),%ymm6,%ymm6 + + vpsrld $3,%ymm5,%ymm7 + vpsrld $7,%ymm5,%ymm1 + vpslld $25,%ymm5,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $18,%ymm5,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $14,%ymm5,%ymm2 + vmovdqu 288-256-128(%rbx),%ymm0 + vpsrld $10,%ymm0,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $17,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $15,%ymm0,%ymm2 + vpaddd %ymm7,%ymm6,%ymm6 + vpxor %ymm1,%ymm4,%ymm7 + vpsrld $19,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $13,%ymm0,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + vpaddd %ymm7,%ymm6,%ymm6 + vpsrld $6,%ymm9,%ymm7 + vpslld $26,%ymm9,%ymm2 + vmovdqu %ymm6,352-256-128(%rbx) + vpaddd %ymm12,%ymm6,%ymm6 + + vpsrld $11,%ymm9,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm9,%ymm2 + vpaddd -32(%rbp),%ymm6,%ymm6 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm9,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm9,%ymm2 + vpandn %ymm11,%ymm9,%ymm0 + vpand %ymm10,%ymm9,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm13,%ymm12 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm13,%ymm1 + vpxor %ymm4,%ymm0,%ymm0 + vpxor %ymm13,%ymm14,%ymm4 + + vpxor %ymm1,%ymm12,%ymm12 + vpaddd %ymm7,%ymm6,%ymm6 + + vpsrld $13,%ymm13,%ymm1 + + vpslld $19,%ymm13,%ymm2 + vpaddd %ymm0,%ymm6,%ymm6 + vpand %ymm4,%ymm3,%ymm3 + + vpxor %ymm1,%ymm12,%ymm7 + + vpsrld $22,%ymm13,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm13,%ymm2 + vpxor %ymm3,%ymm14,%ymm12 + vpaddd %ymm6,%ymm8,%ymm8 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm6,%ymm12,%ymm12 + vpaddd %ymm7,%ymm12,%ymm12 + vmovdqu 416-256-128(%rbx),%ymm6 + vpaddd 160-128(%rax),%ymm5,%ymm5 + + vpsrld $3,%ymm6,%ymm7 + vpsrld $7,%ymm6,%ymm1 + vpslld $25,%ymm6,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $18,%ymm6,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $14,%ymm6,%ymm2 + vmovdqu 320-256-128(%rbx),%ymm0 + vpsrld $10,%ymm0,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $17,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $15,%ymm0,%ymm2 + vpaddd %ymm7,%ymm5,%ymm5 + vpxor %ymm1,%ymm3,%ymm7 + vpsrld $19,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $13,%ymm0,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + vpaddd %ymm7,%ymm5,%ymm5 + vpsrld $6,%ymm8,%ymm7 + vpslld $26,%ymm8,%ymm2 + vmovdqu %ymm5,384-256-128(%rbx) + vpaddd %ymm11,%ymm5,%ymm5 + + vpsrld $11,%ymm8,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm8,%ymm2 + vpaddd 0(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm8,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm8,%ymm2 + vpandn %ymm10,%ymm8,%ymm0 + vpand %ymm9,%ymm8,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm12,%ymm11 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm12,%ymm1 + vpxor %ymm3,%ymm0,%ymm0 + vpxor %ymm12,%ymm13,%ymm3 + + vpxor %ymm1,%ymm11,%ymm11 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm12,%ymm1 + + vpslld $19,%ymm12,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm3,%ymm4,%ymm4 + + vpxor %ymm1,%ymm11,%ymm7 + + vpsrld $22,%ymm12,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm12,%ymm2 + vpxor %ymm4,%ymm13,%ymm11 + vpaddd %ymm5,%ymm15,%ymm15 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm11,%ymm11 + vpaddd %ymm7,%ymm11,%ymm11 + vmovdqu 448-256-128(%rbx),%ymm5 + vpaddd 192-128(%rax),%ymm6,%ymm6 + + vpsrld $3,%ymm5,%ymm7 + vpsrld $7,%ymm5,%ymm1 + vpslld $25,%ymm5,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $18,%ymm5,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $14,%ymm5,%ymm2 + vmovdqu 352-256-128(%rbx),%ymm0 + vpsrld $10,%ymm0,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $17,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $15,%ymm0,%ymm2 + vpaddd %ymm7,%ymm6,%ymm6 + vpxor %ymm1,%ymm4,%ymm7 + vpsrld $19,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $13,%ymm0,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + vpaddd %ymm7,%ymm6,%ymm6 + vpsrld $6,%ymm15,%ymm7 + vpslld $26,%ymm15,%ymm2 + vmovdqu %ymm6,416-256-128(%rbx) + vpaddd %ymm10,%ymm6,%ymm6 + + vpsrld $11,%ymm15,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm15,%ymm2 + vpaddd 32(%rbp),%ymm6,%ymm6 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm15,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm15,%ymm2 + vpandn %ymm9,%ymm15,%ymm0 + vpand %ymm8,%ymm15,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm11,%ymm10 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm11,%ymm1 + vpxor %ymm4,%ymm0,%ymm0 + vpxor %ymm11,%ymm12,%ymm4 + + vpxor %ymm1,%ymm10,%ymm10 + vpaddd %ymm7,%ymm6,%ymm6 + + vpsrld $13,%ymm11,%ymm1 + + vpslld $19,%ymm11,%ymm2 + vpaddd %ymm0,%ymm6,%ymm6 + vpand %ymm4,%ymm3,%ymm3 + + vpxor %ymm1,%ymm10,%ymm7 + + vpsrld $22,%ymm11,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm11,%ymm2 + vpxor %ymm3,%ymm12,%ymm10 + vpaddd %ymm6,%ymm14,%ymm14 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm6,%ymm10,%ymm10 + vpaddd %ymm7,%ymm10,%ymm10 + vmovdqu 480-256-128(%rbx),%ymm6 + vpaddd 224-128(%rax),%ymm5,%ymm5 + + vpsrld $3,%ymm6,%ymm7 + vpsrld $7,%ymm6,%ymm1 + vpslld $25,%ymm6,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $18,%ymm6,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $14,%ymm6,%ymm2 + vmovdqu 384-256-128(%rbx),%ymm0 + vpsrld $10,%ymm0,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $17,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $15,%ymm0,%ymm2 + vpaddd %ymm7,%ymm5,%ymm5 + vpxor %ymm1,%ymm3,%ymm7 + vpsrld $19,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $13,%ymm0,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + vpaddd %ymm7,%ymm5,%ymm5 + vpsrld $6,%ymm14,%ymm7 + vpslld $26,%ymm14,%ymm2 + vmovdqu %ymm5,448-256-128(%rbx) + vpaddd %ymm9,%ymm5,%ymm5 + + vpsrld $11,%ymm14,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm14,%ymm2 + vpaddd 64(%rbp),%ymm5,%ymm5 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm14,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm14,%ymm2 + vpandn %ymm8,%ymm14,%ymm0 + vpand %ymm15,%ymm14,%ymm3 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm10,%ymm9 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm10,%ymm1 + vpxor %ymm3,%ymm0,%ymm0 + vpxor %ymm10,%ymm11,%ymm3 + + vpxor %ymm1,%ymm9,%ymm9 + vpaddd %ymm7,%ymm5,%ymm5 + + vpsrld $13,%ymm10,%ymm1 + + vpslld $19,%ymm10,%ymm2 + vpaddd %ymm0,%ymm5,%ymm5 + vpand %ymm3,%ymm4,%ymm4 + + vpxor %ymm1,%ymm9,%ymm7 + + vpsrld $22,%ymm10,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm10,%ymm2 + vpxor %ymm4,%ymm11,%ymm9 + vpaddd %ymm5,%ymm13,%ymm13 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm5,%ymm9,%ymm9 + vpaddd %ymm7,%ymm9,%ymm9 + vmovdqu 0-128(%rax),%ymm5 + vpaddd 256-256-128(%rbx),%ymm6,%ymm6 + + vpsrld $3,%ymm5,%ymm7 + vpsrld $7,%ymm5,%ymm1 + vpslld $25,%ymm5,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $18,%ymm5,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $14,%ymm5,%ymm2 + vmovdqu 416-256-128(%rbx),%ymm0 + vpsrld $10,%ymm0,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + vpsrld $17,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $15,%ymm0,%ymm2 + vpaddd %ymm7,%ymm6,%ymm6 + vpxor %ymm1,%ymm4,%ymm7 + vpsrld $19,%ymm0,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $13,%ymm0,%ymm2 + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + vpaddd %ymm7,%ymm6,%ymm6 + vpsrld $6,%ymm13,%ymm7 + vpslld $26,%ymm13,%ymm2 + vmovdqu %ymm6,480-256-128(%rbx) + vpaddd %ymm8,%ymm6,%ymm6 + + vpsrld $11,%ymm13,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + vpslld $21,%ymm13,%ymm2 + vpaddd 96(%rbp),%ymm6,%ymm6 + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $25,%ymm13,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $7,%ymm13,%ymm2 + vpandn %ymm15,%ymm13,%ymm0 + vpand %ymm14,%ymm13,%ymm4 + + vpxor %ymm1,%ymm7,%ymm7 + + vpsrld $2,%ymm9,%ymm8 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $30,%ymm9,%ymm1 + vpxor %ymm4,%ymm0,%ymm0 + vpxor %ymm9,%ymm10,%ymm4 + + vpxor %ymm1,%ymm8,%ymm8 + vpaddd %ymm7,%ymm6,%ymm6 + + vpsrld $13,%ymm9,%ymm1 + + vpslld $19,%ymm9,%ymm2 + vpaddd %ymm0,%ymm6,%ymm6 + vpand %ymm4,%ymm3,%ymm3 + + vpxor %ymm1,%ymm8,%ymm7 + + vpsrld $22,%ymm9,%ymm1 + vpxor %ymm2,%ymm7,%ymm7 + + vpslld $10,%ymm9,%ymm2 + vpxor %ymm3,%ymm10,%ymm8 + vpaddd %ymm6,%ymm12,%ymm12 + + vpxor %ymm1,%ymm7,%ymm7 + vpxor %ymm2,%ymm7,%ymm7 + + vpaddd %ymm6,%ymm8,%ymm8 + vpaddd %ymm7,%ymm8,%ymm8 + addq $256,%rbp + decl %ecx + jnz L$oop_16_xx_avx2 + + movl $1,%ecx + leaq 512(%rsp),%rbx + leaq K256+128(%rip),%rbp + cmpl 0(%rbx),%ecx + cmovgeq %rbp,%r12 + cmpl 4(%rbx),%ecx + cmovgeq %rbp,%r13 + cmpl 8(%rbx),%ecx + cmovgeq %rbp,%r14 + cmpl 12(%rbx),%ecx + cmovgeq %rbp,%r15 + cmpl 16(%rbx),%ecx + cmovgeq %rbp,%r8 + cmpl 20(%rbx),%ecx + cmovgeq %rbp,%r9 + cmpl 24(%rbx),%ecx + cmovgeq %rbp,%r10 + cmpl 28(%rbx),%ecx + cmovgeq %rbp,%r11 + vmovdqa (%rbx),%ymm7 + vpxor %ymm0,%ymm0,%ymm0 + vmovdqa %ymm7,%ymm6 + vpcmpgtd %ymm0,%ymm6,%ymm6 + vpaddd %ymm6,%ymm7,%ymm7 + + vmovdqu 0-128(%rdi),%ymm0 + vpand %ymm6,%ymm8,%ymm8 + vmovdqu 32-128(%rdi),%ymm1 + vpand %ymm6,%ymm9,%ymm9 + vmovdqu 64-128(%rdi),%ymm2 + vpand %ymm6,%ymm10,%ymm10 + vmovdqu 96-128(%rdi),%ymm5 + vpand %ymm6,%ymm11,%ymm11 + vpaddd %ymm0,%ymm8,%ymm8 + vmovdqu 128-128(%rdi),%ymm0 + vpand %ymm6,%ymm12,%ymm12 + vpaddd %ymm1,%ymm9,%ymm9 + vmovdqu 160-128(%rdi),%ymm1 + vpand %ymm6,%ymm13,%ymm13 + vpaddd %ymm2,%ymm10,%ymm10 + vmovdqu 192-128(%rdi),%ymm2 + vpand %ymm6,%ymm14,%ymm14 + vpaddd %ymm5,%ymm11,%ymm11 + vmovdqu 224-128(%rdi),%ymm5 + vpand %ymm6,%ymm15,%ymm15 + vpaddd %ymm0,%ymm12,%ymm12 + vpaddd %ymm1,%ymm13,%ymm13 + vmovdqu %ymm8,0-128(%rdi) + vpaddd %ymm2,%ymm14,%ymm14 + vmovdqu %ymm9,32-128(%rdi) + vpaddd %ymm5,%ymm15,%ymm15 + vmovdqu %ymm10,64-128(%rdi) + vmovdqu %ymm11,96-128(%rdi) + vmovdqu %ymm12,128-128(%rdi) + vmovdqu %ymm13,160-128(%rdi) + vmovdqu %ymm14,192-128(%rdi) + vmovdqu %ymm15,224-128(%rdi) + + vmovdqu %ymm7,(%rbx) + leaq 256+128(%rsp),%rbx + vmovdqu L$pbswap(%rip),%ymm6 + decl %edx + jnz L$oop_avx2 + + + + + + + +L$done_avx2: + movq 544(%rsp),%rax + + vzeroupper + movq -48(%rax),%r15 + + movq -40(%rax),%r14 + + movq -32(%rax),%r13 + + movq -24(%rax),%r12 + + movq -16(%rax),%rbp + + movq -8(%rax),%rbx + + leaq (%rax),%rsp + +L$epilogue_avx2: + .byte 0xf3,0xc3 + + +.p2align 8 +K256: +.long 1116352408,1116352408,1116352408,1116352408 +.long 1116352408,1116352408,1116352408,1116352408 +.long 1899447441,1899447441,1899447441,1899447441 +.long 1899447441,1899447441,1899447441,1899447441 +.long 3049323471,3049323471,3049323471,3049323471 +.long 3049323471,3049323471,3049323471,3049323471 +.long 3921009573,3921009573,3921009573,3921009573 +.long 3921009573,3921009573,3921009573,3921009573 +.long 961987163,961987163,961987163,961987163 +.long 961987163,961987163,961987163,961987163 +.long 1508970993,1508970993,1508970993,1508970993 +.long 1508970993,1508970993,1508970993,1508970993 +.long 2453635748,2453635748,2453635748,2453635748 +.long 2453635748,2453635748,2453635748,2453635748 +.long 2870763221,2870763221,2870763221,2870763221 +.long 2870763221,2870763221,2870763221,2870763221 +.long 3624381080,3624381080,3624381080,3624381080 +.long 3624381080,3624381080,3624381080,3624381080 +.long 310598401,310598401,310598401,310598401 +.long 310598401,310598401,310598401,310598401 +.long 607225278,607225278,607225278,607225278 +.long 607225278,607225278,607225278,607225278 +.long 1426881987,1426881987,1426881987,1426881987 +.long 1426881987,1426881987,1426881987,1426881987 +.long 1925078388,1925078388,1925078388,1925078388 +.long 1925078388,1925078388,1925078388,1925078388 +.long 2162078206,2162078206,2162078206,2162078206 +.long 2162078206,2162078206,2162078206,2162078206 +.long 2614888103,2614888103,2614888103,2614888103 +.long 2614888103,2614888103,2614888103,2614888103 +.long 3248222580,3248222580,3248222580,3248222580 +.long 3248222580,3248222580,3248222580,3248222580 +.long 3835390401,3835390401,3835390401,3835390401 +.long 3835390401,3835390401,3835390401,3835390401 +.long 4022224774,4022224774,4022224774,4022224774 +.long 4022224774,4022224774,4022224774,4022224774 +.long 264347078,264347078,264347078,264347078 +.long 264347078,264347078,264347078,264347078 +.long 604807628,604807628,604807628,604807628 +.long 604807628,604807628,604807628,604807628 +.long 770255983,770255983,770255983,770255983 +.long 770255983,770255983,770255983,770255983 +.long 1249150122,1249150122,1249150122,1249150122 +.long 1249150122,1249150122,1249150122,1249150122 +.long 1555081692,1555081692,1555081692,1555081692 +.long 1555081692,1555081692,1555081692,1555081692 +.long 1996064986,1996064986,1996064986,1996064986 +.long 1996064986,1996064986,1996064986,1996064986 +.long 2554220882,2554220882,2554220882,2554220882 +.long 2554220882,2554220882,2554220882,2554220882 +.long 2821834349,2821834349,2821834349,2821834349 +.long 2821834349,2821834349,2821834349,2821834349 +.long 2952996808,2952996808,2952996808,2952996808 +.long 2952996808,2952996808,2952996808,2952996808 +.long 3210313671,3210313671,3210313671,3210313671 +.long 3210313671,3210313671,3210313671,3210313671 +.long 3336571891,3336571891,3336571891,3336571891 +.long 3336571891,3336571891,3336571891,3336571891 +.long 3584528711,3584528711,3584528711,3584528711 +.long 3584528711,3584528711,3584528711,3584528711 +.long 113926993,113926993,113926993,113926993 +.long 113926993,113926993,113926993,113926993 +.long 338241895,338241895,338241895,338241895 +.long 338241895,338241895,338241895,338241895 +.long 666307205,666307205,666307205,666307205 +.long 666307205,666307205,666307205,666307205 +.long 773529912,773529912,773529912,773529912 +.long 773529912,773529912,773529912,773529912 +.long 1294757372,1294757372,1294757372,1294757372 +.long 1294757372,1294757372,1294757372,1294757372 +.long 1396182291,1396182291,1396182291,1396182291 +.long 1396182291,1396182291,1396182291,1396182291 +.long 1695183700,1695183700,1695183700,1695183700 +.long 1695183700,1695183700,1695183700,1695183700 +.long 1986661051,1986661051,1986661051,1986661051 +.long 1986661051,1986661051,1986661051,1986661051 +.long 2177026350,2177026350,2177026350,2177026350 +.long 2177026350,2177026350,2177026350,2177026350 +.long 2456956037,2456956037,2456956037,2456956037 +.long 2456956037,2456956037,2456956037,2456956037 +.long 2730485921,2730485921,2730485921,2730485921 +.long 2730485921,2730485921,2730485921,2730485921 +.long 2820302411,2820302411,2820302411,2820302411 +.long 2820302411,2820302411,2820302411,2820302411 +.long 3259730800,3259730800,3259730800,3259730800 +.long 3259730800,3259730800,3259730800,3259730800 +.long 3345764771,3345764771,3345764771,3345764771 +.long 3345764771,3345764771,3345764771,3345764771 +.long 3516065817,3516065817,3516065817,3516065817 +.long 3516065817,3516065817,3516065817,3516065817 +.long 3600352804,3600352804,3600352804,3600352804 +.long 3600352804,3600352804,3600352804,3600352804 +.long 4094571909,4094571909,4094571909,4094571909 +.long 4094571909,4094571909,4094571909,4094571909 +.long 275423344,275423344,275423344,275423344 +.long 275423344,275423344,275423344,275423344 +.long 430227734,430227734,430227734,430227734 +.long 430227734,430227734,430227734,430227734 +.long 506948616,506948616,506948616,506948616 +.long 506948616,506948616,506948616,506948616 +.long 659060556,659060556,659060556,659060556 +.long 659060556,659060556,659060556,659060556 +.long 883997877,883997877,883997877,883997877 +.long 883997877,883997877,883997877,883997877 +.long 958139571,958139571,958139571,958139571 +.long 958139571,958139571,958139571,958139571 +.long 1322822218,1322822218,1322822218,1322822218 +.long 1322822218,1322822218,1322822218,1322822218 +.long 1537002063,1537002063,1537002063,1537002063 +.long 1537002063,1537002063,1537002063,1537002063 +.long 1747873779,1747873779,1747873779,1747873779 +.long 1747873779,1747873779,1747873779,1747873779 +.long 1955562222,1955562222,1955562222,1955562222 +.long 1955562222,1955562222,1955562222,1955562222 +.long 2024104815,2024104815,2024104815,2024104815 +.long 2024104815,2024104815,2024104815,2024104815 +.long 2227730452,2227730452,2227730452,2227730452 +.long 2227730452,2227730452,2227730452,2227730452 +.long 2361852424,2361852424,2361852424,2361852424 +.long 2361852424,2361852424,2361852424,2361852424 +.long 2428436474,2428436474,2428436474,2428436474 +.long 2428436474,2428436474,2428436474,2428436474 +.long 2756734187,2756734187,2756734187,2756734187 +.long 2756734187,2756734187,2756734187,2756734187 +.long 3204031479,3204031479,3204031479,3204031479 +.long 3204031479,3204031479,3204031479,3204031479 +.long 3329325298,3329325298,3329325298,3329325298 +.long 3329325298,3329325298,3329325298,3329325298 +L$pbswap: +.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f +.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f +K256_shaext: +.long 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5 +.long 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5 +.long 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3 +.long 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174 +.long 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc +.long 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da +.long 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7 +.long 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967 +.long 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13 +.long 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85 +.long 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3 +.long 0xd192e819,0xd6990624,0xf40e3585,0x106aa070 +.long 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5 +.long 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3 +.long 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208 +.long 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 +.byte 83,72,65,50,53,54,32,109,117,108,116,105,45,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 diff --git a/vere/ext/openssl/gen/macos-x86_64/crypto/sha/sha256-x86_64.s b/vere/ext/openssl/gen/macos-x86_64/crypto/sha/sha256-x86_64.s new file mode 100644 index 0000000..3952a77 --- /dev/null +++ b/vere/ext/openssl/gen/macos-x86_64/crypto/sha/sha256-x86_64.s @@ -0,0 +1,5456 @@ +.text + + +.globl _sha256_block_data_order + +.p2align 4 +_sha256_block_data_order: + + leaq _OPENSSL_ia32cap_P(%rip),%r11 + movl 0(%r11),%r9d + movl 4(%r11),%r10d + movl 8(%r11),%r11d + testl $536870912,%r11d + jnz _shaext_shortcut + andl $296,%r11d + cmpl $296,%r11d + je L$avx2_shortcut + andl $1073741824,%r9d + andl $268435968,%r10d + orl %r9d,%r10d + cmpl $1342177792,%r10d + je L$avx_shortcut + testl $512,%r10d + jnz L$ssse3_shortcut + movq %rsp,%rax + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + shlq $4,%rdx + subq $64+32,%rsp + leaq (%rsi,%rdx,4),%rdx + andq $-64,%rsp + movq %rdi,64+0(%rsp) + movq %rsi,64+8(%rsp) + movq %rdx,64+16(%rsp) + movq %rax,88(%rsp) + +L$prologue: + + movl 0(%rdi),%eax + movl 4(%rdi),%ebx + movl 8(%rdi),%ecx + movl 12(%rdi),%edx + movl 16(%rdi),%r8d + movl 20(%rdi),%r9d + movl 24(%rdi),%r10d + movl 28(%rdi),%r11d + jmp L$loop + +.p2align 4 +L$loop: + movl %ebx,%edi + leaq K256(%rip),%rbp + xorl %ecx,%edi + movl 0(%rsi),%r12d + movl %r8d,%r13d + movl %eax,%r14d + bswapl %r12d + rorl $14,%r13d + movl %r9d,%r15d + + xorl %r8d,%r13d + rorl $9,%r14d + xorl %r10d,%r15d + + movl %r12d,0(%rsp) + xorl %eax,%r14d + andl %r8d,%r15d + + rorl $5,%r13d + addl %r11d,%r12d + xorl %r10d,%r15d + + rorl $11,%r14d + xorl %r8d,%r13d + addl %r15d,%r12d + + movl %eax,%r15d + addl (%rbp),%r12d + xorl %eax,%r14d + + xorl %ebx,%r15d + rorl $6,%r13d + movl %ebx,%r11d + + andl %r15d,%edi + rorl $2,%r14d + addl %r13d,%r12d + + xorl %edi,%r11d + addl %r12d,%edx + addl %r12d,%r11d + + leaq 4(%rbp),%rbp + addl %r14d,%r11d + movl 4(%rsi),%r12d + movl %edx,%r13d + movl %r11d,%r14d + bswapl %r12d + rorl $14,%r13d + movl %r8d,%edi + + xorl %edx,%r13d + rorl $9,%r14d + xorl %r9d,%edi + + movl %r12d,4(%rsp) + xorl %r11d,%r14d + andl %edx,%edi + + rorl $5,%r13d + addl %r10d,%r12d + xorl %r9d,%edi + + rorl $11,%r14d + xorl %edx,%r13d + addl %edi,%r12d + + movl %r11d,%edi + addl (%rbp),%r12d + xorl %r11d,%r14d + + xorl %eax,%edi + rorl $6,%r13d + movl %eax,%r10d + + andl %edi,%r15d + rorl $2,%r14d + addl %r13d,%r12d + + xorl %r15d,%r10d + addl %r12d,%ecx + addl %r12d,%r10d + + leaq 4(%rbp),%rbp + addl %r14d,%r10d + movl 8(%rsi),%r12d + movl %ecx,%r13d + movl %r10d,%r14d + bswapl %r12d + rorl $14,%r13d + movl %edx,%r15d + + xorl %ecx,%r13d + rorl $9,%r14d + xorl %r8d,%r15d + + movl %r12d,8(%rsp) + xorl %r10d,%r14d + andl %ecx,%r15d + + rorl $5,%r13d + addl %r9d,%r12d + xorl %r8d,%r15d + + rorl $11,%r14d + xorl %ecx,%r13d + addl %r15d,%r12d + + movl %r10d,%r15d + addl (%rbp),%r12d + xorl %r10d,%r14d + + xorl %r11d,%r15d + rorl $6,%r13d + movl %r11d,%r9d + + andl %r15d,%edi + rorl $2,%r14d + addl %r13d,%r12d + + xorl %edi,%r9d + addl %r12d,%ebx + addl %r12d,%r9d + + leaq 4(%rbp),%rbp + addl %r14d,%r9d + movl 12(%rsi),%r12d + movl %ebx,%r13d + movl %r9d,%r14d + bswapl %r12d + rorl $14,%r13d + movl %ecx,%edi + + xorl %ebx,%r13d + rorl $9,%r14d + xorl %edx,%edi + + movl %r12d,12(%rsp) + xorl %r9d,%r14d + andl %ebx,%edi + + rorl $5,%r13d + addl %r8d,%r12d + xorl %edx,%edi + + rorl $11,%r14d + xorl %ebx,%r13d + addl %edi,%r12d + + movl %r9d,%edi + addl (%rbp),%r12d + xorl %r9d,%r14d + + xorl %r10d,%edi + rorl $6,%r13d + movl %r10d,%r8d + + andl %edi,%r15d + rorl $2,%r14d + addl %r13d,%r12d + + xorl %r15d,%r8d + addl %r12d,%eax + addl %r12d,%r8d + + leaq 20(%rbp),%rbp + addl %r14d,%r8d + movl 16(%rsi),%r12d + movl %eax,%r13d + movl %r8d,%r14d + bswapl %r12d + rorl $14,%r13d + movl %ebx,%r15d + + xorl %eax,%r13d + rorl $9,%r14d + xorl %ecx,%r15d + + movl %r12d,16(%rsp) + xorl %r8d,%r14d + andl %eax,%r15d + + rorl $5,%r13d + addl %edx,%r12d + xorl %ecx,%r15d + + rorl $11,%r14d + xorl %eax,%r13d + addl %r15d,%r12d + + movl %r8d,%r15d + addl (%rbp),%r12d + xorl %r8d,%r14d + + xorl %r9d,%r15d + rorl $6,%r13d + movl %r9d,%edx + + andl %r15d,%edi + rorl $2,%r14d + addl %r13d,%r12d + + xorl %edi,%edx + addl %r12d,%r11d + addl %r12d,%edx + + leaq 4(%rbp),%rbp + addl %r14d,%edx + movl 20(%rsi),%r12d + movl %r11d,%r13d + movl %edx,%r14d + bswapl %r12d + rorl $14,%r13d + movl %eax,%edi + + xorl %r11d,%r13d + rorl $9,%r14d + xorl %ebx,%edi + + movl %r12d,20(%rsp) + xorl %edx,%r14d + andl %r11d,%edi + + rorl $5,%r13d + addl %ecx,%r12d + xorl %ebx,%edi + + rorl $11,%r14d + xorl %r11d,%r13d + addl %edi,%r12d + + movl %edx,%edi + addl (%rbp),%r12d + xorl %edx,%r14d + + xorl %r8d,%edi + rorl $6,%r13d + movl %r8d,%ecx + + andl %edi,%r15d + rorl $2,%r14d + addl %r13d,%r12d + + xorl %r15d,%ecx + addl %r12d,%r10d + addl %r12d,%ecx + + leaq 4(%rbp),%rbp + addl %r14d,%ecx + movl 24(%rsi),%r12d + movl %r10d,%r13d + movl %ecx,%r14d + bswapl %r12d + rorl $14,%r13d + movl %r11d,%r15d + + xorl %r10d,%r13d + rorl $9,%r14d + xorl %eax,%r15d + + movl %r12d,24(%rsp) + xorl %ecx,%r14d + andl %r10d,%r15d + + rorl $5,%r13d + addl %ebx,%r12d + xorl %eax,%r15d + + rorl $11,%r14d + xorl %r10d,%r13d + addl %r15d,%r12d + + movl %ecx,%r15d + addl (%rbp),%r12d + xorl %ecx,%r14d + + xorl %edx,%r15d + rorl $6,%r13d + movl %edx,%ebx + + andl %r15d,%edi + rorl $2,%r14d + addl %r13d,%r12d + + xorl %edi,%ebx + addl %r12d,%r9d + addl %r12d,%ebx + + leaq 4(%rbp),%rbp + addl %r14d,%ebx + movl 28(%rsi),%r12d + movl %r9d,%r13d + movl %ebx,%r14d + bswapl %r12d + rorl $14,%r13d + movl %r10d,%edi + + xorl %r9d,%r13d + rorl $9,%r14d + xorl %r11d,%edi + + movl %r12d,28(%rsp) + xorl %ebx,%r14d + andl %r9d,%edi + + rorl $5,%r13d + addl %eax,%r12d + xorl %r11d,%edi + + rorl $11,%r14d + xorl %r9d,%r13d + addl %edi,%r12d + + movl %ebx,%edi + addl (%rbp),%r12d + xorl %ebx,%r14d + + xorl %ecx,%edi + rorl $6,%r13d + movl %ecx,%eax + + andl %edi,%r15d + rorl $2,%r14d + addl %r13d,%r12d + + xorl %r15d,%eax + addl %r12d,%r8d + addl %r12d,%eax + + leaq 20(%rbp),%rbp + addl %r14d,%eax + movl 32(%rsi),%r12d + movl %r8d,%r13d + movl %eax,%r14d + bswapl %r12d + rorl $14,%r13d + movl %r9d,%r15d + + xorl %r8d,%r13d + rorl $9,%r14d + xorl %r10d,%r15d + + movl %r12d,32(%rsp) + xorl %eax,%r14d + andl %r8d,%r15d + + rorl $5,%r13d + addl %r11d,%r12d + xorl %r10d,%r15d + + rorl $11,%r14d + xorl %r8d,%r13d + addl %r15d,%r12d + + movl %eax,%r15d + addl (%rbp),%r12d + xorl %eax,%r14d + + xorl %ebx,%r15d + rorl $6,%r13d + movl %ebx,%r11d + + andl %r15d,%edi + rorl $2,%r14d + addl %r13d,%r12d + + xorl %edi,%r11d + addl %r12d,%edx + addl %r12d,%r11d + + leaq 4(%rbp),%rbp + addl %r14d,%r11d + movl 36(%rsi),%r12d + movl %edx,%r13d + movl %r11d,%r14d + bswapl %r12d + rorl $14,%r13d + movl %r8d,%edi + + xorl %edx,%r13d + rorl $9,%r14d + xorl %r9d,%edi + + movl %r12d,36(%rsp) + xorl %r11d,%r14d + andl %edx,%edi + + rorl $5,%r13d + addl %r10d,%r12d + xorl %r9d,%edi + + rorl $11,%r14d + xorl %edx,%r13d + addl %edi,%r12d + + movl %r11d,%edi + addl (%rbp),%r12d + xorl %r11d,%r14d + + xorl %eax,%edi + rorl $6,%r13d + movl %eax,%r10d + + andl %edi,%r15d + rorl $2,%r14d + addl %r13d,%r12d + + xorl %r15d,%r10d + addl %r12d,%ecx + addl %r12d,%r10d + + leaq 4(%rbp),%rbp + addl %r14d,%r10d + movl 40(%rsi),%r12d + movl %ecx,%r13d + movl %r10d,%r14d + bswapl %r12d + rorl $14,%r13d + movl %edx,%r15d + + xorl %ecx,%r13d + rorl $9,%r14d + xorl %r8d,%r15d + + movl %r12d,40(%rsp) + xorl %r10d,%r14d + andl %ecx,%r15d + + rorl $5,%r13d + addl %r9d,%r12d + xorl %r8d,%r15d + + rorl $11,%r14d + xorl %ecx,%r13d + addl %r15d,%r12d + + movl %r10d,%r15d + addl (%rbp),%r12d + xorl %r10d,%r14d + + xorl %r11d,%r15d + rorl $6,%r13d + movl %r11d,%r9d + + andl %r15d,%edi + rorl $2,%r14d + addl %r13d,%r12d + + xorl %edi,%r9d + addl %r12d,%ebx + addl %r12d,%r9d + + leaq 4(%rbp),%rbp + addl %r14d,%r9d + movl 44(%rsi),%r12d + movl %ebx,%r13d + movl %r9d,%r14d + bswapl %r12d + rorl $14,%r13d + movl %ecx,%edi + + xorl %ebx,%r13d + rorl $9,%r14d + xorl %edx,%edi + + movl %r12d,44(%rsp) + xorl %r9d,%r14d + andl %ebx,%edi + + rorl $5,%r13d + addl %r8d,%r12d + xorl %edx,%edi + + rorl $11,%r14d + xorl %ebx,%r13d + addl %edi,%r12d + + movl %r9d,%edi + addl (%rbp),%r12d + xorl %r9d,%r14d + + xorl %r10d,%edi + rorl $6,%r13d + movl %r10d,%r8d + + andl %edi,%r15d + rorl $2,%r14d + addl %r13d,%r12d + + xorl %r15d,%r8d + addl %r12d,%eax + addl %r12d,%r8d + + leaq 20(%rbp),%rbp + addl %r14d,%r8d + movl 48(%rsi),%r12d + movl %eax,%r13d + movl %r8d,%r14d + bswapl %r12d + rorl $14,%r13d + movl %ebx,%r15d + + xorl %eax,%r13d + rorl $9,%r14d + xorl %ecx,%r15d + + movl %r12d,48(%rsp) + xorl %r8d,%r14d + andl %eax,%r15d + + rorl $5,%r13d + addl %edx,%r12d + xorl %ecx,%r15d + + rorl $11,%r14d + xorl %eax,%r13d + addl %r15d,%r12d + + movl %r8d,%r15d + addl (%rbp),%r12d + xorl %r8d,%r14d + + xorl %r9d,%r15d + rorl $6,%r13d + movl %r9d,%edx + + andl %r15d,%edi + rorl $2,%r14d + addl %r13d,%r12d + + xorl %edi,%edx + addl %r12d,%r11d + addl %r12d,%edx + + leaq 4(%rbp),%rbp + addl %r14d,%edx + movl 52(%rsi),%r12d + movl %r11d,%r13d + movl %edx,%r14d + bswapl %r12d + rorl $14,%r13d + movl %eax,%edi + + xorl %r11d,%r13d + rorl $9,%r14d + xorl %ebx,%edi + + movl %r12d,52(%rsp) + xorl %edx,%r14d + andl %r11d,%edi + + rorl $5,%r13d + addl %ecx,%r12d + xorl %ebx,%edi + + rorl $11,%r14d + xorl %r11d,%r13d + addl %edi,%r12d + + movl %edx,%edi + addl (%rbp),%r12d + xorl %edx,%r14d + + xorl %r8d,%edi + rorl $6,%r13d + movl %r8d,%ecx + + andl %edi,%r15d + rorl $2,%r14d + addl %r13d,%r12d + + xorl %r15d,%ecx + addl %r12d,%r10d + addl %r12d,%ecx + + leaq 4(%rbp),%rbp + addl %r14d,%ecx + movl 56(%rsi),%r12d + movl %r10d,%r13d + movl %ecx,%r14d + bswapl %r12d + rorl $14,%r13d + movl %r11d,%r15d + + xorl %r10d,%r13d + rorl $9,%r14d + xorl %eax,%r15d + + movl %r12d,56(%rsp) + xorl %ecx,%r14d + andl %r10d,%r15d + + rorl $5,%r13d + addl %ebx,%r12d + xorl %eax,%r15d + + rorl $11,%r14d + xorl %r10d,%r13d + addl %r15d,%r12d + + movl %ecx,%r15d + addl (%rbp),%r12d + xorl %ecx,%r14d + + xorl %edx,%r15d + rorl $6,%r13d + movl %edx,%ebx + + andl %r15d,%edi + rorl $2,%r14d + addl %r13d,%r12d + + xorl %edi,%ebx + addl %r12d,%r9d + addl %r12d,%ebx + + leaq 4(%rbp),%rbp + addl %r14d,%ebx + movl 60(%rsi),%r12d + movl %r9d,%r13d + movl %ebx,%r14d + bswapl %r12d + rorl $14,%r13d + movl %r10d,%edi + + xorl %r9d,%r13d + rorl $9,%r14d + xorl %r11d,%edi + + movl %r12d,60(%rsp) + xorl %ebx,%r14d + andl %r9d,%edi + + rorl $5,%r13d + addl %eax,%r12d + xorl %r11d,%edi + + rorl $11,%r14d + xorl %r9d,%r13d + addl %edi,%r12d + + movl %ebx,%edi + addl (%rbp),%r12d + xorl %ebx,%r14d + + xorl %ecx,%edi + rorl $6,%r13d + movl %ecx,%eax + + andl %edi,%r15d + rorl $2,%r14d + addl %r13d,%r12d + + xorl %r15d,%eax + addl %r12d,%r8d + addl %r12d,%eax + + leaq 20(%rbp),%rbp + jmp L$rounds_16_xx +.p2align 4 +L$rounds_16_xx: + movl 4(%rsp),%r13d + movl 56(%rsp),%r15d + + movl %r13d,%r12d + rorl $11,%r13d + addl %r14d,%eax + movl %r15d,%r14d + rorl $2,%r15d + + xorl %r12d,%r13d + shrl $3,%r12d + rorl $7,%r13d + xorl %r14d,%r15d + shrl $10,%r14d + + rorl $17,%r15d + xorl %r13d,%r12d + xorl %r14d,%r15d + addl 36(%rsp),%r12d + + addl 0(%rsp),%r12d + movl %r8d,%r13d + addl %r15d,%r12d + movl %eax,%r14d + rorl $14,%r13d + movl %r9d,%r15d + + xorl %r8d,%r13d + rorl $9,%r14d + xorl %r10d,%r15d + + movl %r12d,0(%rsp) + xorl %eax,%r14d + andl %r8d,%r15d + + rorl $5,%r13d + addl %r11d,%r12d + xorl %r10d,%r15d + + rorl $11,%r14d + xorl %r8d,%r13d + addl %r15d,%r12d + + movl %eax,%r15d + addl (%rbp),%r12d + xorl %eax,%r14d + + xorl %ebx,%r15d + rorl $6,%r13d + movl %ebx,%r11d + + andl %r15d,%edi + rorl $2,%r14d + addl %r13d,%r12d + + xorl %edi,%r11d + addl %r12d,%edx + addl %r12d,%r11d + + leaq 4(%rbp),%rbp + movl 8(%rsp),%r13d + movl 60(%rsp),%edi + + movl %r13d,%r12d + rorl $11,%r13d + addl %r14d,%r11d + movl %edi,%r14d + rorl $2,%edi + + xorl %r12d,%r13d + shrl $3,%r12d + rorl $7,%r13d + xorl %r14d,%edi + shrl $10,%r14d + + rorl $17,%edi + xorl %r13d,%r12d + xorl %r14d,%edi + addl 40(%rsp),%r12d + + addl 4(%rsp),%r12d + movl %edx,%r13d + addl %edi,%r12d + movl %r11d,%r14d + rorl $14,%r13d + movl %r8d,%edi + + xorl %edx,%r13d + rorl $9,%r14d + xorl %r9d,%edi + + movl %r12d,4(%rsp) + xorl %r11d,%r14d + andl %edx,%edi + + rorl $5,%r13d + addl %r10d,%r12d + xorl %r9d,%edi + + rorl $11,%r14d + xorl %edx,%r13d + addl %edi,%r12d + + movl %r11d,%edi + addl (%rbp),%r12d + xorl %r11d,%r14d + + xorl %eax,%edi + rorl $6,%r13d + movl %eax,%r10d + + andl %edi,%r15d + rorl $2,%r14d + addl %r13d,%r12d + + xorl %r15d,%r10d + addl %r12d,%ecx + addl %r12d,%r10d + + leaq 4(%rbp),%rbp + movl 12(%rsp),%r13d + movl 0(%rsp),%r15d + + movl %r13d,%r12d + rorl $11,%r13d + addl %r14d,%r10d + movl %r15d,%r14d + rorl $2,%r15d + + xorl %r12d,%r13d + shrl $3,%r12d + rorl $7,%r13d + xorl %r14d,%r15d + shrl $10,%r14d + + rorl $17,%r15d + xorl %r13d,%r12d + xorl %r14d,%r15d + addl 44(%rsp),%r12d + + addl 8(%rsp),%r12d + movl %ecx,%r13d + addl %r15d,%r12d + movl %r10d,%r14d + rorl $14,%r13d + movl %edx,%r15d + + xorl %ecx,%r13d + rorl $9,%r14d + xorl %r8d,%r15d + + movl %r12d,8(%rsp) + xorl %r10d,%r14d + andl %ecx,%r15d + + rorl $5,%r13d + addl %r9d,%r12d + xorl %r8d,%r15d + + rorl $11,%r14d + xorl %ecx,%r13d + addl %r15d,%r12d + + movl %r10d,%r15d + addl (%rbp),%r12d + xorl %r10d,%r14d + + xorl %r11d,%r15d + rorl $6,%r13d + movl %r11d,%r9d + + andl %r15d,%edi + rorl $2,%r14d + addl %r13d,%r12d + + xorl %edi,%r9d + addl %r12d,%ebx + addl %r12d,%r9d + + leaq 4(%rbp),%rbp + movl 16(%rsp),%r13d + movl 4(%rsp),%edi + + movl %r13d,%r12d + rorl $11,%r13d + addl %r14d,%r9d + movl %edi,%r14d + rorl $2,%edi + + xorl %r12d,%r13d + shrl $3,%r12d + rorl $7,%r13d + xorl %r14d,%edi + shrl $10,%r14d + + rorl $17,%edi + xorl %r13d,%r12d + xorl %r14d,%edi + addl 48(%rsp),%r12d + + addl 12(%rsp),%r12d + movl %ebx,%r13d + addl %edi,%r12d + movl %r9d,%r14d + rorl $14,%r13d + movl %ecx,%edi + + xorl %ebx,%r13d + rorl $9,%r14d + xorl %edx,%edi + + movl %r12d,12(%rsp) + xorl %r9d,%r14d + andl %ebx,%edi + + rorl $5,%r13d + addl %r8d,%r12d + xorl %edx,%edi + + rorl $11,%r14d + xorl %ebx,%r13d + addl %edi,%r12d + + movl %r9d,%edi + addl (%rbp),%r12d + xorl %r9d,%r14d + + xorl %r10d,%edi + rorl $6,%r13d + movl %r10d,%r8d + + andl %edi,%r15d + rorl $2,%r14d + addl %r13d,%r12d + + xorl %r15d,%r8d + addl %r12d,%eax + addl %r12d,%r8d + + leaq 20(%rbp),%rbp + movl 20(%rsp),%r13d + movl 8(%rsp),%r15d + + movl %r13d,%r12d + rorl $11,%r13d + addl %r14d,%r8d + movl %r15d,%r14d + rorl $2,%r15d + + xorl %r12d,%r13d + shrl $3,%r12d + rorl $7,%r13d + xorl %r14d,%r15d + shrl $10,%r14d + + rorl $17,%r15d + xorl %r13d,%r12d + xorl %r14d,%r15d + addl 52(%rsp),%r12d + + addl 16(%rsp),%r12d + movl %eax,%r13d + addl %r15d,%r12d + movl %r8d,%r14d + rorl $14,%r13d + movl %ebx,%r15d + + xorl %eax,%r13d + rorl $9,%r14d + xorl %ecx,%r15d + + movl %r12d,16(%rsp) + xorl %r8d,%r14d + andl %eax,%r15d + + rorl $5,%r13d + addl %edx,%r12d + xorl %ecx,%r15d + + rorl $11,%r14d + xorl %eax,%r13d + addl %r15d,%r12d + + movl %r8d,%r15d + addl (%rbp),%r12d + xorl %r8d,%r14d + + xorl %r9d,%r15d + rorl $6,%r13d + movl %r9d,%edx + + andl %r15d,%edi + rorl $2,%r14d + addl %r13d,%r12d + + xorl %edi,%edx + addl %r12d,%r11d + addl %r12d,%edx + + leaq 4(%rbp),%rbp + movl 24(%rsp),%r13d + movl 12(%rsp),%edi + + movl %r13d,%r12d + rorl $11,%r13d + addl %r14d,%edx + movl %edi,%r14d + rorl $2,%edi + + xorl %r12d,%r13d + shrl $3,%r12d + rorl $7,%r13d + xorl %r14d,%edi + shrl $10,%r14d + + rorl $17,%edi + xorl %r13d,%r12d + xorl %r14d,%edi + addl 56(%rsp),%r12d + + addl 20(%rsp),%r12d + movl %r11d,%r13d + addl %edi,%r12d + movl %edx,%r14d + rorl $14,%r13d + movl %eax,%edi + + xorl %r11d,%r13d + rorl $9,%r14d + xorl %ebx,%edi + + movl %r12d,20(%rsp) + xorl %edx,%r14d + andl %r11d,%edi + + rorl $5,%r13d + addl %ecx,%r12d + xorl %ebx,%edi + + rorl $11,%r14d + xorl %r11d,%r13d + addl %edi,%r12d + + movl %edx,%edi + addl (%rbp),%r12d + xorl %edx,%r14d + + xorl %r8d,%edi + rorl $6,%r13d + movl %r8d,%ecx + + andl %edi,%r15d + rorl $2,%r14d + addl %r13d,%r12d + + xorl %r15d,%ecx + addl %r12d,%r10d + addl %r12d,%ecx + + leaq 4(%rbp),%rbp + movl 28(%rsp),%r13d + movl 16(%rsp),%r15d + + movl %r13d,%r12d + rorl $11,%r13d + addl %r14d,%ecx + movl %r15d,%r14d + rorl $2,%r15d + + xorl %r12d,%r13d + shrl $3,%r12d + rorl $7,%r13d + xorl %r14d,%r15d + shrl $10,%r14d + + rorl $17,%r15d + xorl %r13d,%r12d + xorl %r14d,%r15d + addl 60(%rsp),%r12d + + addl 24(%rsp),%r12d + movl %r10d,%r13d + addl %r15d,%r12d + movl %ecx,%r14d + rorl $14,%r13d + movl %r11d,%r15d + + xorl %r10d,%r13d + rorl $9,%r14d + xorl %eax,%r15d + + movl %r12d,24(%rsp) + xorl %ecx,%r14d + andl %r10d,%r15d + + rorl $5,%r13d + addl %ebx,%r12d + xorl %eax,%r15d + + rorl $11,%r14d + xorl %r10d,%r13d + addl %r15d,%r12d + + movl %ecx,%r15d + addl (%rbp),%r12d + xorl %ecx,%r14d + + xorl %edx,%r15d + rorl $6,%r13d + movl %edx,%ebx + + andl %r15d,%edi + rorl $2,%r14d + addl %r13d,%r12d + + xorl %edi,%ebx + addl %r12d,%r9d + addl %r12d,%ebx + + leaq 4(%rbp),%rbp + movl 32(%rsp),%r13d + movl 20(%rsp),%edi + + movl %r13d,%r12d + rorl $11,%r13d + addl %r14d,%ebx + movl %edi,%r14d + rorl $2,%edi + + xorl %r12d,%r13d + shrl $3,%r12d + rorl $7,%r13d + xorl %r14d,%edi + shrl $10,%r14d + + rorl $17,%edi + xorl %r13d,%r12d + xorl %r14d,%edi + addl 0(%rsp),%r12d + + addl 28(%rsp),%r12d + movl %r9d,%r13d + addl %edi,%r12d + movl %ebx,%r14d + rorl $14,%r13d + movl %r10d,%edi + + xorl %r9d,%r13d + rorl $9,%r14d + xorl %r11d,%edi + + movl %r12d,28(%rsp) + xorl %ebx,%r14d + andl %r9d,%edi + + rorl $5,%r13d + addl %eax,%r12d + xorl %r11d,%edi + + rorl $11,%r14d + xorl %r9d,%r13d + addl %edi,%r12d + + movl %ebx,%edi + addl (%rbp),%r12d + xorl %ebx,%r14d + + xorl %ecx,%edi + rorl $6,%r13d + movl %ecx,%eax + + andl %edi,%r15d + rorl $2,%r14d + addl %r13d,%r12d + + xorl %r15d,%eax + addl %r12d,%r8d + addl %r12d,%eax + + leaq 20(%rbp),%rbp + movl 36(%rsp),%r13d + movl 24(%rsp),%r15d + + movl %r13d,%r12d + rorl $11,%r13d + addl %r14d,%eax + movl %r15d,%r14d + rorl $2,%r15d + + xorl %r12d,%r13d + shrl $3,%r12d + rorl $7,%r13d + xorl %r14d,%r15d + shrl $10,%r14d + + rorl $17,%r15d + xorl %r13d,%r12d + xorl %r14d,%r15d + addl 4(%rsp),%r12d + + addl 32(%rsp),%r12d + movl %r8d,%r13d + addl %r15d,%r12d + movl %eax,%r14d + rorl $14,%r13d + movl %r9d,%r15d + + xorl %r8d,%r13d + rorl $9,%r14d + xorl %r10d,%r15d + + movl %r12d,32(%rsp) + xorl %eax,%r14d + andl %r8d,%r15d + + rorl $5,%r13d + addl %r11d,%r12d + xorl %r10d,%r15d + + rorl $11,%r14d + xorl %r8d,%r13d + addl %r15d,%r12d + + movl %eax,%r15d + addl (%rbp),%r12d + xorl %eax,%r14d + + xorl %ebx,%r15d + rorl $6,%r13d + movl %ebx,%r11d + + andl %r15d,%edi + rorl $2,%r14d + addl %r13d,%r12d + + xorl %edi,%r11d + addl %r12d,%edx + addl %r12d,%r11d + + leaq 4(%rbp),%rbp + movl 40(%rsp),%r13d + movl 28(%rsp),%edi + + movl %r13d,%r12d + rorl $11,%r13d + addl %r14d,%r11d + movl %edi,%r14d + rorl $2,%edi + + xorl %r12d,%r13d + shrl $3,%r12d + rorl $7,%r13d + xorl %r14d,%edi + shrl $10,%r14d + + rorl $17,%edi + xorl %r13d,%r12d + xorl %r14d,%edi + addl 8(%rsp),%r12d + + addl 36(%rsp),%r12d + movl %edx,%r13d + addl %edi,%r12d + movl %r11d,%r14d + rorl $14,%r13d + movl %r8d,%edi + + xorl %edx,%r13d + rorl $9,%r14d + xorl %r9d,%edi + + movl %r12d,36(%rsp) + xorl %r11d,%r14d + andl %edx,%edi + + rorl $5,%r13d + addl %r10d,%r12d + xorl %r9d,%edi + + rorl $11,%r14d + xorl %edx,%r13d + addl %edi,%r12d + + movl %r11d,%edi + addl (%rbp),%r12d + xorl %r11d,%r14d + + xorl %eax,%edi + rorl $6,%r13d + movl %eax,%r10d + + andl %edi,%r15d + rorl $2,%r14d + addl %r13d,%r12d + + xorl %r15d,%r10d + addl %r12d,%ecx + addl %r12d,%r10d + + leaq 4(%rbp),%rbp + movl 44(%rsp),%r13d + movl 32(%rsp),%r15d + + movl %r13d,%r12d + rorl $11,%r13d + addl %r14d,%r10d + movl %r15d,%r14d + rorl $2,%r15d + + xorl %r12d,%r13d + shrl $3,%r12d + rorl $7,%r13d + xorl %r14d,%r15d + shrl $10,%r14d + + rorl $17,%r15d + xorl %r13d,%r12d + xorl %r14d,%r15d + addl 12(%rsp),%r12d + + addl 40(%rsp),%r12d + movl %ecx,%r13d + addl %r15d,%r12d + movl %r10d,%r14d + rorl $14,%r13d + movl %edx,%r15d + + xorl %ecx,%r13d + rorl $9,%r14d + xorl %r8d,%r15d + + movl %r12d,40(%rsp) + xorl %r10d,%r14d + andl %ecx,%r15d + + rorl $5,%r13d + addl %r9d,%r12d + xorl %r8d,%r15d + + rorl $11,%r14d + xorl %ecx,%r13d + addl %r15d,%r12d + + movl %r10d,%r15d + addl (%rbp),%r12d + xorl %r10d,%r14d + + xorl %r11d,%r15d + rorl $6,%r13d + movl %r11d,%r9d + + andl %r15d,%edi + rorl $2,%r14d + addl %r13d,%r12d + + xorl %edi,%r9d + addl %r12d,%ebx + addl %r12d,%r9d + + leaq 4(%rbp),%rbp + movl 48(%rsp),%r13d + movl 36(%rsp),%edi + + movl %r13d,%r12d + rorl $11,%r13d + addl %r14d,%r9d + movl %edi,%r14d + rorl $2,%edi + + xorl %r12d,%r13d + shrl $3,%r12d + rorl $7,%r13d + xorl %r14d,%edi + shrl $10,%r14d + + rorl $17,%edi + xorl %r13d,%r12d + xorl %r14d,%edi + addl 16(%rsp),%r12d + + addl 44(%rsp),%r12d + movl %ebx,%r13d + addl %edi,%r12d + movl %r9d,%r14d + rorl $14,%r13d + movl %ecx,%edi + + xorl %ebx,%r13d + rorl $9,%r14d + xorl %edx,%edi + + movl %r12d,44(%rsp) + xorl %r9d,%r14d + andl %ebx,%edi + + rorl $5,%r13d + addl %r8d,%r12d + xorl %edx,%edi + + rorl $11,%r14d + xorl %ebx,%r13d + addl %edi,%r12d + + movl %r9d,%edi + addl (%rbp),%r12d + xorl %r9d,%r14d + + xorl %r10d,%edi + rorl $6,%r13d + movl %r10d,%r8d + + andl %edi,%r15d + rorl $2,%r14d + addl %r13d,%r12d + + xorl %r15d,%r8d + addl %r12d,%eax + addl %r12d,%r8d + + leaq 20(%rbp),%rbp + movl 52(%rsp),%r13d + movl 40(%rsp),%r15d + + movl %r13d,%r12d + rorl $11,%r13d + addl %r14d,%r8d + movl %r15d,%r14d + rorl $2,%r15d + + xorl %r12d,%r13d + shrl $3,%r12d + rorl $7,%r13d + xorl %r14d,%r15d + shrl $10,%r14d + + rorl $17,%r15d + xorl %r13d,%r12d + xorl %r14d,%r15d + addl 20(%rsp),%r12d + + addl 48(%rsp),%r12d + movl %eax,%r13d + addl %r15d,%r12d + movl %r8d,%r14d + rorl $14,%r13d + movl %ebx,%r15d + + xorl %eax,%r13d + rorl $9,%r14d + xorl %ecx,%r15d + + movl %r12d,48(%rsp) + xorl %r8d,%r14d + andl %eax,%r15d + + rorl $5,%r13d + addl %edx,%r12d + xorl %ecx,%r15d + + rorl $11,%r14d + xorl %eax,%r13d + addl %r15d,%r12d + + movl %r8d,%r15d + addl (%rbp),%r12d + xorl %r8d,%r14d + + xorl %r9d,%r15d + rorl $6,%r13d + movl %r9d,%edx + + andl %r15d,%edi + rorl $2,%r14d + addl %r13d,%r12d + + xorl %edi,%edx + addl %r12d,%r11d + addl %r12d,%edx + + leaq 4(%rbp),%rbp + movl 56(%rsp),%r13d + movl 44(%rsp),%edi + + movl %r13d,%r12d + rorl $11,%r13d + addl %r14d,%edx + movl %edi,%r14d + rorl $2,%edi + + xorl %r12d,%r13d + shrl $3,%r12d + rorl $7,%r13d + xorl %r14d,%edi + shrl $10,%r14d + + rorl $17,%edi + xorl %r13d,%r12d + xorl %r14d,%edi + addl 24(%rsp),%r12d + + addl 52(%rsp),%r12d + movl %r11d,%r13d + addl %edi,%r12d + movl %edx,%r14d + rorl $14,%r13d + movl %eax,%edi + + xorl %r11d,%r13d + rorl $9,%r14d + xorl %ebx,%edi + + movl %r12d,52(%rsp) + xorl %edx,%r14d + andl %r11d,%edi + + rorl $5,%r13d + addl %ecx,%r12d + xorl %ebx,%edi + + rorl $11,%r14d + xorl %r11d,%r13d + addl %edi,%r12d + + movl %edx,%edi + addl (%rbp),%r12d + xorl %edx,%r14d + + xorl %r8d,%edi + rorl $6,%r13d + movl %r8d,%ecx + + andl %edi,%r15d + rorl $2,%r14d + addl %r13d,%r12d + + xorl %r15d,%ecx + addl %r12d,%r10d + addl %r12d,%ecx + + leaq 4(%rbp),%rbp + movl 60(%rsp),%r13d + movl 48(%rsp),%r15d + + movl %r13d,%r12d + rorl $11,%r13d + addl %r14d,%ecx + movl %r15d,%r14d + rorl $2,%r15d + + xorl %r12d,%r13d + shrl $3,%r12d + rorl $7,%r13d + xorl %r14d,%r15d + shrl $10,%r14d + + rorl $17,%r15d + xorl %r13d,%r12d + xorl %r14d,%r15d + addl 28(%rsp),%r12d + + addl 56(%rsp),%r12d + movl %r10d,%r13d + addl %r15d,%r12d + movl %ecx,%r14d + rorl $14,%r13d + movl %r11d,%r15d + + xorl %r10d,%r13d + rorl $9,%r14d + xorl %eax,%r15d + + movl %r12d,56(%rsp) + xorl %ecx,%r14d + andl %r10d,%r15d + + rorl $5,%r13d + addl %ebx,%r12d + xorl %eax,%r15d + + rorl $11,%r14d + xorl %r10d,%r13d + addl %r15d,%r12d + + movl %ecx,%r15d + addl (%rbp),%r12d + xorl %ecx,%r14d + + xorl %edx,%r15d + rorl $6,%r13d + movl %edx,%ebx + + andl %r15d,%edi + rorl $2,%r14d + addl %r13d,%r12d + + xorl %edi,%ebx + addl %r12d,%r9d + addl %r12d,%ebx + + leaq 4(%rbp),%rbp + movl 0(%rsp),%r13d + movl 52(%rsp),%edi + + movl %r13d,%r12d + rorl $11,%r13d + addl %r14d,%ebx + movl %edi,%r14d + rorl $2,%edi + + xorl %r12d,%r13d + shrl $3,%r12d + rorl $7,%r13d + xorl %r14d,%edi + shrl $10,%r14d + + rorl $17,%edi + xorl %r13d,%r12d + xorl %r14d,%edi + addl 32(%rsp),%r12d + + addl 60(%rsp),%r12d + movl %r9d,%r13d + addl %edi,%r12d + movl %ebx,%r14d + rorl $14,%r13d + movl %r10d,%edi + + xorl %r9d,%r13d + rorl $9,%r14d + xorl %r11d,%edi + + movl %r12d,60(%rsp) + xorl %ebx,%r14d + andl %r9d,%edi + + rorl $5,%r13d + addl %eax,%r12d + xorl %r11d,%edi + + rorl $11,%r14d + xorl %r9d,%r13d + addl %edi,%r12d + + movl %ebx,%edi + addl (%rbp),%r12d + xorl %ebx,%r14d + + xorl %ecx,%edi + rorl $6,%r13d + movl %ecx,%eax + + andl %edi,%r15d + rorl $2,%r14d + addl %r13d,%r12d + + xorl %r15d,%eax + addl %r12d,%r8d + addl %r12d,%eax + + leaq 20(%rbp),%rbp + cmpb $0,3(%rbp) + jnz L$rounds_16_xx + + movq 64+0(%rsp),%rdi + addl %r14d,%eax + leaq 64(%rsi),%rsi + + addl 0(%rdi),%eax + addl 4(%rdi),%ebx + addl 8(%rdi),%ecx + addl 12(%rdi),%edx + addl 16(%rdi),%r8d + addl 20(%rdi),%r9d + addl 24(%rdi),%r10d + addl 28(%rdi),%r11d + + cmpq 64+16(%rsp),%rsi + + movl %eax,0(%rdi) + movl %ebx,4(%rdi) + movl %ecx,8(%rdi) + movl %edx,12(%rdi) + movl %r8d,16(%rdi) + movl %r9d,20(%rdi) + movl %r10d,24(%rdi) + movl %r11d,28(%rdi) + jb L$loop + + movq 88(%rsp),%rsi + + movq -48(%rsi),%r15 + + movq -40(%rsi),%r14 + + movq -32(%rsi),%r13 + + movq -24(%rsi),%r12 + + movq -16(%rsi),%rbp + + movq -8(%rsi),%rbx + + leaq (%rsi),%rsp + +L$epilogue: + .byte 0xf3,0xc3 + + +.p2align 6 + +K256: +.long 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5 +.long 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5 +.long 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5 +.long 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5 +.long 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3 +.long 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3 +.long 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174 +.long 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174 +.long 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc +.long 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc +.long 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da +.long 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da +.long 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7 +.long 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7 +.long 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967 +.long 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967 +.long 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13 +.long 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13 +.long 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85 +.long 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85 +.long 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3 +.long 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3 +.long 0xd192e819,0xd6990624,0xf40e3585,0x106aa070 +.long 0xd192e819,0xd6990624,0xf40e3585,0x106aa070 +.long 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5 +.long 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5 +.long 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3 +.long 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3 +.long 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208 +.long 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208 +.long 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 +.long 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 + +.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f +.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f +.long 0x03020100,0x0b0a0908,0xffffffff,0xffffffff +.long 0x03020100,0x0b0a0908,0xffffffff,0xffffffff +.long 0xffffffff,0xffffffff,0x03020100,0x0b0a0908 +.long 0xffffffff,0xffffffff,0x03020100,0x0b0a0908 +.byte 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 + +.p2align 6 +sha256_block_data_order_shaext: +_shaext_shortcut: + + leaq K256+128(%rip),%rcx + movdqu (%rdi),%xmm1 + movdqu 16(%rdi),%xmm2 + movdqa 512-128(%rcx),%xmm7 + + pshufd $0x1b,%xmm1,%xmm0 + pshufd $0xb1,%xmm1,%xmm1 + pshufd $0x1b,%xmm2,%xmm2 + movdqa %xmm7,%xmm8 +.byte 102,15,58,15,202,8 + punpcklqdq %xmm0,%xmm2 + jmp L$oop_shaext + +.p2align 4 +L$oop_shaext: + movdqu (%rsi),%xmm3 + movdqu 16(%rsi),%xmm4 + movdqu 32(%rsi),%xmm5 +.byte 102,15,56,0,223 + movdqu 48(%rsi),%xmm6 + + movdqa 0-128(%rcx),%xmm0 + paddd %xmm3,%xmm0 +.byte 102,15,56,0,231 + movdqa %xmm2,%xmm10 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + nop + movdqa %xmm1,%xmm9 +.byte 15,56,203,202 + + movdqa 32-128(%rcx),%xmm0 + paddd %xmm4,%xmm0 +.byte 102,15,56,0,239 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + leaq 64(%rsi),%rsi +.byte 15,56,204,220 +.byte 15,56,203,202 + + movdqa 64-128(%rcx),%xmm0 + paddd %xmm5,%xmm0 +.byte 102,15,56,0,247 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm6,%xmm7 +.byte 102,15,58,15,253,4 + nop + paddd %xmm7,%xmm3 +.byte 15,56,204,229 +.byte 15,56,203,202 + + movdqa 96-128(%rcx),%xmm0 + paddd %xmm6,%xmm0 +.byte 15,56,205,222 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm3,%xmm7 +.byte 102,15,58,15,254,4 + nop + paddd %xmm7,%xmm4 +.byte 15,56,204,238 +.byte 15,56,203,202 + movdqa 128-128(%rcx),%xmm0 + paddd %xmm3,%xmm0 +.byte 15,56,205,227 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm4,%xmm7 +.byte 102,15,58,15,251,4 + nop + paddd %xmm7,%xmm5 +.byte 15,56,204,243 +.byte 15,56,203,202 + movdqa 160-128(%rcx),%xmm0 + paddd %xmm4,%xmm0 +.byte 15,56,205,236 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm5,%xmm7 +.byte 102,15,58,15,252,4 + nop + paddd %xmm7,%xmm6 +.byte 15,56,204,220 +.byte 15,56,203,202 + movdqa 192-128(%rcx),%xmm0 + paddd %xmm5,%xmm0 +.byte 15,56,205,245 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm6,%xmm7 +.byte 102,15,58,15,253,4 + nop + paddd %xmm7,%xmm3 +.byte 15,56,204,229 +.byte 15,56,203,202 + movdqa 224-128(%rcx),%xmm0 + paddd %xmm6,%xmm0 +.byte 15,56,205,222 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm3,%xmm7 +.byte 102,15,58,15,254,4 + nop + paddd %xmm7,%xmm4 +.byte 15,56,204,238 +.byte 15,56,203,202 + movdqa 256-128(%rcx),%xmm0 + paddd %xmm3,%xmm0 +.byte 15,56,205,227 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm4,%xmm7 +.byte 102,15,58,15,251,4 + nop + paddd %xmm7,%xmm5 +.byte 15,56,204,243 +.byte 15,56,203,202 + movdqa 288-128(%rcx),%xmm0 + paddd %xmm4,%xmm0 +.byte 15,56,205,236 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm5,%xmm7 +.byte 102,15,58,15,252,4 + nop + paddd %xmm7,%xmm6 +.byte 15,56,204,220 +.byte 15,56,203,202 + movdqa 320-128(%rcx),%xmm0 + paddd %xmm5,%xmm0 +.byte 15,56,205,245 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm6,%xmm7 +.byte 102,15,58,15,253,4 + nop + paddd %xmm7,%xmm3 +.byte 15,56,204,229 +.byte 15,56,203,202 + movdqa 352-128(%rcx),%xmm0 + paddd %xmm6,%xmm0 +.byte 15,56,205,222 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm3,%xmm7 +.byte 102,15,58,15,254,4 + nop + paddd %xmm7,%xmm4 +.byte 15,56,204,238 +.byte 15,56,203,202 + movdqa 384-128(%rcx),%xmm0 + paddd %xmm3,%xmm0 +.byte 15,56,205,227 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm4,%xmm7 +.byte 102,15,58,15,251,4 + nop + paddd %xmm7,%xmm5 +.byte 15,56,204,243 +.byte 15,56,203,202 + movdqa 416-128(%rcx),%xmm0 + paddd %xmm4,%xmm0 +.byte 15,56,205,236 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + movdqa %xmm5,%xmm7 +.byte 102,15,58,15,252,4 +.byte 15,56,203,202 + paddd %xmm7,%xmm6 + + movdqa 448-128(%rcx),%xmm0 + paddd %xmm5,%xmm0 +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 +.byte 15,56,205,245 + movdqa %xmm8,%xmm7 +.byte 15,56,203,202 + + movdqa 480-128(%rcx),%xmm0 + paddd %xmm6,%xmm0 + nop +.byte 15,56,203,209 + pshufd $0x0e,%xmm0,%xmm0 + decq %rdx + nop +.byte 15,56,203,202 + + paddd %xmm10,%xmm2 + paddd %xmm9,%xmm1 + jnz L$oop_shaext + + pshufd $0xb1,%xmm2,%xmm2 + pshufd $0x1b,%xmm1,%xmm7 + pshufd $0xb1,%xmm1,%xmm1 + punpckhqdq %xmm2,%xmm1 +.byte 102,15,58,15,215,8 + + movdqu %xmm1,(%rdi) + movdqu %xmm2,16(%rdi) + .byte 0xf3,0xc3 + + + +.p2align 6 +sha256_block_data_order_ssse3: + +L$ssse3_shortcut: + movq %rsp,%rax + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + shlq $4,%rdx + subq $96,%rsp + leaq (%rsi,%rdx,4),%rdx + andq $-64,%rsp + movq %rdi,64+0(%rsp) + movq %rsi,64+8(%rsp) + movq %rdx,64+16(%rsp) + movq %rax,88(%rsp) + +L$prologue_ssse3: + + movl 0(%rdi),%eax + movl 4(%rdi),%ebx + movl 8(%rdi),%ecx + movl 12(%rdi),%edx + movl 16(%rdi),%r8d + movl 20(%rdi),%r9d + movl 24(%rdi),%r10d + movl 28(%rdi),%r11d + + + jmp L$loop_ssse3 +.p2align 4 +L$loop_ssse3: + movdqa K256+512(%rip),%xmm7 + movdqu 0(%rsi),%xmm0 + movdqu 16(%rsi),%xmm1 + movdqu 32(%rsi),%xmm2 +.byte 102,15,56,0,199 + movdqu 48(%rsi),%xmm3 + leaq K256(%rip),%rbp +.byte 102,15,56,0,207 + movdqa 0(%rbp),%xmm4 + movdqa 32(%rbp),%xmm5 +.byte 102,15,56,0,215 + paddd %xmm0,%xmm4 + movdqa 64(%rbp),%xmm6 +.byte 102,15,56,0,223 + movdqa 96(%rbp),%xmm7 + paddd %xmm1,%xmm5 + paddd %xmm2,%xmm6 + paddd %xmm3,%xmm7 + movdqa %xmm4,0(%rsp) + movl %eax,%r14d + movdqa %xmm5,16(%rsp) + movl %ebx,%edi + movdqa %xmm6,32(%rsp) + xorl %ecx,%edi + movdqa %xmm7,48(%rsp) + movl %r8d,%r13d + jmp L$ssse3_00_47 + +.p2align 4 +L$ssse3_00_47: + subq $-128,%rbp + rorl $14,%r13d + movdqa %xmm1,%xmm4 + movl %r14d,%eax + movl %r9d,%r12d + movdqa %xmm3,%xmm7 + rorl $9,%r14d + xorl %r8d,%r13d + xorl %r10d,%r12d + rorl $5,%r13d + xorl %eax,%r14d +.byte 102,15,58,15,224,4 + andl %r8d,%r12d + xorl %r8d,%r13d +.byte 102,15,58,15,250,4 + addl 0(%rsp),%r11d + movl %eax,%r15d + xorl %r10d,%r12d + rorl $11,%r14d + movdqa %xmm4,%xmm5 + xorl %ebx,%r15d + addl %r12d,%r11d + movdqa %xmm4,%xmm6 + rorl $6,%r13d + andl %r15d,%edi + psrld $3,%xmm4 + xorl %eax,%r14d + addl %r13d,%r11d + xorl %ebx,%edi + paddd %xmm7,%xmm0 + rorl $2,%r14d + addl %r11d,%edx + psrld $7,%xmm6 + addl %edi,%r11d + movl %edx,%r13d + pshufd $250,%xmm3,%xmm7 + addl %r11d,%r14d + rorl $14,%r13d + pslld $14,%xmm5 + movl %r14d,%r11d + movl %r8d,%r12d + pxor %xmm6,%xmm4 + rorl $9,%r14d + xorl %edx,%r13d + xorl %r9d,%r12d + rorl $5,%r13d + psrld $11,%xmm6 + xorl %r11d,%r14d + pxor %xmm5,%xmm4 + andl %edx,%r12d + xorl %edx,%r13d + pslld $11,%xmm5 + addl 4(%rsp),%r10d + movl %r11d,%edi + pxor %xmm6,%xmm4 + xorl %r9d,%r12d + rorl $11,%r14d + movdqa %xmm7,%xmm6 + xorl %eax,%edi + addl %r12d,%r10d + pxor %xmm5,%xmm4 + rorl $6,%r13d + andl %edi,%r15d + xorl %r11d,%r14d + psrld $10,%xmm7 + addl %r13d,%r10d + xorl %eax,%r15d + paddd %xmm4,%xmm0 + rorl $2,%r14d + addl %r10d,%ecx + psrlq $17,%xmm6 + addl %r15d,%r10d + movl %ecx,%r13d + addl %r10d,%r14d + pxor %xmm6,%xmm7 + rorl $14,%r13d + movl %r14d,%r10d + movl %edx,%r12d + rorl $9,%r14d + psrlq $2,%xmm6 + xorl %ecx,%r13d + xorl %r8d,%r12d + pxor %xmm6,%xmm7 + rorl $5,%r13d + xorl %r10d,%r14d + andl %ecx,%r12d + pshufd $128,%xmm7,%xmm7 + xorl %ecx,%r13d + addl 8(%rsp),%r9d + movl %r10d,%r15d + psrldq $8,%xmm7 + xorl %r8d,%r12d + rorl $11,%r14d + xorl %r11d,%r15d + addl %r12d,%r9d + rorl $6,%r13d + paddd %xmm7,%xmm0 + andl %r15d,%edi + xorl %r10d,%r14d + addl %r13d,%r9d + pshufd $80,%xmm0,%xmm7 + xorl %r11d,%edi + rorl $2,%r14d + addl %r9d,%ebx + movdqa %xmm7,%xmm6 + addl %edi,%r9d + movl %ebx,%r13d + psrld $10,%xmm7 + addl %r9d,%r14d + rorl $14,%r13d + psrlq $17,%xmm6 + movl %r14d,%r9d + movl %ecx,%r12d + pxor %xmm6,%xmm7 + rorl $9,%r14d + xorl %ebx,%r13d + xorl %edx,%r12d + rorl $5,%r13d + xorl %r9d,%r14d + psrlq $2,%xmm6 + andl %ebx,%r12d + xorl %ebx,%r13d + addl 12(%rsp),%r8d + pxor %xmm6,%xmm7 + movl %r9d,%edi + xorl %edx,%r12d + rorl $11,%r14d + pshufd $8,%xmm7,%xmm7 + xorl %r10d,%edi + addl %r12d,%r8d + movdqa 0(%rbp),%xmm6 + rorl $6,%r13d + andl %edi,%r15d + pslldq $8,%xmm7 + xorl %r9d,%r14d + addl %r13d,%r8d + xorl %r10d,%r15d + paddd %xmm7,%xmm0 + rorl $2,%r14d + addl %r8d,%eax + addl %r15d,%r8d + paddd %xmm0,%xmm6 + movl %eax,%r13d + addl %r8d,%r14d + movdqa %xmm6,0(%rsp) + rorl $14,%r13d + movdqa %xmm2,%xmm4 + movl %r14d,%r8d + movl %ebx,%r12d + movdqa %xmm0,%xmm7 + rorl $9,%r14d + xorl %eax,%r13d + xorl %ecx,%r12d + rorl $5,%r13d + xorl %r8d,%r14d +.byte 102,15,58,15,225,4 + andl %eax,%r12d + xorl %eax,%r13d +.byte 102,15,58,15,251,4 + addl 16(%rsp),%edx + movl %r8d,%r15d + xorl %ecx,%r12d + rorl $11,%r14d + movdqa %xmm4,%xmm5 + xorl %r9d,%r15d + addl %r12d,%edx + movdqa %xmm4,%xmm6 + rorl $6,%r13d + andl %r15d,%edi + psrld $3,%xmm4 + xorl %r8d,%r14d + addl %r13d,%edx + xorl %r9d,%edi + paddd %xmm7,%xmm1 + rorl $2,%r14d + addl %edx,%r11d + psrld $7,%xmm6 + addl %edi,%edx + movl %r11d,%r13d + pshufd $250,%xmm0,%xmm7 + addl %edx,%r14d + rorl $14,%r13d + pslld $14,%xmm5 + movl %r14d,%edx + movl %eax,%r12d + pxor %xmm6,%xmm4 + rorl $9,%r14d + xorl %r11d,%r13d + xorl %ebx,%r12d + rorl $5,%r13d + psrld $11,%xmm6 + xorl %edx,%r14d + pxor %xmm5,%xmm4 + andl %r11d,%r12d + xorl %r11d,%r13d + pslld $11,%xmm5 + addl 20(%rsp),%ecx + movl %edx,%edi + pxor %xmm6,%xmm4 + xorl %ebx,%r12d + rorl $11,%r14d + movdqa %xmm7,%xmm6 + xorl %r8d,%edi + addl %r12d,%ecx + pxor %xmm5,%xmm4 + rorl $6,%r13d + andl %edi,%r15d + xorl %edx,%r14d + psrld $10,%xmm7 + addl %r13d,%ecx + xorl %r8d,%r15d + paddd %xmm4,%xmm1 + rorl $2,%r14d + addl %ecx,%r10d + psrlq $17,%xmm6 + addl %r15d,%ecx + movl %r10d,%r13d + addl %ecx,%r14d + pxor %xmm6,%xmm7 + rorl $14,%r13d + movl %r14d,%ecx + movl %r11d,%r12d + rorl $9,%r14d + psrlq $2,%xmm6 + xorl %r10d,%r13d + xorl %eax,%r12d + pxor %xmm6,%xmm7 + rorl $5,%r13d + xorl %ecx,%r14d + andl %r10d,%r12d + pshufd $128,%xmm7,%xmm7 + xorl %r10d,%r13d + addl 24(%rsp),%ebx + movl %ecx,%r15d + psrldq $8,%xmm7 + xorl %eax,%r12d + rorl $11,%r14d + xorl %edx,%r15d + addl %r12d,%ebx + rorl $6,%r13d + paddd %xmm7,%xmm1 + andl %r15d,%edi + xorl %ecx,%r14d + addl %r13d,%ebx + pshufd $80,%xmm1,%xmm7 + xorl %edx,%edi + rorl $2,%r14d + addl %ebx,%r9d + movdqa %xmm7,%xmm6 + addl %edi,%ebx + movl %r9d,%r13d + psrld $10,%xmm7 + addl %ebx,%r14d + rorl $14,%r13d + psrlq $17,%xmm6 + movl %r14d,%ebx + movl %r10d,%r12d + pxor %xmm6,%xmm7 + rorl $9,%r14d + xorl %r9d,%r13d + xorl %r11d,%r12d + rorl $5,%r13d + xorl %ebx,%r14d + psrlq $2,%xmm6 + andl %r9d,%r12d + xorl %r9d,%r13d + addl 28(%rsp),%eax + pxor %xmm6,%xmm7 + movl %ebx,%edi + xorl %r11d,%r12d + rorl $11,%r14d + pshufd $8,%xmm7,%xmm7 + xorl %ecx,%edi + addl %r12d,%eax + movdqa 32(%rbp),%xmm6 + rorl $6,%r13d + andl %edi,%r15d + pslldq $8,%xmm7 + xorl %ebx,%r14d + addl %r13d,%eax + xorl %ecx,%r15d + paddd %xmm7,%xmm1 + rorl $2,%r14d + addl %eax,%r8d + addl %r15d,%eax + paddd %xmm1,%xmm6 + movl %r8d,%r13d + addl %eax,%r14d + movdqa %xmm6,16(%rsp) + rorl $14,%r13d + movdqa %xmm3,%xmm4 + movl %r14d,%eax + movl %r9d,%r12d + movdqa %xmm1,%xmm7 + rorl $9,%r14d + xorl %r8d,%r13d + xorl %r10d,%r12d + rorl $5,%r13d + xorl %eax,%r14d +.byte 102,15,58,15,226,4 + andl %r8d,%r12d + xorl %r8d,%r13d +.byte 102,15,58,15,248,4 + addl 32(%rsp),%r11d + movl %eax,%r15d + xorl %r10d,%r12d + rorl $11,%r14d + movdqa %xmm4,%xmm5 + xorl %ebx,%r15d + addl %r12d,%r11d + movdqa %xmm4,%xmm6 + rorl $6,%r13d + andl %r15d,%edi + psrld $3,%xmm4 + xorl %eax,%r14d + addl %r13d,%r11d + xorl %ebx,%edi + paddd %xmm7,%xmm2 + rorl $2,%r14d + addl %r11d,%edx + psrld $7,%xmm6 + addl %edi,%r11d + movl %edx,%r13d + pshufd $250,%xmm1,%xmm7 + addl %r11d,%r14d + rorl $14,%r13d + pslld $14,%xmm5 + movl %r14d,%r11d + movl %r8d,%r12d + pxor %xmm6,%xmm4 + rorl $9,%r14d + xorl %edx,%r13d + xorl %r9d,%r12d + rorl $5,%r13d + psrld $11,%xmm6 + xorl %r11d,%r14d + pxor %xmm5,%xmm4 + andl %edx,%r12d + xorl %edx,%r13d + pslld $11,%xmm5 + addl 36(%rsp),%r10d + movl %r11d,%edi + pxor %xmm6,%xmm4 + xorl %r9d,%r12d + rorl $11,%r14d + movdqa %xmm7,%xmm6 + xorl %eax,%edi + addl %r12d,%r10d + pxor %xmm5,%xmm4 + rorl $6,%r13d + andl %edi,%r15d + xorl %r11d,%r14d + psrld $10,%xmm7 + addl %r13d,%r10d + xorl %eax,%r15d + paddd %xmm4,%xmm2 + rorl $2,%r14d + addl %r10d,%ecx + psrlq $17,%xmm6 + addl %r15d,%r10d + movl %ecx,%r13d + addl %r10d,%r14d + pxor %xmm6,%xmm7 + rorl $14,%r13d + movl %r14d,%r10d + movl %edx,%r12d + rorl $9,%r14d + psrlq $2,%xmm6 + xorl %ecx,%r13d + xorl %r8d,%r12d + pxor %xmm6,%xmm7 + rorl $5,%r13d + xorl %r10d,%r14d + andl %ecx,%r12d + pshufd $128,%xmm7,%xmm7 + xorl %ecx,%r13d + addl 40(%rsp),%r9d + movl %r10d,%r15d + psrldq $8,%xmm7 + xorl %r8d,%r12d + rorl $11,%r14d + xorl %r11d,%r15d + addl %r12d,%r9d + rorl $6,%r13d + paddd %xmm7,%xmm2 + andl %r15d,%edi + xorl %r10d,%r14d + addl %r13d,%r9d + pshufd $80,%xmm2,%xmm7 + xorl %r11d,%edi + rorl $2,%r14d + addl %r9d,%ebx + movdqa %xmm7,%xmm6 + addl %edi,%r9d + movl %ebx,%r13d + psrld $10,%xmm7 + addl %r9d,%r14d + rorl $14,%r13d + psrlq $17,%xmm6 + movl %r14d,%r9d + movl %ecx,%r12d + pxor %xmm6,%xmm7 + rorl $9,%r14d + xorl %ebx,%r13d + xorl %edx,%r12d + rorl $5,%r13d + xorl %r9d,%r14d + psrlq $2,%xmm6 + andl %ebx,%r12d + xorl %ebx,%r13d + addl 44(%rsp),%r8d + pxor %xmm6,%xmm7 + movl %r9d,%edi + xorl %edx,%r12d + rorl $11,%r14d + pshufd $8,%xmm7,%xmm7 + xorl %r10d,%edi + addl %r12d,%r8d + movdqa 64(%rbp),%xmm6 + rorl $6,%r13d + andl %edi,%r15d + pslldq $8,%xmm7 + xorl %r9d,%r14d + addl %r13d,%r8d + xorl %r10d,%r15d + paddd %xmm7,%xmm2 + rorl $2,%r14d + addl %r8d,%eax + addl %r15d,%r8d + paddd %xmm2,%xmm6 + movl %eax,%r13d + addl %r8d,%r14d + movdqa %xmm6,32(%rsp) + rorl $14,%r13d + movdqa %xmm0,%xmm4 + movl %r14d,%r8d + movl %ebx,%r12d + movdqa %xmm2,%xmm7 + rorl $9,%r14d + xorl %eax,%r13d + xorl %ecx,%r12d + rorl $5,%r13d + xorl %r8d,%r14d +.byte 102,15,58,15,227,4 + andl %eax,%r12d + xorl %eax,%r13d +.byte 102,15,58,15,249,4 + addl 48(%rsp),%edx + movl %r8d,%r15d + xorl %ecx,%r12d + rorl $11,%r14d + movdqa %xmm4,%xmm5 + xorl %r9d,%r15d + addl %r12d,%edx + movdqa %xmm4,%xmm6 + rorl $6,%r13d + andl %r15d,%edi + psrld $3,%xmm4 + xorl %r8d,%r14d + addl %r13d,%edx + xorl %r9d,%edi + paddd %xmm7,%xmm3 + rorl $2,%r14d + addl %edx,%r11d + psrld $7,%xmm6 + addl %edi,%edx + movl %r11d,%r13d + pshufd $250,%xmm2,%xmm7 + addl %edx,%r14d + rorl $14,%r13d + pslld $14,%xmm5 + movl %r14d,%edx + movl %eax,%r12d + pxor %xmm6,%xmm4 + rorl $9,%r14d + xorl %r11d,%r13d + xorl %ebx,%r12d + rorl $5,%r13d + psrld $11,%xmm6 + xorl %edx,%r14d + pxor %xmm5,%xmm4 + andl %r11d,%r12d + xorl %r11d,%r13d + pslld $11,%xmm5 + addl 52(%rsp),%ecx + movl %edx,%edi + pxor %xmm6,%xmm4 + xorl %ebx,%r12d + rorl $11,%r14d + movdqa %xmm7,%xmm6 + xorl %r8d,%edi + addl %r12d,%ecx + pxor %xmm5,%xmm4 + rorl $6,%r13d + andl %edi,%r15d + xorl %edx,%r14d + psrld $10,%xmm7 + addl %r13d,%ecx + xorl %r8d,%r15d + paddd %xmm4,%xmm3 + rorl $2,%r14d + addl %ecx,%r10d + psrlq $17,%xmm6 + addl %r15d,%ecx + movl %r10d,%r13d + addl %ecx,%r14d + pxor %xmm6,%xmm7 + rorl $14,%r13d + movl %r14d,%ecx + movl %r11d,%r12d + rorl $9,%r14d + psrlq $2,%xmm6 + xorl %r10d,%r13d + xorl %eax,%r12d + pxor %xmm6,%xmm7 + rorl $5,%r13d + xorl %ecx,%r14d + andl %r10d,%r12d + pshufd $128,%xmm7,%xmm7 + xorl %r10d,%r13d + addl 56(%rsp),%ebx + movl %ecx,%r15d + psrldq $8,%xmm7 + xorl %eax,%r12d + rorl $11,%r14d + xorl %edx,%r15d + addl %r12d,%ebx + rorl $6,%r13d + paddd %xmm7,%xmm3 + andl %r15d,%edi + xorl %ecx,%r14d + addl %r13d,%ebx + pshufd $80,%xmm3,%xmm7 + xorl %edx,%edi + rorl $2,%r14d + addl %ebx,%r9d + movdqa %xmm7,%xmm6 + addl %edi,%ebx + movl %r9d,%r13d + psrld $10,%xmm7 + addl %ebx,%r14d + rorl $14,%r13d + psrlq $17,%xmm6 + movl %r14d,%ebx + movl %r10d,%r12d + pxor %xmm6,%xmm7 + rorl $9,%r14d + xorl %r9d,%r13d + xorl %r11d,%r12d + rorl $5,%r13d + xorl %ebx,%r14d + psrlq $2,%xmm6 + andl %r9d,%r12d + xorl %r9d,%r13d + addl 60(%rsp),%eax + pxor %xmm6,%xmm7 + movl %ebx,%edi + xorl %r11d,%r12d + rorl $11,%r14d + pshufd $8,%xmm7,%xmm7 + xorl %ecx,%edi + addl %r12d,%eax + movdqa 96(%rbp),%xmm6 + rorl $6,%r13d + andl %edi,%r15d + pslldq $8,%xmm7 + xorl %ebx,%r14d + addl %r13d,%eax + xorl %ecx,%r15d + paddd %xmm7,%xmm3 + rorl $2,%r14d + addl %eax,%r8d + addl %r15d,%eax + paddd %xmm3,%xmm6 + movl %r8d,%r13d + addl %eax,%r14d + movdqa %xmm6,48(%rsp) + cmpb $0,131(%rbp) + jne L$ssse3_00_47 + rorl $14,%r13d + movl %r14d,%eax + movl %r9d,%r12d + rorl $9,%r14d + xorl %r8d,%r13d + xorl %r10d,%r12d + rorl $5,%r13d + xorl %eax,%r14d + andl %r8d,%r12d + xorl %r8d,%r13d + addl 0(%rsp),%r11d + movl %eax,%r15d + xorl %r10d,%r12d + rorl $11,%r14d + xorl %ebx,%r15d + addl %r12d,%r11d + rorl $6,%r13d + andl %r15d,%edi + xorl %eax,%r14d + addl %r13d,%r11d + xorl %ebx,%edi + rorl $2,%r14d + addl %r11d,%edx + addl %edi,%r11d + movl %edx,%r13d + addl %r11d,%r14d + rorl $14,%r13d + movl %r14d,%r11d + movl %r8d,%r12d + rorl $9,%r14d + xorl %edx,%r13d + xorl %r9d,%r12d + rorl $5,%r13d + xorl %r11d,%r14d + andl %edx,%r12d + xorl %edx,%r13d + addl 4(%rsp),%r10d + movl %r11d,%edi + xorl %r9d,%r12d + rorl $11,%r14d + xorl %eax,%edi + addl %r12d,%r10d + rorl $6,%r13d + andl %edi,%r15d + xorl %r11d,%r14d + addl %r13d,%r10d + xorl %eax,%r15d + rorl $2,%r14d + addl %r10d,%ecx + addl %r15d,%r10d + movl %ecx,%r13d + addl %r10d,%r14d + rorl $14,%r13d + movl %r14d,%r10d + movl %edx,%r12d + rorl $9,%r14d + xorl %ecx,%r13d + xorl %r8d,%r12d + rorl $5,%r13d + xorl %r10d,%r14d + andl %ecx,%r12d + xorl %ecx,%r13d + addl 8(%rsp),%r9d + movl %r10d,%r15d + xorl %r8d,%r12d + rorl $11,%r14d + xorl %r11d,%r15d + addl %r12d,%r9d + rorl $6,%r13d + andl %r15d,%edi + xorl %r10d,%r14d + addl %r13d,%r9d + xorl %r11d,%edi + rorl $2,%r14d + addl %r9d,%ebx + addl %edi,%r9d + movl %ebx,%r13d + addl %r9d,%r14d + rorl $14,%r13d + movl %r14d,%r9d + movl %ecx,%r12d + rorl $9,%r14d + xorl %ebx,%r13d + xorl %edx,%r12d + rorl $5,%r13d + xorl %r9d,%r14d + andl %ebx,%r12d + xorl %ebx,%r13d + addl 12(%rsp),%r8d + movl %r9d,%edi + xorl %edx,%r12d + rorl $11,%r14d + xorl %r10d,%edi + addl %r12d,%r8d + rorl $6,%r13d + andl %edi,%r15d + xorl %r9d,%r14d + addl %r13d,%r8d + xorl %r10d,%r15d + rorl $2,%r14d + addl %r8d,%eax + addl %r15d,%r8d + movl %eax,%r13d + addl %r8d,%r14d + rorl $14,%r13d + movl %r14d,%r8d + movl %ebx,%r12d + rorl $9,%r14d + xorl %eax,%r13d + xorl %ecx,%r12d + rorl $5,%r13d + xorl %r8d,%r14d + andl %eax,%r12d + xorl %eax,%r13d + addl 16(%rsp),%edx + movl %r8d,%r15d + xorl %ecx,%r12d + rorl $11,%r14d + xorl %r9d,%r15d + addl %r12d,%edx + rorl $6,%r13d + andl %r15d,%edi + xorl %r8d,%r14d + addl %r13d,%edx + xorl %r9d,%edi + rorl $2,%r14d + addl %edx,%r11d + addl %edi,%edx + movl %r11d,%r13d + addl %edx,%r14d + rorl $14,%r13d + movl %r14d,%edx + movl %eax,%r12d + rorl $9,%r14d + xorl %r11d,%r13d + xorl %ebx,%r12d + rorl $5,%r13d + xorl %edx,%r14d + andl %r11d,%r12d + xorl %r11d,%r13d + addl 20(%rsp),%ecx + movl %edx,%edi + xorl %ebx,%r12d + rorl $11,%r14d + xorl %r8d,%edi + addl %r12d,%ecx + rorl $6,%r13d + andl %edi,%r15d + xorl %edx,%r14d + addl %r13d,%ecx + xorl %r8d,%r15d + rorl $2,%r14d + addl %ecx,%r10d + addl %r15d,%ecx + movl %r10d,%r13d + addl %ecx,%r14d + rorl $14,%r13d + movl %r14d,%ecx + movl %r11d,%r12d + rorl $9,%r14d + xorl %r10d,%r13d + xorl %eax,%r12d + rorl $5,%r13d + xorl %ecx,%r14d + andl %r10d,%r12d + xorl %r10d,%r13d + addl 24(%rsp),%ebx + movl %ecx,%r15d + xorl %eax,%r12d + rorl $11,%r14d + xorl %edx,%r15d + addl %r12d,%ebx + rorl $6,%r13d + andl %r15d,%edi + xorl %ecx,%r14d + addl %r13d,%ebx + xorl %edx,%edi + rorl $2,%r14d + addl %ebx,%r9d + addl %edi,%ebx + movl %r9d,%r13d + addl %ebx,%r14d + rorl $14,%r13d + movl %r14d,%ebx + movl %r10d,%r12d + rorl $9,%r14d + xorl %r9d,%r13d + xorl %r11d,%r12d + rorl $5,%r13d + xorl %ebx,%r14d + andl %r9d,%r12d + xorl %r9d,%r13d + addl 28(%rsp),%eax + movl %ebx,%edi + xorl %r11d,%r12d + rorl $11,%r14d + xorl %ecx,%edi + addl %r12d,%eax + rorl $6,%r13d + andl %edi,%r15d + xorl %ebx,%r14d + addl %r13d,%eax + xorl %ecx,%r15d + rorl $2,%r14d + addl %eax,%r8d + addl %r15d,%eax + movl %r8d,%r13d + addl %eax,%r14d + rorl $14,%r13d + movl %r14d,%eax + movl %r9d,%r12d + rorl $9,%r14d + xorl %r8d,%r13d + xorl %r10d,%r12d + rorl $5,%r13d + xorl %eax,%r14d + andl %r8d,%r12d + xorl %r8d,%r13d + addl 32(%rsp),%r11d + movl %eax,%r15d + xorl %r10d,%r12d + rorl $11,%r14d + xorl %ebx,%r15d + addl %r12d,%r11d + rorl $6,%r13d + andl %r15d,%edi + xorl %eax,%r14d + addl %r13d,%r11d + xorl %ebx,%edi + rorl $2,%r14d + addl %r11d,%edx + addl %edi,%r11d + movl %edx,%r13d + addl %r11d,%r14d + rorl $14,%r13d + movl %r14d,%r11d + movl %r8d,%r12d + rorl $9,%r14d + xorl %edx,%r13d + xorl %r9d,%r12d + rorl $5,%r13d + xorl %r11d,%r14d + andl %edx,%r12d + xorl %edx,%r13d + addl 36(%rsp),%r10d + movl %r11d,%edi + xorl %r9d,%r12d + rorl $11,%r14d + xorl %eax,%edi + addl %r12d,%r10d + rorl $6,%r13d + andl %edi,%r15d + xorl %r11d,%r14d + addl %r13d,%r10d + xorl %eax,%r15d + rorl $2,%r14d + addl %r10d,%ecx + addl %r15d,%r10d + movl %ecx,%r13d + addl %r10d,%r14d + rorl $14,%r13d + movl %r14d,%r10d + movl %edx,%r12d + rorl $9,%r14d + xorl %ecx,%r13d + xorl %r8d,%r12d + rorl $5,%r13d + xorl %r10d,%r14d + andl %ecx,%r12d + xorl %ecx,%r13d + addl 40(%rsp),%r9d + movl %r10d,%r15d + xorl %r8d,%r12d + rorl $11,%r14d + xorl %r11d,%r15d + addl %r12d,%r9d + rorl $6,%r13d + andl %r15d,%edi + xorl %r10d,%r14d + addl %r13d,%r9d + xorl %r11d,%edi + rorl $2,%r14d + addl %r9d,%ebx + addl %edi,%r9d + movl %ebx,%r13d + addl %r9d,%r14d + rorl $14,%r13d + movl %r14d,%r9d + movl %ecx,%r12d + rorl $9,%r14d + xorl %ebx,%r13d + xorl %edx,%r12d + rorl $5,%r13d + xorl %r9d,%r14d + andl %ebx,%r12d + xorl %ebx,%r13d + addl 44(%rsp),%r8d + movl %r9d,%edi + xorl %edx,%r12d + rorl $11,%r14d + xorl %r10d,%edi + addl %r12d,%r8d + rorl $6,%r13d + andl %edi,%r15d + xorl %r9d,%r14d + addl %r13d,%r8d + xorl %r10d,%r15d + rorl $2,%r14d + addl %r8d,%eax + addl %r15d,%r8d + movl %eax,%r13d + addl %r8d,%r14d + rorl $14,%r13d + movl %r14d,%r8d + movl %ebx,%r12d + rorl $9,%r14d + xorl %eax,%r13d + xorl %ecx,%r12d + rorl $5,%r13d + xorl %r8d,%r14d + andl %eax,%r12d + xorl %eax,%r13d + addl 48(%rsp),%edx + movl %r8d,%r15d + xorl %ecx,%r12d + rorl $11,%r14d + xorl %r9d,%r15d + addl %r12d,%edx + rorl $6,%r13d + andl %r15d,%edi + xorl %r8d,%r14d + addl %r13d,%edx + xorl %r9d,%edi + rorl $2,%r14d + addl %edx,%r11d + addl %edi,%edx + movl %r11d,%r13d + addl %edx,%r14d + rorl $14,%r13d + movl %r14d,%edx + movl %eax,%r12d + rorl $9,%r14d + xorl %r11d,%r13d + xorl %ebx,%r12d + rorl $5,%r13d + xorl %edx,%r14d + andl %r11d,%r12d + xorl %r11d,%r13d + addl 52(%rsp),%ecx + movl %edx,%edi + xorl %ebx,%r12d + rorl $11,%r14d + xorl %r8d,%edi + addl %r12d,%ecx + rorl $6,%r13d + andl %edi,%r15d + xorl %edx,%r14d + addl %r13d,%ecx + xorl %r8d,%r15d + rorl $2,%r14d + addl %ecx,%r10d + addl %r15d,%ecx + movl %r10d,%r13d + addl %ecx,%r14d + rorl $14,%r13d + movl %r14d,%ecx + movl %r11d,%r12d + rorl $9,%r14d + xorl %r10d,%r13d + xorl %eax,%r12d + rorl $5,%r13d + xorl %ecx,%r14d + andl %r10d,%r12d + xorl %r10d,%r13d + addl 56(%rsp),%ebx + movl %ecx,%r15d + xorl %eax,%r12d + rorl $11,%r14d + xorl %edx,%r15d + addl %r12d,%ebx + rorl $6,%r13d + andl %r15d,%edi + xorl %ecx,%r14d + addl %r13d,%ebx + xorl %edx,%edi + rorl $2,%r14d + addl %ebx,%r9d + addl %edi,%ebx + movl %r9d,%r13d + addl %ebx,%r14d + rorl $14,%r13d + movl %r14d,%ebx + movl %r10d,%r12d + rorl $9,%r14d + xorl %r9d,%r13d + xorl %r11d,%r12d + rorl $5,%r13d + xorl %ebx,%r14d + andl %r9d,%r12d + xorl %r9d,%r13d + addl 60(%rsp),%eax + movl %ebx,%edi + xorl %r11d,%r12d + rorl $11,%r14d + xorl %ecx,%edi + addl %r12d,%eax + rorl $6,%r13d + andl %edi,%r15d + xorl %ebx,%r14d + addl %r13d,%eax + xorl %ecx,%r15d + rorl $2,%r14d + addl %eax,%r8d + addl %r15d,%eax + movl %r8d,%r13d + addl %eax,%r14d + movq 64+0(%rsp),%rdi + movl %r14d,%eax + + addl 0(%rdi),%eax + leaq 64(%rsi),%rsi + addl 4(%rdi),%ebx + addl 8(%rdi),%ecx + addl 12(%rdi),%edx + addl 16(%rdi),%r8d + addl 20(%rdi),%r9d + addl 24(%rdi),%r10d + addl 28(%rdi),%r11d + + cmpq 64+16(%rsp),%rsi + + movl %eax,0(%rdi) + movl %ebx,4(%rdi) + movl %ecx,8(%rdi) + movl %edx,12(%rdi) + movl %r8d,16(%rdi) + movl %r9d,20(%rdi) + movl %r10d,24(%rdi) + movl %r11d,28(%rdi) + jb L$loop_ssse3 + + movq 88(%rsp),%rsi + + movq -48(%rsi),%r15 + + movq -40(%rsi),%r14 + + movq -32(%rsi),%r13 + + movq -24(%rsi),%r12 + + movq -16(%rsi),%rbp + + movq -8(%rsi),%rbx + + leaq (%rsi),%rsp + +L$epilogue_ssse3: + .byte 0xf3,0xc3 + + + +.p2align 6 +sha256_block_data_order_avx: + +L$avx_shortcut: + movq %rsp,%rax + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + shlq $4,%rdx + subq $96,%rsp + leaq (%rsi,%rdx,4),%rdx + andq $-64,%rsp + movq %rdi,64+0(%rsp) + movq %rsi,64+8(%rsp) + movq %rdx,64+16(%rsp) + movq %rax,88(%rsp) + +L$prologue_avx: + + vzeroupper + movl 0(%rdi),%eax + movl 4(%rdi),%ebx + movl 8(%rdi),%ecx + movl 12(%rdi),%edx + movl 16(%rdi),%r8d + movl 20(%rdi),%r9d + movl 24(%rdi),%r10d + movl 28(%rdi),%r11d + vmovdqa K256+512+32(%rip),%xmm8 + vmovdqa K256+512+64(%rip),%xmm9 + jmp L$loop_avx +.p2align 4 +L$loop_avx: + vmovdqa K256+512(%rip),%xmm7 + vmovdqu 0(%rsi),%xmm0 + vmovdqu 16(%rsi),%xmm1 + vmovdqu 32(%rsi),%xmm2 + vmovdqu 48(%rsi),%xmm3 + vpshufb %xmm7,%xmm0,%xmm0 + leaq K256(%rip),%rbp + vpshufb %xmm7,%xmm1,%xmm1 + vpshufb %xmm7,%xmm2,%xmm2 + vpaddd 0(%rbp),%xmm0,%xmm4 + vpshufb %xmm7,%xmm3,%xmm3 + vpaddd 32(%rbp),%xmm1,%xmm5 + vpaddd 64(%rbp),%xmm2,%xmm6 + vpaddd 96(%rbp),%xmm3,%xmm7 + vmovdqa %xmm4,0(%rsp) + movl %eax,%r14d + vmovdqa %xmm5,16(%rsp) + movl %ebx,%edi + vmovdqa %xmm6,32(%rsp) + xorl %ecx,%edi + vmovdqa %xmm7,48(%rsp) + movl %r8d,%r13d + jmp L$avx_00_47 + +.p2align 4 +L$avx_00_47: + subq $-128,%rbp + vpalignr $4,%xmm0,%xmm1,%xmm4 + shrdl $14,%r13d,%r13d + movl %r14d,%eax + movl %r9d,%r12d + vpalignr $4,%xmm2,%xmm3,%xmm7 + shrdl $9,%r14d,%r14d + xorl %r8d,%r13d + xorl %r10d,%r12d + vpsrld $7,%xmm4,%xmm6 + shrdl $5,%r13d,%r13d + xorl %eax,%r14d + andl %r8d,%r12d + vpaddd %xmm7,%xmm0,%xmm0 + xorl %r8d,%r13d + addl 0(%rsp),%r11d + movl %eax,%r15d + vpsrld $3,%xmm4,%xmm7 + xorl %r10d,%r12d + shrdl $11,%r14d,%r14d + xorl %ebx,%r15d + vpslld $14,%xmm4,%xmm5 + addl %r12d,%r11d + shrdl $6,%r13d,%r13d + andl %r15d,%edi + vpxor %xmm6,%xmm7,%xmm4 + xorl %eax,%r14d + addl %r13d,%r11d + xorl %ebx,%edi + vpshufd $250,%xmm3,%xmm7 + shrdl $2,%r14d,%r14d + addl %r11d,%edx + addl %edi,%r11d + vpsrld $11,%xmm6,%xmm6 + movl %edx,%r13d + addl %r11d,%r14d + shrdl $14,%r13d,%r13d + vpxor %xmm5,%xmm4,%xmm4 + movl %r14d,%r11d + movl %r8d,%r12d + shrdl $9,%r14d,%r14d + vpslld $11,%xmm5,%xmm5 + xorl %edx,%r13d + xorl %r9d,%r12d + shrdl $5,%r13d,%r13d + vpxor %xmm6,%xmm4,%xmm4 + xorl %r11d,%r14d + andl %edx,%r12d + xorl %edx,%r13d + vpsrld $10,%xmm7,%xmm6 + addl 4(%rsp),%r10d + movl %r11d,%edi + xorl %r9d,%r12d + vpxor %xmm5,%xmm4,%xmm4 + shrdl $11,%r14d,%r14d + xorl %eax,%edi + addl %r12d,%r10d + vpsrlq $17,%xmm7,%xmm7 + shrdl $6,%r13d,%r13d + andl %edi,%r15d + xorl %r11d,%r14d + vpaddd %xmm4,%xmm0,%xmm0 + addl %r13d,%r10d + xorl %eax,%r15d + shrdl $2,%r14d,%r14d + vpxor %xmm7,%xmm6,%xmm6 + addl %r10d,%ecx + addl %r15d,%r10d + movl %ecx,%r13d + vpsrlq $2,%xmm7,%xmm7 + addl %r10d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r10d + vpxor %xmm7,%xmm6,%xmm6 + movl %edx,%r12d + shrdl $9,%r14d,%r14d + xorl %ecx,%r13d + vpshufb %xmm8,%xmm6,%xmm6 + xorl %r8d,%r12d + shrdl $5,%r13d,%r13d + xorl %r10d,%r14d + vpaddd %xmm6,%xmm0,%xmm0 + andl %ecx,%r12d + xorl %ecx,%r13d + addl 8(%rsp),%r9d + vpshufd $80,%xmm0,%xmm7 + movl %r10d,%r15d + xorl %r8d,%r12d + shrdl $11,%r14d,%r14d + vpsrld $10,%xmm7,%xmm6 + xorl %r11d,%r15d + addl %r12d,%r9d + shrdl $6,%r13d,%r13d + vpsrlq $17,%xmm7,%xmm7 + andl %r15d,%edi + xorl %r10d,%r14d + addl %r13d,%r9d + vpxor %xmm7,%xmm6,%xmm6 + xorl %r11d,%edi + shrdl $2,%r14d,%r14d + addl %r9d,%ebx + vpsrlq $2,%xmm7,%xmm7 + addl %edi,%r9d + movl %ebx,%r13d + addl %r9d,%r14d + vpxor %xmm7,%xmm6,%xmm6 + shrdl $14,%r13d,%r13d + movl %r14d,%r9d + movl %ecx,%r12d + vpshufb %xmm9,%xmm6,%xmm6 + shrdl $9,%r14d,%r14d + xorl %ebx,%r13d + xorl %edx,%r12d + vpaddd %xmm6,%xmm0,%xmm0 + shrdl $5,%r13d,%r13d + xorl %r9d,%r14d + andl %ebx,%r12d + vpaddd 0(%rbp),%xmm0,%xmm6 + xorl %ebx,%r13d + addl 12(%rsp),%r8d + movl %r9d,%edi + xorl %edx,%r12d + shrdl $11,%r14d,%r14d + xorl %r10d,%edi + addl %r12d,%r8d + shrdl $6,%r13d,%r13d + andl %edi,%r15d + xorl %r9d,%r14d + addl %r13d,%r8d + xorl %r10d,%r15d + shrdl $2,%r14d,%r14d + addl %r8d,%eax + addl %r15d,%r8d + movl %eax,%r13d + addl %r8d,%r14d + vmovdqa %xmm6,0(%rsp) + vpalignr $4,%xmm1,%xmm2,%xmm4 + shrdl $14,%r13d,%r13d + movl %r14d,%r8d + movl %ebx,%r12d + vpalignr $4,%xmm3,%xmm0,%xmm7 + shrdl $9,%r14d,%r14d + xorl %eax,%r13d + xorl %ecx,%r12d + vpsrld $7,%xmm4,%xmm6 + shrdl $5,%r13d,%r13d + xorl %r8d,%r14d + andl %eax,%r12d + vpaddd %xmm7,%xmm1,%xmm1 + xorl %eax,%r13d + addl 16(%rsp),%edx + movl %r8d,%r15d + vpsrld $3,%xmm4,%xmm7 + xorl %ecx,%r12d + shrdl $11,%r14d,%r14d + xorl %r9d,%r15d + vpslld $14,%xmm4,%xmm5 + addl %r12d,%edx + shrdl $6,%r13d,%r13d + andl %r15d,%edi + vpxor %xmm6,%xmm7,%xmm4 + xorl %r8d,%r14d + addl %r13d,%edx + xorl %r9d,%edi + vpshufd $250,%xmm0,%xmm7 + shrdl $2,%r14d,%r14d + addl %edx,%r11d + addl %edi,%edx + vpsrld $11,%xmm6,%xmm6 + movl %r11d,%r13d + addl %edx,%r14d + shrdl $14,%r13d,%r13d + vpxor %xmm5,%xmm4,%xmm4 + movl %r14d,%edx + movl %eax,%r12d + shrdl $9,%r14d,%r14d + vpslld $11,%xmm5,%xmm5 + xorl %r11d,%r13d + xorl %ebx,%r12d + shrdl $5,%r13d,%r13d + vpxor %xmm6,%xmm4,%xmm4 + xorl %edx,%r14d + andl %r11d,%r12d + xorl %r11d,%r13d + vpsrld $10,%xmm7,%xmm6 + addl 20(%rsp),%ecx + movl %edx,%edi + xorl %ebx,%r12d + vpxor %xmm5,%xmm4,%xmm4 + shrdl $11,%r14d,%r14d + xorl %r8d,%edi + addl %r12d,%ecx + vpsrlq $17,%xmm7,%xmm7 + shrdl $6,%r13d,%r13d + andl %edi,%r15d + xorl %edx,%r14d + vpaddd %xmm4,%xmm1,%xmm1 + addl %r13d,%ecx + xorl %r8d,%r15d + shrdl $2,%r14d,%r14d + vpxor %xmm7,%xmm6,%xmm6 + addl %ecx,%r10d + addl %r15d,%ecx + movl %r10d,%r13d + vpsrlq $2,%xmm7,%xmm7 + addl %ecx,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%ecx + vpxor %xmm7,%xmm6,%xmm6 + movl %r11d,%r12d + shrdl $9,%r14d,%r14d + xorl %r10d,%r13d + vpshufb %xmm8,%xmm6,%xmm6 + xorl %eax,%r12d + shrdl $5,%r13d,%r13d + xorl %ecx,%r14d + vpaddd %xmm6,%xmm1,%xmm1 + andl %r10d,%r12d + xorl %r10d,%r13d + addl 24(%rsp),%ebx + vpshufd $80,%xmm1,%xmm7 + movl %ecx,%r15d + xorl %eax,%r12d + shrdl $11,%r14d,%r14d + vpsrld $10,%xmm7,%xmm6 + xorl %edx,%r15d + addl %r12d,%ebx + shrdl $6,%r13d,%r13d + vpsrlq $17,%xmm7,%xmm7 + andl %r15d,%edi + xorl %ecx,%r14d + addl %r13d,%ebx + vpxor %xmm7,%xmm6,%xmm6 + xorl %edx,%edi + shrdl $2,%r14d,%r14d + addl %ebx,%r9d + vpsrlq $2,%xmm7,%xmm7 + addl %edi,%ebx + movl %r9d,%r13d + addl %ebx,%r14d + vpxor %xmm7,%xmm6,%xmm6 + shrdl $14,%r13d,%r13d + movl %r14d,%ebx + movl %r10d,%r12d + vpshufb %xmm9,%xmm6,%xmm6 + shrdl $9,%r14d,%r14d + xorl %r9d,%r13d + xorl %r11d,%r12d + vpaddd %xmm6,%xmm1,%xmm1 + shrdl $5,%r13d,%r13d + xorl %ebx,%r14d + andl %r9d,%r12d + vpaddd 32(%rbp),%xmm1,%xmm6 + xorl %r9d,%r13d + addl 28(%rsp),%eax + movl %ebx,%edi + xorl %r11d,%r12d + shrdl $11,%r14d,%r14d + xorl %ecx,%edi + addl %r12d,%eax + shrdl $6,%r13d,%r13d + andl %edi,%r15d + xorl %ebx,%r14d + addl %r13d,%eax + xorl %ecx,%r15d + shrdl $2,%r14d,%r14d + addl %eax,%r8d + addl %r15d,%eax + movl %r8d,%r13d + addl %eax,%r14d + vmovdqa %xmm6,16(%rsp) + vpalignr $4,%xmm2,%xmm3,%xmm4 + shrdl $14,%r13d,%r13d + movl %r14d,%eax + movl %r9d,%r12d + vpalignr $4,%xmm0,%xmm1,%xmm7 + shrdl $9,%r14d,%r14d + xorl %r8d,%r13d + xorl %r10d,%r12d + vpsrld $7,%xmm4,%xmm6 + shrdl $5,%r13d,%r13d + xorl %eax,%r14d + andl %r8d,%r12d + vpaddd %xmm7,%xmm2,%xmm2 + xorl %r8d,%r13d + addl 32(%rsp),%r11d + movl %eax,%r15d + vpsrld $3,%xmm4,%xmm7 + xorl %r10d,%r12d + shrdl $11,%r14d,%r14d + xorl %ebx,%r15d + vpslld $14,%xmm4,%xmm5 + addl %r12d,%r11d + shrdl $6,%r13d,%r13d + andl %r15d,%edi + vpxor %xmm6,%xmm7,%xmm4 + xorl %eax,%r14d + addl %r13d,%r11d + xorl %ebx,%edi + vpshufd $250,%xmm1,%xmm7 + shrdl $2,%r14d,%r14d + addl %r11d,%edx + addl %edi,%r11d + vpsrld $11,%xmm6,%xmm6 + movl %edx,%r13d + addl %r11d,%r14d + shrdl $14,%r13d,%r13d + vpxor %xmm5,%xmm4,%xmm4 + movl %r14d,%r11d + movl %r8d,%r12d + shrdl $9,%r14d,%r14d + vpslld $11,%xmm5,%xmm5 + xorl %edx,%r13d + xorl %r9d,%r12d + shrdl $5,%r13d,%r13d + vpxor %xmm6,%xmm4,%xmm4 + xorl %r11d,%r14d + andl %edx,%r12d + xorl %edx,%r13d + vpsrld $10,%xmm7,%xmm6 + addl 36(%rsp),%r10d + movl %r11d,%edi + xorl %r9d,%r12d + vpxor %xmm5,%xmm4,%xmm4 + shrdl $11,%r14d,%r14d + xorl %eax,%edi + addl %r12d,%r10d + vpsrlq $17,%xmm7,%xmm7 + shrdl $6,%r13d,%r13d + andl %edi,%r15d + xorl %r11d,%r14d + vpaddd %xmm4,%xmm2,%xmm2 + addl %r13d,%r10d + xorl %eax,%r15d + shrdl $2,%r14d,%r14d + vpxor %xmm7,%xmm6,%xmm6 + addl %r10d,%ecx + addl %r15d,%r10d + movl %ecx,%r13d + vpsrlq $2,%xmm7,%xmm7 + addl %r10d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r10d + vpxor %xmm7,%xmm6,%xmm6 + movl %edx,%r12d + shrdl $9,%r14d,%r14d + xorl %ecx,%r13d + vpshufb %xmm8,%xmm6,%xmm6 + xorl %r8d,%r12d + shrdl $5,%r13d,%r13d + xorl %r10d,%r14d + vpaddd %xmm6,%xmm2,%xmm2 + andl %ecx,%r12d + xorl %ecx,%r13d + addl 40(%rsp),%r9d + vpshufd $80,%xmm2,%xmm7 + movl %r10d,%r15d + xorl %r8d,%r12d + shrdl $11,%r14d,%r14d + vpsrld $10,%xmm7,%xmm6 + xorl %r11d,%r15d + addl %r12d,%r9d + shrdl $6,%r13d,%r13d + vpsrlq $17,%xmm7,%xmm7 + andl %r15d,%edi + xorl %r10d,%r14d + addl %r13d,%r9d + vpxor %xmm7,%xmm6,%xmm6 + xorl %r11d,%edi + shrdl $2,%r14d,%r14d + addl %r9d,%ebx + vpsrlq $2,%xmm7,%xmm7 + addl %edi,%r9d + movl %ebx,%r13d + addl %r9d,%r14d + vpxor %xmm7,%xmm6,%xmm6 + shrdl $14,%r13d,%r13d + movl %r14d,%r9d + movl %ecx,%r12d + vpshufb %xmm9,%xmm6,%xmm6 + shrdl $9,%r14d,%r14d + xorl %ebx,%r13d + xorl %edx,%r12d + vpaddd %xmm6,%xmm2,%xmm2 + shrdl $5,%r13d,%r13d + xorl %r9d,%r14d + andl %ebx,%r12d + vpaddd 64(%rbp),%xmm2,%xmm6 + xorl %ebx,%r13d + addl 44(%rsp),%r8d + movl %r9d,%edi + xorl %edx,%r12d + shrdl $11,%r14d,%r14d + xorl %r10d,%edi + addl %r12d,%r8d + shrdl $6,%r13d,%r13d + andl %edi,%r15d + xorl %r9d,%r14d + addl %r13d,%r8d + xorl %r10d,%r15d + shrdl $2,%r14d,%r14d + addl %r8d,%eax + addl %r15d,%r8d + movl %eax,%r13d + addl %r8d,%r14d + vmovdqa %xmm6,32(%rsp) + vpalignr $4,%xmm3,%xmm0,%xmm4 + shrdl $14,%r13d,%r13d + movl %r14d,%r8d + movl %ebx,%r12d + vpalignr $4,%xmm1,%xmm2,%xmm7 + shrdl $9,%r14d,%r14d + xorl %eax,%r13d + xorl %ecx,%r12d + vpsrld $7,%xmm4,%xmm6 + shrdl $5,%r13d,%r13d + xorl %r8d,%r14d + andl %eax,%r12d + vpaddd %xmm7,%xmm3,%xmm3 + xorl %eax,%r13d + addl 48(%rsp),%edx + movl %r8d,%r15d + vpsrld $3,%xmm4,%xmm7 + xorl %ecx,%r12d + shrdl $11,%r14d,%r14d + xorl %r9d,%r15d + vpslld $14,%xmm4,%xmm5 + addl %r12d,%edx + shrdl $6,%r13d,%r13d + andl %r15d,%edi + vpxor %xmm6,%xmm7,%xmm4 + xorl %r8d,%r14d + addl %r13d,%edx + xorl %r9d,%edi + vpshufd $250,%xmm2,%xmm7 + shrdl $2,%r14d,%r14d + addl %edx,%r11d + addl %edi,%edx + vpsrld $11,%xmm6,%xmm6 + movl %r11d,%r13d + addl %edx,%r14d + shrdl $14,%r13d,%r13d + vpxor %xmm5,%xmm4,%xmm4 + movl %r14d,%edx + movl %eax,%r12d + shrdl $9,%r14d,%r14d + vpslld $11,%xmm5,%xmm5 + xorl %r11d,%r13d + xorl %ebx,%r12d + shrdl $5,%r13d,%r13d + vpxor %xmm6,%xmm4,%xmm4 + xorl %edx,%r14d + andl %r11d,%r12d + xorl %r11d,%r13d + vpsrld $10,%xmm7,%xmm6 + addl 52(%rsp),%ecx + movl %edx,%edi + xorl %ebx,%r12d + vpxor %xmm5,%xmm4,%xmm4 + shrdl $11,%r14d,%r14d + xorl %r8d,%edi + addl %r12d,%ecx + vpsrlq $17,%xmm7,%xmm7 + shrdl $6,%r13d,%r13d + andl %edi,%r15d + xorl %edx,%r14d + vpaddd %xmm4,%xmm3,%xmm3 + addl %r13d,%ecx + xorl %r8d,%r15d + shrdl $2,%r14d,%r14d + vpxor %xmm7,%xmm6,%xmm6 + addl %ecx,%r10d + addl %r15d,%ecx + movl %r10d,%r13d + vpsrlq $2,%xmm7,%xmm7 + addl %ecx,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%ecx + vpxor %xmm7,%xmm6,%xmm6 + movl %r11d,%r12d + shrdl $9,%r14d,%r14d + xorl %r10d,%r13d + vpshufb %xmm8,%xmm6,%xmm6 + xorl %eax,%r12d + shrdl $5,%r13d,%r13d + xorl %ecx,%r14d + vpaddd %xmm6,%xmm3,%xmm3 + andl %r10d,%r12d + xorl %r10d,%r13d + addl 56(%rsp),%ebx + vpshufd $80,%xmm3,%xmm7 + movl %ecx,%r15d + xorl %eax,%r12d + shrdl $11,%r14d,%r14d + vpsrld $10,%xmm7,%xmm6 + xorl %edx,%r15d + addl %r12d,%ebx + shrdl $6,%r13d,%r13d + vpsrlq $17,%xmm7,%xmm7 + andl %r15d,%edi + xorl %ecx,%r14d + addl %r13d,%ebx + vpxor %xmm7,%xmm6,%xmm6 + xorl %edx,%edi + shrdl $2,%r14d,%r14d + addl %ebx,%r9d + vpsrlq $2,%xmm7,%xmm7 + addl %edi,%ebx + movl %r9d,%r13d + addl %ebx,%r14d + vpxor %xmm7,%xmm6,%xmm6 + shrdl $14,%r13d,%r13d + movl %r14d,%ebx + movl %r10d,%r12d + vpshufb %xmm9,%xmm6,%xmm6 + shrdl $9,%r14d,%r14d + xorl %r9d,%r13d + xorl %r11d,%r12d + vpaddd %xmm6,%xmm3,%xmm3 + shrdl $5,%r13d,%r13d + xorl %ebx,%r14d + andl %r9d,%r12d + vpaddd 96(%rbp),%xmm3,%xmm6 + xorl %r9d,%r13d + addl 60(%rsp),%eax + movl %ebx,%edi + xorl %r11d,%r12d + shrdl $11,%r14d,%r14d + xorl %ecx,%edi + addl %r12d,%eax + shrdl $6,%r13d,%r13d + andl %edi,%r15d + xorl %ebx,%r14d + addl %r13d,%eax + xorl %ecx,%r15d + shrdl $2,%r14d,%r14d + addl %eax,%r8d + addl %r15d,%eax + movl %r8d,%r13d + addl %eax,%r14d + vmovdqa %xmm6,48(%rsp) + cmpb $0,131(%rbp) + jne L$avx_00_47 + shrdl $14,%r13d,%r13d + movl %r14d,%eax + movl %r9d,%r12d + shrdl $9,%r14d,%r14d + xorl %r8d,%r13d + xorl %r10d,%r12d + shrdl $5,%r13d,%r13d + xorl %eax,%r14d + andl %r8d,%r12d + xorl %r8d,%r13d + addl 0(%rsp),%r11d + movl %eax,%r15d + xorl %r10d,%r12d + shrdl $11,%r14d,%r14d + xorl %ebx,%r15d + addl %r12d,%r11d + shrdl $6,%r13d,%r13d + andl %r15d,%edi + xorl %eax,%r14d + addl %r13d,%r11d + xorl %ebx,%edi + shrdl $2,%r14d,%r14d + addl %r11d,%edx + addl %edi,%r11d + movl %edx,%r13d + addl %r11d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r11d + movl %r8d,%r12d + shrdl $9,%r14d,%r14d + xorl %edx,%r13d + xorl %r9d,%r12d + shrdl $5,%r13d,%r13d + xorl %r11d,%r14d + andl %edx,%r12d + xorl %edx,%r13d + addl 4(%rsp),%r10d + movl %r11d,%edi + xorl %r9d,%r12d + shrdl $11,%r14d,%r14d + xorl %eax,%edi + addl %r12d,%r10d + shrdl $6,%r13d,%r13d + andl %edi,%r15d + xorl %r11d,%r14d + addl %r13d,%r10d + xorl %eax,%r15d + shrdl $2,%r14d,%r14d + addl %r10d,%ecx + addl %r15d,%r10d + movl %ecx,%r13d + addl %r10d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r10d + movl %edx,%r12d + shrdl $9,%r14d,%r14d + xorl %ecx,%r13d + xorl %r8d,%r12d + shrdl $5,%r13d,%r13d + xorl %r10d,%r14d + andl %ecx,%r12d + xorl %ecx,%r13d + addl 8(%rsp),%r9d + movl %r10d,%r15d + xorl %r8d,%r12d + shrdl $11,%r14d,%r14d + xorl %r11d,%r15d + addl %r12d,%r9d + shrdl $6,%r13d,%r13d + andl %r15d,%edi + xorl %r10d,%r14d + addl %r13d,%r9d + xorl %r11d,%edi + shrdl $2,%r14d,%r14d + addl %r9d,%ebx + addl %edi,%r9d + movl %ebx,%r13d + addl %r9d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r9d + movl %ecx,%r12d + shrdl $9,%r14d,%r14d + xorl %ebx,%r13d + xorl %edx,%r12d + shrdl $5,%r13d,%r13d + xorl %r9d,%r14d + andl %ebx,%r12d + xorl %ebx,%r13d + addl 12(%rsp),%r8d + movl %r9d,%edi + xorl %edx,%r12d + shrdl $11,%r14d,%r14d + xorl %r10d,%edi + addl %r12d,%r8d + shrdl $6,%r13d,%r13d + andl %edi,%r15d + xorl %r9d,%r14d + addl %r13d,%r8d + xorl %r10d,%r15d + shrdl $2,%r14d,%r14d + addl %r8d,%eax + addl %r15d,%r8d + movl %eax,%r13d + addl %r8d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r8d + movl %ebx,%r12d + shrdl $9,%r14d,%r14d + xorl %eax,%r13d + xorl %ecx,%r12d + shrdl $5,%r13d,%r13d + xorl %r8d,%r14d + andl %eax,%r12d + xorl %eax,%r13d + addl 16(%rsp),%edx + movl %r8d,%r15d + xorl %ecx,%r12d + shrdl $11,%r14d,%r14d + xorl %r9d,%r15d + addl %r12d,%edx + shrdl $6,%r13d,%r13d + andl %r15d,%edi + xorl %r8d,%r14d + addl %r13d,%edx + xorl %r9d,%edi + shrdl $2,%r14d,%r14d + addl %edx,%r11d + addl %edi,%edx + movl %r11d,%r13d + addl %edx,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%edx + movl %eax,%r12d + shrdl $9,%r14d,%r14d + xorl %r11d,%r13d + xorl %ebx,%r12d + shrdl $5,%r13d,%r13d + xorl %edx,%r14d + andl %r11d,%r12d + xorl %r11d,%r13d + addl 20(%rsp),%ecx + movl %edx,%edi + xorl %ebx,%r12d + shrdl $11,%r14d,%r14d + xorl %r8d,%edi + addl %r12d,%ecx + shrdl $6,%r13d,%r13d + andl %edi,%r15d + xorl %edx,%r14d + addl %r13d,%ecx + xorl %r8d,%r15d + shrdl $2,%r14d,%r14d + addl %ecx,%r10d + addl %r15d,%ecx + movl %r10d,%r13d + addl %ecx,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%ecx + movl %r11d,%r12d + shrdl $9,%r14d,%r14d + xorl %r10d,%r13d + xorl %eax,%r12d + shrdl $5,%r13d,%r13d + xorl %ecx,%r14d + andl %r10d,%r12d + xorl %r10d,%r13d + addl 24(%rsp),%ebx + movl %ecx,%r15d + xorl %eax,%r12d + shrdl $11,%r14d,%r14d + xorl %edx,%r15d + addl %r12d,%ebx + shrdl $6,%r13d,%r13d + andl %r15d,%edi + xorl %ecx,%r14d + addl %r13d,%ebx + xorl %edx,%edi + shrdl $2,%r14d,%r14d + addl %ebx,%r9d + addl %edi,%ebx + movl %r9d,%r13d + addl %ebx,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%ebx + movl %r10d,%r12d + shrdl $9,%r14d,%r14d + xorl %r9d,%r13d + xorl %r11d,%r12d + shrdl $5,%r13d,%r13d + xorl %ebx,%r14d + andl %r9d,%r12d + xorl %r9d,%r13d + addl 28(%rsp),%eax + movl %ebx,%edi + xorl %r11d,%r12d + shrdl $11,%r14d,%r14d + xorl %ecx,%edi + addl %r12d,%eax + shrdl $6,%r13d,%r13d + andl %edi,%r15d + xorl %ebx,%r14d + addl %r13d,%eax + xorl %ecx,%r15d + shrdl $2,%r14d,%r14d + addl %eax,%r8d + addl %r15d,%eax + movl %r8d,%r13d + addl %eax,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%eax + movl %r9d,%r12d + shrdl $9,%r14d,%r14d + xorl %r8d,%r13d + xorl %r10d,%r12d + shrdl $5,%r13d,%r13d + xorl %eax,%r14d + andl %r8d,%r12d + xorl %r8d,%r13d + addl 32(%rsp),%r11d + movl %eax,%r15d + xorl %r10d,%r12d + shrdl $11,%r14d,%r14d + xorl %ebx,%r15d + addl %r12d,%r11d + shrdl $6,%r13d,%r13d + andl %r15d,%edi + xorl %eax,%r14d + addl %r13d,%r11d + xorl %ebx,%edi + shrdl $2,%r14d,%r14d + addl %r11d,%edx + addl %edi,%r11d + movl %edx,%r13d + addl %r11d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r11d + movl %r8d,%r12d + shrdl $9,%r14d,%r14d + xorl %edx,%r13d + xorl %r9d,%r12d + shrdl $5,%r13d,%r13d + xorl %r11d,%r14d + andl %edx,%r12d + xorl %edx,%r13d + addl 36(%rsp),%r10d + movl %r11d,%edi + xorl %r9d,%r12d + shrdl $11,%r14d,%r14d + xorl %eax,%edi + addl %r12d,%r10d + shrdl $6,%r13d,%r13d + andl %edi,%r15d + xorl %r11d,%r14d + addl %r13d,%r10d + xorl %eax,%r15d + shrdl $2,%r14d,%r14d + addl %r10d,%ecx + addl %r15d,%r10d + movl %ecx,%r13d + addl %r10d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r10d + movl %edx,%r12d + shrdl $9,%r14d,%r14d + xorl %ecx,%r13d + xorl %r8d,%r12d + shrdl $5,%r13d,%r13d + xorl %r10d,%r14d + andl %ecx,%r12d + xorl %ecx,%r13d + addl 40(%rsp),%r9d + movl %r10d,%r15d + xorl %r8d,%r12d + shrdl $11,%r14d,%r14d + xorl %r11d,%r15d + addl %r12d,%r9d + shrdl $6,%r13d,%r13d + andl %r15d,%edi + xorl %r10d,%r14d + addl %r13d,%r9d + xorl %r11d,%edi + shrdl $2,%r14d,%r14d + addl %r9d,%ebx + addl %edi,%r9d + movl %ebx,%r13d + addl %r9d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r9d + movl %ecx,%r12d + shrdl $9,%r14d,%r14d + xorl %ebx,%r13d + xorl %edx,%r12d + shrdl $5,%r13d,%r13d + xorl %r9d,%r14d + andl %ebx,%r12d + xorl %ebx,%r13d + addl 44(%rsp),%r8d + movl %r9d,%edi + xorl %edx,%r12d + shrdl $11,%r14d,%r14d + xorl %r10d,%edi + addl %r12d,%r8d + shrdl $6,%r13d,%r13d + andl %edi,%r15d + xorl %r9d,%r14d + addl %r13d,%r8d + xorl %r10d,%r15d + shrdl $2,%r14d,%r14d + addl %r8d,%eax + addl %r15d,%r8d + movl %eax,%r13d + addl %r8d,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%r8d + movl %ebx,%r12d + shrdl $9,%r14d,%r14d + xorl %eax,%r13d + xorl %ecx,%r12d + shrdl $5,%r13d,%r13d + xorl %r8d,%r14d + andl %eax,%r12d + xorl %eax,%r13d + addl 48(%rsp),%edx + movl %r8d,%r15d + xorl %ecx,%r12d + shrdl $11,%r14d,%r14d + xorl %r9d,%r15d + addl %r12d,%edx + shrdl $6,%r13d,%r13d + andl %r15d,%edi + xorl %r8d,%r14d + addl %r13d,%edx + xorl %r9d,%edi + shrdl $2,%r14d,%r14d + addl %edx,%r11d + addl %edi,%edx + movl %r11d,%r13d + addl %edx,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%edx + movl %eax,%r12d + shrdl $9,%r14d,%r14d + xorl %r11d,%r13d + xorl %ebx,%r12d + shrdl $5,%r13d,%r13d + xorl %edx,%r14d + andl %r11d,%r12d + xorl %r11d,%r13d + addl 52(%rsp),%ecx + movl %edx,%edi + xorl %ebx,%r12d + shrdl $11,%r14d,%r14d + xorl %r8d,%edi + addl %r12d,%ecx + shrdl $6,%r13d,%r13d + andl %edi,%r15d + xorl %edx,%r14d + addl %r13d,%ecx + xorl %r8d,%r15d + shrdl $2,%r14d,%r14d + addl %ecx,%r10d + addl %r15d,%ecx + movl %r10d,%r13d + addl %ecx,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%ecx + movl %r11d,%r12d + shrdl $9,%r14d,%r14d + xorl %r10d,%r13d + xorl %eax,%r12d + shrdl $5,%r13d,%r13d + xorl %ecx,%r14d + andl %r10d,%r12d + xorl %r10d,%r13d + addl 56(%rsp),%ebx + movl %ecx,%r15d + xorl %eax,%r12d + shrdl $11,%r14d,%r14d + xorl %edx,%r15d + addl %r12d,%ebx + shrdl $6,%r13d,%r13d + andl %r15d,%edi + xorl %ecx,%r14d + addl %r13d,%ebx + xorl %edx,%edi + shrdl $2,%r14d,%r14d + addl %ebx,%r9d + addl %edi,%ebx + movl %r9d,%r13d + addl %ebx,%r14d + shrdl $14,%r13d,%r13d + movl %r14d,%ebx + movl %r10d,%r12d + shrdl $9,%r14d,%r14d + xorl %r9d,%r13d + xorl %r11d,%r12d + shrdl $5,%r13d,%r13d + xorl %ebx,%r14d + andl %r9d,%r12d + xorl %r9d,%r13d + addl 60(%rsp),%eax + movl %ebx,%edi + xorl %r11d,%r12d + shrdl $11,%r14d,%r14d + xorl %ecx,%edi + addl %r12d,%eax + shrdl $6,%r13d,%r13d + andl %edi,%r15d + xorl %ebx,%r14d + addl %r13d,%eax + xorl %ecx,%r15d + shrdl $2,%r14d,%r14d + addl %eax,%r8d + addl %r15d,%eax + movl %r8d,%r13d + addl %eax,%r14d + movq 64+0(%rsp),%rdi + movl %r14d,%eax + + addl 0(%rdi),%eax + leaq 64(%rsi),%rsi + addl 4(%rdi),%ebx + addl 8(%rdi),%ecx + addl 12(%rdi),%edx + addl 16(%rdi),%r8d + addl 20(%rdi),%r9d + addl 24(%rdi),%r10d + addl 28(%rdi),%r11d + + cmpq 64+16(%rsp),%rsi + + movl %eax,0(%rdi) + movl %ebx,4(%rdi) + movl %ecx,8(%rdi) + movl %edx,12(%rdi) + movl %r8d,16(%rdi) + movl %r9d,20(%rdi) + movl %r10d,24(%rdi) + movl %r11d,28(%rdi) + jb L$loop_avx + + movq 88(%rsp),%rsi + + vzeroupper + movq -48(%rsi),%r15 + + movq -40(%rsi),%r14 + + movq -32(%rsi),%r13 + + movq -24(%rsi),%r12 + + movq -16(%rsi),%rbp + + movq -8(%rsi),%rbx + + leaq (%rsi),%rsp + +L$epilogue_avx: + .byte 0xf3,0xc3 + + + +.p2align 6 +sha256_block_data_order_avx2: + +L$avx2_shortcut: + movq %rsp,%rax + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + subq $544,%rsp + shlq $4,%rdx + andq $-1024,%rsp + leaq (%rsi,%rdx,4),%rdx + addq $448,%rsp + movq %rdi,64+0(%rsp) + movq %rsi,64+8(%rsp) + movq %rdx,64+16(%rsp) + movq %rax,88(%rsp) + +L$prologue_avx2: + + vzeroupper + subq $-64,%rsi + movl 0(%rdi),%eax + movq %rsi,%r12 + movl 4(%rdi),%ebx + cmpq %rdx,%rsi + movl 8(%rdi),%ecx + cmoveq %rsp,%r12 + movl 12(%rdi),%edx + movl 16(%rdi),%r8d + movl 20(%rdi),%r9d + movl 24(%rdi),%r10d + movl 28(%rdi),%r11d + vmovdqa K256+512+32(%rip),%ymm8 + vmovdqa K256+512+64(%rip),%ymm9 + jmp L$oop_avx2 +.p2align 4 +L$oop_avx2: + vmovdqa K256+512(%rip),%ymm7 + vmovdqu -64+0(%rsi),%xmm0 + vmovdqu -64+16(%rsi),%xmm1 + vmovdqu -64+32(%rsi),%xmm2 + vmovdqu -64+48(%rsi),%xmm3 + + vinserti128 $1,(%r12),%ymm0,%ymm0 + vinserti128 $1,16(%r12),%ymm1,%ymm1 + vpshufb %ymm7,%ymm0,%ymm0 + vinserti128 $1,32(%r12),%ymm2,%ymm2 + vpshufb %ymm7,%ymm1,%ymm1 + vinserti128 $1,48(%r12),%ymm3,%ymm3 + + leaq K256(%rip),%rbp + vpshufb %ymm7,%ymm2,%ymm2 + vpaddd 0(%rbp),%ymm0,%ymm4 + vpshufb %ymm7,%ymm3,%ymm3 + vpaddd 32(%rbp),%ymm1,%ymm5 + vpaddd 64(%rbp),%ymm2,%ymm6 + vpaddd 96(%rbp),%ymm3,%ymm7 + vmovdqa %ymm4,0(%rsp) + xorl %r14d,%r14d + vmovdqa %ymm5,32(%rsp) + + movq 88(%rsp),%rdi + + leaq -64(%rsp),%rsp + + + + movq %rdi,-8(%rsp) + + movl %ebx,%edi + vmovdqa %ymm6,0(%rsp) + xorl %ecx,%edi + vmovdqa %ymm7,32(%rsp) + movl %r9d,%r12d + subq $-32*4,%rbp + jmp L$avx2_00_47 + +.p2align 4 +L$avx2_00_47: + leaq -64(%rsp),%rsp + + + pushq 64-8(%rsp) + + leaq 8(%rsp),%rsp + + vpalignr $4,%ymm0,%ymm1,%ymm4 + addl 0+128(%rsp),%r11d + andl %r8d,%r12d + rorxl $25,%r8d,%r13d + vpalignr $4,%ymm2,%ymm3,%ymm7 + rorxl $11,%r8d,%r15d + leal (%rax,%r14,1),%eax + leal (%r11,%r12,1),%r11d + vpsrld $7,%ymm4,%ymm6 + andnl %r10d,%r8d,%r12d + xorl %r15d,%r13d + rorxl $6,%r8d,%r14d + vpaddd %ymm7,%ymm0,%ymm0 + leal (%r11,%r12,1),%r11d + xorl %r14d,%r13d + movl %eax,%r15d + vpsrld $3,%ymm4,%ymm7 + rorxl $22,%eax,%r12d + leal (%r11,%r13,1),%r11d + xorl %ebx,%r15d + vpslld $14,%ymm4,%ymm5 + rorxl $13,%eax,%r14d + rorxl $2,%eax,%r13d + leal (%rdx,%r11,1),%edx + vpxor %ymm6,%ymm7,%ymm4 + andl %r15d,%edi + xorl %r12d,%r14d + xorl %ebx,%edi + vpshufd $250,%ymm3,%ymm7 + xorl %r13d,%r14d + leal (%r11,%rdi,1),%r11d + movl %r8d,%r12d + vpsrld $11,%ymm6,%ymm6 + addl 4+128(%rsp),%r10d + andl %edx,%r12d + rorxl $25,%edx,%r13d + vpxor %ymm5,%ymm4,%ymm4 + rorxl $11,%edx,%edi + leal (%r11,%r14,1),%r11d + leal (%r10,%r12,1),%r10d + vpslld $11,%ymm5,%ymm5 + andnl %r9d,%edx,%r12d + xorl %edi,%r13d + rorxl $6,%edx,%r14d + vpxor %ymm6,%ymm4,%ymm4 + leal (%r10,%r12,1),%r10d + xorl %r14d,%r13d + movl %r11d,%edi + vpsrld $10,%ymm7,%ymm6 + rorxl $22,%r11d,%r12d + leal (%r10,%r13,1),%r10d + xorl %eax,%edi + vpxor %ymm5,%ymm4,%ymm4 + rorxl $13,%r11d,%r14d + rorxl $2,%r11d,%r13d + leal (%rcx,%r10,1),%ecx + vpsrlq $17,%ymm7,%ymm7 + andl %edi,%r15d + xorl %r12d,%r14d + xorl %eax,%r15d + vpaddd %ymm4,%ymm0,%ymm0 + xorl %r13d,%r14d + leal (%r10,%r15,1),%r10d + movl %edx,%r12d + vpxor %ymm7,%ymm6,%ymm6 + addl 8+128(%rsp),%r9d + andl %ecx,%r12d + rorxl $25,%ecx,%r13d + vpsrlq $2,%ymm7,%ymm7 + rorxl $11,%ecx,%r15d + leal (%r10,%r14,1),%r10d + leal (%r9,%r12,1),%r9d + vpxor %ymm7,%ymm6,%ymm6 + andnl %r8d,%ecx,%r12d + xorl %r15d,%r13d + rorxl $6,%ecx,%r14d + vpshufb %ymm8,%ymm6,%ymm6 + leal (%r9,%r12,1),%r9d + xorl %r14d,%r13d + movl %r10d,%r15d + vpaddd %ymm6,%ymm0,%ymm0 + rorxl $22,%r10d,%r12d + leal (%r9,%r13,1),%r9d + xorl %r11d,%r15d + vpshufd $80,%ymm0,%ymm7 + rorxl $13,%r10d,%r14d + rorxl $2,%r10d,%r13d + leal (%rbx,%r9,1),%ebx + vpsrld $10,%ymm7,%ymm6 + andl %r15d,%edi + xorl %r12d,%r14d + xorl %r11d,%edi + vpsrlq $17,%ymm7,%ymm7 + xorl %r13d,%r14d + leal (%r9,%rdi,1),%r9d + movl %ecx,%r12d + vpxor %ymm7,%ymm6,%ymm6 + addl 12+128(%rsp),%r8d + andl %ebx,%r12d + rorxl $25,%ebx,%r13d + vpsrlq $2,%ymm7,%ymm7 + rorxl $11,%ebx,%edi + leal (%r9,%r14,1),%r9d + leal (%r8,%r12,1),%r8d + vpxor %ymm7,%ymm6,%ymm6 + andnl %edx,%ebx,%r12d + xorl %edi,%r13d + rorxl $6,%ebx,%r14d + vpshufb %ymm9,%ymm6,%ymm6 + leal (%r8,%r12,1),%r8d + xorl %r14d,%r13d + movl %r9d,%edi + vpaddd %ymm6,%ymm0,%ymm0 + rorxl $22,%r9d,%r12d + leal (%r8,%r13,1),%r8d + xorl %r10d,%edi + vpaddd 0(%rbp),%ymm0,%ymm6 + rorxl $13,%r9d,%r14d + rorxl $2,%r9d,%r13d + leal (%rax,%r8,1),%eax + andl %edi,%r15d + xorl %r12d,%r14d + xorl %r10d,%r15d + xorl %r13d,%r14d + leal (%r8,%r15,1),%r8d + movl %ebx,%r12d + vmovdqa %ymm6,0(%rsp) + vpalignr $4,%ymm1,%ymm2,%ymm4 + addl 32+128(%rsp),%edx + andl %eax,%r12d + rorxl $25,%eax,%r13d + vpalignr $4,%ymm3,%ymm0,%ymm7 + rorxl $11,%eax,%r15d + leal (%r8,%r14,1),%r8d + leal (%rdx,%r12,1),%edx + vpsrld $7,%ymm4,%ymm6 + andnl %ecx,%eax,%r12d + xorl %r15d,%r13d + rorxl $6,%eax,%r14d + vpaddd %ymm7,%ymm1,%ymm1 + leal (%rdx,%r12,1),%edx + xorl %r14d,%r13d + movl %r8d,%r15d + vpsrld $3,%ymm4,%ymm7 + rorxl $22,%r8d,%r12d + leal (%rdx,%r13,1),%edx + xorl %r9d,%r15d + vpslld $14,%ymm4,%ymm5 + rorxl $13,%r8d,%r14d + rorxl $2,%r8d,%r13d + leal (%r11,%rdx,1),%r11d + vpxor %ymm6,%ymm7,%ymm4 + andl %r15d,%edi + xorl %r12d,%r14d + xorl %r9d,%edi + vpshufd $250,%ymm0,%ymm7 + xorl %r13d,%r14d + leal (%rdx,%rdi,1),%edx + movl %eax,%r12d + vpsrld $11,%ymm6,%ymm6 + addl 36+128(%rsp),%ecx + andl %r11d,%r12d + rorxl $25,%r11d,%r13d + vpxor %ymm5,%ymm4,%ymm4 + rorxl $11,%r11d,%edi + leal (%rdx,%r14,1),%edx + leal (%rcx,%r12,1),%ecx + vpslld $11,%ymm5,%ymm5 + andnl %ebx,%r11d,%r12d + xorl %edi,%r13d + rorxl $6,%r11d,%r14d + vpxor %ymm6,%ymm4,%ymm4 + leal (%rcx,%r12,1),%ecx + xorl %r14d,%r13d + movl %edx,%edi + vpsrld $10,%ymm7,%ymm6 + rorxl $22,%edx,%r12d + leal (%rcx,%r13,1),%ecx + xorl %r8d,%edi + vpxor %ymm5,%ymm4,%ymm4 + rorxl $13,%edx,%r14d + rorxl $2,%edx,%r13d + leal (%r10,%rcx,1),%r10d + vpsrlq $17,%ymm7,%ymm7 + andl %edi,%r15d + xorl %r12d,%r14d + xorl %r8d,%r15d + vpaddd %ymm4,%ymm1,%ymm1 + xorl %r13d,%r14d + leal (%rcx,%r15,1),%ecx + movl %r11d,%r12d + vpxor %ymm7,%ymm6,%ymm6 + addl 40+128(%rsp),%ebx + andl %r10d,%r12d + rorxl $25,%r10d,%r13d + vpsrlq $2,%ymm7,%ymm7 + rorxl $11,%r10d,%r15d + leal (%rcx,%r14,1),%ecx + leal (%rbx,%r12,1),%ebx + vpxor %ymm7,%ymm6,%ymm6 + andnl %eax,%r10d,%r12d + xorl %r15d,%r13d + rorxl $6,%r10d,%r14d + vpshufb %ymm8,%ymm6,%ymm6 + leal (%rbx,%r12,1),%ebx + xorl %r14d,%r13d + movl %ecx,%r15d + vpaddd %ymm6,%ymm1,%ymm1 + rorxl $22,%ecx,%r12d + leal (%rbx,%r13,1),%ebx + xorl %edx,%r15d + vpshufd $80,%ymm1,%ymm7 + rorxl $13,%ecx,%r14d + rorxl $2,%ecx,%r13d + leal (%r9,%rbx,1),%r9d + vpsrld $10,%ymm7,%ymm6 + andl %r15d,%edi + xorl %r12d,%r14d + xorl %edx,%edi + vpsrlq $17,%ymm7,%ymm7 + xorl %r13d,%r14d + leal (%rbx,%rdi,1),%ebx + movl %r10d,%r12d + vpxor %ymm7,%ymm6,%ymm6 + addl 44+128(%rsp),%eax + andl %r9d,%r12d + rorxl $25,%r9d,%r13d + vpsrlq $2,%ymm7,%ymm7 + rorxl $11,%r9d,%edi + leal (%rbx,%r14,1),%ebx + leal (%rax,%r12,1),%eax + vpxor %ymm7,%ymm6,%ymm6 + andnl %r11d,%r9d,%r12d + xorl %edi,%r13d + rorxl $6,%r9d,%r14d + vpshufb %ymm9,%ymm6,%ymm6 + leal (%rax,%r12,1),%eax + xorl %r14d,%r13d + movl %ebx,%edi + vpaddd %ymm6,%ymm1,%ymm1 + rorxl $22,%ebx,%r12d + leal (%rax,%r13,1),%eax + xorl %ecx,%edi + vpaddd 32(%rbp),%ymm1,%ymm6 + rorxl $13,%ebx,%r14d + rorxl $2,%ebx,%r13d + leal (%r8,%rax,1),%r8d + andl %edi,%r15d + xorl %r12d,%r14d + xorl %ecx,%r15d + xorl %r13d,%r14d + leal (%rax,%r15,1),%eax + movl %r9d,%r12d + vmovdqa %ymm6,32(%rsp) + leaq -64(%rsp),%rsp + + + pushq 64-8(%rsp) + + leaq 8(%rsp),%rsp + + vpalignr $4,%ymm2,%ymm3,%ymm4 + addl 0+128(%rsp),%r11d + andl %r8d,%r12d + rorxl $25,%r8d,%r13d + vpalignr $4,%ymm0,%ymm1,%ymm7 + rorxl $11,%r8d,%r15d + leal (%rax,%r14,1),%eax + leal (%r11,%r12,1),%r11d + vpsrld $7,%ymm4,%ymm6 + andnl %r10d,%r8d,%r12d + xorl %r15d,%r13d + rorxl $6,%r8d,%r14d + vpaddd %ymm7,%ymm2,%ymm2 + leal (%r11,%r12,1),%r11d + xorl %r14d,%r13d + movl %eax,%r15d + vpsrld $3,%ymm4,%ymm7 + rorxl $22,%eax,%r12d + leal (%r11,%r13,1),%r11d + xorl %ebx,%r15d + vpslld $14,%ymm4,%ymm5 + rorxl $13,%eax,%r14d + rorxl $2,%eax,%r13d + leal (%rdx,%r11,1),%edx + vpxor %ymm6,%ymm7,%ymm4 + andl %r15d,%edi + xorl %r12d,%r14d + xorl %ebx,%edi + vpshufd $250,%ymm1,%ymm7 + xorl %r13d,%r14d + leal (%r11,%rdi,1),%r11d + movl %r8d,%r12d + vpsrld $11,%ymm6,%ymm6 + addl 4+128(%rsp),%r10d + andl %edx,%r12d + rorxl $25,%edx,%r13d + vpxor %ymm5,%ymm4,%ymm4 + rorxl $11,%edx,%edi + leal (%r11,%r14,1),%r11d + leal (%r10,%r12,1),%r10d + vpslld $11,%ymm5,%ymm5 + andnl %r9d,%edx,%r12d + xorl %edi,%r13d + rorxl $6,%edx,%r14d + vpxor %ymm6,%ymm4,%ymm4 + leal (%r10,%r12,1),%r10d + xorl %r14d,%r13d + movl %r11d,%edi + vpsrld $10,%ymm7,%ymm6 + rorxl $22,%r11d,%r12d + leal (%r10,%r13,1),%r10d + xorl %eax,%edi + vpxor %ymm5,%ymm4,%ymm4 + rorxl $13,%r11d,%r14d + rorxl $2,%r11d,%r13d + leal (%rcx,%r10,1),%ecx + vpsrlq $17,%ymm7,%ymm7 + andl %edi,%r15d + xorl %r12d,%r14d + xorl %eax,%r15d + vpaddd %ymm4,%ymm2,%ymm2 + xorl %r13d,%r14d + leal (%r10,%r15,1),%r10d + movl %edx,%r12d + vpxor %ymm7,%ymm6,%ymm6 + addl 8+128(%rsp),%r9d + andl %ecx,%r12d + rorxl $25,%ecx,%r13d + vpsrlq $2,%ymm7,%ymm7 + rorxl $11,%ecx,%r15d + leal (%r10,%r14,1),%r10d + leal (%r9,%r12,1),%r9d + vpxor %ymm7,%ymm6,%ymm6 + andnl %r8d,%ecx,%r12d + xorl %r15d,%r13d + rorxl $6,%ecx,%r14d + vpshufb %ymm8,%ymm6,%ymm6 + leal (%r9,%r12,1),%r9d + xorl %r14d,%r13d + movl %r10d,%r15d + vpaddd %ymm6,%ymm2,%ymm2 + rorxl $22,%r10d,%r12d + leal (%r9,%r13,1),%r9d + xorl %r11d,%r15d + vpshufd $80,%ymm2,%ymm7 + rorxl $13,%r10d,%r14d + rorxl $2,%r10d,%r13d + leal (%rbx,%r9,1),%ebx + vpsrld $10,%ymm7,%ymm6 + andl %r15d,%edi + xorl %r12d,%r14d + xorl %r11d,%edi + vpsrlq $17,%ymm7,%ymm7 + xorl %r13d,%r14d + leal (%r9,%rdi,1),%r9d + movl %ecx,%r12d + vpxor %ymm7,%ymm6,%ymm6 + addl 12+128(%rsp),%r8d + andl %ebx,%r12d + rorxl $25,%ebx,%r13d + vpsrlq $2,%ymm7,%ymm7 + rorxl $11,%ebx,%edi + leal (%r9,%r14,1),%r9d + leal (%r8,%r12,1),%r8d + vpxor %ymm7,%ymm6,%ymm6 + andnl %edx,%ebx,%r12d + xorl %edi,%r13d + rorxl $6,%ebx,%r14d + vpshufb %ymm9,%ymm6,%ymm6 + leal (%r8,%r12,1),%r8d + xorl %r14d,%r13d + movl %r9d,%edi + vpaddd %ymm6,%ymm2,%ymm2 + rorxl $22,%r9d,%r12d + leal (%r8,%r13,1),%r8d + xorl %r10d,%edi + vpaddd 64(%rbp),%ymm2,%ymm6 + rorxl $13,%r9d,%r14d + rorxl $2,%r9d,%r13d + leal (%rax,%r8,1),%eax + andl %edi,%r15d + xorl %r12d,%r14d + xorl %r10d,%r15d + xorl %r13d,%r14d + leal (%r8,%r15,1),%r8d + movl %ebx,%r12d + vmovdqa %ymm6,0(%rsp) + vpalignr $4,%ymm3,%ymm0,%ymm4 + addl 32+128(%rsp),%edx + andl %eax,%r12d + rorxl $25,%eax,%r13d + vpalignr $4,%ymm1,%ymm2,%ymm7 + rorxl $11,%eax,%r15d + leal (%r8,%r14,1),%r8d + leal (%rdx,%r12,1),%edx + vpsrld $7,%ymm4,%ymm6 + andnl %ecx,%eax,%r12d + xorl %r15d,%r13d + rorxl $6,%eax,%r14d + vpaddd %ymm7,%ymm3,%ymm3 + leal (%rdx,%r12,1),%edx + xorl %r14d,%r13d + movl %r8d,%r15d + vpsrld $3,%ymm4,%ymm7 + rorxl $22,%r8d,%r12d + leal (%rdx,%r13,1),%edx + xorl %r9d,%r15d + vpslld $14,%ymm4,%ymm5 + rorxl $13,%r8d,%r14d + rorxl $2,%r8d,%r13d + leal (%r11,%rdx,1),%r11d + vpxor %ymm6,%ymm7,%ymm4 + andl %r15d,%edi + xorl %r12d,%r14d + xorl %r9d,%edi + vpshufd $250,%ymm2,%ymm7 + xorl %r13d,%r14d + leal (%rdx,%rdi,1),%edx + movl %eax,%r12d + vpsrld $11,%ymm6,%ymm6 + addl 36+128(%rsp),%ecx + andl %r11d,%r12d + rorxl $25,%r11d,%r13d + vpxor %ymm5,%ymm4,%ymm4 + rorxl $11,%r11d,%edi + leal (%rdx,%r14,1),%edx + leal (%rcx,%r12,1),%ecx + vpslld $11,%ymm5,%ymm5 + andnl %ebx,%r11d,%r12d + xorl %edi,%r13d + rorxl $6,%r11d,%r14d + vpxor %ymm6,%ymm4,%ymm4 + leal (%rcx,%r12,1),%ecx + xorl %r14d,%r13d + movl %edx,%edi + vpsrld $10,%ymm7,%ymm6 + rorxl $22,%edx,%r12d + leal (%rcx,%r13,1),%ecx + xorl %r8d,%edi + vpxor %ymm5,%ymm4,%ymm4 + rorxl $13,%edx,%r14d + rorxl $2,%edx,%r13d + leal (%r10,%rcx,1),%r10d + vpsrlq $17,%ymm7,%ymm7 + andl %edi,%r15d + xorl %r12d,%r14d + xorl %r8d,%r15d + vpaddd %ymm4,%ymm3,%ymm3 + xorl %r13d,%r14d + leal (%rcx,%r15,1),%ecx + movl %r11d,%r12d + vpxor %ymm7,%ymm6,%ymm6 + addl 40+128(%rsp),%ebx + andl %r10d,%r12d + rorxl $25,%r10d,%r13d + vpsrlq $2,%ymm7,%ymm7 + rorxl $11,%r10d,%r15d + leal (%rcx,%r14,1),%ecx + leal (%rbx,%r12,1),%ebx + vpxor %ymm7,%ymm6,%ymm6 + andnl %eax,%r10d,%r12d + xorl %r15d,%r13d + rorxl $6,%r10d,%r14d + vpshufb %ymm8,%ymm6,%ymm6 + leal (%rbx,%r12,1),%ebx + xorl %r14d,%r13d + movl %ecx,%r15d + vpaddd %ymm6,%ymm3,%ymm3 + rorxl $22,%ecx,%r12d + leal (%rbx,%r13,1),%ebx + xorl %edx,%r15d + vpshufd $80,%ymm3,%ymm7 + rorxl $13,%ecx,%r14d + rorxl $2,%ecx,%r13d + leal (%r9,%rbx,1),%r9d + vpsrld $10,%ymm7,%ymm6 + andl %r15d,%edi + xorl %r12d,%r14d + xorl %edx,%edi + vpsrlq $17,%ymm7,%ymm7 + xorl %r13d,%r14d + leal (%rbx,%rdi,1),%ebx + movl %r10d,%r12d + vpxor %ymm7,%ymm6,%ymm6 + addl 44+128(%rsp),%eax + andl %r9d,%r12d + rorxl $25,%r9d,%r13d + vpsrlq $2,%ymm7,%ymm7 + rorxl $11,%r9d,%edi + leal (%rbx,%r14,1),%ebx + leal (%rax,%r12,1),%eax + vpxor %ymm7,%ymm6,%ymm6 + andnl %r11d,%r9d,%r12d + xorl %edi,%r13d + rorxl $6,%r9d,%r14d + vpshufb %ymm9,%ymm6,%ymm6 + leal (%rax,%r12,1),%eax + xorl %r14d,%r13d + movl %ebx,%edi + vpaddd %ymm6,%ymm3,%ymm3 + rorxl $22,%ebx,%r12d + leal (%rax,%r13,1),%eax + xorl %ecx,%edi + vpaddd 96(%rbp),%ymm3,%ymm6 + rorxl $13,%ebx,%r14d + rorxl $2,%ebx,%r13d + leal (%r8,%rax,1),%r8d + andl %edi,%r15d + xorl %r12d,%r14d + xorl %ecx,%r15d + xorl %r13d,%r14d + leal (%rax,%r15,1),%eax + movl %r9d,%r12d + vmovdqa %ymm6,32(%rsp) + leaq 128(%rbp),%rbp + cmpb $0,3(%rbp) + jne L$avx2_00_47 + addl 0+64(%rsp),%r11d + andl %r8d,%r12d + rorxl $25,%r8d,%r13d + rorxl $11,%r8d,%r15d + leal (%rax,%r14,1),%eax + leal (%r11,%r12,1),%r11d + andnl %r10d,%r8d,%r12d + xorl %r15d,%r13d + rorxl $6,%r8d,%r14d + leal (%r11,%r12,1),%r11d + xorl %r14d,%r13d + movl %eax,%r15d + rorxl $22,%eax,%r12d + leal (%r11,%r13,1),%r11d + xorl %ebx,%r15d + rorxl $13,%eax,%r14d + rorxl $2,%eax,%r13d + leal (%rdx,%r11,1),%edx + andl %r15d,%edi + xorl %r12d,%r14d + xorl %ebx,%edi + xorl %r13d,%r14d + leal (%r11,%rdi,1),%r11d + movl %r8d,%r12d + addl 4+64(%rsp),%r10d + andl %edx,%r12d + rorxl $25,%edx,%r13d + rorxl $11,%edx,%edi + leal (%r11,%r14,1),%r11d + leal (%r10,%r12,1),%r10d + andnl %r9d,%edx,%r12d + xorl %edi,%r13d + rorxl $6,%edx,%r14d + leal (%r10,%r12,1),%r10d + xorl %r14d,%r13d + movl %r11d,%edi + rorxl $22,%r11d,%r12d + leal (%r10,%r13,1),%r10d + xorl %eax,%edi + rorxl $13,%r11d,%r14d + rorxl $2,%r11d,%r13d + leal (%rcx,%r10,1),%ecx + andl %edi,%r15d + xorl %r12d,%r14d + xorl %eax,%r15d + xorl %r13d,%r14d + leal (%r10,%r15,1),%r10d + movl %edx,%r12d + addl 8+64(%rsp),%r9d + andl %ecx,%r12d + rorxl $25,%ecx,%r13d + rorxl $11,%ecx,%r15d + leal (%r10,%r14,1),%r10d + leal (%r9,%r12,1),%r9d + andnl %r8d,%ecx,%r12d + xorl %r15d,%r13d + rorxl $6,%ecx,%r14d + leal (%r9,%r12,1),%r9d + xorl %r14d,%r13d + movl %r10d,%r15d + rorxl $22,%r10d,%r12d + leal (%r9,%r13,1),%r9d + xorl %r11d,%r15d + rorxl $13,%r10d,%r14d + rorxl $2,%r10d,%r13d + leal (%rbx,%r9,1),%ebx + andl %r15d,%edi + xorl %r12d,%r14d + xorl %r11d,%edi + xorl %r13d,%r14d + leal (%r9,%rdi,1),%r9d + movl %ecx,%r12d + addl 12+64(%rsp),%r8d + andl %ebx,%r12d + rorxl $25,%ebx,%r13d + rorxl $11,%ebx,%edi + leal (%r9,%r14,1),%r9d + leal (%r8,%r12,1),%r8d + andnl %edx,%ebx,%r12d + xorl %edi,%r13d + rorxl $6,%ebx,%r14d + leal (%r8,%r12,1),%r8d + xorl %r14d,%r13d + movl %r9d,%edi + rorxl $22,%r9d,%r12d + leal (%r8,%r13,1),%r8d + xorl %r10d,%edi + rorxl $13,%r9d,%r14d + rorxl $2,%r9d,%r13d + leal (%rax,%r8,1),%eax + andl %edi,%r15d + xorl %r12d,%r14d + xorl %r10d,%r15d + xorl %r13d,%r14d + leal (%r8,%r15,1),%r8d + movl %ebx,%r12d + addl 32+64(%rsp),%edx + andl %eax,%r12d + rorxl $25,%eax,%r13d + rorxl $11,%eax,%r15d + leal (%r8,%r14,1),%r8d + leal (%rdx,%r12,1),%edx + andnl %ecx,%eax,%r12d + xorl %r15d,%r13d + rorxl $6,%eax,%r14d + leal (%rdx,%r12,1),%edx + xorl %r14d,%r13d + movl %r8d,%r15d + rorxl $22,%r8d,%r12d + leal (%rdx,%r13,1),%edx + xorl %r9d,%r15d + rorxl $13,%r8d,%r14d + rorxl $2,%r8d,%r13d + leal (%r11,%rdx,1),%r11d + andl %r15d,%edi + xorl %r12d,%r14d + xorl %r9d,%edi + xorl %r13d,%r14d + leal (%rdx,%rdi,1),%edx + movl %eax,%r12d + addl 36+64(%rsp),%ecx + andl %r11d,%r12d + rorxl $25,%r11d,%r13d + rorxl $11,%r11d,%edi + leal (%rdx,%r14,1),%edx + leal (%rcx,%r12,1),%ecx + andnl %ebx,%r11d,%r12d + xorl %edi,%r13d + rorxl $6,%r11d,%r14d + leal (%rcx,%r12,1),%ecx + xorl %r14d,%r13d + movl %edx,%edi + rorxl $22,%edx,%r12d + leal (%rcx,%r13,1),%ecx + xorl %r8d,%edi + rorxl $13,%edx,%r14d + rorxl $2,%edx,%r13d + leal (%r10,%rcx,1),%r10d + andl %edi,%r15d + xorl %r12d,%r14d + xorl %r8d,%r15d + xorl %r13d,%r14d + leal (%rcx,%r15,1),%ecx + movl %r11d,%r12d + addl 40+64(%rsp),%ebx + andl %r10d,%r12d + rorxl $25,%r10d,%r13d + rorxl $11,%r10d,%r15d + leal (%rcx,%r14,1),%ecx + leal (%rbx,%r12,1),%ebx + andnl %eax,%r10d,%r12d + xorl %r15d,%r13d + rorxl $6,%r10d,%r14d + leal (%rbx,%r12,1),%ebx + xorl %r14d,%r13d + movl %ecx,%r15d + rorxl $22,%ecx,%r12d + leal (%rbx,%r13,1),%ebx + xorl %edx,%r15d + rorxl $13,%ecx,%r14d + rorxl $2,%ecx,%r13d + leal (%r9,%rbx,1),%r9d + andl %r15d,%edi + xorl %r12d,%r14d + xorl %edx,%edi + xorl %r13d,%r14d + leal (%rbx,%rdi,1),%ebx + movl %r10d,%r12d + addl 44+64(%rsp),%eax + andl %r9d,%r12d + rorxl $25,%r9d,%r13d + rorxl $11,%r9d,%edi + leal (%rbx,%r14,1),%ebx + leal (%rax,%r12,1),%eax + andnl %r11d,%r9d,%r12d + xorl %edi,%r13d + rorxl $6,%r9d,%r14d + leal (%rax,%r12,1),%eax + xorl %r14d,%r13d + movl %ebx,%edi + rorxl $22,%ebx,%r12d + leal (%rax,%r13,1),%eax + xorl %ecx,%edi + rorxl $13,%ebx,%r14d + rorxl $2,%ebx,%r13d + leal (%r8,%rax,1),%r8d + andl %edi,%r15d + xorl %r12d,%r14d + xorl %ecx,%r15d + xorl %r13d,%r14d + leal (%rax,%r15,1),%eax + movl %r9d,%r12d + addl 0(%rsp),%r11d + andl %r8d,%r12d + rorxl $25,%r8d,%r13d + rorxl $11,%r8d,%r15d + leal (%rax,%r14,1),%eax + leal (%r11,%r12,1),%r11d + andnl %r10d,%r8d,%r12d + xorl %r15d,%r13d + rorxl $6,%r8d,%r14d + leal (%r11,%r12,1),%r11d + xorl %r14d,%r13d + movl %eax,%r15d + rorxl $22,%eax,%r12d + leal (%r11,%r13,1),%r11d + xorl %ebx,%r15d + rorxl $13,%eax,%r14d + rorxl $2,%eax,%r13d + leal (%rdx,%r11,1),%edx + andl %r15d,%edi + xorl %r12d,%r14d + xorl %ebx,%edi + xorl %r13d,%r14d + leal (%r11,%rdi,1),%r11d + movl %r8d,%r12d + addl 4(%rsp),%r10d + andl %edx,%r12d + rorxl $25,%edx,%r13d + rorxl $11,%edx,%edi + leal (%r11,%r14,1),%r11d + leal (%r10,%r12,1),%r10d + andnl %r9d,%edx,%r12d + xorl %edi,%r13d + rorxl $6,%edx,%r14d + leal (%r10,%r12,1),%r10d + xorl %r14d,%r13d + movl %r11d,%edi + rorxl $22,%r11d,%r12d + leal (%r10,%r13,1),%r10d + xorl %eax,%edi + rorxl $13,%r11d,%r14d + rorxl $2,%r11d,%r13d + leal (%rcx,%r10,1),%ecx + andl %edi,%r15d + xorl %r12d,%r14d + xorl %eax,%r15d + xorl %r13d,%r14d + leal (%r10,%r15,1),%r10d + movl %edx,%r12d + addl 8(%rsp),%r9d + andl %ecx,%r12d + rorxl $25,%ecx,%r13d + rorxl $11,%ecx,%r15d + leal (%r10,%r14,1),%r10d + leal (%r9,%r12,1),%r9d + andnl %r8d,%ecx,%r12d + xorl %r15d,%r13d + rorxl $6,%ecx,%r14d + leal (%r9,%r12,1),%r9d + xorl %r14d,%r13d + movl %r10d,%r15d + rorxl $22,%r10d,%r12d + leal (%r9,%r13,1),%r9d + xorl %r11d,%r15d + rorxl $13,%r10d,%r14d + rorxl $2,%r10d,%r13d + leal (%rbx,%r9,1),%ebx + andl %r15d,%edi + xorl %r12d,%r14d + xorl %r11d,%edi + xorl %r13d,%r14d + leal (%r9,%rdi,1),%r9d + movl %ecx,%r12d + addl 12(%rsp),%r8d + andl %ebx,%r12d + rorxl $25,%ebx,%r13d + rorxl $11,%ebx,%edi + leal (%r9,%r14,1),%r9d + leal (%r8,%r12,1),%r8d + andnl %edx,%ebx,%r12d + xorl %edi,%r13d + rorxl $6,%ebx,%r14d + leal (%r8,%r12,1),%r8d + xorl %r14d,%r13d + movl %r9d,%edi + rorxl $22,%r9d,%r12d + leal (%r8,%r13,1),%r8d + xorl %r10d,%edi + rorxl $13,%r9d,%r14d + rorxl $2,%r9d,%r13d + leal (%rax,%r8,1),%eax + andl %edi,%r15d + xorl %r12d,%r14d + xorl %r10d,%r15d + xorl %r13d,%r14d + leal (%r8,%r15,1),%r8d + movl %ebx,%r12d + addl 32(%rsp),%edx + andl %eax,%r12d + rorxl $25,%eax,%r13d + rorxl $11,%eax,%r15d + leal (%r8,%r14,1),%r8d + leal (%rdx,%r12,1),%edx + andnl %ecx,%eax,%r12d + xorl %r15d,%r13d + rorxl $6,%eax,%r14d + leal (%rdx,%r12,1),%edx + xorl %r14d,%r13d + movl %r8d,%r15d + rorxl $22,%r8d,%r12d + leal (%rdx,%r13,1),%edx + xorl %r9d,%r15d + rorxl $13,%r8d,%r14d + rorxl $2,%r8d,%r13d + leal (%r11,%rdx,1),%r11d + andl %r15d,%edi + xorl %r12d,%r14d + xorl %r9d,%edi + xorl %r13d,%r14d + leal (%rdx,%rdi,1),%edx + movl %eax,%r12d + addl 36(%rsp),%ecx + andl %r11d,%r12d + rorxl $25,%r11d,%r13d + rorxl $11,%r11d,%edi + leal (%rdx,%r14,1),%edx + leal (%rcx,%r12,1),%ecx + andnl %ebx,%r11d,%r12d + xorl %edi,%r13d + rorxl $6,%r11d,%r14d + leal (%rcx,%r12,1),%ecx + xorl %r14d,%r13d + movl %edx,%edi + rorxl $22,%edx,%r12d + leal (%rcx,%r13,1),%ecx + xorl %r8d,%edi + rorxl $13,%edx,%r14d + rorxl $2,%edx,%r13d + leal (%r10,%rcx,1),%r10d + andl %edi,%r15d + xorl %r12d,%r14d + xorl %r8d,%r15d + xorl %r13d,%r14d + leal (%rcx,%r15,1),%ecx + movl %r11d,%r12d + addl 40(%rsp),%ebx + andl %r10d,%r12d + rorxl $25,%r10d,%r13d + rorxl $11,%r10d,%r15d + leal (%rcx,%r14,1),%ecx + leal (%rbx,%r12,1),%ebx + andnl %eax,%r10d,%r12d + xorl %r15d,%r13d + rorxl $6,%r10d,%r14d + leal (%rbx,%r12,1),%ebx + xorl %r14d,%r13d + movl %ecx,%r15d + rorxl $22,%ecx,%r12d + leal (%rbx,%r13,1),%ebx + xorl %edx,%r15d + rorxl $13,%ecx,%r14d + rorxl $2,%ecx,%r13d + leal (%r9,%rbx,1),%r9d + andl %r15d,%edi + xorl %r12d,%r14d + xorl %edx,%edi + xorl %r13d,%r14d + leal (%rbx,%rdi,1),%ebx + movl %r10d,%r12d + addl 44(%rsp),%eax + andl %r9d,%r12d + rorxl $25,%r9d,%r13d + rorxl $11,%r9d,%edi + leal (%rbx,%r14,1),%ebx + leal (%rax,%r12,1),%eax + andnl %r11d,%r9d,%r12d + xorl %edi,%r13d + rorxl $6,%r9d,%r14d + leal (%rax,%r12,1),%eax + xorl %r14d,%r13d + movl %ebx,%edi + rorxl $22,%ebx,%r12d + leal (%rax,%r13,1),%eax + xorl %ecx,%edi + rorxl $13,%ebx,%r14d + rorxl $2,%ebx,%r13d + leal (%r8,%rax,1),%r8d + andl %edi,%r15d + xorl %r12d,%r14d + xorl %ecx,%r15d + xorl %r13d,%r14d + leal (%rax,%r15,1),%eax + movl %r9d,%r12d + movq 512(%rsp),%rdi + addl %r14d,%eax + + leaq 448(%rsp),%rbp + + addl 0(%rdi),%eax + addl 4(%rdi),%ebx + addl 8(%rdi),%ecx + addl 12(%rdi),%edx + addl 16(%rdi),%r8d + addl 20(%rdi),%r9d + addl 24(%rdi),%r10d + addl 28(%rdi),%r11d + + movl %eax,0(%rdi) + movl %ebx,4(%rdi) + movl %ecx,8(%rdi) + movl %edx,12(%rdi) + movl %r8d,16(%rdi) + movl %r9d,20(%rdi) + movl %r10d,24(%rdi) + movl %r11d,28(%rdi) + + cmpq 80(%rbp),%rsi + je L$done_avx2 + + xorl %r14d,%r14d + movl %ebx,%edi + xorl %ecx,%edi + movl %r9d,%r12d + jmp L$ower_avx2 +.p2align 4 +L$ower_avx2: + addl 0+16(%rbp),%r11d + andl %r8d,%r12d + rorxl $25,%r8d,%r13d + rorxl $11,%r8d,%r15d + leal (%rax,%r14,1),%eax + leal (%r11,%r12,1),%r11d + andnl %r10d,%r8d,%r12d + xorl %r15d,%r13d + rorxl $6,%r8d,%r14d + leal (%r11,%r12,1),%r11d + xorl %r14d,%r13d + movl %eax,%r15d + rorxl $22,%eax,%r12d + leal (%r11,%r13,1),%r11d + xorl %ebx,%r15d + rorxl $13,%eax,%r14d + rorxl $2,%eax,%r13d + leal (%rdx,%r11,1),%edx + andl %r15d,%edi + xorl %r12d,%r14d + xorl %ebx,%edi + xorl %r13d,%r14d + leal (%r11,%rdi,1),%r11d + movl %r8d,%r12d + addl 4+16(%rbp),%r10d + andl %edx,%r12d + rorxl $25,%edx,%r13d + rorxl $11,%edx,%edi + leal (%r11,%r14,1),%r11d + leal (%r10,%r12,1),%r10d + andnl %r9d,%edx,%r12d + xorl %edi,%r13d + rorxl $6,%edx,%r14d + leal (%r10,%r12,1),%r10d + xorl %r14d,%r13d + movl %r11d,%edi + rorxl $22,%r11d,%r12d + leal (%r10,%r13,1),%r10d + xorl %eax,%edi + rorxl $13,%r11d,%r14d + rorxl $2,%r11d,%r13d + leal (%rcx,%r10,1),%ecx + andl %edi,%r15d + xorl %r12d,%r14d + xorl %eax,%r15d + xorl %r13d,%r14d + leal (%r10,%r15,1),%r10d + movl %edx,%r12d + addl 8+16(%rbp),%r9d + andl %ecx,%r12d + rorxl $25,%ecx,%r13d + rorxl $11,%ecx,%r15d + leal (%r10,%r14,1),%r10d + leal (%r9,%r12,1),%r9d + andnl %r8d,%ecx,%r12d + xorl %r15d,%r13d + rorxl $6,%ecx,%r14d + leal (%r9,%r12,1),%r9d + xorl %r14d,%r13d + movl %r10d,%r15d + rorxl $22,%r10d,%r12d + leal (%r9,%r13,1),%r9d + xorl %r11d,%r15d + rorxl $13,%r10d,%r14d + rorxl $2,%r10d,%r13d + leal (%rbx,%r9,1),%ebx + andl %r15d,%edi + xorl %r12d,%r14d + xorl %r11d,%edi + xorl %r13d,%r14d + leal (%r9,%rdi,1),%r9d + movl %ecx,%r12d + addl 12+16(%rbp),%r8d + andl %ebx,%r12d + rorxl $25,%ebx,%r13d + rorxl $11,%ebx,%edi + leal (%r9,%r14,1),%r9d + leal (%r8,%r12,1),%r8d + andnl %edx,%ebx,%r12d + xorl %edi,%r13d + rorxl $6,%ebx,%r14d + leal (%r8,%r12,1),%r8d + xorl %r14d,%r13d + movl %r9d,%edi + rorxl $22,%r9d,%r12d + leal (%r8,%r13,1),%r8d + xorl %r10d,%edi + rorxl $13,%r9d,%r14d + rorxl $2,%r9d,%r13d + leal (%rax,%r8,1),%eax + andl %edi,%r15d + xorl %r12d,%r14d + xorl %r10d,%r15d + xorl %r13d,%r14d + leal (%r8,%r15,1),%r8d + movl %ebx,%r12d + addl 32+16(%rbp),%edx + andl %eax,%r12d + rorxl $25,%eax,%r13d + rorxl $11,%eax,%r15d + leal (%r8,%r14,1),%r8d + leal (%rdx,%r12,1),%edx + andnl %ecx,%eax,%r12d + xorl %r15d,%r13d + rorxl $6,%eax,%r14d + leal (%rdx,%r12,1),%edx + xorl %r14d,%r13d + movl %r8d,%r15d + rorxl $22,%r8d,%r12d + leal (%rdx,%r13,1),%edx + xorl %r9d,%r15d + rorxl $13,%r8d,%r14d + rorxl $2,%r8d,%r13d + leal (%r11,%rdx,1),%r11d + andl %r15d,%edi + xorl %r12d,%r14d + xorl %r9d,%edi + xorl %r13d,%r14d + leal (%rdx,%rdi,1),%edx + movl %eax,%r12d + addl 36+16(%rbp),%ecx + andl %r11d,%r12d + rorxl $25,%r11d,%r13d + rorxl $11,%r11d,%edi + leal (%rdx,%r14,1),%edx + leal (%rcx,%r12,1),%ecx + andnl %ebx,%r11d,%r12d + xorl %edi,%r13d + rorxl $6,%r11d,%r14d + leal (%rcx,%r12,1),%ecx + xorl %r14d,%r13d + movl %edx,%edi + rorxl $22,%edx,%r12d + leal (%rcx,%r13,1),%ecx + xorl %r8d,%edi + rorxl $13,%edx,%r14d + rorxl $2,%edx,%r13d + leal (%r10,%rcx,1),%r10d + andl %edi,%r15d + xorl %r12d,%r14d + xorl %r8d,%r15d + xorl %r13d,%r14d + leal (%rcx,%r15,1),%ecx + movl %r11d,%r12d + addl 40+16(%rbp),%ebx + andl %r10d,%r12d + rorxl $25,%r10d,%r13d + rorxl $11,%r10d,%r15d + leal (%rcx,%r14,1),%ecx + leal (%rbx,%r12,1),%ebx + andnl %eax,%r10d,%r12d + xorl %r15d,%r13d + rorxl $6,%r10d,%r14d + leal (%rbx,%r12,1),%ebx + xorl %r14d,%r13d + movl %ecx,%r15d + rorxl $22,%ecx,%r12d + leal (%rbx,%r13,1),%ebx + xorl %edx,%r15d + rorxl $13,%ecx,%r14d + rorxl $2,%ecx,%r13d + leal (%r9,%rbx,1),%r9d + andl %r15d,%edi + xorl %r12d,%r14d + xorl %edx,%edi + xorl %r13d,%r14d + leal (%rbx,%rdi,1),%ebx + movl %r10d,%r12d + addl 44+16(%rbp),%eax + andl %r9d,%r12d + rorxl $25,%r9d,%r13d + rorxl $11,%r9d,%edi + leal (%rbx,%r14,1),%ebx + leal (%rax,%r12,1),%eax + andnl %r11d,%r9d,%r12d + xorl %edi,%r13d + rorxl $6,%r9d,%r14d + leal (%rax,%r12,1),%eax + xorl %r14d,%r13d + movl %ebx,%edi + rorxl $22,%ebx,%r12d + leal (%rax,%r13,1),%eax + xorl %ecx,%edi + rorxl $13,%ebx,%r14d + rorxl $2,%ebx,%r13d + leal (%r8,%rax,1),%r8d + andl %edi,%r15d + xorl %r12d,%r14d + xorl %ecx,%r15d + xorl %r13d,%r14d + leal (%rax,%r15,1),%eax + movl %r9d,%r12d + leaq -64(%rbp),%rbp + cmpq %rsp,%rbp + jae L$ower_avx2 + + movq 512(%rsp),%rdi + addl %r14d,%eax + + leaq 448(%rsp),%rsp + + + + addl 0(%rdi),%eax + addl 4(%rdi),%ebx + addl 8(%rdi),%ecx + addl 12(%rdi),%edx + addl 16(%rdi),%r8d + addl 20(%rdi),%r9d + leaq 128(%rsi),%rsi + addl 24(%rdi),%r10d + movq %rsi,%r12 + addl 28(%rdi),%r11d + cmpq 64+16(%rsp),%rsi + + movl %eax,0(%rdi) + cmoveq %rsp,%r12 + movl %ebx,4(%rdi) + movl %ecx,8(%rdi) + movl %edx,12(%rdi) + movl %r8d,16(%rdi) + movl %r9d,20(%rdi) + movl %r10d,24(%rdi) + movl %r11d,28(%rdi) + + jbe L$oop_avx2 + leaq (%rsp),%rbp + + + + +L$done_avx2: + movq 88(%rbp),%rsi + + vzeroupper + movq -48(%rsi),%r15 + + movq -40(%rsi),%r14 + + movq -32(%rsi),%r13 + + movq -24(%rsi),%r12 + + movq -16(%rsi),%rbp + + movq -8(%rsi),%rbx + + leaq (%rsi),%rsp + +L$epilogue_avx2: + .byte 0xf3,0xc3 + + diff --git a/vere/ext/openssl/gen/macos-x86_64/crypto/sha/sha512-x86_64.s b/vere/ext/openssl/gen/macos-x86_64/crypto/sha/sha512-x86_64.s new file mode 100644 index 0000000..6348b0a --- /dev/null +++ b/vere/ext/openssl/gen/macos-x86_64/crypto/sha/sha512-x86_64.s @@ -0,0 +1,5461 @@ +.text + + +.globl _sha512_block_data_order + +.p2align 4 +_sha512_block_data_order: + + leaq _OPENSSL_ia32cap_P(%rip),%r11 + movl 0(%r11),%r9d + movl 4(%r11),%r10d + movl 8(%r11),%r11d + testl $2048,%r10d + jnz L$xop_shortcut + andl $296,%r11d + cmpl $296,%r11d + je L$avx2_shortcut + andl $1073741824,%r9d + andl $268435968,%r10d + orl %r9d,%r10d + cmpl $1342177792,%r10d + je L$avx_shortcut + movq %rsp,%rax + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + shlq $4,%rdx + subq $128+32,%rsp + leaq (%rsi,%rdx,8),%rdx + andq $-64,%rsp + movq %rdi,128+0(%rsp) + movq %rsi,128+8(%rsp) + movq %rdx,128+16(%rsp) + movq %rax,152(%rsp) + +L$prologue: + + movq 0(%rdi),%rax + movq 8(%rdi),%rbx + movq 16(%rdi),%rcx + movq 24(%rdi),%rdx + movq 32(%rdi),%r8 + movq 40(%rdi),%r9 + movq 48(%rdi),%r10 + movq 56(%rdi),%r11 + jmp L$loop + +.p2align 4 +L$loop: + movq %rbx,%rdi + leaq K512(%rip),%rbp + xorq %rcx,%rdi + movq 0(%rsi),%r12 + movq %r8,%r13 + movq %rax,%r14 + bswapq %r12 + rorq $23,%r13 + movq %r9,%r15 + + xorq %r8,%r13 + rorq $5,%r14 + xorq %r10,%r15 + + movq %r12,0(%rsp) + xorq %rax,%r14 + andq %r8,%r15 + + rorq $4,%r13 + addq %r11,%r12 + xorq %r10,%r15 + + rorq $6,%r14 + xorq %r8,%r13 + addq %r15,%r12 + + movq %rax,%r15 + addq (%rbp),%r12 + xorq %rax,%r14 + + xorq %rbx,%r15 + rorq $14,%r13 + movq %rbx,%r11 + + andq %r15,%rdi + rorq $28,%r14 + addq %r13,%r12 + + xorq %rdi,%r11 + addq %r12,%rdx + addq %r12,%r11 + + leaq 8(%rbp),%rbp + addq %r14,%r11 + movq 8(%rsi),%r12 + movq %rdx,%r13 + movq %r11,%r14 + bswapq %r12 + rorq $23,%r13 + movq %r8,%rdi + + xorq %rdx,%r13 + rorq $5,%r14 + xorq %r9,%rdi + + movq %r12,8(%rsp) + xorq %r11,%r14 + andq %rdx,%rdi + + rorq $4,%r13 + addq %r10,%r12 + xorq %r9,%rdi + + rorq $6,%r14 + xorq %rdx,%r13 + addq %rdi,%r12 + + movq %r11,%rdi + addq (%rbp),%r12 + xorq %r11,%r14 + + xorq %rax,%rdi + rorq $14,%r13 + movq %rax,%r10 + + andq %rdi,%r15 + rorq $28,%r14 + addq %r13,%r12 + + xorq %r15,%r10 + addq %r12,%rcx + addq %r12,%r10 + + leaq 24(%rbp),%rbp + addq %r14,%r10 + movq 16(%rsi),%r12 + movq %rcx,%r13 + movq %r10,%r14 + bswapq %r12 + rorq $23,%r13 + movq %rdx,%r15 + + xorq %rcx,%r13 + rorq $5,%r14 + xorq %r8,%r15 + + movq %r12,16(%rsp) + xorq %r10,%r14 + andq %rcx,%r15 + + rorq $4,%r13 + addq %r9,%r12 + xorq %r8,%r15 + + rorq $6,%r14 + xorq %rcx,%r13 + addq %r15,%r12 + + movq %r10,%r15 + addq (%rbp),%r12 + xorq %r10,%r14 + + xorq %r11,%r15 + rorq $14,%r13 + movq %r11,%r9 + + andq %r15,%rdi + rorq $28,%r14 + addq %r13,%r12 + + xorq %rdi,%r9 + addq %r12,%rbx + addq %r12,%r9 + + leaq 8(%rbp),%rbp + addq %r14,%r9 + movq 24(%rsi),%r12 + movq %rbx,%r13 + movq %r9,%r14 + bswapq %r12 + rorq $23,%r13 + movq %rcx,%rdi + + xorq %rbx,%r13 + rorq $5,%r14 + xorq %rdx,%rdi + + movq %r12,24(%rsp) + xorq %r9,%r14 + andq %rbx,%rdi + + rorq $4,%r13 + addq %r8,%r12 + xorq %rdx,%rdi + + rorq $6,%r14 + xorq %rbx,%r13 + addq %rdi,%r12 + + movq %r9,%rdi + addq (%rbp),%r12 + xorq %r9,%r14 + + xorq %r10,%rdi + rorq $14,%r13 + movq %r10,%r8 + + andq %rdi,%r15 + rorq $28,%r14 + addq %r13,%r12 + + xorq %r15,%r8 + addq %r12,%rax + addq %r12,%r8 + + leaq 24(%rbp),%rbp + addq %r14,%r8 + movq 32(%rsi),%r12 + movq %rax,%r13 + movq %r8,%r14 + bswapq %r12 + rorq $23,%r13 + movq %rbx,%r15 + + xorq %rax,%r13 + rorq $5,%r14 + xorq %rcx,%r15 + + movq %r12,32(%rsp) + xorq %r8,%r14 + andq %rax,%r15 + + rorq $4,%r13 + addq %rdx,%r12 + xorq %rcx,%r15 + + rorq $6,%r14 + xorq %rax,%r13 + addq %r15,%r12 + + movq %r8,%r15 + addq (%rbp),%r12 + xorq %r8,%r14 + + xorq %r9,%r15 + rorq $14,%r13 + movq %r9,%rdx + + andq %r15,%rdi + rorq $28,%r14 + addq %r13,%r12 + + xorq %rdi,%rdx + addq %r12,%r11 + addq %r12,%rdx + + leaq 8(%rbp),%rbp + addq %r14,%rdx + movq 40(%rsi),%r12 + movq %r11,%r13 + movq %rdx,%r14 + bswapq %r12 + rorq $23,%r13 + movq %rax,%rdi + + xorq %r11,%r13 + rorq $5,%r14 + xorq %rbx,%rdi + + movq %r12,40(%rsp) + xorq %rdx,%r14 + andq %r11,%rdi + + rorq $4,%r13 + addq %rcx,%r12 + xorq %rbx,%rdi + + rorq $6,%r14 + xorq %r11,%r13 + addq %rdi,%r12 + + movq %rdx,%rdi + addq (%rbp),%r12 + xorq %rdx,%r14 + + xorq %r8,%rdi + rorq $14,%r13 + movq %r8,%rcx + + andq %rdi,%r15 + rorq $28,%r14 + addq %r13,%r12 + + xorq %r15,%rcx + addq %r12,%r10 + addq %r12,%rcx + + leaq 24(%rbp),%rbp + addq %r14,%rcx + movq 48(%rsi),%r12 + movq %r10,%r13 + movq %rcx,%r14 + bswapq %r12 + rorq $23,%r13 + movq %r11,%r15 + + xorq %r10,%r13 + rorq $5,%r14 + xorq %rax,%r15 + + movq %r12,48(%rsp) + xorq %rcx,%r14 + andq %r10,%r15 + + rorq $4,%r13 + addq %rbx,%r12 + xorq %rax,%r15 + + rorq $6,%r14 + xorq %r10,%r13 + addq %r15,%r12 + + movq %rcx,%r15 + addq (%rbp),%r12 + xorq %rcx,%r14 + + xorq %rdx,%r15 + rorq $14,%r13 + movq %rdx,%rbx + + andq %r15,%rdi + rorq $28,%r14 + addq %r13,%r12 + + xorq %rdi,%rbx + addq %r12,%r9 + addq %r12,%rbx + + leaq 8(%rbp),%rbp + addq %r14,%rbx + movq 56(%rsi),%r12 + movq %r9,%r13 + movq %rbx,%r14 + bswapq %r12 + rorq $23,%r13 + movq %r10,%rdi + + xorq %r9,%r13 + rorq $5,%r14 + xorq %r11,%rdi + + movq %r12,56(%rsp) + xorq %rbx,%r14 + andq %r9,%rdi + + rorq $4,%r13 + addq %rax,%r12 + xorq %r11,%rdi + + rorq $6,%r14 + xorq %r9,%r13 + addq %rdi,%r12 + + movq %rbx,%rdi + addq (%rbp),%r12 + xorq %rbx,%r14 + + xorq %rcx,%rdi + rorq $14,%r13 + movq %rcx,%rax + + andq %rdi,%r15 + rorq $28,%r14 + addq %r13,%r12 + + xorq %r15,%rax + addq %r12,%r8 + addq %r12,%rax + + leaq 24(%rbp),%rbp + addq %r14,%rax + movq 64(%rsi),%r12 + movq %r8,%r13 + movq %rax,%r14 + bswapq %r12 + rorq $23,%r13 + movq %r9,%r15 + + xorq %r8,%r13 + rorq $5,%r14 + xorq %r10,%r15 + + movq %r12,64(%rsp) + xorq %rax,%r14 + andq %r8,%r15 + + rorq $4,%r13 + addq %r11,%r12 + xorq %r10,%r15 + + rorq $6,%r14 + xorq %r8,%r13 + addq %r15,%r12 + + movq %rax,%r15 + addq (%rbp),%r12 + xorq %rax,%r14 + + xorq %rbx,%r15 + rorq $14,%r13 + movq %rbx,%r11 + + andq %r15,%rdi + rorq $28,%r14 + addq %r13,%r12 + + xorq %rdi,%r11 + addq %r12,%rdx + addq %r12,%r11 + + leaq 8(%rbp),%rbp + addq %r14,%r11 + movq 72(%rsi),%r12 + movq %rdx,%r13 + movq %r11,%r14 + bswapq %r12 + rorq $23,%r13 + movq %r8,%rdi + + xorq %rdx,%r13 + rorq $5,%r14 + xorq %r9,%rdi + + movq %r12,72(%rsp) + xorq %r11,%r14 + andq %rdx,%rdi + + rorq $4,%r13 + addq %r10,%r12 + xorq %r9,%rdi + + rorq $6,%r14 + xorq %rdx,%r13 + addq %rdi,%r12 + + movq %r11,%rdi + addq (%rbp),%r12 + xorq %r11,%r14 + + xorq %rax,%rdi + rorq $14,%r13 + movq %rax,%r10 + + andq %rdi,%r15 + rorq $28,%r14 + addq %r13,%r12 + + xorq %r15,%r10 + addq %r12,%rcx + addq %r12,%r10 + + leaq 24(%rbp),%rbp + addq %r14,%r10 + movq 80(%rsi),%r12 + movq %rcx,%r13 + movq %r10,%r14 + bswapq %r12 + rorq $23,%r13 + movq %rdx,%r15 + + xorq %rcx,%r13 + rorq $5,%r14 + xorq %r8,%r15 + + movq %r12,80(%rsp) + xorq %r10,%r14 + andq %rcx,%r15 + + rorq $4,%r13 + addq %r9,%r12 + xorq %r8,%r15 + + rorq $6,%r14 + xorq %rcx,%r13 + addq %r15,%r12 + + movq %r10,%r15 + addq (%rbp),%r12 + xorq %r10,%r14 + + xorq %r11,%r15 + rorq $14,%r13 + movq %r11,%r9 + + andq %r15,%rdi + rorq $28,%r14 + addq %r13,%r12 + + xorq %rdi,%r9 + addq %r12,%rbx + addq %r12,%r9 + + leaq 8(%rbp),%rbp + addq %r14,%r9 + movq 88(%rsi),%r12 + movq %rbx,%r13 + movq %r9,%r14 + bswapq %r12 + rorq $23,%r13 + movq %rcx,%rdi + + xorq %rbx,%r13 + rorq $5,%r14 + xorq %rdx,%rdi + + movq %r12,88(%rsp) + xorq %r9,%r14 + andq %rbx,%rdi + + rorq $4,%r13 + addq %r8,%r12 + xorq %rdx,%rdi + + rorq $6,%r14 + xorq %rbx,%r13 + addq %rdi,%r12 + + movq %r9,%rdi + addq (%rbp),%r12 + xorq %r9,%r14 + + xorq %r10,%rdi + rorq $14,%r13 + movq %r10,%r8 + + andq %rdi,%r15 + rorq $28,%r14 + addq %r13,%r12 + + xorq %r15,%r8 + addq %r12,%rax + addq %r12,%r8 + + leaq 24(%rbp),%rbp + addq %r14,%r8 + movq 96(%rsi),%r12 + movq %rax,%r13 + movq %r8,%r14 + bswapq %r12 + rorq $23,%r13 + movq %rbx,%r15 + + xorq %rax,%r13 + rorq $5,%r14 + xorq %rcx,%r15 + + movq %r12,96(%rsp) + xorq %r8,%r14 + andq %rax,%r15 + + rorq $4,%r13 + addq %rdx,%r12 + xorq %rcx,%r15 + + rorq $6,%r14 + xorq %rax,%r13 + addq %r15,%r12 + + movq %r8,%r15 + addq (%rbp),%r12 + xorq %r8,%r14 + + xorq %r9,%r15 + rorq $14,%r13 + movq %r9,%rdx + + andq %r15,%rdi + rorq $28,%r14 + addq %r13,%r12 + + xorq %rdi,%rdx + addq %r12,%r11 + addq %r12,%rdx + + leaq 8(%rbp),%rbp + addq %r14,%rdx + movq 104(%rsi),%r12 + movq %r11,%r13 + movq %rdx,%r14 + bswapq %r12 + rorq $23,%r13 + movq %rax,%rdi + + xorq %r11,%r13 + rorq $5,%r14 + xorq %rbx,%rdi + + movq %r12,104(%rsp) + xorq %rdx,%r14 + andq %r11,%rdi + + rorq $4,%r13 + addq %rcx,%r12 + xorq %rbx,%rdi + + rorq $6,%r14 + xorq %r11,%r13 + addq %rdi,%r12 + + movq %rdx,%rdi + addq (%rbp),%r12 + xorq %rdx,%r14 + + xorq %r8,%rdi + rorq $14,%r13 + movq %r8,%rcx + + andq %rdi,%r15 + rorq $28,%r14 + addq %r13,%r12 + + xorq %r15,%rcx + addq %r12,%r10 + addq %r12,%rcx + + leaq 24(%rbp),%rbp + addq %r14,%rcx + movq 112(%rsi),%r12 + movq %r10,%r13 + movq %rcx,%r14 + bswapq %r12 + rorq $23,%r13 + movq %r11,%r15 + + xorq %r10,%r13 + rorq $5,%r14 + xorq %rax,%r15 + + movq %r12,112(%rsp) + xorq %rcx,%r14 + andq %r10,%r15 + + rorq $4,%r13 + addq %rbx,%r12 + xorq %rax,%r15 + + rorq $6,%r14 + xorq %r10,%r13 + addq %r15,%r12 + + movq %rcx,%r15 + addq (%rbp),%r12 + xorq %rcx,%r14 + + xorq %rdx,%r15 + rorq $14,%r13 + movq %rdx,%rbx + + andq %r15,%rdi + rorq $28,%r14 + addq %r13,%r12 + + xorq %rdi,%rbx + addq %r12,%r9 + addq %r12,%rbx + + leaq 8(%rbp),%rbp + addq %r14,%rbx + movq 120(%rsi),%r12 + movq %r9,%r13 + movq %rbx,%r14 + bswapq %r12 + rorq $23,%r13 + movq %r10,%rdi + + xorq %r9,%r13 + rorq $5,%r14 + xorq %r11,%rdi + + movq %r12,120(%rsp) + xorq %rbx,%r14 + andq %r9,%rdi + + rorq $4,%r13 + addq %rax,%r12 + xorq %r11,%rdi + + rorq $6,%r14 + xorq %r9,%r13 + addq %rdi,%r12 + + movq %rbx,%rdi + addq (%rbp),%r12 + xorq %rbx,%r14 + + xorq %rcx,%rdi + rorq $14,%r13 + movq %rcx,%rax + + andq %rdi,%r15 + rorq $28,%r14 + addq %r13,%r12 + + xorq %r15,%rax + addq %r12,%r8 + addq %r12,%rax + + leaq 24(%rbp),%rbp + jmp L$rounds_16_xx +.p2align 4 +L$rounds_16_xx: + movq 8(%rsp),%r13 + movq 112(%rsp),%r15 + + movq %r13,%r12 + rorq $7,%r13 + addq %r14,%rax + movq %r15,%r14 + rorq $42,%r15 + + xorq %r12,%r13 + shrq $7,%r12 + rorq $1,%r13 + xorq %r14,%r15 + shrq $6,%r14 + + rorq $19,%r15 + xorq %r13,%r12 + xorq %r14,%r15 + addq 72(%rsp),%r12 + + addq 0(%rsp),%r12 + movq %r8,%r13 + addq %r15,%r12 + movq %rax,%r14 + rorq $23,%r13 + movq %r9,%r15 + + xorq %r8,%r13 + rorq $5,%r14 + xorq %r10,%r15 + + movq %r12,0(%rsp) + xorq %rax,%r14 + andq %r8,%r15 + + rorq $4,%r13 + addq %r11,%r12 + xorq %r10,%r15 + + rorq $6,%r14 + xorq %r8,%r13 + addq %r15,%r12 + + movq %rax,%r15 + addq (%rbp),%r12 + xorq %rax,%r14 + + xorq %rbx,%r15 + rorq $14,%r13 + movq %rbx,%r11 + + andq %r15,%rdi + rorq $28,%r14 + addq %r13,%r12 + + xorq %rdi,%r11 + addq %r12,%rdx + addq %r12,%r11 + + leaq 8(%rbp),%rbp + movq 16(%rsp),%r13 + movq 120(%rsp),%rdi + + movq %r13,%r12 + rorq $7,%r13 + addq %r14,%r11 + movq %rdi,%r14 + rorq $42,%rdi + + xorq %r12,%r13 + shrq $7,%r12 + rorq $1,%r13 + xorq %r14,%rdi + shrq $6,%r14 + + rorq $19,%rdi + xorq %r13,%r12 + xorq %r14,%rdi + addq 80(%rsp),%r12 + + addq 8(%rsp),%r12 + movq %rdx,%r13 + addq %rdi,%r12 + movq %r11,%r14 + rorq $23,%r13 + movq %r8,%rdi + + xorq %rdx,%r13 + rorq $5,%r14 + xorq %r9,%rdi + + movq %r12,8(%rsp) + xorq %r11,%r14 + andq %rdx,%rdi + + rorq $4,%r13 + addq %r10,%r12 + xorq %r9,%rdi + + rorq $6,%r14 + xorq %rdx,%r13 + addq %rdi,%r12 + + movq %r11,%rdi + addq (%rbp),%r12 + xorq %r11,%r14 + + xorq %rax,%rdi + rorq $14,%r13 + movq %rax,%r10 + + andq %rdi,%r15 + rorq $28,%r14 + addq %r13,%r12 + + xorq %r15,%r10 + addq %r12,%rcx + addq %r12,%r10 + + leaq 24(%rbp),%rbp + movq 24(%rsp),%r13 + movq 0(%rsp),%r15 + + movq %r13,%r12 + rorq $7,%r13 + addq %r14,%r10 + movq %r15,%r14 + rorq $42,%r15 + + xorq %r12,%r13 + shrq $7,%r12 + rorq $1,%r13 + xorq %r14,%r15 + shrq $6,%r14 + + rorq $19,%r15 + xorq %r13,%r12 + xorq %r14,%r15 + addq 88(%rsp),%r12 + + addq 16(%rsp),%r12 + movq %rcx,%r13 + addq %r15,%r12 + movq %r10,%r14 + rorq $23,%r13 + movq %rdx,%r15 + + xorq %rcx,%r13 + rorq $5,%r14 + xorq %r8,%r15 + + movq %r12,16(%rsp) + xorq %r10,%r14 + andq %rcx,%r15 + + rorq $4,%r13 + addq %r9,%r12 + xorq %r8,%r15 + + rorq $6,%r14 + xorq %rcx,%r13 + addq %r15,%r12 + + movq %r10,%r15 + addq (%rbp),%r12 + xorq %r10,%r14 + + xorq %r11,%r15 + rorq $14,%r13 + movq %r11,%r9 + + andq %r15,%rdi + rorq $28,%r14 + addq %r13,%r12 + + xorq %rdi,%r9 + addq %r12,%rbx + addq %r12,%r9 + + leaq 8(%rbp),%rbp + movq 32(%rsp),%r13 + movq 8(%rsp),%rdi + + movq %r13,%r12 + rorq $7,%r13 + addq %r14,%r9 + movq %rdi,%r14 + rorq $42,%rdi + + xorq %r12,%r13 + shrq $7,%r12 + rorq $1,%r13 + xorq %r14,%rdi + shrq $6,%r14 + + rorq $19,%rdi + xorq %r13,%r12 + xorq %r14,%rdi + addq 96(%rsp),%r12 + + addq 24(%rsp),%r12 + movq %rbx,%r13 + addq %rdi,%r12 + movq %r9,%r14 + rorq $23,%r13 + movq %rcx,%rdi + + xorq %rbx,%r13 + rorq $5,%r14 + xorq %rdx,%rdi + + movq %r12,24(%rsp) + xorq %r9,%r14 + andq %rbx,%rdi + + rorq $4,%r13 + addq %r8,%r12 + xorq %rdx,%rdi + + rorq $6,%r14 + xorq %rbx,%r13 + addq %rdi,%r12 + + movq %r9,%rdi + addq (%rbp),%r12 + xorq %r9,%r14 + + xorq %r10,%rdi + rorq $14,%r13 + movq %r10,%r8 + + andq %rdi,%r15 + rorq $28,%r14 + addq %r13,%r12 + + xorq %r15,%r8 + addq %r12,%rax + addq %r12,%r8 + + leaq 24(%rbp),%rbp + movq 40(%rsp),%r13 + movq 16(%rsp),%r15 + + movq %r13,%r12 + rorq $7,%r13 + addq %r14,%r8 + movq %r15,%r14 + rorq $42,%r15 + + xorq %r12,%r13 + shrq $7,%r12 + rorq $1,%r13 + xorq %r14,%r15 + shrq $6,%r14 + + rorq $19,%r15 + xorq %r13,%r12 + xorq %r14,%r15 + addq 104(%rsp),%r12 + + addq 32(%rsp),%r12 + movq %rax,%r13 + addq %r15,%r12 + movq %r8,%r14 + rorq $23,%r13 + movq %rbx,%r15 + + xorq %rax,%r13 + rorq $5,%r14 + xorq %rcx,%r15 + + movq %r12,32(%rsp) + xorq %r8,%r14 + andq %rax,%r15 + + rorq $4,%r13 + addq %rdx,%r12 + xorq %rcx,%r15 + + rorq $6,%r14 + xorq %rax,%r13 + addq %r15,%r12 + + movq %r8,%r15 + addq (%rbp),%r12 + xorq %r8,%r14 + + xorq %r9,%r15 + rorq $14,%r13 + movq %r9,%rdx + + andq %r15,%rdi + rorq $28,%r14 + addq %r13,%r12 + + xorq %rdi,%rdx + addq %r12,%r11 + addq %r12,%rdx + + leaq 8(%rbp),%rbp + movq 48(%rsp),%r13 + movq 24(%rsp),%rdi + + movq %r13,%r12 + rorq $7,%r13 + addq %r14,%rdx + movq %rdi,%r14 + rorq $42,%rdi + + xorq %r12,%r13 + shrq $7,%r12 + rorq $1,%r13 + xorq %r14,%rdi + shrq $6,%r14 + + rorq $19,%rdi + xorq %r13,%r12 + xorq %r14,%rdi + addq 112(%rsp),%r12 + + addq 40(%rsp),%r12 + movq %r11,%r13 + addq %rdi,%r12 + movq %rdx,%r14 + rorq $23,%r13 + movq %rax,%rdi + + xorq %r11,%r13 + rorq $5,%r14 + xorq %rbx,%rdi + + movq %r12,40(%rsp) + xorq %rdx,%r14 + andq %r11,%rdi + + rorq $4,%r13 + addq %rcx,%r12 + xorq %rbx,%rdi + + rorq $6,%r14 + xorq %r11,%r13 + addq %rdi,%r12 + + movq %rdx,%rdi + addq (%rbp),%r12 + xorq %rdx,%r14 + + xorq %r8,%rdi + rorq $14,%r13 + movq %r8,%rcx + + andq %rdi,%r15 + rorq $28,%r14 + addq %r13,%r12 + + xorq %r15,%rcx + addq %r12,%r10 + addq %r12,%rcx + + leaq 24(%rbp),%rbp + movq 56(%rsp),%r13 + movq 32(%rsp),%r15 + + movq %r13,%r12 + rorq $7,%r13 + addq %r14,%rcx + movq %r15,%r14 + rorq $42,%r15 + + xorq %r12,%r13 + shrq $7,%r12 + rorq $1,%r13 + xorq %r14,%r15 + shrq $6,%r14 + + rorq $19,%r15 + xorq %r13,%r12 + xorq %r14,%r15 + addq 120(%rsp),%r12 + + addq 48(%rsp),%r12 + movq %r10,%r13 + addq %r15,%r12 + movq %rcx,%r14 + rorq $23,%r13 + movq %r11,%r15 + + xorq %r10,%r13 + rorq $5,%r14 + xorq %rax,%r15 + + movq %r12,48(%rsp) + xorq %rcx,%r14 + andq %r10,%r15 + + rorq $4,%r13 + addq %rbx,%r12 + xorq %rax,%r15 + + rorq $6,%r14 + xorq %r10,%r13 + addq %r15,%r12 + + movq %rcx,%r15 + addq (%rbp),%r12 + xorq %rcx,%r14 + + xorq %rdx,%r15 + rorq $14,%r13 + movq %rdx,%rbx + + andq %r15,%rdi + rorq $28,%r14 + addq %r13,%r12 + + xorq %rdi,%rbx + addq %r12,%r9 + addq %r12,%rbx + + leaq 8(%rbp),%rbp + movq 64(%rsp),%r13 + movq 40(%rsp),%rdi + + movq %r13,%r12 + rorq $7,%r13 + addq %r14,%rbx + movq %rdi,%r14 + rorq $42,%rdi + + xorq %r12,%r13 + shrq $7,%r12 + rorq $1,%r13 + xorq %r14,%rdi + shrq $6,%r14 + + rorq $19,%rdi + xorq %r13,%r12 + xorq %r14,%rdi + addq 0(%rsp),%r12 + + addq 56(%rsp),%r12 + movq %r9,%r13 + addq %rdi,%r12 + movq %rbx,%r14 + rorq $23,%r13 + movq %r10,%rdi + + xorq %r9,%r13 + rorq $5,%r14 + xorq %r11,%rdi + + movq %r12,56(%rsp) + xorq %rbx,%r14 + andq %r9,%rdi + + rorq $4,%r13 + addq %rax,%r12 + xorq %r11,%rdi + + rorq $6,%r14 + xorq %r9,%r13 + addq %rdi,%r12 + + movq %rbx,%rdi + addq (%rbp),%r12 + xorq %rbx,%r14 + + xorq %rcx,%rdi + rorq $14,%r13 + movq %rcx,%rax + + andq %rdi,%r15 + rorq $28,%r14 + addq %r13,%r12 + + xorq %r15,%rax + addq %r12,%r8 + addq %r12,%rax + + leaq 24(%rbp),%rbp + movq 72(%rsp),%r13 + movq 48(%rsp),%r15 + + movq %r13,%r12 + rorq $7,%r13 + addq %r14,%rax + movq %r15,%r14 + rorq $42,%r15 + + xorq %r12,%r13 + shrq $7,%r12 + rorq $1,%r13 + xorq %r14,%r15 + shrq $6,%r14 + + rorq $19,%r15 + xorq %r13,%r12 + xorq %r14,%r15 + addq 8(%rsp),%r12 + + addq 64(%rsp),%r12 + movq %r8,%r13 + addq %r15,%r12 + movq %rax,%r14 + rorq $23,%r13 + movq %r9,%r15 + + xorq %r8,%r13 + rorq $5,%r14 + xorq %r10,%r15 + + movq %r12,64(%rsp) + xorq %rax,%r14 + andq %r8,%r15 + + rorq $4,%r13 + addq %r11,%r12 + xorq %r10,%r15 + + rorq $6,%r14 + xorq %r8,%r13 + addq %r15,%r12 + + movq %rax,%r15 + addq (%rbp),%r12 + xorq %rax,%r14 + + xorq %rbx,%r15 + rorq $14,%r13 + movq %rbx,%r11 + + andq %r15,%rdi + rorq $28,%r14 + addq %r13,%r12 + + xorq %rdi,%r11 + addq %r12,%rdx + addq %r12,%r11 + + leaq 8(%rbp),%rbp + movq 80(%rsp),%r13 + movq 56(%rsp),%rdi + + movq %r13,%r12 + rorq $7,%r13 + addq %r14,%r11 + movq %rdi,%r14 + rorq $42,%rdi + + xorq %r12,%r13 + shrq $7,%r12 + rorq $1,%r13 + xorq %r14,%rdi + shrq $6,%r14 + + rorq $19,%rdi + xorq %r13,%r12 + xorq %r14,%rdi + addq 16(%rsp),%r12 + + addq 72(%rsp),%r12 + movq %rdx,%r13 + addq %rdi,%r12 + movq %r11,%r14 + rorq $23,%r13 + movq %r8,%rdi + + xorq %rdx,%r13 + rorq $5,%r14 + xorq %r9,%rdi + + movq %r12,72(%rsp) + xorq %r11,%r14 + andq %rdx,%rdi + + rorq $4,%r13 + addq %r10,%r12 + xorq %r9,%rdi + + rorq $6,%r14 + xorq %rdx,%r13 + addq %rdi,%r12 + + movq %r11,%rdi + addq (%rbp),%r12 + xorq %r11,%r14 + + xorq %rax,%rdi + rorq $14,%r13 + movq %rax,%r10 + + andq %rdi,%r15 + rorq $28,%r14 + addq %r13,%r12 + + xorq %r15,%r10 + addq %r12,%rcx + addq %r12,%r10 + + leaq 24(%rbp),%rbp + movq 88(%rsp),%r13 + movq 64(%rsp),%r15 + + movq %r13,%r12 + rorq $7,%r13 + addq %r14,%r10 + movq %r15,%r14 + rorq $42,%r15 + + xorq %r12,%r13 + shrq $7,%r12 + rorq $1,%r13 + xorq %r14,%r15 + shrq $6,%r14 + + rorq $19,%r15 + xorq %r13,%r12 + xorq %r14,%r15 + addq 24(%rsp),%r12 + + addq 80(%rsp),%r12 + movq %rcx,%r13 + addq %r15,%r12 + movq %r10,%r14 + rorq $23,%r13 + movq %rdx,%r15 + + xorq %rcx,%r13 + rorq $5,%r14 + xorq %r8,%r15 + + movq %r12,80(%rsp) + xorq %r10,%r14 + andq %rcx,%r15 + + rorq $4,%r13 + addq %r9,%r12 + xorq %r8,%r15 + + rorq $6,%r14 + xorq %rcx,%r13 + addq %r15,%r12 + + movq %r10,%r15 + addq (%rbp),%r12 + xorq %r10,%r14 + + xorq %r11,%r15 + rorq $14,%r13 + movq %r11,%r9 + + andq %r15,%rdi + rorq $28,%r14 + addq %r13,%r12 + + xorq %rdi,%r9 + addq %r12,%rbx + addq %r12,%r9 + + leaq 8(%rbp),%rbp + movq 96(%rsp),%r13 + movq 72(%rsp),%rdi + + movq %r13,%r12 + rorq $7,%r13 + addq %r14,%r9 + movq %rdi,%r14 + rorq $42,%rdi + + xorq %r12,%r13 + shrq $7,%r12 + rorq $1,%r13 + xorq %r14,%rdi + shrq $6,%r14 + + rorq $19,%rdi + xorq %r13,%r12 + xorq %r14,%rdi + addq 32(%rsp),%r12 + + addq 88(%rsp),%r12 + movq %rbx,%r13 + addq %rdi,%r12 + movq %r9,%r14 + rorq $23,%r13 + movq %rcx,%rdi + + xorq %rbx,%r13 + rorq $5,%r14 + xorq %rdx,%rdi + + movq %r12,88(%rsp) + xorq %r9,%r14 + andq %rbx,%rdi + + rorq $4,%r13 + addq %r8,%r12 + xorq %rdx,%rdi + + rorq $6,%r14 + xorq %rbx,%r13 + addq %rdi,%r12 + + movq %r9,%rdi + addq (%rbp),%r12 + xorq %r9,%r14 + + xorq %r10,%rdi + rorq $14,%r13 + movq %r10,%r8 + + andq %rdi,%r15 + rorq $28,%r14 + addq %r13,%r12 + + xorq %r15,%r8 + addq %r12,%rax + addq %r12,%r8 + + leaq 24(%rbp),%rbp + movq 104(%rsp),%r13 + movq 80(%rsp),%r15 + + movq %r13,%r12 + rorq $7,%r13 + addq %r14,%r8 + movq %r15,%r14 + rorq $42,%r15 + + xorq %r12,%r13 + shrq $7,%r12 + rorq $1,%r13 + xorq %r14,%r15 + shrq $6,%r14 + + rorq $19,%r15 + xorq %r13,%r12 + xorq %r14,%r15 + addq 40(%rsp),%r12 + + addq 96(%rsp),%r12 + movq %rax,%r13 + addq %r15,%r12 + movq %r8,%r14 + rorq $23,%r13 + movq %rbx,%r15 + + xorq %rax,%r13 + rorq $5,%r14 + xorq %rcx,%r15 + + movq %r12,96(%rsp) + xorq %r8,%r14 + andq %rax,%r15 + + rorq $4,%r13 + addq %rdx,%r12 + xorq %rcx,%r15 + + rorq $6,%r14 + xorq %rax,%r13 + addq %r15,%r12 + + movq %r8,%r15 + addq (%rbp),%r12 + xorq %r8,%r14 + + xorq %r9,%r15 + rorq $14,%r13 + movq %r9,%rdx + + andq %r15,%rdi + rorq $28,%r14 + addq %r13,%r12 + + xorq %rdi,%rdx + addq %r12,%r11 + addq %r12,%rdx + + leaq 8(%rbp),%rbp + movq 112(%rsp),%r13 + movq 88(%rsp),%rdi + + movq %r13,%r12 + rorq $7,%r13 + addq %r14,%rdx + movq %rdi,%r14 + rorq $42,%rdi + + xorq %r12,%r13 + shrq $7,%r12 + rorq $1,%r13 + xorq %r14,%rdi + shrq $6,%r14 + + rorq $19,%rdi + xorq %r13,%r12 + xorq %r14,%rdi + addq 48(%rsp),%r12 + + addq 104(%rsp),%r12 + movq %r11,%r13 + addq %rdi,%r12 + movq %rdx,%r14 + rorq $23,%r13 + movq %rax,%rdi + + xorq %r11,%r13 + rorq $5,%r14 + xorq %rbx,%rdi + + movq %r12,104(%rsp) + xorq %rdx,%r14 + andq %r11,%rdi + + rorq $4,%r13 + addq %rcx,%r12 + xorq %rbx,%rdi + + rorq $6,%r14 + xorq %r11,%r13 + addq %rdi,%r12 + + movq %rdx,%rdi + addq (%rbp),%r12 + xorq %rdx,%r14 + + xorq %r8,%rdi + rorq $14,%r13 + movq %r8,%rcx + + andq %rdi,%r15 + rorq $28,%r14 + addq %r13,%r12 + + xorq %r15,%rcx + addq %r12,%r10 + addq %r12,%rcx + + leaq 24(%rbp),%rbp + movq 120(%rsp),%r13 + movq 96(%rsp),%r15 + + movq %r13,%r12 + rorq $7,%r13 + addq %r14,%rcx + movq %r15,%r14 + rorq $42,%r15 + + xorq %r12,%r13 + shrq $7,%r12 + rorq $1,%r13 + xorq %r14,%r15 + shrq $6,%r14 + + rorq $19,%r15 + xorq %r13,%r12 + xorq %r14,%r15 + addq 56(%rsp),%r12 + + addq 112(%rsp),%r12 + movq %r10,%r13 + addq %r15,%r12 + movq %rcx,%r14 + rorq $23,%r13 + movq %r11,%r15 + + xorq %r10,%r13 + rorq $5,%r14 + xorq %rax,%r15 + + movq %r12,112(%rsp) + xorq %rcx,%r14 + andq %r10,%r15 + + rorq $4,%r13 + addq %rbx,%r12 + xorq %rax,%r15 + + rorq $6,%r14 + xorq %r10,%r13 + addq %r15,%r12 + + movq %rcx,%r15 + addq (%rbp),%r12 + xorq %rcx,%r14 + + xorq %rdx,%r15 + rorq $14,%r13 + movq %rdx,%rbx + + andq %r15,%rdi + rorq $28,%r14 + addq %r13,%r12 + + xorq %rdi,%rbx + addq %r12,%r9 + addq %r12,%rbx + + leaq 8(%rbp),%rbp + movq 0(%rsp),%r13 + movq 104(%rsp),%rdi + + movq %r13,%r12 + rorq $7,%r13 + addq %r14,%rbx + movq %rdi,%r14 + rorq $42,%rdi + + xorq %r12,%r13 + shrq $7,%r12 + rorq $1,%r13 + xorq %r14,%rdi + shrq $6,%r14 + + rorq $19,%rdi + xorq %r13,%r12 + xorq %r14,%rdi + addq 64(%rsp),%r12 + + addq 120(%rsp),%r12 + movq %r9,%r13 + addq %rdi,%r12 + movq %rbx,%r14 + rorq $23,%r13 + movq %r10,%rdi + + xorq %r9,%r13 + rorq $5,%r14 + xorq %r11,%rdi + + movq %r12,120(%rsp) + xorq %rbx,%r14 + andq %r9,%rdi + + rorq $4,%r13 + addq %rax,%r12 + xorq %r11,%rdi + + rorq $6,%r14 + xorq %r9,%r13 + addq %rdi,%r12 + + movq %rbx,%rdi + addq (%rbp),%r12 + xorq %rbx,%r14 + + xorq %rcx,%rdi + rorq $14,%r13 + movq %rcx,%rax + + andq %rdi,%r15 + rorq $28,%r14 + addq %r13,%r12 + + xorq %r15,%rax + addq %r12,%r8 + addq %r12,%rax + + leaq 24(%rbp),%rbp + cmpb $0,7(%rbp) + jnz L$rounds_16_xx + + movq 128+0(%rsp),%rdi + addq %r14,%rax + leaq 128(%rsi),%rsi + + addq 0(%rdi),%rax + addq 8(%rdi),%rbx + addq 16(%rdi),%rcx + addq 24(%rdi),%rdx + addq 32(%rdi),%r8 + addq 40(%rdi),%r9 + addq 48(%rdi),%r10 + addq 56(%rdi),%r11 + + cmpq 128+16(%rsp),%rsi + + movq %rax,0(%rdi) + movq %rbx,8(%rdi) + movq %rcx,16(%rdi) + movq %rdx,24(%rdi) + movq %r8,32(%rdi) + movq %r9,40(%rdi) + movq %r10,48(%rdi) + movq %r11,56(%rdi) + jb L$loop + + movq 152(%rsp),%rsi + + movq -48(%rsi),%r15 + + movq -40(%rsi),%r14 + + movq -32(%rsi),%r13 + + movq -24(%rsi),%r12 + + movq -16(%rsi),%rbp + + movq -8(%rsi),%rbx + + leaq (%rsi),%rsp + +L$epilogue: + .byte 0xf3,0xc3 + + +.p2align 6 + +K512: +.quad 0x428a2f98d728ae22,0x7137449123ef65cd +.quad 0x428a2f98d728ae22,0x7137449123ef65cd +.quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc +.quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc +.quad 0x3956c25bf348b538,0x59f111f1b605d019 +.quad 0x3956c25bf348b538,0x59f111f1b605d019 +.quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118 +.quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118 +.quad 0xd807aa98a3030242,0x12835b0145706fbe +.quad 0xd807aa98a3030242,0x12835b0145706fbe +.quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2 +.quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2 +.quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1 +.quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1 +.quad 0x9bdc06a725c71235,0xc19bf174cf692694 +.quad 0x9bdc06a725c71235,0xc19bf174cf692694 +.quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3 +.quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3 +.quad 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65 +.quad 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65 +.quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483 +.quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483 +.quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5 +.quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5 +.quad 0x983e5152ee66dfab,0xa831c66d2db43210 +.quad 0x983e5152ee66dfab,0xa831c66d2db43210 +.quad 0xb00327c898fb213f,0xbf597fc7beef0ee4 +.quad 0xb00327c898fb213f,0xbf597fc7beef0ee4 +.quad 0xc6e00bf33da88fc2,0xd5a79147930aa725 +.quad 0xc6e00bf33da88fc2,0xd5a79147930aa725 +.quad 0x06ca6351e003826f,0x142929670a0e6e70 +.quad 0x06ca6351e003826f,0x142929670a0e6e70 +.quad 0x27b70a8546d22ffc,0x2e1b21385c26c926 +.quad 0x27b70a8546d22ffc,0x2e1b21385c26c926 +.quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df +.quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df +.quad 0x650a73548baf63de,0x766a0abb3c77b2a8 +.quad 0x650a73548baf63de,0x766a0abb3c77b2a8 +.quad 0x81c2c92e47edaee6,0x92722c851482353b +.quad 0x81c2c92e47edaee6,0x92722c851482353b +.quad 0xa2bfe8a14cf10364,0xa81a664bbc423001 +.quad 0xa2bfe8a14cf10364,0xa81a664bbc423001 +.quad 0xc24b8b70d0f89791,0xc76c51a30654be30 +.quad 0xc24b8b70d0f89791,0xc76c51a30654be30 +.quad 0xd192e819d6ef5218,0xd69906245565a910 +.quad 0xd192e819d6ef5218,0xd69906245565a910 +.quad 0xf40e35855771202a,0x106aa07032bbd1b8 +.quad 0xf40e35855771202a,0x106aa07032bbd1b8 +.quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53 +.quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53 +.quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8 +.quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8 +.quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb +.quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb +.quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3 +.quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3 +.quad 0x748f82ee5defb2fc,0x78a5636f43172f60 +.quad 0x748f82ee5defb2fc,0x78a5636f43172f60 +.quad 0x84c87814a1f0ab72,0x8cc702081a6439ec +.quad 0x84c87814a1f0ab72,0x8cc702081a6439ec +.quad 0x90befffa23631e28,0xa4506cebde82bde9 +.quad 0x90befffa23631e28,0xa4506cebde82bde9 +.quad 0xbef9a3f7b2c67915,0xc67178f2e372532b +.quad 0xbef9a3f7b2c67915,0xc67178f2e372532b +.quad 0xca273eceea26619c,0xd186b8c721c0c207 +.quad 0xca273eceea26619c,0xd186b8c721c0c207 +.quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178 +.quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178 +.quad 0x06f067aa72176fba,0x0a637dc5a2c898a6 +.quad 0x06f067aa72176fba,0x0a637dc5a2c898a6 +.quad 0x113f9804bef90dae,0x1b710b35131c471b +.quad 0x113f9804bef90dae,0x1b710b35131c471b +.quad 0x28db77f523047d84,0x32caab7b40c72493 +.quad 0x28db77f523047d84,0x32caab7b40c72493 +.quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c +.quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c +.quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a +.quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a +.quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817 +.quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817 + +.quad 0x0001020304050607,0x08090a0b0c0d0e0f +.quad 0x0001020304050607,0x08090a0b0c0d0e0f +.byte 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 + +.p2align 6 +sha512_block_data_order_xop: + +L$xop_shortcut: + movq %rsp,%rax + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + shlq $4,%rdx + subq $160,%rsp + leaq (%rsi,%rdx,8),%rdx + andq $-64,%rsp + movq %rdi,128+0(%rsp) + movq %rsi,128+8(%rsp) + movq %rdx,128+16(%rsp) + movq %rax,152(%rsp) + +L$prologue_xop: + + vzeroupper + movq 0(%rdi),%rax + movq 8(%rdi),%rbx + movq 16(%rdi),%rcx + movq 24(%rdi),%rdx + movq 32(%rdi),%r8 + movq 40(%rdi),%r9 + movq 48(%rdi),%r10 + movq 56(%rdi),%r11 + jmp L$loop_xop +.p2align 4 +L$loop_xop: + vmovdqa K512+1280(%rip),%xmm11 + vmovdqu 0(%rsi),%xmm0 + leaq K512+128(%rip),%rbp + vmovdqu 16(%rsi),%xmm1 + vmovdqu 32(%rsi),%xmm2 + vpshufb %xmm11,%xmm0,%xmm0 + vmovdqu 48(%rsi),%xmm3 + vpshufb %xmm11,%xmm1,%xmm1 + vmovdqu 64(%rsi),%xmm4 + vpshufb %xmm11,%xmm2,%xmm2 + vmovdqu 80(%rsi),%xmm5 + vpshufb %xmm11,%xmm3,%xmm3 + vmovdqu 96(%rsi),%xmm6 + vpshufb %xmm11,%xmm4,%xmm4 + vmovdqu 112(%rsi),%xmm7 + vpshufb %xmm11,%xmm5,%xmm5 + vpaddq -128(%rbp),%xmm0,%xmm8 + vpshufb %xmm11,%xmm6,%xmm6 + vpaddq -96(%rbp),%xmm1,%xmm9 + vpshufb %xmm11,%xmm7,%xmm7 + vpaddq -64(%rbp),%xmm2,%xmm10 + vpaddq -32(%rbp),%xmm3,%xmm11 + vmovdqa %xmm8,0(%rsp) + vpaddq 0(%rbp),%xmm4,%xmm8 + vmovdqa %xmm9,16(%rsp) + vpaddq 32(%rbp),%xmm5,%xmm9 + vmovdqa %xmm10,32(%rsp) + vpaddq 64(%rbp),%xmm6,%xmm10 + vmovdqa %xmm11,48(%rsp) + vpaddq 96(%rbp),%xmm7,%xmm11 + vmovdqa %xmm8,64(%rsp) + movq %rax,%r14 + vmovdqa %xmm9,80(%rsp) + movq %rbx,%rdi + vmovdqa %xmm10,96(%rsp) + xorq %rcx,%rdi + vmovdqa %xmm11,112(%rsp) + movq %r8,%r13 + jmp L$xop_00_47 + +.p2align 4 +L$xop_00_47: + addq $256,%rbp + vpalignr $8,%xmm0,%xmm1,%xmm8 + rorq $23,%r13 + movq %r14,%rax + vpalignr $8,%xmm4,%xmm5,%xmm11 + movq %r9,%r12 + rorq $5,%r14 +.byte 143,72,120,195,200,56 + xorq %r8,%r13 + xorq %r10,%r12 + vpsrlq $7,%xmm8,%xmm8 + rorq $4,%r13 + xorq %rax,%r14 + vpaddq %xmm11,%xmm0,%xmm0 + andq %r8,%r12 + xorq %r8,%r13 + addq 0(%rsp),%r11 + movq %rax,%r15 +.byte 143,72,120,195,209,7 + xorq %r10,%r12 + rorq $6,%r14 + vpxor %xmm9,%xmm8,%xmm8 + xorq %rbx,%r15 + addq %r12,%r11 + rorq $14,%r13 + andq %r15,%rdi +.byte 143,104,120,195,223,3 + xorq %rax,%r14 + addq %r13,%r11 + vpxor %xmm10,%xmm8,%xmm8 + xorq %rbx,%rdi + rorq $28,%r14 + vpsrlq $6,%xmm7,%xmm10 + addq %r11,%rdx + addq %rdi,%r11 + vpaddq %xmm8,%xmm0,%xmm0 + movq %rdx,%r13 + addq %r11,%r14 +.byte 143,72,120,195,203,42 + rorq $23,%r13 + movq %r14,%r11 + vpxor %xmm10,%xmm11,%xmm11 + movq %r8,%r12 + rorq $5,%r14 + xorq %rdx,%r13 + xorq %r9,%r12 + vpxor %xmm9,%xmm11,%xmm11 + rorq $4,%r13 + xorq %r11,%r14 + andq %rdx,%r12 + xorq %rdx,%r13 + vpaddq %xmm11,%xmm0,%xmm0 + addq 8(%rsp),%r10 + movq %r11,%rdi + xorq %r9,%r12 + rorq $6,%r14 + vpaddq -128(%rbp),%xmm0,%xmm10 + xorq %rax,%rdi + addq %r12,%r10 + rorq $14,%r13 + andq %rdi,%r15 + xorq %r11,%r14 + addq %r13,%r10 + xorq %rax,%r15 + rorq $28,%r14 + addq %r10,%rcx + addq %r15,%r10 + movq %rcx,%r13 + addq %r10,%r14 + vmovdqa %xmm10,0(%rsp) + vpalignr $8,%xmm1,%xmm2,%xmm8 + rorq $23,%r13 + movq %r14,%r10 + vpalignr $8,%xmm5,%xmm6,%xmm11 + movq %rdx,%r12 + rorq $5,%r14 +.byte 143,72,120,195,200,56 + xorq %rcx,%r13 + xorq %r8,%r12 + vpsrlq $7,%xmm8,%xmm8 + rorq $4,%r13 + xorq %r10,%r14 + vpaddq %xmm11,%xmm1,%xmm1 + andq %rcx,%r12 + xorq %rcx,%r13 + addq 16(%rsp),%r9 + movq %r10,%r15 +.byte 143,72,120,195,209,7 + xorq %r8,%r12 + rorq $6,%r14 + vpxor %xmm9,%xmm8,%xmm8 + xorq %r11,%r15 + addq %r12,%r9 + rorq $14,%r13 + andq %r15,%rdi +.byte 143,104,120,195,216,3 + xorq %r10,%r14 + addq %r13,%r9 + vpxor %xmm10,%xmm8,%xmm8 + xorq %r11,%rdi + rorq $28,%r14 + vpsrlq $6,%xmm0,%xmm10 + addq %r9,%rbx + addq %rdi,%r9 + vpaddq %xmm8,%xmm1,%xmm1 + movq %rbx,%r13 + addq %r9,%r14 +.byte 143,72,120,195,203,42 + rorq $23,%r13 + movq %r14,%r9 + vpxor %xmm10,%xmm11,%xmm11 + movq %rcx,%r12 + rorq $5,%r14 + xorq %rbx,%r13 + xorq %rdx,%r12 + vpxor %xmm9,%xmm11,%xmm11 + rorq $4,%r13 + xorq %r9,%r14 + andq %rbx,%r12 + xorq %rbx,%r13 + vpaddq %xmm11,%xmm1,%xmm1 + addq 24(%rsp),%r8 + movq %r9,%rdi + xorq %rdx,%r12 + rorq $6,%r14 + vpaddq -96(%rbp),%xmm1,%xmm10 + xorq %r10,%rdi + addq %r12,%r8 + rorq $14,%r13 + andq %rdi,%r15 + xorq %r9,%r14 + addq %r13,%r8 + xorq %r10,%r15 + rorq $28,%r14 + addq %r8,%rax + addq %r15,%r8 + movq %rax,%r13 + addq %r8,%r14 + vmovdqa %xmm10,16(%rsp) + vpalignr $8,%xmm2,%xmm3,%xmm8 + rorq $23,%r13 + movq %r14,%r8 + vpalignr $8,%xmm6,%xmm7,%xmm11 + movq %rbx,%r12 + rorq $5,%r14 +.byte 143,72,120,195,200,56 + xorq %rax,%r13 + xorq %rcx,%r12 + vpsrlq $7,%xmm8,%xmm8 + rorq $4,%r13 + xorq %r8,%r14 + vpaddq %xmm11,%xmm2,%xmm2 + andq %rax,%r12 + xorq %rax,%r13 + addq 32(%rsp),%rdx + movq %r8,%r15 +.byte 143,72,120,195,209,7 + xorq %rcx,%r12 + rorq $6,%r14 + vpxor %xmm9,%xmm8,%xmm8 + xorq %r9,%r15 + addq %r12,%rdx + rorq $14,%r13 + andq %r15,%rdi +.byte 143,104,120,195,217,3 + xorq %r8,%r14 + addq %r13,%rdx + vpxor %xmm10,%xmm8,%xmm8 + xorq %r9,%rdi + rorq $28,%r14 + vpsrlq $6,%xmm1,%xmm10 + addq %rdx,%r11 + addq %rdi,%rdx + vpaddq %xmm8,%xmm2,%xmm2 + movq %r11,%r13 + addq %rdx,%r14 +.byte 143,72,120,195,203,42 + rorq $23,%r13 + movq %r14,%rdx + vpxor %xmm10,%xmm11,%xmm11 + movq %rax,%r12 + rorq $5,%r14 + xorq %r11,%r13 + xorq %rbx,%r12 + vpxor %xmm9,%xmm11,%xmm11 + rorq $4,%r13 + xorq %rdx,%r14 + andq %r11,%r12 + xorq %r11,%r13 + vpaddq %xmm11,%xmm2,%xmm2 + addq 40(%rsp),%rcx + movq %rdx,%rdi + xorq %rbx,%r12 + rorq $6,%r14 + vpaddq -64(%rbp),%xmm2,%xmm10 + xorq %r8,%rdi + addq %r12,%rcx + rorq $14,%r13 + andq %rdi,%r15 + xorq %rdx,%r14 + addq %r13,%rcx + xorq %r8,%r15 + rorq $28,%r14 + addq %rcx,%r10 + addq %r15,%rcx + movq %r10,%r13 + addq %rcx,%r14 + vmovdqa %xmm10,32(%rsp) + vpalignr $8,%xmm3,%xmm4,%xmm8 + rorq $23,%r13 + movq %r14,%rcx + vpalignr $8,%xmm7,%xmm0,%xmm11 + movq %r11,%r12 + rorq $5,%r14 +.byte 143,72,120,195,200,56 + xorq %r10,%r13 + xorq %rax,%r12 + vpsrlq $7,%xmm8,%xmm8 + rorq $4,%r13 + xorq %rcx,%r14 + vpaddq %xmm11,%xmm3,%xmm3 + andq %r10,%r12 + xorq %r10,%r13 + addq 48(%rsp),%rbx + movq %rcx,%r15 +.byte 143,72,120,195,209,7 + xorq %rax,%r12 + rorq $6,%r14 + vpxor %xmm9,%xmm8,%xmm8 + xorq %rdx,%r15 + addq %r12,%rbx + rorq $14,%r13 + andq %r15,%rdi +.byte 143,104,120,195,218,3 + xorq %rcx,%r14 + addq %r13,%rbx + vpxor %xmm10,%xmm8,%xmm8 + xorq %rdx,%rdi + rorq $28,%r14 + vpsrlq $6,%xmm2,%xmm10 + addq %rbx,%r9 + addq %rdi,%rbx + vpaddq %xmm8,%xmm3,%xmm3 + movq %r9,%r13 + addq %rbx,%r14 +.byte 143,72,120,195,203,42 + rorq $23,%r13 + movq %r14,%rbx + vpxor %xmm10,%xmm11,%xmm11 + movq %r10,%r12 + rorq $5,%r14 + xorq %r9,%r13 + xorq %r11,%r12 + vpxor %xmm9,%xmm11,%xmm11 + rorq $4,%r13 + xorq %rbx,%r14 + andq %r9,%r12 + xorq %r9,%r13 + vpaddq %xmm11,%xmm3,%xmm3 + addq 56(%rsp),%rax + movq %rbx,%rdi + xorq %r11,%r12 + rorq $6,%r14 + vpaddq -32(%rbp),%xmm3,%xmm10 + xorq %rcx,%rdi + addq %r12,%rax + rorq $14,%r13 + andq %rdi,%r15 + xorq %rbx,%r14 + addq %r13,%rax + xorq %rcx,%r15 + rorq $28,%r14 + addq %rax,%r8 + addq %r15,%rax + movq %r8,%r13 + addq %rax,%r14 + vmovdqa %xmm10,48(%rsp) + vpalignr $8,%xmm4,%xmm5,%xmm8 + rorq $23,%r13 + movq %r14,%rax + vpalignr $8,%xmm0,%xmm1,%xmm11 + movq %r9,%r12 + rorq $5,%r14 +.byte 143,72,120,195,200,56 + xorq %r8,%r13 + xorq %r10,%r12 + vpsrlq $7,%xmm8,%xmm8 + rorq $4,%r13 + xorq %rax,%r14 + vpaddq %xmm11,%xmm4,%xmm4 + andq %r8,%r12 + xorq %r8,%r13 + addq 64(%rsp),%r11 + movq %rax,%r15 +.byte 143,72,120,195,209,7 + xorq %r10,%r12 + rorq $6,%r14 + vpxor %xmm9,%xmm8,%xmm8 + xorq %rbx,%r15 + addq %r12,%r11 + rorq $14,%r13 + andq %r15,%rdi +.byte 143,104,120,195,219,3 + xorq %rax,%r14 + addq %r13,%r11 + vpxor %xmm10,%xmm8,%xmm8 + xorq %rbx,%rdi + rorq $28,%r14 + vpsrlq $6,%xmm3,%xmm10 + addq %r11,%rdx + addq %rdi,%r11 + vpaddq %xmm8,%xmm4,%xmm4 + movq %rdx,%r13 + addq %r11,%r14 +.byte 143,72,120,195,203,42 + rorq $23,%r13 + movq %r14,%r11 + vpxor %xmm10,%xmm11,%xmm11 + movq %r8,%r12 + rorq $5,%r14 + xorq %rdx,%r13 + xorq %r9,%r12 + vpxor %xmm9,%xmm11,%xmm11 + rorq $4,%r13 + xorq %r11,%r14 + andq %rdx,%r12 + xorq %rdx,%r13 + vpaddq %xmm11,%xmm4,%xmm4 + addq 72(%rsp),%r10 + movq %r11,%rdi + xorq %r9,%r12 + rorq $6,%r14 + vpaddq 0(%rbp),%xmm4,%xmm10 + xorq %rax,%rdi + addq %r12,%r10 + rorq $14,%r13 + andq %rdi,%r15 + xorq %r11,%r14 + addq %r13,%r10 + xorq %rax,%r15 + rorq $28,%r14 + addq %r10,%rcx + addq %r15,%r10 + movq %rcx,%r13 + addq %r10,%r14 + vmovdqa %xmm10,64(%rsp) + vpalignr $8,%xmm5,%xmm6,%xmm8 + rorq $23,%r13 + movq %r14,%r10 + vpalignr $8,%xmm1,%xmm2,%xmm11 + movq %rdx,%r12 + rorq $5,%r14 +.byte 143,72,120,195,200,56 + xorq %rcx,%r13 + xorq %r8,%r12 + vpsrlq $7,%xmm8,%xmm8 + rorq $4,%r13 + xorq %r10,%r14 + vpaddq %xmm11,%xmm5,%xmm5 + andq %rcx,%r12 + xorq %rcx,%r13 + addq 80(%rsp),%r9 + movq %r10,%r15 +.byte 143,72,120,195,209,7 + xorq %r8,%r12 + rorq $6,%r14 + vpxor %xmm9,%xmm8,%xmm8 + xorq %r11,%r15 + addq %r12,%r9 + rorq $14,%r13 + andq %r15,%rdi +.byte 143,104,120,195,220,3 + xorq %r10,%r14 + addq %r13,%r9 + vpxor %xmm10,%xmm8,%xmm8 + xorq %r11,%rdi + rorq $28,%r14 + vpsrlq $6,%xmm4,%xmm10 + addq %r9,%rbx + addq %rdi,%r9 + vpaddq %xmm8,%xmm5,%xmm5 + movq %rbx,%r13 + addq %r9,%r14 +.byte 143,72,120,195,203,42 + rorq $23,%r13 + movq %r14,%r9 + vpxor %xmm10,%xmm11,%xmm11 + movq %rcx,%r12 + rorq $5,%r14 + xorq %rbx,%r13 + xorq %rdx,%r12 + vpxor %xmm9,%xmm11,%xmm11 + rorq $4,%r13 + xorq %r9,%r14 + andq %rbx,%r12 + xorq %rbx,%r13 + vpaddq %xmm11,%xmm5,%xmm5 + addq 88(%rsp),%r8 + movq %r9,%rdi + xorq %rdx,%r12 + rorq $6,%r14 + vpaddq 32(%rbp),%xmm5,%xmm10 + xorq %r10,%rdi + addq %r12,%r8 + rorq $14,%r13 + andq %rdi,%r15 + xorq %r9,%r14 + addq %r13,%r8 + xorq %r10,%r15 + rorq $28,%r14 + addq %r8,%rax + addq %r15,%r8 + movq %rax,%r13 + addq %r8,%r14 + vmovdqa %xmm10,80(%rsp) + vpalignr $8,%xmm6,%xmm7,%xmm8 + rorq $23,%r13 + movq %r14,%r8 + vpalignr $8,%xmm2,%xmm3,%xmm11 + movq %rbx,%r12 + rorq $5,%r14 +.byte 143,72,120,195,200,56 + xorq %rax,%r13 + xorq %rcx,%r12 + vpsrlq $7,%xmm8,%xmm8 + rorq $4,%r13 + xorq %r8,%r14 + vpaddq %xmm11,%xmm6,%xmm6 + andq %rax,%r12 + xorq %rax,%r13 + addq 96(%rsp),%rdx + movq %r8,%r15 +.byte 143,72,120,195,209,7 + xorq %rcx,%r12 + rorq $6,%r14 + vpxor %xmm9,%xmm8,%xmm8 + xorq %r9,%r15 + addq %r12,%rdx + rorq $14,%r13 + andq %r15,%rdi +.byte 143,104,120,195,221,3 + xorq %r8,%r14 + addq %r13,%rdx + vpxor %xmm10,%xmm8,%xmm8 + xorq %r9,%rdi + rorq $28,%r14 + vpsrlq $6,%xmm5,%xmm10 + addq %rdx,%r11 + addq %rdi,%rdx + vpaddq %xmm8,%xmm6,%xmm6 + movq %r11,%r13 + addq %rdx,%r14 +.byte 143,72,120,195,203,42 + rorq $23,%r13 + movq %r14,%rdx + vpxor %xmm10,%xmm11,%xmm11 + movq %rax,%r12 + rorq $5,%r14 + xorq %r11,%r13 + xorq %rbx,%r12 + vpxor %xmm9,%xmm11,%xmm11 + rorq $4,%r13 + xorq %rdx,%r14 + andq %r11,%r12 + xorq %r11,%r13 + vpaddq %xmm11,%xmm6,%xmm6 + addq 104(%rsp),%rcx + movq %rdx,%rdi + xorq %rbx,%r12 + rorq $6,%r14 + vpaddq 64(%rbp),%xmm6,%xmm10 + xorq %r8,%rdi + addq %r12,%rcx + rorq $14,%r13 + andq %rdi,%r15 + xorq %rdx,%r14 + addq %r13,%rcx + xorq %r8,%r15 + rorq $28,%r14 + addq %rcx,%r10 + addq %r15,%rcx + movq %r10,%r13 + addq %rcx,%r14 + vmovdqa %xmm10,96(%rsp) + vpalignr $8,%xmm7,%xmm0,%xmm8 + rorq $23,%r13 + movq %r14,%rcx + vpalignr $8,%xmm3,%xmm4,%xmm11 + movq %r11,%r12 + rorq $5,%r14 +.byte 143,72,120,195,200,56 + xorq %r10,%r13 + xorq %rax,%r12 + vpsrlq $7,%xmm8,%xmm8 + rorq $4,%r13 + xorq %rcx,%r14 + vpaddq %xmm11,%xmm7,%xmm7 + andq %r10,%r12 + xorq %r10,%r13 + addq 112(%rsp),%rbx + movq %rcx,%r15 +.byte 143,72,120,195,209,7 + xorq %rax,%r12 + rorq $6,%r14 + vpxor %xmm9,%xmm8,%xmm8 + xorq %rdx,%r15 + addq %r12,%rbx + rorq $14,%r13 + andq %r15,%rdi +.byte 143,104,120,195,222,3 + xorq %rcx,%r14 + addq %r13,%rbx + vpxor %xmm10,%xmm8,%xmm8 + xorq %rdx,%rdi + rorq $28,%r14 + vpsrlq $6,%xmm6,%xmm10 + addq %rbx,%r9 + addq %rdi,%rbx + vpaddq %xmm8,%xmm7,%xmm7 + movq %r9,%r13 + addq %rbx,%r14 +.byte 143,72,120,195,203,42 + rorq $23,%r13 + movq %r14,%rbx + vpxor %xmm10,%xmm11,%xmm11 + movq %r10,%r12 + rorq $5,%r14 + xorq %r9,%r13 + xorq %r11,%r12 + vpxor %xmm9,%xmm11,%xmm11 + rorq $4,%r13 + xorq %rbx,%r14 + andq %r9,%r12 + xorq %r9,%r13 + vpaddq %xmm11,%xmm7,%xmm7 + addq 120(%rsp),%rax + movq %rbx,%rdi + xorq %r11,%r12 + rorq $6,%r14 + vpaddq 96(%rbp),%xmm7,%xmm10 + xorq %rcx,%rdi + addq %r12,%rax + rorq $14,%r13 + andq %rdi,%r15 + xorq %rbx,%r14 + addq %r13,%rax + xorq %rcx,%r15 + rorq $28,%r14 + addq %rax,%r8 + addq %r15,%rax + movq %r8,%r13 + addq %rax,%r14 + vmovdqa %xmm10,112(%rsp) + cmpb $0,135(%rbp) + jne L$xop_00_47 + rorq $23,%r13 + movq %r14,%rax + movq %r9,%r12 + rorq $5,%r14 + xorq %r8,%r13 + xorq %r10,%r12 + rorq $4,%r13 + xorq %rax,%r14 + andq %r8,%r12 + xorq %r8,%r13 + addq 0(%rsp),%r11 + movq %rax,%r15 + xorq %r10,%r12 + rorq $6,%r14 + xorq %rbx,%r15 + addq %r12,%r11 + rorq $14,%r13 + andq %r15,%rdi + xorq %rax,%r14 + addq %r13,%r11 + xorq %rbx,%rdi + rorq $28,%r14 + addq %r11,%rdx + addq %rdi,%r11 + movq %rdx,%r13 + addq %r11,%r14 + rorq $23,%r13 + movq %r14,%r11 + movq %r8,%r12 + rorq $5,%r14 + xorq %rdx,%r13 + xorq %r9,%r12 + rorq $4,%r13 + xorq %r11,%r14 + andq %rdx,%r12 + xorq %rdx,%r13 + addq 8(%rsp),%r10 + movq %r11,%rdi + xorq %r9,%r12 + rorq $6,%r14 + xorq %rax,%rdi + addq %r12,%r10 + rorq $14,%r13 + andq %rdi,%r15 + xorq %r11,%r14 + addq %r13,%r10 + xorq %rax,%r15 + rorq $28,%r14 + addq %r10,%rcx + addq %r15,%r10 + movq %rcx,%r13 + addq %r10,%r14 + rorq $23,%r13 + movq %r14,%r10 + movq %rdx,%r12 + rorq $5,%r14 + xorq %rcx,%r13 + xorq %r8,%r12 + rorq $4,%r13 + xorq %r10,%r14 + andq %rcx,%r12 + xorq %rcx,%r13 + addq 16(%rsp),%r9 + movq %r10,%r15 + xorq %r8,%r12 + rorq $6,%r14 + xorq %r11,%r15 + addq %r12,%r9 + rorq $14,%r13 + andq %r15,%rdi + xorq %r10,%r14 + addq %r13,%r9 + xorq %r11,%rdi + rorq $28,%r14 + addq %r9,%rbx + addq %rdi,%r9 + movq %rbx,%r13 + addq %r9,%r14 + rorq $23,%r13 + movq %r14,%r9 + movq %rcx,%r12 + rorq $5,%r14 + xorq %rbx,%r13 + xorq %rdx,%r12 + rorq $4,%r13 + xorq %r9,%r14 + andq %rbx,%r12 + xorq %rbx,%r13 + addq 24(%rsp),%r8 + movq %r9,%rdi + xorq %rdx,%r12 + rorq $6,%r14 + xorq %r10,%rdi + addq %r12,%r8 + rorq $14,%r13 + andq %rdi,%r15 + xorq %r9,%r14 + addq %r13,%r8 + xorq %r10,%r15 + rorq $28,%r14 + addq %r8,%rax + addq %r15,%r8 + movq %rax,%r13 + addq %r8,%r14 + rorq $23,%r13 + movq %r14,%r8 + movq %rbx,%r12 + rorq $5,%r14 + xorq %rax,%r13 + xorq %rcx,%r12 + rorq $4,%r13 + xorq %r8,%r14 + andq %rax,%r12 + xorq %rax,%r13 + addq 32(%rsp),%rdx + movq %r8,%r15 + xorq %rcx,%r12 + rorq $6,%r14 + xorq %r9,%r15 + addq %r12,%rdx + rorq $14,%r13 + andq %r15,%rdi + xorq %r8,%r14 + addq %r13,%rdx + xorq %r9,%rdi + rorq $28,%r14 + addq %rdx,%r11 + addq %rdi,%rdx + movq %r11,%r13 + addq %rdx,%r14 + rorq $23,%r13 + movq %r14,%rdx + movq %rax,%r12 + rorq $5,%r14 + xorq %r11,%r13 + xorq %rbx,%r12 + rorq $4,%r13 + xorq %rdx,%r14 + andq %r11,%r12 + xorq %r11,%r13 + addq 40(%rsp),%rcx + movq %rdx,%rdi + xorq %rbx,%r12 + rorq $6,%r14 + xorq %r8,%rdi + addq %r12,%rcx + rorq $14,%r13 + andq %rdi,%r15 + xorq %rdx,%r14 + addq %r13,%rcx + xorq %r8,%r15 + rorq $28,%r14 + addq %rcx,%r10 + addq %r15,%rcx + movq %r10,%r13 + addq %rcx,%r14 + rorq $23,%r13 + movq %r14,%rcx + movq %r11,%r12 + rorq $5,%r14 + xorq %r10,%r13 + xorq %rax,%r12 + rorq $4,%r13 + xorq %rcx,%r14 + andq %r10,%r12 + xorq %r10,%r13 + addq 48(%rsp),%rbx + movq %rcx,%r15 + xorq %rax,%r12 + rorq $6,%r14 + xorq %rdx,%r15 + addq %r12,%rbx + rorq $14,%r13 + andq %r15,%rdi + xorq %rcx,%r14 + addq %r13,%rbx + xorq %rdx,%rdi + rorq $28,%r14 + addq %rbx,%r9 + addq %rdi,%rbx + movq %r9,%r13 + addq %rbx,%r14 + rorq $23,%r13 + movq %r14,%rbx + movq %r10,%r12 + rorq $5,%r14 + xorq %r9,%r13 + xorq %r11,%r12 + rorq $4,%r13 + xorq %rbx,%r14 + andq %r9,%r12 + xorq %r9,%r13 + addq 56(%rsp),%rax + movq %rbx,%rdi + xorq %r11,%r12 + rorq $6,%r14 + xorq %rcx,%rdi + addq %r12,%rax + rorq $14,%r13 + andq %rdi,%r15 + xorq %rbx,%r14 + addq %r13,%rax + xorq %rcx,%r15 + rorq $28,%r14 + addq %rax,%r8 + addq %r15,%rax + movq %r8,%r13 + addq %rax,%r14 + rorq $23,%r13 + movq %r14,%rax + movq %r9,%r12 + rorq $5,%r14 + xorq %r8,%r13 + xorq %r10,%r12 + rorq $4,%r13 + xorq %rax,%r14 + andq %r8,%r12 + xorq %r8,%r13 + addq 64(%rsp),%r11 + movq %rax,%r15 + xorq %r10,%r12 + rorq $6,%r14 + xorq %rbx,%r15 + addq %r12,%r11 + rorq $14,%r13 + andq %r15,%rdi + xorq %rax,%r14 + addq %r13,%r11 + xorq %rbx,%rdi + rorq $28,%r14 + addq %r11,%rdx + addq %rdi,%r11 + movq %rdx,%r13 + addq %r11,%r14 + rorq $23,%r13 + movq %r14,%r11 + movq %r8,%r12 + rorq $5,%r14 + xorq %rdx,%r13 + xorq %r9,%r12 + rorq $4,%r13 + xorq %r11,%r14 + andq %rdx,%r12 + xorq %rdx,%r13 + addq 72(%rsp),%r10 + movq %r11,%rdi + xorq %r9,%r12 + rorq $6,%r14 + xorq %rax,%rdi + addq %r12,%r10 + rorq $14,%r13 + andq %rdi,%r15 + xorq %r11,%r14 + addq %r13,%r10 + xorq %rax,%r15 + rorq $28,%r14 + addq %r10,%rcx + addq %r15,%r10 + movq %rcx,%r13 + addq %r10,%r14 + rorq $23,%r13 + movq %r14,%r10 + movq %rdx,%r12 + rorq $5,%r14 + xorq %rcx,%r13 + xorq %r8,%r12 + rorq $4,%r13 + xorq %r10,%r14 + andq %rcx,%r12 + xorq %rcx,%r13 + addq 80(%rsp),%r9 + movq %r10,%r15 + xorq %r8,%r12 + rorq $6,%r14 + xorq %r11,%r15 + addq %r12,%r9 + rorq $14,%r13 + andq %r15,%rdi + xorq %r10,%r14 + addq %r13,%r9 + xorq %r11,%rdi + rorq $28,%r14 + addq %r9,%rbx + addq %rdi,%r9 + movq %rbx,%r13 + addq %r9,%r14 + rorq $23,%r13 + movq %r14,%r9 + movq %rcx,%r12 + rorq $5,%r14 + xorq %rbx,%r13 + xorq %rdx,%r12 + rorq $4,%r13 + xorq %r9,%r14 + andq %rbx,%r12 + xorq %rbx,%r13 + addq 88(%rsp),%r8 + movq %r9,%rdi + xorq %rdx,%r12 + rorq $6,%r14 + xorq %r10,%rdi + addq %r12,%r8 + rorq $14,%r13 + andq %rdi,%r15 + xorq %r9,%r14 + addq %r13,%r8 + xorq %r10,%r15 + rorq $28,%r14 + addq %r8,%rax + addq %r15,%r8 + movq %rax,%r13 + addq %r8,%r14 + rorq $23,%r13 + movq %r14,%r8 + movq %rbx,%r12 + rorq $5,%r14 + xorq %rax,%r13 + xorq %rcx,%r12 + rorq $4,%r13 + xorq %r8,%r14 + andq %rax,%r12 + xorq %rax,%r13 + addq 96(%rsp),%rdx + movq %r8,%r15 + xorq %rcx,%r12 + rorq $6,%r14 + xorq %r9,%r15 + addq %r12,%rdx + rorq $14,%r13 + andq %r15,%rdi + xorq %r8,%r14 + addq %r13,%rdx + xorq %r9,%rdi + rorq $28,%r14 + addq %rdx,%r11 + addq %rdi,%rdx + movq %r11,%r13 + addq %rdx,%r14 + rorq $23,%r13 + movq %r14,%rdx + movq %rax,%r12 + rorq $5,%r14 + xorq %r11,%r13 + xorq %rbx,%r12 + rorq $4,%r13 + xorq %rdx,%r14 + andq %r11,%r12 + xorq %r11,%r13 + addq 104(%rsp),%rcx + movq %rdx,%rdi + xorq %rbx,%r12 + rorq $6,%r14 + xorq %r8,%rdi + addq %r12,%rcx + rorq $14,%r13 + andq %rdi,%r15 + xorq %rdx,%r14 + addq %r13,%rcx + xorq %r8,%r15 + rorq $28,%r14 + addq %rcx,%r10 + addq %r15,%rcx + movq %r10,%r13 + addq %rcx,%r14 + rorq $23,%r13 + movq %r14,%rcx + movq %r11,%r12 + rorq $5,%r14 + xorq %r10,%r13 + xorq %rax,%r12 + rorq $4,%r13 + xorq %rcx,%r14 + andq %r10,%r12 + xorq %r10,%r13 + addq 112(%rsp),%rbx + movq %rcx,%r15 + xorq %rax,%r12 + rorq $6,%r14 + xorq %rdx,%r15 + addq %r12,%rbx + rorq $14,%r13 + andq %r15,%rdi + xorq %rcx,%r14 + addq %r13,%rbx + xorq %rdx,%rdi + rorq $28,%r14 + addq %rbx,%r9 + addq %rdi,%rbx + movq %r9,%r13 + addq %rbx,%r14 + rorq $23,%r13 + movq %r14,%rbx + movq %r10,%r12 + rorq $5,%r14 + xorq %r9,%r13 + xorq %r11,%r12 + rorq $4,%r13 + xorq %rbx,%r14 + andq %r9,%r12 + xorq %r9,%r13 + addq 120(%rsp),%rax + movq %rbx,%rdi + xorq %r11,%r12 + rorq $6,%r14 + xorq %rcx,%rdi + addq %r12,%rax + rorq $14,%r13 + andq %rdi,%r15 + xorq %rbx,%r14 + addq %r13,%rax + xorq %rcx,%r15 + rorq $28,%r14 + addq %rax,%r8 + addq %r15,%rax + movq %r8,%r13 + addq %rax,%r14 + movq 128+0(%rsp),%rdi + movq %r14,%rax + + addq 0(%rdi),%rax + leaq 128(%rsi),%rsi + addq 8(%rdi),%rbx + addq 16(%rdi),%rcx + addq 24(%rdi),%rdx + addq 32(%rdi),%r8 + addq 40(%rdi),%r9 + addq 48(%rdi),%r10 + addq 56(%rdi),%r11 + + cmpq 128+16(%rsp),%rsi + + movq %rax,0(%rdi) + movq %rbx,8(%rdi) + movq %rcx,16(%rdi) + movq %rdx,24(%rdi) + movq %r8,32(%rdi) + movq %r9,40(%rdi) + movq %r10,48(%rdi) + movq %r11,56(%rdi) + jb L$loop_xop + + movq 152(%rsp),%rsi + + vzeroupper + movq -48(%rsi),%r15 + + movq -40(%rsi),%r14 + + movq -32(%rsi),%r13 + + movq -24(%rsi),%r12 + + movq -16(%rsi),%rbp + + movq -8(%rsi),%rbx + + leaq (%rsi),%rsp + +L$epilogue_xop: + .byte 0xf3,0xc3 + + + +.p2align 6 +sha512_block_data_order_avx: + +L$avx_shortcut: + movq %rsp,%rax + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + shlq $4,%rdx + subq $160,%rsp + leaq (%rsi,%rdx,8),%rdx + andq $-64,%rsp + movq %rdi,128+0(%rsp) + movq %rsi,128+8(%rsp) + movq %rdx,128+16(%rsp) + movq %rax,152(%rsp) + +L$prologue_avx: + + vzeroupper + movq 0(%rdi),%rax + movq 8(%rdi),%rbx + movq 16(%rdi),%rcx + movq 24(%rdi),%rdx + movq 32(%rdi),%r8 + movq 40(%rdi),%r9 + movq 48(%rdi),%r10 + movq 56(%rdi),%r11 + jmp L$loop_avx +.p2align 4 +L$loop_avx: + vmovdqa K512+1280(%rip),%xmm11 + vmovdqu 0(%rsi),%xmm0 + leaq K512+128(%rip),%rbp + vmovdqu 16(%rsi),%xmm1 + vmovdqu 32(%rsi),%xmm2 + vpshufb %xmm11,%xmm0,%xmm0 + vmovdqu 48(%rsi),%xmm3 + vpshufb %xmm11,%xmm1,%xmm1 + vmovdqu 64(%rsi),%xmm4 + vpshufb %xmm11,%xmm2,%xmm2 + vmovdqu 80(%rsi),%xmm5 + vpshufb %xmm11,%xmm3,%xmm3 + vmovdqu 96(%rsi),%xmm6 + vpshufb %xmm11,%xmm4,%xmm4 + vmovdqu 112(%rsi),%xmm7 + vpshufb %xmm11,%xmm5,%xmm5 + vpaddq -128(%rbp),%xmm0,%xmm8 + vpshufb %xmm11,%xmm6,%xmm6 + vpaddq -96(%rbp),%xmm1,%xmm9 + vpshufb %xmm11,%xmm7,%xmm7 + vpaddq -64(%rbp),%xmm2,%xmm10 + vpaddq -32(%rbp),%xmm3,%xmm11 + vmovdqa %xmm8,0(%rsp) + vpaddq 0(%rbp),%xmm4,%xmm8 + vmovdqa %xmm9,16(%rsp) + vpaddq 32(%rbp),%xmm5,%xmm9 + vmovdqa %xmm10,32(%rsp) + vpaddq 64(%rbp),%xmm6,%xmm10 + vmovdqa %xmm11,48(%rsp) + vpaddq 96(%rbp),%xmm7,%xmm11 + vmovdqa %xmm8,64(%rsp) + movq %rax,%r14 + vmovdqa %xmm9,80(%rsp) + movq %rbx,%rdi + vmovdqa %xmm10,96(%rsp) + xorq %rcx,%rdi + vmovdqa %xmm11,112(%rsp) + movq %r8,%r13 + jmp L$avx_00_47 + +.p2align 4 +L$avx_00_47: + addq $256,%rbp + vpalignr $8,%xmm0,%xmm1,%xmm8 + shrdq $23,%r13,%r13 + movq %r14,%rax + vpalignr $8,%xmm4,%xmm5,%xmm11 + movq %r9,%r12 + shrdq $5,%r14,%r14 + vpsrlq $1,%xmm8,%xmm10 + xorq %r8,%r13 + xorq %r10,%r12 + vpaddq %xmm11,%xmm0,%xmm0 + shrdq $4,%r13,%r13 + xorq %rax,%r14 + vpsrlq $7,%xmm8,%xmm11 + andq %r8,%r12 + xorq %r8,%r13 + vpsllq $56,%xmm8,%xmm9 + addq 0(%rsp),%r11 + movq %rax,%r15 + vpxor %xmm10,%xmm11,%xmm8 + xorq %r10,%r12 + shrdq $6,%r14,%r14 + vpsrlq $7,%xmm10,%xmm10 + xorq %rbx,%r15 + addq %r12,%r11 + vpxor %xmm9,%xmm8,%xmm8 + shrdq $14,%r13,%r13 + andq %r15,%rdi + vpsllq $7,%xmm9,%xmm9 + xorq %rax,%r14 + addq %r13,%r11 + vpxor %xmm10,%xmm8,%xmm8 + xorq %rbx,%rdi + shrdq $28,%r14,%r14 + vpsrlq $6,%xmm7,%xmm11 + addq %r11,%rdx + addq %rdi,%r11 + vpxor %xmm9,%xmm8,%xmm8 + movq %rdx,%r13 + addq %r11,%r14 + vpsllq $3,%xmm7,%xmm10 + shrdq $23,%r13,%r13 + movq %r14,%r11 + vpaddq %xmm8,%xmm0,%xmm0 + movq %r8,%r12 + shrdq $5,%r14,%r14 + vpsrlq $19,%xmm7,%xmm9 + xorq %rdx,%r13 + xorq %r9,%r12 + vpxor %xmm10,%xmm11,%xmm11 + shrdq $4,%r13,%r13 + xorq %r11,%r14 + vpsllq $42,%xmm10,%xmm10 + andq %rdx,%r12 + xorq %rdx,%r13 + vpxor %xmm9,%xmm11,%xmm11 + addq 8(%rsp),%r10 + movq %r11,%rdi + vpsrlq $42,%xmm9,%xmm9 + xorq %r9,%r12 + shrdq $6,%r14,%r14 + vpxor %xmm10,%xmm11,%xmm11 + xorq %rax,%rdi + addq %r12,%r10 + vpxor %xmm9,%xmm11,%xmm11 + shrdq $14,%r13,%r13 + andq %rdi,%r15 + vpaddq %xmm11,%xmm0,%xmm0 + xorq %r11,%r14 + addq %r13,%r10 + vpaddq -128(%rbp),%xmm0,%xmm10 + xorq %rax,%r15 + shrdq $28,%r14,%r14 + addq %r10,%rcx + addq %r15,%r10 + movq %rcx,%r13 + addq %r10,%r14 + vmovdqa %xmm10,0(%rsp) + vpalignr $8,%xmm1,%xmm2,%xmm8 + shrdq $23,%r13,%r13 + movq %r14,%r10 + vpalignr $8,%xmm5,%xmm6,%xmm11 + movq %rdx,%r12 + shrdq $5,%r14,%r14 + vpsrlq $1,%xmm8,%xmm10 + xorq %rcx,%r13 + xorq %r8,%r12 + vpaddq %xmm11,%xmm1,%xmm1 + shrdq $4,%r13,%r13 + xorq %r10,%r14 + vpsrlq $7,%xmm8,%xmm11 + andq %rcx,%r12 + xorq %rcx,%r13 + vpsllq $56,%xmm8,%xmm9 + addq 16(%rsp),%r9 + movq %r10,%r15 + vpxor %xmm10,%xmm11,%xmm8 + xorq %r8,%r12 + shrdq $6,%r14,%r14 + vpsrlq $7,%xmm10,%xmm10 + xorq %r11,%r15 + addq %r12,%r9 + vpxor %xmm9,%xmm8,%xmm8 + shrdq $14,%r13,%r13 + andq %r15,%rdi + vpsllq $7,%xmm9,%xmm9 + xorq %r10,%r14 + addq %r13,%r9 + vpxor %xmm10,%xmm8,%xmm8 + xorq %r11,%rdi + shrdq $28,%r14,%r14 + vpsrlq $6,%xmm0,%xmm11 + addq %r9,%rbx + addq %rdi,%r9 + vpxor %xmm9,%xmm8,%xmm8 + movq %rbx,%r13 + addq %r9,%r14 + vpsllq $3,%xmm0,%xmm10 + shrdq $23,%r13,%r13 + movq %r14,%r9 + vpaddq %xmm8,%xmm1,%xmm1 + movq %rcx,%r12 + shrdq $5,%r14,%r14 + vpsrlq $19,%xmm0,%xmm9 + xorq %rbx,%r13 + xorq %rdx,%r12 + vpxor %xmm10,%xmm11,%xmm11 + shrdq $4,%r13,%r13 + xorq %r9,%r14 + vpsllq $42,%xmm10,%xmm10 + andq %rbx,%r12 + xorq %rbx,%r13 + vpxor %xmm9,%xmm11,%xmm11 + addq 24(%rsp),%r8 + movq %r9,%rdi + vpsrlq $42,%xmm9,%xmm9 + xorq %rdx,%r12 + shrdq $6,%r14,%r14 + vpxor %xmm10,%xmm11,%xmm11 + xorq %r10,%rdi + addq %r12,%r8 + vpxor %xmm9,%xmm11,%xmm11 + shrdq $14,%r13,%r13 + andq %rdi,%r15 + vpaddq %xmm11,%xmm1,%xmm1 + xorq %r9,%r14 + addq %r13,%r8 + vpaddq -96(%rbp),%xmm1,%xmm10 + xorq %r10,%r15 + shrdq $28,%r14,%r14 + addq %r8,%rax + addq %r15,%r8 + movq %rax,%r13 + addq %r8,%r14 + vmovdqa %xmm10,16(%rsp) + vpalignr $8,%xmm2,%xmm3,%xmm8 + shrdq $23,%r13,%r13 + movq %r14,%r8 + vpalignr $8,%xmm6,%xmm7,%xmm11 + movq %rbx,%r12 + shrdq $5,%r14,%r14 + vpsrlq $1,%xmm8,%xmm10 + xorq %rax,%r13 + xorq %rcx,%r12 + vpaddq %xmm11,%xmm2,%xmm2 + shrdq $4,%r13,%r13 + xorq %r8,%r14 + vpsrlq $7,%xmm8,%xmm11 + andq %rax,%r12 + xorq %rax,%r13 + vpsllq $56,%xmm8,%xmm9 + addq 32(%rsp),%rdx + movq %r8,%r15 + vpxor %xmm10,%xmm11,%xmm8 + xorq %rcx,%r12 + shrdq $6,%r14,%r14 + vpsrlq $7,%xmm10,%xmm10 + xorq %r9,%r15 + addq %r12,%rdx + vpxor %xmm9,%xmm8,%xmm8 + shrdq $14,%r13,%r13 + andq %r15,%rdi + vpsllq $7,%xmm9,%xmm9 + xorq %r8,%r14 + addq %r13,%rdx + vpxor %xmm10,%xmm8,%xmm8 + xorq %r9,%rdi + shrdq $28,%r14,%r14 + vpsrlq $6,%xmm1,%xmm11 + addq %rdx,%r11 + addq %rdi,%rdx + vpxor %xmm9,%xmm8,%xmm8 + movq %r11,%r13 + addq %rdx,%r14 + vpsllq $3,%xmm1,%xmm10 + shrdq $23,%r13,%r13 + movq %r14,%rdx + vpaddq %xmm8,%xmm2,%xmm2 + movq %rax,%r12 + shrdq $5,%r14,%r14 + vpsrlq $19,%xmm1,%xmm9 + xorq %r11,%r13 + xorq %rbx,%r12 + vpxor %xmm10,%xmm11,%xmm11 + shrdq $4,%r13,%r13 + xorq %rdx,%r14 + vpsllq $42,%xmm10,%xmm10 + andq %r11,%r12 + xorq %r11,%r13 + vpxor %xmm9,%xmm11,%xmm11 + addq 40(%rsp),%rcx + movq %rdx,%rdi + vpsrlq $42,%xmm9,%xmm9 + xorq %rbx,%r12 + shrdq $6,%r14,%r14 + vpxor %xmm10,%xmm11,%xmm11 + xorq %r8,%rdi + addq %r12,%rcx + vpxor %xmm9,%xmm11,%xmm11 + shrdq $14,%r13,%r13 + andq %rdi,%r15 + vpaddq %xmm11,%xmm2,%xmm2 + xorq %rdx,%r14 + addq %r13,%rcx + vpaddq -64(%rbp),%xmm2,%xmm10 + xorq %r8,%r15 + shrdq $28,%r14,%r14 + addq %rcx,%r10 + addq %r15,%rcx + movq %r10,%r13 + addq %rcx,%r14 + vmovdqa %xmm10,32(%rsp) + vpalignr $8,%xmm3,%xmm4,%xmm8 + shrdq $23,%r13,%r13 + movq %r14,%rcx + vpalignr $8,%xmm7,%xmm0,%xmm11 + movq %r11,%r12 + shrdq $5,%r14,%r14 + vpsrlq $1,%xmm8,%xmm10 + xorq %r10,%r13 + xorq %rax,%r12 + vpaddq %xmm11,%xmm3,%xmm3 + shrdq $4,%r13,%r13 + xorq %rcx,%r14 + vpsrlq $7,%xmm8,%xmm11 + andq %r10,%r12 + xorq %r10,%r13 + vpsllq $56,%xmm8,%xmm9 + addq 48(%rsp),%rbx + movq %rcx,%r15 + vpxor %xmm10,%xmm11,%xmm8 + xorq %rax,%r12 + shrdq $6,%r14,%r14 + vpsrlq $7,%xmm10,%xmm10 + xorq %rdx,%r15 + addq %r12,%rbx + vpxor %xmm9,%xmm8,%xmm8 + shrdq $14,%r13,%r13 + andq %r15,%rdi + vpsllq $7,%xmm9,%xmm9 + xorq %rcx,%r14 + addq %r13,%rbx + vpxor %xmm10,%xmm8,%xmm8 + xorq %rdx,%rdi + shrdq $28,%r14,%r14 + vpsrlq $6,%xmm2,%xmm11 + addq %rbx,%r9 + addq %rdi,%rbx + vpxor %xmm9,%xmm8,%xmm8 + movq %r9,%r13 + addq %rbx,%r14 + vpsllq $3,%xmm2,%xmm10 + shrdq $23,%r13,%r13 + movq %r14,%rbx + vpaddq %xmm8,%xmm3,%xmm3 + movq %r10,%r12 + shrdq $5,%r14,%r14 + vpsrlq $19,%xmm2,%xmm9 + xorq %r9,%r13 + xorq %r11,%r12 + vpxor %xmm10,%xmm11,%xmm11 + shrdq $4,%r13,%r13 + xorq %rbx,%r14 + vpsllq $42,%xmm10,%xmm10 + andq %r9,%r12 + xorq %r9,%r13 + vpxor %xmm9,%xmm11,%xmm11 + addq 56(%rsp),%rax + movq %rbx,%rdi + vpsrlq $42,%xmm9,%xmm9 + xorq %r11,%r12 + shrdq $6,%r14,%r14 + vpxor %xmm10,%xmm11,%xmm11 + xorq %rcx,%rdi + addq %r12,%rax + vpxor %xmm9,%xmm11,%xmm11 + shrdq $14,%r13,%r13 + andq %rdi,%r15 + vpaddq %xmm11,%xmm3,%xmm3 + xorq %rbx,%r14 + addq %r13,%rax + vpaddq -32(%rbp),%xmm3,%xmm10 + xorq %rcx,%r15 + shrdq $28,%r14,%r14 + addq %rax,%r8 + addq %r15,%rax + movq %r8,%r13 + addq %rax,%r14 + vmovdqa %xmm10,48(%rsp) + vpalignr $8,%xmm4,%xmm5,%xmm8 + shrdq $23,%r13,%r13 + movq %r14,%rax + vpalignr $8,%xmm0,%xmm1,%xmm11 + movq %r9,%r12 + shrdq $5,%r14,%r14 + vpsrlq $1,%xmm8,%xmm10 + xorq %r8,%r13 + xorq %r10,%r12 + vpaddq %xmm11,%xmm4,%xmm4 + shrdq $4,%r13,%r13 + xorq %rax,%r14 + vpsrlq $7,%xmm8,%xmm11 + andq %r8,%r12 + xorq %r8,%r13 + vpsllq $56,%xmm8,%xmm9 + addq 64(%rsp),%r11 + movq %rax,%r15 + vpxor %xmm10,%xmm11,%xmm8 + xorq %r10,%r12 + shrdq $6,%r14,%r14 + vpsrlq $7,%xmm10,%xmm10 + xorq %rbx,%r15 + addq %r12,%r11 + vpxor %xmm9,%xmm8,%xmm8 + shrdq $14,%r13,%r13 + andq %r15,%rdi + vpsllq $7,%xmm9,%xmm9 + xorq %rax,%r14 + addq %r13,%r11 + vpxor %xmm10,%xmm8,%xmm8 + xorq %rbx,%rdi + shrdq $28,%r14,%r14 + vpsrlq $6,%xmm3,%xmm11 + addq %r11,%rdx + addq %rdi,%r11 + vpxor %xmm9,%xmm8,%xmm8 + movq %rdx,%r13 + addq %r11,%r14 + vpsllq $3,%xmm3,%xmm10 + shrdq $23,%r13,%r13 + movq %r14,%r11 + vpaddq %xmm8,%xmm4,%xmm4 + movq %r8,%r12 + shrdq $5,%r14,%r14 + vpsrlq $19,%xmm3,%xmm9 + xorq %rdx,%r13 + xorq %r9,%r12 + vpxor %xmm10,%xmm11,%xmm11 + shrdq $4,%r13,%r13 + xorq %r11,%r14 + vpsllq $42,%xmm10,%xmm10 + andq %rdx,%r12 + xorq %rdx,%r13 + vpxor %xmm9,%xmm11,%xmm11 + addq 72(%rsp),%r10 + movq %r11,%rdi + vpsrlq $42,%xmm9,%xmm9 + xorq %r9,%r12 + shrdq $6,%r14,%r14 + vpxor %xmm10,%xmm11,%xmm11 + xorq %rax,%rdi + addq %r12,%r10 + vpxor %xmm9,%xmm11,%xmm11 + shrdq $14,%r13,%r13 + andq %rdi,%r15 + vpaddq %xmm11,%xmm4,%xmm4 + xorq %r11,%r14 + addq %r13,%r10 + vpaddq 0(%rbp),%xmm4,%xmm10 + xorq %rax,%r15 + shrdq $28,%r14,%r14 + addq %r10,%rcx + addq %r15,%r10 + movq %rcx,%r13 + addq %r10,%r14 + vmovdqa %xmm10,64(%rsp) + vpalignr $8,%xmm5,%xmm6,%xmm8 + shrdq $23,%r13,%r13 + movq %r14,%r10 + vpalignr $8,%xmm1,%xmm2,%xmm11 + movq %rdx,%r12 + shrdq $5,%r14,%r14 + vpsrlq $1,%xmm8,%xmm10 + xorq %rcx,%r13 + xorq %r8,%r12 + vpaddq %xmm11,%xmm5,%xmm5 + shrdq $4,%r13,%r13 + xorq %r10,%r14 + vpsrlq $7,%xmm8,%xmm11 + andq %rcx,%r12 + xorq %rcx,%r13 + vpsllq $56,%xmm8,%xmm9 + addq 80(%rsp),%r9 + movq %r10,%r15 + vpxor %xmm10,%xmm11,%xmm8 + xorq %r8,%r12 + shrdq $6,%r14,%r14 + vpsrlq $7,%xmm10,%xmm10 + xorq %r11,%r15 + addq %r12,%r9 + vpxor %xmm9,%xmm8,%xmm8 + shrdq $14,%r13,%r13 + andq %r15,%rdi + vpsllq $7,%xmm9,%xmm9 + xorq %r10,%r14 + addq %r13,%r9 + vpxor %xmm10,%xmm8,%xmm8 + xorq %r11,%rdi + shrdq $28,%r14,%r14 + vpsrlq $6,%xmm4,%xmm11 + addq %r9,%rbx + addq %rdi,%r9 + vpxor %xmm9,%xmm8,%xmm8 + movq %rbx,%r13 + addq %r9,%r14 + vpsllq $3,%xmm4,%xmm10 + shrdq $23,%r13,%r13 + movq %r14,%r9 + vpaddq %xmm8,%xmm5,%xmm5 + movq %rcx,%r12 + shrdq $5,%r14,%r14 + vpsrlq $19,%xmm4,%xmm9 + xorq %rbx,%r13 + xorq %rdx,%r12 + vpxor %xmm10,%xmm11,%xmm11 + shrdq $4,%r13,%r13 + xorq %r9,%r14 + vpsllq $42,%xmm10,%xmm10 + andq %rbx,%r12 + xorq %rbx,%r13 + vpxor %xmm9,%xmm11,%xmm11 + addq 88(%rsp),%r8 + movq %r9,%rdi + vpsrlq $42,%xmm9,%xmm9 + xorq %rdx,%r12 + shrdq $6,%r14,%r14 + vpxor %xmm10,%xmm11,%xmm11 + xorq %r10,%rdi + addq %r12,%r8 + vpxor %xmm9,%xmm11,%xmm11 + shrdq $14,%r13,%r13 + andq %rdi,%r15 + vpaddq %xmm11,%xmm5,%xmm5 + xorq %r9,%r14 + addq %r13,%r8 + vpaddq 32(%rbp),%xmm5,%xmm10 + xorq %r10,%r15 + shrdq $28,%r14,%r14 + addq %r8,%rax + addq %r15,%r8 + movq %rax,%r13 + addq %r8,%r14 + vmovdqa %xmm10,80(%rsp) + vpalignr $8,%xmm6,%xmm7,%xmm8 + shrdq $23,%r13,%r13 + movq %r14,%r8 + vpalignr $8,%xmm2,%xmm3,%xmm11 + movq %rbx,%r12 + shrdq $5,%r14,%r14 + vpsrlq $1,%xmm8,%xmm10 + xorq %rax,%r13 + xorq %rcx,%r12 + vpaddq %xmm11,%xmm6,%xmm6 + shrdq $4,%r13,%r13 + xorq %r8,%r14 + vpsrlq $7,%xmm8,%xmm11 + andq %rax,%r12 + xorq %rax,%r13 + vpsllq $56,%xmm8,%xmm9 + addq 96(%rsp),%rdx + movq %r8,%r15 + vpxor %xmm10,%xmm11,%xmm8 + xorq %rcx,%r12 + shrdq $6,%r14,%r14 + vpsrlq $7,%xmm10,%xmm10 + xorq %r9,%r15 + addq %r12,%rdx + vpxor %xmm9,%xmm8,%xmm8 + shrdq $14,%r13,%r13 + andq %r15,%rdi + vpsllq $7,%xmm9,%xmm9 + xorq %r8,%r14 + addq %r13,%rdx + vpxor %xmm10,%xmm8,%xmm8 + xorq %r9,%rdi + shrdq $28,%r14,%r14 + vpsrlq $6,%xmm5,%xmm11 + addq %rdx,%r11 + addq %rdi,%rdx + vpxor %xmm9,%xmm8,%xmm8 + movq %r11,%r13 + addq %rdx,%r14 + vpsllq $3,%xmm5,%xmm10 + shrdq $23,%r13,%r13 + movq %r14,%rdx + vpaddq %xmm8,%xmm6,%xmm6 + movq %rax,%r12 + shrdq $5,%r14,%r14 + vpsrlq $19,%xmm5,%xmm9 + xorq %r11,%r13 + xorq %rbx,%r12 + vpxor %xmm10,%xmm11,%xmm11 + shrdq $4,%r13,%r13 + xorq %rdx,%r14 + vpsllq $42,%xmm10,%xmm10 + andq %r11,%r12 + xorq %r11,%r13 + vpxor %xmm9,%xmm11,%xmm11 + addq 104(%rsp),%rcx + movq %rdx,%rdi + vpsrlq $42,%xmm9,%xmm9 + xorq %rbx,%r12 + shrdq $6,%r14,%r14 + vpxor %xmm10,%xmm11,%xmm11 + xorq %r8,%rdi + addq %r12,%rcx + vpxor %xmm9,%xmm11,%xmm11 + shrdq $14,%r13,%r13 + andq %rdi,%r15 + vpaddq %xmm11,%xmm6,%xmm6 + xorq %rdx,%r14 + addq %r13,%rcx + vpaddq 64(%rbp),%xmm6,%xmm10 + xorq %r8,%r15 + shrdq $28,%r14,%r14 + addq %rcx,%r10 + addq %r15,%rcx + movq %r10,%r13 + addq %rcx,%r14 + vmovdqa %xmm10,96(%rsp) + vpalignr $8,%xmm7,%xmm0,%xmm8 + shrdq $23,%r13,%r13 + movq %r14,%rcx + vpalignr $8,%xmm3,%xmm4,%xmm11 + movq %r11,%r12 + shrdq $5,%r14,%r14 + vpsrlq $1,%xmm8,%xmm10 + xorq %r10,%r13 + xorq %rax,%r12 + vpaddq %xmm11,%xmm7,%xmm7 + shrdq $4,%r13,%r13 + xorq %rcx,%r14 + vpsrlq $7,%xmm8,%xmm11 + andq %r10,%r12 + xorq %r10,%r13 + vpsllq $56,%xmm8,%xmm9 + addq 112(%rsp),%rbx + movq %rcx,%r15 + vpxor %xmm10,%xmm11,%xmm8 + xorq %rax,%r12 + shrdq $6,%r14,%r14 + vpsrlq $7,%xmm10,%xmm10 + xorq %rdx,%r15 + addq %r12,%rbx + vpxor %xmm9,%xmm8,%xmm8 + shrdq $14,%r13,%r13 + andq %r15,%rdi + vpsllq $7,%xmm9,%xmm9 + xorq %rcx,%r14 + addq %r13,%rbx + vpxor %xmm10,%xmm8,%xmm8 + xorq %rdx,%rdi + shrdq $28,%r14,%r14 + vpsrlq $6,%xmm6,%xmm11 + addq %rbx,%r9 + addq %rdi,%rbx + vpxor %xmm9,%xmm8,%xmm8 + movq %r9,%r13 + addq %rbx,%r14 + vpsllq $3,%xmm6,%xmm10 + shrdq $23,%r13,%r13 + movq %r14,%rbx + vpaddq %xmm8,%xmm7,%xmm7 + movq %r10,%r12 + shrdq $5,%r14,%r14 + vpsrlq $19,%xmm6,%xmm9 + xorq %r9,%r13 + xorq %r11,%r12 + vpxor %xmm10,%xmm11,%xmm11 + shrdq $4,%r13,%r13 + xorq %rbx,%r14 + vpsllq $42,%xmm10,%xmm10 + andq %r9,%r12 + xorq %r9,%r13 + vpxor %xmm9,%xmm11,%xmm11 + addq 120(%rsp),%rax + movq %rbx,%rdi + vpsrlq $42,%xmm9,%xmm9 + xorq %r11,%r12 + shrdq $6,%r14,%r14 + vpxor %xmm10,%xmm11,%xmm11 + xorq %rcx,%rdi + addq %r12,%rax + vpxor %xmm9,%xmm11,%xmm11 + shrdq $14,%r13,%r13 + andq %rdi,%r15 + vpaddq %xmm11,%xmm7,%xmm7 + xorq %rbx,%r14 + addq %r13,%rax + vpaddq 96(%rbp),%xmm7,%xmm10 + xorq %rcx,%r15 + shrdq $28,%r14,%r14 + addq %rax,%r8 + addq %r15,%rax + movq %r8,%r13 + addq %rax,%r14 + vmovdqa %xmm10,112(%rsp) + cmpb $0,135(%rbp) + jne L$avx_00_47 + shrdq $23,%r13,%r13 + movq %r14,%rax + movq %r9,%r12 + shrdq $5,%r14,%r14 + xorq %r8,%r13 + xorq %r10,%r12 + shrdq $4,%r13,%r13 + xorq %rax,%r14 + andq %r8,%r12 + xorq %r8,%r13 + addq 0(%rsp),%r11 + movq %rax,%r15 + xorq %r10,%r12 + shrdq $6,%r14,%r14 + xorq %rbx,%r15 + addq %r12,%r11 + shrdq $14,%r13,%r13 + andq %r15,%rdi + xorq %rax,%r14 + addq %r13,%r11 + xorq %rbx,%rdi + shrdq $28,%r14,%r14 + addq %r11,%rdx + addq %rdi,%r11 + movq %rdx,%r13 + addq %r11,%r14 + shrdq $23,%r13,%r13 + movq %r14,%r11 + movq %r8,%r12 + shrdq $5,%r14,%r14 + xorq %rdx,%r13 + xorq %r9,%r12 + shrdq $4,%r13,%r13 + xorq %r11,%r14 + andq %rdx,%r12 + xorq %rdx,%r13 + addq 8(%rsp),%r10 + movq %r11,%rdi + xorq %r9,%r12 + shrdq $6,%r14,%r14 + xorq %rax,%rdi + addq %r12,%r10 + shrdq $14,%r13,%r13 + andq %rdi,%r15 + xorq %r11,%r14 + addq %r13,%r10 + xorq %rax,%r15 + shrdq $28,%r14,%r14 + addq %r10,%rcx + addq %r15,%r10 + movq %rcx,%r13 + addq %r10,%r14 + shrdq $23,%r13,%r13 + movq %r14,%r10 + movq %rdx,%r12 + shrdq $5,%r14,%r14 + xorq %rcx,%r13 + xorq %r8,%r12 + shrdq $4,%r13,%r13 + xorq %r10,%r14 + andq %rcx,%r12 + xorq %rcx,%r13 + addq 16(%rsp),%r9 + movq %r10,%r15 + xorq %r8,%r12 + shrdq $6,%r14,%r14 + xorq %r11,%r15 + addq %r12,%r9 + shrdq $14,%r13,%r13 + andq %r15,%rdi + xorq %r10,%r14 + addq %r13,%r9 + xorq %r11,%rdi + shrdq $28,%r14,%r14 + addq %r9,%rbx + addq %rdi,%r9 + movq %rbx,%r13 + addq %r9,%r14 + shrdq $23,%r13,%r13 + movq %r14,%r9 + movq %rcx,%r12 + shrdq $5,%r14,%r14 + xorq %rbx,%r13 + xorq %rdx,%r12 + shrdq $4,%r13,%r13 + xorq %r9,%r14 + andq %rbx,%r12 + xorq %rbx,%r13 + addq 24(%rsp),%r8 + movq %r9,%rdi + xorq %rdx,%r12 + shrdq $6,%r14,%r14 + xorq %r10,%rdi + addq %r12,%r8 + shrdq $14,%r13,%r13 + andq %rdi,%r15 + xorq %r9,%r14 + addq %r13,%r8 + xorq %r10,%r15 + shrdq $28,%r14,%r14 + addq %r8,%rax + addq %r15,%r8 + movq %rax,%r13 + addq %r8,%r14 + shrdq $23,%r13,%r13 + movq %r14,%r8 + movq %rbx,%r12 + shrdq $5,%r14,%r14 + xorq %rax,%r13 + xorq %rcx,%r12 + shrdq $4,%r13,%r13 + xorq %r8,%r14 + andq %rax,%r12 + xorq %rax,%r13 + addq 32(%rsp),%rdx + movq %r8,%r15 + xorq %rcx,%r12 + shrdq $6,%r14,%r14 + xorq %r9,%r15 + addq %r12,%rdx + shrdq $14,%r13,%r13 + andq %r15,%rdi + xorq %r8,%r14 + addq %r13,%rdx + xorq %r9,%rdi + shrdq $28,%r14,%r14 + addq %rdx,%r11 + addq %rdi,%rdx + movq %r11,%r13 + addq %rdx,%r14 + shrdq $23,%r13,%r13 + movq %r14,%rdx + movq %rax,%r12 + shrdq $5,%r14,%r14 + xorq %r11,%r13 + xorq %rbx,%r12 + shrdq $4,%r13,%r13 + xorq %rdx,%r14 + andq %r11,%r12 + xorq %r11,%r13 + addq 40(%rsp),%rcx + movq %rdx,%rdi + xorq %rbx,%r12 + shrdq $6,%r14,%r14 + xorq %r8,%rdi + addq %r12,%rcx + shrdq $14,%r13,%r13 + andq %rdi,%r15 + xorq %rdx,%r14 + addq %r13,%rcx + xorq %r8,%r15 + shrdq $28,%r14,%r14 + addq %rcx,%r10 + addq %r15,%rcx + movq %r10,%r13 + addq %rcx,%r14 + shrdq $23,%r13,%r13 + movq %r14,%rcx + movq %r11,%r12 + shrdq $5,%r14,%r14 + xorq %r10,%r13 + xorq %rax,%r12 + shrdq $4,%r13,%r13 + xorq %rcx,%r14 + andq %r10,%r12 + xorq %r10,%r13 + addq 48(%rsp),%rbx + movq %rcx,%r15 + xorq %rax,%r12 + shrdq $6,%r14,%r14 + xorq %rdx,%r15 + addq %r12,%rbx + shrdq $14,%r13,%r13 + andq %r15,%rdi + xorq %rcx,%r14 + addq %r13,%rbx + xorq %rdx,%rdi + shrdq $28,%r14,%r14 + addq %rbx,%r9 + addq %rdi,%rbx + movq %r9,%r13 + addq %rbx,%r14 + shrdq $23,%r13,%r13 + movq %r14,%rbx + movq %r10,%r12 + shrdq $5,%r14,%r14 + xorq %r9,%r13 + xorq %r11,%r12 + shrdq $4,%r13,%r13 + xorq %rbx,%r14 + andq %r9,%r12 + xorq %r9,%r13 + addq 56(%rsp),%rax + movq %rbx,%rdi + xorq %r11,%r12 + shrdq $6,%r14,%r14 + xorq %rcx,%rdi + addq %r12,%rax + shrdq $14,%r13,%r13 + andq %rdi,%r15 + xorq %rbx,%r14 + addq %r13,%rax + xorq %rcx,%r15 + shrdq $28,%r14,%r14 + addq %rax,%r8 + addq %r15,%rax + movq %r8,%r13 + addq %rax,%r14 + shrdq $23,%r13,%r13 + movq %r14,%rax + movq %r9,%r12 + shrdq $5,%r14,%r14 + xorq %r8,%r13 + xorq %r10,%r12 + shrdq $4,%r13,%r13 + xorq %rax,%r14 + andq %r8,%r12 + xorq %r8,%r13 + addq 64(%rsp),%r11 + movq %rax,%r15 + xorq %r10,%r12 + shrdq $6,%r14,%r14 + xorq %rbx,%r15 + addq %r12,%r11 + shrdq $14,%r13,%r13 + andq %r15,%rdi + xorq %rax,%r14 + addq %r13,%r11 + xorq %rbx,%rdi + shrdq $28,%r14,%r14 + addq %r11,%rdx + addq %rdi,%r11 + movq %rdx,%r13 + addq %r11,%r14 + shrdq $23,%r13,%r13 + movq %r14,%r11 + movq %r8,%r12 + shrdq $5,%r14,%r14 + xorq %rdx,%r13 + xorq %r9,%r12 + shrdq $4,%r13,%r13 + xorq %r11,%r14 + andq %rdx,%r12 + xorq %rdx,%r13 + addq 72(%rsp),%r10 + movq %r11,%rdi + xorq %r9,%r12 + shrdq $6,%r14,%r14 + xorq %rax,%rdi + addq %r12,%r10 + shrdq $14,%r13,%r13 + andq %rdi,%r15 + xorq %r11,%r14 + addq %r13,%r10 + xorq %rax,%r15 + shrdq $28,%r14,%r14 + addq %r10,%rcx + addq %r15,%r10 + movq %rcx,%r13 + addq %r10,%r14 + shrdq $23,%r13,%r13 + movq %r14,%r10 + movq %rdx,%r12 + shrdq $5,%r14,%r14 + xorq %rcx,%r13 + xorq %r8,%r12 + shrdq $4,%r13,%r13 + xorq %r10,%r14 + andq %rcx,%r12 + xorq %rcx,%r13 + addq 80(%rsp),%r9 + movq %r10,%r15 + xorq %r8,%r12 + shrdq $6,%r14,%r14 + xorq %r11,%r15 + addq %r12,%r9 + shrdq $14,%r13,%r13 + andq %r15,%rdi + xorq %r10,%r14 + addq %r13,%r9 + xorq %r11,%rdi + shrdq $28,%r14,%r14 + addq %r9,%rbx + addq %rdi,%r9 + movq %rbx,%r13 + addq %r9,%r14 + shrdq $23,%r13,%r13 + movq %r14,%r9 + movq %rcx,%r12 + shrdq $5,%r14,%r14 + xorq %rbx,%r13 + xorq %rdx,%r12 + shrdq $4,%r13,%r13 + xorq %r9,%r14 + andq %rbx,%r12 + xorq %rbx,%r13 + addq 88(%rsp),%r8 + movq %r9,%rdi + xorq %rdx,%r12 + shrdq $6,%r14,%r14 + xorq %r10,%rdi + addq %r12,%r8 + shrdq $14,%r13,%r13 + andq %rdi,%r15 + xorq %r9,%r14 + addq %r13,%r8 + xorq %r10,%r15 + shrdq $28,%r14,%r14 + addq %r8,%rax + addq %r15,%r8 + movq %rax,%r13 + addq %r8,%r14 + shrdq $23,%r13,%r13 + movq %r14,%r8 + movq %rbx,%r12 + shrdq $5,%r14,%r14 + xorq %rax,%r13 + xorq %rcx,%r12 + shrdq $4,%r13,%r13 + xorq %r8,%r14 + andq %rax,%r12 + xorq %rax,%r13 + addq 96(%rsp),%rdx + movq %r8,%r15 + xorq %rcx,%r12 + shrdq $6,%r14,%r14 + xorq %r9,%r15 + addq %r12,%rdx + shrdq $14,%r13,%r13 + andq %r15,%rdi + xorq %r8,%r14 + addq %r13,%rdx + xorq %r9,%rdi + shrdq $28,%r14,%r14 + addq %rdx,%r11 + addq %rdi,%rdx + movq %r11,%r13 + addq %rdx,%r14 + shrdq $23,%r13,%r13 + movq %r14,%rdx + movq %rax,%r12 + shrdq $5,%r14,%r14 + xorq %r11,%r13 + xorq %rbx,%r12 + shrdq $4,%r13,%r13 + xorq %rdx,%r14 + andq %r11,%r12 + xorq %r11,%r13 + addq 104(%rsp),%rcx + movq %rdx,%rdi + xorq %rbx,%r12 + shrdq $6,%r14,%r14 + xorq %r8,%rdi + addq %r12,%rcx + shrdq $14,%r13,%r13 + andq %rdi,%r15 + xorq %rdx,%r14 + addq %r13,%rcx + xorq %r8,%r15 + shrdq $28,%r14,%r14 + addq %rcx,%r10 + addq %r15,%rcx + movq %r10,%r13 + addq %rcx,%r14 + shrdq $23,%r13,%r13 + movq %r14,%rcx + movq %r11,%r12 + shrdq $5,%r14,%r14 + xorq %r10,%r13 + xorq %rax,%r12 + shrdq $4,%r13,%r13 + xorq %rcx,%r14 + andq %r10,%r12 + xorq %r10,%r13 + addq 112(%rsp),%rbx + movq %rcx,%r15 + xorq %rax,%r12 + shrdq $6,%r14,%r14 + xorq %rdx,%r15 + addq %r12,%rbx + shrdq $14,%r13,%r13 + andq %r15,%rdi + xorq %rcx,%r14 + addq %r13,%rbx + xorq %rdx,%rdi + shrdq $28,%r14,%r14 + addq %rbx,%r9 + addq %rdi,%rbx + movq %r9,%r13 + addq %rbx,%r14 + shrdq $23,%r13,%r13 + movq %r14,%rbx + movq %r10,%r12 + shrdq $5,%r14,%r14 + xorq %r9,%r13 + xorq %r11,%r12 + shrdq $4,%r13,%r13 + xorq %rbx,%r14 + andq %r9,%r12 + xorq %r9,%r13 + addq 120(%rsp),%rax + movq %rbx,%rdi + xorq %r11,%r12 + shrdq $6,%r14,%r14 + xorq %rcx,%rdi + addq %r12,%rax + shrdq $14,%r13,%r13 + andq %rdi,%r15 + xorq %rbx,%r14 + addq %r13,%rax + xorq %rcx,%r15 + shrdq $28,%r14,%r14 + addq %rax,%r8 + addq %r15,%rax + movq %r8,%r13 + addq %rax,%r14 + movq 128+0(%rsp),%rdi + movq %r14,%rax + + addq 0(%rdi),%rax + leaq 128(%rsi),%rsi + addq 8(%rdi),%rbx + addq 16(%rdi),%rcx + addq 24(%rdi),%rdx + addq 32(%rdi),%r8 + addq 40(%rdi),%r9 + addq 48(%rdi),%r10 + addq 56(%rdi),%r11 + + cmpq 128+16(%rsp),%rsi + + movq %rax,0(%rdi) + movq %rbx,8(%rdi) + movq %rcx,16(%rdi) + movq %rdx,24(%rdi) + movq %r8,32(%rdi) + movq %r9,40(%rdi) + movq %r10,48(%rdi) + movq %r11,56(%rdi) + jb L$loop_avx + + movq 152(%rsp),%rsi + + vzeroupper + movq -48(%rsi),%r15 + + movq -40(%rsi),%r14 + + movq -32(%rsi),%r13 + + movq -24(%rsi),%r12 + + movq -16(%rsi),%rbp + + movq -8(%rsi),%rbx + + leaq (%rsi),%rsp + +L$epilogue_avx: + .byte 0xf3,0xc3 + + + +.p2align 6 +sha512_block_data_order_avx2: + +L$avx2_shortcut: + movq %rsp,%rax + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + subq $1312,%rsp + shlq $4,%rdx + andq $-2048,%rsp + leaq (%rsi,%rdx,8),%rdx + addq $1152,%rsp + movq %rdi,128+0(%rsp) + movq %rsi,128+8(%rsp) + movq %rdx,128+16(%rsp) + movq %rax,152(%rsp) + +L$prologue_avx2: + + vzeroupper + subq $-128,%rsi + movq 0(%rdi),%rax + movq %rsi,%r12 + movq 8(%rdi),%rbx + cmpq %rdx,%rsi + movq 16(%rdi),%rcx + cmoveq %rsp,%r12 + movq 24(%rdi),%rdx + movq 32(%rdi),%r8 + movq 40(%rdi),%r9 + movq 48(%rdi),%r10 + movq 56(%rdi),%r11 + jmp L$oop_avx2 +.p2align 4 +L$oop_avx2: + vmovdqu -128(%rsi),%xmm0 + vmovdqu -128+16(%rsi),%xmm1 + vmovdqu -128+32(%rsi),%xmm2 + leaq K512+128(%rip),%rbp + vmovdqu -128+48(%rsi),%xmm3 + vmovdqu -128+64(%rsi),%xmm4 + vmovdqu -128+80(%rsi),%xmm5 + vmovdqu -128+96(%rsi),%xmm6 + vmovdqu -128+112(%rsi),%xmm7 + + vmovdqa 1152(%rbp),%ymm10 + vinserti128 $1,(%r12),%ymm0,%ymm0 + vinserti128 $1,16(%r12),%ymm1,%ymm1 + vpshufb %ymm10,%ymm0,%ymm0 + vinserti128 $1,32(%r12),%ymm2,%ymm2 + vpshufb %ymm10,%ymm1,%ymm1 + vinserti128 $1,48(%r12),%ymm3,%ymm3 + vpshufb %ymm10,%ymm2,%ymm2 + vinserti128 $1,64(%r12),%ymm4,%ymm4 + vpshufb %ymm10,%ymm3,%ymm3 + vinserti128 $1,80(%r12),%ymm5,%ymm5 + vpshufb %ymm10,%ymm4,%ymm4 + vinserti128 $1,96(%r12),%ymm6,%ymm6 + vpshufb %ymm10,%ymm5,%ymm5 + vinserti128 $1,112(%r12),%ymm7,%ymm7 + + vpaddq -128(%rbp),%ymm0,%ymm8 + vpshufb %ymm10,%ymm6,%ymm6 + vpaddq -96(%rbp),%ymm1,%ymm9 + vpshufb %ymm10,%ymm7,%ymm7 + vpaddq -64(%rbp),%ymm2,%ymm10 + vpaddq -32(%rbp),%ymm3,%ymm11 + vmovdqa %ymm8,0(%rsp) + vpaddq 0(%rbp),%ymm4,%ymm8 + vmovdqa %ymm9,32(%rsp) + vpaddq 32(%rbp),%ymm5,%ymm9 + vmovdqa %ymm10,64(%rsp) + vpaddq 64(%rbp),%ymm6,%ymm10 + vmovdqa %ymm11,96(%rsp) + + movq 152(%rsp),%rdi + + leaq -128(%rsp),%rsp + + + + movq %rdi,-8(%rsp) + + vpaddq 96(%rbp),%ymm7,%ymm11 + vmovdqa %ymm8,0(%rsp) + xorq %r14,%r14 + vmovdqa %ymm9,32(%rsp) + movq %rbx,%rdi + vmovdqa %ymm10,64(%rsp) + xorq %rcx,%rdi + vmovdqa %ymm11,96(%rsp) + movq %r9,%r12 + addq $32*8,%rbp + jmp L$avx2_00_47 + +.p2align 4 +L$avx2_00_47: + leaq -128(%rsp),%rsp + + + pushq 128-8(%rsp) + + leaq 8(%rsp),%rsp + + vpalignr $8,%ymm0,%ymm1,%ymm8 + addq 0+256(%rsp),%r11 + andq %r8,%r12 + rorxq $41,%r8,%r13 + vpalignr $8,%ymm4,%ymm5,%ymm11 + rorxq $18,%r8,%r15 + leaq (%rax,%r14,1),%rax + leaq (%r11,%r12,1),%r11 + vpsrlq $1,%ymm8,%ymm10 + andnq %r10,%r8,%r12 + xorq %r15,%r13 + rorxq $14,%r8,%r14 + vpaddq %ymm11,%ymm0,%ymm0 + vpsrlq $7,%ymm8,%ymm11 + leaq (%r11,%r12,1),%r11 + xorq %r14,%r13 + movq %rax,%r15 + vpsllq $56,%ymm8,%ymm9 + vpxor %ymm10,%ymm11,%ymm8 + rorxq $39,%rax,%r12 + leaq (%r11,%r13,1),%r11 + xorq %rbx,%r15 + vpsrlq $7,%ymm10,%ymm10 + vpxor %ymm9,%ymm8,%ymm8 + rorxq $34,%rax,%r14 + rorxq $28,%rax,%r13 + leaq (%rdx,%r11,1),%rdx + vpsllq $7,%ymm9,%ymm9 + vpxor %ymm10,%ymm8,%ymm8 + andq %r15,%rdi + xorq %r12,%r14 + xorq %rbx,%rdi + vpsrlq $6,%ymm7,%ymm11 + vpxor %ymm9,%ymm8,%ymm8 + xorq %r13,%r14 + leaq (%r11,%rdi,1),%r11 + movq %r8,%r12 + vpsllq $3,%ymm7,%ymm10 + vpaddq %ymm8,%ymm0,%ymm0 + addq 8+256(%rsp),%r10 + andq %rdx,%r12 + rorxq $41,%rdx,%r13 + vpsrlq $19,%ymm7,%ymm9 + vpxor %ymm10,%ymm11,%ymm11 + rorxq $18,%rdx,%rdi + leaq (%r11,%r14,1),%r11 + leaq (%r10,%r12,1),%r10 + vpsllq $42,%ymm10,%ymm10 + vpxor %ymm9,%ymm11,%ymm11 + andnq %r9,%rdx,%r12 + xorq %rdi,%r13 + rorxq $14,%rdx,%r14 + vpsrlq $42,%ymm9,%ymm9 + vpxor %ymm10,%ymm11,%ymm11 + leaq (%r10,%r12,1),%r10 + xorq %r14,%r13 + movq %r11,%rdi + vpxor %ymm9,%ymm11,%ymm11 + rorxq $39,%r11,%r12 + leaq (%r10,%r13,1),%r10 + xorq %rax,%rdi + vpaddq %ymm11,%ymm0,%ymm0 + rorxq $34,%r11,%r14 + rorxq $28,%r11,%r13 + leaq (%rcx,%r10,1),%rcx + vpaddq -128(%rbp),%ymm0,%ymm10 + andq %rdi,%r15 + xorq %r12,%r14 + xorq %rax,%r15 + xorq %r13,%r14 + leaq (%r10,%r15,1),%r10 + movq %rdx,%r12 + vmovdqa %ymm10,0(%rsp) + vpalignr $8,%ymm1,%ymm2,%ymm8 + addq 32+256(%rsp),%r9 + andq %rcx,%r12 + rorxq $41,%rcx,%r13 + vpalignr $8,%ymm5,%ymm6,%ymm11 + rorxq $18,%rcx,%r15 + leaq (%r10,%r14,1),%r10 + leaq (%r9,%r12,1),%r9 + vpsrlq $1,%ymm8,%ymm10 + andnq %r8,%rcx,%r12 + xorq %r15,%r13 + rorxq $14,%rcx,%r14 + vpaddq %ymm11,%ymm1,%ymm1 + vpsrlq $7,%ymm8,%ymm11 + leaq (%r9,%r12,1),%r9 + xorq %r14,%r13 + movq %r10,%r15 + vpsllq $56,%ymm8,%ymm9 + vpxor %ymm10,%ymm11,%ymm8 + rorxq $39,%r10,%r12 + leaq (%r9,%r13,1),%r9 + xorq %r11,%r15 + vpsrlq $7,%ymm10,%ymm10 + vpxor %ymm9,%ymm8,%ymm8 + rorxq $34,%r10,%r14 + rorxq $28,%r10,%r13 + leaq (%rbx,%r9,1),%rbx + vpsllq $7,%ymm9,%ymm9 + vpxor %ymm10,%ymm8,%ymm8 + andq %r15,%rdi + xorq %r12,%r14 + xorq %r11,%rdi + vpsrlq $6,%ymm0,%ymm11 + vpxor %ymm9,%ymm8,%ymm8 + xorq %r13,%r14 + leaq (%r9,%rdi,1),%r9 + movq %rcx,%r12 + vpsllq $3,%ymm0,%ymm10 + vpaddq %ymm8,%ymm1,%ymm1 + addq 40+256(%rsp),%r8 + andq %rbx,%r12 + rorxq $41,%rbx,%r13 + vpsrlq $19,%ymm0,%ymm9 + vpxor %ymm10,%ymm11,%ymm11 + rorxq $18,%rbx,%rdi + leaq (%r9,%r14,1),%r9 + leaq (%r8,%r12,1),%r8 + vpsllq $42,%ymm10,%ymm10 + vpxor %ymm9,%ymm11,%ymm11 + andnq %rdx,%rbx,%r12 + xorq %rdi,%r13 + rorxq $14,%rbx,%r14 + vpsrlq $42,%ymm9,%ymm9 + vpxor %ymm10,%ymm11,%ymm11 + leaq (%r8,%r12,1),%r8 + xorq %r14,%r13 + movq %r9,%rdi + vpxor %ymm9,%ymm11,%ymm11 + rorxq $39,%r9,%r12 + leaq (%r8,%r13,1),%r8 + xorq %r10,%rdi + vpaddq %ymm11,%ymm1,%ymm1 + rorxq $34,%r9,%r14 + rorxq $28,%r9,%r13 + leaq (%rax,%r8,1),%rax + vpaddq -96(%rbp),%ymm1,%ymm10 + andq %rdi,%r15 + xorq %r12,%r14 + xorq %r10,%r15 + xorq %r13,%r14 + leaq (%r8,%r15,1),%r8 + movq %rbx,%r12 + vmovdqa %ymm10,32(%rsp) + vpalignr $8,%ymm2,%ymm3,%ymm8 + addq 64+256(%rsp),%rdx + andq %rax,%r12 + rorxq $41,%rax,%r13 + vpalignr $8,%ymm6,%ymm7,%ymm11 + rorxq $18,%rax,%r15 + leaq (%r8,%r14,1),%r8 + leaq (%rdx,%r12,1),%rdx + vpsrlq $1,%ymm8,%ymm10 + andnq %rcx,%rax,%r12 + xorq %r15,%r13 + rorxq $14,%rax,%r14 + vpaddq %ymm11,%ymm2,%ymm2 + vpsrlq $7,%ymm8,%ymm11 + leaq (%rdx,%r12,1),%rdx + xorq %r14,%r13 + movq %r8,%r15 + vpsllq $56,%ymm8,%ymm9 + vpxor %ymm10,%ymm11,%ymm8 + rorxq $39,%r8,%r12 + leaq (%rdx,%r13,1),%rdx + xorq %r9,%r15 + vpsrlq $7,%ymm10,%ymm10 + vpxor %ymm9,%ymm8,%ymm8 + rorxq $34,%r8,%r14 + rorxq $28,%r8,%r13 + leaq (%r11,%rdx,1),%r11 + vpsllq $7,%ymm9,%ymm9 + vpxor %ymm10,%ymm8,%ymm8 + andq %r15,%rdi + xorq %r12,%r14 + xorq %r9,%rdi + vpsrlq $6,%ymm1,%ymm11 + vpxor %ymm9,%ymm8,%ymm8 + xorq %r13,%r14 + leaq (%rdx,%rdi,1),%rdx + movq %rax,%r12 + vpsllq $3,%ymm1,%ymm10 + vpaddq %ymm8,%ymm2,%ymm2 + addq 72+256(%rsp),%rcx + andq %r11,%r12 + rorxq $41,%r11,%r13 + vpsrlq $19,%ymm1,%ymm9 + vpxor %ymm10,%ymm11,%ymm11 + rorxq $18,%r11,%rdi + leaq (%rdx,%r14,1),%rdx + leaq (%rcx,%r12,1),%rcx + vpsllq $42,%ymm10,%ymm10 + vpxor %ymm9,%ymm11,%ymm11 + andnq %rbx,%r11,%r12 + xorq %rdi,%r13 + rorxq $14,%r11,%r14 + vpsrlq $42,%ymm9,%ymm9 + vpxor %ymm10,%ymm11,%ymm11 + leaq (%rcx,%r12,1),%rcx + xorq %r14,%r13 + movq %rdx,%rdi + vpxor %ymm9,%ymm11,%ymm11 + rorxq $39,%rdx,%r12 + leaq (%rcx,%r13,1),%rcx + xorq %r8,%rdi + vpaddq %ymm11,%ymm2,%ymm2 + rorxq $34,%rdx,%r14 + rorxq $28,%rdx,%r13 + leaq (%r10,%rcx,1),%r10 + vpaddq -64(%rbp),%ymm2,%ymm10 + andq %rdi,%r15 + xorq %r12,%r14 + xorq %r8,%r15 + xorq %r13,%r14 + leaq (%rcx,%r15,1),%rcx + movq %r11,%r12 + vmovdqa %ymm10,64(%rsp) + vpalignr $8,%ymm3,%ymm4,%ymm8 + addq 96+256(%rsp),%rbx + andq %r10,%r12 + rorxq $41,%r10,%r13 + vpalignr $8,%ymm7,%ymm0,%ymm11 + rorxq $18,%r10,%r15 + leaq (%rcx,%r14,1),%rcx + leaq (%rbx,%r12,1),%rbx + vpsrlq $1,%ymm8,%ymm10 + andnq %rax,%r10,%r12 + xorq %r15,%r13 + rorxq $14,%r10,%r14 + vpaddq %ymm11,%ymm3,%ymm3 + vpsrlq $7,%ymm8,%ymm11 + leaq (%rbx,%r12,1),%rbx + xorq %r14,%r13 + movq %rcx,%r15 + vpsllq $56,%ymm8,%ymm9 + vpxor %ymm10,%ymm11,%ymm8 + rorxq $39,%rcx,%r12 + leaq (%rbx,%r13,1),%rbx + xorq %rdx,%r15 + vpsrlq $7,%ymm10,%ymm10 + vpxor %ymm9,%ymm8,%ymm8 + rorxq $34,%rcx,%r14 + rorxq $28,%rcx,%r13 + leaq (%r9,%rbx,1),%r9 + vpsllq $7,%ymm9,%ymm9 + vpxor %ymm10,%ymm8,%ymm8 + andq %r15,%rdi + xorq %r12,%r14 + xorq %rdx,%rdi + vpsrlq $6,%ymm2,%ymm11 + vpxor %ymm9,%ymm8,%ymm8 + xorq %r13,%r14 + leaq (%rbx,%rdi,1),%rbx + movq %r10,%r12 + vpsllq $3,%ymm2,%ymm10 + vpaddq %ymm8,%ymm3,%ymm3 + addq 104+256(%rsp),%rax + andq %r9,%r12 + rorxq $41,%r9,%r13 + vpsrlq $19,%ymm2,%ymm9 + vpxor %ymm10,%ymm11,%ymm11 + rorxq $18,%r9,%rdi + leaq (%rbx,%r14,1),%rbx + leaq (%rax,%r12,1),%rax + vpsllq $42,%ymm10,%ymm10 + vpxor %ymm9,%ymm11,%ymm11 + andnq %r11,%r9,%r12 + xorq %rdi,%r13 + rorxq $14,%r9,%r14 + vpsrlq $42,%ymm9,%ymm9 + vpxor %ymm10,%ymm11,%ymm11 + leaq (%rax,%r12,1),%rax + xorq %r14,%r13 + movq %rbx,%rdi + vpxor %ymm9,%ymm11,%ymm11 + rorxq $39,%rbx,%r12 + leaq (%rax,%r13,1),%rax + xorq %rcx,%rdi + vpaddq %ymm11,%ymm3,%ymm3 + rorxq $34,%rbx,%r14 + rorxq $28,%rbx,%r13 + leaq (%r8,%rax,1),%r8 + vpaddq -32(%rbp),%ymm3,%ymm10 + andq %rdi,%r15 + xorq %r12,%r14 + xorq %rcx,%r15 + xorq %r13,%r14 + leaq (%rax,%r15,1),%rax + movq %r9,%r12 + vmovdqa %ymm10,96(%rsp) + leaq -128(%rsp),%rsp + + + pushq 128-8(%rsp) + + leaq 8(%rsp),%rsp + + vpalignr $8,%ymm4,%ymm5,%ymm8 + addq 0+256(%rsp),%r11 + andq %r8,%r12 + rorxq $41,%r8,%r13 + vpalignr $8,%ymm0,%ymm1,%ymm11 + rorxq $18,%r8,%r15 + leaq (%rax,%r14,1),%rax + leaq (%r11,%r12,1),%r11 + vpsrlq $1,%ymm8,%ymm10 + andnq %r10,%r8,%r12 + xorq %r15,%r13 + rorxq $14,%r8,%r14 + vpaddq %ymm11,%ymm4,%ymm4 + vpsrlq $7,%ymm8,%ymm11 + leaq (%r11,%r12,1),%r11 + xorq %r14,%r13 + movq %rax,%r15 + vpsllq $56,%ymm8,%ymm9 + vpxor %ymm10,%ymm11,%ymm8 + rorxq $39,%rax,%r12 + leaq (%r11,%r13,1),%r11 + xorq %rbx,%r15 + vpsrlq $7,%ymm10,%ymm10 + vpxor %ymm9,%ymm8,%ymm8 + rorxq $34,%rax,%r14 + rorxq $28,%rax,%r13 + leaq (%rdx,%r11,1),%rdx + vpsllq $7,%ymm9,%ymm9 + vpxor %ymm10,%ymm8,%ymm8 + andq %r15,%rdi + xorq %r12,%r14 + xorq %rbx,%rdi + vpsrlq $6,%ymm3,%ymm11 + vpxor %ymm9,%ymm8,%ymm8 + xorq %r13,%r14 + leaq (%r11,%rdi,1),%r11 + movq %r8,%r12 + vpsllq $3,%ymm3,%ymm10 + vpaddq %ymm8,%ymm4,%ymm4 + addq 8+256(%rsp),%r10 + andq %rdx,%r12 + rorxq $41,%rdx,%r13 + vpsrlq $19,%ymm3,%ymm9 + vpxor %ymm10,%ymm11,%ymm11 + rorxq $18,%rdx,%rdi + leaq (%r11,%r14,1),%r11 + leaq (%r10,%r12,1),%r10 + vpsllq $42,%ymm10,%ymm10 + vpxor %ymm9,%ymm11,%ymm11 + andnq %r9,%rdx,%r12 + xorq %rdi,%r13 + rorxq $14,%rdx,%r14 + vpsrlq $42,%ymm9,%ymm9 + vpxor %ymm10,%ymm11,%ymm11 + leaq (%r10,%r12,1),%r10 + xorq %r14,%r13 + movq %r11,%rdi + vpxor %ymm9,%ymm11,%ymm11 + rorxq $39,%r11,%r12 + leaq (%r10,%r13,1),%r10 + xorq %rax,%rdi + vpaddq %ymm11,%ymm4,%ymm4 + rorxq $34,%r11,%r14 + rorxq $28,%r11,%r13 + leaq (%rcx,%r10,1),%rcx + vpaddq 0(%rbp),%ymm4,%ymm10 + andq %rdi,%r15 + xorq %r12,%r14 + xorq %rax,%r15 + xorq %r13,%r14 + leaq (%r10,%r15,1),%r10 + movq %rdx,%r12 + vmovdqa %ymm10,0(%rsp) + vpalignr $8,%ymm5,%ymm6,%ymm8 + addq 32+256(%rsp),%r9 + andq %rcx,%r12 + rorxq $41,%rcx,%r13 + vpalignr $8,%ymm1,%ymm2,%ymm11 + rorxq $18,%rcx,%r15 + leaq (%r10,%r14,1),%r10 + leaq (%r9,%r12,1),%r9 + vpsrlq $1,%ymm8,%ymm10 + andnq %r8,%rcx,%r12 + xorq %r15,%r13 + rorxq $14,%rcx,%r14 + vpaddq %ymm11,%ymm5,%ymm5 + vpsrlq $7,%ymm8,%ymm11 + leaq (%r9,%r12,1),%r9 + xorq %r14,%r13 + movq %r10,%r15 + vpsllq $56,%ymm8,%ymm9 + vpxor %ymm10,%ymm11,%ymm8 + rorxq $39,%r10,%r12 + leaq (%r9,%r13,1),%r9 + xorq %r11,%r15 + vpsrlq $7,%ymm10,%ymm10 + vpxor %ymm9,%ymm8,%ymm8 + rorxq $34,%r10,%r14 + rorxq $28,%r10,%r13 + leaq (%rbx,%r9,1),%rbx + vpsllq $7,%ymm9,%ymm9 + vpxor %ymm10,%ymm8,%ymm8 + andq %r15,%rdi + xorq %r12,%r14 + xorq %r11,%rdi + vpsrlq $6,%ymm4,%ymm11 + vpxor %ymm9,%ymm8,%ymm8 + xorq %r13,%r14 + leaq (%r9,%rdi,1),%r9 + movq %rcx,%r12 + vpsllq $3,%ymm4,%ymm10 + vpaddq %ymm8,%ymm5,%ymm5 + addq 40+256(%rsp),%r8 + andq %rbx,%r12 + rorxq $41,%rbx,%r13 + vpsrlq $19,%ymm4,%ymm9 + vpxor %ymm10,%ymm11,%ymm11 + rorxq $18,%rbx,%rdi + leaq (%r9,%r14,1),%r9 + leaq (%r8,%r12,1),%r8 + vpsllq $42,%ymm10,%ymm10 + vpxor %ymm9,%ymm11,%ymm11 + andnq %rdx,%rbx,%r12 + xorq %rdi,%r13 + rorxq $14,%rbx,%r14 + vpsrlq $42,%ymm9,%ymm9 + vpxor %ymm10,%ymm11,%ymm11 + leaq (%r8,%r12,1),%r8 + xorq %r14,%r13 + movq %r9,%rdi + vpxor %ymm9,%ymm11,%ymm11 + rorxq $39,%r9,%r12 + leaq (%r8,%r13,1),%r8 + xorq %r10,%rdi + vpaddq %ymm11,%ymm5,%ymm5 + rorxq $34,%r9,%r14 + rorxq $28,%r9,%r13 + leaq (%rax,%r8,1),%rax + vpaddq 32(%rbp),%ymm5,%ymm10 + andq %rdi,%r15 + xorq %r12,%r14 + xorq %r10,%r15 + xorq %r13,%r14 + leaq (%r8,%r15,1),%r8 + movq %rbx,%r12 + vmovdqa %ymm10,32(%rsp) + vpalignr $8,%ymm6,%ymm7,%ymm8 + addq 64+256(%rsp),%rdx + andq %rax,%r12 + rorxq $41,%rax,%r13 + vpalignr $8,%ymm2,%ymm3,%ymm11 + rorxq $18,%rax,%r15 + leaq (%r8,%r14,1),%r8 + leaq (%rdx,%r12,1),%rdx + vpsrlq $1,%ymm8,%ymm10 + andnq %rcx,%rax,%r12 + xorq %r15,%r13 + rorxq $14,%rax,%r14 + vpaddq %ymm11,%ymm6,%ymm6 + vpsrlq $7,%ymm8,%ymm11 + leaq (%rdx,%r12,1),%rdx + xorq %r14,%r13 + movq %r8,%r15 + vpsllq $56,%ymm8,%ymm9 + vpxor %ymm10,%ymm11,%ymm8 + rorxq $39,%r8,%r12 + leaq (%rdx,%r13,1),%rdx + xorq %r9,%r15 + vpsrlq $7,%ymm10,%ymm10 + vpxor %ymm9,%ymm8,%ymm8 + rorxq $34,%r8,%r14 + rorxq $28,%r8,%r13 + leaq (%r11,%rdx,1),%r11 + vpsllq $7,%ymm9,%ymm9 + vpxor %ymm10,%ymm8,%ymm8 + andq %r15,%rdi + xorq %r12,%r14 + xorq %r9,%rdi + vpsrlq $6,%ymm5,%ymm11 + vpxor %ymm9,%ymm8,%ymm8 + xorq %r13,%r14 + leaq (%rdx,%rdi,1),%rdx + movq %rax,%r12 + vpsllq $3,%ymm5,%ymm10 + vpaddq %ymm8,%ymm6,%ymm6 + addq 72+256(%rsp),%rcx + andq %r11,%r12 + rorxq $41,%r11,%r13 + vpsrlq $19,%ymm5,%ymm9 + vpxor %ymm10,%ymm11,%ymm11 + rorxq $18,%r11,%rdi + leaq (%rdx,%r14,1),%rdx + leaq (%rcx,%r12,1),%rcx + vpsllq $42,%ymm10,%ymm10 + vpxor %ymm9,%ymm11,%ymm11 + andnq %rbx,%r11,%r12 + xorq %rdi,%r13 + rorxq $14,%r11,%r14 + vpsrlq $42,%ymm9,%ymm9 + vpxor %ymm10,%ymm11,%ymm11 + leaq (%rcx,%r12,1),%rcx + xorq %r14,%r13 + movq %rdx,%rdi + vpxor %ymm9,%ymm11,%ymm11 + rorxq $39,%rdx,%r12 + leaq (%rcx,%r13,1),%rcx + xorq %r8,%rdi + vpaddq %ymm11,%ymm6,%ymm6 + rorxq $34,%rdx,%r14 + rorxq $28,%rdx,%r13 + leaq (%r10,%rcx,1),%r10 + vpaddq 64(%rbp),%ymm6,%ymm10 + andq %rdi,%r15 + xorq %r12,%r14 + xorq %r8,%r15 + xorq %r13,%r14 + leaq (%rcx,%r15,1),%rcx + movq %r11,%r12 + vmovdqa %ymm10,64(%rsp) + vpalignr $8,%ymm7,%ymm0,%ymm8 + addq 96+256(%rsp),%rbx + andq %r10,%r12 + rorxq $41,%r10,%r13 + vpalignr $8,%ymm3,%ymm4,%ymm11 + rorxq $18,%r10,%r15 + leaq (%rcx,%r14,1),%rcx + leaq (%rbx,%r12,1),%rbx + vpsrlq $1,%ymm8,%ymm10 + andnq %rax,%r10,%r12 + xorq %r15,%r13 + rorxq $14,%r10,%r14 + vpaddq %ymm11,%ymm7,%ymm7 + vpsrlq $7,%ymm8,%ymm11 + leaq (%rbx,%r12,1),%rbx + xorq %r14,%r13 + movq %rcx,%r15 + vpsllq $56,%ymm8,%ymm9 + vpxor %ymm10,%ymm11,%ymm8 + rorxq $39,%rcx,%r12 + leaq (%rbx,%r13,1),%rbx + xorq %rdx,%r15 + vpsrlq $7,%ymm10,%ymm10 + vpxor %ymm9,%ymm8,%ymm8 + rorxq $34,%rcx,%r14 + rorxq $28,%rcx,%r13 + leaq (%r9,%rbx,1),%r9 + vpsllq $7,%ymm9,%ymm9 + vpxor %ymm10,%ymm8,%ymm8 + andq %r15,%rdi + xorq %r12,%r14 + xorq %rdx,%rdi + vpsrlq $6,%ymm6,%ymm11 + vpxor %ymm9,%ymm8,%ymm8 + xorq %r13,%r14 + leaq (%rbx,%rdi,1),%rbx + movq %r10,%r12 + vpsllq $3,%ymm6,%ymm10 + vpaddq %ymm8,%ymm7,%ymm7 + addq 104+256(%rsp),%rax + andq %r9,%r12 + rorxq $41,%r9,%r13 + vpsrlq $19,%ymm6,%ymm9 + vpxor %ymm10,%ymm11,%ymm11 + rorxq $18,%r9,%rdi + leaq (%rbx,%r14,1),%rbx + leaq (%rax,%r12,1),%rax + vpsllq $42,%ymm10,%ymm10 + vpxor %ymm9,%ymm11,%ymm11 + andnq %r11,%r9,%r12 + xorq %rdi,%r13 + rorxq $14,%r9,%r14 + vpsrlq $42,%ymm9,%ymm9 + vpxor %ymm10,%ymm11,%ymm11 + leaq (%rax,%r12,1),%rax + xorq %r14,%r13 + movq %rbx,%rdi + vpxor %ymm9,%ymm11,%ymm11 + rorxq $39,%rbx,%r12 + leaq (%rax,%r13,1),%rax + xorq %rcx,%rdi + vpaddq %ymm11,%ymm7,%ymm7 + rorxq $34,%rbx,%r14 + rorxq $28,%rbx,%r13 + leaq (%r8,%rax,1),%r8 + vpaddq 96(%rbp),%ymm7,%ymm10 + andq %rdi,%r15 + xorq %r12,%r14 + xorq %rcx,%r15 + xorq %r13,%r14 + leaq (%rax,%r15,1),%rax + movq %r9,%r12 + vmovdqa %ymm10,96(%rsp) + leaq 256(%rbp),%rbp + cmpb $0,-121(%rbp) + jne L$avx2_00_47 + addq 0+128(%rsp),%r11 + andq %r8,%r12 + rorxq $41,%r8,%r13 + rorxq $18,%r8,%r15 + leaq (%rax,%r14,1),%rax + leaq (%r11,%r12,1),%r11 + andnq %r10,%r8,%r12 + xorq %r15,%r13 + rorxq $14,%r8,%r14 + leaq (%r11,%r12,1),%r11 + xorq %r14,%r13 + movq %rax,%r15 + rorxq $39,%rax,%r12 + leaq (%r11,%r13,1),%r11 + xorq %rbx,%r15 + rorxq $34,%rax,%r14 + rorxq $28,%rax,%r13 + leaq (%rdx,%r11,1),%rdx + andq %r15,%rdi + xorq %r12,%r14 + xorq %rbx,%rdi + xorq %r13,%r14 + leaq (%r11,%rdi,1),%r11 + movq %r8,%r12 + addq 8+128(%rsp),%r10 + andq %rdx,%r12 + rorxq $41,%rdx,%r13 + rorxq $18,%rdx,%rdi + leaq (%r11,%r14,1),%r11 + leaq (%r10,%r12,1),%r10 + andnq %r9,%rdx,%r12 + xorq %rdi,%r13 + rorxq $14,%rdx,%r14 + leaq (%r10,%r12,1),%r10 + xorq %r14,%r13 + movq %r11,%rdi + rorxq $39,%r11,%r12 + leaq (%r10,%r13,1),%r10 + xorq %rax,%rdi + rorxq $34,%r11,%r14 + rorxq $28,%r11,%r13 + leaq (%rcx,%r10,1),%rcx + andq %rdi,%r15 + xorq %r12,%r14 + xorq %rax,%r15 + xorq %r13,%r14 + leaq (%r10,%r15,1),%r10 + movq %rdx,%r12 + addq 32+128(%rsp),%r9 + andq %rcx,%r12 + rorxq $41,%rcx,%r13 + rorxq $18,%rcx,%r15 + leaq (%r10,%r14,1),%r10 + leaq (%r9,%r12,1),%r9 + andnq %r8,%rcx,%r12 + xorq %r15,%r13 + rorxq $14,%rcx,%r14 + leaq (%r9,%r12,1),%r9 + xorq %r14,%r13 + movq %r10,%r15 + rorxq $39,%r10,%r12 + leaq (%r9,%r13,1),%r9 + xorq %r11,%r15 + rorxq $34,%r10,%r14 + rorxq $28,%r10,%r13 + leaq (%rbx,%r9,1),%rbx + andq %r15,%rdi + xorq %r12,%r14 + xorq %r11,%rdi + xorq %r13,%r14 + leaq (%r9,%rdi,1),%r9 + movq %rcx,%r12 + addq 40+128(%rsp),%r8 + andq %rbx,%r12 + rorxq $41,%rbx,%r13 + rorxq $18,%rbx,%rdi + leaq (%r9,%r14,1),%r9 + leaq (%r8,%r12,1),%r8 + andnq %rdx,%rbx,%r12 + xorq %rdi,%r13 + rorxq $14,%rbx,%r14 + leaq (%r8,%r12,1),%r8 + xorq %r14,%r13 + movq %r9,%rdi + rorxq $39,%r9,%r12 + leaq (%r8,%r13,1),%r8 + xorq %r10,%rdi + rorxq $34,%r9,%r14 + rorxq $28,%r9,%r13 + leaq (%rax,%r8,1),%rax + andq %rdi,%r15 + xorq %r12,%r14 + xorq %r10,%r15 + xorq %r13,%r14 + leaq (%r8,%r15,1),%r8 + movq %rbx,%r12 + addq 64+128(%rsp),%rdx + andq %rax,%r12 + rorxq $41,%rax,%r13 + rorxq $18,%rax,%r15 + leaq (%r8,%r14,1),%r8 + leaq (%rdx,%r12,1),%rdx + andnq %rcx,%rax,%r12 + xorq %r15,%r13 + rorxq $14,%rax,%r14 + leaq (%rdx,%r12,1),%rdx + xorq %r14,%r13 + movq %r8,%r15 + rorxq $39,%r8,%r12 + leaq (%rdx,%r13,1),%rdx + xorq %r9,%r15 + rorxq $34,%r8,%r14 + rorxq $28,%r8,%r13 + leaq (%r11,%rdx,1),%r11 + andq %r15,%rdi + xorq %r12,%r14 + xorq %r9,%rdi + xorq %r13,%r14 + leaq (%rdx,%rdi,1),%rdx + movq %rax,%r12 + addq 72+128(%rsp),%rcx + andq %r11,%r12 + rorxq $41,%r11,%r13 + rorxq $18,%r11,%rdi + leaq (%rdx,%r14,1),%rdx + leaq (%rcx,%r12,1),%rcx + andnq %rbx,%r11,%r12 + xorq %rdi,%r13 + rorxq $14,%r11,%r14 + leaq (%rcx,%r12,1),%rcx + xorq %r14,%r13 + movq %rdx,%rdi + rorxq $39,%rdx,%r12 + leaq (%rcx,%r13,1),%rcx + xorq %r8,%rdi + rorxq $34,%rdx,%r14 + rorxq $28,%rdx,%r13 + leaq (%r10,%rcx,1),%r10 + andq %rdi,%r15 + xorq %r12,%r14 + xorq %r8,%r15 + xorq %r13,%r14 + leaq (%rcx,%r15,1),%rcx + movq %r11,%r12 + addq 96+128(%rsp),%rbx + andq %r10,%r12 + rorxq $41,%r10,%r13 + rorxq $18,%r10,%r15 + leaq (%rcx,%r14,1),%rcx + leaq (%rbx,%r12,1),%rbx + andnq %rax,%r10,%r12 + xorq %r15,%r13 + rorxq $14,%r10,%r14 + leaq (%rbx,%r12,1),%rbx + xorq %r14,%r13 + movq %rcx,%r15 + rorxq $39,%rcx,%r12 + leaq (%rbx,%r13,1),%rbx + xorq %rdx,%r15 + rorxq $34,%rcx,%r14 + rorxq $28,%rcx,%r13 + leaq (%r9,%rbx,1),%r9 + andq %r15,%rdi + xorq %r12,%r14 + xorq %rdx,%rdi + xorq %r13,%r14 + leaq (%rbx,%rdi,1),%rbx + movq %r10,%r12 + addq 104+128(%rsp),%rax + andq %r9,%r12 + rorxq $41,%r9,%r13 + rorxq $18,%r9,%rdi + leaq (%rbx,%r14,1),%rbx + leaq (%rax,%r12,1),%rax + andnq %r11,%r9,%r12 + xorq %rdi,%r13 + rorxq $14,%r9,%r14 + leaq (%rax,%r12,1),%rax + xorq %r14,%r13 + movq %rbx,%rdi + rorxq $39,%rbx,%r12 + leaq (%rax,%r13,1),%rax + xorq %rcx,%rdi + rorxq $34,%rbx,%r14 + rorxq $28,%rbx,%r13 + leaq (%r8,%rax,1),%r8 + andq %rdi,%r15 + xorq %r12,%r14 + xorq %rcx,%r15 + xorq %r13,%r14 + leaq (%rax,%r15,1),%rax + movq %r9,%r12 + addq 0(%rsp),%r11 + andq %r8,%r12 + rorxq $41,%r8,%r13 + rorxq $18,%r8,%r15 + leaq (%rax,%r14,1),%rax + leaq (%r11,%r12,1),%r11 + andnq %r10,%r8,%r12 + xorq %r15,%r13 + rorxq $14,%r8,%r14 + leaq (%r11,%r12,1),%r11 + xorq %r14,%r13 + movq %rax,%r15 + rorxq $39,%rax,%r12 + leaq (%r11,%r13,1),%r11 + xorq %rbx,%r15 + rorxq $34,%rax,%r14 + rorxq $28,%rax,%r13 + leaq (%rdx,%r11,1),%rdx + andq %r15,%rdi + xorq %r12,%r14 + xorq %rbx,%rdi + xorq %r13,%r14 + leaq (%r11,%rdi,1),%r11 + movq %r8,%r12 + addq 8(%rsp),%r10 + andq %rdx,%r12 + rorxq $41,%rdx,%r13 + rorxq $18,%rdx,%rdi + leaq (%r11,%r14,1),%r11 + leaq (%r10,%r12,1),%r10 + andnq %r9,%rdx,%r12 + xorq %rdi,%r13 + rorxq $14,%rdx,%r14 + leaq (%r10,%r12,1),%r10 + xorq %r14,%r13 + movq %r11,%rdi + rorxq $39,%r11,%r12 + leaq (%r10,%r13,1),%r10 + xorq %rax,%rdi + rorxq $34,%r11,%r14 + rorxq $28,%r11,%r13 + leaq (%rcx,%r10,1),%rcx + andq %rdi,%r15 + xorq %r12,%r14 + xorq %rax,%r15 + xorq %r13,%r14 + leaq (%r10,%r15,1),%r10 + movq %rdx,%r12 + addq 32(%rsp),%r9 + andq %rcx,%r12 + rorxq $41,%rcx,%r13 + rorxq $18,%rcx,%r15 + leaq (%r10,%r14,1),%r10 + leaq (%r9,%r12,1),%r9 + andnq %r8,%rcx,%r12 + xorq %r15,%r13 + rorxq $14,%rcx,%r14 + leaq (%r9,%r12,1),%r9 + xorq %r14,%r13 + movq %r10,%r15 + rorxq $39,%r10,%r12 + leaq (%r9,%r13,1),%r9 + xorq %r11,%r15 + rorxq $34,%r10,%r14 + rorxq $28,%r10,%r13 + leaq (%rbx,%r9,1),%rbx + andq %r15,%rdi + xorq %r12,%r14 + xorq %r11,%rdi + xorq %r13,%r14 + leaq (%r9,%rdi,1),%r9 + movq %rcx,%r12 + addq 40(%rsp),%r8 + andq %rbx,%r12 + rorxq $41,%rbx,%r13 + rorxq $18,%rbx,%rdi + leaq (%r9,%r14,1),%r9 + leaq (%r8,%r12,1),%r8 + andnq %rdx,%rbx,%r12 + xorq %rdi,%r13 + rorxq $14,%rbx,%r14 + leaq (%r8,%r12,1),%r8 + xorq %r14,%r13 + movq %r9,%rdi + rorxq $39,%r9,%r12 + leaq (%r8,%r13,1),%r8 + xorq %r10,%rdi + rorxq $34,%r9,%r14 + rorxq $28,%r9,%r13 + leaq (%rax,%r8,1),%rax + andq %rdi,%r15 + xorq %r12,%r14 + xorq %r10,%r15 + xorq %r13,%r14 + leaq (%r8,%r15,1),%r8 + movq %rbx,%r12 + addq 64(%rsp),%rdx + andq %rax,%r12 + rorxq $41,%rax,%r13 + rorxq $18,%rax,%r15 + leaq (%r8,%r14,1),%r8 + leaq (%rdx,%r12,1),%rdx + andnq %rcx,%rax,%r12 + xorq %r15,%r13 + rorxq $14,%rax,%r14 + leaq (%rdx,%r12,1),%rdx + xorq %r14,%r13 + movq %r8,%r15 + rorxq $39,%r8,%r12 + leaq (%rdx,%r13,1),%rdx + xorq %r9,%r15 + rorxq $34,%r8,%r14 + rorxq $28,%r8,%r13 + leaq (%r11,%rdx,1),%r11 + andq %r15,%rdi + xorq %r12,%r14 + xorq %r9,%rdi + xorq %r13,%r14 + leaq (%rdx,%rdi,1),%rdx + movq %rax,%r12 + addq 72(%rsp),%rcx + andq %r11,%r12 + rorxq $41,%r11,%r13 + rorxq $18,%r11,%rdi + leaq (%rdx,%r14,1),%rdx + leaq (%rcx,%r12,1),%rcx + andnq %rbx,%r11,%r12 + xorq %rdi,%r13 + rorxq $14,%r11,%r14 + leaq (%rcx,%r12,1),%rcx + xorq %r14,%r13 + movq %rdx,%rdi + rorxq $39,%rdx,%r12 + leaq (%rcx,%r13,1),%rcx + xorq %r8,%rdi + rorxq $34,%rdx,%r14 + rorxq $28,%rdx,%r13 + leaq (%r10,%rcx,1),%r10 + andq %rdi,%r15 + xorq %r12,%r14 + xorq %r8,%r15 + xorq %r13,%r14 + leaq (%rcx,%r15,1),%rcx + movq %r11,%r12 + addq 96(%rsp),%rbx + andq %r10,%r12 + rorxq $41,%r10,%r13 + rorxq $18,%r10,%r15 + leaq (%rcx,%r14,1),%rcx + leaq (%rbx,%r12,1),%rbx + andnq %rax,%r10,%r12 + xorq %r15,%r13 + rorxq $14,%r10,%r14 + leaq (%rbx,%r12,1),%rbx + xorq %r14,%r13 + movq %rcx,%r15 + rorxq $39,%rcx,%r12 + leaq (%rbx,%r13,1),%rbx + xorq %rdx,%r15 + rorxq $34,%rcx,%r14 + rorxq $28,%rcx,%r13 + leaq (%r9,%rbx,1),%r9 + andq %r15,%rdi + xorq %r12,%r14 + xorq %rdx,%rdi + xorq %r13,%r14 + leaq (%rbx,%rdi,1),%rbx + movq %r10,%r12 + addq 104(%rsp),%rax + andq %r9,%r12 + rorxq $41,%r9,%r13 + rorxq $18,%r9,%rdi + leaq (%rbx,%r14,1),%rbx + leaq (%rax,%r12,1),%rax + andnq %r11,%r9,%r12 + xorq %rdi,%r13 + rorxq $14,%r9,%r14 + leaq (%rax,%r12,1),%rax + xorq %r14,%r13 + movq %rbx,%rdi + rorxq $39,%rbx,%r12 + leaq (%rax,%r13,1),%rax + xorq %rcx,%rdi + rorxq $34,%rbx,%r14 + rorxq $28,%rbx,%r13 + leaq (%r8,%rax,1),%r8 + andq %rdi,%r15 + xorq %r12,%r14 + xorq %rcx,%r15 + xorq %r13,%r14 + leaq (%rax,%r15,1),%rax + movq %r9,%r12 + movq 1280(%rsp),%rdi + addq %r14,%rax + + leaq 1152(%rsp),%rbp + + addq 0(%rdi),%rax + addq 8(%rdi),%rbx + addq 16(%rdi),%rcx + addq 24(%rdi),%rdx + addq 32(%rdi),%r8 + addq 40(%rdi),%r9 + addq 48(%rdi),%r10 + addq 56(%rdi),%r11 + + movq %rax,0(%rdi) + movq %rbx,8(%rdi) + movq %rcx,16(%rdi) + movq %rdx,24(%rdi) + movq %r8,32(%rdi) + movq %r9,40(%rdi) + movq %r10,48(%rdi) + movq %r11,56(%rdi) + + cmpq 144(%rbp),%rsi + je L$done_avx2 + + xorq %r14,%r14 + movq %rbx,%rdi + xorq %rcx,%rdi + movq %r9,%r12 + jmp L$ower_avx2 +.p2align 4 +L$ower_avx2: + addq 0+16(%rbp),%r11 + andq %r8,%r12 + rorxq $41,%r8,%r13 + rorxq $18,%r8,%r15 + leaq (%rax,%r14,1),%rax + leaq (%r11,%r12,1),%r11 + andnq %r10,%r8,%r12 + xorq %r15,%r13 + rorxq $14,%r8,%r14 + leaq (%r11,%r12,1),%r11 + xorq %r14,%r13 + movq %rax,%r15 + rorxq $39,%rax,%r12 + leaq (%r11,%r13,1),%r11 + xorq %rbx,%r15 + rorxq $34,%rax,%r14 + rorxq $28,%rax,%r13 + leaq (%rdx,%r11,1),%rdx + andq %r15,%rdi + xorq %r12,%r14 + xorq %rbx,%rdi + xorq %r13,%r14 + leaq (%r11,%rdi,1),%r11 + movq %r8,%r12 + addq 8+16(%rbp),%r10 + andq %rdx,%r12 + rorxq $41,%rdx,%r13 + rorxq $18,%rdx,%rdi + leaq (%r11,%r14,1),%r11 + leaq (%r10,%r12,1),%r10 + andnq %r9,%rdx,%r12 + xorq %rdi,%r13 + rorxq $14,%rdx,%r14 + leaq (%r10,%r12,1),%r10 + xorq %r14,%r13 + movq %r11,%rdi + rorxq $39,%r11,%r12 + leaq (%r10,%r13,1),%r10 + xorq %rax,%rdi + rorxq $34,%r11,%r14 + rorxq $28,%r11,%r13 + leaq (%rcx,%r10,1),%rcx + andq %rdi,%r15 + xorq %r12,%r14 + xorq %rax,%r15 + xorq %r13,%r14 + leaq (%r10,%r15,1),%r10 + movq %rdx,%r12 + addq 32+16(%rbp),%r9 + andq %rcx,%r12 + rorxq $41,%rcx,%r13 + rorxq $18,%rcx,%r15 + leaq (%r10,%r14,1),%r10 + leaq (%r9,%r12,1),%r9 + andnq %r8,%rcx,%r12 + xorq %r15,%r13 + rorxq $14,%rcx,%r14 + leaq (%r9,%r12,1),%r9 + xorq %r14,%r13 + movq %r10,%r15 + rorxq $39,%r10,%r12 + leaq (%r9,%r13,1),%r9 + xorq %r11,%r15 + rorxq $34,%r10,%r14 + rorxq $28,%r10,%r13 + leaq (%rbx,%r9,1),%rbx + andq %r15,%rdi + xorq %r12,%r14 + xorq %r11,%rdi + xorq %r13,%r14 + leaq (%r9,%rdi,1),%r9 + movq %rcx,%r12 + addq 40+16(%rbp),%r8 + andq %rbx,%r12 + rorxq $41,%rbx,%r13 + rorxq $18,%rbx,%rdi + leaq (%r9,%r14,1),%r9 + leaq (%r8,%r12,1),%r8 + andnq %rdx,%rbx,%r12 + xorq %rdi,%r13 + rorxq $14,%rbx,%r14 + leaq (%r8,%r12,1),%r8 + xorq %r14,%r13 + movq %r9,%rdi + rorxq $39,%r9,%r12 + leaq (%r8,%r13,1),%r8 + xorq %r10,%rdi + rorxq $34,%r9,%r14 + rorxq $28,%r9,%r13 + leaq (%rax,%r8,1),%rax + andq %rdi,%r15 + xorq %r12,%r14 + xorq %r10,%r15 + xorq %r13,%r14 + leaq (%r8,%r15,1),%r8 + movq %rbx,%r12 + addq 64+16(%rbp),%rdx + andq %rax,%r12 + rorxq $41,%rax,%r13 + rorxq $18,%rax,%r15 + leaq (%r8,%r14,1),%r8 + leaq (%rdx,%r12,1),%rdx + andnq %rcx,%rax,%r12 + xorq %r15,%r13 + rorxq $14,%rax,%r14 + leaq (%rdx,%r12,1),%rdx + xorq %r14,%r13 + movq %r8,%r15 + rorxq $39,%r8,%r12 + leaq (%rdx,%r13,1),%rdx + xorq %r9,%r15 + rorxq $34,%r8,%r14 + rorxq $28,%r8,%r13 + leaq (%r11,%rdx,1),%r11 + andq %r15,%rdi + xorq %r12,%r14 + xorq %r9,%rdi + xorq %r13,%r14 + leaq (%rdx,%rdi,1),%rdx + movq %rax,%r12 + addq 72+16(%rbp),%rcx + andq %r11,%r12 + rorxq $41,%r11,%r13 + rorxq $18,%r11,%rdi + leaq (%rdx,%r14,1),%rdx + leaq (%rcx,%r12,1),%rcx + andnq %rbx,%r11,%r12 + xorq %rdi,%r13 + rorxq $14,%r11,%r14 + leaq (%rcx,%r12,1),%rcx + xorq %r14,%r13 + movq %rdx,%rdi + rorxq $39,%rdx,%r12 + leaq (%rcx,%r13,1),%rcx + xorq %r8,%rdi + rorxq $34,%rdx,%r14 + rorxq $28,%rdx,%r13 + leaq (%r10,%rcx,1),%r10 + andq %rdi,%r15 + xorq %r12,%r14 + xorq %r8,%r15 + xorq %r13,%r14 + leaq (%rcx,%r15,1),%rcx + movq %r11,%r12 + addq 96+16(%rbp),%rbx + andq %r10,%r12 + rorxq $41,%r10,%r13 + rorxq $18,%r10,%r15 + leaq (%rcx,%r14,1),%rcx + leaq (%rbx,%r12,1),%rbx + andnq %rax,%r10,%r12 + xorq %r15,%r13 + rorxq $14,%r10,%r14 + leaq (%rbx,%r12,1),%rbx + xorq %r14,%r13 + movq %rcx,%r15 + rorxq $39,%rcx,%r12 + leaq (%rbx,%r13,1),%rbx + xorq %rdx,%r15 + rorxq $34,%rcx,%r14 + rorxq $28,%rcx,%r13 + leaq (%r9,%rbx,1),%r9 + andq %r15,%rdi + xorq %r12,%r14 + xorq %rdx,%rdi + xorq %r13,%r14 + leaq (%rbx,%rdi,1),%rbx + movq %r10,%r12 + addq 104+16(%rbp),%rax + andq %r9,%r12 + rorxq $41,%r9,%r13 + rorxq $18,%r9,%rdi + leaq (%rbx,%r14,1),%rbx + leaq (%rax,%r12,1),%rax + andnq %r11,%r9,%r12 + xorq %rdi,%r13 + rorxq $14,%r9,%r14 + leaq (%rax,%r12,1),%rax + xorq %r14,%r13 + movq %rbx,%rdi + rorxq $39,%rbx,%r12 + leaq (%rax,%r13,1),%rax + xorq %rcx,%rdi + rorxq $34,%rbx,%r14 + rorxq $28,%rbx,%r13 + leaq (%r8,%rax,1),%r8 + andq %rdi,%r15 + xorq %r12,%r14 + xorq %rcx,%r15 + xorq %r13,%r14 + leaq (%rax,%r15,1),%rax + movq %r9,%r12 + leaq -128(%rbp),%rbp + cmpq %rsp,%rbp + jae L$ower_avx2 + + movq 1280(%rsp),%rdi + addq %r14,%rax + + leaq 1152(%rsp),%rsp + + + + addq 0(%rdi),%rax + addq 8(%rdi),%rbx + addq 16(%rdi),%rcx + addq 24(%rdi),%rdx + addq 32(%rdi),%r8 + addq 40(%rdi),%r9 + leaq 256(%rsi),%rsi + addq 48(%rdi),%r10 + movq %rsi,%r12 + addq 56(%rdi),%r11 + cmpq 128+16(%rsp),%rsi + + movq %rax,0(%rdi) + cmoveq %rsp,%r12 + movq %rbx,8(%rdi) + movq %rcx,16(%rdi) + movq %rdx,24(%rdi) + movq %r8,32(%rdi) + movq %r9,40(%rdi) + movq %r10,48(%rdi) + movq %r11,56(%rdi) + + jbe L$oop_avx2 + leaq (%rsp),%rbp + + + + +L$done_avx2: + movq 152(%rbp),%rsi + + vzeroupper + movq -48(%rsi),%r15 + + movq -40(%rsi),%r14 + + movq -32(%rsi),%r13 + + movq -24(%rsi),%r12 + + movq -16(%rsi),%rbp + + movq -8(%rsi),%rbx + + leaq (%rsi),%rsp + +L$epilogue_avx2: + .byte 0xf3,0xc3 + + diff --git a/vere/ext/openssl/gen/macos-x86_64/crypto/whrlpool/wp-x86_64.s b/vere/ext/openssl/gen/macos-x86_64/crypto/whrlpool/wp-x86_64.s new file mode 100644 index 0000000..2c94c14 --- /dev/null +++ b/vere/ext/openssl/gen/macos-x86_64/crypto/whrlpool/wp-x86_64.s @@ -0,0 +1,879 @@ +.text + +.globl _whirlpool_block + +.p2align 4 +_whirlpool_block: + + movq %rsp,%rax + + pushq %rbx + + pushq %rbp + + pushq %r12 + + pushq %r13 + + pushq %r14 + + pushq %r15 + + + subq $128+40,%rsp + andq $-64,%rsp + + leaq 128(%rsp),%r10 + movq %rdi,0(%r10) + movq %rsi,8(%r10) + movq %rdx,16(%r10) + movq %rax,32(%r10) + +L$prologue: + + movq %r10,%rbx + leaq L$table(%rip),%rbp + + xorq %rcx,%rcx + xorq %rdx,%rdx + movq 0(%rdi),%r8 + movq 8(%rdi),%r9 + movq 16(%rdi),%r10 + movq 24(%rdi),%r11 + movq 32(%rdi),%r12 + movq 40(%rdi),%r13 + movq 48(%rdi),%r14 + movq 56(%rdi),%r15 +L$outerloop: + movq %r8,0(%rsp) + movq %r9,8(%rsp) + movq %r10,16(%rsp) + movq %r11,24(%rsp) + movq %r12,32(%rsp) + movq %r13,40(%rsp) + movq %r14,48(%rsp) + movq %r15,56(%rsp) + xorq 0(%rsi),%r8 + xorq 8(%rsi),%r9 + xorq 16(%rsi),%r10 + xorq 24(%rsi),%r11 + xorq 32(%rsi),%r12 + xorq 40(%rsi),%r13 + xorq 48(%rsi),%r14 + xorq 56(%rsi),%r15 + movq %r8,64+0(%rsp) + movq %r9,64+8(%rsp) + movq %r10,64+16(%rsp) + movq %r11,64+24(%rsp) + movq %r12,64+32(%rsp) + movq %r13,64+40(%rsp) + movq %r14,64+48(%rsp) + movq %r15,64+56(%rsp) + xorq %rsi,%rsi + movq %rsi,24(%rbx) + jmp L$round +.p2align 4 +L$round: + movq 4096(%rbp,%rsi,8),%r8 + movl 0(%rsp),%eax + movl 4(%rsp),%ebx + movzbl %al,%ecx + movzbl %ah,%edx + shrl $16,%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 0(%rbp,%rsi,8),%r8 + movq 7(%rbp,%rdi,8),%r9 + movl 0+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + movq 6(%rbp,%rsi,8),%r10 + movq 5(%rbp,%rdi,8),%r11 + shrl $16,%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + movq 4(%rbp,%rsi,8),%r12 + movq 3(%rbp,%rdi,8),%r13 + movl 0+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + movq 2(%rbp,%rsi,8),%r14 + movq 1(%rbp,%rdi,8),%r15 + shrl $16,%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 0(%rbp,%rsi,8),%r9 + xorq 7(%rbp,%rdi,8),%r10 + movl 8+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 6(%rbp,%rsi,8),%r11 + xorq 5(%rbp,%rdi,8),%r12 + shrl $16,%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 4(%rbp,%rsi,8),%r13 + xorq 3(%rbp,%rdi,8),%r14 + movl 8+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 2(%rbp,%rsi,8),%r15 + xorq 1(%rbp,%rdi,8),%r8 + shrl $16,%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 0(%rbp,%rsi,8),%r10 + xorq 7(%rbp,%rdi,8),%r11 + movl 16+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 6(%rbp,%rsi,8),%r12 + xorq 5(%rbp,%rdi,8),%r13 + shrl $16,%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 4(%rbp,%rsi,8),%r14 + xorq 3(%rbp,%rdi,8),%r15 + movl 16+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 2(%rbp,%rsi,8),%r8 + xorq 1(%rbp,%rdi,8),%r9 + shrl $16,%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 0(%rbp,%rsi,8),%r11 + xorq 7(%rbp,%rdi,8),%r12 + movl 24+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 6(%rbp,%rsi,8),%r13 + xorq 5(%rbp,%rdi,8),%r14 + shrl $16,%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 4(%rbp,%rsi,8),%r15 + xorq 3(%rbp,%rdi,8),%r8 + movl 24+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 2(%rbp,%rsi,8),%r9 + xorq 1(%rbp,%rdi,8),%r10 + shrl $16,%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 0(%rbp,%rsi,8),%r12 + xorq 7(%rbp,%rdi,8),%r13 + movl 32+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 6(%rbp,%rsi,8),%r14 + xorq 5(%rbp,%rdi,8),%r15 + shrl $16,%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 4(%rbp,%rsi,8),%r8 + xorq 3(%rbp,%rdi,8),%r9 + movl 32+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 2(%rbp,%rsi,8),%r10 + xorq 1(%rbp,%rdi,8),%r11 + shrl $16,%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 0(%rbp,%rsi,8),%r13 + xorq 7(%rbp,%rdi,8),%r14 + movl 40+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 6(%rbp,%rsi,8),%r15 + xorq 5(%rbp,%rdi,8),%r8 + shrl $16,%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 4(%rbp,%rsi,8),%r9 + xorq 3(%rbp,%rdi,8),%r10 + movl 40+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 2(%rbp,%rsi,8),%r11 + xorq 1(%rbp,%rdi,8),%r12 + shrl $16,%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 0(%rbp,%rsi,8),%r14 + xorq 7(%rbp,%rdi,8),%r15 + movl 48+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 6(%rbp,%rsi,8),%r8 + xorq 5(%rbp,%rdi,8),%r9 + shrl $16,%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 4(%rbp,%rsi,8),%r10 + xorq 3(%rbp,%rdi,8),%r11 + movl 48+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 2(%rbp,%rsi,8),%r12 + xorq 1(%rbp,%rdi,8),%r13 + shrl $16,%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 0(%rbp,%rsi,8),%r15 + xorq 7(%rbp,%rdi,8),%r8 + movl 56+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 6(%rbp,%rsi,8),%r9 + xorq 5(%rbp,%rdi,8),%r10 + shrl $16,%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 4(%rbp,%rsi,8),%r11 + xorq 3(%rbp,%rdi,8),%r12 + movl 56+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 2(%rbp,%rsi,8),%r13 + xorq 1(%rbp,%rdi,8),%r14 + movq %r8,0(%rsp) + movq %r9,8(%rsp) + movq %r10,16(%rsp) + movq %r11,24(%rsp) + movq %r12,32(%rsp) + movq %r13,40(%rsp) + movq %r14,48(%rsp) + movq %r15,56(%rsp) + shrl $16,%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 0(%rbp,%rsi,8),%r8 + xorq 7(%rbp,%rdi,8),%r9 + movl 64+0+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 6(%rbp,%rsi,8),%r10 + xorq 5(%rbp,%rdi,8),%r11 + shrl $16,%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 4(%rbp,%rsi,8),%r12 + xorq 3(%rbp,%rdi,8),%r13 + movl 64+0+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 2(%rbp,%rsi,8),%r14 + xorq 1(%rbp,%rdi,8),%r15 + shrl $16,%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 0(%rbp,%rsi,8),%r9 + xorq 7(%rbp,%rdi,8),%r10 + movl 64+8+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 6(%rbp,%rsi,8),%r11 + xorq 5(%rbp,%rdi,8),%r12 + shrl $16,%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 4(%rbp,%rsi,8),%r13 + xorq 3(%rbp,%rdi,8),%r14 + movl 64+8+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 2(%rbp,%rsi,8),%r15 + xorq 1(%rbp,%rdi,8),%r8 + shrl $16,%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 0(%rbp,%rsi,8),%r10 + xorq 7(%rbp,%rdi,8),%r11 + movl 64+16+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 6(%rbp,%rsi,8),%r12 + xorq 5(%rbp,%rdi,8),%r13 + shrl $16,%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 4(%rbp,%rsi,8),%r14 + xorq 3(%rbp,%rdi,8),%r15 + movl 64+16+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 2(%rbp,%rsi,8),%r8 + xorq 1(%rbp,%rdi,8),%r9 + shrl $16,%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 0(%rbp,%rsi,8),%r11 + xorq 7(%rbp,%rdi,8),%r12 + movl 64+24+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 6(%rbp,%rsi,8),%r13 + xorq 5(%rbp,%rdi,8),%r14 + shrl $16,%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 4(%rbp,%rsi,8),%r15 + xorq 3(%rbp,%rdi,8),%r8 + movl 64+24+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 2(%rbp,%rsi,8),%r9 + xorq 1(%rbp,%rdi,8),%r10 + shrl $16,%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 0(%rbp,%rsi,8),%r12 + xorq 7(%rbp,%rdi,8),%r13 + movl 64+32+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 6(%rbp,%rsi,8),%r14 + xorq 5(%rbp,%rdi,8),%r15 + shrl $16,%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 4(%rbp,%rsi,8),%r8 + xorq 3(%rbp,%rdi,8),%r9 + movl 64+32+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 2(%rbp,%rsi,8),%r10 + xorq 1(%rbp,%rdi,8),%r11 + shrl $16,%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 0(%rbp,%rsi,8),%r13 + xorq 7(%rbp,%rdi,8),%r14 + movl 64+40+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 6(%rbp,%rsi,8),%r15 + xorq 5(%rbp,%rdi,8),%r8 + shrl $16,%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 4(%rbp,%rsi,8),%r9 + xorq 3(%rbp,%rdi,8),%r10 + movl 64+40+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 2(%rbp,%rsi,8),%r11 + xorq 1(%rbp,%rdi,8),%r12 + shrl $16,%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 0(%rbp,%rsi,8),%r14 + xorq 7(%rbp,%rdi,8),%r15 + movl 64+48+8(%rsp),%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 6(%rbp,%rsi,8),%r8 + xorq 5(%rbp,%rdi,8),%r9 + shrl $16,%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 4(%rbp,%rsi,8),%r10 + xorq 3(%rbp,%rdi,8),%r11 + movl 64+48+8+4(%rsp),%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 2(%rbp,%rsi,8),%r12 + xorq 1(%rbp,%rdi,8),%r13 + shrl $16,%eax + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 0(%rbp,%rsi,8),%r15 + xorq 7(%rbp,%rdi,8),%r8 + + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 6(%rbp,%rsi,8),%r9 + xorq 5(%rbp,%rdi,8),%r10 + shrl $16,%ebx + leaq (%rcx,%rcx,1),%rsi + movzbl %bl,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %bh,%edx + xorq 4(%rbp,%rsi,8),%r11 + xorq 3(%rbp,%rdi,8),%r12 + + leaq (%rcx,%rcx,1),%rsi + movzbl %al,%ecx + leaq (%rdx,%rdx,1),%rdi + movzbl %ah,%edx + xorq 2(%rbp,%rsi,8),%r13 + xorq 1(%rbp,%rdi,8),%r14 + leaq 128(%rsp),%rbx + movq 24(%rbx),%rsi + addq $1,%rsi + cmpq $10,%rsi + je L$roundsdone + + movq %rsi,24(%rbx) + movq %r8,64+0(%rsp) + movq %r9,64+8(%rsp) + movq %r10,64+16(%rsp) + movq %r11,64+24(%rsp) + movq %r12,64+32(%rsp) + movq %r13,64+40(%rsp) + movq %r14,64+48(%rsp) + movq %r15,64+56(%rsp) + jmp L$round +.p2align 4 +L$roundsdone: + movq 0(%rbx),%rdi + movq 8(%rbx),%rsi + movq 16(%rbx),%rax + xorq 0(%rsi),%r8 + xorq 8(%rsi),%r9 + xorq 16(%rsi),%r10 + xorq 24(%rsi),%r11 + xorq 32(%rsi),%r12 + xorq 40(%rsi),%r13 + xorq 48(%rsi),%r14 + xorq 56(%rsi),%r15 + xorq 0(%rdi),%r8 + xorq 8(%rdi),%r9 + xorq 16(%rdi),%r10 + xorq 24(%rdi),%r11 + xorq 32(%rdi),%r12 + xorq 40(%rdi),%r13 + xorq 48(%rdi),%r14 + xorq 56(%rdi),%r15 + movq %r8,0(%rdi) + movq %r9,8(%rdi) + movq %r10,16(%rdi) + movq %r11,24(%rdi) + movq %r12,32(%rdi) + movq %r13,40(%rdi) + movq %r14,48(%rdi) + movq %r15,56(%rdi) + leaq 64(%rsi),%rsi + subq $1,%rax + jz L$alldone + movq %rsi,8(%rbx) + movq %rax,16(%rbx) + jmp L$outerloop +L$alldone: + movq 32(%rbx),%rsi + + movq -48(%rsi),%r15 + + movq -40(%rsi),%r14 + + movq -32(%rsi),%r13 + + movq -24(%rsi),%r12 + + movq -16(%rsi),%rbp + + movq -8(%rsi),%rbx + + leaq (%rsi),%rsp + +L$epilogue: + .byte 0xf3,0xc3 + + + +.p2align 6 + +L$table: +.byte 24,24,96,24,192,120,48,216,24,24,96,24,192,120,48,216 +.byte 35,35,140,35,5,175,70,38,35,35,140,35,5,175,70,38 +.byte 198,198,63,198,126,249,145,184,198,198,63,198,126,249,145,184 +.byte 232,232,135,232,19,111,205,251,232,232,135,232,19,111,205,251 +.byte 135,135,38,135,76,161,19,203,135,135,38,135,76,161,19,203 +.byte 184,184,218,184,169,98,109,17,184,184,218,184,169,98,109,17 +.byte 1,1,4,1,8,5,2,9,1,1,4,1,8,5,2,9 +.byte 79,79,33,79,66,110,158,13,79,79,33,79,66,110,158,13 +.byte 54,54,216,54,173,238,108,155,54,54,216,54,173,238,108,155 +.byte 166,166,162,166,89,4,81,255,166,166,162,166,89,4,81,255 +.byte 210,210,111,210,222,189,185,12,210,210,111,210,222,189,185,12 +.byte 245,245,243,245,251,6,247,14,245,245,243,245,251,6,247,14 +.byte 121,121,249,121,239,128,242,150,121,121,249,121,239,128,242,150 +.byte 111,111,161,111,95,206,222,48,111,111,161,111,95,206,222,48 +.byte 145,145,126,145,252,239,63,109,145,145,126,145,252,239,63,109 +.byte 82,82,85,82,170,7,164,248,82,82,85,82,170,7,164,248 +.byte 96,96,157,96,39,253,192,71,96,96,157,96,39,253,192,71 +.byte 188,188,202,188,137,118,101,53,188,188,202,188,137,118,101,53 +.byte 155,155,86,155,172,205,43,55,155,155,86,155,172,205,43,55 +.byte 142,142,2,142,4,140,1,138,142,142,2,142,4,140,1,138 +.byte 163,163,182,163,113,21,91,210,163,163,182,163,113,21,91,210 +.byte 12,12,48,12,96,60,24,108,12,12,48,12,96,60,24,108 +.byte 123,123,241,123,255,138,246,132,123,123,241,123,255,138,246,132 +.byte 53,53,212,53,181,225,106,128,53,53,212,53,181,225,106,128 +.byte 29,29,116,29,232,105,58,245,29,29,116,29,232,105,58,245 +.byte 224,224,167,224,83,71,221,179,224,224,167,224,83,71,221,179 +.byte 215,215,123,215,246,172,179,33,215,215,123,215,246,172,179,33 +.byte 194,194,47,194,94,237,153,156,194,194,47,194,94,237,153,156 +.byte 46,46,184,46,109,150,92,67,46,46,184,46,109,150,92,67 +.byte 75,75,49,75,98,122,150,41,75,75,49,75,98,122,150,41 +.byte 254,254,223,254,163,33,225,93,254,254,223,254,163,33,225,93 +.byte 87,87,65,87,130,22,174,213,87,87,65,87,130,22,174,213 +.byte 21,21,84,21,168,65,42,189,21,21,84,21,168,65,42,189 +.byte 119,119,193,119,159,182,238,232,119,119,193,119,159,182,238,232 +.byte 55,55,220,55,165,235,110,146,55,55,220,55,165,235,110,146 +.byte 229,229,179,229,123,86,215,158,229,229,179,229,123,86,215,158 +.byte 159,159,70,159,140,217,35,19,159,159,70,159,140,217,35,19 +.byte 240,240,231,240,211,23,253,35,240,240,231,240,211,23,253,35 +.byte 74,74,53,74,106,127,148,32,74,74,53,74,106,127,148,32 +.byte 218,218,79,218,158,149,169,68,218,218,79,218,158,149,169,68 +.byte 88,88,125,88,250,37,176,162,88,88,125,88,250,37,176,162 +.byte 201,201,3,201,6,202,143,207,201,201,3,201,6,202,143,207 +.byte 41,41,164,41,85,141,82,124,41,41,164,41,85,141,82,124 +.byte 10,10,40,10,80,34,20,90,10,10,40,10,80,34,20,90 +.byte 177,177,254,177,225,79,127,80,177,177,254,177,225,79,127,80 +.byte 160,160,186,160,105,26,93,201,160,160,186,160,105,26,93,201 +.byte 107,107,177,107,127,218,214,20,107,107,177,107,127,218,214,20 +.byte 133,133,46,133,92,171,23,217,133,133,46,133,92,171,23,217 +.byte 189,189,206,189,129,115,103,60,189,189,206,189,129,115,103,60 +.byte 93,93,105,93,210,52,186,143,93,93,105,93,210,52,186,143 +.byte 16,16,64,16,128,80,32,144,16,16,64,16,128,80,32,144 +.byte 244,244,247,244,243,3,245,7,244,244,247,244,243,3,245,7 +.byte 203,203,11,203,22,192,139,221,203,203,11,203,22,192,139,221 +.byte 62,62,248,62,237,198,124,211,62,62,248,62,237,198,124,211 +.byte 5,5,20,5,40,17,10,45,5,5,20,5,40,17,10,45 +.byte 103,103,129,103,31,230,206,120,103,103,129,103,31,230,206,120 +.byte 228,228,183,228,115,83,213,151,228,228,183,228,115,83,213,151 +.byte 39,39,156,39,37,187,78,2,39,39,156,39,37,187,78,2 +.byte 65,65,25,65,50,88,130,115,65,65,25,65,50,88,130,115 +.byte 139,139,22,139,44,157,11,167,139,139,22,139,44,157,11,167 +.byte 167,167,166,167,81,1,83,246,167,167,166,167,81,1,83,246 +.byte 125,125,233,125,207,148,250,178,125,125,233,125,207,148,250,178 +.byte 149,149,110,149,220,251,55,73,149,149,110,149,220,251,55,73 +.byte 216,216,71,216,142,159,173,86,216,216,71,216,142,159,173,86 +.byte 251,251,203,251,139,48,235,112,251,251,203,251,139,48,235,112 +.byte 238,238,159,238,35,113,193,205,238,238,159,238,35,113,193,205 +.byte 124,124,237,124,199,145,248,187,124,124,237,124,199,145,248,187 +.byte 102,102,133,102,23,227,204,113,102,102,133,102,23,227,204,113 +.byte 221,221,83,221,166,142,167,123,221,221,83,221,166,142,167,123 +.byte 23,23,92,23,184,75,46,175,23,23,92,23,184,75,46,175 +.byte 71,71,1,71,2,70,142,69,71,71,1,71,2,70,142,69 +.byte 158,158,66,158,132,220,33,26,158,158,66,158,132,220,33,26 +.byte 202,202,15,202,30,197,137,212,202,202,15,202,30,197,137,212 +.byte 45,45,180,45,117,153,90,88,45,45,180,45,117,153,90,88 +.byte 191,191,198,191,145,121,99,46,191,191,198,191,145,121,99,46 +.byte 7,7,28,7,56,27,14,63,7,7,28,7,56,27,14,63 +.byte 173,173,142,173,1,35,71,172,173,173,142,173,1,35,71,172 +.byte 90,90,117,90,234,47,180,176,90,90,117,90,234,47,180,176 +.byte 131,131,54,131,108,181,27,239,131,131,54,131,108,181,27,239 +.byte 51,51,204,51,133,255,102,182,51,51,204,51,133,255,102,182 +.byte 99,99,145,99,63,242,198,92,99,99,145,99,63,242,198,92 +.byte 2,2,8,2,16,10,4,18,2,2,8,2,16,10,4,18 +.byte 170,170,146,170,57,56,73,147,170,170,146,170,57,56,73,147 +.byte 113,113,217,113,175,168,226,222,113,113,217,113,175,168,226,222 +.byte 200,200,7,200,14,207,141,198,200,200,7,200,14,207,141,198 +.byte 25,25,100,25,200,125,50,209,25,25,100,25,200,125,50,209 +.byte 73,73,57,73,114,112,146,59,73,73,57,73,114,112,146,59 +.byte 217,217,67,217,134,154,175,95,217,217,67,217,134,154,175,95 +.byte 242,242,239,242,195,29,249,49,242,242,239,242,195,29,249,49 +.byte 227,227,171,227,75,72,219,168,227,227,171,227,75,72,219,168 +.byte 91,91,113,91,226,42,182,185,91,91,113,91,226,42,182,185 +.byte 136,136,26,136,52,146,13,188,136,136,26,136,52,146,13,188 +.byte 154,154,82,154,164,200,41,62,154,154,82,154,164,200,41,62 +.byte 38,38,152,38,45,190,76,11,38,38,152,38,45,190,76,11 +.byte 50,50,200,50,141,250,100,191,50,50,200,50,141,250,100,191 +.byte 176,176,250,176,233,74,125,89,176,176,250,176,233,74,125,89 +.byte 233,233,131,233,27,106,207,242,233,233,131,233,27,106,207,242 +.byte 15,15,60,15,120,51,30,119,15,15,60,15,120,51,30,119 +.byte 213,213,115,213,230,166,183,51,213,213,115,213,230,166,183,51 +.byte 128,128,58,128,116,186,29,244,128,128,58,128,116,186,29,244 +.byte 190,190,194,190,153,124,97,39,190,190,194,190,153,124,97,39 +.byte 205,205,19,205,38,222,135,235,205,205,19,205,38,222,135,235 +.byte 52,52,208,52,189,228,104,137,52,52,208,52,189,228,104,137 +.byte 72,72,61,72,122,117,144,50,72,72,61,72,122,117,144,50 +.byte 255,255,219,255,171,36,227,84,255,255,219,255,171,36,227,84 +.byte 122,122,245,122,247,143,244,141,122,122,245,122,247,143,244,141 +.byte 144,144,122,144,244,234,61,100,144,144,122,144,244,234,61,100 +.byte 95,95,97,95,194,62,190,157,95,95,97,95,194,62,190,157 +.byte 32,32,128,32,29,160,64,61,32,32,128,32,29,160,64,61 +.byte 104,104,189,104,103,213,208,15,104,104,189,104,103,213,208,15 +.byte 26,26,104,26,208,114,52,202,26,26,104,26,208,114,52,202 +.byte 174,174,130,174,25,44,65,183,174,174,130,174,25,44,65,183 +.byte 180,180,234,180,201,94,117,125,180,180,234,180,201,94,117,125 +.byte 84,84,77,84,154,25,168,206,84,84,77,84,154,25,168,206 +.byte 147,147,118,147,236,229,59,127,147,147,118,147,236,229,59,127 +.byte 34,34,136,34,13,170,68,47,34,34,136,34,13,170,68,47 +.byte 100,100,141,100,7,233,200,99,100,100,141,100,7,233,200,99 +.byte 241,241,227,241,219,18,255,42,241,241,227,241,219,18,255,42 +.byte 115,115,209,115,191,162,230,204,115,115,209,115,191,162,230,204 +.byte 18,18,72,18,144,90,36,130,18,18,72,18,144,90,36,130 +.byte 64,64,29,64,58,93,128,122,64,64,29,64,58,93,128,122 +.byte 8,8,32,8,64,40,16,72,8,8,32,8,64,40,16,72 +.byte 195,195,43,195,86,232,155,149,195,195,43,195,86,232,155,149 +.byte 236,236,151,236,51,123,197,223,236,236,151,236,51,123,197,223 +.byte 219,219,75,219,150,144,171,77,219,219,75,219,150,144,171,77 +.byte 161,161,190,161,97,31,95,192,161,161,190,161,97,31,95,192 +.byte 141,141,14,141,28,131,7,145,141,141,14,141,28,131,7,145 +.byte 61,61,244,61,245,201,122,200,61,61,244,61,245,201,122,200 +.byte 151,151,102,151,204,241,51,91,151,151,102,151,204,241,51,91 +.byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +.byte 207,207,27,207,54,212,131,249,207,207,27,207,54,212,131,249 +.byte 43,43,172,43,69,135,86,110,43,43,172,43,69,135,86,110 +.byte 118,118,197,118,151,179,236,225,118,118,197,118,151,179,236,225 +.byte 130,130,50,130,100,176,25,230,130,130,50,130,100,176,25,230 +.byte 214,214,127,214,254,169,177,40,214,214,127,214,254,169,177,40 +.byte 27,27,108,27,216,119,54,195,27,27,108,27,216,119,54,195 +.byte 181,181,238,181,193,91,119,116,181,181,238,181,193,91,119,116 +.byte 175,175,134,175,17,41,67,190,175,175,134,175,17,41,67,190 +.byte 106,106,181,106,119,223,212,29,106,106,181,106,119,223,212,29 +.byte 80,80,93,80,186,13,160,234,80,80,93,80,186,13,160,234 +.byte 69,69,9,69,18,76,138,87,69,69,9,69,18,76,138,87 +.byte 243,243,235,243,203,24,251,56,243,243,235,243,203,24,251,56 +.byte 48,48,192,48,157,240,96,173,48,48,192,48,157,240,96,173 +.byte 239,239,155,239,43,116,195,196,239,239,155,239,43,116,195,196 +.byte 63,63,252,63,229,195,126,218,63,63,252,63,229,195,126,218 +.byte 85,85,73,85,146,28,170,199,85,85,73,85,146,28,170,199 +.byte 162,162,178,162,121,16,89,219,162,162,178,162,121,16,89,219 +.byte 234,234,143,234,3,101,201,233,234,234,143,234,3,101,201,233 +.byte 101,101,137,101,15,236,202,106,101,101,137,101,15,236,202,106 +.byte 186,186,210,186,185,104,105,3,186,186,210,186,185,104,105,3 +.byte 47,47,188,47,101,147,94,74,47,47,188,47,101,147,94,74 +.byte 192,192,39,192,78,231,157,142,192,192,39,192,78,231,157,142 +.byte 222,222,95,222,190,129,161,96,222,222,95,222,190,129,161,96 +.byte 28,28,112,28,224,108,56,252,28,28,112,28,224,108,56,252 +.byte 253,253,211,253,187,46,231,70,253,253,211,253,187,46,231,70 +.byte 77,77,41,77,82,100,154,31,77,77,41,77,82,100,154,31 +.byte 146,146,114,146,228,224,57,118,146,146,114,146,228,224,57,118 +.byte 117,117,201,117,143,188,234,250,117,117,201,117,143,188,234,250 +.byte 6,6,24,6,48,30,12,54,6,6,24,6,48,30,12,54 +.byte 138,138,18,138,36,152,9,174,138,138,18,138,36,152,9,174 +.byte 178,178,242,178,249,64,121,75,178,178,242,178,249,64,121,75 +.byte 230,230,191,230,99,89,209,133,230,230,191,230,99,89,209,133 +.byte 14,14,56,14,112,54,28,126,14,14,56,14,112,54,28,126 +.byte 31,31,124,31,248,99,62,231,31,31,124,31,248,99,62,231 +.byte 98,98,149,98,55,247,196,85,98,98,149,98,55,247,196,85 +.byte 212,212,119,212,238,163,181,58,212,212,119,212,238,163,181,58 +.byte 168,168,154,168,41,50,77,129,168,168,154,168,41,50,77,129 +.byte 150,150,98,150,196,244,49,82,150,150,98,150,196,244,49,82 +.byte 249,249,195,249,155,58,239,98,249,249,195,249,155,58,239,98 +.byte 197,197,51,197,102,246,151,163,197,197,51,197,102,246,151,163 +.byte 37,37,148,37,53,177,74,16,37,37,148,37,53,177,74,16 +.byte 89,89,121,89,242,32,178,171,89,89,121,89,242,32,178,171 +.byte 132,132,42,132,84,174,21,208,132,132,42,132,84,174,21,208 +.byte 114,114,213,114,183,167,228,197,114,114,213,114,183,167,228,197 +.byte 57,57,228,57,213,221,114,236,57,57,228,57,213,221,114,236 +.byte 76,76,45,76,90,97,152,22,76,76,45,76,90,97,152,22 +.byte 94,94,101,94,202,59,188,148,94,94,101,94,202,59,188,148 +.byte 120,120,253,120,231,133,240,159,120,120,253,120,231,133,240,159 +.byte 56,56,224,56,221,216,112,229,56,56,224,56,221,216,112,229 +.byte 140,140,10,140,20,134,5,152,140,140,10,140,20,134,5,152 +.byte 209,209,99,209,198,178,191,23,209,209,99,209,198,178,191,23 +.byte 165,165,174,165,65,11,87,228,165,165,174,165,65,11,87,228 +.byte 226,226,175,226,67,77,217,161,226,226,175,226,67,77,217,161 +.byte 97,97,153,97,47,248,194,78,97,97,153,97,47,248,194,78 +.byte 179,179,246,179,241,69,123,66,179,179,246,179,241,69,123,66 +.byte 33,33,132,33,21,165,66,52,33,33,132,33,21,165,66,52 +.byte 156,156,74,156,148,214,37,8,156,156,74,156,148,214,37,8 +.byte 30,30,120,30,240,102,60,238,30,30,120,30,240,102,60,238 +.byte 67,67,17,67,34,82,134,97,67,67,17,67,34,82,134,97 +.byte 199,199,59,199,118,252,147,177,199,199,59,199,118,252,147,177 +.byte 252,252,215,252,179,43,229,79,252,252,215,252,179,43,229,79 +.byte 4,4,16,4,32,20,8,36,4,4,16,4,32,20,8,36 +.byte 81,81,89,81,178,8,162,227,81,81,89,81,178,8,162,227 +.byte 153,153,94,153,188,199,47,37,153,153,94,153,188,199,47,37 +.byte 109,109,169,109,79,196,218,34,109,109,169,109,79,196,218,34 +.byte 13,13,52,13,104,57,26,101,13,13,52,13,104,57,26,101 +.byte 250,250,207,250,131,53,233,121,250,250,207,250,131,53,233,121 +.byte 223,223,91,223,182,132,163,105,223,223,91,223,182,132,163,105 +.byte 126,126,229,126,215,155,252,169,126,126,229,126,215,155,252,169 +.byte 36,36,144,36,61,180,72,25,36,36,144,36,61,180,72,25 +.byte 59,59,236,59,197,215,118,254,59,59,236,59,197,215,118,254 +.byte 171,171,150,171,49,61,75,154,171,171,150,171,49,61,75,154 +.byte 206,206,31,206,62,209,129,240,206,206,31,206,62,209,129,240 +.byte 17,17,68,17,136,85,34,153,17,17,68,17,136,85,34,153 +.byte 143,143,6,143,12,137,3,131,143,143,6,143,12,137,3,131 +.byte 78,78,37,78,74,107,156,4,78,78,37,78,74,107,156,4 +.byte 183,183,230,183,209,81,115,102,183,183,230,183,209,81,115,102 +.byte 235,235,139,235,11,96,203,224,235,235,139,235,11,96,203,224 +.byte 60,60,240,60,253,204,120,193,60,60,240,60,253,204,120,193 +.byte 129,129,62,129,124,191,31,253,129,129,62,129,124,191,31,253 +.byte 148,148,106,148,212,254,53,64,148,148,106,148,212,254,53,64 +.byte 247,247,251,247,235,12,243,28,247,247,251,247,235,12,243,28 +.byte 185,185,222,185,161,103,111,24,185,185,222,185,161,103,111,24 +.byte 19,19,76,19,152,95,38,139,19,19,76,19,152,95,38,139 +.byte 44,44,176,44,125,156,88,81,44,44,176,44,125,156,88,81 +.byte 211,211,107,211,214,184,187,5,211,211,107,211,214,184,187,5 +.byte 231,231,187,231,107,92,211,140,231,231,187,231,107,92,211,140 +.byte 110,110,165,110,87,203,220,57,110,110,165,110,87,203,220,57 +.byte 196,196,55,196,110,243,149,170,196,196,55,196,110,243,149,170 +.byte 3,3,12,3,24,15,6,27,3,3,12,3,24,15,6,27 +.byte 86,86,69,86,138,19,172,220,86,86,69,86,138,19,172,220 +.byte 68,68,13,68,26,73,136,94,68,68,13,68,26,73,136,94 +.byte 127,127,225,127,223,158,254,160,127,127,225,127,223,158,254,160 +.byte 169,169,158,169,33,55,79,136,169,169,158,169,33,55,79,136 +.byte 42,42,168,42,77,130,84,103,42,42,168,42,77,130,84,103 +.byte 187,187,214,187,177,109,107,10,187,187,214,187,177,109,107,10 +.byte 193,193,35,193,70,226,159,135,193,193,35,193,70,226,159,135 +.byte 83,83,81,83,162,2,166,241,83,83,81,83,162,2,166,241 +.byte 220,220,87,220,174,139,165,114,220,220,87,220,174,139,165,114 +.byte 11,11,44,11,88,39,22,83,11,11,44,11,88,39,22,83 +.byte 157,157,78,157,156,211,39,1,157,157,78,157,156,211,39,1 +.byte 108,108,173,108,71,193,216,43,108,108,173,108,71,193,216,43 +.byte 49,49,196,49,149,245,98,164,49,49,196,49,149,245,98,164 +.byte 116,116,205,116,135,185,232,243,116,116,205,116,135,185,232,243 +.byte 246,246,255,246,227,9,241,21,246,246,255,246,227,9,241,21 +.byte 70,70,5,70,10,67,140,76,70,70,5,70,10,67,140,76 +.byte 172,172,138,172,9,38,69,165,172,172,138,172,9,38,69,165 +.byte 137,137,30,137,60,151,15,181,137,137,30,137,60,151,15,181 +.byte 20,20,80,20,160,68,40,180,20,20,80,20,160,68,40,180 +.byte 225,225,163,225,91,66,223,186,225,225,163,225,91,66,223,186 +.byte 22,22,88,22,176,78,44,166,22,22,88,22,176,78,44,166 +.byte 58,58,232,58,205,210,116,247,58,58,232,58,205,210,116,247 +.byte 105,105,185,105,111,208,210,6,105,105,185,105,111,208,210,6 +.byte 9,9,36,9,72,45,18,65,9,9,36,9,72,45,18,65 +.byte 112,112,221,112,167,173,224,215,112,112,221,112,167,173,224,215 +.byte 182,182,226,182,217,84,113,111,182,182,226,182,217,84,113,111 +.byte 208,208,103,208,206,183,189,30,208,208,103,208,206,183,189,30 +.byte 237,237,147,237,59,126,199,214,237,237,147,237,59,126,199,214 +.byte 204,204,23,204,46,219,133,226,204,204,23,204,46,219,133,226 +.byte 66,66,21,66,42,87,132,104,66,66,21,66,42,87,132,104 +.byte 152,152,90,152,180,194,45,44,152,152,90,152,180,194,45,44 +.byte 164,164,170,164,73,14,85,237,164,164,170,164,73,14,85,237 +.byte 40,40,160,40,93,136,80,117,40,40,160,40,93,136,80,117 +.byte 92,92,109,92,218,49,184,134,92,92,109,92,218,49,184,134 +.byte 248,248,199,248,147,63,237,107,248,248,199,248,147,63,237,107 +.byte 134,134,34,134,68,164,17,194,134,134,34,134,68,164,17,194 +.byte 24,35,198,232,135,184,1,79 +.byte 54,166,210,245,121,111,145,82 +.byte 96,188,155,142,163,12,123,53 +.byte 29,224,215,194,46,75,254,87 +.byte 21,119,55,229,159,240,74,218 +.byte 88,201,41,10,177,160,107,133 +.byte 189,93,16,244,203,62,5,103 +.byte 228,39,65,139,167,125,149,216 +.byte 251,238,124,102,221,23,71,158 +.byte 202,45,191,7,173,90,131,51 diff --git a/vere/ext/openssl/gen/macos-x86_64/crypto/x86_64cpuid.s b/vere/ext/openssl/gen/macos-x86_64/crypto/x86_64cpuid.s new file mode 100644 index 0000000..41e09df --- /dev/null +++ b/vere/ext/openssl/gen/macos-x86_64/crypto/x86_64cpuid.s @@ -0,0 +1,482 @@ + +.private_extern _OPENSSL_cpuid_setup +.mod_init_func + .p2align 3 + .quad _OPENSSL_cpuid_setup + +.private_extern _OPENSSL_ia32cap_P +.comm _OPENSSL_ia32cap_P,16,2 + +.text + +.globl _OPENSSL_atomic_add + +.p2align 4 +_OPENSSL_atomic_add: + + movl (%rdi),%eax +L$spin: leaq (%rsi,%rax,1),%r8 +.byte 0xf0 + cmpxchgl %r8d,(%rdi) + jne L$spin + movl %r8d,%eax +.byte 0x48,0x98 + .byte 0xf3,0xc3 + + + +.globl _OPENSSL_rdtsc + +.p2align 4 +_OPENSSL_rdtsc: + + rdtsc + shlq $32,%rdx + orq %rdx,%rax + .byte 0xf3,0xc3 + + + +.globl _OPENSSL_ia32_cpuid + +.p2align 4 +_OPENSSL_ia32_cpuid: + + movq %rbx,%r8 + + + xorl %eax,%eax + movq %rax,8(%rdi) + cpuid + movl %eax,%r11d + + xorl %eax,%eax + cmpl $0x756e6547,%ebx + setne %al + movl %eax,%r9d + cmpl $0x49656e69,%edx + setne %al + orl %eax,%r9d + cmpl $0x6c65746e,%ecx + setne %al + orl %eax,%r9d + jz L$intel + + cmpl $0x68747541,%ebx + setne %al + movl %eax,%r10d + cmpl $0x69746E65,%edx + setne %al + orl %eax,%r10d + cmpl $0x444D4163,%ecx + setne %al + orl %eax,%r10d + jnz L$intel + + + movl $0x80000000,%eax + cpuid + cmpl $0x80000001,%eax + jb L$intel + movl %eax,%r10d + movl $0x80000001,%eax + cpuid + orl %ecx,%r9d + andl $0x00000801,%r9d + + cmpl $0x80000008,%r10d + jb L$intel + + movl $0x80000008,%eax + cpuid + movzbq %cl,%r10 + incq %r10 + + movl $1,%eax + cpuid + btl $28,%edx + jnc L$generic + shrl $16,%ebx + cmpb %r10b,%bl + ja L$generic + andl $0xefffffff,%edx + jmp L$generic + +L$intel: + cmpl $4,%r11d + movl $-1,%r10d + jb L$nocacheinfo + + movl $4,%eax + movl $0,%ecx + cpuid + movl %eax,%r10d + shrl $14,%r10d + andl $0xfff,%r10d + +L$nocacheinfo: + movl $1,%eax + cpuid + movd %eax,%xmm0 + andl $0xbfefffff,%edx + cmpl $0,%r9d + jne L$notintel + orl $0x40000000,%edx + andb $15,%ah + cmpb $15,%ah + jne L$notP4 + orl $0x00100000,%edx +L$notP4: + cmpb $6,%ah + jne L$notintel + andl $0x0fff0ff0,%eax + cmpl $0x00050670,%eax + je L$knights + cmpl $0x00080650,%eax + jne L$notintel +L$knights: + andl $0xfbffffff,%ecx + +L$notintel: + btl $28,%edx + jnc L$generic + andl $0xefffffff,%edx + cmpl $0,%r10d + je L$generic + + orl $0x10000000,%edx + shrl $16,%ebx + cmpb $1,%bl + ja L$generic + andl $0xefffffff,%edx +L$generic: + andl $0x00000800,%r9d + andl $0xfffff7ff,%ecx + orl %ecx,%r9d + + movl %edx,%r10d + + cmpl $7,%r11d + jb L$no_extended_info + movl $7,%eax + xorl %ecx,%ecx + cpuid + btl $26,%r9d + jc L$notknights + andl $0xfff7ffff,%ebx +L$notknights: + movd %xmm0,%eax + andl $0x0fff0ff0,%eax + cmpl $0x00050650,%eax + jne L$notskylakex + andl $0xfffeffff,%ebx + +L$notskylakex: + movl %ebx,8(%rdi) + movl %ecx,12(%rdi) +L$no_extended_info: + + btl $27,%r9d + jnc L$clear_avx + xorl %ecx,%ecx +.byte 0x0f,0x01,0xd0 + andl $0xe6,%eax + cmpl $0xe6,%eax + je L$done + andl $0x3fdeffff,8(%rdi) + + + + + andl $6,%eax + cmpl $6,%eax + je L$done +L$clear_avx: + movl $0xefffe7ff,%eax + andl %eax,%r9d + movl $0x3fdeffdf,%eax + andl %eax,8(%rdi) +L$done: + shlq $32,%r9 + movl %r10d,%eax + movq %r8,%rbx + + orq %r9,%rax + .byte 0xf3,0xc3 + + + +.globl _OPENSSL_cleanse + +.p2align 4 +_OPENSSL_cleanse: + + xorq %rax,%rax + cmpq $15,%rsi + jae L$ot + cmpq $0,%rsi + je L$ret +L$ittle: + movb %al,(%rdi) + subq $1,%rsi + leaq 1(%rdi),%rdi + jnz L$ittle +L$ret: + .byte 0xf3,0xc3 +.p2align 4 +L$ot: + testq $7,%rdi + jz L$aligned + movb %al,(%rdi) + leaq -1(%rsi),%rsi + leaq 1(%rdi),%rdi + jmp L$ot +L$aligned: + movq %rax,(%rdi) + leaq -8(%rsi),%rsi + testq $-8,%rsi + leaq 8(%rdi),%rdi + jnz L$aligned + cmpq $0,%rsi + jne L$ittle + .byte 0xf3,0xc3 + + + +.globl _CRYPTO_memcmp + +.p2align 4 +_CRYPTO_memcmp: + + xorq %rax,%rax + xorq %r10,%r10 + cmpq $0,%rdx + je L$no_data + cmpq $16,%rdx + jne L$oop_cmp + movq (%rdi),%r10 + movq 8(%rdi),%r11 + movq $1,%rdx + xorq (%rsi),%r10 + xorq 8(%rsi),%r11 + orq %r11,%r10 + cmovnzq %rdx,%rax + .byte 0xf3,0xc3 + +.p2align 4 +L$oop_cmp: + movb (%rdi),%r10b + leaq 1(%rdi),%rdi + xorb (%rsi),%r10b + leaq 1(%rsi),%rsi + orb %r10b,%al + decq %rdx + jnz L$oop_cmp + negq %rax + shrq $63,%rax +L$no_data: + .byte 0xf3,0xc3 + + +.globl _OPENSSL_wipe_cpu + +.p2align 4 +_OPENSSL_wipe_cpu: + + pxor %xmm0,%xmm0 + pxor %xmm1,%xmm1 + pxor %xmm2,%xmm2 + pxor %xmm3,%xmm3 + pxor %xmm4,%xmm4 + pxor %xmm5,%xmm5 + pxor %xmm6,%xmm6 + pxor %xmm7,%xmm7 + pxor %xmm8,%xmm8 + pxor %xmm9,%xmm9 + pxor %xmm10,%xmm10 + pxor %xmm11,%xmm11 + pxor %xmm12,%xmm12 + pxor %xmm13,%xmm13 + pxor %xmm14,%xmm14 + pxor %xmm15,%xmm15 + xorq %rcx,%rcx + xorq %rdx,%rdx + xorq %rsi,%rsi + xorq %rdi,%rdi + xorq %r8,%r8 + xorq %r9,%r9 + xorq %r10,%r10 + xorq %r11,%r11 + leaq 8(%rsp),%rax + .byte 0xf3,0xc3 + + +.globl _OPENSSL_instrument_bus + +.p2align 4 +_OPENSSL_instrument_bus: + + movq %rdi,%r10 + movq %rsi,%rcx + movq %rsi,%r11 + + rdtsc + movl %eax,%r8d + movl $0,%r9d + clflush (%r10) +.byte 0xf0 + addl %r9d,(%r10) + jmp L$oop +.p2align 4 +L$oop: rdtsc + movl %eax,%edx + subl %r8d,%eax + movl %edx,%r8d + movl %eax,%r9d + clflush (%r10) +.byte 0xf0 + addl %eax,(%r10) + leaq 4(%r10),%r10 + subq $1,%rcx + jnz L$oop + + movq %r11,%rax + .byte 0xf3,0xc3 + + + +.globl _OPENSSL_instrument_bus2 + +.p2align 4 +_OPENSSL_instrument_bus2: + + movq %rdi,%r10 + movq %rsi,%rcx + movq %rdx,%r11 + movq %rcx,8(%rsp) + + rdtsc + movl %eax,%r8d + movl $0,%r9d + + clflush (%r10) +.byte 0xf0 + addl %r9d,(%r10) + + rdtsc + movl %eax,%edx + subl %r8d,%eax + movl %edx,%r8d + movl %eax,%r9d +L$oop2: + clflush (%r10) +.byte 0xf0 + addl %eax,(%r10) + + subq $1,%r11 + jz L$done2 + + rdtsc + movl %eax,%edx + subl %r8d,%eax + movl %edx,%r8d + cmpl %r9d,%eax + movl %eax,%r9d + movl $0,%edx + setne %dl + subq %rdx,%rcx + leaq (%r10,%rdx,4),%r10 + jnz L$oop2 + +L$done2: + movq 8(%rsp),%rax + subq %rcx,%rax + .byte 0xf3,0xc3 + + +.globl _OPENSSL_ia32_rdrand_bytes + +.p2align 4 +_OPENSSL_ia32_rdrand_bytes: + + xorq %rax,%rax + cmpq $0,%rsi + je L$done_rdrand_bytes + + movq $8,%r11 +L$oop_rdrand_bytes: +.byte 73,15,199,242 + jc L$break_rdrand_bytes + decq %r11 + jnz L$oop_rdrand_bytes + jmp L$done_rdrand_bytes + +.p2align 4 +L$break_rdrand_bytes: + cmpq $8,%rsi + jb L$tail_rdrand_bytes + movq %r10,(%rdi) + leaq 8(%rdi),%rdi + addq $8,%rax + subq $8,%rsi + jz L$done_rdrand_bytes + movq $8,%r11 + jmp L$oop_rdrand_bytes + +.p2align 4 +L$tail_rdrand_bytes: + movb %r10b,(%rdi) + leaq 1(%rdi),%rdi + incq %rax + shrq $8,%r10 + decq %rsi + jnz L$tail_rdrand_bytes + +L$done_rdrand_bytes: + xorq %r10,%r10 + .byte 0xf3,0xc3 + + +.globl _OPENSSL_ia32_rdseed_bytes + +.p2align 4 +_OPENSSL_ia32_rdseed_bytes: + + xorq %rax,%rax + cmpq $0,%rsi + je L$done_rdseed_bytes + + movq $8,%r11 +L$oop_rdseed_bytes: +.byte 73,15,199,250 + jc L$break_rdseed_bytes + decq %r11 + jnz L$oop_rdseed_bytes + jmp L$done_rdseed_bytes + +.p2align 4 +L$break_rdseed_bytes: + cmpq $8,%rsi + jb L$tail_rdseed_bytes + movq %r10,(%rdi) + leaq 8(%rdi),%rdi + addq $8,%rax + subq $8,%rsi + jz L$done_rdseed_bytes + movq $8,%r11 + jmp L$oop_rdseed_bytes + +.p2align 4 +L$tail_rdseed_bytes: + movb %r10b,(%rdi) + leaq 1(%rdi),%rdi + incq %rax + shrq $8,%r10 + decq %rsi + jnz L$tail_rdseed_bytes + +L$done_rdseed_bytes: + xorq %r10,%r10 + .byte 0xf3,0xc3 + + diff --git a/vere/ext/openssl/gen/macos-x86_64/engines/e_padlock-x86_64.s b/vere/ext/openssl/gen/macos-x86_64/engines/e_padlock-x86_64.s new file mode 100644 index 0000000..05c7a18 --- /dev/null +++ b/vere/ext/openssl/gen/macos-x86_64/engines/e_padlock-x86_64.s @@ -0,0 +1,1037 @@ +.text +.globl _padlock_capability + +.p2align 4 +_padlock_capability: + movq %rbx,%r8 + xorl %eax,%eax + cpuid + xorl %eax,%eax + cmpl $0x746e6543,%ebx + jne L$zhaoxin + cmpl $0x48727561,%edx + jne L$noluck + cmpl $0x736c7561,%ecx + jne L$noluck + jmp L$zhaoxinEnd +L$zhaoxin: + cmpl $0x68532020,%ebx + jne L$noluck + cmpl $0x68676e61,%edx + jne L$noluck + cmpl $0x20206961,%ecx + jne L$noluck +L$zhaoxinEnd: + movl $0xC0000000,%eax + cpuid + movl %eax,%edx + xorl %eax,%eax + cmpl $0xC0000001,%edx + jb L$noluck + movl $0xC0000001,%eax + cpuid + movl %edx,%eax + andl $0xffffffef,%eax + orl $0x10,%eax +L$noluck: + movq %r8,%rbx + .byte 0xf3,0xc3 + + +.globl _padlock_key_bswap + +.p2align 4 +_padlock_key_bswap: + movl 240(%rdi),%edx + incl %edx + shll $2,%edx +L$bswap_loop: + movl (%rdi),%eax + bswapl %eax + movl %eax,(%rdi) + leaq 4(%rdi),%rdi + subl $1,%edx + jnz L$bswap_loop + .byte 0xf3,0xc3 + + +.globl _padlock_verify_context + +.p2align 4 +_padlock_verify_context: + movq %rdi,%rdx + pushf + leaq L$padlock_saved_context(%rip),%rax + call _padlock_verify_ctx + leaq 8(%rsp),%rsp + .byte 0xf3,0xc3 + + + +.p2align 4 +_padlock_verify_ctx: + movq 8(%rsp),%r8 + btq $30,%r8 + jnc L$verified + cmpq (%rax),%rdx + je L$verified + pushf + popf +L$verified: + movq %rdx,(%rax) + .byte 0xf3,0xc3 + + +.globl _padlock_reload_key + +.p2align 4 +_padlock_reload_key: + pushf + popf + .byte 0xf3,0xc3 + + +.globl _padlock_aes_block + +.p2align 4 +_padlock_aes_block: + movq %rbx,%r8 + movq $1,%rcx + leaq 32(%rdx),%rbx + leaq 16(%rdx),%rdx +.byte 0xf3,0x0f,0xa7,0xc8 + movq %r8,%rbx + .byte 0xf3,0xc3 + + +.globl _padlock_xstore + +.p2align 4 +_padlock_xstore: + movl %esi,%edx +.byte 0x0f,0xa7,0xc0 + .byte 0xf3,0xc3 + + +.globl _padlock_sha1_oneshot + +.p2align 4 +_padlock_sha1_oneshot: + movq %rdx,%rcx + movq %rdi,%rdx + movups (%rdi),%xmm0 + subq $128+8,%rsp + movl 16(%rdi),%eax + movaps %xmm0,(%rsp) + movq %rsp,%rdi + movl %eax,16(%rsp) + xorq %rax,%rax +.byte 0xf3,0x0f,0xa6,0xc8 + movaps (%rsp),%xmm0 + movl 16(%rsp),%eax + addq $128+8,%rsp + movups %xmm0,(%rdx) + movl %eax,16(%rdx) + .byte 0xf3,0xc3 + + +.globl _padlock_sha1_blocks + +.p2align 4 +_padlock_sha1_blocks: + movq %rdx,%rcx + movq %rdi,%rdx + movups (%rdi),%xmm0 + subq $128+8,%rsp + movl 16(%rdi),%eax + movaps %xmm0,(%rsp) + movq %rsp,%rdi + movl %eax,16(%rsp) + movq $-1,%rax +.byte 0xf3,0x0f,0xa6,0xc8 + movaps (%rsp),%xmm0 + movl 16(%rsp),%eax + addq $128+8,%rsp + movups %xmm0,(%rdx) + movl %eax,16(%rdx) + .byte 0xf3,0xc3 + + +.globl _padlock_sha256_oneshot + +.p2align 4 +_padlock_sha256_oneshot: + movq %rdx,%rcx + movq %rdi,%rdx + movups (%rdi),%xmm0 + subq $128+8,%rsp + movups 16(%rdi),%xmm1 + movaps %xmm0,(%rsp) + movq %rsp,%rdi + movaps %xmm1,16(%rsp) + xorq %rax,%rax +.byte 0xf3,0x0f,0xa6,0xd0 + movaps (%rsp),%xmm0 + movaps 16(%rsp),%xmm1 + addq $128+8,%rsp + movups %xmm0,(%rdx) + movups %xmm1,16(%rdx) + .byte 0xf3,0xc3 + + +.globl _padlock_sha256_blocks + +.p2align 4 +_padlock_sha256_blocks: + movq %rdx,%rcx + movq %rdi,%rdx + movups (%rdi),%xmm0 + subq $128+8,%rsp + movups 16(%rdi),%xmm1 + movaps %xmm0,(%rsp) + movq %rsp,%rdi + movaps %xmm1,16(%rsp) + movq $-1,%rax +.byte 0xf3,0x0f,0xa6,0xd0 + movaps (%rsp),%xmm0 + movaps 16(%rsp),%xmm1 + addq $128+8,%rsp + movups %xmm0,(%rdx) + movups %xmm1,16(%rdx) + .byte 0xf3,0xc3 + + +.globl _padlock_sha512_blocks + +.p2align 4 +_padlock_sha512_blocks: + movq %rdx,%rcx + movq %rdi,%rdx + movups (%rdi),%xmm0 + subq $128+8,%rsp + movups 16(%rdi),%xmm1 + movups 32(%rdi),%xmm2 + movups 48(%rdi),%xmm3 + movaps %xmm0,(%rsp) + movq %rsp,%rdi + movaps %xmm1,16(%rsp) + movaps %xmm2,32(%rsp) + movaps %xmm3,48(%rsp) +.byte 0xf3,0x0f,0xa6,0xe0 + movaps (%rsp),%xmm0 + movaps 16(%rsp),%xmm1 + movaps 32(%rsp),%xmm2 + movaps 48(%rsp),%xmm3 + addq $128+8,%rsp + movups %xmm0,(%rdx) + movups %xmm1,16(%rdx) + movups %xmm2,32(%rdx) + movups %xmm3,48(%rdx) + .byte 0xf3,0xc3 + +.globl _padlock_ecb_encrypt + +.p2align 4 +_padlock_ecb_encrypt: + pushq %rbp + pushq %rbx + + xorl %eax,%eax + testq $15,%rdx + jnz L$ecb_abort + testq $15,%rcx + jnz L$ecb_abort + leaq L$padlock_saved_context(%rip),%rax + pushf + cld + call _padlock_verify_ctx + leaq 16(%rdx),%rdx + xorl %eax,%eax + xorl %ebx,%ebx + testl $32,(%rdx) + jnz L$ecb_aligned + testq $0x0f,%rdi + setz %al + testq $0x0f,%rsi + setz %bl + testl %ebx,%eax + jnz L$ecb_aligned + negq %rax + movq $512,%rbx + notq %rax + leaq (%rsp),%rbp + cmpq %rbx,%rcx + cmovcq %rcx,%rbx + andq %rbx,%rax + movq %rcx,%rbx + negq %rax + andq $512-1,%rbx + leaq (%rax,%rbp,1),%rsp + movq $512,%rax + cmovzq %rax,%rbx + cmpq %rbx,%rcx + ja L$ecb_loop + movq %rsi,%rax + cmpq %rsp,%rbp + cmoveq %rdi,%rax + addq %rcx,%rax + negq %rax + andq $0xfff,%rax + cmpq $128,%rax + movq $-128,%rax + cmovaeq %rbx,%rax + andq %rax,%rbx + jz L$ecb_unaligned_tail + jmp L$ecb_loop +.p2align 4 +L$ecb_loop: + cmpq %rcx,%rbx + cmovaq %rcx,%rbx + movq %rdi,%r8 + movq %rsi,%r9 + movq %rcx,%r10 + movq %rbx,%rcx + movq %rbx,%r11 + testq $0x0f,%rdi + cmovnzq %rsp,%rdi + testq $0x0f,%rsi + jz L$ecb_inp_aligned + shrq $3,%rcx +.byte 0xf3,0x48,0xa5 + subq %rbx,%rdi + movq %rbx,%rcx + movq %rdi,%rsi +L$ecb_inp_aligned: + leaq -16(%rdx),%rax + leaq 16(%rdx),%rbx + shrq $4,%rcx +.byte 0xf3,0x0f,0xa7,200 + movq %r8,%rdi + movq %r11,%rbx + testq $0x0f,%rdi + jz L$ecb_out_aligned + movq %rbx,%rcx + leaq (%rsp),%rsi + shrq $3,%rcx +.byte 0xf3,0x48,0xa5 + subq %rbx,%rdi +L$ecb_out_aligned: + movq %r9,%rsi + movq %r10,%rcx + addq %rbx,%rdi + addq %rbx,%rsi + subq %rbx,%rcx + movq $512,%rbx + jz L$ecb_break + cmpq %rbx,%rcx + jae L$ecb_loop +L$ecb_unaligned_tail: + xorl %eax,%eax + cmpq %rsp,%rbp + cmoveq %rcx,%rax + movq %rdi,%r8 + movq %rcx,%rbx + subq %rax,%rsp + shrq $3,%rcx + leaq (%rsp),%rdi +.byte 0xf3,0x48,0xa5 + movq %rsp,%rsi + movq %r8,%rdi + movq %rbx,%rcx + jmp L$ecb_loop +.p2align 4 +L$ecb_break: + cmpq %rbp,%rsp + je L$ecb_done + + pxor %xmm0,%xmm0 + leaq (%rsp),%rax +L$ecb_bzero: + movaps %xmm0,(%rax) + leaq 16(%rax),%rax + cmpq %rax,%rbp + ja L$ecb_bzero + +L$ecb_done: + leaq (%rbp),%rsp + jmp L$ecb_exit + +.p2align 4 +L$ecb_aligned: + leaq (%rsi,%rcx,1),%rbp + negq %rbp + andq $0xfff,%rbp + xorl %eax,%eax + cmpq $128,%rbp + movq $128-1,%rbp + cmovaeq %rax,%rbp + andq %rcx,%rbp + subq %rbp,%rcx + jz L$ecb_aligned_tail + leaq -16(%rdx),%rax + leaq 16(%rdx),%rbx + shrq $4,%rcx +.byte 0xf3,0x0f,0xa7,200 + testq %rbp,%rbp + jz L$ecb_exit + +L$ecb_aligned_tail: + movq %rdi,%r8 + movq %rbp,%rbx + movq %rbp,%rcx + leaq (%rsp),%rbp + subq %rcx,%rsp + shrq $3,%rcx + leaq (%rsp),%rdi +.byte 0xf3,0x48,0xa5 + leaq (%r8),%rdi + leaq (%rsp),%rsi + movq %rbx,%rcx + jmp L$ecb_loop +L$ecb_exit: + movl $1,%eax + leaq 8(%rsp),%rsp +L$ecb_abort: + popq %rbx + popq %rbp + .byte 0xf3,0xc3 + +.globl _padlock_cbc_encrypt + +.p2align 4 +_padlock_cbc_encrypt: + pushq %rbp + pushq %rbx + + xorl %eax,%eax + testq $15,%rdx + jnz L$cbc_abort + testq $15,%rcx + jnz L$cbc_abort + leaq L$padlock_saved_context(%rip),%rax + pushf + cld + call _padlock_verify_ctx + leaq 16(%rdx),%rdx + xorl %eax,%eax + xorl %ebx,%ebx + testl $32,(%rdx) + jnz L$cbc_aligned + testq $0x0f,%rdi + setz %al + testq $0x0f,%rsi + setz %bl + testl %ebx,%eax + jnz L$cbc_aligned + negq %rax + movq $512,%rbx + notq %rax + leaq (%rsp),%rbp + cmpq %rbx,%rcx + cmovcq %rcx,%rbx + andq %rbx,%rax + movq %rcx,%rbx + negq %rax + andq $512-1,%rbx + leaq (%rax,%rbp,1),%rsp + movq $512,%rax + cmovzq %rax,%rbx + cmpq %rbx,%rcx + ja L$cbc_loop + movq %rsi,%rax + cmpq %rsp,%rbp + cmoveq %rdi,%rax + addq %rcx,%rax + negq %rax + andq $0xfff,%rax + cmpq $64,%rax + movq $-64,%rax + cmovaeq %rbx,%rax + andq %rax,%rbx + jz L$cbc_unaligned_tail + jmp L$cbc_loop +.p2align 4 +L$cbc_loop: + cmpq %rcx,%rbx + cmovaq %rcx,%rbx + movq %rdi,%r8 + movq %rsi,%r9 + movq %rcx,%r10 + movq %rbx,%rcx + movq %rbx,%r11 + testq $0x0f,%rdi + cmovnzq %rsp,%rdi + testq $0x0f,%rsi + jz L$cbc_inp_aligned + shrq $3,%rcx +.byte 0xf3,0x48,0xa5 + subq %rbx,%rdi + movq %rbx,%rcx + movq %rdi,%rsi +L$cbc_inp_aligned: + leaq -16(%rdx),%rax + leaq 16(%rdx),%rbx + shrq $4,%rcx +.byte 0xf3,0x0f,0xa7,208 + movdqa (%rax),%xmm0 + movdqa %xmm0,-16(%rdx) + movq %r8,%rdi + movq %r11,%rbx + testq $0x0f,%rdi + jz L$cbc_out_aligned + movq %rbx,%rcx + leaq (%rsp),%rsi + shrq $3,%rcx +.byte 0xf3,0x48,0xa5 + subq %rbx,%rdi +L$cbc_out_aligned: + movq %r9,%rsi + movq %r10,%rcx + addq %rbx,%rdi + addq %rbx,%rsi + subq %rbx,%rcx + movq $512,%rbx + jz L$cbc_break + cmpq %rbx,%rcx + jae L$cbc_loop +L$cbc_unaligned_tail: + xorl %eax,%eax + cmpq %rsp,%rbp + cmoveq %rcx,%rax + movq %rdi,%r8 + movq %rcx,%rbx + subq %rax,%rsp + shrq $3,%rcx + leaq (%rsp),%rdi +.byte 0xf3,0x48,0xa5 + movq %rsp,%rsi + movq %r8,%rdi + movq %rbx,%rcx + jmp L$cbc_loop +.p2align 4 +L$cbc_break: + cmpq %rbp,%rsp + je L$cbc_done + + pxor %xmm0,%xmm0 + leaq (%rsp),%rax +L$cbc_bzero: + movaps %xmm0,(%rax) + leaq 16(%rax),%rax + cmpq %rax,%rbp + ja L$cbc_bzero + +L$cbc_done: + leaq (%rbp),%rsp + jmp L$cbc_exit + +.p2align 4 +L$cbc_aligned: + leaq (%rsi,%rcx,1),%rbp + negq %rbp + andq $0xfff,%rbp + xorl %eax,%eax + cmpq $64,%rbp + movq $64-1,%rbp + cmovaeq %rax,%rbp + andq %rcx,%rbp + subq %rbp,%rcx + jz L$cbc_aligned_tail + leaq -16(%rdx),%rax + leaq 16(%rdx),%rbx + shrq $4,%rcx +.byte 0xf3,0x0f,0xa7,208 + movdqa (%rax),%xmm0 + movdqa %xmm0,-16(%rdx) + testq %rbp,%rbp + jz L$cbc_exit + +L$cbc_aligned_tail: + movq %rdi,%r8 + movq %rbp,%rbx + movq %rbp,%rcx + leaq (%rsp),%rbp + subq %rcx,%rsp + shrq $3,%rcx + leaq (%rsp),%rdi +.byte 0xf3,0x48,0xa5 + leaq (%r8),%rdi + leaq (%rsp),%rsi + movq %rbx,%rcx + jmp L$cbc_loop +L$cbc_exit: + movl $1,%eax + leaq 8(%rsp),%rsp +L$cbc_abort: + popq %rbx + popq %rbp + .byte 0xf3,0xc3 + +.globl _padlock_cfb_encrypt + +.p2align 4 +_padlock_cfb_encrypt: + pushq %rbp + pushq %rbx + + xorl %eax,%eax + testq $15,%rdx + jnz L$cfb_abort + testq $15,%rcx + jnz L$cfb_abort + leaq L$padlock_saved_context(%rip),%rax + pushf + cld + call _padlock_verify_ctx + leaq 16(%rdx),%rdx + xorl %eax,%eax + xorl %ebx,%ebx + testl $32,(%rdx) + jnz L$cfb_aligned + testq $0x0f,%rdi + setz %al + testq $0x0f,%rsi + setz %bl + testl %ebx,%eax + jnz L$cfb_aligned + negq %rax + movq $512,%rbx + notq %rax + leaq (%rsp),%rbp + cmpq %rbx,%rcx + cmovcq %rcx,%rbx + andq %rbx,%rax + movq %rcx,%rbx + negq %rax + andq $512-1,%rbx + leaq (%rax,%rbp,1),%rsp + movq $512,%rax + cmovzq %rax,%rbx + jmp L$cfb_loop +.p2align 4 +L$cfb_loop: + cmpq %rcx,%rbx + cmovaq %rcx,%rbx + movq %rdi,%r8 + movq %rsi,%r9 + movq %rcx,%r10 + movq %rbx,%rcx + movq %rbx,%r11 + testq $0x0f,%rdi + cmovnzq %rsp,%rdi + testq $0x0f,%rsi + jz L$cfb_inp_aligned + shrq $3,%rcx +.byte 0xf3,0x48,0xa5 + subq %rbx,%rdi + movq %rbx,%rcx + movq %rdi,%rsi +L$cfb_inp_aligned: + leaq -16(%rdx),%rax + leaq 16(%rdx),%rbx + shrq $4,%rcx +.byte 0xf3,0x0f,0xa7,224 + movdqa (%rax),%xmm0 + movdqa %xmm0,-16(%rdx) + movq %r8,%rdi + movq %r11,%rbx + testq $0x0f,%rdi + jz L$cfb_out_aligned + movq %rbx,%rcx + leaq (%rsp),%rsi + shrq $3,%rcx +.byte 0xf3,0x48,0xa5 + subq %rbx,%rdi +L$cfb_out_aligned: + movq %r9,%rsi + movq %r10,%rcx + addq %rbx,%rdi + addq %rbx,%rsi + subq %rbx,%rcx + movq $512,%rbx + jnz L$cfb_loop + cmpq %rbp,%rsp + je L$cfb_done + + pxor %xmm0,%xmm0 + leaq (%rsp),%rax +L$cfb_bzero: + movaps %xmm0,(%rax) + leaq 16(%rax),%rax + cmpq %rax,%rbp + ja L$cfb_bzero + +L$cfb_done: + leaq (%rbp),%rsp + jmp L$cfb_exit + +.p2align 4 +L$cfb_aligned: + leaq -16(%rdx),%rax + leaq 16(%rdx),%rbx + shrq $4,%rcx +.byte 0xf3,0x0f,0xa7,224 + movdqa (%rax),%xmm0 + movdqa %xmm0,-16(%rdx) +L$cfb_exit: + movl $1,%eax + leaq 8(%rsp),%rsp +L$cfb_abort: + popq %rbx + popq %rbp + .byte 0xf3,0xc3 + +.globl _padlock_ofb_encrypt + +.p2align 4 +_padlock_ofb_encrypt: + pushq %rbp + pushq %rbx + + xorl %eax,%eax + testq $15,%rdx + jnz L$ofb_abort + testq $15,%rcx + jnz L$ofb_abort + leaq L$padlock_saved_context(%rip),%rax + pushf + cld + call _padlock_verify_ctx + leaq 16(%rdx),%rdx + xorl %eax,%eax + xorl %ebx,%ebx + testl $32,(%rdx) + jnz L$ofb_aligned + testq $0x0f,%rdi + setz %al + testq $0x0f,%rsi + setz %bl + testl %ebx,%eax + jnz L$ofb_aligned + negq %rax + movq $512,%rbx + notq %rax + leaq (%rsp),%rbp + cmpq %rbx,%rcx + cmovcq %rcx,%rbx + andq %rbx,%rax + movq %rcx,%rbx + negq %rax + andq $512-1,%rbx + leaq (%rax,%rbp,1),%rsp + movq $512,%rax + cmovzq %rax,%rbx + jmp L$ofb_loop +.p2align 4 +L$ofb_loop: + cmpq %rcx,%rbx + cmovaq %rcx,%rbx + movq %rdi,%r8 + movq %rsi,%r9 + movq %rcx,%r10 + movq %rbx,%rcx + movq %rbx,%r11 + testq $0x0f,%rdi + cmovnzq %rsp,%rdi + testq $0x0f,%rsi + jz L$ofb_inp_aligned + shrq $3,%rcx +.byte 0xf3,0x48,0xa5 + subq %rbx,%rdi + movq %rbx,%rcx + movq %rdi,%rsi +L$ofb_inp_aligned: + leaq -16(%rdx),%rax + leaq 16(%rdx),%rbx + shrq $4,%rcx +.byte 0xf3,0x0f,0xa7,232 + movdqa (%rax),%xmm0 + movdqa %xmm0,-16(%rdx) + movq %r8,%rdi + movq %r11,%rbx + testq $0x0f,%rdi + jz L$ofb_out_aligned + movq %rbx,%rcx + leaq (%rsp),%rsi + shrq $3,%rcx +.byte 0xf3,0x48,0xa5 + subq %rbx,%rdi +L$ofb_out_aligned: + movq %r9,%rsi + movq %r10,%rcx + addq %rbx,%rdi + addq %rbx,%rsi + subq %rbx,%rcx + movq $512,%rbx + jnz L$ofb_loop + cmpq %rbp,%rsp + je L$ofb_done + + pxor %xmm0,%xmm0 + leaq (%rsp),%rax +L$ofb_bzero: + movaps %xmm0,(%rax) + leaq 16(%rax),%rax + cmpq %rax,%rbp + ja L$ofb_bzero + +L$ofb_done: + leaq (%rbp),%rsp + jmp L$ofb_exit + +.p2align 4 +L$ofb_aligned: + leaq -16(%rdx),%rax + leaq 16(%rdx),%rbx + shrq $4,%rcx +.byte 0xf3,0x0f,0xa7,232 + movdqa (%rax),%xmm0 + movdqa %xmm0,-16(%rdx) +L$ofb_exit: + movl $1,%eax + leaq 8(%rsp),%rsp +L$ofb_abort: + popq %rbx + popq %rbp + .byte 0xf3,0xc3 + +.globl _padlock_ctr32_encrypt + +.p2align 4 +_padlock_ctr32_encrypt: + pushq %rbp + pushq %rbx + + xorl %eax,%eax + testq $15,%rdx + jnz L$ctr32_abort + testq $15,%rcx + jnz L$ctr32_abort + leaq L$padlock_saved_context(%rip),%rax + pushf + cld + call _padlock_verify_ctx + leaq 16(%rdx),%rdx + xorl %eax,%eax + xorl %ebx,%ebx + testl $32,(%rdx) + jnz L$ctr32_aligned + testq $0x0f,%rdi + setz %al + testq $0x0f,%rsi + setz %bl + testl %ebx,%eax + jnz L$ctr32_aligned + negq %rax + movq $512,%rbx + notq %rax + leaq (%rsp),%rbp + cmpq %rbx,%rcx + cmovcq %rcx,%rbx + andq %rbx,%rax + movq %rcx,%rbx + negq %rax + andq $512-1,%rbx + leaq (%rax,%rbp,1),%rsp + movq $512,%rax + cmovzq %rax,%rbx +L$ctr32_reenter: + movl -4(%rdx),%eax + bswapl %eax + negl %eax + andl $31,%eax + movq $512,%rbx + shll $4,%eax + cmovzq %rbx,%rax + cmpq %rax,%rcx + cmovaq %rax,%rbx + cmovbeq %rcx,%rbx + cmpq %rbx,%rcx + ja L$ctr32_loop + movq %rsi,%rax + cmpq %rsp,%rbp + cmoveq %rdi,%rax + addq %rcx,%rax + negq %rax + andq $0xfff,%rax + cmpq $32,%rax + movq $-32,%rax + cmovaeq %rbx,%rax + andq %rax,%rbx + jz L$ctr32_unaligned_tail + jmp L$ctr32_loop +.p2align 4 +L$ctr32_loop: + cmpq %rcx,%rbx + cmovaq %rcx,%rbx + movq %rdi,%r8 + movq %rsi,%r9 + movq %rcx,%r10 + movq %rbx,%rcx + movq %rbx,%r11 + testq $0x0f,%rdi + cmovnzq %rsp,%rdi + testq $0x0f,%rsi + jz L$ctr32_inp_aligned + shrq $3,%rcx +.byte 0xf3,0x48,0xa5 + subq %rbx,%rdi + movq %rbx,%rcx + movq %rdi,%rsi +L$ctr32_inp_aligned: + leaq -16(%rdx),%rax + leaq 16(%rdx),%rbx + shrq $4,%rcx +.byte 0xf3,0x0f,0xa7,216 + movl -4(%rdx),%eax + testl $0xffff0000,%eax + jnz L$ctr32_no_carry + bswapl %eax + addl $0x10000,%eax + bswapl %eax + movl %eax,-4(%rdx) +L$ctr32_no_carry: + movq %r8,%rdi + movq %r11,%rbx + testq $0x0f,%rdi + jz L$ctr32_out_aligned + movq %rbx,%rcx + leaq (%rsp),%rsi + shrq $3,%rcx +.byte 0xf3,0x48,0xa5 + subq %rbx,%rdi +L$ctr32_out_aligned: + movq %r9,%rsi + movq %r10,%rcx + addq %rbx,%rdi + addq %rbx,%rsi + subq %rbx,%rcx + movq $512,%rbx + jz L$ctr32_break + cmpq %rbx,%rcx + jae L$ctr32_loop + movq %rcx,%rbx + movq %rsi,%rax + cmpq %rsp,%rbp + cmoveq %rdi,%rax + addq %rcx,%rax + negq %rax + andq $0xfff,%rax + cmpq $32,%rax + movq $-32,%rax + cmovaeq %rbx,%rax + andq %rax,%rbx + jnz L$ctr32_loop +L$ctr32_unaligned_tail: + xorl %eax,%eax + cmpq %rsp,%rbp + cmoveq %rcx,%rax + movq %rdi,%r8 + movq %rcx,%rbx + subq %rax,%rsp + shrq $3,%rcx + leaq (%rsp),%rdi +.byte 0xf3,0x48,0xa5 + movq %rsp,%rsi + movq %r8,%rdi + movq %rbx,%rcx + jmp L$ctr32_loop +.p2align 4 +L$ctr32_break: + cmpq %rbp,%rsp + je L$ctr32_done + + pxor %xmm0,%xmm0 + leaq (%rsp),%rax +L$ctr32_bzero: + movaps %xmm0,(%rax) + leaq 16(%rax),%rax + cmpq %rax,%rbp + ja L$ctr32_bzero + +L$ctr32_done: + leaq (%rbp),%rsp + jmp L$ctr32_exit + +.p2align 4 +L$ctr32_aligned: + movl -4(%rdx),%eax + bswapl %eax + negl %eax + andl $0xffff,%eax + movq $1048576,%rbx + shll $4,%eax + cmovzq %rbx,%rax + cmpq %rax,%rcx + cmovaq %rax,%rbx + cmovbeq %rcx,%rbx + jbe L$ctr32_aligned_skip + +L$ctr32_aligned_loop: + movq %rcx,%r10 + movq %rbx,%rcx + movq %rbx,%r11 + + leaq -16(%rdx),%rax + leaq 16(%rdx),%rbx + shrq $4,%rcx +.byte 0xf3,0x0f,0xa7,216 + + movl -4(%rdx),%eax + bswapl %eax + addl $0x10000,%eax + bswapl %eax + movl %eax,-4(%rdx) + + movq %r10,%rcx + subq %r11,%rcx + movq $1048576,%rbx + jz L$ctr32_exit + cmpq %rbx,%rcx + jae L$ctr32_aligned_loop + +L$ctr32_aligned_skip: + leaq (%rsi,%rcx,1),%rbp + negq %rbp + andq $0xfff,%rbp + xorl %eax,%eax + cmpq $32,%rbp + movq $32-1,%rbp + cmovaeq %rax,%rbp + andq %rcx,%rbp + subq %rbp,%rcx + jz L$ctr32_aligned_tail + leaq -16(%rdx),%rax + leaq 16(%rdx),%rbx + shrq $4,%rcx +.byte 0xf3,0x0f,0xa7,216 + testq %rbp,%rbp + jz L$ctr32_exit + +L$ctr32_aligned_tail: + movq %rdi,%r8 + movq %rbp,%rbx + movq %rbp,%rcx + leaq (%rsp),%rbp + subq %rcx,%rsp + shrq $3,%rcx + leaq (%rsp),%rdi +.byte 0xf3,0x48,0xa5 + leaq (%r8),%rdi + leaq (%rsp),%rsi + movq %rbx,%rcx + jmp L$ctr32_loop +L$ctr32_exit: + movl $1,%eax + leaq 8(%rsp),%rsp +L$ctr32_abort: + popq %rbx + popq %rbp + .byte 0xf3,0xc3 + +.byte 86,73,65,32,80,97,100,108,111,99,107,32,120,56,54,95,54,52,32,109,111,100,117,108,101,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 +.p2align 4 +.data +.p2align 3 +L$padlock_saved_context: +.quad 0 diff --git a/vere/ext/openssl/gen/macos-x86_64/include/crypto/bn_conf.h b/vere/ext/openssl/gen/macos-x86_64/include/crypto/bn_conf.h new file mode 100644 index 0000000..5312ef5 --- /dev/null +++ b/vere/ext/openssl/gen/macos-x86_64/include/crypto/bn_conf.h @@ -0,0 +1,28 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from include/crypto/bn_conf.h.in */ +/* + * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef OSSL_CRYPTO_BN_CONF_H +# define OSSL_CRYPTO_BN_CONF_H + +/* + * The contents of this file are not used in the UEFI build, as + * both 32-bit and 64-bit builds are supported from a single run + * of the Configure script. + */ + +/* Should we define BN_DIV2W here? */ + +/* Only one for the following should be defined */ +#define SIXTY_FOUR_BIT_LONG +#undef SIXTY_FOUR_BIT +#undef THIRTY_TWO_BIT + +#endif diff --git a/vere/ext/openssl/gen/macos-x86_64/include/crypto/buildinf.h b/vere/ext/openssl/gen/macos-x86_64/include/crypto/buildinf.h new file mode 100644 index 0000000..a2e410e --- /dev/null +++ b/vere/ext/openssl/gen/macos-x86_64/include/crypto/buildinf.h @@ -0,0 +1,44 @@ +/* + * WARNING: do not edit! + * Generated by util/mkbuildinf.pl + * + * Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#define PLATFORM "platform: darwin64-x86_64-cc" +#define DATE "built on: Thu Sep 19 13:34:22 2024 UTC" + +/* + * Generate compiler_flags as an array of individual characters. This is a + * workaround for the situation where CFLAGS gets too long for a C90 string + * literal + */ +static const char compiler_flags[] = { + 'c','o','m','p','i','l','e','r',':',' ','c','c',' ','-','f','P', + 'I','C',' ','-','a','r','c','h',' ','x','8','6','_','6','4',' ', + '-','O','3',' ','-','W','a','l','l',' ','-','D','L','_','E','N', + 'D','I','A','N',' ','-','D','O','P','E','N','S','S','L','_','P', + 'I','C',' ','-','D','O','P','E','N','S','S','L','_','C','P','U', + 'I','D','_','O','B','J',' ','-','D','O','P','E','N','S','S','L', + '_','I','A','3','2','_','S','S','E','2',' ','-','D','O','P','E', + 'N','S','S','L','_','B','N','_','A','S','M','_','M','O','N','T', + ' ','-','D','O','P','E','N','S','S','L','_','B','N','_','A','S', + 'M','_','M','O','N','T','5',' ','-','D','O','P','E','N','S','S', + 'L','_','B','N','_','A','S','M','_','G','F','2','m',' ','-','D', + 'S','H','A','1','_','A','S','M',' ','-','D','S','H','A','2','5', + '6','_','A','S','M',' ','-','D','S','H','A','5','1','2','_','A', + 'S','M',' ','-','D','K','E','C','C','A','K','1','6','0','0','_', + 'A','S','M',' ','-','D','R','C','4','_','A','S','M',' ','-','D', + 'M','D','5','_','A','S','M',' ','-','D','A','E','S','N','I','_', + 'A','S','M',' ','-','D','V','P','A','E','S','_','A','S','M',' ', + '-','D','G','H','A','S','H','_','A','S','M',' ','-','D','E','C', + 'P','_','N','I','S','T','Z','2','5','6','_','A','S','M',' ','-', + 'D','X','2','5','5','1','9','_','A','S','M',' ','-','D','P','O', + 'L','Y','1','3','0','5','_','A','S','M',' ','-','D','_','R','E', + 'E','N','T','R','A','N','T',' ','-','D','N','D','E','B','U','G','\0' +}; diff --git a/vere/ext/openssl/gen/macos-x86_64/include/crypto/dso_conf.h b/vere/ext/openssl/gen/macos-x86_64/include/crypto/dso_conf.h new file mode 100644 index 0000000..e2d05cd --- /dev/null +++ b/vere/ext/openssl/gen/macos-x86_64/include/crypto/dso_conf.h @@ -0,0 +1,17 @@ +/* WARNING: do not edit! */ +/* Generated by Makefile from include/crypto/dso_conf.h.in */ +/* + * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef OSSL_CRYPTO_DSO_CONF_H +# define OSSL_CRYPTO_DSO_CONF_H +# define DSO_DLFCN +# define HAVE_DLFCN_H +# define DSO_EXTENSION ".dylib" +#endif diff --git a/vere/ext/openssl/gen/macos-x86_64/include/openssl/opensslconf.h b/vere/ext/openssl/gen/macos-x86_64/include/openssl/opensslconf.h new file mode 100644 index 0000000..7530b04 --- /dev/null +++ b/vere/ext/openssl/gen/macos-x86_64/include/openssl/opensslconf.h @@ -0,0 +1,203 @@ +/* + * WARNING: do not edit! + * Generated by Makefile from include/openssl/opensslconf.h.in + * + * Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef OPENSSL_ALGORITHM_DEFINES +# error OPENSSL_ALGORITHM_DEFINES no longer supported +#endif + +/* + * OpenSSL was configured with the following options: + */ + +#ifndef OPENSSL_SYS_MACOSX +# define OPENSSL_SYS_MACOSX 1 +#endif +#ifndef OPENSSL_NO_MD2 +# define OPENSSL_NO_MD2 +#endif +#ifndef OPENSSL_NO_RC5 +# define OPENSSL_NO_RC5 +#endif +#ifndef OPENSSL_THREADS +# define OPENSSL_THREADS +#endif +#ifndef OPENSSL_RAND_SEED_OS +# define OPENSSL_RAND_SEED_OS +#endif +#ifndef OPENSSL_NO_AFALGENG +# define OPENSSL_NO_AFALGENG +#endif +#ifndef OPENSSL_NO_ASAN +# define OPENSSL_NO_ASAN +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG +# define OPENSSL_NO_CRYPTO_MDEBUG +#endif +#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE +#endif +#ifndef OPENSSL_NO_DEVCRYPTOENG +# define OPENSSL_NO_DEVCRYPTOENG +#endif +#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 +# define OPENSSL_NO_EC_NISTP_64_GCC_128 +#endif +#ifndef OPENSSL_NO_EGD +# define OPENSSL_NO_EGD +#endif +#ifndef OPENSSL_NO_EXTERNAL_TESTS +# define OPENSSL_NO_EXTERNAL_TESTS +#endif +#ifndef OPENSSL_NO_FUZZ_AFL +# define OPENSSL_NO_FUZZ_AFL +#endif +#ifndef OPENSSL_NO_FUZZ_LIBFUZZER +# define OPENSSL_NO_FUZZ_LIBFUZZER +#endif +#ifndef OPENSSL_NO_HEARTBEATS +# define OPENSSL_NO_HEARTBEATS +#endif +#ifndef OPENSSL_NO_MSAN +# define OPENSSL_NO_MSAN +#endif +#ifndef OPENSSL_NO_SCTP +# define OPENSSL_NO_SCTP +#endif +#ifndef OPENSSL_NO_SSL_TRACE +# define OPENSSL_NO_SSL_TRACE +#endif +#ifndef OPENSSL_NO_SSL3 +# define OPENSSL_NO_SSL3 +#endif +#ifndef OPENSSL_NO_SSL3_METHOD +# define OPENSSL_NO_SSL3_METHOD +#endif +#ifndef OPENSSL_NO_UBSAN +# define OPENSSL_NO_UBSAN +#endif +#ifndef OPENSSL_NO_UNIT_TEST +# define OPENSSL_NO_UNIT_TEST +#endif +#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS +# define OPENSSL_NO_WEAK_SSL_CIPHERS +#endif +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +# define OPENSSL_NO_DYNAMIC_ENGINE +#endif + + +/* + * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers + * don't like that. This will hopefully silence them. + */ +#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; + +/* + * Applications should use -DOPENSSL_API_COMPAT= to suppress the + * declarations of functions deprecated in or before . Otherwise, they + * still won't see them if the library has been built to disable deprecated + * functions. + */ +#ifndef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f; +# ifdef __GNUC__ +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# elif defined(__SUNPRO_C) +# if (__SUNPRO_C >= 0x5130) +# undef DECLARE_DEPRECATED +# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); +# endif +# endif +#endif + +#ifndef OPENSSL_FILE +# ifdef OPENSSL_NO_FILENAMES +# define OPENSSL_FILE "" +# define OPENSSL_LINE 0 +# else +# define OPENSSL_FILE __FILE__ +# define OPENSSL_LINE __LINE__ +# endif +#endif + +#ifndef OPENSSL_MIN_API +# define OPENSSL_MIN_API 0 +#endif + +#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API +# undef OPENSSL_API_COMPAT +# define OPENSSL_API_COMPAT OPENSSL_MIN_API +#endif + +/* + * Do not deprecate things to be deprecated in version 1.2.0 before the + * OpenSSL version number matches. + */ +#if OPENSSL_VERSION_NUMBER < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) f; +#elif OPENSSL_API_COMPAT < 0x10200000L +# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_2_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10100000L +# define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_1_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x10000000L +# define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_1_0_0(f) +#endif + +#if OPENSSL_API_COMPAT < 0x00908000L +# define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f) +#else +# define DEPRECATEDIN_0_9_8(f) +#endif + +/* Generate 80386 code? */ +#undef I386_ONLY + +#undef OPENSSL_UNISTD +#define OPENSSL_UNISTD + +#undef OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* + * The following are cipher-specific, but are part of the public API. + */ +#if !defined(OPENSSL_SYS_UEFI) +# undef BN_LLONG +/* Only one for the following should be defined */ +# define SIXTY_FOUR_BIT_LONG +# undef SIXTY_FOUR_BIT +# undef THIRTY_TWO_BIT +#endif + +#define RC4_INT unsigned int + +#ifdef __cplusplus +} +#endif diff --git a/vere/ext/pdjson/build.zig b/vere/ext/pdjson/build.zig new file mode 100644 index 0000000..5e851bb --- /dev/null +++ b/vere/ext/pdjson/build.zig @@ -0,0 +1,38 @@ +const std = @import("std"); + +pub fn build(b: *std.Build) void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + + const dep_c = b.dependency("pdjson", .{ + .target = target, + .optimize = optimize, + }); + + const lib = b.addStaticLibrary(.{ + .name = "pdjson", + .target = target, + .optimize = optimize, + }); + + lib.linkLibC(); + + lib.addIncludePath(dep_c.path(".")); + + lib.addCSourceFiles(.{ + .root = dep_c.path("."), + .files = &.{"pdjson.c"}, + .flags = &.{ + "-fno-sanitize=all", + "-std=c99", + "-pedantic", + "-Wall", + "-Wextra", + "-Wno-missing-field-initializers", + }, + }); + + lib.installHeader(dep_c.path("pdjson.h"), "pdjson.h"); + + b.installArtifact(lib); +} diff --git a/vere/ext/pdjson/build.zig.zon b/vere/ext/pdjson/build.zig.zon new file mode 100644 index 0000000..1774d5b --- /dev/null +++ b/vere/ext/pdjson/build.zig.zon @@ -0,0 +1,13 @@ +.{ + .name = "pdjson", + .version = "0.0.1", + .dependencies = .{ + .pdjson = .{ + .url = "https://github.com/skeeto/pdjson/archive/67108d883061043e55d0fb13961ac1b6fc8a485c.tar.gz", + .hash = "N-V-__8AADC9AACneJx7RTm9Hui7GCYJ2Qdv8Z_CUCbJphyi", + }, + }, + .paths = .{ + "", + }, +} diff --git a/vere/ext/sigsegv/build.zig b/vere/ext/sigsegv/build.zig new file mode 100644 index 0000000..d7f8859 --- /dev/null +++ b/vere/ext/sigsegv/build.zig @@ -0,0 +1,151 @@ +const std = @import("std"); + +pub fn build(b: *std.Build) void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + const t = target.result; + + const dep_c = b.dependency("sigsegv", .{ + .target = target, + .optimize = optimize, + }); + + const lib = b.addStaticLibrary(.{ + .name = "sigsegv", + .target = target, + .optimize = optimize, + }); + + if (target.result.os.tag.isDarwin() and !target.query.isNative()) { + const macos_sdk = b.lazyDependency("macos_sdk", .{ + .target = target, + .optimize = optimize, + }); + if (macos_sdk != null) { + lib.addSystemIncludePath(macos_sdk.?.path("usr/include")); + lib.addLibraryPath(macos_sdk.?.path("usr/lib")); + lib.addFrameworkPath(macos_sdk.?.path("System/Library/Frameworks")); + } + } + + lib.linkLibC(); + + lib.root_module.addCMacro("HAVE_CONFIG_H", &[_]u8{}); + + const config_h = b.addConfigHeader(.{ + .style = .{ + .autoconf = dep_c.path("config.h.in"), + }, + .include_path = "config.h", + }, .{ + .ENABLE_EFAULT = null, + .HAVE_DLFCN_H = 1, + .HAVE_EFAULT_SUPPORT = null, + .HAVE_GETPAGESIZE = 1, + .HAVE_GETRLIMIT = 1, + .HAVE_INTTYPES_H = 1, + .HAVE_MINCORE = 1, + .HAVE_MMAP_ANON = 1, + .HAVE_MMAP_ANONYMOUS = 1, + .HAVE_MMAP_DEVZERO = null, + .HAVE_MQUERY = null, + .HAVE_PAGESIZE = null, + .HAVE_SETRLIMIT = 1, + .HAVE_SIGALTSTACK = 1, + .HAVE_STACKVMA = @intFromBool(!(t.os.tag == .linux)), + .HAVE_STDINT_H = 1, + .HAVE_STDIO_H = 1, + .HAVE_STDLIB_H = 1, + .HAVE_STRINGS_H = 1, + .HAVE_STRING_H = 1, + .HAVE_SYSCONF_PAGESIZE = null, + .HAVE_SYS_SIGNAL_H = 1, + .HAVE_SYS_STAT_H = 1, + .HAVE_SYS_TYPES_H = 1, + .HAVE_UCONTEXT_H = null, + .HAVE_UINTPTR_T = 1, + .HAVE_UNISTD_H = 1, + .HAVE_WORKING_SIGALTSTACK = 1, + .LT_OBJDIR = null, + .OLD_CYGWIN_WORKAROUND = null, + .PACKAGE = null, + .PACKAGE_BUGREPORT = null, + .PACKAGE_NAME = null, + .PACKAGE_STRING = null, + .PACKAGE_TARNAME = null, + .PACKAGE_URL = null, + .PACKAGE_VERSION = null, + .SIGALTSTACK_SS_REVERSED = null, + .STACK_DIRECTION = -1, + .STDC_HEADERS = 1, + .VERSION = null, + .stack_t = null, + .uintptr_t = null, + }); + + if ((t.os.tag == .macos)) { + config_h.addValues(.{ + .CFG_FAULT = if (t.cpu.arch == .aarch64) + "fault-macos-arm64.h" + else + "fault-macos-i386.h", + .CFG_HANDLER = "handler-unix.c", + .CFG_LEAVE = "leave-nop.c", + .CFG_MACHFAULT = "fault-none.h", + .CFG_SIGNALS = "signals-macos.h", + .CFG_STACKVMA = "stackvma-mach.c", + }); + } + + if ((t.os.tag == .linux)) { + config_h.addValues(.{ + .CFG_FAULT = if (t.cpu.arch == .aarch64) + "fault-linux-arm.h" + else + "fault-linux-i386.h", + .CFG_HANDLER = "handler-unix.c", + .CFG_LEAVE = "leave-nop.c", + .CFG_MACHFAULT = "fault-none.h", + .CFG_SIGNALS = "signals.h", + .CFG_STACKVMA = "stackvma-none.c", + }); + } + + const sigsegv_h = b.addConfigHeader(.{ + .style = .{ + .cmake = dep_c.path("src/sigsegv.h.in"), + }, + .include_path = "sigsegv.h", + }, .{ + .FAULT_CONTEXT = "ucontext_t", + .FAULT_CONTEXT_INCLUDE = if (t.os.tag == .macos) + "#include " + else + "#include ", + .HAVE_SIGSEGV_RECOVERY = 1, + .HAVE_STACK_OVERFLOW_RECOVERY = 1, + }); + + lib.addIncludePath(dep_c.path("src")); + lib.addConfigHeader(config_h); + lib.addConfigHeader(sigsegv_h); + + lib.addCSourceFiles(.{ + .root = dep_c.path("src"), + .files = &.{ + "dispatcher.c", + "handler.c", + "leave.c", + "stackvma.c", + "version.c", + }, + .flags = &.{ + "-O2", + "-fno-sanitize=all", + }, + }); + + lib.installConfigHeader(sigsegv_h); + + b.installArtifact(lib); +} diff --git a/vere/ext/sigsegv/build.zig.zon b/vere/ext/sigsegv/build.zig.zon new file mode 100644 index 0000000..39f2c58 --- /dev/null +++ b/vere/ext/sigsegv/build.zig.zon @@ -0,0 +1,18 @@ +.{ + .name = "sigsegv", + .version = "0.0.1", + .dependencies = .{ + .macos_sdk = .{ + .url = "https://github.com/joseluisq/macosx-sdks/releases/download/14.5/MacOSX14.5.sdk.tar.xz", + .hash = "N-V-__8AAKtK4FMzqcFsY_ZrpMg9bGH0h7BqZDXtVyAerMtM", + .lazy = true, + }, + .sigsegv = .{ + .url = "https://ftp.fr.openbsd.org/pub/OpenBSD/distfiles/libsigsegv-2.14.tar.gz", + .hash = "N-V-__8AAHQhHwCCMyKUtQhO0AMsY182In-wQIwXVhenOql5", + }, + }, + .paths = .{ + "", + }, +} diff --git a/vere/ext/softblas/build.zig b/vere/ext/softblas/build.zig new file mode 100644 index 0000000..1fb3b06 --- /dev/null +++ b/vere/ext/softblas/build.zig @@ -0,0 +1,80 @@ +const std = @import("std"); + +pub fn build(b: *std.Build) void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + + const lib = b.addStaticLibrary(.{ + .name = "softblas", + .target = target, + .optimize = optimize, + }); + + const dep_c = b.dependency("softblas", .{ + .target = target, + .optimize = optimize, + }); + + const softfloat = b.dependency("softfloat", .{ + .target = target, + .optimize = optimize, + }); + + lib.addIncludePath(dep_c.path("include")); + + lib.addCSourceFiles(.{ + .root = dep_c.path(""), + .files = &.{ + "src/softblas_state.c", + "src/blas/level1/sasum.c", + "src/blas/level1/dasum.c", + "src/blas/level1/hasum.c", + "src/blas/level1/qasum.c", + "src/blas/level1/saxpy.c", + "src/blas/level1/daxpy.c", + "src/blas/level1/haxpy.c", + "src/blas/level1/qaxpy.c", + "src/blas/level1/scopy.c", + "src/blas/level1/dcopy.c", + "src/blas/level1/hcopy.c", + "src/blas/level1/qcopy.c", + "src/blas/level1/sdot.c", + "src/blas/level1/ddot.c", + "src/blas/level1/hdot.c", + "src/blas/level1/qdot.c", + "src/blas/level1/snrm2.c", + "src/blas/level1/dnrm2.c", + "src/blas/level1/hnrm2.c", + "src/blas/level1/qnrm2.c", + "src/blas/level1/sscal.c", + "src/blas/level1/dscal.c", + "src/blas/level1/hscal.c", + "src/blas/level1/qscal.c", + "src/blas/level1/sswap.c", + "src/blas/level1/dswap.c", + "src/blas/level1/hswap.c", + "src/blas/level1/qswap.c", + "src/blas/level1/isamax.c", + "src/blas/level1/idamax.c", + "src/blas/level1/ihamax.c", + "src/blas/level1/iqamax.c", + "src/blas/level2/sgemv.c", + "src/blas/level2/dgemv.c", + "src/blas/level2/hgemv.c", + "src/blas/level2/qgemv.c", + "src/blas/level3/sgemm.c", + "src/blas/level3/dgemm.c", + "src/blas/level3/hgemm.c", + "src/blas/level3/qgemm.c", + }, + .flags = &.{ + "-fno-sanitize=all", + }, + }); + + lib.installHeader(dep_c.path("include/softblas.h"), "softblas.h"); + + lib.linkLibC(); + lib.linkLibrary(softfloat.artifact("softfloat")); + b.installArtifact(lib); +} diff --git a/vere/ext/softblas/build.zig.zon b/vere/ext/softblas/build.zig.zon new file mode 100644 index 0000000..a05aa5f --- /dev/null +++ b/vere/ext/softblas/build.zig.zon @@ -0,0 +1,16 @@ +.{ + .name = "softblas", + .version = "0.0.1", + .dependencies = .{ + .softfloat = .{ + .path = "../softfloat", + }, + .softblas = .{ + .url = "https://github.com/urbit/SoftBLAS/archive/cbffb33f19ea02f9ffbd184d445123c57929ec53.tar.gz", + .hash = "N-V-__8AAJD5MgBhfBHYae8jFlcaQw9R-TRw4tcUFB3rO9-q", + }, + }, + .paths = .{ + "", + }, +} diff --git a/vere/ext/softfloat/build.zig b/vere/ext/softfloat/build.zig new file mode 100644 index 0000000..ef61936 --- /dev/null +++ b/vere/ext/softfloat/build.zig @@ -0,0 +1,610 @@ +const std = @import("std"); + +pub fn build(b: *std.Build) void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + const t = target.result; + + const lib = b.addStaticLibrary(.{ + .name = "softfloat", + .target = target, + .optimize = optimize, + }); + + const dep_c = b.dependency("softfloat", .{ + .target = target, + .optimize = optimize, + }); + + lib.addIncludePath(dep_c.path("source/include")); + + const flags = .{ + "-fno-sanitize=all", + "-g", + "-O2", + }; + + if (t.cpu.arch.isAARCH64()) { + lib.addIncludePath(dep_c.path("source/ARM-VFPv2")); + lib.addIncludePath(dep_c.path("build/Linux-ARM-VFPv2-GCC")); + lib.addCSourceFiles(.{ + .root = dep_c.path(""), + .files = &.{ + "source/s_compare96M.c", + "source/s_compare128M.c", + "source/s_shortShiftLeft64To96M.c", + "source/s_shortShiftLeftM.c", + "source/s_shiftLeftM.c", + "source/s_shortShiftRightM.c", + "source/s_shortShiftRightJam64.c", + "source/s_shortShiftRightJamM.c", + "source/s_shiftRightJam32.c", + "source/s_shiftRightJam64.c", + "source/s_shiftRightJamM.c", + "source/s_shiftRightM.c", + "source/s_countLeadingZeros8.c", + "source/s_countLeadingZeros16.c", + "source/s_countLeadingZeros32.c", + "source/s_countLeadingZeros64.c", + "source/s_addM.c", + "source/s_addCarryM.c", + "source/s_addComplCarryM.c", + "source/s_negXM.c", + "source/s_sub1XM.c", + "source/s_subM.c", + "source/s_mul64To128M.c", + "source/s_mul128MTo256M.c", + "source/s_approxRecip_1Ks.c", + "source/s_approxRecip32_1.c", + "source/s_approxRecipSqrt_1Ks.c", + "source/s_approxRecipSqrt32_1.c", + "source/s_remStepMBy32.c", + "source/ARM-VFPv2/softfloat_raiseFlags.c", + "source/ARM-VFPv2/s_f16UIToCommonNaN.c", + "source/ARM-VFPv2/s_commonNaNToF16UI.c", + "source/ARM-VFPv2/s_propagateNaNF16UI.c", + "source/ARM-VFPv2/s_f32UIToCommonNaN.c", + "source/ARM-VFPv2/s_commonNaNToF32UI.c", + "source/ARM-VFPv2/s_propagateNaNF32UI.c", + "source/ARM-VFPv2/s_f64UIToCommonNaN.c", + "source/ARM-VFPv2/s_commonNaNToF64UI.c", + "source/ARM-VFPv2/s_propagateNaNF64UI.c", + "source/ARM-VFPv2/extF80M_isSignalingNaN.c", + "source/ARM-VFPv2/s_extF80MToCommonNaN.c", + "source/ARM-VFPv2/s_commonNaNToExtF80M.c", + "source/ARM-VFPv2/s_propagateNaNExtF80M.c", + "source/ARM-VFPv2/f128M_isSignalingNaN.c", + "source/ARM-VFPv2/s_f128MToCommonNaN.c", + "source/ARM-VFPv2/s_commonNaNToF128M.c", + "source/ARM-VFPv2/s_propagateNaNF128M.c", + "source/s_roundToUI32.c", + "source/s_roundMToUI64.c", + "source/s_roundToI32.c", + "source/s_roundMToI64.c", + "source/s_normSubnormalF16Sig.c", + "source/s_roundPackToF16.c", + "source/s_normRoundPackToF16.c", + "source/s_addMagsF16.c", + "source/s_subMagsF16.c", + "source/s_mulAddF16.c", + "source/s_normSubnormalF32Sig.c", + "source/s_roundPackToF32.c", + "source/s_normRoundPackToF32.c", + "source/s_addMagsF32.c", + "source/s_subMagsF32.c", + "source/s_mulAddF32.c", + "source/s_normSubnormalF64Sig.c", + "source/s_roundPackToF64.c", + "source/s_normRoundPackToF64.c", + "source/s_addMagsF64.c", + "source/s_subMagsF64.c", + "source/s_mulAddF64.c", + "source/s_tryPropagateNaNExtF80M.c", + "source/s_invalidExtF80M.c", + "source/s_normExtF80SigM.c", + "source/s_roundPackMToExtF80M.c", + "source/s_normRoundPackMToExtF80M.c", + "source/s_addExtF80M.c", + "source/s_compareNonnormExtF80M.c", + "source/s_isNaNF128M.c", + "source/s_tryPropagateNaNF128M.c", + "source/s_invalidF128M.c", + "source/s_shiftNormSigF128M.c", + "source/s_roundPackMToF128M.c", + "source/s_normRoundPackMToF128M.c", + "source/s_addF128M.c", + "source/s_mulAddF128M.c", + "source/softfloat_state.c", + "source/ui32_to_f16.c", + "source/ui32_to_f32.c", + "source/ui32_to_f64.c", + "source/ui32_to_extF80M.c", + "source/ui32_to_f128M.c", + "source/ui64_to_f16.c", + "source/ui64_to_f32.c", + "source/ui64_to_f64.c", + "source/ui64_to_extF80M.c", + "source/ui64_to_f128M.c", + "source/i32_to_f16.c", + "source/i32_to_f32.c", + "source/i32_to_f64.c", + "source/i32_to_extF80M.c", + "source/i32_to_f128M.c", + "source/i64_to_f16.c", + "source/i64_to_f32.c", + "source/i64_to_f64.c", + "source/i64_to_extF80M.c", + "source/i64_to_f128M.c", + "source/f16_to_ui32.c", + "source/f16_to_ui64.c", + "source/f16_to_i32.c", + "source/f16_to_i64.c", + "source/f16_to_ui32_r_minMag.c", + "source/f16_to_ui64_r_minMag.c", + "source/f16_to_i32_r_minMag.c", + "source/f16_to_i64_r_minMag.c", + "source/f16_to_f32.c", + "source/f16_to_f64.c", + "source/f16_to_extF80M.c", + "source/f16_to_f128M.c", + "source/f16_roundToInt.c", + "source/f16_add.c", + "source/f16_sub.c", + "source/f16_mul.c", + "source/f16_mulAdd.c", + "source/f16_div.c", + "source/f16_rem.c", + "source/f16_sqrt.c", + "source/f16_eq.c", + "source/f16_le.c", + "source/f16_lt.c", + "source/f16_eq_signaling.c", + "source/f16_le_quiet.c", + "source/f16_lt_quiet.c", + "source/f16_isSignalingNaN.c", + "source/f32_to_ui32.c", + "source/f32_to_ui64.c", + "source/f32_to_i32.c", + "source/f32_to_i64.c", + "source/f32_to_ui32_r_minMag.c", + "source/f32_to_ui64_r_minMag.c", + "source/f32_to_i32_r_minMag.c", + "source/f32_to_i64_r_minMag.c", + "source/f32_to_f16.c", + "source/f32_to_f64.c", + "source/f32_to_extF80M.c", + "source/f32_to_f128M.c", + "source/f32_roundToInt.c", + "source/f32_add.c", + "source/f32_sub.c", + "source/f32_mul.c", + "source/f32_mulAdd.c", + "source/f32_div.c", + "source/f32_rem.c", + "source/f32_sqrt.c", + "source/f32_eq.c", + "source/f32_le.c", + "source/f32_lt.c", + "source/f32_eq_signaling.c", + "source/f32_le_quiet.c", + "source/f32_lt_quiet.c", + "source/f32_isSignalingNaN.c", + "source/f64_to_ui32.c", + "source/f64_to_ui64.c", + "source/f64_to_i32.c", + "source/f64_to_i64.c", + "source/f64_to_ui32_r_minMag.c", + "source/f64_to_ui64_r_minMag.c", + "source/f64_to_i32_r_minMag.c", + "source/f64_to_i64_r_minMag.c", + "source/f64_to_f16.c", + "source/f64_to_f32.c", + "source/f64_to_extF80M.c", + "source/f64_to_f128M.c", + "source/f64_roundToInt.c", + "source/f64_add.c", + "source/f64_sub.c", + "source/f64_mul.c", + "source/f64_mulAdd.c", + "source/f64_div.c", + "source/f64_rem.c", + "source/f64_sqrt.c", + "source/f64_eq.c", + "source/f64_le.c", + "source/f64_lt.c", + "source/f64_eq_signaling.c", + "source/f64_le_quiet.c", + "source/f64_lt_quiet.c", + "source/f64_isSignalingNaN.c", + "source/extF80M_to_ui32.c", + "source/extF80M_to_ui64.c", + "source/extF80M_to_i32.c", + "source/extF80M_to_i64.c", + "source/extF80M_to_ui32_r_minMag.c", + "source/extF80M_to_ui64_r_minMag.c", + "source/extF80M_to_i32_r_minMag.c", + "source/extF80M_to_i64_r_minMag.c", + "source/extF80M_to_f16.c", + "source/extF80M_to_f32.c", + "source/extF80M_to_f64.c", + "source/extF80M_to_f128M.c", + "source/extF80M_roundToInt.c", + "source/extF80M_add.c", + "source/extF80M_sub.c", + "source/extF80M_mul.c", + "source/extF80M_div.c", + "source/extF80M_rem.c", + "source/extF80M_sqrt.c", + "source/extF80M_eq.c", + "source/extF80M_le.c", + "source/extF80M_lt.c", + "source/extF80M_eq_signaling.c", + "source/extF80M_le_quiet.c", + "source/extF80M_lt_quiet.c", + "source/f128M_to_ui32.c", + "source/f128M_to_ui64.c", + "source/f128M_to_i32.c", + "source/f128M_to_i64.c", + "source/f128M_to_ui32_r_minMag.c", + "source/f128M_to_ui64_r_minMag.c", + "source/f128M_to_i32_r_minMag.c", + "source/f128M_to_i64_r_minMag.c", + "source/f128M_to_f16.c", + "source/f128M_to_f32.c", + "source/f128M_to_f64.c", + "source/f128M_to_extF80M.c", + "source/f128M_roundToInt.c", + "source/f128M_add.c", + "source/f128M_sub.c", + "source/f128M_mul.c", + "source/f128M_mulAdd.c", + "source/f128M_div.c", + "source/f128M_rem.c", + "source/f128M_sqrt.c", + "source/f128M_eq.c", + "source/f128M_le.c", + "source/f128M_lt.c", + "source/f128M_eq_signaling.c", + "source/f128M_le_quiet.c", + "source/f128M_lt_quiet.c", + }, + .flags = &flags, + }); + lib.installHeader(dep_c.path("build/Linux-ARM-VFPv2-GCC/platform.h"), "platform.h"); + } + if (t.cpu.arch.isX86()) { + lib.addIncludePath(dep_c.path("source/8086-SSE")); + lib.addIncludePath(dep_c.path("build/Linux-x86_64-GCC")); + + lib.root_module.addCMacro("SOFTFLOAT_FAST_INT64", ""); + lib.root_module.addCMacro("SOFTFLOAT_FAST_DIV32TO16", ""); + lib.root_module.addCMacro("SOFTFLOAT_FAST_DIV64TO32", ""); + + lib.addCSourceFiles(.{ + .root = dep_c.path(""), + .files = &.{ + "source/s_eq128.c", + "source/s_le128.c", + "source/s_lt128.c", + "source/s_shortShiftLeft128.c", + "source/s_shortShiftRight128.c", + "source/s_shortShiftRightJam64.c", + "source/s_shortShiftRightJam64Extra.c", + "source/s_shortShiftRightJam128.c", + "source/s_shortShiftRightJam128Extra.c", + "source/s_shiftRightJam32.c", + "source/s_shiftRightJam64.c", + "source/s_shiftRightJam64Extra.c", + "source/s_shiftRightJam128.c", + "source/s_shiftRightJam128Extra.c", + "source/s_shiftRightJam256M.c", + "source/s_countLeadingZeros8.c", + "source/s_countLeadingZeros16.c", + "source/s_countLeadingZeros32.c", + "source/s_countLeadingZeros64.c", + "source/s_add128.c", + "source/s_add256M.c", + "source/s_sub128.c", + "source/s_sub256M.c", + "source/s_mul64ByShifted32To128.c", + "source/s_mul64To128.c", + "source/s_mul128By32.c", + "source/s_mul128To256M.c", + "source/s_approxRecip_1Ks.c", + "source/s_approxRecip32_1.c", + "source/s_approxRecipSqrt_1Ks.c", + "source/s_approxRecipSqrt32_1.c", + "source/8086-SSE/softfloat_raiseFlags.c", + "source/8086-SSE/s_f16UIToCommonNaN.c", + "source/8086-SSE/s_commonNaNToF16UI.c", + "source/8086-SSE/s_propagateNaNF16UI.c", + "source/8086-SSE/s_f32UIToCommonNaN.c", + "source/8086-SSE/s_commonNaNToF32UI.c", + "source/8086-SSE/s_propagateNaNF32UI.c", + "source/8086-SSE/s_f64UIToCommonNaN.c", + "source/8086-SSE/s_commonNaNToF64UI.c", + "source/8086-SSE/s_propagateNaNF64UI.c", + "source/8086-SSE/extF80M_isSignalingNaN.c", + "source/8086-SSE/s_extF80UIToCommonNaN.c", + "source/8086-SSE/s_commonNaNToExtF80UI.c", + "source/8086-SSE/s_propagateNaNExtF80UI.c", + "source/8086-SSE/f128M_isSignalingNaN.c", + "source/8086-SSE/s_f128UIToCommonNaN.c", + "source/8086-SSE/s_commonNaNToF128UI.c", + "source/8086-SSE/s_propagateNaNF128UI.c", + "source/s_roundToUI32.c", + "source/s_roundToUI64.c", + "source/s_roundToI32.c", + "source/s_roundToI64.c", + "source/s_normSubnormalF16Sig.c", + "source/s_roundPackToF16.c", + "source/s_normRoundPackToF16.c", + "source/s_addMagsF16.c", + "source/s_subMagsF16.c", + "source/s_mulAddF16.c", + "source/s_normSubnormalF32Sig.c", + "source/s_roundPackToF32.c", + "source/s_normRoundPackToF32.c", + "source/s_addMagsF32.c", + "source/s_subMagsF32.c", + "source/s_mulAddF32.c", + "source/s_normSubnormalF64Sig.c", + "source/s_roundPackToF64.c", + "source/s_normRoundPackToF64.c", + "source/s_addMagsF64.c", + "source/s_subMagsF64.c", + "source/s_mulAddF64.c", + "source/s_normSubnormalExtF80Sig.c", + "source/s_roundPackToExtF80.c", + "source/s_normRoundPackToExtF80.c", + "source/s_addMagsExtF80.c", + "source/s_subMagsExtF80.c", + "source/s_normSubnormalF128Sig.c", + "source/s_roundPackToF128.c", + "source/s_normRoundPackToF128.c", + "source/s_addMagsF128.c", + "source/s_subMagsF128.c", + "source/s_mulAddF128.c", + "source/softfloat_state.c", + "source/ui32_to_f16.c", + "source/ui32_to_f32.c", + "source/ui32_to_f64.c", + "source/ui32_to_extF80.c", + "source/ui32_to_extF80M.c", + "source/ui32_to_f128.c", + "source/ui32_to_f128M.c", + "source/ui64_to_f16.c", + "source/ui64_to_f32.c", + "source/ui64_to_f64.c", + "source/ui64_to_extF80.c", + "source/ui64_to_extF80M.c", + "source/ui64_to_f128.c", + "source/ui64_to_f128M.c", + "source/i32_to_f16.c", + "source/i32_to_f32.c", + "source/i32_to_f64.c", + "source/i32_to_extF80.c", + "source/i32_to_extF80M.c", + "source/i32_to_f128.c", + "source/i32_to_f128M.c", + "source/i64_to_f16.c", + "source/i64_to_f32.c", + "source/i64_to_f64.c", + "source/i64_to_extF80.c", + "source/i64_to_extF80M.c", + "source/i64_to_f128.c", + "source/i64_to_f128M.c", + "source/f16_to_ui32.c", + "source/f16_to_ui64.c", + "source/f16_to_i32.c", + "source/f16_to_i64.c", + "source/f16_to_ui32_r_minMag.c", + "source/f16_to_ui64_r_minMag.c", + "source/f16_to_i32_r_minMag.c", + "source/f16_to_i64_r_minMag.c", + "source/f16_to_f32.c", + "source/f16_to_f64.c", + "source/f16_to_extF80.c", + "source/f16_to_extF80M.c", + "source/f16_to_f128.c", + "source/f16_to_f128M.c", + "source/f16_roundToInt.c", + "source/f16_add.c", + "source/f16_sub.c", + "source/f16_mul.c", + "source/f16_mulAdd.c", + "source/f16_div.c", + "source/f16_rem.c", + "source/f16_sqrt.c", + "source/f16_eq.c", + "source/f16_le.c", + "source/f16_lt.c", + "source/f16_eq_signaling.c", + "source/f16_le_quiet.c", + "source/f16_lt_quiet.c", + "source/f16_isSignalingNaN.c", + "source/f32_to_ui32.c", + "source/f32_to_ui64.c", + "source/f32_to_i32.c", + "source/f32_to_i64.c", + "source/f32_to_ui32_r_minMag.c", + "source/f32_to_ui64_r_minMag.c", + "source/f32_to_i32_r_minMag.c", + "source/f32_to_i64_r_minMag.c", + "source/f32_to_f16.c", + "source/f32_to_f64.c", + "source/f32_to_extF80.c", + "source/f32_to_extF80M.c", + "source/f32_to_f128.c", + "source/f32_to_f128M.c", + "source/f32_roundToInt.c", + "source/f32_add.c", + "source/f32_sub.c", + "source/f32_mul.c", + "source/f32_mulAdd.c", + "source/f32_div.c", + "source/f32_rem.c", + "source/f32_sqrt.c", + "source/f32_eq.c", + "source/f32_le.c", + "source/f32_lt.c", + "source/f32_eq_signaling.c", + "source/f32_le_quiet.c", + "source/f32_lt_quiet.c", + "source/f32_isSignalingNaN.c", + "source/f64_to_ui32.c", + "source/f64_to_ui64.c", + "source/f64_to_i32.c", + "source/f64_to_i64.c", + "source/f64_to_ui32_r_minMag.c", + "source/f64_to_ui64_r_minMag.c", + "source/f64_to_i32_r_minMag.c", + "source/f64_to_i64_r_minMag.c", + "source/f64_to_f16.c", + "source/f64_to_f32.c", + "source/f64_to_extF80.c", + "source/f64_to_extF80M.c", + "source/f64_to_f128.c", + "source/f64_to_f128M.c", + "source/f64_roundToInt.c", + "source/f64_add.c", + "source/f64_sub.c", + "source/f64_mul.c", + "source/f64_mulAdd.c", + "source/f64_div.c", + "source/f64_rem.c", + "source/f64_sqrt.c", + "source/f64_eq.c", + "source/f64_le.c", + "source/f64_lt.c", + "source/f64_eq_signaling.c", + "source/f64_le_quiet.c", + "source/f64_lt_quiet.c", + "source/f64_isSignalingNaN.c", + "source/extF80_to_ui32.c", + "source/extF80_to_ui64.c", + "source/extF80_to_i32.c", + "source/extF80_to_i64.c", + "source/extF80_to_ui32_r_minMag.c", + "source/extF80_to_ui64_r_minMag.c", + "source/extF80_to_i32_r_minMag.c", + "source/extF80_to_i64_r_minMag.c", + "source/extF80_to_f16.c", + "source/extF80_to_f32.c", + "source/extF80_to_f64.c", + "source/extF80_to_f128.c", + "source/extF80_roundToInt.c", + "source/extF80_add.c", + "source/extF80_sub.c", + "source/extF80_mul.c", + "source/extF80_div.c", + "source/extF80_rem.c", + "source/extF80_sqrt.c", + "source/extF80_eq.c", + "source/extF80_le.c", + "source/extF80_lt.c", + "source/extF80_eq_signaling.c", + "source/extF80_le_quiet.c", + "source/extF80_lt_quiet.c", + "source/extF80_isSignalingNaN.c", + "source/extF80M_to_ui32.c", + "source/extF80M_to_ui64.c", + "source/extF80M_to_i32.c", + "source/extF80M_to_i64.c", + "source/extF80M_to_ui32_r_minMag.c", + "source/extF80M_to_ui64_r_minMag.c", + "source/extF80M_to_i32_r_minMag.c", + "source/extF80M_to_i64_r_minMag.c", + "source/extF80M_to_f16.c", + "source/extF80M_to_f32.c", + "source/extF80M_to_f64.c", + "source/extF80M_to_f128M.c", + "source/extF80M_roundToInt.c", + "source/extF80M_add.c", + "source/extF80M_sub.c", + "source/extF80M_mul.c", + "source/extF80M_div.c", + "source/extF80M_rem.c", + "source/extF80M_sqrt.c", + "source/extF80M_eq.c", + "source/extF80M_le.c", + "source/extF80M_lt.c", + "source/extF80M_eq_signaling.c", + "source/extF80M_le_quiet.c", + "source/extF80M_lt_quiet.c", + "source/f128_to_ui32.c", + "source/f128_to_ui64.c", + "source/f128_to_i32.c", + "source/f128_to_i64.c", + "source/f128_to_ui32_r_minMag.c", + "source/f128_to_ui64_r_minMag.c", + "source/f128_to_i32_r_minMag.c", + "source/f128_to_i64_r_minMag.c", + "source/f128_to_f16.c", + "source/f128_to_f32.c", + "source/f128_to_extF80.c", + "source/f128_to_f64.c", + "source/f128_roundToInt.c", + "source/f128_add.c", + "source/f128_sub.c", + "source/f128_mul.c", + "source/f128_mulAdd.c", + "source/f128_div.c", + "source/f128_rem.c", + "source/f128_sqrt.c", + "source/f128_eq.c", + "source/f128_le.c", + "source/f128_lt.c", + "source/f128_eq_signaling.c", + "source/f128_le_quiet.c", + "source/f128_lt_quiet.c", + "source/f128_isSignalingNaN.c", + "source/f128M_to_ui32.c", + "source/f128M_to_ui64.c", + "source/f128M_to_i32.c", + "source/f128M_to_i64.c", + "source/f128M_to_ui32_r_minMag.c", + "source/f128M_to_ui64_r_minMag.c", + "source/f128M_to_i32_r_minMag.c", + "source/f128M_to_i64_r_minMag.c", + "source/f128M_to_f16.c", + "source/f128M_to_f32.c", + "source/f128M_to_extF80M.c", + "source/f128M_to_f64.c", + "source/f128M_roundToInt.c", + "source/f128M_add.c", + "source/f128M_sub.c", + "source/f128M_mul.c", + "source/f128M_mulAdd.c", + "source/f128M_div.c", + "source/f128M_rem.c", + "source/f128M_sqrt.c", + "source/f128M_eq.c", + "source/f128M_le.c", + "source/f128M_lt.c", + "source/f128M_eq_signaling.c", + "source/f128M_le_quiet.c", + "source/f128M_lt_quiet.c", + }, + .flags = &flags, + }); + lib.installHeader(dep_c.path("build/Linux-x86_64-GCC/platform.h"), "platform.h"); + } + + lib.root_module.addCMacro("SOFTFLOAT_ROUND_ODD", ""); + lib.root_module.addCMacro("INLINE_LEVEL", "5"); + + if (t.cpu.arch.isX86()) { + lib.root_module.addCMacro("SOFTFLOAT_FAST_INT64", ""); + lib.root_module.addCMacro("SOFTFLOAT_FAST_DIV32TO16", ""); + lib.root_module.addCMacro("SOFTFLOAT_FAST_DIV64TO32", ""); + } + + lib.installHeadersDirectory(dep_c.path("source/include"), "", .{ + .include_extensions = &.{".h"}, + }); + + lib.linkLibC(); + + b.installArtifact(lib); +} diff --git a/vere/ext/softfloat/build.zig.zon b/vere/ext/softfloat/build.zig.zon new file mode 100644 index 0000000..11f753d --- /dev/null +++ b/vere/ext/softfloat/build.zig.zon @@ -0,0 +1,13 @@ +.{ + .name = "softfloat", + .version = "0.0.1", + .dependencies = .{ + .softfloat = .{ + .url = "https://github.com/ucb-bar/berkeley-softfloat-3/archive/5c06db33fc1e2130f67c045327b0ec949032df1d.tar.gz", + .hash = "N-V-__8AAJjNHACk0uvy2j8WATPrbK9KmbnnuYeYIN6PO9nl", + }, + }, + .paths = .{ + "", + }, +} diff --git a/vere/ext/unwind/build.zig b/vere/ext/unwind/build.zig new file mode 100644 index 0000000..95b1939 --- /dev/null +++ b/vere/ext/unwind/build.zig @@ -0,0 +1,262 @@ +const std = @import("std"); + +pub fn build(b: *std.Build) !void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + const t = target.result; + + const dep_c = b.dependency("unwind", .{ + .target = target, + .optimize = optimize, + }); + + const lib = b.addStaticLibrary(.{ + .name = "unwind", + .target = target, + .optimize = optimize, + }); + + lib.linkLibC(); + + lib.root_module.addCMacro("HAVE_CONFIG_H", ""); + lib.root_module.addCMacro("_GNU_SOURCE", ""); + lib.root_module.addCMacro("NDEBUG", ""); + lib.root_module.addCMacro("__EXTENSIONS__", ""); + + const config_h = b.addConfigHeader(.{ + .style = .blank, + .include_path = "config.h", + }, .{ + .CONFIG_BLOCK_SIGNALS = "", + .CONFIG_DEBUG_FRAME = "", + .CONFIG_MSABI_SUPPORT = null, + .CONFIG_WEAK_BACKTRACE = 1, + .CONSERVATIVE_CHECKS = 1, + .HAVE_ASM_PTRACE_H = 1, + .HAVE_ASM_PTRACE_OFFSETS_H = null, + .HAVE_ASM_VSYSCALL_H = null, + .HAVE_BYTESWAP_H = 1, + .HAVE_DECL_PTRACE_CONT = 1, + .HAVE_DECL_PTRACE_POKEDATA = 1, + .HAVE_DECL_PTRACE_POKEUSER = 1, + .HAVE_DECL_PTRACE_SETREGSET = 1, + .HAVE_DECL_PTRACE_SINGLESTEP = 1, + .HAVE_DECL_PTRACE_SYSCALL = 1, + .HAVE_DECL_PTRACE_TRACEME = 1, + .HAVE_DECL_PT_CONTINUE = 1, + .HAVE_DECL_PT_GETFPREGS = 0, + .HAVE_DECL_PT_GETREGS = 0, + .HAVE_DECL_PT_IO = 0, + .HAVE_DECL_PT_STEP = 1, + .HAVE_DECL_PT_SYSCALL = 1, + .HAVE_DECL_PT_TRACE_ME = 1, + .HAVE_DLFCN_H = 1, + .HAVE_DLMODINFO = null, + .HAVE_DL_ITERATE_PHDR = 1, + .HAVE_DL_PHDR_REMOVALS_COUNTER = null, + .HAVE_ELF_FPREGSET_T = 1, + .HAVE_ELF_H = 1, + .HAVE_ENDIAN_H = 1, + .HAVE_EXECINFO_H = 1, + .HAVE_EXECVPE = 1, + .HAVE_GETUNWIND = null, + .HAVE_IA64INTRIN_H = null, + .HAVE_INTTYPES_H = 1, + .HAVE_LINK_H = 1, + .HAVE_LZMA = null, + .HAVE_MEMORY_H = 1, + .HAVE_MINCORE = 1, + .HAVE_PIPE2 = 1, + .HAVE_PROCFS_STATUS = null, + .HAVE_SIGALTSTACK = 1, + .HAVE_SIGNAL_H = 1, + .HAVE_STDINT_H = 1, + .HAVE_STDLIB_H = 1, + .HAVE_STRINGS_H = 1, + .HAVE_STRING_H = 1, + .HAVE_STRUCT_DL_PHDR_INFO_DLPI_SUBS = 1, + .HAVE_STRUCT_ELF_PRSTATUS = 1, + .HAVE_STRUCT_PRSTATUS = null, + .HAVE_SYS_ELF_H = 1, + .HAVE_SYS_ENDIAN_H = null, + .HAVE_SYS_LINK_H = null, + .HAVE_SYS_PARAM_H = 1, + .HAVE_SYS_PROCFS_H = 1, + .HAVE_SYS_PTRACE_H = 1, + .HAVE_SYS_STAT_H = 1, + .HAVE_SYS_SYSCALL_H = 1, + .HAVE_SYS_TYPES_H = 1, + .HAVE_SYS_UC_ACCESS_H = null, + .HAVE_TTRACE = null, + .HAVE_UNISTD_H = 1, + .HAVE_ZLIB = null, + .HAVE__BUILTIN_UNREACHABLE = 1, + .HAVE__BUILTIN___CLEAR_CACHE = 1, + .HAVE___CACHE_PER_THREAD = null, + .LT_OBJDIR = ".libs/", + .PACKAGE = "libunwind", + .PACKAGE_BUGREPORT = "https://github.com/libunwind/libunwind", + .PACKAGE_NAME = "libunwind", + .PACKAGE_STRING = "libunwind 1.8.1", + .PACKAGE_TARNAME = "libunwind", + .PACKAGE_URL = "", + .PACKAGE_VERSION = "1.8.1", + .SIZEOF_OFF_T = 8, + .STDC_HEADERS = 1, + .VERSION = "1.8.1", + .@"const" = null, + .@"inline" = null, + .size_t = null, + }); + + const libunwind_h = b.addConfigHeader(.{ + .style = .{ + .cmake = dep_c.path("include/libunwind.h.in"), + }, + .include_path = "libunwind.h", + }, .{ .arch = @tagName(t.cpu.arch) }); + + const libunwind_i_h = b.addConfigHeader(.{ + .style = .{ + .cmake = dep_c.path("include/tdep/libunwind_i.h.in"), + }, + .include_path = "tdep/libunwind_i.h", + }, .{ .arch = @tagName(t.cpu.arch) }); + + const libunwind_common_h = b.addConfigHeader(.{ + .style = .{ + .cmake = dep_c.path("include/libunwind-common.h.in"), + }, + .include_path = "libunwind-common.h", + }, .{ .PKG_MAJOR = 1, .PKG_MINOR = 8, .PKG_EXTRA = 1 }); + + lib.addConfigHeader(config_h); + lib.addConfigHeader(libunwind_h); + lib.addConfigHeader(libunwind_i_h); + lib.addConfigHeader(libunwind_common_h); + lib.addIncludePath(dep_c.path("src")); + lib.addIncludePath(dep_c.path("include")); + if (t.cpu.arch.isAARCH64()) + lib.addIncludePath(dep_c.path("include/tdep-aarch64")); + if (t.cpu.arch == .x86_64) + lib.addIncludePath(dep_c.path("include/tdep-x86_64")); + + var srcs = std.ArrayList([]const u8).init(b.allocator); + defer srcs.deinit(); + + try srcs.appendSlice(&.{ + // libunwind.la + "os-linux.c", + "dl-iterate-phdr.c", + "mi/init.c", + "mi/flush_cache.c", + "mi/mempool.c", + "mi/strerror.c", + "mi/backtrace.c", + "mi/dyn-cancel.c", + "mi/dyn-info-list.c", + "mi/dyn-register.c", + "mi/Laddress_validator.c", + "mi/Ldestroy_addr_space.c", + "mi/Ldyn-extract.c", + "mi/Lfind_dynamic_proc_info.c", + "mi/Lget_accessors.c", + "mi/Lget_fpreg.c", + "mi/Lset_fpreg.c", + "mi/Lget_proc_info_by_ip.c", + "mi/Lget_proc_name.c", + "mi/Lget_reg.c", + "mi/Lput_dynamic_unwind_info.c", + "mi/Lset_cache_size.c", + "mi/Lset_caching_policy.c", + "mi/Lset_iterate_phdr_function.c", + "mi/Lset_reg.c", + "mi/Lget_elf_filename.c", + // libunwind-dwarf-local.la + "dwarf/Lexpr.c", + "dwarf/Lfde.c", + "dwarf/Lfind_proc_info-lsb.c", + "dwarf/Lfind_unwind_table.c", + "dwarf/Lget_proc_info_in_range.c", + "dwarf/Lparser.c", + "dwarf/Lpe.c", + // libunwind-dwarf-common.la + "dwarf/global.c", + // libunwind-elf64.la + "elf64.c", + }); + + if (t.cpu.arch.isAARCH64()) + try srcs.appendSlice(&.{ + "aarch64/is_fpreg.c", + "aarch64/regname.c", + "aarch64/Los-linux.c", + "aarch64/getcontext.S", + "aarch64/Lapply_reg_state.c", + "aarch64/Lcreate_addr_space.c", + "aarch64/Lget_proc_info.c", + "aarch64/Lget_save_loc.c", + "aarch64/Lglobal.c", + "aarch64/Linit.c", + "aarch64/Linit_local.c", + "aarch64/Linit_remote.c", + "aarch64/Lis_signal_frame.c", + "aarch64/Lregs.c", + "aarch64/Lreg_states_iterate.c", + "aarch64/Lresume.c", + "aarch64/Lstash_frame.c", + "aarch64/Lstep.c", + "aarch64/Ltrace.c", + // "aarch64/longjmp.S", + // "aarch64/setcontext.S", + // "aarch64/siglongjmp.S", + }); + + if (t.cpu.arch == .x86_64) + try srcs.appendSlice(&.{ + "x86_64/is_fpreg.c", + "x86_64/regname.c", + "x86_64/Los-linux.c", + "x86_64/getcontext.S", + "x86_64/Lapply_reg_state.c", + "x86_64/Lcreate_addr_space.c", + "x86_64/Lget_proc_info.c", + "x86_64/Lget_save_loc.c", + "x86_64/Lglobal.c", + "x86_64/Linit.c", + "x86_64/Linit_local.c", + "x86_64/Linit_remote.c", + "x86_64/Lregs.c", + "x86_64/Lreg_states_iterate.c", + "x86_64/Lresume.c", + "x86_64/Lstash_frame.c", + "x86_64/Lstep.c", + "x86_64/Ltrace.c", + // "x86_64/longjmp.S", + "x86_64/setcontext.S", + // "x86_64/siglongjmp.S", + }); + + lib.addCSourceFiles(.{ + .root = dep_c.path("src"), + .files = srcs.items, + .flags = &.{ + "-fno-sanitize=all", + "-fexceptions", + "-Wall", + "-Wsign-compare", + }, + }); + + lib.installConfigHeader(libunwind_h); + lib.installConfigHeader(libunwind_common_h); + lib.installHeadersDirectory(dep_c.path("include"), "", .{ + .include_extensions = &.{ + "libunwind-x86_64.h", + "libunwind-aarch64.h", + "libunwind-dynamic.h", + }, + }); + + b.installArtifact(lib); +} diff --git a/vere/ext/unwind/build.zig.zon b/vere/ext/unwind/build.zig.zon new file mode 100644 index 0000000..5ebfff4 --- /dev/null +++ b/vere/ext/unwind/build.zig.zon @@ -0,0 +1,13 @@ +.{ + .name = "unwind", + .version = "0.0.1", + .dependencies = .{ + .unwind = .{ + .url = "https://github.com/libunwind/libunwind/archive/7cc4c20fbcf65a9c855fb9d950fad8d0e29b092e.tar.gz", + .hash = "N-V-__8AAA54RADHKA70ncWBovi6ApxYOAQQubuxcBr6y6Ey", + }, + }, + .paths = .{ + "", + }, +} diff --git a/vere/ext/urcrypt/build.zig b/vere/ext/urcrypt/build.zig new file mode 100644 index 0000000..88eafa7 --- /dev/null +++ b/vere/ext/urcrypt/build.zig @@ -0,0 +1,513 @@ +const std = @import("std"); + +pub fn build(b: *std.Build) void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + + const openssl = b.dependency("openssl", .{ + .target = target, + .optimize = optimize, + }); + + const dep_c = b.dependency("urcrypt", .{ + .target = target, + .optimize = optimize, + }); + + const lib = b.addStaticLibrary(.{ + .name = "urcrypt", + .target = target, + .optimize = optimize, + }); + + lib.linkLibC(); + + lib.linkLibrary(libsecp256k1(b, target, optimize)); + lib.linkLibrary(libargon2(b, target, optimize)); + lib.linkLibrary(libblake3(b, target, optimize)); + lib.linkLibrary(libed25519(b, target, optimize)); + lib.linkLibrary(libge_additions(b, target, optimize)); + lib.linkLibrary(libkeccak_tiny(b, target, optimize)); + lib.linkLibrary(libmonocypher(b, target, optimize)); + lib.linkLibrary(libscrypt(b, target, optimize)); + + lib.linkLibrary(libaes_siv(b, target, optimize)); + lib.linkLibrary(openssl.artifact("ssl")); + lib.linkLibrary(openssl.artifact("crypto")); + + lib.addIncludePath(dep_c.path("urcrypt")); + + lib.addCSourceFiles(.{ + .root = dep_c.path("urcrypt"), + .files = &.{ + "aes_cbc.c", + "aes_ecb.c", + "aes_siv.c", + "argon.c", + "blake3.c", + "chacha.c", + "ed25519.c", + "ge_additions.c", + "keccak.c", + "ripemd.c", + "scrypt.c", + "secp256k1.c", + "sha.c", + "util.c", + }, + .flags = &.{ + "-O2", + "-fno-omit-frame-pointer", + "-fno-sanitize=all", + "-g", + "-Wall", + }, + }); + + lib.installHeader(dep_c.path("urcrypt/urcrypt.h"), "urcrypt.h"); + + b.installArtifact(lib); +} + +fn libaes_siv( + b: *std.Build, + target: std.Build.ResolvedTarget, + optimize: std.builtin.OptimizeMode, +) *std.Build.Step.Compile { + const openssl = b.dependency("openssl", .{ + .target = target, + .optimize = optimize, + }); + + const dep_c = b.dependency("aes_siv", .{ + .target = target, + .optimize = optimize, + }); + + const lib = b.addStaticLibrary(.{ + .name = "aes_siv", + .target = target, + .optimize = optimize, + }); + + lib.linkLibrary(openssl.artifact("ssl")); + lib.linkLibrary(openssl.artifact("crypto")); + + const config_h = b.addConfigHeader(.{ + .style = .blank, + .include_path = "config.h", + }, .{}); + lib.addConfigHeader(config_h); + lib.addIncludePath(dep_c.path("")); + lib.addCSourceFiles(.{ + .root = dep_c.path(""), + .files = &.{ + "aes_siv.c", + }, + .flags = &.{ + "-O2", + "-fno-omit-frame-pointer", + "-fno-sanitize=all", + }, + }); + + lib.installHeader(dep_c.path("aes_siv.h"), "aes_siv.h"); + + lib.linkLibC(); + + return lib; +} + +fn libsecp256k1( + b: *std.Build, + target: std.Build.ResolvedTarget, + optimize: std.builtin.OptimizeMode, +) *std.Build.Step.Compile { + const dep_c = b.dependency("secp256k1", .{ + .target = target, + .optimize = optimize, + }); + + const lib = b.addStaticLibrary(.{ + .name = "secp256k1", + .target = target, + .optimize = optimize, + }); + + lib.linkLibC(); + + lib.addIncludePath(dep_c.path("src")); + + lib.addCSourceFiles(.{ + .root = dep_c.path("src"), + .files = &.{ + "precomputed_ecmult.c", + "precomputed_ecmult_gen.c", + "secp256k1.c", + }, + .flags = &.{ + "-fno-sanitize=all", + "-g", + "-O2", + "-fno-omit-frame-pointer", + "-std=c89", + "-pedantic", + "-Wno-long-long", + "-Wnested-externs", + "-Wshadow", + "-Wstrict-prototypes", + "-Wundef", + "-Wno-overlength-strings", + "-Wall", + "-Wno-unused-function", + "-Wextra", + "-Wcast-align", + "-Wconditional-uninitialized", + "-fvisibility=hidden", + + // "-DHAVE_CONFIG_H", + // "-dexhaustive_test_ORDER=7", + "-DECMULT_WINDOW_SIZE=15", + "-DCOMB_BLOCKS=43", + "-DCOMB_TEETH=6", + "-DENABLE_MODULE_ELLSWIFT=1", + "-DENABLE_MODULE_SCHNORRSIG=1", + "-DENABLE_MODULE_EXTRAKEYS=1", + "-DENABLE_MODULE_RECOVERY=1", + "-DENABLE_MODULE_ECDH=1", + }, + }); + + lib.installHeadersDirectory(dep_c.path("include"), "", .{}); + + return lib; +} + +fn libargon2( + b: *std.Build, + target: std.Build.ResolvedTarget, + optimize: std.builtin.OptimizeMode, +) *std.Build.Step.Compile { + const dep_c = b.dependency("urcrypt", .{ + .target = target, + .optimize = optimize, + }); + + const lib = b.addStaticLibrary(.{ + .name = "argon2", + .target = target, + .optimize = optimize, + }); + + lib.linkLibC(); + + const flags = .{ + "-O2", + "-fno-omit-frame-pointer", + "-fno-sanitize=all", + "-Wno-unused-value", + "-Wno-unused-function", + "-DARGON2_NO_THREADS", + }; + + const common_files = .{ + "src/argon2.c", + "src/core.c", + "src/blake2/blake2b.c", + "src/encoding.c", + "src/thread.c", + }; + + lib.addIncludePath(dep_c.path("argon2/include")); + lib.addIncludePath(dep_c.path("argon2/src")); + lib.addIncludePath(dep_c.path("argon2/src/blake2")); + + if (target.result.cpu.arch == .x86_64) { + lib.addCSourceFiles(.{ + .root = dep_c.path("argon2"), + .files = &(common_files ++ .{"src/opt.c"}), + .flags = &flags, + }); + } else { + lib.addCSourceFiles(.{ + .root = dep_c.path("argon2"), + .files = &(common_files ++ .{"src/ref.c"}), + .flags = &flags, + }); + } + + lib.installHeader(dep_c.path("argon2/include/argon2.h"), "argon2.h"); + lib.installHeader(dep_c.path("argon2/src/blake2/blake2.h"), "blake2.h"); + + return lib; +} + +fn libblake3( + b: *std.Build, + target: std.Build.ResolvedTarget, + optimize: std.builtin.OptimizeMode, +) *std.Build.Step.Compile { + const dep_c = b.dependency("urcrypt", .{ + .target = target, + .optimize = optimize, + }); + + const lib = b.addStaticLibrary(.{ + .name = "blake3", + .target = target, + .optimize = optimize, + }); + + lib.linkLibC(); + + const common_files = .{ + "blake3.c", + "blake3_dispatch.c", + "blake3_portable.c", + }; + + lib.addIncludePath(dep_c.path("blake3")); + + if (target.result.cpu.arch == .x86_64) { + lib.addCSourceFiles(.{ + .root = dep_c.path("blake3"), + .files = &(common_files ++ .{ + "blake3_sse2_x86-64_unix.S", + "blake3_sse41_x86-64_unix.S", + "blake3_avx2_x86-64_unix.S", + "blake3_avx512_x86-64_unix.S", + }), + .flags = &.{ + "-O2", + "-fno-omit-frame-pointer", + "-fno-sanitize=all", + }, + }); + } else { + lib.addCSourceFiles(.{ + .root = dep_c.path("blake3"), + .files = &(common_files ++ .{"blake3_neon.c"}), + .flags = &.{ + "-O2", + "-fno-omit-frame-pointer", + "-fno-sanitize=all", + "-DBLAKE3_USE_NEON=1", + }, + }); + } + + lib.installHeader(dep_c.path("blake3/blake3.h"), "blake3.h"); + lib.installHeader(dep_c.path("blake3/blake3_impl.h"), "blake3_impl.h"); + + return lib; +} + +fn libed25519( + b: *std.Build, + target: std.Build.ResolvedTarget, + optimize: std.builtin.OptimizeMode, +) *std.Build.Step.Compile { + const dep_c = b.dependency("urcrypt", .{ + .target = target, + .optimize = optimize, + }); + + const lib = b.addStaticLibrary(.{ + .name = "ed25519", + .target = target, + .optimize = optimize, + }); + + lib.linkLibC(); + + lib.addIncludePath(dep_c.path("ed25519/src")); + + lib.addCSourceFiles(.{ + .root = dep_c.path("ed25519"), + .files = &.{ + "src/add_scalar.c", + "src/fe.c", + "src/ge.c", + "src/keypair.c", + "src/key_exchange.c", + "src/sc.c", + "src/seed.c", + "src/sha512.c", + "src/sign.c", + "src/verify.c", + }, + .flags = &.{ + "-O2", + "-fno-omit-frame-pointer", + "-fno-sanitize=all", + "-Wno-unused-result", + }, + }); + + lib.installHeadersDirectory(dep_c.path("ed25519/src"), "", .{ + .include_extensions = &.{".h"}, + }); + + return lib; +} + +fn libge_additions( + b: *std.Build, + target: std.Build.ResolvedTarget, + optimize: std.builtin.OptimizeMode, +) *std.Build.Step.Compile { + const dep_c = b.dependency("urcrypt", .{ + .target = target, + .optimize = optimize, + }); + + const lib = b.addStaticLibrary(.{ + .name = "ge_additions", + .target = target, + .optimize = optimize, + }); + + lib.linkLibC(); + + lib.addIncludePath(dep_c.path("ed25519/src")); + lib.addIncludePath(dep_c.path("ge-additions")); + + lib.addCSourceFiles(.{ + .root = dep_c.path("ge-additions"), + .files = &.{"ge-additions.c"}, + .flags = &.{ + "-O2", + "-fno-omit-frame-pointer", + "-fno-sanitize=all", + "-Werror", + "-pedantic", + "-std=gnu99", + }, + }); + + lib.installHeader(dep_c.path("ge-additions/ge-additions.h"), "ge-additions.h"); + + return lib; +} + +fn libkeccak_tiny( + b: *std.Build, + target: std.Build.ResolvedTarget, + optimize: std.builtin.OptimizeMode, +) *std.Build.Step.Compile { + const dep_c = b.dependency("urcrypt", .{ + .target = target, + .optimize = optimize, + }); + + const lib = b.addStaticLibrary(.{ + .name = "keccak_tiny", + .target = target, + .optimize = optimize, + }); + + lib.linkLibC(); + + lib.addIncludePath(dep_c.path("keccak-tiny")); + + lib.addCSourceFiles(.{ + .root = dep_c.path("keccak-tiny"), + .files = &.{"keccak-tiny.c"}, + .flags = &.{ + "-O2", + "-fno-omit-frame-pointer", + "-fno-sanitize=all", + "-std=c11", + "-Wextra", + "-Wpedantic", + "-Wall", + }, + }); + + lib.installHeader(dep_c.path("keccak-tiny/keccak-tiny.h"), "keccak-tiny.h"); + + return lib; +} + +fn libmonocypher( + b: *std.Build, + target: std.Build.ResolvedTarget, + optimize: std.builtin.OptimizeMode, +) *std.Build.Step.Compile { + const dep_c = b.dependency("urcrypt", .{ + .target = target, + .optimize = optimize, + }); + + const lib = b.addStaticLibrary(.{ + .name = "monocypher", + .target = target, + .optimize = optimize, + }); + + lib.linkLibC(); + + lib.addIncludePath(dep_c.path("monocypher")); + + lib.addCSourceFiles(.{ + .root = dep_c.path("monocypher"), + .files = &.{"monocypher.c"}, + .flags = &.{ + "-O2", + "-fno-omit-frame-pointer", + "-fno-sanitize=all", + }, + }); + + lib.installHeader(dep_c.path("monocypher/monocypher.h"), "monocypher.h"); + + return lib; +} + +fn libscrypt( + b: *std.Build, + target: std.Build.ResolvedTarget, + optimize: std.builtin.OptimizeMode, +) *std.Build.Step.Compile { + const dep_c = b.dependency("urcrypt", .{ + .target = target, + .optimize = optimize, + }); + + const lib = b.addStaticLibrary(.{ + .name = "scrypt", + .target = target, + .optimize = optimize, + }); + + lib.linkLibC(); + + lib.addIncludePath(dep_c.path("scrypt")); + + lib.addCSourceFiles(.{ + .root = dep_c.path("scrypt"), + .files = &.{ + "b64.c", + "crypto-mcf.c", + "crypto-scrypt-saltgen.c", + "crypto_scrypt-check.c", + "crypto_scrypt-hash.c", + "crypto_scrypt-hexconvert.c", + "crypto_scrypt-nosse.c", + // "main.c", + "sha256.c", + "slowequals.c", + }, + .flags = &.{ + "-O2", + "-fno-omit-frame-pointer", + "-fno-sanitize=all", + "-D_FORTIFY_SOURCE=2", + }, + }); + + lib.installHeader(dep_c.path("scrypt/libscrypt.h"), "libscrypt.h"); + lib.installHeader(dep_c.path("scrypt/sha256.h"), "sha256.h"); + + return lib; +} diff --git a/vere/ext/urcrypt/build.zig.zon b/vere/ext/urcrypt/build.zig.zon new file mode 100644 index 0000000..e32b027 --- /dev/null +++ b/vere/ext/urcrypt/build.zig.zon @@ -0,0 +1,24 @@ +.{ + .name = "urcrypt", + .version = "0.0.1", + .dependencies = .{ + .aes_siv = .{ + .url = "https://github.com/dfoxfranke/libaes_siv/archive/9681279cfaa6e6399bb7ca3afbbc27fc2e19df4b.tar.gz", + .hash = "N-V-__8AADRgAQComAaFJaS9o75BOcaFVew6nO8D7ZTGMRXd", + }, + .openssl = .{ + .path = "../openssl", + }, + .secp256k1 = .{ + .url = "https://github.com/bitcoin-core/secp256k1/archive/refs/tags/v0.5.1.tar.gz", + .hash = "N-V-__8AAJ4DSwC7aDpt90TmGPWKAI6q4-titwp4M0zsZ2vY", + }, + .urcrypt = .{ + .url = "https://github.com/urbit/urcrypt/archive/465aad6262f2710f76f75adfe74effb5751c5ab3.tar.gz", + .hash = "N-V-__8AAL3OSQDA9xQasK60FkxcKuQoSANeWy_f9SxmxX1X", + }, + }, + .paths = .{ + "", + }, +} diff --git a/vere/ext/wasm3/build.zig b/vere/ext/wasm3/build.zig new file mode 100644 index 0000000..2c5c833 --- /dev/null +++ b/vere/ext/wasm3/build.zig @@ -0,0 +1,87 @@ +const std = @import("std"); + +pub fn build(b: *std.Build) void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + const t = target.result; + + const softfloat = b.dependency("softfloat", .{ + .target = target, + .optimize = optimize, + }); + + const wasm3_c = b.dependency("wasm3", .{ + .target = target, + .optimize = optimize, + }); + + const wasm3 = b.addStaticLibrary(.{ + .name = "wasm3", + .target = target, + .optimize = optimize, + }); + + wasm3.linkLibC(); + + wasm3.addIncludePath(wasm3_c.path("source/")); + + const common_flags = [_][]const u8{ + "-std=c99", + "-Wall", + "-Wextra", + "-Wparentheses", + "-Wundef", + "-Wpointer-arith", + "-Wstrict-aliasing=2", + "-Werror=implicit-function-declaration", + "-fno-sanitize=all", + // "-fsanitize=undefined", + // "-fno-sanitize-trap=undefined", + }; + + const mac_flags = common_flags ++ [_][]const u8{ + "-fPIC", + "-c", + }; + + wasm3.addCSourceFiles(.{ + .root = wasm3_c.path("source/"), + .files = &.{ + "m3_bind.c", + "m3_code.c", + "m3_compile.c", + "m3_core.c", + "m3_emit.c", + "m3_env.c", + "m3_exec.c", + "m3_function.c", + "m3_info.c", + "m3_module.c", + "m3_parse.c", + "m3_validate.c", + }, + .flags = if (t.os.tag == .macos) &mac_flags else &common_flags, + }); + + wasm3.installHeader(wasm3_c.path("source/m3_config_platforms.h"), "m3_config_platforms.h"); + wasm3.installHeader(wasm3_c.path("source/m3_bind.h"), "m3_bind.h"); + wasm3.installHeader(wasm3_c.path("source/m3_code.h"), "m3_code.h"); + wasm3.installHeader(wasm3_c.path("source/m3_compile.h"), "m3_compile.h"); + wasm3.installHeader(wasm3_c.path("source/m3_config.h"), "m3_config.h"); + wasm3.installHeader(wasm3_c.path("source/m3_core.h"), "m3_core.h"); + wasm3.installHeader(wasm3_c.path("source/m3_emit.h"), "m3_emit.h"); + wasm3.installHeader(wasm3_c.path("source/m3_env.h"), "m3_env.h"); + wasm3.installHeader(wasm3_c.path("source/m3_exception.h"), "m3_exception.h"); + wasm3.installHeader(wasm3_c.path("source/m3_exec.h"), "m3_exec.h"); + wasm3.installHeader(wasm3_c.path("source/m3_exec_defs.h"), "m3_exec_defs.h"); + wasm3.installHeader(wasm3_c.path("source/m3_function.h"), "m3_function.h"); + wasm3.installHeader(wasm3_c.path("source/m3_info.h"), "m3_info.h"); + wasm3.installHeader(wasm3_c.path("source/m3_math_utils.h"), "m3_math_utils.h"); + wasm3.installHeader(wasm3_c.path("source/wasm3.h"), "wasm3.h"); + wasm3.installHeader(wasm3_c.path("source/wasm3_defs.h"), "wasm3_defs.h"); + wasm3.installHeader(wasm3_c.path("source/m3_validate.h"), "m3_validate.h"); + + wasm3.linkLibrary(softfloat.artifact("softfloat")); + + b.installArtifact(wasm3); +} diff --git a/vere/ext/wasm3/build.zig.zon b/vere/ext/wasm3/build.zig.zon new file mode 100644 index 0000000..d669115 --- /dev/null +++ b/vere/ext/wasm3/build.zig.zon @@ -0,0 +1,17 @@ +.{ + .name = "wasm3", + .version = "0.0.1", + .dependencies = .{ + .softfloat = .{ + .path = "../softfloat", + }, + .wasm3 = .{ + // .path = "../../../../wasm3" + .url = "https://github.com/urbit/wasm3/archive/5b74cbca01793cda71ebf707b0587616c32cc88c.tar.gz", + .hash = "N-V-__8AAMKiSAAPsGJG0ZVtc2hM3b-E6BnkoNexgXv1k0uD", + }, + }, + .paths = .{ + "", + }, +} \ No newline at end of file diff --git a/vere/ext/whereami/build.zig b/vere/ext/whereami/build.zig new file mode 100644 index 0000000..12419b2 --- /dev/null +++ b/vere/ext/whereami/build.zig @@ -0,0 +1,33 @@ +const std = @import("std"); + +pub fn build(b: *std.Build) void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + + const dep_c = b.dependency("whereami", .{ + .target = target, + .optimize = optimize, + }); + + const lib = b.addStaticLibrary(.{ + .name = "whereami", + .target = target, + .optimize = optimize, + }); + + lib.linkLibC(); + + lib.addIncludePath(dep_c.path("src")); + + lib.addCSourceFiles(.{ + .root = dep_c.path("src"), + .files = &.{"whereami.c"}, + .flags = &.{ + "-fno-sanitize=all", + }, + }); + + lib.installHeader(dep_c.path("src/whereami.h"), "whereami.h"); + + b.installArtifact(lib); +} diff --git a/vere/ext/whereami/build.zig.zon b/vere/ext/whereami/build.zig.zon new file mode 100644 index 0000000..42cb792 --- /dev/null +++ b/vere/ext/whereami/build.zig.zon @@ -0,0 +1,13 @@ +.{ + .name = "whereami", + .version = "0.0.1", + .dependencies = .{ + .whereami = .{ + .url = "https://github.com/gpakosz/whereami/archive/ba364cd54fd431c76c045393b6522b4bff547f50.tar.gz", + .hash = "N-V-__8AALQtAQBEQG8__NumxBzcv4ws_jGX2zVgxvG6p6gs", + }, + }, + .paths = .{ + "", + }, +} diff --git a/vere/ext/wslay/build.zig b/vere/ext/wslay/build.zig new file mode 100644 index 0000000..91dd3b7 --- /dev/null +++ b/vere/ext/wslay/build.zig @@ -0,0 +1,60 @@ +const std = @import("std"); + +const wslay_version = "1.1.1"; + +pub fn build(b: *std.Build) !void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + const t = target.result; + + const wslay_src = b.dependency("wslay", .{ + .target = target, + .optimize = optimize, + }); + + const lib = b.addStaticLibrary(.{ + .name = "wslay", + .target = target, + .optimize = optimize, + }); + + lib.linkLibC(); + + lib.addIncludePath(wslay_src.path("lib")); + lib.addIncludePath(wslay_src.path("lib/includes")); + + var flags = std.ArrayList([]const u8).init(b.allocator); + defer flags.deinit(); + + try flags.append("-fno-sanitize=all"); + try flags.append(b.fmt("-DWSLAY_VERSION=\\\"{s}\\\"", .{wslay_version})); + + if (t.os.tag == .windows) { + try flags.append("-DHAVE_WINSOCK2_H=1"); + } else { + try flags.append("-DHAVE_ARPA_INET_H=1"); + try flags.append("-DHAVE_NETINET_IN_H=1"); + } + + if (t.cpu.arch.endian() == .big) { + try flags.append("-DWORDS_BIGENDIAN=1"); + } + + lib.addCSourceFiles(.{ + .root = wslay_src.path("lib"), + .files = &.{ + "wslay_event.c", + "wslay_frame.c", + "wslay_net.c", + "wslay_queue.c", + "wslay_stack.c", + }, + .flags = flags.items, + }); + + lib.installHeadersDirectory(wslay_src.path("lib/includes"), "", .{ + .include_extensions = &.{".h"}, + }); + + b.installArtifact(lib); +} diff --git a/vere/ext/wslay/build.zig.zon b/vere/ext/wslay/build.zig.zon new file mode 100644 index 0000000..47f8b12 --- /dev/null +++ b/vere/ext/wslay/build.zig.zon @@ -0,0 +1,13 @@ +.{ + .name = "wslay", + .version = "0.0.1", + .dependencies = .{ + .wslay = .{ + .url = "https://github.com/tatsuhiro-t/wslay/archive/refs/tags/release-1.1.1.tar.gz", + .hash = "N-V-__8AADdLBADNETOk9pvYZ-k7F8a08-U43YCrYSlxu621", + }, + }, + .paths = .{ + "", + }, +} diff --git a/vere/flake.lock b/vere/flake.lock new file mode 100644 index 0000000..03d4e4a --- /dev/null +++ b/vere/flake.lock @@ -0,0 +1,61 @@ +{ + "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1759417375, + "narHash": "sha256-O7eHcgkQXJNygY6AypkF9tFhsoDQjpNEojw3eFs73Ow=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "dc704e6102e76aad573f63b74c742cd96f8f1e6c", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/vere/flake.nix b/vere/flake.nix new file mode 100644 index 0000000..b4ec915 --- /dev/null +++ b/vere/flake.nix @@ -0,0 +1,34 @@ +{ + description = "default devshell"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; + flake-utils.url = "github:numtide/flake-utils"; + # nixops-flake.url = "github:input-output-hk/nixops-flake"; + }; + + outputs = { + self, + nixpkgs, + flake-utils, + # nixops-flake, + ... + }: + flake-utils.lib.eachDefaultSystem + ( + system: let + pkgs = nixpkgs.legacyPackages.${system}; + in { + devShell = pkgs.mkShell { + buildInputs = with pkgs; [ + clang-tools + zig_0_14 + zls + python313 + + # nixops-flake.defaultPackage.${system} + ]; + }; + } + ); +} diff --git a/vere/lldbinit.txt b/vere/lldbinit.txt new file mode 100644 index 0000000..d0f8a83 --- /dev/null +++ b/vere/lldbinit.txt @@ -0,0 +1,4 @@ +pro hand -p true -s false -n false SIGBUS SIGSEGV +p (void)darwin_register_mach_exception_handler() +b u3m_bail +b malloc_error_break diff --git a/vere/pkg/c3/build.zig b/vere/pkg/c3/build.zig new file mode 100644 index 0000000..387a3bc --- /dev/null +++ b/vere/pkg/c3/build.zig @@ -0,0 +1,45 @@ +const std = @import("std"); + +pub fn build(b: *std.Build) void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + + const copts: []const []const u8 = + b.option([]const []const u8, "copt", "") orelse &.{}; + + const pkg_c3 = b.addStaticLibrary(.{ + .name = "c3", + .target = target, + .optimize = optimize, + }); + + if (target.result.os.tag.isDarwin() and !target.query.isNative()) { + const macos_sdk = b.lazyDependency("macos_sdk", .{ + .target = target, + .optimize = optimize, + }); + if (macos_sdk != null) { + pkg_c3.addSystemIncludePath(macos_sdk.?.path("usr/include")); + pkg_c3.addLibraryPath(macos_sdk.?.path("usr/lib")); + pkg_c3.addFrameworkPath(macos_sdk.?.path("System/Library/Frameworks")); + } + } + + pkg_c3.linkLibC(); + + pkg_c3.addIncludePath(b.path("")); + + pkg_c3.addCSourceFiles(.{ + .root = b.path(""), + .files = &.{"defs.c"}, + .flags = copts, + }); + + pkg_c3.installHeader(b.path("c3.h"), "c3/c3.h"); + pkg_c3.installHeader(b.path("defs.h"), "c3/defs.h"); + pkg_c3.installHeader(b.path("motes.h"), "c3/motes.h"); + pkg_c3.installHeader(b.path("portable.h"), "c3/portable.h"); + pkg_c3.installHeader(b.path("types.h"), "c3/types.h"); + + b.installArtifact(pkg_c3); +} diff --git a/vere/pkg/c3/build.zig.zon b/vere/pkg/c3/build.zig.zon new file mode 100644 index 0000000..857a516 --- /dev/null +++ b/vere/pkg/c3/build.zig.zon @@ -0,0 +1,14 @@ +.{ + .name = "c3", + .version = "0.0.1", + .dependencies = .{ + .macos_sdk = .{ + .url = "https://github.com/joseluisq/macosx-sdks/releases/download/14.5/MacOSX14.5.sdk.tar.xz", + .hash = "N-V-__8AAKtK4FMzqcFsY_ZrpMg9bGH0h7BqZDXtVyAerMtM", + .lazy = true, + }, + }, + .paths = .{ + "", + }, +} diff --git a/vere/pkg/c3/c3.h b/vere/pkg/c3/c3.h new file mode 100644 index 0000000..c5a60af --- /dev/null +++ b/vere/pkg/c3/c3.h @@ -0,0 +1,11 @@ +/// @file + +#ifndef C3_H +#define C3_H + +#include "defs.h" +#include "motes.h" +#include "portable.h" +#include "types.h" + +#endif /* ifndef C3_H */ diff --git a/vere/pkg/c3/defs.c b/vere/pkg/c3/defs.c new file mode 100644 index 0000000..24c1d13 --- /dev/null +++ b/vere/pkg/c3/defs.c @@ -0,0 +1,19 @@ +#include "defs.h" + +c3_s +c3_sift_short(c3_y buf_y[2]); +c3_w +c3_sift_word(c3_y buf_y[4]); +c3_d +c3_sift_chub(c3_y byt_y[8]); + +void +c3_etch_short(c3_y buf_y[2], c3_s sot_s); +void +c3_etch_word(c3_y buf_y[4], c3_w wod_w); +void +c3_etch_chub(c3_y byt_y[8], c3_d num_d); + +c3_w c3_align_w(c3_w x, c3_w al, align_dir hilo); +c3_d c3_align_d(c3_d x, c3_d al, align_dir hilo); +void *c3_align_p(void const * p, size_t al, align_dir hilo); diff --git a/vere/pkg/c3/defs.h b/vere/pkg/c3/defs.h new file mode 100644 index 0000000..e527472 --- /dev/null +++ b/vere/pkg/c3/defs.h @@ -0,0 +1,270 @@ +/// @file + +#ifndef C3_DEFS_H +#define C3_DEFS_H + +#include "portable.h" +#include "types.h" +#include + +#include + + /** Loobeans - inverse booleans to match nock. + **/ +# define c3y 0 +# define c3n 1 + +# define _(x) (c3y == (x)) +# define __(x) ((x) ? c3y : c3n) +# define c3a(x, y) __(_(x) && _(y)) +# define c3o(x, y) __(_(x) || _(y)) + + + /** Random useful C macros. + **/ + /* Dessert. Debug assert. If a debugger is attached, it will break in and + execution can be allowed to proceed without aborting the process. + Otherwise, the unhandled SIGTRAP will dump core. + */ +#ifdef C3DBG + #if defined(__i386__) || defined(__x86_64__) + #define c3_dessert(x) do { if(!(x)) __asm__ volatile("int $3"); } while (0) + #elif defined(__thumb__) + #define c3_dessert(x) do { if(!(x)) __asm__ volatile(".inst 0xde01"); } while (0) + #elif defined(__aarch64__) + #define c3_dessert(x) do { if(!(x)) __asm__ volatile(".inst 0xd4200000"); } while (0) + #elif defined(__arm__) + #define c3_dessert(x) do { if(!(x)) __asm__ volatile(".inst 0xe7f001f0"); } while (0) + #else + STATIC_ASSERT(0, "debugger break instruction unimplemented"); + #endif +#else + #define c3_dessert(x) ((void)(0)) +#endif + + /* Stub. + */ +# define c3_stub u3_assert(!"stub") + + /* Size in words. + */ +# define c3_wiseof(x) (((sizeof (x)) + 3) >> 2) + + /* Bit counting. + */ +#if (32 == (CHAR_BIT * __SIZEOF_INT__)) +# define c3_lz_w __builtin_clz +# define c3_tz_w __builtin_ctz +# define c3_pc_w __builtin_popcount +#elif (32 == (CHAR_BIT * __SIZEOF_LONG__)) +# define c3_lz_w __builtin_clzl +# define c3_tz_w __builtin_ctzl +# define c3_pc_w __builtin_popcountl +#else +# error "port me" +#endif + +# define c3_bits_word(w) ((w) ? (32 - c3_lz_w(w)) : 0) + + /* Min and max. + */ +# define c3_max(x, y) ( ((x) > (y)) ? (x) : (y) ) +# define c3_min(x, y) ( ((x) < (y)) ? (x) : (y) ) + + +//! Round up/down (respectively). +//! +//! @param[in] x Integer to round. +//! @param[in] n Multiple to round to. Must be power of 2. +//! +//! @return `x` rounded to the nearest multiple of `n`. +# define c3_rop(x, n) (((x) + ((n) - 1)) & (~((n) - 1))) +# define c3_rod(x, n) ((x) & ~((n) - 1)) + + /* Rotate. + */ +# define c3_rotw(r, x) ( ((x) << (r)) | ((x) >> (32 - (r))) ) + + /* Fill 16 words (64 bytes) with high-quality entropy. + */ + void + c3_rand(c3_w* rad_w); + + /* Short integers. + */ +# define c3_s1(a) ( (a) ) +# define c3_s2(a, b) ( ((b) << 8) | c3_s1(a) ) +# define c3_s3(a, b, c) ( ((c) << 16) | c3_s2(a, b) ) +# define c3_s4(a, b, c, d) ( ((d) << 24) | c3_s3(a, b, c) ) + +# define c3_s5(a, b, c, d, e) \ + ( ((uint64_t)c3_s1(e) << 32ULL) | c3_s4(a, b, c, d) ) +# define c3_s6(a, b, c, d, e, f) \ + ( ((uint64_t)c3_s2(e, f) << 32ULL) | c3_s4(a, b, c, d) ) +# define c3_s7(a, b, c, d, e, f, g) \ + ( ((uint64_t)c3_s3(e, f, g) << 32ULL) | c3_s4(a, b, c, d) ) +# define c3_s8(a, b, c, d, e, f, g, h) \ + ( ((uint64_t)c3_s4(e, f, g, h) << 32ULL) | c3_s4(a, b, c, d) ) + + /* Byte-order twiddling. + */ +# define c3_flip32(w) \ + ( (((w) >> 24) & 0xff) \ + | (((w) >> 16) & 0xff) << 8 \ + | (((w) >> 8) & 0xff) << 16 \ + | ( (w) & 0xff) << 24 ) + + inline c3_s + c3_sift_short(c3_y buf_y[2]) + { + return ((c3_s)buf_y[1] << 8 | (c3_s)buf_y[0]); + } + + inline c3_w + c3_sift_word(c3_y buf_y[4]) + { + return ((c3_w)buf_y[3] << 24 | (c3_w)buf_y[2] << 16 | (c3_w)buf_y[1] << 8 | (c3_w)buf_y[0]); + } + + inline c3_d + c3_sift_chub(c3_y byt_y[8]) + { + return (c3_d)byt_y[0] + | (c3_d)byt_y[1] << 8 + | (c3_d)byt_y[2] << 16 + | (c3_d)byt_y[3] << 24 + | (c3_d)byt_y[4] << 32 + | (c3_d)byt_y[5] << 40 + | (c3_d)byt_y[6] << 48 + | (c3_d)byt_y[7] << 56; + } + + inline void + c3_etch_short(c3_y buf_y[2], c3_s sot_s) + { + buf_y[0] = sot_s & 0xff; + buf_y[1] = (sot_s >> 8) & 0xff; + } + + inline void + c3_etch_word(c3_y buf_y[4], c3_w wod_w) + { + buf_y[0] = wod_w & 0xff; + buf_y[1] = (wod_w >> 8) & 0xff; + buf_y[2] = (wod_w >> 16) & 0xff; + buf_y[3] = (wod_w >> 24) & 0xff; + } + + inline void + c3_etch_chub(c3_y byt_y[8], c3_d num_d) + { + byt_y[0] = num_d & 0xff; + byt_y[1] = (num_d >> 8) & 0xff; + byt_y[2] = (num_d >> 16) & 0xff; + byt_y[3] = (num_d >> 24) & 0xff; + byt_y[4] = (num_d >> 32) & 0xff; + byt_y[5] = (num_d >> 40) & 0xff; + byt_y[6] = (num_d >> 48) & 0xff; + byt_y[7] = (num_d >> 56) & 0xff; + } + + /* Asserting allocators. + */ +# define c3_free(s) free(s) +# define c3_malloc(s) ({ \ + void* rut = malloc(s); \ + if ( 0 == rut ) { \ + fprintf(stderr, "c3_malloc(%" PRIu64 ") failed\r\n", \ + (c3_d)s); \ + u3_assert(!"memory lost"); \ + } \ + rut;}) +# define c3_calloc(s) ({ \ + void* rut = calloc(1,s); \ + if ( 0 == rut ) { \ + fprintf(stderr, "c3_calloc(%" PRIu64 ") failed\r\n", \ + (c3_d)s); \ + u3_assert(!"memory lost"); \ + } \ + rut;}) +# define c3_realloc(a, b) ({ \ + void* rut = realloc(a, b); \ + if ( 0 == rut ) { \ + fprintf(stderr, "c3_realloc(%" PRIu64 ") failed\r\n", \ + (c3_d)b); \ + u3_assert(!"memory lost"); \ + } \ + rut;}) + + /* Asserting unix fs wrappers. + ** + ** these all crash the process if passed a non-canonical + ** path (i.e., one containing '.', '..', or the empty path + ** component), so make sure you don't pass them one. if you + ** find yourself fighting with them, then please delete them + ** and do a sed search-and-replace to remove the `c3_` from + ** their call sites; their goal is to decrease maintenance + ** burden, not increase it. + */ + // defined in vere/io/unix.c. + c3_t u3_unix_cane(const c3_c* pax_c); +# define c3_open(a, ...) ({ \ + open(a, __VA_ARGS__);}) +# define c3_opendir(a) ({ \ + opendir(a);}) +# define c3_mkdir(a, b) ({ \ + mkdir(a, b);}) +# define c3_rmdir(a) ({ \ + rmdir(a);}) +# define c3_link(a, b) ({ \ + link(a, b);}) +# define c3_unlink(a) ({ \ + unlink(a);}) +# define c3_fopen(a, b) ({ \ + fopen(a, b);}) +# define c3_remove(a) ({ \ + remove(a);}) +# define c3_rename(a, b) ({ \ + rename(a, b);}) + +/* c3_align( + x - the address/quantity to align, + al - the alignment, + hilo - [C3_ALGHI, C3_ALGLO] high or low align + ) + + hi or lo align x to al + + unless effective type of x is c3_w or c3_d, assumes x is a pointer. +*/ +#define c3_align(x, al, hilo) \ + _Generic((x), \ + c3_w : c3_align_w, \ + c3_d : c3_align_d, \ + default : c3_align_p) \ + (x, al, hilo) +typedef enum { C3_ALGHI=1, C3_ALGLO=0 } align_dir; +inline c3_w +c3_align_w(c3_w x, c3_w al, align_dir hilo) { + c3_dessert(hilo <= C3_ALGHI && hilo >= C3_ALGLO); + x += hilo * (al - 1); + x &= ~(al - 1); + return x; +} +inline c3_d +c3_align_d(c3_d x, c3_d al, align_dir hilo) { + c3_dessert(hilo <= C3_ALGHI && hilo >= C3_ALGLO); + x += hilo * (al - 1); + x &= ~(al - 1); + return x; +} +inline void* +c3_align_p(void const * p, size_t al, align_dir hilo) { + uintptr_t x = (uintptr_t)p; + c3_dessert(hilo <= C3_ALGHI && hilo >= C3_ALGLO); + x += hilo * (al - 1); + x &= ~(al - 1); + return (void*)x; +} + +#endif /* ifndef C3_DEFS_H */ diff --git a/vere/pkg/c3/motes.h b/vere/pkg/c3/motes.h new file mode 100644 index 0000000..86cdccb --- /dev/null +++ b/vere/pkg/c3/motes.h @@ -0,0 +1,1392 @@ +/// @file + +#ifndef C3_MOTES_H +#define C3_MOTES_H + +#include "defs.h" + + /** Definitions. + **/ + +# define c3__a c3_s1('a') +# define c3__a50 c3_s3('a','5','0') +# define c3__abel c3_s4('a','b','e','l') +# define c3__abo c3_s3('a','b','o') +# define c3__actd c3_s4('a','c','t','d') +# define c3__add c3_s3('a','d','d') +# define c3__aka c3_s3('a','k','a') +# define c3__all c3_s3('a','l','l') +# define c3__alrm c3_s4('a','l','r','m') +# define c3__amat c3_s4('a','m','a','t') +# define c3__ames c3_s4('a','m','e','s') +# define c3__and c3_s3('a','n','d') +# define c3__ankh c3_s4('a','n','k','h') +# define c3__any c3_s3('a','n','y') +# define c3__ap c3_s2('a','p') +# define c3__apen c3_s4('a','p','e','n') +# define c3__aro c3_s3('a','r','o') +# define c3__arvo c3_s4('a','r','v','o') +# define c3__ash c3_s3('a','s','h') +# define c3__at c3_s2('a','t') +# define c3__atom c3_s4('a','t','o','m') +# define c3__auth c3_s4('a','u','t','h') +# define c3__auto c3_s4('a','u','t','o') +# define c3__avow c3_s4('a','v','o','w') +# define c3__awry c3_s4('a','w','r','y') +# define c3__ax c3_s2('a','x') +# define c3__axe c3_s3('a','x','e') +# define c3__axil c3_s4('a','x','i','l') +# define c3__axis c3_s4('a','x','i','s') +# define c3__b c3_s1('b') +# define c3__bac c3_s3('b','a','c') +# define c3__bach c3_s4('b','a','c','h') +# define c3__bag c3_s3('b','a','g') +# define c3__bail c3_s4('b','a','i','l') +# define c3__ball c3_s4('b','a','l','l') +# define c3__band c3_s4('b','a','n','d') +# define c3__bank c3_s4('b','a','n','k') +# define c3__bar c3_s3('b','a','r') +# define c3__bark c3_s4('b','a','r','k') +# define c3__barn c3_s4('b','a','r','n') +# define c3__base c3_s4('b','a','s','e') +# define c3__bask c3_s4('b','a','s','k') +# define c3__basp c3_s4('b','a','s','p') +# define c3__bbye c3_s4('b','b','y','e') +# define c3__bcbn c3_s4('b','c','b','n') +# define c3__bcbr c3_s4('b','c','b','r') +# define c3__bccb c3_s4('b','c','c','b') +# define c3__bccn c3_s4('b','c','c','n') +# define c3__bcdg c3_s4('b','c','d','g') +# define c3__bcdt c3_s4('b','c','d','t') +# define c3__bckt c3_s4('b','c','k','t') +# define c3__bclc c3_s4('b','c','l','c') +# define c3__bcmt c3_s4('b','c','m','t') +# define c3__bcpm c3_s4('b','c','p','m') +# define c3__bcpt c3_s4('b','c','p','t') +# define c3__bcsg c3_s4('b','c','s','g') +# define c3__bctr c3_s4('b','c','t','r') +# define c3__bcts c3_s4('b','c','t','s') +# define c3__bczp c3_s4('b','c','z','p') +# define c3__bead c3_s4('b','e','a','d') +# define c3__beam c3_s4('b','e','a','m') +# define c3__bean c3_s4('b','e','a','n') +# define c3__bear c3_s4('b','e','a','r') +# define c3__bede c3_s4('b','e','d','e') +# define c3__bee c3_s3('b','e','e') +# define c3__behn c3_s4('b','e','h','n') +# define c3__bel c3_s3('b','e','l') +# define c3__belt c3_s4('b','e','l','t') +# define c3__bend c3_s4('b','e','n','d') +# define c3__ber c3_s3('b','e','r') +# define c3__bias c3_s4('b','i','a','s') +# define c3__bic c3_s3('b','i','c') +# define c3__bind c3_s4('b','i','n','d') +# define c3__bink c3_s4('b','i','n','k') +# define c3__bird c3_s4('b','i','r','d') +# define c3__bit c3_s3('b','i','t') +# define c3__bl c3_s2('b','l') +# define c3__blan c3_s4('b','l','a','n') +# define c3__blap c3_s4('b','l','a','p') +# define c3__bleb c3_s4('b','l','e','b') +# define c3__blem c3_s4('b','l','e','m') +# define c3__blew c3_s4('b','l','e','w') +# define c3__blin c3_s4('b','l','i','n') +# define c3__blit c3_s4('b','l','i','t') +# define c3__blob c3_s4('b','l','o','b') +# define c3__blob c3_s4('b','l','o','b') +# define c3__blog c3_s4('b','l','o','g') +# define c3__bloq c3_s4('b','l','o','q') +# define c3__blot c3_s4('b','l','o','t') +# define c3__blow c3_s4('b','l','o','w') +# define c3__blue c3_s4('b','l','u','e') +# define c3__blur c3_s4('b','l','u','r') +# define c3__bndl c3_s4('b','n','d','l') +# define c3__bndp c3_s4('b','n','d','p') +# define c3__bnld c3_s4('b','n','l','d') +# define c3__bnnp c3_s4('b','n','n','p') +# define c3__bnpd c3_s4('b','n','p','d') +# define c3__bnps c3_s4('b','n','p','s') +# define c3__bnsp c3_s4('b','n','s','p') +# define c3__boat c3_s4('b','o','a','t') +# define c3__boce c3_s4('b','o','c','e') +# define c3__boil c3_s4('b','o','i','l') +# define c3__boin c3_s4('b','o','i','n') +# define c3__bolt c3_s4('b','o','l','t') +# define c3__bond c3_s4('b','o','n','d') +# define c3__bone c3_s4('b','o','n','e') +# define c3__bong c3_s4('b','o','n','g') +# define c3__book c3_s4('b','o','o','k') +# define c3__bool c3_s4('b','o','o','l') +# define c3__boot c3_s4('b','o','o','t') +# define c3__born c3_s4('b','o','r','n') +# define c3__both c3_s4('b','o','t','h') +# define c3__bout c3_s4('b','o','u','t') +# define c3__box c3_s3('b','o','x') +# define c3__br c3_s2('b','r') +# define c3__bran c3_s4('b','r','a','n') +# define c3__brax c3_s4('b','r','a','x') +# define c3__brbn c3_s4('b','r','b','n') +# define c3__brcb c3_s4('b','r','c','b') +# define c3__brcl c3_s4('b','r','c','l') +# define c3__brcn c3_s4('b','r','c','n') +# define c3__brcs c3_s4('b','r','c','s') +# define c3__brdg c3_s4('b','r','d','g') +# define c3__brdl c3_s4('b','r','d','l') +# define c3__brdp c3_s4('b','r','d','p') +# define c3__brdt c3_s4('b','r','d','t') +# define c3__brhp c3_s4('b','r','h','p') +# define c3__brip c3_s4('b','r','i','p') +# define c3__brkt c3_s4('b','r','k','t') +# define c3__brlc c3_s4('b','r','l','c') +# define c3__brld c3_s4('b','r','l','d') +# define c3__brls c3_s4('b','r','l','s') +# define c3__brms c3_s4('b','r','m','s') +# define c3__brmt c3_s4('b','r','m','t') +# define c3__brnp c3_s4('b','r','n','p') +# define c3__broc c3_s4('b','r','o','c') +# define c3__bron c3_s4('b','r','o','n') +# define c3__brop c3_s4('b','r','o','p') +# define c3__brov c3_s4('b','r','o','v') +# define c3__brpd c3_s4('b','r','p','d') +# define c3__brps c3_s4('b','r','p','s') +# define c3__brrt c3_s4('b','r','r','t') +# define c3__brsg c3_s4('b','r','s','g') +# define c3__brsp c3_s4('b','r','s','p') +# define c3__brtg c3_s4('b','r','t','g') +# define c3__brtr c3_s4('b','r','t','r') +# define c3__brts c3_s4('b','r','t','s') +# define c3__brvt c3_s4('b','r','v','t') +# define c3__brwt c3_s4('b','r','w','t') +# define c3__brzp c3_s4('b','r','z','p') +# define c3__bud c3_s3('b','u','d') +# define c3__bull c3_s4('b','u','l','l') +# define c3__bump c3_s4('b','u','m','p') +# define c3__bund c3_s4('b','u','n','d') +# define c3__bung c3_s4('b','u','n','g') +# define c3__bunk c3_s4('b','u','n','k') +# define c3__bunt c3_s4('b','u','n','t') +# define c3__bunx c3_s4('b','u','n','x') +# define c3__burn c3_s4('b','u','r','n') +# define c3__busk c3_s4('b','u','s','k') +# define c3__bust c3_s4('b','u','s','t') +# define c3__butt c3_s4('b','u','t','t') +# define c3__by c3_s2('b','y') +# define c3__byte c3_s4('b','y','t','e') +# define c3__c c3_s1('c') +# define c3__cage c3_s4('c','a','g','e') +# define c3__cain c3_s4('c','a','i','n') +# define c3__call c3_s4('c','a','l','l') +# define c3__can c3_s3('c','a','n') +# define c3__cap c3_s3('c','a','p') +# define c3__card c3_s4('c','a','r','d') +# define c3__carp c3_s4('c','a','r','p') +# define c3__cary c3_s4('c','a','r','y') +# define c3__case c3_s4('c','a','s','e') +# define c3__cash c3_s4('c','a','s','h') +# define c3__cast c3_s4('c','a','s','t') +# define c3__cat c3_s3('c','a','t') +# define c3__cato c3_s4('c','a','t','o') +# define c3__cay c3_s3('c','a','y') +# define c3__cbbn c3_s4('c','b','b','n') +# define c3__cbbr c3_s4('c','b','b','r') +# define c3__cbdg c3_s4('c','b','d','g') +# define c3__cbkt c3_s4('c','b','k','t') +# define c3__cblc c3_s4('c','b','l','c') +# define c3__cbmt c3_s4('c','b','m','t') +# define c3__cbpm c3_s4('c','b','p','m') +# define c3__cbtr c3_s4('c','b','t','r') +# define c3__cdr c3_s3('c','d','r') +# define c3__ce c3_s2('c','e') +# define c3__cell c3_s4('c','e','l','l') +# define c3__chaf c3_s4('c','h','a','f') +# define c3__chan c3_s4('c','h','a','n') +# define c3__chew c3_s4('c','h','e','w') +# define c3__chis c3_s4('c','h','i','s') +# define c3__chob c3_s4('c','h','o','b') +# define c3__chop c3_s4('c','h','o','p') +# define c3__chug c3_s4('c','h','u','g') +# define c3__claf c3_s4('c','l','a','f') +# define c3__clam c3_s4('c','l','a','m') +# define c3__clap c3_s4('c','l','a','p') +# define c3__clat c3_s4('c','l','a','t') +# define c3__clay c3_s4('c','l','a','y') +# define c3__clcb c3_s4('c','l','c','b') +# define c3__clcn c3_s4('c','l','c','n') +# define c3__clep c3_s4('c','l','e','p') +# define c3__clet c3_s4('c','l','e','t') +# define c3__clhp c3_s4('c','l','h','p') +# define c3__clip c3_s4('c','l','i','p') +# define c3__clkt c3_s4('c','l','k','t') +# define c3__clls c3_s4('c','l','l','s') +# define c3__clms c3_s4('c','l','m','s') +# define c3__clr c3_s3('c','l','r') +# define c3__clsg c3_s4('c','l','s','g') +# define c3__clsp c3_s4('c','l','s','p') +# define c3__cltr c3_s4('c','l','t','r') +# define c3__cnbc c3_s4('c','n','b','c') +# define c3__cnbr c3_s4('c','n','b','r') +# define c3__cncb c3_s4('c','n','c','b') +# define c3__cncl c3_s4('c','n','c','l') +# define c3__cndt c3_s4('c','n','d','t') +# define c3__cnhp c3_s4('c','n','h','p') +# define c3__cnhs c3_s4('c','n','h','s') +# define c3__cnhx c3_s4('c','n','h','x') +# define c3__cnkt c3_s4('c','n','k','t') +# define c3__cnls c3_s4('c','n','l','s') +# define c3__cnms c3_s4('c','n','m','s') +# define c3__cnpm c3_s4('c','n','p','m') +# define c3__cnsg c3_s4('c','n','s','g') +# define c3__cntr c3_s4('c','n','t','r') +# define c3__cnts c3_s4('c','n','t','s') +# define c3__cnzy c3_s4('c','n','z','y') +# define c3__cnzz c3_s4('c','n','z','z') +# define c3__coat c3_s4('c','o','a','t') +# define c3__code c3_s4('c','o','d','e') +# define c3__coin c3_s4('c','o','i','n') +# define c3__colb c3_s4('c','o','l','b') +# define c3__cold c3_s4('c','o','l','d') +# define c3__comb c3_s4('c','o','m','b') +# define c3__come c3_s4('c','o','m','e') +# define c3__con c3_s3('c','o','n') +# define c3__cone c3_s4('c','o','n','e') +# define c3__cong c3_s4('c','o','n','g') +# define c3__conn c3_s4('c','o','n','n') +# define c3__cons c3_s4('c','o','n','s') +# define c3__cook c3_s4('c','o','o','k') +# define c3__cool c3_s4('c','o','o','l') +# define c3__core c3_s4('c','o','r','e') +# define c3__corm c3_s4('c','o','r','m') +# define c3__corp c3_s4('c','o','r','p') +# define c3__corp c3_s4('c','o','r','p') +# define c3__cow c3_s3('c','o','w') +# define c3__cplx c3_s3('c','p','l','x') +# define c3__cpu c3_s3('c','p','u') +# define c3__crad c3_s4('c','r','a','d') +# define c3__cram c3_s4('c','r','a','m') +# define c3__crap c3_s4('c','r','a','p') +# define c3__cret c3_s4('c','r','e','t') +# define c3__crib c3_s4('c','r','i','b') +# define c3__crof c3_s4('c','r','o','f') +# define c3__crop c3_s4('c','r','o','p') +# define c3__crot c3_s4('c','r','o','t') +# define c3__crud c3_s4('c','r','u','d') +# define c3__csbn c3_s4('c','s','b','n') +# define c3__csbr c3_s4('c','s','b','r') +# define c3__csdg c3_s4('c','s','d','g') +# define c3__csdl c3_s4('c','s','d','l') +# define c3__csdp c3_s4('c','s','d','p') +# define c3__csdt c3_s4('c','s','d','t') +# define c3__csin c3_s4('c','s','i','n') +# define c3__csip c3_s4('c','s','i','p') +# define c3__cslc c3_s4('c','s','l','c') +# define c3__csld c3_s4('c','s','l','d') +# define c3__csnp c3_s4('c','s','n','p') +# define c3__cspm c3_s4('c','s','p','m') +# define c3__csps c3_s4('c','s','p','s') +# define c3__csrt c3_s4('c','s','r','t') +# define c3__cssg c3_s4('c','s','s','g') +# define c3__cssp c3_s4('c','s','s','p') +# define c3__cstg c3_s4('c','s','t','g') +# define c3__cstr c3_s4('c','s','t','r') +# define c3__cszp c3_s4('c','s','z','p') +# define c3__ctl c3_s3('c','t','l') +# define c3__cttp c3_s4('c','t','t','p') +# define c3__cube c3_s4('c','u','b','e') +# define c3__cull c3_s4('c','u','l','l') +# define c3__curd c3_s4('c','u','r','d') +# define c3__cut c3_s3('c','u','t') +# define c3__cyl c3_s3('c','y','l') +# define c3__czar c3_s4('c','z','a','r') +# define c3__d c3_s1('d') +# define c3__da c3_s2('d','a') +# define c3__dago c3_s4('d','a','g','o') +# define c3__dant c3_s4('d','a','n','t') +# define c3__dast c3_s4('d','a','s','t') +# define c3__data c3_s4('d','a','t','a') +# define c3__dawn c3_s4('d','a','w','n') +# define c3__dbug c3_s4('d','b','u','g') +# define c3__dec c3_s3('d','e','c') +# define c3__deem c3_s4('d','e','e','m') +# define c3__deep c3_s4('d','e','e','p') +# define c3__defn c3_s4('d','e','f','n') +# define c3__del c3_s3('d','e','l') +# define c3__dear c3_s4('d','e','a','r') +# define c3__delc c3_s4('d','e','l','c') +# define c3__delt c3_s4('d','e','l','t') +# define c3__dept c3_s4('d','e','p','t') +# define c3__dext c3_s4('d','e','x','t') +# define c3__dgdp c3_s4('d','g','d','p') +# define c3__dgkt c3_s4('d','g','k','t') +# define c3__dgnp c3_s4('d','g','n','p') +# define c3__dgpd c3_s4('d','g','p','d') +# define c3__dgps c3_s4('d','g','p','s') +# define c3__dgrt c3_s4('d','g','r','t') +# define c3__dgsg c3_s4('d','g','s','g') +# define c3__dgsp c3_s4('d','g','s','p') +# define c3__dgtg c3_s4('d','g','t','g') +# define c3__dgtr c3_s4('d','g','t','r') +# define c3__dice c3_s4('d','i','c','e') +# define c3__die c3_s3('d','i','e') +# define c3__dill c3_s4('d','i','l','l') +# define c3__dire c3_s4('d','i','r','e') +# define c3__dirk c3_s4('d','i','r','k') +# define c3__dis c3_s3('d','i','s') +# define c3__dish c3_s4('d','i','s','h') +# define c3__disk c3_s4('d','i','s','k') +# define c3__div c3_s3('d','i','v') +# define c3__dmal c3_s4('d','m','a','l') +# define c3__do c3_s2('d','o') +# define c3__doc c3_s3('d','o','c') +# define c3__dock c3_s4('d','o','c','k') +# define c3__docs c3_s4('d','o','c','s') +# define c3__dogo c3_s4('d','o','g','o') +# define c3__dojo c3_s4('d','o','j','o') +# define c3__dome c3_s4('d','o','m','e') +# define c3__done c3_s4('d','o','n','e') +# define c3__doom c3_s4('d','o','o','m') +# define c3__door c3_s4('d','o','o','r') +# define c3__dorn c3_s4('d','o','r','n') +# define c3__dost c3_s4('d','o','s','t') +# define c3__dot c3_s3('d','o','t') +# define c3__doze c3_s4('d','o','z','e') +# define c3__drag c3_s4('d','r','a','g') +# define c3__draz c3_s4('d','r','a','z') +# define c3__drib c3_s4('d','r','i','b') +# define c3__drol c3_s4('d','r','o','l') +# define c3__dron c3_s4('d','r','o','n') +# define c3__drop c3_s4('d','r','o','p') +# define c3__drun c3_s4('d','r','u','n') +# define c3__dry c3_s3('d','r','y') +# define c3__dtbn c3_s4('d','t','b','n') +# define c3__dtcs c3_s4('d','t','c','s') +# define c3__dtdt c3_s4('d','t','d','t') +# define c3__dthx c3_s4('d','t','h','x') +# define c3__dtkt c3_s4('d','t','k','t') +# define c3__dtlc c3_s4('d','t','l','c') +# define c3__dtls c3_s4('d','t','l','s') +# define c3__dtpd c3_s4('d','t','p','d') +# define c3__dtps c3_s4('d','t','p','s') +# define c3__dtpt c3_s4('d','t','p','t') +# define c3__dtrt c3_s4('d','t','r','t') +# define c3__dtsg c3_s4('d','t','s','g') +# define c3__dttg c3_s4('d','t','t','g') +# define c3__dttr c3_s4('d','t','t','r') +# define c3__dtts c3_s4('d','t','t','s') +# define c3__dtwt c3_s4('d','t','w','t') +# define c3__dtzy c3_s4('d','t','z','y') +# define c3__dtzz c3_s4('d','t','z','z') +# define c3__dub c3_s3('d','u','b') +# define c3__duct c3_s4('d','u','c','t') +# define c3__duke c3_s4('d','u','k','e') +# define c3__dumb c3_s4('d','u','m','b') +# define c3__dump c3_s4('d','u','m','p') +# define c3__dust c3_s4('d','u','s','t') +# define c3__dxkt c3_s4('d','x','k','t') +# define c3__e c3_s1('e') +# define c3__earl c3_s4('e','a','r','l') +# define c3__east c3_s4('e','a','s','t') +# define c3__echo c3_s4('e','c','h','o') +# define c3__edge c3_s4('e','d','g','e') +# define c3__edit c3_s4('e','d','i','t') +# define c3__elm c3_s3('e','l','m') +# define c3__else c3_s4('e','l','s','e') +# define c3__emph c3_s4('e','m','p','h') +# define c3__end c3_s3('e','n','d') +# define c3__eq c3_s2('e','q') +# define c3__ergo c3_s4('e','r','g','o') +# define c3__esh c3_s3('e','s','h') +# define c3__etch c3_s4('e','t','c','h') +# define c3__eval c3_s4('e','v','a','l') +# define c3__evil c3_s4('e','v','i','l') +# define c3__ex c3_s2('e','x') +# define c3__exit c3_s4('e','x','i','t') +# define c3__eyre c3_s4('e','y','r','e') +# define c3__f c3_s1('f') +# define c3__f32 c3_s3('f','3','2') +# define c3__f64 c3_s3('f','6','4') +# define c3__fx c3_s2('f','x') +# define c3__fab c3_s3('f','a','b') +# define c3__face c3_s4('f','a','c','e') +# define c3__fail c3_s4('f','a','i','l') +# define c3__fair c3_s4('f','a','i','r') +# define c3__fake c3_s4('f','a','k','e') +# define c3__fan c3_s3('f','a','n') +# define c3__farg c3_s4('f','a','r','g') +# define c3__fast c3_s4('f','a','s','t') +# define c3__fdec c3_s4('f','d','e','c') +# define c3__felk c3_s4('f','e','l','k') +# define c3__feng c3_s4('f','e','n','g') +# define c3__fent c3_s4('f','e','n','t') +# define c3__ferd c3_s4('f','e','r','d') +# define c3__fhex c3_s4('f','h','e','x') +# define c3__file c3_s4('f','i','l','e') +# define c3__film c3_s4('f','i','l','m') +# define c3__find c3_s4('f','i','n','d') +# define c3__fine c3_s4('f','i','n','e') +# define c3__fing c3_s4('f','i','n','g') +# define c3__fink c3_s4('f','i','n','k') +# define c3__fino c3_s4('f','i','n','o') +# define c3__fir c3_s3('f','i','r') +# define c3__fire c3_s4('f','i','r','e') +# define c3__firm c3_s4('f','i','r','m') +# define c3__fish c3_s4('f','i','s','h') +# define c3__fist c3_s4('f','i','s','t') +# define c3__fit c3_s3('f','i','t') +# define c3__fits c3_s4('f','i','t','s') +# define c3__fix c3_s3('f','i','x') +# define c3__fixp c3_s3('f','i','x','p') +# define c3__fl c3_s2('f','l') +# define c3__flac c3_s4('f','l','a','c') +# define c3__flag c3_s4('f','l','a','g') +# define c3__flat c3_s4('f','l','a','t') +# define c3__flec c3_s4('f','l','e','c') +# define c3__flet c3_s4('f','l','e','t') +# define c3__flic c3_s4('f','l','i','c') +# define c3__flip c3_s4('f','l','i','p') +# define c3__flit c3_s4('f','l','i','t') +# define c3__flog c3_s4('f','l','o','g') +# define c3__flot c3_s4('f','l','o','t') +# define c3__flow c3_s4('f','l','o','w') +# define c3__fon c3_s3('f','o','n') +# define c3__fond c3_s4('f','o','n','d') +# define c3__for c3_s3('f','o','r') +# define c3__forb c3_s4('f','o','r','b') +# define c3__fore c3_s4('f','o','r','e') +# define c3__fork c3_s4('f','o','r','k') +# define c3__form c3_s4('f','o','r','m') +# define c3__forq c3_s4('f','o','r','q') +# define c3__foul c3_s4('f','o','u','l') +# define c3__frag c3_s4('f','r','a','g') +# define c3__free c3_s4('f','r','e','e') +# define c3__frez c3_s4('f','r','e','z') +# define c3__frit c3_s4('f','r','i','t') +# define c3__frog c3_s4('f','r','o','g') +# define c3__from c3_s4('f','r','o','m') +# define c3__fron c3_s4('f','r','o','n') +# define c3__fry c3_s3('f','r','y') +# define c3__fuge c3_s4('f','u','g','e') +# define c3__full c3_s4('f','u','l','l') +# define c3__fume c3_s4('f','u','m','e') +# define c3__fun c3_s3('f','u','n') +# define c3__fund c3_s4('f','u','n','d') +# define c3__fung c3_s4('f','u','n','g') +# define c3__funk c3_s4('f','u','n','k') +# define c3__fuse c3_s4('f','u','s','e') +# define c3__fuss c3_s4('f','u','s','s') +# define c3__fyrd c3_s4('f','y','r','d') +# define c3__gab c3_s3('g','a','b') +# define c3__galb c3_s4('g','a','l','b') +# define c3__gald c3_s4('g','a','l','d') +# define c3__galk c3_s4('g','a','l','k') +# define c3__game c3_s4('g','a','m','e') +# define c3__gamp c3_s4('g','a','m','p') +# define c3__gant c3_s4('g','a','n','t') +# define c3__garc c3_s4('g','a','r','c') +# define c3__gate c3_s4('g','a','t','e') +# define c3__gath c3_s4('g','a','t','h') +# define c3__ge c3_s2('g','e') +# define c3__gear c3_s4('g','e','a','r') +# define c3__gen c3_s3('g','e','n') +# define c3__gene c3_s4('g','e','n','e') +# define c3__germ c3_s4('g','e','r','m') +# define c3__get c3_s3('g','e','t') +# define c3__give c3_s4('g','i','v','e') +# define c3__glax c3_s4('g','l','a','x') +# define c3__glaz c3_s4('g','l','a','z') +# define c3__gleb c3_s4('g','l','e','b') +# define c3__glem c3_s4('g','l','e','m') +# define c3__glid c3_s4('g','l','i','d') +# define c3__glon c3_s4('g','l','o','n') +# define c3__glop c3_s4('g','l','o','p') +# define c3__gluc c3_s4('g','l','u','c') +# define c3__glue c3_s4('g','l','u','e') +# define c3__gnom c3_s4('g','n','o','m') +# define c3__gnum c3_s4('g','n','u','m') +# define c3__go c3_s2('g','o') +# define c3__goat c3_s4('g','o','a','t') +# define c3__gold c3_s4('g','o','l','d') +# define c3__good c3_s4('g','o','o','d') +# define c3__gorm c3_s4('g','o','r','m') +# define c3__goto c3_s4('g','o','t','o') +# define c3__grab c3_s4('g','r','a','b') +# define c3__grad c3_s4('g','r','a','d') +# define c3__gram c3_s4('g','r','a','m') +# define c3__gran c3_s4('g','r','a','n') +# define c3__grat c3_s4('g','r','a','t') +# define c3__gray c3_s4('g','r','a','y') +# define c3__grel c3_s4('g','r','e','l') +# define c3__gret c3_s4('g','r','e','t') +# define c3__grik c3_s4('g','r','i','k') +# define c3__gril c3_s4('g','r','i','l') +# define c3__grip c3_s4('g','r','i','p') +# define c3__grit c3_s4('g','r','i','t') +# define c3__griv c3_s4('g','r','i','v') +# define c3__grix c3_s4('g','r','i','x') +# define c3__grop c3_s4('g','r','o','p') +# define c3__grun c3_s4('g','r','u','n') +# define c3__gt c3_s2('g','t') +# define c3__gulf c3_s4('g','u','l','f') +# define c3__gull c3_s4('g','u','l','l') +# define c3__gult c3_s4('g','u','l','t') +# define c3__gund c3_s4('g','u','n','d') +# define c3__gunn c3_s4('g','u','n','n') +# define c3__hack c3_s4('h','a','c','k') +# define c3__hail c3_s4('h','a','i','l') +# define c3__hair c3_s4('h','a','i','r') +# define c3__hake c3_s4('h','a','k','e') +# define c3__halc c3_s4('h','a','l','c') +# define c3__hand c3_s4('h','a','n','d') +# define c3__hang c3_s4('h','a','n','g') +# define c3__hard c3_s4('h','a','r','d') +# define c3__harm c3_s4('h','a','r','m') +# define c3__harp c3_s4('h','a','r','p') +# define c3__have c3_s4('h','a','v','e') +# define c3__head c3_s4('h','e','a','d') +# define c3__heal c3_s4('h','e','a','l') +# define c3__hear c3_s4('h','e','a','r') +# define c3__heer c3_s4('h','e','e','r') +# define c3__hela c3_s4('h','e','l','a') +# define c3__helm c3_s4('h','e','l','m') +# define c3__helo c3_s4('h','e','l','o') +# define c3__help c3_s4('h','e','l','p') +# define c3__hep c3_s3('h','e','p') +# define c3__hept c3_s4('h','e','p','t') +# define c3__herb c3_s4('h','e','r','b') +# define c3__hevy c3_s4('h','e','v','y') +# define c3__hez c3_s3('h','e','z') +# define c3__hide c3_s4('h','i','d','e') +# define c3__high c3_s4('h','i','g','h') +# define c3__hike c3_s4('h','i','k','e') +# define c3__hill c3_s4('h','i','l','l') +# define c3__hind c3_s4('h','i','n','d') +# define c3__hint c3_s4('h','i','n','t') +# define c3__hit c3_s3('h','i','t') +# define c3__hmac c3_s4('h','m','a','c') +# define c3__hmal c3_s4('h','m','a','l') +# define c3__hold c3_s4('h','o','l','d') +# define c3__hole c3_s4('h','o','l','e') +# define c3__holt c3_s4('h','o','l','t') +# define c3__home c3_s4('h','o','m','e') +# define c3__homp c3_s4('h','o','m','p') +# define c3__hook c3_s4('h','o','o','k') +# define c3__hoon c3_s4('h','o','o','n') +# define c3__hoot c3_s4('h','o','o','t') +# define c3__hop c3_s3('h','o','p') +# define c3__hosc c3_s4('h','o','s','c') +# define c3__hose c3_s4('h','o','s','e') +# define c3__hrul c3_s4('h','r','u','l') +# define c3__hsbn c3_s4('h','s','b','n') +# define c3__hsbr c3_s4('h','s','b','r') +# define c3__hscn c3_s4('h','s','c','n') +# define c3__hsdg c3_s4('h','s','d','g') +# define c3__hskt c3_s4('h','s','k','t') +# define c3__hslc c3_s4('h','s','l','c') +# define c3__hsmt c3_s4('h','s','m','t') +# define c3__hspm c3_s4('h','s','p','m') +# define c3__hssg c3_s4('h','s','s','g') +# define c3__hstr c3_s4('h','s','t','r') +# define c3__hsts c3_s4('h','s','t','s') +# define c3__htcn c3_s4('h','t','c','n') +# define c3__htls c3_s4('h','t','l','s') +# define c3__html c3_s4('h','t','m','l') +# define c3__htmt c3_s4('h','t','m','t') +# define c3__http c3_s4('h','t','t','p') +# define c3__hume c3_s4('h','u','m','e') +# define c3__hunk c3_s4('h','u','n','k') +# define c3__hxgl c3_s4('h','x','g','l') +# define c3__hxgr c3_s4('h','x','g','r') +# define c3__hxtr c3_s4('h','x','t','r') +# define c3__hxts c3_s4('h','x','t','s') +# define c3__i c3_s1('i') +# define c3__i32 c3_s3('i','3','2') +# define c3__i64 c3_s3('i','6','4') +# define c3__ic c3_s2('i','c') +# define c3__ice c3_s3('i','c','e') +# define c3__iced c3_s4('i','c','e','d') +# define c3__id c3_s2('i','d') +# define c3__idle c3_s4('i','d','l','e') +# define c3__if c3_s2('i','f') +# define c3__ifix c3_s4('i','f','i','x') +# define c3__in c3_s2('i','n') +# define c3__inc c3_s3('i','n','c') +# define c3__info c3_s4('i','n','f','o') +# define c3__init c3_s4('i','n','i','t') +# define c3__ins c3_s3('i','n','s') +# define c3__int2 c3_s4('i','n','t','2') +# define c3__into c3_s4('i','n','t','o') +# define c3__intr c3_s4('i','n','t','r') +# define c3__inuk c3_s4('i','n','u','k') +# define c3__ipv4 c3_s4('i','p','v','4') +# define c3__iron c3_s4('i','r','o','n') +# define c3__is c3_s2('i','s') +# define c3__item c3_s4('i','t','e','m') +# define c3__ix c3_s2('i','x') +# define c3__i754 c3_s4('i','7','5','4') +# define c3__j c3_s1('j') +# define c3__jack c3_s4('j','a','c','k') +# define c3__jam c3_s3('j','a','m') +# define c3__jamx c3_s4('j','a','m','x') +# define c3__jamz c3_s4('j','a','m','z') +# define c3__jato c3_s4('j','a','t','o') +# define c3__jet c3_s3('j','e','t') +# define c3__jetd c3_s4('j','e','t','d') +# define c3__just c3_s4('j','u','s','t') +# define c3__k c3_s1('k') +# define c3__khan c3_s4('k','h','a','n') +# define c3__keep c3_s4('k','e','e','p') +# define c3__kern c3_s4('k','e','r','n') +# define c3__key c3_s3('k','e','y') +# define c3__kgo c3_s3('k','g','o') +# define c3__kick c3_s4('k','i','c','k') +# define c3__king c3_s4('k','i','n','g') +# define c3__kit c3_s3('k','i','t') +# define c3__klr c3_s3('k','l','r') +# define c3__knit c3_s4('k','n','i','t') +# define c3__kno c3_s3('k','n','o') +# define c3__ktbc c3_s4('k','t','b','c') +# define c3__ktbn c3_s4('k','t','b','n') +# define c3__ktbr c3_s4('k','t','b','r') +# define c3__ktcb c3_s4('k','t','c','b') +# define c3__ktcl c3_s4('k','t','c','l') +# define c3__ktcn c3_s4('k','t','c','n') +# define c3__ktcs c3_s4('k','t','c','s') +# define c3__ktdg c3_s4('k','t','d','g') +# define c3__ktdl c3_s4('k','t','d','l') +# define c3__ktdp c3_s4('k','t','d','p') +# define c3__ktdt c3_s4('k','t','d','t') +# define c3__ktgl c3_s4('k','t','g','l') +# define c3__ktgr c3_s4('k','t','g','r') +# define c3__kthp c3_s4('k','t','h','p') +# define c3__kthx c3_s4('k','t','h','x') +# define c3__ktlc c3_s4('k','t','l','c') +# define c3__ktld c3_s4('k','t','l','d') +# define c3__ktls c3_s4('k','t','l','s') +# define c3__ktms c3_s4('k','t','m','s') +# define c3__ktmt c3_s4('k','t','m','t') +# define c3__ktnp c3_s4('k','t','n','p') +# define c3__ktpd c3_s4('k','t','p','d') +# define c3__ktpm c3_s4('k','t','p','m') +# define c3__ktps c3_s4('k','t','p','s') +# define c3__ktpt c3_s4('k','t','p','t') +# define c3__ktrt c3_s4('k','t','r','t') +# define c3__ktsg c3_s4('k','t','s','g') +# define c3__ktsp c3_s4('k','t','s','p') +# define c3__kttg c3_s4('k','t','t','g') +# define c3__kttr c3_s4('k','t','t','r') +# define c3__ktts c3_s4('k','t','t','s') +# define c3__ktwt c3_s4('k','t','w','t') +# define c3__ktzp c3_s4('k','t','z','p') +# define c3__l c3_s1('l') +# define c3__lamb c3_s4('l','a','m','b') +# define c3__lame c3_s4('l','a','m','e') +# define c3__lang c3_s4('l','a','n','g') +# define c3__lask c3_s4('l','a','s','k') +# define c3__last c3_s4('l','a','s','t') +# define c3__lcdl c3_s4('l','c','d','l') +# define c3__lcdp c3_s4('l','c','d','p') +# define c3__lcld c3_s4('l','c','l','d') +# define c3__lcnp c3_s4('l','c','n','p') +# define c3__lcpd c3_s4('l','c','p','d') +# define c3__lcps c3_s4('l','c','p','s') +# define c3__lcsp c3_s4('l','c','s','p') +# define c3__le c3_s2('l','e') +# define c3__lead c3_s4('l','e','a','d') +# define c3__leaf c3_s4('l','e','a','f') +# define c3__leap c3_s4('l','e','a','p') +# define c3__lect c3_s4('l','e','c','t') +# define c3__lee c3_s3('l','e','e') +# define c3__leg c3_s3('l','e','g') +# define c3__lest c3_s4('l','e','s','t') +# define c3__lg c3_s2('l','g') +# define c3__lib c3_s3('l','i','b') +# define c3__libd c3_s4('l','i','b','d') +# define c3__lick c3_s4('l','i','c','k') +# define c3__life c3_s4('l','i','f','e') +# define c3__lift c3_s4('l','i','f','t') +# define c3__like c3_s4('l','i','k','e') +# define c3__limb c3_s4('l','i','m','b') +# define c3__lin c3_s3('l','i','n') +# define c3__line c3_s4('l','i','n','e') +# define c3__link c3_s4('l','i','n','k') +# define c3__lint c3_s4('l','i','n','t') +# define c3__liqd c3_s4('l','i','q','d') +# define c3__lisc c3_s4('l','i','s','c') +# define c3__list c3_s4('l','i','s','t') +# define c3__lite c3_s4('l','i','t','e') +# define c3__live c3_s4('l','i','v','e') +# define c3__load c3_s4('l','o','a','d') +# define c3__loaf c3_s4('l','o','a','f') +# define c3__log c3_s3('l','o','g') +# define c3__logo c3_s4('l','o','g','o') +# define c3__lome c3_s4('l','o','m','e') +# define c3__lond c3_s4('l','o','n','d') +# define c3__lonk c3_s4('l','o','n','k') +# define c3__look c3_s4('l','o','o','k') +# define c3__loom c3_s4('l','o','o','m') +# define c3__loop c3_s4('l','o','o','p') +# define c3__lorb c3_s4('l','o','r','b') +# define c3__lord c3_s4('l','o','r','d') +# define c3__lort c3_s4('l','o','r','t') +# define c3__lose c3_s4('l','o','s','e') +# define c3__loss c3_s4('l','o','s','s') +# define c3__lost c3_s4('l','o','s','t') +# define c3__low c3_s3('l','o','w') +# define c3__lsh c3_s3('l','s','h') +# define c3__lt c3_s2('l','t') +# define c3__lull c3_s4('l','u','l','l') +# define c3__lunt c3_s4('l','u','n','t') +# define c3__m c3_s1('m') +# define c3__mx c3_s2('m','x') +# define c3__mach c3_s4('m','a','c','h') +# define c3__mack c3_s4('m','a','c','k') +# define c3__made c3_s4('m','a','d','e') +# define c3__main c3_s4('m','a','i','n') +# define c3__make c3_s4('m','a','k','e') +# define c3__malg c3_s4('m','a','l','g') +# define c3__malk c3_s4('m','a','l','k') +# define c3__mang c3_s4('m','a','n','g') +# define c3__many c3_s4('m','a','n','y') +# define c3__map c3_s3('m','a','p') +# define c3__marg c3_s4('m','a','r','g') +# define c3__mark c3_s4('m','a','r','k') +# define c3__marn c3_s4('m','a','r','n') +# define c3__mash c3_s4('m','a','s','h') +# define c3__mass c3_s4('m','a','s','s') +# define c3__mast c3_s4('m','a','s','t') +# define c3__mate c3_s4('m','a','t','e') +# define c3__mave c3_s4('m','a','v','e') +# define c3__mean c3_s4('m','e','a','n') +# define c3__mega c3_s4('m','e','g','a') +# define c3__meh c3_s3('m','e','h') +# define c3__meld c3_s4('m','e','l','d') +# define c3__melt c3_s4('m','e','l','t') +# define c3__meme c3_s4('m','e','m','e') +# define c3__memo c3_s4('m','e','m','o') +# define c3__menu c3_s4('m','e','n','u') +# define c3__mesa c3_s4('m','e','s','a') +# define c3__mesh c3_s4('m','e','s','h') +# define c3__mess c3_s4('m','e','s','s') +# define c3__mess_ser c3_s8('m','e','s','s','-', 's', 'e','r') +# define c3__met c3_s3('m','e','t') +# define c3__meta c3_s4('m','e','t','a') +# define c3__mill c3_s4('m','i','l','l') +# define c3__mime c3_s4('m','i','m','e') +# define c3__mine c3_s4('m','i','n','e') +# define c3__mint c3_s4('m','i','n','t') +# define c3__mirt c3_s4('m','i','r','t') +# define c3__miss c3_s4('m','i','s','s') +# define c3__mix c3_s3('m','i','x') +# define c3__moat c3_s4('m','o','a','t') +# define c3__mod c3_s3('m','o','d') +# define c3__mold c3_s4('m','o','l','d') +# define c3__mong c3_s4('m','o','n','g') +# define c3__mono c3_s4('m','o','n','o') +# define c3__mook c3_s4('m','o','o','k') +# define c3__moot c3_s4('m','o','o','t') +# define c3__mor c3_s3('m','o','r') +# define c3__move c3_s4('m','o','v','e') +# define c3__moze c3_s4('m','o','z','e') +# define c3__mtbn c3_s4('m','t','b','n') +# define c3__mtbr c3_s4('m','t','b','r') +# define c3__mtdg c3_s4('m','t','d','g') +# define c3__mtdp c3_s4('m','t','d','p') +# define c3__mtdt c3_s4('m','t','d','t') +# define c3__mtkt c3_s4('m','t','k','t') +# define c3__mtlc c3_s4('m','t','l','c') +# define c3__mtnp c3_s4('m','t','n','p') +# define c3__mtpd c3_s4('m','t','p','d') +# define c3__mtps c3_s4('m','t','p','s') +# define c3__mtrt c3_s4('m','t','r','t') +# define c3__mtsg c3_s4('m','t','s','g') +# define c3__mtsp c3_s4('m','t','s','p') +# define c3__mttg c3_s4('m','t','t','g') +# define c3__mttr c3_s4('m','t','t','r') +# define c3__mul c3_s3('m','u','l') +# define c3__mull c3_s4('m','u','l','l') +# define c3__mung c3_s4('m','u','n','g') +# define c3__mut c3_s3('m','u','t') +# define c3__n c3_s1('n') +# define c3__na c3_s2('n','a') +# define c3__nail c3_s4('n','a','i','l') +# define c3__name c3_s4('n','a','m','e') +# define c3__nap c3_s3('n','a','p') +# define c3__nara c3_s4('n','a','r','a') +# define c3__narv c3_s4('n','a','r','v') +# define c3__ne c3_s2('n','e') +# define c3__need c3_s4('n','e','e','d') +# define c3__neft c3_s4('n','e','f','t') +# define c3__nel c3_s3('n','e','l') +# define c3__nest c3_s4('n','e','s','t') +# define c3__netd c3_s4('n','e','t','d') +# define c3__new c3_s3('n','e','w') +# define c3__news c3_s4('n','e','w','s') +# define c3__newt c3_s4('n','e','w','t') +# define c3__next c3_s4('n','e','x','t') +# define c3__nich c3_s4('n','i','c','h') +# define c3__nick c3_s4('n','i','c','k') +# define c3__nil c3_s3('n','i','l') +# define c3__nilk c3_s4('n','i','l','k') +# define c3__no c3_s2('n','o') +# define c3__noah c3_s4('n','o','a','h') +# define c3__nock c3_s4('n','o','c','k') +# define c3__noco c3_s4('n','o','c','o') +# define c3__nodo c3_s4('n','o','d','o') +# define c3__none c3_s4('n','o','n','e') +# define c3__noop c3_s4('n','o','o','p') +# define c3__nop c3_s3('n','o','p') +# define c3__norm c3_s4('n','o','r','m') +# define c3__nost c3_s4('n','o','s','t') +# define c3__not c3_s3('n','o','t') +# define c3__note c3_s4('n','o','t','e') +# define c3__noun c3_s4('n','o','u','n') +# define c3__nt c3_s2('n','t') +# define c3__nub c3_s3('n','u','b') +# define c3__null c3_s4('n','u','l','l') +# define c3__nz c3_s2('n','z') +# define c3__o c3_s1('o') +# define c3__oak c3_s3('o','a','k') +# define c3__of c3_s2('o','f') +# define c3__off c3_s3('o','f','f') +# define c3__ogre c3_s4('o','g','r','e') +# define c3__old c3_s3('o','l','d') +# define c3__omen c3_s4('o','m','e','n') +# define c3__on c3_s2('o','n') +# define c3__onan c3_s4('o','n','a','n') +# define c3__once c3_s4('o','n','c','e') +# define c3__one c3_s3('o','n','e') +# define c3__only c3_s4('o','n','l','y') +# define c3__oops c3_s4('o','o','p','s') +# define c3__op c3_s2('o','p') +# define c3__open c3_s4('o','p','e','n') +# define c3__opts c3_s4('o','p','t','s') +# define c3__or c3_s2('o','r') +# define c3__ord c3_s3('o','r','d') +# define c3__orth c3_s4('o','r','t','h') +# define c3__outd c3_s4('o','u','t','d') +# define c3__ov c3_s2('o','v') +# define c3__over c3_s4('o','v','e','r') +# define c3__ovum c3_s4('o','v','u','m') +# define c3__p c3_s1('p') +# define c3__pack c3_s4('p','a','c','k') +# define c3__pact c3_s4('p','a','c','t') +# define c3__page c3_s4('p','a','g','e') +# define c3__pair c3_s4('p','a','i','r') +# define c3__palm c3_s4('p','a','l','m') +# define c3__palq c3_s4('p','a','l','q') +# define c3__palt c3_s4('p','a','l','t') +# define c3__pan c3_s3('p','a','n') +# define c3__pane c3_s4('p','a','n','e') +# define c3__pang c3_s4('p','a','n','g') +# define c3__pank c3_s4('p','a','n','k') +# define c3__para c3_s4('p','a','r','a') +# define c3__park c3_s4('p','a','r','k') +# define c3__parq c3_s4('p','a','r','q') +# define c3__part c3_s4('p','a','r','t') +# define c3__pass c3_s4('p','a','s','s') +# define c3__past c3_s4('p','a','s','t') +# define c3__pawn c3_s4('p','a','w','n') +# define c3__peek c3_s4('p','e','e','k') +# define c3__peel c3_s4('p','e','e','l') +# define c3__peep c3_s4('p','e','e','p') +# define c3__peft c3_s4('p','e','f','t') +# define c3__peg c3_s3('p','e','g') +# define c3__peld c3_s4('p','e','l','d') +# define c3__pen c3_s3('p','e','n') +# define c3__per c3_s3('p','e','r') +# define c3__perd c3_s4('p','e','r','d') +# define c3__pesk c3_s4('p','e','s','k') +# define c3__pfix c3_s4('p','f','i','x') +# define c3__pick c3_s4('p','i','c','k') +# define c3__pier c3_s4('p','i','e','r') +# define c3__pike c3_s4('p','i','k','e') +# define c3__pile c3_s4('p','i','l','e') +# define c3__pill c3_s4('p','i','l','l') +# define c3__ping c3_s4('p','i','n','g') +# define c3__pink c3_s4('p','i','n','k') +# define c3__pip c3_s3('p','i','p') +# define c3__pipe c3_s4('p','i','p','e') +# define c3__pith c3_s4('p','i','t','h') +# define c3__pitt c3_s4('p','i','t','t') +# define c3__plac c3_s4('p','l','a','c') +# define c3__plam c3_s4('p','l','a','m') +# define c3__plat c3_s4('p','l','a','t') +# define c3__play c3_s4('p','l','a','y') +# define c3__plaz c3_s4('p','l','a','z') +# define c3__plem c3_s4('p','l','e','m') +# define c3__plet c3_s4('p','l','e','t') +# define c3__plic c3_s4('p','l','i','c') +# define c3__plin c3_s4('p','l','i','n') +# define c3__plom c3_s4('p','l','o','m') +# define c3__plov c3_s4('p','l','o','v') +# define c3__plug c3_s4('p','l','u','g') +# define c3__plus c3_s4('p','l','u','s') +# define c3__pmbn c3_s4('p','m','b','n') +# define c3__pmcl c3_s4('p','m','c','l') +# define c3__pmcn c3_s4('p','m','c','n') +# define c3__pmdg c3_s4('p','m','d','g') +# define c3__pmdp c3_s4('p','m','d','p') +# define c3__pmdt c3_s4('p','m','d','t') +# define c3__pmlc c3_s4('p','m','l','c') +# define c3__pmls c3_s4('p','m','l','s') +# define c3__pmms c3_s4('p','m','m','s') +# define c3__pmmt c3_s4('p','m','m','t') +# define c3__pmpd c3_s4('p','m','p','d') +# define c3__pmps c3_s4('p','m','p','s') +# define c3__pmsp c3_s4('p','m','s','p') +# define c3__pmtr c3_s4('p','m','t','r') +# define c3__pmts c3_s4('p','m','t','s') +# define c3__pmzp c3_s4('p','m','z','p') +# define c3__pnut c3_s4('p','n','u','t') +# define c3__pock c3_s4('p','o','c','k') +# define c3__poke c3_s4('p','o','k','e') +# define c3__poll c3_s4('p','o','l','l') +# define c3__poly c3_s4('p','o','l','y') +# define c3__pont c3_s4('p','o','n','t') +# define c3__poos c3_s4('p','o','o','s') +# define c3__pop c3_s3('p','o','p') +# define c3__port c3_s4('p','o','r','t') +# define c3__pos c3_s3('p','o','s') +# define c3__pose c3_s4('p','o','s','e') +# define c3__post c3_s4('p','o','s','t') +# define c3__pray c3_s4('p','r','a','y') +# define c3__prec c3_s4('p','r','e','c') +# define c3__prep c3_s4('p','r','e','p') +# define c3__pret c3_s4('p','r','e','t') +# define c3__prex c3_s4('p','r','e','x') +# define c3__pril c3_s4('p','r','i','l') +# define c3__pro c3_s3('p','r','o') +# define c3__prod c3_s4('p','r','o','d') +# define c3__prop c3_s4('p','r','o','p') +# define c3__prof c3_s4('p','r','o','f') +# define c3__prox c3_s4('p','r','o','x') +# define c3__psdg c3_s4('p','s','d','g') +# define c3__puck c3_s4('p','u','c','k') +# define c3__pull c3_s4('p','u','l','l') +# define c3__pult c3_s4('p','u','l','t') +# define c3__pung c3_s4('p','u','n','g') +# define c3__punk c3_s4('p','u','n','k') +# define c3__punt c3_s4('p','u','n','t') +# define c3__pure c3_s4('p','u','r','e') +# define c3__purr c3_s4('p','u','r','r') +# define c3__push c3_s4('p','u','s','h') +# define c3__put c3_s3('p','u','t') +# define c3__quac c3_s4('q','u','a','c') +# define c3__quic c3_s4('q','u','i','c') +# define c3__qual c3_s4('q','u','a','l') +# define c3__quat c3_s4('q','u','a','t') +# define c3__quax c3_s4('q','u','a','x') +# define c3__quem c3_s4('q','u','e','m') +# define c3__ques c3_s4('q','u','e','s') +# define c3__quet c3_s4('q','u','e','t') +# define c3__queu c3_s4('q','u','e','u') +# define c3__quid c3_s4('q','u','i','d') +# define c3__quil c3_s4('q','u','i','l') +# define c3__quix c3_s4('q','u','i','x') +# define c3__quiz c3_s4('q','u','i','z') +# define c3__quol c3_s4('q','u','o','l') +# define c3__quop c3_s4('q','u','o','p') +# define c3__rack c3_s4('r','a','c','k') +# define c3__rald c3_s4('r','a','l','d') +# define c3__ramp c3_s4('r','a','m','p') +# define c3__rasp c3_s4('r','a','s','p') +# define c3__raw c3_s3('r','a','w') +# define c3__read c3_s4('r','e','a','d') +# define c3__real c3_s4('r','e','a','l') +# define c3__reck c3_s4('r','e','c','k') +# define c3__reef c3_s4('r','e','e','f') +# define c3__resd c3_s4('r','e','s','d') +# define c3__rest c3_s4('r','e','s','t') +# define c3__ret c3_s3('r','e','t') +# define c3__revo c3_s4('r','e','v','o') +# define c3__rez c3_s3('r','e','z') +# define c3__rin c3_s3('r','i','n') +# define c3__ring c3_s4('r','i','n','g') +# define c3__ripe c3_s4('r','i','p','e') +# define c3__rite c3_s4('r','i','t','e') +# define c3__rock c3_s4('r','o','c','k') +# define c3__roll c3_s4('r','o','l','l') +# define c3__rolp c3_s4('r','o','l','p') +# define c3__rond c3_s4('r','o','n','d') +# define c3__root c3_s4('r','o','o','t') +# define c3__rose c3_s4('r','o','s','e') +# define c3__rsh c3_s3('r','s','h') +# define c3__rulf c3_s4('r','u','l','f') +# define c3__run c3_s3('r','u','n') +# define c3__s c3_s1('s') +# define c3__safe c3_s4('s','a','f','e') +# define c3__sag c3_s3('s','a','g') +# define c3__sail c3_s4('s','a','i','l') +# define c3__same c3_s4('s','a','m','e') +# define c3__sand c3_s4('s','a','n','d') +# define c3__sard c3_s4('s','a','r','d') +# define c3__sav c3_s3('s','a','v') +# define c3__save c3_s4('s','a','v','e') +# define c3__saxo c3_s4('s','a','x','o') +# define c3__scam c3_s4('s','c','a','m') +# define c3__scan c3_s4('s','c','a','n') +# define c3__scry c3_s4('s','c','r','y') +# define c3__scsg c3_s4('s','c','s','g') +# define c3__seal c3_s4('s','e','a','l') +# define c3__seat c3_s4('s','e','a','t') +# define c3__see c3_s3('s','e','e') +# define c3__seed c3_s4('s','e','e','d') +# define c3__seek c3_s4('s','e','e','k') +# define c3__seft c3_s4('s','e','f','t') +# define c3__sell c3_s4('s','e','l','l') +# define c3__semp c3_s4('s','e','m','p') +# define c3__send c3_s4('s','e','n','d') +# define c3__sent c3_s4('s','e','n','t') +# define c3__seq c3_s3('s','e','q') +# define c3__serd c3_s4('s','e','r','d') +# define c3__serf c3_s4('s','e','r','f') +# define c3__set c3_s3('s','e','t') +# define c3__sfix c3_s4('s','f','i','x') +# define c3__sgbc c3_s4('s','g','b','c') +# define c3__sgbn c3_s4('s','g','b','n') +# define c3__sgbr c3_s4('s','g','b','r') +# define c3__sgcb c3_s4('s','g','c','b') +# define c3__sgcl c3_s4('s','g','c','l') +# define c3__sgcn c3_s4('s','g','c','n') +# define c3__sgdg c3_s4('s','g','d','g') +# define c3__sgdl c3_s4('s','g','d','l') +# define c3__sgdp c3_s4('s','g','d','p') +# define c3__sgdt c3_s4('s','g','d','t') +# define c3__sgdx c3_s4('s','g','d','x') +# define c3__sgfs c3_s4('s','g','f','s') +# define c3__sggl c3_s4('s','g','g','l') +# define c3__sggr c3_s4('s','g','g','r') +# define c3__sghp c3_s4('s','g','h','p') +# define c3__sghs c3_s4('s','g','h','s') +# define c3__sghx c3_s4('s','g','h','x') +# define c3__sgkt c3_s4('s','g','k','t') +# define c3__sglc c3_s4('s','g','l','c') +# define c3__sgld c3_s4('s','g','l','d') +# define c3__sgls c3_s4('s','g','l','s') +# define c3__sgms c3_s4('s','g','m','s') +# define c3__sgmt c3_s4('s','g','m','t') +# define c3__sgpd c3_s4('s','g','p','d') +# define c3__sgpm c3_s4('s','g','p','m') +# define c3__sgps c3_s4('s','g','p','s') +# define c3__sgsg c3_s4('s','g','s','g') +# define c3__sgsp c3_s4('s','g','s','p') +# define c3__sgts c3_s4('s','g','t','s') +# define c3__sgwt c3_s4('s','g','w','t') +# define c3__sgzp c3_s4('s','g','z','p') +# define c3__shiv c3_s4('s','h','i','v') +# define c3__show c3_s4('s','h','o','w') +# define c3__shud c3_s4('s','h','u','d') +# define c3__shut c3_s4('s','h','u','t') +# define c3__sibl c3_s4('s','i','b','l') +# define c3__sift c3_s4('s','i','f','t') +# define c3__sign c3_s4('s','i','g','n') +# define c3__sing c3_s4('s','i','n','g') +# define c3__sist c3_s4('s','i','s','t') +# define c3__site c3_s4('s','i','t','e') +# define c3__sith c3_s4('s','i','t','h') +# define c3__size c3_s4('s','i','z','e') +# define c3__slam c3_s4('s','l','a','m') +# define c3__slap c3_s4('s','l','a','p') +# define c3__slat c3_s4('s','l','a','t') +# define c3__slax c3_s4('s','l','a','x') +# define c3__slem c3_s4('s','l','e','m') +# define c3__slet c3_s4('s','l','e','t') +# define c3__slex c3_s4('s','l','e','x') +# define c3__slid c3_s4('s','l','i','d') +# define c3__slip c3_s4('s','l','i','p') +# define c3__sliv c3_s4('s','l','i','v') +# define c3__sloc c3_s4('s','l','o','c') +# define c3__slog c3_s4('s','l','o','g') +# define c3__slon c3_s4('s','l','o','n') +# define c3__slop c3_s4('s','l','o','p') +# define c3__slos c3_s4('s','l','o','s') +# define c3__slow c3_s4('s','l','o','w') +# define c3__slur c3_s4('s','l','u','r') +# define c3__slux c3_s4('s','l','u','x') +# define c3__sm c3_s2('s','m') +# define c3__smcl c3_s4('s','m','c','l') +# define c3__smdq c3_s4('s','m','d','q') +# define c3__smsg c3_s4('s','m','s','g') +# define c3__smsm c3_s4('s','m','s','m') +# define c3__smts c3_s4('s','m','t','s') +# define c3__snap c3_s4('s','n','a','p') +# define c3__so c3_s2('s','o') +# define c3__soak c3_s4('s','o','a','k') +# define c3__sock c3_s4('s','o','c','k') +# define c3__soft c3_s4('s','o','f','t') +# define c3__sole c3_s4('s','o','l','e') +# define c3__some c3_s4('s','o','m','e') +# define c3__sort c3_s4('s','o','r','t') +# define c3__spal c3_s4('s','p','a','l') +# define c3__spar c3_s4('s','p','a','r') +# define c3__spig c3_s4('s','p','i','g') +# define c3__spil c3_s4('s','p','i','l') +# define c3__spin c3_s4('s','p','i','n') +# define c3__spit c3_s4('s','p','i','t') +# define c3__spot c3_s4('s','p','o','t') +# define c3__stam c3_s4('s','t','a','m') +# define c3__star c3_s4('s','t','a','r') +# define c3__stdr c3_s4('s','t','d','r') +# define c3__stem c3_s4('s','t','e','m') +# define c3__step c3_s4('s','t','e','p') +# define c3__stid c3_s4('s','t','i','d') +# define c3__stig c3_s4('s','t','i','g') +# define c3__stil c3_s4('s','t','i','l') +# define c3__stiv c3_s4('s','t','i','v') +# define c3__stix c3_s4('s','t','i','x') +# define c3__stol c3_s4('s','t','o','l') +# define c3__ston c3_s4('s','t','o','n') +# define c3__stop c3_s4('s','t','o','p') +# define c3__stub c3_s4('s','t','u','b') +# define c3__stun c3_s4('s','t','u','n') +# define c3__stur c3_s4('s','t','u','r') +# define c3__sub c3_s3('s','u','b') +# define c3__sunt c3_s4('s','u','n','t') +# define c3__sure c3_s4('s','u','r','e') +# define c3__susp c3_s4('s','u','s','p') +# define c3__swap c3_s4('s','w','a','p') +# define c3__sym c3_s3('s','y','m') +# define c3__sync c3_s4('s','y','n','c') +# define c3__sys c3_s3('s','y','s') +# define c3__ta c3_s2('t','a') +# define c3__tab c3_s3('t','a','b') +# define c3__tack c3_s4('t','a','c','k') +# define c3__tag c3_s3('t','a','g') +# define c3__tail c3_s4('t','a','i','l') +# define c3__take c3_s4('t','a','k','e') +# define c3__talk c3_s4('t','a','l','k') +# define c3__tame c3_s4('t','a','m','e') +# define c3__tang c3_s4('t','a','n','g') +# define c3__tank c3_s4('t','a','n','k') +# define c3__tap c3_s3('t','a','p') +# define c3__tarn c3_s4('t','a','r','n') +# define c3__tas c3_s3('t','a','s') +# define c3__tash c3_s4('t','a','s','h') +# define c3__teal c3_s4('t','e','a','l') +# define c3__teck c3_s4('t','e','c','k') +# define c3__tell c3_s4('t','e','l','l') +# define c3__terg c3_s4('t','e','r','g') +# define c3__term c3_s4('t','e','r','m') +# define c3__test c3_s4('t','e','s','t') +# define c3__text c3_s4('t','e','x','t') +# define c3__tgbn c3_s4('t','g','b','n') +# define c3__tgbr c3_s4('t','g','b','r') +# define c3__tgdg c3_s4('t','g','d','g') +# define c3__tgdl c3_s4('t','g','d','l') +# define c3__tgdp c3_s4('t','g','d','p') +# define c3__tgdx c3_s4('t','g','d','x') +# define c3__tgkt c3_s4('t','g','k','t') +# define c3__tglc c3_s4('t','g','l','c') +# define c3__tgld c3_s4('t','g','l','d') +# define c3__tgmt c3_s4('t','g','m','t') +# define c3__tgpd c3_s4('t','g','p','d') +# define c3__tgpm c3_s4('t','g','p','m') +# define c3__tgps c3_s4('t','g','p','s') +# define c3__tgsp c3_s4('t','g','s','p') +# define c3__that c3_s4('t','h','a','t') +# define c3__thee c3_s4('t','h','e','e') +# define c3__then c3_s4('t','h','e','n') +# define c3__they c3_s4('t','h','e','y') +# define c3__thin c3_s4('t','h','i','n') +# define c3__this c3_s4('t','h','i','s') +# define c3__thou c3_s4('t','h','o','u') +# define c3__thud c3_s4('t','h','u','d') +# define c3__thuo c3_s4('t','h','u','o') +# define c3__thus c3_s4('t','h','u','s') +# define c3__tick c3_s4('t','i','c','k') +# define c3__time c3_s4('t','i','m','e') +# define c3__tip c3_s3('t','i','p') +# define c3__tmbn c3_s4('t','m','b','n') +# define c3__tmdg c3_s4('t','m','d','g') +# define c3__tmdp c3_s4('t','m','d','p') +# define c3__tmlc c3_s4('t','m','l','c') +# define c3__tmnp c3_s4('t','m','n','p') +# define c3__tmpd c3_s4('t','m','p','d') +# define c3__tmps c3_s4('t','m','p','s') +# define c3__tmsg c3_s4('t','m','s','g') +# define c3__tmsp c3_s4('t','m','s','p') +# define c3__tmtr c3_s4('t','m','t','r') +# define c3__to c3_s2('t','o') +# define c3__toe c3_s3('t','o','e') +# define c3__tome c3_s4('t','o','m','e') +# define c3__tong c3_s4('t','o','n','g') +# define c3__tool c3_s4('t','o','o','l') +# define c3__top c3_s3('t','o','p') +# define c3__toy c3_s3('t','o','y') +# define c3__trac c3_s4('t','r','a','c') +# define c3__tram c3_s4('t','r','a','m') +# define c3__trap c3_s4('t','r','a','p') +# define c3__trel c3_s4('t','r','e','l') +# define c3__trex c3_s4('t','r','e','x') +# define c3__trib c3_s4('t','r','i','b') +# define c3__trim c3_s4('t','r','i','m') +# define c3__trip c3_s4('t','r','i','p') +# define c3__trol c3_s4('t','r','o','l') +# define c3__trop c3_s4('t','r','o','p') +# define c3__trup c3_s4('t','r','u','p') +# define c3__try c3_s3('t','r','y') +# define c3__tsbn c3_s4('t','s','b','n') +# define c3__tsbr c3_s4('t','s','b','r') +# define c3__tscl c3_s4('t','s','c','l') +# define c3__tscm c3_s4('t','s','c','m') +# define c3__tsdt c3_s4('t','s','d','t') +# define c3__tsgl c3_s4('t','s','g','l') +# define c3__tsgr c3_s4('t','s','g','r') +# define c3__tshp c3_s4('t','s','h','p') +# define c3__tshx c3_s4('t','s','h','x') +# define c3__tsls c3_s4('t','s','l','s') +# define c3__tsms c3_s4('t','s','m','s') +# define c3__tssg c3_s4('t','s','s','g') +# define c3__tstr c3_s4('t','s','t','r') +# define c3__tub c3_s3('t','u','b') +# define c3__tul c3_s3('t','u','l') +# define c3__tule c3_s4('t','u','l','e') +# define c3__tulp c3_s4('t','u','l','p') +# define c3__tune c3_s4('t','u','n','e') +# define c3__tung c3_s4('t','u','n','g') +# define c3__tupl c3_s4('t','u','p','l') +# define c3__turd c3_s4('t','u','r','d') +# define c3__turf c3_s4('t','u','r','f') +# define c3__turn c3_s4('t','u','r','n') +# define c3__twig c3_s4('t','w','i','g') +# define c3__twix c3_s4('t','w','i','x') +# define c3__txt c3_s3('t','x','t') +# define c3__type c3_s4('t','y','p','e') +# define c3__u c3_s1('u') +# define c3__ubin c3_s4('u','b','i','n') +# define c3__ubit c3_s4('u','b','i','t') +# define c3__ud c3_s2('u','d') +# define c3__uint c3_s4('u','i','n','t') +# define c3__ulib c3_s4('u','l','i','b') +# define c3__un c3_s2('u','n') +# define c3__uniq c3_s4('u','n','i','q') +# define c3__unix c3_s4('u','n','i','x') +# define c3__unt c3_s3('u','n','t') +# define c3__unum c3_s3('u','n','u','m') +# define c3__up c3_s2('u','p') +# define c3__url c3_s3('u','r','l') +# define c3__urth c3_s4('u','r','t','h') +# define c3__use c3_s3('u','s','e') +# define c3__ut c3_s2('u','t') +# define c3__uv c3_s2('u','v') +# define c3__uw c3_s2('u','w') +# define c3__ux c3_s2('u','x') +# define c3__v c3_s1('v') +# define c3__vamp c3_s4('v','a','m','p') +# define c3__vane c3_s4('v','a','n','e') +# define c3__var c3_s3('v','a','r') +# define c3__veal c3_s4('v','e','a','l') +# define c3__veb c3_s3('v','e','b') +# define c3__veck c3_s4('v','e','c','k') +# define c3__veer c3_s4('v','e','e','r') +# define c3__vega c3_s4('v','e','g','a') +# define c3__velt c3_s4('v','e','l','t') +# define c3__vent c3_s4('v','e','n','t') +# define c3__verb c3_s4('v','e','r','b') +# define c3__vere c3_s4('v','e','r','e') +# define c3__veri c3_s4('v','e','r','i') +# define c3__vern c3_s4('v','e','r','n') +# define c3__very c3_s4('v','e','r','y') +# define c3__view c3_s4('v','i','e','w') +# define c3__vile c3_s4('v','i','l', 'e') +# define c3__vint c3_s4('v','i','n','t') +# define c3__void c3_s4('v','o','i','d') +# define c3__vorp c3_s4('v','o','r','p') +# define c3__wack c3_s4('w','a','c','k') +# define c3__wail c3_s4('w','a','i','l') +# define c3__wake c3_s4('w','a','k','e') +# define c3__walk c3_s4('w','a','l','k') +# define c3__wamp c3_s4('w','a','m','p') +# define c3__want c3_s4('w','a','n','t') +# define c3__warm c3_s4('w','a','r','m') +# define c3__warn c3_s4('w','a','r','n') +# define c3__warx c3_s4('w','a','r','x') +# define c3__wash c3_s4('w','a','s','h') +# define c3__watt c3_s4('w','a','t','t') +# define c3__way c3_s3('w','a','y') +# define c3__weak c3_s4('w','e','a','k') +# define c3__web c3_s3('w','e','b') +# define c3__wend c3_s4('w','e','n','d') +# define c3__werp c3_s4('w','e','r','p') +# define c3__west c3_s4('w','e','s','t') +# define c3__wet c3_s3('w','e','t') +# define c3__what c3_s4('w','h','a','t') +# define c3__whey c3_s4('w','h','e','y') +# define c3__who c3_s3('w','h','o') +# define c3__whom c3_s4('w','h','o','m') +# define c3__wild c3_s4('w','i','l','d') +# define c3__win c3_s3('w','i','n') +# define c3__wing c3_s4('w','i','n','g') +# define c3__wipe c3_s4('w','i','p','e') +# define c3__wise c3_s4('w','i','s','e') +# define c3__wish c3_s4('w','i','s','h') +# define c3__with c3_s4('w','i','t','h') +# define c3__wnut c3_s4('w','n','u','t') +# define c3__wood c3_s4('w','o','o','d') +# define c3__woot c3_s4('w','o','o','t') +# define c3__work c3_s4('w','o','r','k') +# define c3__wost c3_s4('w','o','s','t') +# define c3__wrap c3_s4('w','r','a','p') +# define c3__wtbr c3_s4('w','t','b','r') +# define c3__wtcb c3_s4('w','t','c','b') +# define c3__wtcl c3_s4('w','t','c','l') +# define c3__wtcn c3_s4('w','t','c','n') +# define c3__wtdt c3_s4('w','t','d','t') +# define c3__wtfs c3_s4('w','t','f','s') +# define c3__wtgl c3_s4('w','t','g','l') +# define c3__wtgr c3_s4('w','t','g','r') +# define c3__wthp c3_s4('w','t','h','p') +# define c3__wthx c3_s4('w','t','h','x') +# define c3__wtkt c3_s4('w','t','k','t') +# define c3__wtls c3_s4('w','t','l','s') +# define c3__wtms c3_s4('w','t','m','s') +# define c3__wtpm c3_s4('w','t','p','m') +# define c3__wtpt c3_s4('w','t','p','t') +# define c3__wtsg c3_s4('w','t','s','g') +# define c3__wtts c3_s4('w','t','t','s') +# define c3__wtzp c3_s4('w','t','z','p') +# define c3__wyp c3_s3('w','y','p') +# define c3__wyrd c3_s4('w','y','r','d') +# define c3__xray c3_s4('x','r','a','y') +# define c3__xmas c3_s4('x','m','a','s') +# define c3__x c3_s1('x') +# define c3__xx c3_s2('x','x') +# define c3__yell c3_s4('y','e','l','l') +# define c3__yelp c3_s4('y','e','l','p') +# define c3__z c3_s1('z') +# define c3__zact c3_s4('z','a','c','t') +# define c3__zalt c3_s4('z','a','l','t') +# define c3__zarb c3_s4('z','a','r','b') +# define c3__zect c3_s4('z','e','c','t') +# define c3__zemp c3_s4('z','e','m','p') +# define c3__zero c3_s4('z','e','r','o') +# define c3__zike c3_s4('z','i','k','e') +# define c3__zinc c3_s4('z','i','n','c') +# define c3__zole c3_s4('z','o','l','e') +# define c3__zond c3_s4('z','o','n','d') +# define c3__zoot c3_s4('z','o','o','t') +# define c3__zork c3_s4('z','o','r','k') +# define c3__zpbn c3_s4('z','p','b','n') +# define c3__zpcb c3_s4('z','p','c','b') +# define c3__zpcm c3_s4('z','p','c','m') +# define c3__zpcn c3_s4('z','p','c','n') +# define c3__zpdg c3_s4('z','p','d','g') +# define c3__zpdx c3_s4('z','p','d','x') +# define c3__zpfs c3_s4('z','p','f','s') +# define c3__zpgr c3_s4('z','p','g','r') +# define c3__zphx c3_s4('z','p','h','x') +# define c3__zplc c3_s4('z','p','l','c') +# define c3__zpmc c3_s4('z','p','m','c') +# define c3__zpmt c3_s4('z','p','m','t') +# define c3__zpsg c3_s4('z','p','s','g') +# define c3__zpsk c3_s4('z','p','s','k') +# define c3__zpsm c3_s4('z','p','s','m') +# define c3__zptc c3_s4('z','p','t','c') +# define c3__zptm c3_s4('z','p','t','m') +# define c3__zpts c3_s4('z','p','t','s') +# define c3__zpvn c3_s4('z','p','v','n') +# define c3__zpvt c3_s4('z','p','v','t') +# define c3__zpzp c3_s4('z','p','z','p') +# define c3__zuse c3_s4('z','u','s','e') +# define c3__zush c3_s4('z','u','s','h') + +#endif /* ifndef C3_MOTES_H */ diff --git a/vere/pkg/c3/portable.h b/vere/pkg/c3/portable.h new file mode 100644 index 0000000..acc9f33 --- /dev/null +++ b/vere/pkg/c3/portable.h @@ -0,0 +1,240 @@ +/// @file + +#ifndef C3_PORTABLE_H +#define C3_PORTABLE_H + +# ifndef __GNUC__ +# error "port me" +# endif +# ifndef _GNU_SOURCE +# define _GNU_SOURCE +# endif + + /** System include files. + *** + *** Do not put include files that are only used in the + *** porting layer here. Include them directly in the + *** C file. + **/ +# if defined(U3_OS_linux) +# ifndef _XOPEN_SOURCE +# define _XOPEN_SOURCE 700 +# endif +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include + +# elif defined(U3_OS_osx) +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include + +# elif defined(U3_OS_bsd) +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include +# include + +# else + #error "port: headers" +# endif + +# ifndef __has_feature +# define __has_feature(x) 0 +# endif + +# if __has_feature(address_sanitizer) || defined(__SANITIZE_ADDRESS__) +# define ASAN_ENABLED +# endif + + /** Platform string. + **/ +# if defined(U3_OS_linux) +# ifdef __LP64__ +# ifdef U3_CPU_aarch64 +# define U3_OS_ARCH "linux-aarch64" +# else +# define U3_OS_ARCH "linux-x86_64" +# endif +# endif +# elif defined(U3_OS_osx) +# ifdef __LP64__ +# ifdef U3_CPU_aarch64 +# define U3_OS_ARCH "macos-aarch64" +# else +# define U3_OS_ARCH "macos-x86_64" +# endif +# endif +# endif + + + +# define U3_BIN_ALIAS ".run" + + /** Address space layout. + *** + *** NB: 2^30 words == 4G + **/ +# if defined(U3_OS_linux) +# ifdef __LP64__ +# ifdef ASAN_ENABLED +# define U3_OS_LoomBase 0x10007ffff000 +# else +# define U3_OS_LoomBase 0x200000000 +# endif +# else +# define U3_OS_LoomBase 0x36000000 +# endif +# define U3_OS_LoomBits 30 +# elif defined(U3_OS_osx) +# ifdef __LP64__ +# ifdef ASAN_ENABLED +# define U3_OS_LoomBase 0x728000000000 +# else +# define U3_OS_LoomBase 0x28000000000 +# endif +# else +# define U3_OS_LoomBase 0x4000000 +# endif +# define U3_OS_LoomBits 30 +# elif defined(U3_OS_bsd) +# ifdef __LP64__ +# define U3_OS_LoomBase 0x200000000 +# else +# define U3_OS_LoomBase 0x4000000 +# endif +# define U3_OS_LoomBits 30 +# else +# error "port: LoomBase" +# endif + + + /** Private C "extensions." + *** + *** Except for these and main(), any function, macro, or structure + *** names must be prefixed either by u3_/U3_ (for public names), + *** or _ (for static and other file-local names). + **/ + /* Endianness. + */ +# define c3_endian_little 0 +# define c3_endian_big 1 + +# ifdef U3_OS_ENDIAN_little +# define c3_endian c3_endian_little +# elif defined(U3_OS_ENDIAN_big) +# define c3_endian c3_endian_big +# else +# error "port: U3_OS_ENDIAN" +# endif + + /* Byte swapping. + */ +# if defined(U3_OS_linux) || defined(U3_OS_bsd) +# define c3_bswap_16(x) bswap_16(x) +# define c3_bswap_32(x) bswap_32(x) +# define c3_bswap_64(x) bswap_64(x) +# elif defined(U3_OS_osx) +# define c3_bswap_16(x) NXSwapShort(x) +# define c3_bswap_32(x) NXSwapInt(x) +# define c3_bswap_64(x) NXSwapLongLong(x) +# else +# error "port: byte swap" +# endif + + /* Sync. + */ +# if defined(U3_OS_linux) +# define c3_sync(fd) (fdatasync(fd)) +# elif defined(U3_OS_osx) +# define c3_sync(fd) (fcntl(fd, F_FULLFSYNC, 0)) +# elif defined(U3_OS_bsd) +# define c3_sync(fd) (fsync(fd)) +# else +# error "port: sync" +# endif + + /* Purge. + */ +# if defined(U3_OS_linux) +# include +# define c3_fpurge __fpurge +# elif defined(U3_OS_bsd) || defined(U3_OS_osx) +# define c3_fpurge fpurge +# else +# error "port: fpurge" +# endif + + /* Stat. + */ +# if defined(U3_OS_linux) +# define c3_stat_mtime(dp) (u3_time_t_in_ts((dp)->st_mtime)) +# elif defined(U3_OS_osx) +# define c3_stat_mtime(dp) (u3_time_in_ts(&((dp)->st_mtimespec))) +# define lseek64 lseek +# elif defined(U3_OS_bsd) +# define c3_stat_mtime(dp) (u3_time_in_ts(&((dp)->st_mtim))) +# define lseek64 lseek +# else +# error "port: timeconvert" +# endif + + /* Null. + */ +# if defined(U3_OS_linux) || defined(U3_OS_bsd) || defined(U3_OS_osx) +# define c3_dev_null "/dev/null" +# else +# error "port: /dev/null" +# endif + + /* Static assertion. + + TODO: we could just use static_assert (c23)/_Static_assert (c11) in + + */ +# define ASSERT_CONCAT_(a, b) a##b +# define ASSERT_CONCAT(a, b) ASSERT_CONCAT_(a, b) +# define STATIC_ASSERT(e,m) \ + enum { ASSERT_CONCAT(assert_line_, __LINE__) = 1/(int)(!!(e)) } + +#endif /* ifndef C3_PORTABLE_H */ diff --git a/vere/pkg/c3/types.h b/vere/pkg/c3/types.h new file mode 100644 index 0000000..8214fbc --- /dev/null +++ b/vere/pkg/c3/types.h @@ -0,0 +1,75 @@ +/// @file + +#ifndef C3_TYPES_H +#define C3_TYPES_H + +#include "portable.h" + + /** Integer typedefs. + **/ + /* Canonical integers. + */ + typedef size_t c3_z; + typedef ssize_t c3_zs; + typedef uint64_t c3_d; + typedef int64_t c3_ds; + typedef uint32_t c3_w; + typedef int32_t c3_ws; + typedef uint16_t c3_s; + typedef int16_t c3_ss; + typedef uint8_t c3_y; // byte + typedef int8_t c3_ys; // signed byte + typedef uint8_t c3_b; // bit + + typedef uint8_t c3_t; // boolean + typedef uint8_t c3_o; // loobean + typedef uint8_t c3_g; // 32-bit log - 0-31 bits + typedef uint32_t c3_l; // little; 31-bit unsigned integer + typedef uint32_t c3_m; // mote; also c3_l; LSB first a-z 4-char string. + + /* Deprecated integers. + */ + typedef char c3_c; // does not match int8_t or uint8_t + typedef int c3_i; // int - really bad + typedef uintptr_t c3_p; // pointer-length uint - really really bad + typedef intptr_t c3_ps; // pointer-length int - really really bad + + /* Print specifiers + */ + + /* c3_z */ + #define PRIc3_z "zu" /* unsigned dec */ + #define PRIc3_zs "zd" /* signed dec */ + #define PRIxc3_z "zx" /* unsigned hex */ + #define PRIXc3_z "zX" /* unsigned HEX */ + + /* c3_d */ + #define PRIc3_d PRIu64 + #define PRIc3_ds PRIi64 + #define PRIxc3_d PRIx64 + #define PRIXc3_d PRIX64 + + /* c3_w */ + #define PRIc3_w PRIu32 + #define PRIc3_ws PRIi32 + #define PRIxc3_w PRIx32 + #define PRIXc3_w PRIX32 + + /* c3_s */ + #define PRIc3_s PRIu16 + #define PRIc3_ss PRIi16 + #define PRIxc3_s PRIx16 + #define PRIXc3_s PRIX16 + + /* c3_y */ + #define PRIc3_y PRIu8 + #define PRIc3_ys PRIi8 + #define PRIxc3_y PRIx8 + #define PRIXc3_y PRIX8 + + /* c3_b */ + #define PRIc3_b PRIu8 + #define PRIxc3_b PRIx8 + #define PRIXc3_b PRIX8 + +#endif /* ifndef C3_TYPES_H */ diff --git a/vere/pkg/ent/.gitignore b/vere/pkg/ent/.gitignore new file mode 100644 index 0000000..97b75b0 --- /dev/null +++ b/vere/pkg/ent/.gitignore @@ -0,0 +1,4 @@ +/*.a +/*.o +/out +/test diff --git a/vere/pkg/ent/LICENSE b/vere/pkg/ent/LICENSE new file mode 100644 index 0000000..6cbc428 --- /dev/null +++ b/vere/pkg/ent/LICENSE @@ -0,0 +1,20 @@ +Copyright 2019 Steven Dee + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vere/pkg/ent/README.md b/vere/pkg/ent/README.md new file mode 100644 index 0000000..f1205fa --- /dev/null +++ b/vere/pkg/ent/README.md @@ -0,0 +1,36 @@ +## `libent` + +`libent` is a cross-platform wrapper around `getentropy(2)`. It exports +one symbol, `ent_getentropy`. If getentropy is available, then it's just +a shim around that. Otherwise, it uses `getrandom(2)` (available since +kernel 3.17) on Linux, or `/dev/urandom` on other \*nix. + + +### Building and Testing + +```bash +bazel build ... +bazel test ... +``` + +### Why? + +`getentropy` is the wave of the future. It's the correct API for +generating small amounts of entropy to create cryptographic keys or seed +PRNGs. It's good and reasonable and true, it's on Linux, \*BSD, and OS +X, and it only took us fifty years of UNIX to get here. + +Sadly, it only just arrived, so nobody has it yet. It didn't land in +Linux until glibc 2.25, which seems to only have made it into Debian 10. + +Once `getentropy` is everywhere you care about, you can just do a +s/ent\_//g on all the call sites and discard this shim. + +This project began because [Urbit](https://github.com/urbit/urbit)'s +entropy-generation function was bothering me. Then it got out of hand. + + +### References + +* [OpenBSD getentropy](https://man.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man2/getentropy.2) +* [djb on entropy gathering](https://blog.cr.yp.to/20140205-entropy.html) diff --git a/vere/pkg/ent/build.zig b/vere/pkg/ent/build.zig new file mode 100644 index 0000000..5fd1308 --- /dev/null +++ b/vere/pkg/ent/build.zig @@ -0,0 +1,37 @@ +const std = @import("std"); + +pub fn build(b: *std.Build) !void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + + const copts: []const []const u8 = + b.option([]const []const u8, "copt", "") orelse &.{}; + + var flags = std.ArrayList([]const u8).init(b.allocator); + defer flags.deinit(); + try flags.appendSlice(&.{ + "-pedantic", + "-std=gnu99", + }); + try flags.appendSlice(copts); + + const pkg_ent = b.addStaticLibrary(.{ + .name = "ent", + .target = target, + .optimize = optimize, + }); + + pkg_ent.linkLibC(); + + pkg_ent.addIncludePath(b.path("")); + + pkg_ent.addCSourceFiles(.{ + .root = b.path(""), + .files = &.{"ent.c"}, + .flags = flags.items, + }); + + pkg_ent.installHeader(b.path("ent.h"), "ent/ent.h"); + + b.installArtifact(pkg_ent); +} diff --git a/vere/pkg/ent/ent.c b/vere/pkg/ent/ent.c new file mode 100644 index 0000000..0375774 --- /dev/null +++ b/vere/pkg/ent/ent.c @@ -0,0 +1,74 @@ +// Use `getentropy` from unistd.h ////////////////////////////////////////////// + +#if defined(ENT_GETENTROPY_UNISTD) +#include +#include +int ent_getentropy(void* buf, size_t len) { + return getentropy(buf, len); +} + + +// Use `getentropy` from sys/random.h ////////////////////////////////////////// + +#elif defined(ENT_GETENTROPY_SYSRANDOM) +#include +// See https://www.mail-archive.com/bug-gnulib@gnu.org/msg38583.html. +#include +#include +int ent_getentropy(void* buf, size_t len) { + return getentropy(buf, len); +} + + +// Use the `getrandom` syscall ///////////////////////////////////////////////// + +#elif defined(ENT_GETRANDOM_SYSCALL) +#include +#include +#define _GNU_SOURCE +#include +#include + +#define ENTFAIL { errno=EIO; return -1; } + +int ent_getentropy(void* buf, size_t len) { + if (len > 256) ENTFAIL + int r = syscall(SYS_getrandom, buf, len, 0); + if (r < 0) return r; + if (r != len) ENTFAIL + return 0; +} + + +// Use `/dev/urandom` ////////////////////////////////////////////////////////// + +#elif defined(ENT_DEV_URANDOM) +#include +#include +#include + +#define ENTFAIL { errno=EIO; return -1; } + +int ent_getentropy(void* buf, size_t len) { + if (len > 256) ENTFAIL; + FILE *f = fopen("/dev/urandom", "re"); + if (!f) return -1; + int r = fread(buf, 1, len, f); + (void) fclose(f); + if (r != len) ENTFAIL + return 0; +} + + +// Use `BCryptGenRandom` on Windows //////////////////////////////////////////// + +#elif defined(ENT_GETENTROPY_BCRYPTGENRANDOM) +#include +#include +int ent_getentropy(void* buf, size_t len) { + return BCryptGenRandom(NULL, (PUCHAR)buf, len, BCRYPT_USE_SYSTEM_PREFERRED_RNG); +} + +#else +#error "One of these must be set: ENT_GETENTROPY_BCRYPTGENRANDOM, ENT_DEV_URANDOM, ENT_GETENTROPY_UNISTD, ENT_GETENTROPY_SYSRANDOM, ENT_GETRANDOM_SYSCALL" +#endif diff --git a/vere/pkg/ent/ent.h b/vere/pkg/ent/ent.h new file mode 100644 index 0000000..e838d61 --- /dev/null +++ b/vere/pkg/ent/ent.h @@ -0,0 +1,13 @@ +#pragma once + +#include + +/* + Fills buf with high-quality entropy. + + buflen is the number of bytes, no greater than 256. + + Returns 0 on success. On failure, returns -1 and sets errno to + indicate the error. +*/ +int ent_getentropy(void* buf, size_t buflen); diff --git a/vere/pkg/ent/tests.c b/vere/pkg/ent/tests.c new file mode 100644 index 0000000..90b6ca0 --- /dev/null +++ b/vere/pkg/ent/tests.c @@ -0,0 +1,20 @@ +#include +#include +#include + +#include "ent.h" + +int main(void) { + char buf[256] = {0}; + + if (0 != ent_getentropy(buf, sizeof(buf))) { + perror("getentropy"); + exit(1); + } + + for (int i = 0; i < sizeof buf; i++) { + printf("%02hhx", buf[i]); + } + + puts(""); +} diff --git a/vere/pkg/noun/allocate.c b/vere/pkg/noun/allocate.c new file mode 100644 index 0000000..64e6b9e --- /dev/null +++ b/vere/pkg/noun/allocate.c @@ -0,0 +1,3025 @@ +/// @file + +#include "allocate.h" + +#include "hashtable.h" +#include "log.h" +#include "manage.h" +#include "options.h" +#include "retrieve.h" +#include "trace.h" +#include "vortex.h" + +u3_road* u3a_Road; + +#ifdef U3_MEMORY_DEBUG +c3_w u3_Code; +#endif + +c3_w u3a_to_pug(c3_w off); +c3_w u3a_to_pom(c3_w off); + +void +u3a_drop(const u3a_pile* pil_u); +void* +u3a_peek(const u3a_pile* pil_u); +void* +u3a_pop(const u3a_pile* pil_u); +void* +u3a_push(const u3a_pile* pil_u); +c3_o +u3a_pile_done(const u3a_pile* pil_u); + +/* _box_count(): adjust memory count. +*/ +#ifdef U3_CPU_DEBUG +static void +_box_count(c3_ws siz_ws) +{ + u3R->all.fre_w += siz_ws; + + { + c3_w end_w = u3a_heap(u3R); + c3_w all_w = (end_w - u3R->all.fre_w); + + if ( all_w > u3R->all.max_w ) { + u3R->all.max_w = all_w; + } + } +} +#else +static void +_box_count(c3_ws siz_ws) { } +#endif + +/* _box_vaal(): validate box alignment. no-op without C3DBG + + TODO: I think validation code that might be compiled out like this, + _box_count, (others?) should have perhaps its own header and certainly its + own prefix. having to remind yourself that _box_count doesn't actually do + anything unless U3_CPU_DEBUG is defined is annoying. */ +#define _box_vaal(box_u) \ + do { \ + c3_dessert(((uintptr_t)u3a_boxto(box_u) \ + & u3a_balign-1) == 0); \ + c3_dessert((((u3a_box*)(box_u))->siz_w \ + & u3a_walign-1) == 0); \ + } while(0) + +/* _box_slot(): select the right free list to search for a block. +** +** siz_w == 6 words then [0] +** siz_w < 16 then [1] +** siz_w < 32 then [2] +** siz_w < 64 then [3] +** ... +** siz_w >= 2GB then [26] +*/ +static c3_w +_box_slot(c3_w siz_w) +{ + if ( u3a_minimum == siz_w ) { + return 0; + } + else if ( !(siz_w >> 4) ) { + c3_dessert( u3a_minimum < siz_w ); + return 1; + } + else { + c3_w bit_w = c3_bits_word(siz_w) - 3; + c3_w max_w = u3a_fbox_no - 1; + return c3_min(bit_w, max_w); + } +} + +/* _box_make(): construct a box. + box_v - start addr of box + siz_w - size of allocated space adjacent to block + use_w - box's refcount +*/ +static u3a_box* +_box_make(void* box_v, c3_w siz_w, c3_w use_w) +{ + u3a_box* box_u = box_v; + c3_w* box_w = box_v; + + u3_assert(siz_w >= u3a_minimum); + + box_u->siz_w = siz_w; + box_w[siz_w - 1] = siz_w; /* stor size at end of allocation as well */ + box_u->use_w = use_w; + + _box_vaal(box_u); + +# ifdef U3_MEMORY_DEBUG + box_u->cod_w = u3_Code; + box_u->eus_w = 0; +# endif + + return box_u; +} + +/* _box_attach(): attach a box to the free list. +*/ +static void +_box_attach(u3a_box* box_u) +{ + u3_assert(box_u->siz_w >= (1 + c3_wiseof(u3a_fbox))); + u3_assert(0 != u3of(u3a_fbox, box_u)); + +#if 0 + // For debugging, fill the box with beef. + { + c3_w* box_w = (void *)box_u; + c3_w i_w; + + for ( i_w = c3_wiseof(u3a_box); (i_w + 1) < box_u->siz_w; i_w++ ) { + box_w[i_w] = 0xdeadbeef; + } + } +#endif + + _box_count(box_u->siz_w); + { + c3_w sel_w = _box_slot(box_u->siz_w); + u3p(u3a_fbox) fre_p = u3of(u3a_fbox, box_u); + u3p(u3a_fbox)* pfr_p = &u3R->all.fre_p[sel_w]; + u3p(u3a_fbox) nex_p = *pfr_p; + + u3to(u3a_fbox, fre_p)->pre_p = 0; + u3to(u3a_fbox, fre_p)->nex_p = nex_p; + if ( u3to(u3a_fbox, fre_p)->nex_p ) { + u3to(u3a_fbox, u3to(u3a_fbox, fre_p)->nex_p)->pre_p = fre_p; + } + (*pfr_p) = fre_p; + } +} + +/* _box_detach(): detach a box from the free list. +*/ +static void +_box_detach(u3a_box* box_u) +{ + u3p(u3a_fbox) fre_p = u3of(u3a_fbox, box_u); + u3p(u3a_fbox) pre_p = u3to(u3a_fbox, fre_p)->pre_p; + u3p(u3a_fbox) nex_p = u3to(u3a_fbox, fre_p)->nex_p; + + _box_count(-(box_u->siz_w)); + + if ( nex_p ) { + if ( u3to(u3a_fbox, nex_p)->pre_p != fre_p ) { + u3_assert(!"loom: corrupt"); + } + u3to(u3a_fbox, nex_p)->pre_p = pre_p; + } + if ( pre_p ) { + if( u3to(u3a_fbox, pre_p)->nex_p != fre_p ) { + u3_assert(!"loom: corrupt"); + } + u3to(u3a_fbox, pre_p)->nex_p = nex_p; + } + else { + c3_w sel_w = _box_slot(box_u->siz_w); + + if ( fre_p != u3R->all.fre_p[sel_w] ) { + u3_assert(!"loom: corrupt"); + } + u3R->all.fre_p[sel_w] = nex_p; + } +} + +/* _box_free(): free and coalesce. +*/ +static void +_box_free(u3a_box* box_u) +{ + c3_w* box_w = (c3_w *)(void *)box_u; + + u3_assert(box_u->use_w != 0); + box_u->use_w -= 1; + if ( 0 != box_u->use_w ) { + return; + } + + _box_vaal(box_u); + +#if 0 + /* Clear the contents of the block, for debugging. + */ + { + c3_w i_w; + + for ( i_w = c3_wiseof(u3a_box); (i_w + 1) < box_u->siz_w; i_w++ ) { + box_w[i_w] = 0xdeadbeef; + } + } +#endif + + if ( c3y == u3a_is_north(u3R) ) { /* north */ + /* Try to coalesce with the block below. + */ + if ( box_w != u3a_into(u3R->rut_p) ) { + c3_w laz_w = *(box_w - 1); /* the size of a box stored at the end of its allocation */ + u3a_box* pox_u = (u3a_box*)(void *)(box_w - laz_w); /* the head of the adjacent box below */ + + if ( 0 == pox_u->use_w ) { + _box_detach(pox_u); + _box_make(pox_u, (laz_w + box_u->siz_w), 0); + + box_u = pox_u; + box_w = (c3_w*)(void *)pox_u; + } + } + + /* Try to coalesce with the block above, or the wilderness. + */ + if ( (box_w + box_u->siz_w) == u3a_into(u3R->hat_p) ) { + u3R->hat_p = u3a_outa(box_w); + } + else { + u3a_box* nox_u = (u3a_box*)(void *)(box_w + box_u->siz_w); + + if ( 0 == nox_u->use_w ) { + _box_detach(nox_u); + _box_make(box_u, (box_u->siz_w + nox_u->siz_w), 0); + } + _box_attach(box_u); + } + } /* end north */ + else { /* south */ + /* Try to coalesce with the block above. + */ + if ( (box_w + box_u->siz_w) != u3a_into(u3R->rut_p) ) { + u3a_box* nox_u = (u3a_box*)(void *)(box_w + box_u->siz_w); + + if ( 0 == nox_u->use_w ) { + _box_detach(nox_u); + _box_make(box_u, (box_u->siz_w + nox_u->siz_w), 0); + } + } + + /* Try to coalesce with the block below, or with the wilderness. + */ + if ( box_w == u3a_into(u3R->hat_p) ) { + u3R->hat_p = u3a_outa(box_w + box_u->siz_w); + } + else { + c3_w laz_w = box_w[-1]; + u3a_box* pox_u = (u3a_box*)(void *)(box_w - laz_w); + + if ( 0 == pox_u->use_w ) { + _box_detach(pox_u); + _box_make(pox_u, (laz_w + box_u->siz_w), 0); + box_u = pox_u; + } + _box_attach(box_u); + } + } /* end south */ +} + +/* _ca_box_make_hat(): in u3R, allocate directly on the hat. +*/ +static u3a_box* +_ca_box_make_hat(c3_w len_w, c3_w ald_w, c3_w off_w, c3_w use_w) +{ + c3_w + pad_w, /* padding between returned pointer and box */ + siz_w; /* total size of allocation */ + u3_post + box_p, /* start of box */ + all_p; /* start of returned pointer */ + + if ( c3y == u3a_is_north(u3R) ) { + box_p = all_p = u3R->hat_p; + all_p += c3_wiseof(u3a_box) + off_w; + pad_w = c3_align(all_p, ald_w, C3_ALGHI) + - all_p; + siz_w = c3_align(len_w + pad_w, u3a_walign, C3_ALGHI); + + // hand-inlined: siz_w >= u3a_open(u3R) + // + if ( (siz_w >= (u3R->cap_p - u3R->hat_p)) ) { + return 0; + } + u3R->hat_p += siz_w; + } + else { + box_p = all_p = u3R->hat_p - len_w; + all_p += c3_wiseof(u3a_box) + off_w; + pad_w = all_p + - c3_align(all_p, ald_w, C3_ALGLO); + siz_w = c3_align(len_w + pad_w, u3a_walign, C3_ALGHI); + + // hand-inlined: siz_w >= u3a_open(u3R) + // + if ( siz_w >= (u3R->hat_p - u3R->cap_p) ) { + return 0; + } + box_p = u3R->hat_p -= siz_w; + } + c3_dessert(!(ald_w <= 2 && off_w == 0) || (0 == pad_w)); + c3_dessert(pad_w <= 4); + + return _box_make(u3a_into(box_p), siz_w, use_w); +} + +#if 0 +/* _me_road_all_hat(): in u3R, allocate directly on the hat. +*/ +static u3a_box* +_ca_box_make_hat(c3_w len_w, c3_w alm_w, c3_w use_w) +{ + return _box_make(_me_road_all_hat(len_w), len_w, use_w); +} +#endif + +#if 0 // not yet used +/* _me_road_all_cap(): in u3R, allocate directly on the cap. +*/ +static c3_w* +_me_road_all_cap(c3_w len_w) +{ + if ( len_w > u3a_open(u3R) ) { + u3m_bail(c3__meme); return 0; + } + + if ( c3y == u3a_is_north(u3R) ) { + u3R->cap_p -= len_w; + return u3a_into(u3R->cap_p); + } + else { + u3_post all_p; + + all_p = u3R->cap_p; + u3R->cap_p += len_w; + return u3a_into(all_p); + } +} +#endif + +#if 0 +/* u3a_sane(): check allocator sanity. +*/ +void +u3a_sane(void) +{ + c3_w i_w; + + for ( i_w = 0; i_w < u3a_fbox_no; i_w++ ) { + u3a_fbox* fre_u = u3R->all.fre_u[i_w]; + + while ( fre_u ) { + if ( fre_u == u3R->all.fre_u[i_w] ) { + u3_assert(fre_u->pre_u == 0); + } + else { + u3_assert(fre_u->pre_u != 0); + u3_assert(fre_u->pre_u->nex_u == fre_u); + if ( fre_u->nex_u != 0 ) { + u3_assert(fre_u->nex_u->pre_u == fre_u); + } + } + fre_u = fre_u->nex_u; + } + } +} +#endif + +/* u3a_reflux(): dump 1K cells from the cell list into regular memory. +*/ +void +u3a_reflux(void) +{ + c3_w i_w; + + for ( i_w = 0; u3R->all.cel_p && (i_w < 1024); i_w++ ) { + u3_post cel_p = u3R->all.cel_p; + u3a_box* box_u = &(u3to(u3a_fbox, cel_p)->box_u); + + u3R->all.cel_p = u3to(u3a_fbox, cel_p)->nex_p; + + // otherwise _box_free() will double-count it + // + _box_count(-(u3a_minimum)); + _box_free(box_u); + + } +} + +/* _ca_reclaim_half(): reclaim from memoization cache. +*/ +static void +_ca_reclaim_half(void) +{ + // XX u3l_log avoid here, as it can + // cause problems when handling errors + + if ( (0 == u3R->cax.har_p) || + (0 == u3to(u3h_root, u3R->cax.har_p)->use_w) ) + { + fprintf(stderr, "allocate: reclaim: memo cache: empty\r\n"); + u3m_bail(c3__meme); + } + +#if 1 + fprintf(stderr, "allocate: reclaim: half of %d entries\r\n", + u3to(u3h_root, u3R->cax.har_p)->use_w); + + u3h_trim_to(u3R->cax.har_p, u3to(u3h_root, u3R->cax.har_p)->use_w / 2); +#else + /* brutal and guaranteed effective + */ + u3h_free(u3R->cax.har_p); + u3R->cax.har_p = u3h_new(); +#endif +} + +/* _ca_willoc(): u3a_walloc() internals. +*/ +static void* +_ca_willoc(c3_w len_w, c3_w ald_w, c3_w off_w) +{ + c3_w siz_w = c3_max(u3a_minimum, u3a_boxed(len_w)); + c3_w sel_w = _box_slot(siz_w); + + /* XX: this logic is totally bizarre, but preserve it. + ** + ** This means we use the next size bigger instead of the "correct" + ** size. For example, a 20 word allocation will be freed into free + ** list 2 but will be allocated from free list 3. + ** + ** This is important to preserve because the sequential search may be + ** very slow. On a real-world task involving many compilations, + ** removing this line made this function appear in ~80% of samples. + ** + ** For reference, this was added in cgyarvin/urbit ffed9e748d8f6c. + */ + if ( (sel_w != 0) && (sel_w != u3a_fbox_no - 1) ) { + sel_w += 1; + } + + // u3l_log("walloc %d: *pfr_p %x", len_w, u3R->all.fre_p[sel_w]); + while ( 1 ) { + u3p(u3a_fbox) *pfr_p = &u3R->all.fre_p[sel_w]; + + while ( 1 ) { + /* increment until we get a non-null freelist */ + if ( 0 == *pfr_p ) { + if ( sel_w < (u3a_fbox_no - 1) ) { + sel_w += 1; + break; + } + else { + // nothing in top free list; chip away at the hat + // + u3a_box* box_u; + + // memory nearly empty; reclaim; should not be needed + // + // if ( (u3a_open(u3R) + u3R->all.fre_w) < 65536 ) { _ca_reclaim_half(); } + box_u = _ca_box_make_hat(siz_w, ald_w, off_w, 1); + + /* Flush a bunch of cell cache, then try again. + */ + if ( 0 == box_u ) { + if ( u3R->all.cel_p ) { + u3a_reflux(); + + return _ca_willoc(len_w, ald_w, off_w); + } + else { + _ca_reclaim_half(); + return _ca_willoc(len_w, ald_w, off_w); + } + } + else return u3a_boxto(box_u); + } + } + else { /* we got a non-null freelist */ + u3_post all_p = *pfr_p; + all_p += c3_wiseof(u3a_box) + off_w; + c3_w pad_w = c3_align(all_p, ald_w, C3_ALGHI) - all_p; + c3_w des_w = c3_align(siz_w + pad_w, u3a_walign, C3_ALGHI); + + /* calls maximally requesting DWORD alignment of returned pointer + shouldn't require padding. */ + c3_dessert(!(ald_w <= 2 && off_w == 0) || (0 == pad_w)); + c3_dessert(pad_w <= 4); + + if ( (des_w) > u3to(u3a_fbox, *pfr_p)->box_u.siz_w ) { + /* This free block is too small. Continue searching. + */ + pfr_p = &(u3to(u3a_fbox, *pfr_p)->nex_p); + continue; + } + else { /* free block fits desired alloc size */ + u3a_box* box_u = &(u3to(u3a_fbox, *pfr_p)->box_u); + + /* We have found a free block of adequate size. Remove it + ** from the free list. + */ + + _box_count(-(box_u->siz_w)); + /* misc free list consistency checks. + TODO: in the future should probably only run for C3DBG builds */ + { + if ( (0 != u3to(u3a_fbox, *pfr_p)->pre_p) && + (u3to(u3a_fbox, u3to(u3a_fbox, *pfr_p)->pre_p)->nex_p + != (*pfr_p)) ) + { /* this->pre->nex isn't this */ + u3_assert(!"loom: corrupt"); + } + + if( (0 != u3to(u3a_fbox, *pfr_p)->nex_p) && + (u3to(u3a_fbox, u3to(u3a_fbox, *pfr_p)->nex_p)->pre_p + != (*pfr_p)) ) + { /* this->nex->pre isn't this */ + u3_assert(!"loom: corrupt"); + } + + /* pop the block */ + /* this->nex->pre = this->pre */ + if ( 0 != u3to(u3a_fbox, *pfr_p)->nex_p ) { + u3to(u3a_fbox, u3to(u3a_fbox, *pfr_p)->nex_p)->pre_p = + u3to(u3a_fbox, *pfr_p)->pre_p; + } + /* this = this->nex */ + *pfr_p = u3to(u3a_fbox, *pfr_p)->nex_p; + } + + /* If we can chop off another block, do it. + */ + if ( (des_w + u3a_minimum) <= box_u->siz_w ) { + /* Split the block. + */ + + /* XXX: Despite the fact that we're making a box here, we don't + actually have to ensure it's aligned, since des_w and all boxes + already on the loom /are/ aligned. A debug break here implies + that you broke those conditions, not that this needs to handle + alignment. abandon hope. */ + c3_w* box_w = ((c3_w *)(void *)box_u); + c3_w* end_w = box_w + des_w; + c3_w lef_w = (box_u->siz_w - des_w); + + _box_attach(_box_make(end_w, lef_w, 0)); + return u3a_boxto(_box_make(box_w, des_w, 1)); + } + else { + u3_assert(0 == box_u->use_w); + box_u->use_w = 1; + +#ifdef U3_MEMORY_DEBUG + box_u->cod_w = u3_Code; +#endif + return u3a_boxto(box_u); + } + } + } + } + } +} + +/* _ca_walloc(): u3a_walloc() internals. + + - len_w: allocation length in words + - ald_w: desired alignment. N.B. the void * returned is not guaranteed to be + aligned on this value. But the allocation will be sized such that the + caller can independently align the value. + - off_w: alignment offset to use when sizing request. + + void * returned guaranteed to be DWORD (8-byte) aligned. +*/ +static void* +_ca_walloc(c3_w len_w, c3_w ald_w, c3_w off_w) +{ + void* ptr_v; + + for (;;) { + ptr_v = _ca_willoc(len_w, ald_w, off_w); + if ( 0 != ptr_v ) { + break; + } + _ca_reclaim_half(); + } + _box_vaal(u3a_botox(ptr_v)); + return ptr_v; +} + +/* u3a_walloc(): allocate storage words on hat heap. +*/ +void* +u3a_walloc(c3_w len_w) +{ + void* ptr_v; + + ptr_v = _ca_walloc(len_w, 1, 0); + +#if 0 + if ( (703 == u3_Code) && + u3a_botox(ptr_v) == (u3a_box*)(void *)0x200dfe3e4 ) { + static int xuc_i; + + u3l_log("xuc_i %d", xuc_i); + if ( 1 == xuc_i ) { + u3a_box* box_u = u3a_botox(ptr_v); + + box_u->cod_w = 999; + } + xuc_i++; + } +#endif + _box_vaal(u3a_botox(ptr_v)); + return ptr_v; +} + +/* u3a_wealloc(): realloc in words. +*/ +void* +u3a_wealloc(void* lag_v, c3_w len_w) +{ + if ( !lag_v ) { + return u3a_walloc(len_w); + } + else { + u3a_box* box_u = u3a_botox(lag_v); + c3_w* old_w = lag_v; + c3_w tiz_w = c3_min(box_u->siz_w, len_w); + { + c3_w* new_w = u3a_walloc(len_w); + c3_w i_w; + + for ( i_w = 0; i_w < tiz_w; i_w++ ) { + new_w[i_w] = old_w[i_w]; + } + u3a_wfree(lag_v); + return new_w; + } + } +} + +/* u3a_pile_prep(): initialize stack control. +*/ +void +u3a_pile_prep(u3a_pile* pil_u, c3_w len_w) +{ + // frame size, in words + // + c3_w wor_w = (len_w + 3) >> 2; + c3_o nor_o = u3a_is_north(u3R); + + pil_u->mov_ws = (c3y == nor_o) ? -wor_w : wor_w; + pil_u->off_ws = (c3y == nor_o) ? 0 : -wor_w; + pil_u->top_p = u3R->cap_p; + +#ifdef U3_MEMORY_DEBUG + pil_u->rod_u = u3R; +#endif +} + +/* u3a_wfree(): free storage. +*/ +void +u3a_wfree(void* tox_v) +{ + _box_free(u3a_botox(tox_v)); +} + +/* u3a_wtrim(): trim storage. + + old_w - old length + len_w - new length +*/ +void +u3a_wtrim(void* tox_v, c3_w old_w, c3_w len_w) +{ + c3_w* nov_w = tox_v; + + if ( (old_w > len_w) + && ((old_w - len_w) >= u3a_minimum) ) + { + u3a_box* box_u = u3a_botox(nov_w); + c3_w* box_w = (void*)u3a_botox(nov_w); + + c3_w* end_w = c3_align(nov_w + len_w + 1, /* +1 for trailing allocation size */ + u3a_balign, + C3_ALGHI); + + c3_w asz_w = (end_w - box_w); /* total size in words of new allocation */ + if (box_u->siz_w <= asz_w) return; + c3_w bsz_w = box_u->siz_w - asz_w; /* size diff in words between old and new */ + + c3_dessert(asz_w && ((asz_w & u3a_walign-1) == 0)); /* new allocation size must be non-zero and DWORD multiple */ + c3_dessert(end_w < (box_w + box_u->siz_w)); /* desired alloc end must not exceed existing boundaries */ + c3_dessert(((uintptr_t)end_w & u3a_balign-1) == 0); /* address of box getting freed must be DWORD aligned */ + c3_dessert((bsz_w & u3a_walign-1) == 0); /* size of box getting freed must be DWORD multiple */ + + _box_attach(_box_make(end_w, bsz_w, 0)); /* free the unneeded space */ + + box_u->siz_w = asz_w; + box_w[asz_w - 1] = asz_w; + } +} + +/* u3a_calloc(): allocate and zero-initialize array +*/ +void* +u3a_calloc(size_t num_i, size_t len_i) +{ + size_t byt_i = num_i * len_i; + c3_w* out_w; + + u3_assert(byt_i / len_i == num_i); + out_w = u3a_malloc(byt_i); + memset(out_w, 0, byt_i); + + return out_w; +} + +/* u3a_malloc(): aligned storage measured in bytes. + + Internally pads allocations to 16-byte alignment independent of DWORD + alignment ensured for word sized allocations. + +*/ +void* +u3a_malloc(size_t len_i) +{ + c3_w len_w = (c3_w)((len_i + 3) >> 2); + c3_w *ptr_w = _ca_walloc(len_w +1, 4, 1); /* +1 for word storing pad size */ + c3_w *out_w = c3_align(ptr_w + 1, 16, C3_ALGHI); + c3_w pad_w = u3a_outa(out_w) - u3a_outa(ptr_w); + + out_w[-1] = pad_w - 1; /* the size of the pad doesn't include the word storing the size (-1) */ + + c3_dessert(&out_w[len_w] /* alloced space after alignment is sufficient */ + <= &((c3_w*)u3a_botox(ptr_w))[u3a_botox(ptr_w)->siz_w]); + c3_dessert(pad_w <= 4 && pad_w > 0); + c3_dessert(&out_w[-1] > ptr_w); + + return out_w; +} + +/* u3a_cellblock(): allocate a block of cells on the hat. + + XXX beware when we stop boxing cells and QWORD align references. Alignment + not guaranteed to be preserved after a call. +*/ +static c3_o +u3a_cellblock(c3_w num_w) +{ + u3p(u3a_fbox) fre_p; + c3_w i_w; + + if ( c3y == u3a_is_north(u3R) ) { + if ( u3R->cap_p <= (u3R->hat_p + (num_w * u3a_minimum) + (1 << u3a_page)) ) { + return c3n; + } + else { + u3_post cel_p = u3R->all.cel_p; + u3_post hat_p = u3R->hat_p; + u3R->hat_p += (num_w * u3a_minimum); + + for ( i_w = 0; i_w < num_w; i_w++) { + u3_post all_p = hat_p; + void* box_v = u3a_into(all_p); + u3a_box* box_u = box_v; + c3_w* box_w = box_v; + + // hand inline of _box_make(u3a_into(all_p), u3a_minimum, 1) + { + box_u->siz_w = u3a_minimum; + box_w[u3a_minimum - 1] = u3a_minimum; + box_u->use_w = 1; +#ifdef U3_MEMORY_DEBUG + box_u->cod_w = 0; + box_u->eus_w = 0; +#endif + } + hat_p += u3a_minimum; + + fre_p = u3of(u3a_fbox, box_u); + u3to(u3a_fbox, fre_p)->nex_p = cel_p; + cel_p = fre_p; + } + + u3R->all.cel_p = cel_p; + } + } + else { + if ( (u3R->cap_p + (num_w * u3a_minimum) + (1 << u3a_page)) >= u3R->hat_p ) { + return c3n; + } + else { + u3_post cel_p = u3R->all.cel_p; + u3_post hat_p = u3R->hat_p; + u3R->hat_p -= (num_w * u3a_minimum); + + for ( i_w = 0; i_w < num_w; i_w++ ) { + u3_post all_p = (hat_p -= u3a_minimum); + void* box_v = u3a_into(all_p); + u3a_box* box_u = box_v; + c3_w* box_w = box_v; + + // hand inline of _box_make(u3a_into(all_p), u3a_minimum, 1); + { + box_u->siz_w = u3a_minimum; + box_w[u3a_minimum - 1] = u3a_minimum; + box_u->use_w = 1; +# ifdef U3_MEMORY_DEBUG + box_u->cod_w = 0; + box_u->eus_w = 0; +# endif + } + fre_p = u3of(u3a_fbox, box_u); + u3to(u3a_fbox, fre_p)->nex_p = cel_p; + cel_p = fre_p; + } + + u3R->all.cel_p = cel_p; + } + } + _box_count(num_w * u3a_minimum); + return c3y; +} + +/* u3a_celloc(): allocate a cell. + XXX beware when we stop boxing cells and QWORD align references +*/ +c3_w* +u3a_celloc(void) +{ +#ifdef U3_CPU_DEBUG + u3R->pro.cel_d++; +#endif + +#ifdef U3_MEMORY_DEBUG + if ( u3C.wag_w & u3o_debug_ram ) { + return u3a_walloc(c3_wiseof(u3a_cell)); + } +#endif + + u3p(u3a_fbox) cel_p; + + if ( !(cel_p = u3R->all.cel_p) ) { + if ( u3R == &(u3H->rod_u) ) { + // no cell allocator on home road + // + return u3a_walloc(c3_wiseof(u3a_cell)); + } + else { + if ( c3n == u3a_cellblock(4096) ) { + return u3a_walloc(c3_wiseof(u3a_cell)); + } + cel_p = u3R->all.cel_p; + } + } + + { + u3a_box* box_u = &(u3to(u3a_fbox, cel_p)->box_u); + + + box_u->use_w = 1; + u3R->all.cel_p = u3to(u3a_fbox, cel_p)->nex_p; + + _box_count(-(u3a_minimum)); + + return u3a_boxto(box_u); + } +} + +/* u3a_cfree(): free a cell. +*/ +void +u3a_cfree(c3_w* cel_w) +{ +#ifdef U3_MEMORY_DEBUG + if ( u3C.wag_w & u3o_debug_ram ) { + u3a_wfree(cel_w); + return; + } +#endif + + if ( u3R == &(u3H->rod_u) ) { + u3a_wfree(cel_w); + return; + } + else { + u3a_box* box_u = u3a_botox(cel_w); + u3p(u3a_fbox) fre_p = u3of(u3a_fbox, box_u); + + _box_count(u3a_minimum); + + u3to(u3a_fbox, fre_p)->nex_p = u3R->all.cel_p; + u3R->all.cel_p = fre_p; + } +} + +/* u3a_realloc(): aligned realloc in bytes. +*/ +void* +u3a_realloc(void* lag_v, size_t len_i) +{ + if ( !lag_v ) { + return u3a_malloc(len_i); + } + else { + c3_w len_w = (c3_w)((len_i + 3) >> 2); + c3_w* lag_w = lag_v; + c3_w pad_w = lag_w[-1]; + c3_w* org_w = lag_w - (pad_w + 1); + u3a_box* box_u = u3a_botox((void *)org_w); + c3_w* old_w = lag_v; + c3_w tiz_w = c3_min(box_u->siz_w, len_w); + { + c3_w* new_w = u3a_malloc(len_i); + c3_w i_w; + + for ( i_w = 0; i_w < tiz_w; i_w++ ) { + new_w[i_w] = old_w[i_w]; + } + u3a_wfree(org_w); + return new_w; + } + } +} + +/* u3a_free(): free for aligned malloc. +*/ +void +u3a_free(void* tox_v) +{ + if (NULL == tox_v) + return; + + c3_w* tox_w = tox_v; + c3_w pad_w = tox_w[-1]; + c3_w* org_w = tox_w - (pad_w + 1); + + // u3l_log("free %p %p", org_w, tox_w); + u3a_wfree(org_w); +} + +/* _me_wash_north(): clean up mug slots after copy. +*/ +static void _me_wash_north(u3_noun dog); +static void +_me_wash_north_in(u3_noun som) +{ + if ( _(u3a_is_cat(som)) ) return; + if ( !_(u3a_north_is_junior(u3R, som)) ) return; + + _me_wash_north(som); +} +static void +_me_wash_north(u3_noun dog) +{ + u3_assert(c3y == u3a_is_dog(dog)); + // u3_assert(c3y == u3a_north_is_junior(u3R, dog)); + { + u3a_noun* dog_u = u3a_to_ptr(dog); + + if ( dog_u->mug_w == 0 ) return; + + dog_u->mug_w = 0; // power wash + // if ( dog_u->mug_w >> 31 ) { dog_u->mug_w = 0; } + + if ( _(u3a_is_pom(dog)) ) { + u3a_cell* god_u = (u3a_cell *)(void *)dog_u; + + _me_wash_north_in(god_u->hed); + _me_wash_north_in(god_u->tel); + } + } +} + +/* _me_wash_south(): clean up mug slots after copy. +*/ +static void _me_wash_south(u3_noun dog); +static void +_me_wash_south_in(u3_noun som) +{ + if ( _(u3a_is_cat(som)) ) return; + if ( !_(u3a_south_is_junior(u3R, som)) ) return; + + _me_wash_south(som); +} +static void +_me_wash_south(u3_noun dog) +{ + u3_assert(c3y == u3a_is_dog(dog)); + // u3_assert(c3y == u3a_south_is_junior(u3R, dog)); + { + u3a_noun* dog_u = u3a_to_ptr(dog); + + if ( dog_u->mug_w == 0 ) return; + + dog_u->mug_w = 0; // power wash + // if ( dog_u->mug_w >> 31 ) { dog_u->mug_w = 0; } + + if ( _(u3a_is_pom(dog)) ) { + u3a_cell* god_u = (u3a_cell *)(void *)dog_u; + + _me_wash_south_in(god_u->hed); + _me_wash_south_in(god_u->tel); + } + } +} + +/* u3a_wash(): wash all lazy mugs. RETAIN. +*/ +void +u3a_wash(u3_noun som) +{ + if ( _(u3a_is_cat(som)) ) { + return; + } + if ( _(u3a_is_north(u3R)) ) { + if ( _(u3a_north_is_junior(u3R, som)) ) { + _me_wash_north(som); + } + } + else { + if ( _(u3a_south_is_junior(u3R, som)) ) { + _me_wash_south(som); + } + } +} + +/* _me_gain_use(): increment use count. +*/ +static void +_me_gain_use(u3_noun dog) +{ + c3_w* dog_w = u3a_to_ptr(dog); + u3a_box* box_u = u3a_botox(dog_w); + + if ( 0x7fffffff == box_u->use_w ) { + u3l_log("fail in _me_gain_use"); + u3m_bail(c3__fail); + } + else { + if ( box_u->use_w == 0 ) { + u3m_bail(c3__foul); + } + box_u->use_w += 1; + +#ifdef U3_MEMORY_DEBUG + // enable to (maybe) help track down leaks + // + // if ( u3_Code && !box_u->cod_w ) { box_u->cod_w = u3_Code; } +#endif + } +} + +#undef VERBOSE_TAKE + +/* _ca_take_atom(): reallocate an indirect atom off the stack. +*/ +static inline u3_atom +_ca_take_atom(u3a_atom* old_u) +{ + c3_w* new_w = u3a_walloc(old_u->len_w + c3_wiseof(u3a_atom)); + u3a_atom* new_u = (u3a_atom*)(void *)new_w; + u3_noun new = u3a_to_pug(u3a_outa(new_u)); + +#ifdef VERBOSE_TAKE + u3l_log("%s: atom %p to %p", ( c3y == u3a_is_north(u3R) ) + ? "north" + : "south", + old_u, + new_u); +#endif + + // XX use memcpy? + // + new_u->mug_w = old_u->mug_w; + new_u->len_w = old_u->len_w; + { + c3_w i_w; + + for ( i_w=0; i_w < old_u->len_w; i_w++ ) { + new_u->buf_w[i_w] = old_u->buf_w[i_w]; + } + } + + // borrow mug slot to record new destination in [old_u] + // + old_u->mug_w = new; + + return new; +} + +/* _ca_take_cell(): reallocate a cell off the stack. +*/ +static inline u3_cell +_ca_take_cell(u3a_cell* old_u, u3_noun hed, u3_noun tel) +{ + c3_w* new_w = u3a_celloc(); + u3a_cell* new_u = (u3a_cell*)(void *)new_w; + u3_cell new = u3a_to_pom(u3a_outa(new_u)); + +#ifdef VERBOSE_TAKE + u3l_log("%s: cell %p to %p", ( c3y == u3a_is_north(u3R) ) + ? "north" + : "south", + old_u, + new_u); +#endif + + new_u->mug_w = old_u->mug_w; + new_u->hed = hed; + new_u->tel = tel; + + // borrow mug slot to record new destination in [old_u] + // + old_u->mug_w = new; + + return new; +} + +/* _ca_take: stack frame for recording cell travesal +** (u3_none == hed) == head-frame +*/ +typedef struct _ca_take +{ + u3_weak hed; // taken head + u3_cell old; // old cell +} _ca_take; + +/* _ca_take_next_south: take next noun, pushing cells on stack. +*/ +static inline u3_noun +_ca_take_next_north(u3a_pile* pil_u, u3_noun veb) +{ + while ( 1 ) { + // direct atoms and senior refs are not counted. + // + if ( (c3y == u3a_is_cat(veb)) + || (c3y == u3a_north_is_senior(u3R, veb)) ) + { + return veb; + } + // not junior; normal (heap) refs on our road are counted. + // + else if ( c3n == u3a_north_is_junior(u3R, veb) ) { + _me_gain_use(veb); // bypass branches in u3k() + return veb; + } + // junior (stack) refs are copied. + // + else { + u3a_noun* veb_u = u3a_to_ptr(veb); + + // 32-bit mug_w: already copied [veb] and [mug_w] is the new ref. + // + if ( veb_u->mug_w >> 31 ) { + u3_noun nov = (u3_noun)veb_u->mug_w; + + u3_assert( c3y == u3a_north_is_normal(u3R, nov) ); + +#ifdef VERBOSE_TAKE + u3l_log("north: %p is already %p", veb_u, u3a_to_ptr(nov)); +#endif + + _me_gain_use(nov); // bypass branches in u3k() + return nov; + } + else if ( c3y == u3a_is_atom(veb) ) { + return _ca_take_atom((u3a_atom*)veb_u); + } + else { + u3a_cell* old_u = (u3a_cell*)veb_u; + _ca_take* fam_u = u3a_push(pil_u); + + fam_u->hed = u3_none; + fam_u->old = veb; + + veb = old_u->hed; + continue; + } + } + } +} + +/* _ca_take_next_south: take next noun, pushing cells on stack. +*/ +static inline u3_noun +_ca_take_next_south(u3a_pile* pil_u, u3_noun veb) +{ + while ( 1 ) { + // direct atoms and senior refs are not counted. + // + if ( (c3y == u3a_is_cat(veb)) + || (c3y == u3a_south_is_senior(u3R, veb)) ) + { + return veb; + } + // not junior; a normal pointer in our road -- refcounted + // + else if ( c3n == u3a_south_is_junior(u3R, veb) ) { + _me_gain_use(veb); // bypass branches in u3k() + return veb; + } + // junior (stack) refs are copied. + // + else { + u3a_noun* veb_u = u3a_to_ptr(veb); + + // 32-bit mug_w: already copied [veb] and [mug_w] is the new ref. + // + if ( veb_u->mug_w >> 31 ) { + u3_noun nov = (u3_noun)veb_u->mug_w; + + u3_assert( c3y == u3a_south_is_normal(u3R, nov) ); + +#ifdef VERBOSE_TAKE + u3l_log("south: %p is already %p", veb_u, u3a_to_ptr(nov)); +#endif + + _me_gain_use(nov); // bypass branches in u3k() + return nov; + } + else if ( c3y == u3a_is_atom(veb) ) { + return _ca_take_atom((u3a_atom*)veb_u); + } + else { + u3a_cell* old_u = (u3a_cell*)veb_u; + _ca_take* fam_u = u3a_push(pil_u); + + fam_u->hed = u3_none; + fam_u->old = veb; + + veb = old_u->hed; + continue; + } + } + } +} + +/* _ca_take_north(): in a north road, gain, copying juniors (from stack). +*/ +static u3_noun +_ca_take_north(u3_noun veb) +{ + u3_noun pro; + _ca_take* fam_u; + u3a_pile pil_u; + u3a_pile_prep(&pil_u, sizeof(*fam_u)); + + // commence taking + // + pro = _ca_take_next_north(&pil_u, veb); + + // process cell results + // + if ( c3n == u3a_pile_done(&pil_u) ) { + fam_u = u3a_peek(&pil_u); + + do { + // head-frame: stash copy and continue into the tail + // + if ( u3_none == fam_u->hed ) { + u3a_cell* old_u = u3a_to_ptr(fam_u->old); + fam_u->hed = pro; + pro = _ca_take_next_north(&pil_u, old_u->tel); + fam_u = u3a_peek(&pil_u); + } + // tail-frame: copy cell and pop the stack + // + else { + u3a_cell* old_u = u3a_to_ptr(fam_u->old); + pro = _ca_take_cell(old_u, fam_u->hed, pro); + fam_u = u3a_pop(&pil_u); + } + } while ( c3n == u3a_pile_done(&pil_u) ); + } + + return pro; +} +/* _ca_take_south(): in a south road, gain, copying juniors (from stack). +*/ +static u3_noun +_ca_take_south(u3_noun veb) +{ + u3_noun pro; + _ca_take* fam_u; + u3a_pile pil_u; + u3a_pile_prep(&pil_u, sizeof(*fam_u)); + + // commence taking + // + pro = _ca_take_next_south(&pil_u, veb); + + // process cell results + // + if ( c3n == u3a_pile_done(&pil_u) ) { + fam_u = u3a_peek(&pil_u); + + do { + // head-frame: stash copy and continue into the tail + // + if ( u3_none == fam_u->hed ) { + u3a_cell* old_u = u3a_to_ptr(fam_u->old); + fam_u->hed = pro; + pro = _ca_take_next_south(&pil_u, old_u->tel); + fam_u = u3a_peek(&pil_u); + } + // tail-frame: copy cell and pop the stack + // + else { + u3a_cell* old_u = u3a_to_ptr(fam_u->old); + pro = _ca_take_cell(old_u, fam_u->hed, pro); + fam_u = u3a_pop(&pil_u); + } + } while ( c3n == u3a_pile_done(&pil_u) ); + } + + return pro; +} + +/* u3a_take(): gain, copying juniors. +*/ +u3_noun +u3a_take(u3_noun veb) +{ + u3_noun pro; + u3t_on(coy_o); + + u3_assert(u3_none != veb); + + pro = ( c3y == u3a_is_north(u3R) ) + ? _ca_take_north(veb) + : _ca_take_south(veb); + + u3t_off(coy_o); + return pro; +} + +/* u3a_left(): true of junior if preserved. +*/ +c3_o +u3a_left(u3_noun som) +{ + if ( _(u3a_is_cat(som)) || + !_(u3a_is_junior(u3R, som)) ) + { + return c3y; + } + else { + u3a_noun* dog_u = u3a_to_ptr(som); + + return __(0 != (dog_u->mug_w >> 31)); + } +} + +/* _me_gain_north(): gain on a north road. +*/ +static u3_noun +_me_gain_north(u3_noun dog) +{ + if ( c3y == u3a_north_is_senior(u3R, dog) ) { + /* senior pointers are not refcounted + */ + return dog; + } + else { + /* junior nouns are disallowed + */ + u3_assert(!_(u3a_north_is_junior(u3R, dog))); + + /* normal pointers are refcounted + */ + _me_gain_use(dog); + return dog; + } +} + +/* _me_gain_south(): gain on a south road. +*/ +static u3_noun +_me_gain_south(u3_noun dog) +{ + if ( c3y == u3a_south_is_senior(u3R, dog) ) { + /* senior pointers are not refcounted + */ + return dog; + } + else { + /* junior nouns are disallowed + */ + u3_assert(!_(u3a_south_is_junior(u3R, dog))); + + /* normal nouns are refcounted + */ + _me_gain_use(dog); + return dog; + } +} + +/* _me_lose_north(): lose on a north road. +*/ +static void +_me_lose_north(u3_noun dog) +{ +top: + if ( c3y == u3a_north_is_normal(u3R, dog) ) { + c3_w* dog_w = u3a_to_ptr(dog); + u3a_box* box_u = u3a_botox(dog_w); + + if ( box_u->use_w > 1 ) { + box_u->use_w -= 1; + } + else { + if ( 0 == box_u->use_w ) { + u3m_bail(c3__foul); + } + else { + if ( _(u3a_is_pom(dog)) ) { + u3a_cell* dog_u = (void *)dog_w; + u3_noun h_dog = dog_u->hed; + u3_noun t_dog = dog_u->tel; + + if ( !_(u3a_is_cat(h_dog)) ) { + _me_lose_north(h_dog); + } + u3a_cfree(dog_w); + if ( !_(u3a_is_cat(t_dog)) ) { + dog = t_dog; + goto top; + } + } + else { + u3a_wfree(dog_w); + } + } + } + } +} + +/* _me_lose_south(): lose on a south road. +*/ +static void +_me_lose_south(u3_noun dog) +{ +top: + if ( c3y == u3a_south_is_normal(u3R, dog) ) { + c3_w* dog_w = u3a_to_ptr(dog); + u3a_box* box_u = u3a_botox(dog_w); + + if ( box_u->use_w > 1 ) { + box_u->use_w -= 1; + } + else { + if ( 0 == box_u->use_w ) { + u3m_bail(c3__foul); + } + else { + if ( _(u3a_is_pom(dog)) ) { + u3a_cell* dog_u = (void *)dog_w; + u3_noun h_dog = dog_u->hed; + u3_noun t_dog = dog_u->tel; + + if ( !_(u3a_is_cat(h_dog)) ) { + _me_lose_south(h_dog); + } + u3a_cfree(dog_w); + if ( !_(u3a_is_cat(t_dog)) ) { + dog = t_dog; + goto top; + } + } + else { + u3a_wfree(dog_w); + } + } + } + } +} + +/* u3a_gain(): gain a reference count in normal space. +*/ +u3_noun +u3a_gain(u3_noun som) +{ + u3t_on(mal_o); + u3_assert(u3_none != som); + + if ( !_(u3a_is_cat(som)) ) { + som = _(u3a_is_north(u3R)) + ? _me_gain_north(som) + : _me_gain_south(som); + } + u3t_off(mal_o); + + return som; +} + +/* u3a_lose(): lose a reference count. +*/ +void +u3a_lose(u3_noun som) +{ + u3t_on(mal_o); + if ( !_(u3a_is_cat(som)) ) { + if ( _(u3a_is_north(u3R)) ) { + _me_lose_north(som); + } else { + _me_lose_south(som); + } + } + u3t_off(mal_o); +} + +/* u3a_use(): reference count. +*/ +c3_w +u3a_use(u3_noun som) +{ + if ( _(u3a_is_cat(som)) ) { + return 1; + } + else { + c3_w* dog_w = u3a_to_ptr(som); + u3a_box* box_u = u3a_botox(dog_w); + + return box_u->use_w; + } +} + +#define SWAP(l, r) \ + do { typeof(l) t = l; l = r; r = t; } while (0) + +/* _ca_wed_our(): unify [a] and [b] on u3R. +*/ +static inline c3_o +_ca_wed_our(u3_noun *restrict a, u3_noun *restrict b) +{ + c3_t asr_t = ( c3y == u3a_is_senior(u3R, *a) ); + c3_t bsr_t = ( c3y == u3a_is_senior(u3R, *b) ); + + if ( asr_t == bsr_t ) { + // both [a] and [b] are senior; we can't unify on u3R + // + if ( asr_t ) return c3n; + + // both are on u3R; keep the deeper address + // (and gain a reference) + // + // (N && <) || (S && >) + // XX consider keeping higher refcount instead + // + if ( (*a > *b) == (c3y == u3a_is_north(u3R)) ) SWAP(a, b); + + _me_gain_use(*a); + } + // one of [a] or [b] are senior; keep it + // + else if ( !asr_t ) SWAP(a, b); + + u3z(*b); + *b = *a; + return c3y; +} + +/* _ca_wed_you(): unify [a] and [b] on senior [rod_u]. leaks +*/ +static c3_o +_ca_wed_you(u3a_road* rod_u, u3_noun *restrict a, u3_noun *restrict b) +{ + // XX assume( rod_u != u3R ) + c3_t asr_t = ( c3y == u3a_is_senior(rod_u, *a) ); + c3_t bsr_t = ( c3y == u3a_is_senior(rod_u, *b) ); + + if ( asr_t == bsr_t ) { + // both [a] and [b] are senior; we can't unify on [rod_u] + // + if ( asr_t ) return c3n; + + // both are on [rod_u]; keep the deeper address + // (and gain a reference) + // + // (N && <) || (S && >) + // XX consider keeping higher refcount instead + // + if ( (*a > *b) == (c3y == u3a_is_north(rod_u)) ) SWAP(a, b); + + _me_gain_use(*a); + } + // one of [a] or [b] are senior; keep it + // + else if ( !asr_t ) SWAP(a, b); + + *b = *a; + return c3y; +} + +#undef SWAP + +/* u3a_wed(): unify noun references. +*/ +void +u3a_wed(u3_noun *restrict a, u3_noun *restrict b) +{ + // XX assume( *a != *b ) + u3_road* rod_u = u3R; + c3_o wed_o; + + if ( rod_u->kid_p ) return; + + wed_o = _ca_wed_our(a, b); + +#ifdef U3_MEMORY_DEBUG + return; +#else + if ( u3C.wag_w & u3o_debug_ram ) return; +#endif + + // while not at home, attempt to unify + // + // we try to unify on our road, and retry on senior roads + // until we succeed or reach the home road. + // + // we can't perform this kind of butchery on the home road, + // where asynchronous things can allocate. + // (XX anything besides u3t_samp?) + // + // when unifying on a higher road, we can't free nouns, + // because we can't track junior nouns that point into + // that road. + // + // this is just an implementation issue -- we could set use + // counts to 0 without actually freeing. but the allocator + // would have to be actually designed for this. + // (alternately, we could keep a deferred free-list) + // + // not freeing may generate spurious leaks, so we disable + // senior unification when debugging memory. this will + // cause a very slow boot process as the compiler compiles + // itself, constantly running into duplicates. + // + + while ( (c3n == wed_o) + && rod_u->par_p + && (&u3H->rod_u != (rod_u = u3to(u3_road, rod_u->par_p))) ) + { + wed_o = _ca_wed_you(rod_u, a, b); + } +} + +/* u3a_luse(): check refcount sanity. +*/ +void +u3a_luse(u3_noun som) +{ + if ( 0 == u3a_use(som) ) { + fprintf(stderr, "loom: insane %d 0x%x\r\n", som, som); + abort(); + } + if ( _(u3du(som)) ) { + u3a_luse(u3h(som)); + u3a_luse(u3t(som)); + } +} + +/* u3a_mark_ptr(): mark a pointer for gc. Produce size if first mark. +*/ +c3_w +u3a_mark_ptr(void* ptr_v) +{ + if ( _(u3a_is_north(u3R)) ) { + if ( !((ptr_v >= u3a_into(u3R->rut_p)) && + (ptr_v < u3a_into(u3R->hat_p))) ) + { + return 0; + } + } + else { + if ( !((ptr_v >= u3a_into(u3R->hat_p)) && + (ptr_v < u3a_into(u3R->rut_p))) ) + { + return 0; + } + } + { + u3a_box* box_u = u3a_botox(ptr_v); + c3_w siz_w; + +#ifdef U3_MEMORY_DEBUG + if ( 0 == box_u->eus_w ) { + siz_w = box_u->siz_w; + } + else if ( 0xffffffff == box_u->eus_w ) { // see u3a_prof() + siz_w = 0xffffffff; + box_u->eus_w = 0; + } + else { + siz_w = 0; + } + box_u->eus_w += 1; +#else + c3_ws use_ws = (c3_ws)box_u->use_w; + + if ( use_ws == 0 ) { + fprintf(stderr, "%p is bogus\r\n", ptr_v); + siz_w = 0; + } + else { + u3_assert(use_ws != 0); + + if ( 0x80000000 == (c3_w)use_ws ) { // see u3a_prof() + use_ws = -1; + siz_w = 0xffffffff; + } + else if ( use_ws < 0 ) { + use_ws -= 1; + siz_w = 0; + } + else { + use_ws = -1; + siz_w = box_u->siz_w; + } + box_u->use_w = (c3_w)use_ws; + } +#endif + return siz_w; + } +} + +u3_post +u3a_rewritten(u3_post ptr_v) +{ + u3a_box* box_u = u3a_botox(u3a_into(ptr_v)); + c3_w* box_w = (c3_w*) box_u; + return (u3_post)box_w[box_u->siz_w - 1]; +} + +u3_noun +u3a_rewritten_noun(u3_noun som) +{ + if ( c3y == u3a_is_cat(som) ) { + return som; + } + u3_post som_p = u3a_rewritten(u3a_to_off(som)); + if ( c3y == u3a_is_pug(som) ) { + return u3a_to_pug(som_p); + } + else { + return u3a_to_pom(som_p); + } +} + +/* u3a_mark_mptr(): mark a malloc-allocated ptr for gc. +*/ +c3_w +u3a_mark_mptr(void* ptr_v) +{ + c3_w* ptr_w = ptr_v; + c3_w pad_w = ptr_w[-1]; + c3_w* org_w = ptr_w - (pad_w + 1); + + return u3a_mark_ptr(org_w); +} + +/* u3a_mark_noun(): mark a noun for gc. Produce size. +*/ +c3_w +u3a_mark_noun(u3_noun som) +{ + c3_w siz_w = 0; + + while ( 1 ) { + if ( _(u3a_is_senior(u3R, som)) ) { + return siz_w; + } + else { + c3_w* dog_w = u3a_to_ptr(som); + c3_w new_w = u3a_mark_ptr(dog_w); + + if ( 0 == new_w || 0xffffffff == new_w ) { // see u3a_mark_ptr() + return siz_w; + } + else { + siz_w += new_w; + if ( _(u3du(som)) ) { + siz_w += u3a_mark_noun(u3h(som)); + som = u3t(som); + } + else return siz_w; + } + } + } +} + +/* u3a_count_noun(): count size of pointer. +*/ +c3_w +u3a_count_ptr(void* ptr_v) +{ + if ( _(u3a_is_north(u3R)) ) { + if ( !((ptr_v >= u3a_into(u3R->rut_p)) && + (ptr_v < u3a_into(u3R->hat_p))) ) + { + return 0; + } + } + else { + if ( !((ptr_v >= u3a_into(u3R->hat_p)) && + (ptr_v < u3a_into(u3R->rut_p))) ) + { + return 0; + } + } + { + u3a_box* box_u = u3a_botox(ptr_v); + c3_w siz_w; + + c3_ws use_ws = (c3_ws)box_u->use_w; + + if ( use_ws == 0 ) { + fprintf(stderr, "%p is bogus\r\n", ptr_v); + siz_w = 0; + } + else { + u3_assert(use_ws != 0); + + if ( use_ws < 0 ) { + siz_w = 0; + } + else { + use_ws = -use_ws; + siz_w = box_u->siz_w; + } + box_u->use_w = (c3_w)use_ws; + } + return siz_w; + } +} + +/* u3a_count_noun(): count size of noun. +*/ +c3_w +u3a_count_noun(u3_noun som) +{ + c3_w siz_w = 0; + + while ( 1 ) { + if ( _(u3a_is_senior(u3R, som)) ) { + return siz_w; + } + else { + c3_w* dog_w = u3a_to_ptr(som); + c3_w new_w = u3a_count_ptr(dog_w); + + if ( 0 == new_w ) { + return siz_w; + } + else { + siz_w += new_w; + if ( _(u3du(som)) ) { + siz_w += u3a_count_noun(u3h(som)); + som = u3t(som); + } + else return siz_w; + } + } + } +} + +/* u3a_discount_ptr(): clean up after counting a pointer. +*/ +c3_w +u3a_discount_ptr(void* ptr_v) +{ + if ( _(u3a_is_north(u3R)) ) { + if ( !((ptr_v >= u3a_into(u3R->rut_p)) && + (ptr_v < u3a_into(u3R->hat_p))) ) + { + return 0; + } + } + else { + if ( !((ptr_v >= u3a_into(u3R->hat_p)) && + (ptr_v < u3a_into(u3R->rut_p))) ) + { + return 0; + } + } + u3a_box* box_u = u3a_botox(ptr_v); + c3_w siz_w; + + c3_ws use_ws = (c3_ws)box_u->use_w; + + if ( use_ws == 0 ) { + fprintf(stderr, "%p is bogus\r\n", ptr_v); + siz_w = 0; + } + else { + u3_assert(use_ws != 0); + + if ( use_ws < 0 ) { + use_ws = -use_ws; + siz_w = box_u->siz_w; + } + else { + siz_w = 0; + } + box_u->use_w = (c3_w)use_ws; + } + + return siz_w; +} + +/* u3a_discount_noun(): clean up after counting a noun. +*/ +c3_w +u3a_discount_noun(u3_noun som) +{ + c3_w siz_w = 0; + + while ( 1 ) { + if ( _(u3a_is_senior(u3R, som)) ) { + return siz_w; + } + else { + c3_w* dog_w = u3a_to_ptr(som); + c3_w new_w = u3a_discount_ptr(dog_w); + + if ( 0 == new_w ) { + return siz_w; + } + else { + siz_w += new_w; + if ( _(u3du(som)) ) { + siz_w += u3a_discount_noun(u3h(som)); + som = u3t(som); + } + else return siz_w; + } + } + } +} + +/* u3a_print_time: print microsecond time. +*/ +void +u3a_print_time(c3_c* str_c, c3_c* cap_c, c3_d mic_d) +{ + u3_assert( 0 != str_c ); + + c3_w sec_w = (mic_d / 1000000); + c3_w mec_w = (mic_d % 1000000) / 1000; + c3_w mic_w = (mic_d % 1000); + + if ( sec_w ) { + sprintf(str_c, "%s s/%d.%03d.%03d", cap_c, sec_w, mec_w, mic_w); + } + else if ( mec_w ) { + sprintf(str_c, "%s ms/%d.%03d", cap_c, mec_w, mic_w); + } + else { + sprintf(str_c, "%s \xc2\xb5s/%d", cap_c, mic_w); + } +} + +/* u3a_print_memory: print memory amount. +*/ +void +u3a_print_memory(FILE* fil_u, c3_c* cap_c, c3_w wor_w) +{ + u3_assert( 0 != fil_u ); + + c3_z byt_z = ((c3_z)wor_w * 4); + c3_z gib_z = (byt_z / 1000000000); + c3_z mib_z = (byt_z % 1000000000) / 1000000; + c3_z kib_z = (byt_z % 1000000) / 1000; + c3_z bib_z = (byt_z % 1000); + + if ( byt_z ) { + if ( gib_z ) { + fprintf(fil_u, "%s: GB/%" PRIc3_z ".%03" PRIc3_z ".%03" PRIc3_z ".%03" PRIc3_z "\r\n", + cap_c, gib_z, mib_z, kib_z, bib_z); + } + else if ( mib_z ) { + fprintf(fil_u, "%s: MB/%" PRIc3_z ".%03" PRIc3_z ".%03" PRIc3_z "\r\n", + cap_c, mib_z, kib_z, bib_z); + } + else if ( kib_z ) { + fprintf(fil_u, "%s: KB/%" PRIc3_z ".%03" PRIc3_z "\r\n", + cap_c, kib_z, bib_z); + } + else if ( bib_z ) { + fprintf(fil_u, "%s: B/%" PRIc3_z "\r\n", + cap_c, bib_z); + } + } +} + +/* u3a_maid(): maybe print memory. +*/ +c3_w +u3a_maid(FILE* fil_u, c3_c* cap_c, c3_w wor_w) +{ + if ( 0 != fil_u ) { + u3a_print_memory(fil_u, cap_c, wor_w); + } + return wor_w; +} + +/* _ca_print_memory(): un-captioned u3a_print_memory(). +*/ +static void +_ca_print_memory(FILE* fil_u, c3_w byt_w) +{ + c3_w gib_w = (byt_w / 1000000000); + c3_w mib_w = (byt_w % 1000000000) / 1000000; + c3_w kib_w = (byt_w % 1000000) / 1000; + c3_w bib_w = (byt_w % 1000); + + if ( gib_w ) { + fprintf(fil_u, "GB/%d.%03d.%03d.%03d\r\n", + gib_w, mib_w, kib_w, bib_w); + } + else if ( mib_w ) { + fprintf(fil_u, "MB/%d.%03d.%03d\r\n", mib_w, kib_w, bib_w); + } + else if ( kib_w ) { + fprintf(fil_u, "KB/%d.%03d\r\n", kib_w, bib_w); + } + else { + fprintf(fil_u, "B/%d\r\n", bib_w); + } +} + +/* u3a_quac_free: free quac memory. +*/ +void +u3a_quac_free(u3m_quac* qua_u) +{ + c3_w i_w = 0; + while ( qua_u->qua_u[i_w] != NULL ) { + u3a_quac_free(qua_u->qua_u[i_w]); + i_w++; + } + c3_free(qua_u->nam_c); + c3_free(qua_u->qua_u); + c3_free(qua_u); +} + +/* u3a_prof(): mark/measure/print memory profile. RETAIN. +*/ +u3m_quac* +u3a_prof(FILE* fil_u, u3_noun mas) +{ + u3m_quac* pro_u = c3_calloc(sizeof(*pro_u)); + u3_noun h_mas, t_mas; + + if ( c3n == u3r_cell(mas, &h_mas, &t_mas) ) { + fprintf(fil_u, "mistyped mass\r\n"); + c3_free(pro_u); + return NULL; + } + else if ( c3y == u3du(h_mas) ) { + fprintf(fil_u, "mistyped mass head\r\n"); + { + c3_c* lab_c = u3m_pretty(h_mas); + fprintf(fil_u, "h_mas: %s", lab_c); + c3_free(lab_c); + } + c3_free(pro_u); + return NULL; + } + else { + + u3_noun it_mas, tt_mas; + + if ( c3n == u3r_cell(t_mas, &it_mas, &tt_mas) ) { + fprintf(fil_u, "mistyped mass tail\r\n"); + c3_free(pro_u); + return NULL; + } + else if ( c3y == it_mas ) { + c3_w siz_w = u3a_mark_noun(tt_mas); + +#if 1 + /* The basic issue here is that tt_mas is included in .sac + * (the whole profile), so they can't both be roots in the + * normal sense. When we mark .sac later on, we want tt_mas + * to appear unmarked, but its children should be already + * marked. + * + * see u3a_mark_ptr(). + */ + if ( c3y == u3a_is_dog(tt_mas) ) { + u3a_box* box_u = u3a_botox(u3a_to_ptr(tt_mas)); +#ifdef U3_MEMORY_DEBUG + if ( 1 == box_u->eus_w ) { + box_u->eus_w = 0xffffffff; + } + else { + box_u->eus_w -= 1; + } +#else + if ( -1 == (c3_w)box_u->use_w ) { + box_u->use_w = 0x80000000; + } + else { + box_u->use_w += 1; + } +#endif + } +#endif + pro_u->nam_c = u3r_string(h_mas); + pro_u->siz_w = siz_w*4; + pro_u->qua_u = NULL; + return pro_u; + + } + else if ( c3n == it_mas ) { + pro_u->qua_u = c3_malloc(sizeof(pro_u->qua_u)); + c3_w i_w = 0; + c3_t bad_t = 0; + while ( c3y == u3du(tt_mas) ) { + u3m_quac* new_u = u3a_prof(fil_u, u3h(tt_mas)); + if ( NULL == new_u ) { + bad_t = 1; + } else { + pro_u->qua_u = c3_realloc(pro_u->qua_u, (i_w + 2) * sizeof(pro_u->qua_u)); + pro_u->siz_w += new_u->siz_w; + pro_u->qua_u[i_w] = new_u; + } + tt_mas = u3t(tt_mas); + i_w++; + } + pro_u->qua_u[i_w] = NULL; + + if ( bad_t ) { + i_w = 0; + while ( pro_u->qua_u[i_w] != NULL ) { + u3a_quac_free(pro_u->qua_u[i_w]); + i_w++; + } + c3_free(pro_u->qua_u); + c3_free(pro_u); + return NULL; + } else { + pro_u->nam_c = u3r_string(h_mas); + return pro_u; + } + } + else { + fprintf(fil_u, "mistyped (strange) mass tail\r\n"); + c3_free(pro_u); + return NULL; + } + } +} + + +/* u3a_print_quac: print a memory report. +*/ + +void +u3a_print_quac(FILE* fil_u, c3_w den_w, u3m_quac* mas_u) +{ + u3_assert( 0 != fil_u ); + + if ( mas_u->siz_w ) { + fprintf(fil_u, "%*s%s: ", den_w, "", mas_u->nam_c); + + if ( mas_u->qua_u == NULL ) { + _ca_print_memory(fil_u, mas_u->siz_w); + } else { + fprintf(fil_u, "\r\n"); + c3_w i_w = 0; + while ( mas_u->qua_u[i_w] != NULL ) { + u3a_print_quac(fil_u, den_w+2, mas_u->qua_u[i_w]); + i_w++; + } + fprintf(fil_u, "%*s--", den_w, ""); + _ca_print_memory(fil_u, mas_u->siz_w); + } + } +} + +/* u3a_mark_road(): mark ad-hoc persistent road structures. +*/ +u3m_quac* +u3a_mark_road() +{ + u3m_quac** qua_u = c3_malloc(sizeof(*qua_u) * 9); + + qua_u[0] = c3_calloc(sizeof(*qua_u[0])); + qua_u[0]->nam_c = strdup("namespace"); + qua_u[0]->siz_w = u3a_mark_noun(u3R->ski.gul) * 4; + + qua_u[1] = c3_calloc(sizeof(*qua_u[1])); + qua_u[1]->nam_c = strdup("trace stack"); + qua_u[1]->siz_w = u3a_mark_noun(u3R->bug.tax) * 4; + + qua_u[2] = c3_calloc(sizeof(*qua_u[2])); + qua_u[2]->nam_c = strdup("trace buffer"); + qua_u[2]->siz_w = u3a_mark_noun(u3R->bug.mer) * 4; + + qua_u[3] = c3_calloc(sizeof(*qua_u[3])); + qua_u[3]->nam_c = strdup("profile batteries"); + qua_u[3]->siz_w = u3a_mark_noun(u3R->pro.don) * 4; + + qua_u[4] = c3_calloc(sizeof(*qua_u[4])); + qua_u[4]->nam_c = strdup("profile doss"); + qua_u[4]->siz_w = u3a_mark_noun(u3R->pro.day) * 4; + + qua_u[5] = c3_calloc(sizeof(*qua_u[5])); + qua_u[5]->nam_c = strdup("new profile trace"); + qua_u[5]->siz_w = u3a_mark_noun(u3R->pro.trace) * 4; + + qua_u[6] = c3_calloc(sizeof(*qua_u[6])); + qua_u[6]->nam_c = strdup("transient memoization cache"); + qua_u[6]->siz_w = u3h_mark(u3R->cax.har_p) * 4; + + qua_u[7] = c3_calloc(sizeof(*qua_u[7])); + qua_u[7]->nam_c = strdup("persistent memoization cache"); + qua_u[7]->siz_w = u3h_mark(u3R->cax.per_p) * 4; + + qua_u[8] = NULL; + + c3_w sum_w = 0; + for (c3_w i_w = 0; i_w < 8; i_w++) { + sum_w += qua_u[i_w]->siz_w; + } + + u3m_quac* tot_u = c3_malloc(sizeof(*tot_u)); + tot_u->nam_c = strdup("total road stuff"); + tot_u->siz_w = sum_w; + tot_u->qua_u = qua_u; + + return tot_u; +} + +/* u3a_reclaim(): clear ad-hoc persistent caches to reclaim memory. +*/ +void +u3a_reclaim(void) +{ + // clear the memoization cache + // + u3h_free(u3R->cax.har_p); + u3R->cax.har_p = u3h_new(); +} + +/* u3a_rewrite_compact(): rewrite pointers in ad-hoc persistent road structures. +*/ +void +u3a_rewrite_compact(void) +{ + u3a_rewrite_noun(u3R->ski.gul); + u3a_rewrite_noun(u3R->bug.tax); + u3a_rewrite_noun(u3R->bug.mer); + u3a_rewrite_noun(u3R->pro.don); + u3a_rewrite_noun(u3R->pro.day); + u3a_rewrite_noun(u3R->pro.trace); + u3h_rewrite(u3R->cax.har_p); + u3h_rewrite(u3R->cax.per_p); + + u3R->ski.gul = u3a_rewritten_noun(u3R->ski.gul); + u3R->bug.tax = u3a_rewritten_noun(u3R->bug.tax); + u3R->bug.mer = u3a_rewritten_noun(u3R->bug.mer); + u3R->pro.don = u3a_rewritten_noun(u3R->pro.don); + u3R->pro.day = u3a_rewritten_noun(u3R->pro.day); + u3R->pro.trace = u3a_rewritten_noun(u3R->pro.trace); + u3R->cax.har_p = u3a_rewritten(u3R->cax.har_p); + u3R->cax.per_p = u3a_rewritten(u3R->cax.per_p); +} + +/* _ca_print_box(): heuristically print the contents of an allocation box. +*/ +static c3_c* +_ca_print_box(u3a_box* box_u) +{ + // the loom offset pointing to the contents of box_u + // + c3_w box_w = u3a_outa(u3a_boxto(box_u)); + // box_u might not be a cell, we use the struct to inspect further + // + u3a_cell* cel_u = (u3a_cell*)box_u; + + if ( // a cell will never be bigger than the minimum allocation size + // + (u3a_minimum < box_u->siz_w) || + // this condition being true potentially corresponds to + // box_u containing an indirect atom of only one word. + // if the condition is false, we know box_u contains a cell. + // + ( (1 == (c3_w)cel_u->hed) && + (0x80000000 & (c3_w)cel_u->tel) ) ) + { + // box_u might not be an indirect atom, + // but it's always safe to print it as if it is one + // + u3a_atom* vat_u = (u3a_atom*)box_u; + u3_atom veb = u3a_to_pug(box_w); + + // skip atoms larger than 10 words + // XX print mugs or something + // + if ( 10 > vat_u->len_w ) { +#if 0 + /* For those times when you've really just got to crack open + * the box and see what's inside + */ + { + int i; + for ( i = 0; i < box_u->siz_w; i++ ) { + fprintf(stderr, "%08x ", (unsigned int)(((c3_w*)box_u)[i])); + } + fprintf(stderr, "\r\n"); + } +#endif + return 0; + } + + return u3m_pretty(veb); + } + else { + // box_u is definitely a cell + // + return u3m_pretty(u3a_to_pom(box_w)); + } +} + +/* _ca_print_leak(): print the details of a leaked allocation box. +*/ +#ifdef U3_MEMORY_DEBUG + +static void +_ca_print_leak(c3_c* cap_c, u3a_box* box_u, c3_w eus_w, c3_w use_w) +{ + fprintf(stderr, "%s: %p mug=%x (marked=%u swept=%u)\r\n", + cap_c, + (void *)box_u, + ((u3a_noun *)(u3a_boxto(box_u)))->mug_w, + eus_w, + use_w); + + if ( box_u->cod_w ) { + c3_c* cod_c = u3m_pretty(box_u->cod_w); + fprintf(stderr, "code: %s\r\n", cod_c); + c3_free(cod_c); + } + + u3a_print_memory(stderr, " size", box_u->siz_w); + + { + c3_c* dat_c = _ca_print_box(box_u); + fprintf(stderr, " data: %s\r\n", dat_c); + c3_free(dat_c); + } +} + +#else + +static void +_ca_print_leak(c3_c* cap_c, u3a_box* box_u, c3_ws use_ws) +{ + fprintf(stderr, "%s: %p mug=%x swept=%d\r\n", + cap_c, + (void *)box_u, + ((u3a_noun *)(u3a_boxto(box_u)))->mug_w, + use_ws); + + u3a_print_memory(stderr, " size", box_u->siz_w); + + { + c3_c* dat_c = _ca_print_box(box_u); + fprintf(stderr, " data: %s\r\n", dat_c); + c3_free(dat_c); + } +} + +#endif + +/* u3a_idle(): measure free-lists in [rod_u] +*/ +c3_w +u3a_idle(u3a_road* rod_u) +{ + c3_w i_w, fre_w = 0; + + for ( i_w = 0; i_w < u3a_fbox_no; i_w++ ) { + u3p(u3a_fbox) fre_p = rod_u->all.fre_p[i_w]; + + while ( fre_p ) { + u3a_fbox* fox_u = u3to(u3a_fbox, fre_p); + + fre_w += fox_u->box_u.siz_w; + fre_p = fox_u->nex_p; + } + } + + return fre_w; +} + +/* u3a_ream(): ream free-lists. +*/ +void +u3a_ream(void) +{ + u3p(u3a_fbox) lit_p; + u3a_fbox* fox_u; + c3_w sel_w, i_w; + + for ( i_w = 0; i_w < u3a_fbox_no; i_w++ ) { + lit_p = u3R->all.fre_p[i_w]; + + while ( lit_p ) { + fox_u = u3to(u3a_fbox, lit_p); + lit_p = fox_u->nex_p; + sel_w = _box_slot(fox_u->box_u.siz_w); + + if ( sel_w != i_w ) { + // inlined _box_detach() + // + { + u3p(u3a_fbox) fre_p = u3of(u3a_fbox, &(fox_u->box_u)); + u3p(u3a_fbox) pre_p = u3to(u3a_fbox, fre_p)->pre_p; + u3p(u3a_fbox) nex_p = u3to(u3a_fbox, fre_p)->nex_p; + + if ( nex_p ) { + if ( u3to(u3a_fbox, nex_p)->pre_p != fre_p ) { + u3_assert(!"loom: corrupt"); + } + u3to(u3a_fbox, nex_p)->pre_p = pre_p; + } + if ( pre_p ) { + if( u3to(u3a_fbox, pre_p)->nex_p != fre_p ) { + u3_assert(!"loom: corrupt"); + } + u3to(u3a_fbox, pre_p)->nex_p = nex_p; + } + else { + if ( fre_p != u3R->all.fre_p[i_w] ) { + u3_assert(!"loom: corrupt"); + } + u3R->all.fre_p[i_w] = nex_p; + } + } + + // inlined _box_attach() + { + u3p(u3a_fbox) fre_p = u3of(u3a_fbox, &(fox_u->box_u)); + u3p(u3a_fbox)* pfr_p = &u3R->all.fre_p[sel_w]; + u3p(u3a_fbox) nex_p = *pfr_p; + + u3to(u3a_fbox, fre_p)->pre_p = 0; + u3to(u3a_fbox, fre_p)->nex_p = nex_p; + if ( nex_p ) { + u3to(u3a_fbox, nex_p)->pre_p = fre_p; + } + (*pfr_p) = fre_p; + } + } + } + } +} + +/* u3a_sweep(): sweep a fully marked road. +*/ +c3_w +u3a_sweep(void) +{ + c3_w neg_w, pos_w, leq_w, weq_w; + + /* Measure allocated memory by counting the free list. + */ + { + c3_w end_w = u3a_heap(u3R); + c3_w fre_w = u3a_idle(u3R); + +#ifdef U3_CPU_DEBUG + if ( fre_w != u3R->all.fre_w ) { + fprintf(stderr, "fre discrepancy (%x): %x, %x, %x\r\n", u3R->par_p, + fre_w, u3R->all.fre_w, (u3R->all.fre_w - fre_w)); + } +#endif + neg_w = (end_w - fre_w); + } + + /* Sweep through the arena, repairing and counting leaks. + */ + pos_w = leq_w = weq_w = 0; + { + u3_post box_p = _(u3a_is_north(u3R)) ? u3R->rut_p : u3R->hat_p; + u3_post end_p = _(u3a_is_north(u3R)) ? u3R->hat_p : u3R->rut_p; + c3_w* box_w = u3a_into(box_p); + c3_w* end_w = u3a_into(end_p); + + while ( box_w < end_w ) { + u3a_box* box_u = (void *)box_w; + +#ifdef U3_MEMORY_DEBUG + /* I suspect these printfs fail hilariously in the case + * of non-direct atoms. We shouldn't unconditionally run + * u3a_to_pom(). In general, the condition + * box_u->siz_w > u3a_minimum is sufficient, but not necessary, + * for the box to represent an atom. The atoms between + * 2^31 and 2^32 are the exceptions. + * + * Update: so, apparently u3.md is incorrect, and a pug is just + * an indirect atom. This code should be altered to handle + * that. + */ + if ( box_u->use_w != box_u->eus_w ) { + if ( box_u->eus_w != 0 ) { + if ( box_u->use_w == 0 ) { + _ca_print_leak("dank", box_u, box_u->eus_w, box_u->use_w); + } + else { + _ca_print_leak("weak", box_u, box_u->eus_w, box_u->use_w); + } + + weq_w += box_u->siz_w; + } + else { + _ca_print_leak("leak", box_u, box_u->eus_w, box_u->use_w); + + leq_w += box_u->siz_w; + } + + box_u->use_w = box_u->eus_w; + } + else { + if ( box_u->use_w ) { + pos_w += box_u->siz_w; + } + } + box_u->eus_w = 0; +#else + c3_ws use_ws = (c3_ws)box_u->use_w; + + if ( use_ws > 0 ) { + _ca_print_leak("leak", box_u, use_ws); + + leq_w += box_u->siz_w; + box_u->use_w = 0; + + _box_attach(box_u); + } + else if ( use_ws < 0 ) { + pos_w += box_u->siz_w; + box_u->use_w = (c3_w)(0 - use_ws); + } +#endif + box_w += box_u->siz_w; + } + } + +#ifdef U3_MEMORY_DEBUG + { + c3_w tot_w = u3a_full(u3R); + c3_w caf_w = u3a_temp(u3R); + +#ifdef U3_CPU_DEBUG + if ( (0 != u3R->par_p) && (u3R->all.max_w > 1000000) ) { + u3a_print_memory(stderr, "available", (tot_w - pos_w)); + u3a_print_memory(stderr, "allocated", pos_w); + u3a_print_memory(stderr, "volatile", caf_w); + + u3a_print_memory(stderr, "maximum", u3R->all.max_w); + } +#endif + +#if 0 + u3a_print_memory(stderr, "available", (tot_w - pos_w)); + u3a_print_memory(stderr, "allocated", pos_w); + u3a_print_memory(stderr, "volatile", caf_w); +#endif + } +#endif + + u3a_print_memory(stderr, "leaked", leq_w); + u3a_print_memory(stderr, "weaked", weq_w); + + u3_assert( (pos_w + leq_w + weq_w) == neg_w ); + u3_assert( (0 == leq_w) && (0 == weq_w) ); + + return neg_w; +} + +/* u3a_pack_seek(): sweep the heap, modifying boxes to record new addresses. +*/ +void +u3a_pack_seek(u3a_road* rod_u) +{ + // the heap in [rod_u] is swept from "front" to "back". + // new locations are calculated for each in-use allocation box + // (simply the "deepest" linearly-available location), + // and stored in the box itself + // + // box_w: front of the heap + // end_w: back of the heap + // new_p: initial new location (data of first box) + // + c3_w* box_w = u3a_into(rod_u->rut_p); + c3_w* end_w = u3a_into(rod_u->hat_p); + u3_post new_p = (rod_u->rut_p + c3_wiseof(u3a_box)); + u3a_box* box_u; + c3_w siz_w; + + if ( c3y == u3a_is_north(rod_u) ) { + // north roads are swept low to high + // + // new locations are recorded in the trailing size word + // + while ( box_w < end_w ) { + box_u = (void *)box_w; + siz_w = box_u->siz_w; + + if ( box_u->use_w ) { + box_w[siz_w - 1] = new_p; + new_p += siz_w; + } + + box_w += siz_w; + } + } + // XX untested! + // + else { + // south roads are swept high to low + // + // new locations are recorded in the leading size word + // + // since we traverse backward, [siz_w] holds the size of the next box, + // and we must initially offset to point to the head of the first box + // + siz_w = box_w[-1]; + box_w -= siz_w; + new_p -= siz_w; + + while ( end_w < box_w ) { + box_u = (void *)box_w; + siz_w = box_w[-1]; + + if ( box_u->use_w ) { + box_u->siz_w = new_p; + new_p -= siz_w; + } + + box_w -= siz_w; + } + } +} +static u3_post +_ca_pack_move_north(c3_w* box_w, c3_w* end_w, u3_post new_p) +{ + u3a_box* old_u; + c3_w siz_w; + + // relocate allocation boxes + // + // new locations have been recorded in the trailing size word, + // and are recalculated and asserted to ensure sanity + // + while ( box_w < end_w ) { + old_u = (void *)box_w; + siz_w = old_u->siz_w; + + old_u->use_w &= 0x7fffffff; + + if ( old_u->use_w ) { + c3_w* new_w = (void*)u3a_botox(u3a_into(new_p)); + + u3_assert( box_w[siz_w - 1] == new_p ); + + // note: includes leading size + // + if ( new_w < box_w ) { + c3_w i_w; + + for ( i_w = 0; i_w < siz_w - 1; i_w++ ) { + new_w[i_w] = box_w[i_w]; + } + } + else { + u3_assert( new_w == box_w ); + } + + // restore trailing size + // + new_w[siz_w - 1] = siz_w; + + new_p += siz_w; + } + + box_w += siz_w; + } + + return new_p; +} + +// XX untested! +// +static u3_post +_ca_pack_move_south(c3_w* box_w, c3_w* end_w, u3_post new_p) +{ + u3a_box* old_u; + c3_w siz_w; + c3_o yuz_o; + + // offset initial addresses (point to the head of the first box) + // + siz_w = box_w[-1]; + box_w -= siz_w; + new_p -= siz_w; + + // relocate allocation boxes + // + // new locations have been recorded in the leading size word, + // and are recalculated and asserted to ensure sanity + // + while ( 1 ) { + old_u = (void *)box_w; + + old_u->use_w &= 0x7fffffff; + + if ( old_u->use_w ) { + c3_w* new_w = (void*)u3a_botox(u3a_into(new_p)); + + u3_assert( old_u->siz_w == new_p ); + + // note: includes trailing size + // + if ( new_w > box_w ) { + c3_w i_w; + + for ( i_w = 1; i_w < siz_w; i_w++ ) { + new_w[i_w] = box_w[i_w]; + } + } + else { + u3_assert( new_w == box_w ); + } + + // restore leading size + // + new_w[0] = siz_w; + + yuz_o = c3y; + } + else { + yuz_o = c3n; + } + + // move backwards only if there is more work to be done + // + if ( box_w > end_w ) { + siz_w = box_w[-1]; + box_w -= siz_w; + + if ( c3y == yuz_o ) { + new_p -= siz_w; + } + } + else { + u3_assert( end_w == box_w ); + break; + } + } + + return new_p; +} + +/* u3a_pack_move(): sweep the heap, moving boxes to new addresses. +*/ +void +u3a_pack_move(u3a_road* rod_u) +{ + // box_w: front of the heap + // end_w: back of the heap + // new_p: initial new location (data of first box) + // las_p: newly calculated last location + // + c3_w* box_w = u3a_into(rod_u->rut_p); + c3_w* end_w = u3a_into(rod_u->hat_p); + u3_post new_p = (rod_u->rut_p + c3_wiseof(u3a_box)); + u3_post las_p = ( c3y == u3a_is_north(rod_u) ) + ? _ca_pack_move_north(box_w, end_w, new_p) + : _ca_pack_move_south(box_w, end_w, new_p); + + rod_u->hat_p = (las_p - c3_wiseof(u3a_box)); + + // clear free lists and cell allocator + // + { + c3_w i_w; + for ( i_w = 0; i_w < u3a_fbox_no; i_w++ ) { + u3R->all.fre_p[i_w] = 0; + } + + u3R->all.fre_w = 0; + u3R->all.cel_p = 0; + } +} + +/* u3a_rewrite_ptr(): mark a pointer as already having been rewritten +*/ +c3_o +u3a_rewrite_ptr(void* ptr_v) +{ + u3a_box* box_u = u3a_botox(ptr_v); + if ( box_u->use_w & 0x80000000 ) { + /* Already rewritten. + */ + return c3n; + } + box_u->use_w |= 0x80000000; + return c3y; +} + +void +u3a_rewrite_noun(u3_noun som) +{ + if ( c3n == u3a_is_cell(som) ) { + return; + } + + if ( c3n == u3a_rewrite_ptr(u3a_to_ptr((som))) ) return; + + u3a_cell* cel = u3a_to_ptr(som); + + u3a_rewrite_noun(cel->hed); + u3a_rewrite_noun(cel->tel); + + cel->hed = u3a_rewritten_noun(cel->hed); + cel->tel = u3a_rewritten_noun(cel->tel); +} + +#if 0 +/* _ca_detect(): in u3a_detect(). +*/ +static c3_d +_ca_detect(u3p(u3h_root) har_p, u3_noun fum, u3_noun som, c3_d axe_d) +{ + while ( 1 ) { + if ( som == fum ) { + return axe_d; + } + else if ( !_(u3du(fum)) || (u3_none != u3h_get(har_p, fum)) ) { + return 0; + } + else { + c3_d eax_d; + + u3h_put(har_p, fum, 0); + + if ( 0 != (eax_d = _ca_detect(har_p, u3h(fum), som, 2ULL * axe_d)) ) { + return c3y; + } + else { + fum = u3t(fum); + axe_d = (2ULL * axe_d) + 1; + } + } + } +} + +/* u3a_detect(): for debugging, check if (som) is referenced from (fum). +** +** (som) and (fum) are both RETAINED. +*/ +c3_d +u3a_detect(u3_noun fum, u3_noun som) +{ + u3p(u3h_root) har_p = u3h_new(); + c3_o ret_o; + + ret_o = _ca_detect(har_p, fum, som, 1); + u3h_free(har_p); + + return ret_o; +} +#endif + +#ifdef U3_MEMORY_DEBUG +/* u3a_lush(): leak push. +*/ +c3_w +u3a_lush(c3_w lab_w) +{ + c3_w cod_w = u3_Code; + + u3_Code = lab_w; + return cod_w; +} + +/* u3a_lop(): leak pop. +*/ +void +u3a_lop(c3_w lab_w) +{ + u3_Code = lab_w; +} +#else +/* u3a_lush(): leak push. +*/ +c3_w +u3a_lush(c3_w lab_w) +{ + return 0; +} + +/* u3a_lop(): leak pop. +*/ +void +u3a_lop(c3_w lab_w) +{ +} +#endif + +/* u3a_walk_fore(): preorder traversal, visits ever limb of a noun. +** +** cells are visited *before* their heads and tails +** and can shortcircuit traversal by returning [c3n] +*/ +void +u3a_walk_fore(u3_noun a, + void* ptr_v, + void (*pat_f)(u3_atom, void*), + c3_o (*cel_f)(u3_noun, void*)) +{ + u3_noun* top; + u3a_pile pil_u; + + // initialize stack control; push argument + // + u3a_pile_prep(&pil_u, sizeof(u3_noun)); + top = u3a_push(&pil_u); + *top = a; + + while ( c3n == u3a_pile_done(&pil_u) ) { + // visit an atom, then pop the stack + // + if ( c3y == u3a_is_atom(a) ) { + pat_f(a, ptr_v); + top = u3a_pop(&pil_u); + } + // vist a cell, if c3n, pop the stack + // + else if ( c3n == cel_f(a, ptr_v) ) { + top = u3a_pop(&pil_u); + } + // otherwise, push the tail and continue into the head + // + else { + *top = u3t(a); + top = u3a_push(&pil_u); + *top = u3h(a); + } + + a = *top; + } +} + +/* u3a_string(): `a` as an on-loom c-string. +*/ +c3_c* +u3a_string(u3_atom a) +{ + c3_w met_w = u3r_met(3, a); + c3_c* str_c = u3a_malloc(met_w + 1); + + u3r_bytes(0, met_w, (c3_y*)str_c, a); + str_c[met_w] = 0; + return str_c; +} + +/* u3a_loom_sane(): sanity checks the state of the loom for obvious corruption + */ +void +u3a_loom_sane(void) +{ + /* + Only checking validity of freelists for now. Other checks could be added, + e.g. noun HAMT traversal, boxwise traversal of loom validating `siz_w`s, + `use_w`s, no empty space, etc. If added, some of that may need to be guarded + behind C3DBG flags. Freelist traversal is probably fine to always do though. + */ + for (c3_w i_w = 0; i_w < u3a_fbox_no; i_w++) { + u3p(u3a_fbox) this_p = u3R->all.fre_p[i_w]; + u3a_fbox *this_u = u3to(u3a_fbox, this_p); + for (; this_p + ; this_p = this_u->nex_p + , this_u = u3to(u3a_fbox, this_p)) { + u3p(u3a_fbox) pre_p = this_u->pre_p + , nex_p = this_u->nex_p; + u3a_fbox *pre_u = u3to(u3a_fbox, this_u->pre_p) + , *nex_u = u3to(u3a_fbox, this_u->nex_p); + + if (nex_p && nex_u->pre_p != this_p) u3_assert(!"loom: wack"); + if (pre_p && pre_u->nex_p != this_p) u3_assert(!"loom: wack"); + if (!pre_p /* this must be the head of a freelist */ + && u3R->all.fre_p[_box_slot(this_u->box_u.siz_w)] != this_p) + u3_assert(!"loom: wack"); + } + } +} diff --git a/vere/pkg/noun/allocate.h b/vere/pkg/noun/allocate.h new file mode 100644 index 0000000..dd2e983 --- /dev/null +++ b/vere/pkg/noun/allocate.h @@ -0,0 +1,760 @@ +#ifndef U3_ALLOCATE_H +#define U3_ALLOCATE_H + +#include "error.h" +#include "manage.h" + + /** Constants. + **/ + /* u3a_bits: number of bits in word-addressed pointer. 29 == 2GB. + */ +# define u3a_bits U3_OS_LoomBits /* 30 */ + + /* u3a_vits: number of virtual bits in a noun reference gained via shifting + */ +# define u3a_vits 1 + + /* u3a_walign: references into the loom are guaranteed to be word-aligned to: + */ +# define u3a_walign (1 << u3a_vits) + + /* u3a_balign: u3a_walign in bytes + */ +# define u3a_balign (sizeof(c3_w)*u3a_walign) + + /* u3a_bits_max: max loom bex + */ +# define u3a_bits_max (8 * sizeof(c3_w) + u3a_vits) + + /* u3a_page: number of bits in word-addressed page. 12 == 16K page + */ +# define u3a_page 12ULL + + /* u3a_pages: maximum number of pages in memory. + */ +# define u3a_pages (1ULL << (u3a_bits + u3a_vits - u3a_page) ) + + /* u3a_words: maximum number of words in memory. + */ +# define u3a_words ( 1ULL << (u3a_bits + u3a_vits)) + + /* u3a_bytes: maximum number of bytes in memory. + */ +# define u3a_bytes ((sizeof(c3_w) * u3a_words)) + + /* u3a_cells: number of representable cells. + */ +# define u3a_cells (( u3a_words / u3a_minimum )) + + /* u3a_maximum: maximum loom object size (largest possible atom). + */ +# define u3a_maximum ( u3a_words - (c3_wiseof(u3a_box) + c3_wiseof(u3a_atom) + 1)) + + /* u3a_minimum: minimum loom object size (actual size of a cell). + */ +# define u3a_minimum ((c3_w)( 1 + c3_wiseof(u3a_box) + c3_wiseof(u3a_cell) )) + + /* u3a_fbox_no: number of free lists per size. + */ +# define u3a_fbox_no 27 + + /** Structures. + **/ + /* u3a_atom, u3a_cell: logical atom and cell structures. + */ + typedef struct { + c3_w mug_w; + } u3a_noun; + + typedef struct { + c3_w mug_w; + c3_w len_w; + c3_w buf_w[0]; + } u3a_atom; + + typedef struct { + c3_w mug_w; + u3_noun hed; + u3_noun tel; + } u3a_cell; + + /* u3a_box: classic allocation box. + ** + ** The box size is also stored at the end of the box in classic + ** bad ass malloc style. Hence a box is: + ** + ** --- + ** siz_w + ** use_w + ** user data + ** siz_w + ** --- + ** + ** Do not attempt to adjust this structure! + */ + typedef struct _u3a_box { + c3_w siz_w; // size of this box + c3_w use_w; // reference count; free if 0 +# ifdef U3_MEMORY_DEBUG + c3_w eus_w; // recomputed refcount + c3_w cod_w; // tracing code +# endif + } u3a_box; + + /* u3a_fbox: free node in heap. Sets minimum node size. + */ + typedef struct _u3a_fbox { + u3a_box box_u; + u3p(struct _u3a_fbox) pre_p; + u3p(struct _u3a_fbox) nex_p; + } u3a_fbox; + + /* u3a_jets: jet dashboard + */ + typedef struct _u3a_jets { + u3p(u3h_root) hot_p; // hot state (home road only) + u3p(u3h_root) war_p; // warm state + u3p(u3h_root) cod_p; // cold state + u3p(u3h_root) han_p; // hank cache + u3p(u3h_root) bas_p; // battery hashes + } u3a_jets; + + /* u3a_road: contiguous allocation and execution context. + */ + typedef struct _u3a_road { + u3p(struct _u3a_road) par_p; // parent road + u3p(struct _u3a_road) kid_p; // child road list + u3p(struct _u3a_road) nex_p; // sibling road + + u3p(c3_w) cap_p; // top of transient region + u3p(c3_w) hat_p; // top of durable region + u3p(c3_w) mat_p; // bottom of transient region + u3p(c3_w) rut_p; // bottom of durable region + u3p(c3_w) ear_p; // original cap if kid is live + + c3_w fut_w[32]; // futureproof buffer + + struct { // escape buffer + union { + jmp_buf buf; + c3_w buf_w[256]; // futureproofing + }; + } esc; + + struct { // miscellaneous config + c3_w fag_w; // flag bits + } how; // + + struct { // allocation pools + u3p(u3a_fbox) fre_p[u3a_fbox_no]; // heap by node size log + u3p(u3a_fbox) cel_p; // custom cell allocator + c3_w fre_w; // number of free words + c3_w max_w; // maximum allocated + } all; + + u3a_jets jed; // jet dashboard + + struct { // bytecode state + u3p(u3h_root) har_p; // formula->post of bytecode + } byc; + + struct { // scry namespace + u3_noun gul; // (list $+(* (unit (unit)))) now + } ski; + + struct { // trace stack + u3_noun tax; // (list ,*) + u3_noun mer; // emergency buffer to release + } bug; + + struct { // profile stack + c3_d nox_d; // nock steps + c3_d cel_d; // cell allocations + u3_noun don; // (list batt) + u3_noun trace; // (list trace) + u3_noun day; // doss, only in u3H (moveme) + } pro; + + struct { // memoization caches + u3p(u3h_root) har_p; // transient + u3p(u3h_root) per_p; // persistent + } cax; + } u3a_road; + typedef u3a_road u3_road; + + /* u3a_flag: flags for how.fag_w. All arena related. + */ + enum u3a_flag { + u3a_flag_sand = 0x1, // bump allocation (XX not impl) + }; + + /* u3a_pile: stack control, abstracted over road direction. + */ + typedef struct _u3a_pile { + c3_ws mov_ws; + c3_ws off_ws; + u3_post top_p; +#ifdef U3_MEMORY_DEBUG + u3a_road* rod_u; +#endif + } u3a_pile; + + /** Macros. Should be better commented. + **/ + /* In and out of the box. + u3a_boxed -> sizeof u3a_box + allocation size (len_w) + 1 (for storing the redundant size) + u3a_boxto -> the region of memory adjacent to the box. + u3a_botox -> the box adjacent to the region of memory + */ +# define u3a_boxed(len_w) (len_w + c3_wiseof(u3a_box) + 1) +# define u3a_boxto(box_v) ( (void *) \ + ( (u3a_box *)(void *)(box_v) + 1 ) ) +# define u3a_botox(tox_v) ( (u3a_box *)(void *)(tox_v) - 1 ) + + /* Inside a noun. + */ + + /* u3a_is_cat(): yes if noun [som] is direct atom. + */ +# define u3a_is_cat(som) (((som) >> 31) ? c3n : c3y) + + /* u3a_is_dog(): yes if noun [som] is indirect noun. + */ +# define u3a_is_dog(som) (((som) >> 31) ? c3y : c3n) + + /* u3a_is_pug(): yes if noun [som] is indirect atom. + */ +# define u3a_is_pug(som) ((0b10 == ((som) >> 30)) ? c3y : c3n) + + /* u3a_is_pom(): yes if noun [som] is indirect cell. + */ +# define u3a_is_pom(som) ((0b11 == ((som) >> 30)) ? c3y : c3n) + + /* u3a_is_atom(): yes if noun [som] is direct atom or indirect atom. + */ +# define u3a_is_atom(som) c3o(u3a_is_cat(som), \ + u3a_is_pug(som)) +# define u3ud(som) u3a_is_atom(som) + + /* u3a_is_cell: yes if noun [som] is cell. + */ +# define u3a_is_cell(som) u3a_is_pom(som) +# define u3du(som) u3a_is_cell(som) + + /* u3a_h(): get head of cell [som]. Bail if [som] is not cell. + */ +# define u3a_h(som) \ + ( _(u3a_is_cell(som)) \ + ? ( ((u3a_cell *)u3a_to_ptr(som))->hed )\ + : u3m_bail(c3__exit) ) +# define u3h(som) u3a_h(som) + + /* u3a_t(): get tail of cell [som]. Bail if [som] is not cell. + */ +# define u3a_t(som) \ + ( _(u3a_is_cell(som)) \ + ? ( ((u3a_cell *)u3a_to_ptr(som))->tel )\ + : u3m_bail(c3__exit) ) +# define u3t(som) u3a_t(som) + +# define u3to(type, x) ((type *)u3a_into(x)) +# define u3tn(type, x) (x) ? (type*)u3a_into(x) : (void*)NULL + +# define u3of(type, x) (u3a_outa((type*)x)) + + /* u3a_is_north(): yes if road [r] is north road. + */ +# define u3a_is_north(r) __((r)->cap_p > (r)->hat_p) + + /* u3a_is_south(): yes if road [r] is south road. + */ +# define u3a_is_south(r) !u3a_is_north((r)) + + /* u3a_open(): words of contiguous free space in road [r] + */ +# define u3a_open(r) ( (c3y == u3a_is_north(r)) \ + ? (c3_w)((r)->cap_p - (r)->hat_p) \ + : (c3_w)((r)->hat_p - (r)->cap_p) ) + + /* u3a_full(): total words in road [r]; + ** u3a_full(r) == u3a_heap(r) + u3a_temp(r) + u3a_open(r) + */ +# define u3a_full(r) ( (c3y == u3a_is_north(r)) \ + ? (c3_w)((r)->mat_p - (r)->rut_p) \ + : (c3_w)((r)->rut_p - (r)->mat_p) ) + + /* u3a_heap(): words of heap in road [r] + */ +# define u3a_heap(r) ( (c3y == u3a_is_north(r)) \ + ? (c3_w)((r)->hat_p - (r)->rut_p) \ + : (c3_w)((r)->rut_p - (r)->hat_p) ) + + /* u3a_temp(): words of stack in road [r] + */ +# define u3a_temp(r) ( (c3y == u3a_is_north(r)) \ + ? (c3_w)((r)->mat_p - (r)->cap_p) \ + : (c3_w)((r)->cap_p - (r)->mat_p) ) + +# define u3a_north_is_senior(r, dog) \ + __((u3a_to_off(dog) < (r)->rut_p) || \ + (u3a_to_off(dog) >= (r)->mat_p)) + +# define u3a_north_is_junior(r, dog) \ + __((u3a_to_off(dog) >= (r)->cap_p) && \ + (u3a_to_off(dog) < (r)->mat_p)) + +# define u3a_north_is_normal(r, dog) \ + c3a(!(u3a_north_is_senior(r, dog)), \ + !(u3a_north_is_junior(r, dog))) + +# define u3a_south_is_senior(r, dog) \ + __((u3a_to_off(dog) < (r)->mat_p) || \ + (u3a_to_off(dog) >= (r)->rut_p)) + +# define u3a_south_is_junior(r, dog) \ + __((u3a_to_off(dog) < (r)->cap_p) && \ + (u3a_to_off(dog) >= (r)->mat_p)) + +# define u3a_south_is_normal(r, dog) \ + c3a(!(u3a_south_is_senior(r, dog)), \ + !(u3a_south_is_junior(r, dog))) + +# define u3a_is_junior(r, som) \ + ( _(u3a_is_cat(som)) \ + ? c3n \ + : _(u3a_is_north(r)) \ + ? u3a_north_is_junior(r, som) \ + : u3a_south_is_junior(r, som) ) + +# define u3a_is_senior(r, som) \ + ( _(u3a_is_cat(som)) \ + ? c3y \ + : _(u3a_is_north(r)) \ + ? u3a_north_is_senior(r, som) \ + : u3a_south_is_senior(r, som) ) + +# define u3a_is_mutable(r, som) \ + ( _(u3a_is_atom(som)) \ + ? c3n \ + : _(u3a_is_senior(r, som)) \ + ? c3n \ + : _(u3a_is_junior(r, som)) \ + ? c3n \ + : (u3a_botox(u3a_to_ptr(som))->use_w == 1) \ + ? c3y : c3n ) + +/* like _box_vaal but for rods. Again, probably want to prefix validation + functions at the very least. Maybe they can be defined in their own header. + + ps. while arguably cooler to have this compile to + + do {(void(0));(void(0));} while(0) + + It may be nicer to just wrap an inline function in #ifdef C3DBG guards. You + could even return the then validated road like + + u3a_road f() { + u3a_road rod_u; + ... + return _rod_vaal(rod_u); + } +*/ +# define _rod_vaal(rod_u) \ + do { \ + c3_dessert(((uintptr_t)((u3a_road*)(rod_u))->hat_p \ + & u3a_walign-1) == 0); \ + } while(0) + + + + /** Globals. + **/ + /// Current road (thread-local). + extern u3_road* u3a_Road; +# define u3R u3a_Road + + /* u3_Code: memory code. + */ +#ifdef U3_MEMORY_DEBUG + extern c3_w u3_Code; +#endif + +# define u3_Loom ((c3_w *)(void *)U3_OS_LoomBase) + + /* u3a_into(): convert loom offset [x] into generic pointer. + */ +# define u3a_into(x) ((void *)(u3_Loom + (x))) + + /* u3a_outa(): convert pointer [p] into word offset into loom. + */ +# define u3a_outa(p) ((c3_w *)(void *)(p) - u3_Loom) + + /* u3a_to_off(): mask off bits 30 and 31 from noun [som]. + */ +# define u3a_to_off(som) (((som) & 0x3fffffff) << u3a_vits) + + /* u3a_to_ptr(): convert noun [som] into generic pointer into loom. + */ +# define u3a_to_ptr(som) (u3a_into(u3a_to_off(som))) + + /* u3a_to_wtr(): convert noun [som] into word pointer into loom. + */ +# define u3a_to_wtr(som) ((c3_w *)u3a_to_ptr(som)) + + /** Inline functions. + **/ + /* u3a_to_pug(): set bit 31 of [off]. + */ + inline c3_w u3a_to_pug(c3_w off) { + c3_dessert((off & u3a_walign-1) == 0); + return (off >> u3a_vits) | 0x80000000; + } + + /* u3a_to_pom(): set bits 30 and 31 of [off]. + */ + inline c3_w u3a_to_pom(c3_w off) { + c3_dessert((off & u3a_walign-1) == 0); + return (off >> u3a_vits) | 0xc0000000; + } + + /** road stack. + **/ + /* u3a_drop(): drop a road stack frame per [pil_u]. + */ + inline void + u3a_drop(const u3a_pile* pil_u) + { + u3R->cap_p -= pil_u->mov_ws; + } + + /* u3a_peek(): examine the top of the road stack. + */ + inline void* + u3a_peek(const u3a_pile* pil_u) + { + return u3to(void, (u3R->cap_p + pil_u->off_ws)); + } + + /* u3a_pop(): drop a road stack frame, peek at the new top. + */ + inline void* + u3a_pop(const u3a_pile* pil_u) + { + u3a_drop(pil_u); + return u3a_peek(pil_u); + } + + /* u3a_push(): push a frame onto the road stack, per [pil_u]. + */ + inline void* + u3a_push(const u3a_pile* pil_u) + { + u3R->cap_p += pil_u->mov_ws; + +#ifndef U3_GUARD_PAGE + // !off means we're on a north road + // + if ( !pil_u->off_ws ) { + if( !(u3R->cap_p > u3R->hat_p) ) { + u3m_bail(c3__meme); + } +# ifdef U3_MEMORY_DEBUG + u3_assert( pil_u->top_p >= u3R->cap_p ); +# endif + } + else { + if( !(u3R->cap_p < u3R->hat_p) ) { + u3m_bail(c3__meme); + } +# ifdef U3_MEMORY_DEBUG + u3_assert( pil_u->top_p <= u3R->cap_p ); +# endif + } +#endif /* ifndef U3_GUARD_PAGE */ + +#ifdef U3_MEMORY_DEBUG + u3_assert( pil_u->rod_u == u3R ); +#endif + + return u3a_peek(pil_u); + } + + /* u3a_pile_done(): assert valid upon completion. + */ + inline c3_o + u3a_pile_done(const u3a_pile* pil_u) + { + return (pil_u->top_p == u3R->cap_p) ? c3y : c3n; + } + + /** Functions. + **/ + /** Allocation. + **/ + /* Word-aligned allocation. + */ + /* u3a_walloc(): allocate storage measured in words. + */ + void* + u3a_walloc(c3_w len_w); + + /* u3a_celloc(): allocate a cell. Faster, sometimes. + */ + c3_w* + u3a_celloc(void); + + /* u3a_wfree(): free storage. + */ + void + u3a_wfree(void* lag_v); + + /* u3a_wtrim(): trim storage. + */ + void + u3a_wtrim(void* tox_v, c3_w old_w, c3_w len_w); + + /* u3a_wealloc(): word realloc. + */ + void* + u3a_wealloc(void* lag_v, c3_w len_w); + + /* u3a_pile_prep(): initialize stack control. + */ + void + u3a_pile_prep(u3a_pile* pil_u, c3_w len_w); + + /* C-style aligned allocation - *not* compatible with above. + */ + /* u3a_malloc(): aligned storage measured in bytes. + */ + void* + u3a_malloc(size_t len_i); + + /* u3a_calloc(): aligned storage measured in bytes. + */ + void* + u3a_calloc(size_t num_i, size_t len_i); + + /* u3a_realloc(): aligned realloc in bytes. + */ + void* + u3a_realloc(void* lag_v, size_t len_i); + + /* u3a_free(): free for aligned malloc. + */ + void + u3a_free(void* tox_v); + + /* Reference and arena control. + */ + /* u3a_gain(): gain a reference count in normal space. + */ + u3_weak + u3a_gain(u3_weak som); +# define u3k(som) u3a_gain(som) + + /* u3a_take(): gain, copying juniors. + */ + u3_noun + u3a_take(u3_noun som); + + /* u3a_left(): true of junior if preserved. + */ + c3_o + u3a_left(u3_noun som); + + /* u3a_lose(): lose a reference. + */ + void + u3a_lose(u3_weak som); +# define u3z(som) u3a_lose(som) + + /* u3a_wash(): wash all lazy mugs in subtree. RETAIN. + */ + void + u3a_wash(u3_noun som); + + /* u3a_use(): reference count. + */ + c3_w + u3a_use(u3_noun som); + + /* u3a_wed(): unify noun references. + */ + void + u3a_wed(u3_noun *restrict a, u3_noun *restrict b); + + /* u3a_luse(): check refcount sanity. + */ + void + u3a_luse(u3_noun som); + + /* u3a_mark_ptr(): mark a pointer for gc. Produce size. + */ + c3_w + u3a_mark_ptr(void* ptr_v); + + /* u3a_mark_mptr(): mark a u3_malloc-allocated ptr for gc. + */ + c3_w + u3a_mark_mptr(void* ptr_v); + + /* u3a_mark_noun(): mark a noun for gc. Produce size. + */ + c3_w + u3a_mark_noun(u3_noun som); + + /* u3a_mark_road(): mark ad-hoc persistent road structures. + */ + u3m_quac* + u3a_mark_road(); + + /* u3a_reclaim(): clear ad-hoc persistent caches to reclaim memory. + */ + void + u3a_reclaim(void); + + /* u3a_rewrite_compact(): rewrite pointers in ad-hoc persistent road structures. + */ + void + u3a_rewrite_compact(void); + + /* u3a_rewrite_ptr(): mark a pointer as already having been rewritten + */ + c3_o + u3a_rewrite_ptr(void* ptr_v); + + /* u3a_rewrite_noun(): rewrite a noun for compaction. + */ + void + u3a_rewrite_noun(u3_noun som); + + /* u3a_rewritten(): rewrite a pointer for compaction. + */ + u3_post + u3a_rewritten(u3_post som_p); + + /* u3a_rewritten(): rewritten noun pointer for compaction. + */ + u3_noun + u3a_rewritten_noun(u3_noun som); + + /* u3a_count_noun(): count size of noun. + */ + c3_w + u3a_count_noun(u3_noun som); + + /* u3a_discount_noun(): clean up after counting a noun. + */ + c3_w + u3a_discount_noun(u3_noun som); + + /* u3a_count_ptr(): count a pointer for gc. Produce size. */ + c3_w + u3a_count_ptr(void* ptr_v); + + /* u3a_discount_ptr(): discount a pointer for gc. Produce size. */ + c3_w + u3a_discount_ptr(void* ptr_v); + + /* u3a_idle(): measure free-lists in [rod_u] + */ + c3_w + u3a_idle(u3a_road* rod_u); + + /* u3a_ream(): ream free-lists. + */ + void + u3a_ream(void); + + /* u3a_sweep(): sweep a fully marked road. + */ + c3_w + u3a_sweep(void); + + /* u3a_pack_seek(): sweep the heap, modifying boxes to record new addresses. + */ + void + u3a_pack_seek(u3a_road* rod_u); + + /* u3a_pack_move(): sweep the heap, moving boxes to new addresses. + */ + void + u3a_pack_move(u3a_road* rod_u); + + /* u3a_sane(): check allocator sanity. + */ + void + u3a_sane(void); + + /* u3a_lush(): leak push. + */ + c3_w + u3a_lush(c3_w lab_w); + + /* u3a_lop(): leak pop. + */ + void + u3a_lop(c3_w lab_w); + + /* u3a_print_time: print microsecond time. + */ + void + u3a_print_time(c3_c* str_c, c3_c* cap_c, c3_d mic_d); + + /* u3a_print_quac: print a quac memory report. + */ + void + u3a_print_quac(FILE* fil_u, c3_w den_w, u3m_quac* mas_u); + + /* u3a_print_memory(): print memory amount. + */ + void + u3a_print_memory(FILE* fil_u, c3_c* cap_c, c3_w wor_w); + /* u3a_prof(): mark/measure/print memory profile. RETAIN. + */ + u3m_quac* + u3a_prof(FILE* fil_u, u3_noun mas); + + /* u3a_maid(): maybe print memory. + */ + c3_w + u3a_maid(FILE* fil_u, c3_c* cap_c, c3_w wor_w); + + /* u3a_quac_free(): free quac memory. + */ + void + u3a_quac_free(u3m_quac* qua_u); + + /* u3a_uncap_print_memory(): un-captioned print memory amount. + */ + void + u3a_uncap_print_memory(FILE* fil_u, c3_w byt_w); + + /* u3a_deadbeef(): write 0xdeadbeef from hat to cap. + */ + void + u3a_deadbeef(void); + + /* u3a_walk_fore(): preorder traversal, visits ever limb of a noun. + ** + ** cells are visited *before* their heads and tails + ** and can shortcircuit traversal by returning [c3n] + */ + void + u3a_walk_fore(u3_noun a, + void* ptr_v, + void (*pat_f)(u3_atom, void*), + c3_o (*cel_f)(u3_noun, void*)); + + /* u3a_string(): `a` as an on-loom c-string. + */ + c3_c* + u3a_string(u3_atom a); + + /* u3a_loom_sane(): sanity checks the state of the loom for obvious corruption + */ + void + u3a_loom_sane(void); + +#endif /* ifndef U3_ALLOCATE_H */ diff --git a/vere/pkg/noun/build.zig b/vere/pkg/noun/build.zig new file mode 100644 index 0000000..1e7ffd9 --- /dev/null +++ b/vere/pkg/noun/build.zig @@ -0,0 +1,426 @@ +const std = @import("std"); + +pub fn build(b: *std.Build) !void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + const t = target.result; + + const copts: []const []const u8 = + b.option([]const []const u8, "copt", "") orelse &.{}; + + const pkg_noun = b.addStaticLibrary(.{ + .name = "noun", + .target = target, + .optimize = optimize, + }); + + if (target.result.os.tag.isDarwin() and !target.query.isNative()) { + const macos_sdk = b.lazyDependency("macos_sdk", .{ + .target = target, + .optimize = optimize, + }); + if (macos_sdk != null) { + pkg_noun.addSystemIncludePath(macos_sdk.?.path("usr/include")); + pkg_noun.addLibraryPath(macos_sdk.?.path("usr/lib")); + pkg_noun.addFrameworkPath(macos_sdk.?.path("System/Library/Frameworks")); + } + } + + const pkg_c3 = b.dependency("pkg_c3", .{ + .target = target, + .optimize = optimize, + .copt = copts, + }); + + const pkg_ent = b.dependency("pkg_ent", .{ + .target = target, + .optimize = optimize, + .copt = copts, + }); + + const pkg_ur = b.dependency("pkg_ur", .{ + .target = target, + .optimize = optimize, + .copt = copts, + }); + + const backtrace = b.dependency("backtrace", .{ + .target = target, + .optimize = optimize, + }); + + const gmp = b.dependency("gmp", .{ + .target = target, + .optimize = optimize, + }); + + const murmur3 = b.dependency("murmur3", .{ + .target = target, + .optimize = optimize, + }); + + const openssl = b.dependency("openssl", .{ + .target = target, + .optimize = optimize, + }); + + const pdjson = b.dependency("pdjson", .{ + .target = target, + .optimize = optimize, + }); + + const sigsegv = b.dependency("sigsegv", .{ + .target = target, + .optimize = optimize, + }); + + const softblas = b.dependency("softblas", .{ + .target = target, + .optimize = optimize, + }); + + const softfloat = b.dependency("softfloat", .{ + .target = target, + .optimize = optimize, + }); + + const unwind = b.dependency("unwind", .{ + .target = target, + .optimize = optimize, + }); + + const urcrypt = b.dependency("urcrypt", .{ + .target = target, + .optimize = optimize, + }); + + const whereami = b.dependency("whereami", .{ + .target = target, + .optimize = optimize, + }); + + const zlib = b.dependency("zlib", .{ + .target = target, + .optimize = optimize, + }); + + const wasm3 = b.dependency("wasm3", .{ + .target = target, + .optimize = optimize, + }); + + pkg_noun.linkLibC(); + + pkg_noun.linkLibrary(pkg_c3.artifact("c3")); + pkg_noun.linkLibrary(pkg_ent.artifact("ent")); + pkg_noun.linkLibrary(pkg_ur.artifact("ur")); + + pkg_noun.linkLibrary(backtrace.artifact("backtrace")); + pkg_noun.linkLibrary(gmp.artifact("gmp")); + pkg_noun.linkLibrary(murmur3.artifact("murmur3")); + pkg_noun.linkLibrary(openssl.artifact("ssl")); + pkg_noun.linkLibrary(pdjson.artifact("pdjson")); + pkg_noun.linkLibrary(sigsegv.artifact("sigsegv")); + pkg_noun.linkLibrary(softblas.artifact("softblas")); + pkg_noun.linkLibrary(softfloat.artifact("softfloat")); + if (t.os.tag == .linux) + pkg_noun.linkLibrary(unwind.artifact("unwind")); + pkg_noun.linkLibrary(urcrypt.artifact("urcrypt")); + pkg_noun.linkLibrary(whereami.artifact("whereami")); + pkg_noun.linkLibrary(zlib.artifact("z")); + pkg_noun.linkLibrary(wasm3.artifact("wasm3")); + + pkg_noun.addIncludePath(b.path("")); + if (t.os.tag.isDarwin()) + pkg_noun.addIncludePath(b.path("platform/darwin")); + if (t.os.tag == .linux) + pkg_noun.addIncludePath(b.path("platform/linux")); + + var flags = std.ArrayList([]const u8).init(b.allocator); + defer flags.deinit(); + try flags.appendSlice(&.{ + // "-pedantic", + "-std=gnu23", + }); + try flags.appendSlice(copts); + + pkg_noun.addCSourceFiles(.{ + .root = b.path(""), + .files = &c_source_files, + .flags = flags.items, + }); + + for (install_headers) |h| pkg_noun.installHeader(b.path(h), h); + + pkg_noun.installHeader(b.path(switch (t.os.tag) { + .macos => "platform/darwin/rsignal.h", + .linux => "platform/linux/rsignal.h", + else => "", + }), "platform/rsignal.h"); + + b.installArtifact(pkg_noun); +} + +const c_source_files = [_][]const u8{ + "allocate.c", + "events.c", + "hashtable.c", + "imprison.c", + "jets.c", + "jets/a/add.c", + "jets/a/dec.c", + "jets/a/div.c", + "jets/a/gte.c", + "jets/a/gth.c", + "jets/a/lte.c", + "jets/a/lth.c", + "jets/a/max.c", + "jets/a/min.c", + "jets/a/mod.c", + "jets/a/mul.c", + "jets/a/sub.c", + "jets/b/bind.c", + "jets/b/clap.c", + "jets/b/drop.c", + "jets/b/find.c", + "jets/b/flop.c", + "jets/b/lent.c", + "jets/b/levy.c", + "jets/b/lien.c", + "jets/b/mate.c", + "jets/b/murn.c", + "jets/b/need.c", + "jets/b/reap.c", + "jets/b/reel.c", + "jets/b/roll.c", + "jets/b/scag.c", + "jets/b/skid.c", + "jets/b/skim.c", + "jets/b/skip.c", + "jets/b/slag.c", + "jets/b/snag.c", + "jets/b/sort.c", + "jets/b/turn.c", + "jets/b/weld.c", + "jets/b/zing.c", + "jets/c/aor.c", + "jets/c/bex.c", + "jets/c/c0n.c", + "jets/c/can.c", + "jets/c/cap.c", + "jets/c/cat.c", + "jets/c/clz.c", + "jets/c/ctz.c", + "jets/c/cut.c", + "jets/c/dis.c", + "jets/c/dor.c", + "jets/c/dvr.c", + "jets/c/end.c", + "jets/c/gor.c", + "jets/c/ham.c", + "jets/c/hew.c", + "jets/c/lsh.c", + "jets/c/mas.c", + "jets/c/met.c", + "jets/c/mix.c", + "jets/c/mor.c", + "jets/c/mug.c", + "jets/c/muk.c", + "jets/c/peg.c", + "jets/c/po.c", + "jets/c/pow.c", + "jets/c/rap.c", + "jets/c/rep.c", + "jets/c/rev.c", + "jets/c/rig.c", + "jets/c/rip.c", + "jets/c/rsh.c", + "jets/c/sew.c", + "jets/c/sqt.c", + "jets/c/swp.c", + "jets/c/xeb.c", + "jets/d/by_all.c", + "jets/d/by_any.c", + "jets/d/by_apt.c", + "jets/d/by_bif.c", + "jets/d/by_del.c", + "jets/d/by_dif.c", + "jets/d/by_gas.c", + "jets/d/by_get.c", + "jets/d/by_has.c", + "jets/d/by_int.c", + "jets/d/by_jab.c", + "jets/d/by_key.c", + "jets/d/by_put.c", + "jets/d/by_run.c", + "jets/d/by_uni.c", + "jets/d/by_urn.c", + "jets/d/in_apt.c", + "jets/d/in_bif.c", + "jets/d/in_del.c", + "jets/d/in_dif.c", + "jets/d/in_gas.c", + "jets/d/in_has.c", + "jets/d/in_int.c", + "jets/d/in_put.c", + "jets/d/in_rep.c", + "jets/d/in_run.c", + "jets/d/in_tap.c", + "jets/d/in_uni.c", + "jets/d/in_wyt.c", + "jets/e/aes_cbc.c", + "jets/e/aes_ecb.c", + "jets/e/aes_siv.c", + "jets/e/argon2.c", + "jets/e/base.c", + "jets/e/blake.c", + "jets/e/chacha.c", + "jets/e/crc32.c", + "jets/e/cue.c", + "jets/e/ed_add_double_scalarmult.c", + "jets/e/ed_add_scalarmult_scalarmult_base.c", + "jets/e/ed_point_add.c", + "jets/e/ed_point_neg.c", + "jets/e/ed_scad.c", + "jets/e/ed_recs.c", + "jets/e/ed_smac.c", + "jets/e/ed_puck.c", + "jets/e/ed_luck.c", + "jets/e/ed_scalarmult.c", + "jets/e/ed_scalarmult_base.c", + "jets/e/ed_shar.c", + "jets/e/ed_sign.c", + "jets/e/ed_veri.c", + "jets/e/fein_ob.c", + "jets/e/fl.c", + "jets/e/fynd_ob.c", + "jets/e/hmac.c", + "jets/e/jam.c", + "jets/e/json_de.c", + "jets/e/json_en.c", + "jets/e/keccak.c", + "jets/e/leer.c", + "jets/e/loss.c", + "jets/e/lune.c", + "jets/e/mat.c", + "jets/e/mink.c", + "jets/e/mole.c", + "jets/e/mule.c", + "jets/e/parse.c", + "jets/e/rd.c", + "jets/e/rh.c", + "jets/e/ripe.c", + "jets/e/rq.c", + "jets/e/rs.c", + "jets/e/rub.c", + "jets/e/scot.c", + "jets/e/scow.c", + "jets/e/scr.c", + "jets/e/secp.c", + "jets/e/sha1.c", + "jets/e/shax.c", + "jets/e/slaw.c", + "jets/e/tape.c", + "jets/e/trip.c", + "jets/e/urwasm.c", + "jets/f/cell.c", + "jets/f/comb.c", + "jets/f/cons.c", + "jets/f/core.c", + "jets/f/face.c", + "jets/f/fine.c", + "jets/f/fitz.c", + "jets/f/flan.c", + "jets/f/flip.c", + "jets/f/flor.c", + "jets/f/fork.c", + "jets/f/help.c", + "jets/f/hint.c", + "jets/f/look.c", + "jets/f/loot.c", + "jets/f/ut_crop.c", + "jets/f/ut_fish.c", + "jets/f/ut_fuse.c", + "jets/f/ut_mint.c", + "jets/f/ut_mull.c", + "jets/f/ut_nest.c", + "jets/f/ut_rest.c", + "jets/g/plot.c", + "jets/i/lagoon.c", + "jets/tree.c", + "jets/137/tree.c", + "log.c", + "manage.c", + "nock.c", + "options.c", + "retrieve.c", + "ship.c", + "serial.c", + "trace.c", + "urth.c", + "v1/allocate.c", + "v1/hashtable.c", + "v1/jets.c", + "v1/manage.c", + "v1/nock.c", + "v1/vortex.c", + "v2/allocate.c", + "v2/hashtable.c", + "v2/jets.c", + "v2/manage.c", + "v2/nock.c", + "v2/vortex.c", + "v3/hashtable.c", + "v3/manage.c", + "v4/manage.c", + "vortex.c", + "xtract.c", + "zave.c", +}; + +const install_headers = [_][]const u8{ + "allocate.h", + "error.h", + "events.h", + "hashtable.h", + "imprison.h", + "jets.h", + "jets/k.h", + "jets/q.h", + "jets/w.h", + "log.h", + "manage.h", + "nock.h", + "noun.h", + "options.h", + "retrieve.h", + "serial.h", + "ship.h", + "trace.h", + "types.h", + "urth.h", + "v1/allocate.h", + "v1/hashtable.h", + "v1/jets.h", + "v1/manage.h", + "v1/nock.h", + "v1/vortex.h", + "v2/allocate.h", + "v2/hashtable.h", + "v2/jets.h", + "v2/manage.h", + "v2/nock.h", + "v2/options.h", + "v2/vortex.h", + "v3/allocate.h", + "v3/hashtable.h", + "v3/jets.h", + "v3/manage.h", + "v3/nock.h", + "v3/vortex.h", + "v4/manage.h", + "version.h", + "vortex.h", + "xtract.h", + "zave.h", +}; diff --git a/vere/pkg/noun/build.zig.zon b/vere/pkg/noun/build.zig.zon new file mode 100644 index 0000000..cf687c6 --- /dev/null +++ b/vere/pkg/noun/build.zig.zon @@ -0,0 +1,63 @@ +.{ + .name = "noun", + .version = "0.0.1", + .dependencies = .{ + .macos_sdk = .{ + .url = "https://github.com/joseluisq/macosx-sdks/releases/download/14.5/MacOSX14.5.sdk.tar.xz", + .hash = "N-V-__8AAKtK4FMzqcFsY_ZrpMg9bGH0h7BqZDXtVyAerMtM", + .lazy = true, + }, + .pkg_c3 = .{ + .path = "../c3", + }, + .pkg_ent = .{ + .path = "../ent", + }, + .pkg_ur = .{ + .path = "../ur", + }, + .backtrace = .{ + .path = "../../ext/backtrace", + }, + .gmp = .{ + .path = "../../ext/gmp", + }, + .murmur3 = .{ + .path = "../../ext/murmur3", + }, + .openssl = .{ + .path = "../../ext/openssl", + }, + .pdjson = .{ + .path = "../../ext/pdjson", + }, + .sigsegv = .{ + .path = "../../ext/sigsegv", + }, + .softblas = .{ + .path = "../../ext/softblas", + }, + .softfloat = .{ + .path = "../../ext/softfloat", + }, + .unwind = .{ + .path = "../../ext/unwind", + }, + .urcrypt = .{ + .path = "../../ext/urcrypt", + }, + .whereami = .{ + .path = "../../ext/whereami", + }, + .zlib = .{ + .url = "https://github.com/allyourcodebase/zlib/archive/61e7df7e996ec5a5f13a653db3c419adb340d6ef.tar.gz", + .hash = "zlib-1.3.1-ZZQ7lbYMAAB1hTSOKSXAKAgHsfDcyWNH_37ojw5WSpgR", + }, + .wasm3 = .{ + .path = "../../ext/wasm3", + }, + }, + .paths = .{ + "", + }, +} diff --git a/vere/pkg/noun/equality_tests.c b/vere/pkg/noun/equality_tests.c new file mode 100644 index 0000000..83a5026 --- /dev/null +++ b/vere/pkg/noun/equality_tests.c @@ -0,0 +1,164 @@ +/// @file + +#include "noun.h" + +/* _setup(): prepare for tests. +*/ +static void +_setup(void) +{ + u3m_boot_lite(1 << 24); +} + +static c3_i +_test_unify_home(void) +{ + c3_i ret_i = 1; + + u3_noun a = u3nt(0, 0, 0); + u3_noun b = u3nt(0, 0, 0); + c3_w kep_w; + + u3_assert( u3t(a) < u3t(b) ); + kep_w = u3t(a); + + (void)u3r_sing(a, b); + + if ( u3t(a) != u3t(b) ) { + fprintf(stderr, "test: unify home: failed\r\n"); + ret_i = 0; + } + else if ( kep_w != u3t(b) ) { + fprintf(stderr, "test: unify home: deeper failed\r\n"); + ret_i = 0; + } + + u3z(a); u3z(b); + + return ret_i; +} + +static c3_i +_test_unify_inner(void) +{ + c3_i ret_i = 1; + c3_w kep_w; + u3_noun a, b; + + a = u3nt(0, 0, 0); + kep_w = u3t(a); + + u3m_hate(0); + + b = u3nt(0, 0, 0); + + (void)u3r_sing(a, b); + + if ( u3t(a) != u3t(b) ) { + fprintf(stderr, "test: unify inner 1: failed\r\n"); + ret_i = 0; + } + else if ( kep_w != u3t(b) ) { + fprintf(stderr, "test: unify inner 1: deeper failed\r\n"); + ret_i = 0; + } + + b = u3m_love(0); + + u3z(a); u3z(b); + + // -------- + + b = u3nt(0, 0, 0); + kep_w = u3t(b); + + u3m_hate(0); + + a = u3nt(0, 0, 0); + + u3m_hate(0); + + (void)u3r_sing(a, b); + + if ( u3t(a) != u3t(b) ) { + fprintf(stderr, "test: unify inner 2: failed\r\n"); + ret_i = 0; + } + else if ( kep_w != u3t(a) ) { + fprintf(stderr, "test: unify inner 2: deeper failed\r\n"); + ret_i = 0; + } + + a = u3m_love(u3m_love(0)); + + u3z(a); u3z(b); + + return ret_i; +} + +static c3_i +_test_unify_inner_home(void) +{ + c3_i ret_i = 1; + + u3_noun a = u3nt(0, 0, 0); + u3_noun b = u3nt(0, 0, 0); + + u3m_hate(0); + + (void)u3r_sing(a, b); + + if ( u3t(a) == u3t(b) ) { + fprintf(stderr, "test: unify inner-home: succeeded?\r\n"); + ret_i = 0; + } + + u3m_love(0); + + u3z(a); u3z(b); + + return ret_i; +} + +static c3_i +_test_equality(void) +{ + c3_i ret_i = 1; + + if ( !_test_unify_home() ) { + fprintf(stderr, "test: equality: unify home: failed\r\n"); + ret_i = 0; + } + + if ( !_test_unify_inner() ) { + fprintf(stderr, "test: equality: unify inner: failed\r\n"); + ret_i = 0; + } + + if ( !_test_unify_inner_home() ) { + fprintf(stderr, "test: equality: unify inner-home: failed\r\n"); + ret_i = 0; + } + + return ret_i; +} + +/* main(): run all test cases. +*/ +int +main(int argc, char* argv[]) +{ + _setup(); + + if ( !_test_equality() ) { + fprintf(stderr, "test equality: failed\r\n"); + exit(1); + } + + // GC + // + u3m_grab(u3_none); + + fprintf(stderr, "test equality: ok\r\n"); + return 0; +} diff --git a/vere/pkg/noun/error.h b/vere/pkg/noun/error.h new file mode 100644 index 0000000..57932bf --- /dev/null +++ b/vere/pkg/noun/error.h @@ -0,0 +1,38 @@ +/// @file + +#ifndef U3_ERROR_H +#define U3_ERROR_H + +#include "manage.h" + +/* Assert. Good to capture. + + TODO: determine which u3_assert calls can rather call c3_dessert, i.e. in + public releases, which calls to u3_assert should abort and which should + no-op? If the latter, is the assert useful inter-development to validate + conditions we might accidentally break or not useful at all? +*/ + +#if defined(ASAN_ENABLED) && defined(__clang__) +# define u3_assert(x) \ + do { \ + if (!(x)) { \ + u3m_bail(c3__oops); \ + abort(); \ + } \ + } while(0) +#else +# define u3_assert(x) \ + do { \ + if (!(x)) { \ + fflush(stderr); \ + fprintf(stderr, "\rAssertion '%s' " \ + "failed in %s:%d\r\n", \ + #x, __FILE__, __LINE__); \ + u3m_bail(c3__oops); \ + abort(); \ + } \ + } while(0) +#endif /* if defined(ASAN_ENABLED) && defined(__clang__) */ + +#endif /* ifndef U3_ERROR_H */ diff --git a/vere/pkg/noun/events.c b/vere/pkg/noun/events.c new file mode 100644 index 0000000..4fe39e7 --- /dev/null +++ b/vere/pkg/noun/events.c @@ -0,0 +1,1766 @@ +//! @file events.c +//! +//! incremental, orthogonal, paginated loom snapshots +//! +//! ### components +//! +//! - page: 16KB chunk of the loom. +//! - north segment (u3e_image, north.bin): low contiguous loom pages, +//! (in practice, the home road heap). indexed from low to high: +//! in-order on disk. in a file-backed mapping by default. +//! - south segment (u3e_image, south.bin): high contiguous loom pages, +//! (in practice, the home road stack). indexed from high to low: +//! reversed on disk. +//! - patch memory (memory.bin): new or changed pages since the last snapshot +//! - patch control (u3e_control control.bin): patch metadata, watermarks, +//! and indices/mugs for pages in patch memory. +//! +//! ### initialization (u3e_live()) +//! +//! - with the loom already mapped, all pages are marked dirty in a bitmap. +//! - if snapshot is missing or partial, empty segments are created. +//! - if a patch is present, it's applied (crash recovery). +//! - snapshot segments are mapped or copied onto the loom; +//! all included pages are marked clean and protected (read-only). +//! +//! #### page faults (u3e_fault()) +//! +//! - stores into protected pages generate faults (currently SIGSEGV, +//! handled outside this module). +//! - faults are handled by dirtying the page and switching protections to +//! read/write. +//! - a guard page is initially placed in the approximate middle of the free +//! space between the heap and stack at the time of the first page fault. +//! when a fault is detected in the guard page, the guard page is recentered +//! in the free space of the current road. if the guard page cannot be +//! recentered, then memory exhaustion has occurred. +//! +//! ### updates (u3e_save()) +//! +//! - all updates to a snapshot are made through a patch. +//! - high/low watermarks for the north/south segments are established, +//! and dirty pages below/above them are added to the patch. +//! - modifications have been caught by the fault handler. +//! - newly-used pages are automatically included (preemptively dirtied). +//! - unused, innermost pages are reclaimed (segments are truncated to the +//! high/low watermarks; the last page in each is always adjacent to the +//! contiguous free space). +//! - patch pages are written to memory.bin, metadata to control.bin. +//! - the patch is applied to the snapshot segments, in-place. +//! - segments are fsync'd; patch files are deleted. +//! - memory protections (and file-backed mappings) are re-established. +//! +//! ### invariants +//! +//! definitions: +//! - a clean page is PROT_READ and 0 in the bitmap +//! - a dirty page is (PROT_READ|PROT_WRITE) and 1 in the bitmap +//! - the guard page is PROT_NONE and 1 in the bitmap +//! +//! assumptions: +//! - all memory access patterns are outside-in, a page at a time +//! - ad-hoc exceptions are supported by calling u3e_ward() +//! +//! - there is a single guard page, between the segments +//! - dirty pages only become clean by being: +//! - loaded from a snapshot during initialization +//! - present in a snapshot after save +//! - clean pages only become dirty by being: +//! - modified (and caught by the fault handler) +//! - orphaned due to segment truncation (explicitly dirtied) +//! - at points of quiescence (initialization, after save) +//! - all pages of the north and south segments are clean +//! - all other pages are dirty +//! +//! ### limitations +//! +//! - loom page size is fixed (16 KB), and must be a multiple of the +//! system page size. +//! - update atomicity is crucial: +//! - patch application must either completely succeed or +//! leave on-disk segments (memory image) intact. +//! - unapplied patches can be discarded (triggering event replay), +//! but once patch application begins it must succeed. +//! - may require integration into the overall signal-handling regime. +//! - any errors are handled with assertions; error messages are poor; +//! failed/partial writes are not retried. +//! +//! ### enhancements +//! +//! - use platform specific page fault mechanism (mach rpc, userfaultfd, &c). +//! - parallelism (conflicts with demand paging) +//! + +#include "events.h" + +#include +#include +#include + +#include "log.h" +#include "manage.h" +#include "options.h" +#include "retrieve.h" +#include "types.h" + +/* _ce_len: byte length of pages +** _ce_len_words: word length of pages +** _ce_page: byte length of a single page +** _ce_ptr: void pointer to a page +*/ +#define _ce_len(i) ((size_t)(i) << (u3a_page + 2)) +#define _ce_len_words(i) ((size_t)(i) << u3a_page) +#define _ce_page _ce_len(1) +#define _ce_ptr(i) ((void *)((c3_c*)u3_Loom + _ce_len(i))) + +/// Snapshotting system. +u3e_pool u3e_Pool; + +static c3_l +_ce_mug_page(void* ptr_v) +{ + // XX trailing zeros + // return u3r_mug_bytes(ptr_v, _ce_page); + return u3r_mug_words(ptr_v, _ce_len_words(1)); +} + +#ifdef U3_SNAPSHOT_VALIDATION +/* Image check. +*/ +struct { + c3_w nor_w; + c3_w sou_w; + c3_w mug_w[u3a_pages]; +} u3K; + +/* u3e_check(): compute a checksum on all memory within the watermarks. +*/ +void +u3e_check(c3_c* cap_c) +{ + c3_w nor_w = 0; + c3_w sou_w = 0; + + { + u3_post low_p, hig_p; + u3m_water(&low_p, &hig_p); + + nor_w = (low_p + (_ce_len_words(1) - 1)) >> u3a_page; + sou_w = u3P.pag_w - (hig_p >> u3a_page); + } + + /* compute checksum over active pages. + */ + { + c3_w i_w, sum_w, mug_w; + + sum_w = 0; + for ( i_w = 0; i_w < nor_w; i_w++ ) { + mug_w = _ce_mug_page(_ce_ptr(i_w)); + if ( strcmp(cap_c, "boot") ) { + u3_assert(mug_w == u3K.mug_w[i_w]); + } + sum_w += mug_w; + } + for ( i_w = 0; i_w < sou_w; i_w++ ) { + mug_w = _ce_mug_page(_ce_ptr((u3P.pag_w - (i_w + 1)))); + if ( strcmp(cap_c, "boot") ) { + u3_assert(mug_w == u3K.mug_w[(u3P.pag_w - (i_w + 1))]); + } + sum_w += mug_w; + } + u3l_log("%s: sum %x (%x, %x)", cap_c, sum_w, nor_w, sou_w); + } +} +#endif + +/* _ce_flaw_mmap(): remap non-guard page after fault. +*/ +static inline c3_i +_ce_flaw_mmap(c3_w pag_w) +{ + // NB: must be static, since the stack is grown via page faults, and + // we're already in a page fault handler. + // + static c3_y con_y[_ce_page]; + + // save contents of page, to be restored after the mmap + // + memcpy(con_y, _ce_ptr(pag_w), _ce_page); + + // map the dirty page into the ephemeral file + // + if ( MAP_FAILED == mmap(_ce_ptr(pag_w), + _ce_page, + (PROT_READ | PROT_WRITE), + (MAP_FIXED | MAP_SHARED), + u3P.eph_i, _ce_len(pag_w)) ) + { + fprintf(stderr, "loom: fault mmap failed (%u): %s\r\n", + pag_w, strerror(errno)); + return 1; + } + + // restore contents of page + // + memcpy(_ce_ptr(pag_w), con_y, _ce_page); + + return 0; +} + +/* _ce_flaw_mprotect(): protect page after fault. +*/ +static inline c3_i +_ce_flaw_mprotect(c3_w pag_w) +{ + if ( 0 != mprotect(_ce_ptr(pag_w), _ce_page, (PROT_READ | PROT_WRITE)) ) { + fprintf(stderr, "loom: fault mprotect (%u): %s\r\n", + pag_w, strerror(errno)); + return 1; + } + + return 0; +} + +#ifdef U3_GUARD_PAGE +/* _ce_ward_protect(): protect the guard page. +*/ +static inline c3_i +_ce_ward_protect(void) +{ + if ( 0 != mprotect(_ce_ptr(u3P.gar_w), _ce_page, PROT_NONE) ) { + fprintf(stderr, "loom: failed to protect guard page (%u): %s\r\n", + u3P.gar_w, strerror(errno)); + return 1; + } + + return 0; +} + +/* _ce_ward_post(): set the guard page. +*/ +static inline c3_i +_ce_ward_post(c3_w nop_w, c3_w sop_w) +{ + u3P.gar_w = nop_w + ((sop_w - nop_w) / 2); + return _ce_ward_protect(); +} + +/* _ce_ward_clip(): hit the guard page. +*/ +static inline u3e_flaw +_ce_ward_clip(c3_w nop_w, c3_w sop_w) +{ + c3_w old_w = u3P.gar_w; + + if ( !u3P.gar_w || ((nop_w < u3P.gar_w) && (sop_w > u3P.gar_w)) ) { + fprintf(stderr, "loom: ward bogus (>%u %u %u<)\r\n", + nop_w, u3P.gar_w, sop_w); + return u3e_flaw_sham; + } + + if ( sop_w <= (nop_w + 1) ) { + return u3e_flaw_meme; + } + + if ( _ce_ward_post(nop_w, sop_w) ) { + return u3e_flaw_base; + } + + u3_assert( old_w != u3P.gar_w ); + + return u3e_flaw_good; +} +#endif /* ifdef U3_GUARD_PAGE */ + +/* u3e_fault(): handle a memory fault. +*/ +u3e_flaw +u3e_fault(u3_post low_p, u3_post hig_p, u3_post off_p) +{ + c3_w pag_w = off_p >> u3a_page; + c3_w blk_w = pag_w >> 5; + c3_w bit_w = pag_w & 31; + +#ifdef U3_GUARD_PAGE + c3_w gar_w = u3P.gar_w; + + if ( pag_w == gar_w ) { + u3e_flaw fal_e = _ce_ward_clip(low_p >> u3a_page, hig_p >> u3a_page); + + if ( u3e_flaw_good != fal_e ) { + return fal_e; + } + + if ( !(u3P.dit_w[blk_w] & ((c3_w)1 << bit_w)) ) { + fprintf(stderr, "loom: strange guard (%d)\r\n", pag_w); + return u3e_flaw_sham; + } + + if ( _ce_flaw_mprotect(pag_w) ) { + return u3e_flaw_base; + } + + return u3e_flaw_good; + } +#endif + + if ( u3P.dit_w[blk_w] & ((c3_w)1 << bit_w) ) { + fprintf(stderr, "loom: strange page (%d): %x\r\n", pag_w, off_p); + return u3e_flaw_sham; + } + + u3P.dit_w[blk_w] |= ((c3_w)1 << bit_w); + + if ( u3P.eph_i ) { + if ( _ce_flaw_mmap(pag_w) ) { + return u3e_flaw_base; + } + } + else if ( _ce_flaw_mprotect(pag_w) ) { + return u3e_flaw_base; + } + + return u3e_flaw_good; +} + +typedef enum { + _ce_img_good = 0, + _ce_img_fail = 1, + _ce_img_size = 2 +} _ce_img_stat; + +/* _ce_image_stat(): measure image. +*/ +static _ce_img_stat +_ce_image_stat(u3e_image* img_u, c3_w* pgs_w) +{ + struct stat buf_u; + + if ( -1 == fstat(img_u->fid_i, &buf_u) ) { + fprintf(stderr, "loom: stat %s: %s\r\n", img_u->nam_c, strerror(errno)); + u3_assert(0); + return _ce_img_fail; + } + else { + c3_z siz_z = buf_u.st_size; + c3_z pgs_z = (siz_z + (_ce_page - 1)) >> (u3a_page + 2); + + if ( !siz_z ) { + *pgs_w = 0; + return _ce_img_good; + } + else if ( siz_z != _ce_len(pgs_z) ) { + fprintf(stderr, "loom: %s corrupt size %zu\r\n", img_u->nam_c, siz_z); + return _ce_img_size; + } + else if ( pgs_z > UINT32_MAX ) { + fprintf(stderr, "loom: %s overflow %zu\r\n", img_u->nam_c, siz_z); + return _ce_img_fail; + } + else { + *pgs_w = (c3_w)pgs_z; + return _ce_img_good; + } + } +} + +/* _ce_ephemeral_open(): open or create ephemeral file +*/ +static c3_o +_ce_ephemeral_open(c3_i* eph_i) +{ + c3_i mod_i = O_RDWR | O_CREAT; + c3_c ful_c[8193]; + + if ( u3C.eph_c == 0 ) { + snprintf(ful_c, 8192, "%s", u3P.dir_c); + c3_mkdir(ful_c, 0700); + + snprintf(ful_c, 8192, "%s/.urb", u3P.dir_c); + c3_mkdir(ful_c, 0700); + + snprintf(ful_c, 8192, "%s/.urb/chk", u3P.dir_c); + c3_mkdir(ful_c, 0700); + + snprintf(ful_c, 8192, "%s/.urb/chk/limbo.bin", u3P.dir_c); + u3C.eph_c = strdup(ful_c); + } + + if ( -1 == (*eph_i = c3_open(u3C.eph_c, mod_i, 0666)) ) { + fprintf(stderr, "loom: ephemeral c3_open %s: %s\r\n", u3C.eph_c, + strerror(errno)); + return c3n; + } + + if ( ftruncate(*eph_i, _ce_len(u3P.pag_w)) < 0 ) { + fprintf(stderr, "loom: ephemeral ftruncate %s: %s\r\n", u3C.eph_c, + strerror(errno)); + return c3n; + } + return c3y; +} + +/* _ce_image_open(): open or create image. +*/ +static _ce_img_stat +_ce_image_open(u3e_image* img_u, c3_c* ful_c) +{ + c3_i mod_i = O_RDWR | O_CREAT; + + c3_c pax_c[8192]; + snprintf(pax_c, 8192, "%s/%s.bin", ful_c, img_u->nam_c); + if ( -1 == (img_u->fid_i = c3_open(pax_c, mod_i, 0666)) ) { + fprintf(stderr, "loom: c3_open %s: %s\r\n", pax_c, strerror(errno)); + return _ce_img_fail; + } + + return _ce_image_stat(img_u, &img_u->pgs_w); +} + +/* _ce_patch_write_control(): write control block file. +*/ +static void +_ce_patch_write_control(u3_ce_patch* pat_u) +{ + ssize_t ret_i; + c3_w len_w = sizeof(u3e_control) + + (pat_u->con_u->pgs_w * sizeof(u3e_line)); + + if ( len_w != (ret_i = write(pat_u->ctl_i, pat_u->con_u, len_w)) ) { + if ( 0 < ret_i ) { + fprintf(stderr, "loom: patch ctl partial write: %zu\r\n", (size_t)ret_i); + } + else { + fprintf(stderr, "loom: patch ctl write: %s\r\n", strerror(errno)); + } + u3_assert(0); + } +} + +/* _ce_patch_read_control(): read control block file. +*/ +static c3_o +_ce_patch_read_control(u3_ce_patch* pat_u) +{ + c3_w len_w; + + u3_assert(0 == pat_u->con_u); + { + struct stat buf_u; + + if ( -1 == fstat(pat_u->ctl_i, &buf_u) ) { + u3_assert(0); + return c3n; + } + len_w = (c3_w) buf_u.st_size; + } + + if (0 == len_w) { + return c3n; + } + + pat_u->con_u = c3_malloc(len_w); + if ( (len_w != read(pat_u->ctl_i, pat_u->con_u, len_w)) || + (len_w != sizeof(u3e_control) + + (pat_u->con_u->pgs_w * sizeof(u3e_line))) ) + { + c3_free(pat_u->con_u); + pat_u->con_u = 0; + return c3n; + } + return c3y; +} + +/* _ce_patch_create(): create patch files. +*/ +static void +_ce_patch_create(u3_ce_patch* pat_u) +{ + c3_c ful_c[8193]; + + snprintf(ful_c, 8192, "%s", u3P.dir_c); + c3_mkdir(ful_c, 0700); + + snprintf(ful_c, 8192, "%s/.urb", u3P.dir_c); + c3_mkdir(ful_c, 0700); + + snprintf(ful_c, 8192, "%s/.urb/chk/control.bin", u3P.dir_c); + if ( -1 == (pat_u->ctl_i = c3_open(ful_c, O_RDWR | O_CREAT | O_EXCL, 0600)) ) { + fprintf(stderr, "loom: patch c3_open control.bin: %s\r\n", strerror(errno)); + u3_assert(0); + } + + snprintf(ful_c, 8192, "%s/.urb/chk/memory.bin", u3P.dir_c); + if ( -1 == (pat_u->mem_i = c3_open(ful_c, O_RDWR | O_CREAT | O_EXCL, 0600)) ) { + fprintf(stderr, "loom: patch c3_open memory.bin: %s\r\n", strerror(errno)); + u3_assert(0); + } +} + +/* _ce_patch_delete(): delete a patch. +*/ +static void +_ce_patch_delete(void) +{ + c3_c ful_c[8193]; + + snprintf(ful_c, 8192, "%s/.urb/chk/control.bin", u3P.dir_c); + if ( unlink(ful_c) ) { + fprintf(stderr, "loom: failed to delete control.bin: %s\r\n", + strerror(errno)); + } + + snprintf(ful_c, 8192, "%s/.urb/chk/memory.bin", u3P.dir_c); + if ( unlink(ful_c) ) { + fprintf(stderr, "loom: failed to remove memory.bin: %s\r\n", + strerror(errno)); + } +} + +/* _ce_patch_verify(): check patch data mug. +*/ +static c3_o +_ce_patch_verify(u3_ce_patch* pat_u) +{ + c3_w pag_w, mug_w; + c3_y buf_y[_ce_page]; + c3_zs ret_zs; + c3_o sou_o = c3n; // south seen + + if ( U3P_VERLAT != pat_u->con_u->ver_w ) { + fprintf(stderr, "loom: patch version mismatch: have %"PRIc3_w", need %u\r\n", + pat_u->con_u->ver_w, + U3P_VERLAT); + return c3n; + } + + if ( pat_u->con_u->sou_w > 1 ) { + fprintf(stderr, "loom: patch strange south size: %u\r\n", + pat_u->con_u->sou_w); + return c3n; + } + + for ( c3_z i_z = 0; i_z < pat_u->con_u->pgs_w; i_z++ ) { + pag_w = pat_u->con_u->mem_u[i_z].pag_w; + mug_w = pat_u->con_u->mem_u[i_z].mug_w; + + if ( _ce_page != + (ret_zs = pread(pat_u->mem_i, buf_y, _ce_page, _ce_len(i_z))) ) + { + if ( 0 < ret_zs ) { + fprintf(stderr, "loom: patch partial read: %"PRIc3_zs"\r\n", ret_zs); + } + else { + fprintf(stderr, "loom: patch read: fail %s\r\n", strerror(errno)); + } + return c3n; + } + + { + c3_w nug_w = _ce_mug_page(buf_y); + + if ( mug_w != nug_w ) { + fprintf(stderr, "loom: patch mug mismatch" + " %"PRIc3_w"/%"PRIc3_z"; (%"PRIxc3_w", %"PRIxc3_w")\r\n", + pag_w, i_z, mug_w, nug_w); + return c3n; + } +#if 0 + else { + u3l_log("verify: patch %"PRIc3_w"/%"PRIc3_z", %"PRIxc3_w"\r\n", pag_w, i_z, mug_w); + } +#endif + } + + if ( pag_w >= pat_u->con_u->nor_w ) { + if ( c3n == sou_o ) { + sou_o = c3y; + } + else { + fprintf(stderr, "loom: patch multiple south pages\r\n"); + return c3n; + } + } + } + return c3y; +} + +/* _ce_patch_free(): free a patch. +*/ +static void +_ce_patch_free(u3_ce_patch* pat_u) +{ + c3_free(pat_u->con_u); + close(pat_u->ctl_i); + close(pat_u->mem_i); + c3_free(pat_u); +} + +/* _ce_patch_open(): open patch, if any. +*/ +static u3_ce_patch* +_ce_patch_open(void) +{ + u3_ce_patch* pat_u; + c3_c ful_c[8193]; + c3_i ctl_i, mem_i; + + snprintf(ful_c, 8192, "%s", u3P.dir_c); + c3_mkdir(ful_c, 0700); + + snprintf(ful_c, 8192, "%s/.urb", u3P.dir_c); + c3_mkdir(ful_c, 0700); + + snprintf(ful_c, 8192, "%s/.urb/chk/control.bin", u3P.dir_c); + if ( -1 == (ctl_i = c3_open(ful_c, O_RDWR)) ) { + return 0; + } + + snprintf(ful_c, 8192, "%s/.urb/chk/memory.bin", u3P.dir_c); + if ( -1 == (mem_i = c3_open(ful_c, O_RDWR)) ) { + close(ctl_i); + + _ce_patch_delete(); + return 0; + } + pat_u = c3_malloc(sizeof(u3_ce_patch)); + pat_u->ctl_i = ctl_i; + pat_u->mem_i = mem_i; + pat_u->con_u = 0; + + if ( c3n == _ce_patch_read_control(pat_u) ) { + close(pat_u->ctl_i); + close(pat_u->mem_i); + c3_free(pat_u); + + _ce_patch_delete(); + return 0; + } + if ( c3n == _ce_patch_verify(pat_u) ) { + _ce_patch_free(pat_u); + _ce_patch_delete(); + return 0; + } + return pat_u; +} + +/* _ce_patch_write_page(): write a page of patch memory. +*/ +static void +_ce_patch_write_page(u3_ce_patch* pat_u, + c3_w pgc_w, + c3_w* mem_w) +{ + c3_zs ret_zs; + + if ( _ce_page != + (ret_zs = pwrite(pat_u->mem_i, mem_w, _ce_page, _ce_len(pgc_w))) ) + { + if ( 0 < ret_zs ) { + fprintf(stderr, "loom: patch partial write: %"PRIc3_zs"\r\n", ret_zs); + } + else { + fprintf(stderr, "loom: patch write: fail: %s\r\n", strerror(errno)); + } + fprintf(stderr, "info: you probably have insufficient disk space"); + u3_assert(0); + } +} + +/* _ce_patch_count_page(): count a page, producing new counter. +*/ +static c3_w +_ce_patch_count_page(c3_w pag_w, + c3_w pgc_w) +{ + c3_w blk_w = (pag_w >> 5); + c3_w bit_w = (pag_w & 31); + + if ( u3P.dit_w[blk_w] & ((c3_w)1 << bit_w) ) { + pgc_w += 1; + } + return pgc_w; +} + +/* _ce_patch_save_page(): save a page, producing new page counter. +*/ +static c3_w +_ce_patch_save_page(u3_ce_patch* pat_u, + c3_w pag_w, + c3_w pgc_w) +{ + c3_w blk_w = (pag_w >> 5); + c3_w bit_w = (pag_w & 31); + + if ( u3P.dit_w[blk_w] & ((c3_w)1 << bit_w) ) { + c3_w* mem_w = _ce_ptr(pag_w); + + pat_u->con_u->mem_u[pgc_w].pag_w = pag_w; + pat_u->con_u->mem_u[pgc_w].mug_w = _ce_mug_page(mem_w); + +#if 0 + fprintf(stderr, "loom: save page %d %x\r\n", + pag_w, pat_u->con_u->mem_u[pgc_w].mug_w); +#endif + _ce_patch_write_page(pat_u, pgc_w, mem_w); + + pgc_w += 1; + } + return pgc_w; +} + +/* _ce_patch_compose(): make and write current patch. +*/ +static u3_ce_patch* +_ce_patch_compose(c3_w nor_w, c3_w sou_w) +{ + c3_w pgs_w = 0; + +#ifdef U3_SNAPSHOT_VALIDATION + u3K.nor_w = nor_w; + u3K.sou_w = sou_w; +#endif + + /* Count dirty pages. + */ + { + c3_w i_w; + + for ( i_w = 0; i_w < nor_w; i_w++ ) { + pgs_w = _ce_patch_count_page(i_w, pgs_w); + } + for ( i_w = 0; i_w < sou_w; i_w++ ) { + pgs_w = _ce_patch_count_page((u3P.pag_w - (i_w + 1)), pgs_w); + } + } + + if ( !pgs_w ) { + return 0; + } + else { + u3_ce_patch* pat_u = c3_malloc(sizeof(u3_ce_patch)); + c3_w i_w, pgc_w; + + _ce_patch_create(pat_u); + pat_u->con_u = c3_malloc(sizeof(u3e_control) + (pgs_w * sizeof(u3e_line))); + pat_u->con_u->ver_w = U3P_VERLAT; + pgc_w = 0; + + for ( i_w = 0; i_w < nor_w; i_w++ ) { + pgc_w = _ce_patch_save_page(pat_u, i_w, pgc_w); + } + for ( i_w = 0; i_w < sou_w; i_w++ ) { + pgc_w = _ce_patch_save_page(pat_u, (u3P.pag_w - (i_w + 1)), pgc_w); + } + + u3_assert( pgc_w == pgs_w ); + + pat_u->con_u->nor_w = nor_w; + pat_u->con_u->sou_w = sou_w; + pat_u->con_u->pgs_w = pgc_w; + + _ce_patch_write_control(pat_u); + return pat_u; + } +} + +/* _ce_patch_sync(): make sure patch is synced to disk. +*/ +static void +_ce_patch_sync(u3_ce_patch* pat_u) +{ + if ( -1 == c3_sync(pat_u->ctl_i) ) { + fprintf(stderr, "loom: control file sync failed: %s\r\n", + strerror(errno)); + u3_assert(!"loom: control sync"); + } + + if ( -1 == c3_sync(pat_u->mem_i) ) { + fprintf(stderr, "loom: patch file sync failed: %s\r\n", + strerror(errno)); + u3_assert(!"loom: patch sync"); + } +} + +/* _ce_image_sync(): make sure image is synced to disk. +*/ +static c3_o +_ce_image_sync(u3e_image* img_u) +{ + if ( -1 == c3_sync(img_u->fid_i) ) { + fprintf(stderr, "loom: image (%s) sync failed: %s\r\n", + img_u->nam_c, strerror(errno)); + return c3n; + } + + return c3y; +} + +/* _ce_image_resize(): resize image, truncating if it shrunk. +*/ +static void +_ce_image_resize(u3e_image* img_u, c3_w pgs_w) +{ + c3_z off_z = _ce_len(pgs_w); + off_t off_i = (off_t)off_z; + + if ( img_u->pgs_w > pgs_w ) { + if ( off_z != (size_t)off_i ) { + fprintf(stderr, "loom: image (%s) truncate: " + "offset overflow (%" PRId64 ") for page %u\r\n", + img_u->nam_c, (c3_ds)off_i, pgs_w); + u3_assert(0); + } + + if ( ftruncate(img_u->fid_i, off_i) ) { + fprintf(stderr, "loom: image (%s) truncate: %s\r\n", + img_u->nam_c, strerror(errno)); + u3_assert(0); + } + } + + img_u->pgs_w = pgs_w; +} + +/* _ce_patch_apply(): apply patch to images. +*/ +static void +_ce_patch_apply(u3_ce_patch* pat_u) +{ + c3_zs ret_zs; + c3_w i_w; + + // resize images + // + _ce_image_resize(&u3P.nor_u, pat_u->con_u->nor_w); + _ce_image_resize(&u3P.sou_u, pat_u->con_u->sou_w); + + // seek to begining of patch + // + if ( -1 == lseek(pat_u->mem_i, 0, SEEK_SET) ) { + fprintf(stderr, "loom: patch apply seek: %s\r\n", strerror(errno)); + u3_assert(0); + } + + // write patch pages into the appropriate image + // + for ( i_w = 0; i_w < pat_u->con_u->pgs_w; i_w++ ) { + c3_w pag_w = pat_u->con_u->mem_u[i_w].pag_w; + c3_y buf_y[_ce_page]; + c3_i fid_i; + c3_z off_z; + + if ( pag_w < pat_u->con_u->nor_w ) { + fid_i = u3P.nor_u.fid_i; + off_z = _ce_len(pag_w); + } + // NB: this assumes that there never more than one south page, + // as enforced by _ce_patch_verify() + // + else { + fid_i = u3P.sou_u.fid_i; + off_z = 0; + } + + if ( _ce_page != (ret_zs = read(pat_u->mem_i, buf_y, _ce_page)) ) { + if ( 0 < ret_zs ) { + fprintf(stderr, "loom: patch apply partial read: %"PRIc3_zs"\r\n", + ret_zs); + } + else { + fprintf(stderr, "loom: patch apply read: %s\r\n", strerror(errno)); + } + u3_assert(0); + } + else { + if ( _ce_page != + (ret_zs = pwrite(fid_i, buf_y, _ce_page, off_z)) ) + { + if ( 0 < ret_zs ) { + fprintf(stderr, "loom: patch apply partial write: %"PRIc3_zs"\r\n", + ret_zs); + } + else { + fprintf(stderr, "loom: patch apply write: %s\r\n", strerror(errno)); + } + fprintf(stderr, "info: you probably have insufficient disk space"); + u3_assert(0); + } + } +#if 0 + u3l_log("apply: %d, %x", pag_w, _ce_mug_page(buf_y)); +#endif + } +} + +/* _ce_loom_track_sane(): quiescent page state invariants. +*/ +static c3_o +_ce_loom_track_sane(void) +{ + c3_w blk_w, bit_w, max_w, i_w = 0; + c3_o san_o = c3y; + + max_w = u3P.nor_u.pgs_w; + + for ( ; i_w < max_w; i_w++ ) { + blk_w = i_w >> 5; + bit_w = i_w & 31; + + if ( u3P.dit_w[blk_w] & ((c3_w)1 << bit_w) ) { + fprintf(stderr, "loom: insane north %u\r\n", i_w); + san_o = c3n; + } + } + + max_w = u3P.pag_w - u3P.sou_u.pgs_w; + + for ( ; i_w < max_w; i_w++ ) { + blk_w = i_w >> 5; + bit_w = i_w & 31; + + if ( !(u3P.dit_w[blk_w] & ((c3_w)1 << bit_w)) ) { + fprintf(stderr, "loom: insane open %u\r\n", i_w); + san_o = c3n; + } + } + + max_w = u3P.pag_w; + + for ( ; i_w < max_w; i_w++ ) { + blk_w = i_w >> 5; + bit_w = i_w & 31; + + if ( u3P.dit_w[blk_w] & ((c3_w)1 << bit_w) ) { + fprintf(stderr, "loom: insane south %u\r\n", i_w); + san_o = c3n; + } + } + + return san_o; +} + +/* _ce_loom_track_north(): [pgs_w] clean, followed by [dif_w] dirty. +*/ +void +_ce_loom_track_north(c3_w pgs_w, c3_w dif_w) +{ + c3_w blk_w, bit_w, i_w = 0, max_w = pgs_w; + + for ( ; i_w < max_w; i_w++ ) { + blk_w = i_w >> 5; + bit_w = i_w & 31; + u3P.dit_w[blk_w] &= ~((c3_w)1 << bit_w); + } + + max_w += dif_w; + + for ( ; i_w < max_w; i_w++ ) { + blk_w = i_w >> 5; + bit_w = i_w & 31; + u3P.dit_w[blk_w] |= ((c3_w)1 << bit_w); + } +} + +/* _ce_loom_track_south(): [pgs_w] clean, preceded by [dif_w] dirty. +*/ +void +_ce_loom_track_south(c3_w pgs_w, c3_w dif_w) +{ + c3_w blk_w, bit_w, i_w = u3P.pag_w - 1, max_w = u3P.pag_w - pgs_w; + + for ( ; i_w >= max_w; i_w-- ) { + blk_w = i_w >> 5; + bit_w = i_w & 31; + u3P.dit_w[blk_w] &= ~((c3_w)1 << bit_w); + } + + max_w -= dif_w; + + for ( ; i_w >= max_w; i_w-- ) { + blk_w = i_w >> 5; + bit_w = i_w & 31; + u3P.dit_w[blk_w] |= ((c3_w)1 << bit_w); + } +} + +/* _ce_loom_protect_north(): protect/track pages from the bottom of memory. +*/ +static void +_ce_loom_protect_north(c3_w pgs_w, c3_w old_w) +{ + c3_w dif_w = 0; + + if ( pgs_w ) { + if ( 0 != mprotect(_ce_ptr(0), _ce_len(pgs_w), PROT_READ) ) { + fprintf(stderr, "loom: pure north (%u pages): %s\r\n", + pgs_w, strerror(errno)); + u3_assert(0); + } + } + + if ( old_w > pgs_w ) { + dif_w = old_w - pgs_w; + + if ( 0 != mprotect(_ce_ptr(pgs_w), + _ce_len(dif_w), + (PROT_READ | PROT_WRITE)) ) + { + fprintf(stderr, "loom: foul north (%u pages, %u old): %s\r\n", + pgs_w, old_w, strerror(errno)); + u3_assert(0); + } + +#ifdef U3_GUARD_PAGE + // protect guard page if clobbered + // + // NB: < pgs_w is precluded by assertion in u3e_save() + // + if ( u3P.gar_w < old_w ) { + fprintf(stderr, "loom: guard on reprotect\r\n"); + u3_assert( !_ce_ward_protect() ); + } +#endif + } + + _ce_loom_track_north(pgs_w, dif_w); +} + +/* _ce_loom_protect_south(): protect/track pages from the top of memory. +*/ +static void +_ce_loom_protect_south(c3_w pgs_w, c3_w old_w) +{ + c3_w dif_w = 0; + + if ( pgs_w ) { + if ( 0 != mprotect(_ce_ptr(u3P.pag_w - pgs_w), + _ce_len(pgs_w), + PROT_READ) ) + { + fprintf(stderr, "loom: pure south (%u pages): %s\r\n", + pgs_w, strerror(errno)); + u3_assert(0); + } + } + + if ( old_w > pgs_w ) { + c3_w off_w = u3P.pag_w - old_w; + dif_w = old_w - pgs_w; + + if ( 0 != mprotect(_ce_ptr(off_w), + _ce_len(dif_w), + (PROT_READ | PROT_WRITE)) ) + { + fprintf(stderr, "loom: foul south (%u pages, %u old): %s\r\n", + pgs_w, old_w, strerror(errno)); + u3_assert(0); + } + +#ifdef U3_GUARD_PAGE + // protect guard page if clobbered + // + // NB: >= pgs_w is precluded by assertion in u3e_save() + // + if ( u3P.gar_w >= off_w ) { + fprintf(stderr, "loom: guard on reprotect\r\n"); + u3_assert( !_ce_ward_protect() ); + } +#endif + } + + _ce_loom_track_south(pgs_w, dif_w); +} + +/* _ce_loom_mapf_ephemeral(): map entire loom into ephemeral file +*/ +static void +_ce_loom_mapf_ephemeral(void) +{ + if ( MAP_FAILED == mmap(_ce_ptr(0), + _ce_len(u3P.pag_w), + (PROT_READ | PROT_WRITE), + (MAP_FIXED | MAP_SHARED), + u3P.eph_i, 0) ) + { + fprintf(stderr, "loom: initial ephemeral mmap failed (%u pages): %s\r\n", + u3P.pag_w, strerror(errno)); + u3_assert(0); + } +} + +/* _ce_loom_mapf_north(): map [pgs_w] of [fid_i] into the bottom of memory +** (and ephemeralize [old_w - pgs_w] after if needed). +** +** NB: _ce_loom_mapf_south() is possible, but it would make separate mappings +** for each page since the south segment is reversed on disk. +** in practice, the south segment is a single page (and always dirty); +** a file-backed mapping for it is just not worthwhile. +*/ +static void +_ce_loom_mapf_north(c3_i fid_i, c3_w pgs_w, c3_w old_w) +{ + c3_w dif_w = 0; + + if ( pgs_w ) { + if ( MAP_FAILED == mmap(_ce_ptr(0), + _ce_len(pgs_w), + PROT_READ, + (MAP_FIXED | MAP_PRIVATE), + fid_i, 0) ) + { + fprintf(stderr, "loom: file-backed mmap failed (%u pages): %s\r\n", + pgs_w, strerror(errno)); + u3_assert(0); + } + } + + if ( old_w > pgs_w ) { + dif_w = old_w - pgs_w; + + if ( u3C.wag_w & u3o_swap ) { + if ( MAP_FAILED == mmap(_ce_ptr(pgs_w), + _ce_len(dif_w), + (PROT_READ | PROT_WRITE), + (MAP_FIXED | MAP_SHARED), + u3P.eph_i, _ce_len(pgs_w)) ) + { + fprintf(stderr, "loom: ephemeral mmap failed (%u pages, %u old): %s\r\n", + pgs_w, old_w, strerror(errno)); + u3_assert(0); + } + } + else { + if ( MAP_FAILED == mmap(_ce_ptr(pgs_w), + _ce_len(dif_w), + (PROT_READ | PROT_WRITE), + (MAP_ANON | MAP_FIXED | MAP_PRIVATE), + -1, 0) ) + { + fprintf(stderr, "loom: anonymous mmap failed (%u pages, %u old): %s\r\n", + pgs_w, old_w, strerror(errno)); + u3_assert(0); + } + } + +#ifdef U3_GUARD_PAGE + // protect guard page if clobbered + // + // NB: < pgs_w is precluded by assertion in u3e_save() + // + if ( u3P.gar_w < old_w ) { + fprintf(stderr, "loom: guard on remap\r\n"); + u3_assert( !_ce_ward_protect() ); + } +#endif + } + + _ce_loom_track_north(pgs_w, dif_w); +} + +/* _ce_loom_blit_north(): apply pages, in order, from the bottom of memory. +*/ +static void +_ce_loom_blit_north(c3_i fid_i, c3_w pgs_w) +{ + c3_w i_w; + void* ptr_v; + c3_zs ret_zs; + + for ( i_w = 0; i_w < pgs_w; i_w++ ) { + ptr_v = _ce_ptr(i_w); + + if ( _ce_page != (ret_zs = pread(fid_i, ptr_v, _ce_page, _ce_len(i_w))) ) { + if ( 0 < ret_zs ) { + fprintf(stderr, "loom: blit north partial read: %"PRIc3_zs"\r\n", + ret_zs); + } + else { + fprintf(stderr, "loom: blit north read %s\r\n", strerror(errno)); + } + u3_assert(0); + } + } + + _ce_loom_protect_north(pgs_w, 0); +} + +/* _ce_loom_blit_south(): apply pages, reversed, from the top of memory. +*/ +static void +_ce_loom_blit_south(c3_i fid_i, c3_w pgs_w) +{ + c3_w i_w; + void* ptr_v; + c3_zs ret_zs; + + for ( i_w = 0; i_w < pgs_w; i_w++ ) { + ptr_v = _ce_ptr(u3P.pag_w - (i_w + 1)); + + if ( _ce_page != (ret_zs = pread(fid_i, ptr_v, _ce_page, _ce_len(i_w))) ) { + if ( 0 < ret_zs ) { + fprintf(stderr, "loom: blit south partial read: %"PRIc3_zs"\r\n", + ret_zs); + } + else { + fprintf(stderr, "loom: blit south read: %s\r\n", strerror(errno)); + } + u3_assert(0); + } + } + + _ce_loom_protect_south(pgs_w, 0); +} + +#ifdef U3_SNAPSHOT_VALIDATION +/* _ce_page_fine(): compare page in memory and on disk. +*/ +static c3_o +_ce_page_fine(u3e_image* img_u, c3_w pag_w, c3_z off_z) +{ + ssize_t ret_i; + c3_y buf_y[_ce_page]; + + if ( _ce_page != + (ret_i = pread(img_u->fid_i, buf_y, _ce_page, off_z)) ) + { + if ( 0 < ret_i ) { + fprintf(stderr, "loom: image (%s) fine partial read: %zu\r\n", + img_u->nam_c, (size_t)ret_i); + } + else { + fprintf(stderr, "loom: image (%s) fine read: %s\r\n", + img_u->nam_c, strerror(errno)); + } + u3_assert(0); + } + + { + c3_w mug_w = _ce_mug_page(_ce_ptr(pag_w)); + c3_w fug_w = _ce_mug_page(buf_y); + + if ( mug_w != fug_w ) { + fprintf(stderr, "loom: image (%s) mismatch: " + "page %d, mem_w %x, fil_w %x, K %x\r\n", + img_u->nam_c, pag_w, mug_w, fug_w, u3K.mug_w[pag_w]); + return c3n; + } + } + + return c3y; +} + +/* _ce_loom_fine(): compare clean pages in memory and on disk. +*/ +static c3_o +_ce_loom_fine(void) +{ + c3_w blk_w, bit_w, pag_w, i_w; + c3_o fin_o = c3y; + + for ( i_w = 0; i_w < u3P.nor_u.pgs_w; i_w++ ) { + pag_w = i_w; + blk_w = pag_w >> 5; + bit_w = pag_w & 31; + + if ( !(u3P.dit_w[blk_w] & ((c3_w)1 << bit_w)) ) { + fin_o = c3a(fin_o, _ce_page_fine(&u3P.nor_u, pag_w, _ce_len(pag_w))); + } + } + + for ( i_w = 0; i_w < u3P.sou_u.pgs_w; i_w++ ) { + pag_w = u3P.pag_w - (i_w + 1); + blk_w = pag_w >> 5; + bit_w = pag_w & 31; + + if ( !(u3P.dit_w[blk_w] & ((c3_w)1 << bit_w)) ) { + fin_o = c3a(fin_o, _ce_page_fine(&u3P.sou_u, pag_w, _ce_len(i_w))); + } + } + + return fin_o; +} +#endif + +/* _ce_image_copy(): copy all of [fom_u] to [tou_u] +*/ +static c3_o +_ce_image_copy(u3e_image* fom_u, u3e_image* tou_u) +{ + ssize_t ret_i; + c3_w i_w; + + // resize images + // + _ce_image_resize(tou_u, fom_u->pgs_w); + + // seek to begining of patch and images + // + if ( (-1 == lseek(fom_u->fid_i, 0, SEEK_SET)) + || (-1 == lseek(tou_u->fid_i, 0, SEEK_SET)) ) + { + fprintf(stderr, "loom: image (%s) copy seek: %s\r\n", + fom_u->nam_c, + strerror(errno)); + return c3n; + } + + // copy pages into destination image + // + for ( i_w = 0; i_w < fom_u->pgs_w; i_w++ ) { + c3_y buf_y[_ce_page]; + c3_w off_w = i_w; + + if ( _ce_page != (ret_i = read(fom_u->fid_i, buf_y, _ce_page)) ) { + if ( 0 < ret_i ) { + fprintf(stderr, "loom: image (%s) copy partial read: %zu\r\n", + fom_u->nam_c, (size_t)ret_i); + } + else { + fprintf(stderr, "loom: image (%s) copy read: %s\r\n", + fom_u->nam_c, strerror(errno)); + } + return c3n; + } + else { + if ( -1 == lseek(tou_u->fid_i, _ce_len(off_w), SEEK_SET) ) { + fprintf(stderr, "loom: image (%s) copy seek: %s\r\n", + tou_u->nam_c, strerror(errno)); + return c3n; + } + if ( _ce_page != (ret_i = write(tou_u->fid_i, buf_y, _ce_page)) ) { + if ( 0 < ret_i ) { + fprintf(stderr, "loom: image (%s) copy partial write: %zu\r\n", + tou_u->nam_c, (size_t)ret_i); + } + else { + fprintf(stderr, "loom: image (%s) copy write: %s\r\n", + tou_u->nam_c, strerror(errno)); + } + fprintf(stderr, "info: you probably have insufficient disk space"); + return c3n; + } + } + } + + return c3y; +} + +/* u3e_backup(): copy snapshot from [pux_c] to [pax_c], + * overwriting optionally. note that image files must + * be named "north" and "south". +*/ +c3_o +u3e_backup(c3_c* pux_c, c3_c* pax_c, c3_o ovw_o) +{ + // source image files from [pux_c] + u3e_image nux_u = { .nam_c = "north", .pgs_w = 0 }; + u3e_image sux_u = { .nam_c = "south", .pgs_w = 0 }; + + // destination image files to [pax_c] + u3e_image nax_u = { .nam_c = "north", .pgs_w = 0 }; + u3e_image sax_u = { .nam_c = "south", .pgs_w = 0 }; + + c3_i mod_i = O_RDWR | O_CREAT; + + if ( !pux_c || !pax_c ) { + fprintf(stderr, "loom: image backup: bad path\r\n"); + return c3n; + } + + if ( (c3n == ovw_o) && c3_mkdir(pax_c, 0700) ) { + if ( EEXIST != errno ) { + fprintf(stderr, "loom: image backup: %s\r\n", strerror(errno)); + } + return c3n; + } + + // open source image files if they exist + // + c3_c nux_c[8193]; + snprintf(nux_c, 8192, "%s/%s.bin", pux_c, nux_u.nam_c); + if ( (0 != access(nux_c, F_OK)) + || (_ce_img_good != _ce_image_open(&nux_u, pux_c)) ) + { + fprintf(stderr, "loom: couldn't open north image at %s\r\n", pux_c); + return c3n; + } + + c3_c sux_c[8193]; + snprintf(sux_c, 8192, "%s/%s.bin", pux_c, sux_u.nam_c); + if ( (0 != access(sux_c, F_OK)) + || (_ce_img_good != _ce_image_open(&sux_u, pux_c)) ) + { + fprintf(stderr, "loom: couldn't open south image at %s\r\n", pux_c); + return c3n; + } + + // open destination image files + c3_c nax_c[8193]; + snprintf(nax_c, 8192, "%s/%s.bin", pax_c, nax_u.nam_c); + if ( -1 == (nax_u.fid_i = c3_open(nax_c, mod_i, 0666)) ) { + fprintf(stderr, "loom: c3_open %s: %s\r\n", nax_c, strerror(errno)); + return c3n; + } + c3_c sax_c[8193]; + snprintf(sax_c, 8192, "%s/%s.bin", pax_c, sax_u.nam_c); + if ( -1 == (sax_u.fid_i = c3_open(sax_c, mod_i, 0666)) ) { + fprintf(stderr, "loom: c3_open %s: %s\r\n", sax_c, strerror(errno)); + return c3n; + } + + if ( (c3n == _ce_image_copy(&nux_u, &nax_u)) + || (c3n == _ce_image_copy(&sux_u, &sax_u)) + || (c3n == _ce_image_sync(&nax_u)) + || (c3n == _ce_image_sync(&sax_u)) ) + { + c3_unlink(nax_c); + c3_unlink(sax_c); + fprintf(stderr, "loom: image backup failed\r\n"); + return c3n; + } + + close(nax_u.fid_i); + close(sax_u.fid_i); + fprintf(stderr, "loom: image backup complete\r\n"); + return c3y; +} + +/* + u3e_save(): save current changes. + + If we are in dry-run mode, do nothing. + + First, call `_ce_patch_compose` to write all dirty pages to disk and + clear protection and dirty bits. If there were no dirty pages to write, + then we're done. + + - Sync the patch files to disk. + - Verify the patch (because why not?) + - Write the patch data into the image file (This is idempotent.). + - Sync the image file. + - Delete the patchfile and free it. + + Once we've written the dirty pages to disk (and have reset their dirty bits + and protection flags), we *could* handle the rest of the checkpointing + process in a separate thread, but we'd need to wait until that finishes + before we try to make another snapshot. +*/ +void +u3e_save(u3_post low_p, u3_post hig_p) +{ + u3_ce_patch* pat_u; + c3_w nod_w = u3P.nor_u.pgs_w; + c3_w sod_w = u3P.sou_u.pgs_w; + + if ( u3C.wag_w & u3o_dryrun ) { + return; + } + + { + c3_w nop_w = (low_p >> u3a_page); + c3_w nor_w = (low_p + (_ce_len_words(1) - 1)) >> u3a_page; + c3_w sop_w = hig_p >> u3a_page; + + u3_assert( (u3P.gar_w > nop_w) && (u3P.gar_w < sop_w) ); + + if ( !(pat_u = _ce_patch_compose(nor_w, u3P.pag_w - sop_w)) ) { + return; + } + } + + // attempt to avoid propagating anything insane to disk + // + u3a_loom_sane(); + + if ( u3C.wag_w & u3o_verbose ) { + u3a_print_memory(stderr, "sync: save", pat_u->con_u->pgs_w << u3a_page); + } + + _ce_patch_sync(pat_u); + + if ( c3n == _ce_patch_verify(pat_u) ) { + u3_assert(!"loom: save failed"); + } + +#ifdef U3_SNAPSHOT_VALIDATION + // check that clean pages are correct + // + u3_assert( c3y == _ce_loom_fine() ); +#endif + + _ce_patch_apply(pat_u); + + u3_assert( c3y == _ce_image_sync(&u3P.nor_u) ); + u3_assert( c3y == _ce_image_sync(&u3P.sou_u) ); + + _ce_patch_free(pat_u); + _ce_patch_delete(); + +#ifdef U3_SNAPSHOT_VALIDATION + { + c3_w pgs_w; + u3_assert( _ce_img_good == _ce_image_stat(&u3P.nor_u, &pgs_w) ); + u3_assert( pgs_w == u3P.nor_u.pgs_w ); + u3_assert( _ce_img_good == _ce_image_stat(&u3P.sou_u, &pgs_w) ); + u3_assert( pgs_w == u3P.sou_u.pgs_w ); + } +#endif + + _ce_loom_protect_south(u3P.sou_u.pgs_w, sod_w); + +#ifdef U3_SNAPSHOT_VALIDATION + // check that all pages in the north/south segments are clean, + // all between are dirty, and clean pages are *fine* + // + // since total finery requires total cleanliness, + // pages of the north segment are protected twice. + // + _ce_loom_protect_north(u3P.nor_u.pgs_w, nod_w); + + u3_assert( c3y == _ce_loom_track_sane() ); + u3_assert( c3y == _ce_loom_fine() ); +#endif + + if ( u3C.wag_w & u3o_no_demand ) { +#ifndef U3_SNAPSHOT_VALIDATION + _ce_loom_protect_north(u3P.nor_u.pgs_w, nod_w); +#endif + } + else { + _ce_loom_mapf_north(u3P.nor_u.fid_i, u3P.nor_u.pgs_w, nod_w); + } + + u3e_toss(low_p, hig_p); +} + +/* _ce_toss_pages(): discard ephemeral pages. +*/ +static void +_ce_toss_pages(c3_w nor_w, c3_w sou_w) +{ + c3_w pgs_w = u3P.pag_w - (nor_w + sou_w); + void* ptr_v = _ce_ptr(nor_w); + + if ( -1 == madvise(ptr_v, _ce_len(pgs_w), MADV_DONTNEED) ) { + fprintf(stderr, "loom: madv_dontneed failed (%u pages at %u): %s\r\n", + pgs_w, nor_w, strerror(errno)); + } +} + +/* u3e_toss(): discard ephemeral pages. +*/ +void +u3e_toss(u3_post low_p, u3_post hig_p) +{ + c3_w nor_w = (low_p + (_ce_len_words(1) - 1)) >> u3a_page; + c3_w sou_w = u3P.pag_w - (hig_p >> u3a_page); + + _ce_toss_pages(nor_w, sou_w); +} + +/* u3e_live(): start the checkpointing system. +*/ +c3_o +u3e_live(c3_o nuu_o, c3_c* dir_c) +{ + // require that our page size is a multiple of the system page size. + // + { + size_t sys_i = sysconf(_SC_PAGESIZE); + + if ( _ce_page % sys_i ) { + fprintf(stderr, "loom: incompatible system page size (%zuKB)\r\n", + sys_i >> 10); + exit(1); + } + } + + u3P.dir_c = dir_c; + u3P.eph_i = 0; + u3P.nor_u.nam_c = "north"; + u3P.sou_u.nam_c = "south"; + u3P.pag_w = u3C.wor_i >> u3a_page; + + // XX review dryrun requirements, enable or remove + // +#if 0 + if ( u3C.wag_w & u3o_dryrun ) { + return c3y; + } else +#endif + { + // Open the ephemeral space file. + // + if ( u3C.wag_w & u3o_swap ) { + if ( c3n == _ce_ephemeral_open(&u3P.eph_i) ) { + fprintf(stderr, "boot: failed to load ephemeral file\r\n"); + exit(1); + } + } + + // Open image files. + // + c3_c chk_c[8193]; + snprintf(chk_c, 8193, "%s/.urb/chk", u3P.dir_c); + + _ce_img_stat nor_e = _ce_image_open(&u3P.nor_u, chk_c); + _ce_img_stat sou_e = _ce_image_open(&u3P.sou_u, chk_c); + + if ( (_ce_img_fail == nor_e) || (_ce_img_fail == sou_e) ) { + fprintf(stderr, "boot: image failed\r\n"); + exit(1); + } + else { + u3_ce_patch* pat_u; + c3_w nor_w, sou_w; + + /* Load any patch files; apply them to images. + */ + if ( 0 != (pat_u = _ce_patch_open()) ) { + _ce_patch_apply(pat_u); + u3_assert( c3y == _ce_image_sync(&u3P.nor_u) ); + u3_assert( c3y == _ce_image_sync(&u3P.sou_u) ); + _ce_patch_free(pat_u); + _ce_patch_delete(); + } + else if ( (_ce_img_size == nor_e) || (_ce_img_size == sou_e) ) { + fprintf(stderr, "boot: image failed (size)\r\n"); + exit(1); + } + + nor_w = u3P.nor_u.pgs_w; + sou_w = u3P.sou_u.pgs_w; + + // detect snapshots from a larger loom + // + if ( (nor_w + sou_w + 1) >= u3P.pag_w ) { + fprintf(stderr, "boot: snapshot too big for loom\r\n"); + exit(1); + } + + // mark all pages dirty (pages in the snapshot will be marked clean) + // + u3e_foul(); + + /* Write image files to memory; reinstate protection. + */ + { + if ( u3C.wag_w & u3o_swap ) { + _ce_loom_mapf_ephemeral(); + } + + if ( u3C.wag_w & u3o_no_demand ) { + _ce_loom_blit_north(u3P.nor_u.fid_i, nor_w); + } + else { + _ce_loom_mapf_north(u3P.nor_u.fid_i, nor_w, 0); + } + + _ce_loom_blit_south(u3P.sou_u.fid_i, sou_w); + + u3l_log("boot: protected loom"); + } + + /* If the images were empty, we are logically booting. + */ + if ( !nor_w && !sou_w ) { + u3l_log("live: logical boot"); + nuu_o = c3y; + } + else if ( u3C.wag_w & u3o_no_demand ) { + u3a_print_memory(stderr, "live: loaded", _ce_len_words(nor_w + sou_w)); + } + else { + u3a_print_memory(stderr, "live: mapped", nor_w << u3a_page); + u3a_print_memory(stderr, "live: loaded", sou_w << u3a_page); + } + +#ifdef U3_GUARD_PAGE + u3_assert( !_ce_ward_post(nor_w, u3P.pag_w - sou_w) ); +#endif + } + } + + return nuu_o; +} + +/* u3e_stop(): gracefully stop the persistence system. +*/ +void +u3e_stop(void) +{ + if ( u3P.eph_i ) { + _ce_toss_pages(u3P.nor_u.pgs_w, u3P.sou_u.pgs_w); + close(u3P.eph_i); + unlink(u3C.eph_c); + } + + close(u3P.sou_u.fid_i); + close(u3P.sou_u.fid_i); +} + +/* u3e_yolo(): disable dirty page tracking, read/write whole loom. +*/ +c3_o +u3e_yolo(void) +{ + // NB: u3e_save() will reinstate protection flags + // + if ( 0 != mprotect(_ce_ptr(0), + _ce_len(u3P.pag_w), + (PROT_READ | PROT_WRITE)) ) + { + // XX confirm recoverable errors + // + fprintf(stderr, "loom: yolo: %s\r\n", strerror(errno)); + return c3n; + } + + u3_assert( !_ce_ward_protect() ); + + return c3y; +} + +/* u3e_foul(): dirty all the pages of the loom. +*/ +void +u3e_foul(void) +{ + memset((void*)u3P.dit_w, 0xff, sizeof(u3P.dit_w)); +} + +/* u3e_init(): initialize guard page tracking, dirty loom +*/ +void +u3e_init(void) +{ + u3P.pag_w = u3C.wor_i >> u3a_page; + + u3P.nor_u.fid_i = u3P.sou_u.fid_i = -1; + + u3e_foul(); + +#ifdef U3_GUARD_PAGE + u3_assert( !_ce_ward_post(0, u3P.pag_w) ); +#endif +} + +/* u3e_ward(): reposition guard page if needed. +*/ +void +u3e_ward(u3_post low_p, u3_post hig_p) +{ +#ifdef U3_GUARD_PAGE + c3_w nop_w = low_p >> u3a_page; + c3_w sop_w = hig_p >> u3a_page; + c3_w pag_w = u3P.gar_w; + + if ( !((pag_w > nop_w) && (pag_w < sop_w)) ) { + u3_assert( !_ce_ward_post(nop_w, sop_w) ); + u3_assert( !_ce_flaw_mprotect(pag_w) ); + u3_assert( u3P.dit_w[pag_w >> 5] & ((c3_w)1 << (pag_w & 31)) ); + } +#endif +} diff --git a/vere/pkg/noun/events.h b/vere/pkg/noun/events.h new file mode 100644 index 0000000..ff7b7de --- /dev/null +++ b/vere/pkg/noun/events.h @@ -0,0 +1,128 @@ +/// @file + +#ifndef U3_EVENTS_H +#define U3_EVENTS_H + +#include "c3/c3.h" +#include "allocate.h" +#include "version.h" + + /** Data structures. + **/ + /* u3e_line: control line. + */ + typedef struct _u3e_line { + c3_w pag_w; + c3_w mug_w; + } u3e_line; + + /* u3e_control: memory change, control file. + */ + typedef struct _u3e_control { + u3e_version ver_w; // version number + c3_w nor_w; // new page count north + c3_w sou_w; // new page count south + c3_w pgs_w; // number of changed pages + u3e_line mem_u[]; // per page + } u3e_control; + + /* u3_cs_patch: memory change, top level. + */ + typedef struct _u3_cs_patch { + c3_i ctl_i; + c3_i mem_i; + u3e_control* con_u; + } u3_ce_patch; + + /* u3e_image: memory segment, open file. + */ + typedef struct _u3e_image { + c3_c* nam_c; // segment name + c3_i fid_i; // open file, or 0 + c3_w pgs_w; // length in pages + } u3e_image; + + /* u3e_pool: entire memory system. + */ + typedef struct _u3e_pool { + c3_c* dir_c; // path to + c3_i eph_i; // ephemeral file descriptor + c3_w dit_w[u3a_pages >> 5]; // touched since last save + c3_w pag_w; // number of pages (<= u3a_pages) + c3_w gar_w; // guard page + u3e_image nor_u; // north segment + u3e_image sou_u; // south segment + } u3e_pool; + + /* u3e_flaw: loom fault result. + */ + typedef enum { + u3e_flaw_sham = 0, // bogus state + u3e_flaw_base = 1, // vm fail (mprotect) + u3e_flaw_meme = 2, // bail:meme + u3e_flaw_good = 3 // handled + } u3e_flaw; + + /** Globals. + **/ + /// Snapshotting system. + extern u3e_pool u3e_Pool; +# define u3P u3e_Pool + + /** Constants. + **/ + + /** Functions. + **/ + /* u3e_backup(): copy the snapshot from [pux_c] to [pax_c], + * overwriting optional. + */ + c3_o + u3e_backup(c3_c* pux_c, c3_c* pax_c, c3_o ovw_o); + + /* u3e_fault(): handle a memory fault. + */ + u3e_flaw + u3e_fault(u3_post low_p, u3_post hig_p, u3_post off_p); + + /* u3e_save(): update the checkpoint. + */ + void + u3e_save(u3_post low_p, u3_post hig_p); + + /* u3e_toss(): discard ephemeral pages. + */ + void + u3e_toss(u3_post low_p, u3_post hig_p); + + /* u3e_live(): start the persistence system. Return c3y if no image. + */ + c3_o + u3e_live(c3_o nuu_o, c3_c* dir_c); + + /* u3e_stop(): gracefully stop the persistence system. + */ + void + u3e_stop(void); + + /* u3e_yolo(): disable dirty page tracking, read/write whole loom. + */ + c3_o + u3e_yolo(void); + + /* u3e_foul(): dirty all the pages of the loom. + */ + void + u3e_foul(void); + + /* u3e_init(): initialize guard page tracking. + */ + void + u3e_init(void); + + /* u3e_ward(): reposition guard page if needed. + */ + void + u3e_ward(u3_post low_p, u3_post hig_p); + +#endif /* ifndef U3_EVENTS_H */ diff --git a/vere/pkg/noun/hashtable.c b/vere/pkg/noun/hashtable.c new file mode 100644 index 0000000..c746f1f --- /dev/null +++ b/vere/pkg/noun/hashtable.c @@ -0,0 +1,1400 @@ +/// @file + +#include "hashtable.h" + +#include "allocate.h" +#include "imprison.h" +#include "retrieve.h" +#include "xtract.h" + +/* CUT_END(): extract [b_w] low bits from [a_w] +*/ +#define CUT_END(a_w, b_w) ((a_w) & (((c3_w)1 << (b_w)) - 1)) + +/* BIT_SET(): [1] if bit [b_w] is set in [a_w] +*/ +#define BIT_SET(a_w, b_w) ((a_w) & ((c3_w)1 << (b_w))) + +static u3_weak +_ch_trim_slot(u3h_root* har_u, u3h_slot *sot_w, c3_w lef_w, c3_w rem_w); + +static u3_weak +_ch_trim_root(u3h_root* har_u); + +c3_w +_ch_skip_slot(c3_w mug_w, c3_w lef_w); + +/* u3h_new_cache(): create hashtable with bounded size. +*/ +u3p(u3h_root) +u3h_new_cache(c3_w max_w) +{ + u3h_root* har_u = u3a_walloc(c3_wiseof(u3h_root)); + u3p(u3h_root) har_p = u3of(u3h_root, har_u); + c3_w i_w; + + har_u->max_w = max_w; + har_u->use_w = 0; + har_u->arm_u.mug_w = 0; + har_u->arm_u.inx_w = 0; + + for ( i_w = 0; i_w < 64; i_w++ ) { + har_u->sot_w[i_w] = 0; + } + return har_p; +} + +/* u3h_new(): create hashtable. +*/ +u3p(u3h_root) +u3h_new(void) +{ + return u3h_new_cache(0); +} + +/* _ch_popcount(): number of bits set in word. A standard intrinsic. +*/ +static c3_w +_ch_popcount(c3_w num_w) +{ + return c3_pc_w(num_w); +} + +/* _ch_buck_new(): create new bucket. +*/ +static u3h_buck* +_ch_buck_new(c3_w len_w) +{ + u3h_buck* hab_u = u3a_walloc(c3_wiseof(u3h_buck) + + (len_w * c3_wiseof(u3h_slot))); + hab_u->len_w = len_w; + return hab_u; +} + +/* _ch_node_new(): create new node. +*/ +static u3h_node* +_ch_node_new(c3_w len_w) +{ + u3h_node* han_u = u3a_walloc(c3_wiseof(u3h_node) + + (len_w * c3_wiseof(u3h_slot))); + han_u->map_w = 0; + return han_u; +} + +static void _ch_slot_put(u3h_slot*, u3_noun, c3_w, c3_w, c3_w*); + +/* _ch_node_add(): add to node. +*/ +static u3h_node* +_ch_node_add(u3h_node* han_u, c3_w lef_w, c3_w rem_w, u3_noun kev, c3_w *use_w) +{ + c3_w bit_w, inx_w, map_w, i_w; + + lef_w -= 5; + bit_w = (rem_w >> lef_w); + rem_w = CUT_END(rem_w, lef_w); + map_w = han_u->map_w; + inx_w = _ch_popcount(CUT_END(map_w, bit_w)); + + if ( BIT_SET(map_w, bit_w) ) { + _ch_slot_put(&(han_u->sot_w[inx_w]), kev, lef_w, rem_w, use_w); + return han_u; + } + else { + // nothing was at this slot. + // Optimize: use u3a_wealloc. + // + c3_w len_w = _ch_popcount(map_w); + u3h_node* nah_u = _ch_node_new(1 + len_w); + nah_u->map_w = han_u->map_w | ((c3_w)1 << bit_w); + + for ( i_w = 0; i_w < inx_w; i_w++ ) { + nah_u->sot_w[i_w] = han_u->sot_w[i_w]; + } + nah_u->sot_w[inx_w] = u3h_noun_be_warm(u3h_noun_to_slot(kev)); + for ( i_w = inx_w; i_w < len_w; i_w++ ) { + nah_u->sot_w[i_w + 1] = han_u->sot_w[i_w]; + } + + u3a_wfree(han_u); + *use_w += 1; + return nah_u; + } +} + +/* ch_buck_add(): add to bucket. +*/ +static u3h_buck* +_ch_buck_add(u3h_buck* hab_u, u3_noun kev, c3_w *use_w) +{ + c3_w i_w; + + // if our key is equal to any of the existing keys in the bucket, + // then replace that key-value pair with kev. + // + for ( i_w = 0; i_w < hab_u->len_w; i_w++ ) { + u3_noun kov = u3h_slot_to_noun(hab_u->sot_w[i_w]); + if ( c3y == u3r_sing(u3h(kev), u3h(kov)) ) { + hab_u->sot_w[i_w] = u3h_noun_to_slot(kev); + u3z(kov); + return hab_u; + } + } + + // create mutant bucket with added key-value pair. + // Optimize: use u3a_wealloc(). + { + u3h_buck* bah_u = _ch_buck_new(1 + hab_u->len_w); + bah_u->sot_w[0] = u3h_noun_be_warm(u3h_noun_to_slot(kev)); + + for ( i_w = 0; i_w < hab_u->len_w; i_w++ ) { + bah_u->sot_w[i_w + 1] = hab_u->sot_w[i_w]; + } + + u3a_wfree(hab_u); + *use_w += 1; + return bah_u; + } +} + +/* _ch_some_add(): add to node or bucket. +*/ +static void* +_ch_some_add(void* han_v, c3_w lef_w, c3_w rem_w, u3_noun kev, c3_w *use_w) +{ + if ( 0 == lef_w ) { + return _ch_buck_add((u3h_buck*)han_v, kev, use_w); + } + else return _ch_node_add((u3h_node*)han_v, lef_w, rem_w, kev, use_w); +} + +/* _ch_two(): create a new node with two leaves underneath +*/ +u3h_slot +_ch_two(u3h_slot had_w, u3h_slot add_w, c3_w lef_w, c3_w ham_w, c3_w mad_w) +{ + void* ret; + + if ( 0 == lef_w ) { + u3h_buck* hab_u = _ch_buck_new(2); + ret = hab_u; + hab_u->sot_w[0] = had_w; + hab_u->sot_w[1] = add_w; + } + else { + c3_w hop_w, tad_w; + lef_w -= 5; + hop_w = ham_w >> lef_w; + tad_w = mad_w >> lef_w; + if ( hop_w == tad_w ) { + // fragments collide: store in a child node. + u3h_node* han_u = _ch_node_new(1); + ret = han_u; + han_u->map_w = (c3_w)1 << hop_w; + ham_w = CUT_END(ham_w, lef_w); + mad_w = CUT_END(mad_w, lef_w); + han_u->sot_w[0] = _ch_two(had_w, add_w, lef_w, ham_w, mad_w); + } + else { + u3h_node* han_u = _ch_node_new(2); + ret = han_u; + han_u->map_w = ((c3_w)1 << hop_w) | ((c3_w)1 << tad_w); + // smaller mug fragments go in earlier slots + if ( hop_w < tad_w ) { + han_u->sot_w[0] = had_w; + han_u->sot_w[1] = add_w; + } + else { + han_u->sot_w[0] = add_w; + han_u->sot_w[1] = had_w; + } + } + } + + return u3h_node_to_slot(ret); +} + +/* _ch_slot_put(): store a key-value pair in a non-null slot +*/ +static void +_ch_slot_put(u3h_slot* sot_w, u3_noun kev, c3_w lef_w, c3_w rem_w, c3_w* use_w) +{ + if ( c3n == u3h_slot_is_noun(*sot_w) ) { + void* hav_v = _ch_some_add(u3h_slot_to_node(*sot_w), + lef_w, + rem_w, + kev, + use_w); + + u3_assert( c3y == u3h_slot_is_node(*sot_w) ); + *sot_w = u3h_node_to_slot(hav_v); + } + else { + u3_noun kov = u3h_slot_to_noun(*sot_w); + u3h_slot add_w = u3h_noun_be_warm(u3h_noun_to_slot(kev)); + if ( c3y == u3r_sing(u3h(kev), u3h(kov)) ) { + // replace old value + u3z(kov); + *sot_w = add_w; + } + else { + c3_w ham_w = CUT_END(u3r_mug(u3h(kov)), lef_w); + *sot_w = _ch_two(*sot_w, add_w, lef_w, ham_w, rem_w); + *use_w += 1; + } + } +} + +/* u3h_put_get(): insert in caching hashtable, returning deleted key-value pair +** +** `key` is RETAINED; `val` is transferred. +*/ +u3_weak +u3h_put_get(u3p(u3h_root) har_p, u3_noun key, u3_noun val) +{ + u3h_root* har_u = u3to(u3h_root, har_p); + u3_noun kev = u3nc(u3k(key), val); + c3_w mug_w = u3r_mug(key); + c3_w inx_w = (mug_w >> 25); // 6 bits + c3_w rem_w = CUT_END(mug_w, 25); + u3h_slot* sot_w = &(har_u->sot_w[inx_w]); + + if ( c3y == u3h_slot_is_null(*sot_w) ) { + *sot_w = u3h_noun_be_warm(u3h_noun_to_slot(kev)); + har_u->use_w += 1; + } + else { + _ch_slot_put(sot_w, kev, 25, rem_w, &(har_u->use_w)); + } + + { + u3_weak ret = u3_none; + + if ( har_u->max_w && (har_u->use_w > har_u->max_w) ) { + do { + ret = _ch_trim_root(har_u); + } + while ( u3_none == ret ); + har_u->use_w -= 1; + } + + return ret; + } +} + +/* u3h_put(): insert in hashtable. +** +** `key` is RETAINED; `val` is transferred. +*/ +void +u3h_put(u3p(u3h_root) har_p, u3_noun key, u3_noun val) +{ + u3_weak del = u3h_put_get(har_p, key, val); + if ( u3_none != del ) { + u3z(del); + } +} + +/* _ch_buck_del(): delete from bucket +*/ +static c3_o +_ch_buck_del(u3h_slot* sot_w, u3_noun key) +{ + u3h_buck* hab_u = u3h_slot_to_node(*sot_w); + c3_w fin_w = hab_u->len_w; + c3_w i_w; + // + // find index of key to be deleted + // + for ( i_w = 0; i_w < hab_u->len_w; i_w++ ) { + u3_noun kov = u3h_slot_to_noun(hab_u->sot_w[i_w]); + if ( c3y == u3r_sing(key, u3h(kov)) ) { + fin_w = i_w; + u3z(kov); + break; + } + } + + // no key found, no-op + if ( fin_w == hab_u->len_w ) { + return c3n; + } + + { + hab_u->len_w--; + // u3_assert(c3y == u3h_slot_is_noun(hab_u->sot_w[fin_w])); + for ( i_w = fin_w; i_w < hab_u->len_w; i_w++ ) { + hab_u->sot_w[i_w] = hab_u->sot_w[i_w + 1]; + } + + return c3y; + } +} + +static c3_o _ch_some_del(u3h_slot*, u3_noun, c3_w, c3_w); + +/* _ch_slot_del(): delete from slot +*/ +static c3_o +_ch_slot_del(u3h_slot* sot_w, u3_noun key, c3_w lef_w, c3_w rem_w) +{ + if ( c3y == u3h_slot_is_noun(*sot_w) ) { + u3_noun kev = u3h_slot_to_noun(*sot_w); + *sot_w = 0; + u3z(kev); + return c3y; + } + else { + return _ch_some_del(sot_w, key, lef_w, rem_w); + } +} + +/* _ch_slot_del(): delete from node +*/ +static c3_o +_ch_node_del(u3h_slot* sot_w, u3_noun key, c3_w lef_w, c3_w rem_w) +{ + u3h_node* han_u = (u3h_node*) u3h_slot_to_node(*sot_w); + u3h_slot* tos_w; + + c3_w bit_w, inx_w, map_w, i_w; + + lef_w -= 5; + bit_w = (rem_w >> lef_w); + rem_w = CUT_END(rem_w, lef_w); + map_w = han_u->map_w; + inx_w = _ch_popcount(CUT_END(map_w, bit_w)); + + tos_w = &(han_u->sot_w[inx_w]); + + // nothing at slot, no-op + if ( !BIT_SET(map_w, bit_w) ) { + return c3n; + } + + if ( c3n == _ch_slot_del(tos_w, key, lef_w, rem_w) ) { + // nothing deleted + return c3n; + } + else if ( 0 != *tos_w ) { + // something deleted, but slot still has value + return c3y; + } + else { + // shrink! + c3_w i_w, ken_w, len_w = _ch_popcount(map_w); + u3h_slot kes_w; + + if ( 2 == len_w && ((ken_w = (0 == inx_w) ? 1 : 0), + (kes_w = han_u->sot_w[ken_w]), + (c3y == u3h_slot_is_noun(kes_w))) ) + { + // only one side left, and the other is a noun. debucketize. + *sot_w = kes_w; + u3a_wfree(han_u); + } + else { + // shrink node in place; don't reallocate, we could be low on memory + // + han_u->map_w &= ~(1 << bit_w); + --len_w; + + for ( i_w = inx_w; i_w < len_w; i_w++ ) { + han_u->sot_w[i_w] = han_u->sot_w[i_w + 1]; + } + } + return c3y; + } +} + +/* _ch_some_del(): delete from node or buck +*/ +static c3_o +_ch_some_del(u3h_slot* sot_w, u3_noun key, c3_w lef_w, c3_w rem_w) +{ + if ( 0 == lef_w ) { + return _ch_buck_del(sot_w, key); + } + + return _ch_node_del(sot_w, key, lef_w, rem_w); +} + +/* u3h_del(); delete from hashtable. +*/ +void +u3h_del(u3p(u3h_root) har_p, u3_noun key) +{ + u3h_root* har_u = u3to(u3h_root, har_p); + c3_w mug_w = u3r_mug(key); + c3_w inx_w = (mug_w >> 25); + c3_w rem_w = CUT_END(mug_w, 25); + u3h_slot* sot_w = &(har_u->sot_w[inx_w]); + + if ( (c3n == u3h_slot_is_null(*sot_w)) + && (c3y == _ch_slot_del(sot_w, key, 25, rem_w)) ) + { + har_u->use_w--; + } +} + +/* _ch_uni_with(): key/value callback, put into [*wit] +*/ +static void +_ch_uni_with(u3_noun kev, void* wit) +{ + u3p(u3h_root) har_p = *(u3p(u3h_root)*)wit; + u3_noun key, val; + u3x_cell(kev, &key, &val); + + u3h_put(har_p, key, u3k(val)); +} + +/* u3h_uni(): unify hashtables, copying [rah_p] into [har_p] +*/ +void +u3h_uni(u3p(u3h_root) har_p, u3p(u3h_root) rah_p) +{ + u3h_walk_with(rah_p, _ch_uni_with, &har_p); +} + +/* _ch_trim_node(): trim one entry from a node slot or its children +*/ +static u3_weak +_ch_trim_node(u3h_root* har_u, u3h_slot* sot_w, c3_w lef_w, c3_w rem_w) +{ + c3_w bit_w, map_w, inx_w; + u3h_slot* tos_w; + u3h_node* han_u = (u3h_node*) u3h_slot_to_node(*sot_w); + + lef_w -= 5; + bit_w = (rem_w >> lef_w); + map_w = han_u->map_w; + + if ( !BIT_SET(map_w, bit_w) ) { + har_u->arm_u.mug_w = _ch_skip_slot(har_u->arm_u.mug_w, lef_w); + return c3n; + } + + rem_w = CUT_END(rem_w, lef_w); + inx_w = _ch_popcount(CUT_END(map_w, bit_w)); + tos_w = &(han_u->sot_w[inx_w]); + + u3_weak ret = _ch_trim_slot(har_u, tos_w, lef_w, rem_w); + if ( (u3_none != ret) && (0 == *tos_w) ) { + // shrink! + c3_w i_w, ken_w, len_w = _ch_popcount(map_w); + u3h_slot kes_w; + + if ( 2 == len_w && ((ken_w = (0 == inx_w) ? 1 : 0), + (kes_w = han_u->sot_w[ken_w]), + (c3y == u3h_slot_is_noun(kes_w))) ) { + // only one side left, and the other is a noun. debucketize. + *sot_w = kes_w; + u3a_wfree(han_u); + } + else { + // shrink node in place; don't reallocate, we could be low on memory + // + han_u->map_w &= ~(1 << bit_w); + --len_w; + + for ( i_w = inx_w; i_w < len_w; i_w++ ) { + han_u->sot_w[i_w] = han_u->sot_w[i_w + 1]; + } + } + } + return ret; +} + +/* _ch_trim_kev(): trim a single entry slot +*/ +static u3_weak +_ch_trim_kev(u3h_slot *sot_w) +{ + if ( _(u3h_slot_is_warm(*sot_w)) ) { + *sot_w = u3h_noun_be_cold(*sot_w); + return u3_none; + } + else { + u3_noun kev = u3h_slot_to_noun(*sot_w); + *sot_w = 0; + return kev; + } +} + +/* _ch_trim_node(): trim one entry from a bucket slot +*/ +static u3_weak +_ch_trim_buck(u3h_root* har_u, u3h_slot* sot_w) +{ + c3_w i_w, len_w; + u3h_buck* hab_u = u3h_slot_to_node(*sot_w); + + for ( len_w = hab_u->len_w; + har_u->arm_u.inx_w < len_w; + har_u->arm_u.inx_w += 1 ) + { + u3_weak ret = _ch_trim_kev(&(hab_u->sot_w[har_u->arm_u.inx_w])); + if ( u3_none != ret ) { + if ( 2 == len_w ) { + // 2 things in bucket: debucketize to key-value pair, the next + // run will point at this pair (same mug_w, no longer in bucket) + *sot_w = hab_u->sot_w[ (0 == har_u->arm_u.inx_w) ? 1 : 0 ]; + u3a_wfree(hab_u); + har_u->arm_u.inx_w = 0; + } + else { + // shrink bucket in place; don't reallocate, we could be low on memory + hab_u->len_w = --len_w; + + for ( i_w = har_u->arm_u.inx_w; i_w < len_w; ++i_w ) { + hab_u->sot_w[i_w] = hab_u->sot_w[i_w + 1]; + } + // leave the arm pointing at the next index in the bucket + ++(har_u->arm_u.inx_w); + } + return ret; + } + } + + har_u->arm_u.mug_w = (har_u->arm_u.mug_w + 1) & 0x7FFFFFFF; // modulo 2^31 + har_u->arm_u.inx_w = 0; + return u3_none; +} + +/* _ch_trim_some(): trim one entry from a bucket or node slot +*/ +static u3_weak +_ch_trim_some(u3h_root* har_u, u3h_slot* sot_w, c3_w lef_w, c3_w rem_w) +{ + if ( 0 == lef_w ) { + return _ch_trim_buck(har_u, sot_w); + } + else { + return _ch_trim_node(har_u, sot_w, lef_w, rem_w); + } +} + +/* _ch_skip_slot(): increment arm over hash prefix. +*/ +c3_w +_ch_skip_slot(c3_w mug_w, c3_w lef_w) +{ + c3_w hig_w = mug_w >> lef_w; + c3_w new_w = CUT_END(hig_w + 1, (31 - lef_w)); // modulo 2^(31 - lef_w) + return new_w << lef_w; +} + +/* _ch_trim_slot(): trim one entry from a non-bucket slot +*/ +static u3_weak +_ch_trim_slot(u3h_root* har_u, u3h_slot *sot_w, c3_w lef_w, c3_w rem_w) +{ + if ( c3y == u3h_slot_is_noun(*sot_w) ) { + har_u->arm_u.mug_w = _ch_skip_slot(har_u->arm_u.mug_w, lef_w); + return _ch_trim_kev(sot_w); + } + else { + return _ch_trim_some(har_u, sot_w, lef_w, rem_w); + } +} + +/* _ch_trim_root(): trim one entry from a hashtable +*/ +static u3_weak +_ch_trim_root(u3h_root* har_u) +{ + c3_w mug_w = har_u->arm_u.mug_w; + c3_w inx_w = mug_w >> 25; // 6 bits + u3h_slot* sot_w = &(har_u->sot_w[inx_w]); + + if ( c3y == u3h_slot_is_null(*sot_w) ) { + har_u->arm_u.mug_w = _ch_skip_slot(har_u->arm_u.mug_w, 25); + return u3_none; + } + + return _ch_trim_slot(har_u, sot_w, 25, CUT_END(mug_w, 25)); +} + +/* u3h_trim_to(): trim to n key-value pairs +*/ +void +u3h_trim_to(u3p(u3h_root) har_p, c3_w n_w) +{ + u3h_trim_with(har_p, n_w, u3a_lose); +} + +/* u3h_trim_to(): trim to n key-value pairs +*/ +void +u3h_trim_with(u3p(u3h_root) har_p, c3_w n_w, void (*del_cb)(u3_noun)) +{ + u3h_root* har_u = u3to(u3h_root, har_p); + + while ( har_u->use_w > n_w ) { + u3_weak del = _ch_trim_root(har_u); + if ( u3_none != del ) { + har_u->use_w -= 1; + del_cb(del); + } + } +} + +/* _ch_buck_hum(): read in bucket. +*/ +static c3_o +_ch_buck_hum(u3h_buck* hab_u, c3_w mug_w) +{ + c3_w i_w; + + for ( i_w = 0; i_w < hab_u->len_w; i_w++ ) { + if ( mug_w == u3r_mug(u3h(u3h_slot_to_noun(hab_u->sot_w[i_w]))) ) { + return c3y; + } + } + return c3n; +} + +/* _ch_node_hum(): read in node. +*/ +static c3_o +_ch_node_hum(u3h_node* han_u, c3_w lef_w, c3_w rem_w, c3_w mug_w) +{ + c3_w bit_w, map_w; + + lef_w -= 5; + bit_w = (rem_w >> lef_w); + rem_w = CUT_END(rem_w, lef_w); + map_w = han_u->map_w; + + if ( !BIT_SET(map_w, bit_w) ) { + return c3n; + } + else { + c3_w inx_w = _ch_popcount(CUT_END(map_w, bit_w)); + c3_w sot_w = han_u->sot_w[inx_w]; + + if ( _(u3h_slot_is_noun(sot_w)) ) { + u3_noun kev = u3h_slot_to_noun(sot_w); + + if ( mug_w == u3r_mug(u3h(kev)) ) { + return c3y; + } + else { + return c3n; + } + } + else { + void* hav_v = u3h_slot_to_node(sot_w); + + if ( 0 == lef_w ) { + return _ch_buck_hum(hav_v, mug_w); + } + else return _ch_node_hum(hav_v, lef_w, rem_w, mug_w); + } + } +} + +/* u3h_hum(): check presence in hashtable. +** +** `key` is RETAINED. +*/ +c3_o +u3h_hum(u3p(u3h_root) har_p, c3_w mug_w) +{ + u3h_root* har_u = u3to(u3h_root, har_p); + c3_w inx_w = (mug_w >> 25); + c3_w rem_w = CUT_END(mug_w, 25); + c3_w sot_w = har_u->sot_w[inx_w]; + + if ( _(u3h_slot_is_null(sot_w)) ) { + return c3n; + } + else if ( _(u3h_slot_is_noun(sot_w)) ) { + u3_noun kev = u3h_slot_to_noun(sot_w); + + if ( mug_w == u3r_mug(u3h(kev)) ) { + return c3y; + } + else { + return c3n; + } + } + else { + u3h_node* han_u = u3h_slot_to_node(sot_w); + + return _ch_node_hum(han_u, 25, rem_w, mug_w); + } +} + +/* _ch_buck_git(): read in bucket. +*/ +static u3_weak +_ch_buck_git(u3h_buck* hab_u, u3_noun key) +{ + c3_w i_w; + + for ( i_w = 0; i_w < hab_u->len_w; i_w++ ) { + u3_noun kev = u3h_slot_to_noun(hab_u->sot_w[i_w]); + if ( _(u3r_sing(key, u3h(kev))) ) { + return u3t(kev); + } + } + return u3_none; +} + +/* _ch_node_git(): read in node. +*/ +static u3_weak +_ch_node_git(u3h_node* han_u, c3_w lef_w, c3_w rem_w, u3_noun key) +{ + c3_w bit_w, map_w; + + lef_w -= 5; + bit_w = (rem_w >> lef_w); + rem_w = CUT_END(rem_w, lef_w); + map_w = han_u->map_w; + + if ( !BIT_SET(map_w, bit_w) ) { + return u3_none; + } + else { + c3_w inx_w = _ch_popcount(CUT_END(map_w, bit_w)); + c3_w sot_w = han_u->sot_w[inx_w]; + + if ( _(u3h_slot_is_noun(sot_w)) ) { + u3_noun kev = u3h_slot_to_noun(sot_w); + + if ( _(u3r_sing(key, u3h(kev))) ) { + return u3t(kev); + } + else { + return u3_none; + } + } + else { + void* hav_v = u3h_slot_to_node(sot_w); + + if ( 0 == lef_w ) { + return _ch_buck_git(hav_v, key); + } + else return _ch_node_git(hav_v, lef_w, rem_w, key); + } + } +} + +/* u3h_git(): read from hashtable. +** +** `key` is RETAINED; result is RETAINED. +*/ +u3_weak +u3h_git(u3p(u3h_root) har_p, u3_noun key) +{ + u3h_root* har_u = u3to(u3h_root, har_p); + c3_w mug_w = u3r_mug(key); + c3_w inx_w = (mug_w >> 25); + c3_w rem_w = CUT_END(mug_w, 25); + c3_w sot_w = har_u->sot_w[inx_w]; + + if ( _(u3h_slot_is_null(sot_w)) ) { + return u3_none; + } + else if ( _(u3h_slot_is_noun(sot_w)) ) { + u3_noun kev = u3h_slot_to_noun(sot_w); + + if ( _(u3r_sing(key, u3h(kev))) ) { + har_u->sot_w[inx_w] = u3h_noun_be_warm(sot_w); + return u3t(kev); + } + else { + return u3_none; + } + } + else { + u3h_node* han_u = u3h_slot_to_node(sot_w); + + return _ch_node_git(han_u, 25, rem_w, key); + } +} + +/* u3h_get(): read from hashtable, incrementing refcount. +** +** `key` is RETAINED; result is PRODUCED. +*/ +u3_weak +u3h_get(u3p(u3h_root) har_p, u3_noun key) +{ + u3_noun pro = u3h_git(har_p, key); + + if ( u3_none != pro ) { + u3k(pro); + } + return pro; +} + +/* _ch_free_buck(): free bucket +*/ +static void +_ch_free_buck(u3h_buck* hab_u) +{ + //fprintf(stderr, "free buck\r\n"); + c3_w i_w; + + for ( i_w = 0; i_w < hab_u->len_w; i_w++ ) { + u3z(u3h_slot_to_noun(hab_u->sot_w[i_w])); + } + u3a_wfree(hab_u); +} + +/* _ch_free_node(): free node. +*/ +static void +_ch_free_node(u3h_node* han_u, c3_w lef_w, c3_o pin_o) +{ + c3_w len_w = _ch_popcount(han_u->map_w); + c3_w i_w; + + lef_w -= 5; + + for ( i_w = 0; i_w < len_w; i_w++ ) { + c3_w sot_w = han_u->sot_w[i_w]; + if ( _(u3h_slot_is_null(sot_w))) { + } else if ( _(u3h_slot_is_noun(sot_w)) ) { + u3z(u3h_slot_to_noun(sot_w)); + } else { + void* hav_v = u3h_slot_to_node(sot_w); + + if ( 0 == lef_w ) { + _ch_free_buck(hav_v); + } else { + _ch_free_node(hav_v, lef_w, pin_o); + } + } + } + u3a_wfree(han_u); +} + +/* u3h_free(): free hashtable. +*/ +void +u3h_free(u3p(u3h_root) har_p) +{ + u3h_root* har_u = u3to(u3h_root, har_p); + c3_w i_w; + + for ( i_w = 0; i_w < 64; i_w++ ) { + c3_w sot_w = har_u->sot_w[i_w]; + + if ( _(u3h_slot_is_noun(sot_w)) ) { + u3z(u3h_slot_to_noun(sot_w)); + } + else if ( _(u3h_slot_is_node(sot_w)) ) { + u3h_node* han_u = u3h_slot_to_node(sot_w); + + _ch_free_node(han_u, 25, i_w == 57); + } + } + u3a_wfree(har_u); +} + +/* _ch_walk_buck(): walk bucket for gc. +*/ +static void +_ch_walk_buck(u3h_buck* hab_u, void (*fun_f)(u3_noun, void*), void* wit) +{ + c3_w i_w; + + for ( i_w = 0; i_w < hab_u->len_w; i_w++ ) { + fun_f(u3h_slot_to_noun(hab_u->sot_w[i_w]), wit); + } +} + +/* _ch_walk_node(): walk node for gc. +*/ +static void +_ch_walk_node(u3h_node* han_u, c3_w lef_w, void (*fun_f)(u3_noun, void*), void* wit) +{ + c3_w len_w = _ch_popcount(han_u->map_w); + c3_w i_w; + + lef_w -= 5; + + for ( i_w = 0; i_w < len_w; i_w++ ) { + c3_w sot_w = han_u->sot_w[i_w]; + + if ( _(u3h_slot_is_noun(sot_w)) ) { + u3_noun kev = u3h_slot_to_noun(sot_w); + + fun_f(kev, wit); + } + else { + void* hav_v = u3h_slot_to_node(sot_w); + + if ( 0 == lef_w ) { + _ch_walk_buck(hav_v, fun_f, wit); + } else { + _ch_walk_node(hav_v, lef_w, fun_f, wit); + } + } + } +} + +/* u3h_walk_with(): traverse hashtable with key, value fn and data + * argument; RETAINS. +*/ +void +u3h_walk_with(u3p(u3h_root) har_p, + void (*fun_f)(u3_noun, void*), + void* wit) +{ + u3h_root* har_u = u3to(u3h_root, har_p); + c3_w i_w; + + for ( i_w = 0; i_w < 64; i_w++ ) { + c3_w sot_w = har_u->sot_w[i_w]; + + if ( _(u3h_slot_is_noun(sot_w)) ) { + u3_noun kev = u3h_slot_to_noun(sot_w); + + fun_f(kev, wit); + } + else if ( _(u3h_slot_is_node(sot_w)) ) { + u3h_node* han_u = u3h_slot_to_node(sot_w); + + _ch_walk_node(han_u, 25, fun_f, wit); + } + } +} + +/* _ch_walk_plain(): use plain u3_noun fun_f for each node + */ +static void +_ch_walk_plain(u3_noun kev, void* wit) +{ + void (*fun_f)(u3_noun) = (void (*)(u3_noun))wit; + fun_f(kev); +} + +/* u3h_walk(): u3h_walk_with, but with no data argument +*/ +void +u3h_walk(u3p(u3h_root) har_p, void (*fun_f)(u3_noun)) +{ + u3h_walk_with(har_p, _ch_walk_plain, (void *)fun_f); +} + +/* _ch_take_noun(): take key and call [fun_f] on val. +*/ +static u3h_slot +_ch_take_noun(u3h_slot sot_w, u3_funk fun_f) +{ + u3_noun kov = u3h_slot_to_noun(sot_w); + u3_noun kev = u3nc(u3a_take(u3h(kov)), + fun_f(u3t(kov))); + + return u3h_noun_to_slot(kev); +} + +/* _ch_take_buck(): take bucket and contents +*/ +static u3h_slot +_ch_take_buck(u3h_slot sot_w, u3_funk fun_f) +{ + u3h_buck* hab_u = u3h_slot_to_node(sot_w); + u3h_buck* bah_u = _ch_buck_new(hab_u->len_w); + c3_w i_w; + + for ( i_w = 0; i_w < hab_u->len_w; i_w++ ) { + bah_u->sot_w[i_w] = _ch_take_noun(hab_u->sot_w[i_w], fun_f); + } + + return u3h_node_to_slot(bah_u); +} + +/* _ch_take_node(): take node and contents +*/ +static u3h_slot +_ch_take_node(u3h_slot sot_w, c3_w lef_w, u3_funk fun_f) +{ + u3h_node* han_u = u3h_slot_to_node(sot_w); + c3_w len_w = _ch_popcount(han_u->map_w); + u3h_node* nah_u = _ch_node_new(len_w); + c3_w i_w; + + nah_u->map_w = han_u->map_w; + lef_w -= 5; + + for ( i_w = 0; i_w < len_w; i_w++ ) { + c3_w tos_w = han_u->sot_w[i_w]; + nah_u->sot_w[i_w] = ( c3y == u3h_slot_is_noun(tos_w) ) + ? _ch_take_noun(tos_w, fun_f) + : ( 0 == lef_w ) + ? _ch_take_buck(tos_w, fun_f) + : _ch_take_node(tos_w, lef_w, fun_f); + } + + return u3h_node_to_slot(nah_u); +} + +/* u3h_take_with(): gain hashtable, copying junior keys +** and calling [fun_f] on values +*/ +u3p(u3h_root) +u3h_take_with(u3p(u3h_root) har_p, u3_funk fun_f) +{ + u3h_root* har_u = u3to(u3h_root, har_p); + u3p(u3h_root) rah_p = u3h_new_cache(har_u->max_w); + u3h_root* rah_u = u3to(u3h_root, rah_p); + c3_w sot_w, i_w; + + rah_u->use_w = har_u->use_w; + rah_u->arm_u = har_u->arm_u; + + for ( i_w = 0; i_w < 64; i_w++ ) { + sot_w = har_u->sot_w[i_w]; + if ( c3n == u3h_slot_is_null(sot_w) ) { + rah_u->sot_w[i_w] = ( c3y == u3h_slot_is_noun(sot_w) ) + ? _ch_take_noun(sot_w, fun_f) + : _ch_take_node(sot_w, 25, fun_f); + } + } + + return rah_p; +} + +/* u3h_take(): gain hashtable, copying junior nouns +*/ +u3p(u3h_root) +u3h_take(u3p(u3h_root) har_p) +{ + return u3h_take_with(har_p, u3a_take); +} + +/* _ch_mark_buck(): mark bucket for gc. +*/ +c3_w +_ch_mark_buck(u3h_buck* hab_u) +{ + c3_w tot_w = 0; + c3_w i_w; + + for ( i_w = 0; i_w < hab_u->len_w; i_w++ ) { + tot_w += u3a_mark_noun(u3h_slot_to_noun(hab_u->sot_w[i_w])); + } + tot_w += u3a_mark_ptr(hab_u); + + return tot_w; +} + +/* _ch_mark_node(): mark node for gc. +*/ +c3_w +_ch_mark_node(u3h_node* han_u, c3_w lef_w) +{ + c3_w tot_w = 0; + c3_w len_w = _ch_popcount(han_u->map_w); + c3_w i_w; + + lef_w -= 5; + + for ( i_w = 0; i_w < len_w; i_w++ ) { + c3_w sot_w = han_u->sot_w[i_w]; + + if ( _(u3h_slot_is_noun(sot_w)) ) { + u3_noun kev = u3h_slot_to_noun(sot_w); + + tot_w += u3a_mark_noun(kev); + } + else { + void* hav_v = u3h_slot_to_node(sot_w); + + if ( 0 == lef_w ) { + tot_w += _ch_mark_buck(hav_v); + } else { + tot_w += _ch_mark_node(hav_v, lef_w); + } + } + } + + tot_w += u3a_mark_ptr(han_u); + + return tot_w; +} + +/* u3h_mark(): mark hashtable for gc. +*/ +c3_w +u3h_mark(u3p(u3h_root) har_p) +{ + c3_w tot_w = 0; + u3h_root* har_u = u3to(u3h_root, har_p); + c3_w i_w; + + for ( i_w = 0; i_w < 64; i_w++ ) { + c3_w sot_w = har_u->sot_w[i_w]; + + if ( _(u3h_slot_is_noun(sot_w)) ) { + u3_noun kev = u3h_slot_to_noun(sot_w); + + tot_w += u3a_mark_noun(kev); + } + else if ( _(u3h_slot_is_node(sot_w)) ) { + u3h_node* han_u = u3h_slot_to_node(sot_w); + + tot_w += _ch_mark_node(han_u, 25); + } + } + + tot_w += u3a_mark_ptr(har_u); + + return tot_w; +} + +/* _ch_rewrite_buck(): rewrite buck for compaction. +*/ +void +_ch_rewrite_buck(u3h_buck* hab_u) +{ + if ( c3n == u3a_rewrite_ptr(hab_u) ) return; + c3_w i_w; + + for ( i_w = 0; i_w < hab_u->len_w; i_w++ ) { + u3_noun som = u3h_slot_to_noun(hab_u->sot_w[i_w]); + hab_u->sot_w[i_w] = u3h_noun_to_slot(u3a_rewritten_noun(som)); + u3a_rewrite_noun(som); + } +} + +/* _ch_rewrite_node(): rewrite node for compaction. +*/ +void +_ch_rewrite_node(u3h_node* han_u, c3_w lef_w) +{ + if ( c3n == u3a_rewrite_ptr(han_u) ) return; + + c3_w len_w = _ch_popcount(han_u->map_w); + c3_w i_w; + + lef_w -= 5; + + for ( i_w = 0; i_w < len_w; i_w++ ) { + c3_w sot_w = han_u->sot_w[i_w]; + + if ( _(u3h_slot_is_noun(sot_w)) ) { + u3_noun kev = u3h_slot_to_noun(sot_w); + han_u->sot_w[i_w] = u3h_noun_to_slot(u3a_rewritten_noun(kev)); + + u3a_rewrite_noun(kev); + } + else { + void* hav_v = u3h_slot_to_node(sot_w); + u3h_node* nod_u = u3to(u3h_node,u3a_rewritten(u3of(u3h_node,hav_v))); + han_u->sot_w[i_w] = u3h_node_to_slot(nod_u); + + if ( 0 == lef_w ) { + _ch_rewrite_buck(hav_v); + } else { + _ch_rewrite_node(hav_v, lef_w); + } + } + } +} + +/* u3h_rewrite(): rewrite pointers during compaction. +*/ +void +u3h_rewrite(u3p(u3h_root) har_p) +{ + u3h_root* har_u = u3to(u3h_root, har_p); + c3_w i_w; + + if ( c3n == u3a_rewrite_ptr(har_u) ) return; + + for ( i_w = 0; i_w < 64; i_w++ ) { + c3_w sot_w = har_u->sot_w[i_w]; + + if ( _(u3h_slot_is_noun(sot_w)) ) { + u3_noun kev = u3h_slot_to_noun(sot_w); + har_u->sot_w[i_w] = u3h_noun_to_slot(u3a_rewritten_noun(kev)); + + u3a_rewrite_noun(kev); + } + else if ( _(u3h_slot_is_node(sot_w)) ) { + u3h_node* han_u = u3h_slot_to_node(sot_w); + u3h_node* nod_u = u3to(u3h_node,u3a_rewritten(u3of(u3h_node,han_u))); + har_u->sot_w[i_w] = u3h_node_to_slot(nod_u); + + _ch_rewrite_node(han_u, 25); + } + } +} + +/* _ch_count_buck(): count bucket for gc. +*/ +c3_w +_ch_count_buck(u3h_buck* hab_u) +{ + c3_w tot_w = 0; + c3_w i_w; + + for ( i_w = 0; i_w < hab_u->len_w; i_w++ ) { + tot_w += u3a_count_noun(u3h_slot_to_noun(hab_u->sot_w[i_w])); + } + tot_w += u3a_count_ptr(hab_u); + + return tot_w; +} + +/* _ch_count_node(): count node for gc. +*/ +c3_w +_ch_count_node(u3h_node* han_u, c3_w lef_w) +{ + c3_w tot_w = 0; + c3_w len_w = _ch_popcount(han_u->map_w); + c3_w i_w; + + lef_w -= 5; + + for ( i_w = 0; i_w < len_w; i_w++ ) { + c3_w sot_w = han_u->sot_w[i_w]; + + if ( _(u3h_slot_is_noun(sot_w)) ) { + u3_noun kev = u3h_slot_to_noun(sot_w); + + tot_w += u3a_count_noun(kev); + } + else { + void* hav_v = u3h_slot_to_node(sot_w); + + if ( 0 == lef_w ) { + tot_w += _ch_count_buck(hav_v); + } else { + tot_w += _ch_count_node(hav_v, lef_w); + } + } + } + + tot_w += u3a_count_ptr(han_u); + + return tot_w; +} + +/* u3h_count(): count hashtable for gc. +*/ +c3_w +u3h_count(u3p(u3h_root) har_p) +{ + c3_w tot_w = 0; + u3h_root* har_u = u3to(u3h_root, har_p); + c3_w i_w; + + for ( i_w = 0; i_w < 64; i_w++ ) { + c3_w sot_w = har_u->sot_w[i_w]; + + if ( _(u3h_slot_is_noun(sot_w)) ) { + u3_noun kev = u3h_slot_to_noun(sot_w); + + tot_w += u3a_count_noun(kev); + } + else if ( _(u3h_slot_is_node(sot_w)) ) { + u3h_node* han_u = u3h_slot_to_node(sot_w); + + tot_w += _ch_count_node(han_u, 25); + } + } + + tot_w += u3a_count_ptr(har_u); + + return tot_w; +} + +/* _ch_discount_buck(): discount bucket for gc. +*/ +c3_w +_ch_discount_buck(u3h_buck* hab_u) +{ + c3_w tot_w = 0; + c3_w i_w; + + for ( i_w = 0; i_w < hab_u->len_w; i_w++ ) { + tot_w += u3a_discount_noun(u3h_slot_to_noun(hab_u->sot_w[i_w])); + } + tot_w += u3a_discount_ptr(hab_u); + + return tot_w; +} + +/* _ch_discount_node(): discount node for gc. +*/ +c3_w +_ch_discount_node(u3h_node* han_u, c3_w lef_w) +{ + c3_w tot_w = 0; + c3_w len_w = _ch_popcount(han_u->map_w); + c3_w i_w; + + lef_w -= 5; + + for ( i_w = 0; i_w < len_w; i_w++ ) { + c3_w sot_w = han_u->sot_w[i_w]; + + if ( _(u3h_slot_is_noun(sot_w)) ) { + u3_noun kev = u3h_slot_to_noun(sot_w); + + tot_w += u3a_discount_noun(kev); + } + else { + void* hav_v = u3h_slot_to_node(sot_w); + + if ( 0 == lef_w ) { + tot_w += _ch_discount_buck(hav_v); + } else { + tot_w += _ch_discount_node(hav_v, lef_w); + } + } + } + + tot_w += u3a_discount_ptr(han_u); + + return tot_w; +} + +/* u3h_discount(): discount hashtable for gc. +*/ +c3_w +u3h_discount(u3p(u3h_root) har_p) +{ + c3_w tot_w = 0; + u3h_root* har_u = u3to(u3h_root, har_p); + c3_w i_w; + + for ( i_w = 0; i_w < 64; i_w++ ) { + c3_w sot_w = har_u->sot_w[i_w]; + + if ( _(u3h_slot_is_noun(sot_w)) ) { + u3_noun kev = u3h_slot_to_noun(sot_w); + + tot_w += u3a_discount_noun(kev); + } + else if ( _(u3h_slot_is_node(sot_w)) ) { + u3h_node* han_u = u3h_slot_to_node(sot_w); + + tot_w += _ch_discount_node(han_u, 25); + } + } + + tot_w += u3a_discount_ptr(har_u); + + return tot_w; +} + +/* u3h_wyt(): number of entries +*/ +c3_w +u3h_wyt(u3p(u3h_root) har_p) +{ + u3h_root* har_u = u3to(u3h_root, har_p); + return har_u->use_w; +} diff --git a/vere/pkg/noun/hashtable.h b/vere/pkg/noun/hashtable.h new file mode 100644 index 0000000..75c6ab5 --- /dev/null +++ b/vere/pkg/noun/hashtable.h @@ -0,0 +1,206 @@ +#ifndef U3_HASHTABLE_H +#define U3_HASHTABLE_H + +#include "c3/c3.h" +#include "types.h" + + /** Data structures. + **/ + /** Straightforward implementation of the classic Bagwell + *** HAMT (hash array mapped trie), using a mug hash. + *** + *** Because a mug is 31 bits, the root table has 64 slots. + *** The 31 bits of a mug are divided into the first lookup, + *** which is 6 bits (corresponding to the 64 entries in the + *** root table), followed by 5 more branchings of 5 bits each, + *** corresponding to the 32-slot nodes for everything under + *** the root node. + *** + *** We store an extra "freshly warm" bit and use it for a simple + *** clock-algorithm reclamation policy. + **/ + /* u3h_slot: map slot. + ** + ** Either a key-value cell or a loom offset, decoded as a pointer + ** to a u3h_node, or a u3h_buck at the bottom. Matches the u3_noun + ** format - coordinate with allocate.h. The top two bits are: + ** + ** 00 - empty (in the root table only) + ** 01 - table (node or buck) + ** 02 - entry, stale + ** 03 - entry, fresh + */ + typedef c3_w u3h_slot; + + /* u3h_node: map node. + */ + typedef struct { + c3_w map_w; // bitmap for [sot_w] + u3h_slot sot_w[]; // filled slots + } u3h_node; + + /* u3h_root: hash root table + */ + typedef struct { + c3_w max_w; // number of cache lines (0 for no trimming) + c3_w use_w; // number of lines currently filled + struct { + c3_w mug_w; // current hash + c3_w inx_w; // index into current hash bucket + c3_o buc_o; // XX remove + } arm_u; // clock arm + u3h_slot sot_w[64]; // slots + } u3h_root; + + /* u3h_buck: bottom bucket. + */ + typedef struct { + c3_w len_w; // length of [sot_w] + u3h_slot sot_w[]; // filled slots + } u3h_buck; + + /** HAMT macros. + *** + *** Coordinate with u3_noun definition! + **/ + /* u3h_slot_is_null(): yes iff slot is empty + ** u3h_slot_is_noun(): yes iff slot contains a key/value cell + ** u3h_slot_is_node(): yes iff slot contains a subtable/bucket + ** u3h_slot_is_warm(): yes iff fresh bit is set + ** u3h_slot_to_node(): slot to node pointer + ** u3h_node_to_slot(): node pointer to slot + ** u3h_slot_to_noun(): slot to cell + ** u3h_noun_to_slot(): cell to slot + ** u3h_noun_be_warm(): warm mutant + ** u3h_noun_be_cold(): cold mutant + */ +# define u3h_slot_is_null(sot) ((0 == ((sot) >> 30)) ? c3y : c3n) +# define u3h_slot_is_node(sot) ((1 == ((sot) >> 30)) ? c3y : c3n) +# define u3h_slot_is_noun(sot) ((1 == ((sot) >> 31)) ? c3y : c3n) +# define u3h_slot_is_warm(sot) (((sot) & 0x40000000) ? c3y : c3n) +# define u3h_slot_to_node(sot) (u3a_into(((sot) & 0x3fffffff) << u3a_vits)) +# define u3h_node_to_slot(ptr) ((u3a_outa((ptr)) >> u3a_vits) | 0x40000000) +# define u3h_noun_be_warm(sot) ((sot) | 0x40000000) +# define u3h_noun_be_cold(sot) ((sot) & ~0x40000000) +# define u3h_slot_to_noun(sot) (0x40000000 | (sot)) +# define u3h_noun_to_slot(som) (u3h_noun_be_warm(som)) + + /** Functions. + *** + *** Needs: delete and merge functions; clock reclamation function. + **/ + /* u3h_new_cache(): create hashtable with bounded size. + */ + u3p(u3h_root) + u3h_new_cache(c3_w clk_w); + + /* u3h_new(): create hashtable. + */ + u3p(u3h_root) + u3h_new(void); + + /* u3h_put(): insert in hashtable. + ** + ** `key` is RETAINED; `val` is transferred. + */ + void + u3h_put(u3p(u3h_root) har_p, u3_noun key, u3_noun val); + + /* u3h_put_get(): insert in caching hashtable, returning deleted entry + ** + ** `key` is RETAINED; `val` is transferred. + */ + u3_weak + u3h_put_get(u3p(u3h_root) har_p, u3_noun key, u3_noun val); + + /* u3h_uni(): unify hashtables, copying [rah_p] into [har_p] + */ + void + u3h_uni(u3p(u3h_root) har_p, u3p(u3h_root) rah_p); + + /* u3h_get(): read from hashtable. + ** + ** `key` is RETAINED; result is PRODUCED. + */ + u3_weak + u3h_get(u3p(u3h_root) har_p, u3_noun key); + + /* u3h_git(): read from hashtable, retaining result. + ** + ** `key` is RETAINED; result is RETAINED. + */ + u3_weak + u3h_git(u3p(u3h_root) har_p, u3_noun key); + + /* u3h_del(); delete from hashtable. + ** + ** `key` is RETAINED + */ + void + u3h_del(u3p(u3h_root) har_p, u3_noun key); + + /* u3h_trim_to(): trim to n key-value pairs + */ + void + u3h_trim_to(u3p(u3h_root) har_p, c3_w n_w); + + /* u3h_trim_with(): trim to n key-value pairs, with deletion callback + */ + void + u3h_trim_with(u3p(u3h_root) har_p, c3_w n_w, void (*del_cb)(u3_noun)); + + /* u3h_free(): free hashtable. + */ + void + u3h_free(u3p(u3h_root) har_p); + + /* u3h_mark(): mark hashtable for gc. + */ + c3_w + u3h_mark(u3p(u3h_root) har_p); + + /* u3h_rewrite(): rewrite hashtable for compaction. + */ + void + u3h_rewrite(u3p(u3h_root) har_p); + + /* u3h_count(): count hashtable for gc. + */ + c3_w + u3h_count(u3p(u3h_root) har_p); + + /* u3h_discount(): discount hashtable for gc. + */ + c3_w + u3h_discount(u3p(u3h_root) har_p); + + /* u3h_walk_with(): traverse hashtable with key, value fn and data + * argument; RETAINS. + */ + void + u3h_walk_with(u3p(u3h_root) har_p, + void (*fun_f)(u3_noun, void*), + void* wit); + + /* u3h_walk(): u3h_walk_with, but with no data argument + */ + void + u3h_walk(u3p(u3h_root) har_p, void (*fun_f)(u3_noun)); + + /* u3h_take_with(): gain hashtable, copying junior keys + ** and calling [fun_f] on values + */ + u3p(u3h_root) + u3h_take_with(u3p(u3h_root) har_p, u3_funk fun_f); + + /* u3h_take(): gain hashtable, copying junior nouns + */ + u3p(u3h_root) + u3h_take(u3p(u3h_root) har_p); + + /* u3h_wyt(): number of entries + */ + c3_w + u3h_wyt(u3p(u3h_root) har_p); + +#endif /* ifndef U3_HASHTABLE_H */ diff --git a/vere/pkg/noun/hashtable_tests.c b/vere/pkg/noun/hashtable_tests.c new file mode 100644 index 0000000..9a5a3f8 --- /dev/null +++ b/vere/pkg/noun/hashtable_tests.c @@ -0,0 +1,301 @@ +/// @file + +#include "noun.h" +#define TEST_SIZE 100000 + +// defined in noun/hashtable.c +c3_w _ch_skip_slot(c3_w mug_w, c3_w lef_w); + +/* _setup(): prepare for tests. +*/ +static void +_setup(void) +{ + u3m_init(1 << 27); + u3m_pave(c3y); +} + +/* _test_put_del(): +*/ +static c3_i +_test_put_del() +{ + u3p(u3h_root) har_p = u3h_new(); + c3_i ret_i = 1; + + c3_w i_w; + for ( i_w = 0; i_w < TEST_SIZE; i_w++ ) { + u3_noun key = u3i_word(i_w); + u3_noun val = u3nc(u3_nul, u3k(key)); + u3h_put(har_p, key, val); + u3z(key); + } + // fprintf(stderr, "inserted\r\n"); + + for ( i_w = 0; i_w < TEST_SIZE; i_w++ ) { + u3_noun key = u3i_word(i_w); + u3_weak val = u3h_get(har_p, key); + if ( val == u3_none ) { + fprintf(stderr, "failed insert\r\n"); + ret_i = 0; + } + u3z(key); + u3z(val); + } + // fprintf(stderr, "presence\r\n"); + c3_w del_w[4] = {30, 82, 4921, 535}; + + for ( i_w = 0; i_w < 4; i_w++ ) { + u3_noun key = u3i_word(del_w[i_w]); + u3h_del(har_p, key); + u3z(key); + } + // fprintf(stderr, "deleted\r\n"); + + for ( i_w = 0; i_w < 4; i_w++ ) { + u3_noun key = u3i_word(del_w[i_w]); + u3_weak val = u3h_get(har_p, key); + if ( u3_none != val ) { + fprintf(stderr, "failed delete\r\n"); + ret_i = 0; + break; + } + } + // fprintf(stderr, "presence two\r\n"); + u3h_free(har_p); + // fprintf(stderr, "freed\r\n"); + + return ret_i; +} + +/* _test_bit_manipulation(): +*/ +static c3_i +_test_bit_manipulation() +{ + c3_i ret_i = 1; + + if ( sizeof(u3_noun) != sizeof(u3h_slot) ) { + fprintf(stderr, "bit manipulation: wrong size\r\n"); + ret_i = 0; + } + + u3h_slot a = 0; + + if (u3h_slot_is_null(a) != c3y) { + fprintf(stderr, "bit manipulation: nullity\r\n"); + ret_i = 0; + } + + a = u3h_noun_be_warm(a); + if (u3h_slot_is_warm(a) != c3y) { + fprintf(stderr, "bit manipulation: warmth\r\n"); + ret_i = 0; + } + + if (u3h_slot_is_null(a) != c3n) { + fprintf(stderr, "bit manipulation: nullity 2\r\n"); + ret_i = 0; + } + + a = u3h_noun_be_cold(a); + if (u3h_slot_is_warm(a) != c3n) { + fprintf(stderr, "bit manipulation: coldness\r\n"); + ret_i = 0; + } + + return ret_i; +} + +/* _test_no_cache(): test a hashtable without caching. +*/ +static c3_i +_test_no_cache(void) +{ + c3_i ret_i = 1; + c3_w max_w = 1000; + c3_w i_w; + + u3p(u3h_root) har_p = u3h_new(); + + for ( i_w = 0; i_w < max_w; i_w++ ) { + u3h_put(har_p, i_w, i_w + max_w); + } + + for ( i_w = 0; i_w < max_w; i_w++ ) { + if ( (i_w + max_w) != u3h_get(har_p, i_w) ) { + fprintf(stderr, "bit test_no_cache: get failed\r\n"); + ret_i = 0; + } + } + + u3h_free(har_p); + return ret_i; +} + +/* _test_skip_slot(): +*/ +static c3_i +_test_skip_slot(void) +{ + c3_i ret_i = 1; + + // root table + { + c3_w mug_w = 0x17 << 25; + c3_w res_w = _ch_skip_slot(mug_w, 25); + + if ( (0x18 << 25) != res_w ) { + fprintf(stderr, "bit skip_slot (a): failed\r\n"); + ret_i = 0; + } + } + + { + c3_w mug_w = 63 << 25; // 6 bits, all ones + c3_w res_w = _ch_skip_slot(mug_w, 25); + + if ( 0 != res_w ) { + fprintf(stderr, "bit skip_slot (b): failed\r\n"); + ret_i = 0; + } + } + + // child nodes + { + c3_w mug_w = 17 << 20; + c3_w res_w = _ch_skip_slot(mug_w, 20); + + if ( (18 << 20) != res_w ) { + fprintf(stderr, "bit skip_slot (c): failed\r\n"); + ret_i = 0; + } + } + + { + c3_w mug_w = 31 << 20; // 5 bits, all ones + c3_w res_w = _ch_skip_slot(mug_w, 20); + u3_assert((1 << 25) == res_w); + + if ( (1 << 25) != res_w ) { + fprintf(stderr, "bit skip_slot (d): failed\r\n"); + ret_i = 0; + } + } + + return ret_i; +} + +/* _test_cache_trimming(): ensure a caching hashtable removes stale items. +*/ +static c3_i +_test_cache_trimming(void) +{ + c3_i ret_i = 1; + c3_w max_w = 2000000; // big number + //c3_w max_w = 348000; // caused a leak before + c3_w i_w, fil_w = max_w / 10; + + u3p(u3h_root) har_p = u3h_new_cache(fil_w); + u3h_root* har_u = u3to(u3h_root, har_p); + + for ( i_w = 0; i_w < max_w; i_w++ ) { + u3_noun cel = u3nc(i_w, i_w); + u3h_put(har_p, cel, cel); + } + + { + // last thing we put in is still there + c3_w las_w = max_w - 1; + u3_noun key = u3nc(las_w, las_w); + u3_noun val = u3h_get(har_p, key); + u3z(key); + + if ( las_w != u3t(val) ) { + fprintf(stderr, "cache_trimming (a): fail\r\n"); + ret_i = 0; + } + + if ( fil_w != har_u->use_w ) { + fprintf(stderr, "cache_trimming (b): fail %d != %d\r\n", + fil_w, har_u->use_w ); + ret_i = 0; + } + + u3z(val); + } + + u3h_free(har_p); + return ret_i; +} + +/* _test_cache_replace_value(): +*/ +static c3_i +_test_cache_replace_value(void) +{ + c3_i ret_i = 1; + c3_w max_w = 100; + c3_w i_w; + + u3p(u3h_root) har_p = u3h_new_cache(max_w); + u3h_root* har_u = u3to(u3h_root, har_p); + + for ( i_w = 0; i_w < max_w; i_w++ ) { + u3h_put(har_p, i_w, i_w + max_w); + } + + for ( i_w = 0; i_w < max_w; i_w++ ) { + u3h_put(har_p, i_w, i_w + max_w + 1); + } + + if ( (2 * max_w) != u3h_get(har_p, max_w - 1) ) { + fprintf(stderr, "cache_replace (a): fail\r\n"); + ret_i = 0; + } + if ( max_w != har_u->use_w ) { + fprintf(stderr, "cache_replace (b): fail\r\n"); + fprintf(stderr, "cache_replace (b): fail %d %d\r\n", + max_w, har_u->use_w ); + ret_i = 0; + } + + u3h_free(har_p); + return ret_i; +} + +static c3_i +_test_hashtable(void) +{ + c3_i ret_i = 1; + + ret_i &= _test_bit_manipulation(); + ret_i &= _test_no_cache(); + ret_i &= _test_skip_slot(); + ret_i &= _test_cache_trimming(); + ret_i &= _test_cache_replace_value(); + ret_i &= _test_put_del(); + + return ret_i; +} + +/* main(): run all test cases. +*/ +int +main(int argc, char* argv[]) +{ + _setup(); + + if ( !_test_hashtable() ) { + fprintf(stderr, "test_hashtable: failed\r\n"); + exit(1); + } + + // GC + // + u3m_grab(u3_none); + + fprintf(stderr, "test_hashtable: ok\r\n"); + + return 0; +} diff --git a/vere/pkg/noun/imprison.c b/vere/pkg/noun/imprison.c new file mode 100644 index 0000000..cc945cb --- /dev/null +++ b/vere/pkg/noun/imprison.c @@ -0,0 +1,768 @@ +/// @file + +#include "imprison.h" + +#include "jets/k.h" +#include "jets/q.h" +#include "manage.h" +#include "retrieve.h" +#include "trace.h" +#include "xtract.h" + +/* _ci_slab_size(): calculate slab bloq-size, checking for overflow. +*/ +static c3_w +_ci_slab_size(c3_g met_g, c3_d len_d) +{ + c3_d bit_d = len_d << met_g; + c3_d wor_d = (bit_d + 0x1f) >> 5; + c3_w wor_w = (c3_w)wor_d; + + if ( (wor_w != wor_d) + || (len_d != (bit_d >> met_g)) ) + { + return (c3_w)u3m_bail(c3__fail); + } + + return wor_w; +} + +/* _ci_slab_init(): initialize slab with heap allocation. +** NB: callers must ensure [len_w] >0 +*/ +static void +_ci_slab_init(u3i_slab* sab_u, c3_w len_w) +{ + c3_w* nov_w = u3a_walloc(len_w + c3_wiseof(u3a_atom)); + u3a_atom* vat_u = (void *)nov_w; + + vat_u->mug_w = 0; + vat_u->len_w = len_w; + +#ifdef U3_MEMORY_DEBUG + u3_assert( len_w ); +#endif + + sab_u->_._vat_u = vat_u; + sab_u->buf_w = vat_u->buf_w; + sab_u->len_w = len_w; +} + +/* _ci_slab_grow(): update slab with heap reallocation. +*/ +static void +_ci_slab_grow(u3i_slab* sab_u, c3_w len_w) +{ + c3_w* old_w = (void*)sab_u->_._vat_u; + // XX implement a more efficient u3a_wealloc() + // + c3_w* nov_w = u3a_wealloc(old_w, len_w + c3_wiseof(u3a_atom)); + u3a_atom* vat_u = (void *)nov_w; + + vat_u->len_w = len_w; + + sab_u->_._vat_u = vat_u; + sab_u->buf_w = vat_u->buf_w; + sab_u->len_w = len_w; +} + +/* _ci_atom_mint(): finalize a heap-allocated atom at specified length. +*/ +static u3_atom +_ci_atom_mint(u3a_atom* vat_u, c3_w len_w) +{ + c3_w* nov_w = (void*)vat_u; + + if ( 0 == len_w ) { + u3a_wfree(nov_w); + return (u3_atom)0; + } + else if ( 1 == len_w ) { + c3_w dat_w = *vat_u->buf_w; + + if ( c3y == u3a_is_cat(dat_w) ) { + u3a_wfree(nov_w); + return (u3_atom)dat_w; + } + } + + // try to strip a block off the end + // + { + c3_w old_w = vat_u->len_w; + + if ( old_w > len_w ) { + c3_y wiz_y = c3_wiseof(u3a_atom); + u3a_wtrim(nov_w, old_w + wiz_y, len_w + wiz_y); + } + } + + vat_u->len_w = len_w; + + return u3a_to_pug(u3a_outa(nov_w)); +} + +/* u3i_slab_init(): configure bloq-length slab, zero-initialize. +*/ +void +u3i_slab_init(u3i_slab* sab_u, c3_g met_g, c3_d len_d) +{ + u3i_slab_bare(sab_u, met_g, len_d); + + u3t_on(mal_o); + memset(sab_u->buf_y, 0, (size_t)sab_u->len_w * 4); + u3t_off(mal_o); +} + +/* u3i_slab_bare(): configure bloq-length slab, uninitialized. +*/ +void +u3i_slab_bare(u3i_slab* sab_u, c3_g met_g, c3_d len_d) +{ + u3t_on(mal_o); + { + c3_w wor_w = _ci_slab_size(met_g, len_d); + + // if we only need one word, use the static storage in [sab_u] + // + if ( (0 == wor_w) || (1 == wor_w) ) { + sab_u->_._vat_u = 0; + sab_u->buf_w = &sab_u->_._sat_w; + sab_u->len_w = 1; + } + // allocate an indirect atom + // + else { + _ci_slab_init(sab_u, wor_w); + } + } + u3t_off(mal_o); +} + +/* u3i_slab_from(): configure bloq-length slab, initialize with [a]. +*/ +void +u3i_slab_from(u3i_slab* sab_u, u3_atom a, c3_g met_g, c3_d len_d) +{ + u3i_slab_bare(sab_u, met_g, len_d); + + // copies [a], zero-initializes any additional space + // + u3r_words(0, sab_u->len_w, sab_u->buf_w, a); + + // if necessary, mask off extra most-significant bits + // from most-significant word + // + if ( (5 > met_g) && (u3r_met(5, a) >= sab_u->len_w) ) { + // NB: overflow already checked in _ci_slab_size() + // + c3_d bit_d = len_d << met_g; + c3_w wor_w = bit_d >> 5; + c3_w bit_w = bit_d & 0x1f; + + if ( bit_w ) { + sab_u->buf_w[wor_w] &= ((c3_w)1 << bit_w) - 1; + } + } +} + +/* u3i_slab_grow(): resize slab, zero-initializing new space. +*/ +void +u3i_slab_grow(u3i_slab* sab_u, c3_g met_g, c3_d len_d) +{ + c3_w old_w = sab_u->len_w; + + u3t_on(mal_o); + { + c3_w wor_w = _ci_slab_size(met_g, len_d); + + // XX actually shrink? + // + if ( wor_w <= old_w ) { + sab_u->len_w = wor_w; + } + else { + // upgrade from static storage + // + if ( 1 == old_w ) { + c3_w dat_w = *sab_u->buf_w; + + _ci_slab_init(sab_u, wor_w); + sab_u->buf_w[0] = dat_w; + } + // reallocate + // + else { + _ci_slab_grow(sab_u, wor_w); + } + + { + c3_y* buf_y = (void*)(sab_u->buf_w + old_w); + size_t dif_i = wor_w - old_w; + memset(buf_y, 0, dif_i * 4); + } + } + } + u3t_off(mal_o); +} + +/* u3i_slab_free(): dispose memory backing slab. +*/ +void +u3i_slab_free(u3i_slab* sab_u) +{ + c3_w len_w = sab_u->len_w; + u3a_atom* vat_u = sab_u->_._vat_u; + + u3t_on(mal_o); + + if ( 1 == len_w ) { + u3_assert( !vat_u ); + } + else { + c3_w* tav_w = (sab_u->buf_w - c3_wiseof(u3a_atom)); + u3_assert( tav_w == (c3_w*)vat_u ); + u3a_wfree(vat_u); + } + + u3t_off(mal_o); +} + +/* u3i_slab_mint(): produce atom from slab, trimming. +*/ +u3_atom +u3i_slab_mint(u3i_slab* sab_u) +{ + c3_w len_w = sab_u->len_w; + u3a_atom* vat_u = sab_u->_._vat_u; + u3_atom pro; + + u3t_on(mal_o); + + if ( 1 == len_w ) { + c3_w dat_w = *sab_u->buf_w; + + u3_assert( !vat_u ); + + u3t_off(mal_o); + pro = u3i_word(dat_w); + u3t_on(mal_o); + } + else { + u3a_atom* vat_u = sab_u->_._vat_u; + c3_w* tav_w = (sab_u->buf_w - c3_wiseof(u3a_atom)); + u3_assert( tav_w == (c3_w*)vat_u ); + + // trim trailing zeros + // + while ( len_w && !(sab_u->buf_w[len_w - 1]) ) { + len_w--; + } + + pro = _ci_atom_mint(vat_u, len_w); + } + + u3t_off(mal_o); + + return pro; +} + +/* u3i_slab_moot(): produce atom from slab, no trimming. +*/ +u3_atom +u3i_slab_moot(u3i_slab* sab_u) +{ + c3_w len_w = sab_u->len_w; + u3_atom pro; + + u3t_on(mal_o); + + if ( 1 == len_w) { + c3_w dat_w = *sab_u->buf_w; + + u3_assert( !sab_u->_._vat_u ); + + u3t_off(mal_o); + pro = u3i_word(dat_w); + u3t_on(mal_o); + } + else { + u3a_atom* vat_u = sab_u->_._vat_u; + c3_w* tav_w = (sab_u->buf_w - c3_wiseof(u3a_atom)); + u3_assert( tav_w == (c3_w*)vat_u ); + + pro = _ci_atom_mint(vat_u, len_w); + } + + u3t_off(mal_o); + + return pro; +} + +/* u3i_word(): construct u3_atom from c3_w. +*/ +u3_atom +u3i_word(c3_w dat_w) +{ + u3_atom pro; + + u3t_on(mal_o); + + if ( c3y == u3a_is_cat(dat_w) ) { + pro = (u3_atom)dat_w; + } + else { + c3_w* nov_w = u3a_walloc(1 + c3_wiseof(u3a_atom)); + u3a_atom* vat_u = (void *)nov_w; + + vat_u->mug_w = 0; + vat_u->len_w = 1; + vat_u->buf_w[0] = dat_w; + + pro = u3a_to_pug(u3a_outa(nov_w)); + } + + u3t_off(mal_o); + + return pro; +} + +/* u3i_chub(): construct u3_atom from c3_d. +*/ +u3_atom +u3i_chub(c3_d dat_d) +{ + if ( c3y == u3a_is_cat(dat_d) ) { + return (u3_atom)dat_d; + } + else { + c3_w dat_w[2] = { + dat_d & 0xffffffffULL, + dat_d >> 32 + }; + + return u3i_words(2, dat_w); + } +} + +/* u3i_bytes(): Copy [a] bytes from [b] to an LSB first atom. +*/ +u3_atom +u3i_bytes(c3_w a_w, + const c3_y* b_y) +{ + // strip trailing zeroes. + // + while ( a_w && !b_y[a_w - 1] ) { + a_w--; + } + + if ( !a_w ) { + return (u3_atom)0; + } + else { + u3i_slab sab_u; + + u3i_slab_bare(&sab_u, 3, a_w); + + u3t_on(mal_o); + { + // zero-initialize last word + // + sab_u.buf_w[sab_u.len_w - 1] = 0; + memcpy(sab_u.buf_y, b_y, a_w); + } + u3t_off(mal_o); + + return u3i_slab_moot_bytes(&sab_u); + } +} + +/* u3i_words(): Copy [a] words from [b] into an atom. +*/ +u3_atom +u3i_words(c3_w a_w, + const c3_w* b_w) +{ + // strip trailing zeroes. + // + while ( a_w && !b_w[a_w - 1] ) { + a_w--; + } + + if ( !a_w ) { + return (u3_atom)0; + } + else { + u3i_slab sab_u; + u3i_slab_bare(&sab_u, 5, a_w); + + u3t_on(mal_o); + memcpy(sab_u.buf_w, b_w, (size_t)4 * a_w); + u3t_off(mal_o); + + return u3i_slab_moot(&sab_u); + } +} + +/* u3i_chubs(): Copy [a] chubs from [b] into an atom. +*/ +u3_atom +u3i_chubs(c3_w a_w, + const c3_d* b_d) +{ + // strip trailing zeroes. + // + while ( a_w && !b_d[a_w - 1] ) { + a_w--; + } + + if ( !a_w ) { + return (u3_atom)0; + } + else if ( 1 == a_w ) { + return u3i_chub(b_d[0]); + } + else { + u3i_slab sab_u; + u3i_slab_bare(&sab_u, 6, a_w); + + u3t_on(mal_o); + { + c3_w* buf_w = sab_u.buf_w; + c3_w i_w; + c3_d i_d; + + for ( i_w = 0; i_w < a_w; i_w++ ) { + i_d = b_d[i_w]; + *buf_w++ = i_d & 0xffffffffULL; + *buf_w++ = i_d >> 32; + } + } + u3t_off(mal_o); + + return u3i_slab_mint(&sab_u); + } +} + +/* u3i_mp(): Copy the GMP integer [a] into an atom, and clear it. +*/ +u3_atom +u3i_mp(mpz_t a_mp) +{ + size_t siz_i = mpz_sizeinbase(a_mp, 2); + u3i_slab sab_u; + u3i_slab_init(&sab_u, 0, siz_i); + + mpz_export(sab_u.buf_w, 0, -1, sizeof(c3_w), 0, 0, a_mp); + mpz_clear(a_mp); + + // per the mpz_export() docs: + // + // > If op is non-zero then the most significant word produced + // > will be non-zero. + // + return u3i_slab_moot(&sab_u); +} + +/* u3i_vint(): increment [a]. +*/ +u3_atom +u3i_vint(u3_noun a) +{ + u3_assert(u3_none != a); + + if ( _(u3a_is_cat(a)) ) { + return ( a == 0x7fffffff ) ? u3i_word(a + 1) : (a + 1); + } + else if ( _(u3a_is_cell(a)) ) { + return u3m_bail(c3__exit); + } + else { + mpz_t a_mp; + + u3r_mp(a_mp, a); + u3z(a); + + mpz_add_ui(a_mp, a_mp, 1); + return u3i_mp(a_mp); + } +} + +/* u3i_defcons(): allocate cell for deferred construction. +** NB: [hed] and [tel] pointers MUST be filled. +*/ +u3_cell +u3i_defcons(u3_noun** hed, u3_noun** tel) +{ + u3_noun pro; + + u3t_on(mal_o); + { + c3_w* nov_w = u3a_celloc(); + u3a_cell* nov_u = (void *)nov_w; + + nov_u->mug_w = 0; + +#ifdef U3_MEMORY_DEBUG + nov_u->hed = u3_none; + nov_u->tel = u3_none; +#endif + + *hed = &nov_u->hed; + *tel = &nov_u->tel; + + pro = u3a_to_pom(u3a_outa(nov_w)); + } + u3t_off(mal_o); + + return pro; +} + +/* u3i_cell(): Produce the cell `[a b]`. +*/ +u3_noun +u3i_cell(u3_noun a, u3_noun b) +{ + u3_noun pro; + + u3t_on(mal_o); + { + c3_w* nov_w = u3a_celloc(); + u3a_cell* nov_u = (void *)nov_w; + + nov_u->mug_w = 0; + nov_u->hed = a; + nov_u->tel = b; + + pro = u3a_to_pom(u3a_outa(nov_w)); + } + u3t_off(mal_o); + + return pro; +} + +/* u3i_trel(): Produce the triple `[a b c]`. +*/ +u3_noun +u3i_trel(u3_noun a, u3_noun b, u3_noun c) +{ + return u3i_cell(a, u3i_cell(b, c)); +} + +/* u3i_qual(): Produce the cell `[a b c d]`. +*/ +u3_noun +u3i_qual(u3_noun a, u3_noun b, u3_noun c, u3_noun d) +{ + return u3i_cell(a, u3i_trel(b, c, d)); +} + +/* u3i_string(): Produce an LSB-first atom from the C string [a]. +*/ +u3_atom +u3i_string(const c3_c* a_c) +{ + return u3i_bytes(strlen(a_c), (c3_y *)a_c); +} + +/* u3i_tape(): from a C string, to a list of bytes. +*/ +u3_noun +u3i_tape(const c3_c* txt_c) +{ + if ( !*txt_c ) { + return u3_nul; + } else return u3i_cell(*txt_c, u3i_tape(txt_c + 1)); +} + +/* u3i_list(): list from `u3_none`-terminated varargs. +*/ +u3_noun +u3i_list(u3_weak som, ...) +{ + u3_noun lit = u3_nul; + va_list ap; + + if ( u3_none == som ) { + return lit; + } + else { + lit = u3nc(som, lit); + } + + { + u3_noun tem; + + va_start(ap, som); + while ( 1 ) { + if ( u3_none == (tem = va_arg(ap, u3_weak)) ) { + break; + } + else { + lit = u3nc(tem, lit); + } + } + va_end(ap); + } + + return u3kb_flop(lit); +} + +/* u3i_edit(): +** +** Mutate `big` at axis `axe` with new value `som`. +** `axe` is RETAINED. +*/ +u3_noun +u3i_edit(u3_noun big, u3_noun axe, u3_noun som) +{ + u3_noun pro; + u3_noun* out = &pro; + + switch ( axe ) { + case 0: return u3m_bail(c3__exit); + case 1: break; + + default: { + c3_w dep_w = u3r_met(0, u3x_atom(axe)) - 2; + const c3_w* axe_w = ( c3y == u3a_is_cat(axe) ) + ? &axe + : ((u3a_atom*)u3a_to_ptr(axe))->buf_w; + + do { + u3a_cell* big_u = u3a_to_ptr(big); + u3_noun* old = (u3_noun*)&(big_u->hed); + const c3_y bit_y = 1 & (axe_w[dep_w >> 5] >> (dep_w & 31)); + + if ( c3n == u3a_is_cell(big) ) { + return u3m_bail(c3__exit); + } + else if ( c3y == u3a_is_mutable(u3R, big) ) { + *out = big; + out = &(old[bit_y]); + big = *out; + big_u->mug_w = 0; + } + else { + u3_noun luz = big; + u3_noun* new[2]; + + *out = u3i_defcons(&new[0], &new[1]); + out = new[bit_y]; + big = u3k(old[bit_y]); + *(new[!bit_y]) = u3k(old[!bit_y]); + + u3z(luz); + } + } + while ( dep_w-- ); + } + } + + u3z(big); + *out = som; + return pro; +} + +/* u3i_molt(): +** +** Mutate `som` with a 0-terminated list of axis, noun pairs. +** Axes must be cats (31 bit). +*/ + struct _molt_pair { + c3_w axe_w; + u3_noun som; + }; + + static c3_w + _molt_cut(c3_w len_w, + struct _molt_pair* pms_m) + { + c3_w i_w, cut_t, cut_w; + + cut_t = 0; + cut_w = 0; + for ( i_w = 0; i_w < len_w; i_w++ ) { + c3_w axe_w = pms_m[i_w].axe_w; + + if ( (cut_t == 0) && (3 == u3x_cap(axe_w)) ) { + cut_t = 1; + cut_w = i_w; + } + pms_m[i_w].axe_w = u3x_mas(axe_w); + } + return cut_t ? cut_w : i_w; + } + + static u3_noun // transfer + _molt_apply(u3_noun som, // retain + c3_w len_w, + struct _molt_pair* pms_m) // transfer + { + if ( len_w == 0 ) { + return u3k(som); + } + else if ( (len_w == 1) && (1 == pms_m[0].axe_w) ) { + return pms_m[0].som; + } + else { + c3_w cut_w = _molt_cut(len_w, pms_m); + + if ( c3n == u3a_is_cell(som) ) { + return u3m_bail(c3__exit); + } + else { + return u3i_cell + (_molt_apply(u3a_h(som), cut_w, pms_m), + _molt_apply(u3a_t(som), (len_w - cut_w), (pms_m + cut_w))); + } + } + } + +u3_noun +u3i_molt(u3_noun som, ...) +{ + va_list ap; + c3_w len_w; + struct _molt_pair* pms_m; + u3_noun pro; + + // Count. + // + len_w = 0; + { + va_start(ap, som); + while ( 1 ) { + if ( 0 == va_arg(ap, c3_w) ) { + break; + } + va_arg(ap, u3_weak*); + len_w++; + } + va_end(ap); + } + + u3_assert( 0 != len_w ); + pms_m = alloca(len_w * sizeof(struct _molt_pair)); + + // Install. + // + { + c3_w i_w; + + va_start(ap, som); + for ( i_w = 0; i_w < len_w; i_w++ ) { + pms_m[i_w].axe_w = va_arg(ap, c3_w); + pms_m[i_w].som = va_arg(ap, u3_noun); + } + va_end(ap); + } + + // Apply. + // + pro = _molt_apply(som, len_w, pms_m); + u3z(som); + return pro; +} diff --git a/vere/pkg/noun/imprison.h b/vere/pkg/noun/imprison.h new file mode 100644 index 0000000..6d2dcb1 --- /dev/null +++ b/vere/pkg/noun/imprison.h @@ -0,0 +1,170 @@ +/// @file + +#ifndef U3_IMPRISON_H +#define U3_IMPRISON_H + +#include "allocate.h" +#include "c3/c3.h" +#include "gmp.h" +#include "types.h" + + /** Structures. + **/ + /* u3i_slab: atom builder. + */ + typedef struct _u3i_slab { + struct { // internals + u3a_atom* _vat_u; // heap atom (nullable) + c3_w _sat_w; // static storage + } _; // + union { // + c3_y* buf_y; // bytes + c3_w* buf_w; // words + }; // + c3_w len_w; // word length + } u3i_slab; + + /* staged atom-building api + */ + /* u3i_slab_init(): configure bloq-length slab, zero-initialize. + */ + void + u3i_slab_init(u3i_slab* sab_u, c3_g met_g, c3_d len_d); + + /* u3i_slab_bare(): configure bloq-length slab, uninitialized. + */ + void + u3i_slab_bare(u3i_slab* sab_u, c3_g met_g, c3_d len_d); + + /* u3i_slab_from(): configure bloq-length slab, initialize with [a]. + */ + void + u3i_slab_from(u3i_slab* sab_u, u3_atom a, c3_g met_g, c3_d len_d); + + /* u3i_slab_grow(): resize slab, zero-initializing new space. + */ + void + u3i_slab_grow(u3i_slab* sab_u, c3_g met_g, c3_d len_d); + + /* u3i_slab_free(): dispose memory backing slab. + */ + void + u3i_slab_free(u3i_slab* sab_u); + + /* u3i_slab_mint(): produce atom from slab, trimming. + */ + u3_atom + u3i_slab_mint(u3i_slab* sab_u); + + /* u3i_slab_moot(): produce atom from slab, no trimming. + */ + u3_atom + u3i_slab_moot(u3i_slab* sab_u); + + /* u3i_slab_mint_bytes(): produce atom from byte-slab, trimming. + ** XX assumes little-endian, implement swap to support big-endian + */ +# define u3i_slab_mint_bytes u3i_slab_mint + + /* u3i_slab_moot_bytes(): produce atom from byte-slab, no trimming. + ** XX assumes little-endian, implement swap to support big-endian + */ +# define u3i_slab_moot_bytes u3i_slab_moot + + /* General constructors. + */ + /* u3i_word(): construct u3_atom from c3_w. + */ + u3_atom + u3i_word(c3_w dat_w); + + /* u3i_chub(): construct u3_atom from c3_d. + */ + u3_atom + u3i_chub(c3_d dat_d); + + /* u3i_bytes(): Copy [a] bytes from [b] to an LSB first atom. + */ + u3_atom + u3i_bytes(c3_w a_w, + const c3_y* b_y); + + /* u3i_words(): Copy [a] words from [b] into an atom. + */ + u3_atom + u3i_words(c3_w a_w, + const c3_w* b_w); + + /* u3i_chubs(): Copy [a] chubs from [b] into an atom. + */ + u3_atom + u3i_chubs(c3_w a_w, + const c3_d* b_d); + + /* u3i_mp(): Copy the GMP integer [a] into an atom, and clear it. + */ + u3_atom + u3i_mp(mpz_t a_mp); + + /* u3i_vint(): increment [a]. + */ + u3_atom + u3i_vint(u3_noun a); + + /* u3i_cell(): Produce the cell `[a b]`. + */ + u3_noun + u3i_cell(u3_noun a, u3_noun b); +# define u3nc(a, b) u3i_cell(a, b) + + /* u3i_defcons(): allocate cell for deferred construction. + ** NB: [hed] and [tel] pointers MUST be filled. + */ + u3_cell + u3i_defcons(u3_noun** hed, u3_noun** tel); + + /* u3i_trel(): Produce the triple `[a b c]`. + */ + u3_noun + u3i_trel(u3_noun a, u3_noun b, u3_noun c); +# define u3nt(a, b, c) u3i_trel(a, b, c) + + /* u3i_qual(): Produce the cell `[a b c d]`. + */ + u3_noun + u3i_qual(u3_noun a, u3_noun b, u3_noun c, u3_noun d); +# define u3nq(a, b, c, d) u3i_qual(a, b, c, d) + + /* u3i_string(): Produce an LSB-first atom from the C string [a]. + */ + u3_atom + u3i_string(const c3_c* a_c); + + /* u3i_tape(): from a C string, to a list of bytes. + */ + u3_noun + u3i_tape(const c3_c* txt_c); + + /* u3i_list(): list from `u3_none`-terminated varargs. + */ + u3_noun + u3i_list(u3_weak som, ...); +# define u3nl u3i_list + + /* u3i_edit(): + ** + ** Mutate `big` at axis `axe` with new value `som` + ** `axe` is RETAINED. + */ + u3_noun + u3i_edit(u3_noun big, u3_noun axe, u3_noun som); + + /* u3i_molt(): + ** + ** Mutate `som` with a 0-terminated list of axis, noun pairs. + ** Axes must be cats (31 bit). + */ + u3_noun + u3i_molt(u3_noun som, ...); + +#endif /* ifndef U3_IMPRISON_H */ diff --git a/vere/pkg/noun/jets.c b/vere/pkg/noun/jets.c new file mode 100644 index 0000000..627849d --- /dev/null +++ b/vere/pkg/noun/jets.c @@ -0,0 +1,2437 @@ +/// @file + +#include "jets.h" + +#include "allocate.h" +#include "hashtable.h" +#include "imprison.h" +#include "jets/k.h" +#include "jets/q.h" +#include "log.h" +#include "manage.h" +#include "nock.h" +#include "options.h" +#include "retrieve.h" +#include "serial.h" +#include "trace.h" +#include "urcrypt.h" +#include "vortex.h" +#include "xtract.h" + + +/** Functions. +**/ + +/* _cj_count(): count and link dashboard entries. +*/ +static c3_w +_cj_count(u3j_core* par_u, u3j_core* dev_u) +{ + c3_w len_l = 0; + c3_w i_w; + + if ( dev_u ) { + for ( i_w = 0; 0 != dev_u[i_w].cos_c; i_w++ ) { + u3j_core* kid_u = &dev_u[i_w]; + + if ( par_u ) { + kid_u->par_u = par_u; + } + len_l += _cj_count(kid_u, kid_u->dev_u); + } + } + return 1 + len_l; +} + +/* _cj_core_loc(): location noun from u3j_core. + */ +static u3_noun +_cj_core_loc(u3_noun pel, u3j_core* cop_u) +{ + c3_w i_w; + u3_noun nam = u3i_string(cop_u->cos_c), + huc = u3_nul, + pat; + + if ( cop_u->huc_u ) { + for ( i_w = 0; 0 != cop_u->huc_u[i_w].nam_c; ++i_w ) { + u3j_hood* huc_u = &(cop_u->huc_u[i_w]); + u3_noun fol = ( c3n == huc_u->kic_o ) + ? u3nc(0, huc_u->axe_l) + : u3nt(9, huc_u->axe_l, u3nc(0, + (0 == huc_u->sax_l) ? 1 : huc_u->sax_l)); + huc = u3kdb_put(huc, u3i_string(huc_u->nam_c), fol); + } + } + + pat = ( 0 == cop_u->axe_l ) + ? u3nt(c3y, c3y, pel) + : ( (3 == cop_u->axe_l) && (c3y == u3h(u3h(pel))) ) + ? u3nt(c3y, c3n, pel) + : u3nt(c3n, cop_u->axe_l, pel); + + return u3nt(pat, nam, huc); +} + +/* _cj_hash(): noun from pasted-in battery hash + */ +static u3_noun +_cj_hash(c3_c* has_c) +{ + c3_w i_w, len_w = strlen(has_c); + if ( 64 != len_w ) { + u3l_log("bash not 64 characters: %s", has_c); + u3_assert(0); + } + u3_assert( 64 == len_w ); + c3_y dig_y[32]; + for ( i_w = 0; i_w < 64; ) { + c3_y hi_y = has_c[i_w++], + lo_y = has_c[i_w++], + hid_y = hi_y >= 'a' ? (hi_y - 'a') + 10 : hi_y - '0', + lod_y = lo_y >= 'a' ? (lo_y - 'a') + 10 : lo_y - '0'; + dig_y[32-(i_w>>1)] = hid_y << 4 | lod_y; + } + u3_noun pro = u3i_bytes(32, dig_y); + return pro; +} + +// in the jam jet file +c3_w* u3qe_jam_buf(u3_noun, c3_w* bit_w); + +/* _cj_bash(): battery hash. RETAIN. + */ +static u3_noun +_cj_bash(u3_noun bat) +{ + if ( u3C.wag_w & u3o_hashless ) { + return u3_nul; + } + + u3_weak pro; + u3a_road* rod_u = u3R; + while ( 1 ) { + pro = u3h_get(rod_u->jed.bas_p, bat); + + if ( u3_none != pro ) { + break; + } + + if ( rod_u->par_p ) { + rod_u = u3to(u3_road, rod_u->par_p); + } + else { + u3i_slab sab_u; + c3_w bit_w = u3s_jam_fib(&sab_u, bat); + c3_w met_w = (bit_w + 0x7) >> 3; + // XX assumes little-endian + // + c3_y* fat_y = sab_u.buf_y; + c3_y dig_y[32]; + urcrypt_shay(fat_y, met_w, dig_y); + + pro = u3i_bytes(32, dig_y); + u3h_put(u3R->jed.bas_p, bat, u3k(pro)); + u3i_slab_free(&sab_u); + break; + } + } + return pro; +} + +/* _cj_mine_par_old(): register hooks and parent location within existing + * axis in ancestor list or u3_none. + */ +static u3_weak +_cj_mine_par_old(u3_noun lan, u3_noun axe, u3_noun pel, u3_noun loc) +{ + u3_noun par; + u3_weak pro; + + if ( u3_nul == lan ) { + pro = u3_none; + u3z(axe); u3z(pel); u3z(loc); + } + else if ( c3y == u3r_sing(axe, u3h(par = u3h(lan))) ) { + u3_noun lol = u3kdb_put(u3k(u3t(par)), pel, loc), + rap = u3nc(axe, lol); + pro = u3nc(rap, u3k(u3t(lan))); + } + else { + u3_weak nex = _cj_mine_par_old(u3k(u3t(lan)), axe, pel, loc); + if ( u3_none == nex ) { + pro = u3_none; + } + else { + pro = u3nc(u3k(par), nex); + } + } + + u3z(lan); + return pro; +} + +/* _cj_mine_par_new(): insert ancestor within lan at sorted index. + */ +static u3_noun +_cj_mine_par_new(u3_noun lan, u3_noun axe, u3_noun pel, u3_noun loc) +{ + u3_weak pro; + + if ( (u3_nul == lan) || (c3y == u3qa_lth(axe, u3h(u3h(lan)))) ) { + u3_noun par = u3nc(axe, u3kdb_put(u3_nul, pel, loc)); + pro = u3nc(par, lan); + } + else { + pro = u3nc(u3k(u3h(lan)), + _cj_mine_par_new(u3k(u3t(lan)), axe, pel, loc)); + u3z(lan); + } + + return pro; +} + +/* _cj_mine_par(): register a location as an ancestor + * in a list of ancestors. + */ +static u3_noun +_cj_mine_par(u3_noun lan, u3_noun axe, u3_noun pel, u3_noun loc) +{ + u3_weak old = _cj_mine_par_old(u3k(lan), u3k(axe), u3k(pel), u3k(loc)); + if ( u3_none != old ) { + u3z(lan); u3z(axe); u3z(pel); u3z(loc); + return old; + } + else { + return _cj_mine_par_new(lan, axe, pel, loc); + } +} + + +/* _cj_gust(): add location to registry. +*/ +static u3_noun +_cj_gust(u3_weak reg, u3_noun axe, u3_noun pel, u3_noun loc) +{ + u3_noun ger; + if ( u3_none == reg ) { + reg = u3nc(u3_nul, u3_nul); + } + + ger = ( 0 == axe ) + ? u3nc(u3kdb_put(u3k(u3h(reg)), pel, loc), u3k(u3t(reg))) + : u3nc(u3k(u3h(reg)), _cj_mine_par(u3k(u3t(reg)), axe, pel, loc)); + + u3z(reg); + return ger; +} + +/* _cj_axis(): axis from formula, or 0. `fol` is RETAINED. +*/ +static c3_l +_cj_axis(u3_noun fol) +{ + u3_noun p_fol, q_fol, r_fol; + + while ( _(u3du(fol)) && (11 == u3h(fol)) ) + { fol = u3t(u3t(fol)); } + + if ( !_(u3r_trel(fol, &p_fol, &q_fol, &r_fol)) ) { + if ( !_(u3r_cell(fol, &p_fol, &q_fol)) || + (0 != p_fol) || + (!_(u3a_is_cat(q_fol))) ) + { + u3l_log("axis: bad a"); + return 0; + } + return q_fol; + } + else { + if ( 9 != p_fol ) + { u3l_log("axis: bad b"); return 0; } + if ( !_(u3a_is_cat(q_fol)) ) + { u3l_log("axis: bad c"); return 0; } + if ( !_(u3du(r_fol)) || (0 != u3h(r_fol)) || (1 != u3t(r_fol)) ) + { u3l_log("axis: bad d"); return 0; } + + return q_fol; + } +} + +/* _cj_warm_hump(): generate axis-to-arm map. RETAIN. +*/ +static u3_noun +_cj_warm_hump(c3_l jax_l, u3_noun huc) +{ + u3_noun hap = u3_nul; + u3j_core* cop_u; + + /* Compute axes of all correctly declared arms. + */ + if ( jax_l && (cop_u = &u3D.ray_u[jax_l])->arm_u ) { + u3j_harm* jet_u; + c3_l i_l; + + for ( i_l = 0; (jet_u = &cop_u->arm_u[i_l])->fcs_c; i_l++ ) { + c3_l axe_l = 0; + + if ( '.' == *(jet_u->fcs_c) ) { + c3_d axe_d = 0; + + if ( (1 != sscanf(jet_u->fcs_c+1, "%" SCNu64, &axe_d)) || + axe_d >> 32ULL || + (((c3_w)1 << 31) & (axe_l = (c3_w)axe_d)) || + (axe_l < 2) ) + { + u3l_log("jets: activate: bad fcs %s", jet_u->fcs_c); + } + } + else { + u3_noun nam = u3i_string(jet_u->fcs_c); + u3_noun fol = u3kdb_get(u3k(huc), nam); + + if ( u3_none == fol ) { + u3l_log("jets: activate: bad fcs %s", jet_u->fcs_c); + } + else { + axe_l = _cj_axis(fol); + u3z(fol); + } + } + if ( 0 != axe_l ) { + hap = u3kdb_put(hap, axe_l, i_l); + } + } + } + return hap; +} + +/* _cj_install(): install dashboard entries. +*/ +static c3_w +_cj_install(u3j_core* ray_u, c3_w jax_l, u3_noun pel, u3_noun lab, u3j_core* dev_u) +{ + c3_w i_w; + u3_assert(u3R == &(u3H->rod_u)); + + if ( dev_u ) { + for ( i_w = 0; 0 != dev_u[i_w].cos_c; i_w++ ) { + u3j_core* kid_u = &dev_u[i_w]; + u3_noun loc = _cj_core_loc(u3k(pel), kid_u), + bal = u3nc(u3k(u3h(u3t(loc))), u3k(lab)); + + kid_u->jax_l = jax_l; + ray_u[jax_l] = *kid_u; + + if ( kid_u->bas_u ) { + c3_w j_w; + for ( j_w = 0; 0 != kid_u->bas_u[j_w]; j_w++ ) { + u3_noun key = _cj_hash(kid_u->bas_u[j_w]), + hot = u3h_git(u3R->jed.hot_p, key), + old = ( u3_none == hot ) ? u3_none : u3k(u3h(hot)), + reg = _cj_gust(old, kid_u->axe_l, u3k(pel), u3k(loc)), + huc = u3t(u3t(loc)), + hap = _cj_warm_hump(jax_l, huc), + toh = u3nq(reg, jax_l, hap, u3k(bal)); + + u3h_put(u3R->jed.hot_p, key, toh); + u3z(key); + } + } + + jax_l = _cj_install(ray_u, ++jax_l, loc, bal, kid_u->dev_u); + } + } + u3z(pel); + u3z(lab); + return jax_l; +} + +#if 0 +/* _cj_by_gut(): (~(get by a) b), unifying; RETAINS a, b, AND result. +*/ +static u3_weak +_cj_by_gut(u3_noun a, u3_noun b) +{ + if ( u3_nul == a ) { + return u3_none; + } + else { + u3_noun l_a, n_a, r_a; + u3_noun pn_a, qn_a; + + u3x_trel(a, &n_a, &l_a, &r_a); + u3x_cell(n_a, &pn_a, &qn_a); + { + if ( (c3y == u3r_sing(b, pn_a)) ) { + return qn_a; + } + else { + if ( c3y == u3qc_gor(b, pn_a) ) { + return _cj_by_gut(l_a, b); + } + else return _cj_by_gut(r_a, b); + } + } + } +} +#endif + +/* _cj_chum(): decode chum as string. +*/ +static c3_c* +_cj_chum(u3_noun chu) +{ + if ( _(u3ud(chu)) ) { + return u3r_string(chu); + } + else { + u3_noun h_chu = u3h(chu); + u3_noun t_chu = u3t(chu); + + if ( !_(u3a_is_cat(t_chu)) ) { + return 0; + } else { + c3_c* h_chu_c = u3r_string(h_chu); + c3_c buf[33]; + + memset(buf, 0, 33); + snprintf(buf, 32, "%s%d", h_chu_c, t_chu); + + c3_free(h_chu_c); + return strdup(buf); + } + } +} + +/* _cj_je_fsck: fsck:je, or none. +*/ +static u3_noun +_cj_je_fsck(u3_noun clu) +{ + u3_noun p_clu, q_clu, r_clu; + u3_noun huk; + c3_c* nam_c; + c3_l axe_l; + + if ( c3n == u3r_trel(clu, &p_clu, &q_clu, &r_clu) ) { + u3z(clu); return u3_none; + } + if ( 0 == (nam_c = _cj_chum(p_clu)) ) { + u3z(clu); return u3_none; + } + while ( _(u3du(q_clu)) && (11 == u3h(q_clu)) ) { + q_clu = u3t(u3t(q_clu)); + } + if ( !_(u3du(q_clu)) ) { + u3z(clu); c3_free(nam_c); return u3_none; + } + + if ( (1 == u3h(q_clu)) && (0 == u3t(q_clu)) ) { + axe_l = 0; + } + else { + if ( (0 != u3h(q_clu)) || !_(u3a_is_cat(axe_l = u3t(q_clu))) ) { + u3z(clu); c3_free(nam_c); return u3_none; + } + } + + { + huk = 0; + + while ( _(u3du(r_clu)) ) { + u3_noun ir_clu, tr_clu, pir_clu, qir_clu; + + if ( (c3n == u3r_cell(r_clu, &ir_clu, &tr_clu)) || + (c3n == u3r_cell(ir_clu, &pir_clu, &qir_clu)) || + (c3n == u3ud(pir_clu)) ) + { + u3z(huk); u3z(clu); c3_free(nam_c); return u3_none; + } + huk = u3kdb_put(huk, u3k(pir_clu), u3k(qir_clu)); + r_clu = tr_clu; + } + } + u3z(clu); + + { + u3_noun pro = u3nt(u3i_string(nam_c), axe_l, huk); + c3_free(nam_c); + return pro; + } +} + +/* _cj_find_cold(): search cold state for `bat`s [bash registry]. + * RETAIN. + */ +static u3_weak +_cj_find_cold(u3_noun bat) +{ + u3a_road* rod_u = u3R; + + while ( 1 ) { + u3_weak bar = u3h_get(rod_u->jed.cod_p, bat); + + if ( u3_none != bar ) { + return bar; + } + + if ( rod_u->par_p ) { + rod_u = u3to(u3_road, rod_u->par_p); + } + else return u3_none; + } +} + +/* _cj_find_warm(): search warm state for `loc`s activation. + * RETAIN. + */ +static u3_weak +_cj_find_warm(u3_noun loc) +{ + u3a_road* rod_u = u3R; + + while ( 1 ) { + u3_weak ank = u3h_get(rod_u->jed.war_p, loc); + + if ( u3_none != ank ) { + return ank; + } + + if ( rod_u->par_p ) { + rod_u = u3to(u3_road, rod_u->par_p); + } + else return u3_none; + } +} + +static u3_weak _cj_spot(u3_noun cor, u3_weak* bas); + +/* _cj_reg_find(): locate core within registry. RETAIN. + */ +static u3_weak +_cj_reg_find(u3_noun reg, u3_noun cor) +{ + u3_noun rut = u3h(reg), + pas = u3t(reg), + rum = u3qdb_get(rut, u3t(cor)); + if ( u3_nul != rum ) { + u3_noun loc = u3k(u3t(rum)); + u3z(rum); + return loc; + } + else { + while ( u3_nul != pas ) { + u3_noun pap = u3h(pas), + axe = u3h(pap), + lol = u3t(pap); + u3_weak par = u3r_at(axe, cor), + pel; + if ( u3_none != par ) { + pel = _cj_spot(par, NULL); + if ( u3_none != pel ) { + u3_noun nit = u3qdb_get(lol, pel); + u3z(pel); + if ( u3_nul != nit ) { + u3_noun loc = u3k(u3t(nit)); + u3z(nit); + return loc; + } + } + } + pas = u3t(pas); + } + return u3_none; + } +} + +/* _cj_jit(): generate arbitrary warm jet-associated data. RETAIN. +*/ +static u3_noun +_cj_jit(c3_l jax_l, u3_noun bat) +{ + return u3_nul; +} + +/* _cj_loc_axe(): axis-within-core from location (0 for root). RETAIN. + */ +static u3_noun +_cj_loc_axe(u3_noun loc) +{ + u3_noun pat = u3h(loc); + return ( c3n == u3h(pat) ) + ? u3k(u3h(u3t(pat))) + : (c3y == u3h(u3t(pat))) ? 0 : 3; +} + +/* _cj_loc_pel(): parent location (or root noun, if root) of loc. RETAIN. + */ +static u3_noun +_cj_loc_pel(u3_noun loc) +{ + return u3k(u3t(u3t(u3h(loc)))); +} + +/* _cj_spot_cold(): spot, cold dashboard only. *bar is set to + * the [bash registry] found for battery. RETAIN. + */ +static u3_weak +_cj_spot_cold(u3_noun cor, u3_weak* bar) +{ + *bar = _cj_find_cold(u3h(cor)); + if ( u3_none == *bar ) { + return u3_none; + } + else { + return _cj_reg_find(u3t(*bar), cor); + } +} + +/* _cj_spot_hot(): try to locate core by hot dashboard. if found, + * the activation (warm state) is returned and the + * location is produced at *loc. RETAIN. + */ +static u3_weak +_cj_spot_hot(u3_noun cor, u3_noun bas, u3_noun* loc) +{ + u3_noun bat = u3h(cor); + u3_weak act = u3_none, + hot = u3h_get(u3H->rod_u.jed.hot_p, bas); + if ( u3_none != hot ) { + u3_noun reg, jax, hap, bal; + c3_l jax_l; + u3x_qual(hot, ®, &jax, &hap, &bal); + jax_l = (c3_l) jax; + if ( u3_none != (*loc = _cj_reg_find(reg, cor)) ) { + act = u3nq(jax_l, u3k(hap), u3k(bal), _cj_jit(jax_l, bat)); + } + u3z(hot); + } + return act; +} + +/* _cj_spot(): find location of cor. expensive. RETAIN. + * bas is complicated to make it easy to cache bashes. + * you can safely ignore it by passing NULL. Otherwise, + * if it points to u3_none, and no location is found, + * a bash will be PRODUCED there. if it contains a bash, + * that will be used instead of calling _cj_bash. + */ +static u3_weak +_cj_spot(u3_noun cor, u3_weak* bas) +{ + u3_weak bak = u3_none, + bar = u3_none, + reg = u3_none, + loc = _cj_spot_cold(cor, &bar); + + if ( NULL == bas ) { + bas = &bak; + } + + if ( u3_none != bar ) { + if ( (u3_none == *bas) ) { + *bas = u3k(u3h(bar)); + } + reg = u3k(u3t(bar)); + u3z(bar); + } + + if ( u3_none == loc ) { + if ( u3_none == *bas ) { + *bas = _cj_bash(u3h(cor)); + } + + if ( !(u3C.wag_w & u3o_hashless) ) { + u3_weak act = _cj_spot_hot(cor, *bas, &loc); + if ( u3_none != act ) { + reg = _cj_gust(reg, _cj_loc_axe(loc), _cj_loc_pel(loc), u3k(loc)); + u3h_put(u3R->jed.cod_p, u3h(cor), u3nc(u3k(*bas), u3k(reg))); + /* caution: could overwrites old value, debug batteries etc. + ** old value contains old _cj_jit (from different + ** battery). if we change jit to (map battery *), + ** will need to merge with that map here. + */ + u3h_put(u3R->jed.war_p, loc, act); + } + } + } + if ( u3_none != bak ) { + u3z(bak); + } + if ( u3_none != reg ) { + u3z(reg); + } + return loc; +} + +/* _cj_cast(): create a u3j_fink that can be used to efficiently verify + * that another core is located where this one is. RETAIN. + */ +static u3p(u3j_fink) +_cj_cast(u3_noun cor, u3_noun loc) +{ + c3_w i_w = 0; + u3_noun j, par, bat, dyn, pax, + rev = u3_nul, + pat = u3h(loc); + u3j_fink* fin_u; + + while ( c3n == u3h(pat) ) { + bat = u3h(cor); + dyn = u3t(pat); + pax = u3h(dyn); + loc = u3t(dyn); + pat = u3h(loc); + rev = u3nc(u3nc(u3k(bat), u3k(pax)), rev); + // pax already known-valid + cor = u3r_at(pax, cor); + ++i_w; + } + + fin_u = u3a_walloc(c3_wiseof(u3j_fink) + + (i_w * c3_wiseof(u3j_fist))); + fin_u->len_w = i_w; + fin_u->sat = u3k(cor); + for ( j = rev; i_w-- > 0; j = u3t(j) ) { + u3j_fist* fis_u = &(fin_u->fis_u[i_w]); + par = u3h(j); + fis_u->bat = u3k(u3h(par)); + fis_u->pax = u3k(u3t(par)); + } + u3z(rev); + u3_assert( u3_nul == j ); + + return u3of(u3j_fink, fin_u); +} + +/* _cj_fine(): check that a core matches a u3j_fink. RETAIN. + */ +static c3_o +_cj_fine(u3_noun cor, u3p(u3j_fink) fin_p) +{ + u3j_fink* fin_u = u3to(u3j_fink, fin_p); + c3_w i_w; + for ( i_w = 0; i_w < fin_u->len_w; ++i_w ) { + u3j_fist* fis_u = &(fin_u->fis_u[i_w]); + if ( c3n == u3r_sing(fis_u->bat, u3h(cor)) ) { + return c3n; + } + else { + cor = u3r_at(fis_u->pax, cor); + } + } + return u3r_sing(fin_u->sat, cor); +} + +/* _cj_nail(): resolve hot state for arm at axis within cores located + * at loc. a label will be PRODUCED at *lab, unconditionally. + * Arguments are RETAINED. Return value is yes if a jet driver + * is present. + */ +static c3_o +_cj_nail(u3_noun loc, u3_noun axe, + u3_noun* lab, u3j_core** cop_u, u3j_harm** ham_u) +{ + c3_o ret_o; + u3_noun jax, hap, bal, jit; + u3_weak act; + act = _cj_find_warm(loc); + u3_assert(u3_none != act); + u3x_qual(act, &jax, &hap, &bal, &jit); + + *lab = u3k(bal); + if ( 0 == jax ) { + ret_o = c3n; + } + else { + u3_weak inx = u3kdb_get(u3k(hap), u3k(axe)); + if ( u3_none == inx ) { + ret_o = c3n; + } + else { + c3_l jax_l = jax, + inx_l = inx; + *cop_u = &(u3D.ray_u[jax_l]); + *ham_u = &((*cop_u)->arm_u[inx_l]); + ret_o = c3y; + } + } + + u3z(act); + return ret_o; +} + +/* _cj_hot_mean(): in parent, declare a core. RETAINS. +*/ +static c3_l +_cj_hot_mean(c3_l par_l, u3_noun nam) +{ + u3j_core* par_u; + u3j_core* dev_u; + + if ( 0 != par_l ) { + par_u = &u3D.ray_u[par_l]; + dev_u = par_u->dev_u; + } + else { + par_u = 0; + dev_u = u3D.dev_u; + } + + { + c3_w i_l = 0; + u3j_core* cop_u; + + while ( (cop_u = &dev_u[i_l])->cos_c ) { + if ( _(u3r_sing_c(cop_u->cos_c, nam)) ) { +#if 0 + u3l_log("hot: bound jet %d/%s/%s/", + cop_u->jax_l, + cop_u->cos_c, + par_u ? par_u->cos_c : "~"); +#endif + return cop_u->jax_l; + } + i_l++; + } + } + return 0; +} + +/* u3j_boot(): initialize jet system. +*/ +c3_w +u3j_boot(c3_o nuu_o) +{ + u3_assert(u3R == &(u3H->rod_u)); + + u3D.len_l = _cj_count(0, u3D.dev_u); + u3D.all_l = (2 * u3D.len_l) + 1024; // horrid heuristic + + u3D.ray_u = c3_malloc(u3D.all_l * sizeof(u3j_core)); + memset(u3D.ray_u, 0, (u3D.all_l * sizeof(u3j_core))); + + if ( c3n == nuu_o ) { + u3h_free(u3R->jed.hot_p); + } + u3R->jed.hot_p = u3h_new(); + + return _cj_install(u3D.ray_u, 1, + (c3_l) (long long) u3D.dev_u[0].par_u, + u3_nul, + u3D.dev_u); +} + +/* _cj_soft(): kick softly by arm axis. +*/ +static u3_noun +_cj_soft(u3_noun cor, u3_noun axe) +{ + u3_noun arm = u3x_at(axe, cor); + + return u3n_nock_on(cor, u3k(arm)); +} + + void + find_error(u3_noun cor, + u3_noun old, + u3_noun new); + +/* _cj_kick_z(): try to kick by jet. If no kick, produce u3_none. +** +** `cor` is RETAINED iff there is no kick, TRANSFERRED if one. +** `axe` is RETAINED. +*/ +static u3_weak +_cj_kick_z(u3_noun cor, u3j_core* cop_u, u3j_harm* ham_u, u3_atom axe) +{ + if ( 0 == ham_u->fun_f ) { + return u3_none; + } + + if ( !_(ham_u->liv) ) { + return u3_none; + } + else { +#ifdef U3_MEMORY_DEBUG + c3_w cod_w; + + { + char soc_c[5]; + + memset(soc_c, 0, 5); + strncpy(soc_c, cop_u->cos_c, 4); + soc_c[4] = 0; + cod_w = u3i_string(soc_c); + cod_w = u3a_lush(cod_w); + } +#endif + + if ( _(ham_u->ice) ) { + u3_weak pro = ham_u->fun_f(cor); + +#ifdef U3_MEMORY_DEBUG + u3a_lop(cod_w); +#endif + if ( u3_none != pro ) { + u3z(cor); + return pro; + } + } + else { + u3_weak pro, ame; + + ham_u->ice = c3y; + pro = ham_u->fun_f(cor); + ham_u->ice = c3n; + +#ifdef U3_MEMORY_DEBUG + u3a_lop(cod_w); +#endif + if ( u3_none == pro ) { + u3z(cor); + return pro; + } + ham_u->liv = c3n; + ame = _cj_soft(cor, axe); + ham_u->liv = c3y; + + if ( c3n == u3r_sing(ame, pro) ) { + u3l_log("test: %s %s: mismatch: good %x, bad %x", + cop_u->cos_c, + (!strcmp(".2", ham_u->fcs_c)) ? "$" : ham_u->fcs_c, + u3r_mug(ame), + u3r_mug(pro)); + ham_u->liv = c3n; + + return u3m_bail(c3__fail); + } + else { + +#if 0 + u3l_log("test: %s %s", + cop_u->cos_c, + (!strcmp(".2", ham_u->fcs_c)) ? "$" : ham_u->fcs_c); +#endif + u3z(ame); + return pro; + } + } + return u3_none; + } +} + +/* _cj_hook_in(): execute hook from core, or fail. +*/ +static u3_noun +_cj_hook_in(u3_noun cor, + const c3_c* tam_c, + c3_o jet_o) +{ + u3_weak loc, col; + u3_noun roc, tem, got, pat, nam, huc; + + if ( c3n == u3du(cor) ) { + u3l_log("_cj_hook_in failure: c3n == u3du(cor)"); + return u3m_bail(c3__fail); + } + + loc = _cj_spot(cor, NULL); + if ( u3_none == loc ) { + u3l_log("_cj_hook_in failure: u3_none == loc"); + return u3m_bail(c3__fail); + } + + tem = u3i_string(tam_c); + while ( 1 ) { + u3x_trel(loc, &pat, &nam, &huc); + got = u3qdb_get(huc, tem); + if ( u3_nul != got ) { + c3_l axe_l; + u3_noun pro, fol; + u3j_core* cop_u; + + u3z(tem); + fol = u3k(u3t(got)); + u3z(got); + axe_l = _cj_axis(fol); + if ( 0 == axe_l ) { + u3t_off(glu_o); + pro = u3n_nock_on(cor, fol); + u3t_on(glu_o); + } + else { + c3_l jax_l, inx_l; + u3_noun hap, act; + + u3z(fol); + act = _cj_find_warm(loc); + jax_l = u3h(act); + hap = u3h(u3t(act)); + cop_u = &u3D.ray_u[jax_l]; + + // Tricky: the above case would work here too, but would + // disable jet_o and create some infinite recursions. + // + u3t_off(glu_o); + if ( (c3n == jet_o) || + (u3_none == (inx_l = u3kdb_get(u3k(hap), axe_l))) || + (u3_none == (pro = _cj_kick_z(cor, + cop_u, + &cop_u->arm_u[inx_l], + axe_l))) ) { + pro = u3n_nock_on(cor, u3k(u3x_at(axe_l, cor))); + } + u3t_on(glu_o); + u3z(act); + } + u3z(loc); + return pro; + } + else if ( c3n == u3h(pat) ) { + u3_noun dyn = u3t(pat), + axe = u3h(dyn), + pel = u3t(dyn); + // axe already known-valid + roc = u3k(u3r_at(axe, cor)); + u3z(cor); + cor = roc; + col = u3k(pel); + u3z(loc); + loc = col; + } + else { + u3_noun sat = u3t(pat); + if ( c3y == u3h(sat) ) { + u3l_log("_cj_hook_in failure: c3y == u3h(sat)"); + return u3m_bail(c3__fail); + } + else { + col = u3k(u3t(sat)); + u3z(loc); + loc = col; + roc = u3k(u3t(cor)); + u3z(cor); + cor = roc; + } + } + } +} + +/* u3j_soft(): execute soft hook. +*/ +u3_noun +u3j_soft(u3_noun cor, + const c3_c* tam_c) +{ + u3_noun pro; + u3t_on(glu_o); + pro = _cj_hook_in(cor, tam_c, c3n); + u3t_off(glu_o); + return pro; +} + +/* u3j_hook(): execute hook from core, or fail. +*/ +u3_noun +u3j_hook(u3_noun cor, + const c3_c* tam_c) +{ + u3_noun pro; + u3t_on(glu_o); + pro = _cj_hook_in(cor, tam_c, c3y); + u3t_off(glu_o); + return pro; +} + +/* _cj_prog(): stop tracing glu and find a nock program + */ +static u3p(u3n_prog) +_cj_prog(u3_weak loc, u3_noun fol) +{ + u3p(u3n_prog) pog_p; + u3t_off(glu_o); + pog_p = u3n_find((loc == u3_none ? u3_nul : loc), fol); + u3t_on(glu_o); + return pog_p; +} + +/* cj_hank_find(): find cached hook information, keyed by arbitrary + * prefix and term cords. RETAIN. + */ +static u3j_hank* +_cj_hank_find(u3_noun pre, u3_noun tam) +{ + u3_noun key = u3nc(u3k(pre), u3k(tam)); + u3_noun got = u3h_git(u3R->jed.han_p, key); + + if ( u3_none != got ) { + u3z(key); + return u3to(u3j_hank, got); + } + else { + u3j_hank* new_u = u3a_walloc(c3_wiseof(u3j_hank)); + u3a_road* rod_u = u3R; + + while ( rod_u->par_p && u3_none == got ) { + rod_u = u3to(u3a_road, rod_u->par_p); + got = u3h_git(rod_u->jed.han_p, key); + } + + if ( u3_none == got ) { + new_u->hax = u3_none; + } + else { + u3j_hank* old_u = u3to(u3j_hank, got); + if ( u3_none != (new_u->hax = old_u->hax) ) { + // it's unusual but safe to "take" here, because + // u3a_take will no-op on senior nouns (just as u3k would) + // + u3j_site_take(&(new_u->sit_u), &(old_u->sit_u)); + } + } + + u3h_put(u3R->jed.han_p, key, u3of(u3j_hank, new_u)); + u3z(key); + return new_u; + } +} + +/* _cj_hank_fine(): check that cached hook information is valid + * for given core. *inn will point to the hooked + * core on return if valid. RETAIN. + */ +static c3_o +_cj_hank_fine(u3j_hank* han_u, u3_noun cor, u3_noun *inn) +{ + u3_noun hax = han_u->hax; + if ( u3_none == hax ) { + return c3n; + } + else { + *inn = u3r_at(hax, cor); + if ( u3_none == *inn ) { + return c3n; + } + else { + u3j_site* sit_u = &(han_u->sit_u); + u3_assert(u3_none != sit_u->loc); + return _cj_fine(*inn, sit_u->fin_p); + } + } +} + +/* _cj_hank_lose(): release memory maintained in a hook cache. +*/ +static void +_cj_hank_lose(u3j_hank* han_u) +{ + if ( u3_none != han_u->hax ) { + u3z(han_u->hax); + u3j_site_lose(&(han_u->sit_u)); + } +} + +/* _cj_hank_fill(): slow path, populate han_u. + */ +static u3_noun +_cj_hank_fill(u3j_hank* han_u, u3_noun tam, u3_noun cor) +{ + u3_weak loc, col; + u3_noun got, pat, nam, huc; + u3_noun hax = 1; + u3j_site* sit_u = &(han_u->sit_u); + + if ( c3n == u3du(cor) ) { + u3l_log("fail in _cj_hank_fill (c3n == u3du(cor))"); + return u3m_bail(c3__fail); + } + + sit_u->bas = u3_none; + if ( u3_none == (col = loc = _cj_spot(cor, NULL)) ) { + u3l_log("fail in _cj_hank_fill (_cj_spot(cor, NULL))"); + return u3m_bail(c3__fail); + } + + while ( 1 ) { + u3x_trel(loc, &pat, &nam, &huc); + got = u3qdb_get(huc, tam); + if ( u3_nul != got ) { + u3_noun fol = u3k(u3t(got)); + u3z(got); + sit_u->bat = u3k(u3h(cor)); + sit_u->loc = u3k(loc); + sit_u->fin_p = _cj_cast(cor, loc); + sit_u->fon_o = c3y; + if ( 0 == (sit_u->axe = _cj_axis(fol)) ) { + sit_u->jet_o = c3n; + sit_u->pog_p = _cj_prog(loc, fol); + } + else { + // loc already known-valid + han_u->sit_u.pog_p = _cj_prog(loc, u3r_at(sit_u->axe, cor)); + han_u->sit_u.jet_o = _cj_nail(loc, sit_u->axe, + &(sit_u->lab), &(sit_u->cop_u), &(sit_u->ham_u)); + } + u3z(fol); + u3z(col); + han_u->hax = hax; + return cor; + } + else if ( c3n == u3h(pat) ) { + u3_noun dyn = u3t(pat), + axe = u3h(dyn), + xah; + // axe already known-valid + cor = u3r_at(axe, cor); + loc = u3t(dyn); + xah = u3qc_peg(axe, hax); + u3z(hax); + hax = xah; + } + else { + u3_noun sat = u3t(pat); + if ( c3y == u3h(sat) ) { + u3l_log("fail in _cj_hank_fill (c3y == u3h(sat))"); + return u3m_bail(c3__fail); + } + else { + u3_noun xah; + cor = u3t(cor); + loc = u3t(sat); + xah = u3qc_peg(3, hax); + u3z(hax); + hax = xah; + } + } + } +} + +/* _cj_sink(): kick by nock. + */ +static u3_noun +_cj_sink(u3_noun cor, u3_noun axe) +{ + u3_noun fol = u3x_at(axe, cor); + u3z(axe); + return u3n_nock_on(cor, u3k(fol)); +} + +/* u3j_kick(): new kick. +** +** `axe` is RETAINED by the caller; `cor` is RETAINED iff there +** is no kick, TRANSFERRED if one. +*/ +u3_weak +u3j_kick(u3_noun cor, u3_noun axe) +{ + u3t_on(glu_o); + u3_weak loc = _cj_spot(cor, NULL); + if ( u3_none == loc ) { + u3t_off(glu_o); + return u3_none; + } + else { + u3_weak act = _cj_find_warm(loc); + u3z(loc); + if ( u3_none == act ) { + u3t_off(glu_o); + return u3_none; + } + else { + c3_l jax_l; + u3_noun hap, bal, jit, inx; + + u3x_qual(act, &jax_l, &hap, &bal, &jit); + + if ( u3_none == (inx = u3kdb_get(u3k(hap), u3k(axe))) ) { + u3t_off(glu_o); + { + c3_o pof_o = __(u3C.wag_w & u3o_debug_cpu); + c3_o trc_o = __(u3C.wag_w & u3o_trace); + + if ( _(pof_o) ) { + pof_o = u3t_come(bal); + } + if ( _(trc_o) ) { + trc_o = u3t_nock_trace_push(bal); + } + u3z(act); + if ( _(pof_o) || _(trc_o) ) { + u3_noun pro = _cj_sink(cor, u3k(axe)); + + if (_(pof_o)) { + u3t_flee(); + } + if ( _(trc_o) ) { + u3t_nock_trace_pop(); + } + return pro; + } + else { + return u3_none; + } + } + } + else { + u3j_core* cop_u = &u3D.ray_u[jax_l]; + c3_l inx_l = inx; + u3j_harm* ham_u = &cop_u->arm_u[inx_l]; + c3_o pof_o = __(u3C.wag_w & u3o_debug_cpu); + c3_o trc_o = __(u3C.wag_w & u3o_trace); + u3_noun pro; + + if ( _(pof_o) ) { + pof_o = u3t_come(bal); + } + if ( _(trc_o) ) { + trc_o = u3t_nock_trace_push(bal); + } + u3z(act); + u3t_off(glu_o); + pro = _cj_kick_z(cor, cop_u, ham_u, axe); + + if ( u3_none == pro ) { + if ( _(pof_o) || _(trc_o) ) { + pro = _cj_sink(cor, u3k(axe)); + + if (_(pof_o)) { + u3t_flee(); + } + if ( _(trc_o) ) { + u3t_nock_trace_pop(); + } + } + return pro; + } + else { + if ( _(pof_o) ) { + u3t_flee(); + } + if ( _(trc_o) ) { + u3t_nock_trace_pop(); + } + return pro; + } + } + } + } +} + +/* _cj_fink_take(): copy u3j_fink from junior road. +*/ +static u3j_fink* +_cj_fink_take(u3j_fink* jun_u) +{ + c3_w i_w, len_w = jun_u->len_w; + u3j_fink* fin_u = u3a_walloc(c3_wiseof(u3j_fink) + + (len_w * c3_wiseof(u3j_fist))); + + fin_u->len_w = len_w; + fin_u->sat = u3a_take(jun_u->sat); + for ( i_w = 0; i_w < len_w; ++i_w ) { + u3j_fist* fis_u = &(fin_u->fis_u[i_w]); + u3j_fist* sif_u = &(jun_u->fis_u[i_w]); + fis_u->bat = u3a_take(sif_u->bat); + fis_u->pax = u3a_take(sif_u->pax); + } + return fin_u; +} + +/* _cj_fink_free(): lose and free everything in a u3j_fink. +*/ +static void +_cj_fink_free(u3p(u3j_fink) fin_p) +{ + c3_w i_w; + u3j_fink* fin_u = u3to(u3j_fink, fin_p); + u3z(fin_u->sat); + for ( i_w = 0; i_w < fin_u->len_w; ++i_w ) { + u3j_fist* fis_u = &(fin_u->fis_u[i_w]); + u3z(fis_u->bat); + u3z(fis_u->pax); + } + u3a_wfree(fin_u); +} + +/* u3j_rite_take(): copy junior rite references. [dst_u] is uninitialized +*/ +void +u3j_rite_take(u3j_rite* dst_u, u3j_rite* src_u) +{ + if ( u3_none == src_u->clu ) { + dst_u->clu = u3_none; + dst_u->fin_p = 0; + dst_u->own_o = c3n; + } + else { + dst_u->clu = u3a_take(src_u->clu); + dst_u->own_o = src_u->own_o; + dst_u->fin_p = ( c3n == src_u->own_o ) + ? src_u->fin_p + : u3of(u3j_fink, _cj_fink_take(u3to(u3j_fink, src_u->fin_p))); + } +} + +/* u3j_rite_merge(): copy rite references from src_u to dst_u, +** losing old references +*/ +void +u3j_rite_merge(u3j_rite* dst_u, u3j_rite* src_u) +{ + if ( u3_none != src_u->clu ) { + if ( u3_none != dst_u->clu ) { + u3z(dst_u->clu); + } + + dst_u->clu = src_u->clu; + + if ( dst_u->fin_p != src_u->fin_p ) { + if ( c3y == dst_u->own_o ) { + _cj_fink_free(dst_u->fin_p); + } + + dst_u->fin_p = src_u->fin_p; + dst_u->own_o = src_u->own_o; + } + } +} + +/* u3j_site_take(): copy junior site references. [dst_u] is uninitialized +*/ +void +u3j_site_take(u3j_site* dst_u, u3j_site* src_u) +{ + dst_u->axe = u3a_take(src_u->axe); + dst_u->bat = u3_none; + dst_u->bas = u3_none; + dst_u->pog_p = 0; + + if ( u3_none == src_u->loc ) { + dst_u->loc = u3_none; + dst_u->lab = u3_none; + dst_u->jet_o = c3n; + dst_u->cop_u = NULL; + dst_u->ham_u = NULL; + dst_u->fin_p = 0; + dst_u->fon_o = c3n; + } + else { + dst_u->loc = u3a_take(src_u->loc); + dst_u->lab = u3a_take(src_u->lab); + dst_u->jet_o = src_u->jet_o; + dst_u->cop_u = src_u->cop_u; + dst_u->ham_u = src_u->ham_u; + + if ( c3y == src_u->fon_o ) { + dst_u->fin_p = u3of(u3j_fink, _cj_fink_take(u3to(u3j_fink, src_u->fin_p))); + dst_u->fon_o = c3y; + } + else { + dst_u->fin_p = src_u->fin_p; + dst_u->fon_o = c3n; + } + } +} + +/* u3j_site_merge(): copy site references from src_u to dst_u, +** losing old references +*/ +void +u3j_site_merge(u3j_site* dst_u, u3j_site* src_u) +{ + u3z(dst_u->axe); + dst_u->axe = src_u->axe; + + if ( u3_none != src_u->loc ) { + u3z(dst_u->loc); // XX these may be u3_none + u3z(dst_u->lab); + dst_u->loc = src_u->loc; + dst_u->lab = src_u->lab; + dst_u->cop_u = src_u->cop_u; + dst_u->ham_u = src_u->ham_u; + dst_u->jet_o = src_u->jet_o; + + if ( dst_u->fin_p != src_u->fin_p ) { + if ( c3y == dst_u->fon_o ) { + _cj_fink_free(dst_u->fin_p); + } + + dst_u->fin_p = src_u->fin_p; + dst_u->fon_o = src_u->fon_o; + } + } +} + +/* u3j_site_ream(): refresh u3j_site after restoring from checkpoint +*/ +void +u3j_site_ream(u3j_site* sit_u) +{ + if ( u3_none != sit_u->loc ) { + u3z(sit_u->lab); + sit_u->jet_o = _cj_nail(sit_u->loc, sit_u->axe, + &(sit_u->lab), &(sit_u->cop_u), &(sit_u->ham_u)); + } +} + +/* _cj_site_lock(): ensure site has a valid program pointer + */ +static void +_cj_site_lock(u3_noun loc, u3_noun cor, u3j_site* sit_u) +{ + if ( (u3_none != sit_u->bat) && + (c3y == u3r_sing(sit_u->bat, u3h(cor))) ) { + return; + } + sit_u->pog_p = _cj_prog(loc, u3x_at(sit_u->axe, cor)); + if ( u3_none != sit_u->bat ) { + u3z(sit_u->bat); + } + sit_u->bat = u3k(u3h(cor)); +} + +/* _cj_burn(): stop tracing glu and call a nock program + */ +static u3_noun +_cj_burn(u3p(u3n_prog) pog_p, u3_noun cor) +{ + u3_noun pro; + u3t_off(glu_o); + pro = u3n_burn(pog_p, cor); + u3t_on(glu_o); + return pro; +} + +/* _cj_site_kick_hot(): execute site's kick on located core +** (no validity checks). +*/ +static u3_weak +_cj_site_kick_hot(u3_noun loc, u3_noun cor, u3j_site* sit_u, c3_o lok_o) +{ + u3_weak pro = u3_none; + c3_o jet_o = sit_u->jet_o; + c3_o pof_o = __(u3C.wag_w & u3o_debug_cpu); + c3_o trc_o = __(u3C.wag_w & u3o_trace); + + if ( c3n == pof_o && c3n == trc_o ) { + if ( c3y == jet_o ) { + u3t_off(glu_o); + pro = _cj_kick_z(cor, sit_u->cop_u, sit_u->ham_u, sit_u->axe); + u3t_on(glu_o); + } + if ( u3_none == pro ) { + if ( c3y == lok_o ) { + _cj_site_lock(loc, cor, sit_u); + } + } + } + else { + if ( _(pof_o) ) { + pof_o = u3t_come(sit_u->lab); + } + if ( _(trc_o) ) { + trc_o = u3t_nock_trace_push(sit_u->lab); + } + + if ( c3y == jet_o ) { + u3t_off(glu_o); + pro = _cj_kick_z(cor, sit_u->cop_u, sit_u->ham_u, sit_u->axe); + u3t_on(glu_o); + } + if ( u3_none == pro ) { + if ( c3y == lok_o ) { + _cj_site_lock(loc, cor, sit_u); + } + pro = _cj_burn(sit_u->pog_p, cor); + } + + if ( c3y == pof_o ) { + u3t_flee(); + } + if ( c3y == trc_o ) { + u3t_nock_trace_pop(); + } + } + + return pro; +} + +/* _cj_site_kick(): execute site's kick on core. + */ +static u3_weak +_cj_site_kick(u3_noun cor, u3j_site* sit_u) +{ + u3_weak loc, pro; + + loc = pro = u3_none; + + if ( u3_none != sit_u->loc ) { + if ( c3y == _cj_fine(cor, sit_u->fin_p) ) { + loc = sit_u->loc; + pro = _cj_site_kick_hot(loc, cor, sit_u, c3y); + } + } + + if ( u3_none == loc ) { + loc = _cj_spot(cor, &(sit_u->bas)); + if ( u3_none != loc ) { + u3p(u3j_fink) fon_p = 0; + u3_weak lod = u3_none; + u3_weak lob = u3_none; + + if ( u3_none != sit_u->loc ) { + lod = sit_u->loc; + lob = sit_u->lab; + if ( c3y == sit_u->fon_o ) { + fon_p = sit_u->fin_p; + } + } + + sit_u->loc = loc; + sit_u->fin_p = _cj_cast(cor, loc); + sit_u->fon_o = c3y; + sit_u->jet_o = _cj_nail(loc, sit_u->axe, + &(sit_u->lab), &(sit_u->cop_u), &(sit_u->ham_u)); + pro = _cj_site_kick_hot(loc, cor, sit_u, c3y); + + if ( u3_none != lod ) { + u3z(lod); + u3z(lob); + if ( 0 != fon_p ) { + _cj_fink_free(fon_p); + } + } + } + } + + if ( u3_none == pro ) { + _cj_site_lock(loc, cor, sit_u); + } + + return pro; +} + +/* u3j_site_kick(): kick a core with a u3j_site cache. + */ +u3_weak +u3j_site_kick(u3_noun cor, u3j_site* sit_u) +{ + u3_weak pro; + u3t_on(glu_o); + pro = _cj_site_kick(cor, sit_u); + u3t_off(glu_o); + return pro; +} + +/* u3j_cook(): Execute hook from core, call site cached by arbitrary c string +*/ +u3_noun +u3j_cook(const c3_c* key_c, + u3_noun cor, + const c3_c* tam_c) +{ + u3_noun pro, key, tam, inn; + u3j_hank* han_u; + + u3t_on(glu_o); + key = u3i_string(key_c); + tam = u3i_string(tam_c); + han_u = _cj_hank_find(key, tam); + if ( c3n == _cj_hank_fine(han_u, cor, &inn) ) { + _cj_hank_lose(han_u); + inn = _cj_hank_fill(han_u, tam, cor); + } + pro = _cj_site_kick(u3k(inn), &(han_u->sit_u)); + if ( u3_none == pro ) { + pro = _cj_burn(han_u->sit_u.pog_p, inn); + } + u3z(cor); + + u3z(key); + u3z(tam); + u3t_off(glu_o); + return pro; +} + +/* u3j_kink(): kick either by jet or by nock. +*/ +u3_noun +u3j_kink(u3_noun cor, u3_noun axe) +{ + u3_weak pro = u3j_kick(cor, axe); + + if ( u3_none != pro ) { + return pro; + } + else { + return _cj_sink(cor, axe); + } +} + +/* u3j_gate_prep(): prepare a locally cached gate to call repeatedly. + * core is TRANSFERRED. + */ +void +u3j_gate_prep(u3j_site* sit_u, u3_noun cor) +{ + u3_noun loc; + u3t_on(glu_o); + if ( c3n == u3du(cor) || c3n == u3du(u3t(cor)) ) { + u3m_bail(c3__exit); + return; + } + sit_u->bas = u3_none; + sit_u->axe = 2; + sit_u->bat = cor; // a lie, this isn't really the battery! + sit_u->loc = loc = _cj_spot(cor, &(sit_u->bas)); + sit_u->pog_p = _cj_prog(loc, u3h(cor)); + if ( u3_none != loc ) { + u3_noun pax = _cj_loc_axe(loc), + pay = u3qc_cap(pax), + pam = u3qc_mas(pax); + if ( 3 != pay || 2 == pam || (3 != pam && 3 != u3qc_cap(pam)) ) { + u3l_log("u3j_gate_prep(): parent axis includes sample"); + u3m_p("axis", pax); + u3_weak act = _cj_find_warm(loc); + u3_assert( u3_none != act ); + sit_u->jet_o = c3n; + sit_u->lab = u3k(u3h(u3t(u3t(act)))); + u3z(act); + } + else { + sit_u->jet_o = _cj_nail(loc, 2, + &(sit_u->lab), &(sit_u->cop_u), &(sit_u->ham_u)); + } + u3z(pam); u3z(pax); + } + u3t_off(glu_o); +} + +/* u3j_gate_slam(): slam a site prepared by u3j_gate_find() with sample. + * sam is TRANSFERRED. + */ +u3_noun +u3j_gate_slam(u3j_site* sit_u, u3_noun sam) +{ + u3_weak pro; + u3_noun cor; + + u3t_on(glu_o); + pro = u3_none; + cor = u3nt(u3k(u3h(sit_u->bat)), + sam, + u3k(u3t(u3t(sit_u->bat)))); + if ( u3_none != sit_u->loc ) { + pro = _cj_site_kick_hot(sit_u->loc, cor, sit_u, c3n); + } + if ( u3_none == pro ) { + pro = _cj_burn(sit_u->pog_p, cor); + } + u3t_off(glu_o); + return pro; +} + +/* u3j_gate_lose(): clean up site prepared by u3j_gate_find(). + */ +void +u3j_gate_lose(u3j_site* sit_u) +{ + u3z(sit_u->bat); + u3z(sit_u->bas); + if ( u3_none != sit_u->loc ) { + u3z(sit_u->loc); + u3z(sit_u->lab); + } +} + +/* _cj_minx(): produce location of core from fsck'd clue. RETAIN. + */ +static u3_weak +_cj_minx(u3_noun cey, u3_noun cor) +{ + u3_noun nam, axe, huc; + u3x_trel(cey, &nam, &axe, &huc); + + if ( 0 == axe ) { + return u3nt(u3nt(c3y, c3y, u3k(u3t(cor))), u3k(nam), u3k(huc)); + } + else { + u3_weak par, pel; + u3_noun pat; + + par = u3r_at(axe, cor); + if ( u3_none == par || c3n == u3du(par) ) { + u3l_log("fund: %s is bogus", u3r_string(nam)); + return u3_none; + } + pel = _cj_spot(par, NULL); + if ( u3_none == pel ) { + u3l_log("fund: in %s, parent %x not found at %d", + u3r_string(nam), + u3r_mug(u3h(par)), + axe); + return u3_none; + } + pat = ( ( 3 == axe ) && (c3y == u3h(u3h(pel))) ) + ? u3nt(c3y, c3n, pel) + : u3nt(c3n, u3k(axe), pel); + return u3nt(pat, u3k(nam), u3k(huc)); + } +} + +static void +_cj_print_tas(u3_noun tas) +{ + c3_w met_w = u3r_met(3, tas); + c3_c* str_c = alloca(met_w + 1); + u3r_bytes(0, met_w, (c3_y*)str_c, tas); + str_c[met_w] = 0; + u3l_log("/%s", str_c); +} + +/* _cj_mine(): declare a core and produce location. RETAIN. +*/ +static u3_weak +_cj_mine(u3_noun cey, u3_noun cor, u3_noun bas) +{ + u3_weak loc = _cj_minx(cey, cor); + if ( u3_none != loc ) { + c3_l par_l, jax_l; + u3_noun pel = _cj_loc_pel(loc), + axe = _cj_loc_axe(loc), + bat = u3h(cor), + nam = u3h(u3t(loc)), + bar = _cj_find_cold(bat), + reg, hap, bal, act; + if ( u3_none == bar ) { + reg = u3_none; + } + else { + reg = u3k(u3t(bar)); + u3z(bar); + } + reg = _cj_gust(reg, u3k(axe), u3k(pel), u3k(loc)); + if ( 0 == axe ) { + par_l = 0; + bal = u3nc(u3k(nam), u3_nul); + } + else { + u3_weak pac = _cj_find_warm(pel); + u3_assert(u3_none != pac); + par_l = u3h(pac); + bal = u3nc(u3k(nam), u3k(u3h(u3t(u3t(pac))))); + u3z(pac); + } + jax_l = _cj_hot_mean(par_l, nam); +#if 0 + u3m_p("new jet", bal); + u3l_log(" bat %x, jax %d", u3r_mug(bat), jax_l); +#endif + + if ( !(u3C.wag_w & u3o_hashless) ) { + if ( jax_l ) { + c3_y dig_y[32]; + c3_w i_w; + u3_noun i = bal; + u3l_log("hot jet: "); + while ( i != u3_nul ) { + _cj_print_tas(u3h(i)); + i = u3t(i); + } + u3l_log("\r\n axe %d, jax %d,\r\n bash ", axe, jax_l); + u3r_bytes(0, 32, dig_y, bas); + for ( i_w = 32; i_w > 0; ) { + u3l_log("%02x", dig_y[--i_w]); + } + u3l_log(""); + } + } + + hap = _cj_warm_hump(jax_l, u3t(u3t(loc))); + act = u3nq(jax_l, hap, bal, _cj_jit(jax_l, bat)); + u3h_put(u3R->jed.cod_p, bat, u3nc(u3k(bas), reg)); + u3h_put(u3R->jed.war_p, loc, act); // see note in _cj_spot + u3z(pel); u3z(axe); + } + + return loc; +#if 0 + { + u3_noun bas = _cj_bash(bat), + hot = u3h_get(u3D.hot_p, bas); + c3_o hav_o = c3n; + + if ( u3_none != hot ) { + u3_noun her = u3h(hot), + hol = _cj_reg_find(her, cor); + if ( hol != u3_none ) { + hav_o = c3y; + u3z(hol); + } + u3z(hot); + } + + if ( c3n == hav_o ) { + u3m_p("unregistered battery", bal); + u3l_log("hash: %x", bas); + } + u3z(bas); + } +#endif +} + +static void +_cj_audit(u3_noun loc, u3_noun cey, u3_noun cor) +{ + u3_noun pat, nam, huc, cax, can, cuc, pax; + + u3x_trel(loc, &pat, &nam, &huc); + u3x_trel(cey, &can, &cax, &cuc); + + pax = _cj_loc_axe(loc); + + if ( (c3n == u3r_sing(nam, can)) || + (c3n == u3r_sing(pax, cax)) || + (c3n == u3r_sing(huc, cuc)) ) { + u3_noun mix = _cj_minx(cey, cor); + u3m_p("bad audit", loc); + u3m_p("hint says", mix); + u3z(mix); + } + + u3z(pax); +} + +/* _cj_mile(): register core for jets, returning location. +*/ +static u3_weak +_cj_mile(u3_noun clu, u3_noun cor) +{ + u3_weak loc = u3_none; + if ( c3n == u3du(cor) ) { + u3z(clu); + u3z(cor); + } + else { + u3_weak cey = _cj_je_fsck(clu); + if ( u3_none != cey ) { + u3_weak bas = u3_none; + loc = _cj_spot(cor, &bas); + if ( u3_none == loc ) { + loc = _cj_mine(cey, cor, bas); + } + else { + _cj_audit(loc, cey, cor); + } + u3z(cey); + if ( u3_none != bas ) { + u3z(bas); + } + } + u3z(cor); + } + return loc; +} + +/* u3j_mine(): register core for jets. +*/ +void +u3j_mine(u3_noun clu, u3_noun cor) +{ + u3_weak loc; + u3t_on(glu_o); + loc = _cj_mile(clu, cor); + u3z(loc); + u3t_off(glu_o); +} + +/* u3j_rite_mine(): mine cor with clue, using u3j_rite for caching +*/ +void +u3j_rite_mine(u3j_rite* rit_u, u3_noun clu, u3_noun cor) +{ + c3_t non_t; + u3t_on(glu_o); + + non_t = (u3_none == rit_u->clu); + + if ( non_t || + c3n == u3r_sing(rit_u->clu, clu) || + c3n == _cj_fine(cor, rit_u->fin_p) ) { + u3_weak loc = _cj_mile(u3k(clu), u3k(cor)); + if ( u3_none != loc ) { + u3p(u3j_fink) fon_p = rit_u->fin_p; + u3_noun old = rit_u->clu; + c3_o own_o = rit_u->own_o; + rit_u->own_o = c3y; + rit_u->clu = u3k(clu); + rit_u->fin_p = _cj_cast(cor, loc); + u3z(loc); + + if ( !non_t && (c3y == own_o) ) { + u3z(old); + _cj_fink_free(fon_p); + } + } + } + u3z(clu); + u3z(cor); + u3t_off(glu_o); +} + +/* _cj_take_hank_cb(): u3h_take_with cb for taking hanks +*/ +static u3p(u3j_hank) +_cj_take_hank_cb(u3p(u3j_hank) nah_p) +{ + u3j_hank* nah_u = u3to(u3j_hank, nah_p); + u3j_hank* han_u = u3a_walloc(c3_wiseof(u3j_hank)); + + if ( u3_none == nah_u->hax ) { + han_u->hax = u3_none; + // han_u->sit_u left uninitialized, will be ignored + } + else { + han_u->hax = u3a_take(nah_u->hax); + u3j_site_take(&(han_u->sit_u), &(nah_u->sit_u)); + } + + return u3of(u3j_hank, han_u); +} + +/* u3j_take(): copy junior jet state. +*/ +u3a_jets +u3j_take(u3a_jets jed_u) +{ + jed_u.war_p = u3h_take(jed_u.war_p); + jed_u.cod_p = u3h_take(jed_u.cod_p); + jed_u.han_p = u3h_take_with(jed_u.han_p, _cj_take_hank_cb); + jed_u.bas_p = u3h_take(jed_u.bas_p); + return jed_u; +} + +/* _cj_merge_hank_cb(): u3h_uni_with cb for integrating taken hanks +** NB "transfers" or frees hanks in jed_u.han_p +*/ +static void +_cj_merge_hank_cb(u3_noun kev, void* wit) +{ + u3p(u3h_root) han_p = *(u3p(u3h_root)*)wit; + u3j_hank* nah_u; + u3_noun key; + u3p(u3j_hank) nah_p; + u3x_cell(kev, &key, &nah_p); + + nah_u = u3to(u3j_hank, nah_p); + + if ( u3_none == nah_u->hax ) { + u3a_wfree(nah_u); + } + else { + u3j_hank* han_u; + u3_weak got = u3h_git(u3R->jed.han_p, key); + + if ( u3_none == got ) { + han_u = nah_u; + } + else { + han_u = u3to(u3j_hank, got); + + if ( u3_none != han_u->hax ) { + u3z(han_u->hax); + } + han_u->hax = nah_u->hax; + + u3j_site_merge(&(han_u->sit_u), &(nah_u->sit_u)); + u3a_wfree(nah_u); + } + + u3h_put(han_p, key, u3of(u3j_hank, han_u)); + } +} + +/* u3j_reap(): promote jet state. +*/ +void +u3j_reap(u3a_jets jed_u) +{ + u3h_uni(u3R->jed.war_p, jed_u.war_p); + u3h_free(jed_u.war_p); + + u3h_uni(u3R->jed.cod_p, jed_u.cod_p); + u3h_free(jed_u.cod_p); + + u3h_walk_with(jed_u.han_p, _cj_merge_hank_cb, &u3R->jed.han_p); + u3h_free(jed_u.han_p); + + u3h_uni(u3R->jed.bas_p, jed_u.bas_p); + u3h_free(jed_u.bas_p); +} + +/* _cj_ream(): ream list of battery [bash registry] pairs. RETAIN. + */ +static void +_cj_ream(u3_noun all) +{ + c3_l par_l, jax_l; + u3_noun i, j, k, rul, loc, bal, act, lop, kev, rut, hap, + pat, reg, pol, rem, rec, bat, pel, nam, huc; + u3_weak pac; + + for ( i = all, lop = u3_nul; i != u3_nul; i = u3t(i) ) { + kev = u3h(i); + bat = u3h(kev); + reg = u3t(u3t(kev)); + rut = u3h(reg); + + // register roots + rul = u3qdb_tap(rut); + for ( j = rul; j != u3_nul; j = u3t(j) ) { + loc = u3t(u3h(j)); + u3x_trel(loc, &pat, &nam, &huc); + bal = u3nc(u3k(nam), u3_nul); + jax_l = _cj_hot_mean(0, nam); + hap = _cj_warm_hump(jax_l, huc); + act = u3nq(jax_l, hap, bal, _cj_jit(jax_l, bat)); +#if 0 + u3m_p("old jet", bal); + u3l_log(" bat %x, jax %d", u3r_mug(bat), jax_l); +#endif + u3h_put(u3R->jed.war_p, loc, act); + } + u3z(rul); + + // put ancestors in lop (list [battery=^ parent=location this=location]) + for ( j = u3t(reg); j != u3_nul; j = u3t(j) ) { + pol = lop; + lop = u3qdb_tap(u3t(u3h(j))); + for ( k = lop; u3_nul != k; k = u3t(k) ) { + pol = u3nc(u3nc(u3k(bat), u3k(u3h(k))), pol); + } + u3z(lop); + lop = pol; + } + } + + // ordering is random so we need to push onto rem when parent + // isn't yet present in the warm state + while ( u3_nul != lop ) { + rem = u3_nul; + for ( i = lop; u3_nul != i; i = u3t(i) ) { + rec = u3h(i); + u3x_trel(rec, &bat, &pel, &loc); + pac = _cj_find_warm(pel); + if ( u3_none == pac ) { + rem = u3nc(u3k(rec), rem); + } + else { + u3x_trel(loc, &pat, &nam, &huc); + par_l = u3h(pac); + jax_l = _cj_hot_mean(par_l, nam); + bal = u3nc(u3k(nam), u3k(u3h(u3t(u3t(pac))))); + hap = _cj_warm_hump(jax_l, huc), + u3z(pac); + act = u3nq(jax_l, hap, bal, _cj_jit(jax_l, bat)); +#if 0 + u3m_p("old jet", bal); + u3l_log(" bat %x, jax %d", u3r_mug(bat), jax_l); +#endif + u3h_put(u3R->jed.war_p, loc, act); + } + } + u3z(lop); + lop = rem; + } +} + +/* _cj_warm_tap(): tap war_p to rel +*/ +static void +_cj_warm_tap(u3_noun kev, void* wit) +{ + u3_noun* rel = wit; + *rel = u3nc(u3k(kev), *rel); +} + +/* _cj_ream_hank(): clear hot state out of hook sites. +*/ +static void +_cj_ream_hank(u3_noun kev) +{ + u3j_site_ream(&(u3to(u3j_hank, u3t(kev))->sit_u)); +} + +/* u3j_ream(): rebuild warm state +*/ +void +u3j_ream(void) +{ + u3_noun rel = u3_nul; + u3_assert(u3R == &(u3H->rod_u)); + u3h_free(u3R->jed.war_p); + u3R->jed.war_p = u3h_new(); + u3h_walk_with(u3R->jed.cod_p, _cj_warm_tap, &rel); + _cj_ream(rel); + u3z(rel); + + u3h_walk(u3R->jed.han_p, _cj_ream_hank); +} + +/* u3j_stay(): extract cold state +*/ +u3_noun +u3j_stay(void) +{ + u3_noun rel = u3_nul; + u3_assert(u3R == &(u3H->rod_u)); + u3h_walk_with(u3R->jed.cod_p, _cj_warm_tap, &rel); + return rel; +} + +/* u3j_load(): inject cold state +*/ +void +u3j_load(u3_noun rel) +{ + u3_noun ler = rel; + u3_noun lor; + + while ( u3_nul != ler ) { + u3x_cell(ler, &lor, &ler); + u3h_put(u3R->jed.cod_p, u3h(lor), u3k(u3t(lor))); + } + + u3z(rel); +} + +/* _cj_fink_mark(): mark a u3j_fink for gc. +*/ +static c3_w +_cj_fink_mark(u3j_fink* fin_u) +{ + c3_w i_w, tot_w = u3a_mark_noun(fin_u->sat); + for ( i_w = 0; i_w < fin_u->len_w; ++i_w ) { + u3j_fist* fis_u = &(fin_u->fis_u[i_w]); + tot_w += u3a_mark_noun(fis_u->bat); + tot_w += u3a_mark_noun(fis_u->pax); + } + tot_w += u3a_mark_ptr(fin_u); + return tot_w; +} + +/* u3j_site_lose(): lose references of u3j_site (but do not free). + */ +void +u3j_site_lose(u3j_site* sit_u) +{ + u3z(sit_u->axe); + if ( u3_none != sit_u->bat ) { + u3z(sit_u->bat); + } + if ( u3_none != sit_u->bas ) { + u3z(sit_u->bas); + } + if ( u3_none != sit_u->loc ) { + u3z(sit_u->loc); + u3z(sit_u->lab); + if ( c3y == sit_u->fon_o ) { + _cj_fink_free(sit_u->fin_p); + } + } +} + +/* u3j_rite_lose(): lose references of u3j_rite (but do not free). + */ +void +u3j_rite_lose(u3j_rite* rit_u) +{ + if ( (c3y == rit_u->own_o) && u3_none != rit_u->clu ) { + u3z(rit_u->clu); + _cj_fink_free(rit_u->fin_p); + } +} + +/* u3j_rite_mark(): mark u3j_rite for gc. +*/ +c3_w +u3j_rite_mark(u3j_rite* rit_u) +{ + c3_w tot_w = 0; + if ( (c3y == rit_u->own_o) && u3_none != rit_u->clu ) { + tot_w += u3a_mark_noun(rit_u->clu); + tot_w += _cj_fink_mark(u3to(u3j_fink, rit_u->fin_p)); + } + return tot_w; +} + +/* u3j_site_mark(): mark u3j_site for gc. +*/ +c3_w +u3j_site_mark(u3j_site* sit_u) +{ + c3_w tot_w = u3a_mark_noun(sit_u->axe); + if ( u3_none != sit_u->bat ) { + tot_w += u3a_mark_noun(sit_u->bat); + } + if ( u3_none != sit_u->bas ) { + tot_w += u3a_mark_noun(sit_u->bas); + } + if ( u3_none != sit_u->loc ) { + tot_w += u3a_mark_noun(sit_u->loc); + tot_w += u3a_mark_noun(sit_u->lab); + if ( c3y == sit_u->fon_o ) { + tot_w += _cj_fink_mark(u3to(u3j_fink, sit_u->fin_p)); + } + } + return tot_w; +} + +/* _cj_mark_hank(): mark hank cache for gc. +*/ +static void +_cj_mark_hank(u3_noun kev, void* dat) +{ + c3_w* tot_w = (c3_w*) dat; + u3j_hank* han_u = u3to(u3j_hank, u3t(kev)); + *tot_w += u3a_mark_ptr(han_u); + if ( u3_none != han_u->hax ) { + *tot_w += u3a_mark_noun(han_u->hax); + *tot_w += u3j_site_mark(&(han_u->sit_u)); + } +} + +/* u3j_mark(): mark jet state for gc. +*/ +u3m_quac* +u3j_mark() +{ + u3m_quac** qua_u = c3_malloc(sizeof(*qua_u) * 7); + + qua_u[0] = c3_calloc(sizeof(*qua_u[0])); + qua_u[0]->nam_c = strdup("warm jet state"); + qua_u[0]->siz_w = u3h_mark(u3R->jed.war_p) * 4; + + qua_u[1] = c3_calloc(sizeof(*qua_u[1])); + qua_u[1]->nam_c = strdup("cold jet state"); + qua_u[1]->siz_w = u3h_mark(u3R->jed.cod_p) * 4; + + qua_u[2] = c3_calloc(sizeof(*qua_u[2])); + qua_u[2]->nam_c = strdup("hank cache"); + qua_u[2]->siz_w = u3h_mark(u3R->jed.han_p) * 4; + + qua_u[3] = c3_calloc(sizeof(*qua_u[3])); + qua_u[3]->nam_c = strdup("battery hash cache"); + qua_u[3]->siz_w = u3h_mark(u3R->jed.bas_p) * 4; + + qua_u[4] = c3_calloc(sizeof(*qua_u[4])); + qua_u[4]->nam_c = strdup("call site cache"); + u3h_walk_with(u3R->jed.han_p, _cj_mark_hank, &qua_u[4]->siz_w); + qua_u[4]->siz_w *= 4; + + c3_w sum_w = 0; + for ( c3_w i_w = 0; i_w < 5; i_w++ ) { + sum_w += qua_u[i_w]->siz_w; + } + + u3m_quac* tot_u = c3_calloc(sizeof(*tot_u)); + tot_u->nam_c = strdup("total jet stuff"); + + if ( u3R == &(u3H->rod_u) ) { + qua_u[5] = c3_calloc(sizeof(*qua_u[5])); + qua_u[5]->nam_c = strdup("hot jet state"); + qua_u[5]->siz_w = u3h_mark(u3R->jed.hot_p) * 4; + + sum_w += qua_u[5]->siz_w; + + qua_u[6] = NULL; + + tot_u->siz_w = sum_w; + tot_u->qua_u = qua_u; + + return tot_u; + } else { + qua_u[5] = NULL; + + tot_u->siz_w = sum_w; + tot_u->qua_u = qua_u; + + return tot_u; + } +} + +/* u3j_free_hank(): free an entry from the hank cache. +*/ +void +u3j_free_hank(u3_noun kev) +{ + u3j_hank* han_u = u3to(u3j_hank, u3t(kev)); + if ( u3_none != han_u->hax ) { + u3z(han_u->hax); + u3j_site_lose(&(han_u->sit_u)); + } + u3a_wfree(han_u); +} + +/* u3j_free(): free jet state. +*/ +void +u3j_free(void) +{ + u3h_walk(u3R->jed.han_p, u3j_free_hank); + u3h_free(u3R->jed.war_p); + u3h_free(u3R->jed.cod_p); + u3h_free(u3R->jed.han_p); + u3h_free(u3R->jed.bas_p); + if ( u3R == &(u3H->rod_u) ) { + u3h_free(u3R->jed.hot_p); + } +} + +/* u3j_reclaim(): clear ad-hoc persistent caches to reclaim memory. +*/ +void +u3j_reclaim(void) +{ + // re-establish the warm jet state + // + // XX might this reduce fragmentation? + // + // if ( &(u3H->rod_u) == u3R ) { + // u3j_ream(); + // } + // clear the jet hank cache + // + u3h_walk(u3R->jed.han_p, u3j_free_hank); + u3h_free(u3R->jed.han_p); + u3R->jed.han_p = u3h_new(); +} + +/* u3j_rewrite_compact(): rewrite jet state for compaction. + * + * NB: u3R->jed.han_p *must* be cleared (currently via u3j_reclaim above) + * since it contains hanks which are not nouns but have loom pointers. + * Alternately, rewrite the entries with u3h_walk, using u3j_mark as a + * template for how to walk. There's an untested attempt at this in git + * history at e8a307a. +*/ +void +u3j_rewrite_compact(void) +{ + u3h_rewrite(u3R->jed.war_p); + u3h_rewrite(u3R->jed.cod_p); + u3h_rewrite(u3R->jed.han_p); + u3h_rewrite(u3R->jed.bas_p); + + if ( u3R == &(u3H->rod_u) ) { + u3h_rewrite(u3R->jed.hot_p); + u3R->jed.hot_p = u3a_rewritten(u3R->jed.hot_p); + } + + u3R->jed.war_p = u3a_rewritten(u3R->jed.war_p); + u3R->jed.cod_p = u3a_rewritten(u3R->jed.cod_p); + u3R->jed.han_p = u3a_rewritten(u3R->jed.han_p); + u3R->jed.bas_p = u3a_rewritten(u3R->jed.bas_p); +} diff --git a/vere/pkg/noun/jets.h b/vere/pkg/noun/jets.h new file mode 100644 index 0000000..c81ab18 --- /dev/null +++ b/vere/pkg/noun/jets.h @@ -0,0 +1,322 @@ +/// @file + +#ifndef U3_JETS_H +#define U3_JETS_H + +#include "allocate.h" +#include "c3/c3.h" +#include "types.h" + + /** Noun semantics. + **/ +#if 0 ++= location $: pattern=(each static dynamic) + name=term + hooks=(map term axis) + == ++= static (each payload=* parent=location) ++= dynamic [where=axis parent=location] +:: ++= registry [roots=(map * location) parents=(list parent)] ++= parent (pair axis (map location location)) +:: ++= activation $: hot-index=@ud + drivers=(map axis @ud) + label=path + jit=* :: FIXME: should probably be (map battery *) + :: since there can be multiple batteries per location + == ++= hot-info $: reg=registry + hot-index=@ud + drivers=(map axis @ud) + label=path + == ++= bash @ :: battery hash (sha-256 based) +:: ++= hot (map bash hot-info) ++= cold (map battery=^ (pair bash registry)) ++= warm (map location activation) +#endif + + /** Data structures. + *** + *** All of these are transient structures allocated with malloc. + **/ + /* u3j_harm: jet arm. + */ + typedef struct _u3j_harm { + c3_c* fcs_c; // `.axe` or name + u3_noun (*fun_f)(u3_noun); // compute or 0 / semitransfer + // c3_o (*val_f)(u3_noun); // validate or 0 / retain + c3_o ice; // perfect (don't test) + c3_o tot; // total (never punts) + c3_o liv; // live (enabled) + c3_l axe_l; // computed/discovered axis + struct _u3j_core* cop_u; // containing core + } u3j_harm; + + /* u3j_hood: hook description. + */ + typedef struct _u3j_hood { + c3_c* nam_c; // hook name + c3_l axe_l; // hook axis (XX: direct) + c3_o kic_o; // hook is kick (vs. fragment) + c3_l sax_l; // hook subject axis (XX: direct) + } u3j_hood; + + /* u3j_core: driver definition. + */ + typedef struct _u3j_core { + c3_c* cos_c; // control string + c3_l axe_l; // axis to parent + struct _u3j_harm* arm_u; // blank-terminated static list + struct _u3j_core* dev_u; // blank-terminated static list + c3_c** bas_u; // blank-terminated static list + struct _u3j_hood* huc_u; // blank-terminated static list + struct _u3j_core* par_u; // dynamic parent pointer + c3_l jax_l; // index in global dashboard + } u3j_core; + + /* u3j_dash, u3_Dash, u3D: jet dashboard singleton + */ + typedef struct _u3j_dash { + u3j_core* dev_u; // null-terminated static list + c3_l len_l; // dynamic array length + c3_l all_l; // allocated length + u3j_core* ray_u; // dynamic array by axis + } u3j_dash; + + /* u3j_fist: a single step in a fine check. + */ + typedef struct { + u3_noun bat; // battery + u3_noun pax; // parent axis + } u3j_fist; + + /* u3j_fink: (fine check) enough data to verify a located core. + */ + typedef struct { + c3_w len_w; // number of fists + u3_noun sat; // static noun at end of check + u3j_fist fis_u[]; // fists + } u3j_fink; + + /* u3j_rite: site of a %fast, used to skip re-mining. + */ + typedef struct { + c3_o own_o; // rite owns fink? + u3_weak clu; // cached product of clue formula + u3p(u3j_fink) fin_p; // fine check + } u3j_rite; + + /* u3j_site: site of a kick (nock 9), used to cache call target. + */ + struct _u3n_prog; + typedef struct { + u3p(struct _u3n_prog) pog_p; // program for formula + u3_noun axe; // axis + u3_weak bat; // battery (for verification) + u3_weak bas; // hash of battery (for hot find) + u3_weak loc; // location (for reaming) + c3_o jet_o; // have jet driver? + c3_o fon_o; // site owns fink? + u3_weak lab; // label (for tracing) + u3j_core* cop_u; // jet core + u3j_harm* ham_u; // jet arm + u3p(u3j_fink) fin_p; // fine check + } u3j_site; + + /* u3j_hank: cached hook information. + */ + typedef struct { + u3_weak hax; // axis of hooked inner core + u3j_site sit_u; // call-site data + } u3j_hank; + + /** Globals. + **/ + /* u3_Dash: jet dashboard. + */ + extern u3j_dash u3j_Dash; +# define u3D u3j_Dash + + /** Functions. + **/ + /* u3j_boot(): initialize jet system. + */ + c3_w + u3j_boot(c3_o nuu_o); + + /* u3j_clear(): clear jet table to re-register. + */ + void + u3j_clear(void); + + /* u3j_cook(): + ** + ** Execute hook from core, call site cached by arbitrary c string + */ + u3_noun + u3j_cook(const c3_c* key_c, + u3_noun cor, + const c3_c* tam_c); + + /* u3j_hook(): + ** + ** Execute hook from core. + */ + u3_noun + u3j_hook(u3_noun cor, + const c3_c* tam_c); + + /* u3j_soft(): + ** + ** Execute hook from core, without jet. + */ + u3_noun + u3j_soft(u3_noun cor, + const c3_c* tam_c); + + /* u3j_kick(): try to kick by jet. If no kick, produce u3_none. + ** + ** `axe` is RETAINED by the caller; `cor` is RETAINED iff there + ** is no kick, TRANSFERRED if one. + */ + u3_weak + u3j_kick(u3_noun cor, u3_noun axe); + + /* u3j_kink(): kick either by jet or by nock. + */ + u3_noun + u3j_kink(u3_noun cor, + u3_noun axe); + + /* u3j_mine(): register core for jets. + */ + void + u3j_mine(u3_noun clu, + u3_noun cor); + + /* u3j_ream(): refresh after restoring from checkpoint. + */ + void + u3j_ream(void); + + /* u3j_stay(): extract cold state + */ + u3_noun + u3j_stay(void); + + /* u3j_load(): inject cold state + */ + void + u3j_load(u3_noun rel); + + /* u3j_reap(): promote jet state. + */ + void + u3j_reap(u3a_jets jed_u); + + /* u3j_take(): copy junior jet state. + */ + u3a_jets + u3j_take(u3a_jets jed_u); + + /* u3j_rite_mine(): mine cor with clu, using u3j_rite for caching + */ + void + u3j_rite_mine(u3j_rite* rit_u, u3_noun clu, u3_noun cor); + + /* u3j_rite_take(): copy junior rite references from src_u to dst_u. + */ + void + u3j_rite_take(u3j_rite* dst_u, u3j_rite* src_u); + + /* u3j_rite_merge(): copy rite references from src_u to dst_u, + ** losing old references + */ + void + u3j_rite_merge(u3j_rite* dst_u, u3j_rite* src_u); + + /* u3j_site_take(): copy junior site references. + */ + void + u3j_site_take(u3j_site* dst_u, u3j_site* src_u); + + /* u3j_site_merge(): copy site references from src_u to dst_u, + ** losing old references + */ + void + u3j_site_merge(u3j_site* dst_u, u3j_site* src_u); + + /* u3j_site_ream(): refresh u3j_site after restoring from checkpoint + */ + void + u3j_site_ream(u3j_site* sit_u); + + /* u3j_site_kick(): kick a core with a u3j_site cache. + */ + u3_weak + u3j_site_kick(u3_noun cor, u3j_site* sit_u); + + /* u3j_gate_prep(): prepare a locally cached gate to call repeatedly. + */ + void + u3j_gate_prep(u3j_site* sit_u, u3_noun cor); + + /* u3j_gate_slam(): slam a site prepared by u3j_gate_find() with sample. + */ + u3_noun + u3j_gate_slam(u3j_site* sit_u, u3_noun sam); + + /* u3j_gate_lose(): clean up site prepared by u3j_gate_find(). + */ + void + u3j_gate_lose(u3j_site* sit_u); + + /* u3j_rite_mark(): mark u3j_rite for gc. + */ + c3_w + u3j_rite_mark(u3j_rite* rit_u); + + /* u3j_rite_lose(): lose references of u3j_rite (but do not free). + */ + void + u3j_rite_lose(u3j_rite* rit_u); + + /* u3j_site_lose(): lose references of u3j_site (but do not free). + */ + void + u3j_site_lose(u3j_site* sit_u); + + /* u3j_site_mark(): mark u3j_site for gc. + */ + c3_w + u3j_site_mark(u3j_site* sit_u); + + /* u3j_mark(): mark jet state for gc. + */ + u3m_quac* + u3j_mark(); + + /* u3j_free(): free jet state. + */ + void + u3j_free(void); + + /* u3j_free_hank(): free an entry from the hank cache. + */ + void + u3j_free_hank(u3_noun kev); + + /* u3j_reclaim(): clear ad-hoc persistent caches to reclaim memory. + */ + void + u3j_reclaim(void); + + /* u3j_rewrite_compact(): rewrite jet state for compaction. + */ + void + u3j_rewrite_compact(void); + +#endif /* ifndef U3_JETS_H */ diff --git a/vere/pkg/noun/jets/137/tree.c b/vere/pkg/noun/jets/137/tree.c new file mode 100644 index 0000000..1ce21eb --- /dev/null +++ b/vere/pkg/noun/jets/137/tree.c @@ -0,0 +1,1182 @@ +#include "c3/c3.h" +#include "jets.h" +#include "jets/w.h" + + +static c3_c* no_hashes[] = { 0 }; + +static u3j_harm _137_hex_mimes_base16_en_a[] = {{".2", u3we_en_base16}, {}}; +static u3j_harm _137_hex_mimes_base16_de_a[] = {{".2", u3we_de_base16}, {}}; +static u3j_core _137_hex_mimes_base16_d[] = + { { "en", 7, _137_hex_mimes_base16_en_a, 0, no_hashes }, + { "de", 7, _137_hex_mimes_base16_de_a, 0, no_hashes }, + {} + }; +static u3j_core _137_hex_mimes_d[] = + { { "base16", 3, 0, _137_hex_mimes_base16_d, no_hashes }, + {} + }; + +static u3j_harm _137_hex_aes_ecba_en_a[] = {{".2", u3wea_ecba_en}, {}}; +static u3j_harm _137_hex_aes_ecba_de_a[] = {{".2", u3wea_ecba_de}, {}}; +static u3j_core _137_hex_aes_ecba_d[] = + { { "en", 7, _137_hex_aes_ecba_en_a, 0, no_hashes }, + { "de", 7, _137_hex_aes_ecba_de_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_hex_aes_ecbb_en_a[] = {{".2", u3wea_ecbb_en}, {}}; +static u3j_harm _137_hex_aes_ecbb_de_a[] = {{".2", u3wea_ecbb_de}, {}}; +static u3j_core _137_hex_aes_ecbb_d[] = + { { "en", 7, _137_hex_aes_ecbb_en_a, 0, no_hashes }, + { "de", 7, _137_hex_aes_ecbb_de_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_hex_aes_ecbc_en_a[] = {{".2", u3wea_ecbc_en}, {}}; +static u3j_harm _137_hex_aes_ecbc_de_a[] = {{".2", u3wea_ecbc_de}, {}}; +static u3j_core _137_hex_aes_ecbc_d[] = + { { "en", 7, _137_hex_aes_ecbc_en_a, 0, no_hashes }, + { "de", 7, _137_hex_aes_ecbc_de_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_hex_aes_cbca_en_a[] = {{".2", u3wea_cbca_en}, {}}; +static u3j_harm _137_hex_aes_cbca_de_a[] = {{".2", u3wea_cbca_de}, {}}; +static u3j_core _137_hex_aes_cbca_d[] = + { { "en", 7, _137_hex_aes_cbca_en_a, 0, no_hashes }, + { "de", 7, _137_hex_aes_cbca_de_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_hex_aes_cbcb_en_a[] = {{".2", u3wea_cbcb_en}, {}}; +static u3j_harm _137_hex_aes_cbcb_de_a[] = {{".2", u3wea_cbcb_de}, {}}; +static u3j_core _137_hex_aes_cbcb_d[] = + { { "en", 7, _137_hex_aes_cbcb_en_a, 0, no_hashes }, + { "de", 7, _137_hex_aes_cbcb_de_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_hex_aes_cbcc_en_a[] = {{".2", u3wea_cbcc_en}, {}}; +static u3j_harm _137_hex_aes_cbcc_de_a[] = {{".2", u3wea_cbcc_de}, {}}; +static u3j_core _137_hex_aes_cbcc_d[] = + { { "en", 7, _137_hex_aes_cbcc_en_a, 0, no_hashes }, + { "de", 7, _137_hex_aes_cbcc_de_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_hex_aes_siva_en_a[] = {{".2", u3wea_siva_en}, {}}; +static u3j_harm _137_hex_aes_siva_de_a[] = {{".2", u3wea_siva_de}, {}}; +static u3j_core _137_hex_aes_siva_d[] = + { { "en", 7, _137_hex_aes_siva_en_a, 0, no_hashes }, + { "de", 7, _137_hex_aes_siva_de_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_hex_aes_sivb_en_a[] = {{".2", u3wea_sivb_en}, {}}; +static u3j_harm _137_hex_aes_sivb_de_a[] = {{".2", u3wea_sivb_de}, {}}; +static u3j_core _137_hex_aes_sivb_d[] = + { { "en", 7, _137_hex_aes_sivb_en_a, 0, no_hashes }, + { "de", 7, _137_hex_aes_sivb_de_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_hex_aes_sivc_en_a[] = {{".2", u3wea_sivc_en}, {}}; +static u3j_harm _137_hex_aes_sivc_de_a[] = {{".2", u3wea_sivc_de}, {}}; +static u3j_core _137_hex_aes_sivc_d[] = + { { "en", 7, _137_hex_aes_sivc_en_a, 0, no_hashes }, + { "de", 7, _137_hex_aes_sivc_de_a, 0, no_hashes }, + {} + }; +static u3j_core _137_hex_aes_d[] = + { { "ecba", 7, 0, _137_hex_aes_ecba_d, no_hashes }, + { "ecbb", 7, 0, _137_hex_aes_ecbb_d, no_hashes }, + { "ecbc", 7, 0, _137_hex_aes_ecbc_d, no_hashes }, + { "cbca", 7, 0, _137_hex_aes_cbca_d, no_hashes }, + { "cbcb", 7, 0, _137_hex_aes_cbcb_d, no_hashes }, + { "cbcc", 7, 0, _137_hex_aes_cbcc_d, no_hashes }, + { "siva", 7, 0, _137_hex_aes_siva_d, no_hashes }, + { "sivb", 7, 0, _137_hex_aes_sivb_d, no_hashes }, + { "sivc", 7, 0, _137_hex_aes_sivc_d, no_hashes }, + {} + }; + +static u3j_harm _137_hex_leer_a[] = {{".2", u3we_leer}, {}}; +static u3j_harm _137_hex_lore_a[] = {{".2", u3we_lore}, {}}; +static u3j_harm _137_hex_loss_a[] = {{".2", u3we_loss}, {}}; +static u3j_harm _137_hex_lune_a[] = {{".2", u3we_lune}, {}}; + + +static u3j_harm _137_hex__crc32_a[] = {{".2", u3we_crc32}, {}}; + +static u3j_core _137_hex__crc_d[] = {{"crc32", 7, _137_hex__crc32_a, 0, no_hashes }, {}}; + + +static u3j_harm _137_hex_coed__ed_scad_a[] = {{".2", u3wee_scad}, {}}; +static u3j_harm _137_hex_coed__ed_scas_a[] = {{".2", u3wee_scas}, {}}; +static u3j_harm _137_hex_coed__ed_scap_a[] = {{".2", u3wee_scap}, {}}; + +static u3j_harm _137_hex_coed__ed_puck_a[] = {{".2", u3wee_puck}, {}}; +static u3j_harm _137_hex_coed__ed_luck_a[] = {{".2", u3wee_luck}, {}}; +static u3j_harm _137_hex_coed__ed_sign_a[] = {{".2", u3wee_sign}, {}}; +static u3j_harm _137_hex_coed__ed_sign_raw_a[] = {{".2", u3wee_sign_raw}, {}}; +static u3j_harm _137_hex_coed__ed_sign_octs_a[] = {{".2", u3wee_sign_octs}, {}}; +static u3j_harm _137_hex_coed__ed_sign_octs_raw_a[] = {{".2", u3wee_sign_octs_raw}, {}}; +static u3j_harm _137_hex_coed__ed_veri_octs_a[] = {{".2", u3wee_veri_octs}, {}}; +static u3j_harm _137_hex_coed__ed_veri_a[] = {{".2", u3wee_veri}, {}}; +static u3j_harm _137_hex_coed__ed_shar_a[] = {{".2", u3wee_shar}, {}}; +static u3j_harm _137_hex_coed__ed_slar_a[] = {{".2", u3wee_slar}, {}}; + +static u3j_harm _137_hex_coed__ed_smac_a[] = + {{".2", u3wee_smac}, {}}; + +static u3j_harm _137_hex_coed__ed_recs_a[] = + {{".2", u3wee_recs}, {}}; + +static u3j_harm _137_hex_coed__ed_point_neg_a[] = + {{".2", u3wee_point_neg}, {}}; + +static u3j_harm _137_hex_coed__ed_point_add_a[] = + {{".2", u3wee_point_add}, {}}; + +static u3j_harm _137_hex_coed__ed_scalarmult_a[] = + {{".2", u3wee_scalarmult}, {}}; + +static u3j_harm _137_hex_coed__ed_scalarmult_base_a[] = + {{".2", u3wee_scalarmult_base}, {}}; + +static u3j_harm _137_hex_coed__ed_add_scalarmult_scalarmult_base_a[] = + {{".2", u3wee_add_scalarmult_scalarmult_base}, {}}; + +static u3j_harm _137_hex_coed__ed_add_double_scalarmult_a[] = + {{".2", u3wee_add_double_scalarmult}, {}}; + +static u3j_core _137_hex_coed__ed_d[] = + { { "sign", 7, _137_hex_coed__ed_sign_a, 0, no_hashes }, + { "sign-raw", 7, _137_hex_coed__ed_sign_raw_a, 0, no_hashes }, + { "sign-octs", 7, _137_hex_coed__ed_sign_octs_a, 0, no_hashes }, + { "sign-octs-raw", 7, _137_hex_coed__ed_sign_octs_raw_a, 0, no_hashes }, + { "puck", 7, _137_hex_coed__ed_puck_a, 0, no_hashes }, + { "luck", 7, _137_hex_coed__ed_luck_a, 0, no_hashes }, + { "scad", 7, _137_hex_coed__ed_scad_a, 0, no_hashes }, + { "scas", 7, _137_hex_coed__ed_scas_a, 0, no_hashes }, + { "scap", 7, _137_hex_coed__ed_scap_a, 0, no_hashes }, + { "veri-octs", 7, _137_hex_coed__ed_veri_octs_a, 0, no_hashes }, + { "veri", 7, _137_hex_coed__ed_veri_a, 0, no_hashes }, + { "shar", 7, _137_hex_coed__ed_shar_a, 0, no_hashes }, + { "slar", 7, _137_hex_coed__ed_slar_a, 0, no_hashes }, + { "point-add", 7, _137_hex_coed__ed_point_add_a, 0, 0 }, + { "point-neg", 7, _137_hex_coed__ed_point_neg_a, 0, 0 }, + { "recs", 7, _137_hex_coed__ed_recs_a, 0, 0 }, + { "smac", 7, _137_hex_coed__ed_smac_a, 0, 0 }, + { "scalarmult", 7, _137_hex_coed__ed_scalarmult_a, 0, + no_hashes }, + { "scalarmult-base", 7, _137_hex_coed__ed_scalarmult_base_a, 0, + no_hashes }, + { "add-scalarmult-scalarmult-base", 7, + _137_hex_coed__ed_add_scalarmult_scalarmult_base_a, 0, + no_hashes }, + { "add-double-scalarmult", 7, + _137_hex_coed__ed_add_double_scalarmult_a, 0, + no_hashes }, + {} + }; + +static u3j_core _137_hex_coed_d[] = + { { "ed", 3, 0, _137_hex_coed__ed_d, no_hashes }, + {} + }; + +static u3j_harm _137_hex_hmac_hmac_a[] = {{".2", u3we_hmac}, {}}; +static u3j_core _137_hex_hmac_d[] = + { { "hmac", 7, _137_hex_hmac_hmac_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_hex_argon2_a[] = {{".2", u3we_argon2}, {}}; +static u3j_core _137_hex_argon_d[] = + { { "argon2", 511, _137_hex_argon2_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_hex_scr_pbk_a[] = {{".2", u3wes_pbk, c3y}, {}}; +static u3j_harm _137_hex_scr_pbl_a[] = {{".2", u3wes_pbl, c3y}, {}}; +static u3j_harm _137_hex_scr_hsh_a[] = {{".2", u3wes_hsh, c3y}, {}}; +static u3j_harm _137_hex_scr_hsl_a[] = {{".2", u3wes_hsl, c3y}, {}}; +static u3j_core _137_hex_scr_d[] = + { { "pbk", 7, _137_hex_scr_pbk_a, 0, no_hashes }, + { "pbl", 7, _137_hex_scr_pbl_a, 0, no_hashes }, + { "hsh", 7, _137_hex_scr_hsh_a, 0, no_hashes }, + { "hsl", 7, _137_hex_scr_hsl_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_hex_secp_secp256k1_make_a[] = {{".2", u3we_make, c3y}, {}}; +static u3j_harm _137_hex_secp_secp256k1_sign_a[] = {{".2", u3we_sign, c3y}, {}}; +static u3j_harm _137_hex_secp_secp256k1_reco_a[] = {{".2", u3we_reco, c3y}, {}}; + +static u3j_harm _137_hex_secp_secp256k1_schnorr_sosi_a[] = + {{".2", u3we_sosi}, {}}; +static u3j_harm _137_hex_secp_secp256k1_schnorr_sove_a[] = + {{".2", u3we_sove}, {}}; +static u3j_core _137_hex_secp_secp256k1_schnorr_d[] = + { { "sosi", 7, + _137_hex_secp_secp256k1_schnorr_sosi_a, 0, + no_hashes }, + { "sove", 7, + _137_hex_secp_secp256k1_schnorr_sove_a, 0, + no_hashes }, + {} + }; + +static u3j_core _137_hex_secp_secp256k1_d[] = + { { "make", 7, _137_hex_secp_secp256k1_make_a, 0, no_hashes }, + { "sign", 7, _137_hex_secp_secp256k1_sign_a, 0, no_hashes }, + { "reco", 7, _137_hex_secp_secp256k1_reco_a, 0, no_hashes }, + { "schnorr", 7, 0, + _137_hex_secp_secp256k1_schnorr_d, + no_hashes }, + {} + }; +static u3j_core _137_hex_secp_d[] = + { { "secp256k1", 3, 0, _137_hex_secp_secp256k1_d, no_hashes }, + {} + }; + + +static u3j_harm _137_hex_kecc_k224_a[] = + {{".2", u3we_kecc224, c3y, c3y, c3y}, {}}; +static u3j_harm _137_hex_kecc_k256_a[] = + {{".2", u3we_kecc256, c3y, c3y, c3y}, {}}; +static u3j_harm _137_hex_kecc_k384_a[] = + {{".2", u3we_kecc384, c3y, c3y, c3y}, {}}; +static u3j_harm _137_hex_kecc_k512_a[] = + {{".2", u3we_kecc512, c3y, c3y, c3y}, {}}; +static u3j_core _137_hex_kecc_d[] = + { { "k224", 7, _137_hex_kecc_k224_a, 0, no_hashes }, + { "k256", 7, _137_hex_kecc_k256_a, 0, no_hashes }, + { "k384", 7, _137_hex_kecc_k384_a, 0, no_hashes }, + { "k512", 7, _137_hex_kecc_k512_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_hex_ripemd_160_a[] = {{".2", u3we_ripe, c3y}, {}}; +static u3j_core _137_hex_ripe_d[] = + { { "ripemd160", 7, _137_hex_ripemd_160_a, 0, no_hashes }, + {} + }; + + + +/* layer five + */ +static u3j_harm _137_pen_cell_a[] = {{".2", u3wf_cell}, {}}; +static u3j_harm _137_pen_comb_a[] = {{".2", u3wf_comb}, {}}; +static u3j_harm _137_pen_cons_a[] = {{".2", u3wf_cons}, {}}; +static u3j_harm _137_pen_core_a[] = {{".2", u3wf_core}, {}}; +static u3j_harm _137_pen_face_a[] = {{".2", u3wf_face}, {}}; +static u3j_harm _137_pen_fitz_a[] = {{".2", u3wf_fitz}, {}}; +static u3j_harm _137_pen_fork_a[] = {{".2", u3wf_fork}, {}}; + +static u3j_harm _137_pen_look_a[] = {{".2", u3wf_look}, {}}; +static u3j_harm _137_pen_loot_a[] = {{".2", u3wf_loot}, {}}; + +static u3j_harm _137_pen__ut_crop_a[] = {{".2", u3wfu_crop}, {}}; +static u3j_harm _137_pen__ut_fish_a[] = {{".2", u3wfu_fish}, {}}; +static u3j_harm _137_pen__ut_fuse_a[] = {{".2", u3wfu_fuse}, {}}; +static u3j_harm _137_pen__ut_mint_a[] = {{".2", u3wfu_mint}, {}}; +static u3j_harm _137_pen__ut_mull_a[] = {{".2", u3wfu_mull}, {}}; + +static u3j_harm _137_pen__ut_nest_dext_a[] = {{".2", u3wfu_nest_dext}, {}}; +static u3j_core _137_pen__ut_nest_in_d[] = + { + { "nest-dext", 3, _137_pen__ut_nest_dext_a, 0, no_hashes }, + {} + }; +static u3j_core _137_pen__ut_nest_d[] = + { + { "nest-in", 7, 0, _137_pen__ut_nest_in_d, no_hashes }, + {} + }; + +static u3j_harm _137_pen__ut_rest_a[] = {{".2", u3wfu_rest}, {}}; + +static u3j_core _137_pen__ut_d[] = + { + { "crop", 7, _137_pen__ut_crop_a, 0, no_hashes }, + { "fish", 7, _137_pen__ut_fish_a, 0, no_hashes }, + { "fuse", 7, _137_pen__ut_fuse_a, 0, no_hashes }, + { "mint", 7, _137_pen__ut_mint_a, 0, no_hashes }, + { "mull", 7, _137_pen__ut_mull_a, 0, no_hashes }, + { "nest", 7, 0, _137_pen__ut_nest_d, no_hashes }, + { "rest", 7, _137_pen__ut_rest_a, 0, no_hashes }, + {} + }; + +static u3j_hood _137_pen__ut_ho[] = + { { "ar", 12282 }, + { "fan", 28, c3n }, + { "rib", 58, c3n }, + { "vet", 59, c3n }, + + { "blow", 6015 }, + { "burp", 342 }, + { "busk", 1373 }, + { "buss", 374 }, + { "crop", 1494 }, + { "duck", 1524 }, + { "dune", 2991 }, + { "dunk", 3066 }, + { "epla", 12206 }, + { "emin", 1534 }, + { "emul", 6134 }, + { "feel", 1502 }, + { "felt", 94 }, + { "fine", 49086 }, + { "fire", 4 }, + { "fish", 6006 }, + { "fond", 12283 }, + { "fund", 6014 }, + // XX +funk is not part of +ut, and this hook appears to be unused + // remove from here and the +ut hint + // + { "funk", 0xbefafa, c3y, 31 }, + { "fuse", 24021 }, + { "gain", 380 }, + { "lose", 0x2fefe }, + { "mile", 382 }, + { "mine", 372 }, + { "mint", 49083 }, + { "moot", 0x2feff }, + { "mull", 24020 }, + { "nest", 92 }, + { "peel", 1526 }, + { "play", 3006 }, + { "peek", 1532 }, + { "repo", 22 }, + { "rest", 6102 }, + { "tack", 6007 }, + { "toss", 24540 }, + { "wrap", 6137 }, + {}, + }; + + +static u3j_hood _137_pen_ho[] = { + { "ap", 22 }, + { "ut", 86 }, + {}, +}; + + +/* layer four + */ +static u3j_harm _137_qua_trip_a[] = {{".2", u3we_trip}, {}}; + +static u3j_harm _137_qua_slaw_a[] = {{".2", u3we_slaw}, {}}; +static u3j_harm _137_qua_scot_a[] = {{".2", u3we_scot}, {}}; +static u3j_harm _137_qua_scow_a[] = {{".2", u3we_scow}, {}}; + +static u3j_harm _137_qua__po_ind_a[] = {{".2", u3wcp_ind}, {}}; +static u3j_harm _137_qua__po_ins_a[] = {{".2", u3wcp_ins}, {}}; +static u3j_harm _137_qua__po_tod_a[] = {{".2", u3wcp_tod}, {}}; +static u3j_harm _137_qua__po_tos_a[] = {{".2", u3wcp_tos}, {}}; +static u3j_core _137_qua__po_d[] = + { { "ind", 7, _137_qua__po_ind_a, 0, no_hashes }, + { "ins", 7, _137_qua__po_ins_a, 0, no_hashes }, + { "tod", 7, _137_qua__po_tod_a, 0, no_hashes }, + { "tos", 7, _137_qua__po_tos_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_qua__bend_fun_a[] = {{".2", u3we_bend_fun}, {}}; +static u3j_core _137_qua__bend_d[] = + { { "fun", 7, _137_qua__bend_fun_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_qua__cold_fun_a[] = {{".2", u3we_cold_fun}, {}}; +static u3j_core _137_qua__cold_d[] = + { { "fun", 7, _137_qua__cold_fun_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_qua__cook_fun_a[] = {{".2", u3we_cook_fun}, {}}; +static u3j_core _137_qua__cook_d[] = + { { "fun", 7, _137_qua__cook_fun_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_qua__comp_fun_a[] = {{".2", u3we_comp_fun}, {}}; +static u3j_core _137_qua__comp_d[] = + { { "fun", 7, _137_qua__comp_fun_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_qua__easy_fun_a[] = {{".2", u3we_easy_fun}, {}}; +static u3j_core _137_qua__easy_d[] = + { { "fun", 7, _137_qua__easy_fun_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_qua__glue_fun_a[] = {{".2", u3we_glue_fun}, {}}; +static u3j_core _137_qua__glue_d[] = + { { "fun", 7, _137_qua__glue_fun_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_qua__here_fun_a[] = {{".2", u3we_here_fun}, {}}; +static u3j_core _137_qua__here_d[] = + { { "fun", 7, _137_qua__here_fun_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_qua__just_fun_a[] = {{".2", u3we_just_fun}, {}}; +static u3j_core _137_qua__just_d[] = + { { "fun", 7, _137_qua__just_fun_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_qua__mask_fun_a[] = {{".2", u3we_mask_fun}, {}}; +static u3j_core _137_qua__mask_d[] = + { { "fun", 7, _137_qua__mask_fun_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_qua__shim_fun_a[] = {{".2", u3we_shim_fun}, {}}; +static u3j_core _137_qua__shim_d[] = + { { "fun", 7, _137_qua__shim_fun_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_qua__stag_fun_a[] = {{".2", u3we_stag_fun}, {}}; +static u3j_core _137_qua__stag_d[] = + { { "fun", 7, _137_qua__stag_fun_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_qua__stew_fun_a[] = {{".2", u3we_stew_fun}, {}}; +static u3j_core _137_qua__stew_d[] = + { { "fun", 31, _137_qua__stew_fun_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_qua__stir_fun_a[] = {{".2", u3we_stir_fun}, {}}; +static u3j_core _137_qua__stir_d[] = + { { "fun", 7, _137_qua__stir_fun_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_qua_pfix_a[] = {{".2", u3we_pfix}, {}}; + +static u3j_harm _137_qua_plug_a[] = {{".2", u3we_plug}, {}}; +static u3j_harm _137_qua_pose_a[] = {{".2", u3we_pose}, {}}; + +static u3j_harm _137_qua_sfix_a[] = {{".2", u3we_sfix}, {}}; + +static u3j_harm _137_qua_mink_a[] = {{".2", u3we_mink}, {}}; +static u3j_harm _137_qua_mole_a[] = {{".2", u3we_mole}, {}}; +static u3j_harm _137_qua_mule_a[] = {{".2", u3we_mule}, {}}; + + +static u3j_hood _137_qua_ho[] = { + { "mute", 0x2fbabe }, + { "show", 24406 }, + { "mure", 1374 }, + {}, +}; + + +/* layer three + */ +static u3j_harm _137_tri__cofl__drg_a[] = {{".2", u3wef_drg}, {}}; +static u3j_harm _137_tri__cofl__lug_a[] = {{".2", u3wef_lug}, {}}; +static u3j_core _137_tri__cofl_d[] = + { { "drg", 7, _137_tri__cofl__drg_a, 0, no_hashes }, + { "lug", 7, _137_tri__cofl__lug_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_tri__rd_add_a[] = {{".2", u3wer_add}, {}}; +static u3j_harm _137_tri__rd_sub_a[] = {{".2", u3wer_sub}, {}}; +static u3j_harm _137_tri__rd_mul_a[] = {{".2", u3wer_mul}, {}}; +static u3j_harm _137_tri__rd_div_a[] = {{".2", u3wer_div}, {}}; +static u3j_harm _137_tri__rd_sqt_a[] = {{".2", u3wer_sqt}, {}}; +static u3j_harm _137_tri__rd_fma_a[] = {{".2", u3wer_fma}, {}}; +static u3j_harm _137_tri__rd_lth_a[] = {{".2", u3wer_lth}, {}}; +static u3j_harm _137_tri__rd_lte_a[] = {{".2", u3wer_lte}, {}}; +static u3j_harm _137_tri__rd_equ_a[] = {{".2", u3wer_equ}, {}}; +static u3j_harm _137_tri__rd_gte_a[] = {{".2", u3wer_gte}, {}}; +static u3j_harm _137_tri__rd_gth_a[] = {{".2", u3wer_gth}, {}}; +static u3j_core _137_tri__rd_d[] = + { { "add", 7, _137_tri__rd_add_a, 0, no_hashes }, + { "sub", 7, _137_tri__rd_sub_a, 0, no_hashes }, + { "mul", 7, _137_tri__rd_mul_a, 0, no_hashes }, + { "div", 7, _137_tri__rd_div_a, 0, no_hashes }, + { "sqt", 7, _137_tri__rd_sqt_a, 0, no_hashes }, + { "fma", 7, _137_tri__rd_fma_a, 0, no_hashes }, + { "lth", 7, _137_tri__rd_lth_a, 0, no_hashes }, + { "lte", 7, _137_tri__rd_lte_a, 0, no_hashes }, + { "equ", 7, _137_tri__rd_equ_a, 0, no_hashes }, + { "gte", 7, _137_tri__rd_gte_a, 0, no_hashes }, + { "gth", 7, _137_tri__rd_gth_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_tri__rs_add_a[] = {{".2", u3wet_add}, {}}; +static u3j_harm _137_tri__rs_sub_a[] = {{".2", u3wet_sub}, {}}; +static u3j_harm _137_tri__rs_mul_a[] = {{".2", u3wet_mul}, {}}; +static u3j_harm _137_tri__rs_div_a[] = {{".2", u3wet_div}, {}}; +static u3j_harm _137_tri__rs_sqt_a[] = {{".2", u3wet_sqt}, {}}; +static u3j_harm _137_tri__rs_fma_a[] = {{".2", u3wet_fma}, {}}; +static u3j_harm _137_tri__rs_lth_a[] = {{".2", u3wet_lth}, {}}; +static u3j_harm _137_tri__rs_lte_a[] = {{".2", u3wet_lte}, {}}; +static u3j_harm _137_tri__rs_equ_a[] = {{".2", u3wet_equ}, {}}; +static u3j_harm _137_tri__rs_gte_a[] = {{".2", u3wet_gte}, {}}; +static u3j_harm _137_tri__rs_gth_a[] = {{".2", u3wet_gth}, {}}; +static u3j_core _137_tri__rs_d[] = + { { "add", 7, _137_tri__rs_add_a, 0, no_hashes }, + { "sub", 7, _137_tri__rs_sub_a, 0, no_hashes }, + { "mul", 7, _137_tri__rs_mul_a, 0, no_hashes }, + { "div", 7, _137_tri__rs_div_a, 0, no_hashes }, + { "sqt", 7, _137_tri__rs_sqt_a, 0, no_hashes }, + { "fma", 7, _137_tri__rs_fma_a, 0, no_hashes }, + { "lth", 7, _137_tri__rs_lth_a, 0, no_hashes }, + { "lte", 7, _137_tri__rs_lte_a, 0, no_hashes }, + { "equ", 7, _137_tri__rs_equ_a, 0, no_hashes }, + { "gte", 7, _137_tri__rs_gte_a, 0, no_hashes }, + { "gth", 7, _137_tri__rs_gth_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_tri__rq_add_a[] = {{".2", u3weq_add}, {}}; +static u3j_harm _137_tri__rq_sub_a[] = {{".2", u3weq_sub}, {}}; +static u3j_harm _137_tri__rq_mul_a[] = {{".2", u3weq_mul}, {}}; +static u3j_harm _137_tri__rq_div_a[] = {{".2", u3weq_div}, {}}; +static u3j_harm _137_tri__rq_sqt_a[] = {{".2", u3weq_sqt}, {}}; +static u3j_harm _137_tri__rq_fma_a[] = {{".2", u3weq_fma}, {}}; +static u3j_harm _137_tri__rq_lth_a[] = {{".2", u3weq_lth}, {}}; +static u3j_harm _137_tri__rq_lte_a[] = {{".2", u3weq_lte}, {}}; +static u3j_harm _137_tri__rq_equ_a[] = {{".2", u3weq_equ}, {}}; +static u3j_harm _137_tri__rq_gte_a[] = {{".2", u3weq_gte}, {}}; +static u3j_harm _137_tri__rq_gth_a[] = {{".2", u3weq_gth}, {}}; +static u3j_core _137_tri__rq_d[] = + { { "add", 7, _137_tri__rq_add_a, 0, no_hashes }, + { "sub", 7, _137_tri__rq_sub_a, 0, no_hashes }, + { "mul", 7, _137_tri__rq_mul_a, 0, no_hashes }, + { "div", 7, _137_tri__rq_div_a, 0, no_hashes }, + { "sqt", 7, _137_tri__rq_sqt_a, 0, no_hashes }, + { "fma", 7, _137_tri__rq_fma_a, 0, no_hashes }, + { "lth", 7, _137_tri__rq_lth_a, 0, no_hashes }, + { "lte", 7, _137_tri__rq_lte_a, 0, no_hashes }, + { "equ", 7, _137_tri__rq_equ_a, 0, no_hashes }, + { "gte", 7, _137_tri__rq_gte_a, 0, no_hashes }, + { "gth", 7, _137_tri__rq_gth_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_tri__rh_add_a[] = {{".2", u3wes_add}, {}}; +static u3j_harm _137_tri__rh_sub_a[] = {{".2", u3wes_sub}, {}}; +static u3j_harm _137_tri__rh_mul_a[] = {{".2", u3wes_mul}, {}}; +static u3j_harm _137_tri__rh_div_a[] = {{".2", u3wes_div}, {}}; +static u3j_harm _137_tri__rh_sqt_a[] = {{".2", u3wes_sqt}, {}}; +static u3j_harm _137_tri__rh_fma_a[] = {{".2", u3wes_fma}, {}}; +static u3j_harm _137_tri__rh_lth_a[] = {{".2", u3wes_lth}, {}}; +static u3j_harm _137_tri__rh_lte_a[] = {{".2", u3wes_lte}, {}}; +static u3j_harm _137_tri__rh_equ_a[] = {{".2", u3wes_equ}, {}}; +static u3j_harm _137_tri__rh_gte_a[] = {{".2", u3wes_gte}, {}}; +static u3j_harm _137_tri__rh_gth_a[] = {{".2", u3wes_gth}, {}}; +static u3j_core _137_tri__rh_d[] = + { { "add", 7, _137_tri__rh_add_a, 0, no_hashes }, + { "sub", 7, _137_tri__rh_sub_a, 0, no_hashes }, + { "mul", 7, _137_tri__rh_mul_a, 0, no_hashes }, + { "div", 7, _137_tri__rh_div_a, 0, no_hashes }, + { "sqt", 7, _137_tri__rh_sqt_a, 0, no_hashes }, + { "fma", 7, _137_tri__rh_fma_a, 0, no_hashes }, + { "lth", 7, _137_tri__rh_lth_a, 0, no_hashes }, + { "lte", 7, _137_tri__rh_lte_a, 0, no_hashes }, + { "equ", 7, _137_tri__rh_equ_a, 0, no_hashes }, + { "gte", 7, _137_tri__rh_gte_a, 0, no_hashes }, + { "gth", 7, _137_tri__rh_gth_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_tri__og_raw_a[] = {{".2", u3weo_raw}, {}}; +static u3j_core _137_tri__og_d[] = + { { "raw", 7, _137_tri__og_raw_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_tri__sha_sha1_a[] = {{".2", u3we_sha1}, {}}; +static u3j_core _137_tri__sha_d[] = + { { "sha1", 7, _137_tri__sha_sha1_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_tri_shax_a[] = {{".2", u3we_shax}, {}}; +static u3j_harm _137_tri_shay_a[] = {{".2", u3we_shay}, {}}; +static u3j_harm _137_tri_shas_a[] = {{".2", u3we_shas}, {}}; +static u3j_harm _137_tri_shal_a[] = {{".2", u3we_shal}, {}}; + +static u3j_harm _137_ob_fynd_a[] = {{".2", u3we_fynd_ob}, {}}; +static u3j_harm _137_ob_fein_a[] = {{".2", u3we_fein_ob}, {}}; +static u3j_core _137_ob_d[] = { + { "fein", 7, _137_ob_fein_a, 0, no_hashes }, + { "fynd", 7, _137_ob_fynd_a, 0, no_hashes }, + {} +}; +static u3j_hood _137_ob_ho[] = { + { "fein", 42 }, + { "fynd", 20 }, + {}, +}; + + +static u3j_hood _137_tri_ho[] = { + { "ob", 20 }, + { "yore", 5462 }, + { "year", 44975 }, + {}, +}; + + +/* layer two + */ +static u3j_harm _137_two_find_a[] = {{".2", u3wb_find, c3y}, {}}; +static u3j_harm _137_two_flop_a[] = {{".2", u3wb_flop, c3y}, {}}; +static u3j_harm _137_two_lent_a[] = {{".2", u3wb_lent, c3y}, {}}; +static u3j_harm _137_two_levy_a[] = {{".2", u3wb_levy, c3y}, {}}; +static u3j_harm _137_two_lien_a[] = {{".2", u3wb_lien, c3y}, {}}; +static u3j_harm _137_two_murn_a[] = {{".2", u3wb_murn, c3y}, {}}; +static u3j_harm _137_two_need_a[] = {{".2", u3wb_need, c3y}, {}}; +static u3j_harm _137_two_reap_a[] = {{".2", u3wb_reap, c3y}, {}}; +static u3j_harm _137_two_reel_a[] = {{".2", u3wb_reel, c3y}, {}}; +static u3j_harm _137_two_roll_a[] = {{".2", u3wb_roll, c3y}, {}}; +static u3j_harm _137_two_skid_a[] = {{".2", u3wb_skid, c3y}, {}}; +static u3j_harm _137_two_skim_a[] = {{".2", u3wb_skim, c3y}, {}}; +static u3j_harm _137_two_skip_a[] = {{".2", u3wb_skip, c3y}, {}}; +static u3j_harm _137_two_scag_a[] = {{".2", u3wb_scag, c3y}, {}}; +static u3j_harm _137_two_slag_a[] = {{".2", u3wb_slag, c3y}, {}}; +static u3j_harm _137_two_snag_a[] = {{".2", u3wb_snag, c3y}, {}}; +static u3j_harm _137_two_sort_a[] = {{".2", u3wb_sort, c3y}, {}}; +static u3j_harm _137_two_turn_a[] = {{".2", u3wb_turn, c3y}, {}}; +static u3j_harm _137_two_weld_a[] = {{".2", u3wb_weld, c3y}, {}}; +static u3j_harm _137_two_welp_a[] = {{".2", u3wb_welp, c3y}, {}}; +static u3j_harm _137_two_zing_a[] = {{".2", u3wb_zing, c3y}, {}}; + +static u3j_harm _137_two_bex_a[] = {{".2", u3wc_bex, c3y}, {}}; +static u3j_harm _137_two_can_a[] = {{".2", u3wc_can, c3y}, {}}; +static u3j_harm _137_two_cat_a[] = {{".2", u3wc_cat, c3y}, {}}; +static u3j_harm _137_two_con_a[] = {{".2", u3wc_con, c3y}, {}}; +static u3j_harm _137_two_cut_a[] = {{".2", u3wc_cut, c3y}, {}}; +static u3j_harm _137_two_dis_a[] = {{".2", u3wc_dis, c3y}, {}}; +static u3j_harm _137_two_dor_a[] = {{".2", u3wc_dor, c3y}, {}}; +static u3j_harm _137_two_end_a[] = {{".2", u3wc_end, c3y}, {}}; +static u3j_harm _137_two_gor_a[] = {{".2", u3wc_gor, c3y}, {}}; +static u3j_harm _137_two_lsh_a[] = {{".2", u3wc_lsh, c3y}, {}}; +static u3j_harm _137_two_met_a[] = {{".2", u3wc_met, c3y}, {}}; +static u3j_harm _137_two_mix_a[] = {{".2", u3wc_mix, c3y}, {}}; +static u3j_harm _137_two_mor_a[] = {{".2", u3wc_mor, c3y}, {}}; +static u3j_harm _137_two_mug_a[] = {{".2", u3wc_mug, c3y}, {}}; +static u3j_harm _137_two_muk_a[] = {{".2", u3wc_muk, c3y}, {}}; +static u3j_harm _137_two_pow_a[] = {{".2", u3wc_pow, c3y}, {}}; +static u3j_harm _137_two_rap_a[] = {{".2", u3wc_rap, c3y}, {}}; +static u3j_harm _137_two_rep_a[] = {{".2", u3wc_rep, c3y}, {}}; +static u3j_harm _137_two_rev_a[] = {{".2", u3wc_rev, c3y}, {}}; +static u3j_harm _137_two_rip_a[] = {{".2", u3wc_rip, c3y}, {}}; +static u3j_harm _137_two_rsh_a[] = {{".2", u3wc_rsh, c3y}, {}}; +static u3j_harm _137_two_swp_a[] = {{".2", u3wc_swp, c3y}, {}}; +static u3j_harm _137_two_sqt_a[] = {{".2", u3wc_sqt, c3y}, {}}; +static u3j_harm _137_two_xeb_a[] = {{".2", u3wc_xeb, c3y}, {}}; + +static u3j_harm _137_two__in_bif_a[] = {{".2", u3wdi_bif}, {}}; +static u3j_harm _137_two__in_del_a[] = {{".2", u3wdi_del}, {}}; +static u3j_harm _137_two__in_dif_a[] = {{".2", u3wdi_dif}, {}}; +static u3j_harm _137_two__in_gas_a[] = {{".2", u3wdi_gas}, {}}; +static u3j_harm _137_two__in_has_a[] = {{".2", u3wdi_has}, {}}; +static u3j_harm _137_two__in_int_a[] = {{".2", u3wdi_int}, {}}; +static u3j_harm _137_two__in_put_a[] = {{".2", u3wdi_put}, {}}; +static u3j_harm _137_two__in_rep_a[] = {{".2", u3wdi_rep}, {}}; +static u3j_harm _137_two__in_run_a[] = {{".2", u3wdi_run}, {}}; +static u3j_harm _137_two__in_tap_a[] = {{".2", u3wdi_tap}, {}}; +static u3j_harm _137_two__in_wyt_a[] = {{".2", u3wdi_wyt}, {}}; +static u3j_harm _137_two__in_uni_a[] = {{".2", u3wdi_uni}, {}}; + +static u3j_harm _137_two__by_all_a[] = {{".2", u3wdb_all, c3y}, {}}; +static u3j_harm _137_two__by_any_a[] = {{".2", u3wdb_any, c3y}, {}}; +static u3j_harm _137_two__by_apt_a[] = {{".2", u3wdb_apt, c3y}, {}}; + +static u3j_harm _137_two__by_del_a[] = {{".2", u3wdb_del, c3y}, {}}; +static u3j_harm _137_two__by_dif_a[] = {{".2", u3wdb_dif, c3y}, {}}; +static u3j_harm _137_two__by_gas_a[] = {{".2", u3wdb_gas, c3y}, {}}; +static u3j_harm _137_two__by_get_a[] = {{".2", u3wdb_get, c3y}, {}}; +static u3j_harm _137_two__by_has_a[] = {{".2", u3wdb_has, c3y}, {}}; +static u3j_harm _137_two__by_int_a[] = {{".2", u3wdb_int, c3y}, {}}; +static u3j_harm _137_two__by_jab_a[] = {{".2", u3wdb_jab, c3y}, {}}; +static u3j_harm _137_two__by_key_a[] = {{".2", u3wdb_key, c3y}, {}}; +static u3j_harm _137_two__by_put_a[] = {{".2", u3wdb_put, c3y}, {}}; +static u3j_harm _137_two__by_rep_a[] = {{".2", u3wdb_rep, c3y}, {}}; +static u3j_harm _137_two__by_run_a[] = {{".2", u3wdb_run, c3y}, {}}; +static u3j_harm _137_two__by_tap_a[] = {{".2", u3wdb_tap, c3y}, {}}; +static u3j_harm _137_two__by_uni_a[] = {{".2", u3wdb_uni, c3y}, {}}; +static u3j_harm _137_two__by_urn_a[] = {{".2", u3wdb_urn, c3y}, {}}; +static u3j_harm _137_two__by_wyt_a[] = {{".2", u3wdb_wyt, c3y}, {}}; + +static u3j_harm _137_two_cue_a[] = {{".2", u3we_cue}, {}}; +static u3j_harm _137_two_jam_a[] = {{".2", u3we_jam}, {}}; +static u3j_harm _137_two_mat_a[] = {{".2", u3we_mat}, {}}; +static u3j_harm _137_two_rub_a[] = {{".2", u3we_rub}, {}}; + + + +/* layer one + */ +static u3j_harm _137_one_add_a[] = {{".2", u3wa_add, c3y}, {}}; +static u3j_harm _137_one_dec_a[] = {{".2", u3wa_dec, c3y}, {}}; +static u3j_harm _137_one_div_a[] = {{".2", u3wa_div, c3y}, {}}; +static u3j_harm _137_one_dvr_a[] = {{".2", u3wc_dvr, c3y}, {}}; +static u3j_harm _137_one_gte_a[] = {{".2", u3wa_gte, c3y}, {}}; +static u3j_harm _137_one_gth_a[] = {{".2", u3wa_gth, c3y}, {}}; +static u3j_harm _137_one_lte_a[] = {{".2", u3wa_lte, c3y}, {}}; +static u3j_harm _137_one_lth_a[] = {{".2", u3wa_lth, c3y}, {}}; +static u3j_harm _137_one_max_a[] = {{".2", u3wa_max, c3y}, {}}; +static u3j_harm _137_one_min_a[] = {{".2", u3wa_min, c3y}, {}}; +static u3j_harm _137_one_mod_a[] = {{".2", u3wa_mod, c3y}, {}}; +static u3j_harm _137_one_mul_a[] = {{".2", u3wa_mul, c3y}, {}}; +static u3j_harm _137_one_sub_a[] = {{".2", u3wa_sub, c3y}, {}}; + +static u3j_harm _137_one_cap_a[] = {{".2", u3wc_cap, c3y}, {}}; +static u3j_harm _137_one_peg_a[] = {{".2", u3wc_peg, c3y}, {}}; +static u3j_harm _137_one_mas_a[] = {{".2", u3wc_mas, c3y}, {}}; + +static u3j_harm _137_lull_plot_fax_a[] = {{".2", u3wg_plot_fax, c3y}, {}}; +static u3j_harm _137_lull_plot_met_a[] = {{".2", u3wg_plot_met, c3y}, {}}; + +static u3j_core _137_lull_plot_d[] = + { { "fax", 7, _137_lull_plot_fax_a, 0, no_hashes }, + { "met", 7, _137_lull_plot_met_a, 0, no_hashes }, + {} + }; + +static u3j_core _137_lull_d[] = + { { "plot", 31, 0, _137_lull_plot_d, no_hashes }, + {} + }; + +static u3j_harm _137_hex_blake3_hash_a[] = {{".2", u3we_blake3_hash, c3y}, {}}; +static u3j_harm _137_hex_blake3_compress_a[] = {{".2", u3we_blake3_compress, c3y}, {}}; +static u3j_harm _137_hex_blake3_chunk_output_a[] = {{".2", u3we_blake3_chunk_output, c3y}, {}}; + +static u3j_core _137_hex_blake3_d[] = + { { "hash", 7, _137_hex_blake3_hash_a, 0, no_hashes }, + { "chunk-output", 7, _137_hex_blake3_chunk_output_a, 0, no_hashes }, + {} + }; + + +static u3j_core _137_hex_blake3_impl_d[] = + { { "compress", 7, _137_hex_blake3_compress_a, 0, no_hashes }, + { "blake3", 7, 0, _137_hex_blake3_d, no_hashes }, + {} + }; + +static u3j_harm _137_hex_blake2b_a[] = {{".2", u3we_blake2b, c3y}, {}}; + +static u3j_core _137_hex_blake_d[] = + { { "blake2b", 7, _137_hex_blake2b_a, 0, no_hashes }, + { "blake3-impl", 7, 0, _137_hex_blake3_impl_d, no_hashes }, + {} + }; + + +static u3j_harm _137_hex_chacha_crypt_a[] = {{".2", u3we_chacha_crypt, c3y}, {}}; +static u3j_harm _137_hex_chacha_xchacha_a[] = {{".2", u3we_chacha_xchacha, c3y}, {}}; +static u3j_core _137_hex_chacha_d[] = + { { "crypt", 7, _137_hex_chacha_crypt_a, 0, no_hashes }, + { "xchacha", 7, _137_hex_chacha_xchacha_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_hex_json_de_a[] = {{".2", u3we_json_de}, {}}; +static u3j_harm _137_hex_json_en_a[] = {{".2", u3we_json_en}, {}}; +static u3j_core _137_hex_json_d[] = + { { "de", 15, _137_hex_json_de_a, 0, no_hashes }, + { "en", 15, _137_hex_json_en_a, 0, no_hashes }, + {} + }; + +/* /lib jets in non core +*/ +static u3j_harm _137_non__lagoon_add_a[] = {{".2", u3wi_la_add}, {}}; +static u3j_harm _137_non__lagoon_sub_a[] = {{".2", u3wi_la_sub}, {}}; +static u3j_harm _137_non__lagoon_mul_a[] = {{".2", u3wi_la_mul}, {}}; +static u3j_harm _137_non__lagoon_div_a[] = {{".2", u3wi_la_div}, {}}; +static u3j_harm _137_non__lagoon_mod_a[] = {{".2", u3wi_la_mod}, {}}; +static u3j_harm _137_non__lagoon_adds_a[] = {{".2", u3wi_la_adds}, {}}; +static u3j_harm _137_non__lagoon_subs_a[] = {{".2", u3wi_la_subs}, {}}; +static u3j_harm _137_non__lagoon_muls_a[] = {{".2", u3wi_la_muls}, {}}; +static u3j_harm _137_non__lagoon_divs_a[] = {{".2", u3wi_la_divs}, {}}; +static u3j_harm _137_non__lagoon_mods_a[] = {{".2", u3wi_la_mods}, {}}; +static u3j_harm _137_non__lagoon_dot_a[] = {{".2", u3wi_la_dot}, {}}; +static u3j_harm _137_non__lagoon_trans_a[] ={{".2", u3wi_la_transpose}, {}}; +static u3j_harm _137_non__lagoon_cumsum_a[]={{".2", u3wi_la_cumsum}, {}}; +static u3j_harm _137_non__lagoon_argmin_a[]={{".2", u3wi_la_argmin}, {}}; +static u3j_harm _137_non__lagoon_argmax_a[]={{".2", u3wi_la_argmax}, {}}; +static u3j_harm _137_non__lagoon_ravel_a[]={{".2", u3wi_la_ravel}, {}}; +static u3j_harm _137_non__lagoon_min_a[] = {{".2", u3wi_la_min}, {}}; +static u3j_harm _137_non__lagoon_max_a[] = {{".2", u3wi_la_max}, {}}; +static u3j_harm _137_non__lagoon_linspace_a[]={{".2", u3wi_la_linspace}, {}}; +static u3j_harm _137_non__lagoon_range_a[]= {{".2", u3wi_la_range}, {}}; +static u3j_harm _137_non__lagoon_abs_a[] = {{".2", u3wi_la_abs}, {}}; +static u3j_harm _137_non__lagoon_gth_a[] = {{".2", u3wi_la_gth}, {}}; +static u3j_harm _137_non__lagoon_gte_a[] = {{".2", u3wi_la_gte}, {}}; +static u3j_harm _137_non__lagoon_lth_a[] = {{".2", u3wi_la_lth}, {}}; +static u3j_harm _137_non__lagoon_lte_a[] = {{".2", u3wi_la_lte}, {}}; +static u3j_harm _137_non__lagoon_diag_a[] = {{".2", u3wi_la_diag}, {}}; +static u3j_harm _137_non__lagoon_trace_a[]= {{".2", u3wi_la_trace}, {}}; +static u3j_harm _137_non__lagoon_mmul_a[] = {{".2", u3wi_la_mmul}, {}}; + +static u3j_core _137_non__la_core_d[] = + { { "add-rays", 7, _137_non__lagoon_add_a, 0, no_hashes }, + { "sub-rays", 7, _137_non__lagoon_sub_a, 0, no_hashes }, + { "mul-rays", 7, _137_non__lagoon_mul_a, 0, no_hashes }, + { "div-rays", 7, _137_non__lagoon_div_a, 0, no_hashes }, + { "mod-rays", 7, _137_non__lagoon_mod_a, 0, no_hashes }, + { "add-scal", 7, _137_non__lagoon_adds_a, 0, no_hashes }, + { "sub-scal", 7, _137_non__lagoon_subs_a, 0, no_hashes }, + { "mul-scal", 7, _137_non__lagoon_muls_a, 0, no_hashes }, + { "div-scal", 7, _137_non__lagoon_divs_a, 0, no_hashes }, + { "mod-scal", 7, _137_non__lagoon_mods_a, 0, no_hashes }, + { "dot", 7, _137_non__lagoon_dot_a, 0, no_hashes }, + { "transpose",7, _137_non__lagoon_trans_a, 0, no_hashes }, + { "cumsum", 7, _137_non__lagoon_cumsum_a, 0, no_hashes }, + { "argmin", 7, _137_non__lagoon_argmin_a, 0, no_hashes }, + { "argmax", 7, _137_non__lagoon_argmax_a, 0, no_hashes }, + { "ravel", 7, _137_non__lagoon_ravel_a, 0, no_hashes }, + { "min", 7, _137_non__lagoon_min_a, 0, no_hashes }, + { "max", 7, _137_non__lagoon_max_a, 0, no_hashes }, + { "linspace", 7, _137_non__lagoon_linspace_a, 0, no_hashes }, + { "range", 7, _137_non__lagoon_range_a, 0, no_hashes }, + { "abs", 7, _137_non__lagoon_abs_a, 0, no_hashes }, + { "gth", 7, _137_non__lagoon_gth_a, 0, no_hashes }, + { "gte", 7, _137_non__lagoon_gte_a, 0, no_hashes }, + { "lth", 7, _137_non__lagoon_lth_a, 0, no_hashes }, + { "lte", 7, _137_non__lagoon_lte_a, 0, no_hashes }, + { "diag", 7, _137_non__lagoon_diag_a, 0, no_hashes }, + { "trace", 7, _137_non__lagoon_trace_a,0, no_hashes }, + { "mmul", 7, _137_non__lagoon_mmul_a, 0, no_hashes }, + {} + }; + +static u3j_core _137_non_d[] = + { { "lagoon", 7, 0, _137_non__la_core_d, no_hashes }, + {} + }; + + +static u3j_harm _137_hex_lia_run_a[] = {{".2", u3we_lia_run, c3y}, {}}; + +static u3j_harm _137_hex_lia_run_once_inner_a[] = {{".2", u3we_lia_run_once, c3y}, {}}; + +static u3j_core _137_hex_lia_run_once_d[] = { + { "run-once-inner-v0", 15, _137_hex_lia_run_once_inner_a, 0, no_hashes }, + {} +}; + +static u3j_core _137_hex_lia_monad_d[] = { + { "run-v0", 7, _137_hex_lia_run_a, 0, no_hashes }, + { "run-once-v0", 7, 0, _137_hex_lia_run_once_d, no_hashes }, + {} +}; + +static u3j_core _137_hex_wasm_engine_d[] = { + { "monad-v0", 3, 0, _137_hex_lia_monad_d, no_hashes }, + {} +}; + +static u3j_core _137_hex_wasm_op_def_d[] = { + { "wasm-engine-v0", 3, 0, _137_hex_wasm_engine_d, no_hashes }, + {} +}; + +static u3j_core _137_hex_wasm_validator_d[] = { + { "wasm-op-def-v0", 3, 0, _137_hex_wasm_op_def_d, no_hashes }, + {} +}; + +static u3j_core _137_hex_wasm_parser_d[] = { + { "validator-v0", 3, 0, _137_hex_wasm_validator_d, no_hashes }, + {} +}; + +static u3j_core _137_hex_lia_sur_d[] = { + { "wasm-parser-v0", 3, 0, _137_hex_wasm_parser_d, no_hashes }, + {} +}; + +static u3j_core _137_hex_wasm_engine_sur_d[] = { + { "monad-sur-v0", 3, 0, _137_hex_lia_sur_d, no_hashes }, + {} +}; + +static u3j_core _137_hex_wasm_sur_d[] = { + { "engine-sur-v0", 3, 0, _137_hex_wasm_engine_sur_d, no_hashes }, + {} +}; + +static u3j_core _137_hex_d[] = + { { "non", 7, 0, _137_non_d, no_hashes }, + + { "lull", 3, 0, _137_lull_d, no_hashes }, + + { "lore", 63, _137_hex_lore_a, 0, no_hashes }, + + { "leer", 63, _137_hex_leer_a, 0, no_hashes }, + { "loss", 63, _137_hex_loss_a, 0, no_hashes }, + { "lune", 127, _137_hex_lune_a, 0, no_hashes }, + + { "crc", 31, 0, _137_hex__crc_d, no_hashes }, + + { "coed", 63, 0, _137_hex_coed_d, no_hashes }, + { "aes", 31, 0, _137_hex_aes_d, no_hashes }, + + { "hmac", 63, 0, _137_hex_hmac_d, no_hashes }, + { "argon", 31, 0, _137_hex_argon_d, no_hashes }, + { "blake", 31, 0, _137_hex_blake_d, no_hashes }, + { "chacha", 31, 0, _137_hex_chacha_d, no_hashes }, + { "kecc", 31, 0, _137_hex_kecc_d, no_hashes }, + { "ripemd", 31, 0, _137_hex_ripe_d, no_hashes }, + { "scr", 31, 0, _137_hex_scr_d, no_hashes }, + { "secp", 6, 0, _137_hex_secp_d, no_hashes }, + { "mimes", 31, 0, _137_hex_mimes_d, no_hashes }, + { "json", 31, 0, _137_hex_json_d, no_hashes }, + { "wasm-sur-v0", 3, 0, _137_hex_wasm_sur_d, no_hashes }, + {} + }; + +static u3j_core _137_pen_d[] = + { { "hex", 7, 0, _137_hex_d, no_hashes }, + + { "cell", 7, _137_pen_cell_a, 0, no_hashes }, + { "comb", 7, _137_pen_comb_a, 0, no_hashes }, + { "cons", 7, _137_pen_cons_a, 0, no_hashes }, + { "core", 7, _137_pen_core_a, 0, no_hashes }, + { "face", 7, _137_pen_face_a, 0, no_hashes }, + { "fitz", 7, _137_pen_fitz_a, 0, no_hashes }, + { "fork", 7, _137_pen_fork_a, 0, no_hashes }, + { "look", 7, _137_pen_look_a, 0, no_hashes }, + { "loot", 7, _137_pen_loot_a, 0, no_hashes }, + { "ut", 15, 0, _137_pen__ut_d, no_hashes, _137_pen__ut_ho }, + {} + }; + +static u3j_core _137_qua_d[] = + { { "pen", 3, 0, _137_pen_d, no_hashes, _137_pen_ho }, + + { "po", 7, 0, _137_qua__po_d, no_hashes }, + + { "trip", 7, _137_qua_trip_a, 0, no_hashes }, + + { "bend", 7, 0, _137_qua__bend_d, no_hashes }, + { "cold", 7, 0, _137_qua__cold_d, no_hashes }, + { "comp", 7, 0, _137_qua__comp_d, no_hashes }, + { "cook", 7, 0, _137_qua__cook_d, no_hashes }, + { "easy", 7, 0, _137_qua__easy_d, no_hashes }, + { "glue", 7, 0, _137_qua__glue_d, no_hashes }, + { "here", 7, 0, _137_qua__here_d, no_hashes }, + { "just", 7, 0, _137_qua__just_d, no_hashes }, + { "mask", 7, 0, _137_qua__mask_d, no_hashes }, + { "shim", 7, 0, _137_qua__shim_d, no_hashes }, + { "stag", 7, 0, _137_qua__stag_d, no_hashes }, + { "stew", 7, 0, _137_qua__stew_d, no_hashes }, + { "stir", 7, 0, _137_qua__stir_d, no_hashes }, + + { "pfix", 7, _137_qua_pfix_a, 0, no_hashes }, + { "plug", 7, _137_qua_plug_a, 0, no_hashes }, + { "pose", 7, _137_qua_pose_a, 0, no_hashes }, + { "sfix", 7, _137_qua_sfix_a, 0, no_hashes }, + + { "mink", 7, _137_qua_mink_a, 0, no_hashes }, + { "mole", 7, _137_qua_mole_a, 0, no_hashes }, + { "mule", 7, _137_qua_mule_a, 0, no_hashes }, + + { "scot", 7, _137_qua_scot_a, 0, no_hashes }, + { "scow", 7, _137_qua_scow_a, 0, no_hashes }, + { "slaw", 7, _137_qua_slaw_a, 0, no_hashes }, + {} + }; + +static u3j_core _137_tri_d[] = + { { "qua", 3, 0, _137_qua_d, no_hashes, _137_qua_ho }, + + { "cofl", 7, 0, _137_tri__cofl_d, no_hashes }, + { "rd", 7, 0, _137_tri__rd_d, no_hashes }, + { "rs", 7, 0, _137_tri__rs_d, no_hashes }, + { "rq", 7, 0, _137_tri__rq_d, no_hashes }, + { "rh", 7, 0, _137_tri__rh_d, no_hashes }, + { "og", 7, 0, _137_tri__og_d, no_hashes }, + + { "sha", 7, 0, _137_tri__sha_d, no_hashes }, + { "shax", 7, _137_tri_shax_a, 0, no_hashes }, + { "shay", 7, _137_tri_shay_a, 0, no_hashes }, + { "shas", 7, _137_tri_shas_a, 0, no_hashes }, + { "shal", 7, _137_tri_shal_a, 0, no_hashes }, + + { "ob", 3, 0, _137_ob_d, no_hashes, _137_ob_ho }, + {} + }; + +static u3j_harm _137_two_clz_a[] = {{".2", u3wc_clz, c3n}, {}}; +static u3j_harm _137_two_ctz_a[] = {{".2", u3wc_ctz, c3n}, {}}; +static u3j_harm _137_two_ham_a[] = {{".2", u3wc_ham, c3n}, {}}; + +static u3j_harm _137_two__hew_fun_a[] = {{".2", u3wc_hew, c3n}, {}}; +static u3j_core _137_two__hew_d[] = + { { "fun", 15, _137_two__hew_fun_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_two__by_bif_a[] = {{".2", u3wdb_bif, c3y}, {}}; + +static u3j_core _137_two__by_d[] = + { { "all", 7, _137_two__by_all_a, 0, no_hashes }, + { "any", 7, _137_two__by_any_a, 0, no_hashes }, + { "apt", 7, _137_two__by_apt_a, 0, no_hashes }, + { "bif", 7, _137_two__by_bif_a, 0, no_hashes }, + { "del", 7, _137_two__by_del_a, 0, no_hashes }, + { "dif", 7, _137_two__by_dif_a, 0, no_hashes }, + { "gas", 7, _137_two__by_gas_a, 0, no_hashes }, + { "get", 7, _137_two__by_get_a, 0, no_hashes }, + { "has", 7, _137_two__by_has_a, 0, no_hashes }, + { "int", 7, _137_two__by_int_a, 0, no_hashes }, + { "jab", 7, _137_two__by_jab_a, 0, no_hashes }, + { "key", 7, _137_two__by_key_a, 0, no_hashes }, + { "put", 7, _137_two__by_put_a, 0, no_hashes }, + { "rep", 7, _137_two__by_rep_a, 0, no_hashes }, + { "run", 7, _137_two__by_run_a, 0, no_hashes }, + { "tap", 7, _137_two__by_tap_a, 0, no_hashes }, + { "uni", 7, _137_two__by_uni_a, 0, no_hashes }, + { "urn", 7, _137_two__by_urn_a, 0, no_hashes }, + { "wyt", 3, _137_two__by_wyt_a, 0, no_hashes }, + {} + }; + + +static u3j_harm _137_two__in_apt_a[] = {{".2", u3wdi_apt}, {}}; + +static u3j_core _137_two__in_d[] = + { { "apt", 7, _137_two__in_apt_a, 0, no_hashes }, + { "bif", 7, _137_two__in_bif_a, 0, no_hashes }, + { "del", 7, _137_two__in_del_a, 0, no_hashes }, + { "dif", 7, _137_two__in_dif_a, 0, no_hashes }, + { "gas", 7, _137_two__in_gas_a, 0, no_hashes }, + { "has", 7, _137_two__in_has_a, 0, no_hashes }, + { "int", 7, _137_two__in_int_a, 0, no_hashes }, + { "put", 7, _137_two__in_put_a, 0, no_hashes }, + { "rep", 7, _137_two__in_rep_a, 0, no_hashes }, + { "run", 7, _137_two__in_run_a, 0, no_hashes }, + { "tap", 7, _137_two__in_tap_a, 0, no_hashes }, + { "uni", 7, _137_two__in_uni_a, 0, no_hashes }, + { "wyt", 3, _137_two__in_wyt_a, 0, no_hashes }, + {} + }; + +static u3j_harm _137_two_rig_a[] = {{".2", u3wc_rig, c3n}, {}}; + +static u3j_harm _137_two_mate_a[] = {{".2", u3wb_mate, c3y}, {}}; +static u3j_harm _137_two_sew_a[] = {{".2", u3wc_sew, c3y}, {}}; + +static u3j_core _137_two_d[] = + { { "tri", 3, 0, _137_tri_d, no_hashes, _137_tri_ho }, + + { "find", 7, _137_two_find_a, 0, no_hashes }, + { "flop", 7, _137_two_flop_a, 0, no_hashes }, + { "lent", 7, _137_two_lent_a, 0, no_hashes }, + { "levy", 7, _137_two_levy_a, 0, no_hashes }, + { "lien", 7, _137_two_lien_a, 0, no_hashes }, + { "murn", 7, _137_two_murn_a, 0, no_hashes }, + { "need", 7, _137_two_need_a, 0, no_hashes }, + { "mate", 7, _137_two_mate_a, 0, no_hashes }, + { "reap", 7, _137_two_reap_a, 0, no_hashes }, + { "reel", 7, _137_two_reel_a, 0, no_hashes }, + { "roll", 7, _137_two_roll_a, 0, no_hashes }, + { "skid", 7, _137_two_skid_a, 0, no_hashes }, + { "skim", 7, _137_two_skim_a, 0, no_hashes }, + { "skip", 7, _137_two_skip_a, 0, no_hashes }, + { "scag", 7, _137_two_scag_a, 0, no_hashes }, + { "slag", 7, _137_two_slag_a, 0, no_hashes }, + { "snag", 7, _137_two_snag_a, 0, no_hashes }, + { "sort", 7, _137_two_sort_a, 0, no_hashes }, + { "turn", 7, _137_two_turn_a, 0, no_hashes }, + { "weld", 7, _137_two_weld_a, 0, no_hashes }, + { "welp", 7, _137_two_welp_a, 0, no_hashes }, + { "zing", 7, _137_two_zing_a, 0, no_hashes }, + + { "bex", 7, _137_two_bex_a, 0, no_hashes }, + { "cat", 7, _137_two_cat_a, 0, no_hashes }, + { "can", 7, _137_two_can_a, 0, no_hashes }, + { "clz", 7, _137_two_clz_a, 0, no_hashes }, + { "con", 7, _137_two_con_a, 0, no_hashes }, + { "ctz", 7, _137_two_ctz_a, 0, no_hashes }, + { "cue", 7, _137_two_cue_a, 0, no_hashes }, + { "cut", 7, _137_two_cut_a, 0, no_hashes }, + { "dis", 7, _137_two_dis_a, 0, no_hashes }, + { "dor", 7, _137_two_dor_a, 0, no_hashes }, + { "end", 7, _137_two_end_a, 0, no_hashes }, + { "gor", 7, _137_two_gor_a, 0, no_hashes }, + { "ham", 7, _137_two_ham_a, 0, no_hashes }, + { "hew", 7, 0, _137_two__hew_d, no_hashes }, + { "jam", 7, _137_two_jam_a, 0, no_hashes }, + { "lsh", 7, _137_two_lsh_a, 0, no_hashes }, + { "mat", 7, _137_two_mat_a, 0, no_hashes }, + { "met", 7, _137_two_met_a, 0, no_hashes }, + { "mix", 7, _137_two_mix_a, 0, no_hashes }, + { "mor", 7, _137_two_mor_a, 0, no_hashes }, + { "mug", 7, _137_two_mug_a, 0, no_hashes }, + { "muk", 59, _137_two_muk_a, 0, no_hashes }, + { "rap", 7, _137_two_rap_a, 0, no_hashes }, + { "rep", 7, _137_two_rep_a, 0, no_hashes }, + { "rev", 7, _137_two_rev_a, 0, no_hashes }, + { "rig", 7, _137_two_rig_a, 0, no_hashes }, + { "rip", 7, _137_two_rip_a, 0, no_hashes }, + { "rsh", 7, _137_two_rsh_a, 0, no_hashes }, + { "swp", 7, _137_two_swp_a, 0, no_hashes }, + { "rub", 7, _137_two_rub_a, 0, no_hashes }, + { "pow", 7, _137_two_pow_a, 0, no_hashes }, + { "sew", 7, _137_two_sew_a, 0, no_hashes }, + { "sqt", 7, _137_two_sqt_a, 0, no_hashes }, + { "xeb", 7, _137_two_xeb_a, 0, no_hashes }, + + { "by", 7, 0, _137_two__by_d, no_hashes }, + { "in", 7, 0, _137_two__in_d, no_hashes }, + {} + }; + +static u3j_core _137_one_d[] = + { { "two", 3, 0, _137_two_d, no_hashes }, + + { "add", 7, _137_one_add_a, 0, no_hashes }, + { "dec", 7, _137_one_dec_a, 0, no_hashes }, + { "div", 7, _137_one_div_a, 0, no_hashes }, + { "dvr", 7, _137_one_dvr_a, 0, no_hashes }, + { "gte", 7, _137_one_gte_a, 0, no_hashes }, + { "gth", 7, _137_one_gth_a, 0, no_hashes }, + { "lte", 7, _137_one_lte_a, 0, no_hashes }, + { "lth", 7, _137_one_lth_a, 0, no_hashes }, + { "max", 7, _137_one_max_a, 0, no_hashes }, + { "min", 7, _137_one_min_a, 0, no_hashes }, + { "mod", 7, _137_one_mod_a, 0, no_hashes }, + { "mul", 7, _137_one_mul_a, 0, no_hashes }, + { "sub", 7, _137_one_sub_a, 0, no_hashes }, + + { "cap", 7, _137_one_cap_a, 0, no_hashes }, + { "mas", 7, _137_one_mas_a, 0, no_hashes }, + { "peg", 7, _137_one_peg_a, 0, no_hashes }, + {} + }; + +u3j_core _k137_d[] = + { { "one", 3, 0, _137_one_d, no_hashes }, + {} + }; + diff --git a/vere/pkg/noun/jets/a/add.c b/vere/pkg/noun/jets/a/add.c new file mode 100644 index 0000000..a84436b --- /dev/null +++ b/vere/pkg/noun/jets/a/add.c @@ -0,0 +1,58 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qa_add(u3_atom a, + u3_atom b) +{ + if ( _(u3a_is_cat(a)) && _(u3a_is_cat(b)) ) { + c3_w c = a + b; + + return u3i_words(1, &c); + } + else if ( 0 == a ) { + return u3k(b); + } + else { + mpz_t a_mp, b_mp; + + u3r_mp(a_mp, a); + u3r_mp(b_mp, b); + + mpz_add(a_mp, a_mp, b_mp); + mpz_clear(b_mp); + + return u3i_mp(a_mp); + } +} + +u3_noun +u3wa_add(u3_noun cor) +{ + u3_noun a, b; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0)) || + (c3n == u3ud(a)) || + (c3n == u3ud(b) && a != 0) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qa_add(a, b); + } +} + +u3_noun +u3ka_add(u3_noun a, + u3_noun b) +{ + u3_noun c = u3qa_add(a, b); + + u3z(a); u3z(b); + return c; +} diff --git a/vere/pkg/noun/jets/a/dec.c b/vere/pkg/noun/jets/a/dec.c new file mode 100644 index 0000000..7f8891f --- /dev/null +++ b/vere/pkg/noun/jets/a/dec.c @@ -0,0 +1,57 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qa_inc(u3_atom a) +{ + return u3i_vint(u3k(a)); +} + +u3_noun +u3qa_dec(u3_atom a) +{ + if ( 0 == a ) { + return u3m_error("decrement-underflow"); + } + else { + if ( _(u3a_is_cat(a)) ) { + return a - 1; + } + else { + mpz_t a_mp; + + u3r_mp(a_mp, a); + mpz_sub_ui(a_mp, a_mp, 1); + + return u3i_mp(a_mp); + } + } +} + +u3_noun +u3wa_dec(u3_noun cor) +{ + u3_noun a; + + if ( (u3_none == (a = u3r_at(u3x_sam, cor))) || + (c3n == u3ud(a)) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qa_dec(a); + } +} + +u3_noun +u3ka_dec(u3_atom a) +{ + u3_noun b = u3qa_dec(a); + u3z(a); + return b; +} diff --git a/vere/pkg/noun/jets/a/div.c b/vere/pkg/noun/jets/a/div.c new file mode 100644 index 0000000..7ed9410 --- /dev/null +++ b/vere/pkg/noun/jets/a/div.c @@ -0,0 +1,57 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qa_div(u3_atom a, + u3_atom b) +{ + if ( 0 == b ) { + return u3m_error("divide-by-zero"); + } + else { + if ( _(u3a_is_cat(a)) && _(u3a_is_cat(b)) ) { + return a / b; + } + else { + mpz_t a_mp, b_mp; + + u3r_mp(a_mp, a); + u3r_mp(b_mp, b); + + mpz_tdiv_q(a_mp, a_mp, b_mp); + mpz_clear(b_mp); + + return u3i_mp(a_mp); + } + } +} + +u3_noun +u3wa_div(u3_noun cor) +{ + u3_noun a, b; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0)) || + (c3n == u3ud(a)) || + (c3n == u3ud(b)) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qa_div(a, b); + } +} + +u3_noun +u3ka_div(u3_noun a, + u3_noun b) +{ + u3_noun c = u3qa_div(a, b); + u3z(a); u3z(b); + return c; +} diff --git a/vere/pkg/noun/jets/a/gte.c b/vere/pkg/noun/jets/a/gte.c new file mode 100644 index 0000000..8934ec5 --- /dev/null +++ b/vere/pkg/noun/jets/a/gte.c @@ -0,0 +1,58 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qa_gte(u3_atom a, u3_atom b) +{ + if ( _(u3a_is_cat(a)) && _(u3a_is_cat(b)) ) { + return __(a >= b); + } + else if ( 0 == a ) { + return c3n; + } + else if ( 0 == b ) { + return c3y; + } + else { + c3_w a_w = u3r_met(0, a); + c3_w b_w = u3r_met(0, b); + + if ( a_w != b_w ) { + return __(a_w >= b_w); + } + else { + mpz_t a_mp, b_mp; + u3_noun cmp; + + u3r_mp(a_mp, a); + u3r_mp(b_mp, b); + + cmp = (mpz_cmp(a_mp, b_mp) >= 0) ? c3y : c3n; + + mpz_clear(a_mp); + mpz_clear(b_mp); + + return cmp; + } + } +} + +u3_noun +u3wa_gte(u3_noun cor) +{ + u3_noun a, b; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0)) + || (c3n == u3ud(b) && 0 != a) + || (c3n == u3ud(a) && 0 != b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qa_gte(a, b); + } +} diff --git a/vere/pkg/noun/jets/a/gth.c b/vere/pkg/noun/jets/a/gth.c new file mode 100644 index 0000000..5b059e5 --- /dev/null +++ b/vere/pkg/noun/jets/a/gth.c @@ -0,0 +1,67 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qa_gth(u3_atom a, u3_atom b) +{ + if ( _(u3a_is_cat(a)) && _(u3a_is_cat(b)) ) { + return __(a > b); + } + else if ( 0 == a ) { + return c3n; + } + else if ( 0 == b ) { + return c3y; + } + else { + c3_w a_w = u3r_met(0, a); + c3_w b_w = u3r_met(0, b); + + if ( a_w != b_w ) { + return __(a_w > b_w); + } + else { + mpz_t a_mp, b_mp; + u3_noun cmp; + + u3r_mp(a_mp, a); + u3r_mp(b_mp, b); + + cmp = (mpz_cmp(a_mp, b_mp) > 0) ? c3y : c3n; + + mpz_clear(a_mp); + mpz_clear(b_mp); + + return cmp; + } + } +} + +u3_noun +u3wa_gth(u3_noun cor) +{ + u3_noun a, b; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0)) + || (c3n == u3ud(b) && 0 != a) + || (c3n == u3ud(a) && 0 != b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qa_gth(a, b); + } +} + +u3_noun +u3ka_gth(u3_noun a, u3_noun b) +{ + u3_noun c = u3qa_gth(a, b); + u3z(a); u3z(b); + return c; +} diff --git a/vere/pkg/noun/jets/a/lte.c b/vere/pkg/noun/jets/a/lte.c new file mode 100644 index 0000000..4def610 --- /dev/null +++ b/vere/pkg/noun/jets/a/lte.c @@ -0,0 +1,67 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qa_lte(u3_atom a, u3_atom b) +{ + if ( _(u3a_is_cat(a)) && _(u3a_is_cat(b)) ) { + return __(a <= b); + } + else if ( 0 == a ) { + return c3y; + } + else if ( 0 == b ) { + return c3n; + } + else { + c3_w a_w = u3r_met(0, a); + c3_w b_w = u3r_met(0, b); + + if ( a_w != b_w ) { + return __(a_w <= b_w); + } + else { + mpz_t a_mp, b_mp; + u3_noun cmp; + + u3r_mp(a_mp, a); + u3r_mp(b_mp, b); + + cmp = (mpz_cmp(a_mp, b_mp) <= 0) ? c3y : c3n; + + mpz_clear(a_mp); + mpz_clear(b_mp); + + return cmp; + } + } +} + +u3_noun +u3wa_lte(u3_noun cor) +{ + u3_noun a, b; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0)) + || (c3n == u3ud(b) && 0 != a) + || (c3n == u3ud(a) && 0 != b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qa_lte(a, b); + } +} + +u3_noun +u3ka_lte(u3_noun a, u3_noun b) +{ + u3_noun c = u3qa_lte(a, b); + u3z(a); u3z(b); + return c; +} diff --git a/vere/pkg/noun/jets/a/lth.c b/vere/pkg/noun/jets/a/lth.c new file mode 100644 index 0000000..0e74a79 --- /dev/null +++ b/vere/pkg/noun/jets/a/lth.c @@ -0,0 +1,58 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qa_lth(u3_atom a, u3_atom b) +{ + if ( _(u3a_is_cat(a)) && _(u3a_is_cat(b)) ) { + return __(a < b); + } + else if ( 0 == a ) { + return c3y; + } + else if ( 0 == b ) { + return c3n; + } + else { + c3_w a_w = u3r_met(0, a); + c3_w b_w = u3r_met(0, b); + + if ( a_w != b_w ) { + return __(a_w < b_w); + } + else { + mpz_t a_mp, b_mp; + u3_noun cmp; + + u3r_mp(a_mp, a); + u3r_mp(b_mp, b); + + cmp = (mpz_cmp(a_mp, b_mp) < 0) ? c3y : c3n; + + mpz_clear(a_mp); + mpz_clear(b_mp); + + return cmp; + } + } +} + +u3_noun +u3wa_lth(u3_noun cor) +{ + u3_noun a, b; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0)) + || (c3n == u3ud(b) && 0 != a) + || (c3n == u3ud(a) && 0 != b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qa_lth(a, b); + } +} diff --git a/vere/pkg/noun/jets/a/max.c b/vere/pkg/noun/jets/a/max.c new file mode 100644 index 0000000..929ee50 --- /dev/null +++ b/vere/pkg/noun/jets/a/max.c @@ -0,0 +1,61 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qa_max(u3_atom a, u3_atom b) +{ + if ( _(u3a_is_cat(a)) && _(u3a_is_cat(b)) ) { + return u3k(c3_max(a, b)); + } + else { + c3_w a_w = u3r_met(0, a); + c3_w b_w = u3r_met(0, b); + + if ( a_w != b_w ) { + return u3k((a_w > b_w) ? a : b); + } + else { + mpz_t a_mp, b_mp; + u3_noun max; + + u3r_mp(a_mp, a); + u3r_mp(b_mp, b); + + max = (mpz_cmp(a_mp, b_mp) > 0) ? a : b; + + mpz_clear(a_mp); + mpz_clear(b_mp); + + return u3k(max); + } + } +} + +u3_noun +u3wa_max(u3_noun cor) +{ + u3_noun a, b; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0)) + || (c3n == u3ud(b) && 0 != a) + || (c3n == u3ud(a) && 0 != b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qa_max(a, b); + } +} + +u3_noun +u3ka_max(u3_noun a, u3_noun b) +{ + u3_noun c = u3qa_max(a, b); + u3z(a); u3z(b); + return c; +} diff --git a/vere/pkg/noun/jets/a/min.c b/vere/pkg/noun/jets/a/min.c new file mode 100644 index 0000000..243c50b --- /dev/null +++ b/vere/pkg/noun/jets/a/min.c @@ -0,0 +1,61 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qa_min(u3_atom a, u3_atom b) +{ + if ( _(u3a_is_cat(a)) && _(u3a_is_cat(b)) ) { + return u3k(c3_min(a, b)); + } + else { + c3_w a_w = u3r_met(0, a); + c3_w b_w = u3r_met(0, b); + + if ( a_w != b_w ) { + return u3k((a_w < b_w) ? a : b); + } + else { + mpz_t a_mp, b_mp; + u3_noun min; + + u3r_mp(a_mp, a); + u3r_mp(b_mp, b); + + min = (mpz_cmp(a_mp, b_mp) < 0) ? a : b; + + mpz_clear(a_mp); + mpz_clear(b_mp); + + return u3k(min); + } + } +} + +u3_noun +u3wa_min(u3_noun cor) +{ + u3_noun a, b; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0)) + || (c3n == u3ud(b) && 0 != a) + || (c3n == u3ud(a) && 0 != b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qa_min(a, b); + } +} + +u3_noun +u3ka_min(u3_noun a, u3_noun b) +{ + u3_noun c = u3qa_min(a, b); + u3z(a); u3z(b); + return c; +} diff --git a/vere/pkg/noun/jets/a/mod.c b/vere/pkg/noun/jets/a/mod.c new file mode 100644 index 0000000..f4a0110 --- /dev/null +++ b/vere/pkg/noun/jets/a/mod.c @@ -0,0 +1,55 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qa_mod(u3_atom a, + u3_atom b) +{ + if ( 0 == b ) { + return u3m_error("divide-by-zero"); + } + else if ( _(u3a_is_cat(a)) && _(u3a_is_cat(b)) ) { + return a % b; + } + else { + mpz_t a_mp, b_mp; + + u3r_mp(a_mp, a); + u3r_mp(b_mp, b); + + mpz_tdiv_r(a_mp, a_mp, b_mp); + mpz_clear(b_mp); + + return u3i_mp(a_mp); + } +} + +u3_noun +u3wa_mod(u3_noun cor) +{ + u3_noun a, b; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0)) || + (c3n == u3ud(a)) || + (c3n == u3ud(b)) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qa_mod(a, b); + } +} + +u3_noun +u3ka_mod(u3_noun a, + u3_noun b) +{ + u3_noun c = u3qa_mod(a, b); + u3z(a); u3z(b); + return c; +} diff --git a/vere/pkg/noun/jets/a/mul.c b/vere/pkg/noun/jets/a/mul.c new file mode 100644 index 0000000..6812c11 --- /dev/null +++ b/vere/pkg/noun/jets/a/mul.c @@ -0,0 +1,58 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qa_mul(u3_atom a, + u3_atom b) +{ + if ( _(u3a_is_cat(a)) && _(u3a_is_cat(b)) ) { + c3_d c = ((c3_d) a) * ((c3_d) b); + + return u3i_chubs(1, &c); + } + else if ( 0 == a ) { + return 0; + } + else { + mpz_t a_mp, b_mp; + + u3r_mp(a_mp, a); + u3r_mp(b_mp, b); + + mpz_mul(a_mp, a_mp, b_mp); + mpz_clear(b_mp); + + return u3i_mp(a_mp); + } +} + +u3_noun +u3wa_mul(u3_noun cor) +{ + u3_noun a, b; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0)) || + (c3n == u3ud(a)) || + (c3n == u3ud(b) && a != 0) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qa_mul(a, b); + } +} + +u3_noun +u3ka_mul(u3_noun a, + u3_noun b) +{ + u3_noun c = u3qa_mul(a, b); + + u3z(a); u3z(b); + return c; +} diff --git a/vere/pkg/noun/jets/a/sub.c b/vere/pkg/noun/jets/a/sub.c new file mode 100644 index 0000000..100891c --- /dev/null +++ b/vere/pkg/noun/jets/a/sub.c @@ -0,0 +1,67 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qa_sub(u3_atom a, + u3_atom b) +{ + if ( _(u3a_is_cat(a)) && _(u3a_is_cat(b)) ) { + if ( a < b ) { + return u3m_error("subtract-underflow"); + } + else { + return (a - b); + } + } + else if ( 0 == b ) { + return u3k(a); + } + else { + mpz_t a_mp, b_mp; + + u3r_mp(a_mp, a); + u3r_mp(b_mp, b); + + if ( mpz_cmp(a_mp, b_mp) < 0 ) { + mpz_clear(a_mp); + mpz_clear(b_mp); + + return u3m_error("subtract-underflow"); + } + mpz_sub(a_mp, a_mp, b_mp); + mpz_clear(b_mp); + + return u3i_mp(a_mp); + } +} + +u3_noun +u3wa_sub(u3_noun cor) +{ + u3_noun a, b; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0)) || + (c3n == u3ud(b)) || + (c3n == u3ud(a) && b != 0) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qa_sub(a, b); + } +} + +u3_noun +u3ka_sub(u3_noun a, + u3_noun b) +{ + u3_noun c = u3qa_sub(a, b); + + u3z(a); u3z(b); + return c; +} diff --git a/vere/pkg/noun/jets/b/bind.c b/vere/pkg/noun/jets/b/bind.c new file mode 100644 index 0000000..7f37a69 --- /dev/null +++ b/vere/pkg/noun/jets/b/bind.c @@ -0,0 +1,30 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qb_bind(u3_noun a, + u3_noun b) + { + if ( 0 == a ) { + return 0; + } else { + return u3nc(0, u3n_slam_on(u3k(b), u3k(u3t(a)))); + } + } + u3_noun + u3wb_bind(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) ) { + return u3m_bail(c3__exit); + } else { + return u3qb_bind(a, b); + } + } + diff --git a/vere/pkg/noun/jets/b/clap.c b/vere/pkg/noun/jets/b/clap.c new file mode 100644 index 0000000..9cfb41a --- /dev/null +++ b/vere/pkg/noun/jets/b/clap.c @@ -0,0 +1,36 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qb_clap(u3_noun a, + u3_noun b, + u3_noun c) + { + if ( 0 == a ) { + return u3k(b); + } + else if ( 0 == b ) { + return u3k(a); + } + else { + return u3nc(0, u3n_slam_on(u3k(c), u3nc(u3k(u3t(a)), u3k(u3t(b))))); + } + } + u3_noun + u3wb_clap(u3_noun cor) + { + u3_noun a, b, c; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, + u3x_sam_6, &b, + u3x_sam_7, &c, 0) ) { + return u3m_bail(c3__exit); + } else { + return u3qb_clap(a, b, c); + } + } diff --git a/vere/pkg/noun/jets/b/drop.c b/vere/pkg/noun/jets/b/drop.c new file mode 100644 index 0000000..8ce3f76 --- /dev/null +++ b/vere/pkg/noun/jets/b/drop.c @@ -0,0 +1,30 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qb_drop(u3_noun a) + { + if ( 0 == a ) { + return u3_nul; + } + else { + return u3nc(0, u3k(u3t(a))); + } + } + u3_noun + u3wb_drop(u3_noun cor) + { + u3_noun a; + + if ( u3_none == (a = u3r_at(u3x_sam, cor)) ) { + return u3_none; + } else { + return u3qb_drop(a); + } + } + diff --git a/vere/pkg/noun/jets/b/find.c b/vere/pkg/noun/jets/b/find.c new file mode 100644 index 0000000..c0295d2 --- /dev/null +++ b/vere/pkg/noun/jets/b/find.c @@ -0,0 +1,50 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +STATIC_ASSERT( (UINT32_MAX > u3a_cells), + "list index precision" ); + +u3_noun +u3qb_find(u3_noun nedl, u3_noun hstk) +{ + if ( u3_nul != nedl ) { + c3_w i_w = 0; + + while ( u3_nul != hstk ) { + u3_noun i_h, t_h = hstk; + u3_noun i_n, t_n = nedl; + u3x_cell(t_h, &i_h, &t_h); + u3x_cell(t_n, &i_n, &t_n); + + while ( c3y == u3r_sing(i_n, i_h) ) { + if ( u3_nul == t_n ) { + return u3nc(u3_nul, u3i_word(i_w)); + } + else if ( u3_nul == t_h ) { + break; + } + else { + u3x_cell(t_h, &i_h, &t_h); + u3x_cell(t_n, &i_n, &t_n); + } + } + + hstk = u3t(hstk); + i_w++; + } + } + + return u3_nul; +} + +u3_noun +u3wb_find(u3_noun cor) +{ + u3_noun a, b; + u3x_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0); + return u3qb_find(a, b); +} diff --git a/vere/pkg/noun/jets/b/flop.c b/vere/pkg/noun/jets/b/flop.c new file mode 100644 index 0000000..0574e4e --- /dev/null +++ b/vere/pkg/noun/jets/b/flop.c @@ -0,0 +1,34 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qb_flop(u3_noun a) +{ + u3_noun i, t = a, b = u3_nul; + + while ( u3_nul != t ) { + u3x_cell(t, &i, &t); + b = u3nc(u3k(i), b); + } + + return b; +} + +u3_noun +u3wb_flop(u3_noun cor) +{ + return u3qb_flop(u3x_at(u3x_sam, cor)); +} + +u3_noun +u3kb_flop(u3_noun a) +{ + u3_noun b = u3qb_flop(a); + u3z(a); + return b; +} diff --git a/vere/pkg/noun/jets/b/lent.c b/vere/pkg/noun/jets/b/lent.c new file mode 100644 index 0000000..aa3a701 --- /dev/null +++ b/vere/pkg/noun/jets/b/lent.c @@ -0,0 +1,37 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +STATIC_ASSERT( (UINT32_MAX > u3a_cells), + "length precision" ); + +u3_noun +u3qb_lent(u3_noun a) +{ + c3_w len_w = 0; + + while ( u3_nul != a ) { + a = u3t(a); + len_w++; + } + + return u3i_word(len_w); +} + +u3_noun +u3wb_lent(u3_noun cor) +{ + return u3qb_lent(u3x_at(u3x_sam, cor)); +} + +u3_noun +u3kb_lent(u3_noun a) +{ + u3_noun b = u3qb_lent(a); + u3z(a); + return b; +} diff --git a/vere/pkg/noun/jets/b/levy.c b/vere/pkg/noun/jets/b/levy.c new file mode 100644 index 0000000..2a24eb1 --- /dev/null +++ b/vere/pkg/noun/jets/b/levy.c @@ -0,0 +1,49 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + static u3_noun + _levy_in(u3j_site* sit_u, u3_noun a) + { + if ( 0 == a ) { + return c3y; + } else { + u3_noun loz; + + if ( c3n == u3du(a) ) { + return u3m_bail(c3__exit); + } + else switch ( (loz = u3j_gate_slam(sit_u, u3k(u3h(a)))) ) { + case c3y: return _levy_in(sit_u, u3t(a)); + case c3n: return c3n; + default: u3z(loz); + return u3m_bail(c3__exit); + } + } + } + + u3_noun + u3qb_levy(u3_noun a, + u3_noun b) + { + u3_noun pro; + u3j_site sit_u; + u3j_gate_prep(&sit_u, u3k(b)); + pro = _levy_in(&sit_u, a); + u3j_gate_lose(&sit_u); + return pro; + } + u3_noun + u3wb_levy(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) ) { + return u3m_bail(c3__exit); + } else { + return u3qb_levy(a, b); + } + } diff --git a/vere/pkg/noun/jets/b/lien.c b/vere/pkg/noun/jets/b/lien.c new file mode 100644 index 0000000..5d04907 --- /dev/null +++ b/vere/pkg/noun/jets/b/lien.c @@ -0,0 +1,49 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + static u3_noun + _lien_in(u3j_site* sit_u, u3_noun a) + { + if ( 0 == a ) { + return c3n; + } else { + u3_noun loz; + + if ( c3n == u3du(a) ) { + return u3m_bail(c3__exit); + } + else switch ( (loz = u3j_gate_slam(sit_u, u3k(u3h(a)))) ) { + case c3y: return c3y; + case c3n: return _lien_in(sit_u, u3t(a)); + default: u3z(loz); + return u3m_bail(c3__exit); + } + } + } + + u3_noun + u3qb_lien(u3_noun a, + u3_noun b) + { + u3_noun pro; + u3j_site sit_u; + u3j_gate_prep(&sit_u, u3k(b)); + pro = _lien_in(&sit_u, a); + u3j_gate_lose(&sit_u); + return pro; + } + u3_noun + u3wb_lien(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) ) { + return u3m_bail(c3__exit); + } else { + return u3qb_lien(a, b); + } + } diff --git a/vere/pkg/noun/jets/b/mate.c b/vere/pkg/noun/jets/b/mate.c new file mode 100644 index 0000000..f8dbd31 --- /dev/null +++ b/vere/pkg/noun/jets/b/mate.c @@ -0,0 +1,30 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qb_mate(u3_noun a, + u3_noun b) + { + if ( u3_nul == b ) { + return u3k(a); + } else if ( u3_nul == a ) { + return u3k(b); + } else if ( c3y == u3r_sing(u3t(a), u3t(b)) ) { + return u3k(a); + } else { + return u3m_error("mate"); + } + } + u3_noun + u3wb_mate(u3_noun cor) + { + u3_noun a, b; + u3x_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0); + return u3qb_mate(a, b); + } + diff --git a/vere/pkg/noun/jets/b/murn.c b/vere/pkg/noun/jets/b/murn.c new file mode 100644 index 0000000..e9d747c --- /dev/null +++ b/vere/pkg/noun/jets/b/murn.c @@ -0,0 +1,50 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qb_murn(u3_noun a, u3_noun b) +{ + u3_noun pro; + u3_noun* lit = &pro; + + if ( u3_nul != a ) { + u3_noun* hed; + u3_noun* tel; + u3_noun res, i, t = a; + u3j_site sit_u; + + u3j_gate_prep(&sit_u, u3k(b)); + + do { + u3x_cell(t, &i, &t); + + res = u3j_gate_slam(&sit_u, u3k(i)); + + if ( u3_nul != res ) { + *lit = u3i_defcons(&hed, &tel); + *hed = u3k(u3t(res)); + lit = tel; + u3z(res); + } + } + while ( u3_nul != t ); + + u3j_gate_lose(&sit_u); + } + + *lit = u3_nul; + + return pro; +} + +u3_noun +u3wb_murn(u3_noun cor) +{ + u3_noun a, b; + u3x_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0); + return u3qb_murn(a, b); +} diff --git a/vere/pkg/noun/jets/b/need.c b/vere/pkg/noun/jets/b/need.c new file mode 100644 index 0000000..8723699 --- /dev/null +++ b/vere/pkg/noun/jets/b/need.c @@ -0,0 +1,30 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qb_need(u3_noun a) + { + if ( 0 == a ) { + return u3m_bail(c3__exit); + } + else { + return u3k(u3t(a)); + } + } + u3_noun + u3wb_need(u3_noun cor) + { + u3_noun a; + + if ( u3_none == (a = u3r_at(u3x_sam, cor)) ) { + return u3m_bail(c3__exit); + } else { + return u3qb_need(a); + } + } + diff --git a/vere/pkg/noun/jets/b/reap.c b/vere/pkg/noun/jets/b/reap.c new file mode 100644 index 0000000..35dd055 --- /dev/null +++ b/vere/pkg/noun/jets/b/reap.c @@ -0,0 +1,41 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qb_reap(u3_atom a, + u3_noun b) + { + if ( !_(u3a_is_cat(a)) ) { + return u3m_bail(c3__fail); + } + else { + u3_noun acc = u3_nul; + c3_w i_w = a; + + while ( i_w ) { + acc = u3nc(u3k(b), acc); + i_w--; + } + + return acc; + } + } + + u3_noun + u3wb_reap(u3_noun cor) + { + u3_noun a, b; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0)) || + (c3n == u3ud(a)) ) + { + return u3m_bail(c3__exit); + } else { + return u3qb_reap(a, b); + } + } diff --git a/vere/pkg/noun/jets/b/reel.c b/vere/pkg/noun/jets/b/reel.c new file mode 100644 index 0000000..0e7cefb --- /dev/null +++ b/vere/pkg/noun/jets/b/reel.c @@ -0,0 +1,52 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + u3_noun + u3qb_reel(u3_noun a, + u3_noun b) + { + u3_noun pro = u3k(u3x_at(u3x_sam_3, b)); + + if ( u3_nul != a ) { + u3a_pile pil_u; + u3j_site sit_u; + u3_noun* top; + u3_noun i, t = a; + + u3a_pile_prep(&pil_u, sizeof(u3_noun)); + + // push list onto road stack + // + do { + u3x_cell(t, &i, &t); + top = u3a_push(&pil_u); + *top = i; + } while ( u3_nul != t ); + + u3j_gate_prep(&sit_u, u3k(b)); + + while ( c3n == u3a_pile_done(&pil_u) ) { + pro = u3j_gate_slam(&sit_u, u3nc(u3k(*top), pro)); + top = u3a_pop(&pil_u); + } + + u3j_gate_lose(&sit_u); + } + + return pro; + } + u3_noun + u3wb_reel(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) ) { + return u3m_bail(c3__exit); + } else { + return u3qb_reel(a, b); + } + } diff --git a/vere/pkg/noun/jets/b/roll.c b/vere/pkg/noun/jets/b/roll.c new file mode 100644 index 0000000..d546e8b --- /dev/null +++ b/vere/pkg/noun/jets/b/roll.c @@ -0,0 +1,38 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + u3_noun + u3qb_roll(u3_noun a, + u3_noun b) + { + u3_noun pro = u3k(u3x_at(u3x_sam_3, b)); + + if ( u3_nul != a ) { + u3j_site sit_u; + u3_noun i, t = a; + u3j_gate_prep(&sit_u, u3k(b)); + do { + u3x_cell(t, &i, &t); + pro = u3j_gate_slam(&sit_u, u3nc(u3k(i), pro)); + } while ( u3_nul != t ); + u3j_gate_lose(&sit_u); + } + + return pro; + } + u3_noun + u3wb_roll(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) ) { + return u3m_bail(c3__exit); + } else { + return u3qb_roll(a, b); + } + } + diff --git a/vere/pkg/noun/jets/b/scag.c b/vere/pkg/noun/jets/b/scag.c new file mode 100644 index 0000000..d13dd46 --- /dev/null +++ b/vere/pkg/noun/jets/b/scag.c @@ -0,0 +1,53 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qb_scag(u3_atom a, u3_noun b) +{ + if ( u3_nul == b ) { + return u3_nul; + } + else if ( !_(u3a_is_cat(a)) ) { + return u3m_bail(c3__fail); + } + else { + u3_noun pro; + u3_noun* lit = &pro; + + { + c3_w len_w = (c3_w)a; + u3_noun* hed; + u3_noun* tel; + u3_noun i, t = b; + + while ( len_w-- && (u3_nul != t) ) { + u3x_cell(t, &i, &t); + + *lit = u3i_defcons(&hed, &tel); + *hed = u3k(i); + lit = tel; + } + } + + *lit = u3_nul; + + return pro; + } +} + +u3_noun +u3wb_scag(u3_noun cor) +{ + u3_noun a, b; + u3x_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0); + + if ( (c3n == u3ud(a)) && (u3_nul != b) ) { + return u3m_bail(c3__exit); + } + + return u3qb_scag(a, b); +} diff --git a/vere/pkg/noun/jets/b/skid.c b/vere/pkg/noun/jets/b/skid.c new file mode 100644 index 0000000..de9c3f4 --- /dev/null +++ b/vere/pkg/noun/jets/b/skid.c @@ -0,0 +1,58 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qb_skid(u3_noun a, u3_noun b) +{ + u3_noun l, r; + u3_noun* lef = &l; + u3_noun* rig = &r; + + if ( u3_nul != a) { + u3_noun i, t = a; + u3_noun* hed; + u3_noun* tel; + u3j_site sit_u; + u3j_gate_prep(&sit_u, u3k(b)); + + do { + u3x_cell(t, &i, &t); + + switch ( u3j_gate_slam(&sit_u, u3k(i)) ) { + case c3y: { + *lef = u3i_defcons(&hed, &tel); + *hed = u3k(i); + lef = tel; + } break; + + case c3n: { + *rig = u3i_defcons(&hed, &tel); + *hed = u3k(i); + rig = tel; + } break; + + default: u3m_bail(c3__exit); + } + } + while ( u3_nul != t ); + + u3j_gate_lose(&sit_u); + } + + *lef = u3_nul; + *rig = u3_nul; + + return u3nc(l, r); +} + +u3_noun +u3wb_skid(u3_noun cor) +{ + u3_noun a, b; + u3x_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0); + return u3qb_skid(a, b); +} diff --git a/vere/pkg/noun/jets/b/skim.c b/vere/pkg/noun/jets/b/skim.c new file mode 100644 index 0000000..56664c6 --- /dev/null +++ b/vere/pkg/noun/jets/b/skim.c @@ -0,0 +1,52 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qb_skim(u3_noun a, u3_noun b) +{ + u3_noun pro; + u3_noun* lit = &pro; + + if ( u3_nul != a) { + u3_noun i, t = a; + u3_noun* hed; + u3_noun* tel; + u3j_site sit_u; + u3j_gate_prep(&sit_u, u3k(b)); + + do { + u3x_cell(t, &i, &t); + + switch ( u3j_gate_slam(&sit_u, u3k(i)) ) { + case c3y: { + *lit = u3i_defcons(&hed, &tel); + *hed = u3k(i); + lit = tel; + } break; + + case c3n: break; + + default: u3m_bail(c3__exit); + } + } + while ( u3_nul != t ); + + u3j_gate_lose(&sit_u); + } + + *lit = u3_nul; + + return pro; +} + +u3_noun +u3wb_skim(u3_noun cor) +{ + u3_noun a, b; + u3x_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0); + return u3qb_skim(a, b); +} diff --git a/vere/pkg/noun/jets/b/skip.c b/vere/pkg/noun/jets/b/skip.c new file mode 100644 index 0000000..41d6175 --- /dev/null +++ b/vere/pkg/noun/jets/b/skip.c @@ -0,0 +1,52 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qb_skip(u3_noun a, u3_noun b) +{ + u3_noun pro; + u3_noun* lit = &pro; + + if ( u3_nul != a) { + u3_noun i, t = a; + u3_noun* hed; + u3_noun* tel; + u3j_site sit_u; + u3j_gate_prep(&sit_u, u3k(b)); + + do { + u3x_cell(t, &i, &t); + + switch ( u3j_gate_slam(&sit_u, u3k(i)) ) { + case c3y: break; + + case c3n: { + *lit = u3i_defcons(&hed, &tel); + *hed = u3k(i); + lit = tel; + } break; + + default: u3m_bail(c3__exit); + } + } + while ( u3_nul != t ); + + u3j_gate_lose(&sit_u); + } + + *lit = u3_nul; + + return pro; +} + +u3_noun +u3wb_skip(u3_noun cor) +{ + u3_noun a, b; + u3x_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0); + return u3qb_skip(a, b); +} diff --git a/vere/pkg/noun/jets/b/slag.c b/vere/pkg/noun/jets/b/slag.c new file mode 100644 index 0000000..fad88b0 --- /dev/null +++ b/vere/pkg/noun/jets/b/slag.c @@ -0,0 +1,43 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qb_slag(u3_atom a, u3_noun b) + { + if ( u3_nul == b ) { + return u3_nul; + } + else if ( !_(u3a_is_cat(a)) ) { + return u3m_bail(c3__fail); + } + else { + c3_w len_w = a; + + while ( len_w ) { + if ( c3n == u3du(b) ) { + return u3_nul; + } + b = u3t(b); + len_w--; + } + return u3k(b); + } + } + u3_noun + u3wb_slag(u3_noun cor) + { + u3_noun a, b; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0)) || + (c3n == u3ud(a) && u3_nul != b) ) + { + return u3m_bail(c3__exit); + } else { + return u3qb_slag(a, b); + } + } diff --git a/vere/pkg/noun/jets/b/snag.c b/vere/pkg/noun/jets/b/snag.c new file mode 100644 index 0000000..4b6dad8 --- /dev/null +++ b/vere/pkg/noun/jets/b/snag.c @@ -0,0 +1,44 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qb_snag(u3_atom a, + u3_noun b) + { + if ( !_(u3a_is_cat(a)) ) { + return u3m_bail(c3__fail); + } + else { + c3_w len_w = a; + + while ( len_w ) { + if ( c3n == u3du(b) ) { + return u3m_bail(c3__exit); + } + b = u3t(b); + len_w--; + } + if ( c3n == u3du(b) ) { + return u3m_bail(c3__exit); + } + return u3k(u3h(b)); + } + } + u3_noun + u3wb_snag(u3_noun cor) + { + u3_noun a, b; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0)) || + (c3n == u3ud(a)) ) + { + return u3m_bail(c3__exit); + } else { + return u3qb_snag(a, b); + } + } diff --git a/vere/pkg/noun/jets/b/sort.c b/vere/pkg/noun/jets/b/sort.c new file mode 100644 index 0000000..9b01d54 --- /dev/null +++ b/vere/pkg/noun/jets/b/sort.c @@ -0,0 +1,88 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + // like skid, except its callback is $-([* *] ?) and it takes the second + // argument so that it calls its callback with [i.list, second] + // + // all args are RETAINED + static u3_noun + _split_in(u3j_site* sit_u, + u3_noun a, + u3_noun second) + { + if ( 0 == a ) { + return u3nc(u3_nul, u3_nul); + } + else if ( c3n == u3du(a) ) { + return u3m_bail(c3__exit); + } else { + u3_noun acc = _split_in(sit_u, u3t(a), second); + u3_noun hoz = u3j_gate_slam(sit_u, u3nc(u3k(u3h(a)), u3k(second))); + u3_noun nex; + + if ( c3y == hoz ) { + nex = u3nc(u3nc(u3k(u3h(a)), u3k(u3h(acc))), u3k(u3t(acc))); + } + else { + nex = u3nc(u3k(u3h(acc)), u3nc(u3k(u3h(a)), u3k(u3t(acc)))); + } + u3z(hoz); + u3z(acc); + + return nex; + } + } + + static u3_noun + _sort_in(u3j_site* sit_u, u3_noun list) + { + if ( 0 == list ) { + return u3_nul; + } + else if ( c3n == u3du(list) ) { + return u3m_bail(c3__exit); + } else { + u3_noun hed, tal; + u3x_cell(list, &hed, &tal); + + u3_noun split = _split_in(sit_u, tal, hed); + u3_noun lhs = _sort_in(sit_u, u3h(split)); + u3_noun rhs = u3nc(u3k(hed), _sort_in(sit_u, u3t(split))); + + u3_noun ret = u3qb_weld(lhs, rhs); + u3z(lhs); + u3z(rhs); + u3z(split); + + return ret; + } + } + + u3_noun + u3qb_sort(u3_noun a, + u3_noun b) + { + u3_noun pro; + u3j_site sit_u; + u3j_gate_prep(&sit_u, u3k(b)); + pro = _sort_in(&sit_u, a); + u3j_gate_lose(&sit_u); + return pro; + } + u3_noun + u3wb_sort(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) ) { + return u3m_bail(c3__exit); + } else { + return u3qb_sort(a, b); + } + } + diff --git a/vere/pkg/noun/jets/b/turn.c b/vere/pkg/noun/jets/b/turn.c new file mode 100644 index 0000000..2259780 --- /dev/null +++ b/vere/pkg/noun/jets/b/turn.c @@ -0,0 +1,45 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qb_turn(u3_noun a, u3_noun b) +{ + u3_noun pro; + u3_noun* lit = &pro; + + if ( u3_nul != a ) { + u3_noun* hed; + u3_noun* tel; + u3_noun i, t = a; + u3j_site sit_u; + + u3j_gate_prep(&sit_u, u3k(b)); + + do { + u3x_cell(t, &i, &t); + + *lit = u3i_defcons(&hed, &tel); + *hed = u3j_gate_slam(&sit_u, u3k(i)); + lit = tel; + } + while ( u3_nul != t ); + + u3j_gate_lose(&sit_u); + } + + *lit = u3_nul; + + return pro; +} + +u3_noun +u3wb_turn(u3_noun cor) +{ + u3_noun a, b; + u3x_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0); + return u3qb_turn(a, b); +} diff --git a/vere/pkg/noun/jets/b/weld.c b/vere/pkg/noun/jets/b/weld.c new file mode 100644 index 0000000..d50fa1c --- /dev/null +++ b/vere/pkg/noun/jets/b/weld.c @@ -0,0 +1,48 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qb_weld(u3_noun a, u3_noun b) +{ + u3_noun pro; + u3_noun* lit = &pro; + + { + u3_noun* hed; + u3_noun* tel; + u3_noun i, t = a; + + while ( u3_nul != t ) { + u3x_cell(t, &i, &t); + + *lit = u3i_defcons(&hed, &tel); + *hed = u3k(i); + lit = tel; + } + } + + *lit = u3k(b); + + return pro; +} + +u3_noun +u3wb_weld(u3_noun cor) +{ + u3_noun a, b; + u3x_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0); + return u3qb_weld(a, b); +} + +u3_noun +u3kb_weld(u3_noun a, u3_noun b) +{ + u3_noun c = u3qb_weld(a, b); + u3z(a); u3z(b); + return c; +} diff --git a/vere/pkg/noun/jets/b/zing.c b/vere/pkg/noun/jets/b/zing.c new file mode 100644 index 0000000..1172d5e --- /dev/null +++ b/vere/pkg/noun/jets/b/zing.c @@ -0,0 +1,47 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qb_zing(u3_noun a) +{ + u3_noun pro; + u3_noun* lit = &pro; + + if ( u3_nul == a ) { + *lit = u3_nul; + } + else { + u3_noun i, t = a; + u3x_cell(t, &i, &t); + + while ( u3_nul != t ) { + u3_noun* hed; + u3_noun* tel; + u3_noun i_i, t_i = i; + + while ( u3_nul != t_i ) { + u3x_cell(t_i, &i_i, &t_i); + + *lit = u3i_defcons(&hed, &tel); + *hed = u3k(i_i); + lit = tel; + } + + u3x_cell(t, &i, &t); + } + + *lit = u3k(i); + } + + return pro; +} + +u3_noun +u3wb_zing(u3_noun cor) +{ + return u3qb_zing(u3x_at(u3x_sam, cor)); +} diff --git a/vere/pkg/noun/jets/c/aor.c b/vere/pkg/noun/jets/c/aor.c new file mode 100644 index 0000000..248661e --- /dev/null +++ b/vere/pkg/noun/jets/c/aor.c @@ -0,0 +1,69 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + u3_noun + u3qc_aor(u3_noun a, + u3_noun b) + { + while ( 1 ) { + if ( c3y == u3r_sing(a, b) ) return c3y; + if ( c3n == u3ud(a) ) { + if ( c3y == u3ud(b) ) return c3n; + if ( c3y == u3r_sing(u3h(a), u3h(b)) ) { + a = u3t(a); + b = u3t(b); + } + else { + a = u3h(a); + b = u3h(b); + } + } + else { + if ( c3n == u3ud(b) ) return c3y; + { + c3_w len_a_w = u3r_met(3, a); + c3_w len_b_w = u3r_met(3, b);; + c3_y *buf_a_y, *buf_b_y; + c3_y cut_a_y, cut_b_y; + if ( c3y == u3a_is_cat(a) ) { + buf_a_y = (c3_y*)&a; + } + else { + u3a_atom* a_u = u3a_to_ptr(a); + buf_a_y = (c3_y*)(a_u->buf_w); + } + if ( c3y == u3a_is_cat(b) ) { + buf_b_y = (c3_y*)&b; + } + else { + u3a_atom* b_u = u3a_to_ptr(b); + buf_b_y = (c3_y*)(b_u->buf_w); + } + c3_w len_min_w = c3_min(len_a_w, len_b_w); + for (c3_w i_w = 0; i_w < len_min_w; i_w++) { + cut_a_y = buf_a_y[i_w]; + cut_b_y = buf_b_y[i_w]; + if ( cut_a_y != cut_b_y ) return __(cut_a_y < cut_b_y); + } + return __(len_a_w < len_b_w); + } + } + } + } + + u3_noun + u3wc_aor(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) ) { + return u3m_bail(c3__exit); + } else { + return u3qc_aor(a, b); + } + } + diff --git a/vere/pkg/noun/jets/c/bex.c b/vere/pkg/noun/jets/c/bex.c new file mode 100644 index 0000000..497ebfd --- /dev/null +++ b/vere/pkg/noun/jets/c/bex.c @@ -0,0 +1,55 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qc_bex(u3_atom a) +{ + c3_d a_d; + u3i_slab sab_u; + + if ( a < 31 ) { + return 1U << a; + } + + if ( c3y == u3a_is_cat(a) ) { + a_d = a; + } + else { + if ( c3n == u3r_safe_chub(a, &a_d) ) { + return u3m_bail(c3__fail); + } + + // We don't currently support atoms 2GB or larger (fails while + // mugging). The extra term of 16 is experimentally determined. + if ( a_d >= ((c3_d)1 << (c3_d)34) - 16 ) { + u3l_log("bex: overflow"); + return u3m_bail(c3__fail); + } + } + + u3i_slab_init(&sab_u, 0, a_d + 1); + + sab_u.buf_w[a_d >> 5] = 1U << (a_d & 31); + + return u3i_slab_moot(&sab_u); +} + +u3_noun +u3kc_bex(u3_atom a) +{ + u3_noun b = u3qc_bex(a); + u3z(a); + return b; +} + +u3_noun +u3wc_bex(u3_noun cor) +{ + u3_noun a = u3x_at(u3x_sam, cor); + return u3qc_bex(u3x_atom(a)); +} diff --git a/vere/pkg/noun/jets/c/c0n.c b/vere/pkg/noun/jets/c/c0n.c new file mode 100644 index 0000000..a6fee5b --- /dev/null +++ b/vere/pkg/noun/jets/c/c0n.c @@ -0,0 +1,55 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qc_con(u3_atom a, + u3_atom b) + { + c3_w lna_w = u3r_met(5, a); + c3_w lnb_w = u3r_met(5, b); + + if ( (lna_w == 0) && (lnb_w == 0) ) { + return 0; + } + else { + c3_w len_w = c3_max(lna_w, lnb_w); + c3_w i_w; + u3i_slab sab_u; + u3i_slab_from(&sab_u, a, 5, len_w); + + for ( i_w = 0; i_w < lnb_w; i_w++ ) { + sab_u.buf_w[i_w] |= u3r_word(i_w, b); + } + + return u3i_slab_mint(&sab_u); + } + } + u3_noun + u3wc_con(u3_noun cor) + { + u3_noun a, b; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0)) || + (c3n == u3ud(a)) || + (c3n == u3ud(b)) ) + { + return u3m_bail(c3__exit); + } else { + return u3qc_con(a, b); + } + } + +u3_noun +u3kc_con(u3_noun a, + u3_noun b) +{ + u3_noun c = u3qc_con(a, b); + u3z(a); u3z(b); + return c; +} diff --git a/vere/pkg/noun/jets/c/can.c b/vere/pkg/noun/jets/c/can.c new file mode 100644 index 0000000..ca6d97a --- /dev/null +++ b/vere/pkg/noun/jets/c/can.c @@ -0,0 +1,85 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qc_can(u3_atom a, + u3_noun b) + { + if ( !_(u3a_is_cat(a)) || (a >= 32) ) { + return u3m_bail(c3__fail); + } + else { + c3_g a_g = a; + c3_w tot_w = 0; + u3i_slab sab_u; + + /* Measure and validate the slab required. + */ + { + u3_noun cab = b; + + while ( 1 ) { + u3_noun i_cab, pi_cab, qi_cab; + + if ( 0 == cab ) { + break; + } + if ( c3n == u3du(cab) ) return u3m_bail(c3__fail); + i_cab = u3h(cab); + if ( c3n == u3du(i_cab) ) return u3m_bail(c3__fail); + pi_cab = u3h(i_cab); + qi_cab = u3t(i_cab); + if ( c3n == u3a_is_cat(pi_cab) ) return u3m_bail(c3__fail); + if ( c3n == u3ud(qi_cab) ) return u3m_bail(c3__fail); + if ( (tot_w + pi_cab) < tot_w ) return u3m_bail(c3__fail); + + tot_w += pi_cab; + cab = u3t(cab); + } + + if ( 0 == tot_w ) { + return 0; + } + + u3i_slab_init(&sab_u, a_g, tot_w); + } + + /* Chop the list atoms in. + */ + { + u3_noun cab = b; + c3_w pos_w = 0; + + while ( 0 != cab ) { + u3_noun i_cab = u3h(cab); + u3_atom pi_cab = u3h(i_cab); + u3_atom qi_cab = u3t(i_cab); + + u3r_chop(a_g, 0, pi_cab, pos_w, sab_u.buf_w, qi_cab); + pos_w += pi_cab; + cab = u3t(cab); + } + } + + return u3i_slab_mint(&sab_u); + } + } + u3_noun + u3wc_can(u3_noun cor) + { + u3_noun a, b; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0)) || + (c3n == u3ud(a)) ) + { + return u3m_bail(c3__fail); + } else { + return u3qc_can(a, b); + } + } + diff --git a/vere/pkg/noun/jets/c/cap.c b/vere/pkg/noun/jets/c/cap.c new file mode 100644 index 0000000..95bef1f --- /dev/null +++ b/vere/pkg/noun/jets/c/cap.c @@ -0,0 +1,25 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qc_cap(u3_atom a) +{ + c3_w met_w = u3r_met(0, a); + + if ( 2 > met_w ) { + return u3m_bail(c3__exit); + } + else { + return 2 + u3r_bit((met_w - 2), a); + } +} + +u3_noun +u3wc_cap(u3_noun cor) +{ + return u3qc_cap(u3x_atom(u3x_at(u3x_sam, cor))); +} diff --git a/vere/pkg/noun/jets/c/cat.c b/vere/pkg/noun/jets/c/cat.c new file mode 100644 index 0000000..f3c4d2d --- /dev/null +++ b/vere/pkg/noun/jets/c/cat.c @@ -0,0 +1,54 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qc_cat(u3_atom a, + u3_atom b, + u3_atom c) + { + if ( !_(u3a_is_cat(a)) || (a >= 32) ) { + return u3m_bail(c3__fail); + } + else { + c3_g a_g = a; + c3_w lew_w = u3r_met(a_g, b); + c3_w ler_w = u3r_met(a_g, c); + c3_w all_w = (lew_w + ler_w); + + if ( 0 == all_w ) { + return 0; + } + else { + u3i_slab sab_u; + u3i_slab_from(&sab_u, b, a_g, all_w); + + u3r_chop(a_g, 0, ler_w, lew_w, sab_u.buf_w, c); + + return u3i_slab_mint(&sab_u); + } + } + } + + u3_noun + u3wc_cat(u3_noun cor) + { + u3_noun a, b, c; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, + u3x_sam_6, &b, + u3x_sam_7, &c, 0)) || + (c3n == u3ud(a)) || + (c3n == u3ud(b)) || + (c3n == u3ud(c)) ) + { + return u3m_bail(c3__exit); + } else { + return u3qc_cat(a, b, c); + } + } + diff --git a/vere/pkg/noun/jets/c/clz.c b/vere/pkg/noun/jets/c/clz.c new file mode 100644 index 0000000..f8da45a --- /dev/null +++ b/vere/pkg/noun/jets/c/clz.c @@ -0,0 +1,75 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_atom +u3qc_clz(u3_atom boq, u3_atom sep, u3_atom a) +{ + if ( !_(u3a_is_cat(boq)) || (boq >= 32) ) { + return u3m_bail(c3__fail); + } + + if ( !_(u3a_is_cat(sep)) ) { + return u3m_bail(c3__fail); + } + + c3_g boq_g = boq; + c3_w sep_w = sep; + c3_w tot_w = sep_w << boq_g; + + if ( (tot_w >> boq_g) != sep_w ) { + return u3m_bail(c3__fail); + } + + c3_w met_w = u3r_met(0, a); + + if ( met_w <= tot_w ) { + tot_w -= met_w; + return u3i_word(tot_w); + } + else { + c3_w wid_w = tot_w >> 5; + c3_w bit_w = tot_w & 31; + c3_w wor_w; + + if ( bit_w ) { + wor_w = u3r_word(wid_w, a); + wor_w &= (1 << bit_w) - 1; + + if ( wor_w ) { + return bit_w - (32 - c3_lz_w(wor_w)); + } + } + + while ( wid_w-- ) { + wor_w = u3r_word(wid_w, a); + + if ( wor_w ) { + bit_w += c3_lz_w(wor_w); + break; + } + + bit_w += 32; + } + + return u3i_word(bit_w); + } +} + +u3_noun +u3wc_clz(u3_noun cor) +{ + u3_atom boq, sep, vat; + { + u3_noun sam = u3h(u3t(cor)); + u3_noun bit = u3h(sam); + + u3x_bite(bit, &boq, &sep); + vat = u3x_atom(u3t(sam)); + } + + return u3qc_clz(boq, sep, vat); +} diff --git a/vere/pkg/noun/jets/c/ctz.c b/vere/pkg/noun/jets/c/ctz.c new file mode 100644 index 0000000..ff74e24 --- /dev/null +++ b/vere/pkg/noun/jets/c/ctz.c @@ -0,0 +1,34 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_atom +u3qc_ctz(u3_atom a) +{ + c3_w wor_w, i_w = 0; + + if ( 0 == a ) { + return 0; + } + + do { + wor_w = u3r_word(i_w++, a); + } + while ( !wor_w ); + + { + c3_w bit_d = i_w - 1; + bit_d *= 32; + bit_d += c3_tz_w(wor_w); + return u3i_chub(bit_d); + } +} + +u3_noun +u3wc_ctz(u3_noun cor) +{ + return u3qc_ctz(u3x_atom(u3h(u3t(cor)))); +} diff --git a/vere/pkg/noun/jets/c/cut.c b/vere/pkg/noun/jets/c/cut.c new file mode 100644 index 0000000..ca4452a --- /dev/null +++ b/vere/pkg/noun/jets/c/cut.c @@ -0,0 +1,69 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qc_cut(u3_atom a, + u3_atom b, + u3_atom c, + u3_atom d) + { + if ( !_(u3a_is_cat(a)) || (a >= 32) ) { + return u3m_bail(c3__fail); + } + if ( !_(u3a_is_cat(b)) ) { + return 0; + } + if ( !_(u3a_is_cat(c)) ) { + c = 0x7fffffff; + } + + { + c3_g a_g = a; + c3_w b_w = b; + c3_w c_w = c; + c3_w len_w = u3r_met(a_g, d); + + if ( (0 == c_w) || (b_w >= len_w) ) { + return 0; + } + if ( b_w + c_w > len_w ) { + c_w = (len_w - b_w); + } + if ( (b_w == 0) && (c_w == len_w) ) { + return u3k(d); + } + else { + u3i_slab sab_u; + u3i_slab_init(&sab_u, a_g, c_w); + + u3r_chop(a_g, b_w, c_w, 0, sab_u.buf_w, d); + + return u3i_slab_mint(&sab_u); + } + } + } + u3_noun + u3wc_cut(u3_noun cor) + { + u3_noun a, b, c, d; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, + u3x_sam_12, &b, + u3x_sam_13, &c, + u3x_sam_7, &d, 0)) || + (c3n == u3ud(a)) || + (c3n == u3ud(b)) || + (c3n == u3ud(c)) || + (c3n == u3ud(d)) ) + { + return u3m_bail(c3__exit); + } else { + return u3qc_cut(a, b, c, d); + } + } + diff --git a/vere/pkg/noun/jets/c/dis.c b/vere/pkg/noun/jets/c/dis.c new file mode 100644 index 0000000..8c41a36 --- /dev/null +++ b/vere/pkg/noun/jets/c/dis.c @@ -0,0 +1,46 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qc_dis(u3_atom a, + u3_atom b) + { + c3_w lna_w = u3r_met(5, a); + c3_w lnb_w = u3r_met(5, b); + + if ( (lna_w == 0) && (lnb_w == 0) ) { + return 0; + } + else { + c3_w len_w = c3_max(lna_w, lnb_w); + c3_w i_w; + u3i_slab sab_u; + u3i_slab_from(&sab_u, a, 5, len_w); + + for ( i_w = 0; i_w < len_w; i_w++ ) { + sab_u.buf_w[i_w] &= u3r_word(i_w, b); + } + + return u3i_slab_mint(&sab_u); + } + } + u3_noun + u3wc_dis(u3_noun cor) + { + u3_noun a, b; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0)) || + (c3n == u3ud(a)) || + (c3n == u3ud(b)) ) + { + return u3m_bail(c3__exit); + } else { + return u3qc_dis(a, b); + } + } + diff --git a/vere/pkg/noun/jets/c/dor.c b/vere/pkg/noun/jets/c/dor.c new file mode 100644 index 0000000..0c1e220 --- /dev/null +++ b/vere/pkg/noun/jets/c/dor.c @@ -0,0 +1,49 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qc_dor(u3_noun a, + u3_noun b) + { + if ( c3y == u3r_sing(a, b) ) { + return c3y; + } + else { + if ( c3y == u3ud(a) ) { + if ( c3y == u3ud(b) ) { + return u3qa_lth(a, b); + } + else { + return c3y; + } + } + else { + if ( c3y == u3ud(b) ) { + return c3n; + } + else { + if ( c3y == u3r_sing(u3h(a), u3h(b)) ) { + return u3qc_dor(u3t(a), u3t(b)); + } + else return u3qc_dor(u3h(a), u3h(b)); + } + } + } + } + u3_noun + u3wc_dor(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) ) { + return u3m_bail(c3__exit); + } else { + return u3qc_dor(a, b); + } + } + diff --git a/vere/pkg/noun/jets/c/dvr.c b/vere/pkg/noun/jets/c/dvr.c new file mode 100644 index 0000000..e456e9c --- /dev/null +++ b/vere/pkg/noun/jets/c/dvr.c @@ -0,0 +1,45 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qc_dvr(u3_atom a, + u3_atom b) + { + if ( 0 == b ) { + return u3m_error("divide-by-zero"); + } + else { + if ( _(u3a_is_cat(a)) && _(u3a_is_cat(b)) ) { + return u3nc(a / b, a % b); + } + else { + mpz_t a_mp, b_mp; + + u3r_mp(a_mp, a); + u3r_mp(b_mp, b); + + mpz_tdiv_qr(a_mp, b_mp, a_mp, b_mp); + + return u3nc(u3i_mp(a_mp), u3i_mp(b_mp)); + } + } + } + u3_noun + u3wc_dvr(u3_noun cor) + { + u3_noun a, b; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0)) || + (c3n == u3ud(a)) ) + { + return u3m_bail(c3__exit); + } else { + return u3qc_dvr(a, b); + } + } + diff --git a/vere/pkg/noun/jets/c/end.c b/vere/pkg/noun/jets/c/end.c new file mode 100644 index 0000000..94618ad --- /dev/null +++ b/vere/pkg/noun/jets/c/end.c @@ -0,0 +1,51 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qc_end(u3_atom a, + u3_atom b, + u3_atom c) +{ + if ( !_(u3a_is_cat(a)) || (a >= 32) ) { + return u3m_bail(c3__fail); + } + else if ( !_(u3a_is_cat(b)) ) { + return u3k(c); + } + else { + c3_g a_g = a; + c3_w b_w = b; + c3_w len_w = u3r_met(a_g, c); + + if ( 0 == b_w ) { + return 0; + } + else if ( b_w >= len_w ) { + return u3k(c); + } + else { + u3i_slab sab_u; + u3i_slab_init(&sab_u, a_g, b_w); + + u3r_chop(a_g, 0, b_w, 0, sab_u.buf_w, c); + + return u3i_slab_mint(&sab_u); + } + } +} + +u3_noun +u3wc_end(u3_noun cor) +{ + u3_atom bloq, step; + u3_noun a, b; + u3x_mean(cor, u3x_sam_2, &a, + u3x_sam_3, &b, 0); + u3x_bite(a, &bloq, &step); + + return u3qc_end(bloq, step, u3x_atom(b)); +} diff --git a/vere/pkg/noun/jets/c/gor.c b/vere/pkg/noun/jets/c/gor.c new file mode 100644 index 0000000..91c2d98 --- /dev/null +++ b/vere/pkg/noun/jets/c/gor.c @@ -0,0 +1,32 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qc_gor(u3_noun a, + u3_noun b) + { + c3_w c_w = u3r_mug(a); + c3_w d_w = u3r_mug(b); + + if ( c_w == d_w ) { + return u3qc_dor(a, b); + } + else return (c_w < d_w) ? c3y : c3n; + } + u3_noun + u3wc_gor(u3_noun cor) + { + u3_noun a, b; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0)) ) { + return u3m_bail(c3__exit); + } else { + return u3qc_gor(a, b); + } + } + diff --git a/vere/pkg/noun/jets/c/ham.c b/vere/pkg/noun/jets/c/ham.c new file mode 100644 index 0000000..776cf0c --- /dev/null +++ b/vere/pkg/noun/jets/c/ham.c @@ -0,0 +1,27 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_atom +u3qc_ham(u3_atom a) +{ + c3_w len_w = u3r_met(5, a); + c3_d pop_d = 0; + c3_w wor_w; + + for ( c3_w i_w = 0; i_w < len_w; i_w++ ) { + wor_w = u3r_word(i_w, a); + pop_d += c3_pc_w(wor_w); + } + + return u3i_chub(pop_d); +} + +u3_noun +u3wc_ham(u3_noun cor) +{ + return u3qc_ham(u3x_atom(u3h(u3t(cor)))); +} diff --git a/vere/pkg/noun/jets/c/hew.c b/vere/pkg/noun/jets/c/hew.c new file mode 100644 index 0000000..be6b7a7 --- /dev/null +++ b/vere/pkg/noun/jets/c/hew.c @@ -0,0 +1,87 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +static c3_w +_hew_in(c3_g a_g, + c3_w pos_w, + u3_atom vat, + u3_noun sam, + u3_noun* out) +{ + u3_noun h, t, *l, *r; + + while ( c3y == u3r_cell(sam, &h, &t) ) { + *out = u3i_defcons(&l, &r); + pos_w = _hew_in(a_g, pos_w, vat, h, l); + sam = t; + out = r; + } + + if ( !_(u3a_is_cat(sam)) ) { + return u3m_bail(c3__fail); + } + + if ( !sam ) { + *out = 0; + return pos_w; + } + else { + c3_w wid_w = (c3_w)sam; + c3_w new_w = pos_w + wid_w; + u3i_slab sab_u; + + if ( new_w < pos_w ) { + return u3m_bail(c3__fail); + } + + u3i_slab_init(&sab_u, a_g, wid_w); + u3r_chop(a_g, pos_w, wid_w, 0, sab_u.buf_w, vat); + + *out = u3i_slab_mint(&sab_u); + return new_w; + } +} + +u3_noun +u3qc_hew(u3_atom boq, + u3_atom sep, + u3_atom vat, + u3_noun sam) +{ + if ( !_(u3a_is_cat(boq)) || (boq >= 32) ) { + return u3m_bail(c3__fail); + } + + if ( !_(u3a_is_cat(sep)) ) { + return u3m_bail(c3__fail); + } + + u3_noun pro; + c3_w pos_w = _hew_in((c3_g)boq, (c3_w)sep, vat, sam, &pro); + return u3nt(pro, boq, u3i_word(pos_w)); +} + +u3_noun +u3wc_hew(u3_noun cor) +{ + u3_atom boq, sep, vat; + u3_noun sam; + { + u3_noun pay = u3t(cor); + u3_noun con = u3t(pay); + u3_noun gat = u3t(con); // outer gate + u3_noun cam = u3h(u3t(gat)); // outer sample + u3_noun d = u3h(con); + + boq = u3x_atom(u3h(d)); + sep = u3x_atom(u3t(d)); + vat = u3x_atom(u3t(cam)); + sam = u3h(pay); + } + + return u3qc_hew(boq, sep, vat, sam); +} diff --git a/vere/pkg/noun/jets/c/lsh.c b/vere/pkg/noun/jets/c/lsh.c new file mode 100644 index 0000000..09a97e6 --- /dev/null +++ b/vere/pkg/noun/jets/c/lsh.c @@ -0,0 +1,63 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qc_lsh(u3_atom a, + u3_atom b, + u3_atom c) +{ + if ( !_(u3a_is_cat(a)) || (a >= 32) ) { + return u3m_bail(c3__fail); + } + else if ( !_(u3a_is_cat(b)) ) { + return u3m_bail(c3__fail); + } + else { + c3_g a_g = a; + c3_w b_w = b; + c3_w len_w = u3r_met(a_g, c); + + if ( 0 == len_w ) { + return 0; + } + else if ( (b_w + len_w) < len_w ) { + return u3m_bail(c3__exit); + } + else { + u3i_slab sab_u; + u3i_slab_init(&sab_u, a_g, (b_w + len_w)); + + u3r_chop(a_g, 0, len_w, b_w, sab_u.buf_w, c); + + return u3i_slab_mint(&sab_u); + } + } +} + +u3_noun +u3wc_lsh(u3_noun cor) +{ + u3_atom bloq, step; + u3_noun a, b; + u3x_mean(cor, u3x_sam_2, &a, + u3x_sam_3, &b, 0); + u3x_bite(a, &bloq, &step); + + return u3qc_lsh(bloq, step, u3x_atom(b)); +} + +u3_noun +u3kc_lsh(u3_noun a, + u3_noun b, + u3_noun c) +{ + u3_noun d = u3qc_lsh(a, b, c); + + u3z(a); u3z(b); u3z(c); + return d; +} diff --git a/vere/pkg/noun/jets/c/mas.c b/vere/pkg/noun/jets/c/mas.c new file mode 100644 index 0000000..b0be6e1 --- /dev/null +++ b/vere/pkg/noun/jets/c/mas.c @@ -0,0 +1,48 @@ +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qc_mas(u3_atom a) +{ + c3_w b_w; + + if ( c3y == u3a_is_cat(a) ) { + b_w = c3_bits_word(a); + + if ( 2 > b_w ) { + return u3m_bail(c3__exit); + } + else { + a &= ~((c3_w)1 << (b_w - 1)); + a |= ((c3_w)1 << (b_w - 2)); + return a; + } + } + else { + b_w = u3r_met(0, a); + + if ( 64 > b_w ) { + c3_d a_d = u3r_chub(0, a); + a_d &= ~((c3_d)1 << (b_w - 1)); + a_d |= ((c3_d)1 << (b_w - 2)); + return u3i_chub(a_d); + } + else { + u3i_slab sab_u; + u3i_slab_from(&sab_u, a, 0, b_w - 1); + + b_w -= 2; + sab_u.buf_w[(b_w >> 5)] |= ((c3_w)1 << (b_w & 31)); + + return u3i_slab_mint(&sab_u); + } + } +} + +u3_noun +u3wc_mas(u3_noun cor) +{ + return u3qc_mas(u3x_atom(u3x_at(u3x_sam, cor))); +} diff --git a/vere/pkg/noun/jets/c/met.c b/vere/pkg/noun/jets/c/met.c new file mode 100644 index 0000000..bf8ed7e --- /dev/null +++ b/vere/pkg/noun/jets/c/met.c @@ -0,0 +1,42 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qc_met(u3_atom a, + u3_atom b) + { + if ( 0 == b ) { + return 0; + } + else if ( !_(u3a_is_cat(a)) || (a >= 32) ) { + return 1; + } + else { + c3_w met_w = u3r_met(a, b); + + if ( !_(u3a_is_cat(met_w)) ) { + return u3i_words(1, &met_w); + } + else return met_w; + } + } + u3_noun + u3wc_met(u3_noun cor) + { + u3_noun a, b; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0)) || + (c3n == u3ud(b)) || + (c3n == u3ud(a) && 0 != b) ) + { + return u3m_bail(c3__exit); + } else { + return u3qc_met(a, b); + } + } + diff --git a/vere/pkg/noun/jets/c/mix.c b/vere/pkg/noun/jets/c/mix.c new file mode 100644 index 0000000..b497c3f --- /dev/null +++ b/vere/pkg/noun/jets/c/mix.c @@ -0,0 +1,56 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qc_mix(u3_atom a, + u3_atom b) + { + c3_w lna_w = u3r_met(5, a); + c3_w lnb_w = u3r_met(5, b); + + if ( (lna_w == 0) && (lnb_w == 0) ) { + return 0; + } + else { + c3_w len_w = c3_max(lna_w, lnb_w); + c3_w i_w; + u3i_slab sab_u; + u3i_slab_from(&sab_u, a, 5, len_w); + + // XX use u3r_chop for XOR? + // + for ( i_w = 0; i_w < lnb_w; i_w++ ) { + sab_u.buf_w[i_w] ^= u3r_word(i_w, b); + } + + return u3i_slab_mint(&sab_u); + } + } + u3_noun + u3wc_mix(u3_noun cor) + { + u3_noun a, b; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0)) || + (c3n == u3ud(a)) || + (c3n == u3ud(b)) ) + { + return u3m_bail(c3__exit); + } else { + return u3qc_mix(a, b); + } + } + u3_noun + u3kc_mix(u3_atom a, + u3_atom b) + { + u3_noun res = u3qc_mix(a, b); + u3z(a); u3z(b); + return res; + } diff --git a/vere/pkg/noun/jets/c/mor.c b/vere/pkg/noun/jets/c/mor.c new file mode 100644 index 0000000..97ba141 --- /dev/null +++ b/vere/pkg/noun/jets/c/mor.c @@ -0,0 +1,31 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qc_mor(u3_noun a, + u3_noun b) + { + c3_w c_w = u3r_mug(u3r_mug(a)); + c3_w d_w = u3r_mug(u3r_mug(b)); + + if ( c_w == d_w ) { + return u3qc_dor(a, b); + } + else return (c_w < d_w) ? c3y : c3n; + } + u3_noun + u3wc_mor(u3_noun cor) + { + u3_noun a, b; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0)) ) { + return u3m_bail(c3__exit); + } else { + return u3qc_mor(a, b); + } + } diff --git a/vere/pkg/noun/jets/c/mug.c b/vere/pkg/noun/jets/c/mug.c new file mode 100644 index 0000000..ec6e483 --- /dev/null +++ b/vere/pkg/noun/jets/c/mug.c @@ -0,0 +1,19 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3wc_mug(u3_noun cor) + { + u3_noun sam; + + if ( u3_none == (sam = u3r_at(u3x_sam, cor)) ) { + return u3m_bail(c3__exit); + } else { + return u3r_mug(sam); + } + } diff --git a/vere/pkg/noun/jets/c/muk.c b/vere/pkg/noun/jets/c/muk.c new file mode 100644 index 0000000..0846ed7 --- /dev/null +++ b/vere/pkg/noun/jets/c/muk.c @@ -0,0 +1,76 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +#include "murmur3.h" + +u3_noun +u3qc_muk(u3_atom sed, + u3_atom len, + u3_atom key) +{ + if ( c3n == u3a_is_cat(len) ) { + return u3m_bail(c3__fail); + } + else { + c3_w len_w = (c3_w)len; + c3_w key_w = u3r_met(3, key); + + // NB: this condition is implicit in the pad subtraction + // + if ( key_w > len_w ) { + return u3m_bail(c3__exit); + } + else { + c3_w sed_w = u3r_word(0, sed); + c3_o loc_o = c3n; + c3_y* key_y = 0; + c3_w out_w; + + // if we're hashing more bytes than we have, allocate and copy + // to ensure trailing null bytes + // + if ( len_w > key_w ) { + loc_o = c3y; + key_y = u3a_calloc(sizeof(c3_y), len_w); + u3r_bytes(0, len_w, key_y, key); + } + else if ( len_w > 0 ) { + // XX assumes little-endian + // + key_y = ( c3y == u3a_is_cat(key) ) + ? (c3_y*)&key + : (c3_y*)((u3a_atom*)u3a_to_ptr(key))->buf_w; + } + + MurmurHash3_x86_32(key_y, len_w, sed_w, &out_w); + + if ( c3y == loc_o ) { + u3a_free(key_y); + } + + return u3i_words(1, &out_w); + } + } +} + +u3_noun +u3wc_muk(u3_noun cor) +{ + u3_noun sed, len, key; + u3x_mean(cor, u3x_sam_2, &sed, + u3x_sam_6, &len, + u3x_sam_7, &key, 0); + + if ( (c3n == u3ud(sed)) + || (c3n == u3ud(len)) + || (c3n == u3ud(key)) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qc_muk(sed, len, key); + } +} diff --git a/vere/pkg/noun/jets/c/peg.c b/vere/pkg/noun/jets/c/peg.c new file mode 100644 index 0000000..a700752 --- /dev/null +++ b/vere/pkg/noun/jets/c/peg.c @@ -0,0 +1,66 @@ +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qc_peg(u3_atom a, u3_atom b) +{ + if ( (0 == a) || (0 == b) ) { + return u3m_bail(c3__exit); + } + else if ( 1 == b ) { + return u3k(a); + } + + c3_d a_d, b_d; + c3_w c_w; + + if ( (c3y == u3a_is_cat(a)) && (c3y == u3a_is_cat(b)) ) { + c_w = c3_bits_word(b) - 1; + a_d = a; + b_d = b; + } + else { + c3_w d_w = u3r_met(0, a); + c3_d e_d; + + c_w = u3r_met(0, b) - 1; + e_d = (c3_d)c_w + d_w; + + if ( 64 <= e_d ) { + u3i_slab sab_u; + u3i_slab_init(&sab_u, 0, e_d); + + u3r_chop(0, 0, c_w, 0, sab_u.buf_w, b); + u3r_chop(0, 0, d_w, c_w, sab_u.buf_w, a); + + return u3i_slab_moot(&sab_u); + } + + a_d = u3r_chub(0, a); + b_d = u3r_chub(0, b); + } + + b_d &= ((c3_d)1 << c_w) - 1; + a_d <<= c_w; + a_d ^= b_d; + + return u3i_chub(a_d); +} + +u3_noun +u3wc_peg(u3_noun cor) +{ + u3_noun a, b; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0)) || + (c3n == u3ud(b)) || + (c3n == u3ud(a) && b != 1) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qc_peg(a, b); + } +} diff --git a/vere/pkg/noun/jets/c/po.c b/vere/pkg/noun/jets/c/po.c new file mode 100644 index 0000000..2fe8858 --- /dev/null +++ b/vere/pkg/noun/jets/c/po.c @@ -0,0 +1,1427 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3_po_find_prefix(c3_y one, c3_y two, c3_y three) { + switch (one) { + case 'b': switch (two) { + case 'a': switch (three) { + case 'c': return u3nc(0, 238); + case 'l': return u3nc(0, 107); + case 'n': return u3nc(0, 92); + case 'r': return u3nc(0, 183); + case 't': return u3nc(0, 172); + default: return 0; + } + case 'i': switch (three) { + case 'c': return u3nc(0, 56); + case 'd': return u3nc(0, 106); + case 'l': return u3nc(0, 144); + case 'n': return u3nc(0, 2); + case 's': return u3nc(0, 60); + case 't': return u3nc(0, 182); + default: return 0; + } + case 'o': switch (three) { + case 'l': return u3nc(0, 45); + case 'n': return u3nc(0, 244); + case 'r': return u3nc(0, 188); + case 's': return u3nc(0, 171); + case 't': return u3nc(0, 98); + default: return 0; + } + default: return 0; + } + case 'd': switch (two) { + case 'a': switch (three) { + case 'b': return u3nc(0, 181); + case 'c': return u3nc(0, 117); + case 'l': return u3nc(0, 37); + case 'n': return u3nc(0, 234); + case 'p': return u3nc(0, 66); + case 'r': return u3nc(0, 23); + case 's': return u3nc(0, 61); + case 't': return u3nc(0, 215); + case 'v': return u3nc(0, 105); + default: return 0; + } + case 'i': switch (three) { + case 'b': return u3nc(0, 179); + case 'f': return u3nc(0, 57); + case 'g': return u3nc(0, 193); + case 'l': return u3nc(0, 49); + case 'n': return u3nc(0, 217); + case 'r': return u3nc(0, 11); + case 's': return u3nc(0, 129); + case 'v': return u3nc(0, 116); + default: return 0; + } + case 'o': switch (three) { + case 'c': return u3nc(0, 146); + case 'l': return u3nc(0, 102); + case 'n': return u3nc(0, 233); + case 'p': return u3nc(0, 18); + case 'r': return u3nc(0, 24); + case 's': return u3nc(0, 187); + case 't': return u3nc(0, 47); + case 'v': return u3nc(0, 236); + case 'z': return u3nc(0, 0); + default: return 0; + } + default: return 0; + } + case 'f': switch (two) { + case 'a': switch (three) { + case 'b': return u3nc(0, 120); + case 'd': return u3nc(0, 206); + case 'l': return u3nc(0, 152); + case 'm': return u3nc(0, 214); + case 'n': return u3nc(0, 158); + case 's': return u3nc(0, 195); + default: return 0; + } + case 'i': switch (three) { + case 'd': return u3nc(0, 8); + case 'g': return u3nc(0, 138); + case 'l': return u3nc(0, 194); + case 'n': return u3nc(0, 90); + case 'p': return u3nc(0, 255); + case 'r': return u3nc(0, 169); + case 't': return u3nc(0, 226); + default: return 0; + } + case 'o': switch (three) { + case 'd': return u3nc(0, 247); + case 'g': return u3nc(0, 20); + case 'l': return u3nc(0, 27); + case 'n': return u3nc(0, 91); + case 'p': return u3nc(0, 213); + case 'r': return u3nc(0, 50); + case 's': return u3nc(0, 46); + case 't': return u3nc(0, 221); + default: return 0; + } + default: return 0; + } + case 'h': switch (two) { + case 'a': switch (three) { + case 'b': return u3nc(0, 209); + case 'c': return u3nc(0, 174); + case 'd': return u3nc(0, 145); + case 'l': return u3nc(0, 203); + case 'n': return u3nc(0, 41); + case 'p': return u3nc(0, 156); + case 'r': return u3nc(0, 198); + case 's': return u3nc(0, 170); + case 't': return u3nc(0, 218); + case 'v': return u3nc(0, 176); + default: return 0; + } + case 'i': switch (three) { + case 'd': return u3nc(0, 7); + case 'l': return u3nc(0, 190); + case 'n': return u3nc(0, 200); + default: return 0; + } + case 'o': switch (three) { + case 'b': return u3nc(0, 197); + case 'c': return u3nc(0, 223); + case 'd': return u3nc(0, 26); + case 'l': return u3nc(0, 32); + case 'p': return u3nc(0, 22); + case 's': return u3nc(0, 180); + default: return 0; + } + default: return 0; + } + case 'l': switch (two) { + case 'a': switch (three) { + case 'b': return u3nc(0, 161); + case 'c': return u3nc(0, 34); + case 'd': return u3nc(0, 235); + case 'g': return u3nc(0, 205); + case 'n': return u3nc(0, 232); + case 'p': return u3nc(0, 240); + case 'r': return u3nc(0, 225); + case 's': return u3nc(0, 128); + case 't': return u3nc(0, 134); + case 'v': return u3nc(0, 252); + default: return 0; + } + case 'i': switch (three) { + case 'b': return u3nc(0, 39); + case 'd': return u3nc(0, 21); + case 'g': return u3nc(0, 111); + case 'n': return u3nc(0, 178); + case 's': return u3nc(0, 9); + case 't': return u3nc(0, 5); + case 'v': return u3nc(0, 36); + default: return 0; + } + case 'o': switch (three) { + case 'c': return u3nc(0, 69); + case 'd': return u3nc(0, 186); + case 'm': return u3nc(0, 166); + case 'n': return u3nc(0, 135); + case 'p': return u3nc(0, 63); + case 'r': return u3nc(0, 25); + case 's': return u3nc(0, 48); + default: return 0; + } + default: return 0; + } + case 'm': switch (two) { + case 'a': switch (three) { + case 'c': return u3nc(0, 191); + case 'g': return u3nc(0, 103); + case 'l': return u3nc(0, 110); + case 'p': return u3nc(0, 130); + case 'r': return u3nc(0, 1); + case 's': return u3nc(0, 202); + case 't': return u3nc(0, 253); + default: return 0; + } + case 'i': switch (three) { + case 'c': return u3nc(0, 157); + case 'd': return u3nc(0, 62); + case 'g': return u3nc(0, 199); + case 'l': return u3nc(0, 212); + case 'n': return u3nc(0, 79); + case 'p': return u3nc(0, 254); + case 'r': return u3nc(0, 31); + case 's': return u3nc(0, 126); + case 't': return u3nc(0, 196); + default: return 0; + } + case 'o': switch (three) { + case 'c': return u3nc(0, 148); + case 'd': return u3nc(0, 19); + case 'g': return u3nc(0, 162); + case 'l': return u3nc(0, 67); + case 'n': return u3nc(0, 122); + case 'p': return u3nc(0, 208); + case 'r': return u3nc(0, 93); + case 's': return u3nc(0, 231); + case 't': return u3nc(0, 82); + default: return 0; + } + default: return 0; + } + case 'n': switch (two) { + case 'a': switch (three) { + case 'c': return u3nc(0, 219); + case 'l': return u3nc(0, 230); + case 'm': return u3nc(0, 243); + case 'p': return u3nc(0, 87); + case 'r': return u3nc(0, 65); + case 't': return u3nc(0, 77); + case 'v': return u3nc(0, 137); + default: return 0; + } + case 'i': switch (three) { + case 'b': return u3nc(0, 140); + case 'd': return u3nc(0, 72); + case 'l': return u3nc(0, 210); + case 'm': return u3nc(0, 224); + case 's': return u3nc(0, 124); + default: return 0; + } + case 'o': switch (three) { + case 'c': return u3nc(0, 250); + case 'd': return u3nc(0, 136); + case 'l': return u3nc(0, 216); + case 'm': return u3nc(0, 139); + case 'p': return u3nc(0, 88); + case 'r': return u3nc(0, 97); + case 's': return u3nc(0, 211); + case 'v': return u3nc(0, 70); + default: return 0; + } + default: return 0; + } + case 'p': switch (two) { + case 'a': switch (three) { + case 'c': return u3nc(0, 149); + case 'd': return u3nc(0, 114); + case 'g': return u3nc(0, 141); + case 'l': return u3nc(0, 127); + case 'n': return u3nc(0, 78); + case 'r': return u3nc(0, 185); + case 's': return u3nc(0, 33); + case 't': return u3nc(0, 159); + default: return 0; + } + case 'i': switch (three) { + case 'c': return u3nc(0, 104); + case 'd': return u3nc(0, 43); + case 'l': return u3nc(0, 51); + case 'n': return u3nc(0, 165); + case 't': return u3nc(0, 242); + default: return 0; + } + case 'o': switch (three) { + case 'c': return u3nc(0, 173); + case 'd': return u3nc(0, 81); + case 'l': return u3nc(0, 239); + case 'n': return u3nc(0, 248); + case 's': return u3nc(0, 86); + default: return 0; + } + default: return 0; + } + case 'r': switch (two) { + case 'a': switch (three) { + case 'b': return u3nc(0, 131); + case 'c': return u3nc(0, 184); + case 'd': return u3nc(0, 201); + case 'g': return u3nc(0, 204); + case 'l': return u3nc(0, 143); + case 'm': return u3nc(0, 52); + case 'n': return u3nc(0, 123); + case 'p': return u3nc(0, 228); + case 'v': return u3nc(0, 150); + default: return 0; + } + case 'i': switch (three) { + case 'b': return u3nc(0, 222); + case 'c': return u3nc(0, 167); + case 'd': return u3nc(0, 147); + case 'g': return u3nc(0, 16); + case 'l': return u3nc(0, 64); + case 'n': return u3nc(0, 28); + case 'p': return u3nc(0, 151); + case 's': return u3nc(0, 220); + case 't': return u3nc(0, 80); + case 'v': return u3nc(0, 237); + default: return 0; + } + case 'o': switch (three) { + case 'c': return u3nc(0, 58); + case 'l': return u3nc(0, 133); + case 'n': return u3nc(0, 96); + case 'p': return u3nc(0, 75); + case 's': return u3nc(0, 245); + case 'v': return u3nc(0, 35); + default: return 0; + } + default: return 0; + } + case 's': switch (two) { + case 'a': switch (three) { + case 'b': return u3nc(0, 13); + case 'l': return u3nc(0, 115); + case 'm': return u3nc(0, 4); + case 'n': return u3nc(0, 68); + case 'p': return u3nc(0, 177); + case 'r': return u3nc(0, 229); + case 't': return u3nc(0, 38); + case 'v': return u3nc(0, 85); + default: return 0; + } + case 'i': switch (three) { + case 'b': return u3nc(0, 15); + case 'c': return u3nc(0, 74); + case 'd': return u3nc(0, 119); + case 'g': return u3nc(0, 6); + case 'l': return u3nc(0, 30); + case 'm': return u3nc(0, 163); + case 'p': return u3nc(0, 95); + case 't': return u3nc(0, 71); + case 'v': return u3nc(0, 112); + default: return 0; + } + case 'o': switch (three) { + case 'c': return u3nc(0, 100); + case 'g': return u3nc(0, 10); + case 'l': return u3nc(0, 17); + case 'm': return u3nc(0, 89); + case 'n': return u3nc(0, 164); + case 'p': return u3nc(0, 142); + case 'r': return u3nc(0, 251); + case 'v': return u3nc(0, 249); + default: return 0; + } + default: return 0; + } + case 't': switch (two) { + case 'a': switch (three) { + case 'b': return u3nc(0, 40); + case 'c': return u3nc(0, 160); + case 'd': return u3nc(0, 55); + case 'g': return u3nc(0, 113); + case 'l': return u3nc(0, 241); + case 'm': return u3nc(0, 83); + case 'n': return u3nc(0, 118); + case 'p': return u3nc(0, 168); + case 'r': return u3nc(0, 121); + case 's': return u3nc(0, 109); + default: return 0; + } + case 'i': switch (three) { + case 'c': return u3nc(0, 42); + case 'd': return u3nc(0, 175); + case 'l': return u3nc(0, 154); + case 'm': return u3nc(0, 108); + case 'n': return u3nc(0, 155); + case 'p': return u3nc(0, 73); + case 'r': return u3nc(0, 53); + default: return 0; + } + case 'o': switch (three) { + case 'b': return u3nc(0, 132); + case 'c': return u3nc(0, 189); + case 'd': return u3nc(0, 153); + case 'g': return u3nc(0, 29); + case 'l': return u3nc(0, 84); + case 'm': return u3nc(0, 192); + case 'n': return u3nc(0, 246); + case 'p': return u3nc(0, 207); + case 'r': return u3nc(0, 44); + default: return 0; + } + default: return 0; + } + case 'w': switch (two) { + case 'a': switch (three) { + case 'c': return u3nc(0, 12); + case 'l': return u3nc(0, 227); + case 'n': return u3nc(0, 3); + case 't': return u3nc(0, 101); + default: return 0; + } + case 'i': switch (three) { + case 'c': return u3nc(0, 99); + case 'd': return u3nc(0, 59); + case 'n': return u3nc(0, 54); + case 's': return u3nc(0, 14); + case 't': return u3nc(0, 76); + default: return 0; + } + case 'o': switch (three) { + case 'l': return u3nc(0, 125); + case 'r': return u3nc(0, 94); + default: return 0; + } + default: return 0; + } + default: return 0; + } +} + +void +u3_po_to_prefix(u3_noun id, c3_y* a, c3_y* b, c3_y* c) +{ + switch (id) { + case 0: *a = 'd'; *b = 'o'; *c = 'z'; break; + case 1: *a = 'm'; *b = 'a'; *c = 'r'; break; + case 2: *a = 'b'; *b = 'i'; *c = 'n'; break; + case 3: *a = 'w'; *b = 'a'; *c = 'n'; break; + case 4: *a = 's'; *b = 'a'; *c = 'm'; break; + case 5: *a = 'l'; *b = 'i'; *c = 't'; break; + case 6: *a = 's'; *b = 'i'; *c = 'g'; break; + case 7: *a = 'h'; *b = 'i'; *c = 'd'; break; + case 8: *a = 'f'; *b = 'i'; *c = 'd'; break; + case 9: *a = 'l'; *b = 'i'; *c = 's'; break; + case 10: *a = 's'; *b = 'o'; *c = 'g'; break; + case 11: *a = 'd'; *b = 'i'; *c = 'r'; break; + case 12: *a = 'w'; *b = 'a'; *c = 'c'; break; + case 13: *a = 's'; *b = 'a'; *c = 'b'; break; + case 14: *a = 'w'; *b = 'i'; *c = 's'; break; + case 15: *a = 's'; *b = 'i'; *c = 'b'; break; + case 16: *a = 'r'; *b = 'i'; *c = 'g'; break; + case 17: *a = 's'; *b = 'o'; *c = 'l'; break; + case 18: *a = 'd'; *b = 'o'; *c = 'p'; break; + case 19: *a = 'm'; *b = 'o'; *c = 'd'; break; + case 20: *a = 'f'; *b = 'o'; *c = 'g'; break; + case 21: *a = 'l'; *b = 'i'; *c = 'd'; break; + case 22: *a = 'h'; *b = 'o'; *c = 'p'; break; + case 23: *a = 'd'; *b = 'a'; *c = 'r'; break; + case 24: *a = 'd'; *b = 'o'; *c = 'r'; break; + case 25: *a = 'l'; *b = 'o'; *c = 'r'; break; + case 26: *a = 'h'; *b = 'o'; *c = 'd'; break; + case 27: *a = 'f'; *b = 'o'; *c = 'l'; break; + case 28: *a = 'r'; *b = 'i'; *c = 'n'; break; + case 29: *a = 't'; *b = 'o'; *c = 'g'; break; + case 30: *a = 's'; *b = 'i'; *c = 'l'; break; + case 31: *a = 'm'; *b = 'i'; *c = 'r'; break; + case 32: *a = 'h'; *b = 'o'; *c = 'l'; break; + case 33: *a = 'p'; *b = 'a'; *c = 's'; break; + case 34: *a = 'l'; *b = 'a'; *c = 'c'; break; + case 35: *a = 'r'; *b = 'o'; *c = 'v'; break; + case 36: *a = 'l'; *b = 'i'; *c = 'v'; break; + case 37: *a = 'd'; *b = 'a'; *c = 'l'; break; + case 38: *a = 's'; *b = 'a'; *c = 't'; break; + case 39: *a = 'l'; *b = 'i'; *c = 'b'; break; + case 40: *a = 't'; *b = 'a'; *c = 'b'; break; + case 41: *a = 'h'; *b = 'a'; *c = 'n'; break; + case 42: *a = 't'; *b = 'i'; *c = 'c'; break; + case 43: *a = 'p'; *b = 'i'; *c = 'd'; break; + case 44: *a = 't'; *b = 'o'; *c = 'r'; break; + case 45: *a = 'b'; *b = 'o'; *c = 'l'; break; + case 46: *a = 'f'; *b = 'o'; *c = 's'; break; + case 47: *a = 'd'; *b = 'o'; *c = 't'; break; + case 48: *a = 'l'; *b = 'o'; *c = 's'; break; + case 49: *a = 'd'; *b = 'i'; *c = 'l'; break; + case 50: *a = 'f'; *b = 'o'; *c = 'r'; break; + case 51: *a = 'p'; *b = 'i'; *c = 'l'; break; + case 52: *a = 'r'; *b = 'a'; *c = 'm'; break; + case 53: *a = 't'; *b = 'i'; *c = 'r'; break; + case 54: *a = 'w'; *b = 'i'; *c = 'n'; break; + case 55: *a = 't'; *b = 'a'; *c = 'd'; break; + case 56: *a = 'b'; *b = 'i'; *c = 'c'; break; + case 57: *a = 'd'; *b = 'i'; *c = 'f'; break; + case 58: *a = 'r'; *b = 'o'; *c = 'c'; break; + case 59: *a = 'w'; *b = 'i'; *c = 'd'; break; + case 60: *a = 'b'; *b = 'i'; *c = 's'; break; + case 61: *a = 'd'; *b = 'a'; *c = 's'; break; + case 62: *a = 'm'; *b = 'i'; *c = 'd'; break; + case 63: *a = 'l'; *b = 'o'; *c = 'p'; break; + case 64: *a = 'r'; *b = 'i'; *c = 'l'; break; + case 65: *a = 'n'; *b = 'a'; *c = 'r'; break; + case 66: *a = 'd'; *b = 'a'; *c = 'p'; break; + case 67: *a = 'm'; *b = 'o'; *c = 'l'; break; + case 68: *a = 's'; *b = 'a'; *c = 'n'; break; + case 69: *a = 'l'; *b = 'o'; *c = 'c'; break; + case 70: *a = 'n'; *b = 'o'; *c = 'v'; break; + case 71: *a = 's'; *b = 'i'; *c = 't'; break; + case 72: *a = 'n'; *b = 'i'; *c = 'd'; break; + case 73: *a = 't'; *b = 'i'; *c = 'p'; break; + case 74: *a = 's'; *b = 'i'; *c = 'c'; break; + case 75: *a = 'r'; *b = 'o'; *c = 'p'; break; + case 76: *a = 'w'; *b = 'i'; *c = 't'; break; + case 77: *a = 'n'; *b = 'a'; *c = 't'; break; + case 78: *a = 'p'; *b = 'a'; *c = 'n'; break; + case 79: *a = 'm'; *b = 'i'; *c = 'n'; break; + case 80: *a = 'r'; *b = 'i'; *c = 't'; break; + case 81: *a = 'p'; *b = 'o'; *c = 'd'; break; + case 82: *a = 'm'; *b = 'o'; *c = 't'; break; + case 83: *a = 't'; *b = 'a'; *c = 'm'; break; + case 84: *a = 't'; *b = 'o'; *c = 'l'; break; + case 85: *a = 's'; *b = 'a'; *c = 'v'; break; + case 86: *a = 'p'; *b = 'o'; *c = 's'; break; + case 87: *a = 'n'; *b = 'a'; *c = 'p'; break; + case 88: *a = 'n'; *b = 'o'; *c = 'p'; break; + case 89: *a = 's'; *b = 'o'; *c = 'm'; break; + case 90: *a = 'f'; *b = 'i'; *c = 'n'; break; + case 91: *a = 'f'; *b = 'o'; *c = 'n'; break; + case 92: *a = 'b'; *b = 'a'; *c = 'n'; break; + case 93: *a = 'm'; *b = 'o'; *c = 'r'; break; + case 94: *a = 'w'; *b = 'o'; *c = 'r'; break; + case 95: *a = 's'; *b = 'i'; *c = 'p'; break; + case 96: *a = 'r'; *b = 'o'; *c = 'n'; break; + case 97: *a = 'n'; *b = 'o'; *c = 'r'; break; + case 98: *a = 'b'; *b = 'o'; *c = 't'; break; + case 99: *a = 'w'; *b = 'i'; *c = 'c'; break; + case 100: *a = 's'; *b = 'o'; *c = 'c'; break; + case 101: *a = 'w'; *b = 'a'; *c = 't'; break; + case 102: *a = 'd'; *b = 'o'; *c = 'l'; break; + case 103: *a = 'm'; *b = 'a'; *c = 'g'; break; + case 104: *a = 'p'; *b = 'i'; *c = 'c'; break; + case 105: *a = 'd'; *b = 'a'; *c = 'v'; break; + case 106: *a = 'b'; *b = 'i'; *c = 'd'; break; + case 107: *a = 'b'; *b = 'a'; *c = 'l'; break; + case 108: *a = 't'; *b = 'i'; *c = 'm'; break; + case 109: *a = 't'; *b = 'a'; *c = 's'; break; + case 110: *a = 'm'; *b = 'a'; *c = 'l'; break; + case 111: *a = 'l'; *b = 'i'; *c = 'g'; break; + case 112: *a = 's'; *b = 'i'; *c = 'v'; break; + case 113: *a = 't'; *b = 'a'; *c = 'g'; break; + case 114: *a = 'p'; *b = 'a'; *c = 'd'; break; + case 115: *a = 's'; *b = 'a'; *c = 'l'; break; + case 116: *a = 'd'; *b = 'i'; *c = 'v'; break; + case 117: *a = 'd'; *b = 'a'; *c = 'c'; break; + case 118: *a = 't'; *b = 'a'; *c = 'n'; break; + case 119: *a = 's'; *b = 'i'; *c = 'd'; break; + case 120: *a = 'f'; *b = 'a'; *c = 'b'; break; + case 121: *a = 't'; *b = 'a'; *c = 'r'; break; + case 122: *a = 'm'; *b = 'o'; *c = 'n'; break; + case 123: *a = 'r'; *b = 'a'; *c = 'n'; break; + case 124: *a = 'n'; *b = 'i'; *c = 's'; break; + case 125: *a = 'w'; *b = 'o'; *c = 'l'; break; + case 126: *a = 'm'; *b = 'i'; *c = 's'; break; + case 127: *a = 'p'; *b = 'a'; *c = 'l'; break; + case 128: *a = 'l'; *b = 'a'; *c = 's'; break; + case 129: *a = 'd'; *b = 'i'; *c = 's'; break; + case 130: *a = 'm'; *b = 'a'; *c = 'p'; break; + case 131: *a = 'r'; *b = 'a'; *c = 'b'; break; + case 132: *a = 't'; *b = 'o'; *c = 'b'; break; + case 133: *a = 'r'; *b = 'o'; *c = 'l'; break; + case 134: *a = 'l'; *b = 'a'; *c = 't'; break; + case 135: *a = 'l'; *b = 'o'; *c = 'n'; break; + case 136: *a = 'n'; *b = 'o'; *c = 'd'; break; + case 137: *a = 'n'; *b = 'a'; *c = 'v'; break; + case 138: *a = 'f'; *b = 'i'; *c = 'g'; break; + case 139: *a = 'n'; *b = 'o'; *c = 'm'; break; + case 140: *a = 'n'; *b = 'i'; *c = 'b'; break; + case 141: *a = 'p'; *b = 'a'; *c = 'g'; break; + case 142: *a = 's'; *b = 'o'; *c = 'p'; break; + case 143: *a = 'r'; *b = 'a'; *c = 'l'; break; + case 144: *a = 'b'; *b = 'i'; *c = 'l'; break; + case 145: *a = 'h'; *b = 'a'; *c = 'd'; break; + case 146: *a = 'd'; *b = 'o'; *c = 'c'; break; + case 147: *a = 'r'; *b = 'i'; *c = 'd'; break; + case 148: *a = 'm'; *b = 'o'; *c = 'c'; break; + case 149: *a = 'p'; *b = 'a'; *c = 'c'; break; + case 150: *a = 'r'; *b = 'a'; *c = 'v'; break; + case 151: *a = 'r'; *b = 'i'; *c = 'p'; break; + case 152: *a = 'f'; *b = 'a'; *c = 'l'; break; + case 153: *a = 't'; *b = 'o'; *c = 'd'; break; + case 154: *a = 't'; *b = 'i'; *c = 'l'; break; + case 155: *a = 't'; *b = 'i'; *c = 'n'; break; + case 156: *a = 'h'; *b = 'a'; *c = 'p'; break; + case 157: *a = 'm'; *b = 'i'; *c = 'c'; break; + case 158: *a = 'f'; *b = 'a'; *c = 'n'; break; + case 159: *a = 'p'; *b = 'a'; *c = 't'; break; + case 160: *a = 't'; *b = 'a'; *c = 'c'; break; + case 161: *a = 'l'; *b = 'a'; *c = 'b'; break; + case 162: *a = 'm'; *b = 'o'; *c = 'g'; break; + case 163: *a = 's'; *b = 'i'; *c = 'm'; break; + case 164: *a = 's'; *b = 'o'; *c = 'n'; break; + case 165: *a = 'p'; *b = 'i'; *c = 'n'; break; + case 166: *a = 'l'; *b = 'o'; *c = 'm'; break; + case 167: *a = 'r'; *b = 'i'; *c = 'c'; break; + case 168: *a = 't'; *b = 'a'; *c = 'p'; break; + case 169: *a = 'f'; *b = 'i'; *c = 'r'; break; + case 170: *a = 'h'; *b = 'a'; *c = 's'; break; + case 171: *a = 'b'; *b = 'o'; *c = 's'; break; + case 172: *a = 'b'; *b = 'a'; *c = 't'; break; + case 173: *a = 'p'; *b = 'o'; *c = 'c'; break; + case 174: *a = 'h'; *b = 'a'; *c = 'c'; break; + case 175: *a = 't'; *b = 'i'; *c = 'd'; break; + case 176: *a = 'h'; *b = 'a'; *c = 'v'; break; + case 177: *a = 's'; *b = 'a'; *c = 'p'; break; + case 178: *a = 'l'; *b = 'i'; *c = 'n'; break; + case 179: *a = 'd'; *b = 'i'; *c = 'b'; break; + case 180: *a = 'h'; *b = 'o'; *c = 's'; break; + case 181: *a = 'd'; *b = 'a'; *c = 'b'; break; + case 182: *a = 'b'; *b = 'i'; *c = 't'; break; + case 183: *a = 'b'; *b = 'a'; *c = 'r'; break; + case 184: *a = 'r'; *b = 'a'; *c = 'c'; break; + case 185: *a = 'p'; *b = 'a'; *c = 'r'; break; + case 186: *a = 'l'; *b = 'o'; *c = 'd'; break; + case 187: *a = 'd'; *b = 'o'; *c = 's'; break; + case 188: *a = 'b'; *b = 'o'; *c = 'r'; break; + case 189: *a = 't'; *b = 'o'; *c = 'c'; break; + case 190: *a = 'h'; *b = 'i'; *c = 'l'; break; + case 191: *a = 'm'; *b = 'a'; *c = 'c'; break; + case 192: *a = 't'; *b = 'o'; *c = 'm'; break; + case 193: *a = 'd'; *b = 'i'; *c = 'g'; break; + case 194: *a = 'f'; *b = 'i'; *c = 'l'; break; + case 195: *a = 'f'; *b = 'a'; *c = 's'; break; + case 196: *a = 'm'; *b = 'i'; *c = 't'; break; + case 197: *a = 'h'; *b = 'o'; *c = 'b'; break; + case 198: *a = 'h'; *b = 'a'; *c = 'r'; break; + case 199: *a = 'm'; *b = 'i'; *c = 'g'; break; + case 200: *a = 'h'; *b = 'i'; *c = 'n'; break; + case 201: *a = 'r'; *b = 'a'; *c = 'd'; break; + case 202: *a = 'm'; *b = 'a'; *c = 's'; break; + case 203: *a = 'h'; *b = 'a'; *c = 'l'; break; + case 204: *a = 'r'; *b = 'a'; *c = 'g'; break; + case 205: *a = 'l'; *b = 'a'; *c = 'g'; break; + case 206: *a = 'f'; *b = 'a'; *c = 'd'; break; + case 207: *a = 't'; *b = 'o'; *c = 'p'; break; + case 208: *a = 'm'; *b = 'o'; *c = 'p'; break; + case 209: *a = 'h'; *b = 'a'; *c = 'b'; break; + case 210: *a = 'n'; *b = 'i'; *c = 'l'; break; + case 211: *a = 'n'; *b = 'o'; *c = 's'; break; + case 212: *a = 'm'; *b = 'i'; *c = 'l'; break; + case 213: *a = 'f'; *b = 'o'; *c = 'p'; break; + case 214: *a = 'f'; *b = 'a'; *c = 'm'; break; + case 215: *a = 'd'; *b = 'a'; *c = 't'; break; + case 216: *a = 'n'; *b = 'o'; *c = 'l'; break; + case 217: *a = 'd'; *b = 'i'; *c = 'n'; break; + case 218: *a = 'h'; *b = 'a'; *c = 't'; break; + case 219: *a = 'n'; *b = 'a'; *c = 'c'; break; + case 220: *a = 'r'; *b = 'i'; *c = 's'; break; + case 221: *a = 'f'; *b = 'o'; *c = 't'; break; + case 222: *a = 'r'; *b = 'i'; *c = 'b'; break; + case 223: *a = 'h'; *b = 'o'; *c = 'c'; break; + case 224: *a = 'n'; *b = 'i'; *c = 'm'; break; + case 225: *a = 'l'; *b = 'a'; *c = 'r'; break; + case 226: *a = 'f'; *b = 'i'; *c = 't'; break; + case 227: *a = 'w'; *b = 'a'; *c = 'l'; break; + case 228: *a = 'r'; *b = 'a'; *c = 'p'; break; + case 229: *a = 's'; *b = 'a'; *c = 'r'; break; + case 230: *a = 'n'; *b = 'a'; *c = 'l'; break; + case 231: *a = 'm'; *b = 'o'; *c = 's'; break; + case 232: *a = 'l'; *b = 'a'; *c = 'n'; break; + case 233: *a = 'd'; *b = 'o'; *c = 'n'; break; + case 234: *a = 'd'; *b = 'a'; *c = 'n'; break; + case 235: *a = 'l'; *b = 'a'; *c = 'd'; break; + case 236: *a = 'd'; *b = 'o'; *c = 'v'; break; + case 237: *a = 'r'; *b = 'i'; *c = 'v'; break; + case 238: *a = 'b'; *b = 'a'; *c = 'c'; break; + case 239: *a = 'p'; *b = 'o'; *c = 'l'; break; + case 240: *a = 'l'; *b = 'a'; *c = 'p'; break; + case 241: *a = 't'; *b = 'a'; *c = 'l'; break; + case 242: *a = 'p'; *b = 'i'; *c = 't'; break; + case 243: *a = 'n'; *b = 'a'; *c = 'm'; break; + case 244: *a = 'b'; *b = 'o'; *c = 'n'; break; + case 245: *a = 'r'; *b = 'o'; *c = 's'; break; + case 246: *a = 't'; *b = 'o'; *c = 'n'; break; + case 247: *a = 'f'; *b = 'o'; *c = 'd'; break; + case 248: *a = 'p'; *b = 'o'; *c = 'n'; break; + case 249: *a = 's'; *b = 'o'; *c = 'v'; break; + case 250: *a = 'n'; *b = 'o'; *c = 'c'; break; + case 251: *a = 's'; *b = 'o'; *c = 'r'; break; + case 252: *a = 'l'; *b = 'a'; *c = 'v'; break; + case 253: *a = 'm'; *b = 'a'; *c = 't'; break; + case 254: *a = 'm'; *b = 'i'; *c = 'p'; break; + case 255: *a = 'f'; *b = 'i'; *c = 'p'; break; + default: u3m_bail(c3__exit); + } +} + +u3_noun +u3_po_find_suffix(c3_y one, c3_y two, c3_y three) { + switch (one) { + case 'b': switch (two) { + case 'e': switch (three) { + case 'c': return u3nc(0, 238); + case 'l': return u3nc(0, 107); + case 'n': return u3nc(0, 92); + case 'p': return u3nc(0, 183); + case 'r': return u3nc(0, 172); + case 's': return u3nc(0, 56); + case 't': return u3nc(0, 106); + case 'x': return u3nc(0, 144); + default: return 0; + } + case 'u': switch (three) { + case 'd': return u3nc(0, 2); + case 'r': return u3nc(0, 60); + case 's': return u3nc(0, 182); + default: return 0; + } + case 'y': switch (three) { + case 'l': return u3nc(0, 176); + case 'n': return u3nc(0, 45); + case 'r': return u3nc(0, 244); + case 't': return u3nc(0, 188); + default: return 0; + } + default: return 0; + } + case 'd': switch (two) { + case 'e': switch (three) { + case 'b': return u3nc(0, 171); + case 'c': return u3nc(0, 98); + case 'f': return u3nc(0, 181); + case 'g': return u3nc(0, 117); + case 'l': return u3nc(0, 37); + case 'm': return u3nc(0, 234); + case 'n': return u3nc(0, 66); + case 'p': return u3nc(0, 23); + case 'r': return u3nc(0, 61); + case 's': return u3nc(0, 215); + case 't': return u3nc(0, 105); + case 'v': return u3nc(0, 179); + case 'x': return u3nc(0, 57); + default: return 0; + } + case 'u': switch (three) { + case 'c': return u3nc(0, 193); + case 'l': return u3nc(0, 49); + case 'n': return u3nc(0, 217); + case 'r': return u3nc(0, 11); + case 's': return u3nc(0, 129); + case 't': return u3nc(0, 116); + case 'x': return u3nc(0, 146); + default: return 0; + } + case 'y': switch (three) { + case 'l': return u3nc(0, 102); + case 'n': return u3nc(0, 233); + case 'r': return u3nc(0, 18); + case 's': return u3nc(0, 24); + case 't': return u3nc(0, 187); + default: return 0; + } + default: return 0; + } + case 'f': switch (two) { + case 'e': switch (three) { + case 'b': return u3nc(0, 47); + case 'd': return u3nc(0, 236); + case 'l': return u3nc(0, 120); + case 'n': return u3nc(0, 206); + case 'p': return u3nc(0, 152); + case 'r': return u3nc(0, 158); + case 's': return u3nc(0, 255); + case 't': return u3nc(0, 214); + case 'x': return u3nc(0, 195); + default: return 0; + } + case 'u': switch (three) { + case 'l': return u3nc(0, 8); + case 'n': return u3nc(0, 138); + case 'r': return u3nc(0, 194); + case 's': return u3nc(0, 90); + default: return 0; + } + case 'y': switch (three) { + case 'l': return u3nc(0, 169); + case 'n': return u3nc(0, 226); + case 'r': return u3nc(0, 247); + default: return 0; + } + default: return 0; + } + case 'h': switch (two) { + case 'e': switch (three) { + case 'b': return u3nc(0, 20); + case 'c': return u3nc(0, 27); + case 'p': return u3nc(0, 91); + case 's': return u3nc(0, 213); + case 't': return u3nc(0, 50); + case 'x': return u3nc(0, 46); + default: return 0; + } + case 'u': switch (three) { + case 'l': return u3nc(0, 221); + case 's': return u3nc(0, 209); + case 't': return u3nc(0, 174); + default: return 0; + } + default: return 0; + } + case 'l': switch (two) { + case 'e': switch (three) { + case 'b': return u3nc(0, 145); + case 'c': return u3nc(0, 203); + case 'd': return u3nc(0, 41); + case 'g': return u3nc(0, 156); + case 'n': return u3nc(0, 198); + case 'p': return u3nc(0, 170); + case 'r': return u3nc(0, 218); + case 't': return u3nc(0, 7); + case 'v': return u3nc(0, 190); + case 'x': return u3nc(0, 200); + default: return 0; + } + case 'u': switch (three) { + case 'c': return u3nc(0, 197); + case 'd': return u3nc(0, 223); + case 'g': return u3nc(0, 26); + case 'n': return u3nc(0, 32); + case 'p': return u3nc(0, 22); + case 'r': return u3nc(0, 180); + case 's': return u3nc(0, 161); + case 't': return u3nc(0, 34); + case 'x': return u3nc(0, 235); + default: return 0; + } + case 'y': switch (three) { + case 'd': return u3nc(0, 205); + case 'n': return u3nc(0, 232); + case 'r': return u3nc(0, 240); + case 's': return u3nc(0, 225); + case 't': return u3nc(0, 128); + case 'x': return u3nc(0, 134); + default: return 0; + } + default: return 0; + } + case 'm': switch (two) { + case 'e': switch (three) { + case 'b': return u3nc(0, 114); + case 'c': return u3nc(0, 141); + case 'd': return u3nc(0, 127); + case 'g': return u3nc(0, 78); + case 'l': return u3nc(0, 185); + case 'p': return u3nc(0, 33); + case 'r': return u3nc(0, 159); + case 's': return u3nc(0, 104); + case 't': return u3nc(0, 43); + case 'v': return u3nc(0, 51); + case 'x': return u3nc(0, 165); + default: return 0; + } + case 'u': switch (three) { + case 'd': return u3nc(0, 242); + case 'g': return u3nc(0, 173); + case 'l': return u3nc(0, 81); + case 'n': return u3nc(0, 239); + case 'r': return u3nc(0, 248); + case 's': return u3nc(0, 93); + case 't': return u3nc(0, 86); + default: return 0; + } + case 'y': switch (three) { + case 'l': return u3nc(0, 191); + case 'n': return u3nc(0, 103); + case 'r': return u3nc(0, 110); + default: return 0; + } + default: return 0; + } + case 'n': switch (two) { + case 'e': switch (three) { + case 'b': return u3nc(0, 130); + case 'c': return u3nc(0, 1); + case 'd': return u3nc(0, 202); + case 'l': return u3nc(0, 253); + case 'm': return u3nc(0, 157); + case 'p': return u3nc(0, 62); + case 'r': return u3nc(0, 199); + case 's': return u3nc(0, 212); + case 't': return u3nc(0, 79); + case 'v': return u3nc(0, 254); + case 'x': return u3nc(0, 31); + default: return 0; + } + case 'u': switch (three) { + case 'b': return u3nc(0, 126); + case 'l': return u3nc(0, 196); + case 'm': return u3nc(0, 148); + case 'p': return u3nc(0, 19); + case 's': return u3nc(0, 162); + case 't': return u3nc(0, 67); + case 'x': return u3nc(0, 122); + default: return 0; + } + case 'y': switch (three) { + case 'd': return u3nc(0, 208); + case 'l': return u3nc(0, 231); + case 'm': return u3nc(0, 82); + case 'r': return u3nc(0, 219); + case 's': return u3nc(0, 230); + case 't': return u3nc(0, 243); + case 'x': return u3nc(0, 87); + default: return 0; + } + default: return 0; + } + case 'p': switch (two) { + case 'e': switch (three) { + case 'c': return u3nc(0, 252); + case 'd': return u3nc(0, 39); + case 'g': return u3nc(0, 21); + case 'l': return u3nc(0, 111); + case 'm': return u3nc(0, 178); + case 'n': return u3nc(0, 9); + case 'r': return u3nc(0, 5); + case 's': return u3nc(0, 36); + case 't': return u3nc(0, 69); + case 'x': return u3nc(0, 186); + default: return 0; + } + case 'u': switch (three) { + case 'b': return u3nc(0, 166); + case 'n': return u3nc(0, 135); + case 'r': return u3nc(0, 63); + case 't': return u3nc(0, 25); + default: return 0; + } + case 'y': switch (three) { + case 'l': return u3nc(0, 48); + case 'x': return u3nc(0, 149); + default: return 0; + } + default: return 0; + } + case 'r': switch (two) { + case 'e': switch (three) { + case 'b': return u3nc(0, 65); + case 'c': return u3nc(0, 77); + case 'd': return u3nc(0, 137); + case 'f': return u3nc(0, 140); + case 'g': return u3nc(0, 72); + case 'l': return u3nc(0, 210); + case 'm': return u3nc(0, 224); + case 'n': return u3nc(0, 124); + case 'p': return u3nc(0, 250); + case 's': return u3nc(0, 136); + case 't': return u3nc(0, 216); + case 'v': return u3nc(0, 139); + case 'x': return u3nc(0, 88); + default: return 0; + } + case 'u': switch (three) { + case 'c': return u3nc(0, 97); + case 'd': return u3nc(0, 211); + case 'l': return u3nc(0, 70); + case 'm': return u3nc(0, 131); + case 'n': return u3nc(0, 184); + case 'p': return u3nc(0, 201); + case 's': return u3nc(0, 143); + case 't': return u3nc(0, 52); + case 'x': return u3nc(0, 123); + default: return 0; + } + case 'y': switch (three) { + case 'c': return u3nc(0, 228); + case 'd': return u3nc(0, 204); + case 'g': return u3nc(0, 150); + case 'l': return u3nc(0, 222); + case 'm': return u3nc(0, 167); + case 'n': return u3nc(0, 147); + case 'p': return u3nc(0, 16); + case 's': return u3nc(0, 64); + case 't': return u3nc(0, 28); + case 'x': return u3nc(0, 151); + default: return 0; + } + default: return 0; + } + case 's': switch (two) { + case 'e': switch (three) { + case 'b': return u3nc(0, 220); + case 'c': return u3nc(0, 80); + case 'd': return u3nc(0, 237); + case 'f': return u3nc(0, 58); + case 'g': return u3nc(0, 133); + case 'l': return u3nc(0, 96); + case 'm': return u3nc(0, 75); + case 'n': return u3nc(0, 245); + case 'p': return u3nc(0, 35); + case 'r': return u3nc(0, 13); + case 't': return u3nc(0, 115); + case 'v': return u3nc(0, 4); + default: return 0; + } + case 'u': switch (three) { + case 'b': return u3nc(0, 68); + case 'd': return u3nc(0, 177); + case 'g': return u3nc(0, 229); + case 'l': return u3nc(0, 38); + case 'm': return u3nc(0, 85); + case 'n': return u3nc(0, 15); + case 'p': return u3nc(0, 74); + case 'r': return u3nc(0, 119); + case 't': return u3nc(0, 6); + default: return 0; + } + case 'y': switch (three) { + case 'd': return u3nc(0, 30); + case 'l': return u3nc(0, 163); + case 'm': return u3nc(0, 95); + case 'n': return u3nc(0, 71); + case 'p': return u3nc(0, 112); + case 'r': return u3nc(0, 100); + case 't': return u3nc(0, 10); + case 'x': return u3nc(0, 17); + default: return 0; + } + default: return 0; + } + case 't': switch (two) { + case 'e': switch (three) { + case 'b': return u3nc(0, 89); + case 'c': return u3nc(0, 164); + case 'd': return u3nc(0, 142); + case 'g': return u3nc(0, 251); + case 'l': return u3nc(0, 249); + case 'm': return u3nc(0, 40); + case 'n': return u3nc(0, 160); + case 'p': return u3nc(0, 55); + case 'r': return u3nc(0, 113); + case 's': return u3nc(0, 241); + case 'v': return u3nc(0, 83); + case 'x': return u3nc(0, 118); + default: return 0; + } + case 'u': switch (three) { + case 'c': return u3nc(0, 168); + case 'd': return u3nc(0, 121); + case 'g': return u3nc(0, 109); + case 'l': return u3nc(0, 42); + case 'n': return u3nc(0, 175); + case 's': return u3nc(0, 154); + case 'x': return u3nc(0, 108); + default: return 0; + } + case 'y': switch (three) { + case 'c': return u3nc(0, 155); + case 'd': return u3nc(0, 73); + case 'l': return u3nc(0, 53); + case 'n': return u3nc(0, 132); + case 'p': return u3nc(0, 189); + case 'r': return u3nc(0, 153); + case 'v': return u3nc(0, 29); + default: return 0; + } + default: return 0; + } + case 'w': switch (two) { + case 'e': switch (three) { + case 'b': return u3nc(0, 84); + case 'd': return u3nc(0, 192); + case 'g': return u3nc(0, 246); + case 'l': return u3nc(0, 207); + case 'n': return u3nc(0, 44); + case 'p': return u3nc(0, 12); + case 'r': return u3nc(0, 227); + case 's': return u3nc(0, 3); + case 't': return u3nc(0, 101); + case 'x': return u3nc(0, 99); + default: return 0; + } + case 'y': switch (three) { + case 'c': return u3nc(0, 59); + case 'd': return u3nc(0, 54); + case 'l': return u3nc(0, 14); + case 'n': return u3nc(0, 76); + case 't': return u3nc(0, 125); + case 'x': return u3nc(0, 94); + default: return 0; + } + default: return 0; + } + case 'z': switch (two) { + case 'o': switch (three) { + case 'd': return u3nc(0, 0); + default: return 0; + } + default: return 0; + } + default: return 0; + } +} + +void +u3_po_to_suffix(u3_noun id, c3_y* a, c3_y* b, c3_y* c) +{ + switch (id) { + case 0: *a = 'z'; *b = 'o'; *c = 'd'; break; + case 1: *a = 'n'; *b = 'e'; *c = 'c'; break; + case 2: *a = 'b'; *b = 'u'; *c = 'd'; break; + case 3: *a = 'w'; *b = 'e'; *c = 's'; break; + case 4: *a = 's'; *b = 'e'; *c = 'v'; break; + case 5: *a = 'p'; *b = 'e'; *c = 'r'; break; + case 6: *a = 's'; *b = 'u'; *c = 't'; break; + case 7: *a = 'l'; *b = 'e'; *c = 't'; break; + case 8: *a = 'f'; *b = 'u'; *c = 'l'; break; + case 9: *a = 'p'; *b = 'e'; *c = 'n'; break; + case 10: *a = 's'; *b = 'y'; *c = 't'; break; + case 11: *a = 'd'; *b = 'u'; *c = 'r'; break; + case 12: *a = 'w'; *b = 'e'; *c = 'p'; break; + case 13: *a = 's'; *b = 'e'; *c = 'r'; break; + case 14: *a = 'w'; *b = 'y'; *c = 'l'; break; + case 15: *a = 's'; *b = 'u'; *c = 'n'; break; + case 16: *a = 'r'; *b = 'y'; *c = 'p'; break; + case 17: *a = 's'; *b = 'y'; *c = 'x'; break; + case 18: *a = 'd'; *b = 'y'; *c = 'r'; break; + case 19: *a = 'n'; *b = 'u'; *c = 'p'; break; + case 20: *a = 'h'; *b = 'e'; *c = 'b'; break; + case 21: *a = 'p'; *b = 'e'; *c = 'g'; break; + case 22: *a = 'l'; *b = 'u'; *c = 'p'; break; + case 23: *a = 'd'; *b = 'e'; *c = 'p'; break; + case 24: *a = 'd'; *b = 'y'; *c = 's'; break; + case 25: *a = 'p'; *b = 'u'; *c = 't'; break; + case 26: *a = 'l'; *b = 'u'; *c = 'g'; break; + case 27: *a = 'h'; *b = 'e'; *c = 'c'; break; + case 28: *a = 'r'; *b = 'y'; *c = 't'; break; + case 29: *a = 't'; *b = 'y'; *c = 'v'; break; + case 30: *a = 's'; *b = 'y'; *c = 'd'; break; + case 31: *a = 'n'; *b = 'e'; *c = 'x'; break; + case 32: *a = 'l'; *b = 'u'; *c = 'n'; break; + case 33: *a = 'm'; *b = 'e'; *c = 'p'; break; + case 34: *a = 'l'; *b = 'u'; *c = 't'; break; + case 35: *a = 's'; *b = 'e'; *c = 'p'; break; + case 36: *a = 'p'; *b = 'e'; *c = 's'; break; + case 37: *a = 'd'; *b = 'e'; *c = 'l'; break; + case 38: *a = 's'; *b = 'u'; *c = 'l'; break; + case 39: *a = 'p'; *b = 'e'; *c = 'd'; break; + case 40: *a = 't'; *b = 'e'; *c = 'm'; break; + case 41: *a = 'l'; *b = 'e'; *c = 'd'; break; + case 42: *a = 't'; *b = 'u'; *c = 'l'; break; + case 43: *a = 'm'; *b = 'e'; *c = 't'; break; + case 44: *a = 'w'; *b = 'e'; *c = 'n'; break; + case 45: *a = 'b'; *b = 'y'; *c = 'n'; break; + case 46: *a = 'h'; *b = 'e'; *c = 'x'; break; + case 47: *a = 'f'; *b = 'e'; *c = 'b'; break; + case 48: *a = 'p'; *b = 'y'; *c = 'l'; break; + case 49: *a = 'd'; *b = 'u'; *c = 'l'; break; + case 50: *a = 'h'; *b = 'e'; *c = 't'; break; + case 51: *a = 'm'; *b = 'e'; *c = 'v'; break; + case 52: *a = 'r'; *b = 'u'; *c = 't'; break; + case 53: *a = 't'; *b = 'y'; *c = 'l'; break; + case 54: *a = 'w'; *b = 'y'; *c = 'd'; break; + case 55: *a = 't'; *b = 'e'; *c = 'p'; break; + case 56: *a = 'b'; *b = 'e'; *c = 's'; break; + case 57: *a = 'd'; *b = 'e'; *c = 'x'; break; + case 58: *a = 's'; *b = 'e'; *c = 'f'; break; + case 59: *a = 'w'; *b = 'y'; *c = 'c'; break; + case 60: *a = 'b'; *b = 'u'; *c = 'r'; break; + case 61: *a = 'd'; *b = 'e'; *c = 'r'; break; + case 62: *a = 'n'; *b = 'e'; *c = 'p'; break; + case 63: *a = 'p'; *b = 'u'; *c = 'r'; break; + case 64: *a = 'r'; *b = 'y'; *c = 's'; break; + case 65: *a = 'r'; *b = 'e'; *c = 'b'; break; + case 66: *a = 'd'; *b = 'e'; *c = 'n'; break; + case 67: *a = 'n'; *b = 'u'; *c = 't'; break; + case 68: *a = 's'; *b = 'u'; *c = 'b'; break; + case 69: *a = 'p'; *b = 'e'; *c = 't'; break; + case 70: *a = 'r'; *b = 'u'; *c = 'l'; break; + case 71: *a = 's'; *b = 'y'; *c = 'n'; break; + case 72: *a = 'r'; *b = 'e'; *c = 'g'; break; + case 73: *a = 't'; *b = 'y'; *c = 'd'; break; + case 74: *a = 's'; *b = 'u'; *c = 'p'; break; + case 75: *a = 's'; *b = 'e'; *c = 'm'; break; + case 76: *a = 'w'; *b = 'y'; *c = 'n'; break; + case 77: *a = 'r'; *b = 'e'; *c = 'c'; break; + case 78: *a = 'm'; *b = 'e'; *c = 'g'; break; + case 79: *a = 'n'; *b = 'e'; *c = 't'; break; + case 80: *a = 's'; *b = 'e'; *c = 'c'; break; + case 81: *a = 'm'; *b = 'u'; *c = 'l'; break; + case 82: *a = 'n'; *b = 'y'; *c = 'm'; break; + case 83: *a = 't'; *b = 'e'; *c = 'v'; break; + case 84: *a = 'w'; *b = 'e'; *c = 'b'; break; + case 85: *a = 's'; *b = 'u'; *c = 'm'; break; + case 86: *a = 'm'; *b = 'u'; *c = 't'; break; + case 87: *a = 'n'; *b = 'y'; *c = 'x'; break; + case 88: *a = 'r'; *b = 'e'; *c = 'x'; break; + case 89: *a = 't'; *b = 'e'; *c = 'b'; break; + case 90: *a = 'f'; *b = 'u'; *c = 's'; break; + case 91: *a = 'h'; *b = 'e'; *c = 'p'; break; + case 92: *a = 'b'; *b = 'e'; *c = 'n'; break; + case 93: *a = 'm'; *b = 'u'; *c = 's'; break; + case 94: *a = 'w'; *b = 'y'; *c = 'x'; break; + case 95: *a = 's'; *b = 'y'; *c = 'm'; break; + case 96: *a = 's'; *b = 'e'; *c = 'l'; break; + case 97: *a = 'r'; *b = 'u'; *c = 'c'; break; + case 98: *a = 'd'; *b = 'e'; *c = 'c'; break; + case 99: *a = 'w'; *b = 'e'; *c = 'x'; break; + case 100: *a = 's'; *b = 'y'; *c = 'r'; break; + case 101: *a = 'w'; *b = 'e'; *c = 't'; break; + case 102: *a = 'd'; *b = 'y'; *c = 'l'; break; + case 103: *a = 'm'; *b = 'y'; *c = 'n'; break; + case 104: *a = 'm'; *b = 'e'; *c = 's'; break; + case 105: *a = 'd'; *b = 'e'; *c = 't'; break; + case 106: *a = 'b'; *b = 'e'; *c = 't'; break; + case 107: *a = 'b'; *b = 'e'; *c = 'l'; break; + case 108: *a = 't'; *b = 'u'; *c = 'x'; break; + case 109: *a = 't'; *b = 'u'; *c = 'g'; break; + case 110: *a = 'm'; *b = 'y'; *c = 'r'; break; + case 111: *a = 'p'; *b = 'e'; *c = 'l'; break; + case 112: *a = 's'; *b = 'y'; *c = 'p'; break; + case 113: *a = 't'; *b = 'e'; *c = 'r'; break; + case 114: *a = 'm'; *b = 'e'; *c = 'b'; break; + case 115: *a = 's'; *b = 'e'; *c = 't'; break; + case 116: *a = 'd'; *b = 'u'; *c = 't'; break; + case 117: *a = 'd'; *b = 'e'; *c = 'g'; break; + case 118: *a = 't'; *b = 'e'; *c = 'x'; break; + case 119: *a = 's'; *b = 'u'; *c = 'r'; break; + case 120: *a = 'f'; *b = 'e'; *c = 'l'; break; + case 121: *a = 't'; *b = 'u'; *c = 'd'; break; + case 122: *a = 'n'; *b = 'u'; *c = 'x'; break; + case 123: *a = 'r'; *b = 'u'; *c = 'x'; break; + case 124: *a = 'r'; *b = 'e'; *c = 'n'; break; + case 125: *a = 'w'; *b = 'y'; *c = 't'; break; + case 126: *a = 'n'; *b = 'u'; *c = 'b'; break; + case 127: *a = 'm'; *b = 'e'; *c = 'd'; break; + case 128: *a = 'l'; *b = 'y'; *c = 't'; break; + case 129: *a = 'd'; *b = 'u'; *c = 's'; break; + case 130: *a = 'n'; *b = 'e'; *c = 'b'; break; + case 131: *a = 'r'; *b = 'u'; *c = 'm'; break; + case 132: *a = 't'; *b = 'y'; *c = 'n'; break; + case 133: *a = 's'; *b = 'e'; *c = 'g'; break; + case 134: *a = 'l'; *b = 'y'; *c = 'x'; break; + case 135: *a = 'p'; *b = 'u'; *c = 'n'; break; + case 136: *a = 'r'; *b = 'e'; *c = 's'; break; + case 137: *a = 'r'; *b = 'e'; *c = 'd'; break; + case 138: *a = 'f'; *b = 'u'; *c = 'n'; break; + case 139: *a = 'r'; *b = 'e'; *c = 'v'; break; + case 140: *a = 'r'; *b = 'e'; *c = 'f'; break; + case 141: *a = 'm'; *b = 'e'; *c = 'c'; break; + case 142: *a = 't'; *b = 'e'; *c = 'd'; break; + case 143: *a = 'r'; *b = 'u'; *c = 's'; break; + case 144: *a = 'b'; *b = 'e'; *c = 'x'; break; + case 145: *a = 'l'; *b = 'e'; *c = 'b'; break; + case 146: *a = 'd'; *b = 'u'; *c = 'x'; break; + case 147: *a = 'r'; *b = 'y'; *c = 'n'; break; + case 148: *a = 'n'; *b = 'u'; *c = 'm'; break; + case 149: *a = 'p'; *b = 'y'; *c = 'x'; break; + case 150: *a = 'r'; *b = 'y'; *c = 'g'; break; + case 151: *a = 'r'; *b = 'y'; *c = 'x'; break; + case 152: *a = 'f'; *b = 'e'; *c = 'p'; break; + case 153: *a = 't'; *b = 'y'; *c = 'r'; break; + case 154: *a = 't'; *b = 'u'; *c = 's'; break; + case 155: *a = 't'; *b = 'y'; *c = 'c'; break; + case 156: *a = 'l'; *b = 'e'; *c = 'g'; break; + case 157: *a = 'n'; *b = 'e'; *c = 'm'; break; + case 158: *a = 'f'; *b = 'e'; *c = 'r'; break; + case 159: *a = 'm'; *b = 'e'; *c = 'r'; break; + case 160: *a = 't'; *b = 'e'; *c = 'n'; break; + case 161: *a = 'l'; *b = 'u'; *c = 's'; break; + case 162: *a = 'n'; *b = 'u'; *c = 's'; break; + case 163: *a = 's'; *b = 'y'; *c = 'l'; break; + case 164: *a = 't'; *b = 'e'; *c = 'c'; break; + case 165: *a = 'm'; *b = 'e'; *c = 'x'; break; + case 166: *a = 'p'; *b = 'u'; *c = 'b'; break; + case 167: *a = 'r'; *b = 'y'; *c = 'm'; break; + case 168: *a = 't'; *b = 'u'; *c = 'c'; break; + case 169: *a = 'f'; *b = 'y'; *c = 'l'; break; + case 170: *a = 'l'; *b = 'e'; *c = 'p'; break; + case 171: *a = 'd'; *b = 'e'; *c = 'b'; break; + case 172: *a = 'b'; *b = 'e'; *c = 'r'; break; + case 173: *a = 'm'; *b = 'u'; *c = 'g'; break; + case 174: *a = 'h'; *b = 'u'; *c = 't'; break; + case 175: *a = 't'; *b = 'u'; *c = 'n'; break; + case 176: *a = 'b'; *b = 'y'; *c = 'l'; break; + case 177: *a = 's'; *b = 'u'; *c = 'd'; break; + case 178: *a = 'p'; *b = 'e'; *c = 'm'; break; + case 179: *a = 'd'; *b = 'e'; *c = 'v'; break; + case 180: *a = 'l'; *b = 'u'; *c = 'r'; break; + case 181: *a = 'd'; *b = 'e'; *c = 'f'; break; + case 182: *a = 'b'; *b = 'u'; *c = 's'; break; + case 183: *a = 'b'; *b = 'e'; *c = 'p'; break; + case 184: *a = 'r'; *b = 'u'; *c = 'n'; break; + case 185: *a = 'm'; *b = 'e'; *c = 'l'; break; + case 186: *a = 'p'; *b = 'e'; *c = 'x'; break; + case 187: *a = 'd'; *b = 'y'; *c = 't'; break; + case 188: *a = 'b'; *b = 'y'; *c = 't'; break; + case 189: *a = 't'; *b = 'y'; *c = 'p'; break; + case 190: *a = 'l'; *b = 'e'; *c = 'v'; break; + case 191: *a = 'm'; *b = 'y'; *c = 'l'; break; + case 192: *a = 'w'; *b = 'e'; *c = 'd'; break; + case 193: *a = 'd'; *b = 'u'; *c = 'c'; break; + case 194: *a = 'f'; *b = 'u'; *c = 'r'; break; + case 195: *a = 'f'; *b = 'e'; *c = 'x'; break; + case 196: *a = 'n'; *b = 'u'; *c = 'l'; break; + case 197: *a = 'l'; *b = 'u'; *c = 'c'; break; + case 198: *a = 'l'; *b = 'e'; *c = 'n'; break; + case 199: *a = 'n'; *b = 'e'; *c = 'r'; break; + case 200: *a = 'l'; *b = 'e'; *c = 'x'; break; + case 201: *a = 'r'; *b = 'u'; *c = 'p'; break; + case 202: *a = 'n'; *b = 'e'; *c = 'd'; break; + case 203: *a = 'l'; *b = 'e'; *c = 'c'; break; + case 204: *a = 'r'; *b = 'y'; *c = 'd'; break; + case 205: *a = 'l'; *b = 'y'; *c = 'd'; break; + case 206: *a = 'f'; *b = 'e'; *c = 'n'; break; + case 207: *a = 'w'; *b = 'e'; *c = 'l'; break; + case 208: *a = 'n'; *b = 'y'; *c = 'd'; break; + case 209: *a = 'h'; *b = 'u'; *c = 's'; break; + case 210: *a = 'r'; *b = 'e'; *c = 'l'; break; + case 211: *a = 'r'; *b = 'u'; *c = 'd'; break; + case 212: *a = 'n'; *b = 'e'; *c = 's'; break; + case 213: *a = 'h'; *b = 'e'; *c = 's'; break; + case 214: *a = 'f'; *b = 'e'; *c = 't'; break; + case 215: *a = 'd'; *b = 'e'; *c = 's'; break; + case 216: *a = 'r'; *b = 'e'; *c = 't'; break; + case 217: *a = 'd'; *b = 'u'; *c = 'n'; break; + case 218: *a = 'l'; *b = 'e'; *c = 'r'; break; + case 219: *a = 'n'; *b = 'y'; *c = 'r'; break; + case 220: *a = 's'; *b = 'e'; *c = 'b'; break; + case 221: *a = 'h'; *b = 'u'; *c = 'l'; break; + case 222: *a = 'r'; *b = 'y'; *c = 'l'; break; + case 223: *a = 'l'; *b = 'u'; *c = 'd'; break; + case 224: *a = 'r'; *b = 'e'; *c = 'm'; break; + case 225: *a = 'l'; *b = 'y'; *c = 's'; break; + case 226: *a = 'f'; *b = 'y'; *c = 'n'; break; + case 227: *a = 'w'; *b = 'e'; *c = 'r'; break; + case 228: *a = 'r'; *b = 'y'; *c = 'c'; break; + case 229: *a = 's'; *b = 'u'; *c = 'g'; break; + case 230: *a = 'n'; *b = 'y'; *c = 's'; break; + case 231: *a = 'n'; *b = 'y'; *c = 'l'; break; + case 232: *a = 'l'; *b = 'y'; *c = 'n'; break; + case 233: *a = 'd'; *b = 'y'; *c = 'n'; break; + case 234: *a = 'd'; *b = 'e'; *c = 'm'; break; + case 235: *a = 'l'; *b = 'u'; *c = 'x'; break; + case 236: *a = 'f'; *b = 'e'; *c = 'd'; break; + case 237: *a = 's'; *b = 'e'; *c = 'd'; break; + case 238: *a = 'b'; *b = 'e'; *c = 'c'; break; + case 239: *a = 'm'; *b = 'u'; *c = 'n'; break; + case 240: *a = 'l'; *b = 'y'; *c = 'r'; break; + case 241: *a = 't'; *b = 'e'; *c = 's'; break; + case 242: *a = 'm'; *b = 'u'; *c = 'd'; break; + case 243: *a = 'n'; *b = 'y'; *c = 't'; break; + case 244: *a = 'b'; *b = 'y'; *c = 'r'; break; + case 245: *a = 's'; *b = 'e'; *c = 'n'; break; + case 246: *a = 'w'; *b = 'e'; *c = 'g'; break; + case 247: *a = 'f'; *b = 'y'; *c = 'r'; break; + case 248: *a = 'm'; *b = 'u'; *c = 'r'; break; + case 249: *a = 't'; *b = 'e'; *c = 'l'; break; + case 250: *a = 'r'; *b = 'e'; *c = 'p'; break; + case 251: *a = 't'; *b = 'e'; *c = 'g'; break; + case 252: *a = 'p'; *b = 'e'; *c = 'c'; break; + case 253: *a = 'n'; *b = 'e'; *c = 'l'; break; + case 254: *a = 'n'; *b = 'e'; *c = 'v'; break; + case 255: *a = 'f'; *b = 'e'; *c = 's'; break; + default: u3m_bail(c3__exit); + } +} + +u3_noun +u3qc_po_ins(u3_noun a) +{ + c3_y byt_y[3]; + u3r_bytes(0, 3, byt_y, a); + + return u3_po_find_prefix(byt_y[0], byt_y[1], byt_y[2]); +} + +u3_noun +u3wcp_ins(u3_noun cor) +{ + u3_noun a; + u3x_mean(cor, u3x_sam, &a, 0); + + if ( c3n == u3ud(a) ) { + return u3m_bail(c3__fail); + } + + return u3qc_po_ins(a); +} + +u3_noun +u3qc_po_ind(u3_noun a) +{ + c3_y byt_y[3]; + u3r_bytes(0, 3, byt_y, a); + + return u3_po_find_suffix(byt_y[0], byt_y[1], byt_y[2]); +} + +u3_noun +u3wcp_ind(u3_noun cor) +{ + u3_noun a; + u3x_mean(cor, u3x_sam, &a, 0); + + if ( c3n == u3ud(a) ) { + return u3m_bail(c3__fail); + } + + return u3qc_po_ind(a); +} + +u3_noun +u3wcp_tos(u3_noun cor) +{ + u3_noun a; + + if ( (c3n == u3r_mean(cor, u3x_sam, &a, 0)) || + (c3n == u3ud(a)) || + (a >= 256) ) + { + return u3m_bail(c3__exit); + } + else { + c3_y byt_y[3]; + u3_po_to_prefix(a, &byt_y[0], &byt_y[1], &byt_y[2]); + return (byt_y[0] | (byt_y[1] << 8) | (byt_y[2] << 16)); + } +} + +u3_noun +u3wcp_tod(u3_noun cor) +{ + u3_noun a; + + if ( (c3n == u3r_mean(cor, u3x_sam, &a, 0)) || + (c3n == u3ud(a)) || + (a >= 256) ) + { + return u3m_bail(c3__exit); + } else { + c3_y byt_y[3]; + u3_po_to_suffix(a, &byt_y[0], &byt_y[1], &byt_y[2]); + return (byt_y[0] | (byt_y[1] << 8) | (byt_y[2] << 16)); + } +} diff --git a/vere/pkg/noun/jets/c/pow.c b/vere/pkg/noun/jets/c/pow.c new file mode 100644 index 0000000..8d45fc8 --- /dev/null +++ b/vere/pkg/noun/jets/c/pow.c @@ -0,0 +1,38 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qc_pow(u3_atom a, + u3_atom b) + { + if ( !_(u3a_is_cat(b)) ) { + return u3m_bail(c3__fail); + } + else { + mpz_t a_mp; + + u3r_mp(a_mp, a); + mpz_pow_ui(a_mp, a_mp, b); + + return u3i_mp(a_mp); + } + } + u3_noun + u3wc_pow(u3_noun cor) + { + u3_noun a, b; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0)) || + (c3n == u3ud(a)) ) + { + return u3m_bail(c3__exit); + } else { + return u3qc_pow(a, b); + } + } + diff --git a/vere/pkg/noun/jets/c/rap.c b/vere/pkg/noun/jets/c/rap.c new file mode 100644 index 0000000..4c95693 --- /dev/null +++ b/vere/pkg/noun/jets/c/rap.c @@ -0,0 +1,88 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qc_rap(u3_atom a, + u3_noun b) + { + if ( !_(u3a_is_cat(a)) || (a >= 32) ) { + return u3m_bail(c3__fail); + } + else { + c3_g a_g = a; + c3_w tot_w = 0; + u3i_slab sab_u; + + /* Measure and validate the slab required. + */ + { + u3_noun cab = b; + + while ( 1 ) { + u3_noun h_cab; + c3_w len_w; + + if ( 0 == cab ) { + break; + } + else if ( c3n == u3du(cab) ) { + return u3m_bail(c3__exit); + } + else if ( c3n == u3ud(h_cab = u3h(cab)) ) { + return u3m_bail(c3__exit); + } + else if ( (tot_w + (len_w = u3r_met(a_g, h_cab))) < tot_w ) { + return u3m_bail(c3__fail); + } + tot_w += len_w; + cab = u3t(cab); + } + + if ( 0 == tot_w ) { + return 0; + } + + u3i_slab_init(&sab_u, a_g, tot_w); + } + + /* Chop the list atoms in. + */ + { + u3_noun cab = b; + c3_w pos_w = 0; + + while ( 0 != cab ) { + u3_noun h_cab = u3h(cab); + c3_w len_w = u3r_met(a_g, h_cab); + + u3r_chop(a_g, 0, len_w, pos_w, sab_u.buf_w, h_cab); + pos_w += len_w; + cab = u3t(cab); + } + } + + return u3i_slab_mint(&sab_u); + } + } + u3_noun + u3wc_rap(u3_noun cor) + { + u3_noun a, b; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0)) || + (c3n == u3ud(a)) ) + { + return u3m_bail(c3__exit); + } else { + u3_noun pro; + + pro = u3qc_rap(a, b); + return pro; + } + } + diff --git a/vere/pkg/noun/jets/c/rep.c b/vere/pkg/noun/jets/c/rep.c new file mode 100644 index 0000000..914e917 --- /dev/null +++ b/vere/pkg/noun/jets/c/rep.c @@ -0,0 +1,199 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +/* + Get the lowest `n` bits of a word `w` using a bitmask. +*/ +#define TAKEBITS(n,w) \ + ((n)==32) ? (w) : \ + ((n)==0) ? 0 : \ + ((w) & ((1 << (n)) - 1)) + +/* + Divide, rounding up. +*/ +#define DIVCEIL(x,y) \ + (x==0) ? 0 : \ + 1 + ((x - 1) / y); + +static u3_noun +_bit_rep(u3_atom bits, u3_noun blox) +{ + if ( (c3n == u3a_is_cat(bits) || bits==0 || bits>31) ) { + return u3m_bail(c3__fail); + } + + // + // Calculate input and output size. + // + c3_w num_blox_w = u3qb_lent(blox); + c3_w bit_widt_w = num_blox_w * bits; + c3_w wor_widt_w = DIVCEIL(bit_widt_w, 32); + u3i_slab sab_u; + u3i_slab_bare(&sab_u, 5, wor_widt_w); + + // + // Fill the atom buffer with bits from each block. + // + // Bits are pushed into the `acc_w` register and flushed to the buffer + // once full. + // + // acc_w register + // use_w number of register bits filled (used) + // cur_w next buffer word to flush into. + // + { + c3_w acc_w=0, use_w=0, *cur_w=sab_u.buf_w; + +# define FLUSH() *cur_w++=acc_w; acc_w=use_w=0 +# define SLICE(sz,off,val) TAKEBITS(sz, val) << off + + for (c3_w i=0; i> rem_in_acc_w; + FLUSH(); + } + } + } + + // + // If the last word isn't fully used, it will still need to be + // flushed. + // + if (use_w) { + FLUSH(); + } + } + + return u3i_slab_mint(&sab_u); +} + +static u3_noun +_block_rep(u3_atom a, + u3_noun b) +{ + if ( !_(u3a_is_cat(a)) || (a >= 32) ) { + return u3m_bail(c3__fail); + } + else { + c3_g a_g = a; + c3_w tot_w = 0; + u3i_slab sab_u; + + /* Measure and validate the slab required. + */ + { + u3_noun cab = b; + + while ( 1 ) { + u3_noun h_cab; + c3_w len_w; + + if ( 0 == cab ) { + break; + } + else if ( c3n == u3du(cab) ) { + return u3m_bail(c3__exit); + } + else if ( c3n == u3ud(h_cab = u3h(cab)) ) { + return u3m_bail(c3__exit); + } + else if ( (tot_w + (len_w = u3r_met(a_g, h_cab))) < tot_w ) { + return u3m_bail(c3__fail); + } + tot_w++; + cab = u3t(cab); + } + + if ( 0 == tot_w ) { + return 0; + } + + u3i_slab_init(&sab_u, a_g, tot_w); + } + + /* Chop the list atoms in. + */ + { + u3_noun cab = b; + c3_w pos_w = 0; + + while ( 0 != cab ) { + u3_noun h_cab = u3h(cab); + + u3r_chop(a_g, 0, 1, pos_w, sab_u.buf_w, h_cab); + pos_w++; + cab = u3t(cab); + } + } + + return u3i_slab_mint(&sab_u); + } +} + +u3_noun +u3qc_rep(u3_atom a, + u3_atom b, + u3_noun c) +{ + if ( 1 == b ) { + return _block_rep(a, c); + } + + if ( 0 == a ) { + return _bit_rep(b, c); + } + + u3l_log("rep: stub"); + return u3_none; +} + +u3_noun +u3wc_rep(u3_noun cor) +{ + u3_atom bloq, step; + u3_noun a, b; + u3x_mean(cor, u3x_sam_2, &a, + u3x_sam_3, &b, 0); + u3x_bite(a, &bloq, &step); + + return u3qc_rep(bloq, step, b); +} + +u3_noun +u3kc_rep(u3_atom a, + u3_atom b, + u3_noun c) +{ + u3_noun res = u3qc_rep(a, b, c); + u3z(a); u3z(b); u3z(c); + return res; +} diff --git a/vere/pkg/noun/jets/c/rev.c b/vere/pkg/noun/jets/c/rev.c new file mode 100644 index 0000000..1ce74c0 --- /dev/null +++ b/vere/pkg/noun/jets/c/rev.c @@ -0,0 +1,51 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qc_rev(u3_atom boz, + u3_atom len, + u3_atom dat) + { + if ( !_(u3a_is_cat(boz)) || (boz >= 32) || + !_(u3a_is_cat(len)) ) { + return u3m_bail(c3__fail); + } + + dat = u3qc_end(boz, len, dat); + c3_w met = u3r_met(boz, dat); + return u3kc_lsh(boz, (len - met), u3kc_swp(boz, dat)); + } + + u3_noun + u3wc_rev(u3_noun cor) + { + u3_noun boz, len, dat; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &boz, + u3x_sam_6, &len, + u3x_sam_7, &dat, 0)) || + (c3n == u3ud(boz)) || + (c3n == u3ud(len)) || + (c3n == u3ud(dat)) ) + { + return u3m_bail(c3__exit); + } else { + return u3qc_rev(boz, len, dat); + } + } + + u3_noun + u3kc_rev(u3_atom boz, + u3_atom len, + u3_atom dat) + { + u3_noun res = u3qc_rev(boz, len, dat); + u3z(boz); u3z(len); u3z(dat); + return res; + } diff --git a/vere/pkg/noun/jets/c/rig.c b/vere/pkg/noun/jets/c/rig.c new file mode 100644 index 0000000..7e5e7b9 --- /dev/null +++ b/vere/pkg/noun/jets/c/rig.c @@ -0,0 +1,82 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +c3_d +u3qc_rig_s(c3_g foq_g, + c3_w sep_w, + c3_g toq_g) +{ + c3_d sep_d = sep_w; + + if ( foq_g >= toq_g ) { + return sep_d << (foq_g - toq_g); + } + else { + c3_g dif_g = toq_g - foq_g; + + sep_d += (1 << dif_g) - 1; + return sep_d >> dif_g; + } +} + +u3_noun +u3qc_rig(u3_atom foq, + u3_atom sep, + u3_atom toq) +{ + if ( c3y == u3r_sing(foq, toq) ) { + return u3k(sep); + } + + if ( (c3y == u3a_is_cat(foq)) && (foq < 32) + && (c3y == u3a_is_cat(toq)) && (toq < 32) + && (c3y == u3a_is_cat(sep)) ) + { + c3_d sep_d = u3qc_rig_s((c3_g)foq, (c3_w)sep, (c3_g)toq); + return u3i_chub(sep_d); + } + + if ( c3y == u3qa_gth(foq, toq) ) { + u3_atom d = u3qa_sub(foq, toq); + u3_atom e = u3qc_lsh(0, d, sep); + u3z(d); + return e; + } + else { + u3_atom d = u3qa_sub(toq, foq); + u3_atom e = u3qc_rsh(0, d, sep); + u3_atom f = u3qc_end(0, d, sep); + + if ( f ) { + e = u3i_vint(e); + u3z(f); + } + + u3z(d); + return e; + } +} + +u3_noun +u3wc_rig(u3_noun cor) +{ + u3_atom boq, sep, vat; + { + u3_noun sam = u3h(u3t(cor)); + u3_noun bit = u3h(sam); + + if ( c3y == u3a_is_atom(bit) ) { + return 0; + } + + boq = u3x_atom(u3h(bit)); + sep = u3x_atom(u3t(bit)); + vat = u3x_atom(u3t(sam)); + } + + return u3qc_rig(boq, sep, vat); +} diff --git a/vere/pkg/noun/jets/c/rip.c b/vere/pkg/noun/jets/c/rip.c new file mode 100644 index 0000000..bff23b8 --- /dev/null +++ b/vere/pkg/noun/jets/c/rip.c @@ -0,0 +1,192 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +/* + Get the lowest `n` bits of a word `w` using a bitmask. +*/ +#define TAKEBITS(n,w) \ + ((n)==32) ? (w) : \ + ((n)==0) ? 0 : \ + ((w) & ((1 << (n)) - 1)) + +/* + Divide, rounding up. +*/ +#define DIVCEIL(x,y) \ + (x==0) ? 0 : \ + 1 + ((x - 1) / y); + +/* + `ripn` breaks `atom` into a list of blocks, of bit-width `bits`. The + resulting list will be least-significant block first. + + XX TODO This only handles cases where the bit-width is <= 32. + + For each block we produce, we need to grab the relevant words inside + `atom`, so we first compute their indicies. + + `ins_idx` is the word-index of the least-significant word we + care about, and `sig_idx` is the word after that. + + Next we grab those words (`ins_word` and `sig_word`) from the atom + using `u3r_word`. Note that `sig_idx` might be out-of-bounds for the + underlying array of `atom`, but `u3r_word` returns 0 in that case, + which is exatly what we want. + + Now, we need to grab the relevant bits out of both words, and combine + them. `bits_rem_in_ins_word` is the number of remaining (insignificant) + bits in `ins_word`, `nbits_ins` is the number of bits we want from the + less-significant word, and `nbits_sig` from the more-significant one. + + Take the least significant `nbits_sig` bits from `sig_word`, and take + the slice we care about from `ins_word`. In order to take that slice, + we drop `bits_rem_in_ins_word` insignificant bits, and then take the + `nbits_sig` most-significant bits. + + Last, we slice out those bits from the two words, combine them into + one word, and cons them onto the front of the result. +*/ +static u3_noun +_bit_rip(u3_atom bits, u3_atom atom) +{ + if ( !_(u3a_is_cat(bits) || bits==0 || bits>31) ) { + return u3m_bail(c3__fail); + } + + c3_w bit_width = u3r_met(0, atom); + c3_w num_blocks = DIVCEIL(bit_width, bits); + + u3_noun res = u3_nul; + + for ( c3_w blk = 0; blk < num_blocks; blk++ ) { + c3_w next_blk = blk + 1; + c3_w blks_rem = num_blocks - next_blk; + c3_w bits_rem = blks_rem * bits; + c3_w ins_idx = bits_rem / 32; + c3_w sig_idx = ins_idx + 1; + + c3_w bits_rem_in_ins_word = bits_rem % 32; + + c3_w ins_word = u3r_word(ins_idx, atom); + c3_w sig_word = u3r_word(sig_idx, atom); + c3_w nbits_ins = c3_min(bits, 32 - bits_rem_in_ins_word); + c3_w nbits_sig = bits - nbits_ins; + + c3_w ins_word_bits = TAKEBITS(nbits_ins, ins_word >> bits_rem_in_ins_word); + c3_w sig_word_bits = TAKEBITS(nbits_sig, sig_word); + + c3_w item = ins_word_bits | (sig_word_bits << nbits_ins); + + res = u3nc(item, res); + } + + return res; +} + +static u3_noun +_block_rip(u3_atom bloq, u3_atom b) +{ + if ( !_(u3a_is_cat(bloq)) || (bloq >= 32) ) { + return u3m_bail(c3__fail); + } + + c3_g bloq_g = bloq; + + /* + This is a fast-path for the case where all the resulting blocks will + fit in 31-bit direct atoms. + */ + if ( bloq_g < 5 ) { // produce direct atoms + u3_noun acc = u3_nul; + + c3_w met_w = u3r_met(bloq_g, b); // num blocks in atom + c3_w nbits_w = 1 << bloq_g; // block size in bits + c3_w bmask_w = (1 << nbits_w) - 1; // result mask + + for ( c3_w i_w = 0; i_w < met_w; i_w++ ) { // `i_w` is block index + c3_w nex_w = i_w + 1; // next block + c3_w pat_w = met_w - nex_w; // blks left after this + c3_w bit_w = pat_w << bloq_g; // bits left after this + c3_w wor_w = bit_w >> 5; // wrds left after this + c3_w sif_w = bit_w & 31; // bits left in word + c3_w src_w = u3r_word(wor_w, b); // find word by index + c3_w rip_w = (src_w >> sif_w) & bmask_w; // get item from word + + acc = u3nc(rip_w, acc); + } + + return acc; + } + + u3_noun acc = u3_nul; + c3_w met_w = u3r_met(bloq_g, b); + c3_w len_w = u3r_met(5, b); + c3_g san_g = (bloq_g - 5); + c3_w san_w = 1 << san_g; + c3_w dif_w = (met_w << san_g) - len_w; + c3_w tub_w = ((dif_w == 0) ? san_w : (san_w - dif_w)); + + for ( c3_w i_w = 0; i_w < met_w; i_w++ ) { + c3_w pat_w = (met_w - (i_w + 1)); + c3_w wut_w = (pat_w << san_g); + c3_w sap_w = ((0 == i_w) ? tub_w : san_w); + c3_w j_w; + u3_atom rip; + u3i_slab sab_u; + u3i_slab_bare(&sab_u, 5, sap_w); + + for ( j_w = 0; j_w < sap_w; j_w++ ) { + sab_u.buf_w[j_w] = u3r_word(wut_w + j_w, b); + } + + rip = u3i_slab_mint(&sab_u); + acc = u3nc(rip, acc); + len_w -= san_w; + } + + return acc; +} + +u3_noun +u3qc_rip(u3_atom a, + u3_atom b, + u3_atom c) +{ + if ( 1 == b ) { + return _block_rip(a, c); + } + + if ( 0 == a ) { + return _bit_rip(b, c); + } + + u3l_log("rip: stub"); + return u3_none; +} + +u3_noun +u3wc_rip(u3_noun cor) +{ + u3_atom bloq, step; + u3_noun a, b; + u3x_mean(cor, u3x_sam_2, &a, + u3x_sam_3, &b, 0); + u3x_bite(a, &bloq, &step); + + return u3qc_rip(bloq, step, u3x_atom(b)); +} + +u3_noun +u3kc_rip(u3_atom a, + u3_atom b, + u3_atom c) +{ + u3_noun pro = u3qc_rip(a, b, c); + u3z(a); u3z(b); u3z(c); + return pro; +} diff --git a/vere/pkg/noun/jets/c/rsh.c b/vere/pkg/noun/jets/c/rsh.c new file mode 100644 index 0000000..6fc8ddf --- /dev/null +++ b/vere/pkg/noun/jets/c/rsh.c @@ -0,0 +1,60 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qc_rsh(u3_atom a, + u3_atom b, + u3_atom c) +{ + if ( !_(u3a_is_cat(a)) || (a >= 32) ) { + return u3m_bail(c3__fail); + } + else if ( !_(u3a_is_cat(b)) ) { + return 0; + } + else { + c3_g a_g = a; + c3_w b_w = b; + c3_w len_w = u3r_met(a_g, c); + + if ( b_w >= len_w ) { + return 0; + } + else { + u3i_slab sab_u; + u3i_slab_init(&sab_u, a_g, (len_w - b_w)); + + u3r_chop(a_g, b_w, (len_w - b_w), 0, sab_u.buf_w, c); + + return u3i_slab_mint(&sab_u); + } + } +} + +u3_noun +u3wc_rsh(u3_noun cor) +{ + u3_atom bloq, step; + u3_noun a, b; + u3x_mean(cor, u3x_sam_2, &a, + u3x_sam_3, &b, 0); + u3x_bite(a, &bloq, &step); + + return u3qc_rsh(bloq, step, u3x_atom(b)); +} + +u3_noun +u3kc_rsh(u3_noun a, + u3_noun b, + u3_noun c) +{ + u3_noun d = u3qc_rsh(a, b, c); + + u3z(a); u3z(b); u3z(c); + return d; +} diff --git a/vere/pkg/noun/jets/c/sew.c b/vere/pkg/noun/jets/c/sew.c new file mode 100644 index 0000000..fd85d0b --- /dev/null +++ b/vere/pkg/noun/jets/c/sew.c @@ -0,0 +1,74 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_weak +u3qc_sew(u3_atom a, + u3_atom b, + u3_atom c, + u3_atom d, + u3_atom e + ) +{ + if (0 == c) return u3k(e); + if ( !_(u3a_is_cat(b)) || + !_(u3a_is_cat(c)) ) { + return u3_none; + } + if ( !_(u3a_is_cat(a)) || (a >= 32) ) { + return u3m_bail(c3__fail); + } + + c3_g a_g = a; + c3_w b_w = b, c_w = c; + c3_w len_e_w = u3r_met(a_g, e); + u3i_slab sab_u; + c3_w* src_w; + c3_w len_src_w; + if ( _(u3a_is_cat(e)) ) { + len_src_w = e ? 1 : 0; + src_w = &e; + } + else { + u3a_atom* src_u = u3a_to_ptr(e); + len_src_w = src_u->len_w; + src_w = src_u->buf_w; + } + u3i_slab_init(&sab_u, a_g, c3_max(len_e_w, b_w + c_w)); + u3r_chop_words(a_g, 0, b_w, 0, sab_u.buf_w, len_src_w, src_w); + u3r_chop(a_g, 0, c_w, b_w, sab_u.buf_w, d); + if (len_e_w > b_w + c_w) { + u3r_chop_words(a_g, + b_w + c_w, + len_e_w - (b_w + c_w), + b_w + c_w, + sab_u.buf_w, + len_src_w, + src_w); + } + return u3i_slab_mint(&sab_u); +} + +u3_weak +u3wc_sew(u3_noun cor) +{ + u3_noun a, b, c, d, e; + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, + u3x_sam_12, &b, + 106, &c, + 107, &d, + u3x_sam_7, &e, 0)) || + (c3n == u3ud(a)) || + (c3n == u3ud(b)) || + (c3n == u3ud(c)) || + (c3n == u3ud(d)) || + (c3n == u3ud(e)) ) + { + return u3m_bail(c3__fail); + } else { + return u3qc_sew(a, b, c, d, e); + } +} diff --git a/vere/pkg/noun/jets/c/sqt.c b/vere/pkg/noun/jets/c/sqt.c new file mode 100644 index 0000000..b20db59 --- /dev/null +++ b/vere/pkg/noun/jets/c/sqt.c @@ -0,0 +1,33 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qc_sqt(u3_atom a) + { + mpz_t a_mp, b_mp; + + u3r_mp(a_mp, a); + mpz_init(b_mp); + mpz_sqrtrem(a_mp, b_mp, a_mp); + + return u3nc(u3i_mp(a_mp), u3i_mp(b_mp)); + } + u3_noun + u3wc_sqt(u3_noun cor) + { + u3_noun a; + + if ( (u3_none == (a = u3r_at(u3x_sam, cor))) || + (c3n == u3ud(a)) ) + { + return u3m_bail(c3__exit); + } else { + return u3qc_sqt(a); + } + } + diff --git a/vere/pkg/noun/jets/c/swp.c b/vere/pkg/noun/jets/c/swp.c new file mode 100644 index 0000000..1d0a11b --- /dev/null +++ b/vere/pkg/noun/jets/c/swp.c @@ -0,0 +1,46 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qc_swp(u3_atom a, + u3_atom b) +{ + c3_w len_w = u3r_met(a, b); + u3i_slab sab_u; + u3i_slab_init(&sab_u, a, len_w); + + for (c3_w i = 0; i < len_w; i++) { + u3r_chop(a, i, 1, len_w - i - 1, sab_u.buf_w, b); + } + + return u3i_slab_mint(&sab_u); +} + +u3_noun +u3wc_swp(u3_noun cor) +{ + u3_noun a, b; + u3x_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0); + + if ( (c3n == u3ud(a)) + || (c3n == u3ud(b)) ) + { + return u3m_bail(c3__exit); + } + + return u3qc_swp(a, b); + } + +u3_noun +u3kc_swp(u3_atom a, + u3_atom b) +{ + u3_noun pro = u3qc_swp(a, b); + u3z(a); u3z(b); + return pro; +} diff --git a/vere/pkg/noun/jets/c/xeb.c b/vere/pkg/noun/jets/c/xeb.c new file mode 100644 index 0000000..6a23ac1 --- /dev/null +++ b/vere/pkg/noun/jets/c/xeb.c @@ -0,0 +1,32 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qc_xeb(u3_atom a) + { + c3_w met_w = u3r_met(0, a); + + if ( !_(u3a_is_cat(met_w)) ) { + return u3i_words(1, &met_w); + } + else return met_w; + } + u3_noun + u3wc_xeb(u3_noun cor) + { + u3_noun a; + + if ( (u3_none == (a = u3r_at(u3x_sam, cor))) || + (c3n == u3ud(a)) ) + { + return u3m_bail(c3__exit); + } else { + return u3qc_xeb(a); + } + } + diff --git a/vere/pkg/noun/jets/d/by_all.c b/vere/pkg/noun/jets/d/by_all.c new file mode 100644 index 0000000..25926a7 --- /dev/null +++ b/vere/pkg/noun/jets/d/by_all.c @@ -0,0 +1,51 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +static u3_noun +_by_all(u3_noun a, u3j_site* sit_u) +{ + if ( u3_nul == a ) { + return c3y; + } + else { + u3_noun n_a, l_a, r_a; + u3x_trel(a, &n_a, &l_a, &r_a); + + switch ( u3j_gate_slam(sit_u, u3k(u3t(n_a))) ) { + case c3y: break; + case c3n: return c3n; + default: return u3m_bail(c3__exit); + } + + if ( c3n == _by_all(l_a, sit_u) ) { + return c3n; + } + + return _by_all(r_a, sit_u); + } +} + +u3_noun +u3qdb_all(u3_noun a, u3_noun b) +{ + u3_noun pro; + u3j_site sit_u; + + u3j_gate_prep(&sit_u, u3k(b)); + pro = _by_all(a, &sit_u); + u3j_gate_lose(&sit_u); + + return pro; +} + +u3_noun +u3wdb_all(u3_noun cor) +{ + u3_noun a, b; + u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0); + return u3qdb_all(a, b); +} diff --git a/vere/pkg/noun/jets/d/by_any.c b/vere/pkg/noun/jets/d/by_any.c new file mode 100644 index 0000000..b81f32d --- /dev/null +++ b/vere/pkg/noun/jets/d/by_any.c @@ -0,0 +1,51 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +static u3_noun +_by_any(u3_noun a, u3j_site* sit_u) +{ + if ( u3_nul == a ) { + return c3n; + } + else { + u3_noun n_a, l_a, r_a; + u3x_trel(a, &n_a, &l_a, &r_a); + + switch ( u3j_gate_slam(sit_u, u3k(u3t(n_a))) ) { + case c3y: return c3y; + case c3n: break; + default: return u3m_bail(c3__exit); + } + + if ( c3y == _by_any(l_a, sit_u) ) { + return c3y; + } + + return _by_any(r_a, sit_u); + } +} + +u3_noun +u3qdb_any(u3_noun a, u3_noun b) +{ + u3_noun pro; + u3j_site sit_u; + + u3j_gate_prep(&sit_u, u3k(b)); + pro = _by_any(a, &sit_u); + u3j_gate_lose(&sit_u); + + return pro; +} + +u3_noun +u3wdb_any(u3_noun cor) +{ + u3_noun a, b; + u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0); + return u3qdb_any(a, b); +} diff --git a/vere/pkg/noun/jets/d/by_apt.c b/vere/pkg/noun/jets/d/by_apt.c new file mode 100644 index 0000000..66a6414 --- /dev/null +++ b/vere/pkg/noun/jets/d/by_apt.c @@ -0,0 +1,78 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +static c3_o +_by_apt(u3_noun a, u3_weak l, u3_weak r) +{ + if ( u3_nul == a ) { + return c3y; + } + else { + u3_noun p_n_a, l_a, r_a; + { + u3_noun n_a; + u3x_trel(a, &n_a, &l_a, &r_a); + p_n_a = u3h(n_a); + } + + if ( u3_none != l ) { + if ( (c3n == u3qc_gor(p_n_a, l)) + || (c3y == u3r_sing(p_n_a, l)) ) + { + return c3n; + } + } + + if ( u3_none != r ) { + if ( (c3n == u3qc_gor(r, p_n_a)) + || (c3y == u3r_sing(r, p_n_a)) ) + { + return c3n; + } + } + + if ( u3_nul != l_a ) { + u3_noun p_n_l_a = u3h(u3h(l_a)); + + if ( (c3n == u3qc_mor(p_n_a, p_n_l_a)) + || (c3y == u3r_sing(p_n_a, p_n_l_a)) ) + { + return c3n; + } + + if ( c3n == _by_apt(l_a, p_n_a, r) ) { + return c3n; + } + } + + if ( u3_nul != r_a ) { + u3_noun p_n_r_a = u3h(u3h(r_a)); + + if ( (c3n == u3qc_mor(p_n_a, p_n_r_a)) + || (c3y == u3r_sing(p_n_a, p_n_r_a)) ) + { + return c3n; + } + + return _by_apt(r_a, l, p_n_a); + } + + return c3y; + } +} + +u3_noun +u3qdb_apt(u3_noun a) +{ + return _by_apt(a, u3_none, u3_none); +} + +u3_noun +u3wdb_apt(u3_noun cor) +{ + return u3qdb_apt(u3x_at(u3x_con_sam, cor)); +} diff --git a/vere/pkg/noun/jets/d/by_bif.c b/vere/pkg/noun/jets/d/by_bif.c new file mode 100644 index 0000000..0a2f23a --- /dev/null +++ b/vere/pkg/noun/jets/d/by_bif.c @@ -0,0 +1,74 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +/* internal functions +*/ +static u3_noun +_b_bif_putroot(u3_noun a, + u3_noun b) +{ + if ( u3_nul == a ) { + return u3nt(u3k(b), u3_nul, u3_nul); + } + else { + u3_noun n_a, l_a, r_a; + u3_noun p_n_a, q_n_a; + u3x_trel(a, &n_a, &l_a, &r_a); + u3x_cell(n_a, &p_n_a, &q_n_a); + + if ( c3y == u3r_sing(b, p_n_a) ) { + return u3nt(u3k(b), u3k(l_a), u3k(r_a)); + } + else { + u3_noun c, n_c, l_c, r_c; + u3_noun d; + + if ( c3y == u3qc_gor(b, p_n_a) ) { + c = _b_bif_putroot(l_a, b); + u3r_trel(c, &n_c, &l_c, &r_c); + d = u3nt(u3k(n_c), + u3k(l_c), + u3nt(u3k(n_a), u3k(r_c), u3k(r_a)) + ); + u3z(c); + return d; + } + else { + c = _b_bif_putroot(r_a, b); + u3r_trel(c, &n_c, &l_c, &r_c); + d = u3nt(u3k(n_c), + u3nt(u3k(n_a), u3k(l_a), u3k(l_c)), + u3k(r_c) + ); + u3z(c); + return d; + } + } + } +} + +u3_noun +u3wdb_bif(u3_noun cor) +{ + u3_noun a, b; + u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0); + return u3qdb_bif(a, b); +} + +u3_noun +u3qdb_bif(u3_noun a, + u3_noun b) +{ + u3_noun c, n_c, l_c, r_c; + u3_noun d; + + c = _b_bif_putroot(a, b); + u3r_trel(c, &n_c, &l_c, &r_c); + d = u3nc(u3k(l_c), u3k(r_c)); + u3z(c); + return d; +} diff --git a/vere/pkg/noun/jets/d/by_del.c b/vere/pkg/noun/jets/d/by_del.c new file mode 100644 index 0000000..86ba416 --- /dev/null +++ b/vere/pkg/noun/jets/d/by_del.c @@ -0,0 +1,93 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +static u3_noun +_rebalance(u3_noun a) +{ + u3_noun n_a, l_a, r_a; + u3x_trel(a, &n_a, &l_a, &r_a); + + if ( u3_nul == l_a) { + return u3k(r_a); + } + else if ( u3_nul == r_a) { + return u3k(l_a); + } + else { + u3_noun n_l_a, l_l_a, r_l_a; + u3_noun n_r_a, l_r_a, r_r_a; + u3x_trel(l_a, &n_l_a, &l_l_a, &r_l_a); + u3x_trel(r_a, &n_r_a, &l_r_a, &r_r_a); + + if ( c3y == u3qc_mor(u3h(n_l_a), u3h(n_r_a)) ) { + u3_noun new_right = u3nt(u3k(n_a), + u3k(r_l_a), + u3k(r_a)); + + u3_noun ret = u3nt(u3k(n_l_a), + u3k(l_l_a), + _rebalance(new_right)); + u3z(new_right); + + return ret; + } + else { + u3_noun new_left = u3nt(u3k(n_a), + u3k(l_a), + u3k(l_r_a)); + + u3_noun ret = u3nt(u3k(n_r_a), + _rebalance(new_left), + u3k(r_r_a)); + u3z(new_left); + + return ret; + } + } +} + +u3_noun +u3qdb_del(u3_noun a, + u3_noun b) +{ + if ( u3_nul == a ) { + return u3_nul; + } + else { + u3_noun n_a, lr_a; + u3_noun pn_a; + u3x_cell(a, &n_a, &lr_a); + u3x_cell(n_a, &pn_a, 0); + + if ( c3y == u3r_sing(pn_a, b) ) { + return _rebalance(a); + } + else { + u3_noun l_a, r_a; + u3x_cell(lr_a, &l_a, &r_a); + + if ( c3y == u3qc_gor(b, pn_a) ) { + return u3nt(u3k(n_a), + u3qdb_del(l_a, b), + u3k(r_a)); + } + else { + return u3nt(u3k(n_a), + u3k(l_a), + u3qdb_del(r_a, b)); + } + } + } +} + +u3_noun +u3wdb_del(u3_noun cor) +{ + u3_noun a, b; + u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0); + return u3qdb_del(a, b); +} diff --git a/vere/pkg/noun/jets/d/by_dif.c b/vere/pkg/noun/jets/d/by_dif.c new file mode 100644 index 0000000..44dcd1a --- /dev/null +++ b/vere/pkg/noun/jets/d/by_dif.c @@ -0,0 +1,83 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +/* internal functions +*/ + +/* RETAIN +*/ +static u3_noun +_b_dif_join(u3_noun d, + u3_noun e) +{ + if ( u3_nul == d ) { + return u3k(e); + } + else if ( u3_nul == e ) { + return u3k(d); + } + else { + u3_noun n_d, lr_d; + u3_noun n_e, lr_e; + u3x_cell(d, &n_d, &lr_d); + u3x_cell(e, &n_e, &lr_e); + + if ( c3y == u3qc_mor(u3h(n_d), u3h(n_e)) ) { + u3_noun l_d, r_d; + u3x_cell(lr_d, &l_d, &r_d); + + return u3nt(u3k(n_d), + u3k(l_d), + _b_dif_join(r_d, e)); + } + else { + u3_noun l_e, r_e; + u3x_cell(lr_e, &l_e, &r_e); + + return u3nt(u3k(n_e), + _b_dif_join(d, l_e), + u3k(r_e)); + } + } +} + +u3_noun +u3wdb_dif(u3_noun cor) +{ + u3_noun a, b; + u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0); + return u3qdb_dif(a, b); +} + +u3_noun +u3qdb_dif(u3_noun a, + u3_noun b) +{ + if ( u3_nul == b ) { + return u3k(a); + } + else { + u3_noun n_b, p_n_b, q_n_b, l_b, r_b; + u3_noun c, l_c, r_c; + u3x_trel(b, &n_b, &l_b, &r_b); + u3x_cell(n_b, &p_n_b, &q_n_b); + + c = u3qdb_bif(a, p_n_b); + u3x_cell(c, &l_c, &r_c); + + u3_noun d = u3qdb_dif(l_c, l_b); + u3_noun e = u3qdb_dif(r_c, r_b); + + u3z(c); + + u3_noun pro = _b_dif_join(d, e); + u3z(d); + u3z(e); + + return pro; + } +} diff --git a/vere/pkg/noun/jets/d/by_gas.c b/vere/pkg/noun/jets/d/by_gas.c new file mode 100644 index 0000000..2da171d --- /dev/null +++ b/vere/pkg/noun/jets/d/by_gas.c @@ -0,0 +1,44 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qdb_gas(u3_noun a, + u3_noun b) +{ + if ( u3_nul == b ) { + return u3k(a); + } + else { + u3_noun i_b, t_b, + pi_b, qi_b; + u3x_cell(b, &i_b, &t_b); + u3x_cell(i_b, &pi_b, &qi_b); + + u3_noun c = u3qdb_put(a, pi_b, qi_b); + u3_noun d = u3qdb_gas(c, t_b); + u3z(c); + return d; + } +} + +u3_noun +u3wdb_gas(u3_noun cor) +{ + u3_noun a, b; + u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0); + return u3qdb_gas(a, b); +} + +u3_noun +u3kdb_gas(u3_noun a, + u3_noun b) +{ + u3_noun c = u3qdb_gas(a, b); + u3z(a); u3z(b); + return c; +} diff --git a/vere/pkg/noun/jets/d/by_get.c b/vere/pkg/noun/jets/d/by_get.c new file mode 100644 index 0000000..19e77b9 --- /dev/null +++ b/vere/pkg/noun/jets/d/by_get.c @@ -0,0 +1,63 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qdb_get(u3_noun a, + u3_noun b) +{ + if ( u3_nul == a ) { + return u3_nul; + } + else { + u3_noun n_a, lr_a; + u3_noun pn_a, qn_a; + u3x_cell(a, &n_a, &lr_a); + u3x_cell(n_a, &pn_a, &qn_a); + + if ( (c3y == u3r_sing(b, pn_a)) ) { + return u3nc(u3_nul, u3k(qn_a)); + } + else { + return ( c3y == u3qc_gor(b, pn_a) ) ? u3qdb_get(u3h(lr_a), b) + : u3qdb_get(u3t(lr_a), b); + } + } +} + +u3_noun +u3wdb_get(u3_noun cor) +{ + u3_noun a, b; + u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0); + return u3qdb_get(a, b); +} + +u3_weak +u3kdb_get(u3_noun a, + u3_noun b) +{ + u3_noun c = u3qdb_get(a, b); + u3z(a); u3z(b); + + if ( c3n == u3du(c) ) { + u3z(c); + return u3_none; + } + else { + u3_noun pro = u3k(u3t(c)); + u3z(c); + return pro; + } +} + +u3_noun +u3kdb_got(u3_noun a, + u3_noun b) +{ + return u3x_good(u3kdb_get(a, b)); +} diff --git a/vere/pkg/noun/jets/d/by_has.c b/vere/pkg/noun/jets/d/by_has.c new file mode 100644 index 0000000..24bcb31 --- /dev/null +++ b/vere/pkg/noun/jets/d/by_has.c @@ -0,0 +1,47 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qdb_has(u3_noun a, + u3_noun b) +{ + if ( u3_nul == a ) { + return c3n; + } + else { + u3_noun n_a, lr_a; + u3_noun pn_a; + u3x_cell(a, &n_a, &lr_a); + u3x_cell(n_a, &pn_a, 0); + + if ( (c3y == u3r_sing(b, pn_a)) ) { + return c3y; + } + else { + return ( c3y == u3qc_gor(b, pn_a) ) ? u3qdb_has(u3h(lr_a), b) + : u3qdb_has(u3t(lr_a), b); + } + } +} + +u3_noun +u3wdb_has(u3_noun cor) +{ + u3_noun a, b; + u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0); + return u3qdb_has(a, b); +} + +u3_noun +u3kdb_has(u3_noun a, + u3_noun b) +{ + u3_noun c = u3qdb_has(a, b); + u3z(a); u3z(b); + return c; +} diff --git a/vere/pkg/noun/jets/d/by_int.c b/vere/pkg/noun/jets/d/by_int.c new file mode 100644 index 0000000..5caa8aa --- /dev/null +++ b/vere/pkg/noun/jets/d/by_int.c @@ -0,0 +1,72 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qdb_int(u3_noun a, u3_noun b) +{ + if ( (u3_nul == a) + || (u3_nul == b) ) + { + return u3_nul; + } + else { + u3_noun n_a, l_a, r_a; + u3_noun n_b, l_b, r_b; + u3_noun p_n_a, q_n_a; + u3_noun p_n_b, q_n_b; + u3x_trel(a, &n_a, &l_a, &r_a); + u3x_trel(b, &n_b, &l_b, &r_b); + u3x_cell(n_a, &p_n_a, &q_n_a); + u3x_cell(n_b, &p_n_b, &q_n_b); + + if ( c3y == u3qc_mor(p_n_a, p_n_b) ) { + if ( c3y == u3r_sing(p_n_b, p_n_a) ) { + return u3nt(u3k(n_b), u3qdb_int(l_a, l_b), u3qdb_int(r_a, r_b)); + } + else if ( c3y == u3qc_gor(p_n_b, p_n_a) ) { + u3_noun new_l_b = u3nt(u3k(n_b), u3k(l_b), u3_nul); + u3_noun new_a = u3qdb_int(l_a, new_l_b); + + u3z(new_l_b); + return u3kdb_uni(new_a, u3qdb_int(a, r_b)); + } + else { + u3_noun new_r_b = u3nt(u3k(n_b), u3_nul, u3k(r_b)); + u3_noun new_a = u3qdb_int(r_a, new_r_b); + + u3z(new_r_b); + return u3kdb_uni(new_a, u3qdb_int(a, l_b)); + } + } + else if ( c3y == u3r_sing(p_n_a, p_n_b) ) { + return u3nt(u3k(n_b), u3qdb_int(l_a, l_b), u3qdb_int(r_a, r_b)); + } + else if ( c3y == u3qc_gor(p_n_a, p_n_b) ) { + u3_noun new_l_a = u3nt(u3k(n_a), u3k(l_a), u3_nul); + u3_noun new_a = u3qdb_int(new_l_a, l_b); + + u3z(new_l_a); + return u3kdb_uni(new_a, u3qdb_int(r_a, b)); + } + else { + u3_noun new_r_a = u3nt(u3k(n_a), u3_nul, u3k(r_a)); + u3_noun new_a = u3qdb_int(new_r_a, r_b); + + u3z(new_r_a); + return u3kdb_uni(new_a, u3qdb_int(l_a, b)); + } + } +} + +u3_noun +u3wdb_int(u3_noun cor) +{ + u3_noun a, b; + u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0); + return u3qdb_int(a, b); +} diff --git a/vere/pkg/noun/jets/d/by_jab.c b/vere/pkg/noun/jets/d/by_jab.c new file mode 100644 index 0000000..7468adc --- /dev/null +++ b/vere/pkg/noun/jets/d/by_jab.c @@ -0,0 +1,46 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qdb_jab(u3_noun a, + u3_noun key, + u3_noun fun) +{ + if ( u3_nul == a ) { + return u3m_bail(c3__exit); + } + else { + u3_noun n_a, lr_a; + u3_noun pn_a, qn_a; + u3x_cell(a, &n_a, &lr_a); + u3x_cell(n_a, &pn_a, &qn_a); + + if ( (c3y == u3r_sing(key, pn_a)) ) { + u3_noun value = u3n_slam_on(u3k(fun), u3k(qn_a)); + return u3nc(u3nc(u3k(pn_a), value), u3k(u3t(a))); + } + else { + u3_noun l_a, r_a; + u3x_cell(lr_a, &l_a, &r_a); + + return ( c3y == u3qc_gor(key, pn_a) ) + ? u3nt(u3k(n_a), u3qdb_jab(l_a, key, fun), u3k(r_a)) + : u3nt(u3k(n_a), u3k(l_a), u3qdb_jab(r_a, key, fun)); + } + } +} + +u3_noun +u3wdb_jab(u3_noun cor) +{ + u3_noun a, key, fun; + u3x_mean(cor, u3x_sam_2, &key, + u3x_sam_3, &fun, + u3x_con_sam, &a, 0); + + return u3qdb_jab(a, key, fun); +} diff --git a/vere/pkg/noun/jets/d/by_key.c b/vere/pkg/noun/jets/d/by_key.c new file mode 100644 index 0000000..b4f8a09 --- /dev/null +++ b/vere/pkg/noun/jets/d/by_key.c @@ -0,0 +1,42 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +// [a] is RETAINED, [set] is TRANSFERRED +// +static u3_noun +_by_key(u3_noun a, u3_noun set) +{ + if ( u3_nul == a ) { + return set; + } + else { + u3_noun n_a, l_a, r_a; + u3x_trel(a, &n_a, &l_a, &r_a); + + { + u3_noun new = u3qdi_put(set, u3h(n_a)); + u3z(set); + set = new; + } + + set = _by_key(l_a, set); + + return _by_key(r_a, set); + } +} + +u3_noun +u3qdb_key(u3_noun a) +{ + return _by_key(a, u3_nul); +} + +u3_noun +u3wdb_key(u3_noun cor) +{ + return u3qdb_key(u3x_at(u3x_con_sam, cor)); +} diff --git a/vere/pkg/noun/jets/d/by_put.c b/vere/pkg/noun/jets/d/by_put.c new file mode 100644 index 0000000..ad0e7ec --- /dev/null +++ b/vere/pkg/noun/jets/d/by_put.c @@ -0,0 +1,102 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qdb_put(u3_noun a, + u3_noun b, + u3_noun c) +{ + if ( u3_nul == a ) { + return u3nt(u3nc(u3k(b), u3k(c)), + u3_nul, + u3_nul); + } + else { + u3_noun n_a, l_a, r_a; + u3_noun pn_a, qn_a; + u3x_trel(a, &n_a, &l_a, &r_a); + u3x_cell(n_a, &pn_a, &qn_a); + + if ( c3y == u3r_sing(pn_a, b) ) { + if ( c3y == u3r_sing(qn_a, c) ) { + return u3k(a); + } + else { + return u3nt(u3nc(u3k(b), u3k(c)), + u3k(l_a), + u3k(r_a)); + } + } + else { + u3_noun d, n_d, l_d, r_d; + + if ( c3y == u3qc_gor(b, pn_a) ) { + d = u3qdb_put(l_a, b, c); + + if ( c3y == u3qc_mor(pn_a, u3h(u3h(d))) ) { + return u3nt(u3k(n_a), + d, + u3k(r_a)); + } + else { + u3r_trel(d, &n_d, &l_d, &r_d); + + u3_noun e = u3nt(u3k(n_d), + u3k(l_d), + u3nt(u3k(n_a), + u3k(r_d), + u3k(r_a))); + + u3z(d); + return e; + } + } + else { + d = u3qdb_put(r_a, b, c); + + if ( c3y == u3qc_mor(pn_a, u3h(u3h(d))) ) { + return u3nt(u3k(n_a), + u3k(l_a), + d); + } + else { + u3r_trel(d, &n_d, &l_d, &r_d); + + u3_noun e = u3nt(u3k(n_d), + u3nt(u3k(n_a), + u3k(l_a), + u3k(l_d)), + u3k(r_d)); + + u3z(d); + return e; + } + } + } + } +} + +u3_noun +u3wdb_put(u3_noun cor) +{ + u3_noun a, b, c; + u3x_mean(cor, u3x_sam_2, &b, + u3x_sam_3, &c, + u3x_con_sam, &a, 0); + return u3qdb_put(a, b, c); +} + +u3_noun +u3kdb_put(u3_noun a, + u3_noun b, + u3_noun c) +{ + u3_noun pro = u3qdb_put(a, b, c); + u3z(a); u3z(b); u3z(c); + return pro; +} diff --git a/vere/pkg/noun/jets/d/by_run.c b/vere/pkg/noun/jets/d/by_run.c new file mode 100644 index 0000000..f9e7d06 --- /dev/null +++ b/vere/pkg/noun/jets/d/by_run.c @@ -0,0 +1,45 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +static u3_noun +_by_run(u3_noun a, u3j_site* sit_u) +{ + if ( u3_nul == a ) { + return u3_nul; + } + else { + u3_noun n_a, l_a, r_a; + u3_noun p_n_a, q_n_a; + u3x_trel(a, &n_a, &l_a, &r_a); + u3x_cell(n_a, &p_n_a, &q_n_a); + + return u3nt(u3nc(u3k(p_n_a), u3j_gate_slam(sit_u, u3k(q_n_a))), + _by_run(l_a, sit_u), + _by_run(r_a, sit_u)); + } +} + +u3_noun +u3qdb_run(u3_noun a, u3_noun b) +{ + u3_noun pro; + u3j_site sit_u; + + u3j_gate_prep(&sit_u, u3k(b)); + pro = _by_run(a, &sit_u); + u3j_gate_lose(&sit_u); + + return pro; +} + +u3_noun +u3wdb_run(u3_noun cor) +{ + u3_noun a, b; + u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0); + return u3qdb_run(a, b); +} diff --git a/vere/pkg/noun/jets/d/by_uni.c b/vere/pkg/noun/jets/d/by_uni.c new file mode 100644 index 0000000..6bdcd4c --- /dev/null +++ b/vere/pkg/noun/jets/d/by_uni.c @@ -0,0 +1,101 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +u3_noun +u3qdb_uni(u3_noun a, u3_noun b) +{ + if ( u3_nul == b ) { + return u3k(a); + } + else if ( u3_nul == a ) { + return u3k(b); + } + else { + u3_noun n_a, l_a, r_a; + u3_noun n_b, l_b, r_b; + u3_noun p_n_a, q_n_a; + u3_noun p_n_b, q_n_b; + u3x_trel(a, &n_a, &l_a, &r_a); + u3x_trel(b, &n_b, &l_b, &r_b); + u3x_cell(n_a, &p_n_a, &q_n_a); + u3x_cell(n_b, &p_n_b, &q_n_b); + + if ( c3y == u3r_sing(p_n_a, p_n_b) ) { + return u3nt(u3k(n_b), + u3qdb_uni(l_a, l_b), + u3qdb_uni(r_a, r_b)); + } + else if ( c3y == u3qc_mor(p_n_a, p_n_b) ) { + u3_noun new_a, old_b; + + if ( c3y == u3qc_gor(p_n_b, p_n_a) ) { + u3_noun new_b = u3nt(u3k(n_b), u3k(l_b), u3_nul); + u3_noun new_la = u3qdb_uni(l_a, new_b); + u3z(new_b); + + new_a = u3nt(u3k(n_a), new_la, u3k(r_a)); + old_b = r_b; + } + else { + u3_noun new_b = u3nt(u3k(n_b), u3_nul, u3k(r_b)); + u3_noun new_ra = u3qdb_uni(r_a, new_b); + u3z(new_b); + + new_a = u3nt(u3k(n_a), u3k(l_a), new_ra); + old_b = l_b; + } + + { + u3_noun pro = u3qdb_uni(new_a, old_b); + u3z(new_a); + return pro; + } + } + else { + u3_noun old_a, new_b; + + if ( c3y == u3qc_gor(p_n_a, p_n_b) ) { + u3_noun new_a = u3nt(u3k(n_a), u3k(l_a), u3_nul); + u3_noun new_lb = u3qdb_uni(new_a, l_b); + u3z(new_a); + + new_b = u3nt(u3k(n_b), new_lb, u3k(r_b)); + old_a = r_a; + } + else { + u3_noun new_a = u3nt(u3k(n_a), u3_nul, u3k(r_a)); + u3_noun new_rb = u3qdb_uni(new_a, r_b); + u3z(new_a); + + new_b = u3nt(u3k(n_b), u3k(l_b), new_rb); + old_a = l_a; + } + + { + u3_noun pro = u3qdb_uni(old_a, new_b); + u3z(new_b); + return pro; + } + } + } +} + +u3_noun +u3wdb_uni(u3_noun cor) +{ + u3_noun a, b; + u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0); + return u3qdb_uni(a, b); +} + +u3_noun +u3kdb_uni(u3_noun a, u3_noun b) +{ + u3_noun pro = u3qdb_uni(a, b); + u3z(a); u3z(b); + return pro; +} diff --git a/vere/pkg/noun/jets/d/by_urn.c b/vere/pkg/noun/jets/d/by_urn.c new file mode 100644 index 0000000..bab555a --- /dev/null +++ b/vere/pkg/noun/jets/d/by_urn.c @@ -0,0 +1,43 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +static u3_noun +_by_urn(u3_noun a, u3j_site* sit_u) +{ + if ( u3_nul == a ) { + return u3_nul; + } + else { + u3_noun n_a, l_a, r_a; + u3x_trel(a, &n_a, &l_a, &r_a); + + return u3nt(u3nc(u3k(u3h(n_a)), u3j_gate_slam(sit_u, u3k(n_a))), + _by_urn(l_a, sit_u), + _by_urn(r_a, sit_u)); + } +} + +u3_noun +u3qdb_urn(u3_noun a, u3_noun b) +{ + u3_noun pro; + u3j_site sit_u; + + u3j_gate_prep(&sit_u, u3k(b)); + pro = _by_urn(a, &sit_u); + u3j_gate_lose(&sit_u); + + return pro; +} + +u3_noun +u3wdb_urn(u3_noun cor) +{ + u3_noun a, b; + u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0); + return u3qdb_urn(a, b); +} diff --git a/vere/pkg/noun/jets/d/in_apt.c b/vere/pkg/noun/jets/d/in_apt.c new file mode 100644 index 0000000..93e7b48 --- /dev/null +++ b/vere/pkg/noun/jets/d/in_apt.c @@ -0,0 +1,121 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +static c3_o +_in_apt_140(u3_noun a, u3_weak l, u3_weak r) +{ + if ( u3_nul == a ) { + return c3y; + } + else { + u3_noun n_a, l_a, r_a; + u3x_trel(a, &n_a, &l_a, &r_a); + + if ( (u3_none != l) && (c3n == u3qc_gor(n_a, l)) ) { + return c3n; + } + + if ( (u3_none != r) && (c3n == u3qc_gor(r, n_a)) ) { + return c3n; + } + + if ( u3_nul != l_a ) { + if ( c3n == u3qc_mor(n_a, u3h(l_a)) ) { + return c3n; + } + + if ( c3n == _in_apt_140(l_a, n_a, r) ) { + return c3n; + } + } + + if ( u3_nul != r_a ) { + if ( c3n == u3qc_mor(n_a, u3h(r_a)) ) { + return c3n; + } + + return _in_apt_140(r_a, l, n_a); + } + + return c3y; + } +} + +u3_noun +u3qdi_apt_140(u3_noun a) +{ + return _in_apt_140(a, u3_none, u3_none); +} + +u3_noun +u3wdi_apt_140(u3_noun cor) +{ + return u3qdi_apt_140(u3x_at(u3x_con_sam, cor)); +} + + +static c3_o +_in_apt(u3_noun a, u3_weak l, u3_weak r) +{ + if ( u3_nul == a ) { + return c3y; + } + else { + u3_noun n_a, l_a, r_a; + u3x_trel(a, &n_a, &l_a, &r_a); + + if ( (u3_none != l) && + ( (c3y == u3r_sing(n_a, l)) || (c3n == u3qc_gor(n_a, l)) )) { + return c3n; + } + + if ( (u3_none != r) && + ( (c3y == u3r_sing(r, n_a)) || (c3n == u3qc_gor(r, n_a)) )) { + return c3n; + } + + if ( u3_nul != l_a ) { + if ( c3y == u3r_sing(n_a, u3h(l_a)) ) { + return c3n; + } + + if ( c3n == u3qc_mor(n_a, u3h(l_a)) ) { + return c3n; + } + + if ( c3n == _in_apt(l_a, n_a, r) ) { + return c3n; + } + } + + if ( u3_nul != r_a ) { + if ( c3y == u3r_sing(n_a, u3h(r_a)) ) { + return c3n; + } + + if ( c3n == u3qc_mor(n_a, u3h(r_a)) ) { + return c3n; + } + + return _in_apt(r_a, l, n_a); + } + + return c3y; + } +} + +u3_noun +u3qdi_apt(u3_noun a) +{ + return _in_apt(a, u3_none, u3_none); +} + +u3_noun +u3wdi_apt(u3_noun cor) +{ + return u3qdi_apt(u3x_at(u3x_con_sam, cor)); +} diff --git a/vere/pkg/noun/jets/d/in_bif.c b/vere/pkg/noun/jets/d/in_bif.c new file mode 100644 index 0000000..76596b1 --- /dev/null +++ b/vere/pkg/noun/jets/d/in_bif.c @@ -0,0 +1,72 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +/* internal functions +*/ +static u3_noun +_i_bif_putroot(u3_noun a, + u3_noun b) +{ + if ( u3_nul == a) { + return u3nt(u3k(b), u3_nul, u3_nul); + } + else { + u3_noun n_a, lr_a; + u3x_cell(a, &n_a, &lr_a); + + if ( c3y == u3r_sing(b, n_a) ) { + return u3k(a); + } + else { + u3_noun c, n_c, l_c, r_c; + u3_noun d; + u3_noun l_a, r_a; + u3x_cell(lr_a, &l_a, &r_a); + + if ( c3y == u3qc_gor(b, n_a) ) { + c = _i_bif_putroot(l_a, b); + u3r_trel(c, &n_c, &l_c, &r_c); + d = u3nt(u3k(n_c), + u3k(l_c), + u3nt(u3k(n_a), u3k(r_c), u3k(r_a))); + u3z(c); + return d; + } + else { + c = _i_bif_putroot(r_a, b); + u3r_trel(c, &n_c, &l_c, &r_c); + d = u3nt(u3k(n_c), + u3nt(u3k(n_a), u3k(l_a), u3k(l_c)), + u3k(r_c)); + u3z(c); + return d; + } + } + } +} + +u3_noun +u3wdi_bif(u3_noun cor) +{ + u3_noun a, b; + u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0); + return u3qdi_bif(a, b); +} + +u3_noun +u3qdi_bif(u3_noun a, + u3_noun b) +{ + u3_noun c, n_c, l_c, r_c; + u3_noun d; + + c = _i_bif_putroot(a, b); + u3r_trel(c, &n_c, &l_c, &r_c); + d = u3nc(u3k(l_c), u3k(r_c)); + u3z(c); + return d; +} diff --git a/vere/pkg/noun/jets/d/in_del.c b/vere/pkg/noun/jets/d/in_del.c new file mode 100644 index 0000000..5871a45 --- /dev/null +++ b/vere/pkg/noun/jets/d/in_del.c @@ -0,0 +1,88 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +static u3_noun +_rebalance(u3_noun a) +{ + u3_noun l_a, n_a, r_a; + u3x_trel(a, &n_a, &l_a, &r_a); + + if ( u3_nul == l_a) { + return u3k(r_a); + } + else if ( u3_nul == r_a) { + return u3k(l_a); + } + else { + u3_noun n_l_a, l_l_a, r_l_a; + u3_noun n_r_a, l_r_a, r_r_a; + u3x_trel(l_a, &n_l_a, &l_l_a, &r_l_a); + u3x_trel(r_a, &n_r_a, &l_r_a, &r_r_a); + + if ( c3y == u3qc_mor(n_l_a, n_r_a) ) { + u3_noun new_right = u3nt(u3k(n_a), + u3k(r_l_a), + u3k(r_a)); + + u3_noun ret = u3nt(u3k(n_l_a), + u3k(l_l_a), + _rebalance(new_right)); + u3z(new_right); + + return ret; + } + else { + u3_noun new_left = u3nt(u3k(n_a), + u3k(l_a), + u3k(l_r_a)); + + u3_noun ret = u3nt(u3k(n_r_a), + _rebalance(new_left), + u3k(r_r_a)); + u3z(new_left); + + return ret; + } + } +} + +u3_noun +u3qdi_del(u3_noun a, + u3_noun b) +{ + if ( u3_nul == a ) { + return u3_nul; + } + else { + u3_noun l_a, n_a, r_a; + u3x_trel(a, &n_a, &l_a, &r_a); + + if ( c3y == u3r_sing(n_a, b) ) { + return _rebalance(a); + } + else { + if ( c3y == u3qc_gor(b, n_a) ) { + return u3nt(u3k(n_a), + u3qdi_del(l_a, b), + u3k(r_a)); + } + else { + return u3nt(u3k(n_a), + u3k(l_a), + u3qdi_del(r_a, b)); + } + } + } +} + +u3_noun +u3wdi_del(u3_noun cor) +{ + u3_noun a, b; + u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0); + return u3qdi_del(a, b); +} diff --git a/vere/pkg/noun/jets/d/in_dif.c b/vere/pkg/noun/jets/d/in_dif.c new file mode 100644 index 0000000..bff391d --- /dev/null +++ b/vere/pkg/noun/jets/d/in_dif.c @@ -0,0 +1,82 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +/* internal functions +*/ + +/* RETAIN +*/ +static u3_noun +_i_dif_join(u3_noun d, + u3_noun e) +{ + if ( u3_nul == d ) { + return u3k(e); + } + else if ( u3_nul == e ) { + return u3k(d); + } + else { + u3_noun n_d, lr_d; + u3_noun n_e, lr_e; + u3x_cell(d, &n_d, &lr_d); + u3x_cell(e, &n_e, &lr_e); + + if ( c3y == u3qc_mor(n_d, n_e) ) { + u3_noun l_d, r_d; + u3x_cell(lr_d, &l_d, &r_d); + + return u3nt(u3k(n_d), + u3k(l_d), + _i_dif_join(r_d, e)); + } + else { + u3_noun l_e, r_e; + u3x_cell(lr_e, &l_e, &r_e); + + return u3nt(u3k(n_e), + _i_dif_join(d, l_e), + u3k(r_e)); + } + } +} + +u3_noun +u3wdi_dif(u3_noun cor) +{ + u3_noun a, b; + u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0); + return u3qdi_dif(a, b); +} + +u3_noun +u3qdi_dif(u3_noun a, + u3_noun b) +{ + if ( u3_nul == b ) { + return u3k(a); + } + else { + u3_noun n_b, l_b, r_b; + u3_noun c, l_c, r_c; + u3_noun d, e; + + u3x_trel(b, &n_b, &l_b, &r_b); + c = u3qdi_bif(a, n_b); + u3x_cell(c, &l_c, &r_c); + + d = u3qdi_dif(l_c, l_b); + e = u3qdi_dif(r_c, r_b); + u3z(c); + + u3_noun pro = _i_dif_join(d, e); + u3z(d); + u3z(e); + + return pro; + } +} diff --git a/vere/pkg/noun/jets/d/in_gas.c b/vere/pkg/noun/jets/d/in_gas.c new file mode 100644 index 0000000..888e070 --- /dev/null +++ b/vere/pkg/noun/jets/d/in_gas.c @@ -0,0 +1,42 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qdi_gas(u3_noun a, + u3_noun b) +{ + if ( u3_nul == b ) { + return u3k(a); + } + else { + u3_noun i_b, t_b; + u3x_cell(b, &i_b, &t_b); + + u3_noun c = u3qdi_put(a, i_b); + u3_noun d = u3qdi_gas(c, t_b); + u3z(c); + return d; + } +} + +u3_noun +u3wdi_gas(u3_noun cor) +{ + u3_noun a, b; + u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0); + return u3qdi_gas(a, b); +} + +u3_noun +u3kdi_gas(u3_noun a, + u3_noun b) +{ + u3_noun c = u3qdi_gas(a, b); + u3z(a); u3z(b); + return c; +} diff --git a/vere/pkg/noun/jets/d/in_has.c b/vere/pkg/noun/jets/d/in_has.c new file mode 100644 index 0000000..ea6fb5f --- /dev/null +++ b/vere/pkg/noun/jets/d/in_has.c @@ -0,0 +1,45 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qdi_has(u3_noun a, + u3_noun b) +{ + if ( u3_nul == a ) { + return c3n; + } + else { + u3_noun n_a, lr_a; + u3x_cell(a, &n_a, &lr_a); + + if ( (c3y == u3r_sing(b, n_a)) ) { + return c3y; + } + else { + return ( c3y == u3qc_gor(b, n_a) ) ? u3qdi_has(u3h(lr_a), b) + : u3qdi_has(u3t(lr_a), b); + } + } +} + +u3_noun +u3wdi_has(u3_noun cor) +{ + u3_noun a, b; + u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0); + return u3qdi_has(a, b); +} + +u3_noun +u3kdi_has(u3_noun a, + u3_noun b) +{ + u3_noun c = u3qdi_has(a, b); + u3z(a); u3z(b); + return c; +} diff --git a/vere/pkg/noun/jets/d/in_int.c b/vere/pkg/noun/jets/d/in_int.c new file mode 100644 index 0000000..fc5bfaa --- /dev/null +++ b/vere/pkg/noun/jets/d/in_int.c @@ -0,0 +1,65 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qdi_int(u3_noun a, u3_noun b) +{ + if ( (u3_nul == a) + || (u3_nul == b) ) + { + return u3_nul; + } + else { + u3_noun n_a, l_a, r_a; + u3_noun n_b, l_b, r_b; + + { + u3_noun lr_a, lr_b; + u3x_cell(a, &n_a, &lr_a); + u3x_cell(b, &n_b, &lr_b); + + if ( c3y == u3qc_mor(n_a, n_b) ) { + u3_noun c; + c = a; a = b; b = c; + c = n_a; n_a = n_b; n_b = c; + c = lr_a; lr_a = lr_b; lr_b = c; + } + + u3x_cell(lr_a, &l_a, &r_a); + u3x_cell(lr_b, &l_b, &r_b); + } + + if ( c3y == u3r_sing(n_b, n_a) ) { + return u3nt(u3k(n_a), + u3qdi_int(l_a, l_b), + u3qdi_int(r_a, r_b)); + } + else if ( c3y == u3qc_gor(n_b, n_a) ) { + u3_noun new_l_b = u3nt(u3k(n_b), u3k(l_b), u3_nul); + u3_noun new_a = u3qdi_int(l_a, new_l_b); + + u3z(new_l_b); + return u3kdi_uni(new_a, u3qdi_int(a, r_b)); + } + else { + u3_noun new_r_b = u3nt(u3k(n_b), u3_nul, u3k(r_b)); + u3_noun new_a = u3qdi_int(r_a, new_r_b); + + u3z(new_r_b); + return u3kdi_uni(new_a, u3qdi_int(a, l_b)); + } + } +} + +u3_noun +u3wdi_int(u3_noun cor) +{ + u3_noun a, b; + u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0); + return u3qdi_int(a, b); +} diff --git a/vere/pkg/noun/jets/d/in_put.c b/vere/pkg/noun/jets/d/in_put.c new file mode 100644 index 0000000..909d48e --- /dev/null +++ b/vere/pkg/noun/jets/d/in_put.c @@ -0,0 +1,87 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qdi_put(u3_noun a, + u3_noun b) +{ + if ( u3_nul == a ) { + return u3nt(u3k(b), u3_nul, u3_nul); + } + else { + u3_noun n_a, lr_a; + u3x_cell(a, &n_a, &lr_a); + + if ( c3y == u3r_sing(n_a, b) ) { + return u3k(a); + } + else { + u3_noun c, n_c, l_c, r_c; + u3_noun l_a, r_a; + u3x_cell(lr_a, &l_a, &r_a); + + if ( c3y == u3qc_gor(b, n_a) ) { + c = u3qdi_put(l_a, b); + + if ( c3y == u3qc_mor(n_a, u3h(c)) ) { + return u3nt(u3k(n_a), + c, + u3k(r_a)); + } + else { + u3r_trel(c, &n_c, &l_c, &r_c); + { + u3_noun d = u3nt(u3k(n_c), + u3k(l_c), + u3nt(u3k(n_a), u3k(r_c), u3k(r_a))); + + u3z(c); + return d; + } + } + } + else { + c = u3qdi_put(r_a, b); + + if ( c3y == u3qc_mor(n_a, u3h(c)) ) { + return u3nt(u3k(n_a), + u3k(l_a), + c); + } + else { + u3r_trel(c, &n_c, &l_c, &r_c); + { + u3_noun d = u3nt(u3k(n_c), + u3nt(u3k(n_a), u3k(l_a), u3k(l_c)), + u3k(r_c)); + + u3z(c); + return d; + } + } + } + } + } +} + +u3_noun +u3wdi_put(u3_noun cor) +{ + u3_noun a, b; + u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0); + return u3qdi_put(a, b); +} + +u3_noun +u3kdi_put(u3_noun a, + u3_noun b) +{ + u3_noun pro = u3qdi_put(a, b); + u3z(a); u3z(b); + return pro; +} diff --git a/vere/pkg/noun/jets/d/in_rep.c b/vere/pkg/noun/jets/d/in_rep.c new file mode 100644 index 0000000..35ac219 --- /dev/null +++ b/vere/pkg/noun/jets/d/in_rep.c @@ -0,0 +1,46 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +// [a] is RETAINED, [out] is TRANSFERRED +// +static void +_in_rep(u3_noun a, u3j_site* sit_u, u3_noun* out) +{ + if ( u3_nul == a ) { + return; + } + else { + u3_noun n_a, l_a, r_a; + u3x_trel(a, &n_a, &l_a, &r_a); + + *out = u3j_gate_slam(sit_u, u3nc(u3k(n_a), *out)); + + _in_rep(l_a, sit_u, out); + _in_rep(r_a, sit_u, out); + } +} + +u3_noun +u3qdi_rep(u3_noun a, u3_noun b) +{ + u3_noun out = u3k(u3x_at(u3x_sam_3, b)); + u3j_site sit_u; + + u3j_gate_prep(&sit_u, u3k(b)); + _in_rep(a, &sit_u, &out); + u3j_gate_lose(&sit_u); + + return out; +} + +u3_noun +u3wdi_rep(u3_noun cor) +{ + u3_noun a, b; + u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0); + return u3qdi_rep(a, b); +} diff --git a/vere/pkg/noun/jets/d/in_run.c b/vere/pkg/noun/jets/d/in_run.c new file mode 100644 index 0000000..8ca1bdf --- /dev/null +++ b/vere/pkg/noun/jets/d/in_run.c @@ -0,0 +1,53 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +// [a] is RETAINED, [out] is TRANSFERRED +// +static void +_in_run(u3_noun a, u3j_site* sit_u, u3_noun* out) +{ + if ( u3_nul == a ) { + return; + } + else { + u3_noun n_a, l_a, r_a; + u3x_trel(a, &n_a, &l_a, &r_a); + + { + u3_noun new = u3j_gate_slam(sit_u, u3k(n_a)); + u3_noun pro = u3qdi_put(*out, new); + + u3z(new); + u3z(*out); + *out = pro; + } + + _in_run(l_a, sit_u, out); + _in_run(r_a, sit_u, out); + } +} + +u3_noun +u3qdi_run(u3_noun a, u3_noun b) +{ + u3_noun out = u3_nul; + u3j_site sit_u; + + u3j_gate_prep(&sit_u, u3k(b)); + _in_run(a, &sit_u, &out); + u3j_gate_lose(&sit_u); + + return out; +} + +u3_noun +u3wdi_run(u3_noun cor) +{ + u3_noun a, b; + u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0); + return u3qdi_run(a, b); +} diff --git a/vere/pkg/noun/jets/d/in_tap.c b/vere/pkg/noun/jets/d/in_tap.c new file mode 100644 index 0000000..a9af4f1 --- /dev/null +++ b/vere/pkg/noun/jets/d/in_tap.c @@ -0,0 +1,46 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +static u3_noun +_tap_in(u3_noun a, + u3_noun b) +{ + if ( u3_nul == a ) { + return b; + } + else { + u3_noun n_a, l_a, r_a; + u3x_trel(a, &n_a, &l_a, &r_a); + + return _tap_in(r_a, + u3nc(u3k(n_a), + _tap_in(l_a, b))); + } +} + +u3_noun +u3qdi_tap(u3_noun a) +{ + return _tap_in(a, u3_nul); +} + +u3_noun +u3wdi_tap(u3_noun cor) +{ + u3_noun a; + u3x_mean(cor, u3x_con_sam, &a, 0); + return u3qdi_tap(a); +} + +u3_noun +u3kdi_tap(u3_noun a) +{ + u3_noun b = u3qdi_tap(a); + u3z(a); + return b; +} diff --git a/vere/pkg/noun/jets/d/in_uni.c b/vere/pkg/noun/jets/d/in_uni.c new file mode 100644 index 0000000..504ddcb --- /dev/null +++ b/vere/pkg/noun/jets/d/in_uni.c @@ -0,0 +1,98 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +/* internal functions +*/ +static u3_noun +_in_uni(u3_noun a, u3_noun b) +{ + if ( u3_nul == a ) { + return u3k(b); + } + else if ( u3_nul == b ) { + return u3k(a); + } + else { + u3_noun n_a, l_a, r_a, + n_b, l_b, r_b, + neb, sub, naw, pro; + u3x_trel(a, &n_a, &l_a, &r_a); + u3x_trel(b, &n_b, &l_b, &r_b); + + if ( c3n == u3qc_mor(n_a, n_b) ) { + if ( c3y == u3r_sing(n_a, n_b) ) { + return u3nt(u3k(n_b), _in_uni(l_a, l_b), _in_uni(r_a, r_b)); + } + else if ( c3y == u3qc_gor(n_a, n_b) ) { + naw = u3nt(u3k(n_a), u3k(l_a), u3_nul); + sub = _in_uni(naw, l_b); + neb = u3nt(u3k(n_b), sub, u3k(r_b)); + pro = _in_uni(r_a, neb); + u3z(naw); u3z(neb); + return pro; + } + else { + naw = u3nt(u3k(n_a), u3_nul, u3k(r_a)); + sub = _in_uni(naw, r_b); + neb = u3nt(u3k(n_b), u3k(l_b), sub); + pro = _in_uni(l_a, neb); + u3z(naw); u3z(neb); + return pro; + } + } + else if ( c3y == u3r_sing(n_b, n_a) ) { + return u3nt(u3k(n_b), _in_uni(l_a, l_b), _in_uni(r_a, r_b)); + } + else if ( c3y == u3qc_gor(n_b, n_a) ) { + neb = u3nt(u3k(n_b), u3k(l_b), u3_nul); + sub = _in_uni(l_a, neb); + naw = u3nt(u3k(n_a), sub, u3k(r_a)); + pro = _in_uni(naw, r_b); + u3z(neb); u3z(naw); + return pro; + } + else { + neb = u3nt(u3k(n_b), u3_nul, u3k(r_b)); + sub = _in_uni(r_a, neb); + naw = u3nt(u3k(n_a), u3k(l_a), sub); + pro = _in_uni(naw, l_b); + u3z(neb); u3z(naw); + return pro; + } + } +} + +u3_noun +u3kdi_uni(u3_noun a, + u3_noun b) +{ + u3_noun c = u3qdi_uni(a, b); + u3z(a); u3z(b); + return c; +} + +u3_noun +u3qdi_uni(u3_noun a, + u3_noun b) +{ + if ( c3y == u3r_sing(a, b) ) { + return u3k(a); + } + else { + return _in_uni(a, b); + } +} + +u3_noun +u3wdi_uni(u3_noun cor) +{ + u3_noun a, b; + u3x_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0); + return u3qdi_uni(a, b); +} + diff --git a/vere/pkg/noun/jets/d/in_wyt.c b/vere/pkg/noun/jets/d/in_wyt.c new file mode 100644 index 0000000..2ae72fa --- /dev/null +++ b/vere/pkg/noun/jets/d/in_wyt.c @@ -0,0 +1,35 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +STATIC_ASSERT( (UINT32_MAX > u3a_cells), + "width precision" ); + +static c3_w +_wyt_in(u3_noun a) +{ + if ( u3_nul == a ) { + return 0; + } + else { + u3_noun l_a, r_a; + u3x_trel(a, 0, &l_a, &r_a); + + return 1 + _wyt_in(l_a) + _wyt_in(r_a); + } +} + +u3_noun +u3qdi_wyt(u3_noun a) +{ + return u3i_word(_wyt_in(a)); +} + +u3_noun +u3wdi_wyt(u3_noun cor) +{ + return u3qdi_wyt(u3x_at(u3x_con_2, cor)); +} diff --git a/vere/pkg/noun/jets/e/aes_cbc.c b/vere/pkg/noun/jets/e/aes_cbc.c new file mode 100644 index 0000000..f5369e0 --- /dev/null +++ b/vere/pkg/noun/jets/e/aes_cbc.c @@ -0,0 +1,182 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +#include "urcrypt.h" + +/* All of the CBC hoon truncates its key and prv inputs by passing them to + * the ECB functions, which truncate them, hence the raw u3r_bytes unpacking. + */ + +typedef int (*urcrypt_cbc)(c3_y**, + size_t*, + c3_y*, + c3_y*, + urcrypt_realloc_t); + + static u3_atom + _cqea_cbc_help(c3_y* key_y, u3_atom iv, u3_atom msg, urcrypt_cbc low_f) + { + u3_atom ret; + c3_w met_w; + c3_y iv_y[16]; + c3_y* msg_y = u3r_bytes_all(&met_w, msg); + size_t len = met_w; + + u3r_bytes(0, 16, iv_y, iv); + if ( 0 != (*low_f)(&msg_y, &len, key_y, iv_y, &u3a_realloc) ) { + ret = u3_none; + } + else { + ret = u3i_bytes(len, msg_y); + } + u3a_free(msg_y); + + return ret; + } + + static u3_atom + _cqea_cbca_en(u3_atom key, + u3_atom iv, + u3_atom msg) + { + c3_y key_y[16]; + u3r_bytes(0, 16, key_y, key); + return _cqea_cbc_help(key_y, iv, msg, &urcrypt_aes_cbca_en); + } + + u3_noun + u3wea_cbca_en(u3_noun cor) + { + u3_noun a, b, c; + + if ( c3n == u3r_mean(cor, u3x_sam, &c, 60, &a, 61, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) { + return u3m_bail(c3__exit); + } else { + return u3l_punt("cbca-en", _cqea_cbca_en(a, b, c)); + } + } + + static u3_atom + _cqea_cbca_de(u3_atom key, + u3_atom iv, + u3_atom msg) + { + c3_y key_y[16]; + u3r_bytes(0, 16, key_y, key); + return _cqea_cbc_help(key_y, iv, msg, &urcrypt_aes_cbca_de); + } + + u3_noun + u3wea_cbca_de(u3_noun cor) + { + u3_noun a, b, c; + + if ( c3n == u3r_mean(cor, u3x_sam, &c, 60, &a, 61, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) { + return u3m_bail(c3__exit); + } else { + return u3l_punt("cbca-de", _cqea_cbca_de(a, b, c)); + } + } + + static u3_atom + _cqea_cbcb_en(u3_atom key, + u3_atom iv, + u3_atom msg) + { + c3_y key_y[24]; + u3r_bytes(0, 24, key_y, key); + return _cqea_cbc_help(key_y, iv, msg, &urcrypt_aes_cbcb_en); + } + + u3_noun + u3wea_cbcb_en(u3_noun cor) + { + u3_noun a, b, c; + + if ( c3n == u3r_mean(cor, u3x_sam, &c, 60, &a, 61, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) { + return u3m_bail(c3__exit); + } else { + return u3l_punt("cbcb-en", _cqea_cbcb_en(a, b, c)); + } + } + + static u3_atom + _cqea_cbcb_de(u3_atom key, + u3_atom iv, + u3_atom msg) + { + c3_y key_y[24]; + u3r_bytes(0, 24, key_y, key); + return _cqea_cbc_help(key_y, iv, msg, &urcrypt_aes_cbcb_de); + } + + u3_noun + u3wea_cbcb_de(u3_noun cor) + { + u3_noun a, b, c; + + if ( c3n == u3r_mean(cor, u3x_sam, &c, 60, &a, 61, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) { + return u3m_bail(c3__exit); + } else { + return u3l_punt("cbcb-de", _cqea_cbcb_de(a, b, c)); + } + } + + static u3_atom + _cqea_cbcc_en(u3_atom key, + u3_atom iv, + u3_atom msg) + { + c3_y key_y[32]; + u3r_bytes(0, 32, key_y, key); + return _cqea_cbc_help(key_y, iv, msg, &urcrypt_aes_cbcc_en); + } + + u3_noun + u3wea_cbcc_en(u3_noun cor) + { + u3_noun a, b, c; + + if ( c3n == u3r_mean(cor, u3x_sam, &c, 60, &a, 61, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) { + return u3m_bail(c3__exit); + } else { + return u3l_punt("cbcc-en", _cqea_cbcc_en(a, b, c)); + } + } + + static u3_atom + _cqea_cbcc_de(u3_atom key, + u3_atom iv, + u3_atom msg) + { + c3_y key_y[32]; + u3r_bytes(0, 32, key_y, key); + return _cqea_cbc_help(key_y, iv, msg, &urcrypt_aes_cbcc_de); + } + + u3_noun + u3wea_cbcc_de(u3_noun cor) + { + u3_noun a, b, c; + + if ( c3n == u3r_mean(cor, u3x_sam, &c, 60, &a, 61, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) { + return u3m_bail(c3__exit); + } else { + return u3l_punt("cbcc-de", _cqea_cbcc_de(a, b, c)); + } + } diff --git a/vere/pkg/noun/jets/e/aes_ecb.c b/vere/pkg/noun/jets/e/aes_ecb.c new file mode 100644 index 0000000..eff536d --- /dev/null +++ b/vere/pkg/noun/jets/e/aes_ecb.c @@ -0,0 +1,166 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +#include "urcrypt.h" + +typedef int (*urcrypt_ecb)(c3_y*, c3_y[16], c3_y[16]); + + + /* All of the ECB hoon truncates its key and blk inputs with +fe, in these + * jets we unpack with an unconditional u3r_bytes */ + + static u3_atom + _cqea_ecb_help(c3_y* key_y, u3_atom blk, urcrypt_ecb low_f) + { + c3_y blk_y[16], out_y[16]; + + u3r_bytes(0, 16, blk_y, blk); + + if ( 0 != (*low_f)(key_y, blk_y, out_y) ) { + return u3_none; + } + else { + return u3i_bytes(16, out_y); + } + } + + static u3_atom + _cqea_ecba_en(u3_atom key, + u3_atom blk) + { + c3_y key_y[16]; + u3r_bytes(0, 16, key_y, key); + return _cqea_ecb_help(key_y, blk, &urcrypt_aes_ecba_en); + } + + u3_noun + u3wea_ecba_en(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) { + return u3m_bail(c3__exit); + } else { + return u3l_punt("ecba-en", _cqea_ecba_en(a, b)); + } + } + + static u3_atom + _cqea_ecba_de(u3_atom key, + u3_atom blk) + { + c3_y key_y[16]; + u3r_bytes(0, 16, key_y, key); + return _cqea_ecb_help(key_y, blk, &urcrypt_aes_ecba_de); + } + + u3_noun + u3wea_ecba_de(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) { + return u3m_bail(c3__exit); + } else { + return u3l_punt("ecba-de", _cqea_ecba_de(a, b)); + } + } + + static u3_atom + _cqea_ecbb_en(u3_atom key, + u3_atom blk) + { + c3_y key_y[24]; + u3r_bytes(0, 24, key_y, key); + return _cqea_ecb_help(key_y, blk, &urcrypt_aes_ecbb_en); + } + + u3_noun + u3wea_ecbb_en(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) { + return u3m_bail(c3__exit); + } else { + return u3l_punt("ecbb-en", _cqea_ecbb_en(a, b)); + } + } + + static u3_atom + _cqea_ecbb_de(u3_atom key, + u3_atom blk) + { + c3_y key_y[24]; + u3r_bytes(0, 24, key_y, key); + return _cqea_ecb_help(key_y, blk, &urcrypt_aes_ecbb_de); + } + + u3_noun + u3wea_ecbb_de(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) { + return u3m_bail(c3__exit); + } else { + return u3l_punt("ecbb-de", _cqea_ecbb_de(a, b)); + } + } + + static u3_atom + _cqea_ecbc_en(u3_atom key, + u3_atom blk) + { + c3_y key_y[32]; + u3r_bytes(0, 32, key_y, key); + return _cqea_ecb_help(key_y, blk, &urcrypt_aes_ecbc_en); + } + + u3_noun + u3wea_ecbc_en(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) { + return u3m_bail(c3__exit); + } else { + return u3l_punt("ecbc-en", _cqea_ecbc_en(a, b)); + } + } + + static u3_atom + _cqea_ecbc_de(u3_atom key, + u3_atom blk) + { + c3_y key_y[32]; + u3r_bytes(0, 32, key_y, key); + return _cqea_ecb_help(key_y, blk, &urcrypt_aes_ecbc_de); + } + + u3_noun + u3wea_ecbc_de(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) { + return u3m_bail(c3__exit); + } else { + return u3l_punt("ecbc-de", _cqea_ecbc_de(a, b)); + } + } diff --git a/vere/pkg/noun/jets/e/aes_siv.c b/vere/pkg/noun/jets/e/aes_siv.c new file mode 100644 index 0000000..f88ba6a --- /dev/null +++ b/vere/pkg/noun/jets/e/aes_siv.c @@ -0,0 +1,370 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +#include "urcrypt.h" + +typedef int (*urcrypt_siv)(c3_y*, size_t, + urcrypt_aes_siv_data*, size_t, + c3_y*, c3_y[16], c3_y*); + + +// soc_w = number of items +// mat_w = size in bytes of assoc array +// dat_w = size of allocation (array + atom storage) +static void +_cqea_measure_ads(u3_noun ads, c3_w* soc_w, c3_w *mat_w, c3_w *dat_w) +{ + u3_noun i, t; + c3_w a_w, b_w, tmp_w; + + for ( a_w = b_w = 0, t = ads; u3_nul != t; ++a_w ) { + u3x_cell(t, &i, &t); + if ( c3n == u3ud(i) ) { + u3m_bail(c3__exit); + return; + } + else { + tmp_w = b_w; + b_w += u3r_met(3, i); + if ( b_w < tmp_w ) { + u3m_bail(c3__fail); + return; + } + } + } + + // check for size overflows + tmp_w = a_w * sizeof(urcrypt_aes_siv_data); + if ( (tmp_w / a_w) != sizeof(urcrypt_aes_siv_data) ) { + u3m_bail(c3__fail); + } + else if ( (*dat_w = tmp_w + b_w) < tmp_w ) { + u3m_bail(c3__fail); + } + else { + *soc_w = a_w; + *mat_w = tmp_w; + } +} + +// assumes ads is a valid (list @) because it's already been measured +static void +_cqea_encode_ads(u3_noun ads, + c3_w mat_w, + urcrypt_aes_siv_data *dat_u) +{ + c3_w met_w; + u3_noun i, t; + urcrypt_aes_siv_data *cur_u; + c3_y *dat_y = ((c3_y*) dat_u) + mat_w; + + for ( cur_u = dat_u, t = ads; u3_nul != t; t = u3t(t), ++cur_u ) { + i = u3h(t); + met_w = u3r_met(3, i); + u3r_bytes(0, met_w, dat_y, i); + cur_u->length = met_w; + cur_u->bytes = dat_y; + dat_y += met_w; + } +} + +static void +_cqea_ads_free(urcrypt_aes_siv_data *dat_u) +{ + if ( NULL != dat_u ) { + u3a_free(dat_u); + } +} + +static urcrypt_aes_siv_data* +_cqea_ads_alloc(u3_noun ads, c3_w *soc_w) +{ + if ( !ads ) { + *soc_w = 0; + return NULL; + } + else { + c3_w mat_w, dat_w; + urcrypt_aes_siv_data *dat_u; + + _cqea_measure_ads(ads, soc_w, &mat_w, &dat_w); + dat_u = u3a_malloc(dat_w); + _cqea_encode_ads(ads, mat_w, dat_u); + return dat_u; + } +} + +static u3_noun +_cqea_siv_en(c3_y* key_y, + c3_w key_w, + u3_noun ads, + u3_atom txt, + urcrypt_siv low_f) +{ + u3_noun ret; + c3_w txt_w, soc_w; + c3_y *txt_y, *out_y, iv_y[16]; + urcrypt_aes_siv_data *dat_u; + + dat_u = _cqea_ads_alloc(ads, &soc_w); + txt_y = u3r_bytes_all(&txt_w, txt); + out_y = u3a_malloc(txt_w); + + ret = ( 0 != (*low_f)(txt_y, txt_w, dat_u, soc_w, key_y, iv_y, out_y) ) + ? u3_none + : u3nt(u3i_bytes(16, iv_y), + u3i_words(1, &txt_w), + u3i_bytes(txt_w, out_y)); + + u3a_free(txt_y); + u3a_free(out_y); + _cqea_ads_free(dat_u); + return ret; +} + +static u3_noun +_cqea_siv_de(c3_y* key_y, + c3_w key_w, + u3_noun ads, + u3_atom iv, + u3_atom len, + u3_atom txt, + urcrypt_siv low_f) +{ + c3_w txt_w; + if ( !u3r_word_fit(&txt_w, len) ) { + return u3m_bail(c3__fail); + } + else { + u3_noun ret; + c3_w soc_w; + c3_y *txt_y, *out_y, iv_y[16]; + urcrypt_aes_siv_data *dat_u; + + u3r_bytes(0, 16, iv_y, iv); + dat_u = _cqea_ads_alloc(ads, &soc_w); + txt_y = u3r_bytes_alloc(0, txt_w, txt); + out_y = u3a_malloc(txt_w); + + if ( 0 != (*low_f)(txt_y, txt_w, dat_u, soc_w, key_y, iv_y, out_y) ) { + return u3m_bail(c3__evil); + } + + ret = u3nc(0, u3i_bytes(txt_w, out_y)); + + u3a_free(txt_y); + u3a_free(out_y); + _cqea_ads_free(dat_u); + + return ret; + } +} + +// the siv* hoon doesn't explicitly check keysizes, but all of these functions +// have fixed maximum keysizes, so we will punt if we get a key that is too +// large. + +static u3_noun +_cqea_siva_en(u3_atom key, + u3_noun ads, + u3_atom txt) +{ + if ( u3r_met(3, key) > 32 ) { + return u3_none; + } + else { + c3_y key_y[32]; + u3r_bytes(0, 32, key_y, key); + return _cqea_siv_en(key_y, 32, ads, txt, &urcrypt_aes_siva_en); + } +} + +u3_noun +u3wea_siva_en(u3_noun cor) +{ + u3_noun key, ads, txt; + + if ( c3n == u3r_mean(cor, u3x_sam, &txt, + u3x_con_sam_2, &key, + u3x_con_sam_3, &ads, 0) || + c3n == u3ud(key) || + c3n == u3ud(txt) ) { + return u3m_bail(c3__exit); + } else { + return u3l_punt("siva-en", _cqea_siva_en(key, ads, txt)); + } +} + +static u3_noun +_cqea_siva_de(u3_atom key, + u3_noun ads, + u3_atom iv, + u3_atom len, + u3_atom txt) +{ + if ( u3r_met(3, key) > 32 ) { + return u3_none; + } + else { + c3_y key_y[32]; + u3r_bytes(0, 32, key_y, key); + return _cqea_siv_de(key_y, 32, ads, iv, len, txt, &urcrypt_aes_siva_de); + } +} + +u3_noun +u3wea_siva_de(u3_noun cor) +{ + u3_noun key, ads, iv, len, txt; + + if ( c3n == u3r_mean(cor, + u3x_sam_2, &iv, + u3x_sam_6, &len, + u3x_sam_7, &txt, + u3x_con_sam_2, &key, + u3x_con_sam_3, &ads, 0) || + c3n == u3ud(key) || + c3n == u3ud(txt) ) { + return u3m_bail(c3__exit); + } else { + return u3l_punt("siva-de", _cqea_siva_de(key, ads, iv, len, txt)); + } +} + +static u3_noun +_cqea_sivb_en(u3_atom key, + u3_noun ads, + u3_atom txt) +{ + if ( u3r_met(3, key) > 48 ) { + return u3_none; + } + else { + c3_y key_y[48]; + u3r_bytes(0, 48, key_y, key); + return _cqea_siv_en(key_y, 48, ads, txt, &urcrypt_aes_sivb_en); + } +} + + +u3_noun +u3wea_sivb_en(u3_noun cor) +{ + u3_noun key, ads, txt; + + if ( c3n == u3r_mean(cor, u3x_sam, &txt, + u3x_con_sam_2, &key, + u3x_con_sam_3, &ads, 0) || + c3n == u3ud(key) || + c3n == u3ud(txt) ) { + return u3m_bail(c3__exit); + } else { + return u3l_punt("sivb-en", _cqea_sivb_en(key, ads, txt)); + } +} + +static u3_noun +_cqea_sivb_de(u3_atom key, + u3_noun ads, + u3_atom iv, + u3_atom len, + u3_atom txt) +{ + if ( u3r_met(3, key) > 48 ) { + return u3_none; + } + else { + c3_y key_y[48]; + u3r_bytes(0, 48, key_y, key); + return _cqea_siv_de(key_y, 48, ads, iv, len, txt, &urcrypt_aes_sivb_de); + } +} + +u3_noun +u3wea_sivb_de(u3_noun cor) +{ + u3_noun key, ads, iv, len, txt; + + if ( c3n == u3r_mean(cor, + u3x_sam_2, &iv, + u3x_sam_6, &len, + u3x_sam_7, &txt, + u3x_con_sam_2, &key, + u3x_con_sam_3, &ads, 0) || + c3n == u3ud(key) || + c3n == u3ud(txt) ) { + return u3m_bail(c3__exit); + } else { + return u3l_punt("sivb-de", _cqea_sivb_de(key, ads, iv, len, txt)); + } +} + +static u3_noun +_cqea_sivc_en(u3_atom key, + u3_noun ads, + u3_atom txt) +{ + if ( u3r_met(3, key) > 64 ) { + return u3_none; + } + else { + c3_y key_y[64]; + u3r_bytes(0, 64, key_y, key); + return _cqea_siv_en(key_y, 64, ads, txt, &urcrypt_aes_sivc_en); + } +} + +u3_noun +u3wea_sivc_en(u3_noun cor) +{ + u3_noun key, ads, txt; + + if ( c3n == u3r_mean(cor, u3x_sam, &txt, + u3x_con_sam_2, &key, + u3x_con_sam_3, &ads, 0) || + c3n == u3ud(key) || + c3n == u3ud(txt) ) { + return u3m_bail(c3__exit); + } else { + return u3l_punt("sivc-en", _cqea_sivc_en(key, ads, txt)); + } +} + +static u3_noun +_cqea_sivc_de(u3_atom key, + u3_noun ads, + u3_atom iv, + u3_atom len, + u3_atom txt) +{ + if ( u3r_met(3, key) > 64 ) { + return u3_none; + } + else { + c3_y key_y[64]; + u3r_bytes(0, 64, key_y, key); + return _cqea_siv_de(key_y, 64, ads, iv, len, txt, &urcrypt_aes_sivc_de); + } +} + +u3_noun +u3wea_sivc_de(u3_noun cor) +{ + u3_noun key, ads, iv, len, txt; + + if ( c3n == u3r_mean(cor, + u3x_sam_2, &iv, + u3x_sam_6, &len, + u3x_sam_7, &txt, + u3x_con_sam_2, &key, + u3x_con_sam_3, &ads, 0) || + c3n == u3ud(key) || + c3n == u3ud(txt) ) { + return u3m_bail(c3__exit); + } else { + return u3l_punt("sivc-de", _cqea_sivc_de(key, ads, iv, len, txt)); + } +} diff --git a/vere/pkg/noun/jets/e/argon2.c b/vere/pkg/noun/jets/e/argon2.c new file mode 100644 index 0000000..e52d42c --- /dev/null +++ b/vere/pkg/noun/jets/e/argon2.c @@ -0,0 +1,151 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +#include "urcrypt.h" + +/* helpers +*/ + + static int + argon2_alloc(uint8_t** output, size_t bytes) + { + *output = u3a_malloc(bytes); + return 1; + } + + static void + argon2_free(uint8_t* memory, size_t bytes) + { + u3a_free(memory); + } + + static c3_t + _cqear_unpack_type(c3_y* out, u3_atom in) + { + switch ( in ) { + default: + return 0; + case c3__d: + *out = urcrypt_argon2_d; + return 1; + case c3__i: + *out = urcrypt_argon2_i; + return 1; + case c3__id: + *out = urcrypt_argon2_id; + return 1; + case c3__u: + *out = urcrypt_argon2_u; + return 1; + } + } + + + static u3_atom + _cqe_argon2( // configuration params, + u3_atom out, u3_atom type, u3_atom version, + u3_atom threads, u3_atom mem_cost, u3_atom time_cost, + u3_atom wik, u3_atom key, u3_atom wix, u3_atom extra, + // input params + u3_atom wid, u3_atom dat, u3_atom wis, u3_atom sat ) + { + c3_y typ_u; + c3_w out_w, wik_w, wix_w, wid_w, wis_w, ver_w, ted_w, mem_w, tim_w; + + if ( !(u3r_word_fit(&out_w, out) && + u3r_word_fit(&wik_w, wik) && + u3r_word_fit(&wix_w, wix) && + u3r_word_fit(&wid_w, wid) && + u3r_word_fit(&wis_w, wis)) ) { + // too big to allocate + return u3m_bail(c3__fail); + } + else if ( !(_cqear_unpack_type(&typ_u, type) && + u3r_word_fit(&ver_w, version) && + u3r_word_fit(&ted_w, threads) && + u3r_word_fit(&mem_w, mem_cost) && + u3r_word_fit(&tim_w, time_cost)) ) { + return u3_none; + } + else { + u3_atom ret; + c3_y *key_y = u3r_bytes_alloc(0, wik_w, key), + *ex_y = u3r_bytes_alloc(0, wix_w, extra), + *dat_y = u3r_bytes_alloc(0, wid_w, dat), + *sat_y = u3r_bytes_alloc(0, wis_w, sat), + *out_y = u3a_malloc(out_w); + + const c3_c* err_c = urcrypt_argon2( + typ_u, ver_w, ted_w, mem_w, tim_w, + wik_w, key_y, + wix_w, ex_y, + wid_w, dat_y, + wis_w, sat_y, + out_w, out_y, + &argon2_alloc, + &argon2_free); + + u3a_free(key_y); + u3a_free(ex_y); + u3a_free(dat_y); + u3a_free(sat_y); + + if ( NULL == err_c ) { + ret = u3i_bytes(out_w, out_y); + } + else { + ret = u3_none; + u3l_log("argon2-error: %s", err_c); + } + + u3a_free(out_y); + return ret; + } + } + + u3_noun + u3we_argon2(u3_noun cor) + { + u3_noun // configuration params + out, type, version, + threads, mem_cost, time_cost, + wik, key, wix, extra, + // input params + wid, dat, wis, sat, + // for use during unpacking + wmsg, wsat, arg, brg, wkey, wext; + + // the hoon code for argon2 takes configuration parameters, + // and then produces a gate. we jet that inner gate. + // this does mean that the config params have gotten buried + // pretty deep in the subject, hence the +510. + if ( c3n == u3r_mean(cor, u3x_sam_2, &wmsg, + u3x_sam_3, &wsat, + 510, &arg, 0) || + u3r_cell(wmsg, &wid, &dat) || u3ud(wid) || u3ud(dat) || + u3r_cell(wsat, &wis, &sat) || u3ud(wis) || u3ud(sat) || + // + u3r_qual(arg, &out, &type, &version, &brg) || + u3ud(out) || u3ud(type) || u3ud(version) || + // + u3r_qual(brg, &threads, &mem_cost, &time_cost, &arg) || + u3ud(threads) || u3ud(mem_cost) || u3ud(time_cost) || + // + u3r_cell(arg, &wkey, &wext) || + u3r_cell(wkey, &wik, &key) || u3ud(wik) || u3ud(key) || + u3r_cell(wext, &wix, &extra) || u3ud(wix) || u3ud(extra) + ) + { + return u3m_bail(c3__exit); + } + else { + return u3l_punt("argon2", + _cqe_argon2(out, type, version, + threads, mem_cost, time_cost, + wik, key, wix, extra, + wid, dat, wis, sat)); + } + } diff --git a/vere/pkg/noun/jets/e/base.c b/vere/pkg/noun/jets/e/base.c new file mode 100644 index 0000000..8bbc761 --- /dev/null +++ b/vere/pkg/noun/jets/e/base.c @@ -0,0 +1,152 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qe_en_base16(u3_atom len, u3_atom dat) +{ + if ( c3n == u3a_is_cat(len) ) { + return u3m_bail(c3__fail); + } + else { + c3_w len_w = (c3_w)len; + u3i_slab sab_u; + + u3i_slab_bare(&sab_u, 4, len_w); + sab_u.buf_w[sab_u.len_w - 1] = 0; + + { + c3_y* buf_y = sab_u.buf_y; + c3_y inp_y; + + while ( len_w-- ) { + inp_y = u3r_byte(len_w, dat); + + *buf_y++ = u3s_dit_y[inp_y >> 4]; + *buf_y++ = u3s_dit_y[inp_y & 0xf]; + } + } + + return u3i_slab_moot_bytes(&sab_u); + } +} + +static inline c3_o +_of_hex_digit(c3_y inp_y, c3_y* out_y) +{ + if ( inp_y >= '0' && inp_y <= '9' ) { + *out_y = inp_y - '0'; + return c3y; + } + else if ( inp_y >= 'a' && inp_y <= 'f' ) { + *out_y = inp_y - 87; + return c3y; + } + else if ( inp_y >= 'A' && inp_y <= 'F' ) { + *out_y = inp_y - 55; + return c3y; + } + + return c3n; +} + +static inline c3_o +_of_hex_odd(u3_atom inp, c3_w len_w, c3_w byt_w, c3_y* buf_y) +{ + c3_y low_y, hig_y, lit_y, hit_y; + + hig_y = u3r_byte(--byt_w, inp); + + while ( --len_w ) { + low_y = u3r_byte(--byt_w, inp); + + if ( (c3n == _of_hex_digit(low_y, &lit_y)) + || (c3n == _of_hex_digit(hig_y, &hit_y)) ) + { + return c3n; + } + else { + *buf_y++ = (hit_y & 0xf) ^ (lit_y << 4); + } + + hig_y = u3r_byte(--byt_w, inp); + } + + if ( c3n == _of_hex_digit(hig_y, &hit_y) ) { + return c3n; + } + else { + *buf_y = hit_y & 0xf; + } + + return c3y; +} + +static inline c3_o +_of_hex_even(u3_atom inp, c3_w len_w, c3_y* buf_y) +{ + c3_y lit_y, hit_y; + c3_s inp_s; + + while ( len_w-- ) { + inp_s = u3r_short(len_w, inp); + + if ( (c3n == _of_hex_digit(inp_s & 0xff, &lit_y)) + || (c3n == _of_hex_digit(inp_s >> 8, &hit_y)) ) + { + return c3n; + } + else { + *buf_y++ = (hit_y & 0xf) ^ (lit_y << 4); + } + } + + return c3y; +} + +u3_noun +u3qe_de_base16(u3_atom inp) +{ + c3_w len_w = u3r_met(4, inp); + u3i_slab sab_u; + + u3i_slab_bare(&sab_u, 3, len_w); + sab_u.buf_w[sab_u.len_w - 1] = 0; + + // even byte-length input can be parsed in aligned, 16-bit increments, + // but odd byte-length input cannot, and is expressed more simply in bytes. + // + { + c3_w byt_w = u3r_met(3, inp); + c3_o ret_o = ( byt_w & 1 ) + ? _of_hex_odd(inp, len_w, byt_w, sab_u.buf_y) + : _of_hex_even(inp, len_w, sab_u.buf_y); + + if ( c3n == ret_o ) { + u3i_slab_free(&sab_u); + return u3_nul; + } + else { + u3_noun dat = u3i_slab_mint_bytes(&sab_u); + return u3nt(u3_nul, u3i_word(len_w), dat); + } + } +} + +u3_noun +u3we_en_base16(u3_noun cor) +{ + u3_noun a, b; + u3x_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0); + return u3qe_en_base16(u3x_atom(a), u3x_atom(b)); +} + +u3_noun +u3we_de_base16(u3_noun cor) +{ + u3_noun sam = u3x_at(u3x_sam, cor); + return u3qe_de_base16(u3x_atom(sam)); +} diff --git a/vere/pkg/noun/jets/e/blake.c b/vere/pkg/noun/jets/e/blake.c new file mode 100644 index 0000000..cac4c48 --- /dev/null +++ b/vere/pkg/noun/jets/e/blake.c @@ -0,0 +1,163 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +#include "urcrypt.h" + + static u3_atom + _cqe_blake2b(u3_atom wid, u3_atom dat, + u3_atom wik, u3_atom dak, + u3_atom out) + { + c3_w wid_w; + if ( !u3r_word_fit(&wid_w, wid) ) { + // impossible to represent an atom this large + return u3m_bail(c3__fail); + } + else { + // the hoon adjusts these widths to its liking + int err; + c3_y out_y[64], dak_y[64]; + c3_w wik_w = c3_min(wik, 64), + out_w = c3_max(1, c3_min(out, 64)); + c3_y *dat_y = u3r_bytes_alloc(0, wid_w, dat); + + u3r_bytes(0, wik_w, dak_y, dak); + err = urcrypt_blake2(wid_w, dat_y, wik_w, dak_y, out_w, out_y); + u3a_free(dat_y); + + if ( 0 == err ) { + return u3i_bytes(out_w, out_y); + } + else { + return u3_none; + } + } + } + + u3_noun + u3we_blake2b(u3_noun cor) + { + u3_noun msg, key, out, // arguments + wid, dat, // destructured msg + wik, dak; // destructured key + + if ( c3n == u3r_mean(cor, u3x_sam_2, &msg, + u3x_sam_6, &key, + u3x_sam_7, &out, 0) || + u3r_cell(msg, &wid, &dat) || u3ud(wid) || u3ud(dat) || + u3r_cell(key, &wik, &dak) || u3ud(wik) || u3ud(dak) || + u3ud(out) ) + { + return u3m_bail(c3__exit); + } else { + return u3l_punt("blake2b", _cqe_blake2b(wid, dat, wik, dak, out)); + } + } + + static u3_atom + _cqe_blake3_hash(u3_atom wid, u3_atom dat, + u3_atom key, u3_atom flags, u3_atom out) + { + c3_w wid_w, out_w; + if ( !u3r_word_fit(&wid_w, wid) || !u3r_word_fit(&out_w, out) ) { + return u3m_bail(c3__fail); + } + else { + c3_y key_y[32]; + u3r_bytes(0, 32, key_y, key); + c3_y flags_y = u3r_byte(0, flags); + c3_y *dat_y = u3r_bytes_alloc(0, wid_w, dat); + u3i_slab sab_u; + u3i_slab_bare(&sab_u, 3, out_w); + c3_y* out_y = sab_u.buf_y; + urcrypt_blake3_hash(wid_w, dat_y, key_y, flags_y, out, out_y); + u3a_free(dat_y); + return u3i_slab_mint(&sab_u); + } + } + + u3_noun + u3we_blake3_hash(u3_noun cor) + { + u3_noun out, msg, // arguments + wid, dat, // destructured msg + sam, key, flags; // context + + if ( c3n == u3r_mean(cor, u3x_sam_2, &out, + u3x_sam_3, &msg, + u3x_con_sam, &sam, 0) || + u3ud(out) || + u3r_cell(msg, &wid, &dat) || u3ud(wid) || u3ud(dat) || + u3r_cell(sam, &key, &flags) || u3ud(key) || u3ud(flags) ) + { + return u3m_bail(c3__exit); + } else { + return u3l_punt("blake3_hash", _cqe_blake3_hash(wid, dat, key, flags, out)); + } + } + + static u3_noun + _cqe_blake3_chunk_output(u3_atom wid, u3_atom dat, u3_atom cv, u3_atom counter, u3_atom flags) + { + c3_w wid_w; + if ( !u3r_word_fit(&wid_w, wid) ) { + return u3m_bail(c3__fail); + } else { + c3_y cv_y[32], block_y[64], block_len; + c3_y *dat_y = u3r_bytes_alloc(0, wid_w, dat); + c3_d counter_d = u3r_chub(0, counter); + c3_y flags_y = u3r_byte(0, flags); + u3r_bytes(0, 32, cv_y, cv); + urcrypt_blake3_chunk_output(wid_w, dat_y, cv_y, block_y, &block_len, &counter_d, &flags_y); + return u3i_cell(u3i_bytes(32, cv_y), u3i_qual(u3k(counter), u3i_bytes(64, block_y), block_len, flags_y)); + } + } + + u3_noun + u3we_blake3_chunk_output(u3_noun cor) + { + u3_noun counter, msg, // arguments + wid, dat, // destructured msg + key, flags; // context + + if ( c3n == u3r_mean(cor, u3x_sam_2, &counter, + u3x_sam_3, &msg, + u3x_con_sam_2, &key, + u3x_con_sam_3, &flags, 0) || + u3r_cell(msg, &wid, &dat) || u3ud(wid) || u3ud(dat) || + u3ud(key) || u3ud(flags)) + { + return u3m_bail(c3__exit); + } else { + return u3l_punt("blake3_chunk_output", _cqe_blake3_chunk_output(wid, dat, key, counter, flags)); + } + } + + static u3_atom + _cqe_blake3_compress(u3_atom cv, u3_atom counter, + u3_atom block, u3_atom block_len, u3_atom flags) + { + c3_y cv_y[32], block_y[64], out_y[64]; + u3r_bytes(0, 32, cv_y, cv); + u3r_bytes(0, 64, block_y, block); + urcrypt_blake3_compress(cv_y, block_y, block_len, counter, flags, out_y); + return u3i_bytes(64, out_y); + } + + u3_noun + u3we_blake3_compress(u3_noun cor) + { + u3_noun output = u3x_at(u3x_sam, cor); + u3_noun cv, counter, block, block_len, flags; // destructured output + + if ( u3r_quil(output, &cv, &counter, &block, &block_len, &flags) || + u3ud(cv) || u3ud(block) || u3ud(block_len) || u3ud(counter) || u3ud(flags)) + { + return u3m_bail(c3__exit); + } else { + return u3l_punt("blake3_compress", _cqe_blake3_compress(cv, counter, block, block_len, flags)); + } + } diff --git a/vere/pkg/noun/jets/e/chacha.c b/vere/pkg/noun/jets/e/chacha.c new file mode 100644 index 0000000..e42f8e2 --- /dev/null +++ b/vere/pkg/noun/jets/e/chacha.c @@ -0,0 +1,74 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +#include "urcrypt.h" + + static u3_atom + _cqe_chacha_crypt(u3_atom rounds, u3_atom key, u3_atom nonce, u3_atom counter, u3_atom wid, u3_atom dat) + { + c3_w rounds_w, wid_w; + c3_d counter_d; + if ( !u3r_word_fit(&rounds_w, rounds) || !u3r_word_fit(&wid_w, wid) || c3n == u3r_safe_chub(counter, &counter_d) ) { + return u3m_bail(c3__fail); + } + else { + c3_y key_y[32], nonce_y[8]; + u3r_bytes(0, 32, key_y, key); + u3r_bytes(0, 8, nonce_y, nonce); + c3_y *dat_y = u3r_bytes_alloc(0, wid_w, dat); + urcrypt_chacha_crypt(rounds_w, key_y, nonce_y, counter_d, wid_w, dat_y); + u3_noun cry = u3i_bytes(wid_w, dat_y); + u3a_free(dat_y); + return u3i_cell(wid, cry); + } + } + + u3_noun + u3we_chacha_crypt(u3_noun cor) + { + u3_noun sam = u3x_at(u3x_sam, cor); + u3_noun rounds, key, nonce, counter, msg; + u3_noun wid, dat; + + if ( u3r_quil(sam, &rounds, &key, &nonce, &counter, &msg) || + u3ud(rounds) || u3ud(key) || u3ud(nonce) || u3ud(counter) || u3r_cell(msg, &wid, &dat) ) + { + return u3m_bail(c3__exit); + } else { + return u3l_punt("chacha_crypt", _cqe_chacha_crypt(rounds, key, nonce, counter, wid, dat)); + } + } + + + static u3_noun + _cqe_chacha_xchacha(u3_atom rounds, u3_atom key, u3_atom nonce) + { + c3_w rounds_w; + if ( !u3r_word_fit(&rounds_w, rounds) ) { + return u3m_bail(c3__fail); + } + c3_y key_y[32], nonce_y[64], xkey_y[32], xnonce_y[8]; + u3r_bytes(0, 32, key_y, key); + u3r_bytes(0, 24, nonce_y, nonce); + urcrypt_chacha_xchacha(rounds, key_y, nonce_y, xkey_y, xnonce_y); + return u3i_cell(u3i_bytes(32, xkey_y), u3i_bytes(8, xnonce_y)); + } + + u3_noun + u3we_chacha_xchacha(u3_noun cor) + { + u3_noun sam = u3x_at(u3x_sam, cor); + u3_noun rounds, key, nonce; + if ( c3n == u3r_trel(sam, &rounds, &key, &nonce) || + c3n == u3ud(rounds) || + c3n == u3ud(key) || + c3n == u3ud(nonce) ) + { + return u3m_bail(c3__exit); + } else { + return u3l_punt("chacha_xchacha", _cqe_chacha_xchacha(rounds, key, nonce)); + } + } diff --git a/vere/pkg/noun/jets/e/crc32.c b/vere/pkg/noun/jets/e/crc32.c new file mode 100644 index 0000000..0daa032 --- /dev/null +++ b/vere/pkg/noun/jets/e/crc32.c @@ -0,0 +1,59 @@ +/// @file + +#include +#include +#include "zlib.h" + +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qe_crc32(u3_noun input_octs) +{ + u3_atom head = u3h(input_octs); + u3_atom tail = u3t(input_octs); + c3_w tel_w = u3r_met(3, tail); + c3_w hed_w; + if ( c3n == u3r_safe_word(head, &hed_w) ) { + return u3m_bail(c3__fail); + } + c3_y* input; + + if (c3y == u3a_is_cat(tail)) { + input = (c3_y*)&tail; + } + else { + u3a_atom* vat_u = u3a_to_ptr(tail); + input = (c3_y*)vat_u->buf_w; + } + + if ( tel_w > hed_w ) { + return u3m_error("subtract-underflow"); + } + + c3_w led_w = hed_w - tel_w; + c3_w crc_w = 0; + + crc_w = crc32(crc_w, input, tel_w); + + while ( led_w > 0 ) { + c3_y byt_y = 0; + crc_w = crc32(crc_w, &byt_y, 1); + led_w--; + } + + return u3i_word(crc_w); +} + +u3_noun +u3we_crc32(u3_noun cor) +{ + u3_noun a = u3r_at(u3x_sam, cor); + + if ( (u3du(a) == c3y) && (u3ud(u3h(a)) == c3y) && (u3ud(u3t(a)) == c3y) ) { + return u3qe_crc32(a); + } else { + return u3m_bail(c3__exit); + } +} diff --git a/vere/pkg/noun/jets/e/cue.c b/vere/pkg/noun/jets/e/cue.c new file mode 100644 index 0000000..4ab89ba --- /dev/null +++ b/vere/pkg/noun/jets/e/cue.c @@ -0,0 +1,27 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qe_cue(u3_atom a) +{ + return u3s_cue_atom(a); +} + +u3_noun +u3we_cue(u3_noun cor) +{ + return u3qe_cue(u3x_at(u3x_sam, cor)); +} + +u3_noun +u3ke_cue(u3_atom a) +{ + u3_noun b = u3qe_cue(a); + u3z(a); + return b; +} diff --git a/vere/pkg/noun/jets/e/ed_add_double_scalarmult.c b/vere/pkg/noun/jets/e/ed_add_double_scalarmult.c new file mode 100644 index 0000000..6512919 --- /dev/null +++ b/vere/pkg/noun/jets/e/ed_add_double_scalarmult.c @@ -0,0 +1,72 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +#include "urcrypt.h" + + static u3_atom + _cqee_add_double_scalarmult(u3_atom a, + u3_atom a_point, + u3_atom b, + u3_atom b_point) + { + c3_y a_y[32], a_point_y[32], + b_y[32], b_point_y[32], + out_y[32]; + c3_w met_w; + + met_w = u3r_met(3, a); + if ( (32 < met_w) || + ( (32 == met_w) && + (127 < u3r_byte(31, a)) ) + ) { + u3_noun a_recs = u3qee_recs(a); + u3r_bytes(0, 32, a_y, a_recs); + u3z(a_recs); + } else { + u3r_bytes(0, 32, a_y, a); + } + + met_w = u3r_met(3, b); + if ( (32 < met_w) || + ( (32 == met_w) && + (127 < u3r_byte(31, b)) ) + ) { + u3_noun b_recs = u3qee_recs(b); + u3r_bytes(0, 32, b_y, b_recs); + u3z(b_recs); + } else { + u3r_bytes(0, 32, b_y, b); + } + + if ( (0 != u3r_bytes_fit(32, a_point_y, a_point)) || + (0 != u3r_bytes_fit(32, b_point_y, b_point)) || + (0 != urcrypt_ed_add_double_scalarmult(a_y, a_point_y, b_y, b_point_y, out_y)) ) { + return u3m_bail(c3__exit); + } + else { + return u3i_bytes(32, out_y); + } + } + + u3_noun + u3wee_add_double_scalarmult(u3_noun cor) + { + u3_noun a, b, c, d; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, + u3x_sam_6, &b, + u3x_sam_14, &c, + u3x_sam_15, &d, 0)) || + (c3n == u3ud(a)) || + (c3n == u3ud(b)) || + (c3n == u3ud(c)) || + (c3n == u3ud(d)) ) + { + return u3m_bail(c3__exit); + } else { + return _cqee_add_double_scalarmult(a, b, c, d); + } + } diff --git a/vere/pkg/noun/jets/e/ed_add_scalarmult_scalarmult_base.c b/vere/pkg/noun/jets/e/ed_add_scalarmult_scalarmult_base.c new file mode 100644 index 0000000..39eda53 --- /dev/null +++ b/vere/pkg/noun/jets/e/ed_add_scalarmult_scalarmult_base.c @@ -0,0 +1,66 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +#include "urcrypt.h" + + static u3_atom + _cqee_add_scalarmult_scalarmult_base(u3_atom a, + u3_atom a_point, + u3_atom b) + { + c3_y a_y[32], a_point_y[32], b_y[32], out_y[32]; + c3_w met_w; + + met_w = u3r_met(3, a); + if ( (32 < met_w) || + ( (32 == met_w) && + (127 < u3r_byte(31, a)) ) + ) { + u3_noun a_recs = u3qee_recs(a); + u3r_bytes(0, 32, a_y, a_recs); + u3z(a_recs); + } else { + u3r_bytes(0, 32, a_y, a); + } + + met_w = u3r_met(3, b); + if ( (32 < met_w) || + ( (32 == met_w) && + (127 < u3r_byte(31, b)) ) + ) { + u3_noun b_recs = u3qee_recs(b); + u3r_bytes(0, 32, b_y, b_recs); + u3z(b_recs); + } else { + u3r_bytes(0, 32, b_y, b); + } + + if ( (0 != u3r_bytes_fit(32, a_point_y, a_point)) || + (0 != urcrypt_ed_add_scalarmult_scalarmult_base(a_y, a_point_y, b_y, out_y)) ) { + return u3m_bail(c3__exit); + } + else { + return u3i_bytes(32, out_y); + } + } + + u3_noun + u3wee_add_scalarmult_scalarmult_base(u3_noun cor) + { + u3_noun a, b, c; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, + u3x_sam_6, &b, + u3x_sam_7, &c, 0)) || + (c3n == u3ud(a)) || + (c3n == u3ud(b)) || + (c3n == u3ud(c)) ) + { + return u3m_bail(c3__exit); + } else { + return _cqee_add_scalarmult_scalarmult_base(a, b, c); + } + } diff --git a/vere/pkg/noun/jets/e/ed_luck.c b/vere/pkg/noun/jets/e/ed_luck.c new file mode 100644 index 0000000..c21889e --- /dev/null +++ b/vere/pkg/noun/jets/e/ed_luck.c @@ -0,0 +1,37 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +#include "urcrypt.h" + + static u3_atom + _cqee_luck(u3_atom sed) + { + c3_y sed_y[32]; + + if ( 0 != u3r_bytes_fit(32, sed_y, sed) ) { + // hoon explicitly crashes on mis-size + return u3m_bail(c3__exit); + } + else { + c3_y pub_y[32]; + c3_y sec_y[64]; + urcrypt_ed_luck(sed_y, pub_y, sec_y); + return u3nc(u3i_bytes(32, pub_y), u3i_bytes(64, sec_y)); + } + } + + u3_noun + u3wee_luck(u3_noun cor) + { + u3_noun a = u3r_at(u3x_sam, cor); + + if ( (u3_none == a) || (c3n == u3ud(a)) ) { + return u3m_bail(c3__exit); + } + else { + return _cqee_luck(a); + } + } diff --git a/vere/pkg/noun/jets/e/ed_point_add.c b/vere/pkg/noun/jets/e/ed_point_add.c new file mode 100644 index 0000000..70fe563 --- /dev/null +++ b/vere/pkg/noun/jets/e/ed_point_add.c @@ -0,0 +1,40 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +#include "urcrypt.h" + + + static u3_atom + _cqee_point_add(u3_atom a, + u3_atom b) + { + c3_y a_y[32], b_y[32], out_y[32]; + + if ( (0 != u3r_bytes_fit(32, a_y, a)) || + (0 != u3r_bytes_fit(32, b_y, b)) || + (0 != urcrypt_ed_point_add(a_y, b_y, out_y)) ) { + return u3m_bail(c3__exit); + } + else { + return u3i_bytes(32, out_y); + } + } + + u3_noun + u3wee_point_add(u3_noun cor) + { + u3_noun a, b; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, + u3x_sam_3, &b, 0)) || + (c3n == u3ud(a)) || + (c3n == u3ud(b)) ) + { + return u3m_bail(c3__exit); + } else { + return _cqee_point_add(a, b); + } + } diff --git a/vere/pkg/noun/jets/e/ed_point_neg.c b/vere/pkg/noun/jets/e/ed_point_neg.c new file mode 100644 index 0000000..5a1a5bd --- /dev/null +++ b/vere/pkg/noun/jets/e/ed_point_neg.c @@ -0,0 +1,37 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +#include "urcrypt.h" + + + static u3_atom + _cqee_point_neg(u3_atom a) + { + c3_y a_y[32]; + + if ( (0 != u3r_bytes_fit(32, a_y, a)) || + (0 != urcrypt_ed_point_neg(a_y)) ) { + return u3m_bail(c3__exit); + } + else { + return u3i_bytes(32, a_y); + } + } + + u3_noun + u3wee_point_neg(u3_noun cor) + { + + u3_noun a; + + if ( (u3_none == (a = u3r_at(u3x_sam, cor))) || + (c3n == u3ud(a)) ) + { + return u3m_bail(c3__exit); + } else { + return _cqee_point_neg(a); + } + } diff --git a/vere/pkg/noun/jets/e/ed_puck.c b/vere/pkg/noun/jets/e/ed_puck.c new file mode 100644 index 0000000..98581d7 --- /dev/null +++ b/vere/pkg/noun/jets/e/ed_puck.c @@ -0,0 +1,36 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +#include "urcrypt.h" + + static u3_atom + _cqee_puck(u3_atom sed) + { + c3_y sed_y[32]; + + if ( 0 != u3r_bytes_fit(32, sed_y, sed) ) { + // hoon explicitly crashes on mis-size + return u3m_bail(c3__exit); + } + else { + c3_y pub_y[32]; + urcrypt_ed_puck(sed_y, pub_y); + return u3i_bytes(32, pub_y); + } + } + + u3_noun + u3wee_puck(u3_noun cor) + { + u3_noun a = u3r_at(u3x_sam, cor); + + if ( (u3_none == a) || (c3n == u3ud(a)) ) { + return u3m_bail(c3__exit); + } + else { + return _cqee_puck(a); + } + } diff --git a/vere/pkg/noun/jets/e/ed_recs.c b/vere/pkg/noun/jets/e/ed_recs.c new file mode 100644 index 0000000..bdcf224 --- /dev/null +++ b/vere/pkg/noun/jets/e/ed_recs.c @@ -0,0 +1,48 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +#include "urcrypt.h" + + // `@ux`(rev 3 32 l:ed:crypto) + static c3_y _cqee_l_prime[] = { + 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, + 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, + }; + + u3_atom + u3qee_recs(u3_atom a) + { + c3_w met_w = u3r_met(3, a); + + if ( 64 < met_w ) { + u3_atom l_prime = u3i_bytes(32, _cqee_l_prime); + u3_atom pro = u3qa_mod(a, l_prime); + u3z(l_prime); + return pro; + } + + c3_y a_y[64]; + + u3r_bytes(0, 64, a_y, a); + urcrypt_ed_scalar_reduce(a_y); + return u3i_bytes(32, a_y); + } + + u3_noun + u3wee_recs(u3_noun cor) + { + u3_noun a; + + if ( (u3_none == (a = u3r_at(u3x_sam, cor))) || + (c3n == u3ud(a)) ) + { + return u3m_bail(c3__exit); + } else { + return u3qee_recs(a); + } + } diff --git a/vere/pkg/noun/jets/e/ed_scad.c b/vere/pkg/noun/jets/e/ed_scad.c new file mode 100644 index 0000000..af95563 --- /dev/null +++ b/vere/pkg/noun/jets/e/ed_scad.c @@ -0,0 +1,124 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +#include "urcrypt.h" + + static u3_atom + _cqee_scad(u3_atom pub, u3_atom sek, u3_atom sca) + { + c3_y pub_y[32]; + c3_y sek_y[64]; + c3_y sca_y[32]; + + if ( 0 != u3r_bytes_fit(32, pub_y, pub) ) { + // hoon explicitly crashes on mis-size + return u3m_bail(c3__exit); + } + if ( 0 != u3r_bytes_fit(64, sek_y, sek) ) { + // hoon explicitly crashes on mis-size + return u3m_bail(c3__exit); + } + if ( 0 != u3r_bytes_fit(32, sca_y, sca) ) { + // hoon explicitly crashes on mis-size + return u3m_bail(c3__exit); + } + else { + urcrypt_ed_add_scalar_public_private(pub_y, sek_y, sca_y); + return u3nc(u3i_bytes(32, pub_y), u3i_bytes(64, sek_y)); + } + } + + u3_noun + u3wee_scad(u3_noun cor) + { + u3_noun pub, sek, sca; + if ( (c3n == u3r_mean(cor, + u3x_sam_2, &pub, + u3x_sam_6, &sek, + u3x_sam_7, &sca, 0)) || + (c3n == u3ud(pub)) || + (c3n == u3ud(sek)) || + (c3n == u3ud(sca)) ) { + return u3m_bail(c3__exit); + } + else { + return _cqee_scad(pub, sek, sca); + } + } + + static u3_atom + _cqee_scas(u3_atom sek, u3_atom sca) + { + c3_y sek_y[64]; + c3_y sca_y[32]; + + if ( 0 != u3r_bytes_fit(64, sek_y, sek) ) { + // hoon explicitly crashes on mis-size + return u3m_bail(c3__exit); + } + if ( 0 != u3r_bytes_fit(32, sca_y, sca) ) { + // hoon explicitly crashes on mis-size + return u3m_bail(c3__exit); + } + else { + urcrypt_ed_add_scalar_private(sek_y, sca_y); + return u3i_bytes(64, sek_y); + } + } + + u3_noun + u3wee_scas(u3_noun cor) + { + u3_noun sek, sca; + if ( (c3n == u3r_mean(cor, + u3x_sam_2, &sek, + u3x_sam_3, &sca, 0)) || + (c3n == u3ud(sek)) || + (c3n == u3ud(sca)) ) { + return u3m_bail(c3__exit); + } + else { + return _cqee_scas(sek, sca); + } + } + + static u3_atom + _cqee_scap(u3_atom pub, u3_atom sca) + { + c3_y pub_y[32]; + c3_y sca_y[32]; + + if ( 0 != u3r_bytes_fit(32, pub_y, pub) ) { + // hoon explicitly crashes on mis-size + return u3m_bail(c3__exit); + } + if ( 0 != u3r_bytes_fit(32, sca_y, sca) ) { + // hoon explicitly crashes on mis-size + return u3m_bail(c3__exit); + } + else { + urcrypt_ed_add_scalar_public(pub_y, sca_y); + return u3i_bytes(32, pub_y); + } + } + + u3_noun + u3wee_scap(u3_noun cor) + { + u3_noun pub, sca; + if ( (c3n == u3r_mean(cor, + u3x_sam_2, &pub, + u3x_sam_3, &sca, 0)) || + (c3n == u3ud(pub)) || + (c3n == u3ud(sca)) ) { + return u3m_bail(c3__exit); + } + else { + return _cqee_scap(pub, sca); + } + } + + diff --git a/vere/pkg/noun/jets/e/ed_scalarmult.c b/vere/pkg/noun/jets/e/ed_scalarmult.c new file mode 100644 index 0000000..8585c29 --- /dev/null +++ b/vere/pkg/noun/jets/e/ed_scalarmult.c @@ -0,0 +1,54 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +#include "urcrypt.h" + + static u3_atom + _cqee_scalarmult(u3_atom a, + u3_atom b) + { + c3_y a_y[32], b_y[32], out_y[32]; + if (0 != u3r_bytes_fit(32, b_y, b)) { + return u3m_bail(c3__exit); + } + + c3_w met_w = u3r_met(3, a); + // scalarmult expects a_y[31] <= 127 + if ( (32 < met_w) || + ( (32 == met_w) && + (127 < u3r_byte(31, a)) ) + ) { + u3_noun a_recs = u3qee_recs(a); + u3r_bytes(0, 32, a_y, a_recs); + u3z(a_recs); + } else { + u3r_bytes(0, 32, a_y, a); + } + + if ( (0 != urcrypt_ed_scalarmult(a_y, b_y, out_y)) ) { + // at this point, will only fail if b is bad point + return u3m_bail(c3__exit); + } + else { + return u3i_bytes(32, out_y); + } + } + + u3_noun + u3wee_scalarmult(u3_noun cor) + { + u3_noun a, b; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, + u3x_sam_3, &b, 0)) || + (c3n == u3ud(a)) || + (c3n == u3ud(b)) ) + { + return u3m_bail(c3__exit); + } else { + return _cqee_scalarmult(a, b); + } + } diff --git a/vere/pkg/noun/jets/e/ed_scalarmult_base.c b/vere/pkg/noun/jets/e/ed_scalarmult_base.c new file mode 100644 index 0000000..6193584 --- /dev/null +++ b/vere/pkg/noun/jets/e/ed_scalarmult_base.c @@ -0,0 +1,46 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +#include "urcrypt.h" + + static u3_atom + _cqee_scalarmult_base(u3_atom a) + { + c3_y a_y[32], out_y[32]; + c3_w met_w = u3r_met(3, a); + // scalarmult_base expects a_y[31] <= 127 + if ( (32 < met_w) || + ( (32 == met_w) && + (127 < u3r_byte(31, a)) ) + ) { + u3_noun a_recs = u3qee_recs(a); + u3r_bytes(0, 32, a_y, a_recs); + u3z(a_recs); + } else { + u3r_bytes(0, 32, a_y, a); + } + + if (0 != urcrypt_ed_scalarmult_base(a_y, out_y)) { + // should be unreachable, as scalar already reduced + return u3m_bail(c3__exit); + } + else { + return u3i_bytes(32, out_y); + } + } + + u3_noun + u3wee_scalarmult_base(u3_noun cor) + { + u3_noun a = u3r_at(u3x_sam, cor); + + if ( (u3_none == a) || (c3n == u3ud(a)) ) { + return u3m_bail(c3__exit); + } + else { + return _cqee_scalarmult_base(a); + } + } diff --git a/vere/pkg/noun/jets/e/ed_shar.c b/vere/pkg/noun/jets/e/ed_shar.c new file mode 100644 index 0000000..ed293f7 --- /dev/null +++ b/vere/pkg/noun/jets/e/ed_shar.c @@ -0,0 +1,74 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +#include "urcrypt.h" + + static u3_atom + _cqee_shar(u3_atom pub, u3_atom sed) + { + c3_y pub_y[32], sed_y[32]; + + if ( 0 != u3r_bytes_fit(32, pub_y, pub) ) { + return u3m_bail(c3__exit); + } + else if ( 0 != u3r_bytes_fit(32, sed_y, sed) ) { + // hoon calls luck, which crashes + return u3m_bail(c3__exit); + } + else { + c3_y shr_y[32]; + urcrypt_ed_shar(pub_y, sed_y, shr_y); + return u3i_bytes(32, shr_y); + } + } + + u3_noun + u3wee_shar(u3_noun cor) + { + u3_noun pub, sed; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &pub, u3x_sam_3, &sed, 0)) || + (c3n == u3ud(pub)) || + (c3n == u3ud(sed)) ) + { + return u3m_bail(c3__exit); + } else { + return _cqee_shar(pub, sed); + } + } + + static u3_atom + _cqee_slar(u3_atom pub, u3_atom sek) + { + c3_y pub_y[32], sek_y[64]; + + if ( 0 != u3r_bytes_fit(32, pub_y, pub) ) { + return u3m_bail(c3__exit); + } + else if ( 0 != u3r_bytes_fit(64, sek_y, sek) ) { + return u3m_bail(c3__exit); + } + else { + c3_y shr_y[32]; + urcrypt_ed_slar(pub_y, sek_y, shr_y); + return u3i_bytes(32, shr_y); + } + } + + u3_noun + u3wee_slar(u3_noun cor) + { + u3_noun pub, sek; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &pub, u3x_sam_3, &sek, 0)) || + (c3n == u3ud(pub)) || + (c3n == u3ud(sek)) ) + { + return u3m_bail(c3__exit); + } else { + return _cqee_slar(pub, sek); + } + } diff --git a/vere/pkg/noun/jets/e/ed_sign.c b/vere/pkg/noun/jets/e/ed_sign.c new file mode 100644 index 0000000..cd1797d --- /dev/null +++ b/vere/pkg/noun/jets/e/ed_sign.c @@ -0,0 +1,166 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +#include "urcrypt.h" +#include +#include + + static u3_atom + _cqee_sign_octs(u3_noun len, u3_noun dat, u3_noun sed) + { + c3_y sed_y[32]; + c3_w len_w; + if ( 0 != u3r_bytes_fit(32, sed_y, sed) ) { + // hoon calls luck, which crashes + return u3m_bail(c3__exit); + } + else if ( !u3r_word_fit(&len_w, len) ) { + return u3m_bail(c3__fail); + } + else { + c3_y sig_y[64]; + c3_y* dat_y = u3r_bytes_alloc(0, len_w, dat); + urcrypt_ed_sign(dat_y, len_w, sed_y, sig_y); + u3a_free(dat_y); + return u3i_bytes(64, sig_y); + } + } + + u3_noun + u3wee_sign_octs(u3_noun cor) + { + u3_noun msg, sed; + u3_noun len, dat; + if ( c3n == u3r_mean(cor, u3x_sam_2, &msg, u3x_sam_3, &sed, 0) || + c3n == u3r_cell(msg, &len, &dat) || + c3n == u3ud(sed) || + c3n == u3ud(len) || + c3n == u3ud(dat) ) { + return u3m_bail(c3__fail); + } else { + return _cqee_sign_octs(len, dat, sed); + } + } + + static u3_atom + _cqee_sign_octs_raw(u3_noun len, u3_noun dat, u3_noun pub, u3_noun sek) + { + c3_y pub_y[32], sek_y[64]; + c3_w len_w; + if ( 0 != u3r_bytes_fit(32, pub_y, pub) ) { + // hoon asserts size + return u3m_bail(c3__exit); + } + if ( 0 != u3r_bytes_fit(64, sek_y, sek) ) { + // hoon asserts size + return u3m_bail(c3__exit); + } + else if ( !u3r_word_fit(&len_w, len) ) { + return u3m_bail(c3__fail); + } + else { + c3_y sig_y[64]; + c3_y* dat_y = u3r_bytes_alloc(0, len_w, dat); + urcrypt_ed_sign_raw(dat_y, len_w, pub_y, sek_y, sig_y); + u3a_free(dat_y); + return u3i_bytes(64, sig_y); + } + } + + u3_noun + u3wee_sign_octs_raw(u3_noun cor) + { + u3_noun msg, pub, sek; + u3_noun len, dat; + if ( c3n == u3r_mean(cor, u3x_sam_2, &msg, u3x_sam_6, &pub, u3x_sam_7, &sek, 0) || + c3n == u3r_cell(msg, &len, &dat) || + c3n == u3ud(pub) || + c3n == u3ud(sek) || + c3n == u3ud(len) || + c3n == u3ud(dat) ) { + return u3m_bail(c3__fail); + } else { + return _cqee_sign_octs_raw(len, dat, pub, sek); + } + } + + static u3_atom + _cqee_sign(u3_noun msg, + u3_noun sed) + { + c3_y sed_y[32]; + + if ( 0 != u3r_bytes_fit(32, sed_y, sed) ) { + // hoon calls luck, which crashes + return u3m_bail(c3__exit); + } + else { + c3_y sig_y[64]; + c3_w met_w; + c3_y* msg_y = u3r_bytes_all(&met_w, msg); + + urcrypt_ed_sign(msg_y, met_w, sed_y, sig_y); + u3a_free(msg_y); + + return u3i_bytes(64, sig_y); + } + } + + u3_noun + u3wee_sign(u3_noun cor) + { + u3_noun msg, sed; + if ( c3n == u3r_mean(cor, + u3x_sam_2, &msg, u3x_sam_3, &sed, 0) || + c3n == u3ud(msg) || + c3n == u3ud(sed) ) { + return u3m_bail(c3__fail); + } else { + return _cqee_sign(msg, sed); + } + } + + static u3_atom + _cqee_sign_raw(u3_noun msg, + u3_noun pub, + u3_noun sek) + { + c3_y pub_y[32], sek_y[64]; + + if ( 0 != u3r_bytes_fit(32, pub_y, pub) ) { + // hoon asserts size + return u3m_bail(c3__exit); + } + if ( 0 != u3r_bytes_fit(64, sek_y, sek) ) { + // hoon asserts size + return u3m_bail(c3__exit); + } + else { + c3_y sig_y[64]; + c3_w met_w; + c3_y* msg_y = u3r_bytes_all(&met_w, msg); + + urcrypt_ed_sign_raw(msg_y, met_w, pub_y, sek_y, sig_y); + u3a_free(msg_y); + + return u3i_bytes(64, sig_y); + } + } + + u3_noun + u3wee_sign_raw(u3_noun cor) + { + u3_noun msg, pub, sek; + if ( c3n == u3r_mean(cor, + u3x_sam_2, &msg, u3x_sam_6, &pub, u3x_sam_7, &sek, 0) || + c3n == u3ud(msg) || + c3n == u3ud(pub) || + c3n == u3ud(sek) ) { + return u3m_bail(c3__fail); + } else { + return _cqee_sign_raw(msg, pub, sek); + } + } diff --git a/vere/pkg/noun/jets/e/ed_smac.c b/vere/pkg/noun/jets/e/ed_smac.c new file mode 100644 index 0000000..ce0ffac --- /dev/null +++ b/vere/pkg/noun/jets/e/ed_smac.c @@ -0,0 +1,73 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +#include "urcrypt.h" + + static u3_atom + _cqee_smac(u3_atom a, + u3_atom b, + u3_atom c) + { + c3_y a_y[32], b_y[32], c_y[32], out_y[32]; + c3_w met_w; + + met_w = u3r_met(3, a); + if ( (32 < met_w) || + ( (32 == met_w) && + (127 < u3r_byte(31, a)) ) + ) { + u3_noun a_recs = u3qee_recs(a); + u3r_bytes(0, 32, a_y, a_recs); + u3z(a_recs); + } else { + u3r_bytes(0, 32, a_y, a); + } + + met_w = u3r_met(3, b); + if ( (32 < met_w) || + ( (32 == met_w) && + (127 < u3r_byte(31, b)) ) + ) { + u3_noun b_recs = u3qee_recs(b); + u3r_bytes(0, 32, b_y, b_recs); + u3z(b_recs); + } else { + u3r_bytes(0, 32, b_y, b); + } + + met_w = u3r_met(3, c); + if ( (32 < met_w) || + ( (32 == met_w) && + (127 < u3r_byte(31, c)) ) + ) { + u3_noun c_recs = u3qee_recs(c); + u3r_bytes(0, 32, c_y, c_recs); + u3z(c_recs); + } else { + u3r_bytes(0, 32, c_y, c); + } + + urcrypt_ed_scalar_muladd(a_y, b_y, c_y, out_y); + return u3i_bytes(32, out_y); + } + + u3_noun + u3wee_smac(u3_noun cor) + { + u3_noun a, b, c; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, + u3x_sam_6, &b, + u3x_sam_7, &c, 0)) || + (c3n == u3ud(a)) || + (c3n == u3ud(b)) || + (c3n == u3ud(c)) ) + { + return u3m_bail(c3__exit); + } else { + return _cqee_smac(a, b, c); + } + } diff --git a/vere/pkg/noun/jets/e/ed_veri.c b/vere/pkg/noun/jets/e/ed_veri.c new file mode 100644 index 0000000..6d7b750 --- /dev/null +++ b/vere/pkg/noun/jets/e/ed_veri.c @@ -0,0 +1,85 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +#include "urcrypt.h" + + static u3_atom + _cqee_veri_octs(u3_noun sig, + u3_noun len, + u3_noun dat, + u3_noun pub) + { + c3_y sig_y[64], pub_y[32]; + c3_w len_w; + if ( (0 != u3r_bytes_fit(64, sig_y, sig)) || + (0 != u3r_bytes_fit(32, pub_y, pub)) || + !u3r_word_fit(&len_w, len) ) { + return c3n; + } + else { + c3_y* dat_y = u3r_bytes_alloc(0, len_w, dat); + c3_t val_t = urcrypt_ed_veri(dat_y, len_w, pub_y, sig_y); + u3a_free(dat_y); + + return val_t ? c3y : c3n; + } + } + + u3_noun + u3wee_veri_octs(u3_noun cor) + { + u3_noun sig, msg, pub; + u3_noun len, dat; + if ( c3n == u3r_mean(cor, + u3x_sam_2, &sig, u3x_sam_6, &msg, + u3x_sam_7, &pub, 0) || + c3n == u3r_cell(msg, &len, &dat) || + (c3n == u3ud(sig)) || + (c3n == u3ud(pub)) || + (c3n == u3ud(len)) || + (c3n == u3ud(dat)) ) { + return u3m_bail(c3__fail); + } else { + return _cqee_veri_octs(sig, len, dat, pub); + } + } + + static u3_atom + _cqee_veri(u3_noun s, + u3_noun m, + u3_noun pk) + { + c3_y sig_y[64], pub_y[32]; + + if ( (0 != u3r_bytes_fit(64, sig_y, s)) || + (0 != u3r_bytes_fit(32, pub_y, pk)) ) { + return c3n; + } + else { + c3_w met_w; + c3_y* mes_y = u3r_bytes_all(&met_w, m); + c3_t val_t = urcrypt_ed_veri(mes_y, met_w, pub_y, sig_y); + u3a_free(mes_y); + + return val_t ? c3y : c3n; + } + } + + u3_noun + u3wee_veri(u3_noun cor) + { + u3_noun a, b, c; + if ( (c3n == u3r_mean(cor, + u3x_sam_2, &a, u3x_sam_6, &b, + u3x_sam_7, &c, 0)) || + (c3n == u3ud(a)) || + (c3n == u3ud(b)) || + (c3n == u3ud(c)) ) { + return u3m_bail(c3__fail); + } else { + return _cqee_veri(a, b, c); + } + } diff --git a/vere/pkg/noun/jets/e/fein_ob.c b/vere/pkg/noun/jets/e/fein_ob.c new file mode 100644 index 0000000..65d0f3a --- /dev/null +++ b/vere/pkg/noun/jets/e/fein_ob.c @@ -0,0 +1,90 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +#include "murmur3.h" + +// +feis:ob constant parameters to +fe:ob +// +static const c3_w a_w = 0xffff; +static const c3_w b_w = 0x10000; +static const c3_w k_w = 0xffff0000; + +// +raku:ob +// +static const c3_w rak_w[4] = { 0xb76d5eed, 0xee281300, 0x85bcae01, 0x4b387af7 }; + +/* _fe_ob(): +fe:ob, with constant parameters factored out. +** correct over the domain [0x0, 0xfffe.ffff] +*/ +static c3_w +_fe_ob(c3_w m_w) +{ + c3_w l_w = m_w % a_w; + c3_w r_w = m_w / a_w; + c3_w f_w, t_w; + c3_y j_y, k_y[2]; + + for ( j_y = 0; j_y < 4; j_y++ ) { + k_y[0] = r_w & 0xff; + k_y[1] = (r_w >> 8) & 0xff; + + MurmurHash3_x86_32(k_y, 2, rak_w[j_y], &f_w); + + // NB: this addition can overflow a c3_w (before mod) + // + t_w = ((c3_d)f_w + l_w) % (!(j_y & 1) ? a_w : b_w); + l_w = r_w; + r_w = t_w; + } + + // legendary @max19 + // + return ( a_w == r_w ) + ? (r_w * a_w) + l_w + : (l_w * a_w) + r_w; +} + +/* _feis_ob(): +feis:ob, also offsetting by 0x1.000 (as in +fein:ob). +** correct over the domain [0x1.0000, 0xffff.ffff] +*/ +static c3_w +_feis_ob(c3_w m_w) +{ + c3_w c_w = _fe_ob(m_w - b_w); + return b_w + (( c_w < k_w ) ? c_w : _fe_ob(c_w)); +} + +u3_atom +u3qe_fein_ob(u3_atom pyn) +{ + c3_w sor_w = u3r_met(4, pyn); + + if ( (sor_w < 2) || (sor_w > 4) ) { + return u3k(pyn); + } + + if ( 2 == sor_w ) { + return u3i_word(_feis_ob(u3r_word(0, pyn))); + } + else { + c3_w pyn_w[2]; + u3r_words(0, 2, pyn_w, pyn); + + if ( pyn_w[0] < b_w ) { + return u3k(pyn); + } + else { + pyn_w[0] = _feis_ob(pyn_w[0]); + return u3i_words(2, pyn_w); + } + } +} + +u3_noun +u3we_fein_ob(u3_noun cor) +{ + return u3qe_fein_ob(u3x_atom(u3x_at(u3x_sam, cor))); +} diff --git a/vere/pkg/noun/jets/e/fl.c b/vere/pkg/noun/jets/e/fl.c new file mode 100644 index 0000000..c52309e --- /dev/null +++ b/vere/pkg/noun/jets/e/fl.c @@ -0,0 +1,441 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +/* structures +*/ + typedef struct _flOptions { + c3_w precision; + mpz_t minExp; + mpz_t expWidth; + c3_w rMode; + c3_w eMode; + } flOptions; + + typedef struct _ea { + mpz_t e; + mpz_t a; + } ea; + + static void + _satom_to_mp(mpz_t a_mp, + u3_atom b) + { + if ( _(u3a_is_cat(b)) ) { + c3_ws c = (b + 1) >> 1; + if ( (b & 1) ) { + c = -c; + } + mpz_init_set_si(a_mp, c); + } + else { + u3r_mp(a_mp, b); + c3_t x = mpz_odd_p(a_mp); + mpz_add_ui(a_mp, a_mp, 1); + mpz_tdiv_q_2exp(a_mp, a_mp, 1); + if ( x ) { + mpz_neg(a_mp, a_mp); + } + } + } + + static u3_noun + _mp_to_satom(mpz_t a_mp) + { + c3_ws b = mpz_sgn(a_mp); + switch ( b ) { + default: return u3m_bail(c3__fail); + case 0: { + mpz_clear(a_mp); + return 0; + } + case 1: { + mpz_mul_2exp(a_mp, a_mp, 1); + return u3i_mp(a_mp); + } + case -1: { + mpz_abs(a_mp, a_mp); + mpz_mul_2exp(a_mp, a_mp, 1); + mpz_sub_ui(a_mp, a_mp, 1); + return u3i_mp(a_mp); + } + } + } + + static void + _noun_to_flOptions(flOptions* a, + u3_noun b) + { + u3_noun c; + u3_atom d, e, f, g, h; + u3x_trel(b, &c, &d, &e); + u3x_trel(c, &f, &g, &h); + + mpz_t i; + u3r_mp(i, f); + if ( !mpz_fits_uint_p(i) ) { + mpz_clear(i); + u3m_bail(c3__exit); + } + a->precision = mpz_get_ui(i); + mpz_clear(i); + + if ( a->precision < 2 ) u3m_bail(c3__exit); + + _satom_to_mp(a->minExp, g); + u3r_mp(a->expWidth, h); + + if ( !(_(u3a_is_cat(d)) && _(u3a_is_cat(e))) ) { + mpz_clear(a->minExp); + mpz_clear(a->expWidth); + u3m_bail(c3__exit); + } + a->rMode = d; + a->eMode = e; + } + + static void + _noun_to_ea(ea* a, + u3_noun b) + { + u3_atom c, d; + u3x_cell(b, &c, &d); + + if ( !(_(u3a_is_cat(c))) ) { + u3m_bail(c3__exit); + } + + _satom_to_mp(a->e, c); + u3r_mp(a->a, d); + } + + static u3_noun + _ea_to_noun(ea* a) + { + u3_atom b = _mp_to_satom(a->e); + u3_atom c = u3i_mp(a->a); + + return u3nc(b, c); + } + + static void + _xpd(ea* a, + flOptions* b) + { + size_t z = mpz_sizeinbase(a->a, 2); + if ( z >= b->precision ) return; + c3_w c = b->precision - z; + + if ( b->eMode != c3__i ) { + mpz_t i; + mpz_init_set(i, a->e); + mpz_sub(i, i, b->minExp); + if ( mpz_sgn(i) < 0 ) { + c = 0; + } + else if ( mpz_fits_uint_p(i) ) + { + c3_w d = mpz_get_ui(i); + c = c3_min(c, d); + } + mpz_clear(i); + } + + mpz_mul_2exp(a->a, a->a, c); + mpz_sub_ui(a->e, a->e, c); + } + + /* a: floating point number, b: flOptions, i: rounding mode, j: sticky bit */ + u3_noun + u3qef_lug(u3_noun a, + u3_noun b, + u3_atom i, + u3_atom j) + { + mpz_t v, g, h; + ea c; + flOptions d; + _noun_to_ea(&c, a); + _noun_to_flOptions(&d, b); + if ( mpz_sgn(c.a) == 0 ) { + mpz_clear(d.minExp); mpz_clear(d.expWidth); + mpz_clear(c.a); mpz_clear(c.e); + return u3m_bail(c3__exit); + } + size_t m = mpz_sizeinbase(c.a, 2); + if ( !_(j) && (m <= d.precision) ) { + mpz_clear(d.minExp); mpz_clear(d.expWidth); + mpz_clear(c.a); mpz_clear(c.e); + return u3m_bail(c3__exit); + } + c3_w q = 0; + c3_w f = (m > d.precision) ? m - d.precision : 0; + mpz_init(g); + if ( (d.eMode != c3__i) && + (mpz_cmp(c.e, d.minExp) < 0) ) { + mpz_sub(g, d.minExp, c.e); + if ( !mpz_fits_uint_p(g) ) { + mpz_clear(g); + mpz_clear(d.minExp); mpz_clear(d.expWidth); + mpz_clear(c.a); mpz_clear(c.e); + return u3m_bail(c3__exit); + } + q = mpz_get_ui(g); + } + q = c3_max(f, q); + mpz_init(v); + mpz_tdiv_r_2exp(v, c.a, q); + mpz_tdiv_q_2exp(c.a, c.a, q); + mpz_add_ui(c.e, c.e, q); + mpz_init_set_ui(h, 1); + if ( q > 0 ) mpz_mul_2exp(h, h, q - 1); + + if ( mpz_sgn(c.a) == 0 ) { + c3_t y; + switch ( i ) { + default: + mpz_clear(v); mpz_clear(h); mpz_clear(g); + mpz_clear(d.minExp); mpz_clear(d.expWidth); + mpz_clear(c.a); mpz_clear(c.e); + return u3m_bail(c3__exit); + case c3__fl: + case c3__sm: + mpz_set_ui(c.a, 0); + mpz_set_ui(c.e, 0); + mpz_clear(v); mpz_clear(h); mpz_clear(g); + break; + case c3__ce: + case c3__lg: + mpz_set_ui(c.a, 1); + mpz_set(c.e, d.minExp); + mpz_clear(v); mpz_clear(h); mpz_clear(g); + break; + case c3__ne: + case c3__nt: + case c3__na: + if ( (i != c3__na) && _(j) ) { + y = (mpz_cmp(v, h) <= 0); + } else { + y = (mpz_cmp(v, h) < 0); + } + if ( y ) { + mpz_set_ui(c.a, 0); + mpz_set_ui(c.e, 0); + } else { + mpz_set_ui(c.a, 1); + mpz_set(c.e, d.minExp); + } + mpz_clear(v); mpz_clear(h); mpz_clear(g); + break; + } + goto end; + } + _xpd(&c, &d); + switch ( i ) { + c3_ws x; + default: + mpz_clear(v); mpz_clear(h); mpz_clear(g); + mpz_clear(d.minExp); mpz_clear(d.expWidth); + mpz_clear(c.a); mpz_clear(c.e); + return u3m_bail(c3__exit); + case c3__fl: + break; + case c3__lg: + mpz_add_ui(c.a, c.a, 1); + break; + case c3__sm: + if ( (mpz_sgn(v) != 0) || !_(j) ) break; + if ( (mpz_cmp(c.e, d.minExp) == 0) && (d.eMode != c3__i) ) { + mpz_sub_ui(c.a, c.a, 1); + break; + } + mpz_mul_2exp(g, c.a, 1); + mpz_sub_ui(g, g, 1); + if ( mpz_sizeinbase(g, 2) <= d.precision ) { + mpz_sub_ui(c.e, c.e, 1); + mpz_set(c.a, g); + } else { + mpz_sub_ui(c.a, c.a, 1); + } + break; + case c3__ce: + if ( (mpz_sgn(v) != 0) || !_(j) ) { + mpz_add_ui(c.a, c.a, 1); + } + break; + case c3__ne: + if ( mpz_sgn(v) == 0 ) break; + x = mpz_cmp(v, h); + if ( (x == 0) && _(j) ) { + if ( mpz_odd_p(c.a) ) { + mpz_add_ui(c.a, c.a, 1); + } + } + else if ( x >= 0 ) { + mpz_add_ui(c.a, c.a, 1); + } + break; + case c3__na: + case c3__nt: + if ( mpz_sgn(v) == 0 ) break; + x = mpz_cmp(v, h); + if ( (x < 0) ) break; + if ( (i == c3__nt) && (x == 0) ) { + if (!_(j)) mpz_add_ui(c.a, c.a, 1); + } else { + mpz_add_ui(c.a, c.a, 1); + } + break; + } + if ( mpz_sizeinbase(c.a, 2) == (d.precision + 1) ) { + mpz_tdiv_q_2exp(c.a, c.a, 1); + mpz_add_ui(c.e, c.e, 1); + } + if ( mpz_sgn(c.a) == 0 ) { + mpz_set_ui(c.e, 0); + mpz_clear(v); mpz_clear(h); mpz_clear(g); + goto end; + } + mpz_set(g, d.minExp); + mpz_add(g, g, d.expWidth); + if ( (d.eMode != c3__i) && (mpz_cmp(g, c.e) < 0) ) { + mpz_clear(v); mpz_clear(h); mpz_clear(g); + mpz_clear(d.minExp); mpz_clear(d.expWidth); + mpz_clear(c.a); mpz_clear(c.e); + return u3nc(c3__i, c3y); + } + mpz_clear(v); mpz_clear(h); mpz_clear(g); + + // all mpz except in c, d structures cleared; c contains result + end: + if ( d.eMode == c3__f ) { + if ( mpz_sizeinbase(c.a, 2) != d.precision ) { + mpz_set_ui(c.a, 0); + mpz_set_ui(c.e, 0); + } + } + u3_noun ret = u3nq(c3__f, c3y, _mp_to_satom(c.e), u3i_mp(c.a)); + mpz_clear(d.minExp); mpz_clear(d.expWidth); + return ret; + } + + u3_noun + u3wef_lug(u3_noun cor) + { + u3_noun a, b, c, d, e; + a = u3x_at(u3x_sam, cor); + b = u3x_at(30, cor); + u3x_trel(a, &c, &d, &e); + + return u3qef_lug(d, b, c, e); + } + + u3_noun + u3qef_drg(u3_noun a, + u3_noun b) + { + ea c; + flOptions d; + _noun_to_ea(&c, a); + _noun_to_flOptions(&d, b); + if ( mpz_sgn(c.a) == 0 ) { + mpz_clear(d.minExp); mpz_clear(d.expWidth); + mpz_clear(c.a); mpz_clear(c.e); + u3m_bail(c3__exit); + } + _xpd(&c, &d); + if ( !mpz_fits_sint_p(c.e) ) { + mpz_clear(d.minExp); mpz_clear(d.expWidth); + mpz_clear(c.a); mpz_clear(c.e); + u3m_bail(c3__exit); + } + mpz_t r, s, mn, mp, i, j, u, o; + mpz_init_set(r, c.a); + mpz_init_set_ui(s, 1); + mpz_init_set_ui(mn, 1); + mpz_init(i); + mpz_init(j); + c3_w se = mpz_sgn(c.e); + if ( se == 1 ) { + mpz_mul_2exp(r, r, mpz_get_ui(c.e)); + mpz_mul_2exp(mn, mn, mpz_get_ui(c.e)); + } + else if ( se == -1 ) { + mpz_mul_2exp(s, s, mpz_get_ui(c.e)); + } + mpz_init_set(mp, mn); + mpz_set_ui(i, 1); + mpz_mul_2exp(i, i, d.precision - 1); + if ( (mpz_cmp(c.a, i) == 0) && + ((mpz_cmp(c.e, d.minExp) != 0 ) || + (d.eMode == c3__i)) ) { + mpz_mul_2exp(mp, mp, 1); + mpz_mul_2exp(r, r, 1); + mpz_mul_2exp(s, s, 1); + } + mpz_cdiv_q_ui(i, s, 10); + mpz_set_ui(c.e, 0); + while ( mpz_cmp(r, i) < 0 ) { + mpz_sub_ui(c.e, c.e, 1); + mpz_mul_ui(r, r, 10); + mpz_mul_ui(mn, mn, 10); + mpz_mul_ui(mp, mp, 10); + } + while ( 1 ) { + mpz_mul_2exp(i, r, 1); + mpz_add(i, i, mp); + mpz_mul_2exp(j, s, 1); + if ( mpz_cmp(i, j) < 0 ) { + break; + } + mpz_mul_ui(s, s, 10); + mpz_add_ui(c.e, c.e, 1); + } + mpz_init(u); + mpz_init_set_ui(o, 0); + while ( 1 ) { + mpz_sub_ui(c.e, c.e, 1); + mpz_mul_ui(r, r, 10); + mpz_mul_ui(mn, mn, 10); + mpz_mul_ui(mp, mp, 10); + mpz_tdiv_qr(u, r, r, s); + mpz_mul_2exp(i, r, 1); + mpz_mul_2exp(j, s, 1); + c3_t l = mpz_cmp(i, mn) < 0; + c3_t h = mpz_cmp(j, mp) < 0; + if ( !h ) { + mpz_sub(j, j, mp); + h = mpz_cmp(i, j) > 0; + } + if ( l || h ) { + mpz_mul_ui(o, o, 10); + mpz_add(o, o, u); + if ( h && (!l || (mpz_cmp(i, s) > 0)) ) { + mpz_add_ui(o, o, 1); + } + break; + } + mpz_mul_ui(o, o, 10); + mpz_add(o, o, u); + } + mpz_set(c.a, o); + mpz_clear(r); mpz_clear(s); + mpz_clear(mn); mpz_clear(mp); + mpz_clear(i); mpz_clear(j); mpz_clear(u); + mpz_clear(o); mpz_clear(d.minExp); mpz_clear(d.expWidth); + + return _ea_to_noun(&c); + } + + u3_noun + u3wef_drg(u3_noun cor) + { + u3_noun a, b; + a = u3x_at(u3x_sam, cor); + b = u3x_at(30, cor); + + return u3qef_drg(a, b); + } diff --git a/vere/pkg/noun/jets/e/fynd_ob.c b/vere/pkg/noun/jets/e/fynd_ob.c new file mode 100644 index 0000000..62e65d1 --- /dev/null +++ b/vere/pkg/noun/jets/e/fynd_ob.c @@ -0,0 +1,94 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +#include "murmur3.h" + +// +tail:ob constant parameters to +fe:ob +// +static const c3_w a_w = 0xffff; +static const c3_w b_w = 0x10000; +static const c3_w k_w = 0xffff0000; + +// (flop raku:ob) +// +static const c3_w kar_w[4] = { 0x4b387af7, 0x85bcae01, 0xee281300, 0xb76d5eed }; + +/* _fen_ob(): +fen:ob, with constant parameters factored out. +** correct over the domain [0x0 ... 0xfffe.ffff] +*/ +static c3_w +_fen_ob(c3_w m_w) +{ + c3_w l_w = m_w / a_w; + c3_w r_w = m_w % a_w; + c3_w f_w, t_w; + c3_y j_y, k_y[2]; + + // legendary @max19 + // + if ( a_w == l_w ) { + t_w = l_w; + l_w = r_w; + r_w = t_w; + } + + for ( j_y = 0; j_y < 4; j_y++ ) { + k_y[0] = l_w & 0xff; + k_y[1] = (l_w >> 8) & 0xff; + + MurmurHash3_x86_32(k_y, 2, kar_w[j_y], &f_w); + + t_w = ( j_y & 1 ) + ? ((r_w + a_w) - (f_w % a_w)) % a_w + : ((r_w + b_w) - (f_w % b_w)) % b_w; + r_w = l_w; + l_w = t_w; + } + + return (r_w * a_w) + l_w; +} + +/* _tail_ob(): +feis:ob, also offsetting by 0x1.000 (as in +fynd:ob). +** correct over the domain [0x1.0000, 0xffff.ffff] +*/ +static c3_w +_tail_ob(c3_w m_w) +{ + c3_w c_w = _fen_ob(m_w - b_w); + return b_w + (( c_w < k_w ) ? c_w : _fen_ob(c_w)); +} + +u3_atom +u3qe_fynd_ob(u3_atom pyn) +{ + c3_w sor_w = u3r_met(4, pyn); + + if ( (sor_w < 2) || (sor_w > 4) ) { + return u3k(pyn); + } + + if ( 2 == sor_w ) { + return u3i_word(_tail_ob(u3r_word(0, pyn))); + } + else { + c3_w pyn_w[2]; + u3r_words(0, 2, pyn_w, pyn); + + if ( pyn_w[0] < b_w ) { + return u3k(pyn); + } + else { + pyn_w[0] = _tail_ob(pyn_w[0]); + return u3i_words(2, pyn_w); + } + } +} + +u3_noun +u3we_fynd_ob(u3_noun cor) +{ + return u3qe_fynd_ob(u3x_atom(u3x_at(u3x_sam, cor))); +} diff --git a/vere/pkg/noun/jets/e/hmac.c b/vere/pkg/noun/jets/e/hmac.c new file mode 100644 index 0000000..b14ec1e --- /dev/null +++ b/vere/pkg/noun/jets/e/hmac.c @@ -0,0 +1,94 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qe_hmac(u3_noun haj, + u3_atom boq, + u3_atom out, + u3_atom wik, + u3_atom key, + u3_atom wid, + u3_atom dat) + { + u3_assert(_(u3a_is_cat(boq)) && _(u3a_is_cat(wik)) && _(u3a_is_cat(wid))); + + // prep the hashing gate + u3j_site sit_u; + u3j_gate_prep(&sit_u, u3k(haj)); + + // ensure key and message fit signaled lengths + key = u3qc_end(3, wik, key); + dat = u3qc_end(3, wid, dat); + + // keys longer than block size are shortened by hashing + if (wik > boq) { + key = u3j_gate_slam(&sit_u, u3nc(wik, key)); + wik = out; + } + + // keys shorter than block size are right-padded + if (wik < boq) { + key = u3kc_lsh(3, (boq - wik), key); + } + + // pad key, inner and outer + c3_y trail = (boq % 4); + c3_y padwords = (boq / 4) + (trail == 0 ? 0 : 1); + c3_w innpad[padwords], outpad[padwords]; + memset(innpad, 0x36, padwords * 4); + memset(outpad, 0x5c, padwords * 4); + if ( trail > 0 ) { + innpad[padwords-1] = 0x36363636 >> (8 * (4 - trail)); + outpad[padwords-1] = 0x5c5c5c5c >> (8 * (4 - trail)); + } + u3_atom innkey = u3kc_mix(u3k(key), u3i_words(padwords, innpad)); + u3_atom outkey = u3kc_mix( key , u3i_words(padwords, outpad)); + + // append inner padding to message, then hash + u3_atom innmsg = u3ka_add(u3kc_lsh(3, wid, innkey), dat); + u3_atom innhaj = u3j_gate_slam(&sit_u, u3nc((wid + boq), innmsg)); + + // prepend outer padding to result, hash again + u3_atom outmsg = u3ka_add(u3kc_lsh(3, out, outkey), innhaj); + u3_atom outhaj = u3j_gate_slam(&sit_u, u3nc((out + boq), outmsg)); + + u3j_gate_lose(&sit_u); + return outhaj; + } + + u3_noun + u3we_hmac(u3_noun cor) + { + u3_noun haj, boq, out, wik, key, wid, dat; + + // sample is [[haj boq out] [wik key] [wid dat]] + if ( (c3n == u3r_mean(cor, u3x_sam_4, &haj, + 50, &boq, // +<->- + 51, &out, // +<->+ + u3x_sam_12, &wik, + u3x_sam_13, &key, + u3x_sam_14, &wid, + u3x_sam_15, &dat, 0)) || + (c3n == u3ud(boq)) || + (c3n == u3a_is_cat(boq)) || + (c3n == u3ud(out)) || + (c3n == u3a_is_cat(out)) || + (c3n == u3ud(wik)) || + (c3n == u3a_is_cat(wik)) || + (c3n == u3ud(key)) || + (c3n == u3ud(wid)) || + (c3n == u3a_is_cat(wid)) || + (c3n == u3ud(dat)) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qe_hmac(haj, boq, out, wik, key, wid, dat); + } + } diff --git a/vere/pkg/noun/jets/e/jam.c b/vere/pkg/noun/jets/e/jam.c new file mode 100644 index 0000000..2291bc0 --- /dev/null +++ b/vere/pkg/noun/jets/e/jam.c @@ -0,0 +1,60 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qe_jam(u3_atom a) +{ +#if 0 + if (c3y == u3du(a) && 1337 == u3h(a)) { + c3_w siz_w, tot_w = 0; + u3_noun som; + for ( som = u3t(a); c3y == u3du(som); som = u3t(som) ) { + siz_w = u3a_count_noun(u3h(som)); + tot_w += siz_w; + if ( 0 == siz_w ) { + u3l_log("item: B/0"); + } + else { + u3a_print_memory(stderr, "item", siz_w); + } + } + if ( u3_blip != som ) { + u3l_log("forgot to terminate list!"); + } + c3_w mem_w = u3h_count(u3R->cax.har_p); + + for ( som = u3t(a); c3y == u3du(som); som = u3t(som) ) u3a_discount_noun(u3h(som)); + u3h_discount(u3R->cax.har_p); + + u3a_print_memory(stderr, "total", tot_w); + u3a_print_memory(stderr, "memoization cache", mem_w); + u3h_root* har_u = u3to(u3h_root, u3R->cax.har_p); + u3l_log("memoization entries: %d", har_u->use_w); + u3a_print_memory(stderr, "unused free", u3a_open(u3R)); + return tot_w; + } +#endif + + u3i_slab sab_u; + u3s_jam_fib(&sab_u, a); + return u3i_slab_mint(&sab_u); +} + +u3_noun +u3we_jam(u3_noun cor) +{ + return u3qe_jam(u3x_at(u3x_sam, cor)); +} + +u3_atom +u3ke_jam(u3_noun a) +{ + u3_atom b = u3qe_jam(a); + u3z(a); + return b; +} diff --git a/vere/pkg/noun/jets/e/json_de.c b/vere/pkg/noun/jets/e/json_de.c new file mode 100644 index 0000000..e54393a --- /dev/null +++ b/vere/pkg/noun/jets/e/json_de.c @@ -0,0 +1,258 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +#include "pdjson.h" + +/* +** custom code for interfacing with external parser: +** https://github.com/skeeto/pdjson +*/ + +typedef struct _u3qedj_coll { + u3_noun col; // collection (list for array, map for object) + union { // store context for recursive arrays/objects: + u3_noun* tel; // - pointer to tail for array + u3_atom key; // - key for object + }; +} u3qedj_coll; + +static u3qedj_coll* +_push_stack(const u3a_pile *pil_u) +{ + u3qedj_coll *res_u = u3a_push(pil_u); + u3a_pile_done(pil_u); + + res_u->col = u3_nul; + res_u->key = u3_none; + + return res_u; +} + +static u3qedj_coll* +_pop_stack(const u3a_pile *pil_u) +{ + return u3a_pop(pil_u); +} + +static void +_close_stack(const u3a_pile *pil_u) +{ + while ( c3n == u3a_pile_done(pil_u) ) { + u3qedj_coll *tak_u = u3a_peek(pil_u); + + u3z(tak_u->col); + if ( u3_none != tak_u->key ) { + u3z(tak_u->key); + } + + u3a_drop(pil_u); + } +} + +static void +_close_on_error(json_stream *sam_u, const u3a_pile *pil_u) +{ + _close_stack(pil_u); + json_close(sam_u); +} + +static u3_atom +_json_get_string_as_atom(json_stream *sam_u) { + // length returned by json_get_string includes the trailing null byte + // it's possible for json_get_string to return a length of 0, but only if: + // - it's called directly after init + // - it's called directly after init_string + size_t len_i; + const c3_c *str_c = json_get_string(sam_u, &len_i); + return (len_i <= 1) ? + u3_nul : + u3i_bytes(len_i - 1, (const c3_y *)str_c); +} + +static u3_noun +_parse(u3_atom txt) +{ + // + // vars + // + + u3qedj_coll *tak_u; + + json_allocator loc_u = {u3a_malloc, u3a_realloc, u3a_free}; + json_stream sem_u; + json_stream* sam_u = &sem_u; + + u3a_pile pel_u; + u3a_pile *pil_u = &pel_u; + + u3_noun res = u3_none; + u3_noun val; + + const c3_y *byt_y; + c3_z cnt_z; + c3_w len_w = u3r_met(3, txt); + + // + // initialization + // + + // XX assumes little-endian + // + if ( c3y == u3a_is_cat(txt) ) { + byt_y = (c3_y*)&txt; + } + else { + u3a_atom* vat_u = u3a_to_ptr(txt); + byt_y = (c3_y*)vat_u->buf_w; + } + json_open_buffer(sam_u, byt_y, len_w); + json_set_allocator(sam_u, &loc_u); + u3a_pile_prep(pil_u, sizeof(u3qedj_coll)); + + // + // core logic + // + + while ( json_peek(sam_u) != JSON_DONE ) { + switch ( json_next(sam_u) ) { + // unreachable barring programming error + default: u3_assert(0); + + case JSON_ARRAY: + case JSON_OBJECT: { + tak_u = _push_stack(pil_u); + } continue; + + case JSON_ARRAY_END: { + val = u3nc(c3__a, tak_u->col); + tak_u = _pop_stack(pil_u); + } break; + + case JSON_OBJECT_END: { + val = u3nc(c3__o, tak_u->col); + tak_u = _pop_stack(pil_u); + } break; + + case JSON_STRING: { + if ( (json_get_context(sam_u, &cnt_z) == JSON_OBJECT) && (cnt_z & 1) ) { + // since object key must be followed by value, skip ahead + tak_u->key = _json_get_string_as_atom(sam_u); + continue; + } + else { + val = u3nc(c3__s, _json_get_string_as_atom(sam_u)); + break; + } + } + + case JSON_NUMBER: { + // read number from string in the JSON reparser + val = u3nc(c3__n, _json_get_string_as_atom(sam_u)); + } break; + + case JSON_TRUE: { + val = u3nc(c3__b, c3y); + } break; + + case JSON_FALSE: { + val = u3nc(c3__b, c3n); + } break; + + case JSON_NULL: { + val = u3_nul; + } break; + + case JSON_ERROR: { + _close_on_error(sam_u, pil_u); + return u3_nul; + } break; + } + + switch ( json_get_context(sam_u, &cnt_z) ) { + // unreachable barring programming error + default: u3_assert(0); + + case JSON_DONE: { + res = val; + } break; + + case JSON_ARRAY: { + u3_noun* nex; + u3_noun* hed; + + if ( tak_u->col == u3_nul ) { + nex = &(tak_u->col); + } + else { + nex = tak_u->tel; + } + + *nex = u3i_defcons(&hed, &(tak_u->tel)); + *hed = val; + *(tak_u->tel) = u3_nul; + } break; + + case JSON_OBJECT: { + // odd cnt_z and unset key weeded out by continue command on key + u3_assert(!(cnt_z & 1)); + u3_assert(tak_u->key != u3_none); + // cnt_z == 0 weeded out by continue command on array/object open + u3_assert(cnt_z); + + tak_u->col = u3kdb_put(tak_u->col, tak_u->key, val); + tak_u->key = u3_none; + } break; + } + } + + // + // clean up + // + + u3_assert(c3y == u3a_pile_done(pil_u)); + + // skip over whitespce + while ( json_isspace(json_source_peek(sam_u)) ) { + json_source_get(sam_u); + } + + json_close(sam_u); + + // return null if trailing trash/multiple JSON objects + if ( json_get_position(sam_u) != len_w ) { + u3z(res); + return u3_nul; + } + else { + return u3nc(u3_nul, res); + } +} + +/* +** jet interface functions +*/ + +u3_noun +u3qe_json_de(u3_atom a) +{ + return _parse(a); +} + +u3_noun +u3ke_json_de(u3_atom a) +{ + u3_noun res = u3qe_json_de(a); + u3z(a); + return res; +} + +u3_noun +u3we_json_de(u3_noun cor) +{ + return u3qe_json_de(u3x_atom(u3x_at(u3x_sam, cor))); +} diff --git a/vere/pkg/noun/jets/e/json_en.c b/vere/pkg/noun/jets/e/json_en.c new file mode 100644 index 0000000..f605ab4 --- /dev/null +++ b/vere/pkg/noun/jets/e/json_en.c @@ -0,0 +1,416 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +/* +** structs +*/ + +typedef struct _json_buffer { + c3_y *buf_y; + c3_w len_w; +} json_buffer; + +/* +** constants +*/ + +const c3_y _JSON_NULL[] = "null"; +const c3_y _JSON_TRUE[] = "true"; +const c3_y _JSON_FALSE[] = "false"; +const c3_y _JSON_NEWLINE[] = "\\n"; +const c3_y _JSON_DOQ[] = "\\\""; +const c3_y _JSON_BAS[] = "\\\\"; +const c3_y _JSON_DEL[] = "\\u007f"; +const c3_y *_JSON_UNICODES[] = { + (c3_y*)"\\u0000", // 0 + (c3_y*)"\\u0001", // 1 + (c3_y*)"\\u0002", // 2 + (c3_y*)"\\u0003", // 3 + (c3_y*)"\\u0004", // 4 + (c3_y*)"\\u0005", // 5 + (c3_y*)"\\u0006", // 6 + (c3_y*)"\\u0007", // 7 + (c3_y*)"\\u0008", // 8 + (c3_y*)"\\u0009", // 9 + (c3_y*)"\\u000a", // 10 + (c3_y*)"\\u000b", // 11 + (c3_y*)"\\u000c", // 12 + (c3_y*)"\\u000d", // 13 + (c3_y*)"\\u000e", // 14 + (c3_y*)"\\u000f", // 15 + (c3_y*)"\\u0010", // 16 + (c3_y*)"\\u0011", // 17 + (c3_y*)"\\u0012", // 18 + (c3_y*)"\\u0013", // 19 + (c3_y*)"\\u0014", // 20 + (c3_y*)"\\u0015", // 21 + (c3_y*)"\\u0016", // 22 + (c3_y*)"\\u0017", // 23 + (c3_y*)"\\u0018", // 24 + (c3_y*)"\\u0019", // 25 + (c3_y*)"\\u001a", // 26 + (c3_y*)"\\u001b", // 27 + (c3_y*)"\\u001c", // 28 + (c3_y*)"\\u001d", // 29 + (c3_y*)"\\u001e", // 30 + (c3_y*)"\\u001f", // 31 +}; + +/* +** forward declarations +*/ + +static c3_w +_measure(u3_noun a); + +static void +_serialize(json_buffer*, u3_noun); + +/* +** core jet logic +*/ + +static void +_append_char(json_buffer *buf_u, c3_y c_y) +{ + buf_u->buf_y[(buf_u->len_w)++] = c_y; +} + +static void +_append_text(json_buffer *buf_u, const c3_y *buf_y, c3_w len_w) +{ + memcpy(&(buf_u->buf_y[buf_u->len_w]), buf_y, len_w); + buf_u->len_w += len_w; +} + +static c3_w +_measure_loobean(u3_noun a) +{ + switch ( a ) { + default: u3m_bail(c3__exit); + case c3y: return sizeof(_JSON_TRUE) - 1; + case c3n: return sizeof(_JSON_FALSE) - 1; + } +} + +static void +_serialize_loobean(json_buffer *buf_u, u3_noun a) +{ + switch ( a ) { + default: u3_assert(0); + case c3y: _append_text(buf_u, _JSON_TRUE, sizeof(_JSON_TRUE) - 1); break; + case c3n: _append_text(buf_u, _JSON_FALSE, sizeof(_JSON_FALSE) - 1); break; + } +} + +static c3_w +_measure_number(u3_noun a) +{ + if ( _(u3du(a)) ) { + u3m_bail(c3__exit); + } + + return u3r_met(3, a); +} + +static void +_serialize_number(json_buffer *buf_u, u3_noun a) +{ + const c3_y *byt_y; + + // XX assumes little-endian + // + if ( c3y == u3a_is_cat(a) ) { + byt_y = (c3_y*)&a; + } + else { + u3a_atom* vat_u = u3a_to_ptr(a); + byt_y = (c3_y*)vat_u->buf_w; + } + + _append_text(buf_u, byt_y, u3r_met(3, a)); +} + +static c3_w +_measure_string(u3_noun a) +{ + if ( _(u3du(a)) ) { + u3m_bail(c3__exit); + } + + c3_w len_w = u3r_met(3, a); + c3_w siz_w = 0; + + for (c3_w i = 0; i < len_w; ++i) { + c3_y c_y = u3r_byte(i, a); + + switch ( c_y ) { + case 0 ... 9: + case 11 ... 31: { + siz_w += 6; + } break; + + case 10: { + siz_w += sizeof(_JSON_NEWLINE) - 1; + } break; + + case 34: { + siz_w += sizeof(_JSON_DOQ) - 1; + } break; + + case 92: { + siz_w += sizeof(_JSON_BAS) - 1; + } break; + + case 127: { + siz_w += sizeof(_JSON_DEL) - 1; + } break; + + default: { + siz_w += 1; + } break; + } + } + + // surrounding double quotes + return (siz_w + 2); +} + +static void +_serialize_string(json_buffer *buf_u, u3_noun a) +{ + c3_w len_w = u3r_met(3, a); + + _append_char(buf_u, '"'); + for (c3_w i = 0; i < len_w; ++i) { + c3_y c_y = u3r_byte(i, a); + + switch ( c_y ) { + case 0 ... 9: + case 11 ... 31: { + _append_text(buf_u, _JSON_UNICODES[c_y], 6); + } break; + + case 10: { + _append_text(buf_u, _JSON_NEWLINE, sizeof(_JSON_NEWLINE) - 1); + } break; + + case 34: { + _append_text(buf_u, _JSON_DOQ, sizeof(_JSON_DOQ) - 1); + } break; + + case 92: { + _append_text(buf_u, _JSON_BAS, sizeof(_JSON_BAS) - 1); + } break; + + case 127: { + _append_text(buf_u, _JSON_DEL, sizeof(_JSON_DEL) - 1); + } break; + + default: { + _append_char(buf_u, c_y); + } break; + } + } + _append_char(buf_u, '"'); +} + +static c3_w +_measure_array(u3_noun a) +{ + if ( u3_nul != a ) { + u3_noun i, t = a; + // array open brace + c3_w siz_w = 1; + + while ( u3_nul != t ) { + u3x_cell(t, &i, &t); + siz_w += _measure(i); + // comma or array close brace + siz_w += 1; + } + + return siz_w; + } + else { + // empty array + return 2; + } +} + +static void +_serialize_array(json_buffer *buf_u, u3_noun a) +{ + _append_char(buf_u, '['); + + if ( u3_nul != a ) { + u3_noun i, t = a; + + while ( u3_nul != t ) { + u3x_cell(t, &i, &t); + _serialize(buf_u, i); + _append_char(buf_u, ','); + } + + // Remove trailing comma from array contents + --buf_u->len_w; + } + + _append_char(buf_u, ']'); +} + +static c3_w +_measure_object_helper(u3_noun a) +{ + c3_w siz_w = 0; + + if ( u3_nul != a ) { + u3_noun n_a, l_a, r_a; + u3_noun pn_a, qn_a; + u3x_trel(a, &n_a, &l_a, &r_a); + u3x_cell(n_a, &pn_a, &qn_a); + + siz_w += _measure_object_helper(r_a); + siz_w += _measure_object_helper(l_a); + + siz_w += _measure_string(pn_a); + siz_w += _measure(qn_a); + + // colon and comma (or closing brace) + siz_w += 2; + } + + return siz_w; +} + +static void +_serialize_object_helper(json_buffer *buf_u, u3_noun a) +{ + if ( u3_nul != a ) { + u3_noun n_a, l_a, r_a; + u3_noun pn_a, qn_a; + u3x_trel(a, &n_a, &l_a, &r_a); + u3x_cell(n_a, &pn_a, &qn_a); + + // order is important to match unjetted tree traversal + _serialize_object_helper(buf_u, r_a); + + _serialize_string(buf_u, pn_a); + _append_char(buf_u, ':'); + _serialize(buf_u, qn_a); + _append_char(buf_u, ','); + + _serialize_object_helper(buf_u, l_a); + } +} + +static c3_w +_measure_object(u3_noun a) +{ + if ( u3_nul != a ) { + // opening brace + return 1 + _measure_object_helper(a); + } + else { + // empty object + return 2; + } +} + +static void +_serialize_object(json_buffer *buf_u, u3_noun a) +{ + _append_char(buf_u, '{'); + + if ( u3_nul != a ) { + _serialize_object_helper(buf_u, a); + + // Remove trailing comma from object contents + --buf_u->len_w; + } + + _append_char(buf_u, '}'); +} + +static c3_w +_measure(u3_noun a) +{ + if ( u3_nul == a ) { + return sizeof(_JSON_NULL) - 1; + } + else { + u3_noun s, p; + u3x_cell(a, &s, &p); + + switch ( s ) { + default: u3m_bail(c3__fail); + case c3__a: return _measure_array(p); + case c3__o: return _measure_object(p); + case c3__b: return _measure_loobean(p); + case c3__n: return _measure_number(p); + case c3__s: return _measure_string(p); + } + } +} + +static void +_serialize(json_buffer *buf_u, u3_noun a) +{ + if ( u3_nul == a ) { + _append_text(buf_u, _JSON_NULL, sizeof(_JSON_NULL) - 1); + } + else { + u3_noun s, p; + u3x_cell(a, &s, &p); + + switch ( s ) { + default: u3_assert(0); + case c3__a: _serialize_array(buf_u, p); break; + case c3__o: _serialize_object(buf_u, p); break; + case c3__b: _serialize_loobean(buf_u, p); break; + case c3__n: _serialize_number(buf_u, p); break; + case c3__s: _serialize_string(buf_u, p); break; + } + } +} + +/* +** jet interface functions +*/ + +u3_atom +u3qe_json_en(u3_noun a) +{ + u3i_slab sab_u; + json_buffer bof_u; + json_buffer *buf_u = &bof_u; + c3_w siz_w = _measure(a); + + u3i_slab_init(&sab_u, 3, siz_w); + buf_u->buf_y = sab_u.buf_y; + buf_u->len_w = 0; + + // note that it's structurally integral to call measure before serialize + _serialize(buf_u, a); + + return u3i_slab_mint_bytes(&sab_u); +} + +u3_atom +u3ke_json_en(u3_noun a) +{ + u3_atom res = u3qe_json_en(a); + u3z(a); + return res; +} + +u3_atom +u3we_json_en(u3_noun cor) +{ + return u3qe_json_en(u3x_at(u3x_sam, cor)); +} diff --git a/vere/pkg/noun/jets/e/keccak.c b/vere/pkg/noun/jets/e/keccak.c new file mode 100644 index 0000000..6149c55 --- /dev/null +++ b/vere/pkg/noun/jets/e/keccak.c @@ -0,0 +1,42 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +#include "urcrypt.h" + +#define defw(bits,byts) \ + u3_atom \ + _kecc_##bits(c3_w len_w, u3_atom a) \ + { \ + c3_y out[byts]; \ + c3_y* buf_y = u3r_bytes_alloc(0, len_w, a); \ + if ( 0 != urcrypt_keccak_##bits(buf_y, len_w, out) ) { \ + /* urcrypt_keccac_##bits always succeeds when called correctly */ \ + return u3m_bail(c3__oops); \ + } \ + else { \ + u3_atom pro = u3i_bytes(byts, out); \ + u3a_free(buf_y); \ + return pro; \ + } \ + } \ + \ + u3_weak \ + u3we_kecc##bits(u3_noun cor) \ + { \ + c3_w len_w; \ + u3_noun len, tom; \ + u3x_mean(cor, u3x_sam_2, &len, u3x_sam_3, &tom, 0); \ + return ( (c3n == u3ud(len)) || (c3n == u3ud(tom)) ) \ + ? u3m_bail(c3__exit) \ + : (!u3r_word_fit(&len_w, len)) \ + ? u3m_bail(c3__fail) \ + : _kecc_##bits(len_w, tom); \ + } + +defw(224, 28) +defw(256, 32) +defw(384, 48) +defw(512, 64) diff --git a/vere/pkg/noun/jets/e/leer.c b/vere/pkg/noun/jets/e/leer.c new file mode 100644 index 0000000..8ffe372 --- /dev/null +++ b/vere/pkg/noun/jets/e/leer.c @@ -0,0 +1,131 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +static u3_atom +_leer_cut(c3_w pos_w, c3_w len_w, u3_atom src) +{ + if ( 0 == len_w ) { + return 0; + } + else { + u3i_slab sab_u; + u3i_slab_bare(&sab_u, 3, len_w); + sab_u.buf_w[sab_u.len_w - 1] = 0; + + u3r_bytes(pos_w, len_w, sab_u.buf_y, src); + + return u3i_slab_mint_bytes(&sab_u); + } +} + +// Leaving the lore jet in place for backwards compatibility. +// TODO: remove u3[qw]e_lore (also from jet tree) + +u3_noun +u3qe_lore(u3_atom lub) +{ + c3_w len_w = u3r_met(3, lub); + c3_w pos_w = 0; + u3_noun tez = u3_nul; + + while ( 1 ) { + c3_w meg_w = 0; + c3_y end_y; + + c3_y byt_y; + while ( 1 ) { + if ( pos_w >= len_w ) { + byt_y = 0; + end_y = c3y; + break; + } + byt_y = u3r_byte(pos_w + meg_w, lub); + + if ( (10 == byt_y) || (0 == byt_y) ) { + end_y = __(byt_y == 0); + break; + } else meg_w++; + } + + if ((byt_y == 0) && ((pos_w + meg_w + 1) < len_w)) { + return u3m_bail(c3__exit); + } + + if ( !_(end_y) && pos_w >= len_w ) { + return u3kb_flop(tez); + } + else { + tez = u3nc(_leer_cut(pos_w, meg_w, lub), tez); + if ( _(end_y) ) { + return u3kb_flop(tez); + } + pos_w += (meg_w + 1); + } + } +} + +u3_noun +u3we_lore(u3_noun cor) +{ + u3_noun lub; + + if ( (u3_none == (lub = u3r_at(u3x_sam, cor))) || + (c3n == u3ud(lub)) ) + { + return u3m_bail(c3__fail); + } else { + return u3qe_lore(lub); + } +} + +u3_noun +u3qe_leer(u3_atom txt) +{ + u3_noun pro; + u3_noun* lit = &pro; + + { + c3_w pos_w, i_w = 0, len_w = u3r_met(3, txt); + u3_noun* hed; + u3_noun* tel; + + while ( i_w < len_w ) { + // scan till end or newline + // + for ( pos_w = i_w; i_w < len_w; ++i_w ) { + if ( 10 == u3r_byte(i_w, txt) ) { + break; + } + } + + // append to list + // + *lit = u3i_defcons(&hed, &tel); + *hed = _leer_cut(pos_w, i_w - pos_w, txt); + lit = tel; + + i_w++; + } + } + + *lit = u3_nul; + + return pro; +} + +u3_noun +u3we_leer(u3_noun cor) +{ + u3_noun txt = u3x_at(u3x_sam, cor); + + if ( c3n == u3ud(txt) ) { + return u3m_bail(c3__fail); + } + + return u3qe_leer(txt); +} diff --git a/vere/pkg/noun/jets/e/loss.c b/vere/pkg/noun/jets/e/loss.c new file mode 100644 index 0000000..35cdc4e --- /dev/null +++ b/vere/pkg/noun/jets/e/loss.c @@ -0,0 +1,297 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + typedef struct _u3_loss { // loss problem + u3_noun hel; // a as a list + c3_w lel_w; // length of a + c3_w lev_w; // length of b + u3_noun* hev; // b as an array + u3_noun sev; // b as a set of lists + c3_w kct_w; // candidate count + u3_noun* kad; // candidate array + } u3_loss; + + // free loss object + // + static void + _flem(u3_loss* loc_u) + { + u3z(loc_u->sev); + { + c3_w i_w; + + for ( i_w = 0; i_w < loc_u->kct_w; i_w++ ) { + u3z(loc_u->kad[i_w]); + } + } + u3a_free(loc_u->hev); + u3a_free(loc_u->kad); + } + + // extract lcs - XX don't use the stack like this + // + static u3_noun + _lext(u3_loss* loc_u, + u3_noun kad) + { + if ( u3_nul == kad ) { + return u3_nul; + } else { + return u3nc(u3k(loc_u->hev[u3r_word(0, u3h(kad))]), + _lext(loc_u, u3t(kad))); + } + } + + // extract lcs + // + static u3_noun + _lexs(u3_loss* loc_u) + { + if ( 0 == loc_u->kct_w ) { + return u3_nul; + } else return u3kb_flop(_lext(loc_u, loc_u->kad[loc_u->kct_w - 1])); + } + + // initialize loss object + // + static void + _lemp(u3_loss* loc_u, + u3_noun hel, + u3_noun hev) + { + loc_u->hel = hel; + loc_u->lel_w = u3kb_lent(u3k(hel)); + + // Read hev into array. + { + c3_w i_w; + + loc_u->hev = u3a_malloc(u3kb_lent(u3k(hev)) * sizeof(u3_noun)); + + for ( i_w = 0; u3_nul != hev; i_w++ ) { + loc_u->hev[i_w] = u3h(hev); + hev = u3t(hev); + } + loc_u->lev_w = i_w; + } + loc_u->kct_w = 0; + loc_u->kad = u3a_malloc((1 + c3_min(loc_u->lev_w, loc_u->lel_w)) * + sizeof(u3_noun)); + + // Compute equivalence classes. + // + loc_u->sev = u3_nul; + { + c3_w i_w; + + for ( i_w = 0; i_w < loc_u->lev_w; i_w++ ) { + u3_noun how = loc_u->hev[i_w]; + u3_noun hav; + u3_noun teg; + + hav = u3kdb_get(u3k(loc_u->sev), u3k(how)); + teg = u3nc(u3i_words(1, &i_w), + (hav == u3_none) ? u3_nul : hav); + loc_u->sev = u3kdb_put(loc_u->sev, u3k(how), teg); + } + } + } + + // apply + // + static void + _lune(u3_loss* loc_u, + c3_w inx_w, + c3_w goy_w) + { + u3_noun kad; + + kad = u3nc(u3i_words(1, &goy_w), + (inx_w == 0) ? u3_nul + : u3k(loc_u->kad[inx_w - 1])); + if ( loc_u->kct_w == inx_w ) { + u3_assert(loc_u->kct_w < (1 << 31)); + loc_u->kct_w++; + } else { + u3z(loc_u->kad[inx_w]); + } + loc_u->kad[inx_w] = kad; + } + + // extend fits top + // + static u3_noun + _hink(u3_loss* loc_u, + c3_w inx_w, + c3_w goy_w) + { + return __ + ( (loc_u->kct_w == inx_w) || + (u3r_word(0, u3h(loc_u->kad[inx_w])) > goy_w) ); + } + + // extend fits bottom + // + static u3_noun + _lonk(u3_loss* loc_u, + c3_w inx_w, + c3_w goy_w) + { + return __ + ( (0 == inx_w) || + (u3r_word(0, u3h(loc_u->kad[inx_w - 1])) < goy_w) ); + } + +#if 0 + // search for first index >= inx_w and <= max_w that fits + // the hink and lonk criteria. + // + static u3_noun + _binka(u3_loss* loc_u, + c3_w* inx_w, + c3_w max_w, + c3_w goy_w) + { + while ( *inx_w <= max_w ) { + if ( c3n == _lonk(loc_u, *inx_w, goy_w) ) { + return c3n; + } + if ( c3y == _hink(loc_u, *inx_w, goy_w) ) { + return c3y; + } + else ++*inx_w; + } + return c3n; + } +#endif + + // search for lowest index >= inx_w and <= max_w for which + // both hink(inx_w) and lonk(inx_w) are true. lonk is false + // if inx_w is too high, hink is false if it is too low. + // + static u3_noun + _bink(u3_loss* loc_u, + c3_w* inx_w, + c3_w max_w, + c3_w goy_w) + { + u3_assert(max_w >= *inx_w); + + if ( max_w == *inx_w ) { + if ( c3n == _lonk(loc_u, *inx_w, goy_w) ) { + return c3n; + } + if ( c3y == _hink(loc_u, *inx_w, goy_w) ) { + return c3y; + } + else { + ++*inx_w; + return c3n; + } + } + else { + c3_w mid_w = *inx_w + ((max_w - *inx_w) / 2); + + if ( (c3n == _lonk(loc_u, mid_w, goy_w)) || + (c3y == _hink(loc_u, mid_w, goy_w)) ) + { + return _bink(loc_u, inx_w, mid_w, goy_w); + } else { + *inx_w = mid_w + 1; + return _bink(loc_u, inx_w, max_w, goy_w); + } + } + } + + + static void + _merg(u3_loss* loc_u, + c3_w inx_w, + u3_noun gay) + { + if ( (u3_nul == gay) || (inx_w > loc_u->kct_w) ) { + return; + } + else { + u3_noun i_gay = u3h(gay); + c3_w goy_w = u3r_word(0, i_gay); + u3_noun bik; + + bik = _bink(loc_u, &inx_w, loc_u->kct_w, goy_w); + + if ( c3y == bik ) { + _merg(loc_u, inx_w + 1, u3t(gay)); + _lune(loc_u, inx_w, goy_w); + } + else { + _merg(loc_u, inx_w, u3t(gay)); + } + } + } + + // compute lcs + // + static void + _loss(u3_loss* loc_u) + { + while ( u3_nul != loc_u->hel ) { + u3_noun i_hel = u3h(loc_u->hel); + u3_noun guy = u3kdb_get(u3k(loc_u->sev), u3k(i_hel)); + + if ( u3_none != guy ) { + u3_noun gay = u3kb_flop(guy); + + _merg(loc_u, 0, gay); + u3z(gay); + } + + loc_u->hel = u3t(loc_u->hel); + } + } + + u3_noun + u3qe_loss(u3_noun hel, + u3_noun hev) + { + u3_loss loc_u; + u3_noun lcs; + + _lemp(&loc_u, hel, hev); + _loss(&loc_u); + lcs = _lexs(&loc_u); + + _flem(&loc_u); + return lcs; + } + + static u3_noun + _listp(u3_noun lix) + { + while ( 1 ) { + if ( u3_nul == lix ) return c3y; + if ( c3n == u3du(lix) ) return c3n; + lix = u3t(lix); + } + } + + u3_noun + u3we_loss(u3_noun cor) + { + u3_noun hel, hev; + + if ( (u3_none == (hel = u3r_at(u3x_sam_2, cor))) || + (u3_none == (hev = u3r_at(u3x_sam_3, cor))) || + (c3n == _listp(hel)) || + (c3n == _listp(hev)) ) + { + return u3m_bail(c3__fail); + } else { + return u3qe_loss(hel, hev); + } + } diff --git a/vere/pkg/noun/jets/e/lune.c b/vere/pkg/noun/jets/e/lune.c new file mode 100644 index 0000000..1187073 --- /dev/null +++ b/vere/pkg/noun/jets/e/lune.c @@ -0,0 +1,57 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qe_lune(u3_atom lub) + { + if (lub == 0) { + return u3_nul; + } + + { + c3_w end_w = u3r_met(3, lub) - 1; + c3_w pos_w = end_w; + u3_noun lin = u3_nul; + + if (u3r_byte(pos_w, lub) != 10) { + return u3m_error("noeol"); + } + + if (pos_w == 0) { + return u3nc(u3_nul, lin); + } + + while (--pos_w) { + if (u3r_byte(pos_w, lub) == 10) { + lin = u3nc(u3qc_cut(3, (pos_w + 1), (end_w - pos_w - 1), lub), lin); + end_w = pos_w; + } + } + + if (u3r_byte(pos_w, lub) == 10) { + return u3nc(u3_nul, + u3nc(u3qc_cut(3, (pos_w + 1), (end_w - pos_w - 1), lub), lin)); + } + + return u3nc(u3qc_cut(3, pos_w, (end_w - pos_w), lub), lin); + } + } + + u3_noun + u3we_lune(u3_noun cor) + { + u3_noun lub; + + if ( (u3_none == (lub = u3r_at(u3x_sam, cor))) || + (c3n == u3ud(lub)) ) + { + return u3m_bail(c3__fail); + } else { + return u3qe_lune(lub); + } + } diff --git a/vere/pkg/noun/jets/e/mat.c b/vere/pkg/noun/jets/e/mat.c new file mode 100644 index 0000000..89de386 --- /dev/null +++ b/vere/pkg/noun/jets/e/mat.c @@ -0,0 +1,49 @@ + /// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + u3_noun + u3qe_mat(u3_atom a) + { + if ( 0 == a ) { + return u3nc(1, 1); + } else { + u3_atom b = u3qc_met(0, a); + u3_atom c = u3qc_met(0, b); + u3_atom u, v, w, x, y, z; + u3_atom p, q; + + u = u3qa_dec(c); + v = u3qa_add(c, c); + w = u3qc_bex(c); + x = u3qc_end(0, u, b); + y = u3qc_lsh(0, u, a); + z = u3qc_mix(x, y); + + p = u3qa_add(v, b); + q = u3qc_cat(0, w, z); + + u3z(u); + u3z(v); + u3z(w); + u3z(x); + u3z(y); + u3z(z); + + return u3nc(p, q); + } + } + u3_noun + u3we_mat(u3_noun cor) + { + u3_noun a; + + if ( (u3_none == (a = u3r_at(u3x_sam, cor))) ) { + return u3m_bail(c3__fail); + } else { + return u3qe_mat(a); + } + } diff --git a/vere/pkg/noun/jets/e/mink.c b/vere/pkg/noun/jets/e/mink.c new file mode 100644 index 0000000..4caa208 --- /dev/null +++ b/vere/pkg/noun/jets/e/mink.c @@ -0,0 +1,27 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + u3_noun + u3we_mink(u3_noun cor) + { + u3_noun bus, fol, gul; + + if ( c3n == u3r_mean(cor, u3x_sam_4, &bus, + u3x_sam_5, &fol, + u3x_sam_3, &gul, + 0) ) + { + return u3m_bail(c3__exit); + } + else { + u3_noun som; + + som = u3n_nock_et(u3k(gul), u3k(bus), u3k(fol)); + + return som; + } + } diff --git a/vere/pkg/noun/jets/e/mole.c b/vere/pkg/noun/jets/e/mole.c new file mode 100644 index 0000000..a318390 --- /dev/null +++ b/vere/pkg/noun/jets/e/mole.c @@ -0,0 +1,18 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3we_mole(u3_noun cor) +{ + u3_noun hok = u3j_cook("u3we_mole-mure", u3k(cor), "mure"); + + // just like +mule and +mute, this takes advantage of the fact that + // +mure's result is identical to that of +mole, and safely produces + // a statically-typed value while only evaluating the trap once. + // + return u3n_slam_on(hok, u3k(u3x_at(u3x_sam, cor))); +} diff --git a/vere/pkg/noun/jets/e/mule.c b/vere/pkg/noun/jets/e/mule.c new file mode 100644 index 0000000..79e4656 --- /dev/null +++ b/vere/pkg/noun/jets/e/mule.c @@ -0,0 +1,19 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3we_mule(u3_noun cor) +{ + u3_noun hok = u3j_cook("u3we_mule-mute", u3k(cor), "mute"); + + + // this takes advantage of the fact that +mute's result is + // identical to that of +mule, and safely produces a statically-typed + // value while only evaluating the trap once. + // + return u3n_slam_on(hok, u3k(u3x_at(u3x_sam, cor))); +} diff --git a/vere/pkg/noun/jets/e/parse.c b/vere/pkg/noun/jets/e/parse.c new file mode 100644 index 0000000..a6f5a42 --- /dev/null +++ b/vere/pkg/noun/jets/e/parse.c @@ -0,0 +1,1016 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + static u3_noun + _slip(u3_noun weq, + u3_noun naz) + { + u3_noun p_naz, q_naz; + + u3x_cell(naz, &p_naz, &q_naz); + if ( 10 == weq ) { + return u3nc(u3x_good(u3i_vint(u3k(p_naz))), + 1); + } else { + return u3nc(u3k(p_naz), + u3x_good(u3i_vint(u3k(q_naz)))); + } + } + + static u3_noun + _fail(u3_noun tub) + { + u3_noun p_tub, q_tub; + + u3x_cell(tub, &p_tub, &q_tub); + return u3nc(u3k(p_tub), u3_nul); + } + + static u3_noun + _last(u3_noun zyc, + u3_noun naz) + { + u3_noun p_zyc, q_zyc, p_naz, q_naz; + + u3x_cell(zyc, &p_zyc, &q_zyc); + u3x_cell(naz, &p_naz, &q_naz); + + if ( !_(u3a_is_cat(p_zyc)) || !_(u3a_is_cat(q_zyc)) || + !_(u3a_is_cat(p_naz)) || !_(u3a_is_cat(q_naz)) ) + { + return u3m_bail(c3__fail); + } else { + if ( p_zyc == p_naz ) { + return (q_zyc > q_naz) ? u3k(zyc) : u3k(naz); + } + else { + return (p_zyc > p_naz) ? u3k(zyc) : u3k(naz); + } + } + } + + static u3_noun + _last_k(u3_noun zyc, u3_noun naz) + { + u3_noun pro = _last(zyc, naz); + u3z(zyc); u3z(naz); + return pro; + } + + static u3_noun + _next(u3_noun tub) + { + u3_noun p_tub, q_tub; + u3_noun zac; + + u3x_cell(tub, &p_tub, &q_tub); + if ( c3n == u3du(q_tub) ) { + return _fail(tub); + } + else { + u3_noun iq_tub = u3h(q_tub); + u3_noun tq_tub = u3t(q_tub); + + zac = _slip(iq_tub, p_tub); + + return u3nc(zac, + u3nq(u3_nul, + u3k(iq_tub), + u3k(zac), + u3k(tq_tub))); + } + } + +/* bend +*/ + static u3_noun + _cqe_bend_fun(u3_noun raq, + u3_noun vex, + u3_noun sab) + { + u3_noun p_vex, q_vex; + + u3x_cell(vex, &p_vex, &q_vex); + if ( c3n == u3du(q_vex) ) { + return u3k(vex); + } else { + u3_noun uq_vex = u3t(q_vex); + u3_noun puq_vex, quq_vex; + u3_noun yit, yur; + u3_noun p_yit, q_yit; + u3_noun ret; + + u3x_cell(uq_vex, &puq_vex, &quq_vex); + yit = u3x_good(u3n_slam_on(u3k(sab), u3k(quq_vex))); + + u3x_cell(yit, &p_yit, &q_yit); + yur = _last(p_vex, p_yit); + + if ( c3n == u3du(q_yit) ) { + ret = u3nc(yur, u3k(q_vex)); + } + else { + u3_noun uq_yit = u3t(q_yit); + u3_noun puq_yit, quq_yit; + u3_noun vux; + + u3x_cell(uq_yit, &puq_yit, &quq_yit); + + vux = u3x_good(u3n_slam_on(u3k(raq), + u3nc(u3k(puq_vex), + u3k(puq_yit)))); + if ( u3_nul == vux ) { + ret = u3nc(yur, u3k(q_vex)); + } + else { + ret = u3nq(yur, + u3_nul, + u3k(u3t(vux)), + u3k(quq_yit)); + u3z(vux); + } + } + u3z(yit); + return ret; + } + } + + u3_noun + u3we_bend_fun(u3_noun cor) + { + u3_noun van, raq, vex, sab; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &vex, + u3x_sam_3, &sab, + u3x_con, &van, 0)) || + (u3_none == (raq = u3r_at(u3x_sam, van))) ) + { + return u3m_bail(c3__fail); + } else { + return _cqe_bend_fun(raq, vex, sab); + } + } + +/* cold +*/ + static u3_noun + _cqe_cold_fun(u3_noun cus, + u3_noun sef, + u3_noun tub) + { + u3_noun vex = u3x_good(u3n_slam_on(u3k(sef), u3k(tub))); + u3_noun p_vex, q_vex; + + u3x_cell(vex, &p_vex, &q_vex); + + if ( c3n == u3du(q_vex) ) { + return vex; + } + else { + u3_noun uq_vex = u3t(q_vex); + u3_noun quq_vex; + u3_noun ret; + + u3x_cell(uq_vex, 0, &quq_vex); + ret = u3nq(u3k(p_vex), + u3_nul, + u3k(cus), + u3k(quq_vex)); + + u3z(vex); + return ret; + } + } + + u3_noun + u3we_cold_fun(u3_noun cor) + { + u3_noun van, cus, sef, tub; + + if ( (c3n == u3r_mean(cor, u3x_sam, &tub, u3x_con, &van, 0)) || + (c3n == u3r_mean(van, u3x_sam_2, &cus, u3x_sam_3, &sef, 0)) ) + { + return u3m_bail(c3__fail); + } else { + return _cqe_cold_fun(cus, sef, tub); + } + } + +/* cook +*/ + static u3_noun + _cqe_cook_fun(u3_noun poq, + u3_noun sef, + u3_noun tub) + { + u3_noun vex = u3x_good(u3n_slam_on(u3k(sef), u3k(tub))); + u3_noun p_vex, q_vex; + + u3x_cell(vex, &p_vex, &q_vex); + + if ( c3n == u3du(q_vex) ) { + return vex; + } + else { + u3_noun uq_vex = u3t(q_vex); + u3_noun puq_vex, quq_vex; + u3_noun wag; + u3_noun ret; + + u3x_cell(uq_vex, &puq_vex, &quq_vex); + wag = u3x_good(u3n_slam_on(u3k(poq), u3k(puq_vex))); + ret = u3nq(u3k(p_vex), + u3_nul, + wag, + u3k(quq_vex)); + + u3z(vex); + return ret; + } + } + + u3_noun + u3we_cook_fun(u3_noun cor) + { + u3_noun van, poq, sef, tub; + + if ( (c3n == u3r_mean(cor, u3x_sam, &tub, u3x_con, &van, 0)) || + (c3n == u3r_mean(van, u3x_sam_2, &poq, u3x_sam_3, &sef, 0)) ) + { + return u3m_bail(c3__fail); + } else { + return _cqe_cook_fun(poq, sef, tub); + } + } + +/* comp +*/ + static u3_noun + _cqe_comp_fun(u3_noun raq, + u3_noun vex, + u3_noun sab) + { + u3_noun p_vex, q_vex; + + u3x_cell(vex, &p_vex, &q_vex); + if ( c3n == u3du(q_vex) ) { + return u3k(vex); + } else { + u3_noun uq_vex = u3t(q_vex); + u3_noun puq_vex, quq_vex; + u3_noun yit, yur; + u3_noun p_yit, q_yit; + u3_noun ret; + + u3x_cell(uq_vex, &puq_vex, &quq_vex); + yit = u3x_good(u3n_slam_on(u3k(sab), u3k(quq_vex))); + + u3x_cell(yit, &p_yit, &q_yit); + yur = _last(p_vex, p_yit); + + if ( c3n == u3du(q_yit) ) { + ret = u3nc(yur, u3k(q_yit)); + } + else { + u3_noun uq_yit = u3t(q_yit); + u3_noun puq_yit, quq_yit; + + u3x_cell(uq_yit, &puq_yit, &quq_yit); + ret = u3nq(yur, + u3_nul, + u3x_good(u3n_slam_on(u3k(raq), + u3nc(u3k(puq_vex), + u3k(puq_yit)))), + u3k(quq_yit)); + } + u3z(yit); + return ret; + } + } + + u3_noun + u3we_comp_fun(u3_noun cor) + { + u3_noun van, raq, vex, sab; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &vex, + u3x_sam_3, &sab, + u3x_con, &van, 0)) || + (u3_none == (raq = u3r_at(u3x_sam, van))) ) + { + return u3m_bail(c3__fail); + } else { + return _cqe_comp_fun(raq, vex, sab); + } + } + +/* easy +*/ + static u3_noun + _cqe_easy_fun(u3_noun huf, + u3_noun tub) + { + u3_noun p_tub, q_tub; + + u3x_cell(tub, &p_tub, &q_tub); + return u3nq(u3k(p_tub), + u3_nul, + u3k(huf), + u3k(tub)); + } + + u3_noun + u3we_easy_fun(u3_noun cor) + { + u3_noun van, huf, tub; + + if ( (c3n == u3r_mean(cor, u3x_sam, &tub, u3x_con, &van, 0)) || + (u3_none == (huf = u3r_at(u3x_sam, van))) ) + { + return u3m_bail(c3__fail); + } else { + return _cqe_easy_fun(huf, tub); + } + } + +/* glue +*/ + static u3_noun + _cqe_glue_fun(u3_noun bus, + u3_noun vex, + u3_noun sab) + { + u3_noun p_vex, q_vex; + + u3x_cell(vex, &p_vex, &q_vex); + if ( c3n == u3du(q_vex) ) { + return u3k(vex); + } + else { + u3_noun uq_vex = u3t(q_vex); + u3_noun puq_vex, quq_vex; + u3_noun yit, yur; + u3_noun p_yit, q_yit; + u3_noun ret; + + u3x_cell(uq_vex, &puq_vex, &quq_vex); + yit = u3x_good(u3n_slam_on(u3k(bus), u3k(quq_vex))); + + u3x_cell(yit, &p_yit, &q_yit); + yur = _last(p_vex, p_yit); + + if ( c3n == u3du(q_yit) ) { + ret = u3nc(yur, u3_nul); + } + else { + u3_noun uq_yit = u3t(q_yit); + u3_noun puq_yit, quq_yit; + u3_noun wam, p_wam, q_wam, goy; + + u3x_cell(uq_yit, &puq_yit, &quq_yit); + wam = u3x_good(u3n_slam_on(u3k(sab), u3k(quq_yit))); + + u3x_cell(wam, &p_wam, &q_wam); + goy = _last(yur, p_wam); + u3z(yur); + + if ( c3n == u3du(q_wam) ) { + ret = u3nc(goy, u3_nul); + } else { + u3_noun uq_wam = u3t(q_wam); + u3_noun puq_wam, quq_wam; + + u3x_cell(uq_wam, &puq_wam, &quq_wam); + ret = u3nq(goy, + u3_nul, + u3nc(u3k(puq_vex), + u3k(puq_wam)), + u3k(quq_wam)); + } + u3z(wam); + } + u3z(yit); + return ret; + } + } + + u3_noun + u3we_glue_fun(u3_noun cor) + { + u3_noun van, bus, vex, sab; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &vex, + u3x_sam_3, &sab, + u3x_con, &van, 0)) || + (u3_none == (bus = u3r_at(u3x_sam, van))) ) + { + return u3m_bail(c3__fail); + } else { + return _cqe_glue_fun(bus, vex, sab); + } + } + +/* here +*/ + static u3_noun + _cqe_here_fun(u3_noun hez, + u3_noun sef, + u3_noun tub) + { + u3_noun vex = u3x_good(u3n_slam_on(u3k(sef), u3k(tub))); + u3_noun p_vex, q_vex; + + u3x_cell(vex, &p_vex, &q_vex); + + if ( c3n == u3du(q_vex) ) { + return vex; + } + else { + u3_noun uq_vex = u3t(q_vex); + u3_noun p_tub, q_tub; + u3_noun puq_vex, quq_vex, pquq_vex; + u3_noun gud, wag; + u3_noun ret; + + u3x_cell(tub, &p_tub, &q_tub); + u3x_cell(uq_vex, &puq_vex, &quq_vex); + u3x_cell(quq_vex, &pquq_vex, 0); + gud = u3nc( + u3nc(u3k(p_tub), + u3k(pquq_vex)), + u3k(puq_vex)); + + wag = u3x_good(u3n_slam_on(u3k(hez), gud)); + ret = u3nq(u3k(p_vex), + u3_nul, + wag, + u3k(quq_vex)); + + u3z(vex); + return ret; + } + } + + u3_noun + u3we_here_fun(u3_noun cor) + { + u3_noun van, hez, sef, tub; + + if ( (c3n == u3r_mean(cor, u3x_sam, &tub, u3x_con, &van, 0)) || + (c3n == u3r_mean(van, u3x_sam_2, &hez, u3x_sam_3, &sef, 0)) ) + { + return u3m_bail(c3__fail); + } + else { + return _cqe_here_fun(hez, sef, tub); + } + } + +/* just +*/ + static u3_noun + _cqe_just_fun(u3_noun daf, + u3_noun tub) + { + u3_noun p_tub, q_tub; + + u3x_cell(tub, &p_tub, &q_tub); + + if ( c3n == u3du(q_tub) ) { + return _fail(tub); + } + else { + u3_noun iq_tub = u3h(q_tub); + + if ( c3y == u3r_sing(daf, iq_tub) ) { + return _next(tub); + } + else return _fail(tub); + } + } + u3_noun + u3we_just_fun(u3_noun cor) + { + u3_noun van, daf, tub; + + if ( (c3n == u3r_mean(cor, u3x_sam, &tub, u3x_con, &van, 0)) || + (u3_none == (daf = u3r_at(u3x_sam, van))) ) + { + return u3m_bail(c3__fail); + } else { + return _cqe_just_fun(daf, tub); + } + } + +/* mask +*/ + static u3_noun + _cqe_mask_fun(u3_noun bud, + u3_noun tub) + { + u3_noun p_tub, q_tub; + + u3x_cell(tub, &p_tub, &q_tub); + + if ( c3n == u3du(q_tub) ) { + return _fail(tub); + } + else { + u3_noun iq_tub = u3h(q_tub); + + while ( c3y == u3du(bud) ) { + if ( c3y == u3r_sing(u3h(bud), iq_tub) ) { + return _next(tub); + } + bud = u3t(bud); + } + return _fail(tub); + } + } + u3_noun + u3we_mask_fun(u3_noun cor) + { + u3_noun van, bud, tub; + + if ( (c3n == u3r_mean(cor, u3x_sam, &tub, u3x_con, &van, 0)) || + (u3_none == (bud = u3r_at(u3x_sam, van))) ) + { + return u3m_bail(c3__fail); + } else { + return _cqe_mask_fun(bud, tub); + } + } +/* pfix +*/ + static u3_noun + _cqe_pfix(u3_noun vex, + u3_noun sab) + { + u3_noun p_vex, q_vex; + + u3x_cell(vex, &p_vex, &q_vex); + if ( c3n == u3du(q_vex) ) { + return u3k(vex); + } + else { + u3_noun uq_vex = u3t(q_vex); + u3_noun puq_vex, quq_vex; + u3_noun yit, p_yit, q_yit; + u3_noun ret; + + u3x_cell(uq_vex, &puq_vex, &quq_vex); + yit = u3x_good(u3n_slam_on(u3k(sab), u3k(quq_vex))); + + u3x_cell(yit, &p_yit, &q_yit); + ret = u3nc(_last(p_vex, p_yit), + u3k(q_yit)); + + u3z(yit); + return ret; + } + } + u3_noun + u3we_pfix(u3_noun cor) + { + u3_noun vex, sab; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &vex, u3x_sam_3, &sab, 0)) ) { + return u3m_bail(c3__exit); + } else { + return _cqe_pfix(vex, sab); + } + } + +/* plug +*/ + static u3_noun + _cqe_plug(u3_noun vex, + u3_noun sab) + { + u3_noun p_vex, q_vex; + + u3x_cell(vex, &p_vex, &q_vex); + if ( c3n == u3du(q_vex) ) { + return u3k(vex); + } + else { + u3_noun uq_vex = u3t(q_vex); + u3_noun puq_vex, quq_vex; + u3_noun yit, yur; + u3_noun p_yit, q_yit; + u3_noun ret; + + u3x_cell(uq_vex, &puq_vex, &quq_vex); + yit = u3x_good(u3n_slam_on(u3k(sab), u3k(quq_vex))); + + u3x_cell(yit, &p_yit, &q_yit); + yur = _last(p_vex, p_yit); + + if ( c3n == u3du(q_yit) ) { + ret = u3nc(yur, u3k(q_yit)); + } + else { + u3_noun uq_yit = u3t(q_yit); + u3_noun puq_yit, quq_yit; + + u3x_cell(uq_yit, &puq_yit, &quq_yit); + ret = u3nq(yur, + u3_nul, + u3nc(u3k(puq_vex), + u3k(puq_yit)), + u3k(quq_yit)); + } + u3z(yit); + return ret; + } + } + u3_noun + u3we_plug(u3_noun cor) + { + u3_noun vex, sab; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &vex, u3x_sam_3, &sab, 0)) ) { + return u3m_bail(c3__exit); + } else { + return _cqe_plug(vex, sab); + } + } + +/* pose +*/ + u3_noun + u3qe_pose(u3_noun vex, + u3_noun sab) + { + u3_noun p_vex, q_vex; + + u3x_cell(vex, &p_vex, &q_vex); + if ( c3y == u3du(q_vex) ) { + return u3k(vex); + } else { + u3_noun roq = u3x_good(u3n_kick_on(u3k(sab))); + u3_noun p_roq, q_roq; + u3_noun ret; + + u3x_cell(roq, &p_roq, &q_roq); + ret = u3nc(_last(p_vex, p_roq), + u3k(q_roq)); + + u3z(roq); + return ret; + } + } + u3_noun + u3we_pose(u3_noun cor) + { + u3_noun vex, sab; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &vex, u3x_sam_3, &sab, 0)) ) { + return u3m_bail(c3__exit); + } else { + return u3qe_pose(vex, sab); + } + } + +/* sfix +*/ + static u3_noun + _cqe_sfix(u3_noun vex, + u3_noun sab) + { + u3_noun p_vex, q_vex; + + u3x_cell(vex, &p_vex, &q_vex); + if ( c3n == u3du(q_vex) ) { + return u3k(vex); + } + else { + u3_noun uq_vex = u3t(q_vex); + u3_noun puq_vex, quq_vex; + u3_noun yit, p_yit, q_yit, yur; + u3_noun ret; + + u3x_cell(uq_vex, &puq_vex, &quq_vex); + yit = u3x_good(u3n_slam_on(u3k(sab), u3k(quq_vex))); + + u3x_cell(yit, &p_yit, &q_yit); + yur = _last(p_vex, p_yit); + + if ( c3n == u3du(q_yit) ) { + ret = u3nc(yur, u3_nul); + } + else { + u3_noun uq_yit = u3t(q_yit); + u3_noun puq_yit, quq_yit; + + u3x_cell(uq_yit, &puq_yit, &quq_yit); + + ret = u3nq(yur, + u3_nul, + u3k(puq_vex), + u3k(quq_yit)); + } + u3z(yit); + return ret; + } + } + u3_noun + u3we_sfix(u3_noun cor) + { + u3_noun vex, sab; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &vex, u3x_sam_3, &sab, 0)) ) { + return u3m_bail(c3__exit); + } else { + return _cqe_sfix(vex, sab); + } + } + +/* shim +*/ + static u3_noun + _cqe_shim_fun(u3_noun zep, + u3_noun tub) + { + u3_noun p_tub, q_tub; + + u3x_cell(tub, &p_tub, &q_tub); + + if ( c3n == u3du(q_tub) ) { + return _fail(tub); + } + else { + u3_noun p_zep, q_zep; + u3_noun iq_tub = u3h(q_tub); + + u3x_cell(zep, &p_zep, &q_zep); + if ( _(u3a_is_cat(p_zep)) && + _(u3a_is_cat(q_zep)) && + _(u3a_is_cat(iq_tub)) ) + { + if ( (iq_tub >= p_zep) && (iq_tub <= q_zep) ) { + return _next(tub); + } + else return _fail(tub); + } + else { + return u3m_bail(c3__fail); + } + } + } + u3_noun + u3we_shim_fun(u3_noun cor) + { + u3_noun van, zep, tub; + + if ( (c3n == u3r_mean(cor, u3x_sam, &tub, u3x_con, &van, 0)) || + (u3_none == (zep = u3r_at(u3x_sam, van))) ) + { + return u3m_bail(c3__fail); + } else { + return _cqe_shim_fun(zep, tub); + } + } + +/* stag +*/ + static u3_noun + _cqe_stag_fun(u3_noun gob, + u3_noun sef, + u3_noun tub) + { + u3_noun vex = u3x_good(u3n_slam_on(u3k(sef), u3k(tub))); + u3_noun p_vex, q_vex; + + u3x_cell(vex, &p_vex, &q_vex); + + if ( c3n == u3du(q_vex) ) { + return vex; + } + else { + u3_noun uq_vex = u3t(q_vex); + u3_noun puq_vex, quq_vex; + u3_noun wag; + u3_noun ret; + + u3x_cell(uq_vex, &puq_vex, &quq_vex); + wag = u3nc(u3k(gob), u3k(puq_vex)); + ret = u3nq(u3k(p_vex), + u3_nul, + wag, + u3k(quq_vex)); + + u3z(vex); + return ret; + } + } + + u3_noun + u3we_stag_fun(u3_noun cor) + { + u3_noun van, gob, sef, tub; + + if ( (c3n == u3r_mean(cor, u3x_sam, &tub, u3x_con, &van, 0)) || + (c3n == u3r_mean(van, u3x_sam_2, &gob, u3x_sam_3, &sef, 0)) ) + { + return u3m_bail(c3__fail); + } else { + return _cqe_stag_fun(gob, sef, tub); + } + } + +/* stew +*/ + static u3_noun + _stew_wor(u3_noun ort, + u3_noun wan) + { + if ( !_(u3a_is_cat(ort)) ) { + return u3m_bail(c3__fail); + } + else { + if ( c3n == u3du(wan) ) { + if ( !_(u3a_is_cat(wan)) ) { + return u3m_bail(c3__fail); + } + else return (ort < wan) ? c3y : c3n; + } + else { + u3_noun h_wan = u3h(wan); + + if ( !_(u3a_is_cat(h_wan)) ) { + return u3m_bail(c3__fail); + } + else return (ort < h_wan) ? c3y : c3n; + } + } + } + + static u3_noun + _cqe_stew_fun(u3_noun hel, + u3_noun tub) + { + u3_noun p_tub, q_tub; + + u3x_cell(tub, &p_tub, &q_tub); + if ( c3n == u3du(q_tub) ) { + return _fail(tub); + } + else { + u3_noun iq_tub = u3h(q_tub); + + if ( !_(u3a_is_cat(iq_tub)) ) { + return u3m_bail(c3__fail); + } + else while ( 1 ) { + if ( c3n == u3du(hel) ) { + return _fail(tub); + } + else { + u3_noun n_hel, l_hel, r_hel; + u3_noun pn_hel, qn_hel; + c3_o bit_o; + + u3x_trel(hel, &n_hel, &l_hel, &r_hel); + u3x_cell(n_hel, &pn_hel, &qn_hel); + + if ( (c3n == u3du(pn_hel)) ) { + bit_o = __((iq_tub == pn_hel)); + } + else { + u3_noun hpn_hel = u3h(pn_hel); + u3_noun tpn_hel = u3t(pn_hel); + + if ( !_(u3a_is_cat(hpn_hel)) || + !_(u3a_is_cat(tpn_hel)) ) { + return _fail(tub); + } + else bit_o = __((iq_tub >= hpn_hel) && (iq_tub <= tpn_hel)); + } + + if ( c3y == bit_o ) { + return u3x_good + (u3n_slam_on(u3k(qn_hel), u3k(tub))); + } else { + if ( c3y == _stew_wor(iq_tub, pn_hel) ) { + hel = l_hel; + } + else hel = r_hel; + } + } + } + } + } + u3_noun + u3we_stew_fun(u3_noun cor) + { + u3_noun con, hel, tub; + + if ( (c3n == u3r_mean(cor, u3x_sam, &tub, u3x_con, &con, 0)) || + (u3_none == (hel = u3r_at(2, con))) ) + { + return u3m_bail(c3__fail); + } else { + return _cqe_stew_fun(hel, tub); + } + } + +/* _stir_pair(): stack frame recording intermediate parse results +*/ + typedef struct { + u3_noun har; // hair, p_vex + u3_noun res; // parse-result, puq_vex + } _stir_pair; + +/* stir +*/ + static u3_noun + _cqe_stir_fun(u3_noun rud, + u3_noun raq, + u3_noun fel, + u3_noun tub) + { + // pil_u: stack control structure + // par_u: frame pointer + // wag: initial accumulator (deconstructed) + // + u3a_pile pil_u; + _stir_pair* par_u; + u3_noun p_wag, puq_wag, quq_wag; + + u3a_pile_prep(&pil_u, sizeof(*par_u)); + + // push incremental, successful [fel] parse results onto road stack + // + { + u3_noun vex, p_vex, q_vex, puq_vex, quq_vex; + u3j_site fel_u; + u3j_gate_prep(&fel_u, u3k(fel)); + + vex = u3j_gate_slam(&fel_u, u3k(tub)); + u3x_cell(vex, &p_vex, &q_vex); + + u3k(tub); + + while ( u3_nul != q_vex ) { + u3x_trel(q_vex, 0, &puq_vex, &quq_vex); + + par_u = u3a_push(&pil_u); + par_u->har = u3k(p_vex); + par_u->res = u3k(puq_vex); + + u3z(tub); + tub = u3k(quq_vex); + + u3z(vex); + vex = u3j_gate_slam(&fel_u, u3k(tub)); + u3x_cell(vex, &p_vex, &q_vex); + } + + p_wag = u3k(p_vex); + puq_wag = u3k(rud); + quq_wag = tub; + + u3z(vex); + u3j_gate_lose(&fel_u); + } + + // unwind the stack, folding parse results into [wag] by way of [raq] + // + if ( c3n == u3a_pile_done(&pil_u) ) { + u3j_site raq_u; + u3j_gate_prep(&raq_u, u3k(raq)); + + while ( c3n == u3a_pile_done(&pil_u) ) { + p_wag = _last_k(par_u->har, p_wag); + puq_wag = u3j_gate_slam(&raq_u, u3nc(par_u->res, puq_wag)); + par_u = u3a_pop(&pil_u); + } + + u3j_gate_lose(&raq_u); + } + + return u3nq(p_wag, u3_nul, puq_wag, quq_wag); + } + + u3_noun + u3we_stir_fun(u3_noun cor) + { + u3_noun van, rud, raq, fel, tub; + + if ( (c3n == u3r_mean(cor, u3x_sam, &tub, u3x_con, &van, 0)) || + (c3n == u3r_mean(van, u3x_sam_2, &rud, + u3x_sam_6, &raq, + u3x_sam_7, &fel, + 0)) ) + { + return u3m_bail(c3__fail); + } else { + return _cqe_stir_fun(rud, raq, fel, tub); + } + } diff --git a/vere/pkg/noun/jets/e/rd.c b/vere/pkg/noun/jets/e/rd.c new file mode 100644 index 0000000..a693e3f --- /dev/null +++ b/vere/pkg/noun/jets/e/rd.c @@ -0,0 +1,390 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +#include "softfloat.h" + +#define DOUBNAN 0x7ff8000000000000 + + union doub { + float64_t d; + c3_d c; + }; + + static inline c3_t + _nan_test(float64_t a) + { + return !f64_eq(a, a); + } + + static inline float64_t + _nan_unify(float64_t a) + { + if ( _nan_test(a) ) + { + *(c3_d*)(&a) = DOUBNAN; + } + return a; + } + + static inline void + _set_rounding(c3_w a) + { + switch ( a ) + { + default: + u3m_bail(c3__fail); + break; + case c3__n: + softfloat_roundingMode = softfloat_round_near_even; + break; + case c3__z: + softfloat_roundingMode = softfloat_round_minMag; + break; + case c3__u: + softfloat_roundingMode = softfloat_round_max; + break; + case c3__d: + softfloat_roundingMode = softfloat_round_min; + break; + } + } + +/* add +*/ + u3_noun + u3qer_add(u3_atom a, + u3_atom b, + u3_atom r) + { + union doub c, d, e; + _set_rounding(r); + c.c = u3r_chub(0, a); + d.c = u3r_chub(0, b); + e.d = _nan_unify(f64_add(c.d, d.d)); + + return u3i_chubs(1, &e.c); + } + + u3_noun + u3wer_add(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qer_add(a, b, u3x_at(30, cor)); + } + } + +/* sub +*/ + u3_noun + u3qer_sub(u3_atom a, + u3_atom b, + u3_atom r) + { + union doub c, d, e; + _set_rounding(r); + c.c = u3r_chub(0, a); + d.c = u3r_chub(0, b); + e.d = _nan_unify(f64_sub(c.d, d.d)); + + return u3i_chubs(1, &e.c); + } + + u3_noun + u3wer_sub(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qer_sub(a, b, u3x_at(30, cor)); + } + } + +/* mul +*/ + u3_noun + u3qer_mul(u3_atom a, + u3_atom b, + u3_atom r) + { + union doub c, d, e; + _set_rounding(r); + c.c = u3r_chub(0, a); + d.c = u3r_chub(0, b); + e.d = _nan_unify(f64_mul(c.d, d.d)); + + return u3i_chubs(1, &e.c); + } + + u3_noun + u3wer_mul(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qer_mul(a, b, u3x_at(30, cor)); + } + } + +/* div +*/ + u3_noun + u3qer_div(u3_atom a, + u3_atom b, + u3_atom r) + { + union doub c, d, e; + _set_rounding(r); + c.c = u3r_chub(0, a); + d.c = u3r_chub(0, b); + e.d = _nan_unify(f64_div(c.d, d.d)); + + return u3i_chubs(1, &e.c); + } + + u3_noun + u3wer_div(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qer_div(a, b, u3x_at(30, cor)); + } + } + +/* sqt +*/ + u3_noun + u3qer_sqt(u3_atom a, + u3_atom r) + { + union doub c, d; + _set_rounding(r); + c.c = u3r_chub(0, a); + d.d = _nan_unify(f64_sqrt(c.d)); + + return u3i_chubs(1, &d.c); + } + + u3_noun + u3wer_sqt(u3_noun cor) + { + u3_noun a; + + if ( c3n == (a = u3r_at(u3x_sam, cor)) || + c3n == u3ud(a) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qer_sqt(a, u3x_at(30, cor)); + } + } + +/* fma +*/ + u3_noun + u3qer_fma(u3_atom a, + u3_atom b, + u3_atom c, + u3_atom r) + { + union doub d, e, f, g; + _set_rounding(r); + d.c = u3r_chub(0, a); + e.c = u3r_chub(0, b); + f.c = u3r_chub(0, c); + g.d = _nan_unify(f64_mulAdd(d.d, e.d, f.d)); + + return u3i_chubs(1, &g.c); + } + + u3_noun + u3wer_fma(u3_noun cor) + { + u3_noun a, b, c; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_6, &b, u3x_sam_7, &c, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) || + c3n == u3ud(c) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qer_fma(a, b, c, u3x_at(30, cor)); + } + } + +/* lth +*/ + u3_noun + u3qer_lth(u3_atom a, + u3_atom b) + { + union doub c, d; + c.c = u3r_chub(0, a); + d.c = u3r_chub(0, b); + + return __(f64_lt(c.d, d.d)); + } + + u3_noun + u3wer_lth(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qer_lth(a, b); + } + } + +/* lte +*/ + u3_noun + u3qer_lte(u3_atom a, + u3_atom b) + { + union doub c, d; + c.c = u3r_chub(0, a); + d.c = u3r_chub(0, b); + + return __(f64_le(c.d, d.d)); + } + + u3_noun + u3wer_lte(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qer_lte(a, b); + } + } + +/* equ +*/ + u3_noun + u3qer_equ(u3_atom a, + u3_atom b) + { + union doub c, d; + c.c = u3r_chub(0, a); + d.c = u3r_chub(0, b); + + return __(f64_eq(c.d, d.d)); + } + + u3_noun + u3wer_equ(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qer_equ(a, b); + } + } + +/* gte +*/ + u3_noun + u3qer_gte(u3_atom a, + u3_atom b) + { + union doub c, d; + c.c = u3r_chub(0, a); + d.c = u3r_chub(0, b); + + return __(f64_le(d.d, c.d)); + } + + u3_noun + u3wer_gte(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qer_gte(a, b); + } + } + +/* gth +*/ + u3_noun + u3qer_gth(u3_atom a, + u3_atom b) + { + union doub c, d; + c.c = u3r_chub(0, a); + d.c = u3r_chub(0, b); + + return __(f64_lt(d.d, c.d)); + } + + u3_noun + u3wer_gth(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qer_gth(a, b); + } + } diff --git a/vere/pkg/noun/jets/e/rh.c b/vere/pkg/noun/jets/e/rh.c new file mode 100644 index 0000000..3bbb8d4 --- /dev/null +++ b/vere/pkg/noun/jets/e/rh.c @@ -0,0 +1,390 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +#include "softfloat.h" + +#define HALFNAN 0x7e00 + + union half { + float16_t h; + c3_s c; + }; + + static inline c3_t + _nan_test(float16_t a) + { + return !f16_eq(a, a); + } + + static inline float16_t + _nan_unify(float16_t a) + { + if ( _nan_test(a) ) + { + *(c3_s*)(&a) = HALFNAN; + } + return a; + } + + static inline void + _set_rounding(c3_w a) + { + switch ( a ) + { + default: + u3m_bail(c3__fail); + break; + case c3__n: + softfloat_roundingMode = softfloat_round_near_even; + break; + case c3__z: + softfloat_roundingMode = softfloat_round_minMag; + break; + case c3__u: + softfloat_roundingMode = softfloat_round_max; + break; + case c3__d: + softfloat_roundingMode = softfloat_round_min; + break; + } + } + +/* add +*/ + u3_noun + u3qes_add(u3_atom a, + u3_atom b, + u3_atom r) + { + union half c, d, e; + _set_rounding(r); + c.c = u3r_word(0, a); + d.c = u3r_word(0, b); + e.h = _nan_unify(f16_add(c.h, d.h)); + + return e.c; + } + + u3_noun + u3wes_add(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qes_add(a, b, u3x_at(30, cor)); + } + } + +/* sub +*/ + u3_noun + u3qes_sub(u3_atom a, + u3_atom b, + u3_atom r) + { + union half c, d, e; + _set_rounding(r); + c.c = u3r_word(0, a); + d.c = u3r_word(0, b); + e.h = _nan_unify(f16_sub(c.h, d.h)); + + return e.c; + } + + u3_noun + u3wes_sub(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qes_sub(a, b, u3x_at(30, cor)); + } + } + +/* mul +*/ + u3_noun + u3qes_mul(u3_atom a, + u3_atom b, + u3_atom r) + { + union half c, d, e; + _set_rounding(r); + c.c = u3r_word(0, a); + d.c = u3r_word(0, b); + e.h = _nan_unify(f16_mul(c.h, d.h)); + + return e.c; + } + + u3_noun + u3wes_mul(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qes_mul(a, b, u3x_at(30, cor)); + } + } + +/* div +*/ + u3_noun + u3qes_div(u3_atom a, + u3_atom b, + u3_atom r) + { + union half c, d, e; + _set_rounding(r); + c.c = u3r_word(0, a); + d.c = u3r_word(0, b); + e.h = _nan_unify(f16_div(c.h, d.h)); + + return e.c; + } + + u3_noun + u3wes_div(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qes_div(a, b, u3x_at(30, cor)); + } + } + +/* sqt +*/ + u3_noun + u3qes_sqt(u3_atom a, + u3_atom r) + { + union half c, d; + _set_rounding(r); + c.c = u3r_word(0, a); + d.h = _nan_unify(f16_sqrt(c.h)); + + return d.c; + } + + u3_noun + u3wes_sqt(u3_noun cor) + { + u3_noun a; + + if ( c3n == (a = u3r_at(u3x_sam, cor)) || + c3n == u3ud(a) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qes_sqt(a, u3x_at(30, cor)); + } + } + +/* fma +*/ + u3_noun + u3qes_fma(u3_atom a, + u3_atom b, + u3_atom c, + u3_atom r) + { + union half d, e, f, g; + _set_rounding(r); + d.c = u3r_word(0, a); + e.c = u3r_word(0, b); + f.c = u3r_word(0, c); + g.h = _nan_unify(f16_mulAdd(d.h, e.h, f.h)); + + return g.c; + } + + u3_noun + u3wes_fma(u3_noun cor) + { + u3_noun a, b, c; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_6, &b, u3x_sam_7, &c, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) || + c3n == u3ud(c) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qes_fma(a, b, c, u3x_at(30, cor)); + } + } + +/* lth +*/ + u3_noun + u3qes_lth(u3_atom a, + u3_atom b) + { + union half c, d; + c.c = u3r_word(0, a); + d.c = u3r_word(0, b); + + return __(f16_lt(c.h, d.h)); + } + + u3_noun + u3wes_lth(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qes_lth(a, b); + } + } + +/* lte +*/ + u3_noun + u3qes_lte(u3_atom a, + u3_atom b) + { + union half c, d; + c.c = u3r_word(0, a); + d.c = u3r_word(0, b); + + return __(f16_le(c.h, d.h)); + } + + u3_noun + u3wes_lte(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qes_lte(a, b); + } + } + +/* equ +*/ + u3_noun + u3qes_equ(u3_atom a, + u3_atom b) + { + union half c, d; + c.c = u3r_word(0, a); + d.c = u3r_word(0, b); + + return __(f16_eq(c.h, d.h)); + } + + u3_noun + u3wes_equ(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qes_equ(a, b); + } + } + +/* gte +*/ + u3_noun + u3qes_gte(u3_atom a, + u3_atom b) + { + union half c, d; + c.c = u3r_word(0, a); + d.c = u3r_word(0, b); + + return __(f16_le(d.h, c.h)); + } + + u3_noun + u3wes_gte(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qes_gte(a, b); + } + } + +/* gth +*/ + u3_noun + u3qes_gth(u3_atom a, + u3_atom b) + { + union half c, d; + c.c = u3r_word(0, a); + d.c = u3r_word(0, b); + + return __(f16_lt(d.h, c.h)); + } + + u3_noun + u3wes_gth(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qes_gth(a, b); + } + } diff --git a/vere/pkg/noun/jets/e/ripe.c b/vere/pkg/noun/jets/e/ripe.c new file mode 100644 index 0000000..5d08a9d --- /dev/null +++ b/vere/pkg/noun/jets/e/ripe.c @@ -0,0 +1,45 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +#include "urcrypt.h" + + static u3_atom + _cqe_ripe(u3_atom wid, u3_atom dat) + { + c3_w len_w; + if ( !u3r_word_fit(&len_w, wid) ) { + return u3m_bail(c3__fail); + } + else { + u3_atom ret; + c3_y out_y[20]; + c3_y *dat_y = u3r_bytes_alloc(0, len_w, dat); + + ret = ( 0 == urcrypt_ripemd160(dat_y, len_w, out_y) ) + ? u3i_bytes(20, out_y) + : u3_none; + + u3a_free(dat_y); + return ret; + } + } + + u3_noun + u3we_ripe(u3_noun cor) + { + u3_noun wid, dat; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &wid, + u3x_sam_3, &dat, 0) || + u3ud(wid) || u3ud(dat)) + ) + { + return u3m_bail(c3__exit); + } + else { + return u3l_punt("ripe", _cqe_ripe(wid, dat)); + } + } diff --git a/vere/pkg/noun/jets/e/rq.c b/vere/pkg/noun/jets/e/rq.c new file mode 100644 index 0000000..e26a4de --- /dev/null +++ b/vere/pkg/noun/jets/e/rq.c @@ -0,0 +1,446 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +#include "softfloat.h" + +#define QUADNAN 0x7fff800000000000 + + union quad { + float128_t* q; + c3_w* c; + }; + + static inline c3_t + _nan_test(float128_t* a) + { + return !f128M_eq(a, a); + } + + static inline void + _nan_unify(float128_t* a) + { + if ( _nan_test(a) ) + { + *( (c3_d*)a) = 0; + *(((c3_d*)a)+1) = QUADNAN; + } + } + + static inline void + _set_rounding(c3_w a) + { + switch ( a ) + { + default: + u3m_bail(c3__fail); + break; + case c3__n: + softfloat_roundingMode = softfloat_round_near_even; + break; + case c3__z: + softfloat_roundingMode = softfloat_round_minMag; + break; + case c3__u: + softfloat_roundingMode = softfloat_round_max; + break; + case c3__d: + softfloat_roundingMode = softfloat_round_min; + break; + } + } + +/* add +*/ + u3_noun + u3qeq_add(u3_atom a, + u3_atom b, + u3_atom r) + { + union quad c, d, e; + _set_rounding(r); + c.c = alloca(16); + d.c = alloca(16); + e.c = alloca(16); + + u3r_words(0, 4, c.c, a); + u3r_words(0, 4, d.c, b); + f128M_add(c.q, d.q, e.q); + _nan_unify(e.q); + + u3_atom f = u3i_words(4, e.c); + return f; + } + + u3_noun + u3weq_add(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qeq_add(a, b, u3x_at(30, cor)); + } + } + +/* sub +*/ + u3_noun + u3qeq_sub(u3_atom a, + u3_atom b, + u3_atom r) + { + union quad c, d, e; + _set_rounding(r); + c.c = alloca(16); + d.c = alloca(16); + e.c = alloca(16); + + u3r_words(0, 4, c.c, a); + u3r_words(0, 4, d.c, b); + f128M_sub(c.q, d.q, e.q); + _nan_unify(e.q); + + u3_atom f = u3i_words(4, e.c); + return f; + } + + u3_noun + u3weq_sub(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qeq_sub(a, b, u3x_at(30, cor)); + } + } + +/* mul +*/ + u3_noun + u3qeq_mul(u3_atom a, + u3_atom b, + u3_atom r) + { + union quad c, d, e; + _set_rounding(r); + c.c = alloca(16); + d.c = alloca(16); + e.c = alloca(16); + + u3r_words(0, 4, c.c, a); + u3r_words(0, 4, d.c, b); + f128M_mul(c.q, d.q, e.q); + _nan_unify(e.q); + + u3_atom f = u3i_words(4, e.c); + return f; + } + + u3_noun + u3weq_mul(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qeq_mul(a, b, u3x_at(30, cor)); + } + } + +/* div +*/ + u3_noun + u3qeq_div(u3_atom a, + u3_atom b, + u3_atom r) + { + union quad c, d, e; + _set_rounding(r); + c.c = alloca(16); + d.c = alloca(16); + e.c = alloca(16); + + u3r_words(0, 4, c.c, a); + u3r_words(0, 4, d.c, b); + f128M_div(c.q, d.q, e.q); + _nan_unify(e.q); + + u3_atom f = u3i_words(4, e.c); + return f; + } + + u3_noun + u3weq_div(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qeq_div(a, b, u3x_at(30, cor)); + } + } + +/* sqt +*/ + u3_noun + u3qeq_sqt(u3_atom a, + u3_atom r) + { + union quad c, d; + _set_rounding(r); + c.c = alloca(16); + d.c = alloca(16); + + u3r_words(0, 4, c.c, a); + f128M_sqrt(c.q, d.q); + _nan_unify(d.q); + + u3_atom e = u3i_words(4, d.c); + return e; + } + + u3_noun + u3weq_sqt(u3_noun cor) + { + u3_noun a; + + if ( c3n == (a = u3r_at(u3x_sam, cor)) || + c3n == u3ud(a) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qeq_sqt(a, u3x_at(30, cor)); + } + } + +/* fma +*/ + u3_noun + u3qeq_fma(u3_atom a, + u3_atom b, + u3_atom c, + u3_atom r) + { + union quad d, e, f, g; + _set_rounding(r); + d.c = alloca(16); + e.c = alloca(16); + f.c = alloca(16); + g.c = alloca(16); + + u3r_words(0, 4, d.c, a); + u3r_words(0, 4, e.c, b); + u3r_words(0, 4, f.c, c); + f128M_mulAdd(d.q, e.q, f.q, g.q); + _nan_unify(g.q); + + u3_atom h = u3i_words(4, g.c); + return h; + } + + u3_noun + u3weq_fma(u3_noun cor) + { + u3_noun a, b, c; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_6, &b, u3x_sam_7, &c, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) || + c3n == u3ud(c) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qeq_fma(a, b, c, u3x_at(30, cor)); + } + } + +/* lth +*/ + u3_noun + u3qeq_lth(u3_atom a, + u3_atom b) + { + union quad c, d; + c.c = alloca(16); + d.c = alloca(16); + + u3r_words(0, 4, c.c, a); + u3r_words(0, 4, d.c, b); + c3_o e = __(f128M_lt(c.q, d.q)); + + return e; + } + + u3_noun + u3weq_lth(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qeq_lth(a, b); + } + } + +/* lte +*/ + u3_noun + u3qeq_lte(u3_atom a, + u3_atom b) + { + union quad c, d; + c.c = alloca(16); + d.c = alloca(16); + + u3r_words(0, 4, c.c, a); + u3r_words(0, 4, d.c, b); + c3_o e = __(f128M_le(c.q, d.q)); + + return e; + } + + u3_noun + u3weq_lte(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qeq_lte(a, b); + } + } + +/* equ +*/ + u3_noun + u3qeq_equ(u3_atom a, + u3_atom b) + { + union quad c, d; + c.c = alloca(16); + d.c = alloca(16); + + u3r_words(0, 4, c.c, a); + u3r_words(0, 4, d.c, b); + c3_o e = __(f128M_eq(c.q, d.q)); + + return e; + } + + u3_noun + u3weq_equ(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qeq_equ(a, b); + } + } + +/* gte +*/ + u3_noun + u3qeq_gte(u3_atom a, + u3_atom b) + { + union quad c, d; + c.c = alloca(16); + d.c = alloca(16); + + u3r_words(0, 4, c.c, a); + u3r_words(0, 4, d.c, b); + c3_o e = __(f128M_le(d.q, c.q)); + + return e; + } + + u3_noun + u3weq_gte(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qeq_gte(a, b); + } + } + +/* gth +*/ + u3_noun + u3qeq_gth(u3_atom a, + u3_atom b) + { + union quad c, d; + c.c = alloca(16); + d.c = alloca(16); + + u3r_words(0, 4, c.c, a); + u3r_words(0, 4, d.c, b); + c3_o e = __(f128M_lt(d.q, c.q)); + + return e; + } + + u3_noun + u3weq_gth(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qeq_gth(a, b); + } + } diff --git a/vere/pkg/noun/jets/e/rs.c b/vere/pkg/noun/jets/e/rs.c new file mode 100644 index 0000000..360d1c9 --- /dev/null +++ b/vere/pkg/noun/jets/e/rs.c @@ -0,0 +1,390 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +#include "softfloat.h" + +#define SINGNAN 0x7fc00000 + + union sing { + float32_t s; + c3_w c; + }; + + static inline c3_t + _nan_test(float32_t a) + { + return !f32_eq(a, a); + } + + static inline float32_t + _nan_unify(float32_t a) + { + if ( _nan_test(a) ) + { + *(c3_w*)(&a) = SINGNAN; + } + return a; + } + + static inline void + _set_rounding(c3_w a) + { + switch ( a ) + { + default: + u3m_bail(c3__fail); + break; + case c3__n: + softfloat_roundingMode = softfloat_round_near_even; + break; + case c3__z: + softfloat_roundingMode = softfloat_round_minMag; + break; + case c3__u: + softfloat_roundingMode = softfloat_round_max; + break; + case c3__d: + softfloat_roundingMode = softfloat_round_min; + break; + } + } + +/* add +*/ + u3_noun + u3qet_add(u3_atom a, + u3_atom b, + u3_atom r) + { + union sing c, d, e; + _set_rounding(r); + c.c = u3r_word(0, a); + d.c = u3r_word(0, b); + e.s = _nan_unify(f32_add(c.s, d.s)); + + return u3i_words(1, &e.c); + } + + u3_noun + u3wet_add(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qet_add(a, b, u3x_at(30, cor)); + } + } + +/* sub +*/ + u3_noun + u3qet_sub(u3_atom a, + u3_atom b, + u3_atom r) + { + union sing c, d, e; + _set_rounding(r); + c.c = u3r_word(0, a); + d.c = u3r_word(0, b); + e.s = _nan_unify(f32_sub(c.s, d.s)); + + return u3i_words(1, &e.c); + } + + u3_noun + u3wet_sub(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qet_sub(a, b, u3x_at(30, cor)); + } + } + +/* mul +*/ + u3_noun + u3qet_mul(u3_atom a, + u3_atom b, + u3_atom r) + { + union sing c, d, e; + _set_rounding(r); + c.c = u3r_word(0, a); + d.c = u3r_word(0, b); + e.s = _nan_unify(f32_mul(c.s, d.s)); + + return u3i_words(1, &e.c); + } + + u3_noun + u3wet_mul(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qet_mul(a, b, u3x_at(30, cor)); + } + } + +/* div +*/ + u3_noun + u3qet_div(u3_atom a, + u3_atom b, + u3_atom r) + { + union sing c, d, e; + _set_rounding(r); + c.c = u3r_word(0, a); + d.c = u3r_word(0, b); + e.s = _nan_unify(f32_div(c.s, d.s)); + + return u3i_words(1, &e.c); + } + + u3_noun + u3wet_div(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qet_div(a, b, u3x_at(30, cor)); + } + } + +/* sqt +*/ + u3_noun + u3qet_sqt(u3_atom a, + u3_atom r) + { + union sing c, d; + _set_rounding(r); + c.c = u3r_word(0, a); + d.s = _nan_unify(f32_sqrt(c.s)); + + return u3i_words(1, &d.c); + } + + u3_noun + u3wet_sqt(u3_noun cor) + { + u3_noun a; + + if ( c3n == (a = u3r_at(u3x_sam, cor)) || + c3n == u3ud(a) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qet_sqt(a, u3x_at(30, cor)); + } + } + +/* fma +*/ + u3_noun + u3qet_fma(u3_atom a, + u3_atom b, + u3_atom c, + u3_atom r) + { + union sing d, e, f, g; + _set_rounding(r); + d.c = u3r_word(0, a); + e.c = u3r_word(0, b); + f.c = u3r_word(0, c); + g.s = _nan_unify(f32_mulAdd(d.s, e.s, f.s)); + + return u3i_words(1, &g.c); + } + + u3_noun + u3wet_fma(u3_noun cor) + { + u3_noun a, b, c; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_6, &b, u3x_sam_7, &c, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) || + c3n == u3ud(c) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qet_fma(a, b, c, u3x_at(30, cor)); + } + } + +/* lth +*/ + u3_noun + u3qet_lth(u3_atom a, + u3_atom b) + { + union sing c, d; + c.c = u3r_word(0, a); + d.c = u3r_word(0, b); + + return __(f32_lt(c.s, d.s)); + } + + u3_noun + u3wet_lth(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qet_lth(a, b); + } + } + +/* lte +*/ + u3_noun + u3qet_lte(u3_atom a, + u3_atom b) + { + union sing c, d; + c.c = u3r_word(0, a); + d.c = u3r_word(0, b); + + return __(f32_le(c.s, d.s)); + } + + u3_noun + u3wet_lte(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qet_lte(a, b); + } + } + +/* equ +*/ + u3_noun + u3qet_equ(u3_atom a, + u3_atom b) + { + union sing c, d; + c.c = u3r_word(0, a); + d.c = u3r_word(0, b); + + return __(f32_eq(c.s, d.s)); + } + + u3_noun + u3wet_equ(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qet_equ(a, b); + } + } + +/* gte +*/ + u3_noun + u3qet_gte(u3_atom a, + u3_atom b) + { + union sing c, d; + c.c = u3r_word(0, a); + d.c = u3r_word(0, b); + + return __(f32_le(d.s, c.s)); + } + + u3_noun + u3wet_gte(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qet_gte(a, b); + } + } + +/* gth +*/ + u3_noun + u3qet_gth(u3_atom a, + u3_atom b) + { + union sing c, d; + c.c = u3r_word(0, a); + d.c = u3r_word(0, b); + + return __(f32_lt(d.s, c.s)); + } + + u3_noun + u3wet_gth(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0) || + c3n == u3ud(a) || + c3n == u3ud(b) ) + { + return u3m_bail(c3__exit); + } + else { + return u3qet_gth(a, b); + } + } diff --git a/vere/pkg/noun/jets/e/rub.c b/vere/pkg/noun/jets/e/rub.c new file mode 100644 index 0000000..81739be --- /dev/null +++ b/vere/pkg/noun/jets/e/rub.c @@ -0,0 +1,85 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qe_rub(u3_atom a, + u3_atom b) + { + u3_atom c, d, e; + u3_atom w, x, y, z; + u3_atom p, q; + + u3_atom m; + { + c3_w bit_w = u3r_met(0, b); + u3_noun bit = u3i_words(1, &bit_w); + m = u3qa_add(a, bit); + u3z(bit); + } + + // Compute c and d. + { + x = u3k(a); + + while ( 0 == u3qc_cut(0, x, 1, b) ) { + u3_atom y = u3qa_inc(x); + + // Sanity check: crash if decoding more bits than available + if ( c3y == u3qa_gth(x, m)) { + // u3l_log("[%%rub-hard %d %d %d]", a, x, m); + return u3m_bail(c3__exit); + } + + u3z(x); + x = y; + } + if ( c3y == u3r_sing(x, a) ) { + u3z(x); + return u3nc(1, 0); + } + c = u3qa_sub(x, a); + d = u3qa_inc(x); + + u3z(x); + } + + // Compute e, p, q. + { + x = u3qa_dec(c); + y = u3qc_bex(x); + z = u3qc_cut(0, d, x, b); + + e = u3qa_add(y, z); + u3z(y); u3z(z); + + w = u3qa_add(c, c); + y = u3qa_add(w, e); + z = u3qa_add(d, x); + + p = u3qa_add(w, e); + q = u3qc_cut(0, z, e, b); + + u3z(w); u3z(x); u3z(y); u3z(z); + + return u3nc(p, q); + } + } + u3_noun + u3we_rub(u3_noun cor) + { + u3_noun a, b; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0)) || + (c3n == u3ud(a)) || + (c3n == u3ud(b)) ) + { + return u3m_bail(c3__fail); + } else { + return u3qe_rub(a, b); + } + } diff --git a/vere/pkg/noun/jets/e/scot.c b/vere/pkg/noun/jets/e/scot.c new file mode 100644 index 0000000..f39c46b --- /dev/null +++ b/vere/pkg/noun/jets/e/scot.c @@ -0,0 +1,30 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +#include + +u3_atom +u3qe_scot(u3_atom a, u3_atom b) +{ + switch (a) { + case c3__tas: return u3k(b); + case c3__ud: return u3s_etch_ud(b); + case c3__ux: return u3s_etch_ux(b); + case c3__uv: return u3s_etch_uv(b); + case c3__uw: return u3s_etch_uw(b); + default: return u3_none; + } +} + +u3_noun +u3we_scot(u3_noun cor) +{ + u3_atom a, b; + u3x_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0); + return u3qe_scot(u3x_atom(a), u3x_atom(b)); +} diff --git a/vere/pkg/noun/jets/e/scow.c b/vere/pkg/noun/jets/e/scow.c new file mode 100644 index 0000000..986dc41 --- /dev/null +++ b/vere/pkg/noun/jets/e/scow.c @@ -0,0 +1,251 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +#include + +static +c3_y to_digit(c3_y tig) +{ + if (tig >= 10) { + return 87 + tig; + } else { + return '0' + tig; + } +} + +// gives the characters for a four 'digit' small hex atom. +static +void +_x_co_four(c3_w src, c3_y* a, c3_y* b, c3_y* c, c3_y* d) +{ + *d = to_digit(src & 0xF); + src >>= 4; + *c = to_digit(src & 0xF); + src >>= 4; + *b = to_digit(src & 0xF); + src >>= 4; + *a = to_digit(src & 0xF); +} + +// The parser always prints two digits on 0 in y-co. +static +void +_y_co_two(c3_w src, c3_y* a, c3_y* b) +{ + *b = to_digit(src % 10); + *a = to_digit(src / 10); +} + +// +static +u3_noun +_add_year(c3_w year, u3_noun out) +{ + while (year > 0) { + out = u3nc(to_digit(year % 10), out); + year = year / 10; + } + + return out; +} + +static +u3_noun +_print_da(u3_noun cor, u3_atom raw_da) +{ + u3_noun hok = u3j_cook("u3we_scow_print_da", u3k(cor), "yore"); + u3_noun yod = u3n_slam_on(hok, u3k(raw_da)); + + u3_noun out = 0; + + u3_atom age, year, month, day, hour, min, sec, f; + if (c3n == u3r_mean(yod, 4, &age, + 5, &year, + 6, &month, + 14, &day, + 30, &hour, + 62, &min, + 126, &sec, + 127, &f, + 0)) { + return u3m_bail(c3__exit); + } + + if (f != 0) { + u3_noun f_list = u3qb_flop(f); + + for (u3_noun cur = f_list; + _(u3a_is_cell(cur)); + cur = u3t(cur)) { + if (_(u3a_is_cat(u3h(cur)))) { + c3_y a, b, c, d; + _x_co_four(u3h(cur), &a, &b, &c, &d); + out = u3nq('.', a, b, u3nt(c, d, out)); + } else { + // No way to deal with big atoms. fall back. + u3z(yod); + u3z(out); + u3z(f_list); + return u3_none; + } + } + + u3z(f_list); + out = u3nc('.', out); + } + + // if there isn't a hex list and the h/m/s are all 0, skip printing hours. + if (f != 0 || hour != 0 || min != 0 || sec != 0) { + if (!_(u3a_is_cat(hour)) || + !_(u3a_is_cat(min)) || + !_(u3a_is_cat(sec))) { + // Input is weird, fallback to nock. + u3z(yod); + u3z(out); + return u3_none; + } + + c3_y sa, sb, ma, mb, ha, hb; + _y_co_two(sec, &sa, &sb); + out = u3nq('.', sa, sb, out); + + _y_co_two(min, &ma, &mb); + out = u3nq('.', ma, mb, out); + + _y_co_two(hour, &ha, &hb); + out = u3nq('.', ha, hb, out); + + out = u3nc('.', out); + } + + // We always print the Y.M.D. Unlike others, these numbers are unconstrained + // by length, but in practice, the month number and day number can only be up + // to two digits because of +yore. We still need to remove 0 prefixes, + // though. + if (!_(u3a_is_cat(day)) || day > 99 || + !_(u3a_is_cat(month)) || month > 99 || + !_(u3a_is_cat(year))) { + // Input is weird, fallback to nock. + u3z(yod); + u3z(out); + return u3_none; + } + + c3_y da, db; + _y_co_two(day, &da, &db); + out = u3nc(db, out); + if (da != '0') { + out = u3nc(da, out); + } + out = u3nc('.', out); + + c3_y ma, mb; + _y_co_two(month, &ma, &mb); + out = u3nc(mb, out); + if (ma != '0') { + out = u3nc(ma, out); + } + out = u3nc('.', out); + + // suffix the year with a '-' for BC dates + if (age == c3n) { + out = u3nc('-', out); + } + + // The year part is the only place where we have to explicitly loop over the + // input because it can be arbitrarily large or small. + out = _add_year(year, out); + + out = u3nc('~', out); + + u3z(yod); + return out; +} + +static +u3_noun +_print_p(u3_atom cor, u3_atom p) +{ + // Scramble the raw number to the concealed version. + u3_noun ob = u3j_cook("u3we_scow_ob_p", u3k(cor), "ob"); + u3_noun hok = u3j_cook("u3we_scow_fein_p", ob, "fein"); + u3_atom sxz = u3n_slam_on(hok, u3k(p)); + + // Simple galaxy case + if (c3y == u3qa_lth(sxz, 256)) { + c3_y a, b, c; + u3_po_to_suffix(sxz, &a, &b, &c); + u3z(sxz); + return u3nq('~', a, b, u3nc(c, 0)); + } + + u3_atom dyy = u3qc_met(4, sxz); + if (!_(u3a_is_cat(dyy))) { + u3z(sxz); + u3z(dyy); + return u3_none; + } + + u3_noun list = 0; + for (c3_w imp = 0; imp != dyy; ++imp) { + c3_w log = u3qc_end(4, 1, sxz); + c3_w prefix = u3qc_rsh(3, 1, log); + c3_w suffix = u3qc_end(3, 1, log); + + c3_y a, b, c, d, e, f; + u3_po_to_prefix(prefix, &a, &b, &c); + u3_po_to_suffix(suffix, &d, &e, &f); + + if (imp % 4 == 0) { + if (imp != 0) { + list = u3nt('-', '-', list); + } + } else { + list = u3nc('-', list); + } + + list = u3nq(a, b, c, u3nq(d, e, f, list)); + + sxz = u3qc_rsh(4, 1, sxz); + } + + u3z(sxz); + return u3nc('~', list); +} + +u3_atom +u3qe_scow(u3_atom a, u3_atom b) +{ + switch (a) { + // XX disabled due to memory corruption + // rewrite for +scot jet and test there + // + // case c3__da: return _print_da(cor, atom); + // case 'p': return _print_p(cor, atom); + + default: { + u3_weak dat = u3qe_scot(a, b); + u3_weak pro = u3_none; + + if ( u3_none != dat ) { + pro = u3qc_rip(3, 1, dat); + u3z(dat); + } + + return pro; + } + } +} + +u3_noun +u3we_scow(u3_noun cor) +{ + u3_atom a, b; + u3x_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0); + return u3qe_scow(u3x_atom(a), u3x_atom(b)); +} diff --git a/vere/pkg/noun/jets/e/scr.c b/vere/pkg/noun/jets/e/scr.c new file mode 100644 index 0000000..e9d0725 --- /dev/null +++ b/vere/pkg/noun/jets/e/scr.c @@ -0,0 +1,227 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +#include "urcrypt.h" + + static u3_weak + _cqes_hs(u3_atom p, c3_w pwd_w, + u3_atom s, c3_w sal_w, + u3_atom n, + u3_atom r, + u3_atom z, + u3_atom d) + { + u3_noun chk; + c3_w out_w; + + if ( !u3r_word_fit(&out_w, d) ) { + return u3m_bail(c3__fail); + } + if ( 0 == r || 0 == z ) { + return u3m_bail(c3__exit); + } + chk = u3qc_bex(31); + if ( (c3n == u3qa_lth(pwd_w, chk)) || + (c3n == u3qa_lth(sal_w, chk)) ) { + return u3m_bail(c3__exit); + } + u3z(chk); + chk = u3kc_bex(u3ka_dec(u3qc_xeb(n))); + if ( c3n == u3r_sing(n, chk) ) { + return u3m_bail(c3__exit); + } + u3z(chk); + if ( c3n == u3ka_lte( + u3ka_mul(u3qa_mul(128, r), u3ka_dec(u3qa_add(n, z))), + u3qc_bex(30)) ) { + return u3m_bail(c3__exit); + } + + if ( (u3r_met(6, n) > 1) || + (u3r_met(5, r) > 1) || + (u3r_met(5, z) > 1) ) { + return u3_none; + } + else { + u3_noun pro; + c3_d n_d = u3r_chub(0, n); + c3_w r_w = u3r_word(0, r), + z_w = u3r_word(0, z); + c3_y *pwd_y = u3a_malloc(pwd_w), + *sal_y = u3a_malloc(sal_w), + *out_y = u3a_malloc(d); + u3r_bytes(0, pwd_w, pwd_y, p); + u3r_bytes(0, sal_w, sal_y, s); + pro = ( 0 == urcrypt_scrypt(pwd_y, pwd_w, + sal_y, sal_w, + n_d, r_w, z_w, + out_w, out_y) ) + ? u3i_bytes(out_w, out_y) + : u3_none; + u3a_free(pwd_y); + u3a_free(sal_y); + u3a_free(out_y); + return pro; + } + } + + static u3_weak + _cqes_hsl(u3_atom p, u3_atom pl, + u3_atom s, u3_atom sl, + u3_atom n, + u3_atom r, + u3_atom z, + u3_atom d) + { + c3_w pwd_w, sal_w; + if ( !(u3r_word_fit(&pwd_w, pl) && + u3r_word_fit(&sal_w, sl)) ) { + return u3m_bail(c3__fail); + } + else { + return _cqes_hs(p, pwd_w, s, sal_w, n, r, z, d); + } + } + + u3_noun + u3wes_hsl(u3_noun cor) + { + u3_noun p, pl, s, sl, n, r, z, d; + u3_noun q; + + u3x_quil(u3x_at(u3x_sam, cor), &p, &pl, &s, &sl, &q); + u3x_qual(q, &n, &r, &z, &d); + + if ( !(_(u3a_is_atom(p)) && _(u3a_is_atom(pl)) && + _(u3a_is_atom(s)) && _(u3a_is_atom(sl)) && + _(u3a_is_atom(n)) && _(u3a_is_atom(r)) && + _(u3a_is_atom(z)) && _(u3a_is_atom(d))) ) { + return u3m_bail(c3__exit); + } + else { + return u3l_punt("scr-hsl", _cqes_hsl(p, pl, s, sl, n, r, z, d)); + } + } + + static u3_weak + _cqes_hsh(u3_atom p, + u3_atom s, + u3_atom n, + u3_atom r, + u3_atom z, + u3_atom d) + { + return _cqes_hs(p, u3r_met(3, p), + s, u3r_met(3, s), + n, r, z, d); + } + + u3_noun + u3wes_hsh(u3_noun cor) + { + u3_noun p, s, n, r, z, d; + u3_noun q; + + u3x_quil(u3x_at(u3x_sam, cor), &p, &s, &n, &r, &q); + u3x_cell(q, &z, &d); + + if ( !(_(u3a_is_atom(p)) && _(u3a_is_atom(s)) && + _(u3a_is_atom(n)) && _(u3a_is_atom(r)) && + _(u3a_is_atom(z)) && _(u3a_is_atom(d))) ) { + return u3m_bail(c3__exit); + } + else { + return u3l_punt("scr-hsh", _cqes_hsh(p, s, n, r, z, d)); + } + } + + static u3_atom + _cqes_pb(u3_atom p, c3_w pwd_w, + u3_atom s, c3_w sal_w, + u3_atom c, + u3_atom d) + { + if ( (c > (1 << 28)) || + (d > (1 << 30)) ) { + // max key length 1gb + // max iterations 2^28 + return u3m_bail(c3__exit); + } + else { + u3_noun pro; + c3_y *pwd_y = u3a_malloc(pwd_w), + *sal_y = u3a_malloc(sal_w), + *out_y = u3a_malloc(d); + u3r_bytes(0, pwd_w, pwd_y, p); + u3r_bytes(0, sal_w, sal_y, s); + urcrypt_scrypt_pbkdf_sha256(pwd_y, pwd_w, sal_y, sal_w, c, d, out_y); + pro = u3i_bytes(d, out_y); + u3a_free(pwd_y); + u3a_free(sal_y); + u3a_free(out_y); + return pro; + } + } + + static u3_noun + _cqes_pbl(u3_atom p, u3_atom pl, + u3_atom s, u3_atom sl, + u3_atom c, + u3_atom d) + { + c3_w pwd_w, sal_w; + if ( !(u3r_word_fit(&pwd_w, pl) && + u3r_word_fit(&sal_w, sl)) ) { + return u3m_bail(c3__fail); + } + else { + return _cqes_pb(p, pwd_w, s, sal_w, c, d); + } + } + + u3_noun + u3wes_pbl(u3_noun cor) + { + u3_noun p, pl, s, sl, c, d; + u3_noun q; + + u3x_quil(u3x_at(u3x_sam, cor), &p, &pl, &s, &sl, &q); + u3x_cell(q, &c, &d); + + if ( !(_(u3a_is_atom(p)) && _(u3a_is_atom(s)) && + _(u3a_is_atom(pl)) && _(u3a_is_atom(sl)) && + _(u3a_is_atom(c)) && _(u3a_is_atom(d))) ) { + return u3m_bail(c3__exit); + } + else { + return _cqes_pbl(p, pl, s, sl, c, d); + } + } + + static u3_atom + _cqes_pbk(u3_atom p, u3_atom s, u3_atom c, u3_atom d) + { + return _cqes_pb(p, u3r_met(3, p), + s, u3r_met(3, s), + c, d); + } + + u3_noun + u3wes_pbk(u3_noun cor) + { + u3_noun p, s, c, d; + + u3x_qual(u3x_at(u3x_sam, cor), &p, &s, &c, &d); + + if ( !(_(u3a_is_atom(p)) && _(u3a_is_atom(s)) && + _(u3a_is_atom(c)) && _(u3a_is_atom(d))) ) { + return u3m_bail(c3__exit); + } + else { + return _cqes_pbk(p, s, c, d); + } + } diff --git a/vere/pkg/noun/jets/e/secp.c b/vere/pkg/noun/jets/e/secp.c new file mode 100644 index 0000000..fa0fbd2 --- /dev/null +++ b/vere/pkg/noun/jets/e/secp.c @@ -0,0 +1,298 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +#include "urcrypt.h" +#include "ent/ent.h" + +static urcrypt_secp_context* sec_u; + +/* call at process start */ +void +u3je_secp_init() +{ + c3_y ent_y[32]; + ent_getentropy(ent_y, 32); + sec_u = malloc(urcrypt_secp_prealloc_size()); + + if ( 0 != urcrypt_secp_init(sec_u, ent_y) ) { + u3l_log("u3e_secp_init failed"); + abort(); + } +} + +/* call at process end */ +void +u3je_secp_stop() +{ + urcrypt_secp_destroy(sec_u); + free(sec_u); + sec_u = NULL; +} + +/* util funcs + */ +static c3_t +_cqes_in_order(u3_atom a) +{ + // this is the "n" parameter of the secp256k1 curve + static const c3_w now_w[8] = { + 0xd0364141, 0xbfd25e8c, 0xaf48a03b, 0xbaaedce6, + 0xfffffffe, 0xffffffff, 0xffffffff, 0xffffffff + }; + + if ( 0 == a ) { + return 0; + } + else if ( c3y == u3a_is_cat(a) ) { + return 1; + } + else { + u3a_atom* a_u = u3a_to_ptr(a); + c3_w len_w = a_u->len_w; + + if ( len_w < 8 ) { + return 1; + } + else if ( len_w > 8 ) { + return 0; + } + else { + c3_y i_y; + c3_w *buf_w = a_u->buf_w; + // loop from most to least significant words + for ( i_y = 8; i_y > 0; ) { + c3_w b_w = buf_w[i_y], + o_w = now_w[--i_y]; + if ( b_w < o_w ) { + return 1; + } + else if ( b_w > o_w ) { + return 0; + } + } + return 1; + } + } +} + +static void +_cqes_unpack_fe(u3_atom k, c3_y out_y[32]) +{ + if ( _cqes_in_order(k) ) { + u3r_bytes(0, 32, out_y, k); + } + else { + u3m_bail(c3__exit); + } +} + +/* sign hash with priv key + */ +static u3_noun +_cqes_sign(u3_atom has, + u3_atom prv) +{ + c3_y has_y[32]; + + if ( 0 != u3r_bytes_fit(32, has_y, has) ) { + return u3m_bail(c3__exit); + } + else { + c3_y prv_y[32], v_y, r_y[32], s_y[32]; + _cqes_unpack_fe(prv, prv_y); + + return( 0 == urcrypt_secp_sign(sec_u, has_y, prv_y, &v_y, r_y, s_y) ) + ? u3nt(v_y, u3i_bytes(32, r_y), u3i_bytes(32, s_y)) + : u3_none; + } +} + +u3_noun +u3we_sign(u3_noun cor) +{ + + u3_noun has, prv; + + if ( (c3n == u3r_mean(cor, + u3x_sam_2, &has, + u3x_sam_3, &prv, + 0)) || + (c3n == u3ud(has)) || + (c3n == u3ud(prv))) { + return u3m_bail(c3__exit); + } + else { + return u3l_punt("secp-sign", _cqes_sign(has, prv)); + } +} + +/* recover pubkey from signature (which is how we verify signatures) +*/ +static u3_noun +_cqes_reco(u3_atom has, + u3_atom siv, /* signature: v */ + u3_atom sir, /* signature: r */ + u3_atom sis) /* signature: s */ +{ + c3_y has_y[32]; + if ( !((siv < 4) && (0 == u3r_bytes_fit(32, has_y, has)) ) ) { + return u3m_bail(c3__exit); + } + else { + c3_y sir_y[32], sis_y[32], x_y[32], y_y[32]; + _cqes_unpack_fe(sir, sir_y); + _cqes_unpack_fe(sis, sis_y); + return + ( 0 == urcrypt_secp_reco(sec_u, has_y, siv, sir_y, sis_y, x_y, y_y) ) + ? u3nc(u3i_bytes(32, x_y), u3i_bytes(32, y_y)) + : u3_none; + } +} + +u3_noun +u3we_reco(u3_noun cor) +{ + u3_noun has, /* hash */ + siv, sir, sis; /* signature: v, r, s */ + + if ( (c3n == u3r_mean(cor, + u3x_sam_2, &has, + u3x_sam_6, &siv, + u3x_sam_14, &sir, + u3x_sam_15, &sis, + 0)) || + (c3n == u3ud(has)) || + (c3n == u3ud(siv)) || + (c3n == u3ud(sir)) || + (c3n == u3ud(sis)) ) { + return u3m_bail(c3__exit); + } + else { + return u3l_punt("secp-reco", _cqes_reco(has, siv, sir, sis)); + } +} + +static u3_atom +_cqes_make(u3_atom has, + u3_atom prv) +{ + c3_y has_y[32]; + + if ( 0 != u3r_bytes_fit(32, has_y, has) ) { + return u3m_bail(c3__exit); + } + else { + c3_y prv_y[32], out_y[32]; + _cqes_unpack_fe(prv, prv_y); + return ( 0 == urcrypt_secp_make(has_y, prv_y, out_y) ) + ? u3i_bytes(32, out_y) + : u3_none; + } +} + +u3_noun +u3we_make(u3_noun cor) +{ + u3_noun has, prv; + if ( (c3n == u3r_mean(cor, + u3x_sam_2, &has, + u3x_sam_3, &prv, + 0)) || + (c3n == u3ud(has)) || + (c3n == u3ud(prv)) ) { + return u3m_bail(c3__exit); + } + else { + return u3l_punt("secp-make", _cqes_make(has, prv)); + } +} + +/* create a schnorr signature +*/ +static u3_weak +_cqes_sosi(u3_atom sk, u3_atom m, u3_atom a) +{ + c3_y key_y[32]; + c3_y mes_y[32]; + c3_y aux_y[32]; + + if ( (0 != u3r_bytes_fit(32, key_y, sk)) || + (0 != u3r_bytes_fit(32, mes_y, m)) || + (0 != u3r_bytes_fit(32, aux_y, a)) ) + { + return u3m_bail(c3__exit); + } + else { + c3_y sig_y[64]; + + return + ( 0 == urcrypt_secp_schnorr_sign(sec_u, key_y, mes_y, aux_y, sig_y) ) + ? u3i_bytes(64, sig_y) + : u3_none; + } +} + +u3_noun +u3we_sosi(u3_noun cor) +{ + u3_noun key, mes, aux; + + if ( (c3n == u3r_mean(cor, + u3x_sam_2, &key, + u3x_sam_6, &mes, + u3x_sam_7, &aux, + 0)) || + (c3n == u3ud(key)) || + (c3n == u3ud(mes)) || + (c3n == u3ud(aux)) ) + { + return u3m_bail(c3__exit); + } + else { + return u3l_punt("secp-sosi", _cqes_sosi(key, mes, aux)); + } +} + +/* verify a schnorr signature +*/ +static u3_atom +_cqes_sove(u3_atom pk, u3_atom m, u3_atom sig) +{ + c3_y pub_y[32]; + c3_y mes_y[32]; + c3_y sig_y[64]; + + if ( (0 != u3r_bytes_fit(32, pub_y, pk)) || + (0 != u3r_bytes_fit(32, mes_y, m)) || + (0 != u3r_bytes_fit(64, sig_y, sig)) ) + { + return u3m_bail(c3__exit); + } + else { + return __(urcrypt_secp_schnorr_veri(sec_u, sig_y, mes_y, pub_y)); + } +} + +u3_noun +u3we_sove(u3_noun cor) +{ + u3_noun pub, mes, sig; + + if ( (c3n == u3r_mean(cor, + u3x_sam_2, &pub, + u3x_sam_6, &mes, + u3x_sam_7, &sig, + 0)) || + (c3n == u3ud(pub)) || + (c3n == u3ud(mes)) || + (c3n == u3ud(sig)) ) + { + return u3m_bail(c3__exit); + } + else { + return _cqes_sove(pub, mes, sig); + } +} diff --git a/vere/pkg/noun/jets/e/sha1.c b/vere/pkg/noun/jets/e/sha1.c new file mode 100644 index 0000000..729faf6 --- /dev/null +++ b/vere/pkg/noun/jets/e/sha1.c @@ -0,0 +1,40 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +#include "urcrypt.h" + + static u3_noun + _cqe_sha1(u3_atom wid, u3_atom dat) + { + c3_w len_w; + if ( !u3r_word_fit(&len_w, wid) ) { + return u3m_bail(c3__fail); + } + else { + c3_y out_y[20]; + c3_y *dat_y = u3r_bytes_alloc(0, len_w, dat); + + urcrypt_sha1(dat_y, len_w, out_y); + u3a_free(dat_y); + return u3i_bytes(20, out_y); + } + } + + u3_noun + u3we_sha1(u3_noun cor) + { + u3_noun wid, dat; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &wid, u3x_sam_3, &dat, 0)) || + (c3n == u3ud(wid)) || + (c3n == u3ud(dat)) ) + { + return u3m_bail(c3__exit); + } + else { + return _cqe_sha1(wid, dat); + } + } diff --git a/vere/pkg/noun/jets/e/shax.c b/vere/pkg/noun/jets/e/shax.c new file mode 100644 index 0000000..856d0fa --- /dev/null +++ b/vere/pkg/noun/jets/e/shax.c @@ -0,0 +1,194 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" +#include "urcrypt.h" + + + static u3_atom + _cqe_shay(u3_atom wid, + u3_atom dat) + { + c3_w len_w; + if ( !u3r_word_fit(&len_w, wid) ) { + return u3m_bail(c3__fail); + } + else { + c3_y out_y[32]; + c3_y* dat_y = u3r_bytes_alloc(0, len_w, dat); + urcrypt_shay(dat_y, len_w, out_y); + u3a_free(dat_y); + return u3i_bytes(32, out_y); + } + } + + static u3_atom + _cqe_shax(u3_atom a) + { + c3_w len_w; + c3_y out_y[32]; + c3_y* dat_y = u3r_bytes_all(&len_w, a); + urcrypt_shay(dat_y, len_w, out_y); + u3a_free(dat_y); + return u3i_bytes(32, out_y); + } + + static u3_atom + _cqe_shal(u3_atom wid, + u3_atom dat) + { + c3_w len_w; + if ( !u3r_word_fit(&len_w, wid) ) { + return u3m_bail(c3__fail); + } + else { + c3_y out_y[64]; + c3_y* dat_y = u3r_bytes_alloc(0, len_w, dat); + urcrypt_shal(dat_y, len_w, out_y); + u3a_free(dat_y); + return u3i_bytes(64, out_y); + } + } + + static u3_atom + _cqe_shas(u3_atom sal, + u3_atom ruz) + { + c3_w sal_w, ruz_w; + c3_y *sal_y, *ruz_y, out_y[32]; + + sal_y = u3r_bytes_all(&sal_w, sal); + ruz_y = u3r_bytes_all(&ruz_w, ruz); + urcrypt_shas(sal_y, sal_w, ruz_y, ruz_w, out_y); + u3a_free(sal_y); + u3a_free(ruz_y); + return u3i_bytes(32, out_y); + } + + u3_noun + u3we_shax(u3_noun cor) + { + u3_noun a; + + if ( (u3_none == (a = u3r_at(u3x_sam, cor))) || + (c3n == u3ud(a)) ) + { + return u3m_bail(c3__exit); + } else { + return _cqe_shax(a); + } + } + + u3_noun + u3we_shay(u3_noun cor) + { + u3_noun a, b; + + if ( (u3_none == (a = u3r_at(u3x_sam_2, cor))) || + (u3_none == (b = u3r_at(u3x_sam_3, cor))) || + (c3n == u3ud(a)) || + (c3n == u3ud(b)) ) + { + return u3m_bail(c3__exit); + } else { + return _cqe_shay(a, b); + } + } + + u3_noun + u3we_shal(u3_noun cor) + { + u3_noun a, b; + + if ( (u3_none == (a = u3r_at(u3x_sam_2, cor))) || + (u3_none == (b = u3r_at(u3x_sam_3, cor))) || + (c3n == u3ud(a)) || + (c3n == u3ud(b)) ) + { + return u3m_bail(c3__exit); + } else { + return _cqe_shal(a, b); + } + } + + u3_noun + u3we_shas(u3_noun cor) + { + u3_noun sal, ruz; + + if ( (u3_none == (sal = u3r_at(u3x_sam_2, cor))) || + (u3_none == (ruz = u3r_at(u3x_sam_3, cor))) || + (c3n == u3ud(sal)) || + (c3n == u3ud(ruz)) ) + { + return u3m_bail(c3__exit); + } else { + return _cqe_shas(sal, ruz); + } + } + + static u3_noun + _og_list(u3_noun a, + u3_noun b, + u3_noun c) + { + u3_noun l = u3_nul; + + if ( !_(u3a_is_cat(b)) ) { + return u3m_bail(c3__fail); + } + while ( 0 != b ) { + u3_noun x = u3qc_mix(a, c); + u3_noun y = u3qc_mix(b, x); + u3_noun d = _cqe_shas(c3_s4('o','g','-','b'), y); + u3_noun m; + + u3z(x); u3z(y); + + if ( b < 256 ) { + u3_noun e = u3qc_end(0, b, d); + + u3z(d); + m = u3nc(b, e); + b = 0; + } else { + m = u3nc(256, d); + c = d; + + b -= 256; + } + l = u3nc(m, l); + } + return u3kb_flop(l); + } + + u3_noun + u3qeo_raw(u3_atom a, + u3_atom b) + { + u3_noun x = u3qc_mix(b, a); + u3_noun c = _cqe_shas(c3_s4('o','g','-','a'), x); + u3_noun l = _og_list(a, b, c); + u3_noun r = u3qc_can(0, l); + + u3z(l); + u3z(c); + u3z(x); + + return r; + } + + u3_noun + u3weo_raw(u3_noun cor) + { + u3_noun a, b; + + if ( c3n == u3r_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0) ) { + return u3m_bail(c3__exit); + } else { + return u3qeo_raw(a, b); + } + } diff --git a/vere/pkg/noun/jets/e/slaw.c b/vere/pkg/noun/jets/e/slaw.c new file mode 100644 index 0000000..906b0d7 --- /dev/null +++ b/vere/pkg/noun/jets/e/slaw.c @@ -0,0 +1,477 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +#include + +static inline u3_noun +_parse_ud(u3_noun a) +{ + u3_weak pro; + + if ( u3_none == (pro = u3s_sift_ud(u3x_atom(a))) ) { + return u3_nul; + } + + return u3nc(u3_nul, pro); +} + +static +u3_noun get_syllable(c3_c** cur_ptr, c3_c* one, c3_c* two, c3_c* three) { + if (islower((*cur_ptr)[0]) && islower((*cur_ptr)[1]) && + islower((*cur_ptr)[2])) { + *one = (*cur_ptr)[0]; + *two = (*cur_ptr)[1]; + *three = (*cur_ptr)[2]; + (*cur_ptr) += 3; + return c3y; + } else { + return c3n; + } +} + +static u3_noun +combine(u3_noun p, u3_noun q) +{ + if ( (c3y == u3a_is_atom(p)) || (c3y == u3a_is_atom(q)) ) { + return 0; + } + + u3_noun lef = u3qa_mul(256, u3t(q)); + u3_noun ret = u3nc(0, u3qa_add(u3t(p), lef)); + u3z(lef); + u3z(p); u3z(q); + + return ret; +} + +#define ENSURE_NOT_END() do { \ + if (*cur == 0) { \ + u3a_free(c); \ + return u3_none; \ + } \ + } while (0) + +#define CONSUME(x) do { \ + if (*cur != x) { \ + u3a_free(c); \ + return u3_none; \ + } \ + cur++; \ + } while (0) + +#define TRY_GET_SYLLABLE(prefix) \ + c3_c prefix##_one, prefix##_two, prefix##_three; \ + if (c3n == get_syllable(&cur, & prefix##_one, & prefix##_two, & prefix##_three)) { \ + u3a_free(c); \ + return u3_none; \ + } + +u3_noun +_parse_p(u3_noun cor, u3_noun txt) { + c3_c* c = u3a_string(txt); + + c3_c* cur = c; + CONSUME('~'); + + // We at least have a sig prefix. We're now going to parse tuples of three + // lowercase letters. Our naming pattern for the pieces we read is [a b c d + // ...] as we read them. + TRY_GET_SYLLABLE(a); + + // There was only one syllable. If it's a valid suffix syllable, then + // it's a galaxy. We don't even have to run this through the scrambler or + // check for validity since its already a (unit @). + if (*cur == 0) { + u3a_free(c); + return u3_po_find_suffix(a_one, a_two, a_three); + } + + TRY_GET_SYLLABLE(b); + + // There were only two syllables. If they are a valid prefix and suffix, then + // it's a star. + if (*cur == 0) { + u3_noun a_part = u3_po_find_prefix(a_one, a_two, a_three); + u3_noun b_part = u3_po_find_suffix(b_one, b_two, b_three); + u3_atom combined = combine(b_part, a_part); + u3a_free(c); + return combined; + } + + // There must now be a - or it is invalid + CONSUME('-'); + + TRY_GET_SYLLABLE(c); + + ENSURE_NOT_END(); + + TRY_GET_SYLLABLE(d); + + if (*cur == 0) { + u3_noun a_part = u3_po_find_prefix(a_one, a_two, a_three); + u3_noun b_part = u3_po_find_suffix(b_one, b_two, b_three); + u3_noun c_part = u3_po_find_prefix(c_one, c_two, c_three); + u3_noun d_part = u3_po_find_suffix(d_one, d_two, d_three); + + u3_noun m = combine(d_part, combine(c_part, combine(b_part, a_part))); + u3a_free(c); + + if (_(u3a_is_atom(m))) { + return 0; + } + + u3_atom raw = u3k(u3t(m)); + u3z(m); + + u3_noun ob = u3j_cook("u3we_slaw_ob_p", u3k(cor), "ob"); + u3_noun hok = u3j_cook("u3we_slaw_fynd_p", ob, "fynd"); + return u3nc(0, u3n_slam_on(hok, raw)); + } + + // There must now be a - or it is invalid. + CONSUME('-'); + + // The next possible case is a "short" moon. (~ab-cd-ef) + TRY_GET_SYLLABLE(e); + + ENSURE_NOT_END(); + + TRY_GET_SYLLABLE(f); + + if (*cur == 0) { + u3_noun a_part = u3_po_find_prefix(a_one, a_two, a_three); + u3_noun b_part = u3_po_find_suffix(b_one, b_two, b_three); + u3_noun c_part = u3_po_find_prefix(c_one, c_two, c_three); + u3_noun d_part = u3_po_find_suffix(d_one, d_two, d_three); + u3_noun e_part = u3_po_find_prefix(e_one, e_two, e_three); + u3_noun f_part = u3_po_find_suffix(f_one, f_two, f_three); + + u3_noun m = combine(f_part, combine(e_part, combine(d_part, + combine(c_part, combine(b_part, a_part))))); + u3a_free(c); + + if (_(u3a_is_atom(m))) { + return 0; + } + + u3_atom raw = u3k(u3t(m)); + u3z(m); + u3_noun ob = u3j_cook("u3we_slaw_ob_p", u3k(cor), "ob"); + u3_noun hok = u3j_cook("u3we_slaw_fynd_p", ob, "fynd"); + return u3nc(0, u3n_slam_on(hok, raw)); + } + + // There must now be a - or it is invalid. + CONSUME('-'); + + // The next possible case is a "long" moon. (~ab-cd-ef-gh) + TRY_GET_SYLLABLE(g); + + ENSURE_NOT_END(); + + TRY_GET_SYLLABLE(h); + + if (*cur == 0) { + u3_noun a_part = u3_po_find_prefix(a_one, a_two, a_three); + u3_noun b_part = u3_po_find_suffix(b_one, b_two, b_three); + u3_noun c_part = u3_po_find_prefix(c_one, c_two, c_three); + u3_noun d_part = u3_po_find_suffix(d_one, d_two, d_three); + u3_noun e_part = u3_po_find_prefix(e_one, e_two, e_three); + u3_noun f_part = u3_po_find_suffix(f_one, f_two, f_three); + u3_noun g_part = u3_po_find_prefix(g_one, g_two, g_three); + u3_noun h_part = u3_po_find_suffix(h_one, h_two, h_three); + + u3_noun m = combine(h_part, combine(g_part, combine(f_part, + combine(e_part, combine(d_part, combine(c_part, + combine(b_part, a_part))))))); + u3a_free(c); + + if (_(u3a_is_atom(m))) { + return 0; + } + + u3_atom raw = u3k(u3t(m)); + u3z(m); + u3_noun ob = u3j_cook("u3we_slaw_ob_p", u3k(cor), "ob"); + u3_noun hok = u3j_cook("u3we_slaw_fynd_p", ob, "fynd"); + return u3nc(0, u3n_slam_on(hok, raw)); + } + + // At this point, the only thing it could be is a long comet, of the form + // ~ab-cd-ef-gh--ij-kl-mn-op + + CONSUME('-'); + CONSUME('-'); + + TRY_GET_SYLLABLE(i); + ENSURE_NOT_END(); + TRY_GET_SYLLABLE(j); + CONSUME('-'); + TRY_GET_SYLLABLE(k); + ENSURE_NOT_END(); + TRY_GET_SYLLABLE(l); + CONSUME('-'); + TRY_GET_SYLLABLE(m); + ENSURE_NOT_END(); + TRY_GET_SYLLABLE(n); + CONSUME('-'); + TRY_GET_SYLLABLE(o); + ENSURE_NOT_END(); + TRY_GET_SYLLABLE(p); + + if (*cur != 0) { + // We've parsed all of a comet shape, and there's still more in the + // string. Bail back to the interpreter. + u3a_free(c); + return u3_none; + } + + // We have a long comet. Time to jam it all together. We rely on combine() + // for the error checking and we don't have to scramble comet names. + u3_noun a_part = u3_po_find_prefix(a_one, a_two, a_three); + u3_noun b_part = u3_po_find_suffix(b_one, b_two, b_three); + u3_noun c_part = u3_po_find_prefix(c_one, c_two, c_three); + u3_noun d_part = u3_po_find_suffix(d_one, d_two, d_three); + u3_noun e_part = u3_po_find_prefix(e_one, e_two, e_three); + u3_noun f_part = u3_po_find_suffix(f_one, f_two, f_three); + u3_noun g_part = u3_po_find_prefix(g_one, g_two, g_three); + u3_noun h_part = u3_po_find_suffix(h_one, h_two, h_three); + u3_noun i_part = u3_po_find_prefix(i_one, i_two, i_three); + u3_noun j_part = u3_po_find_suffix(j_one, j_two, j_three); + u3_noun k_part = u3_po_find_prefix(k_one, k_two, k_three); + u3_noun l_part = u3_po_find_suffix(l_one, l_two, l_three); + u3_noun m_part = u3_po_find_prefix(m_one, m_two, m_three); + u3_noun n_part = u3_po_find_suffix(n_one, n_two, n_three); + u3_noun o_part = u3_po_find_prefix(o_one, o_two, o_three); + u3_noun p_part = u3_po_find_suffix(p_one, p_two, p_three); + + u3a_free(c); + + return combine(p_part, combine(o_part, combine(n_part, combine(m_part, + combine(l_part, combine(k_part, combine(j_part, combine(i_part, + combine(h_part, combine(g_part, combine(f_part, combine(e_part, + combine(d_part, combine(c_part, combine(b_part, a_part))))))))))))))); +} + +#define PARSE_NONZERO_NUMBER(numname) \ + c3_w numname = 0; \ + do { \ + if (cur[0] > '9' || cur[0] < '1') { \ + u3a_free(c); \ + return u3_none; \ + } \ + numname = cur[0] - '0'; \ + cur++; \ + while (isdigit(cur[0])) { \ + numname = u3ka_mul(numname, 10); \ + numname = u3ka_add(numname, cur[0] - '0'); \ + cur++; \ + } \ + } while (0) + +#define PARSE_INCLUDING_ZERO_NUMBER(numname) \ + c3_w numname = 0; \ + do { \ + if (cur[0] > '9' || cur[0] < '0') { \ + u3a_free(c); \ + return u3_none; \ + } \ + numname = cur[0] - '0'; \ + cur++; \ + while (isdigit(cur[0])) { \ + numname = u3ka_mul(numname, 10); \ + numname = u3ka_add(numname, cur[0] - '0'); \ + cur++; \ + } \ + } while (0) + +#define PARSE_HEX_DIGIT(out) \ + do { \ + if (cur[0] >= '0' && cur[0] <= '9') { \ + out = cur[0] - '0'; \ + } else if (cur[0] >= 'a' && cur[0] <= 'f') { \ + out = 10 + cur[0] - 'a'; \ + } else { \ + u3a_free(c); \ + return u3_none; \ + } \ + cur++; \ + } while(0) + + +u3_noun +_parse_da(u3_noun cor, u3_noun txt) { + c3_c* c = u3a_string(txt); + + c3_c* cur = c; + CONSUME('~'); + + // Parse out an arbitrary year number. Starts with a nonzero digit followed + // by a series of any digits. + PARSE_NONZERO_NUMBER(year); + + // Parse the optional negative sign for BC dates. + u3_noun bc = c3y; + if (cur[0] == '-') { + bc = c3n; + cur++; + } + + CONSUME('.'); + + // Parse out a two digit month (mot:ag). Either a single digit 1-9 or 1[012]. + c3_y month; + if (cur[0] == '1') { + if (cur[1] <= '2' && cur[1] >= '0') { + // This is a two number month. + month = 10 + cur[1] - '0'; + cur += 2; + } else { + // This is January. + month = 1; + cur++; + } + } else if (cur[0] <= '9' && cur[0] >= '2') { + month = cur[0] - '0'; + cur++; + } else { + u3a_free(c); + return u3_none; + } + + CONSUME('.'); + + // Parse out a two digit day (dip:ag). This number can be really big, so we + // can track number of days since September 1993. + PARSE_NONZERO_NUMBER(day); + + if (cur[0] == 0) { + u3a_free(c); + u3_noun hok = u3j_cook("u3we_slaw_parse_da", u3k(cor), "year"); + u3_noun res = u3n_slam_on(hok, + u3nt(u3nc(bc, year), month, + u3nc(day, u3nq(0, 0, 0, 0)))); + return u3nc(0, res); + } + + CONSUME('.'); + CONSUME('.'); + + PARSE_INCLUDING_ZERO_NUMBER(hour); + CONSUME('.'); + PARSE_INCLUDING_ZERO_NUMBER(minute); + CONSUME('.'); + PARSE_INCLUDING_ZERO_NUMBER(second); + + if (cur[0] == 0) { + u3a_free(c); + u3_noun hok = u3j_cook("u3we_slaw_parse_da", u3k(cor), "year"); + u3_noun res = u3n_slam_on(hok, + u3nt(u3nc(bc, year), month, + u3nc(day, u3nq(hour, minute, second, 0)))); + return u3nc(0, res); + } + + CONSUME('.'); + CONSUME('.'); + + // Now we have to parse a list of hexidecimal numbers 0-f of length 4 only + // (zero padded otherwise) separated by dots. + u3_noun list = 0; + while (1) { + // Parse 4 hex digits + c3_y one, two, three, four; + PARSE_HEX_DIGIT(one); + PARSE_HEX_DIGIT(two); + PARSE_HEX_DIGIT(three); + PARSE_HEX_DIGIT(four); + + c3_w current = (one << 12) + (two << 8) + (three << 4) + four; + list = u3nc(u3i_words(1, ¤t), list); + + if (cur[0] == 0) { + u3a_free(c); + + u3_noun flopped = u3qb_flop(list); + u3z(list); + + u3_noun hok = u3j_cook("u3we_slaw_parse_da", u3k(cor), "year"); + u3_noun res = u3n_slam_on(hok, + u3nt(u3nc(bc, year), month, + u3nc(day, + u3nq(hour, minute, second, flopped)))); + return u3nc(0, res); + } + + CONSUME('.'); + } +} + +#undef ENSURE_NOT_END +#undef CONSUME +#undef TRY_GET_SYLLABLE +#undef PARSE_NONZERO_NUMBER +#undef PARSE_HEX_DIGIT + +u3_noun +_parse_tas(u3_noun txt) { + // For any symbol which matches, txt will return itself as a + // value. Therefore, this is mostly checking validity. + c3_c* c = u3a_string(txt); + + // First character must represent a lowercase letter + c3_c* cur = c; + if (!islower(cur[0])) { + u3a_free(c); + return 0; + } + cur++; + + while (cur[0] != 0) { + if (!(islower(cur[0]) || isdigit(cur[0]) || cur[0] == '-')) { + u3a_free(c); + return 0; + } + + cur++; + } + + u3a_free(c); + return u3nc(0, u3k(txt)); +} + +u3_noun +u3we_slaw(u3_noun cor) +{ + u3_noun mod; + u3_noun txt; + + if (c3n == u3r_mean(cor, u3x_sam_2, &mod, + u3x_sam_3, &txt, 0)) { + return u3m_bail(c3__exit); + } + + switch (mod) { + case c3__da: + return _parse_da(cor, txt); + + case 'p': + return _parse_p(cor, txt); + + case c3__ud: + return _parse_ud(txt); + + // %ta is used once in link.hoon. don't bother. + + case c3__tas: + return _parse_tas(txt); + + default: + return u3_none; + } +} diff --git a/vere/pkg/noun/jets/e/tape.c b/vere/pkg/noun/jets/e/tape.c new file mode 100644 index 0000000..4d251b6 --- /dev/null +++ b/vere/pkg/noun/jets/e/tape.c @@ -0,0 +1,53 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + static u3_noun + _norm(u3_noun a) + { + if ( c3n == u3du(a) ) { + return u3_nul; + } else { + return u3nc(((c3y == u3du(u3h(a))) ? u3_nul : u3k(u3h(a))), + _norm(u3t(a))); + } + } + + static u3_noun + _good(u3_noun a) + { + while ( 1 ) { + if ( u3_nul == a ) { + return c3y; + } + if ( c3n == u3ud(u3h(a)) ) { + return c3n; + } + a = u3t(a); + } + } + + u3_noun + u3qe_tape(u3_noun a) + { + if ( c3y == _good(a) ) { + return u3k(a); + } else { + return _norm(a); + } + } + u3_noun + u3we_tape(u3_noun cor) + { + u3_noun a; + + if ( (u3_none == (a = u3r_at(u3x_sam, cor))) ) { + return u3m_bail(c3__fail); + } else { + return u3qe_tape(a); + } + } diff --git a/vere/pkg/noun/jets/e/trip.c b/vere/pkg/noun/jets/e/trip.c new file mode 100644 index 0000000..519a852 --- /dev/null +++ b/vere/pkg/noun/jets/e/trip.c @@ -0,0 +1,33 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3qe_trip(u3_atom a) +{ + return u3qc_rip(3, 1, a); +} + +u3_noun +u3we_trip(u3_noun cor) +{ + u3_noun a = u3x_at(u3x_sam, cor); + + if ( c3n == u3ud(a) ) { + return u3m_bail(c3__exit); + } + + return u3qe_trip(a); +} + +u3_atom +u3ke_trip(u3_noun a) +{ + u3_atom pro = u3qe_trip(a); + u3z(a); + return pro; +} diff --git a/vere/pkg/noun/jets/e/urwasm.c b/vere/pkg/noun/jets/e/urwasm.c new file mode 100644 index 0000000..7ec9e47 --- /dev/null +++ b/vere/pkg/noun/jets/e/urwasm.c @@ -0,0 +1,1440 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +#include "wasm3.h" +#include "m3_env.h" +#include "m3_validate.h" + +// #define URWASM_SUBROAD +// #define URWASM_STATEFUL + +#define ONCE_CTX 63 +#define RUN_CTX 7 + +#define AX_RUNNABLE 374 +#define AX_ARROWS 1502 + +#define AX_CALL 20 +#define AX_MEMREAD 383 +#define AX_MEMWRITE 94 +#define AX_CALL_EXT 375 +#define AX_GLOBAL_SET 4 +#define AX_GLOBAL_GET 22 +#define AX_MEM_SIZE 186 +#define AX_MEM_GROW 381 +#define AX_GET_ACC 374 +#define AX_SET_ACC 92 +#define AX_GET_ALL_GLOB 43 +#define AX_SET_ALL_GLOB 380 + +#define AX_TRY 43 +#define AX_CATCH 4 +#define AX_RETURN 20 + +#define ARROW_CTX 511 +#define MONAD_CTX 127 + +#define arr_sam 62 +#define arr_sam_2 124 +#define arr_sam_3 125 +#define arr_sam_6 250 +#define arr_sam_7 251 + +#define ERR(string) ("\r\n\033[31m>>> " string "\033[0m\r\n") +#define WUT(string) ("\r\n\033[33m>> " string "\033[0m\r\n") + +static const M3Result m3Lia_Arrow = "non-zero yield from import arrow"; + +typedef struct { + u3_noun call_bat; + u3_noun memread_bat; + u3_noun memwrite_bat; + u3_noun call_ext_bat; + u3_noun try_bat; + u3_noun catch_bat; + u3_noun return_bat; + u3_noun global_set_bat; + u3_noun global_get_bat; + u3_noun mem_grow_bat; + u3_noun mem_size_bat; + u3_noun get_acc_bat; + u3_noun set_acc_bat; + u3_noun get_all_glob_bat; + u3_noun set_all_glob_bat; +// + u3_noun call_ctx; + u3_noun memread_ctx; + u3_noun memwrite_ctx; + u3_noun global_set_ctx; + u3_noun global_get_ctx; + u3_noun mem_grow_ctx; + u3_noun mem_size_ctx; + u3_noun get_all_glob_ctx; + u3_noun set_all_glob_ctx; +} match_data_struct; + +typedef struct { + IM3Module wasm_module; // p + u3_noun lia_shop; // q + u3_noun acc; // p.r, transferred + u3_noun map; // q.r, retained + match_data_struct* match; + u3_noun arrow_yil; +} lia_state; + +static u3_noun +_atoms_from_stack(void** valptrs, c3_w n, c3_y* types) +{ + u3_noun out = u3_nul; + while (n--) + { + switch (types[n]) + { // TODO 64 bit vere + case c_m3Type_i32: + case c_m3Type_f32: + { + out = u3nc(u3i_word(*(c3_w*)valptrs[n]), out); + break; + } + case c_m3Type_i64: + case c_m3Type_f64: + { + out = u3nc(u3i_chub(*(c3_d*)valptrs[n]), out); + break; + } + default: + { + return u3m_bail(c3__fail); + } + } + } + return out; +} + +// RETAIN argument +static c3_o +_atoms_to_stack(u3_noun atoms, void** valptrs, c3_w n, c3_y* types) +{ + for (c3_w i = 0; i < n; i++) + { + if (c3y == u3ud(atoms)) + { + return c3n; + } + u3_noun atom; + u3x_cell(atoms, &atom, &atoms); + if (c3n == u3ud(atom)) + { + return u3m_bail(c3__fail); + } + switch (types[i]) + { + case c_m3Type_i32: + case c_m3Type_f32: + { + *(c3_w*)valptrs[i] = u3r_word(0, atom); + break; + } + case c_m3Type_i64: + case c_m3Type_f64: + { + *(c3_d*)valptrs[i] = u3r_chub(0, atom); + break; + } + default: + { + return u3m_bail(c3__fail); + } + } + } + return __(u3_nul == atoms); +} + +static u3_noun +_coins_from_stack(void** valptrs, c3_w n, c3_y* types) +{ + u3_noun out = u3_nul; + while (n--) + { + switch (types[n]) + { // TODO 64 bit vere + case c_m3Type_i32: + { + out = u3nc(u3nc(c3__i32, u3i_word(*(c3_w*)valptrs[n])), out); + break; + } + case c_m3Type_i64: + { + out = u3nc(u3nc(c3__i64, u3i_chub(*(c3_d*)valptrs[n])), out); + break; + } + case c_m3Type_f32: + { + out = u3nc(u3nc(c3__f32, u3i_word(*(c3_w*)valptrs[n])), out); + break; + } + case c_m3Type_f64: + { + out = u3nc(u3nc(c3__f64, u3i_chub(*(c3_d*)valptrs[n])), out); + break; + } + default: + { + return u3m_bail(c3__fail); + } + } + } + return out; +} + +// RETAIN argument +static c3_o +_coins_to_stack(u3_noun coins, void** valptrs, c3_w n, c3_y* types) +{ + for (c3_w i = 0; i < n; i++) + { + if (c3y == u3ud(coins)) + { + return c3n; + } + u3_noun coin; + u3x_cell(coins, &coin, &coins); + if (c3y == u3ud(coin)) + { + return u3m_bail(c3__fail); + } + u3_noun tag, value; + u3x_cell(coin, &tag, &value); + if (c3n == u3ud(value)) + { + return u3m_bail(c3__fail); + } + switch (types[i]) + { + case c_m3Type_i32: + { + if (c3__i32 != tag) + { + return c3n; + } + *(c3_w*)valptrs[i] = u3r_word(0, value); + break; + } + case c_m3Type_i64: + { + if (c3__i64 != tag) + { + return c3n; + } + *(c3_d*)valptrs[i] = u3r_chub(0, value); + break; + } + case c_m3Type_f32: + { + if (c3__f32 != tag) + { + return c3n; + } + *(c3_w*)valptrs[i] = u3r_word(0, value); + break; + } + case c_m3Type_f64: + { + if (c3__f64 != tag) + { + return c3n; + } + *(c3_d*)valptrs[i] = u3r_chub(0, value); + break; + } + default: + { + return u3m_bail(c3__fail); + } + } + } + return __(u3_nul == coins); +} + +static c3_t +_deterministic_trap(M3Result result) +{ + if ( result == m3Err_trapOutOfBoundsMemoryAccess + || result == m3Err_trapDivisionByZero + || result == m3Err_trapIntegerOverflow + || result == m3Err_trapIntegerConversion + || result == m3Err_trapIndirectCallTypeMismatch + || result == m3Err_trapTableIndexOutOfRange + || result == m3Err_trapTableElementIsNull ) + { + return 1; + } + else + { + return 0; + } +} + +static u3_noun +_reduce_monad(u3_noun monad, lia_state* sat) +{ + u3_noun monad_bat = u3h(monad); + if (c3y == u3r_sing(monad_bat, sat->match->call_bat)) + { + if (c3n == u3r_sing(u3at(ARROW_CTX, monad), sat->match->call_ctx)) + { + return u3m_bail(c3__fail); + } + // call + u3_atom name = u3x_atom(u3at(arr_sam_2, monad)); + u3_noun args = u3at(arr_sam_3, monad); + + c3_w met_w = u3r_met(3, name); + c3_c* name_c = u3a_malloc(met_w + 1); + u3r_bytes(0, met_w, (c3_y*)name_c, name); + name_c[met_w] = 0; + + M3Result result; + + IM3Function f; + result = m3_FindFunction(&f, sat->wasm_module->runtime, name_c); + + if (result) + { + fprintf(stderr, ERR("function %s search error: %s"), name_c, result); + return u3m_bail(c3__fail); + } + + c3_w n_in = f->funcType->numArgs; + c3_w n_out = f->funcType->numRets; + c3_y* types = f->funcType->types; + + c3_d *vals_in = u3a_calloc(n_in, sizeof(c3_d)); + void **valptrs_in = u3a_calloc(n_in, sizeof(void*)); + for (c3_w i = 0; i < n_in; i++) + { + valptrs_in[i] = &vals_in[i]; + } + + c3_d *vals_out = u3a_calloc(n_out, sizeof(c3_d)); + void **valptrs_out = u3a_calloc(n_out, sizeof(void*)); + for (c3_w i = 0; i < n_out; i++) + { + valptrs_out[i] = &vals_out[i]; + } + + if (c3n == _atoms_to_stack(args, valptrs_in, n_in, (types+n_out))) + { + fprintf(stderr, ERR("function %s wrong number of args"), name_c); + return u3m_bail(c3__fail); + } + + result = m3_Call(f, n_in, (const void**)valptrs_in); + + u3_noun yil; + + if (result == m3Lia_Arrow) + { + yil = sat->arrow_yil; + sat->arrow_yil = 0; + if (yil == 0) + { + return u3m_bail(c3__fail); + } + } + else if (_deterministic_trap(result)) + { + fprintf(stderr, WUT("%s call trapped: %s"), name_c, result); + yil = u3nc(2, 0); + } + else if (result == m3Err_functionImportMissing) + { + return u3m_bail(c3__exit); + } + else if (result) + { + fprintf(stderr, ERR("%s call failed: %s"), name_c, result); + return u3m_bail(c3__fail); + } + else + { + result = m3_GetResults(f, n_out, (const void**)valptrs_out); + if (result) + { + fprintf(stderr, ERR("function %s failed to get results"), name_c); + return u3m_bail(c3__fail); + } + yil = u3nc(0, _atoms_from_stack(valptrs_out, n_out, types)); + } + + u3a_free(name_c); + u3a_free(vals_in); + u3a_free(valptrs_in); + u3a_free(vals_out); + u3a_free(valptrs_out); + u3z(monad); + + return yil; + } + else if (c3y == u3r_sing(monad_bat, sat->match->memread_bat)) + { + if (c3n == u3r_sing(u3at(ARROW_CTX, monad), sat->match->memread_ctx)) + { + return u3m_bail(c3__fail); + } + // memread + u3_atom ptr = u3x_atom(u3at(arr_sam_2, monad)); + u3_noun len = u3at(arr_sam_3, monad); + + c3_w ptr_w = u3r_word(0, ptr); + c3_l len_l = (c3y == u3a_is_cat(len)) ? len : u3m_bail(c3__fail); + c3_w len_buf_w; + c3_y* buf_y = m3_GetMemory(sat->wasm_module->runtime, &len_buf_w, 0); + + if (buf_y == NULL) + { + fprintf(stderr, ERR("memread failed to get memory")); + return u3m_bail(c3__fail); + } + + if (ptr_w + len_l > len_buf_w) + { + fprintf(stderr, ERR("memread out of bounds")); + return u3m_bail(c3__fail); + } + + u3z(monad); + return u3nt(0, len_l, u3i_bytes(len_l, (buf_y + ptr_w))); + } + else if (c3y == u3r_sing(monad_bat, sat->match->memwrite_bat)) + { + if (c3n == u3r_sing(u3at(ARROW_CTX, monad), sat->match->memwrite_ctx)) + { + return u3m_bail(c3__fail); + } + // memwrite + u3_atom ptr = u3x_atom(u3at(arr_sam_2, monad)); + u3_noun len = u3at(arr_sam_6, monad); + u3_noun src = u3at(arr_sam_7, monad); + + c3_w ptr_w = u3r_word(0, ptr); + c3_l len_l = (c3y == u3a_is_cat(len)) ? len : u3m_bail(c3__fail); + + c3_w len_buf_w; + c3_y* buf_y = m3_GetMemory(sat->wasm_module->runtime, &len_buf_w, 0); + + if (buf_y == NULL) + { + fprintf(stderr, ERR("memwrite failed to get memory")); + return u3m_bail(c3__fail); + } + + if (ptr_w + len_l > len_buf_w) + { + fprintf(stderr, ERR("memwrite out of bounds")); + return u3m_bail(c3__fail); + } + + u3r_bytes(0, len_l, (buf_y + ptr_w), u3x_atom(src)); + + u3z(monad); + return u3nc(0, 0); + } + else if (c3y == u3r_sing(monad_bat, sat->match->call_ext_bat)) + { + // call-ext + u3_noun name = u3at(arr_sam_2, monad); + u3_noun args = u3at(arr_sam_3, monad); + if (u3_nul == sat->lia_shop) + { + u3_noun yil = u3nt(1, u3k(name), u3k(args)); + u3z(monad); + return yil; + } + else + { + u3_noun lia_buy; + u3x_cell(sat->lia_shop, &lia_buy, &sat->lia_shop); + u3z(monad); + return u3nc(0, u3k(lia_buy)); + } + } + else if (c3y == u3r_sing(monad_bat, sat->match->try_bat)) + { + // try + u3_noun monad_b = u3at(60, monad); + u3_noun cont = u3at(61, monad); + u3_weak yil; + u3_noun monad_cont; + { + yil = _reduce_monad(u3k(monad_b), sat); + if (0 == u3h(yil)) + { + monad_cont = u3n_slam_on(u3k(cont), u3k(u3t(yil))); + u3z(yil); + yil = u3_none; + } + } + + u3z(monad); + if (u3_none == yil) + { + return _reduce_monad(monad_cont, sat); + } + else + { + return yil; + } + } + else if (c3y == u3r_sing(monad_bat, sat->match->catch_bat)) + { + // catch + u3_noun monad_try = u3at(120, monad); + u3_noun monad_catch = u3at(121, monad); + u3_noun cont = u3at(61, monad); + u3_weak yil; + u3_noun monad_cont; + + { + yil = _reduce_monad(u3k(monad_try), sat); + if (0 == u3h(yil)) + { + monad_cont = u3n_slam_on(u3k(cont), u3k(u3t(yil))); + u3z(yil); + yil = u3_none; + } + else if (2 == u3h(yil)) + { + u3z(yil); + yil = _reduce_monad(u3k(monad_catch), sat); + if (0 == u3h(yil)) + { + monad_cont = u3n_slam_on(u3k(cont), u3k(u3t(yil))); + u3z(yil); + yil = u3_none; + } + } + } + + u3z(monad); + if (u3_none == yil) + { + return _reduce_monad(monad_cont, sat); + } + else + { + return yil; + } + } + else if (c3y == u3r_sing(monad_bat, sat->match->return_bat)) + { + // return + u3_noun yil = u3nc(0, u3k(u3at(30, monad))); + u3z(monad); + return yil; + } + else if (c3y == u3r_sing(monad_bat, sat->match->global_set_bat)) + { + if (c3n == u3r_sing(u3at(ARROW_CTX, monad), sat->match->global_set_ctx)) + { + return u3m_bail(c3__fail); + } + // global-set + u3_atom name = u3x_atom(u3at(arr_sam_2, monad)); + u3_atom value = u3x_atom(u3at(arr_sam_3, monad)); + + c3_w met_w = u3r_met(3, name); + c3_c* name_c = u3a_malloc(met_w + 1); + u3r_bytes(0, met_w, (c3_y*)name_c, name); + name_c[met_w] = 0; + + IM3Global glob = m3_FindGlobal(sat->wasm_module, name_c); + + if (!glob) + { + fprintf(stderr, ERR("global %s not found"), name_c); + return u3m_bail(c3__fail); + } + + if (!glob->isMutable) + { + fprintf(stderr, ERR("global %s not mutable"), name_c); + return u3m_bail(c3__fail); + } + + M3TaggedValue glob_value; + M3Result result = m3_GetGlobal(glob, &glob_value); + if (result) + { + fprintf(stderr, ERR("couldn't get global %s: %s"), name_c, result); + return u3m_bail(c3__fail); + } + switch (glob_value.type) + { + default: + { + return u3m_bail(c3__fail); + } + case c_m3Type_i32: + { + glob_value.value.i32 = u3r_word(0, value); + break; + } + case c_m3Type_i64: + { + glob_value.value.i64 = u3r_chub(0, value); + break; + } + case c_m3Type_f32: + { + glob_value.value.f32 = u3r_word(0, value); + break; + } + case c_m3Type_f64: + { + glob_value.value.f64 = u3r_chub(0, value); + break; + } + } + result = m3_SetGlobal(glob, &glob_value); + if (result) + { + fprintf(stderr, ERR("couldn't set global %s: %s"), name_c, result); + return u3m_bail(c3__fail); + } + u3z(monad); + u3a_free(name_c); + return u3nc(0, 0); + } + else if (c3y == u3r_sing(monad_bat, sat->match->global_get_bat)) + { + if (c3n == u3r_sing(u3at(ARROW_CTX, monad), sat->match->global_get_ctx)) + { + return u3m_bail(c3__fail); + } + // global-get + u3_atom name = u3x_atom(u3at(arr_sam, monad)); + + c3_w met_w = u3r_met(3, name); + c3_c* name_c = u3a_malloc(met_w + 1); + u3r_bytes(0, met_w, (c3_y*)name_c, name); + name_c[met_w] = 0; + + IM3Global glob = m3_FindGlobal(sat->wasm_module, name_c); + if (!glob) + { + fprintf(stderr, ERR("global %s not found"), name_c); + return u3m_bail(c3__fail); + } + + M3TaggedValue glob_value; + M3Result result = m3_GetGlobal(glob, &glob_value); + if (result) + { + fprintf(stderr, ERR("couldn't get global %s: %s"), name_c, result); + return u3m_bail(c3__fail); + } + + u3_noun out; + switch (glob_value.type) + { + default: + { + return u3m_bail(c3__fail); + } + case c_m3Type_i32: + { + out = u3i_word(glob_value.value.i32); + break; + } + case c_m3Type_i64: + { + out = u3i_chub(glob_value.value.i64); + break; + } + case c_m3Type_f32: + { + out = u3i_word(glob_value.value.f32); + break; + } + case c_m3Type_f64: + { + out = u3i_chub(glob_value.value.f64); + break; + } + } + + u3z(monad); + u3a_free(name_c); + return u3nc(0, out); + + } + else if (c3y == u3r_sing(monad_bat, sat->match->mem_size_bat)) + { + if (c3n == u3r_sing(u3at(MONAD_CTX, monad), sat->match->mem_size_ctx)) + { + return u3m_bail(c3__fail); + } + // memory-size + if (!sat->wasm_module->memoryInfo.hasMemory) + { + fprintf(stderr, ERR("memsize no memory")); + return u3m_bail(c3__fail); + } + c3_w num_pages = sat->wasm_module->runtime->memory.numPages; + + u3z(monad); + return u3nc(0, u3i_word(num_pages)); + } + else if (c3y == u3r_sing(monad_bat, sat->match->mem_grow_bat)) + { + if (c3n == u3r_sing(u3at(ARROW_CTX, monad), sat->match->mem_grow_ctx)) + { + return u3m_bail(c3__fail); + } + // memory-grow + if (!sat->wasm_module->memoryInfo.hasMemory) + { + fprintf(stderr, ERR("memgrow no memory")); + return u3m_bail(c3__fail); + } + + u3_noun delta = u3at(arr_sam, monad); + + c3_l delta_l = (c3y == u3a_is_cat(delta)) ? delta : u3m_bail(c3__fail); + + c3_w n_pages = sat->wasm_module->runtime->memory.numPages; + c3_w required_pages = n_pages + delta_l; + + M3Result result = ResizeMemory(sat->wasm_module->runtime, required_pages); + + if (result) + { + fprintf(stderr, ERR("failed to resize memory: %s"), result); + return u3m_bail(c3__fail); + } + + u3z(monad); + return u3nc(0, u3i_word(n_pages)); + } + else if (c3y == u3r_sing(monad_bat, sat->match->get_acc_bat)) + { + u3z(monad); + return u3nc(0, u3k(sat->acc)); + } + else if (c3y == u3r_sing(monad_bat, sat->match->set_acc_bat)) + { + u3_noun new = u3k(u3at(arr_sam, monad)); + u3z(monad); + u3z(sat->acc); + sat->acc = new; + return u3nc(0, 0); + } + else if (c3y == u3r_sing(monad_bat, sat->match->get_all_glob_bat)) + { + if (c3n == u3r_sing(u3at(MONAD_CTX, monad), sat->match->get_all_glob_ctx)) + { + return u3m_bail(c3__fail); + } + u3z(monad); + u3_noun atoms = u3_nul; + c3_w n_globals = sat->wasm_module->numGlobals; + c3_w n_globals_import = sat->wasm_module->numGlobImports; + while (n_globals-- > n_globals_import) + { + M3Global glob = sat->wasm_module->globals[n_globals]; + switch (glob.type) + { + default: + { + return u3m_bail(c3__fail); + } + case c_m3Type_i32: + { + atoms = u3nc(u3i_word(glob.intValue), atoms); + break; + } + case c_m3Type_i64: + { + atoms = u3nc(u3i_chub(glob.intValue), atoms); + break; + } + case c_m3Type_f32: + { + atoms = u3nc(u3i_word(glob.f32Value), atoms); + break; + } + case c_m3Type_f64: + { + atoms = u3nc(u3i_chub(glob.f64Value), atoms); + break; + } + } + } + return u3nc(0, atoms); + } + else if (c3y == u3r_sing(monad_bat, sat->match->set_all_glob_bat)) + { + if (c3n == u3r_sing(u3at(ARROW_CTX, monad), sat->match->set_all_glob_ctx)) + { + return u3m_bail(c3__fail); + } + u3_noun atoms = u3at(arr_sam, monad); + c3_w n_globals = sat->wasm_module->numGlobals; + c3_w n_globals_import = sat->wasm_module->numGlobImports; + for (c3_w i = n_globals_import; i < n_globals; i++) + { + IM3Global glob = &sat->wasm_module->globals[i]; + u3_noun atom; + u3x_cell(atoms, &atom, &atoms); + u3x_atom(atom); + switch (glob->type) + { + default: + { + return u3m_bail(c3__fail); + } + case c_m3Type_i32: + { + glob->intValue = u3r_word(0, atom); + break; + } + case c_m3Type_i64: + { + glob->intValue = u3r_chub(0, atom); + break; + } + case c_m3Type_f32: + { + glob->f32Value = u3r_word(0, atom); + break; + } + case c_m3Type_f64: + { + glob->f64Value = u3r_chub(0, atom); + break; + } + } + } + if (u3_nul != atoms) + { + fprintf(stderr, WUT("glob list too long")); + return u3m_bail(c3__exit); + } + u3z(monad); + return u3nc(0, 0); + } + else + { + return u3m_bail(c3__fail); + } +} + +// TRANSFERS sat->arrow_yil if m3Lia_Arrow is thrown +static const void * +_link_wasm_with_arrow_map( + IM3Runtime runtime, + IM3ImportContext _ctx, + uint64_t * _sp, + void * _mem +) +{ + const char *mod = _ctx->function->import.moduleUtf8; + const char *name = _ctx->function->import.fieldUtf8; + lia_state* sat = _ctx->userdata; + + u3_noun key = u3nc(u3i_string(mod), u3i_string(name)); + u3_weak arrow = u3kdb_get(u3k(sat->map), key); + if (u3_none == arrow) + { + fprintf(stderr, ERR("import not found: %s/%s"), mod, name); + return m3Err_functionImportMissing; + } + c3_w n_in = _ctx->function->funcType->numArgs; + c3_w n_out = _ctx->function->funcType->numRets; + c3_y* types = _ctx->function->funcType->types; + void **valptrs_in = u3a_calloc(n_in, sizeof(void*)); + for (c3_w i = 0; i < n_in; i++) + { + valptrs_in[i] = &_sp[i+n_out]; + } + void **valptrs_out = u3a_calloc(n_out, sizeof(void*)); + for (c3_w i = 0; i < n_out; i++) + { + valptrs_out[i] = &_sp[i]; + } + + u3_noun coin_wasm_list = _coins_from_stack(valptrs_in, n_in, (types+n_out)); + + u3_noun yil = _reduce_monad(u3n_slam_on(arrow, coin_wasm_list), sat); + + M3Result result = m3Err_none; + + if (0 != u3h(yil)) + { + sat->arrow_yil = yil; + result = m3Lia_Arrow; + } + else + { + c3_o pushed = _coins_to_stack(u3t(yil), valptrs_out, n_out, types); + u3z(yil); + if (c3n == pushed) + { + fprintf(stderr, ERR("import result type mismatch: %s/%s"), mod, name); + result = "import result type mismatch"; + } + } + u3a_free(valptrs_in); + u3a_free(valptrs_out); + return result; +} + +u3_weak +u3we_lia_run(u3_noun cor) +{ +#ifndef URWASM_STATEFUL + return u3_none; +} +#else + if (c3__none == u3at(u3x_sam_7, cor)) + { + return u3_none; + } + + #ifdef URWASM_SUBROAD + + // enter subroad, 4MB safety buffer + u3m_hate(1 << 20); + + #endif + + u3r_mug(cor); + + u3_noun input = u3at(u3x_sam_2, cor); + u3_noun seed = u3at(u3x_sam_6, cor); + + u3_noun runnable = u3j_kink(u3k(u3at(RUN_CTX, cor)), AX_RUNNABLE); + u3_noun try_gate = u3j_kink(u3k(runnable), AX_TRY); + u3_noun try_gate_inner = u3j_kink(try_gate, 2); + + u3_noun seed_new; + u3_noun input_tag, p_input; + u3x_cell(input, &input_tag, &p_input); + + if (input_tag == c3y) + { + u3_noun p_input_gate = u3nt(u3nc(0, 7), 0, u3k(p_input)); // =>(p.input |=(* +>)) + u3_noun past_new = u3n_slam_on( + u3k(try_gate_inner), + u3nc( + u3k(u3at(6, seed)), + p_input_gate + ) + ); + seed_new = u3nq( + u3k(u3at(2, seed)), + past_new, + u3k(u3at(14, seed)), + u3k(u3at(15, seed)) + ); + } + else if (input_tag == c3n) + { + seed_new = u3nq( + u3k(u3at(2, seed)), + u3k(u3at(6, seed)), + u3kb_weld( + u3k(u3at(14, seed)), + u3nc(u3k(p_input), u3_nul) + ), + u3k(u3at(15, seed)) + ); + } + else + { + return u3m_bail(c3__fail); + } + + u3_noun call_script = u3j_kink(u3j_kink(u3k(u3at(RUN_CTX, cor)), AX_CALL), 2); + u3_noun memread_script = u3j_kink(u3j_kink(u3k(u3at(RUN_CTX, cor)), AX_MEMREAD), 2); + u3_noun memwrite_script = u3j_kink(u3j_kink(u3k(u3at(RUN_CTX, cor)), AX_MEMWRITE), 2); + u3_noun call_ext_script = u3j_kink(u3j_kink(u3k(u3at(RUN_CTX, cor)), AX_CALL_EXT), 2); + u3_noun global_set_script = u3j_kink(u3j_kink(u3k(u3at(RUN_CTX, cor)), AX_GLOBAL_SET), 2); + u3_noun global_get_script = u3j_kink(u3j_kink(u3k(u3at(RUN_CTX, cor)), AX_GLOBAL_GET), 2); + u3_noun mem_grow_script = u3j_kink(u3j_kink(u3k(u3at(RUN_CTX, cor)), AX_MEM_GROW), 2); + u3_noun mem_size_script = u3j_kink(u3k(u3at(RUN_CTX, cor)), AX_MEM_SIZE); + + u3_noun try_script = u3j_kink(try_gate_inner, 2); + u3_noun catch_script = u3j_kink(u3j_kink(u3j_kink(u3k(runnable), AX_CATCH), 2), 2); + u3_noun return_script = u3j_kink(u3j_kink(runnable, AX_RETURN), 2); + + u3_noun call_bat = u3k(u3h(call_script)); + u3_noun memread_bat = u3k(u3h(memread_script)); + u3_noun memwrite_bat = u3k(u3h(memwrite_script)); + u3_noun call_ext_bat = u3k(u3h(call_ext_script)); + u3_noun try_bat = u3k(u3h(try_script)); + u3_noun catch_bat = u3k(u3h(catch_script)); + u3_noun return_bat = u3k(u3h(return_script)); + u3_noun global_set_bat = u3k(u3h(global_set_script)); + u3_noun global_get_bat = u3k(u3h(global_get_script)); + u3_noun mem_grow_bat = u3k(u3h(mem_grow_script)); + u3_noun mem_size_bat = u3k(u3h(mem_size_script)); + + u3_noun call_ctx = u3k(u3at(ARROW_CTX, call_script)); + u3_noun memread_ctx = u3k(u3at(ARROW_CTX, memread_script)); + u3_noun memwrite_ctx = u3k(u3at(ARROW_CTX, memwrite_script)); + u3_noun global_set_ctx = u3k(u3at(ARROW_CTX, global_set_script)); + u3_noun global_get_ctx = u3k(u3at(ARROW_CTX, global_get_script)); + u3_noun mem_grow_ctx = u3k(u3at(ARROW_CTX, mem_grow_script)); + u3_noun mem_size_ctx = u3k(u3at(MONAD_CTX, mem_grow_script)); + + u3z(call_script); + u3z(memread_script); + u3z(memwrite_script); + u3z(call_ext_script); + u3z(try_script); + u3z(catch_script); + u3z(return_script); + u3z(global_set_script); + u3z(global_get_script); + u3z(mem_grow_script); + u3z(mem_size_script); + + match_data_struct match = { + call_bat, + memread_bat, + memwrite_bat, + call_ext_bat, + try_bat, + catch_bat, + return_bat, + global_set_bat, + global_get_bat, + mem_grow_bat, + mem_size_bat, + // + call_ctx, + memread_ctx, + memwrite_ctx, + global_set_ctx, + global_get_ctx, + mem_grow_ctx, + mem_size_ctx, + }; + + u3_noun octs = u3at(2, seed_new); + u3_noun p_octs, q_octs; + u3x_cell(octs, &p_octs, &q_octs); + + c3_w bin_len_w = (c3y == u3a_is_cat(p_octs)) ? p_octs : u3m_bail(c3__fail); + c3_y* bin_y = u3r_bytes_alloc(0, bin_len_w, u3x_atom(q_octs)); + + M3Result result; + + result = m3_SetAllocators(u3a_calloc, u3a_free, u3a_realloc); + + if (result) + { + fprintf(stderr, ERR("set allocators fail: %s"), result); + return u3m_bail(c3__fail); + } + + IM3Environment wasm3_env = m3_NewEnvironment(); + if (!wasm3_env) + { + fprintf(stderr, ERR("env is null")); + return u3m_bail(c3__fail); + } + + // 2MB stack + IM3Runtime wasm3_runtime = m3_NewRuntime(wasm3_env, 1 << 21, NULL); + if (!wasm3_runtime) + { + fprintf(stderr, ERR("runtime is null")); + return u3m_bail(c3__fail); + } + + IM3Module wasm3_module; + result = m3_ParseModule(wasm3_env, &wasm3_module, bin_y, bin_len_w); + if (result) + { + fprintf(stderr, ERR("parse binary error: %s"), result); + return u3m_bail(c3__fail); + } + + result = m3_LoadModule(wasm3_runtime, wasm3_module); + if (result) + { + fprintf(stderr, ERR("load module error: %s"), result); + return u3m_bail(c3__fail); + } + + result = m3_ValidateModule(wasm3_module); + if (result) + { + fprintf(stderr, ERR("validation error: %s"), result); + return u3m_bail(c3__fail); + } + + c3_w n_imports = wasm3_module->numFuncImports; + u3_noun monad = u3at(6, seed_new); + u3_noun lia_shop = u3at(14, seed_new); + u3_noun import = u3at(15, seed_new); + + lia_state sat = {wasm3_module, lia_shop, import, &match, 0}; + + for (c3_w i = 0; i < n_imports; i++) + { + M3Function f = wasm3_module->functions[i]; + const char * mod = f.import.moduleUtf8; + const char * name = f.import.fieldUtf8; + + result = m3_LinkRawFunctionEx( + wasm3_module, mod, name, + NULL, &_link_wasm_with_arrow_map, + (void *)&sat + ); + + if (result) + { + fprintf(stderr, ERR("link error: %s"), result); + return u3m_bail(c3__fail); + } + } + + u3_noun yil; + + result = m3_RunStart(wasm3_module); + + if (result == m3Lia_Arrow) + { + yil = sat.arrow_yil; + sat.arrow_yil = 0; + if (yil == 0) + { + return u3m_bail(c3__fail); + } + } + else if (_deterministic_trap(result)) + { + fprintf(stderr, WUT("start function call trapped: %s"), result); + yil = u3nc(2, 0); + } + else if (result) + { + fprintf(stderr, ERR("start function failed: %s"), result); + return u3m_bail(c3__fail); + } + else + { + yil = _reduce_monad(u3k(monad), &sat); + } + + m3_FreeRuntime(wasm3_runtime); + m3_FreeEnvironment(wasm3_env); + + u3a_free(bin_y); + + u3z(match.call_bat); + u3z(match.memread_bat); + u3z(match.memwrite_bat); + u3z(match.call_ext_bat); + u3z(match.try_bat); + u3z(match.catch_bat); + u3z(match.return_bat); + u3z(match.global_set_bat); + u3z(match.global_get_bat); + u3z(match.mem_grow_bat); + u3z(match.mem_size_bat); + + u3z(match.call_ctx); + u3z(match.memread_ctx); + u3z(match.memwrite_ctx); + u3z(global_set_ctx); + u3z(global_get_ctx); + u3z(mem_grow_ctx); + u3z(mem_size_ctx); + + #ifdef URWASM_SUBROAD + // exit subroad, copying the result + u3_noun pro = u3m_love(u3nc(yil, seed_new)); + #else + u3_noun pro = u3nc(yil, seed_new); + #endif + + return pro; +} + +#endif // URWASM_STATEFUL + +u3_weak +u3we_lia_run_once(u3_noun cor) +{ + if (c3__none == u3at(u3x_sam_6, cor)) + { + return u3_none; + } + + #ifdef URWASM_SUBROAD + // enter subroad, 4MB safety buffer + u3m_hate(1 << 20); + #endif + + u3_noun ctx = u3at(ONCE_CTX, cor); + u3r_mug(ctx); + + #define KICK1(TRAP) u3j_kink(TRAP, 2) + #define KICK2(TRAP) u3j_kink(KICK1(TRAP), 2) + + u3_noun runnable = u3j_kink(u3k(ctx), AX_RUNNABLE); + u3_noun arrows = KICK1(u3j_kink(u3k(ctx), AX_ARROWS)); + + u3_noun call_script = KICK1(u3j_kink(u3k(arrows), AX_CALL)); + u3_noun memread_script = KICK1(u3j_kink(u3k(arrows), AX_MEMREAD)); + u3_noun memwrite_script = KICK1(u3j_kink(u3k(arrows), AX_MEMWRITE)); + u3_noun call_ext_script = KICK1(u3j_kink(u3k(arrows), AX_CALL_EXT)); + u3_noun global_set_script = KICK1(u3j_kink(u3k(arrows), AX_GLOBAL_SET)); + u3_noun global_get_script = KICK1(u3j_kink(u3k(arrows), AX_GLOBAL_GET)); + u3_noun mem_grow_script = KICK1(u3j_kink(u3k(arrows), AX_MEM_GROW)); + u3_noun mem_size_script = u3j_kink(u3k(arrows), AX_MEM_SIZE); + u3_noun get_acc_script = u3j_kink(u3k(arrows), AX_GET_ACC); + u3_noun set_acc_script = KICK1(u3j_kink(u3k(arrows), AX_SET_ACC)); + u3_noun get_all_glob_script = u3j_kink(u3k(arrows), AX_GET_ALL_GLOB); + u3_noun set_all_glob_script = KICK1(u3j_kink( arrows, AX_SET_ALL_GLOB)); + + u3_noun try_script = KICK2(u3j_kink(u3k(runnable), AX_TRY)); + u3_noun catch_script = KICK2(u3j_kink(u3k(runnable), AX_CATCH)); + u3_noun return_script = KICK1(u3j_kink( runnable, AX_RETURN)); + + u3_noun call_bat = u3k(u3h(call_script)); + u3_noun memread_bat = u3k(u3h(memread_script)); + u3_noun memwrite_bat = u3k(u3h(memwrite_script)); + u3_noun call_ext_bat = u3k(u3h(call_ext_script)); + u3_noun try_bat = u3k(u3h(try_script)); + u3_noun catch_bat = u3k(u3h(catch_script)); + u3_noun return_bat = u3k(u3h(return_script)); + u3_noun global_set_bat = u3k(u3h(global_set_script)); + u3_noun global_get_bat = u3k(u3h(global_get_script)); + u3_noun mem_grow_bat = u3k(u3h(mem_grow_script)); + u3_noun mem_size_bat = u3k(u3h(mem_size_script)); + u3_noun get_acc_bat = u3k(u3h(get_acc_script)); + u3_noun set_acc_bat = u3k(u3h(set_acc_script)); + u3_noun get_all_glob_bat = u3k(u3h(get_all_glob_script)); + u3_noun set_all_glob_bat = u3k(u3h(set_all_glob_script)); + + u3_noun call_ctx = u3k(u3at(ARROW_CTX, call_script)); + u3_noun memread_ctx = u3k(u3at(ARROW_CTX, memread_script)); + u3_noun memwrite_ctx = u3k(u3at(ARROW_CTX, memwrite_script)); + u3_noun global_set_ctx = u3k(u3at(ARROW_CTX, global_set_script)); + u3_noun global_get_ctx = u3k(u3at(ARROW_CTX, global_get_script)); + u3_noun mem_grow_ctx = u3k(u3at(ARROW_CTX, mem_grow_script)); + u3_noun mem_size_ctx = u3k(u3at(MONAD_CTX, mem_size_script)); + u3_noun get_all_glob_ctx = u3k(u3at(MONAD_CTX, get_all_glob_script)); + u3_noun set_all_glob_ctx = u3k(u3at(ARROW_CTX, set_all_glob_script)); + + u3z(call_script); + u3z(memread_script); + u3z(memwrite_script); + u3z(call_ext_script); + u3z(try_script); + u3z(catch_script); + u3z(return_script); + u3z(global_set_script); + u3z(global_get_script); + u3z(mem_grow_script); + u3z(mem_size_script); + u3z(get_acc_script); + u3z(set_acc_script); + u3z(get_all_glob_script); + u3z(set_all_glob_script); + + + match_data_struct match = { + call_bat, + memread_bat, + memwrite_bat, + call_ext_bat, + try_bat, + catch_bat, + return_bat, + global_set_bat, + global_get_bat, + mem_grow_bat, + mem_size_bat, + get_acc_bat, + set_acc_bat, + get_all_glob_bat, + set_all_glob_bat, + // + call_ctx, + memread_ctx, + memwrite_ctx, + global_set_ctx, + global_get_ctx, + mem_grow_ctx, + mem_size_ctx, + get_all_glob_ctx, + set_all_glob_ctx, + }; + + u3_noun octs = u3at(u3x_sam_4, cor); + u3_noun p_octs, q_octs; + u3x_cell(octs, &p_octs, &q_octs); + + c3_w bin_len_w = (c3y == u3a_is_cat(p_octs)) ? p_octs : u3m_bail(c3__fail); + c3_y* bin_y = u3r_bytes_alloc(0, bin_len_w, u3x_atom(q_octs)); + + M3Result result; + + result = m3_SetAllocators(u3a_calloc, u3a_free, u3a_realloc); + + if (result) + { + fprintf(stderr, ERR("set allocators fail: %s"), result); + return u3m_bail(c3__fail); + } + + IM3Environment wasm3_env = m3_NewEnvironment(); + if (!wasm3_env) + { + fprintf(stderr, ERR("env is null")); + return u3m_bail(c3__fail); + } + + // 2MB stack + IM3Runtime wasm3_runtime = m3_NewRuntime(wasm3_env, 1 << 21, NULL); + if (!wasm3_runtime) + { + fprintf(stderr, ERR("runtime is null")); + return u3m_bail(c3__fail); + } + + IM3Module wasm3_module; + result = m3_ParseModule(wasm3_env, &wasm3_module, bin_y, bin_len_w); + if (result) + { + fprintf(stderr, ERR("parse binary error: %s"), result); + return u3m_bail(c3__fail); + } + + result = m3_LoadModule(wasm3_runtime, wasm3_module); + if (result) + { + fprintf(stderr, ERR("load module error: %s"), result); + return u3m_bail(c3__fail); + } + + result = m3_ValidateModule(wasm3_module); + if (result) + { + fprintf(stderr, ERR("validation error: %s"), result); + return u3m_bail(c3__fail); + } + + c3_w n_imports = wasm3_module->numFuncImports; + u3_noun monad = u3at(u3x_sam_7, cor); + u3_noun lia_shop = u3_nul; + u3_noun import = u3at(u3x_sam_5, cor); + + u3_noun acc, map; + u3x_cell(import, &acc, &map); + + lia_state sat = {wasm3_module, lia_shop, u3k(acc), map, &match, 0}; + + for (c3_w i = 0; i < n_imports; i++) + { + M3Function f = wasm3_module->functions[i]; + const char * mod = f.import.moduleUtf8; + const char * name = f.import.fieldUtf8; + + result = m3_LinkRawFunctionEx( + wasm3_module, mod, name, + NULL, &_link_wasm_with_arrow_map, + (void *)&sat + ); + + if (result) + { + fprintf(stderr, ERR("link error: %s"), result); + return u3m_bail(c3__fail); + } + } + + u3_noun yil; + + result = m3_RunStart(wasm3_module); + + if (result == m3Lia_Arrow) + { + yil = sat.arrow_yil; + sat.arrow_yil = 0; + if (yil == 0) + { + return u3m_bail(c3__fail); + } + } + else if (_deterministic_trap(result)) + { + fprintf(stderr, WUT("start function call trapped: %s"), result); + yil = u3nc(2, 0); + } + else if (result == m3Err_functionImportMissing) + { + return u3m_bail(c3__exit); + } + else if (result) + { + fprintf(stderr, ERR("start function failed: %s"), result); + return u3m_bail(c3__fail); + } + else + { + yil = _reduce_monad(u3k(monad), &sat); + } + + m3_FreeRuntime(wasm3_runtime); + m3_FreeEnvironment(wasm3_env); + + u3a_free(bin_y); + + u3z(match.call_bat); + u3z(match.memread_bat); + u3z(match.memwrite_bat); + u3z(match.call_ext_bat); + u3z(match.try_bat); + u3z(match.catch_bat); + u3z(match.return_bat); + u3z(match.global_set_bat); + u3z(match.global_get_bat); + u3z(match.mem_grow_bat); + u3z(match.mem_size_bat); + u3z(match.get_acc_bat); + u3z(match.set_acc_bat); + u3z(match.get_all_glob_bat); + u3z(match.set_all_glob_bat); + + u3z(match.call_ctx); + u3z(match.memread_ctx); + u3z(match.memwrite_ctx); + u3z(global_set_ctx); + u3z(global_get_ctx); + u3z(mem_grow_ctx); + u3z(mem_size_ctx); + u3z(get_all_glob_ctx); + u3z(set_all_glob_ctx); + + #ifdef URWASM_SUBROAD + // exit subroad, copying the result + u3_noun pro = u3m_love(u3nc(yil, sat.acc)); + #else + u3_noun pro = u3nc(yil, sat.acc); + #endif + + return pro; +} diff --git a/vere/pkg/noun/jets/f/cell.c b/vere/pkg/noun/jets/f/cell.c new file mode 100644 index 0000000..0a818f2 --- /dev/null +++ b/vere/pkg/noun/jets/f/cell.c @@ -0,0 +1,29 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qf_cell(u3_noun hed, + u3_noun tal) + { + if ( (c3__void == hed) || (c3__void == tal) ) { + return c3__void; + } else { + return u3nt(c3__cell, u3k(hed), u3k(tal)); + } + } + u3_noun + u3wf_cell(u3_noun cor) + { + u3_noun hed, tal; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &hed, u3x_sam_3, &tal, 0) ) { + return u3m_bail(c3__fail); + } else { + return u3qf_cell(hed, tal); + } + } diff --git a/vere/pkg/noun/jets/f/comb.c b/vere/pkg/noun/jets/f/comb.c new file mode 100644 index 0000000..1dfe794 --- /dev/null +++ b/vere/pkg/noun/jets/f/comb.c @@ -0,0 +1,70 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qf_comb(u3_noun mal, + u3_noun buz) + { + if ( (u3_none == mal) || (u3_none == buz) ) { + return u3_none; + } + else { + u3_noun p_mal, q_mal, p_buz, q_buz, pp_buz, pq_buz; + + if ( (c3y == u3r_p(mal, 0, &p_mal)) && (0 != p_mal) ) { + if ( (c3y == u3r_p(buz, 0, &p_buz)) && (0 != p_buz) ) { + return u3nc(0, + u3qc_peg(p_mal, p_buz)); + } + else if ( c3y == u3r_pq(buz, 2, &p_buz, &q_buz) && + c3y == u3r_p(p_buz, 0, &pp_buz) && + c3y == u3r_p(q_buz, 0, &pq_buz) ) + { + return u3nt(2, + u3nc(0, + u3qc_peg(p_mal, pp_buz)), + u3nc(0, + u3qc_peg(p_mal, pq_buz))); + } + else return u3nt(7, + u3k(mal), + u3k(buz)); + } +#if 1 + else if ( (c3y == u3r_bush(mal, &p_mal, &q_mal)) && + (c3y == u3du(p_mal)) && + (c3y == u3du(q_mal)) && + (0 == u3h(q_mal)) && + (1 == u3t(q_mal)) ) + { + return u3nt(8, + u3k(p_mal), + u3k(buz)); + } +#endif + else if ( (c3y == u3r_p(buz, 0, &p_buz)) && + (c3y == u3r_sing(1, p_buz)) ) + { + return u3k(mal); + } + else return u3nt(7, + u3k(mal), + u3k(buz)); + } + } + u3_noun + u3wf_comb(u3_noun cor) + { + u3_noun mal, buz; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &mal, u3x_sam_3, &buz, 0) ) { + return u3_none; + } else { + return u3qf_comb(mal, buz); + } + } diff --git a/vere/pkg/noun/jets/f/cons.c b/vere/pkg/noun/jets/f/cons.c new file mode 100644 index 0000000..45719c1 --- /dev/null +++ b/vere/pkg/noun/jets/f/cons.c @@ -0,0 +1,54 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qf_cons(u3_noun vur, + u3_noun sed) + { + u3_noun p_vur, p_sed; + + if ( c3y == u3r_p(vur, 1, &p_vur) && + c3y == u3r_p(sed, 1, &p_sed) ) { + return u3nt(1, + u3k(p_vur), + u3k(p_sed)); + } +#if 0 + else if ( c3y == u3r_p(vur, 0, &p_vur) && + c3y == u3r_p(sed, 0, &p_sed) && + !(c3y == u3r_sing(1, p_vur)) && + !(c3y == u3r_sing(p_vur, p_sed)) && + (0 == u3r_nord(p_vur, p_sed)) ) + { + u3_atom fub = u3qa_div(p_vur, 2); + u3_atom nof = u3qa_div(p_sed, 2); + + if ( c3y == u3r_sing(fub, nof) ) { + u3z(nof); + + return u3nc(0, fub); + } + else { + u3z(fub); + u3z(nof); + } + } +#endif + return u3nc(u3k(vur), u3k(sed)); + } + u3_noun + u3wf_cons(u3_noun cor) + { + u3_noun vur, sed; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &vur, u3x_sam_3, &sed, 0) ) { + return u3m_bail(c3__fail); + } else { + return u3qf_cons(vur, sed); + } + } diff --git a/vere/pkg/noun/jets/f/core.c b/vere/pkg/noun/jets/f/core.c new file mode 100644 index 0000000..ca7e93d --- /dev/null +++ b/vere/pkg/noun/jets/f/core.c @@ -0,0 +1,118 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qf_core(u3_noun pac, + u3_noun con) + { + if ( (c3__void == pac) ) { + return c3__void; + } else { + { + u3_noun p_con, q_con, r_con, hr_con, tr_con; + + u3r_trel(con, &p_con, &q_con, &r_con); + u3r_cell(r_con, &hr_con, &tr_con); + if ( (c3y == u3du(hr_con)) && + (u3_nul == u3h(hr_con)) && + (u3_nul == u3t(hr_con)) ) + { + u3l_log("old core"); + abort(); + } + } + return u3nt(c3__core, u3k(pac), u3k(con)); + } + } + u3_noun + u3wf_core(u3_noun cor) + { + u3_noun pac, con; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &pac, u3x_sam_3, &con, 0) ) { + return u3m_bail(c3__fail); + } else { + return u3qf_core(pac, con); + } + } + +#if 0 + static void + _fork_test(const c3_c *lab_c, u3_noun set) + { + if ( u3_nul == set ) { + return; + } else { + u3_noun n_set, l_set, r_set; + + u3x_trel(set, &n_set, &l_set, &r_set); + + u3qf_test(lab_c, n_set); + _fork_test(lab_c, l_set); + _fork_test(lab_c, r_set); + } + } + void + u3qf_test(const c3_c* lab_c, u3_noun sut) + { + u3_noun p_sut, q_sut; + + if ( c3n == u3du(sut) ) switch ( sut ) { + default: u3m_bail(c3__fail); return; + + case c3__noun: + { + return; + } + case c3__void: + { + return; + } + } + else switch ( u3h(sut) ) { + default: u3m_bail(c3__fail); return; + + case c3__atom: u3x_cell(u3t(sut), &p_sut, &q_sut); + { + return; + } + case c3__cell: u3x_cell(u3t(sut), &p_sut, &q_sut); + { + u3qf_test(lab_c, p_sut); + u3qf_test(lab_c, q_sut); + return; + } + case c3__core: u3x_cell(u3t(sut), &p_sut, &q_sut); + { + u3qf_test(lab_c, p_sut); + return; + } + case c3__face: u3x_cell(u3t(sut), &p_sut, &q_sut); + { + u3qf_test(lab_c, q_sut); + return; + } + case c3__fork: p_sut = u3t(sut); + { + _fork_test(lab_c, p_sut); + return; + } + case c3__hint: u3x_cell(u3t(sut), &p_sut, &q_sut); + { + u3qf_test(lab_c, q_sut); + u3qf_test(lab_c, u3h(p_sut)); + return; + } + case c3__hold: u3x_cell(u3t(sut), &p_sut, &q_sut); + { + u3qf_test(lab_c, p_sut); + return; + } + } + } +#endif diff --git a/vere/pkg/noun/jets/f/face.c b/vere/pkg/noun/jets/f/face.c new file mode 100644 index 0000000..7e689e7 --- /dev/null +++ b/vere/pkg/noun/jets/f/face.c @@ -0,0 +1,31 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qf_face(u3_noun sag, + u3_noun tip) + { + if ( c3__void == tip ) { + return c3__void; + } + else return u3nt(c3__face, + u3k(sag), + u3k(tip)); + } + u3_noun + u3wf_face(u3_noun cor) + { + u3_noun sag, tip; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &sag, u3x_sam_3, &tip, 0) ) { + return u3m_bail(c3__fail); + } else { + return u3qf_face(sag, tip); + } + } + diff --git a/vere/pkg/noun/jets/f/fine.c b/vere/pkg/noun/jets/f/fine.c new file mode 100644 index 0000000..2c5a85c --- /dev/null +++ b/vere/pkg/noun/jets/f/fine.c @@ -0,0 +1,35 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qf_fine(u3_noun fuv, + u3_noun lup, + u3_noun mar) + { + if ( (c3__void == lup) || (c3__void == mar) ) { + return c3__void; + } else { + return u3nq(c3__fine, + u3k(fuv), + u3k(lup), + u3k(mar)); + } + } + u3_noun + u3wf_fine(u3_noun cor) + { + u3_noun fuv, lup, mar; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &fuv, + u3x_sam_6, &lup, + u3x_sam_7, &mar, 0) ) { + return u3m_bail(c3__fail); + } else { + return u3qf_fine(fuv, lup, mar); + } + } diff --git a/vere/pkg/noun/jets/f/fitz.c b/vere/pkg/noun/jets/f/fitz.c new file mode 100644 index 0000000..b1c2a5d --- /dev/null +++ b/vere/pkg/noun/jets/f/fitz.c @@ -0,0 +1,75 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +static u3_noun +_fitz_fiz(u3_noun yaz, + u3_noun wix) +{ + c3_w yaz_w = u3r_met(3, yaz); + c3_w wix_w = u3r_met(3, wix); + c3_y yaz_y, wix_y; + + yaz_y = (0 == yaz_w) ? 0 : u3r_byte((yaz_w - 1), yaz); + if ( (yaz_y < 'A') || (yaz_y > 'Z') ) yaz_y = 0; + + wix_y = (0 == wix_w) ? 0 : u3r_byte((wix_w - 1), wix); + if ( (wix_y < 'A') || (wix_y > 'Z') ) wix_y = 0; + + if ( yaz_y && wix_y ) { + if ( wix_y > yaz_y ) { + return c3n; + } + } + + return c3y; +} + +u3_noun +u3qf_fitz(u3_noun yaz, + u3_noun wix) +{ + c3_w yet_w = u3r_met(3, yaz); + c3_w wet_w = u3r_met(3, wix); + + c3_w i_w, met_w = c3_min(yet_w, wet_w); + + if ( c3n == _fitz_fiz(yaz, wix) ) { + return c3n; + } + for ( i_w = 0; i_w < met_w; i_w++ ) { + c3_y yaz_y = u3r_byte(i_w, yaz); + c3_y wix_y = u3r_byte(i_w, wix); + + if ( (i_w == (yet_w - 1)) && (yaz_y >= 'A') && (yaz_y <= 'Z')) { + return c3y; + } + + if ( (i_w == (wet_w - 1)) && (wix_y >= 'A') && (wix_y <= 'Z')) { + return c3y; + } + + if ( yaz_y != wix_y ) { + return c3n; + } + } + return c3y; +} + +u3_noun +u3wf_fitz(u3_noun cor) +{ + u3_noun yaz, wix; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &yaz, u3x_sam_3, &wix, 0)) || + (c3n == u3ud(yaz)) || + (c3n == u3ud(wix)) ) + { + return u3m_bail(c3__fail); + } else { + return u3qf_fitz(yaz, wix); + } +} diff --git a/vere/pkg/noun/jets/f/flan.c b/vere/pkg/noun/jets/f/flan.c new file mode 100644 index 0000000..319e1f0 --- /dev/null +++ b/vere/pkg/noun/jets/f/flan.c @@ -0,0 +1,47 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qf_flan(u3_noun bos, + u3_noun nif) + { + if ( c3y == u3r_sing(bos, nif) ) { + return u3k(bos); + } + if ( c3y == u3r_sing(1, u3h(bos)) ) { + if ( (u3_nul == u3t(bos)) ) { + return u3k(nif); + } + else return u3k(bos); + } + else { + if ( c3y == u3r_sing(1, u3h(nif)) ) { + if ( (u3_nul == u3t(nif)) ) { + return u3k(bos); + } + else return u3k(nif); + } + else { + return u3nq(6, + u3k(bos), + u3k(nif), + u3nc(1, c3n)); + } + } + } + u3_noun + u3wf_flan_139(u3_noun cor) + { + u3_noun bos, nif; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &bos, u3x_sam_3, &nif, 0) ) { + return u3m_bail(c3__fail); + } else { + return u3qf_flan(bos, nif); + } + } diff --git a/vere/pkg/noun/jets/f/flip.c b/vere/pkg/noun/jets/f/flip.c new file mode 100644 index 0000000..9eb922e --- /dev/null +++ b/vere/pkg/noun/jets/f/flip.c @@ -0,0 +1,39 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qf_flip(u3_noun hel) + { + if ( c3y == u3r_sing(1, u3h(hel)) ) { + if ( (c3y == u3t(hel)) ) { + return u3nc(1, c3n); + } + else { + u3_assert((c3n == u3t(hel))); + + return u3nc(1, c3y); + } + } + else { + return u3nq(6, + u3k(hel), + u3nc(1, c3n), + u3nc(1, c3y)); + } + } + u3_noun + u3wf_flip_139(u3_noun cor) + { + u3_noun hel; + + if ( u3_none == (hel = u3r_at(u3x_sam, cor)) ) { + return u3m_bail(c3__fail); + } else { + return u3qf_flip(hel); + } + } diff --git a/vere/pkg/noun/jets/f/flor.c b/vere/pkg/noun/jets/f/flor.c new file mode 100644 index 0000000..031168e --- /dev/null +++ b/vere/pkg/noun/jets/f/flor.c @@ -0,0 +1,47 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qf_flor(u3_noun bos, + u3_noun nif) + { + if ( c3y == u3r_sing(bos, nif) ) { + return u3k(bos); + } + if ( c3y == u3r_sing(1, u3h(bos)) ) { + if ( (u3_nul == u3t(bos)) ) { + return u3k(bos); + } + else return u3k(nif); + } + else { + if ( c3y == u3r_sing(1, u3h(nif)) ) { + if ( (u3_nul == u3t(nif)) ) { + return u3k(nif); + } + else return u3k(bos); + } + else { + return u3nq(6, + u3k(bos), + u3nc(1, c3y), + u3k(nif)); + } + } + } + u3_noun + u3wf_flor_139(u3_noun cor) + { + u3_noun bos, nif; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &bos, u3x_sam_3, &nif, 0) ) { + return u3m_bail(c3__fail); + } else { + return u3qf_flor(bos, nif); + } + } diff --git a/vere/pkg/noun/jets/f/fork.c b/vere/pkg/noun/jets/f/fork.c new file mode 100644 index 0000000..b2a68eb --- /dev/null +++ b/vere/pkg/noun/jets/f/fork.c @@ -0,0 +1,79 @@ +/// @file + +#include "jets/k.h" +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qf_forq(u3_noun hoz, + u3_noun bur) + { + if ( c3y == u3r_sing(hoz, bur) ) { + return u3k(hoz); + } + else if ( c3__void == bur ) { + return u3k(hoz); + } + else if ( c3__void == hoz ) { + return u3k(bur); + } + else return u3kf_fork(u3nt(u3k(hoz), u3k(bur), u3_nul)); + } + + u3_noun + u3qf_fork(u3_noun yed) + { + u3_noun lez = u3_nul; + + while ( u3_nul != yed ) { + u3_noun i_yed = u3h(yed); + + if ( c3__void != i_yed ) { + if ( (c3y == u3du(i_yed)) && (c3__fork == u3h(i_yed)) ) { + lez = u3kdi_uni(lez, u3k(u3t(i_yed))); + } + else { + lez = u3kdi_put(lez, u3k(i_yed)); + } + } + + yed = u3t(yed); + } + + if ( u3_nul == lez ) { + return c3__void; + } + else if ( (u3_nul == u3h(u3t(lez))) && (u3_nul == u3t(u3t(lez))) ) { + u3_noun ret = u3k(u3h(lez)); + + u3z(lez); + return ret; + } + else { + return u3nc(c3__fork, lez); + } + } + + u3_noun + u3wf_fork(u3_noun cor) + { + u3_noun yed; + + if ( c3n == u3r_mean(cor, u3x_sam, &yed, 0) ) { + return u3m_bail(c3__fail); + } else { + return u3qf_fork(yed); + } + } + + u3_noun + u3kf_fork(u3_noun yed) + { + u3_noun ret = u3qf_fork(yed); + + u3z(yed); + return ret; + } diff --git a/vere/pkg/noun/jets/f/help.c b/vere/pkg/noun/jets/f/help.c new file mode 100644 index 0000000..41fe7fb --- /dev/null +++ b/vere/pkg/noun/jets/f/help.c @@ -0,0 +1,31 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qf_help(u3_noun sag, + u3_noun tip) + { + if ( c3__void == tip ) { + return c3__void; + } + else return u3nt(c3__help, + u3k(sag), + u3k(tip)); + } + u3_noun + u3wf_help(u3_noun cor) + { + u3_noun sag, tip; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &sag, u3x_sam_3, &tip, 0) ) { + return u3m_bail(c3__fail); + } else { + return u3qf_help(sag, tip); + } + } + diff --git a/vere/pkg/noun/jets/f/hint.c b/vere/pkg/noun/jets/f/hint.c new file mode 100644 index 0000000..175c3fb --- /dev/null +++ b/vere/pkg/noun/jets/f/hint.c @@ -0,0 +1,32 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + + u3_noun + u3qf_hint(u3_noun sag, + u3_noun tip) + { + if ( c3__void == tip ) { + return c3__void; + } + if ( c3__noun == tip ) { + return c3__noun; + } + else return u3nt(c3__hint, u3k(sag), u3k(tip)); + } + u3_noun + u3wf_hint(u3_noun cor) + { + u3_noun sag, tip; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &sag, u3x_sam_3, &tip, 0) ) { + return u3m_bail(c3__fail); + } else { + return u3qf_hint(sag, tip); + } + } + diff --git a/vere/pkg/noun/jets/f/look.c b/vere/pkg/noun/jets/f/look.c new file mode 100644 index 0000000..e50e914 --- /dev/null +++ b/vere/pkg/noun/jets/f/look.c @@ -0,0 +1,134 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + +/* internals +*/ + static u3_noun + _look_in(u3_noun cog, + u3_noun dab, + u3_atom axe) + { + if ( u3_nul == dab ) { + return u3_nul; + } + else { + u3_noun n_dab, l_dab, r_dab; + + u3r_trel(dab, &n_dab, &l_dab, &r_dab); + if ( c3n == u3du(n_dab) ) { + // return u3m_bail(c3__fail); + u3l_log("bad look"); + return u3m_bail(c3__exit) ; + } + else { + u3_noun pn_dab = u3h(n_dab); + u3_noun qn_dab = u3t(n_dab); + + if ( (u3_nul == l_dab) && (u3_nul == r_dab) ) { + if ( (c3y == u3du(qn_dab)) && + (c3y == u3r_sing(cog, pn_dab)) ) { + return u3nt(u3_nul, + u3k(axe), + u3k(qn_dab)); + } + else { + return u3_nul; + } + } + else if ( (u3_nul == l_dab) ) { + if ( (c3y == u3du(qn_dab)) && + (c3y == u3r_sing(cog, pn_dab)) ) { + return u3nt(u3_nul, + u3qc_peg(axe, 2), + u3k(qn_dab)); + } + else { + if ( c3y == u3qc_gor(cog, pn_dab) ) { + return u3_nul; + } + else { + u3_noun pro; + + axe = u3qc_peg(axe, 3); + pro = _look_in(cog, r_dab, axe); + u3z(axe); + return pro; + } + } + } + else if ( (u3_nul == r_dab) ) { + if ( (c3y == u3du(qn_dab)) && + (c3y == u3r_sing(cog, pn_dab)) ) { + return u3nt(u3_nul, + u3qc_peg(axe, 2), + u3k(qn_dab)); + } + else { + if ( c3y == u3qc_gor(cog, pn_dab) ) { + u3_noun pro; + + axe = u3qc_peg(axe, 3); + pro = _look_in(cog, l_dab, axe); + u3z(axe); + return pro; + } + else { + return u3_nul; + } + } + } + else { + if ( (c3y == u3du(qn_dab)) && + (c3y == u3r_sing(cog, pn_dab)) ) { + return u3nt(u3_nul, + u3qc_peg(axe, 2), + u3k(qn_dab)); + } + else { + if ( c3y == u3qc_gor(cog, pn_dab) ) { + u3_noun pro; + + axe = u3qc_peg(axe, 6); + pro = _look_in(cog, l_dab, axe); + u3z(axe); + return pro; + } + else { + u3_noun pro; + + axe = u3qc_peg(axe, 7); + pro = _look_in(cog, r_dab, axe); + u3z(axe); + return pro; + } + } + } + } + } + } + + + + + u3_noun + u3qf_look(u3_noun cog, + u3_noun dab) + { + return _look_in(cog, dab, 1); + } + u3_noun + u3wf_look(u3_noun cor) + { + u3_noun cog, dab; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &cog, u3x_sam_3, &dab, 0) ) { + return u3m_bail(c3__fail); + } else { + return u3qf_look(cog, dab); + } + } diff --git a/vere/pkg/noun/jets/f/loot.c b/vere/pkg/noun/jets/f/loot.c new file mode 100644 index 0000000..d1a7bef --- /dev/null +++ b/vere/pkg/noun/jets/f/loot.c @@ -0,0 +1,133 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + + +/* internals +*/ + static u3_noun + _loot_in(u3_noun cog, + u3_noun dom, + u3_atom axe) + { + if ( u3_nul == dom ) { + return u3_nul; + } + else { + u3_noun n_dom, l_dom, r_dom; + + u3r_trel(dom, &n_dom, &l_dom, &r_dom); + if ( c3n == u3du(n_dom) ) { + return u3m_bail(c3__fail); + } + else { + u3_noun qqn_dom = u3t(u3t(n_dom)); + u3_noun yep = u3qf_look(cog, qqn_dom); + + if ( (u3_nul == l_dom) && (u3_nul == r_dom) ) { + if ( u3_nul == yep ) { + return u3_nul; + } else { + u3_noun u_yep = u3t(yep); + u3_noun pro; + + pro = u3nt(u3_nul, u3qc_peg(axe, u3h(u_yep)), u3k(u3t(u_yep))); + u3z(yep); + return pro; + } + } + else if ( (u3_nul == l_dom) ) { + if ( u3_nul == yep ) { + u3_noun nax = u3qc_peg(axe, 3); + u3_noun pro; + + pro = _loot_in(cog, r_dom, nax); + u3z(nax); + return pro; + } + else { + u3_noun u_yep = u3t(yep); + u3_noun nax = u3qc_peg(axe, 2); + u3_noun pro; + + pro = u3nt(u3_nul, u3qc_peg(nax, u3h(u_yep)), u3k(u3t(u_yep))); + u3z(nax); + u3z(yep); + return pro; + } + } + else if ( (u3_nul == r_dom) ) { + if ( u3_nul == yep ) { + u3_noun nax = u3qc_peg(axe, 3); + u3_noun pro; + + pro = _loot_in(cog, l_dom, nax); + u3z(nax); + return pro; + } + else { + u3_noun u_yep = u3t(yep); + u3_noun nax = u3qc_peg(axe, 2); + u3_noun pro; + + pro = u3nt(u3_nul, u3qc_peg(nax, u3h(u_yep)), u3k(u3t(u_yep))); + u3z(nax); + u3z(yep); + return pro; + } + } + else { + if ( u3_nul == yep ) { + u3_noun nax = u3qc_peg(axe, 6); + u3_noun pey; + + pey = _loot_in(cog, l_dom, nax); + u3z(nax); + + if ( u3_nul != pey ) { + return pey; + } + else { + u3_noun nax = u3qc_peg(axe, 7); + u3_noun pro; + + pro = _loot_in(cog, r_dom, nax); + u3z(nax); + return pro; + } + } + else { + u3_noun u_yep = u3t(yep); + u3_noun nax = u3qc_peg(axe, 2); + u3_noun pro; + + pro = u3nt(u3_nul, u3qc_peg(nax, u3h(u_yep)), u3k(u3t(u_yep))); + u3z(nax); + u3z(yep); + return pro; + } + } + } + } + } + + u3_noun + u3qf_loot(u3_noun cog, + u3_noun dom) + { + return _loot_in(cog, dom, 1); + } + u3_noun + u3wf_loot(u3_noun cor) + { + u3_noun cog, dom; + + if ( c3n == u3r_mean(cor, u3x_sam_2, &cog, u3x_sam_3, &dom, 0) ) { + return u3m_bail(c3__fail); + } else { + return u3qf_loot(cog, dom); + } + } diff --git a/vere/pkg/noun/jets/f/ut_crop.c b/vere/pkg/noun/jets/f/ut_crop.c new file mode 100644 index 0000000..189564d --- /dev/null +++ b/vere/pkg/noun/jets/f/ut_crop.c @@ -0,0 +1,34 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3wfu_crop(u3_noun cor) +{ + u3_noun bat, sut, ref, van; + + if ( (c3n == u3r_mean(cor, u3x_sam, &ref, u3x_con, &van, 0)) + || (u3_none == (bat = u3r_at(u3x_bat, van))) + || (u3_none == (sut = u3r_at(u3x_sam, van))) ) + { + return u3m_bail(c3__fail); + } + else { + u3_weak vet = u3r_at(u3qfu_van_vet, van); + c3_m fun_m = 141 + c3__crop + ((!!vet) << 8); + u3_noun key = u3z_key_3(fun_m, sut, ref, bat); + u3_weak pro = u3z_find(u3z_memo_toss, key); + + if ( u3_none != pro ) { + u3z(key); + return pro; + } + else { + pro = u3n_nock_on(u3k(cor), u3k(u3x_at(u3x_bat, cor))); + return u3z_save(u3z_memo_toss, key, pro); + } + } +} diff --git a/vere/pkg/noun/jets/f/ut_fish.c b/vere/pkg/noun/jets/f/ut_fish.c new file mode 100644 index 0000000..e8acbd4 --- /dev/null +++ b/vere/pkg/noun/jets/f/ut_fish.c @@ -0,0 +1,35 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3wfu_fish(u3_noun cor) +{ + u3_noun bat, sut, axe, van; + + if ( (c3n == u3r_mean(cor, u3x_sam, &axe, u3x_con, &van, 0)) + || (c3n == u3ud(axe)) + || (u3_none == (bat = u3r_at(u3x_bat, van))) + || (u3_none == (sut = u3r_at(u3x_sam, van))) ) + { + return u3m_bail(c3__fail); + } + else { + u3_weak vet = u3r_at(u3qfu_van_vet, van); + c3_m fun_m = 141 + c3__fish + ((!!vet) << 8); + u3_noun key = u3z_key_3(fun_m, sut, axe, bat); + u3_weak pro = u3z_find(u3z_memo_toss, key); + + if ( u3_none != pro ) { + u3z(key); + return pro; + } + else { + pro = u3n_nock_on(u3k(cor), u3k(u3x_at(u3x_bat, cor))); + return u3z_save(u3z_memo_toss, key, pro); + } + } +} diff --git a/vere/pkg/noun/jets/f/ut_fuse.c b/vere/pkg/noun/jets/f/ut_fuse.c new file mode 100644 index 0000000..8e4e1a6 --- /dev/null +++ b/vere/pkg/noun/jets/f/ut_fuse.c @@ -0,0 +1,34 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3wfu_fuse(u3_noun cor) +{ + u3_noun bat, sut, ref, van; + + if ( (c3n == u3r_mean(cor, u3x_sam, &ref, u3x_con, &van, 0)) + || (u3_none == (bat = u3r_at(u3x_bat, van))) + || (u3_none == (sut = u3r_at(u3x_sam, van))) ) + { + return u3m_bail(c3__fail); + } + else { + u3_weak vet = u3r_at(u3qfu_van_vet, van); + c3_m fun_m = 141 + c3__fuse + ((!!vet) << 8); + u3_noun key = u3z_key_3(fun_m, sut, ref, bat); + u3_weak pro = u3z_find(u3z_memo_toss, key); + + if ( u3_none != pro ) { + u3z(key); + return pro; + } + else { + pro = u3n_nock_on(u3k(cor), u3k(u3x_at(u3x_bat, cor))); + return u3z_save(u3z_memo_toss, key, pro); + } + } +} diff --git a/vere/pkg/noun/jets/f/ut_mint.c b/vere/pkg/noun/jets/f/ut_mint.c new file mode 100644 index 0000000..618e729 --- /dev/null +++ b/vere/pkg/noun/jets/f/ut_mint.c @@ -0,0 +1,36 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3wfu_mint(u3_noun cor) +{ + u3_noun bat, sut, gol, gen, van; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &gol, + u3x_sam_3, &gen, + u3x_con, &van, 0)) + || (u3_none == (bat = u3r_at(u3x_bat, van))) + || (u3_none == (sut = u3r_at(u3x_sam, van))) ) + { + return u3m_bail(c3__fail); + } + else { + c3_m fun_m = 141 + c3__mint; + u3_noun vet = u3r_at(u3qfu_van_vet, van); + u3_noun key = u3z_key_5(fun_m, vet, sut, gol, gen, bat); + u3_weak pro = u3z_find(u3z_memo_toss, key); + + if ( u3_none != pro ) { + u3z(key); + return pro; + } + else { + pro = u3n_nock_on(u3k(cor), u3k(u3x_at(u3x_bat, cor))); + return u3z_save(u3z_memo_toss, key, pro); + } + } +} diff --git a/vere/pkg/noun/jets/f/ut_mull.c b/vere/pkg/noun/jets/f/ut_mull.c new file mode 100644 index 0000000..767ab3c --- /dev/null +++ b/vere/pkg/noun/jets/f/ut_mull.c @@ -0,0 +1,37 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3wfu_mull(u3_noun cor) +{ + u3_noun bat, sut, gol, dox, gen, van; + + if ( (c3n == u3r_mean(cor, u3x_sam_2, &gol, + u3x_sam_6, &dox, + u3x_sam_7, &gen, + u3x_con, &van, 0)) + || (u3_none == (bat = u3r_at(u3x_bat, van))) + || (u3_none == (sut = u3r_at(u3x_sam, van))) ) + { + return u3m_bail(c3__fail); + } + else { + u3_weak vet = u3r_at(u3qfu_van_vet, van); + c3_m fun_m = 141 + c3__mull + ((!!vet) << 8); + u3_noun key = u3z_key_5(fun_m, sut, gol, dox, gen, bat); + u3_weak pro = u3z_find(u3z_memo_toss, key); + + if ( u3_none != pro ) { + u3z(key); + return pro; + } + else { + pro = u3n_nock_on(u3k(cor), u3k(u3x_at(u3x_bat, cor))); + return u3z_save(u3z_memo_toss, key, pro); + } + } +} diff --git a/vere/pkg/noun/jets/f/ut_nest.c b/vere/pkg/noun/jets/f/ut_nest.c new file mode 100644 index 0000000..9bc53bf --- /dev/null +++ b/vere/pkg/noun/jets/f/ut_nest.c @@ -0,0 +1,50 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3wfu_nest_dext(u3_noun dext_core) +{ + u3_noun nest_in_core, nest_core; + u3_noun bat, sut, ref, van, seg, reg, gil; + + if ( (u3_none == (nest_in_core = u3r_at(3, dext_core))) + || (c3n == u3r_mean(nest_in_core, u3x_sam_2, &seg, + u3x_sam_6, ®, + u3x_sam_7, &gil, + u3x_con, &nest_core, 0)) + || (c3n == u3r_mean(nest_core, u3x_sam_3, &ref, + u3x_con, &van, 0)) + || (u3_none == (bat = u3r_at(u3x_bat, van))) + || (u3_none == (sut = u3r_at(u3x_sam, van))) ) + { + return u3m_bail(c3__fail); + } + else { + u3_weak vet = u3r_at(u3qfu_van_vet, van); + c3_m fun_m = 141 + c3__dext + ((!!vet) << 8); + u3_noun key = u3z_key_3(fun_m, sut, ref, bat); + u3_weak pro = u3z_find(u3z_memo_toss, key); + + if ( u3_none != pro ) { + u3z(key); + return pro; + } + else { + pro = u3n_nock_on(u3k(dext_core), u3k(u3x_at(u3x_bat, dext_core))); + + if ( ((c3y == pro) && (u3_nul == reg)) || + ((c3n == pro) && (u3_nul == seg)) ) + { + return u3z_save(u3z_memo_toss, key, pro); + } + else { + u3z(key); + return pro; + } + } + } +} diff --git a/vere/pkg/noun/jets/f/ut_rest.c b/vere/pkg/noun/jets/f/ut_rest.c new file mode 100644 index 0000000..87ff60f --- /dev/null +++ b/vere/pkg/noun/jets/f/ut_rest.c @@ -0,0 +1,34 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +u3_noun +u3wfu_rest(u3_noun cor) +{ + u3_noun bat, sut, leg, van; + + if ( (c3n == u3r_mean(cor, u3x_sam, &leg, u3x_con, &van, 0)) + || (u3_none == (bat = u3r_at(u3x_bat, van))) + || (u3_none == (sut = u3r_at(u3x_sam, van))) ) + { + return u3m_bail(c3__fail); + } + else { + u3_weak vet = u3r_at(u3qfu_van_vet, van); + c3_m fun_m = 141 + c3__rest + ((!!vet) << 8); + u3_noun key = u3z_key_3(fun_m, sut, leg, bat); + u3_weak pro = u3z_find(u3z_memo_toss, key); + + if ( u3_none != pro ) { + u3z(key); + return pro; + } + else { + pro = u3n_nock_on(u3k(cor), u3k(u3x_at(u3x_bat, cor))); + return u3z_save(u3z_memo_toss, key, pro); + } + } +} diff --git a/vere/pkg/noun/jets/g/plot.c b/vere/pkg/noun/jets/g/plot.c new file mode 100644 index 0000000..18c8ab0 --- /dev/null +++ b/vere/pkg/noun/jets/g/plot.c @@ -0,0 +1,364 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "noun.h" + +// XX optimize +// +static c3_w +_met_plat_m(c3_g a_g, c3_w fum_w, c3_w met_w, u3_atom vat) +{ + c3_w len_w, wor_w; + + { + u3i_slab sab_u; + u3i_slab_init(&sab_u, a_g, met_w); + u3r_chop(a_g, fum_w, met_w, 0, sab_u.buf_w, vat); + + len_w = sab_u.len_w; + + while ( len_w && !sab_u.buf_w[len_w - 1] ) { + len_w--; + } + + wor_w = !len_w ? 0 : sab_u.buf_w[len_w - 1]; + + u3i_slab_free(&sab_u); + } + + + if ( !len_w ) { + return 0; + } + + { + c3_w gal_w = len_w - 1; + c3_w daz_w = wor_w; + c3_y a_y = a_g; + + // inlined from u3r_met + if (a_y < 5) { + c3_y max_y = (1 << a_y) - 1; + c3_y gow_y = 5 - a_y; + + if (gal_w > ((UINT32_MAX - (32 + max_y)) >> gow_y)) { + return u3m_bail(c3__fail); + } + + return (gal_w << gow_y) + + ((c3_bits_word(daz_w) + max_y) + >> a_y); + } + + { + c3_y gow_y = (a_y - 5); + return ((gal_w + 1) + ((1 << gow_y) - 1)) >> gow_y; + } + } +} + +static c3_w +_met_list(c3_g a_g, + c3_w sep_w, + u3_noun b_p); + +static c3_w +_met_pair(c3_g* las_g, + c3_w sep_w, + u3_noun a_p, + u3_noun b_p, + c3_g* new_g) +{ + c3_g res_g, a_g; + + while ( c3y == u3a_is_cell(a_p) ) { + sep_w = _met_pair(las_g, sep_w, u3h(a_p), u3t(a_p), &res_g); + las_g = &res_g; + a_p = u3h(b_p); + b_p = u3t(b_p); + } + + if ( !_(u3a_is_cat(a_p)) || (a_p >= 32) ) { + return u3m_bail(c3__fail); + } + + a_g = (c3_g)a_p; + + if ( las_g && (a_g != *las_g) ) { + sep_w = u3qc_rig_s(*las_g, sep_w, a_g); // XX overflow + } + + *new_g = a_g; + return _met_list(a_g, sep_w, b_p); +} + +static c3_w +_met_list(c3_g a_g, + c3_w sep_w, + u3_noun b_p) +{ + if ( u3_nul != b_p ) { + c3_w met_w; + u3_noun i, t = b_p; + + do { + u3x_cell(t, &i, &t); + + // ?@ i.b.p + if ( c3y == u3a_is_atom(i) ) { + met_w = u3r_met(a_g, i); + sep_w += met_w; // XX overflow + } + else { + u3_noun i_i, t_i; + u3x_cell(i, &i_i, &t_i); + + // ?=(@ -.i.b.p) + if ( c3y == u3a_is_atom(i_i) ) { + if ( !_(u3a_is_cat(i_i)) ) { + return u3m_bail(c3__fail); + } + + met_w = (c3_w)i_i; + sep_w += met_w; // XX overflow + } + else { + u3_noun l, r; + c3_o cel_o = u3r_cell(i_i, &l, &r); + + // ?=([%c ~] -.i.b.p) + if ( (c3y == cel_o) && ('c' == l) && (u3_nul == r) ) { + u3_atom p_p_t_i = u3x_atom(u3h(u3h(t_i))); + u3_atom q_p_t_i = u3x_atom(u3t(u3h(t_i))); + u3_atom q_t_i = u3x_atom(u3t(t_i)); + + if ( !_(u3a_is_cat(p_p_t_i)) + || !_(u3a_is_cat(q_p_t_i)) + || !_(u3a_is_cat(q_t_i)) ) + { + return u3m_bail(c3__fail); + } + + met_w = (c3_w)q_p_t_i; + sep_w += met_w; // XX overflow + } + // ?=([%m ~] -.i.b.p) + else if ( (c3y == cel_o) && ('m' == l) && (u3_nul == r) ) { + u3_atom p_p_t_i = u3x_atom(u3h(u3h(t_i))); + u3_atom q_p_t_i = u3x_atom(u3t(u3h(t_i))); + u3_atom q_t_i = u3x_atom(u3t(t_i)); + + if ( !_(u3a_is_cat(p_p_t_i)) + || !_(u3a_is_cat(q_p_t_i)) + || !_(u3a_is_cat(q_t_i)) ) + { + return u3m_bail(c3__fail); + } + + met_w = _met_plat_m(a_g, (c3_w)p_p_t_i, (c3_w)q_p_t_i, q_t_i); + sep_w += met_w; // XX overflow + } + // ?=([%s ~] -.i.b.p) (assumed) + else { + c3_g new_g; + u3x_cell(t_i, &l, &r); + + sep_w = _met_pair(&a_g, sep_w, l, r, &new_g); + + if ( new_g != a_g ) { + sep_w = u3qc_rig_s(new_g, sep_w, a_g); // XX overflow + } + } + } + } + } + while ( u3_nul != t ); + } + + return sep_w; +} + +static c3_w +_fax_list(u3i_slab* sab_u, + c3_g a_g, + c3_w sep_w, + u3_noun b_p); + +static c3_w +_fax_pair(u3i_slab* sab_u, + c3_g* las_g, + c3_w sep_w, + u3_noun a_p, + u3_noun b_p, + c3_g* new_g) +{ + c3_g res_g, a_g; + + while ( c3y == u3a_is_cell(a_p) ) { + sep_w = _fax_pair(sab_u, las_g, sep_w, u3h(a_p), u3t(a_p), &res_g); + las_g = &res_g; + a_p = u3h(b_p); + b_p = u3t(b_p); + } + + if ( !_(u3a_is_cat(a_p)) || (a_p >= 32) ) { + return u3m_bail(c3__fail); + } + + a_g = (c3_g)a_p; + + if ( las_g && (a_g != *las_g) ) { + sep_w = u3qc_rig_s(*las_g, sep_w, a_g); // XX overflow + } + + *new_g = a_g; + return _fax_list(sab_u, a_g, sep_w, b_p); +} + +static c3_w +_fax_list(u3i_slab* sab_u, + c3_g a_g, + c3_w sep_w, + u3_noun b_p) +{ + if ( u3_nul != b_p ) { + c3_w met_w; + u3_noun i, t = b_p; + + do { + u3x_cell(t, &i, &t); + + // ?@ i.b.p + if ( c3y == u3a_is_atom(i) ) { + met_w = u3r_met(a_g, i); + + u3r_chop(a_g, 0, met_w, sep_w, sab_u->buf_w, i); + + sep_w += met_w; // XX overflow + } + else { + u3_noun i_i, t_i; + u3x_cell(i, &i_i, &t_i); + + // ?=(@ -.i.b.p) + if ( c3y == u3a_is_atom(i_i) ) { + if ( !_(u3a_is_cat(i_i)) ) { + return u3m_bail(c3__fail); + } + + met_w = (c3_w)i_i; + + u3r_chop(a_g, 0, met_w, sep_w, sab_u->buf_w, u3x_atom(t_i)); + + sep_w += met_w; // XX overflow + } + else { + u3_noun l, r; + c3_o cel_o = u3r_cell(i_i, &l, &r); + + // ?=([%c ~] -.i.b.p) + if ( (c3y == cel_o) && ('c' == l) && (u3_nul == r) ) { + u3_atom p_p_t_i = u3x_atom(u3h(u3h(t_i))); + u3_atom q_p_t_i = u3x_atom(u3t(u3h(t_i))); + u3_atom q_t_i = u3x_atom(u3t(t_i)); + + if ( !_(u3a_is_cat(p_p_t_i)) + || !_(u3a_is_cat(q_p_t_i)) + || !_(u3a_is_cat(q_t_i)) ) + { + return u3m_bail(c3__fail); + } + + met_w = (c3_w)q_p_t_i; + + u3r_chop(a_g, (c3_w)p_p_t_i, met_w, sep_w, sab_u->buf_w, q_t_i); + + sep_w += met_w; // XX overflow + } + // ?=([%m ~] -.i.b.p) + else if ( (c3y == cel_o) && ('m' == l) && (u3_nul == r) ) { + u3_atom p_p_t_i = u3x_atom(u3h(u3h(t_i))); + u3_atom q_p_t_i = u3x_atom(u3t(u3h(t_i))); + u3_atom q_t_i = u3x_atom(u3t(t_i)); + + if ( !_(u3a_is_cat(p_p_t_i)) + || !_(u3a_is_cat(q_p_t_i)) + || !_(u3a_is_cat(q_t_i)) ) + { + return u3m_bail(c3__fail); + } + + met_w = _met_plat_m(a_g, (c3_w)p_p_t_i, (c3_w)q_p_t_i, q_t_i); + + u3r_chop(a_g, (c3_w)p_p_t_i, met_w, sep_w, sab_u->buf_w, q_t_i); + + sep_w += met_w; // XX overflow + } + // ?=([%s ~] -.i.b.p) (assumed) + else { + c3_g new_g; + u3x_cell(t_i, &l, &r); + + sep_w = _fax_pair(sab_u, &a_g, sep_w, l, r, &new_g); + + if ( new_g != a_g ) { + sep_w = u3qc_rig_s(new_g, sep_w, a_g); // XX overflow + } + } + } + } + } + while ( u3_nul != t ); + } + + return sep_w; +} + +u3_noun +u3qg_plot_met(u3_noun a_p, u3_noun b_p) +{ + c3_g out_g; + c3_w sep_w = _met_pair(NULL, 0, a_p, b_p, &out_g); + + return u3nc(out_g, u3i_word(sep_w)); +} + +u3_noun +u3wg_plot_met(u3_noun cor) +{ + u3_noun a_p, b_p; + { + u3_noun sam = u3h(u3t(cor)); + a_p = u3h(sam); + b_p = u3t(sam); + } + return u3qg_plot_met(a_p, b_p); +} + +u3_noun +u3qg_plot_fax(u3_noun a_p, u3_noun b_p) +{ + c3_g out_g; + c3_w sep_w = _met_pair(NULL, 0, a_p, b_p, &out_g); + u3i_slab sab_u; + + u3i_slab_init(&sab_u, out_g, sep_w); + + _fax_pair(&sab_u, NULL, 0, a_p, b_p, &out_g); + + return u3nt(u3i_slab_mint(&sab_u), out_g, u3i_word(sep_w)); +} + +u3_noun +u3wg_plot_fax(u3_noun cor) +{ + u3_noun a_p, b_p; + { + u3_noun sam = u3h(u3t(cor)); + a_p = u3h(sam); + b_p = u3t(sam); + } + return u3qg_plot_fax(a_p, b_p); +} diff --git a/vere/pkg/noun/jets/i/lagoon.c b/vere/pkg/noun/jets/i/lagoon.c new file mode 100644 index 0000000..db7088b --- /dev/null +++ b/vere/pkg/noun/jets/i/lagoon.c @@ -0,0 +1,3315 @@ +/// @file + +#include "jets/q.h" +#include "jets/w.h" + +#include "c3/motes.h" + +#include "noun.h" +#include "softfloat.h" +#include "softblas.h" + +#include // for pow() +#include + +#define f16_ceil(a) f16_roundToInt( a, softfloat_round_max, false ) +#define f32_ceil(a) f32_roundToInt( a, softfloat_round_max, false ) +#define f64_ceil(a) f64_roundToInt( a, softfloat_round_max, false ) +#define f128M_ceil(a, b) f128M_roundToInt( a, softfloat_round_max, false, b ) + + union half { + float16_t h; + c3_w c; + }; + + union sing { + float32_t s; + c3_w c; + }; + + union doub { + float64_t d; + c3_d c; + }; + + union quad { + float128_t q; + c3_d c[2]; + }; + + // $?(%n %u %d %z %a) + static inline void + _set_rounding(c3_w a) + { + // We could use SoftBLAS set_rounding() to set the SoftFloat + // mode as well, but it's more explicit to do it here since + // we may use SoftFloat in any given Lagoon jet and we want + // you, dear developer, to see it set here. + switch ( a ) + { + default: + u3m_bail(c3__fail); + break; + // %n - near + case c3__n: + softfloat_roundingMode = softfloat_round_near_even; + softblas_roundingMode = 'n'; + break; + // %z - zero + case c3__z: + softfloat_roundingMode = softfloat_round_minMag; + softblas_roundingMode = 'z'; + break; + // %u - up + case c3__u: + softfloat_roundingMode = softfloat_round_max; + softblas_roundingMode = 'u'; + break; + // %d - down + case c3__d: + softfloat_roundingMode = softfloat_round_min; + softblas_roundingMode = 'd'; + break; + // %a - away + case c3__a: + softfloat_roundingMode = softfloat_round_near_maxMag; + softblas_roundingMode = 'a'; + break; + } + } + +/* length of shape = x * y * z * w * ... +*/ + static inline c3_d _get_length(u3_noun shape) + { + c3_d len = 1; + while (u3_nul != shape) { + len = len * u3x_atom(u3h(shape)); + shape = u3t(shape); + } + return len; + } + +/* get dims from shape as array [x y z w ...] +*/ + static inline c3_d* _get_dims(u3_noun shape) + { + u3_atom len = u3qb_lent(shape); + c3_d len_d = u3r_chub(0, len); + c3_d* dims = (c3_d*)u3a_malloc(len_d*sizeof(c3_d)); + for (c3_d i = 0; i < len_d; i++) { + dims[i] = u3r_chub(0, u3x_atom(u3h(shape))); + shape = u3t(shape); + } + u3z(len); + return dims; + } + +/* check consistency of array shape and bloq size + |= =ray + ^- ? + .= (roll shape.meta.ray ^mul) + (dec (met bloq.meta.ray data.ray)) +*/ + static inline c3_o _check(u3_noun ray) + { + // Calculate expected size. + u3_atom shp = u3h(u3h(ray)); // (reported) shape of ray, +4 + u3_atom blq = u3h(u3t(u3h(ray))); // block size of ray, +10 + u3_atom sin = _get_length(shp); // calculated length of ray + + // Calculate actual size. + u3_atom len = u3r_met(blq, u3t(ray)); // length of ray + u3_atom dex = u3qa_dec(len); // decrement length b/c of pinned 1 + + return __(sin == dex); + } + +/* add - axpy = 1*x+y +*/ + u3_noun + u3qi_la_add_i754(u3_noun x_data, + u3_noun y_data, + u3_noun shape, + u3_noun bloq + ) + { + // Fence on valid bloq size. + if (bloq < 4 || bloq > 7) { + return u3_none; + } + + // Unpack the data as a byte array. We assume total length < 2**64. + // len_x is length in base units + c3_d len_x = _get_length(shape); + + // syz_x is length in bytes + c3_d syz_x = len_x * pow(2, bloq-3); + + // x_bytes is the data array (w/o leading 0x1) + c3_y* x_bytes = (c3_y*)u3a_malloc(syz_x*sizeof(c3_y)); + u3r_bytes(0, syz_x, x_bytes, x_data); + + // y_bytes is the data array (w/ leading 0x1, skipped by ?axpy) + c3_y* y_bytes = (c3_y*)u3a_malloc((syz_x+1)*sizeof(c3_y)); + u3r_bytes(0, syz_x+1, y_bytes, y_data); + + // Switch on the block size. + switch (u3x_atom(bloq)) { + case 4: + haxpy(len_x, (float16_t){SB_REAL16_ONE}, (float16_t*)x_bytes, 1, (float16_t*)y_bytes, 1); + break; + + case 5: + saxpy(len_x, (float32_t){SB_REAL32_ONE}, (float32_t*)x_bytes, 1, (float32_t*)y_bytes, 1); + break; + + case 6: + daxpy(len_x, (float64_t){SB_REAL64_ONE}, (float64_t*)x_bytes, 1, (float64_t*)y_bytes, 1); + break; + + case 7: + qaxpy(len_x, (float128_t){SB_REAL128L_ONE,SB_REAL128U_ONE}, (float128_t*)x_bytes, 1, (float128_t*)y_bytes, 1); + break; + } + + // r_data is the result noun of [data] + u3_noun r_data = u3i_bytes((syz_x+1)*sizeof(c3_y), y_bytes); + + // Clean up and return. + u3a_free(x_bytes); + u3a_free(y_bytes); + + return r_data; + } + +/* sub - axpy = -1*y+x +*/ + u3_noun + u3qi_la_sub_i754(u3_noun x_data, + u3_noun y_data, + u3_noun shape, + u3_noun bloq + ) + { + // Fence on valid bloq size. + if (bloq < 4 || bloq > 7) { + return u3_none; + } + + // Unpack the data as a byte array. We assume total length < 2**64. + // len_x is length in base units + c3_d len_x = _get_length(shape); + + // syz_x is length in bytes + c3_d syz_x = len_x * pow(2, bloq-3); + + // x_bytes is the data array (w/o leading 0x1) + c3_y* x_bytes = (c3_y*)u3a_malloc(syz_x*sizeof(c3_y)); + u3r_bytes(0, syz_x, x_bytes, x_data); + + // y_bytes is the data array (w/ leading 0x1, skipped by ?axpy) + c3_y* y_bytes = (c3_y*)u3a_malloc((syz_x+1)*sizeof(c3_y)); + u3r_bytes(0, syz_x+1, y_bytes, y_data); + + // Switch on the block size. + switch (u3x_atom(bloq)) { + case 4: + haxpy(len_x, (float16_t){SB_REAL16_NEGONE}, (float16_t*)x_bytes, 1, (float16_t*)y_bytes, 1); + break; + + case 5: + saxpy(len_x, (float32_t){SB_REAL32_NEGONE}, (float32_t*)x_bytes, 1, (float32_t*)y_bytes, 1); + break; + + case 6: + daxpy(len_x, (float64_t){SB_REAL64_NEGONE}, (float64_t*)x_bytes, 1, (float64_t*)y_bytes, 1); + break; + + case 7: + qaxpy(len_x, (float128_t){SB_REAL128L_NEGONE,SB_REAL128U_NEGONE}, (float128_t*)x_bytes, 1, (float128_t*)y_bytes, 1); + break; + } + + // r_data is the result noun of [data] + u3_noun r_data = u3i_bytes((syz_x+1)*sizeof(c3_y), y_bytes); + + // Clean up and return. + u3a_free(x_bytes); + u3a_free(y_bytes); + + return r_data; + } + + +/* mul - x.*y + elementwise multiplication +*/ + u3_noun + u3qi_la_mul_i754(u3_noun x_data, + u3_noun y_data, + u3_noun shape, + u3_noun bloq) + { + // Fence on valid bloq size. + if (bloq < 4 || bloq > 7) { + return u3_none; + } + + // Unpack the data as a byte array. We assume total length < 2**64. + // len_x is length in base units + c3_d len_x = _get_length(shape); + + // syz_x is length in bytes + c3_d syz_x = len_x * pow(2, bloq-3); + + // x_bytes is the data array (w/o leading 0x1) + c3_y* x_bytes = (c3_y*)u3a_malloc(syz_x*sizeof(c3_y)); + u3r_bytes(0, syz_x, x_bytes, x_data); + + // y_bytes is the data array (w/ leading 0x1, skipped by ?axpy) + c3_y* y_bytes = (c3_y*)u3a_malloc((syz_x+1)*sizeof(c3_y)); + u3r_bytes(0, syz_x+1, y_bytes, y_data); + + // Switch on the block size. + switch (u3x_atom(bloq)) { + case 4: + for (c3_d i = 0; i < len_x; i++) { + ((float16_t*)y_bytes)[i] = f16_mul(((float16_t*)x_bytes)[i], ((float16_t*)y_bytes)[i]); + } + break; + + case 5: + for (c3_d i = 0; i < len_x; i++) { + ((float32_t*)y_bytes)[i] = f32_mul(((float32_t*)x_bytes)[i], ((float32_t*)y_bytes)[i]); + } + break; + + case 6: + for (c3_d i = 0; i < len_x; i++) { + ((float64_t*)y_bytes)[i] = f64_mul(((float64_t*)x_bytes)[i], ((float64_t*)y_bytes)[i]); + } + break; + + case 7: + for (c3_d i = 0; i < len_x; i++) { + f128M_mul(&(((float128_t*)y_bytes)[i]), &(((float128_t*)x_bytes)[i]), &(((float128_t*)y_bytes)[i])); + } + break; + } + + // r_data is the result noun of [data] + u3_noun r_data = u3i_bytes((syz_x+1)*sizeof(c3_y), y_bytes); + + // Clean up and return. + u3a_free(x_bytes); + u3a_free(y_bytes); + + return r_data; + } + +/* div - x/y + elementwise division +*/ + u3_noun + u3qi_la_div_i754(u3_noun x_data, + u3_noun y_data, + u3_noun shape, + u3_noun bloq) + { + // Fence on valid bloq size. + if (bloq < 4 || bloq > 7) { + return u3_none; + } + + // Unpack the data as a byte array. We assume total length < 2**64. + // len_x is length in base units + c3_d len_x = _get_length(shape); + + // syz_x is length in bytes + c3_d syz_x = len_x * pow(2, bloq-3); + + // x_bytes is the data array (w/o leading 0x1) + c3_y* x_bytes = (c3_y*)u3a_malloc(syz_x*sizeof(c3_y)); + u3r_bytes(0, syz_x, x_bytes, x_data); + + // y_bytes is the data array (w/ leading 0x1, skipped by ?axpy) + c3_y* y_bytes = (c3_y*)u3a_malloc((syz_x+1)*sizeof(c3_y)); + u3r_bytes(0, syz_x+1, y_bytes, y_data); + + // Switch on the block size. + switch (u3x_atom(bloq)) { + case 4: + for (c3_d i = 0; i < len_x; i++) { + ((float16_t*)y_bytes)[i] = f16_div(((float16_t*)x_bytes)[i], ((float16_t*)y_bytes)[i]); + } + break; + + case 5: + for (c3_d i = 0; i < len_x; i++) { + ((float32_t*)y_bytes)[i] = f32_div(((float32_t*)x_bytes)[i], ((float32_t*)y_bytes)[i]); + } + break; + + case 6: + for (c3_d i = 0; i < len_x; i++) { + ((float64_t*)y_bytes)[i] = f64_div(((float64_t*)x_bytes)[i], ((float64_t*)y_bytes)[i]); + } + break; + + case 7: + for (c3_d i = 0; i < len_x; i++) { + f128M_div(&(((float128_t*)y_bytes)[i]), &(((float128_t*)x_bytes)[i]), &(((float128_t*)y_bytes)[i])); + } + break; + } + + // r_data is the result noun of [data] + u3_noun r_data = u3i_bytes((syz_x+1)*sizeof(c3_y), y_bytes); + + // Clean up and return. + u3a_free(x_bytes); + u3a_free(y_bytes); + + return r_data; + } + +/* mod - x % y = x - r*floor(x/r) + remainder after division +*/ + u3_noun + u3qi_la_mod_i754(u3_noun x_data, + u3_noun y_data, + u3_noun shape, + u3_noun bloq) + { + // Fence on valid bloq size. + if (bloq < 4 || bloq > 7) { + return u3_none; + } + + // Unpack the data as a byte array. We assume total length < 2**64. + // len_x is length in base units + c3_d len_x = _get_length(shape); + + // syz_x is length in bytes + c3_d syz_x = len_x * pow(2, bloq-3); + + // x_bytes is the data array (w/o leading 0x1) + c3_y* x_bytes = (c3_y*)u3a_malloc(syz_x*sizeof(c3_y)); + u3r_bytes(0, syz_x, x_bytes, x_data); + + // y_bytes is the data array (w/ leading 0x1, skipped by ?axpy) + c3_y* y_bytes = (c3_y*)u3a_malloc((syz_x+1)*sizeof(c3_y)); + u3r_bytes(0, syz_x+1, y_bytes, y_data); + + // Switch on the block size. + switch (u3x_atom(bloq)) { + case 4: + for (c3_d i = 0; i < len_x; i++) { + float16_t x_val16 = ((float16_t*)x_bytes)[i]; + float16_t y_val16 = ((float16_t*)y_bytes)[i]; + // Perform division x/n + float16_t div_result16 = f16_div(x_val16, y_val16); + // Compute floor of the division result + c3_ds floor_result16 = f16_to_i64(div_result16, softfloat_round_minMag, false); + float16_t floor_float16 = i64_to_f16(floor_result16); + // Multiply n by floor(x/n) + float16_t mult_result16 = f16_mul(y_val16, floor_float16); + // Compute remainder: x - n * floor(x/n) + ((float16_t*)y_bytes)[i] = f16_sub(x_val16, mult_result16); + } + break; + + case 5: + for (c3_d i = 0; i < len_x; i++) { + float32_t x_val32 = ((float32_t*)x_bytes)[i]; + float32_t y_val32 = ((float32_t*)y_bytes)[i]; + // Perform division x/n + float32_t div_result32 = f32_div(x_val32, y_val32); + // Compute floor of the division result + c3_ds floor_result32 = f32_to_i64(div_result32, softfloat_round_minMag, false); + float32_t floor_float32 = i64_to_f32(floor_result32); + // Multiply n by floor(x/n) + float32_t mult_result32 = f32_mul(y_val32, floor_float32); + // Compute remainder: x - n * floor(x/n) + ((float32_t*)y_bytes)[i] = f32_sub(x_val32, mult_result32); + } + break; + + case 6: + for (c3_d i = 0; i < len_x; i++) { + float64_t x_val64 = ((float64_t*)x_bytes)[i]; + float64_t y_val64 = ((float64_t*)y_bytes)[i]; + // Perform division x/n + float64_t div_result64 = f64_div(x_val64, y_val64); + // Compute floor of the division result + c3_ds floor_result64 = f64_to_i64(div_result64, softfloat_round_minMag, false); + float64_t floor_float64 = i64_to_f64(floor_result64); + // Multiply n by floor(x/n) + float64_t mult_result64 = f64_mul(y_val64, floor_float64); + // Compute remainder: x - n * floor(x/n) + ((float64_t*)y_bytes)[i] = f64_sub(x_val64, mult_result64); + } + break; + + case 7: + for (c3_d i = 0; i < len_x; i++) { + float128_t x_val128 = ((float128_t*)x_bytes)[i]; + float128_t y_val128 = ((float128_t*)y_bytes)[i]; + // Perform division x/n + float128_t div_result128; + f128M_div((float128_t*)&x_val128, (float128_t*)&y_val128, (float128_t*)&div_result128); + // Compute floor of the division result + c3_ds floor_result128 = f128M_to_i64(&div_result128, softfloat_round_minMag, false); + float128_t floor_float128; + i64_to_f128M(floor_result128, &floor_float128); + // Multiply n by floor(x/n) + float128_t mult_result128; + f128M_mul(((float128_t*)&y_val128), ((float128_t*)&floor_float128), ((float128_t*)&mult_result128)); + // Compute remainder: x - n * floor(x/n) + f128M_sub(((float128_t*)&x_val128), ((float128_t*)&mult_result128), &(((float128_t*)y_bytes)[i])); + } + break; + } + + // r_data is the result noun of [data] + u3_noun r_data = u3i_bytes((syz_x+1)*sizeof(c3_y), y_bytes); + + // Clean up and return. + u3a_free(x_bytes); + u3a_free(y_bytes); + + return r_data; + } + +/* cumsum - x[0] + x[1] + ... x[n] +*/ + u3_noun + u3qi_la_cumsum_i754(u3_noun x_data, + u3_noun shape, + u3_noun bloq) + { + // Fence on valid bloq size. + if (bloq < 4 || bloq > 7) { + return u3_none; + } + + // Unpack the data as a byte array. We assume total length < 2**64. + // len_x is length in base units + c3_d len_x = _get_length(shape); + + // syz_x is length in bytes + c3_d syz_x = len_x * pow(2, bloq-3); + + // y_bytes is the data array (w/ leading 0x1, skipped by for range) + c3_y* x_bytes = (c3_y*)u3a_malloc((syz_x+1)*sizeof(c3_y)); + u3r_bytes(0, syz_x+1, x_bytes, x_data); + + u3_noun r_data; + + // Switch on the block size. + switch (u3x_atom(bloq)) { + case 4: { + float16_t sum16[2]; + sum16[0] = (float16_t){SB_REAL16_ZERO}; + for (c3_d i = len_x; i > 0; i--) { + sum16[0] = f16_add(sum16[0], ((float16_t*)x_bytes)[i-1]); + } + sum16[1].v = 0x1; + r_data = u3i_bytes((2+1)*sizeof(c3_y), (c3_y*)sum16); + break;} + + case 5: { + float32_t sum32[2]; + sum32[0] = (float32_t){SB_REAL32_ZERO}; + for (c3_d i = len_x; i > 0; i--) { + sum32[0] = f32_add(sum32[0], ((float32_t*)x_bytes)[i-1]); + } + sum32[1].v = 0x1; + r_data = u3i_bytes((4+1)*sizeof(c3_y), (c3_y*)sum32); + break;} + + case 6: { + float64_t sum64[2]; + sum64[0] = (float64_t){SB_REAL64_ZERO}; + for (c3_d i = len_x; i > 0; i--) { + sum64[0] = f64_add(sum64[0], ((float64_t*)x_bytes)[i-1]); + } + sum64[1].v = 0x1; + r_data = u3i_bytes((8+1)*sizeof(c3_y), (c3_y*)sum64); + break;} + + case 7: { + float128_t sum128[2]; + sum128[0] = (float128_t){SB_REAL128L_ZERO, SB_REAL128U_ZERO}; + for (c3_d i = len_x; i > 0; i--) { + f128M_add(&(sum128[0]), &(((float128_t*)x_bytes)[i-1]), &(sum128[0])); + } + sum128[1] = (float128_t){0x1, 0x0}; + r_data = u3i_bytes((16+1)*sizeof(c3_y), (c3_y*)sum128); + break;} + } + + // Clean up and return. + u3a_free(x_bytes); + + return r_data; + } + +/* argmin - argmin(x) +*/ + u3_noun + u3qi_la_argmin_i754(u3_noun x_data, + u3_noun shape, + u3_noun bloq) + { + // Fence on valid bloq size. + if (bloq < 4 || bloq > 7) { + return u3_none; + } + + // Unpack the data as a byte array. We assume total length < 2**64. + // len_x is length in base units + c3_d len_x = _get_length(shape); + + // syz_x is length in bytes + c3_d syz_x = len_x * pow(2, bloq-3); + + // x_bytes is the data array (w/o leading 0x1, which doesn't matter here) + c3_y* x_bytes = (c3_y*)u3a_malloc(syz_x*sizeof(c3_y)); + u3r_bytes(0, syz_x, x_bytes, x_data); + + c3_w min_idx = 0; + + // Switch on the block size. + switch (u3x_atom(bloq)) { + case 4: { + float16_t min_val16 = ((float16_t*)x_bytes)[0]; + for (c3_d i = 0; i < len_x; i++) { + if(f16_lt(((float16_t*)x_bytes)[i], min_val16)) { + min_val16 = ((float16_t*)x_bytes)[i]; + min_idx = (len_x - i - 1); + } + } + break;} + + case 5: { + float32_t min_val32 = ((float32_t*)x_bytes)[0]; + for (c3_d i = 0; i < len_x; i++) { + if(f32_lt(((float32_t*)x_bytes)[i], min_val32)) { + min_val32 = ((float32_t*)x_bytes)[i]; + min_idx = (len_x - i - 1); + } + } + break;} + + case 6: { + float64_t min_val64 = ((float64_t*)x_bytes)[0]; + for (c3_d i = 0; i < len_x; i++) { + if(f64_lt(((float64_t*)x_bytes)[i], min_val64)) { + min_val64 = ((float64_t*)x_bytes)[i]; + min_idx = (len_x - i - 1); + } + } + break;} + + case 7: { + float128_t min_val128 = ((float128_t*)x_bytes)[0]; + for (c3_d i = 0; i < len_x; i++) { + if(f128M_lt(&(((float128_t*)x_bytes)[i]), &min_val128)) { + min_val128 = *f128M_min(&min_val128, &((float128_t*)x_bytes)[i]); + min_idx = (len_x - i - 1); + } + } + break;} + } + + u3_noun r_data = u3i_chub(min_idx); + + return r_data; + } + +/* argmax - argmax(x) +*/ + u3_noun + u3qi_la_argmax_i754(u3_noun x_data, + u3_noun shape, + u3_noun bloq) + { + // Fence on valid bloq size. + if (bloq < 4 || bloq > 7) { + return u3_none; + } + + // Unpack the data as a byte array. We assume total length < 2**64. + // len_x is length in base units + c3_d len_x = _get_length(shape); + + // syz_x is length in bytes + c3_d syz_x = len_x * pow(2, bloq-3); + + // x_bytes is the data array (w/o leading 0x1, which doesn't matter here) + c3_y* x_bytes = (c3_y*)u3a_malloc(syz_x*sizeof(c3_y)); + u3r_bytes(0, syz_x, x_bytes, x_data); + + c3_w max_idx = 0; + + // Switch on the block size. + switch (u3x_atom(bloq)) { + case 4: { + float16_t max_val16 = ((float16_t*)x_bytes)[0]; + for (c3_d i = 0; i < len_x; i++) { + if(f16_gt(((float16_t*)x_bytes)[i], max_val16)) { + max_val16 = ((float16_t*)x_bytes)[i]; + max_idx = (len_x - i - 1); + } + } + break;} + + case 5: { + float32_t max_val32 = ((float32_t*)x_bytes)[0]; + for (c3_d i = 0; i < len_x; i++) { + if(f32_gt(((float32_t*)x_bytes)[i], max_val32)) { + max_val32 = ((float32_t*)x_bytes)[i]; + max_idx = (len_x - i - 1); + } + } + break;} + + case 6: { + float64_t max_val64 = ((float64_t*)x_bytes)[0]; + for (c3_d i = 0; i < len_x; i++) { + if(f64_gt(((float64_t*)x_bytes)[i], max_val64)) { + max_val64 = ((float64_t*)x_bytes)[i]; + max_idx = (len_x - i - 1); + } + } + break;} + + case 7: { + float128_t max_val128 = ((float128_t*)x_bytes)[0]; + for (c3_d i = 0; i < len_x; i++) { + if(f128M_gt(&(((float128_t*)x_bytes)[i]), &max_val128)) { + max_val128 = *f128M_max(&max_val128, &((float128_t*)x_bytes)[i]); + max_idx = (len_x - i - 1); + } + } + break;} + } + + u3_noun r_data = u3i_chub(max_idx); + + return r_data; + } + +/* ravel - x -> ~[x[0], x[1], ... x[n]] + entire nd-array busted out as a linear list +*/ + u3_noun + u3qi_la_ravel_i754(u3_noun x_data, + u3_noun shape, + u3_noun bloq) + { + // Fence on valid bloq size. + if (bloq < 4 || bloq > 7) { + return u3_none; + } + + // Unpack the data as a byte array. We assume total length < 2**64. + // len_x is length in base units + c3_d len_x = _get_length(shape); + + // syz_x is length in bytes + c3_d syz_x = len_x * pow(2, bloq-3); + + // x_bytes is the data array (w/o leading 0x1) + c3_y* x_bytes = (c3_y*)u3a_malloc(syz_x*sizeof(c3_y)); + u3r_bytes(0, syz_x, x_bytes, x_data); + + // r_data is the result noun of [data] + u3_noun r_data = u3_nul; + + // Switch on the block size. + switch (u3x_atom(bloq)) { + case 4: + for (c3_d i = 0; i < len_x; i++) { + float16_t x_val16 = ((float16_t*)x_bytes)[i]; + r_data = u3nc(u3i_word(x_val16.v), r_data); + } + break; + + case 5: + for (c3_d i = 0; i < len_x; i++) { + float32_t x_val32 = ((float32_t*)x_bytes)[i]; + r_data = u3nc(u3i_word(x_val32.v), r_data); + } + break; + + case 6: + for (c3_d i = 0; i < len_x; i++) { + float64_t x_val64 = ((float64_t*)x_bytes)[i]; + r_data = u3nc(u3i_chub(x_val64.v), r_data); + } + break; + + case 7: + for (c3_d i = 0; i < len_x; i++) { + float128_t x_val128 = ((float128_t*)x_bytes)[i]; + r_data = u3nc(u3i_chubs(2, (c3_d*)&(x_val128.v)), r_data); + } + break; + } + + // Clean up and return. + u3a_free(x_bytes); + + return r_data; + } + +/* min - min(x,y) +*/ + u3_noun + u3qi_la_min_i754(u3_noun x_data, + u3_noun shape, + u3_noun bloq) + { + // Fence on valid bloq size. + if (bloq < 4 || bloq > 7) { + return u3_none; + } + + // Unpack the data as a byte array. We assume total length < 2**64. + // len_x is length in base units + c3_d len_x = _get_length(shape); + + // syz_x is length in bytes + c3_d syz_x = len_x * pow(2, bloq-3); + + // x_bytes is the data array (w/ leading 0x1, skipped by for range) + c3_y* x_bytes = (c3_y*)u3a_malloc((syz_x+1)*sizeof(c3_y)); + u3r_bytes(0, syz_x+1, x_bytes, x_data); + + u3_noun r_data; + + // Switch on the block size. + switch (u3x_atom(bloq)) { + case 4: { + float16_t min_val16 = ((float16_t*)x_bytes)[0]; + for (c3_d i = 0; i < len_x; i++) { + min_val16 = f16_min(min_val16, ((float16_t*)x_bytes)[i]); + } + float16_t r16[2]; + r16[0] = min_val16; + r16[1].v = 0x1; + r_data = u3i_bytes((2+1)*sizeof(c3_y), (c3_y*)r16); + break;} + + case 5: { + float32_t min_val32 = ((float32_t*)x_bytes)[0]; + for (c3_d i = 0; i < len_x; i++) { + min_val32 = f32_min(min_val32, ((float32_t*)x_bytes)[i]); + } + float32_t r32[2]; + r32[0] = min_val32; + r32[1].v = 0x1; + r_data = u3i_bytes((4+1)*sizeof(c3_y), (c3_y*)r32); + break;} + + case 6: { + float64_t min_val64 = ((float64_t*)x_bytes)[0]; + for (c3_d i = 0; i < len_x; i++) { + min_val64 = f64_min(min_val64, ((float64_t*)x_bytes)[i]); + } + float64_t r64[2]; + r64[0] = min_val64; + r64[1].v = 0x1; + r_data = u3i_bytes((8+1)*sizeof(c3_y), (c3_y*)r64); + break;} + + case 7: { + float128_t min_val128 = ((float128_t*)x_bytes)[0]; + for (c3_d i = 0; i < len_x; i++) { + min_val128 = *f128M_min(&min_val128, &((float128_t*)x_bytes)[i]); + } + float128_t r128[2]; + r128[0] = min_val128; + r128[1] = (float128_t){0x1, 0x0}; + r_data = u3i_bytes((16+1)*sizeof(c3_y), (c3_y*)r128); + break;} + } + + // Clean up and return. + u3a_free(x_bytes); + + return r_data; + } + +/* max - max(x,y) +*/ + u3_noun + u3qi_la_max_i754(u3_noun x_data, + u3_noun shape, + u3_noun bloq) + { + // Fence on valid bloq size. + if (bloq < 4 || bloq > 7) { + return u3_none; + } + + // Unpack the data as a byte array. We assume total length < 2**64. + // len_x is length in base units + c3_d len_x = _get_length(shape); + + // syz_x is length in bytes + c3_d syz_x = len_x * pow(2, bloq-3); + + // x_bytes is the data array (w/ leading 0x1, skipped by for range) + c3_y* x_bytes = (c3_y*)u3a_malloc((syz_x+1)*sizeof(c3_y)); + u3r_bytes(0, syz_x+1, x_bytes, x_data); + + u3_noun r_data; + + // Switch on the block size. + switch (u3x_atom(bloq)) { + case 4: { + float16_t max_val16 = ((float16_t*)x_bytes)[0]; + for (c3_d i = 0; i < len_x; i++) { + max_val16 = f16_max(max_val16, ((float16_t*)x_bytes)[i]); + } + float16_t r16[2]; + r16[0] = max_val16; + r16[1].v = 0x1; + r_data = u3i_bytes((2+1)*sizeof(c3_y), (c3_y*)r16); + break;} + + case 5: { + float32_t max_val32 = ((float32_t*)x_bytes)[0]; + for (c3_d i = 0; i < len_x; i++) { + max_val32 = f32_max(max_val32, ((float32_t*)x_bytes)[i]); + } + float32_t r32[2]; + r32[0] = max_val32; + r32[1].v = 0x1; + r_data = u3i_bytes((4+1)*sizeof(c3_y), (c3_y*)r32); + break;} + + case 6: { + float64_t max_val64 = ((float64_t*)x_bytes)[0]; + for (c3_d i = 0; i < len_x; i++) { + max_val64 = f64_max(max_val64, ((float64_t*)x_bytes)[i]); + } + float64_t r64[2]; + r64[0] = max_val64; + r64[1].v = 0x1; + r_data = u3i_bytes((8+1)*sizeof(c3_y), (c3_y*)r64); + break;} + + case 7: { + float128_t max_val128 = ((float128_t*)x_bytes)[0]; + for (c3_d i = 0; i < len_x; i++) { + max_val128 = *f128M_max(&max_val128, &((float128_t*)x_bytes)[i]); + } + float128_t r128[2]; + r128[0] = max_val128; + r128[1] = (float128_t){0x1, 0x0}; + r_data = u3i_bytes((16+1)*sizeof(c3_y), (c3_y*)r128); + break;} + } + + // Clean up and return. + u3a_free(x_bytes); + + return r_data; + } + +/* abs - |x| +*/ + u3_noun + u3qi_la_abs_i754(u3_noun x_data, + u3_noun shape, + u3_noun bloq) + { + // Fence on valid bloq size. + if (bloq < 4 || bloq > 7) { + return u3_none; + } + + // Unpack the data as a byte array. We assume total length < 2**64. + // len_x is length in base units + c3_d len_x = _get_length(shape); + + // syz_x is length in bytes + c3_d syz_x = len_x * pow(2, bloq-3); + + // x_bytes is the data array (w/ leading 0x1, skipped by for range) + c3_y* x_bytes = (c3_y*)u3a_malloc((syz_x+1)*sizeof(c3_y)); + u3r_bytes(0, syz_x+1, x_bytes, x_data); + + // Switch on the block size. + switch (u3x_atom(bloq)) { + case 4: + for (c3_d i = 0; i < len_x; i++) { + ((float16_t*)x_bytes)[i] = f16_abs(((float16_t*)x_bytes)[i]); + } + break; + + case 5: + for (c3_d i = 0; i < len_x; i++) { + ((float32_t*)x_bytes)[i] = f32_abs(((float32_t*)x_bytes)[i]); + } + break; + + case 6: + for (c3_d i = 0; i < len_x; i++) { + ((float64_t*)x_bytes)[i] = f64_abs(((float64_t*)x_bytes)[i]); + } + break; + + case 7: + for (c3_d i = 0; i < len_x; i++) { + ((float128_t*)x_bytes)[i] = f128_abs(((float128_t*)x_bytes)[i]); + } + break; + } + + // r_data is the result noun of [data] + u3_noun r_data = u3i_bytes((syz_x+1)*sizeof(c3_y), x_bytes); + + // Clean up and return. + u3a_free(x_bytes); + + return r_data; + } + +/* gth - x > y +*/ + u3_noun + u3qi_la_gth_i754(u3_noun x_data, + u3_noun y_data, + u3_noun shape, + u3_noun bloq) + { + // Fence on valid bloq size. + if (bloq < 4 || bloq > 7) { + return u3_none; + } + + // Unpack the data as a byte array. We assume total length < 2**64. + // len_x is length in base units + c3_d len_x = _get_length(shape); + + // syz_x is length in bytes + c3_d syz_x = len_x * pow(2, bloq-3); + + // x_bytes is the data array (w/o leading 0x1) + c3_y* x_bytes = (c3_y*)u3a_malloc(syz_x*sizeof(c3_y)); + u3r_bytes(0, syz_x, x_bytes, x_data); + + // y_bytes is the data array (w/ leading 0x1, skipped by ?axpy) + c3_y* y_bytes = (c3_y*)u3a_malloc((syz_x+1)*sizeof(c3_y)); + u3r_bytes(0, syz_x+1, y_bytes, y_data); + + // Switch on the block size. + switch (u3x_atom(bloq)) { + case 4: + for (c3_d i = 0; i < len_x; i++) { + float16_t x_val16 = ((float16_t*)x_bytes)[i]; + float16_t y_val16 = ((float16_t*)y_bytes)[i]; + ((float16_t*)y_bytes)[i] = f16_gt(x_val16, y_val16) ? (float16_t){SB_REAL16_ONE} : (float16_t){SB_REAL16_ZERO}; + } + break; + + case 5: + for (c3_d i = 0; i < len_x; i++) { + float32_t x_val32 = ((float32_t*)x_bytes)[i]; + float32_t y_val32 = ((float32_t*)y_bytes)[i]; + ((float32_t*)y_bytes)[i] = f32_gt(x_val32, y_val32) ? (float32_t){SB_REAL32_ONE} : (float32_t){SB_REAL32_ZERO}; + } + break; + + case 6: + for (c3_d i = 0; i < len_x; i++) { + float64_t x_val64 = ((float64_t*)x_bytes)[i]; + float64_t y_val64 = ((float64_t*)y_bytes)[i]; + ((float64_t*)y_bytes)[i] = f64_gt(x_val64, y_val64) ? (float64_t){SB_REAL64_ONE} : (float64_t){SB_REAL64_ZERO}; + } + break; + + case 7: + for (c3_d i = 0; i < len_x; i++) { + float128_t x_val128 = ((float128_t*)x_bytes)[i]; + float128_t y_val128 = ((float128_t*)y_bytes)[i]; + ((float128_t*)y_bytes)[i] = f128M_gt(((float128_t*)&x_val128), ((float128_t*)&y_val128)) ? (float128_t){SB_REAL128L_ONE, SB_REAL128U_ONE} : (float128_t){SB_REAL128L_ZERO, SB_REAL128U_ZERO}; + } + break; + } + + // r_data is the result noun of [data] + u3_noun r_data = u3i_bytes((syz_x+1)*sizeof(c3_y), y_bytes); + + // Clean up and return. + u3a_free(x_bytes); + u3a_free(y_bytes); + + return r_data; + } + +/* gte - x > y +*/ + u3_noun + u3qi_la_gte_i754(u3_noun x_data, + u3_noun y_data, + u3_noun shape, + u3_noun bloq) + { + // Fence on valid bloq size. + if (bloq < 4 || bloq > 7) { + return u3_none; + } + + // Unpack the data as a byte array. We assume total length < 2**64. + // len_x is length in base units + c3_d len_x = _get_length(shape); + + // syz_x is length in bytes + c3_d syz_x = len_x * pow(2, bloq-3); + + // x_bytes is the data array (w/o leading 0x1) + c3_y* x_bytes = (c3_y*)u3a_malloc(syz_x*sizeof(c3_y)); + u3r_bytes(0, syz_x, x_bytes, x_data); + + // y_bytes is the data array (w/ leading 0x1, skipped by ?axpy) + c3_y* y_bytes = (c3_y*)u3a_malloc((syz_x+1)*sizeof(c3_y)); + u3r_bytes(0, syz_x+1, y_bytes, y_data); + + // Switch on the block size. + switch (u3x_atom(bloq)) { + case 4: + for (c3_d i = 0; i < len_x; i++) { + float16_t x_val16 = ((float16_t*)x_bytes)[i]; + float16_t y_val16 = ((float16_t*)y_bytes)[i]; + ((float16_t*)y_bytes)[i] = f16_ge(x_val16, y_val16) ? (float16_t){SB_REAL16_ONE} : (float16_t){SB_REAL16_ZERO}; + } + break; + + case 5: + for (c3_d i = 0; i < len_x; i++) { + float32_t x_val32 = ((float32_t*)x_bytes)[i]; + float32_t y_val32 = ((float32_t*)y_bytes)[i]; + ((float32_t*)y_bytes)[i] = f32_ge(x_val32, y_val32) ? (float32_t){SB_REAL32_ONE} : (float32_t){SB_REAL32_ZERO}; + } + break; + + case 6: + for (c3_d i = 0; i < len_x; i++) { + float64_t x_val64 = ((float64_t*)x_bytes)[i]; + float64_t y_val64 = ((float64_t*)y_bytes)[i]; + ((float64_t*)y_bytes)[i] = f64_ge(x_val64, y_val64) ? (float64_t){SB_REAL64_ONE} : (float64_t){SB_REAL64_ZERO}; + } + break; + + case 7: + for (c3_d i = 0; i < len_x; i++) { + float128_t x_val128 = ((float128_t*)x_bytes)[i]; + float128_t y_val128 = ((float128_t*)y_bytes)[i]; + ((float128_t*)y_bytes)[i] = f128M_ge(((float128_t*)&x_val128), ((float128_t*)&y_val128)) ? (float128_t){SB_REAL128L_ONE, SB_REAL128U_ONE} : (float128_t){SB_REAL128L_ZERO, SB_REAL128U_ZERO}; + } + break; + } + + // r_data is the result noun of [data] + u3_noun r_data = u3i_bytes((syz_x+1)*sizeof(c3_y), y_bytes); + + // Clean up and return. + u3a_free(x_bytes); + u3a_free(y_bytes); + + return r_data; + } + +/* lth - x > y +*/ + u3_noun + u3qi_la_lth_i754(u3_noun x_data, + u3_noun y_data, + u3_noun shape, + u3_noun bloq) + { + // Fence on valid bloq size. + if (bloq < 4 || bloq > 7) { + return u3_none; + } + + // Unpack the data as a byte array. We assume total length < 2**64. + // len_x is length in base units + c3_d len_x = _get_length(shape); + + // syz_x is length in bytes + c3_d syz_x = len_x * pow(2, bloq-3); + + // x_bytes is the data array (w/o leading 0x1) + c3_y* x_bytes = (c3_y*)u3a_malloc(syz_x*sizeof(c3_y)); + u3r_bytes(0, syz_x, x_bytes, x_data); + + // y_bytes is the data array (w/ leading 0x1, skipped by ?axpy) + c3_y* y_bytes = (c3_y*)u3a_malloc((syz_x+1)*sizeof(c3_y)); + u3r_bytes(0, syz_x+1, y_bytes, y_data); + + // Switch on the block size. + switch (u3x_atom(bloq)) { + case 4: + for (c3_d i = 0; i < len_x; i++) { + float16_t x_val16 = ((float16_t*)x_bytes)[i]; + float16_t y_val16 = ((float16_t*)y_bytes)[i]; + ((float16_t*)y_bytes)[i] = f16_lt(x_val16, y_val16) ? (float16_t){SB_REAL16_ONE} : (float16_t){SB_REAL16_ZERO}; + } + break; + + case 5: + for (c3_d i = 0; i < len_x; i++) { + float32_t x_val32 = ((float32_t*)x_bytes)[i]; + float32_t y_val32 = ((float32_t*)y_bytes)[i]; + ((float32_t*)y_bytes)[i] = f32_lt(x_val32, y_val32) ? (float32_t){SB_REAL32_ONE} : (float32_t){SB_REAL32_ZERO}; + } + break; + + case 6: + for (c3_d i = 0; i < len_x; i++) { + float64_t x_val64 = ((float64_t*)x_bytes)[i]; + float64_t y_val64 = ((float64_t*)y_bytes)[i]; + ((float64_t*)y_bytes)[i] = f64_lt(x_val64, y_val64) ? (float64_t){SB_REAL64_ONE} : (float64_t){SB_REAL64_ZERO}; + } + break; + + case 7: + for (c3_d i = 0; i < len_x; i++) { + float128_t x_val128 = ((float128_t*)x_bytes)[i]; + float128_t y_val128 = ((float128_t*)y_bytes)[i]; + ((float128_t*)y_bytes)[i] = f128M_lt(((float128_t*)&x_val128), ((float128_t*)&y_val128)) ? (float128_t){SB_REAL128L_ONE, SB_REAL128U_ONE} : (float128_t){SB_REAL128L_ZERO, SB_REAL128U_ZERO}; + } + break; + } + + // r_data is the result noun of [data] + u3_noun r_data = u3i_bytes((syz_x+1)*sizeof(c3_y), y_bytes); + + // Clean up and return. + u3a_free(x_bytes); + u3a_free(y_bytes); + + return r_data; + } + +/* lte - x > y +*/ + u3_noun + u3qi_la_lte_i754(u3_noun x_data, + u3_noun y_data, + u3_noun shape, + u3_noun bloq) + { + // Fence on valid bloq size. + if (bloq < 4 || bloq > 7) { + return u3_none; + } + + // Unpack the data as a byte array. We assume total length < 2**64. + // len_x is length in base units + c3_d len_x = _get_length(shape); + + // syz_x is length in bytes + c3_d syz_x = len_x * pow(2, bloq-3); + + // x_bytes is the data array (w/o leading 0x1) + c3_y* x_bytes = (c3_y*)u3a_malloc(syz_x*sizeof(c3_y)); + u3r_bytes(0, syz_x, x_bytes, x_data); + + // y_bytes is the data array (w/ leading 0x1, skipped by ?axpy) + c3_y* y_bytes = (c3_y*)u3a_malloc((syz_x+1)*sizeof(c3_y)); + u3r_bytes(0, syz_x+1, y_bytes, y_data); + + // Switch on the block size. + switch (u3x_atom(bloq)) { + case 4: + for (c3_d i = 0; i < len_x; i++) { + float16_t x_val16 = ((float16_t*)x_bytes)[i]; + float16_t y_val16 = ((float16_t*)y_bytes)[i]; + ((float16_t*)y_bytes)[i] = f16_le(x_val16, y_val16) ? (float16_t){SB_REAL16_ONE} : (float16_t){SB_REAL16_ZERO}; + } + break; + + case 5: + for (c3_d i = 0; i < len_x; i++) { + float32_t x_val32 = ((float32_t*)x_bytes)[i]; + float32_t y_val32 = ((float32_t*)y_bytes)[i]; + ((float32_t*)y_bytes)[i] = f32_le(x_val32, y_val32) ? (float32_t){SB_REAL32_ONE} : (float32_t){SB_REAL32_ZERO}; + } + break; + + case 6: + for (c3_d i = 0; i < len_x; i++) { + float64_t x_val64 = ((float64_t*)x_bytes)[i]; + float64_t y_val64 = ((float64_t*)y_bytes)[i]; + ((float64_t*)y_bytes)[i] = f64_le(x_val64, y_val64) ? (float64_t){SB_REAL64_ONE} : (float64_t){SB_REAL64_ZERO}; + } + break; + + case 7: + for (c3_d i = 0; i < len_x; i++) { + float128_t x_val128 = ((float128_t*)x_bytes)[i]; + float128_t y_val128 = ((float128_t*)y_bytes)[i]; + ((float128_t*)y_bytes)[i] = f128M_le(((float128_t*)&x_val128), ((float128_t*)&y_val128)) ? (float128_t){SB_REAL128L_ONE, SB_REAL128U_ONE} : (float128_t){SB_REAL128L_ZERO, SB_REAL128U_ZERO}; + } + break; + } + + // r_data is the result noun of [data] + u3_noun r_data = u3i_bytes((syz_x+1)*sizeof(c3_y), y_bytes); + + // Clean up and return. + u3a_free(x_bytes); + u3a_free(y_bytes); + + return r_data; + } + +/* adds - axpy = 1*x+[n] +*/ + u3_noun + u3qi_la_adds_i754(u3_noun x_data, + u3_noun n, + u3_noun shape, + u3_noun bloq) + { + // Fence on valid bloq size. + if (bloq < 4 || bloq > 7) { + return u3_none; + } + + // Unpack the data as a byte array. We assume total length < 2**64. + // len_x is length in base units + c3_d len_x = _get_length(shape); + + // syz_x is length in bytes + c3_d syz_x = len_x * pow(2, bloq-3); + + // x_bytes is the data array (w/o leading 0x1) + c3_y* x_bytes = (c3_y*)u3a_malloc(syz_x*sizeof(c3_y)); + u3r_bytes(0, syz_x, x_bytes, x_data); + + // y_bytes is the data array (w/ leading 0x1, skipped by ?axpy) + c3_y* y_bytes = (c3_y*)u3a_malloc((syz_x+1)*sizeof(c3_y)); + + float16_t n16; + float32_t n32; + float64_t n64; + float128_t n128; + + // Switch on the block size. We assume that n fits in the target block size; Hoon typecheck should prevent. + switch (u3x_atom(bloq)) { + case 4: + u3r_bytes(0, 2, (c3_y*)&(n16.v), n); + // set y to [n] + for (c3_d i = 0; i < len_x; i++) { + ((float16_t*)y_bytes)[i] = n16; + } + haxpy(len_x, (float16_t){SB_REAL16_ONE}, (float16_t*)x_bytes, 1, (float16_t*)y_bytes, 1); + break; + + case 5: + u3r_bytes(0, 4, (c3_y*)&(n32.v), n); + // set y to [n] + for (c3_d i = 0; i < len_x; i++) { + ((float32_t*)y_bytes)[i] = n32; + } + saxpy(len_x, (float32_t){SB_REAL32_ONE}, (float32_t*)x_bytes, 1, (float32_t*)y_bytes, 1); + break; + + case 6: + u3r_bytes(0, 8, (c3_y*)&(n64.v), n); + // set y to [n] + for (c3_d i = 0; i < len_x; i++) { + ((float64_t*)y_bytes)[i] = n64; + } + daxpy(len_x, (float64_t){SB_REAL64_ONE}, (float64_t*)x_bytes, 1, (float64_t*)y_bytes, 1); + break; + + case 7: + u3r_bytes(0, 16, (c3_y*)&(n128.v[0]), n); + // set y to [n] + for (c3_d i = 0; i < len_x; i++) { + ((float128_t*)y_bytes)[i] = (float128_t){n128.v[0], n128.v[1]}; + } + qaxpy(len_x, (float128_t){SB_REAL128L_ONE,SB_REAL128U_ONE}, (float128_t*)x_bytes, 1, (float128_t*)y_bytes, 1); + break; + } + + // r_data is the result noun of [data] + y_bytes[syz_x] = 0x1; // pin head + u3_noun r_data = u3i_bytes((syz_x+1)*sizeof(c3_y), y_bytes); + + // Clean up and return. + u3a_free(x_bytes); + u3a_free(y_bytes); + + return r_data; + } + +/* subs - axpy = -1*[n]+x +*/ + u3_noun + u3qi_la_subs_i754(u3_noun x_data, + u3_noun n, + u3_noun shape, + u3_noun bloq) + { + // Fence on valid bloq size. + if (bloq < 4 || bloq > 7) { + return u3_none; + } + + // Unpack the data as a byte array. We assume total length < 2**64. + // len_x is length in base units + c3_d len_x = _get_length(shape); + + // syz_x is length in bytes + c3_d syz_x = len_x * pow(2, bloq-3); + + // x_bytes is the data array (w/ leading 0x1, skipped by ?axpy) + c3_y* x_bytes = (c3_y*)u3a_malloc((syz_x+1)*sizeof(c3_y)); + u3r_bytes(0, syz_x, x_bytes, x_data); + + // y_bytes is the data array (w/o leading 0x1) + c3_y* y_bytes = (c3_y*)u3a_malloc(syz_x*sizeof(c3_y)); + + float16_t n16; + float32_t n32; + float64_t n64; + float128_t n128; + + // Switch on the block size. We assume that n fits in the target block size; Hoon typecheck should prevent. + switch (u3x_atom(bloq)) { + case 4: + u3r_bytes(0, 2, (c3_y*)&(n16.v), n); + // set y to [n] + for (c3_d i = 0; i < len_x; i++) { + ((float16_t*)y_bytes)[i] = n16; + } + haxpy(len_x, (float16_t){SB_REAL16_NEGONE}, (float16_t*)y_bytes, 1, (float16_t*)x_bytes, 1); + break; + + case 5: + u3r_bytes(0, 4, (c3_y*)&(n32.v), n); + // set y to [n] + for (c3_d i = 0; i < len_x; i++) { + ((float32_t*)y_bytes)[i] = n32; + } + saxpy(len_x, (float32_t){SB_REAL32_NEGONE}, (float32_t*)y_bytes, 1, (float32_t*)x_bytes, 1); + break; + + case 6: + u3r_bytes(0, 8, (c3_y*)&(n64.v), n); + // set y to [n] + for (c3_d i = 0; i < len_x; i++) { + ((float64_t*)y_bytes)[i] = n64; + } + daxpy(len_x, (float64_t){SB_REAL64_NEGONE}, (float64_t*)y_bytes, 1, (float64_t*)x_bytes, 1); + break; + + case 7: + u3r_bytes(0, 16, (c3_y*)&(n128.v[0]), n); + // set y to [n] + for (c3_d i = 0; i < len_x; i++) { + ((float128_t*)y_bytes)[i] = (float128_t){n128.v[0], n128.v[1]}; + } + qaxpy(len_x, (float128_t){SB_REAL128L_NEGONE,SB_REAL128U_NEGONE}, (float128_t*)y_bytes, 1, (float128_t*)x_bytes, 1); + break; + } + + // r_data is the result noun of [data] + x_bytes[syz_x] = 0x1; // pin head + u3_noun r_data = u3i_bytes((syz_x+1)*sizeof(c3_y), x_bytes); + + // Clean up and return. + u3a_free(x_bytes); + u3a_free(y_bytes); + + return r_data; + } + +/* muls - ?scal n * x + elementwise multiplication +*/ + u3_noun + u3qi_la_muls_i754(u3_noun x_data, + u3_noun n, + u3_noun shape, + u3_noun bloq) + { + // Fence on valid bloq size. + if (bloq < 4 || bloq > 7) { + return u3_none; + } + + // Unpack the data as a byte array. We assume total length < 2**64. + // len_x is length in base units + c3_d len_x = _get_length(shape); + + // syz_x is length in bytes + c3_d syz_x = len_x * pow(2, bloq-3); + + // x_bytes is the data array (w/ leading 0x1, skipped by ?axpy) + c3_y* x_bytes = (c3_y*)u3a_malloc((syz_x+1)*sizeof(c3_y)); + u3r_bytes(0, syz_x, x_bytes, x_data); + x_bytes[syz_x] = 0x1; // pin head + + float16_t n16; + float32_t n32; + float64_t n64; + float128_t n128; + + // Switch on the block size. + switch (u3x_atom(bloq)) { + case 4: + u3r_bytes(0, 2, (c3_y*)&(n16.v), n); + hscal(len_x, n16, (float16_t*)x_bytes, 1); + break; + + case 5: + u3r_bytes(0, 4, (c3_y*)&(n32.v), n); + sscal(len_x, n32, (float32_t*)x_bytes, 1); + break; + + case 6: + u3r_bytes(0, 8, (c3_y*)&(n64.v), n); + dscal(len_x, n64, (float64_t*)x_bytes, 1); + break; + + case 7: + u3r_bytes(0, 16, (c3_y*)&(n128.v[0]), n); + qscal(len_x, n128, (float128_t*)x_bytes, 1); + break; + } + + // r_data is the result noun of [data] + u3_noun r_data = u3i_bytes((syz_x+1)*sizeof(c3_y), x_bytes); + + // Clean up and return. + u3a_free(x_bytes); + + return r_data; + } + +/* divs - ?scal 1/n * x + elementwise division +*/ + u3_noun + u3qi_la_divs_i754(u3_noun x_data, + u3_noun n, + u3_noun shape, + u3_noun bloq) + { + // Fence on valid bloq size. + if (bloq < 4 || bloq > 7) { + return u3_none; + } + + // Unpack the data as a byte array. We assume total length < 2**64. + // len_x is length in base units + c3_d len_x = _get_length(shape); + + // syz_x is length in bytes + c3_d syz_x = len_x * pow(2, bloq-3); + + // x_bytes is the data array (w/ leading 0x1, skipped by ?axpy) + c3_y* x_bytes = (c3_y*)u3a_malloc((syz_x+1)*sizeof(c3_y)); + u3r_bytes(0, syz_x, x_bytes, x_data); + x_bytes[syz_x] = 0x1; // pin head + + float16_t in16; + float32_t in32; + float64_t in64; + float128_t in128; + + // Switch on the block size. + switch (u3x_atom(bloq)) { + case 4: + // XX note that in16 is doing double duty here + u3r_bytes(0, 2, (c3_y*)&(in16.v), n); + in16 = f16_div((float16_t){SB_REAL16_ONE}, in16); + hscal(len_x, in16, (float16_t*)x_bytes, 1); + break; + + case 5: + // XX note that in32 is doing double duty here + u3r_bytes(0, 4, (c3_y*)&(in32.v), n); + in32 = f32_div((float32_t){SB_REAL32_ONE}, in32); + sscal(len_x, in32, (float32_t*)x_bytes, 1); + break; + + case 6: + // XX note that in64 is doing double duty here + u3r_bytes(0, 8, (c3_y*)&(in64.v), n); + in64 = f64_div((float64_t){SB_REAL64_ONE}, in64); + dscal(len_x, in64, (float64_t*)x_bytes, 1); + break; + + case 7: + // XX note that in128 is doing double duty here + u3r_bytes(0, 16, (c3_y*)&(in128.v[0]), n); + f128M_div(&((float128_t){SB_REAL128L_ONE,SB_REAL128U_ONE}), &in128, &in128); + qscal(len_x, in128, (float128_t*)x_bytes, 1); + break; + } + + // r_data is the result noun of [data] + u3_noun r_data = u3i_bytes((syz_x+1)*sizeof(c3_y), x_bytes); + + // Clean up and return. + u3a_free(x_bytes); + + return r_data; + } + +/* mods - x % [n] = x - r*floor(x/r) + remainder after scalar division +*/ + u3_noun + u3qi_la_mods_i754(u3_noun x_data, + u3_noun n, + u3_noun shape, + u3_noun bloq) + { + // Fence on valid bloq size. + if (bloq < 4 || bloq > 7) { + return u3_none; + } + + // Unpack the data as a byte array. We assume total length < 2**64. + // len_x is length in base units + c3_d len_x = _get_length(shape); + + // syz_x is length in bytes + c3_d syz_x = len_x * pow(2, bloq-3); + + // x_bytes is the data array (w/ leading 0x1, skipped by ?axpy) + // we reuse it for results for parsimony + c3_y* x_bytes = (c3_y*)u3a_malloc((syz_x+1)*sizeof(c3_y)); + u3r_bytes(0, syz_x+1, x_bytes, x_data); + + float16_t n16, in16; + float32_t n32, in32; + float64_t n64, in64; + float128_t n128, in128; + + // Switch on the block size. + switch (u3x_atom(bloq)) { + case 4: + u3r_bytes(0, 2, (c3_y*)&(n16.v), n); + in16 = f16_div((float16_t){SB_REAL16_ONE}, n16); + + for (c3_d i = 0; i < len_x; i++) { + float16_t x_val16 = ((float16_t*)x_bytes)[i]; + // Perform division x/n + float16_t div_result16 = f16_mul(in16, x_val16); + // Compute floor of the division result + c3_ds floor_result16 = f16_to_i64(div_result16, softfloat_round_minMag, false); + float16_t floor_float16 = i64_to_f16(floor_result16); + // Multiply n by floor(x/n) + float16_t mult_result16 = f16_mul(n16, floor_float16); + // Compute remainder: x - n * floor(x/n) + ((float16_t*)x_bytes)[i] = f16_sub(x_val16, mult_result16); + } + break; + + case 5: + u3r_bytes(0, 4, (c3_y*)&(n32.v), n); + in32 = f32_div((float32_t){SB_REAL32_ONE}, n32); + + for (c3_d i = 0; i < len_x; i++) { + float32_t x_val32 = ((float32_t*)x_bytes)[i]; + // Perform division x/n + float32_t div_result32 = f32_mul(in32, x_val32); + // Compute floor of the division result + c3_ds floor_result32 = f32_to_i64(div_result32, softfloat_round_minMag, false); + float32_t floor_float32 = i64_to_f32(floor_result32); + // Multiply n by floor(x/n) + float32_t mult_result32 = f32_mul(n32, floor_float32); + // Compute remainder: x - n * floor(x/n) + ((float32_t*)x_bytes)[i] = f32_sub(x_val32, mult_result32); + } + break; + + case 6: + u3r_bytes(0, 8, (c3_y*)&(n64.v), n); + in64 = f64_div((float64_t){SB_REAL64_ONE}, n64); + + for (c3_d i = 0; i < len_x; i++) { + float64_t x_val64 = ((float64_t*)x_bytes)[i]; + // Perform division x/n + float64_t div_result64 = f64_mul(in64, x_val64); + // Compute floor of the division result + c3_ds floor_result64 = f64_to_i64(div_result64, softfloat_round_minMag, false); + float64_t floor_float64 = i64_to_f64(floor_result64); + // Multiply n by floor(x/n) + float64_t mult_result64 = f64_mul(n64, floor_float64); + // Compute remainder: x - n * floor(x/n) + ((float64_t*)x_bytes)[i] = f64_sub(x_val64, mult_result64); + } + break; + + case 7: + u3r_bytes(0, 16, (c3_y*)&(n128.v[0]), n); + f128M_div(&((float128_t){SB_REAL128L_ONE,SB_REAL128U_ZERO}), &n128, &in128); + + for (c3_d i = 0; i < len_x; i++) { + float128_t x_val128 = ((float128_t*)x_bytes)[i]; + // Perform division x/n + float128_t div_result128; + f128M_mul((float128_t*)&in128, (float128_t*)&x_val128, (float128_t*)&div_result128); + // Compute floor of the division result + c3_ds floor_result128 = f128M_to_i64(&div_result128, softfloat_round_minMag, false); + float128_t floor_float128; + i64_to_f128M(floor_result128, &floor_float128); + // Multiply n by floor(x/n) + float128_t mult_result128; + f128M_mul(((float128_t*)&n128), ((float128_t*)&floor_float128), ((float128_t*)&mult_result128)); + // Compute remainder: x - n * floor(x/n) + f128M_sub(((float128_t*)&x_val128), ((float128_t*)&mult_result128), &(((float128_t*)x_bytes)[i])); + } + break; + } + + // r_data is the result noun of [data] + u3_noun r_data = u3i_bytes((syz_x+1)*sizeof(c3_y), x_bytes); + + // Clean up and return. + u3a_free(x_bytes); + + return r_data; + } + +/* dot - ?dot = x · y +*/ + u3_noun + u3qi_la_dot_i754(u3_noun x_data, + u3_noun y_data, + u3_noun shape, + u3_noun bloq) + { + // Fence on valid bloq size. + if (bloq < 4 || bloq > 7) { + return u3_none; + } + + // Unpack the data as a byte array. We assume total length < 2**64. + // len_x is length in base units + c3_d len_x = _get_length(shape); + + // syz_x is length in bytes + c3_d syz_x = len_x * pow(2, bloq-3); + + // x_bytes is the data array (w/o leading 0x1) + c3_y* x_bytes = (c3_y*)u3a_malloc(syz_x*sizeof(c3_y)); + u3r_bytes(0, syz_x, x_bytes, x_data); + + // y_bytes is the data array (w/ leading 0x1, skipped by ?axpy) + c3_y* y_bytes = (c3_y*)u3a_malloc((syz_x+1)*sizeof(c3_y)); + u3r_bytes(0, syz_x+1, y_bytes, y_data); + + u3_noun r_data; + + // Switch on the block size. + switch (u3x_atom(bloq)) { + case 4: { + float16_t r16[2]; + r16[0] = hdot(len_x, (float16_t*)x_bytes, 1, (float16_t*)y_bytes, 1); + r16[1].v = 0x1; + r_data = u3i_bytes((2+1)*sizeof(c3_y), (c3_y*)r16); + break;} + + case 5: { + float32_t r32[2]; + r32[0] = sdot(len_x, (float32_t*)x_bytes, 1, (float32_t*)y_bytes, 1); + r32[1].v = 0x1; + r_data = u3i_bytes((4+1)*sizeof(c3_y), (c3_y*)r32); + break;} + + case 6: { + float64_t r64[2]; + r64[0] = ddot(len_x, (float64_t*)x_bytes, 1, (float64_t*)y_bytes, 1); + r64[1].v = 0x1; + r_data = u3i_bytes((8+1)*sizeof(c3_y), (c3_y*)r64); + break;} + + case 7: { + float128_t r128[2]; + r128[0] = qdot(len_x, (float128_t*)x_bytes, 1, (float128_t*)y_bytes, 1); + r128[1] = (float128_t){0x1, 0x0}; + r_data = u3i_bytes((16+1)*sizeof(c3_y), (c3_y*)r128); + break;} + } + + // Clean up and return. + u3a_free(x_bytes); + u3a_free(y_bytes); + + return r_data; + } + +/* diag - diag(x) +*/ + u3_noun + u3qi_la_diag(u3_noun x_data, + u3_noun shape, + u3_noun bloq) + { + // Fence on valid bloq size. + if (bloq < 4 || bloq > 7) { + return u3_none; + } + // Assert length of dims is 2. + if (u3qb_lent(shape) != 2) { + return u3m_bail(c3__exit); + } + // Unpack shape into an array of dimensions. + c3_d *dims = _get_dims(shape); + if (dims[0] != dims[1]) { + return u3m_bail(c3__exit); + } + + // Unpack the data as a byte array. We assume total length < 2**64. + c3_d len_x = _get_length(shape); + c3_d syz_x = len_x * pow(2, bloq - 3); + c3_d wyd = pow(2, bloq - 3); + c3_y* x_bytes = (c3_y*)u3a_malloc((syz_x+1)*sizeof(c3_y)); + u3r_bytes(0, syz_x+1, x_bytes, x_data); + c3_d syz_y = wyd * dims[1]; + c3_y* y_bytes = (c3_y*)u3a_malloc((syz_y+1)*sizeof(c3_y)); + + u3_noun r_data; + + // Grab the index at i*n_x+j in bytes; put it at j. + for (c3_d i = 0; i < dims[1]; i++) { + // Scan across whole field width. + for (c3_y k = 0; k < wyd; k++) { + y_bytes[i*wyd+k] = x_bytes[(i*dims[0]+i)*wyd+k]; + } + } + y_bytes[syz_y] = 0x1; // pin head + + // Unpack the result back into a noun. + r_data = u3i_bytes((syz_y+1)*sizeof(c3_y), y_bytes); + + u3a_free(x_bytes); + u3a_free(y_bytes); + u3a_free(dims); + + return r_data; + } + +/* transpose - x' +*/ + u3_noun + u3qi_la_transpose(u3_noun x_data, + u3_noun shape, + u3_noun bloq) + { + // Assert length of dims is 2. + if (u3qb_lent(shape) != 2) { + return u3m_bail(c3__exit); + } + // Unpack shape into an array of dimensions. + c3_d *dims = _get_dims(shape); + + // Unpack the data as a byte array. We assume total length < 2**64. + c3_d len_x = _get_length(shape); + c3_d syz_x = len_x * pow(2, bloq - 3); + c3_d wyd = pow(2, bloq - 3); + c3_y* x_bytes = (c3_y*)u3a_malloc((syz_x+1)*sizeof(c3_y)); + u3r_bytes(0, syz_x+1, x_bytes, x_data); + c3_y* y_bytes = (c3_y*)u3a_malloc((syz_x+1)*sizeof(c3_y)); + + u3_noun r_data; + + // Grab the index at i*n_x+j in bytes; put it at j. + for (c3_d i = 0; i < dims[1]; i++) { + for (c3_d j = 0; j < dims[0]; j++) { + // Scan across whole field width. + for (c3_y k = 0; k < wyd; k++) { + y_bytes[(j*dims[1]+i)*wyd+k] = x_bytes[(i*dims[0]+j)*wyd+k]; + } + } + } + y_bytes[syz_x] = 0x1; // pin head + + // Unpack the result back into a noun. + r_data = u3i_bytes((syz_x+1)*sizeof(c3_y), y_bytes); + + u3a_free(x_bytes); + u3a_free(y_bytes); + u3a_free(dims); + + return r_data; + } + +/* linspace - [a a+(b-a)/n ... b] +*/ + u3_noun + u3qi_la_linspace_i754(u3_noun a, + u3_noun b, + u3_noun n, + u3_noun bloq) + { + // Fence on valid bloq size. + if (bloq < 4 || bloq > 7) { + return u3_none; + } + + u3_noun r_data; + + switch (u3x_atom(bloq)) { + case 4: { + float16_t a16, b16; + u3r_bytes(0, 2, (c3_y*)&(a16.v), a); + u3r_bytes(0, 2, (c3_y*)&(b16.v), b); + float16_t span16 = f16_sub(b16, a16); + float16_t interval16 = f16_div(span16, i32_to_f16(n-1)); + c3_y* x_bytes16 = (c3_y*)u3a_malloc((n*2+1)*sizeof(c3_y)); + for (c3_d i = 1; i < n-1; i++) { + ((float16_t*)x_bytes16)[i] = f16_add(a16, f16_mul(i32_to_f16(i), interval16)); + } + // Assign in reverse order so that n=1 case is correctly left-hand bound. + ((float16_t*)x_bytes16)[n-1] = b16; + ((float16_t*)x_bytes16)[0] = a16; + x_bytes16[n*2] = 0x1; // pin head + r_data = u3i_bytes((n*2+1)*sizeof(c3_y), x_bytes16); + u3a_free(x_bytes16); + break;} + + case 5: { + float32_t a32, b32; + u3r_bytes(0, 4, (c3_y*)&(a32.v), a); + u3r_bytes(0, 4, (c3_y*)&(b32.v), b); + float32_t span32 = f32_sub(b32, a32); + float32_t interval32 = f32_div(span32, i32_to_f32(n-1)); + c3_y* x_bytes32 = (c3_y*)u3a_malloc((n*4+1)*sizeof(c3_y)); + for (c3_d i = 1; i < n-1; i++) { + ((float32_t*)x_bytes32)[i] = f32_add(a32, f32_mul(i32_to_f32(i), interval32)); + } + ((float32_t*)x_bytes32)[n-1] = b32; + ((float32_t*)x_bytes32)[0] = a32; + x_bytes32[n*4] = 0x1; // pin head + r_data = u3i_bytes((n*4+1)*sizeof(c3_y), x_bytes32); + u3a_free(x_bytes32); + break;} + + case 6: { + float64_t a64, b64; + u3r_bytes(0, 8, (c3_y*)&(a64.v), a); + u3r_bytes(0, 8, (c3_y*)&(b64.v), b); + float64_t span64 = f64_sub(b64, a64); + float64_t interval64 = f64_div(span64, i32_to_f64(n-1)); + c3_y* x_bytes64 = (c3_y*)u3a_malloc((n*8+1)*sizeof(c3_y)); + for (c3_d i = 1; i < n-1; i++) { + ((float64_t*)x_bytes64)[i] = f64_add(a64, f64_mul(i32_to_f64(i), interval64)); + } + ((float64_t*)x_bytes64)[n-1] = b64; + ((float64_t*)x_bytes64)[0] = a64; + x_bytes64[n*8] = 0x1; // pin head + r_data = u3i_bytes((n*8+1)*sizeof(c3_y), x_bytes64); + u3a_free(x_bytes64); + break;} + + case 7: { + float128_t a128, b128; + u3r_bytes(0, 16, (c3_y*)&(a128.v[0]), a); + u3r_bytes(0, 16, (c3_y*)&(b128.v[0]), b); + float128_t span128; + f128M_sub(&b128, &a128, &span128); + float128_t interval128; + float128_t n128; + i32_to_f128M(n-1, &n128); + f128M_div(&span128, &n128, &interval128); + c3_y* x_bytes128 = (c3_y*)u3a_malloc((n*16+1)*sizeof(c3_y)); + float128_t i128; + for (c3_d i = 1; i < n-1; i++) { + i32_to_f128M(i, &i128); + f128M_mul(&i128, &interval128, &((float128_t*)x_bytes128)[i]); + f128M_add(&a128, &((float128_t*)x_bytes128)[i], &((float128_t*)x_bytes128)[i]); + } + ((float128_t*)x_bytes128)[n-1] = b128; + ((float128_t*)x_bytes128)[0] = a128; + x_bytes128[n*16] = 0x1; // pin head + r_data = u3i_bytes((n*16+1)*sizeof(c3_y), x_bytes128); + u3a_free(x_bytes128); + break;} + } + + return r_data; + } + +/* range - [a a+d ... b] +*/ + u3_noun + u3qi_la_range_i754(u3_noun a, + u3_noun b, + u3_noun d, + u3_noun bloq) + { + // Fence on valid bloq size. + if (bloq < 4 || bloq > 7) { + return u3_none; + } + + u3_noun r_data; + + switch (u3x_atom(bloq)) { + case 4: { + float16_t a16, b16, interval16; + u3r_bytes(0, 2, (c3_y*)&(a16.v), a); + u3r_bytes(0, 2, (c3_y*)&(b16.v), b); + u3r_bytes(0, 2, (c3_y*)&(interval16.v), d); + c3_d n16 = f16_to_i64(f16_ceil(f16_div(f16_sub(b16, a16), interval16)), softfloat_round_minMag, false); + c3_y* x_bytes16 = (c3_y*)u3a_malloc(((n16+1)*2)*sizeof(c3_y)); + ((float16_t*)x_bytes16)[0] = a16; + for (c3_d i = 1; i < n16; i++) { + ((float16_t*)x_bytes16)[i] = f16_add(a16, f16_mul(i32_to_f16(i), interval16)); + } + ((float16_t*)x_bytes16)[n16].v = 0x1; // pin head + r_data = u3i_bytes(((n16+1)*2)*sizeof(c3_y), x_bytes16); + u3a_free(x_bytes16); + break;} + + case 5: { + float32_t a32, b32, interval32; + u3r_bytes(0, 4, (c3_y*)&(a32.v), a); + u3r_bytes(0, 4, (c3_y*)&(b32.v), b); + u3r_bytes(0, 4, (c3_y*)&(interval32.v), d); + c3_d n32 = f32_to_i64(f32_ceil(f32_div(f32_sub(b32, a32), interval32)), softfloat_round_minMag, false); + c3_y* x_bytes32 = (c3_y*)u3a_malloc(((n32+1)*4)*sizeof(c3_y)); + ((float32_t*)x_bytes32)[0] = a32; + for (c3_d i = 1; i < n32; i++) { + ((float32_t*)x_bytes32)[i] = f32_add(a32, f32_mul(i32_to_f32(i), interval32)); + } + ((float32_t*)x_bytes32)[n32].v = 0x1; // pin head + r_data = u3i_bytes(((n32+1)*4)*sizeof(c3_y), x_bytes32); + u3a_free(x_bytes32); + break;} + + case 6: { + float64_t a64, b64, interval64; + u3r_bytes(0, 8, (c3_y*)&(a64.v), a); + u3r_bytes(0, 8, (c3_y*)&(b64.v), b); + u3r_bytes(0, 8, (c3_y*)&(interval64.v), d); + c3_d n64 = f64_to_i64(f64_ceil(f64_div(f64_sub(b64, a64), interval64)), softfloat_round_minMag, false); + c3_y* x_bytes64 = (c3_y*)u3a_malloc(((n64+1)*8)*sizeof(c3_y)); + ((float64_t*)x_bytes64)[0] = a64; + for (c3_d i = 1; i < n64; i++) { + ((float64_t*)x_bytes64)[i] = f64_add(a64, f64_mul(i32_to_f64(i), interval64)); + } + ((float64_t*)x_bytes64)[n64].v = 0x1; // pin head + r_data = u3i_bytes(((n64+1)*8)*sizeof(c3_y), x_bytes64); + u3a_free(x_bytes64); + break;} + + case 7: { + float128_t a128, b128, interval128; + u3r_bytes(0, 16, (c3_y*)&(a128.v[0]), a); + u3r_bytes(0, 16, (c3_y*)&(b128.v[0]), b); + u3r_bytes(0, 16, (c3_y*)&(interval128.v[0]), d); + float128_t tmp; + f128M_sub(&b128, &a128, &tmp); + f128M_div(&tmp, &interval128, &tmp); + f128M_ceil(&tmp, &tmp); + c3_d n128 = f128M_to_i64(&tmp, softfloat_round_minMag, false); + c3_y* x_bytes128 = (c3_y*)u3a_malloc(((n128+1)*16)*sizeof(c3_y)); + float128_t i128; + ((float128_t*)x_bytes128)[0] = a128; + for (c3_d i = 1; i < n128; i++) { + i32_to_f128M(i, &i128); + f128M_mul(&i128, &interval128, &((float128_t*)x_bytes128)[i]); + f128M_add(&a128, &((float128_t*)x_bytes128)[i], &((float128_t*)x_bytes128)[i]); + } + ((float128_t*)x_bytes128)[n128].v[0] = 0x1; // pin head + ((float128_t*)x_bytes128)[n128].v[1] = 0x0; // pin head + r_data = u3i_bytes(((n128+1)*16)*sizeof(c3_y), x_bytes128); + u3a_free(x_bytes128); + break;} + } + + return r_data; + } + +/* trace - tr(x) +*/ + u3_noun + u3qi_la_trace_i754(u3_noun x_data, + u3_noun shape, + u3_noun bloq) + { + u3_noun d_data = u3qi_la_diag(x_data, shape, bloq); + c3_d len_x0 = _get_dims(shape)[0]; + u3_noun r_data = u3qi_la_dot_i754(d_data, d_data, u3nt(len_x0, 0x1, u3_nul), u3k(bloq)); + return r_data; + } + +/* mmul +*/ + u3_noun + u3qi_la_mmul_i754(u3_noun x_data, + u3_noun y_data, + u3_noun x_shape, + u3_noun y_shape, + u3_noun bloq) + { + // Unpack the data as a byte array. We assume total length < 2**64. + c3_d M = u3x_atom(u3h(x_shape)); + c3_d Na= u3x_atom(u3h(u3t(x_shape))); + c3_d Nb= u3x_atom(u3h(y_shape)); + c3_d P = u3x_atom(u3h(u3t(y_shape))); + + if ((u3_nul != u3t(u3t(x_shape))) || + (u3_nul != u3t(u3t(y_shape))) || + (Na != Nb)) { + return u3m_bail(c3__exit); + } + c3_d N = Na; + + // Unpack the data as a byte array. We assume total length < 2**64. + // len_x is length in base units + c3_d len_x = _get_length(x_shape); // M*N + + // syz_x is length in bytes + c3_d syz_x = len_x * pow(2, bloq-3); // M*N + + // x_bytes is the data array (w/o leading 0x1) + c3_y* x_bytes = (c3_y*)u3a_malloc(syz_x*sizeof(c3_y)); + u3r_bytes(0, syz_x, x_bytes, x_data); + + // len_x is length in base units + c3_d len_y = _get_length(y_shape); // N*P + + // syz_x is length in bytes + c3_d syz_y = len_y * pow(2, bloq-3); // N*P + + // y_bytes is the data array (w/o leading 0x1) + c3_y* y_bytes = (c3_y*)u3a_malloc(syz_y*sizeof(c3_y)); + u3r_bytes(0, syz_y, y_bytes, y_data); + + // len_r is length in base units + c3_d len_r = M*P; // M*P + + // syz_r is length in bytes + c3_d syz_r = len_r * pow(2, bloq-3); // M*P + + // r_bytes is the result array + c3_y* r_bytes = (c3_y*)u3a_malloc((syz_r+1)*sizeof(c3_y)); + r_bytes[syz_r] = 0x1; // pin head + // initialize with 0x0s + for (c3_d i = 0; i < syz_r; i++) { + r_bytes[i] = 0x0; + } + + // Switch on the block size. + switch (u3x_atom(bloq)) { + case 4: + hgemm('N', 'N', M, N, P, (float16_t){SB_REAL16_ONE}, (float16_t*)x_bytes, N, (float16_t*)y_bytes, P, (float16_t){SB_REAL16_ZERO}, (float16_t*)r_bytes, P); + break; + + case 5: + sgemm('N', 'N', M, N, P, (float32_t){SB_REAL32_ONE}, (float32_t*)x_bytes, N, (float32_t*)y_bytes, P, (float32_t){SB_REAL32_ZERO}, (float32_t*)r_bytes, P); + break; + + case 6: + dgemm('N', 'N', M, N, P, (float64_t){SB_REAL64_ONE}, (float64_t*)x_bytes, N, (float64_t*)y_bytes, P, (float64_t){SB_REAL64_ZERO}, (float64_t*)r_bytes, P); + break; + + case 7: + qgemm('N', 'N', M, N, P, (float128_t){SB_REAL128L_ONE,SB_REAL128U_ONE}, (float128_t*)x_bytes, N, (float128_t*)y_bytes, P, (float128_t){SB_REAL128L_ZERO,SB_REAL128U_ZERO}, (float128_t*)r_bytes, P); + break; + } + + // Unpack the result back into a noun. + u3_noun r_data = u3i_bytes(syz_r+1, r_bytes); + u3_noun M_ = u3i_chub(M); + u3_noun P_ = u3i_chub(P); + + u3a_free(x_bytes); + u3a_free(y_bytes); + u3a_free(r_bytes); + + return u3nc(u3nq(u3nt(M_, P_, u3_nul), u3k(bloq), c3__i754, u3_nul), r_data); + } + + u3_noun + u3wi_la_add(u3_noun cor) + { + // Each argument is a ray, [=meta data=@ux] + u3_noun x_meta, x_data, + y_meta, y_data; + + if ( c3n == u3r_mean(cor, + u3x_sam_4, &x_meta, + u3x_sam_5, &x_data, + u3x_sam_6, &y_meta, + u3x_sam_7, &y_data, + 0) || + c3n == u3r_sing(x_meta, y_meta) || + c3n == u3ud(x_data) || + c3n == u3ud(y_data) ) + { + return u3m_bail(c3__exit); + } else { + u3_noun x_shape, x_bloq, x_kind, x_tail, + rnd; + x_shape = u3h(x_meta); // 2 + x_bloq = u3h(u3t(x_meta)); // 6 + x_kind = u3h(u3t(u3t(x_meta))); // 14 + x_tail = u3t(u3t(u3t(x_meta))); // 15 + rnd = u3h(u3t(u3t(u3t(cor)))); // 30 + if ( c3n == u3ud(x_bloq) || + c3n == u3ud(x_kind) || + c3n == u3ud(rnd) + ) + { + return u3m_bail(c3__exit); + } else { + switch (x_kind) { + case c3__i754: + _set_rounding(rnd); + u3_noun r_data = u3qi_la_add_i754(x_data, y_data, x_shape, x_bloq); + if (r_data == u3_none) { return u3_none; } + return u3nc(u3nq(u3k(x_shape), u3k(x_bloq), u3k(x_kind), u3k(x_tail)), r_data); + + default: + return u3_none; + } + } + } + } + + u3_noun + u3wi_la_sub(u3_noun cor) + { + // Each argument is a ray, [=meta data=@ux] + u3_noun x_meta, x_data, + y_meta, y_data; + + if ( c3n == u3r_mean(cor, + u3x_sam_4, &x_meta, + u3x_sam_5, &x_data, + u3x_sam_6, &y_meta, + u3x_sam_7, &y_data, + 0) || + c3n == u3r_sing(x_meta, y_meta) || + c3n == u3ud(x_data) || + c3n == u3ud(y_data) ) + { + return u3m_bail(c3__exit); + } else { + u3_noun x_shape, x_bloq, x_kind, x_tail, + rnd; + x_shape = u3h(x_meta); // 2 + x_bloq = u3h(u3t(x_meta)); // 6 + x_kind = u3h(u3t(u3t(x_meta))); // 14 + x_tail = u3t(u3t(u3t(x_meta))); // 15 + rnd = u3h(u3t(u3t(u3t(cor)))); // 30 + if ( c3n == u3ud(x_bloq) || + c3n == u3ud(x_kind) || + c3n == u3ud(rnd) + ) + { + return u3m_bail(c3__exit); + } else { + switch (x_kind) { + case c3__i754: + _set_rounding(rnd); + u3_noun r_data = u3qi_la_sub_i754(x_data, y_data, x_shape, x_bloq); + if (r_data == u3_none) { return u3_none; } + return u3nc(u3nq(u3k(x_shape), u3k(x_bloq), u3k(x_kind), u3k(x_tail)), r_data); + + default: + return u3_none; + } + } + } + } + + u3_noun + u3wi_la_mul(u3_noun cor) + { + // Each argument is a ray, [=meta data=@ux] + u3_noun x_meta, x_data, + y_meta, y_data; + + if ( c3n == u3r_mean(cor, + u3x_sam_4, &x_meta, + u3x_sam_5, &x_data, + u3x_sam_6, &y_meta, + u3x_sam_7, &y_data, + 0) || + c3n == u3r_sing(x_meta, y_meta) || + c3n == u3ud(x_data) || + c3n == u3ud(y_data) ) + { + return u3m_bail(c3__exit); + } else { + u3_noun x_shape, x_bloq, x_kind, x_tail, + rnd; + x_shape = u3h(x_meta); // 2 + x_bloq = u3h(u3t(x_meta)); // 6 + x_kind = u3h(u3t(u3t(x_meta))); // 14 + x_tail = u3t(u3t(u3t(x_meta))); // 15 + rnd = u3h(u3t(u3t(u3t(cor)))); // 30 + if ( c3n == u3ud(x_bloq) || + c3n == u3ud(x_kind) || + c3n == u3ud(rnd) + ) + { + return u3m_bail(c3__exit); + } else { + switch (x_kind) { + case c3__i754: + _set_rounding(rnd); + u3_noun r_data = u3qi_la_mul_i754(x_data, y_data, x_shape, x_bloq); + if (r_data == u3_none) { return u3_none; } + return u3nc(u3nq(u3k(x_shape), u3k(x_bloq), u3k(x_kind), u3k(x_tail)), r_data); + + default: + return u3_none; + } + } + } + } + + u3_noun + u3wi_la_div(u3_noun cor) + { + // Each argument is a ray, [=meta data=@ux] + u3_noun x_meta, x_data, + y_meta, y_data; + + if ( c3n == u3r_mean(cor, + u3x_sam_4, &x_meta, + u3x_sam_5, &x_data, + u3x_sam_6, &y_meta, + u3x_sam_7, &y_data, + 0) || + c3n == u3r_sing(x_meta, y_meta) || + c3n == u3ud(x_data) || + c3n == u3ud(y_data) ) + { + return u3m_bail(c3__exit); + } else { + u3_noun x_shape, x_bloq, x_kind, x_tail, + rnd; + x_shape = u3h(x_meta); // 2 + x_bloq = u3h(u3t(x_meta)); // 6 + x_kind = u3h(u3t(u3t(x_meta))); // 14 + x_tail = u3t(u3t(u3t(x_meta))); // 15 + rnd = u3h(u3t(u3t(u3t(cor)))); // 30 + if ( c3n == u3ud(x_bloq) || + c3n == u3ud(x_kind) || + c3n == u3ud(rnd) + ) + { + return u3m_bail(c3__exit); + } else { + switch (x_kind) { + case c3__i754: + _set_rounding(rnd); + u3_noun r_data = u3qi_la_div_i754(x_data, y_data, x_shape, x_bloq); + if (r_data == u3_none) { return u3_none; } + return u3nc(u3nq(u3k(x_shape), u3k(x_bloq), u3k(x_kind), u3k(x_tail)), r_data); + + default: + return u3_none; + } + } + } + } + + u3_noun + u3wi_la_mod(u3_noun cor) + { + // Each argument is a ray, [=meta data=@ux] + u3_noun x_meta, x_data, + y_meta, y_data; + + if ( c3n == u3r_mean(cor, + u3x_sam_4, &x_meta, + u3x_sam_5, &x_data, + u3x_sam_6, &y_meta, + u3x_sam_7, &y_data, + 0) || + c3n == u3r_sing(x_meta, y_meta) || + c3n == u3ud(x_data) || + c3n == u3ud(y_data) ) + { + return u3m_bail(c3__exit); + } else { + u3_noun x_shape, x_bloq, x_kind, x_tail, + rnd; + x_shape = u3h(x_meta); // 2 + x_bloq = u3h(u3t(x_meta)); // 6 + x_kind = u3h(u3t(u3t(x_meta))); // 14 + x_tail = u3t(u3t(u3t(x_meta))); // 15 + rnd = u3h(u3t(u3t(u3t(cor)))); // 30 + if ( c3n == u3ud(x_bloq) || + c3n == u3ud(x_kind) || + c3n == u3ud(rnd) + ) + { + return u3m_bail(c3__exit); + } else { + switch (x_kind) { + case c3__i754: + _set_rounding(rnd); + u3_noun r_data = u3qi_la_mod_i754(x_data, y_data, x_shape, x_bloq); + if (r_data == u3_none) { return u3_none; } + return u3nc(u3nq(u3k(x_shape), u3k(x_bloq), u3k(x_kind), u3k(x_tail)), r_data); + + default: + return u3_none; + } + } + } + } + + u3_noun + u3wi_la_cumsum(u3_noun cor) + { + // Each argument is a ray, [=meta data=@ux] + u3_noun x_meta, x_data; + + if ( c3n == u3r_mean(cor, + u3x_sam_2, &x_meta, + u3x_sam_3, &x_data, + 0) || + c3n == u3ud(x_data) ) + { + return u3m_bail(c3__exit); + } else { + u3_noun x_shape, x_bloq, x_kind, x_tail, + rnd; + x_shape = u3h(x_meta); // 2 + x_bloq = u3h(u3t(x_meta)); // 6 + x_kind = u3h(u3t(u3t(x_meta))); // 14 + x_tail = u3t(u3t(u3t(x_meta))); // 15 + rnd = u3h(u3t(u3t(u3t(cor)))); // 30 + if ( c3n == u3ud(x_bloq) || + c3n == u3ud(x_kind) || + c3n == _check(u3nc(x_meta, x_data)) + ) + { + return u3m_bail(c3__exit); + } else { + switch (x_kind) { + case c3__i754: + _set_rounding(rnd); + u3_noun r_data = u3qi_la_cumsum_i754(x_data, x_shape, x_bloq); + if (r_data == u3_none) { return u3_none; } + return u3nc(u3nq(u3nc(0x1, u3_nul), u3k(x_bloq), u3k(x_kind), u3k(x_tail)), r_data); + + default: + return u3_none; + } + } + } + } + + u3_noun + u3wi_la_argmin(u3_noun cor) + { + // Each argument is a ray, [=meta data=@ux] + u3_noun x_meta, x_data; + + if ( c3n == u3r_mean(cor, + u3x_sam_2, &x_meta, + u3x_sam_3, &x_data, + 0) || + c3n == u3ud(x_data) ) + { + return u3m_bail(c3__exit); + } else { + u3_noun x_shape, x_bloq, x_kind; + x_shape = u3h(x_meta); // 2 + x_bloq = u3h(u3t(x_meta)); // 6 + x_kind = u3h(u3t(u3t(x_meta))); // 14 + if ( c3n == u3ud(x_bloq) || + c3n == u3ud(x_kind) || + c3n == _check(u3nc(x_meta, x_data)) + ) + { + return u3m_bail(c3__exit); + } else { + switch (x_kind) { + case c3__i754: { + u3_noun r_data = u3qi_la_argmin_i754(x_data, x_shape, x_bloq); + // bare atom (@ index) + return r_data;} + + default: + return u3_none; + } + } + } + } + + u3_noun + u3wi_la_ravel(u3_noun cor) + { + // Each argument is a ray, [=meta data=@ux] + u3_noun x_meta, x_data; + + if ( c3n == u3r_mean(cor, + u3x_sam_2, &x_meta, + u3x_sam_3, &x_data, + 0) || + c3n == u3ud(x_data) ) + { + return u3m_bail(c3__exit); + } else { + u3_noun x_shape, x_bloq, x_kind; + x_shape = u3h(x_meta); // 2 + x_bloq = u3h(u3t(x_meta)); // 6 + x_kind = u3h(u3t(u3t(x_meta))); // 14 + if ( c3n == u3ud(x_bloq) || + c3n == u3ud(x_kind) || + c3n == _check(u3nc(x_meta, x_data)) + ) + { + return u3m_bail(c3__exit); + } else { + switch (x_kind) { + case c3__i754: { + u3_noun r_data = u3qi_la_ravel_i754(x_data, x_shape, x_bloq); + // (list @) + return r_data;} + + default: + return u3_none; + } + } + } + } + + u3_noun + u3wi_la_argmax(u3_noun cor) + { + // Each argument is a ray, [=meta data=@ux] + u3_noun x_meta, x_data; + + if ( c3n == u3r_mean(cor, + u3x_sam_2, &x_meta, + u3x_sam_3, &x_data, + 0) || + c3n == u3ud(x_data) ) + { + return u3m_bail(c3__exit); + } else { + u3_noun x_shape, x_bloq, x_kind; + x_shape = u3h(x_meta); // 2 + x_bloq = u3h(u3t(x_meta)); // 6 + x_kind = u3h(u3t(u3t(x_meta))); // 14 + if ( c3n == u3ud(x_bloq) || + c3n == u3ud(x_kind) || + c3n == _check(u3nc(x_meta, x_data)) + ) + { + return u3m_bail(c3__exit); + } else { + switch (x_kind) { + case c3__i754: { + u3_noun r_data = u3qi_la_argmax_i754(x_data, x_shape, x_bloq); + // bare atom (@ index) + return r_data;} + + default: + return u3_none; + } + } + } + } + + u3_noun + u3wi_la_min(u3_noun cor) + { + // Each argument is a ray, [=meta data=@ux] + u3_noun x_meta, x_data; + + if ( c3n == u3r_mean(cor, + u3x_sam_2, &x_meta, + u3x_sam_3, &x_data, + 0) || + c3n == u3ud(x_data) ) + { + return u3m_bail(c3__exit); + } else { + u3_noun x_shape, x_bloq, x_kind, x_tail; + x_shape = u3h(x_meta); // 2 + x_bloq = u3h(u3t(x_meta)); // 6 + x_kind = u3h(u3t(u3t(x_meta))); // 14 + x_tail = u3t(u3t(u3t(x_meta))); // 15 + if ( c3n == u3ud(x_bloq) || + c3n == u3ud(x_kind) || + c3n == _check(u3nc(x_meta, x_data)) + ) + { + return u3m_bail(c3__exit); + } else { + switch (x_kind) { + case c3__i754: { + u3_noun r_data = u3qi_la_min_i754(x_data, x_shape, x_bloq); + if (r_data == u3_none) { return u3_none; } + return u3nc(u3nq(u3nt(0x1, 0x1, u3_nul), u3k(x_bloq), u3k(x_kind), u3k(x_tail)), r_data);} + + default: + return u3_none; + } + } + } + } + + u3_noun + u3wi_la_max(u3_noun cor) + { + // Each argument is a ray, [=meta data=@ux] + u3_noun x_meta, x_data; + + if ( c3n == u3r_mean(cor, + u3x_sam_2, &x_meta, + u3x_sam_3, &x_data, + 0) || + c3n == u3ud(x_data) ) + { + return u3m_bail(c3__exit); + } else { + u3_noun x_shape, x_bloq, x_kind, x_tail; + x_shape = u3h(x_meta); // 2 + x_bloq = u3h(u3t(x_meta)); // 6 + x_kind = u3h(u3t(u3t(x_meta))); // 14 + x_tail = u3t(u3t(u3t(x_meta))); // 15 + if ( c3n == u3ud(x_bloq) || + c3n == u3ud(x_kind) || + c3n == _check(u3nc(x_meta, x_data)) + ) + { + return u3m_bail(c3__exit); + } else { + switch (x_kind) { + case c3__i754: { + u3_noun r_data = u3qi_la_max_i754(x_data, x_shape, x_bloq); + if (r_data == u3_none) { return u3_none; } + return u3nc(u3nq(u3nt(0x1, 0x1, u3_nul), u3k(x_bloq), u3k(x_kind), u3k(x_tail)), r_data);} + + default: + return u3_none; + } + } + } + } + + u3_noun + u3wi_la_abs(u3_noun cor) + { + // Each argument is a ray, [=meta data=@ux] + u3_noun x_meta, x_data; + + if ( c3n == u3r_mean(cor, + u3x_sam_2, &x_meta, + u3x_sam_3, &x_data, + 0) || + c3n == u3ud(x_data) ) + { + return u3m_bail(c3__exit); + } else { + u3_noun x_shape, x_bloq, x_kind, x_tail; + x_shape = u3h(x_meta); // 2 + x_bloq = u3h(u3t(x_meta)); // 6 + x_kind = u3h(u3t(u3t(x_meta))); // 14 + x_tail = u3t(u3t(u3t(x_meta))); // 15 + if ( c3n == u3ud(x_bloq) || + c3n == u3ud(x_kind) + ) + { + return u3m_bail(c3__exit); + } else { + switch (x_kind) { + case c3__i754: { + u3_noun r_data = u3qi_la_abs_i754(x_data, x_shape, x_bloq); + if (r_data == u3_none) { return u3_none; } + return u3nc(u3nq(u3k(x_shape), u3k(x_bloq), u3k(x_kind), u3k(x_tail)), r_data);} + + default: + return u3_none; + } + } + } + } + + u3_noun + u3wi_la_gth(u3_noun cor) + { + // Each argument is a ray, [=meta data=@ux] + u3_noun x_meta, x_data, + y_meta, y_data; + + if ( c3n == u3r_mean(cor, + u3x_sam_4, &x_meta, + u3x_sam_5, &x_data, + u3x_sam_6, &y_meta, + u3x_sam_7, &y_data, + 0) || + c3n == u3r_sing(x_meta, y_meta) || + c3n == u3ud(x_data) || + c3n == u3ud(y_data) ) + { + return u3m_bail(c3__exit); + } else { + u3_noun x_shape, x_bloq, x_kind; + x_shape = u3h(x_meta); // 2 + x_bloq = u3h(u3t(x_meta)); // 6 + x_kind = u3h(u3t(u3t(x_meta))); // 14 + if ( c3n == u3ud(x_bloq) || + c3n == u3ud(x_kind) + ) + { + return u3m_bail(c3__exit); + } else { + switch (x_kind) { + case c3__i754: { + u3_noun r_data = u3qi_la_gth_i754(x_data, y_data, x_shape, x_bloq); + if (r_data == u3_none) { return u3_none; } + return u3nc(u3k(x_meta), r_data);} + + default: + return u3_none; + } + } + } + } + + u3_noun + u3wi_la_gte(u3_noun cor) + { + // Each argument is a ray, [=meta data=@ux] + u3_noun x_meta, x_data, + y_meta, y_data; + + if ( c3n == u3r_mean(cor, + u3x_sam_4, &x_meta, + u3x_sam_5, &x_data, + u3x_sam_6, &y_meta, + u3x_sam_7, &y_data, + 0) || + c3n == u3r_sing(x_meta, y_meta) || + c3n == u3ud(x_data) || + c3n == u3ud(y_data) ) + { + return u3m_bail(c3__exit); + } else { + u3_noun x_shape, x_bloq, x_kind; + x_shape = u3h(x_meta); // 2 + x_bloq = u3h(u3t(x_meta)); // 6 + x_kind = u3h(u3t(u3t(x_meta))); // 14 + if ( c3n == u3ud(x_bloq) || + c3n == u3ud(x_kind) + ) + { + return u3m_bail(c3__exit); + } else { + switch (x_kind) { + case c3__i754: { + u3_noun r_data = u3qi_la_gte_i754(x_data, y_data, x_shape, x_bloq); + if (r_data == u3_none) { return u3_none; } + return u3nc(u3k(x_meta), r_data);} + + default: + return u3_none; + } + } + } + } + + u3_noun + u3wi_la_lth(u3_noun cor) + { + // Each argument is a ray, [=meta data=@ux] + u3_noun x_meta, x_data, + y_meta, y_data; + + if ( c3n == u3r_mean(cor, + u3x_sam_4, &x_meta, + u3x_sam_5, &x_data, + u3x_sam_6, &y_meta, + u3x_sam_7, &y_data, + 0) || + c3n == u3r_sing(x_meta, y_meta) || + c3n == u3ud(x_data) || + c3n == u3ud(y_data) ) + { + return u3m_bail(c3__exit); + } else { + u3_noun x_shape, x_bloq, x_kind; + x_shape = u3h(x_meta); // 2 + x_bloq = u3h(u3t(x_meta)); // 6 + x_kind = u3h(u3t(u3t(x_meta))); // 14 + if ( c3n == u3ud(x_bloq) || + c3n == u3ud(x_kind) + ) + { + return u3m_bail(c3__exit); + } else { + switch (x_kind) { + case c3__i754: { + u3_noun r_data = u3qi_la_lth_i754(x_data, y_data, x_shape, x_bloq); + if (r_data == u3_none) { return u3_none; } + return u3nc(u3k(x_meta), r_data);} + + default: + return u3_none; + } + } + } + } + + u3_noun + u3wi_la_lte(u3_noun cor) + { + // Each argument is a ray, [=meta data=@ux] + u3_noun x_meta, x_data, + y_meta, y_data; + + if ( c3n == u3r_mean(cor, + u3x_sam_4, &x_meta, + u3x_sam_5, &x_data, + u3x_sam_6, &y_meta, + u3x_sam_7, &y_data, + 0) || + c3n == u3r_sing(x_meta, y_meta) || + c3n == u3ud(x_data) || + c3n == u3ud(y_data) ) + { + return u3m_bail(c3__exit); + } else { + u3_noun x_shape, x_bloq, x_kind; + x_shape = u3h(x_meta); // 2 + x_bloq = u3h(u3t(x_meta)); // 6 + x_kind = u3h(u3t(u3t(x_meta))); // 14 + if ( c3n == u3ud(x_bloq) || + c3n == u3ud(x_kind) + ) + { + return u3m_bail(c3__exit); + } else { + switch (x_kind) { + case c3__i754: { + u3_noun r_data = u3qi_la_lte_i754(x_data, y_data, x_shape, x_bloq); + if (r_data == u3_none) { return u3_none; } + return u3nc(u3k(x_meta), r_data);} + + default: + return u3_none; + } + } + } + } + + u3_noun + u3wi_la_adds(u3_noun cor) + { + // Each argument is a ray, [=meta data=@ux] + u3_noun x_meta, x_data, n; + + if ( c3n == u3r_mean(cor, + u3x_sam_4, &x_meta, + u3x_sam_5, &x_data, + u3x_sam_3, &n, + 0) || + c3n == u3ud(x_data) || + c3n == u3ud(n) ) + { + return u3m_bail(c3__exit); + } else { + u3_noun x_shape, x_bloq, x_kind, x_tail, + rnd; + x_shape = u3h(x_meta); // 2 + x_bloq = u3h(u3t(x_meta)); // 6 + x_kind = u3h(u3t(u3t(x_meta))); // 14 + x_tail = u3t(u3t(u3t(x_meta))); // 15 + rnd = u3h(u3t(u3t(u3t(cor)))); // 30 + switch (x_kind) { + case c3__i754: + _set_rounding(rnd); + u3_noun r_data = u3qi_la_adds_i754(x_data, n, x_shape, x_bloq); + if (r_data == u3_none) { return u3_none; } + return u3nc(u3nq(u3k(x_shape), u3k(x_bloq), u3k(x_kind), u3k(x_tail)), r_data); + + default: + return u3_none; + } + } + } + + u3_noun + u3wi_la_subs(u3_noun cor) + { + // Each argument is a ray, [=meta data=@ux] + u3_noun x_meta, x_data, n; + + if ( c3n == u3r_mean(cor, + u3x_sam_4, &x_meta, + u3x_sam_5, &x_data, + u3x_sam_3, &n, + 0) || + c3n == u3ud(x_data) || + c3n == u3ud(n) ) + { + return u3m_bail(c3__exit); + } else { + u3_noun x_shape, x_bloq, x_kind, x_tail, + rnd; + x_shape = u3h(x_meta); // 2 + x_bloq = u3h(u3t(x_meta)); // 6 + x_kind = u3h(u3t(u3t(x_meta))); // 14 + x_tail = u3t(u3t(u3t(x_meta))); // 15 + rnd = u3h(u3t(u3t(u3t(cor)))); // 30 + switch (x_kind) { + case c3__i754: + _set_rounding(rnd); + u3_noun r_data = u3qi_la_subs_i754(x_data, n, x_shape, x_bloq); + if (r_data == u3_none) { return u3_none; } + return u3nc(u3nq(u3k(x_shape), u3k(x_bloq), u3k(x_kind), u3k(x_tail)), r_data); + + default: + return u3_none; + } + } + } + + u3_noun + u3wi_la_muls(u3_noun cor) + { + // Each argument is a ray, [=meta data=@ux] + u3_noun x_meta, x_data, n; + + if ( c3n == u3r_mean(cor, + u3x_sam_4, &x_meta, + u3x_sam_5, &x_data, + u3x_sam_3, &n, + 0) || + c3n == u3ud(x_data) || + c3n == u3ud(n) ) + { + return u3m_bail(c3__exit); + } else { + u3_noun x_shape, x_bloq, x_kind, x_tail, + rnd; + x_shape = u3h(x_meta); // 2 + x_bloq = u3h(u3t(x_meta)); // 6 + x_kind = u3h(u3t(u3t(x_meta))); // 14 + x_tail = u3t(u3t(u3t(x_meta))); // 15 + rnd = u3h(u3t(u3t(u3t(cor)))); // 30 + switch (x_kind) { + case c3__i754: + _set_rounding(rnd); + u3_noun r_data = u3qi_la_muls_i754(x_data, n, x_shape, x_bloq); + if (r_data == u3_none) { return u3_none; } + return u3nc(u3nq(u3k(x_shape), u3k(x_bloq), u3k(x_kind), u3k(x_tail)), r_data); + + default: + return u3_none; + } + } + } + + u3_noun + u3wi_la_divs(u3_noun cor) + { + // Each argument is a ray, [=meta data=@ux] + u3_noun x_meta, x_data, n; + + if ( c3n == u3r_mean(cor, + u3x_sam_4, &x_meta, + u3x_sam_5, &x_data, + u3x_sam_3, &n, + 0) || + c3n == u3ud(x_data) || + c3n == u3ud(n) ) + { + return u3m_bail(c3__exit); + } else { + u3_noun x_shape, x_bloq, x_kind, x_tail, + rnd; + x_shape = u3h(x_meta); // 2 + x_bloq = u3h(u3t(x_meta)); // 6 + x_kind = u3h(u3t(u3t(x_meta))); // 14 + x_tail = u3t(u3t(u3t(x_meta))); // 15 + rnd = u3h(u3t(u3t(u3t(cor)))); // 30 + switch (x_kind) { + case c3__i754: + _set_rounding(rnd); + u3_noun r_data = u3qi_la_divs_i754(x_data, n, x_shape, x_bloq); + if (r_data == u3_none) { return u3_none; } + return u3nc(u3nq(u3k(x_shape), u3k(x_bloq), u3k(x_kind), u3k(x_tail)), r_data); + + default: + return u3_none; + } + } + } + + u3_noun + u3wi_la_mods(u3_noun cor) + { + // Each argument is a ray, [=meta data=@ux] + u3_noun x_meta, x_data, n; + + if ( c3n == u3r_mean(cor, + u3x_sam_4, &x_meta, + u3x_sam_5, &x_data, + u3x_sam_3, &n, + 0) || + c3n == u3ud(x_data) || + c3n == u3ud(n) ) + { + return u3m_bail(c3__exit); + } else { + u3_noun x_shape, x_bloq, x_kind, x_tail, + rnd; + x_shape = u3h(x_meta); // 2 + x_bloq = u3h(u3t(x_meta)); // 6 + x_kind = u3h(u3t(u3t(x_meta))); // 14 + x_tail = u3t(u3t(u3t(x_meta))); // 15 + rnd = u3h(u3t(u3t(u3t(cor)))); // 30 + switch (x_kind) { + case c3__i754: + _set_rounding(rnd); + u3_noun r_data = u3qi_la_mods_i754(x_data, n, x_shape, x_bloq); + if (r_data == u3_none) { return u3_none; } + return u3nc(u3nq(u3k(x_shape), u3k(x_bloq), u3k(x_kind), u3k(x_tail)), r_data); + + default: + return u3_none; + } + } + } + + u3_noun + u3wi_la_dot(u3_noun cor) + { + // Each argument is a ray, [=meta data=@ux] + u3_noun x_meta, x_data, + y_meta, y_data; + + if ( c3n == u3r_mean(cor, + u3x_sam_4, &x_meta, + u3x_sam_5, &x_data, + u3x_sam_6, &y_meta, + u3x_sam_7, &y_data, + 0) || + c3n == u3r_sing(x_meta, y_meta) || + c3n == u3ud(x_data) || + c3n == u3ud(y_data) ) + { + return u3m_bail(c3__exit); + } else { + u3_noun x_shape, x_bloq, x_kind, x_tail, + rnd; + x_shape = u3h(x_meta); // 2 + x_bloq = u3h(u3t(x_meta)); // 6 + x_kind = u3h(u3t(u3t(x_meta))); // 14 + x_tail = u3t(u3t(u3t(x_meta))); // 15 + rnd = u3h(u3t(u3t(u3t(cor)))); // 30 + if ( c3n == u3ud(x_bloq) || + c3n == u3ud(x_kind) + ) + { + return u3m_bail(c3__exit); + } else { + switch (x_kind) { + case c3__i754: + _set_rounding(rnd); + u3_noun r_data = u3qi_la_dot_i754(x_data, y_data, x_shape, x_bloq); + if (r_data == u3_none) { return u3_none; } + c3_d len_x0 = _get_dims(x_shape)[0]; + return u3nc(u3nq(u3nt(len_x0, 0x1, u3_nul), u3k(x_bloq), u3k(x_kind), u3k(x_tail)), r_data); + + default: + return u3_none; + } + } + } + } + + u3_noun + u3wi_la_transpose(u3_noun cor) + { + // Each argument is a ray, [=meta data=@ux] + u3_noun x_meta, x_data; + + if ( c3n == u3r_mean(cor, + u3x_sam_2, &x_meta, + u3x_sam_3, &x_data, + 0) || + c3n == u3ud(x_data) ) + { + return u3m_bail(c3__exit); + } else { + u3_noun x_shape, x_bloq, x_kind, x_tail; + x_shape = u3h(x_meta); // 2 + x_bloq = u3h(u3t(x_meta)); // 6 + x_kind = u3h(u3t(u3t(x_meta))); // 14 + x_tail = u3t(u3t(u3t(x_meta))); // 15 + if ( c3n == u3ud(x_bloq) || + c3n == u3ud(x_kind) || + c3n == _check(cor) + ) + { + return u3m_bail(c3__exit); + } else { + u3_noun r_data = u3qi_la_transpose(x_data, x_shape, x_bloq); + if (r_data == u3_none) { return u3_none; } + return u3nc(u3nq(u3nt(u3k(u3h(x_shape)), u3k(u3h(u3t(x_shape))), u3_nul), u3k(x_bloq), u3k(x_kind), u3k(x_tail)), r_data); + } + } + } + + u3_noun + u3wi_la_linspace(u3_noun cor) + { + u3_noun x_meta, a, b, n, rnd; + + if ( c3n == u3r_mean(cor, + u3x_sam_2, &x_meta, + u3x_sam_12, &a, + u3x_sam_13, &b, + u3x_sam_7, &n, + 0)) + { + return u3m_bail(c3__exit); + } else { + u3_noun x_shape, x_bloq, x_kind, x_tail; + x_shape = u3h(x_meta); // 2 + x_bloq = u3h(u3t(x_meta)); // 6 + x_kind = u3h(u3t(u3t(x_meta))); // 14 + x_tail = u3t(u3t(u3t(x_meta))); // 15 + rnd = u3h(u3t(u3t(u3t(cor)))); // 30 + if ( c3n == u3ud(x_bloq) || + c3n == u3ud(x_kind) || + c3n == u3ud(n) || + (n < 1) // crash on zero size + ) + { + return u3m_bail(c3__exit); + } else { + switch (x_kind) { + case c3__i754: + _set_rounding(rnd); + u3_noun r_data = u3qi_la_linspace_i754(a, b, n, x_bloq); + if (r_data == u3_none) { return u3_none; } + x_shape = u3nc(u3x_atom(n), u3_nul); + return u3nc(u3nq(u3k(x_shape), u3k(x_bloq), u3k(x_kind), u3k(x_tail)), r_data); + + default: + return u3_none; + } + } + } + } + + u3_noun + u3wi_la_range(u3_noun cor) + { + u3_noun x_meta, a, b, d, rnd; + + if ( c3n == u3r_mean(cor, + u3x_sam_2, &x_meta, + u3x_sam_12, &a, + u3x_sam_13, &b, + u3x_sam_7, &d, + 0)) + { + return u3m_bail(c3__exit); + } else { + u3_noun x_shape, x_bloq, x_kind, x_tail; + x_shape = u3h(x_meta); // 2 + x_bloq = u3h(u3t(x_meta)); // 6 + x_kind = u3h(u3t(u3t(x_meta))); // 14 + x_tail = u3t(u3t(u3t(x_meta))); // 15 + rnd = u3h(u3t(u3t(u3t(cor)))); // 30 + if ( c3n == u3ud(x_bloq) || + c3n == u3ud(x_kind) + ) + { + return u3m_bail(c3__exit); + } else { + switch (x_kind) { + case c3__i754: + _set_rounding(rnd); + u3_noun r_data = u3qi_la_range_i754(a, b, d, x_bloq); + if (r_data == u3_none) { return u3_none; } + c3_d a_, b_, d_; + c3_ds n_; + switch (x_bloq) { + case 4: + u3r_bytes(0, 2, (c3_y*)&a_, a); + u3r_bytes(0, 2, (c3_y*)&b_, b); + u3r_bytes(0, 2, (c3_y*)&d_, d); + n_ = f16_to_i64(f16_ceil(f16_div(f16_sub((float16_t){b_}, (float16_t){a_}), (float16_t){d_})), softfloat_round_minMag, false) - 1; + break; + case 5: + u3r_bytes(0, 4, (c3_y*)&a_, a); + u3r_bytes(0, 4, (c3_y*)&b_, b); + u3r_bytes(0, 4, (c3_y*)&d_, d); + n_ = f32_to_i64(f32_ceil(f32_div(f32_sub((float32_t){b_}, (float32_t){a_}), (float32_t){d_})), softfloat_round_minMag, false) - 1; + break; + case 6: + u3r_bytes(0, 8, (c3_y*)&a_, a); + u3r_bytes(0, 8, (c3_y*)&b_, b); + u3r_bytes(0, 8, (c3_y*)&d_, d); + n_ = f64_to_i64(f64_ceil(f64_div(f64_sub((float64_t){b_}, (float64_t){a_}), (float64_t){d_})), softfloat_round_minMag, false) - 1; + break; + case 7: { + c3_d a__[2], b__[2], d__[2]; + u3r_bytes(0, 16, (c3_y*)&a__, a); + u3r_bytes(0, 16, (c3_y*)&b__, b); + u3r_bytes(0, 16, (c3_y*)&d__, d); + float128_t tmp; + f128M_sub((float128_t*)&b__, (float128_t*)&a__, &tmp); + f128M_div(&tmp, (float128_t*)&d__, &tmp); + f128M_ceil(&tmp, &tmp); + n_ = f128M_to_i64(&tmp, softfloat_round_minMag, false) - 1; + break;} + } + u3_noun n = u3i_chub(n_+1); + x_shape = u3nc(u3k(n), u3_nul); + return u3nc(u3nq(u3k(x_shape), u3k(x_bloq), u3k(x_kind), u3k(x_tail)), r_data); + + default: + return u3_none; + } + } + } + } + + u3_noun + u3wi_la_diag(u3_noun cor) + { + // Each argument is a ray, [=meta data=@ux] + u3_noun x_meta, x_data; + + if ( c3n == u3r_mean(cor, + u3x_sam_2, &x_meta, + u3x_sam_3, &x_data, + 0) || + c3n == u3ud(x_data) ) + { + return u3m_bail(c3__exit); + } else { + u3_noun x_shape, x_bloq, x_kind, x_tail; + x_shape = u3h(x_meta); // 2 + x_bloq = u3h(u3t(x_meta)); // 6 + x_kind = u3h(u3t(u3t(x_meta))); // 14 + x_tail = u3t(u3t(u3t(x_meta))); // 15 + if ( c3n == u3ud(x_bloq) || + c3n == u3ud(x_kind) || + c3n == _check(cor) + ) + { + return u3m_bail(c3__exit); + } else { + u3_noun r_data = u3qi_la_diag(x_data, x_shape, x_bloq); + if (r_data == u3_none) { return u3_none; } + c3_d len_x0 = _get_dims(x_shape)[0]; + return u3nc(u3nq(u3nt(len_x0, 0x1, u3_nul), u3k(x_bloq), u3k(x_kind), u3k(x_tail)), r_data); + } + } + } + + u3_noun + u3wi_la_trace(u3_noun cor) + { + // Each argument is a ray, [=meta data=@ux] + u3_noun x_meta, x_data; + + if ( c3n == u3r_mean(cor, + u3x_sam_2, &x_meta, + u3x_sam_3, &x_data, + 0) || + c3n == u3ud(x_data) ) + { + return u3m_bail(c3__exit); + } else { + u3_noun x_shape, x_bloq, x_kind, x_tail; + if ( c3n == u3r_mean(x_meta, + 2, &x_shape, + 6, &x_bloq, + 14, &x_kind, + 15, &x_tail, + 0) + ) + { + return u3m_bail(c3__exit); + } else { + switch (x_kind) { + case c3__i754: { + u3_noun r_data = u3qi_la_trace_i754(x_data, x_shape, x_bloq); + if (r_data == u3_none) { return u3_none; } + return u3nc(u3nq(u3nt(0x1, 0x1, u3_nul), u3k(x_bloq), u3k(x_kind), u3k(x_tail)), r_data);} + + default: + return u3_none; + } + } + } + } + + u3_noun + u3wi_la_mmul(u3_noun cor) + { + // Each argument is a ray, [=meta data=@ux] + u3_noun x_meta, x_data, + y_meta, y_data; + + if ( c3n == u3r_mean(cor, + u3x_sam_4, &x_meta, + u3x_sam_5, &x_data, + u3x_sam_6, &y_meta, + u3x_sam_7, &y_data, + 0) || + c3n == u3ud(x_data) || + c3n == u3ud(y_data) ) + { + return u3m_bail(c3__exit); + } else { + u3_noun x_shape, x_bloq, x_kind, + y_shape, + rnd; + x_shape = u3h(x_meta); // 2 + x_bloq = u3h(u3t(x_meta)); // 6 + x_kind = u3h(u3t(u3t(x_meta))); // 14 + y_shape = u3h(y_meta); // 2 + rnd = u3h(u3t(u3t(u3t(cor)))); // 30 + if ( c3n == _check(u3nc(x_meta, x_data)) || + c3n == _check(u3nc(y_meta, y_data)) + ) + { + return u3m_bail(c3__exit); + } else { + switch (x_kind) { + case c3__i754: + _set_rounding(rnd); + u3_noun r_data = u3qi_la_mmul_i754(x_data, y_data, x_shape, y_shape, x_bloq); + // result is already [meta data] + return r_data; + + default: + return u3_none; + } + } + } + } diff --git a/vere/pkg/noun/jets/k.h b/vere/pkg/noun/jets/k.h new file mode 100644 index 0000000..27733fb --- /dev/null +++ b/vere/pkg/noun/jets/k.h @@ -0,0 +1,185 @@ +/// @file + +#ifndef U3_JETS_K_H +#define U3_JETS_K_H + +#include "types.h" + + /** Tier 1. + **/ + u3_noun u3ka_add(u3_noun a, u3_noun b); + u3_noun u3ka_dec(u3_atom a); + u3_noun u3ka_div(u3_noun a, u3_noun b); + u3_noun u3ka_sub(u3_noun a, u3_noun b); + u3_noun u3ka_max(u3_noun a, u3_noun b); + u3_noun u3ka_min(u3_noun a, u3_noun b); + u3_noun u3ka_mod(u3_noun a, u3_noun b); + u3_noun u3ka_mul(u3_noun a, u3_noun b); + u3_noun u3ka_gth(u3_noun a, u3_noun b); + u3_noun u3ka_lte(u3_noun a, u3_noun b); + + /** Tier 2. + **/ + u3_noun u3kb_lent(u3_noun a); + u3_noun u3kb_weld(u3_noun a, u3_noun b); + u3_noun u3kb_flop(u3_noun a); + +/* u3kc: tier 3 functions +*/ + /* u3kc_bex(): binary exponent. + */ + u3_noun + u3kc_bex(u3_atom); + + /* u3kc_con(): binary loobean conjunction. + */ + u3_noun + u3kc_con(u3_noun a, + u3_noun b); + + /* u3kc_mix(): binary xor. + */ + u3_noun + u3kc_mix(u3_atom a, u3_atom b); + + /* u3kc_lsh(): left shift. + */ + u3_noun + u3kc_lsh(u3_noun a, u3_noun b, u3_noun c); + + /* u3kc_rsh(): right shift. + */ + u3_noun + u3kc_rsh(u3_noun a, u3_noun b, u3_noun c); + + /* u3kc_rep(): assemble single. + */ + u3_noun + u3kc_rep(u3_atom a, + u3_atom b, + u3_noun c); + + /* u3kc_rip(): disassemble. + */ + u3_noun + u3kc_rip(u3_atom a, + u3_atom b, + u3_atom c); + + /* u3kc_rev(): reverse block order, accounting for leading zeroes. + */ + u3_noun + u3kc_rev(u3_atom boz, u3_atom len, u3_atom dat); + + /* u3kc_swp(): reverse block order. + */ + u3_noun + u3kc_swp(u3_atom a, u3_atom b); + +/* u3kd: tier 4 functions +*/ + /* u3kdb_get(): map get for key `b` in map `a` with u3_none. + */ + u3_weak + u3kdb_get(u3_noun a, u3_noun b); + + /* u3kdb_got(): map get for key `b` in map `a` with bail. + */ + u3_noun + u3kdb_got(u3_noun a, u3_noun b); + + /* u3kdb_put(): map put for key `b`, value `c` in map `a`. + */ + u3_weak + u3kdb_put(u3_noun a, u3_noun b, u3_noun c); + + /* u3kdb_del(): map del for key `b` + */ + u3_weak + u3kdb_del(u3_noun a, u3_noun b); + + /* u3kdb_has(): test for get. + */ + u3_noun + u3kdb_has(u3_noun a, u3_noun b); + + /* u3kdb_gas(): list to map. + */ + u3_noun + u3kdb_gas(u3_noun a, u3_noun b); + + /* u3kdb_uni(): map union. + */ + u3_noun + u3kdb_uni(u3_noun a, u3_noun b); + + /* u3kdi_gas(): list to map. + */ + u3_noun + u3kdi_gas(u3_noun a, u3_noun b); + + /* u3kdi_has(): test for presence. + */ + u3_noun + u3kdi_has(u3_noun a, u3_noun b); + + /* u3kdi_tap(): map/set convert to list. (solves by_tap also.) + */ + u3_noun + u3kdi_tap(u3_noun a); + + /* u3kdi_put(): put in set. + */ + u3_weak + u3kdi_put(u3_noun a, u3_noun b); + + /* u3kdi_uni(): set union. + */ + u3_noun + u3kdi_uni(u3_noun a, u3_noun b); + +# define u3kdb_tap(a) u3kdi_tap(a) + +/* u3ke: tier 5 functions +*/ + /* u3ke_cue(): expand saved pill. + */ + u3_noun + u3ke_cue(u3_atom a); + + /* u3ke_jam(): pack noun as atom. + */ + u3_atom + u3ke_jam(u3_noun a); + + /* u3ke_trip(): atom to tape. + */ + u3_noun + u3ke_trip(u3_noun a); + + /* u3ke_json_de(): parse JSON from cord. + */ + u3_noun + u3ke_json_de(u3_atom); + + /* u3ke_json_en(): serialize JSON to cord. + */ + u3_atom + u3ke_json_en(u3_noun); + + /* u3kf_fork(): build %fork span. + */ + u3_noun + u3kf_fork(u3_noun yed); + + /* u3kz_fork(): build %fork span. + */ + u3_noun + u3kz_fork(u3_noun yed); + + /* u3kfu_repo(): + */ + u3_noun + u3kfu_repo(u3_noun, u3_noun); + +#endif /* ifndef U3_JETS_K_H */ diff --git a/vere/pkg/noun/jets/q.h b/vere/pkg/noun/jets/q.h new file mode 100644 index 0000000..ee059c4 --- /dev/null +++ b/vere/pkg/noun/jets/q.h @@ -0,0 +1,303 @@ +/// @file + +#ifndef U3_JETS_Q_H +#define U3_JETS_Q_H + +#include "types.h" + + /** Tier 1. + **/ + u3_noun u3qa_add(u3_atom, u3_atom); + u3_noun u3qa_dec(u3_atom); + u3_noun u3qa_div(u3_atom, u3_atom); + u3_noun u3qa_gte(u3_atom, u3_atom); + u3_noun u3qa_gth(u3_atom, u3_atom); + u3_noun u3qa_inc(u3_atom); + u3_noun u3qa_lte(u3_atom, u3_atom); + u3_noun u3qa_lth(u3_atom, u3_atom); + u3_noun u3qa_max(u3_atom, u3_atom); + u3_noun u3qa_min(u3_atom, u3_atom); + u3_noun u3qa_mod(u3_atom, u3_atom); + u3_noun u3qa_mul(u3_atom, u3_atom); + u3_noun u3qa_sub(u3_atom, u3_atom); + + /** Tier 2. + **/ + u3_noun u3qb_bind(u3_noun, u3_noun); + u3_noun u3qb_clap(u3_noun, u3_noun, u3_noun); + u3_noun u3qb_drop(u3_noun); + u3_noun u3qb_flop(u3_noun); + u3_noun u3qb_lent(u3_noun); + u3_noun u3qb_levy(u3_noun, u3_noun); + u3_noun u3qb_lien(u3_noun, u3_noun); + u3_noun u3qb_murn(u3_noun, u3_noun); + u3_noun u3qb_need(u3_noun); + u3_noun u3qb_mate(u3_noun, u3_noun); + u3_noun u3qb_reap(u3_atom, u3_noun); + u3_noun u3qb_reel(u3_noun, u3_noun); + u3_noun u3qb_roll(u3_noun, u3_noun); + u3_noun u3qb_skid(u3_noun, u3_noun); + u3_noun u3qb_skim(u3_noun, u3_noun); + u3_noun u3qb_skip(u3_noun, u3_noun); + u3_noun u3qb_scag(u3_atom, u3_noun); + u3_noun u3qb_slag(u3_atom, u3_noun); + u3_noun u3qb_snag(u3_atom, u3_noun); + u3_noun u3qb_sort(u3_noun, u3_noun); + u3_noun u3qb_turn(u3_noun, u3_noun); + u3_noun u3qb_weld(u3_noun, u3_noun); + + /** Tier 3. + **/ + u3_noun u3qc_aor(u3_atom, u3_atom); + u3_noun u3qc_bex(u3_atom); + u3_noun u3qc_xeb(u3_atom); + u3_noun u3qc_can(u3_atom, u3_noun); + u3_noun u3qc_cap(u3_atom); + u3_noun u3qc_cat(u3_atom, u3_atom, u3_atom); + u3_noun u3qc_clz(u3_atom, u3_atom, u3_atom); + u3_noun u3qc_con(u3_atom, u3_atom); + u3_noun u3qc_ctz(u3_atom); + u3_noun u3qc_cut(u3_atom, u3_atom, u3_atom, u3_atom); + u3_noun u3qc_dis(u3_atom, u3_atom); + u3_noun u3qc_dor(u3_atom, u3_atom); + u3_noun u3qc_dvr(u3_atom, u3_atom); + u3_noun u3qc_end(u3_atom, u3_atom, u3_atom); + u3_noun u3qc_gor(u3_atom, u3_atom); + u3_noun u3qc_ham(u3_atom); + u3_noun u3qc_hew(u3_atom, u3_atom, u3_atom, u3_noun); + u3_noun u3qc_lsh(u3_atom, u3_atom, u3_atom); + u3_noun u3qc_mas(u3_atom); + u3_noun u3qc_met(u3_atom, u3_atom); + u3_noun u3qc_mix(u3_atom, u3_atom); + u3_noun u3qc_mor(u3_atom, u3_atom); + u3_noun u3qc_muk(u3_atom, u3_atom, u3_atom); + u3_noun u3qc_peg(u3_atom, u3_atom); + u3_noun u3qc_pow(u3_atom, u3_atom); + u3_noun u3qc_rap(u3_atom, u3_noun); + u3_noun u3qc_rep(u3_atom, u3_atom, u3_noun); + u3_noun u3qc_rev(u3_atom, u3_atom, u3_atom); + u3_noun u3qc_rig(u3_atom, u3_atom, u3_atom); + u3_noun u3qc_rip(u3_atom, u3_atom, u3_atom); + u3_noun u3qc_rsh(u3_atom, u3_atom, u3_atom); + u3_noun u3qc_sew(u3_atom, u3_atom, u3_atom, u3_atom, u3_atom); + u3_noun u3qc_swp(u3_atom, u3_atom); + u3_noun u3qc_sqt(u3_atom); + + c3_d u3qc_rig_s(c3_g, c3_w, c3_g); + + u3_noun u3_po_find_prefix(c3_y one, c3_y two, c3_y three); + u3_noun u3_po_find_suffix(c3_y one, c3_y two, c3_y three); + void u3_po_to_prefix(u3_noun id, c3_y* a, c3_y* b, c3_y* c); + void u3_po_to_suffix(u3_noun id, c3_y* a, c3_y* b, c3_y* c); + + /** Tier 4. + **/ + u3_noun u3qdb_all(u3_noun, u3_noun); + u3_noun u3qdb_any(u3_noun, u3_noun); + u3_noun u3qdb_apt(u3_noun); + u3_noun u3qdb_bif(u3_noun, u3_noun); + u3_noun u3qdb_del(u3_noun, u3_noun); + u3_noun u3qdb_dif(u3_noun, u3_noun); + u3_noun u3qdb_gas(u3_noun, u3_noun); + u3_noun u3qdb_get(u3_noun, u3_noun); + u3_noun u3qdb_has(u3_noun, u3_noun); + u3_noun u3qdb_int(u3_noun, u3_noun); + u3_noun u3qdb_key(u3_noun); + u3_noun u3qdb_put(u3_noun, u3_noun, u3_noun); + u3_noun u3qdb_run(u3_noun, u3_noun); +# define u3qdb_tap u3qdi_tap + u3_noun u3qdb_uni(u3_noun, u3_noun); + u3_noun u3qdb_urn(u3_noun, u3_noun); +# define u3qdb_wyt u3qdi_wyt + + u3_noun u3qdi_apt(u3_noun); + u3_noun u3qdi_bif(u3_noun, u3_noun); + u3_noun u3qdi_del(u3_noun, u3_noun); + u3_noun u3qdi_dif(u3_noun, u3_noun); + u3_noun u3qdi_gas(u3_noun, u3_noun); + u3_noun u3qdi_has(u3_noun, u3_noun); + u3_noun u3qdi_int(u3_noun, u3_noun); + u3_noun u3qdi_put(u3_noun, u3_noun); + u3_noun u3qdi_rep(u3_noun, u3_noun); + u3_noun u3qdi_run(u3_noun, u3_noun); + u3_noun u3qdi_tap(u3_noun); + u3_noun u3qdi_uni(u3_noun, u3_noun); + u3_noun u3qdi_wyt(u3_noun); + + /** Tier 5. + **/ + u3_noun u3qe_cue(u3_atom); + u3_noun u3qe_jam(u3_atom); + u3_noun u3qe_mat(u3_atom); + u3_noun u3qe_rub(u3_atom, u3_atom); + u3_noun u3qe_leer(u3_atom); + u3_noun u3qe_lore(u3_atom); + u3_noun u3qe_loss(u3_noun, u3_noun); + u3_noun u3qe_lune(u3_atom); + u3_noun u3qe_repg(u3_noun, u3_noun, u3_noun); + u3_noun u3qe_rexp(u3_noun, u3_noun); + u3_noun u3qe_trip(u3_atom); + + u3_atom u3qe_scot(u3_atom, u3_atom); + u3_atom u3qe_scow(u3_atom, u3_atom); + + u3_noun u3qea_ecba_en(u3_atom, u3_atom); + u3_noun u3qea_ecba_de(u3_atom, u3_atom); + u3_noun u3qea_ecbb_en(u3_atom, u3_atom); + u3_noun u3qea_ecbb_de(u3_atom, u3_atom); + u3_noun u3qea_ecbc_en(u3_atom, u3_atom); + u3_noun u3qea_ecbc_de(u3_atom, u3_atom); + + u3_noun u3qea_cbca_en(u3_atom, u3_atom, u3_atom); + u3_noun u3qea_cbca_de(u3_atom, u3_atom, u3_atom); + u3_noun u3qea_cbcb_en(u3_atom, u3_atom, u3_atom); + u3_noun u3qea_cbcb_de(u3_atom, u3_atom, u3_atom); + u3_noun u3qea_cbcc_en(u3_atom, u3_atom, u3_atom); + u3_noun u3qea_cbcc_de(u3_atom, u3_atom, u3_atom); + + u3_noun u3qea_de(u3_atom, u3_atom); + u3_noun u3qea_en(u3_atom, u3_atom); + + u3_noun u3qee_recs(u3_atom); + + u3_atom u3qe_fein_ob(u3_atom pyn); + u3_atom u3qe_fynd_ob(u3_atom pyn); + + u3_noun u3qe_hmac(u3_noun, u3_atom, u3_atom, + u3_atom, u3_atom, u3_atom, u3_atom); + + u3_noun u3qe_en_base16(u3_atom len, u3_atom dat); + u3_noun u3qe_de_base16(u3_atom inp); + + u3_noun u3qe_json_de(u3_atom); + u3_atom u3qe_json_en(u3_noun); + + u3_noun u3qeo_raw(u3_atom, u3_atom); + + u3_noun u3qef_drg(u3_noun, u3_atom); + u3_noun u3qef_lug(u3_noun, u3_noun, u3_atom, u3_atom); + + u3_noun u3qer_add(u3_atom, u3_atom, u3_atom); + u3_noun u3qer_sub(u3_atom, u3_atom, u3_atom); + u3_noun u3qer_mul(u3_atom, u3_atom, u3_atom); + u3_noun u3qer_div(u3_atom, u3_atom, u3_atom); + u3_noun u3qer_sqt(u3_atom, u3_atom); + u3_noun u3qer_fma(u3_atom, u3_atom, u3_atom, u3_atom); + u3_noun u3qer_lth(u3_atom, u3_atom); + u3_noun u3qer_lte(u3_atom, u3_atom); + u3_noun u3qer_equ(u3_atom, u3_atom); + u3_noun u3qer_gte(u3_atom, u3_atom); + u3_noun u3qer_gth(u3_atom, u3_atom); + + u3_noun u3qet_add(u3_atom, u3_atom, u3_atom); + u3_noun u3qet_sub(u3_atom, u3_atom, u3_atom); + u3_noun u3qet_mul(u3_atom, u3_atom, u3_atom); + u3_noun u3qet_div(u3_atom, u3_atom, u3_atom); + u3_noun u3qet_sqt(u3_atom, u3_atom); + u3_noun u3qet_fma(u3_atom, u3_atom, u3_atom, u3_atom); + u3_noun u3qet_lth(u3_atom, u3_atom); + u3_noun u3qet_lte(u3_atom, u3_atom); + u3_noun u3qet_equ(u3_atom, u3_atom); + u3_noun u3qet_gte(u3_atom, u3_atom); + u3_noun u3qet_gth(u3_atom, u3_atom); + + u3_noun u3qeq_add(u3_atom, u3_atom, u3_atom); + u3_noun u3qeq_sub(u3_atom, u3_atom, u3_atom); + u3_noun u3qeq_mul(u3_atom, u3_atom, u3_atom); + u3_noun u3qeq_div(u3_atom, u3_atom, u3_atom); + u3_noun u3qeq_sqt(u3_atom, u3_atom); + u3_noun u3qeq_fma(u3_atom, u3_atom, u3_atom, u3_atom); + u3_noun u3qeq_lth(u3_atom, u3_atom); + u3_noun u3qeq_lte(u3_atom, u3_atom); + u3_noun u3qeq_equ(u3_atom, u3_atom); + u3_noun u3qeq_gte(u3_atom, u3_atom); + u3_noun u3qeq_gth(u3_atom, u3_atom); + + u3_noun u3qes_add(u3_atom, u3_atom, u3_atom); + u3_noun u3qes_sub(u3_atom, u3_atom, u3_atom); + u3_noun u3qes_mul(u3_atom, u3_atom, u3_atom); + u3_noun u3qes_div(u3_atom, u3_atom, u3_atom); + u3_noun u3qes_sqt(u3_atom, u3_atom); + u3_noun u3qes_fma(u3_atom, u3_atom, u3_atom, u3_atom); + u3_noun u3qes_lth(u3_atom, u3_atom); + u3_noun u3qes_lte(u3_atom, u3_atom); + u3_noun u3qes_equ(u3_atom, u3_atom); + u3_noun u3qes_gte(u3_atom, u3_atom); + u3_noun u3qes_gth(u3_atom, u3_atom); + + /** Tier 6. + **/ + u3_noun u3qf_bull(u3_noun, u3_noun); + u3_noun u3qf_cell(u3_noun, u3_noun); + u3_noun u3qf_comb(u3_noun, u3_noun); + u3_noun u3qf_cons(u3_noun, u3_noun); + u3_noun u3qf_core(u3_noun, u3_noun); + u3_noun u3qf_cube(u3_noun, u3_noun); + u3_noun u3qf_face(u3_noun, u3_noun); + u3_noun u3qf_fine(u3_noun, u3_noun, u3_noun); + u3_noun u3qf_fitz(u3_noun, u3_noun); + u3_noun u3qf_flay(u3_noun); + u3_noun u3qf_forq(u3_noun, u3_noun); + u3_noun u3qf_fork(u3_noun); + u3_noun u3qf_grof(u3_noun); + u3_noun u3qf_hint(u3_noun, u3_noun); + u3_noun u3qf_hike(u3_noun, u3_noun); + u3_noun u3qf_look(u3_noun, u3_noun); + u3_noun u3qf_loot(u3_noun, u3_noun); + u3_noun u3qf_slot(u3_atom, u3_noun); + u3_noun u3qf_type(u3_noun); + + u3_noun u3qfl_bunt(u3_noun, u3_noun); + u3_noun u3qfl_whip(u3_noun, u3_noun, u3_noun); + + u3_noun u3qfr_fish(u3_noun, u3_noun, u3_noun, u3_noun); + + u3_noun u3qfp_hack(u3_noun, u3_noun); + u3_noun u3qfp_late(u3_noun); + u3_noun u3qfp_open(u3_noun, u3_noun, u3_noun); + u3_noun u3qfp_nepo(u3_noun, u3_noun); + u3_noun u3qfp_rake(u3_noun); + + u3_noun u3qi_la_add_i754(u3_noun, u3_noun, u3_noun, u3_noun); + u3_noun u3qi_la_sub_i754(u3_noun, u3_noun, u3_noun, u3_noun); + u3_noun u3qi_la_mul_i754(u3_noun, u3_noun, u3_noun, u3_noun); + u3_noun u3qi_la_div_i754(u3_noun, u3_noun, u3_noun, u3_noun); + u3_noun u3qi_la_mod_i754(u3_noun, u3_noun, u3_noun, u3_noun); + u3_noun u3qi_la_adds_i754(u3_noun, u3_noun, u3_noun, u3_noun); + u3_noun u3qi_la_subs_i754(u3_noun, u3_noun, u3_noun, u3_noun); + u3_noun u3qi_la_muls_i754(u3_noun, u3_noun, u3_noun, u3_noun); + u3_noun u3qi_la_divs_i754(u3_noun, u3_noun, u3_noun, u3_noun); + u3_noun u3qi_la_mods_i754(u3_noun, u3_noun, u3_noun, u3_noun); + u3_noun u3qi_la_dot_i754(u3_noun, u3_noun, u3_noun, u3_noun); + u3_noun u3qi_la_diag(u3_noun, u3_noun, u3_noun); + u3_noun u3qi_la_transpose(u3_noun, u3_noun, u3_noun); + u3_noun u3qi_la_cumsum_i754(u3_noun, u3_noun, u3_noun); + u3_noun u3qi_la_argmin_i754(u3_noun, u3_noun, u3_noun); + u3_noun u3qi_la_argmax_i754(u3_noun, u3_noun, u3_noun); + u3_noun u3qi_la_ravel_i754(u3_noun, u3_noun, u3_noun); + u3_noun u3qi_la_min_i754(u3_noun, u3_noun, u3_noun); + u3_noun u3qi_la_max_i754(u3_noun, u3_noun, u3_noun); + u3_noun u3qi_la_linspace_i754(u3_noun, u3_noun, u3_noun, u3_noun); + u3_noun u3qi_la_range_i754(u3_noun, u3_noun, u3_noun, u3_noun); + u3_noun u3qi_la_abs_i754(u3_noun, u3_noun, u3_noun); + u3_noun u3qi_la_gth_i754(u3_noun, u3_noun, u3_noun, u3_noun); + u3_noun u3qi_la_gte_i754(u3_noun, u3_noun, u3_noun, u3_noun); + u3_noun u3qi_la_lth_i754(u3_noun, u3_noun, u3_noun, u3_noun); + u3_noun u3qi_la_lte_i754(u3_noun, u3_noun, u3_noun, u3_noun); + u3_noun u3qi_la_trace_i754(u3_noun, u3_noun, u3_noun); + u3_noun u3qi_la_mmul_i754(u3_noun, u3_noun, u3_noun, u3_noun, u3_noun); + +# define u3qfu_van_fan 28 +# define u3qfu_van_rib 58 +# define u3qfu_van_vet 59 + + void u3qf_test(const c3_c*, u3_noun); + + + /** Tier 6. + **/ + u3_noun u3qg_plot_fax(u3_noun, u3_noun); + u3_noun u3qg_plot_met(u3_noun, u3_noun); + +#endif /* ifndef U3_JETS_Q_H */ + diff --git a/vere/pkg/noun/jets/tree.c b/vere/pkg/noun/jets/tree.c new file mode 100644 index 0000000..59a9320 --- /dev/null +++ b/vere/pkg/noun/jets/tree.c @@ -0,0 +1,2657 @@ +/// @file + +/* + These hashes are deprecated, you should instead use no_hashes. + + To generate the hashes, take the sha256 of the jammed battery. For example: + + ``` + > `@ux`(shax (jam -:rip)) + 0x2759.a693.1e9e.f9a5.2c8e.ee43.1088.43d9.4d39.32a6.b04f.86cb.6ba1.5553.4329.3a28 + ``` + + Becomes: + + ``` + 2759a6931e9ef9a52c8eee43108843d94d3932a6b04f86cb6ba1555343293a28 + ``` +*/ + +#include "c3/c3.h" +#include "jets.h" +#include "jets/w.h" + +static c3_c* no_hashes[] = { 0 }; + + + static u3j_harm _140_hex_mimes_base16_en_a[] = {{".2", u3we_en_base16}, {}}; + static c3_c* _140_hex_mimes_base16_en_ha[] = { + "669807766b6802719769fcbfe149d77fb352fcf0922afaf35dc4ab8c201d84e5", + 0 + }; + static u3j_harm _140_hex_mimes_base16_de_a[] = {{".2", u3we_de_base16}, {}}; + static c3_c* _140_hex_mimes_base16_de_ha[] = { + "f1e04d0f452f2783e17b3bd5bbbcf95a651624fe7a2aca28dd9a7feae1319734", + 0 + }; + static u3j_core _140_hex_mimes_base16_d[] = + { { "en", 7, _140_hex_mimes_base16_en_a, 0, _140_hex_mimes_base16_en_ha }, + { "de", 7, _140_hex_mimes_base16_de_a, 0, _140_hex_mimes_base16_de_ha }, + {} + }; + static c3_c* _140_hex_mimes_base16_ha[] = { + "c71bdcc8542fd49aa307f296ac097e300a714fb3b3d1e475426f0916fa61f12c", + 0 + }; +static u3j_core _140_hex_mimes_d[] = + { { "base16", 3, 0, _140_hex_mimes_base16_d, _140_hex_mimes_base16_ha }, + {} + }; +static c3_c* _140_hex_mimes_ha[] = { + "bca2510fd7172643812f9d224deb95ddd69400c990db3d8cfb517a7292e8f06e", + 0 +}; + + static u3j_harm _140_hex_aes_ecba_en_a[] = {{".2", u3wea_ecba_en}, {}}; + static c3_c* _140_hex_aes_ecba_en_ha[] = { + "d7674ad72666a787580c52785c5d4d37ca462ba05e904efbeded5d1bd8b02b4b", + 0 + }; + static u3j_harm _140_hex_aes_ecba_de_a[] = {{".2", u3wea_ecba_de}, {}}; + static c3_c* _140_hex_aes_ecba_de_ha[] = { + "6e6599e93bea2e4297b621814bfb17a9b10849f920d50b14e808ef2e4fe62383", + 0 + }; + static u3j_core _140_hex_aes_ecba_d[] = + { { "en", 7, _140_hex_aes_ecba_en_a, 0, _140_hex_aes_ecba_en_ha }, + { "de", 7, _140_hex_aes_ecba_de_a, 0, _140_hex_aes_ecba_de_ha }, + {} + }; + static c3_c* _140_hex_aes_ecba_ha[] = { + "693409d27b777f73ce92cebd38e9ebceebe1e9c27ad8c9de9afc091e31bd7d9f", + 0 + }; + + static u3j_harm _140_hex_aes_ecbb_en_a[] = {{".2", u3wea_ecbb_en}, {}}; + static c3_c* _140_hex_aes_ecbb_en_ha[] = { + "2c0e3c8f4d741b37324563ecd0ab8fbf87721d1e017f1eeeaf8b6a60515c483b", + 0 + }; + static u3j_harm _140_hex_aes_ecbb_de_a[] = {{".2", u3wea_ecbb_de}, {}}; + static c3_c* _140_hex_aes_ecbb_de_ha[] = { + "cf78f314a1dbbc53b28d6405b98c66a4451350757872d8f7cf0477411e731acc", + 0 + }; + static u3j_core _140_hex_aes_ecbb_d[] = + { { "en", 7, _140_hex_aes_ecbb_en_a, 0, _140_hex_aes_ecbb_en_ha }, + { "de", 7, _140_hex_aes_ecbb_de_a, 0, _140_hex_aes_ecbb_de_ha }, + {} + }; + static c3_c* _140_hex_aes_ecbb_ha[] = { + "7255c39f10e068007d0d64dd40e4f6e83492ed2e3222919440be0d28fd42a5e3", + 0 + }; + + static u3j_harm _140_hex_aes_ecbc_en_a[] = {{".2", u3wea_ecbc_en}, {}}; + static c3_c* _140_hex_aes_ecbc_en_ha[] = { + "f56450f2662082e27ba1aecd2fe04c66aa8641d6eb155f8d3707e242a1e1cf1c", + 0 + }; + static u3j_harm _140_hex_aes_ecbc_de_a[] = {{".2", u3wea_ecbc_de}, {}}; + static c3_c* _140_hex_aes_ecbc_de_ha[] = { + "28c8c44002799fbe94d4aa07922f2b74dbbf234c84684cd8c3187622b4be6a5f", + 0 + }; + static u3j_core _140_hex_aes_ecbc_d[] = + { { "en", 7, _140_hex_aes_ecbc_en_a, 0, _140_hex_aes_ecbc_en_ha }, + { "de", 7, _140_hex_aes_ecbc_de_a, 0, _140_hex_aes_ecbc_de_ha }, + {} + }; + static c3_c* _140_hex_aes_ecbc_ha[] = { + "65da73b8de06a6660ca2d36be881b708362e1f8bc12c01290aed90fdb2977667", + 0 + }; + + static u3j_harm _140_hex_aes_cbca_en_a[] = {{".2", u3wea_cbca_en}, {}}; + static c3_c* _140_hex_aes_cbca_en_ha[] = { + "f85366d520b3179c5dabfb58ee1fa0554f5044f676340439db875841cd4058de", + 0 + }; + static u3j_harm _140_hex_aes_cbca_de_a[] = {{".2", u3wea_cbca_de}, {}}; + static c3_c* _140_hex_aes_cbca_de_ha[] = { + "8b876fbdb1849d8fbabba5e143aea0532a0e5dfff1c784d7ad15fd497ea376b1", + 0 + }; + static u3j_core _140_hex_aes_cbca_d[] = + { { "en", 7, _140_hex_aes_cbca_en_a, 0, _140_hex_aes_cbca_en_ha }, + { "de", 7, _140_hex_aes_cbca_de_a, 0, _140_hex_aes_cbca_de_ha }, + {} + }; + static c3_c* _140_hex_aes_cbca_ha[] = { + "420d04c03b7816b656fe4e8d9fce04f7e6d51d3d274c6511e89cfdb43ebf107e", + 0 + }; + + static u3j_harm _140_hex_aes_cbcb_en_a[] = {{".2", u3wea_cbcb_en}, {}}; + static c3_c* _140_hex_aes_cbcb_en_ha[] = { + "6f961e0629c5efce47793e6a352220d355bb8fba6656c6941a68efb3ba10999d", + 0 + }; + static u3j_harm _140_hex_aes_cbcb_de_a[] = {{".2", u3wea_cbcb_de}, {}}; + static c3_c* _140_hex_aes_cbcb_de_ha[] = { + "7ee2f33f80612e91fda1fd84201266dea6cab596a4e23a535d1a14fb0763f1a3", + 0 + }; + static u3j_core _140_hex_aes_cbcb_d[] = + { { "en", 7, _140_hex_aes_cbcb_en_a, 0, _140_hex_aes_cbcb_en_ha }, + { "de", 7, _140_hex_aes_cbcb_de_a, 0, _140_hex_aes_cbcb_de_ha }, + {} + }; + static c3_c* _140_hex_aes_cbcb_ha[] = { + "1b84daab497795f2afd7238a6a6090be68b78eb6051b0ffa076b2ed9fedeebe5", + 0 + }; + + static u3j_harm _140_hex_aes_cbcc_en_a[] = {{".2", u3wea_cbcc_en}, {}}; + static c3_c* _140_hex_aes_cbcc_en_ha[] = { + "b2578cf17a3095f48cc96cf7690dd7ab4f4e0b76b2578eadc1dce31a075f5b12", + 0 + }; + static u3j_harm _140_hex_aes_cbcc_de_a[] = {{".2", u3wea_cbcc_de}, {}}; + static c3_c* _140_hex_aes_cbcc_de_ha[] = { + "36586f89d702bedb8c2a01ea3614f61627e762488e373106cbb1b27c46e3493c", + 0 + }; + static u3j_core _140_hex_aes_cbcc_d[] = + { { "en", 7, _140_hex_aes_cbcc_en_a, 0, _140_hex_aes_cbcc_en_ha }, + { "de", 7, _140_hex_aes_cbcc_de_a, 0, _140_hex_aes_cbcc_de_ha }, + {} + }; + static c3_c* _140_hex_aes_cbcc_ha[] = { + "3bab1a59c7673afeb659821d54754e8e5e281243e79624fdbe4d7f85cae192c5", + 0 + }; + + static u3j_harm _140_hex_aes_siva_en_a[] = {{".2", u3wea_siva_en}, {}}; + static c3_c* _140_hex_aes_siva_en_ha[] = { + "2a137039301788b8540ed81cbfafe450c9306348d02a6576f5c14f6d6f20ba81", + 0 + }; + static u3j_harm _140_hex_aes_siva_de_a[] = {{".2", u3wea_siva_de}, {}}; + static c3_c* _140_hex_aes_siva_de_ha[] = { + "d0130e9229e71c589429dd87843dc104bc4ee5b426400a547081d8c91a548eaa", + 0 + }; + static u3j_core _140_hex_aes_siva_d[] = + { { "en", 7, _140_hex_aes_siva_en_a, 0, _140_hex_aes_siva_en_ha }, + { "de", 7, _140_hex_aes_siva_de_a, 0, _140_hex_aes_siva_de_ha }, + {} + }; + static c3_c* _140_hex_aes_siva_ha[] = { + "435c5c769d2522d71ab60332bb57440d69c6803d5ca9a5faae88c825cb55d72e", + 0 + }; + + static u3j_harm _140_hex_aes_sivb_en_a[] = {{".2", u3wea_sivb_en}, {}}; + static c3_c* _140_hex_aes_sivb_en_ha[] = { + "1638f56e8728f285e4175c7b514c5a4e1a24205acf33e105f0513cad7ae843cf", + 0 + }; + static u3j_harm _140_hex_aes_sivb_de_a[] = {{".2", u3wea_sivb_de}, {}}; + static c3_c* _140_hex_aes_sivb_de_ha[] = { + "64c9b199fffd6d31baf7457bf27d5a510121be45201b2ae5cc1d9565c0bdd0ff", + 0 + }; + static u3j_core _140_hex_aes_sivb_d[] = + { { "en", 7, _140_hex_aes_sivb_en_a, 0, _140_hex_aes_sivb_en_ha }, + { "de", 7, _140_hex_aes_sivb_de_a, 0, _140_hex_aes_sivb_de_ha }, + {} + }; + static c3_c* _140_hex_aes_sivb_ha[] = { + "0683f3f9067c2a16f68805c778c404179dc5df9019bbbe0f8d680a99a69e61fc", + 0 + }; + + static u3j_harm _140_hex_aes_sivc_en_a[] = {{".2", u3wea_sivc_en}, {}}; + static c3_c* _140_hex_aes_sivc_en_ha[] = { + "d721486dea943efd52d9e6450f4f48dd191c89637a2f842d3ff6edfd3beecbb9", + 0 + }; + static u3j_harm _140_hex_aes_sivc_de_a[] = {{".2", u3wea_sivc_de}, {}}; + static c3_c* _140_hex_aes_sivc_de_ha[] = { + "3ded831b992ea100582229a4d1d9b5c80380128ae6b59b5bb36403ed13dc5d55", + 0 + }; + static u3j_core _140_hex_aes_sivc_d[] = + { { "en", 7, _140_hex_aes_sivc_en_a, 0, _140_hex_aes_sivc_en_ha }, + { "de", 7, _140_hex_aes_sivc_de_a, 0, _140_hex_aes_sivc_de_ha }, + {} + }; + static c3_c* _140_hex_aes_sivc_ha[] = { + "23ef582f110d28aff82b0795305b02e5a718d667bcae97091c08bc26790e7176", + 0 + }; +static u3j_core _140_hex_aes_d[] = + { { "ecba", 7, 0, _140_hex_aes_ecba_d, _140_hex_aes_ecba_ha }, + { "ecbb", 7, 0, _140_hex_aes_ecbb_d, _140_hex_aes_ecbb_ha }, + { "ecbc", 7, 0, _140_hex_aes_ecbc_d, _140_hex_aes_ecbc_ha }, + { "cbca", 7, 0, _140_hex_aes_cbca_d, _140_hex_aes_cbca_ha }, + { "cbcb", 7, 0, _140_hex_aes_cbcb_d, _140_hex_aes_cbcb_ha }, + { "cbcc", 7, 0, _140_hex_aes_cbcc_d, _140_hex_aes_cbcc_ha }, + { "siva", 7, 0, _140_hex_aes_siva_d, _140_hex_aes_siva_ha }, + { "sivb", 7, 0, _140_hex_aes_sivb_d, _140_hex_aes_sivb_ha }, + { "sivc", 7, 0, _140_hex_aes_sivc_d, _140_hex_aes_sivc_ha }, + {} + }; +static c3_c* _140_hex_aes_ha[] = { + "ca4c1b0cff03db74ceca1b844f0223d669aa42934152a784d431469f0eb71527", + 0 +}; + +static u3j_harm _140_hex_leer_a[] = {{".2", u3we_leer}, {}}; +static c3_c* _140_hex_leer_ha[] = { + "8a4486bb09639f6b8cf7631f9bf883256529c6d7d9aa320ab6dfa5517611f0d7", + 0 +}; +static u3j_harm _140_hex_lore_a[] = {{".2", u3we_lore}, {}}; +static c3_c* _140_hex_lore_ha[] = { + "19b13cfea49fd14aafbb20b8b888ba454f809c3f50a7cfeebd43f87336fe052d", + 0 +}; +static u3j_harm _140_hex_loss_a[] = {{".2", u3we_loss}, {}}; +static c3_c* _140_hex_loss_ha[] = { + "67aacd21484078828ad4342297d44c38d9213b8809f83f695c2996378a92dc2a", + 0 +}; +static u3j_harm _140_hex_lune_a[] = {{".2", u3we_lune}, {}}; +static c3_c* _140_hex_lune_ha[] = { + "417472f35b885fe6dd0715e78fd0920cb59f68b738aadc9768e73bc5efa0e570", + 0 +}; + +static u3j_harm _140_hex_coed__ed_puck_a[] = {{".2", u3wee_puck}, {}}; +static c3_c* _140_hex_coed__ed_puck_ha[] = { + "1bc694675842345c50b0e20a2193bb5bcbb42f163fc832431a3d1822a81e4c98", + 0 +}; + +static u3j_harm _140_hex_coed__ed_sign_a[] = {{".2", u3wee_sign}, {}}; + +static u3j_harm _140_hex_coed__ed_sign_octs_a[] = {{".2", u3wee_sign_octs}, {}}; +static c3_c* _140_hex_coed__ed_sign_octs_ha[] = { + "34ad749bf8443611cbf1f7de90a066318bd12be36f2f7f6f55281f6f7ed79754", + 0 +}; + +static u3j_harm _140_hex_coed__ed_veri_a[] = {{".2", u3wee_veri}, {}}; + +static u3j_harm _140_hex_coed__ed_veri_octs_a[] = {{".2", u3wee_veri_octs}, {}}; +static c3_c* _140_hex_coed__ed_veri_octs_ha[] = { + "047a7eeccb2e68aeeee631b6db86e11a5a3aa9e179660553eca6304327612dcf", + 0 +}; +static u3j_harm _140_hex_coed__ed_shar_a[] = {{".2", u3wee_shar}, {}}; +static c3_c* _140_hex_coed__ed_shar_ha[] = { + "52d3b0a2f51f2b0a9dd72bb33db38c73dc873029c365d871d0559a1472a80e72", + 0 +}; + + static u3j_harm _140_hex_coed__ed_point_add_a[] = + {{".2", u3wee_point_add}, {}}; + + static u3j_harm _140_hex_coed__ed_scalarmult_a[] = + {{".2", u3wee_scalarmult}, {}}; + static c3_c* _140_hex_coed__ed_scalarmult_ha[] = { + "72e71cd3aa3af429cd65baa78632500c60edd1d4c82a39d3ba7f231ef97e6316", + 0 + }; + + static u3j_harm _140_hex_coed__ed_scalarmult_base_a[] = + {{".2", u3wee_scalarmult_base}, {}}; + static c3_c* _140_hex_coed__ed_scalarmult_base_ha[] = { + "976fdb8251f9b767af689a0d2c41b88941921bf53777c1ceeb5297511021f9d8", + 0 + }; + + static u3j_harm _140_hex_coed__ed_add_scalarmult_scalarmult_base_a[] = + {{".2", u3wee_add_scalarmult_scalarmult_base}, {}}; + static c3_c* _140_hex_coed__ed_add_scalarmult_scalarmult_base_ha[] = { + "11819071c24a2d7b36daea6e16c78b2e05f9ca3e857cf4815ffe652ce677a61a", + 0 + }; + + static u3j_harm _140_hex_coed__ed_add_double_scalarmult_a[] = + {{".2", u3wee_add_double_scalarmult}, {}}; + static c3_c* _140_hex_coed__ed_add_double_scalarmult_ha[] = { + "0fab78a1e890e53cecade1c22b95813db77e066044e33417a0919695b6cde9ba", + 0 + }; + +static u3j_core _140_hex_coed__ed_d[] = + { { "sign", 7, _140_hex_coed__ed_sign_a, 0, no_hashes }, + { "sign-octs", 7, _140_hex_coed__ed_sign_octs_a, 0, _140_hex_coed__ed_sign_octs_ha }, + { "puck", 7, _140_hex_coed__ed_puck_a, 0, _140_hex_coed__ed_puck_ha }, + { "veri", 7, _140_hex_coed__ed_veri_a, 0, no_hashes }, + { "veri-octs", 7, _140_hex_coed__ed_veri_octs_a, 0, _140_hex_coed__ed_veri_octs_ha }, + { "shar", 7, _140_hex_coed__ed_shar_a, 0, _140_hex_coed__ed_shar_ha }, + { "point-add", 7, _140_hex_coed__ed_point_add_a, 0, 0 }, + { "scalarmult", 7, _140_hex_coed__ed_scalarmult_a, 0, + _140_hex_coed__ed_scalarmult_ha }, + { "scalarmult-base", 7, _140_hex_coed__ed_scalarmult_base_a, 0, + _140_hex_coed__ed_scalarmult_base_ha }, + { "add-scalarmult-scalarmult-base", 7, + _140_hex_coed__ed_add_scalarmult_scalarmult_base_a, 0, + _140_hex_coed__ed_add_scalarmult_scalarmult_base_ha }, + { "add-double-scalarmult", 7, + _140_hex_coed__ed_add_double_scalarmult_a, 0, + _140_hex_coed__ed_add_double_scalarmult_ha }, + {} + }; +static c3_c* _140_hex_coed__ed_ha[] = { + "7a44a962aa72933588b5c99a8b68ebac21ce3c4710c081cb66b3599b45af9ced", + 0 +}; + +static u3j_core _140_hex_coed_d[] = +{ { "ed", 3, 0, _140_hex_coed__ed_d, _140_hex_coed__ed_ha }, + {} +}; +static c3_c* _140_hex_coed_ha[] = { + "4be0254f06d953b69509eb15550595ffad8767d3c3dc2dafcd7c22f92f7704c4", + 0 +}; + + static u3j_harm _140_hex_hmac_hmac_a[] = {{".2", u3we_hmac}, {}}; + static c3_c* _140_hex_hmac_hmac_ha[] = { + "d0dbd778156aef21d18f44a8cffd87296826120af5a4af020dd7aff0f95f03b1", + 0 + }; +static u3j_core _140_hex_hmac_d[] = + { { "hmac", 7, _140_hex_hmac_hmac_a, 0, _140_hex_hmac_hmac_ha }, + {} + }; +static c3_c* _140_hex_hmac_ha[] = { + "976bb4508dbe659eb12aa32d4a481dbd885e40f8a15c505762f1acf43b744234", + 0 +}; + + static u3j_harm _140_hex_argon2_a[] = {{".2", u3we_argon2}, {}}; + static c3_c* _140_hex_argon2_ha[] = { + "4df7cec141ffa2cc76b058846474ca42cc9840666ee3e7e80e565803e83ea98b", + 0 + }; +static u3j_core _140_hex_argon_d[] = + { { "argon2", 511, _140_hex_argon2_a, 0, _140_hex_argon2_ha }, + {} + }; +static c3_c* _140_hex_argon_ha[] = { + "dc704c786192ecd09d4c206a8f28db3202b6e0eb03e3ce63a95987510ac312d6", + 0 +}; + + static u3j_harm _140_hex_scr_pbk_a[] = {{".2", u3wes_pbk, c3y}, {}}; + static c3_c* _140_hex_scr_pbk_ha[] = { 0 }; + static u3j_harm _140_hex_scr_pbl_a[] = {{".2", u3wes_pbl, c3y}, {}}; + static c3_c* _140_hex_scr_pbl_ha[] = { 0 }; + static u3j_harm _140_hex_scr_hsh_a[] = {{".2", u3wes_hsh, c3y}, {}}; + static c3_c* _140_hex_scr_hsh_ha[] = { 0 }; + static u3j_harm _140_hex_scr_hsl_a[] = {{".2", u3wes_hsl, c3y}, {}}; + static c3_c* _140_hex_scr_hsl_ha[] = { 0 }; +static u3j_core _140_hex_scr_d[] = + { { "pbk", 7, _140_hex_scr_pbk_a, 0, _140_hex_scr_pbk_ha }, + { "pbl", 7, _140_hex_scr_pbl_a, 0, _140_hex_scr_pbl_ha }, + { "hsh", 7, _140_hex_scr_hsh_a, 0, _140_hex_scr_hsh_ha }, + { "hsl", 7, _140_hex_scr_hsl_a, 0, _140_hex_scr_hsl_ha }, + {} + }; +static c3_c* _140_hex_scr_ha[] = { 0 }; + + static u3j_harm _140_hex_secp_secp256k1_make_a[] = {{".2", u3we_make, c3y}, {}}; + static c3_c* _140_hex_secp_secp256k1_make_ha[] = { 0 }; + static u3j_harm _140_hex_secp_secp256k1_sign_a[] = {{".2", u3we_sign, c3y}, {}}; + static c3_c* _140_hex_secp_secp256k1_sign_ha[] = { 0 }; + static u3j_harm _140_hex_secp_secp256k1_reco_a[] = {{".2", u3we_reco, c3y}, {}}; + static c3_c* _140_hex_secp_secp256k1_reco_ha[] = { 0 }; + + static u3j_harm _140_hex_secp_secp256k1_schnorr_sosi_a[] = + {{".2", u3we_sosi}, {}}; + static c3_c* _140_hex_secp_secp256k1_schnorr_sosi_ha[] = { 0 }; + static u3j_harm _140_hex_secp_secp256k1_schnorr_sove_a[] = + {{".2", u3we_sove}, {}}; + static c3_c* _140_hex_secp_secp256k1_schnorr_sove_ha[] = { 0 }; + static u3j_core _140_hex_secp_secp256k1_schnorr_d[] = + { { "sosi", 7, + _140_hex_secp_secp256k1_schnorr_sosi_a, 0, + _140_hex_secp_secp256k1_schnorr_sosi_ha }, + { "sove", 7, + _140_hex_secp_secp256k1_schnorr_sove_a, 0, + _140_hex_secp_secp256k1_schnorr_sove_ha }, + {} + }; + static c3_c* _140_hex_secp_secp256k1_schnorr_ha[] = { 0 }; + + static u3j_core _140_hex_secp_secp256k1_d[] = + { { "make", 7, _140_hex_secp_secp256k1_make_a, 0, _140_hex_secp_secp256k1_make_ha }, + { "sign", 7, _140_hex_secp_secp256k1_sign_a, 0, _140_hex_secp_secp256k1_sign_ha }, + { "reco", 7, _140_hex_secp_secp256k1_reco_a, 0, _140_hex_secp_secp256k1_reco_ha }, + { "schnorr", 7, 0, + _140_hex_secp_secp256k1_schnorr_d, + _140_hex_secp_secp256k1_schnorr_ha }, + {} + }; + static c3_c* _140_hex_secp_secp256k1_ha[] = { + "e7fc0971a970aba7ded43bd89e9c82623eb2f346c9c720c63b22f2a646927861", + 0 + }; +static u3j_core _140_hex_secp_d[] = + { { "secp256k1", 3, 0, _140_hex_secp_secp256k1_d, _140_hex_secp_secp256k1_ha }, + {} + }; +static c3_c* _140_hex_secp_ha[] = { + "9f5c23f0e7923b6cf1603388ba52401b6e43881be3560b3acfaab20b25071792", + 0 +}; + + static u3j_harm _140_hex_blake2b_a[] = {{".2", u3we_blake2b, c3y}, {}}; + +static u3j_core _140_hex_blake_d[] = + { { "blake2b", 7, _140_hex_blake2b_a, 0, no_hashes }, + {} + }; +static c3_c* _140_hex_blake_ha[] = { + "ff30d99ffb3e13d8aa50b2b8461c8edfabf0e76de22312d16d1d6daaf3636b5f", + 0 +}; + + static u3j_harm _140_hex_kecc_k224_a[] = + {{".2", u3we_kecc224, c3y, c3y, c3y}, {}}; + static u3j_harm _140_hex_kecc_k256_a[] = + {{".2", u3we_kecc256, c3y, c3y, c3y}, {}}; + static u3j_harm _140_hex_kecc_k384_a[] = + {{".2", u3we_kecc384, c3y, c3y, c3y}, {}}; + static u3j_harm _140_hex_kecc_k512_a[] = + {{".2", u3we_kecc512, c3y, c3y, c3y}, {}}; +static u3j_core _140_hex_kecc_d[] = + { { "k224", 7, _140_hex_kecc_k224_a, 0, no_hashes }, + { "k256", 7, _140_hex_kecc_k256_a, 0, no_hashes }, + { "k384", 7, _140_hex_kecc_k384_a, 0, no_hashes }, + { "k512", 7, _140_hex_kecc_k512_a, 0, no_hashes }, + {} + }; + + static u3j_harm _140_hex_ripemd_160_a[] = {{".2", u3we_ripe, c3y}, {}}; + static c3_c* _140_hex_ripemd_160_ha[] = { + "176684b29926a01f5c60fa584e4691b0cbdc9b93608dcbe7d0cf3585683fa42f", + 0 + }; +static u3j_core _140_hex_ripe_d[] = + { { "ripemd160", 7, _140_hex_ripemd_160_a, 0, _140_hex_ripemd_160_ha }, + {} + }; +static c3_c* _140_hex_ripe_ha[] = { + "b0cb16bf206c0496bb480e5759ea1afa7dee1748b64e5243c23fddb09720ebd0", + 0 +}; + +static u3j_core _140_hex_d[] = +{ { "lore", 63, _140_hex_lore_a, 0, _140_hex_lore_ha }, + { "leer", 63, _140_hex_leer_a, 0, _140_hex_leer_ha }, + { "loss", 63, _140_hex_loss_a, 0, _140_hex_loss_ha }, + { "lune", 127, _140_hex_lune_a, 0, _140_hex_lune_ha }, + + { "coed", 63, 0, _140_hex_coed_d, _140_hex_coed_ha }, + { "aes", 31, 0, _140_hex_aes_d, _140_hex_aes_ha }, + + { "hmac", 63, 0, _140_hex_hmac_d, _140_hex_hmac_ha }, + { "argon", 31, 0, _140_hex_argon_d, _140_hex_argon_ha }, + { "blake", 31, 0, _140_hex_blake_d, _140_hex_blake_ha }, + { "kecc", 31, 0, _140_hex_kecc_d, no_hashes }, + { "ripemd", 31, 0, _140_hex_ripe_d, _140_hex_ripe_ha }, + { "scr", 31, 0, _140_hex_scr_d, _140_hex_scr_ha }, + { "secp", 6, 0, _140_hex_secp_d, _140_hex_secp_ha }, + { "mimes", 31, 0, _140_hex_mimes_d, _140_hex_mimes_ha }, + {} +}; +static c3_c* _140_hex_ha[] = { + "7e393356dd7ac64eed5cd9f5cf0e320d401ca36a0a0ce0f954e7538824114844", + 0 +}; + + +/* layer five +*/ +static u3j_harm _140_pen_cell_a[] = {{".2", u3wf_cell}, {}}; +static c3_c* _140_pen_cell_ha[] = { + "411649e69ff5c5d4a2976b300d213b99af3de724cec0e95f48404b808fc4f428", + 0 +}; +static u3j_harm _140_pen_comb_a[] = {{".2", u3wf_comb}, {}}; +static c3_c* _140_pen_comb_ha[] = { + "f9e37c3b3d5036c31af60f7047391594068638b54db7cf94bfea9dabbdffa547", + 0 +}; +static u3j_harm _140_pen_cons_a[] = {{".2", u3wf_cons}, {}}; +static c3_c* _140_pen_cons_ha[] = { + "b698cc6bc49ea0473e344c784075e99a433b4c5738f90fc58ab17c3eaa44b2e9", + 0 +}; +static u3j_harm _140_pen_core_a[] = {{".2", u3wf_core}, {}}; +static c3_c* _140_pen_core_ha[] = { + "1180e9371cf3465783ef192f9a7f580cd90533f5b52b77b456287f1d580a3535", + 0 +}; +static u3j_harm _140_pen_face_a[] = {{".2", u3wf_face}, {}}; +static c3_c* _140_pen_face_ha[] = { + "a184c44d57f5c94b84a3258b05bf891f3c96a4a4bbff3a8934d11cad0efa81d8", + 0 +}; +static u3j_harm _140_pen_fitz_a[] = {{".2", u3wf_fitz}, {}}; +static c3_c* _140_pen_fitz_ha[] = { + "469abe976ec15eeff9a87bce385f2c87c9bd89814ce2858aa9fee094beea1e5d", + 0 +}; +static u3j_harm _140_pen_flan_a[] = {{".2", u3wf_flan_139}, {}}; +static c3_c* _140_pen_flan_ha[] = { + "cc00cb9373b0274af4e17d7acd77f65d8a2fa886e422c949c12d9d9e7cb3525b", + 0 +}; +static u3j_harm _140_pen_flip_a[] = {{".2", u3wf_flip_139}, {}}; +static c3_c* _140_pen_flip_ha[] = { + "6e97fab9d039e715a30af5da93ef97389babfdcae7ef87655d278e77a1af0f0c", + 0 +}; +static u3j_harm _140_pen_flor_a[] = {{".2", u3wf_flor_139}, {}}; +static c3_c* _140_pen_flor_ha[] = { + "ab5360aacf0c9a325727e90e1caea9c42f5d94ccc248c9e1f253b0922b4c4e63", + 0 +}; +static u3j_harm _140_pen_fork_a[] = {{".2", u3wf_fork}, {}}; +static c3_c* _140_pen_fork_ha[] = { + "36f0ea0e2eb30328b8b83ed43a81c8c9a1f5b4c5a03fd68fd25701991a40b9dd", + 0 +}; + +static u3j_harm _140_pen_look_a[] = {{".2", u3wf_look}, {}}; +static c3_c* _140_pen_look_ha[] = { + "fdda2166a2b9e1a9bda6ab375dd6fb6c610e18f54636a5e89896b45fd0a7169b", + 0 +}; +static u3j_harm _140_pen_loot_a[] = {{".2", u3wf_loot}, {}}; +static c3_c* _140_pen_loot_ha[] = { + "e275da4562ae6da9bd333aeae6b9829e886874c8b891898c0ef5306268eb45c1", + 0 +}; + + static u3j_harm _140_pen__ut_crop_a[] = {{".2", u3wfu_crop}, {}}; + static c3_c* _140_pen__ut_crop_ha[] = { + "e2c6fc3e714a3a98ccd28423dcb9f2c6480935e26b54dd0581eb2ad7e5b16d6f", + 0 + }; + static u3j_harm _140_pen__ut_fish_a[] = {{".2", u3wfu_fish}, {}}; + static c3_c* _140_pen__ut_fish_ha[] = { + "080caee60b5ee4616bf9568bdbceabbf044379c47466e0ae3968cb0146049a84", + 0 + }; + static u3j_harm _140_pen__ut_fuse_a[] = {{".2", u3wfu_fuse}, {}}; + static c3_c* _140_pen__ut_fuse_ha[] = { + "519aac7b40b7018d5df00ddf3977c2ebe0c2e05bcee34796d56a1d54c15e0c84", + 0 + }; + static u3j_harm _140_pen__ut_mint_a[] = {{".2", u3wfu_mint}, {}}; + static c3_c* _140_pen__ut_mint_ha[] = { + "7d980f7425b51bb10fbbd8b465b5d83f5dd4cb6e66d88758a9f7490b812a765e", + 0 + }; + static u3j_harm _140_pen__ut_mull_a[] = {{".2", u3wfu_mull}, {}}; + static c3_c* _140_pen__ut_mull_ha[] = { + "c806329aefd920501ea0faa0cfb0ce3280a74408782efe6d82878ec43ec44fb7", + 0 + }; + + static u3j_harm _140_pen__ut_nest_dext_a[] = {{".2", u3wfu_nest_dext}, {}}; + static c3_c* _140_pen__ut_nest_dext_ha[] = { + "72f33df96800034fc63531293f9b110e6505027195bf8a10ff94b9a1f1ef719b", + 0 + }; + static u3j_core _140_pen__ut_nest_in_d[] = + { + { "nest-dext", 3, _140_pen__ut_nest_dext_a, 0, _140_pen__ut_nest_dext_ha }, + {} + }; + static c3_c* _140_pen__ut_nest_in_ha[] = { + "68378dfa1d1fee0b1cd9593fb561234cec2ae9371a5ffa287c3d2ab9620e198c", + 0 + }; + static u3j_core _140_pen__ut_nest_d[] = + { + { "nest-in", 7, 0, _140_pen__ut_nest_in_d, _140_pen__ut_nest_in_ha }, + {} + }; + static c3_c* _140_pen__ut_nest_ha[] = { + "1e8de5d1225facc1158c92c2ea5e0dc84129cbb317fde3691e224b8c2550d950", + 0 + }; + + static u3j_harm _140_pen__ut_rest_a[] = {{".2", u3wfu_rest}, {}}; + static c3_c* _140_pen__ut_rest_ha[] = { + "b4a83073f4cb03898ef099fab5722a046122dc96a5332ffc82f988df6c186e74", + 0 + }; + +static u3j_core _140_pen__ut_d[] = + { + { "crop", 7, _140_pen__ut_crop_a, 0, _140_pen__ut_crop_ha }, + { "fish", 7, _140_pen__ut_fish_a, 0, _140_pen__ut_fish_ha }, + { "fuse", 7, _140_pen__ut_fuse_a, 0, _140_pen__ut_fuse_ha }, + { "mint", 7, _140_pen__ut_mint_a, 0, _140_pen__ut_mint_ha }, + { "mull", 7, _140_pen__ut_mull_a, 0, _140_pen__ut_mull_ha }, + { "nest", 7, 0, _140_pen__ut_nest_d, _140_pen__ut_nest_ha }, + { "rest", 7, _140_pen__ut_rest_a, 0, _140_pen__ut_rest_ha }, + {} + }; +static c3_c* _140_pen__ut_ha[] = { + "50c79204c82a3ba8f01e085a2e27e7716e5c7ab1929f94423ef1da92cf5ac631", + 0 +}; + +static u3j_hood _140_pen__ut_ho[] = + { { "ar", 12282 }, + { "fan", 28, c3n }, + { "rib", 58, c3n }, + { "vet", 59, c3n }, + + { "blow", 6015 }, + { "burp", 342 }, + { "busk", 1373 }, + { "buss", 374 }, + { "crop", 1494 }, + { "duck", 1524 }, + { "dune", 2991 }, + { "dunk", 3066 }, + { "epla", 12206 }, + { "emin", 1534 }, + { "emul", 6134 }, + { "feel", 1502 }, + { "felt", 94 }, + { "fine", 49086 }, + { "fire", 4 }, + { "fish", 6006 }, + { "fond", 12283 }, + { "fund", 6014 }, + // XX +funk is not part of +ut, and this hook appears to be unused + // remove from here and the +ut hint + // + { "funk", 0xbefafa, c3y, 31 }, + { "fuse", 24021 }, + { "gain", 380 }, + { "lose", 0x2fefe }, + { "mile", 382 }, + { "mine", 372 }, + { "mint", 49083 }, + { "moot", 0x2feff }, + { "mull", 24020 }, + { "nest", 92 }, + { "peel", 1526 }, + { "play", 3006 }, + { "peek", 1532 }, + { "repo", 22 }, + { "rest", 6102 }, + { "tack", 6007 }, + { "toss", 24540 }, + { "wrap", 6140 }, + {}, + }; + +static u3j_core _140_pen_d[] = +{ { "hex", 7, 0, _140_hex_d, _140_hex_ha }, + + { "cell", 7, _140_pen_cell_a, 0, _140_pen_cell_ha }, + { "comb", 7, _140_pen_comb_a, 0, _140_pen_comb_ha }, + { "cons", 7, _140_pen_cons_a, 0, _140_pen_cons_ha }, + { "core", 7, _140_pen_core_a, 0, _140_pen_core_ha }, + { "face", 7, _140_pen_face_a, 0, _140_pen_face_ha }, + { "fitz", 7, _140_pen_fitz_a, 0, _140_pen_fitz_ha }, + { "flan", 7, _140_pen_flan_a, 0, _140_pen_flan_ha }, + { "flip", 7, _140_pen_flip_a, 0, _140_pen_flip_ha }, + { "flor", 7, _140_pen_flor_a, 0, _140_pen_flor_ha }, + { "fork", 7, _140_pen_fork_a, 0, _140_pen_fork_ha }, + { "look", 7, _140_pen_look_a, 0, _140_pen_look_ha }, + { "loot", 7, _140_pen_loot_a, 0, _140_pen_loot_ha }, + { "ut", 15, 0, _140_pen__ut_d, _140_pen__ut_ha, _140_pen__ut_ho }, + {} +}; +static c3_c* _140_pen_ha[] = { + "e6c9e2362bdf2d1f9a2837a0efa154c0b8b9d51aea03a86b5aece573ff423cb1", + 0 +}; + +static u3j_hood _140_pen_ho[] = { + { "ap", 22 }, + { "ut", 86 }, + {}, +}; + + +/* layer four +*/ +static u3j_harm _140_qua_trip_a[] = {{".2", u3we_trip}, {}}; +static c3_c* _140_qua_trip_ha[] = { + "05423b940d10d03891cc23f36eea14b233e5884ef539de3d985d6818dd427b05", + 0 +}; + +static u3j_harm _140_qua_slaw_a[] = {{".2", u3we_slaw}, {}}; +static c3_c* _140_qua_slaw_ha[] = { + "306c9692f48e2700675ed6581e9df4feaee951e1bed3cad7f89aab392e80000f", + 0 +}; +static u3j_harm _140_qua_scot_a[] = {{".2", u3we_scot}, {}}; +static c3_c* _140_qua_scot_ha[] = { + 0 +}; +static u3j_harm _140_qua_scow_a[] = {{".2", u3we_scow}, {}}; +static c3_c* _140_qua_scow_ha[] = { + 0 +}; + + static u3j_harm _140_qua__po_ind_a[] = {{".2", u3wcp_ind}, {}}; + static c3_c* _140_qua__po_ind_ha[] = { + "95bbe9867dbbd1b9ce12671d64cf7b1dee8d987c6770955a83c73291c4537a61", + 0 + }; + static u3j_harm _140_qua__po_ins_a[] = {{".2", u3wcp_ins}, {}}; + static c3_c* _140_qua__po_ins_ha[] = { + "aae783fb258dff7f8ade49756e01f96a2d2100411a88a886732270dcf9f174f0", + 0 + }; + static u3j_harm _140_qua__po_tod_a[] = {{".2", u3wcp_tod}, {}}; + static c3_c* _140_qua__po_tod_ha[] = { + "153aeba45ca2a87aa918e9cea1b26e8104a6e4395979257b075546c1e2654a17", + 0 + }; + static u3j_harm _140_qua__po_tos_a[] = {{".2", u3wcp_tos}, {}}; + static c3_c* _140_qua__po_tos_ha[] = { + "7c5ffad03bcf8b4ea9bdf0c7f7500351923bc0431f3d62d6ce0472790f668fb4", + 0 + }; +static u3j_core _140_qua__po_d[] = + { { "ind", 7, _140_qua__po_ind_a, 0, _140_qua__po_ind_ha }, + { "ins", 7, _140_qua__po_ins_a, 0, _140_qua__po_ins_ha }, + { "tod", 7, _140_qua__po_tod_a, 0, _140_qua__po_tod_ha }, + { "tos", 7, _140_qua__po_tos_a, 0, _140_qua__po_tos_ha }, + {} + }; +static c3_c* _140_qua__po_ha[] = { + "efc5fa7c0efedd490e9a270bb5cf9f90809e6b224f8a381a6b8a481253b237a1", + 0 +}; + + static u3j_harm _140_qua__bend_fun_a[] = {{".2", u3we_bend_fun}, {}}; + static c3_c* _140_qua__bend_fun_ha[] = { + "e6ea05e3d765a005fccde9eb88fb93e06f0b6ea198afa8ed599b056ba179396a", + 0 + }; +static u3j_core _140_qua__bend_d[] = + { { "fun", 7, _140_qua__bend_fun_a, 0, _140_qua__bend_fun_ha }, + {} + }; +static c3_c* _140_qua__bend_ha[] = { + "adc59c6db6d5b26122bc6c04e25c3efe830c9eef68ecf81c492a59ee5e9e20a2", + 0 +}; + + static u3j_harm _140_qua__cold_fun_a[] = {{".2", u3we_cold_fun}, {}}; + static c3_c* _140_qua__cold_fun_ha[] = { + "ad5a0ab7405be9ffda0a9dd34580c6039f6bbb0301920fb2df0c31be3c72c58e", + 0 + }; +static u3j_core _140_qua__cold_d[] = + { { "fun", 7, _140_qua__cold_fun_a, 0, _140_qua__cold_fun_ha }, + {} + }; +static c3_c* _140_qua__cold_ha[] = { + "06c49d8dab6cb057e3ae1d1164e96950944ea48e54ad72347239ea434f1d4b9c", + 0 +}; + + static u3j_harm _140_qua__cook_fun_a[] = {{".2", u3we_cook_fun}, {}}; + static c3_c* _140_qua__cook_fun_ha[] = { + "f2a45612ad9c279b723334ab0915d3ed3ece7727309968c2555f45e0668eeb27", + 0 + }; +static u3j_core _140_qua__cook_d[] = + { { "fun", 7, _140_qua__cook_fun_a, 0, _140_qua__cook_fun_ha }, + {} + }; +static c3_c* _140_qua__cook_ha[] = { + "3ccd46dd21828d7be11f8c093536e305b1df982393a69c40ea73f63a574b3bb1", + 0 +}; + + static u3j_harm _140_qua__comp_fun_a[] = {{".2", u3we_comp_fun}, {}}; + static c3_c* _140_qua__comp_fun_ha[] = { + "bd7fdba84b05b00a63c24d19a03b882578ee9a3b922a3a688f7827c6e64daf96", + 0 + }; +static u3j_core _140_qua__comp_d[] = + { { "fun", 7, _140_qua__comp_fun_a, 0, _140_qua__comp_fun_ha }, + {} + }; +static c3_c* _140_qua__comp_ha[] = { + "7baad25ba87bcbba8ce4fe328280a799765dcf62a8bb761ffd87b939dd8734f2", + 0 +}; + + static u3j_harm _140_qua__easy_fun_a[] = {{".2", u3we_easy_fun}, {}}; + static c3_c* _140_qua__easy_fun_ha[] = { + "4bbbc43ece463d961e572301d0824d3e3cab3ba09ec2756cbefae63ee106044b", + 0 + }; +static u3j_core _140_qua__easy_d[] = + { { "fun", 7, _140_qua__easy_fun_a, 0, _140_qua__easy_fun_ha }, + {} + }; +static c3_c* _140_qua__easy_ha[] = { + "fdcf833943e24323deb6b071497498933ce6c4ba7d4742f2752b6ddb7fb9634e", + 0 +}; + + static u3j_harm _140_qua__glue_fun_a[] = {{".2", u3we_glue_fun}, {}}; + static c3_c* _140_qua__glue_fun_ha[] = { + "ffe0fe8815a2298c51a58e963efbbb7af90830abf11ce50bf9a47f479ce452fb", + 0 + }; +static u3j_core _140_qua__glue_d[] = + { { "fun", 7, _140_qua__glue_fun_a, 0, _140_qua__glue_fun_ha }, + {} + }; +static c3_c* _140_qua__glue_ha[] = { + "079c8a395428c2921b266a84bcf271fbe62f3d873b26680661e13a78df1a3989", + 0 +}; + + static u3j_harm _140_qua__here_fun_a[] = {{".2", u3we_here_fun}, {}}; + static c3_c* _140_qua__here_fun_ha[] = { + "47ec445fcfa89d266dae3c3590ed041d1b05f92d1bce360f232da5d496e4f2eb", + 0 + }; +static u3j_core _140_qua__here_d[] = + { { "fun", 7, _140_qua__here_fun_a, 0, _140_qua__here_fun_ha }, + {} + }; +static c3_c* _140_qua__here_ha[] = { + "4600093be5becba9a65a14b67624e3d9e4c66e0c97ba57b2bc271907eea32ffe", + 0 +}; + + static u3j_harm _140_qua__just_fun_a[] = {{".2", u3we_just_fun}, {}}; + static c3_c* _140_qua__just_fun_ha[] = { + "38bf1fb843bc29837868f2828f32d7e2bbb419b0cb9a1236adea28dfc6ce1040", + 0 + }; +static u3j_core _140_qua__just_d[] = + { { "fun", 7, _140_qua__just_fun_a, 0, _140_qua__just_fun_ha }, + {} + }; +static c3_c* _140_qua__just_ha[] = { + "7d6b2165e52dec478d96cf72478a35b7a92b014e6a15f046f026c0c8cb07679b", + 0 +}; + + static u3j_harm _140_qua__mask_fun_a[] = {{".2", u3we_mask_fun}, {}}; + static c3_c* _140_qua__mask_fun_ha[] = { + "892dfcd5f3d90981fa6e7608e93f0517000d316e7d9c07b3bd390c4966c97f5f", + 0 + }; +static u3j_core _140_qua__mask_d[] = + { { "fun", 7, _140_qua__mask_fun_a, 0, _140_qua__mask_fun_ha }, + {} + }; +static c3_c* _140_qua__mask_ha[] = { + "48e11fc12d7c453cda6ca42577d68e968446aa4d0ad3b99cc674affc7f4507b4", + 0 +}; + + static u3j_harm _140_qua__shim_fun_a[] = {{".2", u3we_shim_fun}, {}}; + static c3_c* _140_qua__shim_fun_ha[] = { + "4e26a0e98adb13ee6718fd68d90910c630df9bb7023b3e3ef40cda6710075fc9", + 0 + }; +static u3j_core _140_qua__shim_d[] = + { { "fun", 7, _140_qua__shim_fun_a, 0, _140_qua__shim_fun_ha }, + {} + }; +static c3_c* _140_qua__shim_ha[] = { + "226b96d1a59daada23a1ea80227c2dbf32ddd748d4c6363f316147ab7f292ced", + 0 +}; + + static u3j_harm _140_qua__stag_fun_a[] = {{".2", u3we_stag_fun}, {}}; + static c3_c* _140_qua__stag_fun_ha[] = { + "f76c7205c23e77809af793bc506f4727071fd029d234317fe78a7f65e2b7d6ea", + 0 + }; +static u3j_core _140_qua__stag_d[] = + { { "fun", 7, _140_qua__stag_fun_a, 0, _140_qua__stag_fun_ha }, + {} + }; +static c3_c* _140_qua__stag_ha[] = { + "fc978af18fb13dc0d77501b6f3eeb538b079b4345eb9195c3dd44c516e69424a", + 0 +}; + + static u3j_harm _140_qua__stew_fun_a[] = {{".2", u3we_stew_fun}, {}}; + static c3_c* _140_qua__stew_fun_ha[] = { + "a700f6bdfdb83ba33b2a3fe92fda3cb1bbfe95e595401538c8371b55fcc61447", + 0 + }; +static u3j_core _140_qua__stew_d[] = + { { "fun", 31, _140_qua__stew_fun_a, 0, _140_qua__stew_fun_ha }, + {} + }; +static c3_c* _140_qua__stew_ha[] = { + "29303fd6ab78cbbccdfc5bcf23d0bff126a0ef2bf4fa11ce70fcf4e6aa5fe60b", + 0 +}; + + static u3j_harm _140_qua__stir_fun_a[] = {{".2", u3we_stir_fun}, {}}; + static c3_c* _140_qua__stir_fun_ha[] = { + "6251308ea3c741e76ef9cb2dc5a71c9d8706d6cce6fdb420fef12915e0c032d6", + 0 + }; +static u3j_core _140_qua__stir_d[] = + { { "fun", 7, _140_qua__stir_fun_a, 0, _140_qua__stir_fun_ha }, + {} + }; +static c3_c* _140_qua__stir_ha[] = { + "4e466aef4d91f0ced008c00e8a4330afb3a43ef81dc1a6d93f1853685f69b9ca", + 0 +}; + +static u3j_harm _140_qua_pfix_a[] = {{".2", u3we_pfix}, {}}; +static c3_c* _140_qua_pfix_ha[] = { + "f7019bccc8b3b04a969878ffed84c9eba4dfa60ee32f984119cacb0c2381656b", + 0 +}; + +static u3j_harm _140_qua_plug_a[] = {{".2", u3we_plug}, {}}; +static c3_c* _140_qua_plug_ha[] = { + "5f5a9824e0952fd565748cc0a20f96cf883a41e2f5707c8a7797e6edd617b79c", + 0 +}; +static u3j_harm _140_qua_pose_a[] = {{".2", u3we_pose}, {}}; +static c3_c* _140_qua_pose_ha[] = { + "5c77203f288ef0f7bcd87871c69673db7fc804b647ecc42992707dc32f0f4611", + 0 +}; + +static u3j_harm _140_qua_sfix_a[] = {{".2", u3we_sfix}, {}}; +static c3_c* _140_qua_sfix_ha[] = { + "00987ed37104b902c5264d4d013826d762bfa80a6b29cfe4b7fa61b1ddd9cfac", + 0 +}; + +static u3j_harm _140_qua_mink_a[] = {{".2", u3we_mink}, {}}; +static c3_c* _140_qua_mink_ha[] = { + "99b653da6a21fa3375424811af288f59164592ece4a072abc460df03e81abcaf", + 0 +}; +static u3j_harm _140_qua_mole_a[] = {{".2", u3we_mole}, {}}; +static c3_c* _140_qua_mole_ha[] = { + "029c1acaff1911c54ce31a3693397394604ea970bf076078c1a1cfa23d2fa74e", + 0 +}; +static u3j_harm _140_qua_mule_a[] = {{".2", u3we_mule}, {}}; +static c3_c* _140_qua_mule_ha[] = { + "d54688d726565ddade7f2636741cad7209ea40fab28d3335555d8a02ff6001c4", + 0 +}; + +static u3j_core _140_qua_d[] = +{ { "pen", 3, 0, _140_pen_d, _140_pen_ha, _140_pen_ho }, + + { "po", 7, 0, _140_qua__po_d, _140_qua__po_ha }, + + { "trip", 7, _140_qua_trip_a, 0, _140_qua_trip_ha }, + + { "bend", 7, 0, _140_qua__bend_d, _140_qua__bend_ha }, + { "cold", 7, 0, _140_qua__cold_d, _140_qua__cold_ha }, + { "comp", 7, 0, _140_qua__comp_d, _140_qua__comp_ha }, + { "cook", 7, 0, _140_qua__cook_d, _140_qua__cook_ha }, + { "easy", 7, 0, _140_qua__easy_d, _140_qua__easy_ha }, + { "glue", 7, 0, _140_qua__glue_d, _140_qua__glue_ha }, + { "here", 7, 0, _140_qua__here_d, _140_qua__here_ha }, + { "just", 7, 0, _140_qua__just_d, _140_qua__just_ha }, + { "mask", 7, 0, _140_qua__mask_d, _140_qua__mask_ha }, + { "shim", 7, 0, _140_qua__shim_d, _140_qua__shim_ha }, + { "stag", 7, 0, _140_qua__stag_d, _140_qua__stag_ha }, + { "stew", 7, 0, _140_qua__stew_d, _140_qua__stew_ha }, + { "stir", 7, 0, _140_qua__stir_d, _140_qua__stir_ha }, + + { "pfix", 7, _140_qua_pfix_a, 0, _140_qua_pfix_ha }, + { "plug", 7, _140_qua_plug_a, 0, _140_qua_plug_ha }, + { "pose", 7, _140_qua_pose_a, 0, _140_qua_pose_ha }, + { "sfix", 7, _140_qua_sfix_a, 0, _140_qua_sfix_ha }, + + { "mink", 7, _140_qua_mink_a, 0, _140_qua_mink_ha }, + { "mole", 7, _140_qua_mole_a, 0, _140_qua_mole_ha }, + { "mule", 7, _140_qua_mule_a, 0, _140_qua_mule_ha }, + + { "scot", 7, _140_qua_scot_a, 0, _140_qua_scot_ha }, + { "scow", 7, _140_qua_scow_a, 0, _140_qua_scow_ha }, + { "slaw", 7, _140_qua_slaw_a, 0, _140_qua_slaw_ha }, + {} +}; +static c3_c* _140_qua_ha[] = { + "db9b4b21c0a8a8324105cbccc1421ef2a715ef0562c280b943fe1d96651cd9cc", + 0 +}; + +static u3j_hood _140_qua_ho[] = { + { "mute", 0x2fbabe }, + { "show", 24406 }, + { "mure", 1404 }, + {}, +}; + + +/* layer three +*/ + static u3j_harm _140_tri__cofl__drg_a[] = {{".2", u3wef_drg}, {}}; + static c3_c* _140_tri__cofl__drg_ha[] = { + "6063adb8cac639f7b20d5e7700c8108266be04f99cce4434f906240b424bf36d", + 0 + }; + static u3j_harm _140_tri__cofl__lug_a[] = {{".2", u3wef_lug}, {}}; + static c3_c* _140_tri__cofl__lug_ha[] = { + "f146a84731447e5c4b1e7b6e9331b33d1babed09bb0618e134c9535062154a87", + 0 + }; +static u3j_core _140_tri__cofl_d[] = + { { "drg", 7, _140_tri__cofl__drg_a, 0, _140_tri__cofl__drg_ha }, + { "lug", 7, _140_tri__cofl__lug_a, 0, _140_tri__cofl__lug_ha }, + {} + }; +static c3_c* _140_tri__cofl_ha[] = { + "f320c5bf51db85f55b900f4160f7e0ab9ef267f43ddb698900de034c6e2600d5", + 0 +}; + + static u3j_harm _140_tri__rd_add_a[] = {{".2", u3wer_add}, {}}; + static c3_c* _140_tri__rd_add_ha[] = { + "90dfaaadb2878d6d89a808ce4199e5bb239fa981e1c2edf24dc54aa3fcab55a5", + 0 + }; + static u3j_harm _140_tri__rd_sub_a[] = {{".2", u3wer_sub}, {}}; + static c3_c* _140_tri__rd_sub_ha[] = { + "5898a2424ba815d66d83917953f01860e63207f4200a447f632d9a5cc77a8a9c", + 0 + }; + static u3j_harm _140_tri__rd_mul_a[] = {{".2", u3wer_mul}, {}}; + static c3_c* _140_tri__rd_mul_ha[] = { + "a3af44ef4cd89afe78f1088bddb7d56dfa7fc209153256557c98ff34b67976bc", + 0 + }; + static u3j_harm _140_tri__rd_div_a[] = {{".2", u3wer_div}, {}}; + static c3_c* _140_tri__rd_div_ha[] = { + "9be3b38b9b4b0b0cd0bb060529c8f439cb0589aa9c3528efc519fbcc6845e98d", + 0 + }; + static u3j_harm _140_tri__rd_sqt_a[] = {{".2", u3wer_sqt}, {}}; + static c3_c* _140_tri__rd_sqt_ha[] = { + "0413678ac8ec89c3425ba762cd24b2a8a455543ec9b5dd719524e6b834e0c99c", + 0 + }; + static u3j_harm _140_tri__rd_fma_a[] = {{".2", u3wer_fma}, {}}; + static c3_c* _140_tri__rd_fma_ha[] = { + "7c920238dd42fb645c057cc950ed7ece775d5f502a0faf6ef5d17d348e0fc3e3", + 0 + }; + static u3j_harm _140_tri__rd_lth_a[] = {{".2", u3wer_lth}, {}}; + static c3_c* _140_tri__rd_lth_ha[] = { + "a108f1ac15c1d4e2c86457c9afc97a97a5954003c709c3c19c722b37255bcba9", + 0 + }; + static u3j_harm _140_tri__rd_lte_a[] = {{".2", u3wer_lte}, {}}; + static c3_c* _140_tri__rd_lte_ha[] = { + "ef9a6b2c5cdd0d4de550a32679d242693131cdc3cf40ac914eadfa7d6d9f1bac", + 0 + }; + static u3j_harm _140_tri__rd_equ_a[] = {{".2", u3wer_equ}, {}}; + static c3_c* _140_tri__rd_equ_ha[] = { + "c93cdb951dca3b0ac61070780f95e1baa3718fe519d0268305c032cf14a21e39", + 0 + }; + static u3j_harm _140_tri__rd_gte_a[] = {{".2", u3wer_gte}, {}}; + static c3_c* _140_tri__rd_gte_ha[] = { + "6857077d97e2fc203b555dc20748c33d34b694d33c48f628543bea6491e722a6", + 0 + }; + static u3j_harm _140_tri__rd_gth_a[] = {{".2", u3wer_gth}, {}}; + static c3_c* _140_tri__rd_gth_ha[] = { + "87fd815913fa590c715d3a96ada5bae6298f3e7823af90ffcdf235f493c56330", + 0 + }; +static u3j_core _140_tri__rd_d[] = + { { "add", 7, _140_tri__rd_add_a, 0, _140_tri__rd_add_ha }, + { "sub", 7, _140_tri__rd_sub_a, 0, _140_tri__rd_sub_ha }, + { "mul", 7, _140_tri__rd_mul_a, 0, _140_tri__rd_mul_ha }, + { "div", 7, _140_tri__rd_div_a, 0, _140_tri__rd_div_ha }, + { "sqt", 7, _140_tri__rd_sqt_a, 0, _140_tri__rd_sqt_ha }, + { "fma", 7, _140_tri__rd_fma_a, 0, _140_tri__rd_fma_ha }, + { "lth", 7, _140_tri__rd_lth_a, 0, _140_tri__rd_lth_ha }, + { "lte", 7, _140_tri__rd_lte_a, 0, _140_tri__rd_lte_ha }, + { "equ", 7, _140_tri__rd_equ_a, 0, _140_tri__rd_equ_ha }, + { "gte", 7, _140_tri__rd_gte_a, 0, _140_tri__rd_gte_ha }, + { "gth", 7, _140_tri__rd_gth_a, 0, _140_tri__rd_gth_ha }, + {} + }; +static c3_c* _140_tri__rd_ha[] = { + "0afab285837f9c88faff3ac8f3f49b5e259da253e0505cd823a53d4e826261f7", + 0 +}; + + static u3j_harm _140_tri__rs_add_a[] = {{".2", u3wet_add}, {}}; + static c3_c* _140_tri__rs_add_ha[] = { + "b89a1e348628fd9b4fd520aabbf6c53e12be5bbf661b9094f7a9841be3f51de9", + 0 + }; + static u3j_harm _140_tri__rs_sub_a[] = {{".2", u3wet_sub}, {}}; + static c3_c* _140_tri__rs_sub_ha[] = { + "9d13b86d17908830f93b920e80e1a985105583597f6fb640f175c98052e357f1", + 0 + }; + static u3j_harm _140_tri__rs_mul_a[] = {{".2", u3wet_mul}, {}}; + static c3_c* _140_tri__rs_mul_ha[] = { + "5c61a9e335f6c139332523d871ca5773ab476365b623444370474fde08639061", + 0 + }; + static u3j_harm _140_tri__rs_div_a[] = {{".2", u3wet_div}, {}}; + static c3_c* _140_tri__rs_div_ha[] = { + "a7147a81be3ef5a1c0de6587edb2990e30057d7871d73632eabc8dc567e751c8", + 0 + }; + static u3j_harm _140_tri__rs_sqt_a[] = {{".2", u3wet_sqt}, {}}; + static c3_c* _140_tri__rs_sqt_ha[] = { + "c403bb48d78bcfa9cd4128b7f9eb362e71e5269ab6578fb0bb5e70b4244c5781", + 0 + }; + static u3j_harm _140_tri__rs_fma_a[] = {{".2", u3wet_fma}, {}}; + static c3_c* _140_tri__rs_fma_ha[] = { + "afc14914eb8f579a0c6620db69bc951329325747a8ef01c2d0e5feb29e9a9ddd", + 0 + }; + static u3j_harm _140_tri__rs_lth_a[] = {{".2", u3wet_lth}, {}}; + static c3_c* _140_tri__rs_lth_ha[] = { + "e7efa422def6b6dbd25b5f664462adb3895b8b45f9531877c9dbfe40a96612bf", + 0 + }; + static u3j_harm _140_tri__rs_lte_a[] = {{".2", u3wet_lte}, {}}; + static c3_c* _140_tri__rs_lte_ha[] = { + "b45e1ef16c47dc9b99865c7e75d4c2094c0e206ed538818a38da0adb7fbe2ce3", + 0 + }; + static u3j_harm _140_tri__rs_equ_a[] = {{".2", u3wet_equ}, {}}; + static c3_c* _140_tri__rs_equ_ha[] = { + "8c1178311ded837292c297380e48cf7e0bc4d83962dadcafda0c9ef9f20e39f2", + 0 + }; + static u3j_harm _140_tri__rs_gte_a[] = {{".2", u3wet_gte}, {}}; + static c3_c* _140_tri__rs_gte_ha[] = { + "50f5eb237b74e772eb6a3257441078461450cd4a25cf9bd97cb1a5e00f4ff4d2", + 0 + }; + static u3j_harm _140_tri__rs_gth_a[] = {{".2", u3wet_gth}, {}}; + static c3_c* _140_tri__rs_gth_ha[] = { + "505842ff486f0bb8fa63f04d2fd6f806dc760f9b4a12a3bf2d57da92f560785b", + 0 + }; +static u3j_core _140_tri__rs_d[] = + { { "add", 7, _140_tri__rs_add_a, 0, _140_tri__rs_add_ha }, + { "sub", 7, _140_tri__rs_sub_a, 0, _140_tri__rs_sub_ha }, + { "mul", 7, _140_tri__rs_mul_a, 0, _140_tri__rs_mul_ha }, + { "div", 7, _140_tri__rs_div_a, 0, _140_tri__rs_div_ha }, + { "sqt", 7, _140_tri__rs_sqt_a, 0, _140_tri__rs_sqt_ha }, + { "fma", 7, _140_tri__rs_fma_a, 0, _140_tri__rs_fma_ha }, + { "lth", 7, _140_tri__rs_lth_a, 0, _140_tri__rs_lth_ha }, + { "lte", 7, _140_tri__rs_lte_a, 0, _140_tri__rs_lte_ha }, + { "equ", 7, _140_tri__rs_equ_a, 0, _140_tri__rs_equ_ha }, + { "gte", 7, _140_tri__rs_gte_a, 0, _140_tri__rs_gte_ha }, + { "gth", 7, _140_tri__rs_gth_a, 0, _140_tri__rs_gth_ha }, + {} + }; +static c3_c* _140_tri__rs_ha[] = { + "6c7027c5de34540a4b1548039e5423fb44727079af054b7135a3e961ec8dede8", + 0 +}; + + static u3j_harm _140_tri__rq_add_a[] = {{".2", u3weq_add}, {}}; + static c3_c* _140_tri__rq_add_ha[] = { + "9c4c2a37550930605495401886d41fb9fbc2eba487e0ba845130fe88e4c52a01", + 0 + }; + static u3j_harm _140_tri__rq_sub_a[] = {{".2", u3weq_sub}, {}}; + static c3_c* _140_tri__rq_sub_ha[] = { + "f3b027090a1bb5af74234301facfbf64503b3e0599501ade12cb05aa158a79a3", + 0 + }; + static u3j_harm _140_tri__rq_mul_a[] = {{".2", u3weq_mul}, {}}; + static c3_c* _140_tri__rq_mul_ha[] = { + "15c03b1f3081514c4767d86297aaebf1d62af7f3437f30821f011b17ed769f3a", + 0 + }; + static u3j_harm _140_tri__rq_div_a[] = {{".2", u3weq_div}, {}}; + static c3_c* _140_tri__rq_div_ha[] = { + "094105c77e37e548ea1b8d49a132ab97d90a0ab5f329340400c381bcd44de347", + 0 + }; + static u3j_harm _140_tri__rq_sqt_a[] = {{".2", u3weq_sqt}, {}}; + static c3_c* _140_tri__rq_sqt_ha[] = { + "a031cd5b8e05f997323b0ca1ca9d2419401d7d2acc2da6fc6387fe57701b84b0", + 0 + }; + static u3j_harm _140_tri__rq_fma_a[] = {{".2", u3weq_fma}, {}}; + static c3_c* _140_tri__rq_fma_ha[] = { + "871664a9305808a671aacf1de0e83f8e951611033170d86370352afb363b79bc", + 0 + }; + static u3j_harm _140_tri__rq_lth_a[] = {{".2", u3weq_lth}, {}}; + static c3_c* _140_tri__rq_lth_ha[] = { + "b10822caa442c8e9f6b9eb52aac5796a42bed5ae0eef7fe49d4075b38bf78ddd", + 0 + }; + static u3j_harm _140_tri__rq_lte_a[] = {{".2", u3weq_lte}, {}}; + static c3_c* _140_tri__rq_lte_ha[] = { + "3316346be3e9464fbb5b0feff16cd2252086004229d08f8eaa320f9509d6a029", + 0 + }; + static u3j_harm _140_tri__rq_equ_a[] = {{".2", u3weq_equ}, {}}; + static c3_c* _140_tri__rq_equ_ha[] = { + "154be82a7b8ecf4571015d9ef6c0e90ffd8c3e8803441d9c2df5a4ea484ccf3b", + 0 + }; + static u3j_harm _140_tri__rq_gte_a[] = {{".2", u3weq_gte}, {}}; + static c3_c* _140_tri__rq_gte_ha[] = { + "edbe94f9cfefa89deef7f6c11f4ce8240fd93970dbd6130e632d0447452a612a", + 0 + }; + static u3j_harm _140_tri__rq_gth_a[] = {{".2", u3weq_gth}, {}}; + static c3_c* _140_tri__rq_gth_ha[] = { + "50e85936cfad61659ed1bfdab26fda2b2696571b9aa4b4c55dc5c0d919edc296", + 0 + }; +static u3j_core _140_tri__rq_d[] = + { { "add", 7, _140_tri__rq_add_a, 0, _140_tri__rq_add_ha }, + { "sub", 7, _140_tri__rq_sub_a, 0, _140_tri__rq_sub_ha }, + { "mul", 7, _140_tri__rq_mul_a, 0, _140_tri__rq_mul_ha }, + { "div", 7, _140_tri__rq_div_a, 0, _140_tri__rq_div_ha }, + { "sqt", 7, _140_tri__rq_sqt_a, 0, _140_tri__rq_sqt_ha }, + { "fma", 7, _140_tri__rq_fma_a, 0, _140_tri__rq_fma_ha }, + { "lth", 7, _140_tri__rq_lth_a, 0, _140_tri__rq_lth_ha }, + { "lte", 7, _140_tri__rq_lte_a, 0, _140_tri__rq_lte_ha }, + { "equ", 7, _140_tri__rq_equ_a, 0, _140_tri__rq_equ_ha }, + { "gte", 7, _140_tri__rq_gte_a, 0, _140_tri__rq_gte_ha }, + { "gth", 7, _140_tri__rq_gth_a, 0, _140_tri__rq_gth_ha }, + {} + }; +static c3_c* _140_tri__rq_ha[] = { + "b772cd5901a18dc91852fada74c2a1e4b1bbf4e7465451b0d8bdcc86d2288c22", + 0 +}; + + static u3j_harm _140_tri__rh_add_a[] = {{".2", u3wes_add}, {}}; + static c3_c* _140_tri__rh_add_ha[] = { + "7e2b600eced08d774800a6a3d82e18189db85010b870c26905ee38008d3d301e", + 0 + }; + static u3j_harm _140_tri__rh_sub_a[] = {{".2", u3wes_sub}, {}}; + static c3_c* _140_tri__rh_sub_ha[] = { + "827dfb41660cb4743a88d921b4185bd2000ee6f0708ec36ac8aba2e4e19c0875", + 0 + }; + static u3j_harm _140_tri__rh_mul_a[] = {{".2", u3wes_mul}, {}}; + static c3_c* _140_tri__rh_mul_ha[] = { + "ec2a010128aca0a6f74196f3de4fe7b6617fd810d3b19f7bf5878afb787e8b86", + 0 + }; + static u3j_harm _140_tri__rh_div_a[] = {{".2", u3wes_div}, {}}; + static c3_c* _140_tri__rh_div_ha[] = { + "067a3dafb0158bc2441729beb2c0934c6c6ccf0a9b5193db9c16f22b490b27c6", + 0 + }; + static u3j_harm _140_tri__rh_sqt_a[] = {{".2", u3wes_sqt}, {}}; + static c3_c* _140_tri__rh_sqt_ha[] = { + "3fdbba47626d91d41fcdf460ad38018c78b0233d7ec4d0fac406a8c5357a2384", + 0 + }; + static u3j_harm _140_tri__rh_fma_a[] = {{".2", u3wes_fma}, {}}; + static c3_c* _140_tri__rh_fma_ha[] = { + "ada2adf5a88ba61759219926aef950e72ae6926c6e10c30ecd0f9c99e79beca0", + 0 + }; + static u3j_harm _140_tri__rh_lth_a[] = {{".2", u3wes_lth}, {}}; + static c3_c* _140_tri__rh_lth_ha[] = { + "70c9bc0073d23371d8155c28795f5acbff1a9504a5a3881c8693aa7c1f3d35d4", + 0 + }; + static u3j_harm _140_tri__rh_lte_a[] = {{".2", u3wes_lte}, {}}; + static c3_c* _140_tri__rh_lte_ha[] = { + "6157e766050f9697c05b111ad2a582459a63a98b3b1ec70881f9ad943f951a0d", + 0 + }; + static u3j_harm _140_tri__rh_equ_a[] = {{".2", u3wes_equ}, {}}; + static c3_c* _140_tri__rh_equ_ha[] = { + "72664392e2a00137383aa5a55e947c5e95c7b3172f71a7238dc0d55050196884", + 0 + }; + static u3j_harm _140_tri__rh_gte_a[] = {{".2", u3wes_gte}, {}}; + static c3_c* _140_tri__rh_gte_ha[] = { + "145355b13712b9471031e755d0ab271907efdb9a287b1bacb2f1d0338d28dbf6", + 0 + }; + static u3j_harm _140_tri__rh_gth_a[] = {{".2", u3wes_gth}, {}}; + static c3_c* _140_tri__rh_gth_ha[] = { + "d53219ee10acdd291a1e2b34fa5f543c780a0301357e93cfebd466e556f9824e", + 0 + }; +static u3j_core _140_tri__rh_d[] = + { { "add", 7, _140_tri__rh_add_a, 0, _140_tri__rh_add_ha }, + { "sub", 7, _140_tri__rh_sub_a, 0, _140_tri__rh_sub_ha }, + { "mul", 7, _140_tri__rh_mul_a, 0, _140_tri__rh_mul_ha }, + { "div", 7, _140_tri__rh_div_a, 0, _140_tri__rh_div_ha }, + { "sqt", 7, _140_tri__rh_sqt_a, 0, _140_tri__rh_sqt_ha }, + { "fma", 7, _140_tri__rh_fma_a, 0, _140_tri__rh_fma_ha }, + { "lth", 7, _140_tri__rh_lth_a, 0, _140_tri__rh_lth_ha }, + { "lte", 7, _140_tri__rh_lte_a, 0, _140_tri__rh_lte_ha }, + { "equ", 7, _140_tri__rh_equ_a, 0, _140_tri__rh_equ_ha }, + { "gte", 7, _140_tri__rh_gte_a, 0, _140_tri__rh_gte_ha }, + { "gth", 7, _140_tri__rh_gth_a, 0, _140_tri__rh_gth_ha }, + {} + }; +static c3_c* _140_tri__rh_ha[] = { + "c38f8c0a7e2f1fccb52c459f60a30ec5d21635cafaf1aa120b70c1fa91cf7da5", + 0 +}; + + static u3j_harm _140_tri__og_raw_a[] = {{".2", u3weo_raw}, {}}; + static c3_c* _140_tri__og_raw_ha[] = { + "bbcbefc237dbebf6c141ba14fd9e0464a836127fd123d10da5f121e82d49ebdb", + 0 + }; +static u3j_core _140_tri__og_d[] = + { { "raw", 7, _140_tri__og_raw_a, 0, _140_tri__og_raw_ha }, + {} + }; +static c3_c* _140_tri__og_ha[] = { + "74b9ae67eeabbffcff969ac7fdc7f4f0f4f67af64931e969bcac50d084e15fc0", + 0 +}; + + static u3j_harm _140_tri__sha_sha1_a[] = {{".2", u3we_sha1}, {}}; + static c3_c* _140_tri__sha_sha1_ha[] = { + "75aababa0688619d9df36238269119302a64ad2e3c69c53bd0057fe6b1abaf0c", + 0 + }; +static u3j_core _140_tri__sha_d[] = + { { "sha1", 7, _140_tri__sha_sha1_a, 0, _140_tri__sha_sha1_ha }, + {} + }; +static c3_c* _140_tri__sha_ha[] = { + "3c22d2f8719cb626e8dfe1a4206bcbc14b678c1422c48322054b40f84416d557", + 0 +}; + +static u3j_harm _140_tri_shax_a[] = {{".2", u3we_shax}, {}}; +static c3_c* _140_tri_shax_ha[] = { + "0fc53de3ddc8b8f84a46136f1728fa3ed66a5113888d14907589d16bf5927ad8", + 0 +}; +static u3j_harm _140_tri_shay_a[] = {{".2", u3we_shay}, {}}; +static c3_c* _140_tri_shay_ha[] = { + "b6dbc72e15c2204f83f902619b7a60328f29c9d302ddb35c435111dea28c5470", + 0 +}; +static u3j_harm _140_tri_shas_a[] = {{".2", u3we_shas}, {}}; +static c3_c* _140_tri_shas_ha[] = { + "5230583767b7625b3496248ed03b6b94c1d4ee9b26342f9390bf999ec9b6cfdb", + 0 +}; +static u3j_harm _140_tri_shal_a[] = {{".2", u3we_shal}, {}}; +static c3_c* _140_tri_shal_ha[] = { + "3242912e29e3e1ed8d1a395cc860a82d78961b4278ed79bbdeb37cb5615bbf20", + 0 +}; + + static u3j_harm _140_ob_fein_a[] = {{".2", u3we_fein_ob}, {}}; + static c3_c* _140_ob_fein_ha[] = { + 0 + }; + static u3j_harm _140_ob_fynd_a[] = {{".2", u3we_fynd_ob}, {}}; + static c3_c* _140_ob_fynd_ha[] = { + 0 + }; +static u3j_core _140_ob_d[] = { + { "fein", 7, _140_ob_fein_a, 0, _140_ob_fein_ha }, + { "fynd", 7, _140_ob_fynd_a, 0, _140_ob_fynd_ha }, + {} +}; +static c3_c* _140_ob_ha[] = { + "13ebfbdee69396bc1d980fc4dcbcdaa9cc3fb9c011e6cf188e71311a8bffc8e6", + 0 +}; +static u3j_hood _140_ob_ho[] = { + { "fein", 42 }, + { "fynd", 20 }, + {}, +}; + +static u3j_core _140_tri_d[] = +{ { "qua", 3, 0, _140_qua_d, _140_qua_ha, _140_qua_ho }, + + { "cofl", 7, 0, _140_tri__cofl_d, _140_tri__cofl_ha }, + { "rd", 7, 0, _140_tri__rd_d, _140_tri__rd_ha }, + { "rs", 7, 0, _140_tri__rs_d, _140_tri__rs_ha }, + { "rq", 7, 0, _140_tri__rq_d, _140_tri__rq_ha }, + { "rh", 7, 0, _140_tri__rh_d, _140_tri__rh_ha }, + { "og", 7, 0, _140_tri__og_d, _140_tri__og_ha }, + + { "sha", 7, 0, _140_tri__sha_d, _140_tri__sha_ha }, + { "shax", 7, _140_tri_shax_a, 0, _140_tri_shax_ha }, + { "shay", 7, _140_tri_shay_a, 0, _140_tri_shay_ha }, + { "shas", 7, _140_tri_shas_a, 0, _140_tri_shas_ha }, + { "shal", 7, _140_tri_shal_a, 0, _140_tri_shal_ha }, + + { "ob", 3, 0, _140_ob_d, _140_ob_ha, _140_ob_ho }, + {} +}; +static c3_c* _140_tri_ha[] = { + "e7339eb317038f64555717c5624e4571fe9654d471c1a78454129afdbcad9b53", + 0 +}; + +static u3j_hood _140_tri_ho[] = { + { "ob", 20 }, + { "yore", 5462 }, + { "year", 44975 }, + {}, +}; + + +/* layer two +*/ +static u3j_harm _140_two_find_a[] = {{".2", u3wb_find, c3y}, {}}; +static c3_c* _140_two_find_ha[] = { + "cab18d537962b48d38fa061844f44c4635ee11c74fdf403aa80d3a6d1b15c177", + 0 +}; +static u3j_harm _140_two_flop_a[] = {{".2", u3wb_flop, c3y}, {}}; +static c3_c* _140_two_flop_ha[] = { + "73d496aac2ce6fd9475645c76f949ae0228f8f5ae6738529b08ed9aeb58255fe", + 0 +}; +static u3j_harm _140_two_lent_a[] = {{".2", u3wb_lent, c3y}, {}}; +static c3_c* _140_two_lent_ha[] = { + "1b98ab19350f6a6753ea4bd6daf4509a7c5681b7ac20c83204fe62846d46c2c3", + 0 +}; +static u3j_harm _140_two_levy_a[] = {{".2", u3wb_levy, c3y}, {}}; +static c3_c* _140_two_levy_ha[] = { + "634f1f506b17b4b50e6902f6e21b290ffc5305d1546075cba745c9e195fcc56b", + 0 +}; +static u3j_harm _140_two_lien_a[] = {{".2", u3wb_lien, c3y}, {}}; +static c3_c* _140_two_lien_ha[] = { + "2ffb70864f2be120b48869b27c614aadeed1390bde497d8940fe85b7861093ea", + 0 +}; +static u3j_harm _140_two_murn_a[] = {{".2", u3wb_murn, c3y}, {}}; +static c3_c* _140_two_murn_ha[] = { + "53257aaee131c2a892529c2ee75271160811814086456e8fdf249eebdf31b990", + 0 +}; +static u3j_harm _140_two_need_a[] = {{".2", u3wb_need, c3y}, {}}; +static c3_c* _140_two_need_ha[] = { + "bfdd39af478811efe816e69e8c9202d10c41f646c0d27f39c23e4fe1aec807dd", + 0 +}; +static u3j_harm _140_two_reap_a[] = {{".2", u3wb_reap, c3y}, {}}; +static c3_c* _140_two_reap_ha[] = { + "cf6bd10b97b418b67c645374712c768d9e7e9809c14ecf36a5c507e5fc4b4039", + 0 +}; +static u3j_harm _140_two_reel_a[] = {{".2", u3wb_reel, c3y}, {}}; +static c3_c* _140_two_reel_ha[] = { + "36108d1ba09617cf62e739e0ff2dcf9286f322ca0e8faa3521ef127e9840eebf", + 0 +}; +static u3j_harm _140_two_roll_a[] = {{".2", u3wb_roll, c3y}, {}}; +static c3_c* _140_two_roll_ha[] = { + "42abc6b3defd7c5eb8f6d14d57a14ba2a02d559907c03141c70a65e0803c01e5", + 0 +}; +static u3j_harm _140_two_skid_a[] = {{".2", u3wb_skid, c3y}, {}}; +static c3_c* _140_two_skid_ha[] = { + "832366432a85005f9a9849d6de9a9045c8f9a591050519b06aec6a9a1a54c360", + 0 +}; +static u3j_harm _140_two_skim_a[] = {{".2", u3wb_skim, c3y}, {}}; +static c3_c* _140_two_skim_ha[] = { + "ccbecb459b90d05ed6c1073859a58987bf9a479820b5550fa75f37b95f98a279", + 0 +}; +static u3j_harm _140_two_skip_a[] = {{".2", u3wb_skip, c3y}, {}}; +static c3_c* _140_two_skip_ha[] = { + "873e3e4d6b8f16212911aa982065dd0d36b1f6e8834828d5eb5d59afa9da2384", + 0 +}; +static u3j_harm _140_two_scag_a[] = {{".2", u3wb_scag, c3y}, {}}; +static c3_c* _140_two_scag_ha[] = { + "ddba868a28eb9655c9f6e06cfecb4ec9e9ff78277290579b9bb9b25339bb4ab9", + 0 +}; +static u3j_harm _140_two_slag_a[] = {{".2", u3wb_slag, c3y}, {}}; +static c3_c* _140_two_slag_ha[] = { + "811f7f67de7ab3f33b85198a69b1bf344498cd4922b0273d918a48b803b7877d", + 0 +}; +static u3j_harm _140_two_snag_a[] = {{".2", u3wb_snag, c3y}, {}}; +static c3_c* _140_two_snag_ha[] = { + "12a1d53541d4df9be60bda45f2dae6c6e6381f85edd4de062af23c6654860591", + 0 +}; +static u3j_harm _140_two_sort_a[] = {{".2", u3wb_sort, c3y}, {}}; +static c3_c* _140_two_sort_ha[] = { + "dc14f91fdedacd3b77bdf241d22555fe2bf0a231e9cab58b4ae779791e54c4e7", + 0 +}; +static u3j_harm _140_two_turn_a[] = {{".2", u3wb_turn, c3y}, {}}; +static c3_c* _140_two_turn_ha[] = { + "e13d9f52434ba810e182017f50a73d4d44eaa298a833231e90353f2a32ea6a78", + 0 +}; +static u3j_harm _140_two_weld_a[] = {{".2", u3wb_weld, c3y}, {}}; +static c3_c* _140_two_weld_ha[] = { + "d855628821d57392f575c5da000c7326eaaa19e08cda967a4772859269669df2", + 0 +}; +static u3j_harm _140_two_welp_a[] = {{".2", u3wb_welp, c3y}, {}}; +static c3_c* _140_two_welp_ha[] = { + "0bccae6625e62ce622c62f9e828a2a6469e2fbf42342d95e23c3b926f340140d", + 0 +}; +static u3j_harm _140_two_zing_a[] = {{".2", u3wb_zing, c3y}, {}}; +static c3_c* _140_two_zing_ha[] = { + "113bdea043e9e05cf4a63dac793caf34634bc58414d00250af87139405521b9d", + 0 +}; + +static u3j_harm _140_two_bex_a[] = {{".2", u3wc_bex, c3y}, {}}; +static c3_c* _140_two_bex_ha[] = { + "ee7a095ea21b6438ec19ab235e73877b96108f0a14cae02cecbd8a48c44e70e3", + 0 +}; +static u3j_harm _140_two_can_a[] = {{".2", u3wc_can, c3y}, {}}; +static c3_c* _140_two_can_ha[] = { + "c49ee52487369ba17a0105a61aa658df60e7a537e3e8737ab582644fe00b3938", + 0 +}; +static u3j_harm _140_two_cat_a[] = {{".2", u3wc_cat, c3y}, {}}; +static c3_c* _140_two_cat_ha[] = { + "467f007931110ac0755dcd44c5aaee65785a63b9042b8eea6a7838fa86cc5d8f", + 0 +}; +static u3j_harm _140_two_con_a[] = {{".2", u3wc_con, c3y}, {}}; +static c3_c* _140_two_con_ha[] = { + "d20f091bd4f28d37c1a78373df939f3d3a41e025129e9a2bb5e2b9a710358965", + 0 +}; +static u3j_harm _140_two_cut_a[] = {{".2", u3wc_cut, c3y}, {}}; +static c3_c* _140_two_cut_ha[] = { + "96bb4e9a259d6a1ede5461956b6a6fb73f05cb8e745c4803c2bae4ec0b7f0800", + 0 +}; +static u3j_harm _140_two_dis_a[] = {{".2", u3wc_dis, c3y}, {}}; +static c3_c* _140_two_dis_ha[] = { + "4b3987314451e20a45d2c7baff51d5d39be57e5970f23f86df4dd6569826ddff", + 0 +}; +static u3j_harm _140_two_dor_a[] = {{".2", u3wc_dor, c3y}, {}}; +static c3_c* _140_two_dor_ha[] = { + "277927a2e49e4d942e81ffc7740a71e68a7b732df886a9f84dc7d914be911879", + 0 +}; +static u3j_harm _140_two_end_a[] = {{".2", u3wc_end, c3y}, {}}; +static c3_c* _140_two_end_ha[] = { + "403c9f12f2481966ffb07842006713149960c67c6bcad8edd78cdf837bc0d854", + 0 +}; +static u3j_harm _140_two_gor_a[] = {{".2", u3wc_gor, c3y}, {}}; +static c3_c* _140_two_gor_ha[] = { + "8a1e3ed1de749ff2ff61d489466df618e4e0773498cb9693ec2e612e9733385c", + 0 +}; +static u3j_harm _140_two_lsh_a[] = {{".2", u3wc_lsh, c3y}, {}}; +static c3_c* _140_two_lsh_ha[] = { + "3db89b02bc596a57c7fb72a991c9fbf3197de501c56b3d1df26911b664c45f3d", + 0 +}; +static u3j_harm _140_two_met_a[] = {{".2", u3wc_met, c3y}, {}}; +static c3_c* _140_two_met_ha[] = { + "39dc9b1d10d9e93414b43f315f9a375596c99b4e8172d71d26759996bb7bab08", + 0 +}; +static u3j_harm _140_two_mix_a[] = {{".2", u3wc_mix, c3y}, {}}; +static c3_c* _140_two_mix_ha[] = { + "c84b3e487850d73dd5e4af18fb54b623028be3c45ae9b712718754233057fbc3", + 0 +}; +static u3j_harm _140_two_mor_a[] = {{".2", u3wc_mor, c3y}, {}}; +static c3_c* _140_two_mor_ha[] = { + "7c2d86e952606e571e5bcd988e70ded072c0eaa45d1fd958849d76360a763ddf", + 0 +}; +static u3j_harm _140_two_mug_a[] = {{".2", u3wc_mug, c3y}, {}}; +static c3_c* _140_two_mug_ha[] = { + "6da3f3aa1e951ef2d00e5131945d140fb52728558867237891e029160b7f5010", + 0 +}; +static u3j_harm _140_two_muk_a[] = {{".2", u3wc_muk, c3y}, {}}; +static c3_c* _140_two_muk_ha[] = { + "5a04a09bf7d22c8ef048ba2cc86be8f3a02066eab84cf4a45bbdf2bf534ff9f6", + 0 +}; +static u3j_harm _140_two_pow_a[] = {{".2", u3wc_pow, c3y}, {}}; +static c3_c* _140_two_pow_ha[] = { + "6cfcb9da6ad812eb72788e22e1370b4ab1b6ab64ab0628dfdff78ccead325406", + 0 +}; +static u3j_harm _140_two_rap_a[] = {{".2", u3wc_rap, c3y}, {}}; +static c3_c* _140_two_rap_ha[] = { + "f694f96bcbf97b339285d6c73ed5d33d112b911f7a991acefdef223ff01d8834", + 0 +}; +static u3j_harm _140_two_rep_a[] = {{".2", u3wc_rep, c3y}, {}}; +static c3_c* _140_two_rep_ha[] = { + "25aa2f1746e1cf2235117f22a3db152fa86e003d9bf9f9cfcda79e76e51f382f", + 0 +}; +static u3j_harm _140_two_rev_a[] = {{".2", u3wc_rev, c3y}, {}}; +static c3_c* _140_two_rev_ha[] = { + "15e20592ac1d9c0c80d99589e67cadb4ed7566be1d21844bbe7ef936e0db4524", + 0 +}; +static u3j_harm _140_two_rip_a[] = {{".2", u3wc_rip, c3y}, {}}; +static c3_c* _140_two_rip_ha[] = { + "16026c27499953978f69dbf81c1530b2dec8d5a2403c5561f7a5afcc180e129e", + 0 +}; +static u3j_harm _140_two_rsh_a[] = {{".2", u3wc_rsh, c3y}, {}}; +static c3_c* _140_two_rsh_ha[] = { + "55bd777f239a2a7c849e0c7a35bb967b79279c79bbd985f31ba272761f97928f", + 0 +}; +static u3j_harm _140_two_swp_a[] = {{".2", u3wc_swp, c3y}, {}}; +static c3_c* _140_two_swp_ha[] = { + "2c4583c36d73c9c2857052b893b87e1170a794e0edbbdba9d767ba7639e7c1ec", + 0 +}; +static u3j_harm _140_two_sqt_a[] = {{".2", u3wc_sqt, c3y}, {}}; +static c3_c* _140_two_sqt_ha[] = { + "fc28ff327ae69f55ccf257b69a1477b845552ef9e615e85718902c249bdeca6f", + 0 +}; +static u3j_harm _140_two_xeb_a[] = {{".2", u3wc_xeb, c3y}, {}}; +static c3_c* _140_two_xeb_ha[] = { + "41403aafe1e2ccb1a02edde96fe742085feffe028d02529eb2b13f925884a499", + 0 +}; + + static u3j_harm _140_two__in_apt_a[] = {{".2", u3wdi_apt_140}, {}}; + static c3_c* _140_two__in_apt_ha[] = { + "a40812fa255f13afdaf196bff38d2d9bfcb38f09c48ace9139a2701a555a0c9a", + 0 + }; + static u3j_harm _140_two__in_bif_a[] = {{".2", u3wdi_bif}, {}}; + static c3_c* _140_two__in_bif_ha[] = { + "edd0d727b9099e75c3e5b73b3025ad9737136eacedc2f8088b6edb02dbe06cb3", + 0 + }; + static u3j_harm _140_two__in_del_a[] = {{".2", u3wdi_del}, {}}; + static c3_c* _140_two__in_del_ha[] = { + "33a21e7aaf71105e2d48e1af61ff463fb8a0b7e04f8a8c30a6f6a2d1f967795f", + 0 + }; + static u3j_harm _140_two__in_dif_a[] = {{".2", u3wdi_dif}, {}}; + static c3_c* _140_two__in_dif_ha[] = { + "a488f0be5adbb1c04e2038a2315ac065591e7daadcafc1d47aea272979680468", + 0 + }; + static u3j_harm _140_two__in_gas_a[] = {{".2", u3wdi_gas}, {}}; + static c3_c* _140_two__in_gas_ha[] = { + "223a60a43a10f1f90a3b205ecfce8e17af1adfcf9dbf3cff9b8b1362656b1af1", + 0 + }; + static u3j_harm _140_two__in_has_a[] = {{".2", u3wdi_has}, {}}; + static c3_c* _140_two__in_has_ha[] = { + "a65e666e92176401040a883801e4f05bd650fe6c094a6c8d7f4afcaee9cf55ad", + 0 + }; + static u3j_harm _140_two__in_int_a[] = {{".2", u3wdi_int}, {}}; + static c3_c* _140_two__in_int_ha[] = { + "a71b0e355fa02d18447c02922f69096f42043da451e8c79e7a9270460c3a44e6", + 0 + }; + static u3j_harm _140_two__in_put_a[] = {{".2", u3wdi_put}, {}}; + static c3_c* _140_two__in_put_ha[] = { + "19b27267e18ef156d85d84d37e02692a17fec0b7a2a0fe4120a3ae02b841c8f4", + 0 + }; + static u3j_harm _140_two__in_rep_a[] = {{".2", u3wdi_rep}, {}}; + static c3_c* _140_two__in_rep_ha[] = { + "05bfb84a52ed8ccc330a96faca29a49afd28300960ac089d00dba32212b971a7", + 0 + }; + static u3j_harm _140_two__in_run_a[] = {{".2", u3wdi_run}, {}}; + static c3_c* _140_two__in_run_ha[] = { + "7f2061dbee19fa20925bd5a80cc41ed71e462e0f49ee6e845fd750c219734864", + 0 + }; + static u3j_harm _140_two__in_tap_a[] = {{".2", u3wdi_tap}, {}}; + static c3_c* _140_two__in_tap_ha[] = { + "7dde59e2bd7684e785ce9787bc394571bd1216d7a62398c703447fc951c6b352", + 0 + }; + static u3j_harm _140_two__in_wyt_a[] = {{".2", u3wdi_wyt}, {}}; + static c3_c* _140_two__in_wyt_ha[] = { + "fac9248ebd1defade9df695cd81f94355bebb271f85b164ff34658a5f45c71a0", + 0 + }; + static u3j_harm _140_two__in_uni_a[] = {{".2", u3wdi_uni}, {}}; + static c3_c* _140_two__in_uni_ha[] = { + "6bd72ef1fb12482a839f4435a2b163ace1b56036297a3cec6968be33d6863096", + 0 + }; +static u3j_core _140_two__in_d[] = + { { "apt", 7, _140_two__in_apt_a, 0, _140_two__in_apt_ha }, + { "bif", 7, _140_two__in_bif_a, 0, _140_two__in_bif_ha }, + { "del", 7, _140_two__in_del_a, 0, _140_two__in_del_ha }, + { "dif", 7, _140_two__in_dif_a, 0, _140_two__in_dif_ha }, + { "gas", 7, _140_two__in_gas_a, 0, _140_two__in_gas_ha }, + { "has", 7, _140_two__in_has_a, 0, _140_two__in_has_ha }, + { "int", 7, _140_two__in_int_a, 0, _140_two__in_int_ha }, + { "put", 7, _140_two__in_put_a, 0, _140_two__in_put_ha }, + { "rep", 7, _140_two__in_rep_a, 0, _140_two__in_rep_ha }, + { "run", 7, _140_two__in_run_a, 0, _140_two__in_run_ha }, + { "tap", 7, _140_two__in_tap_a, 0, _140_two__in_tap_ha }, + { "uni", 7, _140_two__in_uni_a, 0, _140_two__in_uni_ha }, + { "wyt", 3, _140_two__in_wyt_a, 0, _140_two__in_wyt_ha }, + {} + }; +static c3_c* _140_two__in_ha[] = { + "8bbb90ce0a49d627194aa267f6cf1fd78df677111b553ce03119fea19f9d763c", + 0 +}; + + static u3j_harm _140_two__by_all_a[] = {{".2", u3wdb_all, c3y}, {}}; + static c3_c* _140_two__by_all_ha[] = { + "c2e87d0047c14b4488d03aad98fa43080c736d86d2ff723a037aaf1843aa9285", + 0 + }; + static u3j_harm _140_two__by_any_a[] = {{".2", u3wdb_any, c3y}, {}}; + static c3_c* _140_two__by_any_ha[] = { + "96b95c942dcbc97f5291fa6f7342c3e19a87d69cc254965b0f75d95133a19301", + 0 + }; + static u3j_harm _140_two__by_apt_a[] = {{".2", u3wdb_apt, c3y}, {}}; + static c3_c* _140_two__by_apt_ha[] = { + "1f0a6f8b945b243520b77069060589938d9e651e34b24924db9528d02a98014f", + 0 + }; + + static u3j_harm _140_two__by_del_a[] = {{".2", u3wdb_del, c3y}, {}}; + static c3_c* _140_two__by_del_ha[] = { + "09f78d6235d3fce8303c7bc663988349b7d4592abdacfb09b833d2f43629b6b6", + 0 + }; + static u3j_harm _140_two__by_dif_a[] = {{".2", u3wdb_dif, c3y}, {}}; + static c3_c* _140_two__by_dif_ha[] = { + "0334e6df6fd0bd5013b94a1b22c29e4c436da0a2d5573f1992faad1c8a059cc7", + 0 + }; + static u3j_harm _140_two__by_gas_a[] = {{".2", u3wdb_gas, c3y}, {}}; + static c3_c* _140_two__by_gas_ha[] = { + "43046602e0b9e568b09448cfe18527e2331f3393a2f32e485d9707a14c346698", + 0 + }; + static u3j_harm _140_two__by_get_a[] = {{".2", u3wdb_get, c3y}, {}}; + static c3_c* _140_two__by_get_ha[] = { + "4de4cea8fa98ef48e9faae10c90ba5bd77971670030ffb00483d0608af4c466f", + 0 + }; + static u3j_harm _140_two__by_has_a[] = {{".2", u3wdb_has, c3y}, {}}; + static c3_c* _140_two__by_has_ha[] = { + "04ecc67ab25961bee1b7c9dbcf42965d16f32474b9bbdd2b286983f998e3957a", + 0 + }; + static u3j_harm _140_two__by_int_a[] = {{".2", u3wdb_int, c3y}, {}}; + static c3_c* _140_two__by_int_ha[] = { + "a2345429482c271a1668f3c0675a559452bb7b13cb7393c3acb7de44c603aef9", + 0 + }; + static u3j_harm _140_two__by_jab_a[] = {{".2", u3wdb_jab, c3y}, {}}; + static c3_c* _140_two__by_jab_ha[] = { + "48930133d9b26e912dce54d1bc486cfe9dcb32bb3c2b1ad76143382799aec156", + 0 + }; + static u3j_harm _140_two__by_key_a[] = {{".2", u3wdb_key, c3y}, {}}; + static c3_c* _140_two__by_key_ha[] = { + "0096c77b93e9fe36b98d9f433eb73300f024283b93b3d73a4001afb9f9804d1b", + 0 + }; + static u3j_harm _140_two__by_put_a[] = {{".2", u3wdb_put, c3y}, {}}; + static c3_c* _140_two__by_put_ha[] = { + "b7307589fed604bfb92e8ad5ffad611c82d835baf02a86c6911b279930f4e8d7", + 0 + }; + static u3j_harm _140_two__by_rep_a[] = {{".2", u3wdb_rep, c3y}, {}}; + static c3_c* _140_two__by_rep_ha[] = { + "05bfb84a52ed8ccc330a96faca29a49afd28300960ac089d00dba32212b971a7", + 0 + }; + static u3j_harm _140_two__by_run_a[] = {{".2", u3wdb_run, c3y}, {}}; + static c3_c* _140_two__by_run_ha[] = { + "adea01e9036e0b40e4969814d4eed935d7d69a52e4a55de5520df2fa5204d8e7", + 0 + }; + static u3j_harm _140_two__by_tap_a[] = {{".2", u3wdb_tap, c3y}, {}}; + static c3_c* _140_two__by_tap_ha[] = { + "7dde59e2bd7684e785ce9787bc394571bd1216d7a62398c703447fc951c6b352", + 0 + }; + static u3j_harm _140_two__by_uni_a[] = {{".2", u3wdb_uni, c3y}, {}}; + static c3_c* _140_two__by_uni_ha[] = { + "f18bc4dac19abe14a6f56afc15d838b7394d48969156f4b37c3c84edd5d46752", + 0 + }; + static u3j_harm _140_two__by_urn_a[] = {{".2", u3wdb_urn, c3y}, {}}; + static c3_c* _140_two__by_urn_ha[] = { + "a409cf78e7f1c2ce8440115730f74367839b658cde2d6a1daa8af067b790eb83", + 0 + }; + static u3j_harm _140_two__by_wyt_a[] = {{".2", u3wdb_wyt, c3y}, {}}; + static c3_c* _140_two__by_wyt_ha[] = { + "fac9248ebd1defade9df695cd81f94355bebb271f85b164ff34658a5f45c71a0", + 0 + }; +static u3j_core _140_two__by_d[] = + { { "all", 7, _140_two__by_all_a, 0, _140_two__by_all_ha }, + { "any", 7, _140_two__by_any_a, 0, _140_two__by_any_ha }, + { "apt", 7, _140_two__by_apt_a, 0, _140_two__by_apt_ha }, + // disabled due to interface change in %138 + // + // { "bif", 7, _140_two__by_bif_a, 0, _140_two__by_bif_ha }, + { "del", 7, _140_two__by_del_a, 0, _140_two__by_del_ha }, + { "dif", 7, _140_two__by_dif_a, 0, _140_two__by_dif_ha }, + { "gas", 7, _140_two__by_gas_a, 0, _140_two__by_gas_ha }, + { "get", 7, _140_two__by_get_a, 0, _140_two__by_get_ha }, + { "has", 7, _140_two__by_has_a, 0, _140_two__by_has_ha }, + { "int", 7, _140_two__by_int_a, 0, _140_two__by_int_ha }, + { "jab", 7, _140_two__by_jab_a, 0, _140_two__by_jab_ha }, + { "key", 7, _140_two__by_key_a, 0, _140_two__by_key_ha }, + { "put", 7, _140_two__by_put_a, 0, _140_two__by_put_ha }, + { "rep", 7, _140_two__by_rep_a, 0, _140_two__by_rep_ha }, + { "run", 7, _140_two__by_run_a, 0, _140_two__by_run_ha }, + { "tap", 7, _140_two__by_tap_a, 0, _140_two__by_tap_ha }, + { "uni", 7, _140_two__by_uni_a, 0, _140_two__by_uni_ha }, + { "urn", 7, _140_two__by_urn_a, 0, _140_two__by_urn_ha }, + { "wyt", 3, _140_two__by_wyt_a, 0, _140_two__by_wyt_ha }, + {} + }; +static c3_c* _140_two__by_ha[] = { + "9c70e973de46335405a7ff932d4742743f54db579f2584758ef2b02afd4fbfe8", + 0 +}; + +static u3j_harm _140_two_cue_a[] = {{".2", u3we_cue}, {}}; +static c3_c* _140_two_cue_ha[] = { + "a52b584c5a92fc653e47f50c3389caf3427e13d20ddb8bd701a2d7bca12cb742", + 0 +}; +static u3j_harm _140_two_jam_a[] = {{".2", u3we_jam}, {}}; +static c3_c* _140_two_jam_ha[] = { + "61f86be74cb1fd5a1d7f531cc9588f8f34a972be8de487c93d25c8e026592ed2", + 0 +}; +static u3j_harm _140_two_mat_a[] = {{".2", u3we_mat}, {}}; +static c3_c* _140_two_mat_ha[] = { + "b5cd9fd1eded54fcb9bfd06af3c34460c1aa4cfc46f1ee9bd3f6476aa8fbb8c8", + 0 +}; +static u3j_harm _140_two_rub_a[] = {{".2", u3we_rub}, {}}; +static c3_c* _140_two_rub_ha[] = { + "87fcf40fb6fce8c3cb778373670d0682785ae650f785531db8ff69d431bc14c6", + 0 +}; + +static u3j_core _140_two_d[] = +{ { "tri", 3, 0, _140_tri_d, _140_tri_ha, _140_tri_ho }, + + { "find", 7, _140_two_find_a, 0, _140_two_find_ha }, + { "flop", 7, _140_two_flop_a, 0, _140_two_flop_ha }, + { "lent", 7, _140_two_lent_a, 0, _140_two_lent_ha }, + { "levy", 7, _140_two_levy_a, 0, _140_two_levy_ha }, + { "lien", 7, _140_two_lien_a, 0, _140_two_lien_ha }, + { "murn", 7, _140_two_murn_a, 0, _140_two_murn_ha }, + { "need", 7, _140_two_need_a, 0, _140_two_need_ha }, + { "reap", 7, _140_two_reap_a, 0, _140_two_reap_ha }, + { "reel", 7, _140_two_reel_a, 0, _140_two_reel_ha }, + { "roll", 7, _140_two_roll_a, 0, _140_two_roll_ha }, + { "skid", 7, _140_two_skid_a, 0, _140_two_skid_ha }, + { "skim", 7, _140_two_skim_a, 0, _140_two_skim_ha }, + { "skip", 7, _140_two_skip_a, 0, _140_two_skip_ha }, + { "scag", 7, _140_two_scag_a, 0, _140_two_scag_ha }, + { "slag", 7, _140_two_slag_a, 0, _140_two_slag_ha }, + { "snag", 7, _140_two_snag_a, 0, _140_two_snag_ha }, + { "sort", 7, _140_two_sort_a, 0, _140_two_sort_ha }, + { "turn", 7, _140_two_turn_a, 0, _140_two_turn_ha }, + { "weld", 7, _140_two_weld_a, 0, _140_two_weld_ha }, + { "welp", 7, _140_two_welp_a, 0, _140_two_welp_ha }, + { "zing", 7, _140_two_zing_a, 0, _140_two_zing_ha }, + + { "bex", 7, _140_two_bex_a, 0, _140_two_bex_ha }, + { "cat", 7, _140_two_cat_a, 0, _140_two_cat_ha }, + { "can", 7, _140_two_can_a, 0, _140_two_can_ha }, + { "con", 7, _140_two_con_a, 0, _140_two_con_ha }, + { "cue", 7, _140_two_cue_a, 0, _140_two_cue_ha }, + { "cut", 7, _140_two_cut_a, 0, _140_two_cut_ha }, + { "dis", 7, _140_two_dis_a, 0, _140_two_dis_ha }, + { "dor", 7, _140_two_dor_a, 0, _140_two_dor_ha }, + { "end", 7, _140_two_end_a, 0, _140_two_end_ha }, + { "gor", 7, _140_two_gor_a, 0, _140_two_gor_ha }, + { "jam", 7, _140_two_jam_a, 0, _140_two_jam_ha }, + { "lsh", 7, _140_two_lsh_a, 0, _140_two_lsh_ha }, + { "mat", 7, _140_two_mat_a, 0, _140_two_mat_ha }, + { "met", 7, _140_two_met_a, 0, _140_two_met_ha }, + { "mix", 7, _140_two_mix_a, 0, _140_two_mix_ha }, + { "mor", 7, _140_two_mor_a, 0, _140_two_mor_ha }, + { "mug", 7, _140_two_mug_a, 0, _140_two_mug_ha }, + { "muk", 59, _140_two_muk_a, 0, _140_two_muk_ha }, + { "rap", 7, _140_two_rap_a, 0, _140_two_rap_ha }, + { "rep", 7, _140_two_rep_a, 0, _140_two_rep_ha }, + { "rev", 7, _140_two_rev_a, 0, _140_two_rev_ha }, + { "rip", 7, _140_two_rip_a, 0, _140_two_rip_ha }, + { "rsh", 7, _140_two_rsh_a, 0, _140_two_rsh_ha }, + { "swp", 7, _140_two_swp_a, 0, _140_two_swp_ha }, + { "rub", 7, _140_two_rub_a, 0, _140_two_rub_ha }, + { "pow", 7, _140_two_pow_a, 0, _140_two_pow_ha }, + { "sqt", 7, _140_two_sqt_a, 0, _140_two_sqt_ha }, + { "xeb", 7, _140_two_xeb_a, 0, _140_two_xeb_ha }, + + { "by", 7, 0, _140_two__by_d, _140_two__by_ha }, + { "in", 7, 0, _140_two__in_d, _140_two__in_ha }, + {} +}; +static c3_c* _140_two_ha[] = { + "f693e1f5ff57ec741fe28a48a18252b3e12dead2bfe3bcd4ea8e904a36905c0b", + 0 +}; + + +/* layer one +*/ +static u3j_harm _140_one_add_a[] = {{".2", u3wa_add, c3y}, {}}; +static c3_c* _140_one_add_ha[] = { + "46407e27fe5d7c20b3ba25c02657c227b37217ddab8501b2d3b70b818aca7a44", + 0 +}; +static u3j_harm _140_one_dec_a[] = {{".2", u3wa_dec, c3y}, {}}; +static c3_c* _140_one_dec_ha[] = { + "6345d28d34c62c4b4f9da98828574bc9060ff0869789968d9045d90faeb3580c", + 0 +}; +static u3j_harm _140_one_div_a[] = {{".2", u3wa_div, c3y}, {}}; +static c3_c* _140_one_div_ha[] = { + "e3292e76feb274b9314e7693827de11e96677629c556b3a6c72cc15ebad45113", + 0 +}; +static u3j_harm _140_one_dvr_a[] = {{".2", u3wc_dvr, c3y}, {}}; +static c3_c* _140_one_dvr_ha[] = { + "fc259f46d770f82767163544f3662dfd45b1484a7bcffad396c7420651f092a4", + 0 +}; +static u3j_harm _140_one_gte_a[] = {{".2", u3wa_gte, c3y}, {}}; +static c3_c* _140_one_gte_ha[] = { + "f3ff2c0fc1f386226183e8834cff87420a1206583f8710e1e75f0e34ed8df5fe", + 0 +}; +static u3j_harm _140_one_gth_a[] = {{".2", u3wa_gth, c3y}, {}}; +static c3_c* _140_one_gth_ha[] = { + "62692d64c8166c7d48bb2a00713064846da9629a1dd2d924c3b15cfd18a5912a", + 0 +}; +static u3j_harm _140_one_lte_a[] = {{".2", u3wa_lte, c3y}, {}}; +static c3_c* _140_one_lte_ha[] = { + "6ca61752aa27b453f28f20e12f652610d45695c3bd965190d5b4fa8b9daa518c", + 0 +}; +static u3j_harm _140_one_lth_a[] = {{".2", u3wa_lth, c3y}, {}}; +static c3_c* _140_one_lth_ha[] = { + "39260325faffbbf5bd88c4abb3efb09c5a7e1deb81a2126498d6c0f49474955e", + 0 +}; +static u3j_harm _140_one_max_a[] = {{".2", u3wa_max, c3y}, {}}; +static c3_c* _140_one_max_ha[] = { + "39260325faffbbf5bd88c4abb3efb09c5a7e1deb81a2126498d6c0f49474955e", + 0 +}; +static u3j_harm _140_one_min_a[] = {{".2", u3wa_min, c3y}, {}}; +static c3_c* _140_one_min_ha[] = { + "39260325faffbbf5bd88c4abb3efb09c5a7e1deb81a2126498d6c0f49474955e", + 0 +}; +static u3j_harm _140_one_mod_a[] = {{".2", u3wa_mod, c3y}, {}}; +static c3_c* _140_one_mod_ha[] = { + "374d2f3cd0ece33f680bd7103b99891d7dae03590f9eb9faac03a4a501f17038", + 0 +}; +static u3j_harm _140_one_mul_a[] = {{".2", u3wa_mul, c3y}, {}}; +static c3_c* _140_one_mul_ha[] = { + "51e45dbea29cf65a5c26ead095a20eb12ba078840652c88b9c1997820e670bc6", + 0 +}; +static u3j_harm _140_one_sub_a[] = {{".2", u3wa_sub, c3y}, {}}; +static c3_c* _140_one_sub_ha[] = { + "016695719ffe93c177e8a03afa5d29fc428ff596bb8962ace50f7706cd6e53a6", + 0 +}; + +static u3j_harm _140_one_cap_a[] = {{".2", u3wc_cap, c3y}, {}}; +static c3_c* _140_one_cap_ha[] = { + "407e764ee978c712b81c9c3452932e0f7d33faeda36dfe99aaf81d543db16254", + 0 +}; +static u3j_harm _140_one_peg_a[] = {{".2", u3wc_peg, c3y}, {}}; +static c3_c* _140_one_peg_ha[] = { + "8b608d2d2e2eccec3e2fc8cd2d92fd69504c72b26581bb9cbfa4ff51f997251f", + 0 +}; +static u3j_harm _140_one_mas_a[] = {{".2", u3wc_mas, c3y}, {}}; +static c3_c* _140_one_mas_ha[] = { + "1439dcd809f0819b09fb5fe7e83bc1292ca6fd33b5819d78e706d402c053b02a", + 0 +}; + +static u3j_core _140_one_d[] = +{ { "two", 3, 0, _140_two_d, _140_two_ha }, + + { "add", 7, _140_one_add_a, 0, _140_one_add_ha }, + { "dec", 7, _140_one_dec_a, 0, _140_one_dec_ha }, + { "div", 7, _140_one_div_a, 0, _140_one_div_ha }, + { "dvr", 7, _140_one_dvr_a, 0, _140_one_dvr_ha }, + { "gte", 7, _140_one_gte_a, 0, _140_one_gte_ha }, + { "gth", 7, _140_one_gth_a, 0, _140_one_gth_ha }, + { "lte", 7, _140_one_lte_a, 0, _140_one_lte_ha }, + { "lth", 7, _140_one_lth_a, 0, _140_one_lth_ha }, + { "max", 7, _140_one_max_a, 0, _140_one_max_ha }, + { "min", 7, _140_one_min_a, 0, _140_one_min_ha }, + { "mod", 7, _140_one_mod_a, 0, _140_one_mod_ha }, + { "mul", 7, _140_one_mul_a, 0, _140_one_mul_ha }, + { "sub", 7, _140_one_sub_a, 0, _140_one_sub_ha }, + + { "cap", 7, _140_one_cap_a, 0, _140_one_cap_ha }, + { "mas", 7, _140_one_mas_a, 0, _140_one_mas_ha }, + { "peg", 7, _140_one_peg_a, 0, _140_one_peg_ha }, + {} +}; +static c3_c* _140_one_ha[] = { + "2501f8dbe62384d144ab0f805501ed66325bd77a733eca0c80d1da673e4b16fb", + 0 +}; + +u3j_core _k140_d[] = +{ { "one", 3, 0, _140_one_d, _140_one_ha }, + {} +}; +static c3_c* _k140_ha[] = { + "9b82a903093c077afb3f0b9d4e95e1a9c9789d1ca605b57bbacf79857e3d5c52", + 0 +}; + +/* new jets +*/ + static u3j_harm _139_hex_json_de_a[] = {{".2", u3we_json_de}, {}}; + static u3j_harm _139_hex_json_en_a[] = {{".2", u3we_json_en}, {}}; +static u3j_core _139_hex_json_d[] = + { { "de", 15, _139_hex_json_de_a, 0, no_hashes }, + { "en", 15, _139_hex_json_en_a, 0, no_hashes }, + {} + }; + + + +static u3j_core _139_hex_d[] = +{ + { "lore", 63, _140_hex_lore_a, 0, no_hashes }, + { "leer", 63, _140_hex_leer_a, 0, no_hashes }, + { "loss", 63, _140_hex_loss_a, 0, no_hashes }, + { "lune", 127, _140_hex_lune_a, 0, no_hashes }, + + { "coed", 63, 0, _140_hex_coed_d, no_hashes }, + { "aes", 31, 0, _140_hex_aes_d, no_hashes }, + + { "hmac", 63, 0, _140_hex_hmac_d, no_hashes }, + { "argon", 31, 0, _140_hex_argon_d, no_hashes }, + { "blake", 31, 0, _140_hex_blake_d, no_hashes }, + { "kecc", 31, 0, _140_hex_kecc_d, no_hashes }, + { "ripemd", 31, 0, _140_hex_ripe_d, no_hashes }, + { "scr", 31, 0, _140_hex_scr_d, no_hashes }, + { "secp", 6, 0, _140_hex_secp_d, no_hashes }, + { "mimes", 31, 0, _140_hex_mimes_d, no_hashes }, + { "json", 31, 0, _139_hex_json_d, no_hashes }, + {} +}; + +static u3j_core _139_pen_d[] = +{ { "hex", 7, 0, _139_hex_d, no_hashes }, + + { "cell", 7, _140_pen_cell_a, 0, no_hashes }, + { "comb", 7, _140_pen_comb_a, 0, no_hashes }, + { "cons", 7, _140_pen_cons_a, 0, no_hashes }, + { "core", 7, _140_pen_core_a, 0, no_hashes }, + { "face", 7, _140_pen_face_a, 0, no_hashes }, + { "fitz", 7, _140_pen_fitz_a, 0, no_hashes }, + { "flan", 7, _140_pen_flan_a, 0, no_hashes }, + { "flip", 7, _140_pen_flip_a, 0, no_hashes }, + { "flor", 7, _140_pen_flor_a, 0, no_hashes }, + { "fork", 7, _140_pen_fork_a, 0, no_hashes }, + { "look", 7, _140_pen_look_a, 0, no_hashes }, + { "loot", 7, _140_pen_loot_a, 0, no_hashes }, + { "ut", 15, 0, _140_pen__ut_d, no_hashes, _140_pen__ut_ho }, + {} +}; + +static u3j_core _139_qua_d[] = +{ { "pen", 3, 0, _139_pen_d, no_hashes, _140_pen_ho }, + + { "po", 7, 0, _140_qua__po_d, no_hashes }, + + { "trip", 7, _140_qua_trip_a, 0, no_hashes }, + + { "bend", 7, 0, _140_qua__bend_d, no_hashes }, + { "cold", 7, 0, _140_qua__cold_d, no_hashes }, + { "comp", 7, 0, _140_qua__comp_d, no_hashes }, + { "cook", 7, 0, _140_qua__cook_d, no_hashes }, + { "easy", 7, 0, _140_qua__easy_d, no_hashes }, + { "glue", 7, 0, _140_qua__glue_d, no_hashes }, + { "here", 7, 0, _140_qua__here_d, no_hashes }, + { "just", 7, 0, _140_qua__just_d, no_hashes }, + { "mask", 7, 0, _140_qua__mask_d, no_hashes }, + { "shim", 7, 0, _140_qua__shim_d, no_hashes }, + { "stag", 7, 0, _140_qua__stag_d, no_hashes }, + { "stew", 7, 0, _140_qua__stew_d, no_hashes }, + { "stir", 7, 0, _140_qua__stir_d, no_hashes }, + + { "pfix", 7, _140_qua_pfix_a, 0, no_hashes }, + { "plug", 7, _140_qua_plug_a, 0, no_hashes }, + { "pose", 7, _140_qua_pose_a, 0, no_hashes }, + { "sfix", 7, _140_qua_sfix_a, 0, no_hashes }, + + { "mink", 7, _140_qua_mink_a, 0, no_hashes }, + { "mole", 7, _140_qua_mole_a, 0, no_hashes }, + { "mule", 7, _140_qua_mule_a, 0, no_hashes }, + + { "scot", 7, _140_qua_scot_a, 0, no_hashes }, + { "scow", 7, _140_qua_scow_a, 0, no_hashes }, + { "slaw", 7, _140_qua_slaw_a, 0, no_hashes }, + {} +}; + +static u3j_core _139_tri_d[] = +{ { "qua", 3, 0, _139_qua_d, no_hashes, _140_qua_ho }, + + { "cofl", 7, 0, _140_tri__cofl_d, no_hashes }, + { "rd", 7, 0, _140_tri__rd_d, no_hashes }, + { "rs", 7, 0, _140_tri__rs_d, no_hashes }, + { "rq", 7, 0, _140_tri__rq_d, no_hashes }, + { "rh", 7, 0, _140_tri__rh_d, no_hashes }, + { "og", 7, 0, _140_tri__og_d, no_hashes }, + + { "sha", 7, 0, _140_tri__sha_d, no_hashes }, + { "shax", 7, _140_tri_shax_a, 0, no_hashes }, + { "shay", 7, _140_tri_shay_a, 0, no_hashes }, + { "shas", 7, _140_tri_shas_a, 0, no_hashes }, + { "shal", 7, _140_tri_shal_a, 0, no_hashes }, + + { "ob", 3, 0, _140_ob_d, no_hashes, _140_ob_ho }, + {} +}; + +static u3j_harm _139_two__in_apt_a[] = {{".2", u3wdi_apt}, {}}; + +static u3j_core _139_two__in_d[] = + { { "apt", 7, _139_two__in_apt_a, 0, no_hashes }, + { "bif", 7, _140_two__in_bif_a, 0, no_hashes }, + { "del", 7, _140_two__in_del_a, 0, no_hashes }, + { "dif", 7, _140_two__in_dif_a, 0, no_hashes }, + { "gas", 7, _140_two__in_gas_a, 0, no_hashes }, + { "has", 7, _140_two__in_has_a, 0, no_hashes }, + { "int", 7, _140_two__in_int_a, 0, no_hashes }, + { "put", 7, _140_two__in_put_a, 0, no_hashes }, + { "rep", 7, _140_two__in_rep_a, 0, no_hashes }, + { "run", 7, _140_two__in_run_a, 0, no_hashes }, + { "tap", 7, _140_two__in_tap_a, 0, no_hashes }, + { "uni", 7, _140_two__in_uni_a, 0, no_hashes }, + { "wyt", 3, _140_two__in_wyt_a, 0, no_hashes }, + {} + }; + +static u3j_core _139_two_d[] = +{ { "tri", 3, 0, _139_tri_d, no_hashes, _140_tri_ho }, + + { "find", 7, _140_two_find_a, 0, no_hashes }, + { "flop", 7, _140_two_flop_a, 0, no_hashes }, + { "lent", 7, _140_two_lent_a, 0, no_hashes }, + { "levy", 7, _140_two_levy_a, 0, no_hashes }, + { "lien", 7, _140_two_lien_a, 0, no_hashes }, + { "murn", 7, _140_two_murn_a, 0, no_hashes }, + { "need", 7, _140_two_need_a, 0, no_hashes }, + { "reap", 7, _140_two_reap_a, 0, no_hashes }, + { "reel", 7, _140_two_reel_a, 0, no_hashes }, + { "roll", 7, _140_two_roll_a, 0, no_hashes }, + { "skid", 7, _140_two_skid_a, 0, no_hashes }, + { "skim", 7, _140_two_skim_a, 0, no_hashes }, + { "skip", 7, _140_two_skip_a, 0, no_hashes }, + { "scag", 7, _140_two_scag_a, 0, no_hashes }, + { "slag", 7, _140_two_slag_a, 0, no_hashes }, + { "snag", 7, _140_two_snag_a, 0, no_hashes }, + { "sort", 7, _140_two_sort_a, 0, no_hashes }, + { "turn", 7, _140_two_turn_a, 0, no_hashes }, + { "weld", 7, _140_two_weld_a, 0, no_hashes }, + { "welp", 7, _140_two_welp_a, 0, no_hashes }, + { "zing", 7, _140_two_zing_a, 0, no_hashes }, + + { "bex", 7, _140_two_bex_a, 0, no_hashes }, + { "cat", 7, _140_two_cat_a, 0, no_hashes }, + { "can", 7, _140_two_can_a, 0, no_hashes }, + { "con", 7, _140_two_con_a, 0, no_hashes }, + { "cue", 7, _140_two_cue_a, 0, no_hashes }, + { "cut", 7, _140_two_cut_a, 0, no_hashes }, + { "dis", 7, _140_two_dis_a, 0, no_hashes }, + { "dor", 7, _140_two_dor_a, 0, no_hashes }, + { "end", 7, _140_two_end_a, 0, no_hashes }, + { "gor", 7, _140_two_gor_a, 0, no_hashes }, + { "jam", 7, _140_two_jam_a, 0, no_hashes }, + { "lsh", 7, _140_two_lsh_a, 0, no_hashes }, + { "mat", 7, _140_two_mat_a, 0, no_hashes }, + { "met", 7, _140_two_met_a, 0, no_hashes }, + { "mix", 7, _140_two_mix_a, 0, no_hashes }, + { "mor", 7, _140_two_mor_a, 0, no_hashes }, + { "mug", 7, _140_two_mug_a, 0, no_hashes }, + { "muk", 59, _140_two_muk_a, 0, no_hashes }, + { "rap", 7, _140_two_rap_a, 0, no_hashes }, + { "rep", 7, _140_two_rep_a, 0, no_hashes }, + { "rev", 7, _140_two_rev_a, 0, no_hashes }, + { "rip", 7, _140_two_rip_a, 0, no_hashes }, + { "rsh", 7, _140_two_rsh_a, 0, no_hashes }, + { "swp", 7, _140_two_swp_a, 0, no_hashes }, + { "rub", 7, _140_two_rub_a, 0, no_hashes }, + { "pow", 7, _140_two_pow_a, 0, no_hashes }, + { "sqt", 7, _140_two_sqt_a, 0, no_hashes }, + { "xeb", 7, _140_two_xeb_a, 0, no_hashes }, + + { "by", 7, 0, _140_two__by_d, no_hashes }, + { "in", 7, 0, _139_two__in_d, no_hashes }, + {} +}; + +static u3j_core _139_one_d[] = +{ { "two", 3, 0, _139_two_d, no_hashes }, + + { "add", 7, _140_one_add_a, 0, no_hashes }, + { "dec", 7, _140_one_dec_a, 0, no_hashes }, + { "div", 7, _140_one_div_a, 0, no_hashes }, + { "dvr", 7, _140_one_dvr_a, 0, no_hashes }, + { "gte", 7, _140_one_gte_a, 0, no_hashes }, + { "gth", 7, _140_one_gth_a, 0, no_hashes }, + { "lte", 7, _140_one_lte_a, 0, no_hashes }, + { "lth", 7, _140_one_lth_a, 0, no_hashes }, + { "max", 7, _140_one_max_a, 0, no_hashes }, + { "min", 7, _140_one_min_a, 0, no_hashes }, + { "mod", 7, _140_one_mod_a, 0, no_hashes }, + { "mul", 7, _140_one_mul_a, 0, no_hashes }, + { "sub", 7, _140_one_sub_a, 0, no_hashes }, + + { "cap", 7, _140_one_cap_a, 0, no_hashes }, + { "mas", 7, _140_one_mas_a, 0, no_hashes }, + { "peg", 7, _140_one_peg_a, 0, no_hashes }, + {} +}; + +u3j_core _k139_d[] = +{ { "one", 3, 0, _139_one_d, no_hashes }, + {} +}; + + static u3j_harm _138_hex_blake3_hash_a[] = {{".2", u3we_blake3_hash, c3y}, {}}; + static u3j_harm _138_hex_blake3_compress_a[] = {{".2", u3we_blake3_compress, c3y}, {}}; + static u3j_harm _138_hex_blake3_chunk_output_a[] = {{".2", u3we_blake3_chunk_output, c3y}, {}}; + static u3j_core _138_hex_blake3_d[] = + { { "hash", 7, _138_hex_blake3_hash_a, 0, no_hashes }, + { "chunk-output", 7, _138_hex_blake3_chunk_output_a, 0, no_hashes }, + {} + }; + static u3j_core _138_hex_blake3_impl_d[] = + { { "compress", 7, _138_hex_blake3_compress_a, 0, no_hashes }, + { "blake3", 7, 0, _138_hex_blake3_d, no_hashes }, + {} + }; +static u3j_core _138_hex_blake_d[] = + { { "blake2b", 7, _140_hex_blake2b_a, 0, no_hashes }, + { "blake3-impl", 7, 0, _138_hex_blake3_impl_d, no_hashes }, + {} + }; + + static u3j_harm _138_hex_chacha_crypt_a[] = {{".2", u3we_chacha_crypt, c3y}, {}}; + static u3j_harm _138_hex_chacha_xchacha_a[] = {{".2", u3we_chacha_xchacha, c3y}, {}}; +static u3j_core _138_hex_chacha_d[] = + { { "crypt", 7, _138_hex_chacha_crypt_a, 0, no_hashes }, + { "xchacha", 7, _138_hex_chacha_xchacha_a, 0, no_hashes }, + {} + }; + +static u3j_core _138_hex_d[] = +{ { "lore", 63, _140_hex_lore_a, 0, no_hashes }, + { "leer", 63, _140_hex_leer_a, 0, no_hashes }, + { "loss", 63, _140_hex_loss_a, 0, no_hashes }, + { "lune", 127, _140_hex_lune_a, 0, no_hashes }, + + { "coed", 63, 0, _140_hex_coed_d, no_hashes }, + { "aes", 31, 0, _140_hex_aes_d, no_hashes }, + + { "hmac", 63, 0, _140_hex_hmac_d, no_hashes }, + { "argon", 31, 0, _140_hex_argon_d, no_hashes }, + { "blake", 31, 0, _138_hex_blake_d, no_hashes }, + { "chacha", 31, 0, _138_hex_chacha_d, no_hashes }, + { "kecc", 31, 0, _140_hex_kecc_d, no_hashes }, + { "ripemd", 31, 0, _140_hex_ripe_d, no_hashes }, + { "scr", 31, 0, _140_hex_scr_d, no_hashes }, + { "secp", 6, 0, _140_hex_secp_d, no_hashes }, + { "mimes", 31, 0, _140_hex_mimes_d, no_hashes }, + { "json", 31, 0, _139_hex_json_d, no_hashes }, + {} +}; + +static u3j_core _138_pen_d[] = +{ { "hex", 7, 0, _138_hex_d, no_hashes }, + + { "cell", 7, _140_pen_cell_a, 0, no_hashes }, + { "comb", 7, _140_pen_comb_a, 0, no_hashes }, + { "cons", 7, _140_pen_cons_a, 0, no_hashes }, + { "core", 7, _140_pen_core_a, 0, no_hashes }, + { "face", 7, _140_pen_face_a, 0, no_hashes }, + { "fitz", 7, _140_pen_fitz_a, 0, no_hashes }, + // flan, flip, and flor removed + // + { "fork", 7, _140_pen_fork_a, 0, no_hashes }, + { "look", 7, _140_pen_look_a, 0, no_hashes }, + { "loot", 7, _140_pen_loot_a, 0, no_hashes }, + { "ut", 15, 0, _140_pen__ut_d, no_hashes, _140_pen__ut_ho }, + {} +}; + +static u3j_core _138_qua_d[] = +{ { "pen", 3, 0, _138_pen_d, no_hashes, _140_pen_ho }, + + { "po", 7, 0, _140_qua__po_d, no_hashes }, + + { "trip", 7, _140_qua_trip_a, 0, no_hashes }, + + { "bend", 7, 0, _140_qua__bend_d, no_hashes }, + { "cold", 7, 0, _140_qua__cold_d, no_hashes }, + { "comp", 7, 0, _140_qua__comp_d, no_hashes }, + { "cook", 7, 0, _140_qua__cook_d, no_hashes }, + { "easy", 7, 0, _140_qua__easy_d, no_hashes }, + { "glue", 7, 0, _140_qua__glue_d, no_hashes }, + { "here", 7, 0, _140_qua__here_d, no_hashes }, + { "just", 7, 0, _140_qua__just_d, no_hashes }, + { "mask", 7, 0, _140_qua__mask_d, no_hashes }, + { "shim", 7, 0, _140_qua__shim_d, no_hashes }, + { "stag", 7, 0, _140_qua__stag_d, no_hashes }, + { "stew", 7, 0, _140_qua__stew_d, no_hashes }, + { "stir", 7, 0, _140_qua__stir_d, no_hashes }, + + { "pfix", 7, _140_qua_pfix_a, 0, no_hashes }, + { "plug", 7, _140_qua_plug_a, 0, no_hashes }, + { "pose", 7, _140_qua_pose_a, 0, no_hashes }, + { "sfix", 7, _140_qua_sfix_a, 0, no_hashes }, + + { "mink", 7, _140_qua_mink_a, 0, no_hashes }, + { "mole", 7, _140_qua_mole_a, 0, no_hashes }, + { "mule", 7, _140_qua_mule_a, 0, no_hashes }, + + { "scot", 7, _140_qua_scot_a, 0, no_hashes }, + { "scow", 7, _140_qua_scow_a, 0, no_hashes }, + { "slaw", 7, _140_qua_slaw_a, 0, no_hashes }, + {} +}; + +static u3j_core _138_tri_d[] = +{ { "qua", 3, 0, _138_qua_d, no_hashes, _140_qua_ho }, + + { "cofl", 7, 0, _140_tri__cofl_d, no_hashes }, + { "rd", 7, 0, _140_tri__rd_d, no_hashes }, + { "rs", 7, 0, _140_tri__rs_d, no_hashes }, + { "rq", 7, 0, _140_tri__rq_d, no_hashes }, + { "rh", 7, 0, _140_tri__rh_d, no_hashes }, + { "og", 7, 0, _140_tri__og_d, no_hashes }, + + { "sha", 7, 0, _140_tri__sha_d, no_hashes }, + { "shax", 7, _140_tri_shax_a, 0, no_hashes }, + { "shay", 7, _140_tri_shay_a, 0, no_hashes }, + { "shas", 7, _140_tri_shas_a, 0, no_hashes }, + { "shal", 7, _140_tri_shal_a, 0, no_hashes }, + + { "ob", 3, 0, _140_ob_d, no_hashes, _140_ob_ho }, + {} +}; + +static u3j_harm _138_two__by_bif_a[] = {{".2", u3wdb_bif, c3y}, {}}; + +static u3j_core _138_two__by_d[] = + { { "all", 7, _140_two__by_all_a, 0, _140_two__by_all_ha }, + { "any", 7, _140_two__by_any_a, 0, _140_two__by_any_ha }, + { "apt", 7, _140_two__by_apt_a, 0, _140_two__by_apt_ha }, + { "bif", 7, _138_two__by_bif_a, 0, no_hashes }, + { "del", 7, _140_two__by_del_a, 0, _140_two__by_del_ha }, + { "dif", 7, _140_two__by_dif_a, 0, _140_two__by_dif_ha }, + { "gas", 7, _140_two__by_gas_a, 0, _140_two__by_gas_ha }, + { "get", 7, _140_two__by_get_a, 0, _140_two__by_get_ha }, + { "has", 7, _140_two__by_has_a, 0, _140_two__by_has_ha }, + { "int", 7, _140_two__by_int_a, 0, _140_two__by_int_ha }, + { "jab", 7, _140_two__by_jab_a, 0, _140_two__by_jab_ha }, + { "key", 7, _140_two__by_key_a, 0, _140_two__by_key_ha }, + { "put", 7, _140_two__by_put_a, 0, _140_two__by_put_ha }, + { "rep", 7, _140_two__by_rep_a, 0, _140_two__by_rep_ha }, + { "run", 7, _140_two__by_run_a, 0, _140_two__by_run_ha }, + { "tap", 7, _140_two__by_tap_a, 0, _140_two__by_tap_ha }, + { "uni", 7, _140_two__by_uni_a, 0, _140_two__by_uni_ha }, + { "urn", 7, _140_two__by_urn_a, 0, _140_two__by_urn_ha }, + { "wyt", 3, _140_two__by_wyt_a, 0, _140_two__by_wyt_ha }, + {} + }; + +static u3j_harm _138_two_mate_a[] = {{".2", u3wb_mate, c3y}, {}}; + +static u3j_harm _138_two_aor_a[] = {{".2", u3wc_aor, c3y}, {}}; + +static u3j_core _138_two_d[] = +{ { "tri", 3, 0, _138_tri_d, no_hashes, _140_tri_ho }, + + { "find", 7, _140_two_find_a, 0, no_hashes }, + { "flop", 7, _140_two_flop_a, 0, no_hashes }, + { "lent", 7, _140_two_lent_a, 0, no_hashes }, + { "levy", 7, _140_two_levy_a, 0, no_hashes }, + { "lien", 7, _140_two_lien_a, 0, no_hashes }, + { "murn", 7, _140_two_murn_a, 0, no_hashes }, + { "need", 7, _140_two_need_a, 0, no_hashes }, + { "mate", 7, _138_two_mate_a, 0, no_hashes }, + { "reap", 7, _140_two_reap_a, 0, no_hashes }, + { "reel", 7, _140_two_reel_a, 0, no_hashes }, + { "roll", 7, _140_two_roll_a, 0, no_hashes }, + { "skid", 7, _140_two_skid_a, 0, no_hashes }, + { "skim", 7, _140_two_skim_a, 0, no_hashes }, + { "skip", 7, _140_two_skip_a, 0, no_hashes }, + { "scag", 7, _140_two_scag_a, 0, no_hashes }, + { "slag", 7, _140_two_slag_a, 0, no_hashes }, + { "snag", 7, _140_two_snag_a, 0, no_hashes }, + { "sort", 7, _140_two_sort_a, 0, no_hashes }, + { "turn", 7, _140_two_turn_a, 0, no_hashes }, + { "weld", 7, _140_two_weld_a, 0, no_hashes }, + { "welp", 7, _140_two_welp_a, 0, no_hashes }, + { "zing", 7, _140_two_zing_a, 0, no_hashes }, + + { "aor", 7, _138_two_aor_a, 0, no_hashes }, + { "bex", 7, _140_two_bex_a, 0, no_hashes }, + { "cat", 7, _140_two_cat_a, 0, no_hashes }, + { "can", 7, _140_two_can_a, 0, no_hashes }, + { "con", 7, _140_two_con_a, 0, no_hashes }, + { "cue", 7, _140_two_cue_a, 0, no_hashes }, + { "cut", 7, _140_two_cut_a, 0, no_hashes }, + { "dis", 7, _140_two_dis_a, 0, no_hashes }, + { "dor", 7, _140_two_dor_a, 0, no_hashes }, + { "end", 7, _140_two_end_a, 0, no_hashes }, + { "gor", 7, _140_two_gor_a, 0, no_hashes }, + { "jam", 7, _140_two_jam_a, 0, no_hashes }, + { "lsh", 7, _140_two_lsh_a, 0, no_hashes }, + { "mat", 7, _140_two_mat_a, 0, no_hashes }, + { "met", 7, _140_two_met_a, 0, no_hashes }, + { "mix", 7, _140_two_mix_a, 0, no_hashes }, + { "mor", 7, _140_two_mor_a, 0, no_hashes }, + { "mug", 7, _140_two_mug_a, 0, no_hashes }, + { "muk", 59, _140_two_muk_a, 0, no_hashes }, + { "rap", 7, _140_two_rap_a, 0, no_hashes }, + { "rep", 7, _140_two_rep_a, 0, no_hashes }, + { "rev", 7, _140_two_rev_a, 0, no_hashes }, + { "rip", 7, _140_two_rip_a, 0, no_hashes }, + { "rsh", 7, _140_two_rsh_a, 0, no_hashes }, + { "swp", 7, _140_two_swp_a, 0, no_hashes }, + { "rub", 7, _140_two_rub_a, 0, no_hashes }, + { "pow", 7, _140_two_pow_a, 0, no_hashes }, + { "sqt", 7, _140_two_sqt_a, 0, no_hashes }, + { "xeb", 7, _140_two_xeb_a, 0, no_hashes }, + + { "by", 7, 0, _138_two__by_d, no_hashes }, + { "in", 7, 0, _139_two__in_d, no_hashes }, + {} +}; + +static u3j_core _138_one_d[] = +{ { "two", 3, 0, _138_two_d, no_hashes }, + + { "add", 7, _140_one_add_a, 0, no_hashes }, + { "dec", 7, _140_one_dec_a, 0, no_hashes }, + { "div", 7, _140_one_div_a, 0, no_hashes }, + { "dvr", 7, _140_one_dvr_a, 0, no_hashes }, + { "gte", 7, _140_one_gte_a, 0, no_hashes }, + { "gth", 7, _140_one_gth_a, 0, no_hashes }, + { "lte", 7, _140_one_lte_a, 0, no_hashes }, + { "lth", 7, _140_one_lth_a, 0, no_hashes }, + { "max", 7, _140_one_max_a, 0, no_hashes }, + { "min", 7, _140_one_min_a, 0, no_hashes }, + { "mod", 7, _140_one_mod_a, 0, no_hashes }, + { "mul", 7, _140_one_mul_a, 0, no_hashes }, + { "sub", 7, _140_one_sub_a, 0, no_hashes }, + + { "cap", 7, _140_one_cap_a, 0, no_hashes }, + { "mas", 7, _140_one_mas_a, 0, no_hashes }, + { "peg", 7, _140_one_peg_a, 0, no_hashes }, + {} +}; + +static u3j_core _k138_d[] = +{ { "one", 3, 0, _138_one_d, no_hashes }, + {} +}; + + +static u3j_core _a50_two__by_d[] = + { { "apt", 7, _140_two__by_apt_a, 0, _140_two__by_apt_ha }, + { "del", 7, _140_two__by_del_a, 0, _140_two__by_del_ha }, + { "get", 7, _140_two__by_get_a, 0, _140_two__by_get_ha }, + { "has", 7, _140_two__by_has_a, 0, _140_two__by_has_ha }, + { "put", 7, _140_two__by_put_a, 0, _140_two__by_put_ha }, + {} + }; + +static u3j_core _a50_two__in_d[] = + { { "apt", 7, _140_two__in_apt_a, 0, _140_two__in_apt_ha }, // NB: 140 jet + { "del", 7, _140_two__in_del_a, 0, _140_two__in_del_ha }, + { "put", 7, _140_two__in_put_a, 0, _140_two__in_put_ha }, + {} + }; + +u3j_core _a50_d[] = +{ { "add", 7, _140_one_add_a, 0, _140_one_add_ha }, + { "dec", 7, _140_one_dec_a, 0, _140_one_dec_ha }, + { "div", 7, _140_one_div_a, 0, _140_one_div_ha }, + { "dvr", 7, _140_one_dvr_a, 0, _140_one_dvr_ha }, + { "gte", 7, _140_one_gte_a, 0, _140_one_gte_ha }, + { "gth", 7, _140_one_gth_a, 0, _140_one_gth_ha }, + { "lte", 7, _140_one_lte_a, 0, _140_one_lte_ha }, + { "lth", 7, _140_one_lth_a, 0, _140_one_lth_ha }, + { "mod", 7, _140_one_mod_a, 0, _140_one_mod_ha }, + { "mul", 7, _140_one_mul_a, 0, _140_one_mul_ha }, + { "sub", 7, _140_one_sub_a, 0, _140_one_sub_ha }, + + { "bex", 7, _140_two_bex_a, 0, _140_two_bex_ha }, + { "cat", 7, _140_two_cat_a, 0, _140_two_cat_ha }, + { "can", 7, _140_two_can_a, 0, _140_two_can_ha }, + { "con", 7, _140_two_con_a, 0, _140_two_con_ha }, + { "cut", 7, _140_two_cut_a, 0, _140_two_cut_ha }, + { "dis", 7, _140_two_dis_a, 0, _140_two_dis_ha }, + { "dor", 7, _140_two_dor_a, 0, _140_two_dor_ha }, + { "end", 7, _140_two_end_a, 0, _140_two_end_ha }, + { "gor", 7, _140_two_gor_a, 0, _140_two_gor_ha }, + { "lsh", 7, _140_two_lsh_a, 0, _140_two_lsh_ha }, + { "met", 7, _140_two_met_a, 0, _140_two_met_ha }, + { "mix", 7, _140_two_mix_a, 0, _140_two_mix_ha }, + { "mor", 7, _140_two_mor_a, 0, _140_two_mor_ha }, + { "mug", 7, _140_two_mug_a, 0, _140_two_mug_ha }, + { "muk", 59, _140_two_muk_a, 0, _140_two_muk_ha }, // TODO: why 59? + { "rep", 7, _140_two_rep_a, 0, _140_two_rep_ha }, + { "rip", 7, _140_two_rip_a, 0, _140_two_rip_ha }, + { "rsh", 7, _140_two_rsh_a, 0, _140_two_rsh_ha }, + { "swp", 7, _140_two_swp_a, 0, _140_two_swp_ha }, + + { "flop", 7, _140_two_flop_a, 0, _140_two_flop_ha }, + { "lent", 7, _140_two_lent_a, 0, _140_two_lent_ha }, + { "levy", 7, _140_two_levy_a, 0, _140_two_levy_ha }, + { "reap", 7, _140_two_reap_a, 0, _140_two_reap_ha }, + { "slag", 7, _140_two_slag_a, 0, _140_two_slag_ha }, + { "snag", 7, _140_two_snag_a, 0, _140_two_snag_ha }, + { "turn", 7, _140_two_turn_a, 0, _140_two_turn_ha }, + { "welp", 7, _140_two_welp_a, 0, _140_two_welp_ha }, + + { "by", 7, 0, _a50_two__by_d, _140_two__by_ha }, + { "in", 7, 0, _a50_two__in_d, _140_two__in_ha }, + {} +}; + +extern u3j_core _k137_d[]; + +static u3j_core _d[] = +{ { "k140", 0, 0, _k140_d, _k140_ha, 0, (u3j_core*) 140, 0 }, + { "k139", 0, 0, _k139_d, no_hashes, 0, (u3j_core*) 139, 0 }, + { "k138", 0, 0, _k138_d, no_hashes, 0, (u3j_core*) 138, 0 }, + { "k137", 0, 0, _k137_d, no_hashes, 0, (u3j_core*) 137, 0 }, + { "a50", 0, 0, _a50_d, _k140_ha, 0, (u3j_core*) c3__a50, 0 }, + {} +}; + +u3j_dash +u3j_Dash = { + _d, + 0, + 0 +}; + diff --git a/vere/pkg/noun/jets/w.h b/vere/pkg/noun/jets/w.h new file mode 100644 index 0000000..2a2a2c9 --- /dev/null +++ b/vere/pkg/noun/jets/w.h @@ -0,0 +1,401 @@ +/// @file + +#ifndef U3_JETS_W_H +#define U3_JETS_W_H + +#include "types.h" + + /** Tier 1. + **/ + u3_noun u3wa_add(u3_noun); + u3_noun u3wa_dec(u3_noun); + u3_noun u3wa_div(u3_noun); + u3_noun u3wa_gte(u3_noun); + u3_noun u3wa_gth(u3_noun); + u3_noun u3wa_lte(u3_noun); + u3_noun u3wa_lth(u3_noun); + u3_noun u3wa_max(u3_noun); + u3_noun u3wa_min(u3_noun); + u3_noun u3wa_mod(u3_noun); + u3_noun u3wa_mul(u3_noun); + u3_noun u3wa_sub(u3_noun); + + /** Tier 2. + **/ + u3_noun u3wb_bind(u3_noun); + u3_noun u3wb_clap(u3_noun); + u3_noun u3wb_drop(u3_noun); + u3_noun u3wb_find(u3_noun); + u3_noun u3wb_flop(u3_noun); + u3_noun u3wb_lent(u3_noun); + u3_noun u3wb_levy(u3_noun); + u3_noun u3wb_lien(u3_noun); + u3_noun u3wb_murn(u3_noun); + u3_noun u3wb_need(u3_noun); + u3_noun u3wb_mate(u3_noun); + u3_noun u3wb_reap(u3_noun); + u3_noun u3wb_reel(u3_noun); + u3_noun u3wb_roll(u3_noun); + u3_noun u3wb_skid(u3_noun); + u3_noun u3wb_skim(u3_noun); + u3_noun u3wb_skip(u3_noun); + u3_noun u3wb_scag(u3_noun); + u3_noun u3wb_slag(u3_noun); + u3_noun u3wb_snag(u3_noun); + u3_noun u3wb_sort(u3_noun); + u3_noun u3wb_turn(u3_noun); + u3_noun u3wb_weld(u3_noun); +# define u3wb_welp u3wb_weld + u3_noun u3wb_zing(u3_noun); + + /** Tier 3. + **/ + u3_noun u3wc_aor(u3_noun); + u3_noun u3wc_bex(u3_noun); + u3_noun u3wc_xeb(u3_noun); + u3_noun u3wc_can(u3_noun); + u3_noun u3wc_cap(u3_noun); + u3_noun u3wc_cat(u3_noun); + u3_noun u3wc_clz(u3_noun); + u3_noun u3wc_con(u3_noun); + u3_noun u3wc_ctz(u3_noun); + u3_noun u3wc_cut(u3_noun); + u3_noun u3wc_dis(u3_noun); + u3_noun u3wc_dor(u3_noun); + u3_noun u3wc_dvr(u3_noun); + u3_noun u3wc_end(u3_noun); + u3_noun u3wc_gor(u3_noun); + u3_noun u3wc_ham(u3_noun); + u3_noun u3wc_hew(u3_noun); + u3_noun u3wc_lsh(u3_noun); + u3_noun u3wc_mas(u3_noun); + u3_noun u3wc_met(u3_noun); + u3_noun u3wc_mix(u3_noun); + u3_noun u3wc_mor(u3_noun); + u3_noun u3wc_mug(u3_noun); + u3_noun u3wc_muk(u3_noun); + u3_noun u3wc_peg(u3_noun); + u3_noun u3wc_pow(u3_noun); + u3_noun u3wc_rap(u3_noun); + u3_noun u3wc_rep(u3_noun); + u3_noun u3wc_rev(u3_noun); + u3_noun u3wc_rig(u3_noun); + u3_noun u3wc_rip(u3_noun); + u3_noun u3wc_rsh(u3_noun); + u3_noun u3wc_sew(u3_noun); + u3_noun u3wc_swp(u3_noun); + u3_noun u3wc_sqt(u3_noun); + + u3_noun u3wcp_ins(u3_noun); + u3_noun u3wcp_ind(u3_noun); + u3_noun u3wcp_tos(u3_noun); + u3_noun u3wcp_tod(u3_noun); + + /** Tier 4. + **/ + u3_noun u3wdb_all(u3_noun); + u3_noun u3wdb_any(u3_noun); + u3_noun u3wdb_apt(u3_noun); + u3_noun u3wdb_bif(u3_noun); + u3_noun u3wdb_del(u3_noun); + u3_noun u3wdb_dif(u3_noun); + u3_noun u3wdb_gas(u3_noun); + u3_noun u3wdb_get(u3_noun); + u3_noun u3wdb_has(u3_noun); + u3_noun u3wdb_int(u3_noun); + u3_noun u3wdb_jab(u3_noun); + u3_noun u3wdb_key(u3_noun); + u3_noun u3wdb_put(u3_noun); +# define u3wdb_tap u3wdi_tap + u3_noun u3wdb_uni(u3_noun); + u3_noun u3wdb_urn(u3_noun); +# define u3wdb_rep u3wdi_rep + u3_noun u3wdb_run(u3_noun); +# define u3wdb_wyt u3wdi_wyt + + u3_noun u3wdi_apt_140(u3_noun); + u3_noun u3wdi_apt(u3_noun); + u3_noun u3wdi_bif(u3_noun); + u3_noun u3wdi_del(u3_noun); + u3_noun u3wdi_dif(u3_noun); + u3_noun u3wdi_gas(u3_noun); + u3_noun u3wdi_has(u3_noun); + u3_noun u3wdi_int(u3_noun); + u3_noun u3wdi_put(u3_noun); + u3_noun u3wdi_rep(u3_noun); + u3_noun u3wdi_run(u3_noun); + u3_noun u3wdi_tap(u3_noun); + u3_noun u3wdi_uni(u3_noun); + u3_noun u3wdi_wyt(u3_noun); + + /** Tier 5. + **/ + u3_noun u3we_cue(u3_noun); + u3_noun u3we_jam(u3_noun); + u3_noun u3we_mat(u3_noun); + u3_noun u3we_rub(u3_noun); + u3_noun u3we_leer(u3_noun); + u3_noun u3we_lore(u3_noun); + u3_noun u3we_loss(u3_noun); + u3_noun u3we_lune(u3_noun); + u3_noun u3we_mink(u3_noun); + u3_noun u3we_mole(u3_noun); + u3_noun u3we_mule(u3_noun); + u3_noun u3we_repg(u3_noun); + u3_noun u3we_rexp(u3_noun); + u3_noun u3we_trip(u3_noun); + + u3_noun u3we_scow(u3_noun); + u3_noun u3we_scot(u3_noun); + u3_noun u3we_slaw(u3_noun); + + u3_noun u3we_pfix(u3_noun); + u3_noun u3we_plug(u3_noun); + u3_noun u3we_pose(u3_noun); + u3_noun u3we_sfix(u3_noun); + + u3_noun u3wea_ecba_en(u3_noun); + u3_noun u3wea_ecba_de(u3_noun); + u3_noun u3wea_ecbb_en(u3_noun); + u3_noun u3wea_ecbb_de(u3_noun); + u3_noun u3wea_ecbc_en(u3_noun); + u3_noun u3wea_ecbc_de(u3_noun); + + u3_noun u3wea_cbca_en(u3_noun); + u3_noun u3wea_cbca_de(u3_noun); + u3_noun u3wea_cbcb_en(u3_noun); + u3_noun u3wea_cbcb_de(u3_noun); + u3_noun u3wea_cbcc_en(u3_noun); + u3_noun u3wea_cbcc_de(u3_noun); + + u3_noun u3wea_siva_en(u3_noun); + u3_noun u3wea_siva_de(u3_noun); + u3_noun u3wea_sivb_en(u3_noun); + u3_noun u3wea_sivb_de(u3_noun); + u3_noun u3wea_sivc_en(u3_noun); + u3_noun u3wea_sivc_de(u3_noun); + + u3_noun u3wea_de(u3_noun); + u3_noun u3wea_en(u3_noun); + + u3_noun u3wes_hsh(u3_noun); + u3_noun u3wes_hsl(u3_noun); + u3_noun u3wes_pbk(u3_noun); + u3_noun u3wes_pbl(u3_noun); + + u3_noun u3we_shax(u3_noun); + u3_noun u3we_shay(u3_noun); + u3_noun u3we_shas(u3_noun); + u3_noun u3we_shal(u3_noun); + u3_noun u3we_sha1(u3_noun); + + u3_noun u3we_fein_ob(u3_noun); + u3_noun u3we_fynd_ob(u3_noun); + + u3_noun u3weo_raw(u3_noun); + + u3_noun u3wee_scad(u3_noun); + u3_noun u3wee_scas(u3_noun); + u3_noun u3wee_scap(u3_noun); + + u3_noun u3wee_puck(u3_noun); + u3_noun u3wee_luck(u3_noun); + u3_noun u3wee_sign(u3_noun); + u3_noun u3wee_sign_raw(u3_noun); + u3_noun u3wee_veri(u3_noun); + u3_noun u3wee_sign_octs(u3_noun); + u3_noun u3wee_sign_octs_raw(u3_noun); + u3_noun u3wee_veri_octs(u3_noun); + u3_noun u3wee_shar(u3_noun); + u3_noun u3wee_slar(u3_noun); + u3_noun u3wee_recs(u3_noun); + u3_noun u3wee_smac(u3_noun); + u3_noun u3wee_point_neg(u3_noun); + u3_noun u3wee_point_add(u3_noun); + u3_noun u3wee_scalarmult(u3_noun); + u3_noun u3wee_scalarmult_base(u3_noun); + u3_noun u3wee_add_scalarmult_scalarmult_base(u3_noun); + u3_noun u3wee_add_double_scalarmult(u3_noun); + + u3_noun u3we_hmac(u3_noun); + + u3_noun u3we_kecc224(u3_noun); + u3_noun u3we_kecc256(u3_noun); + u3_noun u3we_kecc384(u3_noun); + u3_noun u3we_kecc512(u3_noun); + + u3_noun u3we_argon2(u3_noun); + + u3_noun u3we_blake2b(u3_noun); + u3_noun u3we_blake3_hash(u3_noun); + u3_noun u3we_blake3_chunk_output(u3_noun); + u3_noun u3we_blake3_compress(u3_noun); + + u3_noun u3we_chacha_crypt(u3_noun); + u3_noun u3we_chacha_xchacha(u3_noun); + + u3_noun u3we_ripe(u3_noun); + + u3_noun u3we_make(u3_noun); + u3_noun u3we_sign(u3_noun); + u3_noun u3we_reco(u3_noun); + + u3_noun u3we_sosi(u3_noun); + u3_noun u3we_sove(u3_noun); + + u3_noun u3we_en_base16(u3_noun); + u3_noun u3we_de_base16(u3_noun); + + u3_noun u3we_json_de(u3_noun); + u3_atom u3we_json_en(u3_noun); + + u3_noun u3we_bend_fun(u3_noun); + u3_noun u3we_cold_fun(u3_noun); + u3_noun u3we_cook_fun(u3_noun); + u3_noun u3we_comp_fun(u3_noun); + u3_noun u3we_easy_fun(u3_noun); + u3_noun u3we_glue_fun(u3_noun); + u3_noun u3we_here_fun(u3_noun); + u3_noun u3we_just_fun(u3_noun); + u3_noun u3we_mask_fun(u3_noun); + u3_noun u3we_shim_fun(u3_noun); + u3_noun u3we_stag_fun(u3_noun); + u3_noun u3we_stew_fun(u3_noun); + u3_noun u3we_stir_fun(u3_noun); + + u3_noun u3wef_drg(u3_noun); + u3_noun u3wef_lug(u3_noun); + + u3_noun u3wer_add(u3_noun); + u3_noun u3wer_sub(u3_noun); + u3_noun u3wer_mul(u3_noun); + u3_noun u3wer_div(u3_noun); + u3_noun u3wer_sqt(u3_noun); + u3_noun u3wer_fma(u3_noun); + u3_noun u3wer_lth(u3_noun); + u3_noun u3wer_lte(u3_noun); + u3_noun u3wer_equ(u3_noun); + u3_noun u3wer_gte(u3_noun); + u3_noun u3wer_gth(u3_noun); + + u3_noun u3wet_add(u3_noun); + u3_noun u3wet_sub(u3_noun); + u3_noun u3wet_mul(u3_noun); + u3_noun u3wet_div(u3_noun); + u3_noun u3wet_sqt(u3_noun); + u3_noun u3wet_fma(u3_noun); + u3_noun u3wet_lth(u3_noun); + u3_noun u3wet_lte(u3_noun); + u3_noun u3wet_equ(u3_noun); + u3_noun u3wet_gte(u3_noun); + u3_noun u3wet_gth(u3_noun); + + u3_noun u3weq_add(u3_noun); + u3_noun u3weq_sub(u3_noun); + u3_noun u3weq_mul(u3_noun); + u3_noun u3weq_div(u3_noun); + u3_noun u3weq_sqt(u3_noun); + u3_noun u3weq_fma(u3_noun); + u3_noun u3weq_lth(u3_noun); + u3_noun u3weq_lte(u3_noun); + u3_noun u3weq_equ(u3_noun); + u3_noun u3weq_gte(u3_noun); + u3_noun u3weq_gth(u3_noun); + + u3_noun u3wes_add(u3_noun); + u3_noun u3wes_sub(u3_noun); + u3_noun u3wes_mul(u3_noun); + u3_noun u3wes_div(u3_noun); + u3_noun u3wes_sqt(u3_noun); + u3_noun u3wes_fma(u3_noun); + u3_noun u3wes_lth(u3_noun); + u3_noun u3wes_lte(u3_noun); + u3_noun u3wes_equ(u3_noun); + u3_noun u3wes_gte(u3_noun); + u3_noun u3wes_gth(u3_noun); + + u3_noun u3we_crc32(u3_noun); + + u3_noun u3we_lia_run(u3_noun); + u3_noun u3we_lia_run_once(u3_noun); + + /** Tier 6. + **/ + u3_noun u3wf_bull(u3_noun); + u3_noun u3wf_cell(u3_noun); + u3_noun u3wf_comb(u3_noun); + u3_noun u3wf_cons(u3_noun); + u3_noun u3wf_core(u3_noun); + u3_noun u3wf_cube(u3_noun); + u3_noun u3wf_face(u3_noun); + u3_noun u3wf_fine(u3_noun); + u3_noun u3wf_fitz(u3_noun); + u3_noun u3wf_flan_139(u3_noun); + u3_noun u3wf_flay(u3_noun); + u3_noun u3wf_flip_139(u3_noun); + u3_noun u3wf_flor_139(u3_noun); + u3_noun u3wf_forq(u3_noun); + u3_noun u3wf_fork(u3_noun); + u3_noun u3wf_hint(u3_noun); + u3_noun u3wf_hike(u3_noun); + u3_noun u3wf_look(u3_noun); + u3_noun u3wf_loot(u3_noun); + + u3_noun u3wfl_bunt(u3_noun); + u3_noun u3wfl_whip(u3_noun); + + u3_noun u3wfp_hack(u3_noun); + u3_noun u3wfp_late(u3_noun); + u3_noun u3wfp_open(u3_noun); + u3_noun u3wfp_rake(u3_noun); + + u3_noun u3wfu_busk(u3_noun); + u3_noun u3wfu_crop(u3_noun); + u3_noun u3wfu_find(u3_noun); + u3_noun u3wfu_fond(u3_noun); + u3_noun u3wfu_fish(u3_noun); + u3_noun u3wfu_fuse(u3_noun); + u3_noun u3wfu_mint(u3_noun); + u3_noun u3wfu_mull(u3_noun); + u3_noun u3wfu_nest_dext(u3_noun); + u3_noun u3wfu_peek(u3_noun); + u3_noun u3wfu_play(u3_noun); + u3_noun u3wfu_repo(u3_noun); + u3_noun u3wfu_rest(u3_noun); + + /** Tier 7. + **/ + u3_noun u3wg_plot_fax(u3_noun); + u3_noun u3wg_plot_met(u3_noun); + u3_noun u3wi_la_add(u3_noun); + u3_noun u3wi_la_sub(u3_noun); + u3_noun u3wi_la_mul(u3_noun); + u3_noun u3wi_la_div(u3_noun); + u3_noun u3wi_la_mod(u3_noun); + u3_noun u3wi_la_adds(u3_noun); + u3_noun u3wi_la_subs(u3_noun); + u3_noun u3wi_la_muls(u3_noun); + u3_noun u3wi_la_divs(u3_noun); + u3_noun u3wi_la_mods(u3_noun); + u3_noun u3wi_la_dot(u3_noun); + u3_noun u3wi_la_diag(u3_noun); + u3_noun u3wi_la_transpose(u3_noun); + u3_noun u3wi_la_cumsum(u3_noun); + u3_noun u3wi_la_argmin(u3_noun); + u3_noun u3wi_la_argmax(u3_noun); + u3_noun u3wi_la_ravel(u3_noun); + u3_noun u3wi_la_min(u3_noun); + u3_noun u3wi_la_max(u3_noun); + u3_noun u3wi_la_linspace(u3_noun); + u3_noun u3wi_la_range(u3_noun); + u3_noun u3wi_la_abs(u3_noun); + u3_noun u3wi_la_gth(u3_noun); + u3_noun u3wi_la_gte(u3_noun); + u3_noun u3wi_la_lth(u3_noun); + u3_noun u3wi_la_lte(u3_noun); + + u3_noun u3wi_la_trace(u3_noun); + u3_noun u3wi_la_mmul(u3_noun); + +#endif /* ifndef U3_JETS_W_H */ + diff --git a/vere/pkg/noun/jets_tests.c b/vere/pkg/noun/jets_tests.c new file mode 100644 index 0000000..222b31a --- /dev/null +++ b/vere/pkg/noun/jets_tests.c @@ -0,0 +1,994 @@ +/// @file + +#include "noun.h" + +/* _setup(): prepare for tests. +*/ +static void +_setup(void) +{ + u3m_init(1 << 20); + u3m_pave(c3y); +} + +static inline c3_i +_ud_etch(c3_d num_d, const c3_c* num_c) +{ + u3_atom num = u3i_chub(num_d); + c3_c* out_c; + size_t len_i = u3s_etch_ud_c(num, &out_c); + c3_i ret_i = 1; + + if ( 0 != strcmp(num_c, out_c) ) { + fprintf(stderr, "etch_ud: %" PRIu64 " fail; expected %s, got '%s'\r\n", + num_d, num_c, out_c); + ret_i = 0; + } + else { + u3_noun out = u3s_etch_ud(num); + u3_noun tou = u3i_bytes(len_i, (c3_y*)out_c); + + if ( c3n == u3r_sing(tou, out) ) { + fprintf(stderr, "etch_ud: %" PRIu64 " mismatch; expected %s\r\n", num_d, num_c); + u3m_p("out", out); + ret_i = 0; + } + + u3z(out); + u3z(tou); + } + + c3_free(out_c); + u3z(num); + + return ret_i; +} + +static c3_i +_test_etch_ud(void) +{ + c3_i ret_i = 1; + + ret_i &= _ud_etch(0, "0"); + ret_i &= _ud_etch(1, "1"); + ret_i &= _ud_etch(12, "12"); + ret_i &= _ud_etch(123, "123"); + ret_i &= _ud_etch(1234, "1.234"); + ret_i &= _ud_etch(12345, "12.345"); + ret_i &= _ud_etch(123456, "123.456"); + ret_i &= _ud_etch(1234567, "1.234.567"); + ret_i &= _ud_etch(12345678, "12.345.678"); + ret_i &= _ud_etch(123456789, "123.456.789"); + ret_i &= _ud_etch(100000000, "100.000.000"); + ret_i &= _ud_etch(101101101, "101.101.101"); + ret_i &= _ud_etch(201201201, "201.201.201"); + ret_i &= _ud_etch(302201100, "302.201.100"); + + ret_i &= _ud_etch(8589934592ULL, "8.589.934.592"); + ret_i &= _ud_etch(2305843009213693952ULL, "2.305.843.009.213.693.952"); + ret_i &= _ud_etch(18446744073709551615ULL, "18.446.744.073.709.551.615"); + + { + c3_c* num_c = "340.282.366.920.938.463.463.374.607.431.768.211.456"; + u3_atom num = u3qc_bex(128); + c3_c* out_c; + size_t len_i = u3s_etch_ud_c(num, &out_c); + + if ( 0 != strncmp(num_c, out_c, len_i) ) { + fprintf(stderr, "etch_ud: (bex 128) fail; expected %s, got '%s'\r\n", + num_c, out_c); + ret_i = 0; + } + else { + u3_noun out = u3s_etch_ud(num); + u3_noun tou = u3i_bytes(len_i, (c3_y*)out_c); + + if ( c3n == u3r_sing(tou, out) ) { + fprintf(stderr, "etch_ud: (bex 128) mismatch; expected %s\r\n", num_c); + u3m_p("out", out); + ret_i = 0; + } + + u3z(out); + u3z(tou); + } + + c3_free(out_c); + u3z(num); + } + + return ret_i; +} + +static inline c3_i +_ux_etch(c3_d num_d, const c3_c* num_c) +{ + u3_atom num = u3i_chub(num_d); + c3_c* out_c; + size_t len_i = u3s_etch_ux_c(num, &out_c); + c3_i ret_i = 1; + + if ( 0 != strcmp(num_c, out_c) ) { + fprintf(stderr, "etch_ux: 0x%" PRIx64 " fail; expected %s, got '%s'\r\n", + num_d, num_c, out_c); + ret_i = 0; + } + else { + u3_noun out = u3s_etch_ux(num); + u3_noun tou = u3i_bytes(len_i, (c3_y*)out_c); + + if ( c3n == u3r_sing(tou, out) ) { + fprintf(stderr, "etch_ux: 0x%" PRIx64 " mismatch; expected %s\r\n", num_d, num_c); + u3m_p("out", out); + ret_i = 0; + } + + u3z(out); + u3z(tou); + } + + c3_free(out_c); + u3z(num); + + return ret_i; +} + +static c3_i +_test_etch_ux(void) +{ + c3_i ret_i = 1; + + ret_i &= _ux_etch(0x0, "0x0"); + ret_i &= _ux_etch(0x1, "0x1"); + ret_i &= _ux_etch(0x12, "0x12"); + ret_i &= _ux_etch(0x123, "0x123"); + ret_i &= _ux_etch(0x1234, "0x1234"); + ret_i &= _ux_etch(0x12345, "0x1.2345"); + ret_i &= _ux_etch(0x123456, "0x12.3456"); + ret_i &= _ux_etch(0x1234567, "0x123.4567"); + ret_i &= _ux_etch(0x12345678, "0x1234.5678"); + ret_i &= _ux_etch(0x123456789, "0x1.2345.6789"); + ret_i &= _ux_etch(0x100000000, "0x1.0000.0000"); + ret_i &= _ux_etch(0x101101101, "0x1.0110.1101"); + ret_i &= _ux_etch(0x201201201, "0x2.0120.1201"); + ret_i &= _ux_etch(0x302201100, "0x3.0220.1100"); + + ret_i &= _ux_etch(0x123456789abcdefULL, "0x123.4567.89ab.cdef"); + ret_i &= _ux_etch(0x8589934592ULL, "0x85.8993.4592"); + ret_i &= _ux_etch(0x5843009213693952ULL, "0x5843.0092.1369.3952"); + ret_i &= _ux_etch(0x6744073709551615ULL, "0x6744.0737.0955.1615"); + + { + c3_c* num_c = "0x1.0000.0000.0000.0000.0000.0000.0000.0000"; + u3_atom num = u3qc_bex(128); + c3_c* out_c; + size_t len_i = u3s_etch_ux_c(num, &out_c); + + if ( 0 != strncmp(num_c, out_c, len_i) ) { + fprintf(stderr, "etch_ux: (bex 128) fail; expected %s, got '%s'\r\n", + num_c, out_c); + ret_i = 0; + } + else { + u3_noun out = u3s_etch_ux(num); + u3_noun tou = u3i_bytes(len_i, (c3_y*)out_c); + + if ( c3n == u3r_sing(tou, out) ) { + fprintf(stderr, "etch_ux: (bex 128) mismatch; expected %s\r\n", num_c); + u3m_p("out", out); + ret_i = 0; + } + + u3z(out); + u3z(tou); + } + + c3_free(out_c); + u3z(num); + } + + return ret_i; +} + +static inline c3_i +_uv_etch(c3_d num_d, const c3_c* num_c) +{ + u3_atom num = u3i_chub(num_d); + c3_c* out_c; + size_t len_i = u3s_etch_uv_c(num, &out_c); + c3_i ret_i = 1; + + if ( 0 != strcmp(num_c, out_c) ) { + fprintf(stderr, "etch_uv: 0x%" PRIx64 " fail; expected %s, got '%s'\r\n", + num_d, num_c, out_c); + ret_i = 0; + } + else { + u3_noun out = u3s_etch_uv(num); + u3_noun tou = u3i_bytes(len_i, (c3_y*)out_c); + + if ( c3n == u3r_sing(tou, out) ) { + fprintf(stderr, "etch_uv: 0x%" PRIx64 " mismatch; expected %s\r\n", num_d, num_c); + u3m_p("out", out); + ret_i = 0; + } + + u3z(out); + u3z(tou); + } + + c3_free(out_c); + u3z(num); + + return ret_i; +} + +static c3_i +_test_etch_uv(void) +{ + c3_i ret_i = 1; + + ret_i &= _uv_etch(0x0, "0v0"); + ret_i &= _uv_etch(0x1, "0v1"); + ret_i &= _uv_etch(0x10, "0vg"); + ret_i &= _uv_etch(0x12, "0vi"); + ret_i &= _uv_etch(0x123, "0v93"); + ret_i &= _uv_etch(0x1234, "0v4hk"); + ret_i &= _uv_etch(0x12345, "0v28q5"); + ret_i &= _uv_etch(0x123456, "0v14d2m"); + ret_i &= _uv_etch(0x1234567, "0vi6hb7"); + ret_i &= _uv_etch(0x12345678, "0v9.38ljo"); + ret_i &= _uv_etch(0x123456789, "0v4h.kaps9"); + ret_i &= _uv_etch(0x100000000, "0v40.00000"); + ret_i &= _uv_etch(0x101101101, "0v40.h0481"); + ret_i &= _uv_etch(0x201201201, "0v80.i04g1"); + ret_i &= _uv_etch(0x302201100, "0vc1.20480"); + + ret_i &= _uv_etch(0x123456789abcdefULL, "0v28.q5cu4.qnjff"); + ret_i &= _uv_etch(0x8589934592ULL, "0vgm4.p6hci"); + ret_i &= _uv_etch(0x5843009213693952ULL, "0v5gg.o0i89.mieai"); + ret_i &= _uv_etch(0x6744073709551615ULL, "0v6eh.076s4.la5gl"); + + { + c3_c* num_c = "0v8.00000.00000.00000.00000.00000"; + u3_atom num = u3qc_bex(128); + c3_c* out_c; + size_t len_i = u3s_etch_uv_c(num, &out_c); + + if ( 0 != strncmp(num_c, out_c, len_i) ) { + fprintf(stderr, "etch_uv: (bex 128) fail; expected %s, got '%s'\r\n", + num_c, out_c); + ret_i = 0; + } + else { + u3_noun out = u3s_etch_uv(num); + u3_noun tou = u3i_bytes(len_i, (c3_y*)out_c); + + if ( c3n == u3r_sing(tou, out) ) { + // fprintf(stderr, "etch_uv: (bex 128) mismatch; expected %s\r\n", num_c); + u3m_p("out", out); + ret_i = 0; + } + + u3z(out); + u3z(tou); + } + + c3_free(out_c); + u3z(num); + } + + return ret_i; +} + +static inline c3_i +_uw_etch(c3_d num_d, const c3_c* num_c) +{ + u3_atom num = u3i_chub(num_d); + c3_c* out_c; + size_t len_i = u3s_etch_uw_c(num, &out_c); + c3_i ret_i = 1; + + if ( 0 != strcmp(num_c, out_c) ) { + fprintf(stderr, "etch_uw: 0x%" PRIx64 " fail; expected %s, got '%s'\r\n", + num_d, num_c, out_c); + ret_i = 0; + } + else { + u3_noun out = u3s_etch_uw(num); + u3_noun tou = u3i_bytes(len_i, (c3_y*)out_c); + + if ( c3n == u3r_sing(tou, out) ) { + fprintf(stderr, "etch_uw: 0x%" PRIx64 " mismatch; expected %s\r\n", num_d, num_c); + u3m_p("out", out); + ret_i = 0; + } + + u3z(out); + u3z(tou); + } + + c3_free(out_c); + u3z(num); + + return ret_i; +} + +static c3_i +_test_etch_uw(void) +{ + c3_i ret_i = 1; + + ret_i &= _uw_etch(0x0, "0w0"); + ret_i &= _uw_etch(0x1, "0w1"); + ret_i &= _uw_etch(0x10, "0wg"); + ret_i &= _uw_etch(0x12, "0wi"); + ret_i &= _uw_etch(0x123, "0w4z"); + ret_i &= _uw_etch(0x1234, "0w18Q"); + ret_i &= _uw_etch(0x12345, "0wid5"); + ret_i &= _uw_etch(0x123456, "0w4zhm"); + ret_i &= _uw_etch(0x1234567, "0w18QlD"); + ret_i &= _uw_etch(0x12345678, "0wid5pU"); + ret_i &= _uw_etch(0x123456789, "0w4.zhmu9"); + ret_i &= _uw_etch(0x100000000, "0w4.00000"); + ret_i &= _uw_etch(0x101101101, "0w4.14141"); + ret_i &= _uw_etch(0x201201201, "0w8.18181"); + ret_i &= _uw_etch(0x302201100, "0wc.28140"); + + ret_i &= _uw_etch(0x123456789abcdefULL, "0w4zhmu.9GYTL"); + ret_i &= _uw_etch(0x8589934592ULL, "0w8m.9AQmi"); + ret_i &= _uw_etch(0x5843009213693952ULL, "0w5.x3098.jqjBi"); + ret_i &= _uw_etch(0x6744073709551615ULL, "0w6.t41Ps.9lhol"); + + { + c3_c* num_c = "0w40.00000.00000.00000.00000"; + u3_atom num = u3qc_bex(128); + c3_c* out_c; + size_t len_i = u3s_etch_uw_c(num, &out_c); + + if ( 0 != strncmp(num_c, out_c, len_i) ) { + fprintf(stderr, "etch_uw: (bex 128) fail; expected %s, got '%s'\r\n", + num_c, out_c); + ret_i = 0; + } + else { + u3_noun out = u3s_etch_uw(num); + u3_noun tou = u3i_bytes(len_i, (c3_y*)out_c); + + if ( c3n == u3r_sing(tou, out) ) { + fprintf(stderr, "etch_uw: (bex 128) mismatch; expected %s\r\n", num_c); + u3m_p("out", out); + ret_i = 0; + } + + u3z(out); + u3z(tou); + } + + c3_free(out_c); + u3z(num); + } + + return ret_i; +} + +static inline c3_i +_ud_good(c3_w num_w, const c3_c* num_c) +{ + u3_weak out; + if ( num_w != (out = u3s_sift_ud_bytes(strlen(num_c), (c3_y*)num_c)) ) { + if ( u3_none == out ) { + fprintf(stderr, "sift_ud: %s fail; expected %u\r\n", num_c, num_w); + } + else { + fprintf(stderr, "sift_ud: %s wrong; expected %u: actual %u\r\n", num_c, num_w, out); + } + return 0; + } + + return 1; +} + +static inline c3_i +_ud_fail(const c3_c* num_c) +{ + u3_weak out; + if ( u3_none != (out = u3s_sift_ud_bytes(strlen(num_c), (c3_y*)num_c)) ) { + u3m_p("out", out); + fprintf(stderr, "sift_ud: %s expected fail\r\n", num_c); + return 0; + } + + return 1; +} + +static c3_i +_test_sift_ud(void) +{ + c3_i ret_i = 1; + + ret_i &= _ud_good(0, "0"); + ret_i &= _ud_good(1, "1"); + ret_i &= _ud_good(12, "12"); + ret_i &= _ud_good(123, "123"); + ret_i &= _ud_good(1234, "1.234"); + ret_i &= _ud_good(12345, "12.345"); + ret_i &= _ud_good(123456, "123.456"); + ret_i &= _ud_good(1234567, "1.234.567"); + ret_i &= _ud_good(12345678, "12.345.678"); + ret_i &= _ud_good(123456789, "123.456.789"); + ret_i &= _ud_good(100000000, "100.000.000"); + ret_i &= _ud_good(101101101, "101.101.101"); + ret_i &= _ud_good(201201201, "201.201.201"); + ret_i &= _ud_good(302201100, "302.201.100"); + + ret_i &= _ud_fail("01"); + ret_i &= _ud_fail("02"); + ret_i &= _ud_fail("003"); + ret_i &= _ud_fail("1234"); + ret_i &= _ud_fail("1234.5"); + ret_i &= _ud_fail("1234.567.8"); + ret_i &= _ud_fail("1234.56..78."); + ret_i &= _ud_fail("123.45a"); + ret_i &= _ud_fail(".123.456"); + + { + c3_c* num_c = "4.294.967.296"; + u3_weak out = u3s_sift_ud_bytes(strlen(num_c), (c3_y*)num_c); + u3_atom pro = u3qc_bex(32); + + if ( u3_none == out ) { + fprintf(stderr, "sift_ud: (bex 32) fail\r\n"); + ret_i = 0; + } + + if ( c3n == u3r_sing(pro, out) ) { + u3m_p("out", out); + fprintf(stderr, "sift_ud: (bex 32) wrong\r\n"); + ret_i = 0; + } + + u3z(out); u3z(pro); + } + + + { + c3_c* num_c = "340.282.366.920.938.463.463.374.607.431.768.211.456"; + u3_weak out = u3s_sift_ud_bytes(strlen(num_c), (c3_y*)num_c); + u3_atom pro = u3qc_bex(128); + + if ( u3_none == out ) { + fprintf(stderr, "sift_ud: (bex 128) fail\r\n"); + ret_i = 0; + } + + if ( c3n == u3r_sing(pro, out) ) { + u3m_p("out", out); + fprintf(stderr, "sift_ud: (bex 128) wrong\r\n"); + ret_i = 0; + } + + u3z(out); u3z(pro); + } + + return ret_i; +} + +static c3_i +_test_en_base16(void) +{ + c3_i ret_i = 1; + + { + u3_atom dat = 0xaa; + u3_atom pro = u3qe_en_base16(u3r_met(3, dat), dat); + + if ( c3n == u3r_sing_c("aa", pro) ) { + fprintf(stderr, "en_base16: fail (a)\r\n"); + ret_i = 0; + } + + u3z(pro); + } + + { + u3_atom dat = 0x1234; + u3_atom pro = u3qe_en_base16(u3r_met(3, dat), dat); + + if ( c3n == u3r_sing_c("1234", pro) ) { + fprintf(stderr, "en_base16: fail (b)\r\n"); + ret_i = 0; + } + + u3z(pro); + } + + { + u3_atom dat = 0xf012; + u3_atom pro = u3qe_en_base16(u3r_met(3, dat), dat); + + if ( c3n == u3r_sing_c("f012", pro) ) { + fprintf(stderr, "en_base16: fail (c)\r\n"); + ret_i = 0; + } + + u3z(pro); + } + + { + u3_atom dat = 0x10b; + u3_atom pro = u3qe_en_base16(u3r_met(3, dat), dat); + + if ( c3n == u3r_sing_c("010b", pro) ) { + fprintf(stderr, "en_base16: fail (d)\r\n"); + ret_i = 0; + } + + u3z(pro); + } + + { + u3_atom pro = u3qe_en_base16(3, 0x1234); + + if ( c3n == u3r_sing_c("001234", pro) ) { + fprintf(stderr, "en_base16: fail (e)\r\n"); + ret_i = 0; + } + + u3z(pro); + } + + { + u3_atom pro = u3qe_en_base16(1, 0x1234); + + if ( c3n == u3r_sing_c("34", pro) ) { + fprintf(stderr, "en_base16: fail (f)\r\n"); + ret_i = 0; + } + + u3z(pro); + } + + return ret_i; +} + + +static c3_i +_test_de_base16(void) +{ + c3_i ret_i = 1; + + { + u3_noun inp = u3i_string("aa"); + u3_noun pro = u3qe_de_base16(inp); + u3_atom len, dat; + + if ( c3n == u3r_pq(pro, u3_nul, &len, &dat) ) { + fprintf(stderr, "de_base16: fail cell (a)\r\n"); + ret_i = 0; + } + + if ( 1 != len ) { + fprintf(stderr, "de_base16: fail len (a)\r\n"); + ret_i = 0; + } + + if ( 0xaa != dat ) { + fprintf(stderr, "de_base16: fail dat (a)\r\n"); + ret_i = 0; + } + + u3z(inp); u3z(pro); + } + + { + u3_noun inp = u3i_string("1234"); + u3_noun pro = u3qe_de_base16(inp); + u3_atom len, dat; + + if ( c3n == u3r_pq(pro, u3_nul, &len, &dat) ) { + fprintf(stderr, "de_base16: fail cell (b)\r\n"); + ret_i = 0; + } + + if ( 2 != len ) { + fprintf(stderr, "de_base16: fail len (b)\r\n"); + ret_i = 0; + } + + if ( 0x1234 != dat ) { + fprintf(stderr, "de_base16: fail dat (b)\r\n"); + ret_i = 0; + } + + u3z(inp); u3z(pro); + } + + { + u3_noun inp = u3i_string("f012"); + u3_noun pro = u3qe_de_base16(inp); + u3_atom len, dat; + + if ( c3n == u3r_pq(pro, u3_nul, &len, &dat) ) { + fprintf(stderr, "de_base16: fail cell (c)\r\n"); + ret_i = 0; + } + + if ( 2 != len ) { + fprintf(stderr, "de_base16: fail len (c)\r\n"); + ret_i = 0; + } + + if ( 0xf012 != dat ) { + fprintf(stderr, "de_base16: fail dat (c)\r\n"); + ret_i = 0; + } + + u3z(inp); u3z(pro); + } + + { + u3_noun inp = u3i_string("010b"); + u3_noun pro = u3qe_de_base16(inp); + u3_atom len, dat; + + if ( c3n == u3r_pq(pro, u3_nul, &len, &dat) ) { + fprintf(stderr, "de_base16: fail cell (d)\r\n"); + ret_i = 0; + } + + if ( 2 != len ) { + fprintf(stderr, "de_base16: fail len (d)\r\n"); + ret_i = 0; + } + + if ( 0x10b != dat ) { + fprintf(stderr, "de_base16: fail dat (d)\r\n"); + ret_i = 0; + } + + u3z(inp); u3z(pro); + } + + { + u3_noun inp = u3i_string("10b"); + u3_noun pro = u3qe_de_base16(inp); + u3_atom len, dat; + + if ( c3n == u3r_pq(pro, u3_nul, &len, &dat) ) { + fprintf(stderr, "de_base16: fail cell (e)\r\n"); + ret_i = 0; + } + + if ( 2 != len ) { + fprintf(stderr, "de_base16: fail len (e)\r\n"); + ret_i = 0; + } + + if ( 0x10b != dat ) { + fprintf(stderr, "de_base16: fail dat (e)\r\n"); + ret_i = 0; + } + + u3z(inp); u3z(pro); + } + + { + u3_noun inp = u3i_string("001234"); + u3_noun pro = u3qe_de_base16(inp); + u3_atom len, dat; + + if ( c3n == u3r_pq(pro, u3_nul, &len, &dat) ) { + fprintf(stderr, "de_base16: fail cell (f)\r\n"); + ret_i = 0; + } + + if ( 3 != len ) { + fprintf(stderr, "de_base16: fail len (f)\r\n"); + ret_i = 0; + } + + if ( 0x1234 != dat ) { + fprintf(stderr, "de_base16: fail dat (f)\r\n"); + ret_i = 0; + } + + u3z(inp); u3z(pro); + } + + return ret_i; +} + +static c3_i +_test_base16(void) +{ + c3_i ret_i = 1; + + ret_i &= _test_en_base16(); + ret_i &= _test_de_base16(); + + return ret_i; +} + +static c3_w +_fein_ob_w(c3_w inp_w) +{ + u3_atom inp = u3i_word(inp_w); + u3_atom act = u3qe_fein_ob(inp); + c3_w act_w = u3r_word(0, act); + u3z(inp); u3z(act); + return act_w; +} + +static c3_i +_expect_fein_ob_w(c3_w inp_w, c3_w exp_w) +{ + c3_w act_w = _fein_ob_w(inp_w); + + if ( act_w != exp_w ) { + fprintf(stderr, "fein: inp=0x%08x exp=0x%08x act=0x%08x\n", + inp_w, exp_w, act_w); + return 0; + } + + return 1; +} + +static c3_i +_test_fein_ob(void) +{ + c3_i ret_i = 1; + + ret_i &= _expect_fein_ob_w(0, 0); + ret_i &= _expect_fein_ob_w(0xffff, 0xffff); + ret_i &= _expect_fein_ob_w(0x1b08f, 0x76b920e5); + ret_i &= _expect_fein_ob_w(0x10000, 0x423e60bf); + ret_i &= _expect_fein_ob_w(0x10001, 0xd4400acb); + ret_i &= _expect_fein_ob_w(0x10002, 0xf429043); + ret_i &= _expect_fein_ob_w(0x10000000, 0xa04bc7fa); + ret_i &= _expect_fein_ob_w(0x1234abcd, 0x686f6c25); + ret_i &= _expect_fein_ob_w(0xabcd1234, 0x4a220c8); + ret_i &= _expect_fein_ob_w(0xdeadbeef, 0x909bc4a9); + ret_i &= _expect_fein_ob_w(0xfffff, 0x6746b96b); + ret_i &= _expect_fein_ob_w(0xffffffff, 0xbba4dcce); + + return ret_i; +} + +static c3_w +_fynd_ob_w(c3_w inp_w) +{ + u3_atom inp = u3i_word(inp_w); + u3_atom act = u3qe_fynd_ob(inp); + c3_w act_w = u3r_word(0, act); + u3z(inp); u3z(act); + return act_w; +} + +static c3_i +_expect_fynd_ob_w(c3_w exp_w, c3_w inp_w) +{ + c3_w act_w = _fynd_ob_w(inp_w); + + if ( act_w != exp_w ) { + fprintf(stderr, "fynd: inp=0x%08x exp=0x%08x act=0x%08x\n", + inp_w, exp_w, act_w); + return 0; + } + + return 1; +} + +static c3_i +_test_fynd_ob(void) +{ + c3_i ret_i = 1; + + ret_i &= _expect_fynd_ob_w(0, 0); + ret_i &= _expect_fynd_ob_w(0xffff, 0xffff); + ret_i &= _expect_fynd_ob_w(0x10000, 0x423e60bf); + ret_i &= _expect_fynd_ob_w(0x10001, 0xd4400acb); + ret_i &= _expect_fynd_ob_w(0x10002, 0xf429043); + ret_i &= _expect_fynd_ob_w(0x10000000, 0xa04bc7fa); + ret_i &= _expect_fynd_ob_w(0x1234abcd, 0x686f6c25); + ret_i &= _expect_fynd_ob_w(0xabcd1234, 0x4a220c8); + ret_i &= _expect_fynd_ob_w(0xdeadbeef, 0x909bc4a9); + ret_i &= _expect_fynd_ob_w(0xfffff, 0x6746b96b); + ret_i &= _expect_fynd_ob_w(0xffffffff, 0xbba4dcce); + + return ret_i; +} + +static c3_i +_exhaust_roundtrip_fein_fynd_ob(void) +{ + c3_i ret_i = 1; + c3_w fyn_w, i_w; + + { + u3_atom fen, fyn; + + for ( i_w = 0x10000; i_w < 0x80000000; i_w++ ) { + fen = u3qe_fein_ob(i_w); + fyn = u3qe_fynd_ob(fen); + fyn_w = u3r_word(0, fyn); + + if ( i_w != fyn_w ) { + fprintf(stderr, "fein/fynd: inp=0x%08x fein=0x%08x fynd=0x%08x\n", + i_w, u3r_word(0, fen), fyn_w); + ret_i = 0; + } + u3z(fen); u3z(fyn); + + if ( !(i_w % 0x1000000) ) { + fprintf(stderr, "fein/fynd: 0x%x done\n", i_w); + } + } + } + + { + c3_w fen_w; + + do { + fen_w = _fein_ob_w(i_w); + fyn_w = _fynd_ob_w(fen_w); + if ( i_w != fyn_w ) { + fprintf(stderr, "fein/fynd: inp=0x%08x fein=0x%08x fynd=0x%08x\n", + i_w, fen_w, fyn_w); + ret_i = 0; + } + + if ( !(i_w % 0x1000000) ) { + fprintf(stderr, "fein/fynd: 0x%x done\n", i_w); + } + } + while ( ++i_w ); + } + + return ret_i; +} + +static c3_i +_test_ob(void) +{ + c3_i ret_i = 1; + ret_i &= _test_fein_ob(); + ret_i &= _test_fynd_ob(); + // disabled, takes almost ~m15 + // + // ret_i &= _exhaust_roundtrip_fein_fynd_ob(); + return ret_i; +} + +static c3_i +_test_mas(void) +{ + c3_i ret_i = 1; + u3_atom res; + + if ( 0x4000 != (res = u3qc_mas(0x8000)) ) { + fprintf(stderr, "test mas fail: (mas 0x8000) != 0x4000: 0x'%x'\r\n", res); + ret_i = 0; + } + + if ( 0x20000000 != (res = u3qc_mas(0x40000000)) ) { + fprintf(stderr, "test mas fail: (mas 0x4000.0000) != 0x2000.0000: 0x%x\r\n", res); + ret_i = 0; + } + + { + u3_atom sam, pro; + + sam = u3qc_bex(36); + pro = u3qc_bex(35); + res = u3qc_mas(sam); + + if ( c3n == u3r_sing(pro, res) ) { + c3_c* out_c; + u3s_etch_ux_c(res, &out_c); + fprintf(stderr, "test mas fail: (mas (bex 36)) != (bex 35): %s\r\n", out_c); + c3_free(out_c); + ret_i = 0; + } + + u3z(res); u3z(sam); u3z(pro); + + sam = u3qc_bex(64); + pro = u3qc_bex(63); + res = u3qc_mas(sam); + + if ( c3n == u3r_sing(pro, res) ) { + c3_c* out_c; + u3s_etch_ux_c(res, &out_c); + fprintf(stderr, "test mas fail: (mas (bex 64)) != (bex 63): %s\r\n", out_c); + c3_free(out_c); + ret_i = 0; + } + + u3z(res); u3z(sam); u3z(pro); + + sam = u3qc_bex(65); + pro = u3qc_bex(64); + res = u3qc_mas(sam); + + if ( c3n == u3r_sing(pro, res) ) { + c3_c* out_c; + u3s_etch_ux_c(res, &out_c); + fprintf(stderr, "test mas fail: (mas (bex 65)) != (bex 64): %s\r\n", out_c); + c3_free(out_c); + ret_i = 0; + } + + u3z(res); u3z(sam); u3z(pro); + } + + return ret_i; +} + +static c3_i +_test_jets(void) +{ + c3_i ret_i = 1; + + if ( !_test_etch_ud() ) { + fprintf(stderr, "test jets: etch_ud: failed\r\n"); + ret_i = 0; + } + + if ( !_test_etch_ux() ) { + fprintf(stderr, "test jets: etch_ux: failed\r\n"); + ret_i = 0; + } + + if ( !_test_etch_uv() ) { + fprintf(stderr, "test jets: etch_uv: failed\r\n"); + ret_i = 0; + } + + if ( !_test_etch_uw() ) { + fprintf(stderr, "test jets: etch_uw: failed\r\n"); + ret_i = 0; + } + + if ( !_test_sift_ud() ) { + fprintf(stderr, "test jets: sift_ud: failed\r\n"); + ret_i = 0; + } + + if ( !_test_base16() ) { + fprintf(stderr, "test jets: base16: failed\r\n"); + ret_i = 0; + } + + if ( !_test_ob() ) { + fprintf(stderr, "test jets: ob: failed\r\n"); + ret_i = 0; + } + + if ( !_test_mas() ) { + fprintf(stderr, "test jets: mas: failed\r\n"); + ret_i = 0; + } + + return ret_i; +} + +/* main(): run all test cases. +*/ +int +main(int argc, char* argv[]) +{ + _setup(); + + if ( !_test_jets() ) { + fprintf(stderr, "test jets: failed\r\n"); + exit(1); + } + + // GC + // + u3m_grab(u3_none); + + fprintf(stderr, "test jets: ok\r\n"); + return 0; +} diff --git a/vere/pkg/noun/log.c b/vere/pkg/noun/log.c new file mode 100644 index 0000000..ee1888e --- /dev/null +++ b/vere/pkg/noun/log.c @@ -0,0 +1,40 @@ +/// @file + +#include "log.h" + +#include + +#include "options.h" + +void +u3l_log(const char* format, ...) +{ + va_list myargs; + va_start(myargs, format); + + if (u3C.stderr_log_f) { + // the user set their own logging function. render the line and redirect + // to them. + // + char msg[4096]; + vsnprintf(msg, 4096, format, myargs); + u3C.stderr_log_f(msg); + } else { + // this process did not set a logging function, fallback to stderr + // + vfprintf(stderr, format, myargs); + fprintf(stderr, "\r\n"); + fflush(stderr); + } + + va_end(myargs); +} + +u3_weak +u3l_punt(const char* name, u3_weak pro) +{ + if ( u3_none == pro ) { + u3l_log("%s-punt", name); + } + return pro; +} diff --git a/vere/pkg/noun/log.h b/vere/pkg/noun/log.h new file mode 100644 index 0000000..4e94147 --- /dev/null +++ b/vere/pkg/noun/log.h @@ -0,0 +1,24 @@ +/// @file + +#ifndef U3_LOG_H +#define U3_LOG_H + +#include "types.h" + +/* u3l_log(): logs to stderr or redirects to configured function. +*/ + void + u3l_log(const char* format, ...) + __attribute__ ((format (printf, 1, 2))); + +/* u3l_punt(): condtionally logs a named punt + * (e.g. "mint-punt" for the `name` "mint") + * when `pro` is u3_none, and returns pro. + * For use when a jet driver declines to handle + * a core, when the user should be somehow notified + * (e.g. in a cryptographic jet). + */ + u3_weak + u3l_punt(const char* name, u3_weak pro); + +#endif /* ifndef U3_LOG_H */ diff --git a/vere/pkg/noun/manage.c b/vere/pkg/noun/manage.c new file mode 100644 index 0000000..fef1866 --- /dev/null +++ b/vere/pkg/noun/manage.c @@ -0,0 +1,2454 @@ +/// @file + +#include "manage.h" +#include "v2/manage.h" +#include "v3/manage.h" +#include "v4/manage.h" + +#include +#include +#include +#if defined(U3_OS_osx) +#include +#endif +#include +#include +#if defined(U3_OS_linux) +#define UNW_LOCAL_ONLY +#include +#endif + +#include "allocate.h" +#include "backtrace.h" +#include "events.h" +#include "hashtable.h" +#include "imprison.h" +#include "jets.h" +#include "jets/k.h" +#include "log.h" +#include "nock.h" +#include "openssl/crypto.h" +#include "options.h" +#include "rsignal.h" +#include "retrieve.h" +#include "trace.h" +#include "urcrypt.h" +#include "vortex.h" +#include "whereami.h" +#include "xtract.h" + +// XX stack-overflow recovery should be gated by -a +// +#undef NO_OVERFLOW + + /* (u3_noun)setjmp(u3R->esc.buf): setjmp within road. + */ +#if 0 + c3_o + u3m_trap(void); +#else +# define u3m_trap() (u3_noun)(_setjmp(u3R->esc.buf)) +#endif + + /* u3m_signal(): treat a nock-level exception as a signal interrupt. + */ + void + u3m_signal(u3_noun sig_l); + + /* u3m_dump(): dump the current road to stderr. + */ + void + u3m_dump(void); + + /* u3m_fall(): return to parent road. + */ + void + u3m_fall(void); + + /* u3m_leap(): in u3R, create a new road within the existing one. + */ + void + u3m_leap(c3_w pad_w); + + /* u3m_golf(): record cap length for u3m_flog(). + */ + c3_w + u3m_golf(void); + + /* u3m_flog(): pop the cap. + ** + ** A common sequence for inner allocation is: + ** + ** c3_w gof_w = u3m_golf(); + ** u3m_leap(); + ** // allocate some inner stuff... + ** u3m_fall(); + ** // inner stuff is still valid, but on cap + ** u3m_flog(gof_w); + ** + ** u3m_flog(0) simply clears the cap. + */ + void + u3m_flog(c3_w gof_w); + + /* u3m_soft_top(): top-level safety wrapper. + */ + u3_noun + u3m_soft_top(c3_w mil_w, // timer ms + c3_w pad_w, // base memory pad + u3_funk fun_f, + u3_noun arg); + + +// u3m_signal uses restricted functionality signals for compatibility reasons: +// some platforms may not provide true POSIX asynchronous signals and their +// compat layer will then implement this restricted functionality subset. +// u3m_signal never needs to interrupt I/O operations, its signal handlers +// do not manipulate signals, do not modify shared state, and always either +// return or longjmp. +// +static rsignal_jmpbuf u3_Signal; + +#include "sigsegv.h" + +#ifndef SIGSTKSZ +# define SIGSTKSZ 16384 +#endif +#ifndef NO_OVERFLOW +static uint8_t Sigstk[SIGSTKSZ]; +#endif + +#if 0 +/* _cm_punt(): crudely print trace. +*/ +static void +_cm_punt(u3_noun tax) +{ + u3_noun xat; + + for ( xat = tax; xat; xat = u3t(xat) ) { + u3m_p("&", u3h(xat)); + } +} +#endif + +/* _cm_emergency(): write emergency text to stderr, never failing. +*/ +static void +_cm_emergency(c3_c* cap_c, c3_l sig_l) +{ + write(2, "\r\n", 2); + write(2, cap_c, strlen(cap_c)); + + if ( sig_l ) { + write(2, ": ", 2); + write(2, &sig_l, 4); + } + + write(2, "\r\n", 2); +} + +static void _cm_overflow(void *arg1, void *arg2, void *arg3) +{ + (void)(arg1); + (void)(arg2); + (void)(arg3); + u3m_signal(c3__over); +} + +/* _cm_signal_handle(): handle a signal in general. +*/ +static void +_cm_signal_handle(c3_l sig_l) +{ + if ( c3__over == sig_l ) { +#ifndef NO_OVERFLOW + sigsegv_leave_handler(_cm_overflow, NULL, NULL, NULL); +#endif + } + else { + u3m_signal(sig_l); + } +} + +#ifndef NO_OVERFLOW +static void +_cm_signal_handle_over(int emergency, stackoverflow_context_t scp) +{ + _cm_signal_handle(c3__over); +} +#endif + +static void +_cm_signal_handle_term(int x) +{ + // Ignore if we are using base memory from work memory, very rare. + // + if ( (0 != u3H->rod_u.kid_p) && (&(u3H->rod_u) == u3R) ) { + _cm_emergency("ignored", c3__term); + } + else { + _cm_signal_handle(c3__term); + } +} + +static void +_cm_signal_handle_intr(int x) +{ + // Interrupt: stop work. Ignore if not working, or (rarely) using base. + // + if ( &(u3H->rod_u) == u3R ) { + _cm_emergency("ignored", c3__intr); + } + else { + _cm_signal_handle(c3__intr); + } +} + +static void +_cm_signal_handle_alrm(int x) +{ + _cm_signal_handle(c3__alrm); +} + +/* _cm_signal_reset(): reset top road after signal longjmp. +*/ +static void +_cm_signal_reset(void) +{ + u3R = &u3H->rod_u; + u3R->cap_p = u3R->mat_p; + u3R->ear_p = 0; + u3R->kid_p = 0; +} + +#if 0 +/* _cm_stack_recover(): recover stack trace, with lacunae. +*/ +static u3_noun +_cm_stack_recover(u3a_road* rod_u) +{ + c3_w len_w; + + len_w = 0; + { + u3_noun tax = rod_u->bug.tax; + + while ( tax ) { + len_w++; + tax = u3t(tax); + } + + if ( len_w < 4096 ) { + return u3a_take(rod_u->bug.tax); + } + else { + u3_noun beg, fin; + c3_w i_w; + + tax = rod_u->bug.tax; + beg = u3_nul; + for ( i_w = 0; i_w < 2048; i_w++ ) { + beg = u3nc(u3a_take(u3h(tax)), beg); + tax = u3t(tax); + } + beg = u3kb_flop(beg); + + for ( i_w = 0; i_w < (len_w - 4096); i_w++ ) { + tax = u3t(tax); + } + fin = u3nc(u3nc(c3__lose, c3__over), u3a_take(tax)); + + return u3kb_weld(beg, fin); + } + } +} +#endif + +/* _cm_stack_unwind(): unwind to the top level, preserving all frames. +*/ +static u3_noun +_cm_stack_unwind(void) +{ + u3_noun tax; + + while ( u3R != &(u3H->rod_u) ) { + u3_noun yat = u3m_love(u3R->bug.tax); + + u3R->bug.tax = u3kb_weld(yat, u3R->bug.tax); + } + tax = u3R->bug.tax; + + u3R->bug.tax = 0; + return tax; +} + +/* _cm_signal_recover(): recover from a deep signal, after longjmp. Free arg. +*/ +static u3_noun +_cm_signal_recover(c3_l sig_l, u3_noun arg) +{ + u3_noun tax; + + // Unlikely to be set, but it can be made to happen. + // + tax = u3H->rod_u.bug.tax; + u3H->rod_u.bug.tax = 0; + + if ( &(u3H->rod_u) == u3R ) { + // A top-level crash - rather odd. We should GC. + // + _cm_emergency("recover: top", sig_l); + u3C.wag_w |= u3o_check_corrupt; + + // Reset the top road - the problem could be a fat cap. + // + _cm_signal_reset(); + + if ( (c3__meme == sig_l) && (u3a_open(u3R) <= 256) ) { + // Out of memory at the top level. Error becomes c3__full, + // and we release the emergency buffer. To continue work, + // we need to readjust the image, eg, migrate to 64 bit. + // + u3z(u3R->bug.mer); + u3R->bug.mer = 0; + sig_l = c3__full; + } + return u3nt(3, sig_l, tax); + } + else { + u3_noun pro; + + // A signal was generated while we were within Nock. + // + _cm_emergency("recover: dig", sig_l); + +#if 0 + // Descend to the innermost trace, collecting stack. + // + { + u3a_road* rod_u; + + u3R = &(u3H->rod_u); + rod_u = u3R; + + while ( rod_u->kid_p ) { +#if 0 + u3l_log("collecting %d frames", + u3kb_lent((u3to(u3_road, rod_u->kid_p)->bug.tax)); +#endif + tax = u3kb_weld(_cm_stack_recover(u3to(u3_road, rod_u->kid_p)), tax); + rod_u = u3to(u3_road, rod_u->kid_p); + } + } +#else + tax = _cm_stack_unwind(); +#endif + pro = u3nt(3, sig_l, tax); + _cm_signal_reset(); + + u3z(arg); + return pro; + } +} + +/* _cm_signal_deep(): start deep processing; set timer for [mil_w] or 0. +*/ +static void +_cm_signal_deep(c3_w mil_w) +{ + // disable outer system signal handling + // + if ( 0 != u3C.sign_hold_f ) { + u3C.sign_hold_f(); + } + +#ifndef NO_OVERFLOW + if ( 0 != stackoverflow_install_handler(_cm_signal_handle_over, Sigstk, SIGSTKSZ)) { + u3l_log("unable to install stack overflow handler"); + abort(); + } +#endif + rsignal_install_handler(SIGINT, _cm_signal_handle_intr); + rsignal_install_handler(SIGTERM, _cm_signal_handle_term); + + // Provide a little emergency memory, for use in case things + // go utterly haywire. + // + if ( 0 == u3H->rod_u.bug.mer ) { + u3H->rod_u.bug.mer = u3i_string( + "emergency buffer with sufficient space to cons the trace and bail" + ); + } + + if ( mil_w ) { + struct itimerval itm_u; + + timerclear(&itm_u.it_interval); + itm_u.it_value.tv_sec = (mil_w / 1000); + itm_u.it_value.tv_usec = 1000 * (mil_w % 1000); + + if ( rsignal_setitimer(ITIMER_VIRTUAL, &itm_u, 0) ) { + u3l_log("loom: set timer failed %s", strerror(errno)); + } + else { + rsignal_install_handler(SIGVTALRM, _cm_signal_handle_alrm); + } + } + + u3t_boot(); +} + +/* _cm_signal_done(): +*/ +static void +_cm_signal_done(void) +{ + rsignal_deinstall_handler(SIGINT); + rsignal_deinstall_handler(SIGTERM); + rsignal_deinstall_handler(SIGVTALRM); + +#ifndef NO_OVERFLOW + stackoverflow_deinstall_handler(); +#endif + { + struct itimerval itm_u; + + timerclear(&itm_u.it_interval); + timerclear(&itm_u.it_value); + + if ( rsignal_setitimer(ITIMER_VIRTUAL, &itm_u, 0) ) { + u3l_log("loom: clear timer failed %s", strerror(errno)); + } + } + + // restore outer system signal handling + // + if ( 0 != u3C.sign_move_f ) { + u3C.sign_move_f(); + } + + u3t_boff(); +} + +/* u3m_signal(): treat a nock-level exception as a signal interrupt. +*/ +void +u3m_signal(u3_noun sig_l) +{ + rsignal_longjmp(u3_Signal, sig_l); +} + +/* u3m_file(): load file, as atom, or bail. +*/ +u3_noun +u3m_file(c3_c* pas_c) +{ + struct stat buf_b; + c3_i fid_i = c3_open(pas_c, O_RDONLY, 0644); + c3_w fln_w, red_w; + c3_y* pad_y; + + if ( (fid_i < 0) || (fstat(fid_i, &buf_b) < 0) ) { + u3l_log("%s: %s", pas_c, strerror(errno)); + return u3m_bail(c3__fail); + } + fln_w = buf_b.st_size; + pad_y = c3_malloc(buf_b.st_size); + + red_w = read(fid_i, pad_y, fln_w); + close(fid_i); + + if ( fln_w != red_w ) { + c3_free(pad_y); + return u3m_bail(c3__fail); + } + else { + u3_noun pad = u3i_bytes(fln_w, (c3_y *)pad_y); + c3_free(pad_y); + + return pad; + } +} + +/* u3m_mark(): mark all nouns in the road. +*/ +u3m_quac** +u3m_mark(void) +{ + u3m_quac** qua_u = c3_malloc(sizeof(*qua_u) * 5); + qua_u[0] = u3v_mark(); + qua_u[1] = u3j_mark(); + qua_u[2] = u3n_mark(); + qua_u[3] = u3a_mark_road(); + qua_u[4] = NULL; + + return qua_u; +} + +/* _pave_parts(): build internal tables. +*/ +static void +_pave_parts(void) +{ + u3R->cax.har_p = u3h_new_cache(u3C.hap_w); // transient + u3R->cax.per_p = u3h_new_cache(u3C.per_w); // persistent + u3R->jed.war_p = u3h_new(); + u3R->jed.cod_p = u3h_new(); + u3R->jed.han_p = u3h_new(); + u3R->jed.bas_p = u3h_new(); + u3R->byc.har_p = u3h_new(); +} + +/* _pave_road(): writes road boundaries to loom mem (stored at mat_w) +*/ +static u3_road* +_pave_road(c3_w* rut_w, c3_w* mat_w, c3_w* cap_w, c3_w siz_w) +{ + c3_dessert(((uintptr_t)rut_w & u3a_balign-1) == 0); + u3_road* rod_u = (void*) mat_w; + + // enable in case of corruption + // + // memset(mem_w, 0, 4 * len_w); + memset(rod_u, 0, sizeof(c3_w) * siz_w); + + // the top and bottom of the heap are initially the same + // + rod_u->rut_p = u3of(c3_w, rut_w); + rod_u->hat_p = u3of(c3_w, rut_w); + + + rod_u->mat_p = u3of(c3_w, mat_w); // stack bottom + rod_u->cap_p = u3of(c3_w, cap_w); // stack top + + _rod_vaal(rod_u); + return rod_u; +} + +/* _pave_north(): calculate boundaries and initialize north road. + + mem_w - the "beginning" of your loom (its lowest address). Corresponds to rut + in a north road. + siz_w - the size in bytes of your road record (or home record in the case of + paving home). + len_w - size of your loom in words +*/ +static u3_road* +_pave_north(c3_w* mem_w, c3_w siz_w, c3_w len_w, c3_o kid_o) +{ + // in a north road, the heap is low and the stack is high + // + // the heap starts at the base memory pointer [mem_w]; + // the stack starts at the end of the memory segment, + // minus space for the road structure [siz_w] + // + // 00~~~|R|---|H|######|C|+++|M|~~~FF + // ^--u3R which _pave_road returns (u3H for home road) + // + c3_w* mat_w = c3_align(mem_w + len_w - siz_w, u3a_balign, C3_ALGLO); + c3_w* rut_w = c3_align(mem_w, u3a_balign, C3_ALGHI); + c3_w* cap_w = mat_w; + + if ( c3y == kid_o ) { + u3e_ward(u3of(c3_w, rut_w) - 1, u3of(c3_w, cap_w)); + } + + return _pave_road(rut_w, mat_w, cap_w, siz_w); +} + +/* _pave_south(): calculate boundaries and initialize south road. + + mem_w - the "beginning" of your loom (its lowest address). Corresponds to mat + in a south road. + siz_w - the size in bytes of your road record (or home record in the case of + paving home). + len_w - size of your loom in words +*/ +static u3_road* +_pave_south(c3_w* mem_w, c3_w siz_w, c3_w len_w) +{ + // in a south road, the heap is high and the stack is low + // + // the heap starts at the end of the memory segment; + // the stack starts at the base memory pointer [mem_w], + // and ends after the space for the road structure [siz_w] + // + // 00~~~|M|+++|C|######|H|---|R|~~~FFF + // ^---u3R which _pave_road returns + // + c3_w* mat_w = c3_align(mem_w, u3a_balign, C3_ALGHI); + c3_w* rut_w = c3_align(mem_w + len_w, u3a_balign, C3_ALGLO); + c3_w* cap_w = mat_w + siz_w; + + u3e_ward(u3of(c3_w, cap_w) - 1, u3of(c3_w, rut_w)); + + return _pave_road(rut_w, mat_w, cap_w, siz_w); +} + +/* _pave_home(): initialize pristine home road. +*/ +static void +_pave_home(void) +{ + c3_w* mem_w = u3_Loom + u3a_walign; + c3_w siz_w = c3_wiseof(u3v_home); + c3_w len_w = u3C.wor_i - u3a_walign; + + u3H = (void *)_pave_north(mem_w, siz_w, len_w, c3n); + u3H->ver_w = U3V_VERLAT; + u3R = &u3H->rod_u; + + _pave_parts(); +} + +STATIC_ASSERT( ((c3_wiseof(u3v_home) * 4) == sizeof(u3v_home)), + "home road alignment" ); + +/* _find_home(): in restored image, point to home road. +*/ +static void +_find_home(void) +{ + c3_w ver_w = *(u3_Loom + u3C.wor_i - 1); + c3_o mig_o = c3y; // did we migrate? + + switch ( ver_w ) { + case U3V_VER1: u3m_v2_migrate(); + case U3V_VER2: u3m_v3_migrate(); + case U3V_VER3: u3m_v4_migrate(); + case U3V_VER4: { + mig_o = c3n; + break; + } + default: { + fprintf(stderr, "loom: checkpoint version mismatch: " + "have %u, need %u\r\n", + ver_w, U3V_VERLAT); + abort(); + } + } + + // NB: the home road is always north + // + c3_w* mem_w = u3_Loom + u3a_walign; + c3_w siz_w = c3_wiseof(u3v_home); + c3_w len_w = u3C.wor_i - u3a_walign; + c3_w* mat_w = c3_align(mem_w + len_w - siz_w, u3a_balign, C3_ALGLO); + + u3H = (void *)mat_w; + u3R = &u3H->rod_u; + + // this looks risky, but there are no legitimate scenarios + // where it's wrong + // + u3R->cap_p = u3R->mat_p = u3a_outa(u3H); + + // check for obvious corruption + // + if ( c3n == mig_o ) { + c3_w nor_w, sou_w; + u3_post low_p, hig_p; + u3m_water(&low_p, &hig_p); + + nor_w = (low_p + ((1 << u3a_page) - 1)) >> u3a_page; + sou_w = u3P.pag_w - (hig_p >> u3a_page); + + if ( (nor_w > u3P.nor_u.pgs_w) || (sou_w != u3P.sou_u.pgs_w) ) { + fprintf(stderr, "loom: corrupt size north (%u, %u) south (%u, %u)\r\n", + nor_w, u3P.nor_u.pgs_w, sou_w, u3P.sou_u.pgs_w); + u3_assert(!"loom: corrupt size"); + } + + // the north segment is in-order on disk; it being oversized + // doesn't necessarily indicate corruption. + // + if ( nor_w < u3P.nor_u.pgs_w ) { + fprintf(stderr, "loom: strange size north (%u, %u)\r\n", + nor_w, u3P.nor_u.pgs_w); + } + + // XX move me + // + u3a_ream(); + } + + /* As a further guard against any sneaky loom corruption */ + u3a_loom_sane(); + + _rod_vaal(u3R); +} + +/* u3m_pave(): instantiate or activate image. +*/ +void +u3m_pave(c3_o nuu_o) +{ + if ( c3y == nuu_o ) { + _pave_home(); + } + else { + _find_home(); + } +} + +#if 0 +/* u3m_clear(): clear all allocated data in road. +*/ +void +u3m_clear(void) +{ + u3h_free(u3R->cax.har_p); + u3j_free(); + u3n_free(); +} + +void +u3m_dump(void) +{ + c3_w hat_w; + c3_w fre_w = 0; + c3_w i_w; + + hat_w = _(u3a_is_north(u3R)) ? u3R->hat_w - u3R->rut_w + : u3R->rut_w - u3R->hat_w; + + for ( i_w = 0; i_w < u3_cc_fbox_no; i_w++ ) { + u3a_fbox* fre_u = u3R->all.fre_u[i_w]; + + while ( fre_u ) { + fre_w += fre_u->box_u.siz_w; + fre_u = fre_u->nex_u; + } + } + u3l_log("dump: hat_w %x, fre_w %x, allocated %x", + hat_w, fre_w, (hat_w - fre_w)); + + if ( 0 != (hat_w - fre_w) ) { + c3_w* box_w = _(u3a_is_north(u3R)) ? u3R->rut_w : u3R->hat_w; + c3_w mem_w = 0; + + while ( box_w < (_(u3a_is_north(u3R)) ? u3R->hat_w : u3R->rut_w) ) { + u3a_box* box_u = (void *)box_w; + + if ( 0 != box_u->use_w ) { +#ifdef U3_MEMORY_DEBUG + // u3l_log("live %d words, code %x", box_u->siz_w, box_u->cod_w); +#endif + mem_w += box_u->siz_w; + } + box_w += box_u->siz_w; + } + + u3l_log("second count: %x", mem_w); + } +} +#endif + +struct bt_cb_data { + c3_y count; + c3_y fail; + c3_c* pn_c; +}; + +static void +err_cb(void* data, const char* msg, int errnum) +{ + struct bt_cb_data* bdata = (struct bt_cb_data *)data; + bdata->count++; + + if ( bdata->count <= 1 ) { + /* u3l_log("Backtrace error %d: %s", errnum, msg); */ + bdata->fail = 1; + } +} + +static int +bt_cb(void* data, + uintptr_t pc, + const char* filename, + int lineno, + const char* function) +{ + struct bt_cb_data* bdata = (struct bt_cb_data *)data; + bdata->count++; + + Dl_info info = {}; + c3_c* fname_c = {0}; + + if ( dladdr((void *)pc, &info) ) { + for ( c3_w i_w = 0; info.dli_fname[i_w] != 0; i_w++ ) + if ( info.dli_fname[i_w] == '/' ) { + fname_c = (c3_c*)&info.dli_fname[i_w + 1]; + } + } + + if ( bdata->count <= 100 ) { + c3_c* loc[128]; + if (filename != 0) { + snprintf((c3_c*)loc, 128, "%s:%d", filename, lineno); + } + else { + snprintf((c3_c*)loc, 128, "%s", fname_c != 0 ? fname_c : "-"); + } + + c3_c* fn_c; + if (function != 0 || bdata->pn_c != 0) { + fn_c = (c3_c*)(function != 0 ? function : bdata->pn_c); + } + else { + fn_c = (c3_c*)(info.dli_sname != 0 ? info.dli_sname : "-"); + } + + fprintf(stderr, "%-3d %-35s %s\r\n", bdata->count - 1, fn_c, (c3_c *)loc); + + bdata->pn_c = 0; + return 0; + } + else { + bdata->pn_c = 0; + return 1; + } +} + +/* _self_path(): get binary self-path. + */ +static c3_y +_self_path(c3_c *pat_c) +{ + c3_i len_i = 0; + c3_i pat_i; + + if ( 0 < (len_i = wai_getExecutablePath(NULL, 0, &pat_i)) ) { + wai_getExecutablePath(pat_c, len_i, &pat_i); + pat_c[len_i] = 0; + return 0; + } + + return 1; +} + +void +u3m_stacktrace() +{ + void* bt_state; + struct bt_cb_data data = { 0, 0, 0 }; + c3_c* self_path_c[4096] = {0}; + +#if defined(U3_OS_osx) + fprintf(stderr, "Stacktrace:\r\n"); + + if ( _self_path((c3_c*)self_path_c) == 0 ) { + bt_state = backtrace_create_state((const c3_c*)self_path_c, 0, err_cb, 0); + backtrace_full(bt_state, 0, bt_cb, err_cb, &data); + if (data.fail == 0) { + fprintf(stderr, "\r\n"); + } + } + else { + data.fail = 1; + } + + if ( data.fail == 1 ) { + void* array[100]; + c3_c** strings; + size_t size = backtrace(array, 100); + + strings = backtrace_symbols(array, size); + + if ( strings[0] == NULL ) { + fprintf(stderr, "Backtrace failed\r\n"); + } + else { + for ( c3_i i = 0; i < size; i++ ) { + fprintf(stderr, "%s\r\n", strings[i]); + } + fprintf(stderr, "\r\n"); + } + + free(strings); + } +#elif defined(U3_OS_linux) + /* TODO: Fix unwind not getting past signal trampoline on linux aarch64 + */ + fprintf(stderr, "Stacktrace:\r\n"); + + if ( _self_path((c3_c*)self_path_c) == 0 ) { + bt_state = backtrace_create_state((const c3_c*)self_path_c, 0, err_cb, 0); + + unw_context_t context; + unw_cursor_t cursor; + unw_getcontext(&context); + unw_init_local(&cursor, &context); + unw_word_t pc, sp; + + c3_c* pn_c[1024] = {0}; + c3_w offp_w = 0; + + do { + unw_get_reg(&cursor, UNW_REG_IP, &pc); + unw_get_reg(&cursor, UNW_REG_SP, &sp); + if ( 0 == unw_get_proc_name(&cursor, (c3_c*)pn_c, 1024, (unw_word_t *)&offp_w) ) + data.pn_c = (c3_c*)pn_c; + backtrace_pcinfo(bt_state, pc - 1, bt_cb, err_cb, &data); + } while (unw_step(&cursor) > 0); + + if ( (data.count > 0) ) { + fprintf(stderr, "\r\n"); + } + } + else { + data.fail = 1; + fprintf(stderr, "Backtrace failed\r\n"); + } +#endif +} + +/* u3m_bail(): bail out. Does not return. +** +** Bail motes: +** +** %evil :: erroneous cryptography +** %exit :: semantic failure +** %oops :: assertion failure +** %intr :: interrupt +** %fail :: computability failure +** %over :: stack overflow (a kind of %fail) +** %meme :: out of memory +** +** These are equivalents of the full exception noun, the error ball: +** +** $% [%0 success] +** [%1 paths] +** [%2 trace] +** [%3 code trace] +** == +** +** XX several of these abort() calls should be gated by -a +*/ +c3_i +u3m_bail(u3_noun how) +{ + // printf some metadata + // + switch ( how ) { + case c3__evil: + case c3__exit: break; + + default: { + if ( _(u3ud(how)) ) { + c3_c str_c[5]; + + str_c[0] = ((how >> 0) & 0xff); + str_c[1] = ((how >> 8) & 0xff); + str_c[2] = ((how >> 16) & 0xff); + str_c[3] = ((how >> 24) & 0xff); + str_c[4] = 0; + fprintf(stderr, "\r\nbail: %s\r\n", str_c); + } + else if ( 1 != u3h(how) ) { + u3_assert(_(u3ud(u3h(how)))); + fprintf(stderr, "\r\nbail: %d\r\n", u3h(how)); + } + } + } + + if ( &(u3H->rod_u) == u3R ) { + // XX set exit code + // + fprintf(stderr, "home: bailing out\r\n\r\n"); + u3m_stacktrace(); + abort(); + } + + // intercept fatal errors + // + switch ( how ) { + case c3__foul: + case c3__oops: { + // XX set exit code + // + fprintf(stderr, "bailing out\r\n\r\n"); + u3m_stacktrace(); + abort(); + } + } + + if ( &(u3H->rod_u) == u3R ) { + // For top-level errors, which shouldn't happen often, we have no + // choice but to use the signal process; and we require the flat + // form of how. + // + // XX JB: these seem unrecoverable, at least wrt memory management, + // so they've been disabled above for now + // + u3_assert(_(u3a_is_cat(how))); + u3m_signal(how); + } + + // release the emergency buffer, ensuring space for cells + // + u3z(u3R->bug.mer); + u3R->bug.mer = 0; + + /* Reconstruct a correct error ball. + */ + if ( _(u3ud(how)) ) { + switch ( how ) { + case c3__exit: { + how = u3nc(2, u3R->bug.tax); + } break; + + default: { + how = u3nt(3, how, u3R->bug.tax); + } break; + } + } + + /* Longjmp, with an underscore. + */ + _longjmp(u3R->esc.buf, how); +} + +int c3_cooked(void) { return u3m_bail(c3__oops); } + +/* u3m_error(): bail out with %exit, ct_pushing error. +*/ +c3_i +u3m_error(c3_c* str_c) +{ + u3t_mean(u3i_string(str_c)); + return u3m_bail(c3__exit); +} + +/* u3m_leap(): in u3R, create a new road within the existing one. +*/ +void +u3m_leap(c3_w pad_w) +{ + c3_w len_w; /* the length of the new road (avail - (pad + wiseof(u3a_road))) */ + u3_road* rod_u; + + _rod_vaal(u3R); + + /* Measure the pad - we'll need it. + */ + { +#if 0 + if ( pad_w < u3R->all.fre_w ) { + pad_w = 0; + } + else { + pad_w -= u3R->all.fre_w; + } +#endif + if ( (pad_w + c3_wiseof(u3a_road)) >= u3a_open(u3R) ) { + /* not enough storage to leap */ + u3m_bail(c3__meme); + } + pad_w += c3_wiseof(u3a_road); + len_w = u3a_open(u3R) - pad_w; + c3_align(len_w, u3a_walign, C3_ALGHI); + } + + /* Allocate a region on the cap. + */ + { + u3p(c3_w) bot_p; /* S: bot_p = new mat. N: bot_p = new rut */ + + if ( c3y == u3a_is_north(u3R) ) { + bot_p = u3R->hat_p + pad_w; + + rod_u = _pave_south(u3a_into(bot_p), c3_wiseof(u3a_road), len_w); +#if 0 + fprintf(stderr, "NPAR.hat_p: 0x%x %p, SKID.hat_p: 0x%x %p\r\n", + u3R->hat_p, u3a_into(u3R->hat_p), + rod_u->hat_p, u3a_into(rod_u->hat_p)); +#endif + } + else { + bot_p = u3R->cap_p; + + rod_u = _pave_north(u3a_into(bot_p), c3_wiseof(u3a_road), len_w, c3y); +#if 0 + fprintf(stderr, "SPAR.hat_p: 0x%x %p, NKID.hat_p: 0x%x %p\r\n", + u3R->hat_p, u3a_into(u3R->hat_p), + rod_u->hat_p, u3a_into(rod_u->hat_p)); + +#endif + } + } + + /* Attach the new road to its parents. + */ + { + u3_assert(0 == u3R->kid_p); + rod_u->par_p = u3of(u3_road, u3R); + u3R->kid_p = u3of(u3_road, rod_u); + } + + /* Set up the new road. + */ + { + u3R = rod_u; + _pave_parts(); + } +#ifdef U3_MEMORY_DEBUG + rod_u->all.fre_w = 0; +#endif + + _rod_vaal(u3R); +} + +void +_print_diff(c3_c* cap_c, c3_w a, c3_w b) +{ + c3_w diff = apar_p); + +#if 0 + /* If you're printing a lot of these you need to change + * u3a_print_memory from fprintf to u3l_log + */ + fprintf(stderr, "fall: from %s %p, to %s %p (cap 0x%x, was 0x%x)\r\n", + _(u3a_is_north(u3R)) ? "north" : "south", + u3R, + _(u3a_is_north(u3to(u3_road, u3R->par_p))) ? "north" : "south", + u3to(u3_road, u3R->par_p), + u3R->hat_p, + u3R->rut_p); + _print_diff("unused free", u3R->hat_p, u3R->cap_p); + _print_diff("freeing", u3R->rut_p, u3R->hat_p); + _print_diff("stack", u3R->cap_p, u3R->mat_p); + static c3_w wat_w = 500000000; + if (u3to(u3_road, u3R->par_p) == &u3H->rod_u) { + wat_w = 500000000; + } + else { + wat_w = c3_min(wat_w, + u3R->hat_p < u3R->cap_p ? + u3R->cap_p - u3R->hat_p : + u3R->hat_p - u3R->cap_p); + } + u3a_print_memory(stderr, "low water mark", wat_w); + +#endif + + u3to(u3_road, u3R->par_p)->pro.nox_d += u3R->pro.nox_d; + u3to(u3_road, u3R->par_p)->pro.cel_d += u3R->pro.cel_d; + + /* The new cap is the old hat - it's as simple as that. + */ + u3to(u3_road, u3R->par_p)->cap_p = u3R->hat_p; + + /* And, we're back home. + */ + u3R = u3to(u3_road, u3R->par_p); + u3R->kid_p = 0; +} + +/* u3m_hate(): new, integrated leap mechanism (enter). +*/ +void +u3m_hate(c3_w pad_w) +{ + u3_assert(0 == u3R->ear_p); + + u3R->ear_p = u3R->cap_p; + u3m_leap(pad_w); + + u3R->bug.mer = u3i_string( + "emergency buffer with sufficient space to cons the trace and bail" + ); +} + +/* u3m_love(): return product from leap. +*/ +u3_noun +u3m_love(u3_noun pro) +{ + // save cache pointers from current road + // + u3p(u3h_root) byc_p = u3R->byc.har_p; + u3a_jets jed_u = u3R->jed; + u3p(u3h_root) per_p = u3R->cax.per_p; + + // fallback to parent road (child heap on parent's stack) + // + u3m_fall(); + + // copy product and caches off our stack + // + pro = u3a_take(pro); + jed_u = u3j_take(jed_u); + byc_p = u3n_take(byc_p); + per_p = u3h_take(per_p); + + // pop the stack + // + u3R->cap_p = u3R->ear_p; + u3R->ear_p = 0; + + // integrate junior caches + // + u3j_reap(jed_u); + u3n_reap(byc_p); + u3z_reap(u3z_memo_keep, per_p); + + return pro; +} + +/* u3m_golf(): record cap_p length for u3m_flog(). +*/ +c3_w +u3m_golf(void) +{ + if ( c3y == u3a_is_north(u3R) ) { + return u3R->mat_p - u3R->cap_p; + } + else { + return u3R->cap_p - u3R->mat_p; + } +} + +/* u3m_flog(): reset cap_p. +*/ +void +u3m_flog(c3_w gof_w) +{ + // Enable memsets in case of memory corruption. + // + if ( c3y == u3a_is_north(u3R) ) { + u3_post bot_p = (u3R->mat_p - gof_w); + // c3_w len_w = (bot_w - u3R->cap_w); + + // memset(u3R->cap_w, 0, 4 * len_w); + u3R->cap_p = bot_p; + } + else { + u3_post bot_p = u3R->mat_p + gof_w; + // c3_w len_w = (u3R->cap_w - bot_w); + + // memset(bot_w, 0, 4 * len_w); // + u3R->cap_p = bot_p; + } +} + +/* u3m_water(): produce watermarks. +*/ +void +u3m_water(u3_post* low_p, u3_post* hig_p) +{ + // allow the segfault handler to fire before the road is set + // + // while not explicitly possible in the codebase, + // compiler optimizations can reorder stores + // + if ( !u3R ) { + *low_p = 0; + *hig_p = u3C.wor_i - 1; + } + // in a north road, hat points to the end of the heap + 1 word, + // while cap points to the top of the stack + // + else if ( c3y == u3a_is_north(u3R) ) { + *low_p = u3R->hat_p - 1; + *hig_p = u3R->cap_p; + } + // in a south road, hat points to the end of the heap, + // while cap points to the top of the stack + 1 word + // + else { + *low_p = u3R->cap_p - 1; + *hig_p = u3R->hat_p; + } +} + +/* u3m_soft_top(): top-level safety wrapper. +*/ +u3_noun +u3m_soft_top(c3_w mil_w, // timer ms + c3_w pad_w, // base memory pad + u3_funk fun_f, + u3_noun arg) +{ + u3_noun why, pro; + c3_l sig_l; + + /* Enter internal signal regime. + */ + _cm_signal_deep(mil_w); + + if ( 0 != (sig_l = rsignal_setjmp(u3_Signal)) ) { + // reinitialize trace state + // + u3t_init(); + + // return to blank state + // + _cm_signal_done(); + + // recover memory state from the top down + // + return _cm_signal_recover(sig_l, arg); + } + + /* Record the cap, and leap. + */ + u3m_hate(pad_w); + + /* Trap for ordinary nock exceptions. + */ + if ( 0 == (why = (u3_noun)_setjmp(u3R->esc.buf)) ) { + pro = fun_f(arg); + + /* Make sure the inner routine did not create garbage. + */ + if ( u3C.wag_w & u3o_debug_ram ) { +#ifdef U3_CPU_DEBUG + if ( u3R->all.max_w > 1000000 ) { + u3a_print_memory(stderr, "execute: top", u3R->all.max_w); + } +#endif + u3m_grab(pro, u3_none); + } + + /* Revert to external signal regime. + */ + _cm_signal_done(); + + /* Produce success, on the old road. + */ + pro = u3nc(0, u3m_love(pro)); + } + else { + /* Overload the error result. + */ + pro = u3m_love(why); + } + + /* Revert to external signal regime. + */ + _cm_signal_done(); + + /* Free the argument. + */ + u3z(arg); + + /* Return the product. + */ + return pro; +} + +/* u3m_soft_sure(): top-level call assumed correct. +*/ +u3_noun +u3m_soft_sure(u3_funk fun_f, u3_noun arg) +{ + u3_noun pro, pru = u3m_soft_top(0, (1 << 18), fun_f, arg); + + u3_assert(_(u3du(pru))); + pro = u3k(u3t(pru)); + u3z(pru); + + return pro; +} + +/* u3m_soft_slam: top-level call. +*/ +u3_noun _cm_slam(u3_noun arg) { return u3n_slam_on(u3h(arg), u3t(arg)); } +u3_noun +u3m_soft_slam(u3_noun gat, u3_noun sam) +{ + return u3m_soft_sure(_cm_slam, u3nc(gat, sam)); +} + +/* u3m_soft_nock: top-level nock. +*/ +u3_noun _cm_nock(u3_noun arg) { return u3n_nock_on(u3h(arg), u3t(arg)); } +u3_noun +u3m_soft_nock(u3_noun bus, u3_noun fol) +{ + return u3m_soft_sure(_cm_nock, u3nc(bus, fol)); +} + +/* u3m_soft_run(): descend into virtualization context. +*/ +u3_noun +u3m_soft_run(u3_noun gul, + u3_funq fun_f, + u3_noun aga, + u3_noun agb) +{ + u3_noun why = 0, pro; + + /* Record the cap, and leap. + */ + u3m_hate(1 << 18); + + /* Configure the new road. + */ + { + u3R->ski.gul = u3nc(gul, u3to(u3_road, u3R->par_p)->ski.gul); + u3R->pro.don = u3to(u3_road, u3R->par_p)->pro.don; + u3R->pro.trace = u3to(u3_road, u3R->par_p)->pro.trace; + u3R->bug.tax = 0; + } + u3t_on(coy_o); + + /* Trap for exceptions. + */ + if ( 0 == (why = (u3_noun)_setjmp(u3R->esc.buf)) ) { + u3t_off(coy_o); + pro = fun_f(aga, agb); + +#ifdef U3_CPU_DEBUG + if ( u3R->all.max_w > 1000000 ) { + u3a_print_memory(stderr, "execute: run", u3R->all.max_w); + } +#endif + + /* Today you can't run -g without memory debug, but you should be + * able to. + */ +#ifdef U3_MEMORY_DEBUG + if ( u3C.wag_w & u3o_debug_ram ) { + u3m_grab(pro, u3_none); + } +#endif + + /* Produce success, on the old road. + */ + pro = u3nc(0, u3m_love(pro)); + } + else { + u3t_init(); + + /* Produce - or fall again. + */ + { + u3_assert(_(u3du(why))); + switch ( u3h(why) ) { + default: u3_assert(0); return 0; + + case 0: { // unusual: bail with success. + pro = u3m_love(why); + } break; + + case 1: { // blocking request + pro = u3m_love(why); + } break; + + case 2: { // true exit + pro = u3m_love(why); + } break; + + case 3: { // failure; rebail w/trace + u3_noun yod = u3m_love(u3t(why)); + + u3m_bail + (u3nt(3, + u3a_take(u3h(yod)), + u3kb_weld(u3t(yod), u3k(u3R->bug.tax)))); + } break; + + case 4: { // meta-bail + u3m_bail(u3m_love(u3t(why))); + } break; + } + } + } + + /* Release the arguments. + */ + { + u3z(gul); + u3z(aga); + u3z(agb); + } + + /* Return the product. + */ + return pro; +} + +/* u3m_soft_esc(): namespace lookup. Produces direct result. +*/ +u3_noun +u3m_soft_esc(u3_noun ref, u3_noun sam) +{ + u3_noun why, gul, pro; + + /* Assert preconditions. + */ + { + u3_assert(0 != u3R->ski.gul); + gul = u3h(u3R->ski.gul); + } + + /* Record the cap, and leap. + */ + u3m_hate(1 << 18); + + /* Configure the new road. + */ + { + u3R->ski.gul = u3t(u3to(u3_road, u3R->par_p)->ski.gul); + u3R->pro.don = u3to(u3_road, u3R->par_p)->pro.don; + u3R->pro.trace = u3to(u3_road, u3R->par_p)->pro.trace; + u3R->bug.tax = 0; + } + + /* Trap for exceptions. + */ + if ( 0 == (why = (u3_noun)_setjmp(u3R->esc.buf)) ) { + pro = u3n_slam_on(gul, u3nc(ref, sam)); + + /* Fall back to the old road, leaving temporary memory intact. + */ + pro = u3m_love(pro); + } + else { + u3t_init(); + + /* Push the error back up to the calling context - not the run we + ** are in, but the caller of the run, matching pure nock semantics. + */ + u3m_bail(u3nc(4, u3m_love(why))); + } + + /* Release the sample. Note that we used it above, but in a junior + ** road, so its refcount is intact. + */ + u3z(ref); + u3z(sam); + + /* Return the product. + */ + return pro; +} + +/* u3m_grab(): garbage-collect the world, plus extra roots. +*/ +void +u3m_grab(u3_noun som, ...) // terminate with u3_none +{ + // u3h_free(u3R->cax.har_p); + // u3R->cax.har_p = u3h_new(); + + u3m_mark(); + { + va_list vap; + u3_noun tur; + + va_start(vap, som); + + if ( som != u3_none ) { + u3a_mark_noun(som); + + while ( u3_none != (tur = va_arg(vap, u3_noun)) ) { + u3a_mark_noun(tur); + } + } + va_end(vap); + } + u3a_sweep(); +} + +/* u3m_soft(): top-level wrapper. +** +** Produces [0 product] or [%error (list tank)], top last. +*/ +u3_noun +u3m_soft(c3_w mil_w, + u3_funk fun_f, + u3_noun arg) +{ + u3_noun why; + + why = u3m_soft_top(mil_w, (1 << 20), fun_f, arg); // 4M pad + + if ( 0 == u3h(why) ) { + return why; + } + else { + u3_noun tax, cod, pro; + + switch ( u3h(why) ) { + case 2: { + cod = c3__exit; + tax = u3t(why); + } break; + + case 3: { + cod = u3h(u3t(why)); + tax = u3t(u3t(why)); + } break; + + // don't use .^ at the top level! + // + default: { + u3m_p("invalid mot", u3h(why)); + u3_assert(0); + } + } + + // don't call +mook if we have no kernel + // + // This is required to soft the boot sequence. + // + if ( 0 == u3A->roc ) { + while ( u3_nul != tax ) { + u3_noun dat, mot, val; + u3x_cell(tax, &dat, &tax); + + if ( c3y == u3r_cell(dat, &mot, &val) ) { + if ( c3__spot == mot ) { + u3m_p("tax", val); + } + else if ( (c3__mean == mot) + && (c3y == u3a_is_atom(val)) ) + { + u3m_p("men", val); + } + else { + u3m_p("mot", mot); + } + } + } + + pro = u3nc(u3k(cod), u3_nul); + } + // %evil leaves no trace + // + else if ( c3__evil == cod ) { + pro = u3nc(u3k(cod), u3_nul); + } + else { + u3_noun mok = u3dc("mook", 2, u3k(tax)); + pro = u3nc(u3k(cod), u3k(u3t(mok))); + u3z(mok); + } + + u3z(why); + return pro; + } +} + +/* _cm_is_tas(): yes iff som (RETAIN) is @tas. +*/ +static c3_o +_cm_is_tas(u3_atom som, c3_w len_w) +{ + c3_w i_w; + + for ( i_w = 0; i_w < len_w; i_w++ ) { + c3_c c_c = u3r_byte(i_w, som); + + if ( islower(c_c) || + (isdigit(c_c) && (0 != i_w) && ((len_w - 1) != i_w)) + || '-' == c_c ) + { + continue; + } + return c3n; + } + return c3y; +} + +/* _cm_is_ta(): yes iff som (RETAIN) is @ta. +*/ +static c3_o +_cm_is_ta(u3_noun som, c3_w len_w) +{ + c3_w i_w; + + for ( i_w = 0; i_w < len_w; i_w++ ) { + c3_c c_c = u3r_byte(i_w, som); + + if ( (c_c < 32) || (c_c > 127) ) { + return c3n; + } + } + return c3y; +} + +/* _cm_hex(): hex byte. +*/ +c3_y _cm_hex(c3_y c_y) +{ + if ( c_y < 10 ) + return '0' + c_y; + else return 'a' + (c_y - 10); +} + +/* _cm_in_pretty: measure/cut prettyprint. +*/ +static c3_w +_cm_in_pretty(u3_noun som, c3_o sel_o, c3_c* str_c) +{ + if ( _(u3du(som)) ) { + c3_w sel_w, one_w, two_w; + + sel_w = 0; + if ( _(sel_o) ) { + if ( str_c ) { *(str_c++) = '['; } + sel_w += 1; + } + + one_w = _cm_in_pretty(u3h(som), c3y, str_c); + if ( str_c ) { + str_c += one_w; + *(str_c++) = ' '; + } + two_w = _cm_in_pretty(u3t(som), c3n, str_c); + if ( str_c ) { str_c += two_w; } + + if ( _(sel_o) ) { + if ( str_c ) { *(str_c++) = ']'; } + sel_w += 1; + } + return one_w + two_w + 1 + sel_w; + } + else { + if ( som < 65536 ) { + c3_c buf_c[6]; + c3_w len_w; + + snprintf(buf_c, 6, "%d", som); + len_w = strlen(buf_c); + + if ( str_c ) { strcpy(str_c, buf_c); str_c += len_w; } + return len_w; + } + else { + c3_w len_w = u3r_met(3, som); + + if ( _(_cm_is_tas(som, len_w)) ) { + c3_w len_w = u3r_met(3, som); + + if ( str_c ) { + *(str_c++) = '%'; + u3r_bytes(0, len_w, (c3_y *)str_c, som); + str_c += len_w; + } + return len_w + 1; + } + else if ( _(_cm_is_ta(som, len_w)) ) { + if ( str_c ) { + *(str_c++) = '\''; + u3r_bytes(0, len_w, (c3_y *)str_c, som); + str_c += len_w; + *(str_c++) = '\''; + } + return len_w + 2; + } + else { + c3_w len_w = u3r_met(3, som); + c3_c *buf_c = c3_malloc(2 + (2 * len_w) + 1); + c3_w i_w = 0; + c3_w a_w = 0; + + buf_c[a_w++] = '0'; + buf_c[a_w++] = 'x'; + + for ( i_w = 0; i_w < len_w; i_w++ ) { + c3_y c_y = u3r_byte(len_w - (i_w + 1), som); + + if ( (i_w == 0) && (c_y <= 0xf) ) { + buf_c[a_w++] = _cm_hex(c_y); + } else { + buf_c[a_w++] = _cm_hex(c_y >> 4); + buf_c[a_w++] = _cm_hex(c_y & 0xf); + } + } + buf_c[a_w] = 0; + len_w = a_w; + + if ( str_c ) { strcpy(str_c, buf_c); str_c += len_w; } + + c3_free(buf_c); + return len_w; + } + } + } +} + +/* u3m_pretty(): dumb prettyprint to string. +*/ +c3_c* +u3m_pretty(u3_noun som) +{ + c3_w len_w = _cm_in_pretty(som, c3y, 0); + c3_c* pre_c = c3_malloc(len_w + 1); + + _cm_in_pretty(som, c3y, pre_c); + pre_c[len_w] = 0; + return pre_c; +} + +/* _cm_in_pretty_path: measure/cut prettyprint. + * + * Modeled after _cm_in_pretty(), the backend to u3m_p(), but with the + * assumption that we're always displaying a path. + */ +static c3_w +_cm_in_pretty_path(u3_noun som, c3_c* str_c) +{ + if ( _(u3du(som)) ) { + c3_w sel_w, one_w, two_w; + if ( str_c ) { + *(str_c++) = '/'; + } + sel_w = 1; + + one_w = _cm_in_pretty_path(u3h(som), str_c); + if ( str_c ) { + str_c += one_w; + } + + two_w = _cm_in_pretty_path(u3t(som), str_c); + if ( str_c ) { + str_c += two_w; + } + + return sel_w + one_w + two_w; + } + else { + c3_w len_w = u3r_met(3, som); + if ( str_c && len_w ) { + u3r_bytes(0, len_w, (c3_y *)str_c, som); + str_c += len_w; + } + return len_w; + } +} + +/* u3m_pretty_path(): prettyprint a path to string. +*/ +c3_c* +u3m_pretty_path(u3_noun som) +{ + c3_w len_w = _cm_in_pretty_path(som, NULL); + c3_c* pre_c = c3_malloc(len_w + 1); + + _cm_in_pretty_path(som, pre_c); + pre_c[len_w] = 0; + return pre_c; +} + +/* u3m_p(): dumb print with caption. +*/ +void +u3m_p(const c3_c* cap_c, u3_noun som) +{ + c3_c* pre_c = u3m_pretty(som); + + u3l_log("%s: %s", cap_c, pre_c); + c3_free(pre_c); +} + +/* u3m_tape(): dump a tape to stdout. +*/ +void +u3m_tape(u3_noun tep) +{ + u3_noun tap = tep; + + while ( u3_nul != tap ) { + c3_c car_c; + + if ( u3h(tap) >= 127 ) { + car_c = '?'; + } else car_c = u3h(tap); + + putc(car_c, stdout); + tap = u3t(tap); + } + u3z(tep); +} + +/* u3m_wall(): dump a wall to stdout. +*/ +void +u3m_wall(u3_noun wol) +{ + u3_noun wal = wol; + + while ( u3_nul != wal ) { + u3m_tape(u3k(u3h(wal))); + + putc(13, stdout); + putc(10, stdout); + + wal = u3t(wal); + } + u3z(wol); +} + +/* _cm_limits(): set up global modes and limits. +*/ +static void +_cm_limits(void) +{ + struct rlimit rlm; + + // Moar stack. + // + { + u3_assert( 0 == getrlimit(RLIMIT_STACK, &rlm) ); + + rlm.rlim_cur = c3_min(rlm.rlim_max, (65536 << 10)); + + if ( 0 != setrlimit(RLIMIT_STACK, &rlm) ) { + u3l_log("boot: stack size: %s", strerror(errno)); + exit(1); + } + } + + // Moar filez. + // + { + getrlimit(RLIMIT_NOFILE, &rlm); + + #ifdef U3_OS_osx + rlm.rlim_cur = c3_min(OPEN_MAX, rlm.rlim_max); + #else + rlm.rlim_cur = rlm.rlim_max; + #endif + + // no exit, not a critical limit + // + if ( 0 != setrlimit(RLIMIT_NOFILE, &rlm) ) { + u3l_log("boot: open file limit: %s", strerror(errno)); + } + } + + // Moar core. + // +# ifndef ASAN_ENABLED + { + getrlimit(RLIMIT_CORE, &rlm); + rlm.rlim_cur = RLIM_INFINITY; + + // no exit, not a critical limit + // + if ( 0 != setrlimit(RLIMIT_CORE, &rlm) ) { + u3l_log("boot: core limit: %s", strerror(errno)); + } + } +# endif +} + +/* u3m_fault(): handle a memory event with libsigsegv protocol. + */ +c3_i +u3m_fault(void* adr_v, c3_i ser_i) +{ + c3_w* adr_w = (c3_w*)adr_v; + u3_post low_p, hig_p; + + // let the stack overflow handler run. + // + if ( 0 == ser_i ) { + return 0; + } + // this could be avoided by registering the loom bounds in libsigsegv + // + else if ( (adr_w < u3_Loom) || (adr_w >= (u3_Loom + u3C.wor_i)) ) { + fprintf(stderr, "loom: external fault: %p (%p : %p)\r\n\r\n", + (void *)adr_w, (void *)u3_Loom, (void *)(u3_Loom + u3C.wor_i)); + u3m_stacktrace(); + u3_assert(0); + return 0; + } + + u3m_water(&low_p, &hig_p); + + switch ( u3e_fault(low_p, hig_p, u3a_outa(adr_w)) ) { + // page tracking invariants violated, fatal + // + case u3e_flaw_sham: { + u3_assert(0); + return 0; + } + + // virtual memory failure (protections) + // + // XX s/b recoverable, need to u3m_signal() a new mote + // + case u3e_flaw_base: { + u3_assert(0); + return 0; + } + + // loom limits exceeded, recoverable + // + case u3e_flaw_meme: { + u3m_signal(c3__meme); // doesn't return + return 1; + } + + case u3e_flaw_good: return 1; + } + + u3_assert(!"unpossible"); +} + +/* u3m_foul(): dirty all pages and disable tracking. +*/ +void +u3m_foul(void) +{ + if ( c3n == u3e_yolo() ) { + return; + } + + u3e_foul(); +} + +/* u3m_save(): update the checkpoint. +*/ +void +u3m_save(void) +{ + u3_post low_p, hig_p; + u3m_water(&low_p, &hig_p); + + u3_assert(u3R == &u3H->rod_u); + +#if 1 // XX redundant + { + c3_w low_w = u3a_heap(u3R); // old u3m_water() + c3_w hig_w = u3a_temp(u3R) + c3_wiseof(u3v_home); + + c3_w nox_w = (low_w + ((1 << u3a_page) - 1)) >> u3a_page; + c3_w sox_w = (hig_w + ((1 << u3a_page) - 1)) >> u3a_page; + + c3_w nor_w = (low_p + ((1 << u3a_page) - 1)) >> u3a_page; + c3_w sop_w = hig_p >> u3a_page; + c3_w sor_w = u3P.pag_w - sop_w; + + if ( (nox_w < nor_w) || (sox_w < sor_w) ) { + fprintf(stderr, "loom: save strange nox %u nor %u sox %u sor %u\r\n", + nox_w, nor_w, sox_w, sor_w); + } + else if ( (nox_w > nor_w) || (sox_w > sor_w) ) { + fprintf(stderr, "loom: save wrong nox %u nor %u sox %u sor %u\r\n", + nox_w, nor_w, sox_w, sor_w); + u3_assert(!"busted"); + } + } +#endif + + u3e_save(low_p, hig_p); +} + +/* u3m_toss(): discard ephemeral memory. +*/ +void +u3m_toss(void) +{ + u3_post low_p, hig_p; + u3m_water(&low_p, &hig_p); + + if ( ((low_p + u3C.tos_w) < u3C.wor_i) + && (hig_p > u3C.tos_w) ) + { + low_p += u3C.tos_w; + hig_p -= u3C.tos_w; + + if ( low_p < hig_p ) { + u3e_toss(low_p, hig_p); + } + } +} + +/* u3m_ward(): tend the guardpage. +*/ +void +u3m_ward(void) +{ + u3_post low_p, hig_p; + u3m_water(&low_p, &hig_p); + +#if 1 // XX redundant + { + c3_w low_w, hig_w; + + if ( c3y == u3a_is_north(u3R) ) { + low_w = u3R->hat_p; + hig_w = u3R->cap_p; + } + else { + low_w = u3R->cap_p; + hig_w = u3R->hat_p; + } + + if ( (low_w > (u3P.gar_w << u3a_page)) + || (hig_w < (u3P.gar_w << u3a_page)) ) + { + u3_assert( ((low_p >> u3a_page) >= u3P.gar_w) + || ((hig_p >> u3a_page) <= u3P.gar_w) ); + } + } +#endif + + u3e_ward(low_p, hig_p); +} + +/* _cm_signals(): set up interrupts, etc. +*/ +static void +_cm_signals(void) +{ + if ( 0 != sigsegv_install_handler(u3m_fault) ) { + u3l_log("boot: sigsegv install failed"); + exit(1); + } + +# if defined(U3_OS_PROF) + // Block SIGPROF, so that if/when we reactivate it on the + // main thread for profiling, we won't get hits in parallel + // on other threads. + if ( u3C.wag_w & u3o_debug_cpu ) { + sigset_t set; + + sigemptyset(&set); + sigaddset(&set, SIGPROF); + + if ( 0 != pthread_sigmask(SIG_BLOCK, &set, NULL) ) { + u3l_log("boot: thread mask SIGPROF: %s", strerror(errno)); + exit(1); + } + } +# endif +} + +/* _cm_malloc_ssl(): openssl-shaped malloc +*/ +static void* +_cm_malloc_ssl(size_t len_i +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + , const char* file, int line +#endif + ) +{ + return u3a_malloc(len_i); +} + +/* _cm_realloc_ssl(): openssl-shaped realloc. +*/ +static void* +_cm_realloc_ssl(void* lag_v, size_t len_i +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + , const char* file, int line +#endif + ) +{ + return u3a_realloc(lag_v, len_i); +} + +/* _cm_free_ssl(): openssl-shaped free. +*/ +static void +_cm_free_ssl(void* tox_v +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + , const char* file, int line +#endif + ) +{ + u3a_free(tox_v); +} + +extern void u3je_secp_init(void); + +/* _cm_crypto(): initialize openssl and crypto jets. +*/ +static void +_cm_crypto(void) +{ + /* Initialize OpenSSL with loom allocation functions. */ + if ( 0 == CRYPTO_set_mem_functions(&_cm_malloc_ssl, + &_cm_realloc_ssl, + &_cm_free_ssl) ) { + u3l_log("%s", "openssl initialization failed"); + abort(); + } + + u3je_secp_init(); +} + +/* _cm_realloc2(): gmp-shaped realloc. +*/ +static void* +_cm_realloc2(void* lag_v, size_t old_i, size_t new_i) +{ + return u3a_realloc(lag_v, new_i); +} + +/* _cm_free2(): gmp-shaped free. +*/ +static void +_cm_free2(void* tox_v, size_t siz_i) +{ + u3a_free(tox_v); +} + +/* u3m_init(): start the environment. +*/ +void +u3m_init(size_t len_i) +{ + _cm_limits(); + _cm_signals(); + _cm_crypto(); + + // make sure GMP uses our malloc. + // + mp_set_memory_functions(u3a_malloc, _cm_realloc2, _cm_free2); + + // make sure that [len_i] is a fully-addressible non-zero power of two. + // + if ( !len_i + || (len_i & (len_i - 1)) + || (len_i < (1 << (u3a_page + 2))) + || (len_i > u3a_bytes) ) + { + u3l_log("loom: bad size: %zu", len_i); + exit(1); + } + + // map at fixed address. + // + { + void* map_v = mmap((void *)u3_Loom, + len_i, + (PROT_READ | PROT_WRITE), + (MAP_ANON | MAP_FIXED | MAP_PRIVATE), + -1, 0); + + if ( -1 == (c3_ps)map_v ) { + map_v = mmap((void *)0, + len_i, + (PROT_READ | PROT_WRITE), + (MAP_ANON | MAP_PRIVATE), + -1, 0); + + u3l_log("boot: mapping %zuMB failed", len_i >> 20); + u3l_log("see https://docs.urbit.org/user-manual/running/cloud-hosting" + " for adding swap space"); + if ( -1 != (c3_ps)map_v ) { + u3l_log("if porting to a new platform, try U3_OS_LoomBase %p", + map_v); + } + exit(1); + } + + u3C.wor_i = len_i >> 2; + u3l_log("loom: mapped %zuMB", len_i >> 20); + } +} + +extern void u3je_secp_stop(void); + +/* u3m_stop(): graceful shutdown cleanup. +*/ +void +u3m_stop(void) +{ + u3e_stop(); + u3je_secp_stop(); +} + +/* u3m_pier(): make a pier. +*/ +c3_c* +u3m_pier(c3_c* dir_c) +{ + c3_c ful_c[8193]; + + u3C.dir_c = dir_c; + + snprintf(ful_c, 8192, "%s", dir_c); + if ( c3_mkdir(ful_c, 0700) ) { + if ( EEXIST != errno ) { + fprintf(stderr, "loom: pier create: %s\r\n", strerror(errno)); + exit(1); + } + } + + snprintf(ful_c, 8192, "%s/.urb", dir_c); + if ( c3_mkdir(ful_c, 0700) ) { + if ( EEXIST != errno ) { + fprintf(stderr, "loom: .urb create: %s\r\n", strerror(errno)); + exit(1); + } + } + + snprintf(ful_c, 8192, "%s/.urb/chk", dir_c); + if ( c3_mkdir(ful_c, 0700) ) { + if ( EEXIST != errno ) { + fprintf(stderr, "loom: .urb/chk create: %s\r\n", strerror(errno)); + exit(1); + } + } + + return strdup(dir_c); +} + +/* u3m_boot(): start the u3 system. return next event, starting from 1. +*/ +c3_d +u3m_boot(c3_c* dir_c, size_t len_i) +{ + c3_o nuu_o; + + u3C.dir_c = dir_c; + + /* Activate the loom. + */ + u3m_init(len_i); + + /* Activate the storage system. + */ + nuu_o = u3e_live(c3n, u3m_pier(dir_c)); + + /* Activate tracing. + */ + u3C.slog_f = 0; + u3C.sign_hold_f = 0; + u3C.sign_move_f = 0; + u3t_init(); + + /* Construct or activate the allocator. + */ + u3m_pave(nuu_o); + + /* GC immediately if requested + */ + if ( (c3n == nuu_o) && (u3C.wag_w & u3o_check_corrupt) ) { + u3l_log("boot: gc requested"); + u3m_grab(u3_none); + u3C.wag_w &= ~u3o_check_corrupt; + u3l_log("boot: gc complete"); + } + + /* Initialize the jet system. + */ + { + c3_w len_w = u3j_boot(nuu_o); + u3l_log("boot: installed %d jets", len_w); + } + + /* Reactivate jets on old kernel. + */ + if ( c3n == nuu_o ) { + u3j_ream(); + u3n_ream(); + return u3A->eve_d; + } + else { + /* Basic initialization. + */ + memset(u3A, 0, sizeof(*u3A)); + return 0; + } +} + +/* u3m_boot_lite(): start without checkpointing. +*/ +c3_d +u3m_boot_lite(size_t len_i) +{ + /* Activate the loom. + */ + u3m_init(len_i); + + /* Activate tracing. + */ + u3C.slog_f = 0; + u3C.sign_hold_f = 0; + u3C.sign_move_f = 0; + u3t_init(); + + /* Construct or activate the allocator. + */ + u3m_pave(c3y); + + /* Place the guard page. + */ + u3e_init(); + + /* Initialize the jet system. + */ + u3j_boot(c3y); + + /* Basic initialization. + */ + memset(u3A, 0, sizeof(*u3A)); + return 0; +} + +/* u3m_reclaim: clear persistent caches to reclaim memory. +*/ +void +u3m_reclaim(void) +{ + u3v_reclaim(); + u3j_reclaim(); + u3n_reclaim(); + u3a_reclaim(); +} + +/* _cm_pack_rewrite(): trace through arena, rewriting pointers. +*/ +static void +_cm_pack_rewrite(void) +{ + // XX fix u3a_rewrite* to support south roads + // + u3_assert( &(u3H->rod_u) == u3R ); + + // NB: these implementations must be kept in sync with u3m_reclaim(); + // anything not reclaimed must be rewritable + // + u3v_rewrite_compact(); + u3j_rewrite_compact(); + u3n_rewrite_compact(); + u3a_rewrite_compact(); +} + +/* u3m_pack: compact (defragment) memory, returns u3a_open delta. +*/ +c3_w +u3m_pack(void) +{ + c3_w pre_w = u3a_open(u3R); + + // reclaim first, to free space, and discard anything we can't/don't rewrite + // + u3m_reclaim(); + + // sweep the heap, finding and saving new locations + // + u3a_pack_seek(u3R); + + // trace roots, rewriting inner pointers + // + _cm_pack_rewrite(); + + // sweep the heap, relocating objects to their new locations + // + u3a_pack_move(u3R); + + return (u3a_open(u3R) - pre_w); +} diff --git a/vere/pkg/noun/manage.h b/vere/pkg/noun/manage.h new file mode 100644 index 0000000..8e54399 --- /dev/null +++ b/vere/pkg/noun/manage.h @@ -0,0 +1,210 @@ +/// @file + +#ifndef U3_MANAGE_H +#define U3_MANAGE_H + +#include "v1/manage.h" +#include "v2/manage.h" + +#include "c3/c3.h" +#include "types.h" +#include "version.h" + + /** System management. + **/ + /* u3m_boot(): start the u3 system. return next event, starting from 1. + */ + c3_d + u3m_boot(c3_c* dir_c, size_t len_i); + + /* u3m_pier(): make a pier. + */ + c3_c* + u3m_pier(c3_c* dir_c); + + /* u3m_boot_lite(): start without checkpointing. + */ + c3_d + u3m_boot_lite(size_t len_i); + + /* u3m_stop(): graceful shutdown cleanup. */ + void + u3m_stop(void); + + /* u3m_bail(): bail out. Does not return. + ** + ** Bail motes: + ** + ** %exit :: semantic failure + ** %evil :: bad crypto + ** %intr :: interrupt + ** %fail :: execution failure + ** %foul :: assert failure + ** %need :: network block + ** %meme :: out of memory + ** %time :: timed out + ** %oops :: assertion failure + */ + c3_i + u3m_bail(c3_m how_m) __attribute__((noreturn)); + + /* u3m_fault(): handle a memory event with libsigsegv protocol. + */ + c3_i + u3m_fault(void* adr_v, c3_i ser_i); + + /* u3m_foul(): dirty all pages and disable tracking. + */ + void + u3m_foul(void); + + /* u3m_backup(): copy snapshot to .urb/bhk (if it doesn't exist yet). + */ + c3_o + u3m_backup(c3_o); + + /* u3m_save(): update the checkpoint. + */ + void + u3m_save(void); + + /* u3m_toss(): discard ephemeral memory. + */ + void + u3m_toss(void); + + /* u3m_ward(): tend the guardpage. + */ + void + u3m_ward(void); + + /* u3m_init(): start the environment. + */ + void + u3m_init(size_t len_i); + + /* u3m_pave(): instantiate or activate image. + */ + void + u3m_pave(c3_o nuu_o); + + /* u3m_signal(): treat a nock-level exception as a signal interrupt. + */ + void + u3m_signal(u3_noun sig_l); + + /* u3m_file(): load file, as atom, or bail. + */ + u3_noun + u3m_file(c3_c* pas_c); + + /* u3m_error(): bail out with %exit, ct_pushing error. + */ + c3_i + u3m_error(c3_c* str_c); + + /* u3m_hate(): new, integrated leap mechanism (enter). + */ + void + u3m_hate(c3_w pad_w); + + /* u3m_love(): return product from leap. + */ + u3_noun + u3m_love(u3_noun pro); + + /* u3m_soft(): system soft wrapper. unifies unix and nock errors. + ** + ** Produces [%$ result] or [%error (list tank)]. + */ + u3_noun + u3m_soft(c3_w mil_w, u3_funk fun_f, u3_noun arg); + + /* u3m_soft_slam: top-level call. + */ + u3_noun + u3m_soft_slam(u3_noun gat, u3_noun sam); + + /* u3m_soft_nock: top-level nock. + */ + u3_noun + u3m_soft_nock(u3_noun bus, u3_noun fol); + + /* u3m_soft_sure(): top-level call assumed correct. + */ + u3_noun + u3m_soft_sure(u3_funk fun_f, u3_noun arg); + + /* u3m_soft_run(): descend into virtualization context. + */ + u3_noun + u3m_soft_run(u3_noun gul, + u3_funq fun_f, + u3_noun aga, + u3_noun agb); + + /* u3m_soft_esc(): namespace lookup to (unit ,*). + */ + u3_noun + u3m_soft_esc(u3_noun ref, u3_noun sam); + + + /* u3m_quac: memory report. + */ + typedef struct _u3m_quac { + c3_c* nam_c; + c3_w siz_w; + struct _u3m_quac** qua_u; + } u3m_quac; + + /* u3m_mark(): mark all nouns in the road. + */ + u3m_quac** + u3m_mark(); + + /* u3m_grab(): garbage-collect the world, plus extra roots. + */ + void + u3m_grab(u3_noun som, ...); // terminate with u3_none + + /* u3m_water(): produce high and low watermarks. Asserts u3R == u3H. + */ + void + u3m_water(u3_post* low_p, u3_post* hig_p); + + /* u3m_pretty(): dumb prettyprint to string. RETAIN. + */ + c3_c* + u3m_pretty(u3_noun som); + + /* u3m_pretty_path(): prettyprint a path to string. RETAIN. + */ + c3_c* + u3m_pretty_path(u3_noun som); + + /* u3m_p(): dumb print with caption. RETAIN. + */ + void + u3m_p(const c3_c* cap_c, u3_noun som); + + /* u3m_tape(): dump a tape to stdout. + */ + void + u3m_tape(u3_noun tep); + + /* u3m_wall(): dump a wall to stdout. + */ + void + u3m_wall(u3_noun wol); + + /* u3m_reclaim: clear persistent caches to reclaim memory. + */ + void + u3m_reclaim(void); + + /* u3m_pack: compact (defragment) memory, returns u3a_open delta. + */ + c3_w + u3m_pack(void); + +#endif /* ifndef U3_MANAGE_H */ diff --git a/vere/pkg/noun/nock.c b/vere/pkg/noun/nock.c new file mode 100644 index 0000000..17e6057 --- /dev/null +++ b/vere/pkg/noun/nock.c @@ -0,0 +1,3193 @@ +/// @file + +#include "nock.h" + +#include "allocate.h" +#include "hashtable.h" +#include "imprison.h" +#include "jets.h" +#include "jets/k.h" +#include "jets/q.h" +#include "manage.h" +#include "options.h" +#include "retrieve.h" +#include "trace.h" +#include "vortex.h" +#include "xtract.h" +#include "zave.h" + +// define to have each opcode printed as it executes, +// along with some other debugging info +# undef VERBOSE_BYTECODE + +#if 0 +// Retained for debugging purposes. +static u3_noun _n_nock_on(u3_noun bus, u3_noun fol); + +/* _n_hint(): process hint. +*/ +static u3_noun +_n_hint(u3_noun zep, + u3_noun hod, + u3_noun bus, + u3_noun nex) +{ + switch ( zep ) { + default: { + // u3m_p("weird zep", zep); + u3a_lose(zep); + u3a_lose(hod); + + return _n_nock_on(bus, nex); + } + + case c3__hunk: + case c3__lose: + case c3__mean: + case c3__spot: { + u3_noun tac = u3nc(zep, hod); + u3_noun pro; + + u3t_push(tac); +#if 0 + { + static int low_i; + + if ( !low_i ) { + low_i = 1; + if ( 0 == (u3R->pro.nox_d % 65536ULL) ) { + if ( c3__spot == zep ) { + u3l_log("spot %d/%d : %d/%d", + u3h(u3h(u3t(hod))), + u3t(u3h(u3t(hod))), + u3h(u3t(u3t(hod))), + u3t(u3t(u3t(hod)))); + } + } + low_i = 0; + } + } +#endif + pro = _n_nock_on(bus, nex); + u3t_drop(); + + return pro; + } + + case c3__live: { + if ( c3y == u3ud(hod) ) { + u3t_off(noc_o); + u3t_heck(hod); + u3t_on(noc_o); + } else { + u3z(hod); + } + return _n_nock_on(bus, nex); + } + + case c3__slog: { + if ( !(u3C.wag_w & u3o_quiet) ) { + u3t_off(noc_o); + u3t_slog(hod); + u3t_on(noc_o); + } + return _n_nock_on(bus, nex); + } + + case c3__germ: { + u3_noun pro = _n_nock_on(bus, nex); + + if ( c3y == u3r_sing(pro, hod) ) { + u3z(pro); return hod; + } else { + u3z(hod); return pro; + } + } + + case c3__fast: { + u3_noun pro = _n_nock_on(bus, nex); + + u3t_off(noc_o); + u3j_mine(hod, u3k(pro)); + u3t_on(noc_o); + + return pro; + } + + case c3__memo: { + u3z(hod); +#if 0 + return _n_nock_on(bus, nex); +#else + { + u3_noun pro = u3z_find_2(144 + c3__nock, bus, nex); + + if ( pro != u3_none ) { + u3z(bus); u3z(nex); + return pro; + } + pro = _n_nock_on(u3k(bus), u3k(nex)); + + if ( &(u3H->rod_u) != u3R ) { + u3z_save_2(144 + c3__nock, bus, nex, pro); + } + + u3z(bus); u3z(nex); + + return pro; + } +#endif + } + + case c3__sole: { + u3z(hod); + { + u3_noun pro = _n_nock_on(bus, nex); + + // return u3z_uniq(pro); + return pro; + } + } + } +} + +/* _n_nock_on(): produce .*(bus fol). Do not virtualize. +*/ +static u3_noun +_n_nock_on(u3_noun bus, u3_noun fol) +{ + u3_noun hib, gal; + + while ( 1 ) { + hib = u3h(fol); + gal = u3t(fol); + +#ifdef U3_CPU_DEBUG + u3R->pro.nox_d += 1; +#endif + + if ( c3y == u3du(hib) ) { + u3_noun poz, riv; + + poz = _n_nock_on(u3k(bus), u3k(hib)); + riv = _n_nock_on(bus, u3k(gal)); + + u3a_lose(fol); + return u3i_cell(poz, riv); + } + else switch ( hib ) { + default: return u3m_bail(c3__exit); + + case 0: { + if ( c3n == u3ud(gal) ) { + return u3m_bail(c3__exit); + } + else { + u3_noun pro = u3k(u3at(gal, bus)); + + u3a_lose(bus); u3a_lose(fol); + return pro; + } + } + u3_assert(!"not reached"); + + case 1: { + u3_noun pro = u3k(gal); + + u3a_lose(bus); u3a_lose(fol); + return pro; + } + u3_assert(!"not reached"); + + case 2: { + u3_noun nex = _n_nock_on(u3k(bus), u3k(u3t(gal))); + u3_noun seb = _n_nock_on(bus, u3k(u3h(gal))); + + u3a_lose(fol); + bus = seb; + fol = nex; + continue; + } + u3_assert(!"not reached"); + + case 3: { + u3_noun gof, pro; + + gof = _n_nock_on(bus, u3k(gal)); + pro = u3du(gof); + + u3a_lose(gof); u3a_lose(fol); + return pro; + } + u3_assert(!"not reached"); + + case 4: { + u3_noun gof, pro; + + gof = _n_nock_on(bus, u3k(gal)); + pro = u3i_vint(gof); + + u3a_lose(fol); + return pro; + } + u3_assert(!"not reached"); + + case 5: { + u3_noun wim = _n_nock_on(bus, u3k(gal)); + u3_noun pro = u3r_sing(u3h(wim), u3t(wim)); + + u3a_lose(wim); u3a_lose(fol); + return pro; + } + u3_assert(!"not reached"); + + case 6: { + u3_noun b_gal, c_gal, d_gal; + + u3x_trel(gal, &b_gal, &c_gal, &d_gal); + { + u3_noun tys = _n_nock_on(u3k(bus), u3k(b_gal)); + u3_noun nex; + + if ( 0 == tys ) { + nex = u3k(c_gal); + } else if ( 1 == tys ) { + nex = u3k(d_gal); + } else return u3m_bail(c3__exit); + + u3a_lose(fol); + fol = nex; + continue; + } + } + u3_assert(!"not reached"); + + case 7: { + u3_noun b_gal, c_gal; + + u3x_cell(gal, &b_gal, &c_gal); + { + u3_noun bod = _n_nock_on(bus, u3k(b_gal)); + u3_noun nex = u3k(c_gal); + + u3a_lose(fol); + bus = bod; + fol = nex; + continue; + } + } + u3_assert(!"not reached"); + + case 8: { + u3_noun b_gal, c_gal; + + u3x_cell(gal, &b_gal, &c_gal); + { + u3_noun heb = _n_nock_on(u3k(bus), u3k(b_gal)); + u3_noun bod = u3nc(heb, bus); + u3_noun nex = u3k(c_gal); + + u3a_lose(fol); + bus = bod; + fol = nex; + continue; + } + } + u3_assert(!"not reached"); + + case 9: { + u3_noun b_gal, c_gal; + + u3x_cell(gal, &b_gal, &c_gal); + { + u3_noun seb = _n_nock_on(bus, u3k(c_gal)); + u3_noun pro; + + u3t_off(noc_o); + pro = u3j_kick(seb, b_gal); + u3t_on(noc_o); + + if ( u3_none != pro ) { + u3a_lose(fol); + return pro; + } + else { + if ( c3n == u3ud(b_gal) ) { + return u3m_bail(c3__exit); + } + else { + u3_noun nex = u3k(u3at(b_gal, seb)); + + u3a_lose(fol); + bus = seb; + fol = nex; + continue; + } + } + } + } + u3_assert(!"not reached"); + + case 10: { + u3_noun p_gal, q_gal; + + u3x_cell(gal, &p_gal, &q_gal); + { + u3_noun zep, hod, nex; + + if ( c3y == u3du(p_gal) ) { + u3_noun b_gal = u3h(p_gal); + u3_noun c_gal = u3t(p_gal); + u3_noun d_gal = q_gal; + + zep = u3k(b_gal); + hod = _n_nock_on(u3k(bus), u3k(c_gal)); + nex = u3k(d_gal); + } + else { + u3_noun b_gal = p_gal; + u3_noun c_gal = q_gal; + + zep = u3k(b_gal); + hod = u3_nul; + nex = u3k(c_gal); + } + + u3a_lose(fol); + return _n_hint(zep, hod, bus, nex); + } + } + + case 11: { + u3_noun ref = _n_nock_on(u3k(bus), u3k(u3h(gal))); + u3_noun gof = _n_nock_on(bus, u3k(u3t(gal))); + u3_noun val; + + u3t_off(noc_o); + val = u3m_soft_esc(u3k(ref), u3k(gof)); + u3t_on(noc_o); + + if ( !_(u3du(val)) ) { + u3m_bail(u3nt(1, gof, 0)); + } + if ( !_(u3du(u3t(val))) ) { + // + // replace with proper error stack push + // + u3t_push(u3nt(c3__hunk, ref, gof)); + return u3m_bail(c3__exit); + } + else { + u3_noun pro; + + u3z(ref); + u3z(gof); + u3z(fol); + pro = u3k(u3t(u3t(val))); + u3z(val); + + return pro; + } + } + u3_assert(!"not reached"); + } + } +} +#endif + +// Several opcodes "overflow" (from byte to short index) to their successor, so +// order can matter here. +// Note that we use an X macro (https://en.wikipedia.org/wiki/X_Macro) to unify +// the opcode's enum name, string representation, and computed goto into a +// single structure. +#define OPCODES \ + /* non-nock bytecodes */ \ + X(HALT, "halt", &&do_halt), /* 0: terminator, end of bytcode program */ \ + X(BAIL, "bail", &&do_bail), /* 1: deterministic crash */ \ + /* stack manipulation */ \ + X(COPY, "copy", &&do_copy), /* 2 */ \ + X(SWAP, "swap", &&do_swap), /* 3 */ \ + X(TOSS, "toss", &&do_toss), /* 4 */ \ + /* auto-cons */ \ + X(AUTO, "auto", &&do_auto), /* 5: keep */ \ + X(AULT, "ault", &&do_ault), /* 6: lose */ \ + /* general purposes */ \ + X(SNOC, "snoc", &&do_snoc), /* 7: keep */ \ + X(SNOL, "snol", &&do_snol), /* 8: lose */ \ + /* nock 0: head */ \ + X(HEAD, "head", &&do_head), /* 9: keep */ \ + X(HELD, "held", &&do_held), /* 10: lose */ \ + /* nock 0: tail */ \ + X(TAIL, "tail", &&do_tail), /* 11: keep */ \ + X(TALL, "tall", &&do_tall), /* 12: lose */ \ + /* nock 0: fragment (keep) */ \ + X(FABK, "fabk", &&do_fabk), /* 13: c3_y */ \ + X(FASK, "fask", &&do_fask), /* 14: c3_s */ \ + X(FIBK, "fibk", &&do_fibk), /* 15: c3_y */ \ + X(FISK, "fisk", &&do_fisk), /* 16: c3_s */ \ + /* nock 0: fragment (lose) */ \ + X(FABL, "fabl", &&do_fabl), /* 17: c3_y */ \ + X(FASL, "fasl", &&do_fasl), /* 18: c3_s */ \ + X(FIBL, "fibl", &&do_fibl), /* 19: c3_y */ \ + X(FISL, "fisl", &&do_fisl), /* 20: c3_s */ \ + /* nock 1: literal (keep) */ \ + X(LIT0, "lit0", &&do_lit0), /* 21: a literal 0 */ \ + X(LIT1, "lit1", &&do_lit1), /* 22: a literal 1 */ \ + X(LITB, "litb", &&do_litb), /* 23: c3_y */ \ + X(LITS, "lits", &&do_lits), /* 24: c3_s */ \ + X(LIBK, "libk", &&do_libk), /* 25: c3_y */ \ + X(LISK, "lisk", &&do_lisk), /* 26: c3_s */ \ + /* nock 1: literal (lose) */ \ + X(LIL0, "lil0", &&do_lil0), /* 27: a literal 0 */ \ + X(LIL1, "lil1", &&do_lil1), /* 28: a literal 1 */ \ + X(LILB, "lilb", &&do_lilb), /* 29: c3_y */ \ + X(LILS, "lils", &&do_lils), /* 30: c3_s */ \ + X(LIBL, "libl", &&do_libl), /* 31: c3_y */ \ + X(LISL, "lisl", &&do_lisl), /* 32: c3_s */ \ + /* nock 2: nock (lose) */ \ + X(NOLK, "nolk", &&do_nolk), /* 33 */ \ + X(NOCT, "noct", &&do_noct), /* 34 */ \ + X(NOCK, "nock", &&do_nock), /* 35 */ \ + /* nock 3 & 4 */ \ + X(DEEP, "deep", &&do_deep), /* 36 */ \ + X(BUMP, "bump", &&do_bump), /* 37 */ \ + /* nock 5: equality */ \ + X(SAM0, "sam0", &&do_sam0), /* 38: test that it is equal to 0 */ \ + X(SAM1, "sam1", &&do_sam1), /* 39: test that it is equal to 1 */ \ + X(SAMB, "samb", &&do_samb), /* 40: test equality for vars size c3_b */ \ + X(SAMS, "sams", &&do_sams), /* 41: test equality for vars size c3_s */ \ + X(SANB, "sanb", &&do_sanb), /* 42: test equality for vars size c3_b */ \ + X(SANS, "sans", &&do_sans), /* 43: test equality for vars size c3_s */ \ + X(SAME, "same", &&do_same), /* 44 */ \ + X(SALM, "salm", &&do_salm), /* 45 */ \ + X(SAMC, "samc", &&do_samc), /* 46 */ \ + /* related to nock 6: unconditional skips */ \ + X(SBIP, "sbip", &&do_sbip), /* 47: c3_b */ \ + X(SIPS, "sips", &&do_sips), /* 48: c3_s */ \ + X(SWIP, "swip", &&do_swip), /* 49: c3_l */ \ + /* related to nock 6: conditional skips */ \ + X(SBIN, "sbin", &&do_sbin), /* 50: c3_b */ \ + X(SINS, "sins", &&do_sins), /* 51: c3_s */ \ + X(SWIN, "swin", &&do_swin), /* 52: c3_l */ \ + /* nock 9 */ \ + X(KICB, "kicb", &&do_kicb), /* 53: c3_b */ \ + X(KICS, "kics", &&do_kics), /* 54: c3_s */ \ + X(TICB, "ticb", &&do_ticb), /* 55: c3_b */ \ + X(TICS, "tics", &&do_tics), /* 56: c3_s */ \ + /* nock 12: scry (only defined in arvo, not in base nock spec) */ \ + X(WILS, "wils", &&do_wils), /* 57 */ \ + X(WISH, "wish", &&do_wish), /* 58 */ \ + /* nock 11: hint processing */ \ + X(BUSH, "bush", &&do_bush), /* 59: c3_b */ \ + X(SUSH, "sush", &&do_sush), /* 60: c3_s */ \ + X(DROP, "drop", &&do_drop), /* 61 */ \ + X(HECK, "heck", &&do_heck), /* 62 */ \ + X(SLOG, "slog", &&do_slog), /* 63 */ \ + /* nock 11: fast (keep) */ \ + X(BAST, "bast", &&do_bast), /* 64: c3_b */ \ + X(SAST, "sast", &&do_sast), /* 65: c3_s */ \ + /* nock 11: fast (lose) */ \ + X(BALT, "balt", &&do_balt), /* 66: c3_b */ \ + X(SALT, "salt", &&do_salt), /* 67: c3_s */ \ + /* nock 11: memo (keep) */ \ + X(SKIB, "skib", &&do_skib), /* 68: c3_b */ \ + X(SKIS, "skis", &&do_skis), /* 69: c3_s */ \ + /* nock 11: memo (lose) */ \ + X(SLIB, "slib", &&do_slib), /* 70: c3_b */ \ + X(SLIS, "slis", &&do_slis), /* 71: c3_s */ \ + X(SAVE, "save", &&do_save), /* 72 */ \ + /* nock 11: before formula */ \ + X(HILB, "hilb", &&do_hilb), /* 73: atomic, byte */ \ + X(HILS, "hils", &&do_hils), /* 74: atomic, short */ \ + X(HINB, "hinb", &&do_hinb), /* 75: arbitrary, byte */ \ + X(HINS, "hins", &&do_hins), /* 76: arbitrary, short */ \ + /* nock 11: after formula */ \ + X(HILK, "hilk", &&do_hilk), /* 77: atomic, keep */ \ + X(HILL, "hill", &&do_hill), /* 78: atomic, lose */ \ + X(HINK, "hink", &&do_hink), /* 79: arbitrary, keep */ \ + X(HINL, "hinl", &&do_hinl), /* 80: arbitrary, lose */ \ + /* nock 10 */ \ + X(MUTH, "muth", &&do_muth), /* 81 */ \ + X(KUTH, "kuth", &&do_kuth), /* 82 */ \ + X(MUTT, "mutt", &&do_mutt), /* 83 */ \ + X(KUTT, "kutt", &&do_kutt), /* 84 */ \ + X(MUSM, "musm", &&do_musm), /* 85 */ \ + X(KUSM, "kusm", &&do_kusm), /* 86 */ \ + X(MUTB, "mutb", &&do_mutb), /* 87: c3_b */ \ + X(MUTS, "muts", &&do_muts), /* 88: c3_s */ \ + X(MITB, "mitb", &&do_mitb), /* 89: c3_b */ \ + X(MITS, "mits", &&do_mits), /* 90: c3_s */ \ + X(KUTB, "kutb", &&do_kutb), /* 91: c3_b */ \ + X(KUTS, "kuts", &&do_kuts), /* 92: c3_s */ \ + X(KITB, "kitb", &&do_kitb), /* 93: c3_b */ \ + X(KITS, "kits", &&do_kits), /* 94: c3_s */ \ + X(LAST, NULL, NULL), /* 95 */ + +// Opcodes. Define X to select the enum name from OPCODES. +#define X(opcode, name, indirect_jump) opcode +enum { OPCODES }; +#undef X + +/* _n_arg(): return the size (in bytes) of an opcode's argument + */ +static inline c3_y +_n_arg(c3_y cod_y) +{ + switch ( cod_y ) { + case FABK: case FABL: case FIBL: case FIBK: + case LILB: case LITB: case LIBL: case LIBK: + case SAMB: case SANB: case SBIP: case SBIN: + case SLIB: case SKIB: case KICB: case TICB: + case BUSH: case BAST: case BALT: + case MUTB: case KUTB: case MITB: case KITB: + case HILB: case HINB: + return sizeof(c3_y); + + case FASK: case FASL: case FISL: case FISK: + case LILS: case LITS: case LISL: case LISK: + case SAMS: case SANS: case SIPS: case SINS: + case SLIS: case SKIS: case KICS: case TICS: + case SUSH: case SAST: case SALT: + case MUTS: case KUTS: case MITS: case KITS: + case HILS: case HINS: + return sizeof(c3_s); + + case SWIP: case SWIN: + return sizeof(c3_l); + + default: + u3_assert( cod_y < LAST ); + return 0; + } +} + + +/* _n_melt(): measure space for list of ops (from _n_comp) */ +static u3_noun +_n_melt(u3_noun ops, c3_w* byc_w, c3_w* cal_w, + c3_w* reg_w, c3_w* lit_w, c3_w* mem_w) +{ + c3_w len_w = u3qb_lent(ops), + i_w = len_w - 1, + a_w; + c3_y cod_y; + c3_y* siz_y = u3a_malloc(len_w); + u3_noun op, sip = u3_nul; + + while ( u3_nul != ops ) { + op = u3h(ops); + if ( c3n == u3du(op) ) { + switch ( op ) { + default: + siz_y[i_w] = 1; + break; + + case BAST: case BALT: + a_w = (*reg_w)++; + if ( a_w <= 0xFF ) { + siz_y[i_w] = 2; + } + else if ( a_w <= 0xFFFF ) { + siz_y[i_w] = 3; + } + else { + fprintf(stderr, "_n_melt(): over 2^16 registration sites.\r\n"); + u3_assert(0); + } + break; + } + } + else { + cod_y = u3h(op); + + switch ( cod_y ) { + default: + siz_y[i_w] = 1 + _n_arg(cod_y); + break; + + case SBIP: case SBIN: { + c3_l tot_l = 0, + sip_l = u3t(op); + c3_w j_w, k_w = i_w; + for ( j_w = 0; j_w < sip_l; ++j_w ) { + tot_l += siz_y[++k_w]; + } + sip = u3nc(tot_l, sip); + siz_y[i_w] = tot_l <= 0xFF ? 2 : tot_l <= 0xFFFF ? 3 : 5; + break; + } + + case SKIB: case SLIB: { + c3_l tot_l = 0, + sip_l = u3h(u3t(u3t(op))); + c3_w j_w, k_w = i_w; + for ( j_w = 0; j_w < sip_l; ++j_w ) { + tot_l += siz_y[++k_w]; + } + sip = u3nc(tot_l, sip); + a_w = (*mem_w)++; + if ( a_w <= 0xFF ) { + siz_y[i_w] = 2; + } + else if ( a_w <= 0xFFFF ) { + siz_y[i_w] = 3; + } + else { + fprintf(stderr, "_n_melt(): over 2^16 memos.\r\n"); + u3_assert(0); + } + break; + } + + case SIPS: case SINS: case SWIP: case SWIN: + case SAST: case SALT: case KICS: case TICS: + case FISK: case FISL: case SUSH: case SANS: + case LISL: case LISK: case SKIS: case SLIS: + case HILS: case HINS: + u3_assert(0); //overflows + break; + + case KICB: case TICB: + a_w = (*cal_w)++; + if ( a_w <= 0xFF ) { + siz_y[i_w] = 2; + } + else if ( a_w <= 0xFFFF ) { + siz_y[i_w] = 3; + } + else { + fprintf(stderr, "_n_melt(): over 2^16 call sites.\r\n"); + u3_assert(0); + } + break; + + case BUSH: case FIBK: case FIBL: + case SANB: case LIBL: case LIBK: + case KITB: case MITB: + case HILB: case HINB: + a_w = (*lit_w)++; + if ( a_w <= 0xFF ) { + siz_y[i_w] = 2; + } + else if ( a_w <= 0xFFFF ) { + siz_y[i_w] = 3; + } + else { + fprintf(stderr, "_n_melt(): over 2^16 literals.\r\n"); + u3_assert(0); + } + break; + } + } + + *(byc_w) += siz_y[i_w--]; + ops = u3t(ops); + } + + u3a_free(siz_y); + return u3kb_flop(sip); +} + +/* _n_prog_dat(): return pointer to program's data segment + */ +static void* +_n_prog_dat(u3n_prog* pog_u) +{ + return ((void*) pog_u) + sizeof(u3n_prog); +} + +/* _n_prog_new(): allocate and set up pointers for u3n_prog + */ +static u3n_prog* +_n_prog_new(c3_w byc_w, c3_w cal_w, + c3_w reg_w, c3_w lit_w, c3_w mem_w) +{ + c3_w cab_w = (sizeof(u3j_site) * cal_w), + reb_w = (sizeof(u3j_rite) * reg_w), + lib_w = (sizeof(u3_noun) * lit_w), + meb_w = (sizeof(u3n_memo) * mem_w), + pad_w = (8 - byc_w % 8) % 8, + pod_w = lit_w % 2, + ped_w = mem_w % 2, + dat_w = byc_w + cab_w + reb_w + lib_w + meb_w + pad_w + + (pod_w * sizeof(u3_noun)) + (ped_w * sizeof(u3n_memo)); + + u3n_prog* pog_u = u3a_malloc(sizeof(u3n_prog) + dat_w); + pog_u->byc_u.own_o = c3y; + pog_u->byc_u.len_w = byc_w; + pog_u->byc_u.ops_y = (c3_y*) _n_prog_dat(pog_u); + + pog_u->lit_u.len_w = lit_w; + pog_u->lit_u.non = (u3_noun*) (pog_u->byc_u.ops_y + pog_u->byc_u.len_w + pad_w); + + pog_u->mem_u.len_w = mem_w; + pog_u->mem_u.sot_u = (u3n_memo*) (pog_u->lit_u.non + pog_u->lit_u.len_w + pod_w); + + pog_u->cal_u.len_w = cal_w; + pog_u->cal_u.sit_u = (u3j_site*) (pog_u->mem_u.sot_u + pog_u->mem_u.len_w + ped_w); + + pog_u->reg_u.len_w = reg_w; + pog_u->reg_u.rit_u = (u3j_rite*) (pog_u->cal_u.sit_u + pog_u->cal_u.len_w); + + return pog_u; +} + +/* _n_prog_old(): as _n_prog_new(), + * but leech off senior program's data segment + */ +static u3n_prog* +_n_prog_old(u3n_prog* sep_u) +{ + c3_w cab_w = sizeof(u3j_site) * sep_u->cal_u.len_w, + reb_w = sizeof(u3j_rite) * sep_u->reg_u.len_w, + lib_w = sizeof(u3_noun) * sep_u->lit_u.len_w, + meb_w = sizeof(u3n_memo) * sep_u->mem_u.len_w, + pod_w = sep_u->lit_u.len_w % 2, + ped_w = sep_u->mem_u.len_w % 2, + dat_w = cab_w + reb_w + lib_w + meb_w + + (pod_w * sizeof(u3_noun)) + (ped_w * sizeof(u3n_memo)); + + u3n_prog* pog_u = u3a_malloc(sizeof(u3n_prog) + dat_w); + pog_u->byc_u.own_o = c3n; + pog_u->byc_u.len_w = sep_u->byc_u.len_w; + pog_u->byc_u.ops_y = sep_u->byc_u.ops_y; + + pog_u->lit_u.len_w = sep_u->lit_u.len_w; + pog_u->lit_u.non = (u3_noun*) _n_prog_dat(pog_u); + + pog_u->mem_u.len_w = sep_u->mem_u.len_w; + pog_u->mem_u.sot_u = (u3n_memo*) (pog_u->lit_u.non + pog_u->lit_u.len_w + pod_w); + + pog_u->cal_u.len_w = sep_u->cal_u.len_w; + pog_u->cal_u.sit_u = (u3j_site*) (pog_u->mem_u.sot_u + pog_u->mem_u.len_w + ped_w); + + pog_u->reg_u.len_w = sep_u->reg_u.len_w; + pog_u->reg_u.rit_u = (u3j_rite*) (pog_u->cal_u.sit_u + pog_u->cal_u.len_w); + + memcpy(pog_u->lit_u.non, sep_u->lit_u.non, dat_w); + return pog_u; +} + +/* _n_prog_asm_inx(): write an index to the bytestream with overflow + */ +static void +_n_prog_asm_inx(c3_y* buf_y, c3_w* i_w, c3_s inx_s, c3_y cod) +{ + if ( inx_s <= 0xFF ) { + buf_y[(*i_w)--] = (c3_y) (inx_s); + buf_y[*i_w] = (c3_y) cod; + } + else { + buf_y[(*i_w)--] = (c3_y) (inx_s >> 8); + buf_y[(*i_w)--] = (c3_y) (inx_s); + // the short-index versions of these opcodes must immediately + // follow the byte-index versions because of this convention + buf_y[(*i_w)] = cod + 1; + } +} + +/* _n_prog_asm(): assemble list of ops (from _n_comp) into u3n_prog + */ +static void +_n_prog_asm(u3_noun ops, u3n_prog* pog_u, u3_noun sip) +{ + u3_noun top = ops; + c3_y* buf_y = pog_u->byc_u.ops_y; + c3_s lit_s = 0, + cal_s = 0, + mem_s = 0, + reg_s = 0; + c3_w i_w = pog_u->byc_u.len_w-1; + + buf_y[i_w] = HALT; + + while ( i_w-- > 0 ) { + u3_noun op = u3h(ops); + if ( c3y == u3ud(op) ) { + switch ( op ) { + default: + buf_y[i_w] = (c3_y) op; + break; + + /* registration site index args */ + case BAST: case BALT: { + _n_prog_asm_inx(buf_y, &i_w, reg_s, op); + u3j_rite* rit_u = &(pog_u->reg_u.rit_u[reg_s++]); + rit_u->own_o = c3n; + rit_u->clu = u3_none; + rit_u->fin_p = 0; + break; + } + } + } + else { + u3_noun cod = u3h(op); + switch ( cod ) { + default: + u3_assert(0); + return; + + /* memo index args */ + case SKIB: case SLIB: { + u3n_memo* mem_u; + c3_l sip_l = u3h(sip); + u3_noun tmp = sip; + sip = u3k(u3t(sip)); + u3z(tmp); + _n_prog_asm_inx(buf_y, &i_w, mem_s, cod); + mem_u = &(pog_u->mem_u.sot_u[mem_s++]); + mem_u->sip_l = sip_l; + // [op_y, cid, mem_w, nef] + mem_u->key = u3k(u3t(u3t(u3t(op)))); + mem_u->cid = u3h(u3t(op)); + break; + } + + /* skips */ + case SBIP: case SBIN: { + c3_l sip_l = u3h(sip); + u3_noun tmp = sip; + sip = u3k(u3t(sip)); + u3z(tmp); + if ( sip_l <= 0xFF ) { + buf_y[i_w--] = (c3_y) sip_l; + buf_y[i_w] = (c3_y) cod; + } + else if ( sip_l <= 0xFFFF ) { + buf_y[i_w--] = (c3_y) (sip_l >> 8); + buf_y[i_w--] = (c3_y) sip_l; + buf_y[i_w] = (c3_y) cod + 1; + } + else { + buf_y[i_w--] = (c3_y) (sip_l >> 24); + buf_y[i_w--] = (c3_y) (sip_l >> 16); + buf_y[i_w--] = (c3_y) (sip_l >> 8); + buf_y[i_w--] = (c3_y) sip_l; + buf_y[i_w] = (c3_y) cod + 2; + } + break; + } + + /* 8-bit direct args */ + case FABK: case FABL: + case LITB: case LILB: + case MUTB: case KUTB: + case SAMB: + buf_y[i_w--] = (c3_y) u3t(op); + buf_y[i_w] = (c3_y) cod; + break; + + /* 16-bit direct args */ + case FASK: case FASL: + case LILS: case LITS: + case MUTS: case KUTS: + case SAMS: case SIPS: case SINS: { + c3_s off_s = u3t(op); + buf_y[i_w--] = (c3_y) (off_s >> 8); + buf_y[i_w--] = (c3_y) off_s; + buf_y[i_w] = (c3_y) cod; + break; + } + + /* 31-bit direct args */ + case SWIP: case SWIN: { + c3_w off_l = u3t(op); + buf_y[i_w--] = (c3_y) (off_l >> 24); + buf_y[i_w--] = (c3_y) (off_l >> 16); + buf_y[i_w--] = (c3_y) (off_l >> 8); + buf_y[i_w--] = (c3_y) off_l; + buf_y[i_w] = (c3_y) cod; + break; + } + + /* literal index args */ + case FIBK: case FIBL: + case LIBK: case LIBL: + case BUSH: case SANB: + case KITB: case MITB: + case HILB: case HINB: + _n_prog_asm_inx(buf_y, &i_w, lit_s, cod); + pog_u->lit_u.non[lit_s++] = u3k(u3t(op)); + break; + + /* call site index args */ + case TICB: case KICB: { + _n_prog_asm_inx(buf_y, &i_w, cal_s, cod); + u3j_site* sit_u = &(pog_u->cal_u.sit_u[cal_s++]); + sit_u->axe = u3k(u3t(op)); + sit_u->pog_p = 0; + sit_u->bat = u3_none; + sit_u->bas = u3_none; + sit_u->loc = u3_none; + sit_u->lab = u3_none; + sit_u->jet_o = c3n; + sit_u->fon_o = c3n; + sit_u->cop_u = NULL; + sit_u->ham_u = NULL; + sit_u->fin_p = 0; + break; + } + } + } + ops = u3t(ops); + } + u3z(top); + // this assert will fail if we overflow a c3_w worth of instructions + u3_assert(u3_nul == ops); + // this is just a sanity check + u3_assert(u3_nul == sip); +} + +/* _n_prog_from_ops(): new program from _n_comp() product + */ +static u3n_prog* +_n_prog_from_ops(u3_noun ops) +{ + u3_noun sip; + u3n_prog* pog_u; + c3_w byc_w = 1, // HALT + cal_w = 0, + reg_w = 0, + lit_w = 0, + mem_w = 0; + + sip = _n_melt(ops, &byc_w, &cal_w, ®_w, &lit_w, &mem_w); + pog_u = _n_prog_new(byc_w, cal_w, reg_w, lit_w, mem_w); + _n_prog_asm(ops, pog_u, sip); + return pog_u; +} + +#if 0 +/* _n_print_stack(): print out the cap stack up to a designated "empty" + * used only for debugging + */ +static void _n_print_stack(u3p(u3_noun) empty) { + c3_w cur_p = u3R->cap_p; + fprintf(stderr, "["); + int first = 1; + while ( cur_p != empty ) { + if ( first ) { + first = 0; + } + else { + fprintf(stderr, " "); + } + if ( c3y == u3a_is_north(u3R) ) { + fprintf(stderr, "%u", *(u3to(u3_noun, cur_p))); + cur_p++; + } + else { + fprintf(stderr, "%u", *(u3to(u3_noun, cur_p-1))); + cur_p--; + } + } + fprintf(stderr, "]\r\n"); +} +#endif + +// Define X to select the opcode string representation from OPCODES. +# define X(opcode, name, indirect_jump) name +static c3_c* opcode_names[] = { OPCODES }; +# undef X + +/* _n_apen(): emit the instructions contained in src to dst + */ +static inline void +_n_apen(u3_noun* dst, u3_noun src) +{ + *dst = u3kb_weld(src, *dst); +} + +/* _n_emit(): emit a single instruction to ops + */ +static inline void +_n_emit(u3_noun *ops, u3_noun op) +{ + *ops = u3nc(op, *ops); +} + +static c3_w _n_comp(u3_noun*, u3_noun, c3_o, c3_o); + +/* _n_bint(): hint-processing helper for _n_comp. + * hif: hint-formula (first part of 11). RETAIN. + * nef: next-formula (second part of 11). RETAIN. + */ +static c3_w +_n_bint(u3_noun* ops, u3_noun hif, u3_noun nef, c3_o los_o, c3_o tel_o) +{ + c3_w tot_w = 0; + + if ( c3n == u3du(hif) ) { + // compile whitelisted atomic hints to dispatch protocol; + // compute and drop all others; + // + switch ( hif ) { + default: { + return _n_comp(ops, nef, los_o, tel_o); + } + case c3__xray: + case c3__meme: + case c3__nara: + case c3__hela: + case c3__bout: { + u3_noun fen = u3_nul; + c3_w nef_w = _n_comp(&fen, nef, los_o, c3n); + // add appropriate hind opcode + ++nef_w; _n_emit(&fen, ( c3y == los_o ) ? HILL : HILK); + // skip over the cleanup opcode + ++nef_w; _n_emit(&fen, u3nc(SBIP, 1)); + + // call hilt_fore + // HILB overflows to HILS + ++tot_w; _n_emit(ops, u3nc(HILB, u3nc(u3k(hif), u3k(nef)))); + // if fore return c3n, skip fen + ++tot_w; _n_emit(ops, u3nc(SBIN, nef_w)); + tot_w += nef_w; _n_apen(ops, fen); + // post-skip cleanup opcode + ++tot_w; _n_emit(ops, ( c3y == los_o ) ? TOSS : SWAP); + } break; + } + } + else { + u3_noun zep, hod; + u3x_cell(hif, &zep, &hod); + + switch ( zep ) { + default: { + // compile whitelisted dynamic hints to dispatch protocol; + // compute and drop all others; + // + switch ( zep ) { + default: { + tot_w += _n_comp(ops, hod, c3n, c3n); + ++tot_w; _n_emit(ops, TOSS); + tot_w += _n_comp(ops, nef, los_o, tel_o); + } break; + case c3__xray: + case c3__meme: + case c3__nara: + case c3__hela: + case c3__bout: { + u3_noun fen = u3_nul; + c3_w nef_w = _n_comp(&fen, nef, los_o, c3n); + // add appropriate hind opcode + ++nef_w; _n_emit(&fen, ( c3y == los_o ) ? HINL : HINK); + // skip over the cleanup opcode + ++nef_w; _n_emit(&fen, u3nc(SBIP, 1)); + + // push clue + tot_w += _n_comp(ops, hod, c3n, c3n); + // call hint_fore + // HINB overflows to HINS + ++tot_w; _n_emit(ops, u3nc(HINB, u3nc(u3k(zep), u3k(nef)))); + // if fore return c3n, skip fen + ++tot_w; _n_emit(ops, u3nc(SBIN, nef_w)); + tot_w += nef_w; _n_apen(ops, fen); + // post-skip cleanup opcode + ++tot_w; _n_emit(ops, ( c3y == los_o ) ? TOSS : SWAP); + } break; + } + } break; + + case c3__hunk: + case c3__lose: + case c3__mean: + case c3__spot: + tot_w += _n_comp(ops, hod, c3n, c3n); + ++tot_w; _n_emit(ops, u3nc(BUSH, zep)); // overflows to SUSH + tot_w += _n_comp(ops, nef, los_o, c3n); + ++tot_w; _n_emit(ops, DROP); + break; + + case c3__live: + tot_w += _n_comp(ops, hod, c3n, c3n); + ++tot_w; _n_emit(ops, HECK); + tot_w += _n_comp(ops, nef, los_o, tel_o); + break; + + case c3__slog: + tot_w += _n_comp(ops, hod, c3n, c3n); + ++tot_w; _n_emit(ops, SLOG); + tot_w += _n_comp(ops, nef, los_o, tel_o); + break; + + // germ and sole are unused... + + case c3__fast: + tot_w += _n_comp(ops, hod, c3n, c3n); + ++tot_w; _n_emit(ops, SWAP); + tot_w += _n_comp(ops, nef, c3n, c3n); + // overflows to SALT / SAST + ++tot_w; _n_emit(ops, (c3y == los_o) ? BALT : BAST); + break; + + case c3__memo: { + u3_noun mem = u3_nul; + c3_w mem_w = 0; + c3_y op_y; + + tot_w += _n_comp(ops, hod, c3n, c3n); + ++tot_w; _n_emit(ops, TOSS); + + mem_w += _n_comp(&mem, nef, c3y, c3n); + ++mem_w; _n_emit(&mem, SAVE); + + op_y = (c3y == los_o) ? SLIB : SKIB; // overflows to SLIS / SKIS + u3z_cid cid = u3z_memo_toss; + { + u3_weak con = u3r_skip(hod); + if ( (u3_none != con) && (c3y == u3du(con)) ) { + cid = u3z_memo_keep; + } + } + ++tot_w; _n_emit(ops, u3nq(op_y, cid, mem_w, u3k(nef))); + tot_w += mem_w; _n_apen(ops, mem); + break; + } + } + } + + return tot_w; +} + +static c3_t +_n_formulaic(u3_noun fol) +{ + u3_noun op, ar, a, b, c; + if ( c3n == u3r_cell(fol, &op, &ar) ) { + return 0; + } + if ( c3y == u3du(op) ) { + return _n_formulaic(op) && _n_formulaic(ar); + } + else switch ( op ) { + case 0: + return ( c3y == u3ud(ar) ); + case 1: + return 1; + case 3: + case 4: + return _n_formulaic(ar); + case 2: + case 5: + case 7: + case 8: + case 12: + return (c3y == u3r_cell(ar, &a, &b)) + && _n_formulaic(a) && _n_formulaic(b); + case 6: + return ( c3y == u3r_trel(ar, &a, &b, &c) ) + && _n_formulaic(a) && + (_n_formulaic(b) || _n_formulaic(c)); + case 9: + return (c3y == u3r_cell(ar, &a, &b)) + && (c3y == u3ud(a)) + && _n_formulaic(b); + case 10: + if ( c3n == u3r_cell(ar, &a, &b) ) { + return 0; + } + if ( c3n == u3du(a) ) { + return 0; + } + if ( c3n == u3ud(u3h(a)) ) { + return 0; + } + return _n_formulaic(u3t(a)) && _n_formulaic(b); + case 11: + if ( c3n == u3r_cell(ar, &a, &b) ) { + return 0; + } + if ( !_n_formulaic(b) ) { + return 0; + } + if ( c3y == u3ud(a) ) { + return 1; + } + else { + return ( c3y == u3ud(u3h(a)) ) && _n_formulaic(u3t(a)); + } + default: + return 0; + } +} + +/* _n_comp(): compile nock formula to reversed opcode list + * ops is a pointer to a list (to be emitted to) + * fol is the nock formula to compile. RETAIN. + * los_o indicates whether we should remove our + * subject from the stack + * tel_o is yes if this formula is in tail position + * return: number of instructions added to the opcode list + */ +static c3_w +_n_comp(u3_noun* ops, u3_noun fol, c3_o los_o, c3_o tel_o) +{ + c3_y op_y; + c3_w tot_w = 0; + u3_noun cod, arg, hed, tel; + u3x_cell(fol, &cod, &arg); + if ( c3y == u3du(cod) ) { + tot_w += _n_comp(ops, cod, c3n, c3n); + ++tot_w; _n_emit(ops, SWAP); + tot_w += _n_comp(ops, arg, c3n, c3n); + ++tot_w; _n_emit(ops, (c3y == los_o ) ? AULT : AUTO); + } + else switch ( cod ) { + case 0: + if ( c3n == u3ud(arg) ) { + u3m_bail(c3__exit); + return 0; + } + switch ( arg ) { + case 0: + ++tot_w; _n_emit(ops, BAIL); + break; + case 1: + if ( c3n == los_o ) { + ++tot_w; _n_emit(ops, COPY); + } + break; + case 2: + ++tot_w; _n_emit(ops, (c3y == los_o) ? HELD : HEAD); + break; + case 3: + ++tot_w; _n_emit(ops, (c3y == los_o) ? TALL : TAIL); + break; + default: + op_y = (c3y == los_o) + ? (arg <= 0xFF ? FABL : arg <= 0xFFFF ? FASL : FIBL) // overflows to FISL + : (arg <= 0xFF ? FABK : arg <= 0xFFFF ? FASK : FIBK); // overflows to FISK + ++tot_w; _n_emit(ops, u3nc(op_y, u3k(arg))); + break; + } + break; + + case 1: + switch ( arg ) { + case 0: + ++tot_w; _n_emit(ops, (c3y == los_o) ? LIL0 : LIT0); + break; + case 1: + ++tot_w; _n_emit(ops, (c3y == los_o) ? LIL1 : LIT1); + break; + default: + op_y = (c3y == los_o) + ? (arg <= 0xFF ? LILB : arg <= 0xFFFF ? LILS : LIBL) // overflows to LISL + : (arg <= 0xFF ? LITB : arg <= 0xFFFF ? LITS : LIBK); // overflows to LISK + ++tot_w; _n_emit(ops, u3nc(op_y, u3k(arg))); + break; + } + break; + + case 2: + u3x_cell(arg, &hed, &tel); + tot_w += _n_comp(ops, hed, c3n, c3n); + ++tot_w; _n_emit(ops, SWAP); + tot_w += _n_comp(ops, tel, c3n, c3n); + /* things in tail position replace (so, lose) top of stack, + * so NOCT "loses" and there is no non-losing version */ + op_y = (c3y == tel_o) ? NOCT + : ((c3y == los_o) ? NOLK : NOCK); + ++tot_w; _n_emit(ops, op_y); + break; + + case 3: + tot_w += _n_comp(ops, arg, los_o, c3n); + ++tot_w; _n_emit(ops, DEEP); + break; + + case 4: + tot_w += _n_comp(ops, arg, los_o, c3n); + ++tot_w; _n_emit(ops, BUMP); + break; + + case 5: { + u3x_cell(arg, &hed, &tel); + + if ( c3n == u3du(hed) ) { + u3m_bail(c3__exit); + return 0; + } + else { + c3_t hec_t, tec_t; + hec_t = (1 == u3h(hed)); + if ( c3n == u3du(tel) ) { + u3m_bail(c3__exit); + break; + } + else { + tec_t = (1 == u3h(tel)); + } + if ( hec_t && tec_t ) { + if ( c3y == u3r_sing(u3t(hed), u3t(tel)) ) { + ++tot_w; _n_emit(ops, (c3y == los_o) ? LIL0 : LIT0); + } + else { + ++tot_w; _n_emit(ops, (c3y == los_o) ? LIL1 : LIT1); + } + } + else if ( !hec_t && !tec_t ) { + tot_w += _n_comp(ops, hed, c3n, c3n); + ++tot_w; _n_emit(ops, SWAP); + tot_w += _n_comp(ops, tel, c3n, c3n); + ++tot_w; _n_emit(ops, (c3y == los_o) ? SALM : SAME); + } + else { + tot_w += _n_comp(ops, (hec_t ? tel : hed), los_o, c3n); + u3_noun lit = u3t(hec_t ? hed : tel); + switch ( lit ) { + case 0: + ++tot_w; _n_emit(ops, SAM0); + break; + case 1: + ++tot_w; _n_emit(ops, SAM1); + break; + default: + // overflows to SANS + op_y = lit <= 0xFF ? SAMB : lit <= 0xFFFF ? SAMS : SANB; + ++tot_w; _n_emit(ops, u3nc(op_y, u3k(lit))); + } + } + } + break; + } + + case 6: { + u3_noun mid, + yep = u3_nul, + nop = u3_nul; + c3_w yep_w, nop_w; + c3_t yep_t, nop_t; + u3x_trel(arg, &hed, &mid, &tel); + + tot_w += _n_comp(ops, hed, c3n, c3n); + yep_t = _n_formulaic(mid); + nop_t = _n_formulaic(tel); + + if ( !yep_t && !nop_t ) { + u3m_bail(c3__exit); + break; + } + + if ( yep_t ) { + yep_w = _n_comp(&yep, mid, los_o, tel_o); + } + else { + yep_w = 1; _n_emit(&yep, BAIL); + } + + if ( nop_t ) { + nop_w = _n_comp(&nop, tel, los_o, tel_o); + } + else { + nop_w = 1; _n_emit(&nop, BAIL); + } + + // SBIP and SBIN get sized during assembly + ++yep_w; _n_emit(&yep, u3nc(SBIP, nop_w)); + ++tot_w; _n_emit(ops, u3nc(SBIN, yep_w)); + tot_w += yep_w; _n_apen(ops, yep); + tot_w += nop_w; _n_apen(ops, nop); + break; + } + + case 7: + u3x_cell(arg, &hed, &tel); + tot_w += _n_comp(ops, hed, los_o, c3n); + tot_w += _n_comp(ops, tel, c3y, tel_o); + break; + + case 8: + u3x_cell(arg, &hed, &tel); + tot_w += _n_comp(ops, hed, c3n, c3n); + ++tot_w; _n_emit(ops, (c3y == los_o) ? SNOL : SNOC); + tot_w += _n_comp(ops, tel, c3y, tel_o); + break; + + case 9: + u3x_cell(arg, &hed, &tel); + if ( (1 == hed) || (3 == u3qc_cap(u3x_atom(hed))) ) { + u3_noun mac = u3nq(7, u3k(tel), 2, u3nt(u3nc(0, 1), 0, u3k(hed))); + tot_w += _n_comp(ops, mac, los_o, tel_o); + u3z(mac); + } + else { + tot_w += _n_comp(ops, tel, (c3y == tel_o ? c3y : los_o), c3n); + op_y = (c3y == tel_o) ? TICB : KICB; // overflows to TICS/KICS + ++tot_w; _n_emit(ops, u3nc(op_y, u3k(hed))); + } + break; + + case 10: { + u3_noun axe, nef; + u3x_cell(arg, &hed, &tel); + u3x_cell(hed, &axe, &nef); + tot_w += _n_comp(ops, tel, c3n, c3n); + ++tot_w; _n_emit(ops, SWAP); + tot_w += _n_comp(ops, nef, c3n, c3n); + + ++tot_w; + switch ( axe ) { + case 2: + _n_emit(ops, (c3y == los_o) ? MUTH : KUTH); + break; + + case 3: + _n_emit(ops, (c3y == los_o) ? MUTT : KUTT); + break; + + case u3x_sam: + _n_emit(ops, (c3y == los_o) ? MUSM : KUSM); + break; + + default: + op_y = (c3y == los_o) + ? (axe <= 0xFF) ? MUTB : (axe <= 0xFFFF) ? MUTS : MITB // overflows to MITS + : (axe <= 0xFF) ? KUTB : (axe <= 0xFFFF) ? KUTS : KITB; // overflows to KITS + _n_emit(ops, u3nc(op_y, u3k(axe))); + break; + } + break; + } + + case 11: + u3x_cell(arg, &hed, &tel); + tot_w += _n_bint(ops, hed, tel, los_o, tel_o); + break; + + case 12: + u3x_cell(arg, &hed, &tel); + tot_w += _n_comp(ops, hed, c3n, c3n); + ++tot_w; _n_emit(ops, SWAP); + tot_w += _n_comp(ops, tel, c3n, c3n); + ++tot_w; _n_emit(ops, (c3y == los_o) ? WILS : WISH); + break; + + default: + u3m_bail(c3__exit); + return 0; + } + return tot_w; +} + +/* _n_push(): push a noun onto the stack. RETAIN + * mov: -1 north, 1 south + * off: 0 north, -1 south + */ +static inline void +_n_push(c3_ys mov, c3_ys off, u3_noun a) +{ + u3R->cap_p += mov; + + // XX switch to u3a_push() + // +#ifndef U3_GUARD_PAGE + if ( 0 == off ) { + if( !(u3R->cap_p > u3R->hat_p) ) { + u3m_bail(c3__meme); + } + } + else { + if( !(u3R->cap_p < u3R->hat_p) ) { + u3m_bail(c3__meme); + } + } +#endif + + u3_noun* p = u3to(u3_noun, u3R->cap_p + off); + *p = a; +} + +/* _n_peek(): pointer to noun at top of stack + * off: 0 north, -1 south + */ +static inline u3_noun* +_n_peek(c3_ys off) +{ + return u3to(u3_noun, u3R->cap_p + off); +} + +/* _n_peet(): address of the next-to-top of stack + * mov: -1 north, 1 south + * off: 0 north, -1 south + */ +static inline u3_noun* +_n_peet(c3_ys mov, c3_ys off) +{ + return u3to(u3_noun, (u3R->cap_p - mov) + off); +} + +/* _n_pop(): pop a noun from the cap stack + * mov: -1 north, 1 south + */ +static inline void +_n_pop(c3_ys mov) +{ + u3R->cap_p -= mov; +} + +/* _n_pep(): pop and return noun from the cap stack + * mov: -1 north, 1 south + * off: 0 north, -1 south + */ +static inline u3_noun +_n_pep(c3_ys mov, c3_ys off) +{ + u3_noun r = *(_n_peek(off)); + _n_pop(mov); + return r; +} + +/* _n_toss(): pep and lose + */ +static inline void +_n_toss(c3_ys mov, c3_ys off) +{ + u3z(_n_pep(mov, off)); +} + +/* _n_resh(): read a c3_s from the bytecode stream + */ +static inline c3_s +_n_resh(c3_y* buf, c3_w* ip_w) +{ + c3_y les = buf[(*ip_w)++]; + c3_y mos = buf[(*ip_w)++]; + return les | (mos << 8); +} + +/* _n_rewo(): read a c3_w from the bytecode stream. + */ +static inline c3_w +_n_rewo(c3_y* buf, c3_w* ip_w) +{ + c3_y one = buf[(*ip_w)++], + two = buf[(*ip_w)++], + tre = buf[(*ip_w)++], + qua = buf[(*ip_w)++]; + return one | (two << 8) | (tre << 16) | (qua << 24); +} + +/* _n_swap(): swap two items on the top of the stack, return pointer to top + */ +static inline u3_noun* +_n_swap(c3_ys mov, c3_ys off) +{ + u3_noun* top = _n_peek(off); + u3_noun* up = _n_peet(mov, off); + u3_noun tmp = *up; + *up = *top; + *top = tmp; + return top; +} + +#ifdef VERBOSE_BYTECODE +/* _n_print_byc(): print bytecode. used for debugging. + */ +static void +_n_print_byc(c3_y* pog, c3_w her_w) +{ + c3_w ip_w = 0; + if ( her_w == 0 ) { + fprintf(stderr, "begin: {"); + } + else { + fprintf(stderr, "resume: {"); + } + int first = 1; + while ( pog[ip_w] ) { + if ( first ) { + first = 0; + } + else if (ip_w == her_w) { + fprintf(stderr, " [*]"); + } + else { + fprintf(stderr, " "); + } + switch ( _n_arg(pog[ip_w]) ) { + case 0: + fprintf(stderr, "%s", opcode_names[pog[ip_w++]]); + break; + + case 1: + fprintf(stderr, "[%s ", opcode_names[pog[ip_w++]]); + fprintf(stderr, "%u]", pog[ip_w++]); + break; + + case 2: + fprintf(stderr, "[%s ", opcode_names[pog[ip_w++]]); + fprintf(stderr, "%u]", _n_resh(pog, &ip_w)); + break; + + case 4: + fprintf(stderr, "[%s", opcode_names[pog[ip_w++]]); + fprintf(stderr, "%u]", _n_rewo(pog, &ip_w)); + break; + default: + u3_assert(0); + break; + } + } + fprintf(stderr, " halt}\r\n"); +} +#endif + +/* _n_bite(): compile a nock formula to bytecode. RETAIN. + */ +static inline u3n_prog* +_n_bite(u3_noun fol) { + u3_noun ops = u3_nul; + _n_comp(&ops, fol, c3y, c3y); + return _n_prog_from_ops(ops); +} + +/* _n_find(): return prog for given formula with prefix (u3_nul for none). + * RETAIN. + */ +static u3n_prog* +_n_find(u3_noun pre, u3_noun fol) +{ + u3_noun key = u3nc(u3k(pre), u3k(fol)); + u3_weak pog = u3h_git(u3R->byc.har_p, key); + if ( u3_none != pog ) { + u3z(key); + return u3to(u3n_prog, pog); + } + else if ( u3R != &u3H->rod_u ) { + u3a_road* rod_u = u3R; + while ( rod_u->par_p ) { + rod_u = u3to(u3a_road, rod_u->par_p); + pog = u3h_git(rod_u->byc.har_p, key); + if ( u3_none != pog ) { + c3_w i_w; + u3n_prog* old = _n_prog_old(u3to(u3n_prog, pog)); + for ( i_w = 0; i_w < old->reg_u.len_w; ++i_w ) { + u3j_rite* rit_u = &(old->reg_u.rit_u[i_w]); + rit_u->own_o = c3n; + } + for ( i_w = 0; i_w < old->cal_u.len_w; ++i_w ) { + u3j_site* sit_u = &(old->cal_u.sit_u[i_w]); + sit_u->bat = u3_none; + sit_u->pog_p = 0; + sit_u->fon_o = c3n; + } + u3h_put(u3R->byc.har_p, key, u3a_outa(old)); + u3z(key); + return old; + } + } + } + + { + u3n_prog* gop = _n_bite(fol); + u3h_put(u3R->byc.har_p, key, u3a_outa(gop)); + u3z(key); + return gop; + } +} + +/* u3n_find(): return prog for given formula, + * split by key (u3_nul for no key). RETAIN. + */ +u3p(u3n_prog) +u3n_find(u3_noun key, u3_noun fol) +{ + u3p(u3n_prog) pog_p; + u3t_on(noc_o); + pog_p = u3of(u3n_prog, _n_find(key, fol)); + u3t_off(noc_o); + return pog_p; +} + +/* _cn_prog_free(): free memory retained by program pog_u +*/ +static void +_cn_prog_free(u3n_prog* pog_u) +{ + c3_w dex_w; + for (dex_w = 0; dex_w < pog_u->lit_u.len_w; ++dex_w) { + u3z(pog_u->lit_u.non[dex_w]); + } + for (dex_w = 0; dex_w < pog_u->mem_u.len_w; ++dex_w) { + u3z(pog_u->mem_u.sot_u[dex_w].key); + } + for (dex_w = 0; dex_w < pog_u->cal_u.len_w; ++dex_w) { + u3j_site_lose(&(pog_u->cal_u.sit_u[dex_w])); + } + for (dex_w = 0; dex_w < pog_u->reg_u.len_w; ++dex_w) { + u3j_rite_lose(&(pog_u->reg_u.rit_u[dex_w])); + } + u3a_free(pog_u); +} + +/* _cn_intlen(): find the number of characters num_w would take to print. +** num_w: an int we want to later serialize to a string +*/ +c3_w +_cn_intlen(c3_w num_w) +{ + c3_w len_w=0; + while(num_w){ + num_w/=10; + len_w++; + } + return len_w; +} + +/* _cn_is_indexed(): return true if bop_w is an opcodes that uses pog_u->lit_u.non +** bop_w: opcode (assumed 0-94) +*/ +c3_b +_cn_is_indexed(c3_w bop_w) +{ + switch (bop_w) { + case FIBK: case FISK: + case FIBL: case FISL: + case LIBK: case LISK: + case LIBL: case LISL: + case BUSH: case SUSH: + case SANB: case SANS: + case KITB: case KITS: + case MITB: case MITS: + case HILB: case HILS: + case HINB: case HINS: + return 1; + default: + return 0; + } +} + +/* _cn_pog_to_num(): read a bytecode from the steam and advance the index +** par_w: c3_w: can be 0, 2, 4 +** pog_y: c3_y*: a bytecode stream +** ip_w: c3_w: an index into pog +*/ +#define _cn_pog_to_num(par_w, pog_y, ip_w) (\ + par_w == 4 ? _n_rewo(pog_y, &ip_w): \ + par_w == 2 ? _n_resh(pog_y, &ip_w): \ + pog_y[ip_w++]) + +/* _cn_etch_bytecode(): render a nock program as string of bytecodes +** fol: a nock formula to compile and render +** returns: a u3i_string noun of the rendered bytecode +*/ +u3_noun +_cn_etch_bytecode(u3_noun fol) { + u3n_prog* pog_u = _n_bite(fol); + c3_y* pog_y = pog_u->byc_u.ops_y; + c3_w len_w = pog_u->byc_u.len_w; + c3_w ip_w=0, num_w=0, bop_w=0, dex_w=0; + c3_w len_c = 1; // opening "{" + // set par_w (parameter flag) to an invalid value, + // so we can break imeadately if needed + c3_w par_w = 5; + // lets count the chars in this string + while ( ip_w < len_w ) { + par_w = _n_arg(pog_y[ip_w]); + bop_w = pog_y[ip_w++]; // move ip_w for reading a opcode name + dex_w = _cn_is_indexed(bop_w); // is this an indexed bytecode argument + len_c += 5; // a leading space, and opcode name + if (par_w > 0) { // if pair: "[bytecode arg]" else "bytecode" + len_c += 3; // "[", space between opcode & arg, "]" + if ( dex_w ) len_c += 2; // 'i:' + len_c += _cn_intlen( // length of the bytecode argument + _cn_pog_to_num(par_w, pog_y, ip_w) + ); + } + } + // reset so we can loop again + ip_w=0, num_w=0, bop_w=0, dex_w=0, par_w=5; + // init our string, and give it a trailing null + c3_c str_c[len_c]; + str_c[0] = 0; + // lets print this string + while ( ip_w < len_w ) { + par_w = _n_arg(pog_y[ip_w]); + bop_w = pog_y[ip_w++]; // move ip_w for reading a opcode name + dex_w = _cn_is_indexed(bop_w); // is this an indexed bytecode argument + strcat(str_c, " "); // leading space + if (par_w > 0) strcat(str_c, "["); // add "[" if the opcode pairs + strncat(str_c, opcode_names[bop_w], 4); // add the opcode name + if (par_w > 0) { // finish the pair + strcat(str_c, " "); // add the space between byt and arg + if ( dex_w ) strcat(str_c, "i:"); // indexed args are labeled as "index of arg" + num_w = _cn_pog_to_num(par_w, pog_y, ip_w); // the bytecode argument + if (num_w == 0) { // + strcat(str_c, "0"); // handle a literal zero + } // + else { // + c3_w x = 0; // + for (x = _cn_intlen(num_w); x > 0; x--) { // + strcat(str_c, "_"); // prefill the buffer + } // + c3_w f = strlen(str_c)-1; // get the index of the last prefill + while (num_w > 0) { // stringify number in LSB order + str_c[f--] = (num_w%10)+'0'; // .. stringify the tail of num into tail of buf + num_w /= 10; // .. turncate num by one digit + } // + } // + strcat(str_c, "]"); // add the closing brace + } + } + // replace the first leading space and append the last char to the string + str_c[0] = '{'; + strcat(str_c, "}"); + _cn_prog_free(pog_u); + return u3i_string(str_c); +} + + +/* _n_hilt_fore(): literal (atomic) dynamic hint, before formula evaluation. +** hin: [hint-atom, formula]. TRANSFER +** bus: subject. RETAIN +** out: token for _n_hilt_hind(); convention: +** [hint-atom] or [hint-atom data], ~ if unused. +** +** any hints herein must be whitelisted in _n_burn(). +*/ +static c3_o +_n_hilt_fore(u3_noun hin, u3_noun bus, u3_noun* out) +{ + u3_noun tag, fol; + u3x_cell(hin, &tag, &fol); + + switch ( tag ) { + case c3__bout: { + u3_atom now = u3i_chub(u3t_trace_time()); + *out = u3i_cell(tag, now); + } break; + + case c3__nara : { + u3t_slog_nara(0); + *out = u3_nul; + } break; + + case c3__hela : { + u3t_slog_hela(0); + *out = u3_nul; + } break; + + case c3__xray : { + u3t_slog(u3nc(0, _cn_etch_bytecode(fol))); + *out = u3_nul; + } break; + + case c3__meme : { + u3t_slog(u3nc(0, u3t_etch_meme(0))); + *out = u3_nul; + } break; + + default: { + *out = u3_nul; + } break; + } + + u3z(hin); + return c3y; +} + +/* _n_hilt_hind(): literal (atomic) dynamic hint, after formula evaluation. +** tok: token from _n_hilt_fore(). TRANSFER +** pro: product of formula evaluation. RETAIN +*/ +static void +_n_hilt_hind(u3_noun tok, u3_noun pro) +{ + u3_noun p_tok, q_tok; + if ( (c3y == u3r_cell(tok, &p_tok, &q_tok)) && (c3__bout == p_tok) ) { + u3_atom delta = u3ka_sub(u3i_chub(u3t_trace_time()), u3k(q_tok)); + c3_c str_c[64]; + u3a_print_time(str_c, "took", u3r_chub(0, delta)); + u3t_slog(u3nc(0, u3i_string(str_c))); + u3z(delta); + } + else { + u3_assert( u3_nul == tok ); + } + + u3z(tok); +} + +/* _n_hint_fore(): arbitrary dynamic hint, before formula evaluation +** hin: [hint-atom, formula]. TRANSFER +** bus: subject. RETAIN +** clu: product of the hint-formula. TRANSFER +** also, token for _n_hilt_hind(); convention: +** [hint-atom] or [hint-atom data], ~ if unused. +** +** any hints herein must be whitelisted in _n_burn(). +*/ +static c3_o +_n_hint_fore(u3_cell hin, u3_noun bus, u3_noun* clu) +{ + u3_noun tag, fol; + u3x_cell(hin, &tag, &fol); + + switch ( tag ) { + case c3__bout: { + u3_atom now = u3i_chub(u3t_trace_time()); + *clu = u3nt(u3k(tag), *clu, now); + } break; + + case c3__nara: { + u3_noun pri, tan; + if ( c3y == u3r_cell(*clu, &pri, &tan) ) { + c3_l pri_l = c3y == u3a_is_cat(pri) ? pri : 0; + u3t_slog_cap(pri_l, u3i_string("trace of"), u3k(tan)); + u3t_slog_nara(pri_l); + } + u3z(*clu); + *clu = u3_nul; + } break; + + case c3__hela: { + u3_noun pri, tan; + if ( c3y == u3r_cell(*clu, &pri, &tan) ) { + c3_l pri_l = c3y == u3a_is_cat(pri) ? pri : 0; + u3t_slog_cap(pri_l, u3i_string("trace of"), u3k(tan)); + u3t_slog_hela(pri_l); + } + u3z(*clu); + *clu = u3_nul; + } break; + + case c3__xray : { + u3_noun pri, tan; + if ( c3y == u3r_cell(*clu, &pri, &tan) ) { + c3_l pri_l = c3y == u3a_is_cat(pri) ? pri : 0; + u3t_slog_cap(pri_l, u3k(tan), _cn_etch_bytecode(fol)); + } + u3z(*clu); + *clu = u3_nul; + } break; + + case c3__meme : { + u3_noun pri, tan; + if ( c3y == u3r_cell(*clu, &pri, &tan) ) { + c3_l mod_l = c3y == u3a_is_cat(pri) ? pri : 0; + // replace with better str fmt + u3t_slog_cap(1, u3k(tan), u3t_etch_meme(mod_l)); + } + u3z(*clu); + *clu = u3_nul; + } break; + + default: { + u3z(*clu); + *clu = u3_nul; + } break; + } + + u3z(hin); + return c3y; +} + +/* _n_hint_hind(): arbitrary dynamic hint, after formula evaluation. +** tok: token from _n_hint_fore(). TRANSFER +** pro: product of formula evaluation. RETAIN +*/ +static void +_n_hint_hind(u3_noun tok, u3_noun pro) +{ + u3_noun p_tok, q_tok, r_tok; + if ( (c3y == u3r_trel(tok, &p_tok, &q_tok, &r_tok)) && (c3__bout == p_tok) ) { + // get the microseconds elapsed + u3_atom delta = u3ka_sub(u3i_chub(u3t_trace_time()), u3k(r_tok)); + + // unpack q_tok to get the priority integer and the tank + // p_q_tok is the priority, q_q_tok is the tank we will work with + u3_noun p_q_tok, q_q_tok; + u3_assert(c3y == u3r_cell(q_tok, &p_q_tok, &q_q_tok)); + + // format the timing report + c3_c str_c[64]; + u3a_print_time(str_c, "took", u3r_chub(0, delta)); + + // join the timing report with the original tank from q_q_tok like so: + // "q_q_tok: report" + // prepend the priority to form a cell of the same shape q_tok + // send this to ut3_slog so that it can be logged out + c3_l pri_l = c3y == u3a_is_cat(p_q_tok) ? p_q_tok : 0; + u3t_slog_cap(pri_l, u3k(q_q_tok), u3i_string(str_c)); + u3z(delta); + } + else { + u3_assert( u3_nul == tok ); + } + + u3z(tok); +} + +/* _n_kick(): stop tracing noc and kick a u3j_site. + */ +static u3_weak +_n_kick(u3_noun cor, u3j_site* sit_u) +{ + u3_weak pro; + u3t_off(noc_o); + pro = u3j_site_kick(cor, sit_u); + u3t_on(noc_o); + return pro; +} + +/* _n_kale(): bail(exit) if not cell + */ +static inline u3_noun +_n_kale(u3_noun a) +{ + if ( c3n == u3du(a) ) { + u3m_bail(c3__exit); + } + return a; +} + +typedef struct __attribute__((__packed__)) { + u3n_prog* pog_u; + c3_w ip_w; +} burnframe; + +/* _n_burn(): pog: program + * bus: subject (TRANSFER) + * mov: -1 north, 1 south + * off: 0 north, -1 south + */ +static u3_noun +_n_burn(u3n_prog* pog_u, u3_noun bus, c3_ys mov, c3_ys off) +{ + + // Opcode jump table. Define X to select the opcode computed goto from + // OPCODES. +# define X(opcode, name, indirect_jump) indirect_jump + static void* lab[] = { OPCODES }; +# undef X + + u3j_site* sit_u; + u3j_rite* rit_u; + u3n_memo* mem_u; + c3_y *pog = pog_u->byc_u.ops_y; + c3_w sip_w, ip_w = 0; + u3_noun* top; + u3_noun x, o; + u3p(void) empty; + burnframe* fam; + + empty = u3R->cap_p; + _n_push(mov, off, bus); + +#ifdef U3_CPU_DEBUG + u3R->pro.nox_d += 1; +#endif +#ifdef VERBOSE_BYTECODE + #define BURN() fprintf(stderr, "%s ", opcode_names[pog[ip_w]]); goto *lab[pog[ip_w++]] +#else + #define BURN() goto *lab[pog[ip_w++]] +#endif + BURN(); + { + do_halt: // [product ...burnframes...] + x = _n_pep(mov, off); +#ifdef VERBOSE_BYTECODE + fprintf(stderr, "return\r\n"); +#endif + if ( empty == u3R->cap_p ) { + return x; + } + else { + fam = u3to(burnframe, u3R->cap_p) + off; + pog_u = fam->pog_u; + pog = pog_u->byc_u.ops_y; + ip_w = fam->ip_w; + + u3R->cap_p = u3of(burnframe, fam - (mov+off)); + _n_push(mov, off, x); +#ifdef VERBOSE_BYTECODE + _n_print_byc(pog, ip_w); +#endif + BURN(); + } + + do_bail: + u3m_bail(c3__exit); + return u3_none; + + do_copy: + top = _n_peek(off); + _n_push(mov, off, u3k(*top)); + BURN(); + + do_swap: + _n_swap(mov, off); + BURN(); + + do_toss: + _n_toss(mov, off); + BURN(); + + do_auto: // [tel bus hed] + x = _n_pep(mov, off); // [bus hed] + top = _n_swap(mov, off); // [hed bus] + *top = u3nc(*top, x); // [pro bus] + BURN(); + + do_ault: // [tel bus hed] + x = _n_pep(mov, off); // [bus hed] + _n_toss(mov, off); // [hed] + top = _n_peek(off); + *top = u3nc(*top, x); // [pro] + BURN(); + + do_snoc: // [hed tel] + x = _n_pep(mov, off); + top = _n_peek(off); + _n_push(mov, off, u3nc(x, u3k(*top))); + BURN(); + + do_snol: + x = _n_pep(mov, off); + top = _n_peek(off); + *top = u3nc(x, *top); + BURN(); + + do_head: + top = _n_peek(off); + _n_push(mov, off, u3k(u3h(_n_kale(*top)))); + BURN(); + + do_held: + top = _n_peek(off); + o = _n_kale(*top); + *top = u3k(u3h(o)); + u3z(o); + BURN(); + + do_tail: + top = _n_peek(off); + _n_push(mov, off, u3k(u3t(_n_kale(*top)))); + BURN(); + + do_tall: + top = _n_peek(off); + o = _n_kale(*top); + *top = u3k(u3t(o)); + u3z(o); + BURN(); + + do_fisk: + x = pog_u->lit_u.non[_n_resh(pog, &ip_w)]; + goto frag_in; + + do_fibk: + x = pog_u->lit_u.non[pog[ip_w++]]; + goto frag_in; + + do_fask: + x = _n_resh(pog, &ip_w); + goto frag_in; + + do_fabk: + x = pog[ip_w++]; + frag_in: + top = _n_peek(off); + _n_push(mov, off, u3k(u3x_at(x, *top))); + BURN(); + + do_fisl: + x = pog_u->lit_u.non[_n_resh(pog, &ip_w)]; + goto flag_in; + + do_fibl: + x = pog_u->lit_u.non[pog[ip_w++]]; + goto flag_in; + + do_fasl: + x = _n_resh(pog, &ip_w); + goto flag_in; + + do_fabl: + x = pog[ip_w++]; + flag_in: + top = _n_peek(off); + o = *top; + *top = u3k(u3x_at(x, o)); + u3z(o); + BURN(); + + do_lit0: + _n_push(mov, off, 0); + BURN(); + + do_lit1: + _n_push(mov, off, 1); + BURN(); + + do_litb: + _n_push(mov, off, pog[ip_w++]); + BURN(); + + do_lits: + _n_push(mov, off, _n_resh(pog, &ip_w)); + BURN(); + + do_libk: + _n_push(mov, off, u3k(pog_u->lit_u.non[pog[ip_w++]])); + BURN(); + + do_lisk: + _n_push(mov, off, u3k(pog_u->lit_u.non[_n_resh(pog, &ip_w)])); + BURN(); + + do_lil1: + x = 1; + goto lil_in; + + do_lilb: + x = pog[ip_w++]; + goto lil_in; + + do_lils: + x = _n_resh(pog, &ip_w); + goto lil_in; + + do_libl: + x = u3k(pog_u->lit_u.non[pog[ip_w++]]); + goto lil_in; + + do_lisl: + x = u3k(pog_u->lit_u.non[_n_resh(pog, &ip_w)]); + goto lil_in; + + do_lil0: + x = 0; + lil_in: + top = _n_peek(off); + u3z(*top); + *top = x; + BURN(); + + do_noct: // [fol old bus] + o = _n_pep(mov, off); // [old bus] + _n_toss(mov, off); // [bus] + goto nock_out; + + do_nolk: // [fol old bus] + o = _n_pep(mov, off); // [old bus] + _n_toss(mov, off); // [bus] + goto nock_in; + + do_nock: // [fol old bus] + o = _n_pep(mov, off); // [old bus] + _n_swap(mov, off); // [bus old] + nock_in: + x = _n_pep(mov, off); + fam = u3to(burnframe, u3R->cap_p) + off + mov; + u3R->cap_p = u3of(burnframe, fam - off); + fam->ip_w = ip_w; + fam->pog_u = pog_u; + _n_push(mov, off, x); + nock_out: + pog_u = _n_find(u3_nul, o); + pog = pog_u->byc_u.ops_y; + ip_w = 0; +#ifdef U3_CPU_DEBUG + u3R->pro.nox_d += 1; +#endif +#ifdef VERBOSE_BYTECODE + fprintf(stderr, "\r\nnock jump: %u\r\n", o); + _n_print_byc(pog, ip_w); +#endif + u3z(o); + BURN(); + + do_deep: + top = _n_peek(off); + o = *top; + *top = u3du(o); + u3z(o); + BURN(); + + do_bump: + top = _n_peek(off); + *top = u3i_vint(*top); + BURN(); + + do_sam0: + top = _n_peek(off); + if ( *top == 0 ) { + *top = c3y; + } + else { + u3z(*top); + *top = c3n; + } + BURN(); + + do_sam1: + top = _n_peek(off); + if ( *top == 1 ) { + *top = c3y; + } + else { + u3z(*top); + *top = c3n; + } + BURN(); + + do_samb: + top = _n_peek(off); + if ( *top == pog[ip_w++] ) { + *top = c3y; + } + else { + u3z(*top); + *top = c3n; + } + BURN(); + + do_sams: + top = _n_peek(off); + if ( *top == _n_resh(pog, &ip_w) ) { + *top = c3y; + } + else { + u3z(*top); + *top = c3n; + } + BURN(); + + do_sans: + x = pog_u->lit_u.non[_n_resh(pog, &ip_w)]; + goto samn_in; + do_sanb: + x = pog_u->lit_u.non[pog[ip_w++]]; + samn_in: + top = _n_peek(off); + o = *top; + *top = u3r_sing(o, x); + u3z(o); + BURN(); + + do_same: + x = _n_pep(mov, off); + _n_swap(mov, off); + goto same_in; + + do_salm: + x = _n_pep(mov, off); + _n_toss(mov, off); + goto same_in; + + same_in: + top = _n_peek(off); + o = *top; + *top = u3r_sing(x, o); + u3z(o); + u3z(x); + BURN(); + + do_samc: + top = _n_peek(off); + o = *top; + *top = u3r_sing(u3h(o), u3t(o)); + u3z(o); + BURN(); + + do_sbip: + sip_w = pog[ip_w++]; + ip_w += sip_w; + BURN(); + + do_sips: + sip_w = _n_resh(pog, &ip_w); + ip_w += sip_w; + BURN(); + + do_swip: + sip_w = _n_rewo(pog, &ip_w); + ip_w += sip_w; + BURN(); + + do_swin: + sip_w = _n_rewo(pog, &ip_w); + goto skin_in; + + do_sins: + sip_w = _n_resh(pog, &ip_w); + goto skin_in; + + do_sbin: + sip_w = pog[ip_w++]; + skin_in: + x = _n_pep(mov, off); + if ( c3n == x ) { + ip_w += sip_w; + } + else if ( c3y != x ) { + u3m_bail(c3__exit); + return u3_none; + } + BURN(); + + do_kics: + x = _n_resh(pog, &ip_w); + goto kick_in; + + do_kicb: + x = pog[ip_w++]; + kick_in: + sit_u = &(pog_u->cal_u.sit_u[x]); + top = _n_peek(off); + o = *top; + *top = _n_kick(o, sit_u); + if ( u3_none == *top ) { + _n_pop(mov); + + fam = u3to(burnframe, u3R->cap_p) + off + mov; + u3R->cap_p = u3of(burnframe, fam - off); + fam->ip_w = ip_w; + fam->pog_u = pog_u; + + pog_u = u3to(u3n_prog, sit_u->pog_p); + pog = pog_u->byc_u.ops_y; + ip_w = 0; +#ifdef U3_CPU_DEBUG + u3R->pro.nox_d += 1; +#endif +#ifdef VERBOSE_BYTECODE + fprintf(stderr, "\r\nhead kick jump: %u, sp: %p\r\n", u3r_at(sit_u->axe, cor), top); + _n_print_byc(pog, ip_w); +#endif + _n_push(mov, off, o); + } +#ifdef VERBOSE_BYTECODE + else { + fprintf(stderr, "head jet\r\n"); + } +#endif + BURN(); + + do_tics: + x = _n_resh(pog, &ip_w); + goto tick_in; + + do_ticb: + x = pog[ip_w++]; + tick_in: + sit_u = &(pog_u->cal_u.sit_u[x]); + top = _n_peek(off); + o = *top; + *top = _n_kick(o, sit_u); + if ( u3_none == *top ) { + *top = o; + pog_u = u3to(u3n_prog, sit_u->pog_p); + pog = pog_u->byc_u.ops_y; + ip_w = 0; +#ifdef U3_CPU_DEBUG + u3R->pro.nox_d += 1; +#endif +#ifdef VERBOSE_BYTECODE + fprintf(stderr, "\r\ntail kick jump: %u, sp: %p\r\n", u3x_at(sit_u->axe, o);, top); + _n_print_byc(pog, ip_w); +#endif + } +#ifdef VERBOSE_BYTECODE + else { + fprintf(stderr, "tail jet\r\n"); + } +#endif + BURN(); + + do_wils: // [gof bus ref] + o = _n_pep(mov,off); // [bus ref] + _n_toss(mov, off); // [ref] + top = _n_peek(off); + goto wish_in; + + do_wish: // [gof bus ref] + o = _n_pep(mov,off); // [bus ref] + top = _n_swap(mov, off); // [ref bus] + wish_in: + u3t_off(noc_o); + x = u3m_soft_esc(u3k(*top), u3k(o)); + u3t_on(noc_o); + + if ( c3n == u3du(x) ) { + u3m_bail(u3nc(1, o)); + return u3_none; + } + else if ( c3n == u3du(u3t(x)) ) { + u3t_push(u3nt(c3__hunk, *top, o)); + u3m_bail(c3__exit); + return u3_none; + } + else { + u3z(o); + u3z(*top); + *top = u3k(u3t(u3t(x))); + u3z(x); + BURN(); + } + + do_sush: + x = _n_resh(pog, &ip_w); + goto cush_in; + + do_bush: + x = pog[ip_w++]; + cush_in: + x = u3k(pog_u->lit_u.non[x]); + o = _n_pep(mov, off); + u3t_push(u3nc(x, o)); + BURN(); + + do_drop: + u3t_drop(); + BURN(); + + do_heck: + x = _n_pep(mov, off); + if ( c3y == u3ud(x) ) { + u3t_off(noc_o); + u3t_heck(x); + u3t_on(noc_o); + } + else { + u3z(x); + } + BURN(); + + do_slog: + x = _n_pep(mov, off); + if ( !(u3C.wag_w & u3o_quiet) ) { + u3t_off(noc_o); + u3t_slog(x); + u3t_on(noc_o); + } + else { + u3z(x); + } + BURN(); + + + do_sast: + x = _n_resh(pog, &ip_w); + goto fast_in; + + do_bast: + x = pog[ip_w++]; + goto fast_in; + + do_salt: + x = _n_resh(pog, &ip_w); + goto falt_in; + do_balt: + x = pog[ip_w++]; + falt_in: // [pro bus clu] + o = _n_pep(mov, off); // [bus clu] + _n_toss(mov, off); // [clu] + top = _n_peek(off); + goto fast_out; + + fast_in: // [pro bus clu] + o = _n_pep(mov, off); // [bus clu] + top = _n_swap(mov, off); // [clu bus] + fast_out: + rit_u = &(pog_u->reg_u.rit_u[x]); + u3t_off(noc_o); + u3j_rite_mine(rit_u, *top, u3k(o)); + u3t_on(noc_o); + *top = o; + BURN(); + + do_skis: + x = _n_resh(pog, &ip_w); + goto skim_in; + + do_skib: + x = pog[ip_w++]; + skim_in: + mem_u = &(pog_u->mem_u.sot_u[x]); + top = _n_peek(off); + x = u3k(*top); + goto skim_out; + + do_slis: + x = _n_resh(pog, &ip_w); + goto slim_in; + + do_slib: + x = pog[ip_w++]; + slim_in: + mem_u = &(pog_u->mem_u.sot_u[x]); + x = _n_pep(mov, off); + skim_out: + o = u3k(mem_u->key); + x = u3nc(x, o); + o = u3z_find_m(mem_u->cid, 144 + c3__nock, x); + if ( u3_none == o ) { + _n_push(mov, off, u3nc(mem_u->cid, x)); + _n_push(mov, off, u3k(u3h(x))); + } + else { + ip_w += mem_u->sip_l; + _n_push(mov, off, o); + u3z(x); + } + BURN(); + + do_save: + x = _n_pep(mov, off); // product + top = _n_peek(off); + o = *top; + if ( ( u3z_memo_toss == u3h(o) ) + ? ( &(u3H->rod_u) != u3R ) + : ( 0 == u3R->ski.gul ) ) { // prevents userspace from persistence + u3z_save_m(u3h(o), 144 + c3__nock, u3t(o), x); + } + else if ( u3z_memo_keep == u3h(o) ) { + fprintf(stderr, "\r\nnock: userspace can't save to persistent cache\r\n"); + } + *top = x; + u3z(o); + BURN(); + + do_hilb: + x = pog[ip_w++]; + goto hilt_fore_in; + + do_hils: + x = _n_resh(pog, &ip_w); + hilt_fore_in: + x = u3k(pog_u->lit_u.non[x]); + top = _n_peek(off); // bus + x = _n_hilt_fore(x, *top, &o); + _n_push(mov, off, o); + _n_swap(mov, off); // bus + _n_push(mov, off, x); // shortcircuit if c3n + BURN(); + + do_hinb: + x = pog[ip_w++]; + goto hint_fore_in; + + do_hins: + x = _n_resh(pog, &ip_w); + hint_fore_in: // [clu bus] + x = u3k(pog_u->lit_u.non[x]); + o = _n_pep(mov, off); // [bus] + top = _n_peek(off); + x = _n_hint_fore(x, *top, &o); + _n_push(mov, off, o); // [tok bus] + _n_swap(mov, off); // [bus tok] + _n_push(mov, off, x); // [kip bus tok] + BURN(); + + do_hilk: // [pro bus tok] + x = _n_pep(mov, off); // [bus tok] + _n_swap(mov, off); // [tok bus] + o = _n_pep(mov, off); // [bus] + _n_push(mov, off, x); // [pro bus] + _n_hilt_hind(o, x); + BURN(); + + do_hill: // [pro tok] + top = _n_swap(mov, off); // [tok pro] + o = _n_pep(mov, off); // [pro] + top = _n_peek(off); + _n_hilt_hind(o, *top); + BURN(); + + do_hink: // [pro bus tok] + x = _n_pep(mov, off); // [bus tok] + _n_swap(mov, off); // [tok bus] + o = _n_pep(mov, off); // [bus] + _n_push(mov, off, x); // [pro bus] + _n_hint_hind(o, x); + BURN(); + + do_hinl: // [pro tok] + top = _n_swap(mov, off); // [tok pro] + o = _n_pep(mov, off); // [pro] + top = _n_peek(off); + _n_hint_hind(o, *top); + BURN(); + + do_kuth: + x = _n_pep(mov, off); + top = _n_swap(mov, off); + goto muth_in; + do_muth: + x = _n_pep(mov, off); + _n_toss(mov, off); + top = _n_peek(off); + muth_in: + o = *top; + *top = u3nc(x, u3k(u3t(o))); + u3z(o); + BURN(); + + do_kutt: + x = _n_pep(mov, off); + top = _n_swap(mov, off); + goto mutt_in; + do_mutt: + x = _n_pep(mov, off); + _n_toss(mov, off); + top = _n_peek(off); + mutt_in: + o = *top; + *top = u3nc(u3k(u3h(o)), x); + u3z(o); + BURN(); + + do_kusm: + x = _n_pep(mov, off); + top = _n_swap(mov, off); + goto musm_in; + do_musm: + x = _n_pep(mov, off); + _n_toss(mov, off); + top = _n_peek(off); + musm_in: + o = *top; + *top = u3nt(u3k(u3h(o)), x, u3k(u3t(u3t(o)))); + u3z(o); + BURN(); + + do_kitb: + x = pog_u->lit_u.non[pog[ip_w++]]; + goto kut_in; + + do_kits: + x = pog_u->lit_u.non[_n_resh(pog, &ip_w)]; + goto kut_in; + + do_kuts: + x = _n_resh(pog, &ip_w); + goto kut_in; + + do_kutb: + x = pog[ip_w++]; + kut_in: + o = _n_pep(mov, off); + top = _n_swap(mov, off); + goto edit_in; + + do_mitb: + x = pog_u->lit_u.non[pog[ip_w++]]; + goto mut_in; + + do_mits: + x = pog_u->lit_u.non[_n_resh(pog, &ip_w)]; + goto mut_in; + + do_muts: + x = _n_resh(pog, &ip_w); + goto mut_in; + + do_mutb: + x = pog[ip_w++]; + mut_in: + o = _n_pep(mov, off); + _n_toss(mov, off); + top = _n_peek(off); + edit_in: + *top = u3i_edit(*top, x, o); + BURN(); + } +} + +/* _n_burn_out(): execute u3n_prog with bus as subject. + */ +static u3_noun +_n_burn_out(u3_noun bus, u3n_prog* pog_u) +{ + c3_ys mov, off; + if ( c3y == u3a_is_north(u3R) ) { + mov = -1; + off = 0; + } + else { + mov = 1; + off = -1; + } + return _n_burn(pog_u, bus, mov, off); +} + +/* u3n_burn(): execute u3n_prog with bus as subject. + */ +u3_noun +u3n_burn(u3p(u3n_prog) pog_p, u3_noun bus) +{ + u3_noun pro; + u3t_on(noc_o); + pro = _n_burn_out(bus, u3to(u3n_prog, pog_p)); + u3t_off(noc_o); + return pro; +} + +/* _n_burn_on(): produce .*(bus fol) with bytecode interpreter + */ +static u3_noun +_n_burn_on(u3_noun bus, u3_noun fol) +{ + u3n_prog* pog_u = _n_find(u3_nul, fol); + + u3z(fol); + return _n_burn_out(bus, pog_u); +} + +/* u3n_nock_on(): produce .*(bus fol). Do not virtualize. +*/ +u3_noun +u3n_nock_on(u3_noun bus, u3_noun fol) +{ + u3_noun pro; + + u3t_on(noc_o); +#if 0 + pro = _n_nock_on(bus, fol); +#else + pro = _n_burn_on(bus, fol); +#endif + u3t_off(noc_o); + + return pro; +} + +/* _cn_take_prog_dat(): take references from junior u3n_prog. +*/ +static void +_cn_take_prog_dat(u3n_prog* dst_u, u3n_prog* src_u) +{ + c3_w i_w; + + for ( i_w = 0; i_w < src_u->lit_u.len_w; ++i_w ) { + dst_u->lit_u.non[i_w] = u3a_take(src_u->lit_u.non[i_w]); + } + + for ( i_w = 0; i_w < src_u->mem_u.len_w; ++i_w ) { + u3n_memo* emo_u = &(src_u->mem_u.sot_u[i_w]); + u3n_memo* ome_u = &(dst_u->mem_u.sot_u[i_w]); + ome_u->sip_l = emo_u->sip_l; + ome_u->key = u3a_take(emo_u->key); + ome_u->cid = emo_u->cid; + } + + for ( i_w = 0; i_w < src_u->cal_u.len_w; ++i_w ) { + u3j_site_take(&(dst_u->cal_u.sit_u[i_w]), + &(src_u->cal_u.sit_u[i_w])); + } + + for ( i_w = 0; i_w < src_u->reg_u.len_w; ++i_w ) { + u3j_rite_take(&(dst_u->reg_u.rit_u[i_w]), + &(src_u->reg_u.rit_u[i_w])); + } +} + +/* _cn_take_prog_cb(): u3h_take_with cb for taking junior u3n_prog's. +*/ +static u3p(u3n_prog) +_cn_take_prog_cb(u3p(u3n_prog) pog_p) +{ + u3n_prog* pog_u = u3to(u3n_prog, pog_p); + u3n_prog* gop_u; + + if ( c3y == pog_u->byc_u.own_o ) { + c3_w pad_w = (8 - pog_u->byc_u.len_w % 8) % 8; + gop_u = _n_prog_new(pog_u->byc_u.len_w, + pog_u->cal_u.len_w, + pog_u->reg_u.len_w, + pog_u->lit_u.len_w, + pog_u->mem_u.len_w); + memcpy(gop_u->byc_u.ops_y, pog_u->byc_u.ops_y, pog_u->byc_u.len_w + pad_w); + } + else { + gop_u = _n_prog_old(pog_u); + } + + _cn_take_prog_dat(gop_u, pog_u); + // _n_prog_take_dat(gop_u, pog_u, c3n); + + return u3of(u3n_prog, gop_u); +} + +/* u3n_take(): copy junior bytecode state. +*/ +u3p(u3h_root) +u3n_take(u3p(u3h_root) har_p) +{ + return u3h_take_with(har_p, _cn_take_prog_cb); +} + +/* _cn_merge_prog_dat(): copy references from src_u u3n_prog to dst_u. +*/ +static void +_cn_merge_prog_dat(u3n_prog* dst_u, u3n_prog* src_u) +{ + c3_w i_w; + + for ( i_w = 0; i_w < src_u->lit_u.len_w; ++i_w ) { + u3z(dst_u->lit_u.non[i_w]); + dst_u->lit_u.non[i_w] = src_u->lit_u.non[i_w]; + } + + for ( i_w = 0; i_w < src_u->mem_u.len_w; ++i_w ) { + u3n_memo* emo_u = &(dst_u->mem_u.sot_u[i_w]); + u3n_memo* ome_u = &(src_u->mem_u.sot_u[i_w]); + u3z(emo_u->key); + emo_u->sip_l = ome_u->sip_l; + emo_u->key = ome_u->key; + emo_u->cid = ome_u->cid; + } + + for ( i_w = 0; i_w < src_u->cal_u.len_w; ++i_w ) { + u3j_site_merge(&(dst_u->cal_u.sit_u[i_w]), + &(src_u->cal_u.sit_u[i_w])); + } + + for ( i_w = 0; i_w < src_u->reg_u.len_w; ++i_w ) { + u3j_rite_merge(&(dst_u->reg_u.rit_u[i_w]), + &(src_u->reg_u.rit_u[i_w])); + } +} + +/* _cn_merge_prog_cb(): u3h_walk_with cb for integrating taken u3n_prog's. +*/ +static void +_cn_merge_prog_cb(u3_noun kev, void* wit) +{ + u3p(u3h_root) har_p = *(u3p(u3h_root)*)wit; + u3n_prog* pog_u; + u3_weak got; + u3_noun key; + u3p(u3n_prog) pog_p; + u3x_cell(kev, &key, &pog_p); + + pog_u = u3to(u3n_prog, pog_p); + got = u3h_git(har_p, key); + + if ( u3_none != got ) { + u3n_prog* sep_u = u3to(u3n_prog, got); + _cn_merge_prog_dat(sep_u, pog_u); + u3a_free(pog_u); + pog_u = sep_u; + } + + u3h_put(har_p, key, u3of(u3n_prog, pog_u)); +} + +/* u3n_reap(): promote bytecode state. +*/ +void +u3n_reap(u3p(u3h_root) har_p) +{ + u3h_walk_with(har_p, _cn_merge_prog_cb, &u3R->byc.har_p); + // NB *not* u3n_free, _cn_merge_prog_cb() transfers u3n_prog's + u3h_free(har_p); +} + +/* _n_ream(): ream program call sites +*/ +void +_n_ream(u3_noun kev) +{ + c3_w i_w; + u3n_prog* pog_u = u3to(u3n_prog, u3t(kev)); + + c3_w pad_w = (8 - pog_u->byc_u.len_w % 8) % 8; + c3_w pod_w = pog_u->lit_u.len_w % 2; + c3_w ped_w = pog_u->mem_u.len_w % 2; + // fix up pointers for loom portability + pog_u->byc_u.ops_y = (c3_y*) _n_prog_dat(pog_u); + pog_u->lit_u.non = (u3_noun*) (pog_u->byc_u.ops_y + pog_u->byc_u.len_w + pad_w); + pog_u->mem_u.sot_u = (u3n_memo*) (pog_u->lit_u.non + pog_u->lit_u.len_w + pod_w); + pog_u->cal_u.sit_u = (u3j_site*) (pog_u->mem_u.sot_u + pog_u->mem_u.len_w + ped_w); + pog_u->reg_u.rit_u = (u3j_rite*) (pog_u->cal_u.sit_u + pog_u->cal_u.len_w); + + for ( i_w = 0; i_w < pog_u->cal_u.len_w; ++i_w ) { + u3j_site_ream(&(pog_u->cal_u.sit_u[i_w])); + } +} + +/* u3n_ream(): refresh after restoring from checkpoint. +*/ +void +u3n_ream() +{ + u3_assert(u3R == &(u3H->rod_u)); + u3h_walk(u3R->byc.har_p, _n_ream); +} + +/* _n_prog_mark(): mark program for gc. +*/ +static c3_w +_n_prog_mark(u3n_prog* pog_u) +{ + c3_w i_w, tot_w = u3a_mark_mptr(pog_u); + + for ( i_w = 0; i_w < pog_u->lit_u.len_w; ++i_w ) { + tot_w += u3a_mark_noun(pog_u->lit_u.non[i_w]); + } + + for ( i_w = 0; i_w < pog_u->mem_u.len_w; ++i_w ) { + tot_w += u3a_mark_noun(pog_u->mem_u.sot_u[i_w].key); + } + + for ( i_w = 0; i_w < pog_u->cal_u.len_w; ++i_w ) { + tot_w += u3j_site_mark(&(pog_u->cal_u.sit_u[i_w])); + } + + for ( i_w = 0; i_w < pog_u->reg_u.len_w; ++i_w ) { + tot_w += u3j_rite_mark(&(pog_u->reg_u.rit_u[i_w])); + } + + return tot_w; +} + +/* _n_bam(): u3h_walk_with helper for u3n_mark + */ +static void +_n_bam(u3_noun kev, void* dat) +{ + c3_w* bam_w = dat; + u3n_prog* pog = u3to(u3n_prog, u3t(kev)); + *bam_w += _n_prog_mark(pog); +} + +/* u3n_mark(): mark the bytecode cache for gc. + */ +u3m_quac* +u3n_mark() +{ + u3m_quac** qua_u = c3_malloc(sizeof(*qua_u) * 3); + + qua_u[0] = c3_calloc(sizeof(*qua_u[0])); + qua_u[0]->nam_c = strdup("bytecode programs"); + + u3p(u3h_root) har_p = u3R->byc.har_p; + u3h_walk_with(har_p, _n_bam, &qua_u[0]->siz_w); + qua_u[0]->siz_w = qua_u[0]->siz_w * 4; + + qua_u[1] = c3_calloc(sizeof(*qua_u[1])); + qua_u[1]->nam_c = strdup("bytecode cache"); + qua_u[1]->siz_w = u3h_mark(har_p) * 4; + + qua_u[2] = NULL; + + u3m_quac* tot_u = c3_malloc(sizeof(*tot_u)); + tot_u->nam_c = strdup("total nock stuff"); + tot_u->siz_w = qua_u[0]->siz_w + qua_u[1]->siz_w; + tot_u->qua_u = qua_u; + + return tot_u; +} + +/* u3n_reclaim(): clear ad-hoc persistent caches to reclaim memory. +*/ +void +u3n_reclaim(void) +{ + // clear the bytecode cache + // + // We can't just u3h_free() -- the value is a post to a u3n_prog. + // Note that the hank cache *must* also be freed (in u3j_reclaim()) + // + u3n_free(); + u3R->byc.har_p = u3h_new(); +} + +/* u3n_rewrite_compact(): rewrite the bytecode cache for compaction. + * + * NB: u3R->byc.har_p *must* be cleared (currently via u3n_reclaim above), + * since it contains things that look like nouns but aren't. + * Specifically, it contains "cells" where the tail is a + * pointer to a u3a_malloc'ed block that contains loom pointers. + * + * You should be able to walk this with u3h_walk and rewrite the + * pointers, but you need to be careful to handle that u3a_malloc + * pointers can't be turned into a box by stepping back two words. You + * must step back one word to get the padding, step then step back that + * many more words (plus one?). + */ +void +u3n_rewrite_compact() +{ + u3h_rewrite(u3R->byc.har_p); + u3R->byc.har_p = u3a_rewritten(u3R->byc.har_p); +} + + +/* _n_feb(): u3h_walk helper for u3n_free + */ +static void +_n_feb(u3_noun kev) +{ + _cn_prog_free(u3to(u3n_prog, u3t(kev))); +} + +/* u3n_free(): free bytecode cache + */ +void +u3n_free() +{ + u3p(u3h_root) har_p = u3R->byc.har_p; + u3h_walk(har_p, _n_feb); + u3h_free(har_p); +} + +/* u3n_kick_on(): fire `gat` without changing the sample. +*/ +u3_noun +u3n_kick_on(u3_noun gat) +{ + return u3j_kink(gat, 2); +} + +c3_w exc_w; + +/* u3n_slam_on(): produce (gat sam). +*/ +u3_noun +u3n_slam_on(u3_noun gat, u3_noun sam) +{ + u3_noun cor = u3nc(u3k(u3h(gat)), u3nc(sam, u3k(u3t(u3t(gat))))); + +#if 0 + if ( &u3H->rod_u == u3R ) { + if ( exc_w == 1 ) { + u3_assert(0); + } + exc_w++; + } +#endif + u3z(gat); + return u3n_kick_on(cor); +} + +/* u3n_nock_et(): produce .*(bus fol), as ++toon, in namespace. +*/ +u3_noun +u3n_nock_et(u3_noun gul, u3_noun bus, u3_noun fol) +{ + return u3m_soft_run(gul, u3n_nock_on, bus, fol); +} + +/* u3n_slam_et(): produce (gat sam), as ++toon, in namespace. +*/ +u3_noun +u3n_slam_et(u3_noun gul, u3_noun gat, u3_noun sam) +{ + return u3m_soft_run(gul, u3n_slam_on, gat, sam); +} + +/* u3n_nock_an(): as slam_in(), but with empty fly. +*/ +u3_noun +u3n_nock_an(u3_noun bus, u3_noun fol) +{ + u3_noun gul = u3nt(u3nt(1, 0, 0), 0, 0); // |=(a/{* *} ~) + + return u3n_nock_et(gul, bus, fol); +} diff --git a/vere/pkg/noun/nock.h b/vere/pkg/noun/nock.h new file mode 100644 index 0000000..5c34515 --- /dev/null +++ b/vere/pkg/noun/nock.h @@ -0,0 +1,149 @@ +/// @file + +#ifndef U3_NOCK_H +#define U3_NOCK_H + +#include + +#include "c3/c3.h" +#include "jets.h" +#include "types.h" +#include "zave.h" + + /** Data structures. + *** + **/ + + /* u3n_memo: %memo hint space + */ + typedef struct { + c3_l sip_l; + u3_noun key; + u3z_cid cid; + } u3n_memo; + + /* u3n_prog: program compiled from nock + */ + typedef struct _u3n_prog { + struct { + c3_o own_o; // program owns ops_y? + c3_w len_w; // length of bytecode (bytes) + c3_y* ops_y; // actual array of bytes + } byc_u; // bytecode + struct { + c3_w len_w; // number of literals + u3_noun* non; // array of literals + } lit_u; // literals + struct { + c3_w len_w; // number of memo slots + u3n_memo* sot_u; // array of memo slots + } mem_u; // memo slot data + struct { + c3_w len_w; // number of calls sites + u3j_site* sit_u; // array of sites + } cal_u; // call site data + struct { + c3_w len_w; // number of registration sites + u3j_rite* rit_u; // array of sites + } reg_u; // registration site data + } u3n_prog; + + /** Functions. + **/ + /* u3n_nock_on(): produce .*(bus fol). + */ + u3_noun + u3n_nock_on(u3_noun bus, u3_noun fol); + + /* u3n_find(): return prog for given formula, + * split by key (u3_nul for none). RETAIN. + */ + u3p(u3n_prog) + u3n_find(u3_noun key, u3_noun fol); + + /* u3n_burn(): execute u3n_prog with bus as subject. + */ + u3_noun + u3n_burn(u3p(u3n_prog) pog_p, u3_noun bus); + + /* u3n_slam_on(): produce (gat sam). + */ + u3_noun + u3n_slam_on(u3_noun gat, u3_noun sam); + + /* u3n_kick_on(): fire `gat` without changing the sample. + */ + u3_noun + u3n_kick_on(u3_noun gat); + + /* u3n_nock_in(): produce .*(bus fol), as ++toon, in namespace. + */ + u3_noun + u3n_nock_in(u3_noun fly, u3_noun bus, u3_noun fol); + + /* u3n_nock_it(): produce .*(bus fol), as ++toon, in namespace. + */ + u3_noun + u3n_nock_it(u3_noun sea, u3_noun bus, u3_noun fol); + + /* u3n_nock_et(): produce .*(bus fol), as ++toon, in namespace. + */ + u3_noun + u3n_nock_et(u3_noun gul, u3_noun bus, u3_noun fol); + + /* u3n_slam_in(): produce (gat sam), as ++toon, in namespace. + */ + u3_noun + u3n_slam_in(u3_noun fly, u3_noun gat, u3_noun sam); + + /* u3n_slam_it(): produce (gat sam), as ++toon, in namespace. + */ + u3_noun + u3n_slam_it(u3_noun sea, u3_noun gat, u3_noun sam); + + /* u3n_slam_et(): produce (gat sam), as ++toon, in namespace. + */ + u3_noun + u3n_slam_it(u3_noun gul, u3_noun gat, u3_noun sam); + + /* u3n_nock_an(): as slam_in(), but with empty fly. + */ + u3_noun + u3n_nock_an(u3_noun bus, u3_noun fol); + + /* u3n_reap(): promote bytecode state. + */ + void + u3n_reap(u3p(u3h_root) har_p); + + /* u3n_take(): copy junior bytecode state. + */ + u3p(u3h_root) + u3n_take(u3p(u3h_root) har_p); + + /* u3n_mark(): mark bytecode cache. + */ + u3m_quac* + u3n_mark(); + + /* u3n_reclaim(): clear ad-hoc persistent caches to reclaim memory. + */ + void + u3n_reclaim(void); + + /* u3n_rewrite_compact(): rewrite bytecode cache for compaction. + */ + void + u3n_rewrite_compact(void); + + /* u3n_free(): free bytecode cache. + */ + void + u3n_free(void); + + /* u3n_ream(): refresh after restoring from checkpoint. + */ + void + u3n_ream(void); + +#endif /* ifndef U3_NOCK_H */ diff --git a/vere/pkg/noun/nock_tests.c b/vere/pkg/noun/nock_tests.c new file mode 100644 index 0000000..8d4a7d2 --- /dev/null +++ b/vere/pkg/noun/nock_tests.c @@ -0,0 +1,83 @@ +/// @file + +#include "noun.h" + +/* _setup(): prepare for tests. +*/ +static void +_setup(void) +{ + u3m_boot_lite(1 << 24); +} + +static u3_noun +_nock_fol(u3_noun fol) +{ + return u3n_nock_on(u3_nul, fol); +} + +static c3_i +_test_nock_meme(void) +{ + // (jam !=(=(~ =|(i=@ |-(?:(=(i ^~((bex 32))) ~ [i $(i +(i))])))))) + // + const c3_y buf_y[] = { + 0xe1, 0x16, 0x1b, 0x4, 0x1b, 0xe1, 0x20, 0x58, 0x1c, 0x76, 0x4d, 0x96, 0xd8, + 0x31, 0x60, 0x0, 0x0, 0x0, 0x0, 0xd8, 0x8, 0x37, 0xce, 0xd, 0x92, 0x21, + 0x83, 0x68, 0x61, 0x87, 0x39, 0xce, 0x4d, 0xe, 0x92, 0x21, 0x87, 0x19, 0x8 + }; + u3_noun fol = u3s_cue_bytes(sizeof(buf_y), buf_y); + u3_noun gon; + c3_w i_w; + c3_i ret_i = 1; + + for ( i_w = 0; i_w < 3; i_w++ ) { + gon = u3m_soft(0, _nock_fol, u3k(fol)); + + if ( c3n == u3r_p(gon, c3__meme, 0) ) { + u3m_p("nock meme unexpected mote", u3h(gon)); + ret_i = 0; + u3z(gon); + break; + } + + u3z(gon); + } + + u3z(fol); + + return ret_i; +} + +static c3_i +_test_meme(void) +{ + c3_i ret_i = 1; + + if ( !_test_nock_meme() ) { + fprintf(stderr, "test nock meme: failed\r\n"); + ret_i = 0; + } + + return ret_i; +} + +/* main(): run all test cases. +*/ +int +main(int argc, char* argv[]) +{ + _setup(); + + if ( !_test_meme() ) { + fprintf(stderr, "test meme: failed\r\n"); + exit(1); + } + + // GC + // + u3m_grab(u3_none); + + fprintf(stderr, "test meme: ok\r\n"); + return 0; +} diff --git a/vere/pkg/noun/noun.h b/vere/pkg/noun/noun.h new file mode 100644 index 0000000..965330a --- /dev/null +++ b/vere/pkg/noun/noun.h @@ -0,0 +1,26 @@ +/// @file + +#ifndef U3_NOUN_H +#define U3_NOUN_H + +#include "allocate.h" +#include "hashtable.h" +#include "error.h" +#include "jets.h" +#include "jets/k.h" +#include "jets/q.h" +#include "manage.h" +#include "options.h" +#include "serial.h" +#include "types.h" +#include "vortex.h" +#include "zave.h" +#include "imprison.h" +#include "log.h" +#include "nock.h" +#include "retrieve.h" +#include "trace.h" +#include "urth.h" +#include "xtract.h" + +#endif /* ifndef U3_NOUN_H */ diff --git a/vere/pkg/noun/options.c b/vere/pkg/noun/options.c new file mode 100644 index 0000000..cef3479 --- /dev/null +++ b/vere/pkg/noun/options.c @@ -0,0 +1,5 @@ +/// @file + +#include "options.h" + +u3o_config u3o_Config; diff --git a/vere/pkg/noun/options.h b/vere/pkg/noun/options.h new file mode 100644 index 0000000..2f218ad --- /dev/null +++ b/vere/pkg/noun/options.h @@ -0,0 +1,57 @@ +/// @file + +#ifndef U3_OPTIONS_H +#define U3_OPTIONS_H + +#include "c3/c3.h" +#include "types.h" + + /** Data structures. + **/ + /* u3o_config: process / system configuration. + */ + typedef struct _u3o_config { + u3_noun who; // single identity + c3_c* dir_c; // execution directory (pier) + c3_c* eph_c; // ephemeral file + c3_w wag_w; // flags (both ways) + size_t wor_i; // loom word-length (<= u3a_words) + c3_w tos_w; // loom toss skip-length + c3_w hap_w; // transient memoization cache size + c3_w per_w; // persistent memoization cache size + void (*stderr_log_f)(c3_c*); // errors from c code + void (*slog_f)(u3_noun); // function pointer for slog + void (*sign_hold_f)(void); // suspend system signal regime + void (*sign_move_f)(void); // restore system signal regime + } u3o_config; + + /* u3o_flag: process/system flags. + ** + ** _debug flags are set outside u3 and heard inside it. + ** _check flags are set inside u3 and heard outside it. + */ + enum u3o_flag { // execution flags + u3o_debug_ram = 1 << 0, // debug: gc + u3o_debug_cpu = 1 << 1, // debug: profile + u3o_check_corrupt = 1 << 2, // check: gc memory + u3o_check_fatal = 1 << 3, // check: unrecoverable + u3o_verbose = 1 << 4, // be remarkably wordy + u3o_dryrun = 1 << 5, // don't touch checkpoint + u3o_quiet = 1 << 6, // disable ~& + u3o_hashless = 1 << 7, // disable hashboard + u3o_trace = 1 << 8, // enables trace dumping + u3o_no_demand = 1 << 9, // disables demand paging + u3o_auto_meld = 1 << 10, // enables meld under pressure + u3o_soft_mugs = 1 << 11, // continue replay on mismatch + u3o_swap = 1 << 12, // enables ephemeral file + u3o_toss = 1 << 13 // reclaim often + }; + + /** Globals. + **/ + /* u3_Config / u3C: global memory control. + */ + extern u3o_config u3o_Config; +# define u3C u3o_Config + +#endif /* ifndef U3_OPTIONS_H */ diff --git a/vere/pkg/noun/platform/darwin/rsignal.h b/vere/pkg/noun/platform/darwin/rsignal.h new file mode 100644 index 0000000..a14670e --- /dev/null +++ b/vere/pkg/noun/platform/darwin/rsignal.h @@ -0,0 +1,13 @@ +/// @file + +#ifndef NOUN_PLATFORM_DARWIN_RSIGNAL_H +#define NOUN_PLATFORM_DARWIN_RSIGNAL_H + +#define rsignal_jmpbuf sigjmp_buf +#define rsignal_setjmp(buf) sigsetjmp((buf), 1) +#define rsignal_longjmp siglongjmp +#define rsignal_install_handler signal +#define rsignal_deinstall_handler(sig) signal((sig), SIG_IGN) +#define rsignal_setitimer setitimer + +#endif /* ifndef NOUN_PLATFORM_DARWIN_RSIGNAL_H */ diff --git a/vere/pkg/noun/platform/linux/rsignal.h b/vere/pkg/noun/platform/linux/rsignal.h new file mode 100644 index 0000000..9c55cee --- /dev/null +++ b/vere/pkg/noun/platform/linux/rsignal.h @@ -0,0 +1,13 @@ +/// @file + +#ifndef NOUN_PLATFORM_LINUX_RSIGNAL_H +#define NOUN_PLATFORM_LINUX_RSIGNAL_H + +#define rsignal_jmpbuf sigjmp_buf +#define rsignal_setjmp(buf) sigsetjmp((buf), 1) +#define rsignal_longjmp siglongjmp +#define rsignal_install_handler signal +#define rsignal_deinstall_handler(sig) signal((sig), SIG_IGN) +#define rsignal_setitimer setitimer + +#endif /* ifndef NOUN_PLATFORM_LINUX_RSIGNAL_H */ diff --git a/vere/pkg/noun/retrieve.c b/vere/pkg/noun/retrieve.c new file mode 100644 index 0000000..4848698 --- /dev/null +++ b/vere/pkg/noun/retrieve.c @@ -0,0 +1,1863 @@ +/// @file + +#include "retrieve.h" + +#include "allocate.h" +#include "hashtable.h" +#include "imprison.h" +#include "murmur3.h" +#include "trace.h" +#include "xtract.h" + + +// declarations of inline functions +// +c3_o +u3r_cell(u3_noun a, u3_noun* b, u3_noun* c); +c3_o +u3r_trel(u3_noun a, u3_noun* b, u3_noun* c, u3_noun* d); +c3_o +u3r_qual(u3_noun a, + u3_noun* b, + u3_noun* c, + u3_noun* d, + u3_noun* e); +c3_o +u3r_quil(u3_noun a, + u3_noun* b, + u3_noun* c, + u3_noun* d, + u3_noun* e, + u3_noun* f); +c3_o +u3r_hext(u3_noun a, + u3_noun* b, + u3_noun* c, + u3_noun* d, + u3_noun* e, + u3_noun* f, + u3_noun* g); + +/* _frag_word(): fast fragment/branch prediction for top word. +*/ +static u3_weak +_frag_word(c3_w a_w, u3_noun b) +{ + u3_assert(0 != a_w); + + { + c3_w dep_w = u3x_dep(a_w); + + while ( dep_w ) { + if ( c3n == u3a_is_cell(b) ) { + return u3_none; + } + else { + u3a_cell* b_u = u3a_to_ptr(b); + + b = *(((u3_noun*)&(b_u->hed)) + (1 & (a_w >> (dep_w - 1)))); + dep_w--; + } + } + return b; + } +} + +/* _frag_deep(): fast fragment/branch for deep words. +*/ +static u3_weak +_frag_deep(c3_w a_w, u3_noun b) +{ + c3_w dep_w = 32; + + while ( dep_w ) { + if ( c3n == u3a_is_cell(b) ) { + return u3_none; + } + else { + u3a_cell* b_u = u3a_to_ptr(b); + + b = *(((u3_noun*)&(b_u->hed)) + (1 & (a_w >> (dep_w - 1)))); + dep_w--; + } + } + return b; +} + +/* u3r_at(): +** +** Return fragment (a) of (b), or u3_none if not applicable. +*/ +u3_weak +u3r_at(u3_atom a, u3_noun b) +{ + u3_assert(u3_none != a); + u3_assert(u3_none != b); + + u3t_on(far_o); + + if ( 0 == a ) { + u3t_off(far_o); + return u3_none; + } + + if ( _(u3a_is_cat(a)) ) { + u3t_off(far_o); + return _frag_word(a, b); + } + else { + if ( !_(u3a_is_pug(a)) ) { + u3t_off(far_o); + return u3_none; + } + else { + u3a_atom* a_u = u3a_to_ptr(a); + c3_w len_w = a_u->len_w; + + b = _frag_word(a_u->buf_w[len_w - 1], b); + len_w -= 1; + + if ( u3_none == b ) { + u3t_off(far_o); + return b; + } + + while ( len_w ) { + b = _frag_deep(a_u->buf_w[len_w - 1], b); + + if ( u3_none == b ) { + u3t_off(far_o); + + return b; + } else { + len_w--; + } + } + u3t_off(far_o); + + return b; + } + } +} + +/* u3r_mean(): +** +** Attempt to deconstruct `a` by axis, noun pairs; 0 terminates. +** Axes must be sorted in tree order. +*/ + struct _mean_pair { + c3_w axe_w; + u3_noun* som; + }; + + static c3_w + _mean_cut(c3_w len_w, + struct _mean_pair* prs_m) + { + c3_w i_w, cut_t, cut_w; + + cut_t = 0; + cut_w = 0; + for ( i_w = 0; i_w < len_w; i_w++ ) { + c3_w axe_w = prs_m[i_w].axe_w; + + if ( (cut_t == 0) && (3 == u3x_cap(axe_w)) ) { + cut_t = 1; + cut_w = i_w; + } + prs_m[i_w].axe_w = u3x_mas(axe_w); + } + return cut_t ? cut_w : i_w; + } + + static c3_o + _mean_extract(u3_noun som, + c3_w len_w, + struct _mean_pair* prs_m) + { + if ( len_w == 0 ) { + return c3y; + } + else if ( (len_w == 1) && (1 == prs_m[0].axe_w) ) { + *prs_m->som = som; + return c3y; + } + else { + if ( c3n == u3a_is_cell(som) ) { + return c3n; + } else { + c3_w cut_w = _mean_cut(len_w, prs_m); + + return c3a + (_mean_extract(u3a_h(som), cut_w, prs_m), + _mean_extract(u3a_t(som), (len_w - cut_w), (prs_m + cut_w))); + } + } + } + +c3_o +u3r_vmean(u3_noun som, va_list ap) +{ + va_list aq; + c3_w len_w; + struct _mean_pair* prs_m; + + u3_assert(u3_none != som); + + // traverse copy of va_list for alloca + // + va_copy(aq, ap); + len_w = 0; + + while ( 1 ) { + if ( 0 == va_arg(aq, c3_w) ) { + break; + } + va_arg(aq, u3_noun*); + len_w++; + } + + va_end(aq); + + u3_assert( 0 != len_w ); + prs_m = alloca(len_w * sizeof(struct _mean_pair)); + + // traverse va_list and extract args + // + { + c3_w i_w; + + for ( i_w = 0; i_w < len_w; i_w++ ) { + prs_m[i_w].axe_w = va_arg(ap, c3_w); + prs_m[i_w].som = va_arg(ap, u3_noun*); + } + + va_end(ap); + } + + // extract axis from som + // + return _mean_extract(som, len_w, prs_m); +} + +c3_o +u3r_mean(u3_noun som, ...) +{ + c3_o ret_o; + va_list ap; + + va_start(ap, som); + ret_o = u3r_vmean(som, ap); + va_end(ap); + + return ret_o; +} + +// stack frame for tracking noun comparison and unification +// +// we always compare arbitrary nouns in a none-frame. +// when we compare two cells, we change the none-frame to a head-frame +// and push a new none-frame for their heads. if the heads are equal, +// we get the cells from the head-frame and unify their head pointers. +// then, we convert the head-frame to a tail-frame and repeat with +// the tails, mutatis mutandis. +// +// in Hoon, this structure would be: +// +// $% [%none a=* b=*] +// [%head a=^ b=^] +// [%tail a=^ b=^] +// == +// +#define SING_NONE 0 +#define SING_HEAD 1 +#define SING_TAIL 2 + +typedef struct { + c3_y sat_y; + u3_noun a; + u3_noun b; +} eqframe; + +/* _cr_sing_push(): push a new stack frame, initialized as SING_NONE. +*/ +static inline eqframe* +_cr_sing_push(u3a_pile* pil_u, u3_noun a, u3_noun b) +{ + eqframe* fam_u = u3a_push(pil_u); + fam_u->sat_y = SING_NONE; + fam_u->a = a; + fam_u->b = b; + return fam_u; +} + +/* _cr_sing_mug(): short-circuit comparison if mugs are present and not equal. +*/ +static inline c3_o +_cr_sing_mug(u3a_noun* a_u, u3a_noun* b_u) +{ + // XX add debug assertions that both mugs are 31-bit + // (ie, not u3a_take() relocation references) + // + if ( a_u->mug_w && b_u->mug_w && (a_u->mug_w != b_u->mug_w) ) { + return c3n; + } + + return c3y; +} + +/* _cr_sing_atom(): check if atom [a] is indirect and equal to noun [b] +*/ +static inline c3_o +_cr_sing_atom(u3_atom a, u3_noun b) +{ + // [a] is an atom, not pointer-equal to noun [b]. + // if they're not both indirect atoms, they can't be equal. + // + if ( (c3n == u3a_is_pug(a)) + || (c3n == u3a_is_pug(b)) ) + { + return c3n; + } + else { + u3a_atom* a_u = u3a_to_ptr(a); + u3a_atom* b_u = u3a_to_ptr(b); + + // [a] and [b] are not equal if their mugs are present and not equal. + // + if ( c3n == _cr_sing_mug((u3a_noun*)a_u, (u3a_noun*)b_u) ) { + return c3n; + } + else { + c3_w a_w = a_u->len_w; + c3_w b_w = b_u->len_w; + + // [a] and [b] are not equal if their lengths are not equal + // + if ( a_w != b_w ) { + return c3n; + } + else { + c3_w i_w; + + // XX memcmp + // + for ( i_w = 0; i_w < a_w; i_w++ ) { + if ( a_u->buf_w[i_w] != b_u->buf_w[i_w] ) { + return c3n; + } + } + } + } + } + + return c3y; +} + +/* _cr_sing_cape_test(): check for previous comparison of [a] and [b]. +*/ +static inline c3_o +_cr_sing_cape_test(u3p(u3h_root) har_p, u3_noun a, u3_noun b) +{ + u3_noun key = u3nc(u3a_to_off(a), u3a_to_off(b)); + u3_noun val; + + u3t_off(euq_o); + val = u3h_git(har_p, key); + u3t_on(euq_o); + + u3z(key); + return ( u3_none != val ) ? c3y : c3n; +} + +/* _cr_sing_cape_keep(): store [a] and [b] to short-circuit subsequent tests. +** NB: [a] and [b] (which MUST be equal nouns) +** are cons'd as offsets (direct atoms) to avoid refcount churn. +*/ +static inline void +_cr_sing_cape_keep(u3p(u3h_root) har_p, u3_noun a, u3_noun b) +{ + // only store if [a] and [b] are copies of each other + // + if ( a != b ) { + u3_noun key = u3nc(u3a_to_off(a), u3a_to_off(b)); + u3t_off(euq_o); + u3h_put(har_p, key, c3y); + u3t_on(euq_o); + u3z(key); + } +} + +static inline __attribute__((always_inline)) void +_cr_sing_wed(u3_noun *restrict a, u3_noun *restrict b) +{ + if ( *a != *b ) { + u3a_wed(a, b); + } +} + +/* _cr_sing_cape(): unifying equality with comparison deduplication + * (tightly coupled to _cr_sing) + */ +static c3_o +_cr_sing_cape(u3a_pile* pil_u, u3p(u3h_root) har_p) +{ + eqframe* fam_u = u3a_peek(pil_u); + u3_noun a, b; + u3a_cell* a_u; + u3a_cell* b_u; + + // loop while arguments remain on the stack + // + do { + a = fam_u->a; + b = fam_u->b; + + switch ( fam_u->sat_y ) { + + // [a] and [b] are arbitrary nouns + // + case SING_NONE: { + if ( a == b ) { + break; + } + else if ( c3y == u3a_is_atom(a) ) { + if ( c3n == _cr_sing_atom(a, b) ) { + return c3n; + } + else { + break; + } + } + else if ( c3y == u3a_is_atom(b) ) { + return c3n; + } + // [a] and [b] are cells + // + else { + a_u = u3a_to_ptr(a); + b_u = u3a_to_ptr(b); + + // short-circuiting mug check + // + if ( c3n == _cr_sing_mug((u3a_noun*)a_u, (u3a_noun*)b_u) ) { + return c3n; + } + // short-circuiting re-comparison check + // + else if ( c3y == _cr_sing_cape_test(har_p, a, b) ) { + fam_u = u3a_pop(pil_u); + continue; + } + // upgrade none-frame to head-frame, check heads + // + else { + fam_u->sat_y = SING_HEAD; + fam_u = _cr_sing_push(pil_u, a_u->hed, b_u->hed); + continue; + } + } + } break; + + // cells [a] and [b] have equal heads + // + case SING_HEAD: { + a_u = u3a_to_ptr(a); + b_u = u3a_to_ptr(b); + _cr_sing_wed(&(a_u->hed), &(b_u->hed)); + + // upgrade head-frame to tail-frame, check tails + // + fam_u->sat_y = SING_TAIL; + fam_u = _cr_sing_push(pil_u, a_u->tel, b_u->tel); + continue; + } + + // cells [a] and [b] are equal + // + case SING_TAIL: { + a_u = u3a_to_ptr(a); + b_u = u3a_to_ptr(b); + _cr_sing_wed(&(a_u->tel), &(b_u->tel)); + } break; + + default: { + u3_assert(0); + } break; + } + + // track equal pairs to short-circuit possible (re-)comparison + // + _cr_sing_cape_keep(har_p, a, b); + + fam_u = u3a_pop(pil_u); + } + while ( c3n == u3a_pile_done(pil_u) ); + + return c3y; +} + +/* _cr_sing(): unifying equality. +*/ +static c3_o +_cr_sing(u3_noun a, u3_noun b) +{ + c3_s ovr_s = 0; + u3a_cell* a_u; + u3a_cell* b_u; + eqframe* fam_u; + u3a_pile pil_u; + + // initialize stack control, push arguments onto the stack (none-frame) + // + u3a_pile_prep(&pil_u, sizeof(eqframe)); + fam_u = _cr_sing_push(&pil_u, a, b); + + // loop while arguments are on the stack + // + while ( c3n == u3a_pile_done(&pil_u) ) { + a = fam_u->a; + b = fam_u->b; + + switch ( fam_u->sat_y ) { + + // [a] and [b] are arbitrary nouns + // + case SING_NONE: { + if ( a == b ) { + break; + } + else if ( c3y == u3a_is_atom(a) ) { + if ( c3n == _cr_sing_atom(a, b) ) { + u3R->cap_p = pil_u.top_p; + return c3n; + } + else { + break; + } + } + else if ( c3y == u3a_is_atom(b) ) { + u3R->cap_p = pil_u.top_p; + return c3n; + } + // [a] and [b] are cells + // + else { + a_u = u3a_to_ptr(a); + b_u = u3a_to_ptr(b); + + // short-circuiting mug check + // + if ( c3n == _cr_sing_mug((u3a_noun*)a_u, (u3a_noun*)b_u) ) { + u3R->cap_p = pil_u.top_p; + return c3n; + } + // upgrade none-frame to head-frame, check heads + // + else { + fam_u->sat_y = SING_HEAD; + fam_u = _cr_sing_push(&pil_u, a_u->hed, b_u->hed); + continue; + } + } + } break; + + // cells [a] and [b] have equal heads + // + case SING_HEAD: { + a_u = u3a_to_ptr(a); + b_u = u3a_to_ptr(b); + _cr_sing_wed(&(a_u->hed), &(b_u->hed)); + + // upgrade head-frame to tail-frame, check tails + // + fam_u->sat_y = SING_TAIL; + fam_u = _cr_sing_push(&pil_u, a_u->tel, b_u->tel); + continue; + } + + // cells [a] and [b] are equal + // + case SING_TAIL: { + a_u = u3a_to_ptr(a); + b_u = u3a_to_ptr(b); + _cr_sing_wed(&(a_u->tel), &(b_u->tel)); + } break; + + default: { + u3_assert(0); + } break; + } + + // [ovr_s] counts comparisons, if it overflows, we've likely hit + // a pathological case (highly duplicated tree), so we de-duplicate + // subsequent comparisons by maintaining a set of equal pairs. + // + if ( 0 == ++ovr_s ) { + u3p(u3h_root) har_p = u3h_new(); + c3_o ret_o = _cr_sing_cape(&pil_u, har_p); + u3h_free(har_p); + u3R->cap_p = pil_u.top_p; + return ret_o; + } + + fam_u = u3a_pop(&pil_u); + } + + return c3y; +} + +/* u3r_sing(): Yes iff [a] and [b] are the same noun. +*/ +c3_o +u3r_sing(u3_noun a, u3_noun b) +{ + c3_o ret_o; + u3t_on(euq_o); + ret_o = _cr_sing(a, b); + u3t_off(euq_o); + return ret_o; +} + +c3_o +u3r_fing(u3_noun a, + u3_noun b) +{ + return (a == b) ? c3y : c3n; +} + +/* u3r_sing_cell(): +** +** Yes iff `[p q]` and `b` are the same noun. +*/ +c3_o +u3r_sing_cell(u3_noun p, + u3_noun q, + u3_noun b) +{ + return c3a(_(u3a_is_cell(b)), + c3a(u3r_sing(p, u3a_h(b)), + u3r_sing(q, u3a_t(b)))); +} +c3_o +u3r_fing_cell(u3_noun p, + u3_noun q, + u3_noun b) +{ + return c3a(_(u3a_is_cell(b)), + c3a(u3r_fing(p, u3a_h(b)), + u3r_fing(q, u3a_t(b)))); +} + +/* u3r_sing_mixt(): +** +** Yes iff `[p q]` and `b` are the same noun. +*/ +c3_o +u3r_sing_mixt(const c3_c* p_c, + u3_noun q, + u3_noun b) +{ + return c3a(_(u3a_is_cell(b)), + c3a(u3r_sing_c(p_c, u3a_h(b)), + u3r_sing(q, u3a_t(b)))); +} +c3_o +u3r_fing_mixt(const c3_c* p_c, + u3_noun q, + u3_noun b) +{ + return c3a(_(u3a_is_cell(b)), + c3a(u3r_sing_c(p_c, u3a_h(b)), + u3r_fing(q, u3a_t(b)))); +} + +/* u3r_sing_trel(): +** +** Yes iff `[p q r]` and `b` are the same noun. +*/ +c3_o +u3r_sing_trel(u3_noun p, + u3_noun q, + u3_noun r, + u3_noun b) +{ + return c3a(_(u3a_is_cell(b)), + c3a(u3r_sing(p, u3a_h(b)), + u3r_sing_cell(q, r, u3a_t(b)))); +} +c3_o +u3r_fing_trel(u3_noun p, + u3_noun q, + u3_noun r, + u3_noun b) +{ + return c3a(_(u3a_is_cell(b)), + c3a(u3r_fing(p, u3a_h(b)), + u3r_fing_cell(q, r, u3a_t(b)))); +} + +/* u3r_sing_qual(): +** +** Yes iff `[p q r]` and `b` are the same noun. +*/ +c3_o +u3r_sing_qual(u3_noun p, + u3_noun q, + u3_noun r, + u3_noun s, + u3_noun b) +{ + return c3a(_(u3a_is_cell(b)), + c3a(u3r_sing(p, u3a_h(b)), + u3r_sing_trel(q, r, s, u3a_t(b)))); +} +c3_o +u3r_fing_qual(u3_noun p, + u3_noun q, + u3_noun r, + u3_noun s, + u3_noun b) +{ + return c3a(_(u3a_is_cell(b)), + c3a(u3r_fing(p, u3a_h(b)), + u3r_fing_trel(q, r, s, u3a_t(b)))); +} + +/* u3r_nord(): +** +** Return 0, 1 or 2 if `a` is below, equal to, or above `b`. +*/ +u3_atom +u3r_nord(u3_noun a, + u3_noun b) +{ + u3_assert(u3_none != a); + u3_assert(u3_none != b); + + if ( a == b ) { + return 1; + } + else { + if ( _(u3a_is_atom(a)) ) { + if ( !_(u3a_is_atom(b)) ) { + return 0; + } else { + if ( _(u3a_is_cat(a)) ) { + if ( _(u3a_is_cat(b)) ) { + return (a < b) ? 0 : 2; + } + else return 0; + } + else if ( _(u3a_is_cat(b)) ) { + return 2; + } + else { + u3a_atom* a_u = u3a_to_ptr(a); + u3a_atom* b_u = u3a_to_ptr(b); + + c3_w w_rez = a_u->len_w; + c3_w w_mox = b_u->len_w; + + if ( w_rez != w_mox ) { + return (w_rez < w_mox) ? 0 : 2; + } + else { + c3_w i_w; + + for ( i_w = 0; i_w < w_rez; i_w++ ) { + c3_w ai_w = a_u->buf_w[i_w]; + c3_w bi_w = b_u->buf_w[i_w]; + + if ( ai_w != bi_w ) { + return (ai_w < bi_w) ? 0 : 2; + } + } + return 1; + } + } + } + } else { + if ( _(u3a_is_atom(b)) ) { + return 2; + } else { + u3_atom c = u3r_nord(u3a_h(a), u3a_h(b)); + + if ( 1 == c ) { + return u3r_nord(u3a_t(a), u3a_t(b)); + } else { + return c; + } + } + } + } +} + +/* u3r_sing_c(): cord/C-string value equivalence. +*/ +c3_o +u3r_sing_c(const c3_c* a_c, + u3_noun b) +{ + u3_assert(u3_none != b); + + if ( !_(u3a_is_atom(b)) ) { + return c3n; + } + else { + c3_w w_sof = strlen(a_c); + c3_w i_w; + + if ( w_sof != u3r_met(3, b) ) { + return c3n; + } + for ( i_w = 0; i_w < w_sof; i_w++ ) { + if ( u3r_byte(i_w, b) != a_c[i_w] ) { + return c3n; + } + } + return c3y; + } +} + +/* u3r_bush(): +** +** Factor [a] as a bush [b.[p q] c]. +*/ +c3_o +u3r_bush(u3_noun a, + u3_noun* b, + u3_noun* c) +{ + u3_assert(u3_none != a); + + if ( _(u3a_is_atom(a)) ) { + return c3n; + } + else { + *b = u3a_h(a); + + if ( _(u3a_is_atom(*b)) ) { + return c3n; + } else { + *c = u3a_t(a); + return c3y; + } + } +} + +/* u3r_bite(): retrieve/default $bloq and $step from $bite. +*/ +c3_o +u3r_bite(u3_noun bite, u3_atom* bloq, u3_atom *step) +{ + u3_noun hed, tal; + + if ( c3n == u3r_cell(bite, &hed, &tal) ) { + *bloq = bite; + *step = 1; + return c3y; + } + else if ( (c3n == u3a_is_atom(hed)) + || (c3n == u3a_is_atom(tal)) ) + { + return c3n; + } + else { + *bloq = hed; + *step = tal; + return c3y; + } +} + +/* u3r_p(): +** +** & [0] if [a] is of the form [b *c]. +*/ +c3_o +u3r_p(u3_noun a, + u3_noun b, + u3_noun* c) +{ + u3_noun feg, nux; + + if ( (c3y == u3r_cell(a, &feg, &nux)) && + (c3y == u3r_sing(feg, b)) ) + { + if ( c ) *c = nux; + return c3y; + } + else return c3n; +} + +/* u3r_pq(): +** +** & [0] if [a] is of the form [b *c d]. +*/ +c3_o +u3r_pq(u3_noun a, + u3_noun b, + u3_noun* c, + u3_noun* d) +{ + u3_noun nux; + + if ( (c3y == u3r_p(a, b, &nux)) && + (c3y == u3r_cell(nux, c, d)) ) + { + return c3y; + } + else return c3n; +} + +/* u3r_pqr(): +** +** & [0] if [a] is of the form [b *c *d *e]. +*/ +c3_o +u3r_pqr(u3_noun a, + u3_noun b, + u3_noun* c, + u3_noun* d, + u3_noun* e) +{ + u3_noun nux; + + if ( (c3y == u3r_p(a, b, &nux)) && + (c3y == u3r_trel(nux, c, d, e)) ) + { + return c3y; + } + else return c3n; +} + +/* u3r_pqrs(): +** +** & [0] if [a] is of the form [b *c *d *e *f]. +*/ +c3_o +u3r_pqrs(u3_noun a, + u3_noun b, + u3_noun* c, + u3_noun* d, + u3_noun* e, + u3_noun* f) +{ + u3_noun nux; + + if ( (c3y == u3r_p(a, b, &nux)) && + (c3y == u3r_qual(nux, c, d, e, f)) ) + { + return c3y; + } + else return c3n; +} + +/* u3r_met(): +** +** Return the size of (b) in bits, rounded up to +** (1 << a_y). +** +** For example, (a_y == 3) returns the size in bytes. +** NB: (a_y) must be < 37. +*/ +c3_w +u3r_met(c3_y a_y, + u3_atom b) +{ + c3_dessert(u3_none != b); + c3_dessert(_(u3a_is_atom(b))); + + if ( b == 0 ) { + return 0; + } + /* gal_w: number of words besides (daz_w) in (b). + ** daz_w: top word in (b). + */ + c3_w gal_w; + c3_w daz_w; + + if ( _(u3a_is_cat(b)) ) { + gal_w = 0; + daz_w = b; + } + else { + u3a_atom* b_u = u3a_to_ptr(b); + + gal_w = (b_u->len_w) - 1; + daz_w = b_u->buf_w[gal_w]; + } + + /* 5 because 1<<2 bytes in c3_w, 1<<3 bits in byte. + aka log2(CHAR_BIT * sizeof gal_w) + a_y < 5 informs whether we shift return left or right + */ + if (a_y < 5) { + c3_y max_y = (1 << a_y) - 1; + c3_y gow_y = 5 - a_y; + + if (gal_w > ((UINT32_MAX - (32 + max_y)) >> gow_y)) + return u3m_bail(c3__fail); + + return (gal_w << gow_y) + + ((c3_bits_word(daz_w) + max_y) + >> a_y); + } + c3_y gow_y = (a_y - 5); + return ((gal_w + 1) + ((1 << gow_y) - 1)) >> gow_y; +} + +/* u3r_bit(): +** +** Return bit (a_w) of (b). +*/ +c3_b +u3r_bit(c3_w a_w, + u3_atom b) +{ + u3_assert(u3_none != b); + u3_assert(_(u3a_is_atom(b))); + + if ( _(u3a_is_cat(b)) ) { + if ( a_w >= 31 ) { + return 0; + } + else return (1 & (b >> a_w)); + } + else { + u3a_atom* b_u = u3a_to_ptr(b); + c3_y vut_y = (a_w & 31); + c3_w pix_w = (a_w >> 5); + + if ( pix_w >= b_u->len_w ) { + return 0; + } + else { + c3_w nys_w = b_u->buf_w[pix_w]; + + return (1 & (nys_w >> vut_y)); + } + } +} + +/* u3r_byte(): +** +** Return byte (a_w) of (b). +*/ +c3_y +u3r_byte(c3_w a_w, + u3_atom b) +{ + u3_assert(u3_none != b); + u3_assert(_(u3a_is_atom(b))); + + if ( _(u3a_is_cat(b)) ) { + if ( a_w > 3 ) { + return 0; + } + else return (255 & (b >> (a_w << 3))); + } + else { + u3a_atom* b_u = u3a_to_ptr(b); + c3_y vut_y = (a_w & 3); + c3_w pix_w = (a_w >> 2); + + if ( pix_w >= b_u->len_w ) { + return 0; + } + else { + c3_w nys_w = b_u->buf_w[pix_w]; + + return (255 & (nys_w >> (vut_y << 3))); + } + } +} + +/* u3r_bytes(): +** +** Copy bytes (a_w) through (a_w + b_w - 1) from (d) to (c). +*/ +void +u3r_bytes(c3_w a_w, + c3_w b_w, + c3_y* c_y, + u3_atom d) +{ + u3_assert(u3_none != d); + u3_assert(_(u3a_is_atom(d))); + + if ( _(u3a_is_cat(d)) ) { + c3_w e_w = d >> (c3_min(a_w, 4) << 3); + c3_w m_w = c3_min(b_w, 4); + memcpy(c_y, (c3_y*)&e_w, m_w); + if ( b_w > 4 ) { + memset(c_y + 4, 0, b_w - 4); + } + } + else { + u3a_atom* d_u = u3a_to_ptr(d); + c3_w n_w = d_u->len_w << 2; + c3_y* x_y = (c3_y*)d_u->buf_w + a_w; + + if ( a_w >= n_w ) { + memset(c_y, 0, b_w); + } + else { + c3_w z_w = c3_min(b_w, n_w - a_w); + memcpy(c_y, x_y, z_w); + if ( b_w > n_w - a_w ) { + memset(c_y + z_w, 0, b_w + a_w - n_w); + } + } + } +} + +/* u3r_bytes_fit(): +** +** Copy (len_w) bytes of (a) into (buf_y) if it fits, returning overage +*/ +c3_w +u3r_bytes_fit(c3_w len_w, c3_y *buf_y, u3_atom a) +{ + c3_w met_w = u3r_met(3, a); + if ( met_w <= len_w ) { + u3r_bytes(0, len_w, buf_y, a); + return 0; + } + else { + return len_w - met_w; + } +} + +/* u3r_bytes_alloc(): +** +** Copy (len_w) bytes starting at (a_w) from (b) into a fresh allocation. +*/ +c3_y* +u3r_bytes_alloc(c3_w a_w, + c3_w len_w, + u3_atom b) +{ + c3_y* b_y = u3a_malloc(len_w); + u3r_bytes(a_w, a_w + len_w, b_y, b); + return b_y; +} + +/* u3r_bytes_all(): +** +** Allocate and return a new byte array with all the bytes of (a), +** storing the length in (len_w). +*/ +c3_y* +u3r_bytes_all(c3_w* len_w, u3_atom a) +{ + c3_w met_w = *len_w = u3r_met(3, a); + return u3r_bytes_alloc(0, met_w, a); +} + +/* u3r_mp(): +** +** Copy (b) into (a_mp). +*/ +void +u3r_mp(mpz_t a_mp, + u3_atom b) +{ + u3_assert(u3_none != b); + u3_assert(_(u3a_is_atom(b))); + + if ( _(u3a_is_cat(b)) ) { + mpz_init_set_ui(a_mp, b); + } + else { + u3a_atom* b_u = u3a_to_ptr(b); + c3_w len_w = b_u->len_w; + c3_d bit_d = (c3_d)len_w << 5; + + // avoid reallocation on import, if possible + // + mpz_init2(a_mp, (c3_w)c3_min(bit_d, UINT32_MAX)); + mpz_import(a_mp, len_w, -1, sizeof(c3_w), 0, 0, b_u->buf_w); + } +} + +/* u3r_short(): +** +** Return short (a_w) of (b). +*/ +c3_s +u3r_short(c3_w a_w, + u3_atom b) +{ + u3_assert( u3_none != b ); + u3_assert( c3y == u3a_is_atom(b) ); + + if ( c3y == u3a_is_cat(b) ) { + switch ( a_w ) { + case 0: return b & 0xffff; + case 1: return b >> 16; + default: return 0; + } + } + else { + u3a_atom* b_u = u3a_to_ptr(b); + c3_w nix_w = a_w >> 1; + + if ( nix_w >= b_u->len_w ) { + return 0; + } + else { + c3_w wor_w = b_u->buf_w[nix_w]; + + return ( a_w & 1 ) ? (wor_w >> 16) : (wor_w & 0xffff); + } + } +} + +/* u3r_word(): +** +** Return word (a_w) of (b). +*/ +c3_w +u3r_word(c3_w a_w, + u3_atom b) +{ + u3_assert(u3_none != b); + u3_assert(_(u3a_is_atom(b))); + + if ( _(u3a_is_cat(b)) ) { + if ( a_w > 0 ) { + return 0; + } + else return b; + } + else { + u3a_atom* b_u = u3a_to_ptr(b); + + if ( a_w >= b_u->len_w ) { + return 0; + } + else return b_u->buf_w[a_w]; + } +} + +/* u3r_word_fit(): +** +** Fill (out_w) with (a) if it fits, returning success. +*/ +c3_t +u3r_word_fit(c3_w *out_w, u3_atom a) +{ + if ( u3r_met(5, a) > 1 ) { + return 0; + } + else { + *out_w = u3r_word(0, a); + return 1; + } +} + +/* u3r_chub(): +** +** Return double-word (a_w) of (b). +*/ +c3_d +u3r_chub(c3_w a_w, + u3_atom b) +{ + c3_w wlo_w = u3r_word(a_w * 2, b); + c3_w whi_w = u3r_word(1 + (a_w * 2), b); + + return (((uint64_t)whi_w) << 32ULL) | ((uint64_t)wlo_w); +} + +/* u3r_words(): +** +** Copy words (a_w) through (a_w + b_w - 1) from (d) to (c). +*/ +void +u3r_words(c3_w a_w, + c3_w b_w, + c3_w* c_w, + u3_atom d) +{ + u3_assert(u3_none != d); + u3_assert(_(u3a_is_atom(d))); + + if ( b_w == 0 ) { + return; + } + if ( _(u3a_is_cat(d)) ) { + if ( a_w == 0 ) { + *c_w = d; + memset((c3_y*)(c_w + 1), 0, (b_w - 1) << 2); + } + else { + memset((c3_y*)c_w, 0, b_w << 2); + } + } + else { + u3a_atom* d_u = u3a_to_ptr(d); + if ( a_w >= d_u->len_w ) { + memset((c3_y*)c_w, 0, b_w << 2); + } + else { + c3_w z_w = c3_min(b_w, d_u->len_w - a_w); + c3_w* x_w = d_u->buf_w + a_w; + memcpy((c3_y*)c_w, (c3_y*)x_w, z_w << 2); + if ( b_w > d_u->len_w - a_w ) { + memset((c3_y*)(c_w + z_w), 0, (b_w + a_w - d_u->len_w) << 2); + } + } + } +} + +/* u3r_chubs(): +** +** Copy double-words (a_w) through (a_w + b_w - 1) from (d) to (c). +*/ +void +u3r_chubs(c3_w a_w, + c3_w b_w, + c3_d* c_d, + u3_atom d) +{ + /* XX: assumes little-endian + */ + u3r_words(a_w * 2, b_w * 2, (c3_w *)c_d, d); +} + +/* u3r_safe_byte(): validate and retrieve byte. +*/ +c3_o +u3r_safe_byte(u3_noun dat, c3_y* out_y) +{ + if ( (c3n == u3a_is_atom(dat)) + || (1 < u3r_met(3, dat)) ) + { + return c3n; + } + + *out_y = u3r_byte(0, dat); + return c3y; +} + +/* u3r_safe_word(): validate and retrieve word. +*/ +c3_o +u3r_safe_word(u3_noun dat, c3_w* out_w) +{ + if ( (c3n == u3a_is_atom(dat)) + || (1 < u3r_met(5, dat)) ) + { + return c3n; + } + + *out_w = u3r_word(0, dat); + return c3y; +} + +/* u3r_safe_chub(): validate and retrieve chub. +*/ +c3_o +u3r_safe_chub(u3_noun dat, c3_d* out_d) +{ + if ( (c3n == u3a_is_atom(dat)) + || (1 < u3r_met(6, dat)) ) + { + return c3n; + } + + *out_d = u3r_chub(0, dat); + return c3y; +} + +/* u3r_chop_bits(): +** +** XOR `wid_d` bits from`src_w` at `bif_g` to `dst_w` at `bif_g` +** +** NB: [dst_w] must have space for [bit_g + wid_d] bits +*/ +void +u3r_chop_bits(c3_g bif_g, + c3_d wid_d, + c3_g bit_g, + c3_w* dst_w, + const c3_w* src_w) +{ + c3_y fib_y = 32 - bif_g; + c3_y tib_y = 32 - bit_g; + + // we need to chop words + // + if ( wid_d >= tib_y ) { + // align *dst_w + // + if ( bit_g ) { + c3_w low_w = src_w[0] >> bif_g; + + if ( bif_g > bit_g ) { + low_w ^= src_w[1] << fib_y; + } + + *dst_w++ ^= low_w << bit_g; + + wid_d -= tib_y; + bif_g += tib_y; + src_w += !!(bif_g >> 5); + bif_g &= 31; + fib_y = 32 - bif_g; + } + + { + size_t i_i, byt_i = wid_d >> 5; + + if ( !bif_g ) { + for ( i_i = 0; i_i < byt_i; i_i++ ) { + dst_w[i_i] ^= src_w[i_i]; + } + } + else { + for ( i_i = 0; i_i < byt_i; i_i++ ) { + dst_w[i_i] ^= (src_w[i_i] >> bif_g) ^ (src_w[i_i + 1] << fib_y); + } + } + + src_w += byt_i; + dst_w += byt_i; + wid_d &= 31; + bit_g = 0; + } + } + + // we need to chop (more) bits + // + if ( wid_d ) { + c3_w hig_w = src_w[0] >> bif_g; + + if ( wid_d > fib_y ) { + hig_w ^= src_w[1] << fib_y; + } + + *dst_w ^= (hig_w & (((c3_d)1 << wid_d) - 1)) << bit_g; + } +} + +/* u3r_chop_words(): +** +** Into the bloq space of `met`, from position `fum` for a +** span of `wid`, to position `tou`, XOR from `src_w` +** into `dst_w`. +** +** NB: [dst_w] must have space for [tou_w + wid_w] bloqs +*/ +void +u3r_chop_words(c3_g met_g, + c3_w fum_w, + c3_w wid_w, + c3_w tou_w, + c3_w* dst_w, + c3_w len_w, + const c3_w* src_w) +{ + // operate on words + // + if ( met_g >= 5 ) { + size_t i_i, wid_i; + + { + c3_g hut_g = met_g - 5; + size_t fum_i = (size_t)fum_w << hut_g; + size_t tou_i = (size_t)tou_w << hut_g; + size_t tot_i; + + wid_i = (size_t)wid_w << hut_g; + tot_i = fum_i + wid_i; + + // since [dst_w] must have space for (tou_w + wid_w) bloqs, + // neither conversion can overflow + // + if ( (fum_i >> hut_g != fum_w) || (tot_i - wid_i != fum_i) ) { + u3m_bail(c3__fail); + return; + } + else if ( fum_i >= len_w ) { + return; + } + + if ( tot_i > len_w ) { + wid_i -= tot_i - len_w; + } + + src_w += fum_i; + dst_w += tou_i; + } + + for ( i_i = 0; i_i < wid_i; i_i++ ) { + dst_w[i_i] ^= src_w[i_i]; + } + } + // operate on bits + // + else { + c3_d wid_d = (c3_d)wid_w << met_g; + c3_g bif_g, bit_g; + + { + c3_d len_d = (c3_d)len_w << 5; + c3_d fum_d = (c3_d)fum_w << met_g; + c3_d tou_d = (c3_d)tou_w << met_g; + c3_d tot_d = fum_d + wid_d; + + // see above + // + if ( (fum_d >> met_g != fum_w) || (tot_d - wid_d != fum_d) ) { + u3m_bail(c3__fail); + return; + } + else if ( fum_d > len_d ) { + return; + } + + if ( tot_d > len_d ) { + wid_d -= tot_d - len_d; + } + + src_w += fum_d >> 5; + dst_w += tou_d >> 5; + bif_g = fum_d & 31; + bit_g = tou_d & 31; + } + + u3r_chop_bits(bif_g, wid_d, bit_g, dst_w, src_w); + } +} + +/* u3r_chop(): +** +** Into the bloq space of `met`, from position `fum` for a +** span of `wid`, to position `tou`, XOR from atom `src` +** into `dst_w`. +** +** NB: [dst_w] must have space for [tou_w + wid_w] bloqs +*/ +void +u3r_chop(c3_g met_g, + c3_w fum_w, + c3_w wid_w, + c3_w tou_w, + c3_w* dst_w, + u3_atom src) +{ + c3_w* src_w; + c3_w len_w; + + if ( _(u3a_is_cat(src)) ) { + len_w = src ? 1 : 0; + src_w = &src; + } + else { + u3a_atom* src_u = u3a_to_ptr(src); + + u3_assert(u3_none != src); + u3_assert(_(u3a_is_atom(src))); + + len_w = src_u->len_w; + src_w = src_u->buf_w; + } + + u3r_chop_words(met_g, fum_w, wid_w, tou_w, dst_w, len_w, src_w); +} + +/* u3r_string(): `a` as malloced C string. +*/ +c3_c* +u3r_string(u3_atom a) +{ + c3_w met_w = u3r_met(3, a); + c3_c* str_c = c3_malloc(met_w + 1); + + u3r_bytes(0, met_w, (c3_y*)str_c, a); + str_c[met_w] = 0; + return str_c; +} + +/* u3r_tape(): `a`, a list of bytes, as malloced C string. +*/ +c3_y* +u3r_tape(u3_noun a) +{ + u3_noun b; + c3_w i_w; + c3_y *a_y; + + for ( i_w = 0, b=a; c3y == u3a_is_cell(b); i_w++, b=u3a_t(b) ) + ; + a_y = c3_malloc(i_w + 1); + + for ( i_w = 0, b=a; c3y == u3a_is_cell(b); i_w++, b=u3a_t(b) ) { + a_y[i_w] = u3a_h(b); + } + a_y[i_w] = 0; + + return a_y; +} + +/* u3r_mug_both(): Join two mugs. +*/ +c3_l +u3r_mug_both(c3_l lef_l, c3_l rit_l) +{ + c3_y len_y = 4 + ((c3_bits_word(rit_l) + 0x7) >> 3); + c3_w syd_w = 0xdeadbeef; + c3_w i_w = 0; + c3_y buf_y[8]; + + buf_y[0] = lef_l & 0xff; + buf_y[1] = (lef_l >> 8) & 0xff; + buf_y[2] = (lef_l >> 16) & 0xff; + buf_y[3] = (lef_l >> 24) & 0xff; + buf_y[4] = rit_l & 0xff; + buf_y[5] = (rit_l >> 8) & 0xff; + buf_y[6] = (rit_l >> 16) & 0xff; + buf_y[7] = (rit_l >> 24) & 0xff; + + while ( i_w < 8 ) { + c3_w haz_w; + c3_l ham_l; + + MurmurHash3_x86_32(buf_y, len_y, syd_w, &haz_w); + ham_l = (haz_w >> 31) ^ (haz_w & 0x7fffffff); + + if ( 0 == ham_l ) { + syd_w++; i_w++; + } + else { + return ham_l; + } + } + + return 0xfffe; +} + +/* u3r_mug_bytes(): Compute the mug of `buf`, `len`, LSW first. +*/ +c3_l +u3r_mug_bytes(const c3_y *buf_y, + c3_w len_w) +{ + c3_w syd_w = 0xcafebabe; + c3_w i_w = 0; + + while ( i_w < 8 ) { + c3_w haz_w; + c3_l ham_l; + + MurmurHash3_x86_32(buf_y, len_w, syd_w, &haz_w); + ham_l = (haz_w >> 31) ^ (haz_w & 0x7fffffff); + + if ( 0 == ham_l ) { + syd_w++; i_w++; + } + else { + return ham_l; + } + } + + return 0x7fff; +} + +/* u3r_mug_c(): Compute the mug of `a`, LSB first. +*/ +c3_l +u3r_mug_c(const c3_c* a_c) +{ + return u3r_mug_bytes((c3_y*)a_c, strlen(a_c)); +} + +/* u3r_mug_cell(): Compute the mug of the cell `[hed tel]`. +*/ +c3_l +u3r_mug_cell(u3_noun hed, + u3_noun tel) +{ + c3_w lus_w = u3r_mug(hed); + c3_w biq_w = u3r_mug(tel); + + return u3r_mug_both(lus_w, biq_w); +} + +/* u3r_mug_chub(): Compute the mug of `num`, LSW first. +*/ +c3_l +u3r_mug_chub(c3_d num_d) +{ + c3_w buf_w[2]; + + buf_w[0] = (c3_w)(num_d & 0xffffffffULL); + buf_w[1] = (c3_w)(num_d >> 32); + + return u3r_mug_words(buf_w, 2); +} + +/* u3r_mug_words(): 31-bit nonzero MurmurHash3 on raw words. +*/ +c3_l +u3r_mug_words(const c3_w* key_w, c3_w len_w) +{ + c3_w byt_w; + + // ignore trailing zeros + // + while ( len_w && !key_w[len_w - 1] ) { + len_w--; + } + + // calculate byte-width a la u3r_met(3, ...) + // + if ( !len_w ) { + byt_w = 0; + } + else { + c3_w gal_w = len_w - 1; + c3_w daz_w = key_w[gal_w]; + + byt_w = (gal_w << 2) + ((c3_bits_word(daz_w) + 7) >> 3); + } + + // XX: assumes little-endian + // + return u3r_mug_bytes((c3_y*)key_w, byt_w); +} + +/* _cr_mug: stack frame for recording cell traversal +** !mug == head-frame +*/ +typedef struct { + c3_l mug_l; + u3_cell cel; +} _cr_mugf; + +/* _cr_mug_next(): advance mug calculation, pushing cells onto the stack. +*/ +static inline c3_l +_cr_mug_next(u3a_pile* pil_u, u3_noun veb) +{ + while ( 1 ) { + // veb is a direct atom, mug is not memoized + // + if ( c3y == u3a_is_cat(veb) ) { + return (c3_l)u3r_mug_words(&veb, 1); + } + // veb is indirect, a pointer into the loom + // + else { + u3a_noun* veb_u = u3a_to_ptr(veb); + + // veb has already been mugged, return memoized value + // + // XX add debug assertion that mug is 31-bit? + // + if ( veb_u->mug_w ) { + return (c3_l)veb_u->mug_w; + } + // veb is an indirect atom, mug its bytes and memoize + // + else if ( c3y == u3a_is_atom(veb) ) { + u3a_atom* vat_u = (u3a_atom*)veb_u; + c3_l mug_l = u3r_mug_words(vat_u->buf_w, vat_u->len_w); + vat_u->mug_w = mug_l; + return mug_l; + } + // veb is a cell, push a stack frame to mark head-recursion + // and read the head + // + else { + u3a_cell* cel_u = (u3a_cell*)veb_u; + _cr_mugf* fam_u = u3a_push(pil_u); + + fam_u->mug_l = 0; + fam_u->cel = veb; + + veb = cel_u->hed; + continue; + } + } + } +} + +/* u3r_mug(): statefully mug a noun with 31-bit murmur3. +*/ +c3_l +u3r_mug(u3_noun veb) +{ + u3a_pile pil_u; + _cr_mugf* fam_u; + c3_l mug_l; + + // sanity check + // + u3_assert( u3_none != veb ); + + u3a_pile_prep(&pil_u, sizeof(*fam_u)); + + // commence mugging + // + mug_l = _cr_mug_next(&pil_u, veb); + + // process cell results + // + if ( c3n == u3a_pile_done(&pil_u) ) { + fam_u = u3a_peek(&pil_u); + + do { + // head-frame: stash mug and continue into the tail + // + if ( !fam_u->mug_l ) { + u3a_cell* cel_u = u3a_to_ptr(fam_u->cel); + + fam_u->mug_l = mug_l; + mug_l = _cr_mug_next(&pil_u, cel_u->tel); + fam_u = u3a_peek(&pil_u); + } + // tail-frame: calculate/memoize cell mug and pop the stack + // + else { + u3a_cell* cel_u = u3a_to_ptr(fam_u->cel); + + mug_l = u3r_mug_both(fam_u->mug_l, mug_l); + cel_u->mug_w = mug_l; + fam_u = u3a_pop(&pil_u); + } + } + while ( c3n == u3a_pile_done(&pil_u) ); + } + + return mug_l; +} + +/* u3r_skip(): +** +** Extract a constant from a formula, ignoring +** safe/static hints, doing no computation. +*/ +u3_weak +u3r_skip(u3_noun fol) +{ + while ( c3y == u3du(fol) ) { + switch ( u3h(fol) ) { + default: return u3_none; + case 1: return u3t(fol); + case 11: { + u3_noun arg = u3t(fol), + hod = u3h(arg); + + if ( (c3y == u3du(hod)) && (u3_none == u3r_skip(u3t(hod))) ) { + return u3_none; + } + fol = u3t(arg); + } + } + } + return u3_none; +} diff --git a/vere/pkg/noun/retrieve.h b/vere/pkg/noun/retrieve.h new file mode 100644 index 0000000..0e0554b --- /dev/null +++ b/vere/pkg/noun/retrieve.h @@ -0,0 +1,538 @@ +/// @file + +#ifndef U3_RETRIEVE_H +#define U3_RETRIEVE_H + +#include "c3/c3.h" +#include "allocate.h" +#include "error.h" +#include "gmp.h" +#include "types.h" + + /** u3r_*: read without ever crashing. + **/ + + /* u3r_cell(): factor (a) as a cell (b c). + */ + inline c3_o + u3r_cell(u3_noun a, u3_noun* b, u3_noun* c) + { + u3a_cell* cel_u; + + u3_assert(u3_none != a); + + if ( c3y == u3a_is_cell(a) ) { + cel_u = u3a_to_ptr(a); + if ( b ) *b = cel_u->hed; + if ( c ) *c = cel_u->tel; + return c3y; + } + else { + return c3n; + } + } + + /* u3r_trel(): factor (a) as a trel (b c d). + */ + inline c3_o + u3r_trel(u3_noun a, u3_noun *b, u3_noun *c, u3_noun *d) + { + u3_noun guf; + + if ( (c3y == u3r_cell(a, b, &guf)) && + (c3y == u3r_cell(guf, c, d)) ) { + return c3y; + } + else { + return c3n; + } + } + + /* u3r_qual(): factor (a) as a qual (b c d e). + */ + inline c3_o + u3r_qual(u3_noun a, + u3_noun* b, + u3_noun* c, + u3_noun* d, + u3_noun* e) + { + u3_noun guf; + + if ( (c3y == u3r_cell(a, b, &guf)) && + (c3y == u3r_trel(guf, c, d, e)) ) { + return c3y; + } + else return c3n; + } + + /* u3r_quil(): factor (a) as a quil (b c d e f). + */ + inline c3_o + u3r_quil(u3_noun a, + u3_noun* b, + u3_noun* c, + u3_noun* d, + u3_noun* e, + u3_noun* f) + { + u3_noun guf; + + if ( (c3y == u3r_cell(a, b, &guf)) && + (c3y == u3r_qual(guf, c, d, e, f)) ) { + return c3y; + } + else return c3n; + } + + /* u3r_hext(): factor (a) as a hext (b c d e f g) + */ + inline c3_o + u3r_hext(u3_noun a, + u3_noun* b, + u3_noun* c, + u3_noun* d, + u3_noun* e, + u3_noun* f, + u3_noun* g) + { + u3_noun guf; + + if ( (c3y == u3r_cell(a, b, &guf)) && + (c3y == u3r_quil(guf, c, d, e, f, g)) ) { + return c3y; + } + else return c3n; + } + + /* u3r_at(): fragment `a` of `b`, or u3_none. + */ + u3_weak + u3r_at(u3_atom a, u3_weak b); + + /* u3r_mean(): + ** + ** Attempt to deconstruct `a` by axis, noun pairs; 0 terminates. + ** Axes must be sorted in tree order. + */ + c3_o + u3r_vmean(u3_noun a, va_list ap); + c3_o + u3r_mean(u3_noun a, ...); + + /* u3r_mug_both(): Join two mugs. + */ + c3_l + u3r_mug_both(c3_w lef_w, c3_w rit_w); + + /* u3r_mug_bytes(): Compute the mug of `buf`, `len`, LSW first. + */ + c3_l + u3r_mug_bytes(const c3_y *buf_y, + c3_w len_w); + + /* u3r_mug_c(): Compute the mug of `a`, LSB first. + */ + c3_l + u3r_mug_c(const c3_c *a_c); + + /* u3r_mug_cell(): Compute the mug of the cell `[hed tel]`. + */ + c3_l + u3r_mug_cell(u3_noun hed, + u3_noun tel); + + /* u3r_mug_chub(): Compute the mug of `num`, LSW first. + */ + c3_l + u3r_mug_chub(c3_d num_d); + + /* u3r_mug_words(): 31-bit nonzero MurmurHash3 on raw words. + */ + c3_l + u3r_mug_words(const c3_w* key_w, c3_w len_w); + + /* u3r_mug(): statefully mug a noun with 31-bit murmur3. + */ + c3_l + u3r_mug(u3_noun veb); + + /* u3r_fing(): + ** + ** Yes iff (a) and (b) are the same copy of the same noun. + ** (Ie, by pointer equality - u3r_sing with false negatives.) + */ + c3_o + u3r_fing(u3_noun a, + u3_noun b); + + /* u3r_fing_cell(): + ** + ** Yes iff `[p q]` and `b` are the same copy of the same noun. + */ + c3_o + u3r_fing_cell(u3_noun p, + u3_noun q, + u3_noun b); + + /* u3r_fing_mixt(): + ** + ** Yes iff `[p q]` and `b` are the same copy of the same noun. + */ + c3_o + u3r_fing_mixt(const c3_c* p_c, + u3_noun q, + u3_noun b); + + /* u3r_fing_trel(): + ** + ** Yes iff `[p q r]` and `b` are the same copy of the same noun. + */ + c3_o + u3r_fing_trel(u3_noun p, + u3_noun q, + u3_noun r, + u3_noun b); + + /* u3r_fing_qual(): + ** + ** Yes iff `[p q r s]` and `b` are the same copy of the same noun. + */ + c3_o + u3r_fing_qual(u3_noun p, + u3_noun q, + u3_noun r, + u3_noun s, + u3_noun b); + + /* u3r_sing(): noun value equality. + ** + ** Unifies noun pointers on inner roads. + */ + c3_o + u3r_sing(u3_noun a, u3_noun b); + + /* u3r_sing_c(): cord/C-string value equivalence. + */ + c3_o + u3r_sing_c(const c3_c* a_c, + u3_noun b); + + /* u3r_sing_cell(): + ** + ** Yes iff `[p q]` and `b` are the same noun. + */ + c3_o + u3r_sing_cell(u3_noun p, + u3_noun q, + u3_noun b); + + /* u3r_sing_mixt(): + ** + ** Yes iff `[p q]` and `b` are the same noun. + */ + c3_o + u3r_sing_mixt(const c3_c* p_c, + u3_noun q, + u3_noun b); + + /* u3r_sing_trel(): + ** + ** Yes iff `[p q r]` and `b` are the same noun. + */ + c3_o + u3r_sing_trel(u3_noun p, + u3_noun q, + u3_noun r, + u3_noun b); + + /* u3r_sing_qual(): + ** + ** Yes iff `[p q r s]` and `b` are the same noun. + */ + c3_o + u3r_sing_qual(u3_noun p, + u3_noun q, + u3_noun r, + u3_noun s, + u3_noun b); + + /* u3r_nord(): + ** + ** Return 0, 1 or 2 if `a` is below, equal to, or above `b`. + */ + u3_atom + u3r_nord(u3_noun a, + u3_noun b); + + /* u3r_mold(): + ** + ** Divide `a` as a mold `[b.[p q] c]`. + */ + c3_o + u3r_mold(u3_noun a, + u3_noun* b, + u3_noun* c); + + /* u3r_bite(): retrieve/default $bloq and $step from $bite. + */ + c3_o + u3r_bite(u3_noun bite, u3_atom* bloq, u3_atom *step); + + /* u3r_p(): + ** + ** & [0] if [a] is of the form [b *c]. + */ + c3_o + u3r_p(u3_noun a, + u3_noun b, + u3_noun* c); + + /* u3r_bush(): + ** + ** Factor [a] as a bush [b.[p q] c]. + */ + c3_o + u3r_bush(u3_noun a, + u3_noun* b, + u3_noun* c); + + /* u3r_pq(): + ** + ** & [0] if [a] is of the form [b *c d]. + */ + c3_o + u3r_pq(u3_noun a, + u3_noun b, + u3_noun* c, + u3_noun* d); + + /* u3r_pqr(): + ** + ** & [0] if [a] is of the form [b *c *d *e]. + */ + c3_o + u3r_pqr(u3_noun a, + u3_noun b, + u3_noun* c, + u3_noun* d, + u3_noun* e); + + /* u3r_pqrs(): + ** + ** & [0] if [a] is of the form [b *c *d *e *f]. + */ + c3_o + u3r_pqrs(u3_noun a, + u3_noun b, + u3_noun* c, + u3_noun* d, + u3_noun* e, + u3_noun* f); + + /* u3r_met(): + ** + ** Return the size of (b) in bits, rounded up to + ** (1 << a_y). + ** + ** For example, (a_y == 3) returns the size in bytes. + ** NB: (a_y) must be < 37. + */ + c3_w + u3r_met(c3_y a_y, + u3_atom b); + + /* u3r_bit(): + ** + ** Return bit (a_w) of (b). + */ + c3_b + u3r_bit(c3_w a_w, + u3_atom b); + + /* u3r_byte(): + ** + ** Return byte (a_w) of (b). + */ + c3_y + u3r_byte(c3_w a_w, + u3_atom b); + + /* u3r_bytes(): + ** + ** Copy bytes (a_w) through (a_w + b_w - 1) from (d) to (c). + */ + void + u3r_bytes(c3_w a_w, + c3_w b_w, + c3_y* c_y, + u3_atom d); + + /* u3r_bytes_fit(): + ** + ** Copy (len_w) bytes of (a) into (buf_y) if it fits, returning overage. + */ + c3_w + u3r_bytes_fit(c3_w len_w, + c3_y* buf_y, + u3_atom a); + + /* u3r_bytes_alloc(): + ** + ** Copy (len_w) bytes starting at (a_w) from (b) into a fresh allocation. + */ + c3_y* + u3r_bytes_alloc(c3_w a_w, + c3_w len_w, + u3_atom b); + + /* u3r_bytes_all(): + ** + ** Allocate and return a new byte array with all the bytes of (a), + ** storing the length in (len_w). + */ + c3_y* + u3r_bytes_all(c3_w* len_w, + u3_atom a); + + /* u3r_chop_bits(): + ** + ** XOR `wid_d` bits from`src_w` at `bif_g` to `dst_w` at `bif_g` + ** + ** NB: [dst_w] must have space for [bit_g + wid_d] bits + */ + void + u3r_chop_bits(c3_g bif_g, + c3_d wid_d, + c3_g bit_g, + c3_w* dst_w, + const c3_w* src_w); + + /* u3r_chop_words(): + ** + ** Into the bloq space of `met`, from position `fum` for a + ** span of `wid`, to position `tou`, XOR from `src_w` + ** into `dst_w`. + ** + ** NB: [dst_w] must have space for [tou_w + wid_w] bloqs + */ + void + u3r_chop_words(c3_g met_g, + c3_w fum_w, + c3_w wid_w, + c3_w tou_w, + c3_w* dst_w, + c3_w len_w, + const c3_w* src_w); + + /* u3r_chop(): + ** + ** Into the bloq space of `met`, from position `fum` for a + ** span of `wid`, to position `tou`, XOR from atom `src` + ** into `dst_w`. + ** + ** NB: [dst_w] must have space for [tou_w + wid_w] bloqs + */ + void + u3r_chop(c3_g met_g, + c3_w fum_w, + c3_w wid_w, + c3_w tou_w, + c3_w* dst_w, + u3_atom src); + + /* u3r_mp(): + ** + ** Copy (b) into (a_mp). + */ + void + u3r_mp(mpz_t a_mp, + u3_atom b); + + /* u3r_short(): + ** + ** Return short (a_w) of (b). + */ + c3_s + u3r_short(c3_w a_w, + u3_atom b); + + /* u3r_word(): + ** + ** Return word (a_w) of (b). + */ + c3_w + u3r_word(c3_w a_w, + u3_atom b); + + + /* u3r_word_fit(): + ** + ** Fill (out_w) with (a) if it fits, returning success. + */ + c3_t + u3r_word_fit(c3_w* out_w, + u3_atom a); + + /* u3r_chub(): + ** + ** Return double-word (a_w) of (b). + */ + c3_d + u3r_chub(c3_w a_w, + u3_atom b); + + /* u3r_words(): + ** + ** Copy words (a_w) through (a_w + b_w - 1) from (d) to (c). + */ + void + u3r_words(c3_w a_w, + c3_w b_w, + c3_w* c_w, + u3_atom d); + + /* u3r_chubs(): + ** + ** Copy double-words (a_w) through (a_w + b_w - 1) from (d) to (c). + */ + void + u3r_chubs(c3_w a_w, + c3_w b_w, + c3_d* c_d, + u3_atom d); + + /* u3r_safe_byte(): validate and retrieve byte. + */ + c3_o + u3r_safe_byte(u3_noun dat, c3_y* out_y); + + /* u3r_safe_word(): validate and retrieve word. + */ + c3_o + u3r_safe_word(u3_noun dat, c3_w* out_w); + + /* u3r_safe_chub(): validate and retrieve chub. + */ + c3_o + u3r_safe_chub(u3_noun dat, c3_d* out_d); + + /* u3r_string(): `a`, a text atom, as malloced C string. + */ + c3_c* + u3r_string(u3_atom a); + + /* u3r_tape(): `a`, a list of bytes, as malloced C string. + */ + c3_y* + u3r_tape(u3_noun a); + + /* u3r_skip(): + ** + ** Extract a constant from a formula, ignoring + ** safe/static hints, doing no computation. + */ + u3_weak + u3r_skip(u3_noun fol); + +#endif /* ifndef U3_RETRIEVE_H */ diff --git a/vere/pkg/noun/retrieve_tests.c b/vere/pkg/noun/retrieve_tests.c new file mode 100644 index 0000000..7ba7fa5 --- /dev/null +++ b/vere/pkg/noun/retrieve_tests.c @@ -0,0 +1,247 @@ +/// @file + +#include "noun.h" + +/* _setup(): prepare for tests. +*/ +static void +_setup(void) +{ + u3m_init(1 << 20); + u3m_pave(c3y); +} + +/* _test_mug(): spot check u3r_mug hashes. +*/ +static c3_i +_test_mug(void) +{ + c3_i ret_i = 1; + + if ( 0x4d441035 != u3r_mug_c("Hello, world!") ) { + fprintf(stderr, "fail (a)\r\n"); + ret_i = 0; + } + + { + u3_noun a = u3i_string("Hello, world!"); + + if ( 0x4d441035 != u3r_mug(a) ) { + fprintf(stderr, "fail (b)\r\n"); + ret_i = 0; + } + + u3z(a); + } + + { + c3_y byt_y[1]; + + if ( 0x79ff04e8 != u3r_mug_bytes(0, 0) ) { + fprintf(stderr, "fail (c) (0)\r\n"); + ret_i = 0; + } + + byt_y[0] = 1; + + if ( 0x715c2a60 != u3r_mug_bytes(byt_y, 1) ) { + fprintf(stderr, "fail (c) (1)\r\n"); + ret_i = 0; + } + + byt_y[0] = 2; + + if ( 0x718b9468 != u3r_mug_bytes(byt_y, 1) ) { + fprintf(stderr, "fail (c) (2)\r\n"); + ret_i = 0; + } + } + + if ( 0x3a811aec != u3r_mug_both(0x715c2a60, u3r_mug_cell(2, 3)) ) { + fprintf(stderr, "fail (d)\r\n"); + ret_i = 0; + } + + + { + if ( 0x192f5588 != u3r_mug_cell(0, 0) ) { + fprintf(stderr, "fail (e) (1)\r\n"); + ret_i = 0; + } + + if ( 0x6b32ec46 != u3r_mug_cell(1, 1) ) { + fprintf(stderr, "fail (e) (2)\r\n"); + ret_i = 0; + } + + if ( 0x2effe10 != u3r_mug_cell(2, 2) ) { + fprintf(stderr, "fail (e) (3)\r\n"); + ret_i = 0; + } + } + + { + u3_noun a = u3i_string("xxxxxxxxxxxxxxxxxxxxxxxxxxxx"); + + if ( 0x64dfda5c != u3r_mug(a) ) { + fprintf(stderr, "fail (f)\r\n"); + ret_i = 0; + } + + u3z(a); + } + + { + u3_noun a = u3qc_bex(32); + + if ( 0x7cefb7f != u3r_mug_cell(0, a) ) { + fprintf(stderr, "fail (g)\r\n"); + ret_i = 0; + } + + u3z(a); + } + + { + u3_noun a = u3ka_dec(u3qc_bex(128)); + + if ( 0x2aa06bfc != u3r_mug_cell(a, 1) ) { + fprintf(stderr, "fail (h)\r\n"); + ret_i = 0; + } + + u3z(a); + } + + { + // stick some zero bytes in a string + // + u3_noun str = u3kc_lsh(3, 1, + u3kc_mix(u3qc_bex(212), + u3i_string("abcdefjhijklmnopqrstuvwxyz"))); + + c3_w byt_w = u3r_met(3, str); + c3_w wor_w = u3r_met(5, str); + c3_y* str_y = c3_malloc(byt_w); + c3_w* str_w = c3_malloc(4 * wor_w); + c3_d str_d = 0; + + u3r_bytes(0, byt_w, str_y, str); + u3r_words(0, wor_w, str_w, str); + + str_d |= str_w[0]; + str_d |= ((c3_d)str_w[1] << 32ULL); + + if ( 0x34d08717 != u3r_mug(str) ) { + fprintf(stderr, "fail (i) (1) \r\n"); + ret_i = 0; + } + if ( 0x34d08717 != u3r_mug_bytes(str_y, byt_w) ) { + fprintf(stderr, "fail (i) (2)\r\n"); + ret_i = 0; + } + if ( 0x34d08717 != u3r_mug_words(str_w, wor_w) ) { + fprintf(stderr, "fail (i) (3)\r\n"); + ret_i = 0; + } + if ( u3r_mug_words(str_w, 2) != u3r_mug_chub(str_d) ) { + fprintf(stderr, "fail (i) (4)\r\n"); + ret_i = 0; + } + + c3_free(str_y); + c3_free(str_w); + u3z(str); + } + + { + c3_w som_w[4] = { 0, 0, 0, 1 }; + u3_noun som = u3i_words(4, som_w); + + if ( 0x519bd45c != u3r_mug(som) ) { + fprintf(stderr, "fail (j) (1)\r\n"); + ret_i = 0; + } + + if ( 0x519bd45c != u3r_mug_words(som_w, 4) ) { + fprintf(stderr, "fail (j) (2)\r\n"); + ret_i = 0; + } + + u3z(som); + } + + { + c3_w som_w[4] = { 0, 1, 0, 1 }; + u3_noun som = u3i_words(4, som_w); + + if ( 0x540eb8a9 != u3r_mug(som) ) { + fprintf(stderr, "fail (k) (1)\r\n"); + ret_i = 0; + } + + if ( 0x540eb8a9 != u3r_mug_words(som_w, 4) ) { + fprintf(stderr, "fail (k) (2)\r\n"); + ret_i = 0; + } + + u3z(som); + } + + { + c3_w som_w[4] = { 1, 1, 0, 1 }; + u3_noun som = u3i_words(4, som_w); + + if ( 0x319d28f9 != u3r_mug(som) ) { + fprintf(stderr, "fail (l) (1)\r\n"); + ret_i = 0; + } + + if ( 0x319d28f9 != u3r_mug_words(som_w, 4) ) { + fprintf(stderr, "fail (l) (2)\r\n"); + ret_i = 0; + } + + u3z(som); + } + + { + c3_w som_w[4] = { 0, 0, 0, 0xffff }; + u3_noun som = u3i_words(4, som_w); + + if ( 0x5230a260 != u3r_mug(som) ) { + fprintf(stderr, "fail (m) (1)\r\n"); + ret_i = 0; + } + + if ( 0x5230a260 != u3r_mug_words(som_w, 4) ) { + fprintf(stderr, "fail (m) (2)\r\n"); + ret_i = 0; + } + + u3z(som); + } + + return ret_i; +} + +/* main(): run all test cases. +*/ +int +main(int argc, char* argv[]) +{ + _setup(); + + if ( !_test_mug() ) { + fprintf(stderr, "test_mug: failed\r\n"); + exit(1); + } + + // GC + // + u3m_grab(u3_none); + + fprintf(stderr, "test_mug: ok\n"); + + return 0; +} diff --git a/vere/pkg/noun/serial.c b/vere/pkg/noun/serial.c new file mode 100644 index 0000000..5dd6f59 --- /dev/null +++ b/vere/pkg/noun/serial.c @@ -0,0 +1,1456 @@ +/// @file + +#include "serial.h" + +#include +#include + +#include "allocate.h" +#include "hashtable.h" +#include "jets/k.h" +#include "jets/q.h" +#include "retrieve.h" +#include "serial.h" +#include "ur/ur.h" +#include "vortex.h" +#include "xtract.h" + +const c3_y u3s_dit_y[64] = { + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', + 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', + 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', + 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', + '-', '~' +}; + +/* _cs_jam_buf: struct for tracking the fibonacci-allocated jam of a noun +*/ +struct _cs_jam_fib { + u3i_slab* sab_u; + u3p(u3h_root) har_p; + c3_w a_w; + c3_w b_w; + c3_w bit_w; +}; + +/* _cs_jam_fib_grow(): reallocate buffer with fibonacci growth +*/ +static inline void +_cs_jam_fib_grow(struct _cs_jam_fib* fib_u, c3_w mor_w) +{ + c3_w wan_w = fib_u->bit_w + mor_w; + + // check for c3_w overflow + // + if ( wan_w < mor_w ) { + u3m_bail(c3__fail); + return; + } + + if ( wan_w > fib_u->a_w ) { + c3_w c_w = 0; + + // fibonacci growth + // + while ( c_w < wan_w ) { + c_w = fib_u->a_w + fib_u->b_w; + fib_u->b_w = fib_u->a_w; + fib_u->a_w = c_w; + } + + u3i_slab_grow(fib_u->sab_u, 0, c_w); + } +} + +/* _cs_jam_fib_chop(): chop [met_w] bits of [a] into [fib_u] +*/ +static inline void +_cs_jam_fib_chop(struct _cs_jam_fib* fib_u, c3_w met_w, u3_noun a) +{ + c3_w bit_w = fib_u->bit_w; + _cs_jam_fib_grow(fib_u, met_w); + fib_u->bit_w += met_w; + + { + c3_w* buf_w = fib_u->sab_u->buf_w; + u3r_chop(0, 0, met_w, bit_w, buf_w, a); + } +} + +/* _cs_jam_fib_mat(): length-prefixed encode (mat) [a] into [fib_u] +*/ +static void +_cs_jam_fib_mat(struct _cs_jam_fib* fib_u, u3_noun a) +{ + if ( 0 == a ) { + _cs_jam_fib_chop(fib_u, 1, 1); + } + else { + c3_w a_w = u3r_met(0, a); + c3_w b_w = c3_bits_word(a_w); + c3_w bit_w = fib_u->bit_w; + + // amortize overflow checks and reallocation + // + { + c3_w met_w = a_w + (2 * b_w); + + if ( a_w > (UINT32_MAX - 64) ) { + u3m_bail(c3__fail); + return; + } + + _cs_jam_fib_grow(fib_u, met_w); + fib_u->bit_w += met_w; + } + + { + c3_w src_w[2]; + c3_w* buf_w = fib_u->sab_u->buf_w; + + // _cs_jam_fib_chop(fib_u, b_w+1, 1 << b_w); + // + { + c3_d dat_d = (c3_d)1 << b_w; + src_w[0] = (c3_w)dat_d; + src_w[1] = dat_d >> 32; + + u3r_chop_words(0, 0, b_w + 1, bit_w, buf_w, 2, src_w); + bit_w += b_w + 1; + } + + // _cs_jam_fib_chop(fib_u, b_w-1, a_w); + // + { + src_w[0] = a_w; + u3r_chop_words(0, 0, b_w - 1, bit_w, buf_w, 1, src_w); + bit_w += b_w - 1; + } + + // _cs_jam_fib_chop(fib_u, a_w, a); + // + u3r_chop(0, 0, a_w, bit_w, buf_w, a); + } + } +} + +/* _cs_jam_fib_atom_cb(): encode atom or backref +*/ +static void +_cs_jam_fib_atom_cb(u3_atom a, void* ptr_v) +{ + struct _cs_jam_fib* fib_u = ptr_v; + u3_weak b = u3h_git(fib_u->har_p, a); + + // if [a] has no backref, encode atom and put cursor into [har_p] + // + if ( u3_none == b ) { + u3h_put(fib_u->har_p, a, u3i_words(1, &(fib_u->bit_w))); + _cs_jam_fib_chop(fib_u, 1, 0); + _cs_jam_fib_mat(fib_u, a); + } + else { + c3_w a_w = u3r_met(0, a); + c3_w b_w = u3r_met(0, b); + + // if [a] is smaller than the backref, encode atom + // + if ( a_w <= b_w ) { + _cs_jam_fib_chop(fib_u, 1, 0); + _cs_jam_fib_mat(fib_u, a); + } + // otherwise, encode backref + // + else { + _cs_jam_fib_chop(fib_u, 2, 3); + _cs_jam_fib_mat(fib_u, b); + } + } +} + +/* _cs_jam_fib_cell_cb(): encode cell or backref +*/ +static c3_o +_cs_jam_fib_cell_cb(u3_noun a, void* ptr_v) +{ + struct _cs_jam_fib* fib_u = ptr_v; + u3_weak b = u3h_git(fib_u->har_p, a); + + // if [a] has no backref, encode cell and put cursor into [har_p] + // + if ( u3_none == b ) { + u3h_put(fib_u->har_p, a, u3i_words(1, &(fib_u->bit_w))); + _cs_jam_fib_chop(fib_u, 2, 1); + return c3y; + } + // otherwise, encode backref and shortcircuit traversal + // + else { + _cs_jam_fib_chop(fib_u, 2, 3); + _cs_jam_fib_mat(fib_u, b); + return c3n; + } +} + +/* u3s_jam_fib(): jam without atom allocation. +** +** returns atom-suitable words, and *bit_w will have +** the length (in bits). return should be freed with u3a_wfree(). +*/ +c3_w +u3s_jam_fib(u3i_slab* sab_u, u3_noun a) +{ + struct _cs_jam_fib fib_u; + fib_u.har_p = u3h_new(); + fib_u.sab_u = sab_u; + + // fib(12) is small enough to be reasonably fast to allocate. + // fib(11) is needed to get fib(13). + // + // + fib_u.a_w = ur_fib12; + fib_u.b_w = ur_fib11; + fib_u.bit_w = 0; + u3i_slab_init(sab_u, 0, fib_u.a_w); + + u3a_walk_fore(a, &fib_u, _cs_jam_fib_atom_cb, _cs_jam_fib_cell_cb); + + u3h_free(fib_u.har_p); + return fib_u.bit_w; +} + +typedef struct _jam_xeno_s { + u3p(u3h_root) har_p; + ur_bsw_t rit_u; +} _jam_xeno_t; + +/* _cs_coin_chub(): shortcircuit u3i_chubs(). +*/ +static inline u3_atom +_cs_coin_chub(c3_d a_d) +{ + return ( 0x7fffffffULL >= a_d ) ? a_d : u3i_chubs(1, &a_d); +} + +/* _cs_jam_xeno_atom(): encode in/direct atom in bitstream. +*/ +static inline void +_cs_jam_bsw_atom(ur_bsw_t* rit_u, c3_w met_w, u3_atom a) +{ + if ( c3y == u3a_is_cat(a) ) { + // XX need a ur_bsw_atom32() + // + ur_bsw_atom64(rit_u, (c3_y)met_w, (c3_d)a); + } + else { + u3a_atom* vat_u = u3a_to_ptr(a); + // XX assumes little-endian + // XX need a ur_bsw_atom_words() + // + c3_y* byt_y = (c3_y*)vat_u->buf_w; + ur_bsw_atom_bytes(rit_u, (c3_d)met_w, byt_y); + } +} + +/* _cs_jam_bsw_back(): encode in/direct backref in bitstream. +*/ +static inline void +_cs_jam_bsw_back(ur_bsw_t* rit_u, c3_w met_w, u3_atom a) +{ + c3_d bak_d = ( c3y == u3a_is_cat(a) ) + ? (c3_d)a + : u3r_chub(0, a); + + // XX need a ur_bsw_back32() + // + ur_bsw_back64(rit_u, (c3_y)met_w, bak_d); +} + +/* _cs_jam_xeno_atom(): encode atom or backref in bitstream. +*/ +static void +_cs_jam_xeno_atom(u3_atom a, void* ptr_v) +{ + _jam_xeno_t* jam_u = ptr_v; + ur_bsw_t* rit_u = &(jam_u->rit_u); + u3_weak bak = u3h_git(jam_u->har_p, a); + c3_w met_w = u3r_met(0, a); + + if ( u3_none == bak ) { + u3h_put(jam_u->har_p, a, _cs_coin_chub(rit_u->bits)); + _cs_jam_bsw_atom(rit_u, met_w, a); + } + else { + c3_w bak_w = u3r_met(0, bak); + + if ( met_w <= bak_w ) { + _cs_jam_bsw_atom(rit_u, met_w, a); + } + else { + _cs_jam_bsw_back(rit_u, bak_w, bak); + } + } +} + +/* _cs_jam_xeno_cell(): encode cell or backref in bitstream. +*/ +static c3_o +_cs_jam_xeno_cell(u3_noun a, void* ptr_v) +{ + _jam_xeno_t* jam_u = ptr_v; + ur_bsw_t* rit_u = &(jam_u->rit_u); + u3_weak bak = u3h_git(jam_u->har_p, a); + + if ( u3_none == bak ) { + u3h_put(jam_u->har_p, a, _cs_coin_chub(rit_u->bits)); + ur_bsw_cell(rit_u); + return c3y; + } + else { + _cs_jam_bsw_back(rit_u, u3r_met(0, bak), bak); + return c3n; + } +} + +/* u3s_jam_xeno(): jam with off-loom buffer (re-)allocation. +*/ +c3_d +u3s_jam_xeno(u3_noun a, c3_d* len_d, c3_y** byt_y) +{ + _jam_xeno_t jam_u = {0}; + ur_bsw_init(&jam_u.rit_u, ur_fib11, ur_fib12); + jam_u.har_p = u3h_new(); + + u3a_walk_fore(a, &jam_u, _cs_jam_xeno_atom, _cs_jam_xeno_cell); + + u3h_free(jam_u.har_p); + return ur_bsw_done(&jam_u.rit_u, len_d, byt_y); +} + +/* _cs_cue: stack frame for tracking intermediate cell results +*/ +typedef struct _cs_cue { + u3_weak hed; // head of a cell or u3_none + u3_atom wid; // bitwidth of [hed] or 0 + u3_atom cur; // bit-cursor position +} _cs_cue; + +/* _cs_rub: rub, TRANSFER [cur], RETAIN [a] +*/ +static inline u3_noun +_cs_rub(u3_atom cur, u3_atom a) +{ + u3_noun pro = u3qe_rub(cur, a); + u3z(cur); + return pro; +} + +/* _cs_cue_next(): advance into [a], reading next value +** TRANSFER [cur], RETAIN [a] +*/ +static inline u3_noun +_cs_cue_next(u3a_pile* pil_u, + u3p(u3h_root) har_p, + u3_atom cur, + u3_atom a, + u3_atom* wid) +{ + while ( 1 ) { + // read tag bit at cur + // + c3_y tag_y = u3qc_cut(0, cur, 1, a); + + // low bit unset, (1 + cur) points to an atom + // + // produce atom and the width we read + // + if ( 0 == tag_y ) { + u3_noun bur = _cs_rub(u3i_vint(cur), a); + u3_noun pro = u3k(u3t(bur)); + + u3h_put(har_p, cur, u3k(pro)); + *wid = u3qa_inc(u3h(bur)); + + u3z(bur); + return pro; + } + else { + // read tag bit at (1 + cur) + // + { + u3_noun x = u3qa_inc(cur); + tag_y = u3qc_cut(0, x, 1, a); + u3z(x); + } + + // next bit set, (2 + cur) points to a backref + // + // produce referenced value and the width we read + // + if ( 1 == tag_y ) { + u3_noun bur = _cs_rub(u3ka_add(2, cur), a); + u3_noun pro = u3x_good(u3h_get(har_p, u3t(bur))); + + *wid = u3qa_add(2, u3h(bur)); + + u3z(bur); + return pro; + } + // next bit unset, (2 + cur) points to the head of a cell + // + // push a head-frame onto the road stack and read the head + // + else { + _cs_cue* fam_u = u3a_push(pil_u); + + // NB: fam_u->wid unused in head-frame + // + fam_u->hed = u3_none; + fam_u->cur = cur; + + cur = u3qa_add(2, cur); + continue; + } + } + } +} + +u3_noun +u3s_cue(u3_atom a) +{ + // pro: cue'd noun product + // wid: bitwidth read to produce [pro] + // fam_u: stack frame + // har_p: backreference table + // pil_u: stack control structure + // + u3_noun pro; + u3_atom wid; + _cs_cue* fam_u; + u3p(u3h_root) har_p = u3h_new(); + u3a_pile pil_u; + + // initialize stack control + // + u3a_pile_prep(&pil_u, sizeof(*fam_u)); + + // commence cueing at bit-position 0 + // + pro = _cs_cue_next(&pil_u, har_p, 0, a, &wid); + + // process cell results + // + if ( c3n == u3a_pile_done(&pil_u) ) { + fam_u = u3a_peek(&pil_u); + + do { + // head-frame: stash [pro] and [wid]; continue into the tail + // + if ( u3_none == fam_u->hed ) { + // NB: fam_u->wid unused in head-frame + // + fam_u->hed = pro; + fam_u->wid = wid; + + // continue reading at the bit-position after [pro] + { + u3_noun cur = u3ka_add(2, u3qa_add(wid, fam_u->cur)); + pro = _cs_cue_next(&pil_u, har_p, cur, a, &wid); + } + + fam_u = u3a_peek(&pil_u); + } + // tail-frame: cons cell, recalculate [wid], and pop the stack + // + else { + pro = u3nc(fam_u->hed, pro); + u3h_put(har_p, fam_u->cur, u3k(pro)); + u3z(fam_u->cur); + wid = u3ka_add(2, u3ka_add(wid, fam_u->wid)); + fam_u = u3a_pop(&pil_u); + } + } while ( c3n == u3a_pile_done(&pil_u) ); + } + + u3z(wid); + u3h_free(har_p); + + return pro; +} + +/* +** stack frame for recording head vs tail iteration +** +** $? [u3_none bits=@] +** [hed=* bits=@] +*/ +typedef struct _cue_frame_s { + u3_weak ref; + c3_d bit_d; +} _cue_frame_t; + +/* _cs_cue_xeno_next(): read next value from bitstream, dictionary off-loom. +*/ +static inline ur_cue_res_e +_cs_cue_xeno_next(u3a_pile* pil_u, + ur_bsr_t* red_u, + ur_dict32_t* dic_u, + u3_noun* out) +{ + ur_root_t* rot_u = 0; + + while ( 1 ) { + c3_d len_d, bit_d = red_u->bits; + ur_cue_tag_e tag_e; + ur_cue_res_e res_e; + + if ( ur_cue_good != (res_e = ur_bsr_tag(red_u, &tag_e)) ) { + return res_e; + } + + switch ( tag_e ) { + default: u3_assert(0); + + case ur_jam_cell: { + _cue_frame_t* fam_u = u3a_push(pil_u); + + fam_u->ref = u3_none; + fam_u->bit_d = bit_d; + continue; + } + + case ur_jam_back: { + if ( ur_cue_good != (res_e = ur_bsr_rub_len(red_u, &len_d)) ) { + return res_e; + } + else if ( 62 < len_d ) { + return ur_cue_meme; + } + else { + c3_d bak_d = ur_bsr64_any(red_u, len_d); + c3_w bak_w; + + if ( !ur_dict32_get(rot_u, dic_u, bak_d, &bak_w) ) { + return ur_cue_back; + } + + *out = u3k((u3_noun)bak_w); + return ur_cue_good; + } + } + + case ur_jam_atom: { + if ( ur_cue_good != (res_e = ur_bsr_rub_len(red_u, &len_d)) ) { + return res_e; + } + + if ( 31 >= len_d ) { + *out = (u3_noun)ur_bsr32_any(red_u, len_d); + } + else { + c3_d byt_d = (len_d + 0x7) >> 3; + u3i_slab sab_u; + + if ( 0xffffffffULL < byt_d) { + return ur_cue_meme; + } + else { + u3i_slab_init(&sab_u, 3, byt_d); + ur_bsr_bytes_any(red_u, len_d, sab_u.buf_y); + *out = u3i_slab_mint_bytes(&sab_u); + } + } + + ur_dict32_put(rot_u, dic_u, bit_d, *out); + return ur_cue_good; + } + } + } +} + +struct _u3_cue_xeno { + ur_dict32_t dic_u; +}; + +/* _cs_cue_xeno(): cue on-loom, with off-loom dictionary in handle. +*/ +static u3_weak +_cs_cue_xeno(u3_cue_xeno* sil_u, + c3_d len_d, + const c3_y* byt_y) +{ + ur_bsr_t red_u = {0}; + ur_dict32_t* dic_u = &sil_u->dic_u; + u3a_pile pil_u; + _cue_frame_t* fam_u; + ur_cue_res_e res_e; + u3_noun ref; + + // initialize stack control + // + u3a_pile_prep(&pil_u, sizeof(*fam_u)); + + // init bitstream-reader + // + if ( ur_cue_good != (res_e = ur_bsr_init(&red_u, len_d, byt_y)) ) { + return c3n; + } + // bit-cursor (and backreferences) must fit in 62-bit direct atoms + // + else if ( 0x7ffffffffffffffULL < len_d ) { + return c3n; + } + + // advance into stream + // + res_e = _cs_cue_xeno_next(&pil_u, &red_u, dic_u, &ref); + + // process cell results + // + if ( (c3n == u3a_pile_done(&pil_u)) + && (ur_cue_good == res_e) ) + { + fam_u = u3a_peek(&pil_u); + + do { + // f is a head-frame; stash result and read the tail from the stream + // + if ( u3_none == fam_u->ref ) { + fam_u->ref = ref; + res_e = _cs_cue_xeno_next(&pil_u, &red_u, dic_u, &ref); + fam_u = u3a_peek(&pil_u); + } + // f is a tail-frame; pop the stack and continue + // + else { + ur_root_t* rot_u = 0; + + ref = u3nc(fam_u->ref, ref); + ur_dict32_put(rot_u, dic_u, fam_u->bit_d, ref); + fam_u = u3a_pop(&pil_u); + } + } + while ( (c3n == u3a_pile_done(&pil_u)) + && (ur_cue_good == res_e) ); + } + + if ( ur_cue_good == res_e ) { + return ref; + } + // on failure, unwind the stack and dispose of intermediate nouns + // + else if ( c3n == u3a_pile_done(&pil_u) ) { + do { + if ( u3_none != fam_u->ref ) { + u3z(fam_u->ref); + } + fam_u = u3a_pop(&pil_u); + } + while ( c3n == u3a_pile_done(&pil_u) ); + } + + return u3_none; +} + +/* u3s_cue_xeno_init_with(): initialize a cue_xeno handle as specified. +*/ +u3_cue_xeno* +u3s_cue_xeno_init_with(c3_d pre_d, c3_d siz_d) +{ + u3_cue_xeno* sil_u; + + sil_u = c3_calloc(sizeof(*sil_u)); + ur_dict32_grow((ur_root_t*)0, &sil_u->dic_u, pre_d, siz_d); + + return sil_u; +} + +/* u3s_cue_xeno_init(): initialize a cue_xeno handle. +*/ +u3_cue_xeno* +u3s_cue_xeno_init(void) +{ + return u3s_cue_xeno_init_with(ur_fib10, ur_fib11); +} + +/* u3s_cue_xeno_init(): cue on-loom, with off-loom dictionary in handle. +*/ +u3_weak +u3s_cue_xeno_with(u3_cue_xeno* sil_u, + c3_d len_d, + const c3_y* byt_y) +{ + u3_weak som; + + u3_assert( &(u3H->rod_u) == u3R ); + + som = _cs_cue_xeno(sil_u, len_d, byt_y); + ur_dict32_wipe(&sil_u->dic_u); + return som; +} + +/* u3s_cue_xeno_init(): dispose cue_xeno handle. +*/ +void +u3s_cue_xeno_done(u3_cue_xeno* sil_u) +{ + ur_dict_free((ur_dict_t*)&sil_u->dic_u); + c3_free(sil_u); +} + +/* u3s_cue_xeno(): cue on-loom, with off-loom dictionary. +*/ +u3_weak +u3s_cue_xeno(c3_d len_d, + const c3_y* byt_y) +{ + u3_cue_xeno* sil_u; + u3_weak som; + + u3_assert( &(u3H->rod_u) == u3R ); + + sil_u = u3s_cue_xeno_init(); + som = _cs_cue_xeno(sil_u, len_d, byt_y); + u3s_cue_xeno_done(sil_u); + return som; +} + +/* _cs_cue_need(): bail on ur_cue_* read failures. +*/ +static inline void +_cs_cue_need(ur_cue_res_e res_e) +{ + if ( ur_cue_good == res_e ) { + return; + } + else { + c3_m mot_m = (ur_cue_meme == res_e) ? c3__meme : c3__exit; + u3m_bail(mot_m); + } +} + +/* _cs_cue_get(): u3h_get wrapper handling allocation and refcounts. +*/ +static inline u3_weak +_cs_cue_get(u3p(u3h_root) har_p, c3_d key_d) +{ + u3_atom key = _cs_coin_chub(key_d); + u3_weak pro = u3h_get(har_p, key); + u3z(key); + return pro; +} + +/* _cs_cue_put(): u3h_put wrapper handling allocation and refcounts. +*/ +static inline u3_noun +_cs_cue_put(u3p(u3h_root) har_p, c3_d key_d, u3_noun val) +{ + u3_atom key = _cs_coin_chub(key_d); + u3h_put(har_p, key, u3k(val)); + u3z(key); + return val; +} + +/* _cs_cue_bytes_next(): read next value from bitstream. +*/ +static inline u3_noun +_cs_cue_bytes_next(u3a_pile* pil_u, + u3p(u3h_root) har_p, + ur_bsr_t* red_u) +{ + while ( 1 ) { + c3_d len_d, bit_d = red_u->bits; + ur_cue_tag_e tag_e; + + _cs_cue_need(ur_bsr_tag(red_u, &tag_e)); + + switch ( tag_e ) { + default: u3_assert(0); + + case ur_jam_cell: { + _cue_frame_t* fam_u = u3a_push(pil_u); + + fam_u->ref = u3_none; + fam_u->bit_d = bit_d; + continue; + } + + case ur_jam_back: { + _cs_cue_need(ur_bsr_rub_len(red_u, &len_d)); + + if ( 62 < len_d ) { + return u3m_bail(c3__meme); + } + else { + c3_d bak_d = ur_bsr64_any(red_u, len_d); + u3_weak bak = _cs_cue_get(har_p, bak_d); + return u3x_good(bak); + } + } + + case ur_jam_atom: { + u3_atom vat; + + _cs_cue_need(ur_bsr_rub_len(red_u, &len_d)); + + if ( 31 >= len_d ) { + vat = (u3_noun)ur_bsr32_any(red_u, len_d); + } + else { + u3i_slab sab_u; + u3i_slab_init(&sab_u, 0, len_d); + + ur_bsr_bytes_any(red_u, len_d, sab_u.buf_y); + vat = u3i_slab_mint_bytes(&sab_u); + } + + return _cs_cue_put(har_p, bit_d, vat); + } + } + } +} + +/* u3s_cue_bytes(): cue bytes onto the loom. +*/ +u3_noun +u3s_cue_bytes(c3_d len_d, const c3_y* byt_y) +{ + ur_bsr_t red_u = {0}; + u3a_pile pil_u; + _cue_frame_t* fam_u; + u3p(u3h_root) har_p; + u3_noun ref; + + // initialize stack control + // + u3a_pile_prep(&pil_u, sizeof(*fam_u)); + + // initialize a hash table for dereferencing backrefs + // + har_p = u3h_new(); + + // init bitstream-reader + // + _cs_cue_need(ur_bsr_init(&red_u, len_d, byt_y)); + + // bit-cursor (and backreferences) must fit in 62-bit direct atoms + // + if ( 0x7ffffffffffffffULL < len_d ) { + return u3m_bail(c3__meme); + } + + // advance into stream + // + ref = _cs_cue_bytes_next(&pil_u, har_p, &red_u); + + // process cell results + // + if ( c3n == u3a_pile_done(&pil_u) ) { + fam_u = u3a_peek(&pil_u); + + do { + // f is a head-frame; stash result and read the tail from the stream + // + if ( u3_none == fam_u->ref ) { + fam_u->ref = ref; + ref = _cs_cue_bytes_next(&pil_u, har_p, &red_u); + fam_u = u3a_peek(&pil_u); + } + // f is a tail-frame; pop the stack and continue + // + else { + ref = u3nc(fam_u->ref, ref); + _cs_cue_put(har_p, fam_u->bit_d, ref); + fam_u = u3a_pop(&pil_u); + } + } + while ( c3n == u3a_pile_done(&pil_u) ); + } + + u3h_free(har_p); + + return ref; +} + +/* u3s_cue_atom(): cue atom. +*/ +u3_noun +u3s_cue_atom(u3_atom a) +{ + c3_w len_w = u3r_met(3, a); + c3_y* byt_y; + + // XX assumes little-endian + // + if ( c3y == u3a_is_cat(a) ) { + byt_y = (c3_y*)&a; + } + else { + u3a_atom* vat_u = u3a_to_ptr(a); + byt_y = (c3_y*)vat_u->buf_w; + } + + return u3s_cue_bytes((c3_d)len_w, byt_y); +} + +/* _cs_etch_ud_size(): output length in @ud for given mpz_t. +*/ +static inline size_t +_cs_etch_ud_size(mpz_t a_mp) +{ + size_t len_i = mpz_sizeinbase(a_mp, 10); + return len_i + (len_i / 3); // separators +} + +/* _cs_etch_ud_bytes(): atom to @ud impl. +*/ +static size_t +_cs_etch_ud_bytes(mpz_t a_mp, size_t len_i, c3_y* hun_y) +{ + c3_y* buf_y = hun_y + (len_i - 1); + mpz_t b_mp; + c3_w b_w; + + mpz_init2(b_mp, 10); + + if ( !mpz_size(a_mp) ) { + *buf_y-- = '0'; + } + else { + while ( 1 ) { + b_w = mpz_tdiv_qr_ui(a_mp, b_mp, a_mp, 1000); + u3_assert( mpz_get_ui(b_mp) == b_w ); // XX + + if ( !mpz_size(a_mp) ) { + while ( b_w ) { + *buf_y-- = '0' + (b_w % 10); + b_w /= 10; + } + break; + } + + *buf_y-- = '0' + (b_w % 10); + b_w /= 10; + *buf_y-- = '0' + (b_w % 10); + b_w /= 10; + *buf_y-- = '0' + (b_w % 10); + *buf_y-- = '.'; + } + } + + buf_y++; + + u3_assert( buf_y >= hun_y ); // XX + + // mpz_sizeinbase may overestimate by 1 + // + { + size_t dif_i = buf_y - hun_y; + + if ( dif_i ) { + len_i -= dif_i; + memmove(hun_y, buf_y, len_i); + memset(hun_y + len_i, 0, dif_i); + } + } + + mpz_clear(b_mp); + + return len_i; +} + +/* u3s_etch_ud_smol(): c3_d to @ud +** +** =(26 (met 3 (scot %ud (dec (bex 64))))) +*/ +c3_y* +u3s_etch_ud_smol(c3_d a_d, c3_y hun_y[26]) +{ + c3_y* buf_y = hun_y + 25; + c3_w b_w; + + if ( !a_d ) { + *buf_y-- = '0'; + } + else { + while ( 1 ) { + b_w = a_d % 1000; + a_d /= 1000; + + if ( !a_d ) { + while ( b_w ) { + *buf_y-- = '0' + (b_w % 10); + b_w /= 10; + } + break; + } + + *buf_y-- = '0' + (b_w % 10); + b_w /= 10; + *buf_y-- = '0' + (b_w % 10); + b_w /= 10; + *buf_y-- = '0' + (b_w % 10); + *buf_y-- = '.'; + } + } + + return buf_y + 1; +} + +/* u3s_etch_ud(): atom to @ud. +*/ +u3_atom +u3s_etch_ud(u3_atom a) +{ + c3_d a_d; + + if ( c3y == u3r_safe_chub(a, &a_d) ) { + c3_y hun_y[26]; + c3_y* buf_y = u3s_etch_ud_smol(a_d, hun_y); + c3_w dif_w = (c3_p)buf_y - (c3_p)hun_y; + return u3i_bytes(26 - dif_w, buf_y); + } + + u3i_slab sab_u; + size_t len_i; + mpz_t a_mp; + u3r_mp(a_mp, a); + + len_i = _cs_etch_ud_size(a_mp); + u3i_slab_bare(&sab_u, 3, len_i); + sab_u.buf_w[sab_u.len_w - 1] = 0; + + _cs_etch_ud_bytes(a_mp, len_i, sab_u.buf_y); + + mpz_clear(a_mp); + return u3i_slab_mint_bytes(&sab_u); +} + +/* u3s_etch_ud_c(): atom to @ud, as a malloc'd c string. +*/ +size_t +u3s_etch_ud_c(u3_atom a, c3_c** out_c) +{ + c3_d a_d; + size_t len_i; + c3_y* buf_y; + + if ( c3y == u3r_safe_chub(a, &a_d) ) { + c3_y hun_y[26]; + + buf_y = u3s_etch_ud_smol(a_d, hun_y); + len_i = 26 - ((c3_p)buf_y - (c3_p)hun_y); + + *out_c = c3_malloc(len_i + 1); + (*out_c)[len_i] = 0; + memcpy(*out_c, buf_y, len_i); + + return len_i; + } + + mpz_t a_mp; + u3r_mp(a_mp, a); + + len_i = _cs_etch_ud_size(a_mp); + buf_y = c3_malloc(len_i + 1); + buf_y[len_i] = 0; + + len_i = _cs_etch_ud_bytes(a_mp, len_i, buf_y); + + mpz_clear(a_mp); + + *out_c = (c3_c*)buf_y; + return len_i; +} + +/* _cs_etch_ux_bytes(): atom to @ux impl. +*/ +static void +_cs_etch_ux_bytes(u3_atom a, c3_w len_w, c3_y* buf_y) +{ + c3_w i_w; + c3_s inp_s; + + for ( i_w = 0; i_w < len_w; i_w++ ) { + inp_s = u3r_short(i_w, a); + + *buf_y-- = u3s_dit_y[(inp_s >> 0) & 0xf]; + *buf_y-- = u3s_dit_y[(inp_s >> 4) & 0xf]; + *buf_y-- = u3s_dit_y[(inp_s >> 8) & 0xf]; + *buf_y-- = u3s_dit_y[(inp_s >> 12) & 0xf]; + *buf_y-- = '.'; + } + + inp_s = u3r_short(len_w, a); + + while ( inp_s ) { + *buf_y-- = u3s_dit_y[inp_s & 0xf]; + inp_s >>= 4; + } + + *buf_y-- = 'x'; + *buf_y = '0'; +} + +/* u3s_etch_ux(): atom to @ux. +*/ +u3_atom +u3s_etch_ux(u3_atom a) +{ + if ( u3_blip == a ) { + return c3_s3('0', 'x', '0'); + } + + c3_w sep_w = u3r_met(4, a) - 1; // number of separators + c3_w las_w = u3r_met(2, u3r_short(sep_w, a)); // digits before separator + c3_w len_w = 2 + las_w + (sep_w * 5); // output bytes + u3i_slab sab_u; + u3i_slab_bare(&sab_u, 3, len_w); + sab_u.buf_w[sab_u.len_w - 1] = 0; + + _cs_etch_ux_bytes(a, sep_w, sab_u.buf_y + len_w - 1); + + return u3i_slab_moot_bytes(&sab_u); +} + +/* u3s_etch_ux_c(): atom to @ux, as a malloc'd c string. +*/ +size_t +u3s_etch_ux_c(u3_atom a, c3_c** out_c) +{ + if ( u3_blip == a ) { + *out_c = strdup("0x0"); + return 3; + } + + c3_y* buf_y; + c3_w sep_w = u3r_met(4, a) - 1; + c3_w las_w = u3r_met(2, u3r_short(sep_w, a)); + size_t len_i = 2 + las_w + (sep_w * 5); + + buf_y = c3_malloc(1 + len_i); + buf_y[len_i] = 0; + _cs_etch_ux_bytes(a, sep_w, buf_y + len_i - 1); + + *out_c = (c3_c*)buf_y; + return len_i; +} + +// uint div+ceil non-zero +// +#define _divc_nz(x, y) (((x) + ((y) - 1)) / (y)) + +/* _cs_etch_uv_size(): output length in @uv (and aligned bits). +*/ +static inline size_t +_cs_etch_uv_size(u3_atom a, c3_w* out_w) +{ + c3_w met_w = u3r_met(0, a); + c3_w sep_w = _divc_nz(met_w, 25) - 1; // number of separators + c3_w max_w = sep_w * 25; + c3_w end_w = 0; + u3r_chop(0, max_w, 25, 0, &end_w, a); + + c3_w bit_w = c3_bits_word(end_w); + c3_w las_w = _divc_nz(bit_w, 5); // digits before separator + + *out_w = max_w; + return 2 + las_w + (sep_w * 6); +} + + +/* _cs_etch_uv_bytes(): atom to @uv impl. +*/ +static void +_cs_etch_uv_bytes(u3_atom a, c3_w max_w, c3_y* buf_y) +{ + c3_w i_w; + c3_w inp_w; + + for ( i_w = 0; i_w < max_w; i_w += 25 ) { + inp_w = 0; + u3r_chop(0, i_w, 25, 0, &inp_w, a); + + *buf_y-- = u3s_dit_y[(inp_w >> 0) & 0x1f]; + *buf_y-- = u3s_dit_y[(inp_w >> 5) & 0x1f]; + *buf_y-- = u3s_dit_y[(inp_w >> 10) & 0x1f]; + *buf_y-- = u3s_dit_y[(inp_w >> 15) & 0x1f]; + *buf_y-- = u3s_dit_y[(inp_w >> 20) & 0x1f]; + *buf_y-- = '.'; + } + + inp_w = 0; + u3r_chop(0, max_w, 25, 0, &inp_w, a); + + while ( inp_w ) { + *buf_y-- = u3s_dit_y[inp_w & 0x1f]; + inp_w >>= 5; + } + + *buf_y-- = 'v'; + *buf_y = '0'; +} + +/* u3s_etch_uv(): atom to @uv. +*/ +u3_atom +u3s_etch_uv(u3_atom a) +{ + if ( u3_blip == a ) { + return c3_s3('0', 'v', '0'); + } + + u3i_slab sab_u; + c3_w max_w; + size_t len_i = _cs_etch_uv_size(a, &max_w); + + u3i_slab_bare(&sab_u, 3, len_i); + sab_u.buf_w[sab_u.len_w - 1] = 0; + + _cs_etch_uv_bytes(a, max_w, sab_u.buf_y + len_i - 1); + + return u3i_slab_moot_bytes(&sab_u); +} + +/* u3s_etch_uv_c(): atom to @uv, as a malloc'd c string. +*/ +size_t +u3s_etch_uv_c(u3_atom a, c3_c** out_c) +{ + if ( u3_blip == a ) { + *out_c = strdup("0v0"); + return 3; + } + + c3_y* buf_y; + c3_w max_w; + size_t len_i = _cs_etch_uv_size(a, &max_w); + + buf_y = c3_malloc(1 + len_i); + buf_y[len_i] = 0; + _cs_etch_uv_bytes(a, max_w, buf_y + len_i - 1); + + *out_c = (c3_c*)buf_y; + return len_i; +} + +/* _cs_etch_uw_size(): output length in @uw (and aligned bits). +*/ +static inline size_t +_cs_etch_uw_size(u3_atom a, c3_w* out_w) +{ + c3_w met_w = u3r_met(0, a); + c3_w sep_w = _divc_nz(met_w, 30) - 1; // number of separators + c3_w max_w = sep_w * 30; + c3_w end_w = 0; + u3r_chop(0, max_w, 30, 0, &end_w, a); + + c3_w bit_w = c3_bits_word(end_w); + c3_w las_w = _divc_nz(bit_w, 6); // digits before separator + + *out_w = max_w; + return 2 + las_w + (sep_w * 6); +} + +/* _cs_etch_uw_bytes(): atom to @uw impl. +*/ +static void +_cs_etch_uw_bytes(u3_atom a, c3_w max_w, c3_y* buf_y) +{ + c3_w i_w; + c3_w inp_w; + + for ( i_w = 0; i_w < max_w; i_w += 30 ) { + inp_w = 0; + u3r_chop(0, i_w, 30, 0, &inp_w, a); + + *buf_y-- = u3s_dit_y[(inp_w >> 0) & 0x3f]; + *buf_y-- = u3s_dit_y[(inp_w >> 6) & 0x3f]; + *buf_y-- = u3s_dit_y[(inp_w >> 12) & 0x3f]; + *buf_y-- = u3s_dit_y[(inp_w >> 18) & 0x3f]; + *buf_y-- = u3s_dit_y[(inp_w >> 24) & 0x3f]; + *buf_y-- = '.'; + } + + inp_w = 0; + u3r_chop(0, max_w, 30, 0, &inp_w, a); + + while ( inp_w ) { + *buf_y-- = u3s_dit_y[inp_w & 0x3f]; + inp_w >>= 6; + } + + *buf_y-- = 'w'; + *buf_y = '0'; +} + +/* u3s_etch_uw(): atom to @uw. +*/ +u3_atom +u3s_etch_uw(u3_atom a) +{ + if ( u3_blip == a ) { + return c3_s3('0', 'w', '0'); + } + + u3i_slab sab_u; + c3_w max_w; + size_t len_i = _cs_etch_uw_size(a, &max_w); + + u3i_slab_bare(&sab_u, 3, len_i); + sab_u.buf_w[sab_u.len_w - 1] = 0; + + _cs_etch_uw_bytes(a, max_w, sab_u.buf_y + len_i - 1); + + return u3i_slab_moot_bytes(&sab_u); +} + +/* u3s_etch_uw_c(): atom to @uw, as a malloc'd c string. +*/ +size_t +u3s_etch_uw_c(u3_atom a, c3_c** out_c) +{ + if ( u3_blip == a ) { + *out_c = strdup("0w0"); + return 3; + } + + c3_y* buf_y; + c3_w max_w; + size_t len_i = _cs_etch_uw_size(a, &max_w); + + buf_y = c3_malloc(1 + len_i); + buf_y[len_i] = 0; + _cs_etch_uw_bytes(a, max_w, buf_y + len_i - 1); + + *out_c = (c3_c*)buf_y; + return len_i; +} + +#undef _divc_nz + +#define DIGIT(a) ( ((a) >= '0') && ((a) <= '9') ) +#define BLOCK(a) ( ('.' == (a)[0]) \ + && DIGIT(a[1]) \ + && DIGIT(a[2]) \ + && DIGIT(a[3]) ) + +/* u3s_sift_ud_bytes: parse @ud +*/ +u3_weak +u3s_sift_ud_bytes(c3_w len_w, c3_y* byt_y) +{ + c3_y num_y = len_w % 4; // leading digits length + c3_s val_s = 0; // leading digits value + + // +ape:ag: just 0 + // + if ( !len_w ) return u3_none; + if ( '0' == *byt_y ) return ( 1 == len_w ) ? (u3_noun)0 : u3_none; + + // +ted:ab: leading nonzero (checked above), plus up to 2 digits + // +#define NEXT() do { \ + if ( !DIGIT(*byt_y) ) return u3_none; \ + val_s *= 10; \ + val_s += *byt_y++ - '0'; \ + } while (0) + + switch ( num_y ) { + case 3: NEXT(); + case 2: NEXT(); + case 1: NEXT(); break; + case 0: return u3_none; + } + +#undef NEXT + + len_w -= num_y; + + // +tid:ab: dot-prefixed 3-digit blocks + // + // avoid gmp allocation if possible + // - 19 decimal digits fit in 64 bits + // - 18 digits is 24 bytes with separators + // + if ( ((1 == num_y) && (24 >= len_w)) + || (20 >= len_w) ) + { + c3_d val_d = val_s; + + while ( len_w ) { + if ( !BLOCK(byt_y) ) return u3_none; + + byt_y++; + + val_d *= 10; + val_d += *byt_y++ - '0'; + val_d *= 10; + val_d += *byt_y++ - '0'; + val_d *= 10; + val_d += *byt_y++ - '0'; + + len_w -= 4; + } + + return u3i_chub(val_d); + } + + { + // avoid gmp realloc if possible + // + mpz_t a_mp; + { + c3_d bit_d = (c3_d)(len_w / 4) * 10; + mpz_init2(a_mp, (c3_w)c3_min(bit_d, UINT32_MAX)); + mpz_set_ui(a_mp, val_s); + } + + while ( len_w ) { + if ( !BLOCK(byt_y) ) { + mpz_clear(a_mp); + return u3_none; + } + + byt_y++; + + val_s = *byt_y++ - '0'; + val_s *= 10; + val_s += *byt_y++ - '0'; + val_s *= 10; + val_s += *byt_y++ - '0'; + + mpz_mul_ui(a_mp, a_mp, 1000); + mpz_add_ui(a_mp, a_mp, val_s); + + len_w -= 4; + } + + return u3i_mp(a_mp); + } +} + +#undef BLOCK +#undef DIGIT + +/* u3s_sift_ud: parse @ud. +*/ +u3_weak +u3s_sift_ud(u3_atom a) +{ + c3_w len_w = u3r_met(3, a); + c3_y* byt_y; + + // XX assumes little-endian + // + if ( c3y == u3a_is_cat(a) ) { + byt_y = (c3_y*)&a; + } + else { + u3a_atom* vat_u = u3a_to_ptr(a); + byt_y = (c3_y*)vat_u->buf_w; + } + + return u3s_sift_ud_bytes(len_w, byt_y); +} diff --git a/vere/pkg/noun/serial.h b/vere/pkg/noun/serial.h new file mode 100644 index 0000000..d7dd5a8 --- /dev/null +++ b/vere/pkg/noun/serial.h @@ -0,0 +1,137 @@ +/// @file + +#ifndef U3_SERIAL_H +#define U3_SERIAL_H + +#include "c3/c3.h" +#include "imprison.h" +#include "types.h" + /* constants + */ + /* u3_dit_y: digit table for @ux/@uv/@uw. + */ + extern const c3_y u3s_dit_y[64]; + + /* opaque handles + */ + /* u3_cue_xeno: handle for cue-ing with an off-loom dictionary. + */ + typedef struct _u3_cue_xeno u3_cue_xeno; + + /* Noun serialization. All noun arguments RETAINED. + */ + + /* u3s_jam_fib(): jam without atom allocation. + ** + ** returns atom-suitable words, and *bit_w will have + ** the length (in bits). return should be freed with u3a_wfree(). + */ + c3_w + u3s_jam_fib(u3i_slab* sab_u, u3_noun a); + + /* u3s_jam_xeno(): jam with off-loom buffer (re-)allocation. + */ + c3_d + u3s_jam_xeno(u3_noun a, c3_d* len_d, c3_y** byt_y); + + /* u3s_cue(): cue [a] + */ + u3_noun + u3s_cue(u3_atom a); + + /* u3s_cue_xeno_init_with(): initialize a cue_xeno handle as specified. + */ + u3_cue_xeno* + u3s_cue_xeno_init_with(c3_d pre_d, c3_d siz_d); + + /* u3s_cue_xeno_init(): initialize a cue_xeno handle. + */ + u3_cue_xeno* + u3s_cue_xeno_init(void); + + /* u3s_cue_xeno_init(): cue on-loom, with off-loom dictionary in handle. + */ + u3_weak + u3s_cue_xeno_with(u3_cue_xeno* sil_u, + c3_d len_d, + const c3_y* byt_y); + + /* u3s_cue_xeno_init(): dispose cue_xeno handle. + */ + void + u3s_cue_xeno_done(u3_cue_xeno* sil_u); + + /* u3s_cue_xeno(): cue on-loom, with off-loom dictionary. + */ + u3_weak + u3s_cue_xeno(c3_d len_d, + const c3_y* byt_y); + + /* u3s_cue_bytes(): cue bytes onto the loom. + */ + u3_noun + u3s_cue_bytes(c3_d len_d, const c3_y* byt_y); + + /* u3s_cue_atom(): cue atom. + */ + u3_noun + u3s_cue_atom(u3_atom a); + + /* u3s_etch_ud_smol(): c3_d to @ud + ** + ** =(26 (met 3 (scot %ud (dec (bex 64))))) + */ + c3_y* + u3s_etch_ud_smol(c3_d a_d, c3_y hun_y[26]); + + /* u3s_etch_ud(): atom to @ud. + */ + u3_atom + u3s_etch_ud(u3_atom a); + + /* u3s_etch_ud_c(): atom to @ud, as a malloc'd c string. + */ + size_t + u3s_etch_ud_c(u3_atom a, c3_c** out_c); + + /* u3s_etch_ux(): atom to @ux. + */ + u3_atom + u3s_etch_ux(u3_atom a); + + /* u3s_etch_ux_c(): atom to @ux, as a malloc'd c string. + */ + size_t + u3s_etch_ux_c(u3_atom a, c3_c** out_c); + + /* u3s_etch_uv(): atom to @uv. + */ + u3_atom + u3s_etch_uv(u3_atom a); + + /* u3s_etch_uv_c(): atom to @uv, as a malloc'd c string. + */ + size_t + u3s_etch_uv_c(u3_atom a, c3_c** out_c); + + /* u3s_etch_uw(): atom to @uw. + */ + u3_atom + u3s_etch_uw(u3_atom a); + + /* u3s_etch_uw_c(): atom to @uw, as a malloc'd c string. + */ + size_t + u3s_etch_uw_c(u3_atom a, c3_c** out_c); + + /* u3s_sift_ud_bytes: parse @ud. + */ + u3_weak + u3s_sift_ud_bytes(c3_w len_w, c3_y* byt_y); + + /* u3s_sift_ud: parse @ud. + */ + u3_weak + u3s_sift_ud(u3_atom a); + +#endif /* ifndef U3_SERIAL_H */ diff --git a/vere/pkg/noun/serial_tests.c b/vere/pkg/noun/serial_tests.c new file mode 100644 index 0000000..5f1caf7 --- /dev/null +++ b/vere/pkg/noun/serial_tests.c @@ -0,0 +1,264 @@ +/// @file + +#include "noun.h" + +/* _setup(): prepare for tests. +*/ +static void +_setup(void) +{ + u3m_boot_lite(1 << 24); +} + +static void +_byte_print(c3_d out_d, + c3_y* out_y, + c3_w len_w, + const c3_y* byt_y) +{ + c3_d i_d; + + fprintf(stderr, " actual: { "); + for ( i_d = 0; i_d < out_d; i_d++ ) { + fprintf(stderr, "0x%x, ", out_y[i_d]); + } + fprintf(stderr, "}\r\n"); + fprintf(stderr, " expect: { "); + for ( i_d = 0; i_d < len_w; i_d++ ) { + fprintf(stderr, "0x%x, ", byt_y[i_d]); + } + fprintf(stderr, "}\r\n"); +} + +static c3_i +_test_jam_spec(const c3_c* cap_c, + u3_noun ref, + c3_w len_w, + const c3_y* byt_y) +{ + c3_i ret_i = 1; + c3_d out_d; + c3_y* out_y; + + { + u3s_jam_xeno(ref, &out_d, &out_y); + + if ( 0 != memcmp(out_y, byt_y, len_w) ) { + fprintf(stderr, "\033[31mjam xeno %s fail\033[0m\r\n", cap_c); + _byte_print(out_d, out_y, len_w, byt_y); + ret_i = 0; + } + + free(out_y); + } + + { + u3i_slab sab_u; + c3_w bit_w = u3s_jam_fib(&sab_u, ref); + + out_d = ((c3_d)bit_w + 0x7) >> 3; + // XX assumes little-endian + // + out_y = sab_u.buf_y; + + if ( 0 != memcmp(out_y, byt_y, len_w) ) { + fprintf(stderr, "\033[31mjam fib %s fail\033[0m\r\n", cap_c); + _byte_print(out_d, out_y, len_w, byt_y); + ret_i = 0; + } + + u3i_slab_free(&sab_u); + } + + return ret_i; +} + +static c3_i +_test_cue_spec(const c3_c* cap_c, + u3_noun ref, + c3_w len_w, + const c3_y* byt_y) +{ + c3_i ret_i = 1; + + { + u3_noun pro = u3m_soft(0, u3s_cue_atom, u3i_bytes(len_w, byt_y)); + u3_noun tag, out; + + u3x_cell(pro, &tag, &out); + + if ( u3_blip != tag ) { + fprintf(stderr, "\033[31mcue %s fail 1\033[0m\r\n", cap_c); + ret_i = 0; + } + else if ( c3n == u3r_sing(ref, out) ) { + fprintf(stderr, "\033[31mcue %s fail 2\033[0m\r\n", cap_c); + u3m_p("ref", ref); + u3m_p("out", out); + ret_i = 0; + } + + u3z(pro); + } + + { + u3_noun out; + + if ( u3_none == (out = u3s_cue_xeno(len_w, byt_y)) ) { + fprintf(stderr, "\033[31mcue %s fail 3\033[0m\r\n", cap_c); + ret_i = 0; + } + else if ( c3n == u3r_sing(ref, out) ) { + fprintf(stderr, "\033[31mcue %s fail 4\033[0m\r\n", cap_c); + u3m_p("ref", ref); + u3m_p("out", out); + ret_i = 0; + } + + u3z(out); + } + + return ret_i; +} + +static c3_i +_test_jam_roundtrip(void) +{ + c3_i ret_i = 1; + +# define TEST_CASE(a, b) \ + const c3_c* cap_c = a; \ + u3_noun ref = b; \ + ret_i &= _test_jam_spec(cap_c, ref, sizeof(res_y), res_y); \ + ret_i &= _test_cue_spec(cap_c, ref, sizeof(res_y), res_y); \ + u3z(ref); + + { + c3_y res_y[1] = { 0x2 }; + TEST_CASE("0", 0); + } + + { + c3_y res_y[1] = { 0xc }; + TEST_CASE("1", 1); + } + + { + c3_y res_y[1] = { 0x48 }; + TEST_CASE("2", 2); + } + + { + c3_y res_y[6] = { 0xc0, 0x37, 0xb, 0x9b, 0xa3, 0x3 }; + TEST_CASE("%fast", c3__fast); + } + + { + c3_y res_y[6] = { 0xc0, 0x37, 0xab, 0x63, 0x63, 0x3 }; + TEST_CASE("%full", c3__full); + } + + { + c3_y res_y[1] = { 0x29 }; + TEST_CASE("[0 0]", u3nc(0, 0)); + } + + { + c3_y res_y[2] = { 0x31, 0x3 }; + TEST_CASE("[1 1]", u3nc(1, 1)); + } + + { + c3_y res_y[2] = { 0x31, 0x12 }; + TEST_CASE("[1 2]", u3nc(1, 2)); + } + + { + c3_y res_y[2] = { 0x21, 0xd1 }; + TEST_CASE("[2 3]", u3nc(2, 3)); + } + + { + c3_y res_y[11] = { 0x1, 0xdf, 0x2c, 0x6c, 0x8e, 0xe, 0x7c, 0xb3, 0x3a, 0x36, 0x36 }; + TEST_CASE("[%fast %full]", u3nc(c3__fast, c3__full)); + } + + { + c3_y res_y[2] = { 0x71, 0xcc }; + TEST_CASE("[1 1 1]", u3nc(1, u3nc(1, 1))); + } + + { + c3_y res_y[3] = { 0x71, 0x48, 0x34 }; + TEST_CASE("[1 2 3]", u3nt(1, 2, 3)); + } + + { + c3_y res_y[12] = { 0x1, 0xdf, 0x2c, 0x6c, 0x8e, 0x1e, 0xf0, 0xcd, 0xea, 0xd8, 0xd8, 0x93 }; + TEST_CASE("[%fast %full %fast]", u3nc(c3__fast, u3nc(c3__full, c3__fast))); + } + + { + c3_y res_y[3] = { 0xc5, 0x48, 0x34 }; + TEST_CASE("[[1 2] 3]", u3nc(u3nc(1, 2), 3)); + } + + { + c3_y res_y[5] = { 0xc5, 0xc8, 0x26, 0x27, 0x1 }; + TEST_CASE("[[1 2] [1 2] 1 2]", u3nt(u3nc(1, 2), u3nc(1, 2), u3nc(1, 2))); + } + + { + c3_y res_y[6] = { 0xa5, 0x35, 0x19, 0xf3, 0x18, 0x5 }; + TEST_CASE("[[0 0] [[0 0] 1 1] 1 1]", u3nc(u3nc(0, 0), u3nc(u3nc(u3nc(0, 0), u3nc(1, 1)), u3nc(1, 1)))); + } + + { + c3_y res_y[14] = { 0x15, 0x17, 0xb2, 0xd0, 0x85, 0x59, 0xb8, 0x61, 0x87, 0x5f, 0x10, 0x54, 0x55, 0x5 }; + TEST_CASE("deep", u3nc(u3nc(u3nc(1, u3nc(u3nc(2, u3nc(u3nc(3, u3nc(u3nc(4, u3nc(u3nt(5, 6, u3nc(7, u3nc(u3nc(8, 0), 0))), 0)), 0)), 0)), 0)), 0), 0)); + } + + { + c3_y inp_y[33] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }; + c3_y res_y[35] = { 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8 }; + TEST_CASE("wide", u3i_bytes(sizeof(inp_y), inp_y)); + } + + { + c3_y inp_y[16] = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0xa8, 0xab, 0x60, 0xef, 0x2d, 0xd, 0x0, 0x0, 0x80 }; + c3_y res_y[19] = { 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x18, 0x50, 0x57, 0xc1, 0xde, 0x5b, 0x1a, 0x0, 0x0, 0x0, 0x1 }; + TEST_CASE("date", u3i_bytes(sizeof(inp_y), inp_y)); + } + + { + u3_noun a = u3i_string("abcdefjhijklmnopqrstuvwxyz"); + c3_y res_y[32] = { + 0x1, 0xf8, 0xc, 0x13, 0x1b, 0x23, 0x2b, 0x33, 0x53, 0x43, 0x4b, + 0x53, 0x5b, 0x63, 0x6b, 0x73, 0x7b, 0x83, 0x8b, 0x93, 0x9b, 0xa3, + 0xab, 0xb3, 0xbb, 0xc3, 0xcb, 0xd3, 0x87, 0xc, 0x3d, 0x9 + }; + TEST_CASE("alpha", u3nq(u3k(a), 2, 3, a)); + } + + return ret_i; +} + +/* main(): run all test cases. +*/ +int +main(int argc, char* argv[]) +{ + _setup(); + + if ( !_test_jam_roundtrip() ) { + fprintf(stderr, "test jam: failed\r\n"); + exit(1); + } + + // GC + // + u3m_grab(u3_none); + + fprintf(stderr, "test jam: ok\r\n"); + return 0; +} diff --git a/vere/pkg/noun/ship.c b/vere/pkg/noun/ship.c new file mode 100644 index 0000000..6aebff7 --- /dev/null +++ b/vere/pkg/noun/ship.c @@ -0,0 +1,109 @@ +#include "c3/c3.h" +#include "types.h" +#include "imprison.h" +#include "retrieve.h" +#include "vortex.h" +#include "ship.h" + +static inline void +_s_chub_to_bytes(c3_y byt_y[8], c3_d num_d) +{ + byt_y[0] = num_d & 0xff; + byt_y[1] = (num_d >> 8) & 0xff; + byt_y[2] = (num_d >> 16) & 0xff; + byt_y[3] = (num_d >> 24) & 0xff; + byt_y[4] = (num_d >> 32) & 0xff; + byt_y[5] = (num_d >> 40) & 0xff; + byt_y[6] = (num_d >> 48) & 0xff; + byt_y[7] = (num_d >> 56) & 0xff; +} + +static inline c3_d +_s_bytes_to_chub(c3_y byt_y[8]) +{ + return (c3_d)byt_y[0] + | (c3_d)byt_y[1] << 8 + | (c3_d)byt_y[2] << 16 + | (c3_d)byt_y[3] << 24 + | (c3_d)byt_y[4] << 32 + | (c3_d)byt_y[5] << 40 + | (c3_d)byt_y[6] << 48 + | (c3_d)byt_y[7] << 56; +} + +void +u3_ship_to_bytes(u3_ship who_u, c3_y len_y, c3_y* buf_y) +{ + c3_y sip_y[16] = {0}; + + _s_chub_to_bytes(sip_y, who_u[0]); + _s_chub_to_bytes(sip_y + 8, who_u[1]); + + memcpy(buf_y, sip_y, c3_min(16, len_y)); +} + +void +u3_ship_of_bytes(u3_ship who_u, c3_y len_y, c3_y* buf_y) +{ + c3_y sip_y[16] = {0}; + memcpy(sip_y, buf_y, c3_min(16, len_y)); + + who_u[0] = _s_bytes_to_chub(sip_y); + who_u[1] = _s_bytes_to_chub(sip_y + 8); +} + +u3_atom +u3_ship_to_noun(u3_ship who_u) +{ + return u3i_chubs(2, who_u); +} + +c3_c* +u3_ship_to_string(u3_ship who_u) +{ + u3_noun ser = u3dc("scot", c3__p, u3_ship_to_noun(who_u)); + c3_c* who_c = u3r_string(ser); + u3z(ser); + return who_c; +} + +void +u3_ship_of_noun(u3_ship who_u, u3_noun who) +{ + u3r_chubs(0, 2, who_u, who); +} + +c3_o +u3_ships_equal(u3_ship sip_u, u3_ship sap_u) +{ + return __((sip_u[0] == sap_u[0]) && (sip_u[1] == sap_u[1])); +} + +void +u3_ship_copy(u3_ship des_u, u3_ship src_u) +{ + des_u[0] = src_u[0]; + des_u[1] = src_u[1]; +} + +c3_l +u3_ship_rank(u3_ship who_u) +{ + if ( who_u[1] ) return c3__pawn; + else if ( who_u[0] >> 32 ) return c3__earl; + else if ( who_u[0] >> 16 ) return c3__duke; + else if ( who_u[0] >> 8 ) return c3__king; + else return c3__czar; +} + +c3_y +u3_ship_czar(u3_ship who_u) { return who_u[0] & 0xFF; } + +c3_s +u3_ship_king(u3_ship who_u) { return who_u[0] & 0xffff; } + +c3_w +u3_ship_duke(u3_ship who_u) { return who_u[0] & 0xffffffff; } + +c3_d +u3_ship_earl(u3_ship who_u) { return who_u[0]; } diff --git a/vere/pkg/noun/ship.h b/vere/pkg/noun/ship.h new file mode 100644 index 0000000..8104c42 --- /dev/null +++ b/vere/pkg/noun/ship.h @@ -0,0 +1,57 @@ +#ifndef U3_SHIP_H +#define U3_SHIP_H + +#include "c3/c3.h" +#include "types.h" + +typedef c3_d u3_ship[2]; + +void +u3_ship_to_bytes(c3_d sip_d[2], c3_y len_y, c3_y* buf_y); + +void +u3_ship_of_bytes(u3_ship who_u, c3_y len_y, c3_y* buf_y); + +u3_atom +u3_ship_to_noun(u3_ship who_u); + +void +u3_ship_of_noun(u3_ship who_u, u3_noun who); + +c3_c* +u3_ship_to_string(u3_ship who_u); + +c3_o +u3_ships_equal(u3_ship sip_u, u3_ship sap_u); + +c3_l +u3_ship_rank(u3_ship who_u); + +void +u3_ship_copy(u3_ship des_u, u3_ship src_u); + +/** +* Returns a ship's galaxy byte prefix. +*/ +c3_y +u3_ship_czar(u3_ship who_u); + +/** +* Returns a ship's star prefix. +*/ +c3_s +u3_ship_king(u3_ship who_u); + +/** +* Returns a ship's planet prefix. +*/ +c3_w +u3_ship_duke(u3_ship who_u); + +/** +* Returns a ship's moon prefix. +*/ +c3_d +u3_ship_earl(u3_ship who_u); + +#endif /* ifndef U3_SHIP_H */ diff --git a/vere/pkg/noun/trace.c b/vere/pkg/noun/trace.c new file mode 100644 index 0000000..5e0eed0 --- /dev/null +++ b/vere/pkg/noun/trace.c @@ -0,0 +1,1122 @@ +/// @file + +#include "trace.h" + +#include +#include +#include +#include + +#include "allocate.h" +#include "imprison.h" +#include "jets/k.h" +#include "log.h" +#include "manage.h" +#include "options.h" +#include "retrieve.h" +#include "vortex.h" + +u3t_trace u3t_Trace; + +static c3_o _ct_lop_o; + +/// Nock PID. +static pid_t _nock_pid_i = 0; + +/// JSON trace file. +static FILE* _file_u = NULL; + +/// Trace counter. Tracks the number of entries written to the JSON trace file. +static c3_w _trace_cnt_w = 0; + +/// File counter. Tracks the number of times u3t_trace_close() has been called. +static c3_w _file_cnt_w = 0; + +/* u3t_push(): push on trace stack. +*/ +void +u3t_push(u3_noun mon) +{ + u3R->bug.tax = u3nc(mon, u3R->bug.tax); +} + +/* u3t_mean(): push `[%mean roc]` on trace stack. +*/ +void +u3t_mean(u3_noun roc) +{ + u3R->bug.tax = u3nc(u3nc(c3__mean, roc), u3R->bug.tax); +} + +/* u3t_drop(): drop from meaning stack. +*/ +void +u3t_drop(void) +{ + u3_assert(_(u3du(u3R->bug.tax))); + { + u3_noun tax = u3R->bug.tax; + + u3R->bug.tax = u3k(u3t(tax)); + u3z(tax); + } +} + +/* u3t_slog(): print directly. +*/ +void +u3t_slog(u3_noun hod) +{ + if ( 0 != u3C.slog_f ) { + u3C.slog_f(hod); + } + else { + u3z(hod); + } +} + +/* u3t_heck(): profile point. +*/ +void +u3t_heck(u3_atom cog) +{ +#if 0 + u3R->pro.cel_d++; +#else + c3_w len_w = u3r_met(3, cog); + c3_c* str_c = alloca(1 + len_w); + + u3r_bytes(0, len_w, (c3_y *)str_c, cog); + str_c[len_w] = 0; + + // Profile sampling, because it allocates on the home road, + // only works on when we're not at home. + // + if ( &(u3H->rod_u) != u3R ) { + u3a_road* rod_u; + + rod_u = u3R; + u3R = &(u3H->rod_u); + { + if ( 0 == u3R->pro.day ) { + u3R->pro.day = u3do("doss", 0); + } + u3R->pro.day = u3dc("pi-heck", u3i_string(str_c), u3R->pro.day); + } + u3R = rod_u; + } +#endif +} + +#if 0 +static void +_ct_sane(u3_noun lab) +{ + if ( u3_nul != lab ) { + u3_assert(c3y == u3du(lab)); + u3_assert(c3y == u3ud(u3h(lab))); + _ct_sane(u3t(lab)); + } +} +#endif + +#if 1 +/* _t_samp_process(): process raw sample data from live road. +*/ +static u3_noun +_t_samp_process(u3_road* rod_u) +{ + u3_noun pef = u3_nul; // (list (pair path (map path ,@ud))) + u3_noun muf = u3_nul; // (map path ,@ud) + c3_w len_w = 0; + + // Accumulate a label/map stack which collapses recursive segments. + // + while ( rod_u ) { + u3_noun don = rod_u->pro.don; + + while ( u3_nul != don ) { + // Get surface allocated label + // + // u3_noun lab = u3nc(u3i_string("foobar"), 0); + u3_noun laj = u3h(don), + lab = u3a_take(laj); + u3a_wash(laj); + + // Add the label to the traced label stack, trimming recursion. + // + { + u3_noun old; + + if ( u3_none == (old = u3kdb_get(u3k(muf), u3k(lab))) ) { + muf = u3kdb_put(muf, u3k(lab), len_w); + pef = u3nc(u3nc(lab, u3k(muf)), pef); + len_w += 1; + } + else { + if ( !_(u3a_is_cat(old)) ) { + u3m_bail(c3__fail); + } + + u3z(muf); + while ( len_w > (old + 1) ) { + u3_noun t_pef = u3k(u3t(pef)); + + len_w -= 1; + u3z(pef); + pef = t_pef; + } + muf = u3k(u3t(u3h(pef))); + u3z(lab); + } + } + don = u3t(don); + } + rod_u = u3tn(u3_road, rod_u->par_p); + } + u3z(muf); + + // Lose the maps and save a pure label stack in original order. + // + { + u3_noun pal = u3_nul; + + while ( u3_nul != pef ) { + u3_noun h_pef = u3h(pef); + u3_noun t_pef = u3k(u3t(pef)); + + pal = u3nc(u3k(u3h(h_pef)), pal); + + u3z(pef); + pef = t_pef; + } + + // u3l_log("sample: stack length %d", u3kb_lent(u3k(pal))); + return pal; + } +} +#endif + +/* u3t_samp(): sample. +*/ +void +u3t_samp(void) +{ + if ( c3y == _ct_lop_o ) { + // _ct_lop_o here is a mutex for modifying pro.don. we + // do not want to sample in the middle of doing that, as + // it can cause memory errors. + return; + } + + c3_w old_wag = u3C.wag_w; + u3C.wag_w &= ~u3o_debug_cpu; + u3C.wag_w &= ~u3o_trace; + + // Profile sampling, because it allocates on the home road, + // only works on when we're not at home. + // + if ( &(u3H->rod_u) != u3R ) { + c3_l mot_l; + u3a_road* rod_u; + + if ( _(u3T.mal_o) ) { + mot_l = c3_s3('m','a','l'); + } + else if ( _(u3T.coy_o) ) { + mot_l = c3_s3('c','o','y'); + } + else if ( _(u3T.euq_o) ) { + mot_l = c3_s3('e','u','q'); + } + else if ( _(u3T.far_o) ) { + mot_l = c3_s3('f','a','r'); + } + else if ( _(u3T.noc_o) ) { + u3_assert(!_(u3T.glu_o)); + mot_l = c3_s3('n','o','c'); + } + else if ( _(u3T.glu_o) ) { + mot_l = c3_s3('g','l','u'); + } + else { + mot_l = c3_s3('f','u','n'); + } + + rod_u = u3R; + u3R = &(u3H->rod_u); + { + u3_noun lab = _t_samp_process(rod_u); + + u3_assert(u3R == &u3H->rod_u); + if ( 0 == u3R->pro.day ) { + /* bunt a +doss + */ + u3R->pro.day = u3nt(u3nq(0, 0, 0, u3nq(0, 0, 0, 0)), 0, 0); + } + u3R->pro.day = u3dt("pi-noon", mot_l, lab, u3R->pro.day); + } + u3R = rod_u; + } + u3C.wag_w = old_wag; +} + +/* u3t_come(): push on profile stack; return yes if active push. RETAIN. +*/ +c3_o +u3t_come(u3_noun lab) +{ + if ( (u3_nul == u3R->pro.don) || !_(u3r_sing(lab, u3h(u3R->pro.don))) ) { + u3a_gain(lab); + _ct_lop_o = c3y; + u3R->pro.don = u3nc(lab, u3R->pro.don); + _ct_lop_o = c3n; + return c3y; + } + else return c3n; +} + +/* u3t_flee(): pop off profile stack. +*/ +void +u3t_flee(void) +{ + _ct_lop_o = c3y; + u3_noun don = u3R->pro.don; + u3R->pro.don = u3k(u3t(don)); + _ct_lop_o = c3n; + u3z(don); +} + +/* u3t_trace_open(): opens a trace file and writes the preamble. +*/ +void +u3t_trace_open(const c3_c* dir_c) +{ + c3_c fil_c[2048]; + + if ( !dir_c ) { + return; + } + + snprintf(fil_c, 2048, "%s/.urb/put/trace", dir_c); + + struct stat st; + if ( (-1 == stat(fil_c, &st)) + && (-1 == c3_mkdir(fil_c, 0700)) ) + { + fprintf(stderr, "mkdir: %s failed: %s\r\n", fil_c, strerror(errno)); + return; + } + + c3_c lif_c[2056]; + snprintf(lif_c, 2056, "%s/%d.json", fil_c, _file_cnt_w); + + _file_u = c3_fopen(lif_c, "w"); + _nock_pid_i = (int)getpid(); + + if ( !_file_u ) { + fprintf(stderr, "trace open: %s\r\n", strerror(errno)); + return; + } + + fprintf(_file_u, "[ "); + + // We have two "threads", the event processing and the nock stuff. + // tid 1 = event processing + // tid 2 = nock processing + fprintf(_file_u, + "{\"name\": \"process_name\", \"ph\": \"M\", \"pid\": %d, \"args\": " + "{\"name\": \"urbit\"}},\n", + _nock_pid_i); + fprintf(_file_u, + "{\"name\": \"thread_name\", \"ph\": \"M\", \"pid\": %d, \"tid\": 1, " + "\"args\": {\"name\": \"Event Processing\"}},\n", + _nock_pid_i); + fprintf(_file_u, + "{\"name\": \"thread_sort_index\", \"ph\": \"M\", \"pid\": %d, " + "\"tid\": 1, \"args\": {\"sort_index\": 1}},\n", + _nock_pid_i); + fprintf(_file_u, + "{\"name\": \"thread_name\", \"ph\": \"M\", \"pid\": %d, \"tid\": 2, " + "\"args\": {\"name\": \"Nock\"}},\n", + _nock_pid_i); + fprintf(_file_u, + "{\"name\": \"thread_sort_index\", \"ph\": \"M\", \"pid\": %d, " + "\"tid\": 2, \"args\": {\"sort_index\": 2}},\n", + _nock_pid_i); + _trace_cnt_w = 5; +} + +/* u3t_trace_close(): closes a trace file. optional. +*/ +void +u3t_trace_close(void) +{ + if ( !_file_u ) + return; + + // We don't terminate the JSON because of the file format. + fclose(_file_u); + _trace_cnt_w = 0; + _file_cnt_w++; +} + +/* u3t_trace_time(): microsecond clock +*/ +c3_d u3t_trace_time(void) +{ + struct timeval tim_tv; + gettimeofday(&tim_tv, 0); + return 1000000ULL * tim_tv.tv_sec + tim_tv.tv_usec; +} + +/* u3t_nock_trace_push(): push a trace onto the trace stack; returns yes if pushed. + * + * The trace stack is a stack of [path time-entered]. + */ +c3_o +u3t_nock_trace_push(u3_noun lab) +{ + if ( !_file_u ) + return c3n; + + if ( (u3_nul == u3R->pro.trace) || + !_(u3r_sing(lab, u3h(u3h(u3R->pro.trace)))) ) { + u3a_gain(lab); + c3_d time = u3t_trace_time(); + u3R->pro.trace = u3nc(u3nc(lab, u3i_chubs(1, &time)), u3R->pro.trace); + return c3y; + } + else { + return c3n; + } +} + +/* u3t_nock_trace_pop(): pops a trace from the trace stack. + * + * When we remove the trace from the stack, we check to see if the sample is + * large enough to process, as we'll otherwise keep track of individual +add + * calls. If it is, we write it out to the tracefile. + */ +void +u3t_nock_trace_pop(void) +{ + if ( !_file_u ) + return; + + u3_noun trace = u3R->pro.trace; + u3R->pro.trace = u3k(u3t(trace)); + + u3_noun item = u3h(trace); + u3_noun lab = u3h(item); + c3_d start_time = u3r_chub(0, u3t(item)); + + // 33microseconds (a 30th of a millisecond). + c3_d duration = u3t_trace_time() - start_time; + if (duration > 33) { + c3_c* name = u3m_pretty_path(lab); + + fprintf(_file_u, + "{\"cat\": \"nock\", \"name\": \"%s\", \"ph\":\"%c\", \"pid\": %d, " + "\"tid\": 2, \"ts\": %" PRIu64 ", \"dur\": %" PRIu64 "}, \n", + name, + 'X', + _nock_pid_i, + start_time, + duration); + + c3_free(name); + _trace_cnt_w++; + } + + u3z(trace); +} + +/* u3t_event_trace(): dumps a simple event from outside nock. +*/ +void +u3t_event_trace(const c3_c* name, c3_c type) +{ + if ( !_file_u ) + return; + + fprintf(_file_u, + "{\"cat\": \"event\", \"name\": \"%s\", \"ph\":\"%c\", \"pid\": %d, " + "\"tid\": 1, \"ts\": %" PRIu64 ", \"id\": \"0x100\"}, \n", + name, + type, + _nock_pid_i, + u3t_trace_time()); + _trace_cnt_w++; +} + +/* u3t_print_steps: print step counter. +*/ +void +u3t_print_steps(FILE* fil_u, c3_c* cap_c, c3_d sep_d) +{ + u3_assert( 0 != fil_u ); + + c3_w gib_w = (sep_d / 1000000000ULL); + c3_w mib_w = (sep_d % 1000000000ULL) / 1000000ULL; + c3_w kib_w = (sep_d % 1000000ULL) / 1000ULL; + c3_w bib_w = (sep_d % 1000ULL); + + // XX prints to stderr since it's called on shutdown, daemon may be gone + // + if ( sep_d ) { + if ( gib_w ) { + fprintf(fil_u, "%s: G/%d.%03d.%03d.%03d\r\n", + cap_c, gib_w, mib_w, kib_w, bib_w); + } + else if ( mib_w ) { + fprintf(fil_u, "%s: M/%d.%03d.%03d\r\n", cap_c, mib_w, kib_w, bib_w); + } + else if ( kib_w ) { + fprintf(fil_u, "%s: K/%d.%03d\r\n", cap_c, kib_w, bib_w); + } + else if ( bib_w ) { + fprintf(fil_u, "%s: %d\r\n", cap_c, bib_w); + } + } +} + +/* u3t_damp(): print and clear profile data. +*/ +void +u3t_damp(FILE* fil_u) +{ + u3_assert( 0 != fil_u ); + + if ( 0 != u3R->pro.day ) { + u3_noun wol = u3do("pi-tell", u3R->pro.day); + + // XX prints to stderr since it's called on shutdown, daemon may be gone + // + { + u3_noun low = wol; + + while ( u3_nul != low ) { + c3_c* str_c = (c3_c*)u3r_tape(u3h(low)); + fputs(str_c, fil_u); + fputs("\r\n", fil_u); + + c3_free(str_c); + low = u3t(low); + } + + u3z(wol); + } + + /* bunt a +doss + */ + u3R->pro.day = u3nt(u3nq(0, 0, 0, u3nq(0, 0, 0, 0)), 0, 0); + } + + u3t_print_steps(fil_u, "nocks", u3R->pro.nox_d); + u3t_print_steps(fil_u, "cells", u3R->pro.cel_d); + + u3R->pro.nox_d = 0; + u3R->pro.cel_d = 0; +} + +/* _ct_sigaction(): profile sigaction callback. +*/ +void _ct_sigaction(c3_i x_i) +{ + u3t_samp(); +} + +/* u3t_init(): initialize tracing layer. +*/ +void +u3t_init(void) +{ + u3T.noc_o = c3n; + u3T.glu_o = c3n; + u3T.mal_o = c3n; + u3T.far_o = c3n; + u3T.coy_o = c3n; + u3T.euq_o = c3n; +} + +c3_w +u3t_trace_cnt(void) +{ + return _trace_cnt_w; +} + +c3_w +u3t_file_cnt(void) +{ + return _file_cnt_w; +} + +/* u3t_boot(): turn sampling on. +*/ +void +u3t_boot(void) +{ + if ( u3C.wag_w & u3o_debug_cpu ) { + _ct_lop_o = c3n; +#if defined(U3_OS_PROF) + // skip profiling if we don't yet have an arvo kernel + // + if ( 0 == u3A->roc ) { + return; + } + + // Register _ct_sigaction to be called on `SIGPROF`. + { + struct sigaction sig_s = {{0}}; + sig_s.sa_handler = _ct_sigaction; + sigemptyset(&(sig_s.sa_mask)); + sigaction(SIGPROF, &sig_s, 0); + } + + // Unblock `SIGPROF` for this thread (we will block it again when `u3t_boff` is called). + { + sigset_t set; + sigemptyset(&set); + sigaddset(&set, SIGPROF); + if ( 0 != pthread_sigmask(SIG_UNBLOCK, &set, NULL) ) { + u3l_log("trace: thread mask SIGPROF: %s", strerror(errno)); + } + } + + // Ask for SIGPROF to be sent every 10ms. + { + struct itimerval itm_v = {{0}}; + itm_v.it_interval.tv_usec = 10000; + itm_v.it_value = itm_v.it_interval; + setitimer(ITIMER_PROF, &itm_v, 0); + } +#endif + } +} + +/* u3t_boff(): turn profile sampling off. +*/ +void +u3t_boff(void) +{ + if ( u3C.wag_w & u3o_debug_cpu ) { +#if defined(U3_OS_PROF) + // Mask SIGPROF signals in this thread (and this is the only + // thread that unblocked them). + { + sigset_t set; + sigemptyset(&set); + sigaddset(&set, SIGPROF); + if ( 0 != pthread_sigmask(SIG_BLOCK, &set, NULL) ) { + u3l_log("trace: thread mask SIGPROF: %s", strerror(errno)); + } + } + + // Disable the SIGPROF timer. + { + struct itimerval itm_v = {{0}}; + setitimer(ITIMER_PROF, &itm_v, 0); + } + + // Ignore SIGPROF signals. + { + struct sigaction sig_s = {{0}}; + sigemptyset(&(sig_s.sa_mask)); + sig_s.sa_handler = SIG_IGN; + sigaction(SIGPROF, &sig_s, 0); + } +#endif + } +} + + +/* u3t_slog_cap(): slog a tank with a caption with +** a given priority c3_l (assumed 0-3). +*/ +void +u3t_slog_cap(c3_l pri_l, u3_noun cap, u3_noun tan) +{ + u3t_slog( + u3nc( + pri_l, + u3nt( + c3__rose, + u3nt(u3nt(':', ' ', u3_nul), u3_nul, u3_nul), + u3nt(cap, tan, u3_nul) + ) + ) + ); +} + + +/* u3t_slog_trace(): given a c3_l priority pri and a raw stack tax +** flop the order into start-to-end, render, and slog each item +** until done. +*/ +void +u3t_slog_trace(c3_l pri_l, u3_noun tax) +{ + // render the stack + // Note: ton is a reference to a data struct + // we have just allocated + // lit is used as a moving cursor pointer through + // that allocated struct + // once we finish lit will be null, but ton will still + // point to the whole valid allocated data structure + // and thus we can free it safely at the end of the func + // to clean up after ourselves. + // Note: flop reverses the stack trace list 'tax' + u3_noun ton = u3dc("mook", 2, u3kb_flop(tax)); + u3_noun lit = u3t(ton); + + // print the stack one stack item at a time + while ( u3_nul != lit ) { + u3t_slog(u3nc(pri_l, u3k(u3h(lit)) )); + lit = u3t(lit); + } + + u3z(ton); +} + + +/* u3t_slog_nara(): slog only the deepest road's trace with +** c3_l priority pri +*/ +void +u3t_slog_nara(c3_l pri_l) +{ + u3_noun tax = u3k(u3R->bug.tax); + u3t_slog_trace(pri_l, tax); +} + + +/* u3t_slog_hela(): join all roads' traces together into one tax +** and pass it to slog_trace along with the given c3_l priority pri_l +*/ +void +u3t_slog_hela(c3_l pri_l) +{ + // rod_u protects us from mutating the global state + u3_road* rod_u = u3R; + + // inits to the the current road's trace + u3_noun tax = u3k(rod_u->bug.tax); + + // while there is a parent road ref ... + while ( &(u3H->rod_u) != rod_u ) { + // ... point at the next road and append its stack to tax + rod_u = u3tn(u3_road, rod_u->par_p); + tax = u3kb_weld(tax, u3k(rod_u->bug.tax)); + } + + u3t_slog_trace(pri_l, tax); +} + +/* _ct_roundf(): truncate a float to precision equivalent to %.2f */ +static float +_ct_roundf(float per_f) +{ + // scale the percentage so that all siginificant digits + // would be retained when truncted to an int, then add 0.5 + // to account for rounding without using round or roundf + float big_f = (per_f*10000)+0.5; + // truncate to int + c3_w big_w = (c3_w) big_f; + // convert to float and scale down such that + // our last two digits are right of the decimal + float tuc_f = (float) big_w/100.0; + return tuc_f; +} + +/* _ct_meme_percent(): convert two ints into a percentage */ +static float +_ct_meme_percent(c3_w lit_w, c3_w big_w) +{ + // get the percentage of our inputs as a float + float raw_f = (float) lit_w/big_w; + return _ct_roundf(raw_f); +} + +/* _ct_all_heap_size(): return the size in bytes of ALL space on the Loom +** over all roads, currently in use as heap. +*/ +static c3_w +_ct_all_heap_size(u3_road* r) { + if (r == &(u3H->rod_u)) { + return u3a_heap(r)*4; + } else { + // recurse + return (u3a_heap(r)*4) + _ct_all_heap_size(u3tn(u3_road, r->par_p)); + } +} + +/* These two structs, bar_item and bar_info, store the mutable data +** to normalize measured Loom usage values into ints that will fit +** into a fixed width ascii bar chart. +*/ +struct +bar_item { + // index + c3_w dex_w; + // lower bound + c3_w low_w; + // original value + float ori_f; + // difference + float dif_f; +}; + +struct +bar_info { + struct bar_item s[6]; +}; + +/* _ct_boost_small(): we want zero to be zero, +** anything between zero and one to be one, +** and all else to be whatever it is. +*/ +static float +_ct_boost_small(float num_f) +{ + return + 0.0 >= num_f ? 0.0: + 1.0 > num_f ? 1.0: + num_f; +} + +/* _ct_global_difference(): each low_w represents the normalized integer value + * of its loom item, and ideally the sum of all loom low_w + * values should be 100. This function reports how far from + * the ideal bar_u is. +*/ +static c3_ws +_ct_global_difference(struct bar_info bar_u) +{ + c3_w low_w = 0; + for (c3_w i=0; i < 6; i++) { + low_w += bar_u.s[i].low_w; + } + return 100 - low_w; +} + +/* _ct_compute_roundoff_error(): for each loom item in bar_u +** compute the current difference between the int +** size and the original float size. +*/ +static struct bar_info +_ct_compute_roundoff_error(struct bar_info bar_u) +{ + for (c3_w i=0; i < 6; i++) { + bar_u.s[i].dif_f = bar_u.s[i].ori_f - bar_u.s[i].low_w; + } + return bar_u; +} + +/* _ct_sort_by_roundoff_error(): sort loom items from most mis-sized to least */ +static struct bar_info +_ct_sort_by_roundoff_error(struct bar_info bar_u) +{ + struct bar_item tem_u; + for (c3_w i=1; i < 6; i++) { + for (c3_w j=0; j < 6-i; j++) { + if (bar_u.s[j+1].dif_f > bar_u.s[j].dif_f) { + tem_u = bar_u.s[j]; + bar_u.s[j] = bar_u.s[j+1]; + bar_u.s[j+1] = tem_u; + } + } + } + return bar_u; +} + +/* _ct_sort_by_index(): sort loom items into loom order */ +static struct bar_info +_ct_sort_by_index(struct bar_info bar_u) +{ + struct bar_item tem_u; + for (c3_w i=1; i < 6; i++) { + for (c3_w j=0; j < 6-i; j++) { + if (bar_u.s[j+1].dex_w < bar_u.s[j].dex_w) { + tem_u = bar_u.s[j]; + bar_u.s[j] = bar_u.s[j+1]; + bar_u.s[j+1] = tem_u; + } + } + } + return bar_u; +} + +/* _ct_reduce_error(): reduce error by one int step + * making oversized things a bit smaller + * and undersized things a bit bigger +*/ +static struct bar_info +_ct_reduce_error(struct bar_info bar_u, c3_ws dif_s) +{ + for (c3_w i=0; i < 6; i++) { + if (bar_u.s[i].low_w == 0) continue; + if (bar_u.s[i].low_w == 1) continue; + if (dif_s > 0) { + bar_u.s[i].low_w++; + dif_s--; + } + if (dif_s < 0) { + bar_u.s[i].low_w--; + dif_s++; + } + } + return bar_u; +} + +/* _ct_report_bargraph(): render all six raw loom elements into a fixed-size ascii bargraph */ +static void +_ct_report_bargraph( + c3_c bar_c[105], float hip_f, float hep_f, float fre_f, float pen_f, float tak_f, float tik_f +) +{ + float in[6]; + in[0] = _ct_boost_small(hip_f); + in[1] = _ct_boost_small(hep_f); + in[2] = _ct_boost_small(fre_f); + in[3] = _ct_boost_small(pen_f); + in[4] = _ct_boost_small(tak_f); + in[5] = _ct_boost_small(tik_f); + + // init the list of structs + struct bar_info bar_u; + for (c3_w i=0; i < 6; i++) { + bar_u.s[i].dex_w = i; + bar_u.s[i].ori_f = in[i]; + bar_u.s[i].low_w = (c3_w) bar_u.s[i].ori_f; + } + + // repeatedly adjust for roundoff error + // until it is elemenated or we go 100 cycles + c3_ws dif_s = 0; + for (c3_w x=0; x<100; x++) { + bar_u = _ct_compute_roundoff_error(bar_u); + dif_s = _ct_global_difference(bar_u); + if (dif_s == 0) break; + bar_u = _ct_sort_by_roundoff_error(bar_u); + bar_u = _ct_reduce_error(bar_u, dif_s); + } + bar_u = _ct_sort_by_index(bar_u); + + for (c3_w x=1; x<104; x++) { + bar_c[x] = ' '; + } + bar_c[0] = '['; + + // create our bar chart + const c3_c sym_c[6] = "=-%#+~"; + c3_w x = 0, y = 0; + for (c3_w i=0; i < 6; i++) { + x++; + for (c3_w j=0; j < bar_u.s[i].low_w; j++) { + bar_c[x+j] = sym_c[i]; + y = x+j; + } + if (y > 0) x = y; + } + bar_c[101] = ']'; + bar_c[102] = 0; +} + +/* _ct_size_prefix(): return the correct metric scalar prifix for a given int */ +static c3_c +_ct_size_prefix(c3_d num_d) +{ + return + (num_d / 1000000000) ? 'G': + (num_d % 1000000000) / 1000000 ? 'M': + (num_d % 1000000) / 1000 ? 'K': + (num_d % 1000) ? ' ': + 'X'; +} + +/* _ct_report_string(): convert a int into a string, adding a metric scale prefix letter*/ +static void +_ct_report_string(c3_c rep_c[32], c3_d num_d) +{ + memset(rep_c, ' ', 31); + + // add the G/M/K prefix + rep_c[24] = _ct_size_prefix(num_d); + // consume wor_w into a string one base-10 digit at a time + // including dot formatting + c3_w i = 0, j = 0; + while (num_d > 0) { + if (j == 3) { + rep_c[22-i] = '.'; + i++; + j = 0; + } else { + rep_c[22-i] = (num_d%10)+'0'; + num_d /= 10; + i++; + j++; + } + } +} + +/* _ct_etch_road_depth(): return a the current road depth as a fixed size string */ +static void + _ct_etch_road_depth(c3_c rep_c[32], u3_road* r, c3_w num_w) { + if (r == &(u3H->rod_u)) { + _ct_report_string(rep_c, num_w); + // this will be incorrectly indented, so we fix that here + c3_w i = 14; + while (i > 0) { + rep_c[i] = rep_c[i+16]; + rep_c[i+16] = ' '; + i--; + } + } else { + _ct_etch_road_depth(rep_c, u3tn(u3_road, r->par_p), ++num_w); + } +} + +/* _ct_etch_memory(): create a single line report of a given captioned item + * with a percentage of space used and the bytes used + * scaled by a metric scaling postfix (ie MB, GB, etc) +*/ +static void +_ct_etch_memory(c3_c rep_c[32], float per_f, c3_w num_w) +{ + // create the basic report string + _ct_report_string(rep_c, num_w); + // add the Bytes postfix to the size report + rep_c[25] = 'B'; + + // add the space-percentage into the report + rep_c[2] = '0', rep_c[3] = '.', rep_c[4] = '0', rep_c[5] = '0'; + c3_w per_i = (c3_w) (per_f*100); + c3_w i = 0; + while (per_i > 0 && i < 6) { + if (i != 2) { + rep_c[5-i] = (per_i%10)+'0'; + per_i /= 10; + } + i++; + } + // add the percent sign + rep_c[6] = '%'; +} + +/* _ct_etch_steps(): create a single line report of a given captioned item +** scaled by a metric scaling postfix, but unitless. +*/ +static void +_ct_etch_steps(c3_c rep_c[32], c3_d sep_d) +{ + _ct_report_string(rep_c, sep_d); +} + +/* u3t_etch_meme(): report memory stats at call time */ +u3_noun +u3t_etch_meme(c3_l mod_l) +{ + u3a_road* lum_r; + lum_r = &(u3H->rod_u); + // this will need to switch to c3_d when we go to a 64 loom + c3_w top_w = u3a_full(lum_r)*4, + ful_w = u3a_full(u3R)*4, + fre_w = u3a_idle(u3R)*4, + tak_w = u3a_temp(u3R)*4, + hap_w = u3a_heap(u3R)*4, + pen_w = u3a_open(u3R)*4; + + c3_w imu_w = top_w-ful_w; + c3_w hep_w = hap_w-fre_w; + + + float hep_f = _ct_meme_percent(hep_w, top_w), + fre_f = _ct_meme_percent(fre_w, top_w), + pen_f = _ct_meme_percent(pen_w, top_w), + tak_f = _ct_meme_percent(tak_w, top_w); + float ful_f = hep_f + fre_f + pen_f + tak_f; + + c3_w hip_w = _ct_all_heap_size(u3R) - hap_w; + c3_w tik_w = imu_w - hip_w; + float hip_f = _ct_meme_percent(hip_w, top_w), + tik_f = _ct_meme_percent(tik_w, top_w); + +#ifdef U3_CPU_DEBUG + /* iff we are using CPU_DEBUG env var + ** we can report more facts: + ** max_w: max allocated on the current road (not global, not including child roads) + ** cel_d: max cells allocated in current road (inc closed kids, but not parents) + ** nox_d: nock steps performed in current road + */ + c3_w max_w = (u3R->all.max_w*4)+imu_w; + float max_f = _ct_meme_percent(max_w, top_w); + c3_d cel_d = u3R->pro.cel_d; + c3_d nox_d = u3R->pro.nox_d; + // iff we have a max_f we will render it into the bar graph + // in other words iff we have max_f it will always replace something + c3_w inc_w = (max_f > hip_f+1.0) ? (c3_w) max_f+0.5 : (c3_w) hip_f+1.5; +#endif + + // warn if any sanity checks have failed + if (100.01 < (hip_f + hep_f + fre_f + pen_f + tak_f + tik_f)) + u3t_slog_cap(2, u3i_string("warning"), u3i_string("loom sums over 100.01%")); + if ( 99.99 > (hip_f + hep_f + fre_f + pen_f + tak_f + tik_f)) + u3t_slog_cap(2, u3i_string("warning"), u3i_string("loom sums under 99.99%")); + + c3_c bar_c[105]; + bar_c[0] = 0; + _ct_report_bargraph(bar_c, hip_f, hep_f, fre_f, pen_f, tak_f, tik_f); + + c3_w dol = (c3_w) _ct_roundf(hip_f/100); + bar_c[dol] = '$'; +#ifdef U3_CPU_DEBUG + if (max_f > 0.0) { + bar_c[inc_w] = '|'; + } +#endif + + c3_c dir_n[8]; + dir_n[0] = 0; + if ( u3a_is_north(u3R) == c3y ) { + strcat(dir_n, " North"); + } else { + strcat(dir_n, " South"); + } + + if (mod_l == 0) { + return u3i_string(bar_c); + } + else { + c3_c rep_c[32]; + rep_c[31] = 0; + c3_c str_c[1024]; + str_c[0] = 0; + // each report line is at most 54 chars long + strcat(str_c, "Legend | Report:"); + + strcat(str_c, "\n loom: "); _ct_etch_memory(rep_c, 100.0, top_w); strcat(str_c, rep_c); + strcat(str_c, "\n road: "); _ct_etch_memory(rep_c, ful_f, ful_w); strcat(str_c, rep_c); + strcat(str_c, "\n"); + strcat(str_c, "\n = immutable heap: "); _ct_etch_memory(rep_c, hip_f, hip_w); strcat(str_c, rep_c); + strcat(str_c, "\n - solid heap: "); _ct_etch_memory(rep_c, hep_f, hep_w); strcat(str_c, rep_c); + strcat(str_c, "\n % freed heap: "); _ct_etch_memory(rep_c, fre_f, fre_w); strcat(str_c, rep_c); + strcat(str_c, "\n # open space: "); _ct_etch_memory(rep_c, pen_f, pen_w); strcat(str_c, rep_c); + strcat(str_c, "\n + stack: "); _ct_etch_memory(rep_c, tak_f, tak_w); strcat(str_c, rep_c); + strcat(str_c, "\n ~ immutable stack: "); _ct_etch_memory(rep_c, tik_f, tik_w); strcat(str_c, rep_c); + strcat(str_c, "\n"); + strcat(str_c, "\n $ allocation frame: "); _ct_etch_memory(rep_c, hip_f, hip_w); strcat(str_c, rep_c); +#ifdef U3_CPU_DEBUG + strcat(str_c, "\n | road max memory: "); _ct_etch_memory(rep_c, max_f, max_w); strcat(str_c, rep_c); + strcat(str_c, "\n"); + strcat(str_c, "\n road cells made: "); _ct_etch_steps(rep_c, cel_d); strcat(str_c, rep_c); + strcat(str_c, "\n road nocks made: "); _ct_etch_steps(rep_c, nox_d); strcat(str_c, rep_c); +#endif + strcat(str_c, "\n road direction: "); strcat(str_c, dir_n); + strcat(str_c, "\n road depth: "); _ct_etch_road_depth(rep_c, u3R, 1); strcat(str_c, rep_c); + strcat(str_c, "\n\nLoom: "); strcat(str_c, bar_c); + return u3i_string(str_c); + } +} + diff --git a/vere/pkg/noun/trace.h b/vere/pkg/noun/trace.h new file mode 100644 index 0000000..474fc1a --- /dev/null +++ b/vere/pkg/noun/trace.h @@ -0,0 +1,187 @@ +/// @file + +#ifndef U3_TRACE_H +#define U3_TRACE_H + +#include "c3/c3.h" +#include "options.h" +#include "types.h" + +#ifdef U3_CPU_DEBUG +# include "options.h" +#endif + + /** Data structures. + **/ + /* u3t_trace: fast execution flags. + */ + typedef struct _u3t_trace { + c3_o noc_o; // now executing in nock interpreter + c3_o glu_o; // now executing in jet glue + c3_o mal_o; // now executing in allocator + c3_o far_o; // now executing in fragmentor + c3_o coy_o; // now executing in copy + c3_o euq_o; // now executing in equal + } u3t_trace; + + /** Macros. + **/ +# ifdef U3_CPU_DEBUG +# define u3t_on(var) \ + (u3T.var = (u3C.wag_w & u3o_debug_cpu) \ + ? (c3n == u3T.var) ? c3y : (abort(), 0) \ + : u3T.var) +# else +# define u3t_on(var) +#endif + +# ifdef U3_CPU_DEBUG +# define u3t_off(var) \ + (u3T.var = (u3C.wag_w & u3o_debug_cpu) \ + ? (c3y == u3T.var) ? c3n : (abort(), 0) \ + : u3T.var) +# else +# define u3t_off(var) +#endif + + + /** Functions. + **/ + /* u3t_init(): initialize tracing layer. + */ + void + u3t_init(void); + + /// @return Number of entries written to the JSON trace file. + c3_w + u3t_trace_cnt(void); + + /// @return Number of times u3t_trace_close() has been called. + c3_w + u3t_file_cnt(void); + + /* u3t_push(): push on trace stack. + */ + void + u3t_push(u3_noun mon); + + /* u3t_mean(): push `[%mean roc]` on trace stack. + */ + void + u3t_mean(u3_noun roc); + + /* u3t_drop(): drop from meaning stack. + */ + void + u3t_drop(void); + + /* u3t_slog(): print directly. + */ + void + u3t_slog(u3_noun hod); + + /* u3t_heck(): profile point. + */ + void + u3t_heck(u3_atom cog); + + /* u3t_samp(): sample. + */ + void + u3t_samp(void); + + /* u3t_come(): push on profile stack; return yes if active push. RETAIN. + */ + c3_o + u3t_come(u3_noun bat); + + /* u3t_flee(): pop off profile stack. + */ + void + u3t_flee(void); + + /* u3t_trace_open(): opens the path for writing tracing information. + */ + void + u3t_trace_open(const c3_c *dir_c); + + /* u3t_trace_close(): closes the trace file. optional. + */ + void + u3t_trace_close(void); + + /* u3t_trace_time(): returns current time since system epoc, + * whatever it is per system, in microseconds. + */ + c3_d + u3t_trace_time(void); + + /* u3t_nock_trace_push(): pushes a frame onto the trace stack; + * return yes if active push. + */ + c3_o + u3t_nock_trace_push(u3_noun lab); + + /* u3t_nock_trace_pop(): pop off trace stack. + */ + void + u3t_nock_trace_pop(void); + + /* u3t_event_trace(): record a lifecycle event. + */ + void + u3t_event_trace(const c3_c* name, c3_c type); + + /* u3t_damp(): print and clear profile data. + */ + void + u3t_damp(FILE* fil_u); + + /* u3t_boff(): turn profile sampling off. + */ + void + u3t_boff(void); + + /* u3t_boot(): turn sampling on. + */ + void + u3t_boot(void); + + /* u3t_slog_cap(): slog a tank with a caption with + ** a given priority c3_l (assumed 0-3). + */ + void + u3t_slog_cap(c3_l pri_l, u3_noun cap, u3_noun tan); + + /* u3t_slog_trace(): given a c3_l priority pri and a raw stack tax + ** flop the order into start-to-end, render, and slog each item + ** until done. + */ + void + u3t_slog_trace(c3_l pri_l, u3_noun tax); + + /* u3t_slog_nara(): slog only the deepest road's trace with + ** c3_l priority pri + */ + void + u3t_slog_nara(c3_l pri_l); + + /* u3t_slog_hela(): join all roads' traces together into one tax + ** and pass it to slog_trace along with the given c3_l priority pri_l + */ + void + u3t_slog_hela(c3_l pri_l); + + /* u3t_etch_meme(): report memory stats at call time + */ + u3_noun + u3t_etch_meme(c3_l mod_l); + + /** Globals. + **/ + /// Tracing profiler. + extern u3t_trace u3t_Trace; +# define u3T u3t_Trace + + +#endif /* ifndef U3_TRACE_H */ diff --git a/vere/pkg/noun/types.h b/vere/pkg/noun/types.h new file mode 100644 index 0000000..6819eb6 --- /dev/null +++ b/vere/pkg/noun/types.h @@ -0,0 +1,64 @@ +/// @file +/// +/// Various noun types. + +#ifndef U3_TYPES_H +#define U3_TYPES_H + +#include "c3/c3.h" + +/// Sentinel value for u3_noun types that aren't actually nouns. +#define u3_none (u3_noun)0xffffffff + +/// 0, or `~` in Hoon. +#define u3_nul 0 + +/// 0, or `%$` in Hoon. +#define u3_blip 0 + +/// Pointer offset into the loom. +/// +/// Declare variables of this type using u3p() to annotate the type of the +/// pointee. Ensure that variable names of this type end in `_p`. +typedef c3_w u3_post; +#define u3p(type) u3_post + +/// Tagged noun pointer. +/// +/// If bit 31 is 0, the noun is a direct 31-bit atom (also called a "cat"). +/// If bit 31 is 1 and bit 30 is 0, an indirect atom (also called a "pug"). +/// If bit 31 is 1 and bit 30 is 1, an indirect cell (also called a "pom"). +/// +/// Bits 0-29 are a word offset (i.e. u3_post) against the loom. +typedef c3_w u3_noun; + +/// Optional noun type. +/// +/// u3_weak is either a valid noun or u3_none. +typedef u3_noun u3_weak; + +/// Atom. +typedef u3_noun u3_atom; + +/// Term (Hoon aura @tas). +typedef u3_noun u3_term; + +/// Cell of the form `[a b]`. +typedef u3_noun u3_cell; + +/// Cell of the form `[a b c]`. +typedef u3_noun u3_trel; + +/// Cell of the form `[a b c d]`. +typedef u3_noun u3_qual; + +/// Cell of the form `[a b c d e]`. +typedef u3_noun u3_quin; + +/// Unary noun function. +typedef u3_noun (*u3_funk)(u3_noun); + +/// Binary noun function. +typedef u3_noun (*u3_funq)(u3_noun, u3_noun); + +#endif /* ifndef U3_TYPES_H */ diff --git a/vere/pkg/noun/urth.c b/vere/pkg/noun/urth.c new file mode 100644 index 0000000..81c542d --- /dev/null +++ b/vere/pkg/noun/urth.c @@ -0,0 +1,1041 @@ +/// @file + +#include "urth.h" + +#include +#include +#include +#include + +#include "allocate.h" +#include "hashtable.h" +#include "imprison.h" +#include "jets.h" +#include "manage.h" +#include "options.h" +#include "retrieve.h" +#include "serial.h" +#include "ur/ur.h" +#include "vortex.h" + +/* _cu_atom_to_ref(): allocate indirect atom off-loom. +*/ +static inline ur_nref +_cu_atom_to_ref(ur_root_t* rot_u, u3a_atom* vat_u) +{ + ur_nref ref; + c3_d val_d; + + switch ( vat_u->len_w ) { + case 2: { + val_d = ((c3_d)vat_u->buf_w[1]) << 32 + | ((c3_d)vat_u->buf_w[0]); + ref = ur_coin64(rot_u, val_d); + } break; + + case 1: { + val_d = (c3_d)vat_u->buf_w[0]; + ref = ur_coin64(rot_u, val_d); + } break; + + default: { + // XX assumes little-endian + // + c3_y* byt_y = (c3_y*)vat_u->buf_w; + c3_d len_d = ((c3_d)vat_u->len_w) << 2; + + u3_assert( len_d ); + + // NB: this call will account for any trailing null bytes + // caused by an overestimate in [len_d] + // + ref = ur_coin_bytes(rot_u, len_d, byt_y); + } break; + } + + return ref; +} + +/* _cu_box_check(): check loom allocation box for relocation pointer. +*/ +static inline c3_o +_cu_box_check(u3a_noun* som_u, ur_nref* ref) +{ + u3a_box* box_u = u3a_botox(som_u); + c3_w* box_w = (void*)box_u; + + if ( 0xffffffff == box_w[0] ) { + *ref = ( ((c3_d)box_w[2]) << 32 + | ((c3_d)box_w[1]) ); + return c3y; + } + + return c3n; +} + +/* _cu_box_stash(): overwrite an allocation box with relocation pointer. +*/ +static inline void +_cu_box_stash(u3a_noun* som_u, ur_nref ref) +{ + u3a_box* box_u = u3a_botox(som_u); + c3_w* box_w = (void*)box_u; + + // overwrite u3a_atom with reallocated reference + // + box_w[0] = 0xffffffff; + box_w[1] = ref & 0xffffffff; + box_w[2] = ref >> 32; +} + +/* +** stack frame for recording head vs tail iteration +** +** $? [LOM_HEAD cell=*] +** [ref=* cell=*] +*/ + +#define LOM_HEAD 0xffffffffffffffffULL + +typedef struct _cu_frame_s +{ + ur_nref ref; + u3a_cell* cel_u; +} _cu_frame; + +typedef struct _cu_stack_s +{ + c3_w pre_w; + c3_w siz_w; + c3_w fil_w; + _cu_frame* fam_u; +} _cu_stack; + +/* _cu_from_loom_next(): advance off-loom reallocation traversal. +*/ +static inline ur_nref +_cu_from_loom_next(_cu_stack* tac_u, ur_root_t* rot_u, u3_noun a) +{ + while ( 1 ) { + // u3 direct == ur direct + // + if ( c3y == u3a_is_cat(a) ) { + return (ur_nref)a; + } + else { + u3a_noun* som_u = u3a_to_ptr(a); + ur_nref ref; + + // check for relocation pointers + // + if ( c3y == _cu_box_check(som_u, &ref) ) { + return ref; + } + // reallocate indirect atoms, stashing relocation pointers + // + else if ( c3y == u3a_is_atom(a) ) { + ref = _cu_atom_to_ref(rot_u, (u3a_atom*)som_u); + _cu_box_stash(som_u, ref); + return ref; + } + else { + u3a_cell* cel_u = (u3a_cell*)som_u; + + // reallocate the stack if full + // + if ( tac_u->fil_w == tac_u->siz_w ) { + c3_w nex_w = tac_u->pre_w + tac_u->siz_w; + tac_u->fam_u = c3_realloc(tac_u->fam_u, nex_w * sizeof(*tac_u->fam_u)); + tac_u->pre_w = tac_u->siz_w; + tac_u->siz_w = nex_w; + } + + // push a head-frame and continue into the head + // + { + _cu_frame* fam_u = &(tac_u->fam_u[tac_u->fil_w++]); + fam_u->ref = LOM_HEAD; + fam_u->cel_u = cel_u; + } + + a = cel_u->hed; + continue; + } + } + } +} + +/* _cu_from_loom(): reallocate [a] off loom, in [r]. +*/ +static ur_nref +_cu_from_loom(ur_root_t* rot_u, u3_noun a) +{ + _cu_stack tac_u = {0}; + ur_nref ref; + + tac_u.pre_w = ur_fib10; + tac_u.siz_w = ur_fib11; + tac_u.fam_u = c3_malloc(tac_u.siz_w * sizeof(*tac_u.fam_u)); + + ref = _cu_from_loom_next(&tac_u, rot_u, a); + + // incorporate reallocated ref, accounting for cells + // + while ( tac_u.fil_w ) { + // peek at the top of the stack + // + _cu_frame* fam_u = &(tac_u.fam_u[tac_u.fil_w - 1]); + + // [fam_u] is a head-frame; stash ref and continue into the tail + // + if ( LOM_HEAD == fam_u->ref ) { + fam_u->ref = ref; + ref = _cu_from_loom_next(&tac_u, rot_u, fam_u->cel_u->tel); + } + // [fam_u] is a tail-frame; cons refs and pop the stack + // + else { + ref = ur_cons(rot_u, fam_u->ref, ref); + _cu_box_stash((u3a_noun*)fam_u->cel_u, ref); + tac_u.fil_w--; + } + } + + c3_free(tac_u.fam_u); + + return ref; +} + +/* _cu_vec: parameters for cold-state hamt walk. +*/ +typedef struct _cu_vec_s { + ur_nvec_t* vec_u; + ur_root_t* rot_u; +} _cu_vec; + +/* _cu_hamt_walk(): reallocate key/value pair in hamt walk. +*/ +static void +_cu_hamt_walk(u3_noun kev, void* ptr) +{ + _cu_vec* dat_u = (_cu_vec*)ptr; + ur_nvec_t* vec_u = dat_u->vec_u; + ur_root_t* rot_u = dat_u->rot_u; + + vec_u->refs[vec_u->fill++] = _cu_from_loom(rot_u, kev); +} + +/* _cu_all_from_loom(): reallocate essential persistent state off-loom. +** +** NB: destroys the loom. +*/ +static ur_nref +_cu_all_from_loom(ur_root_t* rot_u, ur_nvec_t* cod_u) +{ + ur_nref ken = _cu_from_loom(rot_u, u3A->roc); + c3_w cod_w = u3h_wyt(u3R->jed.cod_p); + _cu_vec dat_u = { .vec_u = cod_u, .rot_u = rot_u }; + + ur_nvec_init(cod_u, cod_w); + u3h_walk_with(u3R->jed.cod_p, _cu_hamt_walk, &dat_u); + + return ken; +} + +typedef struct _cu_loom_s { + ur_dict32_t map_u; // direct->indirect mapping + u3_atom *vat; // indirect atoms + u3_noun *cel; // cells +} _cu_loom; + +/* _cu_ref_to_noun(): lookup/allocate [ref] on the loom. +*/ +static u3_noun +_cu_ref_to_noun(ur_root_t* rot_u, ur_nref ref, _cu_loom* lom_u) +{ + switch ( ur_nref_tag(ref) ) { + default: u3_assert(0); + + // all ur indirect atoms have been pre-reallocated on the loom. + // + case ur_iatom: return lom_u->vat[ur_nref_idx(ref)]; + + + // cells were allocated off-loom in cons-order, and are traversed + // in the same order: we've already relocated any one we could need here. + // + case ur_icell: return lom_u->cel[ur_nref_idx(ref)]; + + // u3 direct atoms are 31-bit, while ur direct atoms are 62-bit; + // we use a hashtable to deduplicate the non-overlapping space + // + case ur_direct: { + u3_atom vat; + + if ( 0x7fffffffULL >= ref ) { + return (u3_atom)ref; + } + else if ( ur_dict32_get(rot_u, &lom_u->map_u, ref, (c3_w*)&vat) ) { + return vat; + } + else { + { + c3_w wor_w[2] = { ref & 0xffffffff, ref >> 32 }; + vat = (c3_w)u3i_words(2, wor_w); + } + + ur_dict32_put(0, &lom_u->map_u, ref, (c3_w)vat); + return vat; + } + } break; + } +} + +/* _cu_all_to_loom(): reallocate all of [rot_u] on the loom, restore roots. +** NB: requires all roots to be cells +** does *not* track refcounts, which must be +** subsequently reconstructed via tracing. +*/ +static void +_cu_all_to_loom(ur_root_t* rot_u, ur_nref ken, ur_nvec_t* cod_u) +{ + _cu_loom lom_u = {0}; + c3_d i_d, fil_d; + + ur_dict32_grow(0, &lom_u.map_u, ur_fib11, ur_fib12); + + // allocate all atoms on the loom. + // + { + c3_d* len_d = rot_u->atoms.lens; + c3_y** byt_y = rot_u->atoms.bytes; + + fil_d = rot_u->atoms.fill; + lom_u.vat = calloc(fil_d, sizeof(u3_atom)); + + for ( i_d = 0; i_d < fil_d; i_d++ ) { + lom_u.vat[i_d] = u3i_bytes(len_d[i_d], byt_y[i_d]); + } + } + + // allocate all cells on the loom. + // + { + ur_nref* hed = rot_u->cells.heads; + ur_nref* tal = rot_u->cells.tails; + u3_noun cel; + + fil_d = rot_u->cells.fill; + lom_u.cel = c3_calloc(fil_d * sizeof(u3_noun)); + + for ( i_d = 0; i_d < fil_d; i_d++ ) { + cel = u3nc(_cu_ref_to_noun(rot_u, hed[i_d], &lom_u), + _cu_ref_to_noun(rot_u, tal[i_d], &lom_u)); + lom_u.cel[i_d] = cel; + u3r_mug(cel); + } + } + + // restore kernel reference (always a cell) + // + u3A->roc = lom_u.cel[ur_nref_idx(ken)]; + + // restore cold jet state (always cells) + // + { + c3_d max_d = cod_u->fill; + c3_d i_d; + ur_nref ref; + u3_noun kev; + + for ( i_d = 0; i_d < max_d; i_d++) { + ref = cod_u->refs[i_d]; + kev = lom_u.cel[ur_nref_idx(ref)]; + u3h_put(u3R->jed.cod_p, u3h(kev), u3k(u3t(kev))); + u3z(kev); + } + } + + // dispose of relocation pointers + // + c3_free(lom_u.cel); + c3_free(lom_u.vat); + ur_dict_free((ur_dict_t*)&lom_u.map_u); +} + +/* _cu_realloc(): hash-cons roots off-loom, reallocate on loom. +*/ +static ur_nref +_cu_realloc(FILE* fil_u, ur_root_t** tor_u, ur_nvec_t* doc_u) +{ +#ifdef U3_MEMORY_DEBUG + u3_assert(0); +#endif + + // bypassing page tracking as an optimization + // + // NB: u3m_foul() will mark all as dirty, and + // u3e_save() will reinstate protection flags + // + u3m_foul(); + + // stash event number + // + c3_d eve_d = u3A->eve_d; + + // reallocate kernel and cold jet state + // + ur_root_t* rot_u = ur_root_init(); + ur_nvec_t cod_u; + ur_nref ken = _cu_all_from_loom(rot_u, &cod_u); + + // print [rot_u] measurements + // + if ( fil_u ) { + ur_root_info(fil_u, rot_u); + fprintf(fil_u, "\r\n"); + } + + // reinitialize loom + // + // NB: hot jet state is not yet re-established + // + u3m_pave(c3y); + + // reallocate all nouns on the loom + // + _cu_all_to_loom(rot_u, ken, &cod_u); + + // allocate new hot jet state + // + u3j_boot(c3y); + + // establish correct refcounts via tracing + // + u3m_grab(u3_none); + + // re-establish warm jet state + // + u3j_ream(); + + // restore event number + // + u3A->eve_d = eve_d; + + // mark all pages dirty + // + u3m_foul(); + + *tor_u = rot_u; + *doc_u = cod_u; + + return ken; +} + +/* u3u_meld(): globally deduplicate memory, returns u3a_open delta. +*/ +#ifdef U3_MEMORY_DEBUG +c3_w +u3u_meld(void) +{ + fprintf(stderr, "u3: unable to meld under U3_MEMORY_DEBUG\r\n"); + return 0; +} +#else +c3_w +u3u_meld(void) +{ + c3_w pre_w = u3a_open(u3R); + ur_root_t* rot_u; + ur_nvec_t cod_u; + + u3_assert( &(u3H->rod_u) == u3R ); + + _cu_realloc(stderr, &rot_u, &cod_u); + + // dispose off-loom structures + // + ur_nvec_free(&cod_u); + ur_root_free(rot_u); + return (u3a_open(u3R) - pre_w); +} +#endif + +/* BEGIN helper functions for u3u_melt + ------------------------------------------------------------------- +*/ +/* _cj_warm_tap(): tap war_p to rel +*/ +static void +_cj_warm_tap(u3_noun kev, void* wit) +{ + u3_noun* rel = wit; + *rel = u3nc(u3k(kev), *rel); +} + +static inline u3_weak +_cu_melt_get(u3p(u3h_root) set_p, u3_noun som) +{ + u3_post hav_p = u3h_git(set_p, som); + + if ( u3_none == hav_p ) { + return u3_none; + } + + // restore tag bits from [som] + // + return (hav_p >> u3a_vits) | (som & 0xc0000000); +} + +static inline void +_cu_melt_put(u3p(u3h_root) set_p, u3_noun som) +{ + // strip tag bits from [som] to skip refcounts + // + u3_post hav_p = u3a_to_off(som); + u3h_put(set_p, som, hav_p); +} + +static void +_cu_melt_noun(u3p(u3h_root) set_p, u3_noun* mos) +{ + u3_noun som = *mos; + u3_weak hav; + + // skip direct atoms + // + if ( c3y == u3a_is_cat(som) ) { + return; + } + + // [som] equals [hav], and [hav] is canonical + // + if ( u3_none != (hav = _cu_melt_get(set_p, som)) ) { + if ( hav != som ) { + u3z(som); + *mos = u3k(hav); + } + return; + } + + // traverse subtrees + // + if ( c3y == u3a_is_cell(som) ) { + u3a_cell *cel_u = u3a_to_ptr(som); + _cu_melt_noun(set_p, &cel_u->hed); + _cu_melt_noun(set_p, &cel_u->tel); + } + + // [som] is canonical + // + _cu_melt_put(set_p, som); +} + +/* u3u_melt(): globally deduplicate memory and pack in-place. +*/ +c3_w +u3u_melt(void) +{ + c3_w pre_w = u3a_open(u3R); + + // Verify that we're on the main road. + // + u3_assert( &(u3H->rod_u) == u3R ); + + // Store a cons list of the cold jet registrations in `cod` + // + u3_noun cod = u3_nul; + u3h_walk_with(u3R->jed.cod_p, _cj_warm_tap, &cod); + + u3m_reclaim(); // refresh the byte-code interpreter. + + u3h_free(u3R->cax.per_p); + u3R->cax.per_p = u3h_new_cache(u3C.per_w); + + u3h_free(u3R->jed.cod_p); + u3R->jed.cod_p = u3h_new(); + + { + u3p(u3h_root) set_p = u3h_new(); // temp hashtable + + _cu_melt_noun(set_p, &cod); // melt the jets + _cu_melt_noun(set_p, &u3A->roc); // melt the kernel + + u3h_free(set_p); // release the temp hashtable + } + + // re-initialize the jets + // + u3j_boot(c3y); + + // Put the jet registrations back. Loop over cod putting them back into the cold jet + // dashboard. Then re-run the garbage collector. + // + { + u3_noun codc = cod; + + while(u3_nul != cod) { + u3_noun kev = u3h(cod); + u3h_put(u3R->jed.cod_p, u3h(kev), u3k(u3t(kev))); + cod = u3t(cod); + } + + u3z(codc); + } + + // remove free space + // + u3j_ream(); + u3m_pack(); + + return (u3a_open(u3R) - pre_w); +} + +/* _cu_rock_path(): format rock path. +*/ +static c3_o +_cu_rock_path(c3_c* dir_c, c3_d eve_d, c3_c** out_c) +{ + c3_w nam_w = 1 + snprintf(0, 0, "%s/.urb/roc/%" PRIu64 ".jam", dir_c, eve_d); + c3_c* nam_c = c3_malloc(nam_w); + c3_i ret_i; + + ret_i = snprintf(nam_c, nam_w, "%s/.urb/roc/%" PRIu64 ".jam", dir_c, eve_d); + + if ( ret_i < 0 ) { + fprintf(stderr, "rock: path format failed (%s, %" PRIu64 "): %s\r\n", + dir_c, eve_d, strerror(errno)); + c3_free(nam_c); + return c3n; + } + else if ( ret_i >= nam_w ) { + fprintf(stderr, "rock: path format failed (%s, %" PRIu64 "): truncated\r\n", + dir_c, eve_d); + c3_free(nam_c); + return c3n; + } + + *out_c = nam_c; + return c3y; +} + +/* _cu_rock_path_make(): format rock path, creating directory if necessary.. +*/ +static c3_o +_cu_rock_path_make(c3_c* dir_c, c3_d eve_d, c3_c** out_c) +{ + c3_w nam_w = 1 + snprintf(0, 0, "%s/.urb/roc/%" PRIu64 ".jam", dir_c, eve_d); + c3_c* nam_c = c3_malloc(nam_w); + c3_i ret_i; + + // create $pier/.urb/roc, if it doesn't exist + // + // NB, $pier/.urb is guaranteed to already exist + // + { + ret_i = snprintf(nam_c, nam_w, "%s/.urb/roc", dir_c); + + if ( ret_i < 0 ) { + fprintf(stderr, "rock: path format failed (%s, %" PRIu64 "): %s\r\n", + dir_c, eve_d, strerror(errno)); + c3_free(nam_c); + return c3n; + } + else if ( ret_i >= nam_w ) { + fprintf(stderr, "rock: path format failed (%s, %" PRIu64 "): truncated\r\n", + dir_c, eve_d); + c3_free(nam_c); + return c3n; + } + + if ( c3_mkdir(nam_c, 0700) + && (EEXIST != errno) ) + { + fprintf(stderr, "rock: directory create failed (%s, %" PRIu64 "): %s\r\n", + dir_c, eve_d, strerror(errno)); + c3_free(nam_c); + return c3n; + } + } + + ret_i = snprintf(nam_c, nam_w, "%s/.urb/roc/%" PRIu64 ".jam", dir_c, eve_d); + + if ( ret_i < 0 ) { + fprintf(stderr, "rock: path format failed (%s, %" PRIu64 "): %s\r\n", + dir_c, eve_d, strerror(errno)); + c3_free(nam_c); + return c3n; + } + else if ( ret_i >= nam_w ) { + fprintf(stderr, "rock: path format failed (%s, %" PRIu64 "): truncated\r\n", + dir_c, eve_d); + c3_free(nam_c); + return c3n; + } + + *out_c = nam_c; + return c3y; +} + +static c3_o +_cu_rock_save(c3_c* dir_c, c3_d eve_d, c3_d len_d, c3_y* byt_y) +{ + c3_i fid_i; + + // open rock file, creating the containing directory if necessary + // + { + c3_c* nam_c; + + if ( c3n == _cu_rock_path_make(dir_c, eve_d, &nam_c) ) { + return c3n; + } + + if ( -1 == (fid_i = c3_open(nam_c, O_RDWR | O_CREAT | O_TRUNC, 0644)) ) { + fprintf(stderr, "rock: c3_open failed (%s, %" PRIu64 "): %s\r\n", + dir_c, eve_d, strerror(errno)); + c3_free(nam_c); + return c3n; + } + + c3_free(nam_c); + } + + // write jam-buffer into [fid_i] + // + // XX deduplicate with _write() wrapper in term.c + // + { + ssize_t ret_i; + + while ( len_d > 0 ) { + c3_w lop_w = 0; + // retry interrupt/async errors + // + do { + // abort pathological retry loop + // + if ( 100 == ++lop_w ) { + fprintf(stderr, "rock: write loop: %s\r\n", strerror(errno)); + close(fid_i); + // XX unlink file? + // + return c3n; + } + + ret_i = write(fid_i, byt_y, len_d); + } + while ( (ret_i < 0) + && ( (errno == EINTR) + || (errno == EAGAIN) + || (errno == EWOULDBLOCK) )); + + // assert on true errors + // + // NB: can't call u3l_log here or we would re-enter _write() + // + if ( ret_i < 0 ) { + fprintf(stderr, "rock: write failed %s\r\n", strerror(errno)); + close(fid_i); + // XX unlink file? + // + return c3n; + } + // continue partial writes + // + else { + len_d -= ret_i; + byt_y += ret_i; + } + } + } + + close(fid_i); + + return c3y; +} + +/* u3u_cram(): globably deduplicate memory, and write a rock to disk. +*/ +#ifdef U3_MEMORY_DEBUG +c3_o +u3u_cram(c3_c* dir_c, c3_d eve_d) +{ + fprintf(stderr, "u3: unable to cram under U3_MEMORY_DEBUG\r\n"); + return c3n; +} +#else +c3_o +u3u_cram(c3_c* dir_c, c3_d eve_d) +{ + c3_o ret_o = c3y; + c3_d len_d; + c3_y* byt_y; + + u3_assert( &(u3H->rod_u) == u3R ); + + { + ur_root_t* rot_u; + ur_nvec_t cod_u; + ur_nref ken = _cu_realloc(stderr, &rot_u, &cod_u); + + { + ur_nref roc = u3_nul; + c3_d max_d = cod_u.fill; + c3_d i_d; + + // cons vector of cold jet-state entries onto a list + // + for ( i_d = 0; i_d < max_d; i_d++) { + roc = ur_cons(rot_u, cod_u.refs[i_d], roc); + } + + { + c3_c* has_c = "hashboard"; + ur_nref has = ur_coin_bytes(rot_u, strlen(has_c), (c3_y*)has_c); + roc = ur_cons(rot_u, has, roc); + } + + roc = ur_cons(rot_u, ur_coin64(rot_u, c3__arvo), + ur_cons(rot_u, ken, roc)); + + ur_jam(rot_u, roc, &len_d, &byt_y); + } + + // dispose off-loom structures + // + ur_nvec_free(&cod_u); + ur_root_free(rot_u); + } + + // write jam-buffer into pier + // + if ( c3n == _cu_rock_save(dir_c, eve_d, len_d, byt_y) ) { + ret_o = c3n; + } + + c3_free(byt_y); + + return ret_o; +} +#endif + +/* u3u_mmap_read(): open and mmap the file at [pat_c] for reading. +*/ +c3_o +u3u_mmap_read(c3_c* cap_c, c3_c* pat_c, c3_d* out_d, c3_y** out_y) +{ + c3_i fid_i; + c3_d len_d; + + // open file + // + if ( -1 == (fid_i = c3_open(pat_c, O_RDONLY, 0644)) ) { + fprintf(stderr, "%s: c3_open failed (%s): %s\r\n", + cap_c, pat_c, strerror(errno)); + return c3n; + } + + // measure file + // + { + struct stat buf_b; + + if ( -1 == fstat(fid_i, &buf_b) ) { + fprintf(stderr, "%s: stat failed (%s): %s\r\n", + cap_c, pat_c, strerror(errno)); + close(fid_i); + return c3n; + } + + len_d = buf_b.st_size; + } + + // mmap file + // + { + void* ptr_v; + + if ( MAP_FAILED == (ptr_v = mmap(0, len_d, PROT_READ, MAP_SHARED, fid_i, 0)) ) { + fprintf(stderr, "%s: mmap failed (%s): %s\r\n", + cap_c, pat_c, strerror(errno)); + close(fid_i); + return c3n; + } + + *out_d = len_d; + *out_y = (c3_y*)ptr_v; + } + + // close file + // + close(fid_i); + + return c3y; +} + +/* u3u_mmap(): open/create file-backed mmap at [pat_c] for read/write. +*/ +c3_o +u3u_mmap(c3_c* cap_c, c3_c* pat_c, c3_d len_d, c3_y** out_y) +{ + c3_i fid_i; + + // open file + // + if ( -1 == (fid_i = c3_open(pat_c, O_RDWR | O_CREAT | O_TRUNC, 0644)) ) { + fprintf(stderr, "%s: c3_open failed (%s): %s\r\n", + cap_c, pat_c, strerror(errno)); + return c3n; + } + + // grow [fid_i] to [len_w] + // + // XX build with _FILE_OFFSET_BITS == 64 ? + // + if ( 0 != ftruncate(fid_i, len_d) ) { + fprintf(stderr, "%s: ftruncate grow %s: %s\r\n", + cap_c, pat_c, strerror(errno)); + close(fid_i); + return c3n; + } + + // mmap file + // + { + void* ptr_v; + + if ( MAP_FAILED == (ptr_v = mmap(0, len_d, PROT_READ|PROT_WRITE, MAP_SHARED, fid_i, 0)) ) { + fprintf(stderr, "%s: mmap failed (%s): %s\r\n", + cap_c, pat_c, strerror(errno)); + close(fid_i); + return c3n; + } + + *out_y = (c3_y*)ptr_v; + } + + // close file + // + close(fid_i); + + return c3y; +} + +/* u3u_mmap_save(): sync file-backed mmap. +*/ +c3_o +u3u_mmap_save(c3_c* cap_c, c3_c* pat_c, c3_d len_d, c3_y* byt_y) +{ + if ( 0 != msync(byt_y, len_d, MS_SYNC) ) { + fprintf(stderr, "%s: msync %s: %s\r\n", cap_c, pat_c, strerror(errno)); + return c3n; + } + + return c3y; +} + +/* u3u_munmap(): unmap the region at [byt_y]. +*/ +c3_o +u3u_munmap(c3_d len_d, c3_y* byt_y) +{ + if ( 0 != munmap(byt_y, len_d) ) { + return c3n; + } + + return c3y; +} + +/* u3u_uncram(): restore persistent state from a rock. +*/ +c3_o +u3u_uncram(c3_c* dir_c, c3_d eve_d) +{ + c3_c* nam_c; + c3_d len_d; + c3_y* byt_y; + + // load rock file into buffer + // + if ( c3n == _cu_rock_path(dir_c, eve_d, &nam_c) ) { + fprintf(stderr, "uncram: failed to make rock path (%s, %" PRIu64 ")\r\n", + dir_c, eve_d); + return c3n; + } + else if ( c3n == u3u_mmap_read("rock", nam_c, &len_d, &byt_y) ) { + c3_free(nam_c); + return c3n; + } + + // bypassing page tracking as an optimization + // + // NB: u3m_foul() will mark all as dirty, and + // u3e_save() will reinstate protection flags + // + u3m_foul(); + + // reinitialize loom + // + // NB: hot jet state is not yet re-established + // + u3m_pave(c3y); + + // cue rock, restore persistent state + // + // XX errors are fatal, barring a full "u3m_reboot"-type operation. + // + { + // XX tune the initial dictionary size for less reallocation + // + u3_cue_xeno* sil_u = u3s_cue_xeno_init_with(ur_fib33, ur_fib34); + u3_weak ref = u3s_cue_xeno_with(sil_u, len_d, byt_y); + u3_noun roc, doc, tag, cod; + + u3s_cue_xeno_done(sil_u); + + if ( u3_none == ref ) { + fprintf(stderr, "uncram: failed to cue rock\r\n"); + c3_free(nam_c); + return c3n; + } + else if ( c3n == u3r_pq(ref, c3__arvo, &roc, &doc) + || (c3n == u3r_cell(doc, &tag, &cod)) + || (c3n == u3r_sing_c("hashboard", tag)) ) + { + fprintf(stderr, "uncram: failed: invalid rock format\r\n"); + u3z(ref); + c3_free(nam_c); + return c3n; + } + + u3A->roc = u3k(roc); + u3j_load(u3k(cod)); + + u3z(ref); + } + + u3u_munmap(len_d, byt_y); + + // allocate new hot jet state; re-establish warm + // + u3j_boot(c3y); + u3j_ream(); + + // restore event number + // + u3A->eve_d = eve_d; + + // leave rocks on disk + // + // if ( 0 != c3_unlink(nam_c) ) { + // fprintf(stderr, "uncram: failed to delete rock (%s, %" PRIu64 "): %s\r\n", + // dir_c, eve_d, strerror(errno)); + // c3_free(nam_c); + // return c3n; + // } + + c3_free(nam_c); + + return c3y; +} diff --git a/vere/pkg/noun/urth.h b/vere/pkg/noun/urth.h new file mode 100644 index 0000000..a11b9aa --- /dev/null +++ b/vere/pkg/noun/urth.h @@ -0,0 +1,49 @@ +/// @file + +#ifndef U3_URTH_H +#define U3_URTH_H + +#include "c3/c3.h" + + /** Functions. + **/ + /* u3u_meld(): globally deduplicate memory, returns u3a_open delta. + */ + c3_w + u3u_meld(void) __attribute__ ((deprecated)); + + /* u3u_melt(): globally deduplicate memory and pack in-place. + */ + c3_w + u3u_melt(void) __attribute__ ((deprecated)); + + /* u3u_cram(): globably deduplicate memory, and write a rock to disk. + */ + c3_o + u3u_cram(c3_c* dir_c, c3_d eve_d); + /* u3u_uncram(): restore persistent state from a rock. + */ + c3_o + u3u_uncram(c3_c* dir_c, c3_d eve_d); + + /* u3u_mmap_read(): open and mmap the file at [pat_c] for reading. + */ + c3_o + u3u_mmap_read(c3_c* cap_c, c3_c* pat_c, c3_d* out_d, c3_y** out_y); + + /* u3u_mmap(): open/create file-backed mmap at [pat_c] for read/write. + */ + c3_o + u3u_mmap(c3_c* cap_c, c3_c* pat_c, c3_d len_d, c3_y** out_y); + + /* u3u_mmap_save(): sync file-backed mmap. + */ + c3_o + u3u_mmap_save(c3_c* cap_c, c3_c* pat_c, c3_d len_d, c3_y* byt_y); + + /* u3u_munmap(): unmap the region at [byt_y]. + */ + c3_o + u3u_munmap(c3_d len_d, c3_y* byt_y); + +#endif /* ifndef U3_URTH_H */ diff --git a/vere/pkg/noun/v1/allocate.c b/vere/pkg/noun/v1/allocate.c new file mode 100644 index 0000000..191e818 --- /dev/null +++ b/vere/pkg/noun/v1/allocate.c @@ -0,0 +1,238 @@ +/// @file + +#include "../allocate.h" +#include "v1/allocate.h" + +#include "v1/hashtable.h" + +/* _box_v1_slot(): select the right free list to search for a block. +*/ +static c3_w +_box_v1_slot(c3_w siz_w) +{ + if ( siz_w < u3a_v1_minimum ) { + return 0; + } + else { + c3_w i_w = 1; + + while ( 1 ) { + if ( i_w == u3a_v1_fbox_no ) { + return (i_w - 1); + } + if ( siz_w < 16 ) { + return i_w; + } + siz_w = (siz_w + 1) >> 1; + i_w += 1; + } + } +} + +/* _box_v1_make(): construct a box. +*/ +static u3a_v1_box* +_box_v1_make(void* box_v, c3_w siz_w, c3_w use_w) +{ + u3a_v1_box* box_u = box_v; + c3_w* box_w = box_v; + + u3_assert(siz_w >= u3a_v1_minimum); + + box_w[0] = siz_w; + box_w[siz_w - 1] = siz_w; + box_u->use_w = use_w; + +# ifdef U3_MEMORY_DEBUG + box_u->cod_w = u3_Code; + box_u->eus_w = 0; +# endif + + return box_u; +} + +/* _box_v1_attach(): attach a box to the free list. +*/ +static void +_box_v1_attach(u3a_v1_box* box_u) +{ + u3_assert(box_u->siz_w >= (1 + c3_wiseof(u3a_v1_fbox))); + u3_assert(0 != u3of(u3a_v1_fbox, box_u)); + + { + c3_w sel_w = _box_v1_slot(box_u->siz_w); + u3p(u3a_v1_fbox) fre_p = u3of(u3a_v1_fbox, box_u); + u3p(u3a_v1_fbox)* pfr_p = &u3R_v1->all.fre_p[sel_w]; + u3p(u3a_v1_fbox) nex_p = *pfr_p; + + u3to(u3a_v1_fbox, fre_p)->pre_p = 0; + u3to(u3a_v1_fbox, fre_p)->nex_p = nex_p; + if ( u3to(u3a_v1_fbox, fre_p)->nex_p ) { + u3to(u3a_v1_fbox, u3to(u3a_v1_fbox, fre_p)->nex_p)->pre_p = fre_p; + } + (*pfr_p) = fre_p; + } +} + +/* _box_v1_detach(): detach a box from the free list. +*/ +static void +_box_v1_detach(u3a_v1_box* box_u) +{ + u3p(u3a_v1_fbox) fre_p = u3of(u3a_v1_fbox, box_u); + u3p(u3a_v1_fbox) pre_p = u3to(u3a_v1_fbox, fre_p)->pre_p; + u3p(u3a_v1_fbox) nex_p = u3to(u3a_v1_fbox, fre_p)->nex_p; + + + if ( nex_p ) { + if ( u3to(u3a_v1_fbox, nex_p)->pre_p != fre_p ) { + u3_assert(!"loom: corrupt"); + } + u3to(u3a_v1_fbox, nex_p)->pre_p = pre_p; + } + if ( pre_p ) { + if( u3to(u3a_v1_fbox, pre_p)->nex_p != fre_p ) { + u3_assert(!"loom: corrupt"); + } + u3to(u3a_v1_fbox, pre_p)->nex_p = nex_p; + } + else { + c3_w sel_w = _box_v1_slot(box_u->siz_w); + + if ( fre_p != u3R_v1->all.fre_p[sel_w] ) { + u3_assert(!"loom: corrupt"); + } + u3R_v1->all.fre_p[sel_w] = nex_p; + } +} + +/* _box_v1_free(): free and coalesce. +*/ +static void +_box_v1_free(u3a_v1_box* box_u) +{ + c3_w* box_w = (c3_w *)(void *)box_u; + + u3_assert(box_u->use_w != 0); + box_u->use_w -= 1; + if ( 0 != box_u->use_w ) { + return; + } + + // we're always migrating a north road, so no need to check for it + { + /* Try to coalesce with the block below. + */ + if ( box_w != u3a_v1_into(u3R_v1->rut_p) ) { + c3_w laz_w = *(box_w - 1); + u3a_v1_box* pox_u = (u3a_v1_box*)(void *)(box_w - laz_w); + + if ( 0 == pox_u->use_w ) { + _box_v1_detach(pox_u); + _box_v1_make(pox_u, (laz_w + box_u->siz_w), 0); + + box_u = pox_u; + box_w = (c3_w*)(void *)pox_u; + } + } + + /* Try to coalesce with the block above, or the wilderness. + */ + if ( (box_w + box_u->siz_w) == u3a_v1_into(u3R_v1->hat_p) ) { + u3R_v1->hat_p = u3a_v1_outa(box_w); + } + else { + u3a_v1_box* nox_u = (u3a_v1_box*)(void *)(box_w + box_u->siz_w); + + if ( 0 == nox_u->use_w ) { + _box_v1_detach(nox_u); + _box_v1_make(box_u, (box_u->siz_w + nox_u->siz_w), 0); + } + _box_v1_attach(box_u); + } + } +} + +/* u3a_v1_wfree(): free storage. +*/ +void +u3a_v1_wfree(void* tox_v) +{ + _box_v1_free(u3a_v1_botox(tox_v)); +} + +/* u3a_v1_free(): free for aligned malloc. +*/ +void +u3a_v1_free(void* tox_v) +{ + if (NULL == tox_v) + return; + + c3_w* tox_w = tox_v; + c3_w pad_w = tox_w[-1]; + c3_w* org_w = tox_w - (pad_w + 1); + + // u3l_log("free %p %p", org_w, tox_w); + u3a_v1_wfree(org_w); +} + +/* u3a_v1_reclaim(): clear ad-hoc persistent caches to reclaim memory. +*/ +void +u3a_v1_reclaim(void) +{ + // clear the memoization cache + // + u3h_v1_free_nodes(u3R_v1->cax.har_p); +} + +/* _me_v1_lose_north(): lose on a north road. +*/ +static void +_me_v1_lose_north(u3_noun dog) +{ +top: + { + c3_w* dog_w = u3a_v1_to_ptr(dog); + u3a_v1_box* box_u = u3a_v1_botox(dog_w); + + if ( box_u->use_w > 1 ) { + box_u->use_w -= 1; + } + else { + if ( 0 == box_u->use_w ) { + u3m_v1_bail(c3__foul); + } + else { + if ( _(u3a_v1_is_pom(dog)) ) { + u3a_v1_cell* dog_u = (void *)dog_w; + u3_noun h_dog = dog_u->hed; + u3_noun t_dog = dog_u->tel; + + if ( !_(u3a_v1_is_cat(h_dog)) ) { + _me_v1_lose_north(h_dog); + } + u3a_v1_wfree(dog_w); + if ( !_(u3a_v1_is_cat(t_dog)) ) { + dog = t_dog; + goto top; + } + } + else { + u3a_v1_wfree(dog_w); + } + } + } + } +} + +/* u3a_v1_lose(): lose a reference count. +*/ +void +u3a_v1_lose(u3_noun som) +{ + if ( !_(u3a_v1_is_cat(som)) ) { + _me_v1_lose_north(som); + } +} diff --git a/vere/pkg/noun/v1/allocate.h b/vere/pkg/noun/v1/allocate.h new file mode 100644 index 0000000..965db14 --- /dev/null +++ b/vere/pkg/noun/v1/allocate.h @@ -0,0 +1,78 @@ +#ifndef U3_ALLOCATE_V1_H +#define U3_ALLOCATE_V1_H + +#include "../allocate.h" +#include "v2/allocate.h" + + /** Aliases. + **/ +# define u3R_v1 u3R_v2 +# define u3a_v1_botox u3a_v2_botox +# define u3a_v1_box u3a_v2_box +# define u3a_v1_cell u3a_v2_cell +# define u3a_v1_fbox u3a_v2_fbox +# define u3a_v1_fbox_no u3a_v2_fbox_no +# define u3a_v1_into u3a_v2_into +# define u3a_v1_is_cat u3a_v2_is_cat +# define u3a_v1_is_north u3a_v2_is_north +# define u3a_v1_is_pom u3a_v2_is_pom +# define u3a_v1_minimum u3a_v2_minimum +# define u3a_v1_outa u3a_v2_outa + + /** Structures. + **/ + /** Macros. Should be better commented. + **/ + /* Inside a noun. + */ + /* u3a_v1_to_off(): mask off bits 30 and 31 from noun [som]. + */ +# define u3a_v1_to_off(som) ((som) & 0x3fffffff) + + /* u3a_v1_to_ptr(): convert noun [som] into generic pointer into loom. + */ +# define u3a_v1_to_ptr(som) (u3a_v1_into(u3a_v1_to_off(som))) + + /* u3a_v1_to_wtr(): convert noun [som] into word pointer into loom. + */ +# define u3a_v1_to_wtr(som) ((c3_w *)u3a_v1_to_ptr(som)) + + /* u3a_v1_to_pug(): set bit 31 of [off]. + */ +# define u3a_v1_to_pug(off) (off | 0x80000000) + + /* u3a_v1_to_pom(): set bits 30 and 31 of [off]. + */ +# define u3a_v1_to_pom(off) (off | 0xc0000000) + + /** Functions. + **/ + /** Allocation. + **/ + /* Word-aligned allocation. + */ + /* u3a_v1_wfree(): free storage. + */ + void + u3a_v1_wfree(void* lag_v); + + /* C-style aligned allocation - *not* compatible with above. + */ + /* u3a_v1_free(): free for aligned malloc. + */ + void + u3a_v1_free(void* tox_v); + + /* Reference and arena control. + */ + /* u3a_v1_reclaim(): clear ad-hoc persistent caches to reclaim memory. + */ + void + u3a_v1_reclaim(void); + + /* u3a_v1_lose(): lose a reference count. + */ + void + u3a_v1_lose(u3_noun som); + +#endif /* ifndef U3_ALLOCATE_H */ diff --git a/vere/pkg/noun/v1/hashtable.c b/vere/pkg/noun/v1/hashtable.c new file mode 100644 index 0000000..6c70a94 --- /dev/null +++ b/vere/pkg/noun/v1/hashtable.c @@ -0,0 +1,173 @@ +/// @file + +#include "../hashtable.h" +#include "v1/hashtable.h" + +#include "../allocate.h" +#include "v1/allocate.h" + + +/* _ch_v1_popcount(): number of bits set in word. A standard intrinsic. +** NB: copy of _ch_v1_popcount in pkg/noun/hashtable.c +*/ +static c3_w +_ch_v1_popcount(c3_w num_w) +{ + return __builtin_popcount(num_w); +} + +/* _ch_v1_free_buck(): free bucket +** NB: copy of _ch_v1_free_buck in pkg/noun/hashtable.c +*/ +static void +_ch_v1_free_buck(u3h_v1_buck* hab_u) +{ + c3_w i_w; + + for ( i_w = 0; i_w < hab_u->len_w; i_w++ ) { + u3a_v1_lose(u3h_v1_slot_to_noun(hab_u->sot_w[i_w])); + } + u3a_v1_wfree(hab_u); +} + +/* _ch_v1_free_node(): free node. +*/ +static void +_ch_v1_free_node(u3h_v1_node* han_u, c3_w lef_w) +{ + c3_w len_w = _ch_v1_popcount(han_u->map_w); + c3_w i_w; + + lef_w -= 5; + + for ( i_w = 0; i_w < len_w; i_w++ ) { + c3_w sot_w = han_u->sot_w[i_w]; + + if ( _(u3h_v1_slot_is_noun(sot_w)) ) { + u3a_v1_lose(u3h_v1_slot_to_noun(sot_w)); + } + else { + void* hav_v = u3h_v1_slot_to_node(sot_w); + + if ( 0 == lef_w ) { + _ch_v1_free_buck(hav_v); + } else { + _ch_v1_free_node(hav_v, lef_w); + } + } + } + u3a_v1_wfree(han_u); +} + +/* u3h_v1_free_nodes(): free hashtable nodes. +*/ +void +u3h_v1_free_nodes(u3p(u3h_v1_root) har_p) +{ + u3h_v1_root* har_u = u3to(u3h_v1_root, har_p); + c3_w i_w; + + for ( i_w = 0; i_w < 64; i_w++ ) { + c3_w sot_w = har_u->sot_w[i_w]; + + if ( _(u3h_v1_slot_is_noun(sot_w)) ) { + u3a_v1_lose(u3h_v1_slot_to_noun(sot_w)); + } + else if ( _(u3h_v1_slot_is_node(sot_w)) ) { + u3h_v1_node* han_u = (u3h_v1_node*) u3h_v1_slot_to_node(sot_w); + + _ch_v1_free_node(han_u, 25); + } + har_u->sot_w[i_w] = 0; + } + har_u->use_w = 0; + har_u->arm_u.mug_w = 0; + har_u->arm_u.inx_w = 0; +} + +/* _ch_v1_walk_buck(): walk bucket for gc. +** NB: copy of _ch_v1_walk_buck in pkg/noun/hashtable.c +*/ +static void +_ch_v1_walk_buck(u3h_v1_buck* hab_u, void (*fun_f)(u3_noun, void*), void* wit) +{ + c3_w i_w; + + for ( i_w = 0; i_w < hab_u->len_w; i_w++ ) { + fun_f(u3h_v1_slot_to_noun(hab_u->sot_w[i_w]), wit); + } +} + +/* _ch_v1_walk_node(): walk node for gc. +*/ +static void +_ch_v1_walk_node(u3h_v1_node* han_u, c3_w lef_w, void (*fun_f)(u3_noun, void*), void* wit) +{ + c3_w len_w = _ch_v1_popcount(han_u->map_w); + c3_w i_w; + + lef_w -= 5; + + for ( i_w = 0; i_w < len_w; i_w++ ) { + c3_w sot_w = han_u->sot_w[i_w]; + + if ( _(u3h_v1_slot_is_noun(sot_w)) ) { + u3_noun kev = u3h_v1_slot_to_noun(sot_w); + + fun_f(kev, wit); + } + else { + void* hav_v = u3h_v1_slot_to_node(sot_w); + + if ( 0 == lef_w ) { + _ch_v1_walk_buck(hav_v, fun_f, wit); + } else { + _ch_v1_walk_node(hav_v, lef_w, fun_f, wit); + } + } + } +} + +/* u3h_v1_walk_with(): traverse hashtable with key, value fn and data + * argument; RETAINS. +*/ +void +u3h_v1_walk_with(u3p(u3h_v1_root) har_p, + void (*fun_f)(u3_noun, void*), + void* wit) +{ + u3h_v1_root* har_u = u3to(u3h_v1_root, har_p); + c3_w i_w; + + for ( i_w = 0; i_w < 64; i_w++ ) { + c3_w sot_w = har_u->sot_w[i_w]; + + if ( _(u3h_v1_slot_is_noun(sot_w)) ) { + u3_noun kev = u3h_v1_slot_to_noun(sot_w); + + fun_f(kev, wit); + } + else if ( _(u3h_v1_slot_is_node(sot_w)) ) { + u3h_v1_node* han_u = (u3h_v1_node*) u3h_v1_slot_to_node(sot_w); + + _ch_v1_walk_node(han_u, 25, fun_f, wit); + } + } +} + +/* _ch_v1_walk_plain(): use plain u3_noun fun_f for each node + */ +static void +_ch_v1_walk_plain(u3_noun kev, void* wit) +{ + void (*fun_f)(u3_noun) = (void (*)(u3_noun))wit; + fun_f(kev); +} + +/* u3h_v1_walk(): u3h_v1_walk_with, but with no data argument + */ +void +u3h_v1_walk(u3p(u3h_v1_root) har_p, void (*fun_f)(u3_noun)) +{ + u3h_v1_walk_with(har_p, _ch_v1_walk_plain, (void *)fun_f); +} diff --git a/vere/pkg/noun/v1/hashtable.h b/vere/pkg/noun/v1/hashtable.h new file mode 100644 index 0000000..74395cb --- /dev/null +++ b/vere/pkg/noun/v1/hashtable.h @@ -0,0 +1,51 @@ +#ifndef U3_HASHTABLE_V1_H +#define U3_HASHTABLE_V1_H + +#include "../hashtable.h" +#include "v2/hashtable.h" + + /** Aliases. + **/ +# define u3h_v1_buck u3h_v2_buck +# define u3h_v1_node u3h_v2_node +# define u3h_v1_root u3h_v2_root +# define u3h_v1_slot_is_node u3h_v2_slot_is_node +# define u3h_v1_slot_is_noun u3h_v2_slot_is_noun +# define u3h_v1_slot_to_noun u3h_v2_slot_to_noun + + /** Data structures. + **/ + + /** HAMT macros. + *** + *** Coordinate with u3_noun definition! + **/ + /* u3h_v1_slot_to_node(): slot to node pointer + ** u3h_v1_node_to_slot(): node pointer to slot + */ +# define u3h_v1_slot_to_node(sot) (u3a_v1_into((sot) & 0x3fffffff)) +# define u3h_v1_node_to_slot(ptr) (u3a_v1_outa(ptr) | 0x40000000) + + /** Functions. + *** + *** Needs: delete and merge functions; clock reclamation function. + **/ + /* u3h_v1_free(): free hashtable. + */ + void + u3h_v1_free_nodes(u3p(u3h_root) har_p); + + /* u3h_v1_walk_with(): traverse hashtable with key, value fn and data + * argument; RETAINS. + */ + void + u3h_v1_walk_with(u3p(u3h_root) har_p, + void (*fun_f)(u3_noun, void*), + void* wit); + + /* u3h_v1_walk(): u3h_v1_walk_with, but with no data argument + */ + void + u3h_v1_walk(u3p(u3h_root) har_p, void (*fun_f)(u3_noun)); + +#endif /* ifndef U3_HASHTABLE_H */ diff --git a/vere/pkg/noun/v1/jets.c b/vere/pkg/noun/v1/jets.c new file mode 100644 index 0000000..a798ccc --- /dev/null +++ b/vere/pkg/noun/v1/jets.c @@ -0,0 +1,87 @@ +/// @file + +#include "../vortex.h" + +#include "../jets.h" +#include "v1/jets.h" +#include "v2/jets.h" + +#include "v1/allocate.h" +#include "v1/hashtable.h" + + +/* _cj_fink_free(): lose and free everything in a u3j_v1_fink. +*/ +static void +_cj_v1_fink_free(u3p(u3j_v1_fink) fin_p) +{ + c3_w i_w; + u3j_v1_fink* fin_u = u3to(u3j_v1_fink, fin_p); + u3a_v1_lose(fin_u->sat); + for ( i_w = 0; i_w < fin_u->len_w; ++i_w ) { + u3j_v1_fist* fis_u = &(fin_u->fis_u[i_w]); + u3a_v1_lose(fis_u->bat); + u3a_v1_lose(fis_u->pax); + } + u3a_v1_wfree(fin_u); +} + +/* u3j_v1_rite_lose(): lose references of u3j_v1_rite (but do not free). + */ +void +u3j_v1_rite_lose(u3j_v1_rite* rit_u) +{ + if ( (c3y == rit_u->own_o) && u3_none != rit_u->clu ) { + u3a_v1_lose(rit_u->clu); + _cj_v1_fink_free(rit_u->fin_p); + } +} + + +/* u3j_v1_site_lose(): lose references of u3j_v1_site (but do not free). + */ +void +u3j_v1_site_lose(u3j_v1_site* sit_u) +{ + u3a_v1_lose(sit_u->axe); + if ( u3_none != sit_u->bat ) { + u3a_v1_lose(sit_u->bat); + } + if ( u3_none != sit_u->bas ) { + u3a_v1_lose(sit_u->bas); + } + if ( u3_none != sit_u->loc ) { + u3a_v1_lose(sit_u->loc); + u3a_v1_lose(sit_u->lab); + if ( c3y == sit_u->fon_o ) { + if ( sit_u->fin_p ) { + _cj_v1_fink_free(sit_u->fin_p); + } + } + } +} + +/* _cj_v1_free_hank(): free an entry from the hank cache. +*/ +static void +_cj_v1_free_hank(u3_noun kev) +{ + u3a_v1_cell* cel_u = (u3a_v1_cell*) u3a_v1_to_ptr(kev); + u3j_v1_hank* han_u = u3to(u3j_v1_hank, cel_u->tel); + if ( u3_none != han_u->hax ) { + u3a_v1_lose(han_u->hax); + u3j_v1_site_lose(&(han_u->sit_u)); + } + u3a_v1_wfree(han_u); +} + +/* u3j_v1_reclaim(): clear ad-hoc persistent caches to reclaim memory. +*/ +void +u3j_v1_reclaim(void) +{ + // clear the jet hank cache + // + u3h_v1_walk(u3R_v1->jed.han_p, _cj_v1_free_hank); + u3h_v1_free_nodes(u3R_v1->jed.han_p); +} diff --git a/vere/pkg/noun/v1/jets.h b/vere/pkg/noun/v1/jets.h new file mode 100644 index 0000000..0bcaf59 --- /dev/null +++ b/vere/pkg/noun/v1/jets.h @@ -0,0 +1,34 @@ +/// @file + +#ifndef U3_JETS_V1_H +#define U3_JETS_V1_H + +#include "../jets.h" +#include "v2/jets.h" + + /** Aliases. + **/ +# define u3j_v1_fink u3j_v2_fink +# define u3j_v1_fist u3j_v2_fist +# define u3j_v1_hank u3j_v2_hank +# define u3j_v1_rite u3j_v2_rite +# define u3j_v1_site u3j_v2_site + + /** Functions. + **/ + /* u3j_v1_reclaim(): clear ad-hoc persistent caches to reclaim memory. + */ + void + u3j_v1_reclaim(void); + + /* u3j_v1_rite_lose(): lose references of u3j_rite (but do not free). + */ + void + u3j_v1_rite_lose(u3j_v1_rite* rit_u); + + /* u3j_v1_site_lose(): lose references of u3j_site (but do not free). + */ + void + u3j_v1_site_lose(u3j_v1_site* sit_u); + +#endif /* ifndef U3_JETS_V1_H */ diff --git a/vere/pkg/noun/v1/manage.c b/vere/pkg/noun/v1/manage.c new file mode 100644 index 0000000..5e353d3 --- /dev/null +++ b/vere/pkg/noun/v1/manage.c @@ -0,0 +1,20 @@ +/// @file + +#include "v1/manage.h" + +#include "v1/allocate.h" +#include "v1/hashtable.h" +#include "v1/jets.h" +#include "v1/nock.h" +#include "v1/vortex.h" + +/* u3m_v1_reclaim: clear persistent caches to reclaim memory +*/ +void +u3m_v1_reclaim(void) +{ + u3v_v1_reclaim(); + u3j_v1_reclaim(); + u3n_v1_reclaim(); + u3a_v1_reclaim(); +} diff --git a/vere/pkg/noun/v1/manage.h b/vere/pkg/noun/v1/manage.h new file mode 100644 index 0000000..669d69e --- /dev/null +++ b/vere/pkg/noun/v1/manage.h @@ -0,0 +1,17 @@ +/// @file + +#ifndef U3_MANAGE_V1_H +#define U3_MANAGE_V1_H + + /** Aliases. + **/ +# define u3m_v1_bail u3m_bail + + /** System management. + **/ + /* u3m_v1_reclaim: clear persistent caches to reclaim memory + */ + void + u3m_v1_reclaim(void); + +#endif /* ifndef U3_MANAGE_V1_H */ diff --git a/vere/pkg/noun/v1/nock.c b/vere/pkg/noun/v1/nock.c new file mode 100644 index 0000000..aa1dc9c --- /dev/null +++ b/vere/pkg/noun/v1/nock.c @@ -0,0 +1,69 @@ +/// @file + +#include "../nock.h" +#include "v1/nock.h" + +#include "v1/allocate.h" +#include "v1/hashtable.h" +#include "../jets.h" +#include "v1/jets.h" + +/* u3n_v1_reclaim(): clear ad-hoc persistent caches to reclaim memory. +*/ +void +u3n_v1_reclaim(void) +{ + // clear the bytecode cache + // + // We can't just u3h_v1_free() -- the value is a post to a u3n_v1_prog. + // Note that the hank cache *must* also be freed (in u3j_v1_reclaim()) + // + u3n_v1_free(); +} + +/* _cn_v1_prog_free(): free memory retained by program pog_u +*/ +static void +_cn_v1_prog_free(u3n_v1_prog* pog_u) +{ + // fix up pointers for loom portability + pog_u->byc_u.ops_y = (c3_y*) ((void*) pog_u) + sizeof(u3n_v1_prog); + pog_u->lit_u.non = (u3_noun*) (pog_u->byc_u.ops_y + pog_u->byc_u.len_w); + pog_u->mem_u.sot_u = (u3n_v1_memo*) (pog_u->lit_u.non + pog_u->lit_u.len_w); + pog_u->cal_u.sit_u = (u3j_v1_site*) (pog_u->mem_u.sot_u + pog_u->mem_u.len_w); + pog_u->reg_u.rit_u = (u3j_v1_rite*) (pog_u->cal_u.sit_u + pog_u->cal_u.len_w); + + c3_w dex_w; + for (dex_w = 0; dex_w < pog_u->lit_u.len_w; ++dex_w) { + u3a_v1_lose(pog_u->lit_u.non[dex_w]); + } + for (dex_w = 0; dex_w < pog_u->mem_u.len_w; ++dex_w) { + u3a_v1_lose(pog_u->mem_u.sot_u[dex_w].key); + } + for (dex_w = 0; dex_w < pog_u->cal_u.len_w; ++dex_w) { + u3j_v1_site_lose(&(pog_u->cal_u.sit_u[dex_w])); + } + for (dex_w = 0; dex_w < pog_u->reg_u.len_w; ++dex_w) { + u3j_v1_rite_lose(&(pog_u->reg_u.rit_u[dex_w])); + } + u3a_v1_free(pog_u); +} + +/* _n_v1_feb(): u3h_v1_walk helper for u3n_v1_free + */ +static void +_n_v1_feb(u3_noun kev) +{ + u3a_v1_cell *cel_u = (u3a_v1_cell*) u3a_v1_to_ptr(kev); + _cn_v1_prog_free(u3to(u3n_v1_prog, cel_u->tel)); +} + +/* u3n_v1_free(): free bytecode cache + */ +void +u3n_v1_free(void) +{ + u3p(u3h_v1_root) har_p = u3R_v1->byc.har_p; + u3h_v1_walk(har_p, _n_v1_feb); + u3h_v1_free_nodes(har_p); +} diff --git a/vere/pkg/noun/v1/nock.h b/vere/pkg/noun/v1/nock.h new file mode 100644 index 0000000..3df2951 --- /dev/null +++ b/vere/pkg/noun/v1/nock.h @@ -0,0 +1,25 @@ +/// @file + +#ifndef U3_NOCK_V1_H +#define U3_NOCK_V1_H + +#include "v2/nock.h" + + /** Aliases. + **/ +# define u3n_v1_memo u3n_v2_memo +# define u3n_v1_prog u3n_v2_prog + + /** Functions. + **/ + /* u3n_v1_reclaim(): clear ad-hoc persistent caches to reclaim memory. + */ + void + u3n_v1_reclaim(void); + + /* u3n_v1_free(): free bytecode cache. + */ + void + u3n_v1_free(void); + +#endif /* ifndef U3_NOCK_V1_H */ diff --git a/vere/pkg/noun/v1/vortex.c b/vere/pkg/noun/v1/vortex.c new file mode 100644 index 0000000..07daf7a --- /dev/null +++ b/vere/pkg/noun/v1/vortex.c @@ -0,0 +1,17 @@ +/// @file + +#include "../vortex.h" +#include "v1/vortex.h" + +#include "v1/allocate.h" + +/* u3v_v1_reclaim(): clear ad-hoc persistent caches to reclaim memory. +*/ +void +u3v_v1_reclaim(void) +{ + // clear the u3v_wish cache + // + u3a_v1_lose(u3A_v1->yot); + u3A_v1->yot = u3_nul; +} diff --git a/vere/pkg/noun/v1/vortex.h b/vere/pkg/noun/v1/vortex.h new file mode 100644 index 0000000..92743f7 --- /dev/null +++ b/vere/pkg/noun/v1/vortex.h @@ -0,0 +1,22 @@ +/// @file + +#ifndef U3_VORTEX_V1_H +#define U3_VORTEX_V1_H + +#include "../allocate.h" +#include "v2/vortex.h" + + /** Aliases. + **/ +# define u3H_v1 u3H_v2 +# define u3A_v1 u3A_v2 +# define u3v_v1_home u3v_v2_home + + /** Functions. + **/ + /* u3v_v1_reclaim(): clear ad-hoc persistent caches to reclaim memory. + */ + void + u3v_v1_reclaim(void); + +#endif /* ifndef U3_VORTEX_V1_H */ diff --git a/vere/pkg/noun/v2/allocate.c b/vere/pkg/noun/v2/allocate.c new file mode 100644 index 0000000..0476f8a --- /dev/null +++ b/vere/pkg/noun/v2/allocate.c @@ -0,0 +1,73 @@ +/// @file + +#include "../allocate.h" +#include "v1/allocate.h" +#include "v2/allocate.h" + +#include "v2/hashtable.h" +#include "log.h" +#include "v2/manage.h" +#include "options.h" +#include "retrieve.h" +#include "trace.h" +#include "vortex.h" + +u3a_v2_road* u3a_v2_Road; + +u3_noun +u3a_v2_rewritten_noun(u3_noun som) +{ + if ( c3y == u3a_v2_is_cat(som) ) { + return som; + } + u3_post som_p = u3a_v2_rewritten(u3a_v1_to_off(som)); + + if ( c3y == u3a_v2_is_pug(som) ) { + som_p = u3a_v2_to_pug(som_p); + } + else { + som_p = u3a_v2_to_pom(som_p); + } + + return som_p; +} + +/* u3a_v2_mig_rewrite_compact(): rewrite pointers in ad-hoc persistent road structures. +*/ +void +u3a_v2_mig_rewrite_compact(void) +{ + u3a_v2_rewrite_noun(u3R_v2->ski.gul); + u3a_v2_rewrite_noun(u3R_v2->bug.tax); + u3a_v2_rewrite_noun(u3R_v2->bug.mer); + u3a_v2_rewrite_noun(u3R_v2->pro.don); + u3a_v2_rewrite_noun(u3R_v2->pro.day); + u3a_v2_rewrite_noun(u3R_v2->pro.trace); + u3h_v2_rewrite(u3R_v2->cax.har_p); + + u3R_v2->ski.gul = u3a_v2_rewritten_noun(u3R_v2->ski.gul); + u3R_v2->bug.tax = u3a_v2_rewritten_noun(u3R_v2->bug.tax); + u3R_v2->bug.mer = u3a_v2_rewritten_noun(u3R_v2->bug.mer); + u3R_v2->pro.don = u3a_v2_rewritten_noun(u3R_v2->pro.don); + u3R_v2->pro.day = u3a_v2_rewritten_noun(u3R_v2->pro.day); + u3R_v2->pro.trace = u3a_v2_rewritten_noun(u3R_v2->pro.trace); + u3R_v2->cax.har_p = u3a_v2_rewritten(u3R_v2->cax.har_p); +} + +void +u3a_v2_rewrite_noun(u3_noun som) +{ + if ( c3n == u3a_v2_is_cell(som) ) { + return; + } + + if ( c3n == u3a_v2_rewrite_ptr(u3a_v1_to_ptr((som))) ) return; + + u3a_v2_cell* cel = (u3a_v2_cell*) u3a_v1_to_ptr(som); + + u3a_v2_rewrite_noun(cel->hed); + u3a_v2_rewrite_noun(cel->tel); + + cel->hed = u3a_v2_rewritten_noun(cel->hed); + cel->tel = u3a_v2_rewritten_noun(cel->tel); +} diff --git a/vere/pkg/noun/v2/allocate.h b/vere/pkg/noun/v2/allocate.h new file mode 100644 index 0000000..8832977 --- /dev/null +++ b/vere/pkg/noun/v2/allocate.h @@ -0,0 +1,134 @@ +#ifndef U3_ALLOCATE_V2_H +#define U3_ALLOCATE_V2_H + +#include "../allocate.h" + +#include "v2/manage.h" +#include "options.h" + + /** Aliases. + **/ +# define u3a_v2_botox u3a_botox +# define u3a_v2_box u3a_box +# define u3a_v2_cell u3a_cell +# define u3a_v2_fbox u3a_fbox +# define u3a_v2_fbox_no u3a_fbox_no +# define u3a_v2_free u3a_free +# define u3a_v2_heap u3a_heap +# define u3a_v2_into u3a_into +# define u3a_v2_is_cat u3a_is_cat +# define u3a_v2_is_cell u3a_is_cell +# define u3a_v2_is_north u3a_is_north +# define u3a_v2_is_pom u3a_is_pom +# define u3a_v2_is_pug u3a_is_pug +# define u3a_v2_lose u3a_lose +# define u3a_v2_malloc u3a_malloc +# define u3a_v2_minimum u3a_minimum +# define u3a_v2_outa u3a_outa +# define u3a_v2_pack_seek u3a_pack_seek +# define u3a_v2_rewrite u3a_rewrite +# define u3a_v2_rewrite_ptr u3a_rewrite_ptr +# define u3a_v2_rewritten u3a_rewritten +# define u3a_v2_to_off u3a_to_off +# define u3a_v2_to_ptr u3a_to_ptr +# define u3a_v2_to_wtr u3a_to_wtr +# define u3a_v2_to_pug u3a_to_pug +# define u3a_v2_to_pom u3a_to_pom +# define u3a_v2_wfree u3a_wfree + + /** Data structures. + **/ + /* u3a_v2_road: contiguous allocation and execution context. + */ + typedef struct _u3a_v2_road { + u3p(struct _u3a_v2_road) par_p; // parent road + u3p(struct _u3a_v2_road) kid_p; // child road list + u3p(struct _u3a_v2_road) nex_p; // sibling road + + u3p(c3_w) cap_p; // top of transient region + u3p(c3_w) hat_p; // top of durable region + u3p(c3_w) mat_p; // bottom of transient region + u3p(c3_w) rut_p; // bottom of durable region + u3p(c3_w) ear_p; // original cap if kid is live + + c3_w fut_w[32]; // futureproof buffer + + struct { // escape buffer + union { + jmp_buf buf; + c3_w buf_w[256]; // futureproofing + }; + } esc; + + struct { // miscellaneous config + c3_w fag_w; // flag bits + } how; // + + struct { // allocation pools + u3p(u3a_v2_fbox) fre_p[u3a_v2_fbox_no]; // heap by node size log + u3p(u3a_fbox) cel_p; // custom cell allocator + c3_w fre_w; // number of free words + c3_w max_w; // maximum allocated + } all; + + u3a_jets jed; // jet dashboard + + struct { // bytecode state + u3p(u3h_root) har_p; // formula->post of bytecode + } byc; + + struct { // namespace + u3_noun gul; // (list $+(* (unit (unit)))) now + } ski; + + struct { // trace stack + u3_noun tax; // (list ,*) + u3_noun mer; // emergency buffer to release + } bug; + + struct { // profile stack + c3_d nox_d; // nock steps + c3_d cel_d; // cell allocations + u3_noun don; // (list batt) + u3_noun trace; // (list trace) + u3_noun day; // doss, only in u3H (moveme) + } pro; + + struct { // memoization + u3p(u3h_root) har_p; // (map (pair term noun) noun) + } cax; + } u3a_v2_road; + + /** Globals. + **/ + /// Current road (thread-local). + extern u3a_v2_road* u3a_v2_Road; +# define u3R_v2 u3a_v2_Road + + /** Functions. + **/ + /** Allocation. + **/ + /* Reference and arena control. + */ + /* u3a_v2_mig_rewrite_compact(): rewrite pointers in ad-hoc persistent road structures. + */ + void + u3a_v2_mig_rewrite_compact(void); + + /* u3a_v2_rewrite_noun(): rewrite a noun for compaction. + */ + void + u3a_v2_rewrite_noun(u3_noun som); + + /* u3a_v2_rewritten(): rewrite a pointer for compaction. + */ + u3_post + u3a_v2_rewritten(u3_post som_p); + + /* u3a_v2_rewritten(): rewritten noun pointer for compaction. + */ + u3_noun + u3a_v2_rewritten_noun(u3_noun som); + +#endif /* ifndef U3_ALLOCATE_V2_H */ diff --git a/vere/pkg/noun/v2/hashtable.c b/vere/pkg/noun/v2/hashtable.c new file mode 100644 index 0000000..a4f0291 --- /dev/null +++ b/vere/pkg/noun/v2/hashtable.c @@ -0,0 +1,143 @@ +/// @file + +#include "../hashtable.h" +#include "v1/hashtable.h" +#include "v2/hashtable.h" + +#include "../allocate.h" +#include "v1/allocate.h" +#include "v2/allocate.h" + +/* _ch_v2_popcount(): number of bits set in word. A standard intrinsic. +** NB: copy of _ch_v2_popcount in pkg/noun/hashtable.c +*/ +static c3_w +_ch_v2_popcount(c3_w num_w) +{ + return __builtin_popcount(num_w); +} + +/* _ch_v2_free_buck(): free bucket +** NB: copy of _ch_v2_free_buck in pkg/noun/hashtable.c +*/ +static void +_ch_v2_free_buck(u3h_v2_buck* hab_u) +{ + c3_w i_w; + + for ( i_w = 0; i_w < hab_u->len_w; i_w++ ) { + u3z(u3h_v2_slot_to_noun(hab_u->sot_w[i_w])); + } + u3a_v2_wfree(hab_u); +} + +/* _ch_v2_free_node(): free node. +*/ +static void +_ch_v2_free_node(u3h_v2_node* han_u, c3_w lef_w) +{ + c3_w len_w = _ch_v2_popcount(han_u->map_w); + c3_w i_w; + + lef_w -= 5; + + for ( i_w = 0; i_w < len_w; i_w++ ) { + c3_w sot_w = han_u->sot_w[i_w]; + + if ( _(u3h_v2_slot_is_noun(sot_w)) ) { + u3z(u3h_v2_slot_to_noun(sot_w)); + } + else { + // NB: u3h_v2_slot_to_node() + void* hav_v = u3h_v2_slot_to_node(sot_w); + + if ( 0 == lef_w ) { + _ch_v2_free_buck(hav_v); + } else { + _ch_v2_free_node(hav_v, lef_w); + } + } + } + u3a_v2_wfree(han_u); +} + +/* _ch_v2_rewrite_buck(): rewrite buck for compaction. +*/ +void +_ch_v2_rewrite_buck(u3h_v2_buck* hab_u) +{ + if ( c3n == u3a_v2_rewrite_ptr(hab_u) ) return; + c3_w i_w; + + for ( i_w = 0; i_w < hab_u->len_w; i_w++ ) { + u3_noun som = u3h_v2_slot_to_noun(hab_u->sot_w[i_w]); + hab_u->sot_w[i_w] = u3h_v2_noun_to_slot(u3a_v2_rewritten_noun(som)); + u3a_v2_rewrite_noun(som); + } +} + +/* _ch_v2_rewrite_node(): rewrite node for compaction. +*/ +void +_ch_v2_rewrite_node(u3h_v2_node* han_u, c3_w lef_w) +{ + if ( c3n == u3a_v2_rewrite_ptr(han_u) ) return; + + c3_w len_w = _ch_v2_popcount(han_u->map_w); + c3_w i_w; + + lef_w -= 5; + + for ( i_w = 0; i_w < len_w; i_w++ ) { + c3_w sot_w = han_u->sot_w[i_w]; + + if ( _(u3h_v2_slot_is_noun(sot_w)) ) { + u3_noun kev = u3h_v2_slot_to_noun(sot_w); + han_u->sot_w[i_w] = u3h_v2_noun_to_slot(u3a_v2_rewritten_noun(kev)); + + u3a_v2_rewrite_noun(kev); + } + else { + void* hav_v = u3h_v1_slot_to_node(sot_w); + u3h_v2_node* nod_u = u3to(u3h_v2_node, u3a_v2_rewritten(u3of(u3h_v2_node,hav_v))); + + han_u->sot_w[i_w] = u3h_v2_node_to_slot(nod_u); + + if ( 0 == lef_w ) { + _ch_v2_rewrite_buck(hav_v); + } else { + _ch_v2_rewrite_node(hav_v, lef_w); + } + } + } +} + +/* u3h_v2_rewrite(): rewrite pointers during compaction. +*/ +void +u3h_v2_rewrite(u3p(u3h_v2_root) har_p) +{ + u3h_v2_root* har_u = u3to(u3h_v2_root, har_p); + c3_w i_w; + + if ( c3n == u3a_v2_rewrite_ptr(har_u) ) return; + + for ( i_w = 0; i_w < 64; i_w++ ) { + c3_w sot_w = har_u->sot_w[i_w]; + + if ( _(u3h_v2_slot_is_noun(sot_w)) ) { + u3_noun kev = u3h_v2_slot_to_noun(sot_w); + har_u->sot_w[i_w] = u3h_v2_noun_to_slot(u3a_v2_rewritten_noun(kev)); + + u3a_v2_rewrite_noun(kev); + } + else if ( _(u3h_v2_slot_is_node(sot_w)) ) { + u3h_v2_node* han_u = (u3h_v2_node*) u3h_v1_slot_to_node(sot_w); + u3h_v2_node* nod_u = u3to(u3h_v2_node, u3a_v2_rewritten(u3of(u3h_v2_node,han_u))); + + har_u->sot_w[i_w] = u3h_v2_node_to_slot(nod_u); + + _ch_v2_rewrite_node(han_u, 25); + } + } +} diff --git a/vere/pkg/noun/v2/hashtable.h b/vere/pkg/noun/v2/hashtable.h new file mode 100644 index 0000000..2278640 --- /dev/null +++ b/vere/pkg/noun/v2/hashtable.h @@ -0,0 +1,42 @@ +#ifndef U3_HASHTABLE_V2_H +#define U3_HASHTABLE_V2_H + +#define u3h_v2_buck u3h_buck +#define u3h_v2_free u3h_free +#define u3h_v2_new u3h_new +#define u3h_v2_node u3h_node +#define u3h_v2_noun_to_slot u3h_noun_to_slot +#define u3h_v2_root u3h_root +#define u3h_v2_slot_is_node u3h_slot_is_node +#define u3h_v2_slot_is_noun u3h_slot_is_noun +#define u3h_v2_slot_to_noun u3h_slot_to_noun +#define u3h_v2_walk u3h_walk +#define u3h_v2_walk_with u3h_walk_with + +#include "../hashtable.h" + +#include "c3/c3.h" +#include "types.h" + + /** Data structures. + **/ + + /** HAMT macros. + *** + *** Coordinate with u3_noun definition! + **/ + /* u3h_v2_slot_to_node(): slot to node pointer + ** u3h_v2_node_to_slot(): node pointer to slot + */ +# define u3h_v2_slot_to_node(sot) (u3a_v2_into(((sot) & 0x3fffffff) << u3a_vits)) +# define u3h_v2_node_to_slot(ptr) ((u3a_v2_outa((ptr)) >> u3a_vits) | 0x40000000) + + /** Functions. + *** + **/ + /* u3h_v2_rewrite(): rewrite hashtable for compaction. + */ + void + u3h_v2_rewrite(u3p(u3h_root) har_p); + +#endif /* U3_HASHTABLE_V2_H */ diff --git a/vere/pkg/noun/v2/jets.c b/vere/pkg/noun/v2/jets.c new file mode 100644 index 0000000..4d5fa0f --- /dev/null +++ b/vere/pkg/noun/v2/jets.c @@ -0,0 +1,54 @@ +/// @file + +#include "../vortex.h" + +#include "../jets.h" +#include "v2/jets.h" + +#include "v2/allocate.h" +#include "v2/hashtable.h" +#include "v2/vortex.h" + +#include "v3/hashtable.h" +#include "v3/jets.h" + +/* u3j_v2_reclaim(): clear ad-hoc persistent caches to reclaim memory. +*/ +void +u3j_v2_reclaim(void) +{ + // set globals (required for aliased functions) + u3H = (u3v_home*) u3H_v2; + u3R = (u3a_road*) u3R_v2; + + // clear the jet hank cache + // + u3h_v3_walk(u3R->jed.han_p, u3j_v3_free_hank); + u3h_v3_free(u3R->jed.han_p); + u3R->jed.han_p = u3h_v3_new(); +} + +/* u3j_v2_mig_rewrite_compact(): rewrite jet state for compaction. + * + * NB: u3R_v2->jed.han_p *must* be cleared (currently via u3j_v2_reclaim above) + * since it contains hanks which are not nouns but have loom pointers. + * Alternately, rewrite the entries with u3h_v2_walk, using u3j_v2_mark as a + * template for how to walk. There's an untested attempt at this in git + * history at e8a307a. +*/ +void +u3j_v2_mig_rewrite_compact(void) +{ + u3h_v2_rewrite(u3R_v2->jed.war_p); + u3h_v2_rewrite(u3R_v2->jed.cod_p); + u3h_v2_rewrite(u3R_v2->jed.han_p); + u3h_v2_rewrite(u3R_v2->jed.bas_p); + + u3h_v2_rewrite(u3R_v2->jed.hot_p); + u3R_v2->jed.hot_p = u3a_v2_rewritten(u3R_v2->jed.hot_p); + + u3R_v2->jed.war_p = u3a_v2_rewritten(u3R_v2->jed.war_p); + u3R_v2->jed.cod_p = u3a_v2_rewritten(u3R_v2->jed.cod_p); + u3R_v2->jed.han_p = u3a_v2_rewritten(u3R_v2->jed.han_p); + u3R_v2->jed.bas_p = u3a_v2_rewritten(u3R_v2->jed.bas_p); +} diff --git a/vere/pkg/noun/v2/jets.h b/vere/pkg/noun/v2/jets.h new file mode 100644 index 0000000..33ac088 --- /dev/null +++ b/vere/pkg/noun/v2/jets.h @@ -0,0 +1,35 @@ +/// @file + +#ifndef U3_JETS_V2_H +#define U3_JETS_V2_H + +#include "../allocate.h" +#include "../jets.h" + + + /** Aliases. + **/ +# define u3j_v2_core u3j_core +# define u3j_v2_fink u3j_fink +# define u3j_v2_fist u3j_fist +# define u3j_v2_hank u3j_hank +# define u3j_v2_free_hank u3j_free_hank +# define u3j_v2_harm u3j_harm +# define u3j_v2_rite u3j_rite +# define u3j_v2_site u3j_site +# define u3j_v2_rite_lose u3j_rite_lose +# define u3j_v2_site_lose u3j_site_lose + + /** Functions. + **/ + /* u3j_v2_reclaim(): clear ad-hoc persistent caches to reclaim memory. + */ + void + u3j_v2_reclaim(void); + + /* u3j_v2_mig_rewrite_compact(): rewrite jet state for compaction. + */ + void + u3j_v2_mig_rewrite_compact(void); + +#endif /* ifndef U3_JETS_V2_H */ diff --git a/vere/pkg/noun/v2/manage.c b/vere/pkg/noun/v2/manage.c new file mode 100644 index 0000000..16981d2 --- /dev/null +++ b/vere/pkg/noun/v2/manage.c @@ -0,0 +1,174 @@ +/// @file + +#include "v2/manage.h" + +#include "v1/allocate.h" +#include "v2/allocate.h" +#include "v2/hashtable.h" +#include "v2/jets.h" +#include "v2/nock.h" +#include "v2/options.h" +#include "../vortex.h" +#include "v1/vortex.h" +#include "v2/vortex.h" + +/* _cm_pack_rewrite(): trace through arena, rewriting pointers. +*/ +static void +_cm_pack_rewrite(void) +{ + u3v_v2_mig_rewrite_compact(); + u3j_v2_mig_rewrite_compact(); + u3n_v2_mig_rewrite_compact(); + u3a_v2_mig_rewrite_compact(); +} + +static void +_migrate_reclaim(void) +{ + // XX update this and similar printfs + fprintf(stderr, "loom: migration reclaim\r\n"); + u3m_v1_reclaim(); +} + +static void +_migrate_seek(const u3a_v2_road *rod_u) +{ + /* + very much like u3a_v2_pack_seek with the following changes: + - there is no need to account for free space as |pack is performed before + the migration + - odd sized boxes will be padded by one word to achieve an even size + - rut will be moved from one word ahead of u3_Loom to two words ahead + */ + c3_w * box_w = u3a_v2_into(rod_u->rut_p); + c3_w * end_w = u3a_v2_into(rod_u->hat_p); + u3_post new_p = (rod_u->rut_p + 1 + c3_wiseof(u3a_v2_box)); + u3a_v2_box * box_u = (void *)box_w; + + fprintf(stderr, "loom: migration seek\r\n"); + + for (; box_w < end_w + ; box_w += box_u->siz_w + , box_u = (void*)box_w) + { + if (!box_u->use_w) + continue; + u3_assert(box_u->siz_w); + u3_assert(box_u->use_w); + box_w[box_u->siz_w - 1] = new_p; + new_p = c3_align(new_p + box_u->siz_w, 2, C3_ALGHI); + } +} + +static void +_migrate_rewrite(void) +{ + fprintf(stderr, "loom: migration rewrite\r\n"); + + _cm_pack_rewrite(); +} + +static void +_migrate_move(u3a_v2_road *rod_u) +{ + fprintf(stderr, "loom: migration move\r\n"); + + c3_z hiz_z = u3a_v2_heap(rod_u) * sizeof(c3_w); + + /* calculate required shift distance to prevent write head overlapping read head */ + c3_w off_w = 1; /* at least 1 word because u3R_v1->rut_p migrates from 1 to 2 */ + for (u3a_v2_box *box_u = u3a_v2_into(rod_u->rut_p) + ; (void *)box_u < u3a_v2_into(rod_u->hat_p) + ; box_u = (void *)((c3_w *)box_u + box_u->siz_w)) + off_w += box_u->siz_w & 1; /* odd-sized boxes are padded by one word */ + + /* shift */ + memmove(u3a_v2_into(u3H_v2->rod_u.rut_p + off_w), + u3a_v2_into(u3H_v2->rod_u.rut_p), + hiz_z); + /* manually zero the former rut */ + *(c3_w *)u3a_v2_into(rod_u->rut_p) = 0; + + /* relocate boxes to DWORD-aligned addresses stored in trailing size word */ + c3_w *box_w = u3a_v2_into(rod_u->rut_p + off_w); + c3_w *end_w = u3a_v2_into(rod_u->hat_p + off_w); + u3a_v2_box *old_u = (void *)box_w; + c3_w siz_w = old_u->siz_w; + u3p(c3_w) new_p = rod_u->rut_p + 1 + c3_wiseof(u3a_v2_box); + c3_w *new_w; + + for (; box_w < end_w + ; box_w += siz_w + , old_u = (void *)box_w + , siz_w = old_u->siz_w) { + old_u->use_w &= 0x7fffffff; + + if (!old_u->use_w) + continue; + + new_w = (void *)u3a_v2_botox(u3a_v2_into(new_p)); + u3_assert(box_w[siz_w - 1] == new_p); + u3_assert(new_w <= box_w); + + c3_w i_w; + for (i_w = 0; i_w < siz_w - 1; i_w++) + new_w[i_w] = box_w[i_w]; + + if (siz_w & 1) { + new_w[i_w++] = 0; /* pad odd sized boxes */ + new_w[i_w++] = siz_w + 1; /* restore trailing size word */ + new_w[0] = siz_w + 1; /* and the leading size word */ + } + else { + new_w[i_w++] = siz_w; + } + + new_p += i_w; + } + + /* restore proper heap state */ + rod_u->rut_p = 2; + rod_u->hat_p = new_p - c3_wiseof(u3a_v2_box); + + /* like |pack, clear the free lists and cell allocator */ + for (c3_w i_w = 0; i_w < u3a_v2_fbox_no; i_w++) + u3R_v1->all.fre_p[i_w] = 0; + + u3R_v1->all.fre_w = 0; + u3R_v1->all.cel_p = 0; +} + + +/* u3m_v2_migrate: perform loom migration if necessary. +*/ +void +u3m_v2_migrate(void) +{ + c3_w len_w = u3C_v2.wor_i - 1; + c3_w ver_w = *(u3_Loom + len_w); + + u3_assert( U3V_VER1 == ver_w ); + + c3_w* mem_w = u3_Loom + 1; + c3_w siz_w = c3_wiseof(u3v_v1_home); + c3_w* mat_w = (mem_w + len_w) - siz_w; + + u3H_v1 = (void *)mat_w; + u3R_v1 = &u3H_v1->rod_u; + + u3R_v1->cap_p = u3R_v1->mat_p = u3a_v1_outa(u3H_v1); + + fprintf(stderr, "loom: pointer compression migration running...\r\n"); + + /* perform the migration in a pattern similar to |pack */ + _migrate_reclaim(); + _migrate_seek(&u3H_v1->rod_u); + _migrate_rewrite(); + _migrate_move(&u3H_v1->rod_u); + + /* finally update the version and commit to disk */ + u3H_v1->ver_w = U3V_VER2; + + fprintf(stderr, "loom: pointer compression migration done\r\n"); +} diff --git a/vere/pkg/noun/v2/manage.h b/vere/pkg/noun/v2/manage.h new file mode 100644 index 0000000..623453e --- /dev/null +++ b/vere/pkg/noun/v2/manage.h @@ -0,0 +1,13 @@ +/// @file + +#ifndef U3_MANAGE_V2_H +#define U3_MANAGE_V2_H + + /** System management. + **/ + /* u3m_v2_migrate: perform pointer compression loom migration if necessary. + */ + void + u3m_v2_migrate(void); + +#endif /* ifndef U3_MANAGE_V2_H */ diff --git a/vere/pkg/noun/v2/nock.c b/vere/pkg/noun/v2/nock.c new file mode 100644 index 0000000..e42221a --- /dev/null +++ b/vere/pkg/noun/v2/nock.c @@ -0,0 +1,92 @@ +/// @file + +#include "v2/nock.h" + +#include "../vortex.h" + +#include "v2/allocate.h" +#include "v2/hashtable.h" +#include "v2/vortex.h" + +#include "v3/hashtable.h" + +/* u3n_v2_reclaim(): clear ad-hoc persistent caches to reclaim memory. +*/ +void +u3n_v2_reclaim(void) +{ + // set globals (required for aliased functions) + u3H = (u3v_home*) u3H_v2; + u3R = (u3a_road*) u3R_v2; + + // clear the bytecode cache + u3n_v2_free(); + u3R->byc.har_p = u3h_v2_new(); +} + +/* _cn_v2_prog_free(): free memory retained by program pog_u +*/ +static void +_cn_v2_prog_free(u3n_v2_prog* pog_u) +{ + // fix up pointers for loom portability + pog_u->byc_u.ops_y = (c3_y*) ((void*) pog_u) + sizeof(u3n_v2_prog); + pog_u->lit_u.non = (u3_noun*) (pog_u->byc_u.ops_y + pog_u->byc_u.len_w); + pog_u->mem_u.sot_u = (u3n_v2_memo*) (pog_u->lit_u.non + pog_u->lit_u.len_w); + pog_u->cal_u.sit_u = (u3j_v2_site*) (pog_u->mem_u.sot_u + pog_u->mem_u.len_w); + pog_u->reg_u.rit_u = (u3j_v2_rite*) (pog_u->cal_u.sit_u + pog_u->cal_u.len_w); + + c3_w dex_w; + for (dex_w = 0; dex_w < pog_u->lit_u.len_w; ++dex_w) { + u3a_v2_lose(pog_u->lit_u.non[dex_w]); + } + for (dex_w = 0; dex_w < pog_u->mem_u.len_w; ++dex_w) { + u3a_v2_lose(pog_u->mem_u.sot_u[dex_w].key); + } + for (dex_w = 0; dex_w < pog_u->cal_u.len_w; ++dex_w) { + u3j_v2_site_lose(&(pog_u->cal_u.sit_u[dex_w])); + } + for (dex_w = 0; dex_w < pog_u->reg_u.len_w; ++dex_w) { + u3j_v2_rite_lose(&(pog_u->reg_u.rit_u[dex_w])); + } + u3a_v2_free(pog_u); +} + +/* _n_v2_feb(): u3h_v2_walk helper for u3n_v2_free + */ +static void +_n_v2_feb(u3_noun kev) +{ + u3a_v2_cell *cel_u = (u3a_v2_cell*) u3a_v2_to_ptr(kev); + _cn_v2_prog_free(u3to(u3n_v2_prog, cel_u->tel)); +} + +/* u3n_v2_free(): free bytecode cache + */ +void +u3n_v2_free(void) +{ + u3p(u3h_v2_root) har_p = u3R_v2->byc.har_p; + u3h_v2_walk(har_p, _n_v2_feb); + u3h_v2_free(har_p); +} + +/* u3n_v2_mig_rewrite_compact(): rewrite the bytecode cache for compaction. + * + * NB: u3R_v2->byc.har_p *must* be cleared (currently via u3n_v2_reclaim above), + * since it contains things that look like nouns but aren't. + * Specifically, it contains "cells" where the tail is a + * pointer to a u3a_v2_malloc'ed block that contains loom pointers. + * + * You should be able to walk this with u3h_v2_walk and rewrite the + * pointers, but you need to be careful to handle that u3a_v2_malloc + * pointers can't be turned into a box by stepping back two words. You + * must step back one word to get the padding, step then step back that + * many more words (plus one?). + */ +void +u3n_v2_mig_rewrite_compact(void) +{ + u3h_v2_rewrite(u3R_v2->byc.har_p); + u3R_v2->byc.har_p = u3a_v2_rewritten(u3R_v2->byc.har_p); +} diff --git a/vere/pkg/noun/v2/nock.h b/vere/pkg/noun/v2/nock.h new file mode 100644 index 0000000..efb9121 --- /dev/null +++ b/vere/pkg/noun/v2/nock.h @@ -0,0 +1,64 @@ +/// @file + +#ifndef U3_NOCK_V2_H +#define U3_NOCK_V2_H + +#include "v3/nock.h" + +#include "v2/jets.h" + +#include "types.h" + + /** Data structures. + **/ + /* u3n_memo: %memo hint space + */ + typedef struct { + c3_l sip_l; + u3_noun key; + } u3n_v2_memo; + + /* u3n_v2_prog: program compiled from nock + */ + typedef struct _u3n_v2_prog { + struct { + c3_o own_o; // program owns ops_y? + c3_w len_w; // length of bytecode (bytes) + c3_y* ops_y; // actual array of bytes + } byc_u; // bytecode + struct { + c3_w len_w; // number of literals + u3_noun* non; // array of literals + } lit_u; // literals + struct { + c3_w len_w; // number of memo slots + u3n_v2_memo* sot_u; // array of memo slots + } mem_u; // memo slot data + struct { + c3_w len_w; // number of calls sites + u3j_v2_site* sit_u; // array of sites + } cal_u; // call site data + struct { + c3_w len_w; // number of registration sites + u3j_v2_rite* rit_u; // array of sites + } reg_u; // registration site data + } u3n_v2_prog; + + /** Functions. + **/ + /* u3n_v2_reclaim(): clear ad-hoc persistent caches to reclaim memory. + */ + void + u3n_v2_reclaim(void); + + /* u3n_v2_free(): free bytecode cache. + */ + void + u3n_v2_free(void); + + /* u3n_v2_mig_rewrite_compact(): rewrite bytecode cache for compaction. + */ + void + u3n_v2_mig_rewrite_compact(void); + +#endif /* ifndef U3_NOCK_V2_H */ diff --git a/vere/pkg/noun/v2/options.h b/vere/pkg/noun/v2/options.h new file mode 100644 index 0000000..079f766 --- /dev/null +++ b/vere/pkg/noun/v2/options.h @@ -0,0 +1,14 @@ +/// @file + +#ifndef U3_OPTIONS_V2_H +#define U3_OPTIONS_V2_H + +#include "../options.h" + + /** Globals. + **/ + /* u3_Config / u3C: global memory control. + */ +# define u3C_v2 u3C + +#endif /* ifndef U3_OPTIONS_H */ diff --git a/vere/pkg/noun/v2/vortex.c b/vere/pkg/noun/v2/vortex.c new file mode 100644 index 0000000..9b21d5c --- /dev/null +++ b/vere/pkg/noun/v2/vortex.c @@ -0,0 +1,25 @@ +/// @file + +#include "../vortex.h" +#include "v2/vortex.h" + +#include "v2/allocate.h" + +u3v_v2_home* u3v_v2_Home; + +/* u3v_v2_mig_rewrite_compact(): rewrite arvo kernel for compaction. +*/ +void +u3v_v2_mig_rewrite_compact(void) +{ + u3v_v2_arvo* arv_u = &(u3H_v2->arv_u); + + u3a_v2_rewrite_noun(arv_u->roc); + u3a_v2_rewrite_noun(arv_u->now); + u3a_v2_rewrite_noun(arv_u->yot); + + arv_u->roc = u3a_v2_rewritten_noun(arv_u->roc); + arv_u->now = u3a_v2_rewritten_noun(arv_u->now); + arv_u->yot = u3a_v2_rewritten_noun(arv_u->yot); +} + diff --git a/vere/pkg/noun/v2/vortex.h b/vere/pkg/noun/v2/vortex.h new file mode 100644 index 0000000..9e04832 --- /dev/null +++ b/vere/pkg/noun/v2/vortex.h @@ -0,0 +1,40 @@ +/// @file + +#ifndef U3_VORTEX_V2_H +#define U3_VORTEX_V2_H + +#include "../vortex.h" + +#include "v2/allocate.h" +#include "../version.h" + + /** Aliases. + **/ +# define u3v_v2_arvo u3v_arvo + + /** Data structures. + **/ + /* u3v_v2_home: all internal (within image) state. + ** NB: version must be last for discriminability in north road + */ + typedef struct _u3v_v2_home { + u3a_v2_road rod_u; // storage state + u3v_v2_arvo arv_u; // arvo state + u3v_version ver_w; // version number + } u3v_v2_home; + + /** Globals. + **/ + /// Arvo internal state. + extern u3v_v2_home* u3v_v2_Home; +# define u3H_v2 u3v_v2_Home +# define u3A_v2 (&(u3v_v2_Home->arv_u)) + + /** Functions. + **/ + /* u3v_v2_mig_rewrite_compact(): rewrite arvo kernel for compaction. + */ + void + u3v_v2_mig_rewrite_compact(void); + +#endif /* ifndef U3_VORTEX_V2_H */ diff --git a/vere/pkg/noun/v3/allocate.h b/vere/pkg/noun/v3/allocate.h new file mode 100644 index 0000000..a47cc1f --- /dev/null +++ b/vere/pkg/noun/v3/allocate.h @@ -0,0 +1,17 @@ +#ifndef U3_ALLOCATE_V3_H +#define U3_ALLOCATE_V3_H + +#include "../allocate.h" + +#include "v3/manage.h" +#include "options.h" + + /** Aliases. + **/ +# define u3R_v3 u3a_Road +# define u3a_v3_balign u3a_balign +# define u3a_v3_road u3a_road +# define u3a_v3_walign u3a_walign +# define u3a_v3_walloc u3a_walloc + +#endif /* ifndef U3_ALLOCATE_V3_H */ diff --git a/vere/pkg/noun/v3/hashtable.c b/vere/pkg/noun/v3/hashtable.c new file mode 100644 index 0000000..3044758 --- /dev/null +++ b/vere/pkg/noun/v3/hashtable.c @@ -0,0 +1,33 @@ +/// @file + +#include "v3/hashtable.h" + +#include "../allocate.h" +#include "../vortex.h" + +#include "v3/allocate.h" +#include "v3/vortex.h" + +/* u3h_v3_new_cache(): create hashtable with bounded size. +*/ +u3p(u3h_v3_root) +u3h_v3_new_cache(c3_w max_w) +{ + // set globals (required for aliased functions) + u3H = (u3v_home*) u3H_v3; + u3R = (u3a_road*) u3R_v3; + + u3h_v3_root* har_u = u3a_v3_walloc(c3_wiseof(u3h_v3_root)); + u3p(u3h_v3_root) har_p = u3of(u3h_v3_root, har_u); + c3_w i_w; + + har_u->max_w = max_w; + har_u->use_w = 0; + har_u->arm_u.mug_w = 0; + har_u->arm_u.inx_w = 0; + + for ( i_w = 0; i_w < 64; i_w++ ) { + har_u->sot_w[i_w] = 0; + } + return har_p; +} diff --git a/vere/pkg/noun/v3/hashtable.h b/vere/pkg/noun/v3/hashtable.h new file mode 100644 index 0000000..1d00a86 --- /dev/null +++ b/vere/pkg/noun/v3/hashtable.h @@ -0,0 +1,18 @@ +#ifndef U3_HASHTABLE_V3_H +#define U3_HASHTABLE_V3_H + +#define u3h_v3_free u3h_free +#define u3h_v3_new u3h_new +#define u3h_v3_root u3h_root +#define u3h_v3_walk u3h_walk + +#include "../hashtable.h" + + /** Functions. + **/ + /* u3h_v3_new_cache(): create hashtable with bounded size. + */ + u3p(u3h_v3_root) + u3h_v3_new_cache(c3_w clk_w); + +#endif /* U3_HASHTABLE_V3_H */ diff --git a/vere/pkg/noun/v3/jets.h b/vere/pkg/noun/v3/jets.h new file mode 100644 index 0000000..089ff64 --- /dev/null +++ b/vere/pkg/noun/v3/jets.h @@ -0,0 +1,12 @@ +/// @file + +#ifndef U3_JETS_V3_H +#define U3_JETS_V3_H + +#include "../jets.h" + + /** Aliases. + **/ +# define u3j_v3_free_hank u3j_free_hank + +#endif /* ifndef U3_JETS_V3_H */ diff --git a/vere/pkg/noun/v3/manage.c b/vere/pkg/noun/v3/manage.c new file mode 100644 index 0000000..0cde37a --- /dev/null +++ b/vere/pkg/noun/v3/manage.c @@ -0,0 +1,109 @@ +/// @file + +#include "v3/manage.h" + +#include "v2/jets.h" +#include "v2/nock.h" +#include "v2/vortex.h" + +#include "v3/allocate.h" +#include "v3/hashtable.h" +#include "../version.h" +#include "v3/vortex.h" +#include "v2/allocate.h" + +/* u3m_v3_migrate: perform loom migration if necessary. +*/ +void +u3m_v3_migrate(void) +{ + fprintf(stderr, "loom: memoization migration running...\r\n"); + + + c3_w *mem_w = u3_Loom + u3a_v3_walign; + c3_w len_w = u3C.wor_i - u3a_v3_walign; + c3_w suz_w = c3_wiseof(u3v_v2_home); + c3_w *mut_w = c3_align(mem_w + len_w - suz_w, u3a_v3_balign, C3_ALGLO); + + // old road + u3v_v2_home* hum_u = (u3v_v2_home*)mut_w; + u3a_v2_road* rud_u = &hum_u->rod_u; + + // set v2 globals + u3H_v2 = (void *)mut_w; + u3R_v2 = &u3H_v2->rod_u; + u3R_v2->cap_p = u3R_v2->mat_p = u3a_v2_outa(u3H_v2); + + u3R = (u3a_road*)u3R_v2; + u3H = (u3v_home*)u3H_v2; + u3a_ream(); + + // free bytecode caches in old road + u3j_v2_reclaim(); + u3n_v2_reclaim(); + + // new home, new road + u3v_v3_home hom_u = {0}; + u3a_v3_road rod_u = {0}; + + // copy members, one-by-one, from old road to new road + rod_u.par_p = rud_u->par_p; + rod_u.kid_p = rud_u->kid_p; + rod_u.nex_p = rud_u->nex_p; + + rod_u.cap_p = rud_u->cap_p; + rod_u.hat_p = rud_u->hat_p; + rod_u.mat_p = rud_u->mat_p; + rod_u.rut_p = rud_u->rut_p; + rod_u.ear_p = rud_u->ear_p; + + // no need to zero-out fut_w + // no need to do anything with esc + + rod_u.how.fag_w = rud_u->how.fag_w; + + memcpy(rod_u.all.fre_p, rud_u->all.fre_p, sizeof(rud_u->all.fre_p)); + rod_u.all.cel_p = rud_u->all.cel_p; + rod_u.all.fre_w = rud_u->all.fre_w; + rod_u.all.max_w = rud_u->all.max_w; + + rod_u.jed.hot_p = rud_u->jed.hot_p; + rod_u.jed.war_p = rud_u->jed.war_p; + rod_u.jed.cod_p = rud_u->jed.cod_p; + rod_u.jed.han_p = rud_u->jed.han_p; + rod_u.jed.bas_p = rud_u->jed.bas_p; + + rod_u.byc.har_p = rud_u->byc.har_p; + + rod_u.ski.gul = rud_u->ski.gul; + + rod_u.bug.tax = rud_u->bug.tax; + rod_u.bug.mer = rud_u->bug.mer; + + rod_u.pro.nox_d = rud_u->pro.nox_d; + rod_u.pro.cel_d = rud_u->pro.cel_d; + rod_u.pro.don = rud_u->pro.don; + rod_u.pro.trace = rud_u->pro.trace; + rod_u.pro.day = rud_u->pro.day; + + rod_u.cax.har_p = rud_u->cax.har_p; + + // prepare the new home, update the version + hom_u.arv_u = hum_u->arv_u; + hom_u.rod_u = rod_u; + + // place the new home over the old one + c3_w siz_w = c3_wiseof(u3v_v3_home); + c3_w *mat_w = c3_align(mem_w + len_w - siz_w, u3a_v3_balign, C3_ALGLO); + memcpy(mat_w, &hom_u, sizeof(u3v_v3_home)); + + // set globals + u3H_v3 = (void*)mat_w; + u3R_v3 = &u3H_v3->rod_u; + u3H_v3->ver_w = U3V_VER3; + + // initialize persistent cache + u3R_v3->cax.per_p = u3h_v3_new_cache(u3C.per_w); + + fprintf(stderr, "loom: memoization migration done\r\n"); +} diff --git a/vere/pkg/noun/v3/manage.h b/vere/pkg/noun/v3/manage.h new file mode 100644 index 0000000..1cdd28a --- /dev/null +++ b/vere/pkg/noun/v3/manage.h @@ -0,0 +1,13 @@ +/// @file + +#ifndef U3_MANAGE_V3_H +#define U3_MANAGE_V3_H + + /** System management. + **/ + /* u3m_v3_migrate: perform memoization loom migration if necessary. + */ + void + u3m_v3_migrate(void); + +#endif /* ifndef U3_MANAGE_V3_H */ diff --git a/vere/pkg/noun/v3/nock.h b/vere/pkg/noun/v3/nock.h new file mode 100644 index 0000000..ee76eb9 --- /dev/null +++ b/vere/pkg/noun/v3/nock.h @@ -0,0 +1,17 @@ +/// @file + +#ifndef U3_NOCK_V3_H +#define U3_NOCK_V3_H + +#include "../nock.h" + +#include "types.h" + + /** Aliases. + **/ +# define u3n_v3_free u3n_free +# define u3n_v3_memo u3n_memo +# define u3n_v3_prog u3n_prog +# define u3n_v3_reclaim u3n_reclaim + +#endif /* ifndef U3_NOCK_V3_H */ diff --git a/vere/pkg/noun/v3/vortex.h b/vere/pkg/noun/v3/vortex.h new file mode 100644 index 0000000..9a4c9ef --- /dev/null +++ b/vere/pkg/noun/v3/vortex.h @@ -0,0 +1,19 @@ +/// @file + +#ifndef U3_VORTEX_V3_H +#define U3_VORTEX_V3_H + +#include "../vortex.h" + +#include "v3/allocate.h" +#include "../version.h" + + /** Aliases. + **/ +# define u3v_v3_arvo u3v_arvo +# define u3H_v3 u3v_Home +# define u3A_v3 (&(u3H_v3)->arv_u) +# define u3v_v3_home u3v_home +# define u3v_v3_rewrite_compact u3v_rewrite_compact + +#endif /* ifndef U3_VORTEX_V3_H */ diff --git a/vere/pkg/noun/v4/manage.c b/vere/pkg/noun/v4/manage.c new file mode 100644 index 0000000..0a3b723 --- /dev/null +++ b/vere/pkg/noun/v4/manage.c @@ -0,0 +1,30 @@ +/// @file + +#include "v4/manage.h" +#include "stdio.h" +#include "manage.h" +#include "allocate.h" +#include "vortex.h" +#include "options.h" + +/* u3m_v4_migrate: perform loom migration if necessary. +*/ +void +u3m_v4_migrate(void) +{ + fprintf(stderr, "loom: bytecode alignment migration running...\r\n"); + + c3_w* mem_w = u3_Loom + u3a_walign; + c3_w siz_w = c3_wiseof(u3v_home); + c3_w len_w = u3C.wor_i - u3a_walign; + c3_w* mat_w = c3_align(mem_w + len_w - siz_w, u3a_balign, C3_ALGLO); + + u3H = (void *)mat_w; + u3R = &u3H->rod_u; + + u3m_reclaim(); + + u3H->ver_w = U3V_VER4; + + fprintf(stderr, "loom: bytecode alignment migration done\r\n"); +} diff --git a/vere/pkg/noun/v4/manage.h b/vere/pkg/noun/v4/manage.h new file mode 100644 index 0000000..1059f12 --- /dev/null +++ b/vere/pkg/noun/v4/manage.h @@ -0,0 +1,13 @@ +/// @file + +#ifndef U3_MANAGE_V4_H +#define U3_MANAGE_V4_H + + /** System management. + **/ + /* u3m_v3_migrate: perform memoization loom migration if necessary. + */ + void + u3m_v4_migrate(void); + +#endif /* ifndef U3_MANAGE_V3_H */ diff --git a/vere/pkg/noun/version.h b/vere/pkg/noun/version.h new file mode 100644 index 0000000..9130d5f --- /dev/null +++ b/vere/pkg/noun/version.h @@ -0,0 +1,41 @@ +#ifndef U3_VERSION_H +#define U3_VERSION_H + +/* VORTEX + */ + +typedef c3_w u3v_version; + +#define U3V_VER1 1 +#define U3V_VER2 2 +#define U3V_VER3 3 +#define U3V_VER4 4 +#define U3V_VERLAT U3V_VER4 + +/* PATCHES + */ + +typedef c3_w u3e_version; + +#define U3P_VER1 1 +#define U3P_VERLAT U3P_VER1 + +/* DISK FORMAT + * + * synchronized between: + * - u3_disk->ver_w + * - version key in META table of data.mdb files + */ + +#define U3D_VER1 1 // <= vere-v2 +#define U3D_VER2 2 // migrating to >= vere-v3 +#define U3D_VER3 3 // >= vere-v3 +#define U3D_VERLAT U3D_VER3 + +/* EPOCH SYSTEM +*/ + +#define U3E_VER1 1 +#define U3E_VERLAT U3E_VER1 + +#endif /* ifndef U3_VERSION_H */ diff --git a/vere/pkg/noun/vortex.c b/vere/pkg/noun/vortex.c new file mode 100644 index 0000000..0abb61b --- /dev/null +++ b/vere/pkg/noun/vortex.c @@ -0,0 +1,445 @@ +/// @file + +#include "vortex.h" + +#include "allocate.h" +#include "imprison.h" +#include "jets/k.h" +#include "jets/q.h" +#include "log.h" +#include "manage.h" +#include "nock.h" +#include "retrieve.h" +#include "trace.h" +#include "xtract.h" + +#define _CVX_LOAD 4 +#define _CVX_PEEK 22 +#define _CVX_POKE 23 +#define _CVX_WISH 10 + +u3v_home* u3v_Home; + +/* u3v_life(): execute initial lifecycle, producing Arvo core. +*/ +u3_noun +u3v_life(u3_noun eve) +{ + u3_noun lyf = u3nt(2, u3nc(0, 3), u3nc(0, 2)); + u3_noun gat = u3n_nock_on(eve, lyf); + u3_noun cor = u3k(u3x_at(7, gat)); + + u3z(gat); + return cor; +} + +/* u3v_boot(): evaluate boot sequence, making a kernel +*/ +c3_o +u3v_boot(u3_noun eve) +{ + c3_d len_d; + { + u3_noun len = u3qb_lent(eve); + u3_assert( c3y == u3r_safe_chub(len, &len_d) ); + u3z(len); + } + + { + u3_noun pro = u3m_soft(0, u3v_life, eve); + + if ( u3_blip != u3h(pro) ) { + u3z(pro); + return c3n; + } + + u3z(u3A->roc); + u3A->roc = u3k(u3t(pro)); + u3A->eve_d = len_d; + u3z(pro); + } + + return c3y; +} + +/* _cv_lite(): load lightweight, core-only pill. +*/ +static u3_noun +_cv_lite(u3_noun pil) +{ + u3_noun eve, pro; + + { + u3_noun hed, tal; + u3x_cell(pil, &hed, &tal); + if ( !_(u3r_sing_c("ivory", hed)) ) { + u3m_bail(c3__exit); + } + eve = tal; + } + + u3l_log("lite: arvo formula %x", u3r_mug(pil)); + pro = u3v_life(u3k(eve)); + u3l_log("lite: core %x", u3r_mug(pro)); + + u3z(pil); + return pro; +} + +/* u3v_boot_lite(): light bootstrap sequence, just making a kernel. +*/ +c3_o +u3v_boot_lite(u3_noun pil) +{ + // ensure zero-initialized kernel + // + u3A->roc = 0; + + { + u3_noun pro = u3m_soft(0, _cv_lite, pil); + + if ( u3_blip != u3h(pro) ) { + u3z(pro); + return c3n; + } + + u3A->roc = u3k(u3t(pro)); + u3z(pro); + } + + u3l_log("lite: final state %x", u3r_mug(u3A->roc)); + + return c3y; +} + +/* _cv_nock_wish(): call wish through hardcoded interface. +*/ +static u3_noun +_cv_nock_wish(u3_noun txt) +{ + u3_noun fun, pro; + + fun = u3n_nock_on(u3k(u3A->roc), u3k(u3x_at(_CVX_WISH, u3A->roc))); + pro = u3n_slam_on(fun, txt); + + return pro; +} + +/* u3v_wish_n(): text expression with cache. with the input as a u3_noun. +*/ +u3_noun +u3v_wish_n(u3_noun txt) +{ + u3t_event_trace("u3v_wish", 'b'); + u3_weak exp = u3kdb_get(u3k(u3A->yot), u3k(txt)); + + if ( u3_none == exp ) { + exp = _cv_nock_wish(u3k(txt)); + + // It's probably not a good idea to use u3v_wish() + // outside the top level... (as the result is uncached) + // + if ( u3R == &u3H->rod_u ) { + u3A->yot = u3kdb_put(u3A->yot, u3k(txt), u3k(exp)); + } + } + + u3t_event_trace("u3v_wish", 'e'); + + u3z(txt); + return exp; +} + +/* u3v_wish(): text expression with cache. +*/ +u3_noun +u3v_wish(const c3_c* str_c) +{ + u3t_event_trace("u3v_wish", 'b'); + u3_noun txt = u3i_string(str_c); + u3_weak exp = u3kdb_get(u3k(u3A->yot), u3k(txt)); + + if ( u3_none == exp ) { + exp = _cv_nock_wish(u3k(txt)); + + // It's probably not a good idea to use u3v_wish() + // outside the top level... (as the result is uncached) + // + if ( u3R == &u3H->rod_u ) { + u3A->yot = u3kdb_put(u3A->yot, u3k(txt), u3k(exp)); + } + } + + u3t_event_trace("u3v_wish", 'e'); + + u3z(txt); + return exp; +} + +/* u3v_do(): use a kernel gate. +*/ +u3_noun +u3v_do(const c3_c* txt_c, u3_noun sam) +{ + u3_noun gat = u3v_wish(txt_c); + u3_noun pro; + +#if 0 + if ( &u3H->rod_u == u3R ) { + pro = u3m_soft_slam(gat, sam); + } + else { + pro = u3n_slam_on(gat, sam); + } +#else + pro = u3n_slam_on(gat, sam); +#endif + + return pro; +} + +/* u3v_time(): set the reck time. +*/ +void +u3v_time(u3_noun now) +{ + u3z(u3A->now); + u3A->now = now; +} + +#if 0 +/* _cv_time_bump(): advance the reck time by a small increment. +*/ +static void +_cv_time_bump(u3_reck* rec_u) +{ + c3_d bum_d = (1ULL << 48ULL); + + u3A->now = u3ka_add(u3A->now, u3i_chubs(1, &bum_d)); +} +#endif + +/* u3v_lily(): parse little atom. +*/ +c3_o +u3v_lily(u3_noun fot, u3_noun txt, c3_l* tid_l) +{ + c3_w wad_w; + u3_noun uco = u3dc("slaw", fot, u3k(txt)); + u3_noun p_uco, q_uco; + + if ( (c3n == u3r_cell(uco, &p_uco, &q_uco)) || + (u3_nul != p_uco) || + (c3n == u3r_safe_word(q_uco, &wad_w)) || + (wad_w & 0x80000000) ) + { + u3l_log("strange lily %s", u3r_string(txt)); + u3z(txt); u3z(uco); return c3n; + } + else { + *tid_l = (c3_l)wad_w; + u3z(txt); u3z(uco); return c3y; + } +} + +/* u3v_peek(): query the reck namespace (protected). +*/ +u3_noun +u3v_peek(u3_noun sam) +{ + u3_noun fun = u3n_nock_on(u3k(u3A->roc), u3k(u3x_at(_CVX_PEEK, u3A->roc))); + return u3n_slam_on(fun, sam); +} + +/* u3v_soft_peek(): softly query the reck namespace. +*/ +u3_noun +u3v_soft_peek(c3_w mil_w, u3_noun sam) +{ + u3_noun gon = u3m_soft(mil_w, u3v_peek, sam); + u3_noun tag, dat; + u3x_cell(gon, &tag, &dat); + + // read failed, produce trace + // + // NB, reads *should not* fail deterministically + // + if ( u3_blip != tag ) { + return u3nc(c3n, gon); + } + + // read succeeded, produce result + // + { + u3_noun pro = u3nc(c3y, u3k(dat)); + u3z(gon); + return pro; + } +} + +/* u3v_poke(): insert and apply an input ovum (protected). +*/ +u3_noun +u3v_poke(u3_noun ovo) +{ + return u3v_poke_raw(u3nc(u3k(u3A->now), ovo)); +} + +/* u3v_poke_raw(): u3v_poke w/out u3A->now XX replace +*/ +u3_noun +u3v_poke_raw(u3_noun sam) +{ + u3_noun fun = u3n_nock_on(u3k(u3A->roc), u3k(u3x_at(_CVX_POKE, u3A->roc))); + u3_noun pro; + + { +# ifdef U3_MEMORY_DEBUG + c3_w cod_w = u3a_lush(u3h(u3t(u3t(sam)))); +# endif + + pro = u3n_slam_on(fun, sam); + +# ifdef U3_MEMORY_DEBUG + u3a_lop(cod_w); +# endif + } + + return pro; +} + +/* u3v_poke_sure(): inject an event, saving new state if successful. +*/ +c3_o +u3v_poke_sure(c3_w mil_w, u3_noun eve, u3_noun* pro) +{ + u3_noun gon = u3m_soft(mil_w, u3v_poke_raw, eve); + u3_noun tag, dat; + u3x_cell(gon, &tag, &dat); + + // event failed, produce trace + // + if ( u3_blip != tag ) { + *pro = gon; + return c3n; + } + + // event succeeded, persist state and produce effects + // + { + u3_noun vir, cor; + u3x_cell(dat, &vir, &cor); + + u3z(u3A->roc); + u3A->roc = u3k(cor); + u3A->eve_d++; + + *pro = u3k(vir); + u3z(gon); + return c3y; + } +} + +/* u3v_tank(): dump single tank. +*/ +void +u3v_tank(u3_noun blu, c3_l tab_l, u3_noun tac) +{ + u3v_punt(blu, tab_l, u3nc(tac, u3_nul)); +} + +/* u3v_punt(): dump tank list. +*/ +void +u3v_punt(u3_noun blu, c3_l tab_l, u3_noun tac) +{ +#if 0 + u3_noun blu = u3_term_get_blew(0); +#endif + c3_l col_l = u3h(blu); + u3_noun cat = tac; + + // We are calling nock here, but hopefully need no protection. + // + while ( c3y == u3du(cat) ) { + u3_noun wol = u3dc("wash", u3nc(tab_l, col_l), u3k(u3h(cat))); + + u3m_wall(wol); + cat = u3t(cat); + } + u3z(tac); + u3z(blu); +} + +/* u3v_sway(): print trace. +*/ +void +u3v_sway(u3_noun blu, c3_l tab_l, u3_noun tax) +{ + u3_noun mok = u3dc("mook", 2, tax); + + u3v_punt(blu, tab_l, u3k(u3t(mok))); + u3z(mok); +} + +/* u3v_mark(): mark arvo kernel. +*/ +u3m_quac* +u3v_mark() +{ + u3v_arvo* arv_u = &(u3H->arv_u); + + u3m_quac** qua_u = c3_malloc(sizeof(*qua_u) * 4); + + qua_u[0] = c3_calloc(sizeof(*qua_u[0])); + qua_u[0]->nam_c = strdup("kernel"); + qua_u[0]->siz_w = u3a_mark_noun(arv_u->roc) * 4; + + qua_u[1] = c3_calloc(sizeof(*qua_u[1])); + qua_u[1]->nam_c = strdup("date"); + qua_u[1]->siz_w = u3a_mark_noun(arv_u->now) * 4; + + qua_u[2] = c3_calloc(sizeof(*qua_u[2])); + qua_u[2]->nam_c = strdup("wish cache"); + qua_u[2]->siz_w = u3a_mark_noun(arv_u->yot) * 4; + + qua_u[3] = NULL; + + u3m_quac* tot_u = c3_malloc(sizeof(*tot_u)); + tot_u->nam_c = strdup("total arvo stuff"); + tot_u->siz_w = qua_u[0]->siz_w + qua_u[1]->siz_w + qua_u[2]->siz_w; + tot_u->qua_u = qua_u; + + return tot_u; +} + +/* u3v_reclaim(): clear ad-hoc persistent caches to reclaim memory. +*/ +void +u3v_reclaim(void) +{ + // clear the u3v_wish cache + // + // NB: this would leak if not on the home road + // + if ( &(u3H->rod_u) == u3R ) { + u3z(u3A->yot); + u3A->yot = u3_nul; + } +} + +/* u3v_rewrite_compact(): rewrite arvo kernel for compaction. +*/ +void +u3v_rewrite_compact(void) +{ + u3v_arvo* arv_u = &(u3H->arv_u); + + u3a_rewrite_noun(arv_u->roc); + u3a_rewrite_noun(arv_u->now); + u3a_rewrite_noun(arv_u->yot); + + arv_u->roc = u3a_rewritten_noun(arv_u->roc); + arv_u->now = u3a_rewritten_noun(arv_u->now); + arv_u->yot = u3a_rewritten_noun(arv_u->yot); +} diff --git a/vere/pkg/noun/vortex.h b/vere/pkg/noun/vortex.h new file mode 100644 index 0000000..5772543 --- /dev/null +++ b/vere/pkg/noun/vortex.h @@ -0,0 +1,146 @@ +/// @file + +#ifndef U3_VORTEX_H +#define U3_VORTEX_H + +#include "allocate.h" +#include "c3/c3.h" +#include "imprison.h" +#include "version.h" + + /** Data structures. + **/ + /* u3v_arvo: modern arvo structure. + ** NB: packed to perserve word alignment given [eve_d] + */ + typedef struct __attribute__((__packed__)) _u3v_arvo { + c3_d eve_d; // event number + u3_noun yot; // cached gates + u3_noun now; // current time + u3_noun roc; // kernel core + } u3v_arvo; + + /* u3v_home: all internal (within image) state. + ** NB: version must be last for discriminability in north road + */ + typedef struct _u3v_home { + u3a_road rod_u; // storage state + u3v_arvo arv_u; // arvo state + u3v_version ver_w; // version number + } u3v_home; + + + /** Globals. + **/ + /// Arvo internal state. + extern u3v_home* u3v_Home; +# define u3H u3v_Home +# define u3A (&(u3v_Home->arv_u)) + + /** Functions. + **/ + /* u3v_life(): execute initial lifecycle, producing Arvo core. + */ + u3_noun + u3v_life(u3_noun eve); + + /* u3v_boot(): evaluate boot sequence, making a kernel + */ + c3_o + u3v_boot(u3_noun eve); + + /* u3v_boot_lite(): light bootstrap sequence, just making a kernel. + */ + c3_o + u3v_boot_lite(u3_noun lit); + + /* u3v_wish_n(): text expression with cache. + */ + u3_noun + u3v_wish_n(const u3_noun txt); + + /* u3v_do(): use a kernel function. + */ + u3_noun + u3v_do(const c3_c* txt_c, u3_noun arg); +# define u3do(txt_c, a) u3v_do(txt_c, a) +# define u3dc(txt_c, a, b) u3v_do(txt_c, u3nc(a, b)) +# define u3dt(txt_c, a, b, c) u3v_do(txt_c, u3nt(a, b, c)) +# define u3dq(txt_c, a, b, c, d) u3v_do(txt_c, u3nq(a, b, c, d)) + + /* u3v_wish(): text expression with cache. + */ + u3_noun + u3v_wish(const c3_c* str_c); + + /* u3v_time(): set the reck time. + */ + void + u3v_time(u3_noun now); + + /* u3v_lily(): parse little atom. + */ + c3_o + u3v_lily(u3_noun fot, u3_noun txt, c3_l* tid_l); + + /* u3v_peek(): query the reck namespace. + */ + u3_noun + u3v_peek(u3_noun hap); + + /* u3v_soft_peek(): softly query the reck namespace. + */ + u3_noun + u3v_soft_peek(c3_w mil_w, u3_noun sam); + + /* u3v_poke(): insert and apply an input ovum (protected). + */ + u3_noun + u3v_poke(u3_noun ovo); + + /* u3v_poke_raw(): u3v_poke w/out u3A->now XX replace + */ + u3_noun + u3v_poke_raw(u3_noun sam); + + /* u3v_poke_sure(): inject an event, saving new state if successful. + */ + c3_o + u3v_poke_sure(c3_w mil_w, u3_noun eve, u3_noun* pro); + + /* u3v_tank(): dump single tank. + */ + void + u3v_tank(u3_noun blu, c3_l tab_l, u3_noun tac); + + /* u3v_punt(): dump tank list. + */ + void + u3v_punt(u3_noun blu, c3_l tab_l, u3_noun tac); + + /* u3v_sway(): print trace. + */ + void + u3v_sway(u3_noun blu, c3_l tab_l, u3_noun tax); + + /* u3v_plan(): queue ovum (external). + */ + void + u3v_plan(u3_noun pax, u3_noun fav); + + /* u3v_mark(): mark arvo kernel. + */ + u3m_quac* + u3v_mark(); + + /* u3v_reclaim(): clear ad-hoc persistent caches to reclaim memory. + */ + void + u3v_reclaim(void); + + /* u3v_rewrite_compact(): rewrite arvo kernel for compaction. + */ + void + u3v_rewrite_compact(void); + +#endif /* ifndef U3_VORTEX_H */ diff --git a/vere/pkg/noun/xtract.c b/vere/pkg/noun/xtract.c new file mode 100644 index 0000000..1ce799f --- /dev/null +++ b/vere/pkg/noun/xtract.c @@ -0,0 +1,31 @@ +/// @file + +#include "xtract.h" + +#include "manage.h" +#include "retrieve.h" + +u3_atom +u3x_atom(u3_noun a); +u3_noun +u3x_good(u3_weak som); + +/* u3x_mean(): +** +** Attempt to deconstruct `a` by axis, noun pairs; 0 terminates. +** Axes must be sorted in tree order. +*/ +void +u3x_mean(u3_noun som, ...) +{ + c3_o ret_o; + va_list ap; + + va_start(ap, som); + ret_o = u3r_vmean(som, ap); + va_end(ap); + + if ( c3n == ret_o ) { + u3m_bail(c3__exit); + } +} diff --git a/vere/pkg/noun/xtract.h b/vere/pkg/noun/xtract.h new file mode 100644 index 0000000..8f9da2e --- /dev/null +++ b/vere/pkg/noun/xtract.h @@ -0,0 +1,154 @@ +/// @file + +#ifndef U3_XTRACT_H +#define U3_XTRACT_H + +#include "c3/c3.h" +#include "types.h" +#include "allocate.h" +#include "manage.h" + + /** Constants. + **/ + /* Conventional axes for gate call. + */ +# define u3x_pay 3 // payload +# define u3x_sam 6 // sample +# define u3x_sam_1 6 +# define u3x_sam_2 12 +# define u3x_sam_3 13 +# define u3x_sam_4 24 +# define u3x_sam_5 25 +# define u3x_sam_6 26 +# define u3x_sam_12 52 +# define u3x_sam_13 53 +# define u3x_sam_7 27 +# define u3x_sam_14 54 +# define u3x_sam_15 55 +# define u3x_sam_30 110 +# define u3x_sam_31 111 +# define u3x_sam_62 222 +# define u3x_sam_63 223 +# define u3x_con 7 // context +# define u3x_con_2 14 // context +# define u3x_con_3 15 // context +# define u3x_con_sam 30 // sample in gate context +# define u3x_con_sam_2 60 +# define u3x_con_sam_3 61 +# define u3x_bat 2 // battery + + + /** Macros. + **/ + /* Word axis macros. For 31-bit axes only. + */ + + /* u3x_at (u3at): fragment. + */ +# define u3x_at(a, b) u3x_good(u3r_at(a, b)) +# define u3at(a, b) u3x_at(a, b) + + /* u3x_bite(): xtract/default $bloq and $step from $bite. + */ +# define u3x_bite(a, b, c) \ + do { \ + if ( c3n == u3r_bite(a, b, c) ) { \ + u3m_bail(c3__exit); \ + } \ + } while (0) + + /* u3x_dep(): number of axis bits. + */ +# define u3x_dep(a_w) (c3_bits_word(a_w) - 1) + + /* u3x_cap(): root axis, 2 or 3. + */ +# define u3x_cap(a_w) ({ \ + u3_assert( 1 < a_w ); \ + (0x2 | (a_w >> (u3x_dep(a_w) - 1))); }) + + /* u3x_mas(): remainder after cap. + */ +# define u3x_mas(a_w) ({ \ + u3_assert( 1 < a_w ); \ + ( (a_w & ~(1 << u3x_dep(a_w))) | (1 << (u3x_dep(a_w) - 1)) ); }) + + /* u3x_peg(): connect two axes. + */ +# define u3x_peg(a_w, b_w) \ + ( (a_w << u3x_dep(b_w)) | (b_w &~ (1 << u3x_dep(b_w))) ) + + /* u3x_cell(): divide `a` as a cell `[b c]`. + */ +# define u3x_cell(a, b, c) \ + do { \ + if ( c3n == u3r_cell(a, b, c) ) { \ + u3m_bail(c3__exit); \ + } \ + } while (0) + + /* u3x_trel(): divide `a` as a trel `[b c d]`, or bail. + */ +# define u3x_trel(a, b, c, d) \ + do { \ + if ( c3n == u3r_trel(a, b, c, d) ) { \ + u3m_bail(c3__exit); \ + } \ + } while (0) + + /* u3x_qual(): divide `a` as a quadruple `[b c d e]`. + */ +# define u3x_qual(a, b, c, d, e) \ + do { \ + if ( c3n == u3r_qual(a, b, c, d, e) ) { \ + u3m_bail(c3__exit); \ + } \ + } while (0) + + /* u3x_quil(): divide `a` as a quintuple `[b c d e f]`. + */ +# define u3x_quil(a, b, c, d, e, f) \ + do { \ + if ( c3n == u3r_quil(a, b, c, d, e, f) ) { \ + u3m_bail(c3__exit); \ + } \ + } while (0) + + /* u3x_hext(): divide `a` as a hextuple `[b c d e f g]`. + */ +# define u3x_hext(a, b, c, d, e, f, g) \ + do { \ + if ( c3n == u3r_hext(a, b, c, d, e, f, g) ) { \ + u3m_bail(c3__exit); \ + } \ + } while (0) + + /** Functions. + **/ + /** u3x_*: read, but bail with c3__exit on a crash. + **/ + /* u3x_atom(): atom or exit. + */ + inline u3_atom + u3x_atom(u3_noun a) + { + return ( c3y == u3a_is_cell(a) ) ? u3m_bail(c3__exit) : a; + } + + /* u3x_good(): test for u3_none. + */ + inline u3_noun + u3x_good(u3_weak som) + { + return ( u3_none == som ) ? u3m_bail(c3__exit) : som; + } + + /* u3x_mean(): + ** + ** Attempt to deconstruct `a` by axis, noun pairs; 0 terminates. + ** Axes must be sorted in tree order. + */ + void + u3x_mean(u3_noun a, ...); + +#endif /* ifndef U3_XTRACT_H */ diff --git a/vere/pkg/noun/zave.c b/vere/pkg/noun/zave.c new file mode 100644 index 0000000..596200f --- /dev/null +++ b/vere/pkg/noun/zave.c @@ -0,0 +1,134 @@ +/// @file + +#include "zave.h" + +#include "allocate.h" +#include "hashtable.h" +#include "imprison.h" +#include "vortex.h" + +/* u3z_key(): construct a memo cache-key. Arguments retained. +*/ +u3_noun +u3z_key(c3_m fun, u3_noun one) +{ + return u3nc(fun, u3k(one)); +} +u3_noun +u3z_key_2(c3_m fun, u3_noun one, u3_noun two) +{ + return u3nt(fun, u3k(one), u3k(two)); +} +u3_noun +u3z_key_3(c3_m fun, u3_noun one, u3_noun two, u3_noun tri) +{ + return u3nq(fun, u3k(one), u3k(two), u3k(tri)); +} +u3_noun +u3z_key_4(c3_m fun, u3_noun one, u3_noun two, u3_noun tri, u3_noun qua) +{ + return u3nc(fun, u3nq(u3k(one), u3k(two), u3k(tri), u3k(qua))); +} +u3_noun +u3z_key_5(c3_m fun, u3_noun one, u3_noun two, u3_noun tri, u3_noun qua, u3_noun qin) +{ + return u3nc(fun, u3nq(u3k(one), u3k(two), u3k(tri), u3nc(u3k(qua), u3k(qin)))); +} + +/* _har(): get the memo cache for the given cid. +*/ +static u3p(u3h_root) +_har(u3a_road* rod_u, u3z_cid cid) +{ + switch ( cid ) { + case u3z_memo_toss: + return rod_u->cax.har_p; + case u3z_memo_keep: + return rod_u->cax.per_p; + } + u3_assert(0); +} + +/* u3z_find(): find in memo cache. Arguments retained. +*/ +u3_weak +u3z_find(u3z_cid cid, u3_noun key) +{ + if ( u3z_memo_toss == cid ) { + return u3h_get(_har(u3R, cid), key); + } + else { + // XX needs to be benchmarked (up vs. down search) + u3a_road* rod_u = &(u3H->rod_u); + while ( 1 ) { + u3_weak got = u3h_get(_har(rod_u, cid), key); + if ( u3_none != got ) { + return got; + } + if ( 0 == rod_u->kid_p ) { + return u3_none; + } + rod_u = u3to(u3a_road, rod_u->kid_p); + }; + } +} +u3_weak +u3z_find_m(u3z_cid cid, c3_m fun, u3_noun one) +{ + u3_noun key = u3nc(fun, u3k(one)); + u3_weak val; + val = u3z_find(cid, key); + u3z(key); + + return val; +} + +/* u3z_save(): save in memo cache. TRANSFER key; RETAIN val +*/ +u3_noun +u3z_save(u3z_cid cid, u3_noun key, u3_noun val) +{ + u3h_put(_har(u3R, cid), key, u3k(val)); + u3z(key); + return val; +} + +/* u3z_save_m(): save in memo cache. Arguments retained. +*/ +u3_noun +u3z_save_m(u3z_cid cid, c3_m fun, u3_noun one, u3_noun val) +{ + u3_noun key = u3nc(fun, u3k(one)); + + u3h_put(_har(u3R, cid), key, u3k(val)); + u3z(key); + return val; +} + +/* u3z_uniq(): uniquify with memo cache. XX not used. +*/ +u3_noun +u3z_uniq(u3z_cid cid, u3_noun som) +{ + u3_noun key = u3nc(c3__uniq, u3k(som)); + u3_noun val = u3h_get(_har(u3R, cid), key); + + if ( u3_none != val ) { + u3z(key); u3z(som); return val; + } + else { + u3h_put(_har(u3R, cid), key, u3k(som)); + return som; + } +} + +/* u3z_reap(): promote memoization cache state. +*/ +void +u3z_reap(u3z_cid cid, u3p(u3h_root) har_p) +{ + u3_assert(u3z_memo_toss != cid); + + u3h_uni(_har(u3R, cid), har_p); + u3h_free(har_p); +} diff --git a/vere/pkg/noun/zave.h b/vere/pkg/noun/zave.h new file mode 100644 index 0000000..3c9d74d --- /dev/null +++ b/vere/pkg/noun/zave.h @@ -0,0 +1,68 @@ +/// @file + +#ifndef U3_ZAVE_H +#define U3_ZAVE_H + +#include "c3/c3.h" +#include "types.h" + + /** Memoization. + *** + *** The memo cache is keyed by an arbitrary symbolic function + *** and a noun argument to that (logical) function. Functions + *** are predefined by C-level callers, but 0 means nock. + *** + *** Memo functions RETAIN keys and transfer values. + **/ + /* u3z_cid: cache id + */ + typedef enum { + u3z_memo_toss = 0, + u3z_memo_keep = 1, + // u3z_memo_ford = 2, + // u3z_memo_ames = 3, + // ... + } u3z_cid; + + /* u3z_key*(): construct a memo cache-key. Arguments retained. + */ + u3_noun u3z_key(c3_m, u3_noun); + u3_noun u3z_key_2(c3_m, u3_noun, u3_noun); + u3_noun u3z_key_3(c3_m, u3_noun, u3_noun, u3_noun); + u3_noun u3z_key_4(c3_m, u3_noun, u3_noun, u3_noun, u3_noun); + u3_noun u3z_key_5(c3_m, u3_noun, u3_noun, u3_noun, u3_noun, u3_noun); + + /* u3z_find*(): find in memo cache. Arguments retained + */ + u3_weak u3z_find(u3z_cid cid, u3_noun key); + u3_weak u3z_find_m(u3z_cid cid, c3_m fun_m, u3_noun one); + + /* u3z_save(): save in memo cache. TRANSFER key; RETAIN val; + */ + u3_noun u3z_save(u3z_cid cid, u3_noun key, u3_noun val); + + /* u3z_save_m(): save in memo cache. Arguments retained + */ + u3_noun u3z_save_m(u3z_cid cid, c3_m fun_m, u3_noun one, u3_noun val); + + /* u3z_uniq(): uniquify with memo cache. + */ + u3_noun + u3z_uniq(u3z_cid cid, u3_noun som); + + /* u3z_reap(): promote memoization cache state. + */ + void + u3z_reap(u3z_cid cid, u3p(u3h_root) har_p); + + /* u3z_free(): free memoization cache. + */ + void + u3z_free(u3z_cid cid); + + /* u3z_ream(): refresh after restoring from checkpoint. + */ + void + u3z_ream(u3z_cid cid); + +#endif /* ifndef U3_ZAVE_H */ diff --git a/vere/pkg/ur/bitstream.c b/vere/pkg/ur/bitstream.c new file mode 100644 index 0000000..6cf95e6 --- /dev/null +++ b/vere/pkg/ur/bitstream.c @@ -0,0 +1,1283 @@ +/// @file + +#include "bitstream.h" + +#include +#include +#include +#include + +#include "defs.h" + +ur_cue_res_e +ur_bsr_init(ur_bsr_t *bsr, uint64_t len, const uint8_t *bytes) +{ + // check for overflow + // + if ( (len << 3) < len ) { + return ur_cue_meme; + } + + bsr->left = len; + bsr->bytes = bytes; + + return ur_cue_good; +} + +ur_bool_t +ur_bsr_sane(ur_bsr_t *bsr) +{ + ur_bool_t ret = 8 > bsr->off; + + if ( !bsr->left ) { + ret = ret && (!bsr->off && !bsr->bytes); + } + + return ret; +} + +ur_cue_res_e +ur_bsr_bit(ur_bsr_t *bsr, uint8_t *out) +{ + uint64_t left = bsr->left; + + if ( !left ) { + return ur_cue_gone; + } + else { + const uint8_t *b = bsr->bytes; + uint8_t off = bsr->off; + uint8_t bit = (b[0] >> off) & 1; + + if ( 7 == off ) { + bsr->bytes = ( --left ) ? (b + 1) : 0; + bsr->left = left; + bsr->off = 0; + } + else { + bsr->off = 1 + off; + } + + bsr->bits++; + + *out = bit; + return ur_cue_good; + } +} + +uint8_t +ur_bsr_bit_any(ur_bsr_t *bsr) +{ + uint64_t left = bsr->left; + + bsr->bits++; + + if ( !left ) { + return 0; + } + else { + const uint8_t *b = bsr->bytes; + uint8_t off = bsr->off; + uint8_t bit = (b[0] >> off) & 1; + + if ( 7 == off ) { + bsr->bytes = ( --left ) ? (b + 1) : 0; + bsr->left = left; + bsr->off = 0; + } + else { + bsr->off = 1 + off; + } + + return bit; + } +} + +uint8_t +ur_bsr8_any(ur_bsr_t *bsr, uint8_t len) +{ + uint64_t left = bsr->left; + + len = ur_min(8, len); + + bsr->bits += len; + + if ( !left ) { + return 0; + } + else { + uint8_t off = bsr->off; + uint8_t rest = 8 - off; + const uint8_t *b = bsr->bytes; + uint8_t m = b[0] >> off; + + if ( len < rest ) { + bsr->off = off + len; + return m & ((1 << len) - 1); + } + else if ( 1 == left ) { + bsr->off = 0; + bsr->left = 0; + bsr->bytes = 0; + return m; + } + else { + off = len - rest; + + bsr->off = off; + bsr->left--; + bsr->bytes++; + + { + uint8_t l = b[1] & ((1 << off) - 1); + return m ^ (l << rest); + } + } + } +} + +uint32_t +ur_bsr32_any(ur_bsr_t *bsr, uint8_t len) +{ + uint64_t left = bsr->left; + + len = ur_min(32, len); + + bsr->bits += len; + + if ( !left ) { + return 0; + } + else { + uint8_t off = bsr->off; + uint8_t rest = 8 - off; + uint32_t m = bsr->bytes[0] >> off; + + if ( len < rest ) { + bsr->off = off + len; + return m & ((1 << len) - 1); + } + else { + const uint8_t *b; + uint8_t mask, len_byt; + uint32_t l; + + len -= rest; + left--; + b = ++bsr->bytes; + + len_byt = len >> 3; + + if ( len_byt >= left ) { + len_byt = left; + bsr->off = off = 0; + bsr->left = 0; + bsr->bytes = 0; + } + else { + bsr->off = off = ur_mask_3(len); + bsr->left = left - len_byt; + bsr->bytes += len_byt; + } + + mask = (1 << off) - 1; + + switch ( len_byt ) { + default: assert(0); + + case 4: { + l = (uint32_t)b[0] + ^ (uint32_t)b[1] << 8 + ^ (uint32_t)b[2] << 16 + ^ (uint32_t)b[3] << 24; + } break; + + case 3: { + l = (uint32_t)b[0] + ^ (uint32_t)b[1] << 8 + ^ (uint32_t)b[2] << 16; + + if ( mask ) { + l ^= (uint32_t)(b[3] & mask) << 24; + } + } break; + + case 2: { + l = (uint32_t)b[0] + ^ (uint32_t)b[1] << 8; + + if ( mask ) { + l ^= (uint32_t)(b[2] & mask) << 16; + } + } break; + + case 1: { + l = (uint32_t)b[0]; + + if ( mask ) { + l ^= (uint32_t)(b[1] & mask) << 8; + } + } break; + + case 0: { + l = ( mask ) ? (uint32_t)(b[0] & mask) : 0; + } break; + } + + return m ^ (l << rest); + } + } +} + +uint64_t +ur_bsr64_any(ur_bsr_t *bsr, uint8_t len) +{ + uint64_t left = bsr->left; + + len = ur_min(64, len); + + bsr->bits += len; + + if ( !left ) { + return 0; + } + else { + uint8_t off = bsr->off; + uint8_t rest = 8 - off; + uint64_t m = bsr->bytes[0] >> off; + + if ( len < rest ) { + bsr->off = off + len; + return m & ((1 << len) - 1); + } + else { + const uint8_t *b; + uint8_t mask, len_byt; + uint64_t l; + + len -= rest; + left--; + b = ++bsr->bytes; + + len_byt = len >> 3; + + if ( len_byt >= left ) { + len_byt = left; + bsr->off = off = 0; + bsr->left = 0; + bsr->bytes = 0; + } + else { + bsr->off = off = ur_mask_3(len); + bsr->left = left - len_byt; + bsr->bytes += len_byt; + } + + mask = (1 << off) - 1; + + switch ( len_byt ) { + case 8: { + l = (uint64_t)b[0] + ^ (uint64_t)b[1] << 8 + ^ (uint64_t)b[2] << 16 + ^ (uint64_t)b[3] << 24 + ^ (uint64_t)b[4] << 32 + ^ (uint64_t)b[5] << 40 + ^ (uint64_t)b[6] << 48 + ^ (uint64_t)b[7] << 56; + } break; + + case 7: { + l = (uint64_t)b[0] + ^ (uint64_t)b[1] << 8 + ^ (uint64_t)b[2] << 16 + ^ (uint64_t)b[3] << 24 + ^ (uint64_t)b[4] << 32 + ^ (uint64_t)b[5] << 40 + ^ (uint64_t)b[6] << 48; + + if ( mask ) { + l ^= (uint64_t)(b[7] & mask) << 56; + } + } break; + + case 6: { + l = (uint64_t)b[0] + ^ (uint64_t)b[1] << 8 + ^ (uint64_t)b[2] << 16 + ^ (uint64_t)b[3] << 24 + ^ (uint64_t)b[4] << 32 + ^ (uint64_t)b[5] << 40; + + if ( mask ) { + l ^= (uint64_t)(b[6] & mask) << 48; + } + } break; + + case 5: { + l = (uint64_t)b[0] + ^ (uint64_t)b[1] << 8 + ^ (uint64_t)b[2] << 16 + ^ (uint64_t)b[3] << 24 + ^ (uint64_t)b[4] << 32; + + if ( mask ) { + l ^= (uint64_t)(b[5] & mask) << 40; + } + } break; + + case 4: { + l = (uint64_t)b[0] + ^ (uint64_t)b[1] << 8 + ^ (uint64_t)b[2] << 16 + ^ (uint64_t)b[3] << 24; + + if ( mask ) { + l ^= (uint64_t)(b[4] & mask) << 32; + } + } break; + + case 3: { + l = (uint64_t)b[0] + ^ (uint64_t)b[1] << 8 + ^ (uint64_t)b[2] << 16; + + if ( mask ) { + l ^= (uint64_t)(b[3] & mask) << 24; + } + } break; + + case 2: { + l = (uint64_t)b[0] + ^ (uint64_t)b[1] << 8; + + if ( mask ) { + l ^= (uint64_t)(b[2] & mask) << 16; + } + } break; + + case 1: { + l = (uint64_t)b[0]; + + if ( mask ) { + l ^= (uint64_t)(b[1] & mask) << 8; + } + } break; + + case 0: { + l = ( mask ) ? (uint64_t)(b[0] & mask) : 0; + } break; + } + + return m ^ (l << rest); + } + } +} + +void +ur_bsr_bytes_any(ur_bsr_t *bsr, uint64_t len, uint8_t *out) +{ + uint64_t left = bsr->left; + + bsr->bits += len; + + if ( !left ) { + return; + } + else { + const uint8_t *b = bsr->bytes; + uint8_t off = bsr->off; + uint64_t len_byt = len >> 3; + uint8_t len_bit = ur_mask_3(len); + uint64_t need = len_byt + !!len_bit; + + if ( !off ) { + if ( need > left ) { + memcpy(out, b, left); + left = 0; + bsr->bytes = 0; + } + else { + memcpy(out, b, len_byt); + off = len_bit; + + if ( off ) { + out[len_byt] = b[len_byt] & ((1 << off) - 1); + } + + left -= len_byt; + bsr->bytes = ( left ) ? b + len_byt : 0; + } + } + // the most-significant bits from a byte in the stream + // become the least-significant bits of an output byte, and vice-versa + // + else { + uint8_t rest = 8 - off; + uint64_t last = left - 1; + uint64_t max = ur_min(last, len_byt); + uint8_t m, l; + + // loop over all the bytes we need (or all that remain) + // + { + uint64_t i; + + for ( i = 0; i < max; i++ ) { + out[i] = (b[i] >> off) ^ (b[i + 1] << rest); + } + + b += max; + m = *b >> off; + } + + // we're reading into or beyond the last byte [bsr] + // + // [m] holds all the remaining bits in [bsr], + // but we might not need all of it + // + if ( need >= left ) { + uint8_t bits = len - (last << 3); + + if ( bits < rest ) { + out[max] = m & ((1 << len_bit) - 1); + bsr->bytes = b; + left = 1; + off += len_bit; + } + else { + out[max] = m; + bsr->bytes = 0; + left = 0; + off = 0; + } + } + // we need less than a byte, but it might span multiple bytes + // + else { + uint8_t bits = off + len_bit; + uint8_t step = !!(bits >> 3); + + bsr->bytes = b + step; + left -= len_byt + step; + off = ur_mask_3(bits); + + if ( len_bit ) { + if ( len_bit <= rest ) { + out[max] = m & ((1 << len_bit) - 1); + } + else { + l = *++b & ((1 << off) - 1); + out[max] = (m ^ (l << rest)) & ((1 << len_bit) - 1); + } + } + } + } + + bsr->off = off; + bsr->left = left; + } +} + +void +ur_bsr_skip_any(ur_bsr_t *bsr, uint64_t len) +{ + uint64_t left = bsr->left; + + bsr->bits += len; + + if ( !left ) { + return; + } + else { + const uint8_t *b = bsr->bytes; + uint8_t off = bsr->off; + uint64_t len_byt = len >> 3; + uint8_t len_bit = ur_mask_3(len); + uint64_t need = len_byt + !!len_bit; + uint8_t rest = 8 - off; + uint64_t last = left - 1; + + b += ur_min(last, len_byt) + 1; + + if ( need >= left ) { + uint8_t bits = len - (last << 3); + + if ( bits < rest ) { + bsr->bytes = b - 1; + left = 1; + off += len_bit; + } + else { + bsr->bytes = 0; + left = 0; + off = 0; + } + } + else { + uint8_t bits = off + len_bit; + uint8_t step = !!(bits >> 3); + + bsr->bytes = b - (1 - step); + left -= len_byt + step; + off = ur_mask_3(bits); + } + + bsr->off = off; + bsr->left = left; + } +} + +static inline ur_cue_res_e +_bsr_set_gone(ur_bsr_t *bsr, uint8_t bits) +{ + bsr->bits += bits; + bsr->bytes = 0; + bsr->left = 0; + bsr->off = 0; + return ur_cue_gone; +} + +ur_cue_res_e +ur_bsr_tag(ur_bsr_t *bsr, ur_cue_tag_e *out) +{ + uint64_t left = bsr->left; + + if ( !left ) { + return ur_cue_gone; + } + else { + const uint8_t *b = bsr->bytes; + uint8_t off = bsr->off; + uint8_t bit = (b[0] >> off) & 1; + uint8_t len = 1; + + if ( 0 == bit ) { + *out = ur_jam_atom; + } + else { + if ( 7 == off ) { + if ( 1 == left ) { + return _bsr_set_gone(bsr, 1); + } + + bit = b[1] & 1; + } + else { + bit = (b[0] >> (off + 1)) & 1; + } + + len++; + *out = ( 0 == bit ) ? ur_jam_cell : ur_jam_back; + } + + { + uint8_t bits = off + len; + uint8_t bytes = bits >> 3; + + left -= bytes; + + if ( !left ) { + bsr->bytes = 0; + bsr->left = 0; + bsr->off = 0; + } + else { + bsr->bytes += bytes; + bsr->left = left; + bsr->off = ur_mask_3(bits); + } + + bsr->bits += len; + + return ur_cue_good; + } + } +} + +static inline ur_cue_res_e +_bsr_log_meme(ur_bsr_t *bsr) +{ + bsr->bits += 256; + bsr->bytes += 32; + bsr->left -= 32; + return ur_cue_meme; +} + +ur_cue_res_e +ur_bsr_log(ur_bsr_t *bsr, uint8_t *out) +{ + uint64_t left = bsr->left; + + if ( !left ) { + return ur_cue_gone; + } + else { + uint8_t off = bsr->off; + const uint8_t *b = bsr->bytes; + uint8_t byt = b[0] >> off; + uint8_t skip = 0; + + while ( !byt ) { + if ( 32 == skip ) { + return _bsr_log_meme(bsr); + } + + byt = b[++skip]; + + if ( skip == left ) { + return _bsr_set_gone(bsr, (skip << 3) - off); + } + } + + { + uint32_t zeros = ur_tz8(byt) + (skip ? ((skip << 3) - off) : 0); + + if ( 255 < zeros ) { + return _bsr_log_meme(bsr); + } + else { + uint32_t bits = off + 1 + zeros; + uint8_t bytes = bits >> 3; + + left -= bytes; + + bsr->bytes = left ? (b + bytes) : 0; + bsr->bits += 1 + zeros; + bsr->left = left; + bsr->off = ur_mask_3(bits); + + *out = zeros; + return ur_cue_good; + } + } + } +} + +ur_cue_res_e +ur_bsr_rub_len(ur_bsr_t *bsr, uint64_t *out) +{ + ur_cue_res_e res; + uint8_t len; + + if ( ur_cue_good != (res = ur_bsr_log(bsr, &len)) ) { + return res; + } + else if ( 64 <= len ) { + return ur_cue_meme; + } + + switch ( len ) { + case 0: { + *out = 0; + } break; + + case 1: { + *out = 1; + } break; + + default: { + len--; + *out = ur_bsr64_any(bsr, len) ^ (1ULL << len); + } break; + } + + return ur_cue_good; +} + +/* +** bitstream-writer operations follow a pattern of an unsafe (inline) +** implementation, unsafe wrt to buffer size and reallocation, +** wrapped in a public function with buffer size checks. +** +** higher-level operations made up of multiple discrete writes check +** the buffer size once for all involved writes. +** +** this pattern should be easily adaptable to an alternate bitstream-writer +** implementation that flushes accumulated output periodically instead +** of reallocating the output buffer. +*/ + +void +ur_bsw_init(ur_bsw_t *bsw, uint64_t prev, uint64_t size) +{ + bsw->prev = prev; + bsw->size = size; + bsw->bytes = calloc(size, 1); + + if ( !bsw->bytes ) { + fprintf(stderr, + "ur: bitstream-init allocation failed, out of memory\r\n"); + abort(); + } +} + +void +ur_bsw_grow(ur_bsw_t *bsw, uint64_t step) +{ + uint64_t size = bsw->size; + uint64_t next = size + step; + + bsw->bytes = realloc(bsw->bytes, next); + + if ( !bsw->bytes ) { + fprintf(stderr, + "ur: bitstream-write allocation failed, out of memory\r\n"); + abort(); + } + + memset(bsw->bytes + size, 0, step); + + bsw->prev = size; + bsw->size = next; +} + +ur_bool_t +ur_bsw_sane(ur_bsw_t *bsw) +{ + return ( (8 > bsw->off) + && ((bsw->fill << 3) + bsw->off == bsw->bits) ); +} + +uint64_t +ur_bsw_done(ur_bsw_t *bsw, uint64_t *len, uint8_t **byt) +{ + uint64_t bits = bsw->bits; + + *len = bsw->fill + !!bsw->off; + *byt = bsw->bytes; + + memset(bsw, 0, sizeof(*bsw)); + + return bits; +} + +static inline void +_bsw_bit_unsafe(ur_bsw_t *bsw, uint8_t bit) +{ + uint64_t fill = bsw->fill; + uint8_t off = bsw->off; + + bsw->bytes[fill] ^= (bit & 1) << off; + + if ( 7 == off ) { + bsw->fill = 1 + fill; + bsw->off = 0; + } + else { + bsw->off = 1 + off; + } + + bsw->bits++; +} + +void +ur_bsw_bit(ur_bsw_t *bsw, uint8_t bit) +{ + if ( (7 == bsw->off) + && ((1 + bsw->fill) == bsw->size) ) + { + ur_bsw_grow(bsw, bsw->prev); + } + + _bsw_bit_unsafe(bsw, bit); +} + +static inline void +_bsw8_unsafe(ur_bsw_t *bsw, uint8_t len, uint8_t byt) +{ + uint64_t fill = bsw->fill; + uint8_t off = bsw->off; + uint8_t rest = 8 - off; + uint8_t l, m; + + // the least-significant bits of the input become the + // most-significant bits of a byte in the output stream + // + if ( len < rest ) { + l = byt & ((1 << len) - 1); + + bsw->bytes[fill] ^= l << off; + bsw->off = off + len; + } + // and vice-versa + // + else { + l = byt & ((1 << rest) - 1); + m = byt >> rest; + + bsw->bytes[fill++] ^= l << off; + off = len - rest; + bsw->bytes[fill] = m & ((1 << off) - 1); + + bsw->fill = fill; + bsw->off = off; + } + + bsw->bits += len; +} + +void +ur_bsw8(ur_bsw_t *bsw, uint8_t len, uint8_t byt) +{ + len = ur_min(8, len); + + if ( bsw->fill + !!((bsw->off + len) >> 3) >= bsw->size ) { + ur_bsw_grow(bsw, bsw->prev); + } + + _bsw8_unsafe(bsw, len, byt); +} + +static inline void +_bsw32_unsafe(ur_bsw_t *bsw, uint8_t len, uint32_t val) +{ + uint64_t fill = bsw->fill; + uint8_t off = bsw->off; + uint8_t *bytes = bsw->bytes; + + bsw->bits += len; + + if ( off ) { + uint8_t rest = 8 - off; + + if ( len < rest ) { + bytes[fill] ^= (val & ((1 << len) - 1)) << off; + bsw->off = off + len; + return; + } + + bytes[fill++] ^= (val & ((1 << rest) - 1)) << off; + val >>= rest; + len -= rest; + } + + switch ( len >> 3 ) { + case 4: { + bytes[fill++] = ur_mask_8(val); + bytes[fill++] = ur_mask_8(val >> 8); + bytes[fill++] = ur_mask_8(val >> 16); + bytes[fill++] = ur_mask_8(val >> 24); + + // no offset is possible here + // + bsw->fill = fill; + bsw->off = 0; + return; + } + + case 3: { + bytes[fill++] = ur_mask_8(val); + bytes[fill++] = ur_mask_8(val >> 8); + bytes[fill++] = ur_mask_8(val >> 16); + val >>= 24; + } break; + + case 2: { + bytes[fill++] = ur_mask_8(val); + bytes[fill++] = ur_mask_8(val >> 8); + val >>= 16; + } break; + + case 1: { + bytes[fill++] = ur_mask_8(val); + val >>= 8; + } break; + } + + off = ur_mask_3(len); + + if ( off ) { + bytes[fill] = (uint8_t)(val & ((1 << off) - 1)); + } + + bsw->fill = fill; + bsw->off = off; +} + +void +ur_bsw32(ur_bsw_t *bsw, uint8_t len, uint32_t val) +{ + uint8_t need; + + len = ur_min(32, len); + need = ur_bloq_up3( bsw->off + len ); + + if ( bsw->fill + need >= bsw->size ) { + ur_bsw_grow(bsw, ur_max(need, bsw->prev)); + } + + _bsw32_unsafe(bsw, len, val); +} + +static inline void +_bsw64_unsafe(ur_bsw_t *bsw, uint8_t len, uint64_t val) +{ + uint64_t fill = bsw->fill; + uint8_t off = bsw->off; + uint8_t *bytes = bsw->bytes; + + bsw->bits += len; + + if ( off ) { + uint8_t rest = 8 - off; + + if ( len < rest ) { + bytes[fill] ^= (val & ((1 << len) - 1)) << off; + bsw->off = off + len; + return; + } + + bytes[fill++] ^= (val & ((1 << rest) - 1)) << off; + val >>= rest; + len -= rest; + } + + switch ( len >> 3 ) { + case 8: { + bytes[fill++] = ur_mask_8(val); + bytes[fill++] = ur_mask_8(val >> 8); + bytes[fill++] = ur_mask_8(val >> 16); + bytes[fill++] = ur_mask_8(val >> 24); + bytes[fill++] = ur_mask_8(val >> 32); + bytes[fill++] = ur_mask_8(val >> 40); + bytes[fill++] = ur_mask_8(val >> 48); + bytes[fill++] = ur_mask_8(val >> 56); + + // no offset is possible here + // + bsw->fill = fill; + bsw->off = 0; + return; + } + + case 7: { + bytes[fill++] = ur_mask_8(val); + bytes[fill++] = ur_mask_8(val >> 8); + bytes[fill++] = ur_mask_8(val >> 16); + bytes[fill++] = ur_mask_8(val >> 24); + bytes[fill++] = ur_mask_8(val >> 32); + bytes[fill++] = ur_mask_8(val >> 40); + bytes[fill++] = ur_mask_8(val >> 48); + val >>= 56; + } break; + + case 6: { + bytes[fill++] = ur_mask_8(val); + bytes[fill++] = ur_mask_8(val >> 8); + bytes[fill++] = ur_mask_8(val >> 16); + bytes[fill++] = ur_mask_8(val >> 24); + bytes[fill++] = ur_mask_8(val >> 32); + bytes[fill++] = ur_mask_8(val >> 40); + val >>= 48; + } break; + + case 5: { + bytes[fill++] = ur_mask_8(val); + bytes[fill++] = ur_mask_8(val >> 8); + bytes[fill++] = ur_mask_8(val >> 16); + bytes[fill++] = ur_mask_8(val >> 24); + bytes[fill++] = ur_mask_8(val >> 32); + val >>= 40; + } break; + + case 4: { + bytes[fill++] = ur_mask_8(val); + bytes[fill++] = ur_mask_8(val >> 8); + bytes[fill++] = ur_mask_8(val >> 16); + bytes[fill++] = ur_mask_8(val >> 24); + val >>= 32; + } break; + + case 3: { + bytes[fill++] = ur_mask_8(val); + bytes[fill++] = ur_mask_8(val >> 8); + bytes[fill++] = ur_mask_8(val >> 16); + val >>= 24; + } break; + + case 2: { + bytes[fill++] = ur_mask_8(val); + bytes[fill++] = ur_mask_8(val >> 8); + val >>= 16; + } break; + + case 1: { + bytes[fill++] = ur_mask_8(val); + val >>= 8; + } break; + } + + off = ur_mask_3(len); + + if ( off ) { + bytes[fill] = (uint8_t)(val & ((1 << off) - 1)); + } + + bsw->fill = fill; + bsw->off = off; +} + +void +ur_bsw64(ur_bsw_t *bsw, uint8_t len, uint64_t val) +{ + uint8_t need; + + len = ur_min(64, len); + need = ur_bloq_up3( bsw->off + len ); + + if ( bsw->fill + need >= bsw->size ) { + ur_bsw_grow(bsw, ur_max(need, bsw->prev)); + } + + _bsw64_unsafe(bsw, len, val); +} + +static inline void +_bsw_bytes_unsafe(ur_bsw_t *bsw, const uint64_t len, const uint8_t* src) +{ + uint64_t fill = bsw->fill; + uint8_t off = bsw->off; + uint8_t *dst = bsw->bytes + fill; + + if ( !off ) { + const uint64_t len_byt = len >> 3; + const uint8_t len_bit = ur_mask_3(len); + + memcpy(dst, src, len_byt); + bsw->fill = fill + len_byt; + + if ( len_bit ) { + dst[len_byt] = src[len_byt] & ((1 << len_bit) - 1); + bsw->off = len_bit; + } + } + else { + const uint8_t rest = 8 - off; + + if ( rest >= len ) { + uint16_t ful = off + len; + + *dst ^= (*src & ((1 << len) - 1)) << off; + + if ( ful >> 3 ) { + bsw->fill = fill + 1; + } + + bsw->off = ur_mask_3(ful); + } + else { + const uint64_t nel = len - rest; + const uint64_t len_byt = nel >> 3; + const uint8_t len_bit = ur_mask_3(nel); + + *dst++ ^= *src << off; + + for ( uint64_t i = 0; i < len_byt; i++ ) { + dst[i] = (src[i] >> rest) ^ (src[i + 1] << off); + } + + { + uint8_t tal = (src[len_byt] >> rest) + ^ (( off >= len_bit ) ? 0 : (src[len_byt + 1] << off)); + dst[len_byt] = tal & ((1 << len_bit) - 1); + } + + bsw->fill = fill + len_byt + 1; + bsw->off = len_bit; + } + } + + bsw->bits += len; +} + +void +ur_bsw_bytes(ur_bsw_t *bsw, uint64_t len, uint8_t *byt) +{ + uint64_t need = ur_bloq_up3(len + bsw->off); + + if ( bsw->fill + need >= bsw->size ) { + ur_bsw_grow(bsw, ur_max(need, bsw->prev)); + } + + _bsw_bytes_unsafe(bsw, len, byt); +} + +static inline void +_bsw_bex_unsafe(ur_bsw_t *bsw, uint8_t n) +{ + uint64_t fill = bsw->fill; + uint8_t off = bsw->off; + uint32_t bits = n + off; + + fill += bits >> 3; + off = ur_mask_3(bits); + + bsw->bytes[fill] ^= 1 << off; + + if ( 7 == off ) { + bsw->off = 0; + bsw->fill = 1 + fill; + } + else { + bsw->off = 1 + off; + bsw->fill = fill; + } + + bsw->bits += 1 + n; +} + +void +ur_bsw_bex(ur_bsw_t *bsw, uint8_t n) +{ + uint64_t need = ur_bloq_up3(1 + n + bsw->off); + + if ( bsw->fill + need >= bsw->size ) { + ur_bsw_grow(bsw, ur_max(need, bsw->prev)); + } + + _bsw_bex_unsafe(bsw, n); +} + +static inline void +_bsw_mat64_unsafe(ur_bsw_t *bsw, uint8_t len, uint64_t val) +{ + if ( 0 == len ) { + _bsw_bit_unsafe(bsw, 1); + } + else { + { + uint8_t nel = ur_met0_64(len); + _bsw_bex_unsafe(bsw, nel); + _bsw64_unsafe(bsw, nel - 1, len); + } + + _bsw64_unsafe(bsw, len, val); + } +} + +/* +* the length of a "mat" run-length encoded atom of [len] bits +*/ +#define MAT_LEN(len) ( ( 0 == len ) ? 1 : len + (2 * ur_met0_64((uint64_t)len)) ) + +void +ur_bsw_mat64(ur_bsw_t *bsw, uint8_t len, uint64_t val) +{ + uint8_t need; + + len = ur_min(64, len); + need = ur_bloq_up3( bsw->off + MAT_LEN(len) ); + + if ( bsw->fill + need >= bsw->size ) { + ur_bsw_grow(bsw, ur_max(need, bsw->prev)); + } + + _bsw_mat64_unsafe(bsw, len, val); +} + +static inline void +_bsw_mat_bytes_unsafe(ur_bsw_t *bsw, uint64_t len, uint8_t *byt) +{ + if ( 0 == len ) { + _bsw_bit_unsafe(bsw, 1); + } + else { + // write run-length + // + { + uint8_t nel = ur_met0_64(len); + _bsw_bex_unsafe(bsw, nel); + _bsw64_unsafe(bsw, nel - 1, len); + } + + _bsw_bytes_unsafe(bsw, len, byt); + } +} + +void +ur_bsw_mat_bytes(ur_bsw_t *bsw, uint64_t len, uint8_t *byt) +{ + uint64_t need = ur_bloq_up3( bsw->off + MAT_LEN(len) ); + + if ( bsw->fill + need >= bsw->size ) { + ur_bsw_grow(bsw, ur_max(need, bsw->prev)); + } + + _bsw_mat_bytes_unsafe(bsw, len, byt); +} + +static inline void +_bsw_back64(ur_bsw_t *bsw, uint8_t len, uint64_t val) +{ + _bsw8_unsafe(bsw, 2, 3); + _bsw_mat64_unsafe(bsw, len, val); +} + +void +ur_bsw_back64(ur_bsw_t *bsw, uint8_t len, uint64_t val) +{ + uint8_t need; + + len = ur_min(64, len); + need = ur_bloq_up3( 2 + bsw->off + MAT_LEN(len) ); + + if ( bsw->fill + need >= bsw->size ) { + ur_bsw_grow(bsw, ur_max(need, bsw->prev)); + } + + _bsw_back64(bsw, len, val); +} + +static inline void +_bsw_atom64(ur_bsw_t *bsw, uint8_t len, uint64_t val) +{ + _bsw_bit_unsafe(bsw, 0); + _bsw_mat64_unsafe(bsw, len, val); +} + +void +ur_bsw_atom64(ur_bsw_t *bsw, uint8_t len, uint64_t val) +{ + uint8_t need; + + len = ur_min(64, len); + need = ur_bloq_up3( 1 + bsw->off + MAT_LEN(len) ); + + if ( bsw->fill + need >= bsw->size ) { + ur_bsw_grow(bsw, ur_max(need, bsw->prev)); + } + + _bsw_atom64(bsw, len, val); +} + +static inline void +_bsw_atom_bytes_unsafe(ur_bsw_t *bsw, uint64_t len, uint8_t *byt) +{ + _bsw_bit_unsafe(bsw, 0); + _bsw_mat_bytes_unsafe(bsw, len, byt); +} + +void +ur_bsw_atom_bytes(ur_bsw_t *bsw, uint64_t len, uint8_t *byt) +{ + uint64_t need = ur_bloq_up3( 1 + bsw->off + MAT_LEN(len) ); + + if ( bsw->fill + need >= bsw->size ) { + ur_bsw_grow(bsw, ur_max(need, bsw->prev)); + } + + _bsw_atom_bytes_unsafe(bsw, len, byt); +} + +void +ur_bsw_cell(ur_bsw_t *bsw) +{ + uint8_t need = ur_bloq_up3( 2 + bsw->off ); + + if ( bsw->fill + need >= bsw->size ) { + ur_bsw_grow(bsw, ur_max(need, bsw->prev)); + } + + _bsw8_unsafe(bsw, 2, 1); +} diff --git a/vere/pkg/ur/bitstream.h b/vere/pkg/ur/bitstream.h new file mode 100644 index 0000000..a4b7859 --- /dev/null +++ b/vere/pkg/ur/bitstream.h @@ -0,0 +1,239 @@ +/// @file + +#ifndef UR_BITSTREAM_H +#define UR_BITSTREAM_H + +#include + +#include "defs.h" + +/* +** stateful bitstream reader, backed by a byte-buffer, +** maintaing a 64-bit bit-cursor, and supporting a variety +** of read sizes and patterns. +** +** NB: ur_bsr*_any() functions behave as if the stream were infinite, +** subject to the overall limit of the bit-cursor. +** +*/ +typedef struct ur_bsr_s { + uint64_t left; + uint64_t bits; + uint8_t off; + const uint8_t *bytes; +} ur_bsr_t; + +/* +** generalized bitstream-reader/cue response enum +*/ +typedef enum { + ur_cue_good = 0, // successful read + ur_cue_back = 1, // missing backreference + ur_cue_gone = 2, // read off the end of the stream + ur_cue_meme = 3 // exceeded memory representation +} ur_cue_res_e; + +/* +** jam/cue type tag enumeration +*/ +typedef enum { + ur_jam_atom = 0, + ur_jam_cell = 1, + ur_jam_back = 2 +} ur_cue_tag_e; + +/* +** stateful bitstream writer, backed by a byte-buffer automatically +** reallocated with fibonacc growth, maintaing a 64-bit bit-cursor, +** and supporting a variety of write sizes and patterns. +** +*/ +typedef struct ur_bsw_s { + uint64_t prev; + uint64_t size; + uint64_t fill; + uint64_t bits; + uint8_t off; + uint8_t *bytes; +} ur_bsw_t; + +/* +** initialize bitstream-reader and check for 64-bit bit-cursor overflow. +*/ +ur_cue_res_e +ur_bsr_init(ur_bsr_t *bsr, uint64_t len, const uint8_t *bytes); + +/* +** validate bitstream-reader invariants. +*/ +ur_bool_t +ur_bsr_sane(ur_bsr_t *bsr); + +/* +** read a bit, failing at EOS +*/ +ur_cue_res_e +ur_bsr_bit(ur_bsr_t *bsr, uint8_t *out); + +/* +** read a bit +*/ +uint8_t +ur_bsr_bit_any(ur_bsr_t *bsr); + +/* +** read N (up to 8) bits into a uint8. +*/ +uint8_t +ur_bsr8_any(ur_bsr_t *bsr, uint8_t len); + +/* +** read N (up to 32) bits into a uint32. +*/ +uint32_t +ur_bsr32_any(ur_bsr_t *bsr, uint8_t len); + +/* +** read N (up to 64) bits into a uint64. +*/ +uint64_t +ur_bsr64_any(ur_bsr_t *bsr, uint8_t len); + +/* +** read N bits into a zero-initialized byte array. +*/ +void +ur_bsr_bytes_any(ur_bsr_t *bsr, uint64_t len, uint8_t *out); + +/* +** advance the bitstream cursor as if we had read N bits. +*/ +void +ur_bsr_skip_any(ur_bsr_t *bsr, uint64_t len); + +/* +** read a jam/cue type tag. +*/ +ur_cue_res_e +ur_bsr_tag(ur_bsr_t *bsr, ur_cue_tag_e *out); + +/* +** read a binary exponent, producing the binary log. +** +** read N (up to 255) zero bits followed by a 1, produce N. +*/ +ur_cue_res_e +ur_bsr_log(ur_bsr_t *bsr, uint8_t *out); + +/* +** read an atomic run-length (a la +rub). +** +** read a binary log N, then read N (up to 64) bits, +** produce (N-bits ^ (1 << N)) +*/ +ur_cue_res_e +ur_bsr_rub_len(ur_bsr_t *bsr, uint64_t *out); + +/* +** initialize bitstream-writer with prev/size for fibonacci growth. +*/ +void +ur_bsw_init(ur_bsw_t *bsw, uint64_t prev, uint64_t size); + +/* +** reallocate bitstream write buffer with max(fibonacci, step) growth. +*/ +void +ur_bsw_grow(ur_bsw_t *bsw, uint64_t step); + +/* +** validate bitstream-writer invariants. +*/ +ur_bool_t +ur_bsw_sane(ur_bsw_t *bsw); + +/* +** return bit-length, produce byte-buffer. +*/ +uint64_t +ur_bsw_done(ur_bsw_t *bsw, uint64_t *len, uint8_t **byt); + +/* +** write a bit +*/ +void +ur_bsw_bit(ur_bsw_t *bsw, uint8_t bit); + +/* +** write N (up to 8) bits of a uint8. +*/ +void +ur_bsw8(ur_bsw_t *bsw, uint8_t len, uint8_t byt); + +/* +** write N (up to 32) bits of a uint32. +*/ +void +ur_bsw32(ur_bsw_t *bsw, uint8_t len, uint32_t val); + +/* +** write N (up to 64) bits of a uint64. +*/ +void +ur_bsw64(ur_bsw_t *bsw, uint8_t len, uint64_t val); + +/* +** write N bits of a byte array. +** +** NB: [byt] must contain at least N bits. +*/ +void +ur_bsw_bytes(ur_bsw_t *bsw, uint64_t len, uint8_t *byt); + +/* +** write a binary exponent (N zero bits, followed by a 1). +*/ +void +ur_bsw_bex(ur_bsw_t *bsw, uint8_t n); + +/* +** write N (up to 64) run-length prefixed bits (a la +mat). +*/ +void +ur_bsw_mat64(ur_bsw_t *bsw, uint8_t len, uint64_t val); + +/* +** write N run-length prefixed bits (a la +mat). +** +** NB: [byt] must contain at least N bits. +*/ +void +ur_bsw_mat_bytes(ur_bsw_t *bsw, uint64_t len, uint8_t *byt); + +/* +** write a backref tag (1, 1) and N (up to 64) run-length prefixed bits. +*/ +void +ur_bsw_back64(ur_bsw_t *bsw, uint8_t len, uint64_t val); + +/* +** write an atom tag (0) and N (up to 64) run-length prefixed bits. +*/ +void +ur_bsw_atom64(ur_bsw_t *bsw, uint8_t len, uint64_t val); + +/* +** write an atom tag (0) and N run-length prefixed bits. +** +** NB: [byt] must contain at least N bits. +*/ +void +ur_bsw_atom_bytes(ur_bsw_t *bsw, uint64_t len, uint8_t *byt); + +/* +** write a cell tag (1, 0) +*/ +void +ur_bsw_cell(ur_bsw_t *bsw); + +#endif diff --git a/vere/pkg/ur/build.zig b/vere/pkg/ur/build.zig new file mode 100644 index 0000000..abd1ec0 --- /dev/null +++ b/vere/pkg/ur/build.zig @@ -0,0 +1,42 @@ +const std = @import("std"); + +pub fn build(b: *std.Build) !void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + + const copts: []const []const u8 = + b.option([]const []const u8, "copt", "") orelse &.{}; + + const pkg_ur = b.addStaticLibrary(.{ + .name = "ur", + .target = target, + .optimize = optimize, + }); + + const murmur3 = b.dependency("murmur3", .{ + .target = target, + .optimize = optimize, + }); + + pkg_ur.linkLibC(); + pkg_ur.linkLibrary(murmur3.artifact("murmur3")); + + pkg_ur.addIncludePath(b.path("")); + pkg_ur.addCSourceFiles(.{ + .root = b.path(""), + .files = &.{ + "bitstream.c", + "hashcons.c", + "serial.c", + }, + .flags = copts, + }); + + pkg_ur.installHeader(b.path("bitstream.h"), "ur/bitstream.h"); + pkg_ur.installHeader(b.path("defs.h"), "ur/defs.h"); + pkg_ur.installHeader(b.path("hashcons.h"), "ur/hashcons.h"); + pkg_ur.installHeader(b.path("serial.h"), "ur/serial.h"); + pkg_ur.installHeader(b.path("ur.h"), "ur/ur.h"); + + b.installArtifact(pkg_ur); +} diff --git a/vere/pkg/ur/build.zig.zon b/vere/pkg/ur/build.zig.zon new file mode 100644 index 0000000..11b3390 --- /dev/null +++ b/vere/pkg/ur/build.zig.zon @@ -0,0 +1,12 @@ +.{ + .name = "ur", + .version = "0.0.1", + .dependencies = .{ + .murmur3 = .{ + .path = "../../ext/murmur3", + }, + }, + .paths = .{ + "", + }, +} diff --git a/vere/pkg/ur/defs.h b/vere/pkg/ur/defs.h new file mode 100644 index 0000000..68d6f74 --- /dev/null +++ b/vere/pkg/ur/defs.h @@ -0,0 +1,86 @@ +/// @file + +#ifndef UR_DEFS_H +#define UR_DEFS_H + +#include +#include +#include + +typedef uint8_t ur_bool_t; + +#define ur_min(a, b) ( ((a) < (b)) ? (a) : (b) ) +#define ur_max(a, b) ( ((a) > (b)) ? (a) : (b) ) + +/* +** fibonacci constants, for convenient initialization of +** objects intended to be reallocated with fibonacci growth +*/ +#define ur_fib10 55 +#define ur_fib11 89 +#define ur_fib12 144 +#define ur_fib27 196418 +#define ur_fib28 317811 +#define ur_fib33 3524578 +#define ur_fib34 5702887 + +/* +** bit-masking helpers +*/ +#define ur_mask_3(a) (a & 0x7) +#define ur_mask_8(a) (a & 0xff) +#define ur_mask_31(a) (a & 0x7fffffff) +#define ur_mask_62(a) (a & 0x3fffffffffffffffULL) + +/* +** bloq (binary exponent) conversions +*/ +#define ur_bloq_up1(a) ( (a + 0x1) >> 1 ) +#define ur_bloq_up2(a) ( (a + 0x3) >> 2 ) +#define ur_bloq_up3(a) ( (a + 0x7) >> 3 ) + +/* +** atom measurement +*/ +#if (32 == (CHAR_BIT * __SIZEOF_INT__)) +# define ur_lz32 __builtin_clz +# define ur_tz32 __builtin_ctz +#elif (32 == (CHAR_BIT * __SIZEOF_LONG__)) +# define ur_lz32 __builtin_clzl +# define ur_tz32 __builtin_ctzl +#else +# error "port me" +#endif + +#if (64 == (CHAR_BIT * __SIZEOF_LONG__)) +# define ur_lz64 __builtin_clzl +# define ur_tz64 __builtin_ctzl +#elif (64 == (CHAR_BIT * __SIZEOF_LONG_LONG__)) +# define ur_lz64 __builtin_clzll +# define ur_tz64 __builtin_ctzll +#else +# error "port me" +#endif + +#define ur_lz8(a) ( ur_lz32(a) - 24 ) +#define ur_tz8 ur_tz32 + +#define ur_met0_8(a) ( (a) ? 8 - ur_lz8(a) : 0 ) +#define ur_met0_32(a) ( (a) ? 32 - ur_lz32(a) : 0 ) +#define ur_met0_64(a) ( (a) ? 64 - ur_lz64(a) : 0 ) + +/* +** unsafe wrt trailing null bytes, which are invalid +*/ +inline uint64_t +ur_met0_bytes_unsafe(uint64_t len, uint8_t *byt) +{ + uint64_t last = len - 1; + return (last << 3) + ur_met0_8(byt[last]); +} + +#define ur_met3_8(a) ur_bloq_up3(ur_met0_8(a)) +#define ur_met3_32(a) ur_bloq_up3(ur_met0_32(a)) +#define ur_met3_64(a) ur_bloq_up3(ur_met0_64(a)) + +#endif /* ifndef UR_DEFS_H */ diff --git a/vere/pkg/ur/hashcons.c b/vere/pkg/ur/hashcons.c new file mode 100644 index 0000000..ea2338b --- /dev/null +++ b/vere/pkg/ur/hashcons.c @@ -0,0 +1,1026 @@ +/// @file + +#include "hashcons.h" + +#include +#include +#include +#include +#include +#include +#include + +#include "defs.h" +#include "murmur3.h" + +// declarations of inline functions +// +uint64_t +ur_met0_bytes_unsafe(uint64_t len, uint8_t *byt); + +static void* +_oom(const char* cap, void* v) +{ + if ( !v ) { + fprintf(stderr, + "ur: hashcons: %s: allocation failed, out of memory\r\n", cap); + abort(); + } + + return v; +} + +void +ur_dict32_grow(ur_root_t *r, ur_dict32_t *dict, uint64_t prev, uint64_t size) +{ + ur_pail32_t *buckets, *old_buckets = dict->buckets; + uint8_t *fills, *old_fills = dict->fills; + uint64_t old_size = dict->size; + uint64_t i, next = prev + size; + + buckets = _oom("dict32_grow", calloc(next, sizeof(*buckets))); + fills = _oom("dict32_grow", calloc(next, sizeof(*fills))); + + if ( old_buckets ) { + for ( i = 0; i < old_size; i++ ) { + ur_pail32_t *old_bucket = &(old_buckets[i]); + uint8_t j, old_fill = old_fills[i]; + + for ( j = 0; j < old_fill; j++ ) { + uint32_t val = old_bucket->vals[j]; + ur_nref ref = old_bucket->refs[j]; + ur_mug mug = ur_nref_mug(r, ref); + + uint64_t idx = ( mug % next ); + ur_pail32_t *bucket = &(buckets[idx]); + uint8_t new_fill = fills[idx]; + + if ( ur_pail_max == new_fill ) { + free(buckets); + free(fills); + return ur_dict32_grow(r, dict, size, next); + } + + bucket->refs[new_fill] = ref; + bucket->vals[new_fill] = val; + fills[idx] = 1 + new_fill; + } + } + + free(old_buckets); + free(old_fills); + } + + dict->prev = size; + dict->size = next; + dict->fills = fills; + dict->buckets = buckets; +} + +ur_bool_t +ur_dict32_get(ur_root_t *r, ur_dict32_t *dict, ur_nref ref, uint32_t *out) +{ + ur_mug mug = ur_nref_mug(r, ref); + uint64_t idx = ( mug % dict->size ); + + ur_pail32_t *bucket = &(dict->buckets[idx]); + uint8_t i, fill = dict->fills[idx]; + + for ( i = 0; i < fill; i++ ) { + if ( ref == bucket->refs[i] ) { + *out = bucket->vals[i]; + return 1; + } + } + + return 0; +} + +void +ur_dict32_put(ur_root_t *r, ur_dict32_t *dict, ur_nref ref, uint32_t val) +{ + ur_mug mug = ur_nref_mug(r, ref); + + while ( 1 ) { + uint64_t idx = ( mug % dict->size ); + ur_pail32_t *bucket = &(dict->buckets[idx]); + uint8_t i, fill = dict->fills[idx]; + + for ( i = 0; i < fill; i++ ) { + if ( ref == bucket->refs[i] ) { + bucket->vals[i] = val; + return; + } + } + + if ( ur_pail_max == fill ) { + ur_dict32_grow(r, dict, dict->prev, dict->size); + continue; + } + + bucket->refs[fill] = ref; + bucket->vals[fill] = val; + dict->fills[idx] = 1 + fill; + break; + } +} + +void +ur_dict32_wipe(ur_dict32_t *dict) +{ + uint8_t *fills = dict->fills; + uint64_t size = dict->size; + + memset(fills, 0, sizeof(*fills) * size); +} + +void +ur_dict64_grow(ur_root_t *r, ur_dict64_t *dict, uint64_t prev, uint64_t size) +{ + ur_pail64_t *buckets, *old_buckets = dict->buckets; + uint8_t *fills, *old_fills = dict->fills; + uint64_t old_size = dict->size; + uint64_t i, next = prev + size; + + buckets = _oom("dict64_grow", calloc(next, sizeof(*buckets))); + fills = _oom("dict64_grow", calloc(next, sizeof(*fills))); + + if ( old_buckets ) { + for ( i = 0; i < old_size; i++ ) { + ur_pail64_t *old_bucket = &(old_buckets[i]); + uint8_t j, old_fill = old_fills[i]; + + for ( j = 0; j < old_fill; j++ ) { + uint64_t val = old_bucket->vals[j]; + ur_nref ref = old_bucket->refs[j]; + ur_mug mug = ur_nref_mug(r, ref); + + uint64_t idx = ( mug % next ); + ur_pail64_t *bucket = &(buckets[idx]); + uint8_t new_fill = fills[idx]; + + if ( ur_pail_max == new_fill ) { + free(buckets); + free(fills); + return ur_dict64_grow(r, dict, size, next); + } + + bucket->refs[new_fill] = ref; + bucket->vals[new_fill] = val; + fills[idx] = 1 + new_fill; + } + } + + free(old_buckets); + free(old_fills); + } + + dict->prev = size; + dict->size = next; + dict->fills = fills; + dict->buckets = buckets; +} + +ur_bool_t +ur_dict64_get(ur_root_t *r, ur_dict64_t *dict, ur_nref ref, uint64_t *out) +{ + ur_mug mug = ur_nref_mug(r, ref); + uint64_t idx = ( mug % dict->size ); + + ur_pail64_t *bucket = &(dict->buckets[idx]); + uint8_t i, fill = dict->fills[idx]; + + for ( i = 0; i < fill; i++ ) { + if ( ref == bucket->refs[i] ) { + *out = bucket->vals[i]; + return 1; + } + } + + return 0; +} + +void +ur_dict64_put(ur_root_t *r, ur_dict64_t *dict, ur_nref ref, uint64_t val) +{ + ur_mug mug = ur_nref_mug(r, ref); + + while ( 1 ) { + uint64_t idx = ( mug % dict->size ); + ur_pail64_t *bucket = &(dict->buckets[idx]); + uint8_t i, fill = dict->fills[idx]; + + for ( i = 0; i < fill; i++ ) { + if ( ref == bucket->refs[i] ) { + bucket->vals[i] = val; + return; + } + } + + if ( ur_pail_max == fill ) { + ur_dict64_grow(r, dict, dict->prev, dict->size); + continue; + } + + bucket->refs[fill] = ref; + bucket->vals[fill] = val; + dict->fills[idx] = 1 + fill; + break; + } +} + +void +ur_dict64_wipe(ur_dict64_t *dict) +{ + uint8_t *fills = dict->fills; + uint64_t size = dict->size; + + memset(fills, 0, sizeof(*fills) * size); +} + +void +ur_dict_grow(ur_root_t *r, ur_dict_t *dict, uint64_t prev, uint64_t size) +{ + ur_pail_t *buckets, *old_buckets = dict->buckets; + uint8_t *fills, *old_fills = dict->fills; + uint64_t old_size = dict->size; + uint64_t i, next = prev + size; + + buckets = _oom("dict_grow", calloc(next, sizeof(*buckets))); + fills = _oom("dict_grow", calloc(next, sizeof(*fills))); + + if ( old_buckets ) { + for ( i = 0; i < old_size; i++ ) { + ur_pail_t *old_bucket = &(old_buckets[i]); + uint8_t j, old_fill = old_fills[i]; + + for ( j = 0; j < old_fill; j++ ) { + ur_nref ref = old_bucket->refs[j]; + ur_mug mug = ur_nref_mug(r, ref); + + uint64_t idx = ( mug % next ); + ur_pail_t *bucket = &(buckets[idx]); + uint8_t new_fill = fills[idx]; + + if ( ur_pail_max == new_fill ) { + free(buckets); + free(fills); + return ur_dict_grow(r, dict, size, next); + } + + bucket->refs[new_fill] = ref; + fills[idx] = 1 + new_fill; + } + } + + free(old_buckets); + free(old_fills); + } + + dict->prev = size; + dict->size = next; + dict->fills = fills; + dict->buckets = buckets; +} + +ur_bool_t +ur_dict_get(ur_root_t *r, ur_dict_t *dict, ur_nref ref) +{ + ur_mug mug = ur_nref_mug(r, ref); + uint64_t idx = ( mug % dict->size ); + + ur_pail_t *bucket = &(dict->buckets[idx]); + uint8_t i, fill = dict->fills[idx]; + + for ( i = 0; i < fill; i++ ) { + if ( ref == bucket->refs[i] ) { + return 1; + } + } + + return 0; +} + +void +ur_dict_put(ur_root_t *r, ur_dict_t *dict, ur_nref ref) +{ + ur_mug mug = ur_nref_mug(r, ref); + + while ( 1 ) { + uint64_t idx = ( mug % dict->size ); + ur_pail_t *bucket = &(dict->buckets[idx]); + uint8_t i, fill = dict->fills[idx]; + + for ( i = 0; i < fill; i++ ) { + if ( ref == bucket->refs[i] ) { + return; + } + } + + if ( ur_pail_max == fill ) { + ur_dict_grow(r, dict, dict->prev, dict->size); + continue; + } + + bucket->refs[fill] = ref; + dict->fills[idx] = 1 + fill; + break; + } +} + +void +ur_dict_wipe(ur_dict_t *dict) +{ + uint8_t *fills = dict -> fills; + uint64_t size = dict->size; + + memset(fills, 0, sizeof(*fills) * size); +} + +void +ur_dict_free(ur_dict_t *dict) +{ + free(dict->buckets); + free(dict->fills); + dict->buckets = 0; +} + +ur_mug +ur_mug_bytes(const uint8_t *byt, uint64_t len) +{ + uint32_t seed = 0xcafebabe; + uint8_t i = 0; + + while ( i < 8 ) { + ur_mug mug; + uint32_t raw; + MurmurHash3_x86_32(byt, len, seed, &raw); + mug = (raw >> 31) ^ ( ur_mask_31(raw) ); + + if ( 0 == mug ) { + seed++; i++; + } + else { + return mug; + } + } + + return (ur_mug)0x7fff; +} + +ur_mug +ur_mug32(uint32_t x) +{ + uint8_t byt[4] = { + ur_mask_8(x >> 0), + ur_mask_8(x >> 8), + ur_mask_8(x >> 16), + ur_mask_8(x >> 24) + }; + + return ur_mug_bytes(byt, ur_met3_32(x)); +} + +ur_mug +ur_mug64(uint64_t x) +{ + uint8_t byt[8] = { + ur_mask_8(x >> 0), + ur_mask_8(x >> 8), + ur_mask_8(x >> 16), + ur_mask_8(x >> 24), + ur_mask_8(x >> 32), + ur_mask_8(x >> 40), + ur_mask_8(x >> 48), + ur_mask_8(x >> 56) + }; + + return ur_mug_bytes(byt, ur_met3_64(x)); +} + +ur_mug +ur_mug_both(ur_mug hed, ur_mug tal) +{ + uint32_t seed = 0xdeadbeef; + uint8_t len = 4 + ur_bloq_up3(ur_met0_32(tal)); + uint8_t i = 0; + uint8_t byt[8] = { + ur_mask_8(hed >> 0), + ur_mask_8(hed >> 8), + ur_mask_8(hed >> 16), + ur_mask_8(hed >> 24), + ur_mask_8(tal >> 0), + ur_mask_8(tal >> 8), + ur_mask_8(tal >> 16), + ur_mask_8(tal >> 24) + }; + + while ( i < 8 ) { + ur_mug mug; + uint32_t raw; + MurmurHash3_x86_32(byt, len, seed, &raw); + mug = (raw >> 31) ^ ( ur_mask_31(raw) ); + + if ( 0 == mug ) { + seed++; i++; + } + else { + return mug; + } + } + + return (ur_mug)0xfffe; +} + +ur_mug +ur_nref_mug(ur_root_t *r, ur_nref ref) +{ + switch ( ur_nref_tag(ref) ) { + default: assert(0); + + case ur_direct: return ur_mug64(ref); + case ur_iatom: return r->atoms.mugs[ur_nref_idx(ref)]; + case ur_icell: return r->cells.mugs[ur_nref_idx(ref)]; + } +} + +ur_bool_t +ur_deep(ur_nref ref) +{ + return ur_icell == ur_nref_tag(ref); +} + +ur_nref +ur_head(ur_root_t *r, ur_nref ref) +{ + assert( ur_deep(ref) ); + return r->cells.heads[ur_nref_idx(ref)]; +} + +ur_nref +ur_tail(ur_root_t *r, ur_nref ref) +{ + assert( ur_deep(ref) ); + return r->cells.tails[ur_nref_idx(ref)]; +} + +void +ur_atoms_grow(ur_atoms_t *atoms) +{ + uint64_t prev = atoms->prev; + uint64_t size = atoms->size; + uint64_t next = prev + size; + uint8_t **bytes = atoms->bytes; + uint64_t *lens = atoms->lens; + ur_mug *mugs = atoms->mugs; + + atoms->bytes = _oom("atoms_grow", malloc(next * ( sizeof(*atoms->bytes) + + sizeof(*atoms->lens) + + sizeof(*atoms->mugs) ))); + atoms->lens = (void*)((char*)atoms->bytes + (next * sizeof(*atoms->bytes))); + atoms->mugs = (void*)((char*)atoms->lens + (next * sizeof(*atoms->lens))); + + if ( bytes ) { + memcpy(atoms->bytes, bytes, size * (sizeof(*bytes))); + memcpy(atoms->lens, lens, size * (sizeof(*lens))); + memcpy(atoms->mugs, mugs, size * (sizeof(*mugs))); + + free(bytes); + } + + atoms->prev = size; + atoms->size = next; +} + +void +ur_cells_grow(ur_cells_t *cells) +{ + uint64_t prev = cells->prev; + uint64_t size = cells->size; + uint64_t next = prev + size; + ur_nref *heads = cells->heads; + ur_nref *tails = cells->tails; + ur_mug *mugs = cells->mugs; + + cells->heads = _oom("cells_grow", malloc(next * ( sizeof(*cells->heads) + + sizeof(*cells->heads) + + sizeof(*cells->mugs) ))); + cells->tails = (void*)((char*)cells->heads + (next * sizeof(*cells->heads))); + cells->mugs = (void*)((char*)cells->tails + (next * sizeof(*cells->tails))); + + if ( heads ) { + memcpy(cells->heads, heads, size * (sizeof(*heads))); + memcpy(cells->tails, tails, size * (sizeof(*tails))); + memcpy(cells->mugs, mugs, size * (sizeof(*mugs))); + + free(heads); + } + + cells->prev = size; + cells->size = next; +} + +void +ur_bytes(ur_root_t *r, ur_nref ref, uint8_t **byt, uint64_t *len) +{ + assert( !ur_deep(ref) ); + switch ( ur_nref_tag(ref) ) { + default: assert(0); + + case ur_direct: { + *len = ur_met3_64(ref); + // XX little-endian + // + *byt = (uint8_t*)&ref; + } break; + + case ur_iatom: { + uint64_t idx = ur_nref_idx(ref); + *len = r->atoms.lens[idx]; + *byt = r->atoms.bytes[idx]; + } break; + } +} + +uint64_t +ur_met(ur_root_t *r, uint8_t bloq, ur_nref ref) +{ + uint64_t m_bit; + + // XX return bool for cells, length in out parameter + // + assert( !ur_deep(ref) ); + + if ( ur_direct == ur_nref_tag(ref) ) { + m_bit = ur_met0_64(ref); + } + else { + uint64_t idx = ur_nref_idx(ref); + uint64_t len = r->atoms.lens[idx]; + uint8_t *byt = r->atoms.bytes[idx]; + + m_bit = ur_met0_bytes_unsafe(len, byt); + } + + switch ( bloq ) { + case 0: return m_bit; + case 1: return ur_bloq_up1(m_bit); + case 2: return ur_bloq_up2(m_bit); + case 3: return ur_bloq_up3(m_bit); + + default: { + uint64_t m_byt = ur_bloq_up3(m_bit); + uint8_t off = (bloq - 3); + return (m_byt + ((1ULL << off) - 1)) >> off; + } + } +} + +static ur_nref +_coin_unsafe(ur_atoms_t *atoms, ur_mug mug, uint64_t len, uint8_t *byt) +{ + uint64_t fill = atoms->fill; + ur_tag tag = ur_iatom; + ur_nref tom = ( fill | ((uint64_t)tag << 62) ); + + // XX necessary? + // + assert( 62 >= ur_met0_64(fill) ); + + atoms->bytes[fill] = byt; + atoms->lens[fill] = len; + atoms->mugs[fill] = mug; + atoms->fill = 1 + fill; + + return tom; +} + +static ur_nref +_cons_unsafe(ur_cells_t *cells, ur_mug mug, ur_nref hed, ur_nref tal) +{ + uint64_t fill = cells->fill; + ur_tag tag = ur_icell; + ur_nref cel = ( fill | ((uint64_t)tag << 62) ); + + // XX necessary? + // + assert( 62 >= ur_met0_64(fill) ); + + cells->mugs[fill] = mug; + cells->heads[fill] = hed; + cells->tails[fill] = tal; + cells->fill = 1 + fill; + + return cel; +} + +ur_nref +ur_coin_bytes_unsafe(ur_root_t *r, uint64_t len, uint8_t *byt) +{ + ur_atoms_t *atoms = &(r->atoms); + ur_dict_t *dict = &(atoms->dict); + ur_mug mug = ur_mug_bytes(byt, len); + + while ( 1 ) { + uint64_t idx = ( mug % dict->size ); + ur_pail_t *bucket = &(dict->buckets[idx]); + uint8_t i, b_fill = dict->fills[idx]; + ur_nref tom; + + for ( i = 0; i < b_fill; i++ ) { + uint8_t *t_byt; + uint64_t t_len; + tom = bucket->refs[i]; + + ur_bytes(r, tom, &t_byt, &t_len); + + if ( (t_len == len) + && (0 == memcmp(t_byt, byt, len)) ) + { + return tom; + } + } + + if ( ur_pail_max == b_fill ) { + ur_dict_grow(r, dict, dict->prev, dict->size); + continue; + } + + if ( atoms->fill == atoms->size ) { + ur_atoms_grow(atoms); + } + + tom = _coin_unsafe(atoms, mug, len, byt); + + bucket->refs[b_fill] = tom; + dict->fills[idx] = 1 + b_fill; + + return tom; + } +} + +ur_nref +ur_coin_bytes(ur_root_t *r, uint64_t len, uint8_t *byt) +{ + // strip trailing zeroes + // + while ( len && !byt[len - 1] ) { + len--; + } + + // produce a direct atom if possible + // + if ( 62 >= ur_met0_bytes_unsafe(len, byt) ) { + uint64_t i, direct = 0; + + for ( i = 0; i < len; i++ ) { + direct |= byt[i] << (8 * i); + } + + return (ur_nref)direct; + } + else { + uint8_t *copy = _oom("coin_bytes", malloc(len)); + memcpy(copy, byt, len); + + return ur_coin_bytes_unsafe(r, len, copy); + } +} + +ur_nref +ur_coin64(ur_root_t *r, uint64_t n) +{ + if ( ur_direct == ur_nref_tag(n) ) { + return n; + } + else { + uint8_t *byt; + assert( 8 == ur_met3_64(n) ); + + byt = _oom("coin64", malloc(8)); + + byt[0] = ur_mask_8(n); + byt[1] = ur_mask_8(n >> 8); + byt[2] = ur_mask_8(n >> 16); + byt[3] = ur_mask_8(n >> 24); + byt[4] = ur_mask_8(n >> 32); + byt[5] = ur_mask_8(n >> 40); + byt[6] = ur_mask_8(n >> 48); + byt[7] = ur_mask_8(n >> 56); + + return ur_coin_bytes_unsafe(r, 8, byt); + } +} + +ur_nref +ur_cons(ur_root_t *r, ur_nref hed, ur_nref tal) +{ + ur_cells_t *cells = &(r->cells); + ur_dict_t *dict = &(cells->dict); + ur_mug mug = ur_mug_both(ur_nref_mug(r, hed), + ur_nref_mug(r, tal)); + + while ( 1 ) { + uint64_t idx = ( mug % dict->size ); + ur_pail_t *bucket = &(dict->buckets[idx]); + uint8_t i, b_fill = dict->fills[idx]; + ur_nref cel; + + for ( i = 0; i < b_fill; i++ ) { + cel = bucket->refs[i]; + + if ( (hed == ur_head(r, cel)) + && (tal == ur_tail(r, cel)) ) + { + return cel; + } + } + + if ( ur_pail_max == b_fill ) { + ur_dict_grow(r, dict, dict->prev, dict->size); + continue; + } + + if ( cells->fill == cells->size ) { + ur_cells_grow(cells); + } + + cel = _cons_unsafe(cells, mug, hed, tal); + + bucket->refs[b_fill] = cel; + dict->fills[idx] = 1 + b_fill; + + return cel; + } +} + +static void +_print_memory(FILE *f, const char *c, uint64_t bytes) +{ + if ( !bytes ) { + fprintf(f, "%s: B/0\r\n", c); + } + else { + uint32_t g = (bytes / 1000000000); + uint32_t m = (bytes % 1000000000) / 1000000; + uint32_t k = (bytes % 1000000) / 1000; + uint32_t b = (bytes % 1000); + + if ( g ) { + fprintf(f, "%s: GB/%d.%03d.%03d.%03d\r\n", c, g, m, k, b); + } + else if ( m ) { + fprintf(f, "%s: MB/%d.%03d.%03d\r\n", c, m, k, b); + } + else if ( k ) { + fprintf(f, "%s: KB/%d.%03d\r\n", c, k, b); + } + else if ( b ) { + fprintf(f, "%s: B/%d\r\n", c, b); + } + } +} + +static uint64_t +_dict_info(FILE *f, ur_dict_t *dict) +{ + uint64_t data = dict->size * sizeof(*dict->buckets); + _print_memory(f, " dict", data); + return data; +} + +static uint64_t +_atoms_info(FILE *f, ur_atoms_t *atoms) +{ + uint64_t total = 0; + uint64_t size = atoms->size; + uint64_t fill = atoms->fill; + uint64_t refs = size * ( sizeof(*atoms->bytes) + + sizeof(*atoms->lens) + + sizeof(*atoms->mugs) ); + uint64_t i, data = 0; + + fprintf(f, " atoms (%" PRIu64 "):\r\n", fill); + + _print_memory(f, " refs", refs); + total += refs; + + for ( i = 0; i < fill; i++ ) { + data += atoms->lens[i]; + } + _print_memory(f, " data", data); + total += data; + + total += _dict_info(f, &(atoms->dict)); + _print_memory(f, " total", total); + return total; +} + +static uint64_t +_cells_info(FILE *f, ur_cells_t *cells) +{ + uint64_t total = 0; + uint64_t size = cells->size; + uint64_t fill = cells->fill; + uint64_t refs = size * ( sizeof(*cells->heads) + + sizeof(*cells->heads) + + sizeof(*cells->mugs) ); + + fprintf(f, " cells (%" PRIu64 "):\r\n", fill); + + _print_memory(f, " refs", refs); + total += refs; + + total += _dict_info(f, &(cells->dict)); + _print_memory(f, " total", total); + return total; +} + +void +ur_root_info(FILE *f, ur_root_t *r) +{ + uint64_t total = 0; + + fprintf(stderr, "hash-cons arena:\r\n"); + + { + uint64_t root = sizeof(*r); + _print_memory(f, " root", root); + total += root; + } + + total += _atoms_info(f, &(r->atoms)); + total += _cells_info(f, &(r->cells)); + + _print_memory(f, "total", total); +} + +static void +_atoms_free(ur_atoms_t *atoms) +{ + uint8_t **bytes = atoms->bytes; + uint64_t i, fill = atoms->fill; + + for ( i = 0; i < fill; i++ ) { + free(bytes[i]); + } + + ur_dict_free(&(atoms->dict)); + free(bytes); +} + +static void +_cells_free(ur_cells_t *cells) +{ + ur_dict_free(&(cells->dict)); + free(cells->heads); +} + +void +ur_root_free(ur_root_t *r) +{ + _atoms_free(&(r->atoms)); + _cells_free(&(r->cells)); + free(r); +} + +ur_root_t* +ur_root_init(void) +{ + ur_root_t *r = _oom("root_init", calloc(1, sizeof(*r))); + + { + ur_dict_t *dict; + + // allocate atom storage + // + r->atoms.prev = ur_fib11; + r->atoms.size = ur_fib12; + ur_atoms_grow(&(r->atoms)); + + // allocate atom hashtable + // + dict = &(r->atoms.dict); + ur_dict_grow(r, dict, ur_fib11, ur_fib12); + + // allocate cell storage + // + r->cells.prev = ur_fib11; + r->cells.size = ur_fib12; + ur_cells_grow(&(r->cells)); + + // allocate cell hashtable + // + dict = &(r->cells.dict); + ur_dict_grow(r, dict, ur_fib11, ur_fib12); + } + + return r; +} + +void +ur_nvec_free(ur_nvec_t *v) +{ + free(v->refs); +} + +void +ur_nvec_init(ur_nvec_t *v, uint64_t size) +{ + v->fill = 0; + v->refs = _oom("nvec_init", calloc(size, sizeof(ur_nref))); +} + +/* +** define opaque struct ur_walk_fore_s (ie, ur_walk_fore_t) +*/ +struct ur_walk_fore_s { + ur_root_t *r; + uint32_t prev; + uint32_t size; + ur_nref *top; +}; + +ur_walk_fore_t* +ur_walk_fore_init_with(ur_root_t *r, + uint32_t s_prev, + uint32_t s_size) +{ + ur_walk_fore_t *w = _oom("walk_fore", malloc(sizeof(*w))); + w->top = _oom("walk_fore", malloc(s_size * sizeof(*w->top))); + w->prev = s_prev; + w->size = s_size; + w->r = r; + + return w; +} + +ur_walk_fore_t* +ur_walk_fore_init(ur_root_t *r) +{ + return ur_walk_fore_init_with(r, ur_fib10, ur_fib11); +} + +void +ur_walk_fore_with(ur_walk_fore_t *w, + ur_nref ref, + void *v, + void (*atom)(ur_root_t*, ur_nref, void*), + ur_bool_t (*cell)(ur_root_t*, ur_nref, void*)) +{ + ur_root_t *r = w->r; + uint32_t fill = 1; + + *w->top = ref; + + do { + // visit atom, pop stack + // + if ( !ur_deep(ref) ) { + atom(r, ref, v); + fill--; + } + // visit cell, pop stack if false + // + else if ( !cell(r, ref, v) ) { + fill--; + } + // push the tail, continue into the head + // + else { + w->top[fill++] = ur_tail(r, ref); + + // reallocate "stack" if full + // + if ( w->size == fill ) { + uint32_t next = w->prev + w->size; + w->top = _oom("walk_fore", realloc(w->top, next * sizeof(*w->top))); + w->prev = w->size; + w->size = next; + } + + w->top[fill] = ur_head(r, ref); + } + + ref = w->top[fill]; + } while ( fill ); +} + +void +ur_walk_fore_done(ur_walk_fore_t *w) +{ + free(w->top); + free(w); +} + +void +ur_walk_fore(ur_root_t *r, + ur_nref ref, + void *v, + void (*atom)(ur_root_t*, ur_nref, void*), + ur_bool_t (*cell)(ur_root_t*, ur_nref, void*)) +{ + ur_walk_fore_t *w = ur_walk_fore_init(r); + ur_walk_fore_with(w, ref, v, atom, cell); + ur_walk_fore_done(w); +} diff --git a/vere/pkg/ur/hashcons.h b/vere/pkg/ur/hashcons.h new file mode 100644 index 0000000..8e0afea --- /dev/null +++ b/vere/pkg/ur/hashcons.h @@ -0,0 +1,259 @@ +/// @file + +#ifndef UR_HASHCONS_H +#define UR_HASHCONS_H + +#include +#include +#include +#include + +#include "defs.h" + +/* +** 64-bit noun references, with the top 2 bits reserved for type tags. +*/ +typedef uint64_t ur_nref; + +typedef enum { + ur_direct = 0, + ur_iatom = 1, + ur_icell = 2, +} ur_tag; + +#define ur_nref_tag(ref) ( ref >> 62 ) +#define ur_nref_idx(ref) ur_mask_62(ref) + +/* +** 31-bit, non-zero, murmur3-based noun hash. +*/ +typedef uint32_t ur_mug; + +/* +** associative structures (dictionaries) of noun references, +** distributed by mug across fixed-size buckets (pails), +** reallocated with fibonacci growth once a bucket is full. +** +** - ur_dict_t: set of noun references +** - ur_dict32_t: map from noun reference to uint32 +** - ur_dict32_t: map from noun reference to uint64 +*/ + +#define ur_pail_max 10 + +typedef struct ur_pail32_s { + ur_nref refs[ur_pail_max]; + uint32_t vals[ur_pail_max]; +} ur_pail32_t; + +typedef struct ur_dict32_s { + uint64_t prev; + uint64_t size; + uint8_t *fills; + ur_pail32_t *buckets; +} ur_dict32_t; + +typedef struct ur_pail64_s { + ur_nref refs[ur_pail_max]; + uint64_t vals[ur_pail_max]; +} ur_pail64_t; + +typedef struct ur_dict64_s { + uint64_t prev; + uint64_t size; + uint8_t *fills; + ur_pail64_t *buckets; +} ur_dict64_t; + +typedef struct ur_pail_s { + ur_nref refs[ur_pail_max]; +} ur_pail_t; + +typedef struct ur_dict_s { + uint64_t prev; + uint64_t size; + uint8_t *fills; + ur_pail_t *buckets; +} ur_dict_t; + +/* +** cells are hash-consed, atoms are deduplicated (byte-array comparison), +** mug hashes are stored, and noun references are unique within a root. +*/ +typedef struct ur_cells_s { + ur_dict_t dict; + uint64_t prev; + uint64_t size; + uint64_t fill; + ur_mug *mugs; + ur_nref *heads; + ur_nref *tails; +} ur_cells_t; + +typedef struct ur_atoms_s { + ur_dict_t dict; + uint64_t prev; + uint64_t size; + uint64_t fill; + ur_mug *mugs; + uint8_t **bytes; + uint64_t *lens; +} ur_atoms_t; + +typedef struct ur_root_s { + ur_cells_t cells; + ur_atoms_t atoms; +} ur_root_t; + +/* +** a vector of noun references. +*/ +typedef struct ur_nvec_s { + uint64_t fill; + ur_nref* refs; +} ur_nvec_t; + +/* +** opaque handle for repeated traversal. +*/ +typedef struct ur_walk_fore_s ur_walk_fore_t; + +/* +** type-specific dictionary operations. +** +** NB: [r] is only used to retrieve the stored mug of cells and +** indirect atoms. If all references are direct atoms (62-bits or less), +** [r] can be null. This option is used extensively in cue (de-serialization) +** implementations, where the dictionary keys are bit-cursors. +*/ +void +ur_dict32_grow(ur_root_t *r, ur_dict32_t *dict, uint64_t prev, uint64_t size); + +ur_bool_t +ur_dict32_get(ur_root_t *r, ur_dict32_t *dict, ur_nref ref, uint32_t *out); + +void +ur_dict32_put(ur_root_t *r, ur_dict32_t *dict, ur_nref ref, uint32_t val); + +void +ur_dict32_wipe(ur_dict32_t *dict); + +void +ur_dict64_grow(ur_root_t *r, ur_dict64_t *dict, uint64_t prev, uint64_t size); + +ur_bool_t +ur_dict64_get(ur_root_t *r, ur_dict64_t *dict, ur_nref ref, uint64_t *out); + +void +ur_dict64_put(ur_root_t *r, ur_dict64_t *dict, ur_nref ref, uint64_t val); + +void +ur_dict64_wipe(ur_dict64_t *dict); + +void +ur_dict_grow(ur_root_t *r, ur_dict_t *dict, uint64_t prev, uint64_t size); + +ur_bool_t +ur_dict_get(ur_root_t *r, ur_dict_t *dict, ur_nref ref); + +void +ur_dict_put(ur_root_t *r, ur_dict_t *dict, ur_nref ref); + +void +ur_dict_wipe(ur_dict_t *dict); + +/* +** free the buckets of any dictionary (cast to ur_dict_t*). +*/ +void +ur_dict_free(ur_dict_t *dict); + +/* +** measure the bloq (binary-exponent) length of an atom in [r] +*/ +uint64_t +ur_met(ur_root_t *r, uint8_t bloq, ur_nref ref); + +/* +** find or allocate an atom in [r] +** +** unsafe variant is unsafe wrt allocation (byte arrays must be +** allocated with system malloc) and trailing null bytes (not allowed). +*/ +ur_nref +ur_coin_bytes_unsafe(ur_root_t *r, uint64_t len, uint8_t *byt); + +ur_nref +ur_coin_bytes(ur_root_t *r, uint64_t len, uint8_t *byt); + +ur_nref +ur_coin64(ur_root_t *r, uint64_t n); + +/* +** find or construct a cell in [r] +*/ +ur_nref +ur_cons(ur_root_t *r, ur_nref hed, ur_nref tal); + +/* +** calculate the mug of [ref], or produce the stored value in [r]. +*/ +ur_mug +ur_nref_mug(ur_root_t *r, ur_nref ref); + +/* +** initialize a noun arena (root). +*/ +ur_root_t* +ur_root_init(void); + +/* +** print root details to [f] +*/ +void +ur_root_info(FILE *f, ur_root_t *r); + +/* +** dispose all allocations in [r] +*/ +void +ur_root_free(ur_root_t *r); + +/* +** initialize or dispose a vector of noun references +*/ +void +ur_nvec_init(ur_nvec_t *v, uint64_t size); + +void +ur_nvec_free(ur_nvec_t *v); + +/* +** depth-first, pre-order noun traversal, cells can short-circuit. +*/ +void +ur_walk_fore(ur_root_t *r, + ur_nref ref, + void *v, + void (*atom)(ur_root_t*, ur_nref, void*), + ur_bool_t (*cell)(ur_root_t*, ur_nref, void*)); + +ur_walk_fore_t* +ur_walk_fore_init_with(ur_root_t *r, + uint32_t s_prev, + uint32_t s_size); + +ur_walk_fore_t* +ur_walk_fore_init(ur_root_t *r); + +void +ur_walk_fore_with(ur_walk_fore_t *w, + ur_nref ref, + void *v, + void (*atom)(ur_root_t*, ur_nref, void*), + ur_bool_t (*cell)(ur_root_t*, ur_nref, void*)); + +void +ur_walk_fore_done(ur_walk_fore_t *w); + +#endif /* ifndef UR_HASHCONS_H */ diff --git a/vere/pkg/ur/serial.c b/vere/pkg/ur/serial.c new file mode 100644 index 0000000..72fb448 --- /dev/null +++ b/vere/pkg/ur/serial.c @@ -0,0 +1,588 @@ +/// @file + +#include "serial.h" + +#include +#include + +static void* +_oom(const char* cap, void* v) +{ + if ( !v ) { + fprintf(stderr, + "ur: hashcons: %s: allocation failed, out of memory\r\n", cap); + abort(); + } + + return v; +} + +static inline void +_bsw_atom(ur_root_t *r, ur_nref ref, ur_bsw_t *bsw, uint64_t len) +{ + switch ( ur_nref_tag(ref) ) { + default: assert(0); + + case ur_direct: return ur_bsw_atom64(bsw, len, ref); + + case ur_iatom: { + uint8_t *byt = r->atoms.bytes[ur_nref_idx(ref)]; + return ur_bsw_atom_bytes(bsw, len, byt); + } + } +} + +/* +** define opaque struct ur_jam_s (ie, ur_jam_t) +*/ +struct ur_jam_s { + ur_root_t *r; + ur_walk_fore_t *w; + ur_dict64_t dict; + ur_bsw_t bsw; +}; + +static void +_jam_atom(ur_root_t *r, ur_nref ref, void *ptr) +{ + ur_jam_t *j = ptr; + ur_dict64_t *dict = &j->dict; + ur_bsw_t *bsw = &j->bsw; + uint64_t bak, len = ur_met(r, 0, ref); + + if ( !ur_dict64_get(r, dict, ref, &bak) ) { + ur_dict64_put(r, dict, ref, bsw->bits); + + _bsw_atom(r, ref, bsw, len); + } + else { + uint64_t len_bak = ur_met0_64(bak); + + if ( len <= len_bak ) { + _bsw_atom(r, ref, bsw, len); + } + else { + ur_bsw_back64(bsw, len_bak, bak); + } + } +} + +static ur_bool_t +_jam_cell(ur_root_t *r, ur_nref ref, void *ptr) +{ + ur_jam_t *j = ptr; + ur_dict64_t *dict = &j->dict; + ur_bsw_t *bsw = &j->bsw; + uint64_t bak; + + if ( !ur_dict64_get(r, dict, ref, &bak) ) { + ur_dict64_put(r, dict, ref, bsw->bits); + + ur_bsw_cell(bsw); + return 1; + } + else { + ur_bsw_back64(bsw, ur_met0_64(bak), bak); + return 0; + } +} + +static uint64_t +_jam(ur_jam_t *j, + ur_nref ref, + uint64_t *len, + uint8_t **byt) +{ + ur_bsw_init(&j->bsw, ur_fib11, ur_fib12); + ur_walk_fore_with(j->w, ref, j, _jam_atom, _jam_cell); + return ur_bsw_done(&j->bsw, len, byt); +} + +ur_jam_t* +ur_jam_init_with(ur_root_t *r, + uint64_t d_prev, + uint64_t d_size, + uint32_t s_prev, + uint32_t s_size) +{ + ur_jam_t *j = _oom("jam_init", calloc(sizeof(*j), 1)); + j->w = ur_walk_fore_init_with(r, s_prev, s_size); + j->r = r; + + ur_dict64_grow(r, &j->dict, d_prev, d_size); + + return j; +} + +ur_jam_t* +ur_jam_init(ur_root_t *r) +{ + return ur_jam_init_with(r, ur_fib11, ur_fib12, // dict sizes + ur_fib10, ur_fib11); // stack sizes +} + +uint64_t +ur_jam_with(ur_jam_t *j, + ur_nref ref, + uint64_t *len, + uint8_t **byt) +{ + uint64_t bits = _jam(j, ref, len, byt); + ur_dict64_wipe(&j->dict); + return bits; +} + +void +ur_jam_done(ur_jam_t *j) +{ + ur_dict_free((ur_dict_t*)&j->dict); + ur_walk_fore_done(j->w); + free(j); +} + +uint64_t +ur_jam(ur_root_t *r, + ur_nref ref, + uint64_t *len, + uint8_t **byt) +{ + ur_jam_t *j = ur_jam_init(r); + uint64_t bits = _jam(j, ref, len, byt); + ur_jam_done(j); + return bits; +} + +/* +** stack frame for recording head vs tail iteration +** +** $? [CUE_HEAD bits=@] +** [hed=* bits=@] +*/ + +#define CUE_HEAD 0xffffffffffffffffULL + +typedef struct _cue_frame_s { + uint64_t ref; + uint64_t bits; +} _cue_frame_t; + +typedef struct _cue_stack_s { + uint32_t prev; + uint32_t size; + uint32_t fill; + _cue_frame_t* f; +} _cue_stack_t; + +static inline ur_cue_res_e +_cue_next(ur_root_t *r, + _cue_stack_t *s, + ur_bsr_t *bsr, + ur_dict64_t *dict, + ur_nref *out) +{ + while ( 1 ) { + uint64_t len, bits = bsr->bits; + ur_cue_tag_e tag; + ur_cue_res_e res; + + if ( ur_cue_good != (res = ur_bsr_tag(bsr, &tag)) ) { + return res; + } + + switch ( tag ) { + default: assert(0); + + case ur_jam_cell: { + // reallocate the stack if full + // + if ( s->fill == s->size ) { + uint32_t next = s->prev + s->size; + s->f = _oom("cue_next stack", realloc(s->f, next * sizeof(*s->f))); + s->prev = s->size; + s->size = next; + } + + // save a head-frame and read the head from the stream + // + { + _cue_frame_t* f = &(s->f[s->fill++]); + f->ref = CUE_HEAD; + f->bits = bits; + } + continue; + } + + case ur_jam_back: { + if ( ur_cue_good != (res = ur_bsr_rub_len(bsr, &len)) ) { + return res; + } + else if ( 62 < len ) { + return ur_cue_meme; + } + else { + uint64_t val, bak = ur_bsr64_any(bsr, len); + + if ( !ur_dict64_get(r, dict, bak, &val) ) { + return ur_cue_back; + } + + *out = (ur_nref)val; + return ur_cue_good; + } + } + + case ur_jam_atom: { + if ( ur_cue_good != (res = ur_bsr_rub_len(bsr, &len)) ) { + return res; + } + else if ( 62 >= len ) { + *out = (ur_nref)ur_bsr64_any(bsr, len); + } + else { + uint64_t len_byt = (len >> 3) + !!ur_mask_3(len); + uint8_t *byt = _oom("cue_next bytes", calloc(len_byt, 1)); + + ur_bsr_bytes_any(bsr, len, byt); + + // strip trailing zeroes + // + while ( len_byt && !byt[len_byt - 1] ) { + len_byt--; + } + + *out = ur_coin_bytes_unsafe(r, len_byt, byt); + } + + ur_dict64_put(r, dict, bits, (uint64_t)*out); + return ur_cue_good; + } + } + } +} + +/* +** define opaque struct ur_cue_s (ie, ur_cue_t) +*/ +struct ur_cue_s { + ur_root_t *r; + _cue_stack_t s; + ur_dict64_t dict; +}; + +static ur_cue_res_e +_cue(ur_cue_t *c, + uint64_t len, + const uint8_t *byt, + ur_nref *out) +{ + ur_bsr_t bsr = {0}; + ur_root_t *r = c->r; + _cue_stack_t *s = &c->s; + ur_dict64_t *dict = &c->dict; + ur_cue_res_e res; + ur_nref ref; + + // init bitstream-reader + // + if ( ur_cue_good != (res = ur_bsr_init(&bsr, len, byt)) ) { + return res; + } + // bit-cursor (and backreferences) must fit in 62-bit direct atoms + // + else if ( 0x7ffffffffffffffULL < len ) { + return ur_cue_meme; + } + + // advance into stream + // + res = _cue_next(r, s, &bsr, dict, &ref); + + // process result + // + while ( s->fill && (ur_cue_good == res) ) { + // peek at the top of the stack + // + _cue_frame_t *f = &(s->f[s->fill - 1]); + + // f is a head-frame; stash result and read the tail from the stream + // + if ( CUE_HEAD == f->ref ) { + f->ref = ref; + res = _cue_next(r, s, &bsr, dict, &ref); + } + // f is a tail-frame; pop the stack and continue + // + else { + ref = ur_cons(r, f->ref, ref); + ur_dict64_put(r, dict, f->bits, (uint64_t)ref); + s->fill--; + } + } + + if ( ur_cue_good == res ) { + *out = ref; + } + return res; +} + +ur_cue_t* +ur_cue_init_with(ur_root_t *r, + uint64_t d_prev, + uint64_t d_size, + uint32_t s_prev, + uint32_t s_size) +{ + ur_cue_t* c = _oom("cue_init", calloc(sizeof(*c), 1)); + c->r = r; + + ur_dict64_grow(r, &c->dict, d_prev, d_size); + + c->s.prev = s_prev; + c->s.size = s_size; + c->s.f = _oom("cue_test_init", malloc(s_size * sizeof(*c->s.f))); + + return c; +} + +ur_cue_t* +ur_cue_init(ur_root_t *r) +{ + return ur_cue_init_with(r, ur_fib11, ur_fib12, // dict sizes + ur_fib10, ur_fib11); // stack sizes +} + +ur_cue_res_e +ur_cue_with(ur_cue_t *c, + uint64_t len, + const uint8_t *byt, + ur_nref *out) +{ + ur_cue_res_e res = _cue(c, len, byt, out); + + // XX check size, shrink if above threshold + // + ur_dict64_wipe(&c->dict); + c->s.fill = 0; + + return res; +} + +void +ur_cue_done(ur_cue_t *c) +{ + + ur_dict_free((ur_dict_t*)&c->dict); + free(c->s.f); + free(c); +} + +ur_cue_res_e +ur_cue(ur_root_t *r, + uint64_t len, + const uint8_t *byt, + ur_nref *out) +{ + ur_cue_t *c = ur_cue_init(r); + ur_cue_res_e res = _cue(c, len, byt, out); + + ur_cue_done(c); + return res; +} + +/* +** stack frame for recording head vs tail iteration +** +** [hed=? bits=@] +** +*/ + +typedef struct _cue_test_frame_s { + ur_bool_t tal; + uint64_t bits; +} _cue_test_frame_t; + +typedef struct _cue_test_stack_s { + uint32_t prev; + uint32_t size; + uint32_t fill; + _cue_test_frame_t* f; +} _cue_test_stack_t; + +static inline ur_cue_res_e +_cue_test_next(_cue_test_stack_t *s, + ur_bsr_t *bsr, + ur_dict_t *dict) +{ + while ( 1 ) { + uint64_t len, bits = bsr->bits; + ur_cue_tag_e tag; + ur_cue_res_e res; + + if ( ur_cue_good != (res = ur_bsr_tag(bsr, &tag)) ) { + return res; + } + + switch ( tag ) { + default: assert(0); + + case ur_jam_cell: { + // reallocate the stack if full + // + if ( s->fill == s->size ) { + uint32_t next = s->prev + s->size; + s->f = _oom("cue_test", realloc(s->f, next * sizeof(*s->f))); + s->prev = s->size; + s->size = next; + } + + // save a head-frame and read the head from the stream + // + { + _cue_test_frame_t* f = &(s->f[s->fill++]); + f->tal = 0; + f->bits = bits; + } + continue; + } + + case ur_jam_back: { + if ( ur_cue_good != (res = ur_bsr_rub_len(bsr, &len)) ) { + return res; + } + else if ( 62 < len ) { + return ur_cue_meme; + } + else { + uint64_t bak = ur_bsr64_any(bsr, len); + return ur_dict_get((ur_root_t*)0, dict, bak) + ? ur_cue_good + : ur_cue_back; + } + } + + case ur_jam_atom: { + if ( ur_cue_good != (res = ur_bsr_rub_len(bsr, &len)) ) { + return res; + } + + ur_bsr_skip_any(bsr, len); + ur_dict_put((ur_root_t*)0, dict, bits); + return ur_cue_good; + } + } + } +} + +/* +** define opaque struct ur_cue_test_s (ie, ur_cue_test_t) +*/ +struct ur_cue_test_s { + _cue_test_stack_t s; + ur_dict_t dict; +}; + +static ur_cue_res_e +_cue_test(ur_cue_test_t *t, + uint64_t len, + const uint8_t *byt) +{ + ur_bsr_t bsr = {0}; + _cue_test_stack_t *s = &t->s; + ur_dict_t *dict = &t->dict; + ur_cue_res_e res; + + // init bitstream-reader + // + if ( ur_cue_good != (res = ur_bsr_init(&bsr, len, byt)) ) { + return res; + } + // bit-cursor (and backreferences) must fit in 62-bit direct atoms + // + else if ( 0x7ffffffffffffffULL < len ) { + return ur_cue_meme; + } + + // advance into stream + // + res = _cue_test_next(s, &bsr, dict); + + // process result + // + while ( s->fill && (ur_cue_good == res) ) { + // peek at the top of the stack + // + _cue_test_frame_t *f = &(s->f[s->fill - 1]); + + // f is a head-frame; stash result and read the tail from the stream + // + if ( !f->tal ) { + f->tal = 1; + res = _cue_test_next(s, &bsr, dict); + } + // f is a tail-frame; pop the stack and continue + // + else { + ur_dict_put((ur_root_t*)0, dict, f->bits); + s->fill--; + } + } + + return res; +} + +ur_cue_test_t* +ur_cue_test_init_with(uint64_t d_prev, + uint64_t d_size, + uint32_t s_prev, + uint32_t s_size) +{ + ur_cue_test_t* t = _oom("cue_test_init", calloc(sizeof(*t), 1)); + + ur_dict_grow((ur_root_t*)0, &t->dict, d_prev, d_size); + + t->s.prev = s_prev; + t->s.size = s_size; + t->s.f = _oom("cue_test_init", malloc(s_size * sizeof(*t->s.f))); + + return t; +} + +ur_cue_test_t* +ur_cue_test_init(void) +{ + return ur_cue_test_init_with(ur_fib11, ur_fib12, // dict sizes + ur_fib10, ur_fib11); // stack sizes +} + +ur_bool_t +ur_cue_test_with(ur_cue_test_t *t, + uint64_t len, + const uint8_t *byt) +{ + ur_bool_t ret = ur_cue_good == _cue_test(t, len, byt); + + // XX check size, shrink if above threshold + // + ur_dict_wipe(&t->dict); + t->s.fill = 0; + + return ret; +} + +void +ur_cue_test_done(ur_cue_test_t *t) +{ + ur_dict_free(&t->dict); + free(t->s.f); + free(t); +} + +ur_bool_t +ur_cue_test(uint64_t len, const uint8_t *byt) +{ + ur_cue_test_t *t = ur_cue_test_init(); + ur_bool_t ret = ur_cue_good == _cue_test(t, len, byt); + + ur_cue_test_done(t); + return ret; +} diff --git a/vere/pkg/ur/serial.h b/vere/pkg/ur/serial.h new file mode 100644 index 0000000..3044c4b --- /dev/null +++ b/vere/pkg/ur/serial.h @@ -0,0 +1,114 @@ +/// @file + +#ifndef UR_SERIAL_H +#define UR_SERIAL_H + +#include + +#include "bitstream.h" +#include "defs.h" +#include "hashcons.h" + +/* +** bit-wise serialization of a noun into a byte-buffer. +** supports up to 64-bits of bit-addressed output (nearly 2 EiB). +** (as this is an impractical volume data, cursor overflow is not checked.) +** +** jam_with* api factors out stack/dict (re)allocation, +** for better performance inside hot loops. +** +*/ + +typedef struct ur_jam_s ur_jam_t; + +uint64_t +ur_jam_unsafe(ur_root_t *r, + ur_nref ref, + ur_dict64_t *dict, + uint64_t *len, + uint8_t **byt); + +uint64_t +ur_jam(ur_root_t *r, + ur_nref ref, + uint64_t *len, + uint8_t **byt); + +ur_jam_t* +ur_jam_init_with(ur_root_t *r, + uint64_t d_prev, + uint64_t d_size, + uint32_t s_prev, + uint32_t s_size); + +ur_jam_t* +ur_jam_init(ur_root_t *r); + +uint64_t +ur_jam_with(ur_jam_t *j, + ur_nref ref, + uint64_t *len, + uint8_t **byt); +void +ur_jam_done(ur_jam_t *j); + +/* +** bitwise deserialization of a byte-buffer into a noun. +** supports up to 62-bits of bit-addressed input (511 PiB). +** returns [ur_cue_good] on success. +** +** cue_with factors out stack/dict (re)allocation, +** for better performance of hot loops. +** +** cue_test does not allocate nouns, but merely parses the input; +** cue_test_with* api factors out stack/dict (re)allocation, +** for better performance of repeated tests. +** +*/ + +typedef struct ur_cue_test_s ur_cue_test_t; +typedef struct ur_cue_s ur_cue_t; + +ur_cue_res_e +ur_cue(ur_root_t *r, uint64_t len, const uint8_t *byt, ur_nref *out); + +ur_cue_t* +ur_cue_init_with(ur_root_t *r, + uint64_t d_prev, + uint64_t d_size, + uint32_t s_prev, + uint32_t s_size); + +ur_cue_t* +ur_cue_init(ur_root_t *r); + +ur_cue_res_e +ur_cue_with(ur_cue_t *c, + uint64_t len, + const uint8_t *byt, + ur_nref *out); + +void +ur_cue_done(ur_cue_t *c); + +ur_bool_t +ur_cue_test(uint64_t len, const uint8_t *byt); + +ur_cue_test_t* +ur_cue_test_init_with(uint64_t d_prev, + uint64_t d_size, + uint32_t s_prev, + uint32_t s_size); + +ur_cue_test_t* +ur_cue_test_init(void); + +ur_bool_t +ur_cue_test_with(ur_cue_test_t *t, + uint64_t len, + const uint8_t *byt); + +void +ur_cue_test_done(ur_cue_test_t *t); + +#endif /* ifndef UR_SERIAL_H */ diff --git a/vere/pkg/ur/tests.c b/vere/pkg/ur/tests.c new file mode 100644 index 0000000..e0516b6 --- /dev/null +++ b/vere/pkg/ur/tests.c @@ -0,0 +1,1862 @@ +/// @file + +#include "ur.h" + +#include +#include +#include +#include +#include +#include + +/* +** initialize helper for bitstream-writer tests. +*/ +static void +_bsw_reinit(ur_bsw_t *bsw, uint64_t prev, uint64_t size) +{ + bsw->prev = prev; + bsw->size = size; + bsw->bits = 0; + bsw->fill = 0; + bsw->off = 0; + + free(bsw->bytes); + bsw->bytes = calloc(size, 1); +} + +/* +** check bitstream-writer test invariants. +*/ +static int +_bsw_bit_check(const char* cap, ur_bsw_t *bsw, uint8_t byt, uint8_t off) +{ + int ret = 1; + + if ( !ur_bsw_sane(bsw) ) { + fprintf(stderr, "%s: insane off=%u fill=%" PRIu64 " bits=%" PRIu64 "\r\n", + cap, bsw->off, bsw->fill, bsw->bits); + ret = 0; + } + + if ( byt != bsw->bytes[0] ) { + fprintf(stderr, "%s: bytes fail (%u, %u)\r\n", cap, byt, bsw->bytes[0]); + ret = 0; + } + + if ( off != bsw->off ) { + fprintf(stderr, "%s: offset fail (%u, %u)\r\n", cap, off, bsw->off); + ret = 0; + } + + return ret; +} + +/* +** test 8 sequential writes of a set bit. +*/ +static int +_test_bsw_bit_ones(void) +{ + int ret = 1; + ur_bsw_t bsw = {0}; + _bsw_reinit(&bsw, 1, 1); + + ret &= _bsw_bit_check("bsw ones init", &bsw, 0x0, 0); + + ur_bsw_bit(&bsw, 1); + ret &= _bsw_bit_check("bsw ones a", &bsw, 0x1, 1); + + ur_bsw_bit(&bsw, 1); + ret &= _bsw_bit_check("bsw ones b", &bsw, 0x3, 2); + + ur_bsw_bit(&bsw, 1); + ret &= _bsw_bit_check("bsw ones c", &bsw, 0x7, 3); + + ur_bsw_bit(&bsw, 1); + ret &= _bsw_bit_check("bsw ones d", &bsw, 0xf, 4); + + ur_bsw_bit(&bsw, 1); + ret &= _bsw_bit_check("bsw ones e", &bsw, 0x1f, 5); + + ur_bsw_bit(&bsw, 1); + ret &= _bsw_bit_check("bsw ones f", &bsw, 0x3f, 6); + + ur_bsw_bit(&bsw, 1); + ret &= _bsw_bit_check("bsw ones g", &bsw, 0x7f, 7); + + ur_bsw_bit(&bsw, 1); + ret &= _bsw_bit_check("bsw ones h", &bsw, 0xff, 0); + + if ( bsw.size != 2 ) { + fprintf(stderr, "bsw ones grow: fail\r\n"); + ret = 0; + } + + free(bsw.bytes); + + return ret; +} + +/* +** test 8 sequential writes of 1 null bit. +*/ +static int +_test_bsw_bit_zeros(void) +{ + int ret = 1; + ur_bsw_t bsw = {0}; + _bsw_reinit(&bsw, 1, 1); + + ret &= _bsw_bit_check("bsw zeros init", &bsw, 0x0, 0); + + ur_bsw_bit(&bsw, 0); + ret &= _bsw_bit_check("bsw zeros a", &bsw, 0x0, 1); + + ur_bsw_bit(&bsw, 0); + ret &= _bsw_bit_check("bsw zeros b", &bsw, 0x0, 2); + + ur_bsw_bit(&bsw, 0); + ret &= _bsw_bit_check("bsw zeros c", &bsw, 0x0, 3); + + ur_bsw_bit(&bsw, 0); + ret &= _bsw_bit_check("bsw zeros d", &bsw, 0x0, 4); + + ur_bsw_bit(&bsw, 0); + ret &= _bsw_bit_check("bsw zeros e", &bsw, 0x0, 5); + + ur_bsw_bit(&bsw, 0); + ret &= _bsw_bit_check("bsw zeros f", &bsw, 0x0, 6); + + ur_bsw_bit(&bsw, 0); + ret &= _bsw_bit_check("bsw zeros g", &bsw, 0x0, 7); + + ur_bsw_bit(&bsw, 0); + ret &= _bsw_bit_check("bsw zeros h", &bsw, 0x0, 0); + + if ( bsw.size != 2 ) { + fprintf(stderr, "bsw zeros grow: fail\r\n"); + ret = 0; + } + + free(bsw.bytes); + + return ret; +} + +/* +** test 8 sequential writes of alternating bits. +*/ +static int +_test_bsw_bit_alt(void) +{ + int ret = 1; + ur_bsw_t bsw = {0}; + _bsw_reinit(&bsw, 1, 1); + + ret &= _bsw_bit_check("bsw alt init", &bsw, 0x0, 0); + + ur_bsw_bit(&bsw, 0); + ret &= _bsw_bit_check("bsw alt a", &bsw, 0x0, 1); + + ur_bsw_bit(&bsw, 1); + ret &= _bsw_bit_check("bsw alt b", &bsw, 0x2, 2); + + ur_bsw_bit(&bsw, 0); + ret &= _bsw_bit_check("bsw alt c", &bsw, 0x2, 3); + + ur_bsw_bit(&bsw, 1); + ret &= _bsw_bit_check("bsw alt d", &bsw, 0xa, 4); + + ur_bsw_bit(&bsw, 0); + ret &= _bsw_bit_check("bsw alt e", &bsw, 0xa, 5); + + ur_bsw_bit(&bsw, 1); + ret &= _bsw_bit_check("bsw alt f", &bsw, 0x2a, 6); + + ur_bsw_bit(&bsw, 0); + ret &= _bsw_bit_check("bsw alt g", &bsw, 0x2a, 7); + + ur_bsw_bit(&bsw, 1); + ret &= _bsw_bit_check("bsw alt h", &bsw, 0xaa, 0); + + if ( bsw.size != 2 ) { + fprintf(stderr, "bsw alt grow: fail\r\n"); + ret = 0; + } + + free(bsw.bytes); + + return ret; +} + +static int +_test_bsw_bit(void) +{ + return _test_bsw_bit_ones() + & _test_bsw_bit_zeros() + & _test_bsw_bit_alt(); +} + +/* +** subsequents bitstream-writer tests assume the correctnesss of +** ur_bsw_bit(), and compare the output of a bit-at-a-time +** "golden master" with that of the relevant, higher-level operation. +** +** XX the "golden" master implementations shouldn't be in bitstream module, +** as we don't intend to run them, but it's kind of weird implement them +** in the test itself. +** +*/ +static int +_bsw_cmp_check(const char* cap, uint8_t val, uint8_t off, uint8_t len, ur_bsw_t *a, ur_bsw_t *b) +{ + int ret = 1; + + if ( !ur_bsw_sane(a) ) { + fprintf(stderr, "%s: val 0x%02x off %u, len %u: a insane off=%u fill=%" PRIu64 " bits=%" PRIu64 "\r\n", + cap, val, off, len, a->off, a->fill, a->bits); + ret = 0; + } + if ( !ur_bsw_sane(b) ) { + fprintf(stderr, "%s: val 0x%02x off %u len %u: b insane off=%u fill=%" PRIu64 " bits=%" PRIu64 "\r\n", + cap, val, off, len, b->off, b->fill, b->bits); + ret = 0; + } + + if ( a->off != b->off ) { + fprintf(stderr, "%s: val 0x%02x off %u len %u: offset fail (%u, %u)\r\n", + cap, val, off, len, a->off, b->off); + ret = 0; + } + + if ( a->fill != b->fill ) { + fprintf(stderr, "%s: val 0x%02x off %u len %u: fill fail (%" PRIu64 ", %" PRIu64 ")\r\n", + cap, val, off, len, a->fill, b->fill); + ret = 0; + } + + { + uint64_t k, len_byt = a->fill + !!a->off; + + if ( memcmp(a->bytes, b->bytes, len_byt) ) { + fprintf(stderr, "%s: val 0x%02x off %u, len %u not equal off=%u fill=%" PRIu64 "\r\n", + cap, val, off, len, b->off, b->fill); + fprintf(stderr, " a: { "); + for ( k = 0; k < len_byt; k++ ) { + fprintf(stderr, "%02x, ", a->bytes[k]); + } + fprintf(stderr, "}\r\n"); + fprintf(stderr, " b: { "); + for ( k = 0; k < len_byt; k++ ) { + fprintf(stderr, "%02x, ", b->bytes[k]); + } + fprintf(stderr, "}\r\n"); + ret = 0; + } + } + + return ret; +} + +/* +** ur_bsw8 golden master +*/ +static void +_bsw8_slow(ur_bsw_t *bsw, uint8_t len, uint8_t byt) +{ + len = ur_min(8, len); + + while ( len ) { + ur_bsw_bit(bsw, byt); + byt >>= 1; + len--; + } +} + +/* +** at varying offsets, write varying numbers of bits via +** ur_bsw8 and master, comparing the result each time. +*/ +static int +_test_bsw8_loop(const char* cap, uint8_t val) +{ + int ret = 1; + ur_bsw_t a = {0}; + ur_bsw_t b = {0}; + uint8_t i, j; + + for ( i = 0; i < 8; i++) { + for ( j = 0; j <= 8; j++ ) { + _bsw_reinit(&a, 1, 1); + _bsw_reinit(&b, 1, 1); + a.off = a.bits = b.off = b.bits = i; + + _bsw8_slow(&a, j, val); + ur_bsw8(&b, j, val); + + ret &= _bsw_cmp_check(cap, val, i, j, &a, &b); + } + } + + return ret; +} + +static int +_test_bsw8(void) +{ + return _test_bsw8_loop("bsw bits ones", 0xff) + & _test_bsw8_loop("bsw bits zeros", 0x0) + & _test_bsw8_loop("bsw bits alt 1", 0xaa) + & _test_bsw8_loop("bsw bits alt 2", 0x55); +} + +/* +** ur_bsw32 golden master +*/ +static void +_bsw32_slow(ur_bsw_t *bsw, uint8_t len, uint32_t val) +{ + len = ur_min(32, len); + + while ( len ) { + ur_bsw_bit(bsw, val & 0xff); + val >>= 1; + len--; + } +} + +/* +** at varying offsets, write varying numbers of bits via +** ur_bsw32 and master, comparing the result each time. +*/ +static int +_test_bsw32_loop(const char* cap, uint32_t val) +{ + int ret = 1; + ur_bsw_t a = {0}; + ur_bsw_t b = {0}; + uint8_t i, j; + + for ( i = 0; i < 8; i++) { + for ( j = 0; j <= 32; j++ ) { + _bsw_reinit(&a, 1, 1); + _bsw_reinit(&b, 1, 1); + a.off = a.bits = b.off = b.bits = i; + + _bsw32_slow(&a, j, val); + ur_bsw32(&b, j, val); + + ret &= _bsw_cmp_check(cap, val, i, j, &a, &b); + } + } + + return ret; +} + +static int +_test_bsw32(void) +{ + return _test_bsw32_loop("bsw 32 ones", 0xffffffff) + & _test_bsw32_loop("bsw 32 zeros", 0x0) + & _test_bsw32_loop("bsw 32 alt 1", 0xaaaaaaaa) + & _test_bsw32_loop("bsw 32 alt 2", 0x55555555); +} + +/* +** ur_bsw64 golden master +*/ +static void +_bsw64_slow(ur_bsw_t *bsw, uint8_t len, uint64_t val) +{ + len = ur_min(64, len); + + while ( len ) { + ur_bsw_bit(bsw, val & 0xff); + val >>= 1; + len--; + } +} + +/* +** at varying offsets, write varying numbers of bits via +** ur_bsw64 and master, comparing the result each time. +*/ +static int +_test_bsw64_loop(const char* cap, uint64_t val) +{ + int ret = 1; + ur_bsw_t a = {0}; + ur_bsw_t b = {0}; + uint8_t i, j; + + for ( i = 0; i < 8; i++) { + for ( j = 0; j <= 64; j++ ) { + _bsw_reinit(&a, 1, 1); + _bsw_reinit(&b, 1, 1); + a.off = a.bits = b.off = b.bits = i; + + _bsw64_slow(&a, j, val); + ur_bsw64(&b, j, val); + + ret &= _bsw_cmp_check(cap, val, i, j, &a, &b); + } + } + + return ret; +} + +static int +_test_bsw64(void) +{ + return _test_bsw64_loop("bsw 64 ones", 0xffffffffffffffffULL) + & _test_bsw64_loop("bsw 64 zeros", 0x0ULL) + & _test_bsw64_loop("bsw 64 alt 1", 0xaaaaaaaaaaaaaaaaULL) + & _test_bsw64_loop("bsw 64 alt 2", 0x5555555555555555ULL); +} + +/* +** ur_bsw_bytes() golden master +*/ +static void +_bsw_bytes_slow(ur_bsw_t *bsw, uint64_t len, uint8_t *byt) +{ + uint64_t i, len_byt = len >> 3; + + for ( i = 0; i < len_byt; i++ ) { + _bsw8_slow(bsw, 8, byt[i]); + len -= 8; + } + + _bsw8_slow(bsw, len, byt[len_byt]); +} + +/* +** at varying offsets, write varying numbers of bits via +** ur_bsw_bytes and master, comparing the result each time. +*/ +static int +_test_bsw_bytes_loop(const char* cap, uint64_t len, uint8_t val) +{ + int ret = 1; + ur_bsw_t a = {0}; + ur_bsw_t b = {0}; + uint8_t i, j, *byt; + uint64_t len_bit = len << 3; + + byt = malloc(len); + memset(byt, val, len); + + for ( i = 0; i < 8; i++) { + for ( j = 0; j < len_bit; j++ ) { + _bsw_reinit(&a, 1, 1); + _bsw_reinit(&b, 1, 1); + a.off = a.bits = b.off = b.bits = i; + + _bsw_bytes_slow(&a, j, byt); + ur_bsw_bytes(&b, j, byt); + + ret &= _bsw_cmp_check(cap, val, i, j, &a, &b); + } + } + + free(byt); + + return ret; +} + +static int +_test_bsw_bytes(void) +{ + return _test_bsw_bytes_loop("bsw bytes nought", 0, 0x0) + & _test_bsw_bytes_loop("bsw bytes ones odd", 3, 0xff) + & _test_bsw_bytes_loop("bsw bytes ones even", 4, 0xff) + & _test_bsw_bytes_loop("bsw bytes zeros odd", 5, 0x0) + & _test_bsw_bytes_loop("bsw bytes zeros even", 6, 0x0) + & _test_bsw_bytes_loop("bsw bytes alt 1 odd", 7, 0xaa) + & _test_bsw_bytes_loop("bsw bytes alt 1 even", 8, 0xaa) + & _test_bsw_bytes_loop("bsw bytes alt 2 odd", 9, 0x55) + & _test_bsw_bytes_loop("bsw bytes alt 2 even", 10, 0x55); +} + +/* +** ur_bsw_bex golden master +*/ +static void +_bsw_bex_slow(ur_bsw_t *bsw, uint8_t n) +{ + while ( n >= 64 ) { + _bsw64_slow(bsw, 64, 0); + n -= 64; + } + + _bsw64_slow(bsw, n + 1, 1ULL << n); +} + +/* +** at varying offsets, write varying numbers of bits via +** ur_bsw_bex and master, comparing the result each time. +*/ +static int +_test_bsw_bex() +{ + int ret = 1; + ur_bsw_t a = {0}; + ur_bsw_t b = {0}; + uint8_t i; + uint32_t j; + + for ( i = 0; i < 8; i++) { + for ( j = 0; j < 256; j++ ) { + _bsw_reinit(&a, 1, 1); + _bsw_reinit(&b, 1, 1); + a.off = a.bits = b.off = b.bits = i; + + _bsw_bex_slow(&a, j); + ur_bsw_bex(&b, j); + + ret &= _bsw_cmp_check("bsw bex", j, i, j + 1, &a, &b); + } + } + + return ret; +} + +static int +_test_bsw(void) +{ + return _test_bsw_bit() + & _test_bsw8() + & _test_bsw32() + & _test_bsw64() + & _test_bsw_bytes() + & _test_bsw_bex(); +} + +/* +** check bitstream-reader test invariants. +*/ +static int +_bsr_bit_check(const char *cap, + ur_bsr_t *bsr, + uint8_t off, + uint64_t bits, + uint8_t exp, + uint8_t val, + ur_cue_res_e ser, + ur_cue_res_e res) +{ + int ret = 1; + + if ( !ur_bsr_sane(bsr) ) { + fprintf(stderr, "%s: insane off=%u left=%" PRIu64 " bits=%" PRIu64 "\r\n", + cap, bsr->off, bsr->left, bsr->bits); + ret = 0; + } + + if ( ser != res ) { + fprintf(stderr, "%s: res not equal (%s, %s) off=%u left=%" PRIu64 " byte=%02x bits=%" PRIu64 "\r\n", + cap, (ur_cue_good == ser) ? "good" : "gone", + (ur_cue_good == res) ? "good" : "gone", + bsr->off, bsr->left, bsr->left ? bsr->bytes[0] : 0, bsr->bits); + ret = 0; + } + + if ( (ur_cue_good == res) && (exp != val) ) { + fprintf(stderr, "%s: val not equal (%02x, %02x) off=%u left=%" PRIu64 " byte=%02x bits=%" PRIu64 "\r\n", + cap, exp, val, bsr->off, bsr->left, bsr->left ? bsr->bytes[0] : 0, bsr->bits); + ret = 0; + } + + if ( off != bsr->off ) { + fprintf(stderr, "%s: offset fail (%u, %u)\r\n", cap, off, bsr->off); + ret = 0; + } + + if ( bits != bsr->bits ) { + fprintf(stderr, "%s: bits fail (%" PRIu64 ", %" PRIu64 ")\r\n", cap, bits, bsr->bits); + ret = 0; + } + + return ret; +} + +/* +** read a bit 8 times from a bitstream initialized to all ones, +** checking invariants and result after each read. +*/ +static int +_test_bsr_bit_ones(void) +{ + int ret = 1; + uint8_t ones[1] = { 0xff }; + ur_bsr_t bsr = { .left = sizeof(ones), .bytes = ones }; + uint8_t out; + ur_cue_res_e res; + + res = ur_bsr_bit(&bsr, &out); + ret &= _bsr_bit_check("bsr bit ones 1", &bsr, 1, 1, ur_cue_good, res, 1, out); + + res = ur_bsr_bit(&bsr, &out); + ret &= _bsr_bit_check("bsr bit ones 2", &bsr, 2, 2, ur_cue_good, res, 1, out); + + res = ur_bsr_bit(&bsr, &out); + ret &= _bsr_bit_check("bsr bit ones 3", &bsr, 3, 3, ur_cue_good, res, 1, out); + + res = ur_bsr_bit(&bsr, &out); + ret &= _bsr_bit_check("bsr bit ones 4", &bsr, 4, 4, ur_cue_good, res, 1, out); + + res = ur_bsr_bit(&bsr, &out); + ret &= _bsr_bit_check("bsr bit ones 5", &bsr, 5, 5, ur_cue_good, res, 1, out); + + res = ur_bsr_bit(&bsr, &out); + ret &= _bsr_bit_check("bsr bit ones 6", &bsr, 6, 6, ur_cue_good, res, 1, out); + + res = ur_bsr_bit(&bsr, &out); + ret &= _bsr_bit_check("bsr bit ones 7", &bsr, 7, 7, ur_cue_good, res, 1, out); + + res = ur_bsr_bit(&bsr, &out); + ret &= _bsr_bit_check("bsr bit ones 8", &bsr, 0, 8, ur_cue_good, res, 1, out); + + res = ur_bsr_bit(&bsr, &out); + ret &= _bsr_bit_check("bsr bit ones 9", &bsr, 0, 8, ur_cue_gone, res, 0, 0); + + return ret; +} + +/* +** read a bit 8 times from a bitstream initialized to all zeros, +** checking invariants and result after each read. +*/ +static int +_test_bsr_bit_zeros(void) +{ + int ret = 1; + uint8_t ones[1] = { 0x0 }; + ur_bsr_t bsr = { .left = sizeof(ones), .bytes = ones }; + uint8_t out; + ur_cue_res_e res; + + res = ur_bsr_bit(&bsr, &out); + ret &= _bsr_bit_check("bsr bit ones 1", &bsr, 1, 1, ur_cue_good, res, 0, out); + + res = ur_bsr_bit(&bsr, &out); + ret &= _bsr_bit_check("bsr bit ones 2", &bsr, 2, 2, ur_cue_good, res, 0, out); + + res = ur_bsr_bit(&bsr, &out); + ret &= _bsr_bit_check("bsr bit ones 3", &bsr, 3, 3, ur_cue_good, res, 0, out); + + res = ur_bsr_bit(&bsr, &out); + ret &= _bsr_bit_check("bsr bit ones 4", &bsr, 4, 4, ur_cue_good, res, 0, out); + + res = ur_bsr_bit(&bsr, &out); + ret &= _bsr_bit_check("bsr bit ones 5", &bsr, 5, 5, ur_cue_good, res, 0, out); + + res = ur_bsr_bit(&bsr, &out); + ret &= _bsr_bit_check("bsr bit ones 6", &bsr, 6, 6, ur_cue_good, res, 0, out); + + res = ur_bsr_bit(&bsr, &out); + ret &= _bsr_bit_check("bsr bit ones 7", &bsr, 7, 7, ur_cue_good, res, 0, out); + + res = ur_bsr_bit(&bsr, &out); + ret &= _bsr_bit_check("bsr bit ones 8", &bsr, 0, 8, ur_cue_good, res, 0, out); + + res = ur_bsr_bit(&bsr, &out); + ret &= _bsr_bit_check("bsr bit ones 9", &bsr, 0, 8, ur_cue_gone, res, 0, 0); + + return ret; +} + +/* +** read a bit 8 times from a bitstream initialized to alternating zeros and ones, +** checking invariants and result after each read. +*/ +static int +_test_bsr_bit_alt(void) +{ + int ret = 1; + uint8_t ones[1] = { 0xaa }; + ur_bsr_t bsr = { .left = sizeof(ones), .bytes = ones }; + uint8_t out; + ur_cue_res_e res; + + res = ur_bsr_bit(&bsr, &out); + ret &= _bsr_bit_check("bsr bit ones 1", &bsr, 1, 1, ur_cue_good, res, 0, out); + + res = ur_bsr_bit(&bsr, &out); + ret &= _bsr_bit_check("bsr bit ones 2", &bsr, 2, 2, ur_cue_good, res, 1, out); + + res = ur_bsr_bit(&bsr, &out); + ret &= _bsr_bit_check("bsr bit ones 3", &bsr, 3, 3, ur_cue_good, res, 0, out); + + res = ur_bsr_bit(&bsr, &out); + ret &= _bsr_bit_check("bsr bit ones 4", &bsr, 4, 4, ur_cue_good, res, 1, out); + + res = ur_bsr_bit(&bsr, &out); + ret &= _bsr_bit_check("bsr bit ones 5", &bsr, 5, 5, ur_cue_good, res, 0, out); + + res = ur_bsr_bit(&bsr, &out); + ret &= _bsr_bit_check("bsr bit ones 6", &bsr, 6, 6, ur_cue_good, res, 1, out); + + res = ur_bsr_bit(&bsr, &out); + ret &= _bsr_bit_check("bsr bit ones 7", &bsr, 7, 7, ur_cue_good, res, 0, out); + + res = ur_bsr_bit(&bsr, &out); + ret &= _bsr_bit_check("bsr bit ones 8", &bsr, 0, 8, ur_cue_good, res, 1, out); + + res = ur_bsr_bit(&bsr, &out); + ret &= _bsr_bit_check("bsr bit ones 9", &bsr, 0, 8, ur_cue_gone, res, 0, 0); + + return ret; +} + +static int +_test_bsr_bit(void) +{ + return _test_bsr_bit_ones() + & _test_bsr_bit_zeros() + & _test_bsr_bit_alt(); +} + +/* +** check bitstream-reader test invariants, after (maybe) reading +** of the end of the stream. +*/ +static int +_bsr_bit_any_check(const char* cap, ur_bsr_t *bsr, uint8_t off, uint64_t bits, uint8_t exp, uint8_t val) +{ + int ret = 1; + + if ( !ur_bsr_sane(bsr) ) { + fprintf(stderr, "%s: insane off=%u left=%" PRIu64 " bits=%" PRIu64 "\r\n", + cap, bsr->off, bsr->left, bsr->bits); + ret = 0; + } + + if ( exp != val ) { + fprintf(stderr, "%s: not equal (%02x, %02x) off=%u left=%" PRIu64 " byte=%02x bits=%" PRIu64 "\r\n", + cap, exp, val, bsr->off, bsr->left, bsr->left ? bsr->bytes[0] : 0, bsr->bits); + ret = 0; + } + + if ( off != bsr->off ) { + fprintf(stderr, "%s: offset fail (%u, %u)\r\n", cap, off, bsr->off); + ret = 0; + } + + if ( bits != bsr->bits ) { + fprintf(stderr, "%s: bits fail (%" PRIu64 ", %" PRIu64 ")\r\n", cap, bits, bsr->bits); + ret = 0; + } + + return ret; +} + +/* +** read a bit 17 times from a bitstream initialized to 8 ones, +** checking invariants and result after each read. +*/ +static int +_test_bsr_bit_any_ones(void) +{ + int ret = 1; + uint8_t ones[1] = { 0xff }; + ur_bsr_t bsr = { .left = sizeof(ones), .bytes = ones }; + uint8_t out; + + ret &= _bsr_bit_any_check("bsr bit-any ones init", &bsr, 0, 0, 0, 0); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any ones 1", &bsr, 1, 1, 1, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any ones 2", &bsr, 2, 2, 1, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any ones 3", &bsr, 3, 3, 1, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any ones 4", &bsr, 4, 4, 1, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any ones 5", &bsr, 5, 5, 1, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any ones 6", &bsr, 6, 6, 1, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any ones 7", &bsr, 7, 7, 1, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any ones 8", &bsr, 0, 8, 1, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any ones off 9", &bsr, 0, 9, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any ones off 10", &bsr, 0, 10, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any ones off 11", &bsr, 0, 11, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any ones off 12", &bsr, 0, 12, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any ones off 13", &bsr, 0, 13, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any ones off 14", &bsr, 0, 14, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any ones off 15", &bsr, 0, 15, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any ones off 16", &bsr, 0, 16, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any ones off 17", &bsr, 0, 17, 0, out); + + return ret; +} + +/* +** read a bit 17 times from a bitstream initialized to 8 zeros, +** checking invariants and result after each read. +*/ +static int +_test_bsr_bit_any_zeros(void) +{ + int ret = 1; + uint8_t ones[1] = { 0x0 }; + ur_bsr_t bsr = { .left = sizeof(ones), .bytes = ones }; + uint8_t out; + + ret &= _bsr_bit_any_check("bsr bit-any zeros init", &bsr, 0, 0, 0, 0); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any zeros 1", &bsr, 1, 1, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any zeros 2", &bsr, 2, 2, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any zeros 3", &bsr, 3, 3, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any zeros 4", &bsr, 4, 4, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any zeros 5", &bsr, 5, 5, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any zeros 6", &bsr, 6, 6, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any zeros 7", &bsr, 7, 7, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any zeros 8", &bsr, 0, 8, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any zeros off 9", &bsr, 0, 9, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any zeros off 10", &bsr, 0, 10, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any zeros off 11", &bsr, 0, 11, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any zeros off 12", &bsr, 0, 12, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any zeros off 13", &bsr, 0, 13, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any zeros off 14", &bsr, 0, 14, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any zeros off 15", &bsr, 0, 15, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any zeros off 16", &bsr, 0, 16, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any zeros off 17", &bsr, 0, 17, 0, out); + + return ret; +} + +/* +** read a bit 17 times from a bitstream initialized to 8 bits of alternating, +** ones and zeros, checking invariants and result after each read. +*/ +static int +_test_bsr_bit_any_alt(void) +{ + int ret = 1; + uint8_t ones[1] = { 0xaa }; + ur_bsr_t bsr = { .left = sizeof(ones), .bytes = ones }; + uint8_t out; + + ret &= _bsr_bit_any_check("bsr bit-any alt init", &bsr, 0, 0, 0, 0); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any alt 1", &bsr, 1, 1, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any alt 2", &bsr, 2, 2, 1, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any alt 3", &bsr, 3, 3, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any alt 4", &bsr, 4, 4, 1, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any alt 5", &bsr, 5, 5, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any alt 6", &bsr, 6, 6, 1, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any alt 7", &bsr, 7, 7, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any alt 8", &bsr, 0, 8, 1, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any alt off 9", &bsr, 0, 9, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any alt off 10", &bsr, 0, 10, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any alt off 11", &bsr, 0, 11, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any alt off 12", &bsr, 0, 12, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any alt off 13", &bsr, 0, 13, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any alt off 14", &bsr, 0, 14, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any alt off 15", &bsr, 0, 15, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any alt off 16", &bsr, 0, 16, 0, out); + + out = ur_bsr_bit_any(&bsr); + ret &= _bsr_bit_any_check("bsr bit-any alt off 17", &bsr, 0, 17, 0, out); + + return ret; +} + +static int +_test_bsr_bit_any(void) +{ + return _test_bsr_bit_any_ones() + & _test_bsr_bit_any_zeros() + & _test_bsr_bit_any_alt(); +} + +/* +** subsequents bitstream-reader tests assume the correctnesss of +** ur_bsr_bit_any(), and compare the output of a bit-at-a-time +** "golden master" with that of the relevant, higher-level operation. +** +** XX the "golden" master implementations shouldn't be in bitstream module, +** as we don't intend to run them, but it's kind of weird implement them +** in the test itself. +** +*/ +static int +_bsr_cmp_any_check(const char* cap, uint8_t off, uint8_t len, ur_bsr_t *a, ur_bsr_t *b) +{ + int ret = 1; + + if ( !ur_bsr_sane(a) ) { + fprintf(stderr, "%s: off %u, len %u a insane off=%u left=%" PRIu64 " bits=%" PRIu64 "\r\n", + cap, off, len, a->off, a->left, a->bits); + ret = 0; + } + + if ( !ur_bsr_sane(b) ) { + fprintf(stderr, "%s: off %u, len %u a insane off=%u left=%" PRIu64 " bits=%" PRIu64 "\r\n", + cap, off, len, b->off, b->left, b->bits); + ret = 0; + } + + if ( a->off != b->off ) { + fprintf(stderr, "%s: off %u len %u: offset fail (%u, %u)\r\n", + cap, off, len, a->off, b->off); + ret = 0; + } + + if ( a->left != b->left ) { + fprintf(stderr, "%s: off %u len %u: left fail (%" PRIu64 ", %" PRIu64 ")\r\n", + cap, off, len, a->left, b->left); + ret = 0; + } + + if ( a->bits != b->bits ) { + fprintf(stderr, "%s: off %u len %u: bits fail (%" PRIu64 ", %" PRIu64 ")\r\n", + cap, off, len, a->bits, b->bits); + ret = 0; + } + + if ( a->bytes != b->bytes ) { + fprintf(stderr, "%s: off %u len %u: bytes fail (%p, %p)\r\n", + cap, off, len, a->bytes, b->bytes); + ret = 0; + } + + return ret; +} + +/* +** ur_bsr8_any golden master +*/ +static uint8_t +_bsr8_any_slow(ur_bsr_t *bsr, uint8_t len) +{ + uint8_t i, out = 0; + + len = ur_min(8, len); + + for ( i = 0; i < len; i++ ) { + out ^= ur_bsr_bit_any(bsr) << i; + } + + return out; +} + +/* +** from a bitstream-reader initialized with varying values/lengths/offsets, +** read a varying numbers of bits via ur_bsr8_any and master, comparing +** the results and respective states each time. +*/ +static int +_test_bsr8_loop(const char *cap, uint8_t len, uint8_t val) +{ + int ret = 1; + uint8_t *bytes; + ur_bsr_t a, b; + uint8_t c, d, i, j; + + bytes = malloc(len); + memset(bytes, val, len); + + for ( i = 0; i < 8; i++) { + for ( j = 0; j <= 8; j++ ) { + a.left = b.left = len; + a.bytes = b.bytes = bytes; + a.off = a.bits = b.off = b.bits = i; + + c = _bsr8_any_slow(&a, j); + d = ur_bsr8_any(&b, j); + + ret &= _bsr_cmp_any_check(cap, i, j, &a, &b); + + if ( c != d ) { + fprintf(stderr, "%s: off %u, len %u not equal (%02x, %02x) off=%u left=%" PRIu64 " byte=%02x bits=%" PRIu64 "\r\n", + cap, i, j, c, d, b.off, b.left, b.left ? b.bytes[0] : 0, b.bits); + ret = 0; + } + } + } + + free(bytes); + + return ret; +} + +static int +_test_bsr8(void) +{ + return _test_bsr8_loop("bsr8 ones 1", 1, 0xff) + & _test_bsr8_loop("bsr8 ones 2", 2, 0xff) + & _test_bsr8_loop("bsr8 zeros 1", 1, 0x0) + & _test_bsr8_loop("bsr8 zeros 2", 2, 0x0) + & _test_bsr8_loop("bsr8 alt-1 1", 1, 0xaa) + & _test_bsr8_loop("bsr8 alt-1 2", 2, 0xaa) + & _test_bsr8_loop("bsr8 alt-2 1", 1, 0x55) + & _test_bsr8_loop("bsr8 alt-2 2", 2, 0x55); +} + +/* +** ur_bsr32_any golden master +*/ +static uint32_t +_bsr32_any_slow(ur_bsr_t *bsr, uint8_t len) +{ + uint32_t out = 0; + uint8_t i; + + len = ur_min(32, len); + + for ( i = 0; i < len; i++ ) { + out ^= (uint32_t)ur_bsr_bit_any(bsr) << i; + } + + return out; +} + +/* +** from a bitstream-reader initialized with varying values/lengths/offsets, +** read a varying numbers of bits via ur_bsr32_any and master, comparing +** the results and respective states each time. +*/ +static int +_test_bsr32_loop(const char *cap, uint8_t len, uint8_t val) +{ + int ret = 1; + uint8_t *bytes; + ur_bsr_t a, b; + uint32_t c, d; + uint8_t i, j; + + bytes = malloc(len); + memset(bytes, val, len); + + for ( i = 0; i < 8; i++) { + for ( j = 0; j <= 32; j++ ) { + a.left = b.left = len; + a.bytes = b.bytes = bytes; + a.off = a.bits = b.off = b.bits = i; + + c = _bsr32_any_slow(&a, j); + d = ur_bsr32_any(&b, j); + + ret &= _bsr_cmp_any_check(cap, i, j, &a, &b); + + if ( c != d ) { + fprintf(stderr, "%s: off %u, len %u not equal (%08x, %08x) off=%u left=%" PRIu64 " byte=%02x bits=%" PRIu64 "\r\n", + cap, i, j, c, d, b.off, b.left, b.left ? b.bytes[0] : 0, b.bits); + ret = 0; + } + } + } + + free(bytes); + + return ret; +} + +static int +_test_bsr32(void) +{ + return _test_bsr32_loop("bsr32 ones 1", 1, 0xff) + & _test_bsr32_loop("bsr32 ones 2", 2, 0xff) + & _test_bsr32_loop("bsr32 ones 3", 3, 0xff) + & _test_bsr32_loop("bsr32 ones 4", 4, 0xff) + & _test_bsr32_loop("bsr32 zeros 1", 1, 0x0) + & _test_bsr32_loop("bsr32 zeros 2", 2, 0x0) + & _test_bsr32_loop("bsr32 zeros 3", 3, 0x0) + & _test_bsr32_loop("bsr32 zeros 4", 4, 0x0) + & _test_bsr32_loop("bsr32 alt-1 1", 1, 0xaa) + & _test_bsr32_loop("bsr32 alt-1 2", 2, 0xaa) + & _test_bsr32_loop("bsr32 alt-1 3", 3, 0xaa) + & _test_bsr32_loop("bsr32 alt-1 4", 4, 0xaa) + & _test_bsr32_loop("bsr32 alt-2 1", 1, 0x55) + & _test_bsr32_loop("bsr32 alt-2 2", 2, 0x55) + & _test_bsr32_loop("bsr32 alt-2 3", 3, 0x55) + & _test_bsr32_loop("bsr32 alt-2 4", 4, 0x55); +} + +/* +** ur_bsr64_any golden master +*/ +static uint64_t +_bsr64_any_slow(ur_bsr_t *bsr, uint8_t len) +{ + uint64_t out = 0; + uint8_t i; + + len = ur_min(64, len); + + for ( i = 0; i < len; i++ ) { + out ^= (uint64_t)ur_bsr_bit_any(bsr) << i; + } + + return out; +} + +/* +** from a bitstream-reader initialized with varying values/lengths/offsets, +** read a varying numbers of bits via ur_bsr64_any and master, comparing +** the results and respective states each time. +*/ +static int +_test_bsr64_loop(const char *cap, uint8_t len, uint8_t val) +{ + int ret = 1; + uint8_t *bytes; + ur_bsr_t a, b; + uint64_t c, d; + uint8_t i, j; + + bytes = malloc(len); + memset(bytes, val, len); + + for ( i = 0; i < 8; i++) { + for ( j = 0; j <= 64; j++ ) { + a.left = b.left = len; + a.bytes = b.bytes = bytes; + a.off = a.bits = b.off = b.bits = i; + + c = _bsr64_any_slow(&a, j); + d = ur_bsr64_any(&b, j); + + ret &= _bsr_cmp_any_check(cap, i, j, &a, &b); + + if ( c != d ) { + fprintf(stderr, "%s: off %u, len %u not equal (%016" PRIx64", %016" PRIx64") off=%u left=%" PRIu64 " byte=%02x bits=%" PRIu64 "\r\n", + cap, i, j, c, d, b.off, b.left, b.left ? b.bytes[0] : 0, b.bits); + ret = 0; + } + } + } + + free(bytes); + + return ret; +} + +static int +_test_bsr64(void) +{ + return _test_bsr64_loop("bsr64 ones 1", 1, 0xff) + & _test_bsr64_loop("bsr64 ones 2", 2, 0xff) + & _test_bsr64_loop("bsr64 ones 3", 3, 0xff) + & _test_bsr64_loop("bsr64 ones 4", 4, 0xff) + & _test_bsr64_loop("bsr64 ones 5", 5, 0xff) + & _test_bsr64_loop("bsr64 ones 6", 6, 0xff) + & _test_bsr64_loop("bsr64 ones 7", 7, 0xff) + & _test_bsr64_loop("bsr64 ones 8", 8, 0xff) + & _test_bsr64_loop("bsr64 zeros 1", 1, 0x0) + & _test_bsr64_loop("bsr64 zeros 2", 2, 0x0) + & _test_bsr64_loop("bsr64 zeros 3", 3, 0x0) + & _test_bsr64_loop("bsr64 zeros 4", 4, 0x0) + & _test_bsr64_loop("bsr64 zeros 5", 5, 0x0) + & _test_bsr64_loop("bsr64 zeros 6", 6, 0x0) + & _test_bsr64_loop("bsr64 zeros 7", 7, 0x0) + & _test_bsr64_loop("bsr64 zeros 8", 8, 0x0) + & _test_bsr64_loop("bsr64 alt-1 1", 1, 0xaa) + & _test_bsr64_loop("bsr64 alt-1 2", 2, 0xaa) + & _test_bsr64_loop("bsr64 alt-1 3", 3, 0xaa) + & _test_bsr64_loop("bsr64 alt-1 4", 4, 0xaa) + & _test_bsr64_loop("bsr64 alt-1 5", 5, 0xaa) + & _test_bsr64_loop("bsr64 alt-1 6", 6, 0xaa) + & _test_bsr64_loop("bsr64 alt-1 7", 7, 0xaa) + & _test_bsr64_loop("bsr64 alt-1 8", 8, 0xaa) + & _test_bsr64_loop("bsr64 alt-2 1", 1, 0x55) + & _test_bsr64_loop("bsr64 alt-2 2", 2, 0x55) + & _test_bsr64_loop("bsr64 alt-2 3", 3, 0x55) + & _test_bsr64_loop("bsr64 alt-2 4", 4, 0x55) + & _test_bsr64_loop("bsr64 alt-2 5", 5, 0x55) + & _test_bsr64_loop("bsr64 alt-2 6", 6, 0x55) + & _test_bsr64_loop("bsr64 alt-2 7", 7, 0x55) + & _test_bsr64_loop("bsr64 alt-2 8", 8, 0x55); +} + +/* +** ur_bsr_bytes_any golden master +*/ +static void +_bsr_bytes_any_slow(ur_bsr_t *bsr, uint64_t len, uint8_t *out) +{ + uint64_t i, len_byt = len >> 3, len_bit = ur_mask_3(len); + + for ( i = 0; i < len_byt; i++ ) { + out[i] = _bsr8_any_slow(bsr, 8); + } + + if ( len_bit ) { + out[len_byt] = _bsr8_any_slow(bsr, len_bit); + } +} + +/* +** from a bitstream-reader initialized with varying values/lengths/offsets, +** read a varying numbers of bits via ur_bsr_bytes_any and master, comparing +** the results and respective states each time. +*/ +static int +_test_bsr_bytes_any_loop(const char *cap, uint8_t len, uint8_t val) +{ + int ret = 1; + uint64_t max = (len << 3) + 7; + ur_bsr_t a, b; + uint8_t *bytes, *c, *d; + uint8_t i, j, k; + + c = malloc(1 + len); + d = malloc(1 + len); + bytes = malloc(len); + memset(bytes, val, len); + + for ( i = 0; i < 8; i++) { + for ( j = 1; j <= max; j++ ) { + a.left = b.left = len; + a.bytes = b.bytes = len ? bytes : 0; + a.off = b.off = len ? i : 0; + a.bits = b.bits = i; + memset(c, 0x0, len); + memset(d, 0x0, len); + + _bsr_bytes_any_slow(&a, j, c); + ur_bsr_bytes_any(&b, j, d); + + ret &= _bsr_cmp_any_check(cap, i, j, &a, &b); + + if ( memcmp(c, d, len) ) { + fprintf(stderr, "%s: off %u, len %u not equal off=%u left=%" PRIu64 " bits=%" PRIu64 "\r\n", + cap, i, j, b.off, b.left, b.bits); + fprintf(stderr, " a: { "); + for ( k = 0; k < len; k++ ) { + fprintf(stderr, "%02x, ", c[k]); + } + fprintf(stderr, "}\r\n"); + fprintf(stderr, " b: { "); + for ( k = 0; k < len; k++ ) { + fprintf(stderr, "%02x, ", d[k]); + } + fprintf(stderr, "}\r\n"); + ret = 0; + } + } + } + + free(bytes); + free(d); + free(c); + + return ret; +} + +static int +_test_bsr_bytes_any(void) +{ + return _test_bsr_bytes_any_loop("bsr bytes nought", 0, 0x0) + & _test_bsr_bytes_any_loop("bsr bytes ones odd", 3, 0xff) + & _test_bsr_bytes_any_loop("bsr bytes ones even", 4, 0xff) + & _test_bsr_bytes_any_loop("bsr bytes zeros odd", 5, 0x0) + & _test_bsr_bytes_any_loop("bsr bytes zeros even", 6, 0x0) + & _test_bsr_bytes_any_loop("bsr bytes alt 1 odd", 7, 0xaa) + & _test_bsr_bytes_any_loop("bsr bytes alt 1 even", 8, 0xaa) + & _test_bsr_bytes_any_loop("bsr bytes alt 2 odd", 9, 0x55) + & _test_bsr_bytes_any_loop("bsr bytes alt 2 even", 10, 0x55); +} + +/* +** from a bitstream-reader initialized with varying values/lengths/offsets, +** skip a varying numbers of bits via ur_bsr_skip_any and read the same via +** ur_bsr_bytes_any master, comparing the respective states each time. +*/ +static int +_test_bsr_skip_any_loop(const char *cap, uint8_t len, uint8_t val) +{ + int ret = 1; + uint64_t max = (len << 3) + 7; + ur_bsr_t a, b; + uint8_t *bytes, *c; + uint8_t i, j; + + c = malloc(1 + len); + bytes = malloc(len); + memset(bytes, val, len); + + for ( i = 0; i < 8; i++) { + for ( j = 1; j <= max; j++ ) { + a.left = b.left = len; + a.bytes = b.bytes = len ? bytes : 0; + a.off = b.off = len ? i : 0; + a.bits = b.bits = i; + memset(c, 0x0, len); + + _bsr_bytes_any_slow(&a, j, c); + ur_bsr_skip_any(&b, j); + + ret &= _bsr_cmp_any_check(cap, i, j, &a, &b); + } + } + + free(bytes); + free(c); + + return ret; +} + +static int +_test_bsr_skip_any(void) +{ + return _test_bsr_skip_any_loop("bsr skip nought", 0, 0x0) + & _test_bsr_skip_any_loop("bsr skip ones odd", 3, 0xff) + & _test_bsr_skip_any_loop("bsr skip ones even", 4, 0xff) + & _test_bsr_skip_any_loop("bsr skip zeros odd", 5, 0x0) + & _test_bsr_skip_any_loop("bsr skip zeros even", 6, 0x0) + & _test_bsr_skip_any_loop("bsr skip alt 1 odd", 7, 0xaa) + & _test_bsr_skip_any_loop("bsr skip alt 1 even", 8, 0xaa) + & _test_bsr_skip_any_loop("bsr skip alt 2 odd", 9, 0x55) + & _test_bsr_skip_any_loop("bsr skip alt 2 even", 10, 0x55); +} + +/* +** compare the result and state of two reads (that were not permitted +** to read past the end of the stream). +*/ +static int +_bsr_cmp_check(const char* cap, + uint8_t off, + uint8_t len, + ur_bsr_t *a, + ur_bsr_t *b, + uint8_t c, + uint8_t d, + ur_cue_res_e e, + ur_cue_res_e f) +{ + int ret = 1; + + if ( !ur_bsr_sane(a) ) { + fprintf(stderr, "%s: off %u, len %u a insane off=%u left=%" PRIu64 " bits=%" PRIu64 "\r\n", + cap, off, len, a->off, a->left, a->bits); + ret = 0; + } + + if ( !ur_bsr_sane(b) ) { + fprintf(stderr, "%s: off %u, len %u a insane off=%u left=%" PRIu64 " bits=%" PRIu64 "\r\n", + cap, off, len, b->off, b->left, b->bits); + ret = 0; + } + + if ( e != f ) { + fprintf(stderr, "%s: off %u, len %u ret not equal (%s, %s) off=%u left=%" PRIu64 " bits=%" PRIu64 "\r\n", + cap, off, len, + (ur_cue_good == e) ? "good" : "gone", + (ur_cue_good == f) ? "good" : "gone", + b->off, b->left, b->bits); + ret = 0; + } + + if ( (ur_cue_good == e) && (c != d) ) { + fprintf(stderr, "%s: off %u, len %u val not equal (%02x, %02x) off=%u left=%" PRIu64 " bits=%" PRIu64 "\r\n", + cap, off, len, c, d, b->off, b->left, b->bits); + ret = 0; + } + + if ( a->off != b->off ) { + fprintf(stderr, "%s: off %u len %u: offset fail (%u, %u)\r\n", + cap, off, len, a->off, b->off); + ret = 0; + } + + if ( a->left != b->left ) { + fprintf(stderr, "%s: off %u len %u: left fail (%" PRIu64 ", %" PRIu64 ")\r\n", + cap, off, len, a->left, b->left); + ret = 0; + } + + if ( a->bits != b->bits ) { + fprintf(stderr, "%s: off %u len %u: bits fail (%" PRIu64 ", %" PRIu64 ")\r\n", + cap, off, len, a->bits, b->bits); + ret = 0; + } + + if ( a->bytes != b->bytes ) { + fprintf(stderr, "%s: off %u len %u: bytes fail (%p, %p)\r\n", + cap, off, len, a->bytes, b->bytes); + ret = 0; + } + + + return ret; +} + +/* +** ur_bsr_log golden master +*/ +static ur_cue_res_e +_bsr_log_slow(ur_bsr_t *bsr, uint8_t *out) +{ + ur_cue_res_e res; + uint8_t bit, i = 0; + + do { + if ( ur_cue_good != (res = ur_bsr_bit(bsr, &bit)) ) { + return res; + } + else if ( bit ) { + *out = i; + return ur_cue_good; + } + } + while ( ++i ); + + return ur_cue_meme; +} + +/* +** from a bitstream-reader initialized with varying values/lengths/offsets, +** read a varying numbers of bits via ur_bsr_log and master, comparing +** the results and respective states each time. +*/ +static int +_test_bsr_log_loop(const char *cap, uint8_t len, uint8_t val) +{ + int ret = 1; + ur_bsr_t a, b; + uint8_t *bytes, c, d; + uint8_t i, j; + ur_cue_res_e e, f; + + bytes = malloc(len); + + for ( i = 0; i < 8; i++) { + for ( j = 0; j < len; j++ ) { + a.left = b.left = len; + a.bytes = b.bytes = bytes; + a.off = a.bits = b.off = b.bits = i; + + memset(bytes, 0x0, j); + memset(bytes + j, val, len - j); + + e = _bsr_log_slow(&a, &c); + f = ur_bsr_log(&b, &d); + + ret &= _bsr_cmp_check(cap, i, j, &a, &b, c, d, e, f); + } + } + + free(bytes); + + return ret; +} + +static int +_test_bsr_log(void) +{ + int ret = _test_bsr_log_loop("bsr log nought", 0, 0x0) + & _test_bsr_log_loop("bsr log ones odd", 3, 0xff) + & _test_bsr_log_loop("bsr log ones even", 4, 0xff) + & _test_bsr_log_loop("bsr log ones big", 50, 0xff) + & _test_bsr_log_loop("bsr log zeros odd", 5, 0x0) + & _test_bsr_log_loop("bsr log zeros even", 6, 0x0) + & _test_bsr_log_loop("bsr log zeros big", 50, 0x0); + + { + uint8_t i, j = 5; + char cap[1024]; + + for ( i = 0; i < 8; i++ ) { + snprintf(cap, 1000, "bsr log 1<<%u odd", i); + ret &= _test_bsr_log_loop((const char*)cap, j++, 0x1 << i); + + snprintf(cap, 1000, "bsr log 1<<%u even", i); + ret &= _test_bsr_log_loop((const char*)cap, j++, 0x1 << i); + + snprintf(cap, 1000, "bsr log 1<<%u big", i); + ret &= _test_bsr_log_loop((const char*)cap, 50, 0x1 << i); + } + } + + return ret; +} + +/* +** ur_bsr_tag golden master +*/ +static ur_cue_res_e +_bsr_tag_slow(ur_bsr_t *bsr, ur_cue_tag_e *out) +{ + ur_cue_res_e res; + uint8_t bit; + + if ( ur_cue_good != (res = ur_bsr_bit(bsr, &bit)) ) { + return res; + } + else if ( 0 == bit ) { + *out = ur_jam_atom; + return ur_cue_good; + } + else if ( ur_cue_good != (res = ur_bsr_bit(bsr, &bit)) ) { + return res; + } + + *out = ( 0 == bit ) ? ur_jam_cell : ur_jam_back; + return ur_cue_good; +} + +/* +** from a bitstream-reader initialized with varying values/lengths/offsets, +** read a jam type tag via ur_bsr_tag and master, comparing the results and +** respective states each time. +*/ +static int +_test_bsr_tag_loop(const char *cap, uint8_t len, uint8_t val) +{ + int ret = 1; + ur_bsr_t a, b; + uint8_t *bytes; + ur_cue_tag_e c, d; + uint8_t i, j; + ur_cue_res_e e, f; + + bytes = malloc(len); + + for ( i = 0; i < 8; i++) { + for ( j = 0; j < len; j++ ) { + a.left = b.left = len; + a.bytes = b.bytes = bytes; + a.off = a.bits = b.off = b.bits = i; + + memset(bytes, 0x0, j); + memset(bytes + j, val, len - j); + + e = _bsr_tag_slow(&a, &c); + f = ur_bsr_tag(&b, &d); + + ret &= _bsr_cmp_check(cap, i, j, &a, &b, c, d, e, f); + } + } + + free(bytes); + + return ret; +} + +static int +_test_bsr_tag(void) +{ + return _test_bsr_tag_loop("bsr tag nought", 0, 0x0) + & _test_bsr_tag_loop("bsr tag ones 1", 1, 0xff) + & _test_bsr_tag_loop("bsr tag ones 2", 2, 0xff) + & _test_bsr_tag_loop("bsr tag zeros 1", 1, 0x0) + & _test_bsr_tag_loop("bsr tag zeros 2", 2, 0x0) + & _test_bsr_tag_loop("bsr tag alt-1 1", 1, 0xaa) + & _test_bsr_tag_loop("bsr tag alt-1 2", 2, 0xaa) + & _test_bsr_tag_loop("bsr tag alt-2 1", 1, 0x55) + & _test_bsr_tag_loop("bsr tag alt-2 2", 2, 0x55); +} + +static int +_test_bsr(void) +{ + return _test_bsr_bit() + & _test_bsr_bit_any() + & _test_bsr_bytes_any() + & _test_bsr_skip_any() + & _test_bsr8() + & _test_bsr32() + & _test_bsr64() + & _test_bsr_log() + & _test_bsr_tag(); +} + +static int +_test_jam_spec(const char *cap, + ur_root_t *r, + ur_nref ref, + size_t len, + const uint8_t *res) +{ + uint64_t i, out_len; + uint8_t *out; + int ret; + + ur_jam(r, ref, &out_len, &out); + + if ( 0 != memcmp(out, res, len) ) { + fprintf(stderr, "\033[31mjam %s fail\033[0m\r\n", cap); + + fprintf(stderr, " actual: { "); + for ( i = 0; i < out_len; i++ ) { + fprintf(stderr, "0x%x, ", out[i]); + } + fprintf(stderr, "}\r\n"); + fprintf(stderr, " expect: { "); + for ( i = 0; i < len; i++ ) { + fprintf(stderr, "0x%x, ", res[i]); + } + fprintf(stderr, "}\r\n"); + + ret = 0; + } + else { + ret = 1; + } + + free(out); + + return ret; +} + +static int +_test_cue_spec(const char *cap, + ur_root_t* r, + ur_nref ref, + size_t len, + const uint8_t *res) +{ + int ret = 1; + ur_nref out; + + if ( !ur_cue_test(len, res) ) { + fprintf(stderr, "\033[31mcue %s fail 1\033[0m\r\n", cap); + ret = 0; + } + + if ( ur_cue_good != ur_cue(r, len, res, &out) ) { + fprintf(stderr, "\033[31mcue %s fail 2\033[0m\r\n", cap); + ret = 0; + } + else if ( ref != out ) { + fprintf(stderr, "\033[31mcue %s fail 3 ref=%" PRIu64 " out=%" PRIu64 " \033[0m\r\n", cap, ref, out); + ret = 0; + } + + return ret; +} + +/* +** test jam/cue correctness and roundtrips across a variety of inputs +*/ +static int +_test_jam_cue(void) +{ + ur_root_t *r = ur_root_init(); + int ret = 1; + +# define NC(a, b) ur_cons(r, a, b) +# define NT(a, b, c) NC(a, NC(b, c)) + +# define FAST 0x74736166 +# define FULL 0x6c6c7566 + +# define TEST_CASE(a, b) \ + const char* cap = a; \ + ur_nref ref = b; \ + ret &= _test_jam_spec(cap, r, ref, sizeof(res), res); \ + ret &= _test_cue_spec(cap, r, ref, sizeof(res), res); \ + + { + uint8_t res[1] = { 0x2 }; + TEST_CASE("0", 0); + } + + { + uint8_t res[1] = { 0xc }; + TEST_CASE("1", 1); + } + + { + uint8_t res[1] = { 0x48 }; + TEST_CASE("2", 2); + } + + { + uint8_t res[6] = { 0xc0, 0x37, 0xb, 0x9b, 0xa3, 0x3 }; + TEST_CASE("%fast", FAST); + } + + { + uint8_t res[6] = { 0xc0, 0x37, 0xab, 0x63, 0x63, 0x3 }; + TEST_CASE("%full", FULL); + } + + { + uint8_t res[1] = { 0x29 }; + TEST_CASE("[0 0]", NC(0, 0)); + } + + { + uint8_t res[2] = { 0x31, 0x3 }; + TEST_CASE("[1 1]", NC(1, 1)); + } + + { + uint8_t res[2] = { 0x21, 0xd1 }; + TEST_CASE("[2 3]", NC(2, 3)); + } + + { + uint8_t res[11] = { 0x1, 0xdf, 0x2c, 0x6c, 0x8e, 0xe, 0x7c, 0xb3, 0x3a, 0x36, 0x36 }; + TEST_CASE("[%fast %full]", NC(FAST, FULL)); + } + + { + uint8_t res[2] = { 0x71, 0xcc }; + TEST_CASE("[1 1 1]", NC(1, NC(1, 1))); + } + + { + uint8_t res[12] = { 0x1, 0xdf, 0x2c, 0x6c, 0x8e, 0x1e, 0xf0, 0xcd, 0xea, 0xd8, 0xd8, 0x93 }; + TEST_CASE("[%fast %full %fast]", NC(FAST, NC(FULL, FAST))); + } + + { + uint8_t res[6] = { 0xa5, 0x35, 0x19, 0xf3, 0x18, 0x5 }; + TEST_CASE("[[0 0] [[0 0] 1 1] 1 1]", NC(NC(0, 0), NC(NC(NC(0, 0), NC(1, 1)), NC(1, 1)))); + } + + { + uint8_t res[14] = { 0x15, 0x17, 0xb2, 0xd0, 0x85, 0x59, 0xb8, 0x61, 0x87, 0x5f, 0x10, 0x54, 0x55, 0x5 }; + TEST_CASE("deep", NC(NC(NC(1, NC(NC(2, NC(NC(3, NC(NC(4, NC(NT(5, 6, NC(7, NC(NC(8, 0), 0))), 0)), 0)), 0)), 0)), 0), 0)); + } + + { + uint8_t inp[33] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }; + uint8_t res[35] = { 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8 }; + TEST_CASE("wide", ur_coin_bytes(r, sizeof(inp), inp)); + } + + { + uint8_t inp[16] = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0xa8, 0xab, 0x60, 0xef, 0x2d, 0xd, 0x0, 0x0, 0x80 }; + uint8_t res[19] = { 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x18, 0x50, 0x57, 0xc1, 0xde, 0x5b, 0x1a, 0x0, 0x0, 0x0, 0x1 }; + TEST_CASE("date", ur_coin_bytes(r, sizeof(inp), inp)); + } + + ur_root_free(r); + + return ret; +} + +static int +_test_ur(void) +{ + int ret = 1; + + if ( !_test_bsw() ) { + fprintf(stderr, "ur test bsw failed\r\n"); + ret = 0; + } + + if ( !_test_bsr() ) { + fprintf(stderr, "ur test bsr failed\r\n"); + ret = 0; + } + + if ( !_test_jam_cue() ) { + fprintf(stderr, "ur test jam/cue failed\r\n"); + ret = 0; + } + + return ret; +} + +int +main(int argc, char* argv[]) +{ + if ( !_test_ur() ) { + fprintf(stderr, "ur test failed\r\n"); + return 1; + } + + fprintf(stderr, "ur ok\n"); + return 0; +} diff --git a/vere/pkg/ur/ur.h b/vere/pkg/ur/ur.h new file mode 100644 index 0000000..cfa0c47 --- /dev/null +++ b/vere/pkg/ur/ur.h @@ -0,0 +1,11 @@ +/// @file + +#ifndef UR_H +#define UR_H + +#include "bitstream.h" +#include "defs.h" +#include "hashcons.h" +#include "serial.h" + +#endif /* ifndef UR_H */ diff --git a/vere/pkg/vere/PACE b/vere/pkg/vere/PACE new file mode 100644 index 0000000..b2d1a77 --- /dev/null +++ b/vere/pkg/vere/PACE @@ -0,0 +1 @@ +once diff --git a/vere/pkg/vere/VERSION b/vere/pkg/vere/VERSION new file mode 100644 index 0000000..68209c0 --- /dev/null +++ b/vere/pkg/vere/VERSION @@ -0,0 +1 @@ +1.17 \ No newline at end of file diff --git a/vere/pkg/vere/ames_tests.c b/vere/pkg/vere/ames_tests.c new file mode 100644 index 0000000..e76622f --- /dev/null +++ b/vere/pkg/vere/ames_tests.c @@ -0,0 +1,102 @@ +/// @file + +#include "./io/ames.c" + +/* _setup(): prepare for tests. +*/ +static void +_setup(void) +{ + u3m_init(1 << 22); + u3m_pave(c3y); +} + +/* _test_ames(): spot check ames helpers +*/ +static void +_test_ames(void) +{ + u3_lane lan_u; + lan_u.pip_w = 0x7f000001; + lan_u.por_s = 12345; + + u3_noun lan = u3_ames_encode_lane(lan_u); + u3_lane nal_u = u3_ames_decode_lane(u3k(lan)); + u3_lane nal_u2 = u3_ames_decode_lane(lan); + + if ( !(lan_u.pip_w == nal_u.pip_w && lan_u.por_s == nal_u.por_s) ) { + fprintf(stderr, "ames: lane fail (a)\r\n"); + fprintf(stderr, "pip: %d, por: %d\r\n", nal_u.pip_w, nal_u.por_s); + exit(1); + } +} + +static c3_i +_test_stun_addr_roundtrip(u3_lane* inn_u) +{ + c3_c res_c[16] = {0}; + c3_y rep_y[40]; + c3_y req_y[20] = {0}; + c3_i ret_i = 0; + + u3_stun_make_response(req_y, inn_u, rep_y); + + u3_lane lan_u; + + if ( c3n == u3_stun_find_xor_mapped_address(rep_y, sizeof(rep_y), &lan_u) ) { + fprintf(stderr, "stun: failed to find addr in response\r\n"); + ret_i = 1; + } + else { + if ( lan_u.pip_w != inn_u->pip_w ) { + fprintf(stderr, "stun: addr mismatch %x %x\r\n", lan_u.pip_w, inn_u->pip_w); + ret_i = 1; + } + + if ( lan_u.por_s != inn_u->por_s ) { + fprintf(stderr, "stun: addr mismatch %u %u\r\n", lan_u.por_s, inn_u->por_s); + ret_i = 1; + } + } + + return ret_i; +} + +static c3_i +_test_stun(void) +{ + u3_lane inn_u = { .pip_w = 0x7f000001, .por_s = 13337 }; + c3_w len_w = 256; + + while ( len_w-- ) { + if ( _test_stun_addr_roundtrip(&inn_u) ) { + return 1; + } + + inn_u.pip_w++; + inn_u.por_s++; + } + + return 0; +} + +/* main(): run all test cases. +*/ +int +main(int argc, char* argv[]) +{ + _setup(); + + _test_ames(); + + if ( _test_stun() ) { + fprintf(stderr, "ames: stun tests failed\r\n"); + } + + // GC + // + u3m_grab(u3_none); + + fprintf(stderr, "ames okeedokee\n"); + return 0; +} diff --git a/vere/pkg/vere/arena.h b/vere/pkg/vere/arena.h new file mode 100644 index 0000000..58d6b05 --- /dev/null +++ b/vere/pkg/vere/arena.h @@ -0,0 +1,47 @@ +#ifndef VERE_ARENA_H +#define VERE_ARENA_H + +#include +#include +#include +#include +#include + +typedef struct { + char* dat; + char* beg; + char* end; +} arena; + +#define new(a, t, n) (t*)arena_alloc(a, sizeof(t), _Alignof(t), n) + +static void* arena_alloc(arena* a, ptrdiff_t size, ptrdiff_t align, ptrdiff_t count) +{ + ptrdiff_t padding = -(uintptr_t)a->beg & (align - 1); + ptrdiff_t available = a->end - a->beg - padding; + if (available < 0 || count > available/size) { + abort(); + } + void *p = a->beg + padding; + a->beg += padding + count*size; + return p; + // return memset(p, 0, count*size); +} + +static arena arena_create(ptrdiff_t cap) +{ + arena a = {0}; + a.dat = (char*)malloc(cap); + a.beg = a.dat; + a.end = a.beg ? a.beg+cap : 0; + return a; +} + + +static void arena_free(arena* a) +{ + free(a->dat); + a = (arena*)0; +} + +#endif diff --git a/vere/pkg/vere/auto.c b/vere/pkg/vere/auto.c new file mode 100644 index 0000000..0083e39 --- /dev/null +++ b/vere/pkg/vere/auto.c @@ -0,0 +1,445 @@ +/// @file + +#include "vere.h" + +#include "noun.h" + +/* u3_auto_plan(): enqueue an ovum. +*/ +u3_ovum* +u3_auto_plan(u3_auto* car_u, u3_ovum *egg_u) +{ + egg_u->car_u = car_u; + + if ( !car_u->ent_u ) { + u3_assert(!car_u->ext_u); + + egg_u->pre_u = egg_u->nex_u = 0; + car_u->ent_u = car_u->ext_u = egg_u; + car_u->dep_w = 1; + } + // enqueue at driver entry (back of the line) + // + // [pre_u] points towards [ext_u] (back in time) + // [nex_u] points towards [ent_u] (forward in time) + // + else { + egg_u->nex_u = 0; + egg_u->pre_u = car_u->ent_u; + + car_u->ent_u->nex_u = egg_u; + car_u->ent_u = egg_u; + car_u->dep_w++; + } + + u3_pier_spin(car_u->pir_u); + + return egg_u; +} + +/* u3_auto_redo(): retry an ovum. +*/ +u3_ovum* +u3_auto_redo(u3_auto* car_u, u3_ovum *egg_u) +{ + u3_assert( egg_u->car_u == car_u ); + + egg_u->try_w++; + + if ( !car_u->ent_u ) { + u3_assert(!car_u->ext_u); + + egg_u->pre_u = egg_u->nex_u = 0; + car_u->ent_u = car_u->ext_u = egg_u; + car_u->dep_w = 1; + } + // enqueue at driver exit (front of the line) + // + else { + egg_u->nex_u = car_u->ext_u; + egg_u->pre_u = 0; + + car_u->ext_u->pre_u = egg_u; + car_u->ext_u = egg_u; + car_u->dep_w++; + } + + u3_pier_spin(car_u->pir_u); + + return egg_u; +} + +/* u3_auto_peer(): subscribe to updates. +*/ +void +u3_auto_peer(u3_ovum* egg_u, + void* ptr_v, + u3_ovum_peer news_f, + u3_ovum_bail bail_f) +{ + egg_u->ptr_v = ptr_v; + egg_u->cb_u.news_f = news_f; + egg_u->cb_u.bail_f = bail_f; +} + +/* u3_auto_bail_slog(): print a bail notification. +*/ +void +u3_auto_bail_slog(u3_ovum* egg_u, u3_noun lud) +{ + c3_c* car_c = u3r_string(egg_u->car_u->nam_m); + u3_noun dul = lud; + c3_w len_w = 1; + + while ( u3_nul != dul ) { + u3l_log("%s: bail %u", car_c, len_w++); + u3_pier_punt_goof(car_c, u3k(u3h(dul))); + + dul = u3t(dul); + } + + u3_pier_punt_ovum(car_c, u3k(egg_u->wir), u3k(u3h(egg_u->cad))); + + u3z(lud); + c3_free(car_c); +} + +/* u3_auto_bail(): notify driver that [egg_u] crashed. +*/ +void +u3_auto_bail(u3_ovum* egg_u, u3_noun lud) +{ + // optional + // + if ( egg_u->cb_u.bail_f ) { + c3_l cod_l = u3a_lush(egg_u->car_u->nam_m); + egg_u->cb_u.bail_f(egg_u, lud); + u3a_lop(cod_l); + } + else { + u3_auto_bail_slog(egg_u, lud); + u3_ovum_free(egg_u); + } +} + +/* _auto_news(): notify driver of ovum status +*/ +static void +_auto_news(u3_ovum* egg_u, u3_ovum_news new_e) +{ + // optional + // + if ( egg_u->cb_u.news_f ) { + c3_l cod_l = u3a_lush(egg_u->car_u->nam_m); + egg_u->cb_u.news_f(egg_u, new_e); + u3a_lop(cod_l); + } +} + +/* u3_auto_done(): notify driver of [egg_u] completion. +*/ +void +u3_auto_done(u3_ovum* egg_u) +{ + _auto_news(egg_u, u3_ovum_done); + u3_ovum_free(egg_u); +} + +/* u3_auto_work(): notify driver of [egg_u] commencement. +*/ +void +u3_auto_work(u3_ovum* egg_u) +{ + _auto_news(egg_u, u3_ovum_work); +} + +/* u3_auto_drop(): dequeue and dispose an ovum. +*/ +void +u3_auto_drop(u3_auto* car_u, u3_ovum* egg_u) +{ + { + u3_assert( egg_u->car_u ); + + // the previous ovum (or [ext_u]) will point to our next ovum + // + if ( !egg_u->pre_u ) { + egg_u->car_u->ext_u = egg_u->nex_u; + } + else { + egg_u->pre_u->nex_u = egg_u->nex_u; + } + + // the next ovum (or [ent_u]) will point to our previous ovum + // + if ( !egg_u->nex_u ) { + egg_u->car_u->ent_u = egg_u->pre_u; + } + else { + egg_u->nex_u->pre_u = egg_u->pre_u; + } + + egg_u->car_u->dep_w--; + + egg_u->nex_u = egg_u->pre_u = 0; + } + + // notify driver if not self-caused + // + if ( egg_u->car_u && ( car_u != egg_u->car_u ) ) { + _auto_news(egg_u, u3_ovum_drop); + } + + u3_ovum_free(egg_u); +} + +/* u3_auto_next(): select an ovum, dequeue and construct. +*/ +u3_ovum* +u3_auto_next(u3_auto* car_u, u3_noun* ovo) +{ + while ( car_u ) { + if ( !car_u->ext_u ) { + car_u = car_u->nex_u; + continue; + } + else { + u3_ovum* egg_u = car_u->ext_u; + + u3_assert( !egg_u->pre_u ); + + if ( egg_u->nex_u ) { + egg_u->nex_u->pre_u = 0; + car_u->ext_u = egg_u->nex_u; + car_u->dep_w--; + } + else { + car_u->ent_u = car_u->ext_u = 0; + car_u->dep_w = 0; + } + + egg_u->nex_u = 0; + + u3_auto_work(egg_u); + + *ovo = u3nc(u3nc(u3k(egg_u->tar), u3k(egg_u->wir)), + u3k(egg_u->cad)); + + return egg_u; + } + } + + return 0; +} + +/* _auto_kick_lost(): print details of unroutable effect. RETAIN +*/ +static void +_auto_kick_lost(u3_noun pax, u3_noun fav) +{ + u3_noun tox = u3do("spat", u3k(pax)); + c3_c* tag_c = u3r_string(u3h(fav)); + c3_c* pax_c = u3r_string(tox); + + u3l_log("kick: lost %%%s on %s", tag_c, pax_c); + + c3_free(pax_c); + c3_free(tag_c); + u3z(tox); +} + +/* _auto_kick(): kick with leak label. +*/ +static c3_o +_auto_kick(u3_auto* car_u, u3_noun pax, u3_noun fav) +{ + c3_l cod_l = u3a_lush(car_u->nam_m); + c3_o kik_o = car_u->io.kick_f(car_u, pax, fav); + u3a_lop(cod_l); + return kik_o; +} + +/* u3_auto_kick(): route effects to a linked driver. RETAIN +*/ +void +u3_auto_kick(u3_auto* car_u, u3_noun act) +{ + u3_auto* rac_u = car_u; + u3_noun fec, pax, wir, cad; + + while ( u3_nul != act ) { + fec = u3h(act); + u3x_cell(fec, &pax, &cad); + + // XX temporary backwards compatibility, remove + // + if ( c3n == u3r_p(pax, u3_blip, &wir) ) { + wir = pax; + } + + while ( c3n == _auto_kick(car_u, u3k(wir), u3k(cad)) ) { + if ( car_u->nex_u ) { + car_u = car_u->nex_u; + continue; + } + else { + _auto_kick_lost(wir, cad); + break; + } + } + + car_u = rac_u; + act = u3t(act); + } +} + +/* u3_auto_live(): check if all drivers are live. +*/ +c3_o +u3_auto_live(u3_auto* car_u) +{ + while ( car_u ) { + if ( c3n == car_u->liv_o ) { + return c3n; + } + + car_u = car_u->nex_u; + } + + return c3y; +} + +/* u3_auto_talk(): start all drivers. +*/ +void +u3_auto_talk(u3_auto* car_u) +{ + c3_l cod_l; + + while ( car_u ) { + cod_l = u3a_lush(car_u->nam_m); + car_u->io.talk_f(car_u); + u3a_lop(cod_l); + car_u = car_u->nex_u; + } +} + +/* u3_auto_exit(): close all drivers. +*/ +void +u3_auto_exit(u3_auto* car_u) +{ + u3_auto* nex_u; + c3_l cod_l; + + while ( car_u ) { + nex_u = car_u->nex_u; + + { + u3_ovum *egg_u = car_u->ext_u; + u3_ovum *xen_u; + + while ( egg_u ) { + xen_u = egg_u->nex_u; + u3_ovum_free(egg_u); + egg_u = xen_u; + } + } + + cod_l = u3a_lush(car_u->nam_m); + car_u->io.exit_f(car_u); + u3a_lop(cod_l); + + car_u = nex_u; + } +} + +/* u3_auto_info(): status info as a (list mass), all drivers. +*/ +u3_noun +u3_auto_info(u3_auto* car_u) +{ + u3_noun lit = u3_nul; + + while ( car_u ) { + if ( car_u->io.info_f ) { + lit = u3nc(u3_pier_mass(car_u->nam_m, car_u->io.info_f(car_u)), lit); + } + car_u = car_u->nex_u; + } + return u3kb_flop(lit); +} + +/* u3_auto_slog(): print status info. +*/ +void +u3_auto_slog(u3_auto* car_u) +{ + u3_auto* nex_u; + + u3l_log(" drivers:"); + + while ( car_u ) { + nex_u = car_u->nex_u; + + u3l_log(" %.*s: live=%s, queue=%u", + u3r_met(3, car_u->nam_m), + (c3_c*)&car_u->nam_m, + ( c3y == car_u->liv_o ) ? "&" : "|", + car_u->dep_w); + + // XX details + // + if ( car_u->io.slog_f ) { + c3_l cod_l = u3a_lush(car_u->nam_m); + car_u->io.slog_f(car_u); + u3a_lop(cod_l); + } + + car_u = nex_u; + } +} + +/* _auto_link(): validate and link initalized [car_u] +*/ +static u3_auto* +_auto_link(u3_auto* car_u, u3_pier* pir_u, u3_auto* nex_u) +{ + // skip null drivers + // + if ( !car_u ) { + return nex_u; + } + + // assert that io callbacks are present (info_f and slog_f are optional) + // + u3_assert( car_u->io.talk_f ); + u3_assert( car_u->io.kick_f ); + u3_assert( car_u->io.exit_f ); + + car_u->pir_u = pir_u; + car_u->nex_u = nex_u; + return car_u; +} + +/* u3_auto_init(): initialize all drivers. +*/ +u3_auto* +u3_auto_init(u3_pier* pir_u) +{ + u3_auto* car_u = 0; + + car_u = _auto_link(u3_hind_io_init(pir_u), pir_u, car_u); + car_u = _auto_link(u3_behn_io_init(pir_u), pir_u, car_u); + car_u = _auto_link(u3_conn_io_init(pir_u), pir_u, car_u); + car_u = _auto_link(u3_lick_io_init(pir_u), pir_u, car_u); + car_u = _auto_link(u3_mesa_io_init(pir_u), pir_u, car_u); + car_u = _auto_link(u3_ames_io_init(pir_u), pir_u, car_u); + car_u = _auto_link(u3_http_io_init(pir_u), pir_u, car_u); + car_u = _auto_link(u3_cttp_io_init(pir_u), pir_u, car_u); + car_u = _auto_link(u3_unix_io_init(pir_u), pir_u, car_u); + car_u = _auto_link(u3_term_io_init(pir_u), pir_u, car_u); + car_u = _auto_link(u3_fore_io_init(pir_u), pir_u, car_u); + + return car_u; +} diff --git a/vere/pkg/vere/benchmarks.c b/vere/pkg/vere/benchmarks.c new file mode 100644 index 0000000..9898217 --- /dev/null +++ b/vere/pkg/vere/benchmarks.c @@ -0,0 +1,465 @@ +/// @file + +#include "noun.h" +#include "jets/q.h" +#include "ur/ur.h" +#include "vere.h" + +/* _setup(): prepare for tests. +*/ +static void +_setup(void) +{ + u3m_boot_lite(1 << 24); +} + +/* _ames_writ_ex(): |hi packet from fake ~zod to fake ~nec +*/ +static u3_noun +_ames_writ_ex(void) +{ + c3_y bod_y[63] = { + 0x30, 0x90, 0x2d, 0x0, 0x0, 0x0, 0x1, 0x0, 0x9, 0xc0, 0xd0, + 0x0, 0x4, 0x40, 0x30, 0xf4, 0xa, 0x3d, 0x45, 0x86, 0x66, 0x2c, + 0x2, 0x38, 0xf8, 0x72, 0xa3, 0x9, 0xf6, 0x6, 0xf3, 0x0, 0xbe, + 0x67, 0x61, 0x49, 0x50, 0x4, 0x3c, 0x13, 0xb2, 0x96, 0x42, 0x1b, + 0x62, 0xac, 0x97, 0xff, 0x24, 0xeb, 0x69, 0x1b, 0xb2, 0x60, 0x72, + 0xa, 0x53, 0xdf, 0xe8, 0x8a, 0x9c, 0x6f, 0xb3 + }; + u3_noun lan = u3nc(0, 1); + u3_noun cad = u3nt(c3__send, lan, u3i_bytes(sizeof(bod_y), bod_y)); + u3_noun wir = u3nt(c3__newt, 0x1234, u3_nul); + u3_noun ovo = u3nc(u3nc(u3_blip, wir), cad); + u3_noun wen; + + { + struct timeval tim_u; + gettimeofday(&tim_u, 0); + wen = u3_time_in_tv(&tim_u); + } + + return u3nt(c3__work, 0, u3nc(wen, ovo)); +} + +static void +_jam_bench(void) +{ + struct timeval b4, f2, d0; + c3_w mil_w, i_w, max_w = 10000; + u3_noun wit = _ames_writ_ex(); + + fprintf(stderr, "\r\njam microbenchmark:\r\n"); + + { + gettimeofday(&b4, 0); + + { + u3i_slab sab_u; + + for ( i_w = 0; i_w < max_w; i_w++ ) { + u3s_jam_fib(&sab_u, wit); + u3i_slab_free(&sab_u); + } + } + + gettimeofday(&f2, 0); + timersub(&f2, &b4, &d0); + mil_w = (d0.tv_sec * 1000) + (d0.tv_usec / 1000); + fprintf(stderr, " jam og: %u ms\r\n", mil_w); + } + + { + gettimeofday(&b4, 0); + + { + c3_d len_d; + c3_y* byt_y; + + for ( i_w = 0; i_w < max_w; i_w++ ) { + u3s_jam_xeno(wit, &len_d, &byt_y); + c3_free(byt_y); + } + } + + gettimeofday(&f2, 0); + timersub(&f2, &b4, &d0); + mil_w = (d0.tv_sec * 1000) + (d0.tv_usec / 1000); + fprintf(stderr, " jam xeno: %u ms\r\n", mil_w); + } + + while ( 1 ) { + ur_root_t* rot_u = ur_root_init(); + c3_d len_d; + c3_y* byt_y; + ur_nref ref; + + u3s_jam_xeno(wit, &len_d, &byt_y); + if ( ur_cue_good != ur_cue(rot_u, len_d, byt_y, &ref) ) { + fprintf(stderr, " jam bench: cue failed wtf\r\n"); + break; + } + + c3_free(byt_y); + + { + gettimeofday(&b4, 0); + + for ( i_w = 0; i_w < max_w; i_w++ ) { + ur_jam(rot_u, ref, &len_d, &byt_y); + c3_free(byt_y); + } + + gettimeofday(&f2, 0); + timersub(&f2, &b4, &d0); + mil_w = (d0.tv_sec * 1000) + (d0.tv_usec / 1000); + fprintf(stderr, " jam cons: %u ms\r\n", mil_w); + } + + { + gettimeofday(&b4, 0); + + { + ur_jam_t *jam_u = ur_jam_init(rot_u); + c3_d len_d; + c3_y* byt_y; + + for ( i_w = 0; i_w < max_w; i_w++ ) { + ur_jam_with(jam_u, ref, &len_d, &byt_y); + c3_free(byt_y); + } + + ur_jam_done(jam_u); + } + + gettimeofday(&f2, 0); + timersub(&f2, &b4, &d0); + mil_w = (d0.tv_sec * 1000) + (d0.tv_usec / 1000); + fprintf(stderr, " jam cons with: %u ms\r\n", mil_w); + } + + ur_root_free(rot_u); + break; + } + + u3z(wit); +} + +static void +_cue_bench(void) +{ + struct timeval b4, f2, d0; + c3_w mil_w, i_w, max_w = 20000; + u3_atom vat = u3ke_jam(_ames_writ_ex()); + + fprintf(stderr, "\r\ncue microbenchmark:\r\n"); + + { + gettimeofday(&b4, 0); + + for ( i_w = 0; i_w < max_w; i_w++ ) { + u3z(u3s_cue(vat)); + } + + gettimeofday(&f2, 0); + timersub(&f2, &b4, &d0); + mil_w = (d0.tv_sec * 1000) + (d0.tv_usec / 1000); + fprintf(stderr, " cue og: %u ms\r\n", mil_w); + } + + { + gettimeofday(&b4, 0); + + for ( i_w = 0; i_w < max_w; i_w++ ) { + u3z(u3s_cue_atom(vat)); + } + + gettimeofday(&f2, 0); + timersub(&f2, &b4, &d0); + mil_w = (d0.tv_sec * 1000) + (d0.tv_usec / 1000); + fprintf(stderr, " cue atom: %u ms\r\n", mil_w); + } + + { + gettimeofday(&b4, 0); + + { + c3_w len_w = u3r_met(3, vat); + // XX assumes little-endian + // + c3_y* byt_y = ( c3y == u3a_is_cat(vat) ) + ? (c3_y*)&vat + : (c3_y*)((u3a_atom*)u3a_to_ptr(vat))->buf_w; + + for ( i_w = 0; i_w < max_w; i_w++ ) { + u3z(u3s_cue_xeno(len_w, byt_y)); + } + } + + gettimeofday(&f2, 0); + timersub(&f2, &b4, &d0); + mil_w = (d0.tv_sec * 1000) + (d0.tv_usec / 1000); + fprintf(stderr, " cue xeno: %u ms\r\n", mil_w); + } + + { + gettimeofday(&b4, 0); + + { + u3_cue_xeno* sil_u = u3s_cue_xeno_init(); + + c3_w len_w = u3r_met(3, vat); + // XX assumes little-endian + // + c3_y* byt_y = ( c3y == u3a_is_cat(vat) ) + ? (c3_y*)&vat + : (c3_y*)((u3a_atom*)u3a_to_ptr(vat))->buf_w; + + for ( i_w = 0; i_w < max_w; i_w++ ) { + u3z(u3s_cue_xeno_with(sil_u, len_w, byt_y)); + } + + u3s_cue_xeno_done(sil_u); + } + + gettimeofday(&f2, 0); + timersub(&f2, &b4, &d0); + mil_w = (d0.tv_sec * 1000) + (d0.tv_usec / 1000); + fprintf(stderr, " cue xeno with: %u ms\r\n", mil_w); + } + + { + gettimeofday(&b4, 0); + + { + c3_w len_w = u3r_met(3, vat); + // XX assumes little-endian + // + c3_y* byt_y = ( c3y == u3a_is_cat(vat) ) + ? (c3_y*)&vat + : (c3_y*)((u3a_atom*)u3a_to_ptr(vat))->buf_w; + + for ( i_w = 0; i_w < max_w; i_w++ ) { + ur_cue_test(len_w, byt_y); + } + } + + gettimeofday(&f2, 0); + timersub(&f2, &b4, &d0); + mil_w = (d0.tv_sec * 1000) + (d0.tv_usec / 1000); + fprintf(stderr, " cue test: %u ms\r\n", mil_w); + } + + { + gettimeofday(&b4, 0); + + { + ur_cue_test_t *t = ur_cue_test_init(); + + c3_w len_w = u3r_met(3, vat); + // XX assumes little-endian + // + c3_y* byt_y = ( c3y == u3a_is_cat(vat) ) + ? (c3_y*)&vat + : (c3_y*)((u3a_atom*)u3a_to_ptr(vat))->buf_w; + + for ( i_w = 0; i_w < max_w; i_w++ ) { + ur_cue_test_with(t, len_w, byt_y); + } + + ur_cue_test_done(t); + } + + gettimeofday(&f2, 0); + timersub(&f2, &b4, &d0); + mil_w = (d0.tv_sec * 1000) + (d0.tv_usec / 1000); + fprintf(stderr, " cue test with: %u ms\r\n", mil_w); + } + + { + gettimeofday(&b4, 0); + + { + ur_root_t* rot_u = ur_root_init(); + ur_nref ref; + c3_w len_w = u3r_met(3, vat); + // XX assumes little-endian + // + c3_y* byt_y = ( c3y == u3a_is_cat(vat) ) + ? (c3_y*)&vat + : (c3_y*)((u3a_atom*)u3a_to_ptr(vat))->buf_w; + + for ( i_w = 0; i_w < max_w; i_w++ ) { + ur_cue(rot_u, len_w, byt_y, &ref); + } + + ur_root_free(rot_u); + } + + gettimeofday(&f2, 0); + timersub(&f2, &b4, &d0); + mil_w = (d0.tv_sec * 1000) + (d0.tv_usec / 1000); + fprintf(stderr, " cue cons: %u ms\r\n", mil_w); + } + + { + gettimeofday(&b4, 0); + + { + ur_root_t* rot_u; + ur_nref ref; + c3_w len_w = u3r_met(3, vat); + // XX assumes little-endian + // + c3_y* byt_y = ( c3y == u3a_is_cat(vat) ) + ? (c3_y*)&vat + : (c3_y*)((u3a_atom*)u3a_to_ptr(vat))->buf_w; + + for ( i_w = 0; i_w < max_w; i_w++ ) { + rot_u = ur_root_init(); + ur_cue(rot_u, len_w, byt_y, &ref); + ur_root_free(rot_u); + } + } + + gettimeofday(&f2, 0); + timersub(&f2, &b4, &d0); + mil_w = (d0.tv_sec * 1000) + (d0.tv_usec / 1000); + fprintf(stderr, " cue re-cons: %u ms\r\n", mil_w); + } + + u3z(vat); +} + +static u3_noun +_cue_loop(u3_atom a) +{ + c3_w i_w, max_w = 20000; + + for ( i_w = 0; i_w < max_w; i_w++ ) { + u3z(u3s_cue(a)); + } + + return u3_blip; +} + +static u3_noun +_cue_atom_loop(u3_atom a) +{ + c3_w i_w, max_w = 20000; + + for ( i_w = 0; i_w < max_w; i_w++ ) { + u3z(u3s_cue_atom(a)); + } + + return u3_blip; +} + +static void +_cue_soft_bench(void) +{ + struct timeval b4, f2, d0; + u3_atom vat = u3ke_jam(_ames_writ_ex()); + c3_w mil_w; + + fprintf(stderr, "\r\ncue virtual microbenchmark:\r\n"); + + { + gettimeofday(&b4, 0); + + u3z(u3m_soft(0, _cue_loop, u3k(vat))); + + gettimeofday(&f2, 0); + timersub(&f2, &b4, &d0); + mil_w = (d0.tv_sec * 1000) + (d0.tv_usec / 1000); + fprintf(stderr, " cue virtual og: %u ms\r\n", mil_w); + } + + { + gettimeofday(&b4, 0); + + u3z(u3m_soft(0, _cue_atom_loop, u3k(vat))); + + gettimeofday(&f2, 0); + timersub(&f2, &b4, &d0); + mil_w = (d0.tv_sec * 1000) + (d0.tv_usec / 1000); + fprintf(stderr, " cue virtual atom: %u ms\r\n", mil_w); + } + + u3z(vat); +} + +static void +_edit_bench_impl(c3_w max_w) +{ + u3_assert( max_w && (c3y == u3a_is_cat(max_w)) ); + + c3_w* axe_w = c3_calloc(((max_w + 31) >> 5) << 2); + c3_w bit_w; + u3_noun lit = u3qb_reap(max_w, 1); + u3_noun axe; + + axe_w[0] = bit_w = 2; + + do { + axe = u3i_words((bit_w + 31) >> 5, axe_w); + lit = u3i_edit(lit, axe, 2); + u3z(axe); + + axe_w[bit_w >> 5] |= (c3_w)1 << (bit_w & 31); + bit_w++; + } + while ( bit_w <= max_w ); + + u3z(lit); + c3_free(axe_w); +} + +static void +_edit_bench(void) +{ + struct timeval b4, f2, d0; + c3_w mil_w; + + fprintf(stderr, "\r\nopcode 10 microbenchmark:\r\n"); + + { + gettimeofday(&b4, 0); + + _edit_bench_impl(1000); + + gettimeofday(&f2, 0); + timersub(&f2, &b4, &d0); + mil_w = (d0.tv_sec * 1000) + (d0.tv_usec / 1000); + fprintf(stderr, " opcode 10 1k list: %u ms\r\n", mil_w); + } + + { + gettimeofday(&b4, 0); + + _edit_bench_impl(10000); + + gettimeofday(&f2, 0); + timersub(&f2, &b4, &d0); + mil_w = (d0.tv_sec * 1000) + (d0.tv_usec / 1000); + fprintf(stderr, " opcode 10 10k list: %u ms\r\n", mil_w); + } +} + +/* main(): run all benchmarks +*/ +int +main(int argc, char* argv[]) +{ + _setup(); + + _jam_bench(); + _cue_bench(); + _cue_soft_bench(); + _edit_bench(); + + // GC + // + u3m_grab(u3_none); + + return 0; +} diff --git a/vere/pkg/vere/boot_tests.c b/vere/pkg/vere/boot_tests.c new file mode 100644 index 0000000..d9728d8 --- /dev/null +++ b/vere/pkg/vere/boot_tests.c @@ -0,0 +1,70 @@ +/// @file + +#include "ivory.h" +#include "noun.h" +#include "ur/ur.h" +#include "vere.h" + +/* _setup(): prepare for tests. +*/ +static void +_setup(void) +{ + c3_d len_d = u3_Ivory_pill_len; + c3_y* byt_y = u3_Ivory_pill; + u3_cue_xeno* sil_u; + u3_weak pil; + + u3C.wag_w |= u3o_hashless; + u3m_boot_lite(1 << 26); + sil_u = u3s_cue_xeno_init_with(ur_fib27, ur_fib28); + if ( u3_none == (pil = u3s_cue_xeno_with(sil_u, len_d, byt_y)) ) { + printf("*** fail _setup 1\n"); + exit(1); + } + u3s_cue_xeno_done(sil_u); + if ( c3n == u3v_boot_lite(pil) ) { + printf("*** fail _setup 2\n"); + exit(1); + } +} + +/* _test_lily(): test small noun parsing. +*/ +static void +_test_lily() +{ + c3_l lit_l; + c3_w big_w[] = {0, 0, 1}; + u3_noun big = u3i_words(3, big_w); + u3_noun cod = u3dc("scot", c3__uv, big); + + if ( c3y == u3v_lily(c3__uv, cod, &lit_l) ) { + printf("*** fail _test_lily-1\n"); + exit(1); + } + cod = u3dc("scot", c3__ud, 0x7fffffff); + if ( (c3n == u3v_lily(c3__ud, cod, &lit_l)) || + (0x7fffffff != lit_l) ) { + printf("*** fail _test_lily-2a\n"); + exit(1); + } + cod = u3dc("scot", c3__ux, u3i_word(0x80000000)); + if ( c3y == u3v_lily(c3__ux, cod, &lit_l) ) { + printf("*** fail _test_lily-2b\n"); + exit(1); + } +} + +/* main(): run all test cases. +*/ +int +main(int argc, char* argv[]) +{ + _setup(); + + _test_lily(); + + fprintf(stderr, "test boot: ok\n"); + return 0; +} diff --git a/vere/pkg/vere/build.zig b/vere/pkg/vere/build.zig new file mode 100644 index 0000000..47beea3 --- /dev/null +++ b/vere/pkg/vere/build.zig @@ -0,0 +1,262 @@ +const std = @import("std"); + +const wslay_version = "1.1.1"; +const wslay_version_define = + std.fmt.comptimePrint("-DWSLAY_VERSION=\"{s}\"", .{wslay_version}); + +pub fn build(b: *std.Build) !void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + const t = target.result; + + const copts: []const []const u8 = + b.option([]const []const u8, "copt", "") orelse &.{}; + const pace = b.option([]const u8, "pace", "") orelse + @panic("Missing required option: pace"); + const version = b.option([]const u8, "version", "") orelse + @panic("Missing required option: version"); + + const pkg_vere = b.addStaticLibrary(.{ + .name = "vere", + .target = target, + .optimize = optimize, + }); + + if (target.result.os.tag.isDarwin() and !target.query.isNative()) { + const macos_sdk = b.lazyDependency("macos_sdk", .{ + .target = target, + .optimize = optimize, + }); + if (macos_sdk != null) { + pkg_vere.addSystemIncludePath(macos_sdk.?.path("usr/include")); + pkg_vere.addLibraryPath(macos_sdk.?.path("usr/lib")); + pkg_vere.addFrameworkPath(macos_sdk.?.path("System/Library/Frameworks")); + } + } + + const pkg_c3 = b.dependency("pkg_c3", .{ + .target = target, + .optimize = optimize, + .copt = copts, + }); + + const pkg_ent = b.dependency("pkg_ent", .{ + .target = target, + .optimize = optimize, + .copt = copts, + }); + + const pkg_ur = b.dependency("pkg_ur", .{ + .target = target, + .optimize = optimize, + .copt = copts, + }); + + const pkg_noun = b.dependency("pkg_noun", .{ + .target = target, + .optimize = optimize, + .copt = copts, + }); + + const avahi = b.dependency("avahi", .{ + .target = target, + .optimize = optimize, + }); + + const curl = b.dependency("curl", .{ + .target = target, + .optimize = optimize, + }); + + const gmp = b.dependency("gmp", .{ + .target = target, + .optimize = optimize, + }); + + const h2o = b.dependency("h2o", .{ + .target = target, + .optimize = optimize, + }); + + const wslay = b.dependency("wslay", .{ + .target = target, + .optimize = optimize, + }); + + const libuv = b.dependency("libuv", .{ + .target = target, + .optimize = optimize, + }); + + const lmdb = b.dependency("lmdb", .{ + .target = target, + .optimize = optimize, + }); + + const natpmp = b.dependency("natpmp", .{ + .target = target, + .optimize = optimize, + }); + + const openssl = b.dependency("openssl", .{ + .target = target, + .optimize = optimize, + }); + + const urcrypt = b.dependency("urcrypt", .{ + .target = target, + .optimize = optimize, + }); + + const zlib = b.dependency("zlib", .{ + .target = target, + .optimize = optimize, + }); + + const pace_h = b.addWriteFile("pace.h", blk: { + var output = std.ArrayList(u8).init(b.allocator); + defer output.deinit(); + + try output.appendSlice(b.fmt( + \\#ifndef URBIT_PACE_H + \\#define URBIT_PACE_H + \\#define U3_VERE_PACE "{s}" + \\#endif + \\ + , .{pace})); + + break :blk try output.toOwnedSlice(); + }); + + const version_h = b.addWriteFile("version.h", blk: { + var output = std.ArrayList(u8).init(b.allocator); + defer output.deinit(); + + try output.appendSlice(b.fmt( + \\#ifndef URBIT_VERSION_H + \\#define URBIT_VERSION_H + \\#define URBIT_VERSION "{s}" + \\#endif + \\ + , .{version})); + + break :blk try output.toOwnedSlice(); + }); + + pkg_vere.addIncludePath(pace_h.getDirectory()); + pkg_vere.addIncludePath(version_h.getDirectory()); + pkg_vere.addIncludePath(b.path("")); + pkg_vere.addIncludePath(b.path("ivory")); + pkg_vere.addIncludePath(b.path("ca_bundle")); + pkg_vere.addIncludePath(wslay.path("lib/includes")); + + if (t.os.tag == .linux) { + pkg_vere.linkLibrary(avahi.artifact("dns-sd")); + } + pkg_vere.linkLibrary(natpmp.artifact("natpmp")); + pkg_vere.linkLibrary(curl.artifact("curl")); + pkg_vere.linkLibrary(gmp.artifact("gmp")); + pkg_vere.linkLibrary(h2o.artifact("h2o")); + pkg_vere.linkLibrary(wslay.artifact("wslay")); + pkg_vere.linkLibrary(libuv.artifact("libuv")); + pkg_vere.linkLibrary(lmdb.artifact("lmdb")); + pkg_vere.linkLibrary(openssl.artifact("ssl")); + pkg_vere.linkLibrary(urcrypt.artifact("urcrypt")); + pkg_vere.linkLibrary(zlib.artifact("z")); + pkg_vere.linkLibrary(pkg_c3.artifact("c3")); + pkg_vere.linkLibrary(pkg_ent.artifact("ent")); + pkg_vere.linkLibrary(pkg_ur.artifact("ur")); + pkg_vere.linkLibrary(pkg_noun.artifact("noun")); + pkg_vere.linkLibC(); + + var files = std.ArrayList([]const u8).init(b.allocator); + defer files.deinit(); + try files.appendSlice(&c_source_files); + if (t.os.tag == .macos) { + try files.appendSlice(&.{ + "platform/darwin/daemon.c", + "platform/darwin/ptty.c", + "platform/darwin/mach.c", + }); + } + if (t.os.tag == .linux) { + try files.appendSlice(&.{ + "platform/linux/daemon.c", + "platform/linux/ptty.c", + }); + } + + var flags = std.ArrayList([]const u8).init(b.allocator); + defer flags.deinit(); + try flags.appendSlice(&.{ + "-std=gnu23", + wslay_version_define, + }); + try flags.appendSlice(copts); + + pkg_vere.addCSourceFiles(.{ + .root = b.path(""), + .files = files.items, + .flags = flags.items, + }); + + for (install_headers) |h| pkg_vere.installHeader(b.path(h), h); + pkg_vere.installHeader(b.path("ivory/ivory.h"), "ivory.h"); + pkg_vere.installHeader(b.path("ca_bundle/ca_bundle.h"), "ca_bundle.h"); + pkg_vere.installHeader(pace_h.getDirectory().path(b, "pace.h"), "pace.h"); + pkg_vere.installHeader(version_h.getDirectory().path(b, "version.h"), "version.h"); + + b.installArtifact(pkg_vere); +} + +const c_source_files = [_][]const u8{ + "auto.c", + "ca_bundle/ca_bundle.c", + "dawn.c", + "db/lmdb.c", + "disk.c", + "foil.c", + "io/ames.c", + "io/ames/stun.c", + "io/behn.c", + "io/conn.c", + "io/cttp.c", + "io/fore.c", + "io/hind.c", + "io/http.c", + "io/lick.c", + "io/lss.c", + "io/mesa.c", + "io/mesa/bitset.c", + "io/mesa/pact.c", + "io/term.c", + "io/unix.c", + "ivory/ivory.c", + "king.c", + "lord.c", + "mars.c", + "mdns.c", + "melt.c", + "newt.c", + "pier.c", + "save.c", + "serf.c", + "time.c", + "ward.c", +}; + +const install_headers = [_][]const u8{ + "db/lmdb.h", + "dns_sd.h", + "io/ames/stun.h", + "io/lss.h", + "io/mesa/bitset.h", + "io/mesa/mesa.h", + "io/serial.h", + "arena.h", + "mars.h", + "mdns.h", + "serf.h", + "vere.h", + "verstable.h", +}; diff --git a/vere/pkg/vere/build.zig.zon b/vere/pkg/vere/build.zig.zon new file mode 100644 index 0000000..222f120 --- /dev/null +++ b/vere/pkg/vere/build.zig.zon @@ -0,0 +1,60 @@ +.{ + .name = "vere", + .version = "0.0.1", + .dependencies = .{ + .macos_sdk = .{ + .url = "https://github.com/joseluisq/macosx-sdks/releases/download/14.5/MacOSX14.5.sdk.tar.xz", + .hash = "N-V-__8AAKtK4FMzqcFsY_ZrpMg9bGH0h7BqZDXtVyAerMtM", + .lazy = true, + }, + .pkg_c3 = .{ + .path = "../c3", + }, + .pkg_ent = .{ + .path = "../ent", + }, + .pkg_ur = .{ + .path = "../ur", + }, + .pkg_noun = .{ + .path = "../noun", + }, + .avahi = .{ + .path = "../../ext/avahi", + }, + .curl = .{ + .path = "../../ext/curl", + }, + .gmp = .{ + .path = "../../ext/gmp", + }, + .h2o = .{ + .path = "../../ext/h2o", + }, + .wslay = .{ + .path = "../../ext/wslay", + }, + .libuv = .{ + .path = "../../ext/libuv", + }, + .lmdb = .{ + .path = "../../ext/lmdb", + }, + .natpmp = .{ + .path = "../../ext/natpmp", + }, + .openssl = .{ + .path = "../../ext/openssl", + }, + .urcrypt = .{ + .path = "../../ext/urcrypt", + }, + .zlib = .{ + .url = "https://github.com/allyourcodebase/zlib/archive/61e7df7e996ec5a5f13a653db3c419adb340d6ef.tar.gz", + .hash = "zlib-1.3.1-ZZQ7lbYMAAB1hTSOKSXAKAgHsfDcyWNH_37ojw5WSpgR", + }, + }, + .paths = .{ + "", + }, +} diff --git a/vere/pkg/vere/ca_bundle/ca_bundle.c b/vere/pkg/vere/ca_bundle/ca_bundle.c new file mode 100644 index 0000000..1278f70 --- /dev/null +++ b/vere/pkg/vere/ca_bundle/ca_bundle.c @@ -0,0 +1,4 @@ +#include "ca_bundle.h" +unsigned char include_ca_bundle_crt[] = { + 0x23, 0x23, 0x0a, 0x23, 0x23, 0x20, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x43, 0x41, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x0a, 0x23, 0x23, 0x0a, 0x23, 0x23, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x4d, 0x6f, 0x7a, 0x69, 0x6c, 0x6c, 0x61, 0x20, 0x61, 0x73, 0x20, 0x6f, 0x66, 0x3a, 0x20, 0x54, 0x75, 0x65, 0x20, 0x4a, 0x75, 0x6c, 0x20, 0x20, 0x32, 0x20, 0x30, 0x33, 0x3a, 0x31, 0x32, 0x3a, 0x30, 0x34, 0x20, 0x32, 0x30, 0x32, 0x34, 0x20, 0x47, 0x4d, 0x54, 0x0a, 0x23, 0x23, 0x0a, 0x23, 0x23, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x58, 0x2e, 0x35, 0x30, 0x39, 0x20, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x69, 0x65, 0x73, 0x0a, 0x23, 0x23, 0x20, 0x28, 0x43, 0x41, 0x29, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x73, 0x65, 0x20, 0x77, 0x65, 0x72, 0x65, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x4d, 0x6f, 0x7a, 0x69, 0x6c, 0x6c, 0x61, 0x27, 0x73, 0x20, 0x72, 0x6f, 0x6f, 0x74, 0x20, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x0a, 0x23, 0x23, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x28, 0x63, 0x65, 0x72, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x74, 0x78, 0x74, 0x29, 0x2e, 0x20, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x6f, 0x7a, 0x69, 0x6c, 0x6c, 0x61, 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x74, 0x72, 0x65, 0x65, 0x3a, 0x0a, 0x23, 0x23, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x68, 0x67, 0x2e, 0x6d, 0x6f, 0x7a, 0x69, 0x6c, 0x6c, 0x61, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x6d, 0x6f, 0x7a, 0x69, 0x6c, 0x6c, 0x61, 0x2d, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x2f, 0x72, 0x61, 0x77, 0x2d, 0x66, 0x69, 0x6c, 0x65, 0x2f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x2f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2f, 0x6e, 0x73, 0x73, 0x2f, 0x6c, 0x69, 0x62, 0x2f, 0x63, 0x6b, 0x66, 0x77, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x73, 0x2f, 0x63, 0x65, 0x72, 0x74, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x74, 0x78, 0x74, 0x0a, 0x23, 0x23, 0x0a, 0x23, 0x23, 0x20, 0x49, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x50, 0x45, 0x4d, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x0a, 0x23, 0x23, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6c, 0x79, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x63, 0x75, 0x72, 0x6c, 0x20, 0x2f, 0x20, 0x6c, 0x69, 0x62, 0x63, 0x75, 0x72, 0x6c, 0x20, 0x2f, 0x20, 0x70, 0x68, 0x70, 0x5f, 0x63, 0x75, 0x72, 0x6c, 0x2c, 0x20, 0x6f, 0x72, 0x20, 0x77, 0x69, 0x74, 0x68, 0x0a, 0x23, 0x23, 0x20, 0x61, 0x6e, 0x20, 0x41, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2b, 0x6d, 0x6f, 0x64, 0x5f, 0x73, 0x73, 0x6c, 0x20, 0x77, 0x65, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x23, 0x23, 0x20, 0x4a, 0x75, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x53, 0x4c, 0x43, 0x41, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x2e, 0x0a, 0x23, 0x23, 0x0a, 0x23, 0x23, 0x20, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6d, 0x6b, 0x2d, 0x63, 0x61, 0x2d, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x70, 0x6c, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x31, 0x2e, 0x32, 0x39, 0x2e, 0x0a, 0x23, 0x23, 0x20, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x3a, 0x20, 0x34, 0x35, 0x36, 0x66, 0x66, 0x30, 0x39, 0x35, 0x64, 0x64, 0x65, 0x36, 0x64, 0x64, 0x37, 0x33, 0x33, 0x35, 0x34, 0x63, 0x35, 0x63, 0x32, 0x38, 0x63, 0x37, 0x33, 0x64, 0x39, 0x63, 0x30, 0x36, 0x66, 0x35, 0x33, 0x62, 0x36, 0x31, 0x61, 0x38, 0x30, 0x33, 0x39, 0x36, 0x33, 0x34, 0x31, 0x34, 0x63, 0x62, 0x39, 0x31, 0x61, 0x31, 0x64, 0x39, 0x32, 0x39, 0x34, 0x35, 0x63, 0x64, 0x64, 0x33, 0x0a, 0x23, 0x23, 0x0a, 0x0a, 0x0a, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x44, 0x64, 0x54, 0x43, 0x43, 0x41, 0x6c, 0x32, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4c, 0x42, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x42, 0x46, 0x55, 0x74, 0x61, 0x77, 0x35, 0x51, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x46, 0x42, 0x51, 0x41, 0x77, 0x56, 0x7a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x51, 0x6b, 0x55, 0x78, 0x0a, 0x47, 0x54, 0x41, 0x58, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x45, 0x45, 0x64, 0x73, 0x62, 0x32, 0x4a, 0x68, 0x62, 0x46, 0x4e, 0x70, 0x5a, 0x32, 0x34, 0x67, 0x62, 0x6e, 0x59, 0x74, 0x63, 0x32, 0x45, 0x78, 0x45, 0x44, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x73, 0x54, 0x42, 0x31, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x78, 0x47, 0x7a, 0x41, 0x5a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x45, 0x6b, 0x64, 0x73, 0x0a, 0x62, 0x32, 0x4a, 0x68, 0x62, 0x46, 0x4e, 0x70, 0x5a, 0x32, 0x34, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x51, 0x54, 0x41, 0x65, 0x46, 0x77, 0x30, 0x35, 0x4f, 0x44, 0x41, 0x35, 0x4d, 0x44, 0x45, 0x78, 0x4d, 0x6a, 0x41, 0x77, 0x4d, 0x44, 0x42, 0x61, 0x46, 0x77, 0x30, 0x79, 0x4f, 0x44, 0x41, 0x78, 0x4d, 0x6a, 0x67, 0x78, 0x4d, 0x6a, 0x41, 0x77, 0x4d, 0x44, 0x42, 0x61, 0x4d, 0x46, 0x63, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x0a, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6b, 0x4a, 0x46, 0x4d, 0x52, 0x6b, 0x77, 0x46, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x78, 0x42, 0x48, 0x62, 0x47, 0x39, 0x69, 0x59, 0x57, 0x78, 0x54, 0x61, 0x57, 0x64, 0x75, 0x49, 0x47, 0x35, 0x32, 0x4c, 0x58, 0x4e, 0x68, 0x4d, 0x52, 0x41, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x77, 0x64, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x42, 0x4d, 0x52, 0x73, 0x77, 0x47, 0x51, 0x59, 0x44, 0x0a, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x4a, 0x48, 0x62, 0x47, 0x39, 0x69, 0x59, 0x57, 0x78, 0x54, 0x61, 0x57, 0x64, 0x75, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x77, 0x67, 0x67, 0x45, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x42, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x45, 0x4b, 0x41, 0x6f, 0x49, 0x42, 0x41, 0x51, 0x44, 0x61, 0x0a, 0x44, 0x75, 0x61, 0x5a, 0x6a, 0x63, 0x36, 0x6a, 0x34, 0x30, 0x2b, 0x4b, 0x66, 0x76, 0x76, 0x78, 0x69, 0x34, 0x4d, 0x6c, 0x61, 0x2b, 0x70, 0x49, 0x48, 0x2f, 0x45, 0x71, 0x73, 0x4c, 0x6d, 0x56, 0x45, 0x51, 0x53, 0x39, 0x38, 0x47, 0x50, 0x52, 0x34, 0x6d, 0x64, 0x6d, 0x7a, 0x78, 0x7a, 0x64, 0x7a, 0x78, 0x74, 0x49, 0x4b, 0x2b, 0x36, 0x4e, 0x69, 0x59, 0x36, 0x61, 0x72, 0x79, 0x6d, 0x41, 0x5a, 0x61, 0x76, 0x70, 0x78, 0x79, 0x30, 0x53, 0x79, 0x36, 0x73, 0x63, 0x0a, 0x54, 0x48, 0x41, 0x48, 0x6f, 0x54, 0x30, 0x4b, 0x4d, 0x4d, 0x30, 0x56, 0x6a, 0x55, 0x2f, 0x34, 0x33, 0x64, 0x53, 0x4d, 0x55, 0x42, 0x55, 0x63, 0x37, 0x31, 0x44, 0x75, 0x78, 0x43, 0x37, 0x33, 0x2f, 0x4f, 0x6c, 0x53, 0x38, 0x70, 0x46, 0x39, 0x34, 0x47, 0x33, 0x56, 0x4e, 0x54, 0x43, 0x4f, 0x58, 0x6b, 0x4e, 0x7a, 0x38, 0x6b, 0x48, 0x70, 0x31, 0x57, 0x72, 0x6a, 0x73, 0x6f, 0x6b, 0x36, 0x56, 0x6a, 0x6b, 0x34, 0x62, 0x77, 0x59, 0x38, 0x69, 0x47, 0x6c, 0x62, 0x0a, 0x4b, 0x6b, 0x33, 0x46, 0x70, 0x31, 0x53, 0x34, 0x62, 0x49, 0x6e, 0x4d, 0x6d, 0x2f, 0x6b, 0x38, 0x79, 0x75, 0x58, 0x39, 0x69, 0x66, 0x55, 0x53, 0x50, 0x4a, 0x4a, 0x34, 0x6c, 0x74, 0x62, 0x63, 0x64, 0x47, 0x36, 0x54, 0x52, 0x47, 0x48, 0x52, 0x6a, 0x63, 0x64, 0x47, 0x73, 0x6e, 0x55, 0x4f, 0x68, 0x75, 0x67, 0x5a, 0x69, 0x74, 0x56, 0x74, 0x62, 0x4e, 0x56, 0x34, 0x46, 0x70, 0x57, 0x69, 0x36, 0x63, 0x67, 0x4b, 0x4f, 0x4f, 0x76, 0x79, 0x4a, 0x42, 0x4e, 0x50, 0x0a, 0x63, 0x31, 0x53, 0x54, 0x45, 0x34, 0x55, 0x36, 0x47, 0x37, 0x77, 0x65, 0x4e, 0x4c, 0x57, 0x4c, 0x42, 0x59, 0x79, 0x35, 0x64, 0x34, 0x75, 0x78, 0x32, 0x78, 0x38, 0x67, 0x6b, 0x61, 0x73, 0x4a, 0x55, 0x32, 0x36, 0x51, 0x7a, 0x6e, 0x73, 0x33, 0x64, 0x4c, 0x6c, 0x77, 0x52, 0x35, 0x45, 0x69, 0x55, 0x57, 0x4d, 0x57, 0x65, 0x61, 0x36, 0x78, 0x72, 0x6b, 0x45, 0x6d, 0x43, 0x4d, 0x67, 0x5a, 0x4b, 0x39, 0x46, 0x47, 0x71, 0x6b, 0x6a, 0x57, 0x5a, 0x43, 0x72, 0x58, 0x0a, 0x67, 0x7a, 0x54, 0x2f, 0x4c, 0x43, 0x72, 0x42, 0x62, 0x42, 0x6c, 0x44, 0x53, 0x67, 0x65, 0x46, 0x35, 0x39, 0x4e, 0x38, 0x39, 0x69, 0x46, 0x6f, 0x37, 0x2b, 0x72, 0x79, 0x55, 0x70, 0x39, 0x2f, 0x6b, 0x35, 0x44, 0x50, 0x41, 0x67, 0x4d, 0x42, 0x41, 0x41, 0x47, 0x6a, 0x51, 0x6a, 0x42, 0x41, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x42, 0x6a, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x0a, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x52, 0x67, 0x65, 0x32, 0x59, 0x61, 0x52, 0x51, 0x32, 0x58, 0x79, 0x6f, 0x6c, 0x51, 0x4c, 0x33, 0x30, 0x45, 0x7a, 0x54, 0x53, 0x6f, 0x2f, 0x2f, 0x7a, 0x39, 0x53, 0x7a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x55, 0x46, 0x0a, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x51, 0x45, 0x41, 0x31, 0x6e, 0x50, 0x6e, 0x66, 0x45, 0x39, 0x32, 0x30, 0x49, 0x32, 0x2f, 0x37, 0x4c, 0x71, 0x69, 0x76, 0x6a, 0x54, 0x46, 0x4b, 0x44, 0x4b, 0x31, 0x66, 0x50, 0x78, 0x73, 0x6e, 0x43, 0x77, 0x72, 0x76, 0x51, 0x6d, 0x65, 0x55, 0x37, 0x39, 0x72, 0x58, 0x71, 0x6f, 0x52, 0x53, 0x4c, 0x62, 0x6c, 0x43, 0x4b, 0x4f, 0x7a, 0x79, 0x6a, 0x31, 0x68, 0x54, 0x64, 0x4e, 0x47, 0x43, 0x62, 0x4d, 0x2b, 0x77, 0x36, 0x44, 0x6a, 0x0a, 0x59, 0x31, 0x55, 0x62, 0x38, 0x72, 0x72, 0x76, 0x72, 0x54, 0x6e, 0x68, 0x51, 0x37, 0x6b, 0x34, 0x6f, 0x2b, 0x59, 0x76, 0x69, 0x69, 0x59, 0x37, 0x37, 0x36, 0x42, 0x51, 0x56, 0x76, 0x6e, 0x47, 0x43, 0x76, 0x30, 0x34, 0x7a, 0x63, 0x51, 0x4c, 0x63, 0x46, 0x47, 0x55, 0x6c, 0x35, 0x67, 0x45, 0x33, 0x38, 0x4e, 0x66, 0x6c, 0x4e, 0x55, 0x56, 0x79, 0x52, 0x52, 0x42, 0x6e, 0x4d, 0x52, 0x64, 0x64, 0x57, 0x51, 0x56, 0x44, 0x66, 0x39, 0x56, 0x4d, 0x4f, 0x79, 0x47, 0x0a, 0x6a, 0x2f, 0x38, 0x4e, 0x37, 0x79, 0x79, 0x35, 0x59, 0x30, 0x62, 0x32, 0x71, 0x76, 0x7a, 0x66, 0x76, 0x47, 0x6e, 0x39, 0x4c, 0x68, 0x4a, 0x49, 0x5a, 0x4a, 0x72, 0x67, 0x6c, 0x66, 0x43, 0x6d, 0x37, 0x79, 0x6d, 0x50, 0x41, 0x62, 0x45, 0x56, 0x74, 0x51, 0x77, 0x64, 0x70, 0x66, 0x35, 0x70, 0x4c, 0x47, 0x6b, 0x6b, 0x65, 0x42, 0x36, 0x7a, 0x70, 0x78, 0x78, 0x78, 0x59, 0x75, 0x37, 0x4b, 0x79, 0x4a, 0x65, 0x73, 0x46, 0x31, 0x32, 0x4b, 0x77, 0x76, 0x68, 0x48, 0x0a, 0x68, 0x6d, 0x34, 0x71, 0x78, 0x46, 0x59, 0x78, 0x6c, 0x64, 0x42, 0x6e, 0x69, 0x59, 0x55, 0x72, 0x2b, 0x57, 0x79, 0x6d, 0x58, 0x55, 0x61, 0x64, 0x44, 0x4b, 0x71, 0x43, 0x35, 0x4a, 0x6c, 0x52, 0x33, 0x58, 0x43, 0x33, 0x32, 0x31, 0x59, 0x39, 0x59, 0x65, 0x52, 0x71, 0x34, 0x56, 0x7a, 0x57, 0x39, 0x76, 0x34, 0x39, 0x33, 0x6b, 0x48, 0x4d, 0x42, 0x36, 0x35, 0x6a, 0x55, 0x72, 0x39, 0x54, 0x55, 0x2f, 0x51, 0x72, 0x36, 0x63, 0x66, 0x39, 0x74, 0x76, 0x65, 0x43, 0x0a, 0x58, 0x34, 0x58, 0x53, 0x51, 0x52, 0x6a, 0x62, 0x67, 0x62, 0x4d, 0x45, 0x48, 0x4d, 0x55, 0x66, 0x70, 0x49, 0x42, 0x76, 0x46, 0x53, 0x44, 0x4a, 0x33, 0x67, 0x79, 0x49, 0x43, 0x68, 0x33, 0x57, 0x5a, 0x6c, 0x58, 0x69, 0x2f, 0x45, 0x6a, 0x4a, 0x4b, 0x53, 0x5a, 0x70, 0x34, 0x41, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x20, 0x50, 0x72, 0x65, 0x6d, 0x69, 0x75, 0x6d, 0x20, 0x32, 0x30, 0x34, 0x38, 0x20, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x43, 0x41, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x45, 0x4b, 0x6a, 0x43, 0x43, 0x41, 0x78, 0x4b, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x45, 0x4f, 0x47, 0x50, 0x65, 0x2b, 0x44, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x55, 0x46, 0x41, 0x44, 0x43, 0x42, 0x74, 0x44, 0x45, 0x55, 0x4d, 0x42, 0x49, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x4c, 0x52, 0x57, 0x35, 0x30, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x35, 0x75, 0x0a, 0x5a, 0x58, 0x51, 0x78, 0x51, 0x44, 0x41, 0x2b, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x73, 0x55, 0x4e, 0x33, 0x64, 0x33, 0x64, 0x79, 0x35, 0x6c, 0x62, 0x6e, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x4c, 0x6d, 0x35, 0x6c, 0x64, 0x43, 0x39, 0x44, 0x55, 0x46, 0x4e, 0x66, 0x4d, 0x6a, 0x41, 0x30, 0x4f, 0x43, 0x42, 0x70, 0x62, 0x6d, 0x4e, 0x76, 0x63, 0x6e, 0x41, 0x75, 0x49, 0x47, 0x4a, 0x35, 0x49, 0x48, 0x4a, 0x6c, 0x5a, 0x69, 0x34, 0x67, 0x4b, 0x47, 0x78, 0x70, 0x0a, 0x62, 0x57, 0x6c, 0x30, 0x63, 0x79, 0x42, 0x73, 0x61, 0x57, 0x46, 0x69, 0x4c, 0x69, 0x6b, 0x78, 0x4a, 0x54, 0x41, 0x6a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x73, 0x54, 0x48, 0x43, 0x68, 0x6a, 0x4b, 0x53, 0x41, 0x78, 0x4f, 0x54, 0x6b, 0x35, 0x49, 0x45, 0x56, 0x75, 0x64, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x75, 0x62, 0x6d, 0x56, 0x30, 0x49, 0x45, 0x78, 0x70, 0x62, 0x57, 0x6c, 0x30, 0x5a, 0x57, 0x51, 0x78, 0x4d, 0x7a, 0x41, 0x78, 0x42, 0x67, 0x4e, 0x56, 0x0a, 0x42, 0x41, 0x4d, 0x54, 0x4b, 0x6b, 0x56, 0x75, 0x64, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x75, 0x62, 0x6d, 0x56, 0x30, 0x49, 0x45, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x70, 0x5a, 0x6d, 0x6c, 0x6a, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x34, 0x67, 0x51, 0x58, 0x56, 0x30, 0x61, 0x47, 0x39, 0x79, 0x61, 0x58, 0x52, 0x35, 0x49, 0x43, 0x67, 0x79, 0x4d, 0x44, 0x51, 0x34, 0x4b, 0x54, 0x41, 0x65, 0x46, 0x77, 0x30, 0x35, 0x4f, 0x54, 0x45, 0x79, 0x4d, 0x6a, 0x51, 0x78, 0x0a, 0x4e, 0x7a, 0x55, 0x77, 0x4e, 0x54, 0x46, 0x61, 0x46, 0x77, 0x30, 0x79, 0x4f, 0x54, 0x41, 0x33, 0x4d, 0x6a, 0x51, 0x78, 0x4e, 0x44, 0x45, 0x31, 0x4d, 0x54, 0x4a, 0x61, 0x4d, 0x49, 0x47, 0x30, 0x4d, 0x52, 0x51, 0x77, 0x45, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x77, 0x74, 0x46, 0x62, 0x6e, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x4c, 0x6d, 0x35, 0x6c, 0x64, 0x44, 0x46, 0x41, 0x4d, 0x44, 0x34, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x78, 0x51, 0x33, 0x0a, 0x64, 0x33, 0x64, 0x33, 0x4c, 0x6d, 0x56, 0x75, 0x64, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x75, 0x62, 0x6d, 0x56, 0x30, 0x4c, 0x30, 0x4e, 0x51, 0x55, 0x31, 0x38, 0x79, 0x4d, 0x44, 0x51, 0x34, 0x49, 0x47, 0x6c, 0x75, 0x59, 0x32, 0x39, 0x79, 0x63, 0x43, 0x34, 0x67, 0x59, 0x6e, 0x6b, 0x67, 0x63, 0x6d, 0x56, 0x6d, 0x4c, 0x69, 0x41, 0x6f, 0x62, 0x47, 0x6c, 0x74, 0x61, 0x58, 0x52, 0x7a, 0x49, 0x47, 0x78, 0x70, 0x59, 0x57, 0x49, 0x75, 0x4b, 0x54, 0x45, 0x6c, 0x0a, 0x4d, 0x43, 0x4d, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x78, 0x4d, 0x63, 0x4b, 0x47, 0x4d, 0x70, 0x49, 0x44, 0x45, 0x35, 0x4f, 0x54, 0x6b, 0x67, 0x52, 0x57, 0x35, 0x30, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x35, 0x75, 0x5a, 0x58, 0x51, 0x67, 0x54, 0x47, 0x6c, 0x74, 0x61, 0x58, 0x52, 0x6c, 0x5a, 0x44, 0x45, 0x7a, 0x4d, 0x44, 0x45, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x71, 0x52, 0x57, 0x35, 0x30, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x35, 0x75, 0x0a, 0x5a, 0x58, 0x51, 0x67, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x69, 0x42, 0x42, 0x64, 0x58, 0x52, 0x6f, 0x62, 0x33, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x67, 0x4b, 0x44, 0x49, 0x77, 0x4e, 0x44, 0x67, 0x70, 0x4d, 0x49, 0x49, 0x42, 0x49, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x45, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x51, 0x38, 0x41, 0x0a, 0x4d, 0x49, 0x49, 0x42, 0x43, 0x67, 0x4b, 0x43, 0x41, 0x51, 0x45, 0x41, 0x72, 0x55, 0x31, 0x4c, 0x71, 0x52, 0x4b, 0x47, 0x73, 0x75, 0x71, 0x6a, 0x49, 0x41, 0x63, 0x56, 0x46, 0x6d, 0x51, 0x71, 0x4b, 0x30, 0x76, 0x52, 0x76, 0x77, 0x74, 0x4b, 0x54, 0x59, 0x37, 0x74, 0x67, 0x48, 0x61, 0x6c, 0x5a, 0x37, 0x64, 0x34, 0x51, 0x4d, 0x42, 0x7a, 0x51, 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x74, 0x54, 0x4b, 0x39, 0x31, 0x65, 0x75, 0x48, 0x61, 0x59, 0x4e, 0x5a, 0x4f, 0x4c, 0x0a, 0x47, 0x70, 0x31, 0x38, 0x45, 0x7a, 0x6f, 0x4f, 0x48, 0x31, 0x75, 0x33, 0x48, 0x73, 0x2f, 0x6c, 0x4a, 0x42, 0x51, 0x65, 0x73, 0x59, 0x47, 0x70, 0x6a, 0x58, 0x32, 0x34, 0x7a, 0x47, 0x74, 0x4c, 0x41, 0x2f, 0x45, 0x43, 0x44, 0x4e, 0x79, 0x72, 0x70, 0x55, 0x41, 0x6b, 0x41, 0x48, 0x39, 0x30, 0x6c, 0x4b, 0x47, 0x64, 0x43, 0x43, 0x6d, 0x7a, 0x69, 0x41, 0x76, 0x31, 0x68, 0x33, 0x65, 0x64, 0x56, 0x63, 0x33, 0x6b, 0x77, 0x33, 0x37, 0x58, 0x61, 0x6d, 0x53, 0x72, 0x0a, 0x68, 0x52, 0x53, 0x47, 0x6c, 0x56, 0x75, 0x58, 0x4d, 0x6c, 0x42, 0x76, 0x50, 0x63, 0x69, 0x36, 0x5a, 0x67, 0x7a, 0x6a, 0x2f, 0x4c, 0x32, 0x34, 0x53, 0x63, 0x46, 0x32, 0x69, 0x55, 0x6b, 0x5a, 0x2f, 0x63, 0x43, 0x6f, 0x76, 0x59, 0x6d, 0x6a, 0x5a, 0x79, 0x2f, 0x47, 0x6e, 0x37, 0x78, 0x78, 0x47, 0x57, 0x43, 0x34, 0x4c, 0x65, 0x6b, 0x73, 0x79, 0x5a, 0x42, 0x32, 0x5a, 0x6e, 0x75, 0x55, 0x34, 0x71, 0x39, 0x34, 0x31, 0x6d, 0x56, 0x54, 0x58, 0x54, 0x7a, 0x57, 0x0a, 0x6e, 0x4c, 0x4c, 0x50, 0x4b, 0x51, 0x50, 0x35, 0x4c, 0x36, 0x52, 0x51, 0x73, 0x74, 0x52, 0x49, 0x7a, 0x67, 0x55, 0x79, 0x56, 0x59, 0x72, 0x39, 0x73, 0x6d, 0x52, 0x4d, 0x44, 0x75, 0x53, 0x59, 0x42, 0x33, 0x58, 0x62, 0x66, 0x39, 0x2b, 0x35, 0x43, 0x46, 0x56, 0x67, 0x68, 0x54, 0x41, 0x70, 0x2b, 0x58, 0x74, 0x49, 0x70, 0x47, 0x6d, 0x47, 0x34, 0x7a, 0x55, 0x2f, 0x48, 0x6f, 0x5a, 0x64, 0x65, 0x6e, 0x6f, 0x56, 0x76, 0x65, 0x38, 0x41, 0x6a, 0x68, 0x55, 0x69, 0x0a, 0x56, 0x42, 0x63, 0x41, 0x6b, 0x43, 0x61, 0x54, 0x76, 0x41, 0x35, 0x4a, 0x61, 0x4a, 0x47, 0x2f, 0x2b, 0x45, 0x66, 0x54, 0x6e, 0x5a, 0x56, 0x43, 0x77, 0x51, 0x35, 0x4e, 0x33, 0x32, 0x38, 0x6d, 0x7a, 0x38, 0x4d, 0x59, 0x49, 0x57, 0x4a, 0x6d, 0x51, 0x33, 0x44, 0x57, 0x31, 0x63, 0x41, 0x48, 0x34, 0x51, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x0a, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x51, 0x59, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x56, 0x65, 0x53, 0x42, 0x30, 0x52, 0x47, 0x41, 0x76, 0x74, 0x69, 0x4a, 0x75, 0x51, 0x69, 0x6a, 0x4d, 0x66, 0x6d, 0x68, 0x4a, 0x41, 0x6b, 0x57, 0x75, 0x58, 0x41, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x0a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x46, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x45, 0x42, 0x41, 0x44, 0x75, 0x62, 0x6a, 0x31, 0x61, 0x62, 0x4d, 0x4f, 0x64, 0x54, 0x6d, 0x58, 0x78, 0x36, 0x65, 0x61, 0x64, 0x4e, 0x6c, 0x39, 0x63, 0x5a, 0x6c, 0x5a, 0x44, 0x37, 0x42, 0x68, 0x2f, 0x4b, 0x4d, 0x33, 0x78, 0x47, 0x59, 0x34, 0x2b, 0x57, 0x5a, 0x69, 0x54, 0x36, 0x51, 0x42, 0x73, 0x68, 0x4a, 0x38, 0x72, 0x6d, 0x63, 0x6e, 0x50, 0x79, 0x0a, 0x54, 0x2f, 0x34, 0x78, 0x6d, 0x66, 0x33, 0x49, 0x44, 0x45, 0x78, 0x6f, 0x55, 0x38, 0x61, 0x41, 0x67, 0x68, 0x4f, 0x59, 0x2b, 0x72, 0x61, 0x74, 0x32, 0x6c, 0x30, 0x39, 0x38, 0x63, 0x35, 0x75, 0x39, 0x68, 0x55, 0x52, 0x6c, 0x49, 0x49, 0x4d, 0x37, 0x6a, 0x2b, 0x56, 0x72, 0x78, 0x47, 0x72, 0x44, 0x39, 0x63, 0x76, 0x33, 0x68, 0x38, 0x44, 0x6a, 0x31, 0x63, 0x73, 0x48, 0x73, 0x6d, 0x37, 0x6d, 0x68, 0x70, 0x45, 0x6c, 0x65, 0x73, 0x59, 0x54, 0x36, 0x59, 0x66, 0x0a, 0x7a, 0x58, 0x31, 0x58, 0x45, 0x43, 0x2b, 0x62, 0x42, 0x41, 0x6c, 0x61, 0x68, 0x4c, 0x56, 0x75, 0x32, 0x42, 0x30, 0x36, 0x34, 0x64, 0x61, 0x65, 0x30, 0x57, 0x78, 0x35, 0x58, 0x6e, 0x6b, 0x63, 0x46, 0x4d, 0x58, 0x6a, 0x30, 0x45, 0x79, 0x54, 0x4f, 0x32, 0x55, 0x38, 0x37, 0x64, 0x38, 0x39, 0x76, 0x71, 0x62, 0x6c, 0x6c, 0x52, 0x72, 0x44, 0x74, 0x52, 0x6e, 0x44, 0x76, 0x56, 0x35, 0x62, 0x75, 0x2f, 0x38, 0x6a, 0x37, 0x32, 0x67, 0x5a, 0x79, 0x78, 0x4b, 0x54, 0x0a, 0x4a, 0x31, 0x77, 0x44, 0x4c, 0x57, 0x38, 0x77, 0x30, 0x42, 0x36, 0x32, 0x47, 0x71, 0x7a, 0x65, 0x57, 0x76, 0x66, 0x52, 0x71, 0x71, 0x67, 0x6e, 0x70, 0x76, 0x35, 0x35, 0x67, 0x63, 0x52, 0x35, 0x6d, 0x54, 0x4e, 0x58, 0x75, 0x68, 0x4b, 0x77, 0x71, 0x65, 0x42, 0x43, 0x62, 0x4a, 0x50, 0x4b, 0x56, 0x74, 0x37, 0x2b, 0x62, 0x59, 0x51, 0x4c, 0x43, 0x49, 0x74, 0x2b, 0x6a, 0x65, 0x72, 0x58, 0x6d, 0x43, 0x48, 0x47, 0x38, 0x2b, 0x63, 0x38, 0x65, 0x53, 0x39, 0x65, 0x0a, 0x6e, 0x4e, 0x46, 0x4d, 0x46, 0x59, 0x33, 0x68, 0x37, 0x43, 0x49, 0x33, 0x7a, 0x4a, 0x70, 0x44, 0x43, 0x35, 0x66, 0x63, 0x67, 0x4a, 0x43, 0x4e, 0x73, 0x32, 0x65, 0x62, 0x62, 0x30, 0x67, 0x49, 0x46, 0x56, 0x62, 0x50, 0x76, 0x2f, 0x45, 0x72, 0x66, 0x46, 0x36, 0x61, 0x64, 0x75, 0x6c, 0x5a, 0x6b, 0x4d, 0x56, 0x38, 0x67, 0x7a, 0x55, 0x52, 0x5a, 0x56, 0x45, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x42, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x43, 0x79, 0x62, 0x65, 0x72, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x44, 0x64, 0x7a, 0x43, 0x43, 0x41, 0x6c, 0x2b, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x45, 0x41, 0x67, 0x41, 0x41, 0x75, 0x54, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x55, 0x46, 0x41, 0x44, 0x42, 0x61, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x4a, 0x52, 0x54, 0x45, 0x53, 0x4d, 0x42, 0x41, 0x47, 0x41, 0x31, 0x55, 0x45, 0x0a, 0x43, 0x68, 0x4d, 0x4a, 0x51, 0x6d, 0x46, 0x73, 0x64, 0x47, 0x6c, 0x74, 0x62, 0x33, 0x4a, 0x6c, 0x4d, 0x52, 0x4d, 0x77, 0x45, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x77, 0x70, 0x44, 0x65, 0x57, 0x4a, 0x6c, 0x63, 0x6c, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x4d, 0x53, 0x49, 0x77, 0x49, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x6c, 0x43, 0x59, 0x57, 0x78, 0x30, 0x61, 0x57, 0x31, 0x76, 0x63, 0x6d, 0x55, 0x67, 0x51, 0x33, 0x6c, 0x69, 0x0a, 0x5a, 0x58, 0x4a, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x41, 0x77, 0x4d, 0x44, 0x55, 0x78, 0x4d, 0x6a, 0x45, 0x34, 0x4e, 0x44, 0x59, 0x77, 0x4d, 0x46, 0x6f, 0x58, 0x44, 0x54, 0x49, 0x31, 0x4d, 0x44, 0x55, 0x78, 0x4d, 0x6a, 0x49, 0x7a, 0x4e, 0x54, 0x6b, 0x77, 0x4d, 0x46, 0x6f, 0x77, 0x57, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x0a, 0x53, 0x55, 0x55, 0x78, 0x45, 0x6a, 0x41, 0x51, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x43, 0x55, 0x4a, 0x68, 0x62, 0x48, 0x52, 0x70, 0x62, 0x57, 0x39, 0x79, 0x5a, 0x54, 0x45, 0x54, 0x4d, 0x42, 0x45, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x78, 0x4d, 0x4b, 0x51, 0x33, 0x6c, 0x69, 0x5a, 0x58, 0x4a, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x44, 0x45, 0x69, 0x4d, 0x43, 0x41, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x5a, 0x51, 0x6d, 0x46, 0x73, 0x0a, 0x64, 0x47, 0x6c, 0x74, 0x62, 0x33, 0x4a, 0x6c, 0x49, 0x45, 0x4e, 0x35, 0x59, 0x6d, 0x56, 0x79, 0x56, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x44, 0x43, 0x43, 0x41, 0x53, 0x49, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x45, 0x50, 0x41, 0x44, 0x43, 0x43, 0x41, 0x51, 0x6f, 0x43, 0x67, 0x67, 0x45, 0x42, 0x41, 0x4b, 0x4d, 0x45, 0x0a, 0x75, 0x79, 0x4b, 0x72, 0x6d, 0x44, 0x31, 0x58, 0x36, 0x43, 0x5a, 0x79, 0x6d, 0x72, 0x56, 0x35, 0x31, 0x43, 0x6e, 0x69, 0x34, 0x65, 0x69, 0x56, 0x67, 0x4c, 0x47, 0x77, 0x34, 0x31, 0x75, 0x4f, 0x4b, 0x79, 0x6d, 0x61, 0x5a, 0x4e, 0x2b, 0x68, 0x58, 0x65, 0x32, 0x77, 0x43, 0x51, 0x56, 0x74, 0x32, 0x79, 0x67, 0x75, 0x7a, 0x6d, 0x4b, 0x69, 0x59, 0x76, 0x36, 0x30, 0x69, 0x4e, 0x6f, 0x53, 0x36, 0x7a, 0x6a, 0x72, 0x49, 0x5a, 0x33, 0x41, 0x51, 0x53, 0x73, 0x42, 0x0a, 0x55, 0x6e, 0x75, 0x49, 0x64, 0x39, 0x4d, 0x63, 0x6a, 0x38, 0x65, 0x36, 0x75, 0x59, 0x69, 0x31, 0x61, 0x67, 0x6e, 0x6e, 0x63, 0x2b, 0x67, 0x52, 0x51, 0x4b, 0x66, 0x52, 0x7a, 0x4d, 0x70, 0x69, 0x6a, 0x53, 0x33, 0x6c, 0x6a, 0x77, 0x75, 0x6d, 0x55, 0x4e, 0x4b, 0x6f, 0x55, 0x4d, 0x4d, 0x6f, 0x36, 0x76, 0x57, 0x72, 0x4a, 0x59, 0x65, 0x4b, 0x6d, 0x70, 0x59, 0x63, 0x71, 0x57, 0x65, 0x34, 0x50, 0x77, 0x7a, 0x56, 0x39, 0x2f, 0x6c, 0x53, 0x45, 0x79, 0x2f, 0x43, 0x0a, 0x47, 0x39, 0x56, 0x77, 0x63, 0x50, 0x43, 0x50, 0x77, 0x42, 0x4c, 0x4b, 0x42, 0x73, 0x75, 0x61, 0x34, 0x64, 0x6e, 0x4b, 0x4d, 0x33, 0x70, 0x33, 0x31, 0x76, 0x6a, 0x73, 0x75, 0x66, 0x46, 0x6f, 0x52, 0x45, 0x4a, 0x49, 0x45, 0x39, 0x4c, 0x41, 0x77, 0x71, 0x53, 0x75, 0x58, 0x6d, 0x44, 0x2b, 0x74, 0x71, 0x59, 0x46, 0x2f, 0x4c, 0x54, 0x64, 0x42, 0x31, 0x6b, 0x43, 0x31, 0x46, 0x6b, 0x59, 0x6d, 0x47, 0x50, 0x31, 0x70, 0x57, 0x50, 0x67, 0x6b, 0x41, 0x78, 0x39, 0x0a, 0x58, 0x62, 0x49, 0x47, 0x65, 0x76, 0x4f, 0x46, 0x36, 0x75, 0x76, 0x55, 0x41, 0x36, 0x35, 0x65, 0x68, 0x44, 0x35, 0x66, 0x2f, 0x78, 0x58, 0x74, 0x61, 0x62, 0x7a, 0x35, 0x4f, 0x54, 0x5a, 0x79, 0x64, 0x63, 0x39, 0x33, 0x55, 0x6b, 0x33, 0x7a, 0x79, 0x5a, 0x41, 0x73, 0x75, 0x54, 0x33, 0x6c, 0x79, 0x53, 0x4e, 0x54, 0x50, 0x78, 0x38, 0x6b, 0x6d, 0x43, 0x46, 0x63, 0x42, 0x35, 0x6b, 0x70, 0x76, 0x63, 0x59, 0x36, 0x37, 0x4f, 0x64, 0x75, 0x68, 0x6a, 0x70, 0x72, 0x0a, 0x6c, 0x33, 0x52, 0x6a, 0x4d, 0x37, 0x31, 0x6f, 0x47, 0x44, 0x48, 0x77, 0x65, 0x49, 0x31, 0x32, 0x76, 0x2f, 0x79, 0x65, 0x6a, 0x6c, 0x30, 0x71, 0x68, 0x71, 0x64, 0x4e, 0x6b, 0x4e, 0x77, 0x6e, 0x47, 0x6a, 0x6b, 0x43, 0x41, 0x77, 0x45, 0x41, 0x41, 0x61, 0x4e, 0x46, 0x4d, 0x45, 0x4d, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x4f, 0x57, 0x64, 0x57, 0x54, 0x43, 0x43, 0x52, 0x31, 0x6a, 0x4d, 0x72, 0x50, 0x6f, 0x49, 0x0a, 0x56, 0x44, 0x61, 0x47, 0x65, 0x7a, 0x71, 0x31, 0x42, 0x45, 0x33, 0x77, 0x4d, 0x42, 0x49, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x49, 0x4d, 0x41, 0x59, 0x42, 0x41, 0x66, 0x38, 0x43, 0x41, 0x51, 0x4d, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x45, 0x47, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x0a, 0x42, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x42, 0x41, 0x51, 0x43, 0x46, 0x44, 0x46, 0x32, 0x4f, 0x35, 0x47, 0x39, 0x52, 0x61, 0x45, 0x49, 0x46, 0x6f, 0x4e, 0x32, 0x37, 0x54, 0x79, 0x63, 0x6c, 0x68, 0x41, 0x4f, 0x39, 0x39, 0x32, 0x54, 0x39, 0x4c, 0x64, 0x63, 0x77, 0x34, 0x36, 0x51, 0x51, 0x46, 0x2b, 0x76, 0x61, 0x4b, 0x53, 0x6d, 0x32, 0x65, 0x54, 0x39, 0x32, 0x39, 0x68, 0x6b, 0x54, 0x49, 0x37, 0x67, 0x51, 0x43, 0x76, 0x6c, 0x59, 0x70, 0x4e, 0x52, 0x68, 0x0a, 0x63, 0x4c, 0x30, 0x45, 0x59, 0x57, 0x6f, 0x53, 0x69, 0x68, 0x66, 0x56, 0x43, 0x72, 0x33, 0x46, 0x76, 0x44, 0x42, 0x38, 0x31, 0x75, 0x6b, 0x4d, 0x4a, 0x59, 0x32, 0x47, 0x51, 0x45, 0x2f, 0x73, 0x7a, 0x4b, 0x4e, 0x2b, 0x4f, 0x4d, 0x59, 0x33, 0x45, 0x55, 0x2f, 0x74, 0x33, 0x57, 0x67, 0x78, 0x6a, 0x6b, 0x7a, 0x53, 0x73, 0x77, 0x46, 0x30, 0x37, 0x72, 0x35, 0x31, 0x58, 0x67, 0x64, 0x49, 0x47, 0x6e, 0x39, 0x77, 0x2f, 0x78, 0x5a, 0x63, 0x68, 0x4d, 0x42, 0x35, 0x0a, 0x68, 0x62, 0x67, 0x46, 0x2f, 0x58, 0x2b, 0x2b, 0x5a, 0x52, 0x47, 0x6a, 0x44, 0x38, 0x41, 0x43, 0x74, 0x50, 0x68, 0x53, 0x4e, 0x7a, 0x6b, 0x45, 0x31, 0x61, 0x6b, 0x78, 0x65, 0x68, 0x69, 0x2f, 0x6f, 0x43, 0x72, 0x30, 0x45, 0x70, 0x6e, 0x33, 0x6f, 0x30, 0x57, 0x43, 0x34, 0x7a, 0x78, 0x65, 0x39, 0x5a, 0x32, 0x65, 0x74, 0x63, 0x69, 0x65, 0x66, 0x43, 0x37, 0x49, 0x70, 0x4a, 0x35, 0x4f, 0x43, 0x42, 0x52, 0x4c, 0x62, 0x66, 0x31, 0x77, 0x62, 0x57, 0x73, 0x61, 0x0a, 0x59, 0x37, 0x31, 0x6b, 0x35, 0x68, 0x2b, 0x33, 0x7a, 0x76, 0x44, 0x79, 0x6e, 0x79, 0x36, 0x37, 0x47, 0x37, 0x66, 0x79, 0x55, 0x49, 0x68, 0x7a, 0x6b, 0x73, 0x4c, 0x69, 0x34, 0x78, 0x61, 0x4e, 0x6d, 0x6a, 0x49, 0x43, 0x71, 0x34, 0x34, 0x59, 0x33, 0x65, 0x6b, 0x51, 0x45, 0x65, 0x35, 0x2b, 0x4e, 0x61, 0x75, 0x51, 0x72, 0x7a, 0x34, 0x77, 0x6c, 0x48, 0x72, 0x51, 0x4d, 0x7a, 0x32, 0x6e, 0x5a, 0x51, 0x2f, 0x31, 0x2f, 0x49, 0x36, 0x65, 0x59, 0x73, 0x39, 0x48, 0x0a, 0x52, 0x43, 0x77, 0x42, 0x58, 0x62, 0x73, 0x64, 0x74, 0x54, 0x4c, 0x53, 0x52, 0x39, 0x49, 0x34, 0x4c, 0x74, 0x44, 0x2b, 0x67, 0x64, 0x77, 0x79, 0x61, 0x68, 0x36, 0x31, 0x37, 0x6a, 0x7a, 0x56, 0x2f, 0x4f, 0x65, 0x42, 0x48, 0x52, 0x6e, 0x44, 0x4a, 0x45, 0x4c, 0x71, 0x59, 0x7a, 0x6d, 0x70, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x45, 0x6b, 0x54, 0x43, 0x43, 0x41, 0x33, 0x6d, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x45, 0x52, 0x57, 0x74, 0x51, 0x56, 0x44, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x55, 0x46, 0x41, 0x44, 0x43, 0x42, 0x73, 0x44, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x46, 0x6a, 0x41, 0x55, 0x42, 0x67, 0x4e, 0x56, 0x0a, 0x42, 0x41, 0x6f, 0x54, 0x44, 0x55, 0x56, 0x75, 0x64, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x73, 0x49, 0x45, 0x6c, 0x75, 0x59, 0x79, 0x34, 0x78, 0x4f, 0x54, 0x41, 0x33, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x73, 0x54, 0x4d, 0x48, 0x64, 0x33, 0x64, 0x79, 0x35, 0x6c, 0x62, 0x6e, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x4c, 0x6d, 0x35, 0x6c, 0x64, 0x43, 0x39, 0x44, 0x55, 0x46, 0x4d, 0x67, 0x61, 0x58, 0x4d, 0x67, 0x61, 0x57, 0x35, 0x6a, 0x62, 0x33, 0x4a, 0x77, 0x0a, 0x62, 0x33, 0x4a, 0x68, 0x64, 0x47, 0x56, 0x6b, 0x49, 0x47, 0x4a, 0x35, 0x49, 0x48, 0x4a, 0x6c, 0x5a, 0x6d, 0x56, 0x79, 0x5a, 0x57, 0x35, 0x6a, 0x5a, 0x54, 0x45, 0x66, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x78, 0x4d, 0x57, 0x4b, 0x47, 0x4d, 0x70, 0x49, 0x44, 0x49, 0x77, 0x4d, 0x44, 0x59, 0x67, 0x52, 0x57, 0x35, 0x30, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x77, 0x67, 0x53, 0x57, 0x35, 0x6a, 0x4c, 0x6a, 0x45, 0x74, 0x4d, 0x43, 0x73, 0x47, 0x0a, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x6b, 0x52, 0x57, 0x35, 0x30, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x70, 0x5a, 0x6d, 0x6c, 0x6a, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x34, 0x67, 0x51, 0x58, 0x56, 0x30, 0x61, 0x47, 0x39, 0x79, 0x61, 0x58, 0x52, 0x35, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x41, 0x32, 0x4d, 0x54, 0x45, 0x79, 0x4e, 0x7a, 0x49, 0x77, 0x4d, 0x6a, 0x4d, 0x30, 0x0a, 0x4d, 0x6c, 0x6f, 0x58, 0x44, 0x54, 0x49, 0x32, 0x4d, 0x54, 0x45, 0x79, 0x4e, 0x7a, 0x49, 0x77, 0x4e, 0x54, 0x4d, 0x30, 0x4d, 0x6c, 0x6f, 0x77, 0x67, 0x62, 0x41, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6c, 0x56, 0x54, 0x4d, 0x52, 0x59, 0x77, 0x46, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x77, 0x31, 0x46, 0x62, 0x6e, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x4c, 0x43, 0x42, 0x4a, 0x62, 0x6d, 0x4d, 0x75, 0x0a, 0x4d, 0x54, 0x6b, 0x77, 0x4e, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x7a, 0x42, 0x33, 0x64, 0x33, 0x63, 0x75, 0x5a, 0x57, 0x35, 0x30, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x35, 0x75, 0x5a, 0x58, 0x51, 0x76, 0x51, 0x31, 0x42, 0x54, 0x49, 0x47, 0x6c, 0x7a, 0x49, 0x47, 0x6c, 0x75, 0x59, 0x32, 0x39, 0x79, 0x63, 0x47, 0x39, 0x79, 0x59, 0x58, 0x52, 0x6c, 0x5a, 0x43, 0x42, 0x69, 0x65, 0x53, 0x42, 0x79, 0x5a, 0x57, 0x5a, 0x6c, 0x63, 0x6d, 0x56, 0x75, 0x0a, 0x59, 0x32, 0x55, 0x78, 0x48, 0x7a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x73, 0x54, 0x46, 0x69, 0x68, 0x6a, 0x4b, 0x53, 0x41, 0x79, 0x4d, 0x44, 0x41, 0x32, 0x49, 0x45, 0x56, 0x75, 0x64, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x73, 0x49, 0x45, 0x6c, 0x75, 0x59, 0x79, 0x34, 0x78, 0x4c, 0x54, 0x41, 0x72, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x4a, 0x45, 0x56, 0x75, 0x64, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x0a, 0x64, 0x43, 0x42, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x61, 0x57, 0x5a, 0x70, 0x59, 0x32, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x49, 0x45, 0x46, 0x31, 0x64, 0x47, 0x68, 0x76, 0x63, 0x6d, 0x6c, 0x30, 0x65, 0x54, 0x43, 0x43, 0x41, 0x53, 0x49, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x45, 0x50, 0x41, 0x44, 0x43, 0x43, 0x41, 0x51, 0x6f, 0x43, 0x67, 0x67, 0x45, 0x42, 0x0a, 0x41, 0x4c, 0x61, 0x56, 0x74, 0x6b, 0x4e, 0x43, 0x2b, 0x73, 0x5a, 0x74, 0x4b, 0x6d, 0x39, 0x49, 0x33, 0x35, 0x52, 0x4d, 0x4f, 0x56, 0x63, 0x46, 0x37, 0x73, 0x4e, 0x35, 0x45, 0x55, 0x46, 0x6f, 0x4e, 0x75, 0x33, 0x73, 0x2f, 0x70, 0x6f, 0x42, 0x6a, 0x36, 0x45, 0x34, 0x4b, 0x50, 0x7a, 0x33, 0x45, 0x45, 0x5a, 0x6d, 0x4c, 0x6b, 0x30, 0x65, 0x47, 0x72, 0x45, 0x61, 0x54, 0x73, 0x62, 0x52, 0x77, 0x4a, 0x57, 0x49, 0x73, 0x4d, 0x6e, 0x2f, 0x4d, 0x59, 0x73, 0x7a, 0x0a, 0x41, 0x39, 0x75, 0x33, 0x67, 0x33, 0x73, 0x2b, 0x49, 0x49, 0x52, 0x65, 0x37, 0x62, 0x4a, 0x57, 0x4b, 0x4b, 0x66, 0x34, 0x34, 0x4c, 0x6c, 0x41, 0x63, 0x54, 0x66, 0x46, 0x79, 0x30, 0x63, 0x4f, 0x6c, 0x79, 0x70, 0x6f, 0x77, 0x43, 0x4b, 0x56, 0x59, 0x68, 0x58, 0x62, 0x52, 0x39, 0x6e, 0x31, 0x30, 0x43, 0x76, 0x2f, 0x67, 0x6b, 0x76, 0x4a, 0x72, 0x54, 0x37, 0x65, 0x54, 0x4e, 0x75, 0x51, 0x67, 0x46, 0x41, 0x2f, 0x43, 0x59, 0x71, 0x45, 0x41, 0x4f, 0x77, 0x77, 0x0a, 0x43, 0x6a, 0x30, 0x59, 0x7a, 0x66, 0x76, 0x39, 0x4b, 0x6c, 0x6d, 0x61, 0x49, 0x35, 0x55, 0x58, 0x4c, 0x45, 0x57, 0x65, 0x48, 0x32, 0x35, 0x44, 0x65, 0x57, 0x30, 0x4d, 0x58, 0x4a, 0x6a, 0x2b, 0x53, 0x4b, 0x66, 0x46, 0x49, 0x30, 0x64, 0x63, 0x58, 0x76, 0x31, 0x75, 0x35, 0x78, 0x36, 0x30, 0x39, 0x6d, 0x68, 0x46, 0x30, 0x59, 0x61, 0x44, 0x57, 0x36, 0x4b, 0x4b, 0x6a, 0x62, 0x48, 0x6a, 0x4b, 0x59, 0x44, 0x2b, 0x4a, 0x58, 0x47, 0x49, 0x72, 0x62, 0x36, 0x38, 0x0a, 0x6a, 0x36, 0x78, 0x53, 0x6c, 0x6b, 0x75, 0x71, 0x55, 0x59, 0x33, 0x6b, 0x45, 0x7a, 0x45, 0x5a, 0x36, 0x45, 0x35, 0x4e, 0x6e, 0x39, 0x75, 0x73, 0x73, 0x32, 0x72, 0x56, 0x76, 0x44, 0x6c, 0x55, 0x63, 0x63, 0x70, 0x36, 0x65, 0x6e, 0x2b, 0x51, 0x33, 0x58, 0x30, 0x64, 0x67, 0x4e, 0x6d, 0x42, 0x75, 0x31, 0x6b, 0x6d, 0x77, 0x68, 0x48, 0x2b, 0x35, 0x70, 0x50, 0x69, 0x39, 0x34, 0x44, 0x6b, 0x5a, 0x66, 0x73, 0x30, 0x4e, 0x77, 0x34, 0x70, 0x67, 0x48, 0x42, 0x4e, 0x0a, 0x72, 0x7a, 0x69, 0x47, 0x4c, 0x70, 0x35, 0x2f, 0x56, 0x36, 0x2b, 0x65, 0x46, 0x36, 0x37, 0x72, 0x48, 0x4d, 0x73, 0x6f, 0x49, 0x56, 0x2b, 0x32, 0x48, 0x4e, 0x6a, 0x6e, 0x6f, 0x67, 0x51, 0x69, 0x2b, 0x64, 0x50, 0x61, 0x32, 0x4d, 0x73, 0x43, 0x41, 0x77, 0x45, 0x41, 0x41, 0x61, 0x4f, 0x42, 0x73, 0x44, 0x43, 0x42, 0x72, 0x54, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x51, 0x59, 0x77, 0x0a, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x72, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x41, 0x45, 0x4a, 0x44, 0x41, 0x69, 0x67, 0x41, 0x38, 0x79, 0x4d, 0x44, 0x41, 0x32, 0x4d, 0x54, 0x45, 0x79, 0x4e, 0x7a, 0x49, 0x77, 0x4d, 0x6a, 0x4d, 0x30, 0x4d, 0x6c, 0x71, 0x42, 0x44, 0x7a, 0x49, 0x77, 0x4d, 0x6a, 0x59, 0x78, 0x4d, 0x54, 0x49, 0x33, 0x4d, 0x6a, 0x41, 0x31, 0x0a, 0x4d, 0x7a, 0x51, 0x79, 0x57, 0x6a, 0x41, 0x66, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x53, 0x4d, 0x45, 0x47, 0x44, 0x41, 0x57, 0x67, 0x42, 0x52, 0x6f, 0x6b, 0x4f, 0x52, 0x6e, 0x70, 0x4b, 0x5a, 0x54, 0x67, 0x4d, 0x65, 0x47, 0x5a, 0x71, 0x54, 0x78, 0x39, 0x30, 0x74, 0x44, 0x2b, 0x34, 0x53, 0x39, 0x62, 0x54, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x61, 0x4a, 0x44, 0x6b, 0x5a, 0x36, 0x53, 0x6d, 0x55, 0x34, 0x44, 0x48, 0x0a, 0x68, 0x6d, 0x61, 0x6b, 0x38, 0x66, 0x64, 0x4c, 0x51, 0x2f, 0x75, 0x45, 0x76, 0x57, 0x30, 0x77, 0x48, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x5a, 0x39, 0x42, 0x30, 0x45, 0x41, 0x42, 0x42, 0x41, 0x77, 0x44, 0x68, 0x73, 0x49, 0x56, 0x6a, 0x63, 0x75, 0x4d, 0x54, 0x6f, 0x30, 0x4c, 0x6a, 0x41, 0x44, 0x41, 0x67, 0x53, 0x51, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x42, 0x51, 0x55, 0x41, 0x0a, 0x41, 0x34, 0x49, 0x42, 0x41, 0x51, 0x43, 0x54, 0x31, 0x44, 0x43, 0x77, 0x31, 0x77, 0x4d, 0x67, 0x4b, 0x74, 0x44, 0x35, 0x59, 0x2b, 0x69, 0x52, 0x44, 0x41, 0x55, 0x67, 0x71, 0x56, 0x38, 0x5a, 0x79, 0x6e, 0x74, 0x79, 0x54, 0x74, 0x53, 0x78, 0x32, 0x39, 0x43, 0x57, 0x2b, 0x31, 0x52, 0x61, 0x47, 0x53, 0x77, 0x4d, 0x43, 0x50, 0x65, 0x79, 0x76, 0x49, 0x57, 0x6f, 0x6e, 0x58, 0x39, 0x74, 0x4f, 0x31, 0x4b, 0x7a, 0x4b, 0x74, 0x76, 0x6e, 0x31, 0x49, 0x53, 0x4d, 0x0a, 0x59, 0x2f, 0x59, 0x50, 0x79, 0x79, 0x59, 0x42, 0x6b, 0x56, 0x42, 0x73, 0x39, 0x46, 0x38, 0x55, 0x34, 0x70, 0x4e, 0x30, 0x77, 0x42, 0x4f, 0x65, 0x4d, 0x44, 0x70, 0x51, 0x34, 0x37, 0x52, 0x67, 0x78, 0x52, 0x7a, 0x77, 0x49, 0x6b, 0x53, 0x4e, 0x63, 0x55, 0x65, 0x73, 0x79, 0x42, 0x72, 0x4a, 0x36, 0x5a, 0x75, 0x61, 0x41, 0x47, 0x41, 0x54, 0x2f, 0x33, 0x42, 0x2b, 0x58, 0x78, 0x46, 0x4e, 0x53, 0x52, 0x75, 0x7a, 0x46, 0x56, 0x4a, 0x37, 0x79, 0x56, 0x54, 0x61, 0x0a, 0x76, 0x35, 0x32, 0x56, 0x72, 0x32, 0x75, 0x61, 0x32, 0x4a, 0x37, 0x70, 0x38, 0x65, 0x52, 0x44, 0x6a, 0x65, 0x49, 0x52, 0x52, 0x44, 0x71, 0x2f, 0x72, 0x37, 0x32, 0x44, 0x51, 0x6e, 0x4e, 0x53, 0x69, 0x36, 0x71, 0x37, 0x70, 0x79, 0x6e, 0x50, 0x39, 0x57, 0x51, 0x63, 0x43, 0x6b, 0x33, 0x52, 0x76, 0x4b, 0x71, 0x73, 0x6e, 0x79, 0x72, 0x51, 0x2f, 0x33, 0x39, 0x2f, 0x32, 0x6e, 0x33, 0x71, 0x73, 0x65, 0x30, 0x77, 0x4a, 0x63, 0x47, 0x45, 0x32, 0x6a, 0x54, 0x53, 0x0a, 0x57, 0x33, 0x69, 0x44, 0x56, 0x75, 0x79, 0x63, 0x4e, 0x73, 0x4d, 0x6d, 0x34, 0x68, 0x48, 0x32, 0x5a, 0x30, 0x6b, 0x64, 0x6b, 0x71, 0x75, 0x4d, 0x2b, 0x2b, 0x76, 0x2f, 0x65, 0x75, 0x36, 0x46, 0x53, 0x71, 0x64, 0x51, 0x67, 0x50, 0x43, 0x6e, 0x58, 0x45, 0x71, 0x55, 0x4c, 0x6c, 0x38, 0x46, 0x6d, 0x54, 0x78, 0x53, 0x51, 0x65, 0x44, 0x4e, 0x74, 0x47, 0x50, 0x50, 0x41, 0x55, 0x4f, 0x36, 0x6e, 0x49, 0x50, 0x63, 0x6a, 0x32, 0x41, 0x37, 0x38, 0x31, 0x71, 0x30, 0x0a, 0x74, 0x48, 0x75, 0x75, 0x32, 0x67, 0x75, 0x51, 0x4f, 0x48, 0x58, 0x76, 0x67, 0x52, 0x31, 0x6d, 0x30, 0x76, 0x64, 0x58, 0x63, 0x44, 0x61, 0x7a, 0x76, 0x2f, 0x77, 0x6f, 0x72, 0x33, 0x45, 0x6c, 0x68, 0x56, 0x73, 0x54, 0x2f, 0x68, 0x35, 0x2f, 0x57, 0x72, 0x51, 0x38, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6f, 0x64, 0x6f, 0x20, 0x41, 0x41, 0x41, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x72, 0x6f, 0x6f, 0x74, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x45, 0x4d, 0x6a, 0x43, 0x43, 0x41, 0x78, 0x71, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x42, 0x41, 0x54, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x55, 0x46, 0x41, 0x44, 0x42, 0x37, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x48, 0x51, 0x6a, 0x45, 0x62, 0x4d, 0x42, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x41, 0x77, 0x53, 0x0a, 0x52, 0x33, 0x4a, 0x6c, 0x59, 0x58, 0x52, 0x6c, 0x63, 0x69, 0x42, 0x4e, 0x59, 0x57, 0x35, 0x6a, 0x61, 0x47, 0x56, 0x7a, 0x64, 0x47, 0x56, 0x79, 0x4d, 0x52, 0x41, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x48, 0x44, 0x41, 0x64, 0x54, 0x59, 0x57, 0x78, 0x6d, 0x62, 0x33, 0x4a, 0x6b, 0x4d, 0x52, 0x6f, 0x77, 0x47, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x42, 0x46, 0x44, 0x62, 0x32, 0x31, 0x76, 0x5a, 0x47, 0x38, 0x67, 0x51, 0x30, 0x45, 0x67, 0x0a, 0x54, 0x47, 0x6c, 0x74, 0x61, 0x58, 0x52, 0x6c, 0x5a, 0x44, 0x45, 0x68, 0x4d, 0x42, 0x38, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x77, 0x77, 0x59, 0x51, 0x55, 0x46, 0x42, 0x49, 0x45, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x70, 0x5a, 0x6d, 0x6c, 0x6a, 0x59, 0x58, 0x52, 0x6c, 0x49, 0x46, 0x4e, 0x6c, 0x63, 0x6e, 0x5a, 0x70, 0x59, 0x32, 0x56, 0x7a, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x41, 0x30, 0x4d, 0x44, 0x45, 0x77, 0x4d, 0x54, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x0a, 0x4d, 0x46, 0x6f, 0x58, 0x44, 0x54, 0x49, 0x34, 0x4d, 0x54, 0x49, 0x7a, 0x4d, 0x54, 0x49, 0x7a, 0x4e, 0x54, 0x6b, 0x31, 0x4f, 0x56, 0x6f, 0x77, 0x65, 0x7a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x52, 0x30, 0x49, 0x78, 0x47, 0x7a, 0x41, 0x5a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x67, 0x4d, 0x45, 0x6b, 0x64, 0x79, 0x5a, 0x57, 0x46, 0x30, 0x5a, 0x58, 0x49, 0x67, 0x54, 0x57, 0x46, 0x75, 0x59, 0x32, 0x68, 0x6c, 0x0a, 0x63, 0x33, 0x52, 0x6c, 0x63, 0x6a, 0x45, 0x51, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x77, 0x77, 0x48, 0x55, 0x32, 0x46, 0x73, 0x5a, 0x6d, 0x39, 0x79, 0x5a, 0x44, 0x45, 0x61, 0x4d, 0x42, 0x67, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x52, 0x51, 0x32, 0x39, 0x74, 0x62, 0x32, 0x52, 0x76, 0x49, 0x45, 0x4e, 0x42, 0x49, 0x45, 0x78, 0x70, 0x62, 0x57, 0x6c, 0x30, 0x5a, 0x57, 0x51, 0x78, 0x49, 0x54, 0x41, 0x66, 0x42, 0x67, 0x4e, 0x56, 0x0a, 0x42, 0x41, 0x4d, 0x4d, 0x47, 0x45, 0x46, 0x42, 0x51, 0x53, 0x42, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x61, 0x57, 0x5a, 0x70, 0x59, 0x32, 0x46, 0x30, 0x5a, 0x53, 0x42, 0x54, 0x5a, 0x58, 0x4a, 0x32, 0x61, 0x57, 0x4e, 0x6c, 0x63, 0x7a, 0x43, 0x43, 0x41, 0x53, 0x49, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x45, 0x50, 0x41, 0x44, 0x43, 0x43, 0x41, 0x51, 0x6f, 0x43, 0x0a, 0x67, 0x67, 0x45, 0x42, 0x41, 0x4c, 0x35, 0x41, 0x6e, 0x66, 0x52, 0x75, 0x34, 0x65, 0x70, 0x32, 0x68, 0x78, 0x78, 0x4e, 0x52, 0x55, 0x53, 0x4f, 0x76, 0x6b, 0x62, 0x49, 0x67, 0x77, 0x61, 0x64, 0x77, 0x53, 0x72, 0x2b, 0x47, 0x42, 0x2b, 0x4f, 0x35, 0x41, 0x4c, 0x36, 0x38, 0x36, 0x74, 0x64, 0x55, 0x49, 0x6f, 0x57, 0x4d, 0x51, 0x75, 0x61, 0x42, 0x74, 0x44, 0x46, 0x63, 0x43, 0x4c, 0x4e, 0x53, 0x53, 0x31, 0x55, 0x59, 0x38, 0x79, 0x32, 0x62, 0x6d, 0x68, 0x47, 0x0a, 0x43, 0x31, 0x50, 0x71, 0x79, 0x30, 0x77, 0x6b, 0x77, 0x4c, 0x78, 0x79, 0x54, 0x75, 0x72, 0x78, 0x46, 0x61, 0x37, 0x30, 0x56, 0x4a, 0x6f, 0x53, 0x43, 0x73, 0x4e, 0x36, 0x73, 0x6a, 0x4e, 0x67, 0x34, 0x74, 0x71, 0x4a, 0x56, 0x66, 0x4d, 0x69, 0x57, 0x50, 0x50, 0x65, 0x33, 0x4d, 0x2f, 0x76, 0x67, 0x34, 0x61, 0x69, 0x6a, 0x4a, 0x52, 0x50, 0x6e, 0x32, 0x6a, 0x79, 0x6d, 0x4a, 0x42, 0x47, 0x68, 0x43, 0x66, 0x48, 0x64, 0x72, 0x2f, 0x6a, 0x7a, 0x44, 0x55, 0x73, 0x0a, 0x69, 0x31, 0x34, 0x48, 0x5a, 0x47, 0x57, 0x43, 0x77, 0x45, 0x69, 0x77, 0x71, 0x4a, 0x48, 0x35, 0x59, 0x5a, 0x39, 0x32, 0x49, 0x46, 0x43, 0x6f, 0x6b, 0x63, 0x64, 0x6d, 0x74, 0x65, 0x74, 0x34, 0x59, 0x67, 0x4e, 0x57, 0x38, 0x49, 0x6f, 0x61, 0x45, 0x2b, 0x6f, 0x78, 0x6f, 0x78, 0x36, 0x67, 0x6d, 0x66, 0x30, 0x34, 0x39, 0x76, 0x59, 0x6e, 0x4d, 0x6c, 0x68, 0x76, 0x42, 0x2f, 0x56, 0x72, 0x75, 0x50, 0x73, 0x55, 0x4b, 0x36, 0x2b, 0x33, 0x71, 0x73, 0x7a, 0x57, 0x0a, 0x59, 0x31, 0x39, 0x7a, 0x6a, 0x4e, 0x6f, 0x46, 0x6d, 0x61, 0x67, 0x34, 0x71, 0x4d, 0x73, 0x58, 0x65, 0x44, 0x5a, 0x52, 0x72, 0x4f, 0x6d, 0x65, 0x39, 0x48, 0x67, 0x36, 0x6a, 0x63, 0x38, 0x50, 0x32, 0x55, 0x4c, 0x69, 0x6d, 0x41, 0x79, 0x72, 0x4c, 0x35, 0x38, 0x4f, 0x41, 0x64, 0x37, 0x76, 0x6e, 0x35, 0x6c, 0x4a, 0x38, 0x53, 0x33, 0x66, 0x72, 0x48, 0x52, 0x4e, 0x47, 0x35, 0x69, 0x31, 0x52, 0x38, 0x58, 0x6c, 0x4b, 0x64, 0x48, 0x35, 0x6b, 0x42, 0x6a, 0x48, 0x0a, 0x59, 0x70, 0x79, 0x2b, 0x67, 0x38, 0x63, 0x6d, 0x65, 0x7a, 0x36, 0x4b, 0x4a, 0x63, 0x66, 0x41, 0x33, 0x5a, 0x33, 0x6d, 0x4e, 0x57, 0x67, 0x51, 0x49, 0x4a, 0x32, 0x50, 0x32, 0x4e, 0x37, 0x53, 0x77, 0x34, 0x53, 0x63, 0x44, 0x56, 0x37, 0x6f, 0x4c, 0x38, 0x6b, 0x43, 0x41, 0x77, 0x45, 0x41, 0x41, 0x61, 0x4f, 0x42, 0x77, 0x44, 0x43, 0x42, 0x76, 0x54, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x6f, 0x42, 0x45, 0x4b, 0x0a, 0x49, 0x7a, 0x36, 0x57, 0x38, 0x51, 0x66, 0x73, 0x34, 0x71, 0x38, 0x70, 0x37, 0x34, 0x4b, 0x6c, 0x66, 0x39, 0x41, 0x77, 0x70, 0x4c, 0x51, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x45, 0x47, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x65, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x66, 0x0a, 0x42, 0x48, 0x51, 0x77, 0x63, 0x6a, 0x41, 0x34, 0x6f, 0x44, 0x61, 0x67, 0x4e, 0x49, 0x59, 0x79, 0x61, 0x48, 0x52, 0x30, 0x63, 0x44, 0x6f, 0x76, 0x4c, 0x32, 0x4e, 0x79, 0x62, 0x43, 0x35, 0x6a, 0x62, 0x32, 0x31, 0x76, 0x5a, 0x47, 0x39, 0x6a, 0x59, 0x53, 0x35, 0x6a, 0x62, 0x32, 0x30, 0x76, 0x51, 0x55, 0x46, 0x42, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x64, 0x47, 0x56, 0x54, 0x5a, 0x58, 0x4a, 0x32, 0x61, 0x57, 0x4e, 0x6c, 0x0a, 0x63, 0x79, 0x35, 0x6a, 0x63, 0x6d, 0x77, 0x77, 0x4e, 0x71, 0x41, 0x30, 0x6f, 0x44, 0x4b, 0x47, 0x4d, 0x47, 0x68, 0x30, 0x64, 0x48, 0x41, 0x36, 0x4c, 0x79, 0x39, 0x6a, 0x63, 0x6d, 0x77, 0x75, 0x59, 0x32, 0x39, 0x74, 0x62, 0x32, 0x52, 0x76, 0x4c, 0x6d, 0x35, 0x6c, 0x64, 0x43, 0x39, 0x42, 0x51, 0x55, 0x46, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x61, 0x57, 0x5a, 0x70, 0x59, 0x32, 0x46, 0x30, 0x5a, 0x56, 0x4e, 0x6c, 0x63, 0x6e, 0x5a, 0x70, 0x59, 0x32, 0x56, 0x7a, 0x0a, 0x4c, 0x6d, 0x4e, 0x79, 0x62, 0x44, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x55, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x51, 0x45, 0x41, 0x43, 0x46, 0x62, 0x38, 0x41, 0x76, 0x43, 0x62, 0x36, 0x50, 0x2b, 0x6b, 0x2b, 0x74, 0x5a, 0x37, 0x78, 0x6b, 0x53, 0x41, 0x7a, 0x6b, 0x2f, 0x45, 0x78, 0x66, 0x59, 0x41, 0x57, 0x4d, 0x79, 0x6d, 0x74, 0x72, 0x77, 0x55, 0x53, 0x57, 0x67, 0x45, 0x64, 0x75, 0x6a, 0x6d, 0x0a, 0x37, 0x6c, 0x33, 0x73, 0x41, 0x67, 0x39, 0x67, 0x31, 0x6f, 0x31, 0x51, 0x47, 0x45, 0x38, 0x6d, 0x54, 0x67, 0x48, 0x6a, 0x35, 0x72, 0x43, 0x6c, 0x37, 0x72, 0x2b, 0x38, 0x64, 0x46, 0x52, 0x42, 0x76, 0x2f, 0x33, 0x38, 0x45, 0x72, 0x6a, 0x48, 0x54, 0x31, 0x72, 0x30, 0x69, 0x57, 0x41, 0x46, 0x66, 0x32, 0x43, 0x33, 0x42, 0x55, 0x72, 0x7a, 0x39, 0x76, 0x48, 0x43, 0x76, 0x38, 0x53, 0x35, 0x64, 0x49, 0x61, 0x32, 0x4c, 0x58, 0x31, 0x72, 0x7a, 0x4e, 0x4c, 0x7a, 0x0a, 0x52, 0x74, 0x30, 0x76, 0x78, 0x75, 0x42, 0x71, 0x77, 0x38, 0x4d, 0x30, 0x41, 0x79, 0x78, 0x39, 0x6c, 0x74, 0x31, 0x61, 0x77, 0x67, 0x36, 0x6e, 0x43, 0x70, 0x6e, 0x42, 0x42, 0x59, 0x75, 0x72, 0x44, 0x43, 0x2f, 0x7a, 0x58, 0x44, 0x72, 0x50, 0x62, 0x44, 0x64, 0x56, 0x43, 0x59, 0x66, 0x65, 0x55, 0x30, 0x42, 0x73, 0x57, 0x4f, 0x2f, 0x38, 0x74, 0x71, 0x74, 0x6c, 0x62, 0x67, 0x54, 0x32, 0x47, 0x39, 0x77, 0x38, 0x34, 0x46, 0x6f, 0x56, 0x78, 0x70, 0x37, 0x5a, 0x0a, 0x38, 0x56, 0x6c, 0x49, 0x4d, 0x43, 0x46, 0x6c, 0x41, 0x32, 0x7a, 0x73, 0x36, 0x53, 0x46, 0x7a, 0x37, 0x4a, 0x73, 0x44, 0x6f, 0x65, 0x41, 0x33, 0x72, 0x61, 0x41, 0x56, 0x47, 0x49, 0x2f, 0x36, 0x75, 0x67, 0x4c, 0x4f, 0x70, 0x79, 0x79, 0x70, 0x45, 0x42, 0x4d, 0x73, 0x31, 0x4f, 0x55, 0x49, 0x4a, 0x71, 0x73, 0x69, 0x6c, 0x32, 0x44, 0x34, 0x6b, 0x46, 0x35, 0x30, 0x31, 0x4b, 0x4b, 0x61, 0x55, 0x37, 0x33, 0x79, 0x71, 0x57, 0x6a, 0x67, 0x6f, 0x6d, 0x37, 0x43, 0x0a, 0x31, 0x32, 0x79, 0x78, 0x6f, 0x77, 0x2b, 0x65, 0x76, 0x2b, 0x74, 0x6f, 0x35, 0x31, 0x62, 0x79, 0x72, 0x76, 0x4c, 0x6a, 0x4b, 0x7a, 0x67, 0x36, 0x43, 0x59, 0x47, 0x31, 0x61, 0x34, 0x58, 0x58, 0x76, 0x69, 0x33, 0x74, 0x50, 0x78, 0x71, 0x33, 0x73, 0x6d, 0x50, 0x69, 0x39, 0x57, 0x49, 0x73, 0x67, 0x74, 0x52, 0x71, 0x41, 0x45, 0x46, 0x51, 0x38, 0x54, 0x6d, 0x44, 0x6e, 0x35, 0x58, 0x70, 0x4e, 0x70, 0x61, 0x59, 0x62, 0x67, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x51, 0x75, 0x6f, 0x56, 0x61, 0x64, 0x69, 0x73, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x32, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x74, 0x7a, 0x43, 0x43, 0x41, 0x35, 0x2b, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x43, 0x42, 0x51, 0x6b, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x46, 0x42, 0x51, 0x41, 0x77, 0x52, 0x54, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x51, 0x6b, 0x30, 0x78, 0x47, 0x54, 0x41, 0x58, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x0a, 0x45, 0x46, 0x46, 0x31, 0x62, 0x31, 0x5a, 0x68, 0x5a, 0x47, 0x6c, 0x7a, 0x49, 0x45, 0x78, 0x70, 0x62, 0x57, 0x6c, 0x30, 0x5a, 0x57, 0x51, 0x78, 0x47, 0x7a, 0x41, 0x5a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x45, 0x6c, 0x46, 0x31, 0x62, 0x31, 0x5a, 0x68, 0x5a, 0x47, 0x6c, 0x7a, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x67, 0x4d, 0x6a, 0x41, 0x65, 0x46, 0x77, 0x30, 0x77, 0x4e, 0x6a, 0x45, 0x78, 0x4d, 0x6a, 0x51, 0x78, 0x0a, 0x4f, 0x44, 0x49, 0x33, 0x4d, 0x44, 0x42, 0x61, 0x46, 0x77, 0x30, 0x7a, 0x4d, 0x54, 0x45, 0x78, 0x4d, 0x6a, 0x51, 0x78, 0x4f, 0x44, 0x49, 0x7a, 0x4d, 0x7a, 0x4e, 0x61, 0x4d, 0x45, 0x55, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6b, 0x4a, 0x4e, 0x4d, 0x52, 0x6b, 0x77, 0x46, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x78, 0x42, 0x52, 0x64, 0x57, 0x39, 0x57, 0x59, 0x57, 0x52, 0x70, 0x63, 0x79, 0x42, 0x4d, 0x0a, 0x61, 0x57, 0x31, 0x70, 0x64, 0x47, 0x56, 0x6b, 0x4d, 0x52, 0x73, 0x77, 0x47, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x4a, 0x52, 0x64, 0x57, 0x39, 0x57, 0x59, 0x57, 0x52, 0x70, 0x63, 0x79, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x42, 0x49, 0x44, 0x49, 0x77, 0x67, 0x67, 0x49, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x0a, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x49, 0x4b, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x43, 0x61, 0x47, 0x4d, 0x70, 0x4c, 0x6c, 0x41, 0x30, 0x41, 0x4c, 0x61, 0x38, 0x44, 0x4b, 0x59, 0x72, 0x77, 0x44, 0x34, 0x48, 0x49, 0x72, 0x6b, 0x77, 0x5a, 0x68, 0x52, 0x30, 0x49, 0x6e, 0x36, 0x73, 0x70, 0x52, 0x49, 0x58, 0x7a, 0x4c, 0x34, 0x47, 0x74, 0x4d, 0x68, 0x36, 0x51, 0x52, 0x72, 0x2b, 0x6a, 0x68, 0x69, 0x59, 0x61, 0x48, 0x76, 0x35, 0x2b, 0x48, 0x42, 0x67, 0x36, 0x0a, 0x58, 0x4a, 0x78, 0x67, 0x46, 0x79, 0x6f, 0x36, 0x64, 0x49, 0x4d, 0x7a, 0x4d, 0x48, 0x31, 0x68, 0x56, 0x42, 0x48, 0x4c, 0x37, 0x61, 0x76, 0x67, 0x35, 0x74, 0x4b, 0x69, 0x66, 0x76, 0x56, 0x72, 0x62, 0x78, 0x69, 0x33, 0x43, 0x67, 0x73, 0x74, 0x2f, 0x65, 0x6b, 0x2b, 0x37, 0x77, 0x72, 0x47, 0x73, 0x78, 0x44, 0x70, 0x33, 0x4d, 0x4a, 0x47, 0x46, 0x2f, 0x68, 0x64, 0x2f, 0x61, 0x54, 0x61, 0x2f, 0x35, 0x35, 0x4a, 0x57, 0x70, 0x7a, 0x6d, 0x4d, 0x2b, 0x59, 0x6b, 0x0a, 0x6c, 0x76, 0x63, 0x2f, 0x75, 0x6c, 0x73, 0x72, 0x48, 0x48, 0x6f, 0x31, 0x77, 0x74, 0x5a, 0x6e, 0x2f, 0x71, 0x74, 0x6d, 0x55, 0x49, 0x74, 0x74, 0x4b, 0x47, 0x41, 0x72, 0x37, 0x39, 0x64, 0x67, 0x77, 0x38, 0x65, 0x54, 0x76, 0x49, 0x30, 0x32, 0x6b, 0x66, 0x4e, 0x2f, 0x2b, 0x4e, 0x73, 0x52, 0x45, 0x38, 0x53, 0x63, 0x64, 0x33, 0x62, 0x42, 0x72, 0x72, 0x63, 0x43, 0x61, 0x6f, 0x46, 0x36, 0x71, 0x55, 0x57, 0x44, 0x34, 0x67, 0x58, 0x6d, 0x75, 0x56, 0x62, 0x42, 0x0a, 0x6c, 0x44, 0x65, 0x50, 0x53, 0x48, 0x46, 0x6a, 0x49, 0x75, 0x77, 0x58, 0x5a, 0x51, 0x65, 0x56, 0x69, 0x6b, 0x76, 0x66, 0x6a, 0x38, 0x5a, 0x61, 0x43, 0x75, 0x57, 0x77, 0x34, 0x31, 0x39, 0x65, 0x61, 0x78, 0x47, 0x72, 0x44, 0x50, 0x6d, 0x46, 0x36, 0x30, 0x54, 0x70, 0x2b, 0x41, 0x52, 0x7a, 0x38, 0x75, 0x6e, 0x2b, 0x58, 0x4a, 0x69, 0x4d, 0x39, 0x58, 0x4f, 0x76, 0x61, 0x37, 0x52, 0x2b, 0x7a, 0x64, 0x52, 0x63, 0x41, 0x69, 0x74, 0x4d, 0x4f, 0x65, 0x47, 0x79, 0x0a, 0x6c, 0x5a, 0x55, 0x74, 0x51, 0x6f, 0x66, 0x58, 0x31, 0x62, 0x4f, 0x51, 0x51, 0x37, 0x64, 0x73, 0x45, 0x2f, 0x48, 0x65, 0x33, 0x66, 0x62, 0x45, 0x2b, 0x49, 0x6b, 0x2f, 0x30, 0x58, 0x58, 0x31, 0x6b, 0x73, 0x4f, 0x52, 0x31, 0x59, 0x71, 0x49, 0x30, 0x4a, 0x44, 0x73, 0x33, 0x47, 0x33, 0x65, 0x69, 0x63, 0x4a, 0x6c, 0x63, 0x5a, 0x61, 0x4c, 0x44, 0x51, 0x50, 0x39, 0x6e, 0x4c, 0x39, 0x62, 0x46, 0x71, 0x79, 0x53, 0x32, 0x2b, 0x72, 0x2b, 0x65, 0x58, 0x79, 0x74, 0x0a, 0x36, 0x36, 0x2f, 0x33, 0x46, 0x73, 0x76, 0x62, 0x7a, 0x53, 0x55, 0x72, 0x35, 0x52, 0x2f, 0x37, 0x6d, 0x70, 0x2f, 0x69, 0x55, 0x63, 0x77, 0x36, 0x55, 0x77, 0x78, 0x49, 0x35, 0x67, 0x36, 0x39, 0x79, 0x62, 0x52, 0x32, 0x42, 0x6c, 0x4c, 0x6d, 0x45, 0x52, 0x4f, 0x46, 0x63, 0x6d, 0x4d, 0x44, 0x42, 0x4f, 0x41, 0x45, 0x4e, 0x69, 0x73, 0x67, 0x47, 0x51, 0x4c, 0x6f, 0x64, 0x4b, 0x63, 0x66, 0x74, 0x73, 0x6c, 0x57, 0x5a, 0x76, 0x42, 0x31, 0x4a, 0x64, 0x78, 0x6e, 0x0a, 0x77, 0x51, 0x35, 0x68, 0x59, 0x49, 0x69, 0x7a, 0x50, 0x74, 0x47, 0x6f, 0x2f, 0x4b, 0x50, 0x61, 0x48, 0x62, 0x44, 0x52, 0x73, 0x53, 0x4e, 0x55, 0x33, 0x30, 0x52, 0x32, 0x62, 0x65, 0x31, 0x42, 0x32, 0x4d, 0x47, 0x79, 0x49, 0x72, 0x5a, 0x54, 0x48, 0x4e, 0x38, 0x31, 0x48, 0x64, 0x79, 0x68, 0x64, 0x79, 0x6f, 0x78, 0x35, 0x43, 0x33, 0x31, 0x35, 0x65, 0x58, 0x62, 0x79, 0x4f, 0x44, 0x2f, 0x35, 0x59, 0x44, 0x58, 0x43, 0x32, 0x4f, 0x67, 0x2f, 0x7a, 0x4f, 0x68, 0x0a, 0x44, 0x37, 0x6f, 0x73, 0x46, 0x52, 0x58, 0x71, 0x6c, 0x37, 0x50, 0x53, 0x6f, 0x72, 0x57, 0x2b, 0x38, 0x6f, 0x79, 0x57, 0x48, 0x68, 0x71, 0x50, 0x48, 0x57, 0x79, 0x6b, 0x59, 0x54, 0x65, 0x35, 0x68, 0x6e, 0x4d, 0x7a, 0x31, 0x35, 0x65, 0x57, 0x6e, 0x69, 0x4e, 0x39, 0x67, 0x71, 0x52, 0x4d, 0x67, 0x65, 0x4b, 0x68, 0x30, 0x62, 0x70, 0x6e, 0x58, 0x35, 0x55, 0x48, 0x6f, 0x79, 0x63, 0x52, 0x37, 0x68, 0x59, 0x51, 0x65, 0x37, 0x78, 0x46, 0x53, 0x6b, 0x79, 0x79, 0x0a, 0x42, 0x4e, 0x4b, 0x72, 0x37, 0x39, 0x58, 0x39, 0x44, 0x46, 0x48, 0x4f, 0x55, 0x47, 0x6f, 0x49, 0x4d, 0x66, 0x6d, 0x52, 0x32, 0x67, 0x79, 0x50, 0x5a, 0x46, 0x77, 0x44, 0x77, 0x7a, 0x71, 0x4c, 0x49, 0x44, 0x39, 0x75, 0x6a, 0x57, 0x63, 0x39, 0x4f, 0x74, 0x62, 0x2b, 0x66, 0x56, 0x75, 0x49, 0x79, 0x56, 0x37, 0x37, 0x7a, 0x47, 0x48, 0x63, 0x69, 0x7a, 0x4e, 0x33, 0x30, 0x30, 0x51, 0x79, 0x4e, 0x51, 0x6c, 0x69, 0x42, 0x4a, 0x49, 0x57, 0x45, 0x4e, 0x69, 0x65, 0x0a, 0x4a, 0x30, 0x66, 0x37, 0x4f, 0x79, 0x48, 0x6a, 0x2b, 0x4f, 0x73, 0x64, 0x57, 0x77, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x34, 0x47, 0x77, 0x4d, 0x49, 0x47, 0x74, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x43, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x45, 0x47, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x0a, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x51, 0x61, 0x68, 0x47, 0x4b, 0x38, 0x53, 0x45, 0x77, 0x7a, 0x4a, 0x51, 0x54, 0x55, 0x37, 0x74, 0x44, 0x32, 0x41, 0x38, 0x51, 0x5a, 0x52, 0x74, 0x47, 0x55, 0x61, 0x7a, 0x42, 0x75, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x53, 0x4d, 0x45, 0x5a, 0x7a, 0x42, 0x6c, 0x67, 0x42, 0x51, 0x61, 0x68, 0x47, 0x4b, 0x38, 0x53, 0x45, 0x77, 0x7a, 0x4a, 0x51, 0x54, 0x55, 0x37, 0x74, 0x44, 0x32, 0x41, 0x38, 0x51, 0x5a, 0x52, 0x74, 0x47, 0x55, 0x0a, 0x61, 0x36, 0x46, 0x4a, 0x70, 0x45, 0x63, 0x77, 0x52, 0x54, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x51, 0x6b, 0x30, 0x78, 0x47, 0x54, 0x41, 0x58, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x45, 0x46, 0x46, 0x31, 0x62, 0x31, 0x5a, 0x68, 0x5a, 0x47, 0x6c, 0x7a, 0x49, 0x45, 0x78, 0x70, 0x62, 0x57, 0x6c, 0x30, 0x5a, 0x57, 0x51, 0x78, 0x47, 0x7a, 0x41, 0x5a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x0a, 0x45, 0x6c, 0x46, 0x31, 0x62, 0x31, 0x5a, 0x68, 0x5a, 0x47, 0x6c, 0x7a, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x67, 0x4d, 0x6f, 0x49, 0x43, 0x42, 0x51, 0x6b, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x46, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x42, 0x41, 0x44, 0x34, 0x4b, 0x46, 0x6b, 0x32, 0x66, 0x42, 0x6c, 0x75, 0x6f, 0x72, 0x6e, 0x46, 0x64, 0x4c, 0x77, 0x55, 0x76, 0x0a, 0x5a, 0x2b, 0x59, 0x54, 0x52, 0x59, 0x50, 0x45, 0x4e, 0x76, 0x62, 0x7a, 0x77, 0x43, 0x59, 0x4d, 0x44, 0x62, 0x56, 0x48, 0x5a, 0x46, 0x33, 0x34, 0x74, 0x48, 0x4c, 0x4a, 0x52, 0x71, 0x55, 0x44, 0x47, 0x43, 0x64, 0x56, 0x69, 0x58, 0x68, 0x39, 0x64, 0x75, 0x71, 0x57, 0x4e, 0x49, 0x41, 0x58, 0x49, 0x4e, 0x7a, 0x6e, 0x67, 0x2f, 0x69, 0x4e, 0x2f, 0x41, 0x65, 0x34, 0x32, 0x6c, 0x39, 0x4e, 0x4c, 0x6d, 0x65, 0x79, 0x68, 0x50, 0x33, 0x5a, 0x52, 0x50, 0x78, 0x33, 0x0a, 0x55, 0x49, 0x48, 0x6d, 0x66, 0x4c, 0x54, 0x4a, 0x44, 0x51, 0x74, 0x79, 0x55, 0x2f, 0x68, 0x32, 0x42, 0x77, 0x64, 0x42, 0x52, 0x35, 0x59, 0x4d, 0x2b, 0x2b, 0x43, 0x43, 0x4a, 0x70, 0x4e, 0x56, 0x6a, 0x50, 0x34, 0x69, 0x48, 0x32, 0x42, 0x6c, 0x66, 0x46, 0x2f, 0x6e, 0x4a, 0x72, 0x50, 0x33, 0x4d, 0x70, 0x43, 0x59, 0x55, 0x4e, 0x51, 0x33, 0x63, 0x56, 0x58, 0x32, 0x6b, 0x69, 0x46, 0x34, 0x39, 0x35, 0x56, 0x35, 0x2b, 0x76, 0x67, 0x74, 0x4a, 0x6f, 0x64, 0x6d, 0x0a, 0x56, 0x6a, 0x42, 0x33, 0x70, 0x6a, 0x64, 0x34, 0x4d, 0x31, 0x49, 0x51, 0x57, 0x4b, 0x34, 0x2f, 0x59, 0x59, 0x37, 0x79, 0x61, 0x72, 0x48, 0x76, 0x47, 0x48, 0x35, 0x4b, 0x57, 0x57, 0x50, 0x4b, 0x6a, 0x61, 0x4a, 0x57, 0x31, 0x61, 0x63, 0x76, 0x76, 0x46, 0x59, 0x66, 0x7a, 0x7a, 0x6e, 0x42, 0x34, 0x76, 0x73, 0x4b, 0x71, 0x42, 0x55, 0x73, 0x66, 0x55, 0x31, 0x36, 0x59, 0x38, 0x5a, 0x73, 0x6c, 0x30, 0x51, 0x38, 0x30, 0x6d, 0x2f, 0x44, 0x53, 0x68, 0x63, 0x4b, 0x0a, 0x2b, 0x4a, 0x44, 0x53, 0x56, 0x36, 0x49, 0x5a, 0x55, 0x61, 0x55, 0x74, 0x6c, 0x30, 0x48, 0x61, 0x42, 0x30, 0x2b, 0x70, 0x55, 0x4e, 0x71, 0x51, 0x6a, 0x5a, 0x52, 0x47, 0x34, 0x54, 0x37, 0x77, 0x6c, 0x50, 0x30, 0x51, 0x41, 0x44, 0x6a, 0x31, 0x4f, 0x2b, 0x68, 0x41, 0x34, 0x62, 0x52, 0x75, 0x56, 0x68, 0x6f, 0x67, 0x7a, 0x47, 0x39, 0x59, 0x6a, 0x65, 0x30, 0x75, 0x52, 0x59, 0x2f, 0x57, 0x36, 0x5a, 0x4d, 0x2f, 0x35, 0x37, 0x45, 0x73, 0x33, 0x7a, 0x72, 0x57, 0x0a, 0x49, 0x6f, 0x7a, 0x63, 0x68, 0x4c, 0x73, 0x69, 0x62, 0x39, 0x44, 0x34, 0x35, 0x4d, 0x59, 0x35, 0x36, 0x51, 0x53, 0x49, 0x50, 0x4d, 0x4f, 0x36, 0x36, 0x31, 0x56, 0x36, 0x62, 0x59, 0x43, 0x5a, 0x4a, 0x50, 0x56, 0x73, 0x41, 0x66, 0x76, 0x34, 0x6c, 0x37, 0x43, 0x55, 0x57, 0x2b, 0x76, 0x39, 0x30, 0x6d, 0x2f, 0x78, 0x64, 0x32, 0x67, 0x4e, 0x4e, 0x57, 0x51, 0x6a, 0x72, 0x4c, 0x68, 0x56, 0x6f, 0x51, 0x50, 0x52, 0x54, 0x55, 0x49, 0x5a, 0x33, 0x50, 0x68, 0x31, 0x0a, 0x57, 0x56, 0x61, 0x6a, 0x2b, 0x61, 0x68, 0x4a, 0x65, 0x66, 0x69, 0x76, 0x44, 0x72, 0x6b, 0x52, 0x6f, 0x48, 0x79, 0x33, 0x61, 0x75, 0x30, 0x30, 0x30, 0x4c, 0x59, 0x6d, 0x59, 0x6a, 0x67, 0x61, 0x68, 0x77, 0x7a, 0x34, 0x36, 0x50, 0x30, 0x75, 0x30, 0x35, 0x42, 0x2f, 0x42, 0x35, 0x45, 0x71, 0x48, 0x64, 0x5a, 0x2b, 0x58, 0x49, 0x57, 0x44, 0x6d, 0x62, 0x41, 0x34, 0x43, 0x44, 0x2f, 0x70, 0x58, 0x76, 0x6b, 0x31, 0x42, 0x2b, 0x54, 0x4a, 0x59, 0x6d, 0x35, 0x58, 0x0a, 0x66, 0x36, 0x64, 0x51, 0x6c, 0x66, 0x65, 0x36, 0x79, 0x4a, 0x76, 0x6d, 0x6a, 0x71, 0x49, 0x42, 0x78, 0x64, 0x5a, 0x6d, 0x76, 0x33, 0x6c, 0x68, 0x38, 0x7a, 0x77, 0x63, 0x34, 0x62, 0x6d, 0x43, 0x58, 0x46, 0x32, 0x67, 0x77, 0x2b, 0x6e, 0x59, 0x53, 0x4c, 0x30, 0x5a, 0x6f, 0x68, 0x45, 0x55, 0x47, 0x57, 0x36, 0x79, 0x68, 0x68, 0x74, 0x6f, 0x50, 0x6b, 0x67, 0x33, 0x47, 0x6f, 0x69, 0x33, 0x58, 0x5a, 0x5a, 0x65, 0x6e, 0x4d, 0x66, 0x76, 0x4a, 0x32, 0x49, 0x49, 0x0a, 0x34, 0x70, 0x45, 0x5a, 0x58, 0x4e, 0x4c, 0x78, 0x49, 0x64, 0x32, 0x36, 0x46, 0x30, 0x4b, 0x43, 0x6c, 0x33, 0x47, 0x42, 0x55, 0x7a, 0x47, 0x70, 0x6e, 0x2f, 0x5a, 0x39, 0x59, 0x72, 0x39, 0x79, 0x34, 0x61, 0x4f, 0x54, 0x48, 0x63, 0x79, 0x4b, 0x4a, 0x6c, 0x6f, 0x4a, 0x4f, 0x4e, 0x44, 0x4f, 0x31, 0x77, 0x32, 0x41, 0x46, 0x72, 0x52, 0x34, 0x70, 0x54, 0x71, 0x48, 0x54, 0x49, 0x32, 0x4b, 0x70, 0x64, 0x56, 0x47, 0x6c, 0x2f, 0x49, 0x73, 0x45, 0x4c, 0x6d, 0x38, 0x0a, 0x56, 0x43, 0x4c, 0x41, 0x41, 0x56, 0x42, 0x70, 0x51, 0x35, 0x37, 0x30, 0x73, 0x75, 0x39, 0x74, 0x2b, 0x4f, 0x7a, 0x61, 0x38, 0x65, 0x4f, 0x78, 0x37, 0x39, 0x2b, 0x52, 0x6a, 0x31, 0x51, 0x71, 0x43, 0x79, 0x58, 0x42, 0x4a, 0x68, 0x6e, 0x45, 0x55, 0x68, 0x41, 0x46, 0x5a, 0x64, 0x57, 0x43, 0x45, 0x4f, 0x72, 0x43, 0x4d, 0x63, 0x30, 0x75, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x51, 0x75, 0x6f, 0x56, 0x61, 0x64, 0x69, 0x73, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x33, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x47, 0x6e, 0x54, 0x43, 0x43, 0x42, 0x49, 0x57, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x43, 0x42, 0x63, 0x59, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x46, 0x42, 0x51, 0x41, 0x77, 0x52, 0x54, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x51, 0x6b, 0x30, 0x78, 0x47, 0x54, 0x41, 0x58, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x0a, 0x45, 0x46, 0x46, 0x31, 0x62, 0x31, 0x5a, 0x68, 0x5a, 0x47, 0x6c, 0x7a, 0x49, 0x45, 0x78, 0x70, 0x62, 0x57, 0x6c, 0x30, 0x5a, 0x57, 0x51, 0x78, 0x47, 0x7a, 0x41, 0x5a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x45, 0x6c, 0x46, 0x31, 0x62, 0x31, 0x5a, 0x68, 0x5a, 0x47, 0x6c, 0x7a, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x67, 0x4d, 0x7a, 0x41, 0x65, 0x46, 0x77, 0x30, 0x77, 0x4e, 0x6a, 0x45, 0x78, 0x4d, 0x6a, 0x51, 0x78, 0x0a, 0x4f, 0x54, 0x45, 0x78, 0x4d, 0x6a, 0x4e, 0x61, 0x46, 0x77, 0x30, 0x7a, 0x4d, 0x54, 0x45, 0x78, 0x4d, 0x6a, 0x51, 0x78, 0x4f, 0x54, 0x41, 0x32, 0x4e, 0x44, 0x52, 0x61, 0x4d, 0x45, 0x55, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6b, 0x4a, 0x4e, 0x4d, 0x52, 0x6b, 0x77, 0x46, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x78, 0x42, 0x52, 0x64, 0x57, 0x39, 0x57, 0x59, 0x57, 0x52, 0x70, 0x63, 0x79, 0x42, 0x4d, 0x0a, 0x61, 0x57, 0x31, 0x70, 0x64, 0x47, 0x56, 0x6b, 0x4d, 0x52, 0x73, 0x77, 0x47, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x4a, 0x52, 0x64, 0x57, 0x39, 0x57, 0x59, 0x57, 0x52, 0x70, 0x63, 0x79, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x42, 0x49, 0x44, 0x4d, 0x77, 0x67, 0x67, 0x49, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x0a, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x49, 0x4b, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x44, 0x4d, 0x56, 0x30, 0x49, 0x57, 0x56, 0x4a, 0x7a, 0x6d, 0x6d, 0x4e, 0x50, 0x54, 0x54, 0x65, 0x37, 0x2b, 0x37, 0x63, 0x65, 0x66, 0x51, 0x7a, 0x6c, 0x4b, 0x5a, 0x62, 0x50, 0x6f, 0x46, 0x6f, 0x67, 0x30, 0x32, 0x77, 0x31, 0x5a, 0x6b, 0x58, 0x54, 0x50, 0x6b, 0x72, 0x67, 0x45, 0x51, 0x4b, 0x30, 0x43, 0x53, 0x7a, 0x47, 0x72, 0x76, 0x49, 0x32, 0x52, 0x61, 0x4e, 0x67, 0x67, 0x0a, 0x44, 0x68, 0x6f, 0x42, 0x34, 0x68, 0x70, 0x37, 0x54, 0x68, 0x64, 0x64, 0x34, 0x6f, 0x71, 0x33, 0x50, 0x35, 0x6b, 0x61, 0x7a, 0x65, 0x74, 0x68, 0x71, 0x38, 0x4a, 0x6c, 0x70, 0x68, 0x2b, 0x33, 0x74, 0x37, 0x32, 0x33, 0x6a, 0x2f, 0x7a, 0x39, 0x63, 0x49, 0x38, 0x4c, 0x6f, 0x47, 0x65, 0x2b, 0x41, 0x61, 0x4a, 0x5a, 0x7a, 0x33, 0x48, 0x6d, 0x44, 0x79, 0x6c, 0x32, 0x2f, 0x37, 0x46, 0x57, 0x65, 0x55, 0x55, 0x72, 0x48, 0x35, 0x35, 0x36, 0x56, 0x4f, 0x69, 0x6a, 0x0a, 0x4b, 0x54, 0x56, 0x6f, 0x70, 0x41, 0x46, 0x50, 0x44, 0x36, 0x51, 0x75, 0x4e, 0x2b, 0x38, 0x62, 0x76, 0x2b, 0x4f, 0x50, 0x45, 0x4b, 0x68, 0x79, 0x71, 0x31, 0x68, 0x58, 0x35, 0x31, 0x53, 0x47, 0x79, 0x4d, 0x6e, 0x7a, 0x57, 0x39, 0x6f, 0x73, 0x32, 0x6c, 0x32, 0x4f, 0x62, 0x6a, 0x79, 0x6a, 0x50, 0x74, 0x72, 0x37, 0x67, 0x75, 0x58, 0x64, 0x38, 0x6c, 0x79, 0x79, 0x42, 0x54, 0x4e, 0x76, 0x69, 0x6a, 0x62, 0x4f, 0x30, 0x42, 0x4e, 0x4f, 0x2f, 0x37, 0x39, 0x4b, 0x0a, 0x44, 0x44, 0x52, 0x4d, 0x70, 0x73, 0x4d, 0x68, 0x76, 0x56, 0x41, 0x45, 0x56, 0x65, 0x75, 0x78, 0x75, 0x35, 0x33, 0x37, 0x52, 0x52, 0x35, 0x6b, 0x46, 0x64, 0x35, 0x56, 0x41, 0x59, 0x77, 0x43, 0x64, 0x72, 0x58, 0x4c, 0x6f, 0x54, 0x39, 0x43, 0x61, 0x62, 0x77, 0x76, 0x76, 0x57, 0x68, 0x44, 0x46, 0x6c, 0x61, 0x4a, 0x4b, 0x6a, 0x64, 0x68, 0x6b, 0x66, 0x32, 0x6d, 0x72, 0x6b, 0x37, 0x41, 0x79, 0x78, 0x52, 0x6c, 0x6c, 0x44, 0x64, 0x4c, 0x6b, 0x67, 0x62, 0x76, 0x0a, 0x42, 0x4e, 0x44, 0x49, 0x6e, 0x49, 0x6a, 0x62, 0x43, 0x33, 0x75, 0x42, 0x72, 0x37, 0x45, 0x39, 0x4b, 0x73, 0x52, 0x6c, 0x4f, 0x6e, 0x69, 0x32, 0x37, 0x74, 0x79, 0x41, 0x73, 0x64, 0x4c, 0x54, 0x6d, 0x5a, 0x77, 0x36, 0x37, 0x6d, 0x74, 0x61, 0x61, 0x37, 0x4f, 0x4e, 0x74, 0x39, 0x58, 0x4f, 0x6e, 0x4d, 0x4b, 0x2b, 0x70, 0x55, 0x73, 0x76, 0x46, 0x72, 0x47, 0x65, 0x61, 0x44, 0x73, 0x47, 0x62, 0x36, 0x35, 0x39, 0x6e, 0x2f, 0x6a, 0x65, 0x37, 0x4d, 0x77, 0x70, 0x0a, 0x70, 0x35, 0x69, 0x6a, 0x4a, 0x55, 0x4d, 0x76, 0x37, 0x2f, 0x46, 0x66, 0x4a, 0x75, 0x47, 0x49, 0x54, 0x66, 0x68, 0x65, 0x62, 0x74, 0x66, 0x5a, 0x46, 0x47, 0x34, 0x5a, 0x4d, 0x32, 0x6d, 0x6e, 0x4f, 0x34, 0x53, 0x4a, 0x6b, 0x38, 0x52, 0x54, 0x56, 0x52, 0x4f, 0x68, 0x55, 0x58, 0x68, 0x41, 0x2b, 0x4c, 0x6a, 0x4a, 0x6f, 0x75, 0x35, 0x37, 0x75, 0x6c, 0x4a, 0x43, 0x67, 0x35, 0x34, 0x55, 0x37, 0x51, 0x56, 0x53, 0x57, 0x6c, 0x6c, 0x57, 0x70, 0x35, 0x66, 0x38, 0x0a, 0x6e, 0x54, 0x38, 0x4b, 0x4b, 0x64, 0x6a, 0x63, 0x54, 0x35, 0x45, 0x4f, 0x45, 0x37, 0x7a, 0x65, 0x6c, 0x61, 0x54, 0x66, 0x69, 0x35, 0x6d, 0x2b, 0x72, 0x4a, 0x73, 0x7a, 0x69, 0x4f, 0x2b, 0x31, 0x67, 0x61, 0x38, 0x62, 0x78, 0x69, 0x4a, 0x54, 0x79, 0x50, 0x62, 0x48, 0x37, 0x70, 0x63, 0x55, 0x73, 0x4d, 0x56, 0x38, 0x65, 0x46, 0x4c, 0x49, 0x38, 0x4d, 0x35, 0x75, 0x64, 0x32, 0x43, 0x45, 0x70, 0x75, 0x6b, 0x71, 0x64, 0x69, 0x44, 0x74, 0x57, 0x41, 0x45, 0x58, 0x0a, 0x4d, 0x4a, 0x50, 0x70, 0x47, 0x6f, 0x76, 0x67, 0x63, 0x32, 0x50, 0x5a, 0x61, 0x70, 0x4b, 0x55, 0x53, 0x55, 0x36, 0x30, 0x72, 0x55, 0x71, 0x46, 0x78, 0x4b, 0x4d, 0x69, 0x4d, 0x50, 0x77, 0x4a, 0x37, 0x57, 0x67, 0x69, 0x63, 0x36, 0x61, 0x49, 0x44, 0x46, 0x55, 0x68, 0x57, 0x4d, 0x58, 0x68, 0x4f, 0x70, 0x38, 0x71, 0x33, 0x63, 0x72, 0x68, 0x6b, 0x4f, 0x44, 0x5a, 0x63, 0x36, 0x74, 0x73, 0x67, 0x4c, 0x6a, 0x6f, 0x43, 0x32, 0x53, 0x54, 0x6f, 0x4a, 0x79, 0x4d, 0x0a, 0x47, 0x66, 0x2b, 0x7a, 0x30, 0x67, 0x7a, 0x73, 0x6b, 0x53, 0x61, 0x48, 0x69, 0x72, 0x4f, 0x69, 0x34, 0x58, 0x43, 0x50, 0x4c, 0x41, 0x72, 0x6c, 0x7a, 0x57, 0x31, 0x6f, 0x55, 0x65, 0x76, 0x61, 0x50, 0x77, 0x56, 0x2f, 0x69, 0x7a, 0x4c, 0x6d, 0x45, 0x31, 0x78, 0x72, 0x2f, 0x6c, 0x39, 0x41, 0x34, 0x69, 0x4c, 0x49, 0x74, 0x4c, 0x52, 0x6b, 0x54, 0x39, 0x61, 0x36, 0x66, 0x55, 0x67, 0x2b, 0x71, 0x47, 0x6b, 0x4d, 0x31, 0x37, 0x75, 0x47, 0x63, 0x63, 0x6c, 0x7a, 0x0a, 0x75, 0x44, 0x38, 0x37, 0x6e, 0x53, 0x56, 0x4c, 0x32, 0x76, 0x39, 0x41, 0x36, 0x77, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x34, 0x49, 0x42, 0x6c, 0x54, 0x43, 0x43, 0x41, 0x5a, 0x45, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x43, 0x42, 0x34, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x67, 0x42, 0x49, 0x48, 0x5a, 0x4d, 0x49, 0x48, 0x57, 0x4d, 0x49, 0x48, 0x54, 0x0a, 0x42, 0x67, 0x6b, 0x72, 0x42, 0x67, 0x45, 0x45, 0x41, 0x62, 0x35, 0x59, 0x41, 0x41, 0x4d, 0x77, 0x67, 0x63, 0x55, 0x77, 0x67, 0x5a, 0x4d, 0x47, 0x43, 0x43, 0x73, 0x47, 0x41, 0x51, 0x55, 0x46, 0x42, 0x77, 0x49, 0x43, 0x4d, 0x49, 0x47, 0x47, 0x47, 0x6f, 0x47, 0x44, 0x51, 0x57, 0x35, 0x35, 0x49, 0x48, 0x56, 0x7a, 0x5a, 0x53, 0x42, 0x76, 0x5a, 0x69, 0x42, 0x30, 0x61, 0x47, 0x6c, 0x7a, 0x49, 0x45, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x70, 0x5a, 0x6d, 0x6c, 0x6a, 0x0a, 0x59, 0x58, 0x52, 0x6c, 0x49, 0x47, 0x4e, 0x76, 0x62, 0x6e, 0x4e, 0x30, 0x61, 0x58, 0x52, 0x31, 0x64, 0x47, 0x56, 0x7a, 0x49, 0x47, 0x46, 0x6a, 0x59, 0x32, 0x56, 0x77, 0x64, 0x47, 0x46, 0x75, 0x59, 0x32, 0x55, 0x67, 0x62, 0x32, 0x59, 0x67, 0x64, 0x47, 0x68, 0x6c, 0x49, 0x46, 0x46, 0x31, 0x62, 0x31, 0x5a, 0x68, 0x5a, 0x47, 0x6c, 0x7a, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x67, 0x4d, 0x79, 0x42, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x0a, 0x61, 0x57, 0x5a, 0x70, 0x59, 0x32, 0x46, 0x30, 0x5a, 0x53, 0x42, 0x51, 0x62, 0x32, 0x78, 0x70, 0x59, 0x33, 0x6b, 0x67, 0x4c, 0x79, 0x42, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x61, 0x57, 0x5a, 0x70, 0x59, 0x32, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x49, 0x46, 0x42, 0x79, 0x59, 0x57, 0x4e, 0x30, 0x61, 0x57, 0x4e, 0x6c, 0x49, 0x46, 0x4e, 0x30, 0x59, 0x58, 0x52, 0x6c, 0x62, 0x57, 0x56, 0x75, 0x64, 0x43, 0x34, 0x77, 0x4c, 0x51, 0x59, 0x49, 0x4b, 0x77, 0x59, 0x42, 0x0a, 0x42, 0x51, 0x55, 0x48, 0x41, 0x67, 0x45, 0x57, 0x49, 0x57, 0x68, 0x30, 0x64, 0x48, 0x41, 0x36, 0x4c, 0x79, 0x39, 0x33, 0x64, 0x33, 0x63, 0x75, 0x63, 0x58, 0x56, 0x76, 0x64, 0x6d, 0x46, 0x6b, 0x61, 0x58, 0x4e, 0x6e, 0x62, 0x47, 0x39, 0x69, 0x59, 0x57, 0x77, 0x75, 0x59, 0x32, 0x39, 0x74, 0x4c, 0x32, 0x4e, 0x77, 0x63, 0x7a, 0x41, 0x4c, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x51, 0x59, 0x77, 0x48, 0x51, 0x59, 0x44, 0x0a, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x50, 0x4c, 0x41, 0x45, 0x2b, 0x43, 0x43, 0x51, 0x7a, 0x37, 0x37, 0x37, 0x69, 0x39, 0x6e, 0x4d, 0x70, 0x59, 0x31, 0x58, 0x4e, 0x75, 0x34, 0x79, 0x77, 0x4c, 0x51, 0x4d, 0x47, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x49, 0x77, 0x52, 0x6e, 0x4d, 0x47, 0x57, 0x41, 0x46, 0x50, 0x4c, 0x41, 0x45, 0x2b, 0x43, 0x43, 0x51, 0x7a, 0x37, 0x37, 0x37, 0x69, 0x39, 0x6e, 0x4d, 0x70, 0x59, 0x31, 0x58, 0x4e, 0x75, 0x34, 0x0a, 0x79, 0x77, 0x4c, 0x51, 0x6f, 0x55, 0x6d, 0x6b, 0x52, 0x7a, 0x42, 0x46, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x43, 0x54, 0x54, 0x45, 0x5a, 0x4d, 0x42, 0x63, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x51, 0x55, 0x58, 0x56, 0x76, 0x56, 0x6d, 0x46, 0x6b, 0x61, 0x58, 0x4d, 0x67, 0x54, 0x47, 0x6c, 0x74, 0x61, 0x58, 0x52, 0x6c, 0x5a, 0x44, 0x45, 0x62, 0x4d, 0x42, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x0a, 0x41, 0x78, 0x4d, 0x53, 0x55, 0x58, 0x56, 0x76, 0x56, 0x6d, 0x46, 0x6b, 0x61, 0x58, 0x4d, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x51, 0x53, 0x41, 0x7a, 0x67, 0x67, 0x49, 0x46, 0x78, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x55, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x45, 0x41, 0x54, 0x36, 0x32, 0x67, 0x4c, 0x45, 0x7a, 0x36, 0x77, 0x50, 0x4a, 0x76, 0x39, 0x32, 0x5a, 0x56, 0x0a, 0x71, 0x79, 0x4d, 0x30, 0x37, 0x75, 0x63, 0x70, 0x32, 0x73, 0x4e, 0x62, 0x74, 0x72, 0x43, 0x44, 0x32, 0x64, 0x44, 0x51, 0x34, 0x69, 0x48, 0x37, 0x38, 0x32, 0x43, 0x6e, 0x4f, 0x31, 0x31, 0x67, 0x55, 0x79, 0x65, 0x69, 0x6d, 0x2f, 0x59, 0x49, 0x49, 0x69, 0x72, 0x6e, 0x76, 0x36, 0x42, 0x79, 0x35, 0x5a, 0x77, 0x6b, 0x61, 0x6a, 0x47, 0x78, 0x6b, 0x48, 0x6f, 0x6e, 0x32, 0x34, 0x51, 0x52, 0x69, 0x53, 0x65, 0x6d, 0x64, 0x31, 0x6f, 0x34, 0x31, 0x37, 0x2b, 0x73, 0x0a, 0x68, 0x76, 0x7a, 0x75, 0x58, 0x59, 0x4f, 0x38, 0x42, 0x73, 0x62, 0x52, 0x64, 0x32, 0x73, 0x50, 0x62, 0x53, 0x51, 0x76, 0x53, 0x33, 0x70, 0x73, 0x70, 0x77, 0x65, 0x57, 0x79, 0x75, 0x4f, 0x45, 0x6e, 0x36, 0x32, 0x49, 0x69, 0x78, 0x32, 0x72, 0x46, 0x6f, 0x31, 0x62, 0x5a, 0x68, 0x66, 0x5a, 0x46, 0x76, 0x53, 0x4c, 0x67, 0x4e, 0x4c, 0x64, 0x2b, 0x4c, 0x4a, 0x32, 0x77, 0x2f, 0x77, 0x34, 0x45, 0x36, 0x6f, 0x4d, 0x33, 0x6b, 0x4a, 0x70, 0x4b, 0x32, 0x37, 0x7a, 0x0a, 0x50, 0x4f, 0x75, 0x41, 0x4a, 0x39, 0x76, 0x31, 0x70, 0x6b, 0x51, 0x4e, 0x6e, 0x31, 0x70, 0x56, 0x57, 0x51, 0x76, 0x56, 0x44, 0x56, 0x4a, 0x49, 0x78, 0x61, 0x36, 0x66, 0x38, 0x69, 0x2b, 0x41, 0x78, 0x65, 0x6f, 0x79, 0x55, 0x44, 0x55, 0x53, 0x6c, 0x79, 0x37, 0x42, 0x34, 0x66, 0x2f, 0x78, 0x49, 0x34, 0x68, 0x52, 0x4f, 0x4a, 0x2f, 0x79, 0x5a, 0x6c, 0x5a, 0x32, 0x35, 0x77, 0x39, 0x52, 0x6c, 0x36, 0x56, 0x53, 0x44, 0x45, 0x31, 0x4a, 0x55, 0x5a, 0x55, 0x32, 0x0a, 0x50, 0x62, 0x2b, 0x69, 0x53, 0x77, 0x77, 0x51, 0x48, 0x59, 0x61, 0x5a, 0x54, 0x4b, 0x72, 0x7a, 0x63, 0x68, 0x47, 0x54, 0x35, 0x4f, 0x72, 0x32, 0x6d, 0x39, 0x71, 0x6f, 0x58, 0x61, 0x64, 0x4e, 0x74, 0x35, 0x34, 0x43, 0x72, 0x6e, 0x4d, 0x41, 0x79, 0x4e, 0x6f, 0x6a, 0x41, 0x2b, 0x6a, 0x35, 0x36, 0x68, 0x6c, 0x30, 0x59, 0x67, 0x43, 0x55, 0x79, 0x79, 0x49, 0x67, 0x76, 0x70, 0x53, 0x6e, 0x57, 0x62, 0x57, 0x43, 0x61, 0x72, 0x36, 0x5a, 0x65, 0x58, 0x71, 0x70, 0x0a, 0x38, 0x6b, 0x6f, 0x6b, 0x55, 0x76, 0x64, 0x30, 0x2f, 0x62, 0x70, 0x4f, 0x35, 0x71, 0x67, 0x64, 0x41, 0x6d, 0x36, 0x78, 0x44, 0x59, 0x42, 0x45, 0x77, 0x61, 0x37, 0x54, 0x49, 0x7a, 0x64, 0x66, 0x75, 0x34, 0x56, 0x38, 0x4b, 0x35, 0x49, 0x75, 0x36, 0x48, 0x36, 0x6c, 0x69, 0x39, 0x32, 0x5a, 0x34, 0x62, 0x38, 0x6e, 0x62, 0x79, 0x31, 0x64, 0x71, 0x6e, 0x75, 0x48, 0x2f, 0x67, 0x72, 0x64, 0x53, 0x2f, 0x79, 0x4f, 0x39, 0x53, 0x62, 0x6b, 0x62, 0x6e, 0x42, 0x43, 0x0a, 0x62, 0x6a, 0x50, 0x73, 0x4d, 0x5a, 0x35, 0x37, 0x6b, 0x38, 0x48, 0x6b, 0x79, 0x57, 0x6b, 0x61, 0x50, 0x63, 0x42, 0x72, 0x54, 0x69, 0x4a, 0x74, 0x37, 0x71, 0x74, 0x59, 0x54, 0x63, 0x62, 0x51, 0x51, 0x63, 0x45, 0x72, 0x36, 0x6b, 0x38, 0x53, 0x68, 0x31, 0x37, 0x72, 0x52, 0x64, 0x68, 0x73, 0x39, 0x5a, 0x67, 0x43, 0x30, 0x36, 0x44, 0x59, 0x56, 0x59, 0x6f, 0x47, 0x6d, 0x52, 0x6d, 0x69, 0x6f, 0x48, 0x66, 0x52, 0x4d, 0x4a, 0x36, 0x73, 0x7a, 0x48, 0x58, 0x75, 0x0a, 0x67, 0x2f, 0x57, 0x77, 0x59, 0x6a, 0x6e, 0x50, 0x62, 0x46, 0x66, 0x69, 0x54, 0x4e, 0x4b, 0x52, 0x43, 0x77, 0x35, 0x31, 0x4b, 0x42, 0x75, 0x61, 0x76, 0x2f, 0x30, 0x61, 0x51, 0x2f, 0x48, 0x4b, 0x64, 0x2f, 0x73, 0x37, 0x6a, 0x32, 0x47, 0x34, 0x61, 0x53, 0x67, 0x57, 0x51, 0x67, 0x52, 0x65, 0x63, 0x43, 0x6f, 0x63, 0x49, 0x64, 0x69, 0x50, 0x34, 0x62, 0x30, 0x6a, 0x57, 0x79, 0x31, 0x30, 0x51, 0x4a, 0x4c, 0x5a, 0x59, 0x78, 0x6b, 0x4e, 0x63, 0x39, 0x31, 0x70, 0x0a, 0x76, 0x47, 0x4a, 0x48, 0x76, 0x4f, 0x42, 0x30, 0x4b, 0x37, 0x4c, 0x72, 0x66, 0x62, 0x35, 0x42, 0x47, 0x37, 0x58, 0x41, 0x52, 0x73, 0x57, 0x68, 0x49, 0x73, 0x74, 0x66, 0x54, 0x73, 0x45, 0x6f, 0x6b, 0x74, 0x34, 0x59, 0x75, 0x74, 0x55, 0x71, 0x4b, 0x4c, 0x73, 0x52, 0x69, 0x78, 0x65, 0x54, 0x6d, 0x4a, 0x6c, 0x67, 0x6c, 0x46, 0x77, 0x6a, 0x7a, 0x31, 0x6f, 0x6e, 0x6c, 0x31, 0x34, 0x4c, 0x42, 0x51, 0x61, 0x54, 0x4e, 0x78, 0x34, 0x37, 0x61, 0x54, 0x62, 0x72, 0x0a, 0x71, 0x5a, 0x35, 0x68, 0x48, 0x59, 0x38, 0x79, 0x32, 0x6f, 0x34, 0x4d, 0x31, 0x6e, 0x51, 0x2b, 0x65, 0x77, 0x6b, 0x6b, 0x32, 0x67, 0x46, 0x33, 0x52, 0x38, 0x51, 0x37, 0x7a, 0x54, 0x53, 0x4d, 0x6d, 0x66, 0x58, 0x4b, 0x34, 0x53, 0x56, 0x68, 0x4d, 0x37, 0x4a, 0x5a, 0x47, 0x2b, 0x4a, 0x75, 0x31, 0x7a, 0x64, 0x58, 0x74, 0x67, 0x32, 0x70, 0x45, 0x74, 0x6f, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x58, 0x52, 0x61, 0x6d, 0x70, 0x20, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x43, 0x41, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x45, 0x4d, 0x44, 0x43, 0x43, 0x41, 0x78, 0x69, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x55, 0x4a, 0x52, 0x73, 0x37, 0x42, 0x6a, 0x71, 0x31, 0x5a, 0x78, 0x4e, 0x31, 0x5a, 0x66, 0x76, 0x64, 0x59, 0x2b, 0x67, 0x72, 0x54, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x55, 0x46, 0x41, 0x44, 0x43, 0x42, 0x67, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x0a, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x48, 0x6a, 0x41, 0x63, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x73, 0x54, 0x46, 0x58, 0x64, 0x33, 0x64, 0x79, 0x35, 0x34, 0x63, 0x6d, 0x46, 0x74, 0x63, 0x48, 0x4e, 0x6c, 0x59, 0x33, 0x56, 0x79, 0x61, 0x58, 0x52, 0x35, 0x4c, 0x6d, 0x4e, 0x76, 0x62, 0x54, 0x45, 0x6b, 0x4d, 0x43, 0x49, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x62, 0x57, 0x46, 0x4a, 0x68, 0x62, 0x58, 0x41, 0x67, 0x55, 0x32, 0x56, 0x6a, 0x0a, 0x64, 0x58, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x67, 0x55, 0x32, 0x56, 0x79, 0x64, 0x6d, 0x6c, 0x6a, 0x5a, 0x58, 0x4d, 0x67, 0x53, 0x57, 0x35, 0x6a, 0x4d, 0x53, 0x30, 0x77, 0x4b, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x79, 0x52, 0x59, 0x55, 0x6d, 0x46, 0x74, 0x63, 0x43, 0x42, 0x48, 0x62, 0x47, 0x39, 0x69, 0x59, 0x57, 0x77, 0x67, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x69, 0x42, 0x42, 0x0a, 0x64, 0x58, 0x52, 0x6f, 0x62, 0x33, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x44, 0x51, 0x78, 0x4d, 0x54, 0x41, 0x78, 0x4d, 0x54, 0x63, 0x78, 0x4e, 0x44, 0x41, 0x30, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x7a, 0x55, 0x77, 0x4d, 0x54, 0x41, 0x78, 0x4d, 0x44, 0x55, 0x7a, 0x4e, 0x7a, 0x45, 0x35, 0x57, 0x6a, 0x43, 0x42, 0x67, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x0a, 0x48, 0x6a, 0x41, 0x63, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x73, 0x54, 0x46, 0x58, 0x64, 0x33, 0x64, 0x79, 0x35, 0x34, 0x63, 0x6d, 0x46, 0x74, 0x63, 0x48, 0x4e, 0x6c, 0x59, 0x33, 0x56, 0x79, 0x61, 0x58, 0x52, 0x35, 0x4c, 0x6d, 0x4e, 0x76, 0x62, 0x54, 0x45, 0x6b, 0x4d, 0x43, 0x49, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x62, 0x57, 0x46, 0x4a, 0x68, 0x62, 0x58, 0x41, 0x67, 0x55, 0x32, 0x56, 0x6a, 0x64, 0x58, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x67, 0x0a, 0x55, 0x32, 0x56, 0x79, 0x64, 0x6d, 0x6c, 0x6a, 0x5a, 0x58, 0x4d, 0x67, 0x53, 0x57, 0x35, 0x6a, 0x4d, 0x53, 0x30, 0x77, 0x4b, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x79, 0x52, 0x59, 0x55, 0x6d, 0x46, 0x74, 0x63, 0x43, 0x42, 0x48, 0x62, 0x47, 0x39, 0x69, 0x59, 0x57, 0x77, 0x67, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x69, 0x42, 0x42, 0x64, 0x58, 0x52, 0x6f, 0x62, 0x33, 0x4a, 0x70, 0x0a, 0x64, 0x48, 0x6b, 0x77, 0x67, 0x67, 0x45, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x42, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x45, 0x4b, 0x41, 0x6f, 0x49, 0x42, 0x41, 0x51, 0x43, 0x59, 0x4a, 0x42, 0x36, 0x39, 0x46, 0x62, 0x53, 0x36, 0x33, 0x38, 0x65, 0x4d, 0x70, 0x53, 0x65, 0x32, 0x4f, 0x41, 0x74, 0x70, 0x38, 0x37, 0x5a, 0x4f, 0x71, 0x43, 0x77, 0x75, 0x0a, 0x49, 0x52, 0x31, 0x63, 0x52, 0x4e, 0x38, 0x68, 0x58, 0x58, 0x34, 0x6a, 0x64, 0x50, 0x35, 0x65, 0x66, 0x72, 0x52, 0x4b, 0x74, 0x36, 0x61, 0x74, 0x48, 0x36, 0x37, 0x67, 0x42, 0x68, 0x62, 0x69, 0x6d, 0x31, 0x76, 0x5a, 0x5a, 0x33, 0x52, 0x72, 0x58, 0x59, 0x43, 0x50, 0x4b, 0x5a, 0x32, 0x47, 0x47, 0x39, 0x6d, 0x63, 0x44, 0x5a, 0x68, 0x74, 0x64, 0x68, 0x41, 0x6f, 0x57, 0x4f, 0x52, 0x6c, 0x73, 0x48, 0x39, 0x4b, 0x6d, 0x48, 0x6d, 0x66, 0x34, 0x4d, 0x4d, 0x78, 0x0a, 0x66, 0x6f, 0x41, 0x72, 0x74, 0x59, 0x7a, 0x41, 0x51, 0x44, 0x73, 0x52, 0x68, 0x74, 0x44, 0x4c, 0x6f, 0x6f, 0x59, 0x32, 0x59, 0x4b, 0x54, 0x56, 0x4d, 0x49, 0x4a, 0x74, 0x32, 0x57, 0x37, 0x51, 0x44, 0x78, 0x49, 0x45, 0x4d, 0x35, 0x64, 0x66, 0x54, 0x32, 0x46, 0x61, 0x38, 0x4f, 0x54, 0x35, 0x6b, 0x61, 0x76, 0x6e, 0x48, 0x54, 0x75, 0x38, 0x36, 0x4d, 0x2f, 0x30, 0x61, 0x79, 0x30, 0x30, 0x66, 0x4f, 0x4a, 0x49, 0x59, 0x52, 0x79, 0x4f, 0x38, 0x32, 0x46, 0x45, 0x0a, 0x7a, 0x47, 0x2b, 0x67, 0x53, 0x71, 0x6d, 0x55, 0x73, 0x45, 0x33, 0x61, 0x35, 0x36, 0x6b, 0x30, 0x65, 0x6e, 0x49, 0x34, 0x71, 0x45, 0x48, 0x4d, 0x50, 0x4a, 0x51, 0x52, 0x66, 0x65, 0x76, 0x49, 0x70, 0x6f, 0x79, 0x33, 0x68, 0x73, 0x76, 0x4b, 0x4d, 0x7a, 0x76, 0x5a, 0x50, 0x54, 0x65, 0x4c, 0x2b, 0x33, 0x6f, 0x2b, 0x68, 0x69, 0x7a, 0x6e, 0x63, 0x39, 0x63, 0x4b, 0x56, 0x36, 0x78, 0x6b, 0x6d, 0x78, 0x6e, 0x72, 0x39, 0x41, 0x38, 0x45, 0x43, 0x49, 0x71, 0x73, 0x0a, 0x41, 0x78, 0x63, 0x5a, 0x5a, 0x50, 0x52, 0x61, 0x4a, 0x53, 0x4b, 0x4e, 0x4e, 0x43, 0x79, 0x79, 0x39, 0x6d, 0x67, 0x64, 0x45, 0x6d, 0x33, 0x54, 0x69, 0x68, 0x34, 0x55, 0x32, 0x73, 0x53, 0x50, 0x70, 0x75, 0x49, 0x6a, 0x68, 0x64, 0x56, 0x36, 0x44, 0x62, 0x31, 0x71, 0x34, 0x4f, 0x6e, 0x73, 0x37, 0x42, 0x65, 0x37, 0x51, 0x68, 0x74, 0x6e, 0x71, 0x69, 0x58, 0x74, 0x52, 0x59, 0x4d, 0x68, 0x2f, 0x4d, 0x48, 0x4a, 0x66, 0x4e, 0x56, 0x69, 0x50, 0x76, 0x72, 0x79, 0x0a, 0x78, 0x53, 0x33, 0x54, 0x2f, 0x64, 0x52, 0x6c, 0x41, 0x67, 0x4d, 0x42, 0x41, 0x41, 0x47, 0x6a, 0x67, 0x5a, 0x38, 0x77, 0x67, 0x5a, 0x77, 0x77, 0x45, 0x77, 0x59, 0x4a, 0x4b, 0x77, 0x59, 0x42, 0x42, 0x41, 0x47, 0x43, 0x4e, 0x78, 0x51, 0x43, 0x42, 0x41, 0x59, 0x65, 0x42, 0x41, 0x42, 0x44, 0x41, 0x45, 0x45, 0x77, 0x43, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x47, 0x47, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x0a, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x4d, 0x5a, 0x50, 0x6f, 0x6a, 0x30, 0x47, 0x59, 0x34, 0x51, 0x4a, 0x6e, 0x4d, 0x35, 0x69, 0x35, 0x41, 0x53, 0x73, 0x6a, 0x56, 0x79, 0x31, 0x36, 0x62, 0x59, 0x62, 0x4d, 0x44, 0x59, 0x47, 0x41, 0x31, 0x55, 0x64, 0x48, 0x77, 0x51, 0x76, 0x4d, 0x43, 0x30, 0x77, 0x4b, 0x36, 0x41, 0x70, 0x0a, 0x6f, 0x43, 0x65, 0x47, 0x4a, 0x57, 0x68, 0x30, 0x64, 0x48, 0x41, 0x36, 0x4c, 0x79, 0x39, 0x6a, 0x63, 0x6d, 0x77, 0x75, 0x65, 0x48, 0x4a, 0x68, 0x62, 0x58, 0x42, 0x7a, 0x5a, 0x57, 0x4e, 0x31, 0x63, 0x6d, 0x6c, 0x30, 0x65, 0x53, 0x35, 0x6a, 0x62, 0x32, 0x30, 0x76, 0x57, 0x45, 0x64, 0x44, 0x51, 0x53, 0x35, 0x6a, 0x63, 0x6d, 0x77, 0x77, 0x45, 0x41, 0x59, 0x4a, 0x4b, 0x77, 0x59, 0x42, 0x42, 0x41, 0x47, 0x43, 0x4e, 0x78, 0x55, 0x42, 0x42, 0x41, 0x4d, 0x43, 0x0a, 0x41, 0x51, 0x45, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x46, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x45, 0x42, 0x41, 0x4a, 0x45, 0x56, 0x4f, 0x51, 0x4d, 0x42, 0x47, 0x32, 0x66, 0x37, 0x53, 0x68, 0x7a, 0x35, 0x43, 0x6d, 0x42, 0x62, 0x6f, 0x64, 0x70, 0x4e, 0x6c, 0x32, 0x4c, 0x35, 0x4a, 0x46, 0x4d, 0x6e, 0x31, 0x34, 0x4a, 0x6b, 0x54, 0x70, 0x41, 0x75, 0x77, 0x30, 0x6b, 0x62, 0x4b, 0x35, 0x72, 0x63, 0x0a, 0x2f, 0x4b, 0x68, 0x34, 0x5a, 0x7a, 0x58, 0x78, 0x48, 0x66, 0x41, 0x52, 0x76, 0x62, 0x64, 0x49, 0x34, 0x78, 0x44, 0x32, 0x44, 0x64, 0x38, 0x2f, 0x30, 0x73, 0x6d, 0x32, 0x71, 0x6c, 0x57, 0x6b, 0x53, 0x4c, 0x6f, 0x43, 0x32, 0x39, 0x35, 0x5a, 0x4c, 0x68, 0x56, 0x62, 0x4f, 0x35, 0x30, 0x57, 0x66, 0x55, 0x66, 0x58, 0x4e, 0x2b, 0x70, 0x66, 0x54, 0x58, 0x59, 0x53, 0x4e, 0x72, 0x73, 0x66, 0x31, 0x36, 0x47, 0x42, 0x42, 0x45, 0x59, 0x67, 0x6f, 0x79, 0x78, 0x74, 0x0a, 0x71, 0x5a, 0x34, 0x42, 0x66, 0x6a, 0x38, 0x70, 0x7a, 0x67, 0x43, 0x54, 0x33, 0x2f, 0x33, 0x4a, 0x6b, 0x6e, 0x4f, 0x4a, 0x69, 0x57, 0x53, 0x65, 0x35, 0x79, 0x76, 0x6b, 0x48, 0x4a, 0x45, 0x73, 0x30, 0x72, 0x6e, 0x4f, 0x66, 0x63, 0x35, 0x76, 0x4d, 0x5a, 0x6e, 0x54, 0x35, 0x72, 0x37, 0x53, 0x48, 0x70, 0x44, 0x77, 0x43, 0x52, 0x52, 0x35, 0x58, 0x43, 0x4f, 0x72, 0x54, 0x64, 0x4c, 0x61, 0x49, 0x52, 0x39, 0x4e, 0x6d, 0x58, 0x6d, 0x64, 0x34, 0x63, 0x38, 0x6e, 0x0a, 0x6e, 0x78, 0x43, 0x62, 0x48, 0x49, 0x67, 0x4e, 0x73, 0x49, 0x70, 0x6b, 0x51, 0x54, 0x47, 0x34, 0x44, 0x6d, 0x79, 0x51, 0x4a, 0x4b, 0x53, 0x62, 0x58, 0x48, 0x47, 0x50, 0x75, 0x72, 0x74, 0x2b, 0x48, 0x42, 0x76, 0x62, 0x61, 0x6f, 0x41, 0x50, 0x49, 0x62, 0x7a, 0x70, 0x32, 0x36, 0x61, 0x33, 0x51, 0x50, 0x53, 0x79, 0x69, 0x36, 0x6d, 0x78, 0x35, 0x4f, 0x2b, 0x61, 0x47, 0x74, 0x41, 0x39, 0x61, 0x5a, 0x6e, 0x75, 0x71, 0x43, 0x69, 0x6a, 0x34, 0x54, 0x79, 0x7a, 0x0a, 0x38, 0x4c, 0x49, 0x52, 0x6e, 0x4d, 0x39, 0x38, 0x51, 0x4f, 0x62, 0x64, 0x35, 0x30, 0x4e, 0x39, 0x6f, 0x74, 0x67, 0x36, 0x74, 0x61, 0x6d, 0x4e, 0x38, 0x6a, 0x53, 0x5a, 0x78, 0x4e, 0x51, 0x51, 0x34, 0x51, 0x62, 0x39, 0x43, 0x59, 0x51, 0x51, 0x4f, 0x2b, 0x37, 0x45, 0x54, 0x50, 0x54, 0x73, 0x4a, 0x33, 0x78, 0x43, 0x77, 0x6e, 0x52, 0x38, 0x67, 0x6f, 0x6f, 0x4a, 0x79, 0x62, 0x51, 0x44, 0x4a, 0x62, 0x77, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x47, 0x6f, 0x20, 0x44, 0x61, 0x64, 0x64, 0x79, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x32, 0x20, 0x43, 0x41, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x45, 0x41, 0x44, 0x43, 0x43, 0x41, 0x75, 0x69, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x42, 0x41, 0x44, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x55, 0x46, 0x41, 0x44, 0x42, 0x6a, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x68, 0x4d, 0x42, 0x38, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x59, 0x0a, 0x56, 0x47, 0x68, 0x6c, 0x49, 0x45, 0x64, 0x76, 0x49, 0x45, 0x52, 0x68, 0x5a, 0x47, 0x52, 0x35, 0x49, 0x45, 0x64, 0x79, 0x62, 0x33, 0x56, 0x77, 0x4c, 0x43, 0x42, 0x4a, 0x62, 0x6d, 0x4d, 0x75, 0x4d, 0x54, 0x45, 0x77, 0x4c, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x79, 0x68, 0x48, 0x62, 0x79, 0x42, 0x45, 0x59, 0x57, 0x52, 0x6b, 0x65, 0x53, 0x42, 0x44, 0x62, 0x47, 0x46, 0x7a, 0x63, 0x79, 0x41, 0x79, 0x49, 0x45, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x70, 0x0a, 0x5a, 0x6d, 0x6c, 0x6a, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x34, 0x67, 0x51, 0x58, 0x56, 0x30, 0x61, 0x47, 0x39, 0x79, 0x61, 0x58, 0x52, 0x35, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x41, 0x30, 0x4d, 0x44, 0x59, 0x79, 0x4f, 0x54, 0x45, 0x33, 0x4d, 0x44, 0x59, 0x79, 0x4d, 0x46, 0x6f, 0x58, 0x44, 0x54, 0x4d, 0x30, 0x4d, 0x44, 0x59, 0x79, 0x4f, 0x54, 0x45, 0x33, 0x4d, 0x44, 0x59, 0x79, 0x4d, 0x46, 0x6f, 0x77, 0x59, 0x7a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x0a, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x49, 0x54, 0x41, 0x66, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x47, 0x46, 0x52, 0x6f, 0x5a, 0x53, 0x42, 0x48, 0x62, 0x79, 0x42, 0x45, 0x59, 0x57, 0x52, 0x6b, 0x65, 0x53, 0x42, 0x48, 0x63, 0x6d, 0x39, 0x31, 0x63, 0x43, 0x77, 0x67, 0x53, 0x57, 0x35, 0x6a, 0x4c, 0x6a, 0x45, 0x78, 0x4d, 0x43, 0x38, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x78, 0x4d, 0x6f, 0x52, 0x32, 0x38, 0x67, 0x0a, 0x52, 0x47, 0x46, 0x6b, 0x5a, 0x48, 0x6b, 0x67, 0x51, 0x32, 0x78, 0x68, 0x63, 0x33, 0x4d, 0x67, 0x4d, 0x69, 0x42, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x61, 0x57, 0x5a, 0x70, 0x59, 0x32, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x49, 0x45, 0x46, 0x31, 0x64, 0x47, 0x68, 0x76, 0x63, 0x6d, 0x6c, 0x30, 0x65, 0x54, 0x43, 0x43, 0x41, 0x53, 0x41, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x0a, 0x67, 0x67, 0x45, 0x4e, 0x41, 0x44, 0x43, 0x43, 0x41, 0x51, 0x67, 0x43, 0x67, 0x67, 0x45, 0x42, 0x41, 0x4e, 0x36, 0x64, 0x31, 0x2b, 0x70, 0x58, 0x47, 0x45, 0x6d, 0x68, 0x57, 0x2b, 0x76, 0x58, 0x58, 0x30, 0x69, 0x47, 0x36, 0x72, 0x37, 0x64, 0x2f, 0x2b, 0x54, 0x76, 0x5a, 0x78, 0x7a, 0x30, 0x5a, 0x57, 0x69, 0x7a, 0x56, 0x33, 0x47, 0x67, 0x58, 0x6e, 0x65, 0x37, 0x37, 0x5a, 0x74, 0x4a, 0x36, 0x58, 0x43, 0x41, 0x50, 0x56, 0x59, 0x59, 0x59, 0x77, 0x68, 0x76, 0x0a, 0x32, 0x76, 0x4c, 0x4d, 0x30, 0x44, 0x39, 0x2f, 0x41, 0x6c, 0x51, 0x69, 0x56, 0x42, 0x44, 0x59, 0x73, 0x6f, 0x48, 0x55, 0x77, 0x48, 0x55, 0x39, 0x53, 0x33, 0x2f, 0x48, 0x64, 0x38, 0x4d, 0x2b, 0x65, 0x4b, 0x73, 0x61, 0x41, 0x37, 0x55, 0x67, 0x61, 0x79, 0x39, 0x71, 0x4b, 0x37, 0x48, 0x46, 0x69, 0x48, 0x37, 0x45, 0x75, 0x78, 0x36, 0x77, 0x77, 0x64, 0x68, 0x46, 0x4a, 0x32, 0x2b, 0x71, 0x4e, 0x31, 0x6a, 0x33, 0x68, 0x79, 0x62, 0x58, 0x32, 0x43, 0x33, 0x32, 0x0a, 0x71, 0x52, 0x65, 0x33, 0x48, 0x33, 0x49, 0x32, 0x54, 0x71, 0x59, 0x58, 0x50, 0x32, 0x57, 0x59, 0x6b, 0x74, 0x73, 0x71, 0x62, 0x6c, 0x32, 0x69, 0x2f, 0x6f, 0x6a, 0x67, 0x43, 0x39, 0x35, 0x2f, 0x35, 0x59, 0x30, 0x56, 0x34, 0x65, 0x76, 0x4c, 0x4f, 0x74, 0x58, 0x69, 0x45, 0x71, 0x49, 0x54, 0x4c, 0x64, 0x69, 0x4f, 0x72, 0x31, 0x38, 0x53, 0x50, 0x61, 0x41, 0x49, 0x42, 0x51, 0x69, 0x32, 0x58, 0x4b, 0x56, 0x6c, 0x4f, 0x41, 0x52, 0x46, 0x6d, 0x52, 0x36, 0x6a, 0x0a, 0x59, 0x47, 0x42, 0x30, 0x78, 0x55, 0x47, 0x6c, 0x63, 0x6d, 0x49, 0x62, 0x59, 0x73, 0x55, 0x66, 0x62, 0x31, 0x38, 0x61, 0x51, 0x72, 0x34, 0x43, 0x55, 0x57, 0x57, 0x6f, 0x72, 0x69, 0x4d, 0x59, 0x61, 0x76, 0x78, 0x34, 0x41, 0x36, 0x6c, 0x4e, 0x66, 0x34, 0x44, 0x44, 0x2b, 0x71, 0x74, 0x61, 0x2f, 0x4b, 0x46, 0x41, 0x70, 0x4d, 0x6f, 0x5a, 0x46, 0x76, 0x36, 0x79, 0x79, 0x4f, 0x39, 0x65, 0x63, 0x77, 0x33, 0x75, 0x64, 0x37, 0x32, 0x61, 0x39, 0x6e, 0x6d, 0x59, 0x0a, 0x76, 0x4c, 0x45, 0x48, 0x5a, 0x36, 0x49, 0x56, 0x44, 0x64, 0x32, 0x67, 0x57, 0x4d, 0x5a, 0x45, 0x65, 0x77, 0x6f, 0x2b, 0x59, 0x69, 0x68, 0x66, 0x75, 0x6b, 0x45, 0x48, 0x55, 0x31, 0x6a, 0x50, 0x45, 0x58, 0x34, 0x34, 0x64, 0x4d, 0x58, 0x34, 0x2f, 0x37, 0x56, 0x70, 0x6b, 0x49, 0x2b, 0x45, 0x64, 0x4f, 0x71, 0x58, 0x47, 0x36, 0x38, 0x43, 0x41, 0x51, 0x4f, 0x6a, 0x67, 0x63, 0x41, 0x77, 0x67, 0x62, 0x30, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x0a, 0x42, 0x42, 0x59, 0x45, 0x46, 0x4e, 0x4c, 0x45, 0x73, 0x4e, 0x4b, 0x52, 0x31, 0x45, 0x77, 0x52, 0x63, 0x62, 0x4e, 0x68, 0x79, 0x7a, 0x32, 0x68, 0x2f, 0x74, 0x32, 0x6f, 0x61, 0x74, 0x54, 0x6a, 0x4d, 0x49, 0x47, 0x4e, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x53, 0x4d, 0x45, 0x67, 0x59, 0x55, 0x77, 0x67, 0x59, 0x4b, 0x41, 0x46, 0x4e, 0x4c, 0x45, 0x73, 0x4e, 0x4b, 0x52, 0x31, 0x45, 0x77, 0x52, 0x63, 0x62, 0x4e, 0x68, 0x79, 0x7a, 0x32, 0x68, 0x2f, 0x74, 0x32, 0x6f, 0x0a, 0x61, 0x74, 0x54, 0x6a, 0x6f, 0x57, 0x65, 0x6b, 0x5a, 0x54, 0x42, 0x6a, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x68, 0x4d, 0x42, 0x38, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x59, 0x56, 0x47, 0x68, 0x6c, 0x49, 0x45, 0x64, 0x76, 0x49, 0x45, 0x52, 0x68, 0x5a, 0x47, 0x52, 0x35, 0x49, 0x45, 0x64, 0x79, 0x62, 0x33, 0x56, 0x77, 0x4c, 0x43, 0x42, 0x4a, 0x62, 0x6d, 0x4d, 0x75, 0x0a, 0x4d, 0x54, 0x45, 0x77, 0x4c, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x79, 0x68, 0x48, 0x62, 0x79, 0x42, 0x45, 0x59, 0x57, 0x52, 0x6b, 0x65, 0x53, 0x42, 0x44, 0x62, 0x47, 0x46, 0x7a, 0x63, 0x79, 0x41, 0x79, 0x49, 0x45, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x70, 0x5a, 0x6d, 0x6c, 0x6a, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x34, 0x67, 0x51, 0x58, 0x56, 0x30, 0x61, 0x47, 0x39, 0x79, 0x61, 0x58, 0x52, 0x35, 0x67, 0x67, 0x45, 0x41, 0x4d, 0x41, 0x77, 0x47, 0x0a, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x46, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x45, 0x42, 0x41, 0x44, 0x4a, 0x4c, 0x38, 0x37, 0x4c, 0x4b, 0x50, 0x70, 0x48, 0x38, 0x45, 0x73, 0x61, 0x68, 0x42, 0x34, 0x79, 0x4f, 0x64, 0x36, 0x41, 0x7a, 0x42, 0x68, 0x52, 0x63, 0x6b, 0x42, 0x34, 0x59, 0x39, 0x77, 0x69, 0x6d, 0x0a, 0x50, 0x51, 0x6f, 0x5a, 0x2b, 0x59, 0x65, 0x41, 0x45, 0x57, 0x35, 0x70, 0x35, 0x4a, 0x59, 0x58, 0x4d, 0x50, 0x38, 0x30, 0x6b, 0x57, 0x4e, 0x79, 0x4f, 0x4f, 0x37, 0x4d, 0x48, 0x41, 0x47, 0x6a, 0x48, 0x5a, 0x51, 0x6f, 0x70, 0x44, 0x48, 0x32, 0x65, 0x73, 0x52, 0x55, 0x31, 0x2f, 0x62, 0x6c, 0x4d, 0x56, 0x67, 0x44, 0x6f, 0x73, 0x7a, 0x4f, 0x59, 0x74, 0x75, 0x55, 0x52, 0x58, 0x4f, 0x31, 0x76, 0x30, 0x58, 0x4a, 0x4a, 0x4c, 0x58, 0x56, 0x67, 0x67, 0x4b, 0x74, 0x0a, 0x49, 0x33, 0x6c, 0x70, 0x6a, 0x62, 0x69, 0x32, 0x54, 0x63, 0x37, 0x50, 0x54, 0x4d, 0x6f, 0x7a, 0x49, 0x2b, 0x67, 0x63, 0x69, 0x4b, 0x71, 0x64, 0x69, 0x30, 0x46, 0x75, 0x46, 0x73, 0x6b, 0x67, 0x35, 0x59, 0x6d, 0x65, 0x7a, 0x54, 0x76, 0x61, 0x63, 0x50, 0x64, 0x2b, 0x6d, 0x53, 0x59, 0x67, 0x46, 0x46, 0x51, 0x6c, 0x71, 0x32, 0x35, 0x7a, 0x68, 0x65, 0x61, 0x62, 0x49, 0x5a, 0x30, 0x4b, 0x62, 0x49, 0x49, 0x4f, 0x71, 0x50, 0x6a, 0x43, 0x44, 0x50, 0x6f, 0x51, 0x0a, 0x48, 0x6d, 0x79, 0x57, 0x37, 0x34, 0x63, 0x4e, 0x78, 0x41, 0x39, 0x68, 0x69, 0x36, 0x33, 0x75, 0x67, 0x79, 0x75, 0x56, 0x2b, 0x49, 0x36, 0x53, 0x68, 0x48, 0x49, 0x35, 0x36, 0x79, 0x44, 0x71, 0x67, 0x2b, 0x32, 0x44, 0x7a, 0x5a, 0x64, 0x75, 0x43, 0x4c, 0x7a, 0x72, 0x54, 0x69, 0x61, 0x32, 0x63, 0x79, 0x76, 0x6b, 0x30, 0x2f, 0x5a, 0x4d, 0x2f, 0x69, 0x5a, 0x78, 0x34, 0x6d, 0x45, 0x52, 0x64, 0x45, 0x72, 0x2f, 0x56, 0x78, 0x71, 0x48, 0x44, 0x33, 0x56, 0x49, 0x0a, 0x4c, 0x73, 0x39, 0x52, 0x61, 0x52, 0x65, 0x67, 0x41, 0x68, 0x4a, 0x68, 0x6c, 0x64, 0x58, 0x52, 0x51, 0x4c, 0x49, 0x51, 0x54, 0x4f, 0x37, 0x45, 0x72, 0x42, 0x42, 0x44, 0x70, 0x71, 0x57, 0x65, 0x43, 0x74, 0x57, 0x56, 0x59, 0x70, 0x6f, 0x4e, 0x7a, 0x34, 0x69, 0x43, 0x78, 0x54, 0x49, 0x4d, 0x35, 0x43, 0x75, 0x66, 0x52, 0x65, 0x59, 0x4e, 0x6e, 0x79, 0x69, 0x63, 0x73, 0x62, 0x6b, 0x71, 0x57, 0x6c, 0x65, 0x74, 0x4e, 0x77, 0x2b, 0x76, 0x48, 0x58, 0x2f, 0x62, 0x0a, 0x76, 0x5a, 0x38, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x32, 0x20, 0x43, 0x41, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x45, 0x44, 0x7a, 0x43, 0x43, 0x41, 0x76, 0x65, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x42, 0x41, 0x44, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x55, 0x46, 0x41, 0x44, 0x42, 0x6f, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x6c, 0x4d, 0x43, 0x4d, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x63, 0x0a, 0x55, 0x33, 0x52, 0x68, 0x63, 0x6d, 0x5a, 0x70, 0x5a, 0x57, 0x78, 0x6b, 0x49, 0x46, 0x52, 0x6c, 0x59, 0x32, 0x68, 0x75, 0x62, 0x32, 0x78, 0x76, 0x5a, 0x32, 0x6c, 0x6c, 0x63, 0x79, 0x77, 0x67, 0x53, 0x57, 0x35, 0x6a, 0x4c, 0x6a, 0x45, 0x79, 0x4d, 0x44, 0x41, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x78, 0x4d, 0x70, 0x55, 0x33, 0x52, 0x68, 0x63, 0x6d, 0x5a, 0x70, 0x5a, 0x57, 0x78, 0x6b, 0x49, 0x45, 0x4e, 0x73, 0x59, 0x58, 0x4e, 0x7a, 0x49, 0x44, 0x49, 0x67, 0x0a, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x69, 0x42, 0x42, 0x64, 0x58, 0x52, 0x6f, 0x62, 0x33, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x44, 0x51, 0x77, 0x4e, 0x6a, 0x49, 0x35, 0x4d, 0x54, 0x63, 0x7a, 0x4f, 0x54, 0x45, 0x32, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x7a, 0x51, 0x77, 0x4e, 0x6a, 0x49, 0x35, 0x4d, 0x54, 0x63, 0x7a, 0x4f, 0x54, 0x45, 0x32, 0x57, 0x6a, 0x42, 0x6f, 0x0a, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x6c, 0x4d, 0x43, 0x4d, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x63, 0x55, 0x33, 0x52, 0x68, 0x63, 0x6d, 0x5a, 0x70, 0x5a, 0x57, 0x78, 0x6b, 0x49, 0x46, 0x52, 0x6c, 0x59, 0x32, 0x68, 0x75, 0x62, 0x32, 0x78, 0x76, 0x5a, 0x32, 0x6c, 0x6c, 0x63, 0x79, 0x77, 0x67, 0x53, 0x57, 0x35, 0x6a, 0x4c, 0x6a, 0x45, 0x79, 0x4d, 0x44, 0x41, 0x47, 0x0a, 0x41, 0x31, 0x55, 0x45, 0x43, 0x78, 0x4d, 0x70, 0x55, 0x33, 0x52, 0x68, 0x63, 0x6d, 0x5a, 0x70, 0x5a, 0x57, 0x78, 0x6b, 0x49, 0x45, 0x4e, 0x73, 0x59, 0x58, 0x4e, 0x7a, 0x49, 0x44, 0x49, 0x67, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x69, 0x42, 0x42, 0x64, 0x58, 0x52, 0x6f, 0x62, 0x33, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x77, 0x67, 0x67, 0x45, 0x67, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x0a, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x42, 0x44, 0x51, 0x41, 0x77, 0x67, 0x67, 0x45, 0x49, 0x41, 0x6f, 0x49, 0x42, 0x41, 0x51, 0x43, 0x33, 0x4d, 0x73, 0x6a, 0x2b, 0x36, 0x58, 0x47, 0x6d, 0x42, 0x49, 0x57, 0x74, 0x44, 0x42, 0x46, 0x6b, 0x33, 0x38, 0x35, 0x4e, 0x37, 0x38, 0x67, 0x44, 0x47, 0x49, 0x63, 0x2f, 0x6f, 0x61, 0x76, 0x37, 0x50, 0x4b, 0x61, 0x66, 0x38, 0x4d, 0x4f, 0x68, 0x32, 0x74, 0x54, 0x59, 0x0a, 0x62, 0x69, 0x74, 0x54, 0x6b, 0x50, 0x73, 0x6b, 0x70, 0x44, 0x36, 0x45, 0x38, 0x4a, 0x37, 0x6f, 0x58, 0x2b, 0x7a, 0x6c, 0x4a, 0x30, 0x54, 0x31, 0x4b, 0x4b, 0x59, 0x2f, 0x65, 0x39, 0x37, 0x67, 0x4b, 0x76, 0x44, 0x49, 0x72, 0x31, 0x4d, 0x76, 0x6e, 0x73, 0x6f, 0x46, 0x41, 0x5a, 0x4d, 0x65, 0x6a, 0x32, 0x59, 0x63, 0x4f, 0x61, 0x64, 0x4e, 0x2b, 0x6c, 0x71, 0x32, 0x63, 0x77, 0x51, 0x6c, 0x5a, 0x75, 0x74, 0x33, 0x66, 0x2b, 0x64, 0x5a, 0x78, 0x6b, 0x71, 0x5a, 0x0a, 0x4a, 0x52, 0x52, 0x55, 0x36, 0x79, 0x62, 0x48, 0x38, 0x33, 0x38, 0x5a, 0x31, 0x54, 0x42, 0x77, 0x6a, 0x36, 0x2b, 0x77, 0x52, 0x69, 0x72, 0x2f, 0x72, 0x65, 0x73, 0x70, 0x37, 0x64, 0x65, 0x66, 0x71, 0x67, 0x53, 0x48, 0x6f, 0x39, 0x54, 0x35, 0x69, 0x61, 0x55, 0x30, 0x58, 0x39, 0x74, 0x44, 0x6b, 0x59, 0x49, 0x32, 0x32, 0x57, 0x59, 0x38, 0x73, 0x62, 0x69, 0x35, 0x67, 0x76, 0x32, 0x63, 0x4f, 0x6a, 0x34, 0x51, 0x79, 0x44, 0x76, 0x76, 0x42, 0x6d, 0x56, 0x6d, 0x0a, 0x65, 0x70, 0x73, 0x5a, 0x47, 0x44, 0x33, 0x2f, 0x63, 0x56, 0x45, 0x38, 0x4d, 0x43, 0x35, 0x66, 0x76, 0x6a, 0x31, 0x33, 0x63, 0x37, 0x4a, 0x64, 0x42, 0x6d, 0x7a, 0x44, 0x49, 0x31, 0x61, 0x61, 0x4b, 0x34, 0x55, 0x6d, 0x6b, 0x68, 0x79, 0x6e, 0x41, 0x72, 0x50, 0x6b, 0x50, 0x77, 0x32, 0x76, 0x43, 0x48, 0x6d, 0x43, 0x75, 0x44, 0x59, 0x39, 0x36, 0x70, 0x7a, 0x54, 0x4e, 0x62, 0x4f, 0x38, 0x61, 0x63, 0x72, 0x31, 0x7a, 0x4a, 0x33, 0x6f, 0x2f, 0x57, 0x53, 0x4e, 0x0a, 0x46, 0x34, 0x41, 0x7a, 0x62, 0x6c, 0x35, 0x4b, 0x58, 0x5a, 0x6e, 0x4a, 0x48, 0x6f, 0x65, 0x30, 0x6e, 0x52, 0x72, 0x41, 0x31, 0x57, 0x34, 0x54, 0x4e, 0x53, 0x4e, 0x65, 0x33, 0x35, 0x74, 0x66, 0x50, 0x65, 0x2f, 0x57, 0x39, 0x33, 0x62, 0x43, 0x36, 0x6a, 0x36, 0x37, 0x65, 0x41, 0x30, 0x63, 0x51, 0x6d, 0x64, 0x72, 0x42, 0x4e, 0x6a, 0x34, 0x31, 0x74, 0x70, 0x76, 0x69, 0x2f, 0x4a, 0x45, 0x6f, 0x41, 0x47, 0x72, 0x41, 0x67, 0x45, 0x44, 0x6f, 0x34, 0x48, 0x46, 0x0a, 0x4d, 0x49, 0x48, 0x43, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x53, 0x2f, 0x58, 0x37, 0x66, 0x52, 0x7a, 0x74, 0x30, 0x66, 0x68, 0x76, 0x52, 0x62, 0x56, 0x61, 0x7a, 0x63, 0x31, 0x78, 0x44, 0x43, 0x44, 0x71, 0x6d, 0x49, 0x35, 0x7a, 0x43, 0x42, 0x6b, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x6a, 0x42, 0x49, 0x47, 0x4b, 0x4d, 0x49, 0x47, 0x48, 0x67, 0x42, 0x53, 0x2f, 0x58, 0x37, 0x66, 0x52, 0x7a, 0x74, 0x30, 0x66, 0x0a, 0x68, 0x76, 0x52, 0x62, 0x56, 0x61, 0x7a, 0x63, 0x31, 0x78, 0x44, 0x43, 0x44, 0x71, 0x6d, 0x49, 0x35, 0x36, 0x46, 0x73, 0x70, 0x47, 0x6f, 0x77, 0x61, 0x44, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x4a, 0x54, 0x41, 0x6a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x48, 0x46, 0x4e, 0x30, 0x59, 0x58, 0x4a, 0x6d, 0x61, 0x57, 0x56, 0x73, 0x5a, 0x43, 0x42, 0x55, 0x5a, 0x57, 0x4e, 0x6f, 0x0a, 0x62, 0x6d, 0x39, 0x73, 0x62, 0x32, 0x64, 0x70, 0x5a, 0x58, 0x4d, 0x73, 0x49, 0x45, 0x6c, 0x75, 0x59, 0x79, 0x34, 0x78, 0x4d, 0x6a, 0x41, 0x77, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x73, 0x54, 0x4b, 0x56, 0x4e, 0x30, 0x59, 0x58, 0x4a, 0x6d, 0x61, 0x57, 0x56, 0x73, 0x5a, 0x43, 0x42, 0x44, 0x62, 0x47, 0x46, 0x7a, 0x63, 0x79, 0x41, 0x79, 0x49, 0x45, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x70, 0x5a, 0x6d, 0x6c, 0x6a, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x34, 0x67, 0x0a, 0x51, 0x58, 0x56, 0x30, 0x61, 0x47, 0x39, 0x79, 0x61, 0x58, 0x52, 0x35, 0x67, 0x67, 0x45, 0x41, 0x4d, 0x41, 0x77, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x46, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x45, 0x42, 0x41, 0x41, 0x57, 0x64, 0x50, 0x34, 0x69, 0x64, 0x30, 0x63, 0x6b, 0x61, 0x56, 0x61, 0x47, 0x73, 0x0a, 0x61, 0x66, 0x50, 0x7a, 0x57, 0x64, 0x71, 0x62, 0x41, 0x59, 0x63, 0x61, 0x54, 0x31, 0x65, 0x70, 0x6f, 0x58, 0x6b, 0x4a, 0x4b, 0x74, 0x76, 0x33, 0x4c, 0x37, 0x49, 0x65, 0x7a, 0x4d, 0x64, 0x65, 0x61, 0x74, 0x69, 0x44, 0x68, 0x36, 0x47, 0x58, 0x37, 0x30, 0x6b, 0x31, 0x50, 0x6e, 0x63, 0x47, 0x51, 0x56, 0x68, 0x69, 0x76, 0x34, 0x35, 0x59, 0x75, 0x41, 0x70, 0x6e, 0x50, 0x2b, 0x79, 0x7a, 0x33, 0x53, 0x46, 0x6d, 0x48, 0x38, 0x6c, 0x55, 0x2b, 0x6e, 0x4c, 0x4d, 0x0a, 0x50, 0x55, 0x78, 0x41, 0x32, 0x49, 0x47, 0x76, 0x64, 0x35, 0x36, 0x44, 0x65, 0x72, 0x75, 0x69, 0x78, 0x2f, 0x55, 0x30, 0x46, 0x34, 0x37, 0x5a, 0x45, 0x55, 0x44, 0x30, 0x2f, 0x43, 0x77, 0x71, 0x54, 0x52, 0x56, 0x2f, 0x70, 0x32, 0x4a, 0x64, 0x4c, 0x69, 0x58, 0x54, 0x41, 0x41, 0x73, 0x67, 0x47, 0x68, 0x31, 0x6f, 0x2b, 0x52, 0x65, 0x34, 0x39, 0x4c, 0x32, 0x4c, 0x37, 0x53, 0x68, 0x5a, 0x33, 0x55, 0x30, 0x57, 0x69, 0x78, 0x65, 0x44, 0x79, 0x4c, 0x4a, 0x6c, 0x0a, 0x78, 0x79, 0x31, 0x36, 0x70, 0x61, 0x71, 0x38, 0x55, 0x34, 0x5a, 0x74, 0x33, 0x56, 0x65, 0x6b, 0x79, 0x76, 0x67, 0x67, 0x51, 0x51, 0x74, 0x6f, 0x38, 0x50, 0x54, 0x37, 0x64, 0x4c, 0x35, 0x57, 0x58, 0x58, 0x70, 0x35, 0x39, 0x66, 0x6b, 0x64, 0x68, 0x65, 0x4d, 0x74, 0x6c, 0x62, 0x37, 0x31, 0x63, 0x5a, 0x42, 0x44, 0x7a, 0x49, 0x30, 0x66, 0x6d, 0x67, 0x41, 0x4b, 0x68, 0x79, 0x6e, 0x70, 0x56, 0x53, 0x4a, 0x59, 0x41, 0x43, 0x50, 0x71, 0x34, 0x78, 0x4a, 0x44, 0x0a, 0x4b, 0x56, 0x74, 0x48, 0x43, 0x4e, 0x32, 0x4d, 0x51, 0x57, 0x70, 0x6c, 0x42, 0x71, 0x6a, 0x6c, 0x49, 0x61, 0x70, 0x42, 0x74, 0x4a, 0x55, 0x68, 0x6c, 0x62, 0x6c, 0x39, 0x30, 0x54, 0x53, 0x72, 0x45, 0x39, 0x61, 0x74, 0x76, 0x4e, 0x7a, 0x69, 0x50, 0x54, 0x6e, 0x4e, 0x76, 0x54, 0x35, 0x31, 0x63, 0x4b, 0x45, 0x59, 0x57, 0x51, 0x50, 0x4a, 0x49, 0x72, 0x53, 0x50, 0x6e, 0x4e, 0x56, 0x65, 0x4b, 0x74, 0x65, 0x6c, 0x74, 0x74, 0x51, 0x4b, 0x62, 0x66, 0x69, 0x33, 0x0a, 0x51, 0x42, 0x46, 0x47, 0x6d, 0x68, 0x39, 0x35, 0x44, 0x6d, 0x4b, 0x2f, 0x44, 0x35, 0x66, 0x73, 0x34, 0x43, 0x38, 0x66, 0x46, 0x35, 0x51, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x41, 0x73, 0x73, 0x75, 0x72, 0x65, 0x64, 0x20, 0x49, 0x44, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x44, 0x74, 0x7a, 0x43, 0x43, 0x41, 0x70, 0x2b, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x44, 0x4f, 0x66, 0x67, 0x35, 0x52, 0x66, 0x59, 0x52, 0x76, 0x36, 0x50, 0x35, 0x57, 0x44, 0x38, 0x47, 0x2f, 0x41, 0x77, 0x4f, 0x54, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x55, 0x46, 0x41, 0x44, 0x42, 0x6c, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x0a, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x56, 0x4d, 0x42, 0x4d, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x4d, 0x52, 0x47, 0x6c, 0x6e, 0x61, 0x55, 0x4e, 0x6c, 0x63, 0x6e, 0x51, 0x67, 0x53, 0x57, 0x35, 0x6a, 0x4d, 0x52, 0x6b, 0x77, 0x46, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x78, 0x42, 0x33, 0x64, 0x33, 0x63, 0x75, 0x5a, 0x47, 0x6c, 0x6e, 0x61, 0x57, 0x4e, 0x6c, 0x63, 0x6e, 0x51, 0x75, 0x59, 0x32, 0x39, 0x74, 0x4d, 0x53, 0x51, 0x77, 0x0a, 0x49, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x74, 0x45, 0x61, 0x57, 0x64, 0x70, 0x51, 0x32, 0x56, 0x79, 0x64, 0x43, 0x42, 0x42, 0x63, 0x33, 0x4e, 0x31, 0x63, 0x6d, 0x56, 0x6b, 0x49, 0x45, 0x6c, 0x45, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x44, 0x59, 0x78, 0x4d, 0x54, 0x45, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x7a, 0x45, 0x78, 0x0a, 0x4d, 0x54, 0x45, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x6a, 0x42, 0x6c, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x56, 0x4d, 0x42, 0x4d, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x4d, 0x52, 0x47, 0x6c, 0x6e, 0x61, 0x55, 0x4e, 0x6c, 0x63, 0x6e, 0x51, 0x67, 0x53, 0x57, 0x35, 0x6a, 0x4d, 0x52, 0x6b, 0x77, 0x46, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x0a, 0x45, 0x78, 0x42, 0x33, 0x64, 0x33, 0x63, 0x75, 0x5a, 0x47, 0x6c, 0x6e, 0x61, 0x57, 0x4e, 0x6c, 0x63, 0x6e, 0x51, 0x75, 0x59, 0x32, 0x39, 0x74, 0x4d, 0x53, 0x51, 0x77, 0x49, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x74, 0x45, 0x61, 0x57, 0x64, 0x70, 0x51, 0x32, 0x56, 0x79, 0x64, 0x43, 0x42, 0x42, 0x63, 0x33, 0x4e, 0x31, 0x63, 0x6d, 0x56, 0x6b, 0x49, 0x45, 0x6c, 0x45, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x77, 0x0a, 0x67, 0x67, 0x45, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x42, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x45, 0x4b, 0x41, 0x6f, 0x49, 0x42, 0x41, 0x51, 0x43, 0x74, 0x44, 0x68, 0x58, 0x4f, 0x35, 0x45, 0x4f, 0x41, 0x58, 0x4c, 0x47, 0x48, 0x38, 0x37, 0x64, 0x67, 0x2b, 0x58, 0x45, 0x53, 0x70, 0x61, 0x37, 0x63, 0x4a, 0x70, 0x53, 0x49, 0x71, 0x76, 0x54, 0x4f, 0x0a, 0x39, 0x53, 0x41, 0x35, 0x4b, 0x46, 0x68, 0x67, 0x44, 0x50, 0x69, 0x41, 0x32, 0x71, 0x6b, 0x56, 0x6c, 0x54, 0x4a, 0x68, 0x50, 0x4c, 0x57, 0x78, 0x4b, 0x49, 0x53, 0x4b, 0x69, 0x74, 0x79, 0x66, 0x43, 0x67, 0x79, 0x44, 0x46, 0x33, 0x71, 0x50, 0x6b, 0x4b, 0x79, 0x4b, 0x35, 0x33, 0x6c, 0x54, 0x58, 0x44, 0x47, 0x45, 0x4b, 0x76, 0x59, 0x50, 0x6d, 0x44, 0x49, 0x32, 0x64, 0x73, 0x7a, 0x65, 0x33, 0x54, 0x79, 0x6f, 0x6f, 0x75, 0x39, 0x71, 0x2b, 0x79, 0x48, 0x79, 0x0a, 0x55, 0x6d, 0x48, 0x66, 0x6e, 0x79, 0x44, 0x58, 0x48, 0x2b, 0x4b, 0x78, 0x32, 0x66, 0x34, 0x59, 0x5a, 0x4e, 0x49, 0x53, 0x57, 0x31, 0x2f, 0x35, 0x57, 0x42, 0x67, 0x31, 0x76, 0x45, 0x66, 0x4e, 0x6f, 0x54, 0x62, 0x35, 0x61, 0x33, 0x2f, 0x55, 0x73, 0x44, 0x67, 0x2b, 0x77, 0x52, 0x76, 0x44, 0x6a, 0x44, 0x50, 0x5a, 0x32, 0x43, 0x38, 0x59, 0x2f, 0x69, 0x67, 0x50, 0x73, 0x36, 0x65, 0x44, 0x31, 0x73, 0x4e, 0x75, 0x52, 0x4d, 0x42, 0x68, 0x4e, 0x5a, 0x59, 0x57, 0x0a, 0x2f, 0x6c, 0x6d, 0x63, 0x69, 0x33, 0x5a, 0x74, 0x31, 0x2f, 0x47, 0x69, 0x53, 0x77, 0x30, 0x72, 0x2f, 0x77, 0x74, 0x79, 0x32, 0x70, 0x35, 0x67, 0x30, 0x49, 0x36, 0x51, 0x4e, 0x63, 0x5a, 0x34, 0x56, 0x59, 0x63, 0x67, 0x6f, 0x63, 0x2f, 0x6c, 0x62, 0x51, 0x72, 0x49, 0x53, 0x58, 0x77, 0x78, 0x6d, 0x44, 0x4e, 0x73, 0x49, 0x75, 0x6d, 0x48, 0x30, 0x44, 0x4a, 0x61, 0x6f, 0x72, 0x6f, 0x54, 0x67, 0x68, 0x48, 0x74, 0x4f, 0x52, 0x65, 0x64, 0x6d, 0x54, 0x70, 0x79, 0x0a, 0x6f, 0x65, 0x62, 0x36, 0x70, 0x4e, 0x6e, 0x56, 0x46, 0x7a, 0x46, 0x31, 0x72, 0x6f, 0x56, 0x39, 0x49, 0x71, 0x34, 0x2f, 0x41, 0x55, 0x61, 0x47, 0x39, 0x69, 0x68, 0x35, 0x79, 0x4c, 0x48, 0x61, 0x35, 0x46, 0x63, 0x58, 0x78, 0x48, 0x34, 0x63, 0x44, 0x72, 0x43, 0x30, 0x6b, 0x71, 0x5a, 0x57, 0x73, 0x37, 0x32, 0x79, 0x6c, 0x2b, 0x32, 0x71, 0x70, 0x2f, 0x43, 0x33, 0x78, 0x61, 0x67, 0x2f, 0x6c, 0x52, 0x62, 0x51, 0x2f, 0x36, 0x47, 0x57, 0x36, 0x77, 0x68, 0x66, 0x0a, 0x47, 0x48, 0x64, 0x50, 0x41, 0x67, 0x4d, 0x42, 0x41, 0x41, 0x47, 0x6a, 0x59, 0x7a, 0x42, 0x68, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x68, 0x6a, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x52, 0x46, 0x0a, 0x36, 0x36, 0x4b, 0x76, 0x39, 0x4a, 0x4c, 0x4c, 0x67, 0x6a, 0x45, 0x74, 0x55, 0x59, 0x75, 0x6e, 0x70, 0x79, 0x47, 0x64, 0x38, 0x32, 0x33, 0x49, 0x44, 0x7a, 0x41, 0x66, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x53, 0x4d, 0x45, 0x47, 0x44, 0x41, 0x57, 0x67, 0x42, 0x52, 0x46, 0x36, 0x36, 0x4b, 0x76, 0x39, 0x4a, 0x4c, 0x4c, 0x67, 0x6a, 0x45, 0x74, 0x55, 0x59, 0x75, 0x6e, 0x70, 0x79, 0x47, 0x64, 0x38, 0x32, 0x33, 0x49, 0x44, 0x7a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x0a, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x55, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x51, 0x45, 0x41, 0x6f, 0x67, 0x36, 0x38, 0x33, 0x2b, 0x4c, 0x74, 0x38, 0x4f, 0x4e, 0x79, 0x63, 0x33, 0x70, 0x6b, 0x6c, 0x4c, 0x2f, 0x33, 0x63, 0x6d, 0x62, 0x59, 0x4d, 0x75, 0x52, 0x43, 0x64, 0x57, 0x4b, 0x75, 0x68, 0x2b, 0x76, 0x79, 0x31, 0x64, 0x6e, 0x65, 0x56, 0x72, 0x4f, 0x66, 0x7a, 0x4d, 0x34, 0x55, 0x4b, 0x4c, 0x6b, 0x4e, 0x6c, 0x32, 0x42, 0x63, 0x0a, 0x45, 0x6b, 0x78, 0x59, 0x35, 0x4e, 0x4d, 0x39, 0x67, 0x30, 0x6c, 0x46, 0x57, 0x4a, 0x63, 0x31, 0x61, 0x52, 0x71, 0x6f, 0x52, 0x2b, 0x70, 0x57, 0x78, 0x6e, 0x6d, 0x72, 0x45, 0x74, 0x68, 0x6e, 0x67, 0x59, 0x54, 0x66, 0x66, 0x77, 0x6b, 0x38, 0x6c, 0x4f, 0x61, 0x34, 0x4a, 0x69, 0x77, 0x67, 0x76, 0x54, 0x32, 0x7a, 0x4b, 0x49, 0x6e, 0x33, 0x58, 0x2f, 0x38, 0x69, 0x34, 0x70, 0x65, 0x45, 0x48, 0x2b, 0x6c, 0x6c, 0x37, 0x34, 0x66, 0x67, 0x33, 0x38, 0x46, 0x6e, 0x0a, 0x53, 0x62, 0x4e, 0x64, 0x36, 0x37, 0x49, 0x4a, 0x4b, 0x75, 0x73, 0x6d, 0x37, 0x58, 0x69, 0x2b, 0x66, 0x54, 0x38, 0x72, 0x38, 0x37, 0x63, 0x6d, 0x4e, 0x57, 0x31, 0x66, 0x69, 0x51, 0x47, 0x32, 0x53, 0x56, 0x75, 0x66, 0x41, 0x51, 0x57, 0x62, 0x71, 0x7a, 0x30, 0x6c, 0x77, 0x63, 0x79, 0x32, 0x66, 0x38, 0x4c, 0x78, 0x62, 0x34, 0x62, 0x47, 0x2b, 0x6d, 0x52, 0x6f, 0x36, 0x34, 0x45, 0x74, 0x6c, 0x4f, 0x74, 0x43, 0x74, 0x2f, 0x71, 0x4d, 0x48, 0x74, 0x31, 0x69, 0x0a, 0x38, 0x62, 0x35, 0x51, 0x5a, 0x37, 0x64, 0x73, 0x76, 0x66, 0x50, 0x78, 0x48, 0x32, 0x73, 0x4d, 0x4e, 0x67, 0x63, 0x57, 0x66, 0x7a, 0x64, 0x38, 0x71, 0x56, 0x74, 0x74, 0x65, 0x76, 0x45, 0x53, 0x52, 0x6d, 0x43, 0x44, 0x31, 0x79, 0x63, 0x45, 0x76, 0x6b, 0x76, 0x4f, 0x6c, 0x37, 0x37, 0x44, 0x5a, 0x79, 0x70, 0x6f, 0x45, 0x64, 0x2b, 0x41, 0x35, 0x77, 0x77, 0x7a, 0x5a, 0x72, 0x38, 0x54, 0x44, 0x52, 0x52, 0x75, 0x38, 0x33, 0x38, 0x66, 0x59, 0x78, 0x41, 0x65, 0x0a, 0x2b, 0x6f, 0x30, 0x62, 0x4a, 0x57, 0x31, 0x73, 0x6a, 0x36, 0x57, 0x33, 0x59, 0x51, 0x47, 0x78, 0x30, 0x71, 0x4d, 0x6d, 0x6f, 0x52, 0x42, 0x78, 0x6e, 0x61, 0x33, 0x69, 0x77, 0x2f, 0x6e, 0x44, 0x6d, 0x56, 0x47, 0x33, 0x4b, 0x77, 0x63, 0x49, 0x7a, 0x69, 0x37, 0x6d, 0x55, 0x4c, 0x4b, 0x6e, 0x2b, 0x67, 0x70, 0x46, 0x4c, 0x36, 0x4c, 0x77, 0x38, 0x67, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x44, 0x72, 0x7a, 0x43, 0x43, 0x41, 0x70, 0x65, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x43, 0x44, 0x76, 0x67, 0x56, 0x70, 0x42, 0x43, 0x52, 0x72, 0x47, 0x68, 0x64, 0x57, 0x72, 0x4a, 0x57, 0x5a, 0x48, 0x48, 0x53, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x55, 0x46, 0x41, 0x44, 0x42, 0x68, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x0a, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x56, 0x4d, 0x42, 0x4d, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x4d, 0x52, 0x47, 0x6c, 0x6e, 0x61, 0x55, 0x4e, 0x6c, 0x63, 0x6e, 0x51, 0x67, 0x53, 0x57, 0x35, 0x6a, 0x4d, 0x52, 0x6b, 0x77, 0x46, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x78, 0x42, 0x33, 0x64, 0x33, 0x63, 0x75, 0x5a, 0x47, 0x6c, 0x6e, 0x61, 0x57, 0x4e, 0x6c, 0x63, 0x6e, 0x51, 0x75, 0x59, 0x32, 0x39, 0x74, 0x4d, 0x53, 0x41, 0x77, 0x0a, 0x48, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x64, 0x45, 0x61, 0x57, 0x64, 0x70, 0x51, 0x32, 0x56, 0x79, 0x64, 0x43, 0x42, 0x48, 0x62, 0x47, 0x39, 0x69, 0x59, 0x57, 0x77, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x51, 0x54, 0x41, 0x65, 0x46, 0x77, 0x30, 0x77, 0x4e, 0x6a, 0x45, 0x78, 0x4d, 0x54, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x42, 0x61, 0x46, 0x77, 0x30, 0x7a, 0x4d, 0x54, 0x45, 0x78, 0x4d, 0x54, 0x41, 0x77, 0x0a, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x42, 0x61, 0x4d, 0x47, 0x45, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6c, 0x56, 0x54, 0x4d, 0x52, 0x55, 0x77, 0x45, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x77, 0x78, 0x45, 0x61, 0x57, 0x64, 0x70, 0x51, 0x32, 0x56, 0x79, 0x64, 0x43, 0x42, 0x4a, 0x62, 0x6d, 0x4d, 0x78, 0x47, 0x54, 0x41, 0x58, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x73, 0x54, 0x45, 0x48, 0x64, 0x33, 0x0a, 0x64, 0x79, 0x35, 0x6b, 0x61, 0x57, 0x64, 0x70, 0x59, 0x32, 0x56, 0x79, 0x64, 0x43, 0x35, 0x6a, 0x62, 0x32, 0x30, 0x78, 0x49, 0x44, 0x41, 0x65, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x46, 0x30, 0x52, 0x70, 0x5a, 0x32, 0x6c, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x49, 0x45, 0x64, 0x73, 0x62, 0x32, 0x4a, 0x68, 0x62, 0x43, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x42, 0x4d, 0x49, 0x49, 0x42, 0x49, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x0a, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x45, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x51, 0x38, 0x41, 0x4d, 0x49, 0x49, 0x42, 0x43, 0x67, 0x4b, 0x43, 0x41, 0x51, 0x45, 0x41, 0x34, 0x6a, 0x76, 0x68, 0x45, 0x58, 0x4c, 0x65, 0x71, 0x4b, 0x54, 0x54, 0x6f, 0x31, 0x65, 0x71, 0x55, 0x4b, 0x4b, 0x50, 0x43, 0x33, 0x65, 0x51, 0x79, 0x61, 0x4b, 0x6c, 0x37, 0x68, 0x4c, 0x4f, 0x6c, 0x6c, 0x73, 0x42, 0x43, 0x53, 0x44, 0x4d, 0x41, 0x5a, 0x4f, 0x6e, 0x0a, 0x54, 0x6a, 0x43, 0x33, 0x55, 0x2f, 0x64, 0x44, 0x78, 0x47, 0x6b, 0x41, 0x56, 0x35, 0x33, 0x69, 0x6a, 0x53, 0x4c, 0x64, 0x68, 0x77, 0x5a, 0x41, 0x41, 0x49, 0x45, 0x4a, 0x7a, 0x73, 0x34, 0x62, 0x67, 0x37, 0x2f, 0x66, 0x7a, 0x54, 0x74, 0x78, 0x52, 0x75, 0x4c, 0x57, 0x5a, 0x73, 0x63, 0x46, 0x73, 0x33, 0x59, 0x6e, 0x46, 0x6f, 0x39, 0x37, 0x6e, 0x68, 0x36, 0x56, 0x66, 0x65, 0x36, 0x33, 0x53, 0x4b, 0x4d, 0x49, 0x32, 0x74, 0x61, 0x76, 0x65, 0x67, 0x77, 0x35, 0x0a, 0x42, 0x6d, 0x56, 0x2f, 0x53, 0x6c, 0x30, 0x66, 0x76, 0x42, 0x66, 0x34, 0x71, 0x37, 0x37, 0x75, 0x4b, 0x4e, 0x64, 0x30, 0x66, 0x33, 0x70, 0x34, 0x6d, 0x56, 0x6d, 0x46, 0x61, 0x47, 0x35, 0x63, 0x49, 0x7a, 0x4a, 0x4c, 0x76, 0x30, 0x37, 0x41, 0x36, 0x46, 0x70, 0x74, 0x34, 0x33, 0x43, 0x2f, 0x64, 0x78, 0x43, 0x2f, 0x2f, 0x41, 0x48, 0x32, 0x68, 0x64, 0x6d, 0x6f, 0x52, 0x42, 0x42, 0x59, 0x4d, 0x71, 0x6c, 0x31, 0x47, 0x4e, 0x58, 0x52, 0x6f, 0x72, 0x35, 0x48, 0x0a, 0x34, 0x69, 0x64, 0x71, 0x39, 0x4a, 0x6f, 0x7a, 0x2b, 0x45, 0x6b, 0x49, 0x59, 0x49, 0x76, 0x55, 0x58, 0x37, 0x51, 0x36, 0x68, 0x4c, 0x2b, 0x68, 0x71, 0x6b, 0x70, 0x4d, 0x66, 0x54, 0x37, 0x50, 0x54, 0x31, 0x39, 0x73, 0x64, 0x6c, 0x36, 0x67, 0x53, 0x7a, 0x65, 0x52, 0x6e, 0x74, 0x77, 0x69, 0x35, 0x6d, 0x33, 0x4f, 0x46, 0x42, 0x71, 0x4f, 0x61, 0x73, 0x76, 0x2b, 0x7a, 0x62, 0x4d, 0x55, 0x5a, 0x42, 0x66, 0x48, 0x57, 0x79, 0x6d, 0x65, 0x4d, 0x72, 0x2f, 0x79, 0x0a, 0x37, 0x76, 0x72, 0x54, 0x43, 0x30, 0x4c, 0x55, 0x71, 0x37, 0x64, 0x42, 0x4d, 0x74, 0x6f, 0x4d, 0x31, 0x4f, 0x2f, 0x34, 0x67, 0x64, 0x57, 0x37, 0x6a, 0x56, 0x67, 0x2f, 0x74, 0x52, 0x76, 0x6f, 0x53, 0x53, 0x69, 0x69, 0x63, 0x4e, 0x6f, 0x78, 0x42, 0x4e, 0x33, 0x33, 0x73, 0x68, 0x62, 0x79, 0x54, 0x41, 0x70, 0x4f, 0x42, 0x36, 0x6a, 0x74, 0x53, 0x6a, 0x31, 0x65, 0x74, 0x58, 0x2b, 0x6a, 0x6b, 0x4d, 0x4f, 0x76, 0x4a, 0x77, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x0a, 0x6f, 0x32, 0x4d, 0x77, 0x59, 0x54, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x59, 0x59, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x41, 0x39, 0x35, 0x51, 0x4e, 0x56, 0x62, 0x52, 0x54, 0x4c, 0x74, 0x6d, 0x0a, 0x38, 0x4b, 0x50, 0x69, 0x47, 0x78, 0x76, 0x44, 0x6c, 0x37, 0x49, 0x39, 0x30, 0x56, 0x55, 0x77, 0x48, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x6a, 0x42, 0x42, 0x67, 0x77, 0x46, 0x6f, 0x41, 0x55, 0x41, 0x39, 0x35, 0x51, 0x4e, 0x56, 0x62, 0x52, 0x54, 0x4c, 0x74, 0x6d, 0x38, 0x4b, 0x50, 0x69, 0x47, 0x78, 0x76, 0x44, 0x6c, 0x37, 0x49, 0x39, 0x30, 0x56, 0x55, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x46, 0x0a, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x45, 0x42, 0x41, 0x4d, 0x75, 0x63, 0x4e, 0x36, 0x70, 0x49, 0x45, 0x78, 0x49, 0x4b, 0x2b, 0x74, 0x31, 0x45, 0x6e, 0x45, 0x39, 0x53, 0x73, 0x50, 0x54, 0x66, 0x72, 0x67, 0x54, 0x31, 0x65, 0x58, 0x6b, 0x49, 0x6f, 0x79, 0x51, 0x59, 0x2f, 0x45, 0x73, 0x72, 0x68, 0x4d, 0x41, 0x74, 0x75, 0x64, 0x58, 0x48, 0x2f, 0x76, 0x54, 0x42, 0x48, 0x31, 0x6a, 0x4c, 0x75, 0x47, 0x32, 0x63, 0x65, 0x6e, 0x54, 0x6e, 0x6d, 0x43, 0x6d, 0x72, 0x0a, 0x45, 0x62, 0x58, 0x6a, 0x63, 0x4b, 0x43, 0x68, 0x7a, 0x55, 0x79, 0x49, 0x6d, 0x5a, 0x4f, 0x4d, 0x6b, 0x58, 0x44, 0x69, 0x71, 0x77, 0x38, 0x63, 0x76, 0x70, 0x4f, 0x70, 0x2f, 0x32, 0x50, 0x56, 0x35, 0x41, 0x64, 0x67, 0x30, 0x36, 0x4f, 0x2f, 0x6e, 0x56, 0x73, 0x4a, 0x38, 0x64, 0x57, 0x4f, 0x34, 0x31, 0x50, 0x30, 0x6a, 0x6d, 0x50, 0x36, 0x50, 0x36, 0x66, 0x62, 0x74, 0x47, 0x62, 0x66, 0x59, 0x6d, 0x62, 0x57, 0x30, 0x57, 0x35, 0x42, 0x6a, 0x66, 0x49, 0x74, 0x0a, 0x74, 0x65, 0x70, 0x33, 0x53, 0x70, 0x2b, 0x64, 0x57, 0x4f, 0x49, 0x72, 0x57, 0x63, 0x42, 0x41, 0x49, 0x2b, 0x30, 0x74, 0x4b, 0x49, 0x4a, 0x46, 0x50, 0x6e, 0x6c, 0x55, 0x6b, 0x69, 0x61, 0x59, 0x34, 0x49, 0x42, 0x49, 0x71, 0x44, 0x66, 0x76, 0x38, 0x4e, 0x5a, 0x35, 0x59, 0x42, 0x62, 0x65, 0x72, 0x4f, 0x67, 0x4f, 0x7a, 0x57, 0x36, 0x73, 0x52, 0x42, 0x63, 0x34, 0x4c, 0x30, 0x6e, 0x61, 0x34, 0x55, 0x55, 0x2b, 0x4b, 0x72, 0x6b, 0x32, 0x55, 0x38, 0x38, 0x36, 0x0a, 0x55, 0x41, 0x62, 0x33, 0x4c, 0x75, 0x6a, 0x45, 0x56, 0x30, 0x6c, 0x73, 0x59, 0x53, 0x45, 0x59, 0x31, 0x51, 0x53, 0x74, 0x65, 0x44, 0x77, 0x73, 0x4f, 0x6f, 0x42, 0x72, 0x70, 0x2b, 0x75, 0x76, 0x46, 0x52, 0x54, 0x70, 0x32, 0x49, 0x6e, 0x42, 0x75, 0x54, 0x68, 0x73, 0x34, 0x70, 0x46, 0x73, 0x69, 0x76, 0x39, 0x6b, 0x75, 0x58, 0x63, 0x6c, 0x56, 0x7a, 0x44, 0x41, 0x47, 0x79, 0x53, 0x6a, 0x34, 0x64, 0x7a, 0x70, 0x33, 0x30, 0x64, 0x38, 0x74, 0x62, 0x51, 0x6b, 0x0a, 0x43, 0x41, 0x55, 0x77, 0x37, 0x43, 0x32, 0x39, 0x43, 0x37, 0x39, 0x46, 0x76, 0x31, 0x43, 0x35, 0x71, 0x66, 0x50, 0x72, 0x6d, 0x41, 0x45, 0x53, 0x72, 0x63, 0x69, 0x49, 0x78, 0x70, 0x67, 0x30, 0x58, 0x34, 0x30, 0x4b, 0x50, 0x4d, 0x62, 0x70, 0x31, 0x5a, 0x57, 0x56, 0x62, 0x64, 0x34, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x48, 0x69, 0x67, 0x68, 0x20, 0x41, 0x73, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x45, 0x56, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x44, 0x78, 0x54, 0x43, 0x43, 0x41, 0x71, 0x32, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x41, 0x71, 0x78, 0x63, 0x4a, 0x6d, 0x6f, 0x4c, 0x51, 0x4a, 0x75, 0x50, 0x43, 0x33, 0x6e, 0x79, 0x72, 0x6b, 0x59, 0x6c, 0x64, 0x7a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x55, 0x46, 0x41, 0x44, 0x42, 0x73, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x0a, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x56, 0x4d, 0x42, 0x4d, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x4d, 0x52, 0x47, 0x6c, 0x6e, 0x61, 0x55, 0x4e, 0x6c, 0x63, 0x6e, 0x51, 0x67, 0x53, 0x57, 0x35, 0x6a, 0x4d, 0x52, 0x6b, 0x77, 0x46, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x78, 0x42, 0x33, 0x64, 0x33, 0x63, 0x75, 0x5a, 0x47, 0x6c, 0x6e, 0x61, 0x57, 0x4e, 0x6c, 0x63, 0x6e, 0x51, 0x75, 0x59, 0x32, 0x39, 0x74, 0x4d, 0x53, 0x73, 0x77, 0x0a, 0x4b, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x79, 0x4a, 0x45, 0x61, 0x57, 0x64, 0x70, 0x51, 0x32, 0x56, 0x79, 0x64, 0x43, 0x42, 0x49, 0x61, 0x57, 0x64, 0x6f, 0x49, 0x45, 0x46, 0x7a, 0x63, 0x33, 0x56, 0x79, 0x59, 0x57, 0x35, 0x6a, 0x5a, 0x53, 0x42, 0x46, 0x56, 0x69, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x42, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x41, 0x32, 0x4d, 0x54, 0x45, 0x78, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x0a, 0x4d, 0x46, 0x6f, 0x58, 0x44, 0x54, 0x4d, 0x78, 0x4d, 0x54, 0x45, 0x78, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x46, 0x6f, 0x77, 0x62, 0x44, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x46, 0x54, 0x41, 0x54, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x44, 0x45, 0x52, 0x70, 0x5a, 0x32, 0x6c, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x49, 0x45, 0x6c, 0x75, 0x59, 0x7a, 0x45, 0x5a, 0x0a, 0x4d, 0x42, 0x63, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x78, 0x4d, 0x51, 0x64, 0x33, 0x64, 0x33, 0x4c, 0x6d, 0x52, 0x70, 0x5a, 0x32, 0x6c, 0x6a, 0x5a, 0x58, 0x4a, 0x30, 0x4c, 0x6d, 0x4e, 0x76, 0x62, 0x54, 0x45, 0x72, 0x4d, 0x43, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x69, 0x52, 0x47, 0x6c, 0x6e, 0x61, 0x55, 0x4e, 0x6c, 0x63, 0x6e, 0x51, 0x67, 0x53, 0x47, 0x6c, 0x6e, 0x61, 0x43, 0x42, 0x42, 0x63, 0x33, 0x4e, 0x31, 0x63, 0x6d, 0x46, 0x75, 0x0a, 0x59, 0x32, 0x55, 0x67, 0x52, 0x56, 0x59, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x51, 0x54, 0x43, 0x43, 0x41, 0x53, 0x49, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x45, 0x50, 0x41, 0x44, 0x43, 0x43, 0x41, 0x51, 0x6f, 0x43, 0x67, 0x67, 0x45, 0x42, 0x41, 0x4d, 0x62, 0x4d, 0x35, 0x58, 0x50, 0x6d, 0x2b, 0x39, 0x53, 0x37, 0x35, 0x53, 0x30, 0x74, 0x0a, 0x4d, 0x71, 0x62, 0x66, 0x35, 0x59, 0x45, 0x2f, 0x79, 0x63, 0x30, 0x6c, 0x53, 0x62, 0x5a, 0x78, 0x4b, 0x73, 0x50, 0x56, 0x6c, 0x44, 0x52, 0x6e, 0x6f, 0x67, 0x6f, 0x63, 0x73, 0x46, 0x39, 0x70, 0x70, 0x6b, 0x43, 0x78, 0x78, 0x4c, 0x65, 0x79, 0x6a, 0x39, 0x43, 0x59, 0x70, 0x4b, 0x6c, 0x42, 0x57, 0x54, 0x72, 0x54, 0x33, 0x4a, 0x54, 0x57, 0x50, 0x4e, 0x74, 0x30, 0x4f, 0x4b, 0x52, 0x4b, 0x7a, 0x45, 0x30, 0x6c, 0x67, 0x76, 0x64, 0x4b, 0x70, 0x56, 0x4d, 0x53, 0x0a, 0x4f, 0x4f, 0x37, 0x7a, 0x53, 0x57, 0x31, 0x78, 0x6b, 0x58, 0x35, 0x6a, 0x74, 0x71, 0x75, 0x6d, 0x58, 0x38, 0x4f, 0x6b, 0x68, 0x50, 0x68, 0x50, 0x59, 0x6c, 0x47, 0x2b, 0x2b, 0x4d, 0x58, 0x73, 0x32, 0x7a, 0x69, 0x53, 0x34, 0x77, 0x62, 0x6c, 0x43, 0x4a, 0x45, 0x4d, 0x78, 0x43, 0x68, 0x42, 0x56, 0x66, 0x76, 0x4c, 0x57, 0x6f, 0x6b, 0x56, 0x66, 0x6e, 0x48, 0x6f, 0x4e, 0x62, 0x39, 0x4e, 0x63, 0x67, 0x6b, 0x39, 0x76, 0x6a, 0x6f, 0x34, 0x55, 0x46, 0x74, 0x33, 0x0a, 0x4d, 0x52, 0x75, 0x4e, 0x73, 0x38, 0x63, 0x6b, 0x52, 0x5a, 0x71, 0x6e, 0x72, 0x47, 0x30, 0x41, 0x46, 0x46, 0x6f, 0x45, 0x74, 0x37, 0x6f, 0x54, 0x36, 0x31, 0x45, 0x4b, 0x6d, 0x45, 0x46, 0x42, 0x49, 0x6b, 0x35, 0x6c, 0x59, 0x59, 0x65, 0x42, 0x51, 0x56, 0x43, 0x6d, 0x65, 0x56, 0x79, 0x4a, 0x33, 0x68, 0x6c, 0x4b, 0x56, 0x39, 0x55, 0x75, 0x35, 0x6c, 0x30, 0x63, 0x55, 0x79, 0x78, 0x2b, 0x6d, 0x4d, 0x30, 0x61, 0x42, 0x68, 0x61, 0x6b, 0x61, 0x48, 0x50, 0x51, 0x0a, 0x4e, 0x41, 0x51, 0x54, 0x58, 0x4b, 0x46, 0x78, 0x30, 0x31, 0x70, 0x38, 0x56, 0x64, 0x74, 0x65, 0x5a, 0x4f, 0x45, 0x33, 0x68, 0x7a, 0x42, 0x57, 0x42, 0x4f, 0x55, 0x52, 0x74, 0x43, 0x6d, 0x41, 0x45, 0x76, 0x46, 0x35, 0x4f, 0x59, 0x69, 0x69, 0x41, 0x68, 0x46, 0x38, 0x4a, 0x32, 0x61, 0x33, 0x69, 0x4c, 0x64, 0x34, 0x38, 0x73, 0x6f, 0x4b, 0x71, 0x44, 0x69, 0x72, 0x43, 0x6d, 0x54, 0x43, 0x76, 0x32, 0x5a, 0x64, 0x6c, 0x59, 0x54, 0x42, 0x6f, 0x53, 0x55, 0x65, 0x0a, 0x68, 0x31, 0x30, 0x61, 0x55, 0x41, 0x73, 0x67, 0x45, 0x73, 0x78, 0x42, 0x75, 0x32, 0x34, 0x4c, 0x55, 0x54, 0x69, 0x34, 0x53, 0x38, 0x73, 0x43, 0x41, 0x77, 0x45, 0x41, 0x41, 0x61, 0x4e, 0x6a, 0x4d, 0x47, 0x45, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x47, 0x47, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x0a, 0x41, 0x66, 0x38, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x4c, 0x45, 0x2b, 0x77, 0x32, 0x6b, 0x44, 0x2b, 0x4c, 0x39, 0x48, 0x41, 0x64, 0x53, 0x59, 0x4a, 0x68, 0x6f, 0x49, 0x41, 0x75, 0x39, 0x6a, 0x5a, 0x43, 0x76, 0x44, 0x4d, 0x42, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x49, 0x77, 0x51, 0x59, 0x4d, 0x42, 0x61, 0x41, 0x46, 0x4c, 0x45, 0x2b, 0x77, 0x32, 0x6b, 0x44, 0x2b, 0x4c, 0x39, 0x48, 0x41, 0x64, 0x53, 0x59, 0x0a, 0x4a, 0x68, 0x6f, 0x49, 0x41, 0x75, 0x39, 0x6a, 0x5a, 0x43, 0x76, 0x44, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x42, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x42, 0x41, 0x51, 0x41, 0x63, 0x47, 0x67, 0x61, 0x58, 0x33, 0x4e, 0x65, 0x63, 0x6e, 0x7a, 0x79, 0x49, 0x5a, 0x67, 0x59, 0x49, 0x56, 0x79, 0x48, 0x62, 0x49, 0x55, 0x66, 0x34, 0x4b, 0x6d, 0x65, 0x71, 0x76, 0x78, 0x67, 0x79, 0x64, 0x6b, 0x41, 0x51, 0x0a, 0x56, 0x38, 0x47, 0x4b, 0x38, 0x33, 0x72, 0x5a, 0x45, 0x57, 0x57, 0x4f, 0x4e, 0x66, 0x71, 0x65, 0x2f, 0x45, 0x57, 0x31, 0x6e, 0x74, 0x6c, 0x4d, 0x4d, 0x55, 0x75, 0x34, 0x6b, 0x65, 0x68, 0x44, 0x4c, 0x49, 0x36, 0x7a, 0x65, 0x4d, 0x37, 0x62, 0x34, 0x31, 0x4e, 0x35, 0x63, 0x64, 0x62, 0x6c, 0x49, 0x5a, 0x51, 0x42, 0x32, 0x6c, 0x57, 0x48, 0x6d, 0x69, 0x52, 0x6b, 0x39, 0x6f, 0x70, 0x6d, 0x7a, 0x4e, 0x36, 0x63, 0x4e, 0x38, 0x32, 0x6f, 0x4e, 0x4c, 0x46, 0x70, 0x0a, 0x6d, 0x79, 0x50, 0x49, 0x6e, 0x6e, 0x67, 0x69, 0x4b, 0x33, 0x42, 0x44, 0x34, 0x31, 0x56, 0x48, 0x4d, 0x57, 0x45, 0x5a, 0x37, 0x31, 0x6a, 0x46, 0x68, 0x53, 0x39, 0x4f, 0x4d, 0x50, 0x61, 0x67, 0x4d, 0x52, 0x59, 0x6a, 0x79, 0x4f, 0x66, 0x69, 0x5a, 0x52, 0x59, 0x7a, 0x79, 0x37, 0x38, 0x61, 0x47, 0x36, 0x41, 0x39, 0x2b, 0x4d, 0x70, 0x65, 0x69, 0x7a, 0x47, 0x4c, 0x59, 0x41, 0x69, 0x4a, 0x4c, 0x51, 0x77, 0x47, 0x58, 0x46, 0x4b, 0x33, 0x78, 0x50, 0x6b, 0x4b, 0x0a, 0x6d, 0x4e, 0x45, 0x56, 0x58, 0x35, 0x38, 0x53, 0x76, 0x6e, 0x77, 0x32, 0x59, 0x7a, 0x69, 0x39, 0x52, 0x4b, 0x52, 0x2f, 0x35, 0x43, 0x59, 0x72, 0x43, 0x73, 0x53, 0x58, 0x61, 0x51, 0x33, 0x70, 0x6a, 0x4f, 0x4c, 0x41, 0x45, 0x46, 0x65, 0x34, 0x79, 0x48, 0x59, 0x53, 0x6b, 0x56, 0x58, 0x79, 0x53, 0x47, 0x6e, 0x59, 0x76, 0x43, 0x6f, 0x43, 0x57, 0x77, 0x39, 0x45, 0x31, 0x43, 0x41, 0x78, 0x32, 0x2f, 0x53, 0x36, 0x63, 0x43, 0x5a, 0x64, 0x6b, 0x47, 0x43, 0x65, 0x0a, 0x76, 0x45, 0x73, 0x58, 0x43, 0x53, 0x2b, 0x30, 0x79, 0x78, 0x35, 0x44, 0x61, 0x4d, 0x6b, 0x48, 0x4a, 0x38, 0x48, 0x53, 0x58, 0x50, 0x66, 0x71, 0x49, 0x62, 0x6c, 0x6f, 0x45, 0x70, 0x77, 0x38, 0x6e, 0x4c, 0x2b, 0x65, 0x2f, 0x49, 0x42, 0x63, 0x6d, 0x32, 0x50, 0x4e, 0x37, 0x45, 0x65, 0x71, 0x4a, 0x53, 0x64, 0x6e, 0x6f, 0x44, 0x66, 0x7a, 0x41, 0x49, 0x4a, 0x39, 0x56, 0x4e, 0x65, 0x70, 0x2b, 0x4f, 0x6b, 0x75, 0x45, 0x36, 0x4e, 0x33, 0x36, 0x42, 0x39, 0x4b, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x53, 0x77, 0x69, 0x73, 0x73, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x47, 0x6f, 0x6c, 0x64, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x75, 0x6a, 0x43, 0x43, 0x41, 0x36, 0x4b, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4a, 0x41, 0x4c, 0x74, 0x41, 0x48, 0x45, 0x50, 0x31, 0x58, 0x6b, 0x2b, 0x77, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x42, 0x51, 0x55, 0x41, 0x4d, 0x45, 0x55, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6b, 0x4e, 0x49, 0x4d, 0x52, 0x55, 0x77, 0x0a, 0x45, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x77, 0x78, 0x54, 0x64, 0x32, 0x6c, 0x7a, 0x63, 0x31, 0x4e, 0x70, 0x5a, 0x32, 0x34, 0x67, 0x51, 0x55, 0x63, 0x78, 0x48, 0x7a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x46, 0x6c, 0x4e, 0x33, 0x61, 0x58, 0x4e, 0x7a, 0x55, 0x32, 0x6c, 0x6e, 0x62, 0x69, 0x42, 0x48, 0x62, 0x32, 0x78, 0x6b, 0x49, 0x45, 0x4e, 0x42, 0x49, 0x43, 0x30, 0x67, 0x52, 0x7a, 0x49, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x0a, 0x4d, 0x44, 0x59, 0x78, 0x4d, 0x44, 0x49, 0x31, 0x4d, 0x44, 0x67, 0x7a, 0x4d, 0x44, 0x4d, 0x31, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x7a, 0x59, 0x78, 0x4d, 0x44, 0x49, 0x31, 0x4d, 0x44, 0x67, 0x7a, 0x4d, 0x44, 0x4d, 0x31, 0x57, 0x6a, 0x42, 0x46, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x44, 0x53, 0x44, 0x45, 0x56, 0x4d, 0x42, 0x4d, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x4d, 0x55, 0x33, 0x64, 0x70, 0x0a, 0x63, 0x33, 0x4e, 0x54, 0x61, 0x57, 0x64, 0x75, 0x49, 0x45, 0x46, 0x48, 0x4d, 0x52, 0x38, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x5a, 0x54, 0x64, 0x32, 0x6c, 0x7a, 0x63, 0x31, 0x4e, 0x70, 0x5a, 0x32, 0x34, 0x67, 0x52, 0x32, 0x39, 0x73, 0x5a, 0x43, 0x42, 0x44, 0x51, 0x53, 0x41, 0x74, 0x49, 0x45, 0x63, 0x79, 0x4d, 0x49, 0x49, 0x43, 0x49, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x0a, 0x41, 0x51, 0x45, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x38, 0x41, 0x4d, 0x49, 0x49, 0x43, 0x43, 0x67, 0x4b, 0x43, 0x41, 0x67, 0x45, 0x41, 0x72, 0x2b, 0x54, 0x75, 0x66, 0x6f, 0x73, 0x6b, 0x44, 0x68, 0x4a, 0x75, 0x71, 0x56, 0x41, 0x74, 0x46, 0x6b, 0x51, 0x37, 0x6b, 0x70, 0x4a, 0x63, 0x79, 0x72, 0x68, 0x64, 0x68, 0x4a, 0x4a, 0x43, 0x45, 0x79, 0x71, 0x38, 0x5a, 0x56, 0x65, 0x43, 0x51, 0x44, 0x35, 0x58, 0x4a, 0x4d, 0x31, 0x51, 0x69, 0x79, 0x55, 0x71, 0x0a, 0x74, 0x32, 0x2f, 0x38, 0x37, 0x36, 0x4c, 0x51, 0x77, 0x42, 0x38, 0x43, 0x4a, 0x45, 0x6f, 0x54, 0x6c, 0x6f, 0x38, 0x6a, 0x45, 0x2b, 0x59, 0x6f, 0x57, 0x41, 0x43, 0x6a, 0x52, 0x38, 0x63, 0x47, 0x70, 0x34, 0x51, 0x6a, 0x4b, 0x37, 0x75, 0x39, 0x6c, 0x69, 0x74, 0x2f, 0x56, 0x63, 0x79, 0x4c, 0x77, 0x56, 0x63, 0x66, 0x44, 0x6d, 0x4a, 0x6c, 0x44, 0x39, 0x30, 0x39, 0x56, 0x6f, 0x70, 0x7a, 0x32, 0x71, 0x35, 0x2b, 0x62, 0x62, 0x71, 0x42, 0x48, 0x48, 0x35, 0x43, 0x0a, 0x6a, 0x43, 0x41, 0x31, 0x32, 0x55, 0x4e, 0x4e, 0x68, 0x50, 0x71, 0x45, 0x32, 0x31, 0x49, 0x73, 0x38, 0x77, 0x34, 0x6e, 0x64, 0x77, 0x74, 0x72, 0x76, 0x78, 0x45, 0x76, 0x63, 0x6e, 0x69, 0x66, 0x4c, 0x74, 0x67, 0x2b, 0x35, 0x68, 0x67, 0x33, 0x57, 0x69, 0x70, 0x79, 0x2b, 0x64, 0x70, 0x69, 0x6b, 0x4a, 0x4b, 0x56, 0x79, 0x68, 0x2b, 0x63, 0x36, 0x62, 0x4d, 0x38, 0x4b, 0x38, 0x76, 0x7a, 0x41, 0x52, 0x4f, 0x2f, 0x57, 0x73, 0x2f, 0x42, 0x74, 0x51, 0x70, 0x67, 0x0a, 0x76, 0x64, 0x32, 0x31, 0x6d, 0x57, 0x52, 0x54, 0x75, 0x4b, 0x43, 0x57, 0x73, 0x32, 0x2f, 0x69, 0x4a, 0x6e, 0x65, 0x52, 0x6a, 0x4f, 0x42, 0x69, 0x45, 0x41, 0x4b, 0x66, 0x4e, 0x41, 0x2b, 0x6b, 0x31, 0x5a, 0x49, 0x7a, 0x55, 0x64, 0x36, 0x2b, 0x6a, 0x62, 0x71, 0x45, 0x65, 0x6d, 0x41, 0x38, 0x61, 0x74, 0x75, 0x66, 0x4b, 0x2b, 0x7a, 0x65, 0x33, 0x67, 0x45, 0x2f, 0x62, 0x6b, 0x33, 0x6c, 0x55, 0x49, 0x62, 0x4c, 0x74, 0x4b, 0x2f, 0x74, 0x52, 0x45, 0x44, 0x46, 0x0a, 0x79, 0x6c, 0x71, 0x4d, 0x32, 0x74, 0x49, 0x72, 0x66, 0x4b, 0x6a, 0x75, 0x76, 0x71, 0x62, 0x6c, 0x43, 0x71, 0x6f, 0x4f, 0x70, 0x64, 0x38, 0x46, 0x55, 0x72, 0x64, 0x56, 0x78, 0x79, 0x4a, 0x64, 0x4d, 0x6d, 0x71, 0x58, 0x6c, 0x32, 0x4d, 0x54, 0x32, 0x38, 0x6e, 0x62, 0x65, 0x54, 0x5a, 0x37, 0x68, 0x54, 0x70, 0x4b, 0x78, 0x56, 0x4b, 0x4a, 0x2b, 0x53, 0x54, 0x6e, 0x6e, 0x58, 0x65, 0x70, 0x67, 0x76, 0x39, 0x56, 0x48, 0x4b, 0x56, 0x78, 0x61, 0x53, 0x76, 0x52, 0x0a, 0x41, 0x69, 0x54, 0x79, 0x73, 0x79, 0x62, 0x55, 0x61, 0x39, 0x6f, 0x45, 0x56, 0x65, 0x58, 0x42, 0x43, 0x73, 0x64, 0x74, 0x4d, 0x44, 0x65, 0x51, 0x4b, 0x75, 0x53, 0x65, 0x46, 0x44, 0x4e, 0x65, 0x46, 0x68, 0x64, 0x56, 0x78, 0x56, 0x75, 0x31, 0x79, 0x7a, 0x53, 0x4a, 0x6b, 0x76, 0x47, 0x64, 0x4a, 0x6f, 0x2b, 0x68, 0x42, 0x39, 0x54, 0x47, 0x73, 0x6e, 0x68, 0x51, 0x32, 0x77, 0x77, 0x4d, 0x43, 0x33, 0x77, 0x4c, 0x6a, 0x45, 0x48, 0x58, 0x75, 0x65, 0x6e, 0x64, 0x0a, 0x6a, 0x49, 0x6a, 0x33, 0x6f, 0x30, 0x32, 0x79, 0x4d, 0x73, 0x7a, 0x59, 0x46, 0x39, 0x72, 0x4e, 0x74, 0x38, 0x35, 0x6d, 0x6e, 0x64, 0x54, 0x39, 0x58, 0x76, 0x2b, 0x39, 0x6c, 0x7a, 0x34, 0x70, 0x64, 0x65, 0x64, 0x2b, 0x70, 0x32, 0x4a, 0x59, 0x72, 0x79, 0x55, 0x30, 0x70, 0x55, 0x48, 0x48, 0x50, 0x62, 0x77, 0x4e, 0x55, 0x4d, 0x6f, 0x44, 0x41, 0x77, 0x38, 0x49, 0x57, 0x68, 0x2b, 0x56, 0x63, 0x33, 0x68, 0x69, 0x76, 0x36, 0x39, 0x79, 0x46, 0x47, 0x6b, 0x4f, 0x0a, 0x70, 0x65, 0x55, 0x44, 0x44, 0x6e, 0x69, 0x4f, 0x4a, 0x69, 0x68, 0x43, 0x38, 0x41, 0x63, 0x4c, 0x59, 0x69, 0x41, 0x51, 0x5a, 0x7a, 0x6c, 0x47, 0x2b, 0x71, 0x6b, 0x44, 0x7a, 0x41, 0x51, 0x34, 0x65, 0x6d, 0x62, 0x76, 0x49, 0x49, 0x4f, 0x31, 0x6a, 0x45, 0x70, 0x57, 0x6a, 0x70, 0x45, 0x41, 0x2f, 0x49, 0x35, 0x63, 0x67, 0x74, 0x36, 0x49, 0x6f, 0x4d, 0x50, 0x69, 0x61, 0x47, 0x35, 0x39, 0x6a, 0x65, 0x38, 0x38, 0x33, 0x57, 0x58, 0x30, 0x58, 0x61, 0x78, 0x52, 0x0a, 0x37, 0x79, 0x53, 0x41, 0x72, 0x71, 0x70, 0x57, 0x6c, 0x32, 0x2f, 0x35, 0x72, 0x58, 0x33, 0x61, 0x59, 0x54, 0x2b, 0x59, 0x64, 0x7a, 0x79, 0x6c, 0x6b, 0x62, 0x59, 0x63, 0x6a, 0x43, 0x62, 0x61, 0x5a, 0x61, 0x49, 0x4a, 0x62, 0x63, 0x48, 0x69, 0x56, 0x4f, 0x4f, 0x35, 0x79, 0x6b, 0x78, 0x4d, 0x67, 0x49, 0x39, 0x33, 0x65, 0x32, 0x43, 0x61, 0x48, 0x74, 0x2b, 0x32, 0x38, 0x6b, 0x67, 0x65, 0x44, 0x72, 0x70, 0x4f, 0x56, 0x47, 0x32, 0x59, 0x34, 0x4f, 0x47, 0x69, 0x0a, 0x47, 0x71, 0x4a, 0x33, 0x55, 0x4d, 0x2f, 0x45, 0x59, 0x35, 0x4c, 0x73, 0x52, 0x78, 0x6d, 0x64, 0x36, 0x2b, 0x5a, 0x72, 0x7a, 0x73, 0x45, 0x43, 0x41, 0x77, 0x45, 0x41, 0x41, 0x61, 0x4f, 0x42, 0x72, 0x44, 0x43, 0x42, 0x71, 0x54, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x51, 0x59, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x0a, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x57, 0x79, 0x56, 0x37, 0x6c, 0x71, 0x52, 0x6c, 0x55, 0x58, 0x36, 0x34, 0x4f, 0x66, 0x50, 0x41, 0x65, 0x47, 0x5a, 0x65, 0x36, 0x44, 0x72, 0x6e, 0x38, 0x4f, 0x34, 0x77, 0x48, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x6a, 0x42, 0x42, 0x67, 0x77, 0x46, 0x6f, 0x41, 0x55, 0x57, 0x79, 0x56, 0x37, 0x6c, 0x71, 0x52, 0x6c, 0x55, 0x58, 0x36, 0x34, 0x0a, 0x4f, 0x66, 0x50, 0x41, 0x65, 0x47, 0x5a, 0x65, 0x36, 0x44, 0x72, 0x6e, 0x38, 0x4f, 0x34, 0x77, 0x52, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x67, 0x42, 0x44, 0x38, 0x77, 0x50, 0x54, 0x41, 0x37, 0x42, 0x67, 0x6c, 0x67, 0x68, 0x58, 0x51, 0x42, 0x57, 0x51, 0x45, 0x43, 0x41, 0x51, 0x45, 0x77, 0x4c, 0x6a, 0x41, 0x73, 0x42, 0x67, 0x67, 0x72, 0x42, 0x67, 0x45, 0x46, 0x42, 0x51, 0x63, 0x43, 0x41, 0x52, 0x59, 0x67, 0x61, 0x48, 0x52, 0x30, 0x63, 0x44, 0x6f, 0x76, 0x0a, 0x4c, 0x33, 0x4a, 0x6c, 0x63, 0x47, 0x39, 0x7a, 0x61, 0x58, 0x52, 0x76, 0x63, 0x6e, 0x6b, 0x75, 0x63, 0x33, 0x64, 0x70, 0x63, 0x33, 0x4e, 0x7a, 0x61, 0x57, 0x64, 0x75, 0x4c, 0x6d, 0x4e, 0x76, 0x62, 0x53, 0x38, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x46, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x42, 0x41, 0x43, 0x65, 0x36, 0x34, 0x35, 0x52, 0x38, 0x38, 0x61, 0x37, 0x41, 0x33, 0x68, 0x66, 0x6d, 0x0a, 0x35, 0x64, 0x6a, 0x56, 0x39, 0x56, 0x53, 0x77, 0x67, 0x2f, 0x53, 0x37, 0x7a, 0x56, 0x34, 0x46, 0x65, 0x30, 0x2b, 0x66, 0x64, 0x57, 0x61, 0x76, 0x50, 0x4f, 0x68, 0x57, 0x66, 0x76, 0x78, 0x79, 0x65, 0x44, 0x67, 0x44, 0x32, 0x53, 0x74, 0x69, 0x47, 0x77, 0x43, 0x35, 0x2b, 0x4f, 0x6c, 0x67, 0x7a, 0x63, 0x7a, 0x4f, 0x55, 0x59, 0x72, 0x48, 0x55, 0x44, 0x46, 0x75, 0x34, 0x55, 0x70, 0x2b, 0x47, 0x43, 0x39, 0x70, 0x57, 0x62, 0x59, 0x39, 0x5a, 0x49, 0x45, 0x72, 0x0a, 0x34, 0x34, 0x4f, 0x45, 0x35, 0x69, 0x4b, 0x48, 0x6a, 0x6e, 0x33, 0x67, 0x37, 0x67, 0x4b, 0x5a, 0x59, 0x62, 0x67, 0x65, 0x39, 0x4c, 0x67, 0x72, 0x69, 0x42, 0x49, 0x57, 0x68, 0x4d, 0x49, 0x78, 0x6b, 0x7a, 0x69, 0x57, 0x4d, 0x61, 0x61, 0x35, 0x4f, 0x31, 0x4d, 0x2f, 0x77, 0x79, 0x53, 0x54, 0x56, 0x6c, 0x74, 0x70, 0x6b, 0x75, 0x7a, 0x46, 0x77, 0x62, 0x73, 0x34, 0x41, 0x4f, 0x50, 0x73, 0x46, 0x36, 0x6d, 0x34, 0x33, 0x4d, 0x64, 0x38, 0x41, 0x59, 0x4f, 0x66, 0x0a, 0x4d, 0x6b, 0x65, 0x36, 0x55, 0x69, 0x49, 0x30, 0x48, 0x54, 0x4a, 0x36, 0x43, 0x56, 0x61, 0x6e, 0x66, 0x43, 0x55, 0x32, 0x71, 0x54, 0x31, 0x4c, 0x32, 0x73, 0x43, 0x43, 0x62, 0x77, 0x71, 0x37, 0x45, 0x73, 0x69, 0x48, 0x53, 0x79, 0x63, 0x52, 0x2b, 0x52, 0x34, 0x74, 0x78, 0x35, 0x4d, 0x2f, 0x6e, 0x74, 0x74, 0x66, 0x4a, 0x6d, 0x74, 0x53, 0x32, 0x53, 0x36, 0x4b, 0x38, 0x52, 0x54, 0x47, 0x52, 0x49, 0x30, 0x56, 0x71, 0x62, 0x65, 0x2f, 0x76, 0x64, 0x36, 0x6d, 0x0a, 0x47, 0x75, 0x36, 0x75, 0x4c, 0x66, 0x74, 0x49, 0x64, 0x78, 0x66, 0x2b, 0x75, 0x2b, 0x79, 0x76, 0x47, 0x50, 0x55, 0x71, 0x55, 0x66, 0x41, 0x35, 0x68, 0x4a, 0x65, 0x56, 0x62, 0x47, 0x34, 0x62, 0x77, 0x79, 0x76, 0x45, 0x64, 0x47, 0x42, 0x35, 0x4a, 0x62, 0x41, 0x4b, 0x4a, 0x39, 0x2f, 0x66, 0x58, 0x74, 0x49, 0x35, 0x7a, 0x30, 0x56, 0x39, 0x51, 0x6b, 0x76, 0x66, 0x73, 0x79, 0x77, 0x65, 0x78, 0x63, 0x5a, 0x64, 0x79, 0x6c, 0x55, 0x36, 0x6f, 0x4a, 0x78, 0x70, 0x0a, 0x6d, 0x6f, 0x2f, 0x61, 0x37, 0x37, 0x4b, 0x77, 0x50, 0x4a, 0x2b, 0x48, 0x62, 0x42, 0x49, 0x72, 0x5a, 0x58, 0x41, 0x56, 0x55, 0x6a, 0x45, 0x61, 0x4a, 0x4d, 0x39, 0x76, 0x4d, 0x53, 0x4e, 0x51, 0x48, 0x34, 0x78, 0x50, 0x6a, 0x79, 0x50, 0x44, 0x64, 0x45, 0x46, 0x6a, 0x48, 0x46, 0x57, 0x6f, 0x46, 0x4e, 0x30, 0x2b, 0x34, 0x46, 0x46, 0x51, 0x7a, 0x2f, 0x45, 0x62, 0x4d, 0x46, 0x59, 0x4f, 0x6b, 0x72, 0x43, 0x43, 0x68, 0x64, 0x69, 0x44, 0x79, 0x79, 0x4a, 0x6b, 0x0a, 0x76, 0x43, 0x32, 0x34, 0x4a, 0x64, 0x56, 0x55, 0x6f, 0x72, 0x67, 0x47, 0x36, 0x71, 0x32, 0x53, 0x70, 0x43, 0x53, 0x67, 0x77, 0x59, 0x61, 0x31, 0x53, 0x68, 0x4e, 0x71, 0x52, 0x38, 0x38, 0x75, 0x43, 0x31, 0x61, 0x56, 0x56, 0x4d, 0x76, 0x4f, 0x6d, 0x74, 0x74, 0x71, 0x74, 0x4b, 0x61, 0x79, 0x32, 0x30, 0x45, 0x49, 0x68, 0x69, 0x64, 0x33, 0x39, 0x32, 0x71, 0x67, 0x51, 0x6d, 0x77, 0x4c, 0x4f, 0x4d, 0x37, 0x58, 0x64, 0x56, 0x41, 0x79, 0x6b, 0x73, 0x4c, 0x66, 0x0a, 0x4b, 0x7a, 0x41, 0x69, 0x53, 0x4e, 0x44, 0x56, 0x51, 0x54, 0x67, 0x6c, 0x58, 0x61, 0x54, 0x70, 0x58, 0x5a, 0x2f, 0x47, 0x6c, 0x48, 0x58, 0x51, 0x52, 0x66, 0x30, 0x77, 0x6c, 0x30, 0x4f, 0x50, 0x6b, 0x4b, 0x73, 0x4b, 0x78, 0x34, 0x5a, 0x7a, 0x59, 0x45, 0x70, 0x70, 0x4c, 0x64, 0x36, 0x6c, 0x65, 0x4e, 0x63, 0x47, 0x32, 0x6d, 0x71, 0x65, 0x53, 0x7a, 0x35, 0x33, 0x4f, 0x69, 0x41, 0x54, 0x49, 0x67, 0x48, 0x51, 0x76, 0x32, 0x69, 0x65, 0x59, 0x32, 0x42, 0x72, 0x0a, 0x4e, 0x55, 0x30, 0x4c, 0x62, 0x62, 0x71, 0x68, 0x50, 0x63, 0x43, 0x54, 0x34, 0x48, 0x38, 0x6a, 0x73, 0x31, 0x57, 0x74, 0x63, 0x69, 0x56, 0x4f, 0x52, 0x76, 0x6e, 0x53, 0x46, 0x75, 0x2b, 0x77, 0x5a, 0x4d, 0x45, 0x42, 0x6e, 0x75, 0x6e, 0x4b, 0x6f, 0x47, 0x71, 0x59, 0x44, 0x73, 0x2f, 0x59, 0x59, 0x50, 0x49, 0x76, 0x53, 0x62, 0x6a, 0x6b, 0x51, 0x75, 0x45, 0x34, 0x4e, 0x52, 0x62, 0x30, 0x79, 0x47, 0x35, 0x50, 0x39, 0x34, 0x46, 0x57, 0x36, 0x4c, 0x71, 0x6a, 0x0a, 0x76, 0x69, 0x4f, 0x76, 0x72, 0x76, 0x31, 0x76, 0x41, 0x2b, 0x41, 0x43, 0x4f, 0x7a, 0x42, 0x32, 0x2b, 0x68, 0x74, 0x74, 0x51, 0x63, 0x38, 0x42, 0x73, 0x65, 0x6d, 0x34, 0x79, 0x57, 0x62, 0x30, 0x32, 0x79, 0x62, 0x7a, 0x4f, 0x71, 0x52, 0x30, 0x38, 0x6b, 0x6b, 0x6b, 0x57, 0x38, 0x6d, 0x77, 0x30, 0x46, 0x66, 0x42, 0x2b, 0x6a, 0x35, 0x36, 0x34, 0x5a, 0x66, 0x4a, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x53, 0x77, 0x69, 0x73, 0x73, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x53, 0x69, 0x6c, 0x76, 0x65, 0x72, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x76, 0x54, 0x43, 0x43, 0x41, 0x36, 0x57, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x49, 0x54, 0x78, 0x76, 0x55, 0x4c, 0x31, 0x53, 0x37, 0x4c, 0x30, 0x73, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x46, 0x42, 0x51, 0x41, 0x77, 0x52, 0x7a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x51, 0x30, 0x67, 0x78, 0x46, 0x54, 0x41, 0x54, 0x0a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x44, 0x46, 0x4e, 0x33, 0x61, 0x58, 0x4e, 0x7a, 0x55, 0x32, 0x6c, 0x6e, 0x62, 0x69, 0x42, 0x42, 0x52, 0x7a, 0x45, 0x68, 0x4d, 0x42, 0x38, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x59, 0x55, 0x33, 0x64, 0x70, 0x63, 0x33, 0x4e, 0x54, 0x61, 0x57, 0x64, 0x75, 0x49, 0x46, 0x4e, 0x70, 0x62, 0x48, 0x5a, 0x6c, 0x63, 0x69, 0x42, 0x44, 0x51, 0x53, 0x41, 0x74, 0x49, 0x45, 0x63, 0x79, 0x4d, 0x42, 0x34, 0x58, 0x0a, 0x44, 0x54, 0x41, 0x32, 0x4d, 0x54, 0x41, 0x79, 0x4e, 0x54, 0x41, 0x34, 0x4d, 0x7a, 0x49, 0x30, 0x4e, 0x6c, 0x6f, 0x58, 0x44, 0x54, 0x4d, 0x32, 0x4d, 0x54, 0x41, 0x79, 0x4e, 0x54, 0x41, 0x34, 0x4d, 0x7a, 0x49, 0x30, 0x4e, 0x6c, 0x6f, 0x77, 0x52, 0x7a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x51, 0x30, 0x67, 0x78, 0x46, 0x54, 0x41, 0x54, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x44, 0x46, 0x4e, 0x33, 0x0a, 0x61, 0x58, 0x4e, 0x7a, 0x55, 0x32, 0x6c, 0x6e, 0x62, 0x69, 0x42, 0x42, 0x52, 0x7a, 0x45, 0x68, 0x4d, 0x42, 0x38, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x59, 0x55, 0x33, 0x64, 0x70, 0x63, 0x33, 0x4e, 0x54, 0x61, 0x57, 0x64, 0x75, 0x49, 0x46, 0x4e, 0x70, 0x62, 0x48, 0x5a, 0x6c, 0x63, 0x69, 0x42, 0x44, 0x51, 0x53, 0x41, 0x74, 0x49, 0x45, 0x63, 0x79, 0x4d, 0x49, 0x49, 0x43, 0x49, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x0a, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x45, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x38, 0x41, 0x4d, 0x49, 0x49, 0x43, 0x43, 0x67, 0x4b, 0x43, 0x41, 0x67, 0x45, 0x41, 0x78, 0x50, 0x47, 0x48, 0x66, 0x39, 0x4e, 0x34, 0x4d, 0x66, 0x63, 0x34, 0x79, 0x66, 0x6a, 0x44, 0x6d, 0x55, 0x4f, 0x38, 0x78, 0x2f, 0x65, 0x38, 0x4e, 0x2b, 0x64, 0x4f, 0x63, 0x62, 0x70, 0x4c, 0x6a, 0x36, 0x56, 0x7a, 0x48, 0x56, 0x78, 0x75, 0x6d, 0x4b, 0x34, 0x44, 0x56, 0x36, 0x34, 0x34, 0x0a, 0x4e, 0x30, 0x4d, 0x76, 0x46, 0x7a, 0x30, 0x66, 0x79, 0x4d, 0x35, 0x6f, 0x45, 0x4d, 0x46, 0x34, 0x72, 0x68, 0x6b, 0x44, 0x4b, 0x78, 0x44, 0x36, 0x4c, 0x48, 0x6d, 0x44, 0x39, 0x75, 0x69, 0x35, 0x61, 0x4c, 0x6c, 0x56, 0x38, 0x67, 0x52, 0x45, 0x70, 0x7a, 0x6e, 0x35, 0x2f, 0x41, 0x53, 0x4c, 0x48, 0x76, 0x47, 0x69, 0x54, 0x53, 0x66, 0x35, 0x59, 0x58, 0x75, 0x36, 0x74, 0x2b, 0x57, 0x69, 0x45, 0x37, 0x62, 0x72, 0x59, 0x54, 0x37, 0x51, 0x62, 0x4e, 0x48, 0x6d, 0x0a, 0x2b, 0x2f, 0x70, 0x65, 0x37, 0x52, 0x32, 0x30, 0x6e, 0x71, 0x41, 0x31, 0x57, 0x36, 0x47, 0x53, 0x79, 0x2f, 0x42, 0x4a, 0x6b, 0x76, 0x36, 0x46, 0x43, 0x67, 0x55, 0x2b, 0x35, 0x74, 0x6b, 0x4c, 0x34, 0x6b, 0x2b, 0x37, 0x33, 0x4a, 0x55, 0x33, 0x2f, 0x4a, 0x48, 0x70, 0x4d, 0x6a, 0x55, 0x69, 0x30, 0x52, 0x38, 0x36, 0x54, 0x69, 0x65, 0x46, 0x6e, 0x62, 0x41, 0x56, 0x6c, 0x44, 0x4c, 0x61, 0x59, 0x51, 0x31, 0x48, 0x54, 0x57, 0x42, 0x43, 0x72, 0x70, 0x4a, 0x48, 0x0a, 0x36, 0x49, 0x4e, 0x61, 0x55, 0x46, 0x6a, 0x70, 0x69, 0x6f, 0x75, 0x35, 0x58, 0x61, 0x48, 0x63, 0x33, 0x5a, 0x6c, 0x4b, 0x48, 0x7a, 0x5a, 0x6e, 0x75, 0x30, 0x6a, 0x6b, 0x67, 0x37, 0x59, 0x33, 0x36, 0x30, 0x67, 0x36, 0x72, 0x77, 0x39, 0x6e, 0x6a, 0x78, 0x63, 0x48, 0x36, 0x41, 0x54, 0x4b, 0x37, 0x32, 0x6f, 0x78, 0x68, 0x39, 0x54, 0x41, 0x74, 0x76, 0x6d, 0x55, 0x63, 0x58, 0x74, 0x6e, 0x5a, 0x4c, 0x69, 0x32, 0x6b, 0x55, 0x70, 0x43, 0x65, 0x32, 0x55, 0x75, 0x0a, 0x4d, 0x47, 0x6f, 0x4d, 0x39, 0x5a, 0x44, 0x75, 0x6c, 0x65, 0x62, 0x79, 0x7a, 0x59, 0x4c, 0x73, 0x32, 0x61, 0x46, 0x4b, 0x37, 0x50, 0x61, 0x79, 0x53, 0x2b, 0x56, 0x46, 0x68, 0x65, 0x5a, 0x74, 0x65, 0x4a, 0x4d, 0x45, 0x4c, 0x70, 0x79, 0x43, 0x62, 0x54, 0x61, 0x70, 0x78, 0x44, 0x46, 0x6b, 0x48, 0x34, 0x61, 0x44, 0x43, 0x79, 0x72, 0x30, 0x4e, 0x51, 0x70, 0x34, 0x79, 0x56, 0x58, 0x50, 0x51, 0x62, 0x42, 0x48, 0x36, 0x54, 0x43, 0x66, 0x6d, 0x62, 0x35, 0x68, 0x0a, 0x71, 0x41, 0x61, 0x45, 0x75, 0x53, 0x68, 0x36, 0x58, 0x7a, 0x6a, 0x5a, 0x47, 0x36, 0x6b, 0x34, 0x73, 0x49, 0x4e, 0x2f, 0x63, 0x38, 0x48, 0x44, 0x4f, 0x30, 0x67, 0x71, 0x67, 0x67, 0x38, 0x68, 0x6d, 0x37, 0x6a, 0x4d, 0x71, 0x44, 0x58, 0x44, 0x68, 0x42, 0x75, 0x44, 0x73, 0x7a, 0x36, 0x2b, 0x70, 0x4a, 0x56, 0x70, 0x41, 0x54, 0x71, 0x4a, 0x41, 0x48, 0x67, 0x45, 0x32, 0x63, 0x6e, 0x30, 0x6d, 0x52, 0x6d, 0x72, 0x56, 0x6e, 0x35, 0x62, 0x69, 0x34, 0x59, 0x35, 0x0a, 0x46, 0x5a, 0x47, 0x6b, 0x45, 0x43, 0x77, 0x4a, 0x4d, 0x6f, 0x42, 0x67, 0x73, 0x35, 0x50, 0x41, 0x4b, 0x72, 0x59, 0x59, 0x43, 0x35, 0x31, 0x2b, 0x6a, 0x55, 0x6e, 0x79, 0x45, 0x45, 0x70, 0x2f, 0x2b, 0x64, 0x56, 0x47, 0x4c, 0x78, 0x6d, 0x53, 0x6f, 0x35, 0x6d, 0x6e, 0x4a, 0x71, 0x79, 0x37, 0x6a, 0x44, 0x7a, 0x6d, 0x44, 0x72, 0x78, 0x48, 0x42, 0x39, 0x78, 0x7a, 0x55, 0x66, 0x46, 0x77, 0x5a, 0x43, 0x38, 0x49, 0x2b, 0x62, 0x52, 0x48, 0x48, 0x54, 0x42, 0x73, 0x0a, 0x52, 0x4f, 0x6f, 0x70, 0x4e, 0x34, 0x57, 0x53, 0x61, 0x47, 0x61, 0x38, 0x67, 0x7a, 0x6a, 0x2b, 0x65, 0x7a, 0x6b, 0x75, 0x30, 0x31, 0x44, 0x77, 0x48, 0x2f, 0x74, 0x65, 0x59, 0x4c, 0x61, 0x70, 0x70, 0x76, 0x6f, 0x6e, 0x51, 0x66, 0x47, 0x62, 0x47, 0x48, 0x4c, 0x79, 0x39, 0x59, 0x52, 0x30, 0x53, 0x73, 0x6c, 0x6e, 0x78, 0x46, 0x53, 0x75, 0x53, 0x47, 0x54, 0x66, 0x6a, 0x4e, 0x46, 0x75, 0x73, 0x42, 0x33, 0x68, 0x42, 0x34, 0x38, 0x49, 0x48, 0x70, 0x6d, 0x63, 0x0a, 0x63, 0x65, 0x6c, 0x4d, 0x32, 0x4b, 0x58, 0x33, 0x52, 0x78, 0x49, 0x66, 0x64, 0x4e, 0x46, 0x52, 0x6e, 0x6f, 0x62, 0x7a, 0x77, 0x71, 0x49, 0x6a, 0x51, 0x41, 0x74, 0x7a, 0x32, 0x30, 0x75, 0x6d, 0x35, 0x33, 0x4d, 0x47, 0x6a, 0x4d, 0x47, 0x67, 0x36, 0x63, 0x46, 0x5a, 0x72, 0x45, 0x62, 0x36, 0x35, 0x69, 0x2f, 0x34, 0x7a, 0x33, 0x47, 0x63, 0x52, 0x6d, 0x32, 0x35, 0x78, 0x42, 0x57, 0x4e, 0x4f, 0x48, 0x6b, 0x44, 0x52, 0x55, 0x6a, 0x76, 0x78, 0x46, 0x33, 0x58, 0x0a, 0x43, 0x4f, 0x36, 0x48, 0x4f, 0x53, 0x4b, 0x47, 0x73, 0x67, 0x30, 0x50, 0x57, 0x45, 0x50, 0x33, 0x63, 0x61, 0x6c, 0x49, 0x4c, 0x76, 0x33, 0x71, 0x31, 0x68, 0x38, 0x43, 0x41, 0x77, 0x45, 0x41, 0x41, 0x61, 0x4f, 0x42, 0x72, 0x44, 0x43, 0x42, 0x71, 0x54, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x51, 0x59, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x0a, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x46, 0x36, 0x44, 0x4e, 0x77, 0x65, 0x52, 0x42, 0x74, 0x6a, 0x70, 0x62, 0x4f, 0x38, 0x74, 0x46, 0x6e, 0x62, 0x30, 0x63, 0x77, 0x70, 0x6a, 0x36, 0x68, 0x6c, 0x67, 0x77, 0x48, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x6a, 0x42, 0x42, 0x67, 0x77, 0x46, 0x6f, 0x41, 0x55, 0x46, 0x36, 0x44, 0x4e, 0x77, 0x65, 0x52, 0x42, 0x0a, 0x74, 0x6a, 0x70, 0x62, 0x4f, 0x38, 0x74, 0x46, 0x6e, 0x62, 0x30, 0x63, 0x77, 0x70, 0x6a, 0x36, 0x68, 0x6c, 0x67, 0x77, 0x52, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x67, 0x42, 0x44, 0x38, 0x77, 0x50, 0x54, 0x41, 0x37, 0x42, 0x67, 0x6c, 0x67, 0x68, 0x58, 0x51, 0x42, 0x57, 0x51, 0x45, 0x44, 0x41, 0x51, 0x45, 0x77, 0x4c, 0x6a, 0x41, 0x73, 0x42, 0x67, 0x67, 0x72, 0x42, 0x67, 0x45, 0x46, 0x42, 0x51, 0x63, 0x43, 0x41, 0x52, 0x59, 0x67, 0x61, 0x48, 0x52, 0x30, 0x0a, 0x63, 0x44, 0x6f, 0x76, 0x4c, 0x33, 0x4a, 0x6c, 0x63, 0x47, 0x39, 0x7a, 0x61, 0x58, 0x52, 0x76, 0x63, 0x6e, 0x6b, 0x75, 0x63, 0x33, 0x64, 0x70, 0x63, 0x33, 0x4e, 0x7a, 0x61, 0x57, 0x64, 0x75, 0x4c, 0x6d, 0x4e, 0x76, 0x62, 0x53, 0x38, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x46, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x42, 0x41, 0x48, 0x50, 0x47, 0x67, 0x65, 0x41, 0x6e, 0x30, 0x69, 0x30, 0x50, 0x0a, 0x34, 0x4a, 0x55, 0x77, 0x34, 0x70, 0x70, 0x42, 0x66, 0x31, 0x41, 0x73, 0x58, 0x31, 0x39, 0x69, 0x59, 0x61, 0x6d, 0x47, 0x61, 0x6d, 0x6b, 0x59, 0x44, 0x48, 0x52, 0x4a, 0x31, 0x6c, 0x32, 0x45, 0x36, 0x6b, 0x46, 0x53, 0x47, 0x47, 0x39, 0x59, 0x72, 0x56, 0x42, 0x57, 0x49, 0x47, 0x72, 0x47, 0x76, 0x53, 0x68, 0x70, 0x57, 0x4a, 0x48, 0x63, 0x6b, 0x52, 0x45, 0x31, 0x71, 0x54, 0x6f, 0x64, 0x76, 0x42, 0x71, 0x6c, 0x59, 0x4a, 0x37, 0x59, 0x48, 0x33, 0x39, 0x46, 0x0a, 0x6b, 0x57, 0x6e, 0x5a, 0x66, 0x72, 0x74, 0x34, 0x63, 0x73, 0x45, 0x47, 0x44, 0x79, 0x72, 0x4f, 0x6a, 0x34, 0x56, 0x77, 0x59, 0x61, 0x79, 0x67, 0x7a, 0x51, 0x75, 0x34, 0x4f, 0x53, 0x6c, 0x57, 0x68, 0x44, 0x4a, 0x4f, 0x68, 0x72, 0x73, 0x39, 0x78, 0x43, 0x72, 0x5a, 0x31, 0x78, 0x39, 0x79, 0x37, 0x76, 0x35, 0x52, 0x6f, 0x53, 0x4a, 0x42, 0x73, 0x58, 0x45, 0x43, 0x59, 0x78, 0x71, 0x43, 0x73, 0x47, 0x4b, 0x72, 0x58, 0x6c, 0x63, 0x53, 0x48, 0x39, 0x2f, 0x4c, 0x0a, 0x33, 0x58, 0x57, 0x67, 0x77, 0x46, 0x31, 0x35, 0x6b, 0x49, 0x77, 0x62, 0x34, 0x46, 0x44, 0x6d, 0x33, 0x6a, 0x48, 0x2b, 0x6d, 0x48, 0x74, 0x77, 0x58, 0x36, 0x57, 0x51, 0x32, 0x4b, 0x33, 0x34, 0x41, 0x72, 0x5a, 0x76, 0x30, 0x32, 0x44, 0x64, 0x51, 0x45, 0x73, 0x69, 0x78, 0x54, 0x32, 0x74, 0x4f, 0x6e, 0x71, 0x66, 0x47, 0x68, 0x70, 0x48, 0x6b, 0x58, 0x6b, 0x7a, 0x75, 0x6f, 0x4c, 0x63, 0x4d, 0x6d, 0x6b, 0x44, 0x6c, 0x6d, 0x34, 0x66, 0x53, 0x2f, 0x42, 0x78, 0x0a, 0x2f, 0x75, 0x4e, 0x6e, 0x63, 0x71, 0x43, 0x78, 0x76, 0x31, 0x79, 0x4c, 0x35, 0x50, 0x71, 0x5a, 0x49, 0x73, 0x65, 0x45, 0x75, 0x52, 0x75, 0x4e, 0x49, 0x35, 0x63, 0x2f, 0x37, 0x53, 0x58, 0x67, 0x7a, 0x32, 0x57, 0x37, 0x39, 0x57, 0x45, 0x45, 0x37, 0x39, 0x30, 0x65, 0x73, 0x6c, 0x70, 0x42, 0x49, 0x6c, 0x71, 0x68, 0x6e, 0x31, 0x30, 0x73, 0x36, 0x46, 0x76, 0x4a, 0x62, 0x61, 0x6b, 0x4d, 0x44, 0x48, 0x69, 0x71, 0x59, 0x4d, 0x5a, 0x57, 0x6a, 0x77, 0x46, 0x61, 0x0a, 0x44, 0x47, 0x69, 0x38, 0x61, 0x52, 0x6c, 0x35, 0x78, 0x42, 0x39, 0x2b, 0x6c, 0x77, 0x57, 0x2f, 0x78, 0x65, 0x6b, 0x6b, 0x55, 0x56, 0x37, 0x55, 0x31, 0x55, 0x74, 0x54, 0x37, 0x64, 0x6b, 0x6a, 0x57, 0x6a, 0x59, 0x44, 0x5a, 0x61, 0x50, 0x42, 0x41, 0x36, 0x31, 0x42, 0x4d, 0x50, 0x4e, 0x47, 0x47, 0x34, 0x57, 0x51, 0x72, 0x32, 0x57, 0x31, 0x31, 0x62, 0x48, 0x6b, 0x46, 0x6c, 0x74, 0x34, 0x64, 0x52, 0x32, 0x58, 0x65, 0x6d, 0x31, 0x5a, 0x71, 0x53, 0x71, 0x50, 0x0a, 0x65, 0x39, 0x37, 0x44, 0x68, 0x34, 0x6b, 0x51, 0x6d, 0x55, 0x6c, 0x7a, 0x65, 0x4d, 0x67, 0x39, 0x76, 0x56, 0x45, 0x31, 0x64, 0x43, 0x72, 0x56, 0x38, 0x58, 0x35, 0x70, 0x47, 0x79, 0x71, 0x37, 0x4f, 0x37, 0x30, 0x6c, 0x75, 0x4a, 0x70, 0x61, 0x50, 0x58, 0x4a, 0x68, 0x6b, 0x47, 0x61, 0x48, 0x37, 0x67, 0x7a, 0x57, 0x54, 0x64, 0x51, 0x52, 0x64, 0x41, 0x74, 0x71, 0x2f, 0x67, 0x73, 0x44, 0x2f, 0x4b, 0x4e, 0x56, 0x56, 0x34, 0x6e, 0x2b, 0x53, 0x73, 0x75, 0x75, 0x0a, 0x57, 0x78, 0x63, 0x46, 0x79, 0x50, 0x4b, 0x4e, 0x49, 0x7a, 0x46, 0x54, 0x4f, 0x4e, 0x49, 0x74, 0x61, 0x6a, 0x2b, 0x43, 0x75, 0x59, 0x30, 0x49, 0x61, 0x76, 0x64, 0x65, 0x51, 0x58, 0x52, 0x75, 0x77, 0x78, 0x46, 0x2b, 0x42, 0x36, 0x77, 0x70, 0x59, 0x4a, 0x45, 0x2f, 0x4f, 0x4d, 0x70, 0x58, 0x45, 0x41, 0x32, 0x39, 0x4d, 0x43, 0x2f, 0x48, 0x70, 0x65, 0x5a, 0x42, 0x6f, 0x4e, 0x71, 0x75, 0x42, 0x59, 0x65, 0x61, 0x6f, 0x4b, 0x52, 0x6c, 0x62, 0x45, 0x77, 0x4a, 0x0a, 0x44, 0x49, 0x6d, 0x36, 0x75, 0x4e, 0x4f, 0x35, 0x77, 0x4a, 0x4f, 0x4b, 0x4d, 0x50, 0x71, 0x4e, 0x35, 0x5a, 0x70, 0x72, 0x46, 0x51, 0x46, 0x4f, 0x5a, 0x36, 0x72, 0x61, 0x59, 0x6c, 0x59, 0x2b, 0x68, 0x41, 0x68, 0x6d, 0x30, 0x73, 0x51, 0x32, 0x66, 0x61, 0x63, 0x2b, 0x45, 0x50, 0x79, 0x49, 0x34, 0x4e, 0x53, 0x41, 0x35, 0x51, 0x43, 0x39, 0x71, 0x76, 0x4e, 0x4f, 0x42, 0x71, 0x4e, 0x36, 0x61, 0x76, 0x6c, 0x69, 0x63, 0x75, 0x4d, 0x4a, 0x54, 0x2b, 0x75, 0x62, 0x0a, 0x44, 0x67, 0x45, 0x6a, 0x38, 0x5a, 0x2b, 0x37, 0x66, 0x4e, 0x7a, 0x63, 0x62, 0x42, 0x47, 0x58, 0x4a, 0x62, 0x4c, 0x79, 0x74, 0x47, 0x4d, 0x55, 0x30, 0x67, 0x59, 0x71, 0x5a, 0x34, 0x79, 0x44, 0x39, 0x63, 0x37, 0x71, 0x42, 0x39, 0x69, 0x61, 0x61, 0x68, 0x37, 0x73, 0x35, 0x41, 0x71, 0x37, 0x4b, 0x6b, 0x7a, 0x72, 0x43, 0x57, 0x41, 0x35, 0x7a, 0x73, 0x70, 0x69, 0x32, 0x43, 0x35, 0x75, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x43, 0x41, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x44, 0x75, 0x44, 0x43, 0x43, 0x41, 0x71, 0x43, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x44, 0x50, 0x43, 0x4f, 0x58, 0x41, 0x67, 0x57, 0x70, 0x61, 0x31, 0x43, 0x66, 0x2f, 0x44, 0x72, 0x4a, 0x78, 0x68, 0x5a, 0x30, 0x44, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x55, 0x46, 0x41, 0x44, 0x42, 0x49, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x0a, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x67, 0x4d, 0x42, 0x34, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x58, 0x55, 0x32, 0x56, 0x6a, 0x64, 0x58, 0x4a, 0x6c, 0x56, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x67, 0x51, 0x32, 0x39, 0x79, 0x63, 0x47, 0x39, 0x79, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x34, 0x78, 0x46, 0x7a, 0x41, 0x56, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x44, 0x6c, 0x4e, 0x6c, 0x59, 0x33, 0x56, 0x79, 0x5a, 0x56, 0x52, 0x79, 0x0a, 0x64, 0x58, 0x4e, 0x30, 0x49, 0x45, 0x4e, 0x42, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x41, 0x32, 0x4d, 0x54, 0x45, 0x77, 0x4e, 0x7a, 0x45, 0x35, 0x4d, 0x7a, 0x45, 0x78, 0x4f, 0x46, 0x6f, 0x58, 0x44, 0x54, 0x49, 0x35, 0x4d, 0x54, 0x49, 0x7a, 0x4d, 0x54, 0x45, 0x35, 0x4e, 0x44, 0x41, 0x31, 0x4e, 0x56, 0x6f, 0x77, 0x53, 0x44, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x49, 0x44, 0x41, 0x65, 0x0a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x46, 0x31, 0x4e, 0x6c, 0x59, 0x33, 0x56, 0x79, 0x5a, 0x56, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x49, 0x45, 0x4e, 0x76, 0x63, 0x6e, 0x42, 0x76, 0x63, 0x6d, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x4d, 0x52, 0x63, 0x77, 0x46, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x77, 0x35, 0x54, 0x5a, 0x57, 0x4e, 0x31, 0x63, 0x6d, 0x56, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x42, 0x44, 0x51, 0x54, 0x43, 0x43, 0x0a, 0x41, 0x53, 0x49, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x45, 0x50, 0x41, 0x44, 0x43, 0x43, 0x41, 0x51, 0x6f, 0x43, 0x67, 0x67, 0x45, 0x42, 0x41, 0x4b, 0x75, 0x6b, 0x67, 0x65, 0x57, 0x56, 0x7a, 0x66, 0x58, 0x32, 0x46, 0x49, 0x37, 0x43, 0x54, 0x38, 0x72, 0x55, 0x34, 0x6e, 0x69, 0x56, 0x57, 0x4a, 0x78, 0x42, 0x34, 0x51, 0x32, 0x5a, 0x51, 0x43, 0x51, 0x58, 0x0a, 0x4f, 0x5a, 0x45, 0x7a, 0x5a, 0x75, 0x6d, 0x2b, 0x34, 0x59, 0x4f, 0x76, 0x59, 0x6c, 0x79, 0x4a, 0x30, 0x66, 0x77, 0x6b, 0x57, 0x32, 0x47, 0x7a, 0x34, 0x42, 0x45, 0x52, 0x51, 0x52, 0x77, 0x64, 0x62, 0x76, 0x43, 0x34, 0x75, 0x2f, 0x6a, 0x65, 0x70, 0x34, 0x47, 0x36, 0x70, 0x6b, 0x6a, 0x47, 0x6e, 0x78, 0x32, 0x39, 0x76, 0x6f, 0x36, 0x70, 0x51, 0x54, 0x36, 0x34, 0x6c, 0x4f, 0x30, 0x70, 0x47, 0x74, 0x53, 0x4f, 0x30, 0x67, 0x4d, 0x64, 0x41, 0x2b, 0x39, 0x74, 0x0a, 0x44, 0x57, 0x63, 0x63, 0x56, 0x39, 0x63, 0x47, 0x72, 0x63, 0x72, 0x49, 0x39, 0x66, 0x34, 0x4f, 0x72, 0x32, 0x59, 0x6c, 0x53, 0x41, 0x53, 0x57, 0x43, 0x31, 0x32, 0x6a, 0x75, 0x68, 0x62, 0x44, 0x43, 0x45, 0x2f, 0x52, 0x52, 0x76, 0x67, 0x55, 0x58, 0x50, 0x4c, 0x49, 0x58, 0x67, 0x47, 0x5a, 0x62, 0x66, 0x32, 0x49, 0x7a, 0x49, 0x61, 0x6f, 0x77, 0x57, 0x38, 0x78, 0x51, 0x6d, 0x78, 0x53, 0x50, 0x6d, 0x6a, 0x4c, 0x38, 0x78, 0x6b, 0x30, 0x33, 0x37, 0x75, 0x48, 0x0a, 0x47, 0x46, 0x61, 0x41, 0x4a, 0x73, 0x54, 0x51, 0x33, 0x4d, 0x42, 0x76, 0x33, 0x39, 0x36, 0x67, 0x77, 0x70, 0x45, 0x57, 0x6f, 0x47, 0x51, 0x52, 0x53, 0x30, 0x53, 0x38, 0x48, 0x76, 0x62, 0x6e, 0x2b, 0x6d, 0x50, 0x65, 0x5a, 0x71, 0x78, 0x32, 0x70, 0x48, 0x47, 0x6a, 0x37, 0x44, 0x61, 0x55, 0x61, 0x48, 0x70, 0x33, 0x70, 0x4c, 0x48, 0x6e, 0x44, 0x69, 0x2b, 0x42, 0x65, 0x75, 0x4b, 0x31, 0x63, 0x6f, 0x62, 0x76, 0x6f, 0x6d, 0x75, 0x4c, 0x38, 0x41, 0x2f, 0x62, 0x0a, 0x30, 0x31, 0x6b, 0x2f, 0x75, 0x6e, 0x4b, 0x38, 0x52, 0x43, 0x53, 0x63, 0x34, 0x33, 0x4f, 0x7a, 0x39, 0x36, 0x39, 0x58, 0x4c, 0x30, 0x49, 0x6d, 0x6e, 0x61, 0x6c, 0x30, 0x75, 0x67, 0x42, 0x53, 0x38, 0x6b, 0x76, 0x4e, 0x55, 0x33, 0x78, 0x48, 0x43, 0x7a, 0x61, 0x46, 0x44, 0x6d, 0x61, 0x70, 0x43, 0x4a, 0x63, 0x57, 0x4e, 0x46, 0x66, 0x42, 0x5a, 0x76, 0x65, 0x41, 0x34, 0x2b, 0x31, 0x77, 0x56, 0x4d, 0x65, 0x54, 0x34, 0x43, 0x34, 0x6f, 0x46, 0x56, 0x6d, 0x48, 0x0a, 0x75, 0x72, 0x73, 0x43, 0x41, 0x77, 0x45, 0x41, 0x41, 0x61, 0x4f, 0x42, 0x6e, 0x54, 0x43, 0x42, 0x6d, 0x6a, 0x41, 0x54, 0x42, 0x67, 0x6b, 0x72, 0x42, 0x67, 0x45, 0x45, 0x41, 0x59, 0x49, 0x33, 0x46, 0x41, 0x49, 0x45, 0x42, 0x68, 0x34, 0x45, 0x41, 0x45, 0x4d, 0x41, 0x51, 0x54, 0x41, 0x4c, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x59, 0x59, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x0a, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x51, 0x6a, 0x4b, 0x32, 0x46, 0x76, 0x6f, 0x45, 0x2f, 0x66, 0x35, 0x64, 0x53, 0x33, 0x72, 0x44, 0x2f, 0x66, 0x64, 0x4d, 0x51, 0x42, 0x31, 0x61, 0x51, 0x36, 0x38, 0x77, 0x4e, 0x41, 0x59, 0x44, 0x56, 0x52, 0x30, 0x66, 0x42, 0x43, 0x30, 0x77, 0x4b, 0x7a, 0x41, 0x70, 0x6f, 0x43, 0x65, 0x67, 0x4a, 0x59, 0x59, 0x6a, 0x0a, 0x61, 0x48, 0x52, 0x30, 0x63, 0x44, 0x6f, 0x76, 0x4c, 0x32, 0x4e, 0x79, 0x62, 0x43, 0x35, 0x7a, 0x5a, 0x57, 0x4e, 0x31, 0x63, 0x6d, 0x56, 0x30, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x35, 0x6a, 0x62, 0x32, 0x30, 0x76, 0x55, 0x31, 0x52, 0x44, 0x51, 0x53, 0x35, 0x6a, 0x63, 0x6d, 0x77, 0x77, 0x45, 0x41, 0x59, 0x4a, 0x4b, 0x77, 0x59, 0x42, 0x42, 0x41, 0x47, 0x43, 0x4e, 0x78, 0x55, 0x42, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x51, 0x41, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x0a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x46, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x45, 0x42, 0x41, 0x44, 0x44, 0x74, 0x54, 0x30, 0x72, 0x68, 0x57, 0x44, 0x70, 0x53, 0x63, 0x6c, 0x75, 0x31, 0x70, 0x71, 0x4e, 0x6c, 0x47, 0x4b, 0x61, 0x37, 0x55, 0x54, 0x74, 0x33, 0x36, 0x5a, 0x33, 0x71, 0x30, 0x35, 0x39, 0x63, 0x34, 0x45, 0x56, 0x6c, 0x65, 0x77, 0x33, 0x4b, 0x57, 0x2b, 0x4a, 0x77, 0x55, 0x4c, 0x4b, 0x55, 0x42, 0x52, 0x53, 0x75, 0x0a, 0x53, 0x63, 0x65, 0x4e, 0x51, 0x51, 0x63, 0x53, 0x63, 0x35, 0x52, 0x2b, 0x44, 0x43, 0x4d, 0x68, 0x2f, 0x62, 0x77, 0x51, 0x66, 0x32, 0x41, 0x51, 0x57, 0x6e, 0x4c, 0x31, 0x6d, 0x41, 0x36, 0x73, 0x37, 0x4c, 0x6c, 0x2f, 0x33, 0x58, 0x70, 0x76, 0x58, 0x64, 0x4d, 0x63, 0x39, 0x50, 0x2b, 0x49, 0x42, 0x57, 0x6c, 0x43, 0x71, 0x51, 0x56, 0x78, 0x79, 0x4c, 0x65, 0x73, 0x4a, 0x75, 0x67, 0x75, 0x74, 0x49, 0x78, 0x71, 0x2f, 0x33, 0x48, 0x63, 0x75, 0x4c, 0x48, 0x66, 0x0a, 0x6d, 0x62, 0x78, 0x38, 0x49, 0x56, 0x51, 0x72, 0x35, 0x46, 0x69, 0x69, 0x75, 0x31, 0x63, 0x70, 0x72, 0x70, 0x36, 0x70, 0x6f, 0x78, 0x6b, 0x6d, 0x44, 0x35, 0x6b, 0x75, 0x43, 0x4c, 0x44, 0x76, 0x2f, 0x57, 0x6e, 0x50, 0x6d, 0x52, 0x6f, 0x4a, 0x6a, 0x65, 0x4f, 0x6e, 0x6e, 0x79, 0x76, 0x4a, 0x4e, 0x6a, 0x52, 0x37, 0x4a, 0x4c, 0x4e, 0x34, 0x54, 0x4a, 0x55, 0x58, 0x70, 0x41, 0x59, 0x6d, 0x48, 0x72, 0x5a, 0x6b, 0x55, 0x6a, 0x5a, 0x66, 0x59, 0x47, 0x66, 0x5a, 0x0a, 0x6e, 0x4d, 0x55, 0x46, 0x64, 0x41, 0x76, 0x6e, 0x5a, 0x79, 0x50, 0x53, 0x43, 0x50, 0x79, 0x49, 0x36, 0x61, 0x36, 0x4c, 0x66, 0x2b, 0x45, 0x77, 0x39, 0x44, 0x64, 0x2b, 0x2f, 0x63, 0x59, 0x79, 0x32, 0x69, 0x32, 0x65, 0x52, 0x44, 0x41, 0x77, 0x62, 0x4f, 0x34, 0x48, 0x33, 0x74, 0x49, 0x30, 0x2f, 0x4e, 0x4c, 0x2f, 0x51, 0x50, 0x5a, 0x4c, 0x39, 0x47, 0x5a, 0x47, 0x42, 0x6c, 0x53, 0x6d, 0x38, 0x6a, 0x49, 0x4b, 0x59, 0x79, 0x59, 0x77, 0x61, 0x35, 0x76, 0x52, 0x0a, 0x33, 0x49, 0x74, 0x48, 0x75, 0x75, 0x47, 0x35, 0x31, 0x57, 0x4c, 0x51, 0x6f, 0x71, 0x44, 0x30, 0x5a, 0x77, 0x56, 0x34, 0x4b, 0x57, 0x4d, 0x61, 0x62, 0x77, 0x54, 0x57, 0x2b, 0x4d, 0x5a, 0x4d, 0x6f, 0x35, 0x71, 0x78, 0x4e, 0x37, 0x53, 0x4e, 0x35, 0x53, 0x68, 0x4c, 0x48, 0x5a, 0x34, 0x73, 0x77, 0x72, 0x68, 0x6f, 0x76, 0x4f, 0x30, 0x43, 0x37, 0x6a, 0x45, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x43, 0x41, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x44, 0x76, 0x44, 0x43, 0x43, 0x41, 0x71, 0x53, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x42, 0x31, 0x59, 0x69, 0x70, 0x4f, 0x6a, 0x55, 0x69, 0x6f, 0x6c, 0x4e, 0x39, 0x42, 0x50, 0x49, 0x38, 0x50, 0x6a, 0x71, 0x70, 0x54, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x55, 0x46, 0x41, 0x44, 0x42, 0x4b, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x0a, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x67, 0x4d, 0x42, 0x34, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x58, 0x55, 0x32, 0x56, 0x6a, 0x64, 0x58, 0x4a, 0x6c, 0x56, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x67, 0x51, 0x32, 0x39, 0x79, 0x63, 0x47, 0x39, 0x79, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x34, 0x78, 0x47, 0x54, 0x41, 0x58, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x45, 0x46, 0x4e, 0x6c, 0x59, 0x33, 0x56, 0x79, 0x5a, 0x53, 0x42, 0x48, 0x0a, 0x62, 0x47, 0x39, 0x69, 0x59, 0x57, 0x77, 0x67, 0x51, 0x30, 0x45, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x44, 0x59, 0x78, 0x4d, 0x54, 0x41, 0x33, 0x4d, 0x54, 0x6b, 0x30, 0x4d, 0x6a, 0x49, 0x34, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x6a, 0x6b, 0x78, 0x4d, 0x6a, 0x4d, 0x78, 0x4d, 0x54, 0x6b, 0x31, 0x4d, 0x6a, 0x41, 0x32, 0x57, 0x6a, 0x42, 0x4b, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x67, 0x0a, 0x4d, 0x42, 0x34, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x58, 0x55, 0x32, 0x56, 0x6a, 0x64, 0x58, 0x4a, 0x6c, 0x56, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x67, 0x51, 0x32, 0x39, 0x79, 0x63, 0x47, 0x39, 0x79, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x34, 0x78, 0x47, 0x54, 0x41, 0x58, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x45, 0x46, 0x4e, 0x6c, 0x59, 0x33, 0x56, 0x79, 0x5a, 0x53, 0x42, 0x48, 0x62, 0x47, 0x39, 0x69, 0x59, 0x57, 0x77, 0x67, 0x0a, 0x51, 0x30, 0x45, 0x77, 0x67, 0x67, 0x45, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x42, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x45, 0x4b, 0x41, 0x6f, 0x49, 0x42, 0x41, 0x51, 0x43, 0x76, 0x4e, 0x53, 0x37, 0x59, 0x72, 0x47, 0x78, 0x56, 0x61, 0x51, 0x5a, 0x78, 0x35, 0x52, 0x4e, 0x6f, 0x4a, 0x4c, 0x4e, 0x50, 0x32, 0x4d, 0x77, 0x68, 0x52, 0x2f, 0x6a, 0x78, 0x0a, 0x59, 0x44, 0x69, 0x4a, 0x69, 0x51, 0x50, 0x70, 0x76, 0x65, 0x70, 0x65, 0x52, 0x6c, 0x4d, 0x4a, 0x33, 0x46, 0x7a, 0x31, 0x57, 0x75, 0x6a, 0x33, 0x52, 0x53, 0x6f, 0x43, 0x36, 0x7a, 0x46, 0x68, 0x31, 0x79, 0x6b, 0x7a, 0x54, 0x4d, 0x37, 0x48, 0x66, 0x41, 0x6f, 0x33, 0x66, 0x67, 0x2b, 0x36, 0x4d, 0x70, 0x6a, 0x68, 0x48, 0x5a, 0x65, 0x76, 0x6a, 0x38, 0x66, 0x63, 0x79, 0x54, 0x69, 0x57, 0x38, 0x39, 0x73, 0x61, 0x2f, 0x46, 0x48, 0x74, 0x61, 0x4d, 0x62, 0x51, 0x0a, 0x62, 0x71, 0x52, 0x38, 0x4a, 0x4e, 0x47, 0x75, 0x51, 0x73, 0x69, 0x57, 0x55, 0x47, 0x4d, 0x75, 0x34, 0x50, 0x35, 0x31, 0x2f, 0x70, 0x69, 0x6e, 0x58, 0x30, 0x6b, 0x75, 0x6c, 0x65, 0x4d, 0x35, 0x4d, 0x32, 0x53, 0x4f, 0x48, 0x71, 0x52, 0x66, 0x6b, 0x4e, 0x4a, 0x6e, 0x50, 0x4c, 0x4c, 0x5a, 0x2f, 0x6b, 0x47, 0x35, 0x56, 0x61, 0x63, 0x4a, 0x6a, 0x6e, 0x49, 0x46, 0x48, 0x6f, 0x76, 0x64, 0x52, 0x49, 0x57, 0x43, 0x51, 0x74, 0x42, 0x4a, 0x77, 0x42, 0x31, 0x67, 0x0a, 0x38, 0x4e, 0x45, 0x58, 0x4c, 0x4a, 0x58, 0x72, 0x39, 0x71, 0x58, 0x42, 0x6b, 0x71, 0x50, 0x46, 0x77, 0x71, 0x63, 0x49, 0x59, 0x41, 0x31, 0x67, 0x42, 0x42, 0x43, 0x57, 0x65, 0x5a, 0x34, 0x57, 0x4e, 0x4f, 0x61, 0x70, 0x74, 0x76, 0x6f, 0x6c, 0x52, 0x54, 0x6e, 0x49, 0x48, 0x6d, 0x58, 0x35, 0x6b, 0x2f, 0x57, 0x71, 0x38, 0x56, 0x4c, 0x63, 0x6d, 0x5a, 0x67, 0x39, 0x70, 0x59, 0x59, 0x61, 0x44, 0x44, 0x55, 0x7a, 0x2b, 0x6b, 0x75, 0x6c, 0x42, 0x41, 0x59, 0x56, 0x0a, 0x48, 0x44, 0x47, 0x41, 0x37, 0x36, 0x6f, 0x59, 0x61, 0x38, 0x4a, 0x37, 0x31, 0x39, 0x72, 0x4f, 0x2b, 0x54, 0x4d, 0x67, 0x31, 0x66, 0x57, 0x39, 0x61, 0x6a, 0x4d, 0x74, 0x67, 0x51, 0x54, 0x37, 0x73, 0x46, 0x7a, 0x55, 0x6e, 0x4b, 0x50, 0x69, 0x58, 0x42, 0x33, 0x6a, 0x71, 0x55, 0x4a, 0x31, 0x58, 0x6e, 0x76, 0x55, 0x64, 0x2b, 0x38, 0x35, 0x56, 0x4c, 0x72, 0x4a, 0x43, 0x68, 0x67, 0x62, 0x45, 0x70, 0x6c, 0x4a, 0x4c, 0x34, 0x68, 0x4c, 0x2f, 0x56, 0x42, 0x69, 0x0a, 0x30, 0x58, 0x50, 0x6e, 0x6a, 0x33, 0x70, 0x44, 0x41, 0x67, 0x4d, 0x42, 0x41, 0x41, 0x47, 0x6a, 0x67, 0x5a, 0x30, 0x77, 0x67, 0x5a, 0x6f, 0x77, 0x45, 0x77, 0x59, 0x4a, 0x4b, 0x77, 0x59, 0x42, 0x42, 0x41, 0x47, 0x43, 0x4e, 0x78, 0x51, 0x43, 0x42, 0x41, 0x59, 0x65, 0x42, 0x41, 0x42, 0x44, 0x41, 0x45, 0x45, 0x77, 0x43, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x47, 0x47, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x0a, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x4b, 0x39, 0x45, 0x42, 0x4d, 0x4a, 0x42, 0x66, 0x6b, 0x69, 0x44, 0x32, 0x30, 0x34, 0x35, 0x41, 0x75, 0x7a, 0x73, 0x68, 0x48, 0x72, 0x6d, 0x7a, 0x73, 0x6d, 0x6b, 0x4d, 0x44, 0x51, 0x47, 0x41, 0x31, 0x55, 0x64, 0x48, 0x77, 0x51, 0x74, 0x4d, 0x43, 0x73, 0x77, 0x4b, 0x61, 0x41, 0x6e, 0x0a, 0x6f, 0x43, 0x57, 0x47, 0x49, 0x32, 0x68, 0x30, 0x64, 0x48, 0x41, 0x36, 0x4c, 0x79, 0x39, 0x6a, 0x63, 0x6d, 0x77, 0x75, 0x63, 0x32, 0x56, 0x6a, 0x64, 0x58, 0x4a, 0x6c, 0x64, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x75, 0x59, 0x32, 0x39, 0x74, 0x4c, 0x31, 0x4e, 0x48, 0x51, 0x30, 0x45, 0x75, 0x59, 0x33, 0x4a, 0x73, 0x4d, 0x42, 0x41, 0x47, 0x43, 0x53, 0x73, 0x47, 0x41, 0x51, 0x51, 0x42, 0x67, 0x6a, 0x63, 0x56, 0x41, 0x51, 0x51, 0x44, 0x41, 0x67, 0x45, 0x41, 0x0a, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x42, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x42, 0x41, 0x51, 0x42, 0x6a, 0x47, 0x67, 0x68, 0x41, 0x66, 0x61, 0x52, 0x65, 0x55, 0x77, 0x31, 0x33, 0x32, 0x48, 0x71, 0x75, 0x48, 0x77, 0x30, 0x4c, 0x55, 0x52, 0x59, 0x44, 0x37, 0x78, 0x68, 0x38, 0x79, 0x4f, 0x4f, 0x76, 0x61, 0x6c, 0x69, 0x54, 0x46, 0x47, 0x43, 0x52, 0x73, 0x6f, 0x54, 0x63, 0x69, 0x45, 0x36, 0x2b, 0x0a, 0x4f, 0x59, 0x6f, 0x36, 0x38, 0x2b, 0x61, 0x43, 0x69, 0x56, 0x30, 0x42, 0x4e, 0x37, 0x4f, 0x72, 0x4a, 0x4b, 0x51, 0x56, 0x44, 0x70, 0x49, 0x31, 0x57, 0x6b, 0x70, 0x45, 0x58, 0x6b, 0x35, 0x58, 0x2b, 0x6e, 0x58, 0x4f, 0x48, 0x30, 0x6a, 0x4f, 0x5a, 0x76, 0x51, 0x38, 0x51, 0x43, 0x61, 0x53, 0x6d, 0x47, 0x77, 0x62, 0x37, 0x69, 0x52, 0x47, 0x44, 0x42, 0x65, 0x7a, 0x55, 0x71, 0x58, 0x62, 0x70, 0x5a, 0x47, 0x52, 0x7a, 0x7a, 0x66, 0x54, 0x62, 0x2b, 0x63, 0x6e, 0x0a, 0x43, 0x44, 0x70, 0x4f, 0x47, 0x52, 0x38, 0x36, 0x70, 0x31, 0x68, 0x63, 0x46, 0x38, 0x39, 0x35, 0x50, 0x34, 0x76, 0x6b, 0x70, 0x39, 0x4d, 0x6d, 0x49, 0x35, 0x30, 0x6d, 0x44, 0x31, 0x68, 0x70, 0x2f, 0x45, 0x64, 0x2b, 0x73, 0x74, 0x43, 0x4e, 0x69, 0x35, 0x4f, 0x2f, 0x4b, 0x55, 0x39, 0x44, 0x61, 0x58, 0x52, 0x32, 0x5a, 0x30, 0x76, 0x50, 0x42, 0x34, 0x7a, 0x6d, 0x41, 0x76, 0x65, 0x31, 0x34, 0x62, 0x52, 0x44, 0x74, 0x55, 0x73, 0x74, 0x46, 0x4a, 0x2f, 0x35, 0x0a, 0x33, 0x43, 0x59, 0x4e, 0x76, 0x36, 0x5a, 0x48, 0x64, 0x41, 0x62, 0x59, 0x69, 0x4e, 0x45, 0x36, 0x4b, 0x54, 0x43, 0x45, 0x7a, 0x74, 0x49, 0x35, 0x67, 0x47, 0x49, 0x62, 0x71, 0x4d, 0x64, 0x58, 0x53, 0x62, 0x78, 0x71, 0x56, 0x56, 0x46, 0x6e, 0x46, 0x55, 0x71, 0x2b, 0x4e, 0x51, 0x66, 0x6b, 0x31, 0x58, 0x57, 0x59, 0x4e, 0x33, 0x6b, 0x77, 0x46, 0x4e, 0x73, 0x70, 0x6e, 0x57, 0x7a, 0x46, 0x61, 0x63, 0x78, 0x48, 0x56, 0x61, 0x49, 0x77, 0x39, 0x38, 0x78, 0x63, 0x0a, 0x66, 0x38, 0x4c, 0x44, 0x6d, 0x42, 0x78, 0x72, 0x54, 0x68, 0x61, 0x41, 0x36, 0x33, 0x70, 0x34, 0x5a, 0x55, 0x57, 0x69, 0x41, 0x42, 0x71, 0x76, 0x44, 0x41, 0x31, 0x56, 0x5a, 0x44, 0x52, 0x49, 0x75, 0x4a, 0x4b, 0x35, 0x38, 0x62, 0x52, 0x51, 0x4b, 0x66, 0x4a, 0x50, 0x49, 0x78, 0x2f, 0x61, 0x62, 0x4b, 0x77, 0x66, 0x52, 0x4f, 0x48, 0x64, 0x49, 0x33, 0x68, 0x52, 0x57, 0x38, 0x63, 0x57, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x43, 0x4f, 0x4d, 0x4f, 0x44, 0x4f, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x45, 0x48, 0x54, 0x43, 0x43, 0x41, 0x77, 0x57, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x54, 0x6f, 0x45, 0x74, 0x69, 0x6f, 0x4a, 0x6c, 0x34, 0x41, 0x73, 0x43, 0x37, 0x6a, 0x34, 0x31, 0x41, 0x6b, 0x62, 0x6c, 0x50, 0x54, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x55, 0x46, 0x41, 0x44, 0x43, 0x42, 0x67, 0x54, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x0a, 0x42, 0x68, 0x4d, 0x43, 0x52, 0x30, 0x49, 0x78, 0x47, 0x7a, 0x41, 0x5a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x67, 0x54, 0x45, 0x6b, 0x64, 0x79, 0x5a, 0x57, 0x46, 0x30, 0x5a, 0x58, 0x49, 0x67, 0x54, 0x57, 0x46, 0x75, 0x59, 0x32, 0x68, 0x6c, 0x63, 0x33, 0x52, 0x6c, 0x63, 0x6a, 0x45, 0x51, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x78, 0x4d, 0x48, 0x55, 0x32, 0x46, 0x73, 0x5a, 0x6d, 0x39, 0x79, 0x5a, 0x44, 0x45, 0x61, 0x4d, 0x42, 0x67, 0x47, 0x0a, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x52, 0x51, 0x30, 0x39, 0x4e, 0x54, 0x30, 0x52, 0x50, 0x49, 0x45, 0x4e, 0x42, 0x49, 0x45, 0x78, 0x70, 0x62, 0x57, 0x6c, 0x30, 0x5a, 0x57, 0x51, 0x78, 0x4a, 0x7a, 0x41, 0x6c, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x48, 0x6b, 0x4e, 0x50, 0x54, 0x55, 0x39, 0x45, 0x54, 0x79, 0x42, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x61, 0x57, 0x5a, 0x70, 0x59, 0x32, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x49, 0x45, 0x46, 0x31, 0x0a, 0x64, 0x47, 0x68, 0x76, 0x63, 0x6d, 0x6c, 0x30, 0x65, 0x54, 0x41, 0x65, 0x46, 0x77, 0x30, 0x77, 0x4e, 0x6a, 0x45, 0x79, 0x4d, 0x44, 0x45, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x42, 0x61, 0x46, 0x77, 0x30, 0x79, 0x4f, 0x54, 0x45, 0x79, 0x4d, 0x7a, 0x45, 0x79, 0x4d, 0x7a, 0x55, 0x35, 0x4e, 0x54, 0x6c, 0x61, 0x4d, 0x49, 0x47, 0x42, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x48, 0x51, 0x6a, 0x45, 0x62, 0x0a, 0x4d, 0x42, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x42, 0x4d, 0x53, 0x52, 0x33, 0x4a, 0x6c, 0x59, 0x58, 0x52, 0x6c, 0x63, 0x69, 0x42, 0x4e, 0x59, 0x57, 0x35, 0x6a, 0x61, 0x47, 0x56, 0x7a, 0x64, 0x47, 0x56, 0x79, 0x4d, 0x52, 0x41, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x48, 0x45, 0x77, 0x64, 0x54, 0x59, 0x57, 0x78, 0x6d, 0x62, 0x33, 0x4a, 0x6b, 0x4d, 0x52, 0x6f, 0x77, 0x47, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x78, 0x46, 0x44, 0x0a, 0x54, 0x30, 0x31, 0x50, 0x52, 0x45, 0x38, 0x67, 0x51, 0x30, 0x45, 0x67, 0x54, 0x47, 0x6c, 0x74, 0x61, 0x58, 0x52, 0x6c, 0x5a, 0x44, 0x45, 0x6e, 0x4d, 0x43, 0x55, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x65, 0x51, 0x30, 0x39, 0x4e, 0x54, 0x30, 0x52, 0x50, 0x49, 0x45, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x70, 0x5a, 0x6d, 0x6c, 0x6a, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x34, 0x67, 0x51, 0x58, 0x56, 0x30, 0x61, 0x47, 0x39, 0x79, 0x61, 0x58, 0x52, 0x35, 0x0a, 0x4d, 0x49, 0x49, 0x42, 0x49, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x45, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x51, 0x38, 0x41, 0x4d, 0x49, 0x49, 0x42, 0x43, 0x67, 0x4b, 0x43, 0x41, 0x51, 0x45, 0x41, 0x30, 0x45, 0x43, 0x4c, 0x69, 0x33, 0x4c, 0x6a, 0x6b, 0x52, 0x76, 0x33, 0x55, 0x63, 0x45, 0x62, 0x56, 0x41, 0x53, 0x59, 0x30, 0x36, 0x6d, 0x2f, 0x77, 0x65, 0x61, 0x4b, 0x58, 0x54, 0x75, 0x48, 0x0a, 0x2b, 0x37, 0x75, 0x49, 0x7a, 0x67, 0x33, 0x6a, 0x4c, 0x7a, 0x38, 0x47, 0x6c, 0x76, 0x43, 0x69, 0x4b, 0x56, 0x43, 0x5a, 0x72, 0x74, 0x73, 0x37, 0x6f, 0x56, 0x65, 0x77, 0x64, 0x46, 0x46, 0x78, 0x7a, 0x65, 0x31, 0x43, 0x6b, 0x55, 0x31, 0x42, 0x2f, 0x71, 0x6e, 0x49, 0x32, 0x47, 0x71, 0x47, 0x64, 0x30, 0x53, 0x37, 0x57, 0x57, 0x61, 0x58, 0x55, 0x46, 0x36, 0x30, 0x31, 0x43, 0x78, 0x77, 0x52, 0x4d, 0x2f, 0x61, 0x4e, 0x35, 0x56, 0x43, 0x61, 0x54, 0x77, 0x77, 0x0a, 0x78, 0x48, 0x47, 0x7a, 0x55, 0x76, 0x41, 0x68, 0x54, 0x61, 0x48, 0x59, 0x75, 0x6a, 0x6c, 0x38, 0x48, 0x4a, 0x36, 0x6a, 0x4a, 0x4a, 0x33, 0x79, 0x67, 0x78, 0x61, 0x59, 0x71, 0x68, 0x5a, 0x38, 0x51, 0x35, 0x73, 0x56, 0x57, 0x37, 0x65, 0x75, 0x4e, 0x4a, 0x48, 0x2b, 0x31, 0x47, 0x49, 0x6d, 0x47, 0x45, 0x61, 0x61, 0x50, 0x2b, 0x76, 0x42, 0x2b, 0x66, 0x47, 0x51, 0x56, 0x2b, 0x75, 0x73, 0x65, 0x67, 0x32, 0x4c, 0x32, 0x33, 0x49, 0x77, 0x61, 0x6d, 0x62, 0x56, 0x0a, 0x34, 0x45, 0x61, 0x6a, 0x63, 0x4e, 0x78, 0x6f, 0x32, 0x66, 0x38, 0x45, 0x53, 0x49, 0x6c, 0x33, 0x33, 0x72, 0x58, 0x70, 0x2b, 0x32, 0x64, 0x74, 0x51, 0x65, 0x6d, 0x38, 0x4f, 0x62, 0x30, 0x79, 0x32, 0x57, 0x49, 0x43, 0x38, 0x62, 0x47, 0x6f, 0x50, 0x57, 0x34, 0x33, 0x6e, 0x4f, 0x49, 0x76, 0x34, 0x74, 0x4f, 0x69, 0x4a, 0x6f, 0x76, 0x47, 0x75, 0x46, 0x56, 0x44, 0x69, 0x4f, 0x45, 0x6a, 0x50, 0x71, 0x58, 0x53, 0x4a, 0x44, 0x6c, 0x71, 0x52, 0x36, 0x73, 0x41, 0x0a, 0x31, 0x4b, 0x47, 0x7a, 0x71, 0x53, 0x58, 0x2b, 0x44, 0x54, 0x2b, 0x6e, 0x48, 0x62, 0x72, 0x54, 0x55, 0x63, 0x45, 0x4c, 0x70, 0x4e, 0x71, 0x73, 0x4f, 0x4f, 0x39, 0x56, 0x55, 0x43, 0x51, 0x46, 0x5a, 0x55, 0x61, 0x54, 0x4e, 0x45, 0x38, 0x74, 0x6a, 0x61, 0x33, 0x47, 0x31, 0x43, 0x45, 0x5a, 0x30, 0x6f, 0x37, 0x4b, 0x42, 0x57, 0x46, 0x78, 0x42, 0x33, 0x4e, 0x48, 0x35, 0x59, 0x6f, 0x5a, 0x45, 0x72, 0x30, 0x45, 0x54, 0x63, 0x35, 0x4f, 0x6e, 0x4b, 0x56, 0x49, 0x0a, 0x72, 0x4c, 0x73, 0x6d, 0x39, 0x77, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x34, 0x47, 0x4f, 0x4d, 0x49, 0x47, 0x4c, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x51, 0x4c, 0x57, 0x4f, 0x57, 0x4c, 0x78, 0x6b, 0x77, 0x56, 0x4e, 0x36, 0x52, 0x41, 0x71, 0x54, 0x43, 0x70, 0x49, 0x62, 0x35, 0x48, 0x4e, 0x6c, 0x70, 0x57, 0x2f, 0x7a, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x0a, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x51, 0x59, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x42, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x38, 0x45, 0x51, 0x6a, 0x42, 0x41, 0x4d, 0x44, 0x36, 0x67, 0x50, 0x4b, 0x41, 0x36, 0x68, 0x6a, 0x68, 0x6f, 0x64, 0x48, 0x52, 0x77, 0x4f, 0x69, 0x38, 0x76, 0x59, 0x33, 0x4a, 0x73, 0x4c, 0x6d, 0x4e, 0x76, 0x62, 0x57, 0x39, 0x6b, 0x0a, 0x62, 0x32, 0x4e, 0x68, 0x4c, 0x6d, 0x4e, 0x76, 0x62, 0x53, 0x39, 0x44, 0x54, 0x30, 0x31, 0x50, 0x52, 0x45, 0x39, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x61, 0x57, 0x5a, 0x70, 0x59, 0x32, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x51, 0x58, 0x56, 0x30, 0x61, 0x47, 0x39, 0x79, 0x61, 0x58, 0x52, 0x35, 0x4c, 0x6d, 0x4e, 0x79, 0x62, 0x44, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x55, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x0a, 0x41, 0x51, 0x45, 0x41, 0x50, 0x70, 0x69, 0x65, 0x6d, 0x2f, 0x59, 0x62, 0x36, 0x64, 0x63, 0x35, 0x74, 0x33, 0x69, 0x75, 0x48, 0x58, 0x49, 0x59, 0x53, 0x64, 0x4f, 0x48, 0x35, 0x45, 0x4f, 0x43, 0x36, 0x7a, 0x2f, 0x4a, 0x71, 0x76, 0x57, 0x6f, 0x74, 0x65, 0x39, 0x56, 0x66, 0x43, 0x46, 0x53, 0x5a, 0x66, 0x6e, 0x56, 0x44, 0x65, 0x46, 0x73, 0x39, 0x44, 0x36, 0x4d, 0x6b, 0x33, 0x4f, 0x52, 0x4c, 0x67, 0x4c, 0x45, 0x54, 0x67, 0x64, 0x78, 0x62, 0x38, 0x43, 0x50, 0x0a, 0x4f, 0x47, 0x45, 0x49, 0x71, 0x42, 0x36, 0x42, 0x43, 0x73, 0x41, 0x76, 0x49, 0x43, 0x39, 0x42, 0x69, 0x35, 0x48, 0x63, 0x53, 0x45, 0x57, 0x38, 0x38, 0x63, 0x62, 0x65, 0x75, 0x6e, 0x5a, 0x72, 0x4d, 0x38, 0x67, 0x41, 0x4c, 0x54, 0x46, 0x47, 0x54, 0x4f, 0x33, 0x6e, 0x6e, 0x63, 0x2b, 0x49, 0x6c, 0x50, 0x38, 0x7a, 0x77, 0x46, 0x62, 0x6f, 0x4a, 0x49, 0x59, 0x6d, 0x75, 0x4e, 0x67, 0x34, 0x4f, 0x4e, 0x38, 0x71, 0x61, 0x39, 0x30, 0x53, 0x7a, 0x4d, 0x63, 0x2f, 0x0a, 0x52, 0x78, 0x64, 0x4d, 0x6f, 0x73, 0x49, 0x47, 0x6c, 0x67, 0x6e, 0x57, 0x32, 0x2f, 0x34, 0x2f, 0x50, 0x45, 0x5a, 0x42, 0x33, 0x31, 0x6a, 0x69, 0x56, 0x67, 0x38, 0x38, 0x4f, 0x38, 0x45, 0x63, 0x6b, 0x7a, 0x58, 0x5a, 0x4f, 0x46, 0x4b, 0x73, 0x37, 0x73, 0x6a, 0x73, 0x4c, 0x6a, 0x42, 0x4f, 0x6c, 0x44, 0x57, 0x30, 0x4a, 0x42, 0x39, 0x4c, 0x65, 0x47, 0x6e, 0x61, 0x38, 0x67, 0x49, 0x34, 0x7a, 0x4a, 0x56, 0x53, 0x6b, 0x2f, 0x42, 0x77, 0x4a, 0x56, 0x6d, 0x63, 0x0a, 0x49, 0x47, 0x66, 0x45, 0x37, 0x76, 0x6d, 0x4c, 0x56, 0x32, 0x48, 0x30, 0x6b, 0x6e, 0x5a, 0x39, 0x50, 0x34, 0x53, 0x4e, 0x56, 0x62, 0x66, 0x6f, 0x35, 0x61, 0x7a, 0x56, 0x38, 0x66, 0x55, 0x5a, 0x56, 0x71, 0x5a, 0x61, 0x2b, 0x35, 0x41, 0x63, 0x72, 0x35, 0x50, 0x72, 0x35, 0x52, 0x7a, 0x55, 0x5a, 0x35, 0x64, 0x64, 0x42, 0x41, 0x36, 0x2b, 0x43, 0x34, 0x4f, 0x6d, 0x46, 0x34, 0x4f, 0x35, 0x4d, 0x42, 0x4b, 0x67, 0x78, 0x54, 0x4d, 0x56, 0x42, 0x62, 0x6b, 0x4e, 0x0a, 0x2b, 0x38, 0x63, 0x46, 0x64, 0x75, 0x50, 0x59, 0x53, 0x6f, 0x33, 0x38, 0x4e, 0x42, 0x65, 0x6a, 0x78, 0x69, 0x45, 0x6f, 0x76, 0x6a, 0x42, 0x46, 0x4d, 0x52, 0x37, 0x48, 0x65, 0x4c, 0x35, 0x59, 0x59, 0x54, 0x69, 0x73, 0x4f, 0x2b, 0x49, 0x42, 0x5a, 0x51, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x43, 0x4f, 0x4d, 0x4f, 0x44, 0x4f, 0x20, 0x45, 0x43, 0x43, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x69, 0x54, 0x43, 0x43, 0x41, 0x67, 0x2b, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x48, 0x30, 0x65, 0x76, 0x71, 0x6d, 0x49, 0x41, 0x63, 0x46, 0x42, 0x55, 0x54, 0x41, 0x47, 0x65, 0x6d, 0x32, 0x4f, 0x5a, 0x4b, 0x6a, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x7a, 0x43, 0x42, 0x68, 0x54, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x0a, 0x52, 0x30, 0x49, 0x78, 0x47, 0x7a, 0x41, 0x5a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x67, 0x54, 0x45, 0x6b, 0x64, 0x79, 0x5a, 0x57, 0x46, 0x30, 0x5a, 0x58, 0x49, 0x67, 0x54, 0x57, 0x46, 0x75, 0x59, 0x32, 0x68, 0x6c, 0x63, 0x33, 0x52, 0x6c, 0x63, 0x6a, 0x45, 0x51, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x78, 0x4d, 0x48, 0x55, 0x32, 0x46, 0x73, 0x5a, 0x6d, 0x39, 0x79, 0x5a, 0x44, 0x45, 0x61, 0x4d, 0x42, 0x67, 0x47, 0x41, 0x31, 0x55, 0x45, 0x0a, 0x43, 0x68, 0x4d, 0x52, 0x51, 0x30, 0x39, 0x4e, 0x54, 0x30, 0x52, 0x50, 0x49, 0x45, 0x4e, 0x42, 0x49, 0x45, 0x78, 0x70, 0x62, 0x57, 0x6c, 0x30, 0x5a, 0x57, 0x51, 0x78, 0x4b, 0x7a, 0x41, 0x70, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x49, 0x6b, 0x4e, 0x50, 0x54, 0x55, 0x39, 0x45, 0x54, 0x79, 0x42, 0x46, 0x51, 0x30, 0x4d, 0x67, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x69, 0x42, 0x42, 0x0a, 0x64, 0x58, 0x52, 0x6f, 0x62, 0x33, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x44, 0x67, 0x77, 0x4d, 0x7a, 0x41, 0x32, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x7a, 0x67, 0x77, 0x4d, 0x54, 0x45, 0x34, 0x4d, 0x6a, 0x4d, 0x31, 0x4f, 0x54, 0x55, 0x35, 0x57, 0x6a, 0x43, 0x42, 0x68, 0x54, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x52, 0x30, 0x49, 0x78, 0x0a, 0x47, 0x7a, 0x41, 0x5a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x67, 0x54, 0x45, 0x6b, 0x64, 0x79, 0x5a, 0x57, 0x46, 0x30, 0x5a, 0x58, 0x49, 0x67, 0x54, 0x57, 0x46, 0x75, 0x59, 0x32, 0x68, 0x6c, 0x63, 0x33, 0x52, 0x6c, 0x63, 0x6a, 0x45, 0x51, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x78, 0x4d, 0x48, 0x55, 0x32, 0x46, 0x73, 0x5a, 0x6d, 0x39, 0x79, 0x5a, 0x44, 0x45, 0x61, 0x4d, 0x42, 0x67, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x52, 0x0a, 0x51, 0x30, 0x39, 0x4e, 0x54, 0x30, 0x52, 0x50, 0x49, 0x45, 0x4e, 0x42, 0x49, 0x45, 0x78, 0x70, 0x62, 0x57, 0x6c, 0x30, 0x5a, 0x57, 0x51, 0x78, 0x4b, 0x7a, 0x41, 0x70, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x49, 0x6b, 0x4e, 0x50, 0x54, 0x55, 0x39, 0x45, 0x54, 0x79, 0x42, 0x46, 0x51, 0x30, 0x4d, 0x67, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x69, 0x42, 0x42, 0x64, 0x58, 0x52, 0x6f, 0x0a, 0x62, 0x33, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x77, 0x64, 0x6a, 0x41, 0x51, 0x42, 0x67, 0x63, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x49, 0x42, 0x42, 0x67, 0x55, 0x72, 0x67, 0x51, 0x51, 0x41, 0x49, 0x67, 0x4e, 0x69, 0x41, 0x41, 0x51, 0x44, 0x52, 0x33, 0x73, 0x76, 0x64, 0x63, 0x6d, 0x43, 0x46, 0x59, 0x58, 0x37, 0x64, 0x65, 0x53, 0x52, 0x46, 0x74, 0x53, 0x72, 0x59, 0x70, 0x6e, 0x31, 0x50, 0x6c, 0x49, 0x4c, 0x42, 0x73, 0x35, 0x42, 0x41, 0x48, 0x2b, 0x58, 0x0a, 0x34, 0x51, 0x6f, 0x6b, 0x50, 0x42, 0x30, 0x42, 0x42, 0x4f, 0x34, 0x39, 0x30, 0x6f, 0x30, 0x4a, 0x6c, 0x77, 0x7a, 0x67, 0x64, 0x65, 0x54, 0x36, 0x2b, 0x33, 0x65, 0x4b, 0x4b, 0x76, 0x55, 0x44, 0x59, 0x45, 0x73, 0x32, 0x69, 0x78, 0x59, 0x6a, 0x46, 0x71, 0x30, 0x4a, 0x63, 0x66, 0x52, 0x4b, 0x39, 0x43, 0x68, 0x51, 0x74, 0x50, 0x36, 0x49, 0x48, 0x47, 0x34, 0x2f, 0x62, 0x43, 0x38, 0x76, 0x43, 0x56, 0x6c, 0x62, 0x70, 0x56, 0x73, 0x4c, 0x4d, 0x35, 0x6e, 0x69, 0x0a, 0x77, 0x7a, 0x32, 0x4a, 0x2b, 0x57, 0x6f, 0x73, 0x37, 0x37, 0x4c, 0x54, 0x42, 0x75, 0x6d, 0x6a, 0x51, 0x6a, 0x42, 0x41, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x52, 0x31, 0x63, 0x61, 0x63, 0x5a, 0x53, 0x42, 0x6d, 0x38, 0x6e, 0x5a, 0x33, 0x71, 0x51, 0x55, 0x66, 0x66, 0x6c, 0x4d, 0x52, 0x49, 0x64, 0x35, 0x6e, 0x54, 0x65, 0x54, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x0a, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x51, 0x59, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x77, 0x4e, 0x6f, 0x41, 0x44, 0x42, 0x6c, 0x41, 0x6a, 0x45, 0x41, 0x37, 0x77, 0x4e, 0x62, 0x65, 0x71, 0x79, 0x33, 0x65, 0x41, 0x70, 0x79, 0x74, 0x34, 0x6a, 0x66, 0x2f, 0x37, 0x56, 0x47, 0x0a, 0x46, 0x41, 0x6b, 0x4b, 0x2b, 0x71, 0x44, 0x6d, 0x66, 0x51, 0x6a, 0x47, 0x47, 0x6f, 0x65, 0x39, 0x47, 0x4b, 0x68, 0x7a, 0x76, 0x53, 0x62, 0x4b, 0x59, 0x41, 0x79, 0x64, 0x7a, 0x70, 0x6d, 0x66, 0x7a, 0x31, 0x77, 0x50, 0x4d, 0x4f, 0x47, 0x2b, 0x46, 0x44, 0x48, 0x71, 0x41, 0x6a, 0x41, 0x55, 0x39, 0x4a, 0x4d, 0x38, 0x53, 0x61, 0x63, 0x7a, 0x65, 0x70, 0x42, 0x47, 0x52, 0x37, 0x4e, 0x6a, 0x66, 0x52, 0x4f, 0x62, 0x54, 0x72, 0x64, 0x76, 0x47, 0x44, 0x65, 0x41, 0x0a, 0x55, 0x2f, 0x37, 0x64, 0x49, 0x4f, 0x41, 0x31, 0x6d, 0x6a, 0x62, 0x52, 0x78, 0x77, 0x47, 0x35, 0x35, 0x74, 0x7a, 0x64, 0x38, 0x2f, 0x38, 0x64, 0x4c, 0x44, 0x6f, 0x57, 0x56, 0x39, 0x6d, 0x53, 0x4f, 0x64, 0x59, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x43, 0x65, 0x72, 0x74, 0x69, 0x67, 0x6e, 0x61, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x44, 0x71, 0x44, 0x43, 0x43, 0x41, 0x70, 0x43, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4a, 0x41, 0x50, 0x37, 0x63, 0x34, 0x77, 0x45, 0x50, 0x79, 0x55, 0x6a, 0x2f, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x42, 0x51, 0x55, 0x41, 0x4d, 0x44, 0x51, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6b, 0x5a, 0x53, 0x4d, 0x52, 0x49, 0x77, 0x0a, 0x45, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x41, 0x6c, 0x45, 0x61, 0x47, 0x6c, 0x74, 0x65, 0x57, 0x39, 0x30, 0x61, 0x58, 0x4d, 0x78, 0x45, 0x54, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x43, 0x45, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x70, 0x5a, 0x32, 0x35, 0x68, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x41, 0x33, 0x4d, 0x44, 0x59, 0x79, 0x4f, 0x54, 0x45, 0x31, 0x4d, 0x54, 0x4d, 0x77, 0x4e, 0x56, 0x6f, 0x58, 0x44, 0x54, 0x49, 0x33, 0x0a, 0x4d, 0x44, 0x59, 0x79, 0x4f, 0x54, 0x45, 0x31, 0x4d, 0x54, 0x4d, 0x77, 0x4e, 0x56, 0x6f, 0x77, 0x4e, 0x44, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x52, 0x6c, 0x49, 0x78, 0x45, 0x6a, 0x41, 0x51, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x43, 0x55, 0x52, 0x6f, 0x61, 0x57, 0x31, 0x35, 0x62, 0x33, 0x52, 0x70, 0x63, 0x7a, 0x45, 0x52, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x77, 0x77, 0x49, 0x0a, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6e, 0x62, 0x6d, 0x45, 0x77, 0x67, 0x67, 0x45, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x42, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x45, 0x4b, 0x41, 0x6f, 0x49, 0x42, 0x41, 0x51, 0x44, 0x49, 0x61, 0x50, 0x48, 0x4a, 0x31, 0x74, 0x61, 0x7a, 0x4e, 0x48, 0x55, 0x6d, 0x67, 0x68, 0x37, 0x73, 0x74, 0x4c, 0x37, 0x71, 0x0a, 0x58, 0x4f, 0x45, 0x6d, 0x37, 0x52, 0x46, 0x48, 0x59, 0x65, 0x47, 0x69, 0x66, 0x42, 0x5a, 0x34, 0x51, 0x43, 0x48, 0x6b, 0x59, 0x4a, 0x35, 0x61, 0x79, 0x47, 0x50, 0x68, 0x78, 0x4c, 0x47, 0x57, 0x6b, 0x76, 0x38, 0x59, 0x62, 0x57, 0x6b, 0x6a, 0x34, 0x53, 0x74, 0x69, 0x39, 0x39, 0x33, 0x69, 0x4e, 0x69, 0x2b, 0x52, 0x42, 0x37, 0x6c, 0x49, 0x7a, 0x77, 0x37, 0x73, 0x65, 0x62, 0x59, 0x73, 0x35, 0x7a, 0x52, 0x4c, 0x63, 0x41, 0x67, 0x6c, 0x6f, 0x7a, 0x79, 0x48, 0x0a, 0x47, 0x78, 0x6e, 0x79, 0x67, 0x51, 0x63, 0x50, 0x4f, 0x4a, 0x41, 0x5a, 0x30, 0x78, 0x48, 0x2b, 0x68, 0x72, 0x54, 0x79, 0x30, 0x56, 0x34, 0x65, 0x48, 0x70, 0x62, 0x4e, 0x67, 0x47, 0x7a, 0x4f, 0x4f, 0x7a, 0x47, 0x54, 0x74, 0x76, 0x4b, 0x67, 0x30, 0x4b, 0x6d, 0x56, 0x45, 0x6e, 0x32, 0x6c, 0x6d, 0x73, 0x78, 0x72, 0x79, 0x49, 0x52, 0x57, 0x69, 0x6a, 0x4f, 0x70, 0x35, 0x79, 0x49, 0x56, 0x55, 0x78, 0x62, 0x77, 0x7a, 0x42, 0x66, 0x73, 0x56, 0x31, 0x2f, 0x70, 0x0a, 0x6f, 0x67, 0x71, 0x59, 0x43, 0x64, 0x37, 0x6a, 0x58, 0x35, 0x78, 0x76, 0x33, 0x45, 0x6a, 0x6a, 0x68, 0x51, 0x73, 0x56, 0x57, 0x71, 0x61, 0x36, 0x6e, 0x36, 0x78, 0x49, 0x34, 0x77, 0x6d, 0x79, 0x39, 0x2f, 0x51, 0x79, 0x33, 0x6c, 0x34, 0x30, 0x76, 0x68, 0x78, 0x34, 0x58, 0x55, 0x4a, 0x62, 0x7a, 0x67, 0x34, 0x69, 0x6a, 0x30, 0x32, 0x51, 0x31, 0x33, 0x30, 0x79, 0x47, 0x4c, 0x4d, 0x4c, 0x4c, 0x47, 0x71, 0x2f, 0x6a, 0x6a, 0x38, 0x55, 0x45, 0x59, 0x6b, 0x67, 0x0a, 0x44, 0x6e, 0x63, 0x55, 0x74, 0x54, 0x32, 0x55, 0x43, 0x49, 0x66, 0x33, 0x4a, 0x52, 0x37, 0x56, 0x73, 0x6d, 0x41, 0x41, 0x37, 0x47, 0x38, 0x71, 0x4b, 0x43, 0x56, 0x75, 0x4b, 0x6a, 0x34, 0x59, 0x59, 0x78, 0x63, 0x6c, 0x50, 0x7a, 0x35, 0x45, 0x49, 0x42, 0x62, 0x32, 0x4a, 0x73, 0x67, 0x6c, 0x72, 0x67, 0x56, 0x4b, 0x74, 0x4f, 0x64, 0x6a, 0x4c, 0x50, 0x4f, 0x4d, 0x46, 0x6c, 0x4e, 0x2b, 0x58, 0x50, 0x73, 0x52, 0x47, 0x67, 0x6a, 0x42, 0x52, 0x6d, 0x4b, 0x66, 0x0a, 0x49, 0x72, 0x6a, 0x78, 0x77, 0x6f, 0x31, 0x70, 0x33, 0x50, 0x6f, 0x36, 0x57, 0x41, 0x62, 0x66, 0x41, 0x67, 0x4d, 0x42, 0x41, 0x41, 0x47, 0x6a, 0x67, 0x62, 0x77, 0x77, 0x67, 0x62, 0x6b, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x47, 0x75, 0x33, 0x2b, 0x51, 0x54, 0x6d, 0x51, 0x0a, 0x74, 0x43, 0x52, 0x5a, 0x76, 0x67, 0x48, 0x79, 0x55, 0x74, 0x56, 0x46, 0x39, 0x6c, 0x6f, 0x35, 0x33, 0x42, 0x45, 0x77, 0x5a, 0x41, 0x59, 0x44, 0x56, 0x52, 0x30, 0x6a, 0x42, 0x46, 0x30, 0x77, 0x57, 0x34, 0x41, 0x55, 0x47, 0x75, 0x33, 0x2b, 0x51, 0x54, 0x6d, 0x51, 0x74, 0x43, 0x52, 0x5a, 0x76, 0x67, 0x48, 0x79, 0x55, 0x74, 0x56, 0x46, 0x39, 0x6c, 0x6f, 0x35, 0x33, 0x42, 0x47, 0x68, 0x4f, 0x4b, 0x51, 0x32, 0x4d, 0x44, 0x51, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x0a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6b, 0x5a, 0x53, 0x4d, 0x52, 0x49, 0x77, 0x45, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x41, 0x6c, 0x45, 0x61, 0x47, 0x6c, 0x74, 0x65, 0x57, 0x39, 0x30, 0x61, 0x58, 0x4d, 0x78, 0x45, 0x54, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x43, 0x45, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x70, 0x5a, 0x32, 0x35, 0x68, 0x67, 0x67, 0x6b, 0x41, 0x2f, 0x74, 0x7a, 0x6a, 0x41, 0x51, 0x2f, 0x4a, 0x0a, 0x53, 0x50, 0x38, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x45, 0x47, 0x4d, 0x42, 0x45, 0x47, 0x43, 0x57, 0x43, 0x47, 0x53, 0x41, 0x47, 0x47, 0x2b, 0x45, 0x49, 0x42, 0x41, 0x51, 0x51, 0x45, 0x41, 0x77, 0x49, 0x41, 0x42, 0x7a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x55, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x51, 0x45, 0x41, 0x0a, 0x68, 0x51, 0x4d, 0x65, 0x6b, 0x6e, 0x48, 0x32, 0x51, 0x71, 0x2f, 0x68, 0x6f, 0x32, 0x47, 0x65, 0x36, 0x2f, 0x50, 0x41, 0x44, 0x2f, 0x4b, 0x6c, 0x31, 0x4e, 0x71, 0x56, 0x35, 0x74, 0x61, 0x2b, 0x61, 0x44, 0x59, 0x39, 0x66, 0x6d, 0x34, 0x66, 0x54, 0x49, 0x72, 0x76, 0x30, 0x51, 0x38, 0x68, 0x62, 0x56, 0x36, 0x6c, 0x55, 0x6d, 0x50, 0x4f, 0x45, 0x76, 0x6a, 0x76, 0x4b, 0x74, 0x70, 0x76, 0x36, 0x7a, 0x66, 0x2b, 0x45, 0x77, 0x4c, 0x48, 0x79, 0x7a, 0x73, 0x2b, 0x0a, 0x49, 0x6d, 0x76, 0x61, 0x59, 0x53, 0x35, 0x2f, 0x31, 0x48, 0x49, 0x39, 0x33, 0x54, 0x44, 0x68, 0x48, 0x6b, 0x78, 0x41, 0x47, 0x59, 0x77, 0x50, 0x31, 0x35, 0x7a, 0x52, 0x67, 0x7a, 0x42, 0x37, 0x6d, 0x46, 0x6e, 0x63, 0x66, 0x63, 0x61, 0x35, 0x44, 0x43, 0x6c, 0x4d, 0x6f, 0x54, 0x4f, 0x69, 0x36, 0x32, 0x63, 0x36, 0x5a, 0x59, 0x54, 0x54, 0x6c, 0x75, 0x4c, 0x74, 0x64, 0x6b, 0x56, 0x77, 0x6a, 0x37, 0x55, 0x72, 0x33, 0x76, 0x6b, 0x6a, 0x31, 0x6b, 0x6c, 0x75, 0x0a, 0x50, 0x42, 0x53, 0x31, 0x78, 0x70, 0x38, 0x31, 0x48, 0x6c, 0x44, 0x51, 0x77, 0x59, 0x39, 0x71, 0x63, 0x45, 0x51, 0x43, 0x59, 0x73, 0x75, 0x75, 0x48, 0x57, 0x68, 0x42, 0x70, 0x36, 0x70, 0x58, 0x36, 0x46, 0x4f, 0x71, 0x42, 0x39, 0x49, 0x47, 0x39, 0x74, 0x55, 0x55, 0x42, 0x67, 0x75, 0x52, 0x41, 0x33, 0x55, 0x73, 0x62, 0x48, 0x4b, 0x31, 0x59, 0x5a, 0x57, 0x61, 0x44, 0x59, 0x75, 0x35, 0x44, 0x65, 0x66, 0x31, 0x33, 0x31, 0x54, 0x4e, 0x33, 0x75, 0x62, 0x59, 0x0a, 0x31, 0x67, 0x6b, 0x49, 0x6c, 0x32, 0x50, 0x6c, 0x77, 0x53, 0x36, 0x77, 0x74, 0x30, 0x51, 0x6d, 0x77, 0x43, 0x62, 0x41, 0x72, 0x31, 0x55, 0x77, 0x6e, 0x6a, 0x76, 0x56, 0x4e, 0x69, 0x6f, 0x5a, 0x42, 0x50, 0x52, 0x63, 0x48, 0x76, 0x2f, 0x50, 0x4c, 0x4c, 0x66, 0x2f, 0x30, 0x50, 0x32, 0x48, 0x51, 0x42, 0x48, 0x56, 0x45, 0x53, 0x4f, 0x37, 0x53, 0x4d, 0x41, 0x68, 0x71, 0x61, 0x51, 0x6f, 0x4c, 0x66, 0x30, 0x56, 0x2b, 0x4c, 0x42, 0x4f, 0x4b, 0x2f, 0x51, 0x77, 0x0a, 0x57, 0x79, 0x48, 0x38, 0x45, 0x5a, 0x45, 0x30, 0x76, 0x6b, 0x48, 0x76, 0x65, 0x35, 0x32, 0x58, 0x64, 0x66, 0x2b, 0x58, 0x6c, 0x63, 0x43, 0x57, 0x57, 0x43, 0x2f, 0x71, 0x75, 0x30, 0x62, 0x58, 0x75, 0x2b, 0x54, 0x5a, 0x4c, 0x67, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x65, 0x50, 0x4b, 0x49, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x73, 0x44, 0x43, 0x43, 0x41, 0x35, 0x69, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x46, 0x63, 0x69, 0x39, 0x5a, 0x55, 0x64, 0x63, 0x72, 0x37, 0x69, 0x58, 0x41, 0x46, 0x37, 0x6b, 0x42, 0x74, 0x4b, 0x38, 0x6e, 0x54, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x55, 0x46, 0x41, 0x44, 0x42, 0x65, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x0a, 0x45, 0x77, 0x4a, 0x55, 0x56, 0x7a, 0x45, 0x6a, 0x4d, 0x43, 0x45, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x61, 0x51, 0x32, 0x68, 0x31, 0x62, 0x6d, 0x64, 0x6f, 0x64, 0x32, 0x45, 0x67, 0x56, 0x47, 0x56, 0x73, 0x5a, 0x57, 0x4e, 0x76, 0x62, 0x53, 0x42, 0x44, 0x62, 0x79, 0x34, 0x73, 0x49, 0x45, 0x78, 0x30, 0x5a, 0x43, 0x34, 0x78, 0x4b, 0x6a, 0x41, 0x6f, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x73, 0x4d, 0x49, 0x57, 0x56, 0x51, 0x53, 0x30, 0x6b, 0x67, 0x0a, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x61, 0x57, 0x5a, 0x70, 0x59, 0x32, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x49, 0x45, 0x46, 0x31, 0x64, 0x47, 0x68, 0x76, 0x63, 0x6d, 0x6c, 0x30, 0x65, 0x54, 0x41, 0x65, 0x46, 0x77, 0x30, 0x77, 0x4e, 0x44, 0x45, 0x79, 0x4d, 0x6a, 0x41, 0x77, 0x4d, 0x6a, 0x4d, 0x78, 0x4d, 0x6a, 0x64, 0x61, 0x46, 0x77, 0x30, 0x7a, 0x4e, 0x44, 0x45, 0x79, 0x4d, 0x6a, 0x41, 0x77, 0x4d, 0x6a, 0x4d, 0x78, 0x0a, 0x4d, 0x6a, 0x64, 0x61, 0x4d, 0x46, 0x34, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6c, 0x52, 0x58, 0x4d, 0x53, 0x4d, 0x77, 0x49, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x42, 0x70, 0x44, 0x61, 0x48, 0x56, 0x75, 0x5a, 0x32, 0x68, 0x33, 0x59, 0x53, 0x42, 0x55, 0x5a, 0x57, 0x78, 0x6c, 0x59, 0x32, 0x39, 0x74, 0x49, 0x45, 0x4e, 0x76, 0x4c, 0x69, 0x77, 0x67, 0x54, 0x48, 0x52, 0x6b, 0x4c, 0x6a, 0x45, 0x71, 0x0a, 0x4d, 0x43, 0x67, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x77, 0x77, 0x68, 0x5a, 0x56, 0x42, 0x4c, 0x53, 0x53, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x70, 0x5a, 0x6d, 0x6c, 0x6a, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x34, 0x67, 0x51, 0x58, 0x56, 0x30, 0x61, 0x47, 0x39, 0x79, 0x61, 0x58, 0x52, 0x35, 0x4d, 0x49, 0x49, 0x43, 0x49, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x0a, 0x41, 0x51, 0x45, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x38, 0x41, 0x4d, 0x49, 0x49, 0x43, 0x43, 0x67, 0x4b, 0x43, 0x41, 0x67, 0x45, 0x41, 0x34, 0x53, 0x55, 0x50, 0x37, 0x6f, 0x33, 0x62, 0x69, 0x44, 0x4e, 0x31, 0x5a, 0x38, 0x32, 0x74, 0x48, 0x33, 0x30, 0x36, 0x54, 0x6d, 0x32, 0x64, 0x30, 0x79, 0x38, 0x55, 0x38, 0x32, 0x4e, 0x30, 0x79, 0x77, 0x45, 0x68, 0x61, 0x6a, 0x66, 0x71, 0x68, 0x46, 0x41, 0x48, 0x53, 0x79, 0x5a, 0x62, 0x43, 0x55, 0x4e, 0x73, 0x0a, 0x49, 0x5a, 0x35, 0x71, 0x79, 0x4e, 0x55, 0x44, 0x39, 0x57, 0x42, 0x70, 0x6a, 0x38, 0x7a, 0x77, 0x49, 0x75, 0x51, 0x66, 0x35, 0x2f, 0x64, 0x71, 0x49, 0x6a, 0x47, 0x33, 0x4c, 0x42, 0x58, 0x79, 0x34, 0x50, 0x34, 0x41, 0x61, 0x6b, 0x50, 0x2f, 0x68, 0x32, 0x58, 0x47, 0x74, 0x52, 0x72, 0x42, 0x70, 0x30, 0x78, 0x74, 0x49, 0x6e, 0x41, 0x68, 0x69, 0x6a, 0x48, 0x79, 0x6c, 0x33, 0x53, 0x4a, 0x43, 0x52, 0x49, 0x6d, 0x48, 0x4a, 0x37, 0x4b, 0x32, 0x52, 0x4b, 0x69, 0x0a, 0x6c, 0x54, 0x7a, 0x61, 0x36, 0x57, 0x65, 0x2f, 0x43, 0x4b, 0x42, 0x6b, 0x34, 0x39, 0x5a, 0x43, 0x74, 0x30, 0x58, 0x76, 0x6c, 0x2f, 0x54, 0x32, 0x39, 0x64, 0x65, 0x31, 0x53, 0x68, 0x55, 0x43, 0x57, 0x48, 0x32, 0x59, 0x57, 0x45, 0x74, 0x67, 0x76, 0x4d, 0x33, 0x58, 0x44, 0x5a, 0x6f, 0x54, 0x4d, 0x31, 0x50, 0x52, 0x59, 0x66, 0x6c, 0x36, 0x31, 0x64, 0x64, 0x34, 0x73, 0x35, 0x6f, 0x7a, 0x39, 0x77, 0x43, 0x47, 0x7a, 0x68, 0x31, 0x4e, 0x6c, 0x44, 0x69, 0x76, 0x0a, 0x71, 0x4f, 0x78, 0x34, 0x55, 0x58, 0x43, 0x4b, 0x58, 0x42, 0x43, 0x44, 0x55, 0x53, 0x48, 0x33, 0x45, 0x54, 0x30, 0x30, 0x68, 0x6c, 0x37, 0x6c, 0x53, 0x4d, 0x32, 0x58, 0x67, 0x59, 0x49, 0x31, 0x54, 0x42, 0x6e, 0x73, 0x5a, 0x66, 0x5a, 0x72, 0x78, 0x51, 0x57, 0x68, 0x37, 0x6b, 0x63, 0x54, 0x31, 0x72, 0x4d, 0x68, 0x4a, 0x35, 0x51, 0x51, 0x43, 0x74, 0x6b, 0x6b, 0x4f, 0x37, 0x71, 0x2b, 0x52, 0x42, 0x4e, 0x47, 0x4d, 0x44, 0x2b, 0x58, 0x50, 0x4e, 0x6a, 0x58, 0x0a, 0x31, 0x32, 0x72, 0x75, 0x4f, 0x7a, 0x6a, 0x6a, 0x4b, 0x39, 0x53, 0x58, 0x44, 0x72, 0x6b, 0x62, 0x35, 0x77, 0x64, 0x4a, 0x66, 0x7a, 0x63, 0x71, 0x2b, 0x58, 0x64, 0x34, 0x7a, 0x31, 0x54, 0x74, 0x57, 0x30, 0x61, 0x64, 0x6f, 0x34, 0x41, 0x4f, 0x6b, 0x55, 0x50, 0x42, 0x31, 0x6c, 0x74, 0x66, 0x46, 0x4c, 0x71, 0x66, 0x70, 0x6f, 0x30, 0x6b, 0x52, 0x30, 0x42, 0x5a, 0x76, 0x33, 0x49, 0x34, 0x73, 0x6a, 0x5a, 0x73, 0x4e, 0x2f, 0x2b, 0x5a, 0x30, 0x56, 0x30, 0x4f, 0x0a, 0x57, 0x51, 0x71, 0x72, 0x61, 0x66, 0x66, 0x41, 0x73, 0x67, 0x52, 0x46, 0x65, 0x6c, 0x51, 0x41, 0x72, 0x72, 0x35, 0x54, 0x39, 0x72, 0x58, 0x6e, 0x34, 0x66, 0x67, 0x38, 0x6f, 0x7a, 0x48, 0x53, 0x71, 0x66, 0x34, 0x68, 0x55, 0x6d, 0x54, 0x46, 0x70, 0x6d, 0x66, 0x77, 0x64, 0x51, 0x63, 0x47, 0x6c, 0x42, 0x53, 0x42, 0x56, 0x63, 0x59, 0x6e, 0x35, 0x41, 0x47, 0x50, 0x46, 0x38, 0x46, 0x71, 0x63, 0x64, 0x65, 0x2b, 0x53, 0x2f, 0x75, 0x55, 0x57, 0x48, 0x31, 0x2b, 0x0a, 0x45, 0x54, 0x4f, 0x78, 0x51, 0x76, 0x64, 0x69, 0x62, 0x42, 0x6a, 0x57, 0x7a, 0x77, 0x6c, 0x6f, 0x50, 0x6e, 0x39, 0x73, 0x39, 0x68, 0x36, 0x50, 0x59, 0x71, 0x32, 0x6c, 0x59, 0x39, 0x73, 0x4a, 0x70, 0x78, 0x38, 0x69, 0x51, 0x6b, 0x45, 0x65, 0x62, 0x35, 0x6d, 0x4b, 0x50, 0x74, 0x66, 0x35, 0x50, 0x30, 0x42, 0x36, 0x65, 0x62, 0x43, 0x6c, 0x41, 0x5a, 0x4c, 0x53, 0x6e, 0x54, 0x30, 0x49, 0x46, 0x61, 0x55, 0x51, 0x41, 0x53, 0x32, 0x7a, 0x4d, 0x6e, 0x61, 0x6f, 0x0a, 0x6c, 0x51, 0x32, 0x7a, 0x65, 0x70, 0x72, 0x37, 0x42, 0x78, 0x42, 0x34, 0x45, 0x57, 0x2f, 0x68, 0x6a, 0x38, 0x65, 0x36, 0x44, 0x79, 0x55, 0x61, 0x64, 0x43, 0x72, 0x6c, 0x48, 0x4a, 0x68, 0x42, 0x6d, 0x64, 0x38, 0x68, 0x68, 0x2b, 0x69, 0x56, 0x42, 0x6d, 0x6f, 0x4b, 0x73, 0x32, 0x70, 0x48, 0x64, 0x6d, 0x58, 0x32, 0x4f, 0x73, 0x2b, 0x50, 0x59, 0x68, 0x63, 0x5a, 0x65, 0x77, 0x6f, 0x6f, 0x7a, 0x52, 0x72, 0x53, 0x67, 0x78, 0x34, 0x68, 0x78, 0x79, 0x79, 0x2f, 0x0a, 0x76, 0x76, 0x39, 0x68, 0x61, 0x4c, 0x64, 0x6e, 0x47, 0x37, 0x74, 0x34, 0x54, 0x59, 0x33, 0x4f, 0x5a, 0x2b, 0x58, 0x6b, 0x77, 0x59, 0x36, 0x33, 0x49, 0x32, 0x62, 0x69, 0x6e, 0x5a, 0x42, 0x31, 0x4e, 0x4a, 0x69, 0x70, 0x4e, 0x69, 0x75, 0x4b, 0x6d, 0x70, 0x53, 0x35, 0x6e, 0x65, 0x7a, 0x4d, 0x69, 0x72, 0x48, 0x34, 0x4a, 0x59, 0x6c, 0x63, 0x57, 0x72, 0x59, 0x76, 0x6a, 0x42, 0x39, 0x74, 0x65, 0x53, 0x53, 0x6e, 0x55, 0x6d, 0x6a, 0x44, 0x68, 0x44, 0x58, 0x69, 0x0a, 0x5a, 0x6f, 0x31, 0x6a, 0x44, 0x69, 0x56, 0x4e, 0x31, 0x52, 0x6d, 0x79, 0x35, 0x6e, 0x6b, 0x33, 0x70, 0x79, 0x4b, 0x64, 0x56, 0x44, 0x45, 0x43, 0x41, 0x77, 0x45, 0x41, 0x41, 0x61, 0x4e, 0x71, 0x4d, 0x47, 0x67, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x42, 0x34, 0x4d, 0x39, 0x37, 0x5a, 0x6e, 0x38, 0x75, 0x47, 0x53, 0x4a, 0x67, 0x6c, 0x46, 0x77, 0x46, 0x55, 0x35, 0x4c, 0x6e, 0x63, 0x2f, 0x51, 0x6b, 0x71, 0x69, 0x0a, 0x4d, 0x41, 0x77, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x4f, 0x51, 0x59, 0x45, 0x5a, 0x79, 0x6f, 0x48, 0x41, 0x41, 0x51, 0x78, 0x4d, 0x43, 0x38, 0x77, 0x4c, 0x51, 0x49, 0x42, 0x41, 0x44, 0x41, 0x4a, 0x42, 0x67, 0x55, 0x72, 0x44, 0x67, 0x4d, 0x43, 0x47, 0x67, 0x55, 0x41, 0x4d, 0x41, 0x63, 0x47, 0x42, 0x57, 0x63, 0x71, 0x41, 0x77, 0x41, 0x41, 0x42, 0x42, 0x52, 0x46, 0x73, 0x4d, 0x4c, 0x48, 0x0a, 0x43, 0x6c, 0x5a, 0x38, 0x37, 0x6c, 0x74, 0x34, 0x44, 0x4a, 0x58, 0x35, 0x47, 0x46, 0x50, 0x42, 0x70, 0x68, 0x7a, 0x59, 0x45, 0x44, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x55, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x45, 0x41, 0x43, 0x62, 0x4f, 0x44, 0x55, 0x31, 0x6b, 0x42, 0x50, 0x70, 0x56, 0x4a, 0x75, 0x66, 0x47, 0x42, 0x75, 0x76, 0x6c, 0x32, 0x49, 0x43, 0x4f, 0x31, 0x4a, 0x32, 0x42, 0x30, 0x0a, 0x31, 0x47, 0x71, 0x5a, 0x4e, 0x46, 0x35, 0x73, 0x41, 0x46, 0x50, 0x5a, 0x6e, 0x2f, 0x4b, 0x6d, 0x73, 0x53, 0x51, 0x48, 0x52, 0x47, 0x6f, 0x71, 0x78, 0x71, 0x57, 0x4f, 0x65, 0x42, 0x4c, 0x6f, 0x52, 0x39, 0x6c, 0x59, 0x47, 0x78, 0x4d, 0x71, 0x58, 0x6e, 0x6d, 0x62, 0x6e, 0x77, 0x6f, 0x71, 0x5a, 0x36, 0x59, 0x6c, 0x50, 0x77, 0x5a, 0x70, 0x56, 0x6e, 0x50, 0x44, 0x69, 0x6d, 0x5a, 0x49, 0x2b, 0x79, 0x6d, 0x42, 0x56, 0x33, 0x51, 0x47, 0x79, 0x70, 0x7a, 0x71, 0x0a, 0x4b, 0x4f, 0x67, 0x34, 0x5a, 0x79, 0x59, 0x72, 0x38, 0x64, 0x57, 0x31, 0x50, 0x32, 0x57, 0x54, 0x2b, 0x44, 0x5a, 0x64, 0x6a, 0x6f, 0x32, 0x4e, 0x51, 0x43, 0x43, 0x48, 0x47, 0x65, 0x72, 0x76, 0x4a, 0x38, 0x41, 0x39, 0x74, 0x44, 0x6b, 0x50, 0x4a, 0x58, 0x74, 0x6f, 0x55, 0x48, 0x52, 0x56, 0x6e, 0x41, 0x78, 0x5a, 0x66, 0x56, 0x6f, 0x39, 0x51, 0x5a, 0x51, 0x6c, 0x55, 0x67, 0x6a, 0x67, 0x52, 0x79, 0x77, 0x56, 0x4d, 0x52, 0x6e, 0x56, 0x76, 0x77, 0x64, 0x56, 0x0a, 0x78, 0x72, 0x73, 0x53, 0x74, 0x5a, 0x66, 0x30, 0x58, 0x34, 0x4f, 0x46, 0x75, 0x6e, 0x48, 0x42, 0x32, 0x57, 0x79, 0x42, 0x45, 0x58, 0x59, 0x4b, 0x43, 0x72, 0x43, 0x2f, 0x67, 0x70, 0x66, 0x33, 0x36, 0x6a, 0x33, 0x36, 0x2b, 0x75, 0x77, 0x74, 0x71, 0x53, 0x69, 0x55, 0x4f, 0x31, 0x62, 0x64, 0x30, 0x6c, 0x45, 0x75, 0x72, 0x73, 0x43, 0x39, 0x43, 0x42, 0x57, 0x4d, 0x64, 0x31, 0x49, 0x30, 0x6c, 0x74, 0x61, 0x62, 0x72, 0x4e, 0x4d, 0x64, 0x6a, 0x6d, 0x45, 0x50, 0x0a, 0x4e, 0x58, 0x75, 0x62, 0x72, 0x6a, 0x6c, 0x70, 0x43, 0x32, 0x4a, 0x67, 0x51, 0x43, 0x41, 0x32, 0x6a, 0x36, 0x2f, 0x37, 0x4e, 0x75, 0x34, 0x74, 0x43, 0x45, 0x6f, 0x64, 0x75, 0x4c, 0x2b, 0x62, 0x58, 0x50, 0x6a, 0x71, 0x70, 0x52, 0x75, 0x67, 0x63, 0x36, 0x62, 0x59, 0x2b, 0x47, 0x37, 0x67, 0x4d, 0x77, 0x52, 0x66, 0x61, 0x4b, 0x6f, 0x6e, 0x68, 0x2b, 0x33, 0x5a, 0x77, 0x5a, 0x43, 0x63, 0x37, 0x62, 0x33, 0x6a, 0x61, 0x6a, 0x57, 0x76, 0x59, 0x39, 0x2b, 0x72, 0x0a, 0x47, 0x4e, 0x6d, 0x36, 0x35, 0x75, 0x6c, 0x4b, 0x36, 0x6c, 0x43, 0x4b, 0x44, 0x32, 0x47, 0x54, 0x48, 0x75, 0x49, 0x74, 0x47, 0x65, 0x49, 0x77, 0x6c, 0x44, 0x57, 0x53, 0x58, 0x51, 0x36, 0x32, 0x42, 0x36, 0x38, 0x5a, 0x67, 0x49, 0x39, 0x48, 0x6b, 0x46, 0x46, 0x4c, 0x4c, 0x6b, 0x33, 0x64, 0x68, 0x65, 0x4c, 0x53, 0x43, 0x6c, 0x49, 0x4b, 0x46, 0x35, 0x72, 0x38, 0x47, 0x72, 0x42, 0x51, 0x41, 0x75, 0x55, 0x42, 0x6f, 0x32, 0x4d, 0x33, 0x49, 0x55, 0x78, 0x45, 0x0a, 0x78, 0x4a, 0x74, 0x52, 0x6d, 0x52, 0x45, 0x4f, 0x63, 0x35, 0x77, 0x47, 0x6a, 0x31, 0x51, 0x75, 0x70, 0x79, 0x68, 0x65, 0x52, 0x44, 0x6d, 0x48, 0x56, 0x69, 0x30, 0x33, 0x76, 0x59, 0x56, 0x45, 0x6c, 0x4f, 0x45, 0x4d, 0x53, 0x79, 0x79, 0x63, 0x77, 0x35, 0x4b, 0x46, 0x4e, 0x47, 0x48, 0x4c, 0x44, 0x37, 0x69, 0x62, 0x53, 0x6b, 0x4e, 0x53, 0x2f, 0x6a, 0x51, 0x36, 0x66, 0x62, 0x6a, 0x70, 0x4b, 0x64, 0x78, 0x32, 0x71, 0x63, 0x67, 0x77, 0x2b, 0x42, 0x52, 0x78, 0x0a, 0x67, 0x4d, 0x59, 0x65, 0x4e, 0x6b, 0x68, 0x30, 0x49, 0x6b, 0x46, 0x63, 0x68, 0x34, 0x4c, 0x6f, 0x47, 0x48, 0x47, 0x4c, 0x51, 0x59, 0x6c, 0x45, 0x35, 0x33, 0x35, 0x59, 0x57, 0x36, 0x69, 0x34, 0x6a, 0x52, 0x50, 0x70, 0x70, 0x32, 0x7a, 0x44, 0x52, 0x2b, 0x32, 0x7a, 0x47, 0x70, 0x31, 0x69, 0x72, 0x6f, 0x32, 0x43, 0x36, 0x70, 0x53, 0x65, 0x33, 0x56, 0x6b, 0x51, 0x77, 0x36, 0x33, 0x64, 0x34, 0x6b, 0x33, 0x6a, 0x4d, 0x64, 0x58, 0x48, 0x37, 0x4f, 0x6a, 0x79, 0x0a, 0x73, 0x50, 0x36, 0x53, 0x48, 0x68, 0x59, 0x4b, 0x47, 0x76, 0x7a, 0x5a, 0x38, 0x2f, 0x67, 0x6e, 0x74, 0x73, 0x6d, 0x2b, 0x48, 0x62, 0x52, 0x73, 0x5a, 0x4a, 0x42, 0x2f, 0x39, 0x4f, 0x54, 0x45, 0x57, 0x39, 0x63, 0x33, 0x72, 0x6b, 0x49, 0x4f, 0x33, 0x61, 0x51, 0x61, 0x62, 0x33, 0x79, 0x49, 0x56, 0x4d, 0x55, 0x57, 0x62, 0x75, 0x46, 0x36, 0x61, 0x43, 0x37, 0x34, 0x4f, 0x72, 0x38, 0x4e, 0x70, 0x44, 0x79, 0x4a, 0x4f, 0x33, 0x69, 0x6e, 0x54, 0x6d, 0x4f, 0x44, 0x0a, 0x42, 0x43, 0x45, 0x49, 0x5a, 0x34, 0x33, 0x79, 0x67, 0x6b, 0x6e, 0x51, 0x57, 0x2f, 0x32, 0x78, 0x7a, 0x51, 0x2b, 0x44, 0x68, 0x4e, 0x51, 0x2b, 0x49, 0x49, 0x58, 0x33, 0x53, 0x6a, 0x30, 0x72, 0x6e, 0x50, 0x30, 0x71, 0x43, 0x67, 0x6c, 0x4e, 0x36, 0x6f, 0x48, 0x34, 0x45, 0x5a, 0x77, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x63, 0x65, 0x72, 0x74, 0x53, 0x49, 0x47, 0x4e, 0x20, 0x52, 0x4f, 0x4f, 0x54, 0x20, 0x43, 0x41, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x44, 0x4f, 0x44, 0x43, 0x43, 0x41, 0x69, 0x43, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x47, 0x49, 0x41, 0x59, 0x46, 0x46, 0x6e, 0x41, 0x43, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x42, 0x51, 0x55, 0x41, 0x4d, 0x44, 0x73, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6c, 0x4a, 0x50, 0x4d, 0x52, 0x45, 0x77, 0x44, 0x77, 0x59, 0x44, 0x0a, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x77, 0x68, 0x6a, 0x5a, 0x58, 0x4a, 0x30, 0x55, 0x30, 0x6c, 0x48, 0x54, 0x6a, 0x45, 0x5a, 0x4d, 0x42, 0x63, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x78, 0x4d, 0x51, 0x59, 0x32, 0x56, 0x79, 0x64, 0x46, 0x4e, 0x4a, 0x52, 0x30, 0x34, 0x67, 0x55, 0x6b, 0x39, 0x50, 0x56, 0x43, 0x42, 0x44, 0x51, 0x54, 0x41, 0x65, 0x46, 0x77, 0x30, 0x77, 0x4e, 0x6a, 0x41, 0x33, 0x4d, 0x44, 0x51, 0x78, 0x4e, 0x7a, 0x49, 0x77, 0x4d, 0x44, 0x52, 0x61, 0x0a, 0x46, 0x77, 0x30, 0x7a, 0x4d, 0x54, 0x41, 0x33, 0x4d, 0x44, 0x51, 0x78, 0x4e, 0x7a, 0x49, 0x77, 0x4d, 0x44, 0x52, 0x61, 0x4d, 0x44, 0x73, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6c, 0x4a, 0x50, 0x4d, 0x52, 0x45, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x77, 0x68, 0x6a, 0x5a, 0x58, 0x4a, 0x30, 0x55, 0x30, 0x6c, 0x48, 0x54, 0x6a, 0x45, 0x5a, 0x4d, 0x42, 0x63, 0x47, 0x41, 0x31, 0x55, 0x45, 0x0a, 0x43, 0x78, 0x4d, 0x51, 0x59, 0x32, 0x56, 0x79, 0x64, 0x46, 0x4e, 0x4a, 0x52, 0x30, 0x34, 0x67, 0x55, 0x6b, 0x39, 0x50, 0x56, 0x43, 0x42, 0x44, 0x51, 0x54, 0x43, 0x43, 0x41, 0x53, 0x49, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x45, 0x50, 0x41, 0x44, 0x43, 0x43, 0x41, 0x51, 0x6f, 0x43, 0x67, 0x67, 0x45, 0x42, 0x41, 0x4c, 0x63, 0x7a, 0x75, 0x58, 0x37, 0x49, 0x0a, 0x4a, 0x55, 0x71, 0x4f, 0x74, 0x64, 0x75, 0x30, 0x4b, 0x42, 0x75, 0x71, 0x56, 0x35, 0x44, 0x6f, 0x30, 0x53, 0x4c, 0x54, 0x5a, 0x4c, 0x72, 0x54, 0x6b, 0x2b, 0x6a, 0x55, 0x72, 0x49, 0x5a, 0x68, 0x51, 0x47, 0x70, 0x67, 0x56, 0x32, 0x68, 0x55, 0x68, 0x45, 0x32, 0x38, 0x61, 0x6c, 0x51, 0x43, 0x42, 0x66, 0x2f, 0x66, 0x6d, 0x35, 0x6f, 0x71, 0x72, 0x6c, 0x30, 0x48, 0x6a, 0x30, 0x72, 0x44, 0x4b, 0x48, 0x2f, 0x76, 0x2b, 0x79, 0x76, 0x36, 0x65, 0x66, 0x48, 0x48, 0x0a, 0x72, 0x66, 0x41, 0x51, 0x55, 0x79, 0x53, 0x51, 0x69, 0x32, 0x62, 0x4a, 0x71, 0x49, 0x69, 0x72, 0x72, 0x31, 0x71, 0x6a, 0x41, 0x4f, 0x6d, 0x2b, 0x75, 0x6b, 0x62, 0x75, 0x57, 0x33, 0x4e, 0x37, 0x4c, 0x42, 0x65, 0x43, 0x67, 0x56, 0x35, 0x69, 0x4c, 0x4b, 0x45, 0x43, 0x5a, 0x62, 0x4f, 0x39, 0x78, 0x53, 0x73, 0x41, 0x66, 0x73, 0x54, 0x38, 0x41, 0x7a, 0x4e, 0x58, 0x44, 0x65, 0x33, 0x69, 0x2b, 0x73, 0x35, 0x64, 0x52, 0x64, 0x59, 0x34, 0x7a, 0x54, 0x57, 0x32, 0x0a, 0x73, 0x73, 0x48, 0x51, 0x6e, 0x49, 0x46, 0x4b, 0x71, 0x75, 0x53, 0x79, 0x41, 0x56, 0x77, 0x64, 0x6a, 0x31, 0x2b, 0x5a, 0x78, 0x4c, 0x47, 0x74, 0x32, 0x34, 0x67, 0x68, 0x36, 0x35, 0x41, 0x49, 0x67, 0x6f, 0x44, 0x7a, 0x4d, 0x4b, 0x4e, 0x44, 0x35, 0x70, 0x43, 0x43, 0x72, 0x6c, 0x55, 0x6f, 0x53, 0x65, 0x31, 0x62, 0x31, 0x36, 0x6b, 0x51, 0x4f, 0x41, 0x37, 0x2b, 0x6a, 0x30, 0x78, 0x62, 0x6d, 0x30, 0x62, 0x71, 0x51, 0x66, 0x57, 0x77, 0x43, 0x48, 0x54, 0x44, 0x0a, 0x30, 0x49, 0x67, 0x7a, 0x74, 0x6e, 0x7a, 0x58, 0x64, 0x4e, 0x2f, 0x63, 0x68, 0x4e, 0x46, 0x44, 0x44, 0x6e, 0x55, 0x35, 0x6f, 0x53, 0x56, 0x41, 0x4b, 0x4f, 0x70, 0x34, 0x79, 0x77, 0x34, 0x73, 0x4c, 0x6a, 0x6d, 0x64, 0x6a, 0x49, 0x74, 0x75, 0x46, 0x68, 0x77, 0x76, 0x4a, 0x6f, 0x49, 0x51, 0x34, 0x75, 0x4e, 0x6c, 0x6c, 0x41, 0x6f, 0x45, 0x77, 0x46, 0x37, 0x33, 0x58, 0x56, 0x76, 0x34, 0x45, 0x4f, 0x4c, 0x51, 0x75, 0x6e, 0x70, 0x4c, 0x2b, 0x39, 0x34, 0x33, 0x0a, 0x41, 0x41, 0x41, 0x61, 0x57, 0x79, 0x6a, 0x6a, 0x30, 0x70, 0x78, 0x7a, 0x50, 0x6a, 0x4b, 0x48, 0x6d, 0x4b, 0x48, 0x4a, 0x55, 0x53, 0x2f, 0x58, 0x33, 0x71, 0x77, 0x7a, 0x73, 0x30, 0x38, 0x43, 0x41, 0x77, 0x45, 0x41, 0x41, 0x61, 0x4e, 0x43, 0x4d, 0x45, 0x41, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x0a, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x63, 0x59, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x4f, 0x43, 0x4d, 0x6d, 0x39, 0x73, 0x6c, 0x53, 0x62, 0x50, 0x78, 0x66, 0x49, 0x62, 0x57, 0x73, 0x6b, 0x4b, 0x48, 0x43, 0x39, 0x42, 0x72, 0x6f, 0x4e, 0x6e, 0x6b, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x42, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x42, 0x0a, 0x41, 0x51, 0x41, 0x2b, 0x30, 0x68, 0x79, 0x4a, 0x4c, 0x6a, 0x58, 0x38, 0x2b, 0x48, 0x58, 0x64, 0x35, 0x6e, 0x39, 0x6c, 0x69, 0x50, 0x52, 0x79, 0x54, 0x4d, 0x6b, 0x73, 0x31, 0x7a, 0x4a, 0x4f, 0x38, 0x39, 0x30, 0x5a, 0x65, 0x55, 0x65, 0x39, 0x6a, 0x6a, 0x74, 0x62, 0x6b, 0x77, 0x39, 0x51, 0x53, 0x53, 0x51, 0x54, 0x61, 0x78, 0x51, 0x47, 0x63, 0x75, 0x38, 0x4a, 0x30, 0x36, 0x47, 0x68, 0x34, 0x30, 0x43, 0x45, 0x79, 0x65, 0x63, 0x59, 0x4d, 0x6e, 0x51, 0x38, 0x0a, 0x53, 0x47, 0x34, 0x50, 0x6e, 0x30, 0x76, 0x55, 0x39, 0x78, 0x37, 0x54, 0x6b, 0x34, 0x5a, 0x6b, 0x56, 0x4a, 0x64, 0x6a, 0x63, 0x6c, 0x44, 0x56, 0x56, 0x63, 0x2f, 0x36, 0x49, 0x4a, 0x4d, 0x43, 0x6f, 0x70, 0x76, 0x44, 0x49, 0x35, 0x4e, 0x4f, 0x46, 0x6c, 0x56, 0x32, 0x6f, 0x48, 0x42, 0x35, 0x62, 0x63, 0x30, 0x68, 0x48, 0x38, 0x38, 0x76, 0x4c, 0x62, 0x77, 0x5a, 0x34, 0x34, 0x67, 0x78, 0x2b, 0x46, 0x6b, 0x61, 0x67, 0x51, 0x6e, 0x49, 0x6c, 0x36, 0x5a, 0x30, 0x0a, 0x78, 0x32, 0x44, 0x45, 0x57, 0x38, 0x78, 0x58, 0x6a, 0x72, 0x4a, 0x31, 0x2f, 0x52, 0x73, 0x43, 0x43, 0x64, 0x74, 0x5a, 0x62, 0x33, 0x4b, 0x54, 0x61, 0x66, 0x63, 0x78, 0x51, 0x64, 0x61, 0x49, 0x4f, 0x4c, 0x2b, 0x48, 0x73, 0x72, 0x30, 0x57, 0x65, 0x66, 0x6d, 0x71, 0x35, 0x4c, 0x36, 0x49, 0x4a, 0x64, 0x31, 0x68, 0x4a, 0x79, 0x4d, 0x63, 0x74, 0x54, 0x45, 0x48, 0x42, 0x44, 0x61, 0x30, 0x47, 0x70, 0x43, 0x39, 0x6f, 0x48, 0x52, 0x78, 0x55, 0x49, 0x6c, 0x74, 0x0a, 0x76, 0x42, 0x54, 0x6a, 0x44, 0x34, 0x61, 0x75, 0x38, 0x61, 0x73, 0x2b, 0x78, 0x36, 0x41, 0x4a, 0x7a, 0x4b, 0x4e, 0x49, 0x30, 0x65, 0x44, 0x62, 0x5a, 0x4f, 0x65, 0x53, 0x74, 0x63, 0x2b, 0x76, 0x63, 0x6b, 0x4e, 0x77, 0x69, 0x2f, 0x6e, 0x44, 0x68, 0x44, 0x77, 0x54, 0x71, 0x6e, 0x36, 0x53, 0x6d, 0x31, 0x64, 0x54, 0x6b, 0x2f, 0x70, 0x77, 0x77, 0x70, 0x45, 0x4f, 0x4d, 0x66, 0x6d, 0x62, 0x5a, 0x31, 0x33, 0x70, 0x6c, 0x6a, 0x68, 0x65, 0x58, 0x37, 0x4e, 0x7a, 0x0a, 0x54, 0x6f, 0x67, 0x56, 0x5a, 0x39, 0x36, 0x65, 0x64, 0x68, 0x42, 0x69, 0x49, 0x4c, 0x35, 0x56, 0x61, 0x5a, 0x56, 0x44, 0x41, 0x44, 0x6c, 0x4e, 0x39, 0x75, 0x36, 0x77, 0x57, 0x6b, 0x35, 0x4a, 0x52, 0x46, 0x52, 0x59, 0x58, 0x30, 0x4b, 0x44, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x4e, 0x65, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x20, 0x41, 0x72, 0x61, 0x6e, 0x79, 0x20, 0x28, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x47, 0x6f, 0x6c, 0x64, 0x29, 0x20, 0x46, 0xc5, 0x91, 0x74, 0x61, 0x6e, 0xc3, 0xba, 0x73, 0xc3, 0xad, 0x74, 0x76, 0xc3, 0xa1, 0x6e, 0x79, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x45, 0x46, 0x54, 0x43, 0x43, 0x41, 0x76, 0x32, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x47, 0x53, 0x55, 0x45, 0x73, 0x35, 0x41, 0x41, 0x51, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x43, 0x77, 0x55, 0x41, 0x4d, 0x49, 0x47, 0x6e, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x49, 0x56, 0x54, 0x45, 0x52, 0x4d, 0x41, 0x38, 0x47, 0x0a, 0x41, 0x31, 0x55, 0x45, 0x42, 0x77, 0x77, 0x49, 0x51, 0x6e, 0x56, 0x6b, 0x59, 0x58, 0x42, 0x6c, 0x63, 0x33, 0x51, 0x78, 0x46, 0x54, 0x41, 0x54, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x44, 0x45, 0x35, 0x6c, 0x64, 0x45, 0x78, 0x76, 0x59, 0x32, 0x73, 0x67, 0x53, 0x32, 0x5a, 0x30, 0x4c, 0x6a, 0x45, 0x33, 0x4d, 0x44, 0x55, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x77, 0x77, 0x75, 0x56, 0x47, 0x46, 0x75, 0x77, 0x37, 0x70, 0x7a, 0x77, 0x36, 0x31, 0x30, 0x0a, 0x64, 0x73, 0x4f, 0x68, 0x62, 0x6e, 0x6c, 0x72, 0x61, 0x57, 0x46, 0x6b, 0x77, 0x37, 0x4e, 0x72, 0x49, 0x43, 0x68, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x61, 0x57, 0x5a, 0x70, 0x59, 0x32, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x49, 0x46, 0x4e, 0x6c, 0x63, 0x6e, 0x5a, 0x70, 0x59, 0x32, 0x56, 0x7a, 0x4b, 0x54, 0x45, 0x31, 0x4d, 0x44, 0x4d, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x77, 0x77, 0x73, 0x54, 0x6d, 0x56, 0x30, 0x54, 0x47, 0x39, 0x6a, 0x61, 0x79, 0x42, 0x42, 0x0a, 0x63, 0x6d, 0x46, 0x75, 0x65, 0x53, 0x41, 0x6f, 0x51, 0x32, 0x78, 0x68, 0x63, 0x33, 0x4d, 0x67, 0x52, 0x32, 0x39, 0x73, 0x5a, 0x43, 0x6b, 0x67, 0x52, 0x73, 0x57, 0x52, 0x64, 0x47, 0x46, 0x75, 0x77, 0x37, 0x70, 0x7a, 0x77, 0x36, 0x31, 0x30, 0x64, 0x73, 0x4f, 0x68, 0x62, 0x6e, 0x6b, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x44, 0x67, 0x78, 0x4d, 0x6a, 0x45, 0x78, 0x4d, 0x54, 0x55, 0x77, 0x4f, 0x44, 0x49, 0x78, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x6a, 0x67, 0x78, 0x0a, 0x4d, 0x6a, 0x41, 0x32, 0x4d, 0x54, 0x55, 0x77, 0x4f, 0x44, 0x49, 0x78, 0x57, 0x6a, 0x43, 0x42, 0x70, 0x7a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x53, 0x46, 0x55, 0x78, 0x45, 0x54, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x63, 0x4d, 0x43, 0x45, 0x4a, 0x31, 0x5a, 0x47, 0x46, 0x77, 0x5a, 0x58, 0x4e, 0x30, 0x4d, 0x52, 0x55, 0x77, 0x45, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x41, 0x78, 0x4f, 0x0a, 0x5a, 0x58, 0x52, 0x4d, 0x62, 0x32, 0x4e, 0x72, 0x49, 0x45, 0x74, 0x6d, 0x64, 0x43, 0x34, 0x78, 0x4e, 0x7a, 0x41, 0x31, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x73, 0x4d, 0x4c, 0x6c, 0x52, 0x68, 0x62, 0x73, 0x4f, 0x36, 0x63, 0x38, 0x4f, 0x74, 0x64, 0x48, 0x62, 0x44, 0x6f, 0x57, 0x35, 0x35, 0x61, 0x32, 0x6c, 0x68, 0x5a, 0x4d, 0x4f, 0x7a, 0x61, 0x79, 0x41, 0x6f, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x0a, 0x62, 0x69, 0x42, 0x54, 0x5a, 0x58, 0x4a, 0x32, 0x61, 0x57, 0x4e, 0x6c, 0x63, 0x79, 0x6b, 0x78, 0x4e, 0x54, 0x41, 0x7a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x4c, 0x45, 0x35, 0x6c, 0x64, 0x45, 0x78, 0x76, 0x59, 0x32, 0x73, 0x67, 0x51, 0x58, 0x4a, 0x68, 0x62, 0x6e, 0x6b, 0x67, 0x4b, 0x45, 0x4e, 0x73, 0x59, 0x58, 0x4e, 0x7a, 0x49, 0x45, 0x64, 0x76, 0x62, 0x47, 0x51, 0x70, 0x49, 0x45, 0x62, 0x46, 0x6b, 0x58, 0x52, 0x68, 0x62, 0x73, 0x4f, 0x36, 0x0a, 0x63, 0x38, 0x4f, 0x74, 0x64, 0x48, 0x62, 0x44, 0x6f, 0x57, 0x35, 0x35, 0x4d, 0x49, 0x49, 0x42, 0x49, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x45, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x51, 0x38, 0x41, 0x4d, 0x49, 0x49, 0x42, 0x43, 0x67, 0x4b, 0x43, 0x41, 0x51, 0x45, 0x41, 0x78, 0x43, 0x52, 0x65, 0x63, 0x37, 0x35, 0x4c, 0x62, 0x52, 0x54, 0x44, 0x6f, 0x66, 0x54, 0x6a, 0x6c, 0x35, 0x42, 0x75, 0x0a, 0x30, 0x6a, 0x42, 0x46, 0x48, 0x6a, 0x7a, 0x75, 0x5a, 0x39, 0x6c, 0x6b, 0x34, 0x42, 0x71, 0x4b, 0x66, 0x38, 0x6f, 0x77, 0x79, 0x6f, 0x50, 0x6a, 0x49, 0x4d, 0x48, 0x6a, 0x39, 0x44, 0x72, 0x54, 0x6c, 0x46, 0x38, 0x61, 0x66, 0x46, 0x74, 0x74, 0x76, 0x7a, 0x42, 0x50, 0x68, 0x43, 0x66, 0x32, 0x6e, 0x78, 0x39, 0x4a, 0x76, 0x4d, 0x61, 0x5a, 0x43, 0x70, 0x44, 0x79, 0x44, 0x2f, 0x56, 0x2f, 0x51, 0x34, 0x51, 0x33, 0x59, 0x31, 0x47, 0x4c, 0x65, 0x71, 0x56, 0x77, 0x0a, 0x2f, 0x48, 0x70, 0x59, 0x7a, 0x59, 0x36, 0x62, 0x37, 0x63, 0x4e, 0x47, 0x62, 0x49, 0x52, 0x77, 0x58, 0x64, 0x72, 0x7a, 0x41, 0x5a, 0x41, 0x6a, 0x2f, 0x45, 0x34, 0x77, 0x71, 0x58, 0x37, 0x68, 0x4a, 0x32, 0x50, 0x6e, 0x37, 0x57, 0x51, 0x38, 0x6f, 0x4c, 0x6a, 0x4a, 0x4d, 0x32, 0x50, 0x2b, 0x46, 0x70, 0x44, 0x2f, 0x73, 0x4c, 0x6a, 0x39, 0x31, 0x36, 0x6a, 0x41, 0x77, 0x4a, 0x52, 0x44, 0x43, 0x37, 0x62, 0x56, 0x57, 0x61, 0x61, 0x65, 0x56, 0x74, 0x41, 0x6b, 0x0a, 0x48, 0x33, 0x42, 0x35, 0x72, 0x39, 0x73, 0x35, 0x56, 0x41, 0x31, 0x6c, 0x64, 0x64, 0x6b, 0x56, 0x51, 0x5a, 0x51, 0x42, 0x72, 0x31, 0x37, 0x73, 0x39, 0x6f, 0x33, 0x78, 0x2f, 0x36, 0x31, 0x6b, 0x2f, 0x69, 0x43, 0x61, 0x31, 0x31, 0x7a, 0x72, 0x2f, 0x71, 0x59, 0x66, 0x43, 0x47, 0x53, 0x6a, 0x69, 0x33, 0x5a, 0x56, 0x72, 0x52, 0x34, 0x37, 0x4b, 0x47, 0x41, 0x75, 0x68, 0x79, 0x58, 0x6f, 0x71, 0x71, 0x38, 0x66, 0x78, 0x6d, 0x52, 0x47, 0x49, 0x4c, 0x64, 0x77, 0x0a, 0x66, 0x7a, 0x7a, 0x65, 0x53, 0x4e, 0x75, 0x57, 0x55, 0x37, 0x63, 0x35, 0x64, 0x2b, 0x51, 0x61, 0x34, 0x73, 0x63, 0x57, 0x68, 0x48, 0x61, 0x58, 0x57, 0x79, 0x2b, 0x37, 0x47, 0x52, 0x57, 0x46, 0x2b, 0x47, 0x6d, 0x46, 0x39, 0x5a, 0x6d, 0x6e, 0x71, 0x66, 0x49, 0x30, 0x70, 0x36, 0x6d, 0x32, 0x70, 0x67, 0x50, 0x38, 0x62, 0x34, 0x59, 0x39, 0x56, 0x48, 0x78, 0x32, 0x42, 0x4a, 0x74, 0x72, 0x2b, 0x55, 0x42, 0x64, 0x41, 0x44, 0x54, 0x48, 0x4c, 0x70, 0x6c, 0x31, 0x0a, 0x6e, 0x65, 0x57, 0x49, 0x41, 0x36, 0x70, 0x4e, 0x2b, 0x41, 0x50, 0x53, 0x51, 0x6e, 0x62, 0x41, 0x47, 0x77, 0x49, 0x44, 0x41, 0x4b, 0x69, 0x4c, 0x6f, 0x30, 0x55, 0x77, 0x51, 0x7a, 0x41, 0x53, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x43, 0x44, 0x41, 0x47, 0x41, 0x51, 0x48, 0x2f, 0x41, 0x67, 0x45, 0x45, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x0a, 0x42, 0x6a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x7a, 0x50, 0x70, 0x6e, 0x6b, 0x2f, 0x43, 0x32, 0x75, 0x4e, 0x43, 0x6c, 0x77, 0x42, 0x37, 0x7a, 0x55, 0x2f, 0x32, 0x4d, 0x55, 0x39, 0x2b, 0x44, 0x31, 0x35, 0x59, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x45, 0x42, 0x41, 0x4b, 0x74, 0x2f, 0x37, 0x68, 0x77, 0x57, 0x0a, 0x71, 0x5a, 0x77, 0x38, 0x55, 0x51, 0x43, 0x67, 0x77, 0x42, 0x45, 0x49, 0x42, 0x61, 0x65, 0x5a, 0x35, 0x6d, 0x38, 0x42, 0x69, 0x46, 0x52, 0x68, 0x62, 0x76, 0x47, 0x35, 0x47, 0x4b, 0x31, 0x4b, 0x72, 0x66, 0x36, 0x42, 0x51, 0x43, 0x4f, 0x55, 0x4c, 0x2f, 0x74, 0x31, 0x66, 0x43, 0x38, 0x6f, 0x53, 0x32, 0x49, 0x6b, 0x67, 0x59, 0x49, 0x4c, 0x39, 0x57, 0x48, 0x78, 0x48, 0x47, 0x36, 0x34, 0x59, 0x54, 0x6a, 0x72, 0x67, 0x66, 0x70, 0x69, 0x6f, 0x54, 0x74, 0x61, 0x0a, 0x59, 0x74, 0x4f, 0x55, 0x5a, 0x63, 0x54, 0x68, 0x35, 0x6d, 0x32, 0x43, 0x2b, 0x43, 0x38, 0x6c, 0x63, 0x4c, 0x49, 0x68, 0x4a, 0x73, 0x46, 0x79, 0x55, 0x52, 0x2b, 0x4d, 0x4c, 0x4d, 0x4f, 0x45, 0x6b, 0x4d, 0x4e, 0x61, 0x6a, 0x37, 0x72, 0x50, 0x39, 0x4b, 0x64, 0x6c, 0x70, 0x65, 0x75, 0x59, 0x30, 0x66, 0x73, 0x46, 0x73, 0x6b, 0x5a, 0x31, 0x46, 0x53, 0x4e, 0x71, 0x62, 0x34, 0x56, 0x6a, 0x4d, 0x49, 0x44, 0x77, 0x31, 0x5a, 0x34, 0x66, 0x4b, 0x52, 0x7a, 0x43, 0x0a, 0x62, 0x4c, 0x42, 0x51, 0x57, 0x56, 0x32, 0x51, 0x57, 0x7a, 0x75, 0x6f, 0x44, 0x54, 0x44, 0x50, 0x76, 0x33, 0x31, 0x2f, 0x7a, 0x76, 0x47, 0x64, 0x67, 0x37, 0x33, 0x4a, 0x52, 0x6d, 0x34, 0x67, 0x70, 0x76, 0x6c, 0x68, 0x55, 0x62, 0x6f, 0x68, 0x4c, 0x33, 0x75, 0x2b, 0x70, 0x52, 0x56, 0x6a, 0x6f, 0x64, 0x53, 0x56, 0x68, 0x2f, 0x47, 0x65, 0x75, 0x66, 0x4f, 0x4a, 0x38, 0x7a, 0x32, 0x46, 0x75, 0x4c, 0x6a, 0x62, 0x76, 0x72, 0x57, 0x35, 0x4b, 0x66, 0x6e, 0x61, 0x0a, 0x4e, 0x77, 0x55, 0x41, 0x53, 0x5a, 0x51, 0x44, 0x68, 0x45, 0x54, 0x6e, 0x76, 0x30, 0x4d, 0x78, 0x7a, 0x33, 0x57, 0x4c, 0x4a, 0x64, 0x48, 0x30, 0x70, 0x6d, 0x54, 0x31, 0x6b, 0x76, 0x61, 0x72, 0x42, 0x65, 0x73, 0x39, 0x36, 0x61, 0x55, 0x4c, 0x4e, 0x6d, 0x4c, 0x61, 0x7a, 0x41, 0x5a, 0x66, 0x4e, 0x6f, 0x75, 0x32, 0x58, 0x6a, 0x47, 0x34, 0x4b, 0x76, 0x74, 0x65, 0x39, 0x6e, 0x48, 0x66, 0x52, 0x43, 0x61, 0x65, 0x78, 0x4f, 0x59, 0x4e, 0x6b, 0x62, 0x51, 0x75, 0x0a, 0x64, 0x5a, 0x57, 0x41, 0x55, 0x57, 0x70, 0x4c, 0x4d, 0x4b, 0x61, 0x77, 0x59, 0x71, 0x47, 0x54, 0x38, 0x5a, 0x76, 0x59, 0x7a, 0x73, 0x52, 0x6a, 0x64, 0x54, 0x39, 0x5a, 0x52, 0x37, 0x45, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x41, 0x31, 0x31, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x44, 0x62, 0x54, 0x43, 0x43, 0x41, 0x6c, 0x57, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x42, 0x41, 0x54, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x55, 0x46, 0x41, 0x44, 0x42, 0x59, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x4b, 0x55, 0x44, 0x45, 0x72, 0x4d, 0x43, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x69, 0x0a, 0x53, 0x6d, 0x46, 0x77, 0x59, 0x57, 0x34, 0x67, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x69, 0x42, 0x54, 0x5a, 0x58, 0x4a, 0x32, 0x61, 0x57, 0x4e, 0x6c, 0x63, 0x79, 0x77, 0x67, 0x53, 0x57, 0x35, 0x6a, 0x4c, 0x6a, 0x45, 0x63, 0x4d, 0x42, 0x6f, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x54, 0x55, 0x32, 0x56, 0x6a, 0x64, 0x58, 0x4a, 0x6c, 0x55, 0x32, 0x6c, 0x6e, 0x62, 0x69, 0x42, 0x53, 0x0a, 0x62, 0x32, 0x39, 0x30, 0x51, 0x30, 0x45, 0x78, 0x4d, 0x54, 0x41, 0x65, 0x46, 0x77, 0x30, 0x77, 0x4f, 0x54, 0x41, 0x30, 0x4d, 0x44, 0x67, 0x77, 0x4e, 0x44, 0x55, 0x32, 0x4e, 0x44, 0x64, 0x61, 0x46, 0x77, 0x30, 0x79, 0x4f, 0x54, 0x41, 0x30, 0x4d, 0x44, 0x67, 0x77, 0x4e, 0x44, 0x55, 0x32, 0x4e, 0x44, 0x64, 0x61, 0x4d, 0x46, 0x67, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6b, 0x70, 0x51, 0x4d, 0x53, 0x73, 0x77, 0x0a, 0x4b, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x79, 0x4a, 0x4b, 0x59, 0x58, 0x42, 0x68, 0x62, 0x69, 0x42, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x61, 0x57, 0x5a, 0x70, 0x59, 0x32, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x49, 0x46, 0x4e, 0x6c, 0x63, 0x6e, 0x5a, 0x70, 0x59, 0x32, 0x56, 0x7a, 0x4c, 0x43, 0x42, 0x4a, 0x62, 0x6d, 0x4d, 0x75, 0x4d, 0x52, 0x77, 0x77, 0x47, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x4e, 0x54, 0x5a, 0x57, 0x4e, 0x31, 0x0a, 0x63, 0x6d, 0x56, 0x54, 0x61, 0x57, 0x64, 0x75, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x52, 0x44, 0x51, 0x54, 0x45, 0x78, 0x4d, 0x49, 0x49, 0x42, 0x49, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x45, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x51, 0x38, 0x41, 0x4d, 0x49, 0x49, 0x42, 0x43, 0x67, 0x4b, 0x43, 0x41, 0x51, 0x45, 0x41, 0x2f, 0x58, 0x65, 0x71, 0x70, 0x52, 0x79, 0x51, 0x42, 0x54, 0x76, 0x4c, 0x0a, 0x54, 0x4a, 0x73, 0x7a, 0x69, 0x31, 0x6f, 0x55, 0x52, 0x61, 0x54, 0x6e, 0x6b, 0x42, 0x62, 0x52, 0x33, 0x31, 0x66, 0x53, 0x49, 0x52, 0x43, 0x6b, 0x46, 0x2f, 0x33, 0x66, 0x72, 0x4e, 0x59, 0x66, 0x70, 0x2b, 0x54, 0x62, 0x66, 0x50, 0x66, 0x73, 0x33, 0x37, 0x67, 0x44, 0x32, 0x70, 0x52, 0x59, 0x2f, 0x56, 0x31, 0x79, 0x66, 0x49, 0x77, 0x2f, 0x58, 0x77, 0x46, 0x6e, 0x64, 0x42, 0x57, 0x57, 0x34, 0x77, 0x49, 0x38, 0x68, 0x39, 0x75, 0x75, 0x79, 0x77, 0x47, 0x4f, 0x0a, 0x77, 0x76, 0x4e, 0x6d, 0x78, 0x6f, 0x56, 0x46, 0x39, 0x41, 0x4c, 0x47, 0x4f, 0x72, 0x56, 0x69, 0x73, 0x71, 0x2f, 0x36, 0x6e, 0x4c, 0x2b, 0x6b, 0x35, 0x74, 0x53, 0x41, 0x4d, 0x4a, 0x6a, 0x7a, 0x44, 0x62, 0x61, 0x54, 0x6a, 0x36, 0x6e, 0x55, 0x32, 0x44, 0x62, 0x79, 0x73, 0x50, 0x79, 0x4b, 0x79, 0x69, 0x79, 0x68, 0x46, 0x54, 0x4f, 0x56, 0x4d, 0x64, 0x72, 0x41, 0x47, 0x2f, 0x4c, 0x75, 0x59, 0x70, 0x6d, 0x47, 0x59, 0x7a, 0x2b, 0x2f, 0x33, 0x5a, 0x4d, 0x71, 0x0a, 0x67, 0x36, 0x68, 0x32, 0x75, 0x52, 0x4d, 0x66, 0x74, 0x38, 0x35, 0x4f, 0x51, 0x6f, 0x57, 0x50, 0x49, 0x75, 0x63, 0x75, 0x47, 0x76, 0x4b, 0x56, 0x43, 0x62, 0x49, 0x46, 0x74, 0x55, 0x52, 0x4f, 0x64, 0x36, 0x45, 0x67, 0x76, 0x61, 0x6e, 0x79, 0x54, 0x67, 0x70, 0x39, 0x55, 0x4b, 0x33, 0x31, 0x42, 0x51, 0x31, 0x46, 0x54, 0x30, 0x5a, 0x78, 0x2f, 0x53, 0x67, 0x2b, 0x55, 0x2f, 0x73, 0x45, 0x32, 0x43, 0x33, 0x58, 0x5a, 0x52, 0x31, 0x4b, 0x47, 0x2f, 0x72, 0x50, 0x0a, 0x4f, 0x37, 0x41, 0x78, 0x6d, 0x6a, 0x56, 0x75, 0x79, 0x49, 0x73, 0x47, 0x30, 0x77, 0x43, 0x52, 0x38, 0x70, 0x51, 0x49, 0x5a, 0x55, 0x79, 0x78, 0x4e, 0x41, 0x59, 0x41, 0x65, 0x6f, 0x6e, 0x69, 0x38, 0x4d, 0x63, 0x44, 0x57, 0x63, 0x2f, 0x56, 0x31, 0x75, 0x69, 0x6e, 0x4d, 0x72, 0x50, 0x6d, 0x6d, 0x45, 0x43, 0x47, 0x78, 0x63, 0x30, 0x6e, 0x45, 0x6f, 0x76, 0x4d, 0x65, 0x38, 0x36, 0x33, 0x45, 0x54, 0x78, 0x69, 0x59, 0x41, 0x63, 0x6a, 0x50, 0x69, 0x74, 0x41, 0x0a, 0x62, 0x70, 0x53, 0x41, 0x43, 0x57, 0x32, 0x32, 0x73, 0x32, 0x39, 0x33, 0x62, 0x7a, 0x55, 0x49, 0x55, 0x50, 0x73, 0x43, 0x68, 0x38, 0x55, 0x2b, 0x69, 0x51, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x57, 0x2f, 0x68, 0x4e, 0x54, 0x37, 0x4b, 0x6c, 0x68, 0x74, 0x51, 0x36, 0x30, 0x76, 0x46, 0x6a, 0x6d, 0x71, 0x43, 0x2b, 0x43, 0x66, 0x5a, 0x58, 0x0a, 0x74, 0x39, 0x34, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x45, 0x47, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x46, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x45, 0x42, 0x41, 0x4b, 0x43, 0x68, 0x0a, 0x4f, 0x42, 0x5a, 0x6d, 0x4c, 0x71, 0x64, 0x57, 0x48, 0x79, 0x47, 0x63, 0x42, 0x76, 0x6f, 0x64, 0x37, 0x62, 0x6b, 0x69, 0x78, 0x54, 0x67, 0x6d, 0x32, 0x45, 0x35, 0x50, 0x37, 0x4b, 0x4e, 0x2f, 0x65, 0x64, 0x35, 0x47, 0x49, 0x61, 0x47, 0x48, 0x64, 0x34, 0x38, 0x48, 0x43, 0x4a, 0x71, 0x79, 0x70, 0x4d, 0x57, 0x76, 0x44, 0x7a, 0x4b, 0x59, 0x43, 0x33, 0x78, 0x6d, 0x4b, 0x62, 0x61, 0x62, 0x66, 0x53, 0x56, 0x53, 0x53, 0x55, 0x4f, 0x72, 0x54, 0x43, 0x34, 0x72, 0x0a, 0x62, 0x6e, 0x70, 0x77, 0x72, 0x78, 0x59, 0x4f, 0x34, 0x77, 0x4a, 0x73, 0x2b, 0x30, 0x4c, 0x6d, 0x47, 0x4a, 0x31, 0x46, 0x32, 0x46, 0x58, 0x49, 0x36, 0x44, 0x76, 0x64, 0x35, 0x2b, 0x48, 0x30, 0x4c, 0x67, 0x73, 0x63, 0x4e, 0x46, 0x78, 0x73, 0x57, 0x45, 0x72, 0x37, 0x6a, 0x49, 0x68, 0x51, 0x58, 0x35, 0x55, 0x63, 0x76, 0x2b, 0x32, 0x72, 0x49, 0x72, 0x56, 0x6c, 0x73, 0x34, 0x57, 0x36, 0x6e, 0x67, 0x2b, 0x34, 0x72, 0x65, 0x56, 0x36, 0x47, 0x34, 0x70, 0x51, 0x0a, 0x4f, 0x68, 0x32, 0x39, 0x44, 0x62, 0x78, 0x37, 0x56, 0x46, 0x41, 0x4c, 0x75, 0x55, 0x4b, 0x76, 0x56, 0x61, 0x41, 0x59, 0x67, 0x61, 0x31, 0x6c, 0x6d, 0x65, 0x2b, 0x2b, 0x35, 0x4a, 0x79, 0x2f, 0x78, 0x49, 0x57, 0x72, 0x51, 0x62, 0x4a, 0x55, 0x62, 0x39, 0x77, 0x6c, 0x7a, 0x65, 0x31, 0x34, 0x34, 0x6f, 0x34, 0x4d, 0x6a, 0x51, 0x6c, 0x4a, 0x33, 0x57, 0x4e, 0x37, 0x57, 0x6d, 0x6d, 0x57, 0x41, 0x69, 0x47, 0x6f, 0x76, 0x56, 0x4a, 0x5a, 0x36, 0x58, 0x30, 0x31, 0x0a, 0x79, 0x38, 0x68, 0x53, 0x79, 0x6e, 0x2b, 0x42, 0x2f, 0x74, 0x6c, 0x72, 0x30, 0x2f, 0x63, 0x52, 0x37, 0x53, 0x58, 0x66, 0x2b, 0x4f, 0x66, 0x35, 0x70, 0x50, 0x70, 0x79, 0x6c, 0x34, 0x52, 0x54, 0x44, 0x61, 0x58, 0x51, 0x4d, 0x68, 0x68, 0x52, 0x64, 0x6c, 0x6b, 0x55, 0x62, 0x41, 0x2f, 0x72, 0x37, 0x46, 0x2b, 0x41, 0x6a, 0x48, 0x56, 0x44, 0x67, 0x38, 0x4f, 0x46, 0x6d, 0x50, 0x39, 0x4d, 0x6e, 0x69, 0x30, 0x4e, 0x35, 0x48, 0x65, 0x44, 0x6b, 0x30, 0x36, 0x31, 0x0a, 0x6c, 0x67, 0x65, 0x4c, 0x4b, 0x42, 0x4f, 0x62, 0x6a, 0x42, 0x6d, 0x4e, 0x51, 0x53, 0x64, 0x4a, 0x51, 0x4f, 0x37, 0x65, 0x35, 0x69, 0x4e, 0x45, 0x4f, 0x64, 0x79, 0x68, 0x49, 0x74, 0x61, 0x36, 0x41, 0x2f, 0x49, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x20, 0x65, 0x2d, 0x53, 0x7a, 0x69, 0x67, 0x6e, 0x6f, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x32, 0x30, 0x30, 0x39, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x45, 0x43, 0x6a, 0x43, 0x43, 0x41, 0x76, 0x4b, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4a, 0x41, 0x4d, 0x4a, 0x2b, 0x51, 0x77, 0x52, 0x4f, 0x52, 0x7a, 0x38, 0x5a, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x43, 0x77, 0x55, 0x41, 0x4d, 0x49, 0x47, 0x43, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x49, 0x56, 0x54, 0x45, 0x52, 0x0a, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x77, 0x77, 0x49, 0x51, 0x6e, 0x56, 0x6b, 0x59, 0x58, 0x42, 0x6c, 0x63, 0x33, 0x51, 0x78, 0x46, 0x6a, 0x41, 0x55, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x44, 0x55, 0x31, 0x70, 0x59, 0x33, 0x4a, 0x76, 0x63, 0x32, 0x56, 0x6a, 0x49, 0x45, 0x78, 0x30, 0x5a, 0x43, 0x34, 0x78, 0x4a, 0x7a, 0x41, 0x6c, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x48, 0x6b, 0x31, 0x70, 0x59, 0x33, 0x4a, 0x76, 0x0a, 0x63, 0x32, 0x56, 0x6a, 0x49, 0x47, 0x55, 0x74, 0x55, 0x33, 0x70, 0x70, 0x5a, 0x32, 0x35, 0x76, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x67, 0x4d, 0x6a, 0x41, 0x77, 0x4f, 0x54, 0x45, 0x66, 0x4d, 0x42, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x4a, 0x41, 0x52, 0x59, 0x51, 0x61, 0x57, 0x35, 0x6d, 0x62, 0x30, 0x42, 0x6c, 0x4c, 0x58, 0x4e, 0x36, 0x61, 0x57, 0x64, 0x75, 0x62, 0x79, 0x35, 0x6f, 0x0a, 0x64, 0x54, 0x41, 0x65, 0x46, 0x77, 0x30, 0x77, 0x4f, 0x54, 0x41, 0x32, 0x4d, 0x54, 0x59, 0x78, 0x4d, 0x54, 0x4d, 0x77, 0x4d, 0x54, 0x68, 0x61, 0x46, 0x77, 0x30, 0x79, 0x4f, 0x54, 0x45, 0x79, 0x4d, 0x7a, 0x41, 0x78, 0x4d, 0x54, 0x4d, 0x77, 0x4d, 0x54, 0x68, 0x61, 0x4d, 0x49, 0x47, 0x43, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x49, 0x56, 0x54, 0x45, 0x52, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x45, 0x0a, 0x42, 0x77, 0x77, 0x49, 0x51, 0x6e, 0x56, 0x6b, 0x59, 0x58, 0x42, 0x6c, 0x63, 0x33, 0x51, 0x78, 0x46, 0x6a, 0x41, 0x55, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x44, 0x55, 0x31, 0x70, 0x59, 0x33, 0x4a, 0x76, 0x63, 0x32, 0x56, 0x6a, 0x49, 0x45, 0x78, 0x30, 0x5a, 0x43, 0x34, 0x78, 0x4a, 0x7a, 0x41, 0x6c, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x48, 0x6b, 0x31, 0x70, 0x59, 0x33, 0x4a, 0x76, 0x63, 0x32, 0x56, 0x6a, 0x49, 0x47, 0x55, 0x74, 0x0a, 0x55, 0x33, 0x70, 0x70, 0x5a, 0x32, 0x35, 0x76, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x67, 0x4d, 0x6a, 0x41, 0x77, 0x4f, 0x54, 0x45, 0x66, 0x4d, 0x42, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x4a, 0x41, 0x52, 0x59, 0x51, 0x61, 0x57, 0x35, 0x6d, 0x62, 0x30, 0x42, 0x6c, 0x4c, 0x58, 0x4e, 0x36, 0x61, 0x57, 0x64, 0x75, 0x62, 0x79, 0x35, 0x6f, 0x64, 0x54, 0x43, 0x43, 0x41, 0x53, 0x49, 0x77, 0x0a, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x45, 0x50, 0x41, 0x44, 0x43, 0x43, 0x41, 0x51, 0x6f, 0x43, 0x67, 0x67, 0x45, 0x42, 0x41, 0x4f, 0x6e, 0x34, 0x6a, 0x2f, 0x4e, 0x6a, 0x72, 0x64, 0x71, 0x47, 0x32, 0x4b, 0x66, 0x67, 0x51, 0x76, 0x76, 0x50, 0x6b, 0x64, 0x36, 0x6d, 0x4a, 0x76, 0x69, 0x5a, 0x70, 0x57, 0x4e, 0x77, 0x72, 0x5a, 0x75, 0x75, 0x79, 0x6a, 0x4e, 0x41, 0x0a, 0x66, 0x57, 0x32, 0x57, 0x62, 0x71, 0x45, 0x4f, 0x52, 0x4f, 0x37, 0x68, 0x45, 0x35, 0x32, 0x55, 0x51, 0x6c, 0x4b, 0x61, 0x76, 0x58, 0x57, 0x46, 0x64, 0x43, 0x79, 0x6f, 0x44, 0x68, 0x32, 0x54, 0x74, 0x68, 0x69, 0x33, 0x6a, 0x43, 0x79, 0x6f, 0x7a, 0x2f, 0x74, 0x63, 0x63, 0x62, 0x6e, 0x61, 0x37, 0x50, 0x37, 0x6f, 0x66, 0x6f, 0x2f, 0x6b, 0x4c, 0x78, 0x32, 0x79, 0x71, 0x48, 0x57, 0x48, 0x32, 0x4c, 0x65, 0x68, 0x35, 0x54, 0x76, 0x50, 0x6d, 0x55, 0x70, 0x47, 0x0a, 0x30, 0x49, 0x4d, 0x5a, 0x66, 0x63, 0x43, 0x68, 0x45, 0x68, 0x79, 0x56, 0x62, 0x55, 0x72, 0x30, 0x32, 0x4d, 0x65, 0x6c, 0x54, 0x54, 0x4d, 0x75, 0x68, 0x54, 0x6c, 0x41, 0x64, 0x58, 0x34, 0x55, 0x66, 0x49, 0x41, 0x53, 0x6d, 0x46, 0x44, 0x48, 0x51, 0x57, 0x65, 0x34, 0x6f, 0x49, 0x42, 0x68, 0x56, 0x4b, 0x5a, 0x73, 0x54, 0x68, 0x2f, 0x67, 0x6e, 0x51, 0x34, 0x48, 0x36, 0x63, 0x6d, 0x36, 0x4d, 0x2b, 0x66, 0x2b, 0x77, 0x46, 0x55, 0x6f, 0x4c, 0x41, 0x4b, 0x41, 0x0a, 0x70, 0x78, 0x6e, 0x31, 0x6e, 0x74, 0x78, 0x56, 0x55, 0x77, 0x4f, 0x58, 0x65, 0x77, 0x64, 0x49, 0x2f, 0x35, 0x6e, 0x37, 0x4e, 0x34, 0x6f, 0x6b, 0x78, 0x46, 0x6e, 0x4d, 0x55, 0x42, 0x42, 0x6a, 0x6a, 0x71, 0x71, 0x70, 0x47, 0x72, 0x43, 0x45, 0x47, 0x6f, 0x62, 0x35, 0x58, 0x37, 0x75, 0x78, 0x55, 0x47, 0x36, 0x6b, 0x30, 0x51, 0x72, 0x4d, 0x31, 0x58, 0x46, 0x2b, 0x48, 0x36, 0x63, 0x62, 0x66, 0x50, 0x56, 0x54, 0x62, 0x69, 0x4a, 0x66, 0x79, 0x79, 0x76, 0x6d, 0x0a, 0x31, 0x48, 0x78, 0x64, 0x72, 0x74, 0x62, 0x43, 0x78, 0x6b, 0x7a, 0x6c, 0x42, 0x51, 0x48, 0x5a, 0x37, 0x56, 0x66, 0x38, 0x77, 0x53, 0x4e, 0x35, 0x2f, 0x50, 0x72, 0x49, 0x4a, 0x49, 0x4f, 0x56, 0x38, 0x37, 0x56, 0x71, 0x55, 0x51, 0x48, 0x51, 0x64, 0x39, 0x62, 0x70, 0x45, 0x71, 0x48, 0x35, 0x47, 0x6f, 0x50, 0x37, 0x67, 0x68, 0x75, 0x35, 0x73, 0x4a, 0x66, 0x30, 0x64, 0x67, 0x59, 0x7a, 0x51, 0x30, 0x6d, 0x67, 0x2f, 0x77, 0x75, 0x31, 0x2b, 0x72, 0x55, 0x43, 0x0a, 0x41, 0x77, 0x45, 0x41, 0x41, 0x61, 0x4f, 0x42, 0x67, 0x44, 0x42, 0x2b, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x45, 0x47, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x54, 0x4c, 0x44, 0x38, 0x62, 0x66, 0x0a, 0x51, 0x6b, 0x50, 0x4d, 0x50, 0x63, 0x75, 0x31, 0x53, 0x43, 0x4f, 0x68, 0x47, 0x6e, 0x71, 0x6d, 0x4b, 0x72, 0x73, 0x30, 0x61, 0x44, 0x41, 0x66, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x53, 0x4d, 0x45, 0x47, 0x44, 0x41, 0x57, 0x67, 0x42, 0x54, 0x4c, 0x44, 0x38, 0x62, 0x66, 0x51, 0x6b, 0x50, 0x4d, 0x50, 0x63, 0x75, 0x31, 0x53, 0x43, 0x4f, 0x68, 0x47, 0x6e, 0x71, 0x6d, 0x4b, 0x72, 0x73, 0x30, 0x61, 0x44, 0x41, 0x62, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x45, 0x45, 0x0a, 0x46, 0x44, 0x41, 0x53, 0x67, 0x52, 0x42, 0x70, 0x62, 0x6d, 0x5a, 0x76, 0x51, 0x47, 0x55, 0x74, 0x63, 0x33, 0x70, 0x70, 0x5a, 0x32, 0x35, 0x76, 0x4c, 0x6d, 0x68, 0x31, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x43, 0x77, 0x55, 0x41, 0x41, 0x34, 0x49, 0x42, 0x41, 0x51, 0x44, 0x4a, 0x30, 0x51, 0x35, 0x65, 0x4c, 0x74, 0x58, 0x4d, 0x73, 0x33, 0x77, 0x2b, 0x79, 0x2f, 0x77, 0x39, 0x2f, 0x77, 0x30, 0x6f, 0x0a, 0x6c, 0x5a, 0x4d, 0x45, 0x79, 0x4c, 0x2f, 0x61, 0x7a, 0x58, 0x6d, 0x34, 0x51, 0x35, 0x44, 0x77, 0x70, 0x4c, 0x37, 0x76, 0x38, 0x75, 0x38, 0x68, 0x6d, 0x4c, 0x7a, 0x55, 0x31, 0x46, 0x30, 0x47, 0x39, 0x75, 0x35, 0x43, 0x37, 0x44, 0x42, 0x73, 0x6f, 0x4b, 0x71, 0x70, 0x79, 0x76, 0x47, 0x76, 0x69, 0x76, 0x6f, 0x2f, 0x43, 0x33, 0x4e, 0x71, 0x50, 0x75, 0x6f, 0x75, 0x51, 0x48, 0x34, 0x66, 0x72, 0x6c, 0x52, 0x68, 0x65, 0x65, 0x73, 0x75, 0x43, 0x44, 0x66, 0x58, 0x0a, 0x49, 0x2f, 0x4f, 0x4d, 0x6e, 0x37, 0x34, 0x64, 0x73, 0x65, 0x47, 0x6b, 0x64, 0x64, 0x75, 0x67, 0x34, 0x6c, 0x51, 0x55, 0x73, 0x62, 0x6f, 0x63, 0x4b, 0x61, 0x51, 0x59, 0x39, 0x68, 0x4b, 0x36, 0x6f, 0x68, 0x51, 0x55, 0x34, 0x7a, 0x45, 0x31, 0x79, 0x45, 0x44, 0x2f, 0x74, 0x2b, 0x41, 0x46, 0x64, 0x6c, 0x66, 0x42, 0x48, 0x46, 0x6e, 0x79, 0x2b, 0x4c, 0x2f, 0x6b, 0x37, 0x53, 0x56, 0x69, 0x58, 0x49, 0x54, 0x77, 0x66, 0x6e, 0x34, 0x66, 0x73, 0x37, 0x37, 0x35, 0x0a, 0x74, 0x79, 0x45, 0x52, 0x7a, 0x41, 0x4d, 0x42, 0x56, 0x6e, 0x43, 0x6e, 0x45, 0x4a, 0x49, 0x65, 0x47, 0x7a, 0x53, 0x42, 0x48, 0x71, 0x32, 0x63, 0x47, 0x73, 0x4d, 0x45, 0x50, 0x4f, 0x30, 0x43, 0x59, 0x64, 0x59, 0x65, 0x42, 0x76, 0x4e, 0x66, 0x4f, 0x6f, 0x66, 0x79, 0x4b, 0x2f, 0x46, 0x46, 0x68, 0x2b, 0x55, 0x39, 0x72, 0x4e, 0x48, 0x48, 0x56, 0x34, 0x53, 0x39, 0x61, 0x36, 0x37, 0x63, 0x32, 0x50, 0x6d, 0x32, 0x47, 0x32, 0x4a, 0x77, 0x43, 0x7a, 0x30, 0x32, 0x0a, 0x79, 0x55, 0x4c, 0x79, 0x4d, 0x74, 0x64, 0x36, 0x59, 0x65, 0x62, 0x53, 0x32, 0x7a, 0x33, 0x50, 0x79, 0x4b, 0x6e, 0x4a, 0x6d, 0x39, 0x7a, 0x62, 0x57, 0x45, 0x54, 0x58, 0x62, 0x7a, 0x69, 0x76, 0x66, 0x33, 0x6a, 0x54, 0x6f, 0x36, 0x30, 0x61, 0x64, 0x62, 0x6f, 0x63, 0x77, 0x54, 0x5a, 0x38, 0x6a, 0x78, 0x35, 0x74, 0x48, 0x4d, 0x4e, 0x31, 0x52, 0x71, 0x34, 0x31, 0x42, 0x61, 0x62, 0x32, 0x58, 0x44, 0x30, 0x68, 0x37, 0x6c, 0x62, 0x77, 0x79, 0x59, 0x49, 0x69, 0x0a, 0x4c, 0x58, 0x70, 0x55, 0x71, 0x33, 0x44, 0x44, 0x66, 0x53, 0x4a, 0x6c, 0x67, 0x6e, 0x43, 0x57, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x52, 0x33, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x44, 0x58, 0x7a, 0x43, 0x43, 0x41, 0x6b, 0x65, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4c, 0x42, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x42, 0x49, 0x56, 0x68, 0x54, 0x43, 0x4b, 0x49, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x77, 0x54, 0x44, 0x45, 0x67, 0x4d, 0x42, 0x34, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x78, 0x4d, 0x58, 0x52, 0x32, 0x78, 0x76, 0x0a, 0x59, 0x6d, 0x46, 0x73, 0x55, 0x32, 0x6c, 0x6e, 0x62, 0x69, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x42, 0x49, 0x43, 0x30, 0x67, 0x55, 0x6a, 0x4d, 0x78, 0x45, 0x7a, 0x41, 0x52, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x43, 0x6b, 0x64, 0x73, 0x62, 0x32, 0x4a, 0x68, 0x62, 0x46, 0x4e, 0x70, 0x5a, 0x32, 0x34, 0x78, 0x45, 0x7a, 0x41, 0x52, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x43, 0x6b, 0x64, 0x73, 0x62, 0x32, 0x4a, 0x68, 0x0a, 0x62, 0x46, 0x4e, 0x70, 0x5a, 0x32, 0x34, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x44, 0x6b, 0x77, 0x4d, 0x7a, 0x45, 0x34, 0x4d, 0x54, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x6a, 0x6b, 0x77, 0x4d, 0x7a, 0x45, 0x34, 0x4d, 0x54, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x6a, 0x42, 0x4d, 0x4d, 0x53, 0x41, 0x77, 0x48, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x78, 0x64, 0x48, 0x62, 0x47, 0x39, 0x69, 0x59, 0x57, 0x78, 0x54, 0x0a, 0x61, 0x57, 0x64, 0x75, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x67, 0x4c, 0x53, 0x42, 0x53, 0x4d, 0x7a, 0x45, 0x54, 0x4d, 0x42, 0x45, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x4b, 0x52, 0x32, 0x78, 0x76, 0x59, 0x6d, 0x46, 0x73, 0x55, 0x32, 0x6c, 0x6e, 0x62, 0x6a, 0x45, 0x54, 0x4d, 0x42, 0x45, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x4b, 0x52, 0x32, 0x78, 0x76, 0x59, 0x6d, 0x46, 0x73, 0x55, 0x32, 0x6c, 0x6e, 0x0a, 0x62, 0x6a, 0x43, 0x43, 0x41, 0x53, 0x49, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x45, 0x50, 0x41, 0x44, 0x43, 0x43, 0x41, 0x51, 0x6f, 0x43, 0x67, 0x67, 0x45, 0x42, 0x41, 0x4d, 0x77, 0x6c, 0x64, 0x70, 0x42, 0x35, 0x42, 0x6e, 0x67, 0x69, 0x46, 0x76, 0x58, 0x41, 0x67, 0x37, 0x61, 0x45, 0x79, 0x69, 0x69, 0x65, 0x2f, 0x51, 0x56, 0x32, 0x45, 0x63, 0x57, 0x74, 0x0a, 0x69, 0x48, 0x4c, 0x38, 0x52, 0x67, 0x4a, 0x44, 0x78, 0x37, 0x4b, 0x4b, 0x6e, 0x51, 0x52, 0x66, 0x4a, 0x4d, 0x73, 0x75, 0x53, 0x2b, 0x46, 0x67, 0x67, 0x6b, 0x62, 0x68, 0x55, 0x71, 0x73, 0x4d, 0x67, 0x55, 0x64, 0x77, 0x62, 0x4e, 0x31, 0x6b, 0x30, 0x65, 0x76, 0x31, 0x4c, 0x4b, 0x4d, 0x50, 0x67, 0x6a, 0x30, 0x4d, 0x4b, 0x36, 0x36, 0x58, 0x31, 0x37, 0x59, 0x55, 0x68, 0x68, 0x42, 0x35, 0x75, 0x7a, 0x73, 0x54, 0x67, 0x48, 0x65, 0x4d, 0x43, 0x4f, 0x46, 0x4a, 0x0a, 0x30, 0x6d, 0x70, 0x69, 0x4c, 0x78, 0x39, 0x65, 0x2b, 0x70, 0x5a, 0x6f, 0x33, 0x34, 0x6b, 0x6e, 0x6c, 0x54, 0x69, 0x66, 0x42, 0x74, 0x63, 0x2b, 0x79, 0x63, 0x73, 0x6d, 0x57, 0x51, 0x31, 0x7a, 0x33, 0x72, 0x44, 0x49, 0x36, 0x53, 0x59, 0x4f, 0x67, 0x78, 0x58, 0x47, 0x37, 0x31, 0x75, 0x4c, 0x30, 0x67, 0x52, 0x67, 0x79, 0x6b, 0x6d, 0x6d, 0x4b, 0x50, 0x5a, 0x70, 0x4f, 0x2f, 0x62, 0x4c, 0x79, 0x43, 0x69, 0x52, 0x35, 0x5a, 0x32, 0x4b, 0x59, 0x56, 0x63, 0x33, 0x0a, 0x72, 0x48, 0x51, 0x55, 0x33, 0x48, 0x54, 0x67, 0x4f, 0x75, 0x35, 0x79, 0x4c, 0x79, 0x36, 0x63, 0x2b, 0x39, 0x43, 0x37, 0x76, 0x2f, 0x55, 0x39, 0x41, 0x4f, 0x45, 0x47, 0x4d, 0x2b, 0x69, 0x43, 0x4b, 0x36, 0x35, 0x54, 0x70, 0x6a, 0x6f, 0x57, 0x63, 0x34, 0x7a, 0x64, 0x51, 0x51, 0x34, 0x67, 0x4f, 0x73, 0x43, 0x30, 0x70, 0x36, 0x48, 0x70, 0x73, 0x6b, 0x2b, 0x51, 0x4c, 0x6a, 0x4a, 0x67, 0x36, 0x56, 0x66, 0x4c, 0x75, 0x51, 0x53, 0x53, 0x61, 0x47, 0x6a, 0x6c, 0x0a, 0x4f, 0x43, 0x5a, 0x67, 0x64, 0x62, 0x4b, 0x66, 0x64, 0x2f, 0x2b, 0x52, 0x46, 0x4f, 0x2b, 0x75, 0x49, 0x45, 0x6e, 0x38, 0x72, 0x55, 0x41, 0x56, 0x53, 0x4e, 0x45, 0x43, 0x4d, 0x57, 0x45, 0x5a, 0x58, 0x72, 0x69, 0x58, 0x37, 0x36, 0x31, 0x33, 0x74, 0x32, 0x53, 0x61, 0x65, 0x72, 0x39, 0x66, 0x77, 0x52, 0x50, 0x76, 0x6d, 0x32, 0x4c, 0x37, 0x44, 0x57, 0x7a, 0x67, 0x56, 0x47, 0x6b, 0x57, 0x71, 0x51, 0x50, 0x61, 0x62, 0x75, 0x6d, 0x44, 0x6b, 0x33, 0x46, 0x32, 0x0a, 0x78, 0x6d, 0x6d, 0x46, 0x67, 0x68, 0x63, 0x43, 0x41, 0x77, 0x45, 0x41, 0x41, 0x61, 0x4e, 0x43, 0x4d, 0x45, 0x41, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x45, 0x47, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x0a, 0x46, 0x49, 0x2f, 0x77, 0x53, 0x33, 0x2b, 0x6f, 0x4c, 0x6b, 0x55, 0x6b, 0x72, 0x6b, 0x31, 0x51, 0x2b, 0x6d, 0x4f, 0x61, 0x69, 0x39, 0x37, 0x69, 0x33, 0x52, 0x75, 0x38, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x43, 0x77, 0x55, 0x41, 0x41, 0x34, 0x49, 0x42, 0x41, 0x51, 0x42, 0x4c, 0x51, 0x4e, 0x76, 0x41, 0x55, 0x4b, 0x72, 0x2b, 0x79, 0x41, 0x7a, 0x76, 0x39, 0x35, 0x5a, 0x55, 0x52, 0x55, 0x6d, 0x37, 0x0a, 0x6c, 0x67, 0x41, 0x4a, 0x51, 0x61, 0x79, 0x7a, 0x45, 0x34, 0x61, 0x47, 0x4b, 0x41, 0x63, 0x7a, 0x79, 0x6d, 0x76, 0x6d, 0x64, 0x4c, 0x6d, 0x36, 0x41, 0x43, 0x32, 0x75, 0x70, 0x41, 0x72, 0x54, 0x39, 0x66, 0x48, 0x78, 0x44, 0x34, 0x71, 0x2f, 0x63, 0x32, 0x64, 0x4b, 0x67, 0x38, 0x64, 0x45, 0x65, 0x33, 0x6a, 0x67, 0x72, 0x32, 0x35, 0x73, 0x62, 0x77, 0x4d, 0x70, 0x6a, 0x6a, 0x4d, 0x35, 0x52, 0x63, 0x4f, 0x4f, 0x35, 0x4c, 0x6c, 0x58, 0x62, 0x4b, 0x72, 0x38, 0x0a, 0x45, 0x70, 0x62, 0x73, 0x55, 0x38, 0x59, 0x74, 0x35, 0x43, 0x52, 0x73, 0x75, 0x5a, 0x52, 0x6a, 0x2b, 0x39, 0x78, 0x54, 0x61, 0x47, 0x64, 0x57, 0x50, 0x6f, 0x4f, 0x34, 0x7a, 0x7a, 0x55, 0x68, 0x77, 0x38, 0x6c, 0x6f, 0x2f, 0x73, 0x37, 0x61, 0x77, 0x6c, 0x4f, 0x71, 0x7a, 0x4a, 0x43, 0x4b, 0x36, 0x66, 0x42, 0x64, 0x52, 0x6f, 0x79, 0x56, 0x33, 0x58, 0x70, 0x59, 0x4b, 0x42, 0x6f, 0x76, 0x48, 0x64, 0x37, 0x4e, 0x41, 0x44, 0x64, 0x42, 0x6a, 0x2b, 0x31, 0x45, 0x0a, 0x62, 0x64, 0x64, 0x54, 0x4b, 0x4a, 0x64, 0x2b, 0x38, 0x32, 0x63, 0x45, 0x48, 0x68, 0x58, 0x58, 0x69, 0x70, 0x61, 0x30, 0x30, 0x39, 0x35, 0x4d, 0x4a, 0x36, 0x52, 0x4d, 0x47, 0x33, 0x4e, 0x7a, 0x64, 0x76, 0x51, 0x58, 0x6d, 0x63, 0x49, 0x66, 0x65, 0x67, 0x37, 0x6a, 0x4c, 0x51, 0x69, 0x74, 0x43, 0x68, 0x77, 0x73, 0x2f, 0x7a, 0x79, 0x72, 0x56, 0x51, 0x34, 0x50, 0x6b, 0x58, 0x34, 0x32, 0x36, 0x38, 0x4e, 0x58, 0x53, 0x62, 0x37, 0x68, 0x4c, 0x69, 0x31, 0x38, 0x0a, 0x59, 0x49, 0x76, 0x44, 0x51, 0x56, 0x45, 0x54, 0x49, 0x35, 0x33, 0x4f, 0x39, 0x7a, 0x4a, 0x72, 0x6c, 0x41, 0x47, 0x6f, 0x6d, 0x65, 0x63, 0x73, 0x4d, 0x78, 0x38, 0x36, 0x4f, 0x79, 0x58, 0x53, 0x68, 0x6b, 0x44, 0x4f, 0x4f, 0x79, 0x79, 0x47, 0x65, 0x4d, 0x6c, 0x68, 0x4c, 0x78, 0x53, 0x36, 0x37, 0x74, 0x74, 0x56, 0x62, 0x39, 0x2b, 0x45, 0x37, 0x67, 0x55, 0x4a, 0x54, 0x62, 0x30, 0x6f, 0x32, 0x48, 0x4c, 0x4f, 0x30, 0x32, 0x4a, 0x51, 0x5a, 0x52, 0x37, 0x72, 0x0a, 0x6b, 0x70, 0x65, 0x44, 0x4d, 0x64, 0x6d, 0x7a, 0x74, 0x63, 0x70, 0x48, 0x57, 0x44, 0x39, 0x66, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x49, 0x7a, 0x65, 0x6e, 0x70, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x38, 0x54, 0x43, 0x43, 0x41, 0x39, 0x6d, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x41, 0x4c, 0x43, 0x33, 0x57, 0x68, 0x5a, 0x49, 0x58, 0x37, 0x2f, 0x68, 0x79, 0x2f, 0x57, 0x4c, 0x31, 0x78, 0x6e, 0x6d, 0x66, 0x54, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x44, 0x41, 0x34, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x0a, 0x45, 0x77, 0x4a, 0x46, 0x55, 0x7a, 0x45, 0x55, 0x4d, 0x42, 0x49, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x4c, 0x53, 0x56, 0x70, 0x46, 0x54, 0x6c, 0x42, 0x46, 0x49, 0x46, 0x4d, 0x75, 0x51, 0x53, 0x34, 0x78, 0x45, 0x7a, 0x41, 0x52, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x43, 0x6b, 0x6c, 0x36, 0x5a, 0x57, 0x35, 0x77, 0x5a, 0x53, 0x35, 0x6a, 0x62, 0x32, 0x30, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x44, 0x63, 0x78, 0x4d, 0x6a, 0x45, 0x7a, 0x0a, 0x4d, 0x54, 0x4d, 0x77, 0x4f, 0x44, 0x49, 0x34, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x7a, 0x63, 0x78, 0x4d, 0x6a, 0x45, 0x7a, 0x4d, 0x44, 0x67, 0x79, 0x4e, 0x7a, 0x49, 0x31, 0x57, 0x6a, 0x41, 0x34, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x46, 0x55, 0x7a, 0x45, 0x55, 0x4d, 0x42, 0x49, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x4c, 0x53, 0x56, 0x70, 0x46, 0x54, 0x6c, 0x42, 0x46, 0x49, 0x46, 0x4d, 0x75, 0x0a, 0x51, 0x53, 0x34, 0x78, 0x45, 0x7a, 0x41, 0x52, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x43, 0x6b, 0x6c, 0x36, 0x5a, 0x57, 0x35, 0x77, 0x5a, 0x53, 0x35, 0x6a, 0x62, 0x32, 0x30, 0x77, 0x67, 0x67, 0x49, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x49, 0x4b, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x44, 0x4a, 0x0a, 0x30, 0x33, 0x72, 0x4b, 0x44, 0x78, 0x36, 0x73, 0x70, 0x34, 0x62, 0x6f, 0x46, 0x6d, 0x56, 0x71, 0x73, 0x63, 0x49, 0x62, 0x52, 0x54, 0x4a, 0x78, 0x6c, 0x64, 0x6e, 0x2b, 0x45, 0x46, 0x76, 0x4d, 0x72, 0x2b, 0x65, 0x6c, 0x65, 0x51, 0x47, 0x50, 0x69, 0x63, 0x50, 0x4b, 0x38, 0x6c, 0x56, 0x78, 0x39, 0x33, 0x65, 0x2b, 0x64, 0x35, 0x54, 0x7a, 0x63, 0x71, 0x51, 0x73, 0x52, 0x4e, 0x69, 0x65, 0x6b, 0x70, 0x73, 0x55, 0x4f, 0x71, 0x48, 0x6e, 0x4a, 0x4a, 0x41, 0x4b, 0x0a, 0x43, 0x6c, 0x61, 0x4f, 0x78, 0x64, 0x67, 0x6d, 0x6c, 0x4f, 0x48, 0x5a, 0x53, 0x4f, 0x45, 0x74, 0x50, 0x74, 0x6f, 0x4b, 0x63, 0x74, 0x32, 0x6a, 0x6d, 0x52, 0x58, 0x61, 0x67, 0x61, 0x4b, 0x48, 0x39, 0x48, 0x74, 0x75, 0x4a, 0x6e, 0x65, 0x4a, 0x57, 0x4b, 0x33, 0x57, 0x36, 0x77, 0x79, 0x79, 0x51, 0x58, 0x70, 0x7a, 0x62, 0x6d, 0x33, 0x62, 0x65, 0x6e, 0x68, 0x42, 0x36, 0x51, 0x69, 0x49, 0x45, 0x6e, 0x36, 0x48, 0x4c, 0x6d, 0x59, 0x52, 0x59, 0x32, 0x78, 0x55, 0x0a, 0x2b, 0x7a, 0x79, 0x64, 0x63, 0x73, 0x43, 0x38, 0x4c, 0x76, 0x2f, 0x43, 0x74, 0x39, 0x30, 0x4e, 0x64, 0x75, 0x4d, 0x36, 0x31, 0x2f, 0x65, 0x30, 0x61, 0x4c, 0x36, 0x69, 0x39, 0x65, 0x4f, 0x42, 0x62, 0x73, 0x46, 0x47, 0x62, 0x31, 0x32, 0x4e, 0x34, 0x45, 0x33, 0x47, 0x56, 0x46, 0x57, 0x4a, 0x47, 0x6a, 0x4d, 0x78, 0x43, 0x72, 0x46, 0x58, 0x75, 0x61, 0x4f, 0x4b, 0x6d, 0x4d, 0x50, 0x73, 0x4f, 0x7a, 0x54, 0x46, 0x6c, 0x55, 0x46, 0x70, 0x66, 0x6e, 0x58, 0x43, 0x0a, 0x50, 0x43, 0x44, 0x46, 0x59, 0x62, 0x70, 0x52, 0x52, 0x36, 0x41, 0x67, 0x6b, 0x4a, 0x4f, 0x68, 0x6b, 0x45, 0x76, 0x7a, 0x54, 0x6e, 0x79, 0x46, 0x52, 0x56, 0x53, 0x61, 0x30, 0x51, 0x55, 0x6d, 0x51, 0x62, 0x43, 0x31, 0x54, 0x52, 0x30, 0x7a, 0x76, 0x73, 0x51, 0x44, 0x79, 0x43, 0x56, 0x38, 0x77, 0x58, 0x44, 0x62, 0x4f, 0x2f, 0x51, 0x4a, 0x4c, 0x56, 0x51, 0x6e, 0x53, 0x4b, 0x77, 0x76, 0x34, 0x63, 0x53, 0x73, 0x50, 0x73, 0x6a, 0x4c, 0x6b, 0x6b, 0x78, 0x54, 0x0a, 0x4f, 0x54, 0x63, 0x6a, 0x37, 0x4e, 0x4d, 0x42, 0x2b, 0x65, 0x41, 0x4a, 0x52, 0x45, 0x31, 0x4e, 0x5a, 0x4d, 0x44, 0x68, 0x44, 0x56, 0x71, 0x48, 0x49, 0x72, 0x79, 0x74, 0x47, 0x36, 0x50, 0x2b, 0x4a, 0x72, 0x55, 0x56, 0x38, 0x36, 0x66, 0x38, 0x68, 0x42, 0x6e, 0x70, 0x37, 0x4b, 0x47, 0x49, 0x74, 0x45, 0x52, 0x70, 0x68, 0x49, 0x50, 0x7a, 0x69, 0x64, 0x46, 0x30, 0x42, 0x71, 0x6e, 0x4d, 0x43, 0x39, 0x62, 0x43, 0x33, 0x69, 0x65, 0x46, 0x55, 0x43, 0x62, 0x4b, 0x0a, 0x46, 0x37, 0x6a, 0x4a, 0x65, 0x6f, 0x64, 0x57, 0x4c, 0x42, 0x6f, 0x42, 0x48, 0x6d, 0x79, 0x2b, 0x45, 0x36, 0x30, 0x51, 0x72, 0x4c, 0x55, 0x6b, 0x39, 0x54, 0x69, 0x52, 0x6f, 0x64, 0x5a, 0x4c, 0x32, 0x76, 0x47, 0x37, 0x30, 0x74, 0x35, 0x48, 0x74, 0x66, 0x47, 0x38, 0x67, 0x66, 0x5a, 0x5a, 0x61, 0x38, 0x38, 0x5a, 0x55, 0x2b, 0x6d, 0x4e, 0x46, 0x63, 0x74, 0x4b, 0x79, 0x36, 0x6c, 0x76, 0x52, 0x4f, 0x55, 0x62, 0x51, 0x63, 0x2f, 0x68, 0x68, 0x71, 0x66, 0x4b, 0x0a, 0x30, 0x47, 0x71, 0x66, 0x76, 0x45, 0x79, 0x4e, 0x42, 0x6a, 0x4e, 0x61, 0x6f, 0x6f, 0x58, 0x6c, 0x6b, 0x44, 0x57, 0x67, 0x59, 0x6c, 0x77, 0x57, 0x54, 0x76, 0x44, 0x6a, 0x6f, 0x76, 0x6f, 0x44, 0x47, 0x72, 0x51, 0x73, 0x63, 0x62, 0x4e, 0x59, 0x4c, 0x4e, 0x35, 0x37, 0x43, 0x39, 0x73, 0x61, 0x44, 0x2b, 0x76, 0x65, 0x49, 0x52, 0x38, 0x47, 0x64, 0x77, 0x59, 0x44, 0x73, 0x4d, 0x6e, 0x76, 0x6d, 0x66, 0x7a, 0x41, 0x75, 0x55, 0x38, 0x4c, 0x68, 0x69, 0x6a, 0x2b, 0x0a, 0x30, 0x72, 0x6e, 0x71, 0x34, 0x39, 0x71, 0x6c, 0x77, 0x30, 0x64, 0x70, 0x45, 0x75, 0x44, 0x62, 0x38, 0x50, 0x59, 0x5a, 0x69, 0x2b, 0x31, 0x37, 0x63, 0x4e, 0x63, 0x43, 0x31, 0x75, 0x32, 0x48, 0x47, 0x43, 0x67, 0x73, 0x42, 0x43, 0x52, 0x4d, 0x64, 0x2b, 0x52, 0x49, 0x69, 0x68, 0x72, 0x47, 0x4f, 0x35, 0x72, 0x55, 0x44, 0x38, 0x72, 0x36, 0x64, 0x64, 0x49, 0x42, 0x51, 0x46, 0x71, 0x4e, 0x65, 0x62, 0x2b, 0x4c, 0x7a, 0x30, 0x76, 0x50, 0x71, 0x68, 0x62, 0x42, 0x0a, 0x6c, 0x65, 0x53, 0x74, 0x54, 0x49, 0x6f, 0x2b, 0x46, 0x35, 0x48, 0x55, 0x73, 0x57, 0x4c, 0x6c, 0x67, 0x75, 0x57, 0x41, 0x42, 0x4b, 0x51, 0x44, 0x66, 0x6f, 0x32, 0x2f, 0x32, 0x6e, 0x2b, 0x69, 0x44, 0x35, 0x64, 0x50, 0x44, 0x4e, 0x4d, 0x4e, 0x2b, 0x39, 0x66, 0x52, 0x35, 0x58, 0x4a, 0x2b, 0x48, 0x4d, 0x68, 0x33, 0x2f, 0x31, 0x75, 0x61, 0x44, 0x37, 0x65, 0x75, 0x42, 0x55, 0x62, 0x6c, 0x38, 0x61, 0x67, 0x57, 0x37, 0x45, 0x65, 0x6b, 0x46, 0x77, 0x49, 0x44, 0x0a, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x34, 0x48, 0x32, 0x4d, 0x49, 0x48, 0x7a, 0x4d, 0x49, 0x47, 0x77, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x45, 0x45, 0x67, 0x61, 0x67, 0x77, 0x67, 0x61, 0x57, 0x42, 0x44, 0x32, 0x6c, 0x75, 0x5a, 0x6d, 0x39, 0x41, 0x61, 0x58, 0x70, 0x6c, 0x62, 0x6e, 0x42, 0x6c, 0x4c, 0x6d, 0x4e, 0x76, 0x62, 0x61, 0x53, 0x42, 0x6b, 0x54, 0x43, 0x42, 0x6a, 0x6a, 0x46, 0x48, 0x4d, 0x45, 0x55, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x2b, 0x0a, 0x53, 0x56, 0x70, 0x46, 0x54, 0x6c, 0x42, 0x46, 0x49, 0x46, 0x4d, 0x75, 0x51, 0x53, 0x34, 0x67, 0x4c, 0x53, 0x42, 0x44, 0x53, 0x55, 0x59, 0x67, 0x51, 0x54, 0x41, 0x78, 0x4d, 0x7a, 0x4d, 0x33, 0x4d, 0x6a, 0x59, 0x77, 0x4c, 0x56, 0x4a, 0x4e, 0x5a, 0x58, 0x4a, 0x6a, 0x4c, 0x6c, 0x5a, 0x70, 0x64, 0x47, 0x39, 0x79, 0x61, 0x57, 0x45, 0x74, 0x52, 0x32, 0x46, 0x7a, 0x64, 0x47, 0x56, 0x70, 0x65, 0x69, 0x42, 0x55, 0x4d, 0x54, 0x41, 0x31, 0x4e, 0x53, 0x42, 0x47, 0x0a, 0x4e, 0x6a, 0x49, 0x67, 0x55, 0x7a, 0x67, 0x78, 0x51, 0x7a, 0x42, 0x42, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6b, 0x4d, 0x4f, 0x6b, 0x46, 0x32, 0x5a, 0x47, 0x45, 0x67, 0x5a, 0x47, 0x56, 0x73, 0x49, 0x45, 0x31, 0x6c, 0x5a, 0x47, 0x6c, 0x30, 0x5a, 0x58, 0x4a, 0x79, 0x59, 0x57, 0x35, 0x6c, 0x62, 0x79, 0x42, 0x46, 0x64, 0x47, 0x39, 0x79, 0x59, 0x6d, 0x6c, 0x6b, 0x5a, 0x57, 0x45, 0x67, 0x4d, 0x54, 0x51, 0x67, 0x4c, 0x53, 0x41, 0x77, 0x4d, 0x54, 0x41, 0x78, 0x0a, 0x4d, 0x43, 0x42, 0x57, 0x61, 0x58, 0x52, 0x76, 0x63, 0x6d, 0x6c, 0x68, 0x4c, 0x55, 0x64, 0x68, 0x63, 0x33, 0x52, 0x6c, 0x61, 0x58, 0x6f, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x51, 0x59, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x0a, 0x42, 0x42, 0x59, 0x45, 0x46, 0x42, 0x30, 0x63, 0x5a, 0x51, 0x36, 0x6f, 0x38, 0x69, 0x56, 0x37, 0x74, 0x4a, 0x48, 0x50, 0x35, 0x4c, 0x47, 0x78, 0x35, 0x72, 0x31, 0x56, 0x64, 0x47, 0x77, 0x46, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x43, 0x77, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x41, 0x51, 0x42, 0x34, 0x70, 0x67, 0x77, 0x57, 0x53, 0x70, 0x39, 0x4d, 0x69, 0x44, 0x72, 0x41, 0x79, 0x77, 0x36, 0x6c, 0x0a, 0x46, 0x6e, 0x32, 0x66, 0x75, 0x55, 0x68, 0x66, 0x47, 0x49, 0x38, 0x4e, 0x59, 0x6a, 0x62, 0x32, 0x7a, 0x52, 0x6c, 0x72, 0x72, 0x4b, 0x76, 0x56, 0x39, 0x70, 0x46, 0x39, 0x72, 0x6e, 0x48, 0x7a, 0x50, 0x37, 0x4d, 0x4f, 0x65, 0x49, 0x57, 0x62, 0x6c, 0x61, 0x51, 0x6e, 0x49, 0x55, 0x64, 0x43, 0x53, 0x6e, 0x78, 0x49, 0x4f, 0x76, 0x56, 0x46, 0x66, 0x4c, 0x4d, 0x4d, 0x6a, 0x6c, 0x46, 0x34, 0x72, 0x4a, 0x55, 0x54, 0x33, 0x73, 0x62, 0x39, 0x66, 0x62, 0x67, 0x61, 0x0a, 0x6b, 0x45, 0x79, 0x72, 0x6b, 0x67, 0x50, 0x48, 0x37, 0x55, 0x49, 0x42, 0x7a, 0x67, 0x2f, 0x59, 0x73, 0x66, 0x71, 0x69, 0x6b, 0x75, 0x46, 0x67, 0x62, 0x61, 0x35, 0x36, 0x61, 0x77, 0x6d, 0x71, 0x78, 0x69, 0x6e, 0x75, 0x61, 0x45, 0x6c, 0x6e, 0x4d, 0x49, 0x41, 0x6b, 0x65, 0x6a, 0x45, 0x57, 0x4f, 0x56, 0x74, 0x2b, 0x38, 0x52, 0x77, 0x75, 0x33, 0x57, 0x77, 0x4a, 0x72, 0x66, 0x49, 0x78, 0x77, 0x59, 0x4a, 0x4f, 0x75, 0x62, 0x76, 0x35, 0x76, 0x72, 0x38, 0x71, 0x0a, 0x68, 0x54, 0x2f, 0x41, 0x51, 0x4b, 0x4d, 0x36, 0x57, 0x66, 0x78, 0x5a, 0x53, 0x7a, 0x77, 0x6f, 0x4a, 0x4e, 0x75, 0x30, 0x46, 0x58, 0x57, 0x75, 0x44, 0x59, 0x69, 0x36, 0x4c, 0x6e, 0x50, 0x41, 0x76, 0x56, 0x69, 0x48, 0x35, 0x55, 0x4c, 0x79, 0x36, 0x31, 0x37, 0x75, 0x48, 0x6a, 0x41, 0x69, 0x6d, 0x63, 0x73, 0x33, 0x30, 0x63, 0x51, 0x68, 0x62, 0x49, 0x48, 0x73, 0x76, 0x6d, 0x30, 0x6d, 0x35, 0x68, 0x7a, 0x6b, 0x51, 0x69, 0x43, 0x65, 0x52, 0x37, 0x43, 0x73, 0x0a, 0x67, 0x31, 0x6c, 0x77, 0x4c, 0x44, 0x58, 0x57, 0x72, 0x7a, 0x59, 0x30, 0x74, 0x4d, 0x30, 0x37, 0x2b, 0x44, 0x4b, 0x6f, 0x37, 0x2b, 0x4e, 0x34, 0x69, 0x66, 0x75, 0x4e, 0x52, 0x53, 0x7a, 0x61, 0x6e, 0x4c, 0x68, 0x2b, 0x51, 0x42, 0x78, 0x68, 0x35, 0x7a, 0x36, 0x69, 0x6b, 0x69, 0x78, 0x4c, 0x38, 0x73, 0x33, 0x36, 0x6d, 0x4c, 0x59, 0x70, 0x2f, 0x2f, 0x50, 0x79, 0x65, 0x36, 0x6b, 0x66, 0x4c, 0x71, 0x43, 0x54, 0x56, 0x79, 0x76, 0x65, 0x68, 0x51, 0x50, 0x35, 0x0a, 0x61, 0x54, 0x66, 0x4c, 0x6e, 0x6e, 0x68, 0x71, 0x42, 0x62, 0x54, 0x46, 0x4d, 0x58, 0x69, 0x4a, 0x37, 0x48, 0x71, 0x6e, 0x68, 0x65, 0x47, 0x35, 0x65, 0x7a, 0x7a, 0x65, 0x76, 0x68, 0x35, 0x35, 0x68, 0x4d, 0x36, 0x66, 0x63, 0x41, 0x35, 0x5a, 0x77, 0x6a, 0x55, 0x75, 0x6b, 0x43, 0x6f, 0x78, 0x32, 0x65, 0x52, 0x46, 0x65, 0x6b, 0x47, 0x6b, 0x4c, 0x68, 0x4f, 0x62, 0x4e, 0x41, 0x35, 0x6d, 0x65, 0x30, 0x6d, 0x72, 0x5a, 0x4a, 0x66, 0x51, 0x52, 0x73, 0x4e, 0x35, 0x0a, 0x6e, 0x58, 0x4a, 0x51, 0x59, 0x36, 0x61, 0x59, 0x57, 0x77, 0x61, 0x39, 0x53, 0x47, 0x33, 0x59, 0x4f, 0x59, 0x4e, 0x77, 0x36, 0x44, 0x58, 0x77, 0x42, 0x64, 0x47, 0x71, 0x76, 0x4f, 0x50, 0x62, 0x79, 0x41, 0x4c, 0x71, 0x66, 0x50, 0x32, 0x43, 0x32, 0x73, 0x4a, 0x62, 0x55, 0x6a, 0x57, 0x75, 0x6d, 0x44, 0x71, 0x74, 0x75, 0x6a, 0x57, 0x54, 0x49, 0x36, 0x63, 0x66, 0x53, 0x4e, 0x30, 0x31, 0x52, 0x70, 0x69, 0x79, 0x45, 0x47, 0x6a, 0x6b, 0x70, 0x54, 0x48, 0x43, 0x0a, 0x43, 0x6c, 0x67, 0x75, 0x47, 0x59, 0x45, 0x51, 0x79, 0x56, 0x42, 0x31, 0x2f, 0x4f, 0x70, 0x61, 0x46, 0x73, 0x34, 0x52, 0x31, 0x2b, 0x37, 0x76, 0x55, 0x49, 0x67, 0x74, 0x59, 0x66, 0x38, 0x2f, 0x51, 0x6e, 0x4d, 0x46, 0x6c, 0x45, 0x50, 0x56, 0x6a, 0x6a, 0x78, 0x4f, 0x41, 0x54, 0x6f, 0x5a, 0x70, 0x52, 0x39, 0x47, 0x54, 0x6e, 0x66, 0x51, 0x58, 0x65, 0x57, 0x42, 0x49, 0x69, 0x47, 0x48, 0x2f, 0x70, 0x52, 0x39, 0x68, 0x4e, 0x69, 0x54, 0x72, 0x64, 0x5a, 0x6f, 0x0a, 0x51, 0x30, 0x69, 0x79, 0x32, 0x2b, 0x74, 0x7a, 0x4a, 0x4f, 0x65, 0x52, 0x66, 0x31, 0x53, 0x6b, 0x74, 0x6f, 0x41, 0x2b, 0x6e, 0x61, 0x4d, 0x38, 0x54, 0x48, 0x4c, 0x43, 0x56, 0x38, 0x53, 0x67, 0x31, 0x4d, 0x77, 0x34, 0x4a, 0x38, 0x37, 0x56, 0x42, 0x70, 0x36, 0x69, 0x53, 0x4e, 0x6e, 0x70, 0x6e, 0x38, 0x36, 0x43, 0x63, 0x44, 0x61, 0x54, 0x6d, 0x6a, 0x76, 0x66, 0x6c, 0x69, 0x48, 0x6a, 0x57, 0x62, 0x63, 0x4d, 0x32, 0x70, 0x45, 0x33, 0x38, 0x50, 0x31, 0x5a, 0x0a, 0x57, 0x72, 0x4f, 0x5a, 0x79, 0x47, 0x6c, 0x73, 0x51, 0x79, 0x59, 0x42, 0x4e, 0x57, 0x4e, 0x67, 0x56, 0x59, 0x6b, 0x44, 0x4f, 0x6e, 0x58, 0x59, 0x75, 0x6b, 0x72, 0x5a, 0x56, 0x50, 0x2f, 0x75, 0x33, 0x6f, 0x44, 0x59, 0x4c, 0x64, 0x45, 0x34, 0x31, 0x56, 0x34, 0x74, 0x43, 0x35, 0x68, 0x39, 0x50, 0x6d, 0x7a, 0x62, 0x2f, 0x43, 0x61, 0x49, 0x78, 0x77, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x47, 0x6f, 0x20, 0x44, 0x61, 0x64, 0x64, 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x44, 0x78, 0x54, 0x43, 0x43, 0x41, 0x71, 0x32, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x42, 0x41, 0x44, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x44, 0x43, 0x42, 0x67, 0x7a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x45, 0x44, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x67, 0x54, 0x0a, 0x42, 0x30, 0x46, 0x79, 0x61, 0x58, 0x70, 0x76, 0x62, 0x6d, 0x45, 0x78, 0x45, 0x7a, 0x41, 0x52, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x63, 0x54, 0x43, 0x6c, 0x4e, 0x6a, 0x62, 0x33, 0x52, 0x30, 0x63, 0x32, 0x52, 0x68, 0x62, 0x47, 0x55, 0x78, 0x47, 0x6a, 0x41, 0x59, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x45, 0x55, 0x64, 0x76, 0x52, 0x47, 0x46, 0x6b, 0x5a, 0x48, 0x6b, 0x75, 0x59, 0x32, 0x39, 0x74, 0x4c, 0x43, 0x42, 0x4a, 0x62, 0x6d, 0x4d, 0x75, 0x0a, 0x4d, 0x54, 0x45, 0x77, 0x4c, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x79, 0x68, 0x48, 0x62, 0x79, 0x42, 0x45, 0x59, 0x57, 0x52, 0x6b, 0x65, 0x53, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x70, 0x5a, 0x6d, 0x6c, 0x6a, 0x59, 0x58, 0x52, 0x6c, 0x49, 0x45, 0x46, 0x31, 0x64, 0x47, 0x68, 0x76, 0x63, 0x6d, 0x6c, 0x30, 0x65, 0x53, 0x41, 0x74, 0x49, 0x45, 0x63, 0x79, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x41, 0x35, 0x0a, 0x4d, 0x44, 0x6b, 0x77, 0x4d, 0x54, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x46, 0x6f, 0x58, 0x44, 0x54, 0x4d, 0x33, 0x4d, 0x54, 0x49, 0x7a, 0x4d, 0x54, 0x49, 0x7a, 0x4e, 0x54, 0x6b, 0x31, 0x4f, 0x56, 0x6f, 0x77, 0x67, 0x59, 0x4d, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6c, 0x56, 0x54, 0x4d, 0x52, 0x41, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x49, 0x45, 0x77, 0x64, 0x42, 0x63, 0x6d, 0x6c, 0x36, 0x0a, 0x62, 0x32, 0x35, 0x68, 0x4d, 0x52, 0x4d, 0x77, 0x45, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x48, 0x45, 0x77, 0x70, 0x54, 0x59, 0x32, 0x39, 0x30, 0x64, 0x48, 0x4e, 0x6b, 0x59, 0x57, 0x78, 0x6c, 0x4d, 0x52, 0x6f, 0x77, 0x47, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x78, 0x46, 0x48, 0x62, 0x30, 0x52, 0x68, 0x5a, 0x47, 0x52, 0x35, 0x4c, 0x6d, 0x4e, 0x76, 0x62, 0x53, 0x77, 0x67, 0x53, 0x57, 0x35, 0x6a, 0x4c, 0x6a, 0x45, 0x78, 0x4d, 0x43, 0x38, 0x47, 0x0a, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x6f, 0x52, 0x32, 0x38, 0x67, 0x52, 0x47, 0x46, 0x6b, 0x5a, 0x48, 0x6b, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x61, 0x57, 0x5a, 0x70, 0x59, 0x32, 0x46, 0x30, 0x5a, 0x53, 0x42, 0x42, 0x64, 0x58, 0x52, 0x6f, 0x62, 0x33, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x67, 0x4c, 0x53, 0x42, 0x48, 0x4d, 0x6a, 0x43, 0x43, 0x41, 0x53, 0x49, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x0a, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x45, 0x50, 0x41, 0x44, 0x43, 0x43, 0x41, 0x51, 0x6f, 0x43, 0x67, 0x67, 0x45, 0x42, 0x41, 0x4c, 0x39, 0x78, 0x59, 0x67, 0x6a, 0x78, 0x2b, 0x6c, 0x6b, 0x30, 0x39, 0x78, 0x76, 0x4a, 0x47, 0x4b, 0x50, 0x33, 0x67, 0x45, 0x6c, 0x59, 0x36, 0x53, 0x4b, 0x44, 0x45, 0x36, 0x62, 0x46, 0x49, 0x45, 0x4d, 0x42, 0x4f, 0x34, 0x54, 0x78, 0x35, 0x6f, 0x56, 0x4a, 0x6e, 0x79, 0x66, 0x71, 0x0a, 0x39, 0x6f, 0x51, 0x62, 0x54, 0x71, 0x43, 0x30, 0x32, 0x33, 0x43, 0x59, 0x78, 0x7a, 0x49, 0x42, 0x73, 0x51, 0x55, 0x2b, 0x42, 0x30, 0x37, 0x75, 0x39, 0x50, 0x70, 0x50, 0x4c, 0x31, 0x6b, 0x77, 0x49, 0x75, 0x65, 0x72, 0x47, 0x56, 0x5a, 0x72, 0x34, 0x6f, 0x41, 0x48, 0x2f, 0x50, 0x4d, 0x57, 0x64, 0x59, 0x41, 0x35, 0x55, 0x58, 0x76, 0x6c, 0x2b, 0x54, 0x57, 0x32, 0x64, 0x45, 0x36, 0x70, 0x6a, 0x59, 0x49, 0x54, 0x35, 0x4c, 0x59, 0x2f, 0x71, 0x51, 0x4f, 0x44, 0x0a, 0x2b, 0x71, 0x4b, 0x2b, 0x69, 0x68, 0x56, 0x71, 0x66, 0x39, 0x34, 0x4c, 0x77, 0x37, 0x59, 0x5a, 0x46, 0x41, 0x58, 0x4b, 0x36, 0x73, 0x4f, 0x6f, 0x42, 0x4a, 0x51, 0x37, 0x52, 0x6e, 0x77, 0x79, 0x44, 0x66, 0x4d, 0x41, 0x5a, 0x69, 0x4c, 0x49, 0x6a, 0x57, 0x6c, 0x74, 0x4e, 0x6f, 0x77, 0x52, 0x47, 0x4c, 0x66, 0x54, 0x73, 0x68, 0x78, 0x67, 0x74, 0x44, 0x6a, 0x36, 0x41, 0x6f, 0x7a, 0x4f, 0x30, 0x39, 0x31, 0x47, 0x42, 0x39, 0x34, 0x4b, 0x50, 0x75, 0x74, 0x64, 0x0a, 0x66, 0x4d, 0x68, 0x38, 0x2b, 0x37, 0x41, 0x72, 0x55, 0x36, 0x53, 0x53, 0x59, 0x6d, 0x6c, 0x52, 0x4a, 0x51, 0x56, 0x68, 0x47, 0x6b, 0x53, 0x42, 0x6a, 0x43, 0x79, 0x70, 0x51, 0x35, 0x59, 0x6a, 0x33, 0x36, 0x77, 0x36, 0x67, 0x5a, 0x6f, 0x4f, 0x4b, 0x63, 0x55, 0x63, 0x71, 0x65, 0x6c, 0x64, 0x48, 0x72, 0x61, 0x65, 0x6e, 0x6a, 0x41, 0x4b, 0x4f, 0x63, 0x37, 0x78, 0x69, 0x49, 0x44, 0x37, 0x53, 0x31, 0x33, 0x4d, 0x4d, 0x75, 0x79, 0x46, 0x59, 0x6b, 0x4d, 0x6c, 0x0a, 0x4e, 0x41, 0x4a, 0x57, 0x4a, 0x77, 0x47, 0x52, 0x74, 0x44, 0x74, 0x77, 0x4b, 0x6a, 0x39, 0x75, 0x73, 0x65, 0x69, 0x63, 0x69, 0x41, 0x46, 0x39, 0x6e, 0x39, 0x54, 0x35, 0x32, 0x31, 0x4e, 0x74, 0x59, 0x4a, 0x32, 0x2f, 0x4c, 0x4f, 0x64, 0x59, 0x71, 0x37, 0x68, 0x66, 0x52, 0x76, 0x7a, 0x4f, 0x78, 0x42, 0x73, 0x44, 0x50, 0x41, 0x6e, 0x72, 0x53, 0x54, 0x46, 0x63, 0x61, 0x55, 0x61, 0x7a, 0x34, 0x45, 0x63, 0x43, 0x41, 0x77, 0x45, 0x41, 0x41, 0x61, 0x4e, 0x43, 0x0a, 0x4d, 0x45, 0x41, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x51, 0x59, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x44, 0x71, 0x61, 0x68, 0x51, 0x63, 0x51, 0x5a, 0x79, 0x69, 0x32, 0x37, 0x2f, 0x61, 0x39, 0x0a, 0x42, 0x55, 0x46, 0x75, 0x49, 0x4d, 0x47, 0x55, 0x32, 0x67, 0x2f, 0x65, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x43, 0x77, 0x55, 0x41, 0x41, 0x34, 0x49, 0x42, 0x41, 0x51, 0x43, 0x5a, 0x32, 0x31, 0x31, 0x35, 0x31, 0x66, 0x6d, 0x58, 0x57, 0x57, 0x63, 0x44, 0x59, 0x66, 0x46, 0x2b, 0x4f, 0x77, 0x59, 0x78, 0x64, 0x53, 0x32, 0x68, 0x49, 0x49, 0x35, 0x50, 0x5a, 0x59, 0x65, 0x30, 0x39, 0x36, 0x61, 0x63, 0x0a, 0x76, 0x4e, 0x6a, 0x70, 0x4c, 0x39, 0x44, 0x62, 0x57, 0x75, 0x37, 0x50, 0x64, 0x49, 0x78, 0x7a, 0x74, 0x44, 0x68, 0x43, 0x32, 0x67, 0x56, 0x37, 0x2b, 0x41, 0x4a, 0x31, 0x75, 0x50, 0x32, 0x6c, 0x73, 0x64, 0x65, 0x75, 0x39, 0x74, 0x66, 0x65, 0x45, 0x38, 0x74, 0x54, 0x45, 0x48, 0x36, 0x4b, 0x52, 0x74, 0x47, 0x58, 0x2b, 0x72, 0x63, 0x75, 0x4b, 0x78, 0x47, 0x72, 0x6b, 0x4c, 0x41, 0x6e, 0x67, 0x50, 0x6e, 0x6f, 0x6e, 0x31, 0x72, 0x70, 0x4e, 0x35, 0x2b, 0x72, 0x0a, 0x35, 0x4e, 0x39, 0x73, 0x73, 0x34, 0x55, 0x58, 0x6e, 0x54, 0x33, 0x5a, 0x4a, 0x45, 0x39, 0x35, 0x6b, 0x54, 0x58, 0x57, 0x58, 0x77, 0x54, 0x72, 0x67, 0x49, 0x4f, 0x72, 0x6d, 0x67, 0x49, 0x74, 0x74, 0x52, 0x44, 0x30, 0x32, 0x4a, 0x44, 0x48, 0x42, 0x48, 0x4e, 0x41, 0x37, 0x58, 0x49, 0x6c, 0x6f, 0x4b, 0x6d, 0x66, 0x37, 0x4a, 0x36, 0x72, 0x61, 0x42, 0x4b, 0x5a, 0x56, 0x38, 0x61, 0x50, 0x45, 0x6a, 0x6f, 0x4a, 0x70, 0x4c, 0x31, 0x45, 0x2f, 0x51, 0x59, 0x56, 0x0a, 0x4e, 0x38, 0x47, 0x62, 0x35, 0x44, 0x4b, 0x6a, 0x37, 0x54, 0x6a, 0x6f, 0x32, 0x47, 0x54, 0x7a, 0x4c, 0x48, 0x34, 0x55, 0x2f, 0x41, 0x4c, 0x71, 0x6e, 0x38, 0x33, 0x2f, 0x42, 0x32, 0x67, 0x58, 0x32, 0x79, 0x4b, 0x51, 0x4f, 0x43, 0x31, 0x36, 0x6a, 0x64, 0x46, 0x55, 0x38, 0x57, 0x6e, 0x6a, 0x58, 0x7a, 0x50, 0x4b, 0x65, 0x6a, 0x31, 0x37, 0x43, 0x75, 0x50, 0x4b, 0x66, 0x31, 0x38, 0x35, 0x35, 0x65, 0x4a, 0x31, 0x75, 0x73, 0x56, 0x32, 0x47, 0x44, 0x50, 0x4f, 0x0a, 0x4c, 0x50, 0x41, 0x76, 0x54, 0x4b, 0x33, 0x33, 0x73, 0x65, 0x66, 0x4f, 0x54, 0x36, 0x6a, 0x45, 0x6d, 0x30, 0x70, 0x55, 0x42, 0x73, 0x56, 0x2f, 0x66, 0x64, 0x55, 0x49, 0x44, 0x2b, 0x49, 0x63, 0x2f, 0x6e, 0x34, 0x58, 0x75, 0x4b, 0x78, 0x65, 0x39, 0x74, 0x51, 0x57, 0x73, 0x6b, 0x4d, 0x4a, 0x44, 0x45, 0x33, 0x32, 0x70, 0x32, 0x75, 0x30, 0x6d, 0x59, 0x52, 0x6c, 0x79, 0x6e, 0x71, 0x49, 0x34, 0x75, 0x4a, 0x45, 0x76, 0x6c, 0x7a, 0x33, 0x36, 0x68, 0x7a, 0x31, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x44, 0x33, 0x54, 0x43, 0x43, 0x41, 0x73, 0x57, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x42, 0x41, 0x44, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x44, 0x43, 0x42, 0x6a, 0x7a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x45, 0x44, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x67, 0x54, 0x0a, 0x42, 0x30, 0x46, 0x79, 0x61, 0x58, 0x70, 0x76, 0x62, 0x6d, 0x45, 0x78, 0x45, 0x7a, 0x41, 0x52, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x63, 0x54, 0x43, 0x6c, 0x4e, 0x6a, 0x62, 0x33, 0x52, 0x30, 0x63, 0x32, 0x52, 0x68, 0x62, 0x47, 0x55, 0x78, 0x4a, 0x54, 0x41, 0x6a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x48, 0x46, 0x4e, 0x30, 0x59, 0x58, 0x4a, 0x6d, 0x61, 0x57, 0x56, 0x73, 0x5a, 0x43, 0x42, 0x55, 0x5a, 0x57, 0x4e, 0x6f, 0x62, 0x6d, 0x39, 0x73, 0x0a, 0x62, 0x32, 0x64, 0x70, 0x5a, 0x58, 0x4d, 0x73, 0x49, 0x45, 0x6c, 0x75, 0x59, 0x79, 0x34, 0x78, 0x4d, 0x6a, 0x41, 0x77, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x4b, 0x56, 0x4e, 0x30, 0x59, 0x58, 0x4a, 0x6d, 0x61, 0x57, 0x56, 0x73, 0x5a, 0x43, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x70, 0x5a, 0x6d, 0x6c, 0x6a, 0x59, 0x58, 0x52, 0x6c, 0x49, 0x45, 0x46, 0x31, 0x64, 0x47, 0x68, 0x76, 0x63, 0x6d, 0x6c, 0x30, 0x0a, 0x65, 0x53, 0x41, 0x74, 0x49, 0x45, 0x63, 0x79, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x41, 0x35, 0x4d, 0x44, 0x6b, 0x77, 0x4d, 0x54, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x46, 0x6f, 0x58, 0x44, 0x54, 0x4d, 0x33, 0x4d, 0x54, 0x49, 0x7a, 0x4d, 0x54, 0x49, 0x7a, 0x4e, 0x54, 0x6b, 0x31, 0x4f, 0x56, 0x6f, 0x77, 0x67, 0x59, 0x38, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6c, 0x56, 0x54, 0x4d, 0x52, 0x41, 0x77, 0x0a, 0x44, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x49, 0x45, 0x77, 0x64, 0x42, 0x63, 0x6d, 0x6c, 0x36, 0x62, 0x32, 0x35, 0x68, 0x4d, 0x52, 0x4d, 0x77, 0x45, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x48, 0x45, 0x77, 0x70, 0x54, 0x59, 0x32, 0x39, 0x30, 0x64, 0x48, 0x4e, 0x6b, 0x59, 0x57, 0x78, 0x6c, 0x4d, 0x53, 0x55, 0x77, 0x49, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x78, 0x78, 0x54, 0x64, 0x47, 0x46, 0x79, 0x5a, 0x6d, 0x6c, 0x6c, 0x62, 0x47, 0x51, 0x67, 0x0a, 0x56, 0x47, 0x56, 0x6a, 0x61, 0x47, 0x35, 0x76, 0x62, 0x47, 0x39, 0x6e, 0x61, 0x57, 0x56, 0x7a, 0x4c, 0x43, 0x42, 0x4a, 0x62, 0x6d, 0x4d, 0x75, 0x4d, 0x54, 0x49, 0x77, 0x4d, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x79, 0x6c, 0x54, 0x64, 0x47, 0x46, 0x79, 0x5a, 0x6d, 0x6c, 0x6c, 0x62, 0x47, 0x51, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x61, 0x57, 0x5a, 0x70, 0x59, 0x32, 0x46, 0x30, 0x5a, 0x53, 0x42, 0x42, 0x0a, 0x64, 0x58, 0x52, 0x6f, 0x62, 0x33, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x67, 0x4c, 0x53, 0x42, 0x48, 0x4d, 0x6a, 0x43, 0x43, 0x41, 0x53, 0x49, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x45, 0x50, 0x41, 0x44, 0x43, 0x43, 0x41, 0x51, 0x6f, 0x43, 0x67, 0x67, 0x45, 0x42, 0x41, 0x4c, 0x33, 0x74, 0x77, 0x51, 0x50, 0x38, 0x39, 0x6f, 0x2f, 0x38, 0x41, 0x72, 0x46, 0x76, 0x0a, 0x57, 0x35, 0x39, 0x49, 0x32, 0x5a, 0x31, 0x35, 0x34, 0x71, 0x4b, 0x33, 0x41, 0x32, 0x46, 0x57, 0x47, 0x4d, 0x4e, 0x48, 0x74, 0x74, 0x66, 0x4b, 0x50, 0x54, 0x55, 0x75, 0x69, 0x55, 0x50, 0x33, 0x6f, 0x57, 0x6d, 0x62, 0x33, 0x6f, 0x6f, 0x61, 0x2f, 0x52, 0x4d, 0x67, 0x6e, 0x4c, 0x52, 0x4a, 0x64, 0x7a, 0x49, 0x70, 0x56, 0x76, 0x32, 0x35, 0x37, 0x49, 0x7a, 0x64, 0x49, 0x76, 0x70, 0x79, 0x33, 0x43, 0x64, 0x68, 0x6c, 0x2b, 0x37, 0x32, 0x57, 0x6f, 0x54, 0x73, 0x0a, 0x62, 0x68, 0x6d, 0x35, 0x69, 0x53, 0x7a, 0x63, 0x68, 0x46, 0x76, 0x56, 0x64, 0x50, 0x74, 0x72, 0x58, 0x38, 0x57, 0x4a, 0x70, 0x52, 0x42, 0x53, 0x69, 0x55, 0x5a, 0x56, 0x39, 0x4c, 0x68, 0x31, 0x48, 0x4f, 0x5a, 0x2f, 0x35, 0x46, 0x53, 0x75, 0x53, 0x2f, 0x68, 0x56, 0x63, 0x6c, 0x63, 0x43, 0x47, 0x66, 0x67, 0x58, 0x63, 0x56, 0x6e, 0x72, 0x48, 0x69, 0x67, 0x48, 0x64, 0x4d, 0x57, 0x64, 0x53, 0x4c, 0x35, 0x73, 0x74, 0x50, 0x53, 0x6b, 0x73, 0x50, 0x4e, 0x6b, 0x0a, 0x4e, 0x33, 0x6d, 0x53, 0x77, 0x4f, 0x78, 0x47, 0x58, 0x6e, 0x2f, 0x68, 0x62, 0x56, 0x4e, 0x4d, 0x59, 0x71, 0x2f, 0x4e, 0x48, 0x77, 0x74, 0x6a, 0x75, 0x7a, 0x71, 0x64, 0x2b, 0x2f, 0x78, 0x35, 0x41, 0x4a, 0x68, 0x68, 0x64, 0x4d, 0x38, 0x6d, 0x67, 0x6b, 0x42, 0x6a, 0x38, 0x37, 0x4a, 0x79, 0x61, 0x68, 0x6b, 0x4e, 0x6d, 0x63, 0x72, 0x55, 0x44, 0x6e, 0x58, 0x4d, 0x4e, 0x2f, 0x75, 0x4c, 0x69, 0x63, 0x46, 0x5a, 0x38, 0x57, 0x4a, 0x2f, 0x58, 0x37, 0x4e, 0x66, 0x0a, 0x5a, 0x54, 0x44, 0x34, 0x70, 0x37, 0x64, 0x4e, 0x64, 0x6c, 0x6f, 0x65, 0x64, 0x6c, 0x34, 0x30, 0x77, 0x4f, 0x69, 0x57, 0x56, 0x70, 0x6d, 0x4b, 0x73, 0x2f, 0x42, 0x2f, 0x70, 0x4d, 0x32, 0x39, 0x33, 0x44, 0x49, 0x78, 0x66, 0x4a, 0x48, 0x50, 0x34, 0x46, 0x38, 0x52, 0x2b, 0x47, 0x75, 0x71, 0x53, 0x56, 0x7a, 0x52, 0x6d, 0x5a, 0x54, 0x52, 0x6f, 0x75, 0x4e, 0x6a, 0x57, 0x77, 0x6c, 0x32, 0x74, 0x56, 0x5a, 0x69, 0x34, 0x55, 0x74, 0x30, 0x48, 0x5a, 0x62, 0x55, 0x0a, 0x4a, 0x74, 0x51, 0x49, 0x42, 0x46, 0x6e, 0x51, 0x6d, 0x41, 0x34, 0x4f, 0x35, 0x74, 0x37, 0x38, 0x77, 0x2b, 0x77, 0x66, 0x6b, 0x50, 0x45, 0x43, 0x41, 0x77, 0x45, 0x41, 0x41, 0x61, 0x4e, 0x43, 0x4d, 0x45, 0x41, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x0a, 0x41, 0x51, 0x59, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x48, 0x77, 0x4d, 0x4d, 0x68, 0x2b, 0x6e, 0x32, 0x54, 0x42, 0x2f, 0x78, 0x48, 0x31, 0x6f, 0x6f, 0x32, 0x4b, 0x6f, 0x6f, 0x63, 0x36, 0x72, 0x42, 0x31, 0x73, 0x6e, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x43, 0x77, 0x55, 0x41, 0x41, 0x34, 0x49, 0x42, 0x41, 0x51, 0x41, 0x52, 0x57, 0x66, 0x6f, 0x6c, 0x0a, 0x54, 0x77, 0x4e, 0x76, 0x6c, 0x4a, 0x6b, 0x37, 0x6d, 0x68, 0x2b, 0x43, 0x68, 0x54, 0x6e, 0x55, 0x64, 0x67, 0x57, 0x55, 0x58, 0x75, 0x45, 0x6f, 0x6b, 0x32, 0x31, 0x69, 0x58, 0x51, 0x6e, 0x43, 0x6f, 0x4b, 0x6a, 0x55, 0x73, 0x48, 0x55, 0x34, 0x38, 0x54, 0x52, 0x71, 0x6e, 0x65, 0x53, 0x66, 0x69, 0x6f, 0x59, 0x6d, 0x55, 0x65, 0x59, 0x73, 0x30, 0x63, 0x59, 0x74, 0x62, 0x70, 0x55, 0x67, 0x53, 0x70, 0x49, 0x42, 0x37, 0x4c, 0x69, 0x4b, 0x5a, 0x33, 0x73, 0x78, 0x0a, 0x34, 0x6d, 0x63, 0x75, 0x6a, 0x4a, 0x55, 0x44, 0x4a, 0x69, 0x35, 0x44, 0x6e, 0x55, 0x6f, 0x78, 0x39, 0x67, 0x36, 0x31, 0x44, 0x4c, 0x75, 0x33, 0x34, 0x6a, 0x64, 0x2f, 0x49, 0x72, 0x6f, 0x41, 0x6f, 0x77, 0x35, 0x37, 0x55, 0x76, 0x74, 0x72, 0x75, 0x7a, 0x76, 0x45, 0x30, 0x33, 0x6c, 0x52, 0x54, 0x73, 0x32, 0x51, 0x39, 0x47, 0x63, 0x48, 0x47, 0x63, 0x67, 0x38, 0x52, 0x6e, 0x6f, 0x4e, 0x41, 0x58, 0x33, 0x46, 0x57, 0x4f, 0x64, 0x74, 0x35, 0x6f, 0x55, 0x77, 0x0a, 0x46, 0x35, 0x6f, 0x6b, 0x78, 0x42, 0x44, 0x67, 0x42, 0x50, 0x66, 0x67, 0x38, 0x6e, 0x2f, 0x55, 0x71, 0x67, 0x72, 0x2f, 0x51, 0x68, 0x30, 0x33, 0x37, 0x5a, 0x54, 0x6c, 0x5a, 0x46, 0x6b, 0x53, 0x49, 0x48, 0x63, 0x34, 0x30, 0x7a, 0x49, 0x2b, 0x4f, 0x49, 0x46, 0x31, 0x6c, 0x6e, 0x50, 0x36, 0x61, 0x49, 0x2b, 0x78, 0x79, 0x38, 0x34, 0x66, 0x78, 0x65, 0x7a, 0x36, 0x6e, 0x48, 0x37, 0x50, 0x66, 0x72, 0x48, 0x78, 0x42, 0x79, 0x32, 0x32, 0x2f, 0x4c, 0x2f, 0x4b, 0x0a, 0x70, 0x4c, 0x2f, 0x51, 0x6c, 0x77, 0x56, 0x4b, 0x76, 0x4f, 0x6f, 0x59, 0x4b, 0x41, 0x4b, 0x51, 0x76, 0x56, 0x52, 0x34, 0x43, 0x53, 0x46, 0x78, 0x30, 0x39, 0x46, 0x39, 0x48, 0x64, 0x6b, 0x57, 0x73, 0x4b, 0x6c, 0x68, 0x50, 0x64, 0x41, 0x4b, 0x41, 0x43, 0x4c, 0x38, 0x78, 0x33, 0x76, 0x4c, 0x43, 0x57, 0x52, 0x46, 0x43, 0x7a, 0x74, 0x41, 0x67, 0x66, 0x64, 0x39, 0x66, 0x44, 0x4c, 0x31, 0x6d, 0x4d, 0x70, 0x59, 0x6a, 0x6e, 0x30, 0x71, 0x37, 0x70, 0x42, 0x5a, 0x0a, 0x63, 0x32, 0x54, 0x35, 0x4e, 0x6e, 0x52, 0x65, 0x4a, 0x61, 0x48, 0x31, 0x5a, 0x67, 0x55, 0x75, 0x66, 0x7a, 0x6b, 0x56, 0x71, 0x53, 0x72, 0x37, 0x55, 0x49, 0x75, 0x4f, 0x68, 0x57, 0x6e, 0x30, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x72, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x44, 0x37, 0x7a, 0x43, 0x43, 0x41, 0x74, 0x65, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x42, 0x41, 0x44, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x44, 0x43, 0x42, 0x6d, 0x44, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x45, 0x44, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x67, 0x54, 0x0a, 0x42, 0x30, 0x46, 0x79, 0x61, 0x58, 0x70, 0x76, 0x62, 0x6d, 0x45, 0x78, 0x45, 0x7a, 0x41, 0x52, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x63, 0x54, 0x43, 0x6c, 0x4e, 0x6a, 0x62, 0x33, 0x52, 0x30, 0x63, 0x32, 0x52, 0x68, 0x62, 0x47, 0x55, 0x78, 0x4a, 0x54, 0x41, 0x6a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x48, 0x46, 0x4e, 0x30, 0x59, 0x58, 0x4a, 0x6d, 0x61, 0x57, 0x56, 0x73, 0x5a, 0x43, 0x42, 0x55, 0x5a, 0x57, 0x4e, 0x6f, 0x62, 0x6d, 0x39, 0x73, 0x0a, 0x62, 0x32, 0x64, 0x70, 0x5a, 0x58, 0x4d, 0x73, 0x49, 0x45, 0x6c, 0x75, 0x59, 0x79, 0x34, 0x78, 0x4f, 0x7a, 0x41, 0x35, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x4d, 0x6c, 0x4e, 0x30, 0x59, 0x58, 0x4a, 0x6d, 0x61, 0x57, 0x56, 0x73, 0x5a, 0x43, 0x42, 0x54, 0x5a, 0x58, 0x4a, 0x32, 0x61, 0x57, 0x4e, 0x6c, 0x63, 0x79, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x70, 0x5a, 0x6d, 0x6c, 0x6a, 0x59, 0x58, 0x52, 0x6c, 0x0a, 0x49, 0x45, 0x46, 0x31, 0x64, 0x47, 0x68, 0x76, 0x63, 0x6d, 0x6c, 0x30, 0x65, 0x53, 0x41, 0x74, 0x49, 0x45, 0x63, 0x79, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x41, 0x35, 0x4d, 0x44, 0x6b, 0x77, 0x4d, 0x54, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x46, 0x6f, 0x58, 0x44, 0x54, 0x4d, 0x33, 0x4d, 0x54, 0x49, 0x7a, 0x4d, 0x54, 0x49, 0x7a, 0x4e, 0x54, 0x6b, 0x31, 0x4f, 0x56, 0x6f, 0x77, 0x67, 0x5a, 0x67, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x0a, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6c, 0x56, 0x54, 0x4d, 0x52, 0x41, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x49, 0x45, 0x77, 0x64, 0x42, 0x63, 0x6d, 0x6c, 0x36, 0x62, 0x32, 0x35, 0x68, 0x4d, 0x52, 0x4d, 0x77, 0x45, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x48, 0x45, 0x77, 0x70, 0x54, 0x59, 0x32, 0x39, 0x30, 0x64, 0x48, 0x4e, 0x6b, 0x59, 0x57, 0x78, 0x6c, 0x4d, 0x53, 0x55, 0x77, 0x49, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x78, 0x78, 0x54, 0x0a, 0x64, 0x47, 0x46, 0x79, 0x5a, 0x6d, 0x6c, 0x6c, 0x62, 0x47, 0x51, 0x67, 0x56, 0x47, 0x56, 0x6a, 0x61, 0x47, 0x35, 0x76, 0x62, 0x47, 0x39, 0x6e, 0x61, 0x57, 0x56, 0x7a, 0x4c, 0x43, 0x42, 0x4a, 0x62, 0x6d, 0x4d, 0x75, 0x4d, 0x54, 0x73, 0x77, 0x4f, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x7a, 0x4a, 0x54, 0x64, 0x47, 0x46, 0x79, 0x5a, 0x6d, 0x6c, 0x6c, 0x62, 0x47, 0x51, 0x67, 0x55, 0x32, 0x56, 0x79, 0x64, 0x6d, 0x6c, 0x6a, 0x5a, 0x58, 0x4d, 0x67, 0x0a, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x61, 0x57, 0x5a, 0x70, 0x59, 0x32, 0x46, 0x30, 0x5a, 0x53, 0x42, 0x42, 0x64, 0x58, 0x52, 0x6f, 0x62, 0x33, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x67, 0x4c, 0x53, 0x42, 0x48, 0x4d, 0x6a, 0x43, 0x43, 0x41, 0x53, 0x49, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x45, 0x50, 0x41, 0x44, 0x43, 0x43, 0x0a, 0x41, 0x51, 0x6f, 0x43, 0x67, 0x67, 0x45, 0x42, 0x41, 0x4e, 0x55, 0x4d, 0x4f, 0x73, 0x51, 0x71, 0x2b, 0x55, 0x37, 0x69, 0x39, 0x62, 0x34, 0x5a, 0x6c, 0x31, 0x2b, 0x4f, 0x69, 0x46, 0x4f, 0x78, 0x48, 0x7a, 0x2f, 0x4c, 0x7a, 0x35, 0x38, 0x67, 0x45, 0x32, 0x30, 0x70, 0x4f, 0x73, 0x67, 0x50, 0x66, 0x54, 0x7a, 0x33, 0x61, 0x33, 0x59, 0x34, 0x59, 0x39, 0x6b, 0x32, 0x59, 0x4b, 0x69, 0x62, 0x58, 0x6c, 0x77, 0x41, 0x67, 0x4c, 0x49, 0x76, 0x57, 0x58, 0x2f, 0x32, 0x0a, 0x68, 0x2f, 0x6b, 0x6c, 0x51, 0x34, 0x62, 0x6e, 0x61, 0x52, 0x74, 0x53, 0x6d, 0x70, 0x44, 0x68, 0x63, 0x65, 0x50, 0x59, 0x4c, 0x51, 0x31, 0x4f, 0x62, 0x2f, 0x62, 0x49, 0x53, 0x64, 0x6d, 0x32, 0x38, 0x78, 0x70, 0x57, 0x72, 0x69, 0x75, 0x32, 0x64, 0x42, 0x54, 0x72, 0x7a, 0x2f, 0x73, 0x6d, 0x34, 0x78, 0x71, 0x36, 0x48, 0x5a, 0x59, 0x75, 0x61, 0x6a, 0x74, 0x59, 0x6c, 0x49, 0x6c, 0x48, 0x56, 0x76, 0x38, 0x6c, 0x6f, 0x4a, 0x4e, 0x77, 0x55, 0x34, 0x50, 0x61, 0x0a, 0x68, 0x48, 0x51, 0x55, 0x77, 0x32, 0x65, 0x65, 0x42, 0x47, 0x67, 0x36, 0x33, 0x34, 0x35, 0x41, 0x57, 0x68, 0x31, 0x4b, 0x54, 0x73, 0x39, 0x44, 0x6b, 0x54, 0x76, 0x6e, 0x56, 0x74, 0x59, 0x41, 0x63, 0x4d, 0x74, 0x53, 0x37, 0x6e, 0x74, 0x39, 0x72, 0x6a, 0x72, 0x6e, 0x76, 0x44, 0x48, 0x35, 0x52, 0x66, 0x62, 0x43, 0x59, 0x4d, 0x38, 0x54, 0x57, 0x51, 0x49, 0x72, 0x67, 0x4d, 0x77, 0x30, 0x52, 0x39, 0x2b, 0x35, 0x33, 0x70, 0x42, 0x6c, 0x62, 0x51, 0x4c, 0x50, 0x0a, 0x4c, 0x4a, 0x47, 0x6d, 0x70, 0x75, 0x66, 0x65, 0x68, 0x52, 0x68, 0x4a, 0x66, 0x47, 0x5a, 0x4f, 0x6f, 0x7a, 0x70, 0x74, 0x71, 0x62, 0x58, 0x75, 0x4e, 0x43, 0x36, 0x36, 0x44, 0x51, 0x4f, 0x34, 0x4d, 0x39, 0x39, 0x48, 0x36, 0x37, 0x46, 0x72, 0x6a, 0x53, 0x58, 0x5a, 0x6d, 0x38, 0x36, 0x42, 0x30, 0x55, 0x56, 0x47, 0x4d, 0x70, 0x5a, 0x77, 0x68, 0x39, 0x34, 0x43, 0x44, 0x6b, 0x6c, 0x44, 0x68, 0x62, 0x5a, 0x73, 0x63, 0x37, 0x74, 0x6b, 0x36, 0x6d, 0x46, 0x42, 0x0a, 0x72, 0x4d, 0x6e, 0x55, 0x56, 0x4e, 0x2b, 0x48, 0x4c, 0x38, 0x63, 0x69, 0x73, 0x69, 0x62, 0x4d, 0x6e, 0x31, 0x6c, 0x55, 0x61, 0x4a, 0x2f, 0x38, 0x76, 0x69, 0x6f, 0x76, 0x78, 0x46, 0x55, 0x63, 0x64, 0x55, 0x42, 0x67, 0x46, 0x34, 0x55, 0x43, 0x56, 0x54, 0x6d, 0x4c, 0x66, 0x77, 0x55, 0x43, 0x41, 0x77, 0x45, 0x41, 0x41, 0x61, 0x4e, 0x43, 0x4d, 0x45, 0x41, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x0a, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x51, 0x59, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x4a, 0x78, 0x66, 0x41, 0x4e, 0x2b, 0x71, 0x41, 0x64, 0x63, 0x77, 0x4b, 0x7a, 0x69, 0x49, 0x6f, 0x72, 0x68, 0x74, 0x53, 0x70, 0x7a, 0x79, 0x45, 0x5a, 0x47, 0x44, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x0a, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x43, 0x77, 0x55, 0x41, 0x41, 0x34, 0x49, 0x42, 0x41, 0x51, 0x42, 0x4c, 0x4e, 0x71, 0x61, 0x45, 0x64, 0x32, 0x6e, 0x64, 0x4f, 0x78, 0x6d, 0x66, 0x5a, 0x79, 0x4d, 0x49, 0x62, 0x77, 0x35, 0x68, 0x79, 0x66, 0x32, 0x45, 0x33, 0x46, 0x2f, 0x59, 0x4e, 0x6f, 0x48, 0x4e, 0x32, 0x42, 0x74, 0x42, 0x4c, 0x5a, 0x39, 0x67, 0x33, 0x63, 0x63, 0x61, 0x61, 0x4e, 0x6e, 0x52, 0x62, 0x6f, 0x62, 0x68, 0x69, 0x43, 0x50, 0x50, 0x0a, 0x45, 0x39, 0x35, 0x44, 0x7a, 0x2b, 0x49, 0x30, 0x73, 0x77, 0x53, 0x64, 0x48, 0x79, 0x6e, 0x56, 0x76, 0x2f, 0x68, 0x65, 0x79, 0x4e, 0x58, 0x42, 0x76, 0x65, 0x36, 0x53, 0x62, 0x7a, 0x4a, 0x30, 0x38, 0x70, 0x47, 0x43, 0x4c, 0x37, 0x32, 0x43, 0x51, 0x6e, 0x71, 0x74, 0x4b, 0x72, 0x63, 0x67, 0x66, 0x55, 0x32, 0x38, 0x65, 0x6c, 0x55, 0x53, 0x77, 0x68, 0x58, 0x71, 0x76, 0x66, 0x64, 0x71, 0x6c, 0x53, 0x35, 0x73, 0x64, 0x4a, 0x2f, 0x50, 0x48, 0x4c, 0x54, 0x79, 0x0a, 0x78, 0x51, 0x47, 0x6a, 0x68, 0x64, 0x42, 0x79, 0x50, 0x71, 0x31, 0x7a, 0x71, 0x77, 0x75, 0x62, 0x64, 0x51, 0x78, 0x74, 0x52, 0x62, 0x65, 0x4f, 0x6c, 0x4b, 0x79, 0x57, 0x4e, 0x37, 0x57, 0x67, 0x30, 0x49, 0x38, 0x56, 0x52, 0x77, 0x37, 0x6a, 0x36, 0x49, 0x50, 0x64, 0x6a, 0x2f, 0x33, 0x76, 0x51, 0x51, 0x46, 0x33, 0x7a, 0x43, 0x65, 0x70, 0x59, 0x6f, 0x55, 0x7a, 0x38, 0x6a, 0x63, 0x49, 0x37, 0x33, 0x48, 0x50, 0x64, 0x77, 0x62, 0x65, 0x79, 0x42, 0x6b, 0x64, 0x0a, 0x69, 0x45, 0x44, 0x50, 0x66, 0x55, 0x59, 0x64, 0x2f, 0x78, 0x37, 0x48, 0x34, 0x63, 0x37, 0x2f, 0x49, 0x39, 0x76, 0x47, 0x2b, 0x6f, 0x31, 0x56, 0x54, 0x71, 0x6b, 0x43, 0x35, 0x30, 0x63, 0x52, 0x52, 0x6a, 0x37, 0x30, 0x2f, 0x62, 0x31, 0x37, 0x4b, 0x53, 0x61, 0x37, 0x71, 0x57, 0x46, 0x69, 0x4e, 0x79, 0x69, 0x32, 0x4c, 0x53, 0x72, 0x32, 0x45, 0x49, 0x5a, 0x6b, 0x79, 0x58, 0x43, 0x6e, 0x30, 0x71, 0x32, 0x33, 0x4b, 0x58, 0x42, 0x35, 0x36, 0x6a, 0x7a, 0x61, 0x0a, 0x59, 0x79, 0x57, 0x66, 0x2f, 0x57, 0x69, 0x33, 0x4d, 0x4f, 0x78, 0x77, 0x2b, 0x33, 0x57, 0x4b, 0x74, 0x32, 0x31, 0x67, 0x5a, 0x37, 0x49, 0x65, 0x79, 0x4c, 0x6e, 0x70, 0x32, 0x4b, 0x68, 0x76, 0x41, 0x6f, 0x74, 0x6e, 0x44, 0x55, 0x30, 0x6d, 0x56, 0x33, 0x48, 0x61, 0x49, 0x50, 0x7a, 0x42, 0x53, 0x6c, 0x43, 0x4e, 0x73, 0x53, 0x69, 0x36, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x41, 0x66, 0x66, 0x69, 0x72, 0x6d, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x69, 0x61, 0x6c, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x44, 0x54, 0x44, 0x43, 0x43, 0x41, 0x6a, 0x53, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x49, 0x64, 0x33, 0x63, 0x47, 0x4a, 0x79, 0x61, 0x70, 0x73, 0x58, 0x77, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x77, 0x52, 0x44, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x46, 0x44, 0x41, 0x53, 0x0a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x43, 0x30, 0x46, 0x6d, 0x5a, 0x6d, 0x6c, 0x79, 0x62, 0x56, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x4d, 0x52, 0x38, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x44, 0x42, 0x5a, 0x42, 0x5a, 0x6d, 0x5a, 0x70, 0x63, 0x6d, 0x31, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x42, 0x44, 0x62, 0x32, 0x31, 0x74, 0x5a, 0x58, 0x4a, 0x6a, 0x61, 0x57, 0x46, 0x73, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x45, 0x77, 0x0a, 0x4d, 0x44, 0x45, 0x79, 0x4f, 0x54, 0x45, 0x30, 0x4d, 0x44, 0x59, 0x77, 0x4e, 0x6c, 0x6f, 0x58, 0x44, 0x54, 0x4d, 0x77, 0x4d, 0x54, 0x49, 0x7a, 0x4d, 0x54, 0x45, 0x30, 0x4d, 0x44, 0x59, 0x77, 0x4e, 0x6c, 0x6f, 0x77, 0x52, 0x44, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x46, 0x44, 0x41, 0x53, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x43, 0x30, 0x46, 0x6d, 0x5a, 0x6d, 0x6c, 0x79, 0x0a, 0x62, 0x56, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x4d, 0x52, 0x38, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x44, 0x42, 0x5a, 0x42, 0x5a, 0x6d, 0x5a, 0x70, 0x63, 0x6d, 0x31, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x42, 0x44, 0x62, 0x32, 0x31, 0x74, 0x5a, 0x58, 0x4a, 0x6a, 0x61, 0x57, 0x46, 0x73, 0x4d, 0x49, 0x49, 0x42, 0x49, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x45, 0x46, 0x0a, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x51, 0x38, 0x41, 0x4d, 0x49, 0x49, 0x42, 0x43, 0x67, 0x4b, 0x43, 0x41, 0x51, 0x45, 0x41, 0x39, 0x68, 0x74, 0x50, 0x5a, 0x77, 0x63, 0x72, 0x6f, 0x52, 0x58, 0x31, 0x42, 0x69, 0x4c, 0x4c, 0x48, 0x77, 0x47, 0x79, 0x34, 0x33, 0x4e, 0x46, 0x42, 0x6b, 0x52, 0x4a, 0x4c, 0x4c, 0x74, 0x4a, 0x4a, 0x52, 0x54, 0x57, 0x7a, 0x73, 0x4f, 0x33, 0x71, 0x79, 0x78, 0x50, 0x78, 0x6b, 0x45, 0x79, 0x6c, 0x46, 0x66, 0x36, 0x45, 0x71, 0x64, 0x62, 0x0a, 0x44, 0x75, 0x4b, 0x50, 0x48, 0x78, 0x36, 0x47, 0x47, 0x61, 0x65, 0x71, 0x74, 0x53, 0x32, 0x35, 0x58, 0x77, 0x32, 0x4b, 0x77, 0x71, 0x2b, 0x46, 0x4e, 0x58, 0x6b, 0x79, 0x4c, 0x62, 0x73, 0x63, 0x59, 0x6a, 0x66, 0x79, 0x73, 0x56, 0x74, 0x4b, 0x50, 0x63, 0x72, 0x4e, 0x63, 0x56, 0x2f, 0x70, 0x51, 0x72, 0x36, 0x55, 0x36, 0x4d, 0x6a, 0x65, 0x2b, 0x53, 0x4a, 0x49, 0x5a, 0x4d, 0x62, 0x6c, 0x71, 0x38, 0x59, 0x72, 0x62, 0x61, 0x30, 0x46, 0x38, 0x50, 0x72, 0x56, 0x0a, 0x43, 0x38, 0x2b, 0x61, 0x35, 0x66, 0x42, 0x51, 0x70, 0x49, 0x73, 0x37, 0x52, 0x36, 0x55, 0x6a, 0x57, 0x33, 0x70, 0x36, 0x2b, 0x44, 0x4d, 0x2f, 0x75, 0x4f, 0x2b, 0x5a, 0x6c, 0x2b, 0x4d, 0x67, 0x77, 0x64, 0x59, 0x6f, 0x69, 0x63, 0x2b, 0x55, 0x2b, 0x37, 0x6c, 0x46, 0x37, 0x65, 0x4e, 0x41, 0x46, 0x78, 0x48, 0x55, 0x64, 0x50, 0x41, 0x4c, 0x4d, 0x65, 0x49, 0x72, 0x4a, 0x6d, 0x71, 0x62, 0x54, 0x46, 0x65, 0x75, 0x72, 0x43, 0x41, 0x2b, 0x75, 0x6b, 0x56, 0x36, 0x0a, 0x42, 0x66, 0x4f, 0x39, 0x6d, 0x32, 0x6b, 0x56, 0x72, 0x6e, 0x31, 0x4f, 0x49, 0x47, 0x50, 0x45, 0x4e, 0x58, 0x59, 0x36, 0x42, 0x77, 0x4c, 0x4a, 0x4e, 0x2f, 0x33, 0x48, 0x52, 0x2b, 0x37, 0x6f, 0x38, 0x58, 0x59, 0x64, 0x63, 0x78, 0x58, 0x79, 0x6c, 0x36, 0x53, 0x31, 0x79, 0x48, 0x70, 0x35, 0x32, 0x55, 0x4b, 0x71, 0x4b, 0x33, 0x39, 0x63, 0x2f, 0x73, 0x34, 0x6d, 0x54, 0x36, 0x4e, 0x6d, 0x67, 0x54, 0x57, 0x76, 0x52, 0x4c, 0x70, 0x55, 0x48, 0x68, 0x77, 0x77, 0x0a, 0x4d, 0x6d, 0x57, 0x64, 0x35, 0x6a, 0x79, 0x54, 0x58, 0x6c, 0x42, 0x4f, 0x65, 0x75, 0x4d, 0x36, 0x31, 0x47, 0x37, 0x4d, 0x47, 0x76, 0x76, 0x35, 0x30, 0x6a, 0x65, 0x75, 0x4a, 0x43, 0x71, 0x72, 0x56, 0x77, 0x4d, 0x69, 0x4b, 0x41, 0x31, 0x4a, 0x64, 0x58, 0x2b, 0x33, 0x4b, 0x4e, 0x70, 0x31, 0x76, 0x34, 0x37, 0x6a, 0x33, 0x41, 0x35, 0x35, 0x4d, 0x51, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x0a, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x6e, 0x5a, 0x50, 0x47, 0x55, 0x34, 0x74, 0x65, 0x79, 0x71, 0x38, 0x2f, 0x6e, 0x78, 0x34, 0x50, 0x35, 0x5a, 0x6d, 0x56, 0x76, 0x43, 0x54, 0x32, 0x6c, 0x49, 0x38, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x0a, 0x41, 0x51, 0x59, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x45, 0x42, 0x41, 0x46, 0x69, 0x73, 0x39, 0x41, 0x51, 0x4f, 0x7a, 0x63, 0x41, 0x4e, 0x2f, 0x77, 0x72, 0x39, 0x31, 0x4c, 0x6f, 0x57, 0x58, 0x79, 0x6d, 0x39, 0x65, 0x32, 0x69, 0x5a, 0x57, 0x45, 0x6e, 0x53, 0x74, 0x42, 0x30, 0x33, 0x54, 0x58, 0x38, 0x6e, 0x66, 0x55, 0x59, 0x47, 0x58, 0x55, 0x50, 0x47, 0x0a, 0x68, 0x69, 0x34, 0x2b, 0x63, 0x37, 0x49, 0x6d, 0x66, 0x55, 0x2b, 0x54, 0x71, 0x62, 0x62, 0x45, 0x4b, 0x70, 0x71, 0x72, 0x49, 0x5a, 0x63, 0x55, 0x73, 0x64, 0x36, 0x4d, 0x30, 0x36, 0x75, 0x4a, 0x46, 0x64, 0x68, 0x72, 0x4a, 0x4e, 0x54, 0x78, 0x46, 0x71, 0x37, 0x59, 0x70, 0x46, 0x7a, 0x55, 0x66, 0x31, 0x47, 0x4f, 0x37, 0x52, 0x67, 0x42, 0x73, 0x5a, 0x4e, 0x6a, 0x76, 0x62, 0x7a, 0x34, 0x59, 0x59, 0x43, 0x61, 0x6e, 0x72, 0x48, 0x4f, 0x51, 0x6e, 0x44, 0x69, 0x0a, 0x71, 0x58, 0x30, 0x47, 0x4a, 0x58, 0x30, 0x6e, 0x6f, 0x66, 0x35, 0x76, 0x37, 0x4c, 0x4d, 0x65, 0x4a, 0x4e, 0x72, 0x6a, 0x53, 0x31, 0x55, 0x61, 0x41, 0x44, 0x73, 0x31, 0x74, 0x44, 0x76, 0x5a, 0x31, 0x31, 0x30, 0x77, 0x2f, 0x59, 0x45, 0x54, 0x69, 0x66, 0x4c, 0x43, 0x42, 0x69, 0x76, 0x74, 0x5a, 0x38, 0x53, 0x4f, 0x79, 0x55, 0x4f, 0x79, 0x58, 0x47, 0x73, 0x56, 0x69, 0x51, 0x4b, 0x38, 0x59, 0x76, 0x78, 0x4f, 0x38, 0x72, 0x55, 0x7a, 0x71, 0x72, 0x4a, 0x76, 0x0a, 0x30, 0x77, 0x71, 0x69, 0x55, 0x4f, 0x50, 0x32, 0x4f, 0x2b, 0x67, 0x75, 0x52, 0x4d, 0x4c, 0x62, 0x5a, 0x6a, 0x69, 0x70, 0x4d, 0x31, 0x5a, 0x49, 0x38, 0x57, 0x30, 0x62, 0x4d, 0x34, 0x30, 0x4e, 0x6a, 0x44, 0x39, 0x67, 0x4e, 0x35, 0x33, 0x54, 0x79, 0x6d, 0x31, 0x2b, 0x4e, 0x48, 0x34, 0x4e, 0x6e, 0x33, 0x4a, 0x32, 0x69, 0x78, 0x75, 0x66, 0x63, 0x76, 0x31, 0x53, 0x4e, 0x55, 0x46, 0x46, 0x41, 0x70, 0x59, 0x76, 0x48, 0x4c, 0x4b, 0x61, 0x63, 0x30, 0x6b, 0x68, 0x0a, 0x73, 0x55, 0x6c, 0x48, 0x52, 0x55, 0x65, 0x30, 0x37, 0x32, 0x6f, 0x30, 0x45, 0x63, 0x6c, 0x4e, 0x6d, 0x73, 0x78, 0x5a, 0x74, 0x39, 0x59, 0x43, 0x6e, 0x6c, 0x70, 0x4f, 0x5a, 0x62, 0x57, 0x55, 0x72, 0x68, 0x76, 0x66, 0x4b, 0x62, 0x41, 0x57, 0x38, 0x62, 0x38, 0x41, 0x6e, 0x67, 0x63, 0x36, 0x46, 0x32, 0x53, 0x31, 0x42, 0x4c, 0x55, 0x6a, 0x49, 0x5a, 0x6b, 0x4b, 0x6c, 0x54, 0x75, 0x58, 0x66, 0x4f, 0x38, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x41, 0x66, 0x66, 0x69, 0x72, 0x6d, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x44, 0x54, 0x44, 0x43, 0x43, 0x41, 0x6a, 0x53, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x49, 0x66, 0x45, 0x38, 0x45, 0x4f, 0x52, 0x7a, 0x55, 0x6d, 0x53, 0x30, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x46, 0x42, 0x51, 0x41, 0x77, 0x52, 0x44, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x46, 0x44, 0x41, 0x53, 0x0a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x43, 0x30, 0x46, 0x6d, 0x5a, 0x6d, 0x6c, 0x79, 0x62, 0x56, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x4d, 0x52, 0x38, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x44, 0x42, 0x5a, 0x42, 0x5a, 0x6d, 0x5a, 0x70, 0x63, 0x6d, 0x31, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x42, 0x4f, 0x5a, 0x58, 0x52, 0x33, 0x62, 0x33, 0x4a, 0x72, 0x61, 0x57, 0x35, 0x6e, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x45, 0x77, 0x0a, 0x4d, 0x44, 0x45, 0x79, 0x4f, 0x54, 0x45, 0x30, 0x4d, 0x44, 0x67, 0x79, 0x4e, 0x46, 0x6f, 0x58, 0x44, 0x54, 0x4d, 0x77, 0x4d, 0x54, 0x49, 0x7a, 0x4d, 0x54, 0x45, 0x30, 0x4d, 0x44, 0x67, 0x79, 0x4e, 0x46, 0x6f, 0x77, 0x52, 0x44, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x46, 0x44, 0x41, 0x53, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x43, 0x30, 0x46, 0x6d, 0x5a, 0x6d, 0x6c, 0x79, 0x0a, 0x62, 0x56, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x4d, 0x52, 0x38, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x44, 0x42, 0x5a, 0x42, 0x5a, 0x6d, 0x5a, 0x70, 0x63, 0x6d, 0x31, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x42, 0x4f, 0x5a, 0x58, 0x52, 0x33, 0x62, 0x33, 0x4a, 0x72, 0x61, 0x57, 0x35, 0x6e, 0x4d, 0x49, 0x49, 0x42, 0x49, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x45, 0x46, 0x0a, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x51, 0x38, 0x41, 0x4d, 0x49, 0x49, 0x42, 0x43, 0x67, 0x4b, 0x43, 0x41, 0x51, 0x45, 0x41, 0x74, 0x49, 0x54, 0x4d, 0x4d, 0x78, 0x63, 0x75, 0x61, 0x35, 0x52, 0x73, 0x61, 0x32, 0x46, 0x53, 0x6f, 0x4f, 0x75, 0x6a, 0x7a, 0x33, 0x6d, 0x55, 0x54, 0x4f, 0x57, 0x55, 0x67, 0x4a, 0x6e, 0x4c, 0x56, 0x57, 0x52, 0x45, 0x5a, 0x59, 0x39, 0x6e, 0x5a, 0x4f, 0x49, 0x47, 0x34, 0x31, 0x77, 0x33, 0x53, 0x66, 0x59, 0x76, 0x6d, 0x34, 0x53, 0x45, 0x0a, 0x48, 0x69, 0x33, 0x79, 0x59, 0x4a, 0x30, 0x77, 0x54, 0x73, 0x79, 0x45, 0x68, 0x65, 0x49, 0x73, 0x7a, 0x78, 0x36, 0x65, 0x2f, 0x6a, 0x61, 0x72, 0x4d, 0x33, 0x63, 0x31, 0x52, 0x4e, 0x67, 0x31, 0x6c, 0x68, 0x6f, 0x39, 0x4e, 0x75, 0x68, 0x36, 0x44, 0x74, 0x6a, 0x56, 0x52, 0x36, 0x46, 0x71, 0x61, 0x59, 0x76, 0x5a, 0x2f, 0x4c, 0x73, 0x36, 0x72, 0x6e, 0x6c, 0x61, 0x31, 0x66, 0x54, 0x57, 0x63, 0x62, 0x75, 0x61, 0x6b, 0x43, 0x4e, 0x72, 0x6d, 0x72, 0x65, 0x49, 0x0a, 0x64, 0x49, 0x63, 0x4d, 0x48, 0x6c, 0x2b, 0x35, 0x6e, 0x69, 0x33, 0x36, 0x71, 0x31, 0x4d, 0x72, 0x33, 0x4c, 0x74, 0x32, 0x50, 0x70, 0x4e, 0x4d, 0x43, 0x41, 0x69, 0x4d, 0x48, 0x71, 0x49, 0x6a, 0x48, 0x4e, 0x52, 0x71, 0x72, 0x53, 0x4b, 0x36, 0x6d, 0x51, 0x45, 0x75, 0x62, 0x57, 0x58, 0x4c, 0x76, 0x69, 0x52, 0x6d, 0x56, 0x53, 0x52, 0x4c, 0x51, 0x45, 0x53, 0x78, 0x47, 0x39, 0x66, 0x68, 0x77, 0x6f, 0x58, 0x41, 0x33, 0x68, 0x41, 0x2f, 0x50, 0x65, 0x32, 0x34, 0x0a, 0x2f, 0x50, 0x48, 0x78, 0x49, 0x31, 0x50, 0x63, 0x76, 0x32, 0x57, 0x58, 0x62, 0x39, 0x6e, 0x35, 0x51, 0x48, 0x47, 0x4e, 0x66, 0x62, 0x32, 0x56, 0x31, 0x4d, 0x36, 0x2b, 0x6f, 0x46, 0x34, 0x6e, 0x49, 0x39, 0x37, 0x39, 0x70, 0x74, 0x41, 0x6d, 0x44, 0x67, 0x41, 0x70, 0x36, 0x7a, 0x78, 0x47, 0x38, 0x44, 0x31, 0x67, 0x76, 0x7a, 0x39, 0x51, 0x30, 0x74, 0x77, 0x6d, 0x51, 0x56, 0x47, 0x65, 0x46, 0x44, 0x64, 0x43, 0x42, 0x4b, 0x4e, 0x77, 0x56, 0x36, 0x67, 0x62, 0x0a, 0x68, 0x2b, 0x30, 0x74, 0x2b, 0x6e, 0x76, 0x75, 0x6a, 0x41, 0x72, 0x6a, 0x71, 0x57, 0x61, 0x4a, 0x47, 0x63, 0x74, 0x42, 0x2b, 0x64, 0x31, 0x45, 0x4e, 0x6d, 0x48, 0x50, 0x34, 0x6e, 0x64, 0x47, 0x79, 0x48, 0x33, 0x32, 0x39, 0x4a, 0x4b, 0x42, 0x4e, 0x76, 0x33, 0x62, 0x4e, 0x50, 0x46, 0x79, 0x66, 0x76, 0x4d, 0x4d, 0x46, 0x72, 0x32, 0x30, 0x46, 0x51, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x0a, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x42, 0x78, 0x2f, 0x53, 0x35, 0x35, 0x7a, 0x61, 0x77, 0x6d, 0x36, 0x69, 0x51, 0x4c, 0x53, 0x77, 0x65, 0x6c, 0x41, 0x51, 0x55, 0x48, 0x54, 0x45, 0x79, 0x4c, 0x30, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x0a, 0x41, 0x51, 0x59, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x46, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x45, 0x42, 0x41, 0x49, 0x6c, 0x58, 0x73, 0x68, 0x5a, 0x36, 0x71, 0x4d, 0x4c, 0x39, 0x31, 0x74, 0x6d, 0x62, 0x6d, 0x7a, 0x54, 0x43, 0x6e, 0x4c, 0x51, 0x79, 0x46, 0x45, 0x32, 0x6e, 0x70, 0x4e, 0x2f, 0x73, 0x76, 0x71, 0x65, 0x2b, 0x2b, 0x45, 0x50, 0x62, 0x6b, 0x54, 0x66, 0x4f, 0x74, 0x44, 0x49, 0x75, 0x0a, 0x55, 0x46, 0x55, 0x61, 0x4e, 0x55, 0x35, 0x32, 0x51, 0x33, 0x45, 0x67, 0x37, 0x35, 0x4e, 0x33, 0x54, 0x68, 0x56, 0x77, 0x4c, 0x6f, 0x66, 0x44, 0x77, 0x52, 0x31, 0x74, 0x33, 0x4d, 0x75, 0x31, 0x4a, 0x39, 0x51, 0x73, 0x56, 0x74, 0x46, 0x53, 0x55, 0x7a, 0x70, 0x45, 0x30, 0x6e, 0x50, 0x49, 0x78, 0x42, 0x73, 0x46, 0x5a, 0x56, 0x70, 0x69, 0x6b, 0x70, 0x7a, 0x75, 0x51, 0x59, 0x30, 0x78, 0x32, 0x2b, 0x63, 0x30, 0x36, 0x6c, 0x6b, 0x68, 0x31, 0x51, 0x46, 0x36, 0x0a, 0x31, 0x32, 0x53, 0x34, 0x5a, 0x44, 0x6e, 0x4e, 0x79, 0x65, 0x32, 0x76, 0x37, 0x55, 0x73, 0x44, 0x53, 0x4b, 0x65, 0x67, 0x6d, 0x51, 0x47, 0x41, 0x33, 0x47, 0x57, 0x6a, 0x4e, 0x71, 0x35, 0x6c, 0x57, 0x55, 0x68, 0x50, 0x67, 0x6b, 0x76, 0x49, 0x5a, 0x66, 0x46, 0x58, 0x48, 0x65, 0x56, 0x5a, 0x4c, 0x67, 0x6f, 0x2f, 0x62, 0x4e, 0x6a, 0x52, 0x39, 0x65, 0x55, 0x4a, 0x74, 0x47, 0x78, 0x55, 0x41, 0x41, 0x72, 0x67, 0x46, 0x55, 0x32, 0x48, 0x64, 0x57, 0x32, 0x33, 0x0a, 0x57, 0x4a, 0x5a, 0x61, 0x33, 0x57, 0x33, 0x53, 0x41, 0x4b, 0x44, 0x30, 0x6d, 0x30, 0x69, 0x2b, 0x77, 0x7a, 0x65, 0x6b, 0x75, 0x6a, 0x62, 0x67, 0x66, 0x49, 0x65, 0x46, 0x6c, 0x78, 0x6f, 0x56, 0x6f, 0x74, 0x34, 0x75, 0x6f, 0x6c, 0x75, 0x39, 0x72, 0x78, 0x6a, 0x35, 0x6b, 0x46, 0x44, 0x4e, 0x63, 0x46, 0x6e, 0x34, 0x4a, 0x32, 0x64, 0x48, 0x79, 0x38, 0x65, 0x67, 0x42, 0x7a, 0x70, 0x39, 0x30, 0x53, 0x78, 0x64, 0x62, 0x42, 0x6b, 0x36, 0x5a, 0x72, 0x56, 0x39, 0x0a, 0x2f, 0x5a, 0x46, 0x76, 0x67, 0x72, 0x47, 0x2b, 0x43, 0x4a, 0x50, 0x62, 0x46, 0x45, 0x66, 0x78, 0x6f, 0x6a, 0x66, 0x48, 0x52, 0x5a, 0x34, 0x38, 0x78, 0x33, 0x65, 0x76, 0x5a, 0x4b, 0x69, 0x54, 0x33, 0x2f, 0x5a, 0x70, 0x67, 0x34, 0x4a, 0x67, 0x38, 0x6b, 0x6c, 0x43, 0x4e, 0x4f, 0x31, 0x61, 0x41, 0x46, 0x53, 0x46, 0x48, 0x42, 0x59, 0x32, 0x6b, 0x67, 0x78, 0x63, 0x2b, 0x71, 0x61, 0x74, 0x76, 0x39, 0x73, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x41, 0x66, 0x66, 0x69, 0x72, 0x6d, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x50, 0x72, 0x65, 0x6d, 0x69, 0x75, 0x6d, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x52, 0x6a, 0x43, 0x43, 0x41, 0x79, 0x36, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x49, 0x62, 0x59, 0x77, 0x55, 0x52, 0x72, 0x47, 0x6d, 0x43, 0x75, 0x34, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4d, 0x42, 0x51, 0x41, 0x77, 0x51, 0x54, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x46, 0x44, 0x41, 0x53, 0x0a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x43, 0x30, 0x46, 0x6d, 0x5a, 0x6d, 0x6c, 0x79, 0x62, 0x56, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x4d, 0x52, 0x77, 0x77, 0x47, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x44, 0x42, 0x4e, 0x42, 0x5a, 0x6d, 0x5a, 0x70, 0x63, 0x6d, 0x31, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x42, 0x51, 0x63, 0x6d, 0x56, 0x74, 0x61, 0x58, 0x56, 0x74, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x45, 0x77, 0x4d, 0x44, 0x45, 0x79, 0x0a, 0x4f, 0x54, 0x45, 0x30, 0x4d, 0x54, 0x41, 0x7a, 0x4e, 0x6c, 0x6f, 0x58, 0x44, 0x54, 0x51, 0x77, 0x4d, 0x54, 0x49, 0x7a, 0x4d, 0x54, 0x45, 0x30, 0x4d, 0x54, 0x41, 0x7a, 0x4e, 0x6c, 0x6f, 0x77, 0x51, 0x54, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x46, 0x44, 0x41, 0x53, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x43, 0x30, 0x46, 0x6d, 0x5a, 0x6d, 0x6c, 0x79, 0x62, 0x56, 0x52, 0x79, 0x0a, 0x64, 0x58, 0x4e, 0x30, 0x4d, 0x52, 0x77, 0x77, 0x47, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x44, 0x42, 0x4e, 0x42, 0x5a, 0x6d, 0x5a, 0x70, 0x63, 0x6d, 0x31, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x42, 0x51, 0x63, 0x6d, 0x56, 0x74, 0x61, 0x58, 0x56, 0x74, 0x4d, 0x49, 0x49, 0x43, 0x49, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x45, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x38, 0x41, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x43, 0x67, 0x4b, 0x43, 0x41, 0x67, 0x45, 0x41, 0x78, 0x42, 0x4c, 0x66, 0x71, 0x56, 0x2f, 0x2b, 0x51, 0x64, 0x33, 0x64, 0x39, 0x5a, 0x2b, 0x4b, 0x34, 0x2f, 0x61, 0x73, 0x34, 0x54, 0x78, 0x34, 0x6d, 0x72, 0x7a, 0x59, 0x38, 0x48, 0x39, 0x36, 0x6f, 0x44, 0x4d, 0x71, 0x33, 0x49, 0x30, 0x67, 0x57, 0x36, 0x34, 0x74, 0x62, 0x2b, 0x65, 0x54, 0x32, 0x54, 0x5a, 0x77, 0x61, 0x6d, 0x6a, 0x50, 0x6a, 0x6c, 0x47, 0x6a, 0x68, 0x56, 0x74, 0x6e, 0x0a, 0x42, 0x4b, 0x41, 0x51, 0x4a, 0x47, 0x39, 0x64, 0x4b, 0x49, 0x4c, 0x42, 0x6c, 0x31, 0x66, 0x59, 0x53, 0x43, 0x6b, 0x54, 0x74, 0x75, 0x47, 0x2b, 0x6b, 0x55, 0x33, 0x66, 0x68, 0x51, 0x78, 0x54, 0x47, 0x4a, 0x6f, 0x65, 0x4a, 0x4b, 0x4a, 0x50, 0x6a, 0x2f, 0x43, 0x69, 0x68, 0x51, 0x76, 0x4c, 0x39, 0x43, 0x6c, 0x2f, 0x30, 0x71, 0x52, 0x59, 0x37, 0x69, 0x5a, 0x4e, 0x79, 0x61, 0x71, 0x6f, 0x65, 0x35, 0x72, 0x5a, 0x2b, 0x6a, 0x6a, 0x65, 0x52, 0x46, 0x63, 0x56, 0x0a, 0x35, 0x66, 0x69, 0x4d, 0x79, 0x4e, 0x6c, 0x49, 0x34, 0x67, 0x30, 0x57, 0x4a, 0x78, 0x30, 0x65, 0x79, 0x49, 0x4f, 0x46, 0x4a, 0x62, 0x65, 0x36, 0x71, 0x6c, 0x56, 0x42, 0x7a, 0x41, 0x4d, 0x69, 0x53, 0x79, 0x32, 0x52, 0x6a, 0x59, 0x76, 0x6d, 0x69, 0x61, 0x39, 0x6d, 0x78, 0x2b, 0x6e, 0x2f, 0x4b, 0x2b, 0x6b, 0x38, 0x72, 0x4e, 0x72, 0x53, 0x73, 0x38, 0x50, 0x68, 0x61, 0x4a, 0x79, 0x4a, 0x2b, 0x48, 0x6f, 0x41, 0x56, 0x74, 0x37, 0x30, 0x56, 0x5a, 0x56, 0x73, 0x0a, 0x2b, 0x37, 0x70, 0x6b, 0x33, 0x57, 0x4b, 0x4c, 0x33, 0x77, 0x74, 0x33, 0x4d, 0x75, 0x74, 0x69, 0x7a, 0x43, 0x61, 0x61, 0x6d, 0x37, 0x75, 0x71, 0x59, 0x6f, 0x4e, 0x4d, 0x74, 0x41, 0x5a, 0x36, 0x4d, 0x4d, 0x67, 0x70, 0x76, 0x2b, 0x30, 0x47, 0x54, 0x5a, 0x65, 0x35, 0x48, 0x4d, 0x51, 0x78, 0x4b, 0x39, 0x56, 0x66, 0x76, 0x46, 0x4d, 0x53, 0x46, 0x35, 0x79, 0x5a, 0x56, 0x79, 0x6c, 0x6d, 0x64, 0x32, 0x45, 0x68, 0x4d, 0x51, 0x63, 0x75, 0x4a, 0x55, 0x6d, 0x64, 0x0a, 0x47, 0x50, 0x4c, 0x75, 0x38, 0x79, 0x74, 0x78, 0x6a, 0x4c, 0x57, 0x36, 0x4f, 0x51, 0x64, 0x4a, 0x64, 0x2f, 0x7a, 0x76, 0x4c, 0x70, 0x4b, 0x51, 0x42, 0x59, 0x30, 0x74, 0x4c, 0x33, 0x64, 0x37, 0x37, 0x30, 0x4f, 0x2f, 0x4e, 0x62, 0x75, 0x61, 0x32, 0x50, 0x6c, 0x7a, 0x70, 0x79, 0x7a, 0x79, 0x30, 0x46, 0x66, 0x75, 0x4b, 0x45, 0x34, 0x6d, 0x58, 0x34, 0x2b, 0x51, 0x61, 0x41, 0x6b, 0x76, 0x75, 0x50, 0x6a, 0x63, 0x42, 0x75, 0x6b, 0x75, 0x6d, 0x6a, 0x35, 0x52, 0x0a, 0x70, 0x39, 0x45, 0x69, 0x78, 0x41, 0x71, 0x6e, 0x4f, 0x45, 0x68, 0x73, 0x73, 0x2f, 0x6e, 0x2f, 0x66, 0x61, 0x75, 0x47, 0x56, 0x2b, 0x4f, 0x36, 0x31, 0x6f, 0x56, 0x34, 0x64, 0x37, 0x70, 0x44, 0x36, 0x6b, 0x68, 0x2f, 0x39, 0x74, 0x69, 0x2b, 0x49, 0x32, 0x30, 0x65, 0x76, 0x39, 0x45, 0x32, 0x62, 0x46, 0x68, 0x63, 0x38, 0x65, 0x36, 0x6b, 0x47, 0x56, 0x51, 0x61, 0x39, 0x51, 0x50, 0x53, 0x64, 0x75, 0x62, 0x68, 0x6a, 0x4c, 0x30, 0x38, 0x73, 0x39, 0x4e, 0x49, 0x0a, 0x53, 0x2b, 0x4c, 0x49, 0x2b, 0x48, 0x2b, 0x53, 0x71, 0x48, 0x5a, 0x47, 0x6e, 0x45, 0x4a, 0x6c, 0x50, 0x71, 0x51, 0x65, 0x77, 0x51, 0x63, 0x44, 0x57, 0x6b, 0x59, 0x74, 0x75, 0x4a, 0x66, 0x7a, 0x74, 0x39, 0x57, 0x79, 0x56, 0x53, 0x48, 0x76, 0x75, 0x74, 0x78, 0x4d, 0x41, 0x4a, 0x66, 0x37, 0x46, 0x4a, 0x55, 0x6e, 0x4d, 0x37, 0x2f, 0x6f, 0x51, 0x30, 0x64, 0x47, 0x30, 0x67, 0x69, 0x5a, 0x46, 0x6d, 0x41, 0x37, 0x6d, 0x6e, 0x37, 0x53, 0x35, 0x75, 0x30, 0x34, 0x0a, 0x36, 0x75, 0x77, 0x42, 0x48, 0x6a, 0x78, 0x49, 0x56, 0x6b, 0x6b, 0x4a, 0x78, 0x30, 0x77, 0x33, 0x41, 0x4a, 0x36, 0x49, 0x44, 0x73, 0x42, 0x7a, 0x34, 0x57, 0x39, 0x6d, 0x36, 0x58, 0x4a, 0x48, 0x4d, 0x44, 0x34, 0x51, 0x35, 0x51, 0x73, 0x44, 0x79, 0x5a, 0x70, 0x43, 0x41, 0x47, 0x7a, 0x46, 0x6c, 0x48, 0x35, 0x68, 0x78, 0x49, 0x72, 0x66, 0x66, 0x34, 0x49, 0x61, 0x43, 0x31, 0x6e, 0x45, 0x57, 0x54, 0x4a, 0x33, 0x73, 0x37, 0x78, 0x67, 0x61, 0x56, 0x59, 0x35, 0x0a, 0x2f, 0x62, 0x51, 0x47, 0x65, 0x79, 0x7a, 0x57, 0x5a, 0x44, 0x62, 0x5a, 0x76, 0x55, 0x6a, 0x74, 0x68, 0x42, 0x39, 0x2b, 0x70, 0x53, 0x4b, 0x50, 0x4b, 0x72, 0x68, 0x43, 0x39, 0x49, 0x4b, 0x33, 0x31, 0x46, 0x4f, 0x51, 0x65, 0x45, 0x34, 0x74, 0x47, 0x76, 0x32, 0x42, 0x62, 0x30, 0x54, 0x58, 0x4f, 0x77, 0x46, 0x30, 0x6c, 0x6b, 0x4c, 0x67, 0x41, 0x4f, 0x49, 0x75, 0x61, 0x2b, 0x72, 0x46, 0x37, 0x6e, 0x4b, 0x73, 0x75, 0x37, 0x2f, 0x2b, 0x36, 0x71, 0x71, 0x6f, 0x0a, 0x2b, 0x4e, 0x7a, 0x32, 0x73, 0x6e, 0x6d, 0x4b, 0x74, 0x6d, 0x63, 0x43, 0x41, 0x77, 0x45, 0x41, 0x41, 0x61, 0x4e, 0x43, 0x4d, 0x45, 0x41, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x4a, 0x33, 0x41, 0x5a, 0x36, 0x59, 0x4d, 0x49, 0x74, 0x6b, 0x6d, 0x39, 0x55, 0x57, 0x72, 0x70, 0x6d, 0x56, 0x53, 0x45, 0x53, 0x66, 0x59, 0x52, 0x61, 0x78, 0x6a, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x0a, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x45, 0x47, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x44, 0x41, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x41, 0x51, 0x43, 0x7a, 0x56, 0x30, 0x30, 0x51, 0x59, 0x6b, 0x34, 0x36, 0x35, 0x4b, 0x7a, 0x71, 0x75, 0x42, 0x79, 0x76, 0x0a, 0x4d, 0x69, 0x50, 0x49, 0x73, 0x30, 0x6c, 0x61, 0x55, 0x5a, 0x78, 0x32, 0x4b, 0x49, 0x31, 0x35, 0x71, 0x6c, 0x64, 0x47, 0x46, 0x39, 0x58, 0x31, 0x55, 0x76, 0x61, 0x33, 0x52, 0x4f, 0x67, 0x49, 0x52, 0x4c, 0x38, 0x59, 0x68, 0x4e, 0x49, 0x4c, 0x67, 0x4d, 0x33, 0x46, 0x45, 0x76, 0x30, 0x41, 0x56, 0x51, 0x56, 0x68, 0x68, 0x30, 0x48, 0x63, 0x74, 0x53, 0x53, 0x65, 0x50, 0x4d, 0x54, 0x59, 0x79, 0x50, 0x74, 0x77, 0x6e, 0x69, 0x39, 0x34, 0x6c, 0x6f, 0x4d, 0x67, 0x0a, 0x4e, 0x74, 0x35, 0x38, 0x44, 0x32, 0x6b, 0x54, 0x69, 0x4b, 0x56, 0x31, 0x4e, 0x70, 0x67, 0x49, 0x70, 0x73, 0x62, 0x66, 0x72, 0x4d, 0x37, 0x6a, 0x57, 0x4e, 0x61, 0x33, 0x50, 0x74, 0x36, 0x36, 0x38, 0x2b, 0x73, 0x30, 0x51, 0x4e, 0x69, 0x69, 0x67, 0x66, 0x56, 0x34, 0x50, 0x79, 0x2f, 0x56, 0x70, 0x66, 0x7a, 0x5a, 0x6f, 0x74, 0x52, 0x65, 0x42, 0x41, 0x34, 0x58, 0x72, 0x66, 0x35, 0x42, 0x38, 0x4f, 0x57, 0x79, 0x63, 0x76, 0x70, 0x45, 0x67, 0x6a, 0x4e, 0x43, 0x0a, 0x36, 0x43, 0x31, 0x59, 0x39, 0x31, 0x61, 0x4d, 0x59, 0x6a, 0x2b, 0x36, 0x51, 0x72, 0x43, 0x63, 0x44, 0x46, 0x78, 0x2b, 0x4c, 0x6d, 0x55, 0x6d, 0x58, 0x46, 0x4e, 0x50, 0x41, 0x4c, 0x4a, 0x34, 0x66, 0x71, 0x45, 0x4e, 0x6d, 0x53, 0x32, 0x4e, 0x75, 0x42, 0x32, 0x4f, 0x6f, 0x73, 0x53, 0x77, 0x2f, 0x57, 0x44, 0x51, 0x4d, 0x4b, 0x53, 0x4f, 0x79, 0x41, 0x52, 0x69, 0x71, 0x63, 0x54, 0x74, 0x4e, 0x64, 0x35, 0x36, 0x6c, 0x2b, 0x30, 0x4f, 0x4f, 0x46, 0x36, 0x53, 0x0a, 0x4c, 0x35, 0x4e, 0x77, 0x70, 0x61, 0x6d, 0x63, 0x62, 0x36, 0x64, 0x39, 0x45, 0x78, 0x31, 0x2b, 0x78, 0x67, 0x68, 0x49, 0x73, 0x56, 0x35, 0x6e, 0x36, 0x31, 0x45, 0x49, 0x4a, 0x65, 0x6e, 0x6d, 0x4a, 0x57, 0x74, 0x53, 0x4b, 0x5a, 0x47, 0x63, 0x30, 0x6a, 0x6c, 0x7a, 0x43, 0x46, 0x66, 0x65, 0x6d, 0x51, 0x61, 0x30, 0x57, 0x35, 0x30, 0x51, 0x42, 0x75, 0x48, 0x43, 0x41, 0x4b, 0x69, 0x34, 0x48, 0x45, 0x6f, 0x43, 0x43, 0x68, 0x54, 0x51, 0x77, 0x55, 0x48, 0x4b, 0x0a, 0x2b, 0x34, 0x77, 0x31, 0x49, 0x58, 0x32, 0x43, 0x4f, 0x50, 0x4b, 0x70, 0x56, 0x4a, 0x45, 0x5a, 0x4e, 0x5a, 0x4f, 0x55, 0x62, 0x57, 0x6f, 0x36, 0x78, 0x62, 0x4c, 0x51, 0x75, 0x34, 0x6d, 0x47, 0x6b, 0x2b, 0x69, 0x62, 0x79, 0x51, 0x38, 0x36, 0x70, 0x33, 0x71, 0x34, 0x6f, 0x66, 0x42, 0x34, 0x52, 0x76, 0x72, 0x38, 0x4e, 0x79, 0x2f, 0x6c, 0x69, 0x6f, 0x54, 0x7a, 0x33, 0x2f, 0x34, 0x45, 0x32, 0x61, 0x46, 0x6f, 0x6f, 0x43, 0x38, 0x6b, 0x34, 0x67, 0x6d, 0x56, 0x0a, 0x42, 0x74, 0x57, 0x56, 0x79, 0x75, 0x45, 0x6b, 0x6c, 0x75, 0x74, 0x38, 0x39, 0x70, 0x4d, 0x46, 0x75, 0x2b, 0x31, 0x7a, 0x36, 0x53, 0x33, 0x52, 0x64, 0x54, 0x6e, 0x58, 0x35, 0x79, 0x54, 0x62, 0x32, 0x45, 0x35, 0x66, 0x51, 0x34, 0x2b, 0x65, 0x30, 0x42, 0x51, 0x35, 0x76, 0x31, 0x56, 0x77, 0x53, 0x4a, 0x6c, 0x58, 0x4d, 0x62, 0x53, 0x63, 0x37, 0x6b, 0x71, 0x59, 0x41, 0x35, 0x59, 0x77, 0x48, 0x32, 0x41, 0x47, 0x37, 0x68, 0x73, 0x6a, 0x2f, 0x6f, 0x46, 0x67, 0x0a, 0x49, 0x78, 0x70, 0x48, 0x59, 0x6f, 0x57, 0x6c, 0x7a, 0x42, 0x6b, 0x30, 0x67, 0x47, 0x2b, 0x7a, 0x72, 0x42, 0x72, 0x6a, 0x6e, 0x2f, 0x42, 0x37, 0x53, 0x4b, 0x33, 0x56, 0x41, 0x64, 0x6c, 0x6e, 0x74, 0x71, 0x6c, 0x79, 0x6b, 0x2b, 0x6f, 0x74, 0x5a, 0x72, 0x57, 0x79, 0x75, 0x4f, 0x51, 0x39, 0x50, 0x4c, 0x4c, 0x76, 0x54, 0x49, 0x7a, 0x71, 0x36, 0x77, 0x65, 0x2f, 0x71, 0x7a, 0x57, 0x61, 0x56, 0x59, 0x61, 0x38, 0x47, 0x4b, 0x61, 0x31, 0x71, 0x46, 0x36, 0x30, 0x0a, 0x67, 0x32, 0x78, 0x72, 0x61, 0x55, 0x44, 0x54, 0x6e, 0x39, 0x7a, 0x78, 0x77, 0x32, 0x6c, 0x72, 0x75, 0x65, 0x46, 0x74, 0x43, 0x66, 0x54, 0x78, 0x71, 0x6c, 0x42, 0x32, 0x43, 0x6e, 0x70, 0x39, 0x65, 0x68, 0x65, 0x68, 0x56, 0x5a, 0x5a, 0x43, 0x6d, 0x54, 0x45, 0x4a, 0x33, 0x57, 0x41, 0x52, 0x6a, 0x51, 0x55, 0x77, 0x66, 0x75, 0x61, 0x4f, 0x52, 0x74, 0x47, 0x64, 0x46, 0x4e, 0x72, 0x48, 0x46, 0x2b, 0x51, 0x46, 0x6c, 0x6f, 0x7a, 0x45, 0x4a, 0x4c, 0x55, 0x62, 0x0a, 0x7a, 0x78, 0x51, 0x48, 0x73, 0x6b, 0x44, 0x34, 0x6f, 0x35, 0x35, 0x42, 0x68, 0x72, 0x77, 0x45, 0x30, 0x47, 0x75, 0x57, 0x79, 0x43, 0x71, 0x41, 0x4e, 0x50, 0x32, 0x2f, 0x37, 0x77, 0x61, 0x6a, 0x33, 0x56, 0x6a, 0x46, 0x68, 0x54, 0x30, 0x2b, 0x6a, 0x2f, 0x36, 0x65, 0x4b, 0x65, 0x43, 0x32, 0x75, 0x41, 0x6c, 0x6f, 0x47, 0x52, 0x77, 0x59, 0x51, 0x77, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x41, 0x66, 0x66, 0x69, 0x72, 0x6d, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x50, 0x72, 0x65, 0x6d, 0x69, 0x75, 0x6d, 0x20, 0x45, 0x43, 0x43, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x42, 0x2f, 0x6a, 0x43, 0x43, 0x41, 0x59, 0x57, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x49, 0x64, 0x4a, 0x63, 0x6c, 0x69, 0x73, 0x63, 0x2f, 0x65, 0x6c, 0x51, 0x77, 0x43, 0x67, 0x59, 0x49, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x45, 0x41, 0x77, 0x4d, 0x77, 0x52, 0x54, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x46, 0x44, 0x41, 0x53, 0x42, 0x67, 0x4e, 0x56, 0x0a, 0x42, 0x41, 0x6f, 0x4d, 0x43, 0x30, 0x46, 0x6d, 0x5a, 0x6d, 0x6c, 0x79, 0x62, 0x56, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x4d, 0x53, 0x41, 0x77, 0x48, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x44, 0x42, 0x64, 0x42, 0x5a, 0x6d, 0x5a, 0x70, 0x63, 0x6d, 0x31, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x42, 0x51, 0x63, 0x6d, 0x56, 0x74, 0x61, 0x58, 0x56, 0x74, 0x49, 0x45, 0x56, 0x44, 0x51, 0x7a, 0x41, 0x65, 0x46, 0x77, 0x30, 0x78, 0x4d, 0x44, 0x41, 0x78, 0x0a, 0x4d, 0x6a, 0x6b, 0x78, 0x4e, 0x44, 0x49, 0x77, 0x4d, 0x6a, 0x52, 0x61, 0x46, 0x77, 0x30, 0x30, 0x4d, 0x44, 0x45, 0x79, 0x4d, 0x7a, 0x45, 0x78, 0x4e, 0x44, 0x49, 0x77, 0x4d, 0x6a, 0x52, 0x61, 0x4d, 0x45, 0x55, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6c, 0x56, 0x54, 0x4d, 0x52, 0x51, 0x77, 0x45, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x41, 0x74, 0x42, 0x5a, 0x6d, 0x5a, 0x70, 0x63, 0x6d, 0x31, 0x55, 0x0a, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x44, 0x45, 0x67, 0x4d, 0x42, 0x34, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x77, 0x77, 0x58, 0x51, 0x57, 0x5a, 0x6d, 0x61, 0x58, 0x4a, 0x74, 0x56, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x67, 0x55, 0x48, 0x4a, 0x6c, 0x62, 0x57, 0x6c, 0x31, 0x62, 0x53, 0x42, 0x46, 0x51, 0x30, 0x4d, 0x77, 0x64, 0x6a, 0x41, 0x51, 0x42, 0x67, 0x63, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x49, 0x42, 0x42, 0x67, 0x55, 0x72, 0x67, 0x51, 0x51, 0x41, 0x0a, 0x49, 0x67, 0x4e, 0x69, 0x41, 0x41, 0x51, 0x4e, 0x4d, 0x46, 0x34, 0x62, 0x46, 0x5a, 0x30, 0x44, 0x30, 0x4b, 0x46, 0x35, 0x4e, 0x62, 0x63, 0x36, 0x50, 0x4a, 0x4a, 0x36, 0x79, 0x68, 0x55, 0x63, 0x7a, 0x57, 0x4c, 0x7a, 0x6e, 0x43, 0x5a, 0x63, 0x42, 0x7a, 0x33, 0x6c, 0x56, 0x50, 0x71, 0x6a, 0x31, 0x73, 0x77, 0x53, 0x36, 0x76, 0x51, 0x55, 0x58, 0x2b, 0x69, 0x4f, 0x47, 0x61, 0x73, 0x76, 0x4c, 0x6b, 0x6a, 0x6d, 0x72, 0x42, 0x68, 0x44, 0x65, 0x4b, 0x7a, 0x51, 0x0a, 0x4e, 0x38, 0x4f, 0x39, 0x73, 0x73, 0x30, 0x73, 0x35, 0x6b, 0x66, 0x69, 0x47, 0x75, 0x5a, 0x6a, 0x75, 0x44, 0x30, 0x75, 0x4c, 0x33, 0x6a, 0x45, 0x54, 0x39, 0x76, 0x30, 0x44, 0x36, 0x52, 0x6f, 0x54, 0x46, 0x56, 0x79, 0x61, 0x35, 0x55, 0x64, 0x54, 0x68, 0x68, 0x43, 0x6c, 0x58, 0x6a, 0x4d, 0x4e, 0x7a, 0x79, 0x52, 0x34, 0x70, 0x74, 0x6c, 0x4b, 0x79, 0x6d, 0x6a, 0x51, 0x6a, 0x42, 0x41, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x0a, 0x42, 0x42, 0x53, 0x61, 0x72, 0x79, 0x6c, 0x36, 0x77, 0x42, 0x45, 0x31, 0x4e, 0x53, 0x5a, 0x52, 0x4d, 0x41, 0x44, 0x44, 0x61, 0x76, 0x35, 0x41, 0x31, 0x61, 0x37, 0x57, 0x50, 0x44, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x42, 0x6a, 0x41, 0x4b, 0x0a, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x77, 0x4e, 0x6e, 0x41, 0x44, 0x42, 0x6b, 0x41, 0x6a, 0x41, 0x58, 0x43, 0x66, 0x4f, 0x48, 0x69, 0x46, 0x42, 0x61, 0x72, 0x38, 0x6a, 0x41, 0x51, 0x72, 0x39, 0x48, 0x58, 0x2f, 0x56, 0x73, 0x61, 0x6f, 0x62, 0x67, 0x78, 0x43, 0x64, 0x30, 0x35, 0x44, 0x68, 0x54, 0x31, 0x77, 0x56, 0x2f, 0x47, 0x7a, 0x54, 0x6a, 0x78, 0x69, 0x2b, 0x7a, 0x79, 0x67, 0x6b, 0x38, 0x4e, 0x35, 0x33, 0x58, 0x0a, 0x35, 0x37, 0x68, 0x47, 0x38, 0x66, 0x32, 0x68, 0x34, 0x6e, 0x45, 0x43, 0x4d, 0x45, 0x4a, 0x5a, 0x68, 0x30, 0x50, 0x55, 0x55, 0x64, 0x2b, 0x36, 0x30, 0x77, 0x6b, 0x79, 0x57, 0x73, 0x36, 0x49, 0x66, 0x6c, 0x63, 0x39, 0x6e, 0x46, 0x39, 0x43, 0x61, 0x2f, 0x55, 0x48, 0x4c, 0x62, 0x58, 0x77, 0x67, 0x70, 0x50, 0x35, 0x57, 0x57, 0x2b, 0x75, 0x5a, 0x50, 0x70, 0x59, 0x35, 0x59, 0x73, 0x65, 0x34, 0x32, 0x4f, 0x2b, 0x74, 0x59, 0x48, 0x4e, 0x62, 0x77, 0x4b, 0x4d, 0x0a, 0x65, 0x51, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x43, 0x65, 0x72, 0x74, 0x75, 0x6d, 0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x20, 0x43, 0x41, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x44, 0x75, 0x7a, 0x43, 0x43, 0x41, 0x71, 0x4f, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x44, 0x42, 0x45, 0x54, 0x41, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x42, 0x51, 0x55, 0x41, 0x4d, 0x48, 0x34, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6c, 0x42, 0x4d, 0x4d, 0x53, 0x49, 0x77, 0x49, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x0a, 0x45, 0x78, 0x6c, 0x56, 0x62, 0x6d, 0x6c, 0x36, 0x5a, 0x58, 0x52, 0x76, 0x49, 0x46, 0x52, 0x6c, 0x59, 0x32, 0x68, 0x75, 0x62, 0x32, 0x78, 0x76, 0x5a, 0x32, 0x6c, 0x6c, 0x63, 0x79, 0x42, 0x54, 0x4c, 0x6b, 0x45, 0x75, 0x4d, 0x53, 0x63, 0x77, 0x4a, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x78, 0x35, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x64, 0x57, 0x30, 0x67, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x0a, 0x62, 0x69, 0x42, 0x42, 0x64, 0x58, 0x52, 0x6f, 0x62, 0x33, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x78, 0x49, 0x6a, 0x41, 0x67, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x47, 0x55, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x31, 0x62, 0x53, 0x42, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x47, 0x56, 0x6b, 0x49, 0x45, 0x35, 0x6c, 0x64, 0x48, 0x64, 0x76, 0x63, 0x6d, 0x73, 0x67, 0x51, 0x30, 0x45, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x44, 0x67, 0x78, 0x4d, 0x44, 0x49, 0x79, 0x0a, 0x4d, 0x54, 0x49, 0x77, 0x4e, 0x7a, 0x4d, 0x33, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x6a, 0x6b, 0x78, 0x4d, 0x6a, 0x4d, 0x78, 0x4d, 0x54, 0x49, 0x77, 0x4e, 0x7a, 0x4d, 0x33, 0x57, 0x6a, 0x42, 0x2b, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x51, 0x54, 0x44, 0x45, 0x69, 0x4d, 0x43, 0x41, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x5a, 0x56, 0x57, 0x35, 0x70, 0x65, 0x6d, 0x56, 0x30, 0x62, 0x79, 0x42, 0x55, 0x0a, 0x5a, 0x57, 0x4e, 0x6f, 0x62, 0x6d, 0x39, 0x73, 0x62, 0x32, 0x64, 0x70, 0x5a, 0x58, 0x4d, 0x67, 0x55, 0x79, 0x35, 0x42, 0x4c, 0x6a, 0x45, 0x6e, 0x4d, 0x43, 0x55, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x78, 0x4d, 0x65, 0x51, 0x32, 0x56, 0x79, 0x64, 0x48, 0x56, 0x74, 0x49, 0x45, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x70, 0x5a, 0x6d, 0x6c, 0x6a, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x34, 0x67, 0x51, 0x58, 0x56, 0x30, 0x61, 0x47, 0x39, 0x79, 0x61, 0x58, 0x52, 0x35, 0x0a, 0x4d, 0x53, 0x49, 0x77, 0x49, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x6c, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x64, 0x57, 0x30, 0x67, 0x56, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x52, 0x6c, 0x5a, 0x43, 0x42, 0x4f, 0x5a, 0x58, 0x52, 0x33, 0x62, 0x33, 0x4a, 0x72, 0x49, 0x45, 0x4e, 0x42, 0x4d, 0x49, 0x49, 0x42, 0x49, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x45, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x0a, 0x41, 0x51, 0x38, 0x41, 0x4d, 0x49, 0x49, 0x42, 0x43, 0x67, 0x4b, 0x43, 0x41, 0x51, 0x45, 0x41, 0x34, 0x2f, 0x74, 0x39, 0x6f, 0x33, 0x4b, 0x36, 0x77, 0x76, 0x44, 0x4a, 0x46, 0x49, 0x66, 0x31, 0x61, 0x77, 0x46, 0x4f, 0x34, 0x57, 0x35, 0x41, 0x42, 0x37, 0x70, 0x74, 0x4a, 0x31, 0x31, 0x2f, 0x39, 0x31, 0x73, 0x74, 0x73, 0x31, 0x72, 0x48, 0x55, 0x56, 0x2b, 0x72, 0x70, 0x44, 0x4b, 0x6d, 0x59, 0x59, 0x65, 0x32, 0x62, 0x67, 0x2b, 0x47, 0x30, 0x6a, 0x41, 0x43, 0x0a, 0x6c, 0x2f, 0x6a, 0x58, 0x61, 0x56, 0x65, 0x68, 0x47, 0x44, 0x6c, 0x64, 0x61, 0x6d, 0x52, 0x35, 0x78, 0x67, 0x46, 0x5a, 0x72, 0x44, 0x77, 0x78, 0x53, 0x6a, 0x68, 0x38, 0x30, 0x67, 0x54, 0x53, 0x53, 0x79, 0x6a, 0x6f, 0x49, 0x46, 0x38, 0x37, 0x42, 0x36, 0x4c, 0x4d, 0x54, 0x58, 0x50, 0x62, 0x38, 0x36, 0x35, 0x50, 0x78, 0x31, 0x62, 0x56, 0x57, 0x71, 0x65, 0x57, 0x69, 0x66, 0x72, 0x7a, 0x71, 0x32, 0x6a, 0x55, 0x49, 0x34, 0x5a, 0x5a, 0x4a, 0x38, 0x38, 0x4a, 0x0a, 0x4a, 0x37, 0x79, 0x73, 0x62, 0x6e, 0x4b, 0x44, 0x48, 0x44, 0x42, 0x79, 0x33, 0x2b, 0x43, 0x69, 0x36, 0x64, 0x4c, 0x68, 0x64, 0x48, 0x55, 0x5a, 0x76, 0x53, 0x71, 0x65, 0x65, 0x78, 0x56, 0x55, 0x42, 0x42, 0x76, 0x58, 0x51, 0x7a, 0x6d, 0x74, 0x56, 0x53, 0x6a, 0x46, 0x34, 0x68, 0x71, 0x37, 0x39, 0x4d, 0x44, 0x6b, 0x72, 0x6a, 0x68, 0x4a, 0x4d, 0x38, 0x78, 0x32, 0x68, 0x5a, 0x38, 0x35, 0x52, 0x64, 0x4b, 0x6b, 0x6e, 0x76, 0x49, 0x53, 0x6a, 0x46, 0x48, 0x34, 0x0a, 0x66, 0x4f, 0x51, 0x74, 0x66, 0x2f, 0x57, 0x73, 0x58, 0x2b, 0x73, 0x57, 0x6e, 0x37, 0x45, 0x74, 0x30, 0x62, 0x72, 0x4d, 0x6b, 0x55, 0x4a, 0x33, 0x54, 0x43, 0x58, 0x4a, 0x6b, 0x44, 0x68, 0x76, 0x32, 0x2f, 0x44, 0x4d, 0x2b, 0x34, 0x34, 0x65, 0x6c, 0x31, 0x6b, 0x2b, 0x31, 0x57, 0x42, 0x4f, 0x35, 0x67, 0x55, 0x6f, 0x37, 0x55, 0x6c, 0x35, 0x45, 0x30, 0x75, 0x36, 0x53, 0x4e, 0x73, 0x76, 0x2b, 0x58, 0x4c, 0x54, 0x4f, 0x63, 0x72, 0x2b, 0x48, 0x39, 0x67, 0x30, 0x0a, 0x63, 0x76, 0x57, 0x30, 0x51, 0x4d, 0x38, 0x78, 0x41, 0x63, 0x50, 0x73, 0x33, 0x68, 0x45, 0x74, 0x46, 0x31, 0x30, 0x66, 0x75, 0x46, 0x44, 0x52, 0x58, 0x68, 0x6d, 0x6e, 0x61, 0x64, 0x34, 0x48, 0x4d, 0x79, 0x6a, 0x4b, 0x55, 0x4a, 0x58, 0x35, 0x70, 0x31, 0x54, 0x4c, 0x56, 0x49, 0x5a, 0x51, 0x52, 0x61, 0x6e, 0x35, 0x53, 0x51, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x0a, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x51, 0x49, 0x64, 0x73, 0x33, 0x4c, 0x42, 0x2f, 0x38, 0x6b, 0x39, 0x73, 0x58, 0x4e, 0x37, 0x62, 0x75, 0x51, 0x76, 0x4f, 0x4b, 0x45, 0x4e, 0x30, 0x5a, 0x31, 0x39, 0x7a, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x51, 0x59, 0x77, 0x0a, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x46, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x45, 0x42, 0x41, 0x4b, 0x61, 0x6f, 0x72, 0x53, 0x4c, 0x4f, 0x41, 0x54, 0x32, 0x6d, 0x6f, 0x2f, 0x39, 0x69, 0x30, 0x45, 0x69, 0x64, 0x69, 0x31, 0x35, 0x79, 0x73, 0x48, 0x68, 0x45, 0x34, 0x39, 0x77, 0x63, 0x72, 0x77, 0x6e, 0x39, 0x49, 0x30, 0x6a, 0x36, 0x76, 0x53, 0x72, 0x45, 0x75, 0x56, 0x55, 0x45, 0x74, 0x52, 0x43, 0x6a, 0x0a, 0x6a, 0x53, 0x66, 0x65, 0x43, 0x34, 0x4a, 0x6a, 0x30, 0x4f, 0x37, 0x65, 0x44, 0x44, 0x64, 0x35, 0x51, 0x56, 0x73, 0x69, 0x73, 0x72, 0x43, 0x61, 0x51, 0x56, 0x79, 0x6d, 0x63, 0x4f, 0x44, 0x55, 0x30, 0x48, 0x66, 0x4c, 0x49, 0x39, 0x4d, 0x41, 0x34, 0x47, 0x78, 0x57, 0x4c, 0x2b, 0x46, 0x70, 0x44, 0x51, 0x33, 0x5a, 0x71, 0x72, 0x38, 0x68, 0x67, 0x56, 0x44, 0x5a, 0x42, 0x71, 0x57, 0x6f, 0x2f, 0x35, 0x55, 0x33, 0x30, 0x4b, 0x72, 0x2b, 0x34, 0x72, 0x50, 0x31, 0x0a, 0x6d, 0x53, 0x31, 0x46, 0x68, 0x49, 0x72, 0x6c, 0x51, 0x67, 0x6e, 0x58, 0x64, 0x41, 0x49, 0x76, 0x39, 0x34, 0x6e, 0x59, 0x6d, 0x65, 0x6d, 0x38, 0x4a, 0x39, 0x52, 0x48, 0x6a, 0x62, 0x6f, 0x4e, 0x52, 0x68, 0x78, 0x33, 0x7a, 0x78, 0x53, 0x6b, 0x48, 0x4c, 0x6d, 0x6b, 0x4d, 0x63, 0x53, 0x63, 0x4b, 0x48, 0x51, 0x44, 0x4e, 0x50, 0x38, 0x7a, 0x47, 0x53, 0x61, 0x6c, 0x36, 0x51, 0x31, 0x30, 0x74, 0x7a, 0x36, 0x58, 0x78, 0x6e, 0x62, 0x6f, 0x4a, 0x35, 0x61, 0x6a, 0x0a, 0x5a, 0x74, 0x33, 0x68, 0x72, 0x76, 0x4a, 0x42, 0x57, 0x38, 0x71, 0x59, 0x56, 0x6f, 0x4e, 0x7a, 0x63, 0x4f, 0x53, 0x47, 0x47, 0x74, 0x49, 0x78, 0x51, 0x62, 0x6f, 0x76, 0x76, 0x69, 0x30, 0x54, 0x57, 0x6e, 0x5a, 0x76, 0x54, 0x75, 0x68, 0x4f, 0x67, 0x51, 0x34, 0x2f, 0x57, 0x77, 0x4d, 0x69, 0x6f, 0x42, 0x4b, 0x2b, 0x5a, 0x6c, 0x67, 0x52, 0x53, 0x73, 0x73, 0x44, 0x78, 0x4c, 0x51, 0x71, 0x4b, 0x69, 0x32, 0x57, 0x46, 0x2b, 0x41, 0x35, 0x56, 0x4c, 0x78, 0x49, 0x0a, 0x30, 0x33, 0x59, 0x6e, 0x6e, 0x5a, 0x6f, 0x74, 0x42, 0x71, 0x62, 0x4a, 0x37, 0x44, 0x6e, 0x53, 0x71, 0x39, 0x75, 0x66, 0x6d, 0x67, 0x73, 0x6e, 0x41, 0x6a, 0x55, 0x70, 0x73, 0x55, 0x43, 0x56, 0x35, 0x2f, 0x6e, 0x6f, 0x6e, 0x46, 0x57, 0x49, 0x47, 0x55, 0x62, 0x57, 0x74, 0x7a, 0x54, 0x31, 0x66, 0x73, 0x34, 0x35, 0x6d, 0x74, 0x6b, 0x34, 0x38, 0x56, 0x48, 0x33, 0x54, 0x79, 0x77, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x54, 0x57, 0x43, 0x41, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x44, 0x65, 0x7a, 0x43, 0x43, 0x41, 0x6d, 0x4f, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x42, 0x41, 0x54, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x55, 0x46, 0x41, 0x44, 0x42, 0x66, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x55, 0x56, 0x7a, 0x45, 0x53, 0x4d, 0x42, 0x41, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x4a, 0x0a, 0x56, 0x45, 0x46, 0x4a, 0x56, 0x30, 0x46, 0x4f, 0x4c, 0x55, 0x4e, 0x42, 0x4d, 0x52, 0x41, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x44, 0x41, 0x64, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x42, 0x4d, 0x53, 0x6f, 0x77, 0x4b, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x44, 0x43, 0x46, 0x55, 0x56, 0x30, 0x4e, 0x42, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x0a, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x69, 0x42, 0x42, 0x64, 0x58, 0x52, 0x6f, 0x62, 0x33, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x44, 0x67, 0x77, 0x4f, 0x44, 0x49, 0x34, 0x4d, 0x44, 0x63, 0x79, 0x4e, 0x44, 0x4d, 0x7a, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x7a, 0x41, 0x78, 0x4d, 0x6a, 0x4d, 0x78, 0x4d, 0x54, 0x55, 0x31, 0x4f, 0x54, 0x55, 0x35, 0x57, 0x6a, 0x42, 0x66, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x0a, 0x45, 0x77, 0x4a, 0x55, 0x56, 0x7a, 0x45, 0x53, 0x4d, 0x42, 0x41, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x4a, 0x56, 0x45, 0x46, 0x4a, 0x56, 0x30, 0x46, 0x4f, 0x4c, 0x55, 0x4e, 0x42, 0x4d, 0x52, 0x41, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x44, 0x41, 0x64, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x42, 0x4d, 0x53, 0x6f, 0x77, 0x4b, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x44, 0x43, 0x46, 0x55, 0x56, 0x30, 0x4e, 0x42, 0x0a, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x69, 0x42, 0x42, 0x64, 0x58, 0x52, 0x6f, 0x62, 0x33, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x77, 0x67, 0x67, 0x45, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x42, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x45, 0x4b, 0x0a, 0x41, 0x6f, 0x49, 0x42, 0x41, 0x51, 0x43, 0x77, 0x66, 0x6e, 0x4b, 0x34, 0x70, 0x41, 0x4f, 0x55, 0x35, 0x71, 0x66, 0x65, 0x43, 0x54, 0x69, 0x52, 0x53, 0x68, 0x46, 0x41, 0x68, 0x36, 0x64, 0x38, 0x57, 0x57, 0x51, 0x55, 0x65, 0x37, 0x55, 0x52, 0x45, 0x4e, 0x33, 0x2b, 0x76, 0x39, 0x58, 0x41, 0x75, 0x31, 0x62, 0x69, 0x68, 0x53, 0x58, 0x30, 0x4e, 0x58, 0x49, 0x50, 0x2b, 0x46, 0x50, 0x51, 0x51, 0x65, 0x46, 0x45, 0x41, 0x63, 0x4b, 0x30, 0x48, 0x4d, 0x4d, 0x78, 0x0a, 0x51, 0x68, 0x5a, 0x48, 0x68, 0x54, 0x4d, 0x69, 0x64, 0x72, 0x49, 0x4b, 0x62, 0x77, 0x2f, 0x6c, 0x4a, 0x56, 0x42, 0x50, 0x68, 0x59, 0x61, 0x2b, 0x76, 0x35, 0x67, 0x75, 0x45, 0x47, 0x63, 0x65, 0x76, 0x68, 0x45, 0x46, 0x68, 0x67, 0x57, 0x51, 0x78, 0x46, 0x6e, 0x51, 0x66, 0x48, 0x67, 0x51, 0x73, 0x49, 0x42, 0x63, 0x74, 0x2b, 0x48, 0x48, 0x4b, 0x33, 0x58, 0x4c, 0x66, 0x4a, 0x2b, 0x75, 0x74, 0x64, 0x47, 0x64, 0x49, 0x7a, 0x64, 0x6a, 0x70, 0x39, 0x78, 0x43, 0x0a, 0x6f, 0x69, 0x32, 0x53, 0x42, 0x42, 0x74, 0x51, 0x77, 0x58, 0x75, 0x34, 0x50, 0x68, 0x76, 0x4a, 0x56, 0x67, 0x53, 0x4c, 0x4c, 0x31, 0x4b, 0x62, 0x72, 0x61, 0x6c, 0x57, 0x36, 0x63, 0x48, 0x2f, 0x72, 0x61, 0x6c, 0x59, 0x68, 0x7a, 0x43, 0x32, 0x67, 0x66, 0x65, 0x58, 0x52, 0x66, 0x77, 0x5a, 0x56, 0x7a, 0x73, 0x72, 0x62, 0x2b, 0x52, 0x48, 0x39, 0x4a, 0x6c, 0x46, 0x2f, 0x68, 0x33, 0x78, 0x2b, 0x4a, 0x65, 0x6a, 0x69, 0x42, 0x30, 0x33, 0x48, 0x46, 0x79, 0x50, 0x0a, 0x34, 0x48, 0x59, 0x6c, 0x6d, 0x6c, 0x44, 0x34, 0x6f, 0x46, 0x54, 0x2f, 0x52, 0x4a, 0x42, 0x32, 0x49, 0x39, 0x49, 0x79, 0x78, 0x73, 0x4f, 0x72, 0x42, 0x72, 0x2f, 0x38, 0x2b, 0x37, 0x2f, 0x7a, 0x72, 0x58, 0x32, 0x53, 0x59, 0x67, 0x4a, 0x62, 0x4b, 0x64, 0x4d, 0x31, 0x6f, 0x35, 0x4f, 0x61, 0x51, 0x32, 0x52, 0x67, 0x58, 0x62, 0x4c, 0x36, 0x4d, 0x76, 0x38, 0x37, 0x42, 0x4b, 0x39, 0x4e, 0x51, 0x47, 0x72, 0x35, 0x78, 0x2b, 0x50, 0x76, 0x49, 0x2f, 0x31, 0x72, 0x0a, 0x79, 0x2b, 0x55, 0x50, 0x69, 0x7a, 0x67, 0x4e, 0x37, 0x67, 0x72, 0x38, 0x2f, 0x67, 0x2b, 0x59, 0x6e, 0x7a, 0x41, 0x78, 0x33, 0x57, 0x78, 0x53, 0x5a, 0x66, 0x6d, 0x4c, 0x67, 0x62, 0x34, 0x69, 0x34, 0x52, 0x78, 0x59, 0x41, 0x37, 0x71, 0x52, 0x47, 0x34, 0x6b, 0x48, 0x41, 0x67, 0x4d, 0x42, 0x41, 0x41, 0x47, 0x6a, 0x51, 0x6a, 0x42, 0x41, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x0a, 0x42, 0x6a, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x52, 0x71, 0x4f, 0x46, 0x73, 0x6d, 0x6a, 0x64, 0x36, 0x4c, 0x57, 0x76, 0x4a, 0x50, 0x65, 0x6c, 0x53, 0x44, 0x47, 0x52, 0x6a, 0x6a, 0x43, 0x44, 0x57, 0x6d, 0x75, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x0a, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x55, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x51, 0x45, 0x41, 0x50, 0x4e, 0x56, 0x33, 0x50, 0x64, 0x72, 0x66, 0x69, 0x62, 0x71, 0x48, 0x44, 0x41, 0x68, 0x55, 0x61, 0x69, 0x42, 0x51, 0x6b, 0x72, 0x36, 0x77, 0x51, 0x54, 0x32, 0x35, 0x4a, 0x6d, 0x53, 0x44, 0x43, 0x69, 0x2f, 0x6f, 0x51, 0x4d, 0x43, 0x58, 0x4b, 0x43, 0x65, 0x43, 0x4d, 0x45, 0x72, 0x4a, 0x6b, 0x2f, 0x39, 0x71, 0x35, 0x36, 0x59, 0x41, 0x66, 0x34, 0x6c, 0x43, 0x0a, 0x6d, 0x74, 0x59, 0x52, 0x35, 0x56, 0x50, 0x4f, 0x4c, 0x38, 0x7a, 0x79, 0x32, 0x67, 0x58, 0x45, 0x2f, 0x75, 0x4a, 0x51, 0x78, 0x44, 0x71, 0x47, 0x66, 0x63, 0x7a, 0x61, 0x66, 0x68, 0x41, 0x4a, 0x4f, 0x35, 0x49, 0x31, 0x4b, 0x6c, 0x4f, 0x79, 0x2f, 0x75, 0x73, 0x72, 0x42, 0x64, 0x6c, 0x73, 0x58, 0x65, 0x62, 0x51, 0x37, 0x39, 0x4e, 0x71, 0x5a, 0x70, 0x34, 0x56, 0x4b, 0x49, 0x56, 0x36, 0x36, 0x49, 0x49, 0x41, 0x72, 0x42, 0x36, 0x6e, 0x43, 0x57, 0x6c, 0x57, 0x0a, 0x51, 0x74, 0x4e, 0x6f, 0x55, 0x52, 0x69, 0x2b, 0x56, 0x4a, 0x71, 0x2f, 0x52, 0x45, 0x47, 0x36, 0x53, 0x62, 0x34, 0x67, 0x75, 0x6d, 0x6c, 0x63, 0x37, 0x72, 0x68, 0x33, 0x7a, 0x63, 0x35, 0x73, 0x48, 0x36, 0x32, 0x44, 0x6c, 0x68, 0x68, 0x39, 0x44, 0x72, 0x55, 0x55, 0x4f, 0x59, 0x54, 0x78, 0x4b, 0x4f, 0x6b, 0x74, 0x6f, 0x35, 0x35, 0x37, 0x48, 0x6e, 0x70, 0x79, 0x57, 0x6f, 0x4f, 0x7a, 0x65, 0x57, 0x2f, 0x76, 0x74, 0x50, 0x7a, 0x51, 0x43, 0x71, 0x56, 0x59, 0x0a, 0x54, 0x30, 0x62, 0x66, 0x2b, 0x32, 0x31, 0x35, 0x57, 0x66, 0x4b, 0x45, 0x49, 0x6c, 0x4b, 0x75, 0x44, 0x38, 0x7a, 0x37, 0x66, 0x44, 0x76, 0x6e, 0x61, 0x73, 0x70, 0x48, 0x59, 0x63, 0x4e, 0x36, 0x2b, 0x4e, 0x4f, 0x53, 0x42, 0x42, 0x2b, 0x34, 0x49, 0x49, 0x54, 0x68, 0x4e, 0x6c, 0x51, 0x57, 0x78, 0x30, 0x44, 0x65, 0x4f, 0x34, 0x70, 0x7a, 0x33, 0x4e, 0x2f, 0x47, 0x43, 0x55, 0x7a, 0x66, 0x37, 0x4e, 0x72, 0x2f, 0x31, 0x46, 0x4e, 0x43, 0x6f, 0x63, 0x6e, 0x79, 0x0a, 0x59, 0x68, 0x30, 0x69, 0x67, 0x7a, 0x79, 0x58, 0x78, 0x66, 0x6b, 0x5a, 0x59, 0x69, 0x65, 0x73, 0x5a, 0x53, 0x4c, 0x58, 0x30, 0x7a, 0x7a, 0x47, 0x35, 0x59, 0x36, 0x79, 0x55, 0x38, 0x78, 0x4a, 0x7a, 0x72, 0x77, 0x77, 0x2f, 0x6e, 0x73, 0x4f, 0x4d, 0x35, 0x44, 0x37, 0x37, 0x64, 0x49, 0x55, 0x6b, 0x52, 0x38, 0x48, 0x72, 0x77, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x41, 0x32, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x44, 0x64, 0x7a, 0x43, 0x43, 0x41, 0x6c, 0x2b, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x42, 0x41, 0x44, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x44, 0x42, 0x64, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x4b, 0x55, 0x44, 0x45, 0x6c, 0x4d, 0x43, 0x4d, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x63, 0x0a, 0x55, 0x30, 0x56, 0x44, 0x54, 0x30, 0x30, 0x67, 0x56, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x67, 0x55, 0x33, 0x6c, 0x7a, 0x64, 0x47, 0x56, 0x74, 0x63, 0x79, 0x42, 0x44, 0x54, 0x79, 0x34, 0x73, 0x54, 0x46, 0x52, 0x45, 0x4c, 0x6a, 0x45, 0x6e, 0x4d, 0x43, 0x55, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x78, 0x4d, 0x65, 0x55, 0x32, 0x56, 0x6a, 0x64, 0x58, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x67, 0x51, 0x32, 0x39, 0x74, 0x62, 0x58, 0x56, 0x75, 0x61, 0x57, 0x4e, 0x68, 0x0a, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x69, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x51, 0x30, 0x45, 0x79, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x41, 0x35, 0x4d, 0x44, 0x55, 0x79, 0x4f, 0x54, 0x41, 0x31, 0x4d, 0x44, 0x41, 0x7a, 0x4f, 0x56, 0x6f, 0x58, 0x44, 0x54, 0x49, 0x35, 0x4d, 0x44, 0x55, 0x79, 0x4f, 0x54, 0x41, 0x31, 0x4d, 0x44, 0x41, 0x7a, 0x4f, 0x56, 0x6f, 0x77, 0x58, 0x54, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x0a, 0x53, 0x6c, 0x41, 0x78, 0x4a, 0x54, 0x41, 0x6a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x48, 0x46, 0x4e, 0x46, 0x51, 0x30, 0x39, 0x4e, 0x49, 0x46, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x49, 0x46, 0x4e, 0x35, 0x63, 0x33, 0x52, 0x6c, 0x62, 0x58, 0x4d, 0x67, 0x51, 0x30, 0x38, 0x75, 0x4c, 0x45, 0x78, 0x55, 0x52, 0x43, 0x34, 0x78, 0x4a, 0x7a, 0x41, 0x6c, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x73, 0x54, 0x48, 0x6c, 0x4e, 0x6c, 0x59, 0x33, 0x56, 0x79, 0x0a, 0x61, 0x58, 0x52, 0x35, 0x49, 0x45, 0x4e, 0x76, 0x62, 0x57, 0x31, 0x31, 0x62, 0x6d, 0x6c, 0x6a, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x34, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x45, 0x4e, 0x42, 0x4d, 0x6a, 0x43, 0x43, 0x41, 0x53, 0x49, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x45, 0x50, 0x41, 0x44, 0x43, 0x43, 0x41, 0x51, 0x6f, 0x43, 0x67, 0x67, 0x45, 0x42, 0x0a, 0x41, 0x4e, 0x41, 0x56, 0x4f, 0x56, 0x4b, 0x78, 0x55, 0x72, 0x4f, 0x36, 0x78, 0x56, 0x6d, 0x43, 0x78, 0x46, 0x31, 0x53, 0x72, 0x6a, 0x70, 0x44, 0x5a, 0x59, 0x42, 0x4c, 0x78, 0x2f, 0x4b, 0x57, 0x76, 0x4e, 0x73, 0x32, 0x6c, 0x39, 0x61, 0x6d, 0x5a, 0x49, 0x79, 0x6f, 0x58, 0x76, 0x44, 0x6a, 0x43, 0x68, 0x7a, 0x33, 0x33, 0x35, 0x63, 0x39, 0x53, 0x36, 0x37, 0x32, 0x58, 0x65, 0x77, 0x68, 0x74, 0x55, 0x47, 0x72, 0x7a, 0x62, 0x6c, 0x2b, 0x64, 0x70, 0x2b, 0x2b, 0x0a, 0x2b, 0x54, 0x34, 0x32, 0x4e, 0x4b, 0x41, 0x37, 0x77, 0x66, 0x59, 0x78, 0x45, 0x55, 0x56, 0x30, 0x6b, 0x7a, 0x31, 0x58, 0x67, 0x4d, 0x58, 0x35, 0x69, 0x5a, 0x6e, 0x4b, 0x35, 0x61, 0x74, 0x71, 0x31, 0x4c, 0x58, 0x61, 0x51, 0x5a, 0x41, 0x51, 0x77, 0x64, 0x62, 0x57, 0x51, 0x6f, 0x6e, 0x43, 0x76, 0x2f, 0x51, 0x34, 0x45, 0x70, 0x56, 0x4d, 0x56, 0x41, 0x58, 0x33, 0x4e, 0x75, 0x52, 0x46, 0x67, 0x33, 0x73, 0x55, 0x5a, 0x64, 0x62, 0x63, 0x44, 0x45, 0x33, 0x52, 0x0a, 0x33, 0x6e, 0x34, 0x4d, 0x71, 0x7a, 0x76, 0x45, 0x46, 0x62, 0x34, 0x36, 0x56, 0x71, 0x5a, 0x61, 0x62, 0x33, 0x5a, 0x70, 0x55, 0x71, 0x6c, 0x36, 0x75, 0x63, 0x6a, 0x72, 0x61, 0x70, 0x70, 0x64, 0x55, 0x74, 0x41, 0x74, 0x43, 0x6d, 0x73, 0x31, 0x46, 0x67, 0x6b, 0x51, 0x68, 0x4e, 0x42, 0x71, 0x79, 0x6a, 0x6f, 0x47, 0x41, 0x44, 0x64, 0x48, 0x35, 0x48, 0x35, 0x58, 0x54, 0x7a, 0x2b, 0x4c, 0x36, 0x32, 0x65, 0x34, 0x69, 0x4b, 0x72, 0x46, 0x76, 0x6c, 0x4e, 0x56, 0x0a, 0x73, 0x70, 0x48, 0x45, 0x66, 0x62, 0x6d, 0x77, 0x68, 0x52, 0x6b, 0x47, 0x65, 0x43, 0x37, 0x62, 0x59, 0x52, 0x72, 0x36, 0x68, 0x66, 0x56, 0x4b, 0x6b, 0x61, 0x48, 0x6e, 0x46, 0x74, 0x57, 0x4f, 0x6f, 0x6a, 0x6e, 0x66, 0x6c, 0x4c, 0x68, 0x77, 0x48, 0x79, 0x67, 0x2f, 0x69, 0x2f, 0x78, 0x41, 0x58, 0x6d, 0x4f, 0x44, 0x50, 0x49, 0x4d, 0x71, 0x47, 0x70, 0x6c, 0x72, 0x7a, 0x39, 0x35, 0x5a, 0x61, 0x6a, 0x76, 0x38, 0x62, 0x78, 0x62, 0x58, 0x48, 0x2f, 0x31, 0x4b, 0x0a, 0x45, 0x4f, 0x74, 0x4f, 0x67, 0x68, 0x59, 0x36, 0x72, 0x43, 0x63, 0x4d, 0x55, 0x2f, 0x47, 0x74, 0x31, 0x53, 0x53, 0x77, 0x61, 0x77, 0x4e, 0x51, 0x77, 0x53, 0x30, 0x38, 0x46, 0x74, 0x31, 0x45, 0x4e, 0x43, 0x63, 0x61, 0x64, 0x66, 0x73, 0x43, 0x41, 0x77, 0x45, 0x41, 0x41, 0x61, 0x4e, 0x43, 0x4d, 0x45, 0x41, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x41, 0x71, 0x46, 0x71, 0x58, 0x64, 0x6c, 0x42, 0x5a, 0x68, 0x38, 0x0a, 0x51, 0x49, 0x48, 0x34, 0x44, 0x35, 0x63, 0x73, 0x4f, 0x50, 0x45, 0x4b, 0x37, 0x44, 0x7a, 0x50, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x42, 0x6a, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x0a, 0x43, 0x77, 0x55, 0x41, 0x41, 0x34, 0x49, 0x42, 0x41, 0x51, 0x42, 0x4d, 0x4f, 0x71, 0x4e, 0x45, 0x72, 0x4c, 0x6c, 0x46, 0x73, 0x63, 0x65, 0x54, 0x66, 0x73, 0x67, 0x4c, 0x43, 0x6b, 0x4c, 0x66, 0x5a, 0x4f, 0x6f, 0x63, 0x37, 0x6c, 0x6c, 0x73, 0x43, 0x4c, 0x71, 0x4a, 0x58, 0x32, 0x72, 0x4b, 0x53, 0x70, 0x57, 0x65, 0x65, 0x6f, 0x38, 0x48, 0x78, 0x64, 0x70, 0x46, 0x63, 0x6f, 0x4a, 0x78, 0x44, 0x6a, 0x72, 0x53, 0x7a, 0x47, 0x2b, 0x6e, 0x74, 0x4b, 0x45, 0x6a, 0x0a, 0x75, 0x2f, 0x59, 0x6b, 0x6e, 0x38, 0x73, 0x58, 0x2f, 0x6f, 0x79, 0x6d, 0x7a, 0x73, 0x4c, 0x53, 0x32, 0x38, 0x79, 0x4e, 0x2f, 0x48, 0x48, 0x38, 0x41, 0x79, 0x6e, 0x42, 0x62, 0x46, 0x30, 0x7a, 0x58, 0x32, 0x53, 0x32, 0x5a, 0x54, 0x75, 0x4a, 0x62, 0x78, 0x68, 0x32, 0x65, 0x50, 0x58, 0x63, 0x6f, 0x6b, 0x67, 0x66, 0x47, 0x54, 0x2b, 0x4f, 0x6b, 0x2b, 0x76, 0x78, 0x2b, 0x68, 0x66, 0x75, 0x7a, 0x55, 0x37, 0x6a, 0x42, 0x42, 0x4a, 0x56, 0x31, 0x75, 0x58, 0x6b, 0x0a, 0x33, 0x66, 0x73, 0x2b, 0x42, 0x58, 0x7a, 0x69, 0x48, 0x56, 0x37, 0x47, 0x70, 0x37, 0x79, 0x58, 0x54, 0x32, 0x67, 0x36, 0x39, 0x65, 0x6b, 0x75, 0x43, 0x6b, 0x4f, 0x32, 0x72, 0x31, 0x64, 0x63, 0x59, 0x6d, 0x68, 0x38, 0x74, 0x2f, 0x32, 0x6a, 0x69, 0x6f, 0x53, 0x67, 0x72, 0x47, 0x4b, 0x2b, 0x4b, 0x77, 0x6d, 0x48, 0x4e, 0x50, 0x42, 0x71, 0x41, 0x62, 0x75, 0x62, 0x4b, 0x56, 0x59, 0x38, 0x2f, 0x67, 0x41, 0x33, 0x7a, 0x79, 0x4e, 0x73, 0x38, 0x55, 0x36, 0x71, 0x0a, 0x74, 0x6e, 0x52, 0x47, 0x45, 0x6d, 0x79, 0x52, 0x37, 0x6a, 0x54, 0x56, 0x37, 0x4a, 0x71, 0x52, 0x35, 0x30, 0x53, 0x2b, 0x6b, 0x44, 0x46, 0x79, 0x31, 0x55, 0x6b, 0x43, 0x39, 0x67, 0x4c, 0x6c, 0x39, 0x42, 0x2f, 0x72, 0x66, 0x4e, 0x6d, 0x57, 0x56, 0x61, 0x6e, 0x2f, 0x37, 0x49, 0x72, 0x35, 0x6d, 0x55, 0x66, 0x2f, 0x4e, 0x56, 0x6f, 0x43, 0x71, 0x67, 0x54, 0x4c, 0x69, 0x6c, 0x75, 0x48, 0x63, 0x53, 0x6d, 0x52, 0x76, 0x61, 0x53, 0x30, 0x65, 0x67, 0x32, 0x39, 0x0a, 0x6d, 0x76, 0x56, 0x58, 0x49, 0x77, 0x41, 0x48, 0x49, 0x52, 0x63, 0x2f, 0x53, 0x6a, 0x6e, 0x52, 0x42, 0x55, 0x6b, 0x4c, 0x70, 0x37, 0x59, 0x33, 0x67, 0x61, 0x56, 0x64, 0x6a, 0x4b, 0x6f, 0x7a, 0x58, 0x6f, 0x45, 0x6f, 0x66, 0x4b, 0x64, 0x39, 0x4a, 0x2b, 0x73, 0x41, 0x72, 0x6f, 0x30, 0x33, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x61, 0x6c, 0x69, 0x73, 0x20, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x75, 0x7a, 0x43, 0x43, 0x41, 0x36, 0x4f, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x49, 0x56, 0x77, 0x6f, 0x52, 0x6c, 0x30, 0x4c, 0x45, 0x34, 0x38, 0x77, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x77, 0x61, 0x7a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x53, 0x56, 0x51, 0x78, 0x44, 0x6a, 0x41, 0x4d, 0x0a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x63, 0x4d, 0x42, 0x55, 0x31, 0x70, 0x62, 0x47, 0x46, 0x75, 0x4d, 0x53, 0x4d, 0x77, 0x49, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x42, 0x70, 0x42, 0x59, 0x33, 0x52, 0x68, 0x62, 0x47, 0x6c, 0x7a, 0x49, 0x46, 0x4d, 0x75, 0x63, 0x43, 0x35, 0x42, 0x4c, 0x69, 0x38, 0x77, 0x4d, 0x7a, 0x4d, 0x31, 0x4f, 0x44, 0x55, 0x79, 0x4d, 0x44, 0x6b, 0x32, 0x4e, 0x7a, 0x45, 0x6e, 0x4d, 0x43, 0x55, 0x47, 0x41, 0x31, 0x55, 0x45, 0x0a, 0x41, 0x77, 0x77, 0x65, 0x51, 0x57, 0x4e, 0x30, 0x59, 0x57, 0x78, 0x70, 0x63, 0x79, 0x42, 0x42, 0x64, 0x58, 0x52, 0x6f, 0x5a, 0x57, 0x35, 0x30, 0x61, 0x57, 0x4e, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x69, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x42, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x45, 0x78, 0x4d, 0x44, 0x6b, 0x79, 0x4d, 0x6a, 0x45, 0x78, 0x4d, 0x6a, 0x49, 0x77, 0x4d, 0x6c, 0x6f, 0x58, 0x44, 0x54, 0x4d, 0x77, 0x4d, 0x44, 0x6b, 0x79, 0x0a, 0x4d, 0x6a, 0x45, 0x78, 0x4d, 0x6a, 0x49, 0x77, 0x4d, 0x6c, 0x6f, 0x77, 0x61, 0x7a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x53, 0x56, 0x51, 0x78, 0x44, 0x6a, 0x41, 0x4d, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x63, 0x4d, 0x42, 0x55, 0x31, 0x70, 0x62, 0x47, 0x46, 0x75, 0x4d, 0x53, 0x4d, 0x77, 0x49, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x42, 0x70, 0x42, 0x59, 0x33, 0x52, 0x68, 0x62, 0x47, 0x6c, 0x7a, 0x0a, 0x49, 0x46, 0x4d, 0x75, 0x63, 0x43, 0x35, 0x42, 0x4c, 0x69, 0x38, 0x77, 0x4d, 0x7a, 0x4d, 0x31, 0x4f, 0x44, 0x55, 0x79, 0x4d, 0x44, 0x6b, 0x32, 0x4e, 0x7a, 0x45, 0x6e, 0x4d, 0x43, 0x55, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x77, 0x77, 0x65, 0x51, 0x57, 0x4e, 0x30, 0x59, 0x57, 0x78, 0x70, 0x63, 0x79, 0x42, 0x42, 0x64, 0x58, 0x52, 0x6f, 0x5a, 0x57, 0x35, 0x30, 0x61, 0x57, 0x4e, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x69, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x0a, 0x49, 0x45, 0x4e, 0x42, 0x4d, 0x49, 0x49, 0x43, 0x49, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x45, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x38, 0x41, 0x4d, 0x49, 0x49, 0x43, 0x43, 0x67, 0x4b, 0x43, 0x41, 0x67, 0x45, 0x41, 0x70, 0x38, 0x62, 0x45, 0x70, 0x53, 0x6d, 0x6b, 0x4c, 0x4f, 0x2f, 0x6c, 0x47, 0x4d, 0x57, 0x77, 0x55, 0x4b, 0x4e, 0x76, 0x55, 0x54, 0x75, 0x66, 0x43, 0x6c, 0x72, 0x4a, 0x0a, 0x77, 0x6b, 0x67, 0x34, 0x43, 0x73, 0x49, 0x63, 0x6f, 0x42, 0x68, 0x2f, 0x6b, 0x62, 0x57, 0x48, 0x75, 0x55, 0x41, 0x2f, 0x33, 0x52, 0x31, 0x6f, 0x48, 0x77, 0x69, 0x44, 0x31, 0x53, 0x30, 0x65, 0x69, 0x4b, 0x44, 0x34, 0x6a, 0x31, 0x61, 0x50, 0x62, 0x5a, 0x6b, 0x43, 0x6b, 0x70, 0x41, 0x57, 0x31, 0x56, 0x38, 0x49, 0x62, 0x49, 0x6e, 0x58, 0x34, 0x61, 0x79, 0x38, 0x49, 0x4d, 0x4b, 0x78, 0x34, 0x49, 0x4e, 0x52, 0x69, 0x6d, 0x6c, 0x4e, 0x41, 0x4a, 0x5a, 0x61, 0x0a, 0x62, 0x79, 0x2f, 0x41, 0x52, 0x48, 0x36, 0x6a, 0x44, 0x75, 0x53, 0x52, 0x7a, 0x56, 0x6a, 0x75, 0x33, 0x50, 0x76, 0x48, 0x48, 0x6b, 0x56, 0x48, 0x33, 0x53, 0x65, 0x35, 0x43, 0x41, 0x47, 0x66, 0x70, 0x69, 0x45, 0x64, 0x39, 0x55, 0x45, 0x74, 0x4c, 0x30, 0x7a, 0x39, 0x4b, 0x4b, 0x33, 0x67, 0x69, 0x71, 0x30, 0x69, 0x74, 0x46, 0x5a, 0x6c, 0x6a, 0x6f, 0x5a, 0x55, 0x6a, 0x35, 0x4e, 0x44, 0x4b, 0x64, 0x34, 0x35, 0x52, 0x6e, 0x69, 0x6a, 0x4d, 0x43, 0x4f, 0x36, 0x0a, 0x7a, 0x66, 0x42, 0x39, 0x45, 0x31, 0x66, 0x41, 0x58, 0x64, 0x4b, 0x44, 0x61, 0x30, 0x68, 0x4d, 0x78, 0x4b, 0x75, 0x66, 0x67, 0x46, 0x70, 0x62, 0x4f, 0x72, 0x33, 0x4a, 0x70, 0x79, 0x49, 0x2f, 0x67, 0x43, 0x63, 0x7a, 0x57, 0x77, 0x36, 0x33, 0x69, 0x67, 0x78, 0x64, 0x42, 0x7a, 0x63, 0x49, 0x79, 0x32, 0x7a, 0x53, 0x65, 0x6b, 0x63, 0x69, 0x52, 0x44, 0x58, 0x46, 0x7a, 0x4d, 0x77, 0x75, 0x6a, 0x74, 0x30, 0x71, 0x37, 0x62, 0x64, 0x39, 0x5a, 0x67, 0x31, 0x66, 0x0a, 0x59, 0x56, 0x45, 0x69, 0x56, 0x52, 0x76, 0x6a, 0x52, 0x75, 0x50, 0x6a, 0x50, 0x64, 0x41, 0x31, 0x59, 0x70, 0x72, 0x62, 0x72, 0x78, 0x54, 0x49, 0x57, 0x36, 0x48, 0x4d, 0x69, 0x52, 0x76, 0x68, 0x4d, 0x43, 0x62, 0x38, 0x6f, 0x4a, 0x73, 0x66, 0x67, 0x61, 0x64, 0x48, 0x48, 0x77, 0x54, 0x72, 0x6f, 0x7a, 0x6d, 0x53, 0x42, 0x70, 0x2b, 0x5a, 0x30, 0x37, 0x2f, 0x54, 0x36, 0x6b, 0x39, 0x51, 0x6e, 0x42, 0x6e, 0x2b, 0x6c, 0x6f, 0x63, 0x65, 0x50, 0x47, 0x58, 0x32, 0x0a, 0x6f, 0x78, 0x67, 0x6b, 0x67, 0x34, 0x59, 0x51, 0x35, 0x31, 0x51, 0x2b, 0x71, 0x44, 0x70, 0x32, 0x4a, 0x45, 0x2b, 0x42, 0x49, 0x63, 0x58, 0x6a, 0x44, 0x77, 0x4c, 0x34, 0x6b, 0x35, 0x52, 0x48, 0x49, 0x4c, 0x76, 0x2b, 0x31, 0x41, 0x37, 0x54, 0x61, 0x4c, 0x6e, 0x64, 0x78, 0x48, 0x71, 0x45, 0x67, 0x75, 0x4e, 0x54, 0x56, 0x48, 0x6e, 0x64, 0x32, 0x35, 0x7a, 0x53, 0x38, 0x67, 0x65, 0x62, 0x4c, 0x72, 0x61, 0x38, 0x50, 0x75, 0x32, 0x46, 0x62, 0x65, 0x38, 0x6c, 0x0a, 0x45, 0x66, 0x4b, 0x58, 0x47, 0x6b, 0x4a, 0x68, 0x39, 0x30, 0x71, 0x58, 0x36, 0x49, 0x75, 0x78, 0x45, 0x41, 0x66, 0x36, 0x5a, 0x59, 0x47, 0x79, 0x6f, 0x6a, 0x6e, 0x50, 0x39, 0x7a, 0x7a, 0x2f, 0x47, 0x50, 0x76, 0x47, 0x38, 0x56, 0x71, 0x4c, 0x57, 0x65, 0x49, 0x43, 0x72, 0x48, 0x75, 0x53, 0x30, 0x45, 0x34, 0x55, 0x54, 0x31, 0x6c, 0x46, 0x39, 0x67, 0x78, 0x65, 0x4b, 0x46, 0x2b, 0x77, 0x36, 0x44, 0x39, 0x46, 0x7a, 0x38, 0x2b, 0x76, 0x6d, 0x32, 0x2f, 0x37, 0x0a, 0x68, 0x4e, 0x4e, 0x33, 0x57, 0x70, 0x56, 0x76, 0x72, 0x4a, 0x53, 0x45, 0x6e, 0x75, 0x36, 0x38, 0x77, 0x45, 0x71, 0x50, 0x53, 0x70, 0x50, 0x34, 0x52, 0x43, 0x48, 0x69, 0x4d, 0x55, 0x56, 0x68, 0x55, 0x45, 0x34, 0x51, 0x32, 0x4f, 0x4d, 0x31, 0x66, 0x45, 0x77, 0x5a, 0x74, 0x4e, 0x34, 0x46, 0x76, 0x36, 0x4d, 0x47, 0x6e, 0x38, 0x69, 0x31, 0x7a, 0x65, 0x51, 0x66, 0x31, 0x78, 0x63, 0x47, 0x44, 0x58, 0x71, 0x56, 0x64, 0x46, 0x55, 0x4e, 0x61, 0x42, 0x72, 0x38, 0x0a, 0x45, 0x42, 0x74, 0x69, 0x5a, 0x4a, 0x31, 0x74, 0x34, 0x4a, 0x57, 0x67, 0x77, 0x35, 0x51, 0x48, 0x56, 0x77, 0x30, 0x55, 0x35, 0x72, 0x30, 0x46, 0x2b, 0x37, 0x69, 0x66, 0x35, 0x74, 0x2b, 0x4c, 0x34, 0x73, 0x62, 0x6e, 0x66, 0x70, 0x62, 0x32, 0x55, 0x38, 0x57, 0x41, 0x4e, 0x46, 0x41, 0x6f, 0x57, 0x50, 0x41, 0x53, 0x55, 0x48, 0x45, 0x58, 0x4d, 0x4c, 0x72, 0x6d, 0x65, 0x47, 0x4f, 0x38, 0x39, 0x4c, 0x4b, 0x74, 0x6d, 0x79, 0x75, 0x79, 0x2f, 0x75, 0x45, 0x35, 0x0a, 0x6a, 0x46, 0x36, 0x36, 0x43, 0x79, 0x43, 0x55, 0x33, 0x6e, 0x75, 0x44, 0x75, 0x50, 0x2f, 0x6a, 0x56, 0x6f, 0x32, 0x33, 0x45, 0x65, 0x6b, 0x37, 0x6a, 0x50, 0x4b, 0x78, 0x77, 0x56, 0x32, 0x64, 0x70, 0x41, 0x74, 0x4d, 0x4b, 0x39, 0x6d, 0x79, 0x47, 0x50, 0x57, 0x31, 0x6e, 0x30, 0x73, 0x43, 0x41, 0x77, 0x45, 0x41, 0x41, 0x61, 0x4e, 0x6a, 0x4d, 0x47, 0x45, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x46, 0x4c, 0x59, 0x0a, 0x69, 0x44, 0x72, 0x49, 0x6e, 0x33, 0x68, 0x6d, 0x37, 0x59, 0x6e, 0x7a, 0x65, 0x7a, 0x68, 0x77, 0x6c, 0x4d, 0x6b, 0x43, 0x41, 0x6a, 0x62, 0x51, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x48, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x6a, 0x42, 0x42, 0x67, 0x77, 0x46, 0x6f, 0x41, 0x55, 0x55, 0x74, 0x69, 0x49, 0x4f, 0x73, 0x69, 0x66, 0x65, 0x47, 0x62, 0x74, 0x0a, 0x69, 0x66, 0x4e, 0x37, 0x4f, 0x48, 0x43, 0x55, 0x79, 0x51, 0x49, 0x43, 0x4e, 0x74, 0x41, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x45, 0x47, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x43, 0x77, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x41, 0x51, 0x41, 0x4c, 0x65, 0x33, 0x4b, 0x48, 0x77, 0x47, 0x43, 0x6d, 0x53, 0x55, 0x79, 0x49, 0x0a, 0x57, 0x4f, 0x59, 0x64, 0x69, 0x50, 0x63, 0x55, 0x5a, 0x45, 0x69, 0x6d, 0x32, 0x46, 0x67, 0x4b, 0x44, 0x6b, 0x38, 0x54, 0x4e, 0x64, 0x38, 0x31, 0x48, 0x64, 0x54, 0x74, 0x42, 0x6a, 0x48, 0x49, 0x67, 0x54, 0x35, 0x71, 0x31, 0x64, 0x30, 0x37, 0x47, 0x6a, 0x4c, 0x75, 0x6b, 0x44, 0x30, 0x52, 0x30, 0x69, 0x37, 0x30, 0x6a, 0x73, 0x4e, 0x6a, 0x4c, 0x69, 0x4e, 0x6d, 0x73, 0x47, 0x65, 0x2b, 0x62, 0x37, 0x62, 0x41, 0x45, 0x7a, 0x6c, 0x67, 0x71, 0x71, 0x49, 0x30, 0x0a, 0x4a, 0x5a, 0x4e, 0x31, 0x55, 0x74, 0x36, 0x6e, 0x6e, 0x61, 0x30, 0x4f, 0x68, 0x34, 0x6c, 0x53, 0x63, 0x57, 0x6f, 0x57, 0x50, 0x42, 0x6b, 0x64, 0x67, 0x2f, 0x69, 0x61, 0x4b, 0x57, 0x57, 0x2b, 0x39, 0x44, 0x2b, 0x61, 0x32, 0x66, 0x44, 0x7a, 0x57, 0x6f, 0x63, 0x68, 0x63, 0x59, 0x42, 0x4e, 0x79, 0x2b, 0x41, 0x34, 0x6d, 0x7a, 0x2b, 0x37, 0x2b, 0x75, 0x41, 0x77, 0x54, 0x63, 0x2b, 0x47, 0x30, 0x32, 0x55, 0x51, 0x47, 0x52, 0x6a, 0x52, 0x6c, 0x77, 0x4b, 0x78, 0x0a, 0x4b, 0x33, 0x4a, 0x43, 0x61, 0x4b, 0x79, 0x67, 0x76, 0x55, 0x35, 0x61, 0x32, 0x68, 0x69, 0x2f, 0x61, 0x35, 0x69, 0x42, 0x30, 0x50, 0x32, 0x61, 0x76, 0x6c, 0x34, 0x56, 0x53, 0x4d, 0x30, 0x52, 0x46, 0x62, 0x6e, 0x41, 0x4b, 0x56, 0x79, 0x30, 0x36, 0x49, 0x6a, 0x33, 0x50, 0x6a, 0x61, 0x75, 0x74, 0x32, 0x4c, 0x39, 0x48, 0x6d, 0x4c, 0x65, 0x63, 0x48, 0x67, 0x51, 0x48, 0x45, 0x68, 0x62, 0x32, 0x72, 0x79, 0x6b, 0x4f, 0x4c, 0x70, 0x6e, 0x37, 0x56, 0x55, 0x2b, 0x0a, 0x58, 0x6c, 0x66, 0x66, 0x31, 0x41, 0x4e, 0x41, 0x54, 0x49, 0x47, 0x6b, 0x30, 0x6b, 0x39, 0x6a, 0x70, 0x77, 0x6c, 0x43, 0x43, 0x52, 0x54, 0x38, 0x41, 0x4b, 0x6e, 0x43, 0x67, 0x48, 0x4e, 0x50, 0x4c, 0x73, 0x42, 0x41, 0x32, 0x52, 0x46, 0x37, 0x53, 0x4f, 0x70, 0x36, 0x41, 0x73, 0x44, 0x54, 0x36, 0x79, 0x67, 0x42, 0x4a, 0x6c, 0x68, 0x30, 0x77, 0x63, 0x42, 0x7a, 0x49, 0x6d, 0x32, 0x54, 0x6c, 0x66, 0x30, 0x35, 0x66, 0x62, 0x73, 0x71, 0x34, 0x2f, 0x61, 0x43, 0x0a, 0x34, 0x79, 0x79, 0x58, 0x58, 0x30, 0x34, 0x66, 0x6b, 0x5a, 0x54, 0x36, 0x2f, 0x69, 0x79, 0x6a, 0x32, 0x48, 0x59, 0x61, 0x75, 0x45, 0x32, 0x79, 0x4f, 0x45, 0x2b, 0x62, 0x2b, 0x68, 0x31, 0x49, 0x59, 0x48, 0x6b, 0x6d, 0x34, 0x76, 0x50, 0x39, 0x71, 0x64, 0x43, 0x61, 0x36, 0x48, 0x43, 0x50, 0x53, 0x58, 0x72, 0x57, 0x35, 0x62, 0x30, 0x4b, 0x44, 0x74, 0x73, 0x74, 0x38, 0x34, 0x32, 0x2f, 0x36, 0x2b, 0x4f, 0x6b, 0x66, 0x63, 0x76, 0x48, 0x6c, 0x58, 0x48, 0x6f, 0x0a, 0x32, 0x71, 0x4e, 0x38, 0x78, 0x63, 0x4c, 0x34, 0x64, 0x4a, 0x49, 0x45, 0x47, 0x34, 0x61, 0x73, 0x70, 0x43, 0x4a, 0x54, 0x51, 0x4c, 0x61, 0x73, 0x2f, 0x6b, 0x78, 0x32, 0x7a, 0x2f, 0x75, 0x55, 0x4d, 0x73, 0x41, 0x31, 0x6e, 0x33, 0x59, 0x2f, 0x62, 0x75, 0x57, 0x51, 0x62, 0x71, 0x43, 0x6d, 0x4a, 0x71, 0x4b, 0x34, 0x4c, 0x4c, 0x37, 0x52, 0x4b, 0x34, 0x58, 0x39, 0x70, 0x32, 0x6a, 0x49, 0x75, 0x67, 0x45, 0x72, 0x73, 0x57, 0x78, 0x30, 0x48, 0x62, 0x68, 0x7a, 0x0a, 0x6c, 0x65, 0x66, 0x75, 0x74, 0x38, 0x63, 0x6c, 0x38, 0x41, 0x42, 0x4d, 0x41, 0x4c, 0x4a, 0x2b, 0x74, 0x67, 0x75, 0x4c, 0x48, 0x50, 0x50, 0x41, 0x55, 0x4a, 0x34, 0x6c, 0x75, 0x65, 0x41, 0x49, 0x33, 0x6a, 0x5a, 0x6d, 0x2f, 0x7a, 0x65, 0x6c, 0x30, 0x62, 0x74, 0x55, 0x5a, 0x43, 0x7a, 0x4a, 0x4a, 0x37, 0x56, 0x4c, 0x6b, 0x6e, 0x35, 0x6c, 0x2f, 0x39, 0x4d, 0x74, 0x34, 0x62, 0x6c, 0x4f, 0x76, 0x48, 0x2b, 0x6b, 0x51, 0x53, 0x47, 0x51, 0x51, 0x58, 0x65, 0x6d, 0x0a, 0x4f, 0x52, 0x2f, 0x71, 0x6e, 0x75, 0x4f, 0x66, 0x30, 0x47, 0x5a, 0x76, 0x42, 0x65, 0x79, 0x71, 0x64, 0x6e, 0x36, 0x2f, 0x61, 0x78, 0x61, 0x67, 0x36, 0x37, 0x58, 0x48, 0x2f, 0x4a, 0x4a, 0x55, 0x4c, 0x79, 0x73, 0x52, 0x4a, 0x79, 0x55, 0x33, 0x65, 0x45, 0x78, 0x52, 0x61, 0x72, 0x44, 0x7a, 0x7a, 0x46, 0x68, 0x64, 0x46, 0x50, 0x46, 0x71, 0x53, 0x42, 0x58, 0x2f, 0x77, 0x67, 0x65, 0x32, 0x73, 0x59, 0x30, 0x50, 0x6a, 0x6c, 0x78, 0x51, 0x52, 0x72, 0x4d, 0x39, 0x0a, 0x76, 0x77, 0x47, 0x59, 0x54, 0x37, 0x4a, 0x5a, 0x56, 0x45, 0x63, 0x2b, 0x4e, 0x48, 0x74, 0x34, 0x62, 0x56, 0x61, 0x54, 0x4c, 0x6e, 0x50, 0x71, 0x5a, 0x69, 0x68, 0x34, 0x7a, 0x52, 0x30, 0x55, 0x76, 0x36, 0x43, 0x50, 0x4c, 0x79, 0x36, 0x34, 0x4c, 0x6f, 0x37, 0x79, 0x46, 0x49, 0x72, 0x4d, 0x36, 0x62, 0x56, 0x38, 0x2b, 0x32, 0x79, 0x64, 0x44, 0x4b, 0x58, 0x68, 0x6c, 0x67, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x42, 0x75, 0x79, 0x70, 0x61, 0x73, 0x73, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x32, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x57, 0x54, 0x43, 0x43, 0x41, 0x30, 0x47, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x42, 0x41, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x44, 0x42, 0x4f, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x4f, 0x54, 0x7a, 0x45, 0x64, 0x4d, 0x42, 0x73, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x55, 0x0a, 0x51, 0x6e, 0x56, 0x35, 0x63, 0x47, 0x46, 0x7a, 0x63, 0x79, 0x42, 0x42, 0x55, 0x79, 0x30, 0x35, 0x4f, 0x44, 0x4d, 0x78, 0x4e, 0x6a, 0x4d, 0x7a, 0x4d, 0x6a, 0x63, 0x78, 0x49, 0x44, 0x41, 0x65, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x46, 0x30, 0x4a, 0x31, 0x65, 0x58, 0x42, 0x68, 0x63, 0x33, 0x4d, 0x67, 0x51, 0x32, 0x78, 0x68, 0x63, 0x33, 0x4d, 0x67, 0x4d, 0x69, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x42, 0x4d, 0x42, 0x34, 0x58, 0x0a, 0x44, 0x54, 0x45, 0x77, 0x4d, 0x54, 0x41, 0x79, 0x4e, 0x6a, 0x41, 0x34, 0x4d, 0x7a, 0x67, 0x77, 0x4d, 0x31, 0x6f, 0x58, 0x44, 0x54, 0x51, 0x77, 0x4d, 0x54, 0x41, 0x79, 0x4e, 0x6a, 0x41, 0x34, 0x4d, 0x7a, 0x67, 0x77, 0x4d, 0x31, 0x6f, 0x77, 0x54, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x54, 0x6b, 0x38, 0x78, 0x48, 0x54, 0x41, 0x62, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x46, 0x45, 0x4a, 0x31, 0x0a, 0x65, 0x58, 0x42, 0x68, 0x63, 0x33, 0x4d, 0x67, 0x51, 0x56, 0x4d, 0x74, 0x4f, 0x54, 0x67, 0x7a, 0x4d, 0x54, 0x59, 0x7a, 0x4d, 0x7a, 0x49, 0x33, 0x4d, 0x53, 0x41, 0x77, 0x48, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x44, 0x42, 0x64, 0x43, 0x64, 0x58, 0x6c, 0x77, 0x59, 0x58, 0x4e, 0x7a, 0x49, 0x45, 0x4e, 0x73, 0x59, 0x58, 0x4e, 0x7a, 0x49, 0x44, 0x49, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x51, 0x54, 0x43, 0x43, 0x41, 0x69, 0x49, 0x77, 0x0a, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x50, 0x41, 0x44, 0x43, 0x43, 0x41, 0x67, 0x6f, 0x43, 0x67, 0x67, 0x49, 0x42, 0x41, 0x4e, 0x66, 0x48, 0x58, 0x76, 0x66, 0x42, 0x42, 0x39, 0x52, 0x33, 0x2b, 0x30, 0x4d, 0x68, 0x39, 0x50, 0x54, 0x31, 0x61, 0x65, 0x54, 0x75, 0x4d, 0x67, 0x48, 0x62, 0x6f, 0x34, 0x59, 0x66, 0x35, 0x46, 0x6b, 0x4e, 0x75, 0x75, 0x64, 0x31, 0x0a, 0x67, 0x31, 0x4c, 0x72, 0x36, 0x68, 0x78, 0x68, 0x46, 0x55, 0x69, 0x37, 0x48, 0x51, 0x66, 0x4b, 0x6a, 0x4b, 0x36, 0x77, 0x33, 0x4a, 0x61, 0x64, 0x36, 0x73, 0x4e, 0x67, 0x6b, 0x6f, 0x61, 0x43, 0x4b, 0x48, 0x4f, 0x63, 0x56, 0x67, 0x62, 0x2f, 0x53, 0x32, 0x54, 0x77, 0x44, 0x43, 0x6f, 0x33, 0x53, 0x62, 0x58, 0x6c, 0x7a, 0x77, 0x78, 0x38, 0x37, 0x76, 0x46, 0x4b, 0x75, 0x33, 0x4d, 0x77, 0x5a, 0x66, 0x50, 0x56, 0x4c, 0x34, 0x4f, 0x32, 0x66, 0x75, 0x50, 0x6e, 0x0a, 0x39, 0x5a, 0x36, 0x72, 0x59, 0x50, 0x6e, 0x54, 0x38, 0x5a, 0x32, 0x53, 0x64, 0x49, 0x72, 0x6b, 0x48, 0x4a, 0x61, 0x73, 0x57, 0x34, 0x44, 0x70, 0x74, 0x66, 0x51, 0x78, 0x68, 0x36, 0x4e, 0x52, 0x2f, 0x4d, 0x64, 0x2b, 0x6f, 0x57, 0x2b, 0x4f, 0x55, 0x33, 0x66, 0x55, 0x6c, 0x38, 0x46, 0x56, 0x4d, 0x35, 0x49, 0x2b, 0x47, 0x43, 0x39, 0x31, 0x31, 0x4b, 0x32, 0x47, 0x53, 0x63, 0x75, 0x56, 0x72, 0x31, 0x51, 0x47, 0x62, 0x4e, 0x67, 0x47, 0x45, 0x34, 0x31, 0x62, 0x0a, 0x2f, 0x2b, 0x45, 0x6d, 0x47, 0x56, 0x6e, 0x41, 0x4a, 0x4c, 0x71, 0x42, 0x63, 0x58, 0x6d, 0x51, 0x52, 0x46, 0x42, 0x6f, 0x4a, 0x4a, 0x52, 0x66, 0x75, 0x4c, 0x4d, 0x52, 0x38, 0x53, 0x6c, 0x42, 0x59, 0x61, 0x4e, 0x42, 0x79, 0x79, 0x4d, 0x32, 0x31, 0x63, 0x48, 0x78, 0x4d, 0x6c, 0x41, 0x51, 0x54, 0x6e, 0x2f, 0x30, 0x68, 0x70, 0x50, 0x73, 0x68, 0x4e, 0x4f, 0x4f, 0x76, 0x45, 0x75, 0x2f, 0x58, 0x41, 0x46, 0x4f, 0x42, 0x7a, 0x33, 0x63, 0x46, 0x49, 0x71, 0x55, 0x0a, 0x43, 0x71, 0x54, 0x71, 0x63, 0x2f, 0x73, 0x4c, 0x55, 0x65, 0x67, 0x54, 0x42, 0x78, 0x6a, 0x36, 0x44, 0x76, 0x45, 0x72, 0x30, 0x56, 0x51, 0x56, 0x66, 0x54, 0x7a, 0x68, 0x39, 0x37, 0x51, 0x5a, 0x51, 0x6d, 0x64, 0x69, 0x58, 0x6e, 0x66, 0x67, 0x6f, 0x6c, 0x58, 0x73, 0x74, 0x74, 0x6c, 0x70, 0x46, 0x39, 0x55, 0x36, 0x72, 0x30, 0x54, 0x74, 0x53, 0x73, 0x57, 0x65, 0x35, 0x48, 0x6f, 0x6e, 0x66, 0x4f, 0x56, 0x31, 0x31, 0x36, 0x72, 0x4c, 0x4a, 0x65, 0x66, 0x66, 0x0a, 0x61, 0x77, 0x72, 0x62, 0x44, 0x30, 0x32, 0x54, 0x54, 0x71, 0x69, 0x67, 0x7a, 0x58, 0x73, 0x75, 0x38, 0x6c, 0x6b, 0x42, 0x61, 0x72, 0x63, 0x4e, 0x75, 0x41, 0x65, 0x42, 0x66, 0x6f, 0x73, 0x34, 0x47, 0x7a, 0x6a, 0x6d, 0x43, 0x6c, 0x65, 0x5a, 0x50, 0x65, 0x34, 0x68, 0x36, 0x4b, 0x50, 0x31, 0x44, 0x42, 0x62, 0x64, 0x69, 0x2b, 0x77, 0x30, 0x6a, 0x70, 0x77, 0x71, 0x48, 0x41, 0x41, 0x56, 0x46, 0x34, 0x31, 0x6f, 0x67, 0x39, 0x4a, 0x77, 0x6e, 0x78, 0x67, 0x49, 0x0a, 0x7a, 0x52, 0x46, 0x6f, 0x31, 0x63, 0x6c, 0x72, 0x55, 0x73, 0x33, 0x45, 0x52, 0x6f, 0x2f, 0x63, 0x74, 0x66, 0x50, 0x59, 0x56, 0x33, 0x4d, 0x65, 0x36, 0x5a, 0x51, 0x35, 0x42, 0x4c, 0x2f, 0x54, 0x33, 0x6a, 0x6a, 0x65, 0x74, 0x46, 0x50, 0x73, 0x61, 0x52, 0x79, 0x69, 0x66, 0x73, 0x53, 0x50, 0x35, 0x42, 0x74, 0x77, 0x72, 0x66, 0x4b, 0x69, 0x2b, 0x66, 0x76, 0x33, 0x46, 0x6d, 0x52, 0x6d, 0x61, 0x5a, 0x39, 0x4a, 0x55, 0x61, 0x4c, 0x69, 0x46, 0x52, 0x68, 0x6e, 0x0a, 0x42, 0x6b, 0x70, 0x2f, 0x31, 0x57, 0x79, 0x31, 0x54, 0x62, 0x4d, 0x7a, 0x34, 0x47, 0x48, 0x72, 0x58, 0x62, 0x37, 0x70, 0x6d, 0x41, 0x38, 0x79, 0x31, 0x78, 0x31, 0x4c, 0x50, 0x43, 0x35, 0x61, 0x41, 0x56, 0x4b, 0x52, 0x43, 0x66, 0x4c, 0x66, 0x36, 0x6f, 0x33, 0x59, 0x42, 0x6b, 0x42, 0x6a, 0x71, 0x68, 0x48, 0x6b, 0x2f, 0x73, 0x4d, 0x33, 0x6e, 0x68, 0x52, 0x53, 0x50, 0x2f, 0x54, 0x69, 0x7a, 0x50, 0x4a, 0x68, 0x6b, 0x39, 0x48, 0x39, 0x5a, 0x32, 0x76, 0x58, 0x0a, 0x55, 0x71, 0x36, 0x2f, 0x61, 0x4b, 0x74, 0x41, 0x51, 0x36, 0x42, 0x58, 0x4e, 0x56, 0x4e, 0x34, 0x38, 0x46, 0x50, 0x34, 0x59, 0x55, 0x49, 0x48, 0x5a, 0x4d, 0x62, 0x58, 0x62, 0x35, 0x74, 0x4d, 0x4f, 0x41, 0x31, 0x6a, 0x72, 0x47, 0x4b, 0x76, 0x4e, 0x6f, 0x75, 0x69, 0x63, 0x77, 0x6f, 0x4e, 0x39, 0x53, 0x47, 0x39, 0x64, 0x4b, 0x70, 0x4e, 0x36, 0x6e, 0x49, 0x44, 0x53, 0x64, 0x76, 0x48, 0x58, 0x78, 0x31, 0x69, 0x59, 0x38, 0x66, 0x39, 0x33, 0x5a, 0x48, 0x73, 0x0a, 0x4d, 0x2b, 0x37, 0x31, 0x62, 0x62, 0x52, 0x75, 0x4d, 0x47, 0x6a, 0x65, 0x79, 0x4e, 0x59, 0x6d, 0x73, 0x48, 0x56, 0x65, 0x65, 0x37, 0x51, 0x48, 0x49, 0x4a, 0x69, 0x68, 0x64, 0x6a, 0x4b, 0x34, 0x54, 0x57, 0x78, 0x50, 0x41, 0x67, 0x4d, 0x42, 0x41, 0x41, 0x47, 0x6a, 0x51, 0x6a, 0x42, 0x41, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x48, 0x51, 0x59, 0x44, 0x0a, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x4d, 0x6d, 0x41, 0x64, 0x2b, 0x42, 0x69, 0x6b, 0x6f, 0x4c, 0x31, 0x52, 0x70, 0x7a, 0x7a, 0x75, 0x76, 0x64, 0x4d, 0x77, 0x39, 0x36, 0x34, 0x6f, 0x36, 0x30, 0x35, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x42, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x0a, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x45, 0x41, 0x55, 0x31, 0x38, 0x68, 0x39, 0x62, 0x71, 0x77, 0x4f, 0x6c, 0x49, 0x35, 0x4c, 0x4a, 0x4b, 0x77, 0x62, 0x41, 0x44, 0x4a, 0x37, 0x38, 0x34, 0x67, 0x37, 0x77, 0x62, 0x79, 0x6c, 0x70, 0x37, 0x70, 0x70, 0x48, 0x52, 0x2f, 0x65, 0x68, 0x62, 0x38, 0x74, 0x2f, 0x57, 0x32, 0x2b, 0x78, 0x55, 0x62, 0x50, 0x36, 0x75, 0x6d, 0x77, 0x48, 0x4a, 0x64, 0x45, 0x4c, 0x46, 0x78, 0x37, 0x72, 0x78, 0x50, 0x34, 0x36, 0x32, 0x73, 0x0a, 0x41, 0x32, 0x30, 0x75, 0x63, 0x53, 0x36, 0x76, 0x78, 0x4f, 0x4f, 0x74, 0x6f, 0x37, 0x30, 0x4d, 0x45, 0x61, 0x65, 0x30, 0x2f, 0x30, 0x71, 0x79, 0x65, 0x78, 0x41, 0x51, 0x48, 0x36, 0x64, 0x58, 0x51, 0x62, 0x4c, 0x41, 0x72, 0x76, 0x51, 0x73, 0x57, 0x64, 0x5a, 0x48, 0x45, 0x49, 0x6a, 0x7a, 0x49, 0x56, 0x45, 0x70, 0x4d, 0x4d, 0x70, 0x67, 0x68, 0x71, 0x39, 0x47, 0x71, 0x78, 0x33, 0x74, 0x4f, 0x6c, 0x75, 0x77, 0x6c, 0x4e, 0x35, 0x45, 0x34, 0x30, 0x45, 0x49, 0x0a, 0x6f, 0x73, 0x48, 0x73, 0x48, 0x64, 0x62, 0x39, 0x54, 0x37, 0x62, 0x57, 0x52, 0x39, 0x41, 0x55, 0x43, 0x38, 0x72, 0x6d, 0x79, 0x72, 0x56, 0x37, 0x64, 0x33, 0x35, 0x42, 0x48, 0x31, 0x36, 0x44, 0x78, 0x37, 0x61, 0x4d, 0x4f, 0x5a, 0x61, 0x77, 0x50, 0x35, 0x61, 0x42, 0x51, 0x57, 0x39, 0x67, 0x6b, 0x4f, 0x4c, 0x6f, 0x2b, 0x66, 0x73, 0x69, 0x63, 0x64, 0x6c, 0x39, 0x73, 0x7a, 0x31, 0x47, 0x76, 0x37, 0x53, 0x45, 0x72, 0x35, 0x41, 0x63, 0x44, 0x34, 0x38, 0x53, 0x0a, 0x61, 0x71, 0x2f, 0x76, 0x37, 0x68, 0x35, 0x36, 0x72, 0x67, 0x4a, 0x4b, 0x69, 0x68, 0x63, 0x72, 0x64, 0x76, 0x36, 0x73, 0x56, 0x49, 0x6b, 0x6b, 0x4c, 0x45, 0x38, 0x2f, 0x74, 0x72, 0x4b, 0x6e, 0x54, 0x6f, 0x79, 0x6f, 0x6b, 0x5a, 0x66, 0x37, 0x4b, 0x63, 0x5a, 0x37, 0x58, 0x43, 0x32, 0x35, 0x79, 0x32, 0x61, 0x32, 0x74, 0x36, 0x68, 0x62, 0x45, 0x6c, 0x47, 0x46, 0x74, 0x51, 0x6c, 0x2b, 0x59, 0x6e, 0x68, 0x77, 0x2f, 0x71, 0x6c, 0x71, 0x59, 0x4c, 0x59, 0x64, 0x0a, 0x44, 0x6e, 0x6b, 0x4d, 0x2f, 0x63, 0x72, 0x71, 0x4a, 0x49, 0x42, 0x79, 0x77, 0x35, 0x63, 0x2f, 0x38, 0x6e, 0x65, 0x72, 0x51, 0x79, 0x49, 0x4b, 0x78, 0x2b, 0x75, 0x32, 0x44, 0x49, 0x53, 0x43, 0x4c, 0x49, 0x42, 0x72, 0x51, 0x59, 0x6f, 0x49, 0x77, 0x4f, 0x75, 0x6c, 0x61, 0x39, 0x2b, 0x5a, 0x45, 0x73, 0x75, 0x4b, 0x31, 0x56, 0x36, 0x41, 0x44, 0x4a, 0x48, 0x67, 0x4a, 0x67, 0x67, 0x32, 0x53, 0x4d, 0x58, 0x36, 0x4f, 0x42, 0x45, 0x31, 0x2f, 0x79, 0x57, 0x44, 0x0a, 0x4c, 0x66, 0x4a, 0x36, 0x76, 0x39, 0x72, 0x39, 0x6a, 0x76, 0x36, 0x6c, 0x79, 0x30, 0x55, 0x73, 0x48, 0x38, 0x53, 0x49, 0x55, 0x36, 0x35, 0x33, 0x44, 0x74, 0x6d, 0x61, 0x64, 0x73, 0x57, 0x4f, 0x4c, 0x42, 0x32, 0x6a, 0x75, 0x74, 0x58, 0x73, 0x4d, 0x71, 0x37, 0x41, 0x71, 0x71, 0x7a, 0x33, 0x30, 0x58, 0x70, 0x4e, 0x36, 0x39, 0x51, 0x48, 0x34, 0x6b, 0x6a, 0x33, 0x49, 0x6f, 0x36, 0x77, 0x70, 0x4a, 0x39, 0x71, 0x7a, 0x6f, 0x36, 0x79, 0x73, 0x6d, 0x44, 0x30, 0x0a, 0x6f, 0x79, 0x4c, 0x51, 0x49, 0x2b, 0x75, 0x55, 0x57, 0x6e, 0x70, 0x70, 0x33, 0x51, 0x2b, 0x2f, 0x51, 0x46, 0x65, 0x73, 0x61, 0x31, 0x6c, 0x51, 0x32, 0x61, 0x4f, 0x5a, 0x34, 0x57, 0x37, 0x2b, 0x6a, 0x51, 0x46, 0x35, 0x4a, 0x79, 0x4d, 0x56, 0x33, 0x70, 0x4b, 0x64, 0x65, 0x77, 0x6c, 0x4e, 0x57, 0x75, 0x64, 0x4c, 0x53, 0x44, 0x42, 0x61, 0x47, 0x4f, 0x59, 0x4b, 0x62, 0x65, 0x61, 0x50, 0x34, 0x4e, 0x4b, 0x37, 0x35, 0x74, 0x39, 0x38, 0x62, 0x69, 0x47, 0x43, 0x0a, 0x77, 0x57, 0x67, 0x35, 0x54, 0x62, 0x53, 0x59, 0x57, 0x47, 0x5a, 0x69, 0x7a, 0x45, 0x71, 0x51, 0x58, 0x73, 0x50, 0x36, 0x4a, 0x77, 0x53, 0x78, 0x65, 0x52, 0x56, 0x30, 0x6d, 0x63, 0x79, 0x2b, 0x72, 0x53, 0x44, 0x65, 0x4a, 0x6d, 0x41, 0x63, 0x36, 0x31, 0x5a, 0x52, 0x70, 0x71, 0x50, 0x71, 0x35, 0x4b, 0x4d, 0x2f, 0x70, 0x2f, 0x39, 0x68, 0x33, 0x50, 0x46, 0x61, 0x54, 0x57, 0x77, 0x79, 0x49, 0x30, 0x50, 0x75, 0x72, 0x4b, 0x6a, 0x75, 0x37, 0x6b, 0x6f, 0x53, 0x0a, 0x43, 0x54, 0x78, 0x64, 0x63, 0x63, 0x4b, 0x2b, 0x65, 0x66, 0x72, 0x43, 0x68, 0x32, 0x67, 0x64, 0x43, 0x2f, 0x31, 0x63, 0x61, 0x63, 0x77, 0x47, 0x30, 0x4a, 0x70, 0x39, 0x56, 0x4a, 0x6b, 0x71, 0x79, 0x54, 0x6b, 0x61, 0x47, 0x61, 0x39, 0x4c, 0x4b, 0x6b, 0x50, 0x7a, 0x59, 0x31, 0x31, 0x61, 0x57, 0x4f, 0x49, 0x76, 0x34, 0x78, 0x33, 0x6b, 0x71, 0x64, 0x62, 0x51, 0x43, 0x74, 0x43, 0x65, 0x76, 0x39, 0x65, 0x42, 0x43, 0x66, 0x48, 0x4a, 0x78, 0x79, 0x59, 0x4e, 0x0a, 0x72, 0x4a, 0x67, 0x57, 0x56, 0x71, 0x41, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x42, 0x75, 0x79, 0x70, 0x61, 0x73, 0x73, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x57, 0x54, 0x43, 0x43, 0x41, 0x30, 0x47, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x42, 0x41, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x44, 0x42, 0x4f, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x4f, 0x54, 0x7a, 0x45, 0x64, 0x4d, 0x42, 0x73, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x55, 0x0a, 0x51, 0x6e, 0x56, 0x35, 0x63, 0x47, 0x46, 0x7a, 0x63, 0x79, 0x42, 0x42, 0x55, 0x79, 0x30, 0x35, 0x4f, 0x44, 0x4d, 0x78, 0x4e, 0x6a, 0x4d, 0x7a, 0x4d, 0x6a, 0x63, 0x78, 0x49, 0x44, 0x41, 0x65, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x46, 0x30, 0x4a, 0x31, 0x65, 0x58, 0x42, 0x68, 0x63, 0x33, 0x4d, 0x67, 0x51, 0x32, 0x78, 0x68, 0x63, 0x33, 0x4d, 0x67, 0x4d, 0x79, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x42, 0x4d, 0x42, 0x34, 0x58, 0x0a, 0x44, 0x54, 0x45, 0x77, 0x4d, 0x54, 0x41, 0x79, 0x4e, 0x6a, 0x41, 0x34, 0x4d, 0x6a, 0x67, 0x31, 0x4f, 0x46, 0x6f, 0x58, 0x44, 0x54, 0x51, 0x77, 0x4d, 0x54, 0x41, 0x79, 0x4e, 0x6a, 0x41, 0x34, 0x4d, 0x6a, 0x67, 0x31, 0x4f, 0x46, 0x6f, 0x77, 0x54, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x54, 0x6b, 0x38, 0x78, 0x48, 0x54, 0x41, 0x62, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x46, 0x45, 0x4a, 0x31, 0x0a, 0x65, 0x58, 0x42, 0x68, 0x63, 0x33, 0x4d, 0x67, 0x51, 0x56, 0x4d, 0x74, 0x4f, 0x54, 0x67, 0x7a, 0x4d, 0x54, 0x59, 0x7a, 0x4d, 0x7a, 0x49, 0x33, 0x4d, 0x53, 0x41, 0x77, 0x48, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x44, 0x42, 0x64, 0x43, 0x64, 0x58, 0x6c, 0x77, 0x59, 0x58, 0x4e, 0x7a, 0x49, 0x45, 0x4e, 0x73, 0x59, 0x58, 0x4e, 0x7a, 0x49, 0x44, 0x4d, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x51, 0x54, 0x43, 0x43, 0x41, 0x69, 0x49, 0x77, 0x0a, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x50, 0x41, 0x44, 0x43, 0x43, 0x41, 0x67, 0x6f, 0x43, 0x67, 0x67, 0x49, 0x42, 0x41, 0x4b, 0x58, 0x61, 0x43, 0x70, 0x55, 0x57, 0x55, 0x4f, 0x4f, 0x56, 0x38, 0x6c, 0x36, 0x64, 0x64, 0x6a, 0x45, 0x47, 0x4d, 0x6e, 0x71, 0x62, 0x38, 0x52, 0x42, 0x32, 0x75, 0x41, 0x43, 0x61, 0x74, 0x56, 0x49, 0x32, 0x7a, 0x53, 0x52, 0x48, 0x0a, 0x73, 0x4a, 0x38, 0x59, 0x5a, 0x4c, 0x79, 0x61, 0x39, 0x76, 0x72, 0x56, 0x65, 0x64, 0x69, 0x51, 0x59, 0x6b, 0x77, 0x69, 0x4c, 0x39, 0x34, 0x34, 0x50, 0x64, 0x62, 0x67, 0x71, 0x4f, 0x6b, 0x63, 0x4c, 0x4e, 0x74, 0x34, 0x45, 0x65, 0x6d, 0x4f, 0x61, 0x46, 0x45, 0x56, 0x63, 0x73, 0x66, 0x7a, 0x4d, 0x34, 0x66, 0x6b, 0x6f, 0x46, 0x30, 0x4c, 0x58, 0x4f, 0x42, 0x58, 0x42, 0x79, 0x6f, 0x77, 0x39, 0x63, 0x33, 0x45, 0x4e, 0x33, 0x63, 0x6f, 0x54, 0x52, 0x69, 0x52, 0x0a, 0x35, 0x72, 0x2f, 0x56, 0x55, 0x76, 0x31, 0x78, 0x4c, 0x58, 0x41, 0x2b, 0x35, 0x38, 0x62, 0x45, 0x69, 0x75, 0x50, 0x77, 0x4b, 0x41, 0x76, 0x30, 0x64, 0x70, 0x69, 0x68, 0x69, 0x34, 0x64, 0x56, 0x73, 0x6a, 0x6f, 0x54, 0x2f, 0x4c, 0x63, 0x2b, 0x4a, 0x7a, 0x65, 0x4f, 0x49, 0x75, 0x4f, 0x6f, 0x54, 0x79, 0x72, 0x76, 0x59, 0x4c, 0x73, 0x39, 0x74, 0x7a, 0x6e, 0x44, 0x44, 0x67, 0x46, 0x48, 0x6d, 0x56, 0x30, 0x53, 0x54, 0x39, 0x74, 0x44, 0x2b, 0x6c, 0x65, 0x68, 0x0a, 0x37, 0x66, 0x6d, 0x64, 0x76, 0x68, 0x46, 0x48, 0x4a, 0x6c, 0x73, 0x54, 0x6d, 0x4b, 0x74, 0x64, 0x46, 0x6f, 0x71, 0x77, 0x4e, 0x78, 0x78, 0x58, 0x6e, 0x55, 0x58, 0x2f, 0x69, 0x4a, 0x59, 0x32, 0x76, 0x37, 0x76, 0x4b, 0x42, 0x33, 0x74, 0x76, 0x68, 0x32, 0x50, 0x58, 0x30, 0x44, 0x4a, 0x71, 0x31, 0x6c, 0x31, 0x73, 0x44, 0x50, 0x47, 0x7a, 0x62, 0x6a, 0x6e, 0x69, 0x61, 0x7a, 0x45, 0x75, 0x4f, 0x51, 0x41, 0x6e, 0x46, 0x4e, 0x34, 0x34, 0x77, 0x4f, 0x77, 0x5a, 0x0a, 0x5a, 0x6f, 0x59, 0x53, 0x36, 0x4a, 0x31, 0x79, 0x46, 0x68, 0x4e, 0x6b, 0x55, 0x73, 0x65, 0x70, 0x4e, 0x78, 0x7a, 0x39, 0x67, 0x6a, 0x44, 0x74, 0x68, 0x42, 0x67, 0x64, 0x39, 0x4b, 0x35, 0x63, 0x2f, 0x33, 0x41, 0x54, 0x41, 0x4f, 0x75, 0x78, 0x39, 0x54, 0x4e, 0x36, 0x53, 0x39, 0x5a, 0x56, 0x2b, 0x41, 0x57, 0x4e, 0x53, 0x32, 0x6d, 0x77, 0x39, 0x62, 0x4d, 0x6f, 0x4e, 0x6c, 0x77, 0x55, 0x78, 0x46, 0x46, 0x7a, 0x54, 0x57, 0x73, 0x4c, 0x38, 0x54, 0x51, 0x48, 0x0a, 0x32, 0x78, 0x63, 0x35, 0x31, 0x39, 0x77, 0x6f, 0x65, 0x32, 0x76, 0x31, 0x6e, 0x2f, 0x4d, 0x75, 0x77, 0x55, 0x38, 0x58, 0x4b, 0x68, 0x44, 0x7a, 0x7a, 0x4d, 0x72, 0x6f, 0x36, 0x2f, 0x31, 0x72, 0x71, 0x79, 0x36, 0x61, 0x6e, 0x79, 0x32, 0x43, 0x62, 0x67, 0x54, 0x55, 0x55, 0x67, 0x47, 0x54, 0x4c, 0x54, 0x32, 0x47, 0x2f, 0x48, 0x37, 0x38, 0x33, 0x2b, 0x39, 0x43, 0x48, 0x61, 0x5a, 0x72, 0x37, 0x37, 0x6b, 0x67, 0x78, 0x76, 0x65, 0x39, 0x6f, 0x4b, 0x65, 0x56, 0x0a, 0x2f, 0x61, 0x66, 0x6d, 0x69, 0x53, 0x54, 0x59, 0x7a, 0x49, 0x77, 0x30, 0x62, 0x4f, 0x49, 0x6a, 0x4c, 0x39, 0x6b, 0x53, 0x47, 0x69, 0x47, 0x35, 0x56, 0x5a, 0x46, 0x76, 0x43, 0x35, 0x46, 0x35, 0x47, 0x51, 0x79, 0x74, 0x51, 0x49, 0x67, 0x4c, 0x63, 0x4f, 0x4a, 0x36, 0x30, 0x67, 0x37, 0x59, 0x61, 0x45, 0x69, 0x37, 0x67, 0x68, 0x4d, 0x35, 0x45, 0x46, 0x6a, 0x70, 0x32, 0x43, 0x6f, 0x48, 0x78, 0x68, 0x4c, 0x62, 0x57, 0x4e, 0x76, 0x53, 0x4f, 0x31, 0x55, 0x51, 0x0a, 0x52, 0x77, 0x55, 0x56, 0x5a, 0x32, 0x4a, 0x2b, 0x47, 0x47, 0x4f, 0x6d, 0x52, 0x6a, 0x38, 0x4a, 0x44, 0x6c, 0x51, 0x79, 0x58, 0x72, 0x38, 0x4e, 0x59, 0x6e, 0x6f, 0x6e, 0x37, 0x34, 0x44, 0x6f, 0x32, 0x39, 0x6c, 0x4c, 0x42, 0x6c, 0x6f, 0x33, 0x57, 0x69, 0x58, 0x51, 0x43, 0x42, 0x4a, 0x33, 0x31, 0x47, 0x38, 0x4a, 0x55, 0x4a, 0x63, 0x39, 0x79, 0x42, 0x33, 0x44, 0x33, 0x34, 0x78, 0x46, 0x4d, 0x46, 0x62, 0x47, 0x30, 0x32, 0x53, 0x72, 0x5a, 0x76, 0x50, 0x41, 0x0a, 0x58, 0x70, 0x61, 0x63, 0x77, 0x38, 0x54, 0x76, 0x77, 0x33, 0x78, 0x72, 0x69, 0x7a, 0x70, 0x35, 0x66, 0x37, 0x4e, 0x4a, 0x7a, 0x7a, 0x33, 0x69, 0x69, 0x5a, 0x2b, 0x67, 0x4d, 0x45, 0x75, 0x46, 0x75, 0x5a, 0x79, 0x55, 0x4a, 0x48, 0x6d, 0x50, 0x66, 0x57, 0x75, 0x70, 0x52, 0x57, 0x67, 0x50, 0x4b, 0x39, 0x44, 0x78, 0x32, 0x68, 0x7a, 0x4c, 0x61, 0x62, 0x6a, 0x4b, 0x53, 0x57, 0x4a, 0x74, 0x79, 0x4e, 0x42, 0x6a, 0x59, 0x74, 0x31, 0x67, 0x44, 0x31, 0x69, 0x71, 0x0a, 0x6a, 0x36, 0x47, 0x38, 0x42, 0x61, 0x56, 0x6d, 0x6f, 0x73, 0x38, 0x62, 0x64, 0x72, 0x4b, 0x45, 0x5a, 0x4c, 0x46, 0x4d, 0x4f, 0x56, 0x4c, 0x41, 0x4d, 0x4c, 0x72, 0x77, 0x6a, 0x45, 0x73, 0x43, 0x73, 0x4c, 0x61, 0x33, 0x41, 0x67, 0x4d, 0x42, 0x41, 0x41, 0x47, 0x6a, 0x51, 0x6a, 0x42, 0x41, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x48, 0x51, 0x59, 0x44, 0x0a, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x45, 0x65, 0x34, 0x7a, 0x66, 0x2f, 0x6c, 0x62, 0x2b, 0x37, 0x34, 0x73, 0x75, 0x77, 0x76, 0x54, 0x67, 0x37, 0x35, 0x4a, 0x62, 0x43, 0x4f, 0x50, 0x47, 0x76, 0x44, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x42, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x0a, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x45, 0x41, 0x41, 0x43, 0x41, 0x6a, 0x51, 0x54, 0x55, 0x45, 0x6b, 0x4d, 0x4a, 0x41, 0x59, 0x6d, 0x44, 0x76, 0x34, 0x6a, 0x56, 0x4d, 0x31, 0x7a, 0x2b, 0x73, 0x34, 0x6a, 0x53, 0x51, 0x75, 0x4b, 0x46, 0x76, 0x64, 0x76, 0x6f, 0x57, 0x46, 0x71, 0x52, 0x49, 0x4e, 0x79, 0x7a, 0x70, 0x6b, 0x4d, 0x4c, 0x79, 0x50, 0x50, 0x67, 0x4b, 0x6e, 0x39, 0x69, 0x42, 0x35, 0x62, 0x74, 0x62, 0x32, 0x69, 0x55, 0x73, 0x70, 0x4b, 0x64, 0x56, 0x0a, 0x63, 0x53, 0x51, 0x79, 0x39, 0x73, 0x67, 0x4c, 0x38, 0x72, 0x78, 0x71, 0x2b, 0x4a, 0x4f, 0x73, 0x73, 0x67, 0x66, 0x43, 0x58, 0x35, 0x2f, 0x62, 0x7a, 0x4d, 0x69, 0x4b, 0x71, 0x72, 0x35, 0x71, 0x62, 0x2b, 0x46, 0x4a, 0x45, 0x4d, 0x77, 0x78, 0x31, 0x34, 0x43, 0x37, 0x75, 0x38, 0x6a, 0x59, 0x6f, 0x67, 0x35, 0x6b, 0x56, 0x2b, 0x71, 0x69, 0x39, 0x63, 0x4b, 0x70, 0x4d, 0x52, 0x58, 0x53, 0x49, 0x47, 0x72, 0x73, 0x2f, 0x43, 0x49, 0x42, 0x4b, 0x4d, 0x2b, 0x47, 0x0a, 0x75, 0x49, 0x41, 0x65, 0x71, 0x63, 0x77, 0x52, 0x70, 0x54, 0x7a, 0x79, 0x46, 0x72, 0x4e, 0x48, 0x6e, 0x66, 0x7a, 0x53, 0x67, 0x43, 0x48, 0x45, 0x79, 0x39, 0x42, 0x48, 0x63, 0x45, 0x47, 0x68, 0x79, 0x6f, 0x4d, 0x5a, 0x43, 0x43, 0x78, 0x74, 0x38, 0x6c, 0x31, 0x33, 0x6e, 0x49, 0x6f, 0x55, 0x45, 0x39, 0x51, 0x32, 0x48, 0x4a, 0x4c, 0x77, 0x35, 0x51, 0x59, 0x33, 0x33, 0x4b, 0x62, 0x6d, 0x6b, 0x4a, 0x73, 0x34, 0x6a, 0x31, 0x78, 0x72, 0x47, 0x30, 0x61, 0x47, 0x0a, 0x51, 0x30, 0x4a, 0x66, 0x50, 0x67, 0x45, 0x48, 0x55, 0x31, 0x52, 0x64, 0x5a, 0x58, 0x33, 0x33, 0x69, 0x6e, 0x4f, 0x68, 0x6d, 0x6c, 0x52, 0x61, 0x48, 0x79, 0x6c, 0x44, 0x46, 0x43, 0x66, 0x43, 0x68, 0x51, 0x2b, 0x31, 0x69, 0x48, 0x73, 0x61, 0x4f, 0x35, 0x53, 0x33, 0x48, 0x57, 0x43, 0x6e, 0x74, 0x5a, 0x7a, 0x6e, 0x4b, 0x57, 0x6c, 0x58, 0x57, 0x70, 0x75, 0x54, 0x65, 0x6b, 0x4d, 0x77, 0x47, 0x77, 0x50, 0x58, 0x59, 0x73, 0x68, 0x41, 0x70, 0x71, 0x72, 0x38, 0x0a, 0x5a, 0x4f, 0x52, 0x4b, 0x31, 0x35, 0x46, 0x54, 0x41, 0x61, 0x67, 0x67, 0x69, 0x47, 0x36, 0x63, 0x58, 0x30, 0x53, 0x35, 0x79, 0x32, 0x43, 0x42, 0x4e, 0x4f, 0x78, 0x76, 0x30, 0x33, 0x33, 0x61, 0x53, 0x46, 0x2f, 0x72, 0x74, 0x4a, 0x43, 0x38, 0x4c, 0x61, 0x6b, 0x63, 0x43, 0x36, 0x77, 0x63, 0x31, 0x61, 0x4a, 0x6f, 0x49, 0x49, 0x41, 0x45, 0x31, 0x76, 0x79, 0x78, 0x6a, 0x79, 0x2b, 0x37, 0x53, 0x6a, 0x45, 0x4e, 0x53, 0x6f, 0x59, 0x63, 0x36, 0x2b, 0x49, 0x32, 0x0a, 0x4b, 0x53, 0x62, 0x31, 0x32, 0x74, 0x6a, 0x45, 0x38, 0x6e, 0x56, 0x68, 0x7a, 0x33, 0x36, 0x75, 0x64, 0x6d, 0x4e, 0x4b, 0x65, 0x6b, 0x42, 0x6c, 0x6b, 0x34, 0x66, 0x34, 0x48, 0x6f, 0x43, 0x4d, 0x68, 0x75, 0x57, 0x47, 0x31, 0x6f, 0x38, 0x4f, 0x2f, 0x46, 0x4d, 0x73, 0x59, 0x4f, 0x67, 0x57, 0x59, 0x52, 0x71, 0x69, 0x50, 0x6b, 0x4e, 0x37, 0x7a, 0x54, 0x6c, 0x67, 0x56, 0x47, 0x72, 0x31, 0x38, 0x6f, 0x6b, 0x6d, 0x41, 0x57, 0x69, 0x44, 0x53, 0x4b, 0x49, 0x7a, 0x0a, 0x36, 0x4d, 0x6b, 0x45, 0x6b, 0x62, 0x49, 0x52, 0x4e, 0x42, 0x45, 0x2b, 0x36, 0x74, 0x42, 0x44, 0x47, 0x52, 0x38, 0x44, 0x6b, 0x35, 0x41, 0x4d, 0x2f, 0x31, 0x45, 0x39, 0x56, 0x2f, 0x52, 0x42, 0x62, 0x75, 0x48, 0x4c, 0x6f, 0x4c, 0x37, 0x72, 0x79, 0x57, 0x50, 0x4e, 0x62, 0x63, 0x7a, 0x6b, 0x2b, 0x44, 0x61, 0x71, 0x61, 0x4a, 0x33, 0x74, 0x76, 0x56, 0x32, 0x58, 0x63, 0x45, 0x51, 0x4e, 0x74, 0x67, 0x34, 0x31, 0x33, 0x4f, 0x45, 0x4d, 0x58, 0x62, 0x75, 0x67, 0x0a, 0x55, 0x5a, 0x54, 0x4c, 0x66, 0x68, 0x62, 0x72, 0x45, 0x53, 0x2b, 0x6a, 0x6b, 0x6b, 0x58, 0x49, 0x54, 0x48, 0x48, 0x5a, 0x76, 0x4d, 0x6d, 0x5a, 0x55, 0x6c, 0x64, 0x47, 0x4c, 0x31, 0x44, 0x50, 0x76, 0x54, 0x56, 0x70, 0x39, 0x44, 0x30, 0x56, 0x7a, 0x67, 0x61, 0x6c, 0x4c, 0x41, 0x38, 0x2b, 0x39, 0x6f, 0x47, 0x36, 0x6c, 0x4c, 0x76, 0x44, 0x75, 0x37, 0x39, 0x6c, 0x65, 0x4e, 0x4b, 0x47, 0x65, 0x66, 0x39, 0x4a, 0x4f, 0x78, 0x71, 0x44, 0x44, 0x50, 0x44, 0x65, 0x0a, 0x65, 0x4f, 0x7a, 0x49, 0x38, 0x6b, 0x31, 0x4d, 0x47, 0x74, 0x36, 0x43, 0x4b, 0x66, 0x6a, 0x42, 0x57, 0x74, 0x72, 0x74, 0x37, 0x75, 0x59, 0x6e, 0x58, 0x75, 0x68, 0x46, 0x30, 0x4a, 0x30, 0x63, 0x55, 0x61, 0x68, 0x6f, 0x71, 0x30, 0x54, 0x6a, 0x30, 0x49, 0x74, 0x71, 0x34, 0x2f, 0x67, 0x37, 0x75, 0x39, 0x78, 0x4e, 0x31, 0x32, 0x54, 0x79, 0x55, 0x62, 0x37, 0x6d, 0x71, 0x71, 0x74, 0x61, 0x36, 0x54, 0x48, 0x75, 0x42, 0x72, 0x78, 0x7a, 0x76, 0x78, 0x4e, 0x69, 0x0a, 0x43, 0x70, 0x2f, 0x48, 0x75, 0x5a, 0x63, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x54, 0x2d, 0x54, 0x65, 0x6c, 0x65, 0x53, 0x65, 0x63, 0x20, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x33, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x44, 0x77, 0x7a, 0x43, 0x43, 0x41, 0x71, 0x75, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x42, 0x41, 0x54, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x44, 0x43, 0x42, 0x67, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x52, 0x45, 0x55, 0x78, 0x4b, 0x7a, 0x41, 0x70, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x0a, 0x49, 0x6c, 0x51, 0x74, 0x55, 0x33, 0x6c, 0x7a, 0x64, 0x47, 0x56, 0x74, 0x63, 0x79, 0x42, 0x46, 0x62, 0x6e, 0x52, 0x6c, 0x63, 0x6e, 0x42, 0x79, 0x61, 0x58, 0x4e, 0x6c, 0x49, 0x46, 0x4e, 0x6c, 0x63, 0x6e, 0x5a, 0x70, 0x59, 0x32, 0x56, 0x7a, 0x49, 0x45, 0x64, 0x74, 0x59, 0x6b, 0x67, 0x78, 0x48, 0x7a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x73, 0x4d, 0x46, 0x6c, 0x51, 0x74, 0x55, 0x33, 0x6c, 0x7a, 0x64, 0x47, 0x56, 0x74, 0x63, 0x79, 0x42, 0x55, 0x0a, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x42, 0x44, 0x5a, 0x57, 0x35, 0x30, 0x5a, 0x58, 0x49, 0x78, 0x4a, 0x54, 0x41, 0x6a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x48, 0x46, 0x51, 0x74, 0x56, 0x47, 0x56, 0x73, 0x5a, 0x56, 0x4e, 0x6c, 0x59, 0x79, 0x42, 0x48, 0x62, 0x47, 0x39, 0x69, 0x59, 0x57, 0x78, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x73, 0x59, 0x58, 0x4e, 0x7a, 0x49, 0x44, 0x4d, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x44, 0x67, 0x78, 0x0a, 0x4d, 0x44, 0x41, 0x78, 0x4d, 0x54, 0x41, 0x79, 0x4f, 0x54, 0x55, 0x32, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x7a, 0x4d, 0x78, 0x4d, 0x44, 0x41, 0x78, 0x4d, 0x6a, 0x4d, 0x31, 0x4f, 0x54, 0x55, 0x35, 0x57, 0x6a, 0x43, 0x42, 0x67, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x52, 0x45, 0x55, 0x78, 0x4b, 0x7a, 0x41, 0x70, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x49, 0x6c, 0x51, 0x74, 0x55, 0x33, 0x6c, 0x7a, 0x0a, 0x64, 0x47, 0x56, 0x74, 0x63, 0x79, 0x42, 0x46, 0x62, 0x6e, 0x52, 0x6c, 0x63, 0x6e, 0x42, 0x79, 0x61, 0x58, 0x4e, 0x6c, 0x49, 0x46, 0x4e, 0x6c, 0x63, 0x6e, 0x5a, 0x70, 0x59, 0x32, 0x56, 0x7a, 0x49, 0x45, 0x64, 0x74, 0x59, 0x6b, 0x67, 0x78, 0x48, 0x7a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x73, 0x4d, 0x46, 0x6c, 0x51, 0x74, 0x55, 0x33, 0x6c, 0x7a, 0x64, 0x47, 0x56, 0x74, 0x63, 0x79, 0x42, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x42, 0x44, 0x0a, 0x5a, 0x57, 0x35, 0x30, 0x5a, 0x58, 0x49, 0x78, 0x4a, 0x54, 0x41, 0x6a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x48, 0x46, 0x51, 0x74, 0x56, 0x47, 0x56, 0x73, 0x5a, 0x56, 0x4e, 0x6c, 0x59, 0x79, 0x42, 0x48, 0x62, 0x47, 0x39, 0x69, 0x59, 0x57, 0x78, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x73, 0x59, 0x58, 0x4e, 0x7a, 0x49, 0x44, 0x4d, 0x77, 0x67, 0x67, 0x45, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x0a, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x42, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x45, 0x4b, 0x41, 0x6f, 0x49, 0x42, 0x41, 0x51, 0x43, 0x39, 0x64, 0x5a, 0x50, 0x77, 0x59, 0x69, 0x4a, 0x76, 0x4a, 0x4b, 0x37, 0x67, 0x65, 0x6e, 0x61, 0x73, 0x66, 0x62, 0x33, 0x5a, 0x4a, 0x4e, 0x57, 0x34, 0x74, 0x2f, 0x7a, 0x4e, 0x38, 0x45, 0x4c, 0x67, 0x36, 0x33, 0x69, 0x49, 0x56, 0x6c, 0x36, 0x62, 0x6d, 0x6c, 0x51, 0x64, 0x54, 0x51, 0x79, 0x4b, 0x0a, 0x39, 0x74, 0x50, 0x50, 0x63, 0x50, 0x52, 0x53, 0x74, 0x64, 0x69, 0x54, 0x42, 0x4f, 0x4e, 0x47, 0x68, 0x6e, 0x46, 0x42, 0x53, 0x69, 0x76, 0x77, 0x4b, 0x69, 0x78, 0x56, 0x41, 0x39, 0x5a, 0x49, 0x77, 0x2b, 0x41, 0x35, 0x4f, 0x4f, 0x33, 0x79, 0x58, 0x44, 0x77, 0x2f, 0x52, 0x4c, 0x79, 0x54, 0x50, 0x57, 0x47, 0x72, 0x54, 0x73, 0x30, 0x4e, 0x76, 0x76, 0x41, 0x67, 0x4a, 0x31, 0x67, 0x4f, 0x52, 0x48, 0x38, 0x45, 0x47, 0x6f, 0x65, 0x6c, 0x31, 0x35, 0x59, 0x55, 0x0a, 0x4e, 0x70, 0x44, 0x51, 0x53, 0x58, 0x75, 0x68, 0x64, 0x66, 0x73, 0x61, 0x61, 0x33, 0x4f, 0x78, 0x2b, 0x4d, 0x36, 0x70, 0x43, 0x53, 0x7a, 0x79, 0x55, 0x39, 0x58, 0x44, 0x46, 0x45, 0x53, 0x34, 0x68, 0x71, 0x58, 0x32, 0x69, 0x79, 0x73, 0x35, 0x32, 0x71, 0x4d, 0x7a, 0x56, 0x4e, 0x6e, 0x36, 0x63, 0x68, 0x72, 0x33, 0x49, 0x68, 0x55, 0x63, 0x69, 0x4a, 0x46, 0x72, 0x66, 0x32, 0x62, 0x6c, 0x77, 0x32, 0x71, 0x41, 0x73, 0x43, 0x54, 0x7a, 0x33, 0x34, 0x5a, 0x46, 0x0a, 0x69, 0x50, 0x30, 0x5a, 0x66, 0x33, 0x57, 0x48, 0x48, 0x78, 0x2b, 0x78, 0x47, 0x77, 0x70, 0x7a, 0x4a, 0x46, 0x75, 0x35, 0x5a, 0x65, 0x41, 0x73, 0x56, 0x4d, 0x68, 0x67, 0x30, 0x32, 0x59, 0x58, 0x50, 0x2b, 0x48, 0x4d, 0x56, 0x44, 0x4e, 0x7a, 0x6b, 0x51, 0x49, 0x36, 0x70, 0x6e, 0x39, 0x37, 0x64, 0x6a, 0x6d, 0x69, 0x48, 0x35, 0x61, 0x32, 0x4f, 0x4b, 0x36, 0x31, 0x79, 0x4a, 0x4e, 0x30, 0x48, 0x5a, 0x36, 0x35, 0x74, 0x4f, 0x56, 0x67, 0x6e, 0x53, 0x39, 0x57, 0x0a, 0x30, 0x65, 0x44, 0x72, 0x58, 0x6c, 0x74, 0x4d, 0x45, 0x6e, 0x41, 0x4d, 0x62, 0x45, 0x51, 0x67, 0x71, 0x78, 0x48, 0x59, 0x39, 0x42, 0x6e, 0x32, 0x30, 0x70, 0x78, 0x53, 0x4e, 0x2b, 0x66, 0x36, 0x74, 0x73, 0x49, 0x78, 0x4f, 0x30, 0x72, 0x55, 0x46, 0x4a, 0x6d, 0x74, 0x78, 0x78, 0x72, 0x31, 0x58, 0x56, 0x2f, 0x36, 0x42, 0x37, 0x68, 0x38, 0x44, 0x52, 0x2f, 0x57, 0x67, 0x78, 0x36, 0x7a, 0x41, 0x67, 0x4d, 0x42, 0x41, 0x41, 0x47, 0x6a, 0x51, 0x6a, 0x42, 0x41, 0x0a, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x45, 0x47, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x53, 0x31, 0x41, 0x2f, 0x64, 0x32, 0x4f, 0x32, 0x47, 0x43, 0x61, 0x68, 0x4b, 0x71, 0x47, 0x46, 0x50, 0x72, 0x0a, 0x41, 0x79, 0x47, 0x55, 0x76, 0x2f, 0x37, 0x4f, 0x79, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x51, 0x45, 0x41, 0x56, 0x6a, 0x33, 0x76, 0x6c, 0x4e, 0x57, 0x39, 0x32, 0x6e, 0x4f, 0x79, 0x57, 0x4c, 0x36, 0x75, 0x6b, 0x4b, 0x32, 0x59, 0x4a, 0x35, 0x66, 0x2b, 0x41, 0x62, 0x47, 0x77, 0x55, 0x67, 0x43, 0x34, 0x54, 0x65, 0x51, 0x62, 0x49, 0x58, 0x51, 0x62, 0x0a, 0x66, 0x73, 0x44, 0x75, 0x58, 0x6d, 0x6b, 0x71, 0x4a, 0x61, 0x39, 0x63, 0x31, 0x68, 0x33, 0x61, 0x30, 0x6e, 0x6e, 0x4a, 0x38, 0x35, 0x63, 0x70, 0x34, 0x49, 0x61, 0x48, 0x33, 0x67, 0x52, 0x5a, 0x44, 0x2f, 0x46, 0x5a, 0x31, 0x47, 0x53, 0x46, 0x53, 0x35, 0x6d, 0x76, 0x4a, 0x51, 0x51, 0x65, 0x79, 0x55, 0x61, 0x70, 0x6c, 0x39, 0x36, 0x43, 0x73, 0x68, 0x74, 0x77, 0x6e, 0x35, 0x7a, 0x32, 0x72, 0x33, 0x45, 0x78, 0x33, 0x58, 0x73, 0x46, 0x70, 0x53, 0x7a, 0x54, 0x0a, 0x75, 0x63, 0x70, 0x48, 0x39, 0x73, 0x72, 0x79, 0x39, 0x75, 0x65, 0x74, 0x75, 0x55, 0x67, 0x2f, 0x76, 0x42, 0x61, 0x33, 0x77, 0x57, 0x33, 0x30, 0x36, 0x67, 0x6d, 0x76, 0x37, 0x50, 0x4f, 0x31, 0x35, 0x77, 0x57, 0x65, 0x70, 0x68, 0x36, 0x4b, 0x55, 0x31, 0x48, 0x57, 0x6b, 0x34, 0x48, 0x4d, 0x64, 0x4a, 0x50, 0x32, 0x75, 0x64, 0x71, 0x6d, 0x4a, 0x51, 0x56, 0x30, 0x65, 0x56, 0x70, 0x2b, 0x51, 0x44, 0x36, 0x43, 0x53, 0x79, 0x59, 0x52, 0x4d, 0x47, 0x37, 0x68, 0x0a, 0x50, 0x30, 0x48, 0x48, 0x52, 0x77, 0x41, 0x31, 0x31, 0x66, 0x58, 0x54, 0x39, 0x31, 0x51, 0x2b, 0x67, 0x54, 0x33, 0x61, 0x53, 0x57, 0x71, 0x61, 0x73, 0x2b, 0x38, 0x51, 0x50, 0x65, 0x62, 0x72, 0x62, 0x39, 0x48, 0x49, 0x49, 0x6b, 0x66, 0x4c, 0x7a, 0x4d, 0x38, 0x42, 0x4d, 0x5a, 0x4c, 0x5a, 0x47, 0x4f, 0x4d, 0x69, 0x76, 0x67, 0x6b, 0x65, 0x47, 0x6a, 0x35, 0x61, 0x73, 0x75, 0x52, 0x72, 0x44, 0x46, 0x52, 0x36, 0x66, 0x55, 0x4e, 0x4f, 0x75, 0x49, 0x6d, 0x6c, 0x0a, 0x65, 0x39, 0x65, 0x69, 0x50, 0x5a, 0x61, 0x47, 0x7a, 0x50, 0x49, 0x6d, 0x4e, 0x43, 0x31, 0x71, 0x6b, 0x70, 0x32, 0x61, 0x47, 0x74, 0x41, 0x77, 0x34, 0x6c, 0x31, 0x4f, 0x42, 0x4c, 0x42, 0x66, 0x69, 0x79, 0x42, 0x2b, 0x64, 0x38, 0x45, 0x39, 0x6c, 0x59, 0x4c, 0x52, 0x52, 0x70, 0x6f, 0x37, 0x50, 0x48, 0x69, 0x34, 0x62, 0x36, 0x48, 0x51, 0x44, 0x57, 0x53, 0x69, 0x65, 0x42, 0x34, 0x70, 0x54, 0x70, 0x50, 0x44, 0x70, 0x46, 0x51, 0x55, 0x57, 0x77, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x44, 0x2d, 0x54, 0x52, 0x55, 0x53, 0x54, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x43, 0x41, 0x20, 0x32, 0x20, 0x32, 0x30, 0x30, 0x39, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x45, 0x4d, 0x7a, 0x43, 0x43, 0x41, 0x78, 0x75, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x44, 0x43, 0x59, 0x50, 0x7a, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x43, 0x77, 0x55, 0x41, 0x4d, 0x45, 0x30, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6b, 0x52, 0x46, 0x4d, 0x52, 0x55, 0x77, 0x45, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x0a, 0x44, 0x41, 0x78, 0x45, 0x4c, 0x56, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x49, 0x45, 0x64, 0x74, 0x59, 0x6b, 0x67, 0x78, 0x4a, 0x7a, 0x41, 0x6c, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x48, 0x6b, 0x51, 0x74, 0x56, 0x46, 0x4a, 0x56, 0x55, 0x31, 0x51, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x62, 0x47, 0x46, 0x7a, 0x63, 0x79, 0x41, 0x7a, 0x49, 0x45, 0x4e, 0x42, 0x49, 0x44, 0x49, 0x67, 0x4d, 0x6a, 0x41, 0x77, 0x4f, 0x54, 0x41, 0x65, 0x0a, 0x46, 0x77, 0x30, 0x77, 0x4f, 0x54, 0x45, 0x78, 0x4d, 0x44, 0x55, 0x77, 0x4f, 0x44, 0x4d, 0x31, 0x4e, 0x54, 0x68, 0x61, 0x46, 0x77, 0x30, 0x79, 0x4f, 0x54, 0x45, 0x78, 0x4d, 0x44, 0x55, 0x77, 0x4f, 0x44, 0x4d, 0x31, 0x4e, 0x54, 0x68, 0x61, 0x4d, 0x45, 0x30, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6b, 0x52, 0x46, 0x4d, 0x52, 0x55, 0x77, 0x45, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x41, 0x78, 0x45, 0x0a, 0x4c, 0x56, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x49, 0x45, 0x64, 0x74, 0x59, 0x6b, 0x67, 0x78, 0x4a, 0x7a, 0x41, 0x6c, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x48, 0x6b, 0x51, 0x74, 0x56, 0x46, 0x4a, 0x56, 0x55, 0x31, 0x51, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x62, 0x47, 0x46, 0x7a, 0x63, 0x79, 0x41, 0x7a, 0x49, 0x45, 0x4e, 0x42, 0x49, 0x44, 0x49, 0x67, 0x4d, 0x6a, 0x41, 0x77, 0x4f, 0x54, 0x43, 0x43, 0x41, 0x53, 0x49, 0x77, 0x0a, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x45, 0x50, 0x41, 0x44, 0x43, 0x43, 0x41, 0x51, 0x6f, 0x43, 0x67, 0x67, 0x45, 0x42, 0x41, 0x4e, 0x4f, 0x79, 0x53, 0x73, 0x39, 0x36, 0x52, 0x2b, 0x39, 0x31, 0x6d, 0x79, 0x50, 0x36, 0x4f, 0x69, 0x2f, 0x57, 0x55, 0x45, 0x57, 0x4a, 0x4e, 0x54, 0x72, 0x47, 0x61, 0x39, 0x76, 0x2b, 0x32, 0x77, 0x42, 0x6f, 0x71, 0x4f, 0x41, 0x44, 0x0a, 0x45, 0x52, 0x30, 0x33, 0x55, 0x41, 0x69, 0x66, 0x54, 0x55, 0x70, 0x6f, 0x6c, 0x44, 0x57, 0x7a, 0x55, 0x39, 0x47, 0x55, 0x59, 0x36, 0x63, 0x67, 0x56, 0x71, 0x2f, 0x65, 0x55, 0x58, 0x6a, 0x73, 0x4b, 0x6a, 0x33, 0x7a, 0x53, 0x45, 0x68, 0x51, 0x50, 0x67, 0x72, 0x66, 0x52, 0x6c, 0x57, 0x4c, 0x4a, 0x32, 0x33, 0x44, 0x45, 0x45, 0x30, 0x4e, 0x6b, 0x56, 0x4a, 0x44, 0x32, 0x49, 0x66, 0x67, 0x58, 0x55, 0x34, 0x32, 0x74, 0x53, 0x48, 0x4b, 0x58, 0x7a, 0x6c, 0x41, 0x0a, 0x42, 0x46, 0x39, 0x62, 0x66, 0x73, 0x79, 0x6a, 0x78, 0x69, 0x75, 0x70, 0x51, 0x42, 0x37, 0x5a, 0x4e, 0x6f, 0x54, 0x57, 0x53, 0x50, 0x4f, 0x53, 0x48, 0x6a, 0x52, 0x47, 0x49, 0x43, 0x54, 0x42, 0x70, 0x46, 0x47, 0x4f, 0x53, 0x68, 0x72, 0x76, 0x55, 0x44, 0x39, 0x70, 0x58, 0x52, 0x6c, 0x2f, 0x52, 0x63, 0x50, 0x48, 0x41, 0x59, 0x39, 0x52, 0x79, 0x53, 0x50, 0x6f, 0x63, 0x71, 0x36, 0x30, 0x76, 0x46, 0x59, 0x4a, 0x66, 0x78, 0x4c, 0x4c, 0x48, 0x4c, 0x47, 0x76, 0x0a, 0x4b, 0x5a, 0x41, 0x4b, 0x79, 0x56, 0x58, 0x4d, 0x44, 0x39, 0x4f, 0x30, 0x47, 0x75, 0x31, 0x48, 0x4e, 0x56, 0x70, 0x4b, 0x37, 0x5a, 0x78, 0x7a, 0x42, 0x43, 0x48, 0x51, 0x71, 0x72, 0x30, 0x4d, 0x45, 0x37, 0x55, 0x41, 0x79, 0x69, 0x5a, 0x73, 0x78, 0x47, 0x73, 0x4d, 0x6c, 0x46, 0x71, 0x56, 0x6c, 0x4e, 0x70, 0x51, 0x6d, 0x76, 0x48, 0x2f, 0x70, 0x53, 0x74, 0x6d, 0x4d, 0x61, 0x54, 0x4a, 0x4f, 0x4b, 0x44, 0x66, 0x48, 0x52, 0x2b, 0x34, 0x43, 0x53, 0x37, 0x7a, 0x0a, 0x70, 0x2b, 0x68, 0x6e, 0x55, 0x71, 0x75, 0x56, 0x48, 0x2b, 0x42, 0x47, 0x50, 0x74, 0x69, 0x6b, 0x77, 0x38, 0x70, 0x61, 0x78, 0x54, 0x47, 0x41, 0x36, 0x45, 0x69, 0x61, 0x6e, 0x35, 0x52, 0x70, 0x2f, 0x68, 0x6e, 0x64, 0x32, 0x48, 0x4e, 0x38, 0x67, 0x63, 0x71, 0x57, 0x33, 0x6f, 0x37, 0x74, 0x73, 0x7a, 0x49, 0x46, 0x5a, 0x59, 0x51, 0x30, 0x35, 0x75, 0x62, 0x39, 0x56, 0x78, 0x43, 0x31, 0x58, 0x33, 0x61, 0x2f, 0x4c, 0x37, 0x41, 0x51, 0x44, 0x63, 0x55, 0x43, 0x0a, 0x41, 0x77, 0x45, 0x41, 0x41, 0x61, 0x4f, 0x43, 0x41, 0x52, 0x6f, 0x77, 0x67, 0x67, 0x45, 0x57, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x50, 0x33, 0x61, 0x46, 0x4d, 0x53, 0x66, 0x4d, 0x4e, 0x34, 0x68, 0x76, 0x52, 0x35, 0x43, 0x4f, 0x66, 0x79, 0x72, 0x59, 0x79, 0x4e, 0x4a, 0x0a, 0x34, 0x50, 0x47, 0x45, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x42, 0x6a, 0x43, 0x42, 0x30, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x66, 0x42, 0x49, 0x48, 0x4c, 0x4d, 0x49, 0x48, 0x49, 0x4d, 0x49, 0x47, 0x41, 0x6f, 0x48, 0x36, 0x67, 0x66, 0x49, 0x5a, 0x36, 0x62, 0x47, 0x52, 0x68, 0x63, 0x44, 0x6f, 0x76, 0x4c, 0x32, 0x52, 0x70, 0x63, 0x6d, 0x56, 0x6a, 0x64, 0x47, 0x39, 0x79, 0x0a, 0x65, 0x53, 0x35, 0x6b, 0x4c, 0x58, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x4c, 0x6d, 0x35, 0x6c, 0x64, 0x43, 0x39, 0x44, 0x54, 0x6a, 0x31, 0x45, 0x4c, 0x56, 0x52, 0x53, 0x56, 0x56, 0x4e, 0x55, 0x4a, 0x54, 0x49, 0x77, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x55, 0x79, 0x4d, 0x45, 0x4e, 0x73, 0x59, 0x58, 0x4e, 0x7a, 0x4a, 0x54, 0x49, 0x77, 0x4d, 0x79, 0x55, 0x79, 0x4d, 0x45, 0x4e, 0x42, 0x4a, 0x54, 0x49, 0x77, 0x4d, 0x69, 0x55, 0x79, 0x4d, 0x44, 0x49, 0x77, 0x0a, 0x4d, 0x44, 0x6b, 0x73, 0x54, 0x7a, 0x31, 0x45, 0x4c, 0x56, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x4a, 0x54, 0x49, 0x77, 0x52, 0x32, 0x31, 0x69, 0x53, 0x43, 0x78, 0x44, 0x50, 0x55, 0x52, 0x46, 0x50, 0x32, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x70, 0x5a, 0x6d, 0x6c, 0x6a, 0x59, 0x58, 0x52, 0x6c, 0x63, 0x6d, 0x56, 0x32, 0x62, 0x32, 0x4e, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x6d, 0x78, 0x70, 0x63, 0x33, 0x51, 0x77, 0x51, 0x36, 0x42, 0x42, 0x6f, 0x44, 0x2b, 0x47, 0x0a, 0x50, 0x57, 0x68, 0x30, 0x64, 0x48, 0x41, 0x36, 0x4c, 0x79, 0x39, 0x33, 0x64, 0x33, 0x63, 0x75, 0x5a, 0x43, 0x31, 0x30, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x35, 0x75, 0x5a, 0x58, 0x51, 0x76, 0x59, 0x33, 0x4a, 0x73, 0x4c, 0x32, 0x51, 0x74, 0x64, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x52, 0x66, 0x63, 0x6d, 0x39, 0x76, 0x64, 0x46, 0x39, 0x6a, 0x62, 0x47, 0x46, 0x7a, 0x63, 0x31, 0x38, 0x7a, 0x58, 0x32, 0x4e, 0x68, 0x58, 0x7a, 0x4a, 0x66, 0x4d, 0x6a, 0x41, 0x77, 0x0a, 0x4f, 0x53, 0x35, 0x6a, 0x63, 0x6d, 0x77, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x45, 0x42, 0x41, 0x48, 0x2b, 0x58, 0x32, 0x7a, 0x44, 0x49, 0x33, 0x36, 0x53, 0x63, 0x66, 0x53, 0x46, 0x36, 0x67, 0x48, 0x44, 0x4f, 0x46, 0x42, 0x4a, 0x70, 0x69, 0x42, 0x53, 0x56, 0x59, 0x45, 0x51, 0x42, 0x72, 0x4c, 0x4c, 0x70, 0x4d, 0x45, 0x2b, 0x62, 0x55, 0x4d, 0x4a, 0x6d, 0x0a, 0x32, 0x48, 0x36, 0x4e, 0x4d, 0x4c, 0x56, 0x77, 0x4d, 0x65, 0x6e, 0x69, 0x61, 0x63, 0x66, 0x7a, 0x63, 0x4e, 0x73, 0x67, 0x46, 0x59, 0x62, 0x51, 0x44, 0x66, 0x43, 0x2b, 0x72, 0x41, 0x46, 0x31, 0x68, 0x4d, 0x35, 0x2b, 0x6e, 0x30, 0x32, 0x2f, 0x74, 0x32, 0x41, 0x37, 0x6e, 0x50, 0x50, 0x4b, 0x48, 0x65, 0x4a, 0x65, 0x61, 0x4e, 0x69, 0x6a, 0x6e, 0x5a, 0x66, 0x6c, 0x51, 0x47, 0x44, 0x53, 0x4e, 0x69, 0x48, 0x2b, 0x30, 0x4c, 0x53, 0x34, 0x46, 0x39, 0x70, 0x30, 0x0a, 0x6f, 0x33, 0x2f, 0x55, 0x33, 0x37, 0x43, 0x59, 0x41, 0x71, 0x78, 0x76, 0x61, 0x32, 0x73, 0x73, 0x4a, 0x53, 0x52, 0x79, 0x6f, 0x57, 0x58, 0x75, 0x4a, 0x56, 0x72, 0x6c, 0x35, 0x6a, 0x4c, 0x6e, 0x38, 0x74, 0x2b, 0x72, 0x53, 0x66, 0x72, 0x7a, 0x6b, 0x47, 0x6b, 0x6a, 0x32, 0x77, 0x54, 0x5a, 0x35, 0x31, 0x78, 0x59, 0x2f, 0x47, 0x58, 0x55, 0x6c, 0x37, 0x37, 0x4d, 0x2f, 0x43, 0x34, 0x4b, 0x7a, 0x43, 0x55, 0x71, 0x4e, 0x51, 0x54, 0x34, 0x59, 0x4a, 0x45, 0x56, 0x0a, 0x64, 0x54, 0x31, 0x42, 0x2f, 0x79, 0x4d, 0x66, 0x47, 0x63, 0x68, 0x73, 0x36, 0x34, 0x4a, 0x54, 0x42, 0x4b, 0x62, 0x6b, 0x54, 0x43, 0x4a, 0x4e, 0x6a, 0x59, 0x79, 0x36, 0x7a, 0x6c, 0x74, 0x7a, 0x37, 0x47, 0x52, 0x55, 0x55, 0x47, 0x33, 0x52, 0x6e, 0x46, 0x58, 0x37, 0x61, 0x63, 0x4d, 0x32, 0x77, 0x34, 0x79, 0x38, 0x50, 0x49, 0x57, 0x6d, 0x61, 0x77, 0x6f, 0x6d, 0x44, 0x65, 0x43, 0x54, 0x6d, 0x47, 0x43, 0x75, 0x66, 0x73, 0x59, 0x6b, 0x6c, 0x34, 0x70, 0x68, 0x0a, 0x58, 0x35, 0x47, 0x4f, 0x5a, 0x70, 0x49, 0x4a, 0x68, 0x7a, 0x62, 0x4e, 0x69, 0x35, 0x73, 0x74, 0x50, 0x76, 0x5a, 0x52, 0x31, 0x46, 0x44, 0x55, 0x57, 0x53, 0x69, 0x39, 0x67, 0x2f, 0x4c, 0x4d, 0x4b, 0x48, 0x74, 0x54, 0x68, 0x6d, 0x33, 0x59, 0x4a, 0x6f, 0x68, 0x77, 0x31, 0x2b, 0x71, 0x52, 0x7a, 0x54, 0x36, 0x35, 0x79, 0x73, 0x43, 0x51, 0x62, 0x6c, 0x72, 0x47, 0x58, 0x6e, 0x52, 0x6c, 0x31, 0x31, 0x7a, 0x2b, 0x6f, 0x2b, 0x49, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x44, 0x2d, 0x54, 0x52, 0x55, 0x53, 0x54, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x33, 0x20, 0x43, 0x41, 0x20, 0x32, 0x20, 0x45, 0x56, 0x20, 0x32, 0x30, 0x30, 0x39, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x45, 0x51, 0x7a, 0x43, 0x43, 0x41, 0x79, 0x75, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x44, 0x43, 0x59, 0x50, 0x30, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x43, 0x77, 0x55, 0x41, 0x4d, 0x46, 0x41, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6b, 0x52, 0x46, 0x4d, 0x52, 0x55, 0x77, 0x45, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x0a, 0x44, 0x41, 0x78, 0x45, 0x4c, 0x56, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x49, 0x45, 0x64, 0x74, 0x59, 0x6b, 0x67, 0x78, 0x4b, 0x6a, 0x41, 0x6f, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x49, 0x55, 0x51, 0x74, 0x56, 0x46, 0x4a, 0x56, 0x55, 0x31, 0x51, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x62, 0x47, 0x46, 0x7a, 0x63, 0x79, 0x41, 0x7a, 0x49, 0x45, 0x4e, 0x42, 0x49, 0x44, 0x49, 0x67, 0x52, 0x56, 0x59, 0x67, 0x4d, 0x6a, 0x41, 0x77, 0x0a, 0x4f, 0x54, 0x41, 0x65, 0x46, 0x77, 0x30, 0x77, 0x4f, 0x54, 0x45, 0x78, 0x4d, 0x44, 0x55, 0x77, 0x4f, 0x44, 0x55, 0x77, 0x4e, 0x44, 0x5a, 0x61, 0x46, 0x77, 0x30, 0x79, 0x4f, 0x54, 0x45, 0x78, 0x4d, 0x44, 0x55, 0x77, 0x4f, 0x44, 0x55, 0x77, 0x4e, 0x44, 0x5a, 0x61, 0x4d, 0x46, 0x41, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6b, 0x52, 0x46, 0x4d, 0x52, 0x55, 0x77, 0x45, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x0a, 0x44, 0x41, 0x78, 0x45, 0x4c, 0x56, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x49, 0x45, 0x64, 0x74, 0x59, 0x6b, 0x67, 0x78, 0x4b, 0x6a, 0x41, 0x6f, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x49, 0x55, 0x51, 0x74, 0x56, 0x46, 0x4a, 0x56, 0x55, 0x31, 0x51, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x62, 0x47, 0x46, 0x7a, 0x63, 0x79, 0x41, 0x7a, 0x49, 0x45, 0x4e, 0x42, 0x49, 0x44, 0x49, 0x67, 0x52, 0x56, 0x59, 0x67, 0x4d, 0x6a, 0x41, 0x77, 0x0a, 0x4f, 0x54, 0x43, 0x43, 0x41, 0x53, 0x49, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x45, 0x50, 0x41, 0x44, 0x43, 0x43, 0x41, 0x51, 0x6f, 0x43, 0x67, 0x67, 0x45, 0x42, 0x41, 0x4a, 0x6e, 0x78, 0x68, 0x44, 0x52, 0x77, 0x75, 0x69, 0x2b, 0x33, 0x4d, 0x4b, 0x43, 0x4f, 0x76, 0x58, 0x77, 0x45, 0x7a, 0x37, 0x35, 0x69, 0x76, 0x4a, 0x6e, 0x39, 0x67, 0x70, 0x66, 0x53, 0x0a, 0x65, 0x67, 0x70, 0x6e, 0x6c, 0x6a, 0x67, 0x4a, 0x39, 0x68, 0x42, 0x4f, 0x6c, 0x53, 0x4a, 0x7a, 0x6d, 0x59, 0x33, 0x61, 0x46, 0x53, 0x33, 0x6e, 0x42, 0x66, 0x77, 0x5a, 0x63, 0x79, 0x4b, 0x33, 0x6a, 0x70, 0x67, 0x41, 0x76, 0x44, 0x77, 0x39, 0x72, 0x4b, 0x46, 0x73, 0x2b, 0x39, 0x5a, 0x35, 0x4a, 0x55, 0x75, 0x74, 0x38, 0x4d, 0x78, 0x6b, 0x32, 0x6f, 0x67, 0x2b, 0x4b, 0x62, 0x67, 0x50, 0x43, 0x64, 0x4d, 0x30, 0x33, 0x54, 0x50, 0x31, 0x59, 0x74, 0x48, 0x68, 0x0a, 0x7a, 0x52, 0x6e, 0x70, 0x37, 0x68, 0x68, 0x50, 0x54, 0x46, 0x69, 0x75, 0x34, 0x68, 0x37, 0x57, 0x44, 0x46, 0x73, 0x56, 0x57, 0x74, 0x67, 0x36, 0x75, 0x4d, 0x51, 0x59, 0x5a, 0x42, 0x37, 0x6a, 0x4d, 0x37, 0x4b, 0x31, 0x69, 0x58, 0x64, 0x4f, 0x44, 0x4c, 0x2f, 0x5a, 0x6c, 0x47, 0x73, 0x54, 0x6c, 0x32, 0x38, 0x53, 0x6f, 0x2f, 0x36, 0x5a, 0x71, 0x51, 0x54, 0x4d, 0x46, 0x65, 0x78, 0x67, 0x61, 0x44, 0x62, 0x74, 0x43, 0x48, 0x75, 0x33, 0x39, 0x62, 0x2b, 0x54, 0x0a, 0x37, 0x57, 0x59, 0x78, 0x67, 0x34, 0x7a, 0x47, 0x63, 0x54, 0x53, 0x48, 0x54, 0x68, 0x66, 0x71, 0x72, 0x34, 0x75, 0x52, 0x6a, 0x52, 0x78, 0x57, 0x51, 0x61, 0x34, 0x69, 0x4e, 0x31, 0x34, 0x33, 0x38, 0x68, 0x33, 0x5a, 0x30, 0x53, 0x30, 0x4e, 0x4c, 0x32, 0x6c, 0x52, 0x70, 0x37, 0x35, 0x6d, 0x70, 0x6f, 0x6f, 0x36, 0x4b, 0x72, 0x33, 0x48, 0x47, 0x72, 0x48, 0x68, 0x46, 0x50, 0x43, 0x2b, 0x4f, 0x68, 0x32, 0x35, 0x7a, 0x31, 0x75, 0x78, 0x61, 0x76, 0x36, 0x30, 0x0a, 0x73, 0x55, 0x59, 0x67, 0x6f, 0x76, 0x73, 0x65, 0x4f, 0x33, 0x44, 0x76, 0x6b, 0x35, 0x68, 0x39, 0x6a, 0x48, 0x4f, 0x57, 0x38, 0x73, 0x58, 0x76, 0x68, 0x58, 0x43, 0x74, 0x4b, 0x53, 0x62, 0x38, 0x48, 0x67, 0x51, 0x2b, 0x48, 0x4b, 0x44, 0x59, 0x44, 0x38, 0x74, 0x53, 0x67, 0x32, 0x4a, 0x38, 0x37, 0x6f, 0x74, 0x54, 0x6c, 0x5a, 0x43, 0x70, 0x56, 0x36, 0x4c, 0x71, 0x59, 0x51, 0x58, 0x59, 0x2b, 0x55, 0x33, 0x45, 0x4a, 0x2f, 0x70, 0x75, 0x72, 0x65, 0x33, 0x35, 0x0a, 0x31, 0x31, 0x48, 0x33, 0x61, 0x36, 0x55, 0x43, 0x41, 0x77, 0x45, 0x41, 0x41, 0x61, 0x4f, 0x43, 0x41, 0x53, 0x51, 0x77, 0x67, 0x67, 0x45, 0x67, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x4e, 0x4f, 0x55, 0x69, 0x6b, 0x78, 0x69, 0x45, 0x79, 0x6f, 0x5a, 0x4c, 0x73, 0x79, 0x76, 0x0a, 0x63, 0x6f, 0x70, 0x39, 0x4e, 0x74, 0x65, 0x61, 0x48, 0x4e, 0x78, 0x6e, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x42, 0x6a, 0x43, 0x42, 0x33, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x66, 0x42, 0x49, 0x48, 0x56, 0x4d, 0x49, 0x48, 0x53, 0x4d, 0x49, 0x47, 0x48, 0x6f, 0x49, 0x47, 0x45, 0x6f, 0x49, 0x47, 0x42, 0x68, 0x6e, 0x39, 0x73, 0x5a, 0x47, 0x46, 0x77, 0x4f, 0x69, 0x38, 0x76, 0x0a, 0x5a, 0x47, 0x6c, 0x79, 0x5a, 0x57, 0x4e, 0x30, 0x62, 0x33, 0x4a, 0x35, 0x4c, 0x6d, 0x51, 0x74, 0x64, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x75, 0x62, 0x6d, 0x56, 0x30, 0x4c, 0x30, 0x4e, 0x4f, 0x50, 0x55, 0x51, 0x74, 0x56, 0x46, 0x4a, 0x56, 0x55, 0x31, 0x51, 0x6c, 0x4d, 0x6a, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x4a, 0x54, 0x49, 0x77, 0x51, 0x32, 0x78, 0x68, 0x63, 0x33, 0x4d, 0x6c, 0x4d, 0x6a, 0x41, 0x7a, 0x4a, 0x54, 0x49, 0x77, 0x51, 0x30, 0x45, 0x6c, 0x0a, 0x4d, 0x6a, 0x41, 0x79, 0x4a, 0x54, 0x49, 0x77, 0x52, 0x56, 0x59, 0x6c, 0x4d, 0x6a, 0x41, 0x79, 0x4d, 0x44, 0x41, 0x35, 0x4c, 0x45, 0x38, 0x39, 0x52, 0x43, 0x31, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x55, 0x79, 0x4d, 0x45, 0x64, 0x74, 0x59, 0x6b, 0x67, 0x73, 0x51, 0x7a, 0x31, 0x45, 0x52, 0x54, 0x39, 0x6a, 0x5a, 0x58, 0x4a, 0x30, 0x61, 0x57, 0x5a, 0x70, 0x59, 0x32, 0x46, 0x30, 0x5a, 0x58, 0x4a, 0x6c, 0x64, 0x6d, 0x39, 0x6a, 0x59, 0x58, 0x52, 0x70, 0x0a, 0x62, 0x32, 0x35, 0x73, 0x61, 0x58, 0x4e, 0x30, 0x4d, 0x45, 0x61, 0x67, 0x52, 0x4b, 0x42, 0x43, 0x68, 0x6b, 0x42, 0x6f, 0x64, 0x48, 0x52, 0x77, 0x4f, 0x69, 0x38, 0x76, 0x64, 0x33, 0x64, 0x33, 0x4c, 0x6d, 0x51, 0x74, 0x64, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x75, 0x62, 0x6d, 0x56, 0x30, 0x4c, 0x32, 0x4e, 0x79, 0x62, 0x43, 0x39, 0x6b, 0x4c, 0x58, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x58, 0x33, 0x4a, 0x76, 0x62, 0x33, 0x52, 0x66, 0x59, 0x32, 0x78, 0x68, 0x0a, 0x63, 0x33, 0x4e, 0x66, 0x4d, 0x31, 0x39, 0x6a, 0x59, 0x56, 0x38, 0x79, 0x58, 0x32, 0x56, 0x32, 0x58, 0x7a, 0x49, 0x77, 0x4d, 0x44, 0x6b, 0x75, 0x59, 0x33, 0x4a, 0x73, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x43, 0x77, 0x55, 0x41, 0x41, 0x34, 0x49, 0x42, 0x41, 0x51, 0x41, 0x30, 0x37, 0x58, 0x74, 0x61, 0x50, 0x4b, 0x53, 0x55, 0x69, 0x4f, 0x38, 0x61, 0x45, 0x58, 0x55, 0x48, 0x4c, 0x37, 0x50, 0x2b, 0x0a, 0x50, 0x50, 0x6f, 0x65, 0x55, 0x53, 0x62, 0x72, 0x68, 0x2f, 0x59, 0x70, 0x33, 0x75, 0x44, 0x78, 0x31, 0x4d, 0x59, 0x6b, 0x43, 0x65, 0x6e, 0x42, 0x7a, 0x31, 0x55, 0x62, 0x74, 0x44, 0x44, 0x5a, 0x7a, 0x68, 0x72, 0x2b, 0x42, 0x6c, 0x47, 0x6d, 0x46, 0x61, 0x51, 0x74, 0x37, 0x37, 0x4a, 0x4c, 0x76, 0x79, 0x41, 0x6f, 0x4a, 0x55, 0x6e, 0x52, 0x70, 0x6a, 0x5a, 0x33, 0x4e, 0x4f, 0x68, 0x6b, 0x33, 0x31, 0x4b, 0x78, 0x45, 0x63, 0x64, 0x7a, 0x65, 0x73, 0x30, 0x35, 0x0a, 0x6e, 0x73, 0x4b, 0x74, 0x6a, 0x48, 0x45, 0x68, 0x38, 0x6c, 0x70, 0x72, 0x72, 0x39, 0x38, 0x38, 0x54, 0x6c, 0x57, 0x76, 0x73, 0x6f, 0x52, 0x6c, 0x46, 0x49, 0x6d, 0x35, 0x64, 0x38, 0x73, 0x71, 0x4d, 0x62, 0x37, 0x50, 0x6f, 0x32, 0x33, 0x50, 0x62, 0x30, 0x69, 0x55, 0x4d, 0x6b, 0x5a, 0x76, 0x35, 0x33, 0x47, 0x4d, 0x6f, 0x4b, 0x61, 0x45, 0x47, 0x54, 0x63, 0x48, 0x38, 0x67, 0x4e, 0x46, 0x43, 0x53, 0x75, 0x47, 0x64, 0x58, 0x7a, 0x66, 0x58, 0x32, 0x6c, 0x58, 0x0a, 0x41, 0x4e, 0x74, 0x75, 0x32, 0x4b, 0x5a, 0x79, 0x49, 0x6b, 0x74, 0x51, 0x31, 0x48, 0x57, 0x59, 0x56, 0x74, 0x2b, 0x33, 0x47, 0x50, 0x39, 0x44, 0x51, 0x31, 0x43, 0x75, 0x65, 0x6b, 0x52, 0x37, 0x38, 0x48, 0x6c, 0x52, 0x31, 0x30, 0x4d, 0x39, 0x70, 0x39, 0x4f, 0x42, 0x30, 0x2f, 0x44, 0x4a, 0x54, 0x37, 0x6e, 0x61, 0x78, 0x70, 0x65, 0x47, 0x30, 0x49, 0x4c, 0x44, 0x35, 0x45, 0x4a, 0x74, 0x2f, 0x72, 0x44, 0x69, 0x5a, 0x45, 0x34, 0x4f, 0x4a, 0x75, 0x64, 0x41, 0x0a, 0x4e, 0x43, 0x61, 0x31, 0x43, 0x49, 0x6e, 0x58, 0x43, 0x47, 0x4e, 0x6a, 0x4f, 0x43, 0x64, 0x31, 0x48, 0x6a, 0x50, 0x71, 0x62, 0x71, 0x6a, 0x64, 0x6e, 0x35, 0x6c, 0x50, 0x64, 0x45, 0x32, 0x42, 0x69, 0x59, 0x42, 0x4c, 0x33, 0x5a, 0x71, 0x58, 0x4b, 0x56, 0x77, 0x76, 0x76, 0x6f, 0x46, 0x42, 0x75, 0x59, 0x7a, 0x2f, 0x36, 0x6e, 0x31, 0x67, 0x42, 0x70, 0x37, 0x4e, 0x31, 0x7a, 0x33, 0x54, 0x4c, 0x71, 0x4d, 0x56, 0x76, 0x4b, 0x6a, 0x6d, 0x4a, 0x75, 0x56, 0x76, 0x0a, 0x77, 0x39, 0x79, 0x34, 0x41, 0x79, 0x48, 0x71, 0x6e, 0x78, 0x62, 0x78, 0x4c, 0x46, 0x53, 0x31, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x43, 0x41, 0x20, 0x44, 0x69, 0x73, 0x69, 0x67, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x52, 0x32, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x61, 0x54, 0x43, 0x43, 0x41, 0x31, 0x47, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4a, 0x41, 0x4a, 0x4b, 0x34, 0x69, 0x4e, 0x75, 0x77, 0x69, 0x73, 0x46, 0x6a, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x43, 0x77, 0x55, 0x41, 0x4d, 0x46, 0x49, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6c, 0x4e, 0x4c, 0x4d, 0x52, 0x4d, 0x77, 0x0a, 0x45, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x48, 0x45, 0x77, 0x70, 0x43, 0x63, 0x6d, 0x46, 0x30, 0x61, 0x58, 0x4e, 0x73, 0x59, 0x58, 0x5a, 0x68, 0x4d, 0x52, 0x4d, 0x77, 0x45, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x77, 0x70, 0x45, 0x61, 0x58, 0x4e, 0x70, 0x5a, 0x79, 0x42, 0x68, 0x4c, 0x6e, 0x4d, 0x75, 0x4d, 0x52, 0x6b, 0x77, 0x46, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x42, 0x44, 0x51, 0x53, 0x42, 0x45, 0x61, 0x58, 0x4e, 0x70, 0x0a, 0x5a, 0x79, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x46, 0x49, 0x79, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x45, 0x79, 0x4d, 0x44, 0x63, 0x78, 0x4f, 0x54, 0x41, 0x35, 0x4d, 0x54, 0x55, 0x7a, 0x4d, 0x46, 0x6f, 0x58, 0x44, 0x54, 0x51, 0x79, 0x4d, 0x44, 0x63, 0x78, 0x4f, 0x54, 0x41, 0x35, 0x4d, 0x54, 0x55, 0x7a, 0x4d, 0x46, 0x6f, 0x77, 0x55, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x55, 0x30, 0x73, 0x78, 0x0a, 0x45, 0x7a, 0x41, 0x52, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x63, 0x54, 0x43, 0x6b, 0x4a, 0x79, 0x59, 0x58, 0x52, 0x70, 0x63, 0x32, 0x78, 0x68, 0x64, 0x6d, 0x45, 0x78, 0x45, 0x7a, 0x41, 0x52, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x43, 0x6b, 0x52, 0x70, 0x63, 0x32, 0x6c, 0x6e, 0x49, 0x47, 0x45, 0x75, 0x63, 0x79, 0x34, 0x78, 0x47, 0x54, 0x41, 0x58, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x45, 0x45, 0x4e, 0x42, 0x49, 0x45, 0x52, 0x70, 0x0a, 0x63, 0x32, 0x6c, 0x6e, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x55, 0x6a, 0x49, 0x77, 0x67, 0x67, 0x49, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x49, 0x4b, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x43, 0x69, 0x6f, 0x38, 0x51, 0x41, 0x43, 0x64, 0x61, 0x46, 0x58, 0x53, 0x31, 0x74, 0x46, 0x50, 0x62, 0x43, 0x0a, 0x77, 0x33, 0x4f, 0x65, 0x4e, 0x63, 0x4a, 0x78, 0x56, 0x58, 0x36, 0x42, 0x2b, 0x36, 0x74, 0x47, 0x55, 0x4f, 0x44, 0x42, 0x66, 0x45, 0x6c, 0x34, 0x35, 0x71, 0x74, 0x35, 0x57, 0x44, 0x7a, 0x61, 0x2f, 0x33, 0x77, 0x63, 0x6e, 0x39, 0x69, 0x58, 0x41, 0x6e, 0x67, 0x2b, 0x61, 0x30, 0x45, 0x45, 0x36, 0x55, 0x47, 0x39, 0x76, 0x67, 0x4d, 0x73, 0x52, 0x66, 0x59, 0x76, 0x5a, 0x4e, 0x53, 0x72, 0x58, 0x61, 0x4e, 0x48, 0x50, 0x57, 0x53, 0x62, 0x36, 0x57, 0x69, 0x61, 0x0a, 0x78, 0x73, 0x77, 0x62, 0x50, 0x37, 0x71, 0x2b, 0x73, 0x6f, 0x73, 0x30, 0x41, 0x69, 0x36, 0x59, 0x56, 0x52, 0x6e, 0x38, 0x6a, 0x47, 0x2b, 0x71, 0x58, 0x39, 0x70, 0x4d, 0x7a, 0x6b, 0x30, 0x44, 0x49, 0x61, 0x50, 0x59, 0x30, 0x6a, 0x53, 0x54, 0x56, 0x70, 0x62, 0x4c, 0x54, 0x41, 0x77, 0x41, 0x46, 0x6a, 0x78, 0x66, 0x47, 0x73, 0x33, 0x49, 0x78, 0x32, 0x79, 0x6d, 0x72, 0x64, 0x4d, 0x78, 0x70, 0x37, 0x7a, 0x6f, 0x35, 0x65, 0x46, 0x6d, 0x31, 0x74, 0x4c, 0x37, 0x0a, 0x41, 0x37, 0x52, 0x42, 0x5a, 0x63, 0x6b, 0x51, 0x72, 0x67, 0x34, 0x46, 0x59, 0x38, 0x61, 0x41, 0x61, 0x6d, 0x6b, 0x77, 0x2f, 0x64, 0x4c, 0x75, 0x6b, 0x4f, 0x38, 0x4e, 0x4a, 0x39, 0x2b, 0x66, 0x6c, 0x58, 0x50, 0x30, 0x34, 0x53, 0x58, 0x61, 0x62, 0x42, 0x62, 0x65, 0x51, 0x54, 0x67, 0x30, 0x36, 0x6f, 0x76, 0x38, 0x30, 0x65, 0x67, 0x45, 0x46, 0x47, 0x45, 0x74, 0x51, 0x58, 0x36, 0x73, 0x78, 0x33, 0x64, 0x4f, 0x79, 0x31, 0x46, 0x55, 0x2b, 0x31, 0x36, 0x53, 0x0a, 0x47, 0x42, 0x73, 0x45, 0x57, 0x6d, 0x6a, 0x47, 0x79, 0x63, 0x54, 0x36, 0x74, 0x78, 0x4f, 0x67, 0x6d, 0x4c, 0x63, 0x52, 0x4b, 0x37, 0x66, 0x57, 0x56, 0x38, 0x78, 0x38, 0x6e, 0x68, 0x66, 0x52, 0x79, 0x79, 0x58, 0x2b, 0x68, 0x6b, 0x34, 0x6b, 0x4c, 0x6c, 0x59, 0x4d, 0x65, 0x45, 0x32, 0x65, 0x41, 0x52, 0x4b, 0x6d, 0x4b, 0x36, 0x63, 0x42, 0x5a, 0x57, 0x35, 0x38, 0x59, 0x68, 0x32, 0x45, 0x68, 0x4e, 0x2f, 0x71, 0x77, 0x47, 0x75, 0x31, 0x70, 0x53, 0x71, 0x56, 0x0a, 0x67, 0x38, 0x4e, 0x54, 0x45, 0x51, 0x78, 0x7a, 0x48, 0x51, 0x75, 0x79, 0x52, 0x70, 0x44, 0x52, 0x51, 0x6a, 0x72, 0x4f, 0x51, 0x47, 0x36, 0x56, 0x72, 0x66, 0x2f, 0x47, 0x6c, 0x4b, 0x31, 0x75, 0x6c, 0x34, 0x53, 0x4f, 0x66, 0x57, 0x2b, 0x65, 0x69, 0x6f, 0x41, 0x4e, 0x53, 0x57, 0x31, 0x7a, 0x34, 0x6e, 0x75, 0x53, 0x48, 0x73, 0x50, 0x7a, 0x77, 0x66, 0x50, 0x72, 0x4c, 0x67, 0x56, 0x76, 0x32, 0x52, 0x76, 0x50, 0x4e, 0x33, 0x59, 0x45, 0x79, 0x4c, 0x52, 0x61, 0x0a, 0x35, 0x42, 0x65, 0x6e, 0x79, 0x39, 0x31, 0x32, 0x48, 0x39, 0x41, 0x5a, 0x64, 0x75, 0x67, 0x73, 0x42, 0x62, 0x50, 0x57, 0x6e, 0x44, 0x54, 0x59, 0x6c, 0x74, 0x78, 0x68, 0x68, 0x35, 0x45, 0x46, 0x35, 0x45, 0x51, 0x49, 0x4d, 0x38, 0x48, 0x61, 0x75, 0x51, 0x68, 0x6c, 0x31, 0x4b, 0x36, 0x79, 0x4e, 0x67, 0x33, 0x72, 0x75, 0x6a, 0x69, 0x36, 0x44, 0x4f, 0x57, 0x62, 0x6e, 0x75, 0x75, 0x4e, 0x5a, 0x74, 0x32, 0x5a, 0x7a, 0x39, 0x61, 0x4a, 0x51, 0x66, 0x59, 0x45, 0x0a, 0x6b, 0x6f, 0x6f, 0x70, 0x4b, 0x57, 0x31, 0x72, 0x4f, 0x68, 0x7a, 0x6e, 0x64, 0x58, 0x30, 0x43, 0x63, 0x51, 0x37, 0x7a, 0x77, 0x4f, 0x65, 0x39, 0x79, 0x78, 0x6e, 0x64, 0x6e, 0x57, 0x43, 0x79, 0x77, 0x6d, 0x5a, 0x67, 0x74, 0x72, 0x45, 0x45, 0x37, 0x73, 0x6e, 0x6d, 0x68, 0x72, 0x6d, 0x61, 0x5a, 0x6b, 0x43, 0x6f, 0x35, 0x78, 0x48, 0x74, 0x67, 0x55, 0x55, 0x44, 0x69, 0x2f, 0x5a, 0x6e, 0x57, 0x65, 0x6a, 0x42, 0x42, 0x68, 0x47, 0x39, 0x33, 0x63, 0x2b, 0x41, 0x0a, 0x41, 0x6b, 0x39, 0x6c, 0x51, 0x48, 0x68, 0x63, 0x52, 0x31, 0x44, 0x49, 0x6d, 0x2b, 0x59, 0x66, 0x67, 0x58, 0x76, 0x6b, 0x52, 0x4b, 0x68, 0x62, 0x68, 0x5a, 0x72, 0x69, 0x33, 0x6c, 0x72, 0x56, 0x78, 0x2f, 0x6b, 0x36, 0x52, 0x47, 0x5a, 0x4c, 0x35, 0x44, 0x4a, 0x55, 0x66, 0x4f, 0x52, 0x73, 0x6e, 0x4c, 0x4d, 0x4f, 0x50, 0x52, 0x65, 0x69, 0x73, 0x6a, 0x51, 0x53, 0x31, 0x6e, 0x36, 0x79, 0x71, 0x45, 0x6d, 0x37, 0x30, 0x58, 0x6f, 0x6f, 0x51, 0x4c, 0x36, 0x69, 0x0a, 0x46, 0x68, 0x2f, 0x66, 0x35, 0x44, 0x63, 0x66, 0x45, 0x58, 0x50, 0x37, 0x6b, 0x41, 0x70, 0x6c, 0x51, 0x36, 0x49, 0x4e, 0x66, 0x50, 0x67, 0x47, 0x41, 0x56, 0x55, 0x7a, 0x66, 0x62, 0x41, 0x4e, 0x75, 0x50, 0x54, 0x31, 0x72, 0x71, 0x56, 0x43, 0x56, 0x33, 0x77, 0x32, 0x45, 0x59, 0x78, 0x37, 0x58, 0x73, 0x51, 0x44, 0x6e, 0x59, 0x78, 0x35, 0x6e, 0x51, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x0a, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x42, 0x6a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x74, 0x5a, 0x6e, 0x34, 0x72, 0x37, 0x43, 0x55, 0x39, 0x65, 0x4d, 0x67, 0x31, 0x67, 0x71, 0x74, 0x7a, 0x6b, 0x35, 0x57, 0x70, 0x43, 0x35, 0x75, 0x0a, 0x51, 0x75, 0x30, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x42, 0x41, 0x43, 0x59, 0x47, 0x58, 0x6e, 0x44, 0x6e, 0x5a, 0x54, 0x50, 0x49, 0x67, 0x6d, 0x37, 0x5a, 0x6e, 0x42, 0x63, 0x36, 0x47, 0x33, 0x70, 0x6d, 0x73, 0x67, 0x48, 0x32, 0x65, 0x44, 0x74, 0x70, 0x58, 0x69, 0x2f, 0x71, 0x2f, 0x30, 0x37, 0x35, 0x4b, 0x4d, 0x4f, 0x59, 0x4b, 0x6d, 0x46, 0x4d, 0x0a, 0x74, 0x43, 0x51, 0x53, 0x69, 0x6e, 0x31, 0x74, 0x45, 0x52, 0x54, 0x33, 0x6e, 0x4c, 0x58, 0x4b, 0x35, 0x72, 0x79, 0x65, 0x4a, 0x34, 0x35, 0x4d, 0x47, 0x63, 0x69, 0x70, 0x76, 0x58, 0x72, 0x41, 0x31, 0x7a, 0x59, 0x4f, 0x62, 0x59, 0x56, 0x79, 0x62, 0x71, 0x6a, 0x47, 0x6f, 0x6d, 0x33, 0x32, 0x2b, 0x6e, 0x4e, 0x6a, 0x66, 0x37, 0x78, 0x75, 0x65, 0x51, 0x67, 0x63, 0x6e, 0x59, 0x71, 0x66, 0x47, 0x6f, 0x70, 0x54, 0x70, 0x74, 0x69, 0x37, 0x32, 0x54, 0x56, 0x56, 0x0a, 0x73, 0x52, 0x48, 0x46, 0x71, 0x51, 0x4f, 0x7a, 0x56, 0x6a, 0x75, 0x35, 0x68, 0x4a, 0x4d, 0x69, 0x58, 0x6e, 0x37, 0x42, 0x39, 0x68, 0x4a, 0x53, 0x69, 0x2b, 0x6f, 0x73, 0x5a, 0x37, 0x7a, 0x2b, 0x4e, 0x6b, 0x7a, 0x31, 0x75, 0x4d, 0x2f, 0x52, 0x73, 0x30, 0x6d, 0x53, 0x4f, 0x39, 0x4d, 0x70, 0x44, 0x70, 0x6b, 0x62, 0x6c, 0x76, 0x64, 0x68, 0x75, 0x44, 0x76, 0x45, 0x4b, 0x37, 0x5a, 0x34, 0x62, 0x4c, 0x51, 0x6a, 0x62, 0x2f, 0x44, 0x39, 0x30, 0x37, 0x4a, 0x65, 0x0a, 0x64, 0x52, 0x2b, 0x5a, 0x6c, 0x61, 0x69, 0x73, 0x39, 0x74, 0x72, 0x68, 0x78, 0x54, 0x46, 0x37, 0x2b, 0x39, 0x46, 0x47, 0x73, 0x39, 0x4b, 0x38, 0x5a, 0x37, 0x52, 0x69, 0x56, 0x4c, 0x6f, 0x4a, 0x39, 0x32, 0x4f, 0x77, 0x6b, 0x36, 0x4b, 0x61, 0x2b, 0x65, 0x6c, 0x53, 0x4c, 0x6f, 0x74, 0x67, 0x45, 0x71, 0x76, 0x38, 0x39, 0x57, 0x42, 0x57, 0x37, 0x78, 0x42, 0x63, 0x69, 0x38, 0x51, 0x61, 0x51, 0x74, 0x79, 0x44, 0x57, 0x32, 0x51, 0x4f, 0x79, 0x37, 0x57, 0x38, 0x0a, 0x31, 0x6b, 0x2f, 0x42, 0x66, 0x44, 0x78, 0x75, 0x6a, 0x52, 0x4e, 0x74, 0x2b, 0x33, 0x76, 0x72, 0x4d, 0x4e, 0x44, 0x63, 0x54, 0x61, 0x2f, 0x46, 0x31, 0x62, 0x61, 0x6c, 0x54, 0x46, 0x74, 0x78, 0x79, 0x65, 0x67, 0x78, 0x76, 0x75, 0x67, 0x34, 0x42, 0x6b, 0x69, 0x68, 0x47, 0x75, 0x4c, 0x71, 0x30, 0x74, 0x34, 0x53, 0x4f, 0x56, 0x67, 0x61, 0x2f, 0x34, 0x41, 0x4f, 0x67, 0x6e, 0x58, 0x6d, 0x74, 0x38, 0x6b, 0x48, 0x62, 0x41, 0x37, 0x76, 0x2f, 0x7a, 0x6a, 0x78, 0x0a, 0x6d, 0x48, 0x48, 0x45, 0x74, 0x33, 0x38, 0x4f, 0x46, 0x64, 0x41, 0x6c, 0x61, 0x62, 0x30, 0x69, 0x6e, 0x53, 0x76, 0x74, 0x42, 0x66, 0x5a, 0x47, 0x52, 0x36, 0x7a, 0x74, 0x77, 0x50, 0x44, 0x55, 0x4f, 0x2b, 0x4c, 0x73, 0x37, 0x70, 0x5a, 0x62, 0x6b, 0x42, 0x4e, 0x4f, 0x48, 0x6c, 0x59, 0x36, 0x36, 0x37, 0x44, 0x76, 0x6c, 0x72, 0x75, 0x57, 0x49, 0x78, 0x47, 0x36, 0x38, 0x6b, 0x4f, 0x47, 0x64, 0x47, 0x53, 0x56, 0x79, 0x43, 0x68, 0x31, 0x33, 0x78, 0x30, 0x31, 0x0a, 0x75, 0x74, 0x49, 0x33, 0x67, 0x7a, 0x68, 0x54, 0x4f, 0x44, 0x59, 0x37, 0x7a, 0x32, 0x7a, 0x70, 0x2b, 0x57, 0x73, 0x4f, 0x30, 0x50, 0x73, 0x45, 0x36, 0x45, 0x39, 0x33, 0x31, 0x32, 0x55, 0x42, 0x65, 0x49, 0x59, 0x4d, 0x65, 0x6a, 0x34, 0x68, 0x59, 0x76, 0x46, 0x2f, 0x59, 0x33, 0x45, 0x4d, 0x79, 0x5a, 0x39, 0x45, 0x32, 0x36, 0x67, 0x6e, 0x6f, 0x6e, 0x57, 0x2b, 0x62, 0x6f, 0x45, 0x2b, 0x31, 0x38, 0x44, 0x72, 0x47, 0x35, 0x67, 0x50, 0x63, 0x46, 0x77, 0x30, 0x0a, 0x73, 0x6f, 0x72, 0x4d, 0x77, 0x49, 0x55, 0x59, 0x36, 0x32, 0x35, 0x36, 0x73, 0x2f, 0x64, 0x61, 0x6f, 0x51, 0x65, 0x2f, 0x71, 0x55, 0x4b, 0x53, 0x38, 0x32, 0x41, 0x69, 0x6c, 0x2b, 0x51, 0x55, 0x6f, 0x51, 0x65, 0x62, 0x54, 0x6e, 0x62, 0x41, 0x6a, 0x6e, 0x33, 0x39, 0x70, 0x43, 0x58, 0x48, 0x52, 0x2b, 0x33, 0x2f, 0x48, 0x33, 0x4f, 0x73, 0x7a, 0x4d, 0x4f, 0x6c, 0x36, 0x57, 0x38, 0x4b, 0x6a, 0x70, 0x74, 0x6c, 0x77, 0x6c, 0x43, 0x46, 0x74, 0x61, 0x4f, 0x67, 0x0a, 0x55, 0x78, 0x4c, 0x4d, 0x56, 0x59, 0x64, 0x68, 0x38, 0x34, 0x47, 0x75, 0x45, 0x45, 0x5a, 0x68, 0x76, 0x55, 0x51, 0x68, 0x75, 0x4d, 0x49, 0x39, 0x64, 0x4d, 0x39, 0x2b, 0x4a, 0x44, 0x58, 0x36, 0x48, 0x41, 0x63, 0x4f, 0x6d, 0x7a, 0x30, 0x69, 0x79, 0x75, 0x38, 0x78, 0x4c, 0x34, 0x79, 0x73, 0x45, 0x72, 0x33, 0x76, 0x51, 0x43, 0x6a, 0x38, 0x4b, 0x57, 0x65, 0x66, 0x73, 0x68, 0x4e, 0x50, 0x5a, 0x69, 0x54, 0x45, 0x55, 0x78, 0x6e, 0x70, 0x48, 0x69, 0x6b, 0x56, 0x0a, 0x37, 0x2b, 0x5a, 0x74, 0x73, 0x48, 0x38, 0x74, 0x5a, 0x2f, 0x33, 0x7a, 0x62, 0x42, 0x74, 0x31, 0x52, 0x71, 0x50, 0x6c, 0x53, 0x68, 0x66, 0x70, 0x70, 0x4e, 0x63, 0x4c, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x41, 0x43, 0x43, 0x56, 0x52, 0x41, 0x49, 0x5a, 0x31, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x48, 0x30, 0x7a, 0x43, 0x43, 0x42, 0x62, 0x75, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x49, 0x58, 0x73, 0x4f, 0x33, 0x70, 0x6b, 0x4e, 0x2f, 0x70, 0x4f, 0x41, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x46, 0x42, 0x51, 0x41, 0x77, 0x51, 0x6a, 0x45, 0x53, 0x4d, 0x42, 0x41, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x77, 0x77, 0x4a, 0x51, 0x55, 0x4e, 0x44, 0x56, 0x6c, 0x4a, 0x42, 0x0a, 0x53, 0x56, 0x6f, 0x78, 0x4d, 0x52, 0x41, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x44, 0x41, 0x64, 0x51, 0x53, 0x30, 0x6c, 0x42, 0x51, 0x30, 0x4e, 0x57, 0x4d, 0x51, 0x30, 0x77, 0x43, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x41, 0x52, 0x42, 0x51, 0x30, 0x4e, 0x57, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x46, 0x55, 0x7a, 0x41, 0x65, 0x46, 0x77, 0x30, 0x78, 0x4d, 0x54, 0x41, 0x31, 0x0a, 0x4d, 0x44, 0x55, 0x77, 0x4f, 0x54, 0x4d, 0x33, 0x4d, 0x7a, 0x64, 0x61, 0x46, 0x77, 0x30, 0x7a, 0x4d, 0x44, 0x45, 0x79, 0x4d, 0x7a, 0x45, 0x77, 0x4f, 0x54, 0x4d, 0x33, 0x4d, 0x7a, 0x64, 0x61, 0x4d, 0x45, 0x49, 0x78, 0x45, 0x6a, 0x41, 0x51, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x43, 0x55, 0x46, 0x44, 0x51, 0x31, 0x5a, 0x53, 0x51, 0x55, 0x6c, 0x61, 0x4d, 0x54, 0x45, 0x51, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x77, 0x77, 0x48, 0x0a, 0x55, 0x45, 0x74, 0x4a, 0x51, 0x55, 0x4e, 0x44, 0x56, 0x6a, 0x45, 0x4e, 0x4d, 0x41, 0x73, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x45, 0x51, 0x55, 0x4e, 0x44, 0x56, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x52, 0x56, 0x4d, 0x77, 0x67, 0x67, 0x49, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x0a, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x49, 0x4b, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x43, 0x62, 0x71, 0x61, 0x75, 0x2f, 0x59, 0x55, 0x71, 0x58, 0x72, 0x79, 0x2b, 0x58, 0x5a, 0x70, 0x70, 0x30, 0x58, 0x39, 0x44, 0x5a, 0x6c, 0x76, 0x33, 0x50, 0x34, 0x75, 0x52, 0x6d, 0x37, 0x78, 0x38, 0x66, 0x52, 0x7a, 0x50, 0x43, 0x52, 0x4b, 0x50, 0x66, 0x6d, 0x74, 0x34, 0x66, 0x74, 0x56, 0x54, 0x64, 0x46, 0x58, 0x78, 0x70, 0x4e, 0x52, 0x46, 0x76, 0x75, 0x38, 0x67, 0x4d, 0x0a, 0x6a, 0x6d, 0x6f, 0x59, 0x48, 0x74, 0x69, 0x50, 0x32, 0x52, 0x61, 0x38, 0x45, 0x45, 0x67, 0x32, 0x58, 0x50, 0x42, 0x6a, 0x73, 0x35, 0x42, 0x61, 0x58, 0x43, 0x51, 0x33, 0x31, 0x36, 0x50, 0x57, 0x79, 0x77, 0x6c, 0x78, 0x75, 0x66, 0x45, 0x42, 0x63, 0x6f, 0x53, 0x77, 0x66, 0x64, 0x74, 0x4e, 0x67, 0x4d, 0x33, 0x38, 0x30, 0x32, 0x2f, 0x4a, 0x2b, 0x4e, 0x71, 0x32, 0x44, 0x6f, 0x4c, 0x53, 0x52, 0x59, 0x57, 0x6f, 0x47, 0x32, 0x69, 0x6f, 0x50, 0x65, 0x6a, 0x30, 0x0a, 0x52, 0x47, 0x79, 0x39, 0x6f, 0x63, 0x4c, 0x4c, 0x41, 0x37, 0x36, 0x4d, 0x50, 0x68, 0x4d, 0x41, 0x68, 0x4e, 0x39, 0x4b, 0x53, 0x4d, 0x44, 0x6a, 0x49, 0x67, 0x72, 0x6f, 0x36, 0x54, 0x65, 0x6e, 0x47, 0x45, 0x79, 0x78, 0x43, 0x51, 0x30, 0x6a, 0x56, 0x6e, 0x38, 0x45, 0x54, 0x64, 0x6b, 0x58, 0x68, 0x42, 0x69, 0x6c, 0x79, 0x4e, 0x70, 0x41, 0x6c, 0x48, 0x50, 0x72, 0x7a, 0x67, 0x35, 0x58, 0x50, 0x41, 0x4f, 0x42, 0x4f, 0x70, 0x30, 0x4b, 0x6f, 0x56, 0x64, 0x44, 0x0a, 0x61, 0x61, 0x78, 0x58, 0x62, 0x58, 0x6d, 0x51, 0x65, 0x4f, 0x57, 0x31, 0x74, 0x44, 0x76, 0x59, 0x76, 0x45, 0x79, 0x4e, 0x4b, 0x4b, 0x47, 0x6e, 0x6f, 0x36, 0x65, 0x36, 0x41, 0x6b, 0x34, 0x6c, 0x30, 0x53, 0x71, 0x75, 0x37, 0x61, 0x34, 0x44, 0x49, 0x72, 0x68, 0x72, 0x49, 0x41, 0x38, 0x77, 0x4b, 0x46, 0x53, 0x56, 0x66, 0x2b, 0x44, 0x75, 0x7a, 0x67, 0x70, 0x6d, 0x6e, 0x64, 0x46, 0x41, 0x4c, 0x57, 0x34, 0x69, 0x72, 0x35, 0x30, 0x61, 0x77, 0x51, 0x55, 0x5a, 0x0a, 0x30, 0x6d, 0x2f, 0x41, 0x38, 0x70, 0x2f, 0x34, 0x65, 0x37, 0x4d, 0x43, 0x51, 0x76, 0x74, 0x51, 0x71, 0x52, 0x30, 0x74, 0x6b, 0x77, 0x38, 0x6a, 0x71, 0x38, 0x62, 0x42, 0x44, 0x35, 0x4c, 0x2f, 0x30, 0x4b, 0x49, 0x56, 0x39, 0x56, 0x4d, 0x4a, 0x63, 0x52, 0x7a, 0x2f, 0x52, 0x52, 0x4f, 0x45, 0x35, 0x69, 0x5a, 0x65, 0x2b, 0x4f, 0x43, 0x49, 0x48, 0x41, 0x72, 0x38, 0x46, 0x72, 0x61, 0x6f, 0x63, 0x77, 0x61, 0x34, 0x38, 0x47, 0x4f, 0x45, 0x41, 0x71, 0x44, 0x47, 0x0a, 0x57, 0x75, 0x7a, 0x6e, 0x64, 0x4e, 0x39, 0x77, 0x72, 0x71, 0x4f, 0x44, 0x4a, 0x65, 0x72, 0x57, 0x78, 0x35, 0x65, 0x48, 0x6b, 0x36, 0x66, 0x47, 0x69, 0x6f, 0x6f, 0x7a, 0x6c, 0x32, 0x41, 0x33, 0x45, 0x44, 0x36, 0x58, 0x50, 0x6d, 0x34, 0x70, 0x46, 0x64, 0x61, 0x68, 0x44, 0x39, 0x47, 0x49, 0x4c, 0x42, 0x4b, 0x66, 0x62, 0x36, 0x71, 0x6b, 0x78, 0x6b, 0x4c, 0x72, 0x51, 0x61, 0x4c, 0x6a, 0x6c, 0x55, 0x50, 0x54, 0x41, 0x59, 0x56, 0x74, 0x6a, 0x72, 0x73, 0x37, 0x0a, 0x38, 0x79, 0x4d, 0x32, 0x78, 0x2f, 0x34, 0x37, 0x34, 0x4b, 0x45, 0x6c, 0x42, 0x30, 0x69, 0x72, 0x79, 0x59, 0x6c, 0x30, 0x2f, 0x77, 0x69, 0x50, 0x67, 0x4c, 0x2f, 0x41, 0x6c, 0x6d, 0x58, 0x7a, 0x37, 0x75, 0x78, 0x4c, 0x61, 0x4c, 0x32, 0x64, 0x69, 0x4d, 0x4d, 0x78, 0x73, 0x30, 0x44, 0x78, 0x36, 0x4d, 0x2f, 0x32, 0x4f, 0x4c, 0x75, 0x63, 0x35, 0x4e, 0x46, 0x2f, 0x31, 0x4f, 0x56, 0x59, 0x6d, 0x33, 0x7a, 0x36, 0x31, 0x50, 0x4d, 0x4f, 0x6d, 0x33, 0x57, 0x52, 0x0a, 0x35, 0x4c, 0x70, 0x53, 0x4c, 0x68, 0x6c, 0x2b, 0x30, 0x66, 0x58, 0x4e, 0x57, 0x68, 0x6e, 0x38, 0x75, 0x67, 0x62, 0x32, 0x2b, 0x31, 0x4b, 0x6f, 0x53, 0x35, 0x6b, 0x45, 0x33, 0x66, 0x6a, 0x35, 0x74, 0x49, 0x74, 0x51, 0x6f, 0x30, 0x35, 0x69, 0x69, 0x66, 0x43, 0x48, 0x4a, 0x50, 0x71, 0x44, 0x51, 0x73, 0x47, 0x48, 0x2b, 0x74, 0x55, 0x74, 0x4b, 0x53, 0x70, 0x61, 0x63, 0x58, 0x70, 0x6b, 0x61, 0x74, 0x63, 0x6e, 0x59, 0x47, 0x4d, 0x4e, 0x32, 0x38, 0x35, 0x4a, 0x0a, 0x39, 0x59, 0x30, 0x66, 0x6b, 0x49, 0x6b, 0x79, 0x46, 0x2f, 0x68, 0x7a, 0x51, 0x37, 0x6a, 0x53, 0x57, 0x70, 0x4f, 0x47, 0x59, 0x64, 0x62, 0x68, 0x64, 0x51, 0x72, 0x71, 0x65, 0x57, 0x5a, 0x32, 0x69, 0x45, 0x39, 0x78, 0x36, 0x77, 0x51, 0x6c, 0x31, 0x67, 0x70, 0x61, 0x65, 0x70, 0x50, 0x6c, 0x75, 0x55, 0x73, 0x58, 0x51, 0x41, 0x2b, 0x78, 0x74, 0x72, 0x6e, 0x31, 0x33, 0x6b, 0x2f, 0x63, 0x34, 0x4c, 0x4f, 0x73, 0x4f, 0x78, 0x46, 0x77, 0x59, 0x49, 0x52, 0x4b, 0x0a, 0x51, 0x32, 0x36, 0x5a, 0x49, 0x4d, 0x41, 0x70, 0x63, 0x51, 0x72, 0x41, 0x5a, 0x51, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x34, 0x49, 0x43, 0x79, 0x7a, 0x43, 0x43, 0x41, 0x73, 0x63, 0x77, 0x66, 0x51, 0x59, 0x49, 0x4b, 0x77, 0x59, 0x42, 0x42, 0x51, 0x55, 0x48, 0x41, 0x51, 0x45, 0x45, 0x63, 0x54, 0x42, 0x76, 0x4d, 0x45, 0x77, 0x47, 0x43, 0x43, 0x73, 0x47, 0x41, 0x51, 0x55, 0x46, 0x42, 0x7a, 0x41, 0x43, 0x68, 0x6b, 0x42, 0x6f, 0x64, 0x48, 0x52, 0x77, 0x0a, 0x4f, 0x69, 0x38, 0x76, 0x64, 0x33, 0x64, 0x33, 0x4c, 0x6d, 0x46, 0x6a, 0x59, 0x33, 0x59, 0x75, 0x5a, 0x58, 0x4d, 0x76, 0x5a, 0x6d, 0x6c, 0x73, 0x5a, 0x57, 0x46, 0x6b, 0x62, 0x57, 0x6c, 0x75, 0x4c, 0x30, 0x46, 0x79, 0x59, 0x32, 0x68, 0x70, 0x64, 0x6d, 0x39, 0x7a, 0x4c, 0x32, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x70, 0x5a, 0x6d, 0x6c, 0x6a, 0x59, 0x57, 0x52, 0x76, 0x63, 0x79, 0x39, 0x79, 0x59, 0x57, 0x6c, 0x36, 0x59, 0x57, 0x4e, 0x6a, 0x64, 0x6a, 0x45, 0x75, 0x0a, 0x59, 0x33, 0x4a, 0x30, 0x4d, 0x42, 0x38, 0x47, 0x43, 0x43, 0x73, 0x47, 0x41, 0x51, 0x55, 0x46, 0x42, 0x7a, 0x41, 0x42, 0x68, 0x68, 0x4e, 0x6f, 0x64, 0x48, 0x52, 0x77, 0x4f, 0x69, 0x38, 0x76, 0x62, 0x32, 0x4e, 0x7a, 0x63, 0x43, 0x35, 0x68, 0x59, 0x32, 0x4e, 0x32, 0x4c, 0x6d, 0x56, 0x7a, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x54, 0x53, 0x68, 0x37, 0x54, 0x6a, 0x33, 0x7a, 0x63, 0x6e, 0x6b, 0x31, 0x58, 0x32, 0x0a, 0x56, 0x75, 0x71, 0x42, 0x35, 0x54, 0x62, 0x4d, 0x6a, 0x42, 0x34, 0x2f, 0x76, 0x54, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x42, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x49, 0x77, 0x51, 0x59, 0x4d, 0x42, 0x61, 0x41, 0x46, 0x4e, 0x4b, 0x48, 0x74, 0x4f, 0x50, 0x66, 0x4e, 0x79, 0x65, 0x54, 0x56, 0x66, 0x5a, 0x57, 0x36, 0x6f, 0x48, 0x6c, 0x4e, 0x73, 0x79, 0x4d, 0x0a, 0x48, 0x6a, 0x2b, 0x39, 0x4d, 0x49, 0x49, 0x42, 0x63, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x67, 0x42, 0x49, 0x49, 0x42, 0x61, 0x6a, 0x43, 0x43, 0x41, 0x57, 0x59, 0x77, 0x67, 0x67, 0x46, 0x69, 0x42, 0x67, 0x52, 0x56, 0x48, 0x53, 0x41, 0x41, 0x4d, 0x49, 0x49, 0x42, 0x57, 0x44, 0x43, 0x43, 0x41, 0x53, 0x49, 0x47, 0x43, 0x43, 0x73, 0x47, 0x41, 0x51, 0x55, 0x46, 0x42, 0x77, 0x49, 0x43, 0x4d, 0x49, 0x49, 0x42, 0x46, 0x42, 0x36, 0x43, 0x41, 0x52, 0x41, 0x41, 0x0a, 0x51, 0x51, 0x42, 0x31, 0x41, 0x48, 0x51, 0x41, 0x62, 0x77, 0x42, 0x79, 0x41, 0x47, 0x6b, 0x41, 0x5a, 0x41, 0x42, 0x68, 0x41, 0x47, 0x51, 0x41, 0x49, 0x41, 0x42, 0x6b, 0x41, 0x47, 0x55, 0x41, 0x49, 0x41, 0x42, 0x44, 0x41, 0x47, 0x55, 0x41, 0x63, 0x67, 0x42, 0x30, 0x41, 0x47, 0x6b, 0x41, 0x5a, 0x67, 0x42, 0x70, 0x41, 0x47, 0x4d, 0x41, 0x59, 0x51, 0x42, 0x6a, 0x41, 0x47, 0x6b, 0x41, 0x38, 0x77, 0x42, 0x75, 0x41, 0x43, 0x41, 0x41, 0x55, 0x67, 0x42, 0x68, 0x0a, 0x41, 0x4f, 0x30, 0x41, 0x65, 0x67, 0x41, 0x67, 0x41, 0x47, 0x51, 0x41, 0x5a, 0x51, 0x41, 0x67, 0x41, 0x47, 0x77, 0x41, 0x59, 0x51, 0x41, 0x67, 0x41, 0x45, 0x45, 0x41, 0x51, 0x77, 0x42, 0x44, 0x41, 0x46, 0x59, 0x41, 0x49, 0x41, 0x41, 0x6f, 0x41, 0x45, 0x45, 0x41, 0x5a, 0x77, 0x42, 0x6c, 0x41, 0x47, 0x34, 0x41, 0x59, 0x77, 0x42, 0x70, 0x41, 0x47, 0x45, 0x41, 0x49, 0x41, 0x42, 0x6b, 0x41, 0x47, 0x55, 0x41, 0x49, 0x41, 0x42, 0x55, 0x41, 0x47, 0x55, 0x41, 0x0a, 0x59, 0x77, 0x42, 0x75, 0x41, 0x47, 0x38, 0x41, 0x62, 0x41, 0x42, 0x76, 0x41, 0x47, 0x63, 0x41, 0x37, 0x51, 0x42, 0x68, 0x41, 0x43, 0x41, 0x41, 0x65, 0x51, 0x41, 0x67, 0x41, 0x45, 0x4d, 0x41, 0x5a, 0x51, 0x42, 0x79, 0x41, 0x48, 0x51, 0x41, 0x61, 0x51, 0x42, 0x6d, 0x41, 0x47, 0x6b, 0x41, 0x59, 0x77, 0x42, 0x68, 0x41, 0x47, 0x4d, 0x41, 0x61, 0x51, 0x44, 0x7a, 0x41, 0x47, 0x34, 0x41, 0x49, 0x41, 0x42, 0x46, 0x41, 0x47, 0x77, 0x41, 0x5a, 0x51, 0x42, 0x6a, 0x0a, 0x41, 0x48, 0x51, 0x41, 0x63, 0x67, 0x44, 0x7a, 0x41, 0x47, 0x34, 0x41, 0x61, 0x51, 0x42, 0x6a, 0x41, 0x47, 0x45, 0x41, 0x4c, 0x41, 0x41, 0x67, 0x41, 0x45, 0x4d, 0x41, 0x53, 0x51, 0x42, 0x47, 0x41, 0x43, 0x41, 0x41, 0x55, 0x51, 0x41, 0x30, 0x41, 0x44, 0x59, 0x41, 0x4d, 0x41, 0x41, 0x78, 0x41, 0x44, 0x45, 0x41, 0x4e, 0x51, 0x41, 0x32, 0x41, 0x45, 0x55, 0x41, 0x4b, 0x51, 0x41, 0x75, 0x41, 0x43, 0x41, 0x41, 0x51, 0x77, 0x42, 0x51, 0x41, 0x46, 0x4d, 0x41, 0x0a, 0x49, 0x41, 0x42, 0x6c, 0x41, 0x47, 0x34, 0x41, 0x49, 0x41, 0x42, 0x6f, 0x41, 0x48, 0x51, 0x41, 0x64, 0x41, 0x42, 0x77, 0x41, 0x44, 0x6f, 0x41, 0x4c, 0x77, 0x41, 0x76, 0x41, 0x48, 0x63, 0x41, 0x64, 0x77, 0x42, 0x33, 0x41, 0x43, 0x34, 0x41, 0x59, 0x51, 0x42, 0x6a, 0x41, 0x47, 0x4d, 0x41, 0x64, 0x67, 0x41, 0x75, 0x41, 0x47, 0x55, 0x41, 0x63, 0x7a, 0x41, 0x77, 0x42, 0x67, 0x67, 0x72, 0x42, 0x67, 0x45, 0x46, 0x42, 0x51, 0x63, 0x43, 0x41, 0x52, 0x59, 0x6b, 0x0a, 0x61, 0x48, 0x52, 0x30, 0x63, 0x44, 0x6f, 0x76, 0x4c, 0x33, 0x64, 0x33, 0x64, 0x79, 0x35, 0x68, 0x59, 0x32, 0x4e, 0x32, 0x4c, 0x6d, 0x56, 0x7a, 0x4c, 0x32, 0x78, 0x6c, 0x5a, 0x32, 0x6c, 0x7a, 0x62, 0x47, 0x46, 0x6a, 0x61, 0x57, 0x39, 0x75, 0x58, 0x32, 0x4d, 0x75, 0x61, 0x48, 0x52, 0x74, 0x4d, 0x46, 0x55, 0x47, 0x41, 0x31, 0x55, 0x64, 0x48, 0x77, 0x52, 0x4f, 0x4d, 0x45, 0x77, 0x77, 0x53, 0x71, 0x42, 0x49, 0x6f, 0x45, 0x61, 0x47, 0x52, 0x47, 0x68, 0x30, 0x0a, 0x64, 0x48, 0x41, 0x36, 0x4c, 0x79, 0x39, 0x33, 0x64, 0x33, 0x63, 0x75, 0x59, 0x57, 0x4e, 0x6a, 0x64, 0x69, 0x35, 0x6c, 0x63, 0x79, 0x39, 0x6d, 0x61, 0x57, 0x78, 0x6c, 0x59, 0x57, 0x52, 0x74, 0x61, 0x57, 0x34, 0x76, 0x51, 0x58, 0x4a, 0x6a, 0x61, 0x47, 0x6c, 0x32, 0x62, 0x33, 0x4d, 0x76, 0x59, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x5a, 0x47, 0x39, 0x7a, 0x4c, 0x33, 0x4a, 0x68, 0x61, 0x58, 0x70, 0x68, 0x59, 0x32, 0x4e, 0x32, 0x0a, 0x4d, 0x56, 0x39, 0x6b, 0x5a, 0x58, 0x49, 0x75, 0x59, 0x33, 0x4a, 0x73, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x42, 0x6a, 0x41, 0x58, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x45, 0x45, 0x45, 0x44, 0x41, 0x4f, 0x67, 0x51, 0x78, 0x68, 0x59, 0x32, 0x4e, 0x32, 0x51, 0x47, 0x46, 0x6a, 0x59, 0x33, 0x59, 0x75, 0x5a, 0x58, 0x4d, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x0a, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x46, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x42, 0x41, 0x4a, 0x63, 0x78, 0x41, 0x70, 0x2f, 0x6e, 0x2f, 0x55, 0x4e, 0x6e, 0x53, 0x45, 0x51, 0x55, 0x35, 0x43, 0x6d, 0x48, 0x37, 0x55, 0x77, 0x6f, 0x5a, 0x74, 0x43, 0x50, 0x4e, 0x64, 0x70, 0x4e, 0x59, 0x62, 0x64, 0x4b, 0x6c, 0x30, 0x32, 0x31, 0x32, 0x35, 0x44, 0x67, 0x42, 0x53, 0x34, 0x4f, 0x78, 0x6e, 0x6e, 0x51, 0x38, 0x70, 0x64, 0x70, 0x44, 0x37, 0x30, 0x45, 0x0a, 0x52, 0x39, 0x6d, 0x2b, 0x32, 0x37, 0x55, 0x70, 0x32, 0x70, 0x76, 0x5a, 0x72, 0x71, 0x6d, 0x5a, 0x31, 0x64, 0x4d, 0x38, 0x4d, 0x4a, 0x50, 0x31, 0x6a, 0x61, 0x47, 0x6f, 0x2f, 0x41, 0x61, 0x4e, 0x52, 0x50, 0x54, 0x4b, 0x46, 0x70, 0x56, 0x38, 0x4d, 0x39, 0x78, 0x69, 0x69, 0x36, 0x67, 0x33, 0x2b, 0x43, 0x66, 0x59, 0x43, 0x53, 0x30, 0x62, 0x37, 0x38, 0x67, 0x55, 0x4a, 0x79, 0x43, 0x70, 0x5a, 0x45, 0x54, 0x2f, 0x4c, 0x74, 0x5a, 0x31, 0x71, 0x6d, 0x78, 0x4e, 0x0a, 0x59, 0x45, 0x41, 0x5a, 0x53, 0x55, 0x4e, 0x55, 0x59, 0x39, 0x72, 0x69, 0x7a, 0x4c, 0x70, 0x6d, 0x35, 0x55, 0x39, 0x45, 0x65, 0x6c, 0x76, 0x5a, 0x61, 0x6f, 0x45, 0x72, 0x51, 0x4e, 0x56, 0x2f, 0x2b, 0x51, 0x45, 0x6e, 0x57, 0x43, 0x7a, 0x49, 0x37, 0x55, 0x69, 0x52, 0x66, 0x44, 0x2b, 0x6d, 0x41, 0x4d, 0x2f, 0x45, 0x4b, 0x58, 0x4d, 0x52, 0x4e, 0x74, 0x36, 0x47, 0x47, 0x54, 0x36, 0x64, 0x37, 0x68, 0x6d, 0x4b, 0x47, 0x39, 0x57, 0x77, 0x37, 0x59, 0x34, 0x39, 0x0a, 0x6e, 0x43, 0x72, 0x41, 0x44, 0x64, 0x67, 0x39, 0x5a, 0x75, 0x4d, 0x38, 0x44, 0x62, 0x33, 0x56, 0x6c, 0x46, 0x7a, 0x69, 0x34, 0x71, 0x63, 0x31, 0x47, 0x77, 0x51, 0x41, 0x39, 0x6a, 0x39, 0x61, 0x6a, 0x65, 0x70, 0x44, 0x76, 0x56, 0x2b, 0x4a, 0x48, 0x61, 0x6e, 0x42, 0x73, 0x4d, 0x79, 0x5a, 0x34, 0x6b, 0x30, 0x41, 0x43, 0x74, 0x72, 0x4a, 0x4a, 0x31, 0x76, 0x6e, 0x45, 0x35, 0x42, 0x63, 0x35, 0x50, 0x55, 0x7a, 0x6f, 0x6c, 0x56, 0x74, 0x33, 0x4f, 0x41, 0x4a, 0x0a, 0x54, 0x53, 0x2b, 0x78, 0x4a, 0x6c, 0x73, 0x6e, 0x64, 0x51, 0x41, 0x4a, 0x78, 0x47, 0x4a, 0x33, 0x4b, 0x51, 0x68, 0x66, 0x6e, 0x6c, 0x6d, 0x73, 0x74, 0x6e, 0x36, 0x74, 0x6e, 0x31, 0x51, 0x77, 0x49, 0x67, 0x50, 0x42, 0x48, 0x6e, 0x46, 0x6b, 0x2f, 0x76, 0x6b, 0x34, 0x43, 0x70, 0x59, 0x59, 0x33, 0x51, 0x49, 0x55, 0x72, 0x43, 0x50, 0x4c, 0x42, 0x68, 0x77, 0x65, 0x70, 0x48, 0x32, 0x4e, 0x44, 0x64, 0x34, 0x6e, 0x51, 0x65, 0x69, 0x74, 0x32, 0x68, 0x57, 0x33, 0x0a, 0x73, 0x43, 0x50, 0x64, 0x4b, 0x36, 0x6a, 0x54, 0x32, 0x69, 0x57, 0x48, 0x37, 0x65, 0x68, 0x56, 0x52, 0x45, 0x32, 0x49, 0x39, 0x44, 0x5a, 0x2b, 0x68, 0x4a, 0x70, 0x34, 0x72, 0x50, 0x63, 0x4f, 0x56, 0x6b, 0x6b, 0x4f, 0x31, 0x6a, 0x4d, 0x6c, 0x31, 0x6f, 0x52, 0x51, 0x51, 0x6d, 0x77, 0x67, 0x45, 0x68, 0x30, 0x71, 0x31, 0x62, 0x36, 0x38, 0x38, 0x6e, 0x43, 0x42, 0x70, 0x48, 0x42, 0x67, 0x76, 0x67, 0x57, 0x31, 0x6d, 0x35, 0x34, 0x45, 0x52, 0x4c, 0x35, 0x68, 0x0a, 0x49, 0x36, 0x7a, 0x70, 0x70, 0x53, 0x53, 0x4d, 0x45, 0x59, 0x43, 0x55, 0x57, 0x71, 0x4b, 0x69, 0x75, 0x55, 0x6e, 0x53, 0x77, 0x64, 0x7a, 0x52, 0x70, 0x2b, 0x30, 0x78, 0x45, 0x53, 0x79, 0x65, 0x47, 0x61, 0x62, 0x75, 0x34, 0x56, 0x58, 0x68, 0x77, 0x4f, 0x72, 0x50, 0x44, 0x59, 0x54, 0x6b, 0x46, 0x37, 0x65, 0x69, 0x66, 0x4b, 0x58, 0x65, 0x56, 0x53, 0x55, 0x47, 0x37, 0x73, 0x7a, 0x41, 0x68, 0x31, 0x78, 0x41, 0x32, 0x73, 0x79, 0x56, 0x50, 0x31, 0x58, 0x67, 0x0a, 0x4e, 0x63, 0x65, 0x34, 0x68, 0x4c, 0x36, 0x30, 0x58, 0x63, 0x31, 0x36, 0x67, 0x77, 0x46, 0x79, 0x37, 0x6f, 0x66, 0x6d, 0x58, 0x78, 0x32, 0x75, 0x74, 0x59, 0x58, 0x47, 0x4a, 0x74, 0x2f, 0x6d, 0x77, 0x5a, 0x72, 0x70, 0x48, 0x67, 0x4a, 0x48, 0x6e, 0x79, 0x71, 0x6f, 0x62, 0x61, 0x6c, 0x62, 0x7a, 0x2b, 0x78, 0x46, 0x64, 0x33, 0x2b, 0x59, 0x4a, 0x35, 0x6f, 0x79, 0x58, 0x53, 0x72, 0x6a, 0x68, 0x4f, 0x37, 0x46, 0x6d, 0x47, 0x59, 0x76, 0x6c, 0x69, 0x41, 0x64, 0x0a, 0x33, 0x64, 0x6a, 0x44, 0x4a, 0x39, 0x65, 0x77, 0x2b, 0x66, 0x37, 0x5a, 0x66, 0x63, 0x33, 0x51, 0x6e, 0x34, 0x38, 0x4c, 0x46, 0x46, 0x68, 0x52, 0x6e, 0x79, 0x2b, 0x4c, 0x77, 0x7a, 0x67, 0x74, 0x33, 0x75, 0x69, 0x50, 0x31, 0x6f, 0x32, 0x48, 0x70, 0x50, 0x56, 0x57, 0x51, 0x78, 0x61, 0x5a, 0x4c, 0x50, 0x53, 0x6b, 0x56, 0x72, 0x51, 0x30, 0x75, 0x47, 0x45, 0x33, 0x79, 0x63, 0x4a, 0x59, 0x67, 0x42, 0x75, 0x67, 0x6c, 0x36, 0x48, 0x38, 0x57, 0x59, 0x33, 0x70, 0x0a, 0x45, 0x66, 0x62, 0x52, 0x44, 0x30, 0x74, 0x56, 0x4e, 0x45, 0x59, 0x71, 0x69, 0x34, 0x59, 0x37, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x54, 0x57, 0x43, 0x41, 0x20, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x51, 0x54, 0x43, 0x43, 0x41, 0x79, 0x6d, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x43, 0x44, 0x4c, 0x34, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x77, 0x55, 0x54, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x46, 0x63, 0x78, 0x45, 0x6a, 0x41, 0x51, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x0a, 0x43, 0x56, 0x52, 0x42, 0x53, 0x56, 0x64, 0x42, 0x54, 0x69, 0x31, 0x44, 0x51, 0x54, 0x45, 0x51, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x78, 0x4d, 0x48, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x51, 0x54, 0x45, 0x63, 0x4d, 0x42, 0x6f, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x54, 0x56, 0x46, 0x64, 0x44, 0x51, 0x53, 0x42, 0x48, 0x62, 0x47, 0x39, 0x69, 0x59, 0x57, 0x77, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x0a, 0x51, 0x54, 0x41, 0x65, 0x46, 0x77, 0x30, 0x78, 0x4d, 0x6a, 0x41, 0x32, 0x4d, 0x6a, 0x63, 0x77, 0x4e, 0x6a, 0x49, 0x34, 0x4d, 0x7a, 0x4e, 0x61, 0x46, 0x77, 0x30, 0x7a, 0x4d, 0x44, 0x45, 0x79, 0x4d, 0x7a, 0x45, 0x78, 0x4e, 0x54, 0x55, 0x35, 0x4e, 0x54, 0x6c, 0x61, 0x4d, 0x46, 0x45, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6c, 0x52, 0x58, 0x4d, 0x52, 0x49, 0x77, 0x45, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x0a, 0x45, 0x77, 0x6c, 0x55, 0x51, 0x55, 0x6c, 0x58, 0x51, 0x55, 0x34, 0x74, 0x51, 0x30, 0x45, 0x78, 0x45, 0x44, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x73, 0x54, 0x42, 0x31, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x78, 0x48, 0x44, 0x41, 0x61, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x45, 0x31, 0x52, 0x58, 0x51, 0x30, 0x45, 0x67, 0x52, 0x32, 0x78, 0x76, 0x59, 0x6d, 0x46, 0x73, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x0a, 0x51, 0x30, 0x45, 0x77, 0x67, 0x67, 0x49, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x49, 0x4b, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x43, 0x77, 0x42, 0x64, 0x76, 0x49, 0x36, 0x34, 0x7a, 0x45, 0x62, 0x6f, 0x6f, 0x68, 0x37, 0x34, 0x35, 0x4e, 0x6e, 0x48, 0x45, 0x4b, 0x48, 0x31, 0x4a, 0x77, 0x37, 0x57, 0x32, 0x43, 0x0a, 0x6e, 0x4a, 0x66, 0x46, 0x31, 0x30, 0x78, 0x4f, 0x52, 0x55, 0x6e, 0x4c, 0x51, 0x45, 0x4b, 0x31, 0x45, 0x6a, 0x52, 0x73, 0x47, 0x63, 0x4a, 0x30, 0x70, 0x44, 0x46, 0x66, 0x68, 0x51, 0x4b, 0x58, 0x37, 0x45, 0x4d, 0x7a, 0x43, 0x6c, 0x50, 0x53, 0x6e, 0x49, 0x79, 0x4f, 0x74, 0x37, 0x68, 0x35, 0x32, 0x79, 0x76, 0x56, 0x61, 0x76, 0x4b, 0x4f, 0x5a, 0x73, 0x54, 0x75, 0x4b, 0x77, 0x45, 0x48, 0x6b, 0x74, 0x53, 0x7a, 0x30, 0x41, 0x4c, 0x66, 0x55, 0x50, 0x5a, 0x56, 0x0a, 0x72, 0x32, 0x59, 0x4f, 0x79, 0x2b, 0x42, 0x48, 0x59, 0x43, 0x38, 0x72, 0x4d, 0x6a, 0x6b, 0x31, 0x55, 0x6a, 0x6f, 0x6f, 0x67, 0x2f, 0x68, 0x37, 0x46, 0x73, 0x59, 0x59, 0x75, 0x47, 0x4c, 0x57, 0x52, 0x79, 0x57, 0x52, 0x7a, 0x76, 0x41, 0x5a, 0x45, 0x6b, 0x32, 0x74, 0x59, 0x2f, 0x58, 0x54, 0x50, 0x33, 0x56, 0x66, 0x4b, 0x66, 0x43, 0x68, 0x4d, 0x42, 0x77, 0x71, 0x6f, 0x4a, 0x69, 0x6d, 0x46, 0x62, 0x33, 0x75, 0x2f, 0x52, 0x6b, 0x32, 0x38, 0x4f, 0x4b, 0x52, 0x0a, 0x51, 0x34, 0x2f, 0x36, 0x79, 0x74, 0x59, 0x51, 0x4a, 0x30, 0x6c, 0x4d, 0x37, 0x39, 0x33, 0x42, 0x38, 0x59, 0x56, 0x77, 0x6d, 0x38, 0x72, 0x71, 0x71, 0x46, 0x70, 0x44, 0x2f, 0x47, 0x32, 0x47, 0x62, 0x33, 0x50, 0x70, 0x4e, 0x30, 0x57, 0x70, 0x38, 0x44, 0x62, 0x48, 0x7a, 0x49, 0x68, 0x31, 0x48, 0x72, 0x74, 0x73, 0x42, 0x76, 0x2b, 0x62, 0x61, 0x7a, 0x34, 0x58, 0x37, 0x47, 0x47, 0x71, 0x63, 0x58, 0x7a, 0x47, 0x48, 0x61, 0x4c, 0x33, 0x53, 0x65, 0x6b, 0x56, 0x0a, 0x74, 0x54, 0x7a, 0x57, 0x6f, 0x57, 0x48, 0x31, 0x45, 0x66, 0x63, 0x46, 0x62, 0x78, 0x33, 0x39, 0x45, 0x62, 0x37, 0x51, 0x4d, 0x41, 0x66, 0x43, 0x4b, 0x62, 0x41, 0x4a, 0x54, 0x69, 0x62, 0x63, 0x34, 0x36, 0x4b, 0x6f, 0x6b, 0x57, 0x6f, 0x66, 0x77, 0x70, 0x46, 0x46, 0x69, 0x46, 0x7a, 0x6c, 0x6d, 0x4c, 0x68, 0x78, 0x70, 0x52, 0x55, 0x5a, 0x79, 0x58, 0x78, 0x31, 0x45, 0x63, 0x78, 0x77, 0x64, 0x45, 0x38, 0x74, 0x6d, 0x78, 0x32, 0x52, 0x52, 0x50, 0x31, 0x57, 0x0a, 0x4b, 0x4b, 0x44, 0x2b, 0x75, 0x34, 0x5a, 0x71, 0x79, 0x50, 0x70, 0x63, 0x43, 0x31, 0x6a, 0x63, 0x78, 0x6b, 0x74, 0x32, 0x79, 0x4b, 0x73, 0x69, 0x32, 0x58, 0x4d, 0x50, 0x70, 0x66, 0x52, 0x61, 0x41, 0x6f, 0x6b, 0x2f, 0x54, 0x35, 0x34, 0x69, 0x67, 0x75, 0x36, 0x69, 0x64, 0x46, 0x4d, 0x71, 0x50, 0x56, 0x4d, 0x6e, 0x61, 0x52, 0x31, 0x73, 0x6a, 0x6a, 0x49, 0x73, 0x5a, 0x41, 0x41, 0x6d, 0x59, 0x32, 0x45, 0x32, 0x54, 0x71, 0x4e, 0x47, 0x74, 0x7a, 0x39, 0x39, 0x0a, 0x73, 0x79, 0x32, 0x73, 0x62, 0x5a, 0x43, 0x69, 0x6c, 0x61, 0x4c, 0x4f, 0x7a, 0x39, 0x71, 0x43, 0x35, 0x77, 0x63, 0x30, 0x47, 0x5a, 0x62, 0x70, 0x75, 0x43, 0x47, 0x71, 0x4b, 0x58, 0x36, 0x6d, 0x4f, 0x4c, 0x36, 0x4f, 0x4b, 0x55, 0x6f, 0x68, 0x5a, 0x6e, 0x6b, 0x66, 0x73, 0x38, 0x4f, 0x31, 0x43, 0x57, 0x66, 0x65, 0x31, 0x74, 0x51, 0x48, 0x52, 0x76, 0x4d, 0x71, 0x32, 0x75, 0x59, 0x69, 0x4e, 0x32, 0x44, 0x4c, 0x67, 0x62, 0x59, 0x50, 0x6f, 0x41, 0x2f, 0x70, 0x0a, 0x79, 0x4a, 0x56, 0x2f, 0x76, 0x31, 0x57, 0x52, 0x42, 0x58, 0x72, 0x50, 0x50, 0x52, 0x58, 0x41, 0x62, 0x39, 0x34, 0x4a, 0x6c, 0x41, 0x47, 0x44, 0x31, 0x7a, 0x51, 0x62, 0x7a, 0x45, 0x43, 0x6c, 0x38, 0x4c, 0x69, 0x62, 0x5a, 0x39, 0x57, 0x59, 0x6b, 0x54, 0x75, 0x6e, 0x68, 0x48, 0x69, 0x56, 0x4a, 0x71, 0x52, 0x61, 0x43, 0x50, 0x67, 0x72, 0x64, 0x4c, 0x51, 0x41, 0x42, 0x44, 0x7a, 0x66, 0x75, 0x42, 0x53, 0x4f, 0x36, 0x4e, 0x2b, 0x70, 0x6a, 0x57, 0x78, 0x6e, 0x0a, 0x6b, 0x6a, 0x4d, 0x64, 0x77, 0x4c, 0x66, 0x53, 0x37, 0x4a, 0x4c, 0x49, 0x76, 0x67, 0x6d, 0x2f, 0x4c, 0x43, 0x6b, 0x46, 0x62, 0x77, 0x4a, 0x72, 0x6e, 0x75, 0x2b, 0x38, 0x76, 0x79, 0x71, 0x38, 0x57, 0x38, 0x42, 0x51, 0x6a, 0x30, 0x46, 0x77, 0x63, 0x59, 0x65, 0x79, 0x54, 0x62, 0x63, 0x45, 0x71, 0x59, 0x53, 0x6a, 0x4d, 0x71, 0x2b, 0x75, 0x37, 0x6d, 0x73, 0x58, 0x69, 0x37, 0x4b, 0x78, 0x2f, 0x6d, 0x7a, 0x68, 0x6b, 0x49, 0x79, 0x49, 0x71, 0x4a, 0x64, 0x49, 0x0a, 0x7a, 0x73, 0x68, 0x4e, 0x79, 0x2f, 0x4d, 0x47, 0x7a, 0x31, 0x39, 0x71, 0x43, 0x6b, 0x4b, 0x78, 0x48, 0x68, 0x35, 0x33, 0x4c, 0x34, 0x36, 0x67, 0x35, 0x70, 0x49, 0x4f, 0x42, 0x76, 0x77, 0x46, 0x49, 0x74, 0x49, 0x6d, 0x34, 0x54, 0x46, 0x52, 0x66, 0x54, 0x4c, 0x63, 0x44, 0x77, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x79, 0x4d, 0x77, 0x49, 0x54, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x0a, 0x41, 0x51, 0x59, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x45, 0x41, 0x58, 0x7a, 0x53, 0x42, 0x64, 0x75, 0x2b, 0x57, 0x48, 0x64, 0x58, 0x6c, 0x74, 0x64, 0x6b, 0x43, 0x59, 0x34, 0x51, 0x57, 0x77, 0x61, 0x36, 0x67, 0x0a, 0x63, 0x46, 0x47, 0x6e, 0x39, 0x30, 0x78, 0x48, 0x4e, 0x63, 0x67, 0x4c, 0x31, 0x79, 0x67, 0x39, 0x69, 0x58, 0x48, 0x5a, 0x71, 0x6a, 0x4e, 0x42, 0x36, 0x68, 0x51, 0x62, 0x62, 0x43, 0x45, 0x41, 0x77, 0x47, 0x78, 0x43, 0x47, 0x58, 0x36, 0x66, 0x61, 0x56, 0x73, 0x67, 0x51, 0x74, 0x2b, 0x69, 0x30, 0x74, 0x72, 0x45, 0x66, 0x4a, 0x64, 0x4c, 0x6a, 0x62, 0x44, 0x6f, 0x72, 0x4d, 0x6a, 0x75, 0x70, 0x57, 0x6b, 0x45, 0x6d, 0x51, 0x71, 0x53, 0x70, 0x71, 0x73, 0x6e, 0x0a, 0x4c, 0x68, 0x70, 0x4e, 0x67, 0x62, 0x2b, 0x45, 0x31, 0x48, 0x41, 0x65, 0x72, 0x55, 0x66, 0x2b, 0x2f, 0x55, 0x71, 0x64, 0x4d, 0x2b, 0x44, 0x79, 0x75, 0x63, 0x52, 0x46, 0x43, 0x43, 0x45, 0x4b, 0x32, 0x6d, 0x6c, 0x70, 0x63, 0x33, 0x49, 0x4e, 0x76, 0x6a, 0x54, 0x2b, 0x6c, 0x49, 0x75, 0x74, 0x77, 0x78, 0x34, 0x31, 0x31, 0x36, 0x4b, 0x44, 0x37, 0x2b, 0x55, 0x34, 0x78, 0x36, 0x57, 0x46, 0x48, 0x36, 0x76, 0x50, 0x4e, 0x4f, 0x77, 0x2f, 0x4b, 0x50, 0x34, 0x4d, 0x0a, 0x38, 0x56, 0x65, 0x47, 0x54, 0x73, 0x6c, 0x56, 0x39, 0x78, 0x7a, 0x55, 0x32, 0x4b, 0x56, 0x39, 0x42, 0x6e, 0x70, 0x76, 0x31, 0x64, 0x38, 0x51, 0x33, 0x34, 0x46, 0x4f, 0x49, 0x57, 0x57, 0x78, 0x74, 0x75, 0x45, 0x58, 0x65, 0x5a, 0x56, 0x46, 0x42, 0x73, 0x35, 0x66, 0x7a, 0x4e, 0x78, 0x47, 0x69, 0x57, 0x4e, 0x6f, 0x52, 0x49, 0x32, 0x54, 0x39, 0x47, 0x52, 0x77, 0x6f, 0x44, 0x32, 0x64, 0x4b, 0x41, 0x58, 0x44, 0x4f, 0x58, 0x43, 0x34, 0x59, 0x6e, 0x73, 0x67, 0x0a, 0x2f, 0x65, 0x54, 0x62, 0x36, 0x51, 0x69, 0x68, 0x75, 0x4a, 0x34, 0x39, 0x43, 0x63, 0x64, 0x50, 0x2b, 0x79, 0x7a, 0x34, 0x6b, 0x33, 0x5a, 0x42, 0x33, 0x6c, 0x4c, 0x67, 0x34, 0x56, 0x66, 0x53, 0x6e, 0x51, 0x4f, 0x38, 0x64, 0x35, 0x37, 0x2b, 0x6e, 0x69, 0x6c, 0x65, 0x39, 0x38, 0x46, 0x52, 0x59, 0x42, 0x2f, 0x65, 0x32, 0x67, 0x75, 0x79, 0x4c, 0x58, 0x57, 0x33, 0x51, 0x30, 0x69, 0x54, 0x35, 0x2f, 0x5a, 0x35, 0x78, 0x6f, 0x52, 0x64, 0x67, 0x46, 0x6c, 0x67, 0x0a, 0x6c, 0x50, 0x78, 0x34, 0x6d, 0x49, 0x38, 0x38, 0x6b, 0x31, 0x48, 0x74, 0x51, 0x4a, 0x41, 0x48, 0x33, 0x32, 0x52, 0x6a, 0x4a, 0x4d, 0x74, 0x4f, 0x63, 0x51, 0x57, 0x68, 0x31, 0x35, 0x51, 0x61, 0x69, 0x44, 0x4c, 0x78, 0x49, 0x6e, 0x51, 0x69, 0x72, 0x71, 0x57, 0x6d, 0x32, 0x42, 0x4a, 0x70, 0x54, 0x47, 0x43, 0x6a, 0x41, 0x75, 0x34, 0x72, 0x37, 0x4e, 0x52, 0x6a, 0x6b, 0x67, 0x74, 0x65, 0x76, 0x69, 0x39, 0x32, 0x61, 0x36, 0x4f, 0x32, 0x4a, 0x72, 0x79, 0x50, 0x0a, 0x41, 0x39, 0x67, 0x4b, 0x38, 0x6b, 0x78, 0x6b, 0x52, 0x72, 0x30, 0x35, 0x59, 0x75, 0x57, 0x57, 0x36, 0x7a, 0x52, 0x6a, 0x45, 0x53, 0x6a, 0x4d, 0x6c, 0x66, 0x47, 0x74, 0x37, 0x2b, 0x2f, 0x63, 0x67, 0x46, 0x68, 0x49, 0x36, 0x55, 0x75, 0x34, 0x36, 0x6d, 0x57, 0x73, 0x36, 0x66, 0x79, 0x41, 0x74, 0x62, 0x58, 0x49, 0x52, 0x66, 0x6d, 0x73, 0x77, 0x5a, 0x2f, 0x5a, 0x75, 0x65, 0x70, 0x69, 0x69, 0x49, 0x37, 0x45, 0x38, 0x55, 0x75, 0x44, 0x45, 0x71, 0x33, 0x6d, 0x0a, 0x69, 0x34, 0x54, 0x57, 0x6e, 0x73, 0x4c, 0x72, 0x67, 0x78, 0x69, 0x66, 0x61, 0x72, 0x73, 0x62, 0x4a, 0x47, 0x41, 0x7a, 0x63, 0x4d, 0x7a, 0x73, 0x39, 0x7a, 0x4c, 0x7a, 0x58, 0x4e, 0x6c, 0x35, 0x66, 0x65, 0x2b, 0x65, 0x70, 0x50, 0x37, 0x4a, 0x49, 0x38, 0x4d, 0x6b, 0x37, 0x68, 0x57, 0x53, 0x73, 0x54, 0x32, 0x52, 0x54, 0x79, 0x61, 0x47, 0x76, 0x57, 0x5a, 0x7a, 0x4a, 0x42, 0x50, 0x71, 0x70, 0x4b, 0x35, 0x6a, 0x77, 0x61, 0x31, 0x39, 0x68, 0x41, 0x4d, 0x38, 0x0a, 0x45, 0x48, 0x69, 0x47, 0x47, 0x33, 0x6e, 0x6a, 0x78, 0x50, 0x50, 0x79, 0x42, 0x4a, 0x55, 0x67, 0x72, 0x69, 0x4f, 0x43, 0x78, 0x4c, 0x4d, 0x36, 0x41, 0x47, 0x4b, 0x2f, 0x35, 0x6a, 0x59, 0x6b, 0x34, 0x56, 0x65, 0x36, 0x78, 0x78, 0x36, 0x51, 0x64, 0x64, 0x56, 0x66, 0x50, 0x35, 0x56, 0x68, 0x4b, 0x38, 0x45, 0x37, 0x7a, 0x65, 0x57, 0x7a, 0x61, 0x47, 0x48, 0x51, 0x52, 0x69, 0x61, 0x70, 0x49, 0x56, 0x4a, 0x70, 0x4c, 0x65, 0x73, 0x75, 0x78, 0x2b, 0x74, 0x33, 0x0a, 0x7a, 0x71, 0x59, 0x36, 0x74, 0x51, 0x4d, 0x7a, 0x54, 0x33, 0x62, 0x52, 0x35, 0x31, 0x78, 0x55, 0x41, 0x56, 0x33, 0x4c, 0x65, 0x50, 0x54, 0x4a, 0x44, 0x4c, 0x2f, 0x50, 0x45, 0x6f, 0x34, 0x58, 0x4c, 0x53, 0x4e, 0x6f, 0x6c, 0x4f, 0x65, 0x72, 0x2f, 0x71, 0x6d, 0x79, 0x4b, 0x77, 0x62, 0x51, 0x42, 0x4d, 0x30, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x54, 0x65, 0x6c, 0x69, 0x61, 0x53, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x76, 0x31, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x4f, 0x44, 0x43, 0x43, 0x41, 0x79, 0x43, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x52, 0x41, 0x4a, 0x57, 0x2b, 0x46, 0x71, 0x44, 0x33, 0x4c, 0x6b, 0x62, 0x78, 0x65, 0x7a, 0x6d, 0x43, 0x63, 0x76, 0x71, 0x4c, 0x7a, 0x5a, 0x59, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x46, 0x42, 0x51, 0x41, 0x77, 0x4e, 0x7a, 0x45, 0x55, 0x4d, 0x42, 0x49, 0x47, 0x41, 0x31, 0x55, 0x45, 0x0a, 0x43, 0x67, 0x77, 0x4c, 0x56, 0x47, 0x56, 0x73, 0x61, 0x57, 0x46, 0x54, 0x62, 0x32, 0x35, 0x6c, 0x63, 0x6d, 0x45, 0x78, 0x48, 0x7a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x46, 0x6c, 0x52, 0x6c, 0x62, 0x47, 0x6c, 0x68, 0x55, 0x32, 0x39, 0x75, 0x5a, 0x58, 0x4a, 0x68, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x67, 0x64, 0x6a, 0x45, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x44, 0x63, 0x78, 0x4d, 0x44, 0x45, 0x34, 0x0a, 0x4d, 0x54, 0x49, 0x77, 0x4d, 0x44, 0x55, 0x77, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x7a, 0x49, 0x78, 0x4d, 0x44, 0x45, 0x34, 0x4d, 0x54, 0x49, 0x77, 0x4d, 0x44, 0x55, 0x77, 0x57, 0x6a, 0x41, 0x33, 0x4d, 0x52, 0x51, 0x77, 0x45, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x41, 0x74, 0x55, 0x5a, 0x57, 0x78, 0x70, 0x59, 0x56, 0x4e, 0x76, 0x62, 0x6d, 0x56, 0x79, 0x59, 0x54, 0x45, 0x66, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x77, 0x77, 0x57, 0x0a, 0x56, 0x47, 0x56, 0x73, 0x61, 0x57, 0x46, 0x54, 0x62, 0x32, 0x35, 0x6c, 0x63, 0x6d, 0x45, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x51, 0x53, 0x42, 0x32, 0x4d, 0x54, 0x43, 0x43, 0x41, 0x69, 0x49, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x50, 0x41, 0x44, 0x43, 0x43, 0x41, 0x67, 0x6f, 0x43, 0x67, 0x67, 0x49, 0x42, 0x41, 0x4d, 0x4b, 0x2b, 0x0a, 0x36, 0x79, 0x66, 0x77, 0x49, 0x61, 0x50, 0x7a, 0x61, 0x53, 0x5a, 0x56, 0x66, 0x70, 0x33, 0x46, 0x56, 0x52, 0x61, 0x52, 0x58, 0x50, 0x33, 0x76, 0x49, 0x62, 0x39, 0x54, 0x67, 0x48, 0x6f, 0x74, 0x30, 0x70, 0x47, 0x4d, 0x59, 0x7a, 0x48, 0x77, 0x37, 0x43, 0x54, 0x77, 0x77, 0x36, 0x58, 0x53, 0x63, 0x6e, 0x77, 0x51, 0x62, 0x66, 0x51, 0x33, 0x74, 0x2b, 0x58, 0x6d, 0x66, 0x48, 0x6e, 0x71, 0x6a, 0x4c, 0x57, 0x43, 0x69, 0x36, 0x35, 0x49, 0x74, 0x71, 0x77, 0x41, 0x0a, 0x33, 0x47, 0x56, 0x31, 0x37, 0x43, 0x70, 0x4e, 0x58, 0x38, 0x47, 0x48, 0x39, 0x53, 0x42, 0x6c, 0x4b, 0x34, 0x47, 0x6f, 0x52, 0x7a, 0x36, 0x4a, 0x49, 0x35, 0x55, 0x77, 0x46, 0x70, 0x42, 0x2f, 0x36, 0x46, 0x63, 0x48, 0x53, 0x4f, 0x63, 0x5a, 0x72, 0x72, 0x39, 0x46, 0x5a, 0x37, 0x45, 0x33, 0x47, 0x77, 0x59, 0x71, 0x2f, 0x74, 0x37, 0x35, 0x72, 0x48, 0x32, 0x44, 0x2b, 0x31, 0x36, 0x36, 0x35, 0x49, 0x2b, 0x58, 0x5a, 0x37, 0x35, 0x4c, 0x6a, 0x6f, 0x31, 0x6b, 0x0a, 0x42, 0x31, 0x63, 0x34, 0x56, 0x57, 0x6b, 0x30, 0x4e, 0x6a, 0x30, 0x54, 0x53, 0x4f, 0x39, 0x50, 0x34, 0x74, 0x4e, 0x6d, 0x48, 0x71, 0x54, 0x50, 0x47, 0x72, 0x64, 0x65, 0x4e, 0x6a, 0x50, 0x55, 0x74, 0x41, 0x61, 0x39, 0x47, 0x41, 0x48, 0x39, 0x64, 0x34, 0x52, 0x51, 0x41, 0x45, 0x58, 0x31, 0x6a, 0x46, 0x33, 0x6f, 0x49, 0x37, 0x78, 0x2b, 0x2f, 0x6a, 0x58, 0x68, 0x37, 0x56, 0x42, 0x37, 0x71, 0x54, 0x43, 0x4e, 0x47, 0x64, 0x4d, 0x4a, 0x6a, 0x6d, 0x68, 0x6e, 0x0a, 0x58, 0x62, 0x38, 0x38, 0x6c, 0x78, 0x68, 0x54, 0x75, 0x79, 0x6c, 0x69, 0x78, 0x63, 0x70, 0x65, 0x63, 0x73, 0x48, 0x48, 0x6c, 0x74, 0x54, 0x62, 0x4c, 0x61, 0x43, 0x30, 0x48, 0x32, 0x6b, 0x44, 0x37, 0x4f, 0x72, 0x69, 0x55, 0x50, 0x45, 0x4d, 0x50, 0x50, 0x43, 0x73, 0x38, 0x31, 0x4d, 0x74, 0x38, 0x42, 0x7a, 0x31, 0x37, 0x57, 0x77, 0x35, 0x4f, 0x58, 0x4f, 0x41, 0x46, 0x73, 0x68, 0x53, 0x73, 0x43, 0x50, 0x4e, 0x34, 0x44, 0x37, 0x63, 0x33, 0x54, 0x78, 0x48, 0x0a, 0x6f, 0x4c, 0x73, 0x31, 0x69, 0x75, 0x4b, 0x59, 0x61, 0x49, 0x75, 0x2b, 0x35, 0x62, 0x39, 0x79, 0x37, 0x74, 0x4c, 0x36, 0x70, 0x65, 0x30, 0x53, 0x37, 0x66, 0x79, 0x59, 0x47, 0x4b, 0x6b, 0x6d, 0x64, 0x74, 0x77, 0x6f, 0x53, 0x78, 0x41, 0x67, 0x48, 0x4e, 0x4e, 0x2f, 0x46, 0x6e, 0x63, 0x74, 0x37, 0x57, 0x2b, 0x41, 0x39, 0x30, 0x6d, 0x37, 0x55, 0x77, 0x57, 0x37, 0x58, 0x57, 0x6a, 0x48, 0x31, 0x4d, 0x68, 0x31, 0x46, 0x6a, 0x2b, 0x4a, 0x57, 0x6f, 0x76, 0x33, 0x0a, 0x46, 0x30, 0x66, 0x55, 0x54, 0x50, 0x48, 0x53, 0x69, 0x58, 0x6b, 0x2b, 0x54, 0x54, 0x32, 0x59, 0x71, 0x47, 0x48, 0x65, 0x4f, 0x68, 0x37, 0x53, 0x2b, 0x46, 0x34, 0x44, 0x34, 0x4d, 0x48, 0x4a, 0x48, 0x49, 0x7a, 0x54, 0x6a, 0x55, 0x33, 0x54, 0x6c, 0x54, 0x61, 0x7a, 0x4e, 0x31, 0x39, 0x6a, 0x59, 0x35, 0x73, 0x7a, 0x46, 0x50, 0x41, 0x74, 0x4a, 0x6d, 0x74, 0x54, 0x66, 0x49, 0x6d, 0x4d, 0x4d, 0x73, 0x4a, 0x75, 0x37, 0x44, 0x30, 0x68, 0x41, 0x44, 0x6e, 0x4a, 0x0a, 0x6f, 0x57, 0x6a, 0x69, 0x55, 0x49, 0x4d, 0x75, 0x73, 0x44, 0x6f, 0x72, 0x38, 0x7a, 0x61, 0x67, 0x72, 0x43, 0x2f, 0x6b, 0x62, 0x32, 0x48, 0x43, 0x55, 0x51, 0x6b, 0x35, 0x50, 0x6f, 0x74, 0x54, 0x75, 0x62, 0x74, 0x6e, 0x32, 0x74, 0x78, 0x54, 0x75, 0x58, 0x5a, 0x5a, 0x4e, 0x70, 0x31, 0x44, 0x35, 0x53, 0x44, 0x67, 0x50, 0x54, 0x4a, 0x67, 0x68, 0x53, 0x4a, 0x52, 0x74, 0x38, 0x63, 0x7a, 0x75, 0x39, 0x30, 0x56, 0x4c, 0x36, 0x52, 0x34, 0x70, 0x67, 0x64, 0x37, 0x0a, 0x67, 0x55, 0x59, 0x32, 0x42, 0x49, 0x62, 0x64, 0x65, 0x54, 0x58, 0x48, 0x6c, 0x53, 0x77, 0x37, 0x73, 0x4b, 0x4d, 0x58, 0x4e, 0x65, 0x56, 0x7a, 0x48, 0x37, 0x52, 0x63, 0x57, 0x65, 0x2f, 0x61, 0x36, 0x68, 0x42, 0x6c, 0x65, 0x33, 0x72, 0x51, 0x66, 0x35, 0x2b, 0x7a, 0x74, 0x43, 0x6f, 0x33, 0x4f, 0x33, 0x43, 0x4c, 0x6d, 0x31, 0x75, 0x35, 0x4b, 0x37, 0x66, 0x73, 0x73, 0x6c, 0x45, 0x53, 0x6c, 0x31, 0x4d, 0x70, 0x57, 0x74, 0x54, 0x77, 0x45, 0x68, 0x44, 0x63, 0x0a, 0x54, 0x77, 0x4b, 0x37, 0x45, 0x70, 0x49, 0x76, 0x59, 0x74, 0x51, 0x2f, 0x61, 0x55, 0x4e, 0x38, 0x44, 0x64, 0x62, 0x38, 0x57, 0x48, 0x55, 0x42, 0x69, 0x4a, 0x31, 0x59, 0x46, 0x6b, 0x76, 0x65, 0x75, 0x70, 0x44, 0x2f, 0x52, 0x77, 0x47, 0x4a, 0x42, 0x6d, 0x72, 0x32, 0x58, 0x37, 0x4b, 0x51, 0x61, 0x72, 0x4d, 0x43, 0x70, 0x67, 0x4b, 0x49, 0x76, 0x37, 0x4e, 0x48, 0x66, 0x69, 0x72, 0x5a, 0x31, 0x66, 0x70, 0x6f, 0x65, 0x44, 0x56, 0x4e, 0x41, 0x67, 0x4d, 0x42, 0x0a, 0x41, 0x41, 0x47, 0x6a, 0x50, 0x7a, 0x41, 0x39, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x43, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x45, 0x47, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x54, 0x77, 0x6a, 0x31, 0x6b, 0x34, 0x41, 0x4c, 0x50, 0x31, 0x6a, 0x35, 0x71, 0x57, 0x0a, 0x44, 0x4e, 0x58, 0x72, 0x2b, 0x6e, 0x75, 0x71, 0x46, 0x2b, 0x67, 0x54, 0x45, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x55, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x45, 0x41, 0x76, 0x75, 0x52, 0x63, 0x59, 0x6b, 0x34, 0x6b, 0x39, 0x41, 0x77, 0x49, 0x2f, 0x2f, 0x44, 0x54, 0x44, 0x47, 0x6a, 0x6b, 0x6b, 0x30, 0x6b, 0x69, 0x50, 0x30, 0x51, 0x6e, 0x62, 0x37, 0x74, 0x74, 0x33, 0x6f, 0x4e, 0x6d, 0x0a, 0x7a, 0x71, 0x6a, 0x4d, 0x44, 0x66, 0x7a, 0x31, 0x6d, 0x67, 0x62, 0x6c, 0x64, 0x78, 0x53, 0x52, 0x36, 0x35, 0x31, 0x42, 0x65, 0x35, 0x6b, 0x71, 0x68, 0x4f, 0x58, 0x2f, 0x2f, 0x43, 0x48, 0x42, 0x58, 0x66, 0x44, 0x6b, 0x48, 0x31, 0x65, 0x33, 0x64, 0x61, 0x6d, 0x68, 0x58, 0x77, 0x49, 0x6d, 0x2f, 0x39, 0x66, 0x48, 0x39, 0x30, 0x37, 0x65, 0x54, 0x2f, 0x6a, 0x33, 0x48, 0x45, 0x62, 0x41, 0x65, 0x6b, 0x39, 0x41, 0x4c, 0x43, 0x49, 0x31, 0x38, 0x42, 0x6d, 0x78, 0x0a, 0x30, 0x47, 0x74, 0x6e, 0x4c, 0x4c, 0x43, 0x6f, 0x34, 0x4d, 0x42, 0x41, 0x4e, 0x7a, 0x58, 0x32, 0x68, 0x46, 0x78, 0x63, 0x34, 0x36, 0x39, 0x43, 0x65, 0x50, 0x36, 0x6e, 0x79, 0x51, 0x31, 0x51, 0x36, 0x67, 0x32, 0x45, 0x64, 0x76, 0x5a, 0x52, 0x37, 0x34, 0x4e, 0x54, 0x78, 0x6e, 0x72, 0x2f, 0x44, 0x6c, 0x5a, 0x4a, 0x4c, 0x6f, 0x39, 0x36, 0x31, 0x67, 0x7a, 0x6d, 0x4a, 0x31, 0x54, 0x6a, 0x54, 0x51, 0x70, 0x67, 0x63, 0x6d, 0x4c, 0x4e, 0x6b, 0x51, 0x66, 0x57, 0x0a, 0x70, 0x62, 0x2f, 0x49, 0x6d, 0x57, 0x76, 0x74, 0x78, 0x42, 0x6e, 0x6d, 0x71, 0x30, 0x77, 0x52, 0x4f, 0x4d, 0x56, 0x76, 0x4d, 0x65, 0x4a, 0x75, 0x53, 0x63, 0x67, 0x2f, 0x64, 0x6f, 0x41, 0x6d, 0x41, 0x79, 0x59, 0x70, 0x34, 0x44, 0x62, 0x32, 0x39, 0x69, 0x42, 0x54, 0x34, 0x78, 0x64, 0x77, 0x4e, 0x42, 0x65, 0x64, 0x59, 0x32, 0x67, 0x65, 0x61, 0x2b, 0x7a, 0x44, 0x54, 0x59, 0x61, 0x34, 0x45, 0x7a, 0x41, 0x76, 0x58, 0x55, 0x59, 0x4e, 0x52, 0x30, 0x50, 0x56, 0x0a, 0x47, 0x36, 0x70, 0x5a, 0x44, 0x72, 0x6c, 0x63, 0x6a, 0x51, 0x5a, 0x49, 0x72, 0x58, 0x53, 0x48, 0x58, 0x38, 0x66, 0x38, 0x4d, 0x56, 0x52, 0x42, 0x45, 0x2b, 0x4c, 0x48, 0x49, 0x51, 0x36, 0x65, 0x34, 0x42, 0x34, 0x4e, 0x34, 0x63, 0x42, 0x37, 0x51, 0x34, 0x57, 0x51, 0x78, 0x59, 0x70, 0x59, 0x78, 0x6d, 0x55, 0x4b, 0x65, 0x46, 0x66, 0x79, 0x78, 0x69, 0x4d, 0x50, 0x41, 0x64, 0x6b, 0x67, 0x53, 0x39, 0x34, 0x50, 0x2b, 0x35, 0x4b, 0x46, 0x64, 0x53, 0x70, 0x63, 0x0a, 0x63, 0x34, 0x31, 0x74, 0x65, 0x79, 0x57, 0x52, 0x79, 0x75, 0x35, 0x46, 0x72, 0x67, 0x5a, 0x4c, 0x41, 0x4d, 0x7a, 0x54, 0x73, 0x56, 0x6c, 0x51, 0x32, 0x6a, 0x71, 0x49, 0x4f, 0x79, 0x6c, 0x44, 0x52, 0x6c, 0x36, 0x58, 0x4b, 0x31, 0x54, 0x4f, 0x55, 0x32, 0x2b, 0x4e, 0x53, 0x75, 0x65, 0x57, 0x2b, 0x72, 0x39, 0x78, 0x44, 0x6b, 0x4b, 0x4c, 0x66, 0x50, 0x30, 0x6f, 0x6f, 0x4e, 0x42, 0x49, 0x79, 0x74, 0x72, 0x45, 0x67, 0x55, 0x79, 0x37, 0x6f, 0x6e, 0x4f, 0x54, 0x0a, 0x4a, 0x73, 0x6a, 0x72, 0x44, 0x4e, 0x59, 0x6d, 0x69, 0x4c, 0x62, 0x41, 0x4a, 0x4d, 0x2b, 0x37, 0x76, 0x56, 0x76, 0x72, 0x64, 0x58, 0x33, 0x70, 0x43, 0x49, 0x36, 0x47, 0x4d, 0x79, 0x78, 0x35, 0x64, 0x77, 0x6c, 0x70, 0x70, 0x59, 0x6e, 0x38, 0x73, 0x33, 0x43, 0x51, 0x68, 0x33, 0x61, 0x50, 0x30, 0x79, 0x4b, 0x37, 0x51, 0x73, 0x36, 0x39, 0x63, 0x77, 0x73, 0x67, 0x4a, 0x69, 0x72, 0x51, 0x6d, 0x7a, 0x31, 0x77, 0x48, 0x69, 0x52, 0x73, 0x7a, 0x59, 0x64, 0x32, 0x0a, 0x71, 0x52, 0x65, 0x57, 0x74, 0x38, 0x38, 0x4e, 0x6b, 0x76, 0x75, 0x4f, 0x47, 0x4b, 0x6d, 0x59, 0x53, 0x64, 0x47, 0x65, 0x2f, 0x6d, 0x42, 0x45, 0x63, 0x69, 0x47, 0x35, 0x47, 0x65, 0x33, 0x43, 0x39, 0x54, 0x48, 0x78, 0x4f, 0x55, 0x69, 0x49, 0x6b, 0x43, 0x52, 0x31, 0x56, 0x42, 0x61, 0x74, 0x7a, 0x76, 0x54, 0x34, 0x61, 0x52, 0x52, 0x6b, 0x4f, 0x66, 0x75, 0x6a, 0x75, 0x4c, 0x70, 0x77, 0x51, 0x4d, 0x63, 0x6e, 0x48, 0x4c, 0x2f, 0x45, 0x56, 0x6c, 0x50, 0x36, 0x0a, 0x59, 0x32, 0x58, 0x51, 0x38, 0x78, 0x77, 0x4f, 0x46, 0x76, 0x56, 0x72, 0x68, 0x6c, 0x68, 0x4e, 0x47, 0x4e, 0x54, 0x6b, 0x44, 0x59, 0x36, 0x6c, 0x6e, 0x56, 0x75, 0x52, 0x33, 0x48, 0x59, 0x6b, 0x55, 0x44, 0x2f, 0x47, 0x4b, 0x76, 0x76, 0x5a, 0x74, 0x35, 0x79, 0x31, 0x31, 0x75, 0x62, 0x51, 0x32, 0x65, 0x67, 0x5a, 0x69, 0x78, 0x56, 0x78, 0x53, 0x4b, 0x32, 0x33, 0x36, 0x74, 0x68, 0x5a, 0x69, 0x4e, 0x53, 0x51, 0x76, 0x78, 0x61, 0x7a, 0x32, 0x65, 0x6d, 0x73, 0x0a, 0x57, 0x57, 0x46, 0x55, 0x79, 0x42, 0x79, 0x36, 0x79, 0x73, 0x48, 0x4b, 0x34, 0x62, 0x6b, 0x67, 0x54, 0x49, 0x38, 0x36, 0x6b, 0x34, 0x6d, 0x6c, 0x6f, 0x4d, 0x79, 0x2f, 0x30, 0x2f, 0x5a, 0x31, 0x70, 0x48, 0x57, 0x57, 0x62, 0x56, 0x59, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x54, 0x2d, 0x54, 0x65, 0x6c, 0x65, 0x53, 0x65, 0x63, 0x20, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x32, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x44, 0x77, 0x7a, 0x43, 0x43, 0x41, 0x71, 0x75, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x42, 0x41, 0x54, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x44, 0x43, 0x42, 0x67, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x52, 0x45, 0x55, 0x78, 0x4b, 0x7a, 0x41, 0x70, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x0a, 0x49, 0x6c, 0x51, 0x74, 0x55, 0x33, 0x6c, 0x7a, 0x64, 0x47, 0x56, 0x74, 0x63, 0x79, 0x42, 0x46, 0x62, 0x6e, 0x52, 0x6c, 0x63, 0x6e, 0x42, 0x79, 0x61, 0x58, 0x4e, 0x6c, 0x49, 0x46, 0x4e, 0x6c, 0x63, 0x6e, 0x5a, 0x70, 0x59, 0x32, 0x56, 0x7a, 0x49, 0x45, 0x64, 0x74, 0x59, 0x6b, 0x67, 0x78, 0x48, 0x7a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x73, 0x4d, 0x46, 0x6c, 0x51, 0x74, 0x55, 0x33, 0x6c, 0x7a, 0x64, 0x47, 0x56, 0x74, 0x63, 0x79, 0x42, 0x55, 0x0a, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x42, 0x44, 0x5a, 0x57, 0x35, 0x30, 0x5a, 0x58, 0x49, 0x78, 0x4a, 0x54, 0x41, 0x6a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x48, 0x46, 0x51, 0x74, 0x56, 0x47, 0x56, 0x73, 0x5a, 0x56, 0x4e, 0x6c, 0x59, 0x79, 0x42, 0x48, 0x62, 0x47, 0x39, 0x69, 0x59, 0x57, 0x78, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x73, 0x59, 0x58, 0x4e, 0x7a, 0x49, 0x44, 0x49, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x44, 0x67, 0x78, 0x0a, 0x4d, 0x44, 0x41, 0x78, 0x4d, 0x54, 0x41, 0x30, 0x4d, 0x44, 0x45, 0x30, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x7a, 0x4d, 0x78, 0x4d, 0x44, 0x41, 0x78, 0x4d, 0x6a, 0x4d, 0x31, 0x4f, 0x54, 0x55, 0x35, 0x57, 0x6a, 0x43, 0x42, 0x67, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x52, 0x45, 0x55, 0x78, 0x4b, 0x7a, 0x41, 0x70, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x49, 0x6c, 0x51, 0x74, 0x55, 0x33, 0x6c, 0x7a, 0x0a, 0x64, 0x47, 0x56, 0x74, 0x63, 0x79, 0x42, 0x46, 0x62, 0x6e, 0x52, 0x6c, 0x63, 0x6e, 0x42, 0x79, 0x61, 0x58, 0x4e, 0x6c, 0x49, 0x46, 0x4e, 0x6c, 0x63, 0x6e, 0x5a, 0x70, 0x59, 0x32, 0x56, 0x7a, 0x49, 0x45, 0x64, 0x74, 0x59, 0x6b, 0x67, 0x78, 0x48, 0x7a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x73, 0x4d, 0x46, 0x6c, 0x51, 0x74, 0x55, 0x33, 0x6c, 0x7a, 0x64, 0x47, 0x56, 0x74, 0x63, 0x79, 0x42, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x42, 0x44, 0x0a, 0x5a, 0x57, 0x35, 0x30, 0x5a, 0x58, 0x49, 0x78, 0x4a, 0x54, 0x41, 0x6a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x48, 0x46, 0x51, 0x74, 0x56, 0x47, 0x56, 0x73, 0x5a, 0x56, 0x4e, 0x6c, 0x59, 0x79, 0x42, 0x48, 0x62, 0x47, 0x39, 0x69, 0x59, 0x57, 0x78, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x73, 0x59, 0x58, 0x4e, 0x7a, 0x49, 0x44, 0x49, 0x77, 0x67, 0x67, 0x45, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x0a, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x42, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x45, 0x4b, 0x41, 0x6f, 0x49, 0x42, 0x41, 0x51, 0x43, 0x71, 0x58, 0x39, 0x6f, 0x62, 0x58, 0x2b, 0x68, 0x7a, 0x6b, 0x65, 0x58, 0x61, 0x58, 0x50, 0x53, 0x69, 0x35, 0x6b, 0x66, 0x6c, 0x38, 0x32, 0x68, 0x56, 0x59, 0x41, 0x55, 0x64, 0x41, 0x71, 0x53, 0x7a, 0x6d, 0x31, 0x6e, 0x7a, 0x48, 0x6f, 0x71, 0x76, 0x4e, 0x4b, 0x33, 0x38, 0x44, 0x63, 0x4c, 0x5a, 0x0a, 0x53, 0x42, 0x6e, 0x75, 0x61, 0x59, 0x2f, 0x4a, 0x49, 0x50, 0x77, 0x68, 0x71, 0x67, 0x63, 0x5a, 0x37, 0x62, 0x42, 0x63, 0x72, 0x47, 0x58, 0x48, 0x58, 0x2b, 0x30, 0x43, 0x66, 0x48, 0x74, 0x38, 0x4c, 0x52, 0x76, 0x57, 0x75, 0x72, 0x6d, 0x41, 0x77, 0x68, 0x69, 0x43, 0x46, 0x6f, 0x54, 0x36, 0x5a, 0x72, 0x41, 0x49, 0x78, 0x6c, 0x51, 0x6a, 0x67, 0x65, 0x54, 0x4e, 0x75, 0x55, 0x6b, 0x2f, 0x39, 0x6b, 0x39, 0x75, 0x4e, 0x30, 0x67, 0x6f, 0x4f, 0x41, 0x2f, 0x46, 0x0a, 0x76, 0x75, 0x64, 0x6f, 0x63, 0x50, 0x30, 0x35, 0x6c, 0x30, 0x33, 0x53, 0x78, 0x35, 0x69, 0x52, 0x55, 0x4b, 0x72, 0x45, 0x52, 0x4c, 0x4d, 0x6a, 0x66, 0x54, 0x6c, 0x48, 0x36, 0x56, 0x4a, 0x69, 0x31, 0x68, 0x4b, 0x54, 0x58, 0x72, 0x63, 0x78, 0x6c, 0x6b, 0x49, 0x46, 0x2b, 0x33, 0x61, 0x6e, 0x48, 0x71, 0x50, 0x31, 0x77, 0x76, 0x7a, 0x70, 0x65, 0x73, 0x56, 0x73, 0x71, 0x58, 0x46, 0x50, 0x36, 0x73, 0x74, 0x34, 0x76, 0x47, 0x43, 0x76, 0x78, 0x39, 0x37, 0x30, 0x0a, 0x32, 0x63, 0x75, 0x2b, 0x66, 0x6a, 0x4f, 0x6c, 0x62, 0x70, 0x53, 0x44, 0x38, 0x44, 0x54, 0x36, 0x49, 0x61, 0x76, 0x71, 0x6a, 0x6e, 0x4b, 0x67, 0x50, 0x36, 0x54, 0x65, 0x4d, 0x46, 0x76, 0x76, 0x68, 0x6b, 0x31, 0x71, 0x6c, 0x56, 0x74, 0x44, 0x52, 0x4b, 0x67, 0x51, 0x46, 0x52, 0x7a, 0x6c, 0x41, 0x56, 0x66, 0x46, 0x6d, 0x50, 0x48, 0x6d, 0x42, 0x69, 0x69, 0x52, 0x71, 0x69, 0x44, 0x46, 0x74, 0x31, 0x4d, 0x6d, 0x55, 0x55, 0x4f, 0x79, 0x43, 0x78, 0x47, 0x56, 0x0a, 0x57, 0x4f, 0x48, 0x41, 0x44, 0x33, 0x62, 0x5a, 0x77, 0x49, 0x31, 0x38, 0x67, 0x66, 0x4e, 0x79, 0x63, 0x4a, 0x35, 0x76, 0x2f, 0x68, 0x71, 0x4f, 0x32, 0x56, 0x38, 0x31, 0x78, 0x72, 0x4a, 0x76, 0x4e, 0x48, 0x79, 0x2b, 0x53, 0x45, 0x2f, 0x69, 0x57, 0x6a, 0x6e, 0x58, 0x32, 0x4a, 0x31, 0x34, 0x6e, 0x70, 0x2b, 0x47, 0x50, 0x67, 0x4e, 0x65, 0x47, 0x59, 0x74, 0x45, 0x6f, 0x74, 0x58, 0x48, 0x41, 0x67, 0x4d, 0x42, 0x41, 0x41, 0x47, 0x6a, 0x51, 0x6a, 0x42, 0x41, 0x0a, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x45, 0x47, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x53, 0x2f, 0x57, 0x53, 0x41, 0x32, 0x41, 0x48, 0x6d, 0x67, 0x6f, 0x43, 0x4a, 0x72, 0x6a, 0x4e, 0x58, 0x79, 0x0a, 0x59, 0x64, 0x4b, 0x34, 0x4c, 0x4d, 0x75, 0x43, 0x53, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x51, 0x45, 0x41, 0x4d, 0x51, 0x4f, 0x69, 0x59, 0x51, 0x73, 0x66, 0x64, 0x4f, 0x68, 0x79, 0x4e, 0x73, 0x5a, 0x74, 0x2b, 0x55, 0x32, 0x65, 0x2b, 0x69, 0x4b, 0x6f, 0x34, 0x59, 0x46, 0x57, 0x7a, 0x38, 0x32, 0x37, 0x6e, 0x2b, 0x71, 0x72, 0x6b, 0x52, 0x6b, 0x34, 0x0a, 0x72, 0x36, 0x70, 0x38, 0x46, 0x55, 0x33, 0x7a, 0x74, 0x71, 0x4f, 0x4e, 0x70, 0x66, 0x53, 0x4f, 0x39, 0x6b, 0x53, 0x70, 0x70, 0x2b, 0x67, 0x68, 0x6c, 0x61, 0x30, 0x2b, 0x41, 0x47, 0x49, 0x57, 0x69, 0x50, 0x41, 0x43, 0x75, 0x76, 0x78, 0x68, 0x49, 0x2b, 0x59, 0x7a, 0x6d, 0x7a, 0x42, 0x36, 0x61, 0x7a, 0x5a, 0x69, 0x65, 0x36, 0x30, 0x45, 0x49, 0x34, 0x52, 0x59, 0x5a, 0x65, 0x4c, 0x62, 0x4b, 0x34, 0x72, 0x6e, 0x4a, 0x56, 0x4d, 0x33, 0x59, 0x6c, 0x4e, 0x66, 0x0a, 0x76, 0x4e, 0x6f, 0x42, 0x59, 0x69, 0x6d, 0x69, 0x70, 0x69, 0x64, 0x78, 0x35, 0x6a, 0x6f, 0x69, 0x66, 0x73, 0x46, 0x76, 0x48, 0x5a, 0x56, 0x77, 0x49, 0x45, 0x6f, 0x48, 0x4e, 0x4e, 0x2f, 0x71, 0x2f, 0x78, 0x57, 0x41, 0x35, 0x62, 0x72, 0x58, 0x65, 0x74, 0x68, 0x62, 0x64, 0x58, 0x77, 0x46, 0x65, 0x69, 0x6c, 0x48, 0x66, 0x6b, 0x43, 0x6f, 0x4d, 0x52, 0x4e, 0x33, 0x7a, 0x55, 0x41, 0x37, 0x74, 0x46, 0x46, 0x48, 0x65, 0x69, 0x34, 0x52, 0x34, 0x30, 0x63, 0x52, 0x0a, 0x33, 0x70, 0x31, 0x6d, 0x30, 0x49, 0x76, 0x56, 0x56, 0x47, 0x62, 0x36, 0x67, 0x31, 0x58, 0x71, 0x66, 0x4d, 0x49, 0x70, 0x69, 0x52, 0x76, 0x70, 0x62, 0x37, 0x50, 0x4f, 0x34, 0x67, 0x57, 0x45, 0x79, 0x53, 0x38, 0x2b, 0x65, 0x49, 0x56, 0x69, 0x62, 0x73, 0x6c, 0x66, 0x77, 0x58, 0x68, 0x6a, 0x64, 0x46, 0x6a, 0x41, 0x53, 0x42, 0x67, 0x4d, 0x6d, 0x54, 0x6e, 0x72, 0x70, 0x4d, 0x77, 0x61, 0x74, 0x58, 0x6c, 0x61, 0x6a, 0x52, 0x57, 0x63, 0x32, 0x42, 0x51, 0x4e, 0x0a, 0x39, 0x6e, 0x6f, 0x48, 0x56, 0x38, 0x63, 0x69, 0x67, 0x77, 0x55, 0x74, 0x50, 0x4a, 0x73, 0x6c, 0x4a, 0x6a, 0x30, 0x59, 0x73, 0x36, 0x6c, 0x44, 0x66, 0x4d, 0x6a, 0x49, 0x71, 0x32, 0x53, 0x50, 0x44, 0x71, 0x4f, 0x2f, 0x6e, 0x42, 0x75, 0x64, 0x4d, 0x4e, 0x76, 0x61, 0x30, 0x42, 0x6b, 0x75, 0x71, 0x6a, 0x7a, 0x78, 0x2b, 0x7a, 0x4f, 0x41, 0x64, 0x75, 0x54, 0x4e, 0x72, 0x52, 0x6c, 0x50, 0x42, 0x53, 0x65, 0x4f, 0x45, 0x36, 0x46, 0x75, 0x77, 0x67, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x41, 0x74, 0x6f, 0x73, 0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x32, 0x30, 0x31, 0x31, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x44, 0x64, 0x7a, 0x43, 0x43, 0x41, 0x6c, 0x2b, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x49, 0x58, 0x44, 0x50, 0x4c, 0x59, 0x69, 0x78, 0x66, 0x73, 0x7a, 0x49, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x77, 0x50, 0x44, 0x45, 0x65, 0x4d, 0x42, 0x77, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x77, 0x77, 0x56, 0x51, 0x58, 0x52, 0x76, 0x63, 0x79, 0x42, 0x55, 0x0a, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x47, 0x56, 0x6b, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x41, 0x79, 0x4d, 0x44, 0x45, 0x78, 0x4d, 0x51, 0x30, 0x77, 0x43, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x41, 0x52, 0x42, 0x64, 0x47, 0x39, 0x7a, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x45, 0x52, 0x54, 0x41, 0x65, 0x46, 0x77, 0x30, 0x78, 0x4d, 0x54, 0x41, 0x33, 0x4d, 0x44, 0x63, 0x78, 0x4e, 0x44, 0x55, 0x34, 0x0a, 0x4d, 0x7a, 0x42, 0x61, 0x46, 0x77, 0x30, 0x7a, 0x4d, 0x44, 0x45, 0x79, 0x4d, 0x7a, 0x45, 0x79, 0x4d, 0x7a, 0x55, 0x35, 0x4e, 0x54, 0x6c, 0x61, 0x4d, 0x44, 0x77, 0x78, 0x48, 0x6a, 0x41, 0x63, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x46, 0x55, 0x46, 0x30, 0x62, 0x33, 0x4d, 0x67, 0x56, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x52, 0x6c, 0x5a, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x4d, 0x6a, 0x41, 0x78, 0x4d, 0x54, 0x45, 0x4e, 0x4d, 0x41, 0x73, 0x47, 0x0a, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x45, 0x51, 0x58, 0x52, 0x76, 0x63, 0x7a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x52, 0x45, 0x55, 0x77, 0x67, 0x67, 0x45, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x42, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x45, 0x4b, 0x41, 0x6f, 0x49, 0x42, 0x41, 0x51, 0x43, 0x56, 0x0a, 0x68, 0x54, 0x75, 0x58, 0x62, 0x79, 0x6f, 0x37, 0x4c, 0x6a, 0x76, 0x50, 0x70, 0x76, 0x4d, 0x70, 0x4e, 0x62, 0x37, 0x50, 0x47, 0x4b, 0x77, 0x2b, 0x71, 0x74, 0x6e, 0x34, 0x54, 0x61, 0x41, 0x2b, 0x47, 0x6b, 0x65, 0x35, 0x76, 0x4a, 0x72, 0x66, 0x38, 0x76, 0x37, 0x4d, 0x50, 0x6b, 0x66, 0x6f, 0x65, 0x70, 0x62, 0x43, 0x4a, 0x49, 0x34, 0x31, 0x39, 0x4b, 0x6b, 0x4d, 0x2f, 0x49, 0x4c, 0x39, 0x62, 0x63, 0x46, 0x79, 0x59, 0x69, 0x65, 0x39, 0x36, 0x6d, 0x76, 0x72, 0x0a, 0x35, 0x34, 0x72, 0x4d, 0x56, 0x44, 0x36, 0x51, 0x55, 0x4d, 0x2b, 0x41, 0x31, 0x4a, 0x58, 0x37, 0x36, 0x4c, 0x57, 0x43, 0x31, 0x42, 0x54, 0x46, 0x74, 0x71, 0x6c, 0x56, 0x4a, 0x56, 0x66, 0x62, 0x73, 0x56, 0x44, 0x32, 0x73, 0x47, 0x42, 0x6b, 0x57, 0x58, 0x70, 0x70, 0x7a, 0x77, 0x4f, 0x33, 0x62, 0x77, 0x32, 0x2b, 0x79, 0x6a, 0x35, 0x76, 0x64, 0x48, 0x4c, 0x71, 0x71, 0x6a, 0x41, 0x71, 0x63, 0x32, 0x4b, 0x2b, 0x53, 0x5a, 0x46, 0x68, 0x79, 0x42, 0x48, 0x2b, 0x0a, 0x44, 0x67, 0x4d, 0x71, 0x39, 0x32, 0x6f, 0x67, 0x33, 0x41, 0x49, 0x56, 0x44, 0x56, 0x34, 0x56, 0x61, 0x76, 0x7a, 0x6a, 0x67, 0x73, 0x47, 0x31, 0x78, 0x5a, 0x31, 0x6b, 0x43, 0x57, 0x79, 0x6a, 0x57, 0x5a, 0x67, 0x48, 0x4a, 0x38, 0x63, 0x62, 0x6c, 0x69, 0x74, 0x68, 0x64, 0x48, 0x46, 0x73, 0x51, 0x2f, 0x48, 0x33, 0x4e, 0x59, 0x6b, 0x51, 0x34, 0x4a, 0x37, 0x73, 0x56, 0x61, 0x45, 0x33, 0x49, 0x71, 0x4b, 0x48, 0x42, 0x41, 0x55, 0x73, 0x52, 0x33, 0x32, 0x30, 0x0a, 0x48, 0x4c, 0x6c, 0x69, 0x4b, 0x57, 0x59, 0x6f, 0x79, 0x72, 0x66, 0x68, 0x6b, 0x2f, 0x57, 0x6b, 0x6c, 0x41, 0x4f, 0x5a, 0x75, 0x58, 0x43, 0x46, 0x74, 0x65, 0x5a, 0x49, 0x36, 0x6f, 0x31, 0x51, 0x2f, 0x4e, 0x6e, 0x65, 0x7a, 0x47, 0x38, 0x48, 0x44, 0x74, 0x30, 0x4c, 0x63, 0x70, 0x32, 0x41, 0x4d, 0x42, 0x59, 0x48, 0x6c, 0x54, 0x38, 0x6f, 0x44, 0x76, 0x33, 0x46, 0x64, 0x55, 0x39, 0x54, 0x31, 0x6e, 0x53, 0x61, 0x74, 0x43, 0x51, 0x75, 0x6a, 0x67, 0x4b, 0x52, 0x0a, 0x7a, 0x33, 0x62, 0x46, 0x6d, 0x78, 0x35, 0x56, 0x64, 0x4a, 0x78, 0x34, 0x49, 0x62, 0x48, 0x77, 0x4c, 0x66, 0x45, 0x4c, 0x6e, 0x38, 0x4c, 0x56, 0x6c, 0x68, 0x67, 0x66, 0x38, 0x46, 0x51, 0x69, 0x65, 0x6f, 0x77, 0x48, 0x41, 0x67, 0x4d, 0x42, 0x41, 0x41, 0x47, 0x6a, 0x66, 0x54, 0x42, 0x37, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x53, 0x6e, 0x70, 0x51, 0x61, 0x78, 0x4c, 0x4b, 0x59, 0x4a, 0x59, 0x4f, 0x37, 0x52, 0x0a, 0x6c, 0x2b, 0x6c, 0x77, 0x72, 0x72, 0x77, 0x37, 0x47, 0x57, 0x7a, 0x62, 0x49, 0x54, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x42, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x49, 0x77, 0x51, 0x59, 0x4d, 0x42, 0x61, 0x41, 0x46, 0x4b, 0x65, 0x6c, 0x42, 0x72, 0x45, 0x73, 0x70, 0x67, 0x6c, 0x67, 0x37, 0x74, 0x47, 0x58, 0x36, 0x58, 0x43, 0x75, 0x76, 0x44, 0x73, 0x5a, 0x0a, 0x62, 0x4e, 0x73, 0x68, 0x4d, 0x42, 0x67, 0x47, 0x41, 0x31, 0x55, 0x64, 0x49, 0x41, 0x51, 0x52, 0x4d, 0x41, 0x38, 0x77, 0x44, 0x51, 0x59, 0x4c, 0x4b, 0x77, 0x59, 0x42, 0x42, 0x41, 0x47, 0x77, 0x4c, 0x51, 0x4d, 0x45, 0x41, 0x51, 0x45, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x47, 0x47, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x0a, 0x43, 0x77, 0x55, 0x41, 0x41, 0x34, 0x49, 0x42, 0x41, 0x51, 0x41, 0x6d, 0x64, 0x7a, 0x54, 0x62, 0x6c, 0x45, 0x69, 0x47, 0x4b, 0x6b, 0x47, 0x64, 0x4c, 0x44, 0x34, 0x47, 0x6b, 0x47, 0x44, 0x45, 0x6a, 0x4b, 0x77, 0x4c, 0x56, 0x4c, 0x67, 0x66, 0x75, 0x58, 0x76, 0x54, 0x42, 0x7a, 0x6e, 0x6b, 0x2b, 0x6a, 0x35, 0x37, 0x73, 0x6a, 0x31, 0x4f, 0x37, 0x5a, 0x38, 0x6a, 0x76, 0x5a, 0x66, 0x7a, 0x61, 0x31, 0x7a, 0x76, 0x37, 0x76, 0x31, 0x41, 0x70, 0x74, 0x2b, 0x68, 0x0a, 0x6b, 0x36, 0x45, 0x4b, 0x68, 0x71, 0x7a, 0x76, 0x49, 0x4e, 0x42, 0x35, 0x41, 0x62, 0x31, 0x34, 0x39, 0x78, 0x6e, 0x59, 0x4a, 0x44, 0x45, 0x30, 0x42, 0x41, 0x47, 0x6d, 0x75, 0x68, 0x57, 0x61, 0x77, 0x79, 0x66, 0x63, 0x32, 0x45, 0x38, 0x50, 0x7a, 0x42, 0x68, 0x6a, 0x2f, 0x35, 0x6b, 0x50, 0x44, 0x70, 0x46, 0x72, 0x64, 0x52, 0x62, 0x68, 0x49, 0x66, 0x7a, 0x59, 0x4a, 0x73, 0x64, 0x48, 0x74, 0x36, 0x62, 0x50, 0x57, 0x48, 0x4a, 0x78, 0x66, 0x72, 0x72, 0x68, 0x0a, 0x54, 0x5a, 0x56, 0x48, 0x4f, 0x38, 0x6d, 0x76, 0x62, 0x61, 0x47, 0x30, 0x77, 0x65, 0x79, 0x4a, 0x39, 0x72, 0x51, 0x50, 0x4f, 0x4c, 0x58, 0x69, 0x5a, 0x4e, 0x77, 0x6c, 0x7a, 0x36, 0x62, 0x62, 0x36, 0x35, 0x70, 0x63, 0x6d, 0x61, 0x48, 0x46, 0x43, 0x4e, 0x37, 0x39, 0x35, 0x74, 0x72, 0x56, 0x31, 0x6c, 0x70, 0x46, 0x44, 0x4d, 0x53, 0x33, 0x77, 0x72, 0x55, 0x55, 0x37, 0x37, 0x51, 0x52, 0x2f, 0x77, 0x34, 0x56, 0x74, 0x66, 0x58, 0x31, 0x32, 0x38, 0x61, 0x39, 0x0a, 0x36, 0x31, 0x71, 0x6e, 0x38, 0x46, 0x59, 0x69, 0x71, 0x54, 0x78, 0x6c, 0x56, 0x4d, 0x59, 0x56, 0x71, 0x4c, 0x32, 0x47, 0x6e, 0x73, 0x32, 0x44, 0x6c, 0x6d, 0x68, 0x36, 0x63, 0x59, 0x47, 0x4a, 0x34, 0x51, 0x76, 0x68, 0x36, 0x68, 0x45, 0x62, 0x61, 0x41, 0x6a, 0x4d, 0x61, 0x5a, 0x37, 0x73, 0x6e, 0x6b, 0x47, 0x65, 0x52, 0x44, 0x49, 0x6d, 0x65, 0x75, 0x4b, 0x48, 0x43, 0x6e, 0x45, 0x39, 0x36, 0x2b, 0x52, 0x61, 0x70, 0x4e, 0x4c, 0x62, 0x78, 0x63, 0x33, 0x47, 0x0a, 0x33, 0x6d, 0x42, 0x2f, 0x75, 0x66, 0x4e, 0x50, 0x52, 0x4a, 0x4c, 0x76, 0x4b, 0x72, 0x63, 0x59, 0x50, 0x71, 0x63, 0x5a, 0x32, 0x51, 0x74, 0x39, 0x73, 0x54, 0x64, 0x42, 0x51, 0x72, 0x43, 0x36, 0x59, 0x42, 0x33, 0x79, 0x2f, 0x67, 0x6b, 0x52, 0x73, 0x50, 0x43, 0x48, 0x65, 0x36, 0x65, 0x64, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x51, 0x75, 0x6f, 0x56, 0x61, 0x64, 0x69, 0x73, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x31, 0x20, 0x47, 0x33, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x59, 0x44, 0x43, 0x43, 0x41, 0x30, 0x69, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x55, 0x65, 0x46, 0x68, 0x66, 0x4c, 0x71, 0x30, 0x73, 0x47, 0x55, 0x76, 0x6a, 0x4e, 0x77, 0x63, 0x31, 0x4e, 0x42, 0x4d, 0x6f, 0x74, 0x5a, 0x62, 0x55, 0x5a, 0x5a, 0x4d, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x77, 0x53, 0x44, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x0a, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x51, 0x6b, 0x30, 0x78, 0x47, 0x54, 0x41, 0x58, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x45, 0x46, 0x46, 0x31, 0x62, 0x31, 0x5a, 0x68, 0x5a, 0x47, 0x6c, 0x7a, 0x49, 0x45, 0x78, 0x70, 0x62, 0x57, 0x6c, 0x30, 0x5a, 0x57, 0x51, 0x78, 0x48, 0x6a, 0x41, 0x63, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x46, 0x56, 0x46, 0x31, 0x62, 0x31, 0x5a, 0x68, 0x5a, 0x47, 0x6c, 0x7a, 0x49, 0x46, 0x4a, 0x76, 0x0a, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x67, 0x4d, 0x53, 0x42, 0x48, 0x4d, 0x7a, 0x41, 0x65, 0x46, 0x77, 0x30, 0x78, 0x4d, 0x6a, 0x41, 0x78, 0x4d, 0x54, 0x49, 0x78, 0x4e, 0x7a, 0x49, 0x33, 0x4e, 0x44, 0x52, 0x61, 0x46, 0x77, 0x30, 0x30, 0x4d, 0x6a, 0x41, 0x78, 0x4d, 0x54, 0x49, 0x78, 0x4e, 0x7a, 0x49, 0x33, 0x4e, 0x44, 0x52, 0x61, 0x4d, 0x45, 0x67, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6b, 0x4a, 0x4e, 0x0a, 0x4d, 0x52, 0x6b, 0x77, 0x46, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x78, 0x42, 0x52, 0x64, 0x57, 0x39, 0x57, 0x59, 0x57, 0x52, 0x70, 0x63, 0x79, 0x42, 0x4d, 0x61, 0x57, 0x31, 0x70, 0x64, 0x47, 0x56, 0x6b, 0x4d, 0x52, 0x34, 0x77, 0x48, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x56, 0x52, 0x64, 0x57, 0x39, 0x57, 0x59, 0x57, 0x52, 0x70, 0x63, 0x79, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x42, 0x49, 0x44, 0x45, 0x67, 0x0a, 0x52, 0x7a, 0x4d, 0x77, 0x67, 0x67, 0x49, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x49, 0x4b, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x43, 0x67, 0x76, 0x6c, 0x41, 0x51, 0x6a, 0x75, 0x6e, 0x79, 0x62, 0x45, 0x43, 0x30, 0x42, 0x4a, 0x79, 0x46, 0x75, 0x54, 0x48, 0x4b, 0x33, 0x43, 0x33, 0x6b, 0x45, 0x61, 0x6b, 0x45, 0x0a, 0x50, 0x42, 0x74, 0x56, 0x77, 0x65, 0x64, 0x59, 0x4d, 0x42, 0x30, 0x6b, 0x74, 0x4d, 0x50, 0x76, 0x68, 0x64, 0x36, 0x4d, 0x4c, 0x4f, 0x48, 0x42, 0x50, 0x64, 0x2b, 0x43, 0x35, 0x6b, 0x2b, 0x74, 0x52, 0x34, 0x64, 0x73, 0x37, 0x46, 0x74, 0x4a, 0x77, 0x55, 0x72, 0x56, 0x75, 0x34, 0x2f, 0x73, 0x68, 0x36, 0x78, 0x2f, 0x67, 0x70, 0x71, 0x47, 0x37, 0x44, 0x30, 0x44, 0x6d, 0x56, 0x49, 0x42, 0x30, 0x6a, 0x57, 0x65, 0x72, 0x4e, 0x72, 0x77, 0x55, 0x38, 0x6c, 0x6d, 0x0a, 0x50, 0x4e, 0x53, 0x73, 0x41, 0x67, 0x48, 0x61, 0x4a, 0x4e, 0x4d, 0x37, 0x71, 0x41, 0x4a, 0x47, 0x72, 0x36, 0x51, 0x63, 0x34, 0x2f, 0x68, 0x7a, 0x57, 0x48, 0x61, 0x33, 0x39, 0x67, 0x36, 0x51, 0x44, 0x62, 0x58, 0x77, 0x7a, 0x38, 0x7a, 0x36, 0x2b, 0x63, 0x5a, 0x4d, 0x35, 0x63, 0x4f, 0x47, 0x4d, 0x41, 0x71, 0x4e, 0x46, 0x33, 0x34, 0x31, 0x36, 0x38, 0x58, 0x66, 0x75, 0x77, 0x36, 0x63, 0x77, 0x49, 0x32, 0x48, 0x34, 0x34, 0x67, 0x34, 0x68, 0x57, 0x66, 0x36, 0x0a, 0x50, 0x73, 0x65, 0x72, 0x34, 0x42, 0x4f, 0x63, 0x42, 0x52, 0x69, 0x59, 0x7a, 0x35, 0x50, 0x31, 0x73, 0x5a, 0x4b, 0x30, 0x2f, 0x43, 0x50, 0x54, 0x7a, 0x39, 0x58, 0x45, 0x4a, 0x30, 0x6e, 0x67, 0x6e, 0x6a, 0x79, 0x62, 0x43, 0x4b, 0x4f, 0x4c, 0x58, 0x53, 0x6f, 0x68, 0x34, 0x50, 0x77, 0x35, 0x71, 0x6c, 0x50, 0x61, 0x66, 0x58, 0x37, 0x50, 0x47, 0x67, 0x6c, 0x54, 0x76, 0x46, 0x30, 0x46, 0x42, 0x4d, 0x2b, 0x68, 0x53, 0x6f, 0x2b, 0x4c, 0x64, 0x6f, 0x49, 0x4e, 0x0a, 0x6f, 0x66, 0x6a, 0x53, 0x78, 0x78, 0x52, 0x33, 0x57, 0x35, 0x41, 0x32, 0x42, 0x34, 0x47, 0x62, 0x50, 0x67, 0x62, 0x36, 0x55, 0x6c, 0x35, 0x6a, 0x78, 0x61, 0x59, 0x41, 0x2f, 0x71, 0x58, 0x70, 0x55, 0x68, 0x74, 0x53, 0x74, 0x5a, 0x49, 0x35, 0x63, 0x67, 0x4d, 0x4a, 0x59, 0x72, 0x32, 0x77, 0x59, 0x42, 0x5a, 0x75, 0x70, 0x74, 0x30, 0x6c, 0x77, 0x67, 0x4e, 0x6d, 0x33, 0x66, 0x4d, 0x45, 0x30, 0x55, 0x44, 0x69, 0x54, 0x6f, 0x75, 0x47, 0x39, 0x47, 0x2f, 0x6c, 0x0a, 0x67, 0x36, 0x41, 0x6e, 0x68, 0x46, 0x34, 0x45, 0x77, 0x66, 0x57, 0x51, 0x76, 0x54, 0x41, 0x39, 0x78, 0x4f, 0x2b, 0x6f, 0x61, 0x62, 0x77, 0x34, 0x6d, 0x36, 0x53, 0x6b, 0x6c, 0x74, 0x46, 0x69, 0x32, 0x6d, 0x6e, 0x41, 0x41, 0x5a, 0x61, 0x75, 0x79, 0x38, 0x52, 0x52, 0x4e, 0x4f, 0x6f, 0x4d, 0x71, 0x76, 0x38, 0x68, 0x6a, 0x6c, 0x6d, 0x50, 0x53, 0x6c, 0x7a, 0x6b, 0x59, 0x5a, 0x71, 0x6e, 0x30, 0x75, 0x6b, 0x71, 0x65, 0x49, 0x31, 0x52, 0x50, 0x54, 0x6f, 0x56, 0x0a, 0x37, 0x71, 0x4a, 0x5a, 0x6a, 0x71, 0x6c, 0x63, 0x33, 0x73, 0x58, 0x35, 0x6b, 0x43, 0x4c, 0x6c, 0x69, 0x45, 0x56, 0x78, 0x33, 0x5a, 0x47, 0x5a, 0x62, 0x48, 0x71, 0x66, 0x50, 0x54, 0x32, 0x59, 0x66, 0x46, 0x37, 0x32, 0x76, 0x68, 0x5a, 0x6f, 0x6f, 0x46, 0x36, 0x75, 0x43, 0x79, 0x50, 0x38, 0x57, 0x67, 0x2b, 0x71, 0x49, 0x6e, 0x59, 0x74, 0x79, 0x61, 0x45, 0x51, 0x48, 0x65, 0x54, 0x54, 0x52, 0x43, 0x4f, 0x51, 0x69, 0x4a, 0x2f, 0x47, 0x4b, 0x75, 0x62, 0x58, 0x0a, 0x39, 0x5a, 0x71, 0x7a, 0x57, 0x42, 0x34, 0x76, 0x4d, 0x49, 0x6b, 0x49, 0x47, 0x31, 0x53, 0x69, 0x74, 0x5a, 0x67, 0x6a, 0x37, 0x41, 0x68, 0x33, 0x48, 0x4a, 0x56, 0x64, 0x59, 0x64, 0x48, 0x4c, 0x69, 0x5a, 0x78, 0x66, 0x6f, 0x6b, 0x71, 0x52, 0x6d, 0x75, 0x38, 0x68, 0x71, 0x6b, 0x6b, 0x57, 0x43, 0x4b, 0x69, 0x39, 0x59, 0x53, 0x67, 0x78, 0x79, 0x58, 0x53, 0x74, 0x68, 0x66, 0x62, 0x5a, 0x78, 0x62, 0x47, 0x4c, 0x30, 0x65, 0x55, 0x51, 0x4d, 0x6b, 0x31, 0x66, 0x0a, 0x69, 0x79, 0x41, 0x36, 0x50, 0x45, 0x6b, 0x66, 0x4d, 0x34, 0x56, 0x5a, 0x44, 0x64, 0x76, 0x4c, 0x43, 0x58, 0x56, 0x44, 0x61, 0x58, 0x50, 0x37, 0x61, 0x33, 0x46, 0x39, 0x38, 0x4e, 0x2f, 0x45, 0x54, 0x48, 0x33, 0x47, 0x6f, 0x79, 0x37, 0x49, 0x6c, 0x58, 0x6e, 0x4c, 0x63, 0x36, 0x4b, 0x4f, 0x54, 0x6b, 0x30, 0x6b, 0x2b, 0x31, 0x37, 0x6b, 0x42, 0x4c, 0x35, 0x79, 0x47, 0x36, 0x59, 0x6e, 0x4c, 0x55, 0x6c, 0x61, 0x6d, 0x58, 0x72, 0x58, 0x58, 0x41, 0x6b, 0x67, 0x0a, 0x74, 0x33, 0x2b, 0x55, 0x75, 0x55, 0x2f, 0x78, 0x44, 0x52, 0x78, 0x65, 0x69, 0x45, 0x49, 0x62, 0x45, 0x62, 0x66, 0x6e, 0x6b, 0x64, 0x75, 0x65, 0x62, 0x50, 0x52, 0x71, 0x33, 0x34, 0x77, 0x47, 0x6d, 0x41, 0x4f, 0x74, 0x7a, 0x43, 0x6a, 0x76, 0x70, 0x55, 0x66, 0x7a, 0x55, 0x77, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x0a, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x42, 0x6a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x6f, 0x35, 0x66, 0x57, 0x38, 0x31, 0x36, 0x69, 0x45, 0x4f, 0x47, 0x72, 0x52, 0x5a, 0x38, 0x38, 0x46, 0x32, 0x51, 0x38, 0x37, 0x67, 0x46, 0x77, 0x6e, 0x4d, 0x77, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x0a, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x42, 0x41, 0x42, 0x6a, 0x36, 0x57, 0x33, 0x58, 0x38, 0x50, 0x6e, 0x72, 0x48, 0x58, 0x33, 0x66, 0x48, 0x79, 0x74, 0x2f, 0x50, 0x58, 0x38, 0x4d, 0x53, 0x78, 0x45, 0x42, 0x64, 0x31, 0x44, 0x4b, 0x71, 0x75, 0x47, 0x72, 0x58, 0x31, 0x52, 0x55, 0x56, 0x52, 0x70, 0x67, 0x6a, 0x70, 0x65, 0x61, 0x51, 0x57, 0x78, 0x69, 0x5a, 0x54, 0x4f, 0x4f, 0x74, 0x51, 0x71, 0x4f, 0x43, 0x0a, 0x4d, 0x54, 0x61, 0x49, 0x7a, 0x65, 0x6e, 0x37, 0x78, 0x41, 0x53, 0x57, 0x53, 0x49, 0x73, 0x42, 0x78, 0x34, 0x30, 0x42, 0x7a, 0x31, 0x73, 0x7a, 0x42, 0x70, 0x5a, 0x47, 0x5a, 0x6e, 0x51, 0x64, 0x54, 0x2b, 0x33, 0x42, 0x74, 0x72, 0x6d, 0x30, 0x44, 0x57, 0x48, 0x4d, 0x59, 0x33, 0x37, 0x58, 0x4c, 0x6e, 0x65, 0x4d, 0x6c, 0x68, 0x77, 0x71, 0x49, 0x32, 0x68, 0x72, 0x68, 0x56, 0x64, 0x32, 0x63, 0x44, 0x4d, 0x54, 0x2f, 0x75, 0x46, 0x50, 0x70, 0x69, 0x4e, 0x33, 0x0a, 0x47, 0x50, 0x6f, 0x61, 0x6a, 0x4f, 0x69, 0x39, 0x5a, 0x63, 0x6e, 0x50, 0x50, 0x2f, 0x54, 0x4a, 0x46, 0x39, 0x7a, 0x72, 0x78, 0x37, 0x7a, 0x41, 0x42, 0x43, 0x34, 0x74, 0x52, 0x69, 0x39, 0x70, 0x5a, 0x73, 0x4d, 0x62, 0x6a, 0x2f, 0x37, 0x73, 0x50, 0x74, 0x50, 0x4b, 0x6c, 0x4c, 0x39, 0x32, 0x43, 0x69, 0x55, 0x4e, 0x71, 0x58, 0x73, 0x43, 0x48, 0x4b, 0x6e, 0x51, 0x4f, 0x31, 0x38, 0x4c, 0x77, 0x49, 0x45, 0x36, 0x50, 0x57, 0x54, 0x68, 0x76, 0x36, 0x63, 0x74, 0x0a, 0x54, 0x72, 0x31, 0x4e, 0x78, 0x4e, 0x67, 0x70, 0x78, 0x69, 0x49, 0x59, 0x30, 0x4d, 0x57, 0x73, 0x63, 0x67, 0x4b, 0x43, 0x50, 0x36, 0x6f, 0x36, 0x6f, 0x6a, 0x6f, 0x69, 0x6c, 0x7a, 0x48, 0x64, 0x43, 0x47, 0x50, 0x44, 0x64, 0x52, 0x53, 0x35, 0x59, 0x43, 0x67, 0x74, 0x57, 0x32, 0x6a, 0x67, 0x46, 0x71, 0x6c, 0x6d, 0x67, 0x69, 0x4e, 0x52, 0x39, 0x65, 0x74, 0x54, 0x32, 0x44, 0x47, 0x62, 0x65, 0x2b, 0x6d, 0x33, 0x6e, 0x55, 0x76, 0x72, 0x69, 0x42, 0x62, 0x50, 0x0a, 0x2b, 0x56, 0x30, 0x34, 0x69, 0x6b, 0x6b, 0x77, 0x6a, 0x2b, 0x33, 0x78, 0x36, 0x78, 0x6e, 0x30, 0x64, 0x78, 0x6f, 0x78, 0x47, 0x45, 0x31, 0x6e, 0x56, 0x47, 0x77, 0x76, 0x62, 0x32, 0x58, 0x35, 0x32, 0x7a, 0x33, 0x73, 0x49, 0x65, 0x78, 0x65, 0x39, 0x50, 0x53, 0x4c, 0x79, 0x6d, 0x42, 0x6c, 0x56, 0x4e, 0x46, 0x78, 0x5a, 0x50, 0x54, 0x35, 0x70, 0x71, 0x4f, 0x42, 0x4d, 0x7a, 0x59, 0x7a, 0x63, 0x66, 0x43, 0x6b, 0x65, 0x46, 0x39, 0x4f, 0x72, 0x59, 0x4d, 0x68, 0x0a, 0x33, 0x6a, 0x52, 0x4a, 0x6a, 0x65, 0x68, 0x5a, 0x72, 0x4a, 0x33, 0x79, 0x64, 0x6c, 0x6f, 0x32, 0x38, 0x68, 0x50, 0x30, 0x72, 0x2b, 0x41, 0x4a, 0x78, 0x32, 0x45, 0x71, 0x62, 0x50, 0x66, 0x67, 0x6e, 0x61, 0x36, 0x37, 0x68, 0x6b, 0x6f, 0x6f, 0x62, 0x79, 0x37, 0x75, 0x74, 0x48, 0x6e, 0x4e, 0x6b, 0x44, 0x50, 0x44, 0x73, 0x33, 0x62, 0x36, 0x39, 0x66, 0x42, 0x73, 0x6e, 0x51, 0x47, 0x51, 0x2b, 0x70, 0x36, 0x51, 0x39, 0x70, 0x78, 0x79, 0x7a, 0x30, 0x66, 0x61, 0x0a, 0x77, 0x78, 0x2f, 0x6b, 0x4e, 0x53, 0x42, 0x54, 0x38, 0x6c, 0x54, 0x52, 0x33, 0x32, 0x47, 0x44, 0x70, 0x67, 0x4c, 0x69, 0x4a, 0x54, 0x6a, 0x65, 0x68, 0x54, 0x49, 0x74, 0x58, 0x6e, 0x4f, 0x51, 0x55, 0x6c, 0x31, 0x43, 0x78, 0x4d, 0x34, 0x39, 0x53, 0x2b, 0x48, 0x35, 0x47, 0x59, 0x51, 0x64, 0x31, 0x61, 0x4a, 0x51, 0x7a, 0x45, 0x48, 0x37, 0x51, 0x52, 0x54, 0x44, 0x76, 0x64, 0x62, 0x4a, 0x57, 0x71, 0x4e, 0x6a, 0x5a, 0x67, 0x4b, 0x41, 0x76, 0x51, 0x55, 0x36, 0x0a, 0x4f, 0x30, 0x65, 0x63, 0x37, 0x41, 0x41, 0x6d, 0x54, 0x50, 0x57, 0x49, 0x55, 0x62, 0x2b, 0x6f, 0x49, 0x33, 0x38, 0x59, 0x42, 0x37, 0x41, 0x4c, 0x37, 0x59, 0x73, 0x6d, 0x6f, 0x57, 0x54, 0x54, 0x59, 0x55, 0x72, 0x72, 0x58, 0x4a, 0x2f, 0x65, 0x73, 0x36, 0x39, 0x6e, 0x41, 0x37, 0x4d, 0x66, 0x33, 0x57, 0x31, 0x64, 0x61, 0x57, 0x68, 0x70, 0x71, 0x31, 0x34, 0x36, 0x37, 0x48, 0x78, 0x70, 0x76, 0x4d, 0x63, 0x37, 0x68, 0x55, 0x36, 0x65, 0x46, 0x62, 0x6d, 0x30, 0x0a, 0x46, 0x55, 0x2f, 0x44, 0x6c, 0x58, 0x70, 0x59, 0x31, 0x38, 0x6c, 0x73, 0x36, 0x57, 0x79, 0x35, 0x38, 0x79, 0x6c, 0x6a, 0x58, 0x72, 0x51, 0x73, 0x38, 0x43, 0x30, 0x39, 0x37, 0x56, 0x70, 0x6c, 0x34, 0x4b, 0x6c, 0x62, 0x51, 0x4d, 0x4a, 0x49, 0x6d, 0x59, 0x46, 0x74, 0x6e, 0x68, 0x38, 0x47, 0x4b, 0x6a, 0x77, 0x53, 0x74, 0x49, 0x73, 0x50, 0x6d, 0x36, 0x49, 0x6b, 0x38, 0x4b, 0x61, 0x4e, 0x31, 0x6e, 0x72, 0x67, 0x53, 0x37, 0x5a, 0x6b, 0x6c, 0x6d, 0x4f, 0x56, 0x0a, 0x68, 0x4d, 0x4a, 0x4b, 0x7a, 0x52, 0x77, 0x75, 0x4a, 0x49, 0x63, 0x7a, 0x59, 0x4f, 0x58, 0x44, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x51, 0x75, 0x6f, 0x56, 0x61, 0x64, 0x69, 0x73, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x32, 0x20, 0x47, 0x33, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x59, 0x44, 0x43, 0x43, 0x41, 0x30, 0x69, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x55, 0x52, 0x46, 0x63, 0x30, 0x4a, 0x46, 0x75, 0x42, 0x69, 0x5a, 0x73, 0x31, 0x38, 0x73, 0x36, 0x34, 0x4b, 0x7a, 0x74, 0x62, 0x70, 0x79, 0x62, 0x77, 0x64, 0x53, 0x67, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x77, 0x53, 0x44, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x0a, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x51, 0x6b, 0x30, 0x78, 0x47, 0x54, 0x41, 0x58, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x45, 0x46, 0x46, 0x31, 0x62, 0x31, 0x5a, 0x68, 0x5a, 0x47, 0x6c, 0x7a, 0x49, 0x45, 0x78, 0x70, 0x62, 0x57, 0x6c, 0x30, 0x5a, 0x57, 0x51, 0x78, 0x48, 0x6a, 0x41, 0x63, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x46, 0x56, 0x46, 0x31, 0x62, 0x31, 0x5a, 0x68, 0x5a, 0x47, 0x6c, 0x7a, 0x49, 0x46, 0x4a, 0x76, 0x0a, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x67, 0x4d, 0x69, 0x42, 0x48, 0x4d, 0x7a, 0x41, 0x65, 0x46, 0x77, 0x30, 0x78, 0x4d, 0x6a, 0x41, 0x78, 0x4d, 0x54, 0x49, 0x78, 0x4f, 0x44, 0x55, 0x35, 0x4d, 0x7a, 0x4a, 0x61, 0x46, 0x77, 0x30, 0x30, 0x4d, 0x6a, 0x41, 0x78, 0x4d, 0x54, 0x49, 0x78, 0x4f, 0x44, 0x55, 0x35, 0x4d, 0x7a, 0x4a, 0x61, 0x4d, 0x45, 0x67, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6b, 0x4a, 0x4e, 0x0a, 0x4d, 0x52, 0x6b, 0x77, 0x46, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x78, 0x42, 0x52, 0x64, 0x57, 0x39, 0x57, 0x59, 0x57, 0x52, 0x70, 0x63, 0x79, 0x42, 0x4d, 0x61, 0x57, 0x31, 0x70, 0x64, 0x47, 0x56, 0x6b, 0x4d, 0x52, 0x34, 0x77, 0x48, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x56, 0x52, 0x64, 0x57, 0x39, 0x57, 0x59, 0x57, 0x52, 0x70, 0x63, 0x79, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x42, 0x49, 0x44, 0x49, 0x67, 0x0a, 0x52, 0x7a, 0x4d, 0x77, 0x67, 0x67, 0x49, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x49, 0x4b, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x43, 0x68, 0x72, 0x69, 0x57, 0x79, 0x41, 0x52, 0x6a, 0x63, 0x56, 0x34, 0x67, 0x2f, 0x52, 0x75, 0x76, 0x35, 0x72, 0x2b, 0x4c, 0x72, 0x49, 0x33, 0x48, 0x69, 0x6d, 0x74, 0x46, 0x68, 0x0a, 0x5a, 0x69, 0x46, 0x66, 0x71, 0x71, 0x38, 0x6e, 0x55, 0x65, 0x56, 0x75, 0x47, 0x78, 0x62, 0x55, 0x4c, 0x58, 0x31, 0x51, 0x73, 0x46, 0x4e, 0x33, 0x76, 0x58, 0x67, 0x36, 0x59, 0x4f, 0x4a, 0x6b, 0x41, 0x70, 0x74, 0x38, 0x68, 0x70, 0x76, 0x57, 0x47, 0x6f, 0x36, 0x74, 0x2f, 0x78, 0x38, 0x56, 0x66, 0x39, 0x57, 0x56, 0x48, 0x68, 0x4c, 0x4c, 0x35, 0x68, 0x53, 0x45, 0x42, 0x4d, 0x48, 0x66, 0x4e, 0x72, 0x4d, 0x57, 0x6e, 0x34, 0x72, 0x6a, 0x79, 0x64, 0x75, 0x59, 0x0a, 0x4e, 0x4d, 0x37, 0x59, 0x4d, 0x78, 0x63, 0x6f, 0x52, 0x76, 0x79, 0x6e, 0x79, 0x66, 0x44, 0x53, 0x74, 0x4e, 0x56, 0x4e, 0x43, 0x58, 0x4a, 0x4a, 0x2b, 0x66, 0x4b, 0x48, 0x34, 0x36, 0x6e, 0x61, 0x66, 0x61, 0x46, 0x39, 0x61, 0x37, 0x49, 0x36, 0x4a, 0x61, 0x6c, 0x74, 0x55, 0x6b, 0x53, 0x73, 0x2b, 0x4c, 0x35, 0x75, 0x2b, 0x39, 0x79, 0x6d, 0x63, 0x35, 0x47, 0x51, 0x59, 0x61, 0x59, 0x44, 0x46, 0x43, 0x44, 0x79, 0x35, 0x34, 0x65, 0x6a, 0x69, 0x4b, 0x32, 0x74, 0x0a, 0x6f, 0x49, 0x7a, 0x2f, 0x70, 0x67, 0x73, 0x6c, 0x55, 0x69, 0x58, 0x6e, 0x46, 0x67, 0x48, 0x56, 0x79, 0x37, 0x67, 0x31, 0x67, 0x51, 0x79, 0x6a, 0x4f, 0x2f, 0x44, 0x68, 0x34, 0x66, 0x78, 0x61, 0x58, 0x63, 0x36, 0x41, 0x63, 0x57, 0x33, 0x34, 0x53, 0x61, 0x73, 0x2b, 0x4f, 0x37, 0x71, 0x34, 0x31, 0x34, 0x41, 0x42, 0x2b, 0x36, 0x58, 0x72, 0x57, 0x37, 0x50, 0x46, 0x58, 0x6d, 0x41, 0x71, 0x4d, 0x61, 0x43, 0x76, 0x4e, 0x2b, 0x67, 0x67, 0x4f, 0x70, 0x2b, 0x6f, 0x0a, 0x4d, 0x69, 0x77, 0x4d, 0x7a, 0x41, 0x6b, 0x64, 0x30, 0x35, 0x36, 0x4f, 0x58, 0x62, 0x78, 0x4d, 0x6d, 0x4f, 0x37, 0x46, 0x47, 0x6d, 0x68, 0x37, 0x37, 0x46, 0x4f, 0x6d, 0x36, 0x52, 0x51, 0x31, 0x6f, 0x39, 0x2f, 0x4e, 0x67, 0x4a, 0x38, 0x4d, 0x53, 0x50, 0x73, 0x63, 0x39, 0x50, 0x47, 0x2f, 0x53, 0x72, 0x6a, 0x36, 0x31, 0x59, 0x78, 0x78, 0x53, 0x73, 0x63, 0x66, 0x72, 0x66, 0x35, 0x42, 0x6d, 0x72, 0x4f, 0x44, 0x58, 0x66, 0x4b, 0x45, 0x56, 0x75, 0x2b, 0x6c, 0x0a, 0x56, 0x30, 0x50, 0x4f, 0x4b, 0x61, 0x32, 0x4d, 0x71, 0x31, 0x57, 0x2f, 0x78, 0x50, 0x74, 0x62, 0x41, 0x64, 0x30, 0x6a, 0x49, 0x61, 0x46, 0x59, 0x41, 0x49, 0x37, 0x44, 0x30, 0x47, 0x6f, 0x54, 0x37, 0x52, 0x50, 0x6a, 0x45, 0x69, 0x75, 0x41, 0x33, 0x47, 0x66, 0x6d, 0x6c, 0x62, 0x4c, 0x4e, 0x48, 0x69, 0x4a, 0x75, 0x4b, 0x76, 0x68, 0x42, 0x31, 0x50, 0x4c, 0x4b, 0x46, 0x41, 0x65, 0x4e, 0x69, 0x6c, 0x55, 0x53, 0x78, 0x6d, 0x6e, 0x31, 0x75, 0x49, 0x5a, 0x6f, 0x0a, 0x4c, 0x31, 0x4e, 0x65, 0x73, 0x4e, 0x4b, 0x71, 0x49, 0x63, 0x47, 0x59, 0x35, 0x6a, 0x44, 0x6a, 0x5a, 0x31, 0x58, 0x48, 0x6d, 0x32, 0x36, 0x73, 0x47, 0x61, 0x68, 0x56, 0x70, 0x6b, 0x55, 0x47, 0x30, 0x43, 0x4d, 0x36, 0x32, 0x2b, 0x74, 0x6c, 0x58, 0x53, 0x6f, 0x52, 0x45, 0x66, 0x41, 0x37, 0x54, 0x38, 0x70, 0x74, 0x39, 0x44, 0x54, 0x45, 0x63, 0x65, 0x54, 0x2f, 0x41, 0x46, 0x72, 0x32, 0x58, 0x4b, 0x34, 0x6a, 0x59, 0x49, 0x56, 0x7a, 0x38, 0x65, 0x51, 0x51, 0x0a, 0x73, 0x53, 0x57, 0x75, 0x31, 0x5a, 0x4b, 0x37, 0x45, 0x38, 0x45, 0x4d, 0x34, 0x44, 0x6e, 0x61, 0x74, 0x44, 0x6c, 0x58, 0x74, 0x61, 0x73, 0x31, 0x71, 0x6e, 0x49, 0x68, 0x4f, 0x34, 0x4d, 0x31, 0x35, 0x7a, 0x48, 0x66, 0x65, 0x69, 0x46, 0x75, 0x75, 0x44, 0x49, 0x49, 0x66, 0x52, 0x30, 0x79, 0x6b, 0x52, 0x56, 0x4b, 0x59, 0x6e, 0x4c, 0x50, 0x34, 0x33, 0x65, 0x68, 0x76, 0x4e, 0x55, 0x52, 0x47, 0x33, 0x59, 0x42, 0x5a, 0x77, 0x6a, 0x67, 0x51, 0x51, 0x76, 0x44, 0x0a, 0x36, 0x78, 0x56, 0x75, 0x2b, 0x4b, 0x51, 0x5a, 0x32, 0x61, 0x4b, 0x72, 0x72, 0x2b, 0x49, 0x6e, 0x55, 0x6c, 0x59, 0x72, 0x41, 0x6f, 0x6f, 0x73, 0x46, 0x43, 0x54, 0x35, 0x76, 0x30, 0x49, 0x43, 0x76, 0x79, 0x62, 0x49, 0x78, 0x6f, 0x2f, 0x67, 0x62, 0x6a, 0x68, 0x39, 0x55, 0x79, 0x33, 0x6c, 0x37, 0x5a, 0x69, 0x7a, 0x6c, 0x57, 0x4e, 0x6f, 0x66, 0x2f, 0x6b, 0x31, 0x39, 0x4e, 0x2b, 0x49, 0x78, 0x57, 0x41, 0x31, 0x6b, 0x73, 0x42, 0x38, 0x61, 0x52, 0x78, 0x68, 0x0a, 0x6c, 0x52, 0x62, 0x51, 0x36, 0x39, 0x34, 0x4c, 0x72, 0x7a, 0x34, 0x45, 0x45, 0x45, 0x56, 0x6c, 0x57, 0x46, 0x41, 0x34, 0x72, 0x30, 0x6a, 0x79, 0x57, 0x62, 0x59, 0x57, 0x38, 0x6a, 0x77, 0x4e, 0x6b, 0x41, 0x4c, 0x47, 0x63, 0x43, 0x34, 0x42, 0x72, 0x54, 0x77, 0x56, 0x31, 0x77, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x0a, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x42, 0x6a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x37, 0x65, 0x64, 0x76, 0x64, 0x6c, 0x71, 0x2f, 0x59, 0x4f, 0x78, 0x4a, 0x57, 0x38, 0x61, 0x6c, 0x64, 0x37, 0x74, 0x79, 0x46, 0x6e, 0x47, 0x62, 0x78, 0x44, 0x30, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x0a, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x42, 0x41, 0x4a, 0x48, 0x66, 0x67, 0x44, 0x39, 0x44, 0x43, 0x58, 0x35, 0x78, 0x77, 0x76, 0x66, 0x72, 0x73, 0x34, 0x69, 0x50, 0x34, 0x56, 0x47, 0x79, 0x76, 0x44, 0x31, 0x31, 0x2b, 0x53, 0x68, 0x64, 0x79, 0x4c, 0x79, 0x5a, 0x6d, 0x33, 0x74, 0x64, 0x71, 0x75, 0x58, 0x4b, 0x34, 0x51, 0x72, 0x33, 0x36, 0x4c, 0x4c, 0x54, 0x6e, 0x39, 0x31, 0x6e, 0x4d, 0x58, 0x36, 0x36, 0x0a, 0x41, 0x61, 0x72, 0x48, 0x61, 0x6b, 0x45, 0x37, 0x6b, 0x4e, 0x51, 0x49, 0x58, 0x4c, 0x4a, 0x67, 0x61, 0x70, 0x44, 0x77, 0x79, 0x4d, 0x34, 0x44, 0x59, 0x76, 0x6d, 0x4c, 0x37, 0x66, 0x74, 0x75, 0x4b, 0x74, 0x77, 0x47, 0x54, 0x54, 0x77, 0x70, 0x44, 0x34, 0x6b, 0x57, 0x69, 0x6c, 0x68, 0x4d, 0x53, 0x41, 0x2f, 0x6f, 0x68, 0x47, 0x48, 0x71, 0x50, 0x48, 0x4b, 0x6d, 0x64, 0x2b, 0x52, 0x43, 0x72, 0x6f, 0x69, 0x6a, 0x51, 0x31, 0x68, 0x35, 0x66, 0x71, 0x37, 0x4b, 0x0a, 0x70, 0x56, 0x4d, 0x4e, 0x71, 0x54, 0x31, 0x77, 0x76, 0x53, 0x41, 0x5a, 0x59, 0x61, 0x52, 0x73, 0x4f, 0x50, 0x78, 0x44, 0x4d, 0x75, 0x48, 0x42, 0x52, 0x2f, 0x2f, 0x34, 0x37, 0x50, 0x45, 0x52, 0x49, 0x6a, 0x4b, 0x57, 0x6e, 0x4d, 0x4c, 0x32, 0x57, 0x32, 0x6d, 0x57, 0x65, 0x79, 0x41, 0x4d, 0x51, 0x30, 0x47, 0x61, 0x57, 0x2f, 0x5a, 0x5a, 0x47, 0x59, 0x6a, 0x65, 0x56, 0x59, 0x67, 0x33, 0x55, 0x51, 0x74, 0x34, 0x58, 0x41, 0x6f, 0x65, 0x6f, 0x30, 0x4c, 0x39, 0x0a, 0x78, 0x35, 0x32, 0x49, 0x44, 0x38, 0x44, 0x79, 0x65, 0x41, 0x49, 0x6b, 0x56, 0x4a, 0x4f, 0x76, 0x69, 0x59, 0x65, 0x49, 0x79, 0x55, 0x71, 0x41, 0x48, 0x65, 0x72, 0x51, 0x62, 0x6a, 0x35, 0x68, 0x4c, 0x6a, 0x61, 0x37, 0x4e, 0x51, 0x34, 0x6e, 0x6c, 0x76, 0x31, 0x6d, 0x4e, 0x44, 0x74, 0x68, 0x63, 0x6e, 0x50, 0x78, 0x46, 0x6c, 0x78, 0x48, 0x42, 0x6c, 0x52, 0x4a, 0x41, 0x48, 0x70, 0x59, 0x45, 0x72, 0x41, 0x4b, 0x37, 0x34, 0x58, 0x39, 0x73, 0x62, 0x67, 0x7a, 0x0a, 0x64, 0x57, 0x71, 0x54, 0x48, 0x42, 0x4c, 0x6d, 0x59, 0x46, 0x35, 0x76, 0x48, 0x58, 0x2f, 0x4a, 0x48, 0x79, 0x50, 0x4c, 0x68, 0x47, 0x47, 0x66, 0x48, 0x6f, 0x4a, 0x45, 0x2b, 0x56, 0x2b, 0x74, 0x59, 0x6c, 0x55, 0x6b, 0x6d, 0x6c, 0x4b, 0x59, 0x37, 0x56, 0x48, 0x6e, 0x6f, 0x58, 0x36, 0x58, 0x4f, 0x75, 0x59, 0x76, 0x48, 0x78, 0x48, 0x61, 0x55, 0x34, 0x41, 0x73, 0x68, 0x5a, 0x36, 0x72, 0x4e, 0x52, 0x44, 0x62, 0x49, 0x6c, 0x39, 0x71, 0x78, 0x56, 0x36, 0x58, 0x0a, 0x55, 0x2f, 0x49, 0x79, 0x41, 0x67, 0x6b, 0x77, 0x6f, 0x31, 0x6a, 0x77, 0x44, 0x51, 0x48, 0x56, 0x63, 0x73, 0x61, 0x78, 0x66, 0x47, 0x6c, 0x37, 0x77, 0x2f, 0x55, 0x32, 0x52, 0x63, 0x78, 0x68, 0x62, 0x6c, 0x35, 0x4d, 0x6c, 0x4d, 0x56, 0x65, 0x72, 0x75, 0x67, 0x4f, 0x58, 0x6f, 0x75, 0x2f, 0x39, 0x38, 0x33, 0x67, 0x37, 0x61, 0x45, 0x4f, 0x47, 0x7a, 0x50, 0x75, 0x56, 0x42, 0x6a, 0x2b, 0x44, 0x37, 0x37, 0x76, 0x66, 0x6f, 0x52, 0x72, 0x51, 0x2b, 0x4e, 0x77, 0x0a, 0x6d, 0x4e, 0x74, 0x64, 0x64, 0x62, 0x49, 0x4e, 0x57, 0x51, 0x65, 0x46, 0x46, 0x53, 0x4d, 0x35, 0x31, 0x76, 0x48, 0x66, 0x71, 0x53, 0x59, 0x50, 0x31, 0x6b, 0x6a, 0x48, 0x73, 0x36, 0x59, 0x69, 0x39, 0x54, 0x4d, 0x33, 0x57, 0x70, 0x56, 0x48, 0x6e, 0x33, 0x75, 0x36, 0x47, 0x42, 0x56, 0x76, 0x2f, 0x39, 0x59, 0x55, 0x5a, 0x49, 0x4e, 0x4a, 0x30, 0x67, 0x70, 0x6e, 0x49, 0x64, 0x73, 0x50, 0x4e, 0x57, 0x4e, 0x67, 0x4b, 0x43, 0x4c, 0x6a, 0x73, 0x5a, 0x57, 0x44, 0x0a, 0x7a, 0x59, 0x57, 0x6d, 0x33, 0x53, 0x38, 0x50, 0x35, 0x32, 0x64, 0x53, 0x62, 0x72, 0x73, 0x76, 0x68, 0x58, 0x7a, 0x31, 0x53, 0x6e, 0x50, 0x6e, 0x78, 0x54, 0x37, 0x41, 0x76, 0x53, 0x45, 0x53, 0x42, 0x54, 0x2f, 0x38, 0x74, 0x77, 0x4e, 0x4a, 0x41, 0x6c, 0x76, 0x49, 0x4a, 0x65, 0x62, 0x69, 0x56, 0x44, 0x6a, 0x31, 0x65, 0x59, 0x65, 0x4d, 0x48, 0x56, 0x4f, 0x79, 0x54, 0x6f, 0x56, 0x37, 0x42, 0x6a, 0x6a, 0x48, 0x4c, 0x50, 0x6a, 0x34, 0x73, 0x48, 0x4b, 0x4e, 0x0a, 0x4a, 0x65, 0x56, 0x33, 0x55, 0x76, 0x51, 0x44, 0x48, 0x45, 0x69, 0x6d, 0x55, 0x46, 0x2b, 0x49, 0x49, 0x44, 0x42, 0x75, 0x38, 0x6f, 0x4a, 0x44, 0x71, 0x7a, 0x32, 0x58, 0x68, 0x4f, 0x64, 0x54, 0x2b, 0x79, 0x48, 0x42, 0x54, 0x77, 0x38, 0x69, 0x6d, 0x6f, 0x61, 0x34, 0x57, 0x53, 0x72, 0x32, 0x52, 0x7a, 0x30, 0x5a, 0x69, 0x43, 0x33, 0x6f, 0x68, 0x65, 0x47, 0x65, 0x37, 0x49, 0x55, 0x49, 0x61, 0x72, 0x46, 0x73, 0x4e, 0x4d, 0x6b, 0x64, 0x37, 0x45, 0x67, 0x72, 0x0a, 0x4f, 0x33, 0x6a, 0x74, 0x5a, 0x73, 0x53, 0x4f, 0x65, 0x57, 0x6d, 0x44, 0x33, 0x6e, 0x2b, 0x4d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x51, 0x75, 0x6f, 0x56, 0x61, 0x64, 0x69, 0x73, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x33, 0x20, 0x47, 0x33, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x59, 0x44, 0x43, 0x43, 0x41, 0x30, 0x69, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x55, 0x4c, 0x76, 0x57, 0x62, 0x41, 0x69, 0x69, 0x6e, 0x32, 0x33, 0x72, 0x2f, 0x31, 0x61, 0x4f, 0x70, 0x37, 0x72, 0x30, 0x44, 0x6f, 0x4d, 0x38, 0x53, 0x61, 0x68, 0x30, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x77, 0x53, 0x44, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x0a, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x51, 0x6b, 0x30, 0x78, 0x47, 0x54, 0x41, 0x58, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x45, 0x46, 0x46, 0x31, 0x62, 0x31, 0x5a, 0x68, 0x5a, 0x47, 0x6c, 0x7a, 0x49, 0x45, 0x78, 0x70, 0x62, 0x57, 0x6c, 0x30, 0x5a, 0x57, 0x51, 0x78, 0x48, 0x6a, 0x41, 0x63, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x46, 0x56, 0x46, 0x31, 0x62, 0x31, 0x5a, 0x68, 0x5a, 0x47, 0x6c, 0x7a, 0x49, 0x46, 0x4a, 0x76, 0x0a, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x67, 0x4d, 0x79, 0x42, 0x48, 0x4d, 0x7a, 0x41, 0x65, 0x46, 0x77, 0x30, 0x78, 0x4d, 0x6a, 0x41, 0x78, 0x4d, 0x54, 0x49, 0x79, 0x4d, 0x44, 0x49, 0x32, 0x4d, 0x7a, 0x4a, 0x61, 0x46, 0x77, 0x30, 0x30, 0x4d, 0x6a, 0x41, 0x78, 0x4d, 0x54, 0x49, 0x79, 0x4d, 0x44, 0x49, 0x32, 0x4d, 0x7a, 0x4a, 0x61, 0x4d, 0x45, 0x67, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6b, 0x4a, 0x4e, 0x0a, 0x4d, 0x52, 0x6b, 0x77, 0x46, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x78, 0x42, 0x52, 0x64, 0x57, 0x39, 0x57, 0x59, 0x57, 0x52, 0x70, 0x63, 0x79, 0x42, 0x4d, 0x61, 0x57, 0x31, 0x70, 0x64, 0x47, 0x56, 0x6b, 0x4d, 0x52, 0x34, 0x77, 0x48, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x56, 0x52, 0x64, 0x57, 0x39, 0x57, 0x59, 0x57, 0x52, 0x70, 0x63, 0x79, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x42, 0x49, 0x44, 0x4d, 0x67, 0x0a, 0x52, 0x7a, 0x4d, 0x77, 0x67, 0x67, 0x49, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x49, 0x4b, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x43, 0x7a, 0x79, 0x77, 0x34, 0x51, 0x5a, 0x34, 0x37, 0x71, 0x46, 0x4a, 0x65, 0x6e, 0x4d, 0x69, 0x6f, 0x4b, 0x56, 0x6a, 0x5a, 0x2f, 0x61, 0x45, 0x7a, 0x48, 0x73, 0x32, 0x38, 0x36, 0x0a, 0x49, 0x78, 0x53, 0x52, 0x2f, 0x78, 0x6c, 0x2f, 0x70, 0x63, 0x71, 0x73, 0x37, 0x72, 0x4e, 0x32, 0x6e, 0x58, 0x72, 0x70, 0x69, 0x78, 0x75, 0x72, 0x61, 0x7a, 0x48, 0x62, 0x2b, 0x67, 0x74, 0x54, 0x54, 0x4b, 0x2f, 0x46, 0x70, 0x52, 0x70, 0x35, 0x50, 0x49, 0x70, 0x4d, 0x2f, 0x36, 0x7a, 0x66, 0x4a, 0x64, 0x35, 0x4f, 0x32, 0x59, 0x49, 0x79, 0x43, 0x30, 0x54, 0x65, 0x79, 0x74, 0x75, 0x4d, 0x72, 0x4b, 0x4e, 0x75, 0x46, 0x6f, 0x4d, 0x37, 0x70, 0x6d, 0x52, 0x4c, 0x0a, 0x4d, 0x6f, 0x6e, 0x37, 0x46, 0x68, 0x59, 0x34, 0x66, 0x75, 0x74, 0x44, 0x34, 0x74, 0x4e, 0x30, 0x53, 0x73, 0x4a, 0x69, 0x43, 0x6e, 0x4d, 0x4b, 0x33, 0x55, 0x6d, 0x7a, 0x56, 0x39, 0x4b, 0x77, 0x43, 0x6f, 0x57, 0x64, 0x63, 0x54, 0x7a, 0x65, 0x6f, 0x38, 0x76, 0x41, 0x4d, 0x76, 0x4d, 0x42, 0x4f, 0x53, 0x42, 0x44, 0x47, 0x7a, 0x58, 0x52, 0x55, 0x37, 0x4f, 0x78, 0x37, 0x73, 0x57, 0x54, 0x61, 0x59, 0x49, 0x2b, 0x46, 0x72, 0x55, 0x6f, 0x52, 0x71, 0x48, 0x65, 0x0a, 0x36, 0x6f, 0x6b, 0x4a, 0x37, 0x55, 0x4f, 0x34, 0x42, 0x55, 0x61, 0x4b, 0x68, 0x76, 0x56, 0x5a, 0x52, 0x37, 0x34, 0x62, 0x62, 0x77, 0x45, 0x68, 0x45, 0x4c, 0x6e, 0x39, 0x71, 0x64, 0x49, 0x6f, 0x79, 0x68, 0x41, 0x35, 0x43, 0x63, 0x6f, 0x54, 0x4e, 0x73, 0x2b, 0x63, 0x72, 0x61, 0x31, 0x41, 0x64, 0x48, 0x6b, 0x72, 0x41, 0x6a, 0x38, 0x30, 0x2f, 0x2f, 0x6f, 0x67, 0x61, 0x58, 0x33, 0x54, 0x37, 0x6d, 0x48, 0x31, 0x75, 0x72, 0x50, 0x6e, 0x4d, 0x4e, 0x41, 0x33, 0x0a, 0x49, 0x34, 0x5a, 0x79, 0x59, 0x55, 0x55, 0x70, 0x53, 0x46, 0x6c, 0x6f, 0x62, 0x33, 0x65, 0x6d, 0x4c, 0x6f, 0x47, 0x2b, 0x42, 0x30, 0x31, 0x76, 0x72, 0x38, 0x37, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x46, 0x48, 0x41, 0x47, 0x6a, 0x78, 0x2b, 0x66, 0x2b, 0x49, 0x64, 0x70, 0x73, 0x51, 0x37, 0x76, 0x77, 0x34, 0x6b, 0x5a, 0x36, 0x2b, 0x6f, 0x63, 0x59, 0x66, 0x78, 0x36, 0x62, 0x49, 0x72, 0x63, 0x31, 0x67, 0x4d, 0x4c, 0x6e, 0x69, 0x61, 0x36, 0x45, 0x74, 0x33, 0x55, 0x0a, 0x56, 0x44, 0x6d, 0x72, 0x4a, 0x71, 0x4d, 0x7a, 0x36, 0x6e, 0x57, 0x42, 0x32, 0x69, 0x33, 0x4e, 0x44, 0x30, 0x2f, 0x6b, 0x41, 0x39, 0x48, 0x76, 0x46, 0x5a, 0x63, 0x62, 0x61, 0x35, 0x44, 0x46, 0x41, 0x70, 0x43, 0x54, 0x5a, 0x67, 0x49, 0x68, 0x73, 0x55, 0x66, 0x65, 0x69, 0x35, 0x70, 0x4b, 0x67, 0x4c, 0x6c, 0x56, 0x6a, 0x37, 0x57, 0x69, 0x4c, 0x38, 0x44, 0x57, 0x4d, 0x32, 0x66, 0x61, 0x66, 0x73, 0x53, 0x6e, 0x74, 0x41, 0x52, 0x45, 0x36, 0x30, 0x66, 0x37, 0x0a, 0x35, 0x6c, 0x69, 0x35, 0x39, 0x77, 0x7a, 0x77, 0x65, 0x79, 0x75, 0x78, 0x77, 0x48, 0x41, 0x70, 0x77, 0x30, 0x42, 0x69, 0x4c, 0x54, 0x74, 0x49, 0x61, 0x64, 0x77, 0x6a, 0x50, 0x45, 0x6a, 0x72, 0x65, 0x77, 0x6c, 0x35, 0x71, 0x57, 0x33, 0x61, 0x71, 0x44, 0x43, 0x59, 0x7a, 0x34, 0x42, 0x79, 0x41, 0x34, 0x69, 0x6d, 0x57, 0x30, 0x61, 0x75, 0x63, 0x6e, 0x6c, 0x38, 0x43, 0x41, 0x4d, 0x68, 0x5a, 0x61, 0x36, 0x33, 0x34, 0x52, 0x79, 0x6c, 0x73, 0x53, 0x71, 0x69, 0x0a, 0x4d, 0x64, 0x35, 0x6d, 0x42, 0x50, 0x66, 0x41, 0x64, 0x4f, 0x68, 0x78, 0x33, 0x76, 0x38, 0x39, 0x57, 0x63, 0x79, 0x57, 0x4a, 0x68, 0x4b, 0x4c, 0x68, 0x5a, 0x56, 0x58, 0x47, 0x71, 0x74, 0x72, 0x64, 0x51, 0x74, 0x45, 0x50, 0x52, 0x45, 0x6f, 0x50, 0x48, 0x74, 0x68, 0x74, 0x2b, 0x4b, 0x50, 0x5a, 0x30, 0x2f, 0x6c, 0x37, 0x44, 0x78, 0x4d, 0x59, 0x49, 0x42, 0x70, 0x56, 0x7a, 0x67, 0x65, 0x41, 0x56, 0x75, 0x4e, 0x56, 0x65, 0x6a, 0x48, 0x33, 0x38, 0x44, 0x4d, 0x0a, 0x64, 0x79, 0x4d, 0x30, 0x53, 0x58, 0x56, 0x38, 0x39, 0x70, 0x67, 0x52, 0x36, 0x79, 0x33, 0x65, 0x37, 0x55, 0x45, 0x75, 0x46, 0x41, 0x55, 0x43, 0x66, 0x2b, 0x44, 0x2b, 0x49, 0x4f, 0x73, 0x31, 0x35, 0x78, 0x47, 0x73, 0x49, 0x73, 0x35, 0x58, 0x50, 0x64, 0x37, 0x4a, 0x4d, 0x47, 0x30, 0x51, 0x41, 0x34, 0x58, 0x4e, 0x38, 0x66, 0x2b, 0x4d, 0x46, 0x72, 0x58, 0x42, 0x73, 0x6a, 0x36, 0x49, 0x62, 0x47, 0x42, 0x2f, 0x6b, 0x45, 0x2b, 0x56, 0x39, 0x2f, 0x59, 0x74, 0x0a, 0x72, 0x51, 0x45, 0x35, 0x42, 0x77, 0x54, 0x36, 0x64, 0x59, 0x42, 0x39, 0x76, 0x30, 0x6c, 0x51, 0x37, 0x65, 0x2f, 0x4a, 0x78, 0x48, 0x77, 0x63, 0x36, 0x34, 0x42, 0x2b, 0x32, 0x37, 0x62, 0x51, 0x33, 0x52, 0x50, 0x2b, 0x79, 0x64, 0x4f, 0x63, 0x31, 0x37, 0x4b, 0x58, 0x71, 0x51, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x0a, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x42, 0x6a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x78, 0x68, 0x66, 0x51, 0x76, 0x4b, 0x6a, 0x71, 0x41, 0x6b, 0x50, 0x79, 0x47, 0x77, 0x61, 0x5a, 0x58, 0x53, 0x75, 0x51, 0x49, 0x4c, 0x6e, 0x58, 0x6e, 0x4f, 0x51, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x0a, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x42, 0x41, 0x44, 0x52, 0x68, 0x32, 0x56, 0x61, 0x31, 0x45, 0x6f, 0x64, 0x56, 0x54, 0x64, 0x32, 0x6a, 0x4e, 0x54, 0x46, 0x47, 0x75, 0x36, 0x51, 0x48, 0x63, 0x72, 0x78, 0x66, 0x59, 0x57, 0x4c, 0x6f, 0x70, 0x66, 0x73, 0x4c, 0x4e, 0x37, 0x45, 0x38, 0x74, 0x72, 0x50, 0x36, 0x4b, 0x5a, 0x31, 0x2f, 0x41, 0x76, 0x57, 0x6b, 0x79, 0x61, 0x69, 0x54, 0x74, 0x33, 0x70, 0x78, 0x0a, 0x4b, 0x47, 0x6d, 0x50, 0x63, 0x2b, 0x46, 0x53, 0x6b, 0x4e, 0x72, 0x56, 0x76, 0x6a, 0x72, 0x6c, 0x74, 0x33, 0x5a, 0x71, 0x56, 0x6f, 0x41, 0x68, 0x33, 0x31, 0x33, 0x6d, 0x36, 0x54, 0x71, 0x65, 0x35, 0x54, 0x37, 0x32, 0x6f, 0x6d, 0x6e, 0x48, 0x4b, 0x67, 0x71, 0x77, 0x47, 0x45, 0x66, 0x63, 0x49, 0x48, 0x42, 0x39, 0x55, 0x71, 0x4d, 0x2b, 0x57, 0x58, 0x7a, 0x42, 0x75, 0x73, 0x6e, 0x49, 0x46, 0x55, 0x42, 0x68, 0x79, 0x6e, 0x4c, 0x57, 0x63, 0x4b, 0x7a, 0x53, 0x0a, 0x74, 0x2f, 0x41, 0x63, 0x35, 0x49, 0x59, 0x70, 0x38, 0x4d, 0x37, 0x76, 0x61, 0x47, 0x50, 0x51, 0x74, 0x53, 0x43, 0x4b, 0x46, 0x57, 0x47, 0x61, 0x66, 0x6f, 0x61, 0x59, 0x74, 0x4d, 0x6e, 0x43, 0x64, 0x76, 0x76, 0x4d, 0x75, 0x6a, 0x41, 0x57, 0x7a, 0x4b, 0x4e, 0x68, 0x78, 0x6e, 0x51, 0x54, 0x35, 0x57, 0x76, 0x76, 0x6f, 0x78, 0x58, 0x71, 0x41, 0x2f, 0x34, 0x54, 0x69, 0x32, 0x54, 0x6b, 0x30, 0x38, 0x48, 0x53, 0x36, 0x49, 0x54, 0x37, 0x53, 0x64, 0x45, 0x51, 0x0a, 0x54, 0x58, 0x6c, 0x6d, 0x36, 0x36, 0x72, 0x39, 0x39, 0x49, 0x30, 0x78, 0x48, 0x6e, 0x41, 0x55, 0x72, 0x64, 0x7a, 0x65, 0x5a, 0x78, 0x4e, 0x4d, 0x67, 0x52, 0x56, 0x68, 0x76, 0x4c, 0x66, 0x5a, 0x6b, 0x58, 0x64, 0x78, 0x47, 0x59, 0x46, 0x67, 0x75, 0x2f, 0x42, 0x59, 0x70, 0x62, 0x57, 0x63, 0x43, 0x2f, 0x65, 0x50, 0x49, 0x6c, 0x55, 0x6e, 0x77, 0x45, 0x73, 0x42, 0x62, 0x54, 0x75, 0x5a, 0x44, 0x64, 0x51, 0x64, 0x6d, 0x32, 0x4e, 0x6e, 0x4c, 0x39, 0x44, 0x75, 0x0a, 0x44, 0x63, 0x70, 0x6d, 0x76, 0x4a, 0x52, 0x50, 0x70, 0x71, 0x33, 0x74, 0x2f, 0x4f, 0x35, 0x6a, 0x72, 0x46, 0x63, 0x2f, 0x5a, 0x53, 0x58, 0x50, 0x73, 0x6f, 0x61, 0x50, 0x30, 0x41, 0x6a, 0x2f, 0x75, 0x48, 0x59, 0x55, 0x62, 0x74, 0x37, 0x6c, 0x4a, 0x2b, 0x79, 0x72, 0x65, 0x4c, 0x56, 0x54, 0x75, 0x62, 0x59, 0x2f, 0x36, 0x43, 0x44, 0x35, 0x30, 0x71, 0x69, 0x2b, 0x59, 0x55, 0x62, 0x4b, 0x68, 0x34, 0x79, 0x45, 0x38, 0x2f, 0x6e, 0x78, 0x6f, 0x47, 0x69, 0x62, 0x0a, 0x49, 0x68, 0x36, 0x42, 0x4a, 0x70, 0x73, 0x51, 0x42, 0x4a, 0x46, 0x78, 0x77, 0x41, 0x59, 0x66, 0x33, 0x4b, 0x44, 0x54, 0x75, 0x56, 0x61, 0x6e, 0x34, 0x35, 0x67, 0x74, 0x66, 0x34, 0x4f, 0x64, 0x33, 0x34, 0x77, 0x72, 0x6e, 0x44, 0x4b, 0x4f, 0x4d, 0x70, 0x54, 0x77, 0x41, 0x54, 0x77, 0x69, 0x4b, 0x70, 0x39, 0x44, 0x77, 0x69, 0x37, 0x44, 0x6d, 0x44, 0x6b, 0x48, 0x4f, 0x48, 0x76, 0x38, 0x58, 0x67, 0x42, 0x43, 0x48, 0x2f, 0x4d, 0x79, 0x4a, 0x6e, 0x6d, 0x44, 0x0a, 0x68, 0x50, 0x62, 0x6c, 0x38, 0x4d, 0x46, 0x52, 0x45, 0x73, 0x41, 0x4c, 0x48, 0x67, 0x51, 0x6a, 0x44, 0x46, 0x53, 0x6c, 0x54, 0x43, 0x39, 0x4a, 0x78, 0x55, 0x72, 0x52, 0x74, 0x6d, 0x35, 0x67, 0x44, 0x57, 0x76, 0x38, 0x61, 0x34, 0x75, 0x46, 0x4a, 0x47, 0x53, 0x33, 0x69, 0x51, 0x36, 0x72, 0x4a, 0x55, 0x64, 0x62, 0x50, 0x4d, 0x39, 0x2b, 0x53, 0x62, 0x33, 0x48, 0x36, 0x51, 0x72, 0x47, 0x32, 0x76, 0x64, 0x2b, 0x44, 0x68, 0x63, 0x49, 0x30, 0x30, 0x69, 0x58, 0x0a, 0x30, 0x48, 0x47, 0x53, 0x38, 0x41, 0x38, 0x35, 0x50, 0x6a, 0x52, 0x71, 0x48, 0x48, 0x33, 0x59, 0x38, 0x69, 0x4b, 0x75, 0x75, 0x32, 0x6e, 0x30, 0x4d, 0x37, 0x53, 0x6d, 0x53, 0x46, 0x58, 0x52, 0x44, 0x77, 0x34, 0x6d, 0x36, 0x4f, 0x79, 0x32, 0x43, 0x79, 0x32, 0x6e, 0x68, 0x54, 0x58, 0x4e, 0x2f, 0x56, 0x6e, 0x49, 0x6e, 0x39, 0x48, 0x4e, 0x50, 0x6c, 0x6f, 0x70, 0x4e, 0x4c, 0x6b, 0x39, 0x68, 0x4d, 0x36, 0x78, 0x5a, 0x64, 0x52, 0x5a, 0x6b, 0x5a, 0x46, 0x57, 0x0a, 0x64, 0x53, 0x48, 0x42, 0x64, 0x35, 0x37, 0x35, 0x65, 0x75, 0x46, 0x67, 0x6e, 0x64, 0x4f, 0x74, 0x42, 0x42, 0x6a, 0x30, 0x66, 0x4f, 0x74, 0x65, 0x6b, 0x34, 0x39, 0x54, 0x53, 0x69, 0x49, 0x70, 0x2b, 0x45, 0x67, 0x72, 0x50, 0x6b, 0x32, 0x47, 0x72, 0x46, 0x74, 0x2f, 0x79, 0x77, 0x61, 0x5a, 0x57, 0x57, 0x44, 0x59, 0x57, 0x47, 0x57, 0x56, 0x6a, 0x55, 0x54, 0x52, 0x39, 0x33, 0x39, 0x2b, 0x4a, 0x33, 0x39, 0x39, 0x72, 0x6f, 0x44, 0x31, 0x42, 0x30, 0x79, 0x32, 0x0a, 0x50, 0x70, 0x78, 0x78, 0x56, 0x4a, 0x6b, 0x45, 0x53, 0x2f, 0x31, 0x59, 0x2b, 0x5a, 0x6a, 0x30, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x41, 0x73, 0x73, 0x75, 0x72, 0x65, 0x64, 0x20, 0x49, 0x44, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x47, 0x32, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x44, 0x6c, 0x6a, 0x43, 0x43, 0x41, 0x6e, 0x36, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x43, 0x35, 0x4d, 0x63, 0x4f, 0x74, 0x59, 0x35, 0x5a, 0x2b, 0x70, 0x6e, 0x49, 0x37, 0x2f, 0x44, 0x72, 0x35, 0x72, 0x30, 0x53, 0x7a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x44, 0x42, 0x6c, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x0a, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x56, 0x4d, 0x42, 0x4d, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x4d, 0x52, 0x47, 0x6c, 0x6e, 0x61, 0x55, 0x4e, 0x6c, 0x63, 0x6e, 0x51, 0x67, 0x53, 0x57, 0x35, 0x6a, 0x4d, 0x52, 0x6b, 0x77, 0x46, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x78, 0x42, 0x33, 0x64, 0x33, 0x63, 0x75, 0x5a, 0x47, 0x6c, 0x6e, 0x61, 0x57, 0x4e, 0x6c, 0x63, 0x6e, 0x51, 0x75, 0x59, 0x32, 0x39, 0x74, 0x4d, 0x53, 0x51, 0x77, 0x0a, 0x49, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x74, 0x45, 0x61, 0x57, 0x64, 0x70, 0x51, 0x32, 0x56, 0x79, 0x64, 0x43, 0x42, 0x42, 0x63, 0x33, 0x4e, 0x31, 0x63, 0x6d, 0x56, 0x6b, 0x49, 0x45, 0x6c, 0x45, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x52, 0x7a, 0x49, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x54, 0x4d, 0x77, 0x4f, 0x44, 0x41, 0x78, 0x4d, 0x54, 0x49, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x7a, 0x67, 0x77, 0x0a, 0x4d, 0x54, 0x45, 0x31, 0x4d, 0x54, 0x49, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x6a, 0x42, 0x6c, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x56, 0x4d, 0x42, 0x4d, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x4d, 0x52, 0x47, 0x6c, 0x6e, 0x61, 0x55, 0x4e, 0x6c, 0x63, 0x6e, 0x51, 0x67, 0x53, 0x57, 0x35, 0x6a, 0x4d, 0x52, 0x6b, 0x77, 0x46, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x0a, 0x45, 0x78, 0x42, 0x33, 0x64, 0x33, 0x63, 0x75, 0x5a, 0x47, 0x6c, 0x6e, 0x61, 0x57, 0x4e, 0x6c, 0x63, 0x6e, 0x51, 0x75, 0x59, 0x32, 0x39, 0x74, 0x4d, 0x53, 0x51, 0x77, 0x49, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x74, 0x45, 0x61, 0x57, 0x64, 0x70, 0x51, 0x32, 0x56, 0x79, 0x64, 0x43, 0x42, 0x42, 0x63, 0x33, 0x4e, 0x31, 0x63, 0x6d, 0x56, 0x6b, 0x49, 0x45, 0x6c, 0x45, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x52, 0x7a, 0x49, 0x77, 0x0a, 0x67, 0x67, 0x45, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x42, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x45, 0x4b, 0x41, 0x6f, 0x49, 0x42, 0x41, 0x51, 0x44, 0x5a, 0x35, 0x79, 0x67, 0x76, 0x55, 0x6a, 0x38, 0x32, 0x63, 0x6b, 0x6d, 0x49, 0x6b, 0x7a, 0x54, 0x7a, 0x2b, 0x47, 0x6f, 0x65, 0x4d, 0x56, 0x53, 0x41, 0x6e, 0x36, 0x31, 0x55, 0x51, 0x62, 0x56, 0x48, 0x0a, 0x33, 0x35, 0x61, 0x6f, 0x31, 0x4b, 0x2b, 0x41, 0x4c, 0x62, 0x6b, 0x4b, 0x7a, 0x33, 0x58, 0x39, 0x69, 0x61, 0x56, 0x39, 0x4a, 0x50, 0x72, 0x6a, 0x49, 0x67, 0x77, 0x72, 0x76, 0x4a, 0x55, 0x58, 0x43, 0x7a, 0x4f, 0x2f, 0x47, 0x55, 0x31, 0x42, 0x42, 0x70, 0x41, 0x41, 0x76, 0x51, 0x78, 0x4e, 0x45, 0x50, 0x34, 0x48, 0x74, 0x65, 0x63, 0x63, 0x62, 0x69, 0x4a, 0x56, 0x4d, 0x57, 0x57, 0x58, 0x76, 0x64, 0x4d, 0x58, 0x30, 0x68, 0x35, 0x69, 0x38, 0x39, 0x76, 0x71, 0x0a, 0x62, 0x46, 0x43, 0x4d, 0x50, 0x34, 0x51, 0x4d, 0x6c, 0x73, 0x2b, 0x33, 0x79, 0x77, 0x50, 0x67, 0x79, 0x6d, 0x32, 0x68, 0x46, 0x45, 0x77, 0x62, 0x69, 0x64, 0x33, 0x74, 0x41, 0x4c, 0x42, 0x53, 0x66, 0x4b, 0x2b, 0x52, 0x62, 0x4c, 0x45, 0x34, 0x45, 0x39, 0x48, 0x70, 0x45, 0x67, 0x6a, 0x41, 0x41, 0x4c, 0x41, 0x63, 0x4b, 0x78, 0x48, 0x61, 0x64, 0x33, 0x41, 0x32, 0x6d, 0x36, 0x37, 0x4f, 0x65, 0x59, 0x66, 0x63, 0x67, 0x6e, 0x44, 0x6d, 0x43, 0x58, 0x52, 0x77, 0x0a, 0x56, 0x57, 0x6d, 0x76, 0x6f, 0x32, 0x69, 0x66, 0x76, 0x39, 0x32, 0x32, 0x65, 0x62, 0x50, 0x79, 0x6e, 0x58, 0x41, 0x70, 0x56, 0x66, 0x53, 0x72, 0x2f, 0x35, 0x56, 0x68, 0x38, 0x38, 0x6c, 0x41, 0x62, 0x78, 0x33, 0x52, 0x76, 0x70, 0x4f, 0x37, 0x30, 0x34, 0x67, 0x71, 0x75, 0x35, 0x32, 0x2f, 0x63, 0x6c, 0x70, 0x57, 0x63, 0x54, 0x73, 0x2f, 0x31, 0x50, 0x50, 0x52, 0x43, 0x76, 0x34, 0x6f, 0x37, 0x36, 0x50, 0x75, 0x32, 0x5a, 0x6d, 0x76, 0x41, 0x39, 0x4f, 0x50, 0x0a, 0x59, 0x4c, 0x66, 0x79, 0x6b, 0x71, 0x47, 0x78, 0x76, 0x59, 0x6d, 0x4a, 0x48, 0x7a, 0x44, 0x4e, 0x77, 0x36, 0x59, 0x75, 0x59, 0x6a, 0x4f, 0x75, 0x46, 0x67, 0x4a, 0x33, 0x52, 0x46, 0x72, 0x6e, 0x67, 0x51, 0x6f, 0x38, 0x70, 0x30, 0x51, 0x75, 0x65, 0x62, 0x67, 0x2f, 0x42, 0x4c, 0x78, 0x63, 0x6f, 0x49, 0x66, 0x68, 0x47, 0x36, 0x39, 0x52, 0x6a, 0x73, 0x33, 0x73, 0x4c, 0x50, 0x72, 0x34, 0x2f, 0x6d, 0x33, 0x77, 0x4f, 0x6e, 0x79, 0x71, 0x69, 0x2b, 0x52, 0x6e, 0x0a, 0x6c, 0x54, 0x47, 0x4e, 0x41, 0x67, 0x4d, 0x42, 0x41, 0x41, 0x47, 0x6a, 0x51, 0x6a, 0x42, 0x41, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x47, 0x47, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x54, 0x4f, 0x0a, 0x77, 0x30, 0x71, 0x35, 0x6d, 0x56, 0x58, 0x79, 0x75, 0x4e, 0x74, 0x67, 0x76, 0x36, 0x6c, 0x2b, 0x76, 0x56, 0x61, 0x31, 0x6c, 0x7a, 0x61, 0x6e, 0x31, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x51, 0x45, 0x41, 0x79, 0x71, 0x56, 0x56, 0x6a, 0x4f, 0x50, 0x49, 0x51, 0x57, 0x35, 0x70, 0x4a, 0x36, 0x64, 0x31, 0x45, 0x65, 0x38, 0x38, 0x68, 0x6a, 0x5a, 0x76, 0x0a, 0x30, 0x70, 0x33, 0x47, 0x65, 0x44, 0x67, 0x64, 0x61, 0x5a, 0x61, 0x69, 0x6b, 0x6d, 0x6b, 0x75, 0x4f, 0x47, 0x79, 0x62, 0x66, 0x51, 0x54, 0x55, 0x69, 0x61, 0x57, 0x78, 0x4d, 0x54, 0x65, 0x4b, 0x79, 0x53, 0x48, 0x4d, 0x71, 0x32, 0x7a, 0x4e, 0x69, 0x78, 0x79, 0x61, 0x31, 0x72, 0x39, 0x49, 0x30, 0x6a, 0x4a, 0x6d, 0x77, 0x59, 0x72, 0x41, 0x38, 0x79, 0x38, 0x36, 0x37, 0x38, 0x44, 0x6a, 0x31, 0x4a, 0x47, 0x47, 0x30, 0x56, 0x44, 0x6a, 0x41, 0x39, 0x74, 0x7a, 0x0a, 0x64, 0x32, 0x39, 0x4b, 0x4f, 0x56, 0x50, 0x74, 0x33, 0x69, 0x62, 0x48, 0x74, 0x58, 0x32, 0x76, 0x4b, 0x30, 0x4c, 0x52, 0x64, 0x57, 0x4c, 0x6a, 0x53, 0x69, 0x73, 0x43, 0x78, 0x31, 0x42, 0x4c, 0x34, 0x47, 0x6e, 0x69, 0x6c, 0x6d, 0x77, 0x4f, 0x52, 0x47, 0x59, 0x51, 0x52, 0x49, 0x2b, 0x74, 0x42, 0x65, 0x76, 0x34, 0x65, 0x61, 0x79, 0x6d, 0x47, 0x2b, 0x67, 0x33, 0x4e, 0x4a, 0x31, 0x54, 0x79, 0x57, 0x47, 0x71, 0x6f, 0x6c, 0x4b, 0x76, 0x53, 0x6e, 0x41, 0x57, 0x0a, 0x68, 0x73, 0x49, 0x36, 0x79, 0x4c, 0x45, 0x54, 0x63, 0x44, 0x62, 0x59, 0x7a, 0x2b, 0x37, 0x30, 0x43, 0x6a, 0x54, 0x56, 0x57, 0x30, 0x7a, 0x39, 0x42, 0x35, 0x79, 0x69, 0x75, 0x74, 0x6b, 0x42, 0x63, 0x6c, 0x7a, 0x7a, 0x54, 0x63, 0x48, 0x64, 0x44, 0x72, 0x45, 0x63, 0x44, 0x63, 0x52, 0x6a, 0x76, 0x71, 0x33, 0x30, 0x46, 0x50, 0x75, 0x4a, 0x37, 0x4b, 0x4a, 0x42, 0x44, 0x6b, 0x7a, 0x4d, 0x79, 0x46, 0x64, 0x41, 0x30, 0x47, 0x34, 0x44, 0x71, 0x73, 0x30, 0x4d, 0x0a, 0x6a, 0x6f, 0x6d, 0x5a, 0x6d, 0x57, 0x7a, 0x77, 0x50, 0x44, 0x43, 0x76, 0x4f, 0x4e, 0x39, 0x76, 0x76, 0x4b, 0x4f, 0x2b, 0x4b, 0x53, 0x41, 0x6e, 0x71, 0x33, 0x54, 0x2f, 0x45, 0x79, 0x4a, 0x34, 0x33, 0x70, 0x64, 0x53, 0x56, 0x52, 0x36, 0x44, 0x74, 0x56, 0x51, 0x67, 0x41, 0x2b, 0x36, 0x75, 0x77, 0x45, 0x39, 0x57, 0x33, 0x6a, 0x66, 0x4d, 0x77, 0x33, 0x2b, 0x71, 0x42, 0x43, 0x65, 0x37, 0x30, 0x33, 0x65, 0x34, 0x59, 0x74, 0x73, 0x58, 0x66, 0x4a, 0x77, 0x6f, 0x0a, 0x49, 0x68, 0x4e, 0x7a, 0x62, 0x4d, 0x38, 0x6d, 0x39, 0x59, 0x6f, 0x70, 0x35, 0x77, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x41, 0x73, 0x73, 0x75, 0x72, 0x65, 0x64, 0x20, 0x49, 0x44, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x47, 0x33, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x52, 0x6a, 0x43, 0x43, 0x41, 0x63, 0x32, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x43, 0x36, 0x46, 0x61, 0x2b, 0x68, 0x33, 0x66, 0x6f, 0x4c, 0x56, 0x4a, 0x52, 0x4b, 0x2f, 0x4e, 0x4a, 0x4b, 0x42, 0x73, 0x37, 0x44, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x7a, 0x42, 0x6c, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x0a, 0x55, 0x7a, 0x45, 0x56, 0x4d, 0x42, 0x4d, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x4d, 0x52, 0x47, 0x6c, 0x6e, 0x61, 0x55, 0x4e, 0x6c, 0x63, 0x6e, 0x51, 0x67, 0x53, 0x57, 0x35, 0x6a, 0x4d, 0x52, 0x6b, 0x77, 0x46, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x78, 0x42, 0x33, 0x64, 0x33, 0x63, 0x75, 0x5a, 0x47, 0x6c, 0x6e, 0x61, 0x57, 0x4e, 0x6c, 0x63, 0x6e, 0x51, 0x75, 0x59, 0x32, 0x39, 0x74, 0x4d, 0x53, 0x51, 0x77, 0x49, 0x67, 0x59, 0x44, 0x0a, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x74, 0x45, 0x61, 0x57, 0x64, 0x70, 0x51, 0x32, 0x56, 0x79, 0x64, 0x43, 0x42, 0x42, 0x63, 0x33, 0x4e, 0x31, 0x63, 0x6d, 0x56, 0x6b, 0x49, 0x45, 0x6c, 0x45, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x52, 0x7a, 0x4d, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x54, 0x4d, 0x77, 0x4f, 0x44, 0x41, 0x78, 0x4d, 0x54, 0x49, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x7a, 0x67, 0x77, 0x4d, 0x54, 0x45, 0x31, 0x0a, 0x4d, 0x54, 0x49, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x6a, 0x42, 0x6c, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x56, 0x4d, 0x42, 0x4d, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x4d, 0x52, 0x47, 0x6c, 0x6e, 0x61, 0x55, 0x4e, 0x6c, 0x63, 0x6e, 0x51, 0x67, 0x53, 0x57, 0x35, 0x6a, 0x4d, 0x52, 0x6b, 0x77, 0x46, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x78, 0x42, 0x33, 0x0a, 0x64, 0x33, 0x63, 0x75, 0x5a, 0x47, 0x6c, 0x6e, 0x61, 0x57, 0x4e, 0x6c, 0x63, 0x6e, 0x51, 0x75, 0x59, 0x32, 0x39, 0x74, 0x4d, 0x53, 0x51, 0x77, 0x49, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x74, 0x45, 0x61, 0x57, 0x64, 0x70, 0x51, 0x32, 0x56, 0x79, 0x64, 0x43, 0x42, 0x42, 0x63, 0x33, 0x4e, 0x31, 0x63, 0x6d, 0x56, 0x6b, 0x49, 0x45, 0x6c, 0x45, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x52, 0x7a, 0x4d, 0x77, 0x64, 0x6a, 0x41, 0x51, 0x0a, 0x42, 0x67, 0x63, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x49, 0x42, 0x42, 0x67, 0x55, 0x72, 0x67, 0x51, 0x51, 0x41, 0x49, 0x67, 0x4e, 0x69, 0x41, 0x41, 0x51, 0x5a, 0x35, 0x37, 0x79, 0x73, 0x52, 0x47, 0x58, 0x74, 0x7a, 0x62, 0x67, 0x2f, 0x57, 0x50, 0x75, 0x4e, 0x73, 0x56, 0x65, 0x70, 0x52, 0x43, 0x30, 0x46, 0x46, 0x66, 0x4c, 0x76, 0x43, 0x2f, 0x38, 0x51, 0x64, 0x4a, 0x2b, 0x31, 0x59, 0x6c, 0x4a, 0x66, 0x5a, 0x6e, 0x34, 0x66, 0x35, 0x64, 0x77, 0x62, 0x0a, 0x52, 0x58, 0x6b, 0x4c, 0x7a, 0x4d, 0x5a, 0x54, 0x43, 0x70, 0x32, 0x4e, 0x58, 0x51, 0x4c, 0x5a, 0x71, 0x56, 0x6e, 0x65, 0x41, 0x6c, 0x72, 0x32, 0x6c, 0x53, 0x6f, 0x4f, 0x6a, 0x54, 0x68, 0x4b, 0x69, 0x6b, 0x6e, 0x47, 0x76, 0x4d, 0x59, 0x44, 0x4f, 0x41, 0x64, 0x66, 0x56, 0x64, 0x70, 0x2b, 0x43, 0x57, 0x37, 0x69, 0x66, 0x31, 0x37, 0x51, 0x52, 0x53, 0x41, 0x50, 0x57, 0x58, 0x59, 0x51, 0x31, 0x71, 0x41, 0x6b, 0x38, 0x43, 0x33, 0x65, 0x4e, 0x76, 0x4a, 0x73, 0x0a, 0x4b, 0x54, 0x6d, 0x6a, 0x51, 0x6a, 0x42, 0x41, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x47, 0x47, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x54, 0x4c, 0x30, 0x4c, 0x32, 0x70, 0x34, 0x5a, 0x67, 0x46, 0x0a, 0x55, 0x61, 0x46, 0x4e, 0x4e, 0x36, 0x4b, 0x44, 0x65, 0x63, 0x36, 0x4e, 0x48, 0x53, 0x72, 0x6b, 0x68, 0x44, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x77, 0x4e, 0x6e, 0x41, 0x44, 0x42, 0x6b, 0x41, 0x6a, 0x41, 0x6c, 0x70, 0x49, 0x46, 0x46, 0x41, 0x6d, 0x73, 0x53, 0x53, 0x33, 0x56, 0x30, 0x54, 0x38, 0x67, 0x6a, 0x34, 0x33, 0x44, 0x79, 0x64, 0x58, 0x4c, 0x65, 0x66, 0x49, 0x6e, 0x77, 0x7a, 0x35, 0x46, 0x79, 0x0a, 0x59, 0x5a, 0x35, 0x65, 0x45, 0x4a, 0x4a, 0x5a, 0x56, 0x72, 0x6d, 0x44, 0x78, 0x78, 0x44, 0x6e, 0x4f, 0x4f, 0x6c, 0x59, 0x4a, 0x6a, 0x5a, 0x39, 0x31, 0x65, 0x51, 0x30, 0x68, 0x6a, 0x6b, 0x43, 0x4d, 0x48, 0x77, 0x32, 0x55, 0x2f, 0x41, 0x77, 0x35, 0x57, 0x4a, 0x6a, 0x4f, 0x70, 0x6e, 0x69, 0x74, 0x71, 0x4d, 0x37, 0x6d, 0x7a, 0x54, 0x36, 0x48, 0x74, 0x6f, 0x51, 0x6b, 0x6e, 0x46, 0x65, 0x6b, 0x52, 0x4f, 0x6e, 0x33, 0x61, 0x52, 0x75, 0x6b, 0x73, 0x77, 0x79, 0x0a, 0x31, 0x76, 0x55, 0x68, 0x5a, 0x73, 0x63, 0x76, 0x36, 0x70, 0x5a, 0x6a, 0x61, 0x6d, 0x56, 0x46, 0x6b, 0x70, 0x55, 0x42, 0x74, 0x41, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x47, 0x32, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x44, 0x6a, 0x6a, 0x43, 0x43, 0x41, 0x6e, 0x61, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x41, 0x7a, 0x72, 0x78, 0x35, 0x71, 0x63, 0x52, 0x71, 0x61, 0x43, 0x37, 0x4b, 0x47, 0x53, 0x78, 0x48, 0x51, 0x6e, 0x36, 0x35, 0x54, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x44, 0x42, 0x68, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x0a, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x56, 0x4d, 0x42, 0x4d, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x4d, 0x52, 0x47, 0x6c, 0x6e, 0x61, 0x55, 0x4e, 0x6c, 0x63, 0x6e, 0x51, 0x67, 0x53, 0x57, 0x35, 0x6a, 0x4d, 0x52, 0x6b, 0x77, 0x46, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x78, 0x42, 0x33, 0x64, 0x33, 0x63, 0x75, 0x5a, 0x47, 0x6c, 0x6e, 0x61, 0x57, 0x4e, 0x6c, 0x63, 0x6e, 0x51, 0x75, 0x59, 0x32, 0x39, 0x74, 0x4d, 0x53, 0x41, 0x77, 0x0a, 0x48, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x64, 0x45, 0x61, 0x57, 0x64, 0x70, 0x51, 0x32, 0x56, 0x79, 0x64, 0x43, 0x42, 0x48, 0x62, 0x47, 0x39, 0x69, 0x59, 0x57, 0x77, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x48, 0x4d, 0x6a, 0x41, 0x65, 0x46, 0x77, 0x30, 0x78, 0x4d, 0x7a, 0x41, 0x34, 0x4d, 0x44, 0x45, 0x78, 0x4d, 0x6a, 0x41, 0x77, 0x4d, 0x44, 0x42, 0x61, 0x46, 0x77, 0x30, 0x7a, 0x4f, 0x44, 0x41, 0x78, 0x4d, 0x54, 0x55, 0x78, 0x0a, 0x4d, 0x6a, 0x41, 0x77, 0x4d, 0x44, 0x42, 0x61, 0x4d, 0x47, 0x45, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6c, 0x56, 0x54, 0x4d, 0x52, 0x55, 0x77, 0x45, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x77, 0x78, 0x45, 0x61, 0x57, 0x64, 0x70, 0x51, 0x32, 0x56, 0x79, 0x64, 0x43, 0x42, 0x4a, 0x62, 0x6d, 0x4d, 0x78, 0x47, 0x54, 0x41, 0x58, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x73, 0x54, 0x45, 0x48, 0x64, 0x33, 0x0a, 0x64, 0x79, 0x35, 0x6b, 0x61, 0x57, 0x64, 0x70, 0x59, 0x32, 0x56, 0x79, 0x64, 0x43, 0x35, 0x6a, 0x62, 0x32, 0x30, 0x78, 0x49, 0x44, 0x41, 0x65, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x46, 0x30, 0x52, 0x70, 0x5a, 0x32, 0x6c, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x49, 0x45, 0x64, 0x73, 0x62, 0x32, 0x4a, 0x68, 0x62, 0x43, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x63, 0x79, 0x4d, 0x49, 0x49, 0x42, 0x49, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x0a, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x45, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x51, 0x38, 0x41, 0x4d, 0x49, 0x49, 0x42, 0x43, 0x67, 0x4b, 0x43, 0x41, 0x51, 0x45, 0x41, 0x75, 0x7a, 0x66, 0x4e, 0x4e, 0x4e, 0x78, 0x37, 0x61, 0x38, 0x6d, 0x79, 0x61, 0x4a, 0x43, 0x74, 0x53, 0x6e, 0x58, 0x2f, 0x52, 0x72, 0x6f, 0x68, 0x43, 0x67, 0x69, 0x4e, 0x39, 0x52, 0x6c, 0x55, 0x79, 0x66, 0x75, 0x49, 0x32, 0x2f, 0x4f, 0x75, 0x38, 0x6a, 0x71, 0x4a, 0x0a, 0x6b, 0x54, 0x78, 0x36, 0x35, 0x71, 0x73, 0x47, 0x47, 0x6d, 0x76, 0x50, 0x72, 0x43, 0x33, 0x6f, 0x58, 0x67, 0x6b, 0x6b, 0x52, 0x4c, 0x70, 0x69, 0x6d, 0x6e, 0x37, 0x57, 0x6f, 0x36, 0x68, 0x2b, 0x34, 0x46, 0x52, 0x31, 0x49, 0x41, 0x57, 0x73, 0x55, 0x4c, 0x65, 0x63, 0x59, 0x78, 0x70, 0x73, 0x4d, 0x4e, 0x7a, 0x61, 0x48, 0x78, 0x6d, 0x78, 0x31, 0x78, 0x37, 0x65, 0x2f, 0x64, 0x66, 0x67, 0x79, 0x35, 0x53, 0x44, 0x4e, 0x36, 0x37, 0x73, 0x48, 0x30, 0x4e, 0x4f, 0x0a, 0x33, 0x58, 0x73, 0x73, 0x30, 0x72, 0x30, 0x75, 0x70, 0x53, 0x2f, 0x6b, 0x71, 0x62, 0x69, 0x74, 0x4f, 0x74, 0x53, 0x5a, 0x70, 0x4c, 0x59, 0x6c, 0x36, 0x5a, 0x74, 0x72, 0x41, 0x47, 0x43, 0x53, 0x59, 0x50, 0x39, 0x50, 0x49, 0x55, 0x6b, 0x59, 0x39, 0x32, 0x65, 0x51, 0x71, 0x32, 0x45, 0x47, 0x6e, 0x49, 0x2f, 0x79, 0x75, 0x75, 0x6d, 0x30, 0x36, 0x5a, 0x49, 0x79, 0x61, 0x37, 0x58, 0x7a, 0x56, 0x2b, 0x68, 0x64, 0x47, 0x38, 0x32, 0x4d, 0x48, 0x61, 0x75, 0x56, 0x0a, 0x42, 0x4a, 0x56, 0x4a, 0x38, 0x7a, 0x55, 0x74, 0x6c, 0x75, 0x4e, 0x4a, 0x62, 0x64, 0x31, 0x33, 0x34, 0x2f, 0x74, 0x4a, 0x53, 0x37, 0x53, 0x73, 0x56, 0x51, 0x65, 0x70, 0x6a, 0x35, 0x57, 0x7a, 0x74, 0x43, 0x4f, 0x37, 0x54, 0x47, 0x31, 0x46, 0x38, 0x50, 0x61, 0x70, 0x73, 0x70, 0x55, 0x77, 0x74, 0x50, 0x31, 0x4d, 0x56, 0x59, 0x77, 0x6e, 0x53, 0x6c, 0x63, 0x55, 0x66, 0x49, 0x4b, 0x64, 0x7a, 0x58, 0x4f, 0x53, 0x30, 0x78, 0x5a, 0x4b, 0x42, 0x67, 0x79, 0x4d, 0x0a, 0x55, 0x4e, 0x47, 0x50, 0x48, 0x67, 0x6d, 0x2b, 0x46, 0x36, 0x48, 0x6d, 0x49, 0x63, 0x72, 0x39, 0x67, 0x2b, 0x55, 0x51, 0x76, 0x49, 0x4f, 0x6c, 0x43, 0x73, 0x52, 0x6e, 0x4b, 0x50, 0x5a, 0x7a, 0x46, 0x42, 0x51, 0x39, 0x52, 0x6e, 0x62, 0x44, 0x68, 0x78, 0x53, 0x4a, 0x49, 0x54, 0x52, 0x4e, 0x72, 0x77, 0x39, 0x46, 0x44, 0x4b, 0x5a, 0x4a, 0x6f, 0x62, 0x71, 0x37, 0x6e, 0x4d, 0x57, 0x78, 0x4d, 0x34, 0x4d, 0x70, 0x68, 0x51, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x0a, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x68, 0x6a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x54, 0x69, 0x4a, 0x55, 0x49, 0x42, 0x69, 0x56, 0x35, 0x75, 0x4e, 0x75, 0x0a, 0x35, 0x67, 0x2f, 0x36, 0x2b, 0x72, 0x6b, 0x53, 0x37, 0x51, 0x59, 0x58, 0x6a, 0x7a, 0x6b, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x45, 0x42, 0x41, 0x47, 0x42, 0x6e, 0x4b, 0x4a, 0x52, 0x76, 0x44, 0x6b, 0x68, 0x6a, 0x36, 0x7a, 0x48, 0x64, 0x36, 0x6d, 0x63, 0x59, 0x31, 0x59, 0x6c, 0x39, 0x50, 0x4d, 0x57, 0x4c, 0x53, 0x6e, 0x2f, 0x70, 0x76, 0x74, 0x73, 0x72, 0x0a, 0x46, 0x39, 0x2b, 0x77, 0x58, 0x33, 0x4e, 0x33, 0x4b, 0x6a, 0x49, 0x54, 0x4f, 0x59, 0x46, 0x6e, 0x51, 0x6f, 0x51, 0x6a, 0x38, 0x6b, 0x56, 0x6e, 0x4e, 0x65, 0x79, 0x49, 0x76, 0x2f, 0x69, 0x50, 0x73, 0x47, 0x45, 0x4d, 0x4e, 0x4b, 0x53, 0x75, 0x49, 0x45, 0x79, 0x45, 0x78, 0x74, 0x76, 0x34, 0x4e, 0x65, 0x46, 0x32, 0x32, 0x64, 0x2b, 0x6d, 0x51, 0x72, 0x76, 0x48, 0x52, 0x41, 0x69, 0x47, 0x66, 0x7a, 0x5a, 0x30, 0x4a, 0x46, 0x72, 0x61, 0x62, 0x41, 0x30, 0x55, 0x0a, 0x57, 0x54, 0x57, 0x39, 0x38, 0x6b, 0x6e, 0x64, 0x74, 0x68, 0x2f, 0x4a, 0x73, 0x77, 0x31, 0x48, 0x4b, 0x6a, 0x32, 0x5a, 0x4c, 0x37, 0x74, 0x63, 0x75, 0x37, 0x58, 0x55, 0x49, 0x4f, 0x47, 0x5a, 0x58, 0x31, 0x4e, 0x47, 0x46, 0x64, 0x74, 0x6f, 0x6d, 0x2f, 0x44, 0x7a, 0x4d, 0x4e, 0x55, 0x2b, 0x4d, 0x65, 0x4b, 0x4e, 0x68, 0x4a, 0x37, 0x6a, 0x69, 0x74, 0x72, 0x61, 0x6c, 0x6a, 0x34, 0x31, 0x45, 0x36, 0x56, 0x66, 0x38, 0x50, 0x6c, 0x77, 0x55, 0x48, 0x42, 0x48, 0x0a, 0x51, 0x52, 0x46, 0x58, 0x47, 0x55, 0x37, 0x41, 0x6a, 0x36, 0x34, 0x47, 0x78, 0x4a, 0x55, 0x54, 0x46, 0x79, 0x38, 0x62, 0x4a, 0x5a, 0x39, 0x31, 0x38, 0x72, 0x47, 0x4f, 0x6d, 0x61, 0x46, 0x76, 0x45, 0x37, 0x46, 0x42, 0x63, 0x66, 0x36, 0x49, 0x4b, 0x73, 0x68, 0x50, 0x45, 0x43, 0x42, 0x56, 0x31, 0x2f, 0x4d, 0x55, 0x52, 0x65, 0x58, 0x67, 0x52, 0x50, 0x54, 0x71, 0x68, 0x35, 0x55, 0x79, 0x6b, 0x77, 0x37, 0x2b, 0x55, 0x30, 0x62, 0x36, 0x4c, 0x4a, 0x33, 0x2f, 0x0a, 0x69, 0x79, 0x4b, 0x35, 0x53, 0x39, 0x6b, 0x4a, 0x52, 0x61, 0x54, 0x65, 0x70, 0x4c, 0x69, 0x61, 0x57, 0x4e, 0x30, 0x62, 0x66, 0x56, 0x4b, 0x66, 0x6a, 0x6c, 0x6c, 0x44, 0x69, 0x49, 0x47, 0x6b, 0x6e, 0x69, 0x62, 0x56, 0x62, 0x36, 0x33, 0x64, 0x44, 0x63, 0x59, 0x33, 0x66, 0x65, 0x30, 0x44, 0x6b, 0x68, 0x76, 0x6c, 0x64, 0x31, 0x39, 0x32, 0x37, 0x6a, 0x79, 0x4e, 0x78, 0x46, 0x31, 0x57, 0x57, 0x36, 0x4c, 0x5a, 0x5a, 0x6d, 0x36, 0x7a, 0x4e, 0x54, 0x66, 0x6c, 0x0a, 0x4d, 0x72, 0x59, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x47, 0x33, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x50, 0x7a, 0x43, 0x43, 0x41, 0x63, 0x57, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x42, 0x56, 0x56, 0x57, 0x76, 0x50, 0x4a, 0x65, 0x70, 0x44, 0x55, 0x31, 0x77, 0x36, 0x51, 0x50, 0x31, 0x61, 0x74, 0x46, 0x63, 0x6a, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x7a, 0x42, 0x68, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x0a, 0x55, 0x7a, 0x45, 0x56, 0x4d, 0x42, 0x4d, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x4d, 0x52, 0x47, 0x6c, 0x6e, 0x61, 0x55, 0x4e, 0x6c, 0x63, 0x6e, 0x51, 0x67, 0x53, 0x57, 0x35, 0x6a, 0x4d, 0x52, 0x6b, 0x77, 0x46, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x78, 0x42, 0x33, 0x64, 0x33, 0x63, 0x75, 0x5a, 0x47, 0x6c, 0x6e, 0x61, 0x57, 0x4e, 0x6c, 0x63, 0x6e, 0x51, 0x75, 0x59, 0x32, 0x39, 0x74, 0x4d, 0x53, 0x41, 0x77, 0x48, 0x67, 0x59, 0x44, 0x0a, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x64, 0x45, 0x61, 0x57, 0x64, 0x70, 0x51, 0x32, 0x56, 0x79, 0x64, 0x43, 0x42, 0x48, 0x62, 0x47, 0x39, 0x69, 0x59, 0x57, 0x77, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x48, 0x4d, 0x7a, 0x41, 0x65, 0x46, 0x77, 0x30, 0x78, 0x4d, 0x7a, 0x41, 0x34, 0x4d, 0x44, 0x45, 0x78, 0x4d, 0x6a, 0x41, 0x77, 0x4d, 0x44, 0x42, 0x61, 0x46, 0x77, 0x30, 0x7a, 0x4f, 0x44, 0x41, 0x78, 0x4d, 0x54, 0x55, 0x78, 0x4d, 0x6a, 0x41, 0x77, 0x0a, 0x4d, 0x44, 0x42, 0x61, 0x4d, 0x47, 0x45, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6c, 0x56, 0x54, 0x4d, 0x52, 0x55, 0x77, 0x45, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x77, 0x78, 0x45, 0x61, 0x57, 0x64, 0x70, 0x51, 0x32, 0x56, 0x79, 0x64, 0x43, 0x42, 0x4a, 0x62, 0x6d, 0x4d, 0x78, 0x47, 0x54, 0x41, 0x58, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x73, 0x54, 0x45, 0x48, 0x64, 0x33, 0x64, 0x79, 0x35, 0x6b, 0x0a, 0x61, 0x57, 0x64, 0x70, 0x59, 0x32, 0x56, 0x79, 0x64, 0x43, 0x35, 0x6a, 0x62, 0x32, 0x30, 0x78, 0x49, 0x44, 0x41, 0x65, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x46, 0x30, 0x52, 0x70, 0x5a, 0x32, 0x6c, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x49, 0x45, 0x64, 0x73, 0x62, 0x32, 0x4a, 0x68, 0x62, 0x43, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x63, 0x7a, 0x4d, 0x48, 0x59, 0x77, 0x45, 0x41, 0x59, 0x48, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x43, 0x0a, 0x41, 0x51, 0x59, 0x46, 0x4b, 0x34, 0x45, 0x45, 0x41, 0x43, 0x49, 0x44, 0x59, 0x67, 0x41, 0x45, 0x33, 0x61, 0x66, 0x5a, 0x75, 0x34, 0x71, 0x34, 0x43, 0x2f, 0x73, 0x4c, 0x66, 0x79, 0x48, 0x53, 0x38, 0x4c, 0x36, 0x2b, 0x63, 0x2f, 0x4d, 0x7a, 0x58, 0x52, 0x71, 0x38, 0x4e, 0x4f, 0x72, 0x65, 0x78, 0x70, 0x75, 0x38, 0x30, 0x4a, 0x58, 0x32, 0x38, 0x4d, 0x7a, 0x51, 0x43, 0x37, 0x70, 0x68, 0x57, 0x31, 0x46, 0x47, 0x66, 0x70, 0x34, 0x74, 0x6e, 0x2b, 0x36, 0x4f, 0x0a, 0x59, 0x77, 0x77, 0x58, 0x37, 0x41, 0x64, 0x77, 0x39, 0x63, 0x2b, 0x45, 0x4c, 0x6b, 0x43, 0x44, 0x6e, 0x4f, 0x67, 0x2f, 0x51, 0x57, 0x30, 0x37, 0x72, 0x64, 0x4f, 0x6b, 0x46, 0x46, 0x6b, 0x32, 0x65, 0x4a, 0x30, 0x44, 0x51, 0x2b, 0x34, 0x51, 0x45, 0x32, 0x78, 0x79, 0x33, 0x71, 0x36, 0x49, 0x70, 0x36, 0x46, 0x72, 0x74, 0x55, 0x50, 0x4f, 0x5a, 0x39, 0x77, 0x6a, 0x2f, 0x77, 0x4d, 0x63, 0x6f, 0x2b, 0x49, 0x2b, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x50, 0x0a, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x68, 0x6a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x73, 0x39, 0x74, 0x49, 0x70, 0x50, 0x6d, 0x68, 0x78, 0x64, 0x69, 0x75, 0x4e, 0x6b, 0x48, 0x4d, 0x45, 0x57, 0x4e, 0x70, 0x0a, 0x59, 0x69, 0x6d, 0x38, 0x53, 0x38, 0x59, 0x77, 0x43, 0x67, 0x59, 0x49, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x45, 0x41, 0x77, 0x4d, 0x44, 0x61, 0x41, 0x41, 0x77, 0x5a, 0x51, 0x49, 0x78, 0x41, 0x4b, 0x32, 0x38, 0x38, 0x6d, 0x77, 0x2f, 0x45, 0x6b, 0x72, 0x52, 0x4c, 0x54, 0x6e, 0x44, 0x43, 0x67, 0x6d, 0x58, 0x63, 0x2f, 0x53, 0x49, 0x4e, 0x6f, 0x79, 0x49, 0x4a, 0x37, 0x76, 0x6d, 0x69, 0x49, 0x31, 0x51, 0x68, 0x61, 0x64, 0x6a, 0x2b, 0x5a, 0x34, 0x79, 0x0a, 0x33, 0x6d, 0x61, 0x54, 0x44, 0x2f, 0x48, 0x4d, 0x73, 0x51, 0x6d, 0x50, 0x33, 0x57, 0x79, 0x72, 0x2b, 0x6d, 0x74, 0x2f, 0x6f, 0x41, 0x49, 0x77, 0x4f, 0x57, 0x5a, 0x62, 0x77, 0x6d, 0x53, 0x4e, 0x75, 0x4a, 0x35, 0x51, 0x33, 0x4b, 0x6a, 0x56, 0x53, 0x61, 0x4c, 0x74, 0x78, 0x39, 0x7a, 0x52, 0x53, 0x58, 0x38, 0x58, 0x41, 0x62, 0x6a, 0x49, 0x68, 0x6f, 0x39, 0x4f, 0x6a, 0x49, 0x67, 0x72, 0x71, 0x4a, 0x71, 0x70, 0x69, 0x73, 0x58, 0x52, 0x41, 0x4c, 0x33, 0x34, 0x0a, 0x56, 0x4f, 0x4b, 0x61, 0x35, 0x56, 0x74, 0x38, 0x73, 0x79, 0x63, 0x58, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x47, 0x34, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x6b, 0x44, 0x43, 0x43, 0x41, 0x33, 0x69, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x42, 0x5a, 0x73, 0x62, 0x56, 0x35, 0x36, 0x4f, 0x49, 0x54, 0x4c, 0x69, 0x4f, 0x51, 0x65, 0x39, 0x70, 0x33, 0x64, 0x31, 0x58, 0x44, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x77, 0x46, 0x41, 0x44, 0x42, 0x69, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x0a, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x56, 0x4d, 0x42, 0x4d, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x4d, 0x52, 0x47, 0x6c, 0x6e, 0x61, 0x55, 0x4e, 0x6c, 0x63, 0x6e, 0x51, 0x67, 0x53, 0x57, 0x35, 0x6a, 0x4d, 0x52, 0x6b, 0x77, 0x46, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x78, 0x42, 0x33, 0x64, 0x33, 0x63, 0x75, 0x5a, 0x47, 0x6c, 0x6e, 0x61, 0x57, 0x4e, 0x6c, 0x63, 0x6e, 0x51, 0x75, 0x59, 0x32, 0x39, 0x74, 0x4d, 0x53, 0x45, 0x77, 0x0a, 0x48, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x68, 0x45, 0x61, 0x57, 0x64, 0x70, 0x51, 0x32, 0x56, 0x79, 0x64, 0x43, 0x42, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x47, 0x56, 0x6b, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x52, 0x7a, 0x51, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x54, 0x4d, 0x77, 0x4f, 0x44, 0x41, 0x78, 0x4d, 0x54, 0x49, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x7a, 0x67, 0x77, 0x4d, 0x54, 0x45, 0x31, 0x0a, 0x4d, 0x54, 0x49, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x6a, 0x42, 0x69, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x56, 0x4d, 0x42, 0x4d, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x4d, 0x52, 0x47, 0x6c, 0x6e, 0x61, 0x55, 0x4e, 0x6c, 0x63, 0x6e, 0x51, 0x67, 0x53, 0x57, 0x35, 0x6a, 0x4d, 0x52, 0x6b, 0x77, 0x46, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x78, 0x42, 0x33, 0x0a, 0x64, 0x33, 0x63, 0x75, 0x5a, 0x47, 0x6c, 0x6e, 0x61, 0x57, 0x4e, 0x6c, 0x63, 0x6e, 0x51, 0x75, 0x59, 0x32, 0x39, 0x74, 0x4d, 0x53, 0x45, 0x77, 0x48, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x68, 0x45, 0x61, 0x57, 0x64, 0x70, 0x51, 0x32, 0x56, 0x79, 0x64, 0x43, 0x42, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x47, 0x56, 0x6b, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x52, 0x7a, 0x51, 0x77, 0x67, 0x67, 0x49, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x0a, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x49, 0x4b, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x43, 0x2f, 0x35, 0x70, 0x42, 0x7a, 0x61, 0x4e, 0x36, 0x37, 0x35, 0x46, 0x31, 0x4b, 0x50, 0x44, 0x41, 0x69, 0x4d, 0x47, 0x6b, 0x7a, 0x37, 0x4d, 0x4b, 0x6e, 0x4a, 0x53, 0x37, 0x4a, 0x49, 0x54, 0x33, 0x79, 0x69, 0x74, 0x68, 0x5a, 0x77, 0x75, 0x45, 0x70, 0x0a, 0x70, 0x7a, 0x31, 0x59, 0x71, 0x33, 0x61, 0x61, 0x7a, 0x61, 0x35, 0x37, 0x47, 0x34, 0x51, 0x4e, 0x78, 0x44, 0x41, 0x66, 0x38, 0x78, 0x75, 0x6b, 0x4f, 0x42, 0x62, 0x72, 0x56, 0x73, 0x61, 0x58, 0x62, 0x52, 0x32, 0x72, 0x73, 0x6e, 0x6e, 0x79, 0x79, 0x68, 0x48, 0x53, 0x35, 0x46, 0x2f, 0x57, 0x42, 0x54, 0x78, 0x53, 0x44, 0x31, 0x49, 0x66, 0x78, 0x70, 0x34, 0x56, 0x70, 0x58, 0x36, 0x2b, 0x6e, 0x36, 0x6c, 0x58, 0x46, 0x6c, 0x6c, 0x56, 0x63, 0x71, 0x39, 0x6f, 0x0a, 0x6b, 0x33, 0x44, 0x43, 0x73, 0x72, 0x70, 0x31, 0x6d, 0x57, 0x70, 0x7a, 0x4d, 0x70, 0x54, 0x52, 0x45, 0x45, 0x51, 0x51, 0x4c, 0x74, 0x2b, 0x43, 0x38, 0x77, 0x65, 0x45, 0x35, 0x6e, 0x51, 0x37, 0x62, 0x58, 0x48, 0x69, 0x4c, 0x51, 0x77, 0x62, 0x37, 0x69, 0x44, 0x56, 0x79, 0x53, 0x41, 0x64, 0x59, 0x79, 0x6b, 0x74, 0x7a, 0x75, 0x78, 0x65, 0x54, 0x73, 0x69, 0x54, 0x2b, 0x43, 0x46, 0x68, 0x6d, 0x7a, 0x54, 0x72, 0x42, 0x63, 0x5a, 0x65, 0x37, 0x46, 0x73, 0x61, 0x0a, 0x76, 0x4f, 0x76, 0x4a, 0x7a, 0x38, 0x32, 0x73, 0x4e, 0x45, 0x42, 0x66, 0x73, 0x58, 0x70, 0x6d, 0x37, 0x6e, 0x66, 0x49, 0x53, 0x4b, 0x68, 0x6d, 0x56, 0x31, 0x65, 0x66, 0x56, 0x46, 0x69, 0x4f, 0x44, 0x43, 0x75, 0x33, 0x54, 0x36, 0x63, 0x77, 0x32, 0x56, 0x62, 0x75, 0x79, 0x6e, 0x74, 0x64, 0x34, 0x36, 0x33, 0x4a, 0x54, 0x31, 0x37, 0x6c, 0x4e, 0x65, 0x63, 0x78, 0x79, 0x39, 0x71, 0x54, 0x58, 0x74, 0x79, 0x4f, 0x6a, 0x34, 0x44, 0x61, 0x74, 0x70, 0x47, 0x59, 0x0a, 0x51, 0x4a, 0x42, 0x35, 0x77, 0x33, 0x6a, 0x48, 0x74, 0x72, 0x48, 0x45, 0x74, 0x57, 0x6f, 0x59, 0x4f, 0x41, 0x4d, 0x51, 0x6a, 0x64, 0x6a, 0x55, 0x4e, 0x36, 0x51, 0x75, 0x42, 0x58, 0x32, 0x49, 0x39, 0x59, 0x49, 0x2b, 0x45, 0x4a, 0x46, 0x77, 0x71, 0x31, 0x57, 0x43, 0x51, 0x54, 0x4c, 0x58, 0x32, 0x77, 0x52, 0x7a, 0x4b, 0x6d, 0x36, 0x52, 0x41, 0x58, 0x77, 0x68, 0x54, 0x4e, 0x53, 0x38, 0x72, 0x68, 0x73, 0x44, 0x64, 0x56, 0x31, 0x34, 0x5a, 0x74, 0x6b, 0x36, 0x0a, 0x4d, 0x55, 0x53, 0x61, 0x4d, 0x30, 0x43, 0x2f, 0x43, 0x4e, 0x64, 0x61, 0x53, 0x61, 0x54, 0x43, 0x35, 0x71, 0x6d, 0x67, 0x5a, 0x39, 0x32, 0x6b, 0x4a, 0x37, 0x79, 0x68, 0x54, 0x7a, 0x6d, 0x31, 0x45, 0x56, 0x67, 0x58, 0x39, 0x79, 0x52, 0x63, 0x52, 0x6f, 0x39, 0x6b, 0x39, 0x38, 0x46, 0x70, 0x69, 0x48, 0x61, 0x59, 0x64, 0x6a, 0x31, 0x5a, 0x58, 0x55, 0x4a, 0x32, 0x68, 0x34, 0x6d, 0x58, 0x61, 0x58, 0x70, 0x49, 0x38, 0x4f, 0x43, 0x69, 0x45, 0x68, 0x74, 0x6d, 0x0a, 0x6d, 0x6e, 0x54, 0x4b, 0x33, 0x6b, 0x73, 0x65, 0x35, 0x77, 0x35, 0x6a, 0x72, 0x75, 0x62, 0x55, 0x37, 0x35, 0x4b, 0x53, 0x4f, 0x70, 0x34, 0x39, 0x33, 0x41, 0x44, 0x6b, 0x52, 0x53, 0x57, 0x4a, 0x74, 0x70, 0x70, 0x45, 0x47, 0x53, 0x74, 0x2b, 0x77, 0x4a, 0x53, 0x30, 0x30, 0x6d, 0x46, 0x74, 0x36, 0x7a, 0x50, 0x5a, 0x78, 0x64, 0x39, 0x4c, 0x42, 0x41, 0x44, 0x4d, 0x66, 0x52, 0x79, 0x56, 0x77, 0x34, 0x2f, 0x33, 0x49, 0x62, 0x4b, 0x79, 0x45, 0x62, 0x65, 0x37, 0x0a, 0x66, 0x2f, 0x4c, 0x56, 0x6a, 0x48, 0x41, 0x73, 0x51, 0x57, 0x43, 0x71, 0x73, 0x57, 0x4d, 0x59, 0x52, 0x4a, 0x55, 0x61, 0x64, 0x6d, 0x4a, 0x2b, 0x39, 0x6f, 0x43, 0x77, 0x2b, 0x2b, 0x68, 0x6b, 0x70, 0x6a, 0x50, 0x52, 0x69, 0x51, 0x66, 0x68, 0x76, 0x62, 0x66, 0x6d, 0x51, 0x36, 0x51, 0x59, 0x75, 0x4b, 0x5a, 0x33, 0x41, 0x65, 0x45, 0x50, 0x6c, 0x41, 0x77, 0x68, 0x48, 0x62, 0x4a, 0x55, 0x4b, 0x53, 0x57, 0x4a, 0x62, 0x4f, 0x55, 0x4f, 0x55, 0x6c, 0x46, 0x48, 0x0a, 0x64, 0x4c, 0x34, 0x6d, 0x72, 0x4c, 0x5a, 0x42, 0x64, 0x64, 0x35, 0x36, 0x72, 0x46, 0x2b, 0x4e, 0x50, 0x38, 0x6d, 0x38, 0x30, 0x30, 0x45, 0x52, 0x45, 0x6c, 0x76, 0x6c, 0x45, 0x46, 0x44, 0x72, 0x4d, 0x63, 0x58, 0x4b, 0x63, 0x68, 0x59, 0x69, 0x43, 0x64, 0x39, 0x38, 0x54, 0x48, 0x55, 0x2f, 0x59, 0x2b, 0x77, 0x68, 0x58, 0x38, 0x51, 0x67, 0x55, 0x57, 0x74, 0x76, 0x73, 0x61, 0x75, 0x47, 0x69, 0x30, 0x2f, 0x43, 0x31, 0x6b, 0x56, 0x66, 0x6e, 0x53, 0x44, 0x38, 0x0a, 0x6f, 0x52, 0x37, 0x46, 0x77, 0x49, 0x2b, 0x69, 0x73, 0x58, 0x34, 0x4b, 0x4a, 0x70, 0x6e, 0x31, 0x35, 0x47, 0x6b, 0x76, 0x6d, 0x42, 0x30, 0x74, 0x39, 0x64, 0x6d, 0x70, 0x73, 0x68, 0x33, 0x6c, 0x47, 0x77, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x0a, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x68, 0x6a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x37, 0x4e, 0x66, 0x6a, 0x67, 0x74, 0x4a, 0x78, 0x58, 0x57, 0x52, 0x4d, 0x33, 0x79, 0x35, 0x6e, 0x50, 0x2b, 0x65, 0x36, 0x6d, 0x4b, 0x34, 0x63, 0x44, 0x30, 0x38, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4d, 0x42, 0x51, 0x41, 0x44, 0x0a, 0x67, 0x67, 0x49, 0x42, 0x41, 0x4c, 0x74, 0x68, 0x32, 0x58, 0x32, 0x70, 0x62, 0x4c, 0x34, 0x58, 0x78, 0x4a, 0x45, 0x62, 0x77, 0x36, 0x47, 0x69, 0x41, 0x49, 0x33, 0x6a, 0x5a, 0x47, 0x67, 0x50, 0x56, 0x73, 0x39, 0x33, 0x72, 0x6e, 0x44, 0x35, 0x2f, 0x5a, 0x70, 0x4b, 0x6d, 0x62, 0x6e, 0x4a, 0x65, 0x46, 0x77, 0x4d, 0x44, 0x46, 0x2f, 0x6b, 0x35, 0x68, 0x51, 0x70, 0x56, 0x67, 0x73, 0x32, 0x53, 0x56, 0x31, 0x45, 0x59, 0x2b, 0x43, 0x74, 0x6e, 0x4a, 0x59, 0x59, 0x0a, 0x5a, 0x68, 0x73, 0x6a, 0x44, 0x54, 0x31, 0x35, 0x36, 0x57, 0x31, 0x72, 0x31, 0x6c, 0x54, 0x34, 0x30, 0x6a, 0x7a, 0x42, 0x51, 0x30, 0x43, 0x75, 0x48, 0x56, 0x44, 0x31, 0x55, 0x76, 0x79, 0x51, 0x4f, 0x37, 0x75, 0x59, 0x6d, 0x57, 0x6c, 0x72, 0x78, 0x38, 0x47, 0x6e, 0x71, 0x47, 0x69, 0x6b, 0x4a, 0x39, 0x79, 0x64, 0x2b, 0x53, 0x65, 0x75, 0x4d, 0x49, 0x57, 0x35, 0x39, 0x6d, 0x64, 0x4e, 0x4f, 0x6a, 0x36, 0x50, 0x57, 0x54, 0x6b, 0x69, 0x55, 0x30, 0x54, 0x72, 0x0a, 0x79, 0x46, 0x30, 0x44, 0x79, 0x75, 0x31, 0x51, 0x65, 0x6e, 0x31, 0x69, 0x49, 0x51, 0x71, 0x41, 0x79, 0x48, 0x4e, 0x6d, 0x30, 0x61, 0x41, 0x46, 0x59, 0x46, 0x2f, 0x6f, 0x70, 0x62, 0x53, 0x6e, 0x72, 0x36, 0x6a, 0x33, 0x62, 0x54, 0x57, 0x63, 0x66, 0x46, 0x71, 0x4b, 0x31, 0x71, 0x49, 0x34, 0x6d, 0x66, 0x4e, 0x34, 0x69, 0x2f, 0x52, 0x4e, 0x30, 0x69, 0x41, 0x4c, 0x33, 0x67, 0x54, 0x75, 0x6a, 0x4a, 0x74, 0x48, 0x67, 0x58, 0x49, 0x4e, 0x77, 0x42, 0x51, 0x79, 0x0a, 0x37, 0x7a, 0x42, 0x5a, 0x4c, 0x71, 0x37, 0x67, 0x63, 0x66, 0x4a, 0x57, 0x35, 0x47, 0x71, 0x58, 0x62, 0x35, 0x4a, 0x51, 0x62, 0x5a, 0x61, 0x4e, 0x61, 0x48, 0x71, 0x61, 0x73, 0x6a, 0x59, 0x55, 0x65, 0x67, 0x62, 0x79, 0x4a, 0x4c, 0x6b, 0x4a, 0x45, 0x56, 0x44, 0x58, 0x43, 0x4c, 0x47, 0x34, 0x69, 0x58, 0x71, 0x45, 0x49, 0x32, 0x46, 0x43, 0x4b, 0x65, 0x57, 0x6a, 0x7a, 0x61, 0x49, 0x67, 0x51, 0x64, 0x66, 0x52, 0x6e, 0x47, 0x54, 0x5a, 0x36, 0x69, 0x61, 0x68, 0x0a, 0x69, 0x78, 0x54, 0x58, 0x54, 0x42, 0x6d, 0x79, 0x55, 0x45, 0x46, 0x78, 0x50, 0x54, 0x39, 0x4e, 0x63, 0x43, 0x4f, 0x47, 0x44, 0x45, 0x72, 0x63, 0x67, 0x64, 0x4c, 0x4d, 0x4d, 0x70, 0x53, 0x45, 0x44, 0x51, 0x67, 0x4a, 0x6c, 0x78, 0x78, 0x50, 0x77, 0x4f, 0x35, 0x72, 0x49, 0x48, 0x51, 0x77, 0x30, 0x75, 0x41, 0x35, 0x4e, 0x42, 0x43, 0x46, 0x49, 0x52, 0x55, 0x42, 0x43, 0x4f, 0x68, 0x56, 0x4d, 0x74, 0x35, 0x78, 0x53, 0x64, 0x6b, 0x6f, 0x46, 0x31, 0x42, 0x4e, 0x0a, 0x35, 0x72, 0x35, 0x4e, 0x30, 0x58, 0x57, 0x73, 0x30, 0x4d, 0x72, 0x37, 0x51, 0x62, 0x68, 0x44, 0x70, 0x61, 0x72, 0x54, 0x77, 0x77, 0x56, 0x45, 0x54, 0x79, 0x77, 0x32, 0x6d, 0x2b, 0x4c, 0x36, 0x34, 0x6b, 0x57, 0x34, 0x49, 0x31, 0x4e, 0x73, 0x42, 0x6d, 0x39, 0x6e, 0x56, 0x58, 0x39, 0x47, 0x74, 0x55, 0x77, 0x2f, 0x62, 0x69, 0x68, 0x61, 0x65, 0x53, 0x62, 0x53, 0x70, 0x4b, 0x68, 0x69, 0x6c, 0x39, 0x49, 0x65, 0x34, 0x75, 0x31, 0x4b, 0x69, 0x37, 0x77, 0x62, 0x0a, 0x2f, 0x55, 0x64, 0x4b, 0x44, 0x64, 0x39, 0x6e, 0x5a, 0x6e, 0x36, 0x79, 0x57, 0x30, 0x48, 0x51, 0x4f, 0x2b, 0x54, 0x30, 0x4f, 0x2f, 0x51, 0x45, 0x59, 0x2b, 0x6e, 0x76, 0x77, 0x6c, 0x51, 0x41, 0x55, 0x61, 0x43, 0x4b, 0x4b, 0x73, 0x6e, 0x4f, 0x65, 0x4d, 0x7a, 0x56, 0x36, 0x6f, 0x63, 0x45, 0x47, 0x4c, 0x50, 0x4f, 0x72, 0x30, 0x6d, 0x49, 0x72, 0x2f, 0x4f, 0x53, 0x6d, 0x62, 0x61, 0x7a, 0x35, 0x6d, 0x45, 0x50, 0x30, 0x6f, 0x55, 0x41, 0x35, 0x31, 0x41, 0x61, 0x0a, 0x35, 0x42, 0x75, 0x56, 0x6e, 0x52, 0x6d, 0x68, 0x75, 0x5a, 0x79, 0x78, 0x6d, 0x37, 0x45, 0x41, 0x48, 0x75, 0x2f, 0x51, 0x44, 0x30, 0x39, 0x43, 0x62, 0x4d, 0x6b, 0x4b, 0x76, 0x4f, 0x35, 0x44, 0x2b, 0x6a, 0x70, 0x78, 0x70, 0x63, 0x68, 0x4e, 0x4a, 0x71, 0x55, 0x31, 0x2f, 0x59, 0x6c, 0x64, 0x76, 0x49, 0x56, 0x69, 0x48, 0x54, 0x4c, 0x53, 0x6f, 0x43, 0x74, 0x55, 0x37, 0x5a, 0x70, 0x58, 0x77, 0x64, 0x76, 0x36, 0x45, 0x4d, 0x38, 0x5a, 0x74, 0x34, 0x74, 0x4b, 0x0a, 0x47, 0x34, 0x38, 0x42, 0x74, 0x69, 0x65, 0x56, 0x55, 0x2b, 0x69, 0x32, 0x69, 0x57, 0x31, 0x62, 0x76, 0x47, 0x6a, 0x55, 0x49, 0x2b, 0x69, 0x4c, 0x55, 0x61, 0x4a, 0x57, 0x2b, 0x66, 0x43, 0x6d, 0x67, 0x4b, 0x44, 0x57, 0x48, 0x72, 0x4f, 0x38, 0x44, 0x77, 0x39, 0x54, 0x64, 0x53, 0x6d, 0x71, 0x36, 0x68, 0x4e, 0x33, 0x35, 0x4e, 0x36, 0x4d, 0x67, 0x53, 0x47, 0x74, 0x42, 0x78, 0x42, 0x48, 0x45, 0x61, 0x32, 0x48, 0x50, 0x51, 0x66, 0x52, 0x64, 0x62, 0x7a, 0x50, 0x0a, 0x38, 0x32, 0x5a, 0x2b, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x43, 0x4f, 0x4d, 0x4f, 0x44, 0x4f, 0x20, 0x52, 0x53, 0x41, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x32, 0x44, 0x43, 0x43, 0x41, 0x38, 0x43, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x54, 0x4b, 0x72, 0x35, 0x79, 0x74, 0x74, 0x6a, 0x62, 0x2b, 0x41, 0x66, 0x39, 0x30, 0x37, 0x59, 0x57, 0x77, 0x4f, 0x47, 0x6e, 0x54, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x77, 0x46, 0x41, 0x44, 0x43, 0x42, 0x68, 0x54, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x0a, 0x42, 0x68, 0x4d, 0x43, 0x52, 0x30, 0x49, 0x78, 0x47, 0x7a, 0x41, 0x5a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x67, 0x54, 0x45, 0x6b, 0x64, 0x79, 0x5a, 0x57, 0x46, 0x30, 0x5a, 0x58, 0x49, 0x67, 0x54, 0x57, 0x46, 0x75, 0x59, 0x32, 0x68, 0x6c, 0x63, 0x33, 0x52, 0x6c, 0x63, 0x6a, 0x45, 0x51, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x78, 0x4d, 0x48, 0x55, 0x32, 0x46, 0x73, 0x5a, 0x6d, 0x39, 0x79, 0x5a, 0x44, 0x45, 0x61, 0x4d, 0x42, 0x67, 0x47, 0x0a, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x52, 0x51, 0x30, 0x39, 0x4e, 0x54, 0x30, 0x52, 0x50, 0x49, 0x45, 0x4e, 0x42, 0x49, 0x45, 0x78, 0x70, 0x62, 0x57, 0x6c, 0x30, 0x5a, 0x57, 0x51, 0x78, 0x4b, 0x7a, 0x41, 0x70, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x49, 0x6b, 0x4e, 0x50, 0x54, 0x55, 0x39, 0x45, 0x54, 0x79, 0x42, 0x53, 0x55, 0x30, 0x45, 0x67, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x0a, 0x62, 0x69, 0x42, 0x42, 0x64, 0x58, 0x52, 0x6f, 0x62, 0x33, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x54, 0x41, 0x77, 0x4d, 0x54, 0x45, 0x35, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x7a, 0x67, 0x77, 0x4d, 0x54, 0x45, 0x34, 0x4d, 0x6a, 0x4d, 0x31, 0x4f, 0x54, 0x55, 0x35, 0x57, 0x6a, 0x43, 0x42, 0x68, 0x54, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x0a, 0x52, 0x30, 0x49, 0x78, 0x47, 0x7a, 0x41, 0x5a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x67, 0x54, 0x45, 0x6b, 0x64, 0x79, 0x5a, 0x57, 0x46, 0x30, 0x5a, 0x58, 0x49, 0x67, 0x54, 0x57, 0x46, 0x75, 0x59, 0x32, 0x68, 0x6c, 0x63, 0x33, 0x52, 0x6c, 0x63, 0x6a, 0x45, 0x51, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x78, 0x4d, 0x48, 0x55, 0x32, 0x46, 0x73, 0x5a, 0x6d, 0x39, 0x79, 0x5a, 0x44, 0x45, 0x61, 0x4d, 0x42, 0x67, 0x47, 0x41, 0x31, 0x55, 0x45, 0x0a, 0x43, 0x68, 0x4d, 0x52, 0x51, 0x30, 0x39, 0x4e, 0x54, 0x30, 0x52, 0x50, 0x49, 0x45, 0x4e, 0x42, 0x49, 0x45, 0x78, 0x70, 0x62, 0x57, 0x6c, 0x30, 0x5a, 0x57, 0x51, 0x78, 0x4b, 0x7a, 0x41, 0x70, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x49, 0x6b, 0x4e, 0x50, 0x54, 0x55, 0x39, 0x45, 0x54, 0x79, 0x42, 0x53, 0x55, 0x30, 0x45, 0x67, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x69, 0x42, 0x42, 0x0a, 0x64, 0x58, 0x52, 0x6f, 0x62, 0x33, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x77, 0x67, 0x67, 0x49, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x49, 0x4b, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x43, 0x52, 0x36, 0x46, 0x53, 0x53, 0x30, 0x67, 0x70, 0x57, 0x73, 0x61, 0x77, 0x4e, 0x4a, 0x4e, 0x33, 0x46, 0x7a, 0x30, 0x52, 0x6e, 0x0a, 0x64, 0x4a, 0x6b, 0x72, 0x4e, 0x36, 0x4e, 0x39, 0x49, 0x33, 0x41, 0x41, 0x63, 0x62, 0x78, 0x54, 0x33, 0x38, 0x54, 0x36, 0x4b, 0x68, 0x4b, 0x50, 0x53, 0x33, 0x38, 0x51, 0x56, 0x72, 0x32, 0x66, 0x63, 0x48, 0x4b, 0x33, 0x59, 0x58, 0x2f, 0x4a, 0x53, 0x77, 0x38, 0x58, 0x70, 0x7a, 0x33, 0x6a, 0x73, 0x41, 0x52, 0x68, 0x37, 0x76, 0x38, 0x52, 0x6c, 0x38, 0x66, 0x30, 0x68, 0x6a, 0x34, 0x4b, 0x2b, 0x6a, 0x35, 0x63, 0x2b, 0x5a, 0x50, 0x6d, 0x4e, 0x48, 0x72, 0x5a, 0x0a, 0x46, 0x47, 0x76, 0x6e, 0x6e, 0x4c, 0x4f, 0x46, 0x6f, 0x49, 0x4a, 0x36, 0x64, 0x71, 0x39, 0x78, 0x6b, 0x4e, 0x66, 0x73, 0x2f, 0x51, 0x33, 0x36, 0x6e, 0x47, 0x7a, 0x36, 0x33, 0x37, 0x43, 0x43, 0x39, 0x42, 0x52, 0x2b, 0x2b, 0x62, 0x37, 0x45, 0x70, 0x69, 0x39, 0x50, 0x66, 0x35, 0x6c, 0x2f, 0x74, 0x66, 0x78, 0x6e, 0x51, 0x33, 0x4b, 0x39, 0x44, 0x41, 0x44, 0x57, 0x69, 0x65, 0x74, 0x72, 0x4c, 0x4e, 0x50, 0x74, 0x6a, 0x35, 0x67, 0x63, 0x46, 0x4b, 0x74, 0x2b, 0x0a, 0x35, 0x65, 0x4e, 0x75, 0x2f, 0x4e, 0x69, 0x6f, 0x35, 0x4a, 0x49, 0x6b, 0x32, 0x6b, 0x4e, 0x72, 0x59, 0x72, 0x68, 0x56, 0x2f, 0x65, 0x72, 0x42, 0x76, 0x47, 0x79, 0x32, 0x69, 0x2f, 0x4d, 0x4f, 0x6a, 0x5a, 0x72, 0x6b, 0x6d, 0x32, 0x78, 0x70, 0x6d, 0x66, 0x68, 0x34, 0x53, 0x44, 0x42, 0x46, 0x31, 0x61, 0x33, 0x68, 0x44, 0x54, 0x78, 0x46, 0x59, 0x50, 0x77, 0x79, 0x6c, 0x6c, 0x45, 0x6e, 0x76, 0x47, 0x66, 0x44, 0x79, 0x69, 0x36, 0x32, 0x61, 0x2b, 0x70, 0x47, 0x0a, 0x78, 0x38, 0x63, 0x67, 0x6f, 0x4c, 0x45, 0x66, 0x5a, 0x64, 0x35, 0x49, 0x43, 0x4c, 0x71, 0x6b, 0x54, 0x71, 0x6e, 0x79, 0x67, 0x30, 0x59, 0x33, 0x68, 0x4f, 0x76, 0x6f, 0x7a, 0x49, 0x46, 0x49, 0x51, 0x32, 0x64, 0x4f, 0x63, 0x69, 0x71, 0x62, 0x58, 0x4c, 0x31, 0x4d, 0x47, 0x79, 0x69, 0x4b, 0x58, 0x43, 0x4a, 0x37, 0x74, 0x4b, 0x75, 0x59, 0x32, 0x65, 0x37, 0x67, 0x55, 0x59, 0x50, 0x44, 0x43, 0x55, 0x5a, 0x4f, 0x62, 0x54, 0x36, 0x5a, 0x2b, 0x70, 0x55, 0x58, 0x0a, 0x32, 0x6e, 0x77, 0x7a, 0x56, 0x30, 0x45, 0x38, 0x6a, 0x56, 0x48, 0x74, 0x43, 0x37, 0x5a, 0x63, 0x72, 0x79, 0x78, 0x6a, 0x47, 0x74, 0x39, 0x58, 0x79, 0x44, 0x2b, 0x38, 0x36, 0x56, 0x33, 0x45, 0x6d, 0x36, 0x39, 0x46, 0x6d, 0x65, 0x4b, 0x6a, 0x57, 0x69, 0x53, 0x30, 0x75, 0x71, 0x6c, 0x57, 0x50, 0x63, 0x39, 0x76, 0x71, 0x76, 0x39, 0x4a, 0x57, 0x4c, 0x37, 0x77, 0x71, 0x50, 0x2f, 0x30, 0x75, 0x4b, 0x33, 0x70, 0x4e, 0x2f, 0x75, 0x36, 0x75, 0x50, 0x51, 0x4c, 0x0a, 0x4f, 0x76, 0x6e, 0x6f, 0x51, 0x30, 0x49, 0x65, 0x69, 0x64, 0x69, 0x45, 0x79, 0x78, 0x50, 0x78, 0x32, 0x62, 0x76, 0x68, 0x69, 0x57, 0x43, 0x34, 0x6a, 0x43, 0x68, 0x57, 0x72, 0x42, 0x51, 0x64, 0x6e, 0x41, 0x72, 0x6e, 0x63, 0x65, 0x76, 0x50, 0x44, 0x74, 0x30, 0x39, 0x71, 0x5a, 0x61, 0x68, 0x53, 0x4c, 0x30, 0x38, 0x39, 0x36, 0x2b, 0x31, 0x44, 0x53, 0x4a, 0x4d, 0x77, 0x42, 0x47, 0x42, 0x37, 0x46, 0x59, 0x37, 0x39, 0x74, 0x4f, 0x69, 0x34, 0x6c, 0x75, 0x33, 0x0a, 0x73, 0x67, 0x51, 0x69, 0x55, 0x70, 0x57, 0x41, 0x6b, 0x32, 0x6e, 0x6f, 0x6a, 0x6b, 0x78, 0x6c, 0x38, 0x5a, 0x45, 0x44, 0x4c, 0x58, 0x42, 0x30, 0x41, 0x75, 0x71, 0x4c, 0x5a, 0x78, 0x55, 0x70, 0x61, 0x56, 0x49, 0x43, 0x75, 0x39, 0x66, 0x66, 0x55, 0x47, 0x70, 0x56, 0x52, 0x72, 0x2b, 0x67, 0x6f, 0x79, 0x68, 0x68, 0x66, 0x33, 0x44, 0x51, 0x77, 0x36, 0x4b, 0x71, 0x4c, 0x43, 0x47, 0x71, 0x52, 0x38, 0x34, 0x6f, 0x6e, 0x41, 0x5a, 0x46, 0x64, 0x72, 0x2b, 0x43, 0x0a, 0x47, 0x43, 0x65, 0x30, 0x31, 0x61, 0x36, 0x30, 0x79, 0x31, 0x44, 0x6d, 0x61, 0x2f, 0x52, 0x4d, 0x68, 0x6e, 0x45, 0x77, 0x36, 0x61, 0x62, 0x66, 0x46, 0x6f, 0x62, 0x67, 0x32, 0x50, 0x39, 0x41, 0x33, 0x66, 0x76, 0x51, 0x51, 0x6f, 0x68, 0x2f, 0x6f, 0x7a, 0x4d, 0x36, 0x4c, 0x6c, 0x77, 0x65, 0x51, 0x52, 0x47, 0x42, 0x59, 0x38, 0x34, 0x59, 0x63, 0x57, 0x73, 0x72, 0x37, 0x4b, 0x61, 0x4b, 0x74, 0x7a, 0x46, 0x63, 0x4f, 0x6d, 0x70, 0x48, 0x34, 0x4d, 0x4e, 0x35, 0x0a, 0x57, 0x64, 0x59, 0x67, 0x47, 0x71, 0x2f, 0x79, 0x61, 0x70, 0x69, 0x71, 0x63, 0x72, 0x78, 0x58, 0x53, 0x74, 0x4a, 0x4c, 0x6e, 0x62, 0x73, 0x51, 0x2f, 0x4c, 0x42, 0x4d, 0x51, 0x65, 0x58, 0x74, 0x48, 0x54, 0x31, 0x65, 0x4b, 0x4a, 0x32, 0x63, 0x7a, 0x4c, 0x2b, 0x7a, 0x55, 0x64, 0x71, 0x6e, 0x52, 0x2b, 0x57, 0x45, 0x55, 0x77, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x0a, 0x46, 0x67, 0x51, 0x55, 0x75, 0x36, 0x39, 0x2b, 0x41, 0x6a, 0x33, 0x36, 0x70, 0x76, 0x45, 0x38, 0x68, 0x49, 0x36, 0x74, 0x37, 0x6a, 0x69, 0x59, 0x37, 0x4e, 0x6b, 0x79, 0x4d, 0x74, 0x51, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x45, 0x47, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x0a, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4d, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x42, 0x41, 0x41, 0x72, 0x78, 0x31, 0x55, 0x61, 0x45, 0x74, 0x36, 0x35, 0x52, 0x75, 0x32, 0x79, 0x79, 0x54, 0x55, 0x45, 0x55, 0x41, 0x4a, 0x4e, 0x4d, 0x6e, 0x4d, 0x76, 0x6c, 0x77, 0x46, 0x54, 0x50, 0x6f, 0x43, 0x57, 0x4f, 0x41, 0x76, 0x6e, 0x39, 0x73, 0x4b, 0x49, 0x4e, 0x39, 0x53, 0x43, 0x59, 0x50, 0x42, 0x4d, 0x74, 0x0a, 0x72, 0x46, 0x61, 0x69, 0x73, 0x4e, 0x5a, 0x2b, 0x45, 0x5a, 0x4c, 0x70, 0x4c, 0x72, 0x71, 0x65, 0x4c, 0x70, 0x70, 0x79, 0x73, 0x62, 0x30, 0x5a, 0x52, 0x47, 0x78, 0x68, 0x4e, 0x61, 0x4b, 0x61, 0x74, 0x42, 0x59, 0x53, 0x61, 0x56, 0x71, 0x4d, 0x34, 0x64, 0x63, 0x2b, 0x70, 0x42, 0x72, 0x6f, 0x4c, 0x77, 0x50, 0x30, 0x72, 0x6d, 0x45, 0x64, 0x45, 0x42, 0x73, 0x71, 0x70, 0x49, 0x74, 0x36, 0x78, 0x66, 0x34, 0x46, 0x70, 0x75, 0x48, 0x41, 0x31, 0x73, 0x6a, 0x2b, 0x0a, 0x6e, 0x71, 0x36, 0x50, 0x4b, 0x37, 0x6f, 0x39, 0x6d, 0x66, 0x6a, 0x59, 0x63, 0x77, 0x6c, 0x59, 0x52, 0x6d, 0x36, 0x6d, 0x6e, 0x50, 0x54, 0x58, 0x4a, 0x39, 0x4f, 0x56, 0x32, 0x6a, 0x65, 0x44, 0x63, 0x68, 0x7a, 0x54, 0x63, 0x2b, 0x43, 0x69, 0x52, 0x35, 0x6b, 0x44, 0x4f, 0x46, 0x33, 0x56, 0x53, 0x58, 0x6b, 0x41, 0x4b, 0x52, 0x7a, 0x48, 0x37, 0x4a, 0x73, 0x67, 0x48, 0x41, 0x63, 0x6b, 0x61, 0x56, 0x64, 0x34, 0x73, 0x6a, 0x6e, 0x38, 0x4f, 0x6f, 0x53, 0x67, 0x0a, 0x74, 0x5a, 0x78, 0x38, 0x6a, 0x62, 0x38, 0x75, 0x6b, 0x32, 0x49, 0x6e, 0x74, 0x7a, 0x6e, 0x61, 0x46, 0x78, 0x69, 0x75, 0x76, 0x54, 0x77, 0x4a, 0x61, 0x50, 0x2b, 0x45, 0x6d, 0x7a, 0x7a, 0x56, 0x31, 0x67, 0x73, 0x44, 0x34, 0x31, 0x65, 0x65, 0x46, 0x50, 0x66, 0x52, 0x36, 0x30, 0x2f, 0x49, 0x76, 0x59, 0x63, 0x6a, 0x74, 0x37, 0x5a, 0x4a, 0x51, 0x33, 0x6d, 0x46, 0x58, 0x4c, 0x72, 0x72, 0x6b, 0x67, 0x75, 0x68, 0x78, 0x75, 0x68, 0x6f, 0x71, 0x45, 0x77, 0x57, 0x0a, 0x73, 0x52, 0x71, 0x5a, 0x43, 0x75, 0x68, 0x54, 0x4c, 0x4a, 0x4b, 0x37, 0x6f, 0x51, 0x6b, 0x59, 0x64, 0x51, 0x78, 0x6c, 0x71, 0x48, 0x76, 0x4c, 0x49, 0x37, 0x63, 0x61, 0x77, 0x69, 0x69, 0x46, 0x77, 0x78, 0x76, 0x2f, 0x30, 0x43, 0x74, 0x69, 0x37, 0x36, 0x52, 0x37, 0x43, 0x5a, 0x47, 0x59, 0x5a, 0x34, 0x77, 0x55, 0x41, 0x63, 0x31, 0x6f, 0x42, 0x6d, 0x70, 0x6a, 0x49, 0x58, 0x55, 0x44, 0x67, 0x49, 0x69, 0x4b, 0x62, 0x6f, 0x48, 0x47, 0x68, 0x66, 0x4b, 0x70, 0x0a, 0x70, 0x43, 0x33, 0x6e, 0x39, 0x4b, 0x55, 0x6b, 0x45, 0x45, 0x65, 0x44, 0x79, 0x73, 0x33, 0x30, 0x6a, 0x58, 0x6c, 0x59, 0x73, 0x51, 0x61, 0x62, 0x35, 0x78, 0x6f, 0x71, 0x32, 0x5a, 0x30, 0x42, 0x31, 0x35, 0x52, 0x39, 0x37, 0x51, 0x4e, 0x4b, 0x79, 0x76, 0x44, 0x62, 0x36, 0x4b, 0x6b, 0x42, 0x50, 0x76, 0x56, 0x57, 0x6d, 0x63, 0x6b, 0x65, 0x6a, 0x6b, 0x6b, 0x39, 0x75, 0x2b, 0x55, 0x4a, 0x75, 0x65, 0x42, 0x50, 0x53, 0x5a, 0x49, 0x39, 0x46, 0x6f, 0x4a, 0x41, 0x0a, 0x7a, 0x4d, 0x78, 0x5a, 0x78, 0x75, 0x59, 0x36, 0x37, 0x52, 0x49, 0x75, 0x61, 0x54, 0x78, 0x73, 0x6c, 0x62, 0x48, 0x39, 0x71, 0x68, 0x31, 0x37, 0x66, 0x34, 0x61, 0x2b, 0x48, 0x67, 0x34, 0x79, 0x52, 0x76, 0x76, 0x37, 0x45, 0x34, 0x39, 0x31, 0x66, 0x30, 0x79, 0x4c, 0x53, 0x30, 0x5a, 0x6a, 0x2f, 0x67, 0x41, 0x30, 0x51, 0x48, 0x44, 0x42, 0x77, 0x37, 0x6d, 0x68, 0x33, 0x61, 0x5a, 0x77, 0x34, 0x67, 0x53, 0x7a, 0x51, 0x62, 0x7a, 0x70, 0x67, 0x4a, 0x48, 0x71, 0x0a, 0x5a, 0x4a, 0x78, 0x36, 0x34, 0x53, 0x49, 0x44, 0x71, 0x5a, 0x78, 0x75, 0x62, 0x77, 0x35, 0x6c, 0x54, 0x32, 0x79, 0x48, 0x68, 0x31, 0x37, 0x7a, 0x62, 0x71, 0x44, 0x35, 0x64, 0x61, 0x57, 0x62, 0x51, 0x4f, 0x68, 0x54, 0x73, 0x69, 0x65, 0x64, 0x53, 0x72, 0x6e, 0x41, 0x64, 0x79, 0x47, 0x4e, 0x2f, 0x34, 0x66, 0x79, 0x33, 0x72, 0x79, 0x4d, 0x37, 0x78, 0x66, 0x66, 0x74, 0x30, 0x6b, 0x4c, 0x30, 0x66, 0x4a, 0x75, 0x4d, 0x41, 0x73, 0x61, 0x44, 0x6b, 0x35, 0x32, 0x0a, 0x37, 0x52, 0x48, 0x38, 0x39, 0x65, 0x6c, 0x57, 0x73, 0x6e, 0x32, 0x2f, 0x78, 0x32, 0x30, 0x4b, 0x6b, 0x34, 0x79, 0x6c, 0x30, 0x4d, 0x43, 0x32, 0x48, 0x62, 0x34, 0x36, 0x54, 0x70, 0x53, 0x69, 0x31, 0x32, 0x35, 0x73, 0x43, 0x38, 0x4b, 0x4b, 0x66, 0x50, 0x6f, 0x67, 0x38, 0x38, 0x54, 0x6b, 0x35, 0x63, 0x30, 0x4e, 0x71, 0x4d, 0x75, 0x52, 0x6b, 0x72, 0x46, 0x38, 0x68, 0x65, 0x79, 0x31, 0x46, 0x47, 0x6c, 0x6d, 0x44, 0x6f, 0x4c, 0x6e, 0x7a, 0x63, 0x37, 0x49, 0x0a, 0x4c, 0x61, 0x5a, 0x52, 0x66, 0x79, 0x48, 0x42, 0x4e, 0x56, 0x4f, 0x46, 0x42, 0x6b, 0x70, 0x64, 0x6e, 0x36, 0x32, 0x37, 0x47, 0x31, 0x39, 0x30, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x55, 0x53, 0x45, 0x52, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x52, 0x53, 0x41, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x33, 0x6a, 0x43, 0x43, 0x41, 0x38, 0x61, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x41, 0x66, 0x31, 0x74, 0x4d, 0x50, 0x79, 0x6a, 0x79, 0x6c, 0x47, 0x6f, 0x47, 0x37, 0x78, 0x6b, 0x44, 0x6a, 0x55, 0x44, 0x4c, 0x54, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x77, 0x46, 0x41, 0x44, 0x43, 0x42, 0x69, 0x44, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x0a, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x45, 0x7a, 0x41, 0x52, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x67, 0x54, 0x43, 0x6b, 0x35, 0x6c, 0x64, 0x79, 0x42, 0x4b, 0x5a, 0x58, 0x4a, 0x7a, 0x5a, 0x58, 0x6b, 0x78, 0x46, 0x44, 0x41, 0x53, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x63, 0x54, 0x43, 0x30, 0x70, 0x6c, 0x63, 0x6e, 0x4e, 0x6c, 0x65, 0x53, 0x42, 0x44, 0x61, 0x58, 0x52, 0x35, 0x4d, 0x52, 0x34, 0x77, 0x48, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x0a, 0x45, 0x78, 0x56, 0x55, 0x61, 0x47, 0x55, 0x67, 0x56, 0x56, 0x4e, 0x46, 0x55, 0x6c, 0x52, 0x53, 0x56, 0x56, 0x4e, 0x55, 0x49, 0x45, 0x35, 0x6c, 0x64, 0x48, 0x64, 0x76, 0x63, 0x6d, 0x73, 0x78, 0x4c, 0x6a, 0x41, 0x73, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x4a, 0x56, 0x56, 0x54, 0x52, 0x56, 0x4a, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x42, 0x53, 0x55, 0x30, 0x45, 0x67, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x0a, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x69, 0x42, 0x42, 0x64, 0x58, 0x52, 0x6f, 0x62, 0x33, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x54, 0x41, 0x77, 0x4d, 0x6a, 0x41, 0x78, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x7a, 0x67, 0x77, 0x4d, 0x54, 0x45, 0x34, 0x4d, 0x6a, 0x4d, 0x31, 0x4f, 0x54, 0x55, 0x35, 0x57, 0x6a, 0x43, 0x42, 0x69, 0x44, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x0a, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x45, 0x7a, 0x41, 0x52, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x67, 0x54, 0x43, 0x6b, 0x35, 0x6c, 0x64, 0x79, 0x42, 0x4b, 0x5a, 0x58, 0x4a, 0x7a, 0x5a, 0x58, 0x6b, 0x78, 0x46, 0x44, 0x41, 0x53, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x63, 0x54, 0x43, 0x30, 0x70, 0x6c, 0x63, 0x6e, 0x4e, 0x6c, 0x65, 0x53, 0x42, 0x44, 0x61, 0x58, 0x52, 0x35, 0x4d, 0x52, 0x34, 0x77, 0x48, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x0a, 0x45, 0x78, 0x56, 0x55, 0x61, 0x47, 0x55, 0x67, 0x56, 0x56, 0x4e, 0x46, 0x55, 0x6c, 0x52, 0x53, 0x56, 0x56, 0x4e, 0x55, 0x49, 0x45, 0x35, 0x6c, 0x64, 0x48, 0x64, 0x76, 0x63, 0x6d, 0x73, 0x78, 0x4c, 0x6a, 0x41, 0x73, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x4a, 0x56, 0x56, 0x54, 0x52, 0x56, 0x4a, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x42, 0x53, 0x55, 0x30, 0x45, 0x67, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x0a, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x69, 0x42, 0x42, 0x64, 0x58, 0x52, 0x6f, 0x62, 0x33, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x77, 0x67, 0x67, 0x49, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x49, 0x4b, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x43, 0x41, 0x45, 0x6d, 0x55, 0x58, 0x4e, 0x67, 0x37, 0x44, 0x32, 0x77, 0x69, 0x7a, 0x0a, 0x30, 0x4b, 0x78, 0x58, 0x44, 0x58, 0x62, 0x74, 0x7a, 0x53, 0x66, 0x54, 0x54, 0x4b, 0x31, 0x51, 0x67, 0x32, 0x48, 0x69, 0x71, 0x69, 0x42, 0x4e, 0x43, 0x53, 0x31, 0x6b, 0x43, 0x64, 0x7a, 0x4f, 0x69, 0x5a, 0x2f, 0x4d, 0x50, 0x61, 0x6e, 0x73, 0x39, 0x73, 0x2f, 0x42, 0x33, 0x50, 0x48, 0x54, 0x73, 0x64, 0x5a, 0x37, 0x4e, 0x79, 0x67, 0x52, 0x4b, 0x30, 0x66, 0x61, 0x4f, 0x63, 0x61, 0x38, 0x4f, 0x68, 0x6d, 0x30, 0x58, 0x36, 0x61, 0x39, 0x66, 0x5a, 0x32, 0x6a, 0x0a, 0x59, 0x30, 0x4b, 0x32, 0x64, 0x76, 0x4b, 0x70, 0x4f, 0x79, 0x75, 0x52, 0x2b, 0x4f, 0x4a, 0x76, 0x30, 0x4f, 0x77, 0x57, 0x49, 0x4a, 0x41, 0x4a, 0x50, 0x75, 0x4c, 0x6f, 0x64, 0x4d, 0x6b, 0x59, 0x74, 0x4a, 0x48, 0x55, 0x59, 0x6d, 0x54, 0x62, 0x66, 0x36, 0x4d, 0x47, 0x38, 0x59, 0x67, 0x59, 0x61, 0x70, 0x41, 0x69, 0x50, 0x4c, 0x7a, 0x2b, 0x45, 0x2f, 0x43, 0x48, 0x46, 0x48, 0x76, 0x32, 0x35, 0x42, 0x2b, 0x4f, 0x31, 0x4f, 0x52, 0x52, 0x78, 0x68, 0x46, 0x6e, 0x0a, 0x52, 0x67, 0x68, 0x52, 0x79, 0x34, 0x59, 0x55, 0x56, 0x44, 0x2b, 0x38, 0x4d, 0x2f, 0x35, 0x2b, 0x62, 0x4a, 0x7a, 0x2f, 0x46, 0x70, 0x30, 0x59, 0x76, 0x56, 0x47, 0x4f, 0x4e, 0x61, 0x61, 0x6e, 0x5a, 0x73, 0x68, 0x79, 0x5a, 0x39, 0x73, 0x68, 0x5a, 0x72, 0x48, 0x55, 0x6d, 0x33, 0x67, 0x44, 0x77, 0x46, 0x41, 0x36, 0x36, 0x4d, 0x7a, 0x77, 0x33, 0x4c, 0x79, 0x65, 0x54, 0x50, 0x36, 0x76, 0x42, 0x5a, 0x59, 0x31, 0x48, 0x31, 0x64, 0x61, 0x74, 0x2f, 0x2f, 0x4f, 0x0a, 0x2b, 0x54, 0x32, 0x33, 0x4c, 0x4c, 0x62, 0x32, 0x56, 0x4e, 0x33, 0x49, 0x35, 0x78, 0x49, 0x36, 0x54, 0x61, 0x35, 0x4d, 0x69, 0x72, 0x64, 0x63, 0x6d, 0x72, 0x53, 0x33, 0x49, 0x44, 0x33, 0x4b, 0x66, 0x79, 0x49, 0x30, 0x72, 0x6e, 0x34, 0x37, 0x61, 0x47, 0x59, 0x42, 0x52, 0x4f, 0x63, 0x42, 0x54, 0x6b, 0x5a, 0x54, 0x6d, 0x7a, 0x4e, 0x67, 0x39, 0x35, 0x53, 0x2b, 0x55, 0x7a, 0x65, 0x51, 0x63, 0x30, 0x50, 0x7a, 0x4d, 0x73, 0x4e, 0x54, 0x37, 0x39, 0x75, 0x71, 0x0a, 0x2f, 0x6e, 0x52, 0x4f, 0x61, 0x63, 0x64, 0x72, 0x6a, 0x47, 0x43, 0x54, 0x33, 0x73, 0x54, 0x48, 0x44, 0x4e, 0x2f, 0x68, 0x4d, 0x71, 0x37, 0x4d, 0x6b, 0x7a, 0x74, 0x52, 0x65, 0x4a, 0x56, 0x6e, 0x69, 0x2b, 0x34, 0x39, 0x56, 0x76, 0x34, 0x4d, 0x30, 0x47, 0x6b, 0x50, 0x47, 0x77, 0x2f, 0x7a, 0x4a, 0x53, 0x5a, 0x72, 0x4d, 0x32, 0x33, 0x33, 0x62, 0x6b, 0x66, 0x36, 0x63, 0x30, 0x50, 0x6c, 0x66, 0x67, 0x36, 0x6c, 0x5a, 0x72, 0x45, 0x70, 0x66, 0x44, 0x4b, 0x45, 0x0a, 0x59, 0x31, 0x57, 0x4a, 0x78, 0x41, 0x33, 0x42, 0x6b, 0x31, 0x51, 0x77, 0x47, 0x52, 0x4f, 0x73, 0x30, 0x33, 0x30, 0x33, 0x70, 0x2b, 0x74, 0x64, 0x4f, 0x6d, 0x77, 0x31, 0x58, 0x4e, 0x74, 0x42, 0x31, 0x78, 0x4c, 0x61, 0x71, 0x55, 0x6b, 0x4c, 0x33, 0x39, 0x69, 0x41, 0x69, 0x67, 0x6d, 0x54, 0x59, 0x6f, 0x36, 0x31, 0x5a, 0x73, 0x38, 0x6c, 0x69, 0x4d, 0x32, 0x45, 0x75, 0x4c, 0x45, 0x2f, 0x70, 0x44, 0x6b, 0x50, 0x32, 0x51, 0x4b, 0x65, 0x36, 0x78, 0x4a, 0x4d, 0x0a, 0x6c, 0x58, 0x7a, 0x7a, 0x61, 0x77, 0x57, 0x70, 0x58, 0x68, 0x61, 0x44, 0x7a, 0x4c, 0x68, 0x6e, 0x34, 0x75, 0x67, 0x54, 0x6e, 0x63, 0x78, 0x62, 0x67, 0x74, 0x4e, 0x4d, 0x73, 0x2b, 0x31, 0x62, 0x2f, 0x39, 0x37, 0x6c, 0x63, 0x36, 0x77, 0x6a, 0x4f, 0x79, 0x30, 0x41, 0x76, 0x7a, 0x56, 0x56, 0x64, 0x41, 0x6c, 0x4a, 0x32, 0x45, 0x6c, 0x59, 0x47, 0x6e, 0x2b, 0x53, 0x4e, 0x75, 0x5a, 0x52, 0x6b, 0x67, 0x37, 0x7a, 0x4a, 0x6e, 0x30, 0x63, 0x54, 0x52, 0x65, 0x38, 0x0a, 0x79, 0x65, 0x78, 0x44, 0x4a, 0x74, 0x43, 0x2f, 0x51, 0x56, 0x39, 0x41, 0x71, 0x55, 0x52, 0x45, 0x39, 0x4a, 0x6e, 0x6e, 0x56, 0x34, 0x65, 0x65, 0x55, 0x42, 0x39, 0x58, 0x56, 0x4b, 0x67, 0x2b, 0x2f, 0x58, 0x52, 0x6a, 0x4c, 0x37, 0x46, 0x51, 0x5a, 0x51, 0x6e, 0x6d, 0x57, 0x45, 0x49, 0x75, 0x51, 0x78, 0x70, 0x4d, 0x74, 0x50, 0x41, 0x6c, 0x52, 0x31, 0x6e, 0x36, 0x42, 0x42, 0x36, 0x54, 0x31, 0x43, 0x5a, 0x47, 0x53, 0x6c, 0x43, 0x42, 0x73, 0x74, 0x36, 0x2b, 0x0a, 0x65, 0x4c, 0x66, 0x38, 0x5a, 0x78, 0x58, 0x68, 0x79, 0x56, 0x65, 0x45, 0x48, 0x67, 0x39, 0x6a, 0x31, 0x75, 0x6c, 0x69, 0x75, 0x74, 0x5a, 0x66, 0x56, 0x53, 0x37, 0x71, 0x58, 0x4d, 0x59, 0x6f, 0x43, 0x41, 0x51, 0x6c, 0x4f, 0x62, 0x67, 0x4f, 0x4b, 0x36, 0x6e, 0x79, 0x54, 0x4a, 0x63, 0x63, 0x42, 0x7a, 0x38, 0x4e, 0x55, 0x76, 0x58, 0x74, 0x37, 0x79, 0x2b, 0x43, 0x44, 0x77, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x64, 0x0a, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x55, 0x33, 0x6d, 0x2f, 0x57, 0x71, 0x6f, 0x72, 0x53, 0x73, 0x39, 0x55, 0x67, 0x4f, 0x48, 0x59, 0x6d, 0x38, 0x43, 0x64, 0x38, 0x72, 0x49, 0x44, 0x5a, 0x73, 0x73, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x45, 0x47, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x0a, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4d, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x42, 0x41, 0x46, 0x7a, 0x55, 0x66, 0x41, 0x33, 0x50, 0x39, 0x77, 0x46, 0x39, 0x51, 0x5a, 0x6c, 0x6c, 0x44, 0x48, 0x50, 0x46, 0x55, 0x70, 0x2f, 0x4c, 0x2b, 0x4d, 0x2b, 0x5a, 0x42, 0x6e, 0x38, 0x62, 0x32, 0x6b, 0x4d, 0x56, 0x6e, 0x35, 0x34, 0x43, 0x56, 0x56, 0x65, 0x57, 0x0a, 0x46, 0x50, 0x46, 0x53, 0x50, 0x43, 0x65, 0x48, 0x6c, 0x43, 0x6a, 0x74, 0x48, 0x7a, 0x6f, 0x42, 0x4e, 0x36, 0x4a, 0x32, 0x2f, 0x46, 0x4e, 0x51, 0x77, 0x49, 0x53, 0x62, 0x78, 0x6d, 0x74, 0x4f, 0x75, 0x6f, 0x77, 0x68, 0x54, 0x36, 0x4b, 0x4f, 0x56, 0x57, 0x4b, 0x52, 0x38, 0x32, 0x6b, 0x56, 0x32, 0x4c, 0x79, 0x49, 0x34, 0x38, 0x53, 0x71, 0x43, 0x2f, 0x33, 0x76, 0x71, 0x4f, 0x6c, 0x4c, 0x56, 0x53, 0x6f, 0x47, 0x49, 0x47, 0x31, 0x56, 0x65, 0x43, 0x6b, 0x5a, 0x0a, 0x37, 0x6c, 0x38, 0x77, 0x58, 0x45, 0x73, 0x6b, 0x45, 0x56, 0x58, 0x2f, 0x4a, 0x4a, 0x70, 0x75, 0x58, 0x69, 0x6f, 0x72, 0x37, 0x67, 0x74, 0x4e, 0x6e, 0x33, 0x2f, 0x33, 0x41, 0x54, 0x69, 0x55, 0x46, 0x4a, 0x56, 0x44, 0x42, 0x77, 0x6e, 0x37, 0x59, 0x4b, 0x6e, 0x75, 0x48, 0x4b, 0x73, 0x53, 0x6a, 0x4b, 0x43, 0x61, 0x58, 0x71, 0x65, 0x59, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x7a, 0x38, 0x49, 0x2b, 0x38, 0x6a, 0x52, 0x52, 0x61, 0x38, 0x59, 0x46, 0x57, 0x53, 0x51, 0x0a, 0x45, 0x67, 0x39, 0x7a, 0x4b, 0x43, 0x37, 0x46, 0x34, 0x69, 0x52, 0x4f, 0x2f, 0x46, 0x6a, 0x73, 0x38, 0x50, 0x52, 0x46, 0x2f, 0x69, 0x4b, 0x7a, 0x36, 0x79, 0x2b, 0x4f, 0x30, 0x74, 0x6c, 0x46, 0x59, 0x51, 0x58, 0x42, 0x6c, 0x32, 0x2b, 0x6f, 0x64, 0x6e, 0x4b, 0x50, 0x69, 0x34, 0x77, 0x32, 0x72, 0x37, 0x38, 0x4e, 0x42, 0x63, 0x35, 0x78, 0x6a, 0x65, 0x61, 0x6d, 0x62, 0x78, 0x39, 0x73, 0x70, 0x6e, 0x46, 0x69, 0x78, 0x64, 0x6a, 0x51, 0x67, 0x33, 0x49, 0x4d, 0x0a, 0x38, 0x57, 0x63, 0x52, 0x69, 0x51, 0x79, 0x63, 0x45, 0x30, 0x78, 0x79, 0x4e, 0x4e, 0x2b, 0x38, 0x31, 0x58, 0x48, 0x66, 0x71, 0x6e, 0x48, 0x64, 0x34, 0x62, 0x6c, 0x73, 0x6a, 0x44, 0x77, 0x53, 0x58, 0x57, 0x58, 0x61, 0x76, 0x56, 0x63, 0x53, 0x74, 0x6b, 0x4e, 0x72, 0x2f, 0x2b, 0x58, 0x65, 0x54, 0x57, 0x59, 0x52, 0x55, 0x63, 0x2b, 0x5a, 0x72, 0x75, 0x77, 0x58, 0x74, 0x75, 0x68, 0x78, 0x6b, 0x59, 0x7a, 0x65, 0x53, 0x66, 0x37, 0x64, 0x4e, 0x58, 0x47, 0x69, 0x0a, 0x46, 0x53, 0x65, 0x55, 0x48, 0x4d, 0x39, 0x68, 0x34, 0x79, 0x61, 0x37, 0x62, 0x36, 0x4e, 0x6e, 0x4a, 0x53, 0x46, 0x64, 0x35, 0x74, 0x30, 0x64, 0x43, 0x79, 0x35, 0x6f, 0x47, 0x7a, 0x75, 0x43, 0x72, 0x2b, 0x79, 0x44, 0x5a, 0x34, 0x58, 0x55, 0x6d, 0x46, 0x46, 0x30, 0x73, 0x62, 0x6d, 0x5a, 0x67, 0x49, 0x6e, 0x2f, 0x66, 0x33, 0x67, 0x5a, 0x58, 0x48, 0x6c, 0x4b, 0x59, 0x43, 0x36, 0x53, 0x51, 0x4b, 0x35, 0x4d, 0x4e, 0x79, 0x6f, 0x73, 0x79, 0x63, 0x64, 0x69, 0x0a, 0x79, 0x41, 0x35, 0x64, 0x39, 0x7a, 0x5a, 0x62, 0x79, 0x75, 0x41, 0x6c, 0x4a, 0x51, 0x47, 0x30, 0x33, 0x52, 0x6f, 0x48, 0x6e, 0x48, 0x63, 0x41, 0x50, 0x39, 0x44, 0x63, 0x31, 0x65, 0x77, 0x39, 0x31, 0x50, 0x71, 0x37, 0x50, 0x38, 0x79, 0x46, 0x31, 0x6d, 0x39, 0x2f, 0x71, 0x53, 0x33, 0x66, 0x75, 0x51, 0x4c, 0x33, 0x39, 0x5a, 0x65, 0x61, 0x74, 0x54, 0x58, 0x61, 0x77, 0x32, 0x65, 0x77, 0x68, 0x30, 0x71, 0x70, 0x4b, 0x4a, 0x34, 0x6a, 0x6a, 0x76, 0x39, 0x63, 0x0a, 0x4a, 0x32, 0x76, 0x68, 0x73, 0x45, 0x2f, 0x7a, 0x42, 0x2b, 0x34, 0x41, 0x4c, 0x74, 0x52, 0x5a, 0x68, 0x38, 0x74, 0x53, 0x51, 0x5a, 0x58, 0x71, 0x39, 0x45, 0x66, 0x58, 0x37, 0x6d, 0x52, 0x42, 0x56, 0x58, 0x79, 0x4e, 0x57, 0x51, 0x4b, 0x56, 0x33, 0x57, 0x4b, 0x64, 0x77, 0x72, 0x6e, 0x75, 0x57, 0x69, 0x68, 0x30, 0x68, 0x4b, 0x57, 0x62, 0x74, 0x35, 0x44, 0x48, 0x44, 0x41, 0x66, 0x66, 0x39, 0x59, 0x6b, 0x32, 0x64, 0x44, 0x4c, 0x57, 0x4b, 0x4d, 0x47, 0x77, 0x0a, 0x73, 0x41, 0x76, 0x67, 0x6e, 0x45, 0x7a, 0x44, 0x48, 0x4e, 0x62, 0x38, 0x34, 0x32, 0x6d, 0x31, 0x52, 0x30, 0x61, 0x42, 0x4c, 0x36, 0x4b, 0x43, 0x71, 0x39, 0x4e, 0x6a, 0x52, 0x48, 0x44, 0x45, 0x6a, 0x66, 0x38, 0x74, 0x4d, 0x37, 0x71, 0x74, 0x6a, 0x33, 0x75, 0x31, 0x63, 0x49, 0x69, 0x75, 0x50, 0x68, 0x6e, 0x50, 0x51, 0x43, 0x6a, 0x59, 0x2f, 0x4d, 0x69, 0x51, 0x75, 0x31, 0x32, 0x5a, 0x49, 0x76, 0x56, 0x53, 0x35, 0x6c, 0x6a, 0x46, 0x48, 0x34, 0x67, 0x78, 0x0a, 0x51, 0x2b, 0x36, 0x49, 0x48, 0x64, 0x66, 0x47, 0x6a, 0x6a, 0x78, 0x44, 0x61, 0x68, 0x32, 0x6e, 0x47, 0x4e, 0x35, 0x39, 0x50, 0x52, 0x62, 0x78, 0x59, 0x76, 0x6e, 0x4b, 0x6b, 0x4b, 0x6a, 0x39, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x55, 0x53, 0x45, 0x52, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x45, 0x43, 0x43, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x6a, 0x7a, 0x43, 0x43, 0x41, 0x68, 0x57, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x58, 0x49, 0x75, 0x5a, 0x78, 0x56, 0x71, 0x55, 0x78, 0x64, 0x4a, 0x78, 0x56, 0x74, 0x37, 0x4e, 0x69, 0x59, 0x44, 0x4d, 0x4a, 0x6a, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x7a, 0x43, 0x42, 0x69, 0x44, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x0a, 0x56, 0x56, 0x4d, 0x78, 0x45, 0x7a, 0x41, 0x52, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x67, 0x54, 0x43, 0x6b, 0x35, 0x6c, 0x64, 0x79, 0x42, 0x4b, 0x5a, 0x58, 0x4a, 0x7a, 0x5a, 0x58, 0x6b, 0x78, 0x46, 0x44, 0x41, 0x53, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x63, 0x54, 0x43, 0x30, 0x70, 0x6c, 0x63, 0x6e, 0x4e, 0x6c, 0x65, 0x53, 0x42, 0x44, 0x61, 0x58, 0x52, 0x35, 0x4d, 0x52, 0x34, 0x77, 0x48, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x78, 0x56, 0x55, 0x0a, 0x61, 0x47, 0x55, 0x67, 0x56, 0x56, 0x4e, 0x46, 0x55, 0x6c, 0x52, 0x53, 0x56, 0x56, 0x4e, 0x55, 0x49, 0x45, 0x35, 0x6c, 0x64, 0x48, 0x64, 0x76, 0x63, 0x6d, 0x73, 0x78, 0x4c, 0x6a, 0x41, 0x73, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x4a, 0x56, 0x56, 0x54, 0x52, 0x56, 0x4a, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x42, 0x46, 0x51, 0x30, 0x4d, 0x67, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x0a, 0x62, 0x69, 0x42, 0x42, 0x64, 0x58, 0x52, 0x6f, 0x62, 0x33, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x54, 0x41, 0x77, 0x4d, 0x6a, 0x41, 0x78, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x7a, 0x67, 0x77, 0x4d, 0x54, 0x45, 0x34, 0x4d, 0x6a, 0x4d, 0x31, 0x4f, 0x54, 0x55, 0x35, 0x57, 0x6a, 0x43, 0x42, 0x69, 0x44, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x0a, 0x56, 0x56, 0x4d, 0x78, 0x45, 0x7a, 0x41, 0x52, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x67, 0x54, 0x43, 0x6b, 0x35, 0x6c, 0x64, 0x79, 0x42, 0x4b, 0x5a, 0x58, 0x4a, 0x7a, 0x5a, 0x58, 0x6b, 0x78, 0x46, 0x44, 0x41, 0x53, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x63, 0x54, 0x43, 0x30, 0x70, 0x6c, 0x63, 0x6e, 0x4e, 0x6c, 0x65, 0x53, 0x42, 0x44, 0x61, 0x58, 0x52, 0x35, 0x4d, 0x52, 0x34, 0x77, 0x48, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x78, 0x56, 0x55, 0x0a, 0x61, 0x47, 0x55, 0x67, 0x56, 0x56, 0x4e, 0x46, 0x55, 0x6c, 0x52, 0x53, 0x56, 0x56, 0x4e, 0x55, 0x49, 0x45, 0x35, 0x6c, 0x64, 0x48, 0x64, 0x76, 0x63, 0x6d, 0x73, 0x78, 0x4c, 0x6a, 0x41, 0x73, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x4a, 0x56, 0x56, 0x54, 0x52, 0x56, 0x4a, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x42, 0x46, 0x51, 0x30, 0x4d, 0x67, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x0a, 0x62, 0x69, 0x42, 0x42, 0x64, 0x58, 0x52, 0x6f, 0x62, 0x33, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x77, 0x64, 0x6a, 0x41, 0x51, 0x42, 0x67, 0x63, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x49, 0x42, 0x42, 0x67, 0x55, 0x72, 0x67, 0x51, 0x51, 0x41, 0x49, 0x67, 0x4e, 0x69, 0x41, 0x41, 0x51, 0x61, 0x72, 0x46, 0x52, 0x61, 0x71, 0x66, 0x6c, 0x6f, 0x49, 0x2b, 0x64, 0x36, 0x31, 0x53, 0x52, 0x76, 0x55, 0x38, 0x5a, 0x61, 0x32, 0x45, 0x75, 0x72, 0x78, 0x74, 0x57, 0x32, 0x0a, 0x30, 0x65, 0x5a, 0x7a, 0x63, 0x61, 0x37, 0x64, 0x6e, 0x4e, 0x59, 0x4d, 0x59, 0x66, 0x33, 0x62, 0x6f, 0x49, 0x6b, 0x44, 0x75, 0x41, 0x55, 0x55, 0x37, 0x46, 0x66, 0x4f, 0x37, 0x6c, 0x30, 0x2f, 0x34, 0x69, 0x47, 0x7a, 0x7a, 0x76, 0x66, 0x55, 0x69, 0x6e, 0x6e, 0x67, 0x6f, 0x34, 0x4e, 0x2b, 0x4c, 0x5a, 0x66, 0x51, 0x59, 0x63, 0x54, 0x78, 0x6d, 0x64, 0x77, 0x6c, 0x6b, 0x57, 0x4f, 0x72, 0x66, 0x7a, 0x43, 0x6a, 0x74, 0x48, 0x44, 0x69, 0x78, 0x36, 0x45, 0x7a, 0x0a, 0x6e, 0x50, 0x4f, 0x2f, 0x4c, 0x6c, 0x78, 0x54, 0x73, 0x56, 0x2b, 0x7a, 0x66, 0x54, 0x4a, 0x2f, 0x69, 0x6a, 0x54, 0x6a, 0x65, 0x58, 0x6d, 0x6a, 0x51, 0x6a, 0x42, 0x41, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x51, 0x36, 0x34, 0x51, 0x6d, 0x47, 0x31, 0x4d, 0x38, 0x5a, 0x77, 0x70, 0x5a, 0x32, 0x64, 0x45, 0x6c, 0x32, 0x33, 0x4f, 0x41, 0x31, 0x78, 0x6d, 0x4e, 0x6a, 0x6d, 0x6a, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x0a, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x51, 0x59, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x77, 0x4e, 0x6f, 0x41, 0x44, 0x42, 0x6c, 0x41, 0x6a, 0x41, 0x32, 0x5a, 0x36, 0x45, 0x57, 0x43, 0x4e, 0x7a, 0x6b, 0x6c, 0x77, 0x42, 0x42, 0x0a, 0x48, 0x55, 0x36, 0x2b, 0x34, 0x57, 0x4d, 0x42, 0x7a, 0x7a, 0x75, 0x71, 0x51, 0x68, 0x46, 0x6b, 0x6f, 0x4a, 0x32, 0x55, 0x4f, 0x51, 0x49, 0x52, 0x65, 0x56, 0x78, 0x37, 0x48, 0x66, 0x70, 0x6b, 0x75, 0x65, 0x34, 0x57, 0x51, 0x72, 0x4f, 0x2f, 0x69, 0x73, 0x49, 0x4a, 0x78, 0x4f, 0x7a, 0x6b, 0x73, 0x55, 0x30, 0x43, 0x4d, 0x51, 0x44, 0x70, 0x4b, 0x6d, 0x46, 0x48, 0x6a, 0x46, 0x4a, 0x4b, 0x53, 0x30, 0x34, 0x59, 0x63, 0x50, 0x62, 0x57, 0x52, 0x4e, 0x5a, 0x75, 0x0a, 0x39, 0x59, 0x4f, 0x36, 0x62, 0x56, 0x69, 0x39, 0x4a, 0x4e, 0x6c, 0x57, 0x53, 0x4f, 0x72, 0x76, 0x78, 0x4b, 0x4a, 0x47, 0x67, 0x59, 0x68, 0x71, 0x4f, 0x6b, 0x62, 0x52, 0x71, 0x5a, 0x74, 0x4e, 0x79, 0x57, 0x48, 0x61, 0x30, 0x56, 0x31, 0x58, 0x61, 0x68, 0x67, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x45, 0x43, 0x43, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x52, 0x35, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x48, 0x6a, 0x43, 0x43, 0x41, 0x61, 0x53, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x52, 0x59, 0x46, 0x6c, 0x4a, 0x34, 0x43, 0x59, 0x75, 0x75, 0x31, 0x58, 0x35, 0x43, 0x6e, 0x65, 0x4b, 0x63, 0x66, 0x6c, 0x4b, 0x32, 0x47, 0x77, 0x77, 0x43, 0x67, 0x59, 0x49, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x45, 0x41, 0x77, 0x4d, 0x77, 0x55, 0x44, 0x45, 0x6b, 0x4d, 0x43, 0x49, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x78, 0x4d, 0x62, 0x0a, 0x52, 0x32, 0x78, 0x76, 0x59, 0x6d, 0x46, 0x73, 0x55, 0x32, 0x6c, 0x6e, 0x62, 0x69, 0x42, 0x46, 0x51, 0x30, 0x4d, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x51, 0x53, 0x41, 0x74, 0x49, 0x46, 0x49, 0x31, 0x4d, 0x52, 0x4d, 0x77, 0x45, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x77, 0x70, 0x48, 0x62, 0x47, 0x39, 0x69, 0x59, 0x57, 0x78, 0x54, 0x61, 0x57, 0x64, 0x75, 0x4d, 0x52, 0x4d, 0x77, 0x45, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x0a, 0x45, 0x77, 0x70, 0x48, 0x62, 0x47, 0x39, 0x69, 0x59, 0x57, 0x78, 0x54, 0x61, 0x57, 0x64, 0x75, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x45, 0x79, 0x4d, 0x54, 0x45, 0x78, 0x4d, 0x7a, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x46, 0x6f, 0x58, 0x44, 0x54, 0x4d, 0x34, 0x4d, 0x44, 0x45, 0x78, 0x4f, 0x54, 0x41, 0x7a, 0x4d, 0x54, 0x51, 0x77, 0x4e, 0x31, 0x6f, 0x77, 0x55, 0x44, 0x45, 0x6b, 0x4d, 0x43, 0x49, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x78, 0x4d, 0x62, 0x0a, 0x52, 0x32, 0x78, 0x76, 0x59, 0x6d, 0x46, 0x73, 0x55, 0x32, 0x6c, 0x6e, 0x62, 0x69, 0x42, 0x46, 0x51, 0x30, 0x4d, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x51, 0x53, 0x41, 0x74, 0x49, 0x46, 0x49, 0x31, 0x4d, 0x52, 0x4d, 0x77, 0x45, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x77, 0x70, 0x48, 0x62, 0x47, 0x39, 0x69, 0x59, 0x57, 0x78, 0x54, 0x61, 0x57, 0x64, 0x75, 0x4d, 0x52, 0x4d, 0x77, 0x45, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x0a, 0x45, 0x77, 0x70, 0x48, 0x62, 0x47, 0x39, 0x69, 0x59, 0x57, 0x78, 0x54, 0x61, 0x57, 0x64, 0x75, 0x4d, 0x48, 0x59, 0x77, 0x45, 0x41, 0x59, 0x48, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x43, 0x41, 0x51, 0x59, 0x46, 0x4b, 0x34, 0x45, 0x45, 0x41, 0x43, 0x49, 0x44, 0x59, 0x67, 0x41, 0x45, 0x52, 0x30, 0x55, 0x4f, 0x6c, 0x76, 0x74, 0x39, 0x58, 0x62, 0x2f, 0x70, 0x4f, 0x64, 0x45, 0x68, 0x2b, 0x4a, 0x38, 0x4c, 0x74, 0x74, 0x56, 0x37, 0x48, 0x70, 0x49, 0x36, 0x0a, 0x53, 0x46, 0x6b, 0x63, 0x38, 0x47, 0x49, 0x78, 0x4c, 0x63, 0x42, 0x36, 0x4b, 0x50, 0x34, 0x61, 0x70, 0x31, 0x79, 0x7a, 0x74, 0x73, 0x79, 0x58, 0x35, 0x30, 0x58, 0x55, 0x57, 0x50, 0x72, 0x52, 0x64, 0x32, 0x31, 0x44, 0x6f, 0x73, 0x43, 0x48, 0x5a, 0x54, 0x51, 0x4b, 0x48, 0x33, 0x72, 0x64, 0x36, 0x7a, 0x77, 0x7a, 0x6f, 0x63, 0x57, 0x64, 0x54, 0x61, 0x52, 0x76, 0x51, 0x5a, 0x55, 0x34, 0x66, 0x38, 0x6b, 0x65, 0x68, 0x4f, 0x76, 0x52, 0x6e, 0x6b, 0x6d, 0x53, 0x0a, 0x68, 0x35, 0x53, 0x48, 0x44, 0x44, 0x71, 0x46, 0x53, 0x6d, 0x61, 0x66, 0x6e, 0x56, 0x6d, 0x54, 0x54, 0x5a, 0x64, 0x68, 0x42, 0x6f, 0x5a, 0x4b, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x51, 0x59, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x64, 0x0a, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x50, 0x65, 0x59, 0x70, 0x53, 0x4a, 0x76, 0x71, 0x42, 0x38, 0x6f, 0x68, 0x52, 0x45, 0x6f, 0x6d, 0x33, 0x6d, 0x37, 0x65, 0x30, 0x6f, 0x50, 0x51, 0x6e, 0x31, 0x6b, 0x77, 0x43, 0x67, 0x59, 0x49, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x45, 0x41, 0x77, 0x4d, 0x44, 0x61, 0x41, 0x41, 0x77, 0x5a, 0x51, 0x49, 0x78, 0x41, 0x4f, 0x56, 0x70, 0x45, 0x73, 0x6c, 0x75, 0x32, 0x38, 0x59, 0x78, 0x0a, 0x75, 0x67, 0x6c, 0x42, 0x34, 0x5a, 0x66, 0x34, 0x2b, 0x2f, 0x32, 0x61, 0x34, 0x6e, 0x30, 0x53, 0x79, 0x65, 0x31, 0x38, 0x5a, 0x4e, 0x50, 0x4c, 0x42, 0x53, 0x57, 0x4c, 0x56, 0x74, 0x6d, 0x67, 0x35, 0x31, 0x35, 0x64, 0x54, 0x67, 0x75, 0x44, 0x6e, 0x46, 0x74, 0x32, 0x4b, 0x61, 0x41, 0x4a, 0x4a, 0x69, 0x46, 0x71, 0x59, 0x67, 0x49, 0x77, 0x63, 0x64, 0x4b, 0x31, 0x6a, 0x31, 0x7a, 0x71, 0x4f, 0x2b, 0x46, 0x34, 0x43, 0x59, 0x57, 0x6f, 0x64, 0x5a, 0x49, 0x37, 0x0a, 0x79, 0x46, 0x7a, 0x39, 0x53, 0x4f, 0x38, 0x4e, 0x64, 0x43, 0x4b, 0x6f, 0x43, 0x4f, 0x4a, 0x75, 0x78, 0x55, 0x6e, 0x4f, 0x78, 0x77, 0x79, 0x38, 0x70, 0x32, 0x46, 0x70, 0x38, 0x66, 0x63, 0x37, 0x34, 0x53, 0x72, 0x4c, 0x2b, 0x53, 0x76, 0x7a, 0x5a, 0x70, 0x41, 0x33, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x63, 0x69, 0x61, 0x6c, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x31, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x59, 0x44, 0x43, 0x43, 0x41, 0x30, 0x69, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x43, 0x67, 0x46, 0x43, 0x67, 0x41, 0x41, 0x41, 0x41, 0x55, 0x55, 0x6a, 0x79, 0x45, 0x53, 0x31, 0x41, 0x41, 0x41, 0x41, 0x41, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x44, 0x42, 0x4b, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x0a, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x53, 0x4d, 0x42, 0x41, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x4a, 0x53, 0x57, 0x52, 0x6c, 0x62, 0x6c, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x4d, 0x53, 0x63, 0x77, 0x4a, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x35, 0x4a, 0x5a, 0x47, 0x56, 0x75, 0x56, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x67, 0x51, 0x32, 0x39, 0x74, 0x62, 0x57, 0x56, 0x79, 0x59, 0x32, 0x6c, 0x68, 0x62, 0x43, 0x42, 0x53, 0x0a, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x42, 0x49, 0x44, 0x45, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x54, 0x51, 0x77, 0x4d, 0x54, 0x45, 0x32, 0x4d, 0x54, 0x67, 0x78, 0x4d, 0x6a, 0x49, 0x7a, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x7a, 0x51, 0x77, 0x4d, 0x54, 0x45, 0x32, 0x4d, 0x54, 0x67, 0x78, 0x4d, 0x6a, 0x49, 0x7a, 0x57, 0x6a, 0x42, 0x4b, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x53, 0x0a, 0x4d, 0x42, 0x41, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x4a, 0x53, 0x57, 0x52, 0x6c, 0x62, 0x6c, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x4d, 0x53, 0x63, 0x77, 0x4a, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x35, 0x4a, 0x5a, 0x47, 0x56, 0x75, 0x56, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x67, 0x51, 0x32, 0x39, 0x74, 0x62, 0x57, 0x56, 0x79, 0x59, 0x32, 0x6c, 0x68, 0x62, 0x43, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x42, 0x0a, 0x49, 0x44, 0x45, 0x77, 0x67, 0x67, 0x49, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x49, 0x4b, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x43, 0x6e, 0x55, 0x42, 0x6e, 0x65, 0x50, 0x35, 0x6b, 0x39, 0x31, 0x44, 0x4e, 0x47, 0x38, 0x57, 0x39, 0x52, 0x59, 0x59, 0x4b, 0x79, 0x71, 0x55, 0x2b, 0x50, 0x5a, 0x34, 0x6c, 0x64, 0x0a, 0x68, 0x4e, 0x6c, 0x54, 0x33, 0x51, 0x77, 0x6f, 0x32, 0x64, 0x66, 0x77, 0x2f, 0x36, 0x36, 0x56, 0x51, 0x33, 0x4b, 0x5a, 0x2b, 0x62, 0x56, 0x64, 0x66, 0x49, 0x72, 0x42, 0x51, 0x75, 0x45, 0x78, 0x55, 0x48, 0x54, 0x52, 0x67, 0x51, 0x31, 0x38, 0x7a, 0x5a, 0x73, 0x68, 0x71, 0x30, 0x50, 0x69, 0x72, 0x4b, 0x31, 0x65, 0x68, 0x6d, 0x37, 0x7a, 0x43, 0x59, 0x6f, 0x66, 0x57, 0x6a, 0x4b, 0x39, 0x6f, 0x75, 0x75, 0x55, 0x2b, 0x65, 0x68, 0x63, 0x43, 0x75, 0x7a, 0x2f, 0x0a, 0x6d, 0x4e, 0x4b, 0x76, 0x63, 0x62, 0x4f, 0x30, 0x55, 0x35, 0x39, 0x4f, 0x68, 0x2b, 0x2b, 0x53, 0x76, 0x4c, 0x33, 0x73, 0x54, 0x7a, 0x49, 0x77, 0x69, 0x45, 0x73, 0x58, 0x58, 0x6c, 0x66, 0x45, 0x55, 0x38, 0x4c, 0x32, 0x41, 0x70, 0x65, 0x4e, 0x32, 0x57, 0x49, 0x72, 0x76, 0x79, 0x51, 0x66, 0x59, 0x6f, 0x33, 0x66, 0x77, 0x37, 0x67, 0x70, 0x53, 0x30, 0x6c, 0x34, 0x50, 0x4a, 0x4e, 0x67, 0x69, 0x43, 0x4c, 0x38, 0x6d, 0x64, 0x6f, 0x32, 0x79, 0x4d, 0x4b, 0x69, 0x0a, 0x31, 0x43, 0x78, 0x55, 0x41, 0x47, 0x63, 0x31, 0x62, 0x6e, 0x4f, 0x2f, 0x41, 0x6c, 0x6a, 0x77, 0x70, 0x4e, 0x33, 0x6c, 0x73, 0x4b, 0x49, 0x6d, 0x65, 0x73, 0x72, 0x67, 0x4e, 0x71, 0x55, 0x5a, 0x46, 0x76, 0x58, 0x39, 0x74, 0x2b, 0x2b, 0x75, 0x50, 0x30, 0x44, 0x31, 0x62, 0x56, 0x6f, 0x45, 0x2f, 0x63, 0x34, 0x30, 0x79, 0x69, 0x54, 0x63, 0x64, 0x43, 0x4d, 0x62, 0x58, 0x54, 0x4d, 0x54, 0x45, 0x6c, 0x33, 0x45, 0x41, 0x53, 0x58, 0x32, 0x4d, 0x4e, 0x30, 0x43, 0x0a, 0x58, 0x5a, 0x2f, 0x67, 0x31, 0x55, 0x65, 0x39, 0x74, 0x4f, 0x73, 0x62, 0x6f, 0x62, 0x74, 0x4a, 0x53, 0x64, 0x69, 0x66, 0x57, 0x77, 0x4c, 0x7a, 0x69, 0x75, 0x51, 0x6b, 0x6b, 0x4f, 0x52, 0x69, 0x54, 0x30, 0x2f, 0x42, 0x72, 0x34, 0x73, 0x4f, 0x64, 0x42, 0x65, 0x6f, 0x30, 0x58, 0x4b, 0x49, 0x61, 0x6e, 0x6f, 0x42, 0x53, 0x63, 0x79, 0x30, 0x52, 0x6e, 0x6e, 0x47, 0x46, 0x37, 0x48, 0x61, 0x6d, 0x42, 0x34, 0x48, 0x57, 0x66, 0x70, 0x31, 0x49, 0x59, 0x56, 0x6c, 0x0a, 0x33, 0x5a, 0x42, 0x57, 0x7a, 0x76, 0x75, 0x72, 0x70, 0x57, 0x43, 0x64, 0x78, 0x4a, 0x33, 0x35, 0x55, 0x72, 0x43, 0x4c, 0x76, 0x59, 0x66, 0x35, 0x6a, 0x79, 0x73, 0x6a, 0x43, 0x69, 0x4e, 0x32, 0x4f, 0x2f, 0x63, 0x7a, 0x34, 0x63, 0x6b, 0x41, 0x38, 0x32, 0x6e, 0x35, 0x53, 0x36, 0x4c, 0x67, 0x54, 0x72, 0x78, 0x2b, 0x6b, 0x7a, 0x6d, 0x45, 0x42, 0x2f, 0x64, 0x45, 0x63, 0x48, 0x37, 0x2b, 0x42, 0x31, 0x72, 0x6c, 0x73, 0x61, 0x7a, 0x52, 0x47, 0x4d, 0x7a, 0x79, 0x0a, 0x4e, 0x65, 0x56, 0x4a, 0x53, 0x51, 0x6a, 0x4b, 0x56, 0x73, 0x6b, 0x39, 0x2b, 0x77, 0x38, 0x59, 0x66, 0x59, 0x73, 0x37, 0x77, 0x52, 0x50, 0x43, 0x54, 0x59, 0x2f, 0x4a, 0x54, 0x77, 0x34, 0x33, 0x36, 0x52, 0x2b, 0x68, 0x44, 0x6d, 0x72, 0x66, 0x59, 0x69, 0x37, 0x4c, 0x4e, 0x51, 0x5a, 0x52, 0x65, 0x53, 0x7a, 0x49, 0x4a, 0x54, 0x6a, 0x30, 0x2b, 0x6b, 0x75, 0x6e, 0x69, 0x56, 0x79, 0x63, 0x30, 0x75, 0x4d, 0x4e, 0x4f, 0x59, 0x5a, 0x4b, 0x64, 0x48, 0x7a, 0x56, 0x0a, 0x57, 0x59, 0x66, 0x43, 0x50, 0x30, 0x34, 0x4d, 0x58, 0x46, 0x4c, 0x30, 0x50, 0x66, 0x64, 0x53, 0x67, 0x76, 0x48, 0x71, 0x6f, 0x36, 0x7a, 0x39, 0x53, 0x54, 0x51, 0x61, 0x4b, 0x50, 0x4e, 0x42, 0x69, 0x44, 0x6f, 0x54, 0x37, 0x75, 0x6a, 0x65, 0x2f, 0x35, 0x6b, 0x64, 0x58, 0x37, 0x72, 0x4c, 0x36, 0x42, 0x37, 0x79, 0x75, 0x56, 0x42, 0x67, 0x77, 0x44, 0x48, 0x54, 0x63, 0x2b, 0x58, 0x76, 0x76, 0x71, 0x44, 0x74, 0x4d, 0x77, 0x74, 0x30, 0x76, 0x69, 0x41, 0x67, 0x0a, 0x78, 0x47, 0x64, 0x73, 0x38, 0x41, 0x67, 0x44, 0x65, 0x6c, 0x57, 0x41, 0x66, 0x30, 0x5a, 0x4f, 0x6c, 0x71, 0x66, 0x30, 0x48, 0x6a, 0x37, 0x68, 0x39, 0x74, 0x67, 0x4a, 0x34, 0x54, 0x4e, 0x6b, 0x4b, 0x32, 0x50, 0x58, 0x4d, 0x6c, 0x36, 0x66, 0x2b, 0x63, 0x42, 0x37, 0x44, 0x33, 0x68, 0x76, 0x6c, 0x37, 0x79, 0x54, 0x6d, 0x76, 0x6d, 0x63, 0x45, 0x70, 0x42, 0x34, 0x65, 0x6f, 0x43, 0x48, 0x46, 0x64, 0x64, 0x79, 0x64, 0x4a, 0x78, 0x56, 0x64, 0x48, 0x69, 0x78, 0x0a, 0x75, 0x75, 0x46, 0x75, 0x63, 0x41, 0x53, 0x36, 0x54, 0x36, 0x43, 0x36, 0x61, 0x4d, 0x4e, 0x37, 0x2f, 0x7a, 0x48, 0x77, 0x63, 0x7a, 0x30, 0x39, 0x6c, 0x43, 0x71, 0x78, 0x43, 0x30, 0x45, 0x4f, 0x6f, 0x50, 0x35, 0x4e, 0x69, 0x47, 0x56, 0x72, 0x65, 0x54, 0x4f, 0x30, 0x31, 0x77, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x0a, 0x41, 0x51, 0x59, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x37, 0x55, 0x51, 0x5a, 0x77, 0x4e, 0x50, 0x77, 0x42, 0x6f, 0x76, 0x75, 0x70, 0x48, 0x75, 0x2b, 0x51, 0x75, 0x63, 0x6d, 0x56, 0x4d, 0x69, 0x4f, 0x4e, 0x6e, 0x59, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x0a, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x42, 0x41, 0x41, 0x32, 0x75, 0x6b, 0x44, 0x4c, 0x32, 0x70, 0x6b, 0x74, 0x38, 0x52, 0x48, 0x59, 0x5a, 0x59, 0x52, 0x34, 0x6e, 0x4b, 0x4d, 0x31, 0x65, 0x56, 0x4f, 0x38, 0x6c, 0x76, 0x4f, 0x4d, 0x49, 0x6b, 0x50, 0x6b, 0x70, 0x31, 0x36, 0x35, 0x6f, 0x43, 0x4f, 0x47, 0x55, 0x41, 0x46, 0x6a, 0x76, 0x4c, 0x69, 0x35, 0x2b, 0x55, 0x31, 0x4b, 0x4d, 0x74, 0x6c, 0x77, 0x48, 0x0a, 0x36, 0x6f, 0x69, 0x36, 0x6d, 0x59, 0x74, 0x51, 0x6c, 0x4e, 0x65, 0x43, 0x67, 0x4e, 0x39, 0x68, 0x43, 0x51, 0x43, 0x54, 0x72, 0x51, 0x30, 0x55, 0x35, 0x73, 0x37, 0x42, 0x38, 0x6a, 0x65, 0x55, 0x65, 0x4c, 0x42, 0x66, 0x6e, 0x4c, 0x4f, 0x69, 0x63, 0x37, 0x69, 0x50, 0x42, 0x5a, 0x4d, 0x34, 0x7a, 0x59, 0x30, 0x2b, 0x73, 0x4c, 0x6a, 0x37, 0x77, 0x4d, 0x2b, 0x78, 0x38, 0x75, 0x77, 0x74, 0x4c, 0x52, 0x76, 0x4d, 0x37, 0x4b, 0x71, 0x61, 0x73, 0x36, 0x70, 0x67, 0x0a, 0x67, 0x68, 0x73, 0x74, 0x4f, 0x38, 0x4f, 0x45, 0x50, 0x56, 0x65, 0x4b, 0x6c, 0x68, 0x36, 0x63, 0x64, 0x62, 0x6a, 0x54, 0x4d, 0x4d, 0x31, 0x67, 0x43, 0x49, 0x4f, 0x51, 0x30, 0x34, 0x35, 0x55, 0x38, 0x55, 0x31, 0x6d, 0x77, 0x46, 0x31, 0x30, 0x41, 0x30, 0x43, 0x6a, 0x37, 0x6f, 0x56, 0x2b, 0x77, 0x68, 0x39, 0x33, 0x6e, 0x41, 0x62, 0x6f, 0x77, 0x61, 0x63, 0x59, 0x58, 0x56, 0x4b, 0x56, 0x37, 0x63, 0x6e, 0x64, 0x4a, 0x5a, 0x35, 0x74, 0x2b, 0x71, 0x6e, 0x74, 0x0a, 0x6f, 0x7a, 0x6f, 0x30, 0x30, 0x46, 0x6c, 0x37, 0x32, 0x75, 0x31, 0x51, 0x38, 0x7a, 0x57, 0x2f, 0x37, 0x65, 0x73, 0x55, 0x54, 0x54, 0x48, 0x48, 0x59, 0x50, 0x54, 0x61, 0x38, 0x59, 0x65, 0x63, 0x34, 0x6b, 0x6a, 0x69, 0x78, 0x73, 0x55, 0x33, 0x2b, 0x77, 0x59, 0x51, 0x2b, 0x6e, 0x56, 0x5a, 0x5a, 0x6a, 0x46, 0x48, 0x4b, 0x64, 0x70, 0x32, 0x6d, 0x68, 0x7a, 0x70, 0x67, 0x71, 0x37, 0x76, 0x6d, 0x72, 0x6c, 0x52, 0x39, 0x34, 0x67, 0x6a, 0x6d, 0x6d, 0x6d, 0x56, 0x0a, 0x59, 0x6a, 0x7a, 0x6c, 0x56, 0x59, 0x41, 0x32, 0x31, 0x31, 0x51, 0x43, 0x2f, 0x2f, 0x47, 0x35, 0x58, 0x63, 0x37, 0x55, 0x49, 0x32, 0x2f, 0x59, 0x52, 0x59, 0x52, 0x4b, 0x57, 0x32, 0x58, 0x76, 0x69, 0x51, 0x7a, 0x64, 0x46, 0x4b, 0x63, 0x67, 0x79, 0x78, 0x69, 0x6c, 0x4a, 0x62, 0x51, 0x4e, 0x2b, 0x51, 0x48, 0x77, 0x6f, 0x74, 0x4c, 0x30, 0x41, 0x4d, 0x68, 0x30, 0x6a, 0x71, 0x45, 0x71, 0x53, 0x49, 0x35, 0x6c, 0x32, 0x78, 0x50, 0x45, 0x34, 0x69, 0x55, 0x58, 0x0a, 0x66, 0x65, 0x75, 0x2b, 0x68, 0x31, 0x73, 0x58, 0x49, 0x46, 0x52, 0x52, 0x6b, 0x30, 0x70, 0x54, 0x41, 0x77, 0x76, 0x73, 0x58, 0x63, 0x6f, 0x7a, 0x37, 0x57, 0x4c, 0x39, 0x52, 0x63, 0x63, 0x76, 0x57, 0x39, 0x78, 0x59, 0x6f, 0x49, 0x41, 0x35, 0x35, 0x76, 0x72, 0x58, 0x2f, 0x68, 0x4d, 0x55, 0x70, 0x75, 0x30, 0x39, 0x6c, 0x45, 0x70, 0x43, 0x64, 0x4e, 0x54, 0x44, 0x64, 0x31, 0x6c, 0x7a, 0x7a, 0x59, 0x39, 0x47, 0x76, 0x6c, 0x55, 0x34, 0x37, 0x2f, 0x72, 0x6f, 0x0a, 0x6b, 0x54, 0x4c, 0x71, 0x6c, 0x31, 0x67, 0x45, 0x49, 0x74, 0x34, 0x34, 0x77, 0x38, 0x79, 0x38, 0x62, 0x63, 0x6b, 0x7a, 0x4f, 0x6d, 0x6f, 0x4b, 0x61, 0x54, 0x2b, 0x67, 0x79, 0x4f, 0x70, 0x79, 0x6a, 0x34, 0x78, 0x6a, 0x68, 0x69, 0x4f, 0x39, 0x62, 0x54, 0x79, 0x57, 0x6e, 0x70, 0x58, 0x67, 0x53, 0x55, 0x79, 0x71, 0x6f, 0x72, 0x6b, 0x71, 0x47, 0x35, 0x77, 0x32, 0x67, 0x58, 0x6a, 0x74, 0x77, 0x2b, 0x68, 0x47, 0x34, 0x69, 0x5a, 0x5a, 0x52, 0x48, 0x55, 0x65, 0x0a, 0x32, 0x58, 0x57, 0x4a, 0x55, 0x63, 0x30, 0x51, 0x68, 0x4a, 0x31, 0x68, 0x59, 0x4d, 0x74, 0x64, 0x2b, 0x5a, 0x63, 0x69, 0x54, 0x59, 0x36, 0x59, 0x35, 0x75, 0x4e, 0x2f, 0x39, 0x6c, 0x75, 0x37, 0x72, 0x73, 0x33, 0x4b, 0x53, 0x6f, 0x46, 0x72, 0x58, 0x67, 0x76, 0x7a, 0x55, 0x65, 0x46, 0x30, 0x4b, 0x2b, 0x6c, 0x2b, 0x4a, 0x36, 0x66, 0x5a, 0x6d, 0x55, 0x6c, 0x4f, 0x2b, 0x4b, 0x57, 0x41, 0x32, 0x79, 0x55, 0x50, 0x48, 0x47, 0x4e, 0x69, 0x69, 0x73, 0x6b, 0x7a, 0x0a, 0x5a, 0x32, 0x73, 0x38, 0x45, 0x49, 0x50, 0x47, 0x72, 0x64, 0x36, 0x6f, 0x7a, 0x52, 0x61, 0x4f, 0x6a, 0x66, 0x41, 0x48, 0x4e, 0x33, 0x47, 0x66, 0x38, 0x71, 0x76, 0x38, 0x51, 0x66, 0x58, 0x42, 0x69, 0x2b, 0x77, 0x41, 0x4e, 0x31, 0x30, 0x4a, 0x35, 0x55, 0x36, 0x41, 0x37, 0x2f, 0x71, 0x78, 0x58, 0x44, 0x67, 0x47, 0x70, 0x52, 0x74, 0x4b, 0x34, 0x64, 0x77, 0x34, 0x4c, 0x54, 0x7a, 0x63, 0x71, 0x78, 0x2b, 0x51, 0x47, 0x74, 0x56, 0x4b, 0x6e, 0x4f, 0x37, 0x52, 0x0a, 0x63, 0x47, 0x7a, 0x4d, 0x37, 0x76, 0x52, 0x58, 0x2b, 0x42, 0x69, 0x36, 0x68, 0x47, 0x36, 0x48, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x53, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x31, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x5a, 0x6a, 0x43, 0x43, 0x41, 0x30, 0x36, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x43, 0x67, 0x46, 0x43, 0x67, 0x41, 0x41, 0x41, 0x41, 0x55, 0x55, 0x6a, 0x7a, 0x30, 0x5a, 0x38, 0x41, 0x41, 0x41, 0x41, 0x41, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x44, 0x42, 0x4e, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x0a, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x53, 0x4d, 0x42, 0x41, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x4a, 0x53, 0x57, 0x52, 0x6c, 0x62, 0x6c, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x4d, 0x53, 0x6f, 0x77, 0x4b, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x79, 0x46, 0x4a, 0x5a, 0x47, 0x56, 0x75, 0x56, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x67, 0x55, 0x48, 0x56, 0x69, 0x62, 0x47, 0x6c, 0x6a, 0x49, 0x46, 0x4e, 0x6c, 0x59, 0x33, 0x52, 0x76, 0x0a, 0x63, 0x69, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x42, 0x49, 0x44, 0x45, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x54, 0x51, 0x77, 0x4d, 0x54, 0x45, 0x32, 0x4d, 0x54, 0x63, 0x31, 0x4d, 0x7a, 0x4d, 0x79, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x7a, 0x51, 0x77, 0x4d, 0x54, 0x45, 0x32, 0x4d, 0x54, 0x63, 0x31, 0x4d, 0x7a, 0x4d, 0x79, 0x57, 0x6a, 0x42, 0x4e, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x0a, 0x55, 0x7a, 0x45, 0x53, 0x4d, 0x42, 0x41, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x4a, 0x53, 0x57, 0x52, 0x6c, 0x62, 0x6c, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x4d, 0x53, 0x6f, 0x77, 0x4b, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x79, 0x46, 0x4a, 0x5a, 0x47, 0x56, 0x75, 0x56, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x67, 0x55, 0x48, 0x56, 0x69, 0x62, 0x47, 0x6c, 0x6a, 0x49, 0x46, 0x4e, 0x6c, 0x59, 0x33, 0x52, 0x76, 0x63, 0x69, 0x42, 0x53, 0x0a, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x42, 0x49, 0x44, 0x45, 0x77, 0x67, 0x67, 0x49, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x49, 0x4b, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x43, 0x32, 0x49, 0x70, 0x54, 0x38, 0x70, 0x45, 0x69, 0x76, 0x36, 0x45, 0x64, 0x72, 0x43, 0x76, 0x73, 0x6e, 0x64, 0x75, 0x54, 0x79, 0x0a, 0x50, 0x34, 0x6f, 0x37, 0x65, 0x6b, 0x6f, 0x73, 0x4d, 0x53, 0x71, 0x4d, 0x6a, 0x62, 0x43, 0x70, 0x77, 0x7a, 0x46, 0x72, 0x71, 0x48, 0x64, 0x32, 0x68, 0x43, 0x61, 0x32, 0x72, 0x49, 0x46, 0x43, 0x44, 0x51, 0x6a, 0x72, 0x56, 0x56, 0x69, 0x37, 0x65, 0x76, 0x69, 0x38, 0x5a, 0x58, 0x33, 0x79, 0x6f, 0x47, 0x32, 0x4c, 0x71, 0x45, 0x66, 0x70, 0x59, 0x6e, 0x59, 0x65, 0x45, 0x65, 0x34, 0x49, 0x46, 0x4e, 0x47, 0x79, 0x52, 0x42, 0x62, 0x30, 0x36, 0x74, 0x44, 0x36, 0x0a, 0x48, 0x69, 0x39, 0x65, 0x32, 0x38, 0x74, 0x7a, 0x51, 0x61, 0x36, 0x38, 0x41, 0x4c, 0x42, 0x4b, 0x4b, 0x30, 0x43, 0x79, 0x72, 0x4f, 0x45, 0x37, 0x53, 0x38, 0x49, 0x74, 0x6e, 0x65, 0x53, 0x68, 0x6d, 0x2b, 0x77, 0x61, 0x4f, 0x68, 0x37, 0x77, 0x43, 0x4c, 0x50, 0x51, 0x35, 0x43, 0x51, 0x31, 0x42, 0x35, 0x2b, 0x63, 0x74, 0x4d, 0x6c, 0x53, 0x62, 0x64, 0x73, 0x48, 0x79, 0x6f, 0x2b, 0x31, 0x57, 0x2f, 0x43, 0x44, 0x38, 0x30, 0x2f, 0x48, 0x4c, 0x61, 0x58, 0x49, 0x0a, 0x72, 0x63, 0x75, 0x56, 0x49, 0x4b, 0x51, 0x78, 0x4b, 0x46, 0x64, 0x59, 0x57, 0x75, 0x53, 0x4e, 0x47, 0x35, 0x71, 0x72, 0x6e, 0x67, 0x30, 0x4d, 0x38, 0x67, 0x6f, 0x7a, 0x4f, 0x53, 0x49, 0x35, 0x43, 0x70, 0x63, 0x75, 0x38, 0x31, 0x4e, 0x33, 0x75, 0x55, 0x52, 0x46, 0x2f, 0x59, 0x54, 0x4c, 0x4e, 0x69, 0x43, 0x42, 0x57, 0x53, 0x32, 0x61, 0x62, 0x32, 0x31, 0x49, 0x53, 0x47, 0x48, 0x4b, 0x54, 0x4e, 0x39, 0x54, 0x30, 0x61, 0x39, 0x53, 0x76, 0x45, 0x53, 0x66, 0x0a, 0x71, 0x79, 0x39, 0x72, 0x67, 0x33, 0x4c, 0x76, 0x64, 0x59, 0x44, 0x61, 0x42, 0x6a, 0x4d, 0x62, 0x58, 0x63, 0x6a, 0x61, 0x59, 0x38, 0x5a, 0x4e, 0x7a, 0x61, 0x78, 0x6d, 0x4d, 0x63, 0x33, 0x52, 0x33, 0x6a, 0x36, 0x48, 0x45, 0x44, 0x62, 0x68, 0x75, 0x61, 0x52, 0x36, 0x37, 0x32, 0x42, 0x51, 0x73, 0x73, 0x76, 0x4b, 0x70, 0x6c, 0x62, 0x67, 0x4e, 0x36, 0x2b, 0x72, 0x4e, 0x42, 0x4d, 0x35, 0x4a, 0x65, 0x67, 0x35, 0x5a, 0x75, 0x53, 0x59, 0x65, 0x71, 0x6f, 0x53, 0x0a, 0x6d, 0x4a, 0x78, 0x5a, 0x5a, 0x6f, 0x59, 0x2b, 0x72, 0x66, 0x47, 0x77, 0x79, 0x6a, 0x34, 0x47, 0x44, 0x33, 0x76, 0x77, 0x45, 0x55, 0x73, 0x33, 0x6f, 0x45, 0x52, 0x74, 0x65, 0x38, 0x75, 0x6f, 0x6a, 0x48, 0x48, 0x30, 0x31, 0x62, 0x57, 0x52, 0x4e, 0x73, 0x7a, 0x77, 0x46, 0x63, 0x59, 0x72, 0x33, 0x6c, 0x45, 0x58, 0x73, 0x5a, 0x64, 0x4d, 0x55, 0x44, 0x32, 0x78, 0x6c, 0x56, 0x6c, 0x38, 0x42, 0x58, 0x30, 0x74, 0x49, 0x64, 0x55, 0x41, 0x76, 0x77, 0x46, 0x6e, 0x0a, 0x6f, 0x6c, 0x35, 0x37, 0x70, 0x6c, 0x7a, 0x79, 0x39, 0x79, 0x4c, 0x78, 0x6b, 0x41, 0x32, 0x54, 0x32, 0x36, 0x70, 0x45, 0x55, 0x57, 0x62, 0x4d, 0x66, 0x58, 0x59, 0x44, 0x36, 0x32, 0x71, 0x6f, 0x4b, 0x6a, 0x67, 0x5a, 0x6c, 0x33, 0x59, 0x4e, 0x61, 0x34, 0x70, 0x68, 0x2b, 0x62, 0x7a, 0x32, 0x37, 0x6e, 0x62, 0x39, 0x63, 0x43, 0x76, 0x64, 0x4b, 0x54, 0x7a, 0x34, 0x43, 0x68, 0x35, 0x62, 0x51, 0x68, 0x79, 0x4c, 0x56, 0x69, 0x39, 0x56, 0x47, 0x78, 0x79, 0x68, 0x0a, 0x4c, 0x72, 0x58, 0x48, 0x46, 0x75, 0x62, 0x34, 0x71, 0x6a, 0x79, 0x53, 0x6a, 0x6d, 0x6d, 0x32, 0x41, 0x63, 0x47, 0x31, 0x68, 0x70, 0x32, 0x4a, 0x44, 0x77, 0x73, 0x34, 0x6c, 0x46, 0x54, 0x6f, 0x36, 0x74, 0x79, 0x65, 0x50, 0x53, 0x57, 0x38, 0x55, 0x79, 0x62, 0x74, 0x31, 0x61, 0x73, 0x35, 0x71, 0x73, 0x56, 0x41, 0x54, 0x46, 0x53, 0x72, 0x73, 0x72, 0x54, 0x5a, 0x32, 0x66, 0x6a, 0x58, 0x63, 0x74, 0x73, 0x63, 0x76, 0x47, 0x32, 0x39, 0x5a, 0x56, 0x2f, 0x76, 0x0a, 0x69, 0x44, 0x55, 0x71, 0x5a, 0x69, 0x2f, 0x75, 0x39, 0x72, 0x4e, 0x6c, 0x38, 0x44, 0x4f, 0x4e, 0x66, 0x4a, 0x68, 0x42, 0x61, 0x55, 0x59, 0x50, 0x51, 0x78, 0x78, 0x70, 0x2b, 0x70, 0x75, 0x31, 0x30, 0x47, 0x46, 0x71, 0x7a, 0x63, 0x70, 0x4c, 0x32, 0x55, 0x79, 0x51, 0x52, 0x71, 0x73, 0x56, 0x57, 0x61, 0x46, 0x48, 0x56, 0x43, 0x6b, 0x75, 0x67, 0x79, 0x68, 0x66, 0x48, 0x4d, 0x4b, 0x69, 0x71, 0x33, 0x49, 0x58, 0x41, 0x41, 0x61, 0x4f, 0x52, 0x65, 0x79, 0x4c, 0x0a, 0x34, 0x6a, 0x4d, 0x39, 0x66, 0x39, 0x6f, 0x5a, 0x52, 0x4f, 0x52, 0x69, 0x63, 0x73, 0x50, 0x66, 0x49, 0x73, 0x62, 0x79, 0x56, 0x74, 0x54, 0x64, 0x58, 0x35, 0x56, 0x79, 0x37, 0x57, 0x31, 0x66, 0x39, 0x30, 0x67, 0x44, 0x57, 0x2f, 0x33, 0x46, 0x4b, 0x71, 0x44, 0x32, 0x63, 0x79, 0x4f, 0x45, 0x45, 0x42, 0x73, 0x42, 0x35, 0x77, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x0a, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x51, 0x59, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x34, 0x33, 0x48, 0x67, 0x6e, 0x74, 0x69, 0x6e, 0x51, 0x74, 0x6e, 0x62, 0x63, 0x5a, 0x46, 0x72, 0x6c, 0x4a, 0x50, 0x72, 0x77, 0x36, 0x50, 0x52, 0x46, 0x4b, 0x4d, 0x77, 0x0a, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x42, 0x41, 0x45, 0x66, 0x36, 0x33, 0x51, 0x71, 0x77, 0x45, 0x5a, 0x45, 0x34, 0x72, 0x55, 0x31, 0x64, 0x39, 0x2b, 0x55, 0x4f, 0x6c, 0x31, 0x51, 0x5a, 0x67, 0x6b, 0x69, 0x48, 0x56, 0x49, 0x79, 0x71, 0x5a, 0x4a, 0x6e, 0x59, 0x57, 0x76, 0x36, 0x49, 0x41, 0x63, 0x56, 0x59, 0x70, 0x5a, 0x6d, 0x78, 0x49, 0x31, 0x51, 0x6a, 0x0a, 0x74, 0x32, 0x6f, 0x64, 0x49, 0x46, 0x66, 0x6c, 0x41, 0x57, 0x4a, 0x42, 0x46, 0x39, 0x4d, 0x4a, 0x32, 0x33, 0x58, 0x4c, 0x62, 0x6c, 0x53, 0x51, 0x64, 0x66, 0x34, 0x61, 0x6e, 0x34, 0x45, 0x4b, 0x77, 0x74, 0x33, 0x58, 0x39, 0x77, 0x6e, 0x51, 0x57, 0x33, 0x49, 0x56, 0x35, 0x42, 0x34, 0x4a, 0x61, 0x6a, 0x30, 0x7a, 0x38, 0x79, 0x47, 0x61, 0x35, 0x68, 0x56, 0x2b, 0x72, 0x56, 0x48, 0x56, 0x44, 0x52, 0x44, 0x74, 0x66, 0x55, 0x4c, 0x41, 0x6a, 0x2b, 0x37, 0x41, 0x0a, 0x6d, 0x67, 0x6a, 0x56, 0x51, 0x64, 0x5a, 0x63, 0x44, 0x69, 0x46, 0x70, 0x62, 0x6f, 0x42, 0x68, 0x44, 0x68, 0x58, 0x41, 0x75, 0x4d, 0x2f, 0x46, 0x53, 0x52, 0x4a, 0x53, 0x7a, 0x4c, 0x34, 0x36, 0x7a, 0x4e, 0x51, 0x75, 0x4f, 0x41, 0x58, 0x65, 0x4e, 0x66, 0x30, 0x66, 0x62, 0x37, 0x69, 0x41, 0x61, 0x4a, 0x67, 0x39, 0x54, 0x61, 0x44, 0x4b, 0x51, 0x47, 0x58, 0x53, 0x63, 0x33, 0x7a, 0x31, 0x69, 0x39, 0x6b, 0x4b, 0x6c, 0x54, 0x2f, 0x59, 0x50, 0x79, 0x4e, 0x74, 0x0a, 0x47, 0x74, 0x45, 0x71, 0x4a, 0x42, 0x6e, 0x5a, 0x68, 0x62, 0x4d, 0x58, 0x37, 0x33, 0x68, 0x75, 0x71, 0x56, 0x6a, 0x52, 0x49, 0x39, 0x50, 0x48, 0x45, 0x2b, 0x31, 0x79, 0x4a, 0x58, 0x39, 0x64, 0x73, 0x58, 0x4e, 0x77, 0x30, 0x48, 0x38, 0x47, 0x6c, 0x77, 0x6d, 0x45, 0x4b, 0x59, 0x42, 0x68, 0x48, 0x66, 0x70, 0x65, 0x2f, 0x33, 0x4f, 0x73, 0x6f, 0x4f, 0x4f, 0x4a, 0x75, 0x42, 0x78, 0x78, 0x46, 0x63, 0x62, 0x65, 0x4d, 0x58, 0x38, 0x53, 0x33, 0x4f, 0x46, 0x74, 0x0a, 0x6d, 0x36, 0x2f, 0x6e, 0x36, 0x4a, 0x39, 0x31, 0x65, 0x45, 0x79, 0x72, 0x52, 0x6a, 0x75, 0x61, 0x7a, 0x72, 0x38, 0x46, 0x47, 0x46, 0x31, 0x4e, 0x46, 0x54, 0x77, 0x57, 0x6d, 0x68, 0x6c, 0x51, 0x42, 0x4a, 0x71, 0x79, 0x6d, 0x6d, 0x39, 0x6c, 0x69, 0x31, 0x4a, 0x66, 0x50, 0x46, 0x67, 0x45, 0x4b, 0x43, 0x58, 0x41, 0x5a, 0x6d, 0x45, 0x78, 0x66, 0x72, 0x6e, 0x67, 0x64, 0x62, 0x6b, 0x61, 0x71, 0x49, 0x48, 0x57, 0x63, 0x68, 0x65, 0x7a, 0x78, 0x51, 0x4d, 0x78, 0x0a, 0x4e, 0x52, 0x46, 0x34, 0x65, 0x4b, 0x4c, 0x67, 0x36, 0x54, 0x43, 0x4d, 0x66, 0x34, 0x44, 0x66, 0x57, 0x4e, 0x38, 0x38, 0x75, 0x69, 0x65, 0x57, 0x34, 0x6f, 0x41, 0x30, 0x62, 0x65, 0x4f, 0x59, 0x30, 0x32, 0x51, 0x6e, 0x72, 0x45, 0x68, 0x2b, 0x4b, 0x48, 0x64, 0x63, 0x78, 0x69, 0x56, 0x68, 0x4a, 0x66, 0x69, 0x46, 0x44, 0x47, 0x58, 0x36, 0x78, 0x44, 0x49, 0x76, 0x70, 0x5a, 0x67, 0x46, 0x35, 0x50, 0x67, 0x4c, 0x5a, 0x78, 0x59, 0x57, 0x78, 0x6f, 0x4b, 0x34, 0x0a, 0x4d, 0x68, 0x6e, 0x35, 0x2b, 0x62, 0x6c, 0x35, 0x33, 0x42, 0x2f, 0x4e, 0x36, 0x36, 0x2b, 0x72, 0x44, 0x74, 0x30, 0x62, 0x32, 0x30, 0x58, 0x6b, 0x65, 0x75, 0x63, 0x43, 0x34, 0x70, 0x56, 0x64, 0x2f, 0x47, 0x6e, 0x77, 0x55, 0x32, 0x6c, 0x68, 0x6c, 0x58, 0x56, 0x35, 0x43, 0x31, 0x35, 0x56, 0x35, 0x6a, 0x67, 0x63, 0x6c, 0x4b, 0x6c, 0x5a, 0x4d, 0x35, 0x37, 0x49, 0x63, 0x58, 0x52, 0x35, 0x66, 0x31, 0x47, 0x4a, 0x74, 0x73, 0x68, 0x71, 0x75, 0x44, 0x44, 0x49, 0x0a, 0x61, 0x6a, 0x6a, 0x44, 0x62, 0x70, 0x37, 0x68, 0x4e, 0x78, 0x62, 0x71, 0x42, 0x57, 0x4a, 0x4d, 0x57, 0x78, 0x4a, 0x48, 0x37, 0x61, 0x65, 0x30, 0x73, 0x31, 0x68, 0x57, 0x78, 0x30, 0x6e, 0x7a, 0x66, 0x78, 0x4a, 0x6f, 0x43, 0x54, 0x46, 0x78, 0x38, 0x47, 0x33, 0x34, 0x54, 0x6b, 0x66, 0x37, 0x31, 0x6f, 0x58, 0x75, 0x78, 0x56, 0x68, 0x41, 0x47, 0x61, 0x51, 0x64, 0x70, 0x2f, 0x6c, 0x4c, 0x51, 0x7a, 0x66, 0x63, 0x61, 0x46, 0x70, 0x50, 0x7a, 0x2b, 0x76, 0x43, 0x0a, 0x5a, 0x48, 0x54, 0x65, 0x74, 0x42, 0x58, 0x5a, 0x39, 0x46, 0x52, 0x55, 0x47, 0x69, 0x38, 0x63, 0x31, 0x35, 0x64, 0x78, 0x56, 0x4a, 0x43, 0x4f, 0x32, 0x53, 0x43, 0x64, 0x55, 0x79, 0x74, 0x2f, 0x71, 0x34, 0x2f, 0x69, 0x36, 0x6a, 0x43, 0x38, 0x55, 0x44, 0x66, 0x76, 0x38, 0x55, 0x65, 0x31, 0x66, 0x58, 0x77, 0x73, 0x42, 0x4f, 0x78, 0x6f, 0x6e, 0x62, 0x52, 0x4a, 0x52, 0x42, 0x44, 0x30, 0x63, 0x6b, 0x73, 0x63, 0x5a, 0x4f, 0x66, 0x38, 0x35, 0x6d, 0x75, 0x51, 0x0a, 0x33, 0x57, 0x6c, 0x39, 0x61, 0x66, 0x30, 0x41, 0x56, 0x71, 0x57, 0x33, 0x72, 0x4c, 0x61, 0x74, 0x74, 0x38, 0x6f, 0x2b, 0x41, 0x65, 0x2b, 0x63, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x45, 0x50, 0x6a, 0x43, 0x43, 0x41, 0x79, 0x61, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x45, 0x53, 0x6c, 0x4f, 0x4d, 0x4b, 0x44, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x44, 0x43, 0x42, 0x76, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x46, 0x6a, 0x41, 0x55, 0x42, 0x67, 0x4e, 0x56, 0x0a, 0x42, 0x41, 0x6f, 0x54, 0x44, 0x55, 0x56, 0x75, 0x64, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x73, 0x49, 0x45, 0x6c, 0x75, 0x59, 0x79, 0x34, 0x78, 0x4b, 0x44, 0x41, 0x6d, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x73, 0x54, 0x48, 0x31, 0x4e, 0x6c, 0x5a, 0x53, 0x42, 0x33, 0x64, 0x33, 0x63, 0x75, 0x5a, 0x57, 0x35, 0x30, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x35, 0x75, 0x5a, 0x58, 0x51, 0x76, 0x62, 0x47, 0x56, 0x6e, 0x59, 0x57, 0x77, 0x74, 0x64, 0x47, 0x56, 0x79, 0x0a, 0x62, 0x58, 0x4d, 0x78, 0x4f, 0x54, 0x41, 0x33, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x73, 0x54, 0x4d, 0x43, 0x68, 0x6a, 0x4b, 0x53, 0x41, 0x79, 0x4d, 0x44, 0x41, 0x35, 0x49, 0x45, 0x56, 0x75, 0x64, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x73, 0x49, 0x45, 0x6c, 0x75, 0x59, 0x79, 0x34, 0x67, 0x4c, 0x53, 0x42, 0x6d, 0x62, 0x33, 0x49, 0x67, 0x59, 0x58, 0x56, 0x30, 0x61, 0x47, 0x39, 0x79, 0x61, 0x58, 0x70, 0x6c, 0x5a, 0x43, 0x42, 0x31, 0x63, 0x32, 0x55, 0x67, 0x0a, 0x62, 0x32, 0x35, 0x73, 0x65, 0x54, 0x45, 0x79, 0x4d, 0x44, 0x41, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x70, 0x52, 0x57, 0x35, 0x30, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x70, 0x5a, 0x6d, 0x6c, 0x6a, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x34, 0x67, 0x51, 0x58, 0x56, 0x30, 0x61, 0x47, 0x39, 0x79, 0x61, 0x58, 0x52, 0x35, 0x49, 0x43, 0x30, 0x67, 0x52, 0x7a, 0x49, 0x77, 0x0a, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x44, 0x6b, 0x77, 0x4e, 0x7a, 0x41, 0x33, 0x4d, 0x54, 0x63, 0x79, 0x4e, 0x54, 0x55, 0x30, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x7a, 0x41, 0x78, 0x4d, 0x6a, 0x41, 0x33, 0x4d, 0x54, 0x63, 0x31, 0x4e, 0x54, 0x55, 0x30, 0x57, 0x6a, 0x43, 0x42, 0x76, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x46, 0x6a, 0x41, 0x55, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x0a, 0x44, 0x55, 0x56, 0x75, 0x64, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x73, 0x49, 0x45, 0x6c, 0x75, 0x59, 0x79, 0x34, 0x78, 0x4b, 0x44, 0x41, 0x6d, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x73, 0x54, 0x48, 0x31, 0x4e, 0x6c, 0x5a, 0x53, 0x42, 0x33, 0x64, 0x33, 0x63, 0x75, 0x5a, 0x57, 0x35, 0x30, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x35, 0x75, 0x5a, 0x58, 0x51, 0x76, 0x62, 0x47, 0x56, 0x6e, 0x59, 0x57, 0x77, 0x74, 0x64, 0x47, 0x56, 0x79, 0x62, 0x58, 0x4d, 0x78, 0x0a, 0x4f, 0x54, 0x41, 0x33, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x73, 0x54, 0x4d, 0x43, 0x68, 0x6a, 0x4b, 0x53, 0x41, 0x79, 0x4d, 0x44, 0x41, 0x35, 0x49, 0x45, 0x56, 0x75, 0x64, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x73, 0x49, 0x45, 0x6c, 0x75, 0x59, 0x79, 0x34, 0x67, 0x4c, 0x53, 0x42, 0x6d, 0x62, 0x33, 0x49, 0x67, 0x59, 0x58, 0x56, 0x30, 0x61, 0x47, 0x39, 0x79, 0x61, 0x58, 0x70, 0x6c, 0x5a, 0x43, 0x42, 0x31, 0x63, 0x32, 0x55, 0x67, 0x62, 0x32, 0x35, 0x73, 0x0a, 0x65, 0x54, 0x45, 0x79, 0x4d, 0x44, 0x41, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x70, 0x52, 0x57, 0x35, 0x30, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x70, 0x5a, 0x6d, 0x6c, 0x6a, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x34, 0x67, 0x51, 0x58, 0x56, 0x30, 0x61, 0x47, 0x39, 0x79, 0x61, 0x58, 0x52, 0x35, 0x49, 0x43, 0x30, 0x67, 0x52, 0x7a, 0x49, 0x77, 0x67, 0x67, 0x45, 0x69, 0x0a, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x42, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x45, 0x4b, 0x41, 0x6f, 0x49, 0x42, 0x41, 0x51, 0x43, 0x36, 0x68, 0x4c, 0x5a, 0x79, 0x32, 0x35, 0x34, 0x4d, 0x61, 0x2b, 0x4b, 0x5a, 0x36, 0x54, 0x41, 0x42, 0x70, 0x33, 0x62, 0x71, 0x4d, 0x72, 0x69, 0x56, 0x51, 0x52, 0x72, 0x4a, 0x32, 0x6d, 0x46, 0x4f, 0x57, 0x48, 0x4c, 0x50, 0x0a, 0x2f, 0x76, 0x61, 0x43, 0x65, 0x62, 0x39, 0x7a, 0x59, 0x51, 0x59, 0x4b, 0x70, 0x53, 0x66, 0x59, 0x73, 0x31, 0x2f, 0x54, 0x52, 0x55, 0x34, 0x63, 0x63, 0x74, 0x5a, 0x4f, 0x4d, 0x76, 0x4a, 0x79, 0x69, 0x67, 0x2f, 0x33, 0x67, 0x78, 0x6e, 0x51, 0x61, 0x6f, 0x43, 0x41, 0x41, 0x45, 0x55, 0x65, 0x73, 0x4d, 0x66, 0x6e, 0x6d, 0x72, 0x38, 0x53, 0x56, 0x79, 0x63, 0x63, 0x6f, 0x32, 0x67, 0x76, 0x43, 0x6f, 0x65, 0x39, 0x61, 0x6d, 0x73, 0x4f, 0x58, 0x6d, 0x58, 0x7a, 0x0a, 0x48, 0x48, 0x66, 0x56, 0x31, 0x49, 0x57, 0x4e, 0x63, 0x43, 0x47, 0x30, 0x73, 0x7a, 0x4c, 0x6e, 0x69, 0x36, 0x4c, 0x56, 0x68, 0x6a, 0x6b, 0x43, 0x73, 0x62, 0x6a, 0x53, 0x52, 0x38, 0x37, 0x6b, 0x79, 0x55, 0x6e, 0x45, 0x4f, 0x36, 0x66, 0x65, 0x2b, 0x31, 0x52, 0x39, 0x56, 0x37, 0x37, 0x77, 0x36, 0x47, 0x37, 0x43, 0x65, 0x62, 0x49, 0x36, 0x43, 0x31, 0x58, 0x69, 0x55, 0x4a, 0x67, 0x57, 0x4d, 0x68, 0x4e, 0x63, 0x4c, 0x33, 0x68, 0x57, 0x77, 0x63, 0x4b, 0x55, 0x0a, 0x73, 0x2f, 0x4a, 0x61, 0x35, 0x43, 0x65, 0x61, 0x6e, 0x79, 0x54, 0x58, 0x78, 0x75, 0x7a, 0x51, 0x6d, 0x79, 0x57, 0x43, 0x34, 0x38, 0x7a, 0x43, 0x78, 0x45, 0x58, 0x46, 0x6a, 0x4a, 0x64, 0x36, 0x42, 0x6d, 0x73, 0x71, 0x45, 0x5a, 0x2b, 0x70, 0x43, 0x6d, 0x35, 0x49, 0x4f, 0x32, 0x2f, 0x62, 0x31, 0x42, 0x45, 0x5a, 0x51, 0x76, 0x65, 0x50, 0x42, 0x37, 0x2f, 0x31, 0x55, 0x31, 0x2b, 0x63, 0x50, 0x76, 0x51, 0x58, 0x4c, 0x4f, 0x5a, 0x70, 0x72, 0x45, 0x34, 0x79, 0x0a, 0x54, 0x47, 0x4a, 0x33, 0x36, 0x72, 0x66, 0x6f, 0x35, 0x62, 0x73, 0x30, 0x76, 0x42, 0x6d, 0x4c, 0x72, 0x70, 0x78, 0x52, 0x35, 0x37, 0x64, 0x2b, 0x74, 0x56, 0x4f, 0x78, 0x4d, 0x79, 0x4c, 0x6c, 0x62, 0x63, 0x39, 0x77, 0x50, 0x42, 0x72, 0x36, 0x34, 0x70, 0x74, 0x6e, 0x74, 0x6f, 0x50, 0x30, 0x6a, 0x61, 0x57, 0x76, 0x59, 0x6b, 0x78, 0x4e, 0x34, 0x46, 0x69, 0x73, 0x5a, 0x44, 0x51, 0x53, 0x41, 0x2f, 0x69, 0x32, 0x6a, 0x5a, 0x52, 0x6a, 0x4a, 0x4b, 0x52, 0x78, 0x0a, 0x41, 0x67, 0x4d, 0x42, 0x41, 0x41, 0x47, 0x6a, 0x51, 0x6a, 0x42, 0x41, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x42, 0x6a, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x52, 0x71, 0x63, 0x69, 0x5a, 0x36, 0x0a, 0x30, 0x42, 0x37, 0x76, 0x66, 0x65, 0x63, 0x37, 0x61, 0x56, 0x48, 0x55, 0x62, 0x49, 0x32, 0x66, 0x6b, 0x42, 0x4a, 0x6d, 0x71, 0x7a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x51, 0x45, 0x41, 0x65, 0x5a, 0x38, 0x64, 0x6c, 0x73, 0x61, 0x32, 0x65, 0x54, 0x38, 0x69, 0x6a, 0x59, 0x66, 0x54, 0x68, 0x77, 0x4d, 0x45, 0x59, 0x47, 0x70, 0x72, 0x6d, 0x69, 0x35, 0x5a, 0x0a, 0x69, 0x58, 0x4d, 0x52, 0x72, 0x45, 0x50, 0x52, 0x39, 0x52, 0x50, 0x2f, 0x6a, 0x54, 0x6b, 0x72, 0x77, 0x50, 0x4b, 0x39, 0x54, 0x33, 0x43, 0x4d, 0x71, 0x53, 0x2f, 0x71, 0x46, 0x38, 0x51, 0x4c, 0x56, 0x4a, 0x37, 0x55, 0x47, 0x35, 0x61, 0x59, 0x4d, 0x7a, 0x79, 0x6f, 0x72, 0x57, 0x4b, 0x69, 0x41, 0x48, 0x61, 0x72, 0x57, 0x57, 0x6c, 0x75, 0x42, 0x68, 0x31, 0x2b, 0x78, 0x4c, 0x6c, 0x45, 0x6a, 0x5a, 0x69, 0x76, 0x45, 0x74, 0x52, 0x68, 0x32, 0x77, 0x6f, 0x5a, 0x0a, 0x52, 0x6b, 0x66, 0x7a, 0x36, 0x2f, 0x64, 0x6a, 0x77, 0x55, 0x41, 0x46, 0x51, 0x4b, 0x58, 0x53, 0x74, 0x2f, 0x53, 0x31, 0x6d, 0x6a, 0x61, 0x2f, 0x71, 0x59, 0x68, 0x32, 0x69, 0x41, 0x52, 0x56, 0x42, 0x43, 0x75, 0x63, 0x68, 0x33, 0x38, 0x61, 0x4e, 0x7a, 0x78, 0x2b, 0x4c, 0x61, 0x55, 0x61, 0x32, 0x4e, 0x53, 0x4a, 0x58, 0x73, 0x71, 0x39, 0x72, 0x44, 0x31, 0x73, 0x32, 0x47, 0x32, 0x76, 0x31, 0x66, 0x4e, 0x32, 0x44, 0x38, 0x30, 0x37, 0x69, 0x44, 0x67, 0x69, 0x0a, 0x6e, 0x57, 0x79, 0x54, 0x6d, 0x73, 0x51, 0x39, 0x76, 0x34, 0x49, 0x62, 0x5a, 0x54, 0x2b, 0x6d, 0x44, 0x31, 0x32, 0x71, 0x2f, 0x4f, 0x57, 0x79, 0x46, 0x63, 0x71, 0x31, 0x72, 0x63, 0x61, 0x38, 0x50, 0x64, 0x43, 0x45, 0x36, 0x4f, 0x6f, 0x47, 0x63, 0x72, 0x42, 0x4e, 0x4f, 0x54, 0x4a, 0x34, 0x76, 0x7a, 0x34, 0x52, 0x6e, 0x41, 0x75, 0x6b, 0x6e, 0x5a, 0x6f, 0x68, 0x38, 0x2f, 0x43, 0x62, 0x43, 0x7a, 0x42, 0x34, 0x32, 0x38, 0x48, 0x63, 0x68, 0x30, 0x50, 0x2b, 0x0a, 0x76, 0x47, 0x4f, 0x61, 0x79, 0x73, 0x58, 0x43, 0x48, 0x4d, 0x6e, 0x48, 0x6a, 0x66, 0x38, 0x37, 0x45, 0x6c, 0x67, 0x49, 0x35, 0x72, 0x59, 0x39, 0x37, 0x48, 0x6f, 0x73, 0x54, 0x76, 0x75, 0x44, 0x6c, 0x73, 0x34, 0x4d, 0x50, 0x47, 0x6d, 0x48, 0x56, 0x48, 0x4f, 0x6b, 0x63, 0x38, 0x4b, 0x54, 0x2f, 0x31, 0x45, 0x51, 0x72, 0x42, 0x56, 0x55, 0x41, 0x64, 0x6a, 0x38, 0x42, 0x62, 0x47, 0x4a, 0x6f, 0x58, 0x39, 0x30, 0x67, 0x35, 0x70, 0x4a, 0x31, 0x39, 0x78, 0x4f, 0x0a, 0x65, 0x34, 0x70, 0x49, 0x62, 0x34, 0x74, 0x46, 0x39, 0x67, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x45, 0x43, 0x31, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x2b, 0x54, 0x43, 0x43, 0x41, 0x6f, 0x43, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4e, 0x41, 0x4b, 0x61, 0x4c, 0x65, 0x53, 0x6b, 0x41, 0x41, 0x41, 0x41, 0x41, 0x55, 0x4e, 0x43, 0x52, 0x2b, 0x54, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x7a, 0x43, 0x42, 0x76, 0x7a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x0a, 0x46, 0x6a, 0x41, 0x55, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x44, 0x55, 0x56, 0x75, 0x64, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x73, 0x49, 0x45, 0x6c, 0x75, 0x59, 0x79, 0x34, 0x78, 0x4b, 0x44, 0x41, 0x6d, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x73, 0x54, 0x48, 0x31, 0x4e, 0x6c, 0x5a, 0x53, 0x42, 0x33, 0x64, 0x33, 0x63, 0x75, 0x5a, 0x57, 0x35, 0x30, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x35, 0x75, 0x5a, 0x58, 0x51, 0x76, 0x62, 0x47, 0x56, 0x6e, 0x0a, 0x59, 0x57, 0x77, 0x74, 0x64, 0x47, 0x56, 0x79, 0x62, 0x58, 0x4d, 0x78, 0x4f, 0x54, 0x41, 0x33, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x73, 0x54, 0x4d, 0x43, 0x68, 0x6a, 0x4b, 0x53, 0x41, 0x79, 0x4d, 0x44, 0x45, 0x79, 0x49, 0x45, 0x56, 0x75, 0x64, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x73, 0x49, 0x45, 0x6c, 0x75, 0x59, 0x79, 0x34, 0x67, 0x4c, 0x53, 0x42, 0x6d, 0x62, 0x33, 0x49, 0x67, 0x59, 0x58, 0x56, 0x30, 0x61, 0x47, 0x39, 0x79, 0x61, 0x58, 0x70, 0x6c, 0x0a, 0x5a, 0x43, 0x42, 0x31, 0x63, 0x32, 0x55, 0x67, 0x62, 0x32, 0x35, 0x73, 0x65, 0x54, 0x45, 0x7a, 0x4d, 0x44, 0x45, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x71, 0x52, 0x57, 0x35, 0x30, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x70, 0x5a, 0x6d, 0x6c, 0x6a, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x34, 0x67, 0x51, 0x58, 0x56, 0x30, 0x61, 0x47, 0x39, 0x79, 0x61, 0x58, 0x52, 0x35, 0x0a, 0x49, 0x43, 0x30, 0x67, 0x52, 0x55, 0x4d, 0x78, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x45, 0x79, 0x4d, 0x54, 0x49, 0x78, 0x4f, 0x44, 0x45, 0x31, 0x4d, 0x6a, 0x55, 0x7a, 0x4e, 0x6c, 0x6f, 0x58, 0x44, 0x54, 0x4d, 0x33, 0x4d, 0x54, 0x49, 0x78, 0x4f, 0x44, 0x45, 0x31, 0x4e, 0x54, 0x55, 0x7a, 0x4e, 0x6c, 0x6f, 0x77, 0x67, 0x62, 0x38, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6c, 0x56, 0x54, 0x4d, 0x52, 0x59, 0x77, 0x0a, 0x46, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x77, 0x31, 0x46, 0x62, 0x6e, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x4c, 0x43, 0x42, 0x4a, 0x62, 0x6d, 0x4d, 0x75, 0x4d, 0x53, 0x67, 0x77, 0x4a, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x78, 0x39, 0x54, 0x5a, 0x57, 0x55, 0x67, 0x64, 0x33, 0x64, 0x33, 0x4c, 0x6d, 0x56, 0x75, 0x64, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x75, 0x62, 0x6d, 0x56, 0x30, 0x4c, 0x32, 0x78, 0x6c, 0x5a, 0x32, 0x46, 0x73, 0x0a, 0x4c, 0x58, 0x52, 0x6c, 0x63, 0x6d, 0x31, 0x7a, 0x4d, 0x54, 0x6b, 0x77, 0x4e, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x7a, 0x41, 0x6f, 0x59, 0x79, 0x6b, 0x67, 0x4d, 0x6a, 0x41, 0x78, 0x4d, 0x69, 0x42, 0x46, 0x62, 0x6e, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x4c, 0x43, 0x42, 0x4a, 0x62, 0x6d, 0x4d, 0x75, 0x49, 0x43, 0x30, 0x67, 0x5a, 0x6d, 0x39, 0x79, 0x49, 0x47, 0x46, 0x31, 0x64, 0x47, 0x68, 0x76, 0x63, 0x6d, 0x6c, 0x36, 0x5a, 0x57, 0x51, 0x67, 0x0a, 0x64, 0x58, 0x4e, 0x6c, 0x49, 0x47, 0x39, 0x75, 0x62, 0x48, 0x6b, 0x78, 0x4d, 0x7a, 0x41, 0x78, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x4b, 0x6b, 0x56, 0x75, 0x64, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x61, 0x57, 0x5a, 0x70, 0x59, 0x32, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x49, 0x45, 0x46, 0x31, 0x64, 0x47, 0x68, 0x76, 0x63, 0x6d, 0x6c, 0x30, 0x65, 0x53, 0x41, 0x74, 0x0a, 0x49, 0x45, 0x56, 0x44, 0x4d, 0x54, 0x42, 0x32, 0x4d, 0x42, 0x41, 0x47, 0x42, 0x79, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x41, 0x67, 0x45, 0x47, 0x42, 0x53, 0x75, 0x42, 0x42, 0x41, 0x41, 0x69, 0x41, 0x32, 0x49, 0x41, 0x42, 0x49, 0x51, 0x54, 0x79, 0x64, 0x43, 0x36, 0x62, 0x55, 0x46, 0x37, 0x34, 0x6d, 0x7a, 0x51, 0x36, 0x31, 0x56, 0x66, 0x5a, 0x67, 0x49, 0x61, 0x4a, 0x50, 0x52, 0x62, 0x69, 0x57, 0x6c, 0x48, 0x34, 0x37, 0x6a, 0x43, 0x66, 0x66, 0x48, 0x79, 0x0a, 0x41, 0x73, 0x57, 0x66, 0x6f, 0x50, 0x5a, 0x62, 0x31, 0x59, 0x73, 0x47, 0x47, 0x59, 0x5a, 0x50, 0x55, 0x78, 0x42, 0x74, 0x42, 0x79, 0x51, 0x6e, 0x6f, 0x61, 0x44, 0x34, 0x31, 0x55, 0x63, 0x5a, 0x59, 0x55, 0x78, 0x39, 0x79, 0x70, 0x4d, 0x6e, 0x36, 0x6e, 0x51, 0x4d, 0x37, 0x32, 0x2b, 0x57, 0x43, 0x66, 0x35, 0x6a, 0x37, 0x48, 0x42, 0x64, 0x4e, 0x71, 0x31, 0x6e, 0x64, 0x36, 0x37, 0x4a, 0x6e, 0x58, 0x78, 0x56, 0x52, 0x44, 0x71, 0x69, 0x59, 0x31, 0x45, 0x66, 0x0a, 0x39, 0x65, 0x4e, 0x69, 0x31, 0x4b, 0x6c, 0x48, 0x42, 0x7a, 0x37, 0x4d, 0x49, 0x4b, 0x4e, 0x43, 0x4d, 0x45, 0x41, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x45, 0x47, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x0a, 0x46, 0x4c, 0x64, 0x6a, 0x35, 0x78, 0x72, 0x64, 0x6a, 0x65, 0x6b, 0x49, 0x70, 0x6c, 0x57, 0x44, 0x70, 0x4f, 0x42, 0x71, 0x55, 0x45, 0x46, 0x6c, 0x45, 0x55, 0x4a, 0x4a, 0x4d, 0x41, 0x6f, 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x42, 0x41, 0x4d, 0x44, 0x41, 0x32, 0x63, 0x41, 0x4d, 0x47, 0x51, 0x43, 0x4d, 0x47, 0x46, 0x35, 0x32, 0x4f, 0x56, 0x43, 0x52, 0x39, 0x38, 0x63, 0x72, 0x6c, 0x4f, 0x5a, 0x46, 0x37, 0x5a, 0x76, 0x48, 0x48, 0x33, 0x68, 0x0a, 0x76, 0x78, 0x47, 0x55, 0x30, 0x51, 0x4f, 0x49, 0x64, 0x65, 0x53, 0x4e, 0x69, 0x61, 0x53, 0x4b, 0x64, 0x30, 0x62, 0x65, 0x62, 0x57, 0x48, 0x76, 0x41, 0x76, 0x58, 0x37, 0x74, 0x64, 0x2f, 0x4d, 0x2f, 0x6b, 0x37, 0x2f, 0x2f, 0x71, 0x6e, 0x6d, 0x70, 0x77, 0x49, 0x77, 0x57, 0x35, 0x6e, 0x58, 0x68, 0x54, 0x63, 0x47, 0x74, 0x58, 0x73, 0x49, 0x2f, 0x65, 0x73, 0x6e, 0x69, 0x30, 0x71, 0x55, 0x2b, 0x65, 0x48, 0x36, 0x70, 0x34, 0x34, 0x6d, 0x43, 0x4f, 0x68, 0x38, 0x0a, 0x6b, 0x6d, 0x68, 0x74, 0x63, 0x39, 0x68, 0x76, 0x4a, 0x71, 0x77, 0x68, 0x41, 0x72, 0x69, 0x5a, 0x74, 0x79, 0x5a, 0x42, 0x57, 0x79, 0x56, 0x67, 0x72, 0x74, 0x42, 0x49, 0x47, 0x75, 0x34, 0x47, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x43, 0x46, 0x43, 0x41, 0x20, 0x45, 0x56, 0x20, 0x52, 0x4f, 0x4f, 0x54, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x6a, 0x54, 0x43, 0x43, 0x41, 0x33, 0x57, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x45, 0x47, 0x45, 0x72, 0x4d, 0x31, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x44, 0x42, 0x57, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x44, 0x54, 0x6a, 0x45, 0x77, 0x4d, 0x43, 0x34, 0x47, 0x41, 0x31, 0x55, 0x45, 0x0a, 0x43, 0x67, 0x77, 0x6e, 0x51, 0x32, 0x68, 0x70, 0x62, 0x6d, 0x45, 0x67, 0x52, 0x6d, 0x6c, 0x75, 0x59, 0x57, 0x35, 0x6a, 0x61, 0x57, 0x46, 0x73, 0x49, 0x45, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x70, 0x5a, 0x6d, 0x6c, 0x6a, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x34, 0x67, 0x51, 0x58, 0x56, 0x30, 0x61, 0x47, 0x39, 0x79, 0x61, 0x58, 0x52, 0x35, 0x4d, 0x52, 0x55, 0x77, 0x45, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x44, 0x41, 0x78, 0x44, 0x52, 0x6b, 0x4e, 0x42, 0x0a, 0x49, 0x45, 0x56, 0x57, 0x49, 0x46, 0x4a, 0x50, 0x54, 0x31, 0x51, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x54, 0x49, 0x77, 0x4f, 0x44, 0x41, 0x34, 0x4d, 0x44, 0x4d, 0x77, 0x4e, 0x7a, 0x41, 0x78, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x6a, 0x6b, 0x78, 0x4d, 0x6a, 0x4d, 0x78, 0x4d, 0x44, 0x4d, 0x77, 0x4e, 0x7a, 0x41, 0x78, 0x57, 0x6a, 0x42, 0x57, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x44, 0x54, 0x6a, 0x45, 0x77, 0x0a, 0x4d, 0x43, 0x34, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x6e, 0x51, 0x32, 0x68, 0x70, 0x62, 0x6d, 0x45, 0x67, 0x52, 0x6d, 0x6c, 0x75, 0x59, 0x57, 0x35, 0x6a, 0x61, 0x57, 0x46, 0x73, 0x49, 0x45, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x70, 0x5a, 0x6d, 0x6c, 0x6a, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x34, 0x67, 0x51, 0x58, 0x56, 0x30, 0x61, 0x47, 0x39, 0x79, 0x61, 0x58, 0x52, 0x35, 0x4d, 0x52, 0x55, 0x77, 0x45, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x0a, 0x44, 0x41, 0x78, 0x44, 0x52, 0x6b, 0x4e, 0x42, 0x49, 0x45, 0x56, 0x57, 0x49, 0x46, 0x4a, 0x50, 0x54, 0x31, 0x51, 0x77, 0x67, 0x67, 0x49, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x49, 0x4b, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x44, 0x58, 0x58, 0x57, 0x76, 0x4e, 0x45, 0x44, 0x38, 0x66, 0x42, 0x56, 0x6e, 0x56, 0x0a, 0x42, 0x55, 0x30, 0x33, 0x73, 0x51, 0x37, 0x73, 0x6d, 0x43, 0x75, 0x4f, 0x46, 0x52, 0x33, 0x36, 0x6b, 0x30, 0x73, 0x58, 0x67, 0x69, 0x46, 0x78, 0x45, 0x46, 0x4c, 0x58, 0x55, 0x57, 0x52, 0x77, 0x46, 0x73, 0x4a, 0x56, 0x61, 0x55, 0x32, 0x4f, 0x46, 0x57, 0x32, 0x66, 0x76, 0x77, 0x77, 0x62, 0x77, 0x75, 0x43, 0x6a, 0x5a, 0x39, 0x59, 0x4d, 0x72, 0x4d, 0x38, 0x69, 0x72, 0x71, 0x39, 0x33, 0x56, 0x43, 0x70, 0x4c, 0x54, 0x49, 0x70, 0x54, 0x55, 0x6e, 0x72, 0x44, 0x0a, 0x37, 0x69, 0x37, 0x65, 0x73, 0x33, 0x45, 0x6c, 0x77, 0x65, 0x6c, 0x64, 0x50, 0x65, 0x36, 0x68, 0x4c, 0x36, 0x50, 0x33, 0x4b, 0x6a, 0x7a, 0x4a, 0x49, 0x78, 0x31, 0x71, 0x71, 0x78, 0x32, 0x68, 0x70, 0x2f, 0x48, 0x7a, 0x37, 0x4b, 0x44, 0x56, 0x52, 0x4d, 0x38, 0x56, 0x7a, 0x33, 0x49, 0x76, 0x48, 0x57, 0x4f, 0x58, 0x36, 0x4a, 0x6e, 0x35, 0x2f, 0x5a, 0x4f, 0x6b, 0x56, 0x49, 0x42, 0x4d, 0x55, 0x74, 0x52, 0x53, 0x71, 0x79, 0x35, 0x4a, 0x33, 0x35, 0x44, 0x4e, 0x0a, 0x75, 0x46, 0x2b, 0x2b, 0x50, 0x39, 0x36, 0x68, 0x79, 0x6b, 0x30, 0x67, 0x31, 0x43, 0x58, 0x6f, 0x68, 0x43, 0x6c, 0x54, 0x74, 0x37, 0x47, 0x49, 0x48, 0x2f, 0x2f, 0x36, 0x32, 0x70, 0x43, 0x66, 0x43, 0x71, 0x6b, 0x74, 0x51, 0x54, 0x2b, 0x78, 0x38, 0x52, 0x67, 0x70, 0x37, 0x68, 0x5a, 0x5a, 0x4c, 0x44, 0x52, 0x4a, 0x47, 0x71, 0x67, 0x47, 0x31, 0x36, 0x69, 0x49, 0x30, 0x67, 0x4e, 0x79, 0x65, 0x6a, 0x4c, 0x69, 0x36, 0x6d, 0x68, 0x4e, 0x62, 0x69, 0x79, 0x57, 0x0a, 0x5a, 0x58, 0x76, 0x4b, 0x57, 0x66, 0x72, 0x79, 0x34, 0x74, 0x33, 0x75, 0x4d, 0x43, 0x7a, 0x37, 0x7a, 0x45, 0x61, 0x73, 0x78, 0x47, 0x50, 0x72, 0x62, 0x33, 0x38, 0x32, 0x4b, 0x7a, 0x52, 0x7a, 0x45, 0x70, 0x52, 0x2f, 0x33, 0x38, 0x77, 0x6d, 0x6e, 0x76, 0x46, 0x79, 0x58, 0x56, 0x42, 0x6c, 0x57, 0x59, 0x39, 0x70, 0x73, 0x34, 0x64, 0x65, 0x4d, 0x6d, 0x2f, 0x44, 0x47, 0x49, 0x71, 0x31, 0x6c, 0x59, 0x2b, 0x77, 0x65, 0x6a, 0x66, 0x65, 0x57, 0x6b, 0x55, 0x37, 0x0a, 0x78, 0x7a, 0x62, 0x68, 0x37, 0x32, 0x66, 0x52, 0x4f, 0x64, 0x4f, 0x58, 0x57, 0x33, 0x4e, 0x69, 0x47, 0x55, 0x67, 0x74, 0x68, 0x78, 0x77, 0x47, 0x2b, 0x33, 0x53, 0x59, 0x49, 0x45, 0x6c, 0x7a, 0x38, 0x41, 0x58, 0x53, 0x47, 0x37, 0x47, 0x67, 0x6f, 0x37, 0x63, 0x62, 0x63, 0x4e, 0x4f, 0x49, 0x61, 0x62, 0x6c, 0x61, 0x31, 0x6a, 0x6a, 0x30, 0x59, 0x74, 0x77, 0x6c, 0x69, 0x33, 0x69, 0x2f, 0x2b, 0x4f, 0x68, 0x2b, 0x75, 0x46, 0x7a, 0x4a, 0x6c, 0x55, 0x39, 0x66, 0x0a, 0x70, 0x79, 0x32, 0x35, 0x49, 0x47, 0x76, 0x50, 0x61, 0x39, 0x33, 0x31, 0x44, 0x66, 0x53, 0x43, 0x74, 0x2f, 0x53, 0x79, 0x5a, 0x69, 0x34, 0x51, 0x4b, 0x50, 0x61, 0x58, 0x57, 0x6e, 0x75, 0x57, 0x46, 0x6f, 0x38, 0x42, 0x47, 0x53, 0x31, 0x73, 0x62, 0x6e, 0x38, 0x35, 0x57, 0x41, 0x5a, 0x6b, 0x67, 0x77, 0x47, 0x44, 0x67, 0x38, 0x4e, 0x4e, 0x6b, 0x74, 0x30, 0x79, 0x78, 0x6f, 0x65, 0x6b, 0x4e, 0x2b, 0x6b, 0x57, 0x7a, 0x71, 0x6f, 0x74, 0x61, 0x4b, 0x38, 0x4b, 0x0a, 0x67, 0x57, 0x55, 0x36, 0x63, 0x4d, 0x47, 0x62, 0x72, 0x55, 0x31, 0x74, 0x56, 0x4d, 0x6f, 0x71, 0x4c, 0x55, 0x75, 0x46, 0x47, 0x37, 0x4f, 0x41, 0x35, 0x6e, 0x42, 0x46, 0x44, 0x57, 0x74, 0x65, 0x4e, 0x66, 0x42, 0x2f, 0x4f, 0x37, 0x69, 0x63, 0x35, 0x41, 0x52, 0x77, 0x69, 0x52, 0x49, 0x6c, 0x6b, 0x39, 0x6f, 0x4b, 0x6d, 0x53, 0x4a, 0x67, 0x61, 0x6d, 0x4e, 0x67, 0x54, 0x6e, 0x59, 0x47, 0x6d, 0x45, 0x36, 0x39, 0x67, 0x36, 0x30, 0x64, 0x57, 0x49, 0x6f, 0x6c, 0x0a, 0x68, 0x64, 0x4c, 0x48, 0x5a, 0x52, 0x34, 0x74, 0x6a, 0x73, 0x62, 0x66, 0x74, 0x73, 0x62, 0x68, 0x66, 0x34, 0x6f, 0x45, 0x49, 0x52, 0x55, 0x70, 0x64, 0x50, 0x41, 0x2b, 0x6e, 0x4a, 0x43, 0x64, 0x44, 0x43, 0x37, 0x78, 0x69, 0x6a, 0x35, 0x61, 0x71, 0x67, 0x77, 0x4a, 0x48, 0x73, 0x66, 0x56, 0x50, 0x4b, 0x50, 0x74, 0x6c, 0x38, 0x4d, 0x65, 0x4e, 0x50, 0x6f, 0x34, 0x2b, 0x51, 0x67, 0x4f, 0x34, 0x38, 0x42, 0x64, 0x4b, 0x34, 0x50, 0x52, 0x56, 0x6d, 0x72, 0x4a, 0x0a, 0x74, 0x71, 0x68, 0x55, 0x55, 0x79, 0x35, 0x34, 0x4d, 0x6d, 0x63, 0x39, 0x67, 0x6e, 0x39, 0x30, 0x30, 0x50, 0x76, 0x68, 0x74, 0x67, 0x56, 0x67, 0x75, 0x58, 0x44, 0x62, 0x6a, 0x67, 0x76, 0x35, 0x45, 0x31, 0x68, 0x76, 0x63, 0x57, 0x41, 0x51, 0x55, 0x68, 0x43, 0x35, 0x77, 0x55, 0x45, 0x4a, 0x37, 0x33, 0x49, 0x66, 0x5a, 0x7a, 0x46, 0x34, 0x2f, 0x35, 0x59, 0x46, 0x6a, 0x51, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x32, 0x4d, 0x77, 0x59, 0x54, 0x41, 0x66, 0x0a, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x53, 0x4d, 0x45, 0x47, 0x44, 0x41, 0x57, 0x67, 0x42, 0x54, 0x6a, 0x2f, 0x69, 0x33, 0x39, 0x4b, 0x4e, 0x41, 0x4c, 0x74, 0x62, 0x71, 0x32, 0x6f, 0x73, 0x53, 0x2f, 0x42, 0x71, 0x6f, 0x46, 0x6a, 0x4a, 0x50, 0x37, 0x4c, 0x7a, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x0a, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x42, 0x6a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x34, 0x2f, 0x34, 0x74, 0x2f, 0x53, 0x6a, 0x51, 0x43, 0x37, 0x57, 0x36, 0x74, 0x71, 0x4c, 0x45, 0x76, 0x77, 0x61, 0x71, 0x42, 0x59, 0x79, 0x54, 0x2b, 0x79, 0x38, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x42, 0x0a, 0x41, 0x43, 0x58, 0x47, 0x75, 0x6d, 0x76, 0x72, 0x68, 0x38, 0x76, 0x65, 0x67, 0x6a, 0x6d, 0x57, 0x50, 0x66, 0x42, 0x45, 0x70, 0x32, 0x75, 0x45, 0x63, 0x77, 0x50, 0x65, 0x6e, 0x53, 0x74, 0x50, 0x75, 0x69, 0x42, 0x2f, 0x76, 0x48, 0x69, 0x79, 0x7a, 0x35, 0x65, 0x77, 0x47, 0x35, 0x7a, 0x7a, 0x31, 0x33, 0x6b, 0x75, 0x39, 0x55, 0x69, 0x32, 0x30, 0x76, 0x73, 0x58, 0x69, 0x4f, 0x62, 0x54, 0x65, 0x6a, 0x2f, 0x74, 0x55, 0x78, 0x50, 0x51, 0x34, 0x69, 0x39, 0x71, 0x0a, 0x65, 0x63, 0x73, 0x41, 0x49, 0x79, 0x6a, 0x6d, 0x48, 0x6a, 0x64, 0x58, 0x4e, 0x59, 0x6d, 0x45, 0x77, 0x6e, 0x5a, 0x50, 0x4e, 0x44, 0x61, 0x74, 0x5a, 0x38, 0x50, 0x4f, 0x51, 0x51, 0x61, 0x49, 0x78, 0x66, 0x66, 0x75, 0x32, 0x42, 0x71, 0x34, 0x31, 0x67, 0x74, 0x2f, 0x55, 0x50, 0x2b, 0x54, 0x71, 0x68, 0x64, 0x4c, 0x6a, 0x4f, 0x7a, 0x74, 0x55, 0x6d, 0x43, 0x79, 0x70, 0x41, 0x62, 0x71, 0x54, 0x75, 0x76, 0x30, 0x61, 0x78, 0x6e, 0x39, 0x36, 0x2f, 0x55, 0x61, 0x0a, 0x34, 0x43, 0x55, 0x71, 0x6d, 0x74, 0x7a, 0x48, 0x51, 0x54, 0x62, 0x33, 0x79, 0x48, 0x51, 0x46, 0x68, 0x44, 0x6d, 0x56, 0x4f, 0x64, 0x59, 0x4c, 0x4f, 0x36, 0x51, 0x6e, 0x2b, 0x67, 0x6a, 0x59, 0x58, 0x42, 0x37, 0x34, 0x42, 0x47, 0x42, 0x53, 0x45, 0x53, 0x67, 0x6f, 0x41, 0x2f, 0x2f, 0x76, 0x55, 0x32, 0x59, 0x41, 0x70, 0x55, 0x6f, 0x30, 0x46, 0x6d, 0x5a, 0x38, 0x2f, 0x51, 0x6d, 0x6b, 0x72, 0x70, 0x35, 0x6e, 0x47, 0x6d, 0x39, 0x42, 0x43, 0x32, 0x73, 0x47, 0x0a, 0x45, 0x35, 0x75, 0x50, 0x68, 0x6e, 0x45, 0x46, 0x74, 0x43, 0x2b, 0x4e, 0x69, 0x57, 0x59, 0x7a, 0x4b, 0x58, 0x5a, 0x55, 0x6d, 0x68, 0x48, 0x34, 0x4a, 0x2f, 0x71, 0x79, 0x50, 0x35, 0x48, 0x67, 0x7a, 0x67, 0x30, 0x62, 0x38, 0x7a, 0x41, 0x61, 0x72, 0x62, 0x38, 0x69, 0x58, 0x52, 0x76, 0x54, 0x76, 0x79, 0x55, 0x46, 0x54, 0x65, 0x47, 0x53, 0x47, 0x6e, 0x2b, 0x5a, 0x6e, 0x7a, 0x78, 0x45, 0x6b, 0x38, 0x72, 0x55, 0x51, 0x45, 0x6c, 0x73, 0x67, 0x49, 0x66, 0x58, 0x0a, 0x42, 0x44, 0x72, 0x44, 0x4d, 0x6c, 0x49, 0x31, 0x44, 0x6c, 0x62, 0x34, 0x70, 0x64, 0x31, 0x39, 0x78, 0x49, 0x73, 0x4e, 0x45, 0x52, 0x39, 0x54, 0x79, 0x78, 0x36, 0x79, 0x46, 0x37, 0x5a, 0x6f, 0x64, 0x31, 0x72, 0x67, 0x31, 0x4d, 0x76, 0x49, 0x42, 0x36, 0x37, 0x31, 0x4f, 0x69, 0x36, 0x4f, 0x4e, 0x37, 0x66, 0x51, 0x41, 0x55, 0x74, 0x44, 0x4b, 0x58, 0x65, 0x4d, 0x4f, 0x5a, 0x65, 0x50, 0x67, 0x6c, 0x72, 0x34, 0x55, 0x65, 0x57, 0x4a, 0x6f, 0x42, 0x6a, 0x6e, 0x0a, 0x61, 0x48, 0x39, 0x64, 0x43, 0x69, 0x37, 0x37, 0x6f, 0x30, 0x63, 0x4f, 0x50, 0x61, 0x59, 0x6a, 0x65, 0x73, 0x59, 0x42, 0x78, 0x34, 0x2f, 0x49, 0x58, 0x72, 0x39, 0x74, 0x67, 0x46, 0x61, 0x2b, 0x69, 0x69, 0x53, 0x36, 0x4d, 0x2b, 0x71, 0x66, 0x34, 0x54, 0x49, 0x52, 0x6e, 0x76, 0x48, 0x53, 0x54, 0x34, 0x44, 0x32, 0x47, 0x30, 0x43, 0x76, 0x4f, 0x4a, 0x34, 0x52, 0x55, 0x48, 0x6c, 0x7a, 0x45, 0x68, 0x4c, 0x4e, 0x35, 0x6d, 0x79, 0x64, 0x4c, 0x49, 0x68, 0x79, 0x0a, 0x50, 0x44, 0x43, 0x42, 0x42, 0x70, 0x45, 0x69, 0x36, 0x6c, 0x6d, 0x74, 0x32, 0x68, 0x6b, 0x75, 0x49, 0x73, 0x4b, 0x4e, 0x75, 0x59, 0x79, 0x48, 0x34, 0x47, 0x61, 0x38, 0x63, 0x79, 0x4e, 0x66, 0x49, 0x57, 0x52, 0x6a, 0x67, 0x45, 0x6a, 0x31, 0x6f, 0x44, 0x77, 0x59, 0x50, 0x5a, 0x54, 0x49, 0x53, 0x45, 0x45, 0x64, 0x51, 0x4c, 0x70, 0x65, 0x2f, 0x76, 0x35, 0x57, 0x4f, 0x61, 0x48, 0x49, 0x7a, 0x31, 0x36, 0x65, 0x47, 0x57, 0x52, 0x47, 0x45, 0x4e, 0x6f, 0x58, 0x0a, 0x6b, 0x62, 0x63, 0x46, 0x67, 0x4b, 0x79, 0x4c, 0x6d, 0x5a, 0x4a, 0x39, 0x35, 0x36, 0x4c, 0x59, 0x42, 0x77, 0x73, 0x32, 0x4a, 0x2b, 0x64, 0x49, 0x65, 0x57, 0x43, 0x4b, 0x77, 0x39, 0x63, 0x54, 0x58, 0x50, 0x68, 0x79, 0x51, 0x4e, 0x39, 0x4b, 0x79, 0x38, 0x2b, 0x5a, 0x41, 0x41, 0x6f, 0x41, 0x43, 0x78, 0x47, 0x56, 0x32, 0x6c, 0x5a, 0x46, 0x41, 0x34, 0x67, 0x4b, 0x6e, 0x32, 0x66, 0x51, 0x31, 0x58, 0x6d, 0x78, 0x71, 0x49, 0x31, 0x41, 0x62, 0x51, 0x33, 0x43, 0x0a, 0x65, 0x6b, 0x44, 0x36, 0x38, 0x31, 0x39, 0x6b, 0x52, 0x35, 0x4c, 0x4c, 0x55, 0x37, 0x6d, 0x37, 0x57, 0x63, 0x35, 0x50, 0x2f, 0x64, 0x41, 0x56, 0x55, 0x77, 0x48, 0x59, 0x33, 0x2b, 0x76, 0x5a, 0x35, 0x6e, 0x62, 0x76, 0x30, 0x43, 0x4f, 0x37, 0x4f, 0x36, 0x6c, 0x35, 0x73, 0x39, 0x55, 0x43, 0x4b, 0x63, 0x32, 0x4a, 0x6f, 0x35, 0x59, 0x50, 0x53, 0x6a, 0x58, 0x6e, 0x54, 0x6b, 0x4c, 0x41, 0x64, 0x63, 0x30, 0x48, 0x7a, 0x2b, 0x59, 0x73, 0x36, 0x33, 0x73, 0x75, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x4f, 0x49, 0x53, 0x54, 0x45, 0x20, 0x57, 0x49, 0x53, 0x65, 0x4b, 0x65, 0x79, 0x20, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x47, 0x42, 0x20, 0x43, 0x41, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x44, 0x74, 0x54, 0x43, 0x43, 0x41, 0x70, 0x32, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x64, 0x72, 0x45, 0x67, 0x55, 0x6e, 0x54, 0x77, 0x68, 0x59, 0x64, 0x47, 0x73, 0x2f, 0x67, 0x6a, 0x47, 0x76, 0x62, 0x43, 0x77, 0x44, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x44, 0x42, 0x74, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x0a, 0x45, 0x77, 0x4a, 0x44, 0x53, 0x44, 0x45, 0x51, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x48, 0x56, 0x30, 0x6c, 0x54, 0x5a, 0x55, 0x74, 0x6c, 0x65, 0x54, 0x45, 0x69, 0x4d, 0x43, 0x41, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x78, 0x4d, 0x5a, 0x54, 0x30, 0x6c, 0x54, 0x56, 0x45, 0x55, 0x67, 0x52, 0x6d, 0x39, 0x31, 0x62, 0x6d, 0x52, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x69, 0x42, 0x46, 0x62, 0x6d, 0x52, 0x76, 0x63, 0x6e, 0x4e, 0x6c, 0x0a, 0x5a, 0x44, 0x45, 0x6f, 0x4d, 0x43, 0x59, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x66, 0x54, 0x30, 0x6c, 0x54, 0x56, 0x45, 0x55, 0x67, 0x56, 0x30, 0x6c, 0x54, 0x5a, 0x55, 0x74, 0x6c, 0x65, 0x53, 0x42, 0x48, 0x62, 0x47, 0x39, 0x69, 0x59, 0x57, 0x77, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x48, 0x51, 0x69, 0x42, 0x44, 0x51, 0x54, 0x41, 0x65, 0x46, 0x77, 0x30, 0x78, 0x4e, 0x44, 0x45, 0x79, 0x4d, 0x44, 0x45, 0x78, 0x4e, 0x54, 0x41, 0x77, 0x0a, 0x4d, 0x7a, 0x4a, 0x61, 0x46, 0x77, 0x30, 0x7a, 0x4f, 0x54, 0x45, 0x79, 0x4d, 0x44, 0x45, 0x78, 0x4e, 0x54, 0x45, 0x77, 0x4d, 0x7a, 0x46, 0x61, 0x4d, 0x47, 0x30, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6b, 0x4e, 0x49, 0x4d, 0x52, 0x41, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x77, 0x64, 0x58, 0x53, 0x56, 0x4e, 0x6c, 0x53, 0x32, 0x56, 0x35, 0x4d, 0x53, 0x49, 0x77, 0x49, 0x41, 0x59, 0x44, 0x0a, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x78, 0x6c, 0x50, 0x53, 0x56, 0x4e, 0x55, 0x52, 0x53, 0x42, 0x47, 0x62, 0x33, 0x56, 0x75, 0x5a, 0x47, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x49, 0x45, 0x56, 0x75, 0x5a, 0x47, 0x39, 0x79, 0x63, 0x32, 0x56, 0x6b, 0x4d, 0x53, 0x67, 0x77, 0x4a, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x39, 0x50, 0x53, 0x56, 0x4e, 0x55, 0x52, 0x53, 0x42, 0x58, 0x53, 0x56, 0x4e, 0x6c, 0x53, 0x32, 0x56, 0x35, 0x49, 0x45, 0x64, 0x73, 0x0a, 0x62, 0x32, 0x4a, 0x68, 0x62, 0x43, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x64, 0x43, 0x49, 0x45, 0x4e, 0x42, 0x4d, 0x49, 0x49, 0x42, 0x49, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x45, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x51, 0x38, 0x41, 0x4d, 0x49, 0x49, 0x42, 0x43, 0x67, 0x4b, 0x43, 0x41, 0x51, 0x45, 0x41, 0x32, 0x42, 0x65, 0x33, 0x48, 0x45, 0x6f, 0x6b, 0x4b, 0x74, 0x61, 0x58, 0x0a, 0x73, 0x63, 0x72, 0x69, 0x48, 0x76, 0x74, 0x39, 0x4f, 0x4f, 0x2b, 0x59, 0x39, 0x62, 0x49, 0x35, 0x6d, 0x45, 0x34, 0x6e, 0x75, 0x42, 0x46, 0x64, 0x65, 0x39, 0x49, 0x6c, 0x6c, 0x49, 0x69, 0x43, 0x46, 0x53, 0x5a, 0x71, 0x47, 0x7a, 0x47, 0x37, 0x71, 0x46, 0x73, 0x68, 0x49, 0x53, 0x76, 0x59, 0x44, 0x30, 0x36, 0x66, 0x57, 0x76, 0x47, 0x78, 0x57, 0x75, 0x52, 0x35, 0x31, 0x6a, 0x49, 0x6a, 0x4b, 0x2b, 0x46, 0x54, 0x7a, 0x4a, 0x6c, 0x46, 0x58, 0x48, 0x74, 0x50, 0x0a, 0x72, 0x62, 0x79, 0x2f, 0x68, 0x30, 0x6f, 0x4c, 0x53, 0x35, 0x64, 0x61, 0x71, 0x50, 0x5a, 0x49, 0x37, 0x48, 0x31, 0x37, 0x44, 0x63, 0x30, 0x68, 0x42, 0x74, 0x2b, 0x65, 0x46, 0x66, 0x31, 0x42, 0x69, 0x6b, 0x69, 0x33, 0x49, 0x50, 0x53, 0x68, 0x65, 0x68, 0x74, 0x58, 0x31, 0x46, 0x31, 0x51, 0x2f, 0x37, 0x70, 0x6e, 0x32, 0x43, 0x4f, 0x5a, 0x48, 0x38, 0x67, 0x2f, 0x34, 0x39, 0x37, 0x2f, 0x62, 0x31, 0x74, 0x33, 0x73, 0x57, 0x74, 0x75, 0x75, 0x4d, 0x6c, 0x6b, 0x0a, 0x39, 0x2b, 0x48, 0x4b, 0x51, 0x55, 0x59, 0x4f, 0x4b, 0x58, 0x48, 0x51, 0x75, 0x53, 0x50, 0x38, 0x79, 0x59, 0x46, 0x66, 0x54, 0x76, 0x64, 0x76, 0x33, 0x37, 0x2b, 0x45, 0x72, 0x58, 0x4e, 0x6b, 0x75, 0x37, 0x64, 0x43, 0x6a, 0x6d, 0x6e, 0x32, 0x31, 0x48, 0x59, 0x64, 0x66, 0x70, 0x32, 0x6e, 0x75, 0x46, 0x65, 0x4b, 0x55, 0x57, 0x64, 0x79, 0x31, 0x39, 0x53, 0x6f, 0x75, 0x4a, 0x56, 0x55, 0x51, 0x48, 0x4d, 0x44, 0x39, 0x75, 0x72, 0x30, 0x36, 0x2f, 0x34, 0x6f, 0x0a, 0x51, 0x6e, 0x63, 0x2f, 0x6e, 0x53, 0x4d, 0x62, 0x73, 0x72, 0x59, 0x39, 0x67, 0x42, 0x51, 0x48, 0x54, 0x43, 0x35, 0x50, 0x39, 0x39, 0x55, 0x4b, 0x46, 0x67, 0x32, 0x39, 0x5a, 0x6b, 0x4d, 0x33, 0x66, 0x69, 0x4e, 0x44, 0x65, 0x63, 0x4e, 0x41, 0x68, 0x76, 0x56, 0x4d, 0x4b, 0x64, 0x71, 0x4f, 0x6d, 0x71, 0x30, 0x4e, 0x70, 0x51, 0x53, 0x48, 0x69, 0x42, 0x36, 0x46, 0x34, 0x2b, 0x6c, 0x54, 0x31, 0x5a, 0x76, 0x49, 0x69, 0x77, 0x4e, 0x6a, 0x65, 0x4f, 0x76, 0x67, 0x0a, 0x47, 0x55, 0x70, 0x75, 0x75, 0x79, 0x39, 0x72, 0x4d, 0x32, 0x52, 0x59, 0x6b, 0x36, 0x31, 0x70, 0x76, 0x34, 0x38, 0x62, 0x37, 0x34, 0x4a, 0x49, 0x78, 0x77, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x31, 0x45, 0x77, 0x54, 0x7a, 0x41, 0x4c, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x59, 0x59, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x0a, 0x2f, 0x7a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x4e, 0x51, 0x2f, 0x49, 0x4e, 0x6d, 0x4e, 0x65, 0x34, 0x71, 0x50, 0x73, 0x2b, 0x54, 0x74, 0x6d, 0x46, 0x63, 0x35, 0x52, 0x55, 0x75, 0x4f, 0x52, 0x6d, 0x6a, 0x30, 0x77, 0x45, 0x41, 0x59, 0x4a, 0x4b, 0x77, 0x59, 0x42, 0x42, 0x41, 0x47, 0x43, 0x4e, 0x78, 0x55, 0x42, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x51, 0x41, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x0a, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x45, 0x42, 0x41, 0x45, 0x42, 0x4d, 0x2b, 0x34, 0x65, 0x79, 0x6d, 0x59, 0x47, 0x51, 0x66, 0x70, 0x33, 0x46, 0x73, 0x4c, 0x41, 0x6d, 0x7a, 0x59, 0x68, 0x37, 0x4b, 0x7a, 0x4b, 0x4e, 0x62, 0x72, 0x67, 0x68, 0x63, 0x56, 0x69, 0x58, 0x66, 0x61, 0x34, 0x33, 0x46, 0x4b, 0x38, 0x2b, 0x35, 0x2f, 0x65, 0x61, 0x34, 0x6e, 0x33, 0x32, 0x63, 0x5a, 0x69, 0x5a, 0x42, 0x4b, 0x70, 0x44, 0x0a, 0x64, 0x48, 0x69, 0x6a, 0x34, 0x30, 0x6c, 0x68, 0x50, 0x6e, 0x4f, 0x4d, 0x54, 0x5a, 0x54, 0x67, 0x2b, 0x58, 0x48, 0x45, 0x74, 0x68, 0x59, 0x4f, 0x55, 0x33, 0x67, 0x66, 0x31, 0x71, 0x4b, 0x48, 0x4c, 0x77, 0x49, 0x35, 0x67, 0x53, 0x6b, 0x38, 0x72, 0x78, 0x57, 0x59, 0x49, 0x54, 0x44, 0x2b, 0x4b, 0x4a, 0x41, 0x41, 0x6a, 0x4e, 0x48, 0x68, 0x79, 0x2f, 0x70, 0x65, 0x79, 0x50, 0x33, 0x34, 0x45, 0x45, 0x59, 0x37, 0x6f, 0x6e, 0x68, 0x43, 0x6b, 0x52, 0x64, 0x30, 0x0a, 0x56, 0x51, 0x72, 0x65, 0x55, 0x47, 0x64, 0x4e, 0x5a, 0x74, 0x47, 0x6e, 0x2f, 0x2f, 0x33, 0x5a, 0x77, 0x4c, 0x57, 0x6f, 0x6f, 0x34, 0x72, 0x4f, 0x5a, 0x76, 0x55, 0x50, 0x51, 0x38, 0x32, 0x6e, 0x4b, 0x31, 0x64, 0x37, 0x59, 0x30, 0x5a, 0x71, 0x71, 0x69, 0x35, 0x53, 0x32, 0x50, 0x54, 0x74, 0x34, 0x57, 0x32, 0x74, 0x4b, 0x5a, 0x42, 0x34, 0x53, 0x4c, 0x72, 0x68, 0x49, 0x36, 0x71, 0x6a, 0x69, 0x65, 0x79, 0x31, 0x71, 0x35, 0x62, 0x41, 0x74, 0x45, 0x75, 0x69, 0x0a, 0x48, 0x5a, 0x65, 0x65, 0x65, 0x76, 0x4a, 0x75, 0x51, 0x48, 0x48, 0x66, 0x61, 0x50, 0x46, 0x6c, 0x54, 0x63, 0x35, 0x38, 0x42, 0x64, 0x39, 0x54, 0x5a, 0x61, 0x6d, 0x6c, 0x38, 0x4c, 0x47, 0x58, 0x42, 0x48, 0x41, 0x56, 0x52, 0x67, 0x4f, 0x59, 0x31, 0x4e, 0x4b, 0x2f, 0x56, 0x4c, 0x53, 0x67, 0x57, 0x48, 0x31, 0x53, 0x62, 0x39, 0x70, 0x57, 0x4a, 0x6d, 0x4c, 0x55, 0x32, 0x4e, 0x75, 0x4a, 0x4d, 0x57, 0x38, 0x63, 0x38, 0x43, 0x4c, 0x43, 0x30, 0x32, 0x49, 0x63, 0x0a, 0x4e, 0x63, 0x31, 0x4d, 0x61, 0x52, 0x56, 0x55, 0x47, 0x70, 0x43, 0x59, 0x33, 0x75, 0x73, 0x65, 0x58, 0x38, 0x70, 0x33, 0x78, 0x38, 0x75, 0x4f, 0x50, 0x55, 0x4e, 0x70, 0x6e, 0x4a, 0x70, 0x59, 0x30, 0x43, 0x51, 0x37, 0x33, 0x78, 0x74, 0x41, 0x6c, 0x6e, 0x34, 0x31, 0x72, 0x59, 0x48, 0x48, 0x54, 0x6e, 0x47, 0x36, 0x69, 0x42, 0x4d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x53, 0x5a, 0x41, 0x46, 0x49, 0x52, 0x20, 0x52, 0x4f, 0x4f, 0x54, 0x20, 0x43, 0x41, 0x32, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x44, 0x63, 0x6a, 0x43, 0x43, 0x41, 0x6c, 0x71, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x55, 0x50, 0x6f, 0x70, 0x64, 0x42, 0x2b, 0x78, 0x56, 0x30, 0x6a, 0x4c, 0x56, 0x74, 0x2b, 0x4f, 0x32, 0x58, 0x77, 0x48, 0x72, 0x4c, 0x64, 0x7a, 0x6b, 0x31, 0x75, 0x51, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x77, 0x55, 0x54, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x0a, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x55, 0x45, 0x77, 0x78, 0x4b, 0x44, 0x41, 0x6d, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x48, 0x30, 0x74, 0x79, 0x59, 0x57, 0x70, 0x76, 0x64, 0x32, 0x45, 0x67, 0x53, 0x58, 0x70, 0x69, 0x59, 0x53, 0x42, 0x53, 0x62, 0x33, 0x70, 0x73, 0x61, 0x57, 0x4e, 0x36, 0x5a, 0x57, 0x35, 0x70, 0x62, 0x33, 0x64, 0x68, 0x49, 0x46, 0x4d, 0x75, 0x51, 0x53, 0x34, 0x78, 0x47, 0x44, 0x41, 0x57, 0x42, 0x67, 0x4e, 0x56, 0x0a, 0x42, 0x41, 0x4d, 0x4d, 0x44, 0x31, 0x4e, 0x61, 0x51, 0x55, 0x5a, 0x4a, 0x55, 0x69, 0x42, 0x53, 0x54, 0x30, 0x39, 0x55, 0x49, 0x45, 0x4e, 0x42, 0x4d, 0x6a, 0x41, 0x65, 0x46, 0x77, 0x30, 0x78, 0x4e, 0x54, 0x45, 0x77, 0x4d, 0x54, 0x6b, 0x77, 0x4e, 0x7a, 0x51, 0x7a, 0x4d, 0x7a, 0x42, 0x61, 0x46, 0x77, 0x30, 0x7a, 0x4e, 0x54, 0x45, 0x77, 0x4d, 0x54, 0x6b, 0x77, 0x4e, 0x7a, 0x51, 0x7a, 0x4d, 0x7a, 0x42, 0x61, 0x4d, 0x46, 0x45, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x0a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6c, 0x42, 0x4d, 0x4d, 0x53, 0x67, 0x77, 0x4a, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x42, 0x39, 0x4c, 0x63, 0x6d, 0x46, 0x71, 0x62, 0x33, 0x64, 0x68, 0x49, 0x45, 0x6c, 0x36, 0x59, 0x6d, 0x45, 0x67, 0x55, 0x6d, 0x39, 0x36, 0x62, 0x47, 0x6c, 0x6a, 0x65, 0x6d, 0x56, 0x75, 0x61, 0x57, 0x39, 0x33, 0x59, 0x53, 0x42, 0x54, 0x4c, 0x6b, 0x45, 0x75, 0x4d, 0x52, 0x67, 0x77, 0x46, 0x67, 0x59, 0x44, 0x0a, 0x56, 0x51, 0x51, 0x44, 0x44, 0x41, 0x39, 0x54, 0x57, 0x6b, 0x46, 0x47, 0x53, 0x56, 0x49, 0x67, 0x55, 0x6b, 0x39, 0x50, 0x56, 0x43, 0x42, 0x44, 0x51, 0x54, 0x49, 0x77, 0x67, 0x67, 0x45, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x42, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x45, 0x4b, 0x41, 0x6f, 0x49, 0x42, 0x41, 0x51, 0x43, 0x33, 0x76, 0x44, 0x35, 0x51, 0x0a, 0x71, 0x45, 0x76, 0x4e, 0x51, 0x4c, 0x58, 0x4f, 0x59, 0x65, 0x65, 0x57, 0x79, 0x72, 0x53, 0x68, 0x32, 0x67, 0x77, 0x69, 0x73, 0x50, 0x71, 0x31, 0x65, 0x33, 0x59, 0x41, 0x64, 0x34, 0x77, 0x4c, 0x7a, 0x33, 0x32, 0x6f, 0x68, 0x73, 0x77, 0x6d, 0x55, 0x65, 0x51, 0x67, 0x50, 0x59, 0x55, 0x4d, 0x31, 0x6c, 0x6a, 0x6a, 0x35, 0x2f, 0x51, 0x71, 0x47, 0x4a, 0x33, 0x61, 0x30, 0x61, 0x34, 0x6d, 0x37, 0x75, 0x74, 0x54, 0x33, 0x50, 0x53, 0x51, 0x31, 0x68, 0x4e, 0x4b, 0x0a, 0x44, 0x4a, 0x41, 0x38, 0x77, 0x2f, 0x54, 0x61, 0x30, 0x6f, 0x34, 0x4e, 0x6b, 0x6a, 0x72, 0x63, 0x73, 0x62, 0x48, 0x2f, 0x4f, 0x4e, 0x37, 0x44, 0x75, 0x69, 0x31, 0x66, 0x67, 0x4c, 0x6b, 0x43, 0x76, 0x55, 0x71, 0x64, 0x47, 0x77, 0x2b, 0x30, 0x77, 0x38, 0x4c, 0x42, 0x5a, 0x77, 0x50, 0x64, 0x33, 0x42, 0x75, 0x63, 0x50, 0x62, 0x4f, 0x77, 0x33, 0x67, 0x41, 0x65, 0x71, 0x44, 0x52, 0x48, 0x75, 0x35, 0x72, 0x72, 0x2f, 0x67, 0x73, 0x55, 0x76, 0x54, 0x61, 0x45, 0x0a, 0x32, 0x67, 0x30, 0x67, 0x76, 0x2f, 0x70, 0x62, 0x79, 0x36, 0x6b, 0x57, 0x49, 0x4b, 0x30, 0x35, 0x59, 0x4f, 0x34, 0x76, 0x64, 0x62, 0x62, 0x6e, 0x6c, 0x35, 0x7a, 0x35, 0x50, 0x76, 0x31, 0x2b, 0x54, 0x57, 0x39, 0x4e, 0x4c, 0x2b, 0x2b, 0x49, 0x44, 0x57, 0x72, 0x36, 0x33, 0x66, 0x45, 0x39, 0x62, 0x69, 0x43, 0x6c, 0x6f, 0x42, 0x4b, 0x30, 0x54, 0x58, 0x43, 0x35, 0x7a, 0x74, 0x64, 0x79, 0x4f, 0x34, 0x6d, 0x54, 0x70, 0x34, 0x43, 0x45, 0x48, 0x43, 0x64, 0x4a, 0x0a, 0x63, 0x6b, 0x6d, 0x31, 0x2f, 0x7a, 0x75, 0x56, 0x6e, 0x73, 0x48, 0x4d, 0x79, 0x41, 0x48, 0x73, 0x36, 0x41, 0x36, 0x4b, 0x43, 0x70, 0x62, 0x6e, 0x73, 0x36, 0x61, 0x48, 0x35, 0x64, 0x62, 0x35, 0x42, 0x53, 0x73, 0x4e, 0x6c, 0x30, 0x42, 0x77, 0x50, 0x4c, 0x71, 0x73, 0x64, 0x56, 0x71, 0x63, 0x31, 0x55, 0x32, 0x64, 0x41, 0x67, 0x72, 0x53, 0x53, 0x35, 0x74, 0x6d, 0x53, 0x30, 0x59, 0x48, 0x46, 0x32, 0x57, 0x74, 0x6e, 0x32, 0x79, 0x49, 0x41, 0x4e, 0x77, 0x69, 0x0a, 0x69, 0x65, 0x44, 0x68, 0x5a, 0x4e, 0x52, 0x6e, 0x76, 0x44, 0x46, 0x35, 0x59, 0x54, 0x79, 0x37, 0x79, 0x6b, 0x48, 0x4e, 0x58, 0x47, 0x6f, 0x41, 0x79, 0x44, 0x77, 0x34, 0x6a, 0x6c, 0x69, 0x76, 0x41, 0x67, 0x4d, 0x42, 0x41, 0x41, 0x47, 0x6a, 0x51, 0x6a, 0x42, 0x41, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x0a, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x45, 0x47, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x51, 0x75, 0x46, 0x71, 0x6c, 0x4b, 0x47, 0x4c, 0x58, 0x4c, 0x7a, 0x50, 0x56, 0x76, 0x55, 0x50, 0x4d, 0x6a, 0x58, 0x2f, 0x68, 0x64, 0x35, 0x36, 0x7a, 0x77, 0x79, 0x44, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x0a, 0x41, 0x51, 0x45, 0x41, 0x74, 0x58, 0x50, 0x34, 0x41, 0x39, 0x78, 0x5a, 0x57, 0x78, 0x31, 0x32, 0x36, 0x61, 0x4d, 0x71, 0x65, 0x35, 0x41, 0x6f, 0x73, 0x6b, 0x33, 0x41, 0x4d, 0x30, 0x2b, 0x71, 0x6d, 0x72, 0x48, 0x55, 0x75, 0x4f, 0x51, 0x6e, 0x2f, 0x36, 0x6d, 0x57, 0x6d, 0x63, 0x35, 0x47, 0x34, 0x47, 0x31, 0x38, 0x54, 0x4b, 0x49, 0x34, 0x70, 0x41, 0x5a, 0x77, 0x38, 0x50, 0x52, 0x42, 0x45, 0x65, 0x77, 0x2f, 0x52, 0x34, 0x30, 0x2f, 0x63, 0x6f, 0x66, 0x35, 0x0a, 0x4f, 0x2f, 0x32, 0x6b, 0x62, 0x79, 0x74, 0x54, 0x41, 0x4f, 0x44, 0x2f, 0x4f, 0x62, 0x6c, 0x71, 0x42, 0x77, 0x37, 0x72, 0x48, 0x52, 0x7a, 0x32, 0x6f, 0x6e, 0x4b, 0x51, 0x79, 0x34, 0x49, 0x39, 0x45, 0x59, 0x4b, 0x4c, 0x30, 0x72, 0x75, 0x66, 0x4b, 0x71, 0x38, 0x68, 0x35, 0x6d, 0x4f, 0x47, 0x6e, 0x58, 0x6b, 0x5a, 0x37, 0x2f, 0x65, 0x37, 0x44, 0x44, 0x57, 0x51, 0x77, 0x34, 0x72, 0x74, 0x54, 0x77, 0x2f, 0x31, 0x7a, 0x42, 0x4c, 0x5a, 0x70, 0x44, 0x36, 0x37, 0x0a, 0x6f, 0x50, 0x77, 0x67, 0x6c, 0x56, 0x39, 0x50, 0x4a, 0x69, 0x38, 0x52, 0x49, 0x34, 0x4e, 0x4f, 0x64, 0x51, 0x63, 0x50, 0x76, 0x35, 0x76, 0x52, 0x74, 0x42, 0x33, 0x70, 0x45, 0x41, 0x54, 0x2b, 0x79, 0x6d, 0x43, 0x50, 0x6f, 0x6b, 0x79, 0x34, 0x72, 0x63, 0x2f, 0x68, 0x6b, 0x41, 0x2f, 0x4e, 0x72, 0x67, 0x72, 0x48, 0x58, 0x58, 0x75, 0x33, 0x55, 0x4e, 0x4c, 0x55, 0x59, 0x66, 0x72, 0x56, 0x46, 0x64, 0x76, 0x58, 0x6e, 0x34, 0x64, 0x52, 0x56, 0x4f, 0x75, 0x6c, 0x0a, 0x34, 0x2b, 0x76, 0x4a, 0x68, 0x61, 0x41, 0x6c, 0x49, 0x44, 0x66, 0x37, 0x6a, 0x73, 0x34, 0x4d, 0x4e, 0x49, 0x54, 0x68, 0x50, 0x49, 0x47, 0x79, 0x64, 0x30, 0x35, 0x44, 0x70, 0x59, 0x68, 0x66, 0x68, 0x6d, 0x65, 0x68, 0x50, 0x65, 0x61, 0x30, 0x58, 0x47, 0x47, 0x32, 0x50, 0x74, 0x76, 0x2b, 0x74, 0x79, 0x6a, 0x46, 0x6f, 0x67, 0x65, 0x75, 0x74, 0x63, 0x72, 0x4b, 0x6a, 0x53, 0x6f, 0x53, 0x37, 0x35, 0x66, 0x74, 0x77, 0x6a, 0x43, 0x6b, 0x79, 0x53, 0x70, 0x36, 0x0a, 0x2b, 0x2f, 0x4e, 0x4e, 0x49, 0x78, 0x75, 0x5a, 0x4d, 0x7a, 0x53, 0x67, 0x4c, 0x76, 0x57, 0x70, 0x43, 0x7a, 0x2f, 0x55, 0x58, 0x65, 0x48, 0x50, 0x68, 0x4a, 0x2f, 0x69, 0x47, 0x63, 0x4a, 0x66, 0x69, 0x74, 0x59, 0x67, 0x48, 0x75, 0x4e, 0x7a, 0x74, 0x77, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x43, 0x65, 0x72, 0x74, 0x75, 0x6d, 0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x20, 0x43, 0x41, 0x20, 0x32, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x30, 0x6a, 0x43, 0x43, 0x41, 0x37, 0x71, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x49, 0x64, 0x62, 0x51, 0x53, 0x6b, 0x38, 0x6c, 0x44, 0x38, 0x6b, 0x79, 0x4e, 0x2f, 0x79, 0x71, 0x58, 0x68, 0x4b, 0x4e, 0x36, 0x54, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x30, 0x46, 0x41, 0x44, 0x43, 0x42, 0x67, 0x44, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x0a, 0x42, 0x68, 0x4d, 0x43, 0x55, 0x45, 0x77, 0x78, 0x49, 0x6a, 0x41, 0x67, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x47, 0x56, 0x56, 0x75, 0x61, 0x58, 0x70, 0x6c, 0x64, 0x47, 0x38, 0x67, 0x56, 0x47, 0x56, 0x6a, 0x61, 0x47, 0x35, 0x76, 0x62, 0x47, 0x39, 0x6e, 0x61, 0x57, 0x56, 0x7a, 0x49, 0x46, 0x4d, 0x75, 0x51, 0x53, 0x34, 0x78, 0x4a, 0x7a, 0x41, 0x6c, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x73, 0x54, 0x48, 0x6b, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x31, 0x0a, 0x62, 0x53, 0x42, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x61, 0x57, 0x5a, 0x70, 0x59, 0x32, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x49, 0x45, 0x46, 0x31, 0x64, 0x47, 0x68, 0x76, 0x63, 0x6d, 0x6c, 0x30, 0x65, 0x54, 0x45, 0x6b, 0x4d, 0x43, 0x49, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x62, 0x51, 0x32, 0x56, 0x79, 0x64, 0x48, 0x56, 0x74, 0x49, 0x46, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x5a, 0x57, 0x51, 0x67, 0x54, 0x6d, 0x56, 0x30, 0x64, 0x32, 0x39, 0x79, 0x0a, 0x61, 0x79, 0x42, 0x44, 0x51, 0x53, 0x41, 0x79, 0x4d, 0x43, 0x49, 0x59, 0x44, 0x7a, 0x49, 0x77, 0x4d, 0x54, 0x45, 0x78, 0x4d, 0x44, 0x41, 0x32, 0x4d, 0x44, 0x67, 0x7a, 0x4f, 0x54, 0x55, 0x32, 0x57, 0x68, 0x67, 0x50, 0x4d, 0x6a, 0x41, 0x30, 0x4e, 0x6a, 0x45, 0x77, 0x4d, 0x44, 0x59, 0x77, 0x4f, 0x44, 0x4d, 0x35, 0x4e, 0x54, 0x5a, 0x61, 0x4d, 0x49, 0x47, 0x41, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x51, 0x0a, 0x54, 0x44, 0x45, 0x69, 0x4d, 0x43, 0x41, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x5a, 0x56, 0x57, 0x35, 0x70, 0x65, 0x6d, 0x56, 0x30, 0x62, 0x79, 0x42, 0x55, 0x5a, 0x57, 0x4e, 0x6f, 0x62, 0x6d, 0x39, 0x73, 0x62, 0x32, 0x64, 0x70, 0x5a, 0x58, 0x4d, 0x67, 0x55, 0x79, 0x35, 0x42, 0x4c, 0x6a, 0x45, 0x6e, 0x4d, 0x43, 0x55, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x78, 0x4d, 0x65, 0x51, 0x32, 0x56, 0x79, 0x64, 0x48, 0x56, 0x74, 0x49, 0x45, 0x4e, 0x6c, 0x0a, 0x63, 0x6e, 0x52, 0x70, 0x5a, 0x6d, 0x6c, 0x6a, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x34, 0x67, 0x51, 0x58, 0x56, 0x30, 0x61, 0x47, 0x39, 0x79, 0x61, 0x58, 0x52, 0x35, 0x4d, 0x53, 0x51, 0x77, 0x49, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x74, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x64, 0x57, 0x30, 0x67, 0x56, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x52, 0x6c, 0x5a, 0x43, 0x42, 0x4f, 0x5a, 0x58, 0x52, 0x33, 0x62, 0x33, 0x4a, 0x72, 0x49, 0x45, 0x4e, 0x42, 0x0a, 0x49, 0x44, 0x49, 0x77, 0x67, 0x67, 0x49, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x49, 0x4b, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x43, 0x39, 0x2b, 0x58, 0x6a, 0x34, 0x35, 0x74, 0x57, 0x41, 0x44, 0x47, 0x53, 0x64, 0x68, 0x68, 0x75, 0x57, 0x5a, 0x47, 0x63, 0x2f, 0x49, 0x6a, 0x6f, 0x65, 0x64, 0x51, 0x46, 0x39, 0x0a, 0x37, 0x2f, 0x74, 0x63, 0x5a, 0x34, 0x7a, 0x4a, 0x7a, 0x46, 0x78, 0x72, 0x71, 0x5a, 0x48, 0x6d, 0x75, 0x55, 0x4c, 0x6c, 0x49, 0x45, 0x75, 0x62, 0x32, 0x70, 0x74, 0x37, 0x75, 0x5a, 0x6c, 0x64, 0x32, 0x5a, 0x75, 0x41, 0x53, 0x39, 0x65, 0x45, 0x51, 0x43, 0x73, 0x6e, 0x30, 0x2b, 0x69, 0x36, 0x4d, 0x4c, 0x73, 0x2b, 0x43, 0x52, 0x71, 0x6e, 0x53, 0x5a, 0x58, 0x76, 0x4b, 0x30, 0x41, 0x6b, 0x77, 0x70, 0x66, 0x48, 0x70, 0x2b, 0x36, 0x62, 0x4a, 0x65, 0x2b, 0x6f, 0x0a, 0x43, 0x67, 0x43, 0x58, 0x68, 0x56, 0x71, 0x71, 0x6e, 0x64, 0x77, 0x70, 0x79, 0x65, 0x49, 0x31, 0x42, 0x2b, 0x74, 0x77, 0x54, 0x55, 0x72, 0x57, 0x77, 0x62, 0x4e, 0x57, 0x75, 0x4b, 0x46, 0x42, 0x4f, 0x4a, 0x76, 0x52, 0x2b, 0x7a, 0x46, 0x2f, 0x6a, 0x2b, 0x42, 0x66, 0x34, 0x62, 0x45, 0x2f, 0x44, 0x34, 0x34, 0x57, 0x53, 0x57, 0x44, 0x58, 0x42, 0x6f, 0x30, 0x59, 0x2b, 0x61, 0x6f, 0x6d, 0x45, 0x4b, 0x73, 0x71, 0x30, 0x39, 0x44, 0x52, 0x5a, 0x34, 0x30, 0x62, 0x0a, 0x52, 0x72, 0x35, 0x48, 0x4d, 0x4e, 0x55, 0x75, 0x63, 0x74, 0x48, 0x46, 0x59, 0x39, 0x72, 0x6e, 0x59, 0x33, 0x6c, 0x45, 0x66, 0x6b, 0x74, 0x6a, 0x4a, 0x49, 0x6d, 0x47, 0x4c, 0x6a, 0x51, 0x2f, 0x4b, 0x55, 0x78, 0x53, 0x69, 0x79, 0x71, 0x6e, 0x77, 0x4f, 0x4b, 0x52, 0x4b, 0x49, 0x6d, 0x35, 0x77, 0x46, 0x76, 0x35, 0x48, 0x64, 0x6e, 0x6e, 0x4a, 0x36, 0x33, 0x2f, 0x6d, 0x67, 0x4b, 0x58, 0x77, 0x63, 0x5a, 0x51, 0x6b, 0x70, 0x73, 0x43, 0x4c, 0x4c, 0x32, 0x70, 0x0a, 0x75, 0x54, 0x52, 0x5a, 0x43, 0x72, 0x2b, 0x45, 0x53, 0x76, 0x2f, 0x66, 0x2f, 0x72, 0x4f, 0x66, 0x36, 0x39, 0x6d, 0x65, 0x34, 0x4a, 0x67, 0x6a, 0x37, 0x4b, 0x5a, 0x72, 0x64, 0x78, 0x59, 0x71, 0x32, 0x38, 0x79, 0x74, 0x4f, 0x78, 0x79, 0x6b, 0x68, 0x39, 0x78, 0x47, 0x63, 0x31, 0x34, 0x5a, 0x59, 0x6d, 0x68, 0x46, 0x56, 0x2b, 0x53, 0x51, 0x67, 0x6b, 0x4b, 0x37, 0x51, 0x74, 0x62, 0x77, 0x59, 0x65, 0x44, 0x42, 0x6f, 0x7a, 0x31, 0x6d, 0x6f, 0x31, 0x33, 0x30, 0x0a, 0x47, 0x4f, 0x36, 0x49, 0x79, 0x59, 0x30, 0x58, 0x52, 0x53, 0x6d, 0x5a, 0x4d, 0x6e, 0x55, 0x43, 0x4d, 0x65, 0x34, 0x70, 0x4a, 0x73, 0x68, 0x72, 0x41, 0x75, 0x61, 0x31, 0x59, 0x6b, 0x56, 0x2f, 0x4e, 0x78, 0x56, 0x61, 0x49, 0x32, 0x69, 0x4a, 0x31, 0x44, 0x37, 0x65, 0x54, 0x69, 0x65, 0x77, 0x38, 0x45, 0x41, 0x4d, 0x76, 0x45, 0x30, 0x58, 0x79, 0x30, 0x32, 0x69, 0x73, 0x78, 0x37, 0x51, 0x42, 0x6c, 0x72, 0x64, 0x39, 0x70, 0x50, 0x50, 0x56, 0x33, 0x57, 0x5a, 0x0a, 0x39, 0x66, 0x71, 0x47, 0x47, 0x6d, 0x64, 0x34, 0x73, 0x37, 0x2b, 0x57, 0x2f, 0x6a, 0x54, 0x63, 0x76, 0x65, 0x64, 0x53, 0x56, 0x75, 0x57, 0x7a, 0x35, 0x58, 0x56, 0x37, 0x31, 0x30, 0x47, 0x52, 0x42, 0x64, 0x78, 0x64, 0x61, 0x65, 0x4f, 0x56, 0x44, 0x55, 0x4f, 0x35, 0x2f, 0x49, 0x4f, 0x57, 0x4f, 0x5a, 0x56, 0x37, 0x62, 0x49, 0x42, 0x61, 0x54, 0x78, 0x4e, 0x79, 0x78, 0x74, 0x64, 0x39, 0x4b, 0x58, 0x70, 0x45, 0x75, 0x6c, 0x4b, 0x6b, 0x4b, 0x74, 0x56, 0x42, 0x0a, 0x52, 0x67, 0x6b, 0x67, 0x2f, 0x69, 0x4b, 0x67, 0x74, 0x6c, 0x73, 0x77, 0x6a, 0x62, 0x79, 0x4a, 0x44, 0x4e, 0x58, 0x58, 0x63, 0x50, 0x69, 0x48, 0x55, 0x76, 0x33, 0x61, 0x37, 0x36, 0x78, 0x52, 0x4c, 0x67, 0x65, 0x7a, 0x54, 0x76, 0x37, 0x51, 0x43, 0x64, 0x70, 0x77, 0x37, 0x35, 0x6a, 0x36, 0x56, 0x75, 0x5a, 0x74, 0x32, 0x37, 0x56, 0x58, 0x53, 0x39, 0x7a, 0x6c, 0x4c, 0x43, 0x55, 0x56, 0x79, 0x4a, 0x34, 0x75, 0x65, 0x45, 0x37, 0x34, 0x32, 0x70, 0x79, 0x65, 0x0a, 0x68, 0x69, 0x7a, 0x4b, 0x56, 0x2f, 0x4d, 0x61, 0x35, 0x63, 0x69, 0x53, 0x69, 0x78, 0x71, 0x43, 0x6c, 0x6e, 0x72, 0x44, 0x76, 0x46, 0x41, 0x53, 0x61, 0x64, 0x67, 0x4f, 0x57, 0x6b, 0x61, 0x4c, 0x4f, 0x75, 0x73, 0x6d, 0x2b, 0x69, 0x50, 0x4a, 0x74, 0x72, 0x43, 0x42, 0x76, 0x6b, 0x49, 0x41, 0x70, 0x50, 0x6a, 0x57, 0x2f, 0x6a, 0x41, 0x75, 0x78, 0x39, 0x4a, 0x47, 0x39, 0x75, 0x57, 0x4f, 0x64, 0x66, 0x33, 0x79, 0x7a, 0x4c, 0x6e, 0x51, 0x68, 0x31, 0x76, 0x4d, 0x0a, 0x42, 0x68, 0x42, 0x67, 0x75, 0x34, 0x4d, 0x31, 0x74, 0x31, 0x35, 0x6e, 0x33, 0x6b, 0x66, 0x73, 0x6d, 0x55, 0x6a, 0x78, 0x70, 0x4b, 0x45, 0x56, 0x2f, 0x71, 0x32, 0x4d, 0x59, 0x6f, 0x34, 0x35, 0x56, 0x55, 0x38, 0x35, 0x46, 0x72, 0x6d, 0x78, 0x59, 0x35, 0x33, 0x2f, 0x74, 0x77, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x0a, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x53, 0x32, 0x6f, 0x56, 0x51, 0x35, 0x41, 0x73, 0x4f, 0x67, 0x50, 0x34, 0x36, 0x4b, 0x76, 0x50, 0x72, 0x55, 0x2b, 0x42, 0x79, 0x6d, 0x30, 0x54, 0x6f, 0x4f, 0x2f, 0x54, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x51, 0x59, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x0a, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4e, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x42, 0x41, 0x48, 0x47, 0x6c, 0x44, 0x73, 0x37, 0x6b, 0x36, 0x62, 0x38, 0x2f, 0x4f, 0x4e, 0x57, 0x4a, 0x57, 0x73, 0x51, 0x43, 0x59, 0x66, 0x74, 0x4d, 0x78, 0x52, 0x51, 0x58, 0x4c, 0x59, 0x74, 0x50, 0x55, 0x32, 0x73, 0x51, 0x46, 0x2f, 0x78, 0x6c, 0x68, 0x4d, 0x63, 0x51, 0x53, 0x5a, 0x44, 0x65, 0x32, 0x38, 0x63, 0x6d, 0x6b, 0x34, 0x67, 0x6d, 0x62, 0x33, 0x44, 0x57, 0x0a, 0x41, 0x6c, 0x34, 0x35, 0x6f, 0x50, 0x65, 0x50, 0x71, 0x35, 0x61, 0x31, 0x70, 0x52, 0x4e, 0x63, 0x67, 0x52, 0x52, 0x74, 0x44, 0x6f, 0x47, 0x43, 0x45, 0x52, 0x75, 0x4b, 0x54, 0x73, 0x5a, 0x50, 0x70, 0x64, 0x31, 0x69, 0x48, 0x6b, 0x54, 0x66, 0x43, 0x56, 0x6e, 0x30, 0x57, 0x33, 0x63, 0x4c, 0x4e, 0x2b, 0x6d, 0x4c, 0x49, 0x4d, 0x62, 0x34, 0x43, 0x6b, 0x34, 0x75, 0x57, 0x42, 0x7a, 0x72, 0x4d, 0x39, 0x44, 0x50, 0x68, 0x6d, 0x44, 0x4a, 0x32, 0x76, 0x75, 0x41, 0x0a, 0x4c, 0x35, 0x35, 0x4d, 0x59, 0x49, 0x52, 0x34, 0x50, 0x53, 0x46, 0x6b, 0x31, 0x76, 0x74, 0x42, 0x48, 0x78, 0x67, 0x50, 0x35, 0x38, 0x6c, 0x31, 0x63, 0x62, 0x32, 0x39, 0x58, 0x4e, 0x34, 0x30, 0x68, 0x7a, 0x35, 0x42, 0x73, 0x41, 0x37, 0x32, 0x75, 0x64, 0x59, 0x2f, 0x43, 0x52, 0x4f, 0x57, 0x46, 0x43, 0x2f, 0x65, 0x6d, 0x68, 0x31, 0x61, 0x75, 0x56, 0x62, 0x4f, 0x4e, 0x54, 0x71, 0x77, 0x58, 0x33, 0x42, 0x4e, 0x58, 0x75, 0x4d, 0x70, 0x38, 0x53, 0x4d, 0x6f, 0x0a, 0x63, 0x6c, 0x6d, 0x32, 0x71, 0x38, 0x4b, 0x4d, 0x5a, 0x69, 0x59, 0x63, 0x64, 0x79, 0x77, 0x6d, 0x64, 0x6a, 0x57, 0x4c, 0x4b, 0x4b, 0x64, 0x70, 0x6f, 0x50, 0x6b, 0x37, 0x39, 0x53, 0x50, 0x64, 0x68, 0x52, 0x42, 0x30, 0x79, 0x5a, 0x41, 0x44, 0x56, 0x70, 0x48, 0x6e, 0x72, 0x37, 0x70, 0x48, 0x31, 0x42, 0x4b, 0x58, 0x45, 0x53, 0x4c, 0x6a, 0x6f, 0x6b, 0x6d, 0x55, 0x62, 0x4f, 0x65, 0x33, 0x6c, 0x45, 0x75, 0x36, 0x4c, 0x61, 0x54, 0x61, 0x4d, 0x34, 0x74, 0x4d, 0x0a, 0x70, 0x6b, 0x54, 0x2f, 0x57, 0x6a, 0x7a, 0x47, 0x48, 0x57, 0x54, 0x59, 0x74, 0x54, 0x48, 0x6b, 0x70, 0x6a, 0x78, 0x36, 0x71, 0x46, 0x63, 0x4c, 0x32, 0x2b, 0x31, 0x68, 0x47, 0x73, 0x76, 0x78, 0x7a, 0x6e, 0x4e, 0x33, 0x59, 0x36, 0x53, 0x48, 0x62, 0x30, 0x78, 0x52, 0x4f, 0x4e, 0x62, 0x6b, 0x58, 0x38, 0x65, 0x66, 0x74, 0x6f, 0x45, 0x71, 0x35, 0x49, 0x56, 0x49, 0x65, 0x56, 0x68, 0x65, 0x4f, 0x2f, 0x6a, 0x62, 0x41, 0x6f, 0x4a, 0x6e, 0x77, 0x54, 0x6e, 0x62, 0x0a, 0x77, 0x33, 0x52, 0x4c, 0x50, 0x54, 0x59, 0x65, 0x2b, 0x53, 0x6d, 0x54, 0x69, 0x47, 0x68, 0x62, 0x71, 0x45, 0x51, 0x5a, 0x49, 0x66, 0x43, 0x6e, 0x36, 0x49, 0x45, 0x4e, 0x4c, 0x4f, 0x69, 0x54, 0x4e, 0x72, 0x51, 0x33, 0x73, 0x73, 0x71, 0x77, 0x47, 0x79, 0x5a, 0x36, 0x6d, 0x69, 0x55, 0x66, 0x6d, 0x70, 0x71, 0x41, 0x6e, 0x6b, 0x73, 0x71, 0x50, 0x2f, 0x75, 0x6a, 0x6d, 0x76, 0x35, 0x7a, 0x4d, 0x6e, 0x48, 0x43, 0x6e, 0x73, 0x5a, 0x79, 0x34, 0x59, 0x70, 0x6f, 0x0a, 0x4a, 0x2f, 0x48, 0x6b, 0x44, 0x37, 0x54, 0x45, 0x54, 0x4b, 0x56, 0x68, 0x6b, 0x2f, 0x69, 0x58, 0x45, 0x41, 0x63, 0x71, 0x4d, 0x43, 0x57, 0x70, 0x75, 0x63, 0x68, 0x78, 0x75, 0x4f, 0x39, 0x6f, 0x7a, 0x43, 0x31, 0x2b, 0x39, 0x65, 0x42, 0x2b, 0x44, 0x34, 0x4b, 0x6f, 0x62, 0x37, 0x61, 0x36, 0x62, 0x49, 0x4e, 0x44, 0x64, 0x38, 0x32, 0x4b, 0x6b, 0x68, 0x65, 0x68, 0x6e, 0x6c, 0x74, 0x34, 0x46, 0x6a, 0x31, 0x46, 0x34, 0x6a, 0x4e, 0x79, 0x33, 0x65, 0x46, 0x6d, 0x0a, 0x79, 0x70, 0x6e, 0x54, 0x79, 0x63, 0x55, 0x6d, 0x2f, 0x51, 0x31, 0x6f, 0x42, 0x45, 0x61, 0x75, 0x74, 0x74, 0x6d, 0x62, 0x6a, 0x4c, 0x34, 0x5a, 0x76, 0x72, 0x48, 0x47, 0x38, 0x68, 0x6e, 0x6a, 0x58, 0x41, 0x4c, 0x4b, 0x4c, 0x4e, 0x68, 0x76, 0x53, 0x67, 0x66, 0x5a, 0x79, 0x54, 0x58, 0x61, 0x51, 0x48, 0x58, 0x79, 0x78, 0x4b, 0x63, 0x5a, 0x62, 0x35, 0x35, 0x43, 0x45, 0x4a, 0x68, 0x31, 0x35, 0x70, 0x57, 0x4c, 0x59, 0x4c, 0x7a, 0x74, 0x78, 0x52, 0x4c, 0x58, 0x0a, 0x69, 0x73, 0x37, 0x56, 0x6d, 0x46, 0x78, 0x57, 0x6c, 0x67, 0x50, 0x46, 0x37, 0x6e, 0x63, 0x47, 0x4e, 0x66, 0x2f, 0x50, 0x35, 0x4f, 0x34, 0x2f, 0x45, 0x32, 0x48, 0x75, 0x32, 0x39, 0x6f, 0x74, 0x68, 0x66, 0x44, 0x4e, 0x72, 0x70, 0x32, 0x79, 0x47, 0x41, 0x6c, 0x46, 0x77, 0x35, 0x4b, 0x68, 0x63, 0x68, 0x66, 0x38, 0x52, 0x37, 0x61, 0x67, 0x43, 0x79, 0x7a, 0x78, 0x78, 0x4e, 0x35, 0x44, 0x61, 0x41, 0x68, 0x71, 0x58, 0x7a, 0x76, 0x77, 0x64, 0x6d, 0x50, 0x37, 0x0a, 0x7a, 0x41, 0x59, 0x73, 0x70, 0x73, 0x62, 0x69, 0x44, 0x72, 0x57, 0x35, 0x76, 0x69, 0x53, 0x50, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x48, 0x65, 0x6c, 0x6c, 0x65, 0x6e, 0x69, 0x63, 0x20, 0x41, 0x63, 0x61, 0x64, 0x65, 0x6d, 0x69, 0x63, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x52, 0x65, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x49, 0x6e, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x41, 0x20, 0x32, 0x30, 0x31, 0x35, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x47, 0x43, 0x7a, 0x43, 0x43, 0x41, 0x2f, 0x4f, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x42, 0x41, 0x44, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x44, 0x43, 0x42, 0x70, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x52, 0x31, 0x49, 0x78, 0x44, 0x7a, 0x41, 0x4e, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x63, 0x54, 0x0a, 0x42, 0x6b, 0x46, 0x30, 0x61, 0x47, 0x56, 0x75, 0x63, 0x7a, 0x46, 0x45, 0x4d, 0x45, 0x49, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x37, 0x53, 0x47, 0x56, 0x73, 0x62, 0x47, 0x56, 0x75, 0x61, 0x57, 0x4d, 0x67, 0x51, 0x57, 0x4e, 0x68, 0x5a, 0x47, 0x56, 0x74, 0x61, 0x57, 0x4d, 0x67, 0x59, 0x57, 0x35, 0x6b, 0x49, 0x46, 0x4a, 0x6c, 0x63, 0x32, 0x56, 0x68, 0x63, 0x6d, 0x4e, 0x6f, 0x49, 0x45, 0x6c, 0x75, 0x63, 0x33, 0x52, 0x70, 0x64, 0x48, 0x56, 0x30, 0x0a, 0x61, 0x57, 0x39, 0x75, 0x63, 0x79, 0x42, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x4c, 0x69, 0x42, 0x42, 0x64, 0x58, 0x52, 0x6f, 0x62, 0x33, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x78, 0x51, 0x44, 0x41, 0x2b, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x4e, 0x30, 0x68, 0x6c, 0x62, 0x47, 0x78, 0x6c, 0x62, 0x6d, 0x6c, 0x6a, 0x49, 0x45, 0x46, 0x6a, 0x59, 0x57, 0x52, 0x6c, 0x62, 0x57, 0x6c, 0x6a, 0x49, 0x47, 0x46, 0x75, 0x5a, 0x43, 0x42, 0x53, 0x5a, 0x58, 0x4e, 0x6c, 0x0a, 0x59, 0x58, 0x4a, 0x6a, 0x61, 0x43, 0x42, 0x4a, 0x62, 0x6e, 0x4e, 0x30, 0x61, 0x58, 0x52, 0x31, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x6e, 0x4d, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x45, 0x4e, 0x42, 0x49, 0x44, 0x49, 0x77, 0x4d, 0x54, 0x55, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x54, 0x55, 0x77, 0x4e, 0x7a, 0x41, 0x33, 0x4d, 0x54, 0x41, 0x78, 0x4d, 0x54, 0x49, 0x78, 0x57, 0x68, 0x63, 0x4e, 0x4e, 0x44, 0x41, 0x77, 0x4e, 0x6a, 0x4d, 0x77, 0x4d, 0x54, 0x41, 0x78, 0x0a, 0x4d, 0x54, 0x49, 0x78, 0x57, 0x6a, 0x43, 0x42, 0x70, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x52, 0x31, 0x49, 0x78, 0x44, 0x7a, 0x41, 0x4e, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x63, 0x54, 0x42, 0x6b, 0x46, 0x30, 0x61, 0x47, 0x56, 0x75, 0x63, 0x7a, 0x46, 0x45, 0x4d, 0x45, 0x49, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x37, 0x53, 0x47, 0x56, 0x73, 0x62, 0x47, 0x56, 0x75, 0x61, 0x57, 0x4d, 0x67, 0x0a, 0x51, 0x57, 0x4e, 0x68, 0x5a, 0x47, 0x56, 0x74, 0x61, 0x57, 0x4d, 0x67, 0x59, 0x57, 0x35, 0x6b, 0x49, 0x46, 0x4a, 0x6c, 0x63, 0x32, 0x56, 0x68, 0x63, 0x6d, 0x4e, 0x6f, 0x49, 0x45, 0x6c, 0x75, 0x63, 0x33, 0x52, 0x70, 0x64, 0x48, 0x56, 0x30, 0x61, 0x57, 0x39, 0x75, 0x63, 0x79, 0x42, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x4c, 0x69, 0x42, 0x42, 0x64, 0x58, 0x52, 0x6f, 0x62, 0x33, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x78, 0x51, 0x44, 0x41, 0x2b, 0x42, 0x67, 0x4e, 0x56, 0x0a, 0x42, 0x41, 0x4d, 0x54, 0x4e, 0x30, 0x68, 0x6c, 0x62, 0x47, 0x78, 0x6c, 0x62, 0x6d, 0x6c, 0x6a, 0x49, 0x45, 0x46, 0x6a, 0x59, 0x57, 0x52, 0x6c, 0x62, 0x57, 0x6c, 0x6a, 0x49, 0x47, 0x46, 0x75, 0x5a, 0x43, 0x42, 0x53, 0x5a, 0x58, 0x4e, 0x6c, 0x59, 0x58, 0x4a, 0x6a, 0x61, 0x43, 0x42, 0x4a, 0x62, 0x6e, 0x4e, 0x30, 0x61, 0x58, 0x52, 0x31, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x6e, 0x4d, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x45, 0x4e, 0x42, 0x49, 0x44, 0x49, 0x77, 0x0a, 0x4d, 0x54, 0x55, 0x77, 0x67, 0x67, 0x49, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x49, 0x4b, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x44, 0x43, 0x2b, 0x4b, 0x6b, 0x2f, 0x47, 0x34, 0x6e, 0x38, 0x50, 0x44, 0x77, 0x45, 0x58, 0x54, 0x32, 0x51, 0x4e, 0x72, 0x43, 0x52, 0x4f, 0x6e, 0x6b, 0x38, 0x5a, 0x6c, 0x72, 0x76, 0x0a, 0x62, 0x54, 0x6b, 0x42, 0x53, 0x52, 0x71, 0x30, 0x74, 0x38, 0x39, 0x2f, 0x54, 0x53, 0x4e, 0x54, 0x74, 0x35, 0x41, 0x41, 0x34, 0x78, 0x4d, 0x71, 0x4b, 0x4b, 0x59, 0x78, 0x38, 0x5a, 0x45, 0x41, 0x34, 0x79, 0x6a, 0x73, 0x72, 0x69, 0x46, 0x42, 0x7a, 0x68, 0x2f, 0x61, 0x2f, 0x58, 0x30, 0x53, 0x57, 0x77, 0x47, 0x44, 0x44, 0x37, 0x6d, 0x77, 0x58, 0x35, 0x6e, 0x68, 0x38, 0x68, 0x4b, 0x44, 0x67, 0x45, 0x30, 0x47, 0x50, 0x74, 0x2b, 0x73, 0x72, 0x2b, 0x65, 0x68, 0x0a, 0x69, 0x47, 0x73, 0x78, 0x72, 0x2f, 0x43, 0x4c, 0x30, 0x42, 0x67, 0x7a, 0x75, 0x4e, 0x74, 0x46, 0x61, 0x6a, 0x54, 0x30, 0x41, 0x6f, 0x41, 0x6b, 0x4b, 0x41, 0x6f, 0x43, 0x46, 0x5a, 0x56, 0x65, 0x64, 0x69, 0x6f, 0x4e, 0x6d, 0x54, 0x6f, 0x55, 0x57, 0x2f, 0x62, 0x4c, 0x79, 0x31, 0x4f, 0x38, 0x45, 0x30, 0x30, 0x42, 0x69, 0x44, 0x65, 0x55, 0x4a, 0x52, 0x74, 0x43, 0x76, 0x43, 0x4c, 0x59, 0x6a, 0x71, 0x4f, 0x57, 0x58, 0x6a, 0x72, 0x5a, 0x4d, 0x74, 0x73, 0x2b, 0x0a, 0x36, 0x50, 0x41, 0x51, 0x5a, 0x65, 0x31, 0x30, 0x34, 0x53, 0x2b, 0x6e, 0x66, 0x4b, 0x38, 0x6e, 0x4e, 0x4c, 0x73, 0x70, 0x66, 0x5a, 0x75, 0x32, 0x7a, 0x77, 0x6e, 0x49, 0x35, 0x64, 0x4d, 0x4b, 0x2f, 0x49, 0x68, 0x6c, 0x5a, 0x58, 0x51, 0x4b, 0x33, 0x48, 0x4d, 0x63, 0x58, 0x4d, 0x31, 0x41, 0x73, 0x52, 0x7a, 0x55, 0x74, 0x6f, 0x53, 0x4d, 0x54, 0x46, 0x44, 0x50, 0x61, 0x49, 0x36, 0x6f, 0x57, 0x61, 0x37, 0x43, 0x4a, 0x30, 0x36, 0x43, 0x6f, 0x6a, 0x58, 0x64, 0x0a, 0x46, 0x50, 0x51, 0x66, 0x2f, 0x37, 0x4a, 0x33, 0x31, 0x59, 0x63, 0x76, 0x71, 0x6d, 0x35, 0x39, 0x4a, 0x43, 0x66, 0x6e, 0x78, 0x73, 0x73, 0x6d, 0x35, 0x75, 0x58, 0x2b, 0x5a, 0x77, 0x64, 0x6a, 0x32, 0x45, 0x55, 0x4e, 0x33, 0x54, 0x70, 0x5a, 0x5a, 0x54, 0x6c, 0x59, 0x65, 0x70, 0x4b, 0x5a, 0x63, 0x6a, 0x32, 0x63, 0x68, 0x46, 0x36, 0x49, 0x49, 0x62, 0x6a, 0x56, 0x39, 0x43, 0x7a, 0x38, 0x32, 0x58, 0x42, 0x53, 0x54, 0x33, 0x69, 0x34, 0x76, 0x54, 0x77, 0x72, 0x0a, 0x69, 0x35, 0x57, 0x59, 0x39, 0x62, 0x50, 0x52, 0x61, 0x4d, 0x38, 0x67, 0x46, 0x48, 0x35, 0x4d, 0x58, 0x46, 0x2f, 0x6e, 0x69, 0x2b, 0x58, 0x31, 0x4e, 0x59, 0x45, 0x5a, 0x4e, 0x39, 0x63, 0x52, 0x43, 0x4c, 0x64, 0x6d, 0x76, 0x74, 0x4e, 0x4b, 0x7a, 0x6f, 0x4e, 0x58, 0x41, 0x44, 0x72, 0x44, 0x67, 0x66, 0x67, 0x58, 0x79, 0x35, 0x49, 0x32, 0x58, 0x64, 0x47, 0x6a, 0x32, 0x48, 0x55, 0x62, 0x34, 0x59, 0x73, 0x6e, 0x36, 0x6e, 0x70, 0x49, 0x51, 0x66, 0x31, 0x46, 0x0a, 0x47, 0x51, 0x61, 0x74, 0x4a, 0x35, 0x6c, 0x4f, 0x77, 0x58, 0x42, 0x48, 0x33, 0x62, 0x57, 0x66, 0x67, 0x56, 0x4d, 0x53, 0x35, 0x62, 0x47, 0x4d, 0x53, 0x46, 0x30, 0x78, 0x51, 0x78, 0x66, 0x6a, 0x6a, 0x4d, 0x5a, 0x36, 0x59, 0x35, 0x5a, 0x4c, 0x4b, 0x54, 0x42, 0x4f, 0x68, 0x45, 0x35, 0x69, 0x47, 0x56, 0x34, 0x38, 0x7a, 0x70, 0x65, 0x51, 0x70, 0x58, 0x38, 0x42, 0x36, 0x35, 0x33, 0x67, 0x2b, 0x49, 0x75, 0x4a, 0x33, 0x53, 0x57, 0x59, 0x50, 0x5a, 0x4b, 0x32, 0x0a, 0x66, 0x75, 0x2f, 0x5a, 0x38, 0x56, 0x46, 0x52, 0x66, 0x53, 0x30, 0x6d, 0x79, 0x47, 0x6c, 0x5a, 0x59, 0x65, 0x43, 0x73, 0x61, 0x72, 0x67, 0x71, 0x4e, 0x68, 0x45, 0x45, 0x65, 0x6c, 0x43, 0x39, 0x4d, 0x6f, 0x53, 0x2b, 0x4c, 0x39, 0x78, 0x79, 0x31, 0x64, 0x63, 0x64, 0x46, 0x6b, 0x66, 0x6b, 0x52, 0x32, 0x59, 0x67, 0x50, 0x2f, 0x53, 0x57, 0x78, 0x61, 0x2b, 0x4f, 0x41, 0x58, 0x71, 0x6c, 0x44, 0x33, 0x70, 0x6b, 0x39, 0x51, 0x30, 0x59, 0x68, 0x39, 0x6d, 0x75, 0x0a, 0x69, 0x4e, 0x58, 0x36, 0x68, 0x4d, 0x45, 0x36, 0x77, 0x47, 0x6b, 0x6f, 0x4c, 0x66, 0x49, 0x4e, 0x61, 0x46, 0x47, 0x71, 0x34, 0x36, 0x56, 0x33, 0x78, 0x71, 0x53, 0x51, 0x44, 0x71, 0x45, 0x33, 0x69, 0x7a, 0x45, 0x6a, 0x52, 0x38, 0x45, 0x4a, 0x43, 0x4f, 0x74, 0x75, 0x39, 0x33, 0x69, 0x62, 0x31, 0x34, 0x4c, 0x38, 0x68, 0x43, 0x43, 0x5a, 0x53, 0x52, 0x6d, 0x32, 0x45, 0x6b, 0x61, 0x78, 0x2b, 0x30, 0x56, 0x56, 0x46, 0x71, 0x6d, 0x6a, 0x5a, 0x61, 0x79, 0x63, 0x0a, 0x42, 0x77, 0x2f, 0x71, 0x61, 0x39, 0x77, 0x66, 0x4c, 0x67, 0x5a, 0x79, 0x37, 0x49, 0x61, 0x49, 0x45, 0x75, 0x51, 0x74, 0x32, 0x31, 0x38, 0x46, 0x4c, 0x2b, 0x54, 0x77, 0x41, 0x39, 0x4d, 0x6d, 0x4d, 0x2b, 0x65, 0x41, 0x77, 0x73, 0x31, 0x43, 0x6f, 0x52, 0x63, 0x30, 0x43, 0x77, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x0a, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x42, 0x6a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x63, 0x52, 0x56, 0x6e, 0x79, 0x4d, 0x6a, 0x4a, 0x76, 0x58, 0x56, 0x64, 0x63, 0x74, 0x41, 0x34, 0x47, 0x47, 0x71, 0x64, 0x38, 0x33, 0x45, 0x6b, 0x56, 0x41, 0x73, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x0a, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x42, 0x41, 0x48, 0x57, 0x37, 0x62, 0x56, 0x52, 0x4c, 0x71, 0x68, 0x42, 0x59, 0x52, 0x6a, 0x54, 0x79, 0x59, 0x74, 0x63, 0x57, 0x4e, 0x6c, 0x30, 0x49, 0x58, 0x74, 0x56, 0x73, 0x79, 0x49, 0x65, 0x39, 0x74, 0x43, 0x35, 0x47, 0x38, 0x6a, 0x48, 0x34, 0x66, 0x4f, 0x70, 0x43, 0x74, 0x5a, 0x4d, 0x57, 0x56, 0x64, 0x79, 0x68, 0x44, 0x42, 0x4b, 0x67, 0x32, 0x6d, 0x46, 0x2b, 0x0a, 0x44, 0x31, 0x68, 0x59, 0x63, 0x32, 0x52, 0x79, 0x78, 0x2b, 0x68, 0x46, 0x6a, 0x74, 0x79, 0x70, 0x38, 0x69, 0x59, 0x2f, 0x78, 0x6e, 0x6d, 0x4d, 0x73, 0x56, 0x4d, 0x49, 0x4d, 0x34, 0x47, 0x77, 0x56, 0x68, 0x4f, 0x2b, 0x35, 0x6c, 0x46, 0x63, 0x32, 0x4a, 0x73, 0x4b, 0x54, 0x30, 0x75, 0x63, 0x56, 0x6c, 0x4d, 0x43, 0x36, 0x55, 0x2f, 0x32, 0x44, 0x57, 0x44, 0x71, 0x54, 0x55, 0x4a, 0x56, 0x36, 0x48, 0x77, 0x62, 0x49, 0x53, 0x48, 0x54, 0x47, 0x7a, 0x72, 0x4d, 0x0a, 0x64, 0x2f, 0x4b, 0x34, 0x6b, 0x50, 0x46, 0x6f, 0x78, 0x2f, 0x6c, 0x61, 0x2f, 0x76, 0x6f, 0x74, 0x39, 0x4c, 0x2f, 0x4a, 0x39, 0x55, 0x55, 0x62, 0x7a, 0x6a, 0x67, 0x51, 0x4b, 0x6a, 0x65, 0x4b, 0x65, 0x61, 0x4f, 0x30, 0x34, 0x77, 0x6c, 0x73, 0x68, 0x59, 0x61, 0x54, 0x2f, 0x34, 0x6d, 0x57, 0x4a, 0x33, 0x69, 0x42, 0x6a, 0x32, 0x66, 0x6a, 0x52, 0x6e, 0x52, 0x55, 0x6a, 0x74, 0x6b, 0x4e, 0x61, 0x65, 0x4a, 0x4b, 0x39, 0x45, 0x31, 0x30, 0x41, 0x2f, 0x2b, 0x79, 0x0a, 0x64, 0x2b, 0x32, 0x56, 0x5a, 0x35, 0x66, 0x6b, 0x73, 0x63, 0x57, 0x72, 0x76, 0x32, 0x6f, 0x6a, 0x36, 0x4e, 0x53, 0x55, 0x34, 0x6b, 0x51, 0x6f, 0x59, 0x73, 0x52, 0x4c, 0x34, 0x76, 0x44, 0x59, 0x34, 0x69, 0x6c, 0x72, 0x47, 0x6e, 0x42, 0x2b, 0x4a, 0x47, 0x47, 0x54, 0x65, 0x30, 0x38, 0x44, 0x4d, 0x69, 0x55, 0x4e, 0x52, 0x53, 0x51, 0x72, 0x6c, 0x72, 0x52, 0x47, 0x61, 0x72, 0x39, 0x4b, 0x43, 0x2f, 0x65, 0x61, 0x6a, 0x38, 0x47, 0x73, 0x47, 0x73, 0x56, 0x6e, 0x0a, 0x38, 0x32, 0x38, 0x30, 0x30, 0x76, 0x70, 0x7a, 0x59, 0x34, 0x7a, 0x76, 0x46, 0x72, 0x43, 0x6f, 0x70, 0x45, 0x59, 0x71, 0x2b, 0x4f, 0x73, 0x53, 0x37, 0x48, 0x4b, 0x30, 0x37, 0x2f, 0x67, 0x72, 0x66, 0x6f, 0x78, 0x53, 0x77, 0x49, 0x75, 0x45, 0x56, 0x50, 0x6b, 0x76, 0x50, 0x75, 0x4e, 0x56, 0x71, 0x4e, 0x78, 0x6d, 0x73, 0x64, 0x6e, 0x68, 0x58, 0x39, 0x69, 0x7a, 0x6a, 0x46, 0x6b, 0x30, 0x57, 0x61, 0x53, 0x72, 0x54, 0x32, 0x79, 0x37, 0x48, 0x78, 0x6a, 0x62, 0x0a, 0x64, 0x61, 0x76, 0x59, 0x79, 0x35, 0x4c, 0x4e, 0x6c, 0x44, 0x68, 0x68, 0x44, 0x67, 0x63, 0x47, 0x48, 0x30, 0x74, 0x47, 0x45, 0x50, 0x45, 0x56, 0x76, 0x6f, 0x32, 0x46, 0x58, 0x44, 0x74, 0x4b, 0x4b, 0x34, 0x46, 0x35, 0x44, 0x37, 0x52, 0x70, 0x6e, 0x30, 0x6c, 0x51, 0x6c, 0x30, 0x33, 0x33, 0x44, 0x6c, 0x5a, 0x64, 0x77, 0x4a, 0x56, 0x71, 0x77, 0x6a, 0x62, 0x44, 0x47, 0x32, 0x6a, 0x4a, 0x39, 0x53, 0x72, 0x63, 0x52, 0x35, 0x71, 0x2b, 0x73, 0x73, 0x37, 0x46, 0x0a, 0x4a, 0x65, 0x6a, 0x36, 0x41, 0x37, 0x6e, 0x61, 0x2b, 0x52, 0x5a, 0x75, 0x6b, 0x59, 0x54, 0x31, 0x48, 0x43, 0x6a, 0x49, 0x2f, 0x43, 0x62, 0x4d, 0x31, 0x78, 0x79, 0x51, 0x56, 0x71, 0x64, 0x66, 0x62, 0x7a, 0x6f, 0x45, 0x76, 0x4d, 0x31, 0x34, 0x69, 0x51, 0x75, 0x4f, 0x44, 0x79, 0x2b, 0x6a, 0x71, 0x6b, 0x2b, 0x69, 0x47, 0x78, 0x49, 0x39, 0x46, 0x67, 0x68, 0x41, 0x44, 0x2f, 0x46, 0x47, 0x54, 0x4e, 0x65, 0x71, 0x65, 0x77, 0x6a, 0x42, 0x43, 0x76, 0x56, 0x74, 0x0a, 0x4a, 0x39, 0x34, 0x43, 0x6a, 0x38, 0x72, 0x44, 0x74, 0x53, 0x76, 0x4b, 0x36, 0x65, 0x76, 0x49, 0x49, 0x56, 0x4d, 0x34, 0x70, 0x63, 0x77, 0x37, 0x32, 0x48, 0x63, 0x33, 0x4d, 0x4b, 0x4a, 0x50, 0x32, 0x57, 0x2f, 0x52, 0x38, 0x6b, 0x43, 0x74, 0x51, 0x58, 0x6f, 0x58, 0x78, 0x64, 0x5a, 0x4b, 0x4e, 0x59, 0x6d, 0x33, 0x51, 0x64, 0x56, 0x38, 0x68, 0x6e, 0x39, 0x56, 0x54, 0x59, 0x4e, 0x4b, 0x70, 0x58, 0x4d, 0x67, 0x77, 0x44, 0x71, 0x76, 0x6b, 0x50, 0x47, 0x61, 0x0a, 0x4a, 0x49, 0x37, 0x5a, 0x6a, 0x6e, 0x48, 0x4b, 0x65, 0x37, 0x69, 0x47, 0x32, 0x72, 0x4b, 0x50, 0x6d, 0x54, 0x34, 0x64, 0x45, 0x77, 0x30, 0x53, 0x45, 0x65, 0x37, 0x55, 0x71, 0x2f, 0x44, 0x70, 0x46, 0x58, 0x59, 0x43, 0x35, 0x4f, 0x44, 0x66, 0x71, 0x69, 0x41, 0x65, 0x57, 0x32, 0x47, 0x46, 0x5a, 0x45, 0x43, 0x70, 0x6b, 0x4a, 0x63, 0x4e, 0x72, 0x56, 0x50, 0x53, 0x57, 0x68, 0x32, 0x48, 0x61, 0x67, 0x43, 0x58, 0x5a, 0x57, 0x4b, 0x30, 0x76, 0x6d, 0x39, 0x71, 0x0a, 0x70, 0x2f, 0x55, 0x73, 0x51, 0x75, 0x30, 0x79, 0x72, 0x62, 0x59, 0x68, 0x6e, 0x72, 0x36, 0x38, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x48, 0x65, 0x6c, 0x6c, 0x65, 0x6e, 0x69, 0x63, 0x20, 0x41, 0x63, 0x61, 0x64, 0x65, 0x6d, 0x69, 0x63, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x52, 0x65, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x20, 0x49, 0x6e, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x45, 0x43, 0x43, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x41, 0x20, 0x32, 0x30, 0x31, 0x35, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x77, 0x7a, 0x43, 0x43, 0x41, 0x6b, 0x71, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x42, 0x41, 0x44, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x6a, 0x43, 0x42, 0x71, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x52, 0x31, 0x49, 0x78, 0x44, 0x7a, 0x41, 0x4e, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x63, 0x54, 0x42, 0x6b, 0x46, 0x30, 0x0a, 0x61, 0x47, 0x56, 0x75, 0x63, 0x7a, 0x46, 0x45, 0x4d, 0x45, 0x49, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x37, 0x53, 0x47, 0x56, 0x73, 0x62, 0x47, 0x56, 0x75, 0x61, 0x57, 0x4d, 0x67, 0x51, 0x57, 0x4e, 0x68, 0x5a, 0x47, 0x56, 0x74, 0x61, 0x57, 0x4d, 0x67, 0x59, 0x57, 0x35, 0x6b, 0x49, 0x46, 0x4a, 0x6c, 0x63, 0x32, 0x56, 0x68, 0x63, 0x6d, 0x4e, 0x6f, 0x49, 0x45, 0x6c, 0x75, 0x63, 0x33, 0x52, 0x70, 0x64, 0x48, 0x56, 0x30, 0x61, 0x57, 0x39, 0x75, 0x0a, 0x63, 0x79, 0x42, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x4c, 0x69, 0x42, 0x42, 0x64, 0x58, 0x52, 0x6f, 0x62, 0x33, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x78, 0x52, 0x44, 0x42, 0x43, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x4f, 0x30, 0x68, 0x6c, 0x62, 0x47, 0x78, 0x6c, 0x62, 0x6d, 0x6c, 0x6a, 0x49, 0x45, 0x46, 0x6a, 0x59, 0x57, 0x52, 0x6c, 0x62, 0x57, 0x6c, 0x6a, 0x49, 0x47, 0x46, 0x75, 0x5a, 0x43, 0x42, 0x53, 0x5a, 0x58, 0x4e, 0x6c, 0x59, 0x58, 0x4a, 0x6a, 0x0a, 0x61, 0x43, 0x42, 0x4a, 0x62, 0x6e, 0x4e, 0x30, 0x61, 0x58, 0x52, 0x31, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x6e, 0x4d, 0x67, 0x52, 0x55, 0x4e, 0x44, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x52, 0x44, 0x51, 0x53, 0x41, 0x79, 0x4d, 0x44, 0x45, 0x31, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x45, 0x31, 0x4d, 0x44, 0x63, 0x77, 0x4e, 0x7a, 0x45, 0x77, 0x4d, 0x7a, 0x63, 0x78, 0x4d, 0x6c, 0x6f, 0x58, 0x44, 0x54, 0x51, 0x77, 0x4d, 0x44, 0x59, 0x7a, 0x4d, 0x44, 0x45, 0x77, 0x0a, 0x4d, 0x7a, 0x63, 0x78, 0x4d, 0x6c, 0x6f, 0x77, 0x67, 0x61, 0x6f, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6b, 0x64, 0x53, 0x4d, 0x51, 0x38, 0x77, 0x44, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x48, 0x45, 0x77, 0x5a, 0x42, 0x64, 0x47, 0x68, 0x6c, 0x62, 0x6e, 0x4d, 0x78, 0x52, 0x44, 0x42, 0x43, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x4f, 0x30, 0x68, 0x6c, 0x62, 0x47, 0x78, 0x6c, 0x62, 0x6d, 0x6c, 0x6a, 0x0a, 0x49, 0x45, 0x46, 0x6a, 0x59, 0x57, 0x52, 0x6c, 0x62, 0x57, 0x6c, 0x6a, 0x49, 0x47, 0x46, 0x75, 0x5a, 0x43, 0x42, 0x53, 0x5a, 0x58, 0x4e, 0x6c, 0x59, 0x58, 0x4a, 0x6a, 0x61, 0x43, 0x42, 0x4a, 0x62, 0x6e, 0x4e, 0x30, 0x61, 0x58, 0x52, 0x31, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x6e, 0x4d, 0x67, 0x51, 0x32, 0x56, 0x79, 0x64, 0x43, 0x34, 0x67, 0x51, 0x58, 0x56, 0x30, 0x61, 0x47, 0x39, 0x79, 0x61, 0x58, 0x52, 0x35, 0x4d, 0x55, 0x51, 0x77, 0x51, 0x67, 0x59, 0x44, 0x0a, 0x56, 0x51, 0x51, 0x44, 0x45, 0x7a, 0x74, 0x49, 0x5a, 0x57, 0x78, 0x73, 0x5a, 0x57, 0x35, 0x70, 0x59, 0x79, 0x42, 0x42, 0x59, 0x32, 0x46, 0x6b, 0x5a, 0x57, 0x31, 0x70, 0x59, 0x79, 0x42, 0x68, 0x62, 0x6d, 0x51, 0x67, 0x55, 0x6d, 0x56, 0x7a, 0x5a, 0x57, 0x46, 0x79, 0x59, 0x32, 0x67, 0x67, 0x53, 0x57, 0x35, 0x7a, 0x64, 0x47, 0x6c, 0x30, 0x64, 0x58, 0x52, 0x70, 0x62, 0x32, 0x35, 0x7a, 0x49, 0x45, 0x56, 0x44, 0x51, 0x79, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x0a, 0x51, 0x30, 0x45, 0x67, 0x4d, 0x6a, 0x41, 0x78, 0x4e, 0x54, 0x42, 0x32, 0x4d, 0x42, 0x41, 0x47, 0x42, 0x79, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x41, 0x67, 0x45, 0x47, 0x42, 0x53, 0x75, 0x42, 0x42, 0x41, 0x41, 0x69, 0x41, 0x32, 0x49, 0x41, 0x42, 0x4a, 0x4b, 0x67, 0x51, 0x65, 0x68, 0x4c, 0x67, 0x6f, 0x52, 0x63, 0x34, 0x76, 0x67, 0x78, 0x45, 0x5a, 0x6d, 0x47, 0x5a, 0x45, 0x34, 0x4a, 0x4a, 0x53, 0x2b, 0x64, 0x51, 0x53, 0x38, 0x4b, 0x72, 0x6a, 0x56, 0x50, 0x0a, 0x64, 0x4a, 0x57, 0x79, 0x55, 0x57, 0x52, 0x72, 0x6a, 0x57, 0x76, 0x6d, 0x50, 0x33, 0x43, 0x56, 0x38, 0x41, 0x56, 0x45, 0x52, 0x36, 0x5a, 0x79, 0x4f, 0x46, 0x42, 0x32, 0x6c, 0x51, 0x4a, 0x61, 0x6a, 0x71, 0x34, 0x6f, 0x6e, 0x76, 0x6b, 0x74, 0x54, 0x70, 0x6e, 0x76, 0x4c, 0x45, 0x68, 0x76, 0x54, 0x43, 0x55, 0x70, 0x36, 0x4e, 0x46, 0x78, 0x57, 0x39, 0x38, 0x64, 0x77, 0x58, 0x55, 0x33, 0x74, 0x4e, 0x66, 0x36, 0x65, 0x33, 0x70, 0x43, 0x6e, 0x47, 0x6f, 0x4b, 0x0a, 0x56, 0x6c, 0x70, 0x38, 0x61, 0x51, 0x75, 0x71, 0x67, 0x41, 0x6b, 0x6b, 0x62, 0x48, 0x37, 0x42, 0x52, 0x71, 0x4e, 0x43, 0x4d, 0x45, 0x41, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x51, 0x59, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x0a, 0x42, 0x42, 0x59, 0x45, 0x46, 0x4c, 0x51, 0x69, 0x43, 0x34, 0x4b, 0x5a, 0x4a, 0x41, 0x45, 0x4f, 0x6e, 0x4c, 0x76, 0x6b, 0x44, 0x76, 0x32, 0x2f, 0x2b, 0x35, 0x63, 0x67, 0x6b, 0x35, 0x6b, 0x71, 0x4d, 0x41, 0x6f, 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x32, 0x63, 0x41, 0x4d, 0x47, 0x51, 0x43, 0x4d, 0x47, 0x66, 0x4f, 0x46, 0x6d, 0x49, 0x34, 0x6f, 0x71, 0x78, 0x69, 0x52, 0x61, 0x65, 0x70, 0x6c, 0x53, 0x54, 0x41, 0x0a, 0x47, 0x69, 0x65, 0x63, 0x4d, 0x6a, 0x76, 0x41, 0x77, 0x4e, 0x57, 0x36, 0x71, 0x65, 0x66, 0x34, 0x42, 0x45, 0x4e, 0x54, 0x68, 0x65, 0x35, 0x53, 0x49, 0x64, 0x36, 0x64, 0x39, 0x53, 0x57, 0x44, 0x50, 0x70, 0x35, 0x59, 0x53, 0x79, 0x2f, 0x58, 0x5a, 0x78, 0x4d, 0x4f, 0x49, 0x51, 0x49, 0x77, 0x42, 0x65, 0x46, 0x31, 0x41, 0x64, 0x35, 0x6f, 0x37, 0x53, 0x6f, 0x66, 0x54, 0x55, 0x77, 0x4a, 0x43, 0x41, 0x33, 0x73, 0x53, 0x36, 0x31, 0x6b, 0x46, 0x79, 0x6a, 0x6e, 0x0a, 0x64, 0x63, 0x35, 0x46, 0x5a, 0x58, 0x49, 0x68, 0x46, 0x38, 0x73, 0x69, 0x51, 0x51, 0x36, 0x4d, 0x45, 0x35, 0x67, 0x34, 0x6d, 0x6c, 0x52, 0x74, 0x6d, 0x38, 0x72, 0x69, 0x66, 0x4f, 0x6f, 0x43, 0x57, 0x43, 0x4b, 0x52, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x49, 0x53, 0x52, 0x47, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x58, 0x31, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x61, 0x7a, 0x43, 0x43, 0x41, 0x31, 0x4f, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x52, 0x41, 0x49, 0x49, 0x51, 0x7a, 0x37, 0x44, 0x53, 0x51, 0x4f, 0x4e, 0x5a, 0x52, 0x47, 0x50, 0x67, 0x75, 0x32, 0x4f, 0x43, 0x69, 0x77, 0x41, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x77, 0x54, 0x7a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x0a, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x4b, 0x54, 0x41, 0x6e, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x49, 0x45, 0x6c, 0x75, 0x64, 0x47, 0x56, 0x79, 0x62, 0x6d, 0x56, 0x30, 0x49, 0x46, 0x4e, 0x6c, 0x59, 0x33, 0x56, 0x79, 0x61, 0x58, 0x52, 0x35, 0x49, 0x46, 0x4a, 0x6c, 0x63, 0x32, 0x56, 0x68, 0x63, 0x6d, 0x4e, 0x6f, 0x49, 0x45, 0x64, 0x79, 0x62, 0x33, 0x56, 0x77, 0x4d, 0x52, 0x55, 0x77, 0x45, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x0a, 0x45, 0x77, 0x78, 0x4a, 0x55, 0x31, 0x4a, 0x48, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x57, 0x44, 0x45, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x54, 0x55, 0x77, 0x4e, 0x6a, 0x41, 0x30, 0x4d, 0x54, 0x45, 0x77, 0x4e, 0x44, 0x4d, 0x34, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x7a, 0x55, 0x77, 0x4e, 0x6a, 0x41, 0x30, 0x4d, 0x54, 0x45, 0x77, 0x4e, 0x44, 0x4d, 0x34, 0x57, 0x6a, 0x42, 0x50, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x0a, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x70, 0x4d, 0x43, 0x63, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x67, 0x53, 0x57, 0x35, 0x30, 0x5a, 0x58, 0x4a, 0x75, 0x5a, 0x58, 0x51, 0x67, 0x55, 0x32, 0x56, 0x6a, 0x64, 0x58, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x67, 0x55, 0x6d, 0x56, 0x7a, 0x5a, 0x57, 0x46, 0x79, 0x59, 0x32, 0x67, 0x67, 0x52, 0x33, 0x4a, 0x76, 0x64, 0x58, 0x41, 0x78, 0x46, 0x54, 0x41, 0x54, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x0a, 0x44, 0x45, 0x6c, 0x54, 0x55, 0x6b, 0x63, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x59, 0x4d, 0x54, 0x43, 0x43, 0x41, 0x69, 0x49, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x50, 0x41, 0x44, 0x43, 0x43, 0x41, 0x67, 0x6f, 0x43, 0x67, 0x67, 0x49, 0x42, 0x41, 0x4b, 0x33, 0x6f, 0x4a, 0x48, 0x50, 0x30, 0x46, 0x44, 0x66, 0x7a, 0x6d, 0x35, 0x34, 0x72, 0x0a, 0x56, 0x79, 0x67, 0x63, 0x68, 0x37, 0x37, 0x63, 0x74, 0x39, 0x38, 0x34, 0x6b, 0x49, 0x78, 0x75, 0x50, 0x4f, 0x5a, 0x58, 0x6f, 0x48, 0x6a, 0x33, 0x64, 0x63, 0x4b, 0x69, 0x2f, 0x76, 0x56, 0x71, 0x62, 0x76, 0x59, 0x41, 0x54, 0x79, 0x6a, 0x62, 0x33, 0x6d, 0x69, 0x47, 0x62, 0x45, 0x53, 0x54, 0x74, 0x72, 0x46, 0x6a, 0x2f, 0x52, 0x51, 0x53, 0x61, 0x37, 0x38, 0x66, 0x30, 0x75, 0x6f, 0x78, 0x6d, 0x79, 0x46, 0x2b, 0x30, 0x54, 0x4d, 0x38, 0x75, 0x6b, 0x6a, 0x31, 0x0a, 0x33, 0x58, 0x6e, 0x66, 0x73, 0x37, 0x6a, 0x2f, 0x45, 0x76, 0x45, 0x68, 0x6d, 0x6b, 0x76, 0x42, 0x69, 0x6f, 0x5a, 0x78, 0x61, 0x55, 0x70, 0x6d, 0x5a, 0x6d, 0x79, 0x50, 0x66, 0x6a, 0x78, 0x77, 0x76, 0x36, 0x30, 0x70, 0x49, 0x67, 0x62, 0x7a, 0x35, 0x4d, 0x44, 0x6d, 0x67, 0x4b, 0x37, 0x69, 0x53, 0x34, 0x2b, 0x33, 0x6d, 0x58, 0x36, 0x55, 0x41, 0x35, 0x2f, 0x54, 0x52, 0x35, 0x64, 0x38, 0x6d, 0x55, 0x67, 0x6a, 0x55, 0x2b, 0x67, 0x34, 0x72, 0x6b, 0x38, 0x4b, 0x0a, 0x62, 0x34, 0x4d, 0x75, 0x30, 0x55, 0x6c, 0x58, 0x6a, 0x49, 0x42, 0x30, 0x74, 0x74, 0x6f, 0x76, 0x30, 0x44, 0x69, 0x4e, 0x65, 0x77, 0x4e, 0x77, 0x49, 0x52, 0x74, 0x31, 0x38, 0x6a, 0x41, 0x38, 0x2b, 0x6f, 0x2b, 0x75, 0x33, 0x64, 0x70, 0x6a, 0x71, 0x2b, 0x73, 0x57, 0x54, 0x38, 0x4b, 0x4f, 0x45, 0x55, 0x74, 0x2b, 0x7a, 0x77, 0x76, 0x6f, 0x2f, 0x37, 0x56, 0x33, 0x4c, 0x76, 0x53, 0x79, 0x65, 0x30, 0x72, 0x67, 0x54, 0x42, 0x49, 0x6c, 0x44, 0x48, 0x43, 0x4e, 0x0a, 0x41, 0x79, 0x6d, 0x67, 0x34, 0x56, 0x4d, 0x6b, 0x37, 0x42, 0x50, 0x5a, 0x37, 0x68, 0x6d, 0x2f, 0x45, 0x4c, 0x4e, 0x4b, 0x6a, 0x44, 0x2b, 0x4a, 0x6f, 0x32, 0x46, 0x52, 0x33, 0x71, 0x79, 0x48, 0x42, 0x35, 0x54, 0x30, 0x59, 0x33, 0x48, 0x73, 0x4c, 0x75, 0x4a, 0x76, 0x57, 0x35, 0x69, 0x42, 0x34, 0x59, 0x6c, 0x63, 0x4e, 0x48, 0x6c, 0x73, 0x64, 0x75, 0x38, 0x37, 0x6b, 0x47, 0x4a, 0x35, 0x35, 0x74, 0x75, 0x6b, 0x6d, 0x69, 0x38, 0x6d, 0x78, 0x64, 0x41, 0x51, 0x0a, 0x34, 0x51, 0x37, 0x65, 0x32, 0x52, 0x43, 0x4f, 0x46, 0x76, 0x75, 0x33, 0x39, 0x36, 0x6a, 0x33, 0x78, 0x2b, 0x55, 0x43, 0x42, 0x35, 0x69, 0x50, 0x4e, 0x67, 0x69, 0x56, 0x35, 0x2b, 0x49, 0x33, 0x6c, 0x67, 0x30, 0x32, 0x64, 0x5a, 0x37, 0x37, 0x44, 0x6e, 0x4b, 0x78, 0x48, 0x5a, 0x75, 0x38, 0x41, 0x2f, 0x6c, 0x4a, 0x42, 0x64, 0x69, 0x42, 0x33, 0x51, 0x57, 0x30, 0x4b, 0x74, 0x5a, 0x42, 0x36, 0x61, 0x77, 0x42, 0x64, 0x70, 0x55, 0x4b, 0x44, 0x39, 0x6a, 0x66, 0x0a, 0x31, 0x62, 0x30, 0x53, 0x48, 0x7a, 0x55, 0x76, 0x4b, 0x42, 0x64, 0x73, 0x30, 0x70, 0x6a, 0x42, 0x71, 0x41, 0x6c, 0x6b, 0x64, 0x32, 0x35, 0x48, 0x4e, 0x37, 0x72, 0x4f, 0x72, 0x46, 0x6c, 0x65, 0x61, 0x4a, 0x31, 0x2f, 0x63, 0x74, 0x61, 0x4a, 0x78, 0x51, 0x5a, 0x42, 0x4b, 0x54, 0x35, 0x5a, 0x50, 0x74, 0x30, 0x6d, 0x39, 0x53, 0x54, 0x4a, 0x45, 0x61, 0x64, 0x61, 0x6f, 0x30, 0x78, 0x41, 0x48, 0x30, 0x61, 0x68, 0x6d, 0x62, 0x57, 0x6e, 0x4f, 0x6c, 0x46, 0x75, 0x0a, 0x68, 0x6a, 0x75, 0x65, 0x66, 0x58, 0x4b, 0x6e, 0x45, 0x67, 0x56, 0x34, 0x57, 0x65, 0x30, 0x2b, 0x55, 0x58, 0x67, 0x56, 0x43, 0x77, 0x4f, 0x50, 0x6a, 0x64, 0x41, 0x76, 0x42, 0x62, 0x49, 0x2b, 0x65, 0x30, 0x6f, 0x63, 0x53, 0x33, 0x4d, 0x46, 0x45, 0x76, 0x7a, 0x47, 0x36, 0x75, 0x42, 0x51, 0x45, 0x33, 0x78, 0x44, 0x6b, 0x33, 0x53, 0x7a, 0x79, 0x6e, 0x54, 0x6e, 0x6a, 0x68, 0x38, 0x42, 0x43, 0x4e, 0x41, 0x77, 0x31, 0x46, 0x74, 0x78, 0x4e, 0x72, 0x51, 0x48, 0x0a, 0x75, 0x73, 0x45, 0x77, 0x4d, 0x46, 0x78, 0x49, 0x74, 0x34, 0x49, 0x37, 0x6d, 0x4b, 0x5a, 0x39, 0x59, 0x49, 0x71, 0x69, 0x6f, 0x79, 0x6d, 0x43, 0x7a, 0x4c, 0x71, 0x39, 0x67, 0x77, 0x51, 0x62, 0x6f, 0x6f, 0x4d, 0x44, 0x51, 0x61, 0x48, 0x57, 0x42, 0x66, 0x45, 0x62, 0x77, 0x72, 0x62, 0x77, 0x71, 0x48, 0x79, 0x47, 0x4f, 0x30, 0x61, 0x6f, 0x53, 0x43, 0x71, 0x49, 0x33, 0x48, 0x61, 0x61, 0x64, 0x72, 0x38, 0x66, 0x61, 0x71, 0x55, 0x39, 0x47, 0x59, 0x2f, 0x72, 0x0a, 0x4f, 0x50, 0x4e, 0x6b, 0x33, 0x73, 0x67, 0x72, 0x44, 0x51, 0x6f, 0x6f, 0x2f, 0x2f, 0x66, 0x62, 0x34, 0x68, 0x56, 0x43, 0x31, 0x43, 0x4c, 0x51, 0x4a, 0x31, 0x33, 0x68, 0x65, 0x66, 0x34, 0x59, 0x35, 0x33, 0x43, 0x49, 0x72, 0x55, 0x37, 0x6d, 0x32, 0x59, 0x73, 0x36, 0x78, 0x74, 0x30, 0x6e, 0x55, 0x57, 0x37, 0x2f, 0x76, 0x47, 0x54, 0x31, 0x4d, 0x30, 0x4e, 0x50, 0x41, 0x67, 0x4d, 0x42, 0x41, 0x41, 0x47, 0x6a, 0x51, 0x6a, 0x42, 0x41, 0x4d, 0x41, 0x34, 0x47, 0x0a, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x42, 0x6a, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x52, 0x35, 0x74, 0x46, 0x6e, 0x6d, 0x65, 0x37, 0x62, 0x6c, 0x35, 0x41, 0x46, 0x7a, 0x67, 0x41, 0x69, 0x49, 0x79, 0x42, 0x70, 0x59, 0x0a, 0x39, 0x75, 0x6d, 0x62, 0x62, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x45, 0x41, 0x56, 0x52, 0x39, 0x59, 0x71, 0x62, 0x79, 0x79, 0x71, 0x46, 0x44, 0x51, 0x44, 0x4c, 0x48, 0x59, 0x47, 0x6d, 0x6b, 0x67, 0x4a, 0x79, 0x6b, 0x49, 0x72, 0x47, 0x46, 0x31, 0x58, 0x49, 0x70, 0x75, 0x2b, 0x49, 0x4c, 0x6c, 0x61, 0x53, 0x2f, 0x56, 0x39, 0x6c, 0x5a, 0x4c, 0x0a, 0x75, 0x62, 0x68, 0x7a, 0x45, 0x46, 0x6e, 0x54, 0x49, 0x5a, 0x64, 0x2b, 0x35, 0x30, 0x78, 0x78, 0x2b, 0x37, 0x4c, 0x53, 0x59, 0x4b, 0x30, 0x35, 0x71, 0x41, 0x76, 0x71, 0x46, 0x79, 0x46, 0x57, 0x68, 0x66, 0x46, 0x51, 0x44, 0x6c, 0x6e, 0x72, 0x7a, 0x75, 0x42, 0x5a, 0x36, 0x62, 0x72, 0x4a, 0x46, 0x65, 0x2b, 0x47, 0x6e, 0x59, 0x2b, 0x45, 0x67, 0x50, 0x62, 0x6b, 0x36, 0x5a, 0x47, 0x51, 0x33, 0x42, 0x65, 0x62, 0x59, 0x68, 0x74, 0x46, 0x38, 0x47, 0x61, 0x56, 0x0a, 0x30, 0x6e, 0x78, 0x76, 0x77, 0x75, 0x6f, 0x37, 0x37, 0x78, 0x2f, 0x50, 0x79, 0x39, 0x61, 0x75, 0x4a, 0x2f, 0x47, 0x70, 0x73, 0x4d, 0x69, 0x75, 0x2f, 0x58, 0x31, 0x2b, 0x6d, 0x76, 0x6f, 0x69, 0x42, 0x4f, 0x76, 0x2f, 0x32, 0x58, 0x2f, 0x71, 0x6b, 0x53, 0x73, 0x69, 0x73, 0x52, 0x63, 0x4f, 0x6a, 0x2f, 0x4b, 0x4b, 0x4e, 0x46, 0x74, 0x59, 0x32, 0x50, 0x77, 0x42, 0x79, 0x56, 0x53, 0x35, 0x75, 0x43, 0x62, 0x4d, 0x69, 0x6f, 0x67, 0x7a, 0x69, 0x55, 0x77, 0x74, 0x0a, 0x68, 0x44, 0x79, 0x43, 0x33, 0x2b, 0x36, 0x57, 0x56, 0x77, 0x57, 0x36, 0x4c, 0x4c, 0x76, 0x33, 0x78, 0x4c, 0x66, 0x48, 0x54, 0x6a, 0x75, 0x43, 0x76, 0x6a, 0x48, 0x49, 0x49, 0x6e, 0x4e, 0x7a, 0x6b, 0x74, 0x48, 0x43, 0x67, 0x4b, 0x51, 0x35, 0x4f, 0x52, 0x41, 0x7a, 0x49, 0x34, 0x4a, 0x4d, 0x50, 0x4a, 0x2b, 0x47, 0x73, 0x6c, 0x57, 0x59, 0x48, 0x62, 0x34, 0x70, 0x68, 0x6f, 0x77, 0x69, 0x6d, 0x35, 0x37, 0x69, 0x61, 0x7a, 0x74, 0x58, 0x4f, 0x6f, 0x4a, 0x77, 0x0a, 0x54, 0x64, 0x77, 0x4a, 0x78, 0x34, 0x6e, 0x4c, 0x43, 0x67, 0x64, 0x4e, 0x62, 0x4f, 0x68, 0x64, 0x6a, 0x73, 0x6e, 0x76, 0x7a, 0x71, 0x76, 0x48, 0x75, 0x37, 0x55, 0x72, 0x54, 0x6b, 0x58, 0x57, 0x53, 0x74, 0x41, 0x6d, 0x7a, 0x4f, 0x56, 0x79, 0x79, 0x67, 0x68, 0x71, 0x70, 0x5a, 0x58, 0x6a, 0x46, 0x61, 0x48, 0x33, 0x70, 0x4f, 0x33, 0x4a, 0x4c, 0x46, 0x2b, 0x6c, 0x2b, 0x2f, 0x2b, 0x73, 0x4b, 0x41, 0x49, 0x75, 0x76, 0x74, 0x64, 0x37, 0x75, 0x2b, 0x4e, 0x78, 0x0a, 0x65, 0x35, 0x41, 0x57, 0x30, 0x77, 0x64, 0x65, 0x52, 0x6c, 0x4e, 0x38, 0x4e, 0x77, 0x64, 0x43, 0x6a, 0x4e, 0x50, 0x45, 0x6c, 0x70, 0x7a, 0x56, 0x6d, 0x62, 0x55, 0x71, 0x34, 0x4a, 0x55, 0x61, 0x67, 0x45, 0x69, 0x75, 0x54, 0x44, 0x6b, 0x48, 0x7a, 0x73, 0x78, 0x48, 0x70, 0x46, 0x4b, 0x56, 0x4b, 0x37, 0x71, 0x34, 0x2b, 0x36, 0x33, 0x53, 0x4d, 0x31, 0x4e, 0x39, 0x35, 0x52, 0x31, 0x4e, 0x62, 0x64, 0x57, 0x68, 0x73, 0x63, 0x64, 0x43, 0x62, 0x2b, 0x5a, 0x41, 0x0a, 0x4a, 0x7a, 0x56, 0x63, 0x6f, 0x79, 0x69, 0x33, 0x42, 0x34, 0x33, 0x6e, 0x6a, 0x54, 0x4f, 0x51, 0x35, 0x79, 0x4f, 0x66, 0x2b, 0x31, 0x43, 0x63, 0x65, 0x57, 0x78, 0x47, 0x31, 0x62, 0x51, 0x56, 0x73, 0x35, 0x5a, 0x75, 0x66, 0x70, 0x73, 0x4d, 0x6c, 0x6a, 0x71, 0x34, 0x55, 0x69, 0x30, 0x2f, 0x31, 0x6c, 0x76, 0x68, 0x2b, 0x77, 0x6a, 0x43, 0x68, 0x50, 0x34, 0x6b, 0x71, 0x4b, 0x4f, 0x4a, 0x32, 0x71, 0x78, 0x71, 0x34, 0x52, 0x67, 0x71, 0x73, 0x61, 0x68, 0x44, 0x0a, 0x59, 0x56, 0x76, 0x54, 0x48, 0x39, 0x77, 0x37, 0x6a, 0x58, 0x62, 0x79, 0x4c, 0x65, 0x69, 0x4e, 0x64, 0x64, 0x38, 0x58, 0x4d, 0x32, 0x77, 0x39, 0x55, 0x2f, 0x74, 0x37, 0x79, 0x30, 0x46, 0x66, 0x2f, 0x39, 0x79, 0x69, 0x30, 0x47, 0x45, 0x34, 0x34, 0x5a, 0x61, 0x34, 0x72, 0x46, 0x32, 0x4c, 0x4e, 0x39, 0x64, 0x31, 0x31, 0x54, 0x50, 0x41, 0x6d, 0x52, 0x47, 0x75, 0x6e, 0x55, 0x48, 0x42, 0x63, 0x6e, 0x57, 0x45, 0x76, 0x67, 0x4a, 0x42, 0x51, 0x6c, 0x39, 0x6e, 0x0a, 0x4a, 0x45, 0x69, 0x55, 0x30, 0x5a, 0x73, 0x6e, 0x76, 0x67, 0x63, 0x2f, 0x75, 0x62, 0x68, 0x50, 0x67, 0x58, 0x52, 0x52, 0x34, 0x58, 0x71, 0x33, 0x37, 0x5a, 0x30, 0x6a, 0x34, 0x72, 0x37, 0x67, 0x31, 0x53, 0x67, 0x45, 0x45, 0x7a, 0x77, 0x78, 0x41, 0x35, 0x37, 0x64, 0x65, 0x6d, 0x79, 0x50, 0x78, 0x67, 0x63, 0x59, 0x78, 0x6e, 0x2f, 0x65, 0x52, 0x34, 0x34, 0x2f, 0x4b, 0x4a, 0x34, 0x45, 0x42, 0x73, 0x2b, 0x6c, 0x56, 0x44, 0x52, 0x33, 0x76, 0x65, 0x79, 0x4a, 0x0a, 0x6d, 0x2b, 0x6b, 0x58, 0x51, 0x39, 0x39, 0x62, 0x32, 0x31, 0x2f, 0x2b, 0x6a, 0x68, 0x35, 0x58, 0x6f, 0x73, 0x31, 0x41, 0x6e, 0x58, 0x35, 0x69, 0x49, 0x74, 0x72, 0x65, 0x47, 0x43, 0x63, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x41, 0x43, 0x20, 0x52, 0x41, 0x49, 0x5a, 0x20, 0x46, 0x4e, 0x4d, 0x54, 0x2d, 0x52, 0x43, 0x4d, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x67, 0x7a, 0x43, 0x43, 0x41, 0x32, 0x75, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x50, 0x58, 0x5a, 0x4f, 0x4e, 0x4d, 0x47, 0x63, 0x32, 0x79, 0x41, 0x59, 0x64, 0x47, 0x73, 0x64, 0x55, 0x68, 0x47, 0x6b, 0x48, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x43, 0x77, 0x55, 0x41, 0x4d, 0x44, 0x73, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x0a, 0x41, 0x6b, 0x56, 0x54, 0x4d, 0x52, 0x45, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x41, 0x68, 0x47, 0x54, 0x6b, 0x31, 0x55, 0x4c, 0x56, 0x4a, 0x44, 0x54, 0x54, 0x45, 0x5a, 0x4d, 0x42, 0x63, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x77, 0x77, 0x51, 0x51, 0x55, 0x4d, 0x67, 0x55, 0x6b, 0x46, 0x4a, 0x57, 0x69, 0x42, 0x47, 0x54, 0x6b, 0x31, 0x55, 0x4c, 0x56, 0x4a, 0x44, 0x54, 0x54, 0x41, 0x65, 0x46, 0x77, 0x30, 0x77, 0x4f, 0x44, 0x45, 0x77, 0x0a, 0x4d, 0x6a, 0x6b, 0x78, 0x4e, 0x54, 0x55, 0x35, 0x4e, 0x54, 0x5a, 0x61, 0x46, 0x77, 0x30, 0x7a, 0x4d, 0x44, 0x41, 0x78, 0x4d, 0x44, 0x45, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x42, 0x61, 0x4d, 0x44, 0x73, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6b, 0x56, 0x54, 0x4d, 0x52, 0x45, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x41, 0x68, 0x47, 0x54, 0x6b, 0x31, 0x55, 0x4c, 0x56, 0x4a, 0x44, 0x0a, 0x54, 0x54, 0x45, 0x5a, 0x4d, 0x42, 0x63, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x77, 0x77, 0x51, 0x51, 0x55, 0x4d, 0x67, 0x55, 0x6b, 0x46, 0x4a, 0x57, 0x69, 0x42, 0x47, 0x54, 0x6b, 0x31, 0x55, 0x4c, 0x56, 0x4a, 0x44, 0x54, 0x54, 0x43, 0x43, 0x41, 0x69, 0x49, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x50, 0x41, 0x44, 0x43, 0x43, 0x41, 0x67, 0x6f, 0x43, 0x0a, 0x67, 0x67, 0x49, 0x42, 0x41, 0x4c, 0x70, 0x78, 0x67, 0x48, 0x70, 0x4d, 0x68, 0x6d, 0x35, 0x2f, 0x79, 0x42, 0x4e, 0x74, 0x77, 0x4d, 0x5a, 0x39, 0x48, 0x41, 0x43, 0x58, 0x6a, 0x79, 0x77, 0x4d, 0x49, 0x37, 0x73, 0x51, 0x6d, 0x6b, 0x43, 0x70, 0x47, 0x72, 0x65, 0x48, 0x69, 0x50, 0x69, 0x62, 0x56, 0x6d, 0x72, 0x37, 0x35, 0x6e, 0x75, 0x4f, 0x69, 0x35, 0x4b, 0x4f, 0x70, 0x79, 0x56, 0x64, 0x57, 0x52, 0x48, 0x62, 0x4e, 0x69, 0x36, 0x33, 0x55, 0x52, 0x63, 0x66, 0x0a, 0x71, 0x51, 0x67, 0x66, 0x42, 0x42, 0x63, 0x6b, 0x57, 0x4b, 0x6f, 0x33, 0x53, 0x68, 0x6a, 0x66, 0x35, 0x54, 0x6e, 0x55, 0x56, 0x2f, 0x33, 0x58, 0x77, 0x53, 0x79, 0x52, 0x41, 0x5a, 0x48, 0x69, 0x49, 0x74, 0x51, 0x44, 0x77, 0x46, 0x6a, 0x38, 0x64, 0x30, 0x66, 0x73, 0x6a, 0x7a, 0x35, 0x30, 0x51, 0x37, 0x71, 0x73, 0x4e, 0x49, 0x31, 0x4e, 0x4f, 0x48, 0x5a, 0x6e, 0x6a, 0x72, 0x44, 0x49, 0x62, 0x7a, 0x41, 0x7a, 0x57, 0x48, 0x46, 0x63, 0x74, 0x50, 0x56, 0x72, 0x0a, 0x62, 0x74, 0x51, 0x42, 0x55, 0x4c, 0x67, 0x54, 0x66, 0x6d, 0x78, 0x4b, 0x6f, 0x30, 0x6e, 0x52, 0x49, 0x42, 0x6e, 0x75, 0x76, 0x4d, 0x41, 0x70, 0x47, 0x47, 0x57, 0x6e, 0x33, 0x76, 0x37, 0x76, 0x33, 0x51, 0x71, 0x51, 0x49, 0x65, 0x63, 0x61, 0x5a, 0x35, 0x4a, 0x43, 0x45, 0x4a, 0x68, 0x66, 0x54, 0x7a, 0x43, 0x38, 0x50, 0x68, 0x78, 0x46, 0x74, 0x42, 0x44, 0x58, 0x61, 0x45, 0x41, 0x55, 0x77, 0x45, 0x44, 0x36, 0x35, 0x33, 0x63, 0x58, 0x65, 0x75, 0x59, 0x4c, 0x0a, 0x6a, 0x32, 0x56, 0x62, 0x50, 0x4e, 0x6d, 0x61, 0x55, 0x74, 0x75, 0x31, 0x76, 0x5a, 0x35, 0x47, 0x7a, 0x7a, 0x33, 0x72, 0x6b, 0x51, 0x55, 0x43, 0x77, 0x4a, 0x61, 0x79, 0x64, 0x6b, 0x78, 0x4e, 0x45, 0x4a, 0x59, 0x37, 0x6b, 0x76, 0x71, 0x63, 0x66, 0x77, 0x2b, 0x5a, 0x33, 0x37, 0x34, 0x6a, 0x4e, 0x55, 0x55, 0x65, 0x41, 0x6c, 0x7a, 0x2b, 0x74, 0x61, 0x69, 0x62, 0x6d, 0x53, 0x58, 0x61, 0x58, 0x76, 0x4d, 0x69, 0x77, 0x7a, 0x6e, 0x31, 0x35, 0x43, 0x6f, 0x75, 0x0a, 0x30, 0x38, 0x59, 0x66, 0x78, 0x47, 0x79, 0x71, 0x78, 0x52, 0x78, 0x71, 0x41, 0x51, 0x56, 0x4b, 0x4c, 0x39, 0x4c, 0x46, 0x77, 0x61, 0x67, 0x30, 0x4a, 0x6c, 0x31, 0x6d, 0x70, 0x64, 0x49, 0x43, 0x49, 0x66, 0x6b, 0x59, 0x74, 0x77, 0x62, 0x31, 0x54, 0x70, 0x6c, 0x76, 0x71, 0x4b, 0x74, 0x4d, 0x55, 0x65, 0x6a, 0x50, 0x55, 0x42, 0x6a, 0x46, 0x64, 0x38, 0x67, 0x35, 0x43, 0x53, 0x78, 0x4a, 0x6b, 0x6a, 0x4b, 0x5a, 0x71, 0x4c, 0x73, 0x58, 0x46, 0x33, 0x6d, 0x77, 0x0a, 0x57, 0x73, 0x58, 0x6d, 0x6f, 0x38, 0x52, 0x5a, 0x5a, 0x55, 0x63, 0x31, 0x67, 0x31, 0x36, 0x70, 0x36, 0x44, 0x55, 0x4c, 0x6d, 0x62, 0x76, 0x6b, 0x7a, 0x53, 0x44, 0x47, 0x6d, 0x30, 0x6f, 0x47, 0x4f, 0x62, 0x56, 0x6f, 0x2f, 0x43, 0x4b, 0x36, 0x37, 0x6c, 0x57, 0x4d, 0x4b, 0x30, 0x37, 0x71, 0x38, 0x37, 0x48, 0x6a, 0x2f, 0x4c, 0x61, 0x5a, 0x6d, 0x74, 0x56, 0x43, 0x2b, 0x6e, 0x46, 0x4e, 0x43, 0x4d, 0x2b, 0x48, 0x48, 0x6d, 0x70, 0x78, 0x66, 0x66, 0x6e, 0x54, 0x0a, 0x74, 0x4f, 0x6d, 0x6c, 0x63, 0x59, 0x46, 0x37, 0x77, 0x6b, 0x35, 0x48, 0x6c, 0x71, 0x58, 0x32, 0x64, 0x6f, 0x57, 0x6a, 0x4b, 0x49, 0x2f, 0x70, 0x67, 0x47, 0x36, 0x42, 0x55, 0x36, 0x56, 0x74, 0x58, 0x37, 0x68, 0x49, 0x2b, 0x63, 0x4c, 0x35, 0x4e, 0x71, 0x59, 0x75, 0x53, 0x66, 0x2b, 0x34, 0x6c, 0x73, 0x4b, 0x4d, 0x42, 0x37, 0x4f, 0x62, 0x69, 0x46, 0x6a, 0x38, 0x36, 0x78, 0x73, 0x63, 0x33, 0x69, 0x31, 0x77, 0x34, 0x70, 0x65, 0x53, 0x4d, 0x4b, 0x47, 0x4a, 0x0a, 0x34, 0x37, 0x78, 0x56, 0x71, 0x43, 0x66, 0x57, 0x53, 0x2b, 0x32, 0x51, 0x72, 0x59, 0x76, 0x36, 0x59, 0x79, 0x56, 0x5a, 0x4c, 0x61, 0x67, 0x31, 0x33, 0x63, 0x71, 0x58, 0x4d, 0x37, 0x7a, 0x6c, 0x7a, 0x63, 0x65, 0x64, 0x30, 0x65, 0x7a, 0x76, 0x58, 0x67, 0x35, 0x4b, 0x6b, 0x41, 0x59, 0x6d, 0x59, 0x36, 0x32, 0x35, 0x32, 0x54, 0x55, 0x74, 0x42, 0x37, 0x70, 0x32, 0x5a, 0x53, 0x79, 0x73, 0x56, 0x34, 0x39, 0x39, 0x39, 0x41, 0x65, 0x55, 0x31, 0x34, 0x45, 0x43, 0x0a, 0x6c, 0x6c, 0x32, 0x6a, 0x42, 0x30, 0x6e, 0x56, 0x65, 0x74, 0x42, 0x58, 0x2b, 0x52, 0x76, 0x6e, 0x55, 0x30, 0x5a, 0x31, 0x71, 0x72, 0x42, 0x35, 0x51, 0x73, 0x74, 0x6f, 0x63, 0x51, 0x6a, 0x70, 0x59, 0x4c, 0x30, 0x35, 0x61, 0x63, 0x37, 0x30, 0x72, 0x38, 0x4e, 0x57, 0x51, 0x4d, 0x65, 0x74, 0x55, 0x71, 0x49, 0x4a, 0x35, 0x47, 0x2b, 0x47, 0x52, 0x34, 0x6f, 0x66, 0x36, 0x79, 0x67, 0x6e, 0x58, 0x59, 0x4d, 0x67, 0x72, 0x77, 0x54, 0x4a, 0x62, 0x46, 0x61, 0x61, 0x0a, 0x69, 0x30, 0x62, 0x31, 0x41, 0x67, 0x4d, 0x42, 0x41, 0x41, 0x47, 0x6a, 0x67, 0x59, 0x4d, 0x77, 0x67, 0x59, 0x41, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x51, 0x59, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x0a, 0x46, 0x50, 0x64, 0x39, 0x78, 0x66, 0x33, 0x45, 0x36, 0x4a, 0x6f, 0x62, 0x64, 0x32, 0x53, 0x6e, 0x39, 0x52, 0x32, 0x67, 0x7a, 0x4c, 0x2b, 0x48, 0x59, 0x4a, 0x70, 0x74, 0x4d, 0x44, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x49, 0x41, 0x51, 0x33, 0x4d, 0x44, 0x55, 0x77, 0x4d, 0x77, 0x59, 0x45, 0x56, 0x52, 0x30, 0x67, 0x41, 0x44, 0x41, 0x72, 0x4d, 0x43, 0x6b, 0x47, 0x43, 0x43, 0x73, 0x47, 0x41, 0x51, 0x55, 0x46, 0x42, 0x77, 0x49, 0x42, 0x46, 0x68, 0x31, 0x6f, 0x0a, 0x64, 0x48, 0x52, 0x77, 0x4f, 0x69, 0x38, 0x76, 0x64, 0x33, 0x64, 0x33, 0x4c, 0x6d, 0x4e, 0x6c, 0x63, 0x6e, 0x51, 0x75, 0x5a, 0x6d, 0x35, 0x74, 0x64, 0x43, 0x35, 0x6c, 0x63, 0x79, 0x39, 0x6b, 0x63, 0x47, 0x4e, 0x7a, 0x4c, 0x7a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x45, 0x41, 0x42, 0x35, 0x42, 0x4b, 0x33, 0x2f, 0x4d, 0x6a, 0x54, 0x76, 0x44, 0x44, 0x0a, 0x6e, 0x46, 0x46, 0x6c, 0x6d, 0x35, 0x77, 0x69, 0x6f, 0x6f, 0x6f, 0x4d, 0x68, 0x66, 0x4e, 0x7a, 0x4b, 0x57, 0x74, 0x4e, 0x2f, 0x67, 0x48, 0x69, 0x71, 0x51, 0x78, 0x6a, 0x41, 0x62, 0x38, 0x45, 0x5a, 0x36, 0x57, 0x64, 0x6d, 0x46, 0x2f, 0x39, 0x41, 0x52, 0x50, 0x36, 0x37, 0x4a, 0x70, 0x69, 0x36, 0x59, 0x62, 0x2b, 0x74, 0x6d, 0x4c, 0x53, 0x62, 0x6b, 0x79, 0x55, 0x2b, 0x38, 0x42, 0x31, 0x52, 0x58, 0x78, 0x6c, 0x44, 0x50, 0x69, 0x79, 0x4e, 0x38, 0x2b, 0x73, 0x0a, 0x44, 0x38, 0x2b, 0x4e, 0x62, 0x2f, 0x6b, 0x5a, 0x39, 0x34, 0x2f, 0x73, 0x48, 0x76, 0x4a, 0x77, 0x6e, 0x76, 0x44, 0x4b, 0x75, 0x4f, 0x2b, 0x33, 0x2f, 0x33, 0x59, 0x33, 0x64, 0x6c, 0x76, 0x32, 0x62, 0x6f, 0x6a, 0x7a, 0x72, 0x32, 0x49, 0x79, 0x49, 0x70, 0x4d, 0x4e, 0x4f, 0x6d, 0x71, 0x4f, 0x46, 0x47, 0x59, 0x4d, 0x4c, 0x56, 0x4e, 0x30, 0x56, 0x32, 0x55, 0x65, 0x31, 0x62, 0x4c, 0x64, 0x49, 0x34, 0x45, 0x37, 0x70, 0x57, 0x59, 0x6a, 0x4a, 0x32, 0x63, 0x4a, 0x0a, 0x6a, 0x2b, 0x46, 0x33, 0x71, 0x6b, 0x50, 0x4e, 0x5a, 0x56, 0x45, 0x49, 0x37, 0x56, 0x46, 0x59, 0x2f, 0x75, 0x59, 0x35, 0x2b, 0x63, 0x74, 0x48, 0x68, 0x4b, 0x51, 0x56, 0x38, 0x58, 0x61, 0x37, 0x70, 0x4f, 0x36, 0x6b, 0x4f, 0x38, 0x52, 0x66, 0x37, 0x37, 0x49, 0x7a, 0x6c, 0x68, 0x45, 0x59, 0x74, 0x38, 0x6c, 0x6c, 0x76, 0x68, 0x6a, 0x68, 0x6f, 0x36, 0x54, 0x63, 0x2b, 0x68, 0x6a, 0x35, 0x30, 0x37, 0x77, 0x54, 0x6d, 0x7a, 0x6c, 0x36, 0x4e, 0x4c, 0x72, 0x54, 0x0a, 0x51, 0x66, 0x76, 0x36, 0x4d, 0x6f, 0x6f, 0x71, 0x74, 0x79, 0x75, 0x47, 0x43, 0x32, 0x6d, 0x44, 0x4f, 0x4c, 0x37, 0x4e, 0x69, 0x69, 0x34, 0x4c, 0x63, 0x4b, 0x32, 0x4e, 0x4a, 0x70, 0x4c, 0x75, 0x48, 0x76, 0x55, 0x42, 0x4b, 0x77, 0x72, 0x5a, 0x31, 0x70, 0x65, 0x62, 0x62, 0x75, 0x43, 0x6f, 0x47, 0x52, 0x77, 0x36, 0x49, 0x59, 0x73, 0x4d, 0x48, 0x6b, 0x43, 0x74, 0x41, 0x2b, 0x66, 0x64, 0x5a, 0x6e, 0x37, 0x31, 0x75, 0x53, 0x41, 0x4e, 0x41, 0x2b, 0x69, 0x57, 0x0a, 0x2b, 0x59, 0x4a, 0x46, 0x31, 0x44, 0x6e, 0x67, 0x6f, 0x41, 0x42, 0x64, 0x31, 0x35, 0x6a, 0x6d, 0x66, 0x5a, 0x35, 0x6e, 0x63, 0x38, 0x4f, 0x61, 0x4b, 0x76, 0x65, 0x72, 0x69, 0x36, 0x45, 0x36, 0x46, 0x4f, 0x38, 0x30, 0x76, 0x46, 0x49, 0x4f, 0x69, 0x5a, 0x69, 0x61, 0x42, 0x45, 0x43, 0x45, 0x48, 0x58, 0x35, 0x46, 0x61, 0x5a, 0x4e, 0x58, 0x7a, 0x75, 0x76, 0x4f, 0x2b, 0x46, 0x42, 0x38, 0x54, 0x78, 0x78, 0x75, 0x42, 0x45, 0x4f, 0x62, 0x2b, 0x64, 0x59, 0x37, 0x0a, 0x49, 0x78, 0x6a, 0x70, 0x36, 0x6f, 0x37, 0x52, 0x54, 0x55, 0x61, 0x4e, 0x38, 0x54, 0x76, 0x6b, 0x61, 0x73, 0x71, 0x36, 0x2b, 0x79, 0x4f, 0x33, 0x6d, 0x2f, 0x71, 0x5a, 0x41, 0x53, 0x6c, 0x61, 0x57, 0x46, 0x6f, 0x74, 0x34, 0x2f, 0x6e, 0x55, 0x62, 0x51, 0x34, 0x6d, 0x72, 0x63, 0x46, 0x75, 0x4e, 0x4c, 0x77, 0x79, 0x2b, 0x41, 0x77, 0x46, 0x2b, 0x6d, 0x57, 0x6a, 0x32, 0x7a, 0x73, 0x33, 0x67, 0x79, 0x4c, 0x70, 0x31, 0x74, 0x78, 0x79, 0x4d, 0x2f, 0x31, 0x64, 0x0a, 0x38, 0x69, 0x43, 0x39, 0x64, 0x6a, 0x77, 0x6a, 0x32, 0x69, 0x6a, 0x33, 0x2b, 0x52, 0x76, 0x72, 0x57, 0x57, 0x54, 0x56, 0x33, 0x46, 0x39, 0x79, 0x66, 0x69, 0x44, 0x38, 0x7a, 0x59, 0x6d, 0x31, 0x6b, 0x47, 0x64, 0x4e, 0x59, 0x6e, 0x6f, 0x2f, 0x54, 0x71, 0x30, 0x64, 0x77, 0x7a, 0x6e, 0x2b, 0x65, 0x76, 0x51, 0x6f, 0x46, 0x74, 0x39, 0x42, 0x39, 0x6b, 0x69, 0x41, 0x42, 0x64, 0x63, 0x50, 0x55, 0x58, 0x6d, 0x73, 0x45, 0x4b, 0x76, 0x55, 0x37, 0x41, 0x4e, 0x6d, 0x0a, 0x35, 0x6d, 0x71, 0x77, 0x75, 0x6a, 0x47, 0x53, 0x51, 0x6b, 0x42, 0x71, 0x76, 0x6a, 0x72, 0x54, 0x63, 0x75, 0x46, 0x71, 0x4e, 0x31, 0x57, 0x38, 0x72, 0x42, 0x32, 0x56, 0x74, 0x32, 0x6c, 0x68, 0x38, 0x6b, 0x4f, 0x52, 0x64, 0x4f, 0x61, 0x67, 0x30, 0x77, 0x6f, 0x6b, 0x52, 0x71, 0x45, 0x49, 0x72, 0x39, 0x62, 0x61, 0x52, 0x52, 0x6d, 0x57, 0x31, 0x46, 0x4d, 0x64, 0x57, 0x34, 0x52, 0x35, 0x38, 0x4d, 0x44, 0x33, 0x52, 0x2b, 0x2b, 0x4c, 0x6a, 0x38, 0x55, 0x47, 0x0a, 0x72, 0x70, 0x31, 0x4d, 0x59, 0x70, 0x33, 0x2f, 0x52, 0x67, 0x54, 0x34, 0x30, 0x38, 0x6d, 0x32, 0x45, 0x43, 0x56, 0x41, 0x64, 0x66, 0x34, 0x57, 0x71, 0x73, 0x6c, 0x4b, 0x59, 0x49, 0x59, 0x76, 0x75, 0x75, 0x38, 0x77, 0x64, 0x2b, 0x52, 0x55, 0x34, 0x72, 0x69, 0x45, 0x6d, 0x56, 0x69, 0x41, 0x71, 0x68, 0x4f, 0x4c, 0x55, 0x54, 0x70, 0x50, 0x53, 0x50, 0x61, 0x4c, 0x74, 0x72, 0x4d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x41, 0x6d, 0x61, 0x7a, 0x6f, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x31, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x44, 0x51, 0x54, 0x43, 0x43, 0x41, 0x69, 0x6d, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x54, 0x42, 0x6d, 0x79, 0x66, 0x7a, 0x35, 0x6d, 0x2f, 0x6a, 0x41, 0x6f, 0x35, 0x34, 0x76, 0x42, 0x34, 0x69, 0x6b, 0x50, 0x6d, 0x6c, 0x6a, 0x5a, 0x62, 0x79, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x44, 0x41, 0x35, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x0a, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x50, 0x4d, 0x41, 0x30, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x47, 0x51, 0x57, 0x31, 0x68, 0x65, 0x6d, 0x39, 0x75, 0x4d, 0x52, 0x6b, 0x77, 0x46, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x42, 0x42, 0x62, 0x57, 0x46, 0x36, 0x62, 0x32, 0x34, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x51, 0x53, 0x41, 0x78, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x45, 0x31, 0x0a, 0x4d, 0x44, 0x55, 0x79, 0x4e, 0x6a, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x46, 0x6f, 0x58, 0x44, 0x54, 0x4d, 0x34, 0x4d, 0x44, 0x45, 0x78, 0x4e, 0x7a, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x46, 0x6f, 0x77, 0x4f, 0x54, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x44, 0x7a, 0x41, 0x4e, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x42, 0x6b, 0x46, 0x74, 0x59, 0x58, 0x70, 0x76, 0x0a, 0x62, 0x6a, 0x45, 0x5a, 0x4d, 0x42, 0x63, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x51, 0x51, 0x57, 0x31, 0x68, 0x65, 0x6d, 0x39, 0x75, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x67, 0x4d, 0x54, 0x43, 0x43, 0x41, 0x53, 0x49, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x45, 0x50, 0x41, 0x44, 0x43, 0x43, 0x41, 0x51, 0x6f, 0x43, 0x0a, 0x67, 0x67, 0x45, 0x42, 0x41, 0x4c, 0x4a, 0x34, 0x67, 0x48, 0x48, 0x4b, 0x65, 0x4e, 0x58, 0x6a, 0x63, 0x61, 0x39, 0x48, 0x67, 0x46, 0x42, 0x30, 0x66, 0x57, 0x37, 0x59, 0x31, 0x34, 0x68, 0x32, 0x39, 0x4a, 0x6c, 0x6f, 0x39, 0x31, 0x67, 0x68, 0x59, 0x50, 0x6c, 0x30, 0x68, 0x41, 0x45, 0x76, 0x72, 0x41, 0x49, 0x74, 0x68, 0x74, 0x4f, 0x67, 0x51, 0x33, 0x70, 0x4f, 0x73, 0x71, 0x54, 0x51, 0x4e, 0x72, 0x6f, 0x42, 0x76, 0x6f, 0x33, 0x62, 0x53, 0x4d, 0x67, 0x48, 0x0a, 0x46, 0x7a, 0x5a, 0x4d, 0x39, 0x4f, 0x36, 0x49, 0x49, 0x38, 0x63, 0x2b, 0x36, 0x7a, 0x66, 0x31, 0x74, 0x52, 0x6e, 0x34, 0x53, 0x57, 0x69, 0x77, 0x33, 0x74, 0x65, 0x35, 0x64, 0x6a, 0x67, 0x64, 0x59, 0x5a, 0x36, 0x6b, 0x2f, 0x6f, 0x49, 0x32, 0x70, 0x65, 0x56, 0x4b, 0x56, 0x75, 0x52, 0x46, 0x34, 0x66, 0x6e, 0x39, 0x74, 0x42, 0x62, 0x36, 0x64, 0x4e, 0x71, 0x63, 0x6d, 0x7a, 0x55, 0x35, 0x4c, 0x2f, 0x71, 0x77, 0x49, 0x46, 0x41, 0x47, 0x62, 0x48, 0x72, 0x51, 0x0a, 0x67, 0x4c, 0x4b, 0x6d, 0x2b, 0x61, 0x2f, 0x73, 0x52, 0x78, 0x6d, 0x50, 0x55, 0x44, 0x67, 0x48, 0x33, 0x4b, 0x4b, 0x48, 0x4f, 0x56, 0x6a, 0x34, 0x75, 0x74, 0x57, 0x70, 0x2b, 0x55, 0x68, 0x6e, 0x4d, 0x4a, 0x62, 0x75, 0x6c, 0x48, 0x68, 0x65, 0x62, 0x34, 0x6d, 0x6a, 0x55, 0x63, 0x41, 0x77, 0x68, 0x6d, 0x61, 0x68, 0x52, 0x57, 0x61, 0x36, 0x56, 0x4f, 0x75, 0x6a, 0x77, 0x35, 0x48, 0x35, 0x53, 0x4e, 0x7a, 0x2f, 0x30, 0x65, 0x67, 0x77, 0x4c, 0x58, 0x30, 0x74, 0x0a, 0x64, 0x48, 0x41, 0x31, 0x31, 0x34, 0x67, 0x6b, 0x39, 0x35, 0x37, 0x45, 0x57, 0x57, 0x36, 0x37, 0x63, 0x34, 0x63, 0x58, 0x38, 0x6a, 0x4a, 0x47, 0x4b, 0x4c, 0x68, 0x44, 0x2b, 0x72, 0x63, 0x64, 0x71, 0x73, 0x71, 0x30, 0x38, 0x70, 0x38, 0x6b, 0x44, 0x69, 0x31, 0x4c, 0x39, 0x33, 0x46, 0x63, 0x58, 0x6d, 0x6e, 0x2f, 0x36, 0x70, 0x55, 0x43, 0x79, 0x7a, 0x69, 0x4b, 0x72, 0x6c, 0x41, 0x34, 0x62, 0x39, 0x76, 0x37, 0x4c, 0x57, 0x49, 0x62, 0x78, 0x63, 0x63, 0x65, 0x0a, 0x56, 0x4f, 0x46, 0x33, 0x34, 0x47, 0x66, 0x49, 0x44, 0x35, 0x79, 0x48, 0x49, 0x39, 0x59, 0x2f, 0x51, 0x43, 0x42, 0x2f, 0x49, 0x49, 0x44, 0x45, 0x67, 0x45, 0x77, 0x2b, 0x4f, 0x79, 0x51, 0x6d, 0x6a, 0x67, 0x53, 0x75, 0x62, 0x4a, 0x72, 0x49, 0x71, 0x67, 0x30, 0x43, 0x41, 0x77, 0x45, 0x41, 0x41, 0x61, 0x4e, 0x43, 0x4d, 0x45, 0x41, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x0a, 0x2f, 0x7a, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x59, 0x59, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x49, 0x51, 0x59, 0x7a, 0x49, 0x55, 0x30, 0x37, 0x4c, 0x77, 0x4d, 0x6c, 0x4a, 0x51, 0x75, 0x43, 0x46, 0x6d, 0x63, 0x78, 0x37, 0x49, 0x51, 0x54, 0x67, 0x6f, 0x49, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x0a, 0x44, 0x51, 0x45, 0x42, 0x43, 0x77, 0x55, 0x41, 0x41, 0x34, 0x49, 0x42, 0x41, 0x51, 0x43, 0x59, 0x38, 0x6a, 0x64, 0x61, 0x51, 0x5a, 0x43, 0x68, 0x47, 0x73, 0x56, 0x32, 0x55, 0x53, 0x67, 0x67, 0x4e, 0x69, 0x4d, 0x4f, 0x72, 0x75, 0x59, 0x6f, 0x75, 0x36, 0x72, 0x34, 0x6c, 0x4b, 0x35, 0x49, 0x70, 0x44, 0x42, 0x2f, 0x47, 0x2f, 0x77, 0x6b, 0x6a, 0x55, 0x75, 0x30, 0x79, 0x4b, 0x47, 0x58, 0x39, 0x72, 0x62, 0x78, 0x65, 0x6e, 0x44, 0x49, 0x55, 0x35, 0x50, 0x4d, 0x0a, 0x43, 0x43, 0x6a, 0x6a, 0x6d, 0x43, 0x58, 0x50, 0x49, 0x36, 0x54, 0x35, 0x33, 0x69, 0x48, 0x54, 0x66, 0x49, 0x55, 0x4a, 0x72, 0x55, 0x36, 0x61, 0x64, 0x54, 0x72, 0x43, 0x43, 0x32, 0x71, 0x4a, 0x65, 0x48, 0x5a, 0x45, 0x52, 0x78, 0x68, 0x6c, 0x62, 0x49, 0x31, 0x42, 0x6a, 0x6a, 0x74, 0x2f, 0x6d, 0x73, 0x76, 0x30, 0x74, 0x61, 0x64, 0x51, 0x31, 0x77, 0x55, 0x73, 0x4e, 0x2b, 0x67, 0x44, 0x53, 0x36, 0x33, 0x70, 0x59, 0x61, 0x41, 0x43, 0x62, 0x76, 0x58, 0x79, 0x0a, 0x38, 0x4d, 0x57, 0x79, 0x37, 0x56, 0x75, 0x33, 0x33, 0x50, 0x71, 0x55, 0x58, 0x48, 0x65, 0x65, 0x45, 0x36, 0x56, 0x2f, 0x55, 0x71, 0x32, 0x56, 0x38, 0x76, 0x69, 0x54, 0x4f, 0x39, 0x36, 0x4c, 0x58, 0x46, 0x76, 0x4b, 0x57, 0x6c, 0x4a, 0x62, 0x59, 0x4b, 0x38, 0x55, 0x39, 0x30, 0x76, 0x76, 0x6f, 0x2f, 0x75, 0x66, 0x51, 0x4a, 0x56, 0x74, 0x4d, 0x56, 0x54, 0x38, 0x51, 0x74, 0x50, 0x48, 0x52, 0x68, 0x38, 0x6a, 0x72, 0x64, 0x6b, 0x50, 0x53, 0x48, 0x43, 0x61, 0x0a, 0x32, 0x58, 0x56, 0x34, 0x63, 0x64, 0x46, 0x79, 0x51, 0x7a, 0x52, 0x31, 0x62, 0x6c, 0x64, 0x5a, 0x77, 0x67, 0x4a, 0x63, 0x4a, 0x6d, 0x41, 0x70, 0x7a, 0x79, 0x4d, 0x5a, 0x46, 0x6f, 0x36, 0x49, 0x51, 0x36, 0x58, 0x55, 0x35, 0x4d, 0x73, 0x49, 0x2b, 0x79, 0x4d, 0x52, 0x51, 0x2b, 0x68, 0x44, 0x4b, 0x58, 0x4a, 0x69, 0x6f, 0x61, 0x6c, 0x64, 0x58, 0x67, 0x6a, 0x55, 0x6b, 0x4b, 0x36, 0x34, 0x32, 0x4d, 0x34, 0x55, 0x77, 0x74, 0x42, 0x56, 0x38, 0x6f, 0x62, 0x32, 0x0a, 0x78, 0x4a, 0x4e, 0x44, 0x64, 0x32, 0x5a, 0x68, 0x77, 0x4c, 0x6e, 0x6f, 0x51, 0x64, 0x65, 0x58, 0x65, 0x47, 0x41, 0x44, 0x62, 0x6b, 0x70, 0x79, 0x72, 0x71, 0x58, 0x52, 0x66, 0x62, 0x6f, 0x51, 0x6e, 0x6f, 0x5a, 0x73, 0x47, 0x34, 0x71, 0x35, 0x57, 0x54, 0x50, 0x34, 0x36, 0x38, 0x53, 0x51, 0x76, 0x76, 0x47, 0x35, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x41, 0x6d, 0x61, 0x7a, 0x6f, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x32, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x51, 0x54, 0x43, 0x43, 0x41, 0x79, 0x6d, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x54, 0x42, 0x6d, 0x79, 0x66, 0x30, 0x70, 0x59, 0x31, 0x68, 0x70, 0x38, 0x4b, 0x44, 0x2b, 0x57, 0x47, 0x65, 0x50, 0x68, 0x62, 0x4a, 0x72, 0x75, 0x4b, 0x4e, 0x7a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x77, 0x46, 0x41, 0x44, 0x41, 0x35, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x0a, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x50, 0x4d, 0x41, 0x30, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x47, 0x51, 0x57, 0x31, 0x68, 0x65, 0x6d, 0x39, 0x75, 0x4d, 0x52, 0x6b, 0x77, 0x46, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x42, 0x42, 0x62, 0x57, 0x46, 0x36, 0x62, 0x32, 0x34, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x51, 0x53, 0x41, 0x79, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x45, 0x31, 0x0a, 0x4d, 0x44, 0x55, 0x79, 0x4e, 0x6a, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x46, 0x6f, 0x58, 0x44, 0x54, 0x51, 0x77, 0x4d, 0x44, 0x55, 0x79, 0x4e, 0x6a, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x46, 0x6f, 0x77, 0x4f, 0x54, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x44, 0x7a, 0x41, 0x4e, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x42, 0x6b, 0x46, 0x74, 0x59, 0x58, 0x70, 0x76, 0x0a, 0x62, 0x6a, 0x45, 0x5a, 0x4d, 0x42, 0x63, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x51, 0x51, 0x57, 0x31, 0x68, 0x65, 0x6d, 0x39, 0x75, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x67, 0x4d, 0x6a, 0x43, 0x43, 0x41, 0x69, 0x49, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x50, 0x41, 0x44, 0x43, 0x43, 0x41, 0x67, 0x6f, 0x43, 0x0a, 0x67, 0x67, 0x49, 0x42, 0x41, 0x4b, 0x32, 0x57, 0x6e, 0x79, 0x32, 0x63, 0x53, 0x6b, 0x78, 0x4b, 0x67, 0x58, 0x6c, 0x52, 0x6d, 0x65, 0x79, 0x4b, 0x79, 0x32, 0x74, 0x67, 0x55, 0x52, 0x4f, 0x38, 0x54, 0x57, 0x30, 0x47, 0x2f, 0x4c, 0x41, 0x49, 0x6a, 0x64, 0x30, 0x5a, 0x45, 0x47, 0x72, 0x48, 0x4a, 0x67, 0x77, 0x31, 0x32, 0x4d, 0x42, 0x76, 0x49, 0x49, 0x54, 0x70, 0x6c, 0x4c, 0x47, 0x62, 0x68, 0x51, 0x50, 0x44, 0x57, 0x39, 0x74, 0x4b, 0x36, 0x4d, 0x6a, 0x34, 0x0a, 0x6b, 0x48, 0x62, 0x5a, 0x57, 0x30, 0x2f, 0x6a, 0x54, 0x4f, 0x67, 0x47, 0x4e, 0x6b, 0x33, 0x4d, 0x6d, 0x71, 0x77, 0x39, 0x44, 0x4a, 0x41, 0x72, 0x6b, 0x74, 0x51, 0x47, 0x47, 0x57, 0x43, 0x73, 0x4e, 0x30, 0x52, 0x35, 0x68, 0x59, 0x47, 0x43, 0x72, 0x56, 0x6f, 0x33, 0x34, 0x41, 0x33, 0x4d, 0x6e, 0x61, 0x5a, 0x4d, 0x55, 0x6e, 0x62, 0x71, 0x51, 0x35, 0x32, 0x33, 0x42, 0x4e, 0x46, 0x51, 0x39, 0x6c, 0x58, 0x67, 0x31, 0x64, 0x4b, 0x6d, 0x53, 0x59, 0x58, 0x70, 0x0a, 0x4e, 0x2b, 0x6e, 0x4b, 0x66, 0x71, 0x35, 0x63, 0x6c, 0x55, 0x31, 0x49, 0x6d, 0x6a, 0x2b, 0x75, 0x49, 0x46, 0x70, 0x74, 0x69, 0x4a, 0x58, 0x5a, 0x4e, 0x4c, 0x68, 0x53, 0x47, 0x6b, 0x4f, 0x51, 0x73, 0x4c, 0x39, 0x73, 0x42, 0x62, 0x6d, 0x32, 0x65, 0x4c, 0x66, 0x71, 0x30, 0x4f, 0x51, 0x36, 0x50, 0x42, 0x4a, 0x54, 0x59, 0x76, 0x39, 0x4b, 0x38, 0x6e, 0x75, 0x2b, 0x4e, 0x51, 0x57, 0x70, 0x45, 0x6a, 0x54, 0x6a, 0x38, 0x32, 0x52, 0x30, 0x59, 0x69, 0x77, 0x39, 0x0a, 0x41, 0x45, 0x6c, 0x61, 0x4b, 0x50, 0x34, 0x79, 0x52, 0x4c, 0x75, 0x48, 0x33, 0x57, 0x55, 0x6e, 0x41, 0x6e, 0x45, 0x37, 0x32, 0x6b, 0x72, 0x33, 0x48, 0x39, 0x72, 0x4e, 0x39, 0x79, 0x46, 0x56, 0x6b, 0x45, 0x38, 0x50, 0x37, 0x4b, 0x36, 0x43, 0x34, 0x5a, 0x39, 0x72, 0x32, 0x55, 0x58, 0x54, 0x75, 0x2f, 0x42, 0x66, 0x68, 0x2b, 0x30, 0x38, 0x4c, 0x44, 0x6d, 0x47, 0x32, 0x6a, 0x2f, 0x65, 0x37, 0x48, 0x4a, 0x56, 0x36, 0x33, 0x6d, 0x6a, 0x72, 0x64, 0x76, 0x64, 0x0a, 0x66, 0x4c, 0x43, 0x36, 0x48, 0x4d, 0x37, 0x38, 0x33, 0x6b, 0x38, 0x31, 0x64, 0x73, 0x38, 0x50, 0x2b, 0x48, 0x67, 0x66, 0x61, 0x6a, 0x5a, 0x52, 0x52, 0x69, 0x64, 0x68, 0x57, 0x2b, 0x6d, 0x65, 0x7a, 0x2f, 0x43, 0x69, 0x56, 0x58, 0x31, 0x38, 0x4a, 0x59, 0x70, 0x76, 0x4c, 0x37, 0x54, 0x46, 0x7a, 0x34, 0x51, 0x75, 0x4b, 0x2f, 0x30, 0x4e, 0x55, 0x52, 0x42, 0x73, 0x2b, 0x31, 0x38, 0x62, 0x76, 0x42, 0x74, 0x2b, 0x78, 0x61, 0x34, 0x37, 0x6d, 0x41, 0x45, 0x78, 0x0a, 0x6b, 0x76, 0x38, 0x4c, 0x56, 0x2f, 0x53, 0x61, 0x73, 0x72, 0x6c, 0x58, 0x36, 0x61, 0x76, 0x76, 0x44, 0x58, 0x62, 0x52, 0x38, 0x4f, 0x37, 0x30, 0x7a, 0x6f, 0x61, 0x6e, 0x34, 0x47, 0x37, 0x70, 0x74, 0x47, 0x6d, 0x68, 0x33, 0x32, 0x6e, 0x32, 0x4d, 0x38, 0x5a, 0x70, 0x4c, 0x70, 0x63, 0x54, 0x6e, 0x71, 0x57, 0x48, 0x73, 0x46, 0x63, 0x51, 0x67, 0x54, 0x66, 0x4a, 0x55, 0x37, 0x4f, 0x37, 0x66, 0x2f, 0x61, 0x53, 0x30, 0x5a, 0x7a, 0x51, 0x47, 0x50, 0x53, 0x53, 0x0a, 0x62, 0x74, 0x71, 0x44, 0x54, 0x36, 0x5a, 0x6a, 0x6d, 0x55, 0x79, 0x6c, 0x2b, 0x31, 0x37, 0x76, 0x49, 0x57, 0x52, 0x36, 0x49, 0x46, 0x39, 0x73, 0x5a, 0x49, 0x55, 0x56, 0x79, 0x7a, 0x66, 0x70, 0x59, 0x67, 0x77, 0x4c, 0x4b, 0x68, 0x62, 0x63, 0x41, 0x53, 0x34, 0x79, 0x32, 0x6a, 0x35, 0x4c, 0x39, 0x5a, 0x34, 0x36, 0x39, 0x68, 0x64, 0x41, 0x6c, 0x4f, 0x2b, 0x65, 0x6b, 0x51, 0x69, 0x47, 0x2b, 0x72, 0x35, 0x6a, 0x71, 0x46, 0x6f, 0x7a, 0x37, 0x4d, 0x74, 0x30, 0x0a, 0x51, 0x35, 0x58, 0x35, 0x62, 0x47, 0x6c, 0x53, 0x4e, 0x73, 0x63, 0x70, 0x62, 0x2f, 0x78, 0x56, 0x41, 0x31, 0x77, 0x66, 0x2b, 0x35, 0x2b, 0x39, 0x52, 0x2b, 0x76, 0x6e, 0x53, 0x55, 0x65, 0x56, 0x43, 0x30, 0x36, 0x4a, 0x49, 0x67, 0x6c, 0x4a, 0x34, 0x50, 0x56, 0x68, 0x48, 0x76, 0x47, 0x2f, 0x4c, 0x6f, 0x70, 0x79, 0x62, 0x6f, 0x42, 0x5a, 0x2f, 0x31, 0x63, 0x36, 0x2b, 0x58, 0x55, 0x79, 0x6f, 0x30, 0x35, 0x66, 0x37, 0x4f, 0x30, 0x6f, 0x59, 0x74, 0x6c, 0x4e, 0x0a, 0x63, 0x2f, 0x4c, 0x4d, 0x67, 0x52, 0x64, 0x67, 0x37, 0x63, 0x33, 0x72, 0x33, 0x4e, 0x75, 0x6e, 0x79, 0x73, 0x56, 0x2b, 0x41, 0x72, 0x33, 0x79, 0x56, 0x41, 0x68, 0x55, 0x2f, 0x62, 0x51, 0x74, 0x43, 0x53, 0x77, 0x58, 0x56, 0x45, 0x71, 0x59, 0x30, 0x56, 0x54, 0x68, 0x55, 0x57, 0x63, 0x49, 0x30, 0x75, 0x31, 0x75, 0x66, 0x6d, 0x38, 0x2f, 0x30, 0x69, 0x32, 0x42, 0x57, 0x53, 0x6c, 0x6d, 0x79, 0x35, 0x41, 0x35, 0x6c, 0x52, 0x45, 0x65, 0x64, 0x43, 0x66, 0x2b, 0x0a, 0x33, 0x65, 0x75, 0x76, 0x41, 0x67, 0x4d, 0x42, 0x41, 0x41, 0x47, 0x6a, 0x51, 0x6a, 0x42, 0x41, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x47, 0x47, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x53, 0x77, 0x0a, 0x44, 0x50, 0x42, 0x4d, 0x4d, 0x50, 0x51, 0x46, 0x57, 0x41, 0x4a, 0x49, 0x2f, 0x54, 0x50, 0x6c, 0x55, 0x71, 0x39, 0x4c, 0x68, 0x4f, 0x4e, 0x6d, 0x55, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x77, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x45, 0x41, 0x71, 0x71, 0x69, 0x41, 0x6a, 0x77, 0x35, 0x34, 0x6f, 0x2b, 0x43, 0x69, 0x31, 0x4d, 0x33, 0x6d, 0x39, 0x5a, 0x68, 0x36, 0x4f, 0x2b, 0x6f, 0x41, 0x0a, 0x41, 0x37, 0x43, 0x58, 0x44, 0x70, 0x4f, 0x38, 0x57, 0x71, 0x6a, 0x32, 0x4c, 0x49, 0x78, 0x79, 0x68, 0x36, 0x6d, 0x78, 0x2f, 0x48, 0x39, 0x7a, 0x2f, 0x57, 0x4e, 0x78, 0x65, 0x4b, 0x57, 0x48, 0x57, 0x63, 0x38, 0x77, 0x34, 0x51, 0x30, 0x51, 0x73, 0x68, 0x4e, 0x61, 0x62, 0x59, 0x4c, 0x31, 0x61, 0x75, 0x61, 0x41, 0x6e, 0x36, 0x41, 0x46, 0x43, 0x32, 0x6a, 0x6b, 0x52, 0x32, 0x76, 0x48, 0x61, 0x74, 0x2b, 0x32, 0x2f, 0x58, 0x63, 0x79, 0x63, 0x75, 0x55, 0x59, 0x0a, 0x2b, 0x67, 0x6e, 0x30, 0x6f, 0x4a, 0x4d, 0x73, 0x58, 0x64, 0x4b, 0x4d, 0x64, 0x59, 0x56, 0x32, 0x5a, 0x5a, 0x41, 0x4d, 0x41, 0x33, 0x6d, 0x33, 0x4d, 0x53, 0x4e, 0x6a, 0x72, 0x58, 0x69, 0x44, 0x43, 0x59, 0x5a, 0x6f, 0x68, 0x4d, 0x72, 0x2f, 0x2b, 0x63, 0x38, 0x6d, 0x6d, 0x70, 0x4a, 0x35, 0x35, 0x38, 0x31, 0x4c, 0x78, 0x65, 0x64, 0x68, 0x70, 0x78, 0x66, 0x4c, 0x38, 0x36, 0x6b, 0x53, 0x6b, 0x35, 0x4e, 0x72, 0x70, 0x2b, 0x67, 0x76, 0x55, 0x35, 0x4c, 0x45, 0x0a, 0x59, 0x46, 0x69, 0x77, 0x7a, 0x41, 0x4a, 0x52, 0x47, 0x46, 0x75, 0x46, 0x6a, 0x57, 0x4a, 0x5a, 0x59, 0x37, 0x61, 0x74, 0x74, 0x4e, 0x36, 0x61, 0x2b, 0x79, 0x62, 0x33, 0x41, 0x43, 0x66, 0x41, 0x58, 0x56, 0x55, 0x33, 0x64, 0x4a, 0x6e, 0x4a, 0x55, 0x48, 0x2f, 0x6a, 0x57, 0x53, 0x35, 0x45, 0x34, 0x79, 0x77, 0x6c, 0x37, 0x75, 0x78, 0x4d, 0x4d, 0x6e, 0x65, 0x30, 0x6e, 0x78, 0x72, 0x70, 0x53, 0x31, 0x30, 0x67, 0x78, 0x64, 0x72, 0x39, 0x48, 0x49, 0x63, 0x57, 0x0a, 0x78, 0x6b, 0x50, 0x6f, 0x31, 0x4c, 0x73, 0x6d, 0x6d, 0x6b, 0x56, 0x77, 0x58, 0x71, 0x6b, 0x4c, 0x4e, 0x31, 0x50, 0x69, 0x52, 0x6e, 0x73, 0x6e, 0x2f, 0x65, 0x42, 0x47, 0x38, 0x6f, 0x6d, 0x33, 0x7a, 0x45, 0x4b, 0x32, 0x79, 0x79, 0x67, 0x6d, 0x62, 0x74, 0x6d, 0x6c, 0x79, 0x54, 0x72, 0x49, 0x51, 0x52, 0x4e, 0x67, 0x39, 0x31, 0x43, 0x4d, 0x46, 0x61, 0x36, 0x79, 0x62, 0x52, 0x6f, 0x56, 0x47, 0x6c, 0x64, 0x34, 0x35, 0x70, 0x49, 0x71, 0x32, 0x57, 0x57, 0x51, 0x0a, 0x67, 0x6a, 0x39, 0x73, 0x41, 0x71, 0x2b, 0x75, 0x45, 0x6a, 0x6f, 0x6e, 0x6c, 0x6a, 0x59, 0x45, 0x31, 0x78, 0x32, 0x69, 0x67, 0x47, 0x4f, 0x70, 0x6d, 0x2f, 0x48, 0x6c, 0x75, 0x72, 0x52, 0x38, 0x46, 0x4c, 0x42, 0x4f, 0x79, 0x62, 0x45, 0x66, 0x64, 0x46, 0x38, 0x34, 0x39, 0x6c, 0x48, 0x71, 0x6d, 0x2f, 0x6f, 0x73, 0x6f, 0x68, 0x48, 0x55, 0x71, 0x53, 0x30, 0x6e, 0x47, 0x6b, 0x57, 0x78, 0x72, 0x37, 0x4a, 0x4f, 0x63, 0x51, 0x33, 0x41, 0x57, 0x45, 0x62, 0x57, 0x0a, 0x61, 0x51, 0x62, 0x4c, 0x55, 0x38, 0x75, 0x7a, 0x2f, 0x6d, 0x74, 0x42, 0x7a, 0x55, 0x46, 0x2b, 0x66, 0x55, 0x77, 0x50, 0x66, 0x48, 0x4a, 0x35, 0x65, 0x6c, 0x6e, 0x4e, 0x58, 0x6b, 0x6f, 0x4f, 0x72, 0x4a, 0x75, 0x70, 0x6d, 0x48, 0x4e, 0x35, 0x66, 0x4c, 0x54, 0x30, 0x7a, 0x4c, 0x6d, 0x34, 0x42, 0x77, 0x79, 0x79, 0x64, 0x46, 0x79, 0x34, 0x78, 0x32, 0x2b, 0x49, 0x6f, 0x5a, 0x43, 0x6e, 0x39, 0x4b, 0x72, 0x35, 0x76, 0x32, 0x63, 0x36, 0x39, 0x42, 0x6f, 0x56, 0x0a, 0x59, 0x68, 0x36, 0x33, 0x6e, 0x37, 0x34, 0x39, 0x73, 0x53, 0x6d, 0x76, 0x5a, 0x36, 0x45, 0x53, 0x38, 0x6c, 0x67, 0x51, 0x47, 0x56, 0x4d, 0x44, 0x4d, 0x42, 0x75, 0x34, 0x47, 0x6f, 0x6e, 0x32, 0x6e, 0x4c, 0x32, 0x58, 0x41, 0x34, 0x36, 0x6a, 0x43, 0x66, 0x4d, 0x64, 0x69, 0x79, 0x48, 0x78, 0x74, 0x4e, 0x2f, 0x6b, 0x48, 0x4e, 0x47, 0x66, 0x5a, 0x51, 0x49, 0x47, 0x36, 0x6c, 0x7a, 0x57, 0x45, 0x37, 0x4f, 0x45, 0x37, 0x36, 0x4b, 0x6c, 0x58, 0x49, 0x78, 0x33, 0x0a, 0x4b, 0x61, 0x64, 0x6f, 0x77, 0x47, 0x75, 0x75, 0x51, 0x4e, 0x4b, 0x6f, 0x74, 0x4f, 0x72, 0x4e, 0x38, 0x49, 0x31, 0x4c, 0x4f, 0x4a, 0x77, 0x5a, 0x6d, 0x68, 0x73, 0x6f, 0x56, 0x4c, 0x69, 0x4a, 0x6b, 0x4f, 0x2f, 0x4b, 0x64, 0x59, 0x45, 0x2b, 0x48, 0x76, 0x4a, 0x6b, 0x4a, 0x4d, 0x63, 0x59, 0x72, 0x30, 0x37, 0x2f, 0x52, 0x35, 0x34, 0x48, 0x39, 0x6a, 0x56, 0x6c, 0x70, 0x4e, 0x4d, 0x4b, 0x56, 0x76, 0x2f, 0x31, 0x46, 0x32, 0x52, 0x73, 0x37, 0x36, 0x67, 0x69, 0x0a, 0x4a, 0x55, 0x6d, 0x54, 0x74, 0x74, 0x38, 0x41, 0x46, 0x39, 0x70, 0x59, 0x66, 0x6c, 0x33, 0x75, 0x78, 0x52, 0x75, 0x77, 0x30, 0x64, 0x46, 0x66, 0x49, 0x52, 0x44, 0x48, 0x2b, 0x66, 0x4f, 0x36, 0x41, 0x67, 0x6f, 0x6e, 0x42, 0x38, 0x58, 0x78, 0x31, 0x73, 0x66, 0x54, 0x34, 0x50, 0x73, 0x4a, 0x59, 0x47, 0x77, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x41, 0x6d, 0x61, 0x7a, 0x6f, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x33, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x42, 0x74, 0x6a, 0x43, 0x43, 0x41, 0x56, 0x75, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x54, 0x42, 0x6d, 0x79, 0x66, 0x31, 0x58, 0x53, 0x58, 0x4e, 0x6d, 0x59, 0x2f, 0x4f, 0x77, 0x75, 0x61, 0x32, 0x65, 0x69, 0x65, 0x64, 0x67, 0x50, 0x79, 0x53, 0x6a, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x6a, 0x41, 0x35, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x0a, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x50, 0x4d, 0x41, 0x30, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x47, 0x51, 0x57, 0x31, 0x68, 0x65, 0x6d, 0x39, 0x75, 0x4d, 0x52, 0x6b, 0x77, 0x46, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x42, 0x42, 0x62, 0x57, 0x46, 0x36, 0x62, 0x32, 0x34, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x51, 0x53, 0x41, 0x7a, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x45, 0x31, 0x4d, 0x44, 0x55, 0x79, 0x0a, 0x4e, 0x6a, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x46, 0x6f, 0x58, 0x44, 0x54, 0x51, 0x77, 0x4d, 0x44, 0x55, 0x79, 0x4e, 0x6a, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x46, 0x6f, 0x77, 0x4f, 0x54, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x44, 0x7a, 0x41, 0x4e, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x42, 0x6b, 0x46, 0x74, 0x59, 0x58, 0x70, 0x76, 0x62, 0x6a, 0x45, 0x5a, 0x0a, 0x4d, 0x42, 0x63, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x51, 0x51, 0x57, 0x31, 0x68, 0x65, 0x6d, 0x39, 0x75, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x67, 0x4d, 0x7a, 0x42, 0x5a, 0x4d, 0x42, 0x4d, 0x47, 0x42, 0x79, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x41, 0x67, 0x45, 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x41, 0x77, 0x45, 0x48, 0x41, 0x30, 0x49, 0x41, 0x42, 0x43, 0x6d, 0x58, 0x70, 0x38, 0x5a, 0x42, 0x0a, 0x66, 0x38, 0x41, 0x4e, 0x6d, 0x2b, 0x67, 0x42, 0x47, 0x31, 0x62, 0x47, 0x38, 0x6c, 0x4b, 0x6c, 0x75, 0x69, 0x32, 0x79, 0x45, 0x75, 0x6a, 0x53, 0x4c, 0x74, 0x66, 0x36, 0x79, 0x63, 0x58, 0x59, 0x71, 0x6d, 0x30, 0x66, 0x63, 0x34, 0x45, 0x37, 0x4f, 0x35, 0x68, 0x72, 0x4f, 0x58, 0x77, 0x7a, 0x70, 0x63, 0x56, 0x4f, 0x68, 0x6f, 0x36, 0x41, 0x46, 0x32, 0x68, 0x69, 0x52, 0x56, 0x64, 0x39, 0x52, 0x46, 0x67, 0x64, 0x73, 0x7a, 0x66, 0x6c, 0x5a, 0x77, 0x6a, 0x72, 0x0a, 0x5a, 0x74, 0x36, 0x6a, 0x51, 0x6a, 0x42, 0x41, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x47, 0x47, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x53, 0x72, 0x74, 0x74, 0x76, 0x58, 0x42, 0x70, 0x34, 0x33, 0x0a, 0x72, 0x44, 0x43, 0x47, 0x42, 0x35, 0x46, 0x77, 0x78, 0x35, 0x7a, 0x45, 0x47, 0x62, 0x46, 0x34, 0x77, 0x44, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x67, 0x4e, 0x4a, 0x41, 0x44, 0x42, 0x47, 0x41, 0x69, 0x45, 0x41, 0x34, 0x49, 0x57, 0x53, 0x6f, 0x78, 0x65, 0x33, 0x6a, 0x66, 0x6b, 0x72, 0x42, 0x71, 0x57, 0x54, 0x72, 0x42, 0x71, 0x59, 0x61, 0x47, 0x46, 0x79, 0x2b, 0x75, 0x47, 0x68, 0x30, 0x50, 0x73, 0x63, 0x0a, 0x65, 0x47, 0x43, 0x6d, 0x51, 0x35, 0x6e, 0x46, 0x75, 0x4d, 0x51, 0x43, 0x49, 0x51, 0x43, 0x63, 0x41, 0x75, 0x2f, 0x78, 0x6c, 0x4a, 0x79, 0x7a, 0x6c, 0x76, 0x6e, 0x72, 0x78, 0x69, 0x72, 0x34, 0x74, 0x69, 0x7a, 0x2b, 0x4f, 0x70, 0x41, 0x55, 0x46, 0x74, 0x65, 0x4d, 0x59, 0x79, 0x52, 0x49, 0x48, 0x4e, 0x38, 0x77, 0x66, 0x64, 0x56, 0x6f, 0x4f, 0x77, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x41, 0x6d, 0x61, 0x7a, 0x6f, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x34, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x42, 0x38, 0x6a, 0x43, 0x43, 0x41, 0x58, 0x69, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x54, 0x42, 0x6d, 0x79, 0x66, 0x31, 0x38, 0x47, 0x37, 0x45, 0x45, 0x77, 0x70, 0x51, 0x2b, 0x56, 0x78, 0x65, 0x33, 0x73, 0x73, 0x79, 0x42, 0x72, 0x42, 0x44, 0x6a, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x7a, 0x41, 0x35, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x0a, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x50, 0x4d, 0x41, 0x30, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x47, 0x51, 0x57, 0x31, 0x68, 0x65, 0x6d, 0x39, 0x75, 0x4d, 0x52, 0x6b, 0x77, 0x46, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x42, 0x42, 0x62, 0x57, 0x46, 0x36, 0x62, 0x32, 0x34, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x51, 0x53, 0x41, 0x30, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x45, 0x31, 0x4d, 0x44, 0x55, 0x79, 0x0a, 0x4e, 0x6a, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x46, 0x6f, 0x58, 0x44, 0x54, 0x51, 0x77, 0x4d, 0x44, 0x55, 0x79, 0x4e, 0x6a, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x46, 0x6f, 0x77, 0x4f, 0x54, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x44, 0x7a, 0x41, 0x4e, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x42, 0x6b, 0x46, 0x74, 0x59, 0x58, 0x70, 0x76, 0x62, 0x6a, 0x45, 0x5a, 0x0a, 0x4d, 0x42, 0x63, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x51, 0x51, 0x57, 0x31, 0x68, 0x65, 0x6d, 0x39, 0x75, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x67, 0x4e, 0x44, 0x42, 0x32, 0x4d, 0x42, 0x41, 0x47, 0x42, 0x79, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x41, 0x67, 0x45, 0x47, 0x42, 0x53, 0x75, 0x42, 0x42, 0x41, 0x41, 0x69, 0x41, 0x32, 0x49, 0x41, 0x42, 0x4e, 0x4b, 0x72, 0x69, 0x6a, 0x64, 0x50, 0x6f, 0x31, 0x4d, 0x4e, 0x0a, 0x2f, 0x73, 0x47, 0x4b, 0x65, 0x30, 0x75, 0x6f, 0x65, 0x30, 0x5a, 0x4c, 0x59, 0x37, 0x42, 0x69, 0x39, 0x69, 0x30, 0x62, 0x32, 0x77, 0x68, 0x78, 0x49, 0x64, 0x49, 0x41, 0x36, 0x47, 0x4f, 0x39, 0x6d, 0x69, 0x66, 0x37, 0x38, 0x44, 0x6c, 0x75, 0x58, 0x65, 0x6f, 0x39, 0x70, 0x63, 0x6d, 0x42, 0x71, 0x71, 0x4e, 0x62, 0x49, 0x4a, 0x68, 0x46, 0x58, 0x52, 0x62, 0x62, 0x2f, 0x65, 0x67, 0x51, 0x62, 0x65, 0x4f, 0x63, 0x34, 0x4f, 0x4f, 0x39, 0x58, 0x34, 0x52, 0x69, 0x0a, 0x38, 0x33, 0x42, 0x6b, 0x4d, 0x36, 0x44, 0x4c, 0x4a, 0x43, 0x39, 0x77, 0x75, 0x6f, 0x69, 0x68, 0x4b, 0x71, 0x42, 0x31, 0x2b, 0x49, 0x47, 0x75, 0x59, 0x67, 0x62, 0x45, 0x67, 0x64, 0x73, 0x35, 0x62, 0x69, 0x6d, 0x77, 0x48, 0x76, 0x6f, 0x75, 0x58, 0x4b, 0x4e, 0x43, 0x4d, 0x45, 0x41, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x0a, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x59, 0x59, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x4e, 0x50, 0x73, 0x78, 0x7a, 0x70, 0x6c, 0x62, 0x73, 0x7a, 0x68, 0x32, 0x6e, 0x61, 0x61, 0x56, 0x76, 0x75, 0x63, 0x38, 0x34, 0x5a, 0x74, 0x56, 0x2b, 0x57, 0x42, 0x4d, 0x41, 0x6f, 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x42, 0x41, 0x4d, 0x44, 0x41, 0x32, 0x67, 0x41, 0x0a, 0x4d, 0x47, 0x55, 0x43, 0x4d, 0x44, 0x71, 0x4c, 0x49, 0x66, 0x47, 0x39, 0x66, 0x68, 0x47, 0x74, 0x30, 0x4f, 0x39, 0x59, 0x6c, 0x69, 0x2f, 0x57, 0x36, 0x35, 0x31, 0x2b, 0x6b, 0x49, 0x30, 0x72, 0x7a, 0x32, 0x5a, 0x56, 0x77, 0x79, 0x7a, 0x6a, 0x4b, 0x4b, 0x6c, 0x77, 0x43, 0x6b, 0x63, 0x4f, 0x38, 0x44, 0x64, 0x5a, 0x45, 0x76, 0x38, 0x74, 0x6d, 0x5a, 0x51, 0x6f, 0x54, 0x69, 0x70, 0x50, 0x4e, 0x55, 0x30, 0x7a, 0x57, 0x67, 0x49, 0x78, 0x41, 0x4f, 0x70, 0x31, 0x0a, 0x41, 0x45, 0x34, 0x37, 0x78, 0x44, 0x71, 0x55, 0x45, 0x70, 0x48, 0x4a, 0x57, 0x45, 0x61, 0x64, 0x49, 0x52, 0x4e, 0x79, 0x70, 0x34, 0x69, 0x63, 0x69, 0x75, 0x52, 0x4d, 0x53, 0x74, 0x75, 0x57, 0x31, 0x4b, 0x79, 0x4c, 0x61, 0x32, 0x74, 0x4a, 0x45, 0x6c, 0x4d, 0x7a, 0x72, 0x64, 0x66, 0x6b, 0x76, 0x69, 0x54, 0x38, 0x74, 0x51, 0x70, 0x32, 0x31, 0x4b, 0x57, 0x38, 0x45, 0x41, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x54, 0x55, 0x42, 0x49, 0x54, 0x41, 0x4b, 0x20, 0x4b, 0x61, 0x6d, 0x75, 0x20, 0x53, 0x4d, 0x20, 0x53, 0x53, 0x4c, 0x20, 0x4b, 0x6f, 0x6b, 0x20, 0x53, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x6b, 0x61, 0x73, 0x69, 0x20, 0x2d, 0x20, 0x53, 0x75, 0x72, 0x75, 0x6d, 0x20, 0x31, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x45, 0x59, 0x7a, 0x43, 0x43, 0x41, 0x30, 0x75, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x42, 0x41, 0x54, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x44, 0x43, 0x42, 0x30, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x46, 0x49, 0x78, 0x47, 0x44, 0x41, 0x57, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x63, 0x54, 0x0a, 0x44, 0x30, 0x64, 0x6c, 0x59, 0x6e, 0x70, 0x6c, 0x49, 0x43, 0x30, 0x67, 0x53, 0x32, 0x39, 0x6a, 0x59, 0x57, 0x56, 0x73, 0x61, 0x54, 0x46, 0x43, 0x4d, 0x45, 0x41, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x35, 0x56, 0x48, 0x56, 0x79, 0x61, 0x32, 0x6c, 0x35, 0x5a, 0x53, 0x42, 0x43, 0x61, 0x57, 0x78, 0x70, 0x62, 0x58, 0x4e, 0x6c, 0x62, 0x43, 0x42, 0x32, 0x5a, 0x53, 0x42, 0x55, 0x5a, 0x57, 0x74, 0x75, 0x62, 0x32, 0x78, 0x76, 0x61, 0x6d, 0x6c, 0x72, 0x0a, 0x49, 0x45, 0x46, 0x79, 0x59, 0x58, 0x4e, 0x30, 0x61, 0x58, 0x4a, 0x74, 0x59, 0x53, 0x42, 0x4c, 0x64, 0x58, 0x4a, 0x31, 0x62, 0x58, 0x55, 0x67, 0x4c, 0x53, 0x42, 0x55, 0x56, 0x55, 0x4a, 0x4a, 0x56, 0x45, 0x46, 0x4c, 0x4d, 0x53, 0x30, 0x77, 0x4b, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x79, 0x52, 0x4c, 0x59, 0x57, 0x31, 0x31, 0x49, 0x46, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x70, 0x5a, 0x6d, 0x6c, 0x72, 0x59, 0x58, 0x4e, 0x35, 0x62, 0x32, 0x34, 0x67, 0x0a, 0x54, 0x57, 0x56, 0x79, 0x61, 0x32, 0x56, 0x36, 0x61, 0x53, 0x41, 0x74, 0x49, 0x45, 0x74, 0x68, 0x62, 0x58, 0x55, 0x67, 0x55, 0x30, 0x30, 0x78, 0x4e, 0x6a, 0x41, 0x30, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x4c, 0x56, 0x52, 0x56, 0x51, 0x6b, 0x6c, 0x55, 0x51, 0x55, 0x73, 0x67, 0x53, 0x32, 0x46, 0x74, 0x64, 0x53, 0x42, 0x54, 0x54, 0x53, 0x42, 0x54, 0x55, 0x30, 0x77, 0x67, 0x53, 0x32, 0x39, 0x72, 0x49, 0x46, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x70, 0x0a, 0x5a, 0x6d, 0x6c, 0x72, 0x59, 0x58, 0x4e, 0x70, 0x49, 0x43, 0x30, 0x67, 0x55, 0x33, 0x56, 0x79, 0x64, 0x57, 0x30, 0x67, 0x4d, 0x54, 0x41, 0x65, 0x46, 0x77, 0x30, 0x78, 0x4d, 0x7a, 0x45, 0x78, 0x4d, 0x6a, 0x55, 0x77, 0x4f, 0x44, 0x49, 0x31, 0x4e, 0x54, 0x56, 0x61, 0x46, 0x77, 0x30, 0x30, 0x4d, 0x7a, 0x45, 0x77, 0x4d, 0x6a, 0x55, 0x77, 0x4f, 0x44, 0x49, 0x31, 0x4e, 0x54, 0x56, 0x61, 0x4d, 0x49, 0x48, 0x53, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x0a, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x55, 0x55, 0x6a, 0x45, 0x59, 0x4d, 0x42, 0x59, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x78, 0x4d, 0x50, 0x52, 0x32, 0x56, 0x69, 0x65, 0x6d, 0x55, 0x67, 0x4c, 0x53, 0x42, 0x4c, 0x62, 0x32, 0x4e, 0x68, 0x5a, 0x57, 0x78, 0x70, 0x4d, 0x55, 0x49, 0x77, 0x51, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x7a, 0x6c, 0x55, 0x64, 0x58, 0x4a, 0x72, 0x61, 0x58, 0x6c, 0x6c, 0x49, 0x45, 0x4a, 0x70, 0x62, 0x47, 0x6c, 0x74, 0x0a, 0x63, 0x32, 0x56, 0x73, 0x49, 0x48, 0x5a, 0x6c, 0x49, 0x46, 0x52, 0x6c, 0x61, 0x32, 0x35, 0x76, 0x62, 0x47, 0x39, 0x71, 0x61, 0x57, 0x73, 0x67, 0x51, 0x58, 0x4a, 0x68, 0x63, 0x33, 0x52, 0x70, 0x63, 0x6d, 0x31, 0x68, 0x49, 0x45, 0x74, 0x31, 0x63, 0x6e, 0x56, 0x74, 0x64, 0x53, 0x41, 0x74, 0x49, 0x46, 0x52, 0x56, 0x51, 0x6b, 0x6c, 0x55, 0x51, 0x55, 0x73, 0x78, 0x4c, 0x54, 0x41, 0x72, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x73, 0x54, 0x4a, 0x45, 0x74, 0x68, 0x0a, 0x62, 0x58, 0x55, 0x67, 0x55, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x74, 0x68, 0x63, 0x33, 0x6c, 0x76, 0x62, 0x69, 0x42, 0x4e, 0x5a, 0x58, 0x4a, 0x72, 0x5a, 0x58, 0x70, 0x70, 0x49, 0x43, 0x30, 0x67, 0x53, 0x32, 0x46, 0x74, 0x64, 0x53, 0x42, 0x54, 0x54, 0x54, 0x45, 0x32, 0x4d, 0x44, 0x51, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x74, 0x56, 0x46, 0x56, 0x43, 0x53, 0x56, 0x52, 0x42, 0x53, 0x79, 0x42, 0x4c, 0x59, 0x57, 0x31, 0x31, 0x0a, 0x49, 0x46, 0x4e, 0x4e, 0x49, 0x46, 0x4e, 0x54, 0x54, 0x43, 0x42, 0x4c, 0x62, 0x32, 0x73, 0x67, 0x55, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x74, 0x68, 0x63, 0x32, 0x6b, 0x67, 0x4c, 0x53, 0x42, 0x54, 0x64, 0x58, 0x4a, 0x31, 0x62, 0x53, 0x41, 0x78, 0x4d, 0x49, 0x49, 0x42, 0x49, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x45, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x51, 0x38, 0x41, 0x0a, 0x4d, 0x49, 0x49, 0x42, 0x43, 0x67, 0x4b, 0x43, 0x41, 0x51, 0x45, 0x41, 0x72, 0x33, 0x55, 0x77, 0x4d, 0x36, 0x71, 0x37, 0x61, 0x39, 0x4f, 0x5a, 0x4c, 0x42, 0x49, 0x33, 0x68, 0x4e, 0x6d, 0x4e, 0x65, 0x35, 0x65, 0x41, 0x30, 0x32, 0x37, 0x6e, 0x2f, 0x35, 0x74, 0x51, 0x6c, 0x54, 0x36, 0x51, 0x6c, 0x56, 0x5a, 0x43, 0x31, 0x78, 0x6c, 0x38, 0x4a, 0x6f, 0x53, 0x4e, 0x6b, 0x76, 0x6f, 0x42, 0x48, 0x54, 0x6f, 0x50, 0x34, 0x6d, 0x51, 0x34, 0x74, 0x34, 0x79, 0x38, 0x0a, 0x36, 0x49, 0x6a, 0x35, 0x69, 0x79, 0x53, 0x72, 0x4c, 0x71, 0x50, 0x31, 0x4e, 0x2b, 0x52, 0x41, 0x6a, 0x68, 0x67, 0x6c, 0x65, 0x59, 0x4e, 0x31, 0x48, 0x7a, 0x76, 0x2f, 0x62, 0x4b, 0x6a, 0x46, 0x78, 0x6c, 0x62, 0x34, 0x74, 0x4f, 0x32, 0x4b, 0x52, 0x4b, 0x4f, 0x72, 0x62, 0x45, 0x7a, 0x38, 0x48, 0x64, 0x44, 0x63, 0x37, 0x32, 0x69, 0x39, 0x7a, 0x2b, 0x53, 0x71, 0x7a, 0x76, 0x42, 0x56, 0x39, 0x36, 0x49, 0x30, 0x31, 0x49, 0x4e, 0x72, 0x4e, 0x33, 0x77, 0x63, 0x0a, 0x77, 0x76, 0x36, 0x31, 0x41, 0x2b, 0x78, 0x58, 0x7a, 0x72, 0x79, 0x30, 0x74, 0x63, 0x58, 0x74, 0x41, 0x41, 0x39, 0x54, 0x4e, 0x79, 0x70, 0x4e, 0x39, 0x45, 0x38, 0x4d, 0x67, 0x2f, 0x75, 0x47, 0x7a, 0x38, 0x76, 0x2b, 0x6a, 0x45, 0x36, 0x39, 0x68, 0x2f, 0x6d, 0x6e, 0x69, 0x79, 0x46, 0x58, 0x6e, 0x48, 0x72, 0x66, 0x41, 0x32, 0x65, 0x4a, 0x4c, 0x4a, 0x32, 0x58, 0x59, 0x61, 0x63, 0x51, 0x75, 0x46, 0x57, 0x51, 0x66, 0x77, 0x34, 0x74, 0x4a, 0x7a, 0x68, 0x30, 0x0a, 0x33, 0x2b, 0x66, 0x39, 0x32, 0x6b, 0x34, 0x53, 0x34, 0x30, 0x30, 0x56, 0x49, 0x67, 0x4c, 0x49, 0x34, 0x4f, 0x44, 0x38, 0x44, 0x36, 0x32, 0x4b, 0x31, 0x38, 0x6c, 0x55, 0x55, 0x4d, 0x77, 0x37, 0x44, 0x38, 0x6f, 0x57, 0x67, 0x49, 0x54, 0x51, 0x55, 0x56, 0x62, 0x44, 0x6a, 0x6c, 0x5a, 0x2f, 0x69, 0x53, 0x49, 0x7a, 0x4c, 0x2b, 0x61, 0x46, 0x43, 0x72, 0x32, 0x6c, 0x71, 0x42, 0x73, 0x32, 0x33, 0x74, 0x50, 0x63, 0x4c, 0x47, 0x30, 0x37, 0x78, 0x78, 0x4f, 0x39, 0x0a, 0x57, 0x53, 0x4d, 0x73, 0x35, 0x75, 0x57, 0x6b, 0x39, 0x39, 0x67, 0x4c, 0x37, 0x65, 0x71, 0x51, 0x51, 0x45, 0x53, 0x6f, 0x6c, 0x62, 0x75, 0x54, 0x31, 0x64, 0x43, 0x41, 0x4e, 0x4c, 0x5a, 0x47, 0x65, 0x41, 0x34, 0x66, 0x41, 0x4a, 0x4e, 0x47, 0x34, 0x65, 0x37, 0x70, 0x2b, 0x65, 0x78, 0x50, 0x46, 0x77, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x0a, 0x5a, 0x54, 0x2f, 0x48, 0x69, 0x6f, 0x62, 0x47, 0x50, 0x4e, 0x30, 0x38, 0x56, 0x46, 0x77, 0x31, 0x2b, 0x44, 0x72, 0x74, 0x55, 0x67, 0x78, 0x48, 0x56, 0x38, 0x67, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x45, 0x47, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x0a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x45, 0x42, 0x41, 0x43, 0x6f, 0x2f, 0x34, 0x66, 0x45, 0x79, 0x6a, 0x71, 0x37, 0x68, 0x6d, 0x46, 0x78, 0x4c, 0x58, 0x73, 0x39, 0x72, 0x48, 0x6d, 0x6f, 0x4a, 0x30, 0x69, 0x4b, 0x70, 0x45, 0x73, 0x64, 0x65, 0x56, 0x33, 0x31, 0x7a, 0x56, 0x6d, 0x53, 0x41, 0x68, 0x48, 0x71, 0x54, 0x35, 0x41, 0x6d, 0x35, 0x45, 0x4d, 0x32, 0x66, 0x4b, 0x69, 0x66, 0x68, 0x0a, 0x41, 0x48, 0x65, 0x2b, 0x53, 0x4d, 0x67, 0x31, 0x71, 0x49, 0x47, 0x66, 0x35, 0x4c, 0x67, 0x73, 0x79, 0x58, 0x38, 0x4f, 0x73, 0x4e, 0x4a, 0x4c, 0x4e, 0x31, 0x33, 0x71, 0x75, 0x64, 0x55, 0x4c, 0x58, 0x6a, 0x53, 0x39, 0x39, 0x48, 0x4d, 0x70, 0x77, 0x2b, 0x30, 0x6d, 0x46, 0x5a, 0x78, 0x2b, 0x43, 0x46, 0x4f, 0x4b, 0x57, 0x49, 0x33, 0x51, 0x53, 0x79, 0x6a, 0x66, 0x77, 0x62, 0x50, 0x66, 0x49, 0x50, 0x50, 0x35, 0x34, 0x2b, 0x4d, 0x36, 0x33, 0x38, 0x79, 0x63, 0x0a, 0x6c, 0x4e, 0x68, 0x4f, 0x54, 0x38, 0x4e, 0x72, 0x46, 0x37, 0x66, 0x33, 0x63, 0x75, 0x69, 0x74, 0x5a, 0x6a, 0x4f, 0x31, 0x4a, 0x56, 0x4f, 0x72, 0x34, 0x50, 0x68, 0x4d, 0x71, 0x5a, 0x33, 0x39, 0x38, 0x67, 0x32, 0x36, 0x72, 0x72, 0x6e, 0x5a, 0x71, 0x73, 0x5a, 0x72, 0x2b, 0x5a, 0x4f, 0x37, 0x72, 0x71, 0x75, 0x34, 0x6c, 0x7a, 0x77, 0x44, 0x47, 0x72, 0x70, 0x44, 0x78, 0x70, 0x61, 0x35, 0x52, 0x58, 0x49, 0x34, 0x73, 0x36, 0x65, 0x68, 0x6c, 0x6a, 0x32, 0x52, 0x0a, 0x65, 0x33, 0x37, 0x41, 0x49, 0x56, 0x4e, 0x4d, 0x68, 0x2b, 0x33, 0x79, 0x43, 0x31, 0x53, 0x56, 0x55, 0x5a, 0x50, 0x56, 0x49, 0x71, 0x55, 0x4e, 0x69, 0x76, 0x47, 0x54, 0x44, 0x6a, 0x35, 0x55, 0x44, 0x72, 0x44, 0x59, 0x79, 0x55, 0x37, 0x63, 0x38, 0x6a, 0x45, 0x79, 0x56, 0x75, 0x70, 0x6b, 0x2b, 0x65, 0x71, 0x31, 0x6e, 0x52, 0x5a, 0x6d, 0x51, 0x6e, 0x4c, 0x7a, 0x66, 0x39, 0x4f, 0x78, 0x4d, 0x55, 0x50, 0x38, 0x70, 0x49, 0x34, 0x58, 0x38, 0x57, 0x30, 0x6a, 0x0a, 0x71, 0x35, 0x52, 0x6d, 0x2b, 0x4b, 0x33, 0x37, 0x44, 0x77, 0x68, 0x75, 0x4a, 0x69, 0x31, 0x2f, 0x46, 0x77, 0x63, 0x4a, 0x73, 0x6f, 0x7a, 0x37, 0x55, 0x4d, 0x43, 0x66, 0x6c, 0x6f, 0x33, 0x50, 0x74, 0x76, 0x30, 0x41, 0x6e, 0x56, 0x6f, 0x55, 0x6d, 0x72, 0x38, 0x43, 0x52, 0x50, 0x58, 0x42, 0x77, 0x70, 0x38, 0x69, 0x58, 0x71, 0x49, 0x50, 0x6f, 0x65, 0x4d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x47, 0x44, 0x43, 0x41, 0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x41, 0x55, 0x54, 0x48, 0x20, 0x52, 0x35, 0x20, 0x52, 0x4f, 0x4f, 0x54, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x69, 0x44, 0x43, 0x43, 0x41, 0x33, 0x43, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x49, 0x66, 0x51, 0x6d, 0x58, 0x2f, 0x76, 0x42, 0x48, 0x36, 0x6e, 0x6f, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x77, 0x59, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x51, 0x30, 0x34, 0x78, 0x4d, 0x6a, 0x41, 0x77, 0x0a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x4b, 0x55, 0x64, 0x56, 0x51, 0x55, 0x35, 0x48, 0x49, 0x45, 0x52, 0x50, 0x54, 0x6b, 0x63, 0x67, 0x51, 0x30, 0x56, 0x53, 0x56, 0x45, 0x6c, 0x47, 0x53, 0x55, 0x4e, 0x42, 0x56, 0x45, 0x55, 0x67, 0x51, 0x56, 0x56, 0x55, 0x53, 0x45, 0x39, 0x53, 0x53, 0x56, 0x52, 0x5a, 0x49, 0x45, 0x4e, 0x50, 0x4c, 0x69, 0x78, 0x4d, 0x56, 0x45, 0x51, 0x75, 0x4d, 0x52, 0x38, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x0a, 0x44, 0x42, 0x5a, 0x48, 0x52, 0x45, 0x4e, 0x42, 0x49, 0x46, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x51, 0x56, 0x56, 0x55, 0x53, 0x43, 0x42, 0x53, 0x4e, 0x53, 0x42, 0x53, 0x54, 0x30, 0x39, 0x55, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x45, 0x30, 0x4d, 0x54, 0x45, 0x79, 0x4e, 0x6a, 0x41, 0x31, 0x4d, 0x54, 0x4d, 0x78, 0x4e, 0x56, 0x6f, 0x58, 0x44, 0x54, 0x51, 0x77, 0x4d, 0x54, 0x49, 0x7a, 0x4d, 0x54, 0x45, 0x31, 0x4e, 0x54, 0x6b, 0x31, 0x4f, 0x56, 0x6f, 0x77, 0x0a, 0x59, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x51, 0x30, 0x34, 0x78, 0x4d, 0x6a, 0x41, 0x77, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x4b, 0x55, 0x64, 0x56, 0x51, 0x55, 0x35, 0x48, 0x49, 0x45, 0x52, 0x50, 0x54, 0x6b, 0x63, 0x67, 0x51, 0x30, 0x56, 0x53, 0x56, 0x45, 0x6c, 0x47, 0x53, 0x55, 0x4e, 0x42, 0x56, 0x45, 0x55, 0x67, 0x51, 0x56, 0x56, 0x55, 0x53, 0x45, 0x39, 0x53, 0x53, 0x56, 0x52, 0x5a, 0x0a, 0x49, 0x45, 0x4e, 0x50, 0x4c, 0x69, 0x78, 0x4d, 0x56, 0x45, 0x51, 0x75, 0x4d, 0x52, 0x38, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x44, 0x42, 0x5a, 0x48, 0x52, 0x45, 0x4e, 0x42, 0x49, 0x46, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x51, 0x56, 0x56, 0x55, 0x53, 0x43, 0x42, 0x53, 0x4e, 0x53, 0x42, 0x53, 0x54, 0x30, 0x39, 0x55, 0x4d, 0x49, 0x49, 0x43, 0x49, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x0a, 0x41, 0x51, 0x45, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x38, 0x41, 0x4d, 0x49, 0x49, 0x43, 0x43, 0x67, 0x4b, 0x43, 0x41, 0x67, 0x45, 0x41, 0x32, 0x61, 0x4d, 0x57, 0x38, 0x4d, 0x68, 0x30, 0x64, 0x48, 0x65, 0x62, 0x37, 0x7a, 0x4d, 0x4e, 0x4f, 0x77, 0x5a, 0x2b, 0x56, 0x66, 0x79, 0x31, 0x59, 0x49, 0x39, 0x32, 0x68, 0x68, 0x4a, 0x43, 0x66, 0x56, 0x5a, 0x6d, 0x50, 0x6f, 0x69, 0x43, 0x37, 0x58, 0x4a, 0x6a, 0x44, 0x70, 0x36, 0x4c, 0x33, 0x54, 0x51, 0x73, 0x0a, 0x41, 0x6c, 0x46, 0x52, 0x77, 0x78, 0x6e, 0x39, 0x57, 0x56, 0x53, 0x45, 0x79, 0x66, 0x46, 0x72, 0x73, 0x30, 0x79, 0x77, 0x36, 0x65, 0x68, 0x47, 0x58, 0x54, 0x6a, 0x47, 0x6f, 0x71, 0x63, 0x75, 0x45, 0x56, 0x65, 0x36, 0x67, 0x68, 0x57, 0x69, 0x6e, 0x49, 0x39, 0x74, 0x73, 0x4a, 0x6c, 0x4b, 0x43, 0x76, 0x4c, 0x72, 0x69, 0x58, 0x42, 0x6a, 0x54, 0x6e, 0x6e, 0x45, 0x74, 0x31, 0x75, 0x39, 0x6f, 0x6c, 0x32, 0x78, 0x38, 0x6b, 0x45, 0x43, 0x4b, 0x36, 0x32, 0x70, 0x0a, 0x4f, 0x71, 0x50, 0x73, 0x65, 0x51, 0x72, 0x73, 0x58, 0x7a, 0x72, 0x6a, 0x2f, 0x65, 0x2b, 0x41, 0x50, 0x4b, 0x30, 0x30, 0x6d, 0x78, 0x71, 0x72, 0x69, 0x43, 0x5a, 0x37, 0x56, 0x71, 0x4b, 0x43, 0x68, 0x68, 0x2f, 0x72, 0x4e, 0x59, 0x6d, 0x44, 0x66, 0x31, 0x2b, 0x75, 0x4b, 0x55, 0x34, 0x39, 0x74, 0x6d, 0x37, 0x73, 0x72, 0x73, 0x48, 0x77, 0x4a, 0x35, 0x75, 0x75, 0x34, 0x2f, 0x54, 0x73, 0x37, 0x36, 0x35, 0x2f, 0x39, 0x34, 0x59, 0x39, 0x63, 0x6e, 0x72, 0x72, 0x0a, 0x70, 0x66, 0x74, 0x5a, 0x54, 0x71, 0x66, 0x72, 0x6c, 0x59, 0x77, 0x69, 0x4f, 0x58, 0x6e, 0x68, 0x4c, 0x51, 0x69, 0x50, 0x7a, 0x4c, 0x79, 0x52, 0x75, 0x45, 0x48, 0x33, 0x46, 0x4d, 0x45, 0x6a, 0x71, 0x63, 0x4f, 0x74, 0x6d, 0x6b, 0x56, 0x45, 0x73, 0x37, 0x4c, 0x58, 0x4c, 0x4d, 0x33, 0x47, 0x4b, 0x65, 0x4a, 0x51, 0x45, 0x4b, 0x35, 0x63, 0x79, 0x34, 0x4b, 0x4f, 0x46, 0x78, 0x67, 0x32, 0x66, 0x5a, 0x66, 0x6d, 0x69, 0x4a, 0x71, 0x77, 0x54, 0x54, 0x51, 0x4a, 0x0a, 0x39, 0x43, 0x79, 0x35, 0x57, 0x6d, 0x59, 0x71, 0x73, 0x42, 0x65, 0x62, 0x6e, 0x68, 0x35, 0x32, 0x6e, 0x55, 0x70, 0x6d, 0x4d, 0x55, 0x48, 0x66, 0x50, 0x2f, 0x76, 0x46, 0x42, 0x75, 0x38, 0x62, 0x74, 0x6e, 0x34, 0x61, 0x52, 0x6a, 0x62, 0x33, 0x5a, 0x47, 0x4d, 0x37, 0x34, 0x7a, 0x6b, 0x59, 0x49, 0x2b, 0x64, 0x6e, 0x64, 0x52, 0x54, 0x56, 0x64, 0x56, 0x65, 0x53, 0x4e, 0x37, 0x32, 0x2b, 0x61, 0x68, 0x73, 0x6d, 0x55, 0x50, 0x49, 0x32, 0x4a, 0x67, 0x61, 0x51, 0x0a, 0x78, 0x58, 0x41, 0x42, 0x5a, 0x47, 0x31, 0x32, 0x5a, 0x75, 0x47, 0x52, 0x32, 0x32, 0x34, 0x48, 0x77, 0x47, 0x47, 0x41, 0x4c, 0x72, 0x49, 0x75, 0x4c, 0x34, 0x78, 0x77, 0x70, 0x39, 0x45, 0x37, 0x50, 0x4c, 0x4f, 0x52, 0x35, 0x47, 0x36, 0x32, 0x78, 0x44, 0x74, 0x77, 0x38, 0x6d, 0x79, 0x53, 0x6c, 0x77, 0x6e, 0x4e, 0x52, 0x33, 0x30, 0x59, 0x77, 0x50, 0x4f, 0x37, 0x6e, 0x67, 0x2f, 0x57, 0x69, 0x36, 0x34, 0x48, 0x74, 0x6c, 0x6f, 0x50, 0x7a, 0x67, 0x73, 0x4d, 0x0a, 0x52, 0x36, 0x66, 0x6c, 0x50, 0x72, 0x69, 0x39, 0x66, 0x63, 0x65, 0x62, 0x4e, 0x61, 0x42, 0x68, 0x6c, 0x7a, 0x70, 0x42, 0x64, 0x52, 0x66, 0x4d, 0x4b, 0x35, 0x5a, 0x33, 0x4b, 0x70, 0x49, 0x68, 0x48, 0x74, 0x6d, 0x56, 0x64, 0x69, 0x42, 0x6e, 0x61, 0x4d, 0x38, 0x4e, 0x76, 0x64, 0x2f, 0x57, 0x48, 0x77, 0x6c, 0x71, 0x6d, 0x75, 0x4c, 0x4d, 0x63, 0x33, 0x47, 0x6b, 0x4c, 0x33, 0x30, 0x53, 0x67, 0x4c, 0x64, 0x54, 0x4d, 0x45, 0x5a, 0x65, 0x53, 0x31, 0x53, 0x5a, 0x0a, 0x44, 0x32, 0x66, 0x4a, 0x70, 0x63, 0x6a, 0x79, 0x49, 0x4d, 0x47, 0x43, 0x37, 0x4a, 0x30, 0x52, 0x33, 0x38, 0x49, 0x43, 0x2b, 0x78, 0x6f, 0x37, 0x30, 0x65, 0x30, 0x67, 0x6d, 0x75, 0x39, 0x6c, 0x5a, 0x4a, 0x49, 0x51, 0x44, 0x53, 0x72, 0x69, 0x33, 0x6e, 0x44, 0x78, 0x47, 0x47, 0x65, 0x43, 0x6a, 0x47, 0x48, 0x65, 0x75, 0x4c, 0x7a, 0x52, 0x4c, 0x35, 0x7a, 0x37, 0x44, 0x39, 0x41, 0x72, 0x37, 0x52, 0x74, 0x32, 0x75, 0x65, 0x51, 0x35, 0x56, 0x66, 0x6a, 0x34, 0x0a, 0x6f, 0x52, 0x32, 0x34, 0x71, 0x6f, 0x41, 0x41, 0x54, 0x49, 0x4c, 0x6e, 0x73, 0x6e, 0x38, 0x4a, 0x75, 0x4c, 0x77, 0x77, 0x6f, 0x43, 0x38, 0x4e, 0x39, 0x56, 0x4b, 0x65, 0x6a, 0x76, 0x65, 0x53, 0x73, 0x77, 0x6f, 0x41, 0x48, 0x51, 0x42, 0x55, 0x6c, 0x77, 0x62, 0x67, 0x73, 0x51, 0x66, 0x5a, 0x78, 0x77, 0x39, 0x63, 0x5a, 0x58, 0x30, 0x38, 0x62, 0x56, 0x6c, 0x58, 0x35, 0x4f, 0x32, 0x6c, 0x6a, 0x65, 0x6c, 0x41, 0x55, 0x35, 0x38, 0x56, 0x53, 0x36, 0x42, 0x78, 0x0a, 0x39, 0x68, 0x6f, 0x68, 0x34, 0x39, 0x70, 0x77, 0x42, 0x69, 0x46, 0x59, 0x46, 0x49, 0x65, 0x46, 0x64, 0x33, 0x6d, 0x71, 0x67, 0x6e, 0x6b, 0x43, 0x41, 0x77, 0x45, 0x41, 0x41, 0x61, 0x4e, 0x43, 0x4d, 0x45, 0x41, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x4f, 0x4c, 0x4a, 0x51, 0x4a, 0x39, 0x4e, 0x7a, 0x75, 0x69, 0x61, 0x6f, 0x58, 0x7a, 0x50, 0x44, 0x6a, 0x39, 0x6c, 0x78, 0x53, 0x6d, 0x49, 0x61, 0x68, 0x6c, 0x52, 0x0a, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x47, 0x47, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x43, 0x77, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x41, 0x51, 0x44, 0x52, 0x53, 0x56, 0x66, 0x67, 0x0a, 0x70, 0x38, 0x78, 0x6f, 0x57, 0x4c, 0x6f, 0x42, 0x44, 0x79, 0x73, 0x5a, 0x7a, 0x59, 0x32, 0x77, 0x59, 0x55, 0x57, 0x73, 0x45, 0x65, 0x31, 0x6a, 0x55, 0x47, 0x6e, 0x34, 0x48, 0x33, 0x2b, 0x2b, 0x46, 0x6f, 0x2f, 0x39, 0x6e, 0x65, 0x73, 0x4c, 0x71, 0x6a, 0x4a, 0x48, 0x64, 0x74, 0x4a, 0x6e, 0x4a, 0x4f, 0x32, 0x39, 0x66, 0x44, 0x4d, 0x79, 0x6c, 0x79, 0x72, 0x48, 0x42, 0x59, 0x5a, 0x6d, 0x44, 0x52, 0x64, 0x39, 0x46, 0x42, 0x55, 0x62, 0x31, 0x4f, 0x76, 0x39, 0x0a, 0x48, 0x35, 0x72, 0x32, 0x58, 0x70, 0x64, 0x70, 0x74, 0x78, 0x6f, 0x6c, 0x70, 0x41, 0x71, 0x7a, 0x6b, 0x54, 0x39, 0x66, 0x4e, 0x71, 0x79, 0x4c, 0x37, 0x46, 0x65, 0x6f, 0x50, 0x75, 0x65, 0x42, 0x69, 0x68, 0x68, 0x58, 0x4f, 0x59, 0x56, 0x30, 0x47, 0x6b, 0x4c, 0x48, 0x36, 0x56, 0x73, 0x54, 0x58, 0x34, 0x2f, 0x35, 0x43, 0x4f, 0x6d, 0x53, 0x64, 0x49, 0x33, 0x31, 0x52, 0x39, 0x4b, 0x72, 0x4f, 0x39, 0x62, 0x37, 0x65, 0x47, 0x5a, 0x4f, 0x4e, 0x6e, 0x33, 0x35, 0x0a, 0x36, 0x5a, 0x4c, 0x70, 0x42, 0x4e, 0x37, 0x39, 0x53, 0x57, 0x50, 0x38, 0x62, 0x66, 0x73, 0x55, 0x63, 0x5a, 0x4e, 0x6e, 0x4c, 0x30, 0x64, 0x4b, 0x74, 0x37, 0x6e, 0x2f, 0x48, 0x69, 0x70, 0x7a, 0x63, 0x45, 0x59, 0x77, 0x76, 0x31, 0x72, 0x79, 0x4c, 0x33, 0x6d, 0x6c, 0x34, 0x59, 0x30, 0x4d, 0x32, 0x66, 0x6d, 0x79, 0x59, 0x7a, 0x65, 0x4d, 0x4e, 0x32, 0x57, 0x46, 0x63, 0x47, 0x70, 0x63, 0x57, 0x77, 0x6c, 0x79, 0x75, 0x61, 0x31, 0x6a, 0x50, 0x4c, 0x48, 0x64, 0x0a, 0x2b, 0x50, 0x77, 0x79, 0x76, 0x7a, 0x65, 0x47, 0x35, 0x4c, 0x75, 0x4f, 0x6d, 0x43, 0x64, 0x2b, 0x75, 0x68, 0x38, 0x57, 0x34, 0x58, 0x41, 0x52, 0x38, 0x67, 0x50, 0x66, 0x4a, 0x57, 0x49, 0x79, 0x4a, 0x79, 0x59, 0x59, 0x4d, 0x6f, 0x53, 0x66, 0x2f, 0x77, 0x41, 0x36, 0x45, 0x37, 0x71, 0x61, 0x54, 0x66, 0x52, 0x50, 0x75, 0x42, 0x52, 0x77, 0x49, 0x72, 0x48, 0x4b, 0x4b, 0x35, 0x44, 0x4f, 0x4b, 0x63, 0x46, 0x77, 0x39, 0x43, 0x2b, 0x64, 0x66, 0x2f, 0x4b, 0x51, 0x0a, 0x48, 0x74, 0x5a, 0x61, 0x33, 0x37, 0x64, 0x47, 0x2f, 0x4f, 0x61, 0x47, 0x2b, 0x73, 0x76, 0x67, 0x49, 0x48, 0x5a, 0x36, 0x75, 0x71, 0x62, 0x4c, 0x39, 0x58, 0x7a, 0x65, 0x59, 0x71, 0x57, 0x78, 0x69, 0x2b, 0x37, 0x65, 0x67, 0x6d, 0x61, 0x4b, 0x54, 0x6a, 0x6f, 0x77, 0x48, 0x7a, 0x2b, 0x41, 0x79, 0x36, 0x30, 0x6e, 0x75, 0x67, 0x78, 0x65, 0x31, 0x39, 0x43, 0x78, 0x56, 0x73, 0x70, 0x33, 0x63, 0x62, 0x4b, 0x31, 0x64, 0x61, 0x46, 0x51, 0x71, 0x55, 0x42, 0x44, 0x0a, 0x46, 0x38, 0x49, 0x6f, 0x32, 0x63, 0x39, 0x53, 0x69, 0x31, 0x76, 0x49, 0x59, 0x39, 0x52, 0x43, 0x50, 0x71, 0x41, 0x7a, 0x65, 0x6b, 0x59, 0x75, 0x39, 0x77, 0x6f, 0x67, 0x52, 0x6c, 0x52, 0x2b, 0x61, 0x6b, 0x38, 0x78, 0x38, 0x59, 0x46, 0x2b, 0x51, 0x6e, 0x51, 0x34, 0x5a, 0x58, 0x4d, 0x6e, 0x37, 0x73, 0x5a, 0x38, 0x75, 0x49, 0x37, 0x58, 0x70, 0x54, 0x72, 0x58, 0x6d, 0x4b, 0x47, 0x63, 0x6a, 0x42, 0x42, 0x56, 0x30, 0x39, 0x74, 0x4c, 0x37, 0x45, 0x43, 0x51, 0x0a, 0x38, 0x73, 0x31, 0x75, 0x56, 0x39, 0x4a, 0x69, 0x44, 0x6e, 0x78, 0x58, 0x6b, 0x37, 0x47, 0x6e, 0x62, 0x63, 0x32, 0x64, 0x67, 0x37, 0x73, 0x71, 0x35, 0x2b, 0x57, 0x32, 0x4f, 0x33, 0x46, 0x59, 0x72, 0x66, 0x33, 0x52, 0x52, 0x62, 0x78, 0x61, 0x6b, 0x65, 0x35, 0x54, 0x46, 0x57, 0x2f, 0x54, 0x52, 0x51, 0x6c, 0x31, 0x62, 0x72, 0x71, 0x51, 0x58, 0x52, 0x34, 0x45, 0x7a, 0x7a, 0x66, 0x66, 0x48, 0x71, 0x68, 0x6d, 0x73, 0x59, 0x7a, 0x6d, 0x49, 0x47, 0x72, 0x76, 0x0a, 0x2f, 0x45, 0x68, 0x4f, 0x64, 0x4a, 0x68, 0x43, 0x72, 0x79, 0x6c, 0x76, 0x4c, 0x6d, 0x72, 0x48, 0x2b, 0x33, 0x33, 0x52, 0x5a, 0x6a, 0x45, 0x69, 0x7a, 0x49, 0x59, 0x41, 0x66, 0x6d, 0x61, 0x44, 0x44, 0x45, 0x4c, 0x30, 0x76, 0x54, 0x53, 0x53, 0x77, 0x78, 0x72, 0x71, 0x54, 0x38, 0x70, 0x2b, 0x63, 0x6b, 0x30, 0x4c, 0x63, 0x49, 0x79, 0x6d, 0x53, 0x4c, 0x75, 0x6d, 0x6f, 0x52, 0x54, 0x32, 0x2b, 0x31, 0x68, 0x45, 0x6d, 0x52, 0x53, 0x75, 0x71, 0x67, 0x75, 0x54, 0x0a, 0x61, 0x61, 0x41, 0x70, 0x4a, 0x55, 0x71, 0x6c, 0x79, 0x79, 0x76, 0x64, 0x69, 0x6d, 0x59, 0x48, 0x46, 0x6e, 0x67, 0x56, 0x56, 0x33, 0x45, 0x62, 0x37, 0x50, 0x56, 0x48, 0x68, 0x50, 0x4f, 0x65, 0x4d, 0x54, 0x64, 0x36, 0x31, 0x58, 0x38, 0x6b, 0x72, 0x65, 0x53, 0x38, 0x2f, 0x66, 0x33, 0x4d, 0x62, 0x6f, 0x50, 0x6f, 0x44, 0x4b, 0x69, 0x33, 0x51, 0x57, 0x77, 0x48, 0x33, 0x62, 0x30, 0x38, 0x68, 0x70, 0x63, 0x76, 0x30, 0x67, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x53, 0x53, 0x4c, 0x2e, 0x63, 0x6f, 0x6d, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x52, 0x53, 0x41, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x33, 0x54, 0x43, 0x43, 0x41, 0x38, 0x57, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x49, 0x65, 0x79, 0x79, 0x62, 0x30, 0x78, 0x61, 0x41, 0x4d, 0x70, 0x6b, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x77, 0x66, 0x44, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x44, 0x6a, 0x41, 0x4d, 0x0a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x67, 0x4d, 0x42, 0x56, 0x52, 0x6c, 0x65, 0x47, 0x46, 0x7a, 0x4d, 0x52, 0x41, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x48, 0x44, 0x41, 0x64, 0x49, 0x62, 0x33, 0x56, 0x7a, 0x64, 0x47, 0x39, 0x75, 0x4d, 0x52, 0x67, 0x77, 0x46, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x41, 0x39, 0x54, 0x55, 0x30, 0x77, 0x67, 0x51, 0x32, 0x39, 0x79, 0x63, 0x47, 0x39, 0x79, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x34, 0x78, 0x0a, 0x4d, 0x54, 0x41, 0x76, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x4b, 0x46, 0x4e, 0x54, 0x54, 0x43, 0x35, 0x6a, 0x62, 0x32, 0x30, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x61, 0x57, 0x5a, 0x70, 0x59, 0x32, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x49, 0x45, 0x46, 0x31, 0x64, 0x47, 0x68, 0x76, 0x63, 0x6d, 0x6c, 0x30, 0x65, 0x53, 0x42, 0x53, 0x55, 0x30, 0x45, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x54, 0x59, 0x77, 0x0a, 0x4d, 0x6a, 0x45, 0x79, 0x4d, 0x54, 0x63, 0x7a, 0x4f, 0x54, 0x4d, 0x35, 0x57, 0x68, 0x63, 0x4e, 0x4e, 0x44, 0x45, 0x77, 0x4d, 0x6a, 0x45, 0x79, 0x4d, 0x54, 0x63, 0x7a, 0x4f, 0x54, 0x4d, 0x35, 0x57, 0x6a, 0x42, 0x38, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x4f, 0x4d, 0x41, 0x77, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x41, 0x77, 0x46, 0x56, 0x47, 0x56, 0x34, 0x59, 0x58, 0x4d, 0x78, 0x0a, 0x45, 0x44, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x63, 0x4d, 0x42, 0x30, 0x68, 0x76, 0x64, 0x58, 0x4e, 0x30, 0x62, 0x32, 0x34, 0x78, 0x47, 0x44, 0x41, 0x57, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x44, 0x31, 0x4e, 0x54, 0x54, 0x43, 0x42, 0x44, 0x62, 0x33, 0x4a, 0x77, 0x62, 0x33, 0x4a, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x6a, 0x45, 0x78, 0x4d, 0x43, 0x38, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x77, 0x77, 0x6f, 0x55, 0x31, 0x4e, 0x4d, 0x0a, 0x4c, 0x6d, 0x4e, 0x76, 0x62, 0x53, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x70, 0x5a, 0x6d, 0x6c, 0x6a, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x34, 0x67, 0x51, 0x58, 0x56, 0x30, 0x61, 0x47, 0x39, 0x79, 0x61, 0x58, 0x52, 0x35, 0x49, 0x46, 0x4a, 0x54, 0x51, 0x54, 0x43, 0x43, 0x41, 0x69, 0x49, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x0a, 0x67, 0x67, 0x49, 0x50, 0x41, 0x44, 0x43, 0x43, 0x41, 0x67, 0x6f, 0x43, 0x67, 0x67, 0x49, 0x42, 0x41, 0x50, 0x6b, 0x50, 0x33, 0x61, 0x4d, 0x72, 0x66, 0x63, 0x76, 0x51, 0x4b, 0x76, 0x37, 0x73, 0x5a, 0x34, 0x57, 0x6d, 0x35, 0x79, 0x34, 0x62, 0x75, 0x6e, 0x66, 0x68, 0x34, 0x2f, 0x57, 0x76, 0x70, 0x4f, 0x7a, 0x36, 0x53, 0x6c, 0x32, 0x52, 0x78, 0x46, 0x64, 0x48, 0x61, 0x78, 0x68, 0x33, 0x61, 0x33, 0x62, 0x79, 0x2f, 0x5a, 0x50, 0x6b, 0x50, 0x51, 0x2f, 0x43, 0x0a, 0x46, 0x70, 0x34, 0x4c, 0x5a, 0x73, 0x4e, 0x57, 0x6c, 0x4a, 0x34, 0x58, 0x67, 0x34, 0x58, 0x4f, 0x56, 0x75, 0x2f, 0x79, 0x46, 0x76, 0x30, 0x41, 0x59, 0x76, 0x55, 0x69, 0x43, 0x56, 0x54, 0x6f, 0x5a, 0x52, 0x64, 0x4f, 0x51, 0x62, 0x6e, 0x67, 0x54, 0x30, 0x61, 0x58, 0x71, 0x68, 0x76, 0x49, 0x75, 0x47, 0x35, 0x69, 0x58, 0x6d, 0x6d, 0x78, 0x58, 0x39, 0x73, 0x71, 0x41, 0x6e, 0x37, 0x38, 0x62, 0x4d, 0x72, 0x7a, 0x51, 0x64, 0x6a, 0x74, 0x30, 0x4f, 0x6a, 0x38, 0x0a, 0x50, 0x32, 0x46, 0x49, 0x37, 0x62, 0x41, 0x44, 0x46, 0x42, 0x30, 0x51, 0x44, 0x6b, 0x73, 0x5a, 0x34, 0x4c, 0x74, 0x4f, 0x37, 0x49, 0x5a, 0x6c, 0x2f, 0x7a, 0x62, 0x7a, 0x58, 0x6d, 0x63, 0x43, 0x43, 0x35, 0x32, 0x47, 0x56, 0x57, 0x48, 0x39, 0x65, 0x6a, 0x6a, 0x74, 0x2f, 0x75, 0x49, 0x5a, 0x41, 0x4c, 0x64, 0x76, 0x6f, 0x56, 0x42, 0x69, 0x64, 0x58, 0x51, 0x38, 0x6f, 0x50, 0x72, 0x49, 0x4a, 0x5a, 0x4b, 0x30, 0x62, 0x6e, 0x6f, 0x69, 0x78, 0x2f, 0x67, 0x65, 0x0a, 0x6f, 0x65, 0x4f, 0x79, 0x33, 0x5a, 0x45, 0x78, 0x71, 0x79, 0x73, 0x64, 0x42, 0x50, 0x2b, 0x6c, 0x53, 0x67, 0x51, 0x33, 0x36, 0x59, 0x57, 0x6b, 0x4d, 0x79, 0x76, 0x39, 0x34, 0x74, 0x5a, 0x56, 0x4e, 0x48, 0x77, 0x5a, 0x70, 0x45, 0x70, 0x6f, 0x78, 0x37, 0x4b, 0x6f, 0x30, 0x37, 0x66, 0x4b, 0x6f, 0x5a, 0x4f, 0x49, 0x36, 0x38, 0x47, 0x58, 0x76, 0x49, 0x7a, 0x35, 0x48, 0x64, 0x6b, 0x69, 0x68, 0x43, 0x52, 0x30, 0x78, 0x77, 0x51, 0x39, 0x61, 0x71, 0x6b, 0x70, 0x0a, 0x6b, 0x38, 0x7a, 0x72, 0x75, 0x46, 0x76, 0x68, 0x2f, 0x6c, 0x38, 0x6c, 0x71, 0x6a, 0x52, 0x59, 0x79, 0x4d, 0x45, 0x6a, 0x56, 0x4a, 0x30, 0x62, 0x6d, 0x42, 0x48, 0x44, 0x4f, 0x4a, 0x78, 0x2b, 0x50, 0x59, 0x5a, 0x73, 0x70, 0x51, 0x39, 0x41, 0x68, 0x6e, 0x77, 0x43, 0x39, 0x46, 0x77, 0x43, 0x54, 0x79, 0x6a, 0x4c, 0x72, 0x6e, 0x47, 0x66, 0x44, 0x7a, 0x72, 0x49, 0x4d, 0x2f, 0x34, 0x52, 0x4a, 0x54, 0x58, 0x71, 0x2f, 0x4c, 0x72, 0x46, 0x59, 0x44, 0x33, 0x5a, 0x0a, 0x66, 0x42, 0x6a, 0x56, 0x73, 0x71, 0x6e, 0x54, 0x64, 0x58, 0x67, 0x44, 0x63, 0x69, 0x4c, 0x4b, 0x4f, 0x73, 0x4d, 0x66, 0x37, 0x79, 0x7a, 0x6c, 0x4c, 0x71, 0x6e, 0x36, 0x6e, 0x69, 0x79, 0x32, 0x55, 0x55, 0x62, 0x39, 0x72, 0x77, 0x50, 0x57, 0x36, 0x6d, 0x42, 0x6f, 0x36, 0x6f, 0x55, 0x57, 0x4e, 0x6d, 0x75, 0x46, 0x36, 0x52, 0x37, 0x41, 0x73, 0x39, 0x33, 0x45, 0x4a, 0x4e, 0x79, 0x41, 0x4b, 0x6f, 0x46, 0x42, 0x62, 0x5a, 0x51, 0x2b, 0x79, 0x4f, 0x44, 0x4a, 0x0a, 0x67, 0x55, 0x45, 0x41, 0x6e, 0x6c, 0x36, 0x2f, 0x66, 0x38, 0x55, 0x49, 0x6d, 0x4b, 0x49, 0x59, 0x4c, 0x45, 0x4a, 0x41, 0x73, 0x2f, 0x6c, 0x76, 0x4f, 0x43, 0x64, 0x4c, 0x54, 0x6f, 0x44, 0x30, 0x50, 0x59, 0x46, 0x48, 0x34, 0x49, 0x68, 0x38, 0x36, 0x68, 0x7a, 0x4f, 0x74, 0x58, 0x56, 0x63, 0x55, 0x53, 0x34, 0x63, 0x4b, 0x33, 0x38, 0x61, 0x63, 0x69, 0x6a, 0x6e, 0x41, 0x4c, 0x58, 0x52, 0x64, 0x4d, 0x62, 0x58, 0x35, 0x4a, 0x2b, 0x74, 0x42, 0x35, 0x4f, 0x32, 0x0a, 0x55, 0x7a, 0x55, 0x31, 0x2f, 0x44, 0x66, 0x6b, 0x77, 0x2f, 0x5a, 0x64, 0x46, 0x72, 0x34, 0x68, 0x63, 0x39, 0x36, 0x53, 0x43, 0x76, 0x69, 0x67, 0x59, 0x32, 0x71, 0x38, 0x6c, 0x70, 0x4a, 0x71, 0x50, 0x76, 0x69, 0x38, 0x5a, 0x56, 0x57, 0x62, 0x33, 0x76, 0x55, 0x4e, 0x69, 0x53, 0x59, 0x45, 0x2f, 0x43, 0x55, 0x61, 0x70, 0x69, 0x56, 0x70, 0x79, 0x38, 0x4a, 0x74, 0x79, 0x6e, 0x7a, 0x69, 0x57, 0x56, 0x2b, 0x58, 0x72, 0x4f, 0x76, 0x76, 0x4c, 0x73, 0x69, 0x38, 0x0a, 0x31, 0x78, 0x74, 0x5a, 0x50, 0x43, 0x76, 0x4d, 0x38, 0x68, 0x6e, 0x49, 0x6b, 0x32, 0x73, 0x6e, 0x59, 0x78, 0x6e, 0x50, 0x2f, 0x4f, 0x6b, 0x6d, 0x2b, 0x4d, 0x70, 0x78, 0x6d, 0x33, 0x2b, 0x54, 0x2f, 0x6a, 0x52, 0x6e, 0x68, 0x45, 0x36, 0x5a, 0x36, 0x2f, 0x79, 0x7a, 0x65, 0x41, 0x6b, 0x7a, 0x63, 0x4c, 0x70, 0x6d, 0x70, 0x6e, 0x62, 0x74, 0x47, 0x33, 0x50, 0x72, 0x47, 0x71, 0x55, 0x4e, 0x78, 0x43, 0x49, 0x54, 0x49, 0x4a, 0x52, 0x57, 0x43, 0x6b, 0x34, 0x73, 0x0a, 0x62, 0x45, 0x36, 0x78, 0x2f, 0x63, 0x2b, 0x63, 0x43, 0x62, 0x71, 0x69, 0x4d, 0x2b, 0x32, 0x48, 0x41, 0x67, 0x4d, 0x42, 0x41, 0x41, 0x47, 0x6a, 0x59, 0x7a, 0x42, 0x68, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x54, 0x64, 0x42, 0x41, 0x6b, 0x48, 0x6f, 0x76, 0x56, 0x36, 0x66, 0x56, 0x4a, 0x54, 0x45, 0x70, 0x4b, 0x56, 0x37, 0x6a, 0x69, 0x41, 0x4a, 0x51, 0x32, 0x6d, 0x57, 0x54, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x0a, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x42, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x49, 0x77, 0x51, 0x59, 0x4d, 0x42, 0x61, 0x41, 0x46, 0x4e, 0x30, 0x45, 0x43, 0x51, 0x65, 0x69, 0x39, 0x58, 0x70, 0x39, 0x55, 0x6c, 0x4d, 0x53, 0x6b, 0x70, 0x58, 0x75, 0x4f, 0x49, 0x41, 0x6c, 0x44, 0x61, 0x5a, 0x5a, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x0a, 0x41, 0x77, 0x49, 0x42, 0x68, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x45, 0x41, 0x49, 0x42, 0x67, 0x52, 0x6c, 0x43, 0x6e, 0x37, 0x4a, 0x70, 0x30, 0x63, 0x48, 0x68, 0x35, 0x77, 0x59, 0x66, 0x47, 0x56, 0x63, 0x70, 0x4e, 0x78, 0x4a, 0x4b, 0x31, 0x6f, 0x6b, 0x31, 0x69, 0x4f, 0x4d, 0x71, 0x38, 0x62, 0x73, 0x33, 0x41, 0x44, 0x2f, 0x43, 0x55, 0x72, 0x0a, 0x64, 0x49, 0x57, 0x51, 0x50, 0x58, 0x68, 0x71, 0x39, 0x4c, 0x6d, 0x4c, 0x70, 0x5a, 0x63, 0x37, 0x74, 0x52, 0x69, 0x52, 0x75, 0x78, 0x36, 0x6e, 0x2b, 0x55, 0x42, 0x62, 0x6b, 0x66, 0x6c, 0x56, 0x6d, 0x61, 0x38, 0x65, 0x45, 0x64, 0x42, 0x63, 0x48, 0x61, 0x64, 0x6d, 0x34, 0x37, 0x47, 0x55, 0x42, 0x77, 0x77, 0x79, 0x4f, 0x61, 0x62, 0x71, 0x47, 0x37, 0x42, 0x35, 0x32, 0x42, 0x32, 0x63, 0x63, 0x45, 0x54, 0x6a, 0x69, 0x74, 0x33, 0x45, 0x2b, 0x5a, 0x55, 0x66, 0x0a, 0x69, 0x6a, 0x68, 0x44, 0x50, 0x77, 0x47, 0x46, 0x70, 0x55, 0x65, 0x6e, 0x50, 0x55, 0x61, 0x79, 0x76, 0x4f, 0x55, 0x69, 0x61, 0x50, 0x64, 0x37, 0x6e, 0x4e, 0x67, 0x73, 0x50, 0x67, 0x6f, 0x68, 0x79, 0x43, 0x30, 0x7a, 0x72, 0x4c, 0x2f, 0x46, 0x67, 0x5a, 0x6b, 0x78, 0x64, 0x4d, 0x46, 0x31, 0x63, 0x63, 0x57, 0x2b, 0x73, 0x66, 0x41, 0x6a, 0x52, 0x66, 0x53, 0x64, 0x61, 0x2f, 0x77, 0x5a, 0x59, 0x35, 0x32, 0x6a, 0x76, 0x41, 0x54, 0x47, 0x47, 0x41, 0x73, 0x6c, 0x0a, 0x75, 0x31, 0x4f, 0x4a, 0x44, 0x37, 0x4f, 0x41, 0x55, 0x4e, 0x35, 0x46, 0x37, 0x6b, 0x52, 0x2f, 0x71, 0x35, 0x52, 0x34, 0x5a, 0x4a, 0x6a, 0x54, 0x39, 0x69, 0x6a, 0x64, 0x68, 0x39, 0x68, 0x77, 0x5a, 0x58, 0x54, 0x37, 0x44, 0x72, 0x6b, 0x54, 0x36, 0x36, 0x63, 0x50, 0x59, 0x61, 0x6b, 0x79, 0x6c, 0x73, 0x7a, 0x65, 0x75, 0x2b, 0x31, 0x6a, 0x54, 0x42, 0x69, 0x37, 0x71, 0x55, 0x44, 0x33, 0x6f, 0x46, 0x52, 0x75, 0x49, 0x49, 0x68, 0x78, 0x64, 0x52, 0x6a, 0x71, 0x0a, 0x65, 0x72, 0x51, 0x30, 0x63, 0x75, 0x41, 0x6a, 0x4a, 0x33, 0x64, 0x63, 0x74, 0x70, 0x44, 0x71, 0x68, 0x69, 0x56, 0x41, 0x71, 0x2b, 0x38, 0x7a, 0x44, 0x38, 0x75, 0x66, 0x67, 0x72, 0x36, 0x69, 0x49, 0x50, 0x76, 0x32, 0x74, 0x53, 0x30, 0x61, 0x35, 0x73, 0x4b, 0x46, 0x73, 0x58, 0x51, 0x50, 0x2b, 0x38, 0x68, 0x6c, 0x41, 0x71, 0x52, 0x53, 0x41, 0x55, 0x66, 0x64, 0x53, 0x53, 0x4c, 0x42, 0x76, 0x39, 0x6a, 0x72, 0x61, 0x36, 0x78, 0x2b, 0x33, 0x75, 0x78, 0x6a, 0x0a, 0x4d, 0x78, 0x57, 0x33, 0x49, 0x77, 0x69, 0x50, 0x78, 0x67, 0x2b, 0x4e, 0x51, 0x56, 0x72, 0x64, 0x6a, 0x73, 0x57, 0x35, 0x6a, 0x2b, 0x56, 0x46, 0x50, 0x33, 0x6a, 0x62, 0x75, 0x74, 0x49, 0x62, 0x51, 0x4c, 0x48, 0x2b, 0x63, 0x55, 0x30, 0x2f, 0x34, 0x49, 0x47, 0x69, 0x75, 0x6c, 0x36, 0x30, 0x37, 0x42, 0x58, 0x67, 0x6b, 0x39, 0x30, 0x49, 0x48, 0x33, 0x37, 0x68, 0x56, 0x5a, 0x6b, 0x4c, 0x49, 0x64, 0x36, 0x54, 0x6e, 0x67, 0x72, 0x37, 0x35, 0x71, 0x4e, 0x4a, 0x0a, 0x76, 0x54, 0x59, 0x77, 0x2f, 0x75, 0x64, 0x33, 0x73, 0x71, 0x42, 0x31, 0x6c, 0x37, 0x55, 0x74, 0x67, 0x59, 0x67, 0x58, 0x5a, 0x53, 0x44, 0x33, 0x32, 0x70, 0x41, 0x41, 0x6e, 0x38, 0x6c, 0x53, 0x7a, 0x44, 0x4c, 0x4b, 0x4e, 0x58, 0x7a, 0x31, 0x50, 0x51, 0x2f, 0x59, 0x4b, 0x39, 0x66, 0x31, 0x4a, 0x6d, 0x7a, 0x4a, 0x42, 0x6a, 0x53, 0x57, 0x46, 0x75, 0x70, 0x77, 0x57, 0x52, 0x6f, 0x79, 0x65, 0x58, 0x6b, 0x4c, 0x74, 0x6f, 0x68, 0x2f, 0x44, 0x31, 0x4a, 0x49, 0x0a, 0x50, 0x62, 0x39, 0x73, 0x32, 0x4b, 0x4a, 0x45, 0x4c, 0x74, 0x46, 0x4f, 0x74, 0x33, 0x4a, 0x59, 0x30, 0x34, 0x6b, 0x54, 0x6c, 0x66, 0x35, 0x45, 0x71, 0x2f, 0x6a, 0x58, 0x69, 0x78, 0x74, 0x75, 0x6e, 0x4c, 0x77, 0x73, 0x6f, 0x46, 0x76, 0x56, 0x61, 0x67, 0x43, 0x76, 0x58, 0x7a, 0x66, 0x68, 0x31, 0x66, 0x6f, 0x51, 0x43, 0x35, 0x69, 0x63, 0x68, 0x75, 0x63, 0x6d, 0x6a, 0x38, 0x37, 0x77, 0x37, 0x47, 0x36, 0x4b, 0x56, 0x77, 0x75, 0x41, 0x34, 0x30, 0x36, 0x79, 0x0a, 0x77, 0x4b, 0x42, 0x6a, 0x59, 0x5a, 0x43, 0x36, 0x56, 0x57, 0x67, 0x33, 0x64, 0x47, 0x71, 0x32, 0x6b, 0x74, 0x75, 0x66, 0x6f, 0x59, 0x59, 0x69, 0x74, 0x6d, 0x55, 0x6e, 0x44, 0x75, 0x79, 0x32, 0x6e, 0x30, 0x4a, 0x67, 0x35, 0x47, 0x66, 0x43, 0x74, 0x64, 0x70, 0x42, 0x43, 0x38, 0x54, 0x54, 0x69, 0x32, 0x45, 0x62, 0x76, 0x50, 0x6f, 0x66, 0x6b, 0x53, 0x76, 0x58, 0x52, 0x41, 0x64, 0x65, 0x75, 0x69, 0x6d, 0x73, 0x32, 0x63, 0x58, 0x70, 0x37, 0x31, 0x4e, 0x49, 0x0a, 0x57, 0x75, 0x75, 0x41, 0x38, 0x53, 0x68, 0x59, 0x49, 0x63, 0x32, 0x77, 0x42, 0x6c, 0x58, 0x37, 0x4a, 0x7a, 0x39, 0x54, 0x6b, 0x48, 0x43, 0x70, 0x42, 0x42, 0x35, 0x58, 0x4a, 0x37, 0x6b, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x53, 0x53, 0x4c, 0x2e, 0x63, 0x6f, 0x6d, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x45, 0x43, 0x43, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x6a, 0x54, 0x43, 0x43, 0x41, 0x68, 0x53, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x49, 0x64, 0x65, 0x62, 0x66, 0x79, 0x38, 0x46, 0x6f, 0x57, 0x36, 0x67, 0x77, 0x43, 0x67, 0x59, 0x49, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x45, 0x41, 0x77, 0x49, 0x77, 0x66, 0x44, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x44, 0x6a, 0x41, 0x4d, 0x42, 0x67, 0x4e, 0x56, 0x0a, 0x42, 0x41, 0x67, 0x4d, 0x42, 0x56, 0x52, 0x6c, 0x65, 0x47, 0x46, 0x7a, 0x4d, 0x52, 0x41, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x48, 0x44, 0x41, 0x64, 0x49, 0x62, 0x33, 0x56, 0x7a, 0x64, 0x47, 0x39, 0x75, 0x4d, 0x52, 0x67, 0x77, 0x46, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x41, 0x39, 0x54, 0x55, 0x30, 0x77, 0x67, 0x51, 0x32, 0x39, 0x79, 0x63, 0x47, 0x39, 0x79, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x34, 0x78, 0x4d, 0x54, 0x41, 0x76, 0x0a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x4b, 0x46, 0x4e, 0x54, 0x54, 0x43, 0x35, 0x6a, 0x62, 0x32, 0x30, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x61, 0x57, 0x5a, 0x70, 0x59, 0x32, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x49, 0x45, 0x46, 0x31, 0x64, 0x47, 0x68, 0x76, 0x63, 0x6d, 0x6c, 0x30, 0x65, 0x53, 0x42, 0x46, 0x51, 0x30, 0x4d, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x54, 0x59, 0x77, 0x4d, 0x6a, 0x45, 0x79, 0x0a, 0x4d, 0x54, 0x67, 0x78, 0x4e, 0x44, 0x41, 0x7a, 0x57, 0x68, 0x63, 0x4e, 0x4e, 0x44, 0x45, 0x77, 0x4d, 0x6a, 0x45, 0x79, 0x4d, 0x54, 0x67, 0x78, 0x4e, 0x44, 0x41, 0x7a, 0x57, 0x6a, 0x42, 0x38, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x4f, 0x4d, 0x41, 0x77, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x41, 0x77, 0x46, 0x56, 0x47, 0x56, 0x34, 0x59, 0x58, 0x4d, 0x78, 0x45, 0x44, 0x41, 0x4f, 0x0a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x63, 0x4d, 0x42, 0x30, 0x68, 0x76, 0x64, 0x58, 0x4e, 0x30, 0x62, 0x32, 0x34, 0x78, 0x47, 0x44, 0x41, 0x57, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x44, 0x31, 0x4e, 0x54, 0x54, 0x43, 0x42, 0x44, 0x62, 0x33, 0x4a, 0x77, 0x62, 0x33, 0x4a, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x6a, 0x45, 0x78, 0x4d, 0x43, 0x38, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x77, 0x77, 0x6f, 0x55, 0x31, 0x4e, 0x4d, 0x4c, 0x6d, 0x4e, 0x76, 0x0a, 0x62, 0x53, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x70, 0x5a, 0x6d, 0x6c, 0x6a, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x34, 0x67, 0x51, 0x58, 0x56, 0x30, 0x61, 0x47, 0x39, 0x79, 0x61, 0x58, 0x52, 0x35, 0x49, 0x45, 0x56, 0x44, 0x51, 0x7a, 0x42, 0x32, 0x4d, 0x42, 0x41, 0x47, 0x42, 0x79, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x41, 0x67, 0x45, 0x47, 0x42, 0x53, 0x75, 0x42, 0x42, 0x41, 0x41, 0x69, 0x41, 0x32, 0x49, 0x41, 0x0a, 0x42, 0x45, 0x56, 0x75, 0x71, 0x56, 0x44, 0x45, 0x70, 0x69, 0x4d, 0x32, 0x6e, 0x6c, 0x38, 0x6f, 0x6a, 0x52, 0x66, 0x4c, 0x6c, 0x69, 0x4a, 0x6b, 0x50, 0x39, 0x78, 0x36, 0x6a, 0x68, 0x33, 0x4d, 0x43, 0x4c, 0x4f, 0x69, 0x63, 0x53, 0x53, 0x36, 0x6a, 0x6b, 0x6d, 0x35, 0x42, 0x42, 0x74, 0x48, 0x6c, 0x6c, 0x69, 0x72, 0x4c, 0x5a, 0x58, 0x49, 0x37, 0x5a, 0x34, 0x49, 0x4e, 0x63, 0x67, 0x6e, 0x36, 0x34, 0x6d, 0x4d, 0x55, 0x31, 0x6a, 0x72, 0x59, 0x6f, 0x72, 0x2b, 0x0a, 0x38, 0x46, 0x73, 0x50, 0x61, 0x7a, 0x46, 0x53, 0x59, 0x30, 0x45, 0x37, 0x69, 0x63, 0x33, 0x73, 0x37, 0x4c, 0x61, 0x4e, 0x47, 0x64, 0x4d, 0x30, 0x42, 0x39, 0x79, 0x37, 0x78, 0x67, 0x5a, 0x2f, 0x77, 0x6b, 0x57, 0x56, 0x37, 0x4d, 0x74, 0x2f, 0x71, 0x43, 0x50, 0x67, 0x43, 0x65, 0x6d, 0x42, 0x2b, 0x76, 0x4e, 0x48, 0x30, 0x36, 0x4e, 0x6a, 0x4d, 0x47, 0x45, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x49, 0x4c, 0x52, 0x0a, 0x68, 0x58, 0x4d, 0x77, 0x35, 0x7a, 0x55, 0x45, 0x30, 0x34, 0x34, 0x43, 0x6b, 0x76, 0x76, 0x6c, 0x70, 0x4e, 0x48, 0x45, 0x49, 0x65, 0x6a, 0x4e, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x48, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x6a, 0x42, 0x42, 0x67, 0x77, 0x46, 0x6f, 0x41, 0x55, 0x67, 0x74, 0x47, 0x46, 0x63, 0x7a, 0x44, 0x6e, 0x4e, 0x51, 0x54, 0x54, 0x0a, 0x6a, 0x67, 0x4b, 0x53, 0x2b, 0x2b, 0x57, 0x6b, 0x30, 0x63, 0x51, 0x68, 0x36, 0x4d, 0x30, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x47, 0x47, 0x4d, 0x41, 0x6f, 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x32, 0x63, 0x41, 0x4d, 0x47, 0x51, 0x43, 0x4d, 0x47, 0x2f, 0x6e, 0x36, 0x31, 0x6b, 0x52, 0x70, 0x47, 0x44, 0x50, 0x59, 0x62, 0x43, 0x57, 0x0a, 0x65, 0x2b, 0x30, 0x46, 0x2b, 0x53, 0x38, 0x54, 0x6b, 0x64, 0x7a, 0x74, 0x35, 0x66, 0x78, 0x51, 0x61, 0x78, 0x46, 0x47, 0x52, 0x72, 0x4d, 0x63, 0x49, 0x51, 0x42, 0x69, 0x75, 0x37, 0x37, 0x44, 0x35, 0x2b, 0x6a, 0x4e, 0x42, 0x35, 0x6e, 0x35, 0x44, 0x51, 0x74, 0x64, 0x63, 0x6a, 0x37, 0x45, 0x71, 0x67, 0x49, 0x77, 0x48, 0x37, 0x79, 0x36, 0x43, 0x2b, 0x49, 0x77, 0x4a, 0x50, 0x74, 0x38, 0x62, 0x59, 0x42, 0x56, 0x43, 0x70, 0x6b, 0x2b, 0x67, 0x41, 0x30, 0x7a, 0x0a, 0x35, 0x57, 0x61, 0x6a, 0x73, 0x36, 0x4f, 0x37, 0x70, 0x64, 0x57, 0x4c, 0x6a, 0x77, 0x6b, 0x73, 0x70, 0x6c, 0x31, 0x2b, 0x34, 0x76, 0x41, 0x48, 0x43, 0x47, 0x68, 0x74, 0x30, 0x6e, 0x78, 0x70, 0x62, 0x6c, 0x2f, 0x66, 0x35, 0x57, 0x70, 0x6c, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x53, 0x53, 0x4c, 0x2e, 0x63, 0x6f, 0x6d, 0x20, 0x45, 0x56, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x52, 0x53, 0x41, 0x20, 0x52, 0x32, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x36, 0x7a, 0x43, 0x43, 0x41, 0x39, 0x4f, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x49, 0x56, 0x72, 0x59, 0x70, 0x7a, 0x54, 0x53, 0x38, 0x65, 0x50, 0x59, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x77, 0x67, 0x59, 0x49, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6c, 0x56, 0x54, 0x4d, 0x51, 0x34, 0x77, 0x0a, 0x44, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x49, 0x44, 0x41, 0x56, 0x55, 0x5a, 0x58, 0x68, 0x68, 0x63, 0x7a, 0x45, 0x51, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x77, 0x77, 0x48, 0x53, 0x47, 0x39, 0x31, 0x63, 0x33, 0x52, 0x76, 0x62, 0x6a, 0x45, 0x59, 0x4d, 0x42, 0x59, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x50, 0x55, 0x31, 0x4e, 0x4d, 0x49, 0x45, 0x4e, 0x76, 0x63, 0x6e, 0x42, 0x76, 0x63, 0x6d, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x0a, 0x4d, 0x54, 0x63, 0x77, 0x4e, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x44, 0x43, 0x35, 0x54, 0x55, 0x30, 0x77, 0x75, 0x59, 0x32, 0x39, 0x74, 0x49, 0x45, 0x56, 0x57, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x69, 0x42, 0x42, 0x64, 0x58, 0x52, 0x6f, 0x62, 0x33, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x67, 0x55, 0x6c, 0x4e, 0x42, 0x49, 0x46, 0x49, 0x79, 0x0a, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x45, 0x33, 0x4d, 0x44, 0x55, 0x7a, 0x4d, 0x54, 0x45, 0x34, 0x4d, 0x54, 0x51, 0x7a, 0x4e, 0x31, 0x6f, 0x58, 0x44, 0x54, 0x51, 0x79, 0x4d, 0x44, 0x55, 0x7a, 0x4d, 0x44, 0x45, 0x34, 0x4d, 0x54, 0x51, 0x7a, 0x4e, 0x31, 0x6f, 0x77, 0x67, 0x59, 0x49, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6c, 0x56, 0x54, 0x4d, 0x51, 0x34, 0x77, 0x44, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x49, 0x0a, 0x44, 0x41, 0x56, 0x55, 0x5a, 0x58, 0x68, 0x68, 0x63, 0x7a, 0x45, 0x51, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x77, 0x77, 0x48, 0x53, 0x47, 0x39, 0x31, 0x63, 0x33, 0x52, 0x76, 0x62, 0x6a, 0x45, 0x59, 0x4d, 0x42, 0x59, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x50, 0x55, 0x31, 0x4e, 0x4d, 0x49, 0x45, 0x4e, 0x76, 0x63, 0x6e, 0x42, 0x76, 0x63, 0x6d, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x4d, 0x54, 0x63, 0x77, 0x4e, 0x51, 0x59, 0x44, 0x0a, 0x56, 0x51, 0x51, 0x44, 0x44, 0x43, 0x35, 0x54, 0x55, 0x30, 0x77, 0x75, 0x59, 0x32, 0x39, 0x74, 0x49, 0x45, 0x56, 0x57, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x69, 0x42, 0x42, 0x64, 0x58, 0x52, 0x6f, 0x62, 0x33, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x67, 0x55, 0x6c, 0x4e, 0x42, 0x49, 0x46, 0x49, 0x79, 0x4d, 0x49, 0x49, 0x43, 0x49, 0x6a, 0x41, 0x4e, 0x0a, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x45, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x38, 0x41, 0x4d, 0x49, 0x49, 0x43, 0x43, 0x67, 0x4b, 0x43, 0x41, 0x67, 0x45, 0x41, 0x6a, 0x7a, 0x5a, 0x6c, 0x51, 0x4f, 0x48, 0x57, 0x54, 0x63, 0x44, 0x58, 0x74, 0x4f, 0x6c, 0x47, 0x32, 0x6d, 0x76, 0x71, 0x4d, 0x30, 0x66, 0x4e, 0x54, 0x50, 0x6c, 0x39, 0x66, 0x62, 0x36, 0x39, 0x4c, 0x54, 0x33, 0x77, 0x32, 0x33, 0x6a, 0x68, 0x0a, 0x68, 0x71, 0x58, 0x5a, 0x75, 0x67, 0x6c, 0x58, 0x61, 0x4f, 0x31, 0x58, 0x50, 0x71, 0x44, 0x51, 0x43, 0x45, 0x47, 0x44, 0x35, 0x79, 0x68, 0x42, 0x4a, 0x42, 0x2f, 0x6a, 0x63, 0x68, 0x58, 0x51, 0x41, 0x52, 0x72, 0x37, 0x58, 0x6e, 0x41, 0x6a, 0x73, 0x73, 0x75, 0x66, 0x4f, 0x65, 0x50, 0x50, 0x78, 0x55, 0x37, 0x47, 0x6b, 0x6d, 0x30, 0x6d, 0x78, 0x6e, 0x75, 0x37, 0x73, 0x39, 0x6f, 0x6e, 0x6e, 0x51, 0x71, 0x47, 0x36, 0x59, 0x45, 0x33, 0x42, 0x66, 0x37, 0x77, 0x0a, 0x63, 0x58, 0x48, 0x73, 0x77, 0x78, 0x7a, 0x70, 0x59, 0x36, 0x49, 0x58, 0x46, 0x4a, 0x33, 0x76, 0x47, 0x32, 0x66, 0x54, 0x68, 0x56, 0x55, 0x43, 0x41, 0x74, 0x5a, 0x4a, 0x79, 0x63, 0x78, 0x61, 0x34, 0x62, 0x48, 0x33, 0x62, 0x7a, 0x4b, 0x66, 0x79, 0x64, 0x51, 0x37, 0x69, 0x45, 0x47, 0x6f, 0x6e, 0x4c, 0x33, 0x4c, 0x71, 0x39, 0x74, 0x74, 0x65, 0x77, 0x6b, 0x66, 0x6f, 0x6b, 0x78, 0x79, 0x6b, 0x4e, 0x6f, 0x72, 0x43, 0x50, 0x7a, 0x50, 0x50, 0x46, 0x54, 0x4f, 0x0a, 0x5a, 0x77, 0x2b, 0x6f, 0x7a, 0x31, 0x32, 0x57, 0x47, 0x51, 0x76, 0x45, 0x34, 0x33, 0x4c, 0x72, 0x72, 0x64, 0x46, 0x39, 0x48, 0x53, 0x66, 0x76, 0x6b, 0x75, 0x73, 0x51, 0x76, 0x31, 0x76, 0x72, 0x4f, 0x36, 0x2f, 0x50, 0x67, 0x4e, 0x33, 0x42, 0x30, 0x70, 0x59, 0x45, 0x57, 0x33, 0x70, 0x2b, 0x70, 0x4b, 0x6b, 0x38, 0x4f, 0x48, 0x61, 0x6b, 0x59, 0x6f, 0x36, 0x67, 0x4f, 0x56, 0x37, 0x71, 0x64, 0x38, 0x39, 0x64, 0x41, 0x46, 0x6d, 0x50, 0x5a, 0x69, 0x77, 0x2b, 0x0a, 0x42, 0x36, 0x4b, 0x6a, 0x42, 0x53, 0x59, 0x52, 0x61, 0x5a, 0x66, 0x71, 0x68, 0x62, 0x63, 0x50, 0x6c, 0x67, 0x74, 0x4c, 0x79, 0x45, 0x44, 0x68, 0x55, 0x4c, 0x6f, 0x75, 0x69, 0x73, 0x76, 0x33, 0x44, 0x35, 0x6f, 0x69, 0x35, 0x33, 0x2b, 0x61, 0x4e, 0x78, 0x50, 0x4e, 0x38, 0x6b, 0x30, 0x54, 0x61, 0x79, 0x48, 0x52, 0x77, 0x4d, 0x77, 0x69, 0x38, 0x71, 0x46, 0x47, 0x39, 0x6b, 0x52, 0x70, 0x6e, 0x4d, 0x70, 0x68, 0x4e, 0x51, 0x63, 0x41, 0x62, 0x39, 0x5a, 0x68, 0x0a, 0x43, 0x42, 0x48, 0x71, 0x75, 0x72, 0x6a, 0x32, 0x36, 0x62, 0x4e, 0x67, 0x35, 0x55, 0x32, 0x35, 0x37, 0x4a, 0x38, 0x55, 0x5a, 0x73, 0x6c, 0x58, 0x57, 0x4e, 0x76, 0x4e, 0x68, 0x32, 0x6e, 0x34, 0x69, 0x6f, 0x59, 0x53, 0x41, 0x30, 0x65, 0x2f, 0x5a, 0x68, 0x4e, 0x32, 0x72, 0x48, 0x64, 0x39, 0x4e, 0x43, 0x53, 0x46, 0x67, 0x38, 0x33, 0x58, 0x71, 0x70, 0x79, 0x51, 0x47, 0x70, 0x38, 0x68, 0x4c, 0x48, 0x39, 0x34, 0x74, 0x32, 0x53, 0x34, 0x32, 0x4f, 0x69, 0x6d, 0x0a, 0x39, 0x48, 0x69, 0x7a, 0x56, 0x63, 0x75, 0x45, 0x30, 0x6a, 0x4c, 0x45, 0x65, 0x4b, 0x36, 0x6a, 0x6a, 0x32, 0x48, 0x64, 0x7a, 0x67, 0x68, 0x54, 0x72, 0x65, 0x79, 0x49, 0x2f, 0x42, 0x58, 0x6b, 0x6d, 0x67, 0x33, 0x6d, 0x6e, 0x78, 0x70, 0x33, 0x7a, 0x6b, 0x79, 0x50, 0x75, 0x42, 0x51, 0x56, 0x50, 0x57, 0x4b, 0x63, 0x68, 0x6a, 0x67, 0x47, 0x41, 0x47, 0x59, 0x53, 0x35, 0x46, 0x6c, 0x32, 0x57, 0x6c, 0x50, 0x41, 0x41, 0x70, 0x69, 0x69, 0x45, 0x43, 0x74, 0x6f, 0x0a, 0x52, 0x48, 0x75, 0x4f, 0x65, 0x63, 0x34, 0x7a, 0x53, 0x6e, 0x61, 0x71, 0x57, 0x34, 0x45, 0x57, 0x47, 0x37, 0x57, 0x4b, 0x32, 0x4e, 0x41, 0x41, 0x65, 0x31, 0x35, 0x69, 0x74, 0x41, 0x6e, 0x57, 0x68, 0x6d, 0x4d, 0x4f, 0x70, 0x67, 0x57, 0x56, 0x53, 0x62, 0x6f, 0x6f, 0x69, 0x34, 0x69, 0x54, 0x73, 0x6a, 0x51, 0x63, 0x32, 0x4b, 0x52, 0x56, 0x62, 0x72, 0x63, 0x63, 0x30, 0x4e, 0x36, 0x5a, 0x56, 0x54, 0x73, 0x6a, 0x39, 0x43, 0x4c, 0x67, 0x2b, 0x53, 0x6c, 0x6d, 0x0a, 0x4a, 0x75, 0x77, 0x67, 0x55, 0x48, 0x66, 0x62, 0x53, 0x67, 0x75, 0x50, 0x76, 0x75, 0x55, 0x43, 0x59, 0x48, 0x42, 0x42, 0x58, 0x74, 0x53, 0x75, 0x55, 0x44, 0x6b, 0x69, 0x46, 0x43, 0x62, 0x4c, 0x73, 0x6a, 0x74, 0x7a, 0x64, 0x46, 0x56, 0x48, 0x42, 0x33, 0x6d, 0x42, 0x4f, 0x61, 0x67, 0x77, 0x45, 0x30, 0x54, 0x6c, 0x42, 0x49, 0x71, 0x75, 0x6c, 0x68, 0x4d, 0x6c, 0x51, 0x67, 0x2b, 0x35, 0x55, 0x38, 0x53, 0x62, 0x2f, 0x4d, 0x33, 0x6b, 0x48, 0x4e, 0x34, 0x38, 0x0a, 0x2b, 0x71, 0x76, 0x57, 0x42, 0x6b, 0x6f, 0x66, 0x5a, 0x36, 0x61, 0x59, 0x4d, 0x42, 0x7a, 0x64, 0x4c, 0x4e, 0x76, 0x63, 0x47, 0x4a, 0x56, 0x58, 0x5a, 0x73, 0x62, 0x2f, 0x58, 0x49, 0x74, 0x57, 0x39, 0x58, 0x63, 0x43, 0x41, 0x77, 0x45, 0x41, 0x41, 0x61, 0x4e, 0x6a, 0x4d, 0x47, 0x45, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x66, 0x42, 0x67, 0x4e, 0x56, 0x0a, 0x48, 0x53, 0x4d, 0x45, 0x47, 0x44, 0x41, 0x57, 0x67, 0x42, 0x54, 0x35, 0x59, 0x4c, 0x76, 0x55, 0x34, 0x39, 0x55, 0x30, 0x39, 0x72, 0x6a, 0x31, 0x42, 0x6f, 0x41, 0x6c, 0x70, 0x33, 0x50, 0x62, 0x52, 0x6d, 0x6d, 0x6f, 0x6e, 0x6a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x2b, 0x57, 0x43, 0x37, 0x31, 0x4f, 0x50, 0x56, 0x4e, 0x50, 0x61, 0x34, 0x39, 0x51, 0x61, 0x41, 0x4a, 0x61, 0x64, 0x7a, 0x32, 0x30, 0x5a, 0x70, 0x0a, 0x71, 0x4a, 0x34, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x47, 0x47, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x43, 0x77, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x41, 0x51, 0x42, 0x57, 0x73, 0x34, 0x37, 0x4c, 0x43, 0x70, 0x31, 0x4a, 0x6a, 0x72, 0x2b, 0x6b, 0x78, 0x4a, 0x47, 0x37, 0x5a, 0x68, 0x63, 0x46, 0x55, 0x5a, 0x68, 0x31, 0x0a, 0x2b, 0x2b, 0x56, 0x51, 0x4c, 0x48, 0x71, 0x65, 0x38, 0x52, 0x54, 0x36, 0x71, 0x39, 0x4f, 0x4b, 0x50, 0x76, 0x2b, 0x52, 0x4b, 0x59, 0x39, 0x6a, 0x69, 0x39, 0x69, 0x30, 0x71, 0x56, 0x51, 0x42, 0x44, 0x62, 0x36, 0x54, 0x68, 0x69, 0x2f, 0x35, 0x53, 0x6d, 0x33, 0x48, 0x58, 0x76, 0x56, 0x58, 0x2b, 0x63, 0x70, 0x56, 0x48, 0x42, 0x4b, 0x2b, 0x52, 0x77, 0x38, 0x32, 0x78, 0x64, 0x39, 0x71, 0x74, 0x39, 0x74, 0x31, 0x77, 0x6b, 0x63, 0x6c, 0x66, 0x37, 0x6e, 0x78, 0x0a, 0x59, 0x2f, 0x68, 0x6f, 0x4c, 0x56, 0x55, 0x45, 0x30, 0x66, 0x4b, 0x4e, 0x73, 0x4b, 0x54, 0x50, 0x76, 0x44, 0x78, 0x65, 0x48, 0x33, 0x6a, 0x6e, 0x70, 0x61, 0x41, 0x67, 0x63, 0x4c, 0x41, 0x45, 0x78, 0x62, 0x66, 0x33, 0x63, 0x71, 0x66, 0x65, 0x49, 0x67, 0x32, 0x39, 0x4d, 0x79, 0x56, 0x47, 0x6a, 0x47, 0x53, 0x53, 0x4a, 0x75, 0x4d, 0x2b, 0x4c, 0x6d, 0x4f, 0x57, 0x32, 0x70, 0x75, 0x4d, 0x50, 0x66, 0x67, 0x59, 0x43, 0x64, 0x63, 0x44, 0x7a, 0x48, 0x32, 0x47, 0x0a, 0x67, 0x75, 0x44, 0x4b, 0x42, 0x41, 0x64, 0x52, 0x55, 0x4e, 0x66, 0x2f, 0x6b, 0x74, 0x55, 0x4d, 0x37, 0x39, 0x71, 0x47, 0x6e, 0x35, 0x6e, 0x58, 0x36, 0x37, 0x65, 0x76, 0x61, 0x4f, 0x49, 0x35, 0x4a, 0x70, 0x53, 0x36, 0x61, 0x4c, 0x65, 0x2f, 0x67, 0x39, 0x50, 0x71, 0x65, 0x6d, 0x63, 0x39, 0x59, 0x6d, 0x65, 0x75, 0x4a, 0x65, 0x56, 0x79, 0x36, 0x4f, 0x4c, 0x6b, 0x37, 0x4b, 0x34, 0x53, 0x39, 0x6b, 0x73, 0x72, 0x50, 0x4a, 0x2f, 0x70, 0x73, 0x45, 0x44, 0x7a, 0x0a, 0x4f, 0x46, 0x53, 0x7a, 0x2f, 0x62, 0x64, 0x6f, 0x79, 0x4e, 0x72, 0x47, 0x6a, 0x31, 0x45, 0x38, 0x73, 0x76, 0x75, 0x52, 0x33, 0x42, 0x7a, 0x6e, 0x6d, 0x35, 0x33, 0x68, 0x74, 0x77, 0x31, 0x79, 0x6a, 0x2b, 0x4b, 0x6b, 0x78, 0x4b, 0x6c, 0x34, 0x2b, 0x65, 0x73, 0x55, 0x72, 0x4d, 0x5a, 0x44, 0x42, 0x63, 0x4a, 0x6c, 0x4f, 0x53, 0x67, 0x59, 0x41, 0x73, 0x4f, 0x43, 0x73, 0x70, 0x30, 0x46, 0x76, 0x6d, 0x58, 0x74, 0x6c, 0x6c, 0x39, 0x6c, 0x64, 0x44, 0x7a, 0x37, 0x0a, 0x43, 0x54, 0x55, 0x75, 0x65, 0x35, 0x77, 0x54, 0x2f, 0x52, 0x73, 0x50, 0x58, 0x63, 0x64, 0x74, 0x67, 0x54, 0x70, 0x57, 0x44, 0x38, 0x77, 0x37, 0x34, 0x61, 0x38, 0x43, 0x4c, 0x79, 0x4b, 0x73, 0x52, 0x73, 0x70, 0x47, 0x50, 0x4b, 0x41, 0x63, 0x54, 0x4e, 0x5a, 0x45, 0x74, 0x46, 0x34, 0x75, 0x58, 0x42, 0x56, 0x6d, 0x43, 0x65, 0x45, 0x6d, 0x4b, 0x66, 0x37, 0x47, 0x55, 0x6d, 0x47, 0x36, 0x73, 0x58, 0x50, 0x2f, 0x77, 0x77, 0x79, 0x63, 0x35, 0x57, 0x78, 0x71, 0x0a, 0x6c, 0x44, 0x38, 0x55, 0x79, 0x6b, 0x41, 0x57, 0x6c, 0x59, 0x54, 0x7a, 0x57, 0x61, 0x6d, 0x73, 0x58, 0x30, 0x78, 0x68, 0x6b, 0x32, 0x33, 0x52, 0x4f, 0x38, 0x79, 0x69, 0x6c, 0x51, 0x77, 0x69, 0x70, 0x6d, 0x64, 0x6e, 0x52, 0x43, 0x36, 0x35, 0x32, 0x64, 0x4b, 0x4b, 0x51, 0x62, 0x4e, 0x6d, 0x43, 0x31, 0x72, 0x37, 0x66, 0x53, 0x4f, 0x6c, 0x38, 0x68, 0x71, 0x77, 0x2f, 0x39, 0x36, 0x62, 0x67, 0x35, 0x51, 0x75, 0x30, 0x54, 0x2f, 0x66, 0x6b, 0x72, 0x65, 0x52, 0x0a, 0x72, 0x77, 0x55, 0x37, 0x5a, 0x63, 0x65, 0x67, 0x62, 0x4c, 0x48, 0x4e, 0x59, 0x68, 0x4c, 0x44, 0x6b, 0x42, 0x76, 0x6a, 0x4a, 0x63, 0x34, 0x30, 0x76, 0x47, 0x39, 0x33, 0x64, 0x72, 0x45, 0x51, 0x77, 0x2f, 0x63, 0x46, 0x47, 0x73, 0x44, 0x57, 0x72, 0x33, 0x52, 0x69, 0x53, 0x42, 0x64, 0x33, 0x6b, 0x6d, 0x6d, 0x51, 0x59, 0x52, 0x7a, 0x65, 0x6c, 0x59, 0x42, 0x30, 0x56, 0x49, 0x38, 0x59, 0x48, 0x4d, 0x50, 0x7a, 0x41, 0x39, 0x43, 0x2f, 0x70, 0x45, 0x4e, 0x31, 0x0a, 0x68, 0x6c, 0x4d, 0x59, 0x65, 0x67, 0x6f, 0x75, 0x43, 0x52, 0x77, 0x32, 0x6e, 0x35, 0x48, 0x39, 0x67, 0x6f, 0x6f, 0x69, 0x53, 0x39, 0x45, 0x4f, 0x55, 0x43, 0x58, 0x64, 0x79, 0x77, 0x4d, 0x4d, 0x46, 0x38, 0x6d, 0x44, 0x41, 0x41, 0x68, 0x4f, 0x4e, 0x55, 0x32, 0x4b, 0x69, 0x2b, 0x33, 0x77, 0x41, 0x70, 0x52, 0x6d, 0x4c, 0x45, 0x52, 0x2f, 0x79, 0x35, 0x55, 0x6e, 0x6c, 0x68, 0x65, 0x74, 0x43, 0x54, 0x43, 0x73, 0x74, 0x6e, 0x45, 0x58, 0x62, 0x6f, 0x73, 0x58, 0x0a, 0x39, 0x68, 0x77, 0x4a, 0x31, 0x43, 0x30, 0x37, 0x6d, 0x4b, 0x56, 0x78, 0x30, 0x31, 0x51, 0x54, 0x32, 0x57, 0x44, 0x7a, 0x39, 0x55, 0x74, 0x6d, 0x54, 0x2f, 0x72, 0x78, 0x37, 0x69, 0x41, 0x53, 0x6a, 0x62, 0x53, 0x73, 0x56, 0x37, 0x46, 0x46, 0x59, 0x36, 0x47, 0x73, 0x64, 0x71, 0x6e, 0x43, 0x2b, 0x77, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x53, 0x53, 0x4c, 0x2e, 0x63, 0x6f, 0x6d, 0x20, 0x45, 0x56, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x45, 0x43, 0x43, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x6c, 0x44, 0x43, 0x43, 0x41, 0x68, 0x71, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x49, 0x4c, 0x43, 0x6d, 0x63, 0x57, 0x78, 0x62, 0x74, 0x42, 0x5a, 0x55, 0x77, 0x43, 0x67, 0x59, 0x49, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x45, 0x41, 0x77, 0x49, 0x77, 0x66, 0x7a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x44, 0x6a, 0x41, 0x4d, 0x42, 0x67, 0x4e, 0x56, 0x0a, 0x42, 0x41, 0x67, 0x4d, 0x42, 0x56, 0x52, 0x6c, 0x65, 0x47, 0x46, 0x7a, 0x4d, 0x52, 0x41, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x48, 0x44, 0x41, 0x64, 0x49, 0x62, 0x33, 0x56, 0x7a, 0x64, 0x47, 0x39, 0x75, 0x4d, 0x52, 0x67, 0x77, 0x46, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x41, 0x39, 0x54, 0x55, 0x30, 0x77, 0x67, 0x51, 0x32, 0x39, 0x79, 0x63, 0x47, 0x39, 0x79, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x34, 0x78, 0x4e, 0x44, 0x41, 0x79, 0x0a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x4b, 0x31, 0x4e, 0x54, 0x54, 0x43, 0x35, 0x6a, 0x62, 0x32, 0x30, 0x67, 0x52, 0x56, 0x59, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x61, 0x57, 0x5a, 0x70, 0x59, 0x32, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x49, 0x45, 0x46, 0x31, 0x64, 0x47, 0x68, 0x76, 0x63, 0x6d, 0x6c, 0x30, 0x65, 0x53, 0x42, 0x46, 0x51, 0x30, 0x4d, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x54, 0x59, 0x77, 0x0a, 0x4d, 0x6a, 0x45, 0x79, 0x4d, 0x54, 0x67, 0x78, 0x4e, 0x54, 0x49, 0x7a, 0x57, 0x68, 0x63, 0x4e, 0x4e, 0x44, 0x45, 0x77, 0x4d, 0x6a, 0x45, 0x79, 0x4d, 0x54, 0x67, 0x78, 0x4e, 0x54, 0x49, 0x7a, 0x57, 0x6a, 0x42, 0x2f, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x4f, 0x4d, 0x41, 0x77, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x41, 0x77, 0x46, 0x56, 0x47, 0x56, 0x34, 0x59, 0x58, 0x4d, 0x78, 0x0a, 0x45, 0x44, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x63, 0x4d, 0x42, 0x30, 0x68, 0x76, 0x64, 0x58, 0x4e, 0x30, 0x62, 0x32, 0x34, 0x78, 0x47, 0x44, 0x41, 0x57, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x44, 0x31, 0x4e, 0x54, 0x54, 0x43, 0x42, 0x44, 0x62, 0x33, 0x4a, 0x77, 0x62, 0x33, 0x4a, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x6a, 0x45, 0x30, 0x4d, 0x44, 0x49, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x77, 0x77, 0x72, 0x55, 0x31, 0x4e, 0x4d, 0x0a, 0x4c, 0x6d, 0x4e, 0x76, 0x62, 0x53, 0x42, 0x46, 0x56, 0x69, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x70, 0x5a, 0x6d, 0x6c, 0x6a, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x34, 0x67, 0x51, 0x58, 0x56, 0x30, 0x61, 0x47, 0x39, 0x79, 0x61, 0x58, 0x52, 0x35, 0x49, 0x45, 0x56, 0x44, 0x51, 0x7a, 0x42, 0x32, 0x4d, 0x42, 0x41, 0x47, 0x42, 0x79, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x41, 0x67, 0x45, 0x47, 0x42, 0x53, 0x75, 0x42, 0x0a, 0x42, 0x41, 0x41, 0x69, 0x41, 0x32, 0x49, 0x41, 0x42, 0x4b, 0x6f, 0x53, 0x52, 0x35, 0x43, 0x59, 0x47, 0x2f, 0x76, 0x76, 0x77, 0x30, 0x41, 0x48, 0x67, 0x79, 0x42, 0x4f, 0x38, 0x54, 0x43, 0x43, 0x6f, 0x67, 0x62, 0x52, 0x38, 0x70, 0x4b, 0x47, 0x59, 0x66, 0x4c, 0x32, 0x49, 0x57, 0x6a, 0x4b, 0x41, 0x4d, 0x54, 0x48, 0x36, 0x6b, 0x4d, 0x41, 0x56, 0x49, 0x62, 0x63, 0x2f, 0x52, 0x2f, 0x66, 0x41, 0x4c, 0x68, 0x42, 0x59, 0x6c, 0x7a, 0x63, 0x63, 0x42, 0x59, 0x79, 0x0a, 0x33, 0x68, 0x2b, 0x5a, 0x31, 0x4d, 0x7a, 0x46, 0x42, 0x38, 0x67, 0x49, 0x48, 0x32, 0x45, 0x57, 0x42, 0x31, 0x45, 0x39, 0x66, 0x56, 0x77, 0x48, 0x55, 0x2b, 0x4d, 0x31, 0x4f, 0x49, 0x7a, 0x66, 0x7a, 0x5a, 0x2f, 0x5a, 0x4c, 0x67, 0x31, 0x4b, 0x74, 0x68, 0x6b, 0x75, 0x57, 0x6e, 0x42, 0x61, 0x42, 0x75, 0x32, 0x2b, 0x38, 0x4b, 0x47, 0x77, 0x79, 0x74, 0x41, 0x4a, 0x4b, 0x61, 0x4e, 0x6a, 0x4d, 0x47, 0x45, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x0a, 0x42, 0x42, 0x59, 0x45, 0x46, 0x46, 0x76, 0x4b, 0x58, 0x75, 0x58, 0x65, 0x30, 0x6f, 0x47, 0x71, 0x7a, 0x61, 0x67, 0x74, 0x5a, 0x46, 0x47, 0x32, 0x32, 0x58, 0x4b, 0x62, 0x6c, 0x2b, 0x5a, 0x50, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x48, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x6a, 0x42, 0x42, 0x67, 0x77, 0x46, 0x6f, 0x41, 0x55, 0x57, 0x38, 0x70, 0x65, 0x0a, 0x35, 0x64, 0x37, 0x53, 0x67, 0x61, 0x72, 0x4e, 0x71, 0x43, 0x31, 0x6b, 0x55, 0x62, 0x62, 0x5a, 0x63, 0x70, 0x75, 0x58, 0x35, 0x6b, 0x38, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x47, 0x47, 0x4d, 0x41, 0x6f, 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x32, 0x67, 0x41, 0x4d, 0x47, 0x55, 0x43, 0x4d, 0x51, 0x43, 0x4b, 0x35, 0x6b, 0x43, 0x4a, 0x0a, 0x4e, 0x2b, 0x76, 0x70, 0x31, 0x52, 0x50, 0x5a, 0x79, 0x74, 0x52, 0x72, 0x4a, 0x50, 0x4f, 0x77, 0x50, 0x59, 0x64, 0x47, 0x57, 0x42, 0x72, 0x73, 0x73, 0x64, 0x39, 0x76, 0x2b, 0x31, 0x61, 0x36, 0x63, 0x47, 0x76, 0x48, 0x4f, 0x4d, 0x7a, 0x6f, 0x73, 0x59, 0x78, 0x50, 0x44, 0x2f, 0x66, 0x78, 0x5a, 0x33, 0x59, 0x4f, 0x67, 0x39, 0x41, 0x65, 0x55, 0x59, 0x38, 0x43, 0x4d, 0x44, 0x33, 0x32, 0x49, 0x79, 0x67, 0x6d, 0x54, 0x4d, 0x5a, 0x67, 0x68, 0x35, 0x4d, 0x6d, 0x0a, 0x6d, 0x37, 0x49, 0x31, 0x48, 0x72, 0x72, 0x57, 0x39, 0x7a, 0x7a, 0x52, 0x48, 0x4d, 0x37, 0x36, 0x4a, 0x54, 0x79, 0x6d, 0x47, 0x6f, 0x45, 0x56, 0x57, 0x2f, 0x4d, 0x53, 0x44, 0x32, 0x7a, 0x75, 0x5a, 0x59, 0x72, 0x4a, 0x68, 0x36, 0x6a, 0x35, 0x42, 0x2b, 0x42, 0x69, 0x6d, 0x6f, 0x78, 0x63, 0x53, 0x67, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x52, 0x36, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x67, 0x7a, 0x43, 0x43, 0x41, 0x32, 0x75, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4f, 0x52, 0x65, 0x61, 0x37, 0x41, 0x34, 0x4d, 0x7a, 0x77, 0x34, 0x56, 0x6c, 0x53, 0x4f, 0x62, 0x2f, 0x52, 0x56, 0x45, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4d, 0x42, 0x51, 0x41, 0x77, 0x54, 0x44, 0x45, 0x67, 0x4d, 0x42, 0x34, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x78, 0x4d, 0x58, 0x0a, 0x52, 0x32, 0x78, 0x76, 0x59, 0x6d, 0x46, 0x73, 0x55, 0x32, 0x6c, 0x6e, 0x62, 0x69, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x42, 0x49, 0x43, 0x30, 0x67, 0x55, 0x6a, 0x59, 0x78, 0x45, 0x7a, 0x41, 0x52, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x43, 0x6b, 0x64, 0x73, 0x62, 0x32, 0x4a, 0x68, 0x62, 0x46, 0x4e, 0x70, 0x5a, 0x32, 0x34, 0x78, 0x45, 0x7a, 0x41, 0x52, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x43, 0x6b, 0x64, 0x73, 0x0a, 0x62, 0x32, 0x4a, 0x68, 0x62, 0x46, 0x4e, 0x70, 0x5a, 0x32, 0x34, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x54, 0x51, 0x78, 0x4d, 0x6a, 0x45, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x7a, 0x51, 0x78, 0x4d, 0x6a, 0x45, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x6a, 0x42, 0x4d, 0x4d, 0x53, 0x41, 0x77, 0x48, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x78, 0x64, 0x48, 0x62, 0x47, 0x39, 0x69, 0x0a, 0x59, 0x57, 0x78, 0x54, 0x61, 0x57, 0x64, 0x75, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x67, 0x4c, 0x53, 0x42, 0x53, 0x4e, 0x6a, 0x45, 0x54, 0x4d, 0x42, 0x45, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x4b, 0x52, 0x32, 0x78, 0x76, 0x59, 0x6d, 0x46, 0x73, 0x55, 0x32, 0x6c, 0x6e, 0x62, 0x6a, 0x45, 0x54, 0x4d, 0x42, 0x45, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x4b, 0x52, 0x32, 0x78, 0x76, 0x59, 0x6d, 0x46, 0x73, 0x0a, 0x55, 0x32, 0x6c, 0x6e, 0x62, 0x6a, 0x43, 0x43, 0x41, 0x69, 0x49, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x50, 0x41, 0x44, 0x43, 0x43, 0x41, 0x67, 0x6f, 0x43, 0x67, 0x67, 0x49, 0x42, 0x41, 0x4a, 0x55, 0x48, 0x36, 0x48, 0x50, 0x4b, 0x5a, 0x76, 0x6e, 0x73, 0x46, 0x4d, 0x70, 0x37, 0x50, 0x50, 0x63, 0x4e, 0x43, 0x50, 0x47, 0x30, 0x52, 0x51, 0x73, 0x73, 0x0a, 0x67, 0x72, 0x52, 0x49, 0x78, 0x75, 0x74, 0x62, 0x50, 0x4b, 0x36, 0x44, 0x75, 0x45, 0x47, 0x53, 0x4d, 0x78, 0x53, 0x6b, 0x62, 0x33, 0x2f, 0x70, 0x4b, 0x73, 0x7a, 0x47, 0x73, 0x49, 0x68, 0x72, 0x78, 0x62, 0x61, 0x4a, 0x30, 0x63, 0x61, 0x79, 0x2f, 0x78, 0x54, 0x4f, 0x55, 0x52, 0x51, 0x68, 0x37, 0x45, 0x72, 0x64, 0x47, 0x31, 0x72, 0x47, 0x31, 0x6f, 0x66, 0x75, 0x54, 0x54, 0x6f, 0x56, 0x42, 0x75, 0x31, 0x6b, 0x5a, 0x67, 0x75, 0x53, 0x67, 0x4d, 0x70, 0x45, 0x0a, 0x33, 0x6e, 0x4f, 0x55, 0x54, 0x76, 0x4f, 0x6e, 0x69, 0x58, 0x39, 0x50, 0x65, 0x47, 0x4d, 0x49, 0x79, 0x42, 0x4a, 0x51, 0x62, 0x55, 0x4a, 0x6d, 0x4c, 0x30, 0x32, 0x35, 0x65, 0x53, 0x68, 0x4e, 0x55, 0x68, 0x71, 0x4b, 0x47, 0x6f, 0x43, 0x33, 0x47, 0x59, 0x45, 0x4f, 0x66, 0x73, 0x53, 0x4b, 0x76, 0x47, 0x52, 0x4d, 0x49, 0x52, 0x78, 0x44, 0x61, 0x4e, 0x63, 0x39, 0x50, 0x49, 0x72, 0x46, 0x73, 0x6d, 0x62, 0x56, 0x6b, 0x4a, 0x71, 0x33, 0x4d, 0x51, 0x62, 0x46, 0x0a, 0x76, 0x75, 0x4a, 0x74, 0x4d, 0x67, 0x61, 0x6d, 0x48, 0x76, 0x6d, 0x35, 0x36, 0x36, 0x71, 0x6a, 0x75, 0x4c, 0x2b, 0x2b, 0x67, 0x6d, 0x4e, 0x51, 0x30, 0x50, 0x41, 0x59, 0x69, 0x64, 0x2f, 0x6b, 0x44, 0x33, 0x6e, 0x31, 0x36, 0x71, 0x49, 0x66, 0x4b, 0x74, 0x4a, 0x77, 0x4c, 0x6e, 0x76, 0x6e, 0x76, 0x4a, 0x4f, 0x37, 0x62, 0x56, 0x50, 0x69, 0x53, 0x48, 0x79, 0x4d, 0x45, 0x41, 0x63, 0x34, 0x2f, 0x32, 0x61, 0x79, 0x64, 0x32, 0x46, 0x2b, 0x34, 0x4f, 0x71, 0x4d, 0x0a, 0x50, 0x4b, 0x71, 0x30, 0x70, 0x50, 0x62, 0x7a, 0x6c, 0x55, 0x6f, 0x53, 0x42, 0x32, 0x33, 0x39, 0x6a, 0x4c, 0x4b, 0x4a, 0x7a, 0x39, 0x43, 0x67, 0x59, 0x58, 0x66, 0x49, 0x57, 0x48, 0x53, 0x77, 0x31, 0x43, 0x4d, 0x36, 0x39, 0x31, 0x30, 0x36, 0x79, 0x71, 0x4c, 0x62, 0x6e, 0x51, 0x6e, 0x65, 0x58, 0x55, 0x51, 0x74, 0x6b, 0x50, 0x47, 0x42, 0x7a, 0x56, 0x65, 0x53, 0x2b, 0x6e, 0x36, 0x38, 0x55, 0x41, 0x52, 0x6a, 0x4e, 0x4e, 0x39, 0x72, 0x6b, 0x78, 0x69, 0x2b, 0x0a, 0x61, 0x7a, 0x61, 0x79, 0x4f, 0x65, 0x53, 0x73, 0x4a, 0x44, 0x61, 0x33, 0x38, 0x4f, 0x2b, 0x32, 0x48, 0x42, 0x4e, 0x58, 0x6b, 0x37, 0x62, 0x65, 0x73, 0x76, 0x6a, 0x69, 0x68, 0x62, 0x64, 0x7a, 0x6f, 0x72, 0x67, 0x31, 0x71, 0x6b, 0x58, 0x79, 0x34, 0x4a, 0x30, 0x32, 0x6f, 0x57, 0x39, 0x55, 0x69, 0x76, 0x46, 0x79, 0x56, 0x6d, 0x34, 0x75, 0x69, 0x4d, 0x56, 0x52, 0x51, 0x6b, 0x51, 0x56, 0x6c, 0x4f, 0x36, 0x6a, 0x78, 0x54, 0x69, 0x57, 0x6d, 0x30, 0x35, 0x4f, 0x0a, 0x57, 0x67, 0x74, 0x48, 0x38, 0x77, 0x59, 0x32, 0x53, 0x58, 0x63, 0x77, 0x76, 0x48, 0x45, 0x33, 0x35, 0x61, 0x62, 0x73, 0x49, 0x51, 0x68, 0x31, 0x2f, 0x4f, 0x5a, 0x68, 0x46, 0x6a, 0x39, 0x33, 0x31, 0x64, 0x6d, 0x52, 0x6c, 0x34, 0x51, 0x4b, 0x62, 0x4e, 0x51, 0x43, 0x54, 0x58, 0x54, 0x41, 0x46, 0x4f, 0x33, 0x39, 0x4f, 0x66, 0x75, 0x44, 0x38, 0x6c, 0x34, 0x55, 0x6f, 0x51, 0x53, 0x77, 0x43, 0x2b, 0x6e, 0x2b, 0x37, 0x6f, 0x2f, 0x68, 0x62, 0x67, 0x75, 0x79, 0x0a, 0x43, 0x4c, 0x4e, 0x68, 0x5a, 0x67, 0x6c, 0x71, 0x73, 0x51, 0x59, 0x36, 0x5a, 0x5a, 0x5a, 0x5a, 0x77, 0x50, 0x41, 0x31, 0x2f, 0x63, 0x6e, 0x61, 0x4b, 0x49, 0x30, 0x61, 0x45, 0x59, 0x64, 0x77, 0x67, 0x51, 0x71, 0x6f, 0x6d, 0x6e, 0x55, 0x64, 0x6e, 0x6a, 0x71, 0x47, 0x42, 0x51, 0x43, 0x65, 0x32, 0x34, 0x44, 0x57, 0x4a, 0x66, 0x6e, 0x63, 0x42, 0x5a, 0x34, 0x6e, 0x57, 0x55, 0x78, 0x32, 0x4f, 0x56, 0x76, 0x71, 0x2b, 0x61, 0x57, 0x68, 0x32, 0x49, 0x4d, 0x50, 0x0a, 0x30, 0x66, 0x2f, 0x66, 0x4d, 0x42, 0x48, 0x35, 0x68, 0x63, 0x38, 0x7a, 0x53, 0x50, 0x58, 0x4b, 0x62, 0x57, 0x51, 0x55, 0x4c, 0x48, 0x70, 0x59, 0x54, 0x39, 0x4e, 0x4c, 0x43, 0x45, 0x6e, 0x46, 0x6c, 0x57, 0x51, 0x61, 0x59, 0x77, 0x35, 0x35, 0x50, 0x66, 0x57, 0x7a, 0x6a, 0x4d, 0x70, 0x59, 0x72, 0x5a, 0x78, 0x43, 0x52, 0x58, 0x6c, 0x75, 0x44, 0x6f, 0x63, 0x5a, 0x58, 0x46, 0x53, 0x78, 0x5a, 0x62, 0x61, 0x2f, 0x6a, 0x4a, 0x76, 0x63, 0x45, 0x2b, 0x6b, 0x4e, 0x0a, 0x62, 0x37, 0x67, 0x75, 0x33, 0x47, 0x64, 0x75, 0x79, 0x59, 0x73, 0x52, 0x74, 0x59, 0x51, 0x55, 0x69, 0x67, 0x41, 0x5a, 0x63, 0x49, 0x4e, 0x35, 0x6b, 0x5a, 0x65, 0x52, 0x31, 0x42, 0x6f, 0x6e, 0x76, 0x7a, 0x63, 0x65, 0x4d, 0x67, 0x66, 0x59, 0x46, 0x47, 0x4d, 0x38, 0x4b, 0x45, 0x79, 0x76, 0x41, 0x67, 0x4d, 0x42, 0x41, 0x41, 0x47, 0x6a, 0x59, 0x7a, 0x42, 0x68, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x0a, 0x41, 0x77, 0x49, 0x42, 0x42, 0x6a, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x53, 0x75, 0x62, 0x41, 0x57, 0x6a, 0x6b, 0x78, 0x50, 0x69, 0x6f, 0x75, 0x66, 0x69, 0x31, 0x78, 0x7a, 0x57, 0x78, 0x2f, 0x42, 0x2f, 0x79, 0x47, 0x64, 0x54, 0x6f, 0x44, 0x41, 0x66, 0x42, 0x67, 0x4e, 0x56, 0x0a, 0x48, 0x53, 0x4d, 0x45, 0x47, 0x44, 0x41, 0x57, 0x67, 0x42, 0x53, 0x75, 0x62, 0x41, 0x57, 0x6a, 0x6b, 0x78, 0x50, 0x69, 0x6f, 0x75, 0x66, 0x69, 0x31, 0x78, 0x7a, 0x57, 0x78, 0x2f, 0x42, 0x2f, 0x79, 0x47, 0x64, 0x54, 0x6f, 0x44, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x77, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x45, 0x41, 0x67, 0x79, 0x58, 0x74, 0x36, 0x4e, 0x48, 0x39, 0x6c, 0x56, 0x4c, 0x4e, 0x0a, 0x6e, 0x73, 0x41, 0x45, 0x6f, 0x4a, 0x46, 0x70, 0x35, 0x6c, 0x7a, 0x51, 0x68, 0x4e, 0x37, 0x63, 0x72, 0x61, 0x4a, 0x50, 0x36, 0x45, 0x64, 0x34, 0x31, 0x6d, 0x57, 0x59, 0x71, 0x56, 0x75, 0x6f, 0x50, 0x49, 0x64, 0x38, 0x41, 0x6f, 0x72, 0x52, 0x62, 0x72, 0x63, 0x57, 0x63, 0x2b, 0x5a, 0x66, 0x77, 0x46, 0x53, 0x59, 0x31, 0x58, 0x53, 0x2b, 0x77, 0x63, 0x33, 0x69, 0x45, 0x5a, 0x47, 0x74, 0x49, 0x78, 0x67, 0x39, 0x33, 0x65, 0x46, 0x79, 0x52, 0x4a, 0x61, 0x30, 0x0a, 0x6c, 0x56, 0x37, 0x41, 0x65, 0x34, 0x36, 0x5a, 0x65, 0x42, 0x5a, 0x44, 0x45, 0x31, 0x5a, 0x58, 0x73, 0x36, 0x4b, 0x7a, 0x4f, 0x37, 0x56, 0x33, 0x33, 0x45, 0x42, 0x79, 0x72, 0x4b, 0x50, 0x72, 0x6d, 0x7a, 0x55, 0x2b, 0x73, 0x51, 0x67, 0x68, 0x6f, 0x65, 0x66, 0x45, 0x51, 0x7a, 0x64, 0x35, 0x4d, 0x72, 0x36, 0x31, 0x35, 0x35, 0x77, 0x73, 0x54, 0x4c, 0x78, 0x44, 0x4b, 0x5a, 0x6d, 0x4f, 0x4d, 0x4e, 0x4f, 0x73, 0x49, 0x65, 0x44, 0x6a, 0x48, 0x66, 0x72, 0x59, 0x0a, 0x42, 0x7a, 0x4e, 0x32, 0x56, 0x41, 0x41, 0x69, 0x4b, 0x72, 0x6c, 0x4e, 0x49, 0x43, 0x35, 0x77, 0x61, 0x4e, 0x72, 0x6c, 0x55, 0x2f, 0x79, 0x44, 0x58, 0x4e, 0x4f, 0x64, 0x38, 0x76, 0x39, 0x45, 0x44, 0x45, 0x52, 0x6d, 0x38, 0x74, 0x4c, 0x6a, 0x76, 0x55, 0x59, 0x41, 0x47, 0x6d, 0x30, 0x43, 0x75, 0x69, 0x56, 0x64, 0x6a, 0x61, 0x45, 0x78, 0x55, 0x64, 0x31, 0x55, 0x52, 0x68, 0x78, 0x4e, 0x32, 0x35, 0x6d, 0x57, 0x37, 0x78, 0x6f, 0x63, 0x42, 0x46, 0x79, 0x6d, 0x0a, 0x46, 0x65, 0x39, 0x34, 0x34, 0x48, 0x6e, 0x2b, 0x58, 0x64, 0x73, 0x2b, 0x71, 0x6b, 0x78, 0x56, 0x2f, 0x5a, 0x6f, 0x56, 0x71, 0x57, 0x2f, 0x68, 0x70, 0x76, 0x76, 0x66, 0x63, 0x44, 0x44, 0x70, 0x77, 0x2b, 0x35, 0x43, 0x52, 0x75, 0x33, 0x43, 0x6b, 0x77, 0x57, 0x4a, 0x2b, 0x6e, 0x31, 0x6a, 0x65, 0x7a, 0x2f, 0x51, 0x63, 0x59, 0x46, 0x38, 0x41, 0x4f, 0x69, 0x59, 0x72, 0x67, 0x35, 0x34, 0x4e, 0x4d, 0x4d, 0x6c, 0x2b, 0x36, 0x38, 0x4b, 0x6e, 0x79, 0x42, 0x72, 0x0a, 0x33, 0x54, 0x73, 0x54, 0x6a, 0x78, 0x4b, 0x4d, 0x34, 0x6b, 0x45, 0x61, 0x53, 0x48, 0x70, 0x7a, 0x6f, 0x48, 0x64, 0x70, 0x78, 0x37, 0x5a, 0x63, 0x66, 0x34, 0x4c, 0x49, 0x48, 0x76, 0x35, 0x59, 0x47, 0x79, 0x67, 0x72, 0x71, 0x47, 0x79, 0x74, 0x58, 0x6d, 0x33, 0x41, 0x42, 0x64, 0x4a, 0x37, 0x74, 0x2b, 0x75, 0x41, 0x2f, 0x69, 0x55, 0x33, 0x2f, 0x67, 0x4b, 0x62, 0x61, 0x4b, 0x78, 0x43, 0x58, 0x63, 0x50, 0x75, 0x39, 0x63, 0x7a, 0x63, 0x38, 0x46, 0x42, 0x31, 0x0a, 0x30, 0x6a, 0x5a, 0x70, 0x6e, 0x4f, 0x5a, 0x37, 0x42, 0x4e, 0x39, 0x75, 0x42, 0x6d, 0x6d, 0x32, 0x33, 0x67, 0x6f, 0x4a, 0x53, 0x46, 0x6d, 0x48, 0x36, 0x33, 0x73, 0x55, 0x59, 0x48, 0x70, 0x6b, 0x71, 0x6d, 0x6c, 0x44, 0x37, 0x35, 0x48, 0x48, 0x54, 0x4f, 0x77, 0x59, 0x33, 0x57, 0x7a, 0x76, 0x55, 0x79, 0x32, 0x4d, 0x6d, 0x65, 0x46, 0x65, 0x38, 0x6e, 0x49, 0x2b, 0x7a, 0x31, 0x54, 0x49, 0x76, 0x57, 0x66, 0x73, 0x70, 0x41, 0x39, 0x4d, 0x52, 0x66, 0x2f, 0x54, 0x0a, 0x75, 0x54, 0x41, 0x6a, 0x42, 0x30, 0x79, 0x50, 0x45, 0x4c, 0x2b, 0x47, 0x6c, 0x74, 0x6d, 0x5a, 0x57, 0x72, 0x53, 0x5a, 0x56, 0x78, 0x79, 0x6b, 0x7a, 0x4c, 0x73, 0x56, 0x69, 0x56, 0x4f, 0x36, 0x4c, 0x41, 0x55, 0x50, 0x35, 0x4d, 0x53, 0x65, 0x47, 0x62, 0x45, 0x59, 0x4e, 0x4e, 0x56, 0x4d, 0x6e, 0x62, 0x72, 0x74, 0x39, 0x78, 0x2b, 0x76, 0x4a, 0x4a, 0x55, 0x45, 0x65, 0x4b, 0x67, 0x44, 0x75, 0x2b, 0x36, 0x42, 0x35, 0x64, 0x70, 0x66, 0x66, 0x49, 0x74, 0x4b, 0x0a, 0x6f, 0x5a, 0x42, 0x30, 0x4a, 0x61, 0x65, 0x7a, 0x50, 0x6b, 0x76, 0x49, 0x4c, 0x46, 0x61, 0x39, 0x78, 0x38, 0x6a, 0x76, 0x4f, 0x4f, 0x4a, 0x63, 0x6b, 0x76, 0x42, 0x35, 0x39, 0x35, 0x79, 0x45, 0x75, 0x6e, 0x51, 0x74, 0x59, 0x51, 0x45, 0x67, 0x66, 0x6e, 0x37, 0x52, 0x38, 0x6b, 0x38, 0x48, 0x57, 0x56, 0x2b, 0x4c, 0x4c, 0x55, 0x4e, 0x53, 0x36, 0x30, 0x59, 0x4d, 0x6c, 0x4f, 0x48, 0x31, 0x5a, 0x6b, 0x64, 0x35, 0x64, 0x39, 0x56, 0x55, 0x57, 0x78, 0x2b, 0x74, 0x0a, 0x4a, 0x44, 0x66, 0x4c, 0x52, 0x56, 0x70, 0x4f, 0x6f, 0x45, 0x52, 0x49, 0x79, 0x4e, 0x69, 0x77, 0x6d, 0x63, 0x55, 0x56, 0x68, 0x41, 0x6e, 0x32, 0x31, 0x6b, 0x6c, 0x4a, 0x77, 0x47, 0x57, 0x34, 0x35, 0x68, 0x70, 0x78, 0x62, 0x71, 0x43, 0x6f, 0x38, 0x59, 0x4c, 0x6f, 0x52, 0x54, 0x35, 0x73, 0x31, 0x67, 0x4c, 0x58, 0x43, 0x6d, 0x65, 0x44, 0x42, 0x56, 0x72, 0x4a, 0x70, 0x42, 0x41, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x4f, 0x49, 0x53, 0x54, 0x45, 0x20, 0x57, 0x49, 0x53, 0x65, 0x4b, 0x65, 0x79, 0x20, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x47, 0x43, 0x20, 0x43, 0x41, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x61, 0x54, 0x43, 0x43, 0x41, 0x65, 0x2b, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x49, 0x53, 0x70, 0x57, 0x44, 0x4b, 0x37, 0x61, 0x44, 0x4b, 0x74, 0x41, 0x52, 0x62, 0x38, 0x72, 0x6f, 0x69, 0x30, 0x36, 0x36, 0x6a, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x7a, 0x42, 0x74, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x44, 0x0a, 0x53, 0x44, 0x45, 0x51, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x48, 0x56, 0x30, 0x6c, 0x54, 0x5a, 0x55, 0x74, 0x6c, 0x65, 0x54, 0x45, 0x69, 0x4d, 0x43, 0x41, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x78, 0x4d, 0x5a, 0x54, 0x30, 0x6c, 0x54, 0x56, 0x45, 0x55, 0x67, 0x52, 0x6d, 0x39, 0x31, 0x62, 0x6d, 0x52, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x69, 0x42, 0x46, 0x62, 0x6d, 0x52, 0x76, 0x63, 0x6e, 0x4e, 0x6c, 0x5a, 0x44, 0x45, 0x6f, 0x0a, 0x4d, 0x43, 0x59, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x66, 0x54, 0x30, 0x6c, 0x54, 0x56, 0x45, 0x55, 0x67, 0x56, 0x30, 0x6c, 0x54, 0x5a, 0x55, 0x74, 0x6c, 0x65, 0x53, 0x42, 0x48, 0x62, 0x47, 0x39, 0x69, 0x59, 0x57, 0x77, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x48, 0x51, 0x79, 0x42, 0x44, 0x51, 0x54, 0x41, 0x65, 0x46, 0x77, 0x30, 0x78, 0x4e, 0x7a, 0x41, 0x31, 0x4d, 0x44, 0x6b, 0x77, 0x4f, 0x54, 0x51, 0x34, 0x4d, 0x7a, 0x52, 0x61, 0x0a, 0x46, 0x77, 0x30, 0x30, 0x4d, 0x6a, 0x41, 0x31, 0x4d, 0x44, 0x6b, 0x77, 0x4f, 0x54, 0x55, 0x34, 0x4d, 0x7a, 0x4e, 0x61, 0x4d, 0x47, 0x30, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6b, 0x4e, 0x49, 0x4d, 0x52, 0x41, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x77, 0x64, 0x58, 0x53, 0x56, 0x4e, 0x6c, 0x53, 0x32, 0x56, 0x35, 0x4d, 0x53, 0x49, 0x77, 0x49, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x0a, 0x45, 0x78, 0x6c, 0x50, 0x53, 0x56, 0x4e, 0x55, 0x52, 0x53, 0x42, 0x47, 0x62, 0x33, 0x56, 0x75, 0x5a, 0x47, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x49, 0x45, 0x56, 0x75, 0x5a, 0x47, 0x39, 0x79, 0x63, 0x32, 0x56, 0x6b, 0x4d, 0x53, 0x67, 0x77, 0x4a, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x39, 0x50, 0x53, 0x56, 0x4e, 0x55, 0x52, 0x53, 0x42, 0x58, 0x53, 0x56, 0x4e, 0x6c, 0x53, 0x32, 0x56, 0x35, 0x49, 0x45, 0x64, 0x73, 0x62, 0x32, 0x4a, 0x68, 0x0a, 0x62, 0x43, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x64, 0x44, 0x49, 0x45, 0x4e, 0x42, 0x4d, 0x48, 0x59, 0x77, 0x45, 0x41, 0x59, 0x48, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x43, 0x41, 0x51, 0x59, 0x46, 0x4b, 0x34, 0x45, 0x45, 0x41, 0x43, 0x49, 0x44, 0x59, 0x67, 0x41, 0x45, 0x54, 0x4f, 0x6c, 0x51, 0x77, 0x4d, 0x59, 0x50, 0x63, 0x68, 0x69, 0x38, 0x32, 0x50, 0x47, 0x36, 0x73, 0x34, 0x6e, 0x69, 0x65, 0x55, 0x71, 0x6a, 0x46, 0x71, 0x64, 0x72, 0x0a, 0x56, 0x43, 0x54, 0x62, 0x55, 0x66, 0x2f, 0x71, 0x39, 0x41, 0x6b, 0x6b, 0x77, 0x77, 0x73, 0x69, 0x6e, 0x38, 0x74, 0x71, 0x4a, 0x34, 0x4b, 0x42, 0x44, 0x64, 0x4c, 0x41, 0x72, 0x7a, 0x48, 0x6b, 0x64, 0x49, 0x4a, 0x75, 0x79, 0x69, 0x58, 0x5a, 0x6a, 0x48, 0x57, 0x64, 0x38, 0x64, 0x76, 0x51, 0x6d, 0x71, 0x4a, 0x4c, 0x49, 0x58, 0x34, 0x57, 0x70, 0x32, 0x4f, 0x51, 0x30, 0x6a, 0x6e, 0x55, 0x73, 0x59, 0x64, 0x34, 0x58, 0x78, 0x69, 0x57, 0x44, 0x31, 0x41, 0x62, 0x0a, 0x4e, 0x54, 0x63, 0x50, 0x61, 0x73, 0x62, 0x63, 0x32, 0x52, 0x4e, 0x4e, 0x70, 0x49, 0x36, 0x51, 0x4e, 0x2b, 0x61, 0x39, 0x57, 0x7a, 0x47, 0x52, 0x6f, 0x31, 0x51, 0x77, 0x55, 0x6a, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x51, 0x59, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x64, 0x0a, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x53, 0x49, 0x63, 0x55, 0x72, 0x4f, 0x50, 0x44, 0x6e, 0x70, 0x42, 0x67, 0x4f, 0x74, 0x66, 0x4b, 0x69, 0x65, 0x37, 0x54, 0x72, 0x59, 0x79, 0x30, 0x55, 0x47, 0x59, 0x77, 0x45, 0x41, 0x59, 0x4a, 0x4b, 0x77, 0x59, 0x42, 0x42, 0x41, 0x47, 0x43, 0x4e, 0x78, 0x55, 0x42, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x51, 0x41, 0x77, 0x43, 0x67, 0x59, 0x49, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x45, 0x0a, 0x41, 0x77, 0x4d, 0x44, 0x61, 0x41, 0x41, 0x77, 0x5a, 0x51, 0x49, 0x77, 0x4a, 0x73, 0x64, 0x70, 0x57, 0x39, 0x7a, 0x56, 0x35, 0x37, 0x4c, 0x6e, 0x79, 0x41, 0x79, 0x4d, 0x6a, 0x4d, 0x50, 0x64, 0x65, 0x59, 0x77, 0x62, 0x59, 0x39, 0x58, 0x4a, 0x55, 0x70, 0x52, 0x4f, 0x54, 0x59, 0x4a, 0x4b, 0x63, 0x78, 0x36, 0x79, 0x67, 0x49, 0x53, 0x70, 0x4a, 0x63, 0x42, 0x4d, 0x57, 0x6d, 0x31, 0x4a, 0x4b, 0x57, 0x42, 0x34, 0x45, 0x2b, 0x4a, 0x2b, 0x53, 0x4f, 0x74, 0x6b, 0x0a, 0x41, 0x6a, 0x45, 0x41, 0x32, 0x7a, 0x51, 0x67, 0x4d, 0x67, 0x6a, 0x2f, 0x6d, 0x6b, 0x6b, 0x43, 0x74, 0x6f, 0x6a, 0x65, 0x46, 0x4b, 0x39, 0x64, 0x62, 0x4a, 0x6c, 0x78, 0x6a, 0x52, 0x6f, 0x2f, 0x69, 0x39, 0x66, 0x67, 0x6f, 0x6a, 0x61, 0x47, 0x48, 0x41, 0x65, 0x43, 0x4f, 0x6e, 0x5a, 0x54, 0x2f, 0x63, 0x4b, 0x69, 0x37, 0x65, 0x39, 0x37, 0x73, 0x49, 0x42, 0x50, 0x57, 0x41, 0x39, 0x4c, 0x55, 0x7a, 0x6d, 0x39, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x55, 0x43, 0x41, 0x20, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x47, 0x32, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x52, 0x6a, 0x43, 0x43, 0x41, 0x79, 0x36, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x58, 0x64, 0x2b, 0x78, 0x32, 0x6c, 0x71, 0x6a, 0x37, 0x56, 0x32, 0x2b, 0x57, 0x6d, 0x55, 0x67, 0x5a, 0x51, 0x4f, 0x51, 0x37, 0x7a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x44, 0x41, 0x39, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x0a, 0x45, 0x77, 0x4a, 0x44, 0x54, 0x6a, 0x45, 0x52, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x49, 0x56, 0x57, 0x35, 0x70, 0x56, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x78, 0x47, 0x7a, 0x41, 0x5a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x45, 0x6c, 0x56, 0x44, 0x51, 0x53, 0x42, 0x48, 0x62, 0x47, 0x39, 0x69, 0x59, 0x57, 0x77, 0x67, 0x52, 0x7a, 0x49, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x44, 0x41, 0x65, 0x46, 0x77, 0x30, 0x78, 0x0a, 0x4e, 0x6a, 0x41, 0x7a, 0x4d, 0x54, 0x45, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x42, 0x61, 0x46, 0x77, 0x30, 0x30, 0x4d, 0x44, 0x45, 0x79, 0x4d, 0x7a, 0x45, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x42, 0x61, 0x4d, 0x44, 0x30, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6b, 0x4e, 0x4f, 0x4d, 0x52, 0x45, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x41, 0x68, 0x56, 0x62, 0x6d, 0x6c, 0x55, 0x0a, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x44, 0x45, 0x62, 0x4d, 0x42, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x77, 0x77, 0x53, 0x56, 0x55, 0x4e, 0x42, 0x49, 0x45, 0x64, 0x73, 0x62, 0x32, 0x4a, 0x68, 0x62, 0x43, 0x42, 0x48, 0x4d, 0x69, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x4d, 0x49, 0x49, 0x43, 0x49, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x45, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x38, 0x41, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x43, 0x67, 0x4b, 0x43, 0x41, 0x67, 0x45, 0x41, 0x78, 0x65, 0x59, 0x72, 0x62, 0x33, 0x7a, 0x76, 0x4a, 0x67, 0x55, 0x6e, 0x6f, 0x34, 0x45, 0x6b, 0x32, 0x6d, 0x2f, 0x4c, 0x41, 0x66, 0x6d, 0x5a, 0x6d, 0x71, 0x6b, 0x79, 0x77, 0x69, 0x4b, 0x48, 0x59, 0x55, 0x47, 0x52, 0x4f, 0x38, 0x76, 0x44, 0x61, 0x42, 0x73, 0x47, 0x78, 0x55, 0x79, 0x70, 0x4b, 0x38, 0x46, 0x6e, 0x46, 0x79, 0x49, 0x64, 0x4b, 0x2b, 0x33, 0x35, 0x4b, 0x59, 0x6d, 0x54, 0x0a, 0x6f, 0x6e, 0x69, 0x39, 0x6b, 0x6d, 0x75, 0x67, 0x6f, 0x77, 0x32, 0x69, 0x66, 0x73, 0x71, 0x54, 0x73, 0x36, 0x62, 0x52, 0x6a, 0x44, 0x58, 0x56, 0x64, 0x66, 0x6b, 0x58, 0x39, 0x73, 0x39, 0x46, 0x78, 0x65, 0x56, 0x36, 0x37, 0x48, 0x65, 0x54, 0x6f, 0x49, 0x38, 0x6a, 0x72, 0x67, 0x34, 0x61, 0x41, 0x33, 0x2b, 0x2b, 0x31, 0x4e, 0x44, 0x74, 0x4c, 0x6e, 0x75, 0x72, 0x52, 0x69, 0x4e, 0x62, 0x2f, 0x79, 0x7a, 0x6d, 0x56, 0x48, 0x71, 0x55, 0x77, 0x43, 0x6f, 0x56, 0x0a, 0x38, 0x4d, 0x6d, 0x4e, 0x73, 0x48, 0x6f, 0x37, 0x4a, 0x4f, 0x48, 0x58, 0x61, 0x4f, 0x49, 0x78, 0x50, 0x41, 0x59, 0x7a, 0x52, 0x72, 0x5a, 0x55, 0x45, 0x61, 0x61, 0x6c, 0x4c, 0x79, 0x4a, 0x55, 0x4b, 0x6c, 0x67, 0x4e, 0x41, 0x51, 0x4c, 0x78, 0x2b, 0x68, 0x56, 0x52, 0x5a, 0x32, 0x7a, 0x41, 0x2b, 0x74, 0x65, 0x32, 0x47, 0x33, 0x2f, 0x52, 0x56, 0x6f, 0x67, 0x76, 0x47, 0x6a, 0x71, 0x4e, 0x4f, 0x37, 0x75, 0x43, 0x45, 0x65, 0x42, 0x48, 0x41, 0x4e, 0x42, 0x53, 0x0a, 0x68, 0x36, 0x76, 0x37, 0x68, 0x6e, 0x34, 0x50, 0x4a, 0x47, 0x74, 0x41, 0x6e, 0x54, 0x52, 0x6e, 0x76, 0x49, 0x33, 0x48, 0x4c, 0x59, 0x5a, 0x76, 0x65, 0x54, 0x36, 0x4f, 0x71, 0x54, 0x77, 0x58, 0x53, 0x33, 0x2b, 0x77, 0x6d, 0x65, 0x4f, 0x77, 0x63, 0x57, 0x44, 0x63, 0x43, 0x2f, 0x56, 0x6b, 0x77, 0x38, 0x35, 0x44, 0x76, 0x47, 0x31, 0x78, 0x75, 0x64, 0x4c, 0x65, 0x4a, 0x31, 0x75, 0x4b, 0x36, 0x4e, 0x6a, 0x47, 0x72, 0x75, 0x46, 0x5a, 0x66, 0x63, 0x38, 0x6f, 0x0a, 0x4c, 0x54, 0x57, 0x34, 0x6c, 0x56, 0x59, 0x61, 0x38, 0x62, 0x4a, 0x59, 0x53, 0x37, 0x63, 0x53, 0x4e, 0x38, 0x68, 0x38, 0x73, 0x2b, 0x31, 0x4c, 0x67, 0x4f, 0x47, 0x4e, 0x2b, 0x6a, 0x49, 0x6a, 0x74, 0x6d, 0x2b, 0x33, 0x53, 0x4a, 0x55, 0x49, 0x73, 0x55, 0x52, 0x4f, 0x68, 0x59, 0x77, 0x36, 0x41, 0x6c, 0x51, 0x67, 0x4c, 0x39, 0x2b, 0x2f, 0x56, 0x30, 0x38, 0x37, 0x4f, 0x70, 0x41, 0x68, 0x31, 0x38, 0x45, 0x6d, 0x4e, 0x56, 0x51, 0x67, 0x37, 0x4d, 0x63, 0x2f, 0x0a, 0x52, 0x2b, 0x7a, 0x76, 0x57, 0x72, 0x39, 0x4c, 0x65, 0x73, 0x47, 0x74, 0x4f, 0x78, 0x64, 0x51, 0x58, 0x47, 0x4c, 0x59, 0x44, 0x30, 0x74, 0x4b, 0x33, 0x43, 0x76, 0x36, 0x62, 0x72, 0x78, 0x7a, 0x6b, 0x73, 0x33, 0x73, 0x78, 0x31, 0x44, 0x6f, 0x51, 0x5a, 0x62, 0x58, 0x71, 0x58, 0x35, 0x74, 0x32, 0x4f, 0x6b, 0x64, 0x6a, 0x34, 0x71, 0x31, 0x75, 0x56, 0x69, 0x53, 0x75, 0x6b, 0x71, 0x53, 0x4b, 0x77, 0x78, 0x57, 0x2f, 0x59, 0x44, 0x72, 0x43, 0x50, 0x42, 0x65, 0x0a, 0x4b, 0x57, 0x34, 0x62, 0x48, 0x41, 0x79, 0x76, 0x6a, 0x35, 0x4f, 0x4a, 0x72, 0x64, 0x75, 0x39, 0x6f, 0x35, 0x34, 0x68, 0x79, 0x6f, 0x6b, 0x5a, 0x37, 0x4e, 0x2b, 0x31, 0x77, 0x78, 0x72, 0x72, 0x46, 0x76, 0x35, 0x34, 0x4e, 0x6b, 0x7a, 0x57, 0x62, 0x74, 0x41, 0x2b, 0x46, 0x78, 0x79, 0x51, 0x46, 0x32, 0x73, 0x6d, 0x75, 0x76, 0x74, 0x36, 0x4c, 0x37, 0x38, 0x52, 0x48, 0x42, 0x67, 0x4f, 0x4c, 0x58, 0x4d, 0x44, 0x6a, 0x36, 0x44, 0x6c, 0x4e, 0x61, 0x42, 0x61, 0x0a, 0x34, 0x6b, 0x78, 0x31, 0x48, 0x58, 0x48, 0x68, 0x4f, 0x54, 0x68, 0x54, 0x65, 0x45, 0x44, 0x4d, 0x67, 0x35, 0x50, 0x58, 0x43, 0x70, 0x36, 0x64, 0x57, 0x34, 0x2b, 0x4b, 0x35, 0x4f, 0x58, 0x67, 0x53, 0x4f, 0x52, 0x49, 0x73, 0x6b, 0x66, 0x4e, 0x54, 0x69, 0x70, 0x31, 0x4b, 0x6e, 0x76, 0x79, 0x49, 0x76, 0x62, 0x4a, 0x76, 0x67, 0x6d, 0x52, 0x6c, 0x6c, 0x64, 0x36, 0x69, 0x49, 0x69, 0x73, 0x37, 0x6e, 0x43, 0x73, 0x2b, 0x64, 0x77, 0x70, 0x34, 0x77, 0x77, 0x63, 0x0a, 0x4f, 0x78, 0x4a, 0x4f, 0x52, 0x4e, 0x61, 0x6e, 0x54, 0x72, 0x41, 0x6d, 0x79, 0x50, 0x50, 0x5a, 0x47, 0x70, 0x65, 0x52, 0x61, 0x4f, 0x72, 0x76, 0x6a, 0x55, 0x59, 0x47, 0x30, 0x6c, 0x5a, 0x46, 0x57, 0x4a, 0x6f, 0x38, 0x44, 0x41, 0x2b, 0x44, 0x75, 0x41, 0x55, 0x6c, 0x77, 0x7a, 0x6e, 0x50, 0x4f, 0x36, 0x51, 0x30, 0x69, 0x62, 0x64, 0x35, 0x45, 0x69, 0x39, 0x48, 0x78, 0x65, 0x65, 0x70, 0x6c, 0x32, 0x6e, 0x38, 0x70, 0x6e, 0x64, 0x6e, 0x74, 0x64, 0x39, 0x37, 0x0a, 0x38, 0x58, 0x70, 0x6c, 0x46, 0x65, 0x52, 0x68, 0x56, 0x6d, 0x55, 0x43, 0x41, 0x77, 0x45, 0x41, 0x41, 0x61, 0x4e, 0x43, 0x4d, 0x45, 0x41, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x45, 0x47, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x0a, 0x42, 0x42, 0x59, 0x45, 0x46, 0x49, 0x48, 0x45, 0x6a, 0x4d, 0x7a, 0x31, 0x35, 0x44, 0x44, 0x2f, 0x70, 0x51, 0x77, 0x49, 0x58, 0x34, 0x77, 0x56, 0x5a, 0x79, 0x46, 0x30, 0x41, 0x64, 0x2f, 0x66, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x43, 0x77, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x41, 0x51, 0x41, 0x54, 0x5a, 0x53, 0x4c, 0x31, 0x6a, 0x69, 0x75, 0x74, 0x52, 0x4f, 0x54, 0x4c, 0x2f, 0x37, 0x6c, 0x6f, 0x0a, 0x35, 0x73, 0x4f, 0x41, 0x53, 0x44, 0x30, 0x45, 0x65, 0x2f, 0x6f, 0x6a, 0x4c, 0x33, 0x72, 0x74, 0x4e, 0x74, 0x71, 0x79, 0x7a, 0x6d, 0x33, 0x32, 0x35, 0x70, 0x37, 0x6c, 0x58, 0x31, 0x69, 0x50, 0x79, 0x7a, 0x63, 0x79, 0x6f, 0x63, 0x68, 0x6c, 0x74, 0x71, 0x34, 0x34, 0x50, 0x54, 0x55, 0x62, 0x50, 0x72, 0x77, 0x37, 0x74, 0x67, 0x54, 0x51, 0x76, 0x50, 0x6c, 0x4a, 0x39, 0x5a, 0x76, 0x33, 0x68, 0x63, 0x55, 0x32, 0x74, 0x73, 0x75, 0x38, 0x2b, 0x4d, 0x67, 0x35, 0x0a, 0x31, 0x65, 0x52, 0x66, 0x42, 0x37, 0x30, 0x56, 0x56, 0x4a, 0x64, 0x30, 0x79, 0x73, 0x72, 0x74, 0x54, 0x37, 0x71, 0x36, 0x5a, 0x48, 0x61, 0x66, 0x67, 0x62, 0x69, 0x45, 0x52, 0x55, 0x6c, 0x4d, 0x6a, 0x57, 0x2b, 0x69, 0x36, 0x37, 0x48, 0x4d, 0x30, 0x63, 0x4f, 0x55, 0x32, 0x6b, 0x54, 0x43, 0x35, 0x75, 0x4c, 0x71, 0x47, 0x4f, 0x69, 0x69, 0x48, 0x79, 0x63, 0x46, 0x75, 0x74, 0x66, 0x6c, 0x31, 0x71, 0x6e, 0x4e, 0x33, 0x65, 0x39, 0x32, 0x6d, 0x49, 0x30, 0x41, 0x0a, 0x44, 0x73, 0x30, 0x62, 0x2b, 0x67, 0x4f, 0x33, 0x6a, 0x6f, 0x42, 0x59, 0x44, 0x69, 0x63, 0x2f, 0x55, 0x76, 0x75, 0x55, 0x6f, 0x73, 0x70, 0x65, 0x5a, 0x63, 0x6e, 0x57, 0x68, 0x4e, 0x71, 0x35, 0x4e, 0x58, 0x48, 0x7a, 0x4a, 0x73, 0x42, 0x50, 0x64, 0x2b, 0x61, 0x42, 0x4a, 0x39, 0x4a, 0x33, 0x4f, 0x35, 0x6f, 0x55, 0x62, 0x33, 0x6e, 0x30, 0x39, 0x74, 0x44, 0x68, 0x30, 0x35, 0x53, 0x36, 0x30, 0x46, 0x64, 0x52, 0x76, 0x53, 0x63, 0x46, 0x44, 0x63, 0x48, 0x39, 0x0a, 0x79, 0x42, 0x49, 0x77, 0x37, 0x6d, 0x2b, 0x4e, 0x45, 0x53, 0x73, 0x49, 0x6e, 0x64, 0x54, 0x55, 0x76, 0x34, 0x42, 0x46, 0x46, 0x4a, 0x71, 0x49, 0x52, 0x4e, 0x6f, 0x77, 0x36, 0x72, 0x53, 0x6e, 0x34, 0x2b, 0x37, 0x76, 0x57, 0x34, 0x4c, 0x56, 0x50, 0x74, 0x61, 0x74, 0x65, 0x4a, 0x4c, 0x62, 0x58, 0x44, 0x7a, 0x7a, 0x32, 0x4b, 0x33, 0x36, 0x75, 0x47, 0x74, 0x2f, 0x78, 0x44, 0x59, 0x6f, 0x74, 0x67, 0x49, 0x56, 0x69, 0x6c, 0x51, 0x73, 0x6e, 0x4c, 0x41, 0x58, 0x0a, 0x63, 0x34, 0x37, 0x51, 0x4e, 0x36, 0x4d, 0x55, 0x50, 0x4a, 0x69, 0x56, 0x41, 0x41, 0x77, 0x70, 0x42, 0x56, 0x75, 0x65, 0x53, 0x55, 0x6d, 0x78, 0x58, 0x38, 0x66, 0x6a, 0x79, 0x38, 0x38, 0x6e, 0x5a, 0x59, 0x34, 0x31, 0x46, 0x37, 0x64, 0x58, 0x79, 0x44, 0x44, 0x5a, 0x51, 0x56, 0x75, 0x35, 0x46, 0x4c, 0x62, 0x6f, 0x77, 0x67, 0x2b, 0x55, 0x4d, 0x61, 0x65, 0x55, 0x6d, 0x4d, 0x78, 0x71, 0x36, 0x37, 0x58, 0x68, 0x4a, 0x2f, 0x55, 0x51, 0x71, 0x41, 0x48, 0x6f, 0x0a, 0x6a, 0x68, 0x4a, 0x69, 0x36, 0x49, 0x6a, 0x4d, 0x74, 0x58, 0x39, 0x47, 0x6c, 0x38, 0x43, 0x62, 0x45, 0x47, 0x59, 0x34, 0x47, 0x6a, 0x5a, 0x47, 0x58, 0x79, 0x4a, 0x6f, 0x50, 0x64, 0x2f, 0x4a, 0x78, 0x68, 0x4d, 0x6e, 0x71, 0x31, 0x4d, 0x47, 0x72, 0x4b, 0x49, 0x38, 0x68, 0x67, 0x5a, 0x6c, 0x62, 0x37, 0x46, 0x2b, 0x73, 0x53, 0x6c, 0x45, 0x6d, 0x71, 0x4f, 0x36, 0x53, 0x57, 0x6b, 0x6f, 0x61, 0x59, 0x2f, 0x58, 0x35, 0x56, 0x2b, 0x74, 0x42, 0x49, 0x5a, 0x6b, 0x0a, 0x62, 0x78, 0x71, 0x67, 0x44, 0x4d, 0x55, 0x49, 0x59, 0x73, 0x36, 0x41, 0x6f, 0x39, 0x44, 0x7a, 0x37, 0x47, 0x6a, 0x65, 0x76, 0x6a, 0x50, 0x48, 0x46, 0x31, 0x74, 0x2f, 0x67, 0x4d, 0x52, 0x4d, 0x54, 0x4c, 0x47, 0x6d, 0x68, 0x49, 0x72, 0x44, 0x4f, 0x37, 0x67, 0x4a, 0x7a, 0x52, 0x53, 0x42, 0x75, 0x68, 0x6a, 0x6a, 0x56, 0x46, 0x63, 0x32, 0x2f, 0x74, 0x73, 0x76, 0x66, 0x45, 0x65, 0x68, 0x4f, 0x6a, 0x50, 0x49, 0x2b, 0x56, 0x67, 0x37, 0x52, 0x45, 0x2b, 0x78, 0x0a, 0x79, 0x67, 0x4b, 0x4a, 0x42, 0x4a, 0x59, 0x6f, 0x61, 0x4d, 0x56, 0x4c, 0x75, 0x43, 0x61, 0x4a, 0x75, 0x39, 0x59, 0x7a, 0x4c, 0x31, 0x44, 0x56, 0x2f, 0x70, 0x71, 0x4a, 0x75, 0x68, 0x67, 0x79, 0x6b, 0x6c, 0x54, 0x47, 0x57, 0x2b, 0x43, 0x64, 0x2b, 0x56, 0x37, 0x6c, 0x44, 0x53, 0x4b, 0x62, 0x39, 0x74, 0x72, 0x69, 0x79, 0x43, 0x47, 0x79, 0x59, 0x69, 0x47, 0x71, 0x68, 0x6b, 0x43, 0x79, 0x4c, 0x6d, 0x54, 0x54, 0x58, 0x38, 0x6a, 0x6a, 0x66, 0x68, 0x46, 0x6e, 0x0a, 0x52, 0x52, 0x38, 0x46, 0x2f, 0x75, 0x4f, 0x69, 0x37, 0x37, 0x4f, 0x6f, 0x73, 0x2f, 0x4e, 0x39, 0x6a, 0x2f, 0x67, 0x4d, 0x48, 0x79, 0x49, 0x66, 0x4c, 0x58, 0x43, 0x30, 0x75, 0x41, 0x45, 0x30, 0x64, 0x6a, 0x41, 0x41, 0x35, 0x53, 0x4e, 0x34, 0x70, 0x31, 0x62, 0x58, 0x55, 0x42, 0x2b, 0x4b, 0x2b, 0x77, 0x62, 0x31, 0x77, 0x68, 0x6e, 0x77, 0x30, 0x41, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x55, 0x43, 0x41, 0x20, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x57, 0x6a, 0x43, 0x43, 0x41, 0x30, 0x4b, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x54, 0x39, 0x49, 0x72, 0x6a, 0x2f, 0x56, 0x6b, 0x79, 0x44, 0x4f, 0x65, 0x54, 0x7a, 0x52, 0x59, 0x5a, 0x69, 0x4e, 0x77, 0x59, 0x44, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x44, 0x42, 0x48, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x0a, 0x45, 0x77, 0x4a, 0x44, 0x54, 0x6a, 0x45, 0x52, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x49, 0x56, 0x57, 0x35, 0x70, 0x56, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x78, 0x4a, 0x54, 0x41, 0x6a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x48, 0x46, 0x56, 0x44, 0x51, 0x53, 0x42, 0x46, 0x65, 0x48, 0x52, 0x6c, 0x62, 0x6d, 0x52, 0x6c, 0x5a, 0x43, 0x42, 0x57, 0x59, 0x57, 0x78, 0x70, 0x5a, 0x47, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x0a, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x54, 0x55, 0x77, 0x4d, 0x7a, 0x45, 0x7a, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x7a, 0x67, 0x78, 0x4d, 0x6a, 0x4d, 0x78, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x6a, 0x42, 0x48, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x44, 0x54, 0x6a, 0x45, 0x52, 0x4d, 0x41, 0x38, 0x47, 0x0a, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x49, 0x56, 0x57, 0x35, 0x70, 0x56, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x78, 0x4a, 0x54, 0x41, 0x6a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x48, 0x46, 0x56, 0x44, 0x51, 0x53, 0x42, 0x46, 0x65, 0x48, 0x52, 0x6c, 0x62, 0x6d, 0x52, 0x6c, 0x5a, 0x43, 0x42, 0x57, 0x59, 0x57, 0x78, 0x70, 0x5a, 0x47, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x77, 0x67, 0x67, 0x49, 0x69, 0x0a, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x49, 0x4b, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x43, 0x70, 0x43, 0x51, 0x63, 0x6f, 0x45, 0x77, 0x4b, 0x77, 0x6d, 0x65, 0x42, 0x6b, 0x71, 0x68, 0x35, 0x44, 0x46, 0x6e, 0x70, 0x7a, 0x73, 0x5a, 0x47, 0x67, 0x64, 0x54, 0x36, 0x6f, 0x2b, 0x75, 0x4d, 0x34, 0x41, 0x48, 0x72, 0x73, 0x0a, 0x69, 0x57, 0x6f, 0x67, 0x44, 0x34, 0x76, 0x46, 0x73, 0x4a, 0x73, 0x7a, 0x41, 0x31, 0x71, 0x47, 0x78, 0x6c, 0x69, 0x47, 0x31, 0x63, 0x47, 0x46, 0x75, 0x30, 0x2f, 0x47, 0x6e, 0x45, 0x42, 0x4e, 0x79, 0x72, 0x37, 0x75, 0x61, 0x5a, 0x61, 0x34, 0x72, 0x59, 0x45, 0x77, 0x6d, 0x6e, 0x79, 0x53, 0x42, 0x65, 0x73, 0x46, 0x4b, 0x35, 0x70, 0x49, 0x30, 0x4c, 0x68, 0x32, 0x50, 0x70, 0x62, 0x49, 0x49, 0x4c, 0x76, 0x53, 0x73, 0x50, 0x47, 0x50, 0x32, 0x4b, 0x78, 0x46, 0x0a, 0x52, 0x76, 0x2b, 0x71, 0x5a, 0x32, 0x43, 0x30, 0x64, 0x33, 0x35, 0x71, 0x48, 0x7a, 0x77, 0x61, 0x55, 0x6e, 0x6f, 0x45, 0x50, 0x51, 0x63, 0x38, 0x68, 0x51, 0x32, 0x45, 0x30, 0x42, 0x39, 0x32, 0x43, 0x76, 0x64, 0x71, 0x46, 0x4e, 0x39, 0x79, 0x34, 0x7a, 0x52, 0x38, 0x56, 0x30, 0x35, 0x57, 0x41, 0x54, 0x35, 0x35, 0x38, 0x61, 0x6f, 0x70, 0x4f, 0x32, 0x7a, 0x36, 0x2b, 0x49, 0x39, 0x74, 0x54, 0x63, 0x67, 0x31, 0x33, 0x36, 0x37, 0x72, 0x33, 0x43, 0x54, 0x75, 0x0a, 0x65, 0x55, 0x57, 0x6e, 0x68, 0x62, 0x59, 0x46, 0x69, 0x4e, 0x36, 0x49, 0x58, 0x53, 0x56, 0x38, 0x6c, 0x32, 0x52, 0x6e, 0x43, 0x64, 0x6d, 0x2f, 0x57, 0x68, 0x55, 0x46, 0x68, 0x76, 0x4d, 0x4a, 0x48, 0x75, 0x78, 0x59, 0x4d, 0x6a, 0x4d, 0x52, 0x38, 0x33, 0x64, 0x6b, 0x73, 0x48, 0x59, 0x66, 0x35, 0x42, 0x41, 0x31, 0x46, 0x78, 0x76, 0x79, 0x44, 0x72, 0x46, 0x73, 0x70, 0x43, 0x71, 0x6a, 0x63, 0x2f, 0x77, 0x4a, 0x48, 0x78, 0x34, 0x79, 0x47, 0x56, 0x4d, 0x52, 0x0a, 0x35, 0x39, 0x6d, 0x7a, 0x4c, 0x43, 0x35, 0x32, 0x4c, 0x71, 0x47, 0x6a, 0x33, 0x6e, 0x35, 0x71, 0x69, 0x41, 0x6e, 0x6f, 0x38, 0x67, 0x65, 0x4b, 0x2b, 0x4c, 0x4c, 0x4e, 0x45, 0x4f, 0x66, 0x69, 0x63, 0x30, 0x43, 0x54, 0x75, 0x77, 0x6a, 0x52, 0x50, 0x2b, 0x48, 0x38, 0x43, 0x35, 0x53, 0x7a, 0x4a, 0x65, 0x39, 0x38, 0x70, 0x74, 0x66, 0x52, 0x72, 0x35, 0x2f, 0x2f, 0x6c, 0x70, 0x72, 0x31, 0x6b, 0x58, 0x75, 0x59, 0x43, 0x33, 0x66, 0x55, 0x66, 0x75, 0x67, 0x48, 0x0a, 0x30, 0x6d, 0x4b, 0x31, 0x6c, 0x54, 0x6e, 0x6a, 0x38, 0x2f, 0x46, 0x74, 0x44, 0x77, 0x35, 0x6c, 0x68, 0x49, 0x70, 0x6a, 0x56, 0x4d, 0x57, 0x41, 0x74, 0x75, 0x43, 0x65, 0x53, 0x33, 0x31, 0x48, 0x4a, 0x71, 0x63, 0x42, 0x43, 0x46, 0x33, 0x52, 0x69, 0x4a, 0x37, 0x58, 0x77, 0x7a, 0x4a, 0x45, 0x2b, 0x6f, 0x4a, 0x4b, 0x43, 0x6d, 0x68, 0x55, 0x66, 0x7a, 0x68, 0x54, 0x41, 0x38, 0x79, 0x6b, 0x41, 0x44, 0x4e, 0x6b, 0x55, 0x56, 0x6b, 0x4c, 0x6f, 0x34, 0x4b, 0x52, 0x0a, 0x65, 0x6c, 0x37, 0x73, 0x46, 0x73, 0x4c, 0x7a, 0x4b, 0x75, 0x5a, 0x69, 0x32, 0x69, 0x72, 0x62, 0x57, 0x57, 0x49, 0x51, 0x4a, 0x55, 0x6f, 0x71, 0x67, 0x51, 0x74, 0x48, 0x42, 0x30, 0x4d, 0x47, 0x63, 0x49, 0x66, 0x53, 0x2b, 0x70, 0x4d, 0x52, 0x4b, 0x58, 0x70, 0x49, 0x54, 0x65, 0x75, 0x55, 0x78, 0x33, 0x42, 0x4e, 0x72, 0x32, 0x66, 0x56, 0x55, 0x62, 0x47, 0x41, 0x49, 0x41, 0x45, 0x42, 0x74, 0x48, 0x6f, 0x49, 0x70, 0x70, 0x42, 0x2f, 0x54, 0x75, 0x44, 0x76, 0x0a, 0x42, 0x30, 0x47, 0x48, 0x72, 0x32, 0x71, 0x6c, 0x58, 0x6f, 0x76, 0x37, 0x7a, 0x31, 0x43, 0x79, 0x6d, 0x6c, 0x53, 0x76, 0x77, 0x34, 0x6d, 0x36, 0x57, 0x43, 0x33, 0x31, 0x4d, 0x4a, 0x69, 0x78, 0x4e, 0x6e, 0x49, 0x35, 0x66, 0x6b, 0x6b, 0x45, 0x2f, 0x53, 0x6d, 0x6e, 0x54, 0x48, 0x6e, 0x6b, 0x42, 0x56, 0x66, 0x62, 0x6c, 0x4c, 0x6b, 0x57, 0x55, 0x34, 0x31, 0x47, 0x73, 0x78, 0x32, 0x56, 0x59, 0x56, 0x64, 0x57, 0x66, 0x36, 0x2f, 0x77, 0x46, 0x6c, 0x74, 0x68, 0x0a, 0x57, 0x47, 0x38, 0x32, 0x55, 0x42, 0x45, 0x4c, 0x32, 0x4b, 0x77, 0x72, 0x6c, 0x52, 0x59, 0x61, 0x44, 0x68, 0x38, 0x49, 0x7a, 0x54, 0x59, 0x30, 0x5a, 0x52, 0x42, 0x69, 0x5a, 0x74, 0x57, 0x41, 0x58, 0x78, 0x51, 0x67, 0x58, 0x79, 0x30, 0x4d, 0x6f, 0x48, 0x67, 0x4b, 0x61, 0x4e, 0x59, 0x73, 0x31, 0x2b, 0x6c, 0x76, 0x4b, 0x39, 0x4a, 0x4b, 0x42, 0x5a, 0x50, 0x38, 0x6e, 0x6d, 0x39, 0x72, 0x5a, 0x2f, 0x2b, 0x49, 0x38, 0x55, 0x36, 0x6c, 0x61, 0x55, 0x70, 0x53, 0x0a, 0x4e, 0x77, 0x58, 0x71, 0x78, 0x68, 0x61, 0x4e, 0x30, 0x73, 0x53, 0x5a, 0x30, 0x59, 0x49, 0x72, 0x4f, 0x37, 0x6f, 0x31, 0x64, 0x66, 0x64, 0x52, 0x55, 0x56, 0x6a, 0x7a, 0x79, 0x41, 0x66, 0x64, 0x35, 0x4c, 0x51, 0x44, 0x66, 0x77, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x32, 0x58, 0x51, 0x36, 0x35, 0x44, 0x41, 0x39, 0x44, 0x66, 0x63, 0x53, 0x0a, 0x33, 0x48, 0x35, 0x61, 0x42, 0x5a, 0x38, 0x65, 0x4e, 0x4a, 0x72, 0x33, 0x34, 0x52, 0x51, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x59, 0x59, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x0a, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x42, 0x41, 0x44, 0x61, 0x4e, 0x6c, 0x38, 0x78, 0x43, 0x46, 0x57, 0x51, 0x70, 0x4e, 0x35, 0x73, 0x6d, 0x4c, 0x4e, 0x62, 0x37, 0x72, 0x68, 0x56, 0x70, 0x4c, 0x47, 0x73, 0x61, 0x47, 0x76, 0x64, 0x66, 0x74, 0x76, 0x6b, 0x48, 0x54, 0x46, 0x6e, 0x71, 0x38, 0x38, 0x6e, 0x49, 0x75, 0x61, 0x37, 0x4d, 0x75, 0x69, 0x35, 0x36, 0x33, 0x4d, 0x44, 0x31, 0x73, 0x43, 0x33, 0x41, 0x4f, 0x36, 0x2b, 0x66, 0x63, 0x41, 0x55, 0x52, 0x0a, 0x61, 0x70, 0x38, 0x6c, 0x54, 0x77, 0x45, 0x70, 0x63, 0x4f, 0x50, 0x6c, 0x44, 0x4f, 0x48, 0x71, 0x57, 0x6e, 0x7a, 0x63, 0x53, 0x62, 0x76, 0x42, 0x48, 0x69, 0x71, 0x42, 0x39, 0x52, 0x5a, 0x4c, 0x63, 0x70, 0x48, 0x49, 0x6f, 0x6a, 0x47, 0x35, 0x71, 0x74, 0x72, 0x38, 0x6e, 0x52, 0x2f, 0x7a, 0x58, 0x55, 0x41, 0x43, 0x45, 0x2f, 0x78, 0x4f, 0x48, 0x41, 0x62, 0x4b, 0x73, 0x78, 0x53, 0x51, 0x56, 0x42, 0x63, 0x5a, 0x45, 0x68, 0x72, 0x78, 0x48, 0x39, 0x63, 0x4d, 0x0a, 0x61, 0x56, 0x72, 0x32, 0x63, 0x58, 0x6a, 0x30, 0x6c, 0x48, 0x32, 0x52, 0x43, 0x34, 0x37, 0x73, 0x6b, 0x46, 0x53, 0x4f, 0x76, 0x47, 0x2b, 0x68, 0x54, 0x4b, 0x76, 0x38, 0x64, 0x47, 0x54, 0x39, 0x63, 0x5a, 0x72, 0x34, 0x51, 0x51, 0x65, 0x68, 0x7a, 0x5a, 0x48, 0x6b, 0x50, 0x4a, 0x72, 0x67, 0x6d, 0x7a, 0x49, 0x35, 0x63, 0x36, 0x73, 0x71, 0x31, 0x57, 0x6e, 0x49, 0x65, 0x4a, 0x45, 0x6d, 0x4d, 0x58, 0x33, 0x69, 0x78, 0x7a, 0x44, 0x78, 0x2f, 0x42, 0x52, 0x34, 0x0a, 0x64, 0x78, 0x49, 0x4f, 0x45, 0x2f, 0x54, 0x64, 0x46, 0x70, 0x53, 0x2f, 0x53, 0x32, 0x64, 0x37, 0x63, 0x46, 0x4f, 0x46, 0x79, 0x72, 0x43, 0x37, 0x38, 0x7a, 0x68, 0x4e, 0x4c, 0x4a, 0x41, 0x35, 0x77, 0x41, 0x33, 0x43, 0x58, 0x57, 0x76, 0x70, 0x34, 0x75, 0x58, 0x56, 0x69, 0x49, 0x33, 0x57, 0x4c, 0x4c, 0x2b, 0x72, 0x47, 0x37, 0x36, 0x31, 0x4b, 0x49, 0x63, 0x53, 0x46, 0x33, 0x52, 0x75, 0x2f, 0x48, 0x33, 0x38, 0x6a, 0x39, 0x43, 0x48, 0x4a, 0x72, 0x41, 0x62, 0x0a, 0x2b, 0x37, 0x6c, 0x73, 0x71, 0x2b, 0x4b, 0x65, 0x50, 0x52, 0x58, 0x42, 0x4f, 0x79, 0x35, 0x6e, 0x41, 0x6c, 0x69, 0x52, 0x6e, 0x2b, 0x2f, 0x34, 0x51, 0x68, 0x38, 0x73, 0x74, 0x32, 0x6a, 0x31, 0x64, 0x61, 0x33, 0x50, 0x74, 0x66, 0x62, 0x2f, 0x45, 0x58, 0x33, 0x43, 0x38, 0x43, 0x53, 0x6c, 0x72, 0x64, 0x50, 0x36, 0x6f, 0x44, 0x79, 0x70, 0x2b, 0x6c, 0x33, 0x63, 0x70, 0x61, 0x44, 0x76, 0x52, 0x4b, 0x53, 0x2b, 0x31, 0x75, 0x6a, 0x6c, 0x35, 0x42, 0x4f, 0x57, 0x0a, 0x46, 0x33, 0x73, 0x47, 0x50, 0x6a, 0x4c, 0x74, 0x78, 0x37, 0x64, 0x43, 0x76, 0x48, 0x61, 0x6a, 0x32, 0x47, 0x55, 0x34, 0x4b, 0x7a, 0x67, 0x31, 0x55, 0x53, 0x45, 0x4f, 0x44, 0x6d, 0x38, 0x75, 0x4e, 0x42, 0x4e, 0x41, 0x34, 0x53, 0x74, 0x6e, 0x44, 0x47, 0x31, 0x4b, 0x51, 0x54, 0x41, 0x59, 0x49, 0x31, 0x6f, 0x79, 0x56, 0x5a, 0x6e, 0x4a, 0x46, 0x2b, 0x41, 0x38, 0x33, 0x76, 0x62, 0x73, 0x65, 0x61, 0x30, 0x72, 0x57, 0x42, 0x6d, 0x69, 0x72, 0x53, 0x77, 0x69, 0x0a, 0x47, 0x70, 0x57, 0x4f, 0x76, 0x70, 0x61, 0x51, 0x58, 0x55, 0x4a, 0x58, 0x78, 0x50, 0x6b, 0x55, 0x41, 0x7a, 0x55, 0x72, 0x48, 0x43, 0x31, 0x52, 0x56, 0x77, 0x69, 0x6e, 0x4f, 0x74, 0x34, 0x2f, 0x35, 0x4d, 0x69, 0x30, 0x41, 0x33, 0x50, 0x43, 0x77, 0x53, 0x61, 0x41, 0x75, 0x77, 0x74, 0x43, 0x48, 0x36, 0x30, 0x4e, 0x72, 0x79, 0x5a, 0x79, 0x32, 0x73, 0x79, 0x2b, 0x73, 0x36, 0x4f, 0x44, 0x57, 0x41, 0x32, 0x43, 0x78, 0x52, 0x39, 0x47, 0x55, 0x65, 0x4f, 0x63, 0x0a, 0x47, 0x4d, 0x79, 0x4e, 0x6d, 0x34, 0x33, 0x73, 0x53, 0x65, 0x74, 0x31, 0x55, 0x4e, 0x57, 0x4d, 0x4b, 0x46, 0x6e, 0x4b, 0x64, 0x44, 0x54, 0x61, 0x6a, 0x41, 0x73, 0x68, 0x71, 0x78, 0x37, 0x71, 0x47, 0x2b, 0x58, 0x48, 0x2f, 0x52, 0x55, 0x2b, 0x77, 0x42, 0x65, 0x71, 0x2b, 0x79, 0x4e, 0x75, 0x4a, 0x6b, 0x62, 0x4c, 0x2b, 0x76, 0x6d, 0x78, 0x63, 0x6d, 0x74, 0x70, 0x7a, 0x79, 0x4b, 0x45, 0x43, 0x32, 0x49, 0x50, 0x72, 0x4e, 0x6b, 0x5a, 0x41, 0x4a, 0x53, 0x69, 0x0a, 0x64, 0x6a, 0x7a, 0x55, 0x4c, 0x5a, 0x72, 0x74, 0x42, 0x4a, 0x34, 0x74, 0x42, 0x6d, 0x49, 0x51, 0x4e, 0x31, 0x49, 0x63, 0x68, 0x58, 0x49, 0x62, 0x4a, 0x2b, 0x58, 0x4d, 0x78, 0x6a, 0x48, 0x73, 0x4e, 0x2b, 0x78, 0x6a, 0x57, 0x5a, 0x73, 0x4c, 0x48, 0x58, 0x62, 0x4d, 0x66, 0x6a, 0x4b, 0x61, 0x69, 0x4a, 0x55, 0x49, 0x4e, 0x6c, 0x4b, 0x37, 0x33, 0x6e, 0x5a, 0x66, 0x64, 0x6b, 0x6c, 0x4a, 0x72, 0x58, 0x2b, 0x39, 0x5a, 0x53, 0x43, 0x79, 0x79, 0x63, 0x45, 0x72, 0x0a, 0x64, 0x68, 0x68, 0x32, 0x6e, 0x31, 0x61, 0x78, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x43, 0x65, 0x72, 0x74, 0x69, 0x67, 0x6e, 0x61, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x47, 0x57, 0x7a, 0x43, 0x43, 0x42, 0x45, 0x4f, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x52, 0x41, 0x4d, 0x72, 0x70, 0x47, 0x34, 0x6e, 0x78, 0x56, 0x51, 0x4d, 0x4e, 0x6f, 0x2b, 0x5a, 0x42, 0x62, 0x63, 0x54, 0x6a, 0x70, 0x75, 0x45, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x77, 0x57, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x0a, 0x42, 0x68, 0x4d, 0x43, 0x52, 0x6c, 0x49, 0x78, 0x45, 0x6a, 0x41, 0x51, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x43, 0x55, 0x52, 0x6f, 0x61, 0x57, 0x31, 0x35, 0x62, 0x33, 0x52, 0x70, 0x63, 0x7a, 0x45, 0x63, 0x4d, 0x42, 0x6f, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x77, 0x77, 0x54, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x69, 0x41, 0x30, 0x4f, 0x44, 0x45, 0x30, 0x4e, 0x6a, 0x4d, 0x77, 0x4f, 0x44, 0x45, 0x77, 0x4d, 0x44, 0x41, 0x7a, 0x4e, 0x6a, 0x45, 0x5a, 0x0a, 0x4d, 0x42, 0x63, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x77, 0x77, 0x51, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6e, 0x62, 0x6d, 0x45, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x51, 0x54, 0x41, 0x65, 0x46, 0x77, 0x30, 0x78, 0x4d, 0x7a, 0x45, 0x77, 0x4d, 0x44, 0x45, 0x77, 0x4f, 0x44, 0x4d, 0x79, 0x4d, 0x6a, 0x64, 0x61, 0x46, 0x77, 0x30, 0x7a, 0x4d, 0x7a, 0x45, 0x77, 0x4d, 0x44, 0x45, 0x77, 0x4f, 0x44, 0x4d, 0x79, 0x4d, 0x6a, 0x64, 0x61, 0x0a, 0x4d, 0x46, 0x6f, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6b, 0x5a, 0x53, 0x4d, 0x52, 0x49, 0x77, 0x45, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x41, 0x6c, 0x45, 0x61, 0x47, 0x6c, 0x74, 0x65, 0x57, 0x39, 0x30, 0x61, 0x58, 0x4d, 0x78, 0x48, 0x44, 0x41, 0x61, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x73, 0x4d, 0x45, 0x7a, 0x41, 0x77, 0x4d, 0x44, 0x49, 0x67, 0x4e, 0x44, 0x67, 0x78, 0x4e, 0x44, 0x59, 0x7a, 0x0a, 0x4d, 0x44, 0x67, 0x78, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x7a, 0x59, 0x78, 0x47, 0x54, 0x41, 0x58, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x45, 0x45, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x70, 0x5a, 0x32, 0x35, 0x68, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x77, 0x67, 0x67, 0x49, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x0a, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x49, 0x4b, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x44, 0x4e, 0x47, 0x44, 0x6c, 0x6c, 0x47, 0x6c, 0x6d, 0x78, 0x36, 0x6d, 0x51, 0x57, 0x44, 0x6f, 0x79, 0x55, 0x4a, 0x4a, 0x56, 0x38, 0x67, 0x39, 0x50, 0x46, 0x4f, 0x53, 0x62, 0x63, 0x44, 0x4f, 0x38, 0x57, 0x56, 0x34, 0x33, 0x58, 0x32, 0x4b, 0x79, 0x6a, 0x51, 0x6e, 0x2b, 0x43, 0x79, 0x75, 0x33, 0x4e, 0x57, 0x39, 0x73, 0x4f, 0x74, 0x79, 0x33, 0x74, 0x52, 0x51, 0x67, 0x58, 0x0a, 0x73, 0x74, 0x6d, 0x7a, 0x79, 0x39, 0x59, 0x58, 0x55, 0x6e, 0x49, 0x6f, 0x32, 0x34, 0x35, 0x4f, 0x6e, 0x6f, 0x71, 0x32, 0x43, 0x2f, 0x6d, 0x65, 0x68, 0x4a, 0x70, 0x4e, 0x64, 0x74, 0x34, 0x69, 0x4b, 0x56, 0x7a, 0x53, 0x73, 0x39, 0x49, 0x47, 0x50, 0x6a, 0x41, 0x35, 0x71, 0x58, 0x53, 0x6a, 0x6b, 0x6c, 0x59, 0x63, 0x6f, 0x57, 0x39, 0x4d, 0x43, 0x69, 0x42, 0x74, 0x6e, 0x79, 0x4e, 0x36, 0x74, 0x4d, 0x62, 0x61, 0x4c, 0x4f, 0x51, 0x64, 0x4c, 0x4e, 0x79, 0x7a, 0x0a, 0x4b, 0x4e, 0x41, 0x54, 0x38, 0x6b, 0x78, 0x4f, 0x41, 0x6b, 0x6d, 0x68, 0x56, 0x45, 0x43, 0x65, 0x35, 0x75, 0x55, 0x46, 0x6f, 0x43, 0x32, 0x45, 0x79, 0x50, 0x2b, 0x59, 0x62, 0x4e, 0x44, 0x72, 0x69, 0x68, 0x71, 0x45, 0x43, 0x42, 0x36, 0x33, 0x61, 0x43, 0x50, 0x75, 0x49, 0x39, 0x56, 0x77, 0x7a, 0x6d, 0x31, 0x52, 0x61, 0x52, 0x44, 0x75, 0x6f, 0x58, 0x72, 0x43, 0x30, 0x53, 0x49, 0x78, 0x77, 0x6f, 0x4b, 0x46, 0x30, 0x76, 0x4a, 0x56, 0x64, 0x6c, 0x42, 0x38, 0x0a, 0x4a, 0x58, 0x72, 0x4a, 0x68, 0x46, 0x77, 0x4c, 0x72, 0x4e, 0x31, 0x43, 0x54, 0x69, 0x76, 0x6e, 0x67, 0x71, 0x49, 0x6b, 0x69, 0x63, 0x75, 0x51, 0x73, 0x74, 0x44, 0x75, 0x49, 0x37, 0x70, 0x6d, 0x54, 0x4c, 0x74, 0x69, 0x70, 0x50, 0x6c, 0x54, 0x57, 0x6d, 0x52, 0x37, 0x66, 0x4a, 0x6a, 0x36, 0x6f, 0x30, 0x69, 0x65, 0x44, 0x35, 0x57, 0x75, 0x70, 0x78, 0x6a, 0x30, 0x61, 0x75, 0x77, 0x75, 0x41, 0x30, 0x57, 0x76, 0x38, 0x48, 0x54, 0x34, 0x4b, 0x73, 0x31, 0x36, 0x0a, 0x58, 0x64, 0x47, 0x2b, 0x52, 0x43, 0x59, 0x79, 0x4b, 0x66, 0x48, 0x78, 0x39, 0x57, 0x7a, 0x4d, 0x66, 0x67, 0x49, 0x68, 0x43, 0x35, 0x39, 0x76, 0x70, 0x44, 0x2b, 0x2b, 0x6e, 0x56, 0x50, 0x69, 0x7a, 0x33, 0x32, 0x70, 0x4c, 0x48, 0x78, 0x59, 0x47, 0x70, 0x66, 0x68, 0x50, 0x54, 0x63, 0x33, 0x47, 0x47, 0x59, 0x6f, 0x30, 0x6b, 0x44, 0x46, 0x55, 0x59, 0x71, 0x4d, 0x77, 0x79, 0x33, 0x4f, 0x55, 0x34, 0x67, 0x6b, 0x57, 0x47, 0x51, 0x77, 0x46, 0x73, 0x57, 0x71, 0x0a, 0x34, 0x4e, 0x59, 0x4b, 0x70, 0x6b, 0x44, 0x66, 0x65, 0x50, 0x62, 0x31, 0x42, 0x48, 0x78, 0x70, 0x45, 0x34, 0x53, 0x38, 0x30, 0x64, 0x47, 0x6e, 0x42, 0x73, 0x38, 0x42, 0x39, 0x32, 0x6a, 0x41, 0x71, 0x46, 0x65, 0x37, 0x4f, 0x6d, 0x47, 0x74, 0x42, 0x49, 0x79, 0x54, 0x34, 0x36, 0x33, 0x38, 0x38, 0x4e, 0x74, 0x45, 0x62, 0x56, 0x6e, 0x63, 0x53, 0x56, 0x6d, 0x75, 0x72, 0x4a, 0x71, 0x5a, 0x4e, 0x6a, 0x42, 0x42, 0x65, 0x33, 0x59, 0x7a, 0x49, 0x6f, 0x65, 0x6a, 0x0a, 0x77, 0x70, 0x4b, 0x47, 0x62, 0x76, 0x6c, 0x77, 0x37, 0x71, 0x36, 0x48, 0x68, 0x35, 0x55, 0x62, 0x78, 0x48, 0x71, 0x39, 0x4d, 0x66, 0x50, 0x55, 0x30, 0x75, 0x57, 0x5a, 0x2f, 0x37, 0x35, 0x49, 0x37, 0x48, 0x58, 0x31, 0x65, 0x42, 0x59, 0x64, 0x70, 0x6e, 0x44, 0x42, 0x66, 0x7a, 0x77, 0x62, 0x6f, 0x5a, 0x4c, 0x37, 0x7a, 0x38, 0x67, 0x38, 0x31, 0x73, 0x57, 0x54, 0x43, 0x6f, 0x2f, 0x31, 0x56, 0x54, 0x70, 0x32, 0x6c, 0x63, 0x35, 0x5a, 0x6d, 0x49, 0x6f, 0x4a, 0x0a, 0x6c, 0x58, 0x63, 0x79, 0x6d, 0x6f, 0x4f, 0x36, 0x4c, 0x41, 0x51, 0x36, 0x6c, 0x37, 0x33, 0x55, 0x4c, 0x37, 0x37, 0x58, 0x62, 0x4a, 0x75, 0x69, 0x79, 0x6e, 0x31, 0x74, 0x4a, 0x73, 0x6c, 0x56, 0x31, 0x63, 0x2f, 0x44, 0x65, 0x56, 0x49, 0x49, 0x43, 0x5a, 0x6b, 0x48, 0x4a, 0x43, 0x31, 0x6b, 0x4a, 0x57, 0x75, 0x6d, 0x49, 0x57, 0x6d, 0x62, 0x61, 0x74, 0x31, 0x30, 0x54, 0x57, 0x75, 0x58, 0x65, 0x6b, 0x47, 0x39, 0x71, 0x78, 0x66, 0x35, 0x6b, 0x42, 0x64, 0x49, 0x0a, 0x6a, 0x7a, 0x62, 0x35, 0x4c, 0x64, 0x58, 0x46, 0x32, 0x2b, 0x36, 0x71, 0x68, 0x55, 0x56, 0x42, 0x2b, 0x73, 0x30, 0x36, 0x52, 0x62, 0x46, 0x6f, 0x35, 0x6a, 0x5a, 0x4d, 0x6d, 0x35, 0x42, 0x58, 0x37, 0x43, 0x4f, 0x35, 0x68, 0x77, 0x6a, 0x43, 0x78, 0x41, 0x6e, 0x78, 0x6c, 0x34, 0x59, 0x71, 0x4b, 0x45, 0x33, 0x69, 0x64, 0x4d, 0x44, 0x61, 0x78, 0x49, 0x7a, 0x62, 0x33, 0x2b, 0x4b, 0x68, 0x46, 0x31, 0x6e, 0x4f, 0x4a, 0x46, 0x6c, 0x30, 0x4d, 0x64, 0x70, 0x2f, 0x0a, 0x2f, 0x54, 0x42, 0x74, 0x32, 0x64, 0x7a, 0x68, 0x61, 0x75, 0x48, 0x38, 0x58, 0x77, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x34, 0x49, 0x42, 0x47, 0x6a, 0x43, 0x43, 0x41, 0x52, 0x59, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x51, 0x59, 0x77, 0x0a, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x42, 0x69, 0x48, 0x56, 0x75, 0x42, 0x75, 0x64, 0x2b, 0x34, 0x6b, 0x4e, 0x54, 0x78, 0x4f, 0x63, 0x35, 0x6f, 0x66, 0x31, 0x75, 0x48, 0x69, 0x65, 0x58, 0x34, 0x72, 0x4d, 0x42, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x49, 0x77, 0x51, 0x59, 0x4d, 0x42, 0x61, 0x41, 0x46, 0x42, 0x69, 0x48, 0x56, 0x75, 0x42, 0x75, 0x64, 0x2b, 0x34, 0x6b, 0x4e, 0x54, 0x78, 0x4f, 0x63, 0x35, 0x6f, 0x66, 0x0a, 0x31, 0x75, 0x48, 0x69, 0x65, 0x58, 0x34, 0x72, 0x4d, 0x45, 0x51, 0x47, 0x41, 0x31, 0x55, 0x64, 0x49, 0x41, 0x51, 0x39, 0x4d, 0x44, 0x73, 0x77, 0x4f, 0x51, 0x59, 0x45, 0x56, 0x52, 0x30, 0x67, 0x41, 0x44, 0x41, 0x78, 0x4d, 0x43, 0x38, 0x47, 0x43, 0x43, 0x73, 0x47, 0x41, 0x51, 0x55, 0x46, 0x42, 0x77, 0x49, 0x42, 0x46, 0x69, 0x4e, 0x6f, 0x64, 0x48, 0x52, 0x77, 0x63, 0x7a, 0x6f, 0x76, 0x4c, 0x33, 0x64, 0x33, 0x64, 0x33, 0x63, 0x75, 0x59, 0x32, 0x56, 0x79, 0x0a, 0x64, 0x47, 0x6c, 0x6e, 0x62, 0x6d, 0x45, 0x75, 0x5a, 0x6e, 0x49, 0x76, 0x59, 0x58, 0x56, 0x30, 0x62, 0x33, 0x4a, 0x70, 0x64, 0x47, 0x56, 0x7a, 0x4c, 0x7a, 0x42, 0x74, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x38, 0x45, 0x5a, 0x6a, 0x42, 0x6b, 0x4d, 0x43, 0x2b, 0x67, 0x4c, 0x61, 0x41, 0x72, 0x68, 0x69, 0x6c, 0x6f, 0x64, 0x48, 0x52, 0x77, 0x4f, 0x69, 0x38, 0x76, 0x59, 0x33, 0x4a, 0x73, 0x4c, 0x6d, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x70, 0x5a, 0x32, 0x35, 0x68, 0x0a, 0x4c, 0x6d, 0x5a, 0x79, 0x4c, 0x32, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x70, 0x5a, 0x32, 0x35, 0x68, 0x63, 0x6d, 0x39, 0x76, 0x64, 0x47, 0x4e, 0x68, 0x4c, 0x6d, 0x4e, 0x79, 0x62, 0x44, 0x41, 0x78, 0x6f, 0x43, 0x2b, 0x67, 0x4c, 0x59, 0x59, 0x72, 0x61, 0x48, 0x52, 0x30, 0x63, 0x44, 0x6f, 0x76, 0x4c, 0x32, 0x4e, 0x79, 0x62, 0x43, 0x35, 0x6b, 0x61, 0x47, 0x6c, 0x74, 0x65, 0x57, 0x39, 0x30, 0x61, 0x58, 0x4d, 0x75, 0x59, 0x32, 0x39, 0x74, 0x4c, 0x32, 0x4e, 0x6c, 0x0a, 0x63, 0x6e, 0x52, 0x70, 0x5a, 0x32, 0x35, 0x68, 0x63, 0x6d, 0x39, 0x76, 0x64, 0x47, 0x4e, 0x68, 0x4c, 0x6d, 0x4e, 0x79, 0x62, 0x44, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x45, 0x41, 0x6c, 0x4c, 0x69, 0x65, 0x54, 0x2f, 0x44, 0x6a, 0x6c, 0x51, 0x67, 0x69, 0x35, 0x38, 0x31, 0x6f, 0x51, 0x66, 0x63, 0x63, 0x56, 0x64, 0x56, 0x38, 0x41, 0x4f, 0x49, 0x74, 0x0a, 0x4f, 0x6f, 0x6c, 0x64, 0x61, 0x44, 0x67, 0x76, 0x55, 0x53, 0x49, 0x4c, 0x53, 0x6f, 0x33, 0x4c, 0x36, 0x62, 0x74, 0x64, 0x50, 0x72, 0x74, 0x63, 0x50, 0x62, 0x45, 0x6f, 0x2f, 0x75, 0x52, 0x54, 0x56, 0x52, 0x50, 0x50, 0x6f, 0x5a, 0x41, 0x62, 0x41, 0x68, 0x31, 0x66, 0x5a, 0x6b, 0x59, 0x4a, 0x4d, 0x79, 0x6a, 0x68, 0x44, 0x53, 0x53, 0x58, 0x63, 0x4e, 0x4d, 0x51, 0x48, 0x2b, 0x70, 0x6b, 0x56, 0x35, 0x61, 0x37, 0x58, 0x64, 0x72, 0x6e, 0x78, 0x49, 0x78, 0x50, 0x0a, 0x54, 0x47, 0x52, 0x47, 0x48, 0x56, 0x79, 0x48, 0x34, 0x31, 0x6e, 0x65, 0x51, 0x74, 0x47, 0x62, 0x71, 0x48, 0x36, 0x6d, 0x69, 0x64, 0x32, 0x50, 0x48, 0x4d, 0x6b, 0x77, 0x67, 0x75, 0x30, 0x37, 0x6e, 0x4d, 0x33, 0x41, 0x36, 0x52, 0x6e, 0x67, 0x61, 0x74, 0x67, 0x43, 0x64, 0x54, 0x65, 0x72, 0x39, 0x7a, 0x51, 0x6f, 0x4b, 0x4a, 0x48, 0x79, 0x42, 0x41, 0x70, 0x50, 0x4e, 0x65, 0x4e, 0x67, 0x4a, 0x67, 0x48, 0x36, 0x30, 0x42, 0x47, 0x4d, 0x2b, 0x52, 0x46, 0x71, 0x0a, 0x37, 0x71, 0x38, 0x39, 0x77, 0x31, 0x44, 0x54, 0x6a, 0x31, 0x38, 0x7a, 0x65, 0x54, 0x79, 0x47, 0x71, 0x48, 0x4e, 0x46, 0x6b, 0x49, 0x77, 0x67, 0x74, 0x6e, 0x4a, 0x7a, 0x46, 0x79, 0x4f, 0x2b, 0x42, 0x32, 0x58, 0x6c, 0x65, 0x4a, 0x49, 0x4e, 0x75, 0x67, 0x48, 0x41, 0x36, 0x34, 0x77, 0x63, 0x5a, 0x72, 0x2b, 0x73, 0x68, 0x6e, 0x63, 0x42, 0x6c, 0x41, 0x32, 0x63, 0x35, 0x75, 0x6b, 0x35, 0x6a, 0x52, 0x2b, 0x6d, 0x55, 0x59, 0x79, 0x5a, 0x44, 0x44, 0x6c, 0x33, 0x0a, 0x34, 0x62, 0x53, 0x62, 0x2b, 0x68, 0x78, 0x6e, 0x56, 0x32, 0x39, 0x71, 0x61, 0x6f, 0x36, 0x70, 0x4b, 0x30, 0x78, 0x58, 0x65, 0x58, 0x70, 0x58, 0x49, 0x73, 0x2f, 0x4e, 0x58, 0x32, 0x4e, 0x47, 0x6a, 0x56, 0x78, 0x5a, 0x4f, 0x6f, 0x62, 0x34, 0x4d, 0x6b, 0x64, 0x69, 0x6f, 0x32, 0x63, 0x4e, 0x47, 0x4a, 0x48, 0x63, 0x2b, 0x36, 0x5a, 0x72, 0x39, 0x55, 0x68, 0x68, 0x63, 0x79, 0x4e, 0x5a, 0x6a, 0x67, 0x4b, 0x6e, 0x76, 0x45, 0x54, 0x71, 0x39, 0x45, 0x6d, 0x64, 0x0a, 0x38, 0x56, 0x52, 0x59, 0x2b, 0x57, 0x43, 0x76, 0x32, 0x68, 0x69, 0x6b, 0x4c, 0x79, 0x68, 0x46, 0x33, 0x48, 0x71, 0x67, 0x69, 0x49, 0x5a, 0x64, 0x38, 0x7a, 0x76, 0x6e, 0x2f, 0x79, 0x6b, 0x31, 0x67, 0x50, 0x78, 0x6b, 0x51, 0x35, 0x54, 0x6d, 0x34, 0x78, 0x78, 0x76, 0x76, 0x71, 0x30, 0x4f, 0x4b, 0x6d, 0x4f, 0x5a, 0x4b, 0x38, 0x6c, 0x2b, 0x68, 0x66, 0x5a, 0x78, 0x36, 0x41, 0x59, 0x44, 0x6c, 0x66, 0x37, 0x65, 0x6a, 0x30, 0x67, 0x63, 0x57, 0x74, 0x53, 0x53, 0x0a, 0x36, 0x43, 0x76, 0x75, 0x35, 0x7a, 0x48, 0x62, 0x75, 0x67, 0x52, 0x71, 0x68, 0x35, 0x6a, 0x6e, 0x78, 0x56, 0x2f, 0x76, 0x66, 0x61, 0x63, 0x69, 0x39, 0x77, 0x48, 0x59, 0x54, 0x66, 0x6d, 0x4a, 0x30, 0x41, 0x36, 0x61, 0x42, 0x56, 0x6d, 0x6b, 0x6e, 0x70, 0x6a, 0x5a, 0x62, 0x79, 0x76, 0x4b, 0x63, 0x4c, 0x35, 0x6b, 0x77, 0x6c, 0x57, 0x6a, 0x39, 0x4f, 0x6d, 0x76, 0x77, 0x35, 0x49, 0x70, 0x33, 0x49, 0x67, 0x57, 0x4a, 0x4a, 0x6b, 0x38, 0x6a, 0x53, 0x61, 0x59, 0x0a, 0x74, 0x6c, 0x75, 0x33, 0x7a, 0x4d, 0x36, 0x33, 0x4e, 0x77, 0x66, 0x39, 0x4a, 0x74, 0x6d, 0x59, 0x68, 0x53, 0x54, 0x2f, 0x57, 0x53, 0x4d, 0x44, 0x6d, 0x75, 0x32, 0x64, 0x6e, 0x61, 0x6a, 0x6b, 0x58, 0x6a, 0x6a, 0x4f, 0x31, 0x31, 0x49, 0x4e, 0x62, 0x39, 0x49, 0x2f, 0x62, 0x62, 0x45, 0x46, 0x61, 0x30, 0x6e, 0x4f, 0x69, 0x70, 0x46, 0x47, 0x63, 0x2f, 0x54, 0x32, 0x4c, 0x2f, 0x43, 0x6f, 0x63, 0x33, 0x63, 0x4f, 0x5a, 0x61, 0x79, 0x68, 0x6a, 0x57, 0x5a, 0x53, 0x0a, 0x61, 0x58, 0x35, 0x4c, 0x61, 0x41, 0x7a, 0x48, 0x48, 0x6a, 0x63, 0x6e, 0x67, 0x36, 0x57, 0x4d, 0x78, 0x77, 0x4c, 0x6b, 0x46, 0x4d, 0x31, 0x4a, 0x41, 0x62, 0x42, 0x7a, 0x73, 0x2f, 0x33, 0x47, 0x6b, 0x44, 0x70, 0x76, 0x30, 0x6d, 0x7a, 0x74, 0x4f, 0x2b, 0x37, 0x73, 0x6b, 0x62, 0x36, 0x69, 0x51, 0x31, 0x32, 0x4c, 0x41, 0x45, 0x70, 0x6d, 0x4a, 0x55, 0x52, 0x77, 0x33, 0x6b, 0x41, 0x50, 0x2b, 0x48, 0x77, 0x56, 0x39, 0x36, 0x4c, 0x4f, 0x50, 0x4e, 0x64, 0x65, 0x0a, 0x45, 0x34, 0x79, 0x42, 0x46, 0x78, 0x67, 0x58, 0x30, 0x62, 0x33, 0x78, 0x64, 0x78, 0x41, 0x36, 0x31, 0x47, 0x55, 0x35, 0x77, 0x53, 0x65, 0x73, 0x56, 0x79, 0x77, 0x6c, 0x56, 0x50, 0x2b, 0x69, 0x32, 0x6b, 0x2b, 0x4b, 0x59, 0x54, 0x6c, 0x65, 0x72, 0x6a, 0x31, 0x4b, 0x6a, 0x4c, 0x30, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x65, 0x6d, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x31, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x44, 0x6c, 0x44, 0x43, 0x43, 0x41, 0x6e, 0x79, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4b, 0x4d, 0x66, 0x58, 0x6b, 0x59, 0x67, 0x78, 0x73, 0x57, 0x4f, 0x33, 0x57, 0x32, 0x44, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x44, 0x42, 0x6e, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x4a, 0x54, 0x6a, 0x45, 0x54, 0x0a, 0x4d, 0x42, 0x45, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x78, 0x4d, 0x4b, 0x5a, 0x57, 0x31, 0x54, 0x61, 0x57, 0x64, 0x75, 0x49, 0x46, 0x42, 0x4c, 0x53, 0x54, 0x45, 0x6c, 0x4d, 0x43, 0x4d, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x63, 0x5a, 0x55, 0x31, 0x31, 0x5a, 0x47, 0x68, 0x79, 0x59, 0x53, 0x42, 0x55, 0x5a, 0x57, 0x4e, 0x6f, 0x62, 0x6d, 0x39, 0x73, 0x62, 0x32, 0x64, 0x70, 0x5a, 0x58, 0x4d, 0x67, 0x54, 0x47, 0x6c, 0x74, 0x61, 0x58, 0x52, 0x6c, 0x0a, 0x5a, 0x44, 0x45, 0x63, 0x4d, 0x42, 0x6f, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x54, 0x5a, 0x57, 0x31, 0x54, 0x61, 0x57, 0x64, 0x75, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x67, 0x4c, 0x53, 0x42, 0x48, 0x4d, 0x54, 0x41, 0x65, 0x46, 0x77, 0x30, 0x78, 0x4f, 0x44, 0x41, 0x79, 0x4d, 0x54, 0x67, 0x78, 0x4f, 0x44, 0x4d, 0x77, 0x4d, 0x44, 0x42, 0x61, 0x46, 0x77, 0x30, 0x30, 0x4d, 0x7a, 0x41, 0x79, 0x4d, 0x54, 0x67, 0x78, 0x0a, 0x4f, 0x44, 0x4d, 0x77, 0x4d, 0x44, 0x42, 0x61, 0x4d, 0x47, 0x63, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6b, 0x6c, 0x4f, 0x4d, 0x52, 0x4d, 0x77, 0x45, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x77, 0x70, 0x6c, 0x62, 0x56, 0x4e, 0x70, 0x5a, 0x32, 0x34, 0x67, 0x55, 0x45, 0x74, 0x4a, 0x4d, 0x53, 0x55, 0x77, 0x49, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x78, 0x78, 0x6c, 0x54, 0x58, 0x56, 0x6b, 0x0a, 0x61, 0x48, 0x4a, 0x68, 0x49, 0x46, 0x52, 0x6c, 0x59, 0x32, 0x68, 0x75, 0x62, 0x32, 0x78, 0x76, 0x5a, 0x32, 0x6c, 0x6c, 0x63, 0x79, 0x42, 0x4d, 0x61, 0x57, 0x31, 0x70, 0x64, 0x47, 0x56, 0x6b, 0x4d, 0x52, 0x77, 0x77, 0x47, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x4e, 0x6c, 0x62, 0x56, 0x4e, 0x70, 0x5a, 0x32, 0x34, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x51, 0x53, 0x41, 0x74, 0x49, 0x45, 0x63, 0x78, 0x4d, 0x49, 0x49, 0x42, 0x0a, 0x49, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x45, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x51, 0x38, 0x41, 0x4d, 0x49, 0x49, 0x42, 0x43, 0x67, 0x4b, 0x43, 0x41, 0x51, 0x45, 0x41, 0x6b, 0x30, 0x75, 0x37, 0x36, 0x57, 0x61, 0x4b, 0x37, 0x70, 0x31, 0x62, 0x31, 0x54, 0x53, 0x54, 0x30, 0x42, 0x73, 0x65, 0x77, 0x2b, 0x65, 0x65, 0x75, 0x47, 0x51, 0x7a, 0x66, 0x32, 0x4e, 0x34, 0x61, 0x4c, 0x54, 0x4e, 0x0a, 0x4c, 0x6e, 0x46, 0x31, 0x31, 0x35, 0x73, 0x67, 0x78, 0x6b, 0x30, 0x70, 0x76, 0x4c, 0x5a, 0x6f, 0x59, 0x49, 0x72, 0x33, 0x49, 0x5a, 0x70, 0x57, 0x4e, 0x56, 0x72, 0x7a, 0x64, 0x72, 0x33, 0x59, 0x7a, 0x5a, 0x72, 0x2f, 0x6b, 0x31, 0x5a, 0x4c, 0x70, 0x56, 0x6b, 0x47, 0x6f, 0x5a, 0x4d, 0x30, 0x4b, 0x64, 0x30, 0x57, 0x4e, 0x48, 0x56, 0x4f, 0x38, 0x6f, 0x47, 0x30, 0x78, 0x35, 0x5a, 0x4f, 0x72, 0x52, 0x6b, 0x56, 0x55, 0x6b, 0x72, 0x2b, 0x50, 0x48, 0x42, 0x31, 0x0a, 0x63, 0x4d, 0x32, 0x76, 0x4b, 0x36, 0x73, 0x56, 0x6d, 0x6a, 0x4d, 0x38, 0x71, 0x72, 0x4f, 0x4c, 0x71, 0x73, 0x31, 0x44, 0x2f, 0x66, 0x58, 0x71, 0x63, 0x50, 0x2f, 0x74, 0x7a, 0x78, 0x45, 0x37, 0x6c, 0x4d, 0x35, 0x4f, 0x4d, 0x68, 0x62, 0x54, 0x49, 0x30, 0x41, 0x71, 0x64, 0x37, 0x4f, 0x76, 0x50, 0x41, 0x45, 0x73, 0x62, 0x4f, 0x32, 0x5a, 0x4c, 0x49, 0x76, 0x5a, 0x54, 0x6d, 0x6d, 0x59, 0x73, 0x76, 0x65, 0x50, 0x51, 0x62, 0x41, 0x79, 0x65, 0x47, 0x48, 0x57, 0x0a, 0x44, 0x56, 0x2f, 0x44, 0x2b, 0x71, 0x4a, 0x41, 0x6b, 0x68, 0x31, 0x63, 0x46, 0x2b, 0x5a, 0x77, 0x50, 0x6a, 0x58, 0x6e, 0x6f, 0x72, 0x66, 0x43, 0x59, 0x75, 0x4b, 0x72, 0x70, 0x44, 0x68, 0x4d, 0x74, 0x54, 0x6b, 0x31, 0x62, 0x2b, 0x6f, 0x44, 0x61, 0x66, 0x6f, 0x36, 0x56, 0x47, 0x69, 0x46, 0x62, 0x64, 0x62, 0x79, 0x4c, 0x30, 0x4e, 0x56, 0x48, 0x70, 0x45, 0x4e, 0x44, 0x74, 0x6a, 0x56, 0x61, 0x71, 0x53, 0x57, 0x30, 0x52, 0x4d, 0x38, 0x4c, 0x48, 0x68, 0x51, 0x0a, 0x36, 0x44, 0x71, 0x53, 0x30, 0x68, 0x64, 0x57, 0x35, 0x54, 0x55, 0x61, 0x51, 0x42, 0x77, 0x2b, 0x6a, 0x53, 0x7a, 0x74, 0x4f, 0x64, 0x39, 0x43, 0x34, 0x49, 0x4e, 0x42, 0x64, 0x4e, 0x2b, 0x6a, 0x7a, 0x63, 0x4b, 0x47, 0x59, 0x45, 0x68, 0x6f, 0x34, 0x32, 0x6b, 0x4c, 0x56, 0x41, 0x43, 0x4c, 0x35, 0x48, 0x5a, 0x70, 0x49, 0x51, 0x31, 0x35, 0x54, 0x6a, 0x51, 0x49, 0x58, 0x68, 0x54, 0x43, 0x7a, 0x4c, 0x47, 0x33, 0x72, 0x64, 0x64, 0x38, 0x63, 0x49, 0x72, 0x48, 0x0a, 0x68, 0x51, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x2b, 0x2b, 0x38, 0x4e, 0x68, 0x70, 0x36, 0x77, 0x34, 0x39, 0x32, 0x70, 0x75, 0x66, 0x45, 0x68, 0x46, 0x33, 0x38, 0x2b, 0x2f, 0x50, 0x42, 0x33, 0x4b, 0x78, 0x6f, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x45, 0x47, 0x0a, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x45, 0x42, 0x41, 0x46, 0x6e, 0x2f, 0x38, 0x6f, 0x7a, 0x31, 0x68, 0x33, 0x31, 0x78, 0x50, 0x61, 0x4f, 0x66, 0x47, 0x31, 0x76, 0x52, 0x32, 0x76, 0x6a, 0x54, 0x6e, 0x47, 0x73, 0x32, 0x0a, 0x76, 0x5a, 0x75, 0x70, 0x59, 0x65, 0x76, 0x65, 0x46, 0x69, 0x78, 0x30, 0x50, 0x5a, 0x37, 0x6d, 0x64, 0x64, 0x72, 0x58, 0x75, 0x71, 0x65, 0x38, 0x51, 0x68, 0x66, 0x6e, 0x50, 0x5a, 0x48, 0x72, 0x35, 0x58, 0x33, 0x64, 0x50, 0x70, 0x7a, 0x78, 0x7a, 0x35, 0x4b, 0x73, 0x62, 0x45, 0x6a, 0x4d, 0x77, 0x69, 0x49, 0x2f, 0x61, 0x54, 0x76, 0x46, 0x74, 0x68, 0x55, 0x76, 0x6f, 0x7a, 0x58, 0x47, 0x61, 0x43, 0x6f, 0x63, 0x56, 0x36, 0x38, 0x35, 0x37, 0x34, 0x33, 0x51, 0x0a, 0x4e, 0x63, 0x4d, 0x59, 0x44, 0x48, 0x73, 0x41, 0x56, 0x68, 0x7a, 0x4e, 0x69, 0x78, 0x6c, 0x30, 0x33, 0x72, 0x34, 0x50, 0x45, 0x75, 0x44, 0x51, 0x71, 0x71, 0x45, 0x2f, 0x41, 0x6a, 0x53, 0x78, 0x63, 0x4d, 0x36, 0x64, 0x47, 0x4e, 0x59, 0x49, 0x41, 0x77, 0x6c, 0x47, 0x37, 0x6d, 0x44, 0x67, 0x66, 0x72, 0x62, 0x45, 0x53, 0x51, 0x52, 0x52, 0x66, 0x58, 0x42, 0x67, 0x76, 0x4b, 0x71, 0x79, 0x2f, 0x33, 0x6c, 0x79, 0x65, 0x71, 0x59, 0x64, 0x50, 0x56, 0x38, 0x71, 0x0a, 0x2b, 0x4d, 0x72, 0x69, 0x2f, 0x54, 0x6d, 0x33, 0x52, 0x37, 0x6e, 0x72, 0x66, 0x74, 0x38, 0x45, 0x49, 0x36, 0x2f, 0x36, 0x6e, 0x41, 0x59, 0x48, 0x36, 0x66, 0x74, 0x6a, 0x6b, 0x34, 0x42, 0x41, 0x74, 0x63, 0x5a, 0x73, 0x43, 0x6a, 0x45, 0x6f, 0x7a, 0x67, 0x79, 0x66, 0x7a, 0x37, 0x4d, 0x6a, 0x4e, 0x59, 0x42, 0x42, 0x6a, 0x57, 0x7a, 0x45, 0x4e, 0x33, 0x75, 0x42, 0x4c, 0x34, 0x43, 0x68, 0x51, 0x45, 0x4b, 0x46, 0x36, 0x64, 0x6b, 0x34, 0x6a, 0x65, 0x69, 0x68, 0x0a, 0x55, 0x38, 0x30, 0x42, 0x76, 0x32, 0x6e, 0x6f, 0x57, 0x67, 0x62, 0x79, 0x52, 0x51, 0x75, 0x51, 0x2b, 0x71, 0x37, 0x68, 0x76, 0x35, 0x33, 0x79, 0x72, 0x6c, 0x63, 0x38, 0x70, 0x61, 0x36, 0x79, 0x56, 0x76, 0x53, 0x4c, 0x5a, 0x55, 0x44, 0x70, 0x2f, 0x54, 0x47, 0x42, 0x4c, 0x50, 0x51, 0x35, 0x43, 0x64, 0x6a, 0x75, 0x61, 0x36, 0x65, 0x30, 0x70, 0x68, 0x30, 0x56, 0x70, 0x5a, 0x6a, 0x33, 0x41, 0x59, 0x48, 0x59, 0x68, 0x58, 0x33, 0x7a, 0x55, 0x56, 0x78, 0x78, 0x0a, 0x69, 0x4e, 0x36, 0x36, 0x7a, 0x42, 0x2b, 0x41, 0x66, 0x6b, 0x6f, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x65, 0x6d, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x45, 0x43, 0x43, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x54, 0x6a, 0x43, 0x43, 0x41, 0x64, 0x4f, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4b, 0x50, 0x50, 0x59, 0x48, 0x71, 0x57, 0x68, 0x77, 0x44, 0x74, 0x71, 0x4c, 0x68, 0x44, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x7a, 0x42, 0x72, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x4a, 0x54, 0x6a, 0x45, 0x54, 0x4d, 0x42, 0x45, 0x47, 0x0a, 0x41, 0x31, 0x55, 0x45, 0x43, 0x78, 0x4d, 0x4b, 0x5a, 0x57, 0x31, 0x54, 0x61, 0x57, 0x64, 0x75, 0x49, 0x46, 0x42, 0x4c, 0x53, 0x54, 0x45, 0x6c, 0x4d, 0x43, 0x4d, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x63, 0x5a, 0x55, 0x31, 0x31, 0x5a, 0x47, 0x68, 0x79, 0x59, 0x53, 0x42, 0x55, 0x5a, 0x57, 0x4e, 0x6f, 0x62, 0x6d, 0x39, 0x73, 0x62, 0x32, 0x64, 0x70, 0x5a, 0x58, 0x4d, 0x67, 0x54, 0x47, 0x6c, 0x74, 0x61, 0x58, 0x52, 0x6c, 0x5a, 0x44, 0x45, 0x67, 0x0a, 0x4d, 0x42, 0x34, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x58, 0x5a, 0x57, 0x31, 0x54, 0x61, 0x57, 0x64, 0x75, 0x49, 0x45, 0x56, 0x44, 0x51, 0x79, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x42, 0x49, 0x43, 0x30, 0x67, 0x52, 0x7a, 0x4d, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x54, 0x67, 0x77, 0x4d, 0x6a, 0x45, 0x34, 0x4d, 0x54, 0x67, 0x7a, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x68, 0x63, 0x4e, 0x4e, 0x44, 0x4d, 0x77, 0x4d, 0x6a, 0x45, 0x34, 0x0a, 0x4d, 0x54, 0x67, 0x7a, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x6a, 0x42, 0x72, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x4a, 0x54, 0x6a, 0x45, 0x54, 0x4d, 0x42, 0x45, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x78, 0x4d, 0x4b, 0x5a, 0x57, 0x31, 0x54, 0x61, 0x57, 0x64, 0x75, 0x49, 0x46, 0x42, 0x4c, 0x53, 0x54, 0x45, 0x6c, 0x4d, 0x43, 0x4d, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x63, 0x5a, 0x55, 0x31, 0x31, 0x0a, 0x5a, 0x47, 0x68, 0x79, 0x59, 0x53, 0x42, 0x55, 0x5a, 0x57, 0x4e, 0x6f, 0x62, 0x6d, 0x39, 0x73, 0x62, 0x32, 0x64, 0x70, 0x5a, 0x58, 0x4d, 0x67, 0x54, 0x47, 0x6c, 0x74, 0x61, 0x58, 0x52, 0x6c, 0x5a, 0x44, 0x45, 0x67, 0x4d, 0x42, 0x34, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x58, 0x5a, 0x57, 0x31, 0x54, 0x61, 0x57, 0x64, 0x75, 0x49, 0x45, 0x56, 0x44, 0x51, 0x79, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x42, 0x49, 0x43, 0x30, 0x67, 0x0a, 0x52, 0x7a, 0x4d, 0x77, 0x64, 0x6a, 0x41, 0x51, 0x42, 0x67, 0x63, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x49, 0x42, 0x42, 0x67, 0x55, 0x72, 0x67, 0x51, 0x51, 0x41, 0x49, 0x67, 0x4e, 0x69, 0x41, 0x41, 0x51, 0x6a, 0x70, 0x51, 0x79, 0x34, 0x4c, 0x52, 0x4c, 0x31, 0x4b, 0x50, 0x4f, 0x78, 0x73, 0x74, 0x33, 0x69, 0x41, 0x68, 0x4b, 0x41, 0x6e, 0x6a, 0x6c, 0x66, 0x53, 0x55, 0x32, 0x66, 0x79, 0x53, 0x55, 0x30, 0x57, 0x58, 0x54, 0x73, 0x75, 0x77, 0x59, 0x63, 0x0a, 0x35, 0x38, 0x42, 0x79, 0x72, 0x2b, 0x69, 0x75, 0x4c, 0x2b, 0x46, 0x42, 0x56, 0x49, 0x63, 0x55, 0x71, 0x45, 0x71, 0x79, 0x36, 0x48, 0x79, 0x43, 0x35, 0x6c, 0x74, 0x71, 0x74, 0x64, 0x79, 0x7a, 0x64, 0x63, 0x36, 0x4c, 0x42, 0x74, 0x43, 0x47, 0x49, 0x37, 0x39, 0x47, 0x31, 0x59, 0x34, 0x50, 0x50, 0x77, 0x54, 0x30, 0x31, 0x78, 0x79, 0x53, 0x66, 0x76, 0x61, 0x6c, 0x59, 0x38, 0x4c, 0x31, 0x58, 0x34, 0x34, 0x75, 0x54, 0x36, 0x45, 0x59, 0x47, 0x51, 0x49, 0x72, 0x0a, 0x4d, 0x67, 0x71, 0x43, 0x5a, 0x48, 0x30, 0x57, 0x6b, 0x39, 0x47, 0x6a, 0x51, 0x6a, 0x42, 0x41, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x52, 0x38, 0x58, 0x51, 0x4b, 0x45, 0x45, 0x39, 0x54, 0x4d, 0x69, 0x70, 0x75, 0x42, 0x7a, 0x68, 0x63, 0x63, 0x4c, 0x69, 0x6b, 0x65, 0x6e, 0x45, 0x68, 0x6a, 0x51, 0x6a, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x0a, 0x41, 0x51, 0x59, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x77, 0x4e, 0x70, 0x41, 0x44, 0x42, 0x6d, 0x41, 0x6a, 0x45, 0x41, 0x76, 0x76, 0x4e, 0x68, 0x7a, 0x77, 0x49, 0x51, 0x48, 0x57, 0x53, 0x56, 0x42, 0x37, 0x67, 0x59, 0x62, 0x6f, 0x69, 0x46, 0x42, 0x53, 0x2b, 0x44, 0x0a, 0x43, 0x42, 0x65, 0x51, 0x79, 0x68, 0x2b, 0x4b, 0x54, 0x4f, 0x67, 0x4e, 0x47, 0x33, 0x71, 0x78, 0x72, 0x64, 0x57, 0x42, 0x43, 0x55, 0x66, 0x76, 0x4f, 0x36, 0x77, 0x49, 0x42, 0x48, 0x78, 0x63, 0x6d, 0x62, 0x48, 0x74, 0x52, 0x77, 0x66, 0x53, 0x41, 0x6a, 0x45, 0x41, 0x6e, 0x62, 0x70, 0x56, 0x2f, 0x4b, 0x6c, 0x4b, 0x36, 0x4f, 0x33, 0x74, 0x35, 0x6e, 0x59, 0x42, 0x51, 0x6e, 0x76, 0x49, 0x2b, 0x47, 0x44, 0x5a, 0x6a, 0x56, 0x47, 0x4c, 0x56, 0x54, 0x76, 0x37, 0x0a, 0x6a, 0x48, 0x76, 0x72, 0x5a, 0x51, 0x6e, 0x44, 0x2b, 0x4a, 0x62, 0x4e, 0x52, 0x36, 0x69, 0x43, 0x38, 0x68, 0x5a, 0x56, 0x64, 0x79, 0x52, 0x2b, 0x45, 0x68, 0x43, 0x56, 0x42, 0x43, 0x79, 0x6a, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x65, 0x6d, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x43, 0x31, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x44, 0x63, 0x7a, 0x43, 0x43, 0x41, 0x6c, 0x75, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4c, 0x41, 0x4b, 0x37, 0x50, 0x41, 0x4c, 0x72, 0x45, 0x7a, 0x7a, 0x4c, 0x34, 0x51, 0x37, 0x49, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x77, 0x56, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x0a, 0x45, 0x7a, 0x41, 0x52, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x73, 0x54, 0x43, 0x6d, 0x56, 0x74, 0x55, 0x32, 0x6c, 0x6e, 0x62, 0x69, 0x42, 0x51, 0x53, 0x30, 0x6b, 0x78, 0x46, 0x44, 0x41, 0x53, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x43, 0x32, 0x56, 0x4e, 0x64, 0x57, 0x52, 0x6f, 0x63, 0x6d, 0x45, 0x67, 0x53, 0x57, 0x35, 0x6a, 0x4d, 0x52, 0x77, 0x77, 0x47, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x4e, 0x6c, 0x62, 0x56, 0x4e, 0x70, 0x0a, 0x5a, 0x32, 0x34, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x51, 0x53, 0x41, 0x74, 0x49, 0x45, 0x4d, 0x78, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x45, 0x34, 0x4d, 0x44, 0x49, 0x78, 0x4f, 0x44, 0x45, 0x34, 0x4d, 0x7a, 0x41, 0x77, 0x4d, 0x46, 0x6f, 0x58, 0x44, 0x54, 0x51, 0x7a, 0x4d, 0x44, 0x49, 0x78, 0x4f, 0x44, 0x45, 0x34, 0x4d, 0x7a, 0x41, 0x77, 0x4d, 0x46, 0x6f, 0x77, 0x56, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x0a, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x45, 0x7a, 0x41, 0x52, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x73, 0x54, 0x43, 0x6d, 0x56, 0x74, 0x55, 0x32, 0x6c, 0x6e, 0x62, 0x69, 0x42, 0x51, 0x53, 0x30, 0x6b, 0x78, 0x46, 0x44, 0x41, 0x53, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x43, 0x32, 0x56, 0x4e, 0x64, 0x57, 0x52, 0x6f, 0x63, 0x6d, 0x45, 0x67, 0x53, 0x57, 0x35, 0x6a, 0x4d, 0x52, 0x77, 0x77, 0x47, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x0a, 0x45, 0x78, 0x4e, 0x6c, 0x62, 0x56, 0x4e, 0x70, 0x5a, 0x32, 0x34, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x51, 0x53, 0x41, 0x74, 0x49, 0x45, 0x4d, 0x78, 0x4d, 0x49, 0x49, 0x42, 0x49, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x45, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x51, 0x38, 0x41, 0x4d, 0x49, 0x49, 0x42, 0x43, 0x67, 0x4b, 0x43, 0x41, 0x51, 0x45, 0x41, 0x7a, 0x2b, 0x75, 0x70, 0x0a, 0x75, 0x66, 0x47, 0x5a, 0x42, 0x63, 0x7a, 0x59, 0x4b, 0x43, 0x46, 0x4b, 0x38, 0x33, 0x4d, 0x30, 0x55, 0x59, 0x52, 0x57, 0x45, 0x50, 0x57, 0x67, 0x54, 0x79, 0x77, 0x53, 0x34, 0x2f, 0x6f, 0x54, 0x6d, 0x69, 0x66, 0x51, 0x7a, 0x2f, 0x6c, 0x35, 0x47, 0x6e, 0x52, 0x66, 0x48, 0x58, 0x6b, 0x35, 0x2f, 0x46, 0x76, 0x34, 0x63, 0x49, 0x37, 0x67, 0x6b, 0x6c, 0x4c, 0x33, 0x35, 0x43, 0x58, 0x35, 0x56, 0x49, 0x50, 0x5a, 0x48, 0x64, 0x50, 0x49, 0x57, 0x6f, 0x55, 0x2f, 0x0a, 0x58, 0x73, 0x65, 0x32, 0x42, 0x2b, 0x34, 0x2b, 0x77, 0x4d, 0x36, 0x61, 0x72, 0x36, 0x78, 0x57, 0x51, 0x69, 0x6f, 0x35, 0x4a, 0x58, 0x44, 0x57, 0x76, 0x37, 0x56, 0x37, 0x4e, 0x71, 0x32, 0x73, 0x39, 0x6e, 0x50, 0x63, 0x7a, 0x64, 0x63, 0x64, 0x69, 0x6f, 0x4f, 0x6c, 0x2b, 0x79, 0x75, 0x51, 0x46, 0x54, 0x64, 0x72, 0x48, 0x43, 0x5a, 0x48, 0x33, 0x44, 0x73, 0x70, 0x56, 0x70, 0x4e, 0x71, 0x73, 0x38, 0x46, 0x71, 0x4f, 0x70, 0x30, 0x39, 0x39, 0x63, 0x47, 0x58, 0x0a, 0x4f, 0x46, 0x67, 0x46, 0x69, 0x78, 0x77, 0x52, 0x34, 0x2b, 0x53, 0x30, 0x75, 0x46, 0x32, 0x46, 0x48, 0x59, 0x50, 0x2b, 0x65, 0x46, 0x38, 0x4c, 0x52, 0x57, 0x67, 0x59, 0x53, 0x4b, 0x56, 0x47, 0x63, 0x7a, 0x51, 0x37, 0x2f, 0x67, 0x2f, 0x49, 0x64, 0x72, 0x76, 0x48, 0x47, 0x50, 0x4d, 0x46, 0x30, 0x59, 0x62, 0x7a, 0x68, 0x65, 0x33, 0x6e, 0x75, 0x64, 0x6b, 0x79, 0x72, 0x56, 0x57, 0x49, 0x7a, 0x71, 0x61, 0x32, 0x6b, 0x62, 0x42, 0x50, 0x72, 0x48, 0x34, 0x56, 0x0a, 0x49, 0x35, 0x62, 0x32, 0x50, 0x2f, 0x41, 0x67, 0x4e, 0x42, 0x62, 0x65, 0x43, 0x73, 0x62, 0x45, 0x42, 0x45, 0x56, 0x35, 0x66, 0x36, 0x66, 0x39, 0x76, 0x74, 0x4b, 0x70, 0x70, 0x61, 0x2b, 0x63, 0x78, 0x53, 0x4d, 0x71, 0x39, 0x7a, 0x77, 0x68, 0x62, 0x4c, 0x32, 0x76, 0x6a, 0x30, 0x37, 0x46, 0x4f, 0x72, 0x4c, 0x7a, 0x4e, 0x42, 0x4c, 0x38, 0x33, 0x34, 0x41, 0x61, 0x53, 0x61, 0x54, 0x55, 0x71, 0x5a, 0x58, 0x33, 0x6e, 0x6f, 0x6c, 0x65, 0x6f, 0x6f, 0x6d, 0x73, 0x0a, 0x6c, 0x4d, 0x75, 0x6f, 0x61, 0x4a, 0x75, 0x76, 0x69, 0x6d, 0x55, 0x6e, 0x7a, 0x59, 0x6e, 0x75, 0x33, 0x59, 0x79, 0x31, 0x61, 0x79, 0x6c, 0x77, 0x51, 0x36, 0x42, 0x70, 0x43, 0x2b, 0x53, 0x35, 0x44, 0x77, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x2f, 0x71, 0x48, 0x67, 0x63, 0x42, 0x34, 0x71, 0x41, 0x7a, 0x6c, 0x53, 0x57, 0x6b, 0x4b, 0x2b, 0x0a, 0x58, 0x4a, 0x47, 0x46, 0x65, 0x68, 0x69, 0x71, 0x54, 0x62, 0x55, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x45, 0x47, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x44, 0x0a, 0x67, 0x67, 0x45, 0x42, 0x41, 0x4d, 0x4a, 0x4b, 0x56, 0x76, 0x6f, 0x56, 0x49, 0x58, 0x73, 0x6f, 0x6f, 0x75, 0x6e, 0x6c, 0x48, 0x66, 0x76, 0x34, 0x4c, 0x63, 0x51, 0x35, 0x6c, 0x6b, 0x46, 0x4d, 0x4f, 0x79, 0x63, 0x73, 0x78, 0x47, 0x77, 0x59, 0x46, 0x59, 0x44, 0x47, 0x72, 0x4b, 0x39, 0x48, 0x57, 0x53, 0x38, 0x6d, 0x43, 0x2b, 0x4d, 0x32, 0x73, 0x4f, 0x38, 0x37, 0x2f, 0x6b, 0x4f, 0x58, 0x53, 0x54, 0x4b, 0x5a, 0x45, 0x68, 0x56, 0x62, 0x33, 0x78, 0x45, 0x70, 0x0a, 0x2f, 0x36, 0x74, 0x54, 0x2b, 0x4c, 0x76, 0x42, 0x65, 0x41, 0x2b, 0x73, 0x6e, 0x46, 0x4f, 0x76, 0x56, 0x37, 0x31, 0x6f, 0x6a, 0x44, 0x31, 0x70, 0x4d, 0x2f, 0x43, 0x6a, 0x6f, 0x43, 0x4e, 0x6a, 0x4f, 0x32, 0x52, 0x6e, 0x49, 0x6b, 0x53, 0x74, 0x31, 0x58, 0x48, 0x4c, 0x56, 0x69, 0x70, 0x34, 0x6b, 0x71, 0x4e, 0x50, 0x45, 0x6a, 0x45, 0x32, 0x4e, 0x75, 0x4c, 0x65, 0x2f, 0x67, 0x44, 0x45, 0x6f, 0x32, 0x41, 0x50, 0x4a, 0x36, 0x32, 0x67, 0x73, 0x49, 0x71, 0x31, 0x0a, 0x4e, 0x6e, 0x70, 0x53, 0x6f, 0x62, 0x30, 0x6e, 0x39, 0x43, 0x41, 0x6e, 0x59, 0x75, 0x68, 0x4e, 0x6c, 0x43, 0x51, 0x54, 0x35, 0x41, 0x6f, 0x45, 0x36, 0x54, 0x79, 0x72, 0x4c, 0x73, 0x68, 0x44, 0x43, 0x55, 0x72, 0x47, 0x59, 0x51, 0x54, 0x6c, 0x53, 0x54, 0x52, 0x2b, 0x30, 0x38, 0x54, 0x49, 0x39, 0x51, 0x2f, 0x41, 0x71, 0x75, 0x6d, 0x36, 0x56, 0x46, 0x37, 0x7a, 0x59, 0x79, 0x74, 0x50, 0x54, 0x31, 0x44, 0x55, 0x2f, 0x72, 0x6c, 0x37, 0x6d, 0x59, 0x77, 0x39, 0x0a, 0x77, 0x43, 0x36, 0x38, 0x41, 0x69, 0x76, 0x54, 0x78, 0x45, 0x44, 0x6b, 0x69, 0x67, 0x63, 0x78, 0x48, 0x70, 0x76, 0x4f, 0x4a, 0x70, 0x6b, 0x54, 0x2b, 0x78, 0x48, 0x71, 0x6d, 0x69, 0x49, 0x4d, 0x45, 0x52, 0x6e, 0x48, 0x58, 0x68, 0x75, 0x42, 0x55, 0x44, 0x44, 0x49, 0x6c, 0x68, 0x4a, 0x75, 0x35, 0x38, 0x74, 0x42, 0x66, 0x35, 0x45, 0x37, 0x6f, 0x6b, 0x65, 0x33, 0x56, 0x49, 0x41, 0x62, 0x33, 0x41, 0x44, 0x4d, 0x6d, 0x70, 0x44, 0x71, 0x77, 0x38, 0x4e, 0x51, 0x0a, 0x42, 0x6d, 0x49, 0x4d, 0x4d, 0x4d, 0x41, 0x56, 0x53, 0x4b, 0x65, 0x6f, 0x57, 0x58, 0x7a, 0x68, 0x72, 0x69, 0x4b, 0x69, 0x34, 0x67, 0x70, 0x36, 0x44, 0x2f, 0x70, 0x69, 0x71, 0x31, 0x4a, 0x4d, 0x34, 0x66, 0x48, 0x66, 0x79, 0x72, 0x36, 0x44, 0x44, 0x55, 0x49, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x65, 0x6d, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x45, 0x43, 0x43, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x43, 0x33, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x4b, 0x7a, 0x43, 0x43, 0x41, 0x62, 0x47, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4b, 0x65, 0x33, 0x47, 0x32, 0x67, 0x6c, 0x61, 0x34, 0x45, 0x6e, 0x79, 0x63, 0x71, 0x44, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x7a, 0x42, 0x61, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x54, 0x4d, 0x42, 0x45, 0x47, 0x0a, 0x41, 0x31, 0x55, 0x45, 0x43, 0x78, 0x4d, 0x4b, 0x5a, 0x57, 0x31, 0x54, 0x61, 0x57, 0x64, 0x75, 0x49, 0x46, 0x42, 0x4c, 0x53, 0x54, 0x45, 0x55, 0x4d, 0x42, 0x49, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x4c, 0x5a, 0x55, 0x31, 0x31, 0x5a, 0x47, 0x68, 0x79, 0x59, 0x53, 0x42, 0x4a, 0x62, 0x6d, 0x4d, 0x78, 0x49, 0x44, 0x41, 0x65, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x46, 0x32, 0x56, 0x74, 0x55, 0x32, 0x6c, 0x6e, 0x62, 0x69, 0x42, 0x46, 0x0a, 0x51, 0x30, 0x4d, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x51, 0x53, 0x41, 0x74, 0x49, 0x45, 0x4d, 0x7a, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x45, 0x34, 0x4d, 0x44, 0x49, 0x78, 0x4f, 0x44, 0x45, 0x34, 0x4d, 0x7a, 0x41, 0x77, 0x4d, 0x46, 0x6f, 0x58, 0x44, 0x54, 0x51, 0x7a, 0x4d, 0x44, 0x49, 0x78, 0x4f, 0x44, 0x45, 0x34, 0x4d, 0x7a, 0x41, 0x77, 0x4d, 0x46, 0x6f, 0x77, 0x57, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x0a, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x45, 0x7a, 0x41, 0x52, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x73, 0x54, 0x43, 0x6d, 0x56, 0x74, 0x55, 0x32, 0x6c, 0x6e, 0x62, 0x69, 0x42, 0x51, 0x53, 0x30, 0x6b, 0x78, 0x46, 0x44, 0x41, 0x53, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x43, 0x32, 0x56, 0x4e, 0x64, 0x57, 0x52, 0x6f, 0x63, 0x6d, 0x45, 0x67, 0x53, 0x57, 0x35, 0x6a, 0x4d, 0x53, 0x41, 0x77, 0x48, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x0a, 0x45, 0x78, 0x64, 0x6c, 0x62, 0x56, 0x4e, 0x70, 0x5a, 0x32, 0x34, 0x67, 0x52, 0x55, 0x4e, 0x44, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x67, 0x4c, 0x53, 0x42, 0x44, 0x4d, 0x7a, 0x42, 0x32, 0x4d, 0x42, 0x41, 0x47, 0x42, 0x79, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x41, 0x67, 0x45, 0x47, 0x42, 0x53, 0x75, 0x42, 0x42, 0x41, 0x41, 0x69, 0x41, 0x32, 0x49, 0x41, 0x42, 0x50, 0x32, 0x6c, 0x59, 0x61, 0x35, 0x37, 0x4a, 0x68, 0x41, 0x64, 0x0a, 0x36, 0x62, 0x63, 0x69, 0x4d, 0x4b, 0x34, 0x47, 0x39, 0x49, 0x47, 0x7a, 0x73, 0x55, 0x4a, 0x78, 0x6c, 0x54, 0x6d, 0x38, 0x30, 0x31, 0x4c, 0x6a, 0x72, 0x36, 0x2f, 0x35, 0x38, 0x70, 0x63, 0x31, 0x6b, 0x6a, 0x5a, 0x47, 0x44, 0x6f, 0x65, 0x56, 0x6a, 0x62, 0x6b, 0x35, 0x57, 0x75, 0x6d, 0x37, 0x33, 0x39, 0x44, 0x2b, 0x79, 0x41, 0x64, 0x42, 0x50, 0x4c, 0x74, 0x56, 0x62, 0x34, 0x4f, 0x6a, 0x61, 0x76, 0x74, 0x69, 0x73, 0x49, 0x47, 0x4a, 0x41, 0x6e, 0x42, 0x39, 0x0a, 0x53, 0x4d, 0x56, 0x4b, 0x34, 0x2b, 0x6b, 0x69, 0x56, 0x43, 0x4a, 0x4e, 0x6b, 0x37, 0x74, 0x43, 0x44, 0x4b, 0x39, 0x33, 0x6e, 0x43, 0x4f, 0x6d, 0x66, 0x64, 0x64, 0x68, 0x45, 0x63, 0x35, 0x6c, 0x78, 0x2f, 0x68, 0x2f, 0x2f, 0x76, 0x58, 0x79, 0x71, 0x61, 0x4e, 0x43, 0x4d, 0x45, 0x41, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x50, 0x74, 0x61, 0x53, 0x4e, 0x43, 0x41, 0x49, 0x45, 0x44, 0x79, 0x71, 0x4f, 0x6b, 0x41, 0x0a, 0x42, 0x32, 0x6b, 0x5a, 0x64, 0x36, 0x66, 0x6d, 0x77, 0x2f, 0x54, 0x50, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x42, 0x6a, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x41, 0x6f, 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x42, 0x41, 0x4d, 0x44, 0x41, 0x32, 0x67, 0x41, 0x0a, 0x4d, 0x47, 0x55, 0x43, 0x4d, 0x51, 0x43, 0x30, 0x32, 0x43, 0x38, 0x43, 0x69, 0x66, 0x32, 0x32, 0x54, 0x47, 0x4b, 0x36, 0x51, 0x30, 0x34, 0x54, 0x68, 0x48, 0x4b, 0x31, 0x72, 0x74, 0x30, 0x63, 0x33, 0x74, 0x61, 0x31, 0x33, 0x46, 0x61, 0x50, 0x57, 0x45, 0x42, 0x61, 0x4c, 0x64, 0x34, 0x67, 0x54, 0x43, 0x4b, 0x44, 0x79, 0x70, 0x4f, 0x6f, 0x66, 0x75, 0x34, 0x53, 0x51, 0x4d, 0x66, 0x57, 0x68, 0x30, 0x2f, 0x34, 0x33, 0x34, 0x55, 0x43, 0x4d, 0x42, 0x77, 0x55, 0x0a, 0x5a, 0x4f, 0x52, 0x38, 0x6c, 0x6f, 0x4d, 0x52, 0x6e, 0x4c, 0x44, 0x52, 0x57, 0x6d, 0x46, 0x4c, 0x70, 0x67, 0x39, 0x4a, 0x30, 0x77, 0x44, 0x38, 0x6f, 0x66, 0x7a, 0x6b, 0x70, 0x66, 0x39, 0x2f, 0x72, 0x64, 0x63, 0x77, 0x30, 0x4d, 0x64, 0x33, 0x66, 0x37, 0x36, 0x42, 0x42, 0x31, 0x55, 0x77, 0x55, 0x43, 0x41, 0x55, 0x39, 0x56, 0x63, 0x34, 0x43, 0x71, 0x67, 0x78, 0x55, 0x51, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x48, 0x6f, 0x6e, 0x67, 0x6b, 0x6f, 0x6e, 0x67, 0x20, 0x50, 0x6f, 0x73, 0x74, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x33, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x7a, 0x7a, 0x43, 0x43, 0x41, 0x37, 0x65, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x55, 0x43, 0x42, 0x5a, 0x66, 0x69, 0x6b, 0x79, 0x6c, 0x37, 0x41, 0x44, 0x4a, 0x6b, 0x30, 0x44, 0x66, 0x78, 0x4d, 0x61, 0x75, 0x49, 0x37, 0x67, 0x63, 0x57, 0x71, 0x51, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x77, 0x62, 0x7a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x0a, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x53, 0x45, 0x73, 0x78, 0x45, 0x6a, 0x41, 0x51, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x67, 0x54, 0x43, 0x55, 0x68, 0x76, 0x62, 0x6d, 0x63, 0x67, 0x53, 0x32, 0x39, 0x75, 0x5a, 0x7a, 0x45, 0x53, 0x4d, 0x42, 0x41, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x78, 0x4d, 0x4a, 0x53, 0x47, 0x39, 0x75, 0x5a, 0x79, 0x42, 0x4c, 0x62, 0x32, 0x35, 0x6e, 0x4d, 0x52, 0x59, 0x77, 0x46, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x0a, 0x45, 0x77, 0x31, 0x49, 0x62, 0x32, 0x35, 0x6e, 0x61, 0x32, 0x39, 0x75, 0x5a, 0x79, 0x42, 0x51, 0x62, 0x33, 0x4e, 0x30, 0x4d, 0x53, 0x41, 0x77, 0x48, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x64, 0x49, 0x62, 0x32, 0x35, 0x6e, 0x61, 0x32, 0x39, 0x75, 0x5a, 0x79, 0x42, 0x51, 0x62, 0x33, 0x4e, 0x30, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x67, 0x4d, 0x7a, 0x41, 0x65, 0x46, 0x77, 0x30, 0x78, 0x4e, 0x7a, 0x41, 0x32, 0x0a, 0x4d, 0x44, 0x4d, 0x77, 0x4d, 0x6a, 0x49, 0x35, 0x4e, 0x44, 0x5a, 0x61, 0x46, 0x77, 0x30, 0x30, 0x4d, 0x6a, 0x41, 0x32, 0x4d, 0x44, 0x4d, 0x77, 0x4d, 0x6a, 0x49, 0x35, 0x4e, 0x44, 0x5a, 0x61, 0x4d, 0x47, 0x38, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6b, 0x68, 0x4c, 0x4d, 0x52, 0x49, 0x77, 0x45, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x49, 0x45, 0x77, 0x6c, 0x49, 0x62, 0x32, 0x35, 0x6e, 0x49, 0x45, 0x74, 0x76, 0x0a, 0x62, 0x6d, 0x63, 0x78, 0x45, 0x6a, 0x41, 0x51, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x63, 0x54, 0x43, 0x55, 0x68, 0x76, 0x62, 0x6d, 0x63, 0x67, 0x53, 0x32, 0x39, 0x75, 0x5a, 0x7a, 0x45, 0x57, 0x4d, 0x42, 0x51, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x4e, 0x53, 0x47, 0x39, 0x75, 0x5a, 0x32, 0x74, 0x76, 0x62, 0x6d, 0x63, 0x67, 0x55, 0x47, 0x39, 0x7a, 0x64, 0x44, 0x45, 0x67, 0x4d, 0x42, 0x34, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x58, 0x0a, 0x53, 0x47, 0x39, 0x75, 0x5a, 0x32, 0x74, 0x76, 0x62, 0x6d, 0x63, 0x67, 0x55, 0x47, 0x39, 0x7a, 0x64, 0x43, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x42, 0x49, 0x44, 0x4d, 0x77, 0x67, 0x67, 0x49, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x49, 0x4b, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x43, 0x7a, 0x0a, 0x69, 0x4e, 0x66, 0x71, 0x7a, 0x67, 0x38, 0x67, 0x54, 0x72, 0x37, 0x6d, 0x31, 0x67, 0x4e, 0x74, 0x37, 0x6c, 0x6e, 0x38, 0x77, 0x6c, 0x66, 0x66, 0x4b, 0x57, 0x69, 0x68, 0x67, 0x77, 0x34, 0x2b, 0x61, 0x4d, 0x64, 0x6f, 0x57, 0x4a, 0x77, 0x63, 0x59, 0x45, 0x75, 0x4a, 0x51, 0x77, 0x79, 0x35, 0x31, 0x42, 0x57, 0x79, 0x37, 0x73, 0x46, 0x4f, 0x64, 0x65, 0x6d, 0x31, 0x70, 0x2b, 0x2f, 0x6c, 0x36, 0x54, 0x57, 0x5a, 0x35, 0x4d, 0x77, 0x63, 0x35, 0x30, 0x74, 0x66, 0x0a, 0x6a, 0x54, 0x4d, 0x77, 0x49, 0x44, 0x4e, 0x54, 0x32, 0x61, 0x61, 0x37, 0x31, 0x54, 0x34, 0x54, 0x6a, 0x75, 0x6b, 0x66, 0x68, 0x30, 0x6d, 0x74, 0x55, 0x43, 0x31, 0x51, 0x79, 0x68, 0x69, 0x2b, 0x41, 0x56, 0x69, 0x69, 0x45, 0x33, 0x43, 0x57, 0x75, 0x34, 0x6d, 0x49, 0x56, 0x6f, 0x42, 0x63, 0x2b, 0x4c, 0x30, 0x73, 0x50, 0x4f, 0x46, 0x4d, 0x56, 0x34, 0x69, 0x37, 0x30, 0x37, 0x6d, 0x56, 0x37, 0x38, 0x76, 0x48, 0x39, 0x74, 0x6f, 0x78, 0x64, 0x43, 0x69, 0x6d, 0x0a, 0x35, 0x6c, 0x53, 0x4a, 0x39, 0x55, 0x45, 0x78, 0x79, 0x75, 0x55, 0x6d, 0x47, 0x73, 0x32, 0x43, 0x34, 0x48, 0x44, 0x61, 0x4f, 0x79, 0x6d, 0x37, 0x31, 0x51, 0x50, 0x31, 0x6d, 0x62, 0x70, 0x56, 0x39, 0x57, 0x54, 0x52, 0x59, 0x41, 0x36, 0x7a, 0x69, 0x55, 0x6d, 0x34, 0x69, 0x69, 0x38, 0x46, 0x30, 0x6f, 0x52, 0x46, 0x4b, 0x48, 0x79, 0x50, 0x61, 0x46, 0x41, 0x53, 0x65, 0x50, 0x77, 0x4c, 0x74, 0x56, 0x50, 0x4c, 0x77, 0x70, 0x67, 0x63, 0x68, 0x4b, 0x4f, 0x65, 0x0a, 0x73, 0x4c, 0x34, 0x6a, 0x70, 0x4e, 0x72, 0x63, 0x79, 0x43, 0x73, 0x65, 0x32, 0x6d, 0x35, 0x46, 0x48, 0x6f, 0x6d, 0x59, 0x32, 0x76, 0x6b, 0x41, 0x4c, 0x67, 0x62, 0x70, 0x44, 0x44, 0x74, 0x77, 0x31, 0x56, 0x41, 0x6c, 0x69, 0x4a, 0x6e, 0x4c, 0x7a, 0x58, 0x4e, 0x67, 0x39, 0x39, 0x58, 0x2f, 0x4e, 0x57, 0x66, 0x46, 0x6f, 0x62, 0x78, 0x65, 0x71, 0x38, 0x31, 0x4b, 0x75, 0x45, 0x58, 0x72, 0x79, 0x47, 0x67, 0x65, 0x44, 0x51, 0x30, 0x55, 0x52, 0x68, 0x4c, 0x6a, 0x0a, 0x30, 0x6d, 0x52, 0x69, 0x69, 0x6b, 0x4b, 0x59, 0x76, 0x4c, 0x54, 0x47, 0x43, 0x41, 0x6a, 0x34, 0x2f, 0x61, 0x68, 0x4d, 0x5a, 0x4a, 0x78, 0x32, 0x41, 0x62, 0x30, 0x76, 0x71, 0x57, 0x77, 0x7a, 0x44, 0x39, 0x67, 0x2f, 0x4b, 0x4c, 0x67, 0x38, 0x61, 0x51, 0x46, 0x43, 0x68, 0x6e, 0x35, 0x70, 0x77, 0x63, 0x6b, 0x47, 0x79, 0x75, 0x56, 0x36, 0x52, 0x6d, 0x58, 0x70, 0x77, 0x74, 0x5a, 0x51, 0x51, 0x53, 0x34, 0x2f, 0x74, 0x2b, 0x54, 0x74, 0x62, 0x4e, 0x65, 0x2f, 0x0a, 0x4a, 0x67, 0x45, 0x52, 0x6f, 0x68, 0x59, 0x70, 0x53, 0x6d, 0x73, 0x30, 0x42, 0x70, 0x44, 0x73, 0x45, 0x39, 0x4b, 0x32, 0x2b, 0x32, 0x70, 0x32, 0x30, 0x6a, 0x7a, 0x74, 0x38, 0x4e, 0x59, 0x74, 0x33, 0x65, 0x45, 0x56, 0x37, 0x4b, 0x4f, 0x62, 0x4c, 0x79, 0x7a, 0x4a, 0x50, 0x69, 0x76, 0x6b, 0x61, 0x54, 0x76, 0x2f, 0x63, 0x69, 0x57, 0x78, 0x4e, 0x6f, 0x5a, 0x62, 0x78, 0x33, 0x39, 0x72, 0x69, 0x31, 0x55, 0x62, 0x53, 0x73, 0x55, 0x67, 0x59, 0x54, 0x32, 0x75, 0x0a, 0x79, 0x31, 0x44, 0x68, 0x43, 0x44, 0x71, 0x2b, 0x73, 0x49, 0x39, 0x6a, 0x51, 0x56, 0x4d, 0x77, 0x43, 0x46, 0x6b, 0x38, 0x6d, 0x42, 0x31, 0x33, 0x75, 0x6d, 0x4f, 0x52, 0x65, 0x73, 0x6f, 0x51, 0x55, 0x47, 0x43, 0x2f, 0x38, 0x4e, 0x65, 0x38, 0x6c, 0x59, 0x65, 0x50, 0x6c, 0x38, 0x58, 0x2b, 0x6c, 0x32, 0x6f, 0x42, 0x6c, 0x4b, 0x4e, 0x38, 0x57, 0x34, 0x55, 0x64, 0x4b, 0x6a, 0x6b, 0x36, 0x30, 0x46, 0x53, 0x68, 0x30, 0x54, 0x6c, 0x78, 0x6e, 0x66, 0x30, 0x68, 0x0a, 0x2b, 0x62, 0x56, 0x37, 0x38, 0x4f, 0x4c, 0x67, 0x41, 0x6f, 0x39, 0x75, 0x6c, 0x69, 0x51, 0x6c, 0x4c, 0x4b, 0x41, 0x65, 0x4c, 0x4b, 0x6a, 0x45, 0x69, 0x61, 0x66, 0x76, 0x37, 0x5a, 0x6b, 0x47, 0x4c, 0x37, 0x59, 0x4b, 0x54, 0x45, 0x2f, 0x62, 0x6f, 0x73, 0x77, 0x33, 0x47, 0x71, 0x39, 0x48, 0x68, 0x53, 0x32, 0x4b, 0x58, 0x38, 0x51, 0x30, 0x4e, 0x45, 0x77, 0x41, 0x2f, 0x52, 0x69, 0x54, 0x5a, 0x78, 0x50, 0x52, 0x4e, 0x2b, 0x5a, 0x49, 0x74, 0x49, 0x73, 0x47, 0x0a, 0x78, 0x56, 0x64, 0x37, 0x47, 0x59, 0x59, 0x4b, 0x65, 0x63, 0x73, 0x41, 0x79, 0x56, 0x4b, 0x76, 0x51, 0x76, 0x38, 0x33, 0x6a, 0x2b, 0x47, 0x6a, 0x48, 0x6e, 0x6f, 0x39, 0x55, 0x4b, 0x74, 0x6a, 0x42, 0x75, 0x63, 0x56, 0x74, 0x54, 0x2b, 0x32, 0x52, 0x54, 0x65, 0x55, 0x4e, 0x37, 0x46, 0x2b, 0x38, 0x6b, 0x6a, 0x44, 0x66, 0x38, 0x56, 0x31, 0x2f, 0x70, 0x65, 0x4e, 0x52, 0x59, 0x38, 0x61, 0x70, 0x78, 0x70, 0x79, 0x4b, 0x42, 0x70, 0x41, 0x44, 0x77, 0x49, 0x44, 0x0a, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x32, 0x4d, 0x77, 0x59, 0x54, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x42, 0x6a, 0x41, 0x66, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x53, 0x4d, 0x45, 0x47, 0x44, 0x41, 0x57, 0x67, 0x42, 0x51, 0x58, 0x6e, 0x63, 0x30, 0x65, 0x0a, 0x69, 0x39, 0x59, 0x35, 0x4b, 0x33, 0x44, 0x54, 0x58, 0x4e, 0x53, 0x67, 0x75, 0x42, 0x2b, 0x77, 0x41, 0x50, 0x7a, 0x46, 0x59, 0x54, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x46, 0x35, 0x33, 0x4e, 0x48, 0x6f, 0x76, 0x57, 0x4f, 0x53, 0x74, 0x77, 0x30, 0x31, 0x7a, 0x55, 0x6f, 0x4c, 0x67, 0x66, 0x73, 0x41, 0x44, 0x38, 0x78, 0x57, 0x45, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x0a, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x42, 0x41, 0x46, 0x62, 0x56, 0x65, 0x32, 0x37, 0x6d, 0x49, 0x67, 0x48, 0x53, 0x51, 0x70, 0x73, 0x59, 0x31, 0x51, 0x37, 0x58, 0x5a, 0x69, 0x4e, 0x63, 0x34, 0x2f, 0x36, 0x67, 0x78, 0x35, 0x4c, 0x53, 0x36, 0x5a, 0x53, 0x74, 0x53, 0x36, 0x4c, 0x47, 0x37, 0x42, 0x4a, 0x38, 0x64, 0x4e, 0x56, 0x49, 0x30, 0x6c, 0x6b, 0x55, 0x6d, 0x63, 0x44, 0x72, 0x75, 0x64, 0x48, 0x72, 0x39, 0x45, 0x67, 0x77, 0x0a, 0x57, 0x36, 0x32, 0x6e, 0x56, 0x33, 0x4f, 0x5a, 0x71, 0x64, 0x50, 0x6c, 0x74, 0x39, 0x45, 0x75, 0x57, 0x53, 0x52, 0x59, 0x33, 0x47, 0x67, 0x75, 0x4c, 0x6d, 0x4c, 0x59, 0x61, 0x75, 0x52, 0x77, 0x43, 0x79, 0x30, 0x67, 0x55, 0x43, 0x43, 0x6b, 0x4d, 0x70, 0x58, 0x52, 0x41, 0x4a, 0x69, 0x37, 0x30, 0x2f, 0x33, 0x33, 0x4d, 0x76, 0x4a, 0x4a, 0x72, 0x73, 0x5a, 0x36, 0x34, 0x45, 0x65, 0x2b, 0x62, 0x73, 0x37, 0x4c, 0x6f, 0x33, 0x49, 0x36, 0x4c, 0x57, 0x6c, 0x64, 0x0a, 0x79, 0x38, 0x6a, 0x6f, 0x52, 0x54, 0x6e, 0x55, 0x2b, 0x6b, 0x4c, 0x42, 0x45, 0x55, 0x78, 0x33, 0x58, 0x5a, 0x4c, 0x37, 0x61, 0x76, 0x39, 0x59, 0x52, 0x4f, 0x58, 0x72, 0x67, 0x5a, 0x36, 0x76, 0x6f, 0x4a, 0x6d, 0x74, 0x76, 0x71, 0x6b, 0x42, 0x5a, 0x73, 0x73, 0x34, 0x48, 0x54, 0x7a, 0x66, 0x51, 0x78, 0x2f, 0x30, 0x54, 0x57, 0x36, 0x30, 0x75, 0x68, 0x64, 0x47, 0x2f, 0x48, 0x33, 0x39, 0x68, 0x34, 0x46, 0x35, 0x61, 0x67, 0x30, 0x7a, 0x44, 0x2f, 0x6f, 0x76, 0x0a, 0x2b, 0x42, 0x53, 0x35, 0x67, 0x4c, 0x4e, 0x64, 0x54, 0x61, 0x71, 0x58, 0x34, 0x66, 0x6e, 0x6b, 0x47, 0x4d, 0x58, 0x34, 0x31, 0x54, 0x69, 0x4d, 0x4a, 0x6a, 0x7a, 0x39, 0x38, 0x69, 0x6a, 0x69, 0x37, 0x6c, 0x70, 0x4a, 0x69, 0x43, 0x7a, 0x66, 0x65, 0x54, 0x32, 0x4f, 0x6e, 0x70, 0x41, 0x38, 0x76, 0x55, 0x46, 0x4b, 0x4f, 0x74, 0x31, 0x62, 0x39, 0x70, 0x71, 0x30, 0x7a, 0x6a, 0x38, 0x6c, 0x4d, 0x48, 0x38, 0x79, 0x66, 0x61, 0x49, 0x44, 0x6c, 0x4e, 0x44, 0x63, 0x0a, 0x65, 0x71, 0x46, 0x53, 0x33, 0x6d, 0x36, 0x54, 0x6a, 0x52, 0x67, 0x6d, 0x2f, 0x56, 0x57, 0x73, 0x76, 0x59, 0x2b, 0x62, 0x30, 0x73, 0x2b, 0x76, 0x35, 0x34, 0x59, 0x73, 0x79, 0x78, 0x38, 0x4a, 0x62, 0x36, 0x4e, 0x76, 0x71, 0x59, 0x54, 0x55, 0x63, 0x37, 0x39, 0x4e, 0x6f, 0x58, 0x51, 0x62, 0x54, 0x69, 0x4e, 0x67, 0x38, 0x73, 0x77, 0x4f, 0x71, 0x6e, 0x2b, 0x6b, 0x6e, 0x45, 0x77, 0x6c, 0x71, 0x4c, 0x4a, 0x6d, 0x4f, 0x7a, 0x6a, 0x2f, 0x32, 0x5a, 0x51, 0x77, 0x0a, 0x39, 0x6e, 0x4b, 0x45, 0x76, 0x6d, 0x68, 0x56, 0x45, 0x41, 0x2f, 0x47, 0x63, 0x79, 0x77, 0x57, 0x61, 0x5a, 0x4d, 0x48, 0x2f, 0x72, 0x46, 0x46, 0x37, 0x62, 0x75, 0x69, 0x56, 0x57, 0x71, 0x77, 0x32, 0x72, 0x56, 0x4b, 0x41, 0x69, 0x55, 0x6e, 0x68, 0x64, 0x65, 0x33, 0x74, 0x34, 0x5a, 0x45, 0x46, 0x6f, 0x6c, 0x73, 0x67, 0x43, 0x73, 0x2b, 0x6c, 0x36, 0x6d, 0x63, 0x31, 0x58, 0x35, 0x56, 0x54, 0x4d, 0x62, 0x65, 0x52, 0x52, 0x41, 0x63, 0x36, 0x75, 0x6b, 0x37, 0x0a, 0x6e, 0x77, 0x4e, 0x54, 0x37, 0x75, 0x35, 0x36, 0x41, 0x51, 0x49, 0x57, 0x65, 0x4e, 0x54, 0x6f, 0x77, 0x72, 0x35, 0x47, 0x64, 0x6f, 0x67, 0x54, 0x50, 0x79, 0x4b, 0x37, 0x53, 0x42, 0x49, 0x64, 0x55, 0x67, 0x43, 0x30, 0x41, 0x6e, 0x34, 0x68, 0x47, 0x68, 0x36, 0x63, 0x4a, 0x66, 0x54, 0x7a, 0x50, 0x56, 0x34, 0x65, 0x30, 0x68, 0x7a, 0x35, 0x73, 0x79, 0x32, 0x32, 0x39, 0x7a, 0x64, 0x63, 0x78, 0x73, 0x73, 0x68, 0x54, 0x72, 0x44, 0x33, 0x6d, 0x55, 0x63, 0x59, 0x0a, 0x68, 0x63, 0x45, 0x72, 0x75, 0x6c, 0x57, 0x75, 0x42, 0x75, 0x72, 0x51, 0x42, 0x37, 0x4c, 0x63, 0x71, 0x39, 0x43, 0x43, 0x6c, 0x6e, 0x58, 0x4f, 0x30, 0x6c, 0x44, 0x2b, 0x6d, 0x65, 0x66, 0x50, 0x4c, 0x35, 0x2f, 0x6e, 0x64, 0x74, 0x46, 0x68, 0x4b, 0x76, 0x73, 0x68, 0x75, 0x7a, 0x48, 0x51, 0x71, 0x70, 0x39, 0x48, 0x70, 0x4c, 0x49, 0x69, 0x79, 0x68, 0x59, 0x36, 0x55, 0x46, 0x66, 0x45, 0x57, 0x30, 0x4e, 0x6e, 0x78, 0x57, 0x56, 0x69, 0x41, 0x30, 0x6b, 0x42, 0x0a, 0x36, 0x30, 0x50, 0x5a, 0x32, 0x50, 0x69, 0x65, 0x72, 0x63, 0x2b, 0x78, 0x59, 0x77, 0x35, 0x46, 0x39, 0x4b, 0x42, 0x61, 0x4c, 0x4a, 0x73, 0x74, 0x78, 0x61, 0x62, 0x41, 0x72, 0x61, 0x68, 0x48, 0x39, 0x43, 0x64, 0x4d, 0x4f, 0x41, 0x30, 0x75, 0x47, 0x30, 0x6b, 0x37, 0x55, 0x76, 0x54, 0x6f, 0x69, 0x49, 0x4d, 0x72, 0x56, 0x43, 0x6a, 0x55, 0x38, 0x6a, 0x56, 0x53, 0x74, 0x44, 0x4b, 0x44, 0x59, 0x6d, 0x6c, 0x6b, 0x44, 0x4a, 0x47, 0x63, 0x6e, 0x35, 0x66, 0x71, 0x0a, 0x64, 0x42, 0x62, 0x39, 0x48, 0x78, 0x45, 0x47, 0x6d, 0x70, 0x76, 0x30, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x34, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x47, 0x53, 0x7a, 0x43, 0x43, 0x42, 0x44, 0x4f, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x52, 0x41, 0x4e, 0x6d, 0x31, 0x51, 0x33, 0x2b, 0x76, 0x71, 0x54, 0x6b, 0x50, 0x41, 0x41, 0x41, 0x41, 0x41, 0x46, 0x56, 0x6c, 0x72, 0x56, 0x67, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x77, 0x67, 0x62, 0x34, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x0a, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6c, 0x56, 0x54, 0x4d, 0x52, 0x59, 0x77, 0x46, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x77, 0x31, 0x46, 0x62, 0x6e, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x4c, 0x43, 0x42, 0x4a, 0x62, 0x6d, 0x4d, 0x75, 0x4d, 0x53, 0x67, 0x77, 0x4a, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x78, 0x39, 0x54, 0x5a, 0x57, 0x55, 0x67, 0x64, 0x33, 0x64, 0x33, 0x4c, 0x6d, 0x56, 0x75, 0x64, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x75, 0x0a, 0x62, 0x6d, 0x56, 0x30, 0x4c, 0x32, 0x78, 0x6c, 0x5a, 0x32, 0x46, 0x73, 0x4c, 0x58, 0x52, 0x6c, 0x63, 0x6d, 0x31, 0x7a, 0x4d, 0x54, 0x6b, 0x77, 0x4e, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x7a, 0x41, 0x6f, 0x59, 0x79, 0x6b, 0x67, 0x4d, 0x6a, 0x41, 0x78, 0x4e, 0x53, 0x42, 0x46, 0x62, 0x6e, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x4c, 0x43, 0x42, 0x4a, 0x62, 0x6d, 0x4d, 0x75, 0x49, 0x43, 0x30, 0x67, 0x5a, 0x6d, 0x39, 0x79, 0x49, 0x47, 0x46, 0x31, 0x0a, 0x64, 0x47, 0x68, 0x76, 0x63, 0x6d, 0x6c, 0x36, 0x5a, 0x57, 0x51, 0x67, 0x64, 0x58, 0x4e, 0x6c, 0x49, 0x47, 0x39, 0x75, 0x62, 0x48, 0x6b, 0x78, 0x4d, 0x6a, 0x41, 0x77, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x4b, 0x55, 0x56, 0x75, 0x64, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x61, 0x57, 0x5a, 0x70, 0x59, 0x32, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x49, 0x45, 0x46, 0x31, 0x0a, 0x64, 0x47, 0x68, 0x76, 0x63, 0x6d, 0x6c, 0x30, 0x65, 0x53, 0x41, 0x74, 0x49, 0x45, 0x63, 0x30, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x45, 0x31, 0x4d, 0x44, 0x55, 0x79, 0x4e, 0x7a, 0x45, 0x78, 0x4d, 0x54, 0x45, 0x78, 0x4e, 0x6c, 0x6f, 0x58, 0x44, 0x54, 0x4d, 0x33, 0x4d, 0x54, 0x49, 0x79, 0x4e, 0x7a, 0x45, 0x78, 0x4e, 0x44, 0x45, 0x78, 0x4e, 0x6c, 0x6f, 0x77, 0x67, 0x62, 0x34, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x0a, 0x41, 0x6c, 0x56, 0x54, 0x4d, 0x52, 0x59, 0x77, 0x46, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x77, 0x31, 0x46, 0x62, 0x6e, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x4c, 0x43, 0x42, 0x4a, 0x62, 0x6d, 0x4d, 0x75, 0x4d, 0x53, 0x67, 0x77, 0x4a, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x78, 0x39, 0x54, 0x5a, 0x57, 0x55, 0x67, 0x64, 0x33, 0x64, 0x33, 0x4c, 0x6d, 0x56, 0x75, 0x64, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x75, 0x62, 0x6d, 0x56, 0x30, 0x0a, 0x4c, 0x32, 0x78, 0x6c, 0x5a, 0x32, 0x46, 0x73, 0x4c, 0x58, 0x52, 0x6c, 0x63, 0x6d, 0x31, 0x7a, 0x4d, 0x54, 0x6b, 0x77, 0x4e, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x7a, 0x41, 0x6f, 0x59, 0x79, 0x6b, 0x67, 0x4d, 0x6a, 0x41, 0x78, 0x4e, 0x53, 0x42, 0x46, 0x62, 0x6e, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x4c, 0x43, 0x42, 0x4a, 0x62, 0x6d, 0x4d, 0x75, 0x49, 0x43, 0x30, 0x67, 0x5a, 0x6d, 0x39, 0x79, 0x49, 0x47, 0x46, 0x31, 0x64, 0x47, 0x68, 0x76, 0x0a, 0x63, 0x6d, 0x6c, 0x36, 0x5a, 0x57, 0x51, 0x67, 0x64, 0x58, 0x4e, 0x6c, 0x49, 0x47, 0x39, 0x75, 0x62, 0x48, 0x6b, 0x78, 0x4d, 0x6a, 0x41, 0x77, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x4b, 0x55, 0x56, 0x75, 0x64, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x61, 0x57, 0x5a, 0x70, 0x59, 0x32, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x49, 0x45, 0x46, 0x31, 0x64, 0x47, 0x68, 0x76, 0x0a, 0x63, 0x6d, 0x6c, 0x30, 0x65, 0x53, 0x41, 0x74, 0x49, 0x45, 0x63, 0x30, 0x4d, 0x49, 0x49, 0x43, 0x49, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x45, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x38, 0x41, 0x4d, 0x49, 0x49, 0x43, 0x43, 0x67, 0x4b, 0x43, 0x41, 0x67, 0x45, 0x41, 0x73, 0x65, 0x77, 0x73, 0x51, 0x75, 0x37, 0x69, 0x30, 0x54, 0x44, 0x2f, 0x70, 0x5a, 0x4a, 0x48, 0x34, 0x69, 0x33, 0x44, 0x0a, 0x75, 0x6d, 0x53, 0x58, 0x62, 0x63, 0x72, 0x33, 0x44, 0x62, 0x56, 0x5a, 0x77, 0x62, 0x50, 0x4c, 0x71, 0x47, 0x67, 0x5a, 0x32, 0x4b, 0x2b, 0x45, 0x62, 0x54, 0x42, 0x77, 0x58, 0x58, 0x37, 0x7a, 0x4c, 0x74, 0x4a, 0x54, 0x6d, 0x65, 0x48, 0x2b, 0x48, 0x31, 0x37, 0x5a, 0x53, 0x4b, 0x39, 0x64, 0x45, 0x34, 0x33, 0x62, 0x2f, 0x32, 0x4d, 0x7a, 0x54, 0x64, 0x4d, 0x41, 0x41, 0x72, 0x7a, 0x45, 0x2b, 0x4e, 0x45, 0x47, 0x43, 0x4a, 0x52, 0x35, 0x57, 0x49, 0x6f, 0x56, 0x0a, 0x33, 0x69, 0x6d, 0x7a, 0x2f, 0x66, 0x33, 0x45, 0x54, 0x2b, 0x69, 0x71, 0x34, 0x71, 0x41, 0x37, 0x65, 0x63, 0x32, 0x2f, 0x61, 0x30, 0x4d, 0x79, 0x33, 0x64, 0x6c, 0x30, 0x45, 0x4c, 0x6e, 0x33, 0x39, 0x47, 0x6a, 0x55, 0x75, 0x39, 0x43, 0x48, 0x31, 0x61, 0x70, 0x4c, 0x69, 0x69, 0x70, 0x76, 0x4b, 0x67, 0x53, 0x31, 0x73, 0x71, 0x62, 0x48, 0x6f, 0x48, 0x72, 0x6d, 0x53, 0x4b, 0x76, 0x53, 0x30, 0x56, 0x6e, 0x4d, 0x31, 0x6e, 0x34, 0x6a, 0x35, 0x70, 0x64, 0x73, 0x0a, 0x38, 0x45, 0x4c, 0x6c, 0x33, 0x46, 0x46, 0x4c, 0x46, 0x55, 0x48, 0x74, 0x53, 0x55, 0x72, 0x4a, 0x33, 0x68, 0x43, 0x58, 0x31, 0x6e, 0x62, 0x42, 0x37, 0x36, 0x57, 0x31, 0x4e, 0x68, 0x53, 0x58, 0x4e, 0x64, 0x68, 0x34, 0x49, 0x6a, 0x56, 0x53, 0x37, 0x30, 0x4f, 0x39, 0x32, 0x79, 0x66, 0x62, 0x59, 0x56, 0x61, 0x43, 0x4e, 0x4e, 0x7a, 0x4c, 0x69, 0x47, 0x41, 0x4d, 0x43, 0x31, 0x72, 0x6c, 0x4c, 0x41, 0x48, 0x47, 0x56, 0x4b, 0x2f, 0x58, 0x71, 0x73, 0x45, 0x51, 0x0a, 0x65, 0x39, 0x49, 0x46, 0x57, 0x72, 0x68, 0x41, 0x6e, 0x6f, 0x61, 0x6e, 0x77, 0x35, 0x43, 0x47, 0x41, 0x6c, 0x5a, 0x53, 0x43, 0x58, 0x71, 0x63, 0x30, 0x69, 0x65, 0x43, 0x55, 0x30, 0x70, 0x6c, 0x55, 0x6d, 0x72, 0x31, 0x50, 0x4f, 0x65, 0x6f, 0x38, 0x70, 0x79, 0x76, 0x69, 0x37, 0x33, 0x54, 0x44, 0x74, 0x54, 0x55, 0x58, 0x6d, 0x36, 0x48, 0x6e, 0x6d, 0x6f, 0x39, 0x52, 0x52, 0x33, 0x52, 0x58, 0x52, 0x76, 0x30, 0x36, 0x51, 0x71, 0x73, 0x59, 0x4a, 0x6e, 0x37, 0x0a, 0x69, 0x62, 0x54, 0x2f, 0x6d, 0x43, 0x7a, 0x50, 0x66, 0x42, 0x33, 0x70, 0x41, 0x71, 0x6f, 0x45, 0x6d, 0x68, 0x36, 0x34, 0x33, 0x49, 0x68, 0x75, 0x4a, 0x62, 0x4e, 0x73, 0x5a, 0x76, 0x63, 0x38, 0x6b, 0x50, 0x4e, 0x58, 0x77, 0x62, 0x4d, 0x76, 0x39, 0x57, 0x33, 0x79, 0x2b, 0x38, 0x71, 0x68, 0x2b, 0x43, 0x6d, 0x64, 0x52, 0x6f, 0x75, 0x7a, 0x61, 0x76, 0x62, 0x6d, 0x5a, 0x77, 0x65, 0x2b, 0x4c, 0x47, 0x63, 0x4b, 0x4b, 0x68, 0x39, 0x61, 0x73, 0x6a, 0x35, 0x58, 0x0a, 0x78, 0x4e, 0x4d, 0x68, 0x49, 0x57, 0x4e, 0x6c, 0x55, 0x70, 0x45, 0x62, 0x73, 0x5a, 0x6d, 0x4f, 0x65, 0x58, 0x37, 0x6d, 0x36, 0x34, 0x30, 0x41, 0x32, 0x56, 0x71, 0x71, 0x36, 0x6e, 0x50, 0x6f, 0x70, 0x49, 0x49, 0x43, 0x52, 0x35, 0x62, 0x2b, 0x57, 0x34, 0x35, 0x55, 0x59, 0x61, 0x50, 0x72, 0x4c, 0x30, 0x73, 0x77, 0x73, 0x49, 0x73, 0x6a, 0x64, 0x58, 0x4a, 0x38, 0x49, 0x54, 0x7a, 0x49, 0x39, 0x76, 0x46, 0x30, 0x31, 0x42, 0x78, 0x37, 0x6f, 0x77, 0x56, 0x56, 0x0a, 0x37, 0x72, 0x74, 0x4e, 0x4f, 0x7a, 0x4b, 0x2b, 0x6d, 0x6e, 0x64, 0x6d, 0x6e, 0x71, 0x78, 0x70, 0x6b, 0x43, 0x49, 0x48, 0x48, 0x32, 0x45, 0x36, 0x6c, 0x72, 0x37, 0x6c, 0x6d, 0x6b, 0x2f, 0x4d, 0x42, 0x54, 0x77, 0x6f, 0x57, 0x64, 0x50, 0x42, 0x44, 0x46, 0x53, 0x6f, 0x57, 0x57, 0x47, 0x39, 0x79, 0x48, 0x4a, 0x4d, 0x36, 0x4e, 0x79, 0x66, 0x68, 0x33, 0x2b, 0x39, 0x6e, 0x45, 0x67, 0x32, 0x58, 0x70, 0x57, 0x6a, 0x44, 0x72, 0x6b, 0x34, 0x4a, 0x46, 0x58, 0x38, 0x0a, 0x64, 0x57, 0x62, 0x72, 0x41, 0x75, 0x4d, 0x49, 0x4e, 0x43, 0x6c, 0x4b, 0x78, 0x75, 0x4d, 0x72, 0x4c, 0x7a, 0x4f, 0x67, 0x32, 0x71, 0x4f, 0x47, 0x70, 0x52, 0x4b, 0x58, 0x2f, 0x59, 0x41, 0x72, 0x32, 0x68, 0x52, 0x43, 0x34, 0x35, 0x4b, 0x39, 0x50, 0x76, 0x4a, 0x64, 0x58, 0x6d, 0x64, 0x30, 0x4c, 0x68, 0x79, 0x49, 0x52, 0x79, 0x6b, 0x30, 0x58, 0x2b, 0x49, 0x79, 0x71, 0x4a, 0x77, 0x6c, 0x4e, 0x34, 0x79, 0x36, 0x6d, 0x41, 0x43, 0x58, 0x69, 0x30, 0x6d, 0x57, 0x0a, 0x48, 0x76, 0x30, 0x6c, 0x69, 0x71, 0x7a, 0x63, 0x32, 0x74, 0x68, 0x64, 0x64, 0x47, 0x35, 0x6d, 0x73, 0x50, 0x39, 0x45, 0x33, 0x36, 0x45, 0x59, 0x78, 0x72, 0x35, 0x49, 0x4c, 0x7a, 0x65, 0x55, 0x65, 0x50, 0x69, 0x56, 0x53, 0x6a, 0x39, 0x2f, 0x45, 0x31, 0x35, 0x64, 0x57, 0x66, 0x31, 0x30, 0x68, 0x6b, 0x4e, 0x6a, 0x63, 0x30, 0x6b, 0x43, 0x41, 0x77, 0x45, 0x41, 0x41, 0x61, 0x4e, 0x43, 0x4d, 0x45, 0x41, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x0a, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x51, 0x59, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x4a, 0x38, 0x34, 0x78, 0x46, 0x59, 0x6a, 0x77, 0x7a, 0x6e, 0x6f, 0x6f, 0x48, 0x46, 0x73, 0x36, 0x46, 0x52, 0x4d, 0x35, 0x4f, 0x67, 0x36, 0x73, 0x62, 0x39, 0x6e, 0x0a, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x43, 0x77, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x41, 0x51, 0x41, 0x53, 0x35, 0x55, 0x4b, 0x6d, 0x65, 0x34, 0x73, 0x50, 0x44, 0x4f, 0x52, 0x47, 0x70, 0x62, 0x5a, 0x67, 0x51, 0x49, 0x65, 0x4d, 0x4a, 0x58, 0x36, 0x74, 0x75, 0x47, 0x67, 0x75, 0x57, 0x38, 0x5a, 0x41, 0x64, 0x6a, 0x77, 0x44, 0x2b, 0x4d, 0x6c, 0x5a, 0x39, 0x50, 0x4f, 0x72, 0x59, 0x73, 0x34, 0x51, 0x0a, 0x6a, 0x62, 0x52, 0x61, 0x5a, 0x49, 0x78, 0x6f, 0x77, 0x4c, 0x42, 0x79, 0x51, 0x7a, 0x54, 0x53, 0x47, 0x77, 0x76, 0x32, 0x4c, 0x46, 0x50, 0x53, 0x79, 0x70, 0x42, 0x4c, 0x68, 0x6d, 0x62, 0x38, 0x71, 0x6f, 0x4d, 0x69, 0x39, 0x49, 0x73, 0x61, 0x62, 0x79, 0x5a, 0x49, 0x72, 0x48, 0x5a, 0x33, 0x43, 0x4c, 0x2f, 0x46, 0x6d, 0x46, 0x7a, 0x30, 0x4a, 0x6f, 0x6d, 0x65, 0x65, 0x38, 0x4f, 0x35, 0x5a, 0x44, 0x49, 0x42, 0x66, 0x39, 0x50, 0x44, 0x33, 0x56, 0x68, 0x74, 0x0a, 0x37, 0x4c, 0x47, 0x72, 0x68, 0x46, 0x56, 0x30, 0x64, 0x34, 0x51, 0x45, 0x4a, 0x31, 0x4a, 0x72, 0x68, 0x6b, 0x7a, 0x4f, 0x33, 0x62, 0x6c, 0x6c, 0x2f, 0x39, 0x62, 0x47, 0x58, 0x70, 0x2b, 0x61, 0x45, 0x4a, 0x6c, 0x4c, 0x64, 0x57, 0x72, 0x2b, 0x61, 0x75, 0x6d, 0x58, 0x49, 0x4f, 0x54, 0x6b, 0x64, 0x6e, 0x72, 0x47, 0x30, 0x43, 0x53, 0x71, 0x6b, 0x4d, 0x30, 0x67, 0x6b, 0x4c, 0x70, 0x48, 0x5a, 0x50, 0x74, 0x2f, 0x42, 0x37, 0x4e, 0x54, 0x65, 0x4c, 0x55, 0x4b, 0x0a, 0x59, 0x76, 0x4a, 0x7a, 0x51, 0x38, 0x35, 0x42, 0x4b, 0x34, 0x46, 0x71, 0x4c, 0x6f, 0x55, 0x57, 0x6c, 0x46, 0x50, 0x55, 0x61, 0x31, 0x39, 0x79, 0x49, 0x71, 0x74, 0x52, 0x4c, 0x55, 0x4c, 0x56, 0x41, 0x4a, 0x79, 0x5a, 0x76, 0x39, 0x36, 0x37, 0x6c, 0x44, 0x74, 0x58, 0x2f, 0x5a, 0x72, 0x31, 0x68, 0x73, 0x74, 0x57, 0x4f, 0x31, 0x75, 0x49, 0x41, 0x65, 0x56, 0x38, 0x4b, 0x45, 0x73, 0x44, 0x2b, 0x55, 0x6d, 0x44, 0x66, 0x4c, 0x4a, 0x2f, 0x66, 0x4f, 0x50, 0x74, 0x0a, 0x6a, 0x71, 0x46, 0x2f, 0x59, 0x46, 0x4f, 0x4f, 0x56, 0x5a, 0x31, 0x51, 0x4e, 0x42, 0x49, 0x50, 0x74, 0x35, 0x64, 0x37, 0x62, 0x49, 0x64, 0x4b, 0x52, 0x4f, 0x66, 0x31, 0x62, 0x65, 0x79, 0x41, 0x4e, 0x2f, 0x42, 0x59, 0x47, 0x57, 0x35, 0x4b, 0x61, 0x48, 0x62, 0x77, 0x48, 0x35, 0x4c, 0x6b, 0x36, 0x72, 0x57, 0x53, 0x30, 0x32, 0x46, 0x52, 0x45, 0x41, 0x75, 0x74, 0x70, 0x39, 0x6c, 0x66, 0x78, 0x31, 0x2f, 0x63, 0x48, 0x36, 0x4e, 0x63, 0x6a, 0x4b, 0x46, 0x2b, 0x0a, 0x6d, 0x37, 0x65, 0x65, 0x30, 0x31, 0x5a, 0x76, 0x5a, 0x6c, 0x34, 0x48, 0x6c, 0x69, 0x44, 0x74, 0x43, 0x33, 0x54, 0x37, 0x5a, 0x6b, 0x36, 0x4c, 0x45, 0x52, 0x58, 0x70, 0x67, 0x55, 0x6c, 0x2b, 0x62, 0x37, 0x44, 0x55, 0x55, 0x48, 0x38, 0x69, 0x31, 0x31, 0x39, 0x6c, 0x41, 0x67, 0x32, 0x6d, 0x39, 0x49, 0x55, 0x65, 0x32, 0x4b, 0x34, 0x47, 0x53, 0x30, 0x71, 0x6e, 0x30, 0x6a, 0x46, 0x6d, 0x77, 0x76, 0x6a, 0x4f, 0x35, 0x51, 0x69, 0x6d, 0x70, 0x41, 0x4b, 0x57, 0x0a, 0x52, 0x47, 0x68, 0x58, 0x78, 0x4e, 0x55, 0x7a, 0x7a, 0x78, 0x6b, 0x76, 0x46, 0x4d, 0x53, 0x55, 0x48, 0x48, 0x75, 0x6b, 0x32, 0x66, 0x43, 0x66, 0x44, 0x72, 0x47, 0x41, 0x34, 0x74, 0x47, 0x65, 0x45, 0x57, 0x53, 0x70, 0x69, 0x42, 0x45, 0x36, 0x64, 0x6f, 0x4c, 0x6c, 0x59, 0x73, 0x4b, 0x41, 0x32, 0x4b, 0x53, 0x44, 0x37, 0x5a, 0x50, 0x76, 0x66, 0x43, 0x2b, 0x51, 0x73, 0x44, 0x4a, 0x4d, 0x6c, 0x68, 0x56, 0x6f, 0x53, 0x46, 0x4c, 0x55, 0x6d, 0x51, 0x6a, 0x41, 0x0a, 0x4a, 0x4f, 0x67, 0x63, 0x34, 0x37, 0x4f, 0x6c, 0x49, 0x51, 0x36, 0x53, 0x77, 0x4a, 0x41, 0x66, 0x7a, 0x79, 0x42, 0x66, 0x79, 0x6a, 0x73, 0x34, 0x78, 0x37, 0x64, 0x74, 0x4f, 0x76, 0x50, 0x6d, 0x52, 0x4c, 0x67, 0x4f, 0x4d, 0x57, 0x75, 0x49, 0x6a, 0x6e, 0x44, 0x72, 0x6e, 0x42, 0x64, 0x53, 0x71, 0x45, 0x47, 0x55, 0x4c, 0x6f, 0x65, 0x32, 0x35, 0x36, 0x59, 0x53, 0x78, 0x58, 0x58, 0x66, 0x57, 0x38, 0x41, 0x4b, 0x62, 0x6e, 0x75, 0x6b, 0x35, 0x46, 0x36, 0x47, 0x0a, 0x2b, 0x54, 0x61, 0x55, 0x33, 0x33, 0x66, 0x44, 0x36, 0x51, 0x33, 0x41, 0x4f, 0x66, 0x46, 0x35, 0x75, 0x30, 0x61, 0x4f, 0x71, 0x30, 0x4e, 0x5a, 0x4a, 0x37, 0x63, 0x67, 0x75, 0x79, 0x50, 0x70, 0x56, 0x6b, 0x41, 0x68, 0x37, 0x44, 0x45, 0x39, 0x5a, 0x61, 0x70, 0x44, 0x38, 0x6a, 0x33, 0x66, 0x63, 0x45, 0x54, 0x68, 0x75, 0x6b, 0x30, 0x6d, 0x45, 0x44, 0x75, 0x59, 0x6e, 0x2f, 0x50, 0x49, 0x6a, 0x68, 0x73, 0x34, 0x56, 0x69, 0x46, 0x71, 0x55, 0x5a, 0x50, 0x54, 0x0a, 0x6b, 0x63, 0x70, 0x47, 0x32, 0x6f, 0x6d, 0x33, 0x50, 0x56, 0x4f, 0x44, 0x4c, 0x41, 0x67, 0x66, 0x69, 0x34, 0x39, 0x54, 0x33, 0x66, 0x2b, 0x73, 0x48, 0x77, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x45, 0x43, 0x43, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x32, 0x30, 0x31, 0x37, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x57, 0x54, 0x43, 0x43, 0x41, 0x64, 0x2b, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x5a, 0x76, 0x49, 0x39, 0x72, 0x34, 0x66, 0x65, 0x69, 0x37, 0x46, 0x4b, 0x36, 0x67, 0x78, 0x58, 0x4d, 0x51, 0x48, 0x43, 0x37, 0x44, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x7a, 0x42, 0x6c, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x0a, 0x55, 0x7a, 0x45, 0x65, 0x4d, 0x42, 0x77, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x56, 0x54, 0x57, 0x6c, 0x6a, 0x63, 0x6d, 0x39, 0x7a, 0x62, 0x32, 0x5a, 0x30, 0x49, 0x45, 0x4e, 0x76, 0x63, 0x6e, 0x42, 0x76, 0x63, 0x6d, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x4d, 0x54, 0x59, 0x77, 0x4e, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x79, 0x31, 0x4e, 0x61, 0x57, 0x4e, 0x79, 0x62, 0x33, 0x4e, 0x76, 0x5a, 0x6e, 0x51, 0x67, 0x52, 0x55, 0x4e, 0x44, 0x0a, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x64, 0x47, 0x55, 0x67, 0x51, 0x58, 0x56, 0x30, 0x61, 0x47, 0x39, 0x79, 0x61, 0x58, 0x52, 0x35, 0x49, 0x44, 0x49, 0x77, 0x4d, 0x54, 0x63, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x54, 0x6b, 0x78, 0x4d, 0x6a, 0x45, 0x34, 0x4d, 0x6a, 0x4d, 0x77, 0x4e, 0x6a, 0x51, 0x31, 0x57, 0x68, 0x63, 0x4e, 0x4e, 0x44, 0x49, 0x77, 0x4e, 0x7a, 0x45, 0x34, 0x0a, 0x4d, 0x6a, 0x4d, 0x78, 0x4e, 0x6a, 0x41, 0x30, 0x57, 0x6a, 0x42, 0x6c, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x65, 0x4d, 0x42, 0x77, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x56, 0x54, 0x57, 0x6c, 0x6a, 0x63, 0x6d, 0x39, 0x7a, 0x62, 0x32, 0x5a, 0x30, 0x49, 0x45, 0x4e, 0x76, 0x63, 0x6e, 0x42, 0x76, 0x63, 0x6d, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x4d, 0x54, 0x59, 0x77, 0x0a, 0x4e, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x79, 0x31, 0x4e, 0x61, 0x57, 0x4e, 0x79, 0x62, 0x33, 0x4e, 0x76, 0x5a, 0x6e, 0x51, 0x67, 0x52, 0x55, 0x4e, 0x44, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x64, 0x47, 0x55, 0x67, 0x51, 0x58, 0x56, 0x30, 0x61, 0x47, 0x39, 0x79, 0x61, 0x58, 0x52, 0x35, 0x49, 0x44, 0x49, 0x77, 0x4d, 0x54, 0x63, 0x77, 0x64, 0x6a, 0x41, 0x51, 0x0a, 0x42, 0x67, 0x63, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x49, 0x42, 0x42, 0x67, 0x55, 0x72, 0x67, 0x51, 0x51, 0x41, 0x49, 0x67, 0x4e, 0x69, 0x41, 0x41, 0x54, 0x55, 0x76, 0x44, 0x30, 0x43, 0x51, 0x6e, 0x56, 0x42, 0x45, 0x79, 0x50, 0x4e, 0x67, 0x41, 0x53, 0x47, 0x41, 0x6c, 0x45, 0x76, 0x61, 0x71, 0x69, 0x42, 0x59, 0x67, 0x74, 0x6c, 0x7a, 0x50, 0x62, 0x4b, 0x6e, 0x52, 0x35, 0x76, 0x53, 0x6d, 0x5a, 0x52, 0x6f, 0x67, 0x50, 0x5a, 0x6e, 0x5a, 0x48, 0x36, 0x0a, 0x74, 0x68, 0x61, 0x78, 0x6a, 0x47, 0x37, 0x65, 0x66, 0x4d, 0x33, 0x62, 0x65, 0x61, 0x59, 0x76, 0x7a, 0x72, 0x76, 0x4f, 0x63, 0x53, 0x2f, 0x6c, 0x70, 0x61, 0x73, 0x6f, 0x37, 0x47, 0x4d, 0x45, 0x5a, 0x70, 0x6e, 0x34, 0x2b, 0x76, 0x4b, 0x54, 0x45, 0x41, 0x58, 0x68, 0x67, 0x53, 0x68, 0x43, 0x34, 0x38, 0x5a, 0x6f, 0x39, 0x4f, 0x59, 0x62, 0x68, 0x47, 0x42, 0x4b, 0x69, 0x61, 0x2f, 0x74, 0x65, 0x51, 0x38, 0x37, 0x7a, 0x76, 0x48, 0x32, 0x52, 0x50, 0x55, 0x42, 0x0a, 0x65, 0x4d, 0x43, 0x6a, 0x56, 0x44, 0x42, 0x53, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x68, 0x6a, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x54, 0x49, 0x79, 0x35, 0x6c, 0x79, 0x63, 0x46, 0x49, 0x4d, 0x0a, 0x2b, 0x4f, 0x61, 0x2b, 0x73, 0x67, 0x52, 0x58, 0x4b, 0x53, 0x72, 0x50, 0x51, 0x68, 0x44, 0x74, 0x4e, 0x54, 0x41, 0x51, 0x42, 0x67, 0x6b, 0x72, 0x42, 0x67, 0x45, 0x45, 0x41, 0x59, 0x49, 0x33, 0x46, 0x51, 0x45, 0x45, 0x41, 0x77, 0x49, 0x42, 0x41, 0x44, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x77, 0x4e, 0x6f, 0x41, 0x44, 0x42, 0x6c, 0x41, 0x6a, 0x42, 0x59, 0x38, 0x6b, 0x33, 0x71, 0x44, 0x50, 0x6c, 0x66, 0x0a, 0x58, 0x75, 0x35, 0x67, 0x4b, 0x63, 0x73, 0x36, 0x38, 0x74, 0x76, 0x57, 0x4d, 0x6f, 0x51, 0x5a, 0x50, 0x33, 0x7a, 0x56, 0x4c, 0x38, 0x4b, 0x78, 0x7a, 0x4a, 0x4f, 0x75, 0x55, 0x4c, 0x73, 0x4a, 0x4d, 0x73, 0x62, 0x47, 0x37, 0x58, 0x37, 0x4a, 0x4e, 0x70, 0x51, 0x53, 0x35, 0x47, 0x69, 0x46, 0x42, 0x71, 0x49, 0x62, 0x30, 0x43, 0x38, 0x43, 0x4d, 0x51, 0x43, 0x5a, 0x36, 0x52, 0x61, 0x30, 0x44, 0x76, 0x70, 0x57, 0x53, 0x4e, 0x53, 0x6b, 0x4d, 0x42, 0x61, 0x52, 0x0a, 0x65, 0x4e, 0x74, 0x55, 0x6a, 0x47, 0x55, 0x42, 0x69, 0x75, 0x64, 0x51, 0x5a, 0x73, 0x49, 0x78, 0x74, 0x7a, 0x6d, 0x36, 0x75, 0x42, 0x6f, 0x69, 0x42, 0x30, 0x37, 0x38, 0x61, 0x31, 0x51, 0x57, 0x49, 0x50, 0x38, 0x72, 0x74, 0x65, 0x64, 0x4d, 0x44, 0x45, 0x32, 0x6d, 0x54, 0x33, 0x4d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x52, 0x53, 0x41, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x32, 0x30, 0x31, 0x37, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x71, 0x44, 0x43, 0x43, 0x41, 0x35, 0x43, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x48, 0x74, 0x4f, 0x58, 0x43, 0x56, 0x2f, 0x59, 0x74, 0x4c, 0x4e, 0x48, 0x63, 0x42, 0x36, 0x71, 0x76, 0x6e, 0x39, 0x46, 0x73, 0x7a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x77, 0x46, 0x41, 0x44, 0x42, 0x6c, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x0a, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x65, 0x4d, 0x42, 0x77, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x56, 0x54, 0x57, 0x6c, 0x6a, 0x63, 0x6d, 0x39, 0x7a, 0x62, 0x32, 0x5a, 0x30, 0x49, 0x45, 0x4e, 0x76, 0x63, 0x6e, 0x42, 0x76, 0x63, 0x6d, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x4d, 0x54, 0x59, 0x77, 0x4e, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x79, 0x31, 0x4e, 0x61, 0x57, 0x4e, 0x79, 0x62, 0x33, 0x4e, 0x76, 0x5a, 0x6e, 0x51, 0x67, 0x0a, 0x55, 0x6c, 0x4e, 0x42, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x64, 0x47, 0x55, 0x67, 0x51, 0x58, 0x56, 0x30, 0x61, 0x47, 0x39, 0x79, 0x61, 0x58, 0x52, 0x35, 0x49, 0x44, 0x49, 0x77, 0x4d, 0x54, 0x63, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x54, 0x6b, 0x78, 0x4d, 0x6a, 0x45, 0x34, 0x4d, 0x6a, 0x49, 0x31, 0x4d, 0x54, 0x49, 0x79, 0x57, 0x68, 0x63, 0x4e, 0x4e, 0x44, 0x49, 0x77, 0x0a, 0x4e, 0x7a, 0x45, 0x34, 0x4d, 0x6a, 0x4d, 0x77, 0x4d, 0x44, 0x49, 0x7a, 0x57, 0x6a, 0x42, 0x6c, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x65, 0x4d, 0x42, 0x77, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x56, 0x54, 0x57, 0x6c, 0x6a, 0x63, 0x6d, 0x39, 0x7a, 0x62, 0x32, 0x5a, 0x30, 0x49, 0x45, 0x4e, 0x76, 0x63, 0x6e, 0x42, 0x76, 0x63, 0x6d, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x0a, 0x4d, 0x54, 0x59, 0x77, 0x4e, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x79, 0x31, 0x4e, 0x61, 0x57, 0x4e, 0x79, 0x62, 0x33, 0x4e, 0x76, 0x5a, 0x6e, 0x51, 0x67, 0x55, 0x6c, 0x4e, 0x42, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x64, 0x47, 0x55, 0x67, 0x51, 0x58, 0x56, 0x30, 0x61, 0x47, 0x39, 0x79, 0x61, 0x58, 0x52, 0x35, 0x49, 0x44, 0x49, 0x77, 0x4d, 0x54, 0x63, 0x77, 0x0a, 0x67, 0x67, 0x49, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x49, 0x4b, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x44, 0x4b, 0x57, 0x37, 0x36, 0x55, 0x4d, 0x34, 0x77, 0x70, 0x6c, 0x5a, 0x45, 0x57, 0x43, 0x70, 0x57, 0x39, 0x52, 0x32, 0x4c, 0x42, 0x69, 0x66, 0x4f, 0x5a, 0x4e, 0x74, 0x39, 0x47, 0x6b, 0x4d, 0x6d, 0x6c, 0x0a, 0x37, 0x58, 0x68, 0x71, 0x62, 0x30, 0x65, 0x52, 0x61, 0x50, 0x67, 0x6e, 0x5a, 0x31, 0x41, 0x7a, 0x48, 0x61, 0x47, 0x6d, 0x2b, 0x2b, 0x44, 0x6c, 0x51, 0x36, 0x4f, 0x45, 0x41, 0x6c, 0x63, 0x42, 0x58, 0x5a, 0x78, 0x49, 0x51, 0x49, 0x4a, 0x54, 0x45, 0x4c, 0x79, 0x2f, 0x78, 0x7a, 0x74, 0x6f, 0x6b, 0x4c, 0x61, 0x43, 0x4c, 0x65, 0x58, 0x30, 0x5a, 0x64, 0x44, 0x4d, 0x62, 0x52, 0x6e, 0x4d, 0x6c, 0x66, 0x6c, 0x37, 0x72, 0x45, 0x71, 0x55, 0x72, 0x51, 0x37, 0x65, 0x0a, 0x53, 0x30, 0x4d, 0x64, 0x68, 0x77, 0x65, 0x53, 0x45, 0x35, 0x43, 0x41, 0x67, 0x32, 0x51, 0x31, 0x4f, 0x51, 0x54, 0x38, 0x35, 0x65, 0x6c, 0x73, 0x73, 0x37, 0x59, 0x66, 0x55, 0x4a, 0x51, 0x34, 0x5a, 0x56, 0x42, 0x63, 0x46, 0x30, 0x61, 0x35, 0x74, 0x6f, 0x57, 0x31, 0x48, 0x4c, 0x55, 0x58, 0x36, 0x4e, 0x5a, 0x46, 0x6e, 0x64, 0x69, 0x79, 0x4a, 0x72, 0x44, 0x4b, 0x78, 0x48, 0x42, 0x4b, 0x72, 0x6d, 0x43, 0x6b, 0x33, 0x62, 0x50, 0x5a, 0x37, 0x50, 0x77, 0x37, 0x0a, 0x31, 0x56, 0x64, 0x79, 0x76, 0x44, 0x2f, 0x49, 0x79, 0x62, 0x4c, 0x65, 0x53, 0x32, 0x76, 0x34, 0x49, 0x32, 0x77, 0x44, 0x77, 0x41, 0x57, 0x39, 0x6c, 0x63, 0x66, 0x4e, 0x63, 0x7a, 0x74, 0x6d, 0x67, 0x47, 0x54, 0x6a, 0x47, 0x71, 0x77, 0x75, 0x2b, 0x55, 0x63, 0x46, 0x38, 0x67, 0x61, 0x32, 0x6d, 0x33, 0x50, 0x31, 0x65, 0x44, 0x4e, 0x62, 0x78, 0x36, 0x48, 0x37, 0x4a, 0x79, 0x71, 0x68, 0x74, 0x4a, 0x71, 0x52, 0x6a, 0x4a, 0x48, 0x54, 0x4f, 0x6f, 0x49, 0x2b, 0x0a, 0x64, 0x6b, 0x43, 0x30, 0x7a, 0x56, 0x4a, 0x68, 0x55, 0x58, 0x41, 0x6f, 0x50, 0x38, 0x58, 0x46, 0x57, 0x76, 0x4c, 0x4a, 0x6a, 0x45, 0x6d, 0x37, 0x46, 0x46, 0x74, 0x4e, 0x79, 0x50, 0x39, 0x6e, 0x54, 0x55, 0x77, 0x53, 0x6c, 0x71, 0x33, 0x31, 0x2f, 0x6e, 0x69, 0x6f, 0x6c, 0x34, 0x66, 0x58, 0x2f, 0x56, 0x34, 0x67, 0x67, 0x4e, 0x79, 0x68, 0x53, 0x79, 0x4c, 0x37, 0x31, 0x49, 0x6d, 0x74, 0x75, 0x73, 0x35, 0x48, 0x6c, 0x30, 0x64, 0x56, 0x65, 0x34, 0x39, 0x46, 0x0a, 0x79, 0x47, 0x63, 0x6f, 0x68, 0x4a, 0x55, 0x63, 0x61, 0x44, 0x44, 0x76, 0x37, 0x30, 0x6e, 0x67, 0x4e, 0x58, 0x74, 0x6b, 0x35, 0x35, 0x69, 0x77, 0x6c, 0x4e, 0x70, 0x4e, 0x68, 0x54, 0x73, 0x2b, 0x56, 0x63, 0x51, 0x6f, 0x72, 0x31, 0x66, 0x7a, 0x6e, 0x68, 0x50, 0x62, 0x52, 0x69, 0x65, 0x66, 0x48, 0x71, 0x4a, 0x65, 0x52, 0x49, 0x4f, 0x6b, 0x70, 0x63, 0x72, 0x56, 0x45, 0x37, 0x4e, 0x4c, 0x50, 0x38, 0x54, 0x6a, 0x77, 0x75, 0x61, 0x47, 0x59, 0x61, 0x52, 0x53, 0x0a, 0x4d, 0x4c, 0x6c, 0x36, 0x49, 0x45, 0x39, 0x76, 0x44, 0x7a, 0x68, 0x54, 0x79, 0x7a, 0x4d, 0x4d, 0x45, 0x79, 0x75, 0x50, 0x31, 0x70, 0x71, 0x39, 0x4b, 0x73, 0x67, 0x74, 0x73, 0x52, 0x78, 0x39, 0x53, 0x31, 0x48, 0x4b, 0x52, 0x39, 0x46, 0x49, 0x4a, 0x33, 0x4a, 0x64, 0x68, 0x2b, 0x76, 0x56, 0x52, 0x65, 0x5a, 0x49, 0x5a, 0x5a, 0x32, 0x76, 0x55, 0x70, 0x43, 0x36, 0x57, 0x36, 0x49, 0x59, 0x5a, 0x56, 0x63, 0x53, 0x6e, 0x32, 0x69, 0x35, 0x31, 0x42, 0x56, 0x72, 0x0a, 0x6c, 0x4d, 0x52, 0x70, 0x49, 0x70, 0x6a, 0x30, 0x4d, 0x2b, 0x44, 0x74, 0x2b, 0x56, 0x47, 0x4f, 0x51, 0x56, 0x44, 0x4a, 0x4e, 0x45, 0x39, 0x32, 0x6b, 0x4b, 0x7a, 0x38, 0x4f, 0x4d, 0x48, 0x59, 0x34, 0x58, 0x75, 0x35, 0x34, 0x2b, 0x4f, 0x55, 0x34, 0x55, 0x5a, 0x70, 0x79, 0x77, 0x34, 0x4b, 0x55, 0x47, 0x73, 0x54, 0x75, 0x71, 0x77, 0x50, 0x4e, 0x31, 0x71, 0x33, 0x45, 0x72, 0x57, 0x51, 0x67, 0x52, 0x35, 0x57, 0x72, 0x6c, 0x63, 0x69, 0x68, 0x74, 0x6e, 0x4a, 0x0a, 0x30, 0x74, 0x48, 0x58, 0x55, 0x65, 0x4f, 0x72, 0x4f, 0x38, 0x5a, 0x56, 0x2f, 0x52, 0x34, 0x4f, 0x30, 0x33, 0x51, 0x4b, 0x30, 0x64, 0x71, 0x71, 0x36, 0x6d, 0x6d, 0x34, 0x6c, 0x79, 0x69, 0x50, 0x53, 0x4d, 0x51, 0x48, 0x2b, 0x46, 0x4a, 0x44, 0x4f, 0x76, 0x54, 0x4b, 0x56, 0x54, 0x55, 0x73, 0x73, 0x4b, 0x5a, 0x71, 0x77, 0x4a, 0x7a, 0x35, 0x38, 0x6f, 0x48, 0x68, 0x45, 0x6d, 0x72, 0x41, 0x52, 0x64, 0x6c, 0x6e, 0x73, 0x38, 0x37, 0x2f, 0x49, 0x36, 0x4b, 0x4a, 0x0a, 0x43, 0x6c, 0x54, 0x55, 0x46, 0x4c, 0x6b, 0x71, 0x71, 0x4e, 0x66, 0x73, 0x2b, 0x61, 0x76, 0x4e, 0x4a, 0x56, 0x67, 0x79, 0x65, 0x59, 0x2b, 0x51, 0x57, 0x35, 0x67, 0x35, 0x78, 0x41, 0x67, 0x47, 0x77, 0x61, 0x78, 0x2f, 0x44, 0x6a, 0x30, 0x41, 0x70, 0x51, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x31, 0x51, 0x77, 0x55, 0x6a, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x59, 0x59, 0x77, 0x0a, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x43, 0x63, 0x74, 0x5a, 0x66, 0x34, 0x61, 0x79, 0x63, 0x49, 0x38, 0x61, 0x77, 0x7a, 0x6e, 0x6a, 0x77, 0x4e, 0x6e, 0x70, 0x76, 0x37, 0x74, 0x4e, 0x73, 0x69, 0x4d, 0x77, 0x45, 0x41, 0x59, 0x4a, 0x4b, 0x77, 0x59, 0x42, 0x42, 0x41, 0x47, 0x43, 0x0a, 0x4e, 0x78, 0x55, 0x42, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x51, 0x41, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4d, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x42, 0x41, 0x4b, 0x79, 0x76, 0x50, 0x6c, 0x33, 0x43, 0x45, 0x5a, 0x61, 0x4a, 0x6a, 0x71, 0x50, 0x6e, 0x6b, 0x74, 0x61, 0x58, 0x46, 0x62, 0x67, 0x54, 0x6f, 0x71, 0x5a, 0x43, 0x4c, 0x67, 0x4c, 0x4e, 0x46, 0x67, 0x56, 0x5a, 0x4a, 0x38, 0x6f, 0x67, 0x0a, 0x36, 0x4c, 0x71, 0x34, 0x36, 0x42, 0x72, 0x73, 0x54, 0x61, 0x69, 0x58, 0x56, 0x71, 0x35, 0x6c, 0x51, 0x37, 0x47, 0x50, 0x41, 0x4a, 0x74, 0x53, 0x7a, 0x56, 0x58, 0x4e, 0x55, 0x7a, 0x6c, 0x74, 0x59, 0x6b, 0x79, 0x4c, 0x44, 0x56, 0x74, 0x38, 0x4c, 0x6b, 0x53, 0x2f, 0x67, 0x78, 0x43, 0x50, 0x38, 0x31, 0x4f, 0x43, 0x67, 0x4d, 0x4e, 0x50, 0x4f, 0x73, 0x64, 0x75, 0x45, 0x54, 0x2f, 0x6d, 0x34, 0x78, 0x61, 0x52, 0x68, 0x50, 0x74, 0x74, 0x68, 0x48, 0x38, 0x30, 0x0a, 0x64, 0x4b, 0x32, 0x4a, 0x70, 0x38, 0x36, 0x35, 0x31, 0x39, 0x65, 0x66, 0x68, 0x47, 0x53, 0x53, 0x76, 0x70, 0x57, 0x68, 0x72, 0x51, 0x6c, 0x54, 0x4d, 0x39, 0x33, 0x75, 0x43, 0x75, 0x70, 0x4b, 0x55, 0x59, 0x35, 0x76, 0x56, 0x61, 0x75, 0x36, 0x74, 0x5a, 0x52, 0x47, 0x72, 0x6f, 0x78, 0x2f, 0x32, 0x4b, 0x4a, 0x51, 0x4a, 0x57, 0x56, 0x67, 0x67, 0x45, 0x62, 0x62, 0x4d, 0x77, 0x53, 0x75, 0x62, 0x4c, 0x57, 0x59, 0x64, 0x46, 0x51, 0x6c, 0x33, 0x4a, 0x50, 0x6b, 0x0a, 0x2b, 0x4f, 0x4e, 0x56, 0x46, 0x54, 0x32, 0x34, 0x62, 0x63, 0x4d, 0x4b, 0x70, 0x42, 0x4c, 0x42, 0x61, 0x59, 0x56, 0x75, 0x33, 0x32, 0x54, 0x78, 0x55, 0x35, 0x6e, 0x68, 0x53, 0x6e, 0x55, 0x67, 0x6e, 0x5a, 0x55, 0x50, 0x35, 0x4e, 0x62, 0x63, 0x41, 0x2f, 0x46, 0x5a, 0x47, 0x4f, 0x68, 0x48, 0x69, 0x62, 0x4a, 0x58, 0x57, 0x70, 0x53, 0x32, 0x71, 0x64, 0x67, 0x58, 0x4b, 0x78, 0x64, 0x4a, 0x35, 0x58, 0x62, 0x4c, 0x77, 0x56, 0x61, 0x5a, 0x4f, 0x6a, 0x65, 0x78, 0x0a, 0x2f, 0x32, 0x6b, 0x73, 0x6b, 0x5a, 0x47, 0x54, 0x34, 0x64, 0x39, 0x4d, 0x6f, 0x7a, 0x64, 0x32, 0x54, 0x61, 0x47, 0x66, 0x2b, 0x47, 0x30, 0x65, 0x48, 0x64, 0x50, 0x36, 0x37, 0x50, 0x76, 0x30, 0x52, 0x52, 0x30, 0x54, 0x62, 0x63, 0x2f, 0x33, 0x57, 0x65, 0x55, 0x69, 0x4a, 0x33, 0x49, 0x72, 0x68, 0x76, 0x4e, 0x58, 0x75, 0x7a, 0x44, 0x74, 0x4a, 0x45, 0x33, 0x63, 0x66, 0x56, 0x61, 0x37, 0x6f, 0x37, 0x50, 0x34, 0x4e, 0x48, 0x6d, 0x4a, 0x77, 0x65, 0x44, 0x79, 0x0a, 0x41, 0x6d, 0x48, 0x33, 0x70, 0x76, 0x77, 0x50, 0x75, 0x78, 0x77, 0x58, 0x43, 0x36, 0x35, 0x42, 0x32, 0x58, 0x79, 0x39, 0x4a, 0x36, 0x50, 0x39, 0x4c, 0x6a, 0x72, 0x52, 0x6b, 0x35, 0x53, 0x78, 0x63, 0x78, 0x30, 0x6b, 0x69, 0x36, 0x39, 0x62, 0x49, 0x49, 0x6d, 0x74, 0x74, 0x32, 0x64, 0x6d, 0x65, 0x66, 0x55, 0x36, 0x78, 0x71, 0x61, 0x57, 0x4d, 0x2f, 0x35, 0x54, 0x6b, 0x73, 0x68, 0x47, 0x73, 0x52, 0x47, 0x52, 0x78, 0x70, 0x6c, 0x2f, 0x6a, 0x38, 0x6e, 0x57, 0x0a, 0x5a, 0x6a, 0x45, 0x67, 0x51, 0x52, 0x43, 0x48, 0x4c, 0x51, 0x7a, 0x57, 0x77, 0x61, 0x38, 0x30, 0x6d, 0x4d, 0x70, 0x6b, 0x67, 0x2f, 0x73, 0x54, 0x56, 0x39, 0x48, 0x42, 0x38, 0x44, 0x78, 0x36, 0x6a, 0x4b, 0x58, 0x42, 0x2f, 0x5a, 0x55, 0x68, 0x6f, 0x48, 0x48, 0x42, 0x6b, 0x32, 0x64, 0x78, 0x45, 0x75, 0x71, 0x50, 0x69, 0x41, 0x70, 0x70, 0x47, 0x57, 0x53, 0x5a, 0x49, 0x31, 0x62, 0x37, 0x72, 0x43, 0x6f, 0x75, 0x63, 0x4c, 0x35, 0x6d, 0x78, 0x41, 0x79, 0x45, 0x0a, 0x37, 0x2b, 0x57, 0x4c, 0x38, 0x35, 0x4d, 0x42, 0x2b, 0x47, 0x71, 0x51, 0x6b, 0x32, 0x64, 0x4c, 0x73, 0x6d, 0x69, 0x6a, 0x74, 0x57, 0x4b, 0x50, 0x36, 0x54, 0x2b, 0x4d, 0x65, 0x6a, 0x74, 0x65, 0x44, 0x2b, 0x65, 0x4d, 0x75, 0x4d, 0x5a, 0x38, 0x37, 0x7a, 0x66, 0x39, 0x64, 0x4f, 0x4c, 0x49, 0x54, 0x7a, 0x4e, 0x79, 0x34, 0x5a, 0x51, 0x35, 0x62, 0x62, 0x30, 0x53, 0x72, 0x37, 0x34, 0x4d, 0x54, 0x6e, 0x42, 0x38, 0x47, 0x32, 0x2b, 0x4e, 0x73, 0x7a, 0x4b, 0x54, 0x0a, 0x63, 0x30, 0x51, 0x57, 0x62, 0x65, 0x6a, 0x30, 0x39, 0x2b, 0x43, 0x56, 0x67, 0x49, 0x2b, 0x57, 0x58, 0x54, 0x69, 0x6b, 0x39, 0x4b, 0x76, 0x65, 0x43, 0x6a, 0x43, 0x48, 0x6b, 0x39, 0x68, 0x4e, 0x41, 0x48, 0x46, 0x69, 0x52, 0x53, 0x64, 0x4c, 0x4f, 0x6b, 0x4b, 0x45, 0x57, 0x33, 0x39, 0x6c, 0x74, 0x32, 0x63, 0x30, 0x55, 0x69, 0x32, 0x63, 0x46, 0x6d, 0x75, 0x71, 0x71, 0x4e, 0x68, 0x37, 0x6f, 0x30, 0x4a, 0x4d, 0x63, 0x63, 0x63, 0x4d, 0x79, 0x6a, 0x36, 0x44, 0x0a, 0x35, 0x4b, 0x62, 0x76, 0x74, 0x77, 0x45, 0x77, 0x58, 0x6c, 0x47, 0x6a, 0x65, 0x66, 0x56, 0x77, 0x61, 0x61, 0x5a, 0x42, 0x52, 0x41, 0x2b, 0x47, 0x73, 0x43, 0x79, 0x52, 0x78, 0x6a, 0x33, 0x71, 0x72, 0x67, 0x2b, 0x45, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x65, 0x2d, 0x53, 0x7a, 0x69, 0x67, 0x6e, 0x6f, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x32, 0x30, 0x31, 0x37, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x51, 0x44, 0x43, 0x43, 0x41, 0x65, 0x57, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4d, 0x41, 0x56, 0x52, 0x49, 0x37, 0x79, 0x48, 0x39, 0x6c, 0x31, 0x6b, 0x4e, 0x39, 0x51, 0x51, 0x4b, 0x4d, 0x41, 0x6f, 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x42, 0x41, 0x4d, 0x43, 0x4d, 0x48, 0x45, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6b, 0x68, 0x56, 0x4d, 0x52, 0x45, 0x77, 0x0a, 0x44, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x48, 0x44, 0x41, 0x68, 0x43, 0x64, 0x57, 0x52, 0x68, 0x63, 0x47, 0x56, 0x7a, 0x64, 0x44, 0x45, 0x57, 0x4d, 0x42, 0x51, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x4e, 0x54, 0x57, 0x6c, 0x6a, 0x63, 0x6d, 0x39, 0x7a, 0x5a, 0x57, 0x4d, 0x67, 0x54, 0x48, 0x52, 0x6b, 0x4c, 0x6a, 0x45, 0x58, 0x4d, 0x42, 0x55, 0x47, 0x41, 0x31, 0x55, 0x45, 0x59, 0x51, 0x77, 0x4f, 0x56, 0x6b, 0x46, 0x55, 0x53, 0x46, 0x55, 0x74, 0x0a, 0x4d, 0x6a, 0x4d, 0x31, 0x4f, 0x44, 0x51, 0x30, 0x4f, 0x54, 0x63, 0x78, 0x48, 0x6a, 0x41, 0x63, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x46, 0x57, 0x55, 0x74, 0x55, 0x33, 0x70, 0x70, 0x5a, 0x32, 0x35, 0x76, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x67, 0x4d, 0x6a, 0x41, 0x78, 0x4e, 0x7a, 0x41, 0x65, 0x46, 0x77, 0x30, 0x78, 0x4e, 0x7a, 0x41, 0x34, 0x4d, 0x6a, 0x49, 0x78, 0x4d, 0x6a, 0x41, 0x33, 0x4d, 0x44, 0x5a, 0x61, 0x0a, 0x46, 0x77, 0x30, 0x30, 0x4d, 0x6a, 0x41, 0x34, 0x4d, 0x6a, 0x49, 0x78, 0x4d, 0x6a, 0x41, 0x33, 0x4d, 0x44, 0x5a, 0x61, 0x4d, 0x48, 0x45, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6b, 0x68, 0x56, 0x4d, 0x52, 0x45, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x48, 0x44, 0x41, 0x68, 0x43, 0x64, 0x57, 0x52, 0x68, 0x63, 0x47, 0x56, 0x7a, 0x64, 0x44, 0x45, 0x57, 0x4d, 0x42, 0x51, 0x47, 0x41, 0x31, 0x55, 0x45, 0x0a, 0x43, 0x67, 0x77, 0x4e, 0x54, 0x57, 0x6c, 0x6a, 0x63, 0x6d, 0x39, 0x7a, 0x5a, 0x57, 0x4d, 0x67, 0x54, 0x48, 0x52, 0x6b, 0x4c, 0x6a, 0x45, 0x58, 0x4d, 0x42, 0x55, 0x47, 0x41, 0x31, 0x55, 0x45, 0x59, 0x51, 0x77, 0x4f, 0x56, 0x6b, 0x46, 0x55, 0x53, 0x46, 0x55, 0x74, 0x4d, 0x6a, 0x4d, 0x31, 0x4f, 0x44, 0x51, 0x30, 0x4f, 0x54, 0x63, 0x78, 0x48, 0x6a, 0x41, 0x63, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x46, 0x57, 0x55, 0x74, 0x55, 0x33, 0x70, 0x70, 0x0a, 0x5a, 0x32, 0x35, 0x76, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x67, 0x4d, 0x6a, 0x41, 0x78, 0x4e, 0x7a, 0x42, 0x5a, 0x4d, 0x42, 0x4d, 0x47, 0x42, 0x79, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x41, 0x67, 0x45, 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x41, 0x77, 0x45, 0x48, 0x41, 0x30, 0x49, 0x41, 0x42, 0x4a, 0x62, 0x63, 0x50, 0x59, 0x72, 0x59, 0x73, 0x48, 0x74, 0x76, 0x78, 0x69, 0x65, 0x2b, 0x52, 0x4a, 0x43, 0x78, 0x0a, 0x73, 0x31, 0x59, 0x56, 0x65, 0x34, 0x35, 0x44, 0x4a, 0x48, 0x30, 0x61, 0x68, 0x46, 0x6e, 0x75, 0x59, 0x32, 0x69, 0x79, 0x78, 0x6c, 0x36, 0x48, 0x30, 0x42, 0x56, 0x49, 0x48, 0x71, 0x69, 0x51, 0x72, 0x62, 0x31, 0x54, 0x6f, 0x74, 0x72, 0x65, 0x4f, 0x70, 0x43, 0x6d, 0x59, 0x46, 0x39, 0x6f, 0x4d, 0x72, 0x57, 0x47, 0x51, 0x64, 0x2b, 0x48, 0x57, 0x79, 0x78, 0x37, 0x78, 0x66, 0x35, 0x38, 0x65, 0x74, 0x71, 0x6a, 0x59, 0x7a, 0x42, 0x68, 0x4d, 0x41, 0x38, 0x47, 0x0a, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x45, 0x47, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x53, 0x48, 0x45, 0x52, 0x55, 0x49, 0x30, 0x61, 0x72, 0x42, 0x65, 0x41, 0x79, 0x78, 0x72, 0x38, 0x37, 0x47, 0x79, 0x5a, 0x44, 0x76, 0x0a, 0x76, 0x7a, 0x41, 0x45, 0x77, 0x44, 0x41, 0x66, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x53, 0x4d, 0x45, 0x47, 0x44, 0x41, 0x57, 0x67, 0x42, 0x53, 0x48, 0x45, 0x52, 0x55, 0x49, 0x30, 0x61, 0x72, 0x42, 0x65, 0x41, 0x79, 0x78, 0x72, 0x38, 0x37, 0x47, 0x79, 0x5a, 0x44, 0x76, 0x76, 0x7a, 0x41, 0x45, 0x77, 0x44, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x67, 0x4e, 0x4a, 0x41, 0x44, 0x42, 0x47, 0x41, 0x69, 0x45, 0x41, 0x0a, 0x74, 0x56, 0x66, 0x64, 0x31, 0x34, 0x70, 0x56, 0x43, 0x7a, 0x62, 0x68, 0x68, 0x6b, 0x54, 0x36, 0x31, 0x4e, 0x6c, 0x6f, 0x6a, 0x62, 0x6a, 0x63, 0x49, 0x34, 0x71, 0x4b, 0x44, 0x64, 0x51, 0x76, 0x66, 0x65, 0x70, 0x7a, 0x37, 0x4c, 0x39, 0x4e, 0x62, 0x4b, 0x67, 0x43, 0x49, 0x51, 0x44, 0x4c, 0x70, 0x62, 0x51, 0x53, 0x2b, 0x75, 0x65, 0x31, 0x36, 0x4d, 0x39, 0x2b, 0x6b, 0x2f, 0x7a, 0x7a, 0x4e, 0x59, 0x39, 0x76, 0x54, 0x6c, 0x70, 0x38, 0x74, 0x4c, 0x78, 0x4f, 0x0a, 0x73, 0x76, 0x78, 0x79, 0x71, 0x6c, 0x74, 0x5a, 0x2b, 0x65, 0x66, 0x63, 0x4d, 0x51, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x63, 0x65, 0x72, 0x74, 0x53, 0x49, 0x47, 0x4e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x47, 0x32, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x52, 0x7a, 0x43, 0x43, 0x41, 0x79, 0x2b, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4a, 0x45, 0x51, 0x41, 0x30, 0x74, 0x6b, 0x37, 0x47, 0x4e, 0x69, 0x30, 0x32, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x43, 0x77, 0x55, 0x41, 0x4d, 0x45, 0x45, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6c, 0x4a, 0x50, 0x4d, 0x52, 0x51, 0x77, 0x0a, 0x45, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x77, 0x74, 0x44, 0x52, 0x56, 0x4a, 0x55, 0x55, 0x30, 0x6c, 0x48, 0x54, 0x69, 0x42, 0x54, 0x51, 0x54, 0x45, 0x63, 0x4d, 0x42, 0x6f, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x78, 0x4d, 0x54, 0x59, 0x32, 0x56, 0x79, 0x64, 0x46, 0x4e, 0x4a, 0x52, 0x30, 0x34, 0x67, 0x55, 0x6b, 0x39, 0x50, 0x56, 0x43, 0x42, 0x44, 0x51, 0x53, 0x42, 0x48, 0x4d, 0x6a, 0x41, 0x65, 0x46, 0x77, 0x30, 0x78, 0x4e, 0x7a, 0x41, 0x79, 0x0a, 0x4d, 0x44, 0x59, 0x77, 0x4f, 0x54, 0x49, 0x33, 0x4d, 0x7a, 0x56, 0x61, 0x46, 0x77, 0x30, 0x30, 0x4d, 0x6a, 0x41, 0x79, 0x4d, 0x44, 0x59, 0x77, 0x4f, 0x54, 0x49, 0x33, 0x4d, 0x7a, 0x56, 0x61, 0x4d, 0x45, 0x45, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6c, 0x4a, 0x50, 0x4d, 0x52, 0x51, 0x77, 0x45, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x77, 0x74, 0x44, 0x52, 0x56, 0x4a, 0x55, 0x55, 0x30, 0x6c, 0x48, 0x0a, 0x54, 0x69, 0x42, 0x54, 0x51, 0x54, 0x45, 0x63, 0x4d, 0x42, 0x6f, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x78, 0x4d, 0x54, 0x59, 0x32, 0x56, 0x79, 0x64, 0x46, 0x4e, 0x4a, 0x52, 0x30, 0x34, 0x67, 0x55, 0x6b, 0x39, 0x50, 0x56, 0x43, 0x42, 0x44, 0x51, 0x53, 0x42, 0x48, 0x4d, 0x6a, 0x43, 0x43, 0x41, 0x69, 0x49, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x50, 0x0a, 0x41, 0x44, 0x43, 0x43, 0x41, 0x67, 0x6f, 0x43, 0x67, 0x67, 0x49, 0x42, 0x41, 0x4d, 0x44, 0x46, 0x64, 0x52, 0x6d, 0x52, 0x66, 0x55, 0x52, 0x30, 0x64, 0x49, 0x66, 0x2b, 0x44, 0x6a, 0x75, 0x57, 0x33, 0x4e, 0x67, 0x42, 0x46, 0x73, 0x7a, 0x75, 0x59, 0x35, 0x48, 0x6e, 0x43, 0x32, 0x2f, 0x4f, 0x4f, 0x77, 0x70, 0x70, 0x47, 0x6e, 0x7a, 0x43, 0x34, 0x36, 0x2b, 0x43, 0x6a, 0x6f, 0x62, 0x58, 0x58, 0x6f, 0x39, 0x58, 0x36, 0x39, 0x4d, 0x68, 0x57, 0x66, 0x30, 0x35, 0x0a, 0x4e, 0x30, 0x49, 0x77, 0x76, 0x6c, 0x44, 0x71, 0x74, 0x67, 0x2b, 0x70, 0x69, 0x4e, 0x67, 0x75, 0x4c, 0x57, 0x6b, 0x68, 0x35, 0x39, 0x45, 0x33, 0x47, 0x45, 0x35, 0x39, 0x6b, 0x64, 0x55, 0x57, 0x58, 0x32, 0x74, 0x62, 0x41, 0x4d, 0x49, 0x35, 0x51, 0x77, 0x30, 0x32, 0x68, 0x56, 0x4b, 0x35, 0x55, 0x32, 0x55, 0x50, 0x48, 0x55, 0x4c, 0x6c, 0x6a, 0x38, 0x38, 0x46, 0x30, 0x2b, 0x37, 0x63, 0x44, 0x42, 0x72, 0x5a, 0x75, 0x49, 0x74, 0x34, 0x49, 0x6d, 0x66, 0x6b, 0x0a, 0x61, 0x62, 0x42, 0x6f, 0x78, 0x54, 0x7a, 0x6b, 0x62, 0x46, 0x70, 0x47, 0x35, 0x38, 0x33, 0x48, 0x2b, 0x75, 0x2f, 0x45, 0x37, 0x45, 0x75, 0x39, 0x61, 0x71, 0x53, 0x73, 0x2f, 0x63, 0x77, 0x6f, 0x55, 0x65, 0x2b, 0x53, 0x74, 0x43, 0x6d, 0x72, 0x71, 0x7a, 0x57, 0x61, 0x54, 0x4f, 0x54, 0x45, 0x43, 0x4d, 0x59, 0x6d, 0x7a, 0x50, 0x68, 0x70, 0x6e, 0x2b, 0x53, 0x63, 0x38, 0x43, 0x6e, 0x54, 0x58, 0x50, 0x6e, 0x47, 0x46, 0x69, 0x57, 0x65, 0x49, 0x38, 0x4d, 0x67, 0x0a, 0x77, 0x54, 0x30, 0x50, 0x50, 0x7a, 0x68, 0x41, 0x73, 0x50, 0x36, 0x43, 0x52, 0x44, 0x69, 0x71, 0x57, 0x68, 0x71, 0x4b, 0x61, 0x32, 0x4e, 0x59, 0x4f, 0x4c, 0x51, 0x56, 0x30, 0x37, 0x59, 0x52, 0x61, 0x58, 0x73, 0x65, 0x56, 0x4f, 0x36, 0x4d, 0x47, 0x69, 0x4b, 0x73, 0x63, 0x70, 0x63, 0x2f, 0x49, 0x31, 0x6d, 0x62, 0x79, 0x53, 0x4b, 0x45, 0x77, 0x51, 0x64, 0x50, 0x7a, 0x48, 0x2f, 0x69, 0x56, 0x38, 0x6f, 0x53, 0x63, 0x4c, 0x75, 0x6d, 0x5a, 0x66, 0x4e, 0x70, 0x0a, 0x64, 0x57, 0x4f, 0x39, 0x6c, 0x66, 0x73, 0x62, 0x6c, 0x38, 0x33, 0x6b, 0x71, 0x4b, 0x2f, 0x32, 0x30, 0x55, 0x36, 0x6f, 0x32, 0x59, 0x70, 0x78, 0x4a, 0x4d, 0x30, 0x32, 0x50, 0x62, 0x79, 0x57, 0x78, 0x50, 0x46, 0x73, 0x71, 0x61, 0x37, 0x6c, 0x7a, 0x77, 0x31, 0x75, 0x4b, 0x41, 0x32, 0x77, 0x44, 0x72, 0x58, 0x4b, 0x55, 0x58, 0x74, 0x34, 0x46, 0x4d, 0x4d, 0x67, 0x4c, 0x33, 0x2f, 0x37, 0x46, 0x46, 0x58, 0x68, 0x45, 0x5a, 0x6e, 0x39, 0x31, 0x51, 0x71, 0x68, 0x0a, 0x6e, 0x67, 0x4c, 0x6a, 0x59, 0x6c, 0x2f, 0x72, 0x4e, 0x55, 0x73, 0x73, 0x75, 0x48, 0x4c, 0x6f, 0x50, 0x6a, 0x31, 0x50, 0x72, 0x43, 0x79, 0x37, 0x4c, 0x6f, 0x62, 0x69, 0x6f, 0x33, 0x61, 0x50, 0x35, 0x5a, 0x4d, 0x71, 0x7a, 0x36, 0x57, 0x72, 0x79, 0x46, 0x79, 0x4e, 0x53, 0x77, 0x62, 0x2f, 0x45, 0x6b, 0x61, 0x73, 0x65, 0x4d, 0x73, 0x55, 0x42, 0x7a, 0x58, 0x67, 0x71, 0x64, 0x2b, 0x4c, 0x36, 0x61, 0x38, 0x56, 0x54, 0x78, 0x61, 0x4a, 0x57, 0x37, 0x33, 0x32, 0x0a, 0x6a, 0x63, 0x5a, 0x5a, 0x72, 0x6f, 0x69, 0x46, 0x44, 0x73, 0x47, 0x4a, 0x36, 0x78, 0x39, 0x6e, 0x78, 0x55, 0x57, 0x4f, 0x2f, 0x32, 0x30, 0x33, 0x4e, 0x69, 0x74, 0x34, 0x5a, 0x6f, 0x4f, 0x52, 0x55, 0x53, 0x73, 0x39, 0x2f, 0x31, 0x46, 0x33, 0x64, 0x6d, 0x4b, 0x68, 0x37, 0x47, 0x63, 0x2b, 0x50, 0x6f, 0x47, 0x44, 0x34, 0x46, 0x61, 0x70, 0x55, 0x42, 0x38, 0x66, 0x65, 0x70, 0x6d, 0x72, 0x59, 0x37, 0x2b, 0x45, 0x46, 0x33, 0x66, 0x78, 0x44, 0x54, 0x76, 0x66, 0x0a, 0x39, 0x35, 0x78, 0x68, 0x73, 0x7a, 0x57, 0x59, 0x69, 0x6a, 0x71, 0x79, 0x37, 0x44, 0x77, 0x61, 0x4e, 0x7a, 0x39, 0x2b, 0x6a, 0x35, 0x4c, 0x50, 0x32, 0x52, 0x49, 0x55, 0x5a, 0x4e, 0x6f, 0x51, 0x41, 0x68, 0x56, 0x42, 0x2f, 0x30, 0x2f, 0x45, 0x36, 0x78, 0x79, 0x6a, 0x79, 0x66, 0x71, 0x5a, 0x39, 0x30, 0x62, 0x70, 0x34, 0x52, 0x6a, 0x5a, 0x73, 0x62, 0x67, 0x79, 0x4c, 0x63, 0x73, 0x55, 0x44, 0x46, 0x44, 0x59, 0x67, 0x32, 0x57, 0x44, 0x37, 0x72, 0x6c, 0x63, 0x0a, 0x7a, 0x38, 0x73, 0x46, 0x57, 0x6b, 0x7a, 0x36, 0x47, 0x5a, 0x64, 0x72, 0x31, 0x6c, 0x30, 0x54, 0x30, 0x38, 0x4a, 0x63, 0x56, 0x4c, 0x77, 0x79, 0x63, 0x36, 0x42, 0x34, 0x39, 0x66, 0x46, 0x74, 0x48, 0x73, 0x75, 0x66, 0x70, 0x61, 0x61, 0x66, 0x49, 0x74, 0x7a, 0x52, 0x55, 0x5a, 0x36, 0x43, 0x65, 0x57, 0x52, 0x67, 0x4b, 0x52, 0x4d, 0x2b, 0x6f, 0x2f, 0x31, 0x50, 0x63, 0x6d, 0x71, 0x72, 0x34, 0x74, 0x54, 0x6c, 0x75, 0x43, 0x52, 0x56, 0x4c, 0x45, 0x52, 0x4c, 0x0a, 0x69, 0x6f, 0x68, 0x45, 0x6e, 0x4d, 0x71, 0x45, 0x30, 0x79, 0x6f, 0x37, 0x41, 0x67, 0x4d, 0x42, 0x41, 0x41, 0x47, 0x6a, 0x51, 0x6a, 0x42, 0x41, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x45, 0x47, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x0a, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x53, 0x43, 0x49, 0x53, 0x31, 0x6d, 0x78, 0x74, 0x65, 0x67, 0x34, 0x42, 0x58, 0x72, 0x7a, 0x6b, 0x77, 0x4a, 0x64, 0x38, 0x52, 0x67, 0x6e, 0x6c, 0x52, 0x75, 0x41, 0x7a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x45, 0x41, 0x59, 0x4e, 0x34, 0x61, 0x75, 0x4f, 0x66, 0x79, 0x59, 0x49, 0x4c, 0x56, 0x41, 0x7a, 0x4f, 0x42, 0x0a, 0x79, 0x77, 0x61, 0x4b, 0x38, 0x53, 0x4a, 0x4a, 0x36, 0x65, 0x6a, 0x71, 0x6b, 0x58, 0x2f, 0x47, 0x4d, 0x31, 0x35, 0x6f, 0x47, 0x51, 0x4f, 0x47, 0x4f, 0x30, 0x4d, 0x42, 0x7a, 0x77, 0x64, 0x77, 0x35, 0x41, 0x67, 0x65, 0x5a, 0x59, 0x57, 0x52, 0x35, 0x68, 0x45, 0x69, 0x74, 0x2f, 0x55, 0x43, 0x49, 0x34, 0x36, 0x75, 0x75, 0x52, 0x35, 0x39, 0x48, 0x33, 0x35, 0x73, 0x35, 0x72, 0x30, 0x6c, 0x31, 0x5a, 0x55, 0x61, 0x38, 0x67, 0x57, 0x6d, 0x72, 0x34, 0x55, 0x43, 0x0a, 0x62, 0x36, 0x37, 0x34, 0x31, 0x6a, 0x48, 0x2f, 0x4a, 0x63, 0x6c, 0x4b, 0x79, 0x4d, 0x65, 0x4b, 0x71, 0x64, 0x6d, 0x66, 0x53, 0x30, 0x6d, 0x62, 0x45, 0x56, 0x65, 0x5a, 0x6b, 0x6b, 0x4d, 0x52, 0x33, 0x72, 0x59, 0x7a, 0x70, 0x4d, 0x7a, 0x58, 0x6a, 0x57, 0x52, 0x39, 0x31, 0x4d, 0x30, 0x38, 0x4b, 0x43, 0x79, 0x30, 0x6d, 0x70, 0x62, 0x71, 0x54, 0x66, 0x58, 0x45, 0x52, 0x4d, 0x51, 0x6c, 0x71, 0x69, 0x43, 0x41, 0x32, 0x43, 0x6c, 0x56, 0x39, 0x2b, 0x42, 0x42, 0x0a, 0x2f, 0x41, 0x59, 0x6d, 0x2f, 0x37, 0x6b, 0x32, 0x39, 0x55, 0x4d, 0x55, 0x41, 0x32, 0x5a, 0x34, 0x34, 0x52, 0x47, 0x78, 0x32, 0x69, 0x42, 0x66, 0x52, 0x67, 0x42, 0x34, 0x41, 0x43, 0x47, 0x6c, 0x48, 0x67, 0x41, 0x6f, 0x59, 0x58, 0x68, 0x76, 0x71, 0x41, 0x45, 0x42, 0x6a, 0x35, 0x30, 0x30, 0x6d, 0x76, 0x2f, 0x30, 0x4f, 0x4a, 0x44, 0x37, 0x75, 0x4e, 0x47, 0x7a, 0x63, 0x67, 0x62, 0x4a, 0x63, 0x65, 0x61, 0x42, 0x78, 0x58, 0x6e, 0x74, 0x43, 0x36, 0x5a, 0x35, 0x0a, 0x38, 0x68, 0x4d, 0x4c, 0x6e, 0x50, 0x64, 0x64, 0x44, 0x6e, 0x73, 0x6b, 0x6b, 0x37, 0x52, 0x49, 0x32, 0x34, 0x5a, 0x66, 0x33, 0x6c, 0x43, 0x47, 0x65, 0x4f, 0x64, 0x41, 0x35, 0x6a, 0x47, 0x6f, 0x6b, 0x48, 0x5a, 0x77, 0x59, 0x61, 0x2b, 0x63, 0x4e, 0x79, 0x77, 0x52, 0x74, 0x59, 0x4b, 0x33, 0x71, 0x71, 0x34, 0x6b, 0x4e, 0x46, 0x74, 0x79, 0x44, 0x47, 0x6b, 0x4e, 0x7a, 0x56, 0x6d, 0x66, 0x39, 0x6e, 0x47, 0x76, 0x6e, 0x41, 0x76, 0x52, 0x43, 0x6a, 0x6a, 0x35, 0x0a, 0x42, 0x69, 0x4b, 0x44, 0x55, 0x79, 0x55, 0x4d, 0x2f, 0x46, 0x48, 0x45, 0x35, 0x72, 0x37, 0x69, 0x4f, 0x5a, 0x55, 0x4c, 0x4a, 0x4b, 0x32, 0x76, 0x30, 0x5a, 0x58, 0x6b, 0x6c, 0x74, 0x64, 0x30, 0x5a, 0x47, 0x74, 0x78, 0x54, 0x67, 0x49, 0x38, 0x71, 0x6f, 0x58, 0x7a, 0x49, 0x4b, 0x4e, 0x44, 0x4f, 0x58, 0x5a, 0x62, 0x62, 0x46, 0x44, 0x2b, 0x6d, 0x70, 0x77, 0x55, 0x48, 0x6d, 0x55, 0x55, 0x69, 0x68, 0x57, 0x39, 0x6f, 0x34, 0x4a, 0x46, 0x57, 0x6b, 0x6c, 0x57, 0x0a, 0x61, 0x74, 0x4b, 0x63, 0x73, 0x57, 0x4d, 0x79, 0x35, 0x57, 0x48, 0x67, 0x55, 0x79, 0x49, 0x4f, 0x70, 0x77, 0x70, 0x4a, 0x36, 0x73, 0x74, 0x2b, 0x48, 0x36, 0x6a, 0x69, 0x59, 0x6f, 0x44, 0x32, 0x45, 0x45, 0x56, 0x53, 0x6d, 0x41, 0x59, 0x59, 0x33, 0x71, 0x58, 0x4e, 0x4c, 0x33, 0x2b, 0x71, 0x31, 0x4f, 0x6b, 0x2b, 0x43, 0x48, 0x4c, 0x73, 0x49, 0x77, 0x4d, 0x43, 0x50, 0x4b, 0x61, 0x71, 0x32, 0x4c, 0x78, 0x6e, 0x64, 0x44, 0x30, 0x55, 0x46, 0x2f, 0x74, 0x55, 0x0a, 0x53, 0x78, 0x66, 0x6a, 0x30, 0x33, 0x6b, 0x39, 0x62, 0x57, 0x74, 0x4a, 0x79, 0x53, 0x67, 0x4f, 0x4c, 0x6e, 0x52, 0x51, 0x76, 0x77, 0x7a, 0x5a, 0x52, 0x6a, 0x6f, 0x51, 0x68, 0x73, 0x6d, 0x6e, 0x50, 0x2b, 0x6d, 0x67, 0x37, 0x48, 0x2f, 0x72, 0x70, 0x58, 0x64, 0x59, 0x61, 0x58, 0x48, 0x6d, 0x67, 0x77, 0x6f, 0x33, 0x38, 0x6f, 0x5a, 0x4a, 0x61, 0x72, 0x35, 0x35, 0x43, 0x4a, 0x44, 0x32, 0x41, 0x68, 0x5a, 0x6b, 0x50, 0x75, 0x58, 0x61, 0x54, 0x48, 0x34, 0x4d, 0x0a, 0x4e, 0x4d, 0x6e, 0x35, 0x58, 0x37, 0x61, 0x7a, 0x4b, 0x46, 0x47, 0x6e, 0x70, 0x79, 0x75, 0x71, 0x53, 0x66, 0x71, 0x4e, 0x5a, 0x53, 0x6c, 0x4f, 0x34, 0x32, 0x73, 0x54, 0x70, 0x35, 0x53, 0x6a, 0x4c, 0x56, 0x46, 0x74, 0x65, 0x41, 0x78, 0x45, 0x79, 0x39, 0x2f, 0x65, 0x43, 0x47, 0x2f, 0x4f, 0x6f, 0x32, 0x53, 0x72, 0x30, 0x35, 0x57, 0x45, 0x31, 0x4c, 0x6c, 0x53, 0x56, 0x48, 0x4a, 0x37, 0x6c, 0x69, 0x58, 0x4d, 0x76, 0x47, 0x6e, 0x6a, 0x53, 0x47, 0x34, 0x4e, 0x0a, 0x30, 0x4d, 0x65, 0x64, 0x4a, 0x35, 0x71, 0x71, 0x2b, 0x42, 0x4f, 0x53, 0x33, 0x52, 0x37, 0x66, 0x59, 0x35, 0x38, 0x31, 0x71, 0x52, 0x59, 0x32, 0x37, 0x49, 0x79, 0x34, 0x67, 0x2f, 0x51, 0x39, 0x69, 0x59, 0x2f, 0x4e, 0x74, 0x42, 0x64, 0x65, 0x31, 0x37, 0x4d, 0x58, 0x51, 0x52, 0x42, 0x64, 0x4a, 0x33, 0x4e, 0x67, 0x68, 0x56, 0x64, 0x4a, 0x49, 0x67, 0x63, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x54, 0x72, 0x75, 0x73, 0x74, 0x77, 0x61, 0x76, 0x65, 0x20, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x32, 0x6a, 0x43, 0x43, 0x41, 0x38, 0x4b, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4d, 0x42, 0x66, 0x63, 0x4f, 0x68, 0x74, 0x70, 0x4a, 0x38, 0x30, 0x59, 0x31, 0x4c, 0x72, 0x71, 0x79, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x43, 0x77, 0x55, 0x41, 0x4d, 0x49, 0x47, 0x49, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x0a, 0x55, 0x7a, 0x45, 0x52, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x41, 0x77, 0x49, 0x53, 0x57, 0x78, 0x73, 0x61, 0x57, 0x35, 0x76, 0x61, 0x58, 0x4d, 0x78, 0x45, 0x44, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x63, 0x4d, 0x42, 0x30, 0x4e, 0x6f, 0x61, 0x57, 0x4e, 0x68, 0x5a, 0x32, 0x38, 0x78, 0x49, 0x54, 0x41, 0x66, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x47, 0x46, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x64, 0x32, 0x46, 0x32, 0x0a, 0x5a, 0x53, 0x42, 0x49, 0x62, 0x32, 0x78, 0x6b, 0x61, 0x57, 0x35, 0x6e, 0x63, 0x79, 0x77, 0x67, 0x53, 0x57, 0x35, 0x6a, 0x4c, 0x6a, 0x45, 0x78, 0x4d, 0x43, 0x38, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x77, 0x77, 0x6f, 0x56, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x52, 0x33, 0x59, 0x58, 0x5a, 0x6c, 0x49, 0x45, 0x64, 0x73, 0x62, 0x32, 0x4a, 0x68, 0x62, 0x43, 0x42, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x61, 0x57, 0x5a, 0x70, 0x59, 0x32, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x0a, 0x49, 0x45, 0x46, 0x31, 0x64, 0x47, 0x68, 0x76, 0x63, 0x6d, 0x6c, 0x30, 0x65, 0x54, 0x41, 0x65, 0x46, 0x77, 0x30, 0x78, 0x4e, 0x7a, 0x41, 0x34, 0x4d, 0x6a, 0x4d, 0x78, 0x4f, 0x54, 0x4d, 0x30, 0x4d, 0x54, 0x4a, 0x61, 0x46, 0x77, 0x30, 0x30, 0x4d, 0x6a, 0x41, 0x34, 0x4d, 0x6a, 0x4d, 0x78, 0x4f, 0x54, 0x4d, 0x30, 0x4d, 0x54, 0x4a, 0x61, 0x4d, 0x49, 0x47, 0x49, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x0a, 0x55, 0x7a, 0x45, 0x52, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x41, 0x77, 0x49, 0x53, 0x57, 0x78, 0x73, 0x61, 0x57, 0x35, 0x76, 0x61, 0x58, 0x4d, 0x78, 0x45, 0x44, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x63, 0x4d, 0x42, 0x30, 0x4e, 0x6f, 0x61, 0x57, 0x4e, 0x68, 0x5a, 0x32, 0x38, 0x78, 0x49, 0x54, 0x41, 0x66, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x47, 0x46, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x64, 0x32, 0x46, 0x32, 0x0a, 0x5a, 0x53, 0x42, 0x49, 0x62, 0x32, 0x78, 0x6b, 0x61, 0x57, 0x35, 0x6e, 0x63, 0x79, 0x77, 0x67, 0x53, 0x57, 0x35, 0x6a, 0x4c, 0x6a, 0x45, 0x78, 0x4d, 0x43, 0x38, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x77, 0x77, 0x6f, 0x56, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x52, 0x33, 0x59, 0x58, 0x5a, 0x6c, 0x49, 0x45, 0x64, 0x73, 0x62, 0x32, 0x4a, 0x68, 0x62, 0x43, 0x42, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x61, 0x57, 0x5a, 0x70, 0x59, 0x32, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x0a, 0x49, 0x45, 0x46, 0x31, 0x64, 0x47, 0x68, 0x76, 0x63, 0x6d, 0x6c, 0x30, 0x65, 0x54, 0x43, 0x43, 0x41, 0x69, 0x49, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x50, 0x41, 0x44, 0x43, 0x43, 0x41, 0x67, 0x6f, 0x43, 0x67, 0x67, 0x49, 0x42, 0x41, 0x4c, 0x6c, 0x64, 0x55, 0x53, 0x68, 0x4c, 0x50, 0x44, 0x65, 0x53, 0x30, 0x59, 0x4c, 0x4f, 0x76, 0x52, 0x32, 0x39, 0x0a, 0x7a, 0x64, 0x32, 0x34, 0x71, 0x38, 0x38, 0x4b, 0x50, 0x75, 0x46, 0x64, 0x35, 0x64, 0x79, 0x71, 0x43, 0x62, 0x6c, 0x58, 0x41, 0x6a, 0x37, 0x6d, 0x59, 0x32, 0x48, 0x66, 0x38, 0x67, 0x2b, 0x43, 0x59, 0x36, 0x36, 0x6a, 0x39, 0x36, 0x78, 0x7a, 0x30, 0x58, 0x7a, 0x6e, 0x73, 0x77, 0x75, 0x76, 0x43, 0x41, 0x41, 0x4a, 0x57, 0x58, 0x2f, 0x4e, 0x4b, 0x53, 0x71, 0x49, 0x6b, 0x34, 0x63, 0x58, 0x47, 0x49, 0x44, 0x74, 0x69, 0x4c, 0x4b, 0x30, 0x74, 0x68, 0x41, 0x66, 0x0a, 0x4c, 0x64, 0x5a, 0x66, 0x56, 0x61, 0x49, 0x54, 0x58, 0x64, 0x48, 0x47, 0x36, 0x77, 0x5a, 0x57, 0x69, 0x59, 0x6a, 0x2b, 0x72, 0x44, 0x4b, 0x64, 0x2f, 0x56, 0x7a, 0x44, 0x42, 0x63, 0x64, 0x75, 0x37, 0x6f, 0x61, 0x4a, 0x75, 0x6f, 0x67, 0x44, 0x6e, 0x58, 0x49, 0x68, 0x68, 0x70, 0x43, 0x75, 0x6a, 0x77, 0x4f, 0x6c, 0x33, 0x4a, 0x2b, 0x49, 0x4b, 0x4d, 0x75, 0x6a, 0x6b, 0x6b, 0x6b, 0x50, 0x37, 0x4e, 0x41, 0x50, 0x34, 0x6d, 0x31, 0x45, 0x54, 0x34, 0x42, 0x71, 0x0a, 0x73, 0x74, 0x54, 0x6e, 0x6f, 0x41, 0x70, 0x54, 0x41, 0x62, 0x71, 0x4f, 0x6c, 0x35, 0x46, 0x32, 0x62, 0x72, 0x7a, 0x38, 0x31, 0x57, 0x73, 0x32, 0x35, 0x6b, 0x43, 0x49, 0x31, 0x6e, 0x73, 0x76, 0x58, 0x77, 0x58, 0x6f, 0x4c, 0x47, 0x30, 0x52, 0x38, 0x2b, 0x65, 0x79, 0x76, 0x70, 0x4a, 0x45, 0x54, 0x4e, 0x4b, 0x58, 0x70, 0x50, 0x37, 0x53, 0x63, 0x6f, 0x46, 0x44, 0x42, 0x35, 0x7a, 0x70, 0x45, 0x54, 0x37, 0x31, 0x69, 0x78, 0x70, 0x5a, 0x66, 0x52, 0x39, 0x6f, 0x0a, 0x57, 0x4e, 0x30, 0x45, 0x41, 0x43, 0x79, 0x57, 0x38, 0x30, 0x4f, 0x7a, 0x66, 0x70, 0x67, 0x5a, 0x64, 0x4e, 0x6d, 0x63, 0x63, 0x39, 0x6b, 0x59, 0x76, 0x6b, 0x48, 0x48, 0x4e, 0x48, 0x6e, 0x5a, 0x39, 0x47, 0x4c, 0x43, 0x51, 0x37, 0x6d, 0x7a, 0x4a, 0x37, 0x41, 0x69, 0x79, 0x2f, 0x6b, 0x39, 0x55, 0x73, 0x63, 0x77, 0x52, 0x37, 0x50, 0x4a, 0x50, 0x72, 0x68, 0x71, 0x34, 0x75, 0x66, 0x6f, 0x67, 0x58, 0x42, 0x65, 0x51, 0x6f, 0x74, 0x50, 0x4a, 0x71, 0x58, 0x2b, 0x0a, 0x4f, 0x73, 0x49, 0x67, 0x62, 0x72, 0x76, 0x34, 0x46, 0x6f, 0x37, 0x4e, 0x44, 0x4b, 0x6d, 0x30, 0x47, 0x32, 0x78, 0x32, 0x45, 0x4f, 0x46, 0x59, 0x65, 0x55, 0x59, 0x2b, 0x56, 0x4d, 0x36, 0x41, 0x71, 0x46, 0x63, 0x4a, 0x4e, 0x79, 0x6b, 0x62, 0x6d, 0x52, 0x4f, 0x50, 0x44, 0x4d, 0x6a, 0x57, 0x4c, 0x42, 0x7a, 0x37, 0x42, 0x65, 0x67, 0x49, 0x6c, 0x54, 0x31, 0x6c, 0x52, 0x74, 0x7a, 0x75, 0x7a, 0x57, 0x6e, 0x69, 0x54, 0x59, 0x2b, 0x48, 0x4b, 0x45, 0x34, 0x30, 0x0a, 0x43, 0x7a, 0x37, 0x50, 0x46, 0x4e, 0x6d, 0x37, 0x33, 0x62, 0x5a, 0x51, 0x6d, 0x71, 0x31, 0x33, 0x31, 0x42, 0x6e, 0x57, 0x32, 0x68, 0x71, 0x49, 0x79, 0x45, 0x34, 0x62, 0x4a, 0x33, 0x58, 0x59, 0x73, 0x67, 0x6a, 0x78, 0x72, 0x6f, 0x4d, 0x77, 0x75, 0x52, 0x45, 0x4f, 0x7a, 0x59, 0x66, 0x77, 0x68, 0x49, 0x30, 0x56, 0x63, 0x6e, 0x79, 0x68, 0x37, 0x38, 0x7a, 0x79, 0x69, 0x47, 0x47, 0x36, 0x39, 0x47, 0x6d, 0x37, 0x44, 0x49, 0x77, 0x4c, 0x64, 0x56, 0x63, 0x45, 0x0a, 0x75, 0x45, 0x34, 0x71, 0x46, 0x43, 0x34, 0x39, 0x44, 0x78, 0x77, 0x65, 0x4d, 0x71, 0x5a, 0x69, 0x4e, 0x75, 0x35, 0x6d, 0x34, 0x69, 0x4b, 0x34, 0x42, 0x55, 0x42, 0x6a, 0x45, 0x43, 0x4c, 0x7a, 0x4d, 0x78, 0x31, 0x30, 0x63, 0x6f, 0x6f, 0x73, 0x39, 0x54, 0x6b, 0x70, 0x6f, 0x4e, 0x50, 0x6e, 0x47, 0x34, 0x43, 0x45, 0x4c, 0x63, 0x55, 0x39, 0x34, 0x30, 0x32, 0x78, 0x2f, 0x52, 0x70, 0x76, 0x75, 0x6d, 0x55, 0x48, 0x4f, 0x31, 0x6a, 0x73, 0x51, 0x6b, 0x55, 0x6d, 0x0a, 0x2b, 0x39, 0x6a, 0x61, 0x4a, 0x58, 0x4c, 0x45, 0x39, 0x67, 0x43, 0x78, 0x49, 0x6e, 0x6d, 0x39, 0x34, 0x33, 0x78, 0x5a, 0x59, 0x6b, 0x71, 0x63, 0x42, 0x57, 0x38, 0x39, 0x7a, 0x75, 0x62, 0x57, 0x52, 0x32, 0x4f, 0x5a, 0x78, 0x69, 0x52, 0x76, 0x63, 0x68, 0x4c, 0x49, 0x72, 0x48, 0x2b, 0x51, 0x74, 0x41, 0x75, 0x52, 0x63, 0x4f, 0x69, 0x33, 0x35, 0x68, 0x59, 0x51, 0x63, 0x52, 0x66, 0x4f, 0x33, 0x67, 0x5a, 0x50, 0x53, 0x45, 0x46, 0x39, 0x4e, 0x55, 0x71, 0x6a, 0x0a, 0x69, 0x66, 0x4c, 0x4a, 0x53, 0x33, 0x74, 0x42, 0x45, 0x57, 0x31, 0x6e, 0x74, 0x77, 0x69, 0x59, 0x54, 0x4f, 0x55, 0x52, 0x47, 0x61, 0x35, 0x43, 0x67, 0x4e, 0x7a, 0x37, 0x6b, 0x41, 0x58, 0x55, 0x2b, 0x46, 0x44, 0x4b, 0x76, 0x75, 0x53, 0x74, 0x78, 0x38, 0x4b, 0x55, 0x31, 0x78, 0x61, 0x64, 0x35, 0x68, 0x65, 0x50, 0x72, 0x7a, 0x62, 0x37, 0x41, 0x67, 0x4d, 0x42, 0x41, 0x41, 0x47, 0x6a, 0x51, 0x6a, 0x42, 0x41, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x0a, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x4a, 0x6e, 0x67, 0x47, 0x57, 0x63, 0x4e, 0x59, 0x74, 0x74, 0x32, 0x73, 0x39, 0x6f, 0x39, 0x75, 0x46, 0x76, 0x6f, 0x2f, 0x55, 0x4c, 0x53, 0x4d, 0x51, 0x36, 0x48, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x0a, 0x42, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x45, 0x41, 0x6d, 0x48, 0x4e, 0x77, 0x34, 0x72, 0x44, 0x54, 0x37, 0x54, 0x6e, 0x73, 0x54, 0x47, 0x44, 0x5a, 0x71, 0x52, 0x4b, 0x47, 0x46, 0x78, 0x36, 0x57, 0x30, 0x4f, 0x68, 0x55, 0x4b, 0x44, 0x74, 0x6b, 0x4c, 0x53, 0x47, 0x6d, 0x2b, 0x4a, 0x31, 0x57, 0x45, 0x32, 0x70, 0x49, 0x50, 0x55, 0x2f, 0x48, 0x0a, 0x50, 0x69, 0x6e, 0x62, 0x62, 0x56, 0x69, 0x44, 0x56, 0x44, 0x32, 0x48, 0x66, 0x53, 0x4d, 0x46, 0x31, 0x4f, 0x51, 0x63, 0x33, 0x4f, 0x67, 0x34, 0x5a, 0x59, 0x62, 0x46, 0x64, 0x61, 0x64, 0x61, 0x32, 0x7a, 0x55, 0x46, 0x76, 0x58, 0x66, 0x65, 0x75, 0x79, 0x6b, 0x33, 0x51, 0x41, 0x55, 0x48, 0x77, 0x35, 0x52, 0x53, 0x6e, 0x38, 0x70, 0x6b, 0x33, 0x66, 0x45, 0x62, 0x4b, 0x39, 0x78, 0x47, 0x43, 0x68, 0x41, 0x43, 0x4d, 0x66, 0x31, 0x4b, 0x61, 0x41, 0x30, 0x48, 0x0a, 0x5a, 0x4a, 0x44, 0x6d, 0x48, 0x76, 0x55, 0x71, 0x6f, 0x61, 0x69, 0x37, 0x50, 0x46, 0x33, 0x35, 0x6f, 0x77, 0x67, 0x4c, 0x45, 0x51, 0x7a, 0x78, 0x50, 0x79, 0x30, 0x51, 0x6c, 0x47, 0x2f, 0x2b, 0x34, 0x6a, 0x53, 0x48, 0x67, 0x39, 0x62, 0x50, 0x35, 0x52, 0x73, 0x31, 0x62, 0x64, 0x49, 0x44, 0x34, 0x62, 0x41, 0x4e, 0x71, 0x4b, 0x43, 0x71, 0x52, 0x69, 0x65, 0x43, 0x4e, 0x71, 0x63, 0x56, 0x74, 0x67, 0x69, 0x6d, 0x51, 0x6c, 0x52, 0x58, 0x74, 0x70, 0x6c, 0x61, 0x0a, 0x34, 0x67, 0x74, 0x35, 0x6b, 0x4e, 0x64, 0x58, 0x45, 0x6c, 0x45, 0x31, 0x47, 0x59, 0x68, 0x42, 0x61, 0x43, 0x58, 0x55, 0x4e, 0x78, 0x65, 0x45, 0x46, 0x66, 0x73, 0x42, 0x63, 0x74, 0x79, 0x56, 0x33, 0x6c, 0x49, 0x6d, 0x49, 0x4a, 0x67, 0x6d, 0x34, 0x6e, 0x62, 0x31, 0x4a, 0x32, 0x2f, 0x36, 0x41, 0x44, 0x74, 0x4b, 0x59, 0x64, 0x6b, 0x4e, 0x79, 0x31, 0x47, 0x54, 0x4b, 0x76, 0x30, 0x57, 0x42, 0x70, 0x61, 0x6e, 0x49, 0x35, 0x6f, 0x6a, 0x53, 0x50, 0x35, 0x52, 0x0a, 0x76, 0x62, 0x62, 0x45, 0x73, 0x4c, 0x46, 0x55, 0x7a, 0x74, 0x35, 0x73, 0x51, 0x61, 0x30, 0x57, 0x5a, 0x33, 0x37, 0x62, 0x2f, 0x54, 0x6a, 0x4e, 0x75, 0x54, 0x68, 0x4f, 0x73, 0x73, 0x46, 0x67, 0x79, 0x35, 0x30, 0x58, 0x33, 0x31, 0x69, 0x65, 0x65, 0x6d, 0x4b, 0x79, 0x4a, 0x6f, 0x39, 0x30, 0x6c, 0x5a, 0x76, 0x6b, 0x57, 0x78, 0x33, 0x53, 0x44, 0x39, 0x32, 0x59, 0x48, 0x4a, 0x74, 0x5a, 0x75, 0x53, 0x50, 0x54, 0x4d, 0x61, 0x43, 0x6d, 0x2f, 0x7a, 0x6a, 0x64, 0x0a, 0x7a, 0x79, 0x42, 0x50, 0x36, 0x56, 0x68, 0x57, 0x4f, 0x6d, 0x66, 0x44, 0x30, 0x66, 0x61, 0x5a, 0x6d, 0x5a, 0x32, 0x36, 0x4e, 0x72, 0x61, 0x41, 0x4c, 0x34, 0x68, 0x48, 0x54, 0x34, 0x61, 0x2f, 0x52, 0x44, 0x71, 0x41, 0x35, 0x44, 0x63, 0x63, 0x70, 0x72, 0x72, 0x71, 0x6c, 0x35, 0x67, 0x52, 0x30, 0x49, 0x52, 0x69, 0x52, 0x32, 0x51, 0x65, 0x71, 0x75, 0x35, 0x41, 0x76, 0x7a, 0x53, 0x78, 0x6e, 0x49, 0x39, 0x4f, 0x34, 0x66, 0x4b, 0x53, 0x54, 0x78, 0x2b, 0x4f, 0x0a, 0x38, 0x35, 0x36, 0x58, 0x33, 0x76, 0x4f, 0x6d, 0x65, 0x57, 0x71, 0x4a, 0x63, 0x55, 0x39, 0x4c, 0x4a, 0x78, 0x64, 0x49, 0x2f, 0x75, 0x7a, 0x30, 0x55, 0x41, 0x39, 0x50, 0x53, 0x58, 0x33, 0x4d, 0x52, 0x65, 0x4f, 0x39, 0x65, 0x6b, 0x44, 0x46, 0x51, 0x64, 0x78, 0x68, 0x56, 0x69, 0x63, 0x47, 0x61, 0x65, 0x56, 0x79, 0x51, 0x59, 0x48, 0x54, 0x74, 0x67, 0x47, 0x4a, 0x6f, 0x43, 0x38, 0x36, 0x63, 0x6e, 0x6e, 0x2b, 0x4f, 0x6a, 0x43, 0x2f, 0x51, 0x65, 0x7a, 0x48, 0x0a, 0x59, 0x6a, 0x36, 0x52, 0x53, 0x38, 0x66, 0x5a, 0x4d, 0x58, 0x5a, 0x43, 0x2b, 0x66, 0x63, 0x38, 0x59, 0x2b, 0x77, 0x6d, 0x6a, 0x48, 0x4d, 0x4d, 0x66, 0x52, 0x6f, 0x64, 0x36, 0x71, 0x68, 0x38, 0x68, 0x36, 0x6a, 0x43, 0x4a, 0x33, 0x7a, 0x68, 0x4d, 0x30, 0x45, 0x50, 0x7a, 0x38, 0x2f, 0x38, 0x41, 0x4b, 0x41, 0x69, 0x67, 0x4a, 0x35, 0x4b, 0x70, 0x32, 0x38, 0x41, 0x73, 0x45, 0x46, 0x46, 0x74, 0x79, 0x4c, 0x4b, 0x61, 0x45, 0x6a, 0x46, 0x51, 0x71, 0x4b, 0x75, 0x0a, 0x33, 0x52, 0x33, 0x79, 0x34, 0x47, 0x35, 0x4f, 0x42, 0x56, 0x69, 0x78, 0x77, 0x4a, 0x41, 0x57, 0x4b, 0x71, 0x51, 0x39, 0x45, 0x45, 0x43, 0x2b, 0x6a, 0x32, 0x4a, 0x6a, 0x67, 0x36, 0x6d, 0x63, 0x67, 0x6e, 0x30, 0x74, 0x41, 0x75, 0x6d, 0x44, 0x4d, 0x48, 0x7a, 0x4c, 0x4a, 0x38, 0x6e, 0x39, 0x48, 0x6d, 0x59, 0x41, 0x73, 0x43, 0x37, 0x54, 0x49, 0x53, 0x2b, 0x4f, 0x4d, 0x78, 0x5a, 0x73, 0x6d, 0x4f, 0x30, 0x51, 0x71, 0x41, 0x66, 0x57, 0x7a, 0x4a, 0x50, 0x50, 0x0a, 0x32, 0x39, 0x46, 0x70, 0x48, 0x4f, 0x54, 0x4b, 0x79, 0x65, 0x43, 0x32, 0x6e, 0x4f, 0x6e, 0x4f, 0x63, 0x58, 0x48, 0x65, 0x62, 0x44, 0x38, 0x57, 0x70, 0x48, 0x6b, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x54, 0x72, 0x75, 0x73, 0x74, 0x77, 0x61, 0x76, 0x65, 0x20, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x45, 0x43, 0x43, 0x20, 0x50, 0x32, 0x35, 0x36, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x59, 0x44, 0x43, 0x43, 0x41, 0x67, 0x65, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4d, 0x44, 0x57, 0x70, 0x66, 0x43, 0x44, 0x38, 0x6f, 0x58, 0x44, 0x35, 0x52, 0x6c, 0x64, 0x39, 0x64, 0x4d, 0x41, 0x6f, 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x42, 0x41, 0x4d, 0x43, 0x4d, 0x49, 0x47, 0x52, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x52, 0x0a, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x42, 0x4d, 0x49, 0x53, 0x57, 0x78, 0x73, 0x61, 0x57, 0x35, 0x76, 0x61, 0x58, 0x4d, 0x78, 0x45, 0x44, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x63, 0x54, 0x42, 0x30, 0x4e, 0x6f, 0x61, 0x57, 0x4e, 0x68, 0x5a, 0x32, 0x38, 0x78, 0x49, 0x54, 0x41, 0x66, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x47, 0x46, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x64, 0x32, 0x46, 0x32, 0x5a, 0x53, 0x42, 0x49, 0x0a, 0x62, 0x32, 0x78, 0x6b, 0x61, 0x57, 0x35, 0x6e, 0x63, 0x79, 0x77, 0x67, 0x53, 0x57, 0x35, 0x6a, 0x4c, 0x6a, 0x45, 0x36, 0x4d, 0x44, 0x67, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x78, 0x56, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x52, 0x33, 0x59, 0x58, 0x5a, 0x6c, 0x49, 0x45, 0x64, 0x73, 0x62, 0x32, 0x4a, 0x68, 0x62, 0x43, 0x42, 0x46, 0x51, 0x30, 0x4d, 0x67, 0x55, 0x44, 0x49, 0x31, 0x4e, 0x69, 0x42, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x61, 0x57, 0x5a, 0x70, 0x0a, 0x59, 0x32, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x49, 0x45, 0x46, 0x31, 0x64, 0x47, 0x68, 0x76, 0x63, 0x6d, 0x6c, 0x30, 0x65, 0x54, 0x41, 0x65, 0x46, 0x77, 0x30, 0x78, 0x4e, 0x7a, 0x41, 0x34, 0x4d, 0x6a, 0x4d, 0x78, 0x4f, 0x54, 0x4d, 0x31, 0x4d, 0x54, 0x42, 0x61, 0x46, 0x77, 0x30, 0x30, 0x4d, 0x6a, 0x41, 0x34, 0x4d, 0x6a, 0x4d, 0x78, 0x4f, 0x54, 0x4d, 0x31, 0x4d, 0x54, 0x42, 0x61, 0x4d, 0x49, 0x47, 0x52, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x0a, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x52, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x42, 0x4d, 0x49, 0x53, 0x57, 0x78, 0x73, 0x61, 0x57, 0x35, 0x76, 0x61, 0x58, 0x4d, 0x78, 0x45, 0x44, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x63, 0x54, 0x42, 0x30, 0x4e, 0x6f, 0x61, 0x57, 0x4e, 0x68, 0x5a, 0x32, 0x38, 0x78, 0x49, 0x54, 0x41, 0x66, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x47, 0x46, 0x52, 0x79, 0x0a, 0x64, 0x58, 0x4e, 0x30, 0x64, 0x32, 0x46, 0x32, 0x5a, 0x53, 0x42, 0x49, 0x62, 0x32, 0x78, 0x6b, 0x61, 0x57, 0x35, 0x6e, 0x63, 0x79, 0x77, 0x67, 0x53, 0x57, 0x35, 0x6a, 0x4c, 0x6a, 0x45, 0x36, 0x4d, 0x44, 0x67, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x78, 0x56, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x52, 0x33, 0x59, 0x58, 0x5a, 0x6c, 0x49, 0x45, 0x64, 0x73, 0x62, 0x32, 0x4a, 0x68, 0x62, 0x43, 0x42, 0x46, 0x51, 0x30, 0x4d, 0x67, 0x55, 0x44, 0x49, 0x31, 0x0a, 0x4e, 0x69, 0x42, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x61, 0x57, 0x5a, 0x70, 0x59, 0x32, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x49, 0x45, 0x46, 0x31, 0x64, 0x47, 0x68, 0x76, 0x63, 0x6d, 0x6c, 0x30, 0x65, 0x54, 0x42, 0x5a, 0x4d, 0x42, 0x4d, 0x47, 0x42, 0x79, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x41, 0x67, 0x45, 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x41, 0x77, 0x45, 0x48, 0x41, 0x30, 0x49, 0x41, 0x42, 0x48, 0x37, 0x37, 0x62, 0x4f, 0x59, 0x6a, 0x0a, 0x34, 0x33, 0x4d, 0x79, 0x43, 0x4d, 0x70, 0x67, 0x35, 0x6c, 0x4f, 0x63, 0x75, 0x6e, 0x53, 0x4e, 0x47, 0x4c, 0x42, 0x34, 0x6b, 0x46, 0x4b, 0x41, 0x33, 0x54, 0x6a, 0x41, 0x53, 0x68, 0x33, 0x52, 0x71, 0x4d, 0x79, 0x54, 0x70, 0x4a, 0x63, 0x47, 0x4f, 0x4d, 0x6f, 0x4e, 0x46, 0x57, 0x4c, 0x47, 0x6a, 0x67, 0x45, 0x71, 0x5a, 0x5a, 0x32, 0x71, 0x33, 0x7a, 0x53, 0x52, 0x4c, 0x6f, 0x48, 0x42, 0x35, 0x44, 0x4f, 0x53, 0x4d, 0x63, 0x54, 0x39, 0x43, 0x54, 0x71, 0x6d, 0x0a, 0x50, 0x36, 0x32, 0x6a, 0x51, 0x7a, 0x42, 0x42, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x44, 0x41, 0x77, 0x63, 0x47, 0x41, 0x44, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x6f, 0x30, 0x45, 0x47, 0x72, 0x4a, 0x42, 0x74, 0x0a, 0x30, 0x55, 0x72, 0x72, 0x64, 0x61, 0x56, 0x4b, 0x45, 0x4a, 0x6d, 0x7a, 0x73, 0x61, 0x47, 0x4c, 0x53, 0x76, 0x63, 0x77, 0x43, 0x67, 0x59, 0x49, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x45, 0x41, 0x77, 0x49, 0x44, 0x52, 0x77, 0x41, 0x77, 0x52, 0x41, 0x49, 0x67, 0x42, 0x2b, 0x5a, 0x55, 0x32, 0x67, 0x36, 0x67, 0x57, 0x72, 0x4b, 0x75, 0x45, 0x5a, 0x2b, 0x48, 0x78, 0x62, 0x62, 0x2f, 0x61, 0x64, 0x34, 0x6c, 0x76, 0x76, 0x69, 0x67, 0x74, 0x77, 0x6a, 0x7a, 0x0a, 0x52, 0x4d, 0x34, 0x71, 0x33, 0x77, 0x67, 0x68, 0x44, 0x44, 0x63, 0x43, 0x49, 0x43, 0x30, 0x6d, 0x41, 0x36, 0x41, 0x46, 0x76, 0x57, 0x76, 0x52, 0x39, 0x6c, 0x7a, 0x34, 0x5a, 0x63, 0x79, 0x47, 0x62, 0x62, 0x4f, 0x63, 0x4e, 0x45, 0x68, 0x6a, 0x68, 0x41, 0x6e, 0x46, 0x6a, 0x58, 0x63, 0x61, 0x34, 0x73, 0x79, 0x63, 0x34, 0x58, 0x52, 0x37, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x54, 0x72, 0x75, 0x73, 0x74, 0x77, 0x61, 0x76, 0x65, 0x20, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x45, 0x43, 0x43, 0x20, 0x50, 0x33, 0x38, 0x34, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x6e, 0x54, 0x43, 0x43, 0x41, 0x69, 0x53, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4d, 0x43, 0x4c, 0x32, 0x46, 0x6c, 0x32, 0x79, 0x5a, 0x4a, 0x36, 0x53, 0x41, 0x61, 0x45, 0x63, 0x37, 0x4d, 0x41, 0x6f, 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x42, 0x41, 0x4d, 0x44, 0x4d, 0x49, 0x47, 0x52, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x52, 0x0a, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x42, 0x4d, 0x49, 0x53, 0x57, 0x78, 0x73, 0x61, 0x57, 0x35, 0x76, 0x61, 0x58, 0x4d, 0x78, 0x45, 0x44, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x63, 0x54, 0x42, 0x30, 0x4e, 0x6f, 0x61, 0x57, 0x4e, 0x68, 0x5a, 0x32, 0x38, 0x78, 0x49, 0x54, 0x41, 0x66, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x47, 0x46, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x64, 0x32, 0x46, 0x32, 0x5a, 0x53, 0x42, 0x49, 0x0a, 0x62, 0x32, 0x78, 0x6b, 0x61, 0x57, 0x35, 0x6e, 0x63, 0x79, 0x77, 0x67, 0x53, 0x57, 0x35, 0x6a, 0x4c, 0x6a, 0x45, 0x36, 0x4d, 0x44, 0x67, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x78, 0x56, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x52, 0x33, 0x59, 0x58, 0x5a, 0x6c, 0x49, 0x45, 0x64, 0x73, 0x62, 0x32, 0x4a, 0x68, 0x62, 0x43, 0x42, 0x46, 0x51, 0x30, 0x4d, 0x67, 0x55, 0x44, 0x4d, 0x34, 0x4e, 0x43, 0x42, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x61, 0x57, 0x5a, 0x70, 0x0a, 0x59, 0x32, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x49, 0x45, 0x46, 0x31, 0x64, 0x47, 0x68, 0x76, 0x63, 0x6d, 0x6c, 0x30, 0x65, 0x54, 0x41, 0x65, 0x46, 0x77, 0x30, 0x78, 0x4e, 0x7a, 0x41, 0x34, 0x4d, 0x6a, 0x4d, 0x78, 0x4f, 0x54, 0x4d, 0x32, 0x4e, 0x44, 0x4e, 0x61, 0x46, 0x77, 0x30, 0x30, 0x4d, 0x6a, 0x41, 0x34, 0x4d, 0x6a, 0x4d, 0x78, 0x4f, 0x54, 0x4d, 0x32, 0x4e, 0x44, 0x4e, 0x61, 0x4d, 0x49, 0x47, 0x52, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x0a, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x52, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x42, 0x4d, 0x49, 0x53, 0x57, 0x78, 0x73, 0x61, 0x57, 0x35, 0x76, 0x61, 0x58, 0x4d, 0x78, 0x45, 0x44, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x63, 0x54, 0x42, 0x30, 0x4e, 0x6f, 0x61, 0x57, 0x4e, 0x68, 0x5a, 0x32, 0x38, 0x78, 0x49, 0x54, 0x41, 0x66, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x47, 0x46, 0x52, 0x79, 0x0a, 0x64, 0x58, 0x4e, 0x30, 0x64, 0x32, 0x46, 0x32, 0x5a, 0x53, 0x42, 0x49, 0x62, 0x32, 0x78, 0x6b, 0x61, 0x57, 0x35, 0x6e, 0x63, 0x79, 0x77, 0x67, 0x53, 0x57, 0x35, 0x6a, 0x4c, 0x6a, 0x45, 0x36, 0x4d, 0x44, 0x67, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x78, 0x56, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x52, 0x33, 0x59, 0x58, 0x5a, 0x6c, 0x49, 0x45, 0x64, 0x73, 0x62, 0x32, 0x4a, 0x68, 0x62, 0x43, 0x42, 0x46, 0x51, 0x30, 0x4d, 0x67, 0x55, 0x44, 0x4d, 0x34, 0x0a, 0x4e, 0x43, 0x42, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x61, 0x57, 0x5a, 0x70, 0x59, 0x32, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x49, 0x45, 0x46, 0x31, 0x64, 0x47, 0x68, 0x76, 0x63, 0x6d, 0x6c, 0x30, 0x65, 0x54, 0x42, 0x32, 0x4d, 0x42, 0x41, 0x47, 0x42, 0x79, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x41, 0x67, 0x45, 0x47, 0x42, 0x53, 0x75, 0x42, 0x42, 0x41, 0x41, 0x69, 0x41, 0x32, 0x49, 0x41, 0x42, 0x47, 0x76, 0x61, 0x44, 0x58, 0x55, 0x31, 0x43, 0x44, 0x46, 0x48, 0x0a, 0x42, 0x61, 0x35, 0x46, 0x6d, 0x56, 0x58, 0x78, 0x45, 0x52, 0x4d, 0x75, 0x53, 0x76, 0x67, 0x51, 0x4d, 0x53, 0x4f, 0x6a, 0x66, 0x6f, 0x50, 0x54, 0x66, 0x79, 0x67, 0x49, 0x4f, 0x69, 0x59, 0x61, 0x4f, 0x73, 0x2b, 0x58, 0x67, 0x68, 0x2b, 0x41, 0x74, 0x79, 0x63, 0x4a, 0x6a, 0x39, 0x47, 0x4f, 0x4d, 0x4d, 0x51, 0x4b, 0x6d, 0x77, 0x36, 0x73, 0x57, 0x41, 0x53, 0x72, 0x39, 0x7a, 0x5a, 0x39, 0x6c, 0x43, 0x4f, 0x6b, 0x6d, 0x77, 0x71, 0x4b, 0x69, 0x36, 0x76, 0x72, 0x0a, 0x2f, 0x54, 0x6b, 0x6c, 0x5a, 0x76, 0x46, 0x65, 0x2f, 0x6f, 0x79, 0x75, 0x6a, 0x55, 0x46, 0x35, 0x6e, 0x51, 0x6c, 0x67, 0x7a, 0x69, 0x69, 0x70, 0x30, 0x34, 0x70, 0x74, 0x38, 0x39, 0x5a, 0x46, 0x31, 0x50, 0x4b, 0x59, 0x68, 0x44, 0x68, 0x6c, 0x6f, 0x4b, 0x4e, 0x44, 0x4d, 0x45, 0x45, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x0a, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x51, 0x4d, 0x44, 0x42, 0x77, 0x59, 0x41, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x52, 0x56, 0x71, 0x59, 0x53, 0x4a, 0x30, 0x73, 0x45, 0x79, 0x76, 0x52, 0x6a, 0x4c, 0x62, 0x4b, 0x59, 0x48, 0x54, 0x73, 0x6a, 0x6e, 0x6e, 0x62, 0x36, 0x43, 0x6b, 0x44, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x77, 0x4e, 0x6e, 0x0a, 0x41, 0x44, 0x42, 0x6b, 0x41, 0x6a, 0x41, 0x33, 0x41, 0x5a, 0x4b, 0x58, 0x52, 0x52, 0x4a, 0x2b, 0x6f, 0x50, 0x4d, 0x2b, 0x72, 0x52, 0x6b, 0x36, 0x63, 0x74, 0x33, 0x30, 0x55, 0x4a, 0x4d, 0x44, 0x45, 0x72, 0x35, 0x45, 0x30, 0x6b, 0x39, 0x42, 0x70, 0x49, 0x79, 0x63, 0x6e, 0x52, 0x2b, 0x6a, 0x39, 0x73, 0x4b, 0x53, 0x35, 0x30, 0x67, 0x55, 0x2f, 0x6b, 0x36, 0x62, 0x70, 0x5a, 0x46, 0x58, 0x72, 0x73, 0x59, 0x33, 0x63, 0x72, 0x73, 0x43, 0x4d, 0x47, 0x63, 0x6c, 0x0a, 0x43, 0x72, 0x45, 0x4d, 0x58, 0x75, 0x36, 0x70, 0x59, 0x35, 0x4a, 0x76, 0x35, 0x5a, 0x41, 0x4c, 0x2f, 0x6d, 0x59, 0x69, 0x79, 0x6b, 0x66, 0x39, 0x69, 0x6a, 0x48, 0x33, 0x67, 0x2f, 0x35, 0x36, 0x76, 0x78, 0x43, 0x2b, 0x47, 0x43, 0x73, 0x65, 0x6a, 0x2f, 0x59, 0x70, 0x48, 0x70, 0x52, 0x5a, 0x37, 0x34, 0x34, 0x68, 0x4e, 0x38, 0x74, 0x52, 0x6d, 0x4b, 0x56, 0x75, 0x53, 0x77, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x4e, 0x41, 0x56, 0x45, 0x52, 0x20, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x6f, 0x6a, 0x43, 0x43, 0x41, 0x34, 0x71, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x55, 0x41, 0x5a, 0x51, 0x77, 0x48, 0x71, 0x49, 0x4c, 0x33, 0x66, 0x58, 0x46, 0x4d, 0x79, 0x71, 0x78, 0x51, 0x30, 0x52, 0x78, 0x2b, 0x4e, 0x5a, 0x51, 0x54, 0x51, 0x30, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4d, 0x42, 0x51, 0x41, 0x77, 0x61, 0x54, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x0a, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x53, 0x31, 0x49, 0x78, 0x4a, 0x6a, 0x41, 0x6b, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x48, 0x55, 0x35, 0x42, 0x56, 0x6b, 0x56, 0x53, 0x49, 0x45, 0x4a, 0x56, 0x55, 0x30, 0x6c, 0x4f, 0x52, 0x56, 0x4e, 0x54, 0x49, 0x46, 0x42, 0x4d, 0x51, 0x56, 0x52, 0x47, 0x54, 0x31, 0x4a, 0x4e, 0x49, 0x45, 0x4e, 0x76, 0x63, 0x6e, 0x41, 0x75, 0x4d, 0x54, 0x49, 0x77, 0x4d, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x0a, 0x44, 0x43, 0x6c, 0x4f, 0x51, 0x56, 0x5a, 0x46, 0x55, 0x69, 0x42, 0x48, 0x62, 0x47, 0x39, 0x69, 0x59, 0x57, 0x77, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x61, 0x57, 0x5a, 0x70, 0x59, 0x32, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x49, 0x45, 0x46, 0x31, 0x64, 0x47, 0x68, 0x76, 0x63, 0x6d, 0x6c, 0x30, 0x65, 0x54, 0x41, 0x65, 0x46, 0x77, 0x30, 0x78, 0x4e, 0x7a, 0x41, 0x34, 0x4d, 0x54, 0x67, 0x77, 0x4f, 0x44, 0x55, 0x34, 0x0a, 0x4e, 0x44, 0x4a, 0x61, 0x46, 0x77, 0x30, 0x7a, 0x4e, 0x7a, 0x41, 0x34, 0x4d, 0x54, 0x67, 0x79, 0x4d, 0x7a, 0x55, 0x35, 0x4e, 0x54, 0x6c, 0x61, 0x4d, 0x47, 0x6b, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6b, 0x74, 0x53, 0x4d, 0x53, 0x59, 0x77, 0x4a, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x42, 0x31, 0x4f, 0x51, 0x56, 0x5a, 0x46, 0x55, 0x69, 0x42, 0x43, 0x56, 0x56, 0x4e, 0x4a, 0x54, 0x6b, 0x56, 0x54, 0x0a, 0x55, 0x79, 0x42, 0x51, 0x54, 0x45, 0x46, 0x55, 0x52, 0x6b, 0x39, 0x53, 0x54, 0x53, 0x42, 0x44, 0x62, 0x33, 0x4a, 0x77, 0x4c, 0x6a, 0x45, 0x79, 0x4d, 0x44, 0x41, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x77, 0x77, 0x70, 0x54, 0x6b, 0x46, 0x57, 0x52, 0x56, 0x49, 0x67, 0x52, 0x32, 0x78, 0x76, 0x59, 0x6d, 0x46, 0x73, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x0a, 0x62, 0x69, 0x42, 0x42, 0x64, 0x58, 0x52, 0x6f, 0x62, 0x33, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x77, 0x67, 0x67, 0x49, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x49, 0x4b, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x43, 0x32, 0x31, 0x50, 0x47, 0x54, 0x58, 0x4c, 0x56, 0x41, 0x69, 0x51, 0x71, 0x72, 0x44, 0x5a, 0x42, 0x62, 0x0a, 0x55, 0x47, 0x4f, 0x75, 0x6b, 0x4a, 0x52, 0x30, 0x46, 0x30, 0x56, 0x79, 0x31, 0x6e, 0x74, 0x6c, 0x57, 0x69, 0x6c, 0x4c, 0x70, 0x31, 0x61, 0x67, 0x53, 0x37, 0x67, 0x76, 0x51, 0x6e, 0x58, 0x70, 0x32, 0x58, 0x73, 0x6b, 0x57, 0x6a, 0x46, 0x6c, 0x71, 0x78, 0x63, 0x58, 0x30, 0x54, 0x4d, 0x36, 0x32, 0x52, 0x48, 0x63, 0x51, 0x44, 0x61, 0x48, 0x33, 0x38, 0x64, 0x71, 0x36, 0x53, 0x5a, 0x65, 0x57, 0x59, 0x70, 0x33, 0x34, 0x2b, 0x68, 0x49, 0x6e, 0x44, 0x45, 0x57, 0x0a, 0x2b, 0x6a, 0x36, 0x52, 0x73, 0x63, 0x72, 0x4a, 0x6f, 0x2b, 0x4b, 0x66, 0x7a, 0x69, 0x46, 0x54, 0x6f, 0x77, 0x49, 0x32, 0x4d, 0x4d, 0x74, 0x53, 0x41, 0x75, 0x58, 0x61, 0x4d, 0x6c, 0x33, 0x44, 0x78, 0x65, 0x62, 0x35, 0x37, 0x68, 0x48, 0x48, 0x69, 0x38, 0x6c, 0x45, 0x48, 0x6f, 0x53, 0x54, 0x47, 0x45, 0x71, 0x30, 0x6e, 0x2b, 0x55, 0x53, 0x5a, 0x47, 0x6e, 0x51, 0x4a, 0x6f, 0x56, 0x69, 0x41, 0x62, 0x62, 0x4a, 0x41, 0x68, 0x32, 0x2b, 0x67, 0x31, 0x47, 0x37, 0x0a, 0x58, 0x4e, 0x72, 0x34, 0x72, 0x52, 0x56, 0x71, 0x6d, 0x66, 0x65, 0x53, 0x56, 0x50, 0x63, 0x30, 0x57, 0x2b, 0x6d, 0x2f, 0x36, 0x69, 0x6d, 0x42, 0x45, 0x74, 0x52, 0x54, 0x6b, 0x5a, 0x61, 0x7a, 0x6b, 0x56, 0x72, 0x64, 0x2f, 0x70, 0x42, 0x7a, 0x4b, 0x50, 0x73, 0x77, 0x52, 0x72, 0x58, 0x4b, 0x43, 0x41, 0x66, 0x48, 0x63, 0x58, 0x4c, 0x4a, 0x5a, 0x74, 0x4d, 0x30, 0x6c, 0x2f, 0x61, 0x4d, 0x39, 0x42, 0x68, 0x4b, 0x34, 0x64, 0x41, 0x39, 0x57, 0x6b, 0x57, 0x32, 0x0a, 0x61, 0x61, 0x63, 0x70, 0x2b, 0x79, 0x50, 0x4f, 0x69, 0x4e, 0x67, 0x53, 0x6e, 0x41, 0x42, 0x49, 0x71, 0x4b, 0x59, 0x50, 0x73, 0x7a, 0x75, 0x53, 0x6a, 0x58, 0x45, 0x4f, 0x64, 0x4d, 0x57, 0x4c, 0x79, 0x45, 0x7a, 0x35, 0x39, 0x4a, 0x75, 0x4f, 0x75, 0x44, 0x78, 0x70, 0x37, 0x57, 0x38, 0x37, 0x55, 0x43, 0x39, 0x59, 0x37, 0x63, 0x53, 0x77, 0x30, 0x42, 0x77, 0x62, 0x61, 0x67, 0x7a, 0x69, 0x76, 0x45, 0x53, 0x71, 0x32, 0x4d, 0x30, 0x55, 0x58, 0x5a, 0x52, 0x34, 0x0a, 0x59, 0x62, 0x38, 0x4f, 0x62, 0x74, 0x6f, 0x71, 0x76, 0x43, 0x38, 0x4d, 0x43, 0x33, 0x47, 0x6d, 0x73, 0x78, 0x59, 0x2f, 0x6e, 0x4f, 0x62, 0x35, 0x7a, 0x4a, 0x39, 0x54, 0x4e, 0x65, 0x49, 0x44, 0x6f, 0x4b, 0x41, 0x59, 0x76, 0x37, 0x76, 0x78, 0x76, 0x76, 0x54, 0x57, 0x6a, 0x49, 0x63, 0x4e, 0x51, 0x76, 0x63, 0x47, 0x75, 0x66, 0x46, 0x74, 0x37, 0x51, 0x53, 0x55, 0x71, 0x50, 0x36, 0x32, 0x30, 0x77, 0x62, 0x47, 0x51, 0x47, 0x48, 0x66, 0x6e, 0x5a, 0x33, 0x7a, 0x0a, 0x56, 0x48, 0x62, 0x4f, 0x55, 0x7a, 0x6f, 0x42, 0x70, 0x70, 0x4a, 0x42, 0x37, 0x41, 0x53, 0x6a, 0x6a, 0x77, 0x32, 0x69, 0x31, 0x51, 0x6e, 0x4b, 0x31, 0x73, 0x75, 0x61, 0x38, 0x65, 0x39, 0x44, 0x58, 0x63, 0x43, 0x72, 0x70, 0x55, 0x48, 0x50, 0x58, 0x46, 0x4e, 0x77, 0x63, 0x4d, 0x6d, 0x49, 0x70, 0x69, 0x33, 0x55, 0x61, 0x32, 0x46, 0x7a, 0x55, 0x43, 0x61, 0x47, 0x59, 0x51, 0x35, 0x66, 0x47, 0x38, 0x49, 0x72, 0x34, 0x6f, 0x7a, 0x56, 0x75, 0x35, 0x33, 0x42, 0x0a, 0x41, 0x30, 0x4b, 0x36, 0x6c, 0x4e, 0x70, 0x66, 0x71, 0x62, 0x44, 0x4b, 0x7a, 0x45, 0x30, 0x4b, 0x37, 0x30, 0x64, 0x70, 0x41, 0x79, 0x38, 0x69, 0x2b, 0x2f, 0x45, 0x6f, 0x7a, 0x72, 0x39, 0x64, 0x55, 0x47, 0x57, 0x6f, 0x6b, 0x47, 0x32, 0x7a, 0x64, 0x4c, 0x41, 0x49, 0x78, 0x36, 0x79, 0x6f, 0x30, 0x65, 0x73, 0x2b, 0x6e, 0x50, 0x78, 0x64, 0x47, 0x6f, 0x4d, 0x75, 0x4b, 0x38, 0x75, 0x31, 0x38, 0x30, 0x53, 0x64, 0x4f, 0x71, 0x63, 0x58, 0x59, 0x5a, 0x61, 0x69, 0x0a, 0x63, 0x64, 0x4e, 0x77, 0x6c, 0x68, 0x56, 0x4e, 0x74, 0x30, 0x78, 0x7a, 0x37, 0x68, 0x6c, 0x63, 0x78, 0x56, 0x73, 0x2b, 0x51, 0x66, 0x36, 0x73, 0x64, 0x57, 0x41, 0x37, 0x47, 0x32, 0x50, 0x4f, 0x41, 0x4e, 0x33, 0x61, 0x43, 0x4a, 0x42, 0x69, 0x74, 0x4f, 0x55, 0x74, 0x37, 0x6b, 0x69, 0x6e, 0x61, 0x78, 0x65, 0x5a, 0x56, 0x4c, 0x36, 0x48, 0x53, 0x75, 0x4f, 0x70, 0x58, 0x67, 0x52, 0x4d, 0x36, 0x78, 0x42, 0x74, 0x56, 0x4e, 0x62, 0x76, 0x38, 0x65, 0x6a, 0x79, 0x0a, 0x59, 0x68, 0x62, 0x4c, 0x67, 0x47, 0x76, 0x74, 0x50, 0x65, 0x33, 0x31, 0x48, 0x7a, 0x43, 0x6c, 0x72, 0x6b, 0x76, 0x4a, 0x45, 0x2b, 0x32, 0x4b, 0x41, 0x51, 0x48, 0x4a, 0x75, 0x46, 0x46, 0x59, 0x77, 0x47, 0x59, 0x36, 0x73, 0x57, 0x5a, 0x4c, 0x78, 0x4e, 0x55, 0x78, 0x41, 0x6d, 0x4c, 0x70, 0x64, 0x49, 0x51, 0x4d, 0x32, 0x30, 0x31, 0x47, 0x4c, 0x51, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x0a, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x30, 0x70, 0x2b, 0x49, 0x33, 0x36, 0x48, 0x4e, 0x4c, 0x4c, 0x33, 0x73, 0x39, 0x54, 0x73, 0x42, 0x41, 0x5a, 0x4d, 0x7a, 0x4a, 0x37, 0x4c, 0x72, 0x59, 0x45, 0x73, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x45, 0x47, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x0a, 0x41, 0x66, 0x38, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4d, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x42, 0x41, 0x44, 0x4c, 0x4b, 0x67, 0x4c, 0x4f, 0x64, 0x50, 0x56, 0x51, 0x47, 0x33, 0x64, 0x4c, 0x53, 0x4c, 0x76, 0x43, 0x6b, 0x41, 0x53, 0x45, 0x4c, 0x5a, 0x30, 0x6a, 0x4b, 0x62, 0x59, 0x37, 0x67, 0x79, 0x4b, 0x6f, 0x4e, 0x71, 0x6f, 0x30, 0x68, 0x56, 0x34, 0x2f, 0x47, 0x50, 0x6e, 0x72, 0x4b, 0x0a, 0x32, 0x31, 0x48, 0x55, 0x55, 0x72, 0x50, 0x55, 0x6c, 0x6f, 0x53, 0x6c, 0x57, 0x47, 0x42, 0x2f, 0x35, 0x51, 0x75, 0x4f, 0x48, 0x2f, 0x58, 0x63, 0x43, 0x68, 0x57, 0x42, 0x35, 0x54, 0x75, 0x32, 0x74, 0x79, 0x49, 0x76, 0x43, 0x5a, 0x77, 0x54, 0x46, 0x72, 0x46, 0x73, 0x44, 0x44, 0x55, 0x49, 0x62, 0x61, 0x74, 0x6a, 0x63, 0x75, 0x33, 0x63, 0x76, 0x75, 0x7a, 0x48, 0x56, 0x2b, 0x59, 0x77, 0x49, 0x48, 0x48, 0x57, 0x31, 0x78, 0x44, 0x42, 0x45, 0x31, 0x55, 0x42, 0x0a, 0x6a, 0x43, 0x70, 0x44, 0x35, 0x45, 0x48, 0x78, 0x7a, 0x7a, 0x70, 0x36, 0x55, 0x35, 0x4c, 0x4f, 0x6f, 0x67, 0x4d, 0x46, 0x44, 0x54, 0x6a, 0x66, 0x41, 0x72, 0x73, 0x51, 0x4c, 0x74, 0x6b, 0x37, 0x30, 0x70, 0x74, 0x36, 0x77, 0x4b, 0x47, 0x6d, 0x2b, 0x4c, 0x55, 0x78, 0x35, 0x76, 0x52, 0x31, 0x79, 0x62, 0x6c, 0x54, 0x6d, 0x58, 0x56, 0x48, 0x49, 0x6c, 0x6f, 0x55, 0x46, 0x63, 0x64, 0x34, 0x47, 0x37, 0x61, 0x64, 0x36, 0x51, 0x7a, 0x34, 0x47, 0x33, 0x62, 0x78, 0x0a, 0x68, 0x59, 0x54, 0x65, 0x6f, 0x64, 0x6f, 0x53, 0x37, 0x36, 0x54, 0x69, 0x45, 0x4a, 0x64, 0x36, 0x65, 0x4e, 0x34, 0x4d, 0x55, 0x5a, 0x65, 0x6f, 0x49, 0x55, 0x43, 0x4c, 0x68, 0x72, 0x30, 0x4e, 0x38, 0x46, 0x35, 0x4f, 0x53, 0x7a, 0x61, 0x37, 0x4f, 0x79, 0x41, 0x66, 0x69, 0x6b, 0x4a, 0x57, 0x34, 0x51, 0x73, 0x61, 0x76, 0x33, 0x76, 0x51, 0x49, 0x6b, 0x4d, 0x73, 0x52, 0x49, 0x7a, 0x37, 0x35, 0x53, 0x71, 0x30, 0x62, 0x42, 0x77, 0x63, 0x75, 0x70, 0x54, 0x67, 0x0a, 0x45, 0x33, 0x34, 0x68, 0x35, 0x70, 0x72, 0x43, 0x79, 0x38, 0x56, 0x43, 0x5a, 0x4c, 0x51, 0x65, 0x6c, 0x48, 0x73, 0x49, 0x4a, 0x63, 0x68, 0x78, 0x7a, 0x49, 0x64, 0x46, 0x56, 0x34, 0x58, 0x54, 0x6e, 0x79, 0x6c, 0x69, 0x49, 0x6f, 0x4e, 0x52, 0x6c, 0x77, 0x41, 0x59, 0x6c, 0x33, 0x64, 0x71, 0x6d, 0x4a, 0x4c, 0x4a, 0x66, 0x47, 0x42, 0x73, 0x33, 0x32, 0x78, 0x39, 0x53, 0x75, 0x52, 0x77, 0x54, 0x4d, 0x4b, 0x65, 0x75, 0x42, 0x33, 0x33, 0x30, 0x44, 0x54, 0x48, 0x0a, 0x44, 0x38, 0x7a, 0x37, 0x70, 0x2f, 0x38, 0x44, 0x76, 0x71, 0x31, 0x77, 0x6b, 0x4e, 0x6f, 0x4c, 0x33, 0x63, 0x68, 0x74, 0x6c, 0x31, 0x2b, 0x61, 0x66, 0x77, 0x6b, 0x79, 0x51, 0x66, 0x33, 0x4e, 0x6f, 0x73, 0x78, 0x61, 0x62, 0x55, 0x7a, 0x79, 0x71, 0x6b, 0x6e, 0x2b, 0x5a, 0x76, 0x6a, 0x70, 0x32, 0x44, 0x58, 0x72, 0x44, 0x69, 0x67, 0x65, 0x37, 0x6b, 0x67, 0x76, 0x4f, 0x74, 0x42, 0x35, 0x43, 0x54, 0x68, 0x38, 0x70, 0x69, 0x4b, 0x43, 0x6b, 0x35, 0x58, 0x51, 0x0a, 0x41, 0x37, 0x36, 0x2b, 0x41, 0x71, 0x41, 0x46, 0x33, 0x53, 0x41, 0x69, 0x34, 0x32, 0x38, 0x64, 0x69, 0x44, 0x52, 0x67, 0x78, 0x75, 0x59, 0x4b, 0x75, 0x51, 0x6c, 0x31, 0x43, 0x2f, 0x41, 0x48, 0x36, 0x47, 0x6d, 0x57, 0x4e, 0x63, 0x66, 0x37, 0x49, 0x34, 0x47, 0x4f, 0x4f, 0x44, 0x6d, 0x34, 0x52, 0x53, 0x74, 0x44, 0x65, 0x4b, 0x4c, 0x52, 0x4c, 0x42, 0x54, 0x2f, 0x44, 0x53, 0x68, 0x79, 0x63, 0x70, 0x57, 0x62, 0x58, 0x67, 0x6e, 0x62, 0x69, 0x55, 0x53, 0x59, 0x0a, 0x71, 0x71, 0x46, 0x4a, 0x75, 0x33, 0x46, 0x53, 0x38, 0x72, 0x2f, 0x32, 0x2f, 0x79, 0x65, 0x68, 0x4e, 0x71, 0x2b, 0x34, 0x74, 0x6e, 0x65, 0x49, 0x33, 0x54, 0x71, 0x6b, 0x62, 0x5a, 0x73, 0x30, 0x6b, 0x4e, 0x77, 0x55, 0x58, 0x54, 0x43, 0x2f, 0x74, 0x2b, 0x73, 0x58, 0x35, 0x49, 0x65, 0x33, 0x63, 0x64, 0x43, 0x68, 0x31, 0x33, 0x63, 0x56, 0x31, 0x45, 0x4c, 0x58, 0x38, 0x76, 0x4d, 0x78, 0x6d, 0x56, 0x32, 0x62, 0x33, 0x52, 0x5a, 0x74, 0x50, 0x2b, 0x6f, 0x47, 0x0a, 0x49, 0x2f, 0x68, 0x47, 0x6f, 0x69, 0x4c, 0x74, 0x6b, 0x2f, 0x62, 0x64, 0x6d, 0x75, 0x59, 0x71, 0x68, 0x37, 0x47, 0x59, 0x56, 0x50, 0x45, 0x69, 0x39, 0x32, 0x74, 0x46, 0x34, 0x2b, 0x4b, 0x4f, 0x64, 0x68, 0x32, 0x61, 0x6a, 0x63, 0x51, 0x47, 0x6a, 0x54, 0x61, 0x33, 0x46, 0x50, 0x4f, 0x64, 0x56, 0x47, 0x6d, 0x33, 0x6a, 0x6a, 0x7a, 0x56, 0x70, 0x47, 0x32, 0x54, 0x67, 0x62, 0x65, 0x74, 0x39, 0x72, 0x31, 0x6b, 0x65, 0x38, 0x4c, 0x4a, 0x61, 0x44, 0x6d, 0x67, 0x0a, 0x6b, 0x70, 0x7a, 0x4e, 0x4e, 0x49, 0x61, 0x52, 0x6b, 0x50, 0x70, 0x6b, 0x55, 0x5a, 0x33, 0x2b, 0x2f, 0x75, 0x75, 0x6c, 0x39, 0x58, 0x58, 0x65, 0x69, 0x66, 0x64, 0x79, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x41, 0x43, 0x20, 0x52, 0x41, 0x49, 0x5a, 0x20, 0x46, 0x4e, 0x4d, 0x54, 0x2d, 0x52, 0x43, 0x4d, 0x20, 0x53, 0x45, 0x52, 0x56, 0x49, 0x44, 0x4f, 0x52, 0x45, 0x53, 0x20, 0x53, 0x45, 0x47, 0x55, 0x52, 0x4f, 0x53, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x62, 0x6a, 0x43, 0x43, 0x41, 0x66, 0x4f, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x59, 0x76, 0x59, 0x79, 0x62, 0x4f, 0x58, 0x45, 0x34, 0x32, 0x68, 0x63, 0x47, 0x32, 0x4c, 0x64, 0x6e, 0x43, 0x36, 0x64, 0x6c, 0x54, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x7a, 0x42, 0x34, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x46, 0x0a, 0x55, 0x7a, 0x45, 0x52, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x49, 0x52, 0x6b, 0x35, 0x4e, 0x56, 0x43, 0x31, 0x53, 0x51, 0x30, 0x30, 0x78, 0x44, 0x6a, 0x41, 0x4d, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x73, 0x4d, 0x42, 0x55, 0x4e, 0x6c, 0x63, 0x6d, 0x56, 0x7a, 0x4d, 0x52, 0x67, 0x77, 0x46, 0x67, 0x59, 0x44, 0x56, 0x51, 0x52, 0x68, 0x44, 0x41, 0x39, 0x57, 0x51, 0x56, 0x52, 0x46, 0x55, 0x79, 0x31, 0x52, 0x4d, 0x6a, 0x67, 0x79, 0x0a, 0x4e, 0x6a, 0x41, 0x77, 0x4e, 0x45, 0x6f, 0x78, 0x4c, 0x44, 0x41, 0x71, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x49, 0x30, 0x46, 0x44, 0x49, 0x46, 0x4a, 0x42, 0x53, 0x56, 0x6f, 0x67, 0x52, 0x6b, 0x35, 0x4e, 0x56, 0x43, 0x31, 0x53, 0x51, 0x30, 0x30, 0x67, 0x55, 0x30, 0x56, 0x53, 0x56, 0x6b, 0x6c, 0x45, 0x54, 0x31, 0x4a, 0x46, 0x55, 0x79, 0x42, 0x54, 0x52, 0x55, 0x64, 0x56, 0x55, 0x6b, 0x39, 0x54, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x45, 0x34, 0x0a, 0x4d, 0x54, 0x49, 0x79, 0x4d, 0x44, 0x41, 0x35, 0x4d, 0x7a, 0x63, 0x7a, 0x4d, 0x31, 0x6f, 0x58, 0x44, 0x54, 0x51, 0x7a, 0x4d, 0x54, 0x49, 0x79, 0x4d, 0x44, 0x41, 0x35, 0x4d, 0x7a, 0x63, 0x7a, 0x4d, 0x31, 0x6f, 0x77, 0x65, 0x44, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x52, 0x56, 0x4d, 0x78, 0x45, 0x54, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x43, 0x45, 0x5a, 0x4f, 0x54, 0x56, 0x51, 0x74, 0x0a, 0x55, 0x6b, 0x4e, 0x4e, 0x4d, 0x51, 0x34, 0x77, 0x44, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x44, 0x41, 0x56, 0x44, 0x5a, 0x58, 0x4a, 0x6c, 0x63, 0x7a, 0x45, 0x59, 0x4d, 0x42, 0x59, 0x47, 0x41, 0x31, 0x55, 0x45, 0x59, 0x51, 0x77, 0x50, 0x56, 0x6b, 0x46, 0x55, 0x52, 0x56, 0x4d, 0x74, 0x55, 0x54, 0x49, 0x34, 0x4d, 0x6a, 0x59, 0x77, 0x4d, 0x44, 0x52, 0x4b, 0x4d, 0x53, 0x77, 0x77, 0x4b, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x44, 0x43, 0x4e, 0x42, 0x0a, 0x51, 0x79, 0x42, 0x53, 0x51, 0x55, 0x6c, 0x61, 0x49, 0x45, 0x5a, 0x4f, 0x54, 0x56, 0x51, 0x74, 0x55, 0x6b, 0x4e, 0x4e, 0x49, 0x46, 0x4e, 0x46, 0x55, 0x6c, 0x5a, 0x4a, 0x52, 0x45, 0x39, 0x53, 0x52, 0x56, 0x4d, 0x67, 0x55, 0x30, 0x56, 0x48, 0x56, 0x56, 0x4a, 0x50, 0x55, 0x7a, 0x42, 0x32, 0x4d, 0x42, 0x41, 0x47, 0x42, 0x79, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x41, 0x67, 0x45, 0x47, 0x42, 0x53, 0x75, 0x42, 0x42, 0x41, 0x41, 0x69, 0x41, 0x32, 0x49, 0x41, 0x0a, 0x42, 0x50, 0x61, 0x36, 0x56, 0x31, 0x50, 0x49, 0x79, 0x71, 0x76, 0x66, 0x4e, 0x6b, 0x70, 0x53, 0x49, 0x65, 0x53, 0x58, 0x30, 0x6f, 0x4e, 0x6e, 0x6e, 0x76, 0x42, 0x6c, 0x55, 0x64, 0x42, 0x65, 0x68, 0x38, 0x64, 0x48, 0x73, 0x56, 0x6e, 0x79, 0x56, 0x30, 0x65, 0x62, 0x41, 0x41, 0x4b, 0x54, 0x52, 0x42, 0x64, 0x70, 0x32, 0x30, 0x4c, 0x48, 0x73, 0x62, 0x49, 0x36, 0x47, 0x41, 0x36, 0x30, 0x58, 0x59, 0x79, 0x7a, 0x5a, 0x6c, 0x32, 0x68, 0x4e, 0x50, 0x6b, 0x32, 0x0a, 0x4c, 0x45, 0x6e, 0x62, 0x38, 0x30, 0x62, 0x38, 0x73, 0x30, 0x52, 0x70, 0x52, 0x42, 0x4e, 0x6d, 0x2f, 0x64, 0x66, 0x46, 0x2f, 0x61, 0x38, 0x32, 0x54, 0x63, 0x34, 0x44, 0x54, 0x51, 0x64, 0x78, 0x7a, 0x36, 0x39, 0x71, 0x42, 0x64, 0x4b, 0x69, 0x51, 0x31, 0x6f, 0x4b, 0x55, 0x6d, 0x38, 0x42, 0x41, 0x30, 0x36, 0x4f, 0x69, 0x36, 0x4e, 0x43, 0x4d, 0x45, 0x41, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x0a, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x51, 0x59, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x41, 0x47, 0x35, 0x4c, 0x2b, 0x2b, 0x2f, 0x45, 0x59, 0x5a, 0x67, 0x38, 0x6b, 0x2f, 0x51, 0x51, 0x57, 0x36, 0x72, 0x63, 0x78, 0x2f, 0x6e, 0x30, 0x6d, 0x35, 0x4a, 0x4d, 0x41, 0x6f, 0x47, 0x43, 0x43, 0x71, 0x47, 0x0a, 0x53, 0x4d, 0x34, 0x39, 0x42, 0x41, 0x4d, 0x44, 0x41, 0x32, 0x6b, 0x41, 0x4d, 0x47, 0x59, 0x43, 0x4d, 0x51, 0x43, 0x75, 0x53, 0x75, 0x4d, 0x72, 0x51, 0x4d, 0x4e, 0x30, 0x45, 0x66, 0x4b, 0x56, 0x72, 0x52, 0x59, 0x6a, 0x33, 0x6b, 0x34, 0x4d, 0x47, 0x75, 0x5a, 0x64, 0x70, 0x53, 0x52, 0x65, 0x61, 0x30, 0x52, 0x37, 0x2f, 0x44, 0x6a, 0x69, 0x54, 0x38, 0x75, 0x63, 0x52, 0x52, 0x63, 0x52, 0x54, 0x42, 0x51, 0x6e, 0x4a, 0x6c, 0x55, 0x35, 0x64, 0x55, 0x6f, 0x44, 0x0a, 0x7a, 0x42, 0x4f, 0x51, 0x6e, 0x35, 0x49, 0x43, 0x4d, 0x51, 0x44, 0x36, 0x53, 0x6d, 0x78, 0x67, 0x69, 0x48, 0x50, 0x7a, 0x37, 0x72, 0x69, 0x59, 0x59, 0x71, 0x6e, 0x4f, 0x4b, 0x38, 0x4c, 0x5a, 0x69, 0x71, 0x5a, 0x77, 0x4d, 0x52, 0x32, 0x76, 0x73, 0x4a, 0x52, 0x4d, 0x36, 0x30, 0x2f, 0x47, 0x34, 0x39, 0x48, 0x7a, 0x59, 0x71, 0x63, 0x38, 0x2f, 0x35, 0x4d, 0x75, 0x42, 0x31, 0x78, 0x4a, 0x41, 0x57, 0x64, 0x70, 0x45, 0x67, 0x4a, 0x79, 0x76, 0x2b, 0x63, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x52, 0x34, 0x36, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x57, 0x6a, 0x43, 0x43, 0x41, 0x30, 0x4b, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x53, 0x45, 0x64, 0x4b, 0x37, 0x75, 0x64, 0x63, 0x6a, 0x47, 0x4a, 0x35, 0x41, 0x58, 0x77, 0x71, 0x64, 0x4c, 0x64, 0x44, 0x66, 0x4a, 0x57, 0x66, 0x52, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x44, 0x41, 0x55, 0x41, 0x4d, 0x45, 0x59, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x0a, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6b, 0x4a, 0x46, 0x4d, 0x52, 0x6b, 0x77, 0x46, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x78, 0x42, 0x48, 0x62, 0x47, 0x39, 0x69, 0x59, 0x57, 0x78, 0x54, 0x61, 0x57, 0x64, 0x75, 0x49, 0x47, 0x35, 0x32, 0x4c, 0x58, 0x4e, 0x68, 0x4d, 0x52, 0x77, 0x77, 0x47, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x4e, 0x48, 0x62, 0x47, 0x39, 0x69, 0x59, 0x57, 0x78, 0x54, 0x61, 0x57, 0x64, 0x75, 0x49, 0x46, 0x4a, 0x76, 0x0a, 0x62, 0x33, 0x51, 0x67, 0x55, 0x6a, 0x51, 0x32, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x45, 0x35, 0x4d, 0x44, 0x4d, 0x79, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x46, 0x6f, 0x58, 0x44, 0x54, 0x51, 0x32, 0x4d, 0x44, 0x4d, 0x79, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x46, 0x6f, 0x77, 0x52, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x51, 0x6b, 0x55, 0x78, 0x47, 0x54, 0x41, 0x58, 0x0a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x45, 0x45, 0x64, 0x73, 0x62, 0x32, 0x4a, 0x68, 0x62, 0x46, 0x4e, 0x70, 0x5a, 0x32, 0x34, 0x67, 0x62, 0x6e, 0x59, 0x74, 0x63, 0x32, 0x45, 0x78, 0x48, 0x44, 0x41, 0x61, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x45, 0x30, 0x64, 0x73, 0x62, 0x32, 0x4a, 0x68, 0x62, 0x46, 0x4e, 0x70, 0x5a, 0x32, 0x34, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x53, 0x4e, 0x44, 0x59, 0x77, 0x67, 0x67, 0x49, 0x69, 0x0a, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x49, 0x4b, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x43, 0x73, 0x72, 0x48, 0x51, 0x79, 0x36, 0x4c, 0x4e, 0x6c, 0x35, 0x62, 0x72, 0x74, 0x51, 0x79, 0x59, 0x64, 0x70, 0x6f, 0x6b, 0x4e, 0x52, 0x62, 0x6f, 0x70, 0x69, 0x4c, 0x4b, 0x6b, 0x48, 0x57, 0x50, 0x64, 0x30, 0x38, 0x45, 0x73, 0x0a, 0x43, 0x56, 0x65, 0x4a, 0x4f, 0x61, 0x46, 0x56, 0x36, 0x57, 0x63, 0x30, 0x64, 0x77, 0x78, 0x75, 0x35, 0x46, 0x55, 0x64, 0x55, 0x69, 0x58, 0x53, 0x45, 0x32, 0x74, 0x65, 0x34, 0x52, 0x32, 0x70, 0x74, 0x33, 0x32, 0x4a, 0x4d, 0x6c, 0x38, 0x4e, 0x6e, 0x70, 0x38, 0x73, 0x65, 0x6d, 0x4e, 0x67, 0x51, 0x42, 0x2b, 0x6d, 0x73, 0x4c, 0x5a, 0x34, 0x6a, 0x35, 0x6c, 0x55, 0x6c, 0x67, 0x68, 0x59, 0x72, 0x75, 0x51, 0x47, 0x76, 0x47, 0x49, 0x46, 0x41, 0x68, 0x61, 0x2f, 0x0a, 0x72, 0x36, 0x67, 0x6a, 0x41, 0x37, 0x61, 0x55, 0x44, 0x37, 0x78, 0x75, 0x62, 0x4d, 0x4c, 0x4c, 0x31, 0x61, 0x61, 0x37, 0x44, 0x4f, 0x6e, 0x32, 0x77, 0x51, 0x4c, 0x37, 0x49, 0x64, 0x35, 0x6d, 0x33, 0x52, 0x65, 0x72, 0x64, 0x45, 0x4c, 0x76, 0x38, 0x48, 0x51, 0x76, 0x4a, 0x66, 0x54, 0x71, 0x61, 0x31, 0x56, 0x62, 0x6b, 0x4e, 0x75, 0x64, 0x33, 0x31, 0x36, 0x48, 0x43, 0x6b, 0x44, 0x37, 0x72, 0x52, 0x6c, 0x72, 0x2b, 0x2f, 0x66, 0x4b, 0x59, 0x49, 0x6a, 0x65, 0x0a, 0x32, 0x73, 0x47, 0x50, 0x31, 0x71, 0x37, 0x56, 0x66, 0x39, 0x51, 0x38, 0x67, 0x2b, 0x37, 0x58, 0x46, 0x6b, 0x79, 0x44, 0x52, 0x54, 0x4e, 0x72, 0x4a, 0x39, 0x43, 0x47, 0x30, 0x42, 0x77, 0x74, 0x61, 0x2f, 0x4f, 0x72, 0x66, 0x66, 0x47, 0x46, 0x71, 0x66, 0x55, 0x6f, 0x30, 0x71, 0x33, 0x76, 0x38, 0x34, 0x52, 0x4c, 0x48, 0x49, 0x66, 0x38, 0x45, 0x36, 0x4d, 0x36, 0x63, 0x71, 0x4a, 0x61, 0x45, 0x53, 0x76, 0x57, 0x4a, 0x33, 0x45, 0x6e, 0x37, 0x59, 0x45, 0x74, 0x0a, 0x62, 0x57, 0x61, 0x42, 0x6b, 0x6f, 0x65, 0x30, 0x47, 0x31, 0x68, 0x36, 0x7a, 0x44, 0x38, 0x4b, 0x2b, 0x6b, 0x5a, 0x50, 0x54, 0x58, 0x68, 0x63, 0x2b, 0x43, 0x74, 0x49, 0x34, 0x77, 0x53, 0x45, 0x79, 0x31, 0x33, 0x32, 0x74, 0x47, 0x71, 0x7a, 0x5a, 0x66, 0x78, 0x43, 0x6e, 0x6c, 0x45, 0x6d, 0x49, 0x79, 0x44, 0x4c, 0x50, 0x52, 0x54, 0x35, 0x67, 0x65, 0x31, 0x6c, 0x46, 0x67, 0x42, 0x50, 0x47, 0x6d, 0x53, 0x58, 0x5a, 0x67, 0x6a, 0x50, 0x6a, 0x48, 0x76, 0x6a, 0x0a, 0x4b, 0x38, 0x43, 0x64, 0x2b, 0x52, 0x54, 0x79, 0x47, 0x2f, 0x46, 0x57, 0x61, 0x68, 0x61, 0x2f, 0x4c, 0x49, 0x57, 0x46, 0x7a, 0x58, 0x67, 0x34, 0x6d, 0x75, 0x74, 0x43, 0x61, 0x67, 0x49, 0x30, 0x47, 0x49, 0x4d, 0x58, 0x54, 0x70, 0x52, 0x57, 0x2b, 0x4c, 0x61, 0x43, 0x74, 0x66, 0x4f, 0x57, 0x33, 0x54, 0x33, 0x7a, 0x76, 0x6e, 0x38, 0x67, 0x64, 0x7a, 0x35, 0x37, 0x47, 0x53, 0x4e, 0x72, 0x4c, 0x4e, 0x52, 0x79, 0x63, 0x30, 0x4e, 0x58, 0x66, 0x65, 0x44, 0x34, 0x0a, 0x31, 0x32, 0x6c, 0x50, 0x46, 0x7a, 0x59, 0x45, 0x2b, 0x63, 0x43, 0x51, 0x59, 0x44, 0x64, 0x46, 0x33, 0x75, 0x59, 0x4d, 0x32, 0x48, 0x53, 0x4e, 0x72, 0x70, 0x79, 0x69, 0x62, 0x58, 0x52, 0x64, 0x51, 0x72, 0x34, 0x47, 0x39, 0x64, 0x6c, 0x6b, 0x62, 0x67, 0x49, 0x51, 0x72, 0x49, 0x6d, 0x77, 0x54, 0x44, 0x73, 0x48, 0x54, 0x55, 0x42, 0x2b, 0x4a, 0x4d, 0x57, 0x4b, 0x6d, 0x49, 0x4a, 0x35, 0x6a, 0x71, 0x53, 0x6e, 0x67, 0x69, 0x43, 0x4e, 0x49, 0x2f, 0x6f, 0x6e, 0x0a, 0x63, 0x63, 0x6e, 0x66, 0x78, 0x6b, 0x46, 0x30, 0x6f, 0x45, 0x33, 0x32, 0x6b, 0x52, 0x62, 0x63, 0x52, 0x6f, 0x78, 0x66, 0x4b, 0x57, 0x4d, 0x78, 0x57, 0x58, 0x45, 0x4d, 0x32, 0x47, 0x2f, 0x43, 0x74, 0x6a, 0x4a, 0x39, 0x2b, 0x2b, 0x5a, 0x64, 0x55, 0x36, 0x5a, 0x2b, 0x46, 0x66, 0x79, 0x37, 0x64, 0x58, 0x78, 0x64, 0x37, 0x50, 0x6a, 0x32, 0x46, 0x78, 0x7a, 0x73, 0x78, 0x32, 0x73, 0x5a, 0x79, 0x2f, 0x4e, 0x37, 0x38, 0x43, 0x73, 0x48, 0x70, 0x64, 0x6c, 0x73, 0x0a, 0x65, 0x56, 0x52, 0x32, 0x62, 0x4a, 0x30, 0x63, 0x70, 0x6d, 0x34, 0x4f, 0x36, 0x58, 0x6b, 0x4d, 0x71, 0x43, 0x4e, 0x71, 0x6f, 0x39, 0x38, 0x62, 0x4d, 0x44, 0x47, 0x66, 0x73, 0x56, 0x52, 0x37, 0x2f, 0x6d, 0x72, 0x4c, 0x5a, 0x71, 0x72, 0x63, 0x5a, 0x64, 0x43, 0x69, 0x6e, 0x6b, 0x71, 0x61, 0x42, 0x79, 0x46, 0x72, 0x67, 0x59, 0x2f, 0x62, 0x78, 0x46, 0x6e, 0x36, 0x33, 0x69, 0x4c, 0x41, 0x42, 0x4a, 0x7a, 0x6a, 0x71, 0x6c, 0x73, 0x32, 0x6b, 0x2b, 0x67, 0x39, 0x0a, 0x76, 0x58, 0x71, 0x68, 0x6e, 0x51, 0x74, 0x32, 0x73, 0x51, 0x76, 0x48, 0x6e, 0x66, 0x33, 0x50, 0x6d, 0x4b, 0x67, 0x47, 0x77, 0x76, 0x67, 0x71, 0x6f, 0x36, 0x47, 0x44, 0x6f, 0x4c, 0x63, 0x6c, 0x63, 0x71, 0x55, 0x43, 0x34, 0x77, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x59, 0x59, 0x77, 0x44, 0x77, 0x59, 0x44, 0x0a, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x41, 0x31, 0x79, 0x72, 0x63, 0x34, 0x47, 0x48, 0x71, 0x4d, 0x79, 0x77, 0x70, 0x74, 0x57, 0x55, 0x34, 0x6a, 0x61, 0x57, 0x53, 0x66, 0x38, 0x46, 0x6d, 0x53, 0x77, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4d, 0x0a, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x42, 0x41, 0x48, 0x78, 0x34, 0x37, 0x50, 0x59, 0x43, 0x4c, 0x4c, 0x74, 0x62, 0x66, 0x70, 0x49, 0x72, 0x58, 0x54, 0x6e, 0x63, 0x76, 0x74, 0x67, 0x64, 0x6f, 0x6b, 0x49, 0x7a, 0x54, 0x66, 0x6e, 0x76, 0x70, 0x43, 0x6f, 0x37, 0x52, 0x47, 0x6b, 0x65, 0x72, 0x4e, 0x6c, 0x46, 0x6f, 0x30, 0x34, 0x38, 0x70, 0x39, 0x67, 0x6b, 0x55, 0x62, 0x4a, 0x55, 0x48, 0x4a, 0x4e, 0x4f, 0x78, 0x4f, 0x39, 0x37, 0x6b, 0x34, 0x56, 0x67, 0x0a, 0x4a, 0x75, 0x6f, 0x4a, 0x53, 0x4f, 0x44, 0x31, 0x75, 0x38, 0x66, 0x70, 0x61, 0x4e, 0x4b, 0x37, 0x61, 0x6a, 0x46, 0x78, 0x7a, 0x48, 0x6d, 0x75, 0x45, 0x61, 0x6a, 0x77, 0x6d, 0x66, 0x33, 0x6c, 0x48, 0x37, 0x77, 0x76, 0x71, 0x4d, 0x78, 0x58, 0x36, 0x33, 0x62, 0x45, 0x49, 0x61, 0x5a, 0x48, 0x55, 0x31, 0x56, 0x4e, 0x61, 0x4c, 0x38, 0x46, 0x70, 0x4f, 0x37, 0x58, 0x4a, 0x71, 0x74, 0x69, 0x32, 0x6b, 0x4d, 0x33, 0x53, 0x2b, 0x4c, 0x47, 0x74, 0x65, 0x57, 0x79, 0x0a, 0x67, 0x78, 0x6b, 0x36, 0x78, 0x39, 0x50, 0x62, 0x54, 0x5a, 0x34, 0x49, 0x65, 0x76, 0x50, 0x75, 0x7a, 0x7a, 0x35, 0x69, 0x2b, 0x36, 0x7a, 0x6f, 0x59, 0x4d, 0x7a, 0x52, 0x78, 0x36, 0x46, 0x63, 0x67, 0x30, 0x58, 0x45, 0x52, 0x63, 0x7a, 0x7a, 0x46, 0x32, 0x73, 0x55, 0x79, 0x51, 0x51, 0x43, 0x50, 0x74, 0x49, 0x6b, 0x70, 0x6e, 0x6e, 0x70, 0x48, 0x73, 0x36, 0x69, 0x35, 0x38, 0x46, 0x5a, 0x46, 0x5a, 0x38, 0x64, 0x34, 0x6b, 0x75, 0x61, 0x50, 0x70, 0x39, 0x32, 0x0a, 0x43, 0x43, 0x31, 0x72, 0x32, 0x4c, 0x70, 0x58, 0x46, 0x4e, 0x71, 0x44, 0x36, 0x76, 0x36, 0x4d, 0x56, 0x65, 0x6e, 0x51, 0x54, 0x71, 0x6e, 0x4d, 0x64, 0x7a, 0x47, 0x78, 0x52, 0x42, 0x46, 0x36, 0x58, 0x4c, 0x45, 0x2b, 0x30, 0x78, 0x52, 0x46, 0x46, 0x52, 0x68, 0x69, 0x4a, 0x42, 0x50, 0x53, 0x79, 0x30, 0x33, 0x4f, 0x58, 0x49, 0x50, 0x42, 0x4e, 0x76, 0x49, 0x51, 0x74, 0x51, 0x36, 0x49, 0x62, 0x62, 0x6a, 0x68, 0x56, 0x70, 0x2b, 0x4a, 0x33, 0x70, 0x5a, 0x6d, 0x0a, 0x4f, 0x55, 0x64, 0x6b, 0x4c, 0x47, 0x35, 0x4e, 0x72, 0x6d, 0x4a, 0x37, 0x76, 0x32, 0x42, 0x30, 0x47, 0x62, 0x68, 0x57, 0x72, 0x4a, 0x4b, 0x73, 0x46, 0x6a, 0x4c, 0x74, 0x72, 0x57, 0x68, 0x56, 0x2f, 0x70, 0x69, 0x36, 0x30, 0x7a, 0x54, 0x65, 0x39, 0x4d, 0x6c, 0x68, 0x77, 0x77, 0x36, 0x47, 0x39, 0x6b, 0x75, 0x45, 0x59, 0x4f, 0x34, 0x4e, 0x65, 0x37, 0x55, 0x79, 0x57, 0x48, 0x6d, 0x52, 0x56, 0x53, 0x79, 0x42, 0x51, 0x37, 0x4e, 0x30, 0x48, 0x33, 0x71, 0x71, 0x0a, 0x4a, 0x5a, 0x34, 0x64, 0x31, 0x36, 0x47, 0x4c, 0x75, 0x63, 0x31, 0x43, 0x4c, 0x67, 0x53, 0x6b, 0x5a, 0x6f, 0x4e, 0x4e, 0x69, 0x54, 0x57, 0x32, 0x62, 0x4b, 0x67, 0x32, 0x53, 0x6e, 0x6b, 0x68, 0x65, 0x43, 0x4c, 0x51, 0x51, 0x72, 0x7a, 0x52, 0x51, 0x44, 0x47, 0x51, 0x6f, 0x62, 0x34, 0x45, 0x7a, 0x38, 0x70, 0x6e, 0x37, 0x66, 0x58, 0x77, 0x67, 0x4e, 0x4e, 0x67, 0x79, 0x59, 0x4d, 0x71, 0x49, 0x67, 0x58, 0x51, 0x42, 0x7a, 0x74, 0x53, 0x76, 0x77, 0x79, 0x65, 0x0a, 0x71, 0x69, 0x76, 0x35, 0x75, 0x2b, 0x59, 0x66, 0x6a, 0x79, 0x57, 0x36, 0x68, 0x59, 0x30, 0x58, 0x48, 0x67, 0x4c, 0x2b, 0x58, 0x56, 0x41, 0x45, 0x56, 0x38, 0x2f, 0x2b, 0x4c, 0x62, 0x7a, 0x76, 0x58, 0x4d, 0x41, 0x61, 0x71, 0x37, 0x61, 0x66, 0x4a, 0x4d, 0x62, 0x66, 0x63, 0x32, 0x68, 0x49, 0x6b, 0x43, 0x77, 0x55, 0x39, 0x44, 0x39, 0x53, 0x47, 0x75, 0x54, 0x53, 0x79, 0x78, 0x54, 0x44, 0x59, 0x57, 0x6e, 0x50, 0x34, 0x76, 0x6b, 0x59, 0x78, 0x62, 0x6f, 0x7a, 0x0a, 0x6e, 0x78, 0x53, 0x6a, 0x42, 0x46, 0x32, 0x35, 0x63, 0x66, 0x65, 0x31, 0x6c, 0x4e, 0x6a, 0x32, 0x4d, 0x38, 0x46, 0x61, 0x77, 0x54, 0x53, 0x4c, 0x66, 0x4a, 0x76, 0x64, 0x6b, 0x7a, 0x72, 0x6e, 0x45, 0x36, 0x4a, 0x77, 0x59, 0x5a, 0x2b, 0x76, 0x6a, 0x2b, 0x76, 0x59, 0x78, 0x58, 0x58, 0x34, 0x4d, 0x32, 0x62, 0x55, 0x64, 0x47, 0x63, 0x36, 0x4e, 0x33, 0x65, 0x63, 0x35, 0x39, 0x32, 0x6b, 0x44, 0x33, 0x5a, 0x44, 0x5a, 0x6f, 0x70, 0x44, 0x38, 0x70, 0x2f, 0x37, 0x0a, 0x44, 0x45, 0x4a, 0x34, 0x59, 0x39, 0x48, 0x69, 0x44, 0x32, 0x39, 0x37, 0x31, 0x4b, 0x45, 0x39, 0x64, 0x4a, 0x65, 0x46, 0x74, 0x30, 0x67, 0x35, 0x51, 0x64, 0x59, 0x67, 0x2f, 0x4e, 0x41, 0x36, 0x73, 0x2f, 0x72, 0x6f, 0x62, 0x38, 0x53, 0x4b, 0x75, 0x6e, 0x45, 0x33, 0x76, 0x6f, 0x75, 0x58, 0x73, 0x58, 0x67, 0x78, 0x54, 0x37, 0x50, 0x6e, 0x74, 0x67, 0x4d, 0x54, 0x7a, 0x6c, 0x53, 0x64, 0x72, 0x69, 0x56, 0x5a, 0x7a, 0x48, 0x38, 0x31, 0x58, 0x77, 0x6a, 0x33, 0x0a, 0x51, 0x45, 0x55, 0x78, 0x65, 0x43, 0x70, 0x36, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x45, 0x34, 0x36, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x43, 0x7a, 0x43, 0x43, 0x41, 0x5a, 0x47, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x53, 0x45, 0x64, 0x4b, 0x37, 0x75, 0x6a, 0x4e, 0x75, 0x31, 0x4c, 0x7a, 0x6d, 0x4a, 0x47, 0x6a, 0x46, 0x44, 0x59, 0x51, 0x64, 0x6d, 0x4f, 0x68, 0x44, 0x4d, 0x41, 0x6f, 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x42, 0x41, 0x4d, 0x44, 0x4d, 0x45, 0x59, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x0a, 0x41, 0x6b, 0x4a, 0x46, 0x4d, 0x52, 0x6b, 0x77, 0x46, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x78, 0x42, 0x48, 0x62, 0x47, 0x39, 0x69, 0x59, 0x57, 0x78, 0x54, 0x61, 0x57, 0x64, 0x75, 0x49, 0x47, 0x35, 0x32, 0x4c, 0x58, 0x4e, 0x68, 0x4d, 0x52, 0x77, 0x77, 0x47, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x4e, 0x48, 0x62, 0x47, 0x39, 0x69, 0x59, 0x57, 0x78, 0x54, 0x61, 0x57, 0x64, 0x75, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x0a, 0x52, 0x54, 0x51, 0x32, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x45, 0x35, 0x4d, 0x44, 0x4d, 0x79, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x46, 0x6f, 0x58, 0x44, 0x54, 0x51, 0x32, 0x4d, 0x44, 0x4d, 0x79, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x46, 0x6f, 0x77, 0x52, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x51, 0x6b, 0x55, 0x78, 0x47, 0x54, 0x41, 0x58, 0x42, 0x67, 0x4e, 0x56, 0x0a, 0x42, 0x41, 0x6f, 0x54, 0x45, 0x45, 0x64, 0x73, 0x62, 0x32, 0x4a, 0x68, 0x62, 0x46, 0x4e, 0x70, 0x5a, 0x32, 0x34, 0x67, 0x62, 0x6e, 0x59, 0x74, 0x63, 0x32, 0x45, 0x78, 0x48, 0x44, 0x41, 0x61, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x45, 0x30, 0x64, 0x73, 0x62, 0x32, 0x4a, 0x68, 0x62, 0x46, 0x4e, 0x70, 0x5a, 0x32, 0x34, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x46, 0x4e, 0x44, 0x59, 0x77, 0x64, 0x6a, 0x41, 0x51, 0x42, 0x67, 0x63, 0x71, 0x0a, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x49, 0x42, 0x42, 0x67, 0x55, 0x72, 0x67, 0x51, 0x51, 0x41, 0x49, 0x67, 0x4e, 0x69, 0x41, 0x41, 0x53, 0x63, 0x44, 0x72, 0x48, 0x50, 0x74, 0x2b, 0x69, 0x65, 0x55, 0x6e, 0x64, 0x31, 0x4e, 0x50, 0x71, 0x6c, 0x52, 0x71, 0x65, 0x74, 0x4d, 0x68, 0x6b, 0x79, 0x74, 0x41, 0x65, 0x70, 0x4a, 0x38, 0x71, 0x55, 0x75, 0x77, 0x7a, 0x53, 0x43, 0x68, 0x44, 0x48, 0x32, 0x6f, 0x6d, 0x77, 0x6c, 0x77, 0x78, 0x77, 0x45, 0x77, 0x6b, 0x42, 0x0a, 0x6a, 0x74, 0x6a, 0x71, 0x52, 0x2b, 0x71, 0x2b, 0x73, 0x6f, 0x41, 0x72, 0x7a, 0x66, 0x77, 0x6f, 0x44, 0x64, 0x75, 0x73, 0x76, 0x4b, 0x53, 0x47, 0x4e, 0x2b, 0x31, 0x77, 0x43, 0x41, 0x42, 0x31, 0x36, 0x70, 0x4d, 0x4c, 0x65, 0x79, 0x35, 0x53, 0x6e, 0x43, 0x4e, 0x6f, 0x49, 0x77, 0x5a, 0x44, 0x37, 0x4a, 0x49, 0x76, 0x55, 0x34, 0x54, 0x62, 0x2b, 0x30, 0x63, 0x55, 0x42, 0x2b, 0x68, 0x66, 0x6c, 0x47, 0x64, 0x64, 0x79, 0x58, 0x71, 0x42, 0x50, 0x43, 0x43, 0x6a, 0x0a, 0x51, 0x6a, 0x42, 0x41, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x68, 0x6a, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x51, 0x78, 0x43, 0x70, 0x43, 0x50, 0x74, 0x73, 0x61, 0x64, 0x30, 0x6b, 0x52, 0x4c, 0x0a, 0x67, 0x4c, 0x57, 0x69, 0x35, 0x68, 0x2b, 0x78, 0x45, 0x6b, 0x38, 0x62, 0x6c, 0x54, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x77, 0x4e, 0x6f, 0x41, 0x44, 0x42, 0x6c, 0x41, 0x6a, 0x45, 0x41, 0x33, 0x31, 0x53, 0x51, 0x37, 0x5a, 0x76, 0x76, 0x69, 0x35, 0x51, 0x43, 0x6b, 0x78, 0x65, 0x43, 0x6d, 0x62, 0x36, 0x7a, 0x6e, 0x69, 0x7a, 0x32, 0x43, 0x35, 0x47, 0x4d, 0x6e, 0x30, 0x6f, 0x55, 0x73, 0x66, 0x5a, 0x6b, 0x0a, 0x76, 0x4c, 0x74, 0x6f, 0x55, 0x52, 0x4d, 0x4d, 0x41, 0x2f, 0x63, 0x56, 0x69, 0x34, 0x52, 0x67, 0x75, 0x59, 0x76, 0x2f, 0x55, 0x6f, 0x37, 0x6e, 0x6a, 0x4c, 0x77, 0x63, 0x41, 0x6a, 0x41, 0x38, 0x2b, 0x52, 0x48, 0x55, 0x6a, 0x45, 0x37, 0x41, 0x77, 0x57, 0x48, 0x43, 0x46, 0x55, 0x79, 0x71, 0x71, 0x78, 0x30, 0x4c, 0x4d, 0x56, 0x38, 0x37, 0x48, 0x4f, 0x49, 0x41, 0x6c, 0x30, 0x51, 0x78, 0x35, 0x76, 0x35, 0x7a, 0x6c, 0x69, 0x2f, 0x61, 0x6c, 0x74, 0x50, 0x2b, 0x0a, 0x43, 0x41, 0x65, 0x7a, 0x4e, 0x49, 0x6d, 0x38, 0x42, 0x5a, 0x2f, 0x33, 0x48, 0x6f, 0x62, 0x75, 0x69, 0x33, 0x41, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x41, 0x4e, 0x46, 0x20, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x37, 0x7a, 0x43, 0x43, 0x41, 0x39, 0x65, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x49, 0x44, 0x64, 0x50, 0x6a, 0x76, 0x47, 0x7a, 0x35, 0x61, 0x37, 0x45, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x77, 0x67, 0x59, 0x51, 0x78, 0x45, 0x6a, 0x41, 0x51, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x55, 0x54, 0x43, 0x55, 0x63, 0x32, 0x4d, 0x7a, 0x49, 0x34, 0x0a, 0x4e, 0x7a, 0x55, 0x78, 0x4d, 0x44, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x52, 0x56, 0x4d, 0x78, 0x4a, 0x7a, 0x41, 0x6c, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x48, 0x6b, 0x46, 0x4f, 0x52, 0x69, 0x42, 0x42, 0x64, 0x58, 0x52, 0x76, 0x63, 0x6d, 0x6c, 0x6b, 0x59, 0x57, 0x51, 0x67, 0x5a, 0x47, 0x55, 0x67, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x59, 0x32, 0x6c, 0x76, 0x0a, 0x62, 0x6a, 0x45, 0x55, 0x4d, 0x42, 0x49, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x78, 0x4d, 0x4c, 0x51, 0x55, 0x35, 0x47, 0x49, 0x45, 0x4e, 0x42, 0x49, 0x46, 0x4a, 0x68, 0x61, 0x58, 0x6f, 0x78, 0x49, 0x6a, 0x41, 0x67, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x47, 0x55, 0x46, 0x4f, 0x52, 0x69, 0x42, 0x54, 0x5a, 0x57, 0x4e, 0x31, 0x63, 0x6d, 0x55, 0x67, 0x55, 0x32, 0x56, 0x79, 0x64, 0x6d, 0x56, 0x79, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x0a, 0x51, 0x30, 0x45, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x54, 0x6b, 0x77, 0x4f, 0x54, 0x41, 0x30, 0x4d, 0x54, 0x41, 0x77, 0x4d, 0x44, 0x4d, 0x34, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x7a, 0x6b, 0x77, 0x4f, 0x44, 0x4d, 0x77, 0x4d, 0x54, 0x41, 0x77, 0x4d, 0x44, 0x4d, 0x34, 0x57, 0x6a, 0x43, 0x42, 0x68, 0x44, 0x45, 0x53, 0x4d, 0x42, 0x41, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x52, 0x4d, 0x4a, 0x52, 0x7a, 0x59, 0x7a, 0x4d, 0x6a, 0x67, 0x33, 0x4e, 0x54, 0x45, 0x77, 0x0a, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x46, 0x55, 0x7a, 0x45, 0x6e, 0x4d, 0x43, 0x55, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x65, 0x51, 0x55, 0x35, 0x47, 0x49, 0x45, 0x46, 0x31, 0x64, 0x47, 0x39, 0x79, 0x61, 0x57, 0x52, 0x68, 0x5a, 0x43, 0x42, 0x6b, 0x5a, 0x53, 0x42, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x61, 0x57, 0x5a, 0x70, 0x59, 0x32, 0x46, 0x6a, 0x61, 0x57, 0x39, 0x75, 0x4d, 0x52, 0x51, 0x77, 0x0a, 0x45, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x77, 0x74, 0x42, 0x54, 0x6b, 0x59, 0x67, 0x51, 0x30, 0x45, 0x67, 0x55, 0x6d, 0x46, 0x70, 0x65, 0x6a, 0x45, 0x69, 0x4d, 0x43, 0x41, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x5a, 0x51, 0x55, 0x35, 0x47, 0x49, 0x46, 0x4e, 0x6c, 0x59, 0x33, 0x56, 0x79, 0x5a, 0x53, 0x42, 0x54, 0x5a, 0x58, 0x4a, 0x32, 0x5a, 0x58, 0x49, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x51, 0x54, 0x43, 0x43, 0x0a, 0x41, 0x69, 0x49, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x50, 0x41, 0x44, 0x43, 0x43, 0x41, 0x67, 0x6f, 0x43, 0x67, 0x67, 0x49, 0x42, 0x41, 0x4e, 0x76, 0x72, 0x61, 0x79, 0x76, 0x6d, 0x5a, 0x46, 0x53, 0x56, 0x67, 0x70, 0x43, 0x6a, 0x63, 0x71, 0x51, 0x5a, 0x41, 0x5a, 0x32, 0x63, 0x43, 0x34, 0x46, 0x66, 0x63, 0x30, 0x6d, 0x36, 0x70, 0x36, 0x7a, 0x7a, 0x0a, 0x42, 0x45, 0x35, 0x37, 0x6c, 0x67, 0x76, 0x73, 0x45, 0x65, 0x42, 0x62, 0x70, 0x68, 0x7a, 0x4f, 0x47, 0x39, 0x49, 0x4e, 0x67, 0x78, 0x77, 0x72, 0x75, 0x4a, 0x34, 0x64, 0x66, 0x6b, 0x55, 0x79, 0x59, 0x41, 0x38, 0x48, 0x36, 0x58, 0x64, 0x59, 0x66, 0x70, 0x39, 0x71, 0x79, 0x47, 0x46, 0x4f, 0x74, 0x69, 0x62, 0x42, 0x54, 0x49, 0x33, 0x2f, 0x54, 0x4f, 0x38, 0x30, 0x73, 0x68, 0x39, 0x6c, 0x32, 0x4c, 0x6c, 0x34, 0x39, 0x61, 0x32, 0x70, 0x63, 0x62, 0x6e, 0x76, 0x0a, 0x54, 0x31, 0x67, 0x64, 0x70, 0x64, 0x35, 0x30, 0x49, 0x4a, 0x65, 0x68, 0x37, 0x57, 0x68, 0x4d, 0x33, 0x70, 0x49, 0x58, 0x53, 0x37, 0x79, 0x72, 0x2f, 0x32, 0x57, 0x61, 0x6e, 0x76, 0x74, 0x48, 0x32, 0x56, 0x64, 0x79, 0x38, 0x77, 0x6d, 0x68, 0x72, 0x6e, 0x5a, 0x45, 0x45, 0x32, 0x36, 0x63, 0x4c, 0x55, 0x51, 0x35, 0x76, 0x50, 0x6e, 0x48, 0x4f, 0x36, 0x52, 0x59, 0x50, 0x55, 0x47, 0x39, 0x74, 0x4d, 0x4a, 0x4a, 0x6f, 0x38, 0x67, 0x4e, 0x30, 0x70, 0x63, 0x76, 0x0a, 0x42, 0x32, 0x56, 0x53, 0x41, 0x4b, 0x64, 0x75, 0x79, 0x4b, 0x39, 0x6f, 0x37, 0x50, 0x51, 0x55, 0x6c, 0x72, 0x5a, 0x58, 0x48, 0x31, 0x62, 0x44, 0x4f, 0x5a, 0x38, 0x72, 0x62, 0x65, 0x54, 0x7a, 0x50, 0x76, 0x59, 0x31, 0x5a, 0x4e, 0x6f, 0x4d, 0x48, 0x4b, 0x47, 0x45, 0x53, 0x79, 0x39, 0x4c, 0x53, 0x2b, 0x49, 0x73, 0x4a, 0x4a, 0x31, 0x74, 0x6b, 0x30, 0x44, 0x72, 0x74, 0x53, 0x4f, 0x4f, 0x4d, 0x73, 0x70, 0x76, 0x52, 0x64, 0x4f, 0x6f, 0x69, 0x58, 0x73, 0x65, 0x0a, 0x7a, 0x78, 0x37, 0x36, 0x57, 0x30, 0x4f, 0x4c, 0x7a, 0x63, 0x32, 0x6f, 0x44, 0x32, 0x72, 0x4b, 0x44, 0x46, 0x36, 0x35, 0x6e, 0x6b, 0x65, 0x50, 0x38, 0x4e, 0x6d, 0x32, 0x43, 0x67, 0x74, 0x59, 0x5a, 0x52, 0x63, 0x7a, 0x75, 0x53, 0x50, 0x6b, 0x64, 0x78, 0x6c, 0x39, 0x79, 0x30, 0x6f, 0x75, 0x6b, 0x6e, 0x74, 0x50, 0x4c, 0x78, 0x42, 0x33, 0x73, 0x59, 0x30, 0x76, 0x61, 0x4a, 0x78, 0x69, 0x7a, 0x4f, 0x42, 0x51, 0x2b, 0x4f, 0x79, 0x52, 0x70, 0x31, 0x52, 0x4d, 0x0a, 0x56, 0x77, 0x6e, 0x56, 0x64, 0x6d, 0x50, 0x46, 0x36, 0x47, 0x55, 0x65, 0x37, 0x6d, 0x31, 0x71, 0x7a, 0x77, 0x6d, 0x64, 0x2b, 0x6e, 0x78, 0x50, 0x72, 0x57, 0x41, 0x49, 0x2f, 0x56, 0x61, 0x5a, 0x44, 0x78, 0x55, 0x73, 0x65, 0x36, 0x6d, 0x41, 0x71, 0x34, 0x78, 0x68, 0x6a, 0x30, 0x6f, 0x48, 0x64, 0x6b, 0x4c, 0x65, 0x50, 0x66, 0x54, 0x64, 0x73, 0x69, 0x51, 0x7a, 0x57, 0x37, 0x69, 0x31, 0x6f, 0x30, 0x54, 0x4a, 0x72, 0x48, 0x39, 0x33, 0x50, 0x42, 0x30, 0x6a, 0x0a, 0x37, 0x49, 0x4b, 0x70, 0x70, 0x75, 0x4c, 0x49, 0x42, 0x6b, 0x77, 0x43, 0x2f, 0x71, 0x78, 0x63, 0x6d, 0x5a, 0x6b, 0x4c, 0x4c, 0x78, 0x43, 0x4b, 0x70, 0x76, 0x52, 0x2f, 0x31, 0x59, 0x64, 0x30, 0x44, 0x56, 0x6c, 0x4a, 0x52, 0x66, 0x62, 0x77, 0x63, 0x56, 0x77, 0x35, 0x4b, 0x64, 0x61, 0x2f, 0x53, 0x69, 0x4f, 0x4c, 0x39, 0x56, 0x38, 0x42, 0x59, 0x39, 0x4b, 0x48, 0x63, 0x79, 0x69, 0x31, 0x53, 0x77, 0x72, 0x31, 0x2b, 0x4b, 0x75, 0x43, 0x4c, 0x48, 0x35, 0x7a, 0x0a, 0x4a, 0x54, 0x49, 0x64, 0x43, 0x32, 0x4d, 0x4b, 0x46, 0x34, 0x45, 0x41, 0x2f, 0x37, 0x5a, 0x32, 0x58, 0x75, 0x65, 0x30, 0x73, 0x55, 0x44, 0x4b, 0x49, 0x62, 0x76, 0x56, 0x67, 0x46, 0x48, 0x6c, 0x53, 0x46, 0x4a, 0x6e, 0x4c, 0x4e, 0x4a, 0x68, 0x69, 0x51, 0x63, 0x4e, 0x44, 0x38, 0x35, 0x43, 0x64, 0x38, 0x42, 0x45, 0x63, 0x35, 0x78, 0x45, 0x55, 0x4b, 0x44, 0x62, 0x45, 0x41, 0x6f, 0x74, 0x6c, 0x52, 0x79, 0x42, 0x72, 0x2b, 0x51, 0x63, 0x35, 0x52, 0x51, 0x65, 0x0a, 0x38, 0x54, 0x5a, 0x42, 0x41, 0x51, 0x49, 0x76, 0x66, 0x58, 0x4f, 0x6e, 0x33, 0x6b, 0x4c, 0x4d, 0x54, 0x4f, 0x6d, 0x4a, 0x44, 0x56, 0x62, 0x33, 0x6e, 0x35, 0x48, 0x55, 0x41, 0x38, 0x5a, 0x73, 0x79, 0x59, 0x2f, 0x62, 0x32, 0x42, 0x7a, 0x67, 0x51, 0x4a, 0x68, 0x64, 0x5a, 0x70, 0x6d, 0x59, 0x67, 0x47, 0x34, 0x74, 0x2f, 0x77, 0x48, 0x46, 0x7a, 0x73, 0x74, 0x47, 0x48, 0x36, 0x77, 0x43, 0x78, 0x6b, 0x50, 0x6d, 0x72, 0x71, 0x4b, 0x45, 0x50, 0x4d, 0x56, 0x4f, 0x0a, 0x48, 0x6a, 0x31, 0x74, 0x79, 0x52, 0x52, 0x4d, 0x34, 0x79, 0x35, 0x42, 0x75, 0x38, 0x6f, 0x35, 0x76, 0x7a, 0x59, 0x38, 0x4b, 0x68, 0x6d, 0x71, 0x51, 0x59, 0x64, 0x4f, 0x70, 0x63, 0x35, 0x4c, 0x4d, 0x6e, 0x6e, 0x64, 0x6b, 0x45, 0x6c, 0x2f, 0x41, 0x67, 0x4d, 0x42, 0x41, 0x41, 0x47, 0x6a, 0x59, 0x7a, 0x42, 0x68, 0x4d, 0x42, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x49, 0x77, 0x51, 0x59, 0x4d, 0x42, 0x61, 0x41, 0x46, 0x4a, 0x78, 0x66, 0x30, 0x47, 0x78, 0x6a, 0x0a, 0x6f, 0x31, 0x2b, 0x54, 0x79, 0x70, 0x4f, 0x59, 0x43, 0x4b, 0x32, 0x4d, 0x68, 0x36, 0x55, 0x73, 0x58, 0x4d, 0x45, 0x33, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x53, 0x63, 0x58, 0x39, 0x42, 0x73, 0x59, 0x36, 0x4e, 0x66, 0x6b, 0x38, 0x71, 0x54, 0x6d, 0x41, 0x69, 0x74, 0x6a, 0x49, 0x65, 0x6c, 0x4c, 0x46, 0x7a, 0x42, 0x4e, 0x7a, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x0a, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x59, 0x59, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x45, 0x41, 0x54, 0x68, 0x36, 0x35, 0x69, 0x73, 0x61, 0x67, 0x6d, 0x44, 0x39, 0x75, 0x77, 0x32, 0x6e, 0x41, 0x61, 0x6c, 0x78, 0x4a, 0x0a, 0x55, 0x71, 0x7a, 0x4c, 0x4b, 0x31, 0x31, 0x34, 0x4f, 0x4d, 0x48, 0x56, 0x56, 0x49, 0x53, 0x66, 0x6b, 0x2f, 0x43, 0x48, 0x47, 0x54, 0x30, 0x73, 0x5a, 0x6f, 0x6e, 0x72, 0x44, 0x55, 0x4c, 0x38, 0x7a, 0x50, 0x42, 0x31, 0x68, 0x54, 0x2b, 0x4c, 0x39, 0x49, 0x42, 0x64, 0x65, 0x65, 0x55, 0x58, 0x5a, 0x37, 0x30, 0x31, 0x67, 0x75, 0x4c, 0x79, 0x50, 0x49, 0x35, 0x39, 0x57, 0x7a, 0x62, 0x4c, 0x57, 0x6f, 0x41, 0x41, 0x4b, 0x66, 0x4c, 0x4f, 0x4b, 0x79, 0x7a, 0x78, 0x0a, 0x6a, 0x36, 0x70, 0x74, 0x42, 0x5a, 0x4e, 0x73, 0x63, 0x73, 0x64, 0x57, 0x36, 0x39, 0x39, 0x51, 0x49, 0x79, 0x6a, 0x6c, 0x52, 0x52, 0x41, 0x39, 0x36, 0x47, 0x65, 0x6a, 0x72, 0x77, 0x35, 0x56, 0x44, 0x35, 0x41, 0x4a, 0x59, 0x75, 0x39, 0x4c, 0x57, 0x61, 0x4c, 0x32, 0x55, 0x2f, 0x48, 0x41, 0x4e, 0x65, 0x51, 0x76, 0x77, 0x53, 0x53, 0x39, 0x65, 0x53, 0x39, 0x4f, 0x49, 0x43, 0x49, 0x37, 0x2f, 0x52, 0x6f, 0x67, 0x73, 0x4b, 0x51, 0x4f, 0x4c, 0x48, 0x44, 0x74, 0x0a, 0x64, 0x44, 0x2b, 0x34, 0x45, 0x35, 0x55, 0x47, 0x55, 0x63, 0x6a, 0x6f, 0x68, 0x79, 0x62, 0x4b, 0x70, 0x46, 0x74, 0x71, 0x46, 0x69, 0x47, 0x53, 0x33, 0x58, 0x4e, 0x67, 0x6e, 0x68, 0x41, 0x59, 0x33, 0x6a, 0x79, 0x42, 0x36, 0x75, 0x67, 0x59, 0x77, 0x33, 0x79, 0x4a, 0x38, 0x6f, 0x74, 0x51, 0x50, 0x72, 0x30, 0x52, 0x34, 0x68, 0x55, 0x44, 0x71, 0x44, 0x5a, 0x39, 0x4d, 0x77, 0x46, 0x73, 0x53, 0x42, 0x58, 0x58, 0x69, 0x4a, 0x43, 0x5a, 0x42, 0x4d, 0x58, 0x4d, 0x0a, 0x35, 0x67, 0x66, 0x30, 0x76, 0x50, 0x53, 0x51, 0x37, 0x52, 0x50, 0x69, 0x36, 0x6f, 0x76, 0x44, 0x6a, 0x36, 0x4d, 0x7a, 0x44, 0x38, 0x45, 0x70, 0x54, 0x42, 0x4e, 0x4f, 0x32, 0x68, 0x56, 0x57, 0x63, 0x58, 0x4e, 0x79, 0x67, 0x6c, 0x44, 0x32, 0x6d, 0x6a, 0x4e, 0x38, 0x6f, 0x72, 0x47, 0x6f, 0x47, 0x6a, 0x52, 0x30, 0x5a, 0x56, 0x7a, 0x4f, 0x30, 0x65, 0x75, 0x72, 0x55, 0x2b, 0x41, 0x61, 0x67, 0x4e, 0x6a, 0x71, 0x4f, 0x6b, 0x6e, 0x6b, 0x4a, 0x6a, 0x43, 0x62, 0x0a, 0x35, 0x52, 0x79, 0x4b, 0x71, 0x4b, 0x6b, 0x56, 0x4d, 0x6f, 0x61, 0x5a, 0x6b, 0x67, 0x6f, 0x51, 0x49, 0x31, 0x59, 0x53, 0x34, 0x50, 0x62, 0x4f, 0x54, 0x4f, 0x4b, 0x37, 0x76, 0x74, 0x75, 0x4e, 0x6b, 0x6e, 0x4d, 0x42, 0x5a, 0x69, 0x39, 0x69, 0x50, 0x72, 0x4a, 0x79, 0x4a, 0x30, 0x55, 0x32, 0x37, 0x55, 0x31, 0x57, 0x34, 0x35, 0x65, 0x5a, 0x2f, 0x7a, 0x6f, 0x31, 0x50, 0x71, 0x56, 0x55, 0x53, 0x6c, 0x4a, 0x5a, 0x53, 0x32, 0x44, 0x62, 0x37, 0x76, 0x35, 0x34, 0x0a, 0x45, 0x58, 0x39, 0x4b, 0x33, 0x42, 0x52, 0x35, 0x59, 0x4c, 0x5a, 0x72, 0x5a, 0x41, 0x50, 0x62, 0x46, 0x59, 0x50, 0x68, 0x6f, 0x72, 0x37, 0x32, 0x49, 0x35, 0x64, 0x51, 0x38, 0x41, 0x6b, 0x7a, 0x4e, 0x71, 0x64, 0x78, 0x6c, 0x69, 0x58, 0x7a, 0x75, 0x55, 0x4a, 0x39, 0x32, 0x7a, 0x67, 0x2f, 0x4c, 0x46, 0x69, 0x73, 0x36, 0x45, 0x4c, 0x68, 0x44, 0x74, 0x6a, 0x54, 0x4f, 0x30, 0x77, 0x75, 0x67, 0x75, 0x6d, 0x44, 0x4c, 0x6d, 0x73, 0x78, 0x32, 0x64, 0x31, 0x48, 0x0a, 0x68, 0x6b, 0x39, 0x74, 0x6c, 0x35, 0x45, 0x75, 0x54, 0x2b, 0x49, 0x6f, 0x63, 0x54, 0x55, 0x57, 0x30, 0x66, 0x4a, 0x7a, 0x2f, 0x69, 0x55, 0x72, 0x42, 0x30, 0x63, 0x6b, 0x59, 0x79, 0x66, 0x49, 0x2b, 0x50, 0x62, 0x5a, 0x61, 0x2f, 0x77, 0x53, 0x4d, 0x56, 0x59, 0x49, 0x77, 0x46, 0x4e, 0x43, 0x72, 0x35, 0x7a, 0x51, 0x4d, 0x33, 0x37, 0x38, 0x42, 0x76, 0x41, 0x78, 0x52, 0x41, 0x4d, 0x55, 0x38, 0x56, 0x6a, 0x71, 0x38, 0x6d, 0x6f, 0x4e, 0x71, 0x52, 0x47, 0x79, 0x0a, 0x67, 0x37, 0x37, 0x46, 0x47, 0x72, 0x38, 0x48, 0x36, 0x6c, 0x6e, 0x63, 0x6f, 0x34, 0x67, 0x31, 0x37, 0x35, 0x78, 0x32, 0x4d, 0x6a, 0x78, 0x4e, 0x42, 0x69, 0x4c, 0x4f, 0x46, 0x65, 0x58, 0x64, 0x6e, 0x74, 0x69, 0x50, 0x32, 0x74, 0x37, 0x53, 0x78, 0x44, 0x6e, 0x6c, 0x46, 0x34, 0x48, 0x50, 0x4f, 0x45, 0x66, 0x72, 0x66, 0x34, 0x68, 0x74, 0x57, 0x52, 0x76, 0x66, 0x6e, 0x30, 0x49, 0x55, 0x72, 0x6e, 0x37, 0x50, 0x71, 0x4c, 0x42, 0x6d, 0x5a, 0x64, 0x6f, 0x33, 0x0a, 0x72, 0x35, 0x2b, 0x71, 0x50, 0x65, 0x6f, 0x6f, 0x74, 0x74, 0x37, 0x56, 0x4d, 0x56, 0x67, 0x57, 0x67, 0x6c, 0x76, 0x71, 0x75, 0x78, 0x6c, 0x31, 0x41, 0x6e, 0x4d, 0x61, 0x79, 0x6b, 0x67, 0x61, 0x49, 0x5a, 0x4f, 0x51, 0x43, 0x6f, 0x36, 0x54, 0x68, 0x4b, 0x64, 0x39, 0x4f, 0x79, 0x4d, 0x59, 0x6b, 0x6f, 0x6d, 0x67, 0x6a, 0x61, 0x77, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x43, 0x65, 0x72, 0x74, 0x75, 0x6d, 0x20, 0x45, 0x43, 0x2d, 0x33, 0x38, 0x34, 0x20, 0x43, 0x41, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x5a, 0x54, 0x43, 0x43, 0x41, 0x65, 0x75, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x65, 0x49, 0x38, 0x6e, 0x58, 0x49, 0x45, 0x53, 0x55, 0x69, 0x43, 0x6c, 0x42, 0x4e, 0x41, 0x74, 0x33, 0x62, 0x70, 0x7a, 0x39, 0x44, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x7a, 0x42, 0x30, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x51, 0x0a, 0x54, 0x44, 0x45, 0x68, 0x4d, 0x42, 0x38, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x59, 0x51, 0x58, 0x4e, 0x7a, 0x5a, 0x57, 0x4e, 0x76, 0x49, 0x45, 0x52, 0x68, 0x64, 0x47, 0x45, 0x67, 0x55, 0x33, 0x6c, 0x7a, 0x64, 0x47, 0x56, 0x74, 0x63, 0x79, 0x42, 0x54, 0x4c, 0x6b, 0x45, 0x75, 0x4d, 0x53, 0x63, 0x77, 0x4a, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x78, 0x35, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x64, 0x57, 0x30, 0x67, 0x51, 0x32, 0x56, 0x79, 0x0a, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x69, 0x42, 0x42, 0x64, 0x58, 0x52, 0x6f, 0x62, 0x33, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x78, 0x47, 0x54, 0x41, 0x58, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x45, 0x45, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x31, 0x62, 0x53, 0x42, 0x46, 0x51, 0x79, 0x30, 0x7a, 0x4f, 0x44, 0x51, 0x67, 0x51, 0x30, 0x45, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x54, 0x67, 0x77, 0x4d, 0x7a, 0x49, 0x32, 0x0a, 0x4d, 0x44, 0x63, 0x79, 0x4e, 0x44, 0x55, 0x30, 0x57, 0x68, 0x63, 0x4e, 0x4e, 0x44, 0x4d, 0x77, 0x4d, 0x7a, 0x49, 0x32, 0x4d, 0x44, 0x63, 0x79, 0x4e, 0x44, 0x55, 0x30, 0x57, 0x6a, 0x42, 0x30, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x51, 0x54, 0x44, 0x45, 0x68, 0x4d, 0x42, 0x38, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x59, 0x51, 0x58, 0x4e, 0x7a, 0x5a, 0x57, 0x4e, 0x76, 0x49, 0x45, 0x52, 0x68, 0x0a, 0x64, 0x47, 0x45, 0x67, 0x55, 0x33, 0x6c, 0x7a, 0x64, 0x47, 0x56, 0x74, 0x63, 0x79, 0x42, 0x54, 0x4c, 0x6b, 0x45, 0x75, 0x4d, 0x53, 0x63, 0x77, 0x4a, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x78, 0x35, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x64, 0x57, 0x30, 0x67, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x69, 0x42, 0x42, 0x64, 0x58, 0x52, 0x6f, 0x62, 0x33, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x78, 0x0a, 0x47, 0x54, 0x41, 0x58, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x45, 0x45, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x31, 0x62, 0x53, 0x42, 0x46, 0x51, 0x79, 0x30, 0x7a, 0x4f, 0x44, 0x51, 0x67, 0x51, 0x30, 0x45, 0x77, 0x64, 0x6a, 0x41, 0x51, 0x42, 0x67, 0x63, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x49, 0x42, 0x42, 0x67, 0x55, 0x72, 0x67, 0x51, 0x51, 0x41, 0x49, 0x67, 0x4e, 0x69, 0x41, 0x41, 0x54, 0x45, 0x4b, 0x49, 0x36, 0x72, 0x47, 0x46, 0x74, 0x71, 0x0a, 0x76, 0x6d, 0x35, 0x6b, 0x4e, 0x32, 0x50, 0x6b, 0x7a, 0x65, 0x79, 0x72, 0x4f, 0x76, 0x66, 0x4d, 0x6f, 0x62, 0x67, 0x4f, 0x67, 0x6b, 0x6e, 0x58, 0x68, 0x69, 0x6d, 0x66, 0x6f, 0x5a, 0x54, 0x79, 0x34, 0x32, 0x42, 0x34, 0x6d, 0x49, 0x46, 0x34, 0x42, 0x6b, 0x33, 0x79, 0x37, 0x4a, 0x6f, 0x4f, 0x56, 0x32, 0x43, 0x44, 0x6e, 0x37, 0x54, 0x6d, 0x46, 0x79, 0x38, 0x61, 0x73, 0x31, 0x30, 0x43, 0x57, 0x34, 0x6b, 0x6a, 0x50, 0x4d, 0x49, 0x52, 0x42, 0x53, 0x71, 0x6e, 0x0a, 0x69, 0x42, 0x4d, 0x59, 0x38, 0x31, 0x43, 0x45, 0x31, 0x37, 0x30, 0x30, 0x4c, 0x43, 0x65, 0x4a, 0x56, 0x66, 0x2f, 0x4f, 0x54, 0x4f, 0x66, 0x66, 0x70, 0x68, 0x38, 0x6f, 0x78, 0x50, 0x42, 0x55, 0x77, 0x37, 0x6c, 0x38, 0x74, 0x31, 0x4f, 0x74, 0x36, 0x38, 0x4b, 0x6a, 0x51, 0x6a, 0x42, 0x41, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x48, 0x51, 0x59, 0x44, 0x0a, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x49, 0x30, 0x47, 0x5a, 0x6e, 0x51, 0x6b, 0x64, 0x6a, 0x72, 0x7a, 0x69, 0x66, 0x65, 0x38, 0x31, 0x72, 0x31, 0x48, 0x66, 0x53, 0x2b, 0x38, 0x45, 0x46, 0x39, 0x4c, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x42, 0x6a, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x77, 0x4e, 0x6f, 0x0a, 0x41, 0x44, 0x42, 0x6c, 0x41, 0x6a, 0x41, 0x44, 0x56, 0x53, 0x32, 0x6d, 0x35, 0x68, 0x6a, 0x45, 0x66, 0x4f, 0x2f, 0x4a, 0x55, 0x47, 0x37, 0x42, 0x4a, 0x77, 0x2b, 0x63, 0x68, 0x36, 0x39, 0x75, 0x31, 0x52, 0x73, 0x49, 0x47, 0x4c, 0x32, 0x53, 0x4b, 0x63, 0x48, 0x76, 0x6c, 0x4a, 0x46, 0x34, 0x30, 0x6a, 0x6f, 0x63, 0x56, 0x59, 0x6c, 0x69, 0x35, 0x52, 0x73, 0x4a, 0x48, 0x72, 0x70, 0x6b, 0x61, 0x2f, 0x46, 0x32, 0x74, 0x4e, 0x51, 0x43, 0x4d, 0x51, 0x43, 0x30, 0x0a, 0x51, 0x6f, 0x53, 0x5a, 0x2f, 0x36, 0x76, 0x6e, 0x6e, 0x76, 0x75, 0x52, 0x6c, 0x79, 0x64, 0x64, 0x33, 0x4c, 0x42, 0x62, 0x4d, 0x48, 0x48, 0x4f, 0x58, 0x6a, 0x67, 0x61, 0x61, 0x74, 0x6b, 0x6c, 0x35, 0x2b, 0x72, 0x33, 0x59, 0x5a, 0x4a, 0x57, 0x2b, 0x4f, 0x72, 0x61, 0x4e, 0x73, 0x4b, 0x48, 0x5a, 0x5a, 0x59, 0x75, 0x63, 0x69, 0x55, 0x76, 0x66, 0x39, 0x2f, 0x44, 0x45, 0x38, 0x6b, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x43, 0x65, 0x72, 0x74, 0x75, 0x6d, 0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x77, 0x44, 0x43, 0x43, 0x41, 0x36, 0x69, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x48, 0x72, 0x39, 0x5a, 0x55, 0x4c, 0x6a, 0x4a, 0x67, 0x44, 0x64, 0x4d, 0x42, 0x76, 0x66, 0x72, 0x56, 0x55, 0x2b, 0x31, 0x37, 0x54, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x30, 0x46, 0x41, 0x44, 0x42, 0x36, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x0a, 0x45, 0x77, 0x4a, 0x51, 0x54, 0x44, 0x45, 0x68, 0x4d, 0x42, 0x38, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x59, 0x51, 0x58, 0x4e, 0x7a, 0x5a, 0x57, 0x4e, 0x76, 0x49, 0x45, 0x52, 0x68, 0x64, 0x47, 0x45, 0x67, 0x55, 0x33, 0x6c, 0x7a, 0x64, 0x47, 0x56, 0x74, 0x63, 0x79, 0x42, 0x54, 0x4c, 0x6b, 0x45, 0x75, 0x4d, 0x53, 0x63, 0x77, 0x4a, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x78, 0x35, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x64, 0x57, 0x30, 0x67, 0x0a, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x69, 0x42, 0x42, 0x64, 0x58, 0x52, 0x6f, 0x62, 0x33, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x78, 0x48, 0x7a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x46, 0x6b, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x31, 0x62, 0x53, 0x42, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x47, 0x56, 0x6b, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x77, 0x0a, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x54, 0x67, 0x77, 0x4d, 0x7a, 0x45, 0x32, 0x4d, 0x54, 0x49, 0x78, 0x4d, 0x44, 0x45, 0x7a, 0x57, 0x68, 0x63, 0x4e, 0x4e, 0x44, 0x4d, 0x77, 0x4d, 0x7a, 0x45, 0x32, 0x4d, 0x54, 0x49, 0x78, 0x4d, 0x44, 0x45, 0x7a, 0x57, 0x6a, 0x42, 0x36, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x51, 0x54, 0x44, 0x45, 0x68, 0x4d, 0x42, 0x38, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x59, 0x0a, 0x51, 0x58, 0x4e, 0x7a, 0x5a, 0x57, 0x4e, 0x76, 0x49, 0x45, 0x52, 0x68, 0x64, 0x47, 0x45, 0x67, 0x55, 0x33, 0x6c, 0x7a, 0x64, 0x47, 0x56, 0x74, 0x63, 0x79, 0x42, 0x54, 0x4c, 0x6b, 0x45, 0x75, 0x4d, 0x53, 0x63, 0x77, 0x4a, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x78, 0x35, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x64, 0x57, 0x30, 0x67, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x69, 0x42, 0x42, 0x0a, 0x64, 0x58, 0x52, 0x6f, 0x62, 0x33, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x78, 0x48, 0x7a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x46, 0x6b, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x31, 0x62, 0x53, 0x42, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x47, 0x56, 0x6b, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x77, 0x67, 0x67, 0x49, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x0a, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x49, 0x4b, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x44, 0x52, 0x4c, 0x59, 0x36, 0x37, 0x74, 0x7a, 0x62, 0x71, 0x62, 0x54, 0x65, 0x52, 0x6e, 0x30, 0x36, 0x54, 0x70, 0x77, 0x58, 0x6b, 0x4b, 0x51, 0x4d, 0x6c, 0x7a, 0x68, 0x79, 0x43, 0x39, 0x33, 0x79, 0x5a, 0x6e, 0x30, 0x45, 0x47, 0x7a, 0x65, 0x32, 0x6a, 0x75, 0x73, 0x44, 0x62, 0x43, 0x53, 0x7a, 0x42, 0x66, 0x4e, 0x38, 0x70, 0x0a, 0x66, 0x6b, 0x74, 0x6c, 0x4c, 0x35, 0x4f, 0x6e, 0x31, 0x41, 0x46, 0x72, 0x41, 0x79, 0x67, 0x59, 0x6f, 0x39, 0x69, 0x64, 0x42, 0x63, 0x45, 0x71, 0x32, 0x45, 0x58, 0x78, 0x6b, 0x64, 0x37, 0x66, 0x4f, 0x39, 0x43, 0x41, 0x41, 0x6f, 0x7a, 0x50, 0x4f, 0x41, 0x2f, 0x71, 0x70, 0x31, 0x78, 0x34, 0x45, 0x61, 0x54, 0x42, 0x79, 0x49, 0x56, 0x63, 0x4a, 0x64, 0x50, 0x54, 0x73, 0x75, 0x63, 0x6c, 0x7a, 0x78, 0x46, 0x55, 0x6c, 0x36, 0x73, 0x31, 0x77, 0x42, 0x35, 0x32, 0x0a, 0x48, 0x4f, 0x38, 0x41, 0x55, 0x35, 0x38, 0x35, 0x33, 0x42, 0x53, 0x6c, 0x4c, 0x43, 0x49, 0x6c, 0x73, 0x33, 0x4a, 0x79, 0x2f, 0x49, 0x32, 0x7a, 0x35, 0x54, 0x34, 0x49, 0x48, 0x68, 0x51, 0x71, 0x4e, 0x77, 0x75, 0x49, 0x50, 0x4d, 0x71, 0x77, 0x39, 0x4d, 0x6a, 0x43, 0x6f, 0x61, 0x36, 0x38, 0x77, 0x62, 0x34, 0x70, 0x5a, 0x31, 0x58, 0x69, 0x2f, 0x4b, 0x31, 0x5a, 0x58, 0x50, 0x36, 0x39, 0x56, 0x79, 0x79, 0x77, 0x6b, 0x49, 0x33, 0x43, 0x37, 0x54, 0x65, 0x32, 0x0a, 0x66, 0x4a, 0x6d, 0x49, 0x74, 0x64, 0x55, 0x44, 0x6d, 0x6a, 0x30, 0x56, 0x44, 0x54, 0x30, 0x36, 0x71, 0x4b, 0x68, 0x46, 0x38, 0x4a, 0x56, 0x4f, 0x4a, 0x56, 0x6b, 0x64, 0x7a, 0x5a, 0x68, 0x70, 0x75, 0x39, 0x50, 0x4d, 0x4d, 0x73, 0x6d, 0x4e, 0x37, 0x34, 0x48, 0x2b, 0x72, 0x58, 0x32, 0x4a, 0x75, 0x37, 0x70, 0x67, 0x45, 0x38, 0x70, 0x6c, 0x6c, 0x57, 0x65, 0x67, 0x38, 0x78, 0x6e, 0x32, 0x41, 0x31, 0x62, 0x55, 0x61, 0x74, 0x4d, 0x6e, 0x34, 0x71, 0x47, 0x74, 0x0a, 0x67, 0x2f, 0x42, 0x4b, 0x45, 0x69, 0x4a, 0x33, 0x48, 0x41, 0x56, 0x7a, 0x34, 0x68, 0x6c, 0x78, 0x51, 0x73, 0x44, 0x73, 0x64, 0x55, 0x61, 0x61, 0x6b, 0x46, 0x6a, 0x67, 0x61, 0x6f, 0x34, 0x72, 0x70, 0x55, 0x59, 0x77, 0x42, 0x49, 0x34, 0x5a, 0x73, 0x68, 0x66, 0x6a, 0x76, 0x71, 0x6d, 0x36, 0x66, 0x31, 0x62, 0x78, 0x4a, 0x41, 0x50, 0x58, 0x73, 0x69, 0x45, 0x6f, 0x64, 0x67, 0x34, 0x32, 0x4d, 0x45, 0x78, 0x35, 0x31, 0x55, 0x47, 0x61, 0x6d, 0x71, 0x69, 0x34, 0x0a, 0x4e, 0x62, 0x6f, 0x4d, 0x4f, 0x76, 0x4a, 0x45, 0x47, 0x79, 0x43, 0x49, 0x39, 0x38, 0x55, 0x6c, 0x31, 0x7a, 0x33, 0x47, 0x34, 0x7a, 0x35, 0x44, 0x33, 0x59, 0x66, 0x2b, 0x78, 0x4f, 0x72, 0x31, 0x55, 0x7a, 0x35, 0x4d, 0x5a, 0x66, 0x38, 0x37, 0x53, 0x73, 0x74, 0x34, 0x57, 0x6d, 0x73, 0x58, 0x58, 0x77, 0x33, 0x48, 0x77, 0x30, 0x39, 0x4f, 0x6d, 0x69, 0x71, 0x69, 0x37, 0x56, 0x64, 0x4e, 0x49, 0x75, 0x4a, 0x47, 0x6d, 0x6a, 0x38, 0x50, 0x6b, 0x54, 0x51, 0x6b, 0x0a, 0x66, 0x56, 0x58, 0x6a, 0x6a, 0x4a, 0x55, 0x33, 0x30, 0x78, 0x72, 0x77, 0x43, 0x53, 0x73, 0x73, 0x30, 0x73, 0x6d, 0x4e, 0x74, 0x41, 0x30, 0x41, 0x71, 0x32, 0x63, 0x70, 0x4b, 0x4e, 0x67, 0x42, 0x39, 0x52, 0x6b, 0x45, 0x74, 0x68, 0x32, 0x2b, 0x64, 0x76, 0x35, 0x79, 0x58, 0x4d, 0x53, 0x46, 0x79, 0x74, 0x4b, 0x41, 0x51, 0x64, 0x38, 0x46, 0x71, 0x4b, 0x50, 0x56, 0x68, 0x4a, 0x42, 0x50, 0x43, 0x2f, 0x50, 0x67, 0x50, 0x35, 0x73, 0x5a, 0x30, 0x6a, 0x65, 0x4a, 0x0a, 0x50, 0x2f, 0x4a, 0x37, 0x55, 0x68, 0x79, 0x4d, 0x39, 0x75, 0x48, 0x33, 0x50, 0x41, 0x65, 0x58, 0x6a, 0x41, 0x36, 0x69, 0x57, 0x59, 0x45, 0x4d, 0x73, 0x70, 0x41, 0x39, 0x30, 0x2b, 0x4e, 0x5a, 0x52, 0x75, 0x30, 0x50, 0x71, 0x61, 0x66, 0x65, 0x67, 0x47, 0x74, 0x61, 0x71, 0x67, 0x65, 0x32, 0x47, 0x63, 0x75, 0x38, 0x56, 0x2f, 0x4f, 0x58, 0x49, 0x58, 0x6f, 0x4d, 0x73, 0x53, 0x74, 0x30, 0x50, 0x75, 0x76, 0x61, 0x70, 0x32, 0x63, 0x74, 0x54, 0x4d, 0x53, 0x59, 0x0a, 0x6e, 0x6a, 0x59, 0x4a, 0x64, 0x6d, 0x5a, 0x6d, 0x2f, 0x42, 0x6f, 0x2f, 0x36, 0x6b, 0x68, 0x55, 0x48, 0x4c, 0x34, 0x77, 0x76, 0x59, 0x42, 0x51, 0x76, 0x33, 0x79, 0x31, 0x7a, 0x67, 0x44, 0x32, 0x44, 0x47, 0x48, 0x5a, 0x35, 0x79, 0x51, 0x44, 0x34, 0x4f, 0x4d, 0x42, 0x67, 0x51, 0x36, 0x39, 0x32, 0x49, 0x55, 0x30, 0x69, 0x4c, 0x32, 0x79, 0x4e, 0x71, 0x68, 0x37, 0x58, 0x41, 0x6a, 0x6c, 0x52, 0x49, 0x43, 0x4d, 0x62, 0x2f, 0x67, 0x76, 0x31, 0x53, 0x48, 0x4b, 0x0a, 0x48, 0x52, 0x7a, 0x51, 0x2b, 0x38, 0x53, 0x31, 0x68, 0x39, 0x45, 0x36, 0x54, 0x73, 0x64, 0x32, 0x74, 0x54, 0x56, 0x49, 0x74, 0x51, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x53, 0x4d, 0x2b, 0x78, 0x78, 0x31, 0x0a, 0x76, 0x41, 0x4c, 0x54, 0x6e, 0x30, 0x34, 0x75, 0x53, 0x4e, 0x6e, 0x35, 0x59, 0x46, 0x53, 0x71, 0x78, 0x4c, 0x4e, 0x50, 0x2b, 0x6a, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x51, 0x59, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4e, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x42, 0x41, 0x45, 0x69, 0x69, 0x31, 0x51, 0x41, 0x4c, 0x0a, 0x4c, 0x74, 0x41, 0x2f, 0x76, 0x42, 0x7a, 0x56, 0x74, 0x56, 0x52, 0x4a, 0x48, 0x6c, 0x70, 0x72, 0x39, 0x4f, 0x54, 0x79, 0x34, 0x45, 0x41, 0x33, 0x34, 0x4d, 0x77, 0x55, 0x65, 0x37, 0x6e, 0x4a, 0x2b, 0x6a, 0x57, 0x31, 0x64, 0x52, 0x65, 0x54, 0x61, 0x67, 0x56, 0x70, 0x68, 0x5a, 0x7a, 0x4e, 0x54, 0x78, 0x6c, 0x34, 0x57, 0x78, 0x6d, 0x42, 0x38, 0x32, 0x4d, 0x2b, 0x77, 0x38, 0x35, 0x62, 0x6a, 0x2f, 0x55, 0x76, 0x58, 0x67, 0x46, 0x32, 0x45, 0x7a, 0x38, 0x73, 0x0a, 0x41, 0x4c, 0x6e, 0x4e, 0x6c, 0x6c, 0x49, 0x35, 0x53, 0x57, 0x30, 0x45, 0x54, 0x73, 0x58, 0x70, 0x44, 0x34, 0x59, 0x4e, 0x34, 0x66, 0x71, 0x7a, 0x58, 0x34, 0x49, 0x53, 0x38, 0x54, 0x72, 0x4f, 0x5a, 0x67, 0x59, 0x6b, 0x4e, 0x43, 0x76, 0x6f, 0x7a, 0x4d, 0x72, 0x6e, 0x61, 0x64, 0x79, 0x48, 0x6e, 0x63, 0x49, 0x30, 0x31, 0x33, 0x6e, 0x52, 0x30, 0x33, 0x65, 0x34, 0x71, 0x6c, 0x6c, 0x59, 0x2f, 0x70, 0x30, 0x6d, 0x2b, 0x6a, 0x69, 0x47, 0x50, 0x70, 0x32, 0x4b, 0x0a, 0x68, 0x32, 0x52, 0x58, 0x35, 0x52, 0x63, 0x36, 0x34, 0x76, 0x6d, 0x4e, 0x75, 0x65, 0x4d, 0x7a, 0x65, 0x4d, 0x47, 0x51, 0x32, 0x4c, 0x6a, 0x64, 0x74, 0x34, 0x4e, 0x52, 0x35, 0x4d, 0x54, 0x4d, 0x49, 0x39, 0x55, 0x47, 0x66, 0x4f, 0x5a, 0x52, 0x30, 0x38, 0x30, 0x30, 0x4d, 0x63, 0x44, 0x32, 0x52, 0x72, 0x73, 0x4c, 0x72, 0x66, 0x77, 0x39, 0x45, 0x41, 0x55, 0x71, 0x4f, 0x30, 0x71, 0x52, 0x4a, 0x65, 0x36, 0x4d, 0x31, 0x49, 0x53, 0x48, 0x67, 0x43, 0x71, 0x38, 0x0a, 0x43, 0x59, 0x79, 0x71, 0x4f, 0x68, 0x4e, 0x66, 0x36, 0x44, 0x52, 0x35, 0x55, 0x4d, 0x45, 0x51, 0x47, 0x66, 0x6e, 0x54, 0x4b, 0x42, 0x37, 0x55, 0x30, 0x56, 0x45, 0x77, 0x4b, 0x62, 0x4f, 0x75, 0x6b, 0x47, 0x66, 0x57, 0x48, 0x77, 0x70, 0x6a, 0x73, 0x63, 0x57, 0x70, 0x78, 0x6b, 0x49, 0x78, 0x59, 0x78, 0x65, 0x55, 0x37, 0x32, 0x6e, 0x4c, 0x4c, 0x2f, 0x71, 0x4d, 0x46, 0x48, 0x33, 0x45, 0x51, 0x78, 0x69, 0x4a, 0x32, 0x66, 0x41, 0x79, 0x51, 0x4f, 0x61, 0x41, 0x0a, 0x34, 0x6b, 0x5a, 0x66, 0x35, 0x65, 0x50, 0x42, 0x41, 0x46, 0x6d, 0x6f, 0x2b, 0x65, 0x67, 0x67, 0x76, 0x49, 0x6b, 0x73, 0x44, 0x6b, 0x63, 0x30, 0x43, 0x2b, 0x70, 0x58, 0x77, 0x6c, 0x4d, 0x32, 0x2f, 0x4b, 0x66, 0x55, 0x72, 0x7a, 0x48, 0x4e, 0x2f, 0x67, 0x4c, 0x6c, 0x64, 0x66, 0x71, 0x35, 0x4a, 0x77, 0x6e, 0x35, 0x38, 0x2f, 0x55, 0x37, 0x79, 0x6e, 0x32, 0x66, 0x71, 0x53, 0x4c, 0x4c, 0x69, 0x4d, 0x6d, 0x71, 0x30, 0x55, 0x63, 0x39, 0x4e, 0x6e, 0x65, 0x6f, 0x0a, 0x57, 0x57, 0x52, 0x72, 0x4a, 0x38, 0x2f, 0x76, 0x4a, 0x38, 0x48, 0x6a, 0x4a, 0x4c, 0x57, 0x47, 0x39, 0x36, 0x35, 0x2b, 0x4d, 0x6b, 0x32, 0x77, 0x65, 0x57, 0x6a, 0x52, 0x4f, 0x65, 0x69, 0x51, 0x57, 0x4d, 0x4f, 0x44, 0x76, 0x41, 0x38, 0x73, 0x31, 0x70, 0x66, 0x72, 0x7a, 0x67, 0x7a, 0x68, 0x49, 0x4d, 0x66, 0x61, 0x74, 0x7a, 0x37, 0x44, 0x50, 0x37, 0x38, 0x76, 0x33, 0x44, 0x53, 0x6b, 0x2b, 0x79, 0x73, 0x68, 0x7a, 0x57, 0x65, 0x50, 0x53, 0x2f, 0x54, 0x6a, 0x0a, 0x36, 0x74, 0x51, 0x2f, 0x35, 0x30, 0x2b, 0x36, 0x75, 0x61, 0x57, 0x54, 0x52, 0x52, 0x78, 0x6d, 0x48, 0x79, 0x48, 0x36, 0x5a, 0x46, 0x35, 0x76, 0x34, 0x48, 0x61, 0x55, 0x4d, 0x73, 0x74, 0x31, 0x39, 0x57, 0x37, 0x6c, 0x39, 0x6f, 0x2f, 0x48, 0x75, 0x4b, 0x54, 0x4d, 0x71, 0x4a, 0x5a, 0x39, 0x5a, 0x50, 0x73, 0x6b, 0x57, 0x6b, 0x6f, 0x44, 0x62, 0x47, 0x73, 0x34, 0x78, 0x75, 0x67, 0x44, 0x51, 0x35, 0x72, 0x33, 0x56, 0x37, 0x6d, 0x7a, 0x4b, 0x57, 0x6d, 0x54, 0x0a, 0x4f, 0x50, 0x51, 0x44, 0x38, 0x72, 0x76, 0x37, 0x67, 0x6d, 0x73, 0x48, 0x49, 0x4e, 0x46, 0x53, 0x48, 0x35, 0x70, 0x6b, 0x41, 0x6e, 0x75, 0x59, 0x5a, 0x74, 0x74, 0x63, 0x54, 0x56, 0x6f, 0x50, 0x30, 0x49, 0x53, 0x56, 0x6f, 0x44, 0x77, 0x55, 0x51, 0x77, 0x62, 0x4b, 0x79, 0x74, 0x75, 0x34, 0x51, 0x54, 0x62, 0x61, 0x61, 0x6b, 0x52, 0x6e, 0x68, 0x36, 0x2b, 0x76, 0x34, 0x30, 0x55, 0x52, 0x46, 0x57, 0x6b, 0x49, 0x73, 0x72, 0x34, 0x57, 0x4f, 0x5a, 0x63, 0x6b, 0x0a, 0x62, 0x78, 0x4a, 0x46, 0x30, 0x57, 0x64, 0x64, 0x43, 0x61, 0x6a, 0x4a, 0x46, 0x64, 0x72, 0x36, 0x30, 0x71, 0x5a, 0x66, 0x45, 0x32, 0x45, 0x66, 0x76, 0x34, 0x57, 0x73, 0x74, 0x4b, 0x32, 0x74, 0x42, 0x5a, 0x51, 0x49, 0x67, 0x78, 0x35, 0x31, 0x46, 0x39, 0x4e, 0x78, 0x4f, 0x35, 0x4e, 0x51, 0x49, 0x31, 0x6d, 0x67, 0x37, 0x54, 0x79, 0x52, 0x56, 0x4a, 0x31, 0x32, 0x41, 0x4d, 0x58, 0x44, 0x75, 0x44, 0x6a, 0x62, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x54, 0x75, 0x6e, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x73, 0x7a, 0x43, 0x43, 0x41, 0x35, 0x75, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x55, 0x45, 0x77, 0x4c, 0x56, 0x34, 0x6b, 0x42, 0x4d, 0x6b, 0x6b, 0x61, 0x47, 0x46, 0x6d, 0x64, 0x64, 0x74, 0x4c, 0x75, 0x37, 0x73, 0x6d, 0x73, 0x2b, 0x2f, 0x42, 0x4d, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x77, 0x59, 0x54, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x0a, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x45, 0x34, 0x78, 0x4e, 0x7a, 0x41, 0x31, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x4c, 0x6b, 0x46, 0x6e, 0x5a, 0x57, 0x35, 0x6a, 0x5a, 0x53, 0x42, 0x4f, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x35, 0x68, 0x62, 0x47, 0x55, 0x67, 0x5a, 0x47, 0x55, 0x67, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x69, 0x42, 0x46, 0x62, 0x47, 0x56, 0x6a, 0x0a, 0x64, 0x48, 0x4a, 0x76, 0x62, 0x6d, 0x6c, 0x78, 0x64, 0x57, 0x55, 0x78, 0x47, 0x54, 0x41, 0x58, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x45, 0x46, 0x52, 0x31, 0x62, 0x6c, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x54, 0x6b, 0x77, 0x4e, 0x44, 0x49, 0x32, 0x4d, 0x44, 0x67, 0x31, 0x4e, 0x7a, 0x55, 0x32, 0x57, 0x68, 0x63, 0x4e, 0x4e, 0x44, 0x51, 0x77, 0x0a, 0x4e, 0x44, 0x49, 0x32, 0x4d, 0x44, 0x67, 0x31, 0x4e, 0x7a, 0x55, 0x32, 0x57, 0x6a, 0x42, 0x68, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x55, 0x54, 0x6a, 0x45, 0x33, 0x4d, 0x44, 0x55, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x75, 0x51, 0x57, 0x64, 0x6c, 0x62, 0x6d, 0x4e, 0x6c, 0x49, 0x45, 0x35, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x6d, 0x46, 0x73, 0x5a, 0x53, 0x42, 0x6b, 0x5a, 0x53, 0x42, 0x44, 0x0a, 0x5a, 0x58, 0x4a, 0x30, 0x61, 0x57, 0x5a, 0x70, 0x59, 0x32, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x49, 0x45, 0x56, 0x73, 0x5a, 0x57, 0x4e, 0x30, 0x63, 0x6d, 0x39, 0x75, 0x61, 0x58, 0x46, 0x31, 0x5a, 0x54, 0x45, 0x5a, 0x4d, 0x42, 0x63, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x77, 0x77, 0x51, 0x56, 0x48, 0x56, 0x75, 0x56, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x51, 0x54, 0x43, 0x43, 0x41, 0x69, 0x49, 0x77, 0x0a, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x50, 0x41, 0x44, 0x43, 0x43, 0x41, 0x67, 0x6f, 0x43, 0x67, 0x67, 0x49, 0x42, 0x41, 0x4d, 0x50, 0x4e, 0x30, 0x2f, 0x79, 0x39, 0x42, 0x46, 0x50, 0x64, 0x44, 0x43, 0x41, 0x36, 0x31, 0x59, 0x67, 0x75, 0x42, 0x55, 0x74, 0x42, 0x39, 0x59, 0x4f, 0x43, 0x66, 0x76, 0x64, 0x5a, 0x6e, 0x35, 0x36, 0x65, 0x59, 0x2b, 0x68, 0x7a, 0x0a, 0x32, 0x76, 0x59, 0x47, 0x71, 0x55, 0x38, 0x66, 0x74, 0x50, 0x6b, 0x4c, 0x48, 0x7a, 0x6d, 0x4d, 0x6d, 0x69, 0x44, 0x51, 0x66, 0x67, 0x62, 0x55, 0x37, 0x44, 0x54, 0x5a, 0x68, 0x72, 0x78, 0x31, 0x57, 0x34, 0x65, 0x49, 0x38, 0x4e, 0x4c, 0x5a, 0x31, 0x4b, 0x4d, 0x4b, 0x73, 0x6d, 0x77, 0x62, 0x36, 0x30, 0x6b, 0x73, 0x50, 0x71, 0x78, 0x64, 0x32, 0x4a, 0x51, 0x44, 0x6f, 0x4f, 0x77, 0x30, 0x35, 0x54, 0x44, 0x45, 0x4e, 0x58, 0x33, 0x37, 0x4a, 0x6b, 0x30, 0x62, 0x0a, 0x62, 0x6a, 0x42, 0x55, 0x32, 0x50, 0x57, 0x41, 0x52, 0x5a, 0x77, 0x35, 0x72, 0x5a, 0x7a, 0x4a, 0x4a, 0x51, 0x52, 0x4e, 0x6d, 0x70, 0x41, 0x2b, 0x54, 0x6b, 0x42, 0x75, 0x69, 0x6d, 0x76, 0x4e, 0x4b, 0x57, 0x66, 0x47, 0x7a, 0x43, 0x33, 0x67, 0x64, 0x4f, 0x67, 0x46, 0x56, 0x77, 0x70, 0x49, 0x55, 0x50, 0x70, 0x36, 0x51, 0x39, 0x70, 0x2b, 0x37, 0x46, 0x75, 0x61, 0x44, 0x6d, 0x4a, 0x32, 0x2f, 0x75, 0x71, 0x64, 0x48, 0x59, 0x56, 0x79, 0x37, 0x42, 0x47, 0x37, 0x0a, 0x4e, 0x65, 0x67, 0x66, 0x4a, 0x37, 0x2f, 0x42, 0x6f, 0x63, 0x65, 0x37, 0x53, 0x42, 0x62, 0x64, 0x56, 0x74, 0x66, 0x4d, 0x54, 0x71, 0x44, 0x68, 0x75, 0x61, 0x7a, 0x62, 0x31, 0x59, 0x4d, 0x5a, 0x47, 0x6f, 0x58, 0x52, 0x6c, 0x4a, 0x66, 0x58, 0x79, 0x71, 0x4e, 0x6c, 0x43, 0x2f, 0x4d, 0x34, 0x2b, 0x51, 0x4b, 0x75, 0x33, 0x66, 0x5a, 0x6e, 0x7a, 0x38, 0x6b, 0x2f, 0x39, 0x59, 0x6f, 0x73, 0x52, 0x78, 0x71, 0x5a, 0x62, 0x77, 0x55, 0x4e, 0x2f, 0x64, 0x41, 0x64, 0x0a, 0x67, 0x6a, 0x48, 0x38, 0x4b, 0x63, 0x77, 0x41, 0x57, 0x4a, 0x65, 0x52, 0x54, 0x49, 0x41, 0x41, 0x48, 0x44, 0x4f, 0x46, 0x6c, 0x69, 0x2f, 0x4c, 0x51, 0x63, 0x4b, 0x4c, 0x45, 0x49, 0x54, 0x44, 0x43, 0x53, 0x53, 0x4a, 0x48, 0x37, 0x55, 0x50, 0x32, 0x64, 0x6c, 0x33, 0x52, 0x78, 0x69, 0x53, 0x6c, 0x47, 0x42, 0x63, 0x78, 0x35, 0x6b, 0x44, 0x50, 0x50, 0x37, 0x33, 0x6c, 0x61, 0x64, 0x39, 0x55, 0x4b, 0x47, 0x41, 0x77, 0x71, 0x6d, 0x44, 0x72, 0x56, 0x69, 0x57, 0x0a, 0x56, 0x53, 0x48, 0x62, 0x68, 0x6c, 0x6e, 0x55, 0x72, 0x38, 0x61, 0x38, 0x33, 0x59, 0x46, 0x75, 0x42, 0x39, 0x74, 0x67, 0x59, 0x76, 0x37, 0x73, 0x45, 0x47, 0x37, 0x61, 0x61, 0x41, 0x48, 0x30, 0x67, 0x78, 0x75, 0x70, 0x50, 0x71, 0x4a, 0x62, 0x49, 0x39, 0x64, 0x6b, 0x78, 0x74, 0x2f, 0x63, 0x6f, 0x6e, 0x33, 0x59, 0x53, 0x37, 0x71, 0x43, 0x30, 0x6c, 0x48, 0x34, 0x5a, 0x72, 0x38, 0x47, 0x52, 0x75, 0x52, 0x35, 0x4b, 0x69, 0x59, 0x32, 0x65, 0x59, 0x38, 0x66, 0x0a, 0x54, 0x70, 0x6b, 0x64, 0x73, 0x6f, 0x38, 0x4d, 0x44, 0x68, 0x7a, 0x2f, 0x79, 0x56, 0x33, 0x41, 0x2f, 0x5a, 0x41, 0x51, 0x70, 0x72, 0x45, 0x33, 0x38, 0x38, 0x30, 0x36, 0x4a, 0x47, 0x36, 0x30, 0x68, 0x5a, 0x43, 0x2f, 0x67, 0x4c, 0x6b, 0x4d, 0x6a, 0x4e, 0x57, 0x62, 0x31, 0x73, 0x6a, 0x78, 0x56, 0x6a, 0x38, 0x61, 0x67, 0x49, 0x6c, 0x36, 0x71, 0x65, 0x49, 0x62, 0x4d, 0x6c, 0x45, 0x73, 0x50, 0x76, 0x4c, 0x66, 0x65, 0x2f, 0x5a, 0x64, 0x65, 0x69, 0x6b, 0x5a, 0x0a, 0x6a, 0x75, 0x58, 0x49, 0x76, 0x54, 0x5a, 0x78, 0x69, 0x31, 0x31, 0x4d, 0x77, 0x68, 0x30, 0x2f, 0x72, 0x56, 0x69, 0x69, 0x7a, 0x7a, 0x31, 0x77, 0x54, 0x61, 0x5a, 0x51, 0x6d, 0x43, 0x58, 0x63, 0x49, 0x2f, 0x6d, 0x34, 0x57, 0x45, 0x45, 0x49, 0x63, 0x62, 0x39, 0x50, 0x75, 0x49, 0x53, 0x67, 0x6a, 0x77, 0x42, 0x55, 0x46, 0x66, 0x79, 0x52, 0x62, 0x56, 0x69, 0x6e, 0x6c, 0x6a, 0x76, 0x72, 0x53, 0x35, 0x59, 0x6e, 0x7a, 0x57, 0x75, 0x69, 0x6f, 0x59, 0x61, 0x73, 0x0a, 0x44, 0x58, 0x78, 0x55, 0x35, 0x6d, 0x5a, 0x4d, 0x5a, 0x6c, 0x2b, 0x51, 0x76, 0x69, 0x47, 0x61, 0x41, 0x6b, 0x59, 0x74, 0x35, 0x49, 0x50, 0x43, 0x67, 0x4c, 0x6e, 0x50, 0x53, 0x7a, 0x37, 0x6f, 0x66, 0x7a, 0x77, 0x42, 0x37, 0x49, 0x39, 0x65, 0x7a, 0x58, 0x2f, 0x53, 0x4b, 0x45, 0x49, 0x42, 0x6c, 0x59, 0x72, 0x69, 0x6c, 0x7a, 0x30, 0x51, 0x49, 0x58, 0x33, 0x32, 0x6e, 0x52, 0x7a, 0x46, 0x4e, 0x4b, 0x48, 0x73, 0x4c, 0x41, 0x34, 0x4b, 0x55, 0x69, 0x77, 0x53, 0x0a, 0x56, 0x58, 0x41, 0x6b, 0x50, 0x63, 0x76, 0x43, 0x46, 0x44, 0x56, 0x44, 0x58, 0x53, 0x64, 0x4f, 0x76, 0x73, 0x43, 0x39, 0x71, 0x6e, 0x79, 0x57, 0x35, 0x2f, 0x79, 0x65, 0x59, 0x61, 0x31, 0x45, 0x30, 0x77, 0x43, 0x58, 0x41, 0x67, 0x4d, 0x42, 0x41, 0x41, 0x47, 0x6a, 0x59, 0x7a, 0x42, 0x68, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x51, 0x47, 0x6d, 0x70, 0x73, 0x66, 0x55, 0x33, 0x33, 0x78, 0x39, 0x61, 0x54, 0x49, 0x0a, 0x30, 0x34, 0x59, 0x2b, 0x6f, 0x58, 0x4e, 0x5a, 0x74, 0x50, 0x64, 0x45, 0x49, 0x54, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x42, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x49, 0x77, 0x51, 0x59, 0x4d, 0x42, 0x61, 0x41, 0x46, 0x41, 0x61, 0x61, 0x6d, 0x78, 0x39, 0x54, 0x66, 0x66, 0x48, 0x31, 0x70, 0x4d, 0x6a, 0x54, 0x68, 0x6a, 0x36, 0x68, 0x63, 0x31, 0x6d, 0x30, 0x0a, 0x39, 0x30, 0x51, 0x68, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x42, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x45, 0x41, 0x71, 0x67, 0x56, 0x75, 0x74, 0x74, 0x30, 0x56, 0x79, 0x62, 0x2b, 0x7a, 0x78, 0x69, 0x44, 0x32, 0x42, 0x6b, 0x65, 0x77, 0x68, 0x70, 0x4d, 0x6c, 0x0a, 0x30, 0x34, 0x32, 0x35, 0x79, 0x41, 0x41, 0x2f, 0x6c, 0x2f, 0x56, 0x53, 0x4a, 0x34, 0x68, 0x78, 0x79, 0x58, 0x54, 0x39, 0x36, 0x38, 0x70, 0x6b, 0x32, 0x31, 0x76, 0x76, 0x48, 0x6c, 0x32, 0x36, 0x76, 0x39, 0x48, 0x72, 0x37, 0x6c, 0x78, 0x70, 0x75, 0x68, 0x62, 0x49, 0x38, 0x37, 0x6d, 0x50, 0x30, 0x7a, 0x59, 0x75, 0x51, 0x45, 0x6b, 0x48, 0x44, 0x56, 0x6e, 0x65, 0x69, 0x78, 0x43, 0x77, 0x53, 0x51, 0x58, 0x69, 0x2f, 0x35, 0x45, 0x2f, 0x53, 0x37, 0x66, 0x64, 0x0a, 0x41, 0x6f, 0x37, 0x34, 0x67, 0x53, 0x68, 0x63, 0x7a, 0x4e, 0x78, 0x74, 0x72, 0x31, 0x38, 0x55, 0x6e, 0x48, 0x31, 0x59, 0x65, 0x41, 0x33, 0x32, 0x67, 0x41, 0x6d, 0x35, 0x36, 0x51, 0x36, 0x58, 0x4b, 0x52, 0x6d, 0x34, 0x74, 0x2b, 0x76, 0x34, 0x46, 0x73, 0x74, 0x56, 0x45, 0x75, 0x54, 0x47, 0x66, 0x62, 0x76, 0x45, 0x37, 0x50, 0x69, 0x31, 0x48, 0x45, 0x34, 0x2b, 0x5a, 0x37, 0x2f, 0x46, 0x58, 0x78, 0x74, 0x74, 0x62, 0x55, 0x63, 0x6f, 0x71, 0x67, 0x52, 0x59, 0x0a, 0x59, 0x64, 0x5a, 0x32, 0x76, 0x79, 0x4a, 0x2f, 0x30, 0x41, 0x64, 0x71, 0x70, 0x32, 0x52, 0x54, 0x38, 0x4a, 0x65, 0x4e, 0x6e, 0x59, 0x41, 0x2f, 0x75, 0x38, 0x45, 0x48, 0x32, 0x32, 0x57, 0x76, 0x35, 0x70, 0x73, 0x79, 0x6d, 0x73, 0x4e, 0x55, 0x6b, 0x38, 0x51, 0x63, 0x43, 0x4d, 0x4e, 0x45, 0x2b, 0x33, 0x74, 0x6a, 0x45, 0x55, 0x50, 0x52, 0x61, 0x68, 0x70, 0x68, 0x61, 0x6e, 0x6c, 0x74, 0x6b, 0x45, 0x38, 0x70, 0x6a, 0x6b, 0x63, 0x46, 0x77, 0x52, 0x4a, 0x70, 0x0a, 0x61, 0x64, 0x62, 0x47, 0x4e, 0x6a, 0x48, 0x68, 0x2f, 0x50, 0x71, 0x41, 0x75, 0x6c, 0x78, 0x50, 0x78, 0x4f, 0x75, 0x33, 0x4d, 0x71, 0x7a, 0x34, 0x64, 0x57, 0x45, 0x58, 0x31, 0x78, 0x41, 0x5a, 0x75, 0x66, 0x48, 0x53, 0x43, 0x65, 0x39, 0x36, 0x51, 0x70, 0x31, 0x62, 0x57, 0x67, 0x76, 0x55, 0x78, 0x70, 0x56, 0x4f, 0x4b, 0x73, 0x37, 0x2f, 0x42, 0x39, 0x64, 0x50, 0x66, 0x68, 0x67, 0x47, 0x69, 0x50, 0x45, 0x5a, 0x74, 0x64, 0x6d, 0x59, 0x75, 0x36, 0x35, 0x78, 0x0a, 0x78, 0x42, 0x7a, 0x6e, 0x64, 0x46, 0x6c, 0x59, 0x37, 0x77, 0x79, 0x4a, 0x7a, 0x34, 0x73, 0x66, 0x64, 0x5a, 0x4d, 0x61, 0x42, 0x42, 0x53, 0x53, 0x53, 0x46, 0x43, 0x70, 0x36, 0x31, 0x63, 0x70, 0x41, 0x42, 0x62, 0x6a, 0x4e, 0x68, 0x7a, 0x49, 0x2b, 0x4c, 0x2f, 0x77, 0x4d, 0x39, 0x56, 0x42, 0x44, 0x38, 0x54, 0x4d, 0x50, 0x4e, 0x33, 0x70, 0x4d, 0x30, 0x4d, 0x42, 0x6b, 0x52, 0x41, 0x72, 0x48, 0x74, 0x47, 0x35, 0x58, 0x63, 0x30, 0x79, 0x47, 0x59, 0x75, 0x50, 0x0a, 0x6a, 0x43, 0x42, 0x33, 0x31, 0x79, 0x4c, 0x45, 0x51, 0x74, 0x79, 0x45, 0x46, 0x70, 0x73, 0x6c, 0x62, 0x65, 0x69, 0x30, 0x56, 0x58, 0x46, 0x2f, 0x73, 0x48, 0x79, 0x7a, 0x30, 0x33, 0x46, 0x4a, 0x75, 0x63, 0x39, 0x53, 0x70, 0x41, 0x51, 0x2f, 0x33, 0x44, 0x32, 0x67, 0x75, 0x36, 0x38, 0x7a, 0x6e, 0x67, 0x6f, 0x77, 0x59, 0x49, 0x37, 0x62, 0x6e, 0x56, 0x32, 0x55, 0x71, 0x4c, 0x31, 0x67, 0x35, 0x32, 0x4b, 0x41, 0x64, 0x6f, 0x47, 0x44, 0x44, 0x49, 0x7a, 0x4d, 0x0a, 0x4d, 0x45, 0x5a, 0x4a, 0x34, 0x67, 0x7a, 0x53, 0x71, 0x4b, 0x2f, 0x72, 0x59, 0x58, 0x48, 0x76, 0x35, 0x79, 0x4a, 0x69, 0x71, 0x66, 0x64, 0x63, 0x5a, 0x47, 0x79, 0x66, 0x46, 0x6f, 0x78, 0x6e, 0x4e, 0x69, 0x64, 0x46, 0x39, 0x51, 0x6c, 0x37, 0x76, 0x2f, 0x59, 0x51, 0x43, 0x76, 0x47, 0x77, 0x6a, 0x56, 0x52, 0x44, 0x6a, 0x41, 0x53, 0x36, 0x6f, 0x7a, 0x2f, 0x76, 0x34, 0x6a, 0x58, 0x48, 0x2b, 0x58, 0x54, 0x67, 0x62, 0x7a, 0x52, 0x42, 0x30, 0x4c, 0x39, 0x7a, 0x0a, 0x5a, 0x56, 0x63, 0x67, 0x2b, 0x5a, 0x74, 0x6e, 0x65, 0x6d, 0x5a, 0x6f, 0x4a, 0x45, 0x36, 0x41, 0x5a, 0x62, 0x30, 0x51, 0x6d, 0x51, 0x5a, 0x5a, 0x38, 0x6d, 0x57, 0x76, 0x75, 0x4d, 0x5a, 0x48, 0x75, 0x2f, 0x32, 0x51, 0x65, 0x49, 0x74, 0x42, 0x63, 0x79, 0x36, 0x76, 0x56, 0x52, 0x2f, 0x63, 0x4f, 0x35, 0x4a, 0x79, 0x62, 0x6f, 0x54, 0x54, 0x30, 0x47, 0x46, 0x4d, 0x44, 0x63, 0x78, 0x32, 0x56, 0x2b, 0x49, 0x74, 0x68, 0x53, 0x49, 0x56, 0x4e, 0x67, 0x33, 0x72, 0x0a, 0x41, 0x5a, 0x33, 0x72, 0x32, 0x4f, 0x76, 0x45, 0x68, 0x4a, 0x6e, 0x37, 0x77, 0x41, 0x7a, 0x4d, 0x4d, 0x75, 0x6a, 0x6a, 0x64, 0x39, 0x71, 0x44, 0x52, 0x49, 0x75, 0x65, 0x56, 0x53, 0x6a, 0x41, 0x69, 0x31, 0x6a, 0x54, 0x6b, 0x44, 0x35, 0x4f, 0x47, 0x77, 0x44, 0x78, 0x46, 0x61, 0x32, 0x44, 0x4b, 0x35, 0x6f, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x48, 0x41, 0x52, 0x49, 0x43, 0x41, 0x20, 0x54, 0x4c, 0x53, 0x20, 0x52, 0x53, 0x41, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x32, 0x30, 0x32, 0x31, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x70, 0x44, 0x43, 0x43, 0x41, 0x34, 0x79, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x4f, 0x63, 0x71, 0x54, 0x48, 0x4f, 0x39, 0x44, 0x38, 0x38, 0x61, 0x4f, 0x6b, 0x38, 0x66, 0x30, 0x5a, 0x49, 0x6b, 0x34, 0x66, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x44, 0x42, 0x73, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x0a, 0x45, 0x77, 0x4a, 0x48, 0x55, 0x6a, 0x45, 0x33, 0x4d, 0x44, 0x55, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x75, 0x53, 0x47, 0x56, 0x73, 0x62, 0x47, 0x56, 0x75, 0x61, 0x57, 0x4d, 0x67, 0x51, 0x57, 0x4e, 0x68, 0x5a, 0x47, 0x56, 0x74, 0x61, 0x57, 0x4d, 0x67, 0x59, 0x57, 0x35, 0x6b, 0x49, 0x46, 0x4a, 0x6c, 0x63, 0x32, 0x56, 0x68, 0x63, 0x6d, 0x4e, 0x6f, 0x49, 0x45, 0x6c, 0x75, 0x63, 0x33, 0x52, 0x70, 0x64, 0x48, 0x56, 0x30, 0x61, 0x57, 0x39, 0x75, 0x0a, 0x63, 0x79, 0x42, 0x44, 0x51, 0x54, 0x45, 0x6b, 0x4d, 0x43, 0x49, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x77, 0x77, 0x62, 0x53, 0x45, 0x46, 0x53, 0x53, 0x55, 0x4e, 0x42, 0x49, 0x46, 0x52, 0x4d, 0x55, 0x79, 0x42, 0x53, 0x55, 0x30, 0x45, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x51, 0x53, 0x41, 0x79, 0x4d, 0x44, 0x49, 0x78, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x49, 0x78, 0x4d, 0x44, 0x49, 0x78, 0x4f, 0x54, 0x45, 0x77, 0x4e, 0x54, 0x55, 0x7a, 0x0a, 0x4f, 0x46, 0x6f, 0x58, 0x44, 0x54, 0x51, 0x31, 0x4d, 0x44, 0x49, 0x78, 0x4d, 0x7a, 0x45, 0x77, 0x4e, 0x54, 0x55, 0x7a, 0x4e, 0x31, 0x6f, 0x77, 0x62, 0x44, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x52, 0x31, 0x49, 0x78, 0x4e, 0x7a, 0x41, 0x31, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x4c, 0x6b, 0x68, 0x6c, 0x62, 0x47, 0x78, 0x6c, 0x62, 0x6d, 0x6c, 0x6a, 0x49, 0x45, 0x46, 0x6a, 0x59, 0x57, 0x52, 0x6c, 0x0a, 0x62, 0x57, 0x6c, 0x6a, 0x49, 0x47, 0x46, 0x75, 0x5a, 0x43, 0x42, 0x53, 0x5a, 0x58, 0x4e, 0x6c, 0x59, 0x58, 0x4a, 0x6a, 0x61, 0x43, 0x42, 0x4a, 0x62, 0x6e, 0x4e, 0x30, 0x61, 0x58, 0x52, 0x31, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x6e, 0x4d, 0x67, 0x51, 0x30, 0x45, 0x78, 0x4a, 0x44, 0x41, 0x69, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x47, 0x30, 0x68, 0x42, 0x55, 0x6b, 0x6c, 0x44, 0x51, 0x53, 0x42, 0x55, 0x54, 0x46, 0x4d, 0x67, 0x55, 0x6c, 0x4e, 0x42, 0x0a, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x67, 0x4d, 0x6a, 0x41, 0x79, 0x4d, 0x54, 0x43, 0x43, 0x41, 0x69, 0x49, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x50, 0x41, 0x44, 0x43, 0x43, 0x41, 0x67, 0x6f, 0x43, 0x67, 0x67, 0x49, 0x42, 0x41, 0x49, 0x76, 0x43, 0x35, 0x36, 0x39, 0x6c, 0x6d, 0x77, 0x56, 0x6e, 0x6c, 0x73, 0x6b, 0x4e, 0x0a, 0x4a, 0x4c, 0x6e, 0x51, 0x44, 0x6d, 0x54, 0x38, 0x7a, 0x75, 0x49, 0x6b, 0x47, 0x43, 0x79, 0x45, 0x66, 0x33, 0x64, 0x52, 0x79, 0x77, 0x51, 0x52, 0x4e, 0x72, 0x68, 0x65, 0x37, 0x57, 0x6c, 0x78, 0x70, 0x35, 0x37, 0x6b, 0x4a, 0x51, 0x6d, 0x58, 0x5a, 0x38, 0x46, 0x48, 0x77, 0x73, 0x2b, 0x52, 0x46, 0x6a, 0x5a, 0x69, 0x50, 0x54, 0x67, 0x45, 0x34, 0x56, 0x47, 0x43, 0x2f, 0x36, 0x7a, 0x53, 0x74, 0x47, 0x6e, 0x64, 0x4c, 0x75, 0x77, 0x52, 0x6f, 0x30, 0x58, 0x75, 0x0a, 0x61, 0x32, 0x73, 0x37, 0x54, 0x4c, 0x2b, 0x4d, 0x6a, 0x61, 0x51, 0x65, 0x6e, 0x52, 0x47, 0x35, 0x36, 0x54, 0x6a, 0x35, 0x65, 0x67, 0x34, 0x4d, 0x6d, 0x4f, 0x49, 0x6a, 0x48, 0x64, 0x46, 0x4f, 0x59, 0x39, 0x54, 0x6e, 0x75, 0x45, 0x46, 0x45, 0x2b, 0x32, 0x75, 0x76, 0x61, 0x39, 0x6f, 0x66, 0x30, 0x38, 0x57, 0x52, 0x69, 0x46, 0x75, 0x6b, 0x69, 0x5a, 0x4c, 0x52, 0x67, 0x65, 0x61, 0x4d, 0x4f, 0x56, 0x69, 0x67, 0x31, 0x6d, 0x6c, 0x44, 0x71, 0x61, 0x32, 0x59, 0x0a, 0x55, 0x6c, 0x68, 0x75, 0x32, 0x77, 0x72, 0x37, 0x61, 0x38, 0x39, 0x6f, 0x2b, 0x75, 0x4f, 0x6b, 0x58, 0x6a, 0x70, 0x46, 0x63, 0x35, 0x67, 0x48, 0x36, 0x6c, 0x38, 0x43, 0x63, 0x74, 0x34, 0x4d, 0x70, 0x62, 0x4f, 0x66, 0x72, 0x71, 0x6b, 0x64, 0x74, 0x78, 0x32, 0x7a, 0x2f, 0x49, 0x70, 0x5a, 0x35, 0x32, 0x35, 0x79, 0x5a, 0x61, 0x33, 0x31, 0x4d, 0x4a, 0x51, 0x6a, 0x42, 0x2f, 0x4f, 0x43, 0x46, 0x6b, 0x73, 0x31, 0x6d, 0x4a, 0x78, 0x54, 0x75, 0x79, 0x2f, 0x4b, 0x0a, 0x35, 0x46, 0x72, 0x5a, 0x78, 0x34, 0x30, 0x64, 0x2f, 0x4a, 0x69, 0x5a, 0x2b, 0x79, 0x79, 0x6b, 0x67, 0x6d, 0x76, 0x77, 0x4b, 0x68, 0x2b, 0x4f, 0x43, 0x31, 0x39, 0x78, 0x58, 0x46, 0x79, 0x75, 0x51, 0x6e, 0x73, 0x70, 0x69, 0x59, 0x48, 0x4c, 0x41, 0x36, 0x4f, 0x5a, 0x79, 0x6f, 0x69, 0x65, 0x43, 0x30, 0x41, 0x4a, 0x51, 0x54, 0x50, 0x62, 0x35, 0x6c, 0x68, 0x36, 0x2f, 0x61, 0x36, 0x5a, 0x63, 0x4d, 0x42, 0x61, 0x44, 0x39, 0x59, 0x54, 0x68, 0x6e, 0x45, 0x76, 0x0a, 0x64, 0x6d, 0x6e, 0x38, 0x6b, 0x4e, 0x33, 0x62, 0x4c, 0x57, 0x37, 0x52, 0x38, 0x70, 0x76, 0x31, 0x47, 0x6d, 0x75, 0x65, 0x62, 0x78, 0x57, 0x4d, 0x65, 0x76, 0x42, 0x4c, 0x4b, 0x4b, 0x41, 0x69, 0x4f, 0x49, 0x41, 0x6b, 0x62, 0x44, 0x61, 0x6b, 0x4f, 0x2f, 0x49, 0x77, 0x6b, 0x66, 0x4e, 0x34, 0x45, 0x38, 0x2f, 0x42, 0x50, 0x7a, 0x57, 0x72, 0x38, 0x52, 0x30, 0x52, 0x49, 0x37, 0x56, 0x44, 0x49, 0x70, 0x34, 0x42, 0x6b, 0x72, 0x63, 0x59, 0x41, 0x75, 0x55, 0x52, 0x0a, 0x30, 0x59, 0x4c, 0x62, 0x46, 0x51, 0x44, 0x4d, 0x59, 0x54, 0x66, 0x42, 0x4b, 0x6e, 0x79, 0x61, 0x34, 0x64, 0x43, 0x36, 0x73, 0x31, 0x42, 0x47, 0x37, 0x6f, 0x4b, 0x73, 0x6e, 0x54, 0x48, 0x34, 0x2b, 0x79, 0x50, 0x69, 0x41, 0x77, 0x42, 0x49, 0x63, 0x4b, 0x4d, 0x4a, 0x4a, 0x6e, 0x6b, 0x56, 0x55, 0x32, 0x44, 0x7a, 0x4f, 0x46, 0x79, 0x74, 0x4f, 0x4f, 0x71, 0x42, 0x41, 0x47, 0x4d, 0x55, 0x75, 0x54, 0x4e, 0x65, 0x33, 0x51, 0x76, 0x62, 0x6f, 0x45, 0x55, 0x48, 0x0a, 0x47, 0x6a, 0x4d, 0x4a, 0x2b, 0x45, 0x32, 0x30, 0x70, 0x77, 0x4b, 0x6d, 0x61, 0x66, 0x54, 0x43, 0x57, 0x51, 0x57, 0x49, 0x5a, 0x59, 0x56, 0x57, 0x72, 0x6b, 0x76, 0x4c, 0x34, 0x4e, 0x34, 0x38, 0x66, 0x53, 0x30, 0x61, 0x79, 0x4f, 0x6e, 0x37, 0x48, 0x36, 0x4e, 0x68, 0x53, 0x74, 0x59, 0x71, 0x45, 0x36, 0x31, 0x33, 0x54, 0x42, 0x6f, 0x59, 0x6d, 0x35, 0x45, 0x50, 0x57, 0x4e, 0x67, 0x47, 0x56, 0x4d, 0x57, 0x58, 0x2b, 0x4b, 0x6f, 0x2f, 0x49, 0x49, 0x71, 0x6d, 0x0a, 0x68, 0x61, 0x5a, 0x33, 0x39, 0x71, 0x62, 0x38, 0x48, 0x4f, 0x4c, 0x75, 0x62, 0x70, 0x51, 0x7a, 0x4b, 0x6f, 0x4e, 0x51, 0x68, 0x41, 0x72, 0x6c, 0x54, 0x34, 0x62, 0x34, 0x55, 0x45, 0x56, 0x34, 0x41, 0x49, 0x48, 0x72, 0x57, 0x32, 0x6a, 0x6a, 0x4a, 0x6f, 0x33, 0x4d, 0x65, 0x31, 0x78, 0x52, 0x39, 0x42, 0x51, 0x73, 0x51, 0x4c, 0x34, 0x61, 0x59, 0x42, 0x31, 0x36, 0x63, 0x6d, 0x45, 0x64, 0x48, 0x32, 0x4d, 0x74, 0x69, 0x4b, 0x72, 0x4f, 0x6f, 0x6b, 0x57, 0x51, 0x0a, 0x43, 0x50, 0x78, 0x72, 0x76, 0x72, 0x4e, 0x51, 0x4b, 0x6c, 0x72, 0x39, 0x71, 0x45, 0x67, 0x59, 0x52, 0x74, 0x61, 0x51, 0x51, 0x4a, 0x4b, 0x51, 0x43, 0x6f, 0x52, 0x65, 0x61, 0x44, 0x48, 0x34, 0x36, 0x2b, 0x30, 0x4e, 0x30, 0x78, 0x33, 0x47, 0x66, 0x5a, 0x6b, 0x59, 0x56, 0x56, 0x59, 0x6e, 0x5a, 0x53, 0x36, 0x4e, 0x52, 0x63, 0x55, 0x6b, 0x37, 0x4d, 0x37, 0x6a, 0x41, 0x67, 0x4d, 0x42, 0x41, 0x41, 0x47, 0x6a, 0x51, 0x6a, 0x42, 0x41, 0x4d, 0x41, 0x38, 0x47, 0x0a, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x41, 0x70, 0x49, 0x49, 0x36, 0x5a, 0x67, 0x70, 0x4a, 0x49, 0x4b, 0x4d, 0x2b, 0x71, 0x54, 0x57, 0x38, 0x56, 0x58, 0x36, 0x69, 0x56, 0x4e, 0x76, 0x52, 0x4c, 0x75, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x0a, 0x41, 0x77, 0x49, 0x42, 0x68, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x45, 0x41, 0x50, 0x70, 0x42, 0x49, 0x71, 0x6d, 0x35, 0x69, 0x46, 0x53, 0x56, 0x6d, 0x65, 0x77, 0x7a, 0x56, 0x6a, 0x49, 0x75, 0x4a, 0x6e, 0x64, 0x66, 0x74, 0x54, 0x67, 0x66, 0x76, 0x6e, 0x4e, 0x41, 0x55, 0x58, 0x31, 0x35, 0x51, 0x76, 0x57, 0x69, 0x57, 0x6b, 0x4b, 0x51, 0x55, 0x0a, 0x45, 0x61, 0x70, 0x6f, 0x62, 0x51, 0x6b, 0x31, 0x4f, 0x55, 0x41, 0x4a, 0x32, 0x76, 0x51, 0x4a, 0x4c, 0x44, 0x53, 0x6c, 0x65, 0x31, 0x6d, 0x45, 0x53, 0x53, 0x6d, 0x58, 0x64, 0x4d, 0x67, 0x48, 0x48, 0x6b, 0x64, 0x74, 0x38, 0x73, 0x34, 0x63, 0x55, 0x43, 0x62, 0x6a, 0x6e, 0x6a, 0x31, 0x41, 0x55, 0x7a, 0x2f, 0x33, 0x66, 0x35, 0x5a, 0x32, 0x45, 0x4d, 0x56, 0x47, 0x70, 0x64, 0x41, 0x67, 0x53, 0x31, 0x44, 0x30, 0x4e, 0x54, 0x73, 0x59, 0x39, 0x46, 0x56, 0x71, 0x0a, 0x51, 0x52, 0x74, 0x48, 0x42, 0x6d, 0x67, 0x38, 0x75, 0x77, 0x6b, 0x49, 0x59, 0x74, 0x6c, 0x66, 0x56, 0x55, 0x4b, 0x71, 0x72, 0x46, 0x4f, 0x46, 0x72, 0x4a, 0x56, 0x57, 0x4e, 0x6c, 0x61, 0x72, 0x35, 0x41, 0x57, 0x4d, 0x78, 0x61, 0x6a, 0x61, 0x48, 0x36, 0x4e, 0x70, 0x76, 0x56, 0x4d, 0x50, 0x78, 0x50, 0x2f, 0x63, 0x79, 0x75, 0x4e, 0x2b, 0x38, 0x6b, 0x79, 0x49, 0x68, 0x6b, 0x64, 0x47, 0x47, 0x76, 0x4d, 0x41, 0x39, 0x59, 0x43, 0x52, 0x6f, 0x74, 0x78, 0x44, 0x0a, 0x51, 0x70, 0x53, 0x62, 0x49, 0x50, 0x44, 0x52, 0x7a, 0x62, 0x4c, 0x72, 0x4c, 0x46, 0x50, 0x43, 0x55, 0x33, 0x68, 0x4b, 0x54, 0x77, 0x53, 0x55, 0x51, 0x5a, 0x71, 0x50, 0x4a, 0x7a, 0x4c, 0x42, 0x35, 0x55, 0x6b, 0x5a, 0x76, 0x2f, 0x48, 0x79, 0x77, 0x6f, 0x75, 0x6f, 0x43, 0x6a, 0x6b, 0x78, 0x4b, 0x4c, 0x52, 0x39, 0x59, 0x6a, 0x59, 0x73, 0x54, 0x65, 0x77, 0x66, 0x4d, 0x37, 0x5a, 0x2b, 0x64, 0x32, 0x31, 0x2b, 0x55, 0x50, 0x43, 0x66, 0x44, 0x74, 0x63, 0x52, 0x0a, 0x6a, 0x38, 0x38, 0x59, 0x78, 0x65, 0x4d, 0x6e, 0x2f, 0x69, 0x62, 0x76, 0x42, 0x5a, 0x33, 0x50, 0x7a, 0x7a, 0x66, 0x46, 0x30, 0x48, 0x76, 0x61, 0x4f, 0x37, 0x41, 0x57, 0x68, 0x41, 0x77, 0x36, 0x6b, 0x39, 0x61, 0x2b, 0x46, 0x39, 0x73, 0x50, 0x50, 0x67, 0x34, 0x5a, 0x65, 0x41, 0x6e, 0x48, 0x71, 0x51, 0x4a, 0x79, 0x49, 0x6b, 0x76, 0x33, 0x4e, 0x33, 0x61, 0x36, 0x64, 0x63, 0x53, 0x46, 0x41, 0x31, 0x70, 0x6a, 0x31, 0x62, 0x46, 0x31, 0x42, 0x63, 0x4b, 0x35, 0x0a, 0x76, 0x5a, 0x53, 0x74, 0x6a, 0x42, 0x57, 0x5a, 0x70, 0x35, 0x4e, 0x39, 0x39, 0x73, 0x58, 0x7a, 0x71, 0x6e, 0x54, 0x50, 0x42, 0x49, 0x57, 0x55, 0x6d, 0x41, 0x44, 0x30, 0x34, 0x76, 0x6e, 0x4b, 0x4a, 0x47, 0x57, 0x2f, 0x34, 0x47, 0x4b, 0x76, 0x79, 0x4d, 0x58, 0x36, 0x73, 0x73, 0x6d, 0x65, 0x56, 0x6b, 0x6a, 0x61, 0x65, 0x66, 0x32, 0x57, 0x64, 0x68, 0x57, 0x2b, 0x6f, 0x34, 0x35, 0x57, 0x78, 0x4c, 0x4d, 0x30, 0x2f, 0x4c, 0x35, 0x48, 0x39, 0x4d, 0x47, 0x30, 0x0a, 0x71, 0x50, 0x7a, 0x56, 0x4d, 0x49, 0x68, 0x6f, 0x37, 0x73, 0x75, 0x75, 0x79, 0x57, 0x50, 0x45, 0x64, 0x72, 0x36, 0x73, 0x4f, 0x42, 0x6a, 0x68, 0x58, 0x6c, 0x7a, 0x50, 0x72, 0x6a, 0x6f, 0x69, 0x55, 0x65, 0x76, 0x52, 0x69, 0x37, 0x50, 0x7a, 0x4b, 0x7a, 0x4d, 0x48, 0x56, 0x49, 0x66, 0x36, 0x74, 0x4c, 0x49, 0x54, 0x65, 0x37, 0x70, 0x54, 0x42, 0x47, 0x49, 0x42, 0x6e, 0x66, 0x48, 0x41, 0x54, 0x2b, 0x37, 0x68, 0x4f, 0x74, 0x53, 0x4c, 0x49, 0x42, 0x44, 0x36, 0x0a, 0x41, 0x6c, 0x66, 0x6d, 0x37, 0x38, 0x45, 0x4c, 0x74, 0x35, 0x42, 0x47, 0x6e, 0x42, 0x6b, 0x70, 0x6a, 0x4e, 0x78, 0x76, 0x6f, 0x45, 0x70, 0x70, 0x61, 0x5a, 0x53, 0x33, 0x4a, 0x47, 0x57, 0x67, 0x2f, 0x36, 0x77, 0x2f, 0x7a, 0x67, 0x48, 0x37, 0x49, 0x53, 0x37, 0x39, 0x61, 0x50, 0x69, 0x62, 0x38, 0x71, 0x58, 0x50, 0x4d, 0x54, 0x68, 0x63, 0x46, 0x61, 0x72, 0x6d, 0x6c, 0x77, 0x44, 0x42, 0x33, 0x31, 0x71, 0x6c, 0x70, 0x7a, 0x6d, 0x71, 0x36, 0x59, 0x52, 0x2f, 0x0a, 0x50, 0x46, 0x47, 0x6f, 0x4f, 0x74, 0x6d, 0x55, 0x57, 0x34, 0x79, 0x2f, 0x54, 0x77, 0x68, 0x78, 0x35, 0x64, 0x75, 0x6f, 0x58, 0x4e, 0x54, 0x53, 0x70, 0x76, 0x34, 0x41, 0x6f, 0x38, 0x59, 0x57, 0x78, 0x77, 0x2f, 0x6f, 0x67, 0x4d, 0x34, 0x63, 0x4b, 0x47, 0x52, 0x30, 0x47, 0x51, 0x6a, 0x54, 0x51, 0x75, 0x50, 0x4f, 0x41, 0x46, 0x31, 0x2f, 0x73, 0x64, 0x77, 0x54, 0x73, 0x4f, 0x45, 0x46, 0x79, 0x39, 0x45, 0x67, 0x71, 0x6f, 0x5a, 0x30, 0x6e, 0x6a, 0x6e, 0x6e, 0x0a, 0x6b, 0x66, 0x33, 0x2f, 0x57, 0x39, 0x62, 0x33, 0x72, 0x61, 0x59, 0x76, 0x41, 0x77, 0x74, 0x74, 0x34, 0x31, 0x64, 0x55, 0x36, 0x33, 0x5a, 0x54, 0x47, 0x49, 0x30, 0x52, 0x6d, 0x4c, 0x6f, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x48, 0x41, 0x52, 0x49, 0x43, 0x41, 0x20, 0x54, 0x4c, 0x53, 0x20, 0x45, 0x43, 0x43, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x32, 0x30, 0x32, 0x31, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x56, 0x44, 0x43, 0x43, 0x41, 0x64, 0x75, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x5a, 0x33, 0x53, 0x64, 0x6a, 0x58, 0x66, 0x59, 0x4f, 0x32, 0x72, 0x62, 0x49, 0x76, 0x54, 0x2f, 0x57, 0x65, 0x4b, 0x2f, 0x7a, 0x6a, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x7a, 0x42, 0x73, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x48, 0x0a, 0x55, 0x6a, 0x45, 0x33, 0x4d, 0x44, 0x55, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x75, 0x53, 0x47, 0x56, 0x73, 0x62, 0x47, 0x56, 0x75, 0x61, 0x57, 0x4d, 0x67, 0x51, 0x57, 0x4e, 0x68, 0x5a, 0x47, 0x56, 0x74, 0x61, 0x57, 0x4d, 0x67, 0x59, 0x57, 0x35, 0x6b, 0x49, 0x46, 0x4a, 0x6c, 0x63, 0x32, 0x56, 0x68, 0x63, 0x6d, 0x4e, 0x6f, 0x49, 0x45, 0x6c, 0x75, 0x63, 0x33, 0x52, 0x70, 0x64, 0x48, 0x56, 0x30, 0x61, 0x57, 0x39, 0x75, 0x63, 0x79, 0x42, 0x44, 0x0a, 0x51, 0x54, 0x45, 0x6b, 0x4d, 0x43, 0x49, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x77, 0x77, 0x62, 0x53, 0x45, 0x46, 0x53, 0x53, 0x55, 0x4e, 0x42, 0x49, 0x46, 0x52, 0x4d, 0x55, 0x79, 0x42, 0x46, 0x51, 0x30, 0x4d, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x51, 0x53, 0x41, 0x79, 0x4d, 0x44, 0x49, 0x78, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x49, 0x78, 0x4d, 0x44, 0x49, 0x78, 0x4f, 0x54, 0x45, 0x78, 0x4d, 0x44, 0x45, 0x78, 0x4d, 0x46, 0x6f, 0x58, 0x0a, 0x44, 0x54, 0x51, 0x31, 0x4d, 0x44, 0x49, 0x78, 0x4d, 0x7a, 0x45, 0x78, 0x4d, 0x44, 0x45, 0x77, 0x4f, 0x56, 0x6f, 0x77, 0x62, 0x44, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x52, 0x31, 0x49, 0x78, 0x4e, 0x7a, 0x41, 0x31, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x4c, 0x6b, 0x68, 0x6c, 0x62, 0x47, 0x78, 0x6c, 0x62, 0x6d, 0x6c, 0x6a, 0x49, 0x45, 0x46, 0x6a, 0x59, 0x57, 0x52, 0x6c, 0x62, 0x57, 0x6c, 0x6a, 0x0a, 0x49, 0x47, 0x46, 0x75, 0x5a, 0x43, 0x42, 0x53, 0x5a, 0x58, 0x4e, 0x6c, 0x59, 0x58, 0x4a, 0x6a, 0x61, 0x43, 0x42, 0x4a, 0x62, 0x6e, 0x4e, 0x30, 0x61, 0x58, 0x52, 0x31, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x6e, 0x4d, 0x67, 0x51, 0x30, 0x45, 0x78, 0x4a, 0x44, 0x41, 0x69, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x47, 0x30, 0x68, 0x42, 0x55, 0x6b, 0x6c, 0x44, 0x51, 0x53, 0x42, 0x55, 0x54, 0x46, 0x4d, 0x67, 0x52, 0x55, 0x4e, 0x44, 0x49, 0x46, 0x4a, 0x76, 0x0a, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x67, 0x4d, 0x6a, 0x41, 0x79, 0x4d, 0x54, 0x42, 0x32, 0x4d, 0x42, 0x41, 0x47, 0x42, 0x79, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x41, 0x67, 0x45, 0x47, 0x42, 0x53, 0x75, 0x42, 0x42, 0x41, 0x41, 0x69, 0x41, 0x32, 0x49, 0x41, 0x42, 0x44, 0x67, 0x49, 0x2f, 0x72, 0x47, 0x67, 0x6c, 0x74, 0x4a, 0x36, 0x72, 0x4b, 0x39, 0x4a, 0x4f, 0x74, 0x44, 0x41, 0x34, 0x4d, 0x4d, 0x37, 0x4b, 0x4b, 0x72, 0x78, 0x63, 0x6d, 0x31, 0x6c, 0x0a, 0x41, 0x45, 0x65, 0x49, 0x68, 0x50, 0x79, 0x61, 0x4a, 0x6d, 0x75, 0x71, 0x53, 0x37, 0x70, 0x73, 0x42, 0x41, 0x71, 0x49, 0x58, 0x68, 0x66, 0x79, 0x56, 0x59, 0x66, 0x38, 0x4d, 0x4c, 0x41, 0x30, 0x34, 0x6a, 0x52, 0x59, 0x56, 0x78, 0x71, 0x45, 0x55, 0x2b, 0x6b, 0x77, 0x32, 0x61, 0x6e, 0x79, 0x6c, 0x6e, 0x54, 0x44, 0x55, 0x52, 0x39, 0x59, 0x53, 0x54, 0x48, 0x4d, 0x6d, 0x45, 0x35, 0x67, 0x45, 0x59, 0x64, 0x31, 0x30, 0x33, 0x4b, 0x55, 0x6b, 0x45, 0x2b, 0x62, 0x0a, 0x45, 0x43, 0x55, 0x71, 0x71, 0x48, 0x67, 0x74, 0x76, 0x70, 0x42, 0x42, 0x57, 0x4a, 0x41, 0x56, 0x63, 0x71, 0x65, 0x68, 0x74, 0x36, 0x4e, 0x43, 0x4d, 0x45, 0x41, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x79, 0x52, 0x74, 0x54, 0x67, 0x52, 0x4c, 0x2b, 0x42, 0x4e, 0x55, 0x57, 0x0a, 0x30, 0x61, 0x71, 0x38, 0x6d, 0x6d, 0x2b, 0x33, 0x6f, 0x4a, 0x55, 0x5a, 0x62, 0x73, 0x6f, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x47, 0x47, 0x4d, 0x41, 0x6f, 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x42, 0x41, 0x4d, 0x44, 0x41, 0x32, 0x63, 0x41, 0x4d, 0x47, 0x51, 0x43, 0x4d, 0x42, 0x48, 0x65, 0x72, 0x76, 0x6a, 0x63, 0x54, 0x6f, 0x69, 0x77, 0x71, 0x66, 0x41, 0x69, 0x0a, 0x72, 0x63, 0x4a, 0x52, 0x51, 0x4f, 0x39, 0x67, 0x63, 0x53, 0x33, 0x75, 0x6a, 0x77, 0x4c, 0x45, 0x58, 0x51, 0x4e, 0x77, 0x53, 0x61, 0x53, 0x53, 0x36, 0x73, 0x55, 0x55, 0x69, 0x48, 0x43, 0x6d, 0x30, 0x77, 0x32, 0x77, 0x71, 0x73, 0x6f, 0x73, 0x51, 0x4a, 0x7a, 0x37, 0x36, 0x59, 0x4a, 0x75, 0x6d, 0x67, 0x49, 0x77, 0x4b, 0x30, 0x65, 0x61, 0x42, 0x38, 0x62, 0x52, 0x77, 0x6f, 0x46, 0x38, 0x79, 0x67, 0x75, 0x57, 0x47, 0x45, 0x45, 0x62, 0x6f, 0x2f, 0x51, 0x77, 0x0a, 0x43, 0x5a, 0x36, 0x31, 0x49, 0x79, 0x67, 0x4e, 0x6e, 0x78, 0x53, 0x32, 0x50, 0x46, 0x4f, 0x69, 0x54, 0x41, 0x5a, 0x70, 0x66, 0x66, 0x70, 0x73, 0x6b, 0x63, 0x59, 0x71, 0x53, 0x55, 0x58, 0x6d, 0x37, 0x4c, 0x63, 0x54, 0x34, 0x54, 0x70, 0x73, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x41, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x64, 0x61, 0x64, 0x20, 0x64, 0x65, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x63, 0x69, 0x6f, 0x6e, 0x20, 0x46, 0x69, 0x72, 0x6d, 0x61, 0x70, 0x72, 0x6f, 0x66, 0x65, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x43, 0x49, 0x46, 0x20, 0x41, 0x36, 0x32, 0x36, 0x33, 0x34, 0x30, 0x36, 0x38, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x47, 0x46, 0x44, 0x43, 0x43, 0x41, 0x2f, 0x79, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x49, 0x47, 0x33, 0x44, 0x70, 0x30, 0x76, 0x2b, 0x75, 0x62, 0x48, 0x45, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x77, 0x55, 0x54, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x52, 0x56, 0x4d, 0x78, 0x51, 0x6a, 0x42, 0x41, 0x0a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x4f, 0x55, 0x46, 0x31, 0x64, 0x47, 0x39, 0x79, 0x61, 0x57, 0x52, 0x68, 0x5a, 0x43, 0x42, 0x6b, 0x5a, 0x53, 0x42, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x61, 0x57, 0x5a, 0x70, 0x59, 0x32, 0x46, 0x6a, 0x61, 0x57, 0x39, 0x75, 0x49, 0x45, 0x5a, 0x70, 0x63, 0x6d, 0x31, 0x68, 0x63, 0x48, 0x4a, 0x76, 0x5a, 0x6d, 0x56, 0x7a, 0x61, 0x57, 0x39, 0x75, 0x59, 0x57, 0x77, 0x67, 0x51, 0x30, 0x6c, 0x47, 0x49, 0x45, 0x45, 0x32, 0x0a, 0x4d, 0x6a, 0x59, 0x7a, 0x4e, 0x44, 0x41, 0x32, 0x4f, 0x44, 0x41, 0x65, 0x46, 0x77, 0x30, 0x78, 0x4e, 0x44, 0x41, 0x35, 0x4d, 0x6a, 0x4d, 0x78, 0x4e, 0x54, 0x49, 0x79, 0x4d, 0x44, 0x64, 0x61, 0x46, 0x77, 0x30, 0x7a, 0x4e, 0x6a, 0x41, 0x31, 0x4d, 0x44, 0x55, 0x78, 0x4e, 0x54, 0x49, 0x79, 0x4d, 0x44, 0x64, 0x61, 0x4d, 0x46, 0x45, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6b, 0x56, 0x54, 0x4d, 0x55, 0x49, 0x77, 0x0a, 0x51, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x44, 0x44, 0x6c, 0x42, 0x64, 0x58, 0x52, 0x76, 0x63, 0x6d, 0x6c, 0x6b, 0x59, 0x57, 0x51, 0x67, 0x5a, 0x47, 0x55, 0x67, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x59, 0x32, 0x6c, 0x76, 0x62, 0x69, 0x42, 0x47, 0x61, 0x58, 0x4a, 0x74, 0x59, 0x58, 0x42, 0x79, 0x62, 0x32, 0x5a, 0x6c, 0x63, 0x32, 0x6c, 0x76, 0x62, 0x6d, 0x46, 0x73, 0x49, 0x45, 0x4e, 0x4a, 0x52, 0x69, 0x42, 0x42, 0x0a, 0x4e, 0x6a, 0x49, 0x32, 0x4d, 0x7a, 0x51, 0x77, 0x4e, 0x6a, 0x67, 0x77, 0x67, 0x67, 0x49, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x49, 0x4b, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x44, 0x4b, 0x6c, 0x6d, 0x75, 0x4f, 0x36, 0x76, 0x6a, 0x37, 0x38, 0x61, 0x49, 0x31, 0x34, 0x48, 0x39, 0x4d, 0x32, 0x75, 0x44, 0x44, 0x0a, 0x55, 0x74, 0x64, 0x39, 0x74, 0x68, 0x44, 0x49, 0x41, 0x6c, 0x36, 0x7a, 0x51, 0x79, 0x72, 0x45, 0x54, 0x32, 0x71, 0x79, 0x79, 0x68, 0x78, 0x64, 0x4b, 0x4a, 0x70, 0x34, 0x45, 0x52, 0x70, 0x70, 0x57, 0x56, 0x65, 0x76, 0x74, 0x53, 0x42, 0x43, 0x35, 0x49, 0x73, 0x50, 0x35, 0x74, 0x39, 0x62, 0x70, 0x67, 0x4f, 0x53, 0x4c, 0x2f, 0x55, 0x52, 0x35, 0x47, 0x4c, 0x58, 0x4d, 0x6e, 0x45, 0x34, 0x32, 0x51, 0x51, 0x4d, 0x63, 0x61, 0x73, 0x39, 0x55, 0x58, 0x34, 0x50, 0x0a, 0x42, 0x39, 0x39, 0x6a, 0x42, 0x56, 0x7a, 0x70, 0x76, 0x35, 0x52, 0x76, 0x77, 0x53, 0x6d, 0x43, 0x77, 0x4c, 0x54, 0x61, 0x55, 0x62, 0x44, 0x42, 0x50, 0x4c, 0x75, 0x74, 0x4e, 0x30, 0x70, 0x63, 0x79, 0x76, 0x46, 0x4c, 0x4e, 0x67, 0x34, 0x6b, 0x71, 0x37, 0x2f, 0x44, 0x68, 0x48, 0x66, 0x39, 0x71, 0x46, 0x44, 0x30, 0x73, 0x65, 0x66, 0x47, 0x4c, 0x39, 0x49, 0x74, 0x57, 0x59, 0x31, 0x36, 0x43, 0x6b, 0x36, 0x57, 0x61, 0x56, 0x49, 0x43, 0x71, 0x6a, 0x61, 0x59, 0x0a, 0x37, 0x50, 0x7a, 0x36, 0x46, 0x49, 0x4d, 0x4d, 0x4e, 0x78, 0x2f, 0x4a, 0x6b, 0x6a, 0x64, 0x2f, 0x31, 0x34, 0x45, 0x74, 0x35, 0x63, 0x53, 0x35, 0x34, 0x44, 0x34, 0x30, 0x2f, 0x6d, 0x66, 0x30, 0x50, 0x6d, 0x62, 0x52, 0x30, 0x2f, 0x52, 0x41, 0x7a, 0x31, 0x35, 0x69, 0x4e, 0x41, 0x39, 0x77, 0x42, 0x6a, 0x34, 0x67, 0x47, 0x46, 0x72, 0x4f, 0x39, 0x33, 0x49, 0x62, 0x4a, 0x57, 0x79, 0x54, 0x64, 0x42, 0x53, 0x54, 0x6f, 0x33, 0x4f, 0x78, 0x44, 0x71, 0x71, 0x48, 0x0a, 0x45, 0x43, 0x4e, 0x5a, 0x58, 0x79, 0x41, 0x46, 0x47, 0x55, 0x66, 0x74, 0x61, 0x49, 0x36, 0x53, 0x45, 0x73, 0x70, 0x64, 0x2f, 0x4e, 0x59, 0x72, 0x73, 0x70, 0x49, 0x38, 0x49, 0x4d, 0x2f, 0x68, 0x58, 0x36, 0x38, 0x67, 0x76, 0x71, 0x42, 0x32, 0x66, 0x33, 0x62, 0x6c, 0x37, 0x42, 0x71, 0x47, 0x59, 0x54, 0x4d, 0x2b, 0x35, 0x33, 0x75, 0x30, 0x50, 0x36, 0x41, 0x50, 0x6a, 0x71, 0x4b, 0x35, 0x61, 0x6d, 0x2b, 0x35, 0x68, 0x79, 0x5a, 0x76, 0x51, 0x57, 0x79, 0x49, 0x0a, 0x70, 0x6c, 0x44, 0x39, 0x61, 0x6d, 0x4d, 0x4c, 0x39, 0x5a, 0x4d, 0x57, 0x47, 0x78, 0x6d, 0x50, 0x73, 0x75, 0x32, 0x62, 0x6d, 0x38, 0x6d, 0x51, 0x39, 0x51, 0x45, 0x4d, 0x33, 0x78, 0x6b, 0x39, 0x44, 0x7a, 0x34, 0x34, 0x49, 0x38, 0x6b, 0x76, 0x6a, 0x77, 0x7a, 0x52, 0x41, 0x76, 0x34, 0x62, 0x56, 0x64, 0x5a, 0x4f, 0x30, 0x49, 0x30, 0x38, 0x72, 0x30, 0x2b, 0x6b, 0x38, 0x2f, 0x36, 0x76, 0x4b, 0x74, 0x4d, 0x46, 0x6e, 0x58, 0x6b, 0x49, 0x6f, 0x63, 0x74, 0x58, 0x0a, 0x4d, 0x62, 0x53, 0x63, 0x79, 0x4a, 0x43, 0x79, 0x5a, 0x2f, 0x51, 0x59, 0x46, 0x70, 0x4d, 0x36, 0x2f, 0x45, 0x66, 0x59, 0x30, 0x58, 0x69, 0x57, 0x4d, 0x52, 0x2b, 0x36, 0x4b, 0x77, 0x78, 0x66, 0x58, 0x5a, 0x6d, 0x74, 0x59, 0x34, 0x6c, 0x61, 0x4a, 0x43, 0x42, 0x32, 0x32, 0x4e, 0x2f, 0x39, 0x71, 0x30, 0x36, 0x6d, 0x49, 0x71, 0x71, 0x64, 0x58, 0x75, 0x59, 0x6e, 0x69, 0x6e, 0x31, 0x6f, 0x4b, 0x61, 0x50, 0x6e, 0x69, 0x72, 0x6a, 0x61, 0x45, 0x62, 0x73, 0x58, 0x0a, 0x4c, 0x5a, 0x6d, 0x64, 0x45, 0x79, 0x52, 0x47, 0x39, 0x38, 0x58, 0x69, 0x32, 0x4a, 0x2b, 0x4f, 0x66, 0x38, 0x65, 0x50, 0x64, 0x47, 0x31, 0x61, 0x73, 0x75, 0x68, 0x79, 0x39, 0x61, 0x7a, 0x75, 0x4a, 0x42, 0x43, 0x74, 0x4c, 0x78, 0x54, 0x61, 0x2f, 0x79, 0x32, 0x61, 0x52, 0x6e, 0x46, 0x48, 0x76, 0x6b, 0x4c, 0x66, 0x75, 0x77, 0x48, 0x62, 0x39, 0x48, 0x2f, 0x54, 0x4b, 0x49, 0x38, 0x78, 0x57, 0x56, 0x76, 0x54, 0x79, 0x51, 0x4b, 0x6d, 0x74, 0x46, 0x4c, 0x4b, 0x0a, 0x62, 0x70, 0x66, 0x37, 0x51, 0x38, 0x55, 0x49, 0x4a, 0x6d, 0x2b, 0x4b, 0x39, 0x4c, 0x76, 0x39, 0x6e, 0x79, 0x69, 0x71, 0x44, 0x64, 0x56, 0x46, 0x38, 0x78, 0x4d, 0x36, 0x48, 0x64, 0x6a, 0x41, 0x65, 0x49, 0x39, 0x42, 0x5a, 0x7a, 0x77, 0x65, 0x6c, 0x47, 0x53, 0x75, 0x65, 0x77, 0x76, 0x46, 0x36, 0x4e, 0x6b, 0x42, 0x69, 0x44, 0x6b, 0x61, 0x6c, 0x34, 0x5a, 0x6b, 0x51, 0x64, 0x55, 0x37, 0x68, 0x77, 0x78, 0x75, 0x2b, 0x67, 0x2f, 0x47, 0x76, 0x55, 0x67, 0x55, 0x0a, 0x76, 0x7a, 0x6c, 0x4e, 0x31, 0x4a, 0x35, 0x42, 0x74, 0x6f, 0x2b, 0x57, 0x48, 0x57, 0x4f, 0x57, 0x6b, 0x39, 0x6d, 0x56, 0x42, 0x6e, 0x67, 0x78, 0x61, 0x4a, 0x34, 0x33, 0x42, 0x6a, 0x75, 0x41, 0x69, 0x55, 0x56, 0x68, 0x4f, 0x53, 0x50, 0x48, 0x47, 0x30, 0x53, 0x6a, 0x46, 0x65, 0x55, 0x63, 0x2b, 0x4a, 0x49, 0x77, 0x75, 0x77, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x34, 0x48, 0x76, 0x4d, 0x49, 0x48, 0x73, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x0a, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x52, 0x6c, 0x7a, 0x65, 0x75, 0x72, 0x4e, 0x52, 0x34, 0x41, 0x50, 0x6e, 0x37, 0x56, 0x64, 0x4d, 0x41, 0x63, 0x74, 0x48, 0x4e, 0x48, 0x44, 0x68, 0x70, 0x6b, 0x4c, 0x7a, 0x41, 0x53, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x43, 0x44, 0x41, 0x47, 0x41, 0x51, 0x48, 0x2f, 0x41, 0x67, 0x45, 0x42, 0x4d, 0x49, 0x47, 0x6d, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x53, 0x41, 0x45, 0x67, 0x5a, 0x34, 0x77, 0x0a, 0x67, 0x5a, 0x73, 0x77, 0x67, 0x5a, 0x67, 0x47, 0x42, 0x46, 0x55, 0x64, 0x49, 0x41, 0x41, 0x77, 0x67, 0x59, 0x38, 0x77, 0x4c, 0x77, 0x59, 0x49, 0x4b, 0x77, 0x59, 0x42, 0x42, 0x51, 0x55, 0x48, 0x41, 0x67, 0x45, 0x57, 0x49, 0x32, 0x68, 0x30, 0x64, 0x48, 0x41, 0x36, 0x4c, 0x79, 0x39, 0x33, 0x64, 0x33, 0x63, 0x75, 0x5a, 0x6d, 0x6c, 0x79, 0x62, 0x57, 0x46, 0x77, 0x63, 0x6d, 0x39, 0x6d, 0x5a, 0x58, 0x4e, 0x70, 0x62, 0x32, 0x35, 0x68, 0x62, 0x43, 0x35, 0x6a, 0x0a, 0x62, 0x32, 0x30, 0x76, 0x59, 0x33, 0x42, 0x7a, 0x4d, 0x46, 0x77, 0x47, 0x43, 0x43, 0x73, 0x47, 0x41, 0x51, 0x55, 0x46, 0x42, 0x77, 0x49, 0x43, 0x4d, 0x46, 0x41, 0x65, 0x54, 0x67, 0x42, 0x51, 0x41, 0x47, 0x45, 0x41, 0x63, 0x77, 0x42, 0x6c, 0x41, 0x47, 0x38, 0x41, 0x49, 0x41, 0x42, 0x6b, 0x41, 0x47, 0x55, 0x41, 0x49, 0x41, 0x42, 0x73, 0x41, 0x47, 0x45, 0x41, 0x49, 0x41, 0x42, 0x43, 0x41, 0x47, 0x38, 0x41, 0x62, 0x67, 0x42, 0x68, 0x41, 0x47, 0x34, 0x41, 0x0a, 0x62, 0x77, 0x42, 0x32, 0x41, 0x47, 0x45, 0x41, 0x49, 0x41, 0x41, 0x30, 0x41, 0x44, 0x63, 0x41, 0x49, 0x41, 0x42, 0x43, 0x41, 0x47, 0x45, 0x41, 0x63, 0x67, 0x42, 0x6a, 0x41, 0x47, 0x55, 0x41, 0x62, 0x41, 0x42, 0x76, 0x41, 0x47, 0x34, 0x41, 0x59, 0x51, 0x41, 0x67, 0x41, 0x44, 0x41, 0x41, 0x4f, 0x41, 0x41, 0x77, 0x41, 0x44, 0x45, 0x41, 0x4e, 0x7a, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x0a, 0x41, 0x51, 0x59, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x42, 0x41, 0x48, 0x53, 0x48, 0x4b, 0x41, 0x49, 0x72, 0x64, 0x78, 0x39, 0x6d, 0x69, 0x57, 0x54, 0x74, 0x6a, 0x33, 0x51, 0x75, 0x52, 0x68, 0x79, 0x37, 0x71, 0x50, 0x6a, 0x34, 0x43, 0x78, 0x32, 0x44, 0x74, 0x6a, 0x71, 0x6e, 0x36, 0x45, 0x57, 0x4b, 0x42, 0x37, 0x66, 0x67, 0x50, 0x69, 0x44, 0x4c, 0x0a, 0x34, 0x51, 0x6a, 0x62, 0x45, 0x77, 0x6a, 0x34, 0x4b, 0x4b, 0x45, 0x31, 0x73, 0x6f, 0x43, 0x7a, 0x43, 0x31, 0x48, 0x41, 0x30, 0x31, 0x61, 0x61, 0x6a, 0x54, 0x4e, 0x46, 0x53, 0x61, 0x39, 0x4a, 0x38, 0x4f, 0x41, 0x39, 0x42, 0x33, 0x70, 0x46, 0x45, 0x31, 0x72, 0x2f, 0x79, 0x4a, 0x66, 0x59, 0x30, 0x78, 0x67, 0x73, 0x66, 0x5a, 0x62, 0x34, 0x33, 0x61, 0x4a, 0x6c, 0x51, 0x33, 0x43, 0x54, 0x6b, 0x42, 0x57, 0x36, 0x6b, 0x4e, 0x2f, 0x6f, 0x47, 0x62, 0x44, 0x62, 0x0a, 0x4c, 0x49, 0x70, 0x67, 0x44, 0x37, 0x64, 0x76, 0x6c, 0x41, 0x63, 0x65, 0x48, 0x61, 0x62, 0x4a, 0x68, 0x66, 0x61, 0x39, 0x4e, 0x50, 0x68, 0x41, 0x65, 0x47, 0x49, 0x51, 0x63, 0x44, 0x71, 0x2b, 0x66, 0x55, 0x73, 0x35, 0x67, 0x61, 0x6b, 0x51, 0x31, 0x4a, 0x5a, 0x42, 0x75, 0x2f, 0x68, 0x66, 0x48, 0x41, 0x73, 0x64, 0x43, 0x50, 0x4b, 0x78, 0x73, 0x49, 0x6c, 0x36, 0x38, 0x76, 0x65, 0x67, 0x34, 0x4d, 0x53, 0x50, 0x69, 0x33, 0x69, 0x31, 0x4f, 0x31, 0x69, 0x6c, 0x0a, 0x49, 0x34, 0x35, 0x50, 0x56, 0x66, 0x34, 0x32, 0x4f, 0x2b, 0x41, 0x4d, 0x74, 0x38, 0x6f, 0x71, 0x4d, 0x45, 0x45, 0x67, 0x74, 0x49, 0x44, 0x4e, 0x72, 0x76, 0x78, 0x32, 0x5a, 0x6e, 0x4f, 0x6f, 0x72, 0x6d, 0x37, 0x68, 0x66, 0x4e, 0x6f, 0x44, 0x36, 0x4a, 0x51, 0x67, 0x35, 0x69, 0x4b, 0x6a, 0x30, 0x42, 0x2b, 0x51, 0x58, 0x53, 0x42, 0x54, 0x46, 0x43, 0x5a, 0x58, 0x32, 0x6c, 0x53, 0x58, 0x33, 0x78, 0x5a, 0x45, 0x45, 0x41, 0x45, 0x65, 0x69, 0x47, 0x61, 0x50, 0x0a, 0x63, 0x6a, 0x69, 0x54, 0x33, 0x53, 0x43, 0x33, 0x4e, 0x4c, 0x37, 0x58, 0x38, 0x65, 0x35, 0x6a, 0x6a, 0x6b, 0x64, 0x35, 0x4b, 0x41, 0x62, 0x38, 0x38, 0x31, 0x6c, 0x46, 0x4a, 0x57, 0x41, 0x69, 0x4d, 0x78, 0x75, 0x6a, 0x58, 0x36, 0x69, 0x36, 0x4b, 0x74, 0x6f, 0x61, 0x50, 0x63, 0x31, 0x41, 0x36, 0x6f, 0x7a, 0x75, 0x42, 0x52, 0x57, 0x56, 0x31, 0x61, 0x55, 0x73, 0x49, 0x43, 0x2b, 0x6e, 0x6d, 0x43, 0x6a, 0x75, 0x52, 0x66, 0x7a, 0x78, 0x75, 0x49, 0x67, 0x41, 0x0a, 0x4c, 0x49, 0x39, 0x43, 0x32, 0x6c, 0x48, 0x56, 0x6e, 0x4f, 0x55, 0x54, 0x61, 0x48, 0x46, 0x46, 0x51, 0x34, 0x75, 0x65, 0x43, 0x79, 0x45, 0x38, 0x53, 0x31, 0x77, 0x46, 0x33, 0x42, 0x71, 0x66, 0x6d, 0x49, 0x37, 0x61, 0x76, 0x53, 0x4b, 0x65, 0x63, 0x73, 0x32, 0x74, 0x43, 0x73, 0x76, 0x4d, 0x6f, 0x32, 0x65, 0x62, 0x4b, 0x48, 0x54, 0x45, 0x6d, 0x39, 0x63, 0x61, 0x50, 0x41, 0x52, 0x59, 0x70, 0x6f, 0x4b, 0x64, 0x72, 0x63, 0x64, 0x37, 0x62, 0x2f, 0x2b, 0x41, 0x0a, 0x6c, 0x75, 0x6e, 0x34, 0x6a, 0x57, 0x71, 0x39, 0x47, 0x4a, 0x41, 0x64, 0x2f, 0x30, 0x6b, 0x61, 0x6b, 0x46, 0x49, 0x33, 0x6b, 0x79, 0x38, 0x38, 0x41, 0x6c, 0x32, 0x43, 0x64, 0x67, 0x74, 0x52, 0x35, 0x78, 0x62, 0x48, 0x56, 0x2f, 0x67, 0x34, 0x2b, 0x61, 0x66, 0x4e, 0x6d, 0x79, 0x4a, 0x55, 0x37, 0x32, 0x4f, 0x77, 0x46, 0x57, 0x31, 0x54, 0x5a, 0x51, 0x4e, 0x4b, 0x58, 0x6b, 0x71, 0x67, 0x73, 0x71, 0x65, 0x4f, 0x53, 0x51, 0x42, 0x5a, 0x4f, 0x4e, 0x58, 0x48, 0x0a, 0x39, 0x49, 0x42, 0x6b, 0x39, 0x57, 0x36, 0x56, 0x55, 0x4c, 0x67, 0x52, 0x66, 0x68, 0x56, 0x77, 0x4f, 0x45, 0x71, 0x77, 0x66, 0x39, 0x44, 0x45, 0x4d, 0x6e, 0x44, 0x41, 0x47, 0x66, 0x2f, 0x4a, 0x4f, 0x43, 0x30, 0x55, 0x4c, 0x47, 0x62, 0x30, 0x51, 0x6b, 0x54, 0x6d, 0x56, 0x58, 0x59, 0x62, 0x67, 0x42, 0x56, 0x58, 0x2f, 0x38, 0x43, 0x6e, 0x70, 0x36, 0x6f, 0x35, 0x71, 0x74, 0x6a, 0x54, 0x63, 0x4e, 0x41, 0x75, 0x75, 0x75, 0x75, 0x55, 0x61, 0x76, 0x70, 0x66, 0x0a, 0x4e, 0x49, 0x62, 0x6e, 0x59, 0x72, 0x58, 0x39, 0x69, 0x76, 0x41, 0x77, 0x68, 0x5a, 0x54, 0x4a, 0x72, 0x79, 0x51, 0x43, 0x4c, 0x32, 0x2f, 0x57, 0x33, 0x57, 0x66, 0x2b, 0x34, 0x37, 0x42, 0x56, 0x54, 0x77, 0x53, 0x59, 0x54, 0x36, 0x52, 0x42, 0x56, 0x75, 0x4b, 0x54, 0x30, 0x47, 0x72, 0x6f, 0x31, 0x76, 0x50, 0x37, 0x5a, 0x65, 0x44, 0x4f, 0x64, 0x63, 0x51, 0x78, 0x57, 0x51, 0x7a, 0x75, 0x67, 0x73, 0x67, 0x4d, 0x59, 0x44, 0x4e, 0x4b, 0x47, 0x62, 0x71, 0x45, 0x0a, 0x5a, 0x79, 0x63, 0x50, 0x76, 0x45, 0x4a, 0x64, 0x76, 0x53, 0x52, 0x55, 0x44, 0x65, 0x77, 0x64, 0x63, 0x41, 0x5a, 0x66, 0x70, 0x4c, 0x7a, 0x36, 0x49, 0x48, 0x78, 0x56, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x76, 0x54, 0x72, 0x75, 0x73, 0x20, 0x45, 0x43, 0x43, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x44, 0x7a, 0x43, 0x43, 0x41, 0x5a, 0x57, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x55, 0x62, 0x6d, 0x71, 0x38, 0x57, 0x61, 0x70, 0x54, 0x76, 0x70, 0x67, 0x35, 0x5a, 0x36, 0x4c, 0x53, 0x61, 0x36, 0x51, 0x37, 0x35, 0x6d, 0x30, 0x63, 0x31, 0x74, 0x6f, 0x77, 0x43, 0x67, 0x59, 0x49, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x45, 0x41, 0x77, 0x4d, 0x77, 0x52, 0x7a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x0a, 0x42, 0x68, 0x4d, 0x43, 0x51, 0x30, 0x34, 0x78, 0x48, 0x44, 0x41, 0x61, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x45, 0x32, 0x6c, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x51, 0x32, 0x68, 0x70, 0x62, 0x6d, 0x45, 0x67, 0x51, 0x32, 0x38, 0x75, 0x4c, 0x45, 0x78, 0x30, 0x5a, 0x43, 0x34, 0x78, 0x47, 0x6a, 0x41, 0x59, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x45, 0x58, 0x5a, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x49, 0x45, 0x56, 0x44, 0x51, 0x79, 0x42, 0x53, 0x0a, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x42, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x45, 0x34, 0x4d, 0x44, 0x63, 0x7a, 0x4d, 0x54, 0x41, 0x33, 0x4d, 0x6a, 0x59, 0x30, 0x4e, 0x46, 0x6f, 0x58, 0x44, 0x54, 0x51, 0x7a, 0x4d, 0x44, 0x63, 0x7a, 0x4d, 0x54, 0x41, 0x33, 0x4d, 0x6a, 0x59, 0x30, 0x4e, 0x46, 0x6f, 0x77, 0x52, 0x7a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x51, 0x30, 0x34, 0x78, 0x48, 0x44, 0x41, 0x61, 0x0a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x45, 0x32, 0x6c, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x51, 0x32, 0x68, 0x70, 0x62, 0x6d, 0x45, 0x67, 0x51, 0x32, 0x38, 0x75, 0x4c, 0x45, 0x78, 0x30, 0x5a, 0x43, 0x34, 0x78, 0x47, 0x6a, 0x41, 0x59, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x45, 0x58, 0x5a, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x49, 0x45, 0x56, 0x44, 0x51, 0x79, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x42, 0x4d, 0x48, 0x59, 0x77, 0x0a, 0x45, 0x41, 0x59, 0x48, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x43, 0x41, 0x51, 0x59, 0x46, 0x4b, 0x34, 0x45, 0x45, 0x41, 0x43, 0x49, 0x44, 0x59, 0x67, 0x41, 0x45, 0x5a, 0x56, 0x42, 0x4b, 0x72, 0x6f, 0x78, 0x35, 0x6c, 0x6b, 0x71, 0x71, 0x48, 0x41, 0x6a, 0x44, 0x6f, 0x36, 0x4c, 0x4e, 0x2f, 0x6c, 0x6c, 0x57, 0x51, 0x58, 0x66, 0x39, 0x4a, 0x70, 0x52, 0x43, 0x75, 0x78, 0x33, 0x4e, 0x43, 0x4e, 0x74, 0x7a, 0x73, 0x6c, 0x74, 0x31, 0x38, 0x38, 0x2b, 0x63, 0x0a, 0x54, 0x6f, 0x4c, 0x30, 0x76, 0x2f, 0x68, 0x68, 0x4a, 0x6f, 0x56, 0x73, 0x31, 0x6f, 0x56, 0x62, 0x63, 0x6e, 0x44, 0x53, 0x2f, 0x64, 0x74, 0x69, 0x74, 0x4e, 0x39, 0x54, 0x69, 0x37, 0x32, 0x78, 0x52, 0x46, 0x68, 0x69, 0x51, 0x67, 0x6e, 0x48, 0x2b, 0x6e, 0x39, 0x62, 0x45, 0x4f, 0x66, 0x2b, 0x51, 0x50, 0x33, 0x41, 0x32, 0x4d, 0x4d, 0x72, 0x4d, 0x75, 0x64, 0x77, 0x70, 0x72, 0x65, 0x6d, 0x49, 0x46, 0x55, 0x64, 0x65, 0x34, 0x42, 0x64, 0x53, 0x34, 0x39, 0x6e, 0x0a, 0x54, 0x50, 0x45, 0x51, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x6d, 0x44, 0x6e, 0x4e, 0x76, 0x74, 0x69, 0x79, 0x6a, 0x50, 0x65, 0x79, 0x71, 0x2b, 0x47, 0x74, 0x4a, 0x4b, 0x39, 0x37, 0x66, 0x4b, 0x48, 0x62, 0x48, 0x38, 0x38, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x4f, 0x0a, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x51, 0x59, 0x77, 0x43, 0x67, 0x59, 0x49, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x45, 0x41, 0x77, 0x4d, 0x44, 0x61, 0x41, 0x41, 0x77, 0x5a, 0x51, 0x49, 0x77, 0x56, 0x35, 0x33, 0x64, 0x56, 0x76, 0x48, 0x48, 0x34, 0x2b, 0x6d, 0x34, 0x53, 0x56, 0x42, 0x72, 0x6d, 0x32, 0x6e, 0x44, 0x62, 0x2b, 0x7a, 0x44, 0x66, 0x53, 0x58, 0x6b, 0x56, 0x35, 0x55, 0x54, 0x0a, 0x51, 0x4a, 0x74, 0x53, 0x30, 0x7a, 0x76, 0x7a, 0x51, 0x42, 0x6d, 0x38, 0x4a, 0x73, 0x63, 0x74, 0x42, 0x70, 0x36, 0x31, 0x65, 0x7a, 0x61, 0x66, 0x39, 0x53, 0x58, 0x55, 0x59, 0x32, 0x73, 0x41, 0x41, 0x6a, 0x45, 0x41, 0x36, 0x64, 0x50, 0x47, 0x6e, 0x6c, 0x61, 0x61, 0x4b, 0x73, 0x79, 0x68, 0x32, 0x6a, 0x2f, 0x49, 0x5a, 0x69, 0x76, 0x54, 0x57, 0x4a, 0x77, 0x67, 0x68, 0x66, 0x71, 0x72, 0x6b, 0x59, 0x70, 0x77, 0x63, 0x42, 0x45, 0x34, 0x59, 0x47, 0x51, 0x4c, 0x0a, 0x59, 0x67, 0x6d, 0x52, 0x57, 0x41, 0x44, 0x35, 0x54, 0x66, 0x73, 0x30, 0x61, 0x4e, 0x6f, 0x4a, 0x72, 0x53, 0x45, 0x47, 0x47, 0x4a, 0x54, 0x4f, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x76, 0x54, 0x72, 0x75, 0x73, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x56, 0x6a, 0x43, 0x43, 0x41, 0x7a, 0x36, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x55, 0x51, 0x2b, 0x4e, 0x78, 0x45, 0x39, 0x69, 0x7a, 0x57, 0x52, 0x52, 0x64, 0x74, 0x38, 0x36, 0x4d, 0x2f, 0x54, 0x58, 0x39, 0x62, 0x37, 0x77, 0x46, 0x6a, 0x55, 0x55, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x77, 0x51, 0x7a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x0a, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x51, 0x30, 0x34, 0x78, 0x48, 0x44, 0x41, 0x61, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x45, 0x32, 0x6c, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x51, 0x32, 0x68, 0x70, 0x62, 0x6d, 0x45, 0x67, 0x51, 0x32, 0x38, 0x75, 0x4c, 0x45, 0x78, 0x30, 0x5a, 0x43, 0x34, 0x78, 0x46, 0x6a, 0x41, 0x55, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x44, 0x58, 0x5a, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x49, 0x46, 0x4a, 0x76, 0x0a, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x54, 0x67, 0x77, 0x4e, 0x7a, 0x4d, 0x78, 0x4d, 0x44, 0x63, 0x79, 0x4e, 0x44, 0x41, 0x31, 0x57, 0x68, 0x63, 0x4e, 0x4e, 0x44, 0x4d, 0x77, 0x4e, 0x7a, 0x4d, 0x78, 0x4d, 0x44, 0x63, 0x79, 0x4e, 0x44, 0x41, 0x31, 0x57, 0x6a, 0x42, 0x44, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x44, 0x54, 0x6a, 0x45, 0x63, 0x4d, 0x42, 0x6f, 0x47, 0x0a, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x54, 0x61, 0x56, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x44, 0x61, 0x47, 0x6c, 0x75, 0x59, 0x53, 0x42, 0x44, 0x62, 0x79, 0x34, 0x73, 0x54, 0x48, 0x52, 0x6b, 0x4c, 0x6a, 0x45, 0x57, 0x4d, 0x42, 0x51, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x4e, 0x64, 0x6c, 0x52, 0x79, 0x64, 0x58, 0x4d, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x51, 0x54, 0x43, 0x43, 0x41, 0x69, 0x49, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x0a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x50, 0x41, 0x44, 0x43, 0x43, 0x41, 0x67, 0x6f, 0x43, 0x67, 0x67, 0x49, 0x42, 0x41, 0x4c, 0x31, 0x56, 0x66, 0x47, 0x48, 0x54, 0x75, 0x42, 0x30, 0x45, 0x59, 0x67, 0x57, 0x67, 0x72, 0x6d, 0x79, 0x33, 0x63, 0x4c, 0x52, 0x42, 0x36, 0x6b, 0x73, 0x44, 0x58, 0x68, 0x41, 0x2f, 0x6b, 0x46, 0x6f, 0x63, 0x69, 0x7a, 0x75, 0x77, 0x5a, 0x6f, 0x74, 0x73, 0x0a, 0x53, 0x4b, 0x59, 0x63, 0x49, 0x72, 0x72, 0x56, 0x51, 0x4a, 0x4c, 0x75, 0x4d, 0x37, 0x49, 0x6a, 0x57, 0x63, 0x6d, 0x4f, 0x76, 0x46, 0x6a, 0x61, 0x69, 0x35, 0x37, 0x51, 0x47, 0x66, 0x49, 0x76, 0x57, 0x63, 0x61, 0x4d, 0x59, 0x31, 0x71, 0x36, 0x6e, 0x36, 0x4d, 0x4c, 0x73, 0x4c, 0x4f, 0x61, 0x58, 0x4c, 0x6f, 0x52, 0x75, 0x42, 0x4c, 0x70, 0x44, 0x4c, 0x76, 0x50, 0x62, 0x6d, 0x79, 0x41, 0x68, 0x79, 0x6b, 0x55, 0x41, 0x79, 0x79, 0x4e, 0x4a, 0x4a, 0x72, 0x49, 0x0a, 0x5a, 0x49, 0x4f, 0x31, 0x61, 0x71, 0x77, 0x54, 0x4c, 0x44, 0x50, 0x78, 0x6e, 0x39, 0x77, 0x73, 0x59, 0x54, 0x77, 0x61, 0x50, 0x33, 0x42, 0x56, 0x6d, 0x36, 0x30, 0x41, 0x55, 0x6e, 0x2f, 0x50, 0x42, 0x4c, 0x6e, 0x2b, 0x4e, 0x76, 0x71, 0x63, 0x77, 0x42, 0x61, 0x75, 0x59, 0x76, 0x36, 0x57, 0x54, 0x45, 0x4e, 0x2b, 0x56, 0x52, 0x53, 0x2b, 0x47, 0x72, 0x50, 0x53, 0x62, 0x63, 0x4b, 0x76, 0x64, 0x6d, 0x61, 0x56, 0x61, 0x79, 0x71, 0x77, 0x6c, 0x48, 0x65, 0x46, 0x0a, 0x58, 0x67, 0x51, 0x50, 0x59, 0x68, 0x31, 0x6a, 0x64, 0x66, 0x64, 0x72, 0x35, 0x38, 0x74, 0x62, 0x6d, 0x6e, 0x44, 0x73, 0x50, 0x6d, 0x63, 0x46, 0x38, 0x50, 0x34, 0x48, 0x43, 0x49, 0x44, 0x50, 0x4b, 0x4e, 0x73, 0x46, 0x78, 0x68, 0x51, 0x6e, 0x4c, 0x34, 0x5a, 0x39, 0x38, 0x43, 0x66, 0x65, 0x2f, 0x2b, 0x5a, 0x2b, 0x4d, 0x30, 0x6a, 0x6e, 0x43, 0x78, 0x35, 0x59, 0x30, 0x53, 0x63, 0x72, 0x55, 0x77, 0x35, 0x58, 0x53, 0x6d, 0x58, 0x58, 0x2b, 0x36, 0x4b, 0x41, 0x0a, 0x59, 0x50, 0x78, 0x4d, 0x76, 0x44, 0x56, 0x54, 0x41, 0x57, 0x71, 0x58, 0x63, 0x6f, 0x4b, 0x76, 0x38, 0x52, 0x31, 0x77, 0x36, 0x4a, 0x7a, 0x31, 0x37, 0x31, 0x37, 0x43, 0x62, 0x4d, 0x64, 0x48, 0x66, 0x6c, 0x71, 0x55, 0x68, 0x53, 0x5a, 0x4e, 0x4f, 0x37, 0x72, 0x72, 0x54, 0x4f, 0x69, 0x77, 0x43, 0x63, 0x4a, 0x6c, 0x77, 0x70, 0x32, 0x64, 0x43, 0x5a, 0x74, 0x4f, 0x74, 0x5a, 0x63, 0x46, 0x72, 0x50, 0x55, 0x47, 0x6f, 0x50, 0x63, 0x32, 0x42, 0x58, 0x37, 0x30, 0x0a, 0x6b, 0x4c, 0x4a, 0x72, 0x78, 0x4c, 0x54, 0x35, 0x5a, 0x4f, 0x72, 0x70, 0x47, 0x67, 0x72, 0x49, 0x44, 0x61, 0x6a, 0x74, 0x4a, 0x38, 0x6e, 0x55, 0x35, 0x37, 0x4f, 0x35, 0x71, 0x34, 0x49, 0x69, 0x6b, 0x43, 0x63, 0x39, 0x4b, 0x75, 0x68, 0x38, 0x6b, 0x4f, 0x2b, 0x38, 0x54, 0x2f, 0x33, 0x69, 0x43, 0x69, 0x53, 0x6e, 0x33, 0x6d, 0x55, 0x6b, 0x70, 0x46, 0x33, 0x71, 0x77, 0x48, 0x59, 0x77, 0x30, 0x33, 0x64, 0x51, 0x2b, 0x41, 0x30, 0x45, 0x6d, 0x35, 0x51, 0x32, 0x0a, 0x41, 0x58, 0x50, 0x4b, 0x42, 0x6c, 0x69, 0x6d, 0x30, 0x7a, 0x76, 0x63, 0x2b, 0x67, 0x52, 0x47, 0x45, 0x31, 0x57, 0x4b, 0x79, 0x55, 0x52, 0x48, 0x75, 0x46, 0x45, 0x35, 0x47, 0x69, 0x37, 0x6f, 0x4e, 0x4f, 0x4a, 0x35, 0x79, 0x31, 0x6c, 0x4b, 0x43, 0x6e, 0x2b, 0x38, 0x70, 0x75, 0x38, 0x66, 0x41, 0x32, 0x64, 0x71, 0x57, 0x53, 0x73, 0x6c, 0x59, 0x70, 0x50, 0x5a, 0x55, 0x78, 0x6c, 0x6d, 0x50, 0x43, 0x64, 0x69, 0x4b, 0x59, 0x5a, 0x4e, 0x70, 0x47, 0x76, 0x75, 0x0a, 0x2f, 0x39, 0x52, 0x4f, 0x75, 0x74, 0x57, 0x30, 0x34, 0x6f, 0x35, 0x49, 0x57, 0x67, 0x41, 0x5a, 0x43, 0x66, 0x45, 0x46, 0x32, 0x63, 0x36, 0x52, 0x73, 0x66, 0x66, 0x72, 0x36, 0x54, 0x6c, 0x50, 0x39, 0x6d, 0x38, 0x45, 0x51, 0x35, 0x70, 0x56, 0x39, 0x54, 0x34, 0x46, 0x46, 0x4c, 0x32, 0x2f, 0x73, 0x31, 0x6d, 0x30, 0x32, 0x49, 0x34, 0x7a, 0x68, 0x4b, 0x4f, 0x51, 0x55, 0x71, 0x71, 0x7a, 0x41, 0x70, 0x56, 0x67, 0x2b, 0x51, 0x78, 0x4d, 0x61, 0x50, 0x6e, 0x75, 0x0a, 0x31, 0x52, 0x63, 0x4e, 0x2b, 0x48, 0x46, 0x58, 0x74, 0x53, 0x58, 0x6b, 0x4b, 0x65, 0x35, 0x6c, 0x58, 0x61, 0x2f, 0x52, 0x37, 0x6a, 0x77, 0x58, 0x43, 0x31, 0x70, 0x44, 0x78, 0x61, 0x57, 0x47, 0x36, 0x69, 0x53, 0x65, 0x34, 0x67, 0x55, 0x48, 0x33, 0x44, 0x52, 0x43, 0x45, 0x70, 0x48, 0x57, 0x4f, 0x58, 0x53, 0x75, 0x54, 0x45, 0x47, 0x43, 0x32, 0x2f, 0x4b, 0x6d, 0x53, 0x4e, 0x47, 0x7a, 0x6d, 0x2f, 0x4d, 0x7a, 0x71, 0x76, 0x4f, 0x6d, 0x77, 0x4d, 0x56, 0x4f, 0x0a, 0x39, 0x66, 0x53, 0x64, 0x64, 0x6d, 0x50, 0x6d, 0x41, 0x73, 0x59, 0x69, 0x53, 0x38, 0x47, 0x56, 0x50, 0x31, 0x42, 0x6b, 0x4c, 0x46, 0x54, 0x6c, 0x74, 0x76, 0x41, 0x38, 0x4b, 0x63, 0x39, 0x58, 0x41, 0x67, 0x4d, 0x42, 0x41, 0x41, 0x47, 0x6a, 0x51, 0x6a, 0x42, 0x41, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x52, 0x55, 0x59, 0x6e, 0x42, 0x6a, 0x38, 0x58, 0x57, 0x45, 0x51, 0x31, 0x69, 0x4f, 0x30, 0x52, 0x59, 0x67, 0x0a, 0x73, 0x63, 0x61, 0x73, 0x47, 0x72, 0x7a, 0x32, 0x69, 0x54, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x42, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x0a, 0x41, 0x67, 0x45, 0x41, 0x4b, 0x62, 0x71, 0x53, 0x53, 0x61, 0x65, 0x74, 0x38, 0x50, 0x46, 0x77, 0x77, 0x2b, 0x53, 0x58, 0x38, 0x4a, 0x2b, 0x70, 0x4a, 0x64, 0x56, 0x72, 0x6e, 0x6a, 0x54, 0x2b, 0x35, 0x68, 0x70, 0x6b, 0x39, 0x6a, 0x70, 0x72, 0x55, 0x72, 0x49, 0x51, 0x65, 0x42, 0x71, 0x66, 0x54, 0x4e, 0x71, 0x4b, 0x32, 0x75, 0x77, 0x63, 0x4e, 0x31, 0x4c, 0x67, 0x51, 0x6b, 0x76, 0x37, 0x62, 0x48, 0x62, 0x4b, 0x4a, 0x41, 0x73, 0x35, 0x45, 0x68, 0x57, 0x64, 0x0a, 0x6e, 0x78, 0x45, 0x74, 0x2f, 0x48, 0x6c, 0x6b, 0x33, 0x4f, 0x44, 0x67, 0x39, 0x64, 0x33, 0x67, 0x56, 0x38, 0x6d, 0x6c, 0x73, 0x6e, 0x5a, 0x77, 0x55, 0x4b, 0x54, 0x2b, 0x74, 0x77, 0x70, 0x77, 0x31, 0x61, 0x41, 0x30, 0x38, 0x58, 0x58, 0x58, 0x54, 0x55, 0x6d, 0x36, 0x45, 0x64, 0x47, 0x7a, 0x32, 0x4f, 0x79, 0x43, 0x2f, 0x2b, 0x73, 0x4f, 0x78, 0x4c, 0x39, 0x6b, 0x4c, 0x58, 0x31, 0x6a, 0x62, 0x68, 0x64, 0x34, 0x37, 0x46, 0x31, 0x38, 0x69, 0x4d, 0x6a, 0x72, 0x0a, 0x6a, 0x6c, 0x64, 0x32, 0x32, 0x56, 0x6b, 0x45, 0x2b, 0x72, 0x78, 0x53, 0x48, 0x30, 0x57, 0x73, 0x38, 0x48, 0x71, 0x41, 0x37, 0x4f, 0x78, 0x76, 0x64, 0x71, 0x36, 0x52, 0x32, 0x78, 0x43, 0x4f, 0x42, 0x4e, 0x79, 0x53, 0x33, 0x36, 0x44, 0x32, 0x35, 0x71, 0x35, 0x4a, 0x30, 0x38, 0x46, 0x73, 0x45, 0x68, 0x76, 0x4d, 0x4b, 0x61, 0x72, 0x35, 0x43, 0x4b, 0x58, 0x69, 0x4e, 0x78, 0x54, 0x4b, 0x73, 0x62, 0x68, 0x6d, 0x37, 0x78, 0x71, 0x43, 0x35, 0x50, 0x44, 0x34, 0x0a, 0x38, 0x61, 0x63, 0x57, 0x61, 0x62, 0x66, 0x62, 0x71, 0x57, 0x45, 0x38, 0x6e, 0x2f, 0x55, 0x78, 0x79, 0x2b, 0x51, 0x41, 0x52, 0x73, 0x49, 0x76, 0x64, 0x4c, 0x47, 0x78, 0x31, 0x34, 0x48, 0x75, 0x71, 0x43, 0x61, 0x56, 0x76, 0x49, 0x69, 0x76, 0x54, 0x44, 0x55, 0x48, 0x4b, 0x67, 0x4c, 0x4b, 0x65, 0x42, 0x52, 0x74, 0x52, 0x79, 0x74, 0x41, 0x56, 0x75, 0x6e, 0x4c, 0x4b, 0x6d, 0x43, 0x68, 0x5a, 0x77, 0x4f, 0x67, 0x7a, 0x6f, 0x79, 0x38, 0x73, 0x48, 0x4a, 0x6e, 0x0a, 0x78, 0x44, 0x48, 0x4f, 0x32, 0x7a, 0x54, 0x6c, 0x4a, 0x51, 0x4e, 0x67, 0x4a, 0x58, 0x74, 0x78, 0x6d, 0x4f, 0x54, 0x41, 0x47, 0x79, 0x74, 0x66, 0x64, 0x45, 0x4c, 0x53, 0x53, 0x38, 0x56, 0x5a, 0x43, 0x41, 0x65, 0x48, 0x76, 0x73, 0x58, 0x44, 0x66, 0x2b, 0x65, 0x57, 0x32, 0x65, 0x48, 0x63, 0x4b, 0x4a, 0x66, 0x57, 0x6a, 0x77, 0x58, 0x6a, 0x39, 0x5a, 0x74, 0x4f, 0x79, 0x68, 0x31, 0x51, 0x52, 0x77, 0x56, 0x54, 0x73, 0x4d, 0x6f, 0x35, 0x35, 0x34, 0x57, 0x67, 0x0a, 0x69, 0x63, 0x45, 0x46, 0x4f, 0x77, 0x45, 0x33, 0x30, 0x7a, 0x39, 0x4a, 0x34, 0x6e, 0x66, 0x72, 0x49, 0x38, 0x69, 0x49, 0x5a, 0x6a, 0x73, 0x39, 0x4f, 0x58, 0x59, 0x68, 0x52, 0x76, 0x48, 0x73, 0x58, 0x79, 0x4f, 0x34, 0x36, 0x36, 0x4a, 0x6d, 0x64, 0x58, 0x54, 0x42, 0x51, 0x50, 0x66, 0x59, 0x61, 0x4a, 0x71, 0x54, 0x34, 0x69, 0x32, 0x70, 0x4c, 0x72, 0x30, 0x63, 0x6f, 0x78, 0x37, 0x49, 0x64, 0x4d, 0x61, 0x6b, 0x4c, 0x58, 0x6f, 0x67, 0x71, 0x7a, 0x75, 0x34, 0x0a, 0x73, 0x45, 0x62, 0x39, 0x62, 0x39, 0x31, 0x66, 0x55, 0x6c, 0x56, 0x31, 0x59, 0x76, 0x43, 0x58, 0x6f, 0x48, 0x7a, 0x58, 0x4f, 0x50, 0x30, 0x6c, 0x33, 0x38, 0x32, 0x67, 0x6d, 0x78, 0x44, 0x50, 0x69, 0x37, 0x67, 0x34, 0x58, 0x6c, 0x37, 0x46, 0x74, 0x4b, 0x59, 0x43, 0x4e, 0x71, 0x45, 0x65, 0x58, 0x78, 0x7a, 0x50, 0x34, 0x70, 0x61, 0x64, 0x4b, 0x61, 0x72, 0x39, 0x6d, 0x4b, 0x35, 0x53, 0x34, 0x66, 0x4e, 0x42, 0x55, 0x76, 0x75, 0x70, 0x4c, 0x6e, 0x4b, 0x57, 0x0a, 0x6e, 0x79, 0x66, 0x6a, 0x71, 0x6e, 0x4e, 0x39, 0x2b, 0x42, 0x6f, 0x6a, 0x5a, 0x6e, 0x73, 0x37, 0x71, 0x32, 0x57, 0x77, 0x4d, 0x67, 0x46, 0x4c, 0x46, 0x54, 0x34, 0x39, 0x6f, 0x6b, 0x38, 0x4d, 0x4b, 0x7a, 0x57, 0x69, 0x78, 0x74, 0x6c, 0x6e, 0x45, 0x6a, 0x55, 0x77, 0x7a, 0x58, 0x59, 0x75, 0x46, 0x72, 0x4f, 0x5a, 0x6e, 0x6b, 0x31, 0x50, 0x54, 0x69, 0x30, 0x37, 0x4e, 0x45, 0x50, 0x68, 0x6d, 0x67, 0x34, 0x4e, 0x70, 0x47, 0x61, 0x58, 0x75, 0x74, 0x49, 0x63, 0x0a, 0x53, 0x6b, 0x77, 0x73, 0x4b, 0x6f, 0x75, 0x4c, 0x67, 0x55, 0x39, 0x78, 0x47, 0x71, 0x6e, 0x64, 0x58, 0x48, 0x74, 0x37, 0x43, 0x4d, 0x55, 0x41, 0x44, 0x54, 0x64, 0x41, 0x34, 0x33, 0x78, 0x37, 0x56, 0x46, 0x38, 0x76, 0x68, 0x56, 0x39, 0x32, 0x39, 0x76, 0x65, 0x6e, 0x73, 0x42, 0x78, 0x58, 0x56, 0x73, 0x46, 0x79, 0x36, 0x4b, 0x32, 0x69, 0x72, 0x34, 0x30, 0x7a, 0x53, 0x62, 0x6f, 0x66, 0x69, 0x74, 0x7a, 0x6d, 0x64, 0x48, 0x78, 0x67, 0x68, 0x6d, 0x2b, 0x48, 0x0a, 0x6c, 0x33, 0x73, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x49, 0x53, 0x52, 0x47, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x58, 0x32, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x47, 0x7a, 0x43, 0x43, 0x41, 0x61, 0x47, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x51, 0x64, 0x4b, 0x64, 0x30, 0x58, 0x4c, 0x71, 0x37, 0x71, 0x65, 0x41, 0x77, 0x53, 0x78, 0x73, 0x36, 0x53, 0x2b, 0x48, 0x55, 0x6a, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x7a, 0x42, 0x50, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x0a, 0x55, 0x7a, 0x45, 0x70, 0x4d, 0x43, 0x63, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x67, 0x53, 0x57, 0x35, 0x30, 0x5a, 0x58, 0x4a, 0x75, 0x5a, 0x58, 0x51, 0x67, 0x55, 0x32, 0x56, 0x6a, 0x64, 0x58, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x67, 0x55, 0x6d, 0x56, 0x7a, 0x5a, 0x57, 0x46, 0x79, 0x59, 0x32, 0x67, 0x67, 0x52, 0x33, 0x4a, 0x76, 0x64, 0x58, 0x41, 0x78, 0x46, 0x54, 0x41, 0x54, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x44, 0x45, 0x6c, 0x54, 0x0a, 0x55, 0x6b, 0x63, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x59, 0x4d, 0x6a, 0x41, 0x65, 0x46, 0x77, 0x30, 0x79, 0x4d, 0x44, 0x41, 0x35, 0x4d, 0x44, 0x51, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x42, 0x61, 0x46, 0x77, 0x30, 0x30, 0x4d, 0x44, 0x41, 0x35, 0x4d, 0x54, 0x63, 0x78, 0x4e, 0x6a, 0x41, 0x77, 0x4d, 0x44, 0x42, 0x61, 0x4d, 0x45, 0x38, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6c, 0x56, 0x54, 0x0a, 0x4d, 0x53, 0x6b, 0x77, 0x4a, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x79, 0x42, 0x4a, 0x62, 0x6e, 0x52, 0x6c, 0x63, 0x6d, 0x35, 0x6c, 0x64, 0x43, 0x42, 0x54, 0x5a, 0x57, 0x4e, 0x31, 0x63, 0x6d, 0x6c, 0x30, 0x65, 0x53, 0x42, 0x53, 0x5a, 0x58, 0x4e, 0x6c, 0x59, 0x58, 0x4a, 0x6a, 0x61, 0x43, 0x42, 0x48, 0x63, 0x6d, 0x39, 0x31, 0x63, 0x44, 0x45, 0x56, 0x4d, 0x42, 0x4d, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x4d, 0x53, 0x56, 0x4e, 0x53, 0x0a, 0x52, 0x79, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x46, 0x67, 0x79, 0x4d, 0x48, 0x59, 0x77, 0x45, 0x41, 0x59, 0x48, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x43, 0x41, 0x51, 0x59, 0x46, 0x4b, 0x34, 0x45, 0x45, 0x41, 0x43, 0x49, 0x44, 0x59, 0x67, 0x41, 0x45, 0x7a, 0x5a, 0x76, 0x56, 0x6e, 0x34, 0x43, 0x44, 0x43, 0x75, 0x77, 0x4a, 0x53, 0x76, 0x4d, 0x57, 0x53, 0x6a, 0x35, 0x63, 0x7a, 0x33, 0x65, 0x73, 0x33, 0x6d, 0x63, 0x46, 0x44, 0x52, 0x30, 0x48, 0x0a, 0x74, 0x74, 0x77, 0x57, 0x2b, 0x31, 0x71, 0x4c, 0x46, 0x4e, 0x76, 0x69, 0x63, 0x57, 0x44, 0x45, 0x75, 0x6b, 0x57, 0x56, 0x45, 0x59, 0x6d, 0x4f, 0x36, 0x67, 0x62, 0x66, 0x39, 0x79, 0x6f, 0x57, 0x48, 0x4b, 0x53, 0x35, 0x78, 0x63, 0x55, 0x79, 0x34, 0x41, 0x50, 0x67, 0x48, 0x6f, 0x49, 0x59, 0x4f, 0x49, 0x76, 0x58, 0x52, 0x64, 0x67, 0x4b, 0x61, 0x6d, 0x37, 0x6d, 0x41, 0x48, 0x66, 0x37, 0x41, 0x6c, 0x46, 0x39, 0x49, 0x74, 0x67, 0x4b, 0x62, 0x70, 0x70, 0x62, 0x0a, 0x64, 0x39, 0x2f, 0x77, 0x2b, 0x6b, 0x48, 0x73, 0x4f, 0x64, 0x78, 0x31, 0x79, 0x6d, 0x67, 0x48, 0x44, 0x42, 0x2f, 0x71, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x51, 0x59, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x0a, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x66, 0x45, 0x4b, 0x57, 0x72, 0x74, 0x35, 0x4c, 0x53, 0x44, 0x76, 0x36, 0x6b, 0x76, 0x69, 0x65, 0x6a, 0x4d, 0x39, 0x74, 0x69, 0x36, 0x6c, 0x79, 0x4e, 0x35, 0x55, 0x77, 0x43, 0x67, 0x59, 0x49, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x45, 0x41, 0x77, 0x4d, 0x44, 0x61, 0x41, 0x41, 0x77, 0x5a, 0x51, 0x49, 0x77, 0x65, 0x33, 0x6c, 0x4f, 0x52, 0x6c, 0x43, 0x45, 0x77, 0x6b, 0x53, 0x48, 0x52, 0x68, 0x74, 0x46, 0x0a, 0x63, 0x50, 0x39, 0x59, 0x6d, 0x64, 0x37, 0x30, 0x2f, 0x61, 0x54, 0x53, 0x56, 0x61, 0x59, 0x67, 0x4c, 0x58, 0x54, 0x57, 0x4e, 0x4c, 0x78, 0x42, 0x6f, 0x31, 0x42, 0x66, 0x41, 0x53, 0x64, 0x57, 0x74, 0x4c, 0x34, 0x6e, 0x64, 0x51, 0x61, 0x76, 0x45, 0x69, 0x35, 0x31, 0x6d, 0x49, 0x33, 0x38, 0x41, 0x6a, 0x45, 0x41, 0x69, 0x2f, 0x56, 0x33, 0x62, 0x4e, 0x54, 0x49, 0x5a, 0x61, 0x72, 0x67, 0x43, 0x79, 0x7a, 0x75, 0x46, 0x4a, 0x30, 0x6e, 0x4e, 0x36, 0x54, 0x35, 0x0a, 0x55, 0x36, 0x56, 0x52, 0x35, 0x43, 0x6d, 0x44, 0x31, 0x2f, 0x69, 0x51, 0x4d, 0x56, 0x74, 0x43, 0x6e, 0x77, 0x72, 0x31, 0x2f, 0x71, 0x34, 0x41, 0x61, 0x4f, 0x65, 0x4d, 0x53, 0x51, 0x2b, 0x32, 0x62, 0x31, 0x74, 0x62, 0x46, 0x66, 0x4c, 0x6e, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x48, 0x69, 0x50, 0x4b, 0x49, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x31, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x61, 0x6a, 0x43, 0x43, 0x41, 0x31, 0x4b, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x4c, 0x64, 0x32, 0x73, 0x7a, 0x6d, 0x4b, 0x58, 0x6c, 0x4b, 0x46, 0x44, 0x36, 0x4c, 0x44, 0x4e, 0x64, 0x6d, 0x70, 0x65, 0x59, 0x44, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x44, 0x42, 0x50, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x0a, 0x45, 0x77, 0x4a, 0x55, 0x56, 0x7a, 0x45, 0x6a, 0x4d, 0x43, 0x45, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x61, 0x51, 0x32, 0x68, 0x31, 0x62, 0x6d, 0x64, 0x6f, 0x64, 0x32, 0x45, 0x67, 0x56, 0x47, 0x56, 0x73, 0x5a, 0x57, 0x4e, 0x76, 0x62, 0x53, 0x42, 0x44, 0x62, 0x79, 0x34, 0x73, 0x49, 0x45, 0x78, 0x30, 0x5a, 0x43, 0x34, 0x78, 0x47, 0x7a, 0x41, 0x5a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x45, 0x6b, 0x68, 0x70, 0x55, 0x45, 0x74, 0x4a, 0x0a, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x67, 0x4c, 0x53, 0x42, 0x48, 0x4d, 0x54, 0x41, 0x65, 0x46, 0x77, 0x30, 0x78, 0x4f, 0x54, 0x41, 0x79, 0x4d, 0x6a, 0x49, 0x77, 0x4f, 0x54, 0x51, 0x32, 0x4d, 0x44, 0x52, 0x61, 0x46, 0x77, 0x30, 0x7a, 0x4e, 0x7a, 0x45, 0x79, 0x4d, 0x7a, 0x45, 0x78, 0x4e, 0x54, 0x55, 0x35, 0x4e, 0x54, 0x6c, 0x61, 0x4d, 0x45, 0x38, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x0a, 0x41, 0x6c, 0x52, 0x58, 0x4d, 0x53, 0x4d, 0x77, 0x49, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x42, 0x70, 0x44, 0x61, 0x48, 0x56, 0x75, 0x5a, 0x32, 0x68, 0x33, 0x59, 0x53, 0x42, 0x55, 0x5a, 0x57, 0x78, 0x6c, 0x59, 0x32, 0x39, 0x74, 0x49, 0x45, 0x4e, 0x76, 0x4c, 0x69, 0x77, 0x67, 0x54, 0x48, 0x52, 0x6b, 0x4c, 0x6a, 0x45, 0x62, 0x4d, 0x42, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x77, 0x77, 0x53, 0x53, 0x47, 0x6c, 0x51, 0x53, 0x30, 0x6b, 0x67, 0x0a, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x51, 0x53, 0x41, 0x74, 0x49, 0x45, 0x63, 0x78, 0x4d, 0x49, 0x49, 0x43, 0x49, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x45, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x38, 0x41, 0x4d, 0x49, 0x49, 0x43, 0x43, 0x67, 0x4b, 0x43, 0x41, 0x67, 0x45, 0x41, 0x39, 0x42, 0x35, 0x2f, 0x55, 0x6e, 0x4d, 0x79, 0x44, 0x48, 0x50, 0x6b, 0x76, 0x52, 0x4e, 0x30, 0x0a, 0x6f, 0x39, 0x51, 0x77, 0x71, 0x4e, 0x43, 0x75, 0x53, 0x39, 0x69, 0x32, 0x33, 0x33, 0x56, 0x48, 0x5a, 0x76, 0x52, 0x38, 0x35, 0x7a, 0x6b, 0x45, 0x48, 0x6d, 0x70, 0x77, 0x49, 0x4e, 0x4a, 0x61, 0x52, 0x33, 0x4a, 0x6e, 0x56, 0x66, 0x53, 0x6c, 0x36, 0x4a, 0x33, 0x56, 0x48, 0x69, 0x47, 0x68, 0x38, 0x47, 0x65, 0x36, 0x7a, 0x43, 0x46, 0x6f, 0x76, 0x6b, 0x52, 0x54, 0x76, 0x34, 0x33, 0x35, 0x34, 0x74, 0x77, 0x76, 0x56, 0x63, 0x67, 0x33, 0x50, 0x78, 0x2b, 0x6b, 0x0a, 0x77, 0x4a, 0x79, 0x7a, 0x35, 0x48, 0x64, 0x63, 0x6f, 0x45, 0x62, 0x2b, 0x64, 0x2f, 0x6f, 0x61, 0x6f, 0x44, 0x6a, 0x71, 0x37, 0x5a, 0x70, 0x79, 0x33, 0x69, 0x75, 0x39, 0x6c, 0x46, 0x63, 0x36, 0x75, 0x75, 0x78, 0x35, 0x35, 0x31, 0x39, 0x39, 0x51, 0x6d, 0x51, 0x35, 0x65, 0x69, 0x59, 0x32, 0x39, 0x79, 0x54, 0x77, 0x31, 0x53, 0x2b, 0x36, 0x6c, 0x5a, 0x67, 0x52, 0x5a, 0x71, 0x32, 0x58, 0x4e, 0x64, 0x5a, 0x31, 0x41, 0x59, 0x44, 0x67, 0x72, 0x2f, 0x53, 0x45, 0x0a, 0x59, 0x59, 0x77, 0x4e, 0x48, 0x6c, 0x39, 0x38, 0x68, 0x35, 0x5a, 0x65, 0x51, 0x61, 0x2f, 0x72, 0x68, 0x2b, 0x72, 0x34, 0x58, 0x66, 0x45, 0x75, 0x69, 0x41, 0x55, 0x2b, 0x54, 0x43, 0x4b, 0x37, 0x32, 0x68, 0x38, 0x71, 0x33, 0x56, 0x4a, 0x47, 0x5a, 0x44, 0x6e, 0x7a, 0x51, 0x73, 0x37, 0x5a, 0x6e, 0x67, 0x79, 0x7a, 0x73, 0x48, 0x65, 0x58, 0x5a, 0x4a, 0x7a, 0x41, 0x39, 0x4b, 0x4d, 0x75, 0x48, 0x35, 0x55, 0x48, 0x73, 0x42, 0x66, 0x66, 0x4d, 0x4e, 0x73, 0x41, 0x0a, 0x47, 0x4a, 0x5a, 0x4d, 0x6f, 0x59, 0x46, 0x4c, 0x33, 0x51, 0x52, 0x74, 0x55, 0x36, 0x4d, 0x39, 0x2f, 0x41, 0x65, 0x73, 0x31, 0x4d, 0x55, 0x33, 0x67, 0x75, 0x76, 0x6b, 0x6c, 0x51, 0x67, 0x5a, 0x4b, 0x49, 0x4c, 0x53, 0x51, 0x6a, 0x71, 0x6a, 0x32, 0x46, 0x50, 0x73, 0x65, 0x59, 0x6c, 0x67, 0x53, 0x47, 0x44, 0x49, 0x63, 0x70, 0x4a, 0x51, 0x33, 0x41, 0x4f, 0x50, 0x67, 0x7a, 0x2b, 0x79, 0x51, 0x6c, 0x64, 0x61, 0x32, 0x32, 0x72, 0x70, 0x45, 0x5a, 0x66, 0x64, 0x0a, 0x68, 0x53, 0x69, 0x38, 0x4d, 0x45, 0x79, 0x72, 0x34, 0x38, 0x4b, 0x78, 0x52, 0x55, 0x52, 0x48, 0x48, 0x2b, 0x43, 0x4b, 0x46, 0x67, 0x65, 0x57, 0x30, 0x69, 0x45, 0x50, 0x55, 0x38, 0x44, 0x74, 0x71, 0x58, 0x37, 0x55, 0x54, 0x75, 0x79, 0x62, 0x43, 0x65, 0x79, 0x76, 0x51, 0x71, 0x77, 0x77, 0x31, 0x72, 0x2f, 0x52, 0x45, 0x45, 0x58, 0x67, 0x70, 0x68, 0x61, 0x79, 0x70, 0x63, 0x58, 0x54, 0x54, 0x33, 0x4f, 0x55, 0x4d, 0x33, 0x45, 0x43, 0x6f, 0x57, 0x71, 0x6a, 0x0a, 0x31, 0x6a, 0x4f, 0x58, 0x54, 0x79, 0x46, 0x6a, 0x48, 0x6c, 0x75, 0x50, 0x32, 0x63, 0x46, 0x65, 0x52, 0x58, 0x46, 0x33, 0x44, 0x34, 0x46, 0x64, 0x58, 0x79, 0x47, 0x61, 0x72, 0x59, 0x50, 0x4d, 0x2b, 0x6c, 0x37, 0x57, 0x6a, 0x53, 0x4e, 0x66, 0x47, 0x7a, 0x31, 0x42, 0x72, 0x79, 0x42, 0x31, 0x5a, 0x6c, 0x70, 0x4b, 0x39, 0x70, 0x2f, 0x37, 0x71, 0x78, 0x6a, 0x33, 0x63, 0x63, 0x43, 0x32, 0x48, 0x54, 0x48, 0x73, 0x4f, 0x79, 0x44, 0x72, 0x79, 0x2b, 0x4b, 0x34, 0x0a, 0x39, 0x61, 0x36, 0x53, 0x73, 0x76, 0x66, 0x68, 0x68, 0x45, 0x76, 0x79, 0x6f, 0x76, 0x4b, 0x54, 0x6d, 0x69, 0x4b, 0x65, 0x30, 0x78, 0x52, 0x76, 0x4e, 0x6c, 0x53, 0x39, 0x48, 0x31, 0x35, 0x5a, 0x46, 0x62, 0x6c, 0x7a, 0x71, 0x4d, 0x46, 0x38, 0x62, 0x33, 0x74, 0x69, 0x36, 0x52, 0x5a, 0x73, 0x52, 0x31, 0x70, 0x6c, 0x38, 0x77, 0x34, 0x52, 0x6d, 0x30, 0x62, 0x5a, 0x2f, 0x57, 0x33, 0x63, 0x31, 0x70, 0x7a, 0x41, 0x74, 0x48, 0x32, 0x6c, 0x73, 0x4e, 0x30, 0x2f, 0x0a, 0x56, 0x6d, 0x2b, 0x68, 0x2b, 0x66, 0x62, 0x6b, 0x45, 0x6b, 0x6a, 0x39, 0x42, 0x6e, 0x38, 0x53, 0x56, 0x37, 0x61, 0x70, 0x49, 0x30, 0x39, 0x62, 0x41, 0x38, 0x50, 0x67, 0x63, 0x53, 0x6f, 0x6a, 0x74, 0x2f, 0x65, 0x77, 0x73, 0x54, 0x75, 0x38, 0x6d, 0x4c, 0x33, 0x57, 0x6d, 0x4b, 0x67, 0x4d, 0x61, 0x2f, 0x61, 0x4f, 0x45, 0x6d, 0x65, 0x6d, 0x38, 0x72, 0x4a, 0x59, 0x35, 0x41, 0x49, 0x4a, 0x45, 0x7a, 0x79, 0x70, 0x75, 0x78, 0x43, 0x30, 0x30, 0x6a, 0x42, 0x46, 0x0a, 0x38, 0x65, 0x7a, 0x33, 0x41, 0x42, 0x48, 0x66, 0x5a, 0x66, 0x6a, 0x63, 0x4b, 0x30, 0x4e, 0x56, 0x76, 0x78, 0x61, 0x58, 0x78, 0x41, 0x2f, 0x56, 0x4c, 0x47, 0x47, 0x45, 0x71, 0x6e, 0x4b, 0x47, 0x2f, 0x75, 0x59, 0x36, 0x66, 0x73, 0x49, 0x2f, 0x66, 0x65, 0x37, 0x38, 0x4c, 0x78, 0x51, 0x2b, 0x35, 0x6f, 0x58, 0x64, 0x55, 0x47, 0x2b, 0x33, 0x53, 0x65, 0x30, 0x43, 0x41, 0x77, 0x45, 0x41, 0x41, 0x61, 0x4e, 0x43, 0x4d, 0x45, 0x41, 0x77, 0x44, 0x77, 0x59, 0x44, 0x0a, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x38, 0x6e, 0x63, 0x58, 0x2b, 0x6c, 0x36, 0x6f, 0x2f, 0x76, 0x59, 0x39, 0x63, 0x64, 0x56, 0x6f, 0x75, 0x73, 0x6c, 0x47, 0x44, 0x44, 0x6a, 0x59, 0x72, 0x37, 0x41, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x0a, 0x41, 0x67, 0x47, 0x47, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x43, 0x77, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x41, 0x51, 0x42, 0x51, 0x55, 0x66, 0x42, 0x31, 0x33, 0x48, 0x41, 0x45, 0x34, 0x2f, 0x2b, 0x71, 0x64, 0x64, 0x52, 0x78, 0x6f, 0x73, 0x75, 0x65, 0x6a, 0x36, 0x69, 0x70, 0x30, 0x36, 0x39, 0x31, 0x78, 0x31, 0x54, 0x50, 0x4f, 0x68, 0x77, 0x45, 0x6d, 0x53, 0x4b, 0x73, 0x78, 0x42, 0x48, 0x69, 0x0a, 0x37, 0x7a, 0x4e, 0x4b, 0x70, 0x69, 0x4d, 0x64, 0x44, 0x67, 0x31, 0x48, 0x32, 0x44, 0x66, 0x48, 0x62, 0x36, 0x38, 0x30, 0x66, 0x30, 0x2b, 0x42, 0x61, 0x7a, 0x56, 0x50, 0x36, 0x58, 0x4b, 0x6c, 0x4d, 0x65, 0x4a, 0x34, 0x35, 0x2f, 0x64, 0x4f, 0x6c, 0x42, 0x68, 0x62, 0x51, 0x48, 0x33, 0x50, 0x61, 0x79, 0x46, 0x55, 0x68, 0x75, 0x61, 0x56, 0x65, 0x76, 0x76, 0x47, 0x79, 0x75, 0x71, 0x63, 0x53, 0x45, 0x35, 0x58, 0x43, 0x56, 0x30, 0x76, 0x72, 0x50, 0x53, 0x6c, 0x0a, 0x74, 0x4a, 0x63, 0x7a, 0x57, 0x4e, 0x57, 0x73, 0x65, 0x61, 0x6e, 0x4d, 0x58, 0x2f, 0x6d, 0x46, 0x2b, 0x6c, 0x4c, 0x46, 0x6a, 0x66, 0x69, 0x52, 0x46, 0x4f, 0x73, 0x36, 0x44, 0x52, 0x66, 0x51, 0x55, 0x73, 0x4a, 0x37, 0x34, 0x38, 0x4a, 0x7a, 0x6a, 0x6b, 0x5a, 0x34, 0x42, 0x6a, 0x67, 0x73, 0x36, 0x46, 0x7a, 0x61, 0x5a, 0x73, 0x54, 0x30, 0x70, 0x50, 0x42, 0x57, 0x47, 0x54, 0x4d, 0x70, 0x57, 0x6d, 0x57, 0x53, 0x42, 0x55, 0x64, 0x47, 0x53, 0x71, 0x75, 0x45, 0x0a, 0x77, 0x78, 0x34, 0x6e, 0x6f, 0x52, 0x38, 0x52, 0x6b, 0x70, 0x6b, 0x6e, 0x64, 0x5a, 0x4d, 0x50, 0x76, 0x44, 0x59, 0x37, 0x6c, 0x31, 0x65, 0x50, 0x4a, 0x6c, 0x73, 0x4d, 0x75, 0x35, 0x77, 0x50, 0x31, 0x47, 0x34, 0x77, 0x42, 0x39, 0x54, 0x63, 0x58, 0x7a, 0x5a, 0x6f, 0x5a, 0x6a, 0x6d, 0x44, 0x6c, 0x69, 0x63, 0x6d, 0x69, 0x73, 0x6a, 0x45, 0x4f, 0x66, 0x36, 0x61, 0x49, 0x57, 0x2f, 0x56, 0x63, 0x6f, 0x62, 0x70, 0x66, 0x32, 0x4c, 0x6c, 0x6c, 0x30, 0x37, 0x51, 0x0a, 0x4a, 0x4e, 0x42, 0x41, 0x73, 0x4e, 0x42, 0x31, 0x43, 0x49, 0x36, 0x39, 0x61, 0x4f, 0x34, 0x49, 0x31, 0x32, 0x35, 0x38, 0x45, 0x48, 0x42, 0x47, 0x47, 0x33, 0x7a, 0x67, 0x69, 0x4c, 0x4b, 0x65, 0x63, 0x6f, 0x61, 0x5a, 0x41, 0x65, 0x4f, 0x2f, 0x6e, 0x30, 0x6b, 0x5a, 0x74, 0x43, 0x57, 0x2b, 0x56, 0x6d, 0x57, 0x75, 0x46, 0x32, 0x50, 0x6c, 0x48, 0x74, 0x2f, 0x6f, 0x2f, 0x30, 0x65, 0x6c, 0x76, 0x2b, 0x45, 0x6d, 0x42, 0x59, 0x54, 0x6b, 0x73, 0x4d, 0x43, 0x76, 0x0a, 0x35, 0x77, 0x69, 0x5a, 0x71, 0x41, 0x78, 0x65, 0x4a, 0x6f, 0x42, 0x46, 0x31, 0x50, 0x68, 0x6f, 0x4c, 0x35, 0x61, 0x50, 0x72, 0x75, 0x4a, 0x4b, 0x48, 0x4a, 0x77, 0x57, 0x44, 0x42, 0x4e, 0x76, 0x4f, 0x49, 0x66, 0x32, 0x75, 0x38, 0x67, 0x30, 0x58, 0x35, 0x49, 0x44, 0x55, 0x58, 0x6c, 0x77, 0x70, 0x74, 0x2f, 0x4c, 0x39, 0x5a, 0x6c, 0x4e, 0x65, 0x63, 0x31, 0x4f, 0x76, 0x46, 0x65, 0x66, 0x51, 0x30, 0x35, 0x72, 0x4c, 0x69, 0x73, 0x59, 0x2b, 0x47, 0x70, 0x7a, 0x0a, 0x6a, 0x4c, 0x72, 0x46, 0x4e, 0x65, 0x38, 0x35, 0x61, 0x6b, 0x45, 0x65, 0x7a, 0x33, 0x47, 0x6f, 0x6f, 0x72, 0x4b, 0x47, 0x42, 0x31, 0x73, 0x36, 0x79, 0x65, 0x48, 0x76, 0x50, 0x32, 0x55, 0x45, 0x67, 0x45, 0x63, 0x79, 0x52, 0x48, 0x43, 0x56, 0x54, 0x6a, 0x46, 0x6e, 0x61, 0x6e, 0x52, 0x62, 0x45, 0x45, 0x56, 0x31, 0x36, 0x72, 0x43, 0x66, 0x30, 0x4f, 0x59, 0x31, 0x2f, 0x6b, 0x36, 0x66, 0x69, 0x38, 0x77, 0x72, 0x6b, 0x6b, 0x56, 0x62, 0x62, 0x69, 0x56, 0x67, 0x0a, 0x68, 0x55, 0x62, 0x4e, 0x30, 0x61, 0x71, 0x77, 0x64, 0x6d, 0x61, 0x54, 0x64, 0x35, 0x61, 0x2b, 0x67, 0x37, 0x34, 0x34, 0x74, 0x69, 0x52, 0x4f, 0x4a, 0x67, 0x76, 0x4d, 0x37, 0x58, 0x70, 0x57, 0x47, 0x75, 0x44, 0x70, 0x57, 0x73, 0x5a, 0x6b, 0x72, 0x55, 0x78, 0x36, 0x41, 0x45, 0x68, 0x45, 0x4c, 0x37, 0x6c, 0x41, 0x75, 0x78, 0x4d, 0x2b, 0x76, 0x68, 0x56, 0x34, 0x6e, 0x59, 0x57, 0x42, 0x53, 0x69, 0x70, 0x58, 0x33, 0x74, 0x55, 0x5a, 0x51, 0x39, 0x72, 0x62, 0x0a, 0x79, 0x6c, 0x74, 0x48, 0x68, 0x6f, 0x4d, 0x4c, 0x50, 0x37, 0x59, 0x4e, 0x64, 0x6e, 0x68, 0x7a, 0x65, 0x53, 0x4a, 0x65, 0x73, 0x59, 0x41, 0x66, 0x7a, 0x37, 0x37, 0x52, 0x50, 0x31, 0x59, 0x51, 0x6d, 0x43, 0x75, 0x56, 0x68, 0x36, 0x45, 0x66, 0x6e, 0x57, 0x51, 0x55, 0x59, 0x44, 0x6b, 0x73, 0x73, 0x77, 0x42, 0x56, 0x4c, 0x75, 0x54, 0x31, 0x73, 0x77, 0x35, 0x58, 0x78, 0x4a, 0x46, 0x42, 0x41, 0x4a, 0x77, 0x2f, 0x36, 0x4b, 0x58, 0x66, 0x36, 0x76, 0x62, 0x2f, 0x0a, 0x79, 0x50, 0x43, 0x74, 0x62, 0x56, 0x4b, 0x6f, 0x46, 0x36, 0x75, 0x62, 0x59, 0x66, 0x77, 0x53, 0x55, 0x54, 0x58, 0x6b, 0x4a, 0x66, 0x32, 0x76, 0x71, 0x6d, 0x71, 0x47, 0x4f, 0x51, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x45, 0x43, 0x43, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x52, 0x34, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x42, 0x33, 0x44, 0x43, 0x43, 0x41, 0x59, 0x4f, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4e, 0x41, 0x67, 0x50, 0x6c, 0x66, 0x76, 0x55, 0x2f, 0x6b, 0x2f, 0x32, 0x6c, 0x43, 0x53, 0x47, 0x79, 0x70, 0x6a, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x6a, 0x42, 0x51, 0x4d, 0x53, 0x51, 0x77, 0x49, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x78, 0x74, 0x48, 0x62, 0x47, 0x39, 0x69, 0x0a, 0x59, 0x57, 0x78, 0x54, 0x61, 0x57, 0x64, 0x75, 0x49, 0x45, 0x56, 0x44, 0x51, 0x79, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x42, 0x49, 0x43, 0x30, 0x67, 0x55, 0x6a, 0x51, 0x78, 0x45, 0x7a, 0x41, 0x52, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x43, 0x6b, 0x64, 0x73, 0x62, 0x32, 0x4a, 0x68, 0x62, 0x46, 0x4e, 0x70, 0x5a, 0x32, 0x34, 0x78, 0x45, 0x7a, 0x41, 0x52, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x43, 0x6b, 0x64, 0x73, 0x0a, 0x62, 0x32, 0x4a, 0x68, 0x62, 0x46, 0x4e, 0x70, 0x5a, 0x32, 0x34, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x54, 0x49, 0x78, 0x4d, 0x54, 0x45, 0x7a, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x7a, 0x67, 0x77, 0x4d, 0x54, 0x45, 0x35, 0x4d, 0x44, 0x4d, 0x78, 0x4e, 0x44, 0x41, 0x33, 0x57, 0x6a, 0x42, 0x51, 0x4d, 0x53, 0x51, 0x77, 0x49, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4c, 0x45, 0x78, 0x74, 0x48, 0x62, 0x47, 0x39, 0x69, 0x0a, 0x59, 0x57, 0x78, 0x54, 0x61, 0x57, 0x64, 0x75, 0x49, 0x45, 0x56, 0x44, 0x51, 0x79, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x42, 0x49, 0x43, 0x30, 0x67, 0x55, 0x6a, 0x51, 0x78, 0x45, 0x7a, 0x41, 0x52, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x43, 0x6b, 0x64, 0x73, 0x62, 0x32, 0x4a, 0x68, 0x62, 0x46, 0x4e, 0x70, 0x5a, 0x32, 0x34, 0x78, 0x45, 0x7a, 0x41, 0x52, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x43, 0x6b, 0x64, 0x73, 0x0a, 0x62, 0x32, 0x4a, 0x68, 0x62, 0x46, 0x4e, 0x70, 0x5a, 0x32, 0x34, 0x77, 0x57, 0x54, 0x41, 0x54, 0x42, 0x67, 0x63, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x49, 0x42, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x4d, 0x42, 0x42, 0x77, 0x4e, 0x43, 0x41, 0x41, 0x53, 0x34, 0x78, 0x6e, 0x6e, 0x54, 0x6a, 0x32, 0x77, 0x6c, 0x44, 0x70, 0x38, 0x75, 0x4f, 0x52, 0x6b, 0x63, 0x41, 0x36, 0x53, 0x75, 0x6d, 0x75, 0x55, 0x35, 0x42, 0x77, 0x6b, 0x57, 0x0a, 0x79, 0x6d, 0x4f, 0x78, 0x75, 0x59, 0x62, 0x34, 0x69, 0x6c, 0x66, 0x42, 0x56, 0x38, 0x35, 0x43, 0x2b, 0x6e, 0x4f, 0x68, 0x39, 0x32, 0x56, 0x43, 0x2f, 0x78, 0x37, 0x42, 0x41, 0x4c, 0x4a, 0x75, 0x63, 0x77, 0x37, 0x2f, 0x78, 0x79, 0x48, 0x6c, 0x47, 0x4b, 0x53, 0x71, 0x32, 0x58, 0x45, 0x2f, 0x71, 0x4e, 0x53, 0x35, 0x7a, 0x6f, 0x77, 0x64, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x0a, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x59, 0x59, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x56, 0x4c, 0x42, 0x37, 0x72, 0x55, 0x57, 0x34, 0x34, 0x6b, 0x42, 0x2f, 0x2b, 0x77, 0x70, 0x75, 0x2b, 0x37, 0x34, 0x7a, 0x79, 0x54, 0x79, 0x6a, 0x68, 0x4e, 0x55, 0x77, 0x43, 0x67, 0x59, 0x49, 0x0a, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x45, 0x41, 0x77, 0x49, 0x44, 0x52, 0x77, 0x41, 0x77, 0x52, 0x41, 0x49, 0x67, 0x49, 0x6b, 0x39, 0x30, 0x63, 0x72, 0x6c, 0x67, 0x72, 0x2f, 0x48, 0x6d, 0x6e, 0x4b, 0x41, 0x57, 0x42, 0x56, 0x42, 0x66, 0x77, 0x31, 0x34, 0x37, 0x62, 0x6d, 0x46, 0x30, 0x37, 0x37, 0x34, 0x42, 0x78, 0x4c, 0x34, 0x59, 0x53, 0x46, 0x6c, 0x68, 0x67, 0x6a, 0x49, 0x43, 0x49, 0x43, 0x61, 0x64, 0x56, 0x47, 0x4e, 0x41, 0x33, 0x6a, 0x64, 0x67, 0x0a, 0x55, 0x4d, 0x2f, 0x49, 0x32, 0x4f, 0x32, 0x64, 0x67, 0x71, 0x34, 0x33, 0x6d, 0x4c, 0x79, 0x6a, 0x6a, 0x30, 0x78, 0x4d, 0x71, 0x54, 0x51, 0x72, 0x62, 0x4f, 0x2f, 0x37, 0x6c, 0x5a, 0x73, 0x6d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x47, 0x54, 0x53, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x52, 0x31, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x56, 0x7a, 0x43, 0x43, 0x41, 0x7a, 0x2b, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4e, 0x41, 0x67, 0x50, 0x6c, 0x6b, 0x32, 0x38, 0x78, 0x73, 0x42, 0x4e, 0x4a, 0x69, 0x47, 0x75, 0x69, 0x46, 0x7a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x77, 0x46, 0x41, 0x44, 0x42, 0x48, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x0a, 0x55, 0x7a, 0x45, 0x69, 0x4d, 0x43, 0x41, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x5a, 0x52, 0x32, 0x39, 0x76, 0x5a, 0x32, 0x78, 0x6c, 0x49, 0x46, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x49, 0x46, 0x4e, 0x6c, 0x63, 0x6e, 0x5a, 0x70, 0x59, 0x32, 0x56, 0x7a, 0x49, 0x45, 0x78, 0x4d, 0x51, 0x7a, 0x45, 0x55, 0x4d, 0x42, 0x49, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x4c, 0x52, 0x31, 0x52, 0x54, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x0a, 0x55, 0x6a, 0x45, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x54, 0x59, 0x77, 0x4e, 0x6a, 0x49, 0x79, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x7a, 0x59, 0x77, 0x4e, 0x6a, 0x49, 0x79, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x6a, 0x42, 0x48, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x69, 0x4d, 0x43, 0x41, 0x47, 0x41, 0x31, 0x55, 0x45, 0x0a, 0x43, 0x68, 0x4d, 0x5a, 0x52, 0x32, 0x39, 0x76, 0x5a, 0x32, 0x78, 0x6c, 0x49, 0x46, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x49, 0x46, 0x4e, 0x6c, 0x63, 0x6e, 0x5a, 0x70, 0x59, 0x32, 0x56, 0x7a, 0x49, 0x45, 0x78, 0x4d, 0x51, 0x7a, 0x45, 0x55, 0x4d, 0x42, 0x49, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x4c, 0x52, 0x31, 0x52, 0x54, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x55, 0x6a, 0x45, 0x77, 0x67, 0x67, 0x49, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x0a, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x49, 0x4b, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x43, 0x32, 0x45, 0x51, 0x4b, 0x4c, 0x48, 0x75, 0x4f, 0x68, 0x64, 0x35, 0x73, 0x37, 0x33, 0x4c, 0x2b, 0x55, 0x50, 0x72, 0x65, 0x56, 0x70, 0x30, 0x41, 0x38, 0x6f, 0x66, 0x32, 0x43, 0x2b, 0x58, 0x30, 0x79, 0x42, 0x6f, 0x4a, 0x78, 0x39, 0x76, 0x61, 0x4d, 0x0a, 0x66, 0x2f, 0x76, 0x6f, 0x32, 0x37, 0x78, 0x71, 0x4c, 0x70, 0x65, 0x58, 0x6f, 0x34, 0x78, 0x4c, 0x2b, 0x53, 0x76, 0x32, 0x73, 0x66, 0x6e, 0x4f, 0x68, 0x42, 0x32, 0x78, 0x2b, 0x63, 0x57, 0x58, 0x33, 0x75, 0x2b, 0x35, 0x38, 0x71, 0x50, 0x70, 0x76, 0x42, 0x4b, 0x4a, 0x58, 0x71, 0x65, 0x71, 0x55, 0x71, 0x76, 0x34, 0x49, 0x79, 0x66, 0x4c, 0x70, 0x4c, 0x47, 0x63, 0x59, 0x39, 0x76, 0x58, 0x6d, 0x58, 0x37, 0x77, 0x43, 0x6c, 0x37, 0x72, 0x61, 0x4b, 0x62, 0x30, 0x0a, 0x78, 0x6c, 0x70, 0x48, 0x44, 0x55, 0x30, 0x51, 0x4d, 0x2b, 0x4e, 0x4f, 0x73, 0x52, 0x4f, 0x6a, 0x79, 0x42, 0x68, 0x73, 0x53, 0x2b, 0x7a, 0x38, 0x43, 0x5a, 0x44, 0x66, 0x6e, 0x57, 0x51, 0x70, 0x4a, 0x53, 0x4d, 0x48, 0x6f, 0x62, 0x54, 0x53, 0x50, 0x53, 0x35, 0x67, 0x34, 0x4d, 0x2f, 0x53, 0x43, 0x59, 0x65, 0x37, 0x7a, 0x55, 0x6a, 0x77, 0x54, 0x63, 0x4c, 0x43, 0x65, 0x6f, 0x69, 0x4b, 0x75, 0x37, 0x72, 0x50, 0x57, 0x52, 0x6e, 0x57, 0x72, 0x34, 0x2b, 0x77, 0x0a, 0x42, 0x37, 0x43, 0x65, 0x4d, 0x66, 0x47, 0x43, 0x77, 0x63, 0x44, 0x66, 0x4c, 0x71, 0x5a, 0x74, 0x62, 0x42, 0x6b, 0x4f, 0x74, 0x64, 0x68, 0x2b, 0x4a, 0x68, 0x70, 0x46, 0x41, 0x7a, 0x32, 0x77, 0x65, 0x61, 0x53, 0x55, 0x4b, 0x4b, 0x30, 0x50, 0x66, 0x79, 0x62, 0x6c, 0x71, 0x41, 0x6a, 0x2b, 0x6c, 0x75, 0x67, 0x38, 0x61, 0x4a, 0x52, 0x54, 0x37, 0x6f, 0x4d, 0x36, 0x69, 0x43, 0x73, 0x56, 0x6c, 0x67, 0x6d, 0x79, 0x34, 0x48, 0x71, 0x4d, 0x4c, 0x6e, 0x58, 0x57, 0x0a, 0x6e, 0x4f, 0x75, 0x6e, 0x56, 0x6d, 0x53, 0x50, 0x6c, 0x6b, 0x39, 0x6f, 0x72, 0x6a, 0x32, 0x58, 0x77, 0x6f, 0x53, 0x50, 0x77, 0x4c, 0x78, 0x41, 0x77, 0x41, 0x74, 0x63, 0x76, 0x66, 0x61, 0x48, 0x73, 0x7a, 0x56, 0x73, 0x72, 0x42, 0x68, 0x51, 0x66, 0x34, 0x54, 0x67, 0x54, 0x4d, 0x32, 0x53, 0x30, 0x79, 0x44, 0x70, 0x4d, 0x37, 0x78, 0x53, 0x6d, 0x61, 0x38, 0x79, 0x74, 0x53, 0x6d, 0x7a, 0x4a, 0x53, 0x71, 0x30, 0x53, 0x50, 0x6c, 0x79, 0x34, 0x63, 0x70, 0x6b, 0x0a, 0x39, 0x2b, 0x61, 0x43, 0x45, 0x49, 0x33, 0x6f, 0x6e, 0x63, 0x4b, 0x4b, 0x69, 0x50, 0x6f, 0x34, 0x5a, 0x6f, 0x72, 0x38, 0x59, 0x2f, 0x6b, 0x42, 0x2b, 0x58, 0x6a, 0x39, 0x65, 0x31, 0x78, 0x33, 0x2b, 0x6e, 0x61, 0x48, 0x2b, 0x75, 0x7a, 0x66, 0x73, 0x51, 0x35, 0x35, 0x6c, 0x56, 0x65, 0x30, 0x76, 0x53, 0x62, 0x76, 0x31, 0x67, 0x48, 0x52, 0x36, 0x78, 0x59, 0x4b, 0x75, 0x34, 0x34, 0x4c, 0x74, 0x63, 0x58, 0x46, 0x69, 0x6c, 0x57, 0x72, 0x30, 0x36, 0x7a, 0x71, 0x0a, 0x6b, 0x55, 0x73, 0x70, 0x7a, 0x42, 0x6d, 0x6b, 0x4d, 0x69, 0x56, 0x4f, 0x4b, 0x76, 0x46, 0x6c, 0x52, 0x4e, 0x41, 0x43, 0x7a, 0x71, 0x72, 0x4f, 0x53, 0x62, 0x54, 0x71, 0x6e, 0x33, 0x79, 0x44, 0x73, 0x45, 0x42, 0x37, 0x35, 0x30, 0x4f, 0x72, 0x70, 0x32, 0x79, 0x6a, 0x6a, 0x33, 0x32, 0x4a, 0x67, 0x66, 0x70, 0x4d, 0x70, 0x66, 0x2f, 0x56, 0x6a, 0x73, 0x50, 0x4f, 0x53, 0x2b, 0x43, 0x31, 0x32, 0x4c, 0x4f, 0x4f, 0x52, 0x63, 0x39, 0x32, 0x77, 0x4f, 0x31, 0x41, 0x0a, 0x4b, 0x2f, 0x31, 0x54, 0x44, 0x37, 0x43, 0x6e, 0x31, 0x54, 0x73, 0x4e, 0x73, 0x59, 0x71, 0x69, 0x41, 0x39, 0x34, 0x78, 0x72, 0x63, 0x78, 0x33, 0x36, 0x6d, 0x39, 0x37, 0x50, 0x74, 0x62, 0x66, 0x6b, 0x53, 0x49, 0x53, 0x35, 0x72, 0x37, 0x36, 0x32, 0x44, 0x4c, 0x38, 0x45, 0x47, 0x4d, 0x55, 0x55, 0x58, 0x4c, 0x65, 0x58, 0x64, 0x59, 0x57, 0x6b, 0x37, 0x30, 0x70, 0x61, 0x44, 0x50, 0x76, 0x4f, 0x6d, 0x62, 0x73, 0x42, 0x34, 0x6f, 0x6d, 0x33, 0x78, 0x50, 0x58, 0x0a, 0x56, 0x32, 0x56, 0x34, 0x4a, 0x39, 0x35, 0x65, 0x53, 0x52, 0x51, 0x41, 0x6f, 0x67, 0x42, 0x2f, 0x6d, 0x71, 0x67, 0x68, 0x74, 0x71, 0x6d, 0x78, 0x6c, 0x62, 0x43, 0x6c, 0x75, 0x51, 0x30, 0x57, 0x45, 0x64, 0x72, 0x48, 0x62, 0x45, 0x67, 0x38, 0x51, 0x4f, 0x42, 0x2b, 0x44, 0x56, 0x72, 0x4e, 0x56, 0x6a, 0x7a, 0x52, 0x6c, 0x77, 0x57, 0x35, 0x79, 0x30, 0x76, 0x74, 0x4f, 0x55, 0x75, 0x63, 0x78, 0x44, 0x2f, 0x53, 0x56, 0x52, 0x4e, 0x75, 0x4a, 0x4c, 0x44, 0x57, 0x0a, 0x63, 0x66, 0x72, 0x30, 0x77, 0x62, 0x72, 0x4d, 0x37, 0x52, 0x76, 0x31, 0x2f, 0x6f, 0x46, 0x42, 0x32, 0x41, 0x43, 0x59, 0x50, 0x54, 0x72, 0x49, 0x72, 0x6e, 0x71, 0x59, 0x4e, 0x78, 0x67, 0x46, 0x6c, 0x51, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x59, 0x59, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x0a, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x35, 0x4b, 0x38, 0x72, 0x4a, 0x6e, 0x45, 0x61, 0x4b, 0x30, 0x67, 0x6e, 0x68, 0x53, 0x39, 0x53, 0x5a, 0x69, 0x7a, 0x76, 0x38, 0x49, 0x6b, 0x54, 0x63, 0x54, 0x34, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4d, 0x42, 0x51, 0x41, 0x44, 0x0a, 0x67, 0x67, 0x49, 0x42, 0x41, 0x4a, 0x2b, 0x71, 0x51, 0x69, 0x62, 0x62, 0x43, 0x35, 0x75, 0x2b, 0x2f, 0x78, 0x36, 0x57, 0x6b, 0x69, 0x34, 0x2b, 0x6f, 0x6d, 0x56, 0x4b, 0x61, 0x70, 0x69, 0x36, 0x49, 0x73, 0x74, 0x39, 0x77, 0x54, 0x72, 0x59, 0x67, 0x67, 0x6f, 0x47, 0x78, 0x76, 0x61, 0x6c, 0x33, 0x73, 0x42, 0x4f, 0x68, 0x32, 0x5a, 0x35, 0x6f, 0x66, 0x6d, 0x6d, 0x57, 0x4a, 0x79, 0x71, 0x2b, 0x62, 0x58, 0x6d, 0x59, 0x4f, 0x66, 0x67, 0x36, 0x4c, 0x45, 0x65, 0x0a, 0x51, 0x6b, 0x45, 0x7a, 0x43, 0x7a, 0x63, 0x39, 0x7a, 0x6f, 0x6c, 0x77, 0x46, 0x63, 0x71, 0x31, 0x4a, 0x4b, 0x6a, 0x50, 0x61, 0x37, 0x58, 0x53, 0x51, 0x43, 0x47, 0x59, 0x7a, 0x79, 0x49, 0x30, 0x7a, 0x7a, 0x76, 0x46, 0x49, 0x6f, 0x54, 0x67, 0x78, 0x51, 0x36, 0x4b, 0x66, 0x46, 0x32, 0x49, 0x35, 0x44, 0x55, 0x6b, 0x7a, 0x70, 0x73, 0x2b, 0x47, 0x6c, 0x51, 0x65, 0x62, 0x74, 0x75, 0x79, 0x68, 0x36, 0x66, 0x38, 0x38, 0x2f, 0x71, 0x42, 0x56, 0x52, 0x52, 0x69, 0x0a, 0x43, 0x6c, 0x6d, 0x70, 0x49, 0x67, 0x55, 0x78, 0x50, 0x6f, 0x4c, 0x57, 0x37, 0x74, 0x74, 0x58, 0x4e, 0x4c, 0x77, 0x7a, 0x6c, 0x64, 0x4d, 0x58, 0x47, 0x2b, 0x67, 0x6e, 0x6f, 0x6f, 0x74, 0x37, 0x54, 0x69, 0x59, 0x61, 0x65, 0x6c, 0x70, 0x6b, 0x74, 0x74, 0x47, 0x73, 0x4e, 0x2f, 0x48, 0x39, 0x6f, 0x50, 0x4d, 0x34, 0x37, 0x48, 0x4c, 0x77, 0x45, 0x58, 0x57, 0x64, 0x79, 0x7a, 0x52, 0x53, 0x6a, 0x65, 0x5a, 0x32, 0x61, 0x78, 0x66, 0x47, 0x33, 0x34, 0x61, 0x72, 0x0a, 0x4a, 0x34, 0x35, 0x4a, 0x4b, 0x33, 0x56, 0x6d, 0x67, 0x52, 0x41, 0x68, 0x70, 0x75, 0x6f, 0x2b, 0x39, 0x4b, 0x34, 0x6c, 0x2f, 0x33, 0x77, 0x56, 0x33, 0x73, 0x36, 0x4d, 0x4a, 0x54, 0x2f, 0x4b, 0x59, 0x6e, 0x41, 0x4b, 0x39, 0x79, 0x38, 0x4a, 0x5a, 0x67, 0x66, 0x49, 0x50, 0x78, 0x7a, 0x38, 0x38, 0x4e, 0x74, 0x46, 0x4d, 0x4e, 0x39, 0x69, 0x69, 0x4d, 0x47, 0x31, 0x44, 0x35, 0x33, 0x44, 0x6e, 0x30, 0x72, 0x65, 0x57, 0x56, 0x6c, 0x48, 0x78, 0x59, 0x63, 0x69, 0x0a, 0x4e, 0x75, 0x61, 0x43, 0x70, 0x2b, 0x30, 0x4b, 0x75, 0x65, 0x49, 0x48, 0x6f, 0x49, 0x31, 0x37, 0x65, 0x6b, 0x6f, 0x38, 0x63, 0x64, 0x4c, 0x69, 0x41, 0x36, 0x45, 0x66, 0x4d, 0x67, 0x66, 0x64, 0x47, 0x2b, 0x52, 0x43, 0x7a, 0x67, 0x77, 0x41, 0x52, 0x57, 0x47, 0x41, 0x74, 0x51, 0x73, 0x67, 0x57, 0x53, 0x6c, 0x34, 0x76, 0x66, 0x6c, 0x56, 0x79, 0x32, 0x50, 0x46, 0x50, 0x45, 0x7a, 0x30, 0x74, 0x76, 0x2f, 0x62, 0x61, 0x6c, 0x38, 0x78, 0x61, 0x35, 0x6d, 0x65, 0x0a, 0x4c, 0x4d, 0x46, 0x72, 0x55, 0x4b, 0x54, 0x58, 0x35, 0x68, 0x67, 0x55, 0x76, 0x59, 0x55, 0x2f, 0x5a, 0x36, 0x74, 0x47, 0x6e, 0x36, 0x44, 0x2f, 0x51, 0x71, 0x63, 0x36, 0x66, 0x31, 0x7a, 0x4c, 0x58, 0x62, 0x42, 0x77, 0x48, 0x53, 0x73, 0x30, 0x39, 0x64, 0x52, 0x32, 0x43, 0x51, 0x7a, 0x72, 0x65, 0x45, 0x78, 0x5a, 0x42, 0x66, 0x4d, 0x7a, 0x51, 0x73, 0x4e, 0x68, 0x46, 0x52, 0x41, 0x62, 0x64, 0x30, 0x33, 0x4f, 0x49, 0x6f, 0x7a, 0x55, 0x68, 0x66, 0x4a, 0x46, 0x0a, 0x66, 0x62, 0x64, 0x54, 0x36, 0x75, 0x39, 0x41, 0x57, 0x70, 0x51, 0x4b, 0x58, 0x43, 0x42, 0x66, 0x54, 0x6b, 0x42, 0x64, 0x59, 0x69, 0x4a, 0x32, 0x33, 0x2f, 0x2f, 0x4f, 0x59, 0x62, 0x32, 0x4d, 0x49, 0x33, 0x6a, 0x53, 0x4e, 0x77, 0x4c, 0x67, 0x6a, 0x74, 0x37, 0x52, 0x45, 0x54, 0x65, 0x4a, 0x39, 0x72, 0x2f, 0x74, 0x53, 0x51, 0x64, 0x69, 0x72, 0x70, 0x4c, 0x73, 0x51, 0x42, 0x71, 0x76, 0x46, 0x41, 0x6e, 0x5a, 0x30, 0x45, 0x36, 0x79, 0x6f, 0x76, 0x65, 0x2b, 0x0a, 0x37, 0x75, 0x37, 0x59, 0x2f, 0x39, 0x77, 0x61, 0x4c, 0x64, 0x36, 0x34, 0x4e, 0x6e, 0x48, 0x69, 0x2f, 0x48, 0x6d, 0x33, 0x6c, 0x43, 0x58, 0x52, 0x53, 0x48, 0x4e, 0x62, 0x6f, 0x54, 0x58, 0x6e, 0x73, 0x35, 0x6c, 0x6e, 0x64, 0x63, 0x45, 0x5a, 0x4f, 0x69, 0x74, 0x48, 0x54, 0x74, 0x4e, 0x43, 0x6a, 0x76, 0x30, 0x78, 0x79, 0x42, 0x5a, 0x6d, 0x32, 0x74, 0x49, 0x4d, 0x50, 0x4e, 0x75, 0x7a, 0x6a, 0x73, 0x6d, 0x68, 0x44, 0x59, 0x41, 0x50, 0x65, 0x78, 0x5a, 0x33, 0x0a, 0x46, 0x4c, 0x2f, 0x2f, 0x32, 0x77, 0x6d, 0x55, 0x73, 0x70, 0x4f, 0x38, 0x49, 0x46, 0x67, 0x56, 0x36, 0x64, 0x74, 0x78, 0x51, 0x2f, 0x50, 0x65, 0x45, 0x4d, 0x4d, 0x41, 0x33, 0x4b, 0x67, 0x71, 0x6c, 0x62, 0x62, 0x43, 0x31, 0x6a, 0x2b, 0x51, 0x61, 0x33, 0x62, 0x62, 0x62, 0x50, 0x36, 0x4d, 0x76, 0x50, 0x4a, 0x77, 0x4e, 0x51, 0x7a, 0x63, 0x6d, 0x52, 0x6b, 0x31, 0x33, 0x4e, 0x66, 0x49, 0x52, 0x6d, 0x50, 0x56, 0x4e, 0x6e, 0x47, 0x75, 0x56, 0x2f, 0x75, 0x33, 0x0a, 0x67, 0x6d, 0x33, 0x63, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x47, 0x54, 0x53, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x52, 0x32, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x56, 0x7a, 0x43, 0x43, 0x41, 0x7a, 0x2b, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4e, 0x41, 0x67, 0x50, 0x6c, 0x72, 0x73, 0x57, 0x4e, 0x42, 0x43, 0x55, 0x61, 0x71, 0x78, 0x45, 0x6c, 0x71, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x77, 0x46, 0x41, 0x44, 0x42, 0x48, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x0a, 0x55, 0x7a, 0x45, 0x69, 0x4d, 0x43, 0x41, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x5a, 0x52, 0x32, 0x39, 0x76, 0x5a, 0x32, 0x78, 0x6c, 0x49, 0x46, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x49, 0x46, 0x4e, 0x6c, 0x63, 0x6e, 0x5a, 0x70, 0x59, 0x32, 0x56, 0x7a, 0x49, 0x45, 0x78, 0x4d, 0x51, 0x7a, 0x45, 0x55, 0x4d, 0x42, 0x49, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x4c, 0x52, 0x31, 0x52, 0x54, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x0a, 0x55, 0x6a, 0x49, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x54, 0x59, 0x77, 0x4e, 0x6a, 0x49, 0x79, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x7a, 0x59, 0x77, 0x4e, 0x6a, 0x49, 0x79, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x6a, 0x42, 0x48, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x69, 0x4d, 0x43, 0x41, 0x47, 0x41, 0x31, 0x55, 0x45, 0x0a, 0x43, 0x68, 0x4d, 0x5a, 0x52, 0x32, 0x39, 0x76, 0x5a, 0x32, 0x78, 0x6c, 0x49, 0x46, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x49, 0x46, 0x4e, 0x6c, 0x63, 0x6e, 0x5a, 0x70, 0x59, 0x32, 0x56, 0x7a, 0x49, 0x45, 0x78, 0x4d, 0x51, 0x7a, 0x45, 0x55, 0x4d, 0x42, 0x49, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x4c, 0x52, 0x31, 0x52, 0x54, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x55, 0x6a, 0x49, 0x77, 0x67, 0x67, 0x49, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x0a, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x49, 0x4b, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x44, 0x4f, 0x33, 0x76, 0x32, 0x6d, 0x2b, 0x2b, 0x7a, 0x73, 0x46, 0x44, 0x51, 0x38, 0x42, 0x77, 0x5a, 0x61, 0x62, 0x46, 0x6e, 0x33, 0x47, 0x54, 0x58, 0x64, 0x39, 0x38, 0x47, 0x64, 0x56, 0x61, 0x72, 0x54, 0x7a, 0x54, 0x75, 0x6b, 0x6b, 0x33, 0x4c, 0x76, 0x0a, 0x43, 0x76, 0x70, 0x74, 0x6e, 0x66, 0x62, 0x77, 0x68, 0x59, 0x42, 0x62, 0x6f, 0x55, 0x68, 0x53, 0x6e, 0x7a, 0x6e, 0x46, 0x74, 0x2b, 0x34, 0x6f, 0x72, 0x4f, 0x2f, 0x4c, 0x64, 0x6d, 0x67, 0x55, 0x75, 0x64, 0x2b, 0x74, 0x41, 0x57, 0x79, 0x5a, 0x48, 0x38, 0x51, 0x69, 0x48, 0x5a, 0x2f, 0x2b, 0x63, 0x6e, 0x66, 0x67, 0x4c, 0x46, 0x75, 0x76, 0x35, 0x41, 0x53, 0x2f, 0x54, 0x33, 0x4b, 0x67, 0x47, 0x6a, 0x53, 0x59, 0x36, 0x44, 0x6c, 0x6f, 0x37, 0x4a, 0x55, 0x6c, 0x0a, 0x65, 0x33, 0x61, 0x68, 0x35, 0x6d, 0x6d, 0x35, 0x68, 0x52, 0x6d, 0x39, 0x69, 0x59, 0x7a, 0x2b, 0x72, 0x65, 0x30, 0x32, 0x36, 0x6e, 0x4f, 0x38, 0x2f, 0x34, 0x50, 0x69, 0x79, 0x33, 0x33, 0x42, 0x30, 0x73, 0x35, 0x4b, 0x73, 0x34, 0x30, 0x46, 0x6e, 0x6f, 0x74, 0x4a, 0x6b, 0x39, 0x2f, 0x42, 0x57, 0x39, 0x42, 0x75, 0x58, 0x76, 0x41, 0x75, 0x4d, 0x43, 0x36, 0x43, 0x2f, 0x50, 0x71, 0x38, 0x74, 0x42, 0x63, 0x4b, 0x53, 0x4f, 0x57, 0x49, 0x6d, 0x38, 0x57, 0x62, 0x0a, 0x61, 0x39, 0x36, 0x77, 0x79, 0x72, 0x51, 0x44, 0x38, 0x4e, 0x72, 0x30, 0x6b, 0x4c, 0x68, 0x6c, 0x5a, 0x50, 0x64, 0x63, 0x54, 0x4b, 0x33, 0x6f, 0x66, 0x6d, 0x5a, 0x65, 0x6d, 0x64, 0x65, 0x34, 0x77, 0x6a, 0x37, 0x49, 0x30, 0x42, 0x4f, 0x64, 0x72, 0x65, 0x37, 0x6b, 0x52, 0x58, 0x75, 0x4a, 0x56, 0x66, 0x65, 0x4b, 0x48, 0x32, 0x4a, 0x53, 0x68, 0x42, 0x4b, 0x7a, 0x77, 0x6b, 0x43, 0x58, 0x34, 0x34, 0x6f, 0x66, 0x52, 0x35, 0x47, 0x6d, 0x64, 0x46, 0x72, 0x53, 0x0a, 0x2b, 0x4c, 0x46, 0x6a, 0x4b, 0x42, 0x43, 0x34, 0x73, 0x77, 0x6d, 0x34, 0x56, 0x6e, 0x64, 0x41, 0x6f, 0x69, 0x61, 0x59, 0x65, 0x63, 0x62, 0x2b, 0x33, 0x79, 0x58, 0x75, 0x50, 0x75, 0x57, 0x67, 0x66, 0x39, 0x52, 0x68, 0x44, 0x31, 0x46, 0x4c, 0x50, 0x44, 0x2b, 0x4d, 0x32, 0x75, 0x46, 0x77, 0x64, 0x4e, 0x6a, 0x43, 0x61, 0x4b, 0x48, 0x35, 0x77, 0x51, 0x7a, 0x70, 0x6f, 0x65, 0x4a, 0x2f, 0x75, 0x31, 0x55, 0x38, 0x64, 0x67, 0x62, 0x75, 0x61, 0x6b, 0x37, 0x4d, 0x0a, 0x6b, 0x6f, 0x67, 0x77, 0x54, 0x5a, 0x71, 0x39, 0x54, 0x77, 0x74, 0x49, 0x6d, 0x6f, 0x53, 0x31, 0x6d, 0x4b, 0x50, 0x56, 0x2b, 0x33, 0x50, 0x42, 0x56, 0x32, 0x48, 0x64, 0x4b, 0x46, 0x5a, 0x31, 0x45, 0x36, 0x36, 0x48, 0x6a, 0x75, 0x63, 0x4d, 0x55, 0x51, 0x6b, 0x51, 0x64, 0x59, 0x68, 0x4d, 0x76, 0x49, 0x33, 0x35, 0x65, 0x7a, 0x7a, 0x55, 0x49, 0x6b, 0x67, 0x66, 0x4b, 0x74, 0x7a, 0x72, 0x61, 0x37, 0x74, 0x45, 0x73, 0x63, 0x73, 0x7a, 0x63, 0x54, 0x4a, 0x47, 0x0a, 0x72, 0x36, 0x31, 0x4b, 0x38, 0x59, 0x7a, 0x6f, 0x64, 0x44, 0x71, 0x73, 0x35, 0x78, 0x6f, 0x69, 0x63, 0x34, 0x44, 0x53, 0x4d, 0x50, 0x63, 0x6c, 0x51, 0x73, 0x63, 0x69, 0x4f, 0x7a, 0x73, 0x53, 0x72, 0x5a, 0x59, 0x75, 0x78, 0x73, 0x4e, 0x32, 0x42, 0x36, 0x6f, 0x67, 0x74, 0x7a, 0x56, 0x4a, 0x56, 0x2b, 0x6d, 0x53, 0x53, 0x65, 0x68, 0x32, 0x46, 0x6e, 0x49, 0x78, 0x5a, 0x79, 0x75, 0x57, 0x66, 0x6f, 0x71, 0x6a, 0x78, 0x35, 0x52, 0x57, 0x49, 0x72, 0x39, 0x71, 0x0a, 0x53, 0x33, 0x34, 0x42, 0x49, 0x62, 0x49, 0x6a, 0x4d, 0x74, 0x2f, 0x6b, 0x6d, 0x6b, 0x52, 0x74, 0x57, 0x56, 0x74, 0x64, 0x39, 0x51, 0x43, 0x67, 0x48, 0x4a, 0x76, 0x47, 0x65, 0x4a, 0x65, 0x4e, 0x6b, 0x50, 0x2b, 0x62, 0x79, 0x4b, 0x71, 0x30, 0x72, 0x78, 0x46, 0x52, 0x4f, 0x56, 0x37, 0x5a, 0x2b, 0x32, 0x65, 0x74, 0x31, 0x56, 0x73, 0x52, 0x6e, 0x54, 0x4b, 0x61, 0x47, 0x37, 0x33, 0x56, 0x75, 0x6c, 0x75, 0x6c, 0x79, 0x63, 0x73, 0x6c, 0x61, 0x56, 0x4e, 0x56, 0x0a, 0x4a, 0x31, 0x7a, 0x67, 0x79, 0x6a, 0x62, 0x4c, 0x69, 0x47, 0x48, 0x37, 0x48, 0x72, 0x66, 0x51, 0x79, 0x2b, 0x34, 0x57, 0x2b, 0x39, 0x4f, 0x6d, 0x54, 0x4e, 0x36, 0x53, 0x70, 0x64, 0x54, 0x69, 0x33, 0x2f, 0x55, 0x47, 0x56, 0x4e, 0x34, 0x75, 0x6e, 0x55, 0x75, 0x30, 0x6b, 0x7a, 0x43, 0x71, 0x67, 0x63, 0x37, 0x64, 0x47, 0x74, 0x78, 0x52, 0x63, 0x77, 0x31, 0x50, 0x63, 0x4f, 0x6e, 0x6c, 0x74, 0x68, 0x59, 0x68, 0x47, 0x58, 0x6d, 0x79, 0x35, 0x6f, 0x6b, 0x4c, 0x0a, 0x64, 0x57, 0x54, 0x4b, 0x31, 0x61, 0x75, 0x38, 0x43, 0x63, 0x45, 0x59, 0x6f, 0x66, 0x2f, 0x55, 0x56, 0x4b, 0x47, 0x46, 0x50, 0x50, 0x30, 0x55, 0x4a, 0x41, 0x4f, 0x79, 0x68, 0x39, 0x4f, 0x6b, 0x74, 0x77, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x59, 0x59, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x0a, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x75, 0x2f, 0x2f, 0x4b, 0x6a, 0x69, 0x4f, 0x66, 0x54, 0x35, 0x6e, 0x4b, 0x32, 0x2b, 0x4a, 0x6f, 0x70, 0x71, 0x55, 0x56, 0x4a, 0x78, 0x63, 0x65, 0x32, 0x51, 0x34, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4d, 0x42, 0x51, 0x41, 0x44, 0x0a, 0x67, 0x67, 0x49, 0x42, 0x41, 0x42, 0x2f, 0x4b, 0x7a, 0x74, 0x33, 0x48, 0x76, 0x71, 0x47, 0x66, 0x32, 0x53, 0x64, 0x4d, 0x43, 0x39, 0x77, 0x58, 0x6d, 0x42, 0x46, 0x71, 0x69, 0x4e, 0x34, 0x39, 0x35, 0x6e, 0x46, 0x57, 0x63, 0x72, 0x4b, 0x65, 0x47, 0x6b, 0x36, 0x63, 0x31, 0x53, 0x75, 0x59, 0x4a, 0x46, 0x32, 0x62, 0x61, 0x33, 0x75, 0x77, 0x4d, 0x34, 0x49, 0x4a, 0x76, 0x64, 0x38, 0x6c, 0x52, 0x75, 0x71, 0x59, 0x6e, 0x72, 0x59, 0x62, 0x2f, 0x6f, 0x4d, 0x38, 0x0a, 0x30, 0x6d, 0x4a, 0x68, 0x77, 0x51, 0x54, 0x74, 0x7a, 0x75, 0x44, 0x46, 0x79, 0x63, 0x67, 0x54, 0x45, 0x31, 0x58, 0x6e, 0x71, 0x47, 0x4f, 0x74, 0x6a, 0x48, 0x73, 0x42, 0x2f, 0x6e, 0x63, 0x77, 0x34, 0x63, 0x35, 0x6f, 0x6d, 0x77, 0x58, 0x34, 0x45, 0x75, 0x35, 0x35, 0x4d, 0x61, 0x42, 0x42, 0x52, 0x54, 0x55, 0x6f, 0x43, 0x6e, 0x47, 0x6b, 0x4a, 0x45, 0x2b, 0x4d, 0x33, 0x44, 0x79, 0x43, 0x42, 0x31, 0x39, 0x6d, 0x33, 0x48, 0x30, 0x51, 0x2f, 0x67, 0x78, 0x68, 0x0a, 0x73, 0x77, 0x57, 0x56, 0x37, 0x75, 0x47, 0x75, 0x67, 0x51, 0x2b, 0x6f, 0x2b, 0x4d, 0x65, 0x50, 0x54, 0x61, 0x67, 0x6a, 0x41, 0x69, 0x5a, 0x72, 0x48, 0x59, 0x4e, 0x53, 0x56, 0x63, 0x36, 0x31, 0x4c, 0x77, 0x44, 0x4b, 0x67, 0x45, 0x44, 0x67, 0x34, 0x58, 0x53, 0x73, 0x59, 0x50, 0x57, 0x48, 0x67, 0x4a, 0x32, 0x75, 0x4e, 0x6d, 0x53, 0x52, 0x58, 0x62, 0x42, 0x6f, 0x47, 0x4f, 0x71, 0x4b, 0x59, 0x63, 0x6c, 0x33, 0x71, 0x4a, 0x66, 0x45, 0x79, 0x63, 0x65, 0x6c, 0x0a, 0x2f, 0x46, 0x56, 0x4c, 0x38, 0x2f, 0x42, 0x2f, 0x75, 0x57, 0x55, 0x39, 0x4a, 0x32, 0x6a, 0x51, 0x7a, 0x47, 0x76, 0x36, 0x55, 0x35, 0x33, 0x68, 0x6b, 0x52, 0x72, 0x4a, 0x58, 0x52, 0x71, 0x57, 0x62, 0x54, 0x4b, 0x48, 0x37, 0x51, 0x4d, 0x67, 0x79, 0x41, 0x4c, 0x4f, 0x57, 0x72, 0x37, 0x5a, 0x36, 0x76, 0x32, 0x79, 0x54, 0x63, 0x51, 0x76, 0x47, 0x39, 0x39, 0x66, 0x65, 0x76, 0x58, 0x34, 0x69, 0x38, 0x62, 0x75, 0x4d, 0x54, 0x6f, 0x6c, 0x55, 0x56, 0x56, 0x6e, 0x0a, 0x6a, 0x57, 0x51, 0x79, 0x65, 0x2b, 0x6d, 0x65, 0x77, 0x34, 0x4b, 0x36, 0x4b, 0x69, 0x33, 0x70, 0x48, 0x72, 0x54, 0x67, 0x53, 0x41, 0x61, 0x69, 0x2f, 0x47, 0x65, 0x76, 0x48, 0x79, 0x49, 0x43, 0x63, 0x2f, 0x73, 0x67, 0x43, 0x71, 0x2b, 0x64, 0x56, 0x45, 0x75, 0x68, 0x7a, 0x66, 0x39, 0x67, 0x52, 0x37, 0x41, 0x2f, 0x58, 0x65, 0x38, 0x62, 0x56, 0x72, 0x32, 0x58, 0x49, 0x5a, 0x59, 0x74, 0x43, 0x74, 0x46, 0x65, 0x6e, 0x54, 0x67, 0x43, 0x52, 0x32, 0x79, 0x35, 0x0a, 0x39, 0x50, 0x59, 0x6a, 0x4a, 0x62, 0x69, 0x67, 0x61, 0x70, 0x6f, 0x72, 0x64, 0x77, 0x6a, 0x36, 0x78, 0x4c, 0x45, 0x6f, 0x6b, 0x43, 0x5a, 0x59, 0x43, 0x44, 0x7a, 0x69, 0x66, 0x71, 0x72, 0x58, 0x50, 0x57, 0x2b, 0x36, 0x4d, 0x59, 0x67, 0x4b, 0x42, 0x65, 0x73, 0x6e, 0x74, 0x61, 0x46, 0x4a, 0x37, 0x71, 0x42, 0x46, 0x56, 0x48, 0x76, 0x6d, 0x4a, 0x32, 0x57, 0x5a, 0x49, 0x43, 0x47, 0x6f, 0x6f, 0x37, 0x7a, 0x37, 0x47, 0x4a, 0x61, 0x37, 0x55, 0x6d, 0x38, 0x4d, 0x0a, 0x37, 0x59, 0x4e, 0x52, 0x54, 0x4f, 0x6c, 0x5a, 0x34, 0x69, 0x42, 0x67, 0x78, 0x63, 0x4a, 0x6c, 0x6b, 0x6f, 0x4b, 0x4d, 0x38, 0x78, 0x41, 0x66, 0x44, 0x6f, 0x71, 0x58, 0x76, 0x6e, 0x65, 0x43, 0x62, 0x54, 0x2b, 0x50, 0x48, 0x56, 0x32, 0x38, 0x53, 0x53, 0x65, 0x39, 0x7a, 0x45, 0x38, 0x50, 0x34, 0x63, 0x35, 0x32, 0x68, 0x67, 0x51, 0x6a, 0x78, 0x63, 0x43, 0x4d, 0x45, 0x6c, 0x76, 0x39, 0x32, 0x34, 0x53, 0x67, 0x4a, 0x50, 0x46, 0x49, 0x2f, 0x32, 0x52, 0x38, 0x0a, 0x30, 0x4c, 0x35, 0x63, 0x46, 0x74, 0x48, 0x76, 0x6d, 0x61, 0x33, 0x41, 0x48, 0x2f, 0x76, 0x4c, 0x72, 0x72, 0x77, 0x34, 0x49, 0x67, 0x59, 0x6d, 0x5a, 0x4e, 0x72, 0x61, 0x6c, 0x77, 0x34, 0x2f, 0x4b, 0x42, 0x56, 0x45, 0x71, 0x45, 0x38, 0x41, 0x79, 0x76, 0x43, 0x61, 0x7a, 0x4d, 0x39, 0x30, 0x61, 0x72, 0x51, 0x2b, 0x50, 0x4f, 0x75, 0x56, 0x37, 0x4c, 0x58, 0x54, 0x57, 0x74, 0x69, 0x42, 0x6d, 0x65, 0x6c, 0x44, 0x47, 0x44, 0x66, 0x72, 0x73, 0x37, 0x76, 0x52, 0x0a, 0x57, 0x47, 0x4a, 0x42, 0x38, 0x32, 0x62, 0x53, 0x6a, 0x36, 0x70, 0x34, 0x6c, 0x56, 0x51, 0x67, 0x77, 0x31, 0x6f, 0x75, 0x64, 0x43, 0x76, 0x56, 0x30, 0x62, 0x34, 0x59, 0x61, 0x63, 0x43, 0x73, 0x31, 0x61, 0x54, 0x50, 0x4f, 0x62, 0x70, 0x52, 0x68, 0x41, 0x4e, 0x6c, 0x36, 0x57, 0x4c, 0x41, 0x59, 0x76, 0x37, 0x59, 0x54, 0x56, 0x57, 0x57, 0x34, 0x74, 0x41, 0x52, 0x2b, 0x6b, 0x67, 0x30, 0x45, 0x65, 0x79, 0x65, 0x37, 0x51, 0x55, 0x64, 0x35, 0x4d, 0x6a, 0x57, 0x0a, 0x48, 0x59, 0x62, 0x4c, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x47, 0x54, 0x53, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x52, 0x33, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x43, 0x54, 0x43, 0x43, 0x41, 0x59, 0x36, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4e, 0x41, 0x67, 0x50, 0x6c, 0x75, 0x49, 0x4c, 0x72, 0x49, 0x50, 0x67, 0x6c, 0x4a, 0x32, 0x30, 0x39, 0x5a, 0x6a, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x7a, 0x42, 0x48, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x69, 0x0a, 0x4d, 0x43, 0x41, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x5a, 0x52, 0x32, 0x39, 0x76, 0x5a, 0x32, 0x78, 0x6c, 0x49, 0x46, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x49, 0x46, 0x4e, 0x6c, 0x63, 0x6e, 0x5a, 0x70, 0x59, 0x32, 0x56, 0x7a, 0x49, 0x45, 0x78, 0x4d, 0x51, 0x7a, 0x45, 0x55, 0x4d, 0x42, 0x49, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x4c, 0x52, 0x31, 0x52, 0x54, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x55, 0x6a, 0x4d, 0x77, 0x0a, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x54, 0x59, 0x77, 0x4e, 0x6a, 0x49, 0x79, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x7a, 0x59, 0x77, 0x4e, 0x6a, 0x49, 0x79, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x6a, 0x42, 0x48, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x69, 0x4d, 0x43, 0x41, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x5a, 0x0a, 0x52, 0x32, 0x39, 0x76, 0x5a, 0x32, 0x78, 0x6c, 0x49, 0x46, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x49, 0x46, 0x4e, 0x6c, 0x63, 0x6e, 0x5a, 0x70, 0x59, 0x32, 0x56, 0x7a, 0x49, 0x45, 0x78, 0x4d, 0x51, 0x7a, 0x45, 0x55, 0x4d, 0x42, 0x49, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x4c, 0x52, 0x31, 0x52, 0x54, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x55, 0x6a, 0x4d, 0x77, 0x64, 0x6a, 0x41, 0x51, 0x42, 0x67, 0x63, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x0a, 0x50, 0x51, 0x49, 0x42, 0x42, 0x67, 0x55, 0x72, 0x67, 0x51, 0x51, 0x41, 0x49, 0x67, 0x4e, 0x69, 0x41, 0x41, 0x51, 0x66, 0x54, 0x7a, 0x4f, 0x48, 0x4d, 0x79, 0x6d, 0x4b, 0x6f, 0x59, 0x54, 0x65, 0x79, 0x38, 0x63, 0x68, 0x57, 0x45, 0x47, 0x4a, 0x36, 0x6c, 0x61, 0x64, 0x4b, 0x30, 0x75, 0x46, 0x78, 0x68, 0x31, 0x4d, 0x4a, 0x37, 0x78, 0x2f, 0x4a, 0x6c, 0x46, 0x79, 0x62, 0x2b, 0x4b, 0x66, 0x31, 0x71, 0x50, 0x4b, 0x7a, 0x45, 0x55, 0x55, 0x52, 0x6f, 0x75, 0x74, 0x0a, 0x37, 0x33, 0x36, 0x47, 0x6a, 0x4f, 0x79, 0x78, 0x66, 0x69, 0x2f, 0x2f, 0x71, 0x58, 0x47, 0x64, 0x47, 0x49, 0x52, 0x46, 0x42, 0x45, 0x46, 0x56, 0x62, 0x69, 0x76, 0x71, 0x4a, 0x6e, 0x2b, 0x37, 0x6b, 0x41, 0x48, 0x6a, 0x53, 0x78, 0x6d, 0x36, 0x35, 0x46, 0x53, 0x57, 0x52, 0x51, 0x6d, 0x78, 0x31, 0x57, 0x79, 0x52, 0x52, 0x4b, 0x32, 0x45, 0x45, 0x34, 0x36, 0x61, 0x6a, 0x41, 0x32, 0x41, 0x44, 0x44, 0x4c, 0x32, 0x34, 0x43, 0x65, 0x6a, 0x51, 0x6a, 0x42, 0x41, 0x0a, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x68, 0x6a, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x54, 0x42, 0x38, 0x53, 0x61, 0x36, 0x6f, 0x43, 0x32, 0x75, 0x68, 0x59, 0x48, 0x50, 0x30, 0x2f, 0x45, 0x71, 0x0a, 0x45, 0x72, 0x32, 0x34, 0x43, 0x6d, 0x66, 0x39, 0x76, 0x44, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x77, 0x4e, 0x70, 0x41, 0x44, 0x42, 0x6d, 0x41, 0x6a, 0x45, 0x41, 0x39, 0x75, 0x45, 0x67, 0x6c, 0x52, 0x52, 0x37, 0x56, 0x4b, 0x4f, 0x51, 0x46, 0x68, 0x47, 0x2f, 0x68, 0x4d, 0x6a, 0x71, 0x62, 0x32, 0x73, 0x58, 0x6e, 0x68, 0x35, 0x47, 0x6d, 0x43, 0x43, 0x62, 0x6e, 0x39, 0x4d, 0x4e, 0x32, 0x61, 0x7a, 0x54, 0x0a, 0x4c, 0x38, 0x31, 0x38, 0x2b, 0x46, 0x73, 0x75, 0x56, 0x62, 0x75, 0x2f, 0x33, 0x5a, 0x4c, 0x33, 0x70, 0x41, 0x7a, 0x63, 0x4d, 0x65, 0x47, 0x69, 0x41, 0x6a, 0x45, 0x41, 0x2f, 0x4a, 0x64, 0x6d, 0x5a, 0x75, 0x56, 0x44, 0x46, 0x68, 0x4f, 0x44, 0x33, 0x63, 0x66, 0x66, 0x4c, 0x37, 0x34, 0x55, 0x4f, 0x4f, 0x30, 0x42, 0x7a, 0x72, 0x45, 0x58, 0x47, 0x68, 0x46, 0x31, 0x36, 0x62, 0x30, 0x44, 0x6a, 0x79, 0x5a, 0x2b, 0x68, 0x4f, 0x58, 0x4a, 0x59, 0x4b, 0x61, 0x56, 0x0a, 0x31, 0x31, 0x52, 0x5a, 0x74, 0x2b, 0x63, 0x52, 0x4c, 0x49, 0x6e, 0x55, 0x75, 0x65, 0x34, 0x58, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x47, 0x54, 0x53, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x52, 0x34, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x43, 0x54, 0x43, 0x43, 0x41, 0x59, 0x36, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4e, 0x41, 0x67, 0x50, 0x6c, 0x77, 0x47, 0x6a, 0x76, 0x59, 0x78, 0x71, 0x63, 0x63, 0x70, 0x42, 0x51, 0x55, 0x6a, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x7a, 0x42, 0x48, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x69, 0x0a, 0x4d, 0x43, 0x41, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x5a, 0x52, 0x32, 0x39, 0x76, 0x5a, 0x32, 0x78, 0x6c, 0x49, 0x46, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x49, 0x46, 0x4e, 0x6c, 0x63, 0x6e, 0x5a, 0x70, 0x59, 0x32, 0x56, 0x7a, 0x49, 0x45, 0x78, 0x4d, 0x51, 0x7a, 0x45, 0x55, 0x4d, 0x42, 0x49, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x4c, 0x52, 0x31, 0x52, 0x54, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x55, 0x6a, 0x51, 0x77, 0x0a, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x54, 0x59, 0x77, 0x4e, 0x6a, 0x49, 0x79, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x7a, 0x59, 0x77, 0x4e, 0x6a, 0x49, 0x79, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x6a, 0x42, 0x48, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x69, 0x4d, 0x43, 0x41, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x5a, 0x0a, 0x52, 0x32, 0x39, 0x76, 0x5a, 0x32, 0x78, 0x6c, 0x49, 0x46, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x49, 0x46, 0x4e, 0x6c, 0x63, 0x6e, 0x5a, 0x70, 0x59, 0x32, 0x56, 0x7a, 0x49, 0x45, 0x78, 0x4d, 0x51, 0x7a, 0x45, 0x55, 0x4d, 0x42, 0x49, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x4c, 0x52, 0x31, 0x52, 0x54, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x55, 0x6a, 0x51, 0x77, 0x64, 0x6a, 0x41, 0x51, 0x42, 0x67, 0x63, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x0a, 0x50, 0x51, 0x49, 0x42, 0x42, 0x67, 0x55, 0x72, 0x67, 0x51, 0x51, 0x41, 0x49, 0x67, 0x4e, 0x69, 0x41, 0x41, 0x54, 0x7a, 0x64, 0x48, 0x4f, 0x6e, 0x61, 0x49, 0x74, 0x67, 0x72, 0x6b, 0x4f, 0x34, 0x4e, 0x63, 0x57, 0x42, 0x4d, 0x48, 0x74, 0x4c, 0x53, 0x5a, 0x33, 0x37, 0x77, 0x57, 0x48, 0x4f, 0x35, 0x74, 0x35, 0x47, 0x76, 0x57, 0x76, 0x56, 0x59, 0x52, 0x67, 0x31, 0x72, 0x6b, 0x44, 0x64, 0x63, 0x2f, 0x65, 0x4a, 0x6b, 0x54, 0x42, 0x61, 0x36, 0x7a, 0x7a, 0x75, 0x0a, 0x68, 0x58, 0x79, 0x69, 0x51, 0x48, 0x59, 0x37, 0x71, 0x63, 0x61, 0x34, 0x52, 0x39, 0x67, 0x71, 0x35, 0x35, 0x4b, 0x52, 0x61, 0x6e, 0x50, 0x70, 0x73, 0x58, 0x49, 0x35, 0x6e, 0x79, 0x6d, 0x66, 0x6f, 0x70, 0x6a, 0x54, 0x58, 0x31, 0x35, 0x59, 0x68, 0x6d, 0x55, 0x50, 0x6f, 0x59, 0x52, 0x6c, 0x42, 0x74, 0x48, 0x63, 0x69, 0x38, 0x6e, 0x48, 0x63, 0x38, 0x69, 0x4d, 0x61, 0x69, 0x2f, 0x6c, 0x78, 0x4b, 0x76, 0x52, 0x48, 0x59, 0x71, 0x6a, 0x51, 0x6a, 0x42, 0x41, 0x0a, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x68, 0x6a, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x53, 0x41, 0x54, 0x4e, 0x62, 0x72, 0x64, 0x50, 0x39, 0x4a, 0x4e, 0x71, 0x50, 0x56, 0x32, 0x50, 0x79, 0x31, 0x0a, 0x50, 0x73, 0x56, 0x71, 0x38, 0x4a, 0x51, 0x64, 0x6a, 0x44, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x77, 0x4e, 0x70, 0x41, 0x44, 0x42, 0x6d, 0x41, 0x6a, 0x45, 0x41, 0x36, 0x45, 0x44, 0x2f, 0x67, 0x39, 0x34, 0x44, 0x39, 0x4a, 0x2b, 0x75, 0x48, 0x58, 0x71, 0x6e, 0x4c, 0x72, 0x6d, 0x76, 0x54, 0x2f, 0x61, 0x44, 0x48, 0x51, 0x34, 0x74, 0x68, 0x51, 0x45, 0x64, 0x30, 0x64, 0x6c, 0x71, 0x37, 0x41, 0x2f, 0x43, 0x0a, 0x72, 0x38, 0x64, 0x65, 0x56, 0x6c, 0x35, 0x63, 0x31, 0x52, 0x78, 0x59, 0x49, 0x69, 0x67, 0x4c, 0x39, 0x7a, 0x43, 0x32, 0x4c, 0x37, 0x46, 0x38, 0x41, 0x6a, 0x45, 0x41, 0x38, 0x47, 0x45, 0x38, 0x70, 0x2f, 0x53, 0x67, 0x67, 0x75, 0x4d, 0x68, 0x31, 0x59, 0x51, 0x64, 0x63, 0x34, 0x61, 0x63, 0x4c, 0x61, 0x2f, 0x4b, 0x4e, 0x4a, 0x76, 0x78, 0x6e, 0x37, 0x6b, 0x6a, 0x4e, 0x75, 0x4b, 0x38, 0x59, 0x41, 0x4f, 0x64, 0x67, 0x4c, 0x4f, 0x61, 0x56, 0x73, 0x6a, 0x68, 0x0a, 0x34, 0x72, 0x73, 0x55, 0x65, 0x63, 0x72, 0x4e, 0x49, 0x64, 0x53, 0x55, 0x74, 0x55, 0x6c, 0x44, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x54, 0x65, 0x6c, 0x69, 0x61, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x76, 0x32, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x64, 0x44, 0x43, 0x43, 0x41, 0x31, 0x79, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x50, 0x41, 0x57, 0x64, 0x66, 0x4a, 0x39, 0x62, 0x2b, 0x65, 0x75, 0x50, 0x6b, 0x72, 0x4c, 0x34, 0x4a, 0x57, 0x77, 0x57, 0x65, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x43, 0x77, 0x55, 0x41, 0x4d, 0x45, 0x51, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x0a, 0x41, 0x6b, 0x5a, 0x4a, 0x4d, 0x52, 0x6f, 0x77, 0x47, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x42, 0x46, 0x55, 0x5a, 0x57, 0x78, 0x70, 0x59, 0x53, 0x42, 0x47, 0x61, 0x57, 0x35, 0x73, 0x59, 0x57, 0x35, 0x6b, 0x49, 0x45, 0x39, 0x35, 0x61, 0x6a, 0x45, 0x5a, 0x4d, 0x42, 0x63, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x77, 0x77, 0x51, 0x56, 0x47, 0x56, 0x73, 0x61, 0x57, 0x45, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x51, 0x53, 0x42, 0x32, 0x0a, 0x4d, 0x6a, 0x41, 0x65, 0x46, 0x77, 0x30, 0x78, 0x4f, 0x44, 0x45, 0x78, 0x4d, 0x6a, 0x6b, 0x78, 0x4d, 0x54, 0x55, 0x31, 0x4e, 0x54, 0x52, 0x61, 0x46, 0x77, 0x30, 0x30, 0x4d, 0x7a, 0x45, 0x78, 0x4d, 0x6a, 0x6b, 0x78, 0x4d, 0x54, 0x55, 0x31, 0x4e, 0x54, 0x52, 0x61, 0x4d, 0x45, 0x51, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6b, 0x5a, 0x4a, 0x4d, 0x52, 0x6f, 0x77, 0x47, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x0a, 0x44, 0x42, 0x46, 0x55, 0x5a, 0x57, 0x78, 0x70, 0x59, 0x53, 0x42, 0x47, 0x61, 0x57, 0x35, 0x73, 0x59, 0x57, 0x35, 0x6b, 0x49, 0x45, 0x39, 0x35, 0x61, 0x6a, 0x45, 0x5a, 0x4d, 0x42, 0x63, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x77, 0x77, 0x51, 0x56, 0x47, 0x56, 0x73, 0x61, 0x57, 0x45, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x51, 0x53, 0x42, 0x32, 0x4d, 0x6a, 0x43, 0x43, 0x41, 0x69, 0x49, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x0a, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x50, 0x41, 0x44, 0x43, 0x43, 0x41, 0x67, 0x6f, 0x43, 0x67, 0x67, 0x49, 0x42, 0x41, 0x4c, 0x4c, 0x51, 0x50, 0x77, 0x65, 0x38, 0x34, 0x6e, 0x76, 0x51, 0x61, 0x35, 0x6e, 0x34, 0x34, 0x6e, 0x64, 0x70, 0x35, 0x38, 0x36, 0x64, 0x70, 0x41, 0x4f, 0x38, 0x67, 0x6d, 0x32, 0x68, 0x2f, 0x6f, 0x46, 0x6c, 0x48, 0x30, 0x77, 0x6e, 0x72, 0x49, 0x34, 0x41, 0x75, 0x68, 0x5a, 0x37, 0x0a, 0x36, 0x7a, 0x42, 0x71, 0x41, 0x4d, 0x43, 0x7a, 0x64, 0x47, 0x68, 0x2b, 0x73, 0x71, 0x2f, 0x48, 0x31, 0x57, 0x4b, 0x7a, 0x65, 0x6a, 0x39, 0x51, 0x79, 0x6f, 0x77, 0x32, 0x52, 0x43, 0x52, 0x6a, 0x30, 0x6a, 0x62, 0x70, 0x44, 0x49, 0x58, 0x32, 0x51, 0x33, 0x62, 0x56, 0x54, 0x4b, 0x46, 0x67, 0x63, 0x6d, 0x66, 0x69, 0x4b, 0x44, 0x4f, 0x6c, 0x79, 0x7a, 0x47, 0x34, 0x4f, 0x69, 0x49, 0x6a, 0x4e, 0x4c, 0x68, 0x39, 0x76, 0x56, 0x59, 0x69, 0x51, 0x4a, 0x33, 0x71, 0x0a, 0x39, 0x48, 0x73, 0x44, 0x72, 0x57, 0x6a, 0x38, 0x73, 0x6f, 0x46, 0x50, 0x6d, 0x4e, 0x42, 0x30, 0x36, 0x6f, 0x33, 0x6c, 0x66, 0x63, 0x31, 0x6a, 0x77, 0x36, 0x50, 0x32, 0x33, 0x70, 0x4c, 0x43, 0x57, 0x42, 0x6e, 0x67, 0x6c, 0x72, 0x76, 0x46, 0x78, 0x4b, 0x6b, 0x39, 0x70, 0x58, 0x53, 0x57, 0x2f, 0x71, 0x2f, 0x35, 0x69, 0x61, 0x71, 0x39, 0x6c, 0x52, 0x64, 0x55, 0x32, 0x48, 0x68, 0x45, 0x38, 0x51, 0x78, 0x33, 0x46, 0x5a, 0x4c, 0x67, 0x6d, 0x45, 0x4b, 0x6e, 0x0a, 0x70, 0x4e, 0x61, 0x71, 0x49, 0x4a, 0x4c, 0x4e, 0x77, 0x61, 0x43, 0x7a, 0x6c, 0x72, 0x49, 0x36, 0x68, 0x45, 0x4b, 0x4e, 0x66, 0x64, 0x57, 0x56, 0x35, 0x4e, 0x62, 0x62, 0x36, 0x57, 0x4c, 0x45, 0x57, 0x4c, 0x4e, 0x35, 0x78, 0x59, 0x7a, 0x54, 0x4e, 0x54, 0x4f, 0x44, 0x6e, 0x33, 0x57, 0x68, 0x55, 0x69, 0x64, 0x68, 0x4f, 0x50, 0x46, 0x5a, 0x50, 0x59, 0x35, 0x51, 0x34, 0x4c, 0x31, 0x35, 0x50, 0x4f, 0x64, 0x73, 0x6c, 0x76, 0x35, 0x65, 0x32, 0x51, 0x4a, 0x6c, 0x0a, 0x74, 0x49, 0x35, 0x63, 0x30, 0x42, 0x45, 0x30, 0x33, 0x31, 0x32, 0x2f, 0x55, 0x71, 0x65, 0x42, 0x41, 0x4d, 0x4e, 0x2f, 0x6d, 0x55, 0x57, 0x5a, 0x46, 0x64, 0x55, 0x58, 0x79, 0x41, 0x70, 0x54, 0x37, 0x47, 0x50, 0x7a, 0x6d, 0x58, 0x33, 0x4d, 0x61, 0x52, 0x4b, 0x47, 0x77, 0x68, 0x66, 0x77, 0x41, 0x5a, 0x36, 0x2f, 0x68, 0x4c, 0x7a, 0x52, 0x55, 0x73, 0x73, 0x62, 0x6b, 0x6d, 0x62, 0x4f, 0x70, 0x46, 0x50, 0x6c, 0x6f, 0x62, 0x2f, 0x45, 0x32, 0x77, 0x6e, 0x57, 0x0a, 0x35, 0x6f, 0x6c, 0x57, 0x4b, 0x38, 0x6a, 0x6a, 0x66, 0x4e, 0x37, 0x6a, 0x2f, 0x34, 0x6e, 0x6c, 0x4e, 0x57, 0x34, 0x6f, 0x36, 0x47, 0x77, 0x4c, 0x49, 0x31, 0x47, 0x70, 0x4a, 0x51, 0x58, 0x72, 0x53, 0x50, 0x6a, 0x64, 0x73, 0x63, 0x72, 0x36, 0x62, 0x41, 0x68, 0x52, 0x37, 0x37, 0x63, 0x59, 0x62, 0x45, 0x54, 0x4b, 0x4a, 0x75, 0x46, 0x7a, 0x78, 0x6f, 0x6b, 0x47, 0x67, 0x65, 0x57, 0x4b, 0x72, 0x4c, 0x44, 0x69, 0x4b, 0x63, 0x61, 0x35, 0x4a, 0x4c, 0x4e, 0x72, 0x0a, 0x52, 0x42, 0x48, 0x30, 0x70, 0x55, 0x50, 0x43, 0x54, 0x45, 0x50, 0x6c, 0x63, 0x44, 0x61, 0x4d, 0x74, 0x6a, 0x4e, 0x58, 0x65, 0x70, 0x55, 0x75, 0x67, 0x71, 0x44, 0x30, 0x58, 0x42, 0x43, 0x7a, 0x59, 0x59, 0x50, 0x32, 0x41, 0x67, 0x57, 0x47, 0x4c, 0x6e, 0x77, 0x74, 0x62, 0x4e, 0x77, 0x44, 0x52, 0x6d, 0x34, 0x31, 0x6b, 0x39, 0x56, 0x36, 0x6c, 0x53, 0x2f, 0x65, 0x49, 0x4e, 0x68, 0x62, 0x66, 0x70, 0x53, 0x51, 0x42, 0x47, 0x71, 0x36, 0x57, 0x54, 0x30, 0x45, 0x0a, 0x42, 0x58, 0x57, 0x64, 0x4e, 0x36, 0x49, 0x4f, 0x4c, 0x6a, 0x33, 0x72, 0x77, 0x61, 0x52, 0x53, 0x67, 0x2f, 0x37, 0x51, 0x61, 0x39, 0x52, 0x6d, 0x6a, 0x74, 0x7a, 0x47, 0x36, 0x52, 0x4a, 0x4f, 0x48, 0x53, 0x70, 0x58, 0x71, 0x68, 0x43, 0x38, 0x66, 0x46, 0x36, 0x43, 0x66, 0x61, 0x61, 0x6d, 0x79, 0x66, 0x49, 0x74, 0x75, 0x66, 0x55, 0x58, 0x4a, 0x36, 0x33, 0x52, 0x44, 0x6f, 0x6c, 0x55, 0x4b, 0x35, 0x58, 0x36, 0x77, 0x4b, 0x30, 0x64, 0x6d, 0x42, 0x52, 0x34, 0x0a, 0x4d, 0x30, 0x4b, 0x47, 0x43, 0x71, 0x6c, 0x7a, 0x74, 0x66, 0x74, 0x30, 0x44, 0x62, 0x63, 0x62, 0x4d, 0x42, 0x6e, 0x45, 0x57, 0x67, 0x34, 0x63, 0x4a, 0x37, 0x66, 0x61, 0x47, 0x4e, 0x44, 0x2f, 0x69, 0x73, 0x67, 0x46, 0x75, 0x76, 0x47, 0x71, 0x48, 0x4b, 0x49, 0x33, 0x74, 0x2b, 0x5a, 0x49, 0x70, 0x45, 0x59, 0x73, 0x6c, 0x4f, 0x71, 0x6f, 0x64, 0x6d, 0x4a, 0x48, 0x69, 0x78, 0x42, 0x54, 0x42, 0x30, 0x68, 0x58, 0x62, 0x4f, 0x4b, 0x53, 0x54, 0x62, 0x61, 0x75, 0x0a, 0x42, 0x63, 0x76, 0x63, 0x77, 0x55, 0x70, 0x65, 0x6a, 0x36, 0x77, 0x39, 0x47, 0x55, 0x37, 0x43, 0x37, 0x57, 0x42, 0x31, 0x4b, 0x39, 0x76, 0x42, 0x79, 0x6b, 0x4c, 0x56, 0x41, 0x67, 0x4d, 0x42, 0x41, 0x41, 0x47, 0x6a, 0x59, 0x7a, 0x42, 0x68, 0x4d, 0x42, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x49, 0x77, 0x51, 0x59, 0x4d, 0x42, 0x61, 0x41, 0x46, 0x48, 0x4b, 0x73, 0x35, 0x44, 0x4e, 0x35, 0x71, 0x6b, 0x57, 0x48, 0x39, 0x76, 0x32, 0x73, 0x48, 0x5a, 0x37, 0x57, 0x0a, 0x78, 0x79, 0x2b, 0x47, 0x32, 0x43, 0x51, 0x35, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x52, 0x79, 0x72, 0x4f, 0x51, 0x7a, 0x65, 0x61, 0x70, 0x46, 0x68, 0x2f, 0x62, 0x39, 0x72, 0x42, 0x32, 0x65, 0x31, 0x73, 0x63, 0x76, 0x68, 0x74, 0x67, 0x6b, 0x4f, 0x54, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x51, 0x59, 0x77, 0x44, 0x77, 0x59, 0x44, 0x0a, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x45, 0x41, 0x6f, 0x44, 0x74, 0x5a, 0x70, 0x77, 0x6d, 0x55, 0x50, 0x6a, 0x61, 0x45, 0x30, 0x6e, 0x34, 0x76, 0x4f, 0x61, 0x57, 0x57, 0x6c, 0x2f, 0x6f, 0x52, 0x72, 0x66, 0x78, 0x6e, 0x38, 0x33, 0x45, 0x4a, 0x0a, 0x38, 0x72, 0x4b, 0x4a, 0x68, 0x47, 0x64, 0x45, 0x72, 0x37, 0x6e, 0x76, 0x37, 0x5a, 0x62, 0x73, 0x6e, 0x47, 0x54, 0x62, 0x4d, 0x6a, 0x42, 0x76, 0x5a, 0x35, 0x71, 0x73, 0x66, 0x6c, 0x2b, 0x79, 0x71, 0x77, 0x45, 0x32, 0x66, 0x6f, 0x48, 0x36, 0x35, 0x49, 0x52, 0x65, 0x30, 0x71, 0x77, 0x32, 0x34, 0x47, 0x74, 0x69, 0x78, 0x58, 0x31, 0x4c, 0x44, 0x6f, 0x4a, 0x74, 0x30, 0x6e, 0x5a, 0x69, 0x30, 0x66, 0x36, 0x58, 0x2b, 0x4a, 0x38, 0x77, 0x66, 0x42, 0x6a, 0x35, 0x0a, 0x74, 0x46, 0x4a, 0x33, 0x67, 0x68, 0x31, 0x32, 0x32, 0x39, 0x4d, 0x64, 0x71, 0x66, 0x44, 0x42, 0x6d, 0x67, 0x43, 0x39, 0x62, 0x58, 0x58, 0x59, 0x66, 0x65, 0x66, 0x36, 0x78, 0x7a, 0x69, 0x6a, 0x6e, 0x48, 0x44, 0x6f, 0x52, 0x6e, 0x6b, 0x44, 0x72, 0x79, 0x35, 0x30, 0x32, 0x33, 0x58, 0x34, 0x62, 0x6c, 0x4d, 0x4d, 0x41, 0x38, 0x69, 0x5a, 0x47, 0x6f, 0x6b, 0x31, 0x47, 0x54, 0x7a, 0x54, 0x79, 0x56, 0x52, 0x38, 0x71, 0x50, 0x41, 0x73, 0x35, 0x6d, 0x34, 0x48, 0x0a, 0x65, 0x57, 0x39, 0x71, 0x34, 0x65, 0x62, 0x71, 0x6b, 0x59, 0x4a, 0x70, 0x43, 0x68, 0x33, 0x44, 0x66, 0x6c, 0x6d, 0x69, 0x6e, 0x6d, 0x74, 0x47, 0x46, 0x5a, 0x68, 0x62, 0x30, 0x36, 0x39, 0x47, 0x48, 0x57, 0x4c, 0x49, 0x7a, 0x6f, 0x42, 0x53, 0x53, 0x52, 0x45, 0x2f, 0x79, 0x51, 0x51, 0x53, 0x77, 0x78, 0x4e, 0x38, 0x50, 0x7a, 0x75, 0x4b, 0x6c, 0x74, 0x73, 0x38, 0x6f, 0x42, 0x34, 0x4b, 0x74, 0x49, 0x74, 0x55, 0x73, 0x69, 0x52, 0x6e, 0x44, 0x65, 0x2b, 0x43, 0x0a, 0x79, 0x37, 0x34, 0x38, 0x66, 0x64, 0x48, 0x69, 0x66, 0x36, 0x34, 0x57, 0x31, 0x6c, 0x5a, 0x59, 0x75, 0x64, 0x6f, 0x67, 0x73, 0x59, 0x4d, 0x56, 0x6f, 0x65, 0x2b, 0x4b, 0x54, 0x54, 0x4a, 0x76, 0x51, 0x53, 0x38, 0x54, 0x55, 0x6f, 0x4b, 0x55, 0x31, 0x78, 0x72, 0x42, 0x65, 0x4b, 0x4a, 0x52, 0x33, 0x53, 0x74, 0x77, 0x62, 0x62, 0x63, 0x61, 0x2b, 0x66, 0x65, 0x77, 0x34, 0x47, 0x65, 0x58, 0x56, 0x74, 0x74, 0x38, 0x59, 0x56, 0x4d, 0x4a, 0x41, 0x79, 0x67, 0x43, 0x0a, 0x51, 0x4d, 0x65, 0x7a, 0x32, 0x50, 0x32, 0x63, 0x63, 0x47, 0x72, 0x47, 0x4b, 0x4d, 0x4f, 0x46, 0x36, 0x65, 0x4c, 0x74, 0x47, 0x70, 0x4f, 0x67, 0x33, 0x6b, 0x75, 0x59, 0x6f, 0x6f, 0x51, 0x2b, 0x42, 0x58, 0x63, 0x42, 0x6c, 0x6a, 0x33, 0x37, 0x74, 0x43, 0x41, 0x50, 0x6e, 0x48, 0x49, 0x43, 0x65, 0x68, 0x49, 0x76, 0x31, 0x61, 0x4f, 0x36, 0x55, 0x58, 0x69, 0x76, 0x4b, 0x69, 0x74, 0x45, 0x5a, 0x55, 0x36, 0x31, 0x2f, 0x51, 0x72, 0x6f, 0x77, 0x63, 0x31, 0x35, 0x0a, 0x68, 0x32, 0x45, 0x72, 0x33, 0x6f, 0x42, 0x58, 0x52, 0x62, 0x39, 0x6e, 0x38, 0x5a, 0x75, 0x52, 0x58, 0x71, 0x57, 0x6b, 0x37, 0x46, 0x6c, 0x49, 0x45, 0x41, 0x30, 0x34, 0x78, 0x37, 0x44, 0x36, 0x77, 0x30, 0x52, 0x74, 0x42, 0x50, 0x56, 0x34, 0x55, 0x42, 0x79, 0x53, 0x6c, 0x6c, 0x76, 0x61, 0x39, 0x62, 0x67, 0x75, 0x75, 0x6c, 0x76, 0x50, 0x35, 0x66, 0x42, 0x71, 0x6e, 0x55, 0x73, 0x76, 0x57, 0x48, 0x4d, 0x74, 0x54, 0x79, 0x33, 0x45, 0x48, 0x44, 0x37, 0x30, 0x0a, 0x73, 0x7a, 0x2b, 0x72, 0x46, 0x51, 0x34, 0x37, 0x47, 0x55, 0x47, 0x4b, 0x70, 0x4d, 0x46, 0x58, 0x45, 0x6d, 0x5a, 0x78, 0x54, 0x50, 0x70, 0x54, 0x34, 0x31, 0x66, 0x72, 0x59, 0x70, 0x55, 0x4a, 0x6e, 0x6c, 0x54, 0x64, 0x30, 0x63, 0x49, 0x38, 0x56, 0x7a, 0x79, 0x39, 0x4f, 0x4b, 0x32, 0x59, 0x5a, 0x4c, 0x65, 0x34, 0x41, 0x35, 0x70, 0x54, 0x56, 0x6d, 0x42, 0x64, 0x73, 0x39, 0x68, 0x43, 0x47, 0x31, 0x78, 0x4c, 0x45, 0x6f, 0x6f, 0x63, 0x36, 0x2b, 0x74, 0x39, 0x0a, 0x78, 0x6e, 0x70, 0x70, 0x78, 0x79, 0x64, 0x2f, 0x70, 0x50, 0x69, 0x4c, 0x38, 0x75, 0x53, 0x55, 0x5a, 0x6f, 0x64, 0x4c, 0x36, 0x5a, 0x51, 0x48, 0x43, 0x52, 0x4a, 0x35, 0x69, 0x72, 0x4c, 0x72, 0x64, 0x41, 0x54, 0x63, 0x7a, 0x76, 0x52, 0x45, 0x57, 0x65, 0x41, 0x57, 0x79, 0x73, 0x55, 0x73, 0x57, 0x4e, 0x63, 0x38, 0x65, 0x38, 0x39, 0x69, 0x68, 0x6d, 0x70, 0x51, 0x66, 0x54, 0x55, 0x32, 0x5a, 0x71, 0x66, 0x37, 0x4e, 0x2b, 0x63, 0x6f, 0x78, 0x39, 0x6a, 0x51, 0x0a, 0x72, 0x61, 0x56, 0x70, 0x6c, 0x49, 0x2f, 0x6f, 0x77, 0x64, 0x38, 0x6b, 0x2b, 0x42, 0x73, 0x48, 0x4d, 0x59, 0x65, 0x42, 0x32, 0x46, 0x33, 0x32, 0x36, 0x43, 0x6a, 0x59, 0x53, 0x6c, 0x4b, 0x41, 0x72, 0x42, 0x50, 0x75, 0x55, 0x42, 0x51, 0x65, 0x6d, 0x4d, 0x63, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x44, 0x2d, 0x54, 0x52, 0x55, 0x53, 0x54, 0x20, 0x42, 0x52, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x31, 0x20, 0x32, 0x30, 0x32, 0x30, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x32, 0x7a, 0x43, 0x43, 0x41, 0x6d, 0x43, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x66, 0x4d, 0x6d, 0x50, 0x4b, 0x34, 0x54, 0x58, 0x33, 0x2b, 0x6f, 0x50, 0x79, 0x57, 0x57, 0x61, 0x30, 0x30, 0x74, 0x4e, 0x6c, 0x6a, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x7a, 0x42, 0x49, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x45, 0x0a, 0x52, 0x54, 0x45, 0x56, 0x4d, 0x42, 0x4d, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x4d, 0x52, 0x43, 0x31, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x42, 0x48, 0x62, 0x57, 0x4a, 0x49, 0x4d, 0x53, 0x49, 0x77, 0x49, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x6c, 0x45, 0x4c, 0x56, 0x52, 0x53, 0x56, 0x56, 0x4e, 0x55, 0x49, 0x45, 0x4a, 0x53, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x67, 0x4d, 0x53, 0x41, 0x79, 0x0a, 0x4d, 0x44, 0x49, 0x77, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x49, 0x77, 0x4d, 0x44, 0x49, 0x78, 0x4d, 0x54, 0x41, 0x35, 0x4e, 0x44, 0x55, 0x77, 0x4d, 0x46, 0x6f, 0x58, 0x44, 0x54, 0x4d, 0x31, 0x4d, 0x44, 0x49, 0x78, 0x4d, 0x54, 0x41, 0x35, 0x4e, 0x44, 0x51, 0x31, 0x4f, 0x56, 0x6f, 0x77, 0x53, 0x44, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x52, 0x45, 0x55, 0x78, 0x46, 0x54, 0x41, 0x54, 0x42, 0x67, 0x4e, 0x56, 0x0a, 0x42, 0x41, 0x6f, 0x54, 0x44, 0x45, 0x51, 0x74, 0x56, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x67, 0x52, 0x32, 0x31, 0x69, 0x53, 0x44, 0x45, 0x69, 0x4d, 0x43, 0x41, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x5a, 0x52, 0x43, 0x31, 0x55, 0x55, 0x6c, 0x56, 0x54, 0x56, 0x43, 0x42, 0x43, 0x55, 0x69, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x42, 0x49, 0x44, 0x45, 0x67, 0x4d, 0x6a, 0x41, 0x79, 0x4d, 0x44, 0x42, 0x32, 0x4d, 0x42, 0x41, 0x47, 0x0a, 0x42, 0x79, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x41, 0x67, 0x45, 0x47, 0x42, 0x53, 0x75, 0x42, 0x42, 0x41, 0x41, 0x69, 0x41, 0x32, 0x49, 0x41, 0x42, 0x4d, 0x62, 0x4c, 0x78, 0x79, 0x6a, 0x52, 0x2b, 0x34, 0x54, 0x31, 0x6d, 0x75, 0x39, 0x43, 0x46, 0x43, 0x44, 0x68, 0x51, 0x32, 0x74, 0x75, 0x64, 0x61, 0x33, 0x38, 0x4b, 0x77, 0x4f, 0x45, 0x31, 0x48, 0x61, 0x54, 0x4a, 0x64, 0x64, 0x5a, 0x4f, 0x30, 0x46, 0x6c, 0x61, 0x78, 0x37, 0x6d, 0x4e, 0x43, 0x71, 0x37, 0x0a, 0x64, 0x50, 0x59, 0x53, 0x7a, 0x75, 0x68, 0x74, 0x35, 0x36, 0x76, 0x6b, 0x50, 0x45, 0x34, 0x2f, 0x52, 0x41, 0x69, 0x4c, 0x7a, 0x52, 0x5a, 0x78, 0x79, 0x37, 0x2b, 0x53, 0x6d, 0x66, 0x53, 0x6b, 0x31, 0x7a, 0x78, 0x51, 0x56, 0x46, 0x4b, 0x51, 0x68, 0x59, 0x4e, 0x34, 0x6c, 0x47, 0x64, 0x6e, 0x6f, 0x78, 0x77, 0x4a, 0x47, 0x54, 0x31, 0x31, 0x4e, 0x49, 0x58, 0x65, 0x37, 0x57, 0x42, 0x39, 0x78, 0x77, 0x79, 0x30, 0x51, 0x56, 0x4b, 0x35, 0x62, 0x75, 0x58, 0x75, 0x0a, 0x51, 0x71, 0x4f, 0x43, 0x41, 0x51, 0x30, 0x77, 0x67, 0x67, 0x45, 0x4a, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x48, 0x4f, 0x52, 0x45, 0x4b, 0x76, 0x2f, 0x56, 0x62, 0x4e, 0x61, 0x66, 0x41, 0x6b, 0x6c, 0x31, 0x62, 0x4b, 0x36, 0x43, 0x4b, 0x42, 0x72, 0x71, 0x78, 0x39, 0x74, 0x0a, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x42, 0x6a, 0x43, 0x42, 0x78, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x66, 0x42, 0x49, 0x47, 0x2b, 0x4d, 0x49, 0x47, 0x37, 0x4d, 0x44, 0x36, 0x67, 0x50, 0x4b, 0x41, 0x36, 0x68, 0x6a, 0x68, 0x6f, 0x64, 0x48, 0x52, 0x77, 0x4f, 0x69, 0x38, 0x76, 0x59, 0x33, 0x4a, 0x73, 0x4c, 0x6d, 0x51, 0x74, 0x64, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x75, 0x0a, 0x62, 0x6d, 0x56, 0x30, 0x4c, 0x32, 0x4e, 0x79, 0x62, 0x43, 0x39, 0x6b, 0x4c, 0x58, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x58, 0x32, 0x4a, 0x79, 0x58, 0x33, 0x4a, 0x76, 0x62, 0x33, 0x52, 0x66, 0x59, 0x32, 0x46, 0x66, 0x4d, 0x56, 0x38, 0x79, 0x4d, 0x44, 0x49, 0x77, 0x4c, 0x6d, 0x4e, 0x79, 0x62, 0x44, 0x42, 0x35, 0x6f, 0x48, 0x65, 0x67, 0x64, 0x59, 0x5a, 0x7a, 0x62, 0x47, 0x52, 0x68, 0x63, 0x44, 0x6f, 0x76, 0x4c, 0x32, 0x52, 0x70, 0x63, 0x6d, 0x56, 0x6a, 0x0a, 0x64, 0x47, 0x39, 0x79, 0x65, 0x53, 0x35, 0x6b, 0x4c, 0x58, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x4c, 0x6d, 0x35, 0x6c, 0x64, 0x43, 0x39, 0x44, 0x54, 0x6a, 0x31, 0x45, 0x4c, 0x56, 0x52, 0x53, 0x56, 0x56, 0x4e, 0x55, 0x4a, 0x54, 0x49, 0x77, 0x51, 0x6c, 0x49, 0x6c, 0x4d, 0x6a, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x4a, 0x54, 0x49, 0x77, 0x51, 0x30, 0x45, 0x6c, 0x4d, 0x6a, 0x41, 0x78, 0x4a, 0x54, 0x49, 0x77, 0x4d, 0x6a, 0x41, 0x79, 0x4d, 0x43, 0x78, 0x50, 0x0a, 0x50, 0x55, 0x51, 0x74, 0x56, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x6c, 0x4d, 0x6a, 0x42, 0x48, 0x62, 0x57, 0x4a, 0x49, 0x4c, 0x45, 0x4d, 0x39, 0x52, 0x45, 0x55, 0x2f, 0x59, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x64, 0x47, 0x56, 0x79, 0x5a, 0x58, 0x5a, 0x76, 0x59, 0x32, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x62, 0x47, 0x6c, 0x7a, 0x64, 0x44, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x0a, 0x41, 0x77, 0x4e, 0x70, 0x41, 0x44, 0x42, 0x6d, 0x41, 0x6a, 0x45, 0x41, 0x6c, 0x4a, 0x41, 0x74, 0x45, 0x2f, 0x72, 0x68, 0x59, 0x2f, 0x68, 0x68, 0x59, 0x2b, 0x69, 0x74, 0x68, 0x58, 0x68, 0x55, 0x6b, 0x5a, 0x79, 0x34, 0x6b, 0x7a, 0x67, 0x2b, 0x47, 0x6b, 0x48, 0x61, 0x51, 0x42, 0x5a, 0x54, 0x51, 0x67, 0x6a, 0x4b, 0x4c, 0x34, 0x37, 0x78, 0x50, 0x6f, 0x46, 0x57, 0x77, 0x4b, 0x72, 0x59, 0x37, 0x52, 0x6a, 0x45, 0x73, 0x4b, 0x37, 0x30, 0x50, 0x76, 0x6f, 0x6d, 0x0a, 0x41, 0x6a, 0x45, 0x41, 0x38, 0x79, 0x6a, 0x69, 0x78, 0x74, 0x73, 0x72, 0x6d, 0x66, 0x75, 0x33, 0x55, 0x62, 0x67, 0x6b, 0x6f, 0x36, 0x53, 0x55, 0x65, 0x68, 0x6f, 0x2f, 0x35, 0x6a, 0x62, 0x69, 0x41, 0x31, 0x63, 0x7a, 0x69, 0x6a, 0x44, 0x4c, 0x67, 0x73, 0x66, 0x57, 0x46, 0x42, 0x48, 0x56, 0x64, 0x57, 0x4e, 0x62, 0x46, 0x4a, 0x57, 0x63, 0x48, 0x77, 0x48, 0x50, 0x32, 0x4e, 0x56, 0x79, 0x70, 0x77, 0x38, 0x37, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x44, 0x2d, 0x54, 0x52, 0x55, 0x53, 0x54, 0x20, 0x45, 0x56, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x31, 0x20, 0x32, 0x30, 0x32, 0x30, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x32, 0x7a, 0x43, 0x43, 0x41, 0x6d, 0x43, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x58, 0x77, 0x4a, 0x42, 0x31, 0x33, 0x71, 0x48, 0x66, 0x45, 0x77, 0x44, 0x6f, 0x36, 0x79, 0x57, 0x6a, 0x66, 0x76, 0x2f, 0x30, 0x44, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x7a, 0x42, 0x49, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x45, 0x0a, 0x52, 0x54, 0x45, 0x56, 0x4d, 0x42, 0x4d, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x4d, 0x52, 0x43, 0x31, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x42, 0x48, 0x62, 0x57, 0x4a, 0x49, 0x4d, 0x53, 0x49, 0x77, 0x49, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x6c, 0x45, 0x4c, 0x56, 0x52, 0x53, 0x56, 0x56, 0x4e, 0x55, 0x49, 0x45, 0x56, 0x57, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x67, 0x4d, 0x53, 0x41, 0x79, 0x0a, 0x4d, 0x44, 0x49, 0x77, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x49, 0x77, 0x4d, 0x44, 0x49, 0x78, 0x4d, 0x54, 0x45, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x46, 0x6f, 0x58, 0x44, 0x54, 0x4d, 0x31, 0x4d, 0x44, 0x49, 0x78, 0x4d, 0x54, 0x41, 0x35, 0x4e, 0x54, 0x6b, 0x31, 0x4f, 0x56, 0x6f, 0x77, 0x53, 0x44, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x52, 0x45, 0x55, 0x78, 0x46, 0x54, 0x41, 0x54, 0x42, 0x67, 0x4e, 0x56, 0x0a, 0x42, 0x41, 0x6f, 0x54, 0x44, 0x45, 0x51, 0x74, 0x56, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x67, 0x52, 0x32, 0x31, 0x69, 0x53, 0x44, 0x45, 0x69, 0x4d, 0x43, 0x41, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x5a, 0x52, 0x43, 0x31, 0x55, 0x55, 0x6c, 0x56, 0x54, 0x56, 0x43, 0x42, 0x46, 0x56, 0x69, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x42, 0x49, 0x44, 0x45, 0x67, 0x4d, 0x6a, 0x41, 0x79, 0x4d, 0x44, 0x42, 0x32, 0x4d, 0x42, 0x41, 0x47, 0x0a, 0x42, 0x79, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x41, 0x67, 0x45, 0x47, 0x42, 0x53, 0x75, 0x42, 0x42, 0x41, 0x41, 0x69, 0x41, 0x32, 0x49, 0x41, 0x42, 0x50, 0x45, 0x4c, 0x33, 0x59, 0x5a, 0x44, 0x49, 0x42, 0x6e, 0x66, 0x6c, 0x34, 0x58, 0x6f, 0x49, 0x6b, 0x71, 0x62, 0x7a, 0x35, 0x32, 0x59, 0x76, 0x37, 0x51, 0x46, 0x4a, 0x73, 0x6e, 0x4c, 0x34, 0x36, 0x62, 0x53, 0x6a, 0x38, 0x57, 0x65, 0x65, 0x48, 0x73, 0x78, 0x69, 0x61, 0x6d, 0x4a, 0x72, 0x53, 0x63, 0x38, 0x0a, 0x5a, 0x52, 0x43, 0x43, 0x2f, 0x4e, 0x2f, 0x44, 0x6e, 0x55, 0x37, 0x77, 0x4d, 0x79, 0x50, 0x45, 0x30, 0x6a, 0x4c, 0x31, 0x48, 0x4c, 0x44, 0x66, 0x4d, 0x78, 0x64, 0x64, 0x78, 0x66, 0x43, 0x78, 0x69, 0x76, 0x6e, 0x76, 0x75, 0x62, 0x63, 0x55, 0x79, 0x69, 0x6c, 0x4b, 0x77, 0x67, 0x2b, 0x70, 0x66, 0x33, 0x56, 0x6c, 0x53, 0x53, 0x6f, 0x77, 0x5a, 0x2f, 0x52, 0x6b, 0x39, 0x39, 0x59, 0x61, 0x64, 0x39, 0x72, 0x44, 0x77, 0x70, 0x64, 0x68, 0x51, 0x6e, 0x74, 0x4a, 0x0a, 0x72, 0x61, 0x4f, 0x43, 0x41, 0x51, 0x30, 0x77, 0x67, 0x67, 0x45, 0x4a, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x48, 0x38, 0x51, 0x41, 0x52, 0x59, 0x33, 0x4f, 0x71, 0x51, 0x6f, 0x35, 0x46, 0x44, 0x34, 0x70, 0x50, 0x66, 0x73, 0x61, 0x7a, 0x4b, 0x32, 0x2f, 0x75, 0x6d, 0x4c, 0x0a, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x42, 0x6a, 0x43, 0x42, 0x78, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x66, 0x42, 0x49, 0x47, 0x2b, 0x4d, 0x49, 0x47, 0x37, 0x4d, 0x44, 0x36, 0x67, 0x50, 0x4b, 0x41, 0x36, 0x68, 0x6a, 0x68, 0x6f, 0x64, 0x48, 0x52, 0x77, 0x4f, 0x69, 0x38, 0x76, 0x59, 0x33, 0x4a, 0x73, 0x4c, 0x6d, 0x51, 0x74, 0x64, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x75, 0x0a, 0x62, 0x6d, 0x56, 0x30, 0x4c, 0x32, 0x4e, 0x79, 0x62, 0x43, 0x39, 0x6b, 0x4c, 0x58, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x58, 0x32, 0x56, 0x32, 0x58, 0x33, 0x4a, 0x76, 0x62, 0x33, 0x52, 0x66, 0x59, 0x32, 0x46, 0x66, 0x4d, 0x56, 0x38, 0x79, 0x4d, 0x44, 0x49, 0x77, 0x4c, 0x6d, 0x4e, 0x79, 0x62, 0x44, 0x42, 0x35, 0x6f, 0x48, 0x65, 0x67, 0x64, 0x59, 0x5a, 0x7a, 0x62, 0x47, 0x52, 0x68, 0x63, 0x44, 0x6f, 0x76, 0x4c, 0x32, 0x52, 0x70, 0x63, 0x6d, 0x56, 0x6a, 0x0a, 0x64, 0x47, 0x39, 0x79, 0x65, 0x53, 0x35, 0x6b, 0x4c, 0x58, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x4c, 0x6d, 0x35, 0x6c, 0x64, 0x43, 0x39, 0x44, 0x54, 0x6a, 0x31, 0x45, 0x4c, 0x56, 0x52, 0x53, 0x56, 0x56, 0x4e, 0x55, 0x4a, 0x54, 0x49, 0x77, 0x52, 0x56, 0x59, 0x6c, 0x4d, 0x6a, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x4a, 0x54, 0x49, 0x77, 0x51, 0x30, 0x45, 0x6c, 0x4d, 0x6a, 0x41, 0x78, 0x4a, 0x54, 0x49, 0x77, 0x4d, 0x6a, 0x41, 0x79, 0x4d, 0x43, 0x78, 0x50, 0x0a, 0x50, 0x55, 0x51, 0x74, 0x56, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x6c, 0x4d, 0x6a, 0x42, 0x48, 0x62, 0x57, 0x4a, 0x49, 0x4c, 0x45, 0x4d, 0x39, 0x52, 0x45, 0x55, 0x2f, 0x59, 0x32, 0x56, 0x79, 0x64, 0x47, 0x6c, 0x6d, 0x61, 0x57, 0x4e, 0x68, 0x64, 0x47, 0x56, 0x79, 0x5a, 0x58, 0x5a, 0x76, 0x59, 0x32, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x62, 0x47, 0x6c, 0x7a, 0x64, 0x44, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x0a, 0x41, 0x77, 0x4e, 0x70, 0x41, 0x44, 0x42, 0x6d, 0x41, 0x6a, 0x45, 0x41, 0x79, 0x6a, 0x7a, 0x47, 0x4b, 0x6e, 0x58, 0x43, 0x58, 0x6e, 0x56, 0x69, 0x4f, 0x54, 0x59, 0x41, 0x59, 0x46, 0x71, 0x4c, 0x77, 0x5a, 0x4f, 0x5a, 0x7a, 0x4e, 0x6e, 0x62, 0x51, 0x54, 0x73, 0x37, 0x68, 0x35, 0x6b, 0x58, 0x4f, 0x39, 0x58, 0x4d, 0x54, 0x38, 0x6f, 0x69, 0x39, 0x36, 0x43, 0x41, 0x79, 0x2f, 0x6d, 0x30, 0x73, 0x52, 0x74, 0x57, 0x39, 0x58, 0x4c, 0x53, 0x2f, 0x42, 0x6e, 0x52, 0x0a, 0x41, 0x6a, 0x45, 0x41, 0x6b, 0x66, 0x63, 0x77, 0x6b, 0x7a, 0x38, 0x51, 0x52, 0x69, 0x74, 0x78, 0x70, 0x4e, 0x41, 0x37, 0x52, 0x4a, 0x76, 0x41, 0x4b, 0x51, 0x49, 0x46, 0x73, 0x6b, 0x46, 0x33, 0x55, 0x66, 0x4e, 0x35, 0x57, 0x70, 0x36, 0x4f, 0x46, 0x4b, 0x42, 0x4f, 0x51, 0x74, 0x4a, 0x62, 0x67, 0x66, 0x4d, 0x30, 0x61, 0x67, 0x50, 0x6e, 0x49, 0x6a, 0x68, 0x51, 0x57, 0x2b, 0x30, 0x5a, 0x54, 0x30, 0x4d, 0x57, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x54, 0x4c, 0x53, 0x20, 0x45, 0x43, 0x43, 0x20, 0x50, 0x33, 0x38, 0x34, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x47, 0x35, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x47, 0x54, 0x43, 0x43, 0x41, 0x5a, 0x2b, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x43, 0x65, 0x43, 0x54, 0x5a, 0x61, 0x7a, 0x33, 0x32, 0x63, 0x69, 0x35, 0x50, 0x68, 0x77, 0x4c, 0x42, 0x43, 0x6f, 0x75, 0x38, 0x7a, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x7a, 0x42, 0x4f, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x0a, 0x55, 0x7a, 0x45, 0x58, 0x4d, 0x42, 0x55, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x4f, 0x52, 0x47, 0x6c, 0x6e, 0x61, 0x55, 0x4e, 0x6c, 0x63, 0x6e, 0x51, 0x73, 0x49, 0x45, 0x6c, 0x75, 0x59, 0x79, 0x34, 0x78, 0x4a, 0x6a, 0x41, 0x6b, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x48, 0x55, 0x52, 0x70, 0x5a, 0x32, 0x6c, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x49, 0x46, 0x52, 0x4d, 0x55, 0x79, 0x42, 0x46, 0x51, 0x30, 0x4d, 0x67, 0x55, 0x44, 0x4d, 0x34, 0x0a, 0x4e, 0x43, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x63, 0x31, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x49, 0x78, 0x4d, 0x44, 0x45, 0x78, 0x4e, 0x54, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x46, 0x6f, 0x58, 0x44, 0x54, 0x51, 0x32, 0x4d, 0x44, 0x45, 0x78, 0x4e, 0x44, 0x49, 0x7a, 0x4e, 0x54, 0x6b, 0x31, 0x4f, 0x56, 0x6f, 0x77, 0x54, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x0a, 0x46, 0x7a, 0x41, 0x56, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x44, 0x6b, 0x52, 0x70, 0x5a, 0x32, 0x6c, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x4c, 0x43, 0x42, 0x4a, 0x62, 0x6d, 0x4d, 0x75, 0x4d, 0x53, 0x59, 0x77, 0x4a, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x31, 0x45, 0x61, 0x57, 0x64, 0x70, 0x51, 0x32, 0x56, 0x79, 0x64, 0x43, 0x42, 0x55, 0x54, 0x46, 0x4d, 0x67, 0x52, 0x55, 0x4e, 0x44, 0x49, 0x46, 0x41, 0x7a, 0x4f, 0x44, 0x51, 0x67, 0x0a, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x48, 0x4e, 0x54, 0x42, 0x32, 0x4d, 0x42, 0x41, 0x47, 0x42, 0x79, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x41, 0x67, 0x45, 0x47, 0x42, 0x53, 0x75, 0x42, 0x42, 0x41, 0x41, 0x69, 0x41, 0x32, 0x49, 0x41, 0x42, 0x4d, 0x46, 0x45, 0x6f, 0x63, 0x38, 0x52, 0x6c, 0x31, 0x43, 0x61, 0x33, 0x69, 0x4f, 0x43, 0x4e, 0x51, 0x66, 0x4e, 0x30, 0x4d, 0x73, 0x59, 0x6e, 0x64, 0x4c, 0x78, 0x66, 0x33, 0x63, 0x31, 0x54, 0x7a, 0x76, 0x64, 0x0a, 0x6c, 0x48, 0x4a, 0x53, 0x37, 0x63, 0x49, 0x37, 0x2b, 0x4f, 0x7a, 0x36, 0x65, 0x32, 0x74, 0x59, 0x49, 0x4f, 0x79, 0x5a, 0x72, 0x73, 0x6e, 0x38, 0x61, 0x4c, 0x4e, 0x31, 0x75, 0x64, 0x73, 0x4a, 0x37, 0x4d, 0x67, 0x54, 0x39, 0x55, 0x37, 0x47, 0x43, 0x68, 0x31, 0x6d, 0x4d, 0x45, 0x79, 0x37, 0x48, 0x30, 0x63, 0x4b, 0x50, 0x47, 0x45, 0x51, 0x51, 0x69, 0x6c, 0x38, 0x70, 0x51, 0x67, 0x4f, 0x34, 0x43, 0x4c, 0x70, 0x30, 0x7a, 0x56, 0x6f, 0x7a, 0x70, 0x74, 0x6a, 0x0a, 0x6e, 0x34, 0x53, 0x31, 0x6d, 0x55, 0x31, 0x59, 0x6f, 0x49, 0x37, 0x31, 0x56, 0x4f, 0x65, 0x56, 0x79, 0x61, 0x4e, 0x43, 0x4d, 0x45, 0x41, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x4d, 0x46, 0x52, 0x52, 0x56, 0x42, 0x5a, 0x71, 0x7a, 0x37, 0x6e, 0x4c, 0x46, 0x72, 0x36, 0x49, 0x43, 0x49, 0x53, 0x42, 0x34, 0x43, 0x49, 0x66, 0x42, 0x46, 0x71, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x0a, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x68, 0x6a, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x41, 0x6f, 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x42, 0x41, 0x4d, 0x44, 0x41, 0x32, 0x67, 0x41, 0x4d, 0x47, 0x55, 0x43, 0x4d, 0x51, 0x43, 0x4a, 0x61, 0x6f, 0x31, 0x48, 0x35, 0x2b, 0x7a, 0x38, 0x62, 0x6c, 0x55, 0x44, 0x32, 0x57, 0x64, 0x73, 0x0a, 0x4a, 0x6b, 0x36, 0x44, 0x78, 0x76, 0x33, 0x4a, 0x2b, 0x79, 0x73, 0x54, 0x76, 0x4c, 0x64, 0x36, 0x6a, 0x4c, 0x52, 0x6c, 0x30, 0x6d, 0x6c, 0x70, 0x59, 0x78, 0x4e, 0x6a, 0x4f, 0x79, 0x5a, 0x51, 0x4c, 0x67, 0x47, 0x68, 0x65, 0x51, 0x61, 0x52, 0x6e, 0x55, 0x69, 0x2f, 0x77, 0x72, 0x34, 0x43, 0x4d, 0x45, 0x66, 0x44, 0x46, 0x58, 0x75, 0x78, 0x6f, 0x4a, 0x47, 0x5a, 0x53, 0x5a, 0x4f, 0x6f, 0x50, 0x48, 0x7a, 0x6f, 0x52, 0x67, 0x61, 0x4c, 0x4c, 0x50, 0x49, 0x78, 0x0a, 0x41, 0x4a, 0x53, 0x64, 0x59, 0x73, 0x69, 0x4a, 0x76, 0x52, 0x6d, 0x45, 0x46, 0x4f, 0x6d, 0x6c, 0x2b, 0x77, 0x47, 0x34, 0x44, 0x58, 0x5a, 0x44, 0x6a, 0x43, 0x35, 0x54, 0x79, 0x33, 0x7a, 0x66, 0x44, 0x42, 0x65, 0x57, 0x55, 0x41, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x44, 0x69, 0x67, 0x69, 0x43, 0x65, 0x72, 0x74, 0x20, 0x54, 0x4c, 0x53, 0x20, 0x52, 0x53, 0x41, 0x34, 0x30, 0x39, 0x36, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x47, 0x35, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x5a, 0x6a, 0x43, 0x43, 0x41, 0x30, 0x36, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x43, 0x50, 0x6d, 0x30, 0x65, 0x4b, 0x6a, 0x36, 0x66, 0x74, 0x70, 0x71, 0x4d, 0x7a, 0x65, 0x4a, 0x33, 0x6e, 0x7a, 0x50, 0x69, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x77, 0x46, 0x41, 0x44, 0x42, 0x4e, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x0a, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x58, 0x4d, 0x42, 0x55, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x4f, 0x52, 0x47, 0x6c, 0x6e, 0x61, 0x55, 0x4e, 0x6c, 0x63, 0x6e, 0x51, 0x73, 0x49, 0x45, 0x6c, 0x75, 0x59, 0x79, 0x34, 0x78, 0x4a, 0x54, 0x41, 0x6a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x48, 0x45, 0x52, 0x70, 0x5a, 0x32, 0x6c, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x49, 0x46, 0x52, 0x4d, 0x55, 0x79, 0x42, 0x53, 0x55, 0x30, 0x45, 0x30, 0x0a, 0x4d, 0x44, 0x6b, 0x32, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x52, 0x7a, 0x55, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x6a, 0x45, 0x77, 0x4d, 0x54, 0x45, 0x31, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x68, 0x63, 0x4e, 0x4e, 0x44, 0x59, 0x77, 0x4d, 0x54, 0x45, 0x30, 0x4d, 0x6a, 0x4d, 0x31, 0x4f, 0x54, 0x55, 0x35, 0x57, 0x6a, 0x42, 0x4e, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x0a, 0x55, 0x7a, 0x45, 0x58, 0x4d, 0x42, 0x55, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x4f, 0x52, 0x47, 0x6c, 0x6e, 0x61, 0x55, 0x4e, 0x6c, 0x63, 0x6e, 0x51, 0x73, 0x49, 0x45, 0x6c, 0x75, 0x59, 0x79, 0x34, 0x78, 0x4a, 0x54, 0x41, 0x6a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x48, 0x45, 0x52, 0x70, 0x5a, 0x32, 0x6c, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x49, 0x46, 0x52, 0x4d, 0x55, 0x79, 0x42, 0x53, 0x55, 0x30, 0x45, 0x30, 0x4d, 0x44, 0x6b, 0x32, 0x0a, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x52, 0x7a, 0x55, 0x77, 0x67, 0x67, 0x49, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x49, 0x4b, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x43, 0x7a, 0x30, 0x50, 0x54, 0x4a, 0x65, 0x52, 0x47, 0x64, 0x2f, 0x66, 0x78, 0x6d, 0x67, 0x65, 0x66, 0x4d, 0x31, 0x65, 0x53, 0x38, 0x0a, 0x37, 0x49, 0x45, 0x2b, 0x61, 0x6a, 0x57, 0x4f, 0x4c, 0x72, 0x66, 0x6e, 0x33, 0x71, 0x2f, 0x35, 0x42, 0x30, 0x33, 0x50, 0x4d, 0x4a, 0x33, 0x71, 0x43, 0x51, 0x75, 0x5a, 0x76, 0x57, 0x78, 0x58, 0x32, 0x68, 0x68, 0x4b, 0x75, 0x48, 0x69, 0x73, 0x4f, 0x6a, 0x6d, 0x6f, 0x70, 0x6b, 0x69, 0x73, 0x4c, 0x6e, 0x4c, 0x6c, 0x76, 0x65, 0x76, 0x78, 0x47, 0x73, 0x33, 0x6e, 0x70, 0x41, 0x4f, 0x70, 0x50, 0x78, 0x47, 0x30, 0x32, 0x43, 0x2b, 0x4a, 0x46, 0x76, 0x75, 0x55, 0x0a, 0x41, 0x54, 0x32, 0x37, 0x4c, 0x2f, 0x67, 0x54, 0x42, 0x61, 0x46, 0x34, 0x48, 0x49, 0x34, 0x6f, 0x34, 0x45, 0x58, 0x67, 0x67, 0x2f, 0x52, 0x5a, 0x47, 0x35, 0x57, 0x7a, 0x72, 0x6e, 0x34, 0x44, 0x52, 0x65, 0x57, 0x2b, 0x77, 0x6b, 0x4c, 0x2b, 0x37, 0x76, 0x49, 0x38, 0x74, 0x6f, 0x55, 0x54, 0x6d, 0x44, 0x4b, 0x64, 0x46, 0x71, 0x67, 0x70, 0x77, 0x67, 0x73, 0x63, 0x4f, 0x4e, 0x79, 0x66, 0x4d, 0x58, 0x64, 0x63, 0x76, 0x79, 0x65, 0x6a, 0x2f, 0x43, 0x65, 0x73, 0x0a, 0x74, 0x79, 0x75, 0x39, 0x64, 0x4a, 0x73, 0x58, 0x4c, 0x66, 0x4b, 0x42, 0x32, 0x6c, 0x32, 0x77, 0x34, 0x53, 0x4d, 0x58, 0x50, 0x6f, 0x68, 0x4b, 0x45, 0x69, 0x50, 0x51, 0x36, 0x73, 0x2b, 0x64, 0x33, 0x67, 0x4d, 0x58, 0x73, 0x55, 0x4a, 0x4b, 0x6f, 0x42, 0x5a, 0x4d, 0x70, 0x47, 0x32, 0x54, 0x36, 0x54, 0x38, 0x36, 0x37, 0x6a, 0x70, 0x38, 0x6e, 0x56, 0x69, 0x64, 0x39, 0x45, 0x36, 0x50, 0x2f, 0x44, 0x73, 0x6a, 0x79, 0x47, 0x32, 0x34, 0x34, 0x67, 0x58, 0x61, 0x0a, 0x7a, 0x4f, 0x76, 0x73, 0x77, 0x7a, 0x48, 0x30, 0x31, 0x36, 0x63, 0x70, 0x56, 0x49, 0x44, 0x50, 0x52, 0x46, 0x74, 0x4d, 0x62, 0x7a, 0x43, 0x65, 0x38, 0x38, 0x7a, 0x64, 0x48, 0x35, 0x52, 0x44, 0x6e, 0x55, 0x31, 0x2f, 0x63, 0x48, 0x41, 0x4e, 0x31, 0x44, 0x72, 0x52, 0x4e, 0x2f, 0x42, 0x73, 0x6e, 0x5a, 0x76, 0x41, 0x46, 0x4a, 0x4e, 0x59, 0x37, 0x38, 0x31, 0x42, 0x4f, 0x48, 0x57, 0x38, 0x45, 0x77, 0x4f, 0x56, 0x66, 0x48, 0x2f, 0x6a, 0x58, 0x4f, 0x6e, 0x56, 0x0a, 0x44, 0x64, 0x58, 0x69, 0x66, 0x42, 0x42, 0x69, 0x71, 0x6d, 0x76, 0x77, 0x50, 0x58, 0x62, 0x7a, 0x50, 0x36, 0x50, 0x6f, 0x73, 0x4d, 0x48, 0x39, 0x37, 0x36, 0x70, 0x58, 0x54, 0x61, 0x79, 0x47, 0x70, 0x78, 0x69, 0x30, 0x4b, 0x63, 0x45, 0x73, 0x44, 0x72, 0x39, 0x6b, 0x76, 0x69, 0x6d, 0x4d, 0x32, 0x41, 0x49, 0x74, 0x7a, 0x56, 0x77, 0x76, 0x38, 0x6e, 0x2f, 0x76, 0x46, 0x66, 0x51, 0x4d, 0x46, 0x61, 0x77, 0x4b, 0x73, 0x50, 0x48, 0x54, 0x44, 0x55, 0x39, 0x71, 0x0a, 0x54, 0x58, 0x65, 0x58, 0x41, 0x61, 0x44, 0x78, 0x5a, 0x72, 0x65, 0x33, 0x7a, 0x75, 0x2f, 0x4f, 0x37, 0x4f, 0x79, 0x6c, 0x64, 0x63, 0x71, 0x73, 0x34, 0x2b, 0x46, 0x6a, 0x39, 0x37, 0x69, 0x68, 0x42, 0x4d, 0x69, 0x38, 0x65, 0x7a, 0x39, 0x64, 0x4c, 0x52, 0x59, 0x69, 0x56, 0x75, 0x31, 0x49, 0x53, 0x66, 0x36, 0x6e, 0x4c, 0x33, 0x6b, 0x77, 0x4a, 0x5a, 0x75, 0x36, 0x61, 0x79, 0x30, 0x2f, 0x6e, 0x54, 0x76, 0x45, 0x46, 0x2b, 0x63, 0x64, 0x4c, 0x76, 0x76, 0x79, 0x0a, 0x7a, 0x36, 0x62, 0x38, 0x34, 0x78, 0x51, 0x73, 0x6c, 0x70, 0x67, 0x68, 0x6a, 0x4c, 0x53, 0x52, 0x36, 0x52, 0x6c, 0x67, 0x67, 0x2f, 0x49, 0x77, 0x4b, 0x77, 0x5a, 0x7a, 0x55, 0x4e, 0x57, 0x59, 0x4f, 0x77, 0x62, 0x70, 0x78, 0x34, 0x6f, 0x4d, 0x59, 0x49, 0x77, 0x6f, 0x2b, 0x46, 0x4b, 0x62, 0x62, 0x75, 0x48, 0x32, 0x54, 0x62, 0x73, 0x47, 0x4a, 0x4a, 0x76, 0x58, 0x4b, 0x79, 0x59, 0x2f, 0x2f, 0x53, 0x6f, 0x76, 0x63, 0x66, 0x58, 0x57, 0x4a, 0x4c, 0x35, 0x2f, 0x0a, 0x4d, 0x5a, 0x34, 0x50, 0x62, 0x65, 0x69, 0x50, 0x54, 0x30, 0x32, 0x6a, 0x50, 0x2f, 0x38, 0x31, 0x36, 0x74, 0x39, 0x4a, 0x58, 0x6b, 0x47, 0x50, 0x68, 0x76, 0x6e, 0x78, 0x64, 0x33, 0x6c, 0x4c, 0x47, 0x37, 0x53, 0x6a, 0x58, 0x69, 0x2f, 0x37, 0x52, 0x67, 0x4c, 0x51, 0x5a, 0x68, 0x4e, 0x65, 0x58, 0x6f, 0x56, 0x50, 0x7a, 0x74, 0x68, 0x77, 0x69, 0x48, 0x76, 0x4f, 0x41, 0x62, 0x57, 0x57, 0x6c, 0x39, 0x66, 0x4e, 0x66, 0x66, 0x32, 0x43, 0x2b, 0x4d, 0x49, 0x6b, 0x0a, 0x77, 0x63, 0x6f, 0x42, 0x4f, 0x55, 0x2b, 0x4e, 0x6f, 0x73, 0x45, 0x55, 0x51, 0x42, 0x2b, 0x63, 0x5a, 0x74, 0x55, 0x4d, 0x43, 0x55, 0x62, 0x57, 0x38, 0x74, 0x44, 0x52, 0x53, 0x48, 0x5a, 0x57, 0x4f, 0x6b, 0x50, 0x4c, 0x74, 0x67, 0x6f, 0x52, 0x4f, 0x62, 0x71, 0x4d, 0x45, 0x32, 0x77, 0x47, 0x74, 0x5a, 0x37, 0x50, 0x36, 0x77, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x0a, 0x46, 0x67, 0x51, 0x55, 0x55, 0x54, 0x4d, 0x63, 0x37, 0x54, 0x5a, 0x41, 0x72, 0x78, 0x66, 0x54, 0x4a, 0x63, 0x31, 0x70, 0x61, 0x50, 0x4b, 0x76, 0x54, 0x69, 0x4d, 0x2b, 0x73, 0x30, 0x45, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x47, 0x47, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x0a, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4d, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x42, 0x41, 0x47, 0x43, 0x6d, 0x72, 0x31, 0x74, 0x66, 0x56, 0x39, 0x71, 0x4a, 0x32, 0x30, 0x74, 0x51, 0x71, 0x63, 0x51, 0x6a, 0x4e, 0x53, 0x48, 0x2f, 0x30, 0x47, 0x45, 0x77, 0x68, 0x4a, 0x47, 0x33, 0x50, 0x78, 0x44, 0x50, 0x4a, 0x59, 0x37, 0x4a, 0x76, 0x30, 0x59, 0x30, 0x32, 0x63, 0x45, 0x68, 0x4a, 0x68, 0x78, 0x77, 0x0a, 0x47, 0x58, 0x49, 0x65, 0x6f, 0x38, 0x6d, 0x48, 0x2f, 0x71, 0x6c, 0x44, 0x5a, 0x4a, 0x59, 0x36, 0x79, 0x46, 0x4d, 0x45, 0x43, 0x72, 0x5a, 0x42, 0x75, 0x38, 0x52, 0x48, 0x41, 0x4e, 0x6d, 0x66, 0x47, 0x42, 0x67, 0x37, 0x73, 0x67, 0x37, 0x7a, 0x4e, 0x4f, 0x6f, 0x6b, 0x39, 0x39, 0x32, 0x76, 0x49, 0x47, 0x43, 0x75, 0x6b, 0x69, 0x68, 0x66, 0x4e, 0x75, 0x64, 0x64, 0x35, 0x4e, 0x37, 0x48, 0x50, 0x4e, 0x74, 0x51, 0x4f, 0x61, 0x32, 0x37, 0x50, 0x53, 0x68, 0x4e, 0x0a, 0x6c, 0x6e, 0x78, 0x32, 0x78, 0x6c, 0x76, 0x30, 0x77, 0x64, 0x73, 0x55, 0x70, 0x61, 0x73, 0x5a, 0x59, 0x67, 0x63, 0x59, 0x51, 0x46, 0x2b, 0x58, 0x6b, 0x64, 0x79, 0x63, 0x78, 0x36, 0x75, 0x31, 0x55, 0x51, 0x33, 0x6d, 0x61, 0x56, 0x4e, 0x56, 0x7a, 0x44, 0x6c, 0x39, 0x32, 0x73, 0x55, 0x52, 0x56, 0x58, 0x4c, 0x46, 0x4f, 0x34, 0x75, 0x4a, 0x2b, 0x44, 0x51, 0x74, 0x70, 0x42, 0x66, 0x6c, 0x46, 0x2b, 0x61, 0x5a, 0x66, 0x54, 0x43, 0x49, 0x49, 0x54, 0x66, 0x4e, 0x0a, 0x4d, 0x42, 0x63, 0x39, 0x75, 0x50, 0x4b, 0x38, 0x71, 0x48, 0x57, 0x67, 0x51, 0x39, 0x77, 0x2b, 0x69, 0x55, 0x75, 0x51, 0x72, 0x6d, 0x30, 0x44, 0x34, 0x42, 0x79, 0x6a, 0x6f, 0x4a, 0x59, 0x4a, 0x75, 0x33, 0x32, 0x6a, 0x74, 0x79, 0x6f, 0x51, 0x52, 0x45, 0x74, 0x47, 0x42, 0x7a, 0x52, 0x6a, 0x37, 0x54, 0x47, 0x35, 0x42, 0x4f, 0x36, 0x6a, 0x6d, 0x35, 0x71, 0x75, 0x35, 0x6a, 0x46, 0x34, 0x39, 0x4f, 0x6f, 0x6b, 0x59, 0x54, 0x75, 0x72, 0x57, 0x47, 0x54, 0x2f, 0x0a, 0x75, 0x34, 0x63, 0x6e, 0x59, 0x69, 0x57, 0x42, 0x33, 0x39, 0x79, 0x68, 0x4c, 0x2f, 0x62, 0x74, 0x70, 0x2f, 0x39, 0x36, 0x6a, 0x31, 0x45, 0x75, 0x4d, 0x50, 0x69, 0x6b, 0x41, 0x64, 0x4b, 0x46, 0x4f, 0x56, 0x38, 0x42, 0x6d, 0x5a, 0x5a, 0x76, 0x57, 0x6c, 0x74, 0x77, 0x47, 0x55, 0x62, 0x2b, 0x68, 0x6d, 0x41, 0x2b, 0x72, 0x59, 0x41, 0x51, 0x43, 0x64, 0x30, 0x35, 0x4a, 0x53, 0x39, 0x59, 0x66, 0x37, 0x76, 0x53, 0x64, 0x50, 0x44, 0x33, 0x52, 0x68, 0x39, 0x47, 0x0a, 0x4f, 0x55, 0x72, 0x59, 0x55, 0x39, 0x44, 0x7a, 0x4c, 0x6a, 0x74, 0x78, 0x70, 0x64, 0x52, 0x76, 0x2f, 0x50, 0x4e, 0x6e, 0x35, 0x41, 0x65, 0x50, 0x33, 0x53, 0x59, 0x5a, 0x34, 0x59, 0x31, 0x62, 0x2b, 0x71, 0x4f, 0x54, 0x45, 0x5a, 0x76, 0x70, 0x79, 0x44, 0x72, 0x44, 0x56, 0x57, 0x69, 0x61, 0x6b, 0x75, 0x46, 0x53, 0x64, 0x6a, 0x6a, 0x6f, 0x34, 0x62, 0x71, 0x39, 0x2b, 0x30, 0x2f, 0x56, 0x37, 0x37, 0x50, 0x6e, 0x53, 0x49, 0x4d, 0x78, 0x38, 0x49, 0x49, 0x68, 0x0a, 0x34, 0x37, 0x61, 0x2b, 0x70, 0x36, 0x74, 0x76, 0x37, 0x35, 0x2f, 0x66, 0x54, 0x4d, 0x38, 0x42, 0x75, 0x47, 0x4a, 0x71, 0x49, 0x7a, 0x33, 0x6e, 0x43, 0x55, 0x32, 0x41, 0x47, 0x33, 0x73, 0x77, 0x70, 0x4d, 0x50, 0x64, 0x42, 0x33, 0x38, 0x30, 0x76, 0x71, 0x51, 0x6d, 0x73, 0x76, 0x5a, 0x42, 0x36, 0x41, 0x6b, 0x64, 0x34, 0x79, 0x43, 0x59, 0x71, 0x6a, 0x64, 0x50, 0x2f, 0x2f, 0x66, 0x78, 0x34, 0x69, 0x6c, 0x77, 0x4d, 0x55, 0x63, 0x2f, 0x64, 0x4e, 0x41, 0x55, 0x0a, 0x46, 0x76, 0x6f, 0x68, 0x69, 0x67, 0x4c, 0x56, 0x69, 0x67, 0x6d, 0x55, 0x64, 0x79, 0x37, 0x79, 0x57, 0x53, 0x69, 0x4c, 0x66, 0x46, 0x43, 0x53, 0x43, 0x6d, 0x5a, 0x34, 0x4f, 0x49, 0x4e, 0x31, 0x78, 0x4c, 0x56, 0x61, 0x71, 0x42, 0x48, 0x47, 0x35, 0x63, 0x47, 0x64, 0x5a, 0x6c, 0x58, 0x50, 0x55, 0x38, 0x53, 0x76, 0x31, 0x33, 0x57, 0x46, 0x71, 0x55, 0x49, 0x54, 0x56, 0x75, 0x77, 0x68, 0x64, 0x34, 0x47, 0x54, 0x57, 0x67, 0x7a, 0x71, 0x6c, 0x74, 0x6c, 0x4a, 0x0a, 0x79, 0x71, 0x45, 0x49, 0x38, 0x70, 0x63, 0x37, 0x62, 0x5a, 0x73, 0x45, 0x47, 0x43, 0x52, 0x45, 0x6a, 0x6e, 0x77, 0x42, 0x38, 0x74, 0x77, 0x6c, 0x32, 0x46, 0x36, 0x47, 0x6d, 0x72, 0x45, 0x35, 0x32, 0x2f, 0x57, 0x52, 0x4d, 0x6d, 0x72, 0x52, 0x70, 0x6e, 0x43, 0x4b, 0x6f, 0x76, 0x66, 0x65, 0x70, 0x45, 0x57, 0x46, 0x4a, 0x71, 0x67, 0x65, 0x6a, 0x46, 0x30, 0x70, 0x57, 0x38, 0x68, 0x4c, 0x32, 0x4a, 0x70, 0x71, 0x41, 0x31, 0x35, 0x77, 0x38, 0x6f, 0x56, 0x50, 0x0a, 0x62, 0x45, 0x74, 0x6f, 0x4c, 0x38, 0x70, 0x55, 0x39, 0x6f, 0x7a, 0x61, 0x4d, 0x76, 0x37, 0x44, 0x61, 0x34, 0x4d, 0x2f, 0x4f, 0x4d, 0x5a, 0x2b, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x43, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x6c, 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x52, 0x31, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x52, 0x7a, 0x43, 0x43, 0x41, 0x79, 0x2b, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x52, 0x41, 0x49, 0x34, 0x50, 0x2b, 0x55, 0x75, 0x51, 0x63, 0x57, 0x68, 0x6c, 0x4d, 0x31, 0x54, 0x30, 0x31, 0x45, 0x51, 0x35, 0x74, 0x2b, 0x41, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x77, 0x50, 0x54, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x0a, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x45, 0x6a, 0x41, 0x51, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x43, 0x55, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x68, 0x61, 0x57, 0x35, 0x73, 0x65, 0x54, 0x45, 0x61, 0x4d, 0x42, 0x67, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x78, 0x4d, 0x52, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x46, 0x70, 0x62, 0x6d, 0x78, 0x35, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x55, 0x6a, 0x45, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x0a, 0x4d, 0x6a, 0x45, 0x77, 0x4e, 0x44, 0x41, 0x78, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x68, 0x63, 0x4e, 0x4e, 0x44, 0x59, 0x77, 0x4e, 0x44, 0x41, 0x78, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x6a, 0x41, 0x39, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x53, 0x4d, 0x42, 0x41, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x4a, 0x51, 0x32, 0x56, 0x79, 0x0a, 0x64, 0x47, 0x46, 0x70, 0x62, 0x6d, 0x78, 0x35, 0x4d, 0x52, 0x6f, 0x77, 0x47, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x46, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x59, 0x57, 0x6c, 0x75, 0x62, 0x48, 0x6b, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x53, 0x4d, 0x54, 0x43, 0x43, 0x41, 0x69, 0x49, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x50, 0x0a, 0x41, 0x44, 0x43, 0x43, 0x41, 0x67, 0x6f, 0x43, 0x67, 0x67, 0x49, 0x42, 0x41, 0x4e, 0x41, 0x32, 0x31, 0x42, 0x2f, 0x71, 0x33, 0x61, 0x76, 0x6b, 0x30, 0x62, 0x62, 0x6d, 0x2b, 0x79, 0x4c, 0x41, 0x33, 0x52, 0x4d, 0x4e, 0x61, 0x6e, 0x73, 0x69, 0x45, 0x78, 0x79, 0x58, 0x50, 0x47, 0x68, 0x6a, 0x5a, 0x6a, 0x4b, 0x63, 0x41, 0x37, 0x57, 0x4e, 0x70, 0x49, 0x47, 0x44, 0x32, 0x6e, 0x67, 0x77, 0x45, 0x63, 0x2f, 0x63, 0x73, 0x69, 0x75, 0x2b, 0x6b, 0x72, 0x2b, 0x4f, 0x0a, 0x35, 0x4d, 0x51, 0x54, 0x76, 0x71, 0x52, 0x6f, 0x54, 0x4e, 0x6f, 0x43, 0x61, 0x42, 0x5a, 0x30, 0x76, 0x72, 0x4c, 0x64, 0x42, 0x4f, 0x52, 0x72, 0x4b, 0x74, 0x30, 0x33, 0x48, 0x32, 0x41, 0x73, 0x32, 0x2f, 0x58, 0x33, 0x6f, 0x58, 0x79, 0x56, 0x74, 0x77, 0x78, 0x77, 0x68, 0x69, 0x37, 0x78, 0x4f, 0x75, 0x39, 0x53, 0x39, 0x38, 0x7a, 0x54, 0x6d, 0x2f, 0x6d, 0x4c, 0x76, 0x67, 0x37, 0x66, 0x4d, 0x62, 0x65, 0x64, 0x61, 0x46, 0x79, 0x53, 0x70, 0x76, 0x58, 0x6c, 0x0a, 0x38, 0x77, 0x6f, 0x30, 0x74, 0x66, 0x39, 0x37, 0x6f, 0x75, 0x53, 0x48, 0x6f, 0x63, 0x61, 0x76, 0x46, 0x77, 0x44, 0x76, 0x41, 0x35, 0x48, 0x74, 0x71, 0x52, 0x78, 0x4f, 0x63, 0x54, 0x33, 0x53, 0x69, 0x32, 0x79, 0x4a, 0x39, 0x48, 0x69, 0x47, 0x35, 0x6d, 0x70, 0x4a, 0x6f, 0x4d, 0x36, 0x31, 0x30, 0x72, 0x43, 0x72, 0x6d, 0x2f, 0x62, 0x30, 0x31, 0x43, 0x37, 0x6a, 0x63, 0x76, 0x6b, 0x32, 0x78, 0x75, 0x73, 0x56, 0x74, 0x79, 0x57, 0x4d, 0x4f, 0x76, 0x77, 0x6c, 0x0a, 0x44, 0x62, 0x4d, 0x69, 0x63, 0x79, 0x46, 0x30, 0x79, 0x45, 0x71, 0x57, 0x59, 0x5a, 0x4c, 0x31, 0x4c, 0x77, 0x73, 0x59, 0x70, 0x66, 0x53, 0x74, 0x34, 0x75, 0x35, 0x42, 0x76, 0x51, 0x46, 0x35, 0x2b, 0x70, 0x61, 0x4d, 0x6a, 0x52, 0x63, 0x43, 0x4d, 0x4c, 0x54, 0x35, 0x72, 0x33, 0x67, 0x61, 0x6a, 0x4c, 0x51, 0x32, 0x45, 0x42, 0x41, 0x48, 0x42, 0x58, 0x44, 0x51, 0x39, 0x44, 0x47, 0x51, 0x69, 0x6c, 0x48, 0x46, 0x68, 0x69, 0x5a, 0x35, 0x73, 0x68, 0x47, 0x49, 0x0a, 0x58, 0x73, 0x58, 0x77, 0x43, 0x6c, 0x54, 0x4e, 0x53, 0x61, 0x61, 0x2f, 0x41, 0x70, 0x7a, 0x53, 0x52, 0x4b, 0x66, 0x74, 0x34, 0x33, 0x6a, 0x76, 0x52, 0x6c, 0x35, 0x74, 0x63, 0x64, 0x46, 0x35, 0x63, 0x42, 0x78, 0x47, 0x58, 0x31, 0x48, 0x70, 0x79, 0x54, 0x66, 0x63, 0x58, 0x33, 0x35, 0x70, 0x65, 0x30, 0x48, 0x66, 0x4e, 0x45, 0x58, 0x67, 0x4f, 0x34, 0x54, 0x30, 0x6f, 0x59, 0x6f, 0x4b, 0x4e, 0x70, 0x34, 0x33, 0x7a, 0x47, 0x4a, 0x53, 0x34, 0x59, 0x6b, 0x4e, 0x0a, 0x4b, 0x50, 0x6c, 0x36, 0x49, 0x37, 0x45, 0x4e, 0x50, 0x54, 0x32, 0x61, 0x2f, 0x5a, 0x32, 0x42, 0x37, 0x79, 0x79, 0x51, 0x77, 0x48, 0x74, 0x45, 0x54, 0x72, 0x74, 0x4a, 0x34, 0x41, 0x35, 0x4b, 0x56, 0x70, 0x4b, 0x38, 0x79, 0x37, 0x58, 0x64, 0x65, 0x52, 0x65, 0x4a, 0x6b, 0x64, 0x35, 0x68, 0x69, 0x58, 0x53, 0x53, 0x71, 0x4f, 0x4d, 0x79, 0x68, 0x62, 0x35, 0x4f, 0x68, 0x61, 0x52, 0x4c, 0x57, 0x63, 0x73, 0x72, 0x78, 0x58, 0x69, 0x4f, 0x63, 0x56, 0x54, 0x51, 0x0a, 0x41, 0x6a, 0x65, 0x5a, 0x6a, 0x4f, 0x56, 0x4a, 0x36, 0x75, 0x42, 0x55, 0x63, 0x71, 0x51, 0x52, 0x42, 0x69, 0x38, 0x4c, 0x6a, 0x4d, 0x46, 0x62, 0x76, 0x72, 0x57, 0x68, 0x73, 0x46, 0x4e, 0x75, 0x6e, 0x4c, 0x68, 0x67, 0x6b, 0x52, 0x39, 0x5a, 0x61, 0x2f, 0x6b, 0x74, 0x39, 0x4a, 0x51, 0x4b, 0x6c, 0x37, 0x58, 0x73, 0x78, 0x58, 0x59, 0x44, 0x56, 0x42, 0x74, 0x6c, 0x55, 0x72, 0x70, 0x4d, 0x6b, 0x6c, 0x5a, 0x52, 0x4e, 0x61, 0x42, 0x41, 0x32, 0x43, 0x6e, 0x62, 0x0a, 0x72, 0x6c, 0x4a, 0x32, 0x4f, 0x79, 0x30, 0x77, 0x51, 0x4a, 0x75, 0x4b, 0x30, 0x45, 0x4a, 0x57, 0x74, 0x4c, 0x65, 0x49, 0x41, 0x61, 0x53, 0x48, 0x4f, 0x31, 0x4f, 0x57, 0x7a, 0x61, 0x4d, 0x57, 0x6a, 0x2f, 0x4e, 0x6d, 0x71, 0x68, 0x65, 0x78, 0x78, 0x32, 0x44, 0x67, 0x77, 0x55, 0x4d, 0x46, 0x44, 0x4f, 0x36, 0x62, 0x57, 0x32, 0x42, 0x76, 0x42, 0x6c, 0x79, 0x48, 0x57, 0x79, 0x66, 0x35, 0x51, 0x42, 0x47, 0x65, 0x6e, 0x44, 0x50, 0x42, 0x74, 0x2b, 0x55, 0x31, 0x0a, 0x56, 0x77, 0x56, 0x2f, 0x4a, 0x38, 0x34, 0x58, 0x49, 0x49, 0x77, 0x63, 0x2f, 0x50, 0x48, 0x37, 0x32, 0x6a, 0x45, 0x70, 0x53, 0x65, 0x33, 0x31, 0x43, 0x34, 0x53, 0x6e, 0x54, 0x38, 0x48, 0x32, 0x54, 0x73, 0x49, 0x6f, 0x6e, 0x50, 0x72, 0x75, 0x34, 0x4b, 0x38, 0x48, 0x2b, 0x7a, 0x4d, 0x52, 0x65, 0x69, 0x46, 0x50, 0x43, 0x79, 0x45, 0x51, 0x74, 0x6b, 0x41, 0x36, 0x71, 0x79, 0x49, 0x36, 0x42, 0x4a, 0x79, 0x4c, 0x6d, 0x34, 0x53, 0x47, 0x63, 0x70, 0x72, 0x53, 0x0a, 0x70, 0x36, 0x58, 0x45, 0x74, 0x48, 0x57, 0x52, 0x71, 0x53, 0x73, 0x6a, 0x41, 0x67, 0x4d, 0x42, 0x41, 0x41, 0x47, 0x6a, 0x51, 0x6a, 0x42, 0x41, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x42, 0x6a, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x0a, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x54, 0x67, 0x71, 0x6a, 0x38, 0x6c, 0x6a, 0x5a, 0x39, 0x45, 0x58, 0x4d, 0x45, 0x36, 0x36, 0x43, 0x36, 0x75, 0x64, 0x30, 0x79, 0x45, 0x50, 0x6d, 0x63, 0x4d, 0x39, 0x44, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x45, 0x41, 0x75, 0x56, 0x65, 0x76, 0x75, 0x42, 0x4c, 0x61, 0x56, 0x34, 0x4f, 0x50, 0x61, 0x41, 0x73, 0x7a, 0x0a, 0x48, 0x51, 0x4e, 0x54, 0x56, 0x66, 0x53, 0x56, 0x63, 0x4f, 0x51, 0x72, 0x50, 0x62, 0x41, 0x35, 0x36, 0x2f, 0x71, 0x4a, 0x59, 0x76, 0x33, 0x33, 0x31, 0x68, 0x67, 0x45, 0x4c, 0x79, 0x45, 0x30, 0x33, 0x66, 0x46, 0x6f, 0x38, 0x4e, 0x57, 0x57, 0x57, 0x74, 0x37, 0x43, 0x67, 0x4b, 0x50, 0x42, 0x6a, 0x63, 0x5a, 0x71, 0x39, 0x31, 0x6c, 0x33, 0x72, 0x68, 0x56, 0x6b, 0x7a, 0x31, 0x74, 0x35, 0x42, 0x58, 0x64, 0x6d, 0x36, 0x6f, 0x7a, 0x54, 0x61, 0x77, 0x33, 0x64, 0x0a, 0x38, 0x56, 0x6b, 0x73, 0x77, 0x54, 0x4f, 0x6c, 0x4d, 0x49, 0x41, 0x56, 0x52, 0x51, 0x64, 0x46, 0x47, 0x6a, 0x45, 0x69, 0x74, 0x70, 0x49, 0x41, 0x71, 0x35, 0x6c, 0x4e, 0x4f, 0x6f, 0x39, 0x33, 0x72, 0x36, 0x6b, 0x69, 0x79, 0x69, 0x39, 0x6a, 0x79, 0x68, 0x58, 0x57, 0x78, 0x38, 0x62, 0x77, 0x50, 0x57, 0x7a, 0x38, 0x48, 0x41, 0x32, 0x59, 0x45, 0x47, 0x47, 0x65, 0x45, 0x61, 0x49, 0x69, 0x31, 0x77, 0x72, 0x79, 0x6b, 0x58, 0x70, 0x72, 0x4f, 0x51, 0x34, 0x76, 0x0a, 0x4d, 0x4d, 0x4d, 0x32, 0x53, 0x5a, 0x2f, 0x67, 0x36, 0x51, 0x38, 0x43, 0x52, 0x46, 0x41, 0x33, 0x6c, 0x46, 0x56, 0x39, 0x36, 0x70, 0x2f, 0x32, 0x4f, 0x37, 0x71, 0x55, 0x70, 0x55, 0x7a, 0x70, 0x76, 0x44, 0x35, 0x52, 0x74, 0x4f, 0x6a, 0x4b, 0x6b, 0x6a, 0x5a, 0x55, 0x62, 0x56, 0x77, 0x6c, 0x4b, 0x4e, 0x72, 0x64, 0x72, 0x52, 0x54, 0x39, 0x30, 0x2b, 0x37, 0x69, 0x49, 0x67, 0x58, 0x72, 0x30, 0x50, 0x4b, 0x33, 0x61, 0x42, 0x4c, 0x58, 0x57, 0x6f, 0x70, 0x42, 0x0a, 0x47, 0x73, 0x61, 0x53, 0x70, 0x56, 0x6f, 0x37, 0x59, 0x30, 0x56, 0x50, 0x76, 0x2b, 0x45, 0x36, 0x64, 0x79, 0x49, 0x76, 0x58, 0x4c, 0x39, 0x47, 0x2b, 0x56, 0x6f, 0x44, 0x68, 0x52, 0x4e, 0x43, 0x58, 0x38, 0x72, 0x65, 0x55, 0x39, 0x64, 0x69, 0x74, 0x61, 0x59, 0x31, 0x42, 0x4d, 0x4a, 0x48, 0x2f, 0x35, 0x6e, 0x39, 0x68, 0x4e, 0x39, 0x63, 0x7a, 0x75, 0x6c, 0x65, 0x67, 0x43, 0x68, 0x42, 0x38, 0x6e, 0x33, 0x6e, 0x48, 0x70, 0x44, 0x59, 0x54, 0x33, 0x59, 0x2b, 0x0a, 0x67, 0x6a, 0x77, 0x4e, 0x2f, 0x4b, 0x55, 0x44, 0x2b, 0x6e, 0x73, 0x61, 0x32, 0x55, 0x55, 0x65, 0x59, 0x4e, 0x72, 0x45, 0x6a, 0x76, 0x6e, 0x38, 0x4b, 0x38, 0x6c, 0x37, 0x6c, 0x63, 0x55, 0x71, 0x2f, 0x36, 0x71, 0x4a, 0x33, 0x34, 0x49, 0x78, 0x44, 0x33, 0x4c, 0x2f, 0x44, 0x43, 0x66, 0x58, 0x43, 0x68, 0x35, 0x57, 0x41, 0x46, 0x41, 0x65, 0x44, 0x4a, 0x44, 0x42, 0x6c, 0x72, 0x58, 0x59, 0x46, 0x49, 0x57, 0x37, 0x70, 0x77, 0x30, 0x57, 0x77, 0x66, 0x67, 0x48, 0x0a, 0x4a, 0x42, 0x75, 0x36, 0x68, 0x61, 0x45, 0x61, 0x42, 0x51, 0x6d, 0x41, 0x75, 0x70, 0x56, 0x6a, 0x79, 0x54, 0x72, 0x73, 0x4a, 0x5a, 0x39, 0x2f, 0x6e, 0x62, 0x71, 0x6b, 0x52, 0x78, 0x57, 0x62, 0x52, 0x48, 0x44, 0x78, 0x61, 0x6b, 0x76, 0x57, 0x4f, 0x46, 0x35, 0x44, 0x38, 0x78, 0x68, 0x2b, 0x55, 0x47, 0x37, 0x70, 0x57, 0x69, 0x6a, 0x6d, 0x5a, 0x65, 0x5a, 0x33, 0x47, 0x7a, 0x72, 0x39, 0x48, 0x62, 0x34, 0x44, 0x4a, 0x71, 0x50, 0x62, 0x31, 0x4f, 0x47, 0x37, 0x0a, 0x66, 0x70, 0x59, 0x6e, 0x4b, 0x78, 0x33, 0x75, 0x70, 0x50, 0x76, 0x61, 0x4a, 0x56, 0x51, 0x54, 0x41, 0x39, 0x34, 0x35, 0x78, 0x73, 0x4d, 0x66, 0x54, 0x5a, 0x44, 0x73, 0x6a, 0x78, 0x74, 0x4b, 0x30, 0x68, 0x7a, 0x74, 0x68, 0x5a, 0x55, 0x34, 0x55, 0x48, 0x6c, 0x47, 0x31, 0x73, 0x47, 0x51, 0x55, 0x44, 0x47, 0x70, 0x58, 0x4a, 0x70, 0x75, 0x48, 0x66, 0x55, 0x7a, 0x56, 0x6f, 0x75, 0x6e, 0x6d, 0x64, 0x4c, 0x79, 0x79, 0x43, 0x77, 0x7a, 0x6b, 0x35, 0x49, 0x77, 0x0a, 0x78, 0x30, 0x36, 0x4d, 0x5a, 0x54, 0x4d, 0x51, 0x5a, 0x42, 0x66, 0x39, 0x4a, 0x42, 0x65, 0x57, 0x30, 0x59, 0x33, 0x43, 0x4f, 0x6d, 0x6f, 0x72, 0x36, 0x78, 0x4f, 0x4c, 0x52, 0x50, 0x49, 0x68, 0x38, 0x30, 0x6f, 0x61, 0x74, 0x33, 0x64, 0x66, 0x31, 0x2b, 0x32, 0x49, 0x70, 0x48, 0x4c, 0x6c, 0x4f, 0x52, 0x2b, 0x56, 0x6e, 0x62, 0x35, 0x6e, 0x77, 0x58, 0x41, 0x52, 0x50, 0x62, 0x76, 0x30, 0x2b, 0x45, 0x6d, 0x33, 0x34, 0x79, 0x61, 0x58, 0x4f, 0x70, 0x2f, 0x53, 0x0a, 0x58, 0x33, 0x7a, 0x37, 0x77, 0x4a, 0x6c, 0x38, 0x4f, 0x53, 0x6e, 0x67, 0x65, 0x78, 0x32, 0x2f, 0x44, 0x61, 0x65, 0x50, 0x30, 0x69, 0x6b, 0x30, 0x62, 0x69, 0x51, 0x56, 0x79, 0x39, 0x36, 0x51, 0x58, 0x72, 0x38, 0x61, 0x78, 0x47, 0x62, 0x71, 0x77, 0x75, 0x61, 0x36, 0x4f, 0x56, 0x2b, 0x4b, 0x6d, 0x61, 0x6c, 0x42, 0x57, 0x51, 0x65, 0x77, 0x4c, 0x4b, 0x38, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x43, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x6c, 0x79, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x45, 0x31, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x42, 0x39, 0x7a, 0x43, 0x43, 0x41, 0x58, 0x32, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x42, 0x69, 0x55, 0x7a, 0x73, 0x55, 0x63, 0x44, 0x4d, 0x79, 0x64, 0x63, 0x2b, 0x59, 0x32, 0x61, 0x75, 0x62, 0x2f, 0x4d, 0x2b, 0x44, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x7a, 0x41, 0x39, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x0a, 0x55, 0x7a, 0x45, 0x53, 0x4d, 0x42, 0x41, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x4a, 0x51, 0x32, 0x56, 0x79, 0x64, 0x47, 0x46, 0x70, 0x62, 0x6d, 0x78, 0x35, 0x4d, 0x52, 0x6f, 0x77, 0x47, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x46, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x59, 0x57, 0x6c, 0x75, 0x62, 0x48, 0x6b, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x46, 0x4d, 0x54, 0x41, 0x65, 0x46, 0x77, 0x30, 0x79, 0x4d, 0x54, 0x41, 0x30, 0x0a, 0x4d, 0x44, 0x45, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x42, 0x61, 0x46, 0x77, 0x30, 0x30, 0x4e, 0x6a, 0x41, 0x30, 0x4d, 0x44, 0x45, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x42, 0x61, 0x4d, 0x44, 0x30, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6c, 0x56, 0x54, 0x4d, 0x52, 0x49, 0x77, 0x45, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x77, 0x6c, 0x44, 0x5a, 0x58, 0x4a, 0x30, 0x59, 0x57, 0x6c, 0x75, 0x0a, 0x62, 0x48, 0x6b, 0x78, 0x47, 0x6a, 0x41, 0x59, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x54, 0x45, 0x55, 0x4e, 0x6c, 0x63, 0x6e, 0x52, 0x68, 0x61, 0x57, 0x35, 0x73, 0x65, 0x53, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x55, 0x78, 0x4d, 0x48, 0x59, 0x77, 0x45, 0x41, 0x59, 0x48, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x43, 0x41, 0x51, 0x59, 0x46, 0x4b, 0x34, 0x45, 0x45, 0x41, 0x43, 0x49, 0x44, 0x59, 0x67, 0x41, 0x45, 0x33, 0x6d, 0x2f, 0x34, 0x0a, 0x66, 0x78, 0x7a, 0x66, 0x37, 0x66, 0x6c, 0x48, 0x68, 0x34, 0x61, 0x78, 0x70, 0x4d, 0x43, 0x4b, 0x2b, 0x49, 0x4b, 0x58, 0x67, 0x4f, 0x71, 0x50, 0x79, 0x45, 0x70, 0x65, 0x4b, 0x6e, 0x32, 0x49, 0x61, 0x4b, 0x63, 0x42, 0x59, 0x68, 0x53, 0x52, 0x4a, 0x48, 0x70, 0x63, 0x6e, 0x71, 0x4d, 0x58, 0x66, 0x59, 0x71, 0x47, 0x49, 0x54, 0x51, 0x59, 0x55, 0x42, 0x73, 0x51, 0x33, 0x74, 0x41, 0x33, 0x53, 0x79, 0x62, 0x48, 0x47, 0x57, 0x43, 0x41, 0x36, 0x54, 0x53, 0x39, 0x0a, 0x59, 0x42, 0x6b, 0x32, 0x51, 0x4e, 0x59, 0x70, 0x68, 0x77, 0x6b, 0x38, 0x6b, 0x58, 0x72, 0x32, 0x76, 0x42, 0x4d, 0x6a, 0x33, 0x56, 0x6c, 0x4f, 0x42, 0x46, 0x37, 0x50, 0x79, 0x41, 0x49, 0x63, 0x47, 0x46, 0x50, 0x42, 0x4d, 0x64, 0x6a, 0x61, 0x49, 0x4f, 0x6c, 0x45, 0x6a, 0x65, 0x52, 0x32, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x51, 0x59, 0x77, 0x0a, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x38, 0x79, 0x67, 0x59, 0x79, 0x32, 0x52, 0x31, 0x37, 0x69, 0x6b, 0x71, 0x36, 0x2b, 0x32, 0x75, 0x49, 0x31, 0x67, 0x34, 0x68, 0x65, 0x76, 0x49, 0x49, 0x67, 0x63, 0x77, 0x43, 0x67, 0x59, 0x49, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x45, 0x0a, 0x41, 0x77, 0x4d, 0x44, 0x61, 0x41, 0x41, 0x77, 0x5a, 0x51, 0x49, 0x78, 0x41, 0x4c, 0x47, 0x4f, 0x57, 0x69, 0x44, 0x44, 0x73, 0x68, 0x6c, 0x69, 0x54, 0x64, 0x36, 0x77, 0x54, 0x39, 0x39, 0x75, 0x30, 0x6e, 0x43, 0x4b, 0x38, 0x5a, 0x39, 0x2b, 0x61, 0x6f, 0x7a, 0x6d, 0x75, 0x74, 0x36, 0x44, 0x61, 0x63, 0x70, 0x70, 0x73, 0x36, 0x6b, 0x46, 0x74, 0x5a, 0x61, 0x53, 0x46, 0x34, 0x66, 0x43, 0x30, 0x75, 0x72, 0x51, 0x65, 0x38, 0x37, 0x59, 0x51, 0x56, 0x74, 0x38, 0x0a, 0x72, 0x67, 0x49, 0x77, 0x52, 0x74, 0x37, 0x71, 0x79, 0x31, 0x32, 0x61, 0x37, 0x44, 0x4c, 0x43, 0x5a, 0x52, 0x61, 0x77, 0x54, 0x44, 0x42, 0x63, 0x4d, 0x50, 0x50, 0x61, 0x54, 0x6e, 0x4f, 0x47, 0x42, 0x74, 0x6a, 0x4f, 0x69, 0x51, 0x52, 0x49, 0x4e, 0x7a, 0x66, 0x34, 0x33, 0x54, 0x4e, 0x52, 0x6e, 0x58, 0x43, 0x76, 0x65, 0x31, 0x58, 0x59, 0x41, 0x53, 0x35, 0x39, 0x42, 0x57, 0x51, 0x4f, 0x68, 0x72, 0x69, 0x52, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x41, 0x33, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x66, 0x7a, 0x43, 0x43, 0x41, 0x32, 0x65, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4a, 0x41, 0x4f, 0x46, 0x38, 0x4e, 0x30, 0x44, 0x39, 0x47, 0x2f, 0x35, 0x6e, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x44, 0x41, 0x55, 0x41, 0x4d, 0x46, 0x30, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6b, 0x70, 0x51, 0x4d, 0x53, 0x55, 0x77, 0x0a, 0x49, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x78, 0x78, 0x54, 0x52, 0x55, 0x4e, 0x50, 0x54, 0x53, 0x42, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x42, 0x54, 0x65, 0x58, 0x4e, 0x30, 0x5a, 0x57, 0x31, 0x7a, 0x49, 0x45, 0x4e, 0x50, 0x4c, 0x69, 0x78, 0x4d, 0x56, 0x45, 0x51, 0x75, 0x4d, 0x53, 0x63, 0x77, 0x4a, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x78, 0x35, 0x54, 0x5a, 0x57, 0x4e, 0x31, 0x63, 0x6d, 0x6c, 0x30, 0x65, 0x53, 0x42, 0x44, 0x0a, 0x62, 0x32, 0x31, 0x74, 0x64, 0x57, 0x35, 0x70, 0x59, 0x32, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x52, 0x44, 0x51, 0x54, 0x4d, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x54, 0x59, 0x77, 0x4e, 0x6a, 0x45, 0x32, 0x4d, 0x44, 0x59, 0x78, 0x4e, 0x7a, 0x45, 0x32, 0x57, 0x68, 0x63, 0x4e, 0x4d, 0x7a, 0x67, 0x77, 0x4d, 0x54, 0x45, 0x34, 0x4d, 0x44, 0x59, 0x78, 0x4e, 0x7a, 0x45, 0x32, 0x57, 0x6a, 0x42, 0x64, 0x4d, 0x51, 0x73, 0x77, 0x0a, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x4b, 0x55, 0x44, 0x45, 0x6c, 0x4d, 0x43, 0x4d, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x63, 0x55, 0x30, 0x56, 0x44, 0x54, 0x30, 0x30, 0x67, 0x56, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x67, 0x55, 0x33, 0x6c, 0x7a, 0x64, 0x47, 0x56, 0x74, 0x63, 0x79, 0x42, 0x44, 0x54, 0x79, 0x34, 0x73, 0x54, 0x46, 0x52, 0x45, 0x4c, 0x6a, 0x45, 0x6e, 0x4d, 0x43, 0x55, 0x47, 0x41, 0x31, 0x55, 0x45, 0x0a, 0x41, 0x78, 0x4d, 0x65, 0x55, 0x32, 0x56, 0x6a, 0x64, 0x58, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x67, 0x51, 0x32, 0x39, 0x74, 0x62, 0x58, 0x56, 0x75, 0x61, 0x57, 0x4e, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x69, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x51, 0x30, 0x45, 0x7a, 0x4d, 0x49, 0x49, 0x43, 0x49, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x45, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x38, 0x41, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x43, 0x67, 0x4b, 0x43, 0x41, 0x67, 0x45, 0x41, 0x34, 0x38, 0x6c, 0x79, 0x53, 0x66, 0x63, 0x77, 0x33, 0x67, 0x6c, 0x38, 0x71, 0x55, 0x43, 0x42, 0x57, 0x4e, 0x4f, 0x30, 0x4f, 0x74, 0x32, 0x36, 0x59, 0x51, 0x2b, 0x54, 0x55, 0x47, 0x35, 0x70, 0x50, 0x44, 0x58, 0x43, 0x37, 0x6c, 0x74, 0x7a, 0x6b, 0x42, 0x74, 0x6e, 0x54, 0x43, 0x48, 0x73, 0x58, 0x7a, 0x57, 0x37, 0x4f, 0x54, 0x34, 0x72, 0x43, 0x6d, 0x44, 0x76, 0x75, 0x32, 0x30, 0x72, 0x0a, 0x68, 0x76, 0x74, 0x78, 0x6f, 0x73, 0x69, 0x73, 0x35, 0x46, 0x61, 0x55, 0x2b, 0x63, 0x6d, 0x76, 0x73, 0x58, 0x4c, 0x55, 0x49, 0x4b, 0x78, 0x30, 0x30, 0x72, 0x67, 0x56, 0x72, 0x56, 0x48, 0x2b, 0x68, 0x58, 0x53, 0x68, 0x75, 0x52, 0x44, 0x2b, 0x42, 0x59, 0x44, 0x35, 0x55, 0x70, 0x4f, 0x7a, 0x51, 0x44, 0x31, 0x31, 0x45, 0x4b, 0x7a, 0x41, 0x6c, 0x72, 0x65, 0x6e, 0x66, 0x6e, 0x61, 0x38, 0x34, 0x78, 0x74, 0x53, 0x47, 0x63, 0x34, 0x52, 0x48, 0x77, 0x73, 0x45, 0x0a, 0x4e, 0x50, 0x58, 0x59, 0x39, 0x57, 0x6b, 0x38, 0x64, 0x2f, 0x4e, 0x6b, 0x39, 0x41, 0x32, 0x71, 0x68, 0x64, 0x37, 0x67, 0x43, 0x56, 0x41, 0x45, 0x46, 0x35, 0x61, 0x45, 0x74, 0x38, 0x69, 0x4b, 0x76, 0x45, 0x31, 0x79, 0x2f, 0x42, 0x79, 0x37, 0x7a, 0x2f, 0x4d, 0x47, 0x54, 0x66, 0x6d, 0x66, 0x5a, 0x50, 0x64, 0x2b, 0x70, 0x6d, 0x61, 0x47, 0x4e, 0x58, 0x48, 0x49, 0x45, 0x59, 0x42, 0x4d, 0x77, 0x58, 0x46, 0x41, 0x57, 0x42, 0x36, 0x2b, 0x6f, 0x48, 0x50, 0x32, 0x0a, 0x2f, 0x44, 0x35, 0x51, 0x34, 0x65, 0x41, 0x76, 0x4a, 0x6a, 0x31, 0x2b, 0x58, 0x43, 0x4f, 0x31, 0x65, 0x58, 0x44, 0x65, 0x2b, 0x75, 0x44, 0x52, 0x70, 0x64, 0x59, 0x4d, 0x51, 0x58, 0x46, 0x37, 0x39, 0x2b, 0x71, 0x4d, 0x48, 0x49, 0x6a, 0x48, 0x37, 0x49, 0x76, 0x31, 0x30, 0x53, 0x39, 0x56, 0x6c, 0x6b, 0x5a, 0x38, 0x57, 0x6a, 0x74, 0x59, 0x4f, 0x2f, 0x75, 0x36, 0x32, 0x43, 0x32, 0x31, 0x4a, 0x64, 0x70, 0x36, 0x54, 0x73, 0x39, 0x45, 0x72, 0x69, 0x47, 0x6d, 0x0a, 0x6e, 0x70, 0x6a, 0x4b, 0x49, 0x47, 0x35, 0x38, 0x75, 0x34, 0x69, 0x46, 0x57, 0x2f, 0x76, 0x41, 0x45, 0x47, 0x4b, 0x37, 0x38, 0x76, 0x6b, 0x6e, 0x52, 0x2b, 0x2f, 0x52, 0x69, 0x54, 0x6c, 0x44, 0x78, 0x4e, 0x2f, 0x65, 0x34, 0x55, 0x47, 0x2f, 0x56, 0x48, 0x4d, 0x67, 0x6c, 0x79, 0x31, 0x73, 0x32, 0x76, 0x50, 0x55, 0x42, 0x36, 0x50, 0x6d, 0x75, 0x64, 0x68, 0x76, 0x72, 0x76, 0x79, 0x4d, 0x47, 0x53, 0x37, 0x54, 0x5a, 0x32, 0x63, 0x72, 0x6c, 0x64, 0x74, 0x59, 0x0a, 0x58, 0x4c, 0x56, 0x71, 0x41, 0x76, 0x4f, 0x34, 0x67, 0x31, 0x36, 0x30, 0x61, 0x37, 0x35, 0x42, 0x66, 0x6c, 0x63, 0x4a, 0x64, 0x55, 0x52, 0x51, 0x56, 0x63, 0x31, 0x61, 0x45, 0x57, 0x45, 0x68, 0x43, 0x6d, 0x48, 0x43, 0x71, 0x59, 0x6a, 0x39, 0x45, 0x37, 0x77, 0x74, 0x69, 0x53, 0x2f, 0x4e, 0x59, 0x65, 0x43, 0x56, 0x76, 0x73, 0x71, 0x31, 0x65, 0x2b, 0x46, 0x37, 0x4e, 0x47, 0x63, 0x4c, 0x48, 0x37, 0x59, 0x4d, 0x78, 0x33, 0x77, 0x65, 0x47, 0x56, 0x50, 0x4b, 0x0a, 0x70, 0x37, 0x46, 0x4b, 0x46, 0x53, 0x42, 0x57, 0x46, 0x48, 0x41, 0x39, 0x4b, 0x34, 0x49, 0x73, 0x44, 0x35, 0x30, 0x56, 0x48, 0x55, 0x65, 0x41, 0x52, 0x2f, 0x39, 0x34, 0x6d, 0x51, 0x34, 0x78, 0x72, 0x32, 0x38, 0x2b, 0x6a, 0x2b, 0x32, 0x47, 0x61, 0x52, 0x35, 0x37, 0x47, 0x49, 0x67, 0x55, 0x73, 0x73, 0x4c, 0x38, 0x67, 0x6a, 0x4d, 0x75, 0x6e, 0x45, 0x73, 0x74, 0x2b, 0x33, 0x41, 0x37, 0x63, 0x61, 0x6f, 0x72, 0x65, 0x79, 0x59, 0x6e, 0x38, 0x78, 0x72, 0x43, 0x0a, 0x33, 0x50, 0x73, 0x58, 0x75, 0x4b, 0x48, 0x71, 0x79, 0x36, 0x43, 0x30, 0x72, 0x74, 0x4f, 0x55, 0x66, 0x6e, 0x72, 0x51, 0x71, 0x38, 0x50, 0x73, 0x4f, 0x43, 0x30, 0x52, 0x4c, 0x6f, 0x69, 0x2f, 0x31, 0x44, 0x2b, 0x74, 0x45, 0x6a, 0x74, 0x43, 0x72, 0x49, 0x38, 0x43, 0x62, 0x6e, 0x33, 0x4d, 0x30, 0x56, 0x39, 0x68, 0x76, 0x71, 0x47, 0x38, 0x4f, 0x6d, 0x70, 0x49, 0x36, 0x69, 0x5a, 0x56, 0x49, 0x68, 0x5a, 0x64, 0x58, 0x77, 0x33, 0x2f, 0x4a, 0x7a, 0x4f, 0x66, 0x0a, 0x47, 0x41, 0x4e, 0x30, 0x69, 0x6c, 0x74, 0x53, 0x49, 0x45, 0x64, 0x72, 0x52, 0x55, 0x30, 0x69, 0x64, 0x34, 0x78, 0x56, 0x4a, 0x2f, 0x43, 0x76, 0x48, 0x6f, 0x7a, 0x4a, 0x67, 0x79, 0x4a, 0x55, 0x74, 0x35, 0x72, 0x51, 0x54, 0x39, 0x6e, 0x4f, 0x2f, 0x4e, 0x6b, 0x75, 0x48, 0x4a, 0x59, 0x6f, 0x73, 0x51, 0x4c, 0x54, 0x41, 0x37, 0x30, 0x6c, 0x55, 0x68, 0x77, 0x30, 0x5a, 0x6b, 0x38, 0x6a, 0x71, 0x2f, 0x52, 0x33, 0x67, 0x70, 0x59, 0x64, 0x30, 0x56, 0x63, 0x77, 0x0a, 0x43, 0x42, 0x45, 0x46, 0x2f, 0x56, 0x66, 0x52, 0x32, 0x63, 0x63, 0x43, 0x41, 0x77, 0x45, 0x41, 0x41, 0x61, 0x4e, 0x43, 0x4d, 0x45, 0x41, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x47, 0x51, 0x55, 0x66, 0x50, 0x78, 0x59, 0x63, 0x68, 0x61, 0x6d, 0x43, 0x69, 0x6b, 0x30, 0x46, 0x57, 0x38, 0x71, 0x79, 0x37, 0x7a, 0x38, 0x72, 0x36, 0x69, 0x72, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x0a, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x42, 0x6a, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x44, 0x41, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x41, 0x51, 0x44, 0x63, 0x41, 0x69, 0x4d, 0x49, 0x34, 0x75, 0x38, 0x68, 0x4f, 0x73, 0x63, 0x4e, 0x74, 0x79, 0x62, 0x53, 0x0a, 0x59, 0x70, 0x4f, 0x6e, 0x70, 0x53, 0x4e, 0x79, 0x42, 0x79, 0x43, 0x43, 0x59, 0x4e, 0x38, 0x59, 0x31, 0x31, 0x53, 0x74, 0x61, 0x53, 0x57, 0x53, 0x6e, 0x74, 0x6b, 0x55, 0x7a, 0x35, 0x6d, 0x35, 0x55, 0x6f, 0x48, 0x50, 0x72, 0x6d, 0x79, 0x4b, 0x4f, 0x31, 0x6f, 0x35, 0x79, 0x47, 0x77, 0x42, 0x51, 0x38, 0x49, 0x69, 0x62, 0x51, 0x4c, 0x77, 0x59, 0x73, 0x31, 0x4f, 0x59, 0x30, 0x50, 0x41, 0x46, 0x4e, 0x72, 0x30, 0x59, 0x2f, 0x44, 0x71, 0x39, 0x48, 0x48, 0x75, 0x0a, 0x54, 0x6f, 0x66, 0x6a, 0x63, 0x61, 0x6e, 0x30, 0x79, 0x56, 0x66, 0x6c, 0x4c, 0x6c, 0x38, 0x63, 0x65, 0x62, 0x73, 0x6a, 0x71, 0x6f, 0x64, 0x45, 0x56, 0x2b, 0x6d, 0x39, 0x4e, 0x55, 0x31, 0x42, 0x75, 0x30, 0x73, 0x6f, 0x6f, 0x35, 0x69, 0x79, 0x47, 0x39, 0x6b, 0x4c, 0x46, 0x77, 0x66, 0x6c, 0x39, 0x2b, 0x71, 0x64, 0x39, 0x58, 0x62, 0x58, 0x76, 0x38, 0x53, 0x32, 0x67, 0x56, 0x6a, 0x2f, 0x79, 0x50, 0x39, 0x6b, 0x61, 0x57, 0x4a, 0x35, 0x72, 0x57, 0x34, 0x4f, 0x0a, 0x48, 0x33, 0x2f, 0x75, 0x48, 0x57, 0x6e, 0x6c, 0x74, 0x33, 0x4a, 0x78, 0x73, 0x2f, 0x36, 0x6c, 0x41, 0x54, 0x57, 0x55, 0x56, 0x43, 0x76, 0x41, 0x55, 0x6d, 0x32, 0x50, 0x56, 0x63, 0x54, 0x4a, 0x30, 0x72, 0x6a, 0x4c, 0x79, 0x6a, 0x51, 0x49, 0x55, 0x59, 0x57, 0x67, 0x39, 0x62, 0x79, 0x30, 0x46, 0x31, 0x6a, 0x71, 0x43, 0x6c, 0x78, 0x36, 0x76, 0x57, 0x50, 0x47, 0x4f, 0x69, 0x2f, 0x2f, 0x6c, 0x6b, 0x6b, 0x5a, 0x68, 0x4f, 0x70, 0x6e, 0x32, 0x41, 0x53, 0x78, 0x0a, 0x59, 0x66, 0x51, 0x41, 0x57, 0x30, 0x71, 0x33, 0x6e, 0x48, 0x45, 0x33, 0x47, 0x59, 0x56, 0x35, 0x76, 0x34, 0x47, 0x77, 0x78, 0x78, 0x4d, 0x4f, 0x64, 0x6e, 0x45, 0x2b, 0x4f, 0x6f, 0x41, 0x47, 0x72, 0x67, 0x59, 0x57, 0x70, 0x34, 0x32, 0x31, 0x77, 0x73, 0x54, 0x4c, 0x2f, 0x30, 0x43, 0x6c, 0x58, 0x49, 0x32, 0x6c, 0x79, 0x54, 0x72, 0x74, 0x63, 0x6f, 0x48, 0x4b, 0x58, 0x4a, 0x67, 0x38, 0x30, 0x6a, 0x51, 0x44, 0x64, 0x77, 0x6a, 0x39, 0x38, 0x43, 0x6c, 0x5a, 0x0a, 0x58, 0x53, 0x45, 0x49, 0x78, 0x32, 0x43, 0x2f, 0x70, 0x48, 0x46, 0x37, 0x75, 0x4e, 0x6b, 0x65, 0x67, 0x72, 0x34, 0x4a, 0x72, 0x32, 0x56, 0x76, 0x4b, 0x4b, 0x75, 0x2f, 0x53, 0x37, 0x58, 0x75, 0x50, 0x67, 0x68, 0x48, 0x4a, 0x36, 0x41, 0x50, 0x62, 0x77, 0x2b, 0x4c, 0x50, 0x36, 0x79, 0x56, 0x47, 0x50, 0x4f, 0x35, 0x44, 0x74, 0x78, 0x6e, 0x56, 0x57, 0x35, 0x69, 0x6e, 0x6b, 0x59, 0x4f, 0x30, 0x51, 0x52, 0x34, 0x79, 0x6e, 0x4b, 0x75, 0x64, 0x74, 0x6d, 0x6c, 0x0a, 0x2b, 0x4c, 0x4c, 0x66, 0x69, 0x41, 0x6c, 0x68, 0x69, 0x2b, 0x38, 0x6b, 0x54, 0x74, 0x46, 0x5a, 0x50, 0x31, 0x72, 0x55, 0x50, 0x63, 0x6d, 0x54, 0x50, 0x43, 0x74, 0x6b, 0x39, 0x59, 0x45, 0x4e, 0x46, 0x70, 0x62, 0x33, 0x6b, 0x73, 0x50, 0x2b, 0x4d, 0x57, 0x2f, 0x6f, 0x4b, 0x6a, 0x4a, 0x30, 0x44, 0x76, 0x52, 0x4d, 0x6d, 0x45, 0x6f, 0x59, 0x44, 0x6a, 0x42, 0x55, 0x31, 0x63, 0x58, 0x72, 0x76, 0x4d, 0x55, 0x56, 0x6e, 0x75, 0x69, 0x5a, 0x49, 0x65, 0x73, 0x6e, 0x0a, 0x4b, 0x77, 0x6b, 0x4b, 0x32, 0x2f, 0x48, 0x6d, 0x63, 0x42, 0x68, 0x57, 0x75, 0x77, 0x7a, 0x6b, 0x76, 0x76, 0x6e, 0x6f, 0x45, 0x4b, 0x51, 0x54, 0x6b, 0x72, 0x67, 0x63, 0x34, 0x4e, 0x74, 0x6e, 0x48, 0x56, 0x4d, 0x44, 0x70, 0x43, 0x4b, 0x6e, 0x33, 0x46, 0x32, 0x53, 0x45, 0x44, 0x7a, 0x71, 0x2f, 0x2f, 0x77, 0x62, 0x45, 0x42, 0x72, 0x44, 0x32, 0x4e, 0x43, 0x63, 0x6e, 0x57, 0x58, 0x4c, 0x30, 0x43, 0x73, 0x6e, 0x4d, 0x51, 0x4d, 0x65, 0x4e, 0x75, 0x45, 0x39, 0x0a, 0x64, 0x6e, 0x55, 0x4d, 0x2f, 0x30, 0x55, 0x6d, 0x75, 0x64, 0x31, 0x52, 0x76, 0x43, 0x50, 0x48, 0x58, 0x39, 0x6a, 0x59, 0x68, 0x78, 0x42, 0x41, 0x45, 0x67, 0x30, 0x39, 0x4f, 0x44, 0x66, 0x6e, 0x52, 0x44, 0x77, 0x59, 0x77, 0x46, 0x4d, 0x4a, 0x5a, 0x49, 0x2f, 0x2f, 0x31, 0x5a, 0x71, 0x6d, 0x66, 0x48, 0x41, 0x75, 0x63, 0x31, 0x55, 0x68, 0x36, 0x4e, 0x2f, 0x2f, 0x67, 0x37, 0x6b, 0x64, 0x50, 0x6a, 0x49, 0x65, 0x31, 0x71, 0x5a, 0x39, 0x4c, 0x50, 0x46, 0x6d, 0x0a, 0x36, 0x56, 0x77, 0x64, 0x70, 0x36, 0x50, 0x4f, 0x58, 0x69, 0x55, 0x79, 0x4b, 0x2b, 0x4f, 0x56, 0x72, 0x43, 0x6f, 0x48, 0x7a, 0x72, 0x51, 0x6f, 0x65, 0x49, 0x59, 0x38, 0x4c, 0x61, 0x61, 0x64, 0x54, 0x64, 0x4a, 0x30, 0x4d, 0x4e, 0x31, 0x6b, 0x55, 0x52, 0x58, 0x62, 0x67, 0x34, 0x4e, 0x52, 0x31, 0x36, 0x2f, 0x39, 0x4d, 0x35, 0x31, 0x4e, 0x5a, 0x67, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x20, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x45, 0x43, 0x43, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x41, 0x31, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x4f, 0x44, 0x43, 0x43, 0x41, 0x62, 0x36, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x4a, 0x41, 0x4e, 0x5a, 0x64, 0x6d, 0x37, 0x4e, 0x34, 0x67, 0x53, 0x37, 0x72, 0x4d, 0x41, 0x6f, 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x42, 0x41, 0x4d, 0x44, 0x4d, 0x47, 0x45, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6b, 0x70, 0x51, 0x4d, 0x53, 0x55, 0x77, 0x49, 0x77, 0x59, 0x44, 0x0a, 0x56, 0x51, 0x51, 0x4b, 0x45, 0x78, 0x78, 0x54, 0x52, 0x55, 0x4e, 0x50, 0x54, 0x53, 0x42, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x42, 0x54, 0x65, 0x58, 0x4e, 0x30, 0x5a, 0x57, 0x31, 0x7a, 0x49, 0x45, 0x4e, 0x50, 0x4c, 0x69, 0x78, 0x4d, 0x56, 0x45, 0x51, 0x75, 0x4d, 0x53, 0x73, 0x77, 0x4b, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x79, 0x4a, 0x54, 0x5a, 0x57, 0x4e, 0x31, 0x63, 0x6d, 0x6c, 0x30, 0x65, 0x53, 0x42, 0x44, 0x62, 0x32, 0x31, 0x74, 0x0a, 0x64, 0x57, 0x35, 0x70, 0x59, 0x32, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x49, 0x45, 0x56, 0x44, 0x51, 0x79, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x51, 0x30, 0x45, 0x78, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x45, 0x32, 0x4d, 0x44, 0x59, 0x78, 0x4e, 0x6a, 0x41, 0x31, 0x4d, 0x54, 0x55, 0x79, 0x4f, 0x46, 0x6f, 0x58, 0x44, 0x54, 0x4d, 0x34, 0x4d, 0x44, 0x45, 0x78, 0x4f, 0x44, 0x41, 0x31, 0x4d, 0x54, 0x55, 0x79, 0x4f, 0x46, 0x6f, 0x77, 0x59, 0x54, 0x45, 0x4c, 0x0a, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x53, 0x6c, 0x41, 0x78, 0x4a, 0x54, 0x41, 0x6a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x54, 0x48, 0x46, 0x4e, 0x46, 0x51, 0x30, 0x39, 0x4e, 0x49, 0x46, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x49, 0x46, 0x4e, 0x35, 0x63, 0x33, 0x52, 0x6c, 0x62, 0x58, 0x4d, 0x67, 0x51, 0x30, 0x38, 0x75, 0x4c, 0x45, 0x78, 0x55, 0x52, 0x43, 0x34, 0x78, 0x4b, 0x7a, 0x41, 0x70, 0x42, 0x67, 0x4e, 0x56, 0x0a, 0x42, 0x41, 0x4d, 0x54, 0x49, 0x6c, 0x4e, 0x6c, 0x59, 0x33, 0x56, 0x79, 0x61, 0x58, 0x52, 0x35, 0x49, 0x45, 0x4e, 0x76, 0x62, 0x57, 0x31, 0x31, 0x62, 0x6d, 0x6c, 0x6a, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x34, 0x67, 0x52, 0x55, 0x4e, 0x44, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x52, 0x44, 0x51, 0x54, 0x45, 0x77, 0x64, 0x6a, 0x41, 0x51, 0x42, 0x67, 0x63, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x49, 0x42, 0x42, 0x67, 0x55, 0x72, 0x67, 0x51, 0x51, 0x41, 0x0a, 0x49, 0x67, 0x4e, 0x69, 0x41, 0x41, 0x53, 0x6b, 0x70, 0x57, 0x39, 0x67, 0x41, 0x77, 0x50, 0x44, 0x76, 0x54, 0x48, 0x30, 0x30, 0x78, 0x65, 0x63, 0x4b, 0x34, 0x52, 0x31, 0x72, 0x4f, 0x58, 0x39, 0x50, 0x56, 0x64, 0x75, 0x31, 0x32, 0x4f, 0x2f, 0x35, 0x67, 0x53, 0x4a, 0x6b, 0x6f, 0x36, 0x42, 0x6e, 0x4f, 0x50, 0x70, 0x52, 0x32, 0x37, 0x4b, 0x6b, 0x42, 0x4c, 0x49, 0x45, 0x2b, 0x43, 0x6e, 0x6e, 0x66, 0x64, 0x6c, 0x64, 0x42, 0x39, 0x73, 0x45, 0x4c, 0x4c, 0x6f, 0x0a, 0x35, 0x4f, 0x6e, 0x76, 0x62, 0x59, 0x55, 0x79, 0x6d, 0x55, 0x53, 0x78, 0x58, 0x76, 0x33, 0x4d, 0x64, 0x68, 0x44, 0x59, 0x57, 0x37, 0x32, 0x69, 0x78, 0x76, 0x6e, 0x57, 0x51, 0x75, 0x52, 0x58, 0x64, 0x74, 0x79, 0x51, 0x77, 0x6a, 0x57, 0x70, 0x53, 0x34, 0x67, 0x38, 0x45, 0x6b, 0x64, 0x74, 0x58, 0x50, 0x39, 0x4a, 0x54, 0x78, 0x70, 0x4b, 0x55, 0x4c, 0x47, 0x6a, 0x51, 0x6a, 0x42, 0x41, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x0a, 0x42, 0x42, 0x53, 0x47, 0x48, 0x4f, 0x66, 0x2b, 0x4c, 0x61, 0x56, 0x4b, 0x69, 0x77, 0x6a, 0x2b, 0x4b, 0x42, 0x48, 0x36, 0x76, 0x71, 0x4e, 0x6d, 0x2b, 0x47, 0x42, 0x5a, 0x4c, 0x7a, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x51, 0x59, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x4b, 0x0a, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x77, 0x4e, 0x6f, 0x41, 0x44, 0x42, 0x6c, 0x41, 0x6a, 0x41, 0x56, 0x58, 0x55, 0x49, 0x39, 0x2f, 0x4c, 0x62, 0x75, 0x39, 0x7a, 0x75, 0x78, 0x4e, 0x75, 0x69, 0x65, 0x39, 0x73, 0x52, 0x47, 0x4b, 0x45, 0x6b, 0x7a, 0x30, 0x46, 0x68, 0x44, 0x4b, 0x6d, 0x4d, 0x70, 0x7a, 0x45, 0x32, 0x78, 0x74, 0x48, 0x71, 0x69, 0x75, 0x51, 0x30, 0x34, 0x70, 0x56, 0x31, 0x49, 0x4b, 0x76, 0x33, 0x4c, 0x0a, 0x73, 0x6e, 0x4e, 0x64, 0x6f, 0x34, 0x67, 0x49, 0x78, 0x77, 0x77, 0x43, 0x4d, 0x51, 0x44, 0x41, 0x71, 0x79, 0x30, 0x4f, 0x62, 0x65, 0x30, 0x59, 0x6f, 0x74, 0x74, 0x54, 0x36, 0x53, 0x58, 0x62, 0x56, 0x51, 0x6a, 0x67, 0x55, 0x4d, 0x7a, 0x66, 0x52, 0x47, 0x45, 0x57, 0x67, 0x71, 0x74, 0x4a, 0x73, 0x4c, 0x4b, 0x42, 0x37, 0x48, 0x4f, 0x48, 0x65, 0x4c, 0x52, 0x4d, 0x73, 0x6d, 0x49, 0x62, 0x45, 0x76, 0x6f, 0x57, 0x54, 0x53, 0x56, 0x4c, 0x59, 0x37, 0x30, 0x65, 0x0a, 0x4e, 0x39, 0x6b, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x42, 0x4a, 0x43, 0x41, 0x20, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x31, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x64, 0x44, 0x43, 0x43, 0x41, 0x31, 0x79, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x56, 0x57, 0x39, 0x6c, 0x34, 0x37, 0x54, 0x5a, 0x6b, 0x47, 0x6f, 0x62, 0x43, 0x64, 0x46, 0x73, 0x50, 0x73, 0x42, 0x73, 0x49, 0x44, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x44, 0x42, 0x55, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x0a, 0x45, 0x77, 0x4a, 0x44, 0x54, 0x6a, 0x45, 0x6d, 0x4d, 0x43, 0x51, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x64, 0x51, 0x6b, 0x56, 0x4a, 0x53, 0x6b, 0x6c, 0x4f, 0x52, 0x79, 0x42, 0x44, 0x52, 0x56, 0x4a, 0x55, 0x53, 0x55, 0x5a, 0x4a, 0x51, 0x30, 0x46, 0x55, 0x52, 0x53, 0x42, 0x42, 0x56, 0x56, 0x52, 0x49, 0x54, 0x31, 0x4a, 0x4a, 0x56, 0x46, 0x6b, 0x78, 0x48, 0x54, 0x41, 0x62, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x46, 0x45, 0x4a, 0x4b, 0x0a, 0x51, 0x30, 0x45, 0x67, 0x52, 0x32, 0x78, 0x76, 0x59, 0x6d, 0x46, 0x73, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x78, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x45, 0x35, 0x4d, 0x54, 0x49, 0x78, 0x4f, 0x54, 0x41, 0x7a, 0x4d, 0x54, 0x59, 0x78, 0x4e, 0x31, 0x6f, 0x58, 0x44, 0x54, 0x51, 0x30, 0x4d, 0x54, 0x49, 0x78, 0x4d, 0x6a, 0x41, 0x7a, 0x4d, 0x54, 0x59, 0x78, 0x4e, 0x31, 0x6f, 0x77, 0x56, 0x44, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x0a, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x51, 0x30, 0x34, 0x78, 0x4a, 0x6a, 0x41, 0x6b, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x48, 0x55, 0x4a, 0x46, 0x53, 0x55, 0x70, 0x4a, 0x54, 0x6b, 0x63, 0x67, 0x51, 0x30, 0x56, 0x53, 0x56, 0x45, 0x6c, 0x47, 0x53, 0x55, 0x4e, 0x42, 0x56, 0x45, 0x55, 0x67, 0x51, 0x56, 0x56, 0x55, 0x53, 0x45, 0x39, 0x53, 0x53, 0x56, 0x52, 0x5a, 0x4d, 0x52, 0x30, 0x77, 0x47, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x0a, 0x44, 0x42, 0x52, 0x43, 0x53, 0x6b, 0x4e, 0x42, 0x49, 0x45, 0x64, 0x73, 0x62, 0x32, 0x4a, 0x68, 0x62, 0x43, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x42, 0x4d, 0x54, 0x43, 0x43, 0x41, 0x69, 0x49, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x50, 0x41, 0x44, 0x43, 0x43, 0x41, 0x67, 0x6f, 0x43, 0x67, 0x67, 0x49, 0x42, 0x41, 0x50, 0x46, 0x6d, 0x0a, 0x43, 0x4c, 0x33, 0x5a, 0x78, 0x52, 0x56, 0x68, 0x79, 0x34, 0x51, 0x45, 0x51, 0x61, 0x56, 0x70, 0x4e, 0x33, 0x63, 0x64, 0x77, 0x62, 0x42, 0x37, 0x2b, 0x73, 0x4e, 0x33, 0x53, 0x4a, 0x41, 0x54, 0x63, 0x6d, 0x54, 0x52, 0x75, 0x48, 0x79, 0x51, 0x4e, 0x5a, 0x30, 0x59, 0x65, 0x59, 0x6a, 0x6a, 0x6c, 0x77, 0x45, 0x38, 0x52, 0x34, 0x48, 0x79, 0x44, 0x71, 0x4b, 0x59, 0x44, 0x5a, 0x34, 0x2f, 0x4e, 0x2b, 0x41, 0x5a, 0x73, 0x70, 0x44, 0x79, 0x52, 0x68, 0x79, 0x53, 0x0a, 0x73, 0x54, 0x70, 0x68, 0x7a, 0x76, 0x71, 0x33, 0x52, 0x70, 0x34, 0x44, 0x68, 0x74, 0x63, 0x7a, 0x62, 0x75, 0x33, 0x33, 0x52, 0x59, 0x78, 0x32, 0x4e, 0x39, 0x35, 0x75, 0x6c, 0x70, 0x48, 0x33, 0x31, 0x33, 0x34, 0x72, 0x68, 0x78, 0x66, 0x56, 0x69, 0x7a, 0x58, 0x75, 0x68, 0x4a, 0x46, 0x79, 0x56, 0x39, 0x78, 0x67, 0x77, 0x38, 0x4f, 0x35, 0x35, 0x38, 0x64, 0x6e, 0x4a, 0x43, 0x4e, 0x50, 0x59, 0x77, 0x70, 0x6a, 0x39, 0x6d, 0x5a, 0x39, 0x53, 0x31, 0x57, 0x6e, 0x0a, 0x50, 0x33, 0x68, 0x6b, 0x53, 0x57, 0x6b, 0x53, 0x6c, 0x2b, 0x42, 0x4d, 0x44, 0x64, 0x4d, 0x4a, 0x6f, 0x44, 0x49, 0x77, 0x4f, 0x76, 0x71, 0x66, 0x77, 0x50, 0x4b, 0x63, 0x78, 0x52, 0x49, 0x71, 0x4c, 0x68, 0x79, 0x31, 0x42, 0x44, 0x50, 0x61, 0x70, 0x44, 0x67, 0x52, 0x61, 0x74, 0x37, 0x47, 0x47, 0x50, 0x5a, 0x48, 0x4f, 0x69, 0x4a, 0x42, 0x68, 0x79, 0x4c, 0x38, 0x78, 0x49, 0x6b, 0x6f, 0x56, 0x4e, 0x69, 0x4d, 0x70, 0x54, 0x41, 0x4b, 0x2b, 0x42, 0x63, 0x57, 0x0a, 0x79, 0x71, 0x77, 0x33, 0x2f, 0x58, 0x6d, 0x6e, 0x6b, 0x52, 0x64, 0x34, 0x4f, 0x4a, 0x6d, 0x74, 0x57, 0x4f, 0x32, 0x79, 0x33, 0x73, 0x79, 0x4a, 0x66, 0x51, 0x4f, 0x63, 0x73, 0x34, 0x6c, 0x6c, 0x35, 0x2b, 0x4d, 0x37, 0x73, 0x53, 0x4b, 0x47, 0x6a, 0x77, 0x5a, 0x74, 0x65, 0x41, 0x66, 0x39, 0x6b, 0x52, 0x4a, 0x2f, 0x73, 0x47, 0x73, 0x63, 0x69, 0x51, 0x33, 0x35, 0x75, 0x4d, 0x74, 0x30, 0x57, 0x77, 0x66, 0x43, 0x79, 0x50, 0x51, 0x31, 0x30, 0x57, 0x52, 0x6a, 0x0a, 0x65, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x6a, 0x57, 0x4d, 0x4c, 0x33, 0x6d, 0x47, 0x39, 0x30, 0x56, 0x72, 0x34, 0x54, 0x71, 0x6e, 0x4d, 0x66, 0x4b, 0x39, 0x51, 0x37, 0x71, 0x38, 0x6c, 0x30, 0x70, 0x68, 0x34, 0x39, 0x70, 0x63, 0x7a, 0x6d, 0x2b, 0x4c, 0x69, 0x52, 0x76, 0x52, 0x53, 0x47, 0x73, 0x78, 0x64, 0x52, 0x70, 0x4a, 0x51, 0x61, 0x44, 0x72, 0x58, 0x70, 0x49, 0x68, 0x52, 0x4d, 0x73, 0x44, 0x51, 0x61, 0x34, 0x62, 0x48, 0x6c, 0x57, 0x2f, 0x4b, 0x4e, 0x6e, 0x0a, 0x4d, 0x6f, 0x48, 0x31, 0x56, 0x36, 0x58, 0x4b, 0x56, 0x30, 0x4a, 0x70, 0x36, 0x56, 0x77, 0x6b, 0x59, 0x65, 0x2f, 0x69, 0x4d, 0x42, 0x68, 0x4f, 0x52, 0x4a, 0x68, 0x56, 0x62, 0x33, 0x72, 0x43, 0x6b, 0x39, 0x67, 0x5a, 0x74, 0x74, 0x35, 0x38, 0x52, 0x34, 0x6f, 0x52, 0x54, 0x6b, 0x6c, 0x48, 0x32, 0x79, 0x69, 0x55, 0x41, 0x67, 0x75, 0x55, 0x53, 0x69, 0x7a, 0x35, 0x45, 0x74, 0x42, 0x50, 0x36, 0x44, 0x46, 0x2b, 0x62, 0x48, 0x71, 0x2f, 0x70, 0x6a, 0x2b, 0x62, 0x0a, 0x4f, 0x54, 0x30, 0x43, 0x46, 0x71, 0x4d, 0x59, 0x73, 0x32, 0x65, 0x73, 0x57, 0x7a, 0x38, 0x73, 0x67, 0x79, 0x74, 0x6e, 0x4f, 0x59, 0x46, 0x63, 0x75, 0x58, 0x36, 0x55, 0x31, 0x57, 0x54, 0x64, 0x6e, 0x6f, 0x39, 0x75, 0x72, 0x75, 0x68, 0x38, 0x57, 0x37, 0x54, 0x58, 0x61, 0x6b, 0x64, 0x49, 0x31, 0x33, 0x36, 0x7a, 0x31, 0x43, 0x32, 0x4f, 0x56, 0x6e, 0x5a, 0x4f, 0x7a, 0x32, 0x6e, 0x78, 0x62, 0x6b, 0x52, 0x73, 0x31, 0x43, 0x54, 0x71, 0x6a, 0x53, 0x53, 0x68, 0x0a, 0x47, 0x4c, 0x2b, 0x39, 0x56, 0x2f, 0x36, 0x70, 0x6d, 0x54, 0x57, 0x31, 0x32, 0x78, 0x42, 0x33, 0x75, 0x44, 0x31, 0x49, 0x75, 0x74, 0x62, 0x42, 0x35, 0x2f, 0x45, 0x6a, 0x50, 0x74, 0x66, 0x66, 0x68, 0x5a, 0x30, 0x6e, 0x50, 0x4e, 0x52, 0x41, 0x76, 0x51, 0x6f, 0x4d, 0x76, 0x66, 0x58, 0x6e, 0x6a, 0x53, 0x58, 0x57, 0x67, 0x58, 0x53, 0x48, 0x52, 0x74, 0x51, 0x70, 0x64, 0x61, 0x4a, 0x43, 0x62, 0x50, 0x64, 0x7a, 0x69, 0x65, 0x64, 0x39, 0x76, 0x33, 0x70, 0x4b, 0x0a, 0x48, 0x39, 0x4d, 0x69, 0x79, 0x52, 0x56, 0x56, 0x7a, 0x39, 0x39, 0x76, 0x66, 0x46, 0x58, 0x51, 0x70, 0x49, 0x73, 0x48, 0x45, 0x54, 0x64, 0x66, 0x67, 0x36, 0x59, 0x6d, 0x56, 0x36, 0x59, 0x42, 0x57, 0x33, 0x37, 0x2b, 0x57, 0x47, 0x67, 0x48, 0x71, 0x65, 0x6c, 0x36, 0x32, 0x62, 0x6e, 0x6f, 0x2f, 0x31, 0x41, 0x66, 0x71, 0x38, 0x4b, 0x30, 0x77, 0x4d, 0x37, 0x6f, 0x36, 0x76, 0x30, 0x50, 0x76, 0x59, 0x31, 0x4e, 0x75, 0x4c, 0x78, 0x78, 0x41, 0x67, 0x4d, 0x42, 0x0a, 0x41, 0x41, 0x47, 0x6a, 0x51, 0x6a, 0x42, 0x41, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x54, 0x46, 0x37, 0x2b, 0x33, 0x4d, 0x32, 0x49, 0x30, 0x68, 0x78, 0x6b, 0x6a, 0x6b, 0x34, 0x39, 0x63, 0x55, 0x4c, 0x71, 0x63, 0x57, 0x6b, 0x2b, 0x57, 0x59, 0x41, 0x54, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x41, 0x34, 0x47, 0x0a, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x42, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x45, 0x41, 0x55, 0x6f, 0x4b, 0x73, 0x49, 0x54, 0x51, 0x66, 0x49, 0x2f, 0x4b, 0x69, 0x32, 0x50, 0x6d, 0x34, 0x72, 0x7a, 0x63, 0x32, 0x49, 0x49, 0x6e, 0x52, 0x4e, 0x77, 0x50, 0x57, 0x61, 0x5a, 0x2b, 0x34, 0x0a, 0x59, 0x52, 0x43, 0x36, 0x6f, 0x6a, 0x47, 0x59, 0x57, 0x55, 0x66, 0x6f, 0x30, 0x51, 0x30, 0x6c, 0x48, 0x68, 0x56, 0x42, 0x44, 0x4f, 0x41, 0x71, 0x56, 0x64, 0x56, 0x58, 0x55, 0x73, 0x76, 0x34, 0x35, 0x4d, 0x64, 0x70, 0x6f, 0x78, 0x31, 0x4e, 0x63, 0x51, 0x4a, 0x65, 0x58, 0x79, 0x46, 0x46, 0x59, 0x45, 0x68, 0x63, 0x43, 0x59, 0x35, 0x4a, 0x45, 0x4d, 0x45, 0x45, 0x33, 0x4b, 0x6c, 0x69, 0x61, 0x77, 0x4c, 0x77, 0x51, 0x38, 0x68, 0x4f, 0x6e, 0x54, 0x68, 0x4a, 0x0a, 0x64, 0x4d, 0x6b, 0x79, 0x63, 0x46, 0x52, 0x74, 0x77, 0x55, 0x66, 0x38, 0x6a, 0x72, 0x51, 0x32, 0x6e, 0x74, 0x53, 0x63, 0x76, 0x64, 0x30, 0x67, 0x31, 0x6c, 0x50, 0x4a, 0x47, 0x4b, 0x6d, 0x31, 0x56, 0x72, 0x6c, 0x32, 0x69, 0x35, 0x56, 0x6e, 0x5a, 0x75, 0x36, 0x39, 0x6d, 0x50, 0x36, 0x75, 0x37, 0x37, 0x35, 0x75, 0x2b, 0x32, 0x44, 0x32, 0x2f, 0x56, 0x6e, 0x47, 0x4b, 0x68, 0x73, 0x2f, 0x49, 0x30, 0x71, 0x55, 0x4a, 0x44, 0x41, 0x6e, 0x79, 0x49, 0x6d, 0x38, 0x0a, 0x36, 0x30, 0x51, 0x6b, 0x6d, 0x73, 0x73, 0x39, 0x76, 0x6b, 0x2f, 0x56, 0x65, 0x73, 0x36, 0x4f, 0x46, 0x38, 0x74, 0x69, 0x77, 0x64, 0x6e, 0x65, 0x48, 0x67, 0x35, 0x36, 0x2f, 0x30, 0x4f, 0x47, 0x4e, 0x46, 0x4b, 0x38, 0x59, 0x54, 0x38, 0x38, 0x58, 0x37, 0x76, 0x5a, 0x64, 0x72, 0x52, 0x54, 0x76, 0x4a, 0x65, 0x7a, 0x2f, 0x6f, 0x70, 0x4d, 0x45, 0x69, 0x34, 0x72, 0x38, 0x39, 0x66, 0x4f, 0x34, 0x61, 0x4c, 0x2f, 0x33, 0x58, 0x74, 0x77, 0x2b, 0x7a, 0x75, 0x68, 0x0a, 0x54, 0x61, 0x52, 0x6a, 0x41, 0x76, 0x30, 0x34, 0x6c, 0x35, 0x55, 0x2f, 0x42, 0x58, 0x43, 0x67, 0x61, 0x39, 0x39, 0x69, 0x67, 0x55, 0x4f, 0x4c, 0x74, 0x46, 0x6b, 0x4e, 0x53, 0x6f, 0x78, 0x55, 0x6e, 0x4d, 0x57, 0x37, 0x67, 0x5a, 0x2f, 0x4e, 0x66, 0x61, 0x58, 0x76, 0x43, 0x79, 0x55, 0x65, 0x4f, 0x69, 0x44, 0x62, 0x48, 0x50, 0x77, 0x66, 0x6d, 0x47, 0x63, 0x43, 0x43, 0x74, 0x52, 0x7a, 0x52, 0x42, 0x50, 0x62, 0x55, 0x59, 0x51, 0x61, 0x56, 0x51, 0x4e, 0x57, 0x0a, 0x34, 0x41, 0x42, 0x2b, 0x64, 0x41, 0x62, 0x2f, 0x4f, 0x4d, 0x52, 0x79, 0x48, 0x64, 0x4f, 0x6f, 0x50, 0x32, 0x67, 0x78, 0x58, 0x64, 0x4d, 0x4a, 0x78, 0x79, 0x36, 0x4d, 0x57, 0x32, 0x50, 0x67, 0x36, 0x4e, 0x77, 0x65, 0x30, 0x75, 0x78, 0x68, 0x48, 0x76, 0x4c, 0x65, 0x35, 0x65, 0x2f, 0x32, 0x6d, 0x58, 0x5a, 0x67, 0x4c, 0x52, 0x36, 0x55, 0x63, 0x6e, 0x48, 0x47, 0x43, 0x79, 0x6f, 0x79, 0x78, 0x35, 0x4a, 0x4f, 0x31, 0x55, 0x62, 0x58, 0x48, 0x66, 0x6d, 0x70, 0x0a, 0x47, 0x51, 0x72, 0x49, 0x2b, 0x70, 0x58, 0x4f, 0x62, 0x53, 0x4f, 0x59, 0x71, 0x67, 0x73, 0x34, 0x72, 0x5a, 0x70, 0x57, 0x44, 0x57, 0x2b, 0x4e, 0x38, 0x54, 0x45, 0x41, 0x69, 0x4d, 0x45, 0x58, 0x6e, 0x4d, 0x30, 0x5a, 0x4e, 0x6a, 0x58, 0x2b, 0x56, 0x56, 0x4f, 0x67, 0x34, 0x44, 0x77, 0x7a, 0x58, 0x35, 0x5a, 0x65, 0x34, 0x6a, 0x4c, 0x70, 0x33, 0x7a, 0x4f, 0x37, 0x42, 0x6b, 0x71, 0x70, 0x32, 0x49, 0x52, 0x7a, 0x7a, 0x6e, 0x66, 0x53, 0x78, 0x71, 0x78, 0x78, 0x0a, 0x34, 0x56, 0x79, 0x6a, 0x48, 0x51, 0x79, 0x37, 0x43, 0x74, 0x39, 0x66, 0x34, 0x71, 0x4e, 0x78, 0x32, 0x4e, 0x6f, 0x33, 0x57, 0x71, 0x42, 0x34, 0x4b, 0x2f, 0x54, 0x55, 0x66, 0x65, 0x74, 0x32, 0x37, 0x66, 0x4a, 0x68, 0x63, 0x4b, 0x56, 0x6c, 0x6d, 0x74, 0x4f, 0x4a, 0x4e, 0x42, 0x69, 0x72, 0x2b, 0x33, 0x49, 0x2b, 0x31, 0x37, 0x51, 0x39, 0x65, 0x56, 0x7a, 0x59, 0x48, 0x36, 0x45, 0x7a, 0x65, 0x39, 0x6d, 0x43, 0x55, 0x41, 0x79, 0x54, 0x46, 0x36, 0x70, 0x73, 0x0a, 0x33, 0x4d, 0x4b, 0x43, 0x75, 0x77, 0x4a, 0x58, 0x4e, 0x71, 0x2b, 0x59, 0x4a, 0x79, 0x6f, 0x35, 0x55, 0x4f, 0x47, 0x77, 0x69, 0x66, 0x55, 0x6c, 0x6c, 0x33, 0x35, 0x48, 0x61, 0x42, 0x43, 0x30, 0x37, 0x48, 0x50, 0x4b, 0x73, 0x35, 0x66, 0x52, 0x4a, 0x4e, 0x7a, 0x32, 0x59, 0x71, 0x41, 0x6f, 0x30, 0x37, 0x57, 0x6a, 0x75, 0x47, 0x53, 0x33, 0x69, 0x47, 0x4a, 0x43, 0x7a, 0x35, 0x31, 0x54, 0x7a, 0x5a, 0x6d, 0x2b, 0x5a, 0x47, 0x69, 0x50, 0x54, 0x78, 0x34, 0x53, 0x0a, 0x53, 0x50, 0x66, 0x53, 0x4b, 0x63, 0x4f, 0x59, 0x4b, 0x4d, 0x72, 0x79, 0x4d, 0x67, 0x75, 0x54, 0x6a, 0x43, 0x6c, 0x50, 0x50, 0x47, 0x41, 0x79, 0x7a, 0x51, 0x57, 0x57, 0x59, 0x65, 0x7a, 0x79, 0x72, 0x2f, 0x36, 0x7a, 0x63, 0x43, 0x77, 0x75, 0x70, 0x76, 0x49, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x42, 0x4a, 0x43, 0x41, 0x20, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x32, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x4a, 0x54, 0x43, 0x43, 0x41, 0x61, 0x75, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x4c, 0x42, 0x63, 0x49, 0x66, 0x57, 0x51, 0x71, 0x77, 0x50, 0x36, 0x46, 0x47, 0x46, 0x6b, 0x47, 0x7a, 0x37, 0x52, 0x4b, 0x36, 0x7a, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x7a, 0x42, 0x55, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x44, 0x0a, 0x54, 0x6a, 0x45, 0x6d, 0x4d, 0x43, 0x51, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x64, 0x51, 0x6b, 0x56, 0x4a, 0x53, 0x6b, 0x6c, 0x4f, 0x52, 0x79, 0x42, 0x44, 0x52, 0x56, 0x4a, 0x55, 0x53, 0x55, 0x5a, 0x4a, 0x51, 0x30, 0x46, 0x55, 0x52, 0x53, 0x42, 0x42, 0x56, 0x56, 0x52, 0x49, 0x54, 0x31, 0x4a, 0x4a, 0x56, 0x46, 0x6b, 0x78, 0x48, 0x54, 0x41, 0x62, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x46, 0x45, 0x4a, 0x4b, 0x51, 0x30, 0x45, 0x67, 0x0a, 0x52, 0x32, 0x78, 0x76, 0x59, 0x6d, 0x46, 0x73, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x79, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x45, 0x35, 0x4d, 0x54, 0x49, 0x78, 0x4f, 0x54, 0x41, 0x7a, 0x4d, 0x54, 0x67, 0x79, 0x4d, 0x56, 0x6f, 0x58, 0x44, 0x54, 0x51, 0x30, 0x4d, 0x54, 0x49, 0x78, 0x4d, 0x6a, 0x41, 0x7a, 0x4d, 0x54, 0x67, 0x79, 0x4d, 0x56, 0x6f, 0x77, 0x56, 0x44, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x0a, 0x42, 0x68, 0x4d, 0x43, 0x51, 0x30, 0x34, 0x78, 0x4a, 0x6a, 0x41, 0x6b, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x48, 0x55, 0x4a, 0x46, 0x53, 0x55, 0x70, 0x4a, 0x54, 0x6b, 0x63, 0x67, 0x51, 0x30, 0x56, 0x53, 0x56, 0x45, 0x6c, 0x47, 0x53, 0x55, 0x4e, 0x42, 0x56, 0x45, 0x55, 0x67, 0x51, 0x56, 0x56, 0x55, 0x53, 0x45, 0x39, 0x53, 0x53, 0x56, 0x52, 0x5a, 0x4d, 0x52, 0x30, 0x77, 0x47, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x44, 0x42, 0x52, 0x43, 0x0a, 0x53, 0x6b, 0x4e, 0x42, 0x49, 0x45, 0x64, 0x73, 0x62, 0x32, 0x4a, 0x68, 0x62, 0x43, 0x42, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x45, 0x4e, 0x42, 0x4d, 0x6a, 0x42, 0x32, 0x4d, 0x42, 0x41, 0x47, 0x42, 0x79, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x41, 0x67, 0x45, 0x47, 0x42, 0x53, 0x75, 0x42, 0x42, 0x41, 0x41, 0x69, 0x41, 0x32, 0x49, 0x41, 0x42, 0x4a, 0x33, 0x4c, 0x67, 0x4a, 0x47, 0x4e, 0x55, 0x32, 0x65, 0x31, 0x75, 0x56, 0x43, 0x78, 0x41, 0x2f, 0x6a, 0x6c, 0x0a, 0x53, 0x52, 0x39, 0x42, 0x49, 0x67, 0x6d, 0x77, 0x55, 0x56, 0x4a, 0x59, 0x31, 0x69, 0x73, 0x30, 0x6a, 0x38, 0x55, 0x53, 0x52, 0x68, 0x54, 0x46, 0x69, 0x79, 0x38, 0x73, 0x68, 0x50, 0x38, 0x73, 0x62, 0x71, 0x6a, 0x56, 0x38, 0x51, 0x6e, 0x6a, 0x41, 0x79, 0x45, 0x55, 0x78, 0x45, 0x4d, 0x39, 0x66, 0x4d, 0x45, 0x73, 0x78, 0x45, 0x74, 0x71, 0x53, 0x73, 0x33, 0x70, 0x68, 0x2b, 0x42, 0x39, 0x39, 0x69, 0x4b, 0x2b, 0x2b, 0x6b, 0x70, 0x52, 0x75, 0x44, 0x43, 0x4b, 0x0a, 0x2f, 0x65, 0x48, 0x65, 0x47, 0x42, 0x49, 0x4b, 0x39, 0x6b, 0x65, 0x33, 0x35, 0x78, 0x65, 0x2f, 0x4a, 0x34, 0x72, 0x55, 0x51, 0x55, 0x79, 0x57, 0x50, 0x47, 0x43, 0x57, 0x77, 0x66, 0x30, 0x56, 0x48, 0x4b, 0x4e, 0x43, 0x4d, 0x45, 0x41, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x4e, 0x4a, 0x4b, 0x73, 0x56, 0x46, 0x2f, 0x42, 0x76, 0x44, 0x52, 0x67, 0x68, 0x39, 0x4f, 0x62, 0x6c, 0x2b, 0x72, 0x67, 0x2f, 0x78, 0x49, 0x0a, 0x31, 0x4c, 0x43, 0x52, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x45, 0x47, 0x4d, 0x41, 0x6f, 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x42, 0x41, 0x4d, 0x44, 0x41, 0x32, 0x67, 0x41, 0x4d, 0x47, 0x55, 0x43, 0x4d, 0x42, 0x71, 0x38, 0x0a, 0x57, 0x39, 0x66, 0x2b, 0x71, 0x64, 0x4a, 0x55, 0x44, 0x6b, 0x70, 0x64, 0x30, 0x6d, 0x32, 0x78, 0x51, 0x4e, 0x7a, 0x30, 0x51, 0x39, 0x58, 0x53, 0x53, 0x70, 0x6b, 0x5a, 0x45, 0x6c, 0x61, 0x41, 0x39, 0x34, 0x4d, 0x30, 0x34, 0x54, 0x56, 0x4f, 0x53, 0x47, 0x30, 0x45, 0x44, 0x31, 0x63, 0x78, 0x4d, 0x44, 0x41, 0x74, 0x73, 0x61, 0x71, 0x64, 0x41, 0x7a, 0x6a, 0x62, 0x42, 0x67, 0x49, 0x78, 0x41, 0x4d, 0x76, 0x4d, 0x68, 0x31, 0x50, 0x4c, 0x65, 0x74, 0x38, 0x67, 0x0a, 0x55, 0x58, 0x4f, 0x51, 0x77, 0x4b, 0x68, 0x62, 0x59, 0x64, 0x44, 0x46, 0x55, 0x44, 0x6e, 0x39, 0x68, 0x66, 0x37, 0x42, 0x34, 0x33, 0x6a, 0x34, 0x70, 0x74, 0x5a, 0x4c, 0x76, 0x5a, 0x75, 0x48, 0x6a, 0x77, 0x2f, 0x6c, 0x31, 0x6c, 0x4f, 0x57, 0x71, 0x7a, 0x7a, 0x49, 0x51, 0x4e, 0x70, 0x68, 0x39, 0x31, 0x4f, 0x6a, 0x39, 0x77, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x53, 0x65, 0x63, 0x74, 0x69, 0x67, 0x6f, 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x45, 0x34, 0x36, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x4f, 0x6a, 0x43, 0x43, 0x41, 0x63, 0x47, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x51, 0x76, 0x4c, 0x4d, 0x32, 0x68, 0x74, 0x70, 0x4e, 0x30, 0x52, 0x66, 0x46, 0x66, 0x35, 0x31, 0x4b, 0x42, 0x43, 0x34, 0x39, 0x44, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x7a, 0x42, 0x66, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x48, 0x0a, 0x51, 0x6a, 0x45, 0x59, 0x4d, 0x42, 0x59, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x50, 0x55, 0x32, 0x56, 0x6a, 0x64, 0x47, 0x6c, 0x6e, 0x62, 0x79, 0x42, 0x4d, 0x61, 0x57, 0x31, 0x70, 0x64, 0x47, 0x56, 0x6b, 0x4d, 0x54, 0x59, 0x77, 0x4e, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x79, 0x31, 0x54, 0x5a, 0x57, 0x4e, 0x30, 0x61, 0x57, 0x64, 0x76, 0x49, 0x46, 0x42, 0x31, 0x59, 0x6d, 0x78, 0x70, 0x59, 0x79, 0x42, 0x54, 0x5a, 0x58, 0x4a, 0x32, 0x0a, 0x5a, 0x58, 0x49, 0x67, 0x51, 0x58, 0x56, 0x30, 0x61, 0x47, 0x56, 0x75, 0x64, 0x47, 0x6c, 0x6a, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x34, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x46, 0x4e, 0x44, 0x59, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x6a, 0x45, 0x77, 0x4d, 0x7a, 0x49, 0x79, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x68, 0x63, 0x4e, 0x4e, 0x44, 0x59, 0x77, 0x4d, 0x7a, 0x49, 0x78, 0x4d, 0x6a, 0x4d, 0x31, 0x4f, 0x54, 0x55, 0x35, 0x0a, 0x57, 0x6a, 0x42, 0x66, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x48, 0x51, 0x6a, 0x45, 0x59, 0x4d, 0x42, 0x59, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x50, 0x55, 0x32, 0x56, 0x6a, 0x64, 0x47, 0x6c, 0x6e, 0x62, 0x79, 0x42, 0x4d, 0x61, 0x57, 0x31, 0x70, 0x64, 0x47, 0x56, 0x6b, 0x4d, 0x54, 0x59, 0x77, 0x4e, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x79, 0x31, 0x54, 0x5a, 0x57, 0x4e, 0x30, 0x0a, 0x61, 0x57, 0x64, 0x76, 0x49, 0x46, 0x42, 0x31, 0x59, 0x6d, 0x78, 0x70, 0x59, 0x79, 0x42, 0x54, 0x5a, 0x58, 0x4a, 0x32, 0x5a, 0x58, 0x49, 0x67, 0x51, 0x58, 0x56, 0x30, 0x61, 0x47, 0x56, 0x75, 0x64, 0x47, 0x6c, 0x6a, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x34, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x46, 0x4e, 0x44, 0x59, 0x77, 0x64, 0x6a, 0x41, 0x51, 0x42, 0x67, 0x63, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x49, 0x42, 0x42, 0x67, 0x55, 0x72, 0x0a, 0x67, 0x51, 0x51, 0x41, 0x49, 0x67, 0x4e, 0x69, 0x41, 0x41, 0x52, 0x32, 0x2b, 0x70, 0x6d, 0x70, 0x62, 0x69, 0x44, 0x74, 0x2b, 0x64, 0x64, 0x33, 0x34, 0x77, 0x63, 0x37, 0x71, 0x4e, 0x73, 0x39, 0x58, 0x7a, 0x6a, 0x6f, 0x71, 0x31, 0x57, 0x6d, 0x56, 0x6b, 0x2f, 0x57, 0x53, 0x4f, 0x72, 0x73, 0x66, 0x79, 0x32, 0x71, 0x77, 0x37, 0x4c, 0x46, 0x65, 0x65, 0x79, 0x5a, 0x59, 0x58, 0x38, 0x51, 0x65, 0x63, 0x63, 0x43, 0x57, 0x76, 0x6b, 0x45, 0x4e, 0x2f, 0x55, 0x30, 0x0a, 0x4e, 0x53, 0x74, 0x33, 0x7a, 0x6e, 0x38, 0x67, 0x6a, 0x31, 0x4b, 0x6a, 0x41, 0x49, 0x6e, 0x73, 0x31, 0x61, 0x65, 0x69, 0x62, 0x56, 0x76, 0x6a, 0x53, 0x35, 0x4b, 0x54, 0x6f, 0x49, 0x44, 0x31, 0x41, 0x5a, 0x54, 0x63, 0x38, 0x47, 0x67, 0x48, 0x48, 0x73, 0x33, 0x75, 0x2f, 0x69, 0x56, 0x53, 0x74, 0x53, 0x42, 0x44, 0x48, 0x42, 0x76, 0x2b, 0x36, 0x78, 0x6e, 0x4f, 0x51, 0x36, 0x4f, 0x6a, 0x51, 0x6a, 0x42, 0x41, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x0a, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x54, 0x52, 0x49, 0x74, 0x70, 0x4d, 0x57, 0x66, 0x46, 0x4c, 0x58, 0x79, 0x59, 0x34, 0x71, 0x70, 0x33, 0x57, 0x37, 0x75, 0x73, 0x4e, 0x77, 0x2f, 0x75, 0x70, 0x59, 0x54, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x59, 0x59, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x0a, 0x2f, 0x7a, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x77, 0x4e, 0x6e, 0x41, 0x44, 0x42, 0x6b, 0x41, 0x6a, 0x41, 0x6e, 0x37, 0x71, 0x52, 0x61, 0x71, 0x43, 0x47, 0x37, 0x36, 0x55, 0x65, 0x58, 0x6c, 0x49, 0x6d, 0x6c, 0x64, 0x43, 0x42, 0x74, 0x65, 0x55, 0x2f, 0x49, 0x76, 0x5a, 0x4e, 0x65, 0x57, 0x42, 0x6a, 0x37, 0x4c, 0x52, 0x6f, 0x41, 0x61, 0x73, 0x6d, 0x34, 0x50, 0x64, 0x43, 0x6b, 0x54, 0x30, 0x52, 0x48, 0x0a, 0x6c, 0x41, 0x46, 0x57, 0x6f, 0x76, 0x67, 0x7a, 0x4a, 0x51, 0x78, 0x43, 0x33, 0x36, 0x6f, 0x43, 0x4d, 0x42, 0x33, 0x71, 0x34, 0x53, 0x36, 0x49, 0x4c, 0x75, 0x48, 0x35, 0x70, 0x78, 0x30, 0x43, 0x4d, 0x6b, 0x37, 0x79, 0x6e, 0x32, 0x78, 0x56, 0x64, 0x4f, 0x4f, 0x75, 0x72, 0x76, 0x75, 0x6c, 0x47, 0x75, 0x37, 0x74, 0x30, 0x76, 0x7a, 0x43, 0x41, 0x78, 0x48, 0x72, 0x52, 0x56, 0x78, 0x67, 0x45, 0x44, 0x31, 0x63, 0x66, 0x35, 0x6b, 0x44, 0x57, 0x32, 0x31, 0x55, 0x0a, 0x53, 0x41, 0x47, 0x4b, 0x63, 0x77, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x53, 0x65, 0x63, 0x74, 0x69, 0x67, 0x6f, 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x52, 0x34, 0x36, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x69, 0x6a, 0x43, 0x43, 0x41, 0x33, 0x4b, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x64, 0x59, 0x33, 0x39, 0x69, 0x36, 0x35, 0x38, 0x42, 0x77, 0x44, 0x36, 0x71, 0x53, 0x57, 0x6e, 0x34, 0x63, 0x65, 0x74, 0x46, 0x44, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x77, 0x46, 0x41, 0x44, 0x42, 0x66, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x0a, 0x45, 0x77, 0x4a, 0x48, 0x51, 0x6a, 0x45, 0x59, 0x4d, 0x42, 0x59, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x50, 0x55, 0x32, 0x56, 0x6a, 0x64, 0x47, 0x6c, 0x6e, 0x62, 0x79, 0x42, 0x4d, 0x61, 0x57, 0x31, 0x70, 0x64, 0x47, 0x56, 0x6b, 0x4d, 0x54, 0x59, 0x77, 0x4e, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x79, 0x31, 0x54, 0x5a, 0x57, 0x4e, 0x30, 0x61, 0x57, 0x64, 0x76, 0x49, 0x46, 0x42, 0x31, 0x59, 0x6d, 0x78, 0x70, 0x59, 0x79, 0x42, 0x54, 0x0a, 0x5a, 0x58, 0x4a, 0x32, 0x5a, 0x58, 0x49, 0x67, 0x51, 0x58, 0x56, 0x30, 0x61, 0x47, 0x56, 0x75, 0x64, 0x47, 0x6c, 0x6a, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x34, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x53, 0x4e, 0x44, 0x59, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x6a, 0x45, 0x77, 0x4d, 0x7a, 0x49, 0x79, 0x4d, 0x44, 0x41, 0x77, 0x4d, 0x44, 0x41, 0x77, 0x57, 0x68, 0x63, 0x4e, 0x4e, 0x44, 0x59, 0x77, 0x4d, 0x7a, 0x49, 0x78, 0x4d, 0x6a, 0x4d, 0x31, 0x0a, 0x4f, 0x54, 0x55, 0x35, 0x57, 0x6a, 0x42, 0x66, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x48, 0x51, 0x6a, 0x45, 0x59, 0x4d, 0x42, 0x59, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x68, 0x4d, 0x50, 0x55, 0x32, 0x56, 0x6a, 0x64, 0x47, 0x6c, 0x6e, 0x62, 0x79, 0x42, 0x4d, 0x61, 0x57, 0x31, 0x70, 0x64, 0x47, 0x56, 0x6b, 0x4d, 0x54, 0x59, 0x77, 0x4e, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x45, 0x79, 0x31, 0x54, 0x0a, 0x5a, 0x57, 0x4e, 0x30, 0x61, 0x57, 0x64, 0x76, 0x49, 0x46, 0x42, 0x31, 0x59, 0x6d, 0x78, 0x70, 0x59, 0x79, 0x42, 0x54, 0x5a, 0x58, 0x4a, 0x32, 0x5a, 0x58, 0x49, 0x67, 0x51, 0x58, 0x56, 0x30, 0x61, 0x47, 0x56, 0x75, 0x64, 0x47, 0x6c, 0x6a, 0x59, 0x58, 0x52, 0x70, 0x62, 0x32, 0x34, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x53, 0x4e, 0x44, 0x59, 0x77, 0x67, 0x67, 0x49, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x0a, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x49, 0x4b, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x43, 0x54, 0x76, 0x74, 0x55, 0x32, 0x55, 0x6e, 0x58, 0x59, 0x41, 0x53, 0x4f, 0x67, 0x48, 0x45, 0x64, 0x43, 0x53, 0x65, 0x35, 0x6a, 0x74, 0x72, 0x63, 0x68, 0x2f, 0x63, 0x53, 0x56, 0x31, 0x55, 0x67, 0x72, 0x4a, 0x6e, 0x77, 0x55, 0x55, 0x78, 0x44, 0x61, 0x65, 0x66, 0x30, 0x72, 0x74, 0x79, 0x32, 0x6b, 0x0a, 0x31, 0x43, 0x7a, 0x36, 0x36, 0x6a, 0x4c, 0x64, 0x53, 0x63, 0x4b, 0x35, 0x76, 0x51, 0x39, 0x49, 0x50, 0x58, 0x74, 0x61, 0x6d, 0x46, 0x53, 0x76, 0x6e, 0x6c, 0x30, 0x78, 0x64, 0x45, 0x38, 0x48, 0x2f, 0x46, 0x41, 0x68, 0x33, 0x61, 0x54, 0x50, 0x61, 0x45, 0x38, 0x62, 0x45, 0x6d, 0x4e, 0x74, 0x4a, 0x5a, 0x6c, 0x4d, 0x4b, 0x70, 0x6e, 0x7a, 0x53, 0x44, 0x42, 0x68, 0x2b, 0x6f, 0x46, 0x38, 0x48, 0x71, 0x63, 0x49, 0x53, 0x74, 0x77, 0x2b, 0x4b, 0x78, 0x77, 0x66, 0x0a, 0x47, 0x45, 0x78, 0x78, 0x71, 0x6a, 0x57, 0x4d, 0x72, 0x66, 0x68, 0x75, 0x36, 0x44, 0x74, 0x4b, 0x32, 0x65, 0x57, 0x55, 0x41, 0x74, 0x61, 0x4a, 0x68, 0x42, 0x4f, 0x71, 0x62, 0x63, 0x68, 0x50, 0x4d, 0x38, 0x78, 0x51, 0x6c, 0x6a, 0x65, 0x53, 0x4d, 0x39, 0x78, 0x66, 0x69, 0x4f, 0x65, 0x66, 0x56, 0x4e, 0x6c, 0x49, 0x38, 0x4a, 0x68, 0x44, 0x31, 0x6d, 0x62, 0x39, 0x6e, 0x78, 0x63, 0x34, 0x51, 0x38, 0x55, 0x42, 0x55, 0x51, 0x76, 0x58, 0x34, 0x79, 0x4d, 0x50, 0x0a, 0x46, 0x46, 0x31, 0x62, 0x46, 0x4f, 0x64, 0x4c, 0x76, 0x74, 0x33, 0x30, 0x79, 0x4e, 0x6f, 0x44, 0x4e, 0x39, 0x48, 0x57, 0x4f, 0x61, 0x45, 0x68, 0x55, 0x54, 0x43, 0x44, 0x73, 0x47, 0x33, 0x58, 0x4d, 0x45, 0x36, 0x57, 0x57, 0x35, 0x48, 0x77, 0x63, 0x43, 0x53, 0x72, 0x76, 0x30, 0x57, 0x42, 0x5a, 0x45, 0x4d, 0x4e, 0x76, 0x53, 0x45, 0x36, 0x4c, 0x7a, 0x7a, 0x70, 0x6e, 0x67, 0x33, 0x4c, 0x49, 0x4c, 0x56, 0x43, 0x4a, 0x38, 0x7a, 0x61, 0x62, 0x35, 0x76, 0x75, 0x0a, 0x5a, 0x44, 0x43, 0x51, 0x4f, 0x63, 0x32, 0x54, 0x5a, 0x59, 0x45, 0x68, 0x4d, 0x62, 0x55, 0x6a, 0x55, 0x44, 0x4d, 0x33, 0x49, 0x75, 0x4d, 0x34, 0x37, 0x66, 0x67, 0x78, 0x4d, 0x4d, 0x78, 0x46, 0x2f, 0x6d, 0x4c, 0x35, 0x30, 0x56, 0x30, 0x79, 0x65, 0x55, 0x4b, 0x48, 0x33, 0x32, 0x72, 0x4d, 0x56, 0x68, 0x6c, 0x41, 0x54, 0x63, 0x36, 0x71, 0x75, 0x2f, 0x6d, 0x31, 0x64, 0x6b, 0x6d, 0x55, 0x38, 0x53, 0x66, 0x34, 0x6b, 0x61, 0x57, 0x44, 0x35, 0x51, 0x61, 0x7a, 0x0a, 0x59, 0x77, 0x36, 0x41, 0x33, 0x4f, 0x41, 0x53, 0x56, 0x59, 0x43, 0x6d, 0x4f, 0x32, 0x61, 0x30, 0x4f, 0x59, 0x63, 0x74, 0x79, 0x50, 0x44, 0x51, 0x30, 0x52, 0x54, 0x70, 0x35, 0x41, 0x31, 0x4e, 0x44, 0x76, 0x5a, 0x64, 0x56, 0x33, 0x4c, 0x46, 0x4f, 0x78, 0x78, 0x48, 0x56, 0x70, 0x33, 0x69, 0x31, 0x66, 0x75, 0x42, 0x59, 0x59, 0x7a, 0x4d, 0x54, 0x59, 0x43, 0x51, 0x4e, 0x46, 0x75, 0x33, 0x31, 0x78, 0x52, 0x31, 0x33, 0x4e, 0x67, 0x45, 0x53, 0x4a, 0x2f, 0x41, 0x0a, 0x77, 0x53, 0x69, 0x49, 0x74, 0x4f, 0x6b, 0x63, 0x79, 0x71, 0x65, 0x78, 0x38, 0x56, 0x61, 0x33, 0x65, 0x30, 0x6c, 0x4d, 0x57, 0x65, 0x55, 0x67, 0x46, 0x61, 0x69, 0x45, 0x41, 0x69, 0x6e, 0x36, 0x4f, 0x4a, 0x52, 0x70, 0x6d, 0x6b, 0x6b, 0x47, 0x6a, 0x38, 0x30, 0x66, 0x65, 0x52, 0x51, 0x58, 0x45, 0x67, 0x79, 0x44, 0x65, 0x74, 0x34, 0x66, 0x73, 0x5a, 0x66, 0x75, 0x2b, 0x5a, 0x64, 0x34, 0x4b, 0x4b, 0x54, 0x49, 0x52, 0x4a, 0x4c, 0x70, 0x66, 0x53, 0x59, 0x46, 0x0a, 0x70, 0x6c, 0x68, 0x79, 0x6d, 0x33, 0x6b, 0x54, 0x32, 0x42, 0x46, 0x66, 0x72, 0x73, 0x55, 0x34, 0x59, 0x6a, 0x52, 0x6f, 0x73, 0x6f, 0x59, 0x77, 0x6a, 0x76, 0x69, 0x51, 0x59, 0x5a, 0x34, 0x79, 0x62, 0x50, 0x55, 0x48, 0x4e, 0x73, 0x32, 0x69, 0x54, 0x47, 0x37, 0x73, 0x69, 0x6a, 0x62, 0x74, 0x38, 0x75, 0x61, 0x5a, 0x46, 0x55, 0x52, 0x77, 0x77, 0x33, 0x79, 0x38, 0x6e, 0x44, 0x6e, 0x41, 0x74, 0x4f, 0x46, 0x72, 0x39, 0x34, 0x4d, 0x6c, 0x49, 0x31, 0x66, 0x5a, 0x0a, 0x45, 0x6f, 0x44, 0x6c, 0x53, 0x66, 0x42, 0x31, 0x44, 0x2b, 0x2b, 0x4e, 0x36, 0x78, 0x79, 0x62, 0x56, 0x43, 0x69, 0x30, 0x49, 0x54, 0x7a, 0x38, 0x66, 0x41, 0x72, 0x2f, 0x37, 0x33, 0x74, 0x72, 0x64, 0x66, 0x2b, 0x4c, 0x48, 0x61, 0x41, 0x5a, 0x42, 0x61, 0x76, 0x36, 0x2b, 0x43, 0x75, 0x42, 0x51, 0x75, 0x67, 0x34, 0x75, 0x72, 0x76, 0x37, 0x71, 0x76, 0x30, 0x39, 0x34, 0x50, 0x50, 0x4b, 0x33, 0x30, 0x36, 0x58, 0x6c, 0x79, 0x6e, 0x74, 0x38, 0x78, 0x68, 0x57, 0x0a, 0x36, 0x61, 0x57, 0x57, 0x72, 0x4c, 0x33, 0x44, 0x6b, 0x4a, 0x69, 0x79, 0x34, 0x50, 0x6d, 0x69, 0x31, 0x4b, 0x5a, 0x48, 0x51, 0x33, 0x78, 0x74, 0x7a, 0x77, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x56, 0x6e, 0x4e, 0x59, 0x5a, 0x4a, 0x58, 0x35, 0x6b, 0x68, 0x71, 0x77, 0x45, 0x69, 0x6f, 0x45, 0x59, 0x6e, 0x6d, 0x68, 0x51, 0x42, 0x57, 0x49, 0x0a, 0x49, 0x55, 0x6b, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x47, 0x47, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4d, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x42, 0x41, 0x43, 0x39, 0x63, 0x0a, 0x6d, 0x54, 0x7a, 0x38, 0x42, 0x6c, 0x36, 0x4d, 0x6c, 0x43, 0x35, 0x77, 0x36, 0x74, 0x49, 0x79, 0x4d, 0x59, 0x32, 0x30, 0x38, 0x46, 0x48, 0x56, 0x76, 0x41, 0x72, 0x7a, 0x5a, 0x4a, 0x38, 0x48, 0x58, 0x74, 0x58, 0x42, 0x63, 0x32, 0x68, 0x6b, 0x65, 0x71, 0x4b, 0x35, 0x44, 0x75, 0x6a, 0x35, 0x58, 0x59, 0x55, 0x74, 0x71, 0x44, 0x64, 0x46, 0x71, 0x69, 0x6a, 0x30, 0x6c, 0x67, 0x56, 0x51, 0x59, 0x4b, 0x6c, 0x4a, 0x66, 0x70, 0x2f, 0x69, 0x6d, 0x54, 0x59, 0x70, 0x0a, 0x45, 0x30, 0x52, 0x48, 0x61, 0x70, 0x31, 0x56, 0x49, 0x44, 0x7a, 0x59, 0x6d, 0x2f, 0x45, 0x44, 0x4d, 0x72, 0x72, 0x61, 0x51, 0x4b, 0x46, 0x7a, 0x36, 0x6f, 0x4f, 0x68, 0x74, 0x30, 0x53, 0x6d, 0x44, 0x70, 0x6b, 0x42, 0x6d, 0x2b, 0x53, 0x38, 0x66, 0x37, 0x34, 0x54, 0x6c, 0x48, 0x37, 0x4b, 0x70, 0x68, 0x35, 0x32, 0x67, 0x44, 0x59, 0x39, 0x68, 0x41, 0x61, 0x4c, 0x4d, 0x79, 0x5a, 0x6c, 0x62, 0x63, 0x70, 0x2b, 0x6e, 0x76, 0x34, 0x66, 0x6a, 0x46, 0x67, 0x34, 0x0a, 0x65, 0x78, 0x71, 0x44, 0x73, 0x51, 0x2b, 0x38, 0x46, 0x78, 0x47, 0x37, 0x35, 0x67, 0x62, 0x4d, 0x59, 0x2f, 0x71, 0x42, 0x38, 0x6f, 0x46, 0x4d, 0x32, 0x67, 0x73, 0x51, 0x61, 0x36, 0x48, 0x36, 0x31, 0x53, 0x69, 0x6c, 0x7a, 0x77, 0x5a, 0x41, 0x46, 0x76, 0x39, 0x37, 0x66, 0x52, 0x68, 0x65, 0x4f, 0x52, 0x4b, 0x6b, 0x55, 0x35, 0x35, 0x2b, 0x4d, 0x6b, 0x49, 0x51, 0x70, 0x69, 0x47, 0x52, 0x71, 0x52, 0x78, 0x4f, 0x46, 0x33, 0x79, 0x45, 0x76, 0x4a, 0x2b, 0x4d, 0x0a, 0x30, 0x65, 0x6a, 0x66, 0x35, 0x6c, 0x47, 0x35, 0x4e, 0x6b, 0x63, 0x2f, 0x6b, 0x4c, 0x6e, 0x48, 0x76, 0x41, 0x4c, 0x63, 0x57, 0x78, 0x78, 0x50, 0x44, 0x6b, 0x6a, 0x42, 0x4a, 0x59, 0x4f, 0x63, 0x43, 0x6a, 0x2b, 0x65, 0x73, 0x51, 0x4d, 0x7a, 0x45, 0x68, 0x6f, 0x6e, 0x72, 0x50, 0x63, 0x69, 0x62, 0x43, 0x54, 0x52, 0x41, 0x55, 0x48, 0x34, 0x57, 0x41, 0x50, 0x2b, 0x4a, 0x57, 0x67, 0x69, 0x48, 0x35, 0x70, 0x61, 0x50, 0x48, 0x78, 0x73, 0x6e, 0x6e, 0x56, 0x49, 0x0a, 0x38, 0x34, 0x48, 0x78, 0x5a, 0x6d, 0x64, 0x75, 0x54, 0x49, 0x4c, 0x41, 0x37, 0x72, 0x70, 0x58, 0x44, 0x68, 0x6a, 0x76, 0x4c, 0x70, 0x72, 0x33, 0x45, 0x74, 0x69, 0x67, 0x61, 0x2b, 0x6b, 0x46, 0x70, 0x61, 0x48, 0x70, 0x61, 0x50, 0x69, 0x38, 0x54, 0x44, 0x38, 0x53, 0x48, 0x6b, 0x58, 0x6f, 0x55, 0x73, 0x43, 0x6a, 0x76, 0x78, 0x49, 0x6e, 0x65, 0x62, 0x6e, 0x4d, 0x4d, 0x54, 0x7a, 0x44, 0x39, 0x6a, 0x6f, 0x69, 0x46, 0x67, 0x4f, 0x67, 0x79, 0x59, 0x39, 0x6d, 0x0a, 0x70, 0x46, 0x75, 0x69, 0x54, 0x64, 0x61, 0x42, 0x4a, 0x51, 0x62, 0x70, 0x64, 0x71, 0x51, 0x41, 0x43, 0x6a, 0x37, 0x4c, 0x7a, 0x54, 0x57, 0x62, 0x34, 0x4f, 0x45, 0x34, 0x79, 0x32, 0x42, 0x54, 0x68, 0x69, 0x68, 0x43, 0x51, 0x52, 0x78, 0x45, 0x56, 0x2b, 0x69, 0x6f, 0x72, 0x61, 0x74, 0x46, 0x34, 0x79, 0x55, 0x51, 0x76, 0x4e, 0x73, 0x2b, 0x5a, 0x55, 0x48, 0x37, 0x47, 0x36, 0x61, 0x58, 0x44, 0x2b, 0x75, 0x35, 0x64, 0x48, 0x6e, 0x35, 0x48, 0x72, 0x77, 0x64, 0x0a, 0x56, 0x77, 0x31, 0x48, 0x72, 0x38, 0x4d, 0x76, 0x6e, 0x34, 0x64, 0x47, 0x70, 0x2b, 0x73, 0x6d, 0x57, 0x67, 0x39, 0x57, 0x59, 0x37, 0x56, 0x69, 0x59, 0x47, 0x34, 0x41, 0x2b, 0x2b, 0x4d, 0x6e, 0x45, 0x53, 0x4c, 0x6e, 0x2f, 0x70, 0x6d, 0x50, 0x4e, 0x50, 0x57, 0x35, 0x36, 0x4d, 0x4f, 0x52, 0x63, 0x72, 0x33, 0x59, 0x77, 0x78, 0x36, 0x35, 0x4c, 0x76, 0x4b, 0x52, 0x52, 0x46, 0x48, 0x51, 0x56, 0x38, 0x30, 0x4d, 0x4e, 0x4e, 0x56, 0x49, 0x49, 0x62, 0x2f, 0x62, 0x0a, 0x45, 0x2f, 0x46, 0x6d, 0x4a, 0x55, 0x4e, 0x53, 0x30, 0x6e, 0x41, 0x69, 0x4e, 0x73, 0x32, 0x66, 0x78, 0x42, 0x78, 0x31, 0x49, 0x4b, 0x31, 0x6a, 0x63, 0x6d, 0x4d, 0x47, 0x44, 0x77, 0x34, 0x6e, 0x7a, 0x74, 0x4a, 0x71, 0x44, 0x62, 0x79, 0x31, 0x4f, 0x52, 0x72, 0x70, 0x30, 0x58, 0x5a, 0x36, 0x30, 0x56, 0x7a, 0x6b, 0x35, 0x30, 0x6c, 0x4a, 0x4c, 0x56, 0x55, 0x33, 0x61, 0x50, 0x41, 0x61, 0x4f, 0x70, 0x67, 0x2b, 0x56, 0x42, 0x65, 0x48, 0x56, 0x4f, 0x6d, 0x6d, 0x0a, 0x4a, 0x31, 0x43, 0x4a, 0x65, 0x79, 0x41, 0x76, 0x50, 0x2f, 0x2b, 0x2f, 0x6f, 0x59, 0x74, 0x4b, 0x52, 0x35, 0x6a, 0x2f, 0x4b, 0x33, 0x74, 0x4a, 0x50, 0x73, 0x4d, 0x70, 0x52, 0x6d, 0x41, 0x59, 0x51, 0x71, 0x73, 0x7a, 0x4b, 0x62, 0x72, 0x41, 0x4b, 0x62, 0x6b, 0x54, 0x69, 0x64, 0x4f, 0x49, 0x69, 0x6a, 0x6c, 0x42, 0x4f, 0x38, 0x6e, 0x39, 0x70, 0x75, 0x30, 0x66, 0x39, 0x47, 0x42, 0x6a, 0x33, 0x39, 0x49, 0x74, 0x56, 0x51, 0x47, 0x4c, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x53, 0x53, 0x4c, 0x2e, 0x63, 0x6f, 0x6d, 0x20, 0x54, 0x4c, 0x53, 0x20, 0x52, 0x53, 0x41, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x32, 0x30, 0x32, 0x32, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x69, 0x54, 0x43, 0x43, 0x41, 0x33, 0x47, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x62, 0x37, 0x37, 0x61, 0x72, 0x58, 0x4f, 0x39, 0x43, 0x45, 0x44, 0x69, 0x69, 0x30, 0x32, 0x2b, 0x31, 0x50, 0x64, 0x62, 0x6b, 0x54, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x44, 0x42, 0x4f, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x0a, 0x45, 0x77, 0x4a, 0x56, 0x55, 0x7a, 0x45, 0x59, 0x4d, 0x42, 0x59, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x50, 0x55, 0x31, 0x4e, 0x4d, 0x49, 0x45, 0x4e, 0x76, 0x63, 0x6e, 0x42, 0x76, 0x63, 0x6d, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x4d, 0x53, 0x55, 0x77, 0x49, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x44, 0x42, 0x78, 0x54, 0x55, 0x30, 0x77, 0x75, 0x59, 0x32, 0x39, 0x74, 0x49, 0x46, 0x52, 0x4d, 0x55, 0x79, 0x42, 0x53, 0x55, 0x30, 0x45, 0x67, 0x0a, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x51, 0x53, 0x41, 0x79, 0x4d, 0x44, 0x49, 0x79, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x49, 0x79, 0x4d, 0x44, 0x67, 0x79, 0x4e, 0x54, 0x45, 0x32, 0x4d, 0x7a, 0x51, 0x79, 0x4d, 0x6c, 0x6f, 0x58, 0x44, 0x54, 0x51, 0x32, 0x4d, 0x44, 0x67, 0x78, 0x4f, 0x54, 0x45, 0x32, 0x4d, 0x7a, 0x51, 0x79, 0x4d, 0x56, 0x6f, 0x77, 0x54, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x0a, 0x56, 0x56, 0x4d, 0x78, 0x47, 0x44, 0x41, 0x57, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x44, 0x31, 0x4e, 0x54, 0x54, 0x43, 0x42, 0x44, 0x62, 0x33, 0x4a, 0x77, 0x62, 0x33, 0x4a, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x6a, 0x45, 0x6c, 0x4d, 0x43, 0x4d, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x77, 0x77, 0x63, 0x55, 0x31, 0x4e, 0x4d, 0x4c, 0x6d, 0x4e, 0x76, 0x62, 0x53, 0x42, 0x55, 0x54, 0x46, 0x4d, 0x67, 0x55, 0x6c, 0x4e, 0x42, 0x49, 0x46, 0x4a, 0x76, 0x0a, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x67, 0x4d, 0x6a, 0x41, 0x79, 0x4d, 0x6a, 0x43, 0x43, 0x41, 0x69, 0x49, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x50, 0x41, 0x44, 0x43, 0x43, 0x41, 0x67, 0x6f, 0x43, 0x67, 0x67, 0x49, 0x42, 0x41, 0x4e, 0x43, 0x6b, 0x43, 0x58, 0x4a, 0x50, 0x51, 0x49, 0x67, 0x53, 0x59, 0x54, 0x34, 0x31, 0x49, 0x35, 0x37, 0x75, 0x0a, 0x39, 0x6e, 0x54, 0x50, 0x4c, 0x33, 0x74, 0x59, 0x50, 0x63, 0x34, 0x38, 0x44, 0x52, 0x41, 0x6f, 0x6b, 0x43, 0x2b, 0x58, 0x39, 0x34, 0x78, 0x49, 0x32, 0x4b, 0x44, 0x59, 0x4a, 0x62, 0x46, 0x4d, 0x73, 0x42, 0x46, 0x4d, 0x46, 0x33, 0x4e, 0x51, 0x30, 0x43, 0x4a, 0x4b, 0x59, 0x37, 0x75, 0x42, 0x30, 0x79, 0x6c, 0x75, 0x31, 0x62, 0x55, 0x4a, 0x50, 0x69, 0x59, 0x59, 0x66, 0x37, 0x49, 0x53, 0x66, 0x35, 0x4f, 0x59, 0x74, 0x36, 0x2f, 0x77, 0x4e, 0x72, 0x2f, 0x79, 0x0a, 0x37, 0x68, 0x69, 0x65, 0x6e, 0x44, 0x74, 0x53, 0x78, 0x55, 0x63, 0x5a, 0x58, 0x58, 0x54, 0x7a, 0x5a, 0x47, 0x62, 0x56, 0x58, 0x63, 0x64, 0x6f, 0x74, 0x4c, 0x38, 0x62, 0x48, 0x41, 0x61, 0x6a, 0x76, 0x49, 0x39, 0x41, 0x49, 0x37, 0x59, 0x65, 0x78, 0x6f, 0x53, 0x39, 0x55, 0x63, 0x51, 0x62, 0x4f, 0x63, 0x47, 0x56, 0x30, 0x69, 0x6e, 0x73, 0x53, 0x36, 0x35, 0x37, 0x4c, 0x62, 0x38, 0x35, 0x2f, 0x62, 0x52, 0x69, 0x33, 0x70, 0x5a, 0x37, 0x51, 0x63, 0x61, 0x63, 0x0a, 0x6f, 0x4f, 0x41, 0x47, 0x63, 0x76, 0x76, 0x77, 0x42, 0x35, 0x63, 0x4a, 0x4f, 0x59, 0x46, 0x30, 0x72, 0x2f, 0x63, 0x30, 0x57, 0x52, 0x46, 0x58, 0x43, 0x73, 0x4a, 0x62, 0x77, 0x53, 0x54, 0x30, 0x4d, 0x58, 0x4d, 0x77, 0x67, 0x73, 0x61, 0x64, 0x75, 0x67, 0x4c, 0x33, 0x50, 0x6e, 0x78, 0x45, 0x58, 0x34, 0x4d, 0x4e, 0x38, 0x2f, 0x48, 0x64, 0x49, 0x47, 0x6b, 0x57, 0x43, 0x56, 0x44, 0x69, 0x31, 0x46, 0x57, 0x32, 0x34, 0x49, 0x42, 0x79, 0x64, 0x6d, 0x35, 0x4d, 0x0a, 0x52, 0x37, 0x64, 0x31, 0x56, 0x56, 0x6d, 0x30, 0x55, 0x33, 0x54, 0x5a, 0x6c, 0x4d, 0x5a, 0x42, 0x72, 0x56, 0x69, 0x4b, 0x4d, 0x57, 0x59, 0x50, 0x48, 0x71, 0x49, 0x62, 0x4b, 0x55, 0x42, 0x4f, 0x4c, 0x39, 0x39, 0x37, 0x35, 0x68, 0x59, 0x73, 0x4c, 0x66, 0x79, 0x2f, 0x37, 0x50, 0x4f, 0x30, 0x2b, 0x72, 0x34, 0x59, 0x39, 0x70, 0x74, 0x4a, 0x31, 0x4f, 0x34, 0x46, 0x62, 0x74, 0x6b, 0x30, 0x38, 0x35, 0x7a, 0x78, 0x37, 0x41, 0x47, 0x4c, 0x30, 0x53, 0x44, 0x47, 0x0a, 0x44, 0x36, 0x43, 0x31, 0x76, 0x42, 0x64, 0x4f, 0x53, 0x48, 0x74, 0x52, 0x77, 0x76, 0x7a, 0x70, 0x58, 0x47, 0x6b, 0x33, 0x52, 0x32, 0x61, 0x7a, 0x61, 0x50, 0x67, 0x56, 0x4b, 0x50, 0x43, 0x35, 0x30, 0x36, 0x51, 0x56, 0x7a, 0x46, 0x70, 0x50, 0x75, 0x6c, 0x4a, 0x77, 0x6f, 0x78, 0x4a, 0x46, 0x33, 0x63, 0x61, 0x36, 0x54, 0x76, 0x76, 0x43, 0x30, 0x50, 0x65, 0x6f, 0x55, 0x69, 0x64, 0x74, 0x62, 0x6e, 0x6d, 0x31, 0x6a, 0x50, 0x78, 0x37, 0x6a, 0x4d, 0x45, 0x57, 0x0a, 0x54, 0x4f, 0x36, 0x41, 0x66, 0x37, 0x37, 0x77, 0x64, 0x72, 0x35, 0x42, 0x55, 0x78, 0x49, 0x7a, 0x72, 0x6c, 0x6f, 0x34, 0x51, 0x71, 0x76, 0x58, 0x44, 0x7a, 0x35, 0x42, 0x6a, 0x58, 0x59, 0x48, 0x4d, 0x74, 0x57, 0x72, 0x69, 0x66, 0x5a, 0x4f, 0x5a, 0x39, 0x6d, 0x78, 0x51, 0x6e, 0x55, 0x6a, 0x62, 0x76, 0x50, 0x4e, 0x51, 0x72, 0x4c, 0x38, 0x56, 0x66, 0x56, 0x54, 0x68, 0x78, 0x63, 0x37, 0x77, 0x44, 0x4e, 0x59, 0x38, 0x56, 0x4c, 0x53, 0x2b, 0x59, 0x43, 0x6b, 0x0a, 0x38, 0x4f, 0x6a, 0x77, 0x4f, 0x34, 0x73, 0x34, 0x7a, 0x4b, 0x54, 0x47, 0x6b, 0x48, 0x38, 0x50, 0x6e, 0x50, 0x32, 0x4c, 0x30, 0x61, 0x50, 0x50, 0x32, 0x6f, 0x4f, 0x6e, 0x61, 0x63, 0x6c, 0x51, 0x4e, 0x74, 0x56, 0x63, 0x42, 0x64, 0x49, 0x4b, 0x51, 0x58, 0x54, 0x62, 0x59, 0x78, 0x45, 0x33, 0x77, 0x61, 0x57, 0x67, 0x6c, 0x6b, 0x73, 0x65, 0x6a, 0x42, 0x59, 0x53, 0x64, 0x36, 0x36, 0x55, 0x4e, 0x48, 0x73, 0x65, 0x66, 0x38, 0x4a, 0x6d, 0x41, 0x4f, 0x53, 0x71, 0x0a, 0x67, 0x2b, 0x71, 0x4b, 0x6b, 0x4b, 0x33, 0x4f, 0x4e, 0x6b, 0x52, 0x4e, 0x30, 0x56, 0x48, 0x70, 0x76, 0x42, 0x2f, 0x7a, 0x61, 0x67, 0x58, 0x39, 0x77, 0x48, 0x51, 0x66, 0x4a, 0x52, 0x6c, 0x41, 0x55, 0x57, 0x37, 0x71, 0x67, 0x6c, 0x46, 0x41, 0x33, 0x35, 0x75, 0x35, 0x43, 0x43, 0x6f, 0x47, 0x41, 0x74, 0x55, 0x6a, 0x48, 0x42, 0x50, 0x57, 0x36, 0x64, 0x76, 0x62, 0x78, 0x72, 0x42, 0x36, 0x79, 0x33, 0x73, 0x6e, 0x6d, 0x2f, 0x76, 0x67, 0x31, 0x55, 0x59, 0x6b, 0x0a, 0x37, 0x52, 0x42, 0x4c, 0x59, 0x30, 0x75, 0x6c, 0x42, 0x59, 0x2b, 0x36, 0x75, 0x42, 0x30, 0x72, 0x70, 0x76, 0x71, 0x52, 0x34, 0x70, 0x4a, 0x53, 0x76, 0x65, 0x7a, 0x72, 0x5a, 0x35, 0x64, 0x74, 0x6d, 0x69, 0x32, 0x66, 0x67, 0x54, 0x49, 0x46, 0x5a, 0x7a, 0x4c, 0x37, 0x53, 0x41, 0x67, 0x2f, 0x32, 0x53, 0x57, 0x34, 0x42, 0x43, 0x55, 0x76, 0x41, 0x67, 0x4d, 0x42, 0x41, 0x41, 0x47, 0x6a, 0x59, 0x7a, 0x42, 0x68, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x0a, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x48, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x6a, 0x42, 0x42, 0x67, 0x77, 0x46, 0x6f, 0x41, 0x55, 0x2b, 0x79, 0x34, 0x33, 0x37, 0x75, 0x4f, 0x45, 0x65, 0x69, 0x63, 0x75, 0x7a, 0x52, 0x6b, 0x31, 0x73, 0x54, 0x4e, 0x38, 0x2f, 0x39, 0x52, 0x45, 0x51, 0x72, 0x6b, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x50, 0x73, 0x75, 0x0a, 0x4e, 0x2b, 0x37, 0x6a, 0x68, 0x48, 0x6f, 0x6e, 0x4c, 0x73, 0x30, 0x5a, 0x4e, 0x62, 0x45, 0x7a, 0x66, 0x50, 0x2f, 0x55, 0x52, 0x45, 0x4b, 0x35, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x68, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x73, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x45, 0x41, 0x6a, 0x59, 0x6c, 0x74, 0x0a, 0x68, 0x45, 0x55, 0x59, 0x38, 0x55, 0x2b, 0x7a, 0x6f, 0x4f, 0x39, 0x6f, 0x70, 0x4d, 0x41, 0x64, 0x72, 0x44, 0x43, 0x38, 0x5a, 0x32, 0x61, 0x77, 0x6d, 0x73, 0x32, 0x32, 0x71, 0x79, 0x49, 0x5a, 0x5a, 0x74, 0x4d, 0x37, 0x51, 0x62, 0x55, 0x51, 0x6e, 0x52, 0x43, 0x36, 0x63, 0x6d, 0x34, 0x70, 0x4a, 0x43, 0x41, 0x63, 0x41, 0x5a, 0x6c, 0x69, 0x30, 0x35, 0x62, 0x67, 0x34, 0x76, 0x73, 0x4d, 0x51, 0x74, 0x66, 0x68, 0x57, 0x73, 0x53, 0x57, 0x54, 0x56, 0x54, 0x4e, 0x0a, 0x6a, 0x38, 0x70, 0x44, 0x55, 0x2f, 0x30, 0x71, 0x75, 0x4f, 0x72, 0x34, 0x5a, 0x63, 0x6f, 0x42, 0x77, 0x71, 0x31, 0x67, 0x61, 0x41, 0x61, 0x66, 0x4f, 0x52, 0x70, 0x52, 0x32, 0x65, 0x43, 0x4e, 0x4a, 0x76, 0x6b, 0x4c, 0x54, 0x71, 0x56, 0x54, 0x4a, 0x58, 0x6f, 0x6a, 0x70, 0x42, 0x7a, 0x4f, 0x43, 0x42, 0x76, 0x66, 0x52, 0x34, 0x69, 0x79, 0x72, 0x54, 0x37, 0x67, 0x4a, 0x34, 0x65, 0x4c, 0x53, 0x59, 0x77, 0x66, 0x71, 0x55, 0x64, 0x59, 0x65, 0x35, 0x62, 0x79, 0x0a, 0x69, 0x42, 0x30, 0x59, 0x72, 0x72, 0x50, 0x52, 0x70, 0x67, 0x71, 0x55, 0x2b, 0x74, 0x76, 0x54, 0x35, 0x54, 0x67, 0x4b, 0x61, 0x33, 0x6b, 0x53, 0x4d, 0x2f, 0x74, 0x4b, 0x57, 0x54, 0x63, 0x57, 0x51, 0x41, 0x36, 0x37, 0x33, 0x76, 0x57, 0x4a, 0x44, 0x50, 0x46, 0x73, 0x30, 0x2f, 0x64, 0x52, 0x61, 0x31, 0x34, 0x31, 0x39, 0x64, 0x76, 0x41, 0x4a, 0x75, 0x6f, 0x53, 0x63, 0x30, 0x36, 0x70, 0x6b, 0x5a, 0x43, 0x6d, 0x46, 0x38, 0x4e, 0x73, 0x4c, 0x7a, 0x6a, 0x55, 0x0a, 0x6f, 0x33, 0x4b, 0x55, 0x51, 0x79, 0x78, 0x69, 0x34, 0x55, 0x35, 0x63, 0x4d, 0x6a, 0x32, 0x39, 0x54, 0x48, 0x30, 0x5a, 0x52, 0x36, 0x4c, 0x44, 0x53, 0x65, 0x65, 0x57, 0x50, 0x34, 0x2b, 0x61, 0x30, 0x7a, 0x76, 0x6b, 0x45, 0x64, 0x69, 0x4c, 0x41, 0x39, 0x7a, 0x32, 0x74, 0x6d, 0x42, 0x56, 0x47, 0x4b, 0x61, 0x42, 0x55, 0x66, 0x50, 0x68, 0x71, 0x42, 0x56, 0x71, 0x36, 0x2b, 0x41, 0x4c, 0x38, 0x42, 0x51, 0x78, 0x31, 0x72, 0x6d, 0x4d, 0x52, 0x54, 0x71, 0x6f, 0x0a, 0x45, 0x4e, 0x6a, 0x77, 0x75, 0x53, 0x66, 0x72, 0x39, 0x38, 0x74, 0x36, 0x37, 0x77, 0x56, 0x79, 0x6c, 0x72, 0x58, 0x45, 0x6a, 0x35, 0x5a, 0x7a, 0x78, 0x4f, 0x68, 0x57, 0x63, 0x35, 0x79, 0x38, 0x61, 0x56, 0x46, 0x6a, 0x76, 0x4f, 0x39, 0x6e, 0x48, 0x45, 0x4d, 0x61, 0x58, 0x33, 0x63, 0x5a, 0x48, 0x78, 0x6a, 0x34, 0x48, 0x43, 0x55, 0x70, 0x2b, 0x55, 0x6d, 0x5a, 0x4b, 0x62, 0x61, 0x53, 0x50, 0x61, 0x4b, 0x44, 0x4e, 0x37, 0x45, 0x67, 0x6b, 0x61, 0x69, 0x62, 0x0a, 0x4d, 0x4f, 0x6c, 0x71, 0x62, 0x4c, 0x51, 0x6a, 0x6b, 0x32, 0x55, 0x45, 0x71, 0x78, 0x48, 0x7a, 0x44, 0x68, 0x31, 0x54, 0x4a, 0x45, 0x6c, 0x54, 0x48, 0x61, 0x45, 0x2f, 0x6e, 0x55, 0x69, 0x53, 0x45, 0x65, 0x4a, 0x39, 0x44, 0x55, 0x2f, 0x31, 0x31, 0x37, 0x32, 0x69, 0x57, 0x44, 0x35, 0x34, 0x6e, 0x52, 0x34, 0x66, 0x4b, 0x2f, 0x34, 0x68, 0x75, 0x78, 0x6f, 0x54, 0x74, 0x72, 0x45, 0x6f, 0x5a, 0x50, 0x32, 0x77, 0x41, 0x67, 0x44, 0x48, 0x62, 0x49, 0x43, 0x69, 0x0a, 0x76, 0x52, 0x5a, 0x51, 0x49, 0x41, 0x39, 0x79, 0x67, 0x56, 0x2f, 0x4d, 0x6c, 0x50, 0x2b, 0x37, 0x6d, 0x65, 0x61, 0x36, 0x6b, 0x4d, 0x76, 0x71, 0x2b, 0x63, 0x59, 0x4d, 0x77, 0x71, 0x37, 0x46, 0x47, 0x63, 0x34, 0x7a, 0x6f, 0x57, 0x74, 0x63, 0x75, 0x33, 0x35, 0x38, 0x4e, 0x46, 0x63, 0x58, 0x72, 0x66, 0x41, 0x2f, 0x72, 0x73, 0x33, 0x71, 0x72, 0x35, 0x6e, 0x73, 0x4c, 0x46, 0x52, 0x2b, 0x6a, 0x4d, 0x34, 0x75, 0x45, 0x6c, 0x5a, 0x49, 0x37, 0x78, 0x63, 0x37, 0x0a, 0x50, 0x30, 0x70, 0x65, 0x59, 0x4e, 0x4c, 0x63, 0x64, 0x44, 0x61, 0x38, 0x70, 0x55, 0x4e, 0x6a, 0x79, 0x77, 0x39, 0x62, 0x6f, 0x77, 0x4a, 0x57, 0x43, 0x5a, 0x34, 0x6b, 0x4c, 0x4f, 0x47, 0x47, 0x67, 0x59, 0x7a, 0x2b, 0x71, 0x78, 0x63, 0x73, 0x2b, 0x73, 0x6a, 0x69, 0x4d, 0x68, 0x6f, 0x36, 0x2f, 0x34, 0x55, 0x49, 0x79, 0x59, 0x4f, 0x66, 0x38, 0x6b, 0x70, 0x49, 0x45, 0x46, 0x52, 0x33, 0x4e, 0x2b, 0x32, 0x69, 0x76, 0x45, 0x43, 0x2b, 0x35, 0x42, 0x42, 0x30, 0x0a, 0x39, 0x2b, 0x52, 0x62, 0x75, 0x37, 0x6e, 0x7a, 0x69, 0x66, 0x6d, 0x50, 0x51, 0x64, 0x6a, 0x48, 0x35, 0x46, 0x43, 0x51, 0x4e, 0x59, 0x41, 0x2b, 0x48, 0x4c, 0x68, 0x4e, 0x6b, 0x4e, 0x50, 0x55, 0x39, 0x38, 0x4f, 0x77, 0x6f, 0x58, 0x36, 0x45, 0x79, 0x6e, 0x65, 0x53, 0x4d, 0x53, 0x79, 0x34, 0x6b, 0x4c, 0x47, 0x43, 0x65, 0x6e, 0x52, 0x4f, 0x6d, 0x78, 0x4d, 0x6d, 0x74, 0x4e, 0x56, 0x51, 0x5a, 0x6c, 0x52, 0x34, 0x72, 0x6d, 0x41, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x53, 0x53, 0x4c, 0x2e, 0x63, 0x6f, 0x6d, 0x20, 0x54, 0x4c, 0x53, 0x20, 0x45, 0x43, 0x43, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x32, 0x30, 0x32, 0x32, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x4f, 0x6a, 0x43, 0x43, 0x41, 0x63, 0x43, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x46, 0x41, 0x50, 0x31, 0x71, 0x2f, 0x73, 0x33, 0x69, 0x78, 0x64, 0x41, 0x57, 0x2b, 0x4a, 0x44, 0x73, 0x71, 0x58, 0x52, 0x78, 0x44, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x7a, 0x42, 0x4f, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x56, 0x0a, 0x55, 0x7a, 0x45, 0x59, 0x4d, 0x42, 0x59, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x50, 0x55, 0x31, 0x4e, 0x4d, 0x49, 0x45, 0x4e, 0x76, 0x63, 0x6e, 0x42, 0x76, 0x63, 0x6d, 0x46, 0x30, 0x61, 0x57, 0x39, 0x75, 0x4d, 0x53, 0x55, 0x77, 0x49, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x44, 0x42, 0x78, 0x54, 0x55, 0x30, 0x77, 0x75, 0x59, 0x32, 0x39, 0x74, 0x49, 0x46, 0x52, 0x4d, 0x55, 0x79, 0x42, 0x46, 0x51, 0x30, 0x4d, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x0a, 0x64, 0x43, 0x42, 0x44, 0x51, 0x53, 0x41, 0x79, 0x4d, 0x44, 0x49, 0x79, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x49, 0x79, 0x4d, 0x44, 0x67, 0x79, 0x4e, 0x54, 0x45, 0x32, 0x4d, 0x7a, 0x4d, 0x30, 0x4f, 0x46, 0x6f, 0x58, 0x44, 0x54, 0x51, 0x32, 0x4d, 0x44, 0x67, 0x78, 0x4f, 0x54, 0x45, 0x32, 0x4d, 0x7a, 0x4d, 0x30, 0x4e, 0x31, 0x6f, 0x77, 0x54, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x0a, 0x47, 0x44, 0x41, 0x57, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x44, 0x31, 0x4e, 0x54, 0x54, 0x43, 0x42, 0x44, 0x62, 0x33, 0x4a, 0x77, 0x62, 0x33, 0x4a, 0x68, 0x64, 0x47, 0x6c, 0x76, 0x62, 0x6a, 0x45, 0x6c, 0x4d, 0x43, 0x4d, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x77, 0x77, 0x63, 0x55, 0x31, 0x4e, 0x4d, 0x4c, 0x6d, 0x4e, 0x76, 0x62, 0x53, 0x42, 0x55, 0x54, 0x46, 0x4d, 0x67, 0x52, 0x55, 0x4e, 0x44, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x0a, 0x51, 0x30, 0x45, 0x67, 0x4d, 0x6a, 0x41, 0x79, 0x4d, 0x6a, 0x42, 0x32, 0x4d, 0x42, 0x41, 0x47, 0x42, 0x79, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x41, 0x67, 0x45, 0x47, 0x42, 0x53, 0x75, 0x42, 0x42, 0x41, 0x41, 0x69, 0x41, 0x32, 0x49, 0x41, 0x42, 0x45, 0x55, 0x70, 0x4e, 0x58, 0x50, 0x36, 0x77, 0x72, 0x67, 0x6a, 0x7a, 0x68, 0x52, 0x39, 0x71, 0x4c, 0x46, 0x4e, 0x6f, 0x46, 0x73, 0x32, 0x37, 0x69, 0x6f, 0x73, 0x55, 0x38, 0x4e, 0x67, 0x43, 0x54, 0x57, 0x79, 0x0a, 0x4a, 0x47, 0x59, 0x6d, 0x61, 0x63, 0x43, 0x7a, 0x6c, 0x64, 0x5a, 0x64, 0x6b, 0x6b, 0x41, 0x5a, 0x44, 0x73, 0x61, 0x6c, 0x45, 0x33, 0x44, 0x30, 0x37, 0x78, 0x4a, 0x52, 0x4b, 0x46, 0x33, 0x6e, 0x7a, 0x4c, 0x33, 0x35, 0x50, 0x49, 0x58, 0x42, 0x7a, 0x35, 0x53, 0x51, 0x79, 0x53, 0x76, 0x4f, 0x6b, 0x6b, 0x4a, 0x59, 0x57, 0x57, 0x66, 0x39, 0x6c, 0x43, 0x63, 0x51, 0x5a, 0x49, 0x78, 0x50, 0x42, 0x4c, 0x46, 0x4e, 0x53, 0x65, 0x52, 0x37, 0x54, 0x35, 0x76, 0x31, 0x0a, 0x35, 0x77, 0x6a, 0x34, 0x41, 0x34, 0x6a, 0x33, 0x70, 0x38, 0x4f, 0x53, 0x53, 0x78, 0x6c, 0x55, 0x67, 0x61, 0x4e, 0x6a, 0x4d, 0x47, 0x45, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x66, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x53, 0x4d, 0x45, 0x47, 0x44, 0x41, 0x57, 0x67, 0x42, 0x53, 0x4a, 0x6a, 0x79, 0x2b, 0x6a, 0x36, 0x43, 0x75, 0x67, 0x46, 0x46, 0x52, 0x37, 0x0a, 0x38, 0x31, 0x61, 0x34, 0x4a, 0x6c, 0x39, 0x6e, 0x4f, 0x41, 0x75, 0x63, 0x30, 0x44, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x69, 0x59, 0x38, 0x76, 0x6f, 0x2b, 0x67, 0x72, 0x6f, 0x42, 0x52, 0x55, 0x65, 0x2f, 0x4e, 0x57, 0x75, 0x43, 0x5a, 0x66, 0x5a, 0x7a, 0x67, 0x4c, 0x6e, 0x4e, 0x41, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x47, 0x47, 0x0a, 0x4d, 0x41, 0x6f, 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x42, 0x41, 0x4d, 0x44, 0x41, 0x32, 0x67, 0x41, 0x4d, 0x47, 0x55, 0x43, 0x4d, 0x46, 0x58, 0x6a, 0x49, 0x6c, 0x62, 0x70, 0x31, 0x35, 0x49, 0x6b, 0x57, 0x45, 0x38, 0x65, 0x6c, 0x44, 0x49, 0x50, 0x44, 0x41, 0x49, 0x32, 0x77, 0x76, 0x32, 0x73, 0x64, 0x44, 0x4a, 0x4f, 0x34, 0x66, 0x73, 0x63, 0x67, 0x49, 0x69, 0x6a, 0x7a, 0x50, 0x76, 0x58, 0x36, 0x79, 0x76, 0x2f, 0x4e, 0x33, 0x33, 0x77, 0x0a, 0x37, 0x64, 0x65, 0x65, 0x64, 0x57, 0x6f, 0x31, 0x64, 0x6c, 0x4a, 0x46, 0x34, 0x41, 0x49, 0x78, 0x41, 0x4d, 0x65, 0x4e, 0x62, 0x30, 0x49, 0x67, 0x6a, 0x37, 0x36, 0x32, 0x54, 0x56, 0x6e, 0x74, 0x64, 0x30, 0x30, 0x70, 0x78, 0x43, 0x41, 0x67, 0x52, 0x57, 0x53, 0x47, 0x4f, 0x6c, 0x44, 0x47, 0x78, 0x4b, 0x30, 0x74, 0x6b, 0x2f, 0x55, 0x59, 0x66, 0x58, 0x4c, 0x74, 0x71, 0x63, 0x2f, 0x45, 0x72, 0x46, 0x63, 0x32, 0x4b, 0x41, 0x68, 0x6c, 0x33, 0x7a, 0x78, 0x35, 0x0a, 0x5a, 0x6e, 0x36, 0x67, 0x36, 0x67, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x41, 0x74, 0x6f, 0x73, 0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x45, 0x43, 0x43, 0x20, 0x54, 0x4c, 0x53, 0x20, 0x32, 0x30, 0x32, 0x31, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x46, 0x54, 0x43, 0x43, 0x41, 0x5a, 0x75, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x50, 0x5a, 0x67, 0x37, 0x70, 0x6d, 0x59, 0x39, 0x6b, 0x47, 0x50, 0x33, 0x66, 0x69, 0x5a, 0x58, 0x4f, 0x41, 0x54, 0x76, 0x41, 0x44, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x7a, 0x42, 0x4d, 0x4d, 0x53, 0x34, 0x77, 0x4c, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x44, 0x43, 0x56, 0x42, 0x0a, 0x64, 0x47, 0x39, 0x7a, 0x49, 0x46, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x5a, 0x57, 0x52, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x67, 0x52, 0x55, 0x4e, 0x44, 0x49, 0x46, 0x52, 0x4d, 0x55, 0x79, 0x41, 0x79, 0x4d, 0x44, 0x49, 0x78, 0x4d, 0x51, 0x30, 0x77, 0x43, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x41, 0x52, 0x42, 0x64, 0x47, 0x39, 0x7a, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x0a, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x45, 0x52, 0x54, 0x41, 0x65, 0x46, 0x77, 0x30, 0x79, 0x4d, 0x54, 0x41, 0x30, 0x4d, 0x6a, 0x49, 0x77, 0x4f, 0x54, 0x49, 0x32, 0x4d, 0x6a, 0x4e, 0x61, 0x46, 0x77, 0x30, 0x30, 0x4d, 0x54, 0x41, 0x30, 0x4d, 0x54, 0x63, 0x77, 0x4f, 0x54, 0x49, 0x32, 0x4d, 0x6a, 0x4a, 0x61, 0x4d, 0x45, 0x77, 0x78, 0x4c, 0x6a, 0x41, 0x73, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x4a, 0x55, 0x46, 0x30, 0x62, 0x33, 0x4d, 0x67, 0x0a, 0x56, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x52, 0x6c, 0x5a, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x51, 0x53, 0x42, 0x46, 0x51, 0x30, 0x4d, 0x67, 0x56, 0x45, 0x78, 0x54, 0x49, 0x44, 0x49, 0x77, 0x4d, 0x6a, 0x45, 0x78, 0x44, 0x54, 0x41, 0x4c, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x42, 0x45, 0x46, 0x30, 0x62, 0x33, 0x4d, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x0a, 0x41, 0x6b, 0x52, 0x46, 0x4d, 0x48, 0x59, 0x77, 0x45, 0x41, 0x59, 0x48, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x43, 0x41, 0x51, 0x59, 0x46, 0x4b, 0x34, 0x45, 0x45, 0x41, 0x43, 0x49, 0x44, 0x59, 0x67, 0x41, 0x45, 0x6c, 0x6f, 0x5a, 0x59, 0x4b, 0x44, 0x63, 0x4b, 0x5a, 0x39, 0x43, 0x67, 0x33, 0x69, 0x51, 0x5a, 0x47, 0x65, 0x48, 0x6b, 0x42, 0x51, 0x63, 0x66, 0x6c, 0x2b, 0x33, 0x6f, 0x5a, 0x49, 0x4b, 0x35, 0x39, 0x73, 0x52, 0x78, 0x55, 0x4d, 0x36, 0x4b, 0x0a, 0x44, 0x50, 0x2f, 0x58, 0x74, 0x58, 0x61, 0x37, 0x6f, 0x57, 0x79, 0x54, 0x62, 0x49, 0x4f, 0x69, 0x61, 0x47, 0x36, 0x6c, 0x32, 0x62, 0x34, 0x73, 0x69, 0x4a, 0x56, 0x42, 0x7a, 0x56, 0x33, 0x64, 0x73, 0x63, 0x71, 0x44, 0x59, 0x34, 0x50, 0x4d, 0x77, 0x4c, 0x35, 0x30, 0x32, 0x65, 0x43, 0x64, 0x70, 0x4f, 0x35, 0x4b, 0x54, 0x6c, 0x62, 0x67, 0x6d, 0x43, 0x6c, 0x42, 0x6b, 0x31, 0x49, 0x51, 0x31, 0x53, 0x51, 0x34, 0x41, 0x6a, 0x4a, 0x6e, 0x38, 0x5a, 0x51, 0x53, 0x0a, 0x62, 0x2b, 0x2f, 0x58, 0x78, 0x64, 0x34, 0x75, 0x2f, 0x52, 0x6d, 0x41, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x52, 0x32, 0x4b, 0x43, 0x58, 0x57, 0x66, 0x65, 0x42, 0x6d, 0x6d, 0x6e, 0x6f, 0x4a, 0x73, 0x6d, 0x6f, 0x37, 0x6a, 0x6a, 0x50, 0x58, 0x0a, 0x4e, 0x74, 0x4e, 0x50, 0x6f, 0x6a, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x59, 0x59, 0x77, 0x43, 0x67, 0x59, 0x49, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x45, 0x41, 0x77, 0x4d, 0x44, 0x61, 0x41, 0x41, 0x77, 0x5a, 0x51, 0x49, 0x77, 0x57, 0x35, 0x6b, 0x70, 0x38, 0x35, 0x77, 0x78, 0x74, 0x6f, 0x6c, 0x72, 0x62, 0x4e, 0x61, 0x39, 0x64, 0x2b, 0x46, 0x38, 0x35, 0x31, 0x46, 0x2b, 0x0a, 0x75, 0x44, 0x72, 0x4e, 0x6f, 0x7a, 0x5a, 0x66, 0x66, 0x50, 0x63, 0x38, 0x64, 0x7a, 0x37, 0x6b, 0x55, 0x4b, 0x32, 0x6f, 0x35, 0x39, 0x4a, 0x5a, 0x44, 0x43, 0x61, 0x4f, 0x4d, 0x44, 0x74, 0x75, 0x43, 0x43, 0x72, 0x43, 0x70, 0x31, 0x72, 0x49, 0x41, 0x6a, 0x45, 0x41, 0x6d, 0x65, 0x4d, 0x4d, 0x35, 0x36, 0x50, 0x44, 0x72, 0x39, 0x4e, 0x4a, 0x4c, 0x6b, 0x61, 0x43, 0x49, 0x32, 0x5a, 0x64, 0x79, 0x51, 0x41, 0x55, 0x45, 0x76, 0x30, 0x34, 0x39, 0x4f, 0x47, 0x59, 0x0a, 0x61, 0x33, 0x63, 0x70, 0x65, 0x74, 0x73, 0x6b, 0x7a, 0x32, 0x56, 0x41, 0x76, 0x39, 0x4c, 0x63, 0x6a, 0x42, 0x48, 0x6f, 0x39, 0x48, 0x31, 0x2f, 0x49, 0x49, 0x53, 0x70, 0x51, 0x75, 0x51, 0x6f, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x41, 0x74, 0x6f, 0x73, 0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x52, 0x53, 0x41, 0x20, 0x54, 0x4c, 0x53, 0x20, 0x32, 0x30, 0x32, 0x31, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x5a, 0x44, 0x43, 0x43, 0x41, 0x30, 0x79, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x55, 0x39, 0x58, 0x50, 0x35, 0x68, 0x6d, 0x54, 0x43, 0x2f, 0x73, 0x72, 0x42, 0x52, 0x4c, 0x59, 0x77, 0x69, 0x71, 0x69, 0x70, 0x44, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x77, 0x46, 0x41, 0x44, 0x42, 0x4d, 0x4d, 0x53, 0x34, 0x77, 0x4c, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x0a, 0x44, 0x43, 0x56, 0x42, 0x64, 0x47, 0x39, 0x7a, 0x49, 0x46, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x5a, 0x57, 0x52, 0x53, 0x62, 0x32, 0x39, 0x30, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x67, 0x55, 0x6c, 0x4e, 0x42, 0x49, 0x46, 0x52, 0x4d, 0x55, 0x79, 0x41, 0x79, 0x4d, 0x44, 0x49, 0x78, 0x4d, 0x51, 0x30, 0x77, 0x43, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x41, 0x52, 0x42, 0x64, 0x47, 0x39, 0x7a, 0x4d, 0x51, 0x73, 0x77, 0x0a, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x45, 0x52, 0x54, 0x41, 0x65, 0x46, 0x77, 0x30, 0x79, 0x4d, 0x54, 0x41, 0x30, 0x4d, 0x6a, 0x49, 0x77, 0x4f, 0x54, 0x49, 0x78, 0x4d, 0x54, 0x42, 0x61, 0x46, 0x77, 0x30, 0x30, 0x4d, 0x54, 0x41, 0x30, 0x4d, 0x54, 0x63, 0x77, 0x4f, 0x54, 0x49, 0x78, 0x4d, 0x44, 0x6c, 0x61, 0x4d, 0x45, 0x77, 0x78, 0x4c, 0x6a, 0x41, 0x73, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x4a, 0x55, 0x46, 0x30, 0x0a, 0x62, 0x33, 0x4d, 0x67, 0x56, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x52, 0x6c, 0x5a, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x51, 0x53, 0x42, 0x53, 0x55, 0x30, 0x45, 0x67, 0x56, 0x45, 0x78, 0x54, 0x49, 0x44, 0x49, 0x77, 0x4d, 0x6a, 0x45, 0x78, 0x44, 0x54, 0x41, 0x4c, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x42, 0x45, 0x46, 0x30, 0x62, 0x33, 0x4d, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x0a, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6b, 0x52, 0x46, 0x4d, 0x49, 0x49, 0x43, 0x49, 0x6a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x45, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x38, 0x41, 0x4d, 0x49, 0x49, 0x43, 0x43, 0x67, 0x4b, 0x43, 0x41, 0x67, 0x45, 0x41, 0x74, 0x6f, 0x41, 0x4f, 0x78, 0x48, 0x6d, 0x39, 0x42, 0x59, 0x78, 0x39, 0x73, 0x4b, 0x4f, 0x64, 0x54, 0x53, 0x4a, 0x4e, 0x79, 0x2f, 0x42, 0x42, 0x0a, 0x6c, 0x30, 0x31, 0x5a, 0x34, 0x4e, 0x48, 0x2b, 0x56, 0x6f, 0x79, 0x58, 0x38, 0x74, 0x65, 0x39, 0x6a, 0x32, 0x79, 0x33, 0x49, 0x34, 0x39, 0x66, 0x31, 0x63, 0x54, 0x59, 0x51, 0x63, 0x76, 0x79, 0x41, 0x68, 0x35, 0x78, 0x35, 0x65, 0x6e, 0x32, 0x58, 0x73, 0x73, 0x49, 0x4b, 0x6c, 0x34, 0x77, 0x38, 0x69, 0x31, 0x6d, 0x78, 0x34, 0x51, 0x62, 0x5a, 0x46, 0x63, 0x34, 0x6e, 0x58, 0x55, 0x74, 0x56, 0x73, 0x59, 0x76, 0x59, 0x65, 0x2b, 0x57, 0x2f, 0x43, 0x42, 0x47, 0x0a, 0x76, 0x65, 0x76, 0x55, 0x65, 0x7a, 0x38, 0x2f, 0x66, 0x45, 0x63, 0x34, 0x42, 0x4b, 0x6b, 0x62, 0x71, 0x6c, 0x4c, 0x66, 0x45, 0x7a, 0x66, 0x54, 0x46, 0x52, 0x56, 0x4f, 0x76, 0x56, 0x39, 0x38, 0x72, 0x36, 0x31, 0x6a, 0x78, 0x33, 0x6e, 0x63, 0x43, 0x48, 0x76, 0x56, 0x6f, 0x4f, 0x58, 0x33, 0x57, 0x33, 0x57, 0x73, 0x67, 0x46, 0x57, 0x5a, 0x6b, 0x6d, 0x47, 0x62, 0x7a, 0x53, 0x6f, 0x58, 0x66, 0x64, 0x75, 0x50, 0x39, 0x4c, 0x56, 0x71, 0x36, 0x68, 0x64, 0x4b, 0x0a, 0x5a, 0x43, 0x68, 0x6d, 0x46, 0x53, 0x6c, 0x73, 0x41, 0x76, 0x46, 0x72, 0x31, 0x62, 0x71, 0x6a, 0x4d, 0x39, 0x78, 0x61, 0x5a, 0x36, 0x63, 0x46, 0x34, 0x72, 0x39, 0x6c, 0x74, 0x68, 0x61, 0x77, 0x45, 0x4f, 0x33, 0x4e, 0x55, 0x44, 0x50, 0x4a, 0x63, 0x46, 0x44, 0x73, 0x47, 0x59, 0x36, 0x77, 0x78, 0x2f, 0x4a, 0x30, 0x57, 0x32, 0x74, 0x45, 0x78, 0x6e, 0x32, 0x57, 0x75, 0x5a, 0x67, 0x49, 0x57, 0x57, 0x62, 0x65, 0x4b, 0x51, 0x47, 0x62, 0x39, 0x43, 0x70, 0x74, 0x0a, 0x30, 0x78, 0x55, 0x36, 0x6b, 0x47, 0x70, 0x6e, 0x38, 0x62, 0x52, 0x72, 0x5a, 0x74, 0x6b, 0x68, 0x36, 0x38, 0x72, 0x5a, 0x59, 0x6e, 0x78, 0x47, 0x45, 0x46, 0x7a, 0x65, 0x64, 0x55, 0x6c, 0x6e, 0x6e, 0x6b, 0x4c, 0x35, 0x2f, 0x6e, 0x57, 0x70, 0x6f, 0x36, 0x33, 0x2f, 0x64, 0x67, 0x70, 0x6e, 0x51, 0x4f, 0x50, 0x46, 0x39, 0x34, 0x33, 0x48, 0x68, 0x5a, 0x70, 0x5a, 0x6e, 0x6d, 0x4b, 0x61, 0x61, 0x75, 0x31, 0x46, 0x68, 0x35, 0x68, 0x6e, 0x73, 0x74, 0x56, 0x4b, 0x0a, 0x50, 0x4e, 0x65, 0x30, 0x4f, 0x77, 0x41, 0x4e, 0x77, 0x49, 0x38, 0x66, 0x34, 0x55, 0x44, 0x45, 0x72, 0x6d, 0x77, 0x68, 0x33, 0x45, 0x6c, 0x2b, 0x66, 0x73, 0x71, 0x79, 0x6a, 0x57, 0x32, 0x32, 0x76, 0x35, 0x4d, 0x76, 0x6f, 0x56, 0x77, 0x2b, 0x6a, 0x38, 0x72, 0x74, 0x67, 0x49, 0x35, 0x59, 0x34, 0x64, 0x74, 0x58, 0x7a, 0x34, 0x55, 0x32, 0x4f, 0x4c, 0x4a, 0x78, 0x70, 0x41, 0x6d, 0x4d, 0x6b, 0x6f, 0x6b, 0x49, 0x69, 0x45, 0x6a, 0x78, 0x51, 0x47, 0x4d, 0x59, 0x0a, 0x73, 0x6c, 0x75, 0x4d, 0x57, 0x75, 0x50, 0x44, 0x30, 0x78, 0x65, 0x71, 0x71, 0x78, 0x6d, 0x6a, 0x4c, 0x42, 0x76, 0x6b, 0x31, 0x63, 0x62, 0x69, 0x5a, 0x6e, 0x72, 0x58, 0x67, 0x68, 0x6d, 0x6d, 0x4f, 0x78, 0x59, 0x73, 0x4c, 0x33, 0x47, 0x48, 0x58, 0x30, 0x57, 0x65, 0x6c, 0x58, 0x4f, 0x54, 0x77, 0x6b, 0x4b, 0x42, 0x49, 0x52, 0x4f, 0x57, 0x31, 0x35, 0x32, 0x37, 0x6b, 0x32, 0x67, 0x56, 0x2b, 0x70, 0x32, 0x6b, 0x48, 0x59, 0x7a, 0x79, 0x67, 0x65, 0x42, 0x59, 0x0a, 0x42, 0x72, 0x33, 0x4a, 0x74, 0x75, 0x50, 0x32, 0x69, 0x56, 0x32, 0x4a, 0x2b, 0x61, 0x78, 0x45, 0x6f, 0x63, 0x74, 0x72, 0x2b, 0x68, 0x62, 0x78, 0x78, 0x31, 0x41, 0x39, 0x4a, 0x4e, 0x72, 0x33, 0x77, 0x2b, 0x53, 0x48, 0x31, 0x56, 0x62, 0x78, 0x54, 0x35, 0x41, 0x77, 0x2b, 0x6b, 0x55, 0x4a, 0x57, 0x64, 0x6f, 0x30, 0x7a, 0x75, 0x41, 0x54, 0x48, 0x41, 0x52, 0x38, 0x41, 0x4e, 0x53, 0x62, 0x68, 0x71, 0x52, 0x41, 0x76, 0x4e, 0x6e, 0x63, 0x54, 0x46, 0x64, 0x2b, 0x0a, 0x72, 0x72, 0x63, 0x7a, 0x74, 0x6c, 0x35, 0x32, 0x34, 0x57, 0x57, 0x4c, 0x5a, 0x74, 0x2b, 0x4e, 0x79, 0x74, 0x65, 0x59, 0x72, 0x38, 0x34, 0x32, 0x6d, 0x49, 0x79, 0x63, 0x67, 0x35, 0x6b, 0x44, 0x63, 0x50, 0x4f, 0x76, 0x64, 0x4f, 0x33, 0x47, 0x44, 0x6a, 0x62, 0x6e, 0x76, 0x65, 0x7a, 0x42, 0x63, 0x36, 0x65, 0x55, 0x57, 0x73, 0x75, 0x53, 0x5a, 0x49, 0x4b, 0x6d, 0x41, 0x4d, 0x46, 0x77, 0x6f, 0x57, 0x34, 0x73, 0x4b, 0x65, 0x46, 0x59, 0x56, 0x2b, 0x78, 0x61, 0x0a, 0x66, 0x4a, 0x6c, 0x72, 0x4a, 0x61, 0x53, 0x51, 0x4f, 0x6f, 0x44, 0x30, 0x49, 0x4a, 0x32, 0x61, 0x7a, 0x73, 0x63, 0x74, 0x2b, 0x62, 0x4a, 0x4c, 0x4b, 0x5a, 0x57, 0x44, 0x36, 0x54, 0x57, 0x4e, 0x70, 0x30, 0x6c, 0x49, 0x70, 0x77, 0x39, 0x4d, 0x47, 0x5a, 0x48, 0x51, 0x39, 0x62, 0x38, 0x51, 0x34, 0x48, 0x45, 0x43, 0x41, 0x77, 0x45, 0x41, 0x41, 0x61, 0x4e, 0x43, 0x4d, 0x45, 0x41, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x0a, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x64, 0x45, 0x6d, 0x5a, 0x30, 0x66, 0x2b, 0x30, 0x65, 0x6d, 0x68, 0x46, 0x64, 0x63, 0x4e, 0x2b, 0x74, 0x4e, 0x7a, 0x4d, 0x7a, 0x6a, 0x6b, 0x7a, 0x32, 0x67, 0x67, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x47, 0x47, 0x4d, 0x41, 0x30, 0x47, 0x0a, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x44, 0x41, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x41, 0x51, 0x41, 0x6a, 0x51, 0x31, 0x4d, 0x6b, 0x59, 0x6c, 0x78, 0x74, 0x2f, 0x54, 0x37, 0x43, 0x7a, 0x31, 0x55, 0x41, 0x62, 0x4d, 0x56, 0x57, 0x69, 0x4c, 0x6b, 0x4f, 0x33, 0x54, 0x72, 0x69, 0x4a, 0x51, 0x32, 0x56, 0x53, 0x70, 0x66, 0x4b, 0x67, 0x49, 0x6e, 0x75, 0x4b, 0x73, 0x31, 0x6c, 0x2b, 0x4e, 0x73, 0x57, 0x34, 0x41, 0x6d, 0x53, 0x0a, 0x34, 0x42, 0x6a, 0x48, 0x65, 0x4a, 0x69, 0x37, 0x38, 0x2b, 0x78, 0x43, 0x55, 0x76, 0x75, 0x70, 0x70, 0x49, 0x4c, 0x58, 0x54, 0x64, 0x69, 0x4b, 0x2f, 0x4f, 0x52, 0x4f, 0x2f, 0x61, 0x75, 0x51, 0x78, 0x44, 0x68, 0x31, 0x4d, 0x6f, 0x53, 0x66, 0x2f, 0x37, 0x4f, 0x77, 0x4b, 0x77, 0x49, 0x7a, 0x4e, 0x73, 0x41, 0x51, 0x6b, 0x47, 0x38, 0x64, 0x6e, 0x4b, 0x2f, 0x68, 0x61, 0x5a, 0x50, 0x73, 0x6f, 0x30, 0x55, 0x76, 0x46, 0x4a, 0x2f, 0x31, 0x54, 0x43, 0x70, 0x6c, 0x0a, 0x51, 0x33, 0x49, 0x4d, 0x39, 0x38, 0x50, 0x34, 0x6c, 0x59, 0x73, 0x55, 0x38, 0x34, 0x55, 0x67, 0x59, 0x74, 0x31, 0x55, 0x55, 0x39, 0x30, 0x73, 0x33, 0x42, 0x69, 0x56, 0x61, 0x55, 0x2b, 0x44, 0x52, 0x33, 0x42, 0x41, 0x4d, 0x31, 0x68, 0x33, 0x45, 0x67, 0x79, 0x69, 0x36, 0x31, 0x49, 0x78, 0x48, 0x6b, 0x7a, 0x4a, 0x71, 0x4d, 0x37, 0x46, 0x37, 0x38, 0x50, 0x52, 0x72, 0x65, 0x42, 0x72, 0x41, 0x77, 0x41, 0x30, 0x4a, 0x72, 0x52, 0x55, 0x49, 0x54, 0x57, 0x58, 0x0a, 0x41, 0x64, 0x78, 0x66, 0x47, 0x2f, 0x46, 0x38, 0x35, 0x31, 0x58, 0x36, 0x4c, 0x57, 0x68, 0x33, 0x65, 0x39, 0x4e, 0x70, 0x7a, 0x4e, 0x4d, 0x4f, 0x61, 0x37, 0x70, 0x4e, 0x64, 0x6b, 0x54, 0x57, 0x77, 0x68, 0x57, 0x61, 0x4a, 0x75, 0x79, 0x77, 0x78, 0x66, 0x57, 0x37, 0x30, 0x58, 0x70, 0x30, 0x77, 0x6d, 0x7a, 0x4e, 0x78, 0x62, 0x56, 0x65, 0x39, 0x6b, 0x7a, 0x6d, 0x57, 0x79, 0x32, 0x42, 0x32, 0x37, 0x4f, 0x33, 0x4f, 0x70, 0x65, 0x65, 0x37, 0x63, 0x39, 0x47, 0x0a, 0x73, 0x6c, 0x41, 0x39, 0x68, 0x47, 0x43, 0x5a, 0x63, 0x62, 0x55, 0x7a, 0x74, 0x56, 0x64, 0x46, 0x35, 0x6b, 0x4a, 0x48, 0x64, 0x57, 0x6f, 0x4f, 0x73, 0x41, 0x67, 0x4d, 0x72, 0x72, 0x33, 0x65, 0x39, 0x37, 0x73, 0x50, 0x57, 0x44, 0x32, 0x50, 0x41, 0x7a, 0x48, 0x6f, 0x50, 0x59, 0x4a, 0x51, 0x79, 0x69, 0x39, 0x65, 0x44, 0x46, 0x32, 0x30, 0x6c, 0x37, 0x34, 0x67, 0x4e, 0x41, 0x66, 0x30, 0x78, 0x42, 0x4c, 0x68, 0x37, 0x74, 0x65, 0x77, 0x32, 0x56, 0x6b, 0x74, 0x0a, 0x61, 0x66, 0x63, 0x78, 0x42, 0x50, 0x54, 0x79, 0x2b, 0x61, 0x76, 0x35, 0x45, 0x7a, 0x48, 0x34, 0x41, 0x58, 0x63, 0x4f, 0x50, 0x55, 0x49, 0x6a, 0x4a, 0x73, 0x79, 0x61, 0x63, 0x6d, 0x64, 0x52, 0x49, 0x58, 0x72, 0x4d, 0x50, 0x49, 0x57, 0x6f, 0x36, 0x69, 0x46, 0x71, 0x4f, 0x39, 0x74, 0x61, 0x50, 0x4b, 0x55, 0x30, 0x6e, 0x70, 0x72, 0x41, 0x4c, 0x4e, 0x2b, 0x41, 0x6e, 0x43, 0x6e, 0x67, 0x33, 0x33, 0x65, 0x55, 0x30, 0x61, 0x4b, 0x41, 0x51, 0x76, 0x39, 0x71, 0x0a, 0x54, 0x46, 0x73, 0x52, 0x30, 0x50, 0x58, 0x4e, 0x6f, 0x72, 0x36, 0x75, 0x7a, 0x46, 0x46, 0x63, 0x77, 0x39, 0x56, 0x55, 0x65, 0x77, 0x79, 0x75, 0x31, 0x72, 0x6b, 0x47, 0x64, 0x34, 0x44, 0x69, 0x37, 0x77, 0x63, 0x61, 0x61, 0x4d, 0x78, 0x5a, 0x55, 0x61, 0x31, 0x2b, 0x58, 0x47, 0x64, 0x72, 0x75, 0x64, 0x76, 0x69, 0x42, 0x30, 0x4a, 0x62, 0x75, 0x41, 0x45, 0x46, 0x57, 0x44, 0x6c, 0x4e, 0x35, 0x4c, 0x75, 0x59, 0x6f, 0x37, 0x45, 0x79, 0x37, 0x4e, 0x6d, 0x6a, 0x0a, 0x31, 0x6d, 0x2b, 0x55, 0x49, 0x2f, 0x38, 0x37, 0x74, 0x79, 0x6c, 0x6c, 0x35, 0x67, 0x66, 0x70, 0x37, 0x37, 0x59, 0x5a, 0x36, 0x75, 0x66, 0x43, 0x4f, 0x42, 0x30, 0x79, 0x69, 0x4a, 0x41, 0x38, 0x45, 0x79, 0x74, 0x75, 0x7a, 0x4f, 0x2b, 0x72, 0x64, 0x77, 0x59, 0x30, 0x64, 0x34, 0x52, 0x50, 0x63, 0x75, 0x53, 0x42, 0x68, 0x50, 0x6d, 0x35, 0x64, 0x44, 0x54, 0x65, 0x64, 0x6b, 0x2b, 0x53, 0x4b, 0x6c, 0x4f, 0x78, 0x4a, 0x54, 0x6e, 0x62, 0x50, 0x50, 0x2f, 0x6c, 0x0a, 0x50, 0x71, 0x59, 0x4f, 0x35, 0x57, 0x75, 0x65, 0x2f, 0x39, 0x76, 0x73, 0x4c, 0x33, 0x53, 0x44, 0x33, 0x34, 0x36, 0x30, 0x73, 0x36, 0x6e, 0x65, 0x46, 0x45, 0x33, 0x2f, 0x4d, 0x61, 0x4e, 0x46, 0x63, 0x79, 0x54, 0x36, 0x6c, 0x53, 0x6e, 0x4d, 0x45, 0x70, 0x63, 0x45, 0x6f, 0x6a, 0x69, 0x32, 0x6a, 0x62, 0x44, 0x77, 0x4e, 0x2f, 0x7a, 0x49, 0x49, 0x58, 0x38, 0x2f, 0x73, 0x79, 0x51, 0x62, 0x50, 0x59, 0x74, 0x75, 0x7a, 0x45, 0x32, 0x77, 0x46, 0x67, 0x32, 0x57, 0x0a, 0x48, 0x59, 0x4d, 0x66, 0x52, 0x73, 0x43, 0x62, 0x76, 0x55, 0x4f, 0x5a, 0x35, 0x38, 0x53, 0x57, 0x4c, 0x73, 0x35, 0x66, 0x79, 0x51, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x54, 0x72, 0x75, 0x73, 0x74, 0x41, 0x73, 0x69, 0x61, 0x20, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x47, 0x33, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x70, 0x54, 0x43, 0x43, 0x41, 0x34, 0x32, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x55, 0x5a, 0x50, 0x59, 0x4f, 0x5a, 0x58, 0x64, 0x68, 0x61, 0x71, 0x73, 0x37, 0x74, 0x4f, 0x71, 0x46, 0x68, 0x4c, 0x75, 0x78, 0x69, 0x62, 0x68, 0x78, 0x6b, 0x77, 0x38, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4d, 0x42, 0x51, 0x41, 0x77, 0x57, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x0a, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x51, 0x30, 0x34, 0x78, 0x4a, 0x54, 0x41, 0x6a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x48, 0x46, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x51, 0x58, 0x4e, 0x70, 0x59, 0x53, 0x42, 0x55, 0x5a, 0x57, 0x4e, 0x6f, 0x62, 0x6d, 0x39, 0x73, 0x62, 0x32, 0x64, 0x70, 0x5a, 0x58, 0x4d, 0x73, 0x49, 0x45, 0x6c, 0x75, 0x59, 0x79, 0x34, 0x78, 0x4a, 0x44, 0x41, 0x69, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x0a, 0x47, 0x31, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x51, 0x58, 0x4e, 0x70, 0x59, 0x53, 0x42, 0x48, 0x62, 0x47, 0x39, 0x69, 0x59, 0x57, 0x77, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x51, 0x53, 0x42, 0x48, 0x4d, 0x7a, 0x41, 0x65, 0x46, 0x77, 0x30, 0x79, 0x4d, 0x54, 0x41, 0x31, 0x4d, 0x6a, 0x41, 0x77, 0x4d, 0x6a, 0x45, 0x77, 0x4d, 0x54, 0x6c, 0x61, 0x46, 0x77, 0x30, 0x30, 0x4e, 0x6a, 0x41, 0x31, 0x4d, 0x54, 0x6b, 0x77, 0x4d, 0x6a, 0x45, 0x77, 0x0a, 0x4d, 0x54, 0x6c, 0x61, 0x4d, 0x46, 0x6f, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6b, 0x4e, 0x4f, 0x4d, 0x53, 0x55, 0x77, 0x49, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x42, 0x78, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x45, 0x46, 0x7a, 0x61, 0x57, 0x45, 0x67, 0x56, 0x47, 0x56, 0x6a, 0x61, 0x47, 0x35, 0x76, 0x62, 0x47, 0x39, 0x6e, 0x61, 0x57, 0x56, 0x7a, 0x4c, 0x43, 0x42, 0x4a, 0x62, 0x6d, 0x4d, 0x75, 0x0a, 0x4d, 0x53, 0x51, 0x77, 0x49, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x44, 0x42, 0x74, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x45, 0x46, 0x7a, 0x61, 0x57, 0x45, 0x67, 0x52, 0x32, 0x78, 0x76, 0x59, 0x6d, 0x46, 0x73, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x67, 0x52, 0x7a, 0x4d, 0x77, 0x67, 0x67, 0x49, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x0a, 0x41, 0x34, 0x49, 0x43, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x49, 0x4b, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x44, 0x41, 0x4d, 0x59, 0x4a, 0x68, 0x6b, 0x75, 0x53, 0x55, 0x47, 0x77, 0x6f, 0x71, 0x5a, 0x64, 0x43, 0x2b, 0x42, 0x71, 0x6d, 0x48, 0x4f, 0x31, 0x45, 0x53, 0x36, 0x6e, 0x42, 0x42, 0x72, 0x75, 0x4c, 0x37, 0x64, 0x4f, 0x6f, 0x4b, 0x6a, 0x62, 0x6d, 0x7a, 0x54, 0x4e, 0x79, 0x50, 0x74, 0x78, 0x4e, 0x53, 0x54, 0x31, 0x51, 0x59, 0x34, 0x53, 0x78, 0x7a, 0x0a, 0x6c, 0x5a, 0x48, 0x46, 0x5a, 0x6a, 0x74, 0x71, 0x7a, 0x36, 0x78, 0x6a, 0x62, 0x59, 0x64, 0x54, 0x38, 0x50, 0x66, 0x78, 0x4f, 0x62, 0x65, 0x67, 0x51, 0x32, 0x4f, 0x77, 0x78, 0x41, 0x4e, 0x64, 0x56, 0x36, 0x6e, 0x6e, 0x52, 0x4d, 0x37, 0x45, 0x6f, 0x59, 0x4e, 0x6c, 0x39, 0x6c, 0x41, 0x2b, 0x73, 0x58, 0x34, 0x57, 0x75, 0x44, 0x71, 0x4b, 0x41, 0x74, 0x43, 0x57, 0x48, 0x77, 0x44, 0x4e, 0x42, 0x53, 0x48, 0x76, 0x42, 0x6d, 0x33, 0x64, 0x49, 0x5a, 0x77, 0x5a, 0x0a, 0x51, 0x30, 0x57, 0x68, 0x78, 0x65, 0x69, 0x41, 0x79, 0x73, 0x4b, 0x74, 0x51, 0x47, 0x49, 0x58, 0x42, 0x73, 0x61, 0x71, 0x76, 0x50, 0x50, 0x57, 0x35, 0x76, 0x78, 0x51, 0x66, 0x6d, 0x5a, 0x43, 0x48, 0x7a, 0x79, 0x4c, 0x70, 0x6e, 0x6c, 0x35, 0x68, 0x6b, 0x41, 0x31, 0x6e, 0x79, 0x44, 0x76, 0x50, 0x2b, 0x75, 0x4c, 0x52, 0x78, 0x2b, 0x50, 0x6a, 0x73, 0x58, 0x55, 0x6a, 0x72, 0x59, 0x73, 0x79, 0x55, 0x51, 0x45, 0x34, 0x39, 0x52, 0x44, 0x64, 0x54, 0x2f, 0x56, 0x0a, 0x50, 0x36, 0x38, 0x63, 0x7a, 0x48, 0x35, 0x47, 0x58, 0x36, 0x7a, 0x66, 0x5a, 0x42, 0x43, 0x4b, 0x37, 0x30, 0x62, 0x77, 0x6b, 0x50, 0x41, 0x50, 0x4c, 0x66, 0x53, 0x49, 0x43, 0x37, 0x45, 0x70, 0x71, 0x71, 0x2b, 0x46, 0x71, 0x6b, 0x6c, 0x59, 0x71, 0x4c, 0x39, 0x6a, 0x6f, 0x44, 0x69, 0x52, 0x35, 0x72, 0x50, 0x6d, 0x64, 0x32, 0x6a, 0x45, 0x2b, 0x53, 0x6f, 0x5a, 0x68, 0x4c, 0x73, 0x4f, 0x34, 0x66, 0x57, 0x76, 0x69, 0x65, 0x79, 0x6c, 0x4c, 0x31, 0x41, 0x67, 0x0a, 0x64, 0x42, 0x34, 0x53, 0x51, 0x58, 0x4d, 0x65, 0x4a, 0x4e, 0x6e, 0x4b, 0x7a, 0x69, 0x79, 0x68, 0x57, 0x54, 0x58, 0x41, 0x79, 0x42, 0x31, 0x47, 0x4a, 0x32, 0x46, 0x61, 0x6a, 0x2f, 0x6c, 0x4e, 0x30, 0x33, 0x4a, 0x35, 0x5a, 0x68, 0x36, 0x66, 0x46, 0x5a, 0x41, 0x68, 0x4c, 0x66, 0x33, 0x74, 0x69, 0x31, 0x5a, 0x77, 0x41, 0x30, 0x70, 0x4a, 0x50, 0x6e, 0x39, 0x70, 0x4d, 0x52, 0x4a, 0x70, 0x78, 0x78, 0x35, 0x63, 0x79, 0x6e, 0x6f, 0x54, 0x69, 0x2b, 0x6a, 0x6d, 0x0a, 0x39, 0x57, 0x41, 0x50, 0x7a, 0x4a, 0x4d, 0x73, 0x68, 0x48, 0x2f, 0x78, 0x2f, 0x47, 0x72, 0x38, 0x6d, 0x30, 0x65, 0x64, 0x32, 0x36, 0x32, 0x49, 0x50, 0x66, 0x4e, 0x32, 0x64, 0x54, 0x50, 0x58, 0x53, 0x36, 0x54, 0x49, 0x69, 0x2f, 0x6e, 0x31, 0x51, 0x31, 0x68, 0x50, 0x79, 0x38, 0x67, 0x44, 0x56, 0x49, 0x2b, 0x6c, 0x68, 0x58, 0x67, 0x45, 0x47, 0x76, 0x4e, 0x7a, 0x38, 0x74, 0x65, 0x48, 0x48, 0x55, 0x47, 0x66, 0x35, 0x39, 0x67, 0x58, 0x7a, 0x68, 0x71, 0x63, 0x0a, 0x44, 0x30, 0x72, 0x38, 0x33, 0x45, 0x52, 0x6f, 0x56, 0x47, 0x6a, 0x69, 0x51, 0x54, 0x7a, 0x2b, 0x4c, 0x49, 0x53, 0x47, 0x4e, 0x7a, 0x7a, 0x4e, 0x50, 0x79, 0x2b, 0x69, 0x32, 0x2b, 0x66, 0x33, 0x56, 0x41, 0x4e, 0x66, 0x57, 0x64, 0x50, 0x33, 0x6b, 0x58, 0x6a, 0x48, 0x69, 0x33, 0x64, 0x71, 0x46, 0x75, 0x56, 0x4a, 0x68, 0x5a, 0x42, 0x46, 0x63, 0x6e, 0x41, 0x76, 0x6b, 0x56, 0x33, 0x34, 0x50, 0x6d, 0x56, 0x41, 0x43, 0x78, 0x6d, 0x5a, 0x79, 0x53, 0x59, 0x67, 0x0a, 0x57, 0x6d, 0x6a, 0x42, 0x4e, 0x62, 0x39, 0x50, 0x70, 0x31, 0x48, 0x78, 0x32, 0x42, 0x45, 0x72, 0x57, 0x2b, 0x43, 0x61, 0x6e, 0x69, 0x67, 0x37, 0x43, 0x6a, 0x6f, 0x4b, 0x48, 0x38, 0x47, 0x42, 0x35, 0x53, 0x37, 0x77, 0x70, 0x72, 0x6c, 0x70, 0x70, 0x59, 0x69, 0x55, 0x35, 0x6d, 0x73, 0x54, 0x66, 0x39, 0x46, 0x6b, 0x50, 0x7a, 0x32, 0x63, 0x63, 0x45, 0x62, 0x6c, 0x6f, 0x6f, 0x56, 0x37, 0x57, 0x49, 0x51, 0x6e, 0x33, 0x4d, 0x53, 0x41, 0x50, 0x6d, 0x65, 0x61, 0x0a, 0x6d, 0x73, 0x65, 0x61, 0x4d, 0x51, 0x34, 0x77, 0x37, 0x4f, 0x59, 0x58, 0x51, 0x4a, 0x58, 0x5a, 0x52, 0x65, 0x30, 0x42, 0x6c, 0x71, 0x71, 0x2f, 0x44, 0x50, 0x4e, 0x4c, 0x30, 0x57, 0x50, 0x33, 0x45, 0x31, 0x6a, 0x41, 0x75, 0x50, 0x50, 0x36, 0x5a, 0x39, 0x32, 0x62, 0x66, 0x57, 0x31, 0x4b, 0x2f, 0x7a, 0x4a, 0x4d, 0x74, 0x53, 0x55, 0x37, 0x2f, 0x78, 0x78, 0x6e, 0x44, 0x34, 0x55, 0x69, 0x57, 0x51, 0x57, 0x52, 0x6b, 0x55, 0x46, 0x33, 0x67, 0x64, 0x43, 0x46, 0x0a, 0x54, 0x49, 0x63, 0x51, 0x63, 0x66, 0x2b, 0x65, 0x51, 0x78, 0x75, 0x75, 0x6c, 0x58, 0x55, 0x74, 0x67, 0x51, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x32, 0x4d, 0x77, 0x59, 0x54, 0x41, 0x50, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x42, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x49, 0x77, 0x51, 0x59, 0x4d, 0x42, 0x61, 0x41, 0x46, 0x45, 0x44, 0x6b, 0x35, 0x50, 0x49, 0x6a, 0x0a, 0x37, 0x7a, 0x6a, 0x4b, 0x73, 0x4b, 0x35, 0x58, 0x66, 0x2f, 0x49, 0x68, 0x4d, 0x42, 0x59, 0x30, 0x32, 0x37, 0x79, 0x53, 0x4d, 0x42, 0x30, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x52, 0x41, 0x35, 0x4f, 0x54, 0x79, 0x49, 0x2b, 0x38, 0x34, 0x79, 0x72, 0x43, 0x75, 0x56, 0x33, 0x2f, 0x79, 0x49, 0x54, 0x41, 0x57, 0x4e, 0x4e, 0x75, 0x38, 0x6b, 0x6a, 0x41, 0x4f, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x38, 0x42, 0x41, 0x66, 0x38, 0x45, 0x0a, 0x42, 0x41, 0x4d, 0x43, 0x41, 0x51, 0x59, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4d, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x42, 0x41, 0x43, 0x59, 0x37, 0x55, 0x65, 0x46, 0x4e, 0x4f, 0x50, 0x4d, 0x79, 0x47, 0x4c, 0x53, 0x30, 0x58, 0x75, 0x46, 0x6c, 0x58, 0x73, 0x53, 0x55, 0x54, 0x39, 0x53, 0x6e, 0x59, 0x61, 0x50, 0x34, 0x77, 0x4d, 0x38, 0x7a, 0x41, 0x51, 0x4c, 0x70, 0x77, 0x36, 0x6f, 0x31, 0x0a, 0x44, 0x2f, 0x47, 0x55, 0x45, 0x33, 0x64, 0x33, 0x4e, 0x5a, 0x34, 0x74, 0x56, 0x6c, 0x46, 0x45, 0x62, 0x75, 0x48, 0x47, 0x4c, 0x69, 0x67, 0x65, 0x2f, 0x39, 0x72, 0x73, 0x52, 0x38, 0x32, 0x58, 0x52, 0x42, 0x66, 0x33, 0x34, 0x45, 0x7a, 0x43, 0x34, 0x58, 0x78, 0x38, 0x4d, 0x6e, 0x70, 0x6d, 0x79, 0x46, 0x71, 0x32, 0x58, 0x46, 0x4e, 0x46, 0x56, 0x31, 0x70, 0x46, 0x31, 0x41, 0x57, 0x5a, 0x4c, 0x79, 0x34, 0x6a, 0x56, 0x65, 0x35, 0x6a, 0x61, 0x4e, 0x2f, 0x54, 0x0a, 0x47, 0x33, 0x69, 0x6e, 0x45, 0x70, 0x51, 0x47, 0x41, 0x48, 0x55, 0x4e, 0x63, 0x6f, 0x54, 0x70, 0x4c, 0x72, 0x78, 0x61, 0x61, 0x74, 0x58, 0x65, 0x4c, 0x31, 0x6e, 0x48, 0x6f, 0x2b, 0x7a, 0x53, 0x68, 0x32, 0x62, 0x62, 0x74, 0x31, 0x53, 0x31, 0x4a, 0x4b, 0x76, 0x30, 0x51, 0x33, 0x6a, 0x62, 0x53, 0x77, 0x54, 0x45, 0x62, 0x39, 0x33, 0x6d, 0x50, 0x6d, 0x59, 0x2b, 0x4b, 0x66, 0x4a, 0x4c, 0x61, 0x48, 0x45, 0x69, 0x68, 0x36, 0x44, 0x34, 0x73, 0x54, 0x4e, 0x6a, 0x0a, 0x64, 0x75, 0x4d, 0x4e, 0x68, 0x58, 0x4a, 0x45, 0x49, 0x6c, 0x55, 0x2f, 0x48, 0x48, 0x7a, 0x70, 0x2f, 0x4c, 0x67, 0x56, 0x36, 0x46, 0x4c, 0x36, 0x71, 0x6a, 0x36, 0x6a, 0x49, 0x54, 0x6b, 0x31, 0x64, 0x49, 0x6d, 0x6d, 0x61, 0x73, 0x49, 0x35, 0x2b, 0x6e, 0x6a, 0x50, 0x74, 0x71, 0x7a, 0x6e, 0x35, 0x39, 0x5a, 0x57, 0x2f, 0x79, 0x4f, 0x53, 0x4c, 0x6c, 0x41, 0x4c, 0x71, 0x62, 0x55, 0x48, 0x4d, 0x2f, 0x51, 0x34, 0x58, 0x36, 0x52, 0x4a, 0x70, 0x73, 0x74, 0x6c, 0x0a, 0x63, 0x48, 0x62, 0x6f, 0x43, 0x6f, 0x57, 0x41, 0x53, 0x7a, 0x59, 0x39, 0x4d, 0x2f, 0x65, 0x56, 0x56, 0x48, 0x55, 0x6c, 0x32, 0x71, 0x7a, 0x45, 0x63, 0x34, 0x4a, 0x6c, 0x36, 0x56, 0x4c, 0x31, 0x58, 0x50, 0x30, 0x34, 0x6c, 0x51, 0x4a, 0x71, 0x61, 0x54, 0x44, 0x46, 0x48, 0x41, 0x70, 0x58, 0x42, 0x36, 0x34, 0x69, 0x70, 0x43, 0x7a, 0x35, 0x78, 0x55, 0x47, 0x33, 0x75, 0x4f, 0x79, 0x66, 0x54, 0x30, 0x67, 0x41, 0x2b, 0x51, 0x45, 0x45, 0x56, 0x63, 0x79, 0x73, 0x0a, 0x2b, 0x54, 0x49, 0x78, 0x78, 0x48, 0x57, 0x56, 0x42, 0x71, 0x42, 0x2f, 0x30, 0x59, 0x30, 0x6e, 0x33, 0x62, 0x4f, 0x70, 0x70, 0x48, 0x4b, 0x48, 0x2f, 0x6c, 0x6d, 0x4c, 0x6d, 0x6e, 0x70, 0x30, 0x46, 0x74, 0x30, 0x57, 0x70, 0x57, 0x49, 0x70, 0x36, 0x7a, 0x71, 0x57, 0x33, 0x49, 0x75, 0x6e, 0x61, 0x46, 0x6e, 0x54, 0x36, 0x33, 0x65, 0x52, 0x4f, 0x66, 0x6a, 0x58, 0x79, 0x39, 0x6d, 0x50, 0x58, 0x31, 0x6f, 0x6e, 0x41, 0x58, 0x31, 0x64, 0x61, 0x42, 0x6c, 0x69, 0x0a, 0x32, 0x4d, 0x6a, 0x4e, 0x39, 0x4c, 0x64, 0x79, 0x52, 0x37, 0x35, 0x62, 0x6c, 0x38, 0x37, 0x79, 0x72, 0x61, 0x4b, 0x5a, 0x6b, 0x36, 0x32, 0x55, 0x79, 0x35, 0x50, 0x32, 0x45, 0x67, 0x6d, 0x56, 0x74, 0x71, 0x76, 0x58, 0x4f, 0x39, 0x41, 0x2f, 0x45, 0x63, 0x73, 0x77, 0x46, 0x69, 0x35, 0x35, 0x67, 0x4f, 0x52, 0x6e, 0x67, 0x53, 0x31, 0x64, 0x37, 0x58, 0x42, 0x34, 0x74, 0x6d, 0x42, 0x5a, 0x72, 0x4f, 0x46, 0x64, 0x52, 0x57, 0x4f, 0x50, 0x79, 0x4e, 0x39, 0x79, 0x0a, 0x61, 0x46, 0x76, 0x71, 0x48, 0x62, 0x67, 0x42, 0x38, 0x58, 0x37, 0x37, 0x35, 0x34, 0x71, 0x7a, 0x34, 0x31, 0x53, 0x67, 0x4f, 0x41, 0x6e, 0x67, 0x50, 0x4e, 0x35, 0x43, 0x38, 0x73, 0x4c, 0x74, 0x4c, 0x70, 0x76, 0x7a, 0x48, 0x7a, 0x57, 0x32, 0x4e, 0x74, 0x6a, 0x6a, 0x67, 0x4b, 0x47, 0x4c, 0x7a, 0x5a, 0x6c, 0x6b, 0x44, 0x38, 0x4b, 0x71, 0x71, 0x37, 0x48, 0x4b, 0x39, 0x57, 0x2b, 0x65, 0x51, 0x34, 0x32, 0x45, 0x56, 0x4a, 0x6d, 0x7a, 0x62, 0x73, 0x41, 0x53, 0x0a, 0x5a, 0x74, 0x68, 0x77, 0x45, 0x50, 0x45, 0x47, 0x4e, 0x54, 0x4e, 0x44, 0x71, 0x4a, 0x77, 0x75, 0x75, 0x68, 0x51, 0x78, 0x7a, 0x68, 0x42, 0x2f, 0x48, 0x49, 0x62, 0x6a, 0x6a, 0x39, 0x4c, 0x56, 0x2b, 0x48, 0x66, 0x73, 0x6d, 0x36, 0x76, 0x78, 0x4c, 0x32, 0x50, 0x5a, 0x51, 0x6c, 0x2f, 0x67, 0x5a, 0x34, 0x46, 0x6b, 0x6b, 0x66, 0x47, 0x58, 0x4c, 0x2f, 0x78, 0x75, 0x4a, 0x76, 0x59, 0x7a, 0x2b, 0x4e, 0x4f, 0x31, 0x2b, 0x4d, 0x52, 0x69, 0x71, 0x7a, 0x46, 0x52, 0x0a, 0x4a, 0x51, 0x4a, 0x36, 0x2b, 0x4e, 0x31, 0x72, 0x5a, 0x64, 0x56, 0x74, 0x54, 0x54, 0x44, 0x49, 0x5a, 0x62, 0x70, 0x6f, 0x46, 0x47, 0x57, 0x73, 0x4a, 0x77, 0x74, 0x30, 0x69, 0x76, 0x4b, 0x48, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x54, 0x72, 0x75, 0x73, 0x74, 0x41, 0x73, 0x69, 0x61, 0x20, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x47, 0x34, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x56, 0x54, 0x43, 0x43, 0x41, 0x64, 0x79, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x55, 0x54, 0x79, 0x4e, 0x6b, 0x75, 0x49, 0x36, 0x58, 0x59, 0x35, 0x37, 0x47, 0x55, 0x34, 0x48, 0x42, 0x64, 0x6b, 0x37, 0x4c, 0x4b, 0x6e, 0x51, 0x56, 0x31, 0x74, 0x63, 0x77, 0x43, 0x67, 0x59, 0x49, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x45, 0x41, 0x77, 0x4d, 0x77, 0x57, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x0a, 0x42, 0x68, 0x4d, 0x43, 0x51, 0x30, 0x34, 0x78, 0x4a, 0x54, 0x41, 0x6a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x48, 0x46, 0x52, 0x79, 0x64, 0x58, 0x4e, 0x30, 0x51, 0x58, 0x4e, 0x70, 0x59, 0x53, 0x42, 0x55, 0x5a, 0x57, 0x4e, 0x6f, 0x62, 0x6d, 0x39, 0x73, 0x62, 0x32, 0x64, 0x70, 0x5a, 0x58, 0x4d, 0x73, 0x49, 0x45, 0x6c, 0x75, 0x59, 0x79, 0x34, 0x78, 0x4a, 0x44, 0x41, 0x69, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x47, 0x31, 0x52, 0x79, 0x0a, 0x64, 0x58, 0x4e, 0x30, 0x51, 0x58, 0x4e, 0x70, 0x59, 0x53, 0x42, 0x48, 0x62, 0x47, 0x39, 0x69, 0x59, 0x57, 0x77, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x42, 0x44, 0x51, 0x53, 0x42, 0x48, 0x4e, 0x44, 0x41, 0x65, 0x46, 0x77, 0x30, 0x79, 0x4d, 0x54, 0x41, 0x31, 0x4d, 0x6a, 0x41, 0x77, 0x4d, 0x6a, 0x45, 0x77, 0x4d, 0x6a, 0x4a, 0x61, 0x46, 0x77, 0x30, 0x30, 0x4e, 0x6a, 0x41, 0x31, 0x4d, 0x54, 0x6b, 0x77, 0x4d, 0x6a, 0x45, 0x77, 0x4d, 0x6a, 0x4a, 0x61, 0x0a, 0x4d, 0x46, 0x6f, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6b, 0x4e, 0x4f, 0x4d, 0x53, 0x55, 0x77, 0x49, 0x77, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x42, 0x78, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x45, 0x46, 0x7a, 0x61, 0x57, 0x45, 0x67, 0x56, 0x47, 0x56, 0x6a, 0x61, 0x47, 0x35, 0x76, 0x62, 0x47, 0x39, 0x6e, 0x61, 0x57, 0x56, 0x7a, 0x4c, 0x43, 0x42, 0x4a, 0x62, 0x6d, 0x4d, 0x75, 0x4d, 0x53, 0x51, 0x77, 0x0a, 0x49, 0x67, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x44, 0x42, 0x74, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x45, 0x46, 0x7a, 0x61, 0x57, 0x45, 0x67, 0x52, 0x32, 0x78, 0x76, 0x59, 0x6d, 0x46, 0x73, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x51, 0x30, 0x45, 0x67, 0x52, 0x7a, 0x51, 0x77, 0x64, 0x6a, 0x41, 0x51, 0x42, 0x67, 0x63, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x49, 0x42, 0x42, 0x67, 0x55, 0x72, 0x67, 0x51, 0x51, 0x41, 0x49, 0x67, 0x4e, 0x69, 0x0a, 0x41, 0x41, 0x54, 0x78, 0x73, 0x38, 0x30, 0x34, 0x35, 0x43, 0x56, 0x44, 0x35, 0x64, 0x34, 0x5a, 0x43, 0x62, 0x75, 0x42, 0x65, 0x61, 0x49, 0x56, 0x58, 0x78, 0x56, 0x6a, 0x41, 0x64, 0x37, 0x43, 0x71, 0x39, 0x32, 0x7a, 0x70, 0x68, 0x74, 0x6e, 0x53, 0x34, 0x43, 0x44, 0x72, 0x35, 0x6e, 0x4c, 0x72, 0x42, 0x66, 0x62, 0x4b, 0x35, 0x62, 0x4b, 0x66, 0x46, 0x4a, 0x56, 0x34, 0x68, 0x72, 0x68, 0x50, 0x56, 0x62, 0x77, 0x4c, 0x78, 0x59, 0x49, 0x2b, 0x68, 0x57, 0x38, 0x0a, 0x6d, 0x37, 0x74, 0x48, 0x35, 0x6a, 0x2f, 0x75, 0x71, 0x4f, 0x46, 0x4d, 0x6a, 0x50, 0x58, 0x54, 0x4e, 0x76, 0x6b, 0x34, 0x58, 0x61, 0x74, 0x77, 0x6d, 0x6b, 0x63, 0x4e, 0x34, 0x6f, 0x46, 0x42, 0x42, 0x75, 0x74, 0x4a, 0x2b, 0x62, 0x41, 0x70, 0x33, 0x54, 0x50, 0x73, 0x55, 0x4b, 0x56, 0x2f, 0x65, 0x53, 0x6d, 0x34, 0x49, 0x4a, 0x69, 0x6a, 0x59, 0x7a, 0x42, 0x68, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x0a, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x48, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x6a, 0x42, 0x42, 0x67, 0x77, 0x46, 0x6f, 0x41, 0x55, 0x70, 0x62, 0x74, 0x4b, 0x6c, 0x38, 0x36, 0x7a, 0x4b, 0x33, 0x2b, 0x6b, 0x4d, 0x64, 0x36, 0x58, 0x67, 0x31, 0x6d, 0x44, 0x70, 0x6d, 0x39, 0x78, 0x79, 0x39, 0x34, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x4b, 0x57, 0x37, 0x53, 0x70, 0x66, 0x4f, 0x73, 0x79, 0x74, 0x2f, 0x0a, 0x70, 0x44, 0x48, 0x65, 0x6c, 0x34, 0x4e, 0x5a, 0x67, 0x36, 0x5a, 0x76, 0x63, 0x63, 0x76, 0x65, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x42, 0x6a, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x77, 0x4e, 0x6e, 0x41, 0x44, 0x42, 0x6b, 0x41, 0x6a, 0x42, 0x65, 0x38, 0x75, 0x73, 0x47, 0x7a, 0x45, 0x6b, 0x78, 0x6e, 0x30, 0x41, 0x41, 0x0a, 0x62, 0x62, 0x64, 0x2b, 0x4e, 0x76, 0x42, 0x4e, 0x45, 0x55, 0x2f, 0x7a, 0x79, 0x34, 0x6b, 0x36, 0x4c, 0x48, 0x69, 0x52, 0x55, 0x4b, 0x4e, 0x62, 0x77, 0x4d, 0x70, 0x31, 0x4a, 0x76, 0x4b, 0x2f, 0x6b, 0x46, 0x30, 0x4c, 0x67, 0x6f, 0x78, 0x67, 0x4b, 0x4a, 0x2f, 0x47, 0x63, 0x4a, 0x70, 0x6f, 0x35, 0x50, 0x45, 0x43, 0x4d, 0x46, 0x78, 0x59, 0x44, 0x6c, 0x5a, 0x32, 0x7a, 0x31, 0x6a, 0x44, 0x31, 0x78, 0x43, 0x4d, 0x75, 0x6f, 0x36, 0x75, 0x34, 0x37, 0x78, 0x6b, 0x0a, 0x64, 0x55, 0x66, 0x46, 0x56, 0x5a, 0x44, 0x6a, 0x2f, 0x62, 0x70, 0x56, 0x36, 0x77, 0x66, 0x45, 0x55, 0x36, 0x73, 0x33, 0x71, 0x65, 0x34, 0x68, 0x73, 0x69, 0x46, 0x62, 0x59, 0x49, 0x38, 0x39, 0x4d, 0x76, 0x48, 0x56, 0x49, 0x35, 0x54, 0x57, 0x57, 0x41, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x45, 0x43, 0x43, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x2d, 0x30, 0x31, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x48, 0x54, 0x43, 0x43, 0x41, 0x61, 0x4f, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x55, 0x51, 0x33, 0x43, 0x43, 0x64, 0x38, 0x39, 0x4e, 0x58, 0x54, 0x54, 0x78, 0x79, 0x71, 0x34, 0x79, 0x4c, 0x7a, 0x66, 0x33, 0x39, 0x48, 0x39, 0x31, 0x6f, 0x4a, 0x34, 0x77, 0x43, 0x67, 0x59, 0x49, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x45, 0x41, 0x77, 0x4d, 0x77, 0x54, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x0a, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x45, 0x6a, 0x41, 0x51, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x43, 0x55, 0x4e, 0x76, 0x62, 0x57, 0x31, 0x54, 0x59, 0x32, 0x39, 0x77, 0x5a, 0x54, 0x45, 0x72, 0x4d, 0x43, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x77, 0x77, 0x69, 0x51, 0x32, 0x39, 0x74, 0x62, 0x56, 0x4e, 0x6a, 0x62, 0x33, 0x42, 0x6c, 0x49, 0x46, 0x42, 0x31, 0x59, 0x6d, 0x78, 0x70, 0x59, 0x79, 0x42, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x0a, 0x64, 0x43, 0x42, 0x46, 0x51, 0x30, 0x4d, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x30, 0x77, 0x4d, 0x54, 0x41, 0x65, 0x46, 0x77, 0x30, 0x79, 0x4d, 0x54, 0x41, 0x30, 0x4d, 0x6a, 0x67, 0x78, 0x4e, 0x7a, 0x4d, 0x31, 0x4e, 0x44, 0x4e, 0x61, 0x46, 0x77, 0x30, 0x30, 0x4e, 0x6a, 0x41, 0x30, 0x4d, 0x6a, 0x67, 0x78, 0x4e, 0x7a, 0x4d, 0x31, 0x4e, 0x44, 0x4a, 0x61, 0x4d, 0x45, 0x34, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x0a, 0x41, 0x6c, 0x56, 0x54, 0x4d, 0x52, 0x49, 0x77, 0x45, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x41, 0x6c, 0x44, 0x62, 0x32, 0x31, 0x74, 0x55, 0x32, 0x4e, 0x76, 0x63, 0x47, 0x55, 0x78, 0x4b, 0x7a, 0x41, 0x70, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x49, 0x6b, 0x4e, 0x76, 0x62, 0x57, 0x31, 0x54, 0x59, 0x32, 0x39, 0x77, 0x5a, 0x53, 0x42, 0x51, 0x64, 0x57, 0x4a, 0x73, 0x61, 0x57, 0x4d, 0x67, 0x56, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x67, 0x0a, 0x52, 0x55, 0x4e, 0x44, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x74, 0x4d, 0x44, 0x45, 0x77, 0x64, 0x6a, 0x41, 0x51, 0x42, 0x67, 0x63, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x49, 0x42, 0x42, 0x67, 0x55, 0x72, 0x67, 0x51, 0x51, 0x41, 0x49, 0x67, 0x4e, 0x69, 0x41, 0x41, 0x52, 0x4c, 0x4e, 0x75, 0x6d, 0x75, 0x56, 0x31, 0x36, 0x6f, 0x63, 0x4e, 0x66, 0x51, 0x6a, 0x33, 0x52, 0x69, 0x64, 0x38, 0x4e, 0x65, 0x65, 0x71, 0x72, 0x6c, 0x74, 0x71, 0x4c, 0x78, 0x0a, 0x65, 0x50, 0x30, 0x43, 0x66, 0x6c, 0x66, 0x64, 0x6b, 0x58, 0x6d, 0x63, 0x62, 0x4c, 0x6c, 0x53, 0x69, 0x46, 0x53, 0x38, 0x4c, 0x77, 0x53, 0x2b, 0x75, 0x4d, 0x33, 0x32, 0x45, 0x4e, 0x45, 0x70, 0x37, 0x4c, 0x58, 0x51, 0x6f, 0x4d, 0x50, 0x77, 0x69, 0x58, 0x41, 0x5a, 0x75, 0x31, 0x46, 0x6c, 0x78, 0x55, 0x4f, 0x63, 0x77, 0x35, 0x74, 0x6a, 0x6e, 0x53, 0x43, 0x44, 0x50, 0x67, 0x59, 0x4c, 0x70, 0x6b, 0x4a, 0x45, 0x68, 0x52, 0x47, 0x6e, 0x53, 0x6a, 0x6f, 0x74, 0x0a, 0x36, 0x64, 0x5a, 0x6f, 0x4c, 0x30, 0x68, 0x4f, 0x55, 0x79, 0x73, 0x48, 0x50, 0x30, 0x32, 0x39, 0x75, 0x61, 0x78, 0x33, 0x4f, 0x56, 0x65, 0x6a, 0x51, 0x6a, 0x42, 0x41, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x45, 0x47, 0x4d, 0x42, 0x30, 0x47, 0x0a, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x53, 0x4f, 0x42, 0x32, 0x4c, 0x41, 0x55, 0x4e, 0x33, 0x47, 0x47, 0x51, 0x59, 0x41, 0x52, 0x6e, 0x51, 0x45, 0x39, 0x2f, 0x4f, 0x75, 0x66, 0x58, 0x56, 0x4e, 0x4d, 0x44, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x77, 0x4e, 0x6f, 0x41, 0x44, 0x42, 0x6c, 0x41, 0x6a, 0x45, 0x41, 0x6e, 0x44, 0x50, 0x66, 0x51, 0x65, 0x4d, 0x6a, 0x71, 0x45, 0x49, 0x32, 0x0a, 0x4a, 0x70, 0x63, 0x31, 0x58, 0x48, 0x76, 0x72, 0x32, 0x30, 0x76, 0x34, 0x71, 0x6f, 0x74, 0x7a, 0x56, 0x52, 0x56, 0x63, 0x72, 0x48, 0x67, 0x70, 0x44, 0x37, 0x6f, 0x68, 0x32, 0x4d, 0x53, 0x67, 0x32, 0x4e, 0x45, 0x44, 0x33, 0x57, 0x33, 0x52, 0x4f, 0x54, 0x33, 0x45, 0x6b, 0x32, 0x44, 0x53, 0x34, 0x33, 0x4b, 0x79, 0x41, 0x6a, 0x42, 0x38, 0x78, 0x58, 0x36, 0x49, 0x30, 0x31, 0x44, 0x31, 0x48, 0x69, 0x58, 0x6f, 0x2b, 0x6b, 0x35, 0x31, 0x35, 0x6c, 0x69, 0x57, 0x0a, 0x70, 0x44, 0x56, 0x66, 0x47, 0x32, 0x58, 0x71, 0x59, 0x5a, 0x70, 0x77, 0x49, 0x37, 0x55, 0x4e, 0x6f, 0x35, 0x75, 0x53, 0x55, 0x6d, 0x39, 0x70, 0x6f, 0x49, 0x79, 0x4e, 0x53, 0x74, 0x44, 0x75, 0x69, 0x77, 0x37, 0x4c, 0x52, 0x34, 0x37, 0x51, 0x6a, 0x52, 0x45, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x45, 0x43, 0x43, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x2d, 0x30, 0x32, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x48, 0x44, 0x43, 0x43, 0x41, 0x61, 0x4f, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x55, 0x4b, 0x50, 0x32, 0x5a, 0x59, 0x45, 0x46, 0x48, 0x70, 0x67, 0x45, 0x36, 0x79, 0x68, 0x52, 0x37, 0x48, 0x2b, 0x2f, 0x35, 0x61, 0x41, 0x69, 0x44, 0x58, 0x58, 0x30, 0x77, 0x43, 0x67, 0x59, 0x49, 0x4b, 0x6f, 0x5a, 0x49, 0x7a, 0x6a, 0x30, 0x45, 0x41, 0x77, 0x4d, 0x77, 0x54, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x0a, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x45, 0x6a, 0x41, 0x51, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x43, 0x55, 0x4e, 0x76, 0x62, 0x57, 0x31, 0x54, 0x59, 0x32, 0x39, 0x77, 0x5a, 0x54, 0x45, 0x72, 0x4d, 0x43, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x77, 0x77, 0x69, 0x51, 0x32, 0x39, 0x74, 0x62, 0x56, 0x4e, 0x6a, 0x62, 0x33, 0x42, 0x6c, 0x49, 0x46, 0x42, 0x31, 0x59, 0x6d, 0x78, 0x70, 0x59, 0x79, 0x42, 0x55, 0x63, 0x6e, 0x56, 0x7a, 0x0a, 0x64, 0x43, 0x42, 0x46, 0x51, 0x30, 0x4d, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x30, 0x77, 0x4d, 0x6a, 0x41, 0x65, 0x46, 0x77, 0x30, 0x79, 0x4d, 0x54, 0x41, 0x30, 0x4d, 0x6a, 0x67, 0x78, 0x4e, 0x7a, 0x51, 0x30, 0x4e, 0x54, 0x52, 0x61, 0x46, 0x77, 0x30, 0x30, 0x4e, 0x6a, 0x41, 0x30, 0x4d, 0x6a, 0x67, 0x78, 0x4e, 0x7a, 0x51, 0x30, 0x4e, 0x54, 0x4e, 0x61, 0x4d, 0x45, 0x34, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x59, 0x54, 0x0a, 0x41, 0x6c, 0x56, 0x54, 0x4d, 0x52, 0x49, 0x77, 0x45, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x41, 0x6c, 0x44, 0x62, 0x32, 0x31, 0x74, 0x55, 0x32, 0x4e, 0x76, 0x63, 0x47, 0x55, 0x78, 0x4b, 0x7a, 0x41, 0x70, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x49, 0x6b, 0x4e, 0x76, 0x62, 0x57, 0x31, 0x54, 0x59, 0x32, 0x39, 0x77, 0x5a, 0x53, 0x42, 0x51, 0x64, 0x57, 0x4a, 0x73, 0x61, 0x57, 0x4d, 0x67, 0x56, 0x48, 0x4a, 0x31, 0x63, 0x33, 0x51, 0x67, 0x0a, 0x52, 0x55, 0x4e, 0x44, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x74, 0x4d, 0x44, 0x49, 0x77, 0x64, 0x6a, 0x41, 0x51, 0x42, 0x67, 0x63, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x49, 0x42, 0x42, 0x67, 0x55, 0x72, 0x67, 0x51, 0x51, 0x41, 0x49, 0x67, 0x4e, 0x69, 0x41, 0x41, 0x52, 0x34, 0x4d, 0x49, 0x48, 0x6f, 0x59, 0x78, 0x37, 0x6c, 0x36, 0x33, 0x46, 0x52, 0x44, 0x2f, 0x63, 0x48, 0x42, 0x38, 0x6f, 0x35, 0x6d, 0x58, 0x78, 0x4f, 0x31, 0x51, 0x2f, 0x4d, 0x0a, 0x4d, 0x44, 0x41, 0x4c, 0x6a, 0x32, 0x61, 0x54, 0x50, 0x73, 0x2b, 0x39, 0x78, 0x59, 0x61, 0x39, 0x2b, 0x62, 0x47, 0x33, 0x74, 0x44, 0x36, 0x30, 0x42, 0x38, 0x6a, 0x7a, 0x6c, 0x6a, 0x48, 0x7a, 0x37, 0x61, 0x52, 0x50, 0x2b, 0x4b, 0x4e, 0x4f, 0x6a, 0x53, 0x6b, 0x56, 0x57, 0x4c, 0x6a, 0x56, 0x62, 0x33, 0x2f, 0x75, 0x62, 0x43, 0x4b, 0x31, 0x73, 0x4b, 0x39, 0x49, 0x52, 0x51, 0x71, 0x39, 0x71, 0x45, 0x6d, 0x55, 0x76, 0x34, 0x52, 0x44, 0x73, 0x4e, 0x75, 0x45, 0x0a, 0x53, 0x67, 0x4d, 0x6a, 0x47, 0x57, 0x64, 0x71, 0x62, 0x38, 0x46, 0x75, 0x76, 0x41, 0x59, 0x35, 0x4e, 0x39, 0x47, 0x49, 0x49, 0x76, 0x65, 0x6a, 0x51, 0x6a, 0x42, 0x41, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x45, 0x47, 0x4d, 0x42, 0x30, 0x47, 0x0a, 0x41, 0x31, 0x55, 0x64, 0x44, 0x67, 0x51, 0x57, 0x42, 0x42, 0x54, 0x6d, 0x47, 0x48, 0x58, 0x2f, 0x37, 0x32, 0x44, 0x65, 0x68, 0x4b, 0x54, 0x31, 0x52, 0x73, 0x66, 0x65, 0x53, 0x6c, 0x58, 0x6a, 0x4d, 0x6a, 0x5a, 0x35, 0x39, 0x54, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x77, 0x4e, 0x6e, 0x41, 0x44, 0x42, 0x6b, 0x41, 0x6a, 0x41, 0x6d, 0x63, 0x30, 0x6c, 0x36, 0x74, 0x71, 0x76, 0x6d, 0x53, 0x66, 0x52, 0x39, 0x0a, 0x55, 0x6a, 0x2f, 0x55, 0x51, 0x51, 0x53, 0x75, 0x67, 0x45, 0x4f, 0x44, 0x5a, 0x58, 0x57, 0x35, 0x68, 0x59, 0x41, 0x34, 0x4f, 0x39, 0x5a, 0x76, 0x35, 0x4a, 0x4f, 0x47, 0x71, 0x34, 0x2f, 0x6e, 0x69, 0x63, 0x68, 0x2f, 0x6d, 0x33, 0x35, 0x72, 0x43, 0x68, 0x4a, 0x56, 0x59, 0x61, 0x6f, 0x52, 0x34, 0x48, 0x6b, 0x43, 0x4d, 0x48, 0x66, 0x6f, 0x4d, 0x58, 0x47, 0x73, 0x50, 0x48, 0x45, 0x44, 0x31, 0x6f, 0x51, 0x6d, 0x48, 0x68, 0x53, 0x34, 0x38, 0x7a, 0x73, 0x37, 0x0a, 0x33, 0x75, 0x31, 0x5a, 0x2f, 0x47, 0x74, 0x4d, 0x4d, 0x48, 0x39, 0x5a, 0x7a, 0x6b, 0x58, 0x70, 0x63, 0x32, 0x41, 0x56, 0x6d, 0x6b, 0x7a, 0x77, 0x35, 0x6c, 0x34, 0x6c, 0x49, 0x68, 0x56, 0x74, 0x77, 0x6f, 0x64, 0x5a, 0x30, 0x4c, 0x4b, 0x4f, 0x61, 0x67, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x52, 0x53, 0x41, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x2d, 0x30, 0x31, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x62, 0x44, 0x43, 0x43, 0x41, 0x31, 0x53, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x55, 0x50, 0x67, 0x4e, 0x4a, 0x67, 0x58, 0x55, 0x57, 0x64, 0x44, 0x47, 0x4f, 0x54, 0x4b, 0x76, 0x56, 0x78, 0x5a, 0x41, 0x70, 0x6c, 0x73, 0x55, 0x35, 0x45, 0x4e, 0x30, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x77, 0x54, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x0a, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x45, 0x6a, 0x41, 0x51, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x43, 0x55, 0x4e, 0x76, 0x62, 0x57, 0x31, 0x54, 0x59, 0x32, 0x39, 0x77, 0x5a, 0x54, 0x45, 0x72, 0x4d, 0x43, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x77, 0x77, 0x69, 0x51, 0x32, 0x39, 0x74, 0x62, 0x56, 0x4e, 0x6a, 0x62, 0x33, 0x42, 0x6c, 0x49, 0x46, 0x42, 0x31, 0x59, 0x6d, 0x78, 0x70, 0x59, 0x79, 0x42, 0x55, 0x0a, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x42, 0x53, 0x55, 0x30, 0x45, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x30, 0x77, 0x4d, 0x54, 0x41, 0x65, 0x46, 0x77, 0x30, 0x79, 0x4d, 0x54, 0x41, 0x30, 0x4d, 0x6a, 0x67, 0x78, 0x4e, 0x6a, 0x51, 0x31, 0x4e, 0x54, 0x52, 0x61, 0x46, 0x77, 0x30, 0x30, 0x4e, 0x6a, 0x41, 0x30, 0x4d, 0x6a, 0x67, 0x78, 0x4e, 0x6a, 0x51, 0x31, 0x4e, 0x54, 0x4e, 0x61, 0x4d, 0x45, 0x34, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x0a, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6c, 0x56, 0x54, 0x4d, 0x52, 0x49, 0x77, 0x45, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x41, 0x6c, 0x44, 0x62, 0x32, 0x31, 0x74, 0x55, 0x32, 0x4e, 0x76, 0x63, 0x47, 0x55, 0x78, 0x4b, 0x7a, 0x41, 0x70, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x49, 0x6b, 0x4e, 0x76, 0x62, 0x57, 0x31, 0x54, 0x59, 0x32, 0x39, 0x77, 0x5a, 0x53, 0x42, 0x51, 0x64, 0x57, 0x4a, 0x73, 0x61, 0x57, 0x4d, 0x67, 0x56, 0x48, 0x4a, 0x31, 0x0a, 0x63, 0x33, 0x51, 0x67, 0x55, 0x6c, 0x4e, 0x42, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x74, 0x4d, 0x44, 0x45, 0x77, 0x67, 0x67, 0x49, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x49, 0x4b, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x43, 0x77, 0x53, 0x47, 0x57, 0x6a, 0x44, 0x52, 0x31, 0x43, 0x34, 0x35, 0x46, 0x74, 0x0a, 0x6e, 0x59, 0x53, 0x6b, 0x59, 0x5a, 0x59, 0x53, 0x77, 0x75, 0x33, 0x44, 0x32, 0x69, 0x4d, 0x30, 0x47, 0x58, 0x62, 0x32, 0x36, 0x76, 0x31, 0x56, 0x57, 0x76, 0x5a, 0x56, 0x41, 0x56, 0x4d, 0x50, 0x38, 0x73, 0x79, 0x4d, 0x6c, 0x30, 0x2b, 0x35, 0x55, 0x4d, 0x75, 0x7a, 0x41, 0x55, 0x52, 0x57, 0x6c, 0x76, 0x32, 0x62, 0x4b, 0x4f, 0x78, 0x37, 0x64, 0x41, 0x76, 0x6e, 0x51, 0x6d, 0x74, 0x56, 0x7a, 0x73, 0x6c, 0x68, 0x73, 0x75, 0x69, 0x74, 0x51, 0x44, 0x79, 0x36, 0x0a, 0x75, 0x55, 0x45, 0x4b, 0x42, 0x55, 0x38, 0x62, 0x4a, 0x6f, 0x57, 0x50, 0x51, 0x37, 0x56, 0x41, 0x74, 0x59, 0x58, 0x52, 0x31, 0x48, 0x48, 0x63, 0x67, 0x30, 0x48, 0x7a, 0x39, 0x6b, 0x58, 0x48, 0x67, 0x4b, 0x4b, 0x45, 0x55, 0x4a, 0x64, 0x47, 0x7a, 0x71, 0x41, 0x4d, 0x78, 0x47, 0x42, 0x57, 0x42, 0x42, 0x30, 0x48, 0x57, 0x30, 0x61, 0x6c, 0x44, 0x72, 0x4a, 0x4c, 0x70, 0x41, 0x36, 0x6c, 0x66, 0x4f, 0x37, 0x34, 0x31, 0x47, 0x49, 0x44, 0x75, 0x5a, 0x4e, 0x71, 0x0a, 0x69, 0x68, 0x53, 0x34, 0x63, 0x50, 0x67, 0x75, 0x67, 0x6b, 0x59, 0x34, 0x49, 0x77, 0x35, 0x30, 0x78, 0x32, 0x74, 0x42, 0x74, 0x39, 0x41, 0x70, 0x6f, 0x35, 0x32, 0x41, 0x73, 0x48, 0x35, 0x33, 0x6b, 0x32, 0x4e, 0x43, 0x2b, 0x7a, 0x53, 0x44, 0x4f, 0x33, 0x4f, 0x6a, 0x57, 0x69, 0x45, 0x32, 0x36, 0x30, 0x66, 0x36, 0x47, 0x42, 0x66, 0x5a, 0x75, 0x6d, 0x62, 0x43, 0x6b, 0x36, 0x53, 0x50, 0x2f, 0x46, 0x32, 0x6b, 0x72, 0x66, 0x78, 0x51, 0x61, 0x70, 0x57, 0x73, 0x0a, 0x76, 0x43, 0x51, 0x7a, 0x30, 0x62, 0x32, 0x49, 0x66, 0x34, 0x62, 0x31, 0x39, 0x62, 0x4a, 0x7a, 0x4b, 0x6f, 0x39, 0x38, 0x72, 0x77, 0x6a, 0x79, 0x47, 0x70, 0x67, 0x2f, 0x71, 0x59, 0x46, 0x6c, 0x50, 0x38, 0x47, 0x4d, 0x69, 0x63, 0x57, 0x57, 0x4d, 0x4a, 0x6f, 0x4b, 0x7a, 0x2f, 0x54, 0x55, 0x79, 0x44, 0x54, 0x74, 0x6e, 0x53, 0x2b, 0x38, 0x6a, 0x54, 0x69, 0x47, 0x55, 0x2b, 0x36, 0x58, 0x6e, 0x36, 0x6d, 0x79, 0x59, 0x35, 0x51, 0x58, 0x6a, 0x51, 0x2f, 0x63, 0x0a, 0x5a, 0x69, 0x70, 0x38, 0x55, 0x6c, 0x46, 0x31, 0x79, 0x35, 0x6d, 0x4f, 0x36, 0x44, 0x31, 0x63, 0x76, 0x35, 0x34, 0x37, 0x4b, 0x49, 0x32, 0x44, 0x41, 0x67, 0x2b, 0x70, 0x6e, 0x33, 0x4c, 0x69, 0x4c, 0x43, 0x75, 0x7a, 0x33, 0x47, 0x61, 0x58, 0x41, 0x45, 0x44, 0x51, 0x70, 0x46, 0x53, 0x4f, 0x6d, 0x31, 0x31, 0x37, 0x52, 0x54, 0x59, 0x6d, 0x31, 0x6e, 0x4a, 0x44, 0x36, 0x38, 0x2f, 0x41, 0x36, 0x67, 0x33, 0x63, 0x7a, 0x68, 0x4c, 0x6d, 0x66, 0x54, 0x69, 0x66, 0x0a, 0x42, 0x53, 0x65, 0x6f, 0x6c, 0x7a, 0x37, 0x70, 0x55, 0x63, 0x5a, 0x73, 0x42, 0x53, 0x6a, 0x42, 0x41, 0x67, 0x2f, 0x70, 0x47, 0x47, 0x33, 0x73, 0x76, 0x5a, 0x77, 0x47, 0x31, 0x4b, 0x64, 0x4a, 0x39, 0x46, 0x51, 0x46, 0x61, 0x32, 0x77, 0x77, 0x38, 0x65, 0x73, 0x44, 0x31, 0x65, 0x6f, 0x39, 0x61, 0x6e, 0x62, 0x43, 0x79, 0x78, 0x6f, 0x6f, 0x53, 0x55, 0x31, 0x2f, 0x5a, 0x4f, 0x44, 0x36, 0x4b, 0x39, 0x70, 0x7a, 0x67, 0x34, 0x48, 0x2f, 0x6b, 0x51, 0x4f, 0x39, 0x0a, 0x6c, 0x4c, 0x76, 0x6b, 0x75, 0x49, 0x36, 0x63, 0x4d, 0x6d, 0x50, 0x4e, 0x6e, 0x37, 0x74, 0x6f, 0x67, 0x62, 0x47, 0x45, 0x57, 0x36, 0x38, 0x32, 0x76, 0x33, 0x66, 0x75, 0x48, 0x58, 0x2f, 0x33, 0x53, 0x5a, 0x74, 0x53, 0x37, 0x4e, 0x4a, 0x33, 0x57, 0x6e, 0x32, 0x52, 0x6e, 0x55, 0x33, 0x43, 0x4f, 0x53, 0x33, 0x6b, 0x75, 0x6f, 0x4c, 0x34, 0x62, 0x2f, 0x4a, 0x4f, 0x48, 0x67, 0x39, 0x4f, 0x35, 0x6a, 0x39, 0x5a, 0x70, 0x53, 0x50, 0x63, 0x50, 0x59, 0x65, 0x6f, 0x0a, 0x4b, 0x46, 0x67, 0x6f, 0x30, 0x66, 0x45, 0x62, 0x4e, 0x74, 0x74, 0x50, 0x78, 0x50, 0x2f, 0x68, 0x6a, 0x46, 0x74, 0x79, 0x6a, 0x4d, 0x63, 0x6d, 0x41, 0x79, 0x65, 0x6a, 0x4f, 0x51, 0x6f, 0x42, 0x71, 0x73, 0x43, 0x79, 0x4d, 0x57, 0x43, 0x44, 0x49, 0x71, 0x46, 0x50, 0x45, 0x67, 0x6b, 0x42, 0x45, 0x61, 0x38, 0x30, 0x31, 0x4d, 0x2f, 0x58, 0x72, 0x6d, 0x4c, 0x54, 0x42, 0x51, 0x65, 0x30, 0x4d, 0x58, 0x58, 0x67, 0x44, 0x57, 0x31, 0x58, 0x54, 0x32, 0x6d, 0x48, 0x0a, 0x2b, 0x56, 0x65, 0x70, 0x75, 0x68, 0x58, 0x32, 0x79, 0x46, 0x4a, 0x74, 0x6f, 0x63, 0x75, 0x63, 0x48, 0x2b, 0x58, 0x38, 0x65, 0x4b, 0x67, 0x31, 0x6d, 0x70, 0x39, 0x42, 0x46, 0x4d, 0x36, 0x6c, 0x74, 0x4d, 0x36, 0x55, 0x43, 0x42, 0x77, 0x4a, 0x72, 0x56, 0x62, 0x6c, 0x32, 0x72, 0x5a, 0x4a, 0x6d, 0x6b, 0x72, 0x71, 0x59, 0x78, 0x68, 0x54, 0x6e, 0x43, 0x77, 0x75, 0x77, 0x77, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x50, 0x0a, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x42, 0x6a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x4e, 0x31, 0x32, 0x6d, 0x6d, 0x6e, 0x51, 0x79, 0x77, 0x73, 0x4c, 0x35, 0x78, 0x36, 0x59, 0x56, 0x45, 0x46, 0x6d, 0x34, 0x0a, 0x35, 0x50, 0x33, 0x6c, 0x75, 0x47, 0x30, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x42, 0x41, 0x4b, 0x2b, 0x6e, 0x7a, 0x39, 0x37, 0x2f, 0x34, 0x4c, 0x31, 0x43, 0x6a, 0x55, 0x33, 0x6c, 0x49, 0x70, 0x62, 0x66, 0x61, 0x4f, 0x70, 0x39, 0x54, 0x53, 0x70, 0x39, 0x30, 0x4b, 0x30, 0x39, 0x46, 0x6c, 0x78, 0x44, 0x35, 0x33, 0x33, 0x41, 0x68, 0x75, 0x68, 0x36, 0x0a, 0x4e, 0x57, 0x50, 0x78, 0x7a, 0x49, 0x48, 0x49, 0x78, 0x67, 0x76, 0x6f, 0x4c, 0x6c, 0x49, 0x31, 0x70, 0x4b, 0x5a, 0x4a, 0x6b, 0x47, 0x4e, 0x52, 0x72, 0x44, 0x53, 0x73, 0x42, 0x54, 0x74, 0x58, 0x41, 0x4f, 0x6e, 0x54, 0x59, 0x74, 0x50, 0x5a, 0x4b, 0x64, 0x56, 0x55, 0x76, 0x68, 0x77, 0x51, 0x6b, 0x5a, 0x79, 0x79, 0x62, 0x66, 0x35, 0x5a, 0x2f, 0x58, 0x6e, 0x33, 0x36, 0x6c, 0x62, 0x51, 0x6e, 0x6d, 0x68, 0x55, 0x51, 0x6f, 0x38, 0x6d, 0x55, 0x75, 0x4a, 0x4d, 0x0a, 0x33, 0x79, 0x2b, 0x58, 0x70, 0x69, 0x2f, 0x53, 0x42, 0x35, 0x69, 0x6f, 0x38, 0x32, 0x42, 0x64, 0x53, 0x35, 0x70, 0x59, 0x56, 0x34, 0x6a, 0x76, 0x67, 0x75, 0x58, 0x36, 0x72, 0x32, 0x79, 0x42, 0x53, 0x35, 0x4b, 0x50, 0x51, 0x4a, 0x71, 0x54, 0x52, 0x6c, 0x6e, 0x4c, 0x58, 0x33, 0x67, 0x57, 0x73, 0x57, 0x63, 0x2b, 0x51, 0x67, 0x76, 0x66, 0x4b, 0x4e, 0x6d, 0x77, 0x72, 0x5a, 0x67, 0x67, 0x76, 0x6b, 0x4e, 0x38, 0x30, 0x56, 0x34, 0x61, 0x43, 0x52, 0x63, 0x6b, 0x0a, 0x6a, 0x58, 0x74, 0x64, 0x6c, 0x65, 0x6d, 0x72, 0x77, 0x57, 0x43, 0x72, 0x57, 0x78, 0x68, 0x6b, 0x67, 0x50, 0x75, 0x74, 0x34, 0x41, 0x5a, 0x39, 0x48, 0x63, 0x70, 0x5a, 0x75, 0x50, 0x4e, 0x34, 0x4b, 0x57, 0x66, 0x47, 0x56, 0x68, 0x32, 0x76, 0x74, 0x72, 0x56, 0x30, 0x4b, 0x6e, 0x61, 0x68, 0x50, 0x2f, 0x74, 0x31, 0x4d, 0x4a, 0x2b, 0x55, 0x58, 0x6a, 0x75, 0x6c, 0x59, 0x50, 0x50, 0x4c, 0x58, 0x41, 0x7a, 0x69, 0x44, 0x73, 0x6c, 0x67, 0x2b, 0x4d, 0x6b, 0x66, 0x0a, 0x46, 0x6f, 0x6f, 0x6d, 0x33, 0x65, 0x63, 0x6e, 0x66, 0x2b, 0x73, 0x6c, 0x70, 0x6f, 0x71, 0x39, 0x75, 0x43, 0x30, 0x32, 0x45, 0x4a, 0x71, 0x78, 0x57, 0x45, 0x32, 0x61, 0x61, 0x45, 0x39, 0x67, 0x56, 0x4f, 0x58, 0x32, 0x52, 0x68, 0x4f, 0x4f, 0x69, 0x4b, 0x79, 0x38, 0x49, 0x55, 0x49, 0x53, 0x72, 0x63, 0x5a, 0x4b, 0x69, 0x58, 0x32, 0x62, 0x77, 0x64, 0x67, 0x74, 0x36, 0x5a, 0x59, 0x44, 0x39, 0x4b, 0x4a, 0x30, 0x44, 0x4c, 0x77, 0x41, 0x48, 0x62, 0x2f, 0x57, 0x0a, 0x4e, 0x79, 0x56, 0x6e, 0x74, 0x48, 0x4b, 0x4c, 0x72, 0x34, 0x57, 0x39, 0x36, 0x69, 0x6f, 0x44, 0x6a, 0x38, 0x7a, 0x37, 0x50, 0x45, 0x51, 0x6b, 0x67, 0x75, 0x49, 0x42, 0x70, 0x51, 0x74, 0x5a, 0x74, 0x6a, 0x53, 0x4e, 0x4d, 0x67, 0x73, 0x53, 0x44, 0x65, 0x73, 0x6e, 0x77, 0x76, 0x31, 0x42, 0x31, 0x30, 0x41, 0x38, 0x63, 0x6b, 0x59, 0x70, 0x77, 0x49, 0x7a, 0x71, 0x75, 0x67, 0x2f, 0x78, 0x42, 0x70, 0x4d, 0x75, 0x39, 0x35, 0x79, 0x6f, 0x39, 0x47, 0x41, 0x2b, 0x0a, 0x6f, 0x2f, 0x45, 0x34, 0x58, 0x6f, 0x34, 0x54, 0x77, 0x62, 0x4d, 0x36, 0x6c, 0x34, 0x63, 0x2f, 0x6b, 0x73, 0x70, 0x34, 0x71, 0x52, 0x79, 0x76, 0x30, 0x4c, 0x41, 0x62, 0x4a, 0x68, 0x36, 0x2b, 0x63, 0x4f, 0x78, 0x36, 0x39, 0x54, 0x4f, 0x59, 0x36, 0x6c, 0x7a, 0x2f, 0x4b, 0x77, 0x73, 0x45, 0x54, 0x6b, 0x50, 0x64, 0x59, 0x33, 0x34, 0x4f, 0x70, 0x30, 0x35, 0x34, 0x41, 0x35, 0x55, 0x2b, 0x31, 0x43, 0x30, 0x77, 0x6c, 0x52, 0x45, 0x51, 0x4b, 0x43, 0x36, 0x2f, 0x0a, 0x6f, 0x41, 0x49, 0x2b, 0x2f, 0x31, 0x35, 0x5a, 0x30, 0x77, 0x55, 0x4f, 0x6c, 0x56, 0x39, 0x54, 0x52, 0x65, 0x39, 0x72, 0x68, 0x39, 0x56, 0x49, 0x7a, 0x52, 0x61, 0x6d, 0x6c, 0x6f, 0x50, 0x68, 0x33, 0x37, 0x4d, 0x47, 0x38, 0x38, 0x45, 0x55, 0x32, 0x36, 0x66, 0x73, 0x48, 0x49, 0x74, 0x64, 0x6b, 0x4a, 0x41, 0x4e, 0x63, 0x6c, 0x48, 0x6e, 0x59, 0x66, 0x6b, 0x55, 0x79, 0x71, 0x2b, 0x44, 0x6a, 0x37, 0x2b, 0x76, 0x73, 0x51, 0x70, 0x5a, 0x58, 0x64, 0x78, 0x63, 0x0a, 0x31, 0x2b, 0x53, 0x57, 0x72, 0x56, 0x74, 0x67, 0x48, 0x64, 0x71, 0x75, 0x6c, 0x37, 0x49, 0x35, 0x32, 0x51, 0x62, 0x31, 0x64, 0x67, 0x41, 0x54, 0x2b, 0x47, 0x68, 0x4d, 0x49, 0x62, 0x41, 0x31, 0x78, 0x4e, 0x78, 0x56, 0x73, 0x73, 0x6e, 0x42, 0x51, 0x56, 0x6f, 0x63, 0x69, 0x63, 0x43, 0x4d, 0x62, 0x33, 0x53, 0x67, 0x61, 0x7a, 0x4e, 0x4e, 0x74, 0x51, 0x45, 0x6f, 0x2f, 0x61, 0x32, 0x74, 0x69, 0x52, 0x63, 0x37, 0x70, 0x70, 0x71, 0x45, 0x76, 0x4f, 0x75, 0x4d, 0x0a, 0x36, 0x73, 0x52, 0x78, 0x4a, 0x4b, 0x69, 0x36, 0x4b, 0x66, 0x6b, 0x49, 0x73, 0x69, 0x64, 0x57, 0x4e, 0x54, 0x4a, 0x66, 0x36, 0x6a, 0x6e, 0x37, 0x4d, 0x5a, 0x72, 0x56, 0x47, 0x63, 0x7a, 0x77, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x52, 0x53, 0x41, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x2d, 0x30, 0x32, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x62, 0x44, 0x43, 0x43, 0x41, 0x31, 0x53, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x55, 0x56, 0x42, 0x61, 0x2f, 0x4f, 0x33, 0x34, 0x35, 0x6c, 0x58, 0x47, 0x4e, 0x30, 0x61, 0x6f, 0x41, 0x70, 0x59, 0x59, 0x4e, 0x4b, 0x34, 0x39, 0x36, 0x42, 0x55, 0x34, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x77, 0x54, 0x6a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x0a, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x56, 0x56, 0x4d, 0x78, 0x45, 0x6a, 0x41, 0x51, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x43, 0x55, 0x4e, 0x76, 0x62, 0x57, 0x31, 0x54, 0x59, 0x32, 0x39, 0x77, 0x5a, 0x54, 0x45, 0x72, 0x4d, 0x43, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x77, 0x77, 0x69, 0x51, 0x32, 0x39, 0x74, 0x62, 0x56, 0x4e, 0x6a, 0x62, 0x33, 0x42, 0x6c, 0x49, 0x46, 0x42, 0x31, 0x59, 0x6d, 0x78, 0x70, 0x59, 0x79, 0x42, 0x55, 0x0a, 0x63, 0x6e, 0x56, 0x7a, 0x64, 0x43, 0x42, 0x53, 0x55, 0x30, 0x45, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x30, 0x77, 0x4d, 0x6a, 0x41, 0x65, 0x46, 0x77, 0x30, 0x79, 0x4d, 0x54, 0x41, 0x30, 0x4d, 0x6a, 0x67, 0x78, 0x4e, 0x7a, 0x45, 0x32, 0x4e, 0x44, 0x4e, 0x61, 0x46, 0x77, 0x30, 0x30, 0x4e, 0x6a, 0x41, 0x30, 0x4d, 0x6a, 0x67, 0x78, 0x4e, 0x7a, 0x45, 0x32, 0x4e, 0x44, 0x4a, 0x61, 0x4d, 0x45, 0x34, 0x78, 0x43, 0x7a, 0x41, 0x4a, 0x42, 0x67, 0x4e, 0x56, 0x0a, 0x42, 0x41, 0x59, 0x54, 0x41, 0x6c, 0x56, 0x54, 0x4d, 0x52, 0x49, 0x77, 0x45, 0x41, 0x59, 0x44, 0x56, 0x51, 0x51, 0x4b, 0x44, 0x41, 0x6c, 0x44, 0x62, 0x32, 0x31, 0x74, 0x55, 0x32, 0x4e, 0x76, 0x63, 0x47, 0x55, 0x78, 0x4b, 0x7a, 0x41, 0x70, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x4d, 0x4d, 0x49, 0x6b, 0x4e, 0x76, 0x62, 0x57, 0x31, 0x54, 0x59, 0x32, 0x39, 0x77, 0x5a, 0x53, 0x42, 0x51, 0x64, 0x57, 0x4a, 0x73, 0x61, 0x57, 0x4d, 0x67, 0x56, 0x48, 0x4a, 0x31, 0x0a, 0x63, 0x33, 0x51, 0x67, 0x55, 0x6c, 0x4e, 0x42, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x74, 0x4d, 0x44, 0x49, 0x77, 0x67, 0x67, 0x49, 0x69, 0x4d, 0x41, 0x30, 0x47, 0x43, 0x53, 0x71, 0x47, 0x53, 0x49, 0x62, 0x33, 0x44, 0x51, 0x45, 0x42, 0x41, 0x51, 0x55, 0x41, 0x41, 0x34, 0x49, 0x43, 0x44, 0x77, 0x41, 0x77, 0x67, 0x67, 0x49, 0x4b, 0x41, 0x6f, 0x49, 0x43, 0x41, 0x51, 0x44, 0x68, 0x2b, 0x67, 0x37, 0x37, 0x61, 0x41, 0x41, 0x53, 0x79, 0x45, 0x33, 0x56, 0x0a, 0x72, 0x43, 0x4c, 0x45, 0x4e, 0x51, 0x45, 0x37, 0x78, 0x56, 0x54, 0x6c, 0x57, 0x58, 0x5a, 0x6a, 0x70, 0x58, 0x2f, 0x72, 0x77, 0x63, 0x52, 0x71, 0x6d, 0x4c, 0x30, 0x79, 0x6a, 0x52, 0x65, 0x41, 0x36, 0x31, 0x32, 0x36, 0x30, 0x57, 0x49, 0x39, 0x4a, 0x53, 0x4d, 0x5a, 0x4e, 0x52, 0x54, 0x70, 0x66, 0x34, 0x6d, 0x6e, 0x47, 0x32, 0x49, 0x38, 0x31, 0x6c, 0x44, 0x6e, 0x4e, 0x4a, 0x55, 0x44, 0x4d, 0x72, 0x47, 0x30, 0x6b, 0x79, 0x49, 0x39, 0x70, 0x2b, 0x4b, 0x78, 0x0a, 0x37, 0x65, 0x5a, 0x37, 0x54, 0x69, 0x36, 0x48, 0x6d, 0x77, 0x30, 0x7a, 0x64, 0x51, 0x72, 0x65, 0x71, 0x6a, 0x58, 0x6e, 0x66, 0x75, 0x55, 0x32, 0x6d, 0x4b, 0x4b, 0x75, 0x4a, 0x5a, 0x36, 0x56, 0x73, 0x7a, 0x4b, 0x57, 0x70, 0x43, 0x74, 0x59, 0x48, 0x75, 0x38, 0x2f, 0x2f, 0x6d, 0x49, 0x30, 0x53, 0x46, 0x48, 0x52, 0x74, 0x49, 0x31, 0x43, 0x72, 0x57, 0x44, 0x61, 0x53, 0x57, 0x71, 0x56, 0x63, 0x4e, 0x33, 0x53, 0x41, 0x4f, 0x4c, 0x4d, 0x56, 0x32, 0x4d, 0x43, 0x0a, 0x65, 0x35, 0x62, 0x64, 0x53, 0x5a, 0x64, 0x62, 0x6b, 0x6b, 0x36, 0x56, 0x30, 0x2f, 0x6e, 0x4c, 0x4b, 0x52, 0x38, 0x59, 0x53, 0x76, 0x67, 0x42, 0x4b, 0x74, 0x4a, 0x6a, 0x43, 0x57, 0x34, 0x6b, 0x36, 0x59, 0x6e, 0x53, 0x35, 0x63, 0x63, 0x69, 0x54, 0x4e, 0x78, 0x7a, 0x68, 0x6b, 0x63, 0x41, 0x71, 0x67, 0x32, 0x49, 0x6a, 0x71, 0x36, 0x46, 0x66, 0x55, 0x72, 0x70, 0x75, 0x7a, 0x4e, 0x50, 0x44, 0x6c, 0x4a, 0x77, 0x6e, 0x5a, 0x58, 0x6a, 0x66, 0x47, 0x32, 0x57, 0x0a, 0x57, 0x79, 0x30, 0x39, 0x58, 0x36, 0x47, 0x44, 0x52, 0x6c, 0x32, 0x32, 0x34, 0x79, 0x57, 0x34, 0x66, 0x4b, 0x63, 0x5a, 0x67, 0x42, 0x7a, 0x71, 0x5a, 0x55, 0x50, 0x63, 0x6b, 0x58, 0x6b, 0x32, 0x4c, 0x48, 0x52, 0x38, 0x38, 0x6d, 0x63, 0x47, 0x79, 0x59, 0x6e, 0x4a, 0x32, 0x37, 0x2f, 0x61, 0x61, 0x4c, 0x38, 0x6a, 0x37, 0x64, 0x78, 0x72, 0x72, 0x53, 0x69, 0x44, 0x65, 0x53, 0x2f, 0x73, 0x4f, 0x4b, 0x55, 0x4e, 0x4e, 0x77, 0x46, 0x6e, 0x4a, 0x35, 0x72, 0x70, 0x0a, 0x4d, 0x39, 0x6b, 0x7a, 0x58, 0x7a, 0x65, 0x68, 0x78, 0x66, 0x43, 0x72, 0x50, 0x66, 0x70, 0x34, 0x73, 0x4f, 0x63, 0x73, 0x6e, 0x2f, 0x59, 0x2b, 0x6e, 0x32, 0x44, 0x67, 0x37, 0x30, 0x6a, 0x70, 0x6b, 0x45, 0x55, 0x65, 0x42, 0x56, 0x46, 0x34, 0x47, 0x69, 0x77, 0x53, 0x4c, 0x46, 0x77, 0x6f, 0x72, 0x41, 0x32, 0x69, 0x49, 0x35, 0x34, 0x30, 0x6a, 0x77, 0x58, 0x6d, 0x6f, 0x6a, 0x50, 0x4f, 0x45, 0x58, 0x63, 0x54, 0x31, 0x41, 0x36, 0x6b, 0x48, 0x6b, 0x49, 0x66, 0x0a, 0x68, 0x73, 0x31, 0x77, 0x2f, 0x74, 0x6b, 0x75, 0x46, 0x54, 0x30, 0x64, 0x75, 0x37, 0x6a, 0x79, 0x55, 0x31, 0x66, 0x62, 0x7a, 0x4d, 0x5a, 0x30, 0x4b, 0x5a, 0x77, 0x59, 0x73, 0x7a, 0x5a, 0x31, 0x4f, 0x43, 0x34, 0x50, 0x56, 0x4b, 0x48, 0x34, 0x6b, 0x68, 0x2b, 0x4a, 0x6c, 0x6b, 0x2b, 0x37, 0x31, 0x4f, 0x36, 0x64, 0x36, 0x54, 0x73, 0x32, 0x51, 0x72, 0x55, 0x4b, 0x4f, 0x79, 0x72, 0x55, 0x5a, 0x48, 0x6b, 0x32, 0x45, 0x4f, 0x48, 0x35, 0x6b, 0x51, 0x4d, 0x72, 0x0a, 0x65, 0x79, 0x42, 0x55, 0x7a, 0x51, 0x30, 0x5a, 0x47, 0x73, 0x68, 0x42, 0x4d, 0x6a, 0x54, 0x52, 0x73, 0x4a, 0x6e, 0x68, 0x6b, 0x42, 0x34, 0x42, 0x51, 0x44, 0x61, 0x31, 0x74, 0x2f, 0x71, 0x70, 0x35, 0x58, 0x64, 0x31, 0x70, 0x43, 0x4b, 0x42, 0x58, 0x62, 0x43, 0x4c, 0x35, 0x43, 0x63, 0x53, 0x44, 0x31, 0x53, 0x49, 0x78, 0x74, 0x75, 0x46, 0x64, 0x4f, 0x61, 0x33, 0x77, 0x4e, 0x65, 0x6d, 0x4b, 0x66, 0x72, 0x62, 0x33, 0x76, 0x4f, 0x54, 0x6c, 0x79, 0x63, 0x45, 0x0a, 0x56, 0x53, 0x38, 0x4b, 0x62, 0x7a, 0x66, 0x46, 0x50, 0x52, 0x4f, 0x76, 0x43, 0x67, 0x43, 0x70, 0x4c, 0x49, 0x73, 0x63, 0x67, 0x53, 0x6a, 0x58, 0x37, 0x34, 0x59, 0x78, 0x71, 0x61, 0x37, 0x79, 0x62, 0x72, 0x6a, 0x4b, 0x61, 0x69, 0x78, 0x55, 0x52, 0x39, 0x67, 0x71, 0x69, 0x43, 0x36, 0x76, 0x77, 0x51, 0x63, 0x51, 0x65, 0x4b, 0x77, 0x52, 0x6f, 0x69, 0x39, 0x43, 0x38, 0x44, 0x66, 0x46, 0x38, 0x72, 0x68, 0x57, 0x33, 0x51, 0x35, 0x69, 0x4c, 0x63, 0x34, 0x74, 0x0a, 0x56, 0x6e, 0x35, 0x56, 0x38, 0x71, 0x64, 0x45, 0x39, 0x69, 0x73, 0x79, 0x39, 0x43, 0x4f, 0x6f, 0x52, 0x2b, 0x6a, 0x55, 0x4b, 0x67, 0x46, 0x34, 0x7a, 0x32, 0x72, 0x44, 0x4e, 0x36, 0x69, 0x65, 0x5a, 0x64, 0x49, 0x73, 0x35, 0x66, 0x71, 0x36, 0x4d, 0x38, 0x45, 0x47, 0x52, 0x50, 0x62, 0x6d, 0x7a, 0x36, 0x55, 0x4e, 0x70, 0x32, 0x59, 0x49, 0x4e, 0x49, 0x6f, 0x73, 0x38, 0x77, 0x49, 0x44, 0x41, 0x51, 0x41, 0x42, 0x6f, 0x30, 0x49, 0x77, 0x51, 0x44, 0x41, 0x50, 0x0a, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x52, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x45, 0x42, 0x54, 0x41, 0x44, 0x41, 0x51, 0x48, 0x2f, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x42, 0x6a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x52, 0x39, 0x44, 0x6e, 0x73, 0x53, 0x4c, 0x2f, 0x6e, 0x53, 0x7a, 0x31, 0x32, 0x56, 0x64, 0x67, 0x73, 0x37, 0x47, 0x78, 0x0a, 0x63, 0x4a, 0x58, 0x76, 0x59, 0x58, 0x6f, 0x77, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x4c, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x42, 0x41, 0x49, 0x5a, 0x70, 0x73, 0x55, 0x30, 0x76, 0x36, 0x5a, 0x39, 0x50, 0x49, 0x70, 0x4e, 0x6f, 0x6a, 0x75, 0x51, 0x68, 0x6d, 0x61, 0x50, 0x4f, 0x52, 0x56, 0x4d, 0x62, 0x63, 0x30, 0x52, 0x54, 0x41, 0x49, 0x46, 0x68, 0x7a, 0x54, 0x48, 0x6a, 0x43, 0x4c, 0x71, 0x42, 0x0a, 0x4b, 0x43, 0x68, 0x36, 0x6b, 0x72, 0x6d, 0x32, 0x71, 0x4d, 0x68, 0x44, 0x6e, 0x73, 0x63, 0x54, 0x4a, 0x6b, 0x33, 0x43, 0x32, 0x4f, 0x56, 0x56, 0x6e, 0x4a, 0x4a, 0x64, 0x55, 0x4e, 0x6a, 0x43, 0x4b, 0x39, 0x76, 0x2b, 0x35, 0x71, 0x69, 0x58, 0x7a, 0x31, 0x49, 0x36, 0x4a, 0x4d, 0x4e, 0x6c, 0x5a, 0x46, 0x78, 0x48, 0x4d, 0x61, 0x4e, 0x6c, 0x4e, 0x52, 0x50, 0x44, 0x6b, 0x37, 0x6e, 0x33, 0x2b, 0x56, 0x47, 0x58, 0x75, 0x36, 0x54, 0x77, 0x59, 0x6f, 0x66, 0x46, 0x0a, 0x31, 0x67, 0x62, 0x54, 0x6c, 0x34, 0x4d, 0x67, 0x71, 0x58, 0x36, 0x37, 0x74, 0x69, 0x48, 0x43, 0x70, 0x51, 0x32, 0x45, 0x41, 0x4f, 0x48, 0x79, 0x4a, 0x78, 0x43, 0x44, 0x75, 0x74, 0x30, 0x44, 0x67, 0x64, 0x58, 0x64, 0x61, 0x4d, 0x4e, 0x6d, 0x45, 0x4d, 0x6a, 0x52, 0x64, 0x72, 0x53, 0x7a, 0x62, 0x79, 0x6d, 0x65, 0x41, 0x50, 0x6e, 0x43, 0x4b, 0x66, 0x57, 0x78, 0x6b, 0x78, 0x6c, 0x53, 0x61, 0x52, 0x6f, 0x73, 0x54, 0x4b, 0x43, 0x4c, 0x34, 0x42, 0x57, 0x61, 0x0a, 0x4d, 0x53, 0x2f, 0x54, 0x69, 0x4a, 0x56, 0x5a, 0x62, 0x75, 0x58, 0x45, 0x73, 0x31, 0x44, 0x49, 0x46, 0x41, 0x68, 0x4b, 0x6d, 0x34, 0x73, 0x54, 0x67, 0x37, 0x47, 0x6b, 0x63, 0x72, 0x49, 0x37, 0x64, 0x6a, 0x4e, 0x42, 0x33, 0x4e, 0x79, 0x71, 0x70, 0x67, 0x64, 0x76, 0x48, 0x53, 0x51, 0x53, 0x6e, 0x38, 0x68, 0x32, 0x76, 0x53, 0x2f, 0x5a, 0x6a, 0x76, 0x51, 0x73, 0x37, 0x72, 0x66, 0x53, 0x4f, 0x42, 0x41, 0x6b, 0x4e, 0x6c, 0x45, 0x76, 0x34, 0x31, 0x78, 0x64, 0x0a, 0x67, 0x53, 0x47, 0x6e, 0x32, 0x72, 0x74, 0x4f, 0x2f, 0x2b, 0x59, 0x48, 0x71, 0x50, 0x36, 0x35, 0x44, 0x53, 0x64, 0x73, 0x75, 0x33, 0x42, 0x61, 0x56, 0x58, 0x6f, 0x54, 0x36, 0x66, 0x45, 0x71, 0x53, 0x57, 0x6e, 0x48, 0x58, 0x34, 0x64, 0x58, 0x54, 0x45, 0x4e, 0x35, 0x62, 0x54, 0x70, 0x6c, 0x36, 0x54, 0x42, 0x63, 0x51, 0x65, 0x37, 0x72, 0x64, 0x36, 0x56, 0x7a, 0x45, 0x6f, 0x6a, 0x6f, 0x76, 0x33, 0x32, 0x75, 0x35, 0x63, 0x53, 0x6f, 0x48, 0x77, 0x32, 0x4f, 0x0a, 0x48, 0x47, 0x31, 0x51, 0x41, 0x6b, 0x38, 0x6d, 0x47, 0x45, 0x50, 0x65, 0x6a, 0x31, 0x57, 0x46, 0x73, 0x51, 0x73, 0x33, 0x42, 0x57, 0x44, 0x4a, 0x56, 0x54, 0x6b, 0x53, 0x42, 0x4b, 0x45, 0x71, 0x7a, 0x33, 0x45, 0x57, 0x6e, 0x7a, 0x5a, 0x52, 0x53, 0x62, 0x39, 0x77, 0x4f, 0x35, 0x35, 0x6e, 0x6e, 0x50, 0x74, 0x37, 0x65, 0x63, 0x6b, 0x35, 0x48, 0x48, 0x69, 0x73, 0x64, 0x35, 0x46, 0x55, 0x6d, 0x72, 0x68, 0x31, 0x43, 0x6f, 0x46, 0x53, 0x6c, 0x2b, 0x4e, 0x6d, 0x0a, 0x59, 0x57, 0x76, 0x74, 0x50, 0x6a, 0x67, 0x65, 0x6c, 0x6d, 0x46, 0x56, 0x34, 0x5a, 0x46, 0x55, 0x6a, 0x4f, 0x32, 0x4d, 0x4a, 0x42, 0x2b, 0x42, 0x79, 0x52, 0x43, 0x61, 0x63, 0x35, 0x6b, 0x72, 0x46, 0x6b, 0x35, 0x79, 0x41, 0x44, 0x39, 0x55, 0x47, 0x2f, 0x69, 0x4e, 0x75, 0x6f, 0x76, 0x6e, 0x46, 0x4e, 0x61, 0x32, 0x52, 0x55, 0x39, 0x67, 0x37, 0x4a, 0x61, 0x75, 0x77, 0x79, 0x38, 0x43, 0x54, 0x6c, 0x32, 0x64, 0x6c, 0x6b, 0x6c, 0x79, 0x41, 0x4c, 0x4b, 0x72, 0x0a, 0x64, 0x56, 0x77, 0x50, 0x61, 0x46, 0x73, 0x64, 0x5a, 0x63, 0x4a, 0x66, 0x4d, 0x77, 0x38, 0x65, 0x44, 0x2f, 0x41, 0x37, 0x68, 0x76, 0x57, 0x77, 0x54, 0x72, 0x75, 0x63, 0x39, 0x2b, 0x6f, 0x6c, 0x42, 0x64, 0x79, 0x74, 0x6f, 0x70, 0x74, 0x4c, 0x46, 0x77, 0x47, 0x2b, 0x51, 0x74, 0x38, 0x31, 0x49, 0x52, 0x32, 0x74, 0x71, 0x36, 0x37, 0x30, 0x76, 0x36, 0x34, 0x66, 0x47, 0x39, 0x50, 0x69, 0x4f, 0x2f, 0x79, 0x7a, 0x63, 0x6e, 0x4d, 0x63, 0x6d, 0x79, 0x69, 0x51, 0x0a, 0x69, 0x52, 0x4d, 0x39, 0x48, 0x63, 0x45, 0x41, 0x52, 0x77, 0x6d, 0x57, 0x6d, 0x6a, 0x67, 0x62, 0x33, 0x62, 0x48, 0x50, 0x44, 0x63, 0x4b, 0x30, 0x52, 0x50, 0x4f, 0x57, 0x6c, 0x63, 0x34, 0x79, 0x4f, 0x6f, 0x38, 0x30, 0x6e, 0x4f, 0x41, 0x58, 0x78, 0x31, 0x37, 0x4f, 0x72, 0x67, 0x33, 0x62, 0x68, 0x7a, 0x6a, 0x6c, 0x50, 0x31, 0x76, 0x39, 0x6d, 0x78, 0x6e, 0x68, 0x4d, 0x55, 0x46, 0x36, 0x63, 0x4b, 0x6f, 0x6a, 0x61, 0x77, 0x48, 0x68, 0x52, 0x55, 0x7a, 0x4e, 0x0a, 0x6c, 0x4d, 0x34, 0x37, 0x6e, 0x69, 0x33, 0x6e, 0x69, 0x41, 0x49, 0x69, 0x39, 0x47, 0x37, 0x6f, 0x79, 0x4f, 0x7a, 0x57, 0x50, 0x50, 0x4f, 0x35, 0x73, 0x74, 0x64, 0x33, 0x65, 0x71, 0x78, 0x37, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x54, 0x65, 0x6c, 0x65, 0x6b, 0x6f, 0x6d, 0x20, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x20, 0x54, 0x4c, 0x53, 0x20, 0x45, 0x43, 0x43, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x32, 0x30, 0x32, 0x30, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x51, 0x6a, 0x43, 0x43, 0x41, 0x63, 0x6d, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x4e, 0x6a, 0x71, 0x57, 0x6a, 0x4d, 0x6c, 0x63, 0x73, 0x6c, 0x6a, 0x4e, 0x30, 0x41, 0x46, 0x64, 0x78, 0x65, 0x56, 0x58, 0x41, 0x44, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x7a, 0x42, 0x6a, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x45, 0x0a, 0x52, 0x54, 0x45, 0x6e, 0x4d, 0x43, 0x55, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x65, 0x52, 0x47, 0x56, 0x31, 0x64, 0x48, 0x4e, 0x6a, 0x61, 0x47, 0x55, 0x67, 0x56, 0x47, 0x56, 0x73, 0x5a, 0x57, 0x74, 0x76, 0x62, 0x53, 0x42, 0x54, 0x5a, 0x57, 0x4e, 0x31, 0x63, 0x6d, 0x6c, 0x30, 0x65, 0x53, 0x42, 0x48, 0x62, 0x57, 0x4a, 0x49, 0x4d, 0x53, 0x73, 0x77, 0x4b, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x44, 0x43, 0x4a, 0x55, 0x5a, 0x57, 0x78, 0x6c, 0x0a, 0x61, 0x32, 0x39, 0x74, 0x49, 0x46, 0x4e, 0x6c, 0x59, 0x33, 0x56, 0x79, 0x61, 0x58, 0x52, 0x35, 0x49, 0x46, 0x52, 0x4d, 0x55, 0x79, 0x42, 0x46, 0x51, 0x30, 0x4d, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x41, 0x79, 0x4d, 0x44, 0x49, 0x77, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x49, 0x77, 0x4d, 0x44, 0x67, 0x79, 0x4e, 0x54, 0x41, 0x33, 0x4e, 0x44, 0x67, 0x79, 0x4d, 0x46, 0x6f, 0x58, 0x44, 0x54, 0x51, 0x31, 0x4d, 0x44, 0x67, 0x79, 0x4e, 0x54, 0x49, 0x7a, 0x0a, 0x4e, 0x54, 0x6b, 0x31, 0x4f, 0x56, 0x6f, 0x77, 0x59, 0x7a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x52, 0x45, 0x55, 0x78, 0x4a, 0x7a, 0x41, 0x6c, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x48, 0x6b, 0x52, 0x6c, 0x64, 0x58, 0x52, 0x7a, 0x59, 0x32, 0x68, 0x6c, 0x49, 0x46, 0x52, 0x6c, 0x62, 0x47, 0x56, 0x72, 0x62, 0x32, 0x30, 0x67, 0x55, 0x32, 0x56, 0x6a, 0x64, 0x58, 0x4a, 0x70, 0x64, 0x48, 0x6b, 0x67, 0x0a, 0x52, 0x32, 0x31, 0x69, 0x53, 0x44, 0x45, 0x72, 0x4d, 0x43, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x77, 0x77, 0x69, 0x56, 0x47, 0x56, 0x73, 0x5a, 0x57, 0x74, 0x76, 0x62, 0x53, 0x42, 0x54, 0x5a, 0x57, 0x4e, 0x31, 0x63, 0x6d, 0x6c, 0x30, 0x65, 0x53, 0x42, 0x55, 0x54, 0x46, 0x4d, 0x67, 0x52, 0x55, 0x4e, 0x44, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x4d, 0x6a, 0x41, 0x79, 0x4d, 0x44, 0x42, 0x32, 0x4d, 0x42, 0x41, 0x47, 0x42, 0x79, 0x71, 0x47, 0x0a, 0x53, 0x4d, 0x34, 0x39, 0x41, 0x67, 0x45, 0x47, 0x42, 0x53, 0x75, 0x42, 0x42, 0x41, 0x41, 0x69, 0x41, 0x32, 0x49, 0x41, 0x42, 0x4d, 0x36, 0x2f, 0x2f, 0x6c, 0x65, 0x6f, 0x76, 0x39, 0x57, 0x71, 0x39, 0x78, 0x43, 0x61, 0x7a, 0x62, 0x7a, 0x52, 0x45, 0x61, 0x4b, 0x39, 0x5a, 0x30, 0x4c, 0x4d, 0x6b, 0x4f, 0x73, 0x56, 0x47, 0x4a, 0x44, 0x5a, 0x6f, 0x73, 0x30, 0x4d, 0x4b, 0x69, 0x58, 0x72, 0x50, 0x6b, 0x2f, 0x4f, 0x74, 0x64, 0x4b, 0x50, 0x44, 0x2f, 0x4d, 0x31, 0x0a, 0x32, 0x6b, 0x4f, 0x4c, 0x41, 0x6f, 0x43, 0x2b, 0x62, 0x31, 0x45, 0x6b, 0x48, 0x51, 0x39, 0x72, 0x4b, 0x38, 0x71, 0x66, 0x77, 0x6d, 0x39, 0x51, 0x4d, 0x75, 0x55, 0x33, 0x49, 0x4c, 0x59, 0x67, 0x2f, 0x34, 0x67, 0x4e, 0x44, 0x32, 0x31, 0x4a, 0x75, 0x39, 0x73, 0x47, 0x70, 0x49, 0x65, 0x51, 0x6b, 0x70, 0x54, 0x30, 0x43, 0x64, 0x44, 0x50, 0x66, 0x38, 0x69, 0x41, 0x43, 0x38, 0x47, 0x58, 0x73, 0x37, 0x73, 0x31, 0x4a, 0x38, 0x6e, 0x43, 0x47, 0x36, 0x4e, 0x43, 0x0a, 0x4d, 0x45, 0x41, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x4f, 0x4e, 0x79, 0x7a, 0x47, 0x36, 0x56, 0x6d, 0x55, 0x65, 0x78, 0x35, 0x72, 0x4e, 0x68, 0x54, 0x4e, 0x48, 0x4c, 0x71, 0x2b, 0x4f, 0x36, 0x7a, 0x64, 0x36, 0x66, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x44, 0x67, 0x59, 0x44, 0x56, 0x52, 0x30, 0x50, 0x0a, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x51, 0x44, 0x41, 0x67, 0x45, 0x47, 0x4d, 0x41, 0x6f, 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0x42, 0x41, 0x4d, 0x44, 0x41, 0x32, 0x63, 0x41, 0x4d, 0x47, 0x51, 0x43, 0x4d, 0x48, 0x56, 0x53, 0x69, 0x37, 0x65, 0x6b, 0x45, 0x45, 0x2b, 0x75, 0x53, 0x68, 0x43, 0x4c, 0x73, 0x6f, 0x52, 0x62, 0x51, 0x75, 0x48, 0x6d, 0x4b, 0x6a, 0x59, 0x43, 0x32, 0x71, 0x42, 0x75, 0x47, 0x54, 0x38, 0x6c, 0x76, 0x39, 0x70, 0x5a, 0x0a, 0x4d, 0x6f, 0x37, 0x6b, 0x2b, 0x35, 0x44, 0x63, 0x6b, 0x32, 0x54, 0x4f, 0x72, 0x62, 0x52, 0x42, 0x52, 0x32, 0x44, 0x69, 0x7a, 0x36, 0x66, 0x4c, 0x48, 0x67, 0x49, 0x77, 0x4e, 0x30, 0x47, 0x4d, 0x5a, 0x74, 0x39, 0x42, 0x61, 0x39, 0x61, 0x44, 0x41, 0x45, 0x48, 0x39, 0x4c, 0x31, 0x72, 0x33, 0x55, 0x4c, 0x52, 0x6e, 0x30, 0x53, 0x79, 0x6f, 0x63, 0x64, 0x64, 0x44, 0x79, 0x70, 0x77, 0x6e, 0x4a, 0x4a, 0x47, 0x44, 0x53, 0x41, 0x33, 0x50, 0x7a, 0x66, 0x64, 0x55, 0x0a, 0x67, 0x61, 0x2f, 0x73, 0x66, 0x2b, 0x52, 0x6e, 0x32, 0x37, 0x69, 0x51, 0x37, 0x74, 0x30, 0x6c, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x54, 0x65, 0x6c, 0x65, 0x6b, 0x6f, 0x6d, 0x20, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x20, 0x54, 0x4c, 0x53, 0x20, 0x52, 0x53, 0x41, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x32, 0x30, 0x32, 0x33, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x46, 0x73, 0x7a, 0x43, 0x43, 0x41, 0x35, 0x75, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x49, 0x5a, 0x78, 0x55, 0x4c, 0x65, 0x6a, 0x32, 0x37, 0x48, 0x46, 0x33, 0x2b, 0x6b, 0x37, 0x6f, 0x77, 0x33, 0x42, 0x58, 0x6c, 0x7a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x77, 0x46, 0x41, 0x44, 0x42, 0x6a, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x0a, 0x45, 0x77, 0x4a, 0x45, 0x52, 0x54, 0x45, 0x6e, 0x4d, 0x43, 0x55, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x65, 0x52, 0x47, 0x56, 0x31, 0x64, 0x48, 0x4e, 0x6a, 0x61, 0x47, 0x55, 0x67, 0x56, 0x47, 0x56, 0x73, 0x5a, 0x57, 0x74, 0x76, 0x62, 0x53, 0x42, 0x54, 0x5a, 0x57, 0x4e, 0x31, 0x63, 0x6d, 0x6c, 0x30, 0x65, 0x53, 0x42, 0x48, 0x62, 0x57, 0x4a, 0x49, 0x4d, 0x53, 0x73, 0x77, 0x4b, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x44, 0x43, 0x4a, 0x55, 0x0a, 0x5a, 0x57, 0x78, 0x6c, 0x61, 0x32, 0x39, 0x74, 0x49, 0x46, 0x4e, 0x6c, 0x59, 0x33, 0x56, 0x79, 0x61, 0x58, 0x52, 0x35, 0x49, 0x46, 0x52, 0x4d, 0x55, 0x79, 0x42, 0x53, 0x55, 0x30, 0x45, 0x67, 0x55, 0x6d, 0x39, 0x76, 0x64, 0x43, 0x41, 0x79, 0x4d, 0x44, 0x49, 0x7a, 0x4d, 0x42, 0x34, 0x58, 0x44, 0x54, 0x49, 0x7a, 0x4d, 0x44, 0x4d, 0x79, 0x4f, 0x44, 0x45, 0x79, 0x4d, 0x54, 0x59, 0x30, 0x4e, 0x56, 0x6f, 0x58, 0x44, 0x54, 0x51, 0x34, 0x4d, 0x44, 0x4d, 0x79, 0x0a, 0x4e, 0x7a, 0x49, 0x7a, 0x4e, 0x54, 0x6b, 0x31, 0x4f, 0x56, 0x6f, 0x77, 0x59, 0x7a, 0x45, 0x4c, 0x4d, 0x41, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x42, 0x68, 0x4d, 0x43, 0x52, 0x45, 0x55, 0x78, 0x4a, 0x7a, 0x41, 0x6c, 0x42, 0x67, 0x4e, 0x56, 0x42, 0x41, 0x6f, 0x4d, 0x48, 0x6b, 0x52, 0x6c, 0x64, 0x58, 0x52, 0x7a, 0x59, 0x32, 0x68, 0x6c, 0x49, 0x46, 0x52, 0x6c, 0x62, 0x47, 0x56, 0x72, 0x62, 0x32, 0x30, 0x67, 0x55, 0x32, 0x56, 0x6a, 0x64, 0x58, 0x4a, 0x70, 0x0a, 0x64, 0x48, 0x6b, 0x67, 0x52, 0x32, 0x31, 0x69, 0x53, 0x44, 0x45, 0x72, 0x4d, 0x43, 0x6b, 0x47, 0x41, 0x31, 0x55, 0x45, 0x41, 0x77, 0x77, 0x69, 0x56, 0x47, 0x56, 0x73, 0x5a, 0x57, 0x74, 0x76, 0x62, 0x53, 0x42, 0x54, 0x5a, 0x57, 0x4e, 0x31, 0x63, 0x6d, 0x6c, 0x30, 0x65, 0x53, 0x42, 0x55, 0x54, 0x46, 0x4d, 0x67, 0x55, 0x6c, 0x4e, 0x42, 0x49, 0x46, 0x4a, 0x76, 0x62, 0x33, 0x51, 0x67, 0x4d, 0x6a, 0x41, 0x79, 0x4d, 0x7a, 0x43, 0x43, 0x41, 0x69, 0x49, 0x77, 0x0a, 0x44, 0x51, 0x59, 0x4a, 0x4b, 0x6f, 0x5a, 0x49, 0x68, 0x76, 0x63, 0x4e, 0x41, 0x51, 0x45, 0x42, 0x42, 0x51, 0x41, 0x44, 0x67, 0x67, 0x49, 0x50, 0x41, 0x44, 0x43, 0x43, 0x41, 0x67, 0x6f, 0x43, 0x67, 0x67, 0x49, 0x42, 0x41, 0x4f, 0x30, 0x31, 0x6f, 0x59, 0x47, 0x41, 0x38, 0x38, 0x74, 0x4b, 0x61, 0x56, 0x76, 0x43, 0x2b, 0x31, 0x47, 0x44, 0x72, 0x69, 0x62, 0x39, 0x34, 0x57, 0x37, 0x7a, 0x67, 0x52, 0x4a, 0x39, 0x63, 0x55, 0x44, 0x2f, 0x68, 0x33, 0x56, 0x43, 0x0a, 0x4b, 0x53, 0x48, 0x74, 0x67, 0x56, 0x49, 0x73, 0x33, 0x78, 0x4c, 0x42, 0x47, 0x59, 0x53, 0x4a, 0x77, 0x62, 0x33, 0x46, 0x4b, 0x4e, 0x58, 0x56, 0x53, 0x32, 0x78, 0x45, 0x31, 0x6b, 0x7a, 0x62, 0x42, 0x35, 0x5a, 0x4b, 0x56, 0x58, 0x72, 0x4b, 0x4e, 0x6f, 0x49, 0x45, 0x4e, 0x71, 0x69, 0x6c, 0x2f, 0x43, 0x66, 0x32, 0x53, 0x66, 0x48, 0x56, 0x63, 0x70, 0x36, 0x52, 0x2b, 0x53, 0x50, 0x57, 0x63, 0x48, 0x75, 0x37, 0x39, 0x5a, 0x76, 0x42, 0x37, 0x4a, 0x50, 0x50, 0x0a, 0x47, 0x65, 0x70, 0x6c, 0x66, 0x6f, 0x68, 0x77, 0x6f, 0x48, 0x50, 0x38, 0x39, 0x76, 0x2b, 0x31, 0x56, 0x6d, 0x4c, 0x68, 0x63, 0x32, 0x6f, 0x30, 0x6d, 0x44, 0x36, 0x43, 0x75, 0x4b, 0x79, 0x56, 0x55, 0x2f, 0x51, 0x42, 0x6f, 0x43, 0x63, 0x48, 0x63, 0x71, 0x4d, 0x41, 0x55, 0x36, 0x44, 0x6b, 0x73, 0x71, 0x75, 0x44, 0x4f, 0x46, 0x63, 0x7a, 0x4a, 0x5a, 0x53, 0x66, 0x76, 0x6b, 0x67, 0x64, 0x6d, 0x4f, 0x47, 0x6a, 0x75, 0x70, 0x35, 0x63, 0x7a, 0x51, 0x52, 0x78, 0x0a, 0x55, 0x58, 0x31, 0x31, 0x65, 0x4b, 0x76, 0x7a, 0x57, 0x61, 0x72, 0x45, 0x34, 0x47, 0x43, 0x2b, 0x6a, 0x34, 0x4e, 0x53, 0x75, 0x48, 0x55, 0x61, 0x51, 0x54, 0x58, 0x74, 0x76, 0x50, 0x4d, 0x36, 0x59, 0x2b, 0x6d, 0x70, 0x46, 0x45, 0x58, 0x58, 0x35, 0x6c, 0x4c, 0x52, 0x62, 0x74, 0x4c, 0x65, 0x76, 0x4f, 0x50, 0x31, 0x43, 0x7a, 0x76, 0x6d, 0x34, 0x4d, 0x53, 0x39, 0x51, 0x32, 0x51, 0x54, 0x70, 0x73, 0x37, 0x30, 0x6d, 0x44, 0x64, 0x73, 0x69, 0x70, 0x57, 0x6f, 0x0a, 0x6c, 0x38, 0x68, 0x48, 0x44, 0x2f, 0x42, 0x65, 0x45, 0x49, 0x76, 0x6e, 0x48, 0x52, 0x7a, 0x2b, 0x73, 0x54, 0x75, 0x67, 0x42, 0x54, 0x4e, 0x6f, 0x42, 0x55, 0x47, 0x43, 0x77, 0x51, 0x4d, 0x72, 0x41, 0x63, 0x6a, 0x6e, 0x6a, 0x30, 0x32, 0x72, 0x36, 0x4c, 0x58, 0x32, 0x7a, 0x57, 0x74, 0x45, 0x74, 0x65, 0x66, 0x64, 0x69, 0x2b, 0x7a, 0x71, 0x4a, 0x62, 0x51, 0x41, 0x49, 0x6c, 0x64, 0x4e, 0x73, 0x4c, 0x47, 0x79, 0x4d, 0x63, 0x45, 0x57, 0x7a, 0x76, 0x2f, 0x39, 0x0a, 0x46, 0x49, 0x53, 0x33, 0x52, 0x2f, 0x71, 0x79, 0x38, 0x58, 0x44, 0x65, 0x32, 0x34, 0x74, 0x73, 0x4e, 0x6c, 0x69, 0x6b, 0x66, 0x4c, 0x4d, 0x52, 0x30, 0x63, 0x4e, 0x33, 0x66, 0x31, 0x2b, 0x32, 0x4a, 0x65, 0x41, 0x4e, 0x78, 0x64, 0x4b, 0x7a, 0x2b, 0x62, 0x69, 0x34, 0x64, 0x39, 0x73, 0x33, 0x63, 0x58, 0x46, 0x48, 0x34, 0x32, 0x41, 0x59, 0x54, 0x79, 0x53, 0x32, 0x64, 0x54, 0x64, 0x34, 0x75, 0x61, 0x4e, 0x69, 0x72, 0x37, 0x33, 0x4a, 0x63, 0x6f, 0x34, 0x76, 0x0a, 0x7a, 0x4c, 0x75, 0x75, 0x32, 0x2b, 0x51, 0x56, 0x55, 0x68, 0x6b, 0x48, 0x4d, 0x2f, 0x74, 0x71, 0x74, 0x79, 0x31, 0x4c, 0x6b, 0x43, 0x69, 0x43, 0x63, 0x2f, 0x34, 0x59, 0x69, 0x7a, 0x57, 0x4e, 0x32, 0x36, 0x63, 0x45, 0x61, 0x72, 0x37, 0x71, 0x77, 0x55, 0x30, 0x32, 0x4f, 0x78, 0x59, 0x32, 0x6b, 0x54, 0x4c, 0x76, 0x74, 0x6b, 0x43, 0x4a, 0x6b, 0x55, 0x50, 0x67, 0x38, 0x71, 0x4b, 0x72, 0x42, 0x43, 0x37, 0x6d, 0x38, 0x6b, 0x77, 0x4f, 0x46, 0x6a, 0x51, 0x67, 0x0a, 0x72, 0x49, 0x66, 0x42, 0x4c, 0x58, 0x37, 0x4a, 0x5a, 0x6b, 0x63, 0x58, 0x46, 0x42, 0x47, 0x6b, 0x38, 0x2f, 0x65, 0x68, 0x4a, 0x49, 0x6d, 0x72, 0x32, 0x42, 0x72, 0x49, 0x6f, 0x56, 0x79, 0x78, 0x6f, 0x2f, 0x65, 0x4d, 0x62, 0x63, 0x67, 0x42, 0x79, 0x55, 0x2f, 0x4a, 0x37, 0x4d, 0x54, 0x38, 0x72, 0x46, 0x45, 0x7a, 0x30, 0x63, 0x69, 0x44, 0x30, 0x63, 0x6d, 0x66, 0x48, 0x64, 0x52, 0x48, 0x4e, 0x43, 0x6b, 0x2b, 0x79, 0x37, 0x41, 0x4f, 0x2b, 0x6f, 0x4d, 0x4c, 0x0a, 0x4b, 0x46, 0x6a, 0x6c, 0x4b, 0x64, 0x77, 0x2f, 0x66, 0x4b, 0x69, 0x66, 0x79, 0x62, 0x59, 0x4b, 0x75, 0x36, 0x62, 0x6f, 0x52, 0x68, 0x59, 0x50, 0x6c, 0x75, 0x56, 0x37, 0x35, 0x47, 0x70, 0x36, 0x53, 0x47, 0x31, 0x32, 0x6d, 0x41, 0x57, 0x6c, 0x33, 0x47, 0x30, 0x65, 0x51, 0x68, 0x35, 0x43, 0x32, 0x68, 0x72, 0x67, 0x55, 0x76, 0x65, 0x31, 0x67, 0x38, 0x41, 0x61, 0x65, 0x33, 0x67, 0x31, 0x4c, 0x44, 0x6a, 0x31, 0x48, 0x2f, 0x31, 0x4a, 0x6f, 0x79, 0x37, 0x53, 0x0a, 0x57, 0x57, 0x4f, 0x2f, 0x67, 0x4c, 0x43, 0x4d, 0x6b, 0x33, 0x50, 0x4c, 0x4e, 0x61, 0x61, 0x5a, 0x6c, 0x53, 0x4a, 0x68, 0x5a, 0x51, 0x4e, 0x67, 0x2b, 0x79, 0x2b, 0x54, 0x53, 0x2f, 0x71, 0x61, 0x6e, 0x49, 0x41, 0x37, 0x41, 0x67, 0x4d, 0x42, 0x41, 0x41, 0x47, 0x6a, 0x59, 0x7a, 0x42, 0x68, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x42, 0x6a, 0x41, 0x64, 0x42, 0x67, 0x4e, 0x56, 0x0a, 0x48, 0x51, 0x34, 0x45, 0x46, 0x67, 0x51, 0x55, 0x74, 0x71, 0x65, 0x58, 0x67, 0x6a, 0x31, 0x30, 0x68, 0x5a, 0x76, 0x33, 0x50, 0x4a, 0x2b, 0x54, 0x6d, 0x70, 0x56, 0x35, 0x64, 0x56, 0x4b, 0x4d, 0x62, 0x55, 0x63, 0x77, 0x44, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x54, 0x41, 0x51, 0x48, 0x2f, 0x42, 0x41, 0x55, 0x77, 0x41, 0x77, 0x45, 0x42, 0x2f, 0x7a, 0x41, 0x66, 0x42, 0x67, 0x4e, 0x56, 0x48, 0x53, 0x4d, 0x45, 0x47, 0x44, 0x41, 0x57, 0x67, 0x42, 0x53, 0x32, 0x0a, 0x70, 0x35, 0x65, 0x43, 0x50, 0x58, 0x53, 0x46, 0x6d, 0x2f, 0x63, 0x38, 0x6e, 0x35, 0x4f, 0x61, 0x6c, 0x58, 0x6c, 0x31, 0x55, 0x6f, 0x78, 0x74, 0x52, 0x7a, 0x41, 0x4e, 0x42, 0x67, 0x6b, 0x71, 0x68, 0x6b, 0x69, 0x47, 0x39, 0x77, 0x30, 0x42, 0x41, 0x51, 0x77, 0x46, 0x41, 0x41, 0x4f, 0x43, 0x41, 0x67, 0x45, 0x41, 0x71, 0x4d, 0x78, 0x68, 0x70, 0x72, 0x35, 0x31, 0x6e, 0x68, 0x56, 0x51, 0x70, 0x47, 0x76, 0x37, 0x71, 0x48, 0x42, 0x46, 0x66, 0x4c, 0x70, 0x2b, 0x0a, 0x73, 0x56, 0x72, 0x38, 0x57, 0x79, 0x50, 0x36, 0x43, 0x6e, 0x66, 0x34, 0x6d, 0x48, 0x47, 0x43, 0x44, 0x47, 0x33, 0x67, 0x58, 0x6b, 0x61, 0x71, 0x6b, 0x2f, 0x51, 0x65, 0x6f, 0x4d, 0x50, 0x68, 0x6b, 0x39, 0x74, 0x4c, 0x72, 0x62, 0x4b, 0x6d, 0x58, 0x61, 0x75, 0x77, 0x31, 0x47, 0x4c, 0x4c, 0x58, 0x72, 0x74, 0x6d, 0x39, 0x53, 0x33, 0x75, 0x6c, 0x30, 0x41, 0x38, 0x59, 0x75, 0x74, 0x65, 0x31, 0x68, 0x54, 0x57, 0x6a, 0x4f, 0x4b, 0x57, 0x69, 0x30, 0x46, 0x70, 0x0a, 0x6b, 0x7a, 0x58, 0x6d, 0x75, 0x5a, 0x6c, 0x72, 0x59, 0x72, 0x53, 0x68, 0x46, 0x32, 0x59, 0x30, 0x70, 0x6d, 0x74, 0x6a, 0x78, 0x72, 0x6c, 0x4f, 0x38, 0x69, 0x4c, 0x70, 0x57, 0x41, 0x31, 0x57, 0x51, 0x64, 0x48, 0x36, 0x44, 0x45, 0x72, 0x77, 0x4d, 0x38, 0x30, 0x37, 0x75, 0x32, 0x30, 0x68, 0x4f, 0x71, 0x36, 0x4f, 0x63, 0x72, 0x58, 0x44, 0x53, 0x76, 0x76, 0x70, 0x66, 0x65, 0x57, 0x78, 0x6d, 0x34, 0x62, 0x75, 0x34, 0x75, 0x42, 0x39, 0x74, 0x50, 0x63, 0x79, 0x0a, 0x2f, 0x53, 0x4b, 0x45, 0x38, 0x59, 0x58, 0x4a, 0x4e, 0x33, 0x6e, 0x70, 0x74, 0x54, 0x2b, 0x2f, 0x58, 0x4f, 0x52, 0x30, 0x73, 0x6f, 0x38, 0x52, 0x59, 0x67, 0x44, 0x64, 0x47, 0x47, 0x61, 0x68, 0x32, 0x58, 0x73, 0x6a, 0x58, 0x2f, 0x47, 0x4f, 0x31, 0x57, 0x66, 0x6f, 0x56, 0x4e, 0x70, 0x62, 0x4f, 0x6d, 0x73, 0x32, 0x62, 0x2f, 0x6d, 0x42, 0x73, 0x54, 0x4e, 0x48, 0x4d, 0x33, 0x64, 0x41, 0x2b, 0x56, 0x4b, 0x71, 0x33, 0x64, 0x53, 0x44, 0x7a, 0x34, 0x56, 0x34, 0x0a, 0x6d, 0x5a, 0x71, 0x54, 0x75, 0x58, 0x4e, 0x6e, 0x51, 0x6b, 0x59, 0x52, 0x49, 0x65, 0x72, 0x2b, 0x43, 0x71, 0x6b, 0x62, 0x47, 0x6d, 0x56, 0x70, 0x73, 0x34, 0x2b, 0x75, 0x46, 0x72, 0x62, 0x32, 0x53, 0x31, 0x61, 0x79, 0x4c, 0x66, 0x6d, 0x6c, 0x79, 0x4f, 0x77, 0x37, 0x59, 0x71, 0x50, 0x74, 0x61, 0x39, 0x42, 0x4f, 0x31, 0x55, 0x41, 0x4a, 0x70, 0x42, 0x2b, 0x59, 0x31, 0x7a, 0x71, 0x6c, 0x6b, 0x6c, 0x6b, 0x67, 0x35, 0x4c, 0x42, 0x39, 0x7a, 0x56, 0x74, 0x7a, 0x0a, 0x61, 0x4c, 0x31, 0x74, 0x78, 0x4b, 0x49, 0x54, 0x44, 0x6d, 0x63, 0x5a, 0x75, 0x49, 0x31, 0x43, 0x66, 0x6d, 0x77, 0x4d, 0x6d, 0x6d, 0x36, 0x67, 0x4a, 0x43, 0x33, 0x56, 0x52, 0x52, 0x76, 0x63, 0x78, 0x41, 0x49, 0x55, 0x2f, 0x6f, 0x56, 0x62, 0x5a, 0x5a, 0x66, 0x4b, 0x54, 0x70, 0x42, 0x51, 0x43, 0x48, 0x70, 0x43, 0x4e, 0x66, 0x6e, 0x71, 0x77, 0x6d, 0x62, 0x55, 0x2b, 0x41, 0x47, 0x75, 0x48, 0x72, 0x53, 0x2b, 0x77, 0x36, 0x6a, 0x76, 0x2f, 0x6e, 0x61, 0x61, 0x0a, 0x6f, 0x71, 0x59, 0x66, 0x52, 0x76, 0x61, 0x45, 0x37, 0x66, 0x7a, 0x62, 0x7a, 0x73, 0x51, 0x43, 0x7a, 0x6e, 0x64, 0x49, 0x4c, 0x49, 0x79, 0x79, 0x37, 0x4d, 0x4d, 0x41, 0x6f, 0x2b, 0x77, 0x73, 0x56, 0x52, 0x6a, 0x42, 0x66, 0x68, 0x6e, 0x75, 0x34, 0x53, 0x2f, 0x79, 0x72, 0x59, 0x4f, 0x62, 0x6e, 0x71, 0x73, 0x5a, 0x33, 0x38, 0x61, 0x4b, 0x4c, 0x34, 0x78, 0x33, 0x35, 0x62, 0x63, 0x46, 0x37, 0x44, 0x76, 0x42, 0x37, 0x4c, 0x36, 0x47, 0x73, 0x34, 0x61, 0x38, 0x0a, 0x77, 0x50, 0x66, 0x63, 0x35, 0x2b, 0x70, 0x62, 0x72, 0x72, 0x4c, 0x4d, 0x74, 0x54, 0x57, 0x47, 0x53, 0x39, 0x44, 0x69, 0x50, 0x37, 0x62, 0x59, 0x2b, 0x41, 0x34, 0x41, 0x37, 0x6c, 0x33, 0x6a, 0x39, 0x34, 0x31, 0x59, 0x2f, 0x38, 0x2b, 0x4c, 0x4e, 0x2b, 0x6c, 0x6a, 0x58, 0x32, 0x37, 0x33, 0x43, 0x58, 0x45, 0x32, 0x77, 0x68, 0x4a, 0x64, 0x56, 0x2f, 0x4c, 0x49, 0x74, 0x4d, 0x33, 0x7a, 0x37, 0x67, 0x4c, 0x66, 0x45, 0x64, 0x78, 0x71, 0x75, 0x56, 0x65, 0x45, 0x0a, 0x48, 0x56, 0x6c, 0x4e, 0x6a, 0x4d, 0x37, 0x49, 0x44, 0x69, 0x50, 0x43, 0x74, 0x79, 0x61, 0x61, 0x45, 0x42, 0x52, 0x78, 0x2f, 0x70, 0x4f, 0x79, 0x69, 0x72, 0x69, 0x41, 0x38, 0x41, 0x34, 0x51, 0x6e, 0x74, 0x4f, 0x6f, 0x55, 0x41, 0x77, 0x33, 0x67, 0x69, 0x2f, 0x71, 0x34, 0x49, 0x71, 0x64, 0x34, 0x53, 0x77, 0x35, 0x2f, 0x37, 0x57, 0x30, 0x63, 0x77, 0x44, 0x6b, 0x39, 0x30, 0x69, 0x6d, 0x63, 0x36, 0x79, 0x2f, 0x73, 0x74, 0x35, 0x33, 0x42, 0x49, 0x65, 0x30, 0x0a, 0x6f, 0x38, 0x32, 0x62, 0x4e, 0x53, 0x51, 0x33, 0x2b, 0x70, 0x43, 0x54, 0x45, 0x34, 0x46, 0x43, 0x78, 0x70, 0x67, 0x6d, 0x64, 0x54, 0x64, 0x6d, 0x51, 0x52, 0x43, 0x73, 0x75, 0x2f, 0x57, 0x55, 0x34, 0x38, 0x49, 0x78, 0x4b, 0x36, 0x33, 0x6e, 0x49, 0x31, 0x62, 0x4d, 0x4e, 0x53, 0x57, 0x53, 0x73, 0x31, 0x41, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x0a, 0x46, 0x49, 0x52, 0x4d, 0x41, 0x50, 0x52, 0x4f, 0x46, 0x45, 0x53, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x20, 0x43, 0x41, 0x20, 0x52, 0x4f, 0x4f, 0x54, 0x2d, 0x41, 0x20, 0x57, 0x45, 0x42, 0x0a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a, 0x4d, 0x49, 0x49, 0x43, 0x65, 0x6a, 0x43, 0x43, 0x41, 0x67, 0x43, 0x67, 0x41, 0x77, 0x49, 0x42, 0x41, 0x67, 0x49, 0x51, 0x4d, 0x5a, 0x63, 0x68, 0x37, 0x61, 0x2b, 0x4a, 0x51, 0x6e, 0x38, 0x31, 0x51, 0x59, 0x65, 0x68, 0x5a, 0x31, 0x5a, 0x4d, 0x62, 0x54, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x7a, 0x42, 0x75, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x46, 0x0a, 0x55, 0x7a, 0x45, 0x63, 0x4d, 0x42, 0x6f, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x54, 0x52, 0x6d, 0x6c, 0x79, 0x62, 0x57, 0x46, 0x77, 0x63, 0x6d, 0x39, 0x6d, 0x5a, 0x58, 0x4e, 0x70, 0x62, 0x32, 0x35, 0x68, 0x62, 0x43, 0x42, 0x54, 0x51, 0x54, 0x45, 0x59, 0x4d, 0x42, 0x59, 0x47, 0x41, 0x31, 0x55, 0x45, 0x59, 0x51, 0x77, 0x50, 0x56, 0x6b, 0x46, 0x55, 0x52, 0x56, 0x4d, 0x74, 0x51, 0x54, 0x59, 0x79, 0x4e, 0x6a, 0x4d, 0x30, 0x4d, 0x44, 0x59, 0x34, 0x0a, 0x4d, 0x53, 0x63, 0x77, 0x4a, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x44, 0x42, 0x35, 0x47, 0x53, 0x56, 0x4a, 0x4e, 0x51, 0x56, 0x42, 0x53, 0x54, 0x30, 0x5a, 0x46, 0x55, 0x30, 0x6c, 0x50, 0x54, 0x6b, 0x46, 0x4d, 0x49, 0x45, 0x4e, 0x42, 0x49, 0x46, 0x4a, 0x50, 0x54, 0x31, 0x51, 0x74, 0x51, 0x53, 0x42, 0x58, 0x52, 0x55, 0x49, 0x77, 0x48, 0x68, 0x63, 0x4e, 0x4d, 0x6a, 0x49, 0x77, 0x4e, 0x44, 0x41, 0x32, 0x4d, 0x44, 0x6b, 0x77, 0x4d, 0x54, 0x4d, 0x32, 0x0a, 0x57, 0x68, 0x63, 0x4e, 0x4e, 0x44, 0x63, 0x77, 0x4d, 0x7a, 0x4d, 0x78, 0x4d, 0x44, 0x6b, 0x77, 0x4d, 0x54, 0x4d, 0x32, 0x57, 0x6a, 0x42, 0x75, 0x4d, 0x51, 0x73, 0x77, 0x43, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x47, 0x45, 0x77, 0x4a, 0x46, 0x55, 0x7a, 0x45, 0x63, 0x4d, 0x42, 0x6f, 0x47, 0x41, 0x31, 0x55, 0x45, 0x43, 0x67, 0x77, 0x54, 0x52, 0x6d, 0x6c, 0x79, 0x62, 0x57, 0x46, 0x77, 0x63, 0x6d, 0x39, 0x6d, 0x5a, 0x58, 0x4e, 0x70, 0x62, 0x32, 0x35, 0x68, 0x0a, 0x62, 0x43, 0x42, 0x54, 0x51, 0x54, 0x45, 0x59, 0x4d, 0x42, 0x59, 0x47, 0x41, 0x31, 0x55, 0x45, 0x59, 0x51, 0x77, 0x50, 0x56, 0x6b, 0x46, 0x55, 0x52, 0x56, 0x4d, 0x74, 0x51, 0x54, 0x59, 0x79, 0x4e, 0x6a, 0x4d, 0x30, 0x4d, 0x44, 0x59, 0x34, 0x4d, 0x53, 0x63, 0x77, 0x4a, 0x51, 0x59, 0x44, 0x56, 0x51, 0x51, 0x44, 0x44, 0x42, 0x35, 0x47, 0x53, 0x56, 0x4a, 0x4e, 0x51, 0x56, 0x42, 0x53, 0x54, 0x30, 0x5a, 0x46, 0x55, 0x30, 0x6c, 0x50, 0x54, 0x6b, 0x46, 0x4d, 0x0a, 0x49, 0x45, 0x4e, 0x42, 0x49, 0x46, 0x4a, 0x50, 0x54, 0x31, 0x51, 0x74, 0x51, 0x53, 0x42, 0x58, 0x52, 0x55, 0x49, 0x77, 0x64, 0x6a, 0x41, 0x51, 0x42, 0x67, 0x63, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x49, 0x42, 0x42, 0x67, 0x55, 0x72, 0x67, 0x51, 0x51, 0x41, 0x49, 0x67, 0x4e, 0x69, 0x41, 0x41, 0x52, 0x48, 0x55, 0x2b, 0x6f, 0x73, 0x45, 0x61, 0x52, 0x33, 0x78, 0x79, 0x72, 0x71, 0x38, 0x39, 0x5a, 0x66, 0x65, 0x39, 0x4d, 0x45, 0x6b, 0x56, 0x7a, 0x36, 0x0a, 0x69, 0x4d, 0x59, 0x69, 0x75, 0x59, 0x4d, 0x51, 0x59, 0x6e, 0x65, 0x45, 0x4d, 0x79, 0x33, 0x70, 0x41, 0x34, 0x6a, 0x55, 0x34, 0x44, 0x50, 0x33, 0x37, 0x58, 0x63, 0x73, 0x53, 0x6d, 0x44, 0x71, 0x35, 0x47, 0x2b, 0x74, 0x62, 0x62, 0x54, 0x34, 0x54, 0x49, 0x71, 0x6b, 0x35, 0x42, 0x2f, 0x4b, 0x36, 0x6b, 0x38, 0x34, 0x53, 0x69, 0x36, 0x43, 0x63, 0x79, 0x76, 0x48, 0x5a, 0x70, 0x73, 0x4b, 0x6a, 0x45, 0x43, 0x63, 0x66, 0x49, 0x72, 0x32, 0x38, 0x6a, 0x6c, 0x67, 0x0a, 0x73, 0x74, 0x37, 0x4c, 0x37, 0x4c, 0x6a, 0x6b, 0x62, 0x2b, 0x71, 0x62, 0x58, 0x62, 0x64, 0x54, 0x6b, 0x42, 0x67, 0x79, 0x56, 0x63, 0x55, 0x67, 0x74, 0x35, 0x53, 0x6a, 0x59, 0x7a, 0x42, 0x68, 0x4d, 0x41, 0x38, 0x47, 0x41, 0x31, 0x55, 0x64, 0x45, 0x77, 0x45, 0x42, 0x2f, 0x77, 0x51, 0x46, 0x4d, 0x41, 0x4d, 0x42, 0x41, 0x66, 0x38, 0x77, 0x48, 0x77, 0x59, 0x44, 0x56, 0x52, 0x30, 0x6a, 0x42, 0x42, 0x67, 0x77, 0x46, 0x6f, 0x41, 0x55, 0x6b, 0x2b, 0x46, 0x44, 0x0a, 0x59, 0x31, 0x77, 0x38, 0x6e, 0x64, 0x59, 0x6e, 0x38, 0x31, 0x4c, 0x73, 0x46, 0x37, 0x4b, 0x70, 0x72, 0x79, 0x7a, 0x33, 0x64, 0x76, 0x67, 0x77, 0x48, 0x51, 0x59, 0x44, 0x56, 0x52, 0x30, 0x4f, 0x42, 0x42, 0x59, 0x45, 0x46, 0x4a, 0x50, 0x68, 0x51, 0x32, 0x4e, 0x63, 0x50, 0x4a, 0x33, 0x57, 0x4a, 0x2f, 0x4e, 0x53, 0x37, 0x42, 0x65, 0x79, 0x71, 0x61, 0x38, 0x73, 0x39, 0x33, 0x62, 0x34, 0x4d, 0x41, 0x34, 0x47, 0x41, 0x31, 0x55, 0x64, 0x44, 0x77, 0x45, 0x42, 0x0a, 0x2f, 0x77, 0x51, 0x45, 0x41, 0x77, 0x49, 0x42, 0x42, 0x6a, 0x41, 0x4b, 0x42, 0x67, 0x67, 0x71, 0x68, 0x6b, 0x6a, 0x4f, 0x50, 0x51, 0x51, 0x44, 0x41, 0x77, 0x4e, 0x6f, 0x41, 0x44, 0x42, 0x6c, 0x41, 0x6a, 0x41, 0x64, 0x66, 0x4b, 0x52, 0x37, 0x77, 0x34, 0x6c, 0x31, 0x4d, 0x2b, 0x45, 0x37, 0x71, 0x55, 0x57, 0x2f, 0x52, 0x75, 0x6e, 0x70, 0x6f, 0x64, 0x33, 0x4a, 0x49, 0x68, 0x61, 0x33, 0x52, 0x78, 0x45, 0x4c, 0x32, 0x4a, 0x71, 0x36, 0x38, 0x63, 0x67, 0x4c, 0x0a, 0x63, 0x46, 0x42, 0x54, 0x41, 0x70, 0x46, 0x77, 0x68, 0x56, 0x6d, 0x70, 0x48, 0x71, 0x54, 0x6d, 0x36, 0x69, 0x4d, 0x78, 0x6f, 0x41, 0x41, 0x43, 0x4d, 0x51, 0x44, 0x39, 0x34, 0x76, 0x69, 0x7a, 0x72, 0x78, 0x61, 0x35, 0x48, 0x6e, 0x50, 0x45, 0x6c, 0x75, 0x50, 0x42, 0x4d, 0x42, 0x6e, 0x59, 0x66, 0x75, 0x62, 0x44, 0x6c, 0x39, 0x34, 0x63, 0x54, 0x37, 0x69, 0x4a, 0x4c, 0x7a, 0x50, 0x72, 0x53, 0x41, 0x38, 0x5a, 0x39, 0x34, 0x64, 0x47, 0x58, 0x53, 0x61, 0x51, 0x0a, 0x70, 0x59, 0x58, 0x46, 0x75, 0x58, 0x71, 0x55, 0x50, 0x6f, 0x65, 0x6f, 0x76, 0x51, 0x41, 0x3d, 0x0a, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x0a,}; +unsigned int include_ca_bundle_crt_len = 228633; diff --git a/vere/pkg/vere/ca_bundle/ca_bundle.h b/vere/pkg/vere/ca_bundle/ca_bundle.h new file mode 100644 index 0000000..614d4e8 --- /dev/null +++ b/vere/pkg/vere/ca_bundle/ca_bundle.h @@ -0,0 +1,5 @@ +#ifndef include_ca_bundle_crt_H +#define include_ca_bundle_crt_H +extern unsigned char include_ca_bundle_crt[]; +extern unsigned int include_ca_bundle_crt_len; +#endif diff --git a/vere/pkg/vere/ca_bundle/ca_bundle.sh b/vere/pkg/vere/ca_bundle/ca_bundle.sh new file mode 100755 index 0000000..c28c9be --- /dev/null +++ b/vere/pkg/vere/ca_bundle/ca_bundle.sh @@ -0,0 +1,47 @@ +#!/bin/bash +function xxd_i() { + var=$1 + src_file=$2 + dst_h_file=$3 + dst_c_file=$4 + + # Generate `.h` file. + echo "Generating ${dst_h_file}..." + echo "#ifndef ${var}_H" > $dst_h_file + echo "#define ${var}_H" >> $dst_h_file + echo "extern unsigned char $var[];" >> $dst_h_file + echo "extern unsigned int ${var}_len;" >> $dst_h_file + echo '#endif' >> $dst_h_file + + # Generate `.c` file. + echo "Generating ${dst_c_file}..." + printf '#include "%s"\n' $dst_h_file > $dst_c_file + echo "unsigned char $var[] = {" >> $dst_c_file + cnt=0 + while IFS='' read line + do + for byte in $line + do + echo -n " 0x$byte," >> $dst_c_file + cnt=$((cnt+1)) + done + # <() is syntax for Bash process substitution. + done < <(od -An -v -tx1 $src_file) + echo "};" >> $dst_c_file + echo "unsigned int ${var}_len = $cnt;" >> $dst_c_file +} + +version=2024-07-02 +src_remote=https://curl.se/ca/cacert-${version}.pem +src_file=ca_bundle.pem +dst_h_file=ca_bundle.h +dst_c_file=ca_bundle.c + +rm $dst_h_file $dst_c_file + +echo "Downloading ca bundle from ${src_remote}" +curl -o $src_file $src_remote + +xxd_i include_ca_bundle_crt $src_file $dst_h_file $dst_c_file + +rm $src_file diff --git a/vere/pkg/vere/dawn.c b/vere/pkg/vere/dawn.c new file mode 100644 index 0000000..fb8457c --- /dev/null +++ b/vere/pkg/vere/dawn.c @@ -0,0 +1,484 @@ +/// @file +/// +/// Ethereum-integrated pre-boot validation. + +#include "vere.h" + +#include "curl/curl.h" +#include "noun.h" +#include "uv.h" + +/* _dawn_oct_to_buf(): +octs to uv_buf_t +*/ +static uv_buf_t +_dawn_oct_to_buf(u3_noun oct) +{ + if ( c3n == u3a_is_cat(u3h(oct)) ) { + exit(1); + } + + c3_w len_w = u3h(oct); + c3_y* buf_y = c3_malloc(1 + len_w); + buf_y[len_w] = 0; + + u3r_bytes(0, len_w, buf_y, u3t(oct)); + + u3z(oct); + return uv_buf_init((void*)buf_y, len_w); +} + +/* _dawn_buf_to_oct(): uv_buf_t to +octs +*/ +static u3_noun +_dawn_buf_to_oct(uv_buf_t buf_u) +{ + u3_noun len = u3i_words(1, (c3_w*)&buf_u.len); + + if ( c3n == u3a_is_cat(len) ) { + exit(1); + } + + return u3nc(len, u3i_bytes(buf_u.len, (const c3_y*)buf_u.base)); +} + +/* _dawn_post_json(): POST JSON to url_c +*/ +static uv_buf_t +_dawn_post_json(c3_c* url_c, uv_buf_t lod_u) +{ + CURL *curl; + CURLcode result; + long cod_l; + struct curl_slist* hed_u = 0; + + uv_buf_t buf_u = uv_buf_init(c3_malloc(1), 0); + + if ( !(curl = curl_easy_init()) ) { + u3l_log("failed to initialize libcurl"); + exit(1); + } + + hed_u = curl_slist_append(hed_u, "Accept: application/json"); + hed_u = curl_slist_append(hed_u, "Content-Type: application/json"); + hed_u = curl_slist_append(hed_u, "charsets: utf-8"); + + // XX require TLS, pin default cert? + // + u3K.ssl_curl_f(curl); + curl_easy_setopt(curl, CURLOPT_URL, url_c); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, king_curl_alloc); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*)&buf_u); + curl_easy_setopt(curl, CURLOPT_HTTPHEADER, hed_u); + + // note: must be terminated! + curl_easy_setopt(curl, CURLOPT_POSTFIELDS, lod_u.base); + + result = curl_easy_perform(curl); + curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &cod_l); + + // XX retry? + if ( CURLE_OK != result ) { + u3l_log("failed to fetch %s: %s", + url_c, curl_easy_strerror(result)); + exit(1); + } + if ( 300 <= cod_l ) { + u3l_log("error fetching %s: HTTP %ld", url_c, cod_l); + exit(1); + } + + curl_easy_cleanup(curl); + curl_slist_free_all(hed_u); + + return buf_u; +} + +/* _dawn_get_jam(): GET a jammed noun from url_c +*/ +static u3_noun +_dawn_get_jam(c3_c* url_c) +{ + CURL *curl; + CURLcode result; + long cod_l; + + uv_buf_t buf_u = uv_buf_init(c3_malloc(1), 0); + + if ( !(curl = curl_easy_init()) ) { + u3l_log("failed to initialize libcurl"); + exit(1); + } + + // XX require TLS, pin default cert? + // + u3K.ssl_curl_f(curl); + curl_easy_setopt(curl, CURLOPT_URL, url_c); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, king_curl_alloc); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*)&buf_u); + + result = curl_easy_perform(curl); + curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &cod_l); + + // XX retry? + if ( CURLE_OK != result ) { + u3l_log("failed to fetch %s: %s", + url_c, curl_easy_strerror(result)); + exit(1); + } + if ( 300 <= cod_l ) { + u3l_log("error fetching %s: HTTP %ld", url_c, cod_l); + exit(1); + } + + curl_easy_cleanup(curl); + + // throw away the length from the octs + // + u3_noun octs = _dawn_buf_to_oct(buf_u); + u3_noun jammed = u3k(u3t(octs)); + u3z(octs); + + c3_free(buf_u.base); + + return u3ke_cue(jammed); +} + +/* _dawn_eth_rpc(): ethereum JSON RPC with request/response as +octs +*/ +static u3_noun +_dawn_eth_rpc(c3_c* url_c, u3_noun oct) +{ + uv_buf_t buf_u = _dawn_post_json(url_c, _dawn_oct_to_buf(oct)); + u3_noun pro = _dawn_buf_to_oct(buf_u); + + c3_free(buf_u.base); + + return pro; +} + +/* _dawn_fail(): pre-boot validation failed +*/ +static void +_dawn_fail(u3_noun who, u3_noun rac, u3_noun sas) +{ + u3_noun how = u3dc("scot", 'p', u3k(who)); + c3_c* how_c = u3r_string(u3k(how)); + + c3_c* rac_c; + + switch (rac) { + default: u3_assert(0); + case c3__czar: { + rac_c = "galaxy"; + break; + } + case c3__king: { + rac_c = "star"; + break; + } + case c3__duke: { + rac_c = "planet"; + break; + } + case c3__earl: { + rac_c = "moon"; + break; + } + case c3__pawn: { + rac_c = "comet"; + break; + } + } + + u3l_log("boot: invalid keys for %s '%s'", rac_c, how_c); + + // XX deconstruct sas, print helpful error messages + while ( u3_nul != sas ) { + u3m_p("pre-boot error", u3h(sas)); + sas = u3t(sas); + } + + u3z(how); + c3_free(how_c); + exit(1); +} + +/* _dawn_need_unit(): produce a value or print error and exit +*/ +static u3_noun +_dawn_need_unit(u3_noun nit, c3_c* msg_c) +{ + if ( u3_nul == nit ) { + u3l_log("%s", msg_c); + exit(1); + } + else { + u3_noun pro = u3k(u3t(nit)); + u3z(nit); + return pro; + } +} + +/* _dawn_turf(): override contract domains with -H +*/ +static u3_noun +_dawn_turf(c3_c* dns_c) +{ + u3_noun tuf; + + u3_noun par = u3v_wish("thos:de-purl:html"); + u3_noun dns = u3i_string(dns_c); + u3_noun rul = u3dc("rush", u3k(dns), u3k(par)); + + if ( (u3_nul == rul) || (c3n == u3h(u3t(rul))) ) { + u3l_log("boot: invalid domain specified with -H %s", dns_c); + exit(1); + } + else { + u3l_log("boot: overriding network domains with %s", dns_c); + u3_noun dom = u3t(u3t(rul)); + tuf = u3nc(u3k(dom), u3_nul); + } + + u3z(par); u3z(dns); u3z(rul); + + return tuf; +} + +/* _dawn_sponsor(): retrieve sponsor from point +*/ +static u3_noun +_dawn_sponsor(u3_noun who, u3_noun rac, u3_noun pot) +{ + u3_noun uni = u3dc("sponsor:dawn", u3k(who), u3k(pot)); + + if ( c3n == u3h(uni) ) { + _dawn_fail(who, rac, u3nc(u3t(uni), u3_nul)); + return u3_none; + } + + u3_noun pos = u3k(u3t(uni)); + + u3z(who); u3z(rac); u3z(pot); u3z(uni); + + return pos; +} + +/* u3_dawn_vent(): validated boot event +*/ +u3_noun +u3_dawn_vent(u3_noun ship, u3_noun feed) +{ + u3_noun sed, pos, pon, zar, tuf; + + u3_noun rank = u3do("clan:title", u3k(ship)); + + c3_c* url_c = ( 0 != u3_Host.ops_u.eth_c ) ? + u3_Host.ops_u.eth_c : + "https://roller.urbit.org/v1/azimuth"; + + { + // +point:azimuth: on-chain state + // + u3_noun pot; + + if ( c3__pawn == rank ) { + // irrelevant, just bunt +point + // + pot = u3v_wish("*point:azimuth"); + } + else if ( c3__earl == rank ) { + pot = u3v_wish("*point:azimuth"); + } + else { + u3l_log("boot: retrieving %s's public keys", + u3_Host.ops_u.who_c); + + { + u3_noun oct = u3do("point:give:dawn", u3k(ship)); + u3_noun luh = _dawn_eth_rpc(url_c, u3k(oct)); + + pot = _dawn_need_unit(u3dc("point:take:dawn", u3k(ship), u3k(luh)), + "boot: failed to retrieve public keys"); + u3z(oct); u3z(luh); + } + } + + // +live:dawn: network state + // XX actually make request + // + u3_noun liv = u3_nul; + // u3_noun liv = _dawn_get_json(parent, /some/url) + + u3l_log("boot: verifying keys"); + + if ( c3y == u3a_is_cell(feed) && + c3n == u3a_is_cell(u3h(feed)) && + c3__earl == rank ) { + // bails, won't return + u3l_log("boot: incorrect keyfile please use updated format"); + _dawn_fail(ship, rank, u3_nul); + return u3_none; + } + + // (each seed (lest error=@tas)) + // + sed = u3dq("veri:dawn", u3k(ship), u3k(feed), u3k(pot), u3k(liv)); + + if ( c3n == u3h(sed) ) { + // bails, won't return + _dawn_fail(ship, rank, u3t(sed)); + return u3_none; + } + + u3l_log("boot: getting sponsor"); + pos = _dawn_sponsor(u3k(ship), u3k(rank), u3k(pot)); + u3z(pot); u3z(liv); + } + + + // (map ship [=life =pass]): galaxy table + // + { + u3l_log("boot: retrieving galaxy table"); + + u3_noun oct = u3v_wish("czar:give:dawn"); + u3_noun raz = _dawn_eth_rpc(url_c, u3k(oct)); + + zar = _dawn_need_unit(u3do("czar:take:dawn", u3k(raz)), + "boot: failed to retrieve galaxy table"); + u3z(oct); u3z(raz); + } + + // (list turf): ames domains + // + if ( 0 != u3_Host.ops_u.dns_c ) { + tuf = _dawn_turf(u3_Host.ops_u.dns_c); + } + else { + u3l_log("boot: retrieving network domains"); + + u3_noun oct = u3v_wish("turf:give:dawn"); + u3_noun fut = _dawn_eth_rpc(url_c, u3k(oct)); + + tuf = _dawn_need_unit(u3do("turf:take:dawn", u3k(fut)), + "boot: failed to retrieve network domains"); + u3z(oct); u3z(fut); + } + + pon = u3_nul; + while (c3__czar != rank) { + u3_noun son; + // print message + // + { + u3_noun who = u3dc("scot", 'p', u3k(pos)); + c3_c* who_c = u3r_string(who); + u3l_log("boot: retrieving keys for sponsor %s", who_c); + u3z(who); + c3_free(who_c); + } + + // retrieve +point:azimuth of pos (sponsor of ship) + // + { + u3_noun oct = u3do("point:give:dawn", u3k(pos)); + u3_noun luh = _dawn_eth_rpc(url_c, u3k(oct)); + + son = _dawn_need_unit(u3dc("point:take:dawn", u3k(pos), u3k(luh)), + "boot: failed to retrieve sponsor keys"); + // append to sponsor chain list + // + pon = u3nc(u3nc(u3k(pos), u3k(son)), pon); + u3z(oct); u3z(luh); + } + + // find next sponsor + // + u3z(ship); u3z(rank); + ship = pos; + rank = u3do("clan:title", u3k(ship)); + pos = _dawn_sponsor(u3k(ship), u3k(rank), u3k(son)); + + u3z(son); + } + + // [%dawn seed sponsors galaxies domains block eth-url snap] + // + //NOTE blocknum of 0 is fine because jael ignores it. + // should probably be removed from dawn event. + u3_noun ven = u3nc(c3__dawn, + u3nq(u3k(u3t(sed)), pon, zar, u3nt(tuf, 0, u3_nul))); + + u3z(sed); u3z(rank); u3z(pos); u3z(ship); u3z(feed); + + return ven; +} + +/* _dawn_come(): mine a comet under a list of stars +*/ +static u3_noun +_dawn_come(u3_noun stars) +{ + u3_noun seed; + { + c3_w eny_w[16]; + u3_noun eny; + + c3_rand(eny_w); + eny = u3i_words(16, eny_w); + + u3l_log("boot: mining a comet. May take up to an hour."); + u3l_log("If you want to boot faster, get an Urbit identity."); + + seed = u3dc("come:dawn", u3k(stars), u3k(eny)); + u3z(eny); + } + + { + /* [[%2 ~] who=ship ryf=rift kyz=(list [lyf=life key=ring])] */ + u3_noun who = u3dc("scot", 'p', u3k(u3h(u3t(seed)))); + c3_c* who_c = u3r_string(who); + + u3l_log("boot: found comet %s", who_c); + + // enable to print and save comet private key for future reuse + // +#if 0 + { + u3_noun key = u3dc("scot", c3__uw, u3qe_jam(seed)); + c3_c* key_c = u3r_string(key); + + u3l_log("boot: comet private key\n %s", key_c); + + { + c3_c pat_c[64]; + snprintf(pat_c, 64, "%s.key", who_c + 1); + + FILE* fil_u = c3_fopen(pat_c, "w"); + fprintf(fil_u, "%s\n", key_c); + fclose(fil_u); + } + + c3_free(key_c); + u3z(key); + } +#endif + + c3_free(who_c); + u3z(who); + } + + u3z(stars); + + return seed; +} + +/* u3_dawn_come(): mine a comet under a list of stars we download +*/ +u3_noun +u3_dawn_come() +{ + return _dawn_come( + _dawn_get_jam("https://bootstrap.urbit.org/comet-stars.jam")); +} diff --git a/vere/pkg/vere/db/lmdb.c b/vere/pkg/vere/db/lmdb.c new file mode 100644 index 0000000..d137870 --- /dev/null +++ b/vere/pkg/vere/db/lmdb.c @@ -0,0 +1,635 @@ +/// @file + +#include "db/lmdb.h" + +#include + +#include "c3/c3.h" +#include "noun.h" + +/* mdb_logerror(): writes an error message and lmdb error code to f. +*/ +void mdb_logerror(FILE* f, int err, const char* fmt, ...); + +/* mdb_get_filesize(): gets the size of a lmdb database file on disk. +*/ +intmax_t mdb_get_filesize(mdb_filehandle_t han_u); + +// lmdb api wrapper +// +// this module implements a simple persistence api on top of lmdb. +// outside of its use of c3 type definitions, this module has no +// dependence on anything u3, or on any library besides lmdb itself. +// +// urbit requires very little from a persist store -- it merely +// needs to store variable-length buffers in: +// +// - a metadata store with c3_c (unsigned char) keys +// - an event store with contiguous c3_d (uint64_t) keys +// +// supported operations are as follows +// +// - open/close an environment +// - read/save metadata +// - read the first and last event numbers +// - read/save ranges of events +// + +/* u3_lmdb_init(): open lmdb at [pax_c], mmap up to [siz_i]. +*/ +MDB_env* +u3_lmdb_init(const c3_c* pax_c, size_t siz_i) +{ + MDB_env* env_u; + c3_w ret_w; + + if ( (ret_w = mdb_env_create(&env_u)) ) { + mdb_logerror(stderr, ret_w, "lmdb: init fail"); + return 0; + } + + // Our databases have two tables: META and EVENTS + // + if ( (ret_w = mdb_env_set_maxdbs(env_u, 2)) ) { + mdb_logerror(stderr, ret_w, "lmdb: failed to set number of databases"); + // XX dispose env_u + // + return 0; + } + + if ( (ret_w = mdb_env_set_mapsize(env_u, siz_i)) ) { + mdb_logerror(stderr, ret_w, "lmdb: failed to set database size"); + // XX dispose env_u + // + return 0; + } + + { +# if defined(U3_OS_no_ubc) + c3_w ops_w = MDB_WRITEMAP; +# else + c3_w ops_w = 0; +# endif + + if ( (ret_w = mdb_env_open(env_u, pax_c, ops_w, 0664)) ) { + mdb_logerror(stderr, ret_w, "lmdb: failed to open event log"); + // XX dispose env_u + // + return 0; + } + } + + return env_u; +} + +/* u3_lmdb_exit(): close lmdb. +*/ +void +u3_lmdb_exit(MDB_env* env_u) +{ + mdb_env_close(env_u); +} + +/* u3_lmdb_stat(): print env stats. +*/ +void +u3_lmdb_stat(MDB_env* env_u, FILE* fil_u) +{ + size_t siz_i; + + fprintf(fil_u, "lmdb info:\n"); + + { + MDB_stat mst_u; + MDB_envinfo mei_u; + + (void)mdb_env_stat(env_u, &mst_u); + (void)mdb_env_info(env_u, &mei_u); + + fprintf(fil_u, " map size: %zu\n", mei_u.me_mapsize); + fprintf(fil_u, " page size: %u\n", mst_u.ms_psize); + fprintf(fil_u, " max pages: %zu\n", mei_u.me_mapsize / mst_u.ms_psize); + fprintf(fil_u, " number of pages used: %zu\n", mei_u.me_last_pgno+1); + fprintf(fil_u, " last transaction ID: %zu\n", mei_u.me_last_txnid); + fprintf(fil_u, " max readers: %u\n", mei_u.me_maxreaders); + fprintf(fil_u, " number of readers used: %u\n", mei_u.me_numreaders); + + siz_i = mst_u.ms_psize * (mei_u.me_last_pgno+1); + } + + { + mdb_filehandle_t han_u; + mdb_env_get_fd(env_u, &han_u); + + intmax_t dis_i = mdb_get_filesize(han_u); + + if ( siz_i != dis_i ) { + fprintf(fil_u, "MISMATCH:\n"); + } + + fprintf(fil_u, " file size (page): %zu\n", siz_i); + fprintf(fil_u, " file size (stat): %jd\n", dis_i); + } +} + +/* u3_lmdb_gulf(): read first and last event numbers. +*/ +c3_o +u3_lmdb_gulf(MDB_env* env_u, c3_d* low_d, c3_d* hig_d) +{ + MDB_txn* txn_u; + MDB_dbi mdb_u; + c3_w ret_w; + + // create a read-only transaction. + // + // XX why no MDB_RDONLY? + // + if ( (ret_w = mdb_txn_begin(env_u, 0, 0, &txn_u)) ) { + mdb_logerror(stderr, ret_w, "lmdb: gulf: txn_begin fail"); + return c3n; + } + + // open the database in the transaction + // + { + c3_w ops_w = MDB_CREATE | MDB_INTEGERKEY; + + if ( (ret_w = mdb_dbi_open(txn_u, "EVENTS", ops_w, &mdb_u)) ) { + mdb_logerror(stderr, ret_w, "lmdb: gulf: dbi_open fail"); + // XX confirm + // + mdb_txn_abort(txn_u); + return c3n; + } + } + + { + MDB_cursor* cur_u; + MDB_val key_u; + MDB_val val_u; + c3_d fir_d, las_d; + + // creates a cursor to point to the last event + // + if ( (ret_w = mdb_cursor_open(txn_u, mdb_u, &cur_u)) ) { + mdb_logerror(stderr, ret_w, "lmdb: gulf: cursor_open fail"); + // XX confirm + // + mdb_txn_abort(txn_u); + return c3n; + } + + // read with the cursor from the start of the database + // + ret_w = mdb_cursor_get(cur_u, &key_u, &val_u, MDB_FIRST); + + if ( MDB_NOTFOUND == ret_w ) { + *low_d = 0; + *hig_d = 0; + mdb_cursor_close(cur_u); + mdb_txn_abort(txn_u); + return c3y; + } + else if ( ret_w ) { + mdb_logerror(stderr, ret_w, "lmdb: gulf: head fail"); + mdb_cursor_close(cur_u); + mdb_txn_abort(txn_u); + return c3n; + } + else { + fir_d = c3_sift_chub(key_u.mv_data); + } + + // read with the cursor from the end of the database + // + ret_w = mdb_cursor_get(cur_u, &key_u, &val_u, MDB_LAST); + + if ( !ret_w ) { + las_d = c3_sift_chub(key_u.mv_data); + } + + // clean up unconditionally, we're done + // + mdb_cursor_close(cur_u); + mdb_txn_abort(txn_u); + + if ( ret_w ) { + mdb_logerror(stderr, ret_w, "lmdb: gulf: last fail"); + return c3n; + } + else { + *low_d = fir_d; + *hig_d = las_d; + return c3y; + } + } +} + +/* u3_lmdb_read(): read [len_d] events starting at [eve_d]. +*/ +c3_o +u3_lmdb_read(MDB_env* env_u, + void* ptr_v, + c3_d eve_d, + c3_d len_d, + c3_o (*read_f)(void*, c3_d, size_t, void*)) +{ + MDB_txn* txn_u; + MDB_dbi mdb_u; + c3_w ret_w; + + // create a read-only transaction. + // + if ( (ret_w = mdb_txn_begin(env_u, 0, MDB_RDONLY, &txn_u)) ) { + mdb_logerror(stderr, ret_w, "lmdb: read txn_begin fail"); + return c3n; + } + + // open the database in the transaction + // + { + c3_w ops_w = MDB_CREATE | MDB_INTEGERKEY; + + if ( (ret_w = mdb_dbi_open(txn_u, "EVENTS", ops_w, &mdb_u)) ) { + mdb_logerror(stderr, ret_w, "lmdb: read: dbi_open fail"); + // XX confirm + // + mdb_txn_abort(txn_u); + return c3n; + } + } + + + { + MDB_cursor* cur_u; + MDB_val val_u; + // set the initial key to [eve_d] + // + MDB_val key_u = { .mv_size = sizeof(c3_d), .mv_data = &eve_d }; + + // creates a cursor to iterate over keys starting at [eve_d] + // + if ( (ret_w = mdb_cursor_open(txn_u, mdb_u, &cur_u)) ) { + mdb_logerror(stderr, ret_w, "lmdb: read: cursor_open fail"); + // XX confirm + // + mdb_txn_abort(txn_u); + return c3n; + } + + // set the cursor to the position of [eve_d] + // + if ( (ret_w = mdb_cursor_get(cur_u, &key_u, &val_u, MDB_SET_KEY)) ) { + mdb_logerror(stderr, ret_w, "lmdb: read: initial cursor_get failed at %" PRIu64, eve_d); + mdb_cursor_close(cur_u); + // XX confirm + // + mdb_txn_abort(txn_u); + return c3n; + } + + // load up to [len_d] events, iterating forward across the cursor. + // + { + c3_o ret_o = c3y; + c3_d i_d; + + for ( i_d = 0; (ret_w != MDB_NOTFOUND) && (i_d < len_d); ++i_d) { + c3_d cur_d = (eve_d + i_d); + if ( sizeof(c3_d) != key_u.mv_size ) { + fprintf(stderr, "lmdb: read: invalid key size\r\n"); + ret_o = c3n; + break; + } + + // sanity check: ensure contiguous event numbers + // + if ( c3_sift_chub(key_u.mv_data) != cur_d ) { + fprintf(stderr, "lmdb: read gap: expected %" PRIu64 + ", received %" PRIu64 "\r\n", + cur_d, + *(c3_d*)key_u.mv_data); + ret_o = c3n; + break; + } + + // invoke read callback with [val_u] + // + if ( c3n == read_f(ptr_v, cur_d, val_u.mv_size, val_u.mv_data) ) { + ret_o = c3n; + break; + } + + // read the next event from the cursor + // + if ( (ret_w = mdb_cursor_get(cur_u, &key_u, &val_u, MDB_NEXT)) + && (MDB_NOTFOUND != ret_w) ) + { + mdb_logerror(stderr, ret_w, "lmdb: read: error"); + ret_o = c3n; + break; + } + } + + mdb_cursor_close(cur_u); + + // read-only transactions are aborted when complete + // + mdb_txn_abort(txn_u); + + return ret_o; + } + } +} + +/* u3_lmdb_save(): save [len_d] events starting at [eve_d]. +*/ +c3_o +u3_lmdb_save(MDB_env* env_u, + c3_d eve_d, // first event + c3_d len_d, // number of events + void** byt_p, // array of bytes + size_t* siz_i) // array of lengths +{ + MDB_txn* txn_u; + MDB_dbi mdb_u; + c3_w ret_w; + + // create a write transaction + // + if ( (ret_w = mdb_txn_begin(env_u, 0, 0, &txn_u)) ) { + mdb_logerror(stderr, ret_w, "lmdb: write: txn_begin fail"); + return c3n; + } + + // opens the database in the transaction + // + { + c3_w ops_w = MDB_CREATE | MDB_INTEGERKEY; + + if ( (ret_w = mdb_dbi_open(txn_u, "EVENTS", ops_w, &mdb_u)) ) { + mdb_logerror(stderr, ret_w, "lmdb: write: dbi_open fail"); + mdb_txn_abort(txn_u); + return c3n; + } + } + + // write every event in the batch + // + { + c3_w ops_w = MDB_NOOVERWRITE; + c3_d las_d = (eve_d + len_d); + c3_d key_d, i_d; + + for ( i_d = 0; i_d < len_d; ++i_d) { + key_d = eve_d + i_d; + + { + MDB_val key_u = { .mv_size = sizeof(c3_d), .mv_data = &key_d }; + MDB_val val_u = { .mv_size = siz_i[i_d], .mv_data = byt_p[i_d] }; + + if ( (ret_w = mdb_put(txn_u, mdb_u, &key_u, &val_u, ops_w)) ) { + fprintf(stderr, "lmdb: write failed on event %" PRIu64 "\r\n", key_d); + mdb_txn_abort(txn_u); + return c3n; + } + } + } + } + + // commit transaction + // + if ( (ret_w = mdb_txn_commit(txn_u)) ) { + mdb_logerror(stderr, ret_w, "lmdb: write failed"); + return c3n; + } + + return c3y; +} + +/* u3_lmdb_read_meta(): read by string from the META db. +*/ +void +u3_lmdb_read_meta(MDB_env* env_u, + void* ptr_v, + const c3_c* key_c, + void (*read_f)(void*, ssize_t, void*)) +{ + MDB_txn* txn_u; + MDB_dbi mdb_u; + c3_w ret_w; + + // create a read transaction + // + if ( (ret_w = mdb_txn_begin(env_u, 0, MDB_RDONLY, &txn_u)) ) { + mdb_logerror(stderr, ret_w, "lmdb: meta read: txn_begin fail"); + read_f(ptr_v, -1, 0); + return; + } + + // open the database in the transaction + // + if ( (ret_w = mdb_dbi_open(txn_u, "META", 0, &mdb_u)) ) { + mdb_logerror(stderr, ret_w, "lmdb: meta read: dbi_open fail"); + mdb_txn_abort(txn_u); + read_f(ptr_v, -1, 0); + return; + } + + // read by string key, invoking callback with result + { + MDB_val key_u = { .mv_size = strlen(key_c), .mv_data = (void*)key_c }; + MDB_val val_u; + + if ( (ret_w = mdb_get(txn_u, mdb_u, &key_u, &val_u)) ) { + mdb_logerror(stderr, ret_w, "lmdb: read failed"); + mdb_txn_abort(txn_u); + read_f(ptr_v, -1, 0); + return; + } + else { + read_f(ptr_v, val_u.mv_size, val_u.mv_data); + + // read-only transactions are aborted when complete + // + mdb_txn_abort(txn_u); + } + } +} + +/* u3_lmdb_save_meta(): save by string into the META db. +*/ +c3_o +u3_lmdb_save_meta(MDB_env* env_u, + const c3_c* key_c, + size_t val_i, + void* val_p) +{ + MDB_txn* txn_u; + MDB_dbi mdb_u; + c3_w ret_w; + + // create a write transaction + // + if ( (ret_w = mdb_txn_begin(env_u, 0, 0, &txn_u)) ) { + mdb_logerror(stderr, ret_w, "lmdb: meta write: txn_begin fail"); + return c3n; + } + + // opens the database in the transaction + // + if ( (ret_w = mdb_dbi_open(txn_u, "META", MDB_CREATE, &mdb_u)) ) { + mdb_logerror(stderr, ret_w, "lmdb: meta write: dbi_open fail"); + mdb_txn_abort(txn_u); + return c3n; + } + + // put value by string key + // + { + MDB_val key_u = { .mv_size = strlen(key_c), .mv_data = (void*)key_c }; + MDB_val val_u = { .mv_size = val_i, .mv_data = val_p }; + + if ( (ret_w = mdb_put(txn_u, mdb_u, &key_u, &val_u, 0)) ) { + mdb_logerror(stderr, ret_w, "lmdb: write failed"); + mdb_txn_abort(txn_u); + return c3n; + } + } + + // commit txn + // + if ( (ret_w = mdb_txn_commit(txn_u)) ) { + mdb_logerror(stderr, ret_w, "lmdb: meta write: commit failed"); + return c3n; + } + + return c3y; +} + +/* u3_lmdb_walk_init(): initialize db iterator. +*/ +c3_o +u3_lmdb_walk_init(MDB_env* env_u, + u3_lmdb_walk* itr_u, + c3_d nex_d, + c3_d las_d) +{ + // XX assumes little-endian + // + MDB_val key_u = { .mv_size = sizeof(c3_d), .mv_data = &nex_d }; + MDB_val val_u; + c3_w ops_w, ret_w; + + itr_u->red_o = c3n; + itr_u->nex_d = nex_d; + itr_u->las_d = las_d; + + // create a read-only transaction. + // + ops_w = MDB_RDONLY; + if ( (ret_w = mdb_txn_begin(env_u, 0, ops_w, &itr_u->txn_u)) ) { + mdb_logerror(stderr, ret_w, "lmdb: read txn_begin fail"); + return c3n; + } + // open the database in the transaction + // + ops_w = MDB_CREATE | MDB_INTEGERKEY; + if ( (ret_w = mdb_dbi_open(itr_u->txn_u, "EVENTS", ops_w, &itr_u->mdb_u)) ) { + mdb_logerror(stderr, ret_w, "lmdb: read: dbi_open fail"); + // XX confirm + // + mdb_txn_abort(itr_u->txn_u); + return c3n; + } + + // creates a cursor to iterate over keys starting at [eve_d] + // + if ( (ret_w = mdb_cursor_open(itr_u->txn_u, itr_u->mdb_u, &itr_u->cur_u)) ) { + mdb_logerror(stderr, ret_w, "lmdb: read: cursor_open fail"); + // XX confirm + // + mdb_txn_abort(itr_u->txn_u); + return c3n; + } + + // set the cursor to the position of [eve_d] + // + ops_w = MDB_SET_KEY; + if ( (ret_w = mdb_cursor_get(itr_u->cur_u, &key_u, &val_u, ops_w)) ) { + mdb_logerror(stderr, ret_w, "lmdb: read: initial cursor_get failed"); + fprintf(stderr, " at %" PRIu64 "\r\n", nex_d); + mdb_cursor_close(itr_u->cur_u); + // XX confirm + // + mdb_txn_abort(itr_u->txn_u); + return c3n; + } + + return c3y; +} + +/* u3_lmdb_walk_next(): synchronously read next event from iterator. +*/ +c3_o +u3_lmdb_walk_next(u3_lmdb_walk* itr_u, size_t* len_i, void** buf_v) +{ + MDB_val key_u, val_u; + c3_w ret_w, ops_w; + + u3_assert( itr_u->nex_d <= itr_u->las_d ); + + ops_w = ( c3y == itr_u->red_o ) ? MDB_NEXT : MDB_GET_CURRENT; + if ( (ret_w = mdb_cursor_get(itr_u->cur_u, &key_u, &val_u, ops_w)) ) { + mdb_logerror(stderr, ret_w, "lmdb: walk error"); + return c3n; + } + + // sanity check: ensure contiguous event numbers + // + if ( c3_sift_chub(key_u.mv_data) != itr_u->nex_d ) { + fprintf(stderr, "lmdb: read gap: expected %" PRIu64 + ", received %" PRIu64 "\r\n", + itr_u->nex_d, + c3_sift_chub(key_u.mv_data)); + return c3n; + } + + *len_i = val_u.mv_size; + *buf_v = val_u.mv_data; + + itr_u->nex_d++; + itr_u->red_o = c3y; + + return c3y; +} + +/* u3_lmdb_walk_done(): close iterator. +*/ +void +u3_lmdb_walk_done(u3_lmdb_walk* itr_u) +{ + mdb_cursor_close(itr_u->cur_u); + mdb_txn_abort(itr_u->txn_u); +} + +/* mdb_logerror(): writes an error message and lmdb error code to f. +*/ +void mdb_logerror(FILE* f, int err, const char* fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + vfprintf(f, fmt, ap); + va_end(ap); + fprintf(f, ": %s\r\n", mdb_strerror(err)); +} + +/* mdb_get_filesize(): gets the size of a lmdb database file on disk. +*/ +intmax_t mdb_get_filesize(mdb_filehandle_t han_u) +{ + struct stat sat_u; + fstat(han_u, &sat_u); + return (intmax_t)sat_u.st_size; +} diff --git a/vere/pkg/vere/db/lmdb.h b/vere/pkg/vere/db/lmdb.h new file mode 100644 index 0000000..e630cf4 --- /dev/null +++ b/vere/pkg/vere/db/lmdb.h @@ -0,0 +1,94 @@ +/// @file + +#ifndef U3_VERE_DB_LMDB_H +#define U3_VERE_DB_LMDB_H + +#include "c3/c3.h" +#include "lmdb/lmdb.h" + + /* lmdb api wrapper + */ + /* u3_lmdb_walk: event iterator + */ + typedef struct _u3_lmdb_walk { + MDB_txn* txn_u; // transaction handle + MDB_dbi mdb_u; // db handle + MDB_cursor* cur_u; // db cursor + c3_o red_o; // have we read from this yet? + c3_d nex_d; // next event number + c3_d las_d; // final event number, inclusive + } u3_lmdb_walk; + + /* u3_lmdb_init(): open lmdb at [pax_c], mmap up to [siz_i]. + */ + MDB_env* + u3_lmdb_init(const c3_c* pax_c, size_t siz_i); + + /* u3_lmdb_exit(): close lmdb. + */ + void + u3_lmdb_exit(MDB_env* env_u); + + /* u3_lmdb_stat(): print env stats. + */ + void + u3_lmdb_stat(MDB_env* env_u, FILE* fil_u); + + /* u3_lmdb_gulf(): read first and last event numbers. + */ + c3_o + u3_lmdb_gulf(MDB_env* env_u, c3_d* low_d, c3_d* hig_d); + + /* u3_lmdb_read(): read [len_d] events starting at [eve_d]. + */ + c3_o + u3_lmdb_read(MDB_env* env_u, + void* ptr_v, + c3_d eve_d, + c3_d len_d, + c3_o (*read_f)(void*, c3_d, size_t , void*)); + + /* u3_lmdb_save(): save [len_d] events starting at [eve_d]. + */ + c3_o + u3_lmdb_save(MDB_env* env_u, + c3_d eve_d, + c3_d len_d, + void** byt_p, + size_t* siz_i); + + /* u3_lmdb_read_meta(): read by string from the META db. + */ + void + u3_lmdb_read_meta(MDB_env* env_u, + void* ptr_v, + const c3_c* key_c, + void (*read_f)(void*, ssize_t, void*)); + + /* u3_lmdb_save_meta(): save by string into the META db. + */ + c3_o + u3_lmdb_save_meta(MDB_env* env_u, + const c3_c* key_c, + size_t val_i, + void* val_p); + + /* u3_lmdb_walk_init(): initialize db iterator. + */ + c3_o + u3_lmdb_walk_init(MDB_env* env_u, + u3_lmdb_walk* itr_u, + c3_d nex_d, + c3_d las_d); + + /* u3_lmdb_walk_next(): synchronously read next event from iterator. + */ + c3_o + u3_lmdb_walk_next(u3_lmdb_walk* itr_u, size_t* len_i, void** buf_v); + + /* u3_lmdb_walk_done(): close iterator. + */ + void + u3_lmdb_walk_done(u3_lmdb_walk* itr_u); + +#endif /* ifndef U3_VERE_DB_LMDB_H */ diff --git a/vere/pkg/vere/disk.c b/vere/pkg/vere/disk.c new file mode 100644 index 0000000..97985d5 --- /dev/null +++ b/vere/pkg/vere/disk.c @@ -0,0 +1,2127 @@ +/// @file + +#include "noun.h" +#include "events.h" +#include "vere.h" +#include "version.h" +#include "db/lmdb.h" +#include + +struct _cd_read { + uv_timer_t tim_u; + c3_d eve_d; + c3_d len_d; + struct _u3_fact* ent_u; // queue entry + struct _u3_fact* ext_u; // queue exit + struct _u3_disk* log_u; +}; + +struct _cd_save { + c3_o ret_o; // result + c3_d eve_d; // first event + c3_d len_d; // number of events + c3_y** byt_y; // array of bytes + size_t* siz_i; // array of lengths + struct _u3_disk* log_u; +}; + +struct _u3_disk_walk { + u3_lmdb_walk itr_u; + u3_disk* log_u; + c3_o liv_o; +}; + +#undef VERBOSE_DISK +#undef DISK_TRACE_JAM +#undef DISK_TRACE_CUE + +static void +_disk_commit(u3_disk* log_u); + +/* _disk_free_save(): free write batch +*/ +static void +_disk_free_save(struct _cd_save* req_u) +{ + while ( req_u->len_d-- ) { + c3_free(req_u->byt_y[req_u->len_d]); + } + + c3_free(req_u->byt_y); + c3_free(req_u->siz_i); + c3_free(req_u); +} + +/* _disk_commit_done(): commit complete. + */ +static void +_disk_commit_done(struct _cd_save* req_u) +{ + u3_disk* log_u = req_u->log_u; + c3_d eve_d = req_u->eve_d; + c3_d len_d = req_u->len_d; + c3_o ret_o = req_u->ret_o; + + if ( c3n == ret_o ) { + log_u->cb_u.write_bail_f(log_u->cb_u.ptr_v, eve_d + (len_d - 1ULL)); + +#ifdef VERBOSE_DISK + if ( 1ULL == len_d ) { + fprintf(stderr, "disk: (%" PRIu64 "): commit: failed\r\n", eve_d); + } + else { + fprintf(stderr, "disk: (%" PRIu64 "-%" PRIu64 "): commit: failed\r\n", + eve_d, + eve_d + (len_d - 1ULL)); + } +#endif + } + else { + log_u->dun_d = eve_d + (len_d - 1ULL); + log_u->cb_u.write_done_f(log_u->cb_u.ptr_v, log_u->dun_d); + +#ifdef VERBOSE_DISK + if ( 1ULL == len_d ) { + fprintf(stderr, "disk: (%" PRIu64 "): commit: complete\r\n", eve_d); + } + else { + fprintf(stderr, "disk: (%" PRIu64 "-%" PRIu64 "): commit: complete\r\n", + eve_d, + eve_d + (len_d - 1ULL)); + } +#endif + } + + { + u3_fact* tac_u = log_u->put_u.ext_u; + + while ( tac_u && (tac_u->eve_d <= log_u->dun_d) ) { + log_u->put_u.ext_u = tac_u->nex_u; + u3_fact_free(tac_u); + tac_u = log_u->put_u.ext_u; + } + } + + if ( !log_u->put_u.ext_u ) { + log_u->put_u.ent_u = 0; + } + + _disk_free_save(req_u); + + _disk_commit(log_u); +} + +/* _disk_commit_after_cb(): on the main thread, finish write +*/ +static void +_disk_commit_after_cb(uv_work_t* ted_u, c3_i sas_i) +{ + struct _cd_save* req_u = ted_u->data; + + if ( UV_ECANCELED == sas_i ) { + _disk_free_save(req_u); + } + else { + ted_u->data = 0; + req_u->log_u->ted_o = c3n; + _disk_commit_done(req_u); + } +} + +/* _disk_commit_cb(): off the main thread, write event-batch. +*/ +static void +_disk_commit_cb(uv_work_t* ted_u) +{ + struct _cd_save* req_u = ted_u->data; + req_u->ret_o = u3_lmdb_save(req_u->log_u->mdb_u, + req_u->eve_d, + req_u->len_d, + (void**)req_u->byt_y, // XX safe? + req_u->siz_i); +} + +/* _disk_commit_start(): queue async event-batch write. +*/ +static void +_disk_commit_start(struct _cd_save* req_u) +{ + u3_disk* log_u = req_u->log_u; + + u3_assert( c3n == log_u->ted_o ); + log_u->ted_o = c3y; + log_u->ted_u.data = req_u; + + // queue asynchronous work to happen on another thread + // + uv_queue_work(u3L, &log_u->ted_u, _disk_commit_cb, + _disk_commit_after_cb); +} + +/* u3_disk_etch(): serialize an event for persistence. RETAIN [eve] +*/ +size_t +u3_disk_etch(u3_disk* log_u, + u3_noun eve, + c3_l mug_l, + c3_y** out_y) +{ + size_t len_i; + c3_y* dat_y; +#ifdef DISK_TRACE_JAM + u3t_event_trace("disk etch", 'B'); +#endif + + // XX check version number in log_u + // XX needs api redesign to limit allocations + // + { + u3_atom mat = u3qe_jam(eve); + c3_w len_w = u3r_met(3, mat); + + len_i = 4 + len_w; + dat_y = c3_malloc(len_i); + + dat_y[0] = mug_l & 0xff; + dat_y[1] = (mug_l >> 8) & 0xff; + dat_y[2] = (mug_l >> 16) & 0xff; + dat_y[3] = (mug_l >> 24) & 0xff; + u3r_bytes(0, len_w, dat_y + 4, mat); + + u3z(mat); + } + +#ifdef DISK_TRACE_JAM + u3t_event_trace("disk etch", 'E'); +#endif + + *out_y = dat_y; + return len_i; +} + +/* _disk_batch(): create a write batch +*/ +static struct _cd_save* +_disk_batch(u3_disk* log_u, c3_d len_d) +{ + u3_fact* tac_u = log_u->put_u.ext_u; + + u3_assert( (1ULL + log_u->dun_d) == tac_u->eve_d ); + u3_assert( log_u->sen_d == log_u->put_u.ent_u->eve_d ); + + struct _cd_save* req_u = c3_malloc(sizeof(*req_u)); + req_u->log_u = log_u; + req_u->ret_o = c3n; + req_u->eve_d = tac_u->eve_d; + req_u->len_d = len_d; + req_u->byt_y = c3_malloc(len_d * sizeof(c3_y*)); + req_u->siz_i = c3_malloc(len_d * sizeof(size_t)); + + for ( c3_d i_d = 0ULL; i_d < len_d; ++i_d) { + u3_assert( (req_u->eve_d + i_d) == tac_u->eve_d ); + + req_u->siz_i[i_d] = u3_disk_etch(log_u, tac_u->job, + tac_u->mug_l, &req_u->byt_y[i_d]); + + tac_u = tac_u->nex_u; + } + + return req_u; +} + +/* _disk_commit(): commit all available events, if idle. +*/ +static void +_disk_commit(u3_disk* log_u) +{ + if ( (c3n == log_u->ted_o) + && (log_u->sen_d > log_u->dun_d) ) + { + c3_d len_d = log_u->sen_d - log_u->dun_d; + struct _cd_save* req_u = _disk_batch(log_u, len_d); + +#ifdef VERBOSE_DISK + if ( 1ULL == len_d ) { + fprintf(stderr, "disk: (%" PRIu64 "): commit: request\r\n", + req_u->eve_d); + } + else { + fprintf(stderr, "disk: (%" PRIu64 "-%" PRIu64 "): commit: request\r\n", + req_u->eve_d, + (req_u->eve_d + len_d - 1ULL)); + } +#endif + + _disk_commit_start(req_u); + } +} + +/* u3_disk_plan(): enqueue completed event for persistence. +*/ +void +u3_disk_plan(u3_disk* log_u, u3_fact* tac_u) +{ + u3_assert( (1ULL + log_u->sen_d) == tac_u->eve_d ); + log_u->sen_d++; + + if ( !log_u->put_u.ent_u ) { + u3_assert( !log_u->put_u.ext_u ); + log_u->put_u.ent_u = log_u->put_u.ext_u = tac_u; + } + else { + log_u->put_u.ent_u->nex_u = tac_u; + log_u->put_u.ent_u = tac_u; + } + + _disk_commit(log_u); +} + +/* u3_disk_boot_plan(): enqueue boot sequence, without autocommit. +*/ +void +u3_disk_boot_plan(u3_disk* log_u, u3_noun job) +{ + // NB, boot mugs are 0 + // + u3_fact* tac_u = u3_fact_init(++log_u->sen_d, 0, job); + + if ( !log_u->put_u.ent_u ) { + u3_assert( !log_u->put_u.ext_u ); + u3_assert( 1ULL == log_u->sen_d ); + + log_u->put_u.ent_u = log_u->put_u.ext_u = tac_u; + } + else { + log_u->put_u.ent_u->nex_u = tac_u; + log_u->put_u.ent_u = tac_u; + } + +#ifdef VERBOSE_DISK + fprintf(stderr, "disk: (%" PRIu64 "): db boot plan\r\n", tac_u->eve_d); +#endif +} + +/* u3_disk_boot_save(): commit boot sequence. +*/ +void +u3_disk_boot_save(u3_disk* log_u) +{ + u3_assert( !log_u->dun_d ); + _disk_commit(log_u); +} + +static void +_disk_read_free(u3_read* red_u) +{ + // free facts (if the read failed) + // + { + u3_fact* tac_u = red_u->ext_u; + u3_fact* nex_u; + + while ( tac_u ) { + nex_u = tac_u->nex_u; + u3_fact_free(tac_u); + tac_u = nex_u; + } + } + + c3_free(red_u); +} + +/* _disk_read_close_cb(): +*/ +static void +_disk_read_close_cb(uv_handle_t* had_u) +{ + u3_read* red_u = had_u->data; + _disk_read_free(red_u); +} + +static void +_disk_read_close(u3_read* red_u) +{ + u3_disk* log_u = red_u->log_u; + + // unlink request + // + { + if ( red_u->pre_u ) { + red_u->pre_u->nex_u = red_u->nex_u; + } + else { + log_u->red_u = red_u->nex_u; + } + + if ( red_u->nex_u ) { + red_u->nex_u->pre_u = red_u->pre_u; + } + } + + uv_close(&red_u->had_u, _disk_read_close_cb); +} + +/* _disk_read_done_cb(): finalize read, invoke callback with response. +*/ +static void +_disk_read_done_cb(uv_timer_t* tim_u) +{ + u3_read* red_u = tim_u->data; + u3_disk* log_u = red_u->log_u; + u3_info pay_u = { .ent_u = red_u->ent_u, .ext_u = red_u->ext_u }; + + u3_assert( red_u->ent_u ); + u3_assert( red_u->ext_u ); + red_u->ent_u = 0; + red_u->ext_u = 0; + + log_u->cb_u.read_done_f(log_u->cb_u.ptr_v, pay_u); + _disk_read_close(red_u); +} + +/* u3_disk_sift(): parse a persisted event buffer. +*/ +c3_o +u3_disk_sift(u3_disk* log_u, + size_t len_i, + c3_y* dat_y, + c3_l* mug_l, + u3_noun* job) +{ + if ( 4 >= len_i ) { + return c3n; + } + +#ifdef DISK_TRACE_CUE + u3t_event_trace("disk sift", 'B'); +#endif + + // XX check version in log_u + // + *mug_l = dat_y[0] + ^ (dat_y[1] << 8) + ^ (dat_y[2] << 16) + ^ (dat_y[3] << 24); + + // XX u3m_soft? + // + *job = u3ke_cue(u3i_bytes(len_i - 4, dat_y + 4)); + +#ifdef DISK_TRACE_CUE + u3t_event_trace("disk sift", 'E'); +#endif + + return c3y; +} + +/* _disk_read_one_cb(): lmdb read callback, invoked for each event in order +*/ +static c3_o +_disk_read_one_cb(void* ptr_v, c3_d eve_d, size_t val_i, void* val_p) +{ + u3_read* red_u = ptr_v; + u3_disk* log_u = red_u->log_u; + u3_fact* tac_u; + + { + u3_noun job; + c3_l mug_l; + + if ( c3n == u3_disk_sift(log_u, val_i, (c3_y*)val_p, &mug_l, &job) ) { + return c3n; + } + + tac_u = u3_fact_init(eve_d, mug_l, job); + } + + if ( !red_u->ent_u ) { + u3_assert( !red_u->ext_u ); + + u3_assert( red_u->eve_d == eve_d ); + red_u->ent_u = red_u->ext_u = tac_u; + } + else { + u3_assert( (1ULL + red_u->ent_u->eve_d) == eve_d ); + red_u->ent_u->nex_u = tac_u; + red_u->ent_u = tac_u; + } + + return c3y; +} + +/* _disk_read_start_cb(): the read from the db, trigger response +*/ +static void +_disk_read_start_cb(uv_timer_t* tim_u) +{ + u3_read* red_u = tim_u->data; + u3_disk* log_u = red_u->log_u; + + // read events synchronously + // + if ( c3n == u3_lmdb_read(log_u->mdb_u, + red_u, + red_u->eve_d, + red_u->len_d, + _disk_read_one_cb) ) + { + log_u->cb_u.read_bail_f(log_u->cb_u.ptr_v, red_u->eve_d); + _disk_read_close(red_u); + } + // finish the read asynchronously + // + else { + uv_timer_start(&red_u->tim_u, _disk_read_done_cb, 0, 0); + } +} + +/* u3_disk_read(): read [len_d] events starting at [eve_d]. +*/ +void +u3_disk_read(u3_disk* log_u, c3_d eve_d, c3_d len_d) +{ + u3_read* red_u = c3_malloc(sizeof(*red_u)); + red_u->log_u = log_u; + red_u->eve_d = eve_d; + red_u->len_d = len_d; + red_u->ent_u = red_u->ext_u = 0; + red_u->pre_u = 0; + red_u->nex_u = log_u->red_u; + + if ( log_u->red_u ) { + log_u->red_u->pre_u = red_u; + } + log_u->red_u = red_u; + + // perform the read asynchronously + // + uv_timer_init(u3L, &red_u->tim_u); + + red_u->tim_u.data = red_u; + uv_timer_start(&red_u->tim_u, _disk_read_start_cb, 0, 0); +} + +struct _cd_list { + u3_disk* log_u; + u3_noun eve; + c3_l mug_l; +}; + +/* _disk_read_list_cb(): lmdb read callback, invoked for each event in order +*/ +static c3_o +_disk_read_list_cb(void* ptr_v, c3_d eve_d, size_t val_i, void* val_p) +{ + struct _cd_list* ven_u = ptr_v; + u3_disk* log_u = ven_u->log_u; + + { + u3_noun job; + c3_l mug_l; + + if ( c3n == u3_disk_sift(log_u, val_i, (c3_y*)val_p, &mug_l, &job) ) { + return c3n; + } + + ven_u->mug_l = mug_l; + ven_u->eve = u3nc(job, ven_u->eve); + } + + return c3y; +} + +/* u3_disk_read_list(): synchronously read a cons list of events. +*/ +u3_weak +u3_disk_read_list(u3_disk* log_u, c3_d eve_d, c3_d len_d, c3_l* mug_l) +{ + struct _cd_list ven_u = { log_u, u3_nul, 0 }; + + if ( c3n == u3_lmdb_read(log_u->mdb_u, &ven_u, + eve_d, len_d, _disk_read_list_cb) ) + { + u3z(ven_u.eve); + return u3_none; + } + + *mug_l = ven_u.mug_l; + return u3kb_flop(ven_u.eve); +} + +/* u3_disk_walk_init(): init iterator. +*/ +u3_disk_walk* +u3_disk_walk_init(u3_disk* log_u, + c3_d eve_d, + c3_d len_d) +{ + u3_disk_walk* wok_u = c3_malloc(sizeof(*wok_u)); + c3_d max_d = eve_d + len_d - 1; + + wok_u->log_u = log_u; + wok_u->liv_o = u3_lmdb_walk_init(log_u->mdb_u, + &wok_u->itr_u, + eve_d, + c3_min(max_d, log_u->dun_d)); + + if ( c3n == wok_u->liv_o ) { + c3_free(wok_u); + return 0; + } + + return wok_u; +} + +/* u3_disk_walk_live(): check if live. +*/ +c3_o +u3_disk_walk_live(u3_disk_walk* wok_u) +{ + if ( wok_u->itr_u.nex_d > wok_u->itr_u.las_d ) { + wok_u->liv_o = c3n; + } + + return wok_u->liv_o; +} + +/* u3_disk_walk_step(): get next fact. +*/ +c3_o +u3_disk_walk_step(u3_disk_walk* wok_u, u3_fact* tac_u) +{ + u3_disk* log_u = wok_u->log_u; + size_t len_i; + void* buf_v; + + tac_u->eve_d = wok_u->itr_u.nex_d; + + if ( c3n == u3_lmdb_walk_next(&wok_u->itr_u, &len_i, &buf_v) ) { + fprintf(stderr, "disk: (%" PRIu64 "): read fail\r\n", tac_u->eve_d); + return wok_u->liv_o = c3n; + } + + if ( c3n == u3_disk_sift(log_u, len_i, + (c3_y*)buf_v, + &tac_u->mug_l, + &tac_u->job) ) + { + fprintf(stderr, "disk: (%" PRIu64 "): sift fail\r\n", tac_u->eve_d); + return wok_u->liv_o = c3n; + } + + return c3y; +} + +/* u3_disk_walk_done(): close iterator. +*/ +void +u3_disk_walk_done(u3_disk_walk* wok_u) +{ + u3_lmdb_walk_done(&wok_u->itr_u); + c3_free(wok_u); +} + +/* _disk_save_meta(): serialize atom, save as metadata at [key_c]. +*/ +static c3_o +_disk_save_meta(MDB_env* mdb_u, const c3_c* key_c, c3_w len_w, c3_y* byt_y) +{ + // strip trailing zeroes. + // + while ( len_w && !byt_y[len_w - 1] ) { + len_w--; + } + + return u3_lmdb_save_meta(mdb_u, key_c, len_w, byt_y); +} + +/* u3_disk_save_meta(): save metadata. +*/ +c3_o +u3_disk_save_meta(MDB_env* mdb_u, + c3_w ver_w, + c3_d who_d[2], + c3_o fak_o, + c3_w lif_w) +{ + u3_assert( c3y == u3a_is_cat(ver_w) ); + u3_assert( c3y == u3a_is_cat(lif_w) ); + + // XX assumes little-endian + // + if ( (c3n == _disk_save_meta(mdb_u, "version", 4, (c3_y*)&ver_w)) + || (c3n == _disk_save_meta(mdb_u, "who", 16, (c3_y*)who_d)) + || (c3n == _disk_save_meta(mdb_u, "fake", 1, (c3_y*)&fak_o)) + || (c3n == _disk_save_meta(mdb_u, "life", 4, (c3_y*)&lif_w)) ) + { + return c3n; + } + + return c3y; +} + + +/* u3_disk_save_meta_meta(): save meta metadata. +*/ +c3_o +u3_disk_save_meta_meta(c3_c* log_c, + c3_d who_d[2], + c3_o fak_o, + c3_w lif_w) +{ + MDB_env* dbm_u; + + if ( 0 == (dbm_u = u3_lmdb_init(log_c, u3_Host.ops_u.siz_i)) ) { + fprintf(stderr, "disk: failed to initialize meta-lmdb\r\n"); + return c3n; + } + + if ( c3n == u3_disk_save_meta(dbm_u, U3D_VERLAT, who_d, fak_o, lif_w) ) { + fprintf(stderr, "disk: failed to save metadata\r\n"); + return c3n; + } + + u3_lmdb_exit(dbm_u); + + return c3y; +} + + +typedef struct { + ssize_t hav_i; + c3_y buf_y[16]; +} _mdb_val; + + +/* _disk_meta_read_cb(): copy [val_p] to atom [ptr_v] if present. +*/ +static void +_disk_meta_read_cb(void* ptr_v, ssize_t val_i, void* val_v) +{ + _mdb_val* val_u = ptr_v; + c3_y* dat_y = (c3_y*)val_v; + + memset(val_u->buf_y, 0, sizeof(val_u->buf_y)); + val_u->hav_i = val_i; + + if ( 0 < val_i ) { + memcpy(val_u->buf_y, dat_y, c3_min(val_i, sizeof(val_u->buf_y))); + } +} + +/* u3_disk_read_meta(): read metadata. +*/ +c3_o +u3_disk_read_meta(MDB_env* mdb_u, + c3_w* ver_w, + c3_d* who_d, + c3_o* fak_o, + c3_w* lif_w) +{ + _mdb_val val_u; + + // version + // + u3_lmdb_read_meta(mdb_u, &val_u, "version", _disk_meta_read_cb); + + if ( 1 != val_u.hav_i ) { + fprintf(stderr, "disk: read meta: strange version: %zd bytes\r\n", val_u.hav_i); + return c3n; + } + + if ( ver_w ) { + *ver_w = val_u.buf_y[0]; + } + + // identity + // + u3_lmdb_read_meta(mdb_u, &val_u, "who", _disk_meta_read_cb); + + if ( 0 > val_u.hav_i ) { + fprintf(stderr, "disk: read meta: no identity\r\n"); + return c3n; + } + else if ( 16 < val_u.hav_i ) { + // NB: non-fatal + // + fprintf(stderr, "disk: read meta: strange identity\r\n"); + } + + if ( who_d ) { + c3_y* byt_y = val_u.buf_y; + + who_d[0] = (c3_d)byt_y[0] + | (c3_d)byt_y[1] << 8 + | (c3_d)byt_y[2] << 16 + | (c3_d)byt_y[3] << 24 + | (c3_d)byt_y[4] << 32 + | (c3_d)byt_y[5] << 40 + | (c3_d)byt_y[6] << 48 + | (c3_d)byt_y[7] << 56; + + byt_y += 8; + who_d[1] = (c3_d)byt_y[0] + | (c3_d)byt_y[1] << 8 + | (c3_d)byt_y[2] << 16 + | (c3_d)byt_y[3] << 24 + | (c3_d)byt_y[4] << 32 + | (c3_d)byt_y[5] << 40 + | (c3_d)byt_y[6] << 48 + | (c3_d)byt_y[7] << 56; + } + + // fake bit + // + u3_lmdb_read_meta(mdb_u, &val_u, "fake", _disk_meta_read_cb); + + if ( 0 > val_u.hav_i ) { + fprintf(stderr, "disk: read meta: no fake bit\r\n"); + return c3n; + } + else if ( 0 == val_u.hav_i ) { + if ( fak_o ) { + *fak_o = 0; + } + } + else if ( (1 == val_u.hav_i) || !((*val_u.buf_y) >> 1) ) { + if ( fak_o ) { + *fak_o = (*val_u.buf_y) & 1; + } + } + else { + fprintf(stderr, "disk: read meta: invalid fake bit %u %zd\r\n", + *val_u.buf_y, val_u.hav_i); + return c3n; + } + + // life + // + u3_lmdb_read_meta(mdb_u, &val_u, "life", _disk_meta_read_cb); + + if ( 0 > val_u.hav_i ) { + fprintf(stderr, "disk: read meta: no lifecycle length\r\n"); + return c3n; + } + else if ( 4 < val_u.hav_i ) { + // NB: non-fatal + // + fprintf(stderr, "disk: read meta: strange life\r\n"); + } + + if ( lif_w ) { + c3_y* byt_y = val_u.buf_y; + *lif_w = (c3_w)byt_y[0] + | (c3_w)byt_y[1] << 8 + | (c3_w)byt_y[2] << 16 + | (c3_w)byt_y[3] << 24; + } + + return c3y; +} + +/* _disk_lock(): lockfile path. +*/ +static c3_c* +_disk_lock(c3_c* pax_c) +{ + c3_w len_w = strlen(pax_c) + sizeof("/.vere.lock"); + c3_c* paf_c = c3_malloc(len_w); + c3_i wit_i; + + wit_i = snprintf(paf_c, len_w, "%s/.vere.lock", pax_c); + u3_assert(wit_i + 1 == len_w); + return paf_c; +} + +/* _disk_acquire(): acquire a lockfile, killing anything that holds it. +*/ +static c3_i +_disk_acquire(c3_c* pax_c) +{ + c3_c* paf_c = _disk_lock(pax_c); + c3_y dat_y[13] = {0}; + c3_w pid_w = 0; + c3_i fid_i, ret_i; + + if ( -1 == (fid_i = c3_open(paf_c, O_RDWR|O_CREAT, 0666)) ) { + fprintf(stderr, "disk: failed to open/create lock file\r\n"); + goto fail; + } + + { + c3_y len_y = 0; + c3_y* buf_y = dat_y; + + do { + c3_zs ret_zs; + + if ( -1 == (ret_zs = read(fid_i, buf_y, 1)) ) { + if ( EINTR == errno ) continue; + + fprintf(stderr, "disk: failed to read lockfile: %s\r\n", + strerror(errno)); + goto fail; + } + + if ( !ret_zs ) break; + else if ( 1 != ret_zs ) { + fprintf(stderr, "disk: strange lockfile read %zd\r\n", ret_zs); + goto fail; + } + + len_y++; + buf_y++; + } + while ( len_y < (sizeof(dat_y) - 1) ); // null terminate + + + if ( len_y ) { + if ( (1 != sscanf((c3_c*)dat_y, "%" SCNu32 "%n", &pid_w, &ret_i)) + || (0 >= ret_i) + || ('\n' != *(dat_y + ret_i)) ) + { + fprintf(stderr, "disk: lockfile is corrupt\r\n"); + } + } + } + + { + struct flock lok_u; + memset((void *)&lok_u, 0, sizeof(lok_u)); + lok_u.l_type = F_WRLCK; + lok_u.l_whence = SEEK_SET; + lok_u.l_start = 0; + lok_u.l_len = 1; + + while ( (ret_i = fcntl(fid_i, F_SETLK, &lok_u)) + && (EINTR == (ret_i = errno)) ); + + if ( ret_i ) { + if ( pid_w ) { + fprintf(stderr, "pier: locked by PID %u\r\n", pid_w); + } + else { + fprintf(stderr, "pier: strange: locked by empty lockfile\r\n"); + } + + goto fail; + } + } + + ret_i = snprintf((c3_c*)dat_y, sizeof(dat_y), "%u\n", getpid()); + + if ( 0 >= ret_i ) { + fprintf(stderr, "disk: failed to write lockfile\r\n"); + goto fail; + } + + { + c3_y len_y = (c3_y)ret_i; + c3_y* buf_y = dat_y; + + do { + c3_zs ret_zs; + + if ( (-1 == (ret_zs = write(fid_i, buf_y, len_y))) + && (EINTR != errno) ) + { + fprintf(stderr, "disk: lockfile write failed %s\r\n", + strerror(errno)); + goto fail; + } + + if ( 0 < ret_zs ) { + len_y -= ret_zs; + buf_y += ret_zs; + } + } + while ( len_y ); + } + + if ( -1 == c3_sync(fid_i) ) { + fprintf(stderr, "disk: failed to sync lockfile: %s\r\n", + strerror(errno)); + goto fail; + } + + c3_free(paf_c); + return fid_i; + +fail: + kill(getpid(), SIGTERM); + sleep(1); u3_assert(0); +} + +/* _disk_release(): release a lockfile. +*/ +static void +_disk_release(c3_c* pax_c, c3_i fid_i) +{ + c3_c* paf_c = _disk_lock(pax_c); + c3_unlink(paf_c); + c3_free(paf_c); + close(fid_i); +} + +/* u3_disk_exit(): close the log. +*/ +void +u3_disk_exit(u3_disk* log_u) +{ + // cancel all outstanding reads + // + { + u3_read* red_u = log_u->red_u; + + while ( red_u ) { + _disk_read_close(red_u); + red_u = red_u->nex_u; + } + } + + // try to cancel write thread + // shortcircuit cleanup if we cannot + // + if ( (c3y == log_u->ted_o) + && (0 > uv_cancel(&log_u->req_u)) ) + { + // u3l_log("disk: unable to cleanup"); + return; + } + + // close database + // + u3_lmdb_exit(log_u->mdb_u); + + // dispose planned writes + // + + { + u3_fact* tac_u = log_u->put_u.ext_u; + u3_fact* nex_u; + + while ( tac_u ) { + nex_u = tac_u->nex_u; + u3_fact_free(tac_u); + tac_u = nex_u; + } + } + + _disk_release(log_u->dir_u->pax_c, log_u->lok_i); + + u3_dire_free(log_u->dir_u); + u3_dire_free(log_u->urb_u); + u3_dire_free(log_u->com_u); + + c3_free(log_u); + +#if defined(DISK_TRACE_JAM) || defined(DISK_TRACE_CUE) + u3t_trace_close(); +#endif +} + +/* u3_disk_info(): status info as a (list mass). +*/ +u3_noun +u3_disk_info(u3_disk* log_u) +{ + u3_read* red_u = log_u->red_u; + u3_noun red = u3_nul; + u3_noun lit = u3i_list( + u3_pier_mase("live", log_u->liv_o), + u3_pier_mase("event", u3i_chub(log_u->dun_d)), + u3_none); + + if ( log_u->put_u.ext_u ) { + lit = u3nc( + u3_pier_mass( + c3__save, + u3i_list( + u3_pier_mase("save-start", u3i_chub(log_u->put_u.ext_u->eve_d)), + u3_pier_mase("save-final", u3i_chub(log_u->put_u.ent_u->eve_d)), + u3_none)), + lit); + } + + while ( red_u ) { + red = u3nc( + u3_pier_mass( + u3dc("scot", c3__ux, u3i_chub((c3_d)red_u)), + u3i_list( + u3_pier_mase("start", u3i_chub(red_u->eve_d)), + u3_pier_mase("final", u3i_chub(red_u->eve_d + red_u->len_d - 1)), + u3_none)), + red); + red_u = red_u->nex_u; + } + lit = u3nc(u3_pier_mass(c3__read, red), lit); + return u3_pier_mass(c3__disk, lit); +} + +/* u3_disk_slog(): print status info. +*/ +void +u3_disk_slog(u3_disk* log_u) +{ + u3l_log(" disk: live=%s, event=%" PRIu64, + ( c3y == log_u->liv_o ) ? "&" : "|", + log_u->dun_d); + + { + u3_read* red_u = log_u->red_u; + + while ( red_u ) { + u3l_log(" read: %" PRIu64 "-%" PRIu64, + red_u->eve_d, + (red_u->eve_d + red_u->len_d) - 1); + red_u = red_u->nex_u; + } + } + + if ( log_u->put_u.ext_u ) { + if ( log_u->put_u.ext_u != log_u->put_u.ent_u ) { + u3l_log(" save: %" PRIu64 "-%" PRIu64, + log_u->put_u.ext_u->eve_d, + log_u->put_u.ent_u->eve_d); + } + else { + u3l_log(" save: %" PRIu64, log_u->put_u.ext_u->eve_d); + } + } +} + +/* _disk_epoc_meta: read metadata from epoch. +*/ +static c3_o +_disk_epoc_meta(u3_disk* log_u, + c3_d epo_d, + const c3_c* met_c, + c3_w max_w, + c3_c* buf_c) +{ + struct stat buf_u; + c3_w red_w, len_w; + c3_i ret_i, fid_i; + c3_c* pat_c; + + ret_i = asprintf(&pat_c, "%s/0i%" PRIc3_d "/%s.txt", + log_u->com_u->pax_c, epo_d, met_c); + u3_assert( ret_i > 0 ); + + fid_i = c3_open(pat_c, O_RDONLY, 0644); + c3_free(pat_c); + + if ( (fid_i < 0) || (fstat(fid_i, &buf_u) < 0) ) { + fprintf(stderr, "disk: failed to open %s.txt in epoch 0i%" PRIc3_d "\r\n", + met_c, epo_d); + return c3n; + } + else if ( buf_u.st_size >= max_w ) { + fprintf(stderr, "disk: %s.txt in epoch 0i%" PRIc3_d " too large " + "(%" PRIc3_z ")\r\n", + met_c, epo_d, (c3_z)buf_u.st_size); + return c3n; + } + + len_w = buf_u.st_size; + red_w = read(fid_i, buf_c, len_w); + close(fid_i); + + if ( len_w != red_w ) { + fprintf(stderr, "disk: failed to read %s.txt in epoch 0i%" PRIc3_d "\r\n", + met_c, epo_d); + return c3n; + } + + // trim trailing whitespace + // + do { + buf_c[len_w] = 0; + } + while ( len_w-- && isspace(buf_c[len_w]) ); + + return c3y; +} + +/* u3_disk_epoc_zero: create epoch zero. +*/ +c3_o +u3_disk_epoc_zero(u3_disk* log_u) +{ + // create new epoch directory if it doesn't exist + c3_c epo_c[8193]; + c3_i epo_i; + snprintf(epo_c, sizeof(epo_c), "%s/0i0", log_u->com_u->pax_c); + c3_d ret_d = c3_mkdir(epo_c, 0700); + if ( ( ret_d < 0 ) && ( errno != EEXIST ) ) { + fprintf(stderr, "disk: epoch 0i0 mkdir failed: %s\r\n", strerror(errno)); + return c3n; + } + + // open epoch directory + if ( -1 == (epo_i = c3_open(epo_c, O_RDONLY)) ) { + fprintf(stderr, "disk: open epoch dir 0i0 failed: %s\r\n", strerror(errno)); + goto fail1; + } + + // sync epoch directory + if ( -1 == c3_sync(epo_i) ) { // XX fdatasync on linux? + fprintf(stderr, "disk: sync epoch dir 0i0 failed: %s\r\n", strerror(errno)); + goto fail2; + } + + // create epoch version file, overwriting any existing file + c3_c epi_c[8193]; + c3_c epv_c[8193]; + snprintf(epi_c, sizeof(epv_c), "%s/epoc.tmp", epo_c); + snprintf(epv_c, sizeof(epv_c), "%s/epoc.txt", epo_c); + FILE* epv_f = fopen(epi_c, "w"); // XX errors + + if ( !epv_f + || (0 > fprintf(epv_f, "%d", U3E_VERLAT)) + || fflush(epv_f) + || (-1 == c3_sync(fileno(epv_f))) + || fclose(epv_f) + || (-1 == rename(epi_c, epv_c)) ) + { + fprintf(stderr, "disk: write epoc.txt failed %s\r\n", strerror(errno)); + goto fail3; + } + + // create binary version file, overwriting any existing file + c3_c bii_c[8193]; + c3_c biv_c[8193]; + snprintf(bii_c, sizeof(biv_c), "%s/vere.tmp", epo_c); + snprintf(biv_c, sizeof(epv_c), "%s/vere.txt", epo_c); + FILE* biv_f = fopen(bii_c, "w"); + if ( !biv_f + || (0 > fprintf(biv_f, URBIT_VERSION)) + || fflush(biv_f) + || (-1 == c3_sync(fileno(biv_f))) + || fclose(biv_f) + || (-1 == rename(bii_c, biv_c)) ) + { + fprintf(stderr, "disk: write vere.txt failed %s\r\n", strerror(errno)); + goto fail3; + } + + if ( -1 == c3_sync(epo_i) ) { // XX fdatasync on linux? + fprintf(stderr, "disk: sync epoch dir 0i0 failed: %s\r\n", strerror(errno)); + goto fail3; + } + close(epo_i); + + // load new epoch directory and set it in log_u + log_u->epo_d = 0; + log_u->ver_w = U3D_VERLAT; + + // success + return c3y; + +fail3: + c3_unlink(epv_c); + c3_unlink(biv_c); +fail2: + close(epo_i); +fail1: + c3_rmdir(epo_c); + return c3n; +} + +/* _disk_epoc_roll: epoch rollover. +*/ +static c3_o +_disk_epoc_roll(u3_disk* log_u, c3_d epo_d) +{ + u3_assert(epo_d); + + fprintf(stderr, "disk: rolling to epoch %" PRIc3_d "\r\n", epo_d); + // check if any epoch directories exist + c3_d lat_d; + if ( c3n == u3_disk_epoc_last(log_u, &lat_d) ) { + fprintf(stderr, "disk: failed to get last epoch\r\n"); + return c3n; + } + + // create new epoch directory if it doesn't exist + c3_c epo_c[8193]; + c3_i epo_i; + snprintf(epo_c, sizeof(epo_c), "%s/0i%" PRIc3_d, log_u->com_u->pax_c, epo_d); + c3_d ret_d = c3_mkdir(epo_c, 0700); + if ( ( ret_d < 0 ) && ( errno != EEXIST ) ) { + fprintf(stderr, "disk: create epoch dir %" PRIc3_d " failed: %s\r\n", + epo_d, strerror(errno)); + return c3n; + } + + // copy snapshot files (skip if first epoch) + c3_c chk_c[8193]; + snprintf(chk_c, 8192, "%s/.urb/chk", u3_Host.dir_c); + if ( c3n == u3e_backup(chk_c, epo_c, c3y) ) { + fprintf(stderr, "disk: copy epoch snapshot failed\r\n"); + goto fail1; + } + + if ( -1 == (epo_i = c3_open(epo_c, O_RDONLY)) ) { + fprintf(stderr, "disk: open epoch dir %" PRIc3_d " failed: %s\r\n", + epo_d, strerror(errno)); + goto fail1; + } + + if ( -1 == c3_sync(epo_i) ) { // XX fdatasync on linux? + fprintf(stderr, "disk: sync epoch dir %" PRIc3_d " failed: %s\r\n", + epo_d, strerror(errno)); + goto fail2; + } + + // create epoch version file, overwriting any existing file + c3_c epi_c[8193]; + c3_c epv_c[8193]; + snprintf(epi_c, sizeof(epv_c), "%s/epoc.tmp", epo_c); + snprintf(epv_c, sizeof(epv_c), "%s/epoc.txt", epo_c); + FILE* epv_f = fopen(epi_c, "w"); + + if ( !epv_f + || (0 > fprintf(epv_f, "%d", U3E_VERLAT)) + || fflush(epv_f) + || (-1 == c3_sync(fileno(epv_f))) + || fclose(epv_f) + || (-1 == rename(epi_c, epv_c)) ) + { + fprintf(stderr, "disk: write epoc.txt failed %s\r\n", strerror(errno)); + goto fail3; + } + + // create binary version file, overwriting any existing file + c3_c bii_c[8193]; + c3_c biv_c[8193]; + snprintf(bii_c, sizeof(biv_c), "%s/vere.tmp", epo_c); + snprintf(biv_c, sizeof(epv_c), "%s/vere.txt", epo_c); + FILE* biv_f = fopen(bii_c, "w"); + if ( !biv_f + || (0 > fprintf(biv_f, URBIT_VERSION)) + || fflush(biv_f) + || (-1 == c3_sync(fileno(biv_f))) + || fclose(biv_f) + || (-1 == rename(bii_c, biv_c)) ) + { + fprintf(stderr, "disk: write vere.txt failed %s\r\n", strerror(errno)); + goto fail3; + } + + if ( -1 == c3_sync(epo_i) ) { // XX fdatasync on linux? + fprintf(stderr, "disk: sync epoch dir 0i0 failed: %s\r\n", strerror(errno)); + goto fail3; + } + + // get metadata from old log + c3_d who_d[2]; + c3_o fak_o; + c3_w lif_w; + if ( c3y != u3_disk_read_meta(log_u->mdb_u, 0, who_d, &fak_o, &lif_w) ) { + fprintf(stderr, "disk: failed to read metadata\r\n"); + goto fail3; + } + + u3_lmdb_exit(log_u->mdb_u); + log_u->mdb_u = 0; + + // initialize db of new epoch + if ( 0 == (log_u->mdb_u = u3_lmdb_init(epo_c, u3_Host.ops_u.siz_i)) ) { + fprintf(stderr, "disk: failed to initialize database\r\n"); + c3_free(log_u); + goto fail3; + } + + // write the metadata to the database + if ( c3n == u3_disk_save_meta(log_u->mdb_u, U3D_VERLAT, who_d, fak_o, lif_w) ) { + fprintf(stderr, "disk: failed to save metadata\r\n"); + goto fail3; + } + + if ( -1 == c3_sync(epo_i) ) { // XX fdatasync on linux? + fprintf(stderr, "disk: sync epoch dir %" PRIc3_d " failed: %s\r\n", + epo_d, strerror(errno)); + goto fail3; + } + + close(epo_i); + + fprintf(stderr, "disk: created epoch %" PRIc3_d "\r\n", epo_d); + + // load new epoch directory and set it in log_u + log_u->epo_d = epo_d; + log_u->ver_w = U3D_VERLAT; + + // success + return c3y; + +fail3: + c3_unlink(epv_c); + c3_unlink(biv_c); +fail2: + close(epo_i); +fail1: + c3_rmdir(epo_c); + return c3n; +} + +/* _disk_epoc_kill: delete an epoch. +*/ +static c3_o +_disk_epoc_kill(u3_disk* log_u, c3_d epo_d) +{ + // get epoch directory + c3_c epo_c[8193]; + snprintf(epo_c, sizeof(epo_c), "%s/0i%" PRIc3_d, log_u->com_u->pax_c, epo_d); + + // delete files in epoch directory + u3_dire* dir_u = u3_foil_folder(epo_c); + u3_dent* den_u = dir_u->all_u; + while ( den_u ) { + c3_c fil_c[8193]; + snprintf(fil_c, sizeof(fil_c), "%s/%s", epo_c, den_u->nam_c); + if ( 0 != c3_unlink(fil_c) ) { + fprintf(stderr, "disk: failed to delete file in epoch directory\r\n"); + return c3n; + } + den_u = den_u->nex_u; + } + + // delete epoch directory + if ( 0 != c3_rmdir(epo_c) ) { + fprintf(stderr, "disk: failed to delete epoch directory\r\n"); + return c3n; + } + + // cleanup + u3_dire_free(dir_u); + + // success + return c3y; +} + +/* u3_disk_epoc_last: get latest epoch number. +*/ +c3_o +u3_disk_epoc_last(u3_disk* log_u, c3_d* lat_d) +{ + u3_dire* die_u = u3_foil_folder(log_u->com_u->pax_c); + u3_dent* den_u = die_u->dil_u; + c3_o ret_o = c3n; + c3_d epo_d = 0; + c3_d val_d; + c3_i car_i; + + while ( den_u ) { + if ( (1 == sscanf(den_u->nam_c, "0i%" SCNu64 "%n", &val_d, &car_i)) + && (0 < car_i) + && ('\0' == *(den_u->nam_c + car_i)) ) + { + ret_o = c3y; // NB: returns yes if the directory merely exists + epo_d = c3_max(epo_d, val_d); + } + + den_u = den_u->nex_u; + } + + u3_dire_free(die_u); + + *lat_d = epo_d; + + return ret_o; +} + +/* u3_disk_epoc_list: get descending epoch numbers, "mcut" pattern. +*/ +c3_z +u3_disk_epoc_list(u3_disk* log_u, c3_d* sot_d) +{ + u3_dire* ned_u = u3_foil_folder(log_u->com_u->pax_c); + u3_dent* den_u = ned_u->dil_u; + c3_z len_z = 0; + c3_i car_i; + c3_d val_d; + + while ( den_u ) { // count epochs + if ( (1 == sscanf(den_u->nam_c, "0i%" SCNu64 "%n", &val_d, &car_i)) + && (0 < car_i) + && ('\0' == *(den_u->nam_c + car_i)) ) + { + len_z++; + } + + den_u = den_u->nex_u; + } + + if ( !sot_d ) { + u3_dire_free(ned_u); + return len_z; + } + + len_z = 0; + den_u = ned_u->dil_u; + + while ( den_u ) { + if ( (1 == sscanf(den_u->nam_c, "0i%" SCNu64 "%n", &val_d, &car_i)) + && (0 < car_i) + && ('\0' == *(den_u->nam_c + car_i)) ) + { + sot_d[len_z++] = val_d; + } + + den_u = den_u->nex_u; + } + + // sort sot_d naively in descending order + // + c3_d tmp_d; + for ( c3_z i_z = 0; i_z < len_z; i_z++ ) { + for ( c3_z j_z = i_z + 1; j_z < len_z; j_z++ ) { + if ( sot_d[i_z] < sot_d[j_z] ) { + tmp_d = sot_d[i_z]; + sot_d[i_z] = sot_d[j_z]; + sot_d[j_z] = tmp_d; + } + } + } + + u3_dire_free(ned_u); + return len_z; +} + +/* _disk_migrate: migrates disk format. + */ +static c3_o +_disk_migrate(u3_disk* log_u, c3_d eve_d) +{ + /* migration steps: + * 1. initialize epoch 0i0 (see u3_disk_epoc_zero) + * 2. create hard links to data.mdb and lock.mdb in 0i0/ + * 3. use scratch space to initialize new log/data.db in log/tmp + * 4. save old metadata to new db in scratch space + * 5. clobber old log/data.mdb with new log/tmp/data.mdb + * 6. open epoch lmdb and set it in log_u + */ + + // NB: requires that log_u->mdb_u is initialized to log/data.mdb + // XX: put old log in separate pointer (old_u?)? + + // get metadata from old log + c3_d who_d[2]; + c3_o fak_o; + c3_w lif_w; + + if ( c3y != u3_disk_read_meta(log_u->mdb_u, 0, who_d, &fak_o, &lif_w) ) { + fprintf(stderr, "disk: failed to read metadata\r\n"); + return c3n; + } + + // finish with old log + u3_lmdb_exit(log_u->mdb_u); + log_u->mdb_u = 0; + + // check if lock.mdb is readable in log directory + c3_o luk_o = c3n; + c3_c luk_c[8193]; + snprintf(luk_c, sizeof(luk_c), "%s/lock.mdb", log_u->com_u->pax_c); + if ( 0 == access(luk_c, R_OK) ) { + luk_o = c3y; + } + + fprintf(stderr, "disk: migrating disk to v%d format\r\n", U3D_VERLAT); + + // initialize first epoch "0i0" + if ( c3n == u3_disk_epoc_zero(log_u) ) { + fprintf(stderr, "disk: failed to initialize first epoch\r\n"); + return c3n; + } + + // create hard links to data.mdb and lock.mdb in 0i0/ + c3_c epo_c[8193], dut_c[8193], dat_c[8193], lok_c[8193]; + snprintf(epo_c, sizeof(epo_c), "%s/0i0", log_u->com_u->pax_c); + snprintf(dut_c, sizeof(dut_c), "%s/data.mdb", log_u->com_u->pax_c); + snprintf(dat_c, sizeof(dat_c), "%s/data.mdb", epo_c); + snprintf(lok_c, sizeof(lok_c), "%s/lock.mdb", epo_c); + + if ( c3_link(dut_c, dat_c) && (EEXIST != errno) ) { + fprintf(stderr, "disk: failed to create data.mdb hard link\r\n"); + return c3n; + } + if ( c3y == luk_o ) { // only link lock.mdb if it exists + if ( c3_link(luk_c, lok_c) && (EEXIST != errno) ) { + fprintf(stderr, "disk: failed to create lock.mdb hard link\r\n"); + return c3n; + } + } + + // delete backup snapshot + c3_c bhk_c[8193], nop_c[8193], sop_c[8193]; + snprintf(bhk_c, sizeof(bhk_c), "%s/.urb/bhk", u3_Host.dir_c); + snprintf(nop_c, sizeof(nop_c), "%s/north.bin", bhk_c); + snprintf(sop_c, sizeof(sop_c), "%s/south.bin", bhk_c); + if ( c3_unlink(nop_c) ) { + fprintf(stderr, "disk: failed to delete bhk/north.bin: %s\r\n", + strerror(errno)); + } + else if ( c3_unlink(sop_c) ) { + fprintf(stderr, "disk: failed to delete bhk/south.bin: %s\r\n", + strerror(errno)); + } + else { + if ( c3_rmdir(bhk_c) ) { + fprintf(stderr, "disk: failed to delete bhk/: %s\r\n", + strerror(errno)); + } + } + + // use scratch space to initialize new log/data.db + // and clobber old log/data.db + // + c3_c tmp_c[8193]; + snprintf(tmp_c, sizeof(tmp_c), "%s/tmp", log_u->com_u->pax_c); + if ( c3_mkdir(tmp_c, 0700) && (errno != EEXIST) ) { + fprintf(stderr, "disk: failed to create log/tmp: %s\r\n", + strerror(errno)); + return c3n; + } + + if ( 0 == (log_u->mdb_u = u3_lmdb_init(tmp_c, u3_Host.ops_u.siz_i)) ) { + fprintf(stderr, "disk: failed to initialize database at %s\r\n", + tmp_c); + return c3n; + } + + if ( c3n == u3_disk_save_meta(log_u->mdb_u, U3D_VERLAT, who_d, fak_o, lif_w) ) { + fprintf(stderr, "disk: failed to save metadata\r\n"); + return c3n; + } + + // atomic truncation of old log + // + u3_lmdb_exit(log_u->mdb_u); + log_u->mdb_u = 0; + + c3_c trd_c[8193]; + snprintf(trd_c, sizeof(trd_c), "%s/data.mdb", tmp_c); + if ( c3_rename(trd_c, dut_c) ) { + fprintf(stderr, "disk: failed mv %s to %s: %s\r\n", trd_c, dut_c, + strerror(errno)); + return c3n; + } + + snprintf(trd_c, sizeof(trd_c), "%s/lock.mdb", tmp_c); + if ( c3_unlink(trd_c) && (errno != ENOENT) ) { + fprintf(stderr, "disk: failed to delete log/tmp: %s\r\n", + strerror(errno)); + } + if ( c3_rmdir(tmp_c) ) { + fprintf(stderr, "disk: failed to delete log/tmp: %s\r\n", + strerror(errno)); + } + + if ( 0 == (log_u->mdb_u = u3_lmdb_init(epo_c, u3_Host.ops_u.siz_i)) ) { + fprintf(stderr, "disk: failed to initialize database at %s\r\n", + epo_c); + return c3n; + } + + // success + fprintf(stderr, "disk: migrated disk to v%d format\r\n", U3D_VERLAT); + + return c3y; +} + +/* _disk_vere_diff(): checks if vere version mismatches latest epoch's. +*/ +static c3_o +_disk_vere_diff(u3_disk* log_u) +{ + c3_c ver_c[128]; + + if ( c3n == _disk_epoc_meta(log_u, log_u->epo_d, "vere", + sizeof(ver_c) - 1, ver_c) ) + { + return c3y; // assume mismatch if we can't read version + } + + if ( 0 != strcmp(ver_c, URBIT_VERSION) ) { + return c3y; + } + + return c3n; +} + +/* u3_disk_kindly(): do the needful. +*/ +void +u3_disk_kindly(u3_disk* log_u, c3_d eve_d) +{ + // ensure there's a current snapshot + // + if ( eve_d != log_u->dun_d ) { + fprintf(stderr, "disk: snapshot (event %" PRIc3_d ") is out of date\r\n" + " (latest event is %" PRIc3_d "\r\n", + eve_d, log_u->dun_d); + // XX need better instructions + // + fprintf(stderr, "start/shutdown your pier gracefully first\r\n"); + exit(1); + } + + switch ( log_u->ver_w ) { + case U3D_VER1: { + // set version to 2 (migration in progress) + c3_w ver_w = U3D_VER2; + if ( c3n == _disk_save_meta(log_u->mdb_u, "version", 4, (c3_y*)&ver_w) ) { + fprintf(stderr, "disk: failed to set version to 2\r\n"); + exit(1); + } + } // fallthru + + case U3D_VER2: { + if ( c3n == _disk_migrate(log_u, eve_d) ) { + fprintf(stderr, "disk: failed to migrate event log\r\n"); + exit(1); + } + + if ( c3n == _disk_epoc_roll(log_u, eve_d) ) { + fprintf(stderr, "disk: failed to initialize epoch\r\n"); + exit(1); + } + } break; + + case U3D_VER3: { + if ( (0 == log_u->epo_d) || + (c3y == _disk_vere_diff(log_u)) ) + { + if ( c3n == _disk_epoc_roll(log_u, eve_d) ) { + fprintf(stderr, "disk: failed to initialize epoch\r\n"); + exit(1); + } + } + } break; + + default: { + fprintf(stderr, "disk: unknown disk version: %d\r\n", log_u->ver_w); + exit(1); + } + } +} + +/* u3_disk_chop(): delete all but the latest 2 epocs. +*/ +void +u3_disk_chop(u3_disk* log_u, c3_d eve_d) +{ + c3_z len_z = u3_disk_epoc_list(log_u, 0); + c3_d* sot_d = c3_malloc(len_z * sizeof(c3_d)); + u3_disk_epoc_list(log_u, sot_d); + + if ( len_z <= 2 ) { + fprintf(stderr, "chop: nothing to do, try running roll first\r\n" + "chop: for more info see " + "https://docs.urbit.org/user-manual/running/vere#chop\r\n"); + exit(0); // enjoy + } + + // delete all but the last two epochs + // + // XX parameterize the number of epochs to chop + // + for ( c3_z i_z = 2; i_z < len_z; i_z++ ) { + fprintf(stderr, "chop: deleting epoch 0i%" PRIu64 "\r\n", + sot_d[i_z]); + if ( c3y != _disk_epoc_kill(log_u, sot_d[i_z]) ) { + fprintf(stderr, "chop: failed to delete epoch 0i%" PRIu64 "\r\n", sot_d[i_z]); + exit(1); + } + } + + // cleanup + c3_free(sot_d); + + // success + fprintf(stderr, "chop: event log truncation complete\r\n"); +} + +/* u3_disk_roll(): rollover to a new epoc. +*/ +void +u3_disk_roll(u3_disk* log_u, c3_d eve_d) +{ + // XX get fir_d from log_u + c3_d fir_d, las_d; + + if ( c3n == u3_lmdb_gulf(log_u->mdb_u, &fir_d, &las_d) ) { + fprintf(stderr, "roll: failed to read first/last event numbers\r\n"); + exit(1); + } + + if ( fir_d == las_d ) { + fprintf(stderr, "roll: latest epoch is empty\r\n"); + exit(0); + } + + if ( (eve_d != las_d) || (eve_d != log_u->dun_d) ) { + fprintf(stderr, "roll: shenanigans!\r\n"); + exit(1); + } + + else if ( c3n == _disk_epoc_roll(log_u, eve_d) ) { + fprintf(stderr, "roll: failed to create new epoch\r\n"); + exit(1); + } +} + +typedef enum { + _epoc_good = 0, // load successfully + _epoc_gone = 1, // version missing, total failure + _epoc_fail = 2, // transient failure (?) + _epoc_void = 3, // empty event log (cheaper to recover?) + _epoc_late = 4 // format from the future +} _epoc_kind; + +/* _disk_epoc_load(): load existing epoch, enumerating failures +*/ +static _epoc_kind +_disk_epoc_load(u3_disk* log_u, c3_d lat_d) +{ + // check latest epoc version + // + { + c3_c ver_c[8]; + c3_w ver_w; + c3_i car_i; + + if ( c3n == _disk_epoc_meta(log_u, lat_d, "epoc", + sizeof(ver_c) - 1, ver_c) ) + { + fprintf(stderr, "disk: failed to load epoch 0i%" PRIc3_d " version\r\n", + lat_d); + + return _epoc_gone; + } + + if ( !( (1 == sscanf(ver_c, "%" SCNu32 "%n", &ver_w, &car_i)) + && (0 < car_i) + && ('\0' == *(ver_c + car_i)) ) ) + { + fprintf(stderr, "disk: failed to parse epoch version: '%s'\r\n", ver_c); + return _epoc_fail; + } + + if ( U3E_VERLAT != ver_w ) { + fprintf(stderr, "disk: unknown epoch version: '%s', expected '%d'\r\n", + ver_c, U3E_VERLAT); + return _epoc_late; + } + } + + // set path to latest epoch + c3_c epo_c[8193]; + snprintf(epo_c, 8192, "%s/0i%" PRIc3_d, log_u->com_u->pax_c, lat_d); + + // initialize latest epoch's db + if ( 0 == (log_u->mdb_u = u3_lmdb_init(epo_c, u3_Host.ops_u.siz_i)) ) { + fprintf(stderr, "disk: failed to initialize database at %s\r\n", + epo_c); + return _epoc_fail; + } + + fprintf(stderr, "disk: loaded epoch 0i%" PRIc3_d "\r\n", lat_d); + + // get first/last event numbers from lmdb + c3_d fir_d, las_d; + if ( c3n == u3_lmdb_gulf(log_u->mdb_u, &fir_d, &las_d) ) { + fprintf(stderr, "disk: failed to get first/last event numbers\r\n"); + u3_lmdb_exit(log_u->mdb_u); + log_u->mdb_u = 0; + return _epoc_fail; + } + + if ( (c3n == u3_Host.ops_u.nuu ) + && !fir_d + && !las_d + && (c3n == u3_disk_read_meta(log_u->mdb_u, 0, 0, 0, 0)) ) + { + u3_lmdb_exit(log_u->mdb_u); + log_u->mdb_u = 0; + return _epoc_void; + } + + // initialize dun_d/sen_d values + // + // XX save [fir_d] in struct, check on play + // + log_u->dun_d = ( 0 != las_d ) ? las_d : lat_d; + log_u->sen_d = log_u->dun_d; + + return _epoc_good; +} + +/* u3_disk_init(): load or create pier directories and event log. +*/ +u3_disk* +u3_disk_init(c3_c* pax_c, u3_disk_cb cb_u) +{ + u3_disk* log_u = c3_calloc(sizeof(*log_u)); + log_u->lok_i = -1; + log_u->liv_o = c3n; + log_u->ted_o = c3n; + log_u->cb_u = cb_u; + log_u->red_u = 0; + log_u->put_u.ent_u = log_u->put_u.ext_u = 0; + + // create/load pier directory + // + { + if ( 0 == (log_u->dir_u = u3_foil_folder(pax_c)) ) { + fprintf(stderr, "disk: failed to load pier at %s\r\n", pax_c); + c3_free(log_u); + return 0; + } + } + + // acquire lockfile. + // + log_u->lok_i = _disk_acquire(pax_c); + + // create/load $pier/.urb + // + { + c3_c* urb_c = c3_malloc(6 + strlen(pax_c)); + + strcpy(urb_c, pax_c); + strcat(urb_c, "/.urb"); + + if ( 0 == (log_u->urb_u = u3_foil_folder(urb_c)) ) { + fprintf(stderr, "disk: failed to load /.urb in %s\r\n", pax_c); + c3_free(urb_c); + c3_free(log_u); + return 0; + } + c3_free(urb_c); + } + + // create/load $pier/.urb/put and $pier/.urb/get + // + { + c3_c* dir_c = c3_malloc(10 + strlen(pax_c)); + + strcpy(dir_c, pax_c); + strcat(dir_c, "/.urb/put"); + c3_mkdir(dir_c, 0700); + + strcpy(dir_c, pax_c); + strcat(dir_c, "/.urb/get"); + c3_mkdir(dir_c, 0700); + + c3_free(dir_c); + } + + // create/load $pier/.urb/log + // + { + c3_c log_c[8193]; + snprintf(log_c, sizeof(log_c), "%s/.urb/log", pax_c); + + if ( 0 == (log_u->com_u = u3_foil_folder(log_c)) ) { + fprintf(stderr, "disk: failed to load /.urb/log in %s\r\n", pax_c); + c3_free(log_u); + return 0; + } + + // check if old data.mdb file exists + c3_c dut_c[8193]; + c3_o exs_o = c3n; + snprintf(dut_c, sizeof(dut_c), "%s/data.mdb", log_c); + if ( 0 == access(dut_c, F_OK) ) { + exs_o = c3y; + } + + // if fresh boot, initialize disk U3D_VERLAT + // + if ( c3y == u3_Host.ops_u.nuu ) { + // ensure old data.mdb file does not exist + if ( c3y == exs_o ) { + fprintf(stderr, "disk: old data.mdb file exists\r\n"); + c3_free(log_u); + return 0; + } + + // initialize first epoch "0i0" + if ( c3n == u3_disk_epoc_zero(log_u) ) { + fprintf(stderr, "disk: failed to initialize first epoch\r\n"); + c3_free(log_u); + return 0; + } + + if ( _epoc_good != _disk_epoc_load(log_u, 0) ) { + fprintf(stderr, "disk: failed to initialize lmdb\r\n"); + c3_free(log_u); + return 0; + } + + return log_u; + } + + if ( c3y == exs_o ) { + // load the old data.mdb file + if ( 0 == (log_u->mdb_u = u3_lmdb_init(log_c, u3_Host.ops_u.siz_i)) ) { + fprintf(stderr, "disk: failed to initialize lmdb\r\n"); + c3_free(log_u); + return 0; + } + + // read version from old log + if ( c3n == u3_disk_read_meta(log_u->mdb_u, &log_u->ver_w, 0, 0, 0) ) { + fprintf(stderr, "disk: failed to read metadata\r\n"); + goto try_epoc_no; + } + } + else { +try_epoc_no: + { + c3_d lat_d; + if ( c3n == u3_disk_epoc_last(log_u, &lat_d) ) { + fprintf(stderr, "disk: no event log anywhere\r\n"); + c3_free(log_u); + return 0; + } + // presume pre-release migrated pier + log_u->ver_w = U3D_VERLAT; + exs_o = c3n; + } + } + + switch ( log_u->ver_w ) { + case U3D_VER1: + case U3D_VER2: { // XX maybe finish migration eagerly + fprintf(stderr, "disk: loaded old log\r\n"); + c3_d fir_d; + if ( c3n == u3_lmdb_gulf(log_u->mdb_u, &fir_d, &log_u->dun_d) ) { + fprintf(stderr, "disk: failed to load latest event from lmdb\r\n"); + c3_free(log_u); + return 0; + } + + log_u->sen_d = log_u->dun_d; + + return log_u; + } + + case U3D_VER3: break; + + default: { + fprintf(stderr, "disk: unknown log version: %d\r\n", log_u->ver_w); + c3_free(log_u); + return 0; + } + } + + // close lmdb + if ( c3y == exs_o ) { + u3_lmdb_exit(log_u->mdb_u); + log_u->mdb_u = 0; + } + + // get latest epoch number + c3_d lat_d; + if ( c3n == u3_disk_epoc_last(log_u, &lat_d) ) { + fprintf(stderr, "disk: failed to load epoch number\r\n"); + c3_free(log_u); + return 0; + } + + c3_o try_o = c3n; + +try_init: + { + _epoc_kind kin_e = _disk_epoc_load(log_u, lat_d); + + switch ( kin_e ) { + case _epoc_good: { + // mark the latest epoch directory + log_u->epo_d = lat_d; + + // mark the log as live + log_u->liv_o = c3y; + +#if defined(DISK_TRACE_JAM) || defined(DISK_TRACE_CUE) + u3t_trace_open(pax_c); +#endif + + if ( c3n == exs_o ) { + fprintf(stderr, "disk: repairing pre-release pier metadata\r\n"); + + // read metadata from epoch's log + c3_d who_d[2]; + c3_o fak_o; + c3_w lif_w; + if ( c3n == u3_disk_read_meta(log_u->mdb_u, 0, who_d, &fak_o, &lif_w) ) + { + fprintf(stderr, "disk: failed to read metadata\r\n"); + c3_free(log_u); + return 0; + } + + if ( c3n == u3_disk_save_meta_meta(log_c, who_d, fak_o, lif_w) ) { + fprintf(stderr, "disk: failed to save top-level metadata\r\n"); + c3_free(log_u); + return 0; + } + } + + return log_u; + } break; + + case _epoc_void: // XX could handle more efficiently + + case _epoc_gone: { + // XX if there is no version number, the epoc is invalid + // backup and try previous + + if ( c3y == try_o ) { + fprintf(stderr, "multiple bad epochs, bailing out\r\n"); + c3_free(log_u); + return 0; + } + + c3_z dir_z = u3_disk_epoc_list(log_u, 0); + c3_d* sot_d = c3_malloc(dir_z * sizeof(*sot_d)); + c3_z len_z = u3_disk_epoc_list(log_u, sot_d); + + if ( len_z <= 1 ) { + fprintf(stderr, "only epoch is bad, bailing out\r\n"); + c3_free(log_u); + return 0; + } + + fprintf(stderr, "disk: latest epoch is 0i%" PRIc3_d " is bogus; " + "falling back to previous at 0i%" PRIc3_d "\r\n", + lat_d, sot_d[1]); + + _disk_epoc_kill(log_u, lat_d); + + lat_d = sot_d[1]; + try_o = c3y; + c3_free(sot_d); + goto try_init; + } break; + + case _epoc_fail: { + fprintf(stderr, "failed to load epoch\r\n"); + c3_free(log_u); + return 0; + } break; + + case _epoc_late: { + fprintf(stderr, "upgrade runtime version\r\n"); + c3_free(log_u); + return 0; + } + } + } + } +} diff --git a/vere/pkg/vere/dns_sd.h b/vere/pkg/vere/dns_sd.h new file mode 100644 index 0000000..66e494e --- /dev/null +++ b/vere/pkg/vere/dns_sd.h @@ -0,0 +1,1722 @@ +/* -*- Mode: C; tab-width: 4 -*- + * + * Copyright (c) 2003-2004, Apple Computer, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _DNS_SD_H +#define _DNS_SD_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* standard calling convention under Win32 is __stdcall */ +/* Note: When compiling Intel EFI (Extensible Firmware Interface) under MS Visual Studio, the */ +/* _WIN32 symbol is defined by the compiler even though it's NOT compiling code for Windows32 */ +#if defined(_WIN32) && !defined(EFI32) && !defined(EFI64) +#define DNSSD_API __stdcall +#else +#define DNSSD_API +#endif + +/* stdint.h does not exist on FreeBSD 4.x; its types are defined in sys/types.h instead */ +#if defined(__FreeBSD__) && (__FreeBSD__ < 5) +#include + +/* Likewise, on Sun, standard integer types are in sys/types.h */ +#elif defined(__sun__) +#include + +/* EFI does not have stdint.h, or anything else equivalent */ +#elif defined(EFI32) || defined(EFI64) +typedef UINT8 uint8_t; +typedef INT8 int8_t; +typedef UINT16 uint16_t; +typedef INT16 int16_t; +typedef UINT32 uint32_t; +typedef INT32 int32_t; + +/* Windows has its own differences */ +#elif defined(_WIN32) +#include +#define _UNUSED +#define bzero(a, b) memset(a, 0, b) +#ifndef _MSL_STDINT_H +typedef UINT8 uint8_t; +typedef INT8 int8_t; +typedef UINT16 uint16_t; +typedef INT16 int16_t; +typedef UINT32 uint32_t; +typedef INT32 int32_t; +#endif + +/* All other Posix platforms use stdint.h */ +#else +#include +#endif + +/* DNSServiceRef, DNSRecordRef + * + * Opaque internal data types. + * Note: client is responsible for serializing access to these structures if + * they are shared between concurrent threads. + */ + +typedef struct _DNSServiceRef_t *DNSServiceRef; +typedef struct _DNSRecordRef_t *DNSRecordRef; + +/* General flags used in functions defined below */ +enum + { + kDNSServiceFlagsMoreComing = 0x1, + /* MoreComing indicates to a callback that at least one more result is + * queued and will be delivered following immediately after this one. + * Applications should not update their UI to display browse + * results when the MoreComing flag is set, because this would + * result in a great deal of ugly flickering on the screen. + * Applications should instead wait until until MoreComing is not set, + * and then update their UI. + * When MoreComing is not set, that doesn't mean there will be no more + * answers EVER, just that there are no more answers immediately + * available right now at this instant. If more answers become available + * in the future they will be delivered as usual. + */ + + kDNSServiceFlagsAdd = 0x2, + kDNSServiceFlagsDefault = 0x4, + /* Flags for domain enumeration and browse/query reply callbacks. + * "Default" applies only to enumeration and is only valid in + * conjuction with "Add". An enumeration callback with the "Add" + * flag NOT set indicates a "Remove", i.e. the domain is no longer + * valid. + */ + + kDNSServiceFlagsNoAutoRename = 0x8, + /* Flag for specifying renaming behavior on name conflict when registering + * non-shared records. By default, name conflicts are automatically handled + * by renaming the service. NoAutoRename overrides this behavior - with this + * flag set, name conflicts will result in a callback. The NoAutorename flag + * is only valid if a name is explicitly specified when registering a service + * (i.e. the default name is not used.) + */ + + kDNSServiceFlagsShared = 0x10, + kDNSServiceFlagsUnique = 0x20, + /* Flag for registering individual records on a connected + * DNSServiceRef. Shared indicates that there may be multiple records + * with this name on the network (e.g. PTR records). Unique indicates that the + * record's name is to be unique on the network (e.g. SRV records). + */ + + kDNSServiceFlagsBrowseDomains = 0x40, + kDNSServiceFlagsRegistrationDomains = 0x80, + /* Flags for specifying domain enumeration type in DNSServiceEnumerateDomains. + * BrowseDomains enumerates domains recommended for browsing, RegistrationDomains + * enumerates domains recommended for registration. + */ + + kDNSServiceFlagsLongLivedQuery = 0x100, + /* Flag for creating a long-lived unicast query for the DNSServiceQueryRecord call. */ + + kDNSServiceFlagsAllowRemoteQuery = 0x200, + /* Flag for creating a record for which we will answer remote queries + * (queries from hosts more than one hop away; hosts not directly connected to the local link). + */ + + kDNSServiceFlagsForceMulticast = 0x400, + /* Flag for signifying that a query or registration should be performed exclusively via multicast DNS, + * even for a name in a domain (e.g. foo.apple.com.) that would normally imply unicast DNS. + */ + + kDNSServiceFlagsReturnCNAME = 0x800 + /* Flag for returning CNAME records in the DNSServiceQueryRecord call. CNAME records are + * normally followed without indicating to the client that there was a CNAME record. + */ + }; + +/* + * The values for DNS Classes and Types are listed in RFC 1035, and are available + * on every OS in its DNS header file. Unfortunately every OS does not have the + * same header file containing DNS Class and Type constants, and the names of + * the constants are not consistent. For example, BIND 8 uses "T_A", + * BIND 9 uses "ns_t_a", Windows uses "DNS_TYPE_A", etc. + * For this reason, these constants are also listed here, so that code using + * the DNS-SD programming APIs can use these constants, so that the same code + * can compile on all our supported platforms. + */ + +enum + { + kDNSServiceClass_IN = 1 /* Internet */ + }; + +enum + { + kDNSServiceType_A = 1, /* Host address. */ + kDNSServiceType_NS = 2, /* Authoritative server. */ + kDNSServiceType_MD = 3, /* Mail destination. */ + kDNSServiceType_MF = 4, /* Mail forwarder. */ + kDNSServiceType_CNAME = 5, /* Canonical name. */ + kDNSServiceType_SOA = 6, /* Start of authority zone. */ + kDNSServiceType_MB = 7, /* Mailbox domain name. */ + kDNSServiceType_MG = 8, /* Mail group member. */ + kDNSServiceType_MR = 9, /* Mail rename name. */ + kDNSServiceType_NULL = 10, /* Null resource record. */ + kDNSServiceType_WKS = 11, /* Well known service. */ + kDNSServiceType_PTR = 12, /* Domain name pointer. */ + kDNSServiceType_HINFO = 13, /* Host information. */ + kDNSServiceType_MINFO = 14, /* Mailbox information. */ + kDNSServiceType_MX = 15, /* Mail routing information. */ + kDNSServiceType_TXT = 16, /* One or more text strings. */ + kDNSServiceType_RP = 17, /* Responsible person. */ + kDNSServiceType_AFSDB = 18, /* AFS cell database. */ + kDNSServiceType_X25 = 19, /* X_25 calling address. */ + kDNSServiceType_ISDN = 20, /* ISDN calling address. */ + kDNSServiceType_RT = 21, /* Router. */ + kDNSServiceType_NSAP = 22, /* NSAP address. */ + kDNSServiceType_NSAP_PTR = 23, /* Reverse NSAP lookup (deprecated). */ + kDNSServiceType_SIG = 24, /* Security signature. */ + kDNSServiceType_KEY = 25, /* Security key. */ + kDNSServiceType_PX = 26, /* X.400 mail mapping. */ + kDNSServiceType_GPOS = 27, /* Geographical position (withdrawn). */ + kDNSServiceType_AAAA = 28, /* IPv6 Address. */ + kDNSServiceType_LOC = 29, /* Location Information. */ + kDNSServiceType_NXT = 30, /* Next domain (security). */ + kDNSServiceType_EID = 31, /* Endpoint identifier. */ + kDNSServiceType_NIMLOC = 32, /* Nimrod Locator. */ + kDNSServiceType_SRV = 33, /* Server Selection. */ + kDNSServiceType_ATMA = 34, /* ATM Address */ + kDNSServiceType_NAPTR = 35, /* Naming Authority PoinTeR */ + kDNSServiceType_KX = 36, /* Key Exchange */ + kDNSServiceType_CERT = 37, /* Certification record */ + kDNSServiceType_A6 = 38, /* IPv6 Address (deprecated) */ + kDNSServiceType_DNAME = 39, /* Non-terminal DNAME (for IPv6) */ + kDNSServiceType_SINK = 40, /* Kitchen sink (experimentatl) */ + kDNSServiceType_OPT = 41, /* EDNS0 option (meta-RR) */ + kDNSServiceType_TKEY = 249, /* Transaction key */ + kDNSServiceType_TSIG = 250, /* Transaction signature. */ + kDNSServiceType_IXFR = 251, /* Incremental zone transfer. */ + kDNSServiceType_AXFR = 252, /* Transfer zone of authority. */ + kDNSServiceType_MAILB = 253, /* Transfer mailbox records. */ + kDNSServiceType_MAILA = 254, /* Transfer mail agent records. */ + kDNSServiceType_ANY = 255 /* Wildcard match. */ + }; + + +/* possible error code values */ +enum + { + kDNSServiceErr_NoError = 0, + kDNSServiceErr_Unknown = -65537, /* 0xFFFE FFFF */ + kDNSServiceErr_NoSuchName = -65538, + kDNSServiceErr_NoMemory = -65539, + kDNSServiceErr_BadParam = -65540, + kDNSServiceErr_BadReference = -65541, + kDNSServiceErr_BadState = -65542, + kDNSServiceErr_BadFlags = -65543, + kDNSServiceErr_Unsupported = -65544, + kDNSServiceErr_NotInitialized = -65545, + kDNSServiceErr_AlreadyRegistered = -65547, + kDNSServiceErr_NameConflict = -65548, + kDNSServiceErr_Invalid = -65549, + kDNSServiceErr_Firewall = -65550, + kDNSServiceErr_Incompatible = -65551, /* client library incompatible with daemon */ + kDNSServiceErr_BadInterfaceIndex = -65552, + kDNSServiceErr_Refused = -65553, + kDNSServiceErr_NoSuchRecord = -65554, + kDNSServiceErr_NoAuth = -65555, + kDNSServiceErr_NoSuchKey = -65556, + kDNSServiceErr_NATTraversal = -65557, + kDNSServiceErr_DoubleNAT = -65558, + kDNSServiceErr_BadTime = -65559 + /* mDNS Error codes are in the range + * FFFE FF00 (-65792) to FFFE FFFF (-65537) */ + }; + + +/* Maximum length, in bytes, of a service name represented as a */ +/* literal C-String, including the terminating NULL at the end. */ + +#define kDNSServiceMaxServiceName 64 + +/* Maximum length, in bytes, of a domain name represented as an *escaped* C-String */ +/* including the final trailing dot, and the C-String terminating NULL at the end. */ + +#define kDNSServiceMaxDomainName 1005 + +/* + * Notes on DNS Name Escaping + * -- or -- + * "Why is kDNSServiceMaxDomainName 1005, when the maximum legal domain name is 255 bytes?" + * + * All strings used in DNS-SD are UTF-8 strings. + * With few exceptions, most are also escaped using standard DNS escaping rules: + * + * '\\' represents a single literal '\' in the name + * '\.' represents a single literal '.' in the name + * '\ddd', where ddd is a three-digit decimal value from 000 to 255, + * represents a single literal byte with that value. + * A bare unescaped '.' is a label separator, marking a boundary between domain and subdomain. + * + * The exceptions, that do not use escaping, are the routines where the full + * DNS name of a resource is broken, for convenience, into servicename/regtype/domain. + * In these routines, the "servicename" is NOT escaped. It does not need to be, since + * it is, by definition, just a single literal string. Any characters in that string + * represent exactly what they are. The "regtype" portion is, technically speaking, + * escaped, but since legal regtypes are only allowed to contain letters, digits, + * and hyphens, there is nothing to escape, so the issue is moot. The "domain" + * portion is also escaped, though most domains in use on the public Internet + * today, like regtypes, don't contain any characters that need to be escaped. + * As DNS-SD becomes more popular, rich-text domains for service discovery will + * become common, so software should be written to cope with domains with escaping. + * + * The servicename may be up to 63 bytes of UTF-8 text (not counting the C-String + * terminating NULL at the end). The regtype is of the form _service._tcp or + * _service._udp, where the "service" part is 1-14 characters, which may be + * letters, digits, or hyphens. The domain part of the three-part name may be + * any legal domain, providing that the resulting servicename+regtype+domain + * name does not exceed 255 bytes. + * + * For most software, these issues are transparent. When browsing, the discovered + * servicenames should simply be displayed as-is. When resolving, the discovered + * servicename/regtype/domain are simply passed unchanged to DNSServiceResolve(). + * When a DNSServiceResolve() succeeds, the returned fullname is already in + * the correct format to pass to standard system DNS APIs such as res_query(). + * For converting from servicename/regtype/domain to a single properly-escaped + * full DNS name, the helper function DNSServiceConstructFullName() is provided. + * + * The following (highly contrived) example illustrates the escaping process. + * Suppose you have an service called "Dr. Smith\Dr. Johnson", of type "_ftp._tcp" + * in subdomain "4th. Floor" of subdomain "Building 2" of domain "apple.com." + * The full (escaped) DNS name of this service's SRV record would be: + * Dr\.\032Smith\\Dr\.\032Johnson._ftp._tcp.4th\.\032Floor.Building\0322.apple.com. + */ + + +/* + * Constants for specifying an interface index + * + * Specific interface indexes are identified via a 32-bit unsigned integer returned + * by the if_nametoindex() family of calls. + * + * If the client passes 0 for interface index, that means "do the right thing", + * which (at present) means, "if the name is in an mDNS local multicast domain + * (e.g. 'local.', '254.169.in-addr.arpa.', '{8,9,A,B}.E.F.ip6.arpa.') then multicast + * on all applicable interfaces, otherwise send via unicast to the appropriate + * DNS server." Normally, most clients will use 0 for interface index to + * automatically get the default sensible behaviour. + * + * If the client passes a positive interface index, then for multicast names that + * indicates to do the operation only on that one interface. For unicast names the + * interface index is ignored unless kDNSServiceFlagsForceMulticast is also set. + * + * If the client passes kDNSServiceInterfaceIndexLocalOnly when registering + * a service, then that service will be found *only* by other local clients + * on the same machine that are browsing using kDNSServiceInterfaceIndexLocalOnly + * or kDNSServiceInterfaceIndexAny. + * If a client has a 'private' service, accessible only to other processes + * running on the same machine, this allows the client to advertise that service + * in a way such that it does not inadvertently appear in service lists on + * all the other machines on the network. + * + * If the client passes kDNSServiceInterfaceIndexLocalOnly when browsing + * then it will find *all* records registered on that same local machine. + * Clients explicitly wishing to discover *only* LocalOnly services can + * accomplish this by inspecting the interfaceIndex of each service reported + * to their DNSServiceBrowseReply() callback function, and discarding those + * where the interface index is not kDNSServiceInterfaceIndexLocalOnly. + */ + +#define kDNSServiceInterfaceIndexAny 0 +#define kDNSServiceInterfaceIndexLocalOnly ( (uint32_t) -1 ) + + +typedef uint32_t DNSServiceFlags; +typedef int32_t DNSServiceErrorType; + + +/********************************************************************************************* + * + * Unix Domain Socket access, DNSServiceRef deallocation, and data processing functions + * + *********************************************************************************************/ + + +/* DNSServiceRefSockFD() + * + * Access underlying Unix domain socket for an initialized DNSServiceRef. + * The DNS Service Discovery implmementation uses this socket to communicate between + * the client and the mDNSResponder daemon. The application MUST NOT directly read from + * or write to this socket. Access to the socket is provided so that it can be used as a + * run loop source, or in a select() loop: when data is available for reading on the socket, + * DNSServiceProcessResult() should be called, which will extract the daemon's reply from + * the socket, and pass it to the appropriate application callback. By using a run loop or + * select(), results from the daemon can be processed asynchronously. Without using these + * constructs, DNSServiceProcessResult() will block until the response from the daemon arrives. + * The client is responsible for ensuring that the data on the socket is processed in a timely + * fashion - the daemon may terminate its connection with a client that does not clear its + * socket buffer. + * + * sdRef: A DNSServiceRef initialized by any of the DNSService calls. + * + * return value: The DNSServiceRef's underlying socket descriptor, or -1 on + * error. + */ + +int DNSSD_API DNSServiceRefSockFD(DNSServiceRef sdRef); + + +/* DNSServiceProcessResult() + * + * Read a reply from the daemon, calling the appropriate application callback. This call will + * block until the daemon's response is received. Use DNSServiceRefSockFD() in + * conjunction with a run loop or select() to determine the presence of a response from the + * server before calling this function to process the reply without blocking. Call this function + * at any point if it is acceptable to block until the daemon's response arrives. Note that the + * client is responsible for ensuring that DNSServiceProcessResult() is called whenever there is + * a reply from the daemon - the daemon may terminate its connection with a client that does not + * process the daemon's responses. + * + * sdRef: A DNSServiceRef initialized by any of the DNSService calls + * that take a callback parameter. + * + * return value: Returns kDNSServiceErr_NoError on success, otherwise returns + * an error code indicating the specific failure that occurred. + */ + +DNSServiceErrorType DNSSD_API DNSServiceProcessResult(DNSServiceRef sdRef); + + +/* DNSServiceRefDeallocate() + * + * Terminate a connection with the daemon and free memory associated with the DNSServiceRef. + * Any services or records registered with this DNSServiceRef will be deregistered. Any + * Browse, Resolve, or Query operations called with this reference will be terminated. + * + * Note: If the reference's underlying socket is used in a run loop or select() call, it should + * be removed BEFORE DNSServiceRefDeallocate() is called, as this function closes the reference's + * socket. + * + * Note: If the reference was initialized with DNSServiceCreateConnection(), any DNSRecordRefs + * created via this reference will be invalidated by this call - the resource records are + * deregistered, and their DNSRecordRefs may not be used in subsequent functions. Similarly, + * if the reference was initialized with DNSServiceRegister, and an extra resource record was + * added to the service via DNSServiceAddRecord(), the DNSRecordRef created by the Add() call + * is invalidated when this function is called - the DNSRecordRef may not be used in subsequent + * functions. + * + * Note: This call is to be used only with the DNSServiceRef defined by this API. It is + * not compatible with dns_service_discovery_ref objects defined in the legacy Mach-based + * DNSServiceDiscovery.h API. + * + * sdRef: A DNSServiceRef initialized by any of the DNSService calls. + * + */ + +void DNSSD_API DNSServiceRefDeallocate(DNSServiceRef sdRef); + + +/********************************************************************************************* + * + * Domain Enumeration + * + *********************************************************************************************/ + +/* DNSServiceEnumerateDomains() + * + * Asynchronously enumerate domains available for browsing and registration. + * + * The enumeration MUST be cancelled via DNSServiceRefDeallocate() when no more domains + * are to be found. + * + * Note that the names returned are (like all of DNS-SD) UTF-8 strings, + * and are escaped using standard DNS escaping rules. + * (See "Notes on DNS Name Escaping" earlier in this file for more details.) + * A graphical browser displaying a hierarchical tree-structured view should cut + * the names at the bare dots to yield individual labels, then de-escape each + * label according to the escaping rules, and then display the resulting UTF-8 text. + * + * DNSServiceDomainEnumReply Callback Parameters: + * + * sdRef: The DNSServiceRef initialized by DNSServiceEnumerateDomains(). + * + * flags: Possible values are: + * kDNSServiceFlagsMoreComing + * kDNSServiceFlagsAdd + * kDNSServiceFlagsDefault + * + * interfaceIndex: Specifies the interface on which the domain exists. (The index for a given + * interface is determined via the if_nametoindex() family of calls.) + * + * errorCode: Will be kDNSServiceErr_NoError (0) on success, otherwise indicates + * the failure that occurred (other parameters are undefined if errorCode is nonzero). + * + * replyDomain: The name of the domain. + * + * context: The context pointer passed to DNSServiceEnumerateDomains. + * + */ + +typedef void (DNSSD_API *DNSServiceDomainEnumReply) + ( + DNSServiceRef sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + DNSServiceErrorType errorCode, + const char *replyDomain, + void *context + ); + + +/* DNSServiceEnumerateDomains() Parameters: + * + * + * sdRef: A pointer to an uninitialized DNSServiceRef. If the call succeeds + * then it initializes the DNSServiceRef, returns kDNSServiceErr_NoError, + * and the enumeration operation will run indefinitely until the client + * terminates it by passing this DNSServiceRef to DNSServiceRefDeallocate(). + * + * flags: Possible values are: + * kDNSServiceFlagsBrowseDomains to enumerate domains recommended for browsing. + * kDNSServiceFlagsRegistrationDomains to enumerate domains recommended + * for registration. + * + * interfaceIndex: If non-zero, specifies the interface on which to look for domains. + * (the index for a given interface is determined via the if_nametoindex() + * family of calls.) Most applications will pass 0 to enumerate domains on + * all interfaces. See "Constants for specifying an interface index" for more details. + * + * callBack: The function to be called when a domain is found or the call asynchronously + * fails. + * + * context: An application context pointer which is passed to the callback function + * (may be NULL). + * + * return value: Returns kDNSServiceErr_NoError on succeses (any subsequent, asynchronous + * errors are delivered to the callback), otherwise returns an error code indicating + * the error that occurred (the callback is not invoked and the DNSServiceRef + * is not initialized.) + */ + +DNSServiceErrorType DNSSD_API DNSServiceEnumerateDomains + ( + DNSServiceRef *sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + DNSServiceDomainEnumReply callBack, + void *context /* may be NULL */ + ); + + +/********************************************************************************************* + * + * Service Registration + * + *********************************************************************************************/ + +/* Register a service that is discovered via Browse() and Resolve() calls. + * + * + * DNSServiceRegisterReply() Callback Parameters: + * + * sdRef: The DNSServiceRef initialized by DNSServiceRegister(). + * + * flags: Currently unused, reserved for future use. + * + * errorCode: Will be kDNSServiceErr_NoError on success, otherwise will + * indicate the failure that occurred (including name conflicts, + * if the kDNSServiceFlagsNoAutoRename flag was used when registering.) + * Other parameters are undefined if errorCode is nonzero. + * + * name: The service name registered (if the application did not specify a name in + * DNSServiceRegister(), this indicates what name was automatically chosen). + * + * regtype: The type of service registered, as it was passed to the callout. + * + * domain: The domain on which the service was registered (if the application did not + * specify a domain in DNSServiceRegister(), this indicates the default domain + * on which the service was registered). + * + * context: The context pointer that was passed to the callout. + * + */ + +typedef void (DNSSD_API *DNSServiceRegisterReply) + ( + DNSServiceRef sdRef, + DNSServiceFlags flags, + DNSServiceErrorType errorCode, + const char *name, + const char *regtype, + const char *domain, + void *context + ); + + +/* DNSServiceRegister() Parameters: + * + * sdRef: A pointer to an uninitialized DNSServiceRef. If the call succeeds + * then it initializes the DNSServiceRef, returns kDNSServiceErr_NoError, + * and the registration will remain active indefinitely until the client + * terminates it by passing this DNSServiceRef to DNSServiceRefDeallocate(). + * + * interfaceIndex: If non-zero, specifies the interface on which to register the service + * (the index for a given interface is determined via the if_nametoindex() + * family of calls.) Most applications will pass 0 to register on all + * available interfaces. See "Constants for specifying an interface index" for more details. + * + * flags: Indicates the renaming behavior on name conflict (most applications + * will pass 0). See flag definitions above for details. + * + * name: If non-NULL, specifies the service name to be registered. + * Most applications will not specify a name, in which case the computer + * name is used (this name is communicated to the client via the callback). + * If a name is specified, it must be 1-63 bytes of UTF-8 text. + * If the name is longer than 63 bytes it will be automatically truncated + * to a legal length, unless the NoAutoRename flag is set, + * in which case kDNSServiceErr_BadParam will be returned. + * + * regtype: The service type followed by the protocol, separated by a dot + * (e.g. "_ftp._tcp"). The service type must be an underscore, followed + * by 1-14 characters, which may be letters, digits, or hyphens. + * The transport protocol must be "_tcp" or "_udp". New service types + * should be registered at . + * + * domain: If non-NULL, specifies the domain on which to advertise the service. + * Most applications will not specify a domain, instead automatically + * registering in the default domain(s). + * + * host: If non-NULL, specifies the SRV target host name. Most applications + * will not specify a host, instead automatically using the machine's + * default host name(s). Note that specifying a non-NULL host does NOT + * create an address record for that host - the application is responsible + * for ensuring that the appropriate address record exists, or creating it + * via DNSServiceRegisterRecord(). + * + * port: The port, in network byte order, on which the service accepts connections. + * Pass 0 for a "placeholder" service (i.e. a service that will not be discovered + * by browsing, but will cause a name conflict if another client tries to + * register that same name). Most clients will not use placeholder services. + * + * txtLen: The length of the txtRecord, in bytes. Must be zero if the txtRecord is NULL. + * + * txtRecord: The TXT record rdata. A non-NULL txtRecord MUST be a properly formatted DNS + * TXT record, i.e. ... + * Passing NULL for the txtRecord is allowed as a synonym for txtLen=1, txtRecord="", + * i.e. it creates a TXT record of length one containing a single empty string. + * RFC 1035 doesn't allow a TXT record to contain *zero* strings, so a single empty + * string is the smallest legal DNS TXT record. + * As with the other parameters, the DNSServiceRegister call copies the txtRecord + * data; e.g. if you allocated the storage for the txtRecord parameter with malloc() + * then you can safely free that memory right after the DNSServiceRegister call returns. + * + * callBack: The function to be called when the registration completes or asynchronously + * fails. The client MAY pass NULL for the callback - The client will NOT be notified + * of the default values picked on its behalf, and the client will NOT be notified of any + * asynchronous errors (e.g. out of memory errors, etc.) that may prevent the registration + * of the service. The client may NOT pass the NoAutoRename flag if the callback is NULL. + * The client may still deregister the service at any time via DNSServiceRefDeallocate(). + * + * context: An application context pointer which is passed to the callback function + * (may be NULL). + * + * return value: Returns kDNSServiceErr_NoError on succeses (any subsequent, asynchronous + * errors are delivered to the callback), otherwise returns an error code indicating + * the error that occurred (the callback is never invoked and the DNSServiceRef + * is not initialized.) + */ + +DNSServiceErrorType DNSSD_API DNSServiceRegister + ( + DNSServiceRef *sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + const char *name, /* may be NULL */ + const char *regtype, + const char *domain, /* may be NULL */ + const char *host, /* may be NULL */ + uint16_t port, + uint16_t txtLen, + const void *txtRecord, /* may be NULL */ + DNSServiceRegisterReply callBack, /* may be NULL */ + void *context /* may be NULL */ + ); + + +/* DNSServiceAddRecord() + * + * Add a record to a registered service. The name of the record will be the same as the + * registered service's name. + * The record can later be updated or deregistered by passing the RecordRef initialized + * by this function to DNSServiceUpdateRecord() or DNSServiceRemoveRecord(). + * + * Note that the DNSServiceAddRecord/UpdateRecord/RemoveRecord are *NOT* thread-safe + * with respect to a single DNSServiceRef. If you plan to have multiple threads + * in your program simultaneously add, update, or remove records from the same + * DNSServiceRef, then it's the caller's responsibility to use a mutext lock + * or take similar appropriate precautions to serialize those calls. + * + * + * Parameters; + * + * sdRef: A DNSServiceRef initialized by DNSServiceRegister(). + * + * RecordRef: A pointer to an uninitialized DNSRecordRef. Upon succesfull completion of this + * call, this ref may be passed to DNSServiceUpdateRecord() or DNSServiceRemoveRecord(). + * If the above DNSServiceRef is passed to DNSServiceRefDeallocate(), RecordRef is also + * invalidated and may not be used further. + * + * flags: Currently ignored, reserved for future use. + * + * rrtype: The type of the record (e.g. kDNSServiceType_TXT, kDNSServiceType_SRV, etc) + * + * rdlen: The length, in bytes, of the rdata. + * + * rdata: The raw rdata to be contained in the added resource record. + * + * ttl: The time to live of the resource record, in seconds. Pass 0 to use a default value. + * + * return value: Returns kDNSServiceErr_NoError on success, otherwise returns an + * error code indicating the error that occurred (the RecordRef is not initialized). + */ + +DNSServiceErrorType DNSSD_API DNSServiceAddRecord + ( + DNSServiceRef sdRef, + DNSRecordRef *RecordRef, + DNSServiceFlags flags, + uint16_t rrtype, + uint16_t rdlen, + const void *rdata, + uint32_t ttl + ); + + +/* DNSServiceUpdateRecord + * + * Update a registered resource record. The record must either be: + * - The primary txt record of a service registered via DNSServiceRegister() + * - A record added to a registered service via DNSServiceAddRecord() + * - An individual record registered by DNSServiceRegisterRecord() + * + * + * Parameters: + * + * sdRef: A DNSServiceRef that was initialized by DNSServiceRegister() + * or DNSServiceCreateConnection(). + * + * RecordRef: A DNSRecordRef initialized by DNSServiceAddRecord, or NULL to update the + * service's primary txt record. + * + * flags: Currently ignored, reserved for future use. + * + * rdlen: The length, in bytes, of the new rdata. + * + * rdata: The new rdata to be contained in the updated resource record. + * + * ttl: The time to live of the updated resource record, in seconds. + * + * return value: Returns kDNSServiceErr_NoError on success, otherwise returns an + * error code indicating the error that occurred. + */ + +DNSServiceErrorType DNSSD_API DNSServiceUpdateRecord + ( + DNSServiceRef sdRef, + DNSRecordRef RecordRef, /* may be NULL */ + DNSServiceFlags flags, + uint16_t rdlen, + const void *rdata, + uint32_t ttl + ); + + +/* DNSServiceRemoveRecord + * + * Remove a record previously added to a service record set via DNSServiceAddRecord(), or deregister + * an record registered individually via DNSServiceRegisterRecord(). + * + * Parameters: + * + * sdRef: A DNSServiceRef initialized by DNSServiceRegister() (if the + * record being removed was registered via DNSServiceAddRecord()) or by + * DNSServiceCreateConnection() (if the record being removed was registered via + * DNSServiceRegisterRecord()). + * + * recordRef: A DNSRecordRef initialized by a successful call to DNSServiceAddRecord() + * or DNSServiceRegisterRecord(). + * + * flags: Currently ignored, reserved for future use. + * + * return value: Returns kDNSServiceErr_NoError on success, otherwise returns an + * error code indicating the error that occurred. + */ + +DNSServiceErrorType DNSSD_API DNSServiceRemoveRecord + ( + DNSServiceRef sdRef, + DNSRecordRef RecordRef, + DNSServiceFlags flags + ); + + +/********************************************************************************************* + * + * Service Discovery + * + *********************************************************************************************/ + +/* Browse for instances of a service. + * + * + * DNSServiceBrowseReply() Parameters: + * + * sdRef: The DNSServiceRef initialized by DNSServiceBrowse(). + * + * flags: Possible values are kDNSServiceFlagsMoreComing and kDNSServiceFlagsAdd. + * See flag definitions for details. + * + * interfaceIndex: The interface on which the service is advertised. This index should + * be passed to DNSServiceResolve() when resolving the service. + * + * errorCode: Will be kDNSServiceErr_NoError (0) on success, otherwise will + * indicate the failure that occurred. Other parameters are undefined if + * the errorCode is nonzero. + * + * serviceName: The discovered service name. This name should be displayed to the user, + * and stored for subsequent use in the DNSServiceResolve() call. + * + * regtype: The service type, which is usually (but not always) the same as was passed + * to DNSServiceBrowse(). One case where the discovered service type may + * not be the same as the requested service type is when using subtypes: + * The client may want to browse for only those ftp servers that allow + * anonymous connections. The client will pass the string "_ftp._tcp,_anon" + * to DNSServiceBrowse(), but the type of the service that's discovered + * is simply "_ftp._tcp". The regtype for each discovered service instance + * should be stored along with the name, so that it can be passed to + * DNSServiceResolve() when the service is later resolved. + * + * domain: The domain of the discovered service instance. This may or may not be the + * same as the domain that was passed to DNSServiceBrowse(). The domain for each + * discovered service instance should be stored along with the name, so that + * it can be passed to DNSServiceResolve() when the service is later resolved. + * + * context: The context pointer that was passed to the callout. + * + */ + +typedef void (DNSSD_API *DNSServiceBrowseReply) + ( + DNSServiceRef sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + DNSServiceErrorType errorCode, + const char *serviceName, + const char *regtype, + const char *replyDomain, + void *context + ); + + +/* DNSServiceBrowse() Parameters: + * + * sdRef: A pointer to an uninitialized DNSServiceRef. If the call succeeds + * then it initializes the DNSServiceRef, returns kDNSServiceErr_NoError, + * and the browse operation will run indefinitely until the client + * terminates it by passing this DNSServiceRef to DNSServiceRefDeallocate(). + * + * flags: Currently ignored, reserved for future use. + * + * interfaceIndex: If non-zero, specifies the interface on which to browse for services + * (the index for a given interface is determined via the if_nametoindex() + * family of calls.) Most applications will pass 0 to browse on all available + * interfaces. See "Constants for specifying an interface index" for more details. + * + * regtype: The service type being browsed for followed by the protocol, separated by a + * dot (e.g. "_ftp._tcp"). The transport protocol must be "_tcp" or "_udp". + * + * domain: If non-NULL, specifies the domain on which to browse for services. + * Most applications will not specify a domain, instead browsing on the + * default domain(s). + * + * callBack: The function to be called when an instance of the service being browsed for + * is found, or if the call asynchronously fails. + * + * context: An application context pointer which is passed to the callback function + * (may be NULL). + * + * return value: Returns kDNSServiceErr_NoError on succeses (any subsequent, asynchronous + * errors are delivered to the callback), otherwise returns an error code indicating + * the error that occurred (the callback is not invoked and the DNSServiceRef + * is not initialized.) + */ + +DNSServiceErrorType DNSSD_API DNSServiceBrowse + ( + DNSServiceRef *sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + const char *regtype, + const char *domain, /* may be NULL */ + DNSServiceBrowseReply callBack, + void *context /* may be NULL */ + ); + + +/* DNSServiceResolve() + * + * Resolve a service name discovered via DNSServiceBrowse() to a target host name, port number, and + * txt record. + * + * Note: Applications should NOT use DNSServiceResolve() solely for txt record monitoring - use + * DNSServiceQueryRecord() instead, as it is more efficient for this task. + * + * Note: When the desired results have been returned, the client MUST terminate the resolve by calling + * DNSServiceRefDeallocate(). + * + * Note: DNSServiceResolve() behaves correctly for typical services that have a single SRV record + * and a single TXT record. To resolve non-standard services with multiple SRV or TXT records, + * DNSServiceQueryRecord() should be used. + * + * DNSServiceResolveReply Callback Parameters: + * + * sdRef: The DNSServiceRef initialized by DNSServiceResolve(). + * + * flags: Currently unused, reserved for future use. + * + * interfaceIndex: The interface on which the service was resolved. + * + * errorCode: Will be kDNSServiceErr_NoError (0) on success, otherwise will + * indicate the failure that occurred. Other parameters are undefined if + * the errorCode is nonzero. + * + * fullname: The full service domain name, in the form ... + * (This name is escaped following standard DNS rules, making it suitable for + * passing to standard system DNS APIs such as res_query(), or to the + * special-purpose functions included in this API that take fullname parameters. + * See "Notes on DNS Name Escaping" earlier in this file for more details.) + * + * hosttarget: The target hostname of the machine providing the service. This name can + * be passed to functions like gethostbyname() to identify the host's IP address. + * + * port: The port, in network byte order, on which connections are accepted for this service. + * + * txtLen: The length of the txt record, in bytes. + * + * txtRecord: The service's primary txt record, in standard txt record format. + * + * context: The context pointer that was passed to the callout. + * + * NOTE: In earlier versions of this header file, the txtRecord parameter was declared "const char *" + * This is incorrect, since it contains length bytes which are values in the range 0 to 255, not -128 to +127. + * Depending on your compiler settings, this change may cause signed/unsigned mismatch warnings. + * These should be fixed by updating your own callback function definition to match the corrected + * function signature using "const unsigned char *txtRecord". Making this change may also fix inadvertent + * bugs in your callback function, where it could have incorrectly interpreted a length byte with value 250 + * as being -6 instead, with various bad consequences ranging from incorrect operation to software crashes. + * If you need to maintain portable code that will compile cleanly with both the old and new versions of + * this header file, you should update your callback function definition to use the correct unsigned value, + * and then in the place where you pass your callback function to DNSServiceResolve(), use a cast to eliminate + * the compiler warning, e.g.: + * DNSServiceResolve(sd, flags, index, name, regtype, domain, (DNSServiceResolveReply)MyCallback, context); + * This will ensure that your code compiles cleanly without warnings (and more importantly, works correctly) + * with both the old header and with the new corrected version. + * + */ + +typedef void (DNSSD_API *DNSServiceResolveReply) + ( + DNSServiceRef sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + DNSServiceErrorType errorCode, + const char *fullname, + const char *hosttarget, + uint16_t port, + uint16_t txtLen, + const unsigned char *txtRecord, + void *context + ); + + +/* DNSServiceResolve() Parameters + * + * sdRef: A pointer to an uninitialized DNSServiceRef. If the call succeeds + * then it initializes the DNSServiceRef, returns kDNSServiceErr_NoError, + * and the resolve operation will run indefinitely until the client + * terminates it by passing this DNSServiceRef to DNSServiceRefDeallocate(). + * + * flags: Currently ignored, reserved for future use. + * + * interfaceIndex: The interface on which to resolve the service. If this resolve call is + * as a result of a currently active DNSServiceBrowse() operation, then the + * interfaceIndex should be the index reported in the DNSServiceBrowseReply + * callback. If this resolve call is using information previously saved + * (e.g. in a preference file) for later use, then use interfaceIndex 0, because + * the desired service may now be reachable via a different physical interface. + * See "Constants for specifying an interface index" for more details. + * + * name: The name of the service instance to be resolved, as reported to the + * DNSServiceBrowseReply() callback. + * + * regtype: The type of the service instance to be resolved, as reported to the + * DNSServiceBrowseReply() callback. + * + * domain: The domain of the service instance to be resolved, as reported to the + * DNSServiceBrowseReply() callback. + * + * callBack: The function to be called when a result is found, or if the call + * asynchronously fails. + * + * context: An application context pointer which is passed to the callback function + * (may be NULL). + * + * return value: Returns kDNSServiceErr_NoError on succeses (any subsequent, asynchronous + * errors are delivered to the callback), otherwise returns an error code indicating + * the error that occurred (the callback is never invoked and the DNSServiceRef + * is not initialized.) + */ + +DNSServiceErrorType DNSSD_API DNSServiceResolve + ( + DNSServiceRef *sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + const char *name, + const char *regtype, + const char *domain, + DNSServiceResolveReply callBack, + void *context /* may be NULL */ + ); + + +/********************************************************************************************* + * + * Special Purpose Calls (most applications will not use these) + * + *********************************************************************************************/ + +/* DNSServiceCreateConnection() + * + * Create a connection to the daemon allowing efficient registration of + * multiple individual records. + * + * + * Parameters: + * + * sdRef: A pointer to an uninitialized DNSServiceRef. Deallocating + * the reference (via DNSServiceRefDeallocate()) severs the + * connection and deregisters all records registered on this connection. + * + * return value: Returns kDNSServiceErr_NoError on success, otherwise returns + * an error code indicating the specific failure that occurred (in which + * case the DNSServiceRef is not initialized). + */ + +DNSServiceErrorType DNSSD_API DNSServiceCreateConnection(DNSServiceRef *sdRef); + + +/* DNSServiceRegisterRecord + * + * Register an individual resource record on a connected DNSServiceRef. + * + * Note that name conflicts occurring for records registered via this call must be handled + * by the client in the callback. + * + * + * DNSServiceRegisterRecordReply() parameters: + * + * sdRef: The connected DNSServiceRef initialized by + * DNSServiceCreateConnection(). + * + * RecordRef: The DNSRecordRef initialized by DNSServiceRegisterRecord(). If the above + * DNSServiceRef is passed to DNSServiceRefDeallocate(), this DNSRecordRef is + * invalidated, and may not be used further. + * + * flags: Currently unused, reserved for future use. + * + * errorCode: Will be kDNSServiceErr_NoError on success, otherwise will + * indicate the failure that occurred (including name conflicts.) + * Other parameters are undefined if errorCode is nonzero. + * + * context: The context pointer that was passed to the callout. + * + */ + + typedef void (DNSSD_API *DNSServiceRegisterRecordReply) + ( + DNSServiceRef sdRef, + DNSRecordRef RecordRef, + DNSServiceFlags flags, + DNSServiceErrorType errorCode, + void *context + ); + + +/* DNSServiceRegisterRecord() Parameters: + * + * sdRef: A DNSServiceRef initialized by DNSServiceCreateConnection(). + * + * RecordRef: A pointer to an uninitialized DNSRecordRef. Upon succesfull completion of this + * call, this ref may be passed to DNSServiceUpdateRecord() or DNSServiceRemoveRecord(). + * (To deregister ALL records registered on a single connected DNSServiceRef + * and deallocate each of their corresponding DNSServiceRecordRefs, call + * DNSServiceRefDealloocate()). + * + * flags: Possible values are kDNSServiceFlagsShared or kDNSServiceFlagsUnique + * (see flag type definitions for details). + * + * interfaceIndex: If non-zero, specifies the interface on which to register the record + * (the index for a given interface is determined via the if_nametoindex() + * family of calls.) Passing 0 causes the record to be registered on all interfaces. + * See "Constants for specifying an interface index" for more details. + * + * fullname: The full domain name of the resource record. + * + * rrtype: The numerical type of the resource record (e.g. kDNSServiceType_PTR, kDNSServiceType_SRV, etc) + * + * rrclass: The class of the resource record (usually kDNSServiceClass_IN) + * + * rdlen: Length, in bytes, of the rdata. + * + * rdata: A pointer to the raw rdata, as it is to appear in the DNS record. + * + * ttl: The time to live of the resource record, in seconds. Pass 0 to use a default value. + * + * callBack: The function to be called when a result is found, or if the call + * asynchronously fails (e.g. because of a name conflict.) + * + * context: An application context pointer which is passed to the callback function + * (may be NULL). + * + * return value: Returns kDNSServiceErr_NoError on succeses (any subsequent, asynchronous + * errors are delivered to the callback), otherwise returns an error code indicating + * the error that occurred (the callback is never invoked and the DNSRecordRef is + * not initialized.) + */ + +DNSServiceErrorType DNSSD_API DNSServiceRegisterRecord + ( + DNSServiceRef sdRef, + DNSRecordRef *RecordRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + const char *fullname, + uint16_t rrtype, + uint16_t rrclass, + uint16_t rdlen, + const void *rdata, + uint32_t ttl, + DNSServiceRegisterRecordReply callBack, + void *context /* may be NULL */ + ); + + +/* DNSServiceQueryRecord + * + * Query for an arbitrary DNS record. + * + * + * DNSServiceQueryRecordReply() Callback Parameters: + * + * sdRef: The DNSServiceRef initialized by DNSServiceQueryRecord(). + * + * flags: Possible values are kDNSServiceFlagsMoreComing and + * kDNSServiceFlagsAdd. The Add flag is NOT set for PTR records + * with a ttl of 0, i.e. "Remove" events. + * + * interfaceIndex: The interface on which the query was resolved (the index for a given + * interface is determined via the if_nametoindex() family of calls). + * See "Constants for specifying an interface index" for more details. + * + * errorCode: Will be kDNSServiceErr_NoError on success, otherwise will + * indicate the failure that occurred. Other parameters are undefined if + * errorCode is nonzero. + * + * fullname: The resource record's full domain name. + * + * rrtype: The resource record's type (e.g. kDNSServiceType_PTR, kDNSServiceType_SRV, etc) + * + * rrclass: The class of the resource record (usually kDNSServiceClass_IN). + * + * rdlen: The length, in bytes, of the resource record rdata. + * + * rdata: The raw rdata of the resource record. + * + * ttl: The resource record's time to live, in seconds. + * + * context: The context pointer that was passed to the callout. + * + */ + +typedef void (DNSSD_API *DNSServiceQueryRecordReply) + ( + DNSServiceRef DNSServiceRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + DNSServiceErrorType errorCode, + const char *fullname, + uint16_t rrtype, + uint16_t rrclass, + uint16_t rdlen, + const void *rdata, + uint32_t ttl, + void *context + ); + + +/* DNSServiceQueryRecord() Parameters: + * + * sdRef: A pointer to an uninitialized DNSServiceRef. If the call succeeds + * then it initializes the DNSServiceRef, returns kDNSServiceErr_NoError, + * and the query operation will run indefinitely until the client + * terminates it by passing this DNSServiceRef to DNSServiceRefDeallocate(). + * + * flags: Pass kDNSServiceFlagsLongLivedQuery to create a "long-lived" unicast + * query in a non-local domain. Without setting this flag, unicast queries + * will be one-shot - that is, only answers available at the time of the call + * will be returned. By setting this flag, answers (including Add and Remove + * events) that become available after the initial call is made will generate + * callbacks. This flag has no effect on link-local multicast queries. + * + * interfaceIndex: If non-zero, specifies the interface on which to issue the query + * (the index for a given interface is determined via the if_nametoindex() + * family of calls.) Passing 0 causes the name to be queried for on all + * interfaces. See "Constants for specifying an interface index" for more details. + * + * fullname: The full domain name of the resource record to be queried for. + * + * rrtype: The numerical type of the resource record to be queried for + * (e.g. kDNSServiceType_PTR, kDNSServiceType_SRV, etc) + * + * rrclass: The class of the resource record (usually kDNSServiceClass_IN). + * + * callBack: The function to be called when a result is found, or if the call + * asynchronously fails. + * + * context: An application context pointer which is passed to the callback function + * (may be NULL). + * + * return value: Returns kDNSServiceErr_NoError on succeses (any subsequent, asynchronous + * errors are delivered to the callback), otherwise returns an error code indicating + * the error that occurred (the callback is never invoked and the DNSServiceRef + * is not initialized.) + */ + +DNSServiceErrorType DNSSD_API DNSServiceQueryRecord + ( + DNSServiceRef *sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + const char *fullname, + uint16_t rrtype, + uint16_t rrclass, + DNSServiceQueryRecordReply callBack, + void *context /* may be NULL */ + ); + + +/* DNSServiceReconfirmRecord + * + * Instruct the daemon to verify the validity of a resource record that appears to + * be out of date (e.g. because tcp connection to a service's target failed.) + * Causes the record to be flushed from the daemon's cache (as well as all other + * daemons' caches on the network) if the record is determined to be invalid. + * + * Parameters: + * + * flags: Currently unused, reserved for future use. + * + * interfaceIndex: If non-zero, specifies the interface of the record in question. + * Passing 0 causes all instances of this record to be reconfirmed. + * + * fullname: The resource record's full domain name. + * + * rrtype: The resource record's type (e.g. kDNSServiceType_PTR, kDNSServiceType_SRV, etc) + * + * rrclass: The class of the resource record (usually kDNSServiceClass_IN). + * + * rdlen: The length, in bytes, of the resource record rdata. + * + * rdata: The raw rdata of the resource record. + * + */ + +DNSServiceErrorType DNSSD_API DNSServiceReconfirmRecord + ( + DNSServiceFlags flags, + uint32_t interfaceIndex, + const char *fullname, + uint16_t rrtype, + uint16_t rrclass, + uint16_t rdlen, + const void *rdata + ); + + +/********************************************************************************************* + * + * General Utility Functions + * + *********************************************************************************************/ + +/* DNSServiceConstructFullName() + * + * Concatenate a three-part domain name (as returned by the above callbacks) into a + * properly-escaped full domain name. Note that callbacks in the above functions ALREADY ESCAPE + * strings where necessary. + * + * Parameters: + * + * fullName: A pointer to a buffer that where the resulting full domain name is to be written. + * The buffer must be kDNSServiceMaxDomainName (1005) bytes in length to + * accommodate the longest legal domain name without buffer overrun. + * + * service: The service name - any dots or backslashes must NOT be escaped. + * May be NULL (to construct a PTR record name, e.g. + * "_ftp._tcp.apple.com."). + * + * regtype: The service type followed by the protocol, separated by a dot + * (e.g. "_ftp._tcp"). + * + * domain: The domain name, e.g. "apple.com.". Literal dots or backslashes, + * if any, must be escaped, e.g. "1st\. Floor.apple.com." + * + * return value: Returns 0 on success, -1 on error. + * + */ + +int DNSSD_API DNSServiceConstructFullName + ( + char *fullName, + const char *service, /* may be NULL */ + const char *regtype, + const char *domain + ); + + +/********************************************************************************************* + * + * TXT Record Construction Functions + * + *********************************************************************************************/ + +/* + * A typical calling sequence for TXT record construction is something like: + * + * Client allocates storage for TXTRecord data (e.g. declare buffer on the stack) + * TXTRecordCreate(); + * TXTRecordSetValue(); + * TXTRecordSetValue(); + * TXTRecordSetValue(); + * ... + * DNSServiceRegister( ... TXTRecordGetLength(), TXTRecordGetBytesPtr() ... ); + * TXTRecordDeallocate(); + * Explicitly deallocate storage for TXTRecord data (if not allocated on the stack) + */ + + +/* TXTRecordRef + * + * Opaque internal data type. + * Note: Represents a DNS-SD TXT record. + */ + +typedef union _TXTRecordRef_t { char PrivateData[16]; char *ForceNaturalAlignment; } TXTRecordRef; + + +/* TXTRecordCreate() + * + * Creates a new empty TXTRecordRef referencing the specified storage. + * + * If the buffer parameter is NULL, or the specified storage size is not + * large enough to hold a key subsequently added using TXTRecordSetValue(), + * then additional memory will be added as needed using malloc(). + * + * On some platforms, when memory is low, malloc() may fail. In this + * case, TXTRecordSetValue() will return kDNSServiceErr_NoMemory, and this + * error condition will need to be handled as appropriate by the caller. + * + * You can avoid the need to handle this error condition if you ensure + * that the storage you initially provide is large enough to hold all + * the key/value pairs that are to be added to the record. + * The caller can precompute the exact length required for all of the + * key/value pairs to be added, or simply provide a fixed-sized buffer + * known in advance to be large enough. + * A no-value (key-only) key requires (1 + key length) bytes. + * A key with empty value requires (1 + key length + 1) bytes. + * A key with non-empty value requires (1 + key length + 1 + value length). + * For most applications, DNS-SD TXT records are generally + * less than 100 bytes, so in most cases a simple fixed-sized + * 256-byte buffer will be more than sufficient. + * Recommended size limits for DNS-SD TXT Records are discussed in + * + * + * Note: When passing parameters to and from these TXT record APIs, + * the key name does not include the '=' character. The '=' character + * is the separator between the key and value in the on-the-wire + * packet format; it is not part of either the key or the value. + * + * txtRecord: A pointer to an uninitialized TXTRecordRef. + * + * bufferLen: The size of the storage provided in the "buffer" parameter. + * + * buffer: Optional caller-supplied storage used to hold the TXTRecord data. + * This storage must remain valid for as long as + * the TXTRecordRef. + */ + +void DNSSD_API TXTRecordCreate + ( + TXTRecordRef *txtRecord, + uint16_t bufferLen, + void *buffer + ); + + +/* TXTRecordDeallocate() + * + * Releases any resources allocated in the course of preparing a TXT Record + * using TXTRecordCreate()/TXTRecordSetValue()/TXTRecordRemoveValue(). + * Ownership of the buffer provided in TXTRecordCreate() returns to the client. + * + * txtRecord: A TXTRecordRef initialized by calling TXTRecordCreate(). + * + */ + +void DNSSD_API TXTRecordDeallocate + ( + TXTRecordRef *txtRecord + ); + + +/* TXTRecordSetValue() + * + * Adds a key (optionally with value) to a TXTRecordRef. If the "key" already + * exists in the TXTRecordRef, then the current value will be replaced with + * the new value. + * Keys may exist in four states with respect to a given TXT record: + * - Absent (key does not appear at all) + * - Present with no value ("key" appears alone) + * - Present with empty value ("key=" appears in TXT record) + * - Present with non-empty value ("key=value" appears in TXT record) + * For more details refer to "Data Syntax for DNS-SD TXT Records" in + * + * + * txtRecord: A TXTRecordRef initialized by calling TXTRecordCreate(). + * + * key: A null-terminated string which only contains printable ASCII + * values (0x20-0x7E), excluding '=' (0x3D). Keys should be + * 8 characters or less (not counting the terminating null). + * + * valueSize: The size of the value. + * + * value: Any binary value. For values that represent + * textual data, UTF-8 is STRONGLY recommended. + * For values that represent textual data, valueSize + * should NOT include the terminating null (if any) + * at the end of the string. + * If NULL, then "key" will be added with no value. + * If non-NULL but valueSize is zero, then "key=" will be + * added with empty value. + * + * return value: Returns kDNSServiceErr_NoError on success. + * Returns kDNSServiceErr_Invalid if the "key" string contains + * illegal characters. + * Returns kDNSServiceErr_NoMemory if adding this key would + * exceed the available storage. + */ + +DNSServiceErrorType DNSSD_API TXTRecordSetValue + ( + TXTRecordRef *txtRecord, + const char *key, + uint8_t valueSize, /* may be zero */ + const void *value /* may be NULL */ + ); + + +/* TXTRecordRemoveValue() + * + * Removes a key from a TXTRecordRef. The "key" must be an + * ASCII string which exists in the TXTRecordRef. + * + * txtRecord: A TXTRecordRef initialized by calling TXTRecordCreate(). + * + * key: A key name which exists in the TXTRecordRef. + * + * return value: Returns kDNSServiceErr_NoError on success. + * Returns kDNSServiceErr_NoSuchKey if the "key" does not + * exist in the TXTRecordRef. + */ + +DNSServiceErrorType DNSSD_API TXTRecordRemoveValue + ( + TXTRecordRef *txtRecord, + const char *key + ); + + +/* TXTRecordGetLength() + * + * Allows you to determine the length of the raw bytes within a TXTRecordRef. + * + * txtRecord: A TXTRecordRef initialized by calling TXTRecordCreate(). + * + * return value: Returns the size of the raw bytes inside a TXTRecordRef + * which you can pass directly to DNSServiceRegister() or + * to DNSServiceUpdateRecord(). + * Returns 0 if the TXTRecordRef is empty. + */ + +uint16_t DNSSD_API TXTRecordGetLength + ( + const TXTRecordRef *txtRecord + ); + + +/* TXTRecordGetBytesPtr() + * + * Allows you to retrieve a pointer to the raw bytes within a TXTRecordRef. + * + * txtRecord: A TXTRecordRef initialized by calling TXTRecordCreate(). + * + * return value: Returns a pointer to the raw bytes inside the TXTRecordRef + * which you can pass directly to DNSServiceRegister() or + * to DNSServiceUpdateRecord(). + */ + +const void * DNSSD_API TXTRecordGetBytesPtr + ( + const TXTRecordRef *txtRecord + ); + + +/********************************************************************************************* + * + * TXT Record Parsing Functions + * + *********************************************************************************************/ + +/* + * A typical calling sequence for TXT record parsing is something like: + * + * Receive TXT record data in DNSServiceResolve() callback + * if (TXTRecordContainsKey(txtLen, txtRecord, "key")) then do something + * val1ptr = TXTRecordGetValuePtr(txtLen, txtRecord, "key1", &len1); + * val2ptr = TXTRecordGetValuePtr(txtLen, txtRecord, "key2", &len2); + * ... + * bcopy(val1ptr, myval1, len1); + * bcopy(val2ptr, myval2, len2); + * ... + * return; + * + * If you wish to retain the values after return from the DNSServiceResolve() + * callback, then you need to copy the data to your own storage using bcopy() + * or similar, as shown in the example above. + * + * If for some reason you need to parse a TXT record you built yourself + * using the TXT record construction functions above, then you can do + * that using TXTRecordGetLength and TXTRecordGetBytesPtr calls: + * TXTRecordGetValue(TXTRecordGetLength(x), TXTRecordGetBytesPtr(x), key, &len); + * + * Most applications only fetch keys they know about from a TXT record and + * ignore the rest. + * However, some debugging tools wish to fetch and display all keys. + * To do that, use the TXTRecordGetCount() and TXTRecordGetItemAtIndex() calls. + */ + +/* TXTRecordContainsKey() + * + * Allows you to determine if a given TXT Record contains a specified key. + * + * txtLen: The size of the received TXT Record. + * + * txtRecord: Pointer to the received TXT Record bytes. + * + * key: A null-terminated ASCII string containing the key name. + * + * return value: Returns 1 if the TXT Record contains the specified key. + * Otherwise, it returns 0. + */ + +int DNSSD_API TXTRecordContainsKey + ( + uint16_t txtLen, + const void *txtRecord, + const char *key + ); + + +/* TXTRecordGetValuePtr() + * + * Allows you to retrieve the value for a given key from a TXT Record. + * + * txtLen: The size of the received TXT Record + * + * txtRecord: Pointer to the received TXT Record bytes. + * + * key: A null-terminated ASCII string containing the key name. + * + * valueLen: On output, will be set to the size of the "value" data. + * + * return value: Returns NULL if the key does not exist in this TXT record, + * or exists with no value (to differentiate between + * these two cases use TXTRecordContainsKey()). + * Returns pointer to location within TXT Record bytes + * if the key exists with empty or non-empty value. + * For empty value, valueLen will be zero. + * For non-empty value, valueLen will be length of value data. + */ + +const void * DNSSD_API TXTRecordGetValuePtr + ( + uint16_t txtLen, + const void *txtRecord, + const char *key, + uint8_t *valueLen + ); + + +/* TXTRecordGetCount() + * + * Returns the number of keys stored in the TXT Record. The count + * can be used with TXTRecordGetItemAtIndex() to iterate through the keys. + * + * txtLen: The size of the received TXT Record. + * + * txtRecord: Pointer to the received TXT Record bytes. + * + * return value: Returns the total number of keys in the TXT Record. + * + */ + +uint16_t DNSSD_API TXTRecordGetCount + ( + uint16_t txtLen, + const void *txtRecord + ); + + +/* TXTRecordGetItemAtIndex() + * + * Allows you to retrieve a key name and value pointer, given an index into + * a TXT Record. Legal index values range from zero to TXTRecordGetCount()-1. + * It's also possible to iterate through keys in a TXT record by simply + * calling TXTRecordGetItemAtIndex() repeatedly, beginning with index zero + * and increasing until TXTRecordGetItemAtIndex() returns kDNSServiceErr_Invalid. + * + * On return: + * For keys with no value, *value is set to NULL and *valueLen is zero. + * For keys with empty value, *value is non-NULL and *valueLen is zero. + * For keys with non-empty value, *value is non-NULL and *valueLen is non-zero. + * + * txtLen: The size of the received TXT Record. + * + * txtRecord: Pointer to the received TXT Record bytes. + * + * index: An index into the TXT Record. + * + * keyBufLen: The size of the string buffer being supplied. + * + * key: A string buffer used to store the key name. + * On return, the buffer contains a null-terminated C string + * giving the key name. DNS-SD TXT keys are usually + * 8 characters or less. To hold the maximum possible + * key name, the buffer should be 256 bytes long. + * + * valueLen: On output, will be set to the size of the "value" data. + * + * value: On output, *value is set to point to location within TXT + * Record bytes that holds the value data. + * + * return value: Returns kDNSServiceErr_NoError on success. + * Returns kDNSServiceErr_NoMemory if keyBufLen is too short. + * Returns kDNSServiceErr_Invalid if index is greater than + * TXTRecordGetCount()-1. + */ + +DNSServiceErrorType DNSSD_API TXTRecordGetItemAtIndex + ( + uint16_t txtLen, + const void *txtRecord, + uint16_t index, + uint16_t keyBufLen, + char *key, + uint8_t *valueLen, + const void **value + ); + +#ifdef __APPLE_API_PRIVATE + +/* + * Mac OS X specific functionality + * 3rd party clients of this API should not depend on future support or availability of this routine + */ + +/* DNSServiceSetDefaultDomainForUser() + * + * Set the default domain for the caller's UID. Future browse and registration + * calls by this user that do not specify an explicit domain will browse and + * register in this wide-area domain in addition to .local. In addition, this + * domain will be returned as a Browse domain via domain enumeration calls. + * + * + * Parameters: + * + * flags: Pass kDNSServiceFlagsAdd to add a domain for a user. Call without + * this flag set to clear a previously added domain. + * + * domain: The domain to be used for the caller's UID. + * + * return value: Returns kDNSServiceErr_NoError on succeses, otherwise returns + * an error code indicating the error that occurred + */ + +DNSServiceErrorType DNSSD_API DNSServiceSetDefaultDomainForUser + ( + DNSServiceFlags flags, + const char *domain + ); + +#endif //__APPLE_API_PRIVATE + +// Some C compiler cleverness. We can make the compiler check certain things for us, +// and report errors at compile-time if anything is wrong. The usual way to do this would +// be to use a run-time "if" statement or the conventional run-time "assert" mechanism, but +// then you don't find out what's wrong until you run the software. This way, if the assertion +// condition is false, the array size is negative, and the complier complains immediately. + +struct DNS_SD_CompileTimeAssertionChecks + { + char assert0[(sizeof(union _TXTRecordRef_t) == 16) ? 1 : -1]; + }; + +#ifdef __cplusplus + } +#endif + +#endif /* _DNS_SD_H */ diff --git a/vere/pkg/vere/foil.c b/vere/pkg/vere/foil.c new file mode 100644 index 0000000..9fae869 --- /dev/null +++ b/vere/pkg/vere/foil.c @@ -0,0 +1,147 @@ +/// @file + +#include "noun.h" +#include "vere.h" + + /* assumptions: + ** all measurements are in chubs (double-words, c3_d, uint64_t). + ** little-endian addressing is ASSUMED. + ** + ** framing: + ** the last two chubs of a frame: + ** + ** { + ** 64-bit frame length + ** { + ** (high 32 bits) mug of frame + ** (low 32 bits) mug of current address + ** } + ** } + ** + ** we can scan for one of these frames with very low probability + ** of a false positive. we always write to and read from the end + ** of a file. a frame position points to its end. + ** + ** protocol: + ** once the callback is called, all results are fully fsynced. + ** all callbacks are optional and can be passed 0. + */ + +/* _foil_fail(): fail with error. +*/ +static void +_foil_fail(const c3_c* why_c, c3_i err_i) +{ + if ( err_i ) { + u3l_log("%s: error: %s", why_c, uv_strerror(err_i)); + u3_assert(0); + } else { + u3l_log("%s: file error", why_c); + } + exit(1); +} + +/* _foil_close(): close file, blockingly. +*/ +static void +_foil_close(uv_file fil_f) +{ + c3_i err_i; + uv_fs_t ruq_u; + + if ( 0 != (err_i = uv_fs_close(u3L, &ruq_u, fil_f, 0)) ) { + _foil_fail("uv_fs_close", err_i); + } +} + +/* _foil_path(): allocate path. +*/ +static c3_c* +_foil_path(u3_dire* dir_u, + const c3_c* nam_c) +{ + c3_w len_w = strlen(dir_u->pax_c); + c3_c* pax_c; + + pax_c = c3_malloc(1 + len_w + 1 + strlen(nam_c)); + strcpy(pax_c, dir_u->pax_c); + pax_c[len_w] = '/'; + strcpy(pax_c + len_w + 1, nam_c); + + return pax_c; +} + +/* u3_foil_folder(): load directory, blockingly. null if nonexistent. +*/ +u3_dire* +u3_foil_folder(const c3_c* pax_c) +{ + u3_dire* dir_u; + uv_fs_t ruq_u; + uv_dirent_t den_u; + c3_i err_i; + + /* open directory, synchronously + */ + { + err_i = uv_fs_scandir(u3L, &ruq_u, pax_c, 0, 0); + + if ( err_i < 0 ) { + if ( UV_ENOENT != err_i ) { + _foil_fail(pax_c, err_i); + return 0; + } + else { + if ( 0 != (err_i = uv_fs_mkdir(u3L, &ruq_u, pax_c, 0700, 0)) ) { + _foil_fail(pax_c, err_i); + return 0; + } + else { + uv_fs_req_cleanup(&ruq_u); + return u3_foil_folder(pax_c); + } + } + } + + dir_u = u3_dire_init(pax_c); + } + + /* create entries for all files and directories + */ + while ( UV_EOF != uv_fs_scandir_next(&ruq_u, &den_u) ) { + if ( UV_DIRENT_FILE == den_u.type ) { + u3_dent* det_u = u3_dent_init(den_u.name); + det_u->nex_u = dir_u->all_u; + dir_u->all_u = det_u; + } else if ( UV_DIRENT_DIR == den_u.type ) { + u3_dent* det_u = u3_dent_init(den_u.name); + det_u->nex_u = dir_u->dil_u; + dir_u->dil_u = det_u; + } + } + + /* clean up request + */ + { + uv_fs_req_cleanup(&ruq_u); + } + + /* open directory file for reading, to fsync + */ + { + if ( 0 > (err_i = uv_fs_open(u3L, + &ruq_u, + pax_c, + O_RDONLY, + 0600, + 0)) ) + { + _foil_fail("open directory", err_i); + return 0; + } + dir_u->fil_u = ruq_u.result; + + uv_fs_req_cleanup(&ruq_u); + } + return dir_u; +} diff --git a/vere/pkg/vere/hamt_test.c b/vere/pkg/vere/hamt_test.c new file mode 100644 index 0000000..89c8c6c --- /dev/null +++ b/vere/pkg/vere/hamt_test.c @@ -0,0 +1,136 @@ +/// @file + +#include "noun.h" +#include "vere.h" +#include "ivory.h" +#include "ur.h" +// #include "pact.h" + + +// defined in noun/hashtable.c +c3_w _ch_skip_slot(c3_w mug_w, c3_w lef_w); + +/* _setup(): prepare for tests. +*/ +static void +_setup(void) +{ + c3_d len_d = u3_Ivory_pill_len; + c3_y* byt_y = u3_Ivory_pill; + u3_cue_xeno* sil_u; + u3_weak pil; + + u3C.wag_w |= u3o_hashless; + u3m_boot_lite(1 << 26); + sil_u = u3s_cue_xeno_init_with(ur_fib27, ur_fib28); + if ( u3_none == (pil = u3s_cue_xeno_with(sil_u, len_d, byt_y)) ) { + printf("*** fail _setup 1\n"); + exit(1); + } + u3s_cue_xeno_done(sil_u); + if ( c3n == u3v_boot_lite(pil) ) { + printf("*** fail _setup 2\n"); + exit(1); + } +} + + +/* main(): run all test cases. +*/ +int +main(int argc, char* argv[]) +{ + _setup(); + + // if ( !_test_safe() ) { + // fprintf(stderr, "test unix: failed\r\n"); + // exit(1); + // } + + u3p(u3h_root) pit_p = u3h_new_cache(1000000); + + u3_noun init = u3nc(u3i_string("mess"), + u3nc(48, + u3nc(c3__pact, + u3nc(13105, + u3nc(c3__etch, + u3nc(c3__init, + u3nc(u3i_string("chum"), + u3nc(49, + u3nc(u3i_string("~nec"), + u3nc(49, + u3nc(u3i_string("0voctt.mbs2p.q9qaf.b17em.tbsit.49vat.7ggc2.8avm6.oe870.fqhkt.dltit.u54hf.lse3l.au3pt"), 0) + ) + ) + )))))))); + u3h_put(pit_p, init, u3nc(c3y, u3_nul)); + u3z(init); + + for ( c3_w fra_w = 0; fra_w < 100000; fra_w++ ) { + u3_noun data = u3nc(u3i_string("mess"), + u3nc(48, + u3nc(c3__pact, + u3nc(13105, + u3nc(c3__etch, + u3nc(c3__data, + u3nc(u3dc("scot", c3__ud, fra_w), + u3nc(u3i_string("chum"), + u3nc(49, + u3nc(u3i_string("~nec"), + u3nc(49, + u3nc(u3i_string("0voctt.mbs2p.q9qaf.b17em.tbsit.49vat.7ggc2.8avm6.oe870.fqhkt.dltit.u54hf.lse3l.au3pt"), 0) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ); + + u3h_put(pit_p, data, u3nc(c3y, u3_nul)); + u3z(data); + } + + for ( c3_w fra_w = 0; fra_w < 100000; fra_w++ ) { + u3_noun data = u3nc(u3i_string("mess"), + u3nc(48, + u3nc(c3__pact, + u3nc(13105, + u3nc(c3__etch, + u3nc(c3__data, + u3nc(u3dc("scot", c3__ud, fra_w), + u3nc(u3i_string("chum"), + u3nc(49, + u3nc(u3i_string("~nec"), + u3nc(49, + u3nc(u3i_string("0voctt.mbs2p.q9qaf.b17em.tbsit.49vat.7ggc2.8avm6.oe870.fqhkt.dltit.u54hf.lse3l.au3pt"), 0) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ) + ); + u3_weak res = u3h_git(pit_p, data); + if (res == u3_none) { + fprintf(stderr, "key gone from hamt %u: not ok\r\n", fra_w); + exit(1); + } + u3z(data); + } + + u3h_free(pit_p); + + u3m_grab(u3_none); + + fprintf(stderr, "test unix: ok\r\n"); + return 0; +} diff --git a/vere/pkg/vere/io/ames.c b/vere/pkg/vere/io/ames.c new file mode 100644 index 0000000..c9f035b --- /dev/null +++ b/vere/pkg/vere/io/ames.c @@ -0,0 +1,2956 @@ +/// @file + +#include "vere.h" +#include "mdns.h" +#include "io/ames/stun.h" + +#include "noun.h" +#include "ur/ur.h" + +#include "zlib.h" +#include "natpmp.h" + +#include "ent/ent.h" + +#include + +#define FINE_PAGE 4096 // packets per page +#define FINE_FRAG 1024 // bytes per fragment packet +#define FINE_PATH_MAX 384 // longest allowed scry path +#define HEAD_SIZE 4 // header size in bytes + +// a hack to work around the inability to delete from a hashtable +// +#define FINE_PEND 1 // scry cache sentinel value: "pending" +#define FINE_DEAD 2 // scry cache sentinel value: "dead" + +#define QUEUE_MAX 30 // max number of packets in queue + +#define _CZAR_GONE UINT32_MAX + +typedef enum u3_stun_state { + STUN_OFF = 0, + STUN_TRYING = 1, + STUN_KEEPALIVE = 2, +} u3_stun_state; + +/* u3_fine: fine networking +*/ + typedef struct _u3_fine { + c3_y ver_y; // fine protocol + u3p(u3h_root) sac_p; // scry cache hashtable + struct _u3_ames* sam_u; // ames backpointer + } u3_fine; + +/* u3_ames: ames networking. +*/ + typedef struct _u3_ames { // packet network state + u3_auto car_u; // ames driver + u3_fine fin_s; // fine networking + u3_pier* pir_u; // pier + union { // uv udp handle + uv_udp_t wax_u; // + uv_handle_t had_u; // + }; // + c3_l sev_l; // instance number + ur_cue_test_t* tes_u; // cue-test handle + u3_cue_xeno* sil_u; // cue handle + c3_y ver_y; // protocol version + u3p(u3h_root) lax_p; // lane scry cache + struct _u3_panc* pan_u; // outbound packet queue, backward + struct { // + c3_c dom_c[251]; // domain + c3_o dom_o; // have domain + uv_timer_t tim_u; // resolve timer + c3_s pen_s; // pending + c3_w pip_w[256]; // ipv4 + c3_w log_w[256 >> 5]; // log error + } zar_u; // + struct { // stun client state: + u3_stun_state sat_y; // formal state + c3_y tid_y[12]; // last transaction id + c3_y dad_y; // sponsoring galaxy + u3_lane lan_u; // sponsoring galaxy IP and port + uv_timer_t tim_u; // keepalive timer handle + struct timeval sar_u; // date we started trying to send + u3_lane sef_u; // our lane, if we know it + c3_o wok_o; // STUN worked, set on first success + } sun_u; // + struct { + natpmp_t req_u; // libnatpmp struct for mapping request + uv_poll_t pol_u; // handle waits on libnatpmp socket + uv_timer_t tim_u; // every two hours if mapping succeeds + } nat_u; // libnatpmp stuff for port forwarding + c3_o nal_o; // lane cache backcompat flag + struct { // config: + c3_o see_o; // can scry + c3_o fit_o; // filtering active + } fig_u; // + struct { // stats: + c3_d dop_d; // drop count + c3_d fod_d; // forwards dropped count + c3_d foq_d; // forward queue size + c3_d fow_d; // forwarded count + c3_o for_o; // forwarding enabled + c3_d hed_d; // failed to read header + c3_d vet_d; // version mismatches filtered + c3_d mut_d; // invalid mugs filtered + c3_d pre_d; // failed to read prelude + c3_d wal_d; // failed to read wail + c3_d wap_d; // failed to read wail path + c3_d fal_d; // crash count + c3_d vil_d; // encryption failures + c3_d saw_d; // successive scry failures + } sat_u; // + } u3_ames; + +/* u3_head: ames or fine packet header +*/ + typedef struct _u3_head { + c3_o req_o; // is request (fine only) + c3_o sim_o; // is ames protocol? + c3_y ver_y; // protocol version + c3_y sac_y; // sender class + c3_y rac_y; // receiver class + c3_l mug_l; // truncated mug hash of u3_body + c3_o rel_o; // relayed? + } u3_head; + +/* u3_prel: ames/fine packet prelude +*/ + typedef struct _u3_prel { + c3_y sic_y; // sender life tick + c3_y ric_y; // receiver life tick + c3_d sen_d[2]; // sender/requester + c3_d rec_d[2]; // receiver/responder + c3_d rog_d; // origin lane (optional) + } u3_prel; + +/* u3_peep: unsigned fine request body +*/ + typedef struct _u3_peep { + c3_w fra_w; // fragment number + c3_s len_s; // path length + c3_c* pat_c; // path as ascii + } u3_peep; + +/* u3_wail: fine request body +*/ + typedef struct _u3_wail { + c3_y tag_y; // tag (always 0, unsigned) + u3_peep pep_u; // request payload + } u3_wail; + +/* u3_meow: response portion of purr packet + * + * siz_s: number of bytes in the packet +*/ + typedef struct _u3_meow { + c3_y sig_y[64]; // host signature + c3_w num_w; // number of fragments + c3_s siz_s; // datum size (actual) + c3_y* dat_y; // datum (0 if null response) + } u3_meow; + +/* u3_purr: fine packet response +*/ + typedef struct _u3_purr { + u3_peep pep_u; // fragment number + path + u3_meow mew_u; // fragment + } u3_purr; + +/* u3_body: ames packet body +*/ + typedef struct _u3_body { + c3_s con_s; // content size + c3_y* con_y; // content + c3_l mug_l; // checksum + } u3_body; + +/* u3_ptag: packet-type tag +*/ + typedef enum _u3_ptag { + PACT_AMES = 1, // ames packet + PACT_WAIL = 2, // fine request packet + PACT_PURR = 3 // fine response packet + } u3_ptag; + +/* u3_pact: ames packet + * + * Filled in piece by piece as we parse or construct it. +*/ + typedef struct _u3_pact { + uv_udp_send_t snd_u; // udp send request + struct _u3_ames* sam_u; // ames backpointer + c3_w len_w; // length in bytes + c3_y* hun_y; // packet buffer + u3_lane lan_u; // destination/origin lane + u3_head hed_u; // head of packet + u3_prel pre_u; // packet prelude + u3_ptag typ_y; // packet type tag + union { + u3_body bod_u; // tagged by PACT_AMES + u3_wail wal_u; // tagged by PACT_WAIL + u3_purr pur_u; // tagged by PACT_PURR + }; + } u3_pact; + +/* u3_panc: packet queue +*/ + typedef struct _u3_panc { + struct _u3_panc* pre_u; // previous packet + struct _u3_panc* nex_u; // next packet + u3_pact* pac_u; // this packet + c3_o for_o; // are we forwarding this? + } u3_panc; + +#define _str_typ(typ_y) ( \ + ( PACT_AMES == typ_y ) ? "ames" \ + : ( PACT_WAIL == typ_y ) ? "wail" \ + : ( PACT_PURR == typ_y ) ? "purr" : "????") + +const c3_c* PATH_PARSER = + ";~(pfix fas (most fas (cook crip (star ;~(less fas prn)))))"; + +static c3_o net_o = c3y; // online heuristic to limit verbosity + +/* _ames_alloc(): libuv buffer allocator. +*/ +static void +_ames_alloc(uv_handle_t* had_u, + size_t len_i, + uv_buf_t* buf + ) +{ + // we allocate 2K, which gives us plenty of space + // for a single ames packet (max size 1060 bytes) + // + void* ptr_v = c3_malloc(2048); + *buf = uv_buf_init(ptr_v, 2048); +} + +static void +_ames_pact_free(u3_pact* pac_u) +{ + switch ( pac_u->typ_y ) { + case PACT_AMES: + c3_free(pac_u->bod_u.con_y); + break; + + case PACT_WAIL: + c3_free(pac_u->wal_u.pep_u.pat_c); + break; + + case PACT_PURR: + c3_free(pac_u->pur_u.pep_u.pat_c); + c3_free(pac_u->pur_u.mew_u.dat_y); + break; + + default: + u3l_log("ames_pact_free: bad packet type %s", + _str_typ(pac_u->typ_y)); + u3_pier_bail(u3_king_stub()); + } + + c3_free(pac_u->hun_y); + c3_free(pac_u); +} + +/* _ames_panc_free(): remove references, lose refcounts and free struct +*/ +static void +_ames_panc_free(u3_panc* pan_u) +{ + if ( c3y == pan_u->for_o ) { + if ( 0 != pan_u->nex_u ) { + pan_u->nex_u->pre_u = pan_u->pre_u; + } + + if ( 0 != pan_u->pre_u ) { + pan_u->pre_u->nex_u = pan_u->nex_u; + } + else { + u3_assert(pan_u == pan_u->pac_u->sam_u->pan_u); + pan_u->pac_u->sam_u->pan_u = pan_u->nex_u; + } + } + _ames_pact_free(pan_u->pac_u); + c3_free(pan_u); +} + +static inline u3_ptag +_ames_pact_typ(u3_head* hed_u) +{ + return (( c3y == hed_u->sim_o ) ? PACT_AMES : + ( c3y == hed_u->req_o ) ? PACT_WAIL : PACT_PURR); +} + +static inline c3_y +_ames_origin_size(u3_head* hed_u) +{ + return ( c3y == hed_u->rel_o ) ? 6 : 0; // origin is 6 bytes +} + +static c3_y +_ames_prel_size(u3_head* hed_u) +{ + c3_y lif_y = 1; + c3_y sen_y = 2 << hed_u->sac_y; + c3_y rec_y = 2 << hed_u->rac_y; + c3_y rog_y = _ames_origin_size(hed_u); + return lif_y + sen_y + rec_y + rog_y; +} + +static inline c3_s +_ames_body_size(u3_body* bod_u) +{ + return bod_u->con_s; +} + +static inline c3_s +_fine_peep_size(u3_peep* pep_u) +{ + return ( + sizeof(pep_u->fra_w) + + sizeof(pep_u->len_s) + + pep_u->len_s); +} + +static inline c3_y +_fine_bytes_word(c3_w num_w) +{ + return (c3_bits_word(num_w) + 7) >> 3; +} + +static inline c3_s +_fine_meow_size(u3_meow* mew_u) +{ + c3_y cur_y = 0; + if (mew_u->siz_s != 0) { + cur_y = sizeof(mew_u->num_w); + } + else { + cur_y = _fine_bytes_word(mew_u->num_w); + } + return ( + sizeof(mew_u->sig_y) + + cur_y + + mew_u->siz_s); +} + +static c3_s +_fine_purr_size(u3_purr* pur_u) +{ + c3_s pur_s = _fine_peep_size(&pur_u->pep_u); + c3_s mew_s = _fine_meow_size(&pur_u->mew_u); + return pur_s + mew_s; +} + +static c3_o +_ames_check_mug(u3_pact* pac_u) +{ + c3_w rog_w = HEAD_SIZE + _ames_origin_size(&pac_u->hed_u); + c3_l mug_l = u3r_mug_bytes(pac_u->hun_y + rog_w, + pac_u->len_w - rog_w); + // u3l_log("len_w: %u, rog_w: %u, bod_l 0x%05x, hed_l 0x%05x", + // pac_u->len_w, rog_w, + // (mug_l & 0xfffff), + // (pac_u->hed_u.mug_l & 0xfffff)); + return ( + ((mug_l & 0xfffff) == (pac_u->hed_u.mug_l & 0xfffff)) + ? c3y : c3n); +} + +/* _ames_ship_to_chubs(): pack [len_y] bytes into c3_d[2] +*/ +static inline void +_ames_ship_to_chubs(c3_d sip_d[2], c3_y len_y, c3_y* buf_y) +{ + c3_y sip_y[16] = {0}; + memcpy(sip_y, buf_y, c3_min(16, len_y)); + + sip_d[0] = c3_sift_chub(sip_y); + sip_d[1] = c3_sift_chub(sip_y + 8); +} + +/* _ames_ship_of_chubs(): unpack c3_d[2] into [len_y] bytes. +*/ +static inline void +_ames_ship_of_chubs(c3_d sip_d[2], c3_y len_y, c3_y* buf_y) +{ + c3_y sip_y[16] = {0}; + + c3_etch_chub(sip_y, sip_d[0]); + c3_etch_chub(sip_y + 8, sip_d[1]); + + memcpy(buf_y, sip_y, c3_min(16, len_y)); +} + +/* _ames_sift_head(): parse packet header. +*/ +static void +_ames_sift_head(u3_head* hed_u, c3_y buf_y[4]) +{ + c3_w hed_w = c3_sift_word(buf_y); + + // first two bits are reserved + // + hed_u->req_o = (hed_w >> 2) & 0x1; + hed_u->sim_o = (hed_w >> 3) & 0x1; + hed_u->ver_y = (hed_w >> 4) & 0x7; + hed_u->sac_y = (hed_w >> 7) & 0x3; + hed_u->rac_y = (hed_w >> 9) & 0x3; + hed_u->mug_l = (hed_w >> 11) & 0xfffff; // 20 bits + hed_u->rel_o = (hed_w >> 31) & 0x1; +} + +/* _ames_sift_prel(): parse prelude, +*/ +static void +_ames_sift_prel(u3_head* hed_u, + u3_prel* pre_u, + c3_y* buf_y) +{ + c3_y sen_y, rec_y; + c3_w cur_w = 0; + + // if packet is relayed, parse 6-byte origin field + // + if ( c3y == hed_u->rel_o ) { + c3_y rag_y[8] = {0}; + memcpy(rag_y, buf_y + cur_w, 6); + pre_u->rog_d = c3_sift_chub(rag_y); + cur_w += 6; + } + else { + pre_u->rog_d = 0; + } + + // parse life ticks + // + pre_u->sic_y = buf_y[cur_w] & 0xf; + pre_u->ric_y = (buf_y[cur_w] >> 4) & 0xf; + cur_w++; + + // parse sender ship + // + sen_y = 2 << hed_u->sac_y; + _ames_ship_to_chubs(pre_u->sen_d, sen_y, buf_y + cur_w); + cur_w += sen_y; + + // parse receiver ship + // + rec_y = 2 << hed_u->rac_y; + _ames_ship_to_chubs(pre_u->rec_d, rec_y, buf_y + cur_w); + cur_w += rec_y; +} + +/* _fine_sift_wail(): parse request body, returning success +*/ +static c3_o +_fine_sift_wail(u3_pact* pac_u, c3_w cur_w) +{ + c3_w fra_w = sizeof(pac_u->wal_u.pep_u.fra_w); + c3_w len_w = sizeof(pac_u->wal_u.pep_u.len_s); + c3_w exp_w = fra_w + len_w; + c3_s len_s; + + if ( cur_w + exp_w > pac_u->len_w ) { + u3l_log("fine: wail not big enough"); + return c3n; + } + + // parse tag + // + pac_u->wal_u.tag_y = *(pac_u->hun_y + cur_w); + cur_w++; + + if ( 0 != pac_u->wal_u.tag_y ) { + u3l_log("fine: wail tag unknown %u", pac_u->wal_u.tag_y); + return c3n; + } + + // parse fragment number + // + pac_u->wal_u.pep_u.fra_w = c3_sift_word(pac_u->hun_y + cur_w); + cur_w += fra_w; + + // parse path length field + // + len_s = c3_sift_short(pac_u->hun_y + cur_w); + pac_u->wal_u.pep_u.len_s = len_s; + cur_w += len_w; + + if ( len_s > FINE_PATH_MAX ) { + u3l_log("ames wail len: %u, max %u", len_s, FINE_PATH_MAX); + return c3n; + } + + { + c3_w tot_w = cur_w + len_s; + if ( tot_w != pac_u->len_w ) { + u3l_log("fine: wail expected total len: %u, actual %u", + tot_w, pac_u->len_w); + return c3n; + } + } + + // parse request path + // + pac_u->wal_u.pep_u.pat_c = c3_calloc(len_s + 1); + memcpy(pac_u->wal_u.pep_u.pat_c, pac_u->hun_y + cur_w, len_s); + pac_u->wal_u.pep_u.pat_c[len_s] = '\0'; + return c3y; +} + +/* _fine_sift_meow(): parse signed scry response fragment +*/ +static c3_o +_fine_sift_meow(u3_meow* mew_u, u3_noun mew) +{ + c3_o ret_o; + c3_w len_w = u3r_met(3, mew); + c3_w sig_w = sizeof(mew_u->sig_y); + c3_w num_w = sizeof(mew_u->num_w); + c3_w min_w = sig_w + 1; + c3_w max_w = sig_w + num_w + FINE_FRAG; + + if ( (len_w < min_w) || (len_w > max_w) ) { + u3l_log("sift_meow len_w %u (min_w %u, max_w %u)", len_w, min_w, max_w); + ret_o = c3n; + } + else { + c3_w cur_w = 0; + + // parse signature + // + u3r_bytes(cur_w, sig_w, mew_u->sig_y, mew); + cur_w += sig_w; + + // parse number of fragments + // + u3r_bytes(cur_w, num_w, (c3_y*)&mew_u->num_w, mew); + num_w = c3_min(num_w, (len_w - cur_w)); + cur_w += num_w; + u3_assert(len_w >= cur_w); + + // parse data payload + // + mew_u->siz_s = len_w - cur_w; + + if ( !mew_u->siz_s ) { + mew_u->dat_y = 0; + } + else { + mew_u->dat_y = c3_calloc(mew_u->siz_s); + u3r_bytes(cur_w, mew_u->siz_s, mew_u->dat_y, mew); + } + + ret_o = c3y; + } + + u3z(mew); + return ret_o; +} + +/* _ames_etch_head(): serialize packet header. +*/ +static void +_ames_etch_head(u3_head* hed_u, c3_y buf_y[4]) +{ + // only version 0 currently recognized + // + u3_assert( 0 == hed_u->ver_y ); // XX remove after testing + + c3_w hed_w = ((hed_u->req_o & 0x1) << 2) + ^ ((hed_u->sim_o & 0x1) << 3) + ^ ((hed_u->ver_y & 0x7) << 4) + ^ ((hed_u->sac_y & 0x3) << 7) + ^ ((hed_u->rac_y & 0x3) << 9) + ^ ((hed_u->mug_l & 0xfffff) << 11) + ^ ((hed_u->rel_o & 0x1) << 31); + + c3_etch_word(buf_y, hed_w); +} + +static void +_ames_etch_origin(c3_d rog_d, c3_y* buf_y) +{ + c3_y rag_y[8] = {0}; + c3_etch_chub(rag_y, rog_d); + memcpy(buf_y, rag_y, 6); +} + +/* _ames_etch_prel(): serialize packet prelude +*/ +static void +_ames_etch_prel(u3_head* hed_u, u3_prel* pre_u, c3_y* buf_y) +{ + c3_w cur_w = 0; + + // if packet is relayed, write the 6-byte origin field + // + if ( c3y == hed_u->rel_o ) { + _ames_etch_origin(pre_u->rog_d, buf_y + cur_w); + cur_w += 6; + } + + // write life ticks + // + buf_y[cur_w] = (pre_u->sic_y & 0xf) ^ ((pre_u->ric_y & 0xf) << 4); + cur_w++; + + // write sender ship + // + c3_y sen_y = 2 << hed_u->sac_y; + _ames_ship_of_chubs(pre_u->sen_d, sen_y, buf_y + cur_w); + cur_w += sen_y; + + // write receiver ship + // + c3_y rec_y = 2 << hed_u->rac_y; + _ames_ship_of_chubs(pre_u->rec_d, rec_y, buf_y + cur_w); + cur_w += rec_y; +} + +/* _fine_etch_peep(): serialize unsigned scry request +*/ +static void +_fine_etch_peep(u3_peep* pep_u, c3_y* buf_y) +{ + c3_w cur_w = 0; + + // write fragment number + // + c3_etch_word(buf_y + cur_w, pep_u->fra_w); + cur_w += sizeof(pep_u->fra_w); + + // write path length + // + c3_etch_short(buf_y + cur_w, pep_u->len_s); + cur_w += sizeof(pep_u->len_s); + + // write request path + // + memcpy(buf_y + cur_w, pep_u->pat_c, pep_u->len_s); +} + +/* fine_etch_meow(): serialize signed scry response fragment +*/ +static void +_fine_etch_meow(u3_meow* mew_u, c3_y* buf_y) +{ + c3_w cur_w = 0; + + // write signature + // + c3_w sig_w = sizeof(mew_u->sig_y); + memcpy(buf_y + cur_w, mew_u->sig_y, sig_w); + cur_w += sig_w; + + { + c3_y num_y[4]; + c3_y len_y = _fine_bytes_word(mew_u->num_w); + + // write number of fragments + // + c3_etch_word(num_y, mew_u->num_w); + memcpy(buf_y + cur_w, num_y, len_y); + + if (mew_u->siz_s != 0) { + cur_w += sizeof(mew_u->num_w); + } + else { + cur_w += len_y; + } + } + + // write response fragment data + // + memcpy(buf_y + cur_w, mew_u->dat_y, mew_u->siz_s); +} + +/* _fine_etch_purr(): serialise response packet + */ +static void +_fine_etch_purr(u3_purr* pur_u, c3_y* buf_y) +{ + c3_w cur_w = 0; + + // write unsigned scry request + // + _fine_etch_peep(&pur_u->pep_u, buf_y + cur_w); + cur_w += _fine_peep_size(&pur_u->pep_u); + + // write signed response fragment + _fine_etch_meow(&pur_u->mew_u, buf_y + cur_w); +} + +/* _fine_etch_response(): serialize scry response packet +*/ +static void +_fine_etch_response(u3_pact* pac_u) +{ + c3_w pre_w, pur_w, cur_w, rog_w; + + pre_w = _ames_prel_size(&pac_u->hed_u); + pur_w = _fine_purr_size(&pac_u->pur_u); + pac_u->len_w = HEAD_SIZE + pre_w + pur_w; + pac_u->hun_y = c3_calloc(pac_u->len_w); + + // skip the header until we know what the mug should be + // + cur_w = HEAD_SIZE; + + // write prelude + // + _ames_etch_prel(&pac_u->hed_u, &pac_u->pre_u, pac_u->hun_y + cur_w); + cur_w += pre_w; + + // write body + // + _fine_etch_purr(&pac_u->pur_u, pac_u->hun_y + cur_w); + + // calculate mug and write header + // + rog_w = HEAD_SIZE + _ames_origin_size(&pac_u->hed_u); + pac_u->hed_u.mug_l = u3r_mug_bytes(pac_u->hun_y + rog_w, + pac_u->len_w - rog_w); + _ames_etch_head(&pac_u->hed_u, pac_u->hun_y); + + u3_assert( c3y == _ames_check_mug(pac_u) ); +} + +/* _lane_scry_path(): format scry path for retrieving a lane +*/ +static inline u3_noun +_lane_scry_path(u3_noun who) +{ + return u3nq(u3i_string("peers"), + u3dc("scot", 'p', who), + u3i_string("forward-lane"), + u3_nul); +} + +/* _ames_send_cb(): send callback. +*/ +static void +_ames_send_cb(uv_udp_send_t* req_u, c3_i sas_i) +{ + u3_pact* pac_u = (u3_pact*)req_u; + u3_ames* sam_u = pac_u->sam_u; + + if ( !sas_i ) { + net_o = c3y; + } + else if ( c3y == net_o ) { + u3l_log("ames: send fail: %s", uv_strerror(sas_i)); + net_o = c3n; + } + + _ames_pact_free(pac_u); +} + +/* _ames_send(): send buffer to address on port. +*/ +static void +_ames_send(u3_pact* pac_u) +{ + u3_ames* sam_u = pac_u->sam_u; + + if ( !pac_u->hun_y + || !sam_u + || !pac_u->len_w + || !pac_u->lan_u.por_s ) + { + u3l_log("ames: _ames_send null"); + _ames_pact_free(pac_u); + } + else { + struct sockaddr_in add_u; + + memset(&add_u, 0, sizeof(add_u)); + add_u.sin_family = AF_INET; + add_u.sin_addr.s_addr = htonl(pac_u->lan_u.pip_w); + add_u.sin_port = htons(pac_u->lan_u.por_s); + + { + uv_buf_t buf_u = uv_buf_init((c3_c*)pac_u->hun_y, pac_u->len_w); + c3_i sas_i = uv_udp_send(&pac_u->snd_u, + &u3_Host.wax_u, + &buf_u, 1, + (const struct sockaddr*)&add_u, + _ames_send_cb); + + if ( sas_i ) { + _ames_send_cb(&pac_u->snd_u, sas_i); + } + } + } +} + +/* u3_ames_decode_lane(): deserialize noun to lane; 0.0.0.0:0 if invalid +*/ +u3_lane +u3_ames_decode_lane(u3_atom lan) { + u3_lane lan_u; + c3_d lan_d; + + if ( c3n == u3r_safe_chub(lan, &lan_d) || (lan_d >> 48) != 0 ) { + return (u3_lane){0, 0}; + } + + u3z(lan); + + lan_u.pip_w = (c3_w)lan_d; + lan_u.por_s = (c3_s)(lan_d >> 32); + return lan_u; +} + +/* u3_ames_lane_to_chub(): serialize lane to double-word +*/ +c3_d +u3_ames_lane_to_chub(u3_lane lan) { + return ((c3_d)lan.por_s << 32) ^ (c3_d)lan.pip_w; +} + +/* u3_ames_encode_lane(): serialize lane to noun +*/ +u3_atom +u3_ames_encode_lane(u3_lane lan) { + // [%| p=@] + // [%& p=@pC] + return u3i_chub(u3_ames_lane_to_chub(lan)); +} + +/* _ames_lane_into_cache(): put las for who into cache, including timestamp +*/ +static void +_ames_lane_into_cache(u3p(u3h_root) lax_p, u3_noun who, u3_noun las) { + struct timeval tim_tv; + gettimeofday(&tim_tv, 0); + u3_noun now = u3_time_in_tv(&tim_tv); + u3_noun val = u3nc(las, now); + u3h_put(lax_p, who, val); + u3z(who); +} + +/* _ames_lane_from_cache(): retrieve lane for who from cache, if any +*/ +static u3_weak +_ames_lane_from_cache(u3p(u3h_root) lax_p, u3_noun who, c3_o nal_o) { + u3_weak lac = u3h_git(lax_p, who); + + if ( u3_none == lac ) { + u3z(who); + return lac; + } + + if ( nal_o == c3y ) { + lac = u3k(u3h(lac)); + } + + else { + struct timeval tim_tv; + gettimeofday(&tim_tv, 0); + u3_noun now = u3_time_in_tv(&tim_tv); + u3_noun den = u3t(lac); + + // consider entries older than 2 minutes stale, ignore them + // + if ( 120000 > u3_time_gap_ms(u3k(den), now) ) { + lac = u3k(u3h(lac)); + } else { + lac = u3_none; + } + } + + u3z(who); + return lac; +} + +static u3_noun +_ames_pact_to_noun(u3_pact* pac_u) +{ + u3_noun pac = u3i_bytes(pac_u->len_w, pac_u->hun_y); + return pac; +} + +/* _ames_czar_port(): udp port for galaxy. +*/ +static c3_s +_ames_czar_port(c3_y imp_y) +{ + if ( c3n == u3_Host.ops_u.net ) { + return 31337 + imp_y; + } + else { + return 13337 + imp_y; + } +} + +/* _ames_czar_str: galaxy name as c3_c[3] +*/ +static void +_ames_czar_str(c3_c zar_c[3], c3_y imp_y) +{ + u3_po_to_suffix(imp_y, (c3_y*)zar_c, (c3_y*)zar_c + 1, (c3_y*)zar_c + 2); +} + +/* _ames_etch_czar: galaxy fqdn +*/ +static c3_i +_ames_etch_czar(c3_c dns_c[256], const c3_c* dom_c, c3_y imp_y) +{ + c3_c* bas_c = dns_c; + c3_w len_w = strlen(dom_c); + + // name 3, '.' 2, trailing null + // + if ( 250 <= len_w ) { + return -1; + } + + _ames_czar_str(dns_c, imp_y); + dns_c += 3; + *dns_c++ = '.'; + + memcpy(dns_c, dom_c, len_w); + dns_c += len_w; + *dns_c++ = '.'; + + memset(dns_c, 0, 256 - (dns_c - bas_c)); + + return 0; +} + +/* _ames_czar_lane: retrieve lane for galaxy if stored. +*/ +static c3_o +_ames_czar_lane(u3_ames* sam_u, c3_y imp_y, u3_lane* lan_u) +{ + c3_s por_s = _ames_czar_port(imp_y); + c3_w pip_w; + + if ( c3n == u3_Host.ops_u.net ) { + pip_w = 0x7f000001; + } + else { + pip_w = sam_u->zar_u.pip_w[imp_y]; + + if ( !pip_w ) { + if ( u3C.wag_w & u3o_verbose ) { + u3l_log("ames: czar not resolved"); + } + return c3n; + } + else if ( _CZAR_GONE == pip_w ) { + // print only on first send failure + // + c3_w blk_w = imp_y >> 5; + c3_w bit_w = 1 << (imp_y & 31); + + if ( !(sam_u->zar_u.log_w[blk_w] & bit_w) ) { + c3_c dns_c[256]; + u3_assert ( !_ames_etch_czar(dns_c, sam_u->zar_u.dom_c, imp_y) ); + u3l_log("ames: czar at %s: not found (b)", dns_c); + sam_u->zar_u.log_w[blk_w] |= bit_w; + } + + return c3n; + } + } + + lan_u->por_s = por_s; + lan_u->pip_w = pip_w; + return c3y; +} + +/* _fine_get_cache(): get packet list or status from cache. RETAIN + */ +static u3_weak +_fine_get_cache(u3_ames* sam_u, u3_noun pax, c3_w fra_w) +{ + u3_noun key = u3nc(u3k(pax), u3i_word(fra_w)); + u3_weak pro = u3h_git(sam_u->fin_s.sac_p, key); + u3z(key); + return pro; +} + +/* _fine_put_cache(): put packet list or status into cache. RETAIN. + */ +static void +_fine_put_cache(u3_ames* sam_u, u3_noun pax, c3_w lop_w, u3_noun lis) +{ + if ( (FINE_PEND == lis) || (FINE_DEAD == lis) ) { + u3_noun key = u3nc(u3k(pax), u3i_word(lop_w)); + u3h_put(sam_u->fin_s.sac_p, key, lis); + u3z(key); + } + else { + while ( u3_nul != lis ) { + u3_noun key = u3nc(u3k(pax), u3i_word(lop_w)); + u3h_put(sam_u->fin_s.sac_p, key, u3k(u3h(lis))); + u3z(key); + + lis = u3t(lis); + lop_w++; + } + } +} + +typedef struct _stun_send { + uv_udp_send_t req_u; // uv udp request handle + c3_y hun_y[0]; // buffer +} _stun_send; + +/* _stun_send_cb(): stun udp send callback. + */ +static void +_stun_send_cb(uv_udp_send_t *rep_u, c3_i sas_i) +{ + _stun_send* snd_u = (_stun_send*)rep_u; + + if ( !sas_i ) { + net_o = c3y; + } + else if ( c3y == net_o ) { + u3l_log("stun: send response fail: %s", uv_strerror(sas_i)); + net_o = c3n; + } + + c3_free(snd_u); +} + +/* _stun_on_request(): hear stun request, send response. + */ +static void +_stun_on_request(u3_ames* sam_u, + const c3_y* req_y, + const struct sockaddr* adr_u) +{ + _stun_send* snd_u = c3_malloc(sizeof(*snd_u) + 40); + + struct sockaddr_in* add_u = (struct sockaddr_in*)adr_u; + u3_lane lan_u = { + .por_s = ntohs(add_u->sin_port), + .pip_w = ntohl(add_u->sin_addr.s_addr) + }; + u3_stun_make_response(req_y, &lan_u, snd_u->hun_y); + + uv_buf_t buf_u = uv_buf_init((c3_c*)snd_u->hun_y, 40); + c3_i sas_i = uv_udp_send(&snd_u->req_u, &u3_Host.wax_u, + &buf_u, 1, adr_u, _stun_send_cb); + + if ( sas_i ) { + _stun_send_cb(&snd_u->req_u, sas_i); + } +} + +static void +_stun_start(u3_ames* sam_u, c3_w tim_w); + +/* _stun_on_response(): hear stun response from galaxy. + */ +static void +_stun_on_response(u3_ames* sam_u, c3_y* buf_y, c3_w buf_len) +{ + u3_lane lan_u; + + // Ignore STUN responses that dont' have the XOR-MAPPED-ADDRESS attribute + if ( c3n == u3_stun_find_xor_mapped_address(buf_y, buf_len, &lan_u) ) { + return; + } + + if ( (sam_u->sun_u.sef_u.por_s != lan_u.por_s) || + (sam_u->sun_u.sef_u.pip_w != lan_u.pip_w) ) + { + // lane changed + u3_noun wir = u3nc(c3__ames, u3_nul); + u3_noun cad = u3nq(c3__stun, c3__once, sam_u->sun_u.dad_y, + u3nc(c3n, u3_ames_encode_lane(lan_u))); + u3_auto_plan(&sam_u->car_u, + u3_ovum_init(0, c3__ames, wir, cad)); + } + else if ( c3n == sam_u->sun_u.wok_o ) { + // stop %ping app + u3_noun wir = u3nc(c3__ames, u3_nul); + u3_noun cad = u3nq(c3__stun, c3__stop, sam_u->sun_u.dad_y, + u3nc(c3n, u3_ames_encode_lane(lan_u))); + u3_auto_plan(&sam_u->car_u, + u3_ovum_init(0, c3__ames, wir, cad)); + sam_u->sun_u.wok_o = c3y; + } + + sam_u->sun_u.sef_u = lan_u; + + // XX should no-op early + // + switch ( sam_u->sun_u.sat_y ) { + case STUN_OFF: break; // ignore; stray response + case STUN_KEEPALIVE: break; // ignore; duplicate response + + case STUN_TRYING: { + _stun_start(sam_u, 25000); + } break; + + default: u3_assert(!"programmer error"); + } +} + +/* _stun_send_request(): send stun request to galaxy lane. + */ +static void +_stun_send_request(u3_ames* sam_u) +{ + u3_assert( STUN_OFF != sam_u->sun_u.sat_y ); + + _stun_send* snd_u = c3_malloc(sizeof(*snd_u) + 28); + + u3_stun_make_request(snd_u->hun_y, sam_u->sun_u.tid_y); + + struct sockaddr_in add_u; + memset(&add_u, 0, sizeof(add_u)); + add_u.sin_family = AF_INET; + add_u.sin_addr.s_addr = htonl(sam_u->sun_u.lan_u.pip_w); + add_u.sin_port = htons(sam_u->sun_u.lan_u.por_s); + + uv_buf_t buf_u = uv_buf_init((c3_c*)snd_u->hun_y, 28); + c3_i sas_i = uv_udp_send(&snd_u->req_u, &u3_Host.wax_u, &buf_u, 1, + (const struct sockaddr*)&add_u, _stun_send_cb); + + if ( sas_i ) { + _stun_send_cb(&snd_u->req_u, sas_i); + } +} + +/* _stun_reset(): stun failed. start again using max backoff + */ +static void +_stun_reset(uv_timer_t* tim_u) +{ + u3_ames* sam_u = (u3_ames*)(tim_u->data); + + _stun_start(sam_u, 39000); +} + +/* _stun_on_lost(): stun failed (timeout); capture and reset. + */ +static void +_stun_on_lost(u3_ames* sam_u) +{ + sam_u->sun_u.sat_y = STUN_OFF; + + // only inject event into arvo to %kick ping app on first failure + // + if ( c3y == sam_u->sun_u.wok_o ) { + u3_noun wir = u3nc(c3__ames, u3_nul); + u3_noun cad = u3nq(c3__stun, c3__fail, sam_u->sun_u.dad_y, + u3nc(c3n, u3_ames_encode_lane(sam_u->sun_u.sef_u))); + u3_auto_plan(&sam_u->car_u, + u3_ovum_init(0, c3__ames, wir, cad)); + sam_u->sun_u.wok_o = c3n; + } + + uv_timer_start(&sam_u->sun_u.tim_u, _stun_reset, 5*1000, 0); +} + +/* _stun_time_gap(): elapsed milliseconds. + */ +static c3_d +_stun_time_gap(struct timeval sar_tv) +{ + struct timeval tim_tv; + gettimeofday(&tim_tv, 0); + u3_noun now = u3_time_in_tv(&tim_tv); + u3_noun den = u3_time_in_tv(&sar_tv); + return u3_time_gap_ms(den, now); +} + +/* _stun_timer_cb(): advance stun state machine. + */ +static void +_stun_timer_cb(uv_timer_t* tim_u) +{ + u3_ames* sam_u = (u3_ames*)(tim_u->data); + c3_w rto_w = 500; + + switch ( sam_u->sun_u.sat_y ) { + case STUN_OFF: { + // ignore; stray timer (although this shouldn't happen) + u3l_log("stun: stray timer STUN_OFF"); + } break; + + case STUN_KEEPALIVE: { + u3_lane* lan_u = &(sam_u->sun_u.lan_u); + c3_y imp_y = sam_u->sun_u.dad_y; + + if ( c3n == _ames_czar_lane(sam_u, imp_y, lan_u) ) { + uv_timer_start(&sam_u->sun_u.tim_u, _stun_timer_cb, 25*1000, 0); + } + else { + sam_u->sun_u.sat_y = STUN_TRYING; + gettimeofday(&sam_u->sun_u.sar_u, 0); // set start time to now + uv_timer_start(&sam_u->sun_u.tim_u, _stun_timer_cb, rto_w, 0); + _stun_send_request(sam_u); + } + } break; + + case STUN_TRYING: { + c3_d gap_d = _stun_time_gap(sam_u->sun_u.sar_u); + c3_d nex_d = (gap_d * 2) + rto_w - gap_d; + + if ( gap_d >= 39500 ) { + _stun_on_lost(sam_u); + } + else { + // wait ~s8 for the last STUN request + // + // https://datatracker.ietf.org/doc/html/rfc5389#section-7.2.1 + // + c3_w tim_w = (gap_d >= 31500) ? 8000 : c3_max(nex_d, 31500); + + uv_timer_start(&sam_u->sun_u.tim_u, _stun_timer_cb, tim_w, 0); + _stun_send_request(sam_u); + } + } break; + + default: u3_assert(!"programmer error"); + } +} + +/* _stun_start(): begin/restart STUN state machine. +*/ +static void +_stun_start(u3_ames* sam_u, c3_w tim_w) +{ + if ( ent_getentropy(sam_u->sun_u.tid_y, 12) ) { + u3l_log("stun: getentropy fail: %s", strerror(errno)); + u3_king_bail(); + } + + sam_u->sun_u.sat_y = STUN_KEEPALIVE; + uv_timer_start(&sam_u->sun_u.tim_u, _stun_timer_cb, tim_w, 0); +} + +/* _ames_is_czar(): [who] is galaxy. +*/ +static c3_o +_ames_is_czar(u3_noun who) +{ + u3_noun rac = u3do("clan:title", u3k(who)); + c3_o zar = ( c3y == (c3__czar == rac) ); + u3z(rac); + return zar; +} + +/* _ames_ef_saxo(): handle sponsorship chain notification +*/ +static void +_ames_ef_saxo(u3_ames* sam_u, u3_noun zad) +{ + u3_noun daz, dad; + + daz = u3qb_flop(zad); + if ( u3_nul == daz ) { + u3l_log("ames: empty sponsorship chain"); + u3z(zad); u3z(daz); + return; + } + + dad = u3h(daz); + u3_noun our = u3i_chubs(2, sam_u->pir_u->who_d); + + // if we are a galaxy, don't STUN + // + if ( c3y == _ames_is_czar(dad) && c3n == _ames_is_czar(our)) { + sam_u->sun_u.dad_y = (c3_y)dad; + _stun_start(sam_u, 0); + } + + u3z(zad); u3z(daz); u3z(our); +} + +/* _ames_send_lane(): resolve/decode lane. RETAIN +*/ +static c3_o +_ames_send_lane(u3_ames* sam_u, u3_noun lan, u3_lane* lan_u) +{ + u3_noun tag, val; + + if ( c3n == u3r_cell(lan, &tag, &val) ) { + u3l_log("ames: bad lane; not a cell"); + return c3n; + } + + switch ( tag ) { + case c3y: { // galaxy + if ( val >= 256 ) { + u3l_log("ames: bad galaxy lane: 0x%x", val); + return c3n; + } + return _ames_czar_lane(sam_u, (c3_y)val, lan_u); + } + + case c3n: { // ip:port + u3_lane nal_u = u3_ames_decode_lane(u3k(val)); + + // convert incoming localhost to outgoing localhost + // + // XX this looks like en/de-coding problems ... + // + nal_u.pip_w = ( nal_u.pip_w ) ? nal_u.pip_w : 0x7f000001; + + // if in local-only mode, don't send remote packets + // + if ( (c3n == u3_Host.ops_u.net) && (0x7f000001 != nal_u.pip_w) ) { + return c3n; + } + // if the lane is uninterpretable, silently drop the packet + // + else if ( !nal_u.por_s ) { + if ( u3C.wag_w & u3o_verbose ) { + u3l_log("ames: inscrutable lane"); + } + return c3n; + } + + *lan_u = nal_u; + return c3y; + } + + default: { + u3l_log("ames: bad lane tag"); + return c3n; + } + } +} + +/* _ames_ef_send(): send packet to network (v4). +*/ +static void +_ames_ef_send(u3_ames* sam_u, u3_noun lan, u3_noun pac) +{ + if ( c3n == sam_u->car_u.liv_o ) { + u3l_log("ames: not yet live, dropping outbound\r"); + u3z(lan); u3z(pac); + return; + } + + u3_lane lan_u; + + if ( c3y == _ames_send_lane(sam_u, lan, &lan_u) ) { + u3_pact* pac_u = c3_calloc(sizeof(*pac_u)); + pac_u->sam_u = sam_u; + pac_u->lan_u = lan_u; + pac_u->len_w = u3r_met(3, pac); + pac_u->hun_y = c3_malloc(pac_u->len_w); + + u3r_bytes(0, pac_u->len_w, pac_u->hun_y, pac); + + _ames_sift_head(&pac_u->hed_u, pac_u->hun_y); + pac_u->typ_y = _ames_pact_typ(&pac_u->hed_u); + + _ames_send(pac_u); + } + + u3z(lan); u3z(pac); +} + +/* _ames_cap_queue(): cap ovum queue at QUEUE_MAX, dropping oldest packets. +*/ +static void +_ames_cap_queue(u3_ames* sam_u) +{ + u3_ovum* egg_u = sam_u->car_u.ext_u; + c3_d old_d = sam_u->sat_u.dop_d; + + while ( egg_u && (QUEUE_MAX < sam_u->car_u.dep_w) ) { + u3_ovum* nex_u = egg_u->nex_u; + + if ( c3__hear == u3h(egg_u->cad) ) { + u3_auto_drop(&sam_u->car_u, egg_u); + sam_u->sat_u.dop_d++; + + if ( u3C.wag_w & u3o_verbose ) { + u3l_log("ames: packet dropped (%" PRIu64 " total)", sam_u->sat_u.dop_d); + } + } + + egg_u = nex_u; + } + + if ( !(u3C.wag_w & u3o_verbose) + && (old_d != sam_u->sat_u.dop_d) + && !(sam_u->sat_u.dop_d % 1000) ) + { + u3l_log("ames: packet dropped (%" PRIu64 " total)", sam_u->sat_u.dop_d); + } +} + +/* _ames_hear_bail(): handle packet failure. +*/ +static void +_ames_hear_bail(u3_ovum* egg_u, u3_noun lud) +{ + u3_ames* sam_u = (u3_ames*)egg_u->car_u; + c3_w len_w = u3qb_lent(lud); + + if ( (1 == len_w) && c3__evil == u3h(u3h(lud)) ) { + sam_u->sat_u.vil_d++; + + if ( (u3C.wag_w & u3o_verbose) + || (0 == (sam_u->sat_u.vil_d % 100)) ) + { + u3l_log("ames: heard bad crypto (%" PRIu64 " total), " + "check azimuth state\r\n", + sam_u->sat_u.vil_d); + } + } + else { + sam_u->sat_u.fal_d++; + + if ( (u3C.wag_w & u3o_verbose) + || (0 == (sam_u->sat_u.fal_d % 100)) ) + { + if ( 2 == len_w ) { + u3_pier_punt_goof("hear", u3k(u3h(lud))); + u3_pier_punt_goof("crud", u3k(u3h(u3t(lud)))); + } + // !2 traces is unusual, just print the first if present + // + else if ( len_w ) { + u3_pier_punt_goof("hear", u3k(u3h(lud))); + } + + u3l_log("ames: packet failed (%" PRIu64 " total)\r\n", + sam_u->sat_u.fal_d); + } + } + + u3z(lud); + u3_ovum_free(egg_u); +} + +/* _ames_put_packet(): add packet to queue, drop old packets on pressure +*/ +static void +_ames_put_packet(u3_ames* sam_u, + u3_noun msg, + u3_lane lan_u) +{ + u3_noun wir = u3nc(c3__ames, u3_nul); + u3_noun cad = u3nt(c3__hear, u3nc(c3n, u3_ames_encode_lane(lan_u)), msg); + + u3_auto_peer( + u3_auto_plan(&sam_u->car_u, + u3_ovum_init(0, c3__a, wir, cad)), + 0, 0, _ames_hear_bail); + + _ames_cap_queue(sam_u); +} + +/* _ames_send_many(): send pac_u on the (list lane) las; retains pac_u +*/ +static void +_ames_send_many(u3_pact* pac_u, u3_noun las, c3_o for_o) +{ + u3_ames* sam_u = pac_u->sam_u; + u3_noun tag, dat, lan, t = las; + u3_noun pac = _ames_pact_to_noun(pac_u); + + // if forwarding, track metrics + // + if ( c3y == for_o ) { + u3_ames* sam_u = pac_u->sam_u; + + sam_u->sat_u.fow_d++; + if ( 0 == (sam_u->sat_u.fow_d % 1000000) ) { + u3l_log("ames: forwarded %" PRIu64 " total", sam_u->sat_u.fow_d); + } + + if ( u3C.wag_w & u3o_verbose ) { + u3_noun sen = u3dc("scot", 'p', u3i_chubs(2, pac_u->pre_u.sen_d)); + u3_noun rec = u3dc("scot", 'p', u3i_chubs(2, pac_u->pre_u.rec_d)); + c3_c* sen_c = u3r_string(sen); + c3_c* rec_c = u3r_string(rec); + c3_y* pip_y = (c3_y*)&pac_u->lan_u.pip_w; + + //NOTE ip byte order assumes little-endian + u3l_log("ames: forwarding for %s to %s from %d.%d.%d.%d:%d", + sen_c, rec_c, + pip_y[3], pip_y[2], pip_y[1], pip_y[0], + pac_u->lan_u.por_s); + + c3_free(sen_c); c3_free(rec_c); + u3z(sen); u3z(rec); + } + } + + while ( u3_nul != t ) { + u3x_cell(t, &lan, &t); + + // validate lane and skip self if galaxy + // + if ( c3n == u3r_cell(lan, &tag, &dat) ) { + u3l_log("ames: bogus lane"); + } + else { + c3_o sen_o = c3y; + c3_d who_d[2]; + + if ( c3y == tag ) { + u3r_chubs(0, 2, who_d, dat); + + if ( (who_d[0] == sam_u->pir_u->who_d[0]) + && (who_d[1] == sam_u->pir_u->who_d[1]) ) + { + sen_o = c3n; + if ( u3C.wag_w & u3o_verbose ) { + u3l_log("ames: forward skipping self"); + } + } + } + + if ( c3y == sen_o ) { + _ames_ef_send(sam_u, u3k(lan), u3k(pac)); + } + } + } + u3z(pac); + u3z(las); +} + +/* _ames_lane_scry_cb(): learn lanes to send packet on +*/ +static void +_ames_lane_scry_cb(void* vod_p, u3_noun nun) +{ + u3_panc* pan_u = vod_p; + u3_pact* pac_u = pan_u->pac_u; + u3_ames* sam_u = pac_u->sam_u; + u3_weak las = u3r_at(7, nun); + + // if scry fails, remember we can't scry, and just inject the packet + // + if ( u3_none == las ) { + if ( 5 < ++sam_u->sat_u.saw_d ) { + u3l_log("ames: giving up scry"); + sam_u->fig_u.see_o = c3n; + } + _ames_put_packet(sam_u, + _ames_pact_to_noun(pac_u), + pac_u->lan_u); + } + else { + sam_u->sat_u.saw_d = 0; + + // cache the scry result for later use + // + _ames_lane_into_cache(sam_u->lax_p, + u3i_chubs(2, pac_u->pre_u.rec_d), + u3k(las)); + + // if there are lanes, send the packet on them; otherwise drop it + // + if ( u3_nul != las ) { + _ames_send_many(pac_u, u3k(las), pan_u->for_o); + } + } + _ames_panc_free(pan_u); + u3z(nun); +} + +/* _ames_lane_scry_forward_cb(): learn lanes to forward packet on + */ +static void +_ames_lane_scry_forward_cb(void *vod_p, u3_noun nun) +{ + u3_panc *pan_u = vod_p; + u3_ames *sam_u = pan_u->pac_u->sam_u; + + sam_u->sat_u.foq_d--; + + _ames_lane_scry_cb(vod_p, nun); +} + +/* _ames_try_send(): try to send a packet to a ship and its sponsors +*/ +static void +_ames_try_send(u3_pact* pac_u, c3_o for_o) +{ + u3_weak lac; + u3_ames* sam_u = pac_u->sam_u; + + // if the recipient is a galaxy, their lane is always &+~gax + // + if ( (256 > pac_u->pre_u.rec_d[0]) + && (0 == pac_u->pre_u.rec_d[1]) ) + { + lac = u3nc(u3nc(c3y, (c3_y)pac_u->pre_u.rec_d[0]), u3_nul); + } + // otherwise, try to get the lane from cache + // + else { + u3_noun key = u3i_chubs(2, pac_u->pre_u.rec_d); + lac = _ames_lane_from_cache(sam_u->lax_p, key, sam_u->nal_o); + } + + // if we know there's no lane, drop the packet + // + if ( u3_nul == lac ) { + _ames_pact_free(pac_u); + return; + } + // if we don't know the lane, and the lane scry queue is full, + // just drop the packet + //TODO cap queue for lane lookups for scry responses, not just forwards + // + //TODO drop oldest item in forward queue in favor of this one. + // ames.c doesn't/shouldn't know about the shape of scry events, + // so can't pluck these out of the event queue like it does in + // _ames_cap_queue. as such, blocked on u3_lord_peek_cancel or w/e. + // + if ( (c3y == for_o) + && (u3_none == lac) + && (1000 < sam_u->sat_u.foq_d) ) + { + sam_u->sat_u.fod_d++; + if ( 0 == (sam_u->sat_u.fod_d % 10000) ) { + u3l_log("ames: dropped %" PRIu64 " forwards total", + sam_u->sat_u.fod_d); + } + + _ames_pact_free(pac_u); + return; + } + + // if we already know the lane, just send + // + if ( u3_none != lac ) { + _ames_send_many(pac_u, lac, for_o); + _ames_pact_free(pac_u); + } + // store the packet to be sent later when the lane scry completes + // + else { + u3_panc* pan_u = c3_calloc(sizeof(*pan_u)); + pan_u->pac_u = pac_u; + pan_u->for_o = for_o; + + u3_noun pax = _lane_scry_path(u3i_chubs(2, pac_u->pre_u.rec_d)); + + // if forwarding, enqueue the packet and scry for the lane + // + u3_noun gang = u3nc(u3_nul, u3_nul); + if ( c3y == for_o ) { + if ( 0 != sam_u->pan_u ) { + pan_u->nex_u = sam_u->pan_u; + sam_u->pan_u->pre_u = pan_u; + } + sam_u->pan_u = pan_u; + sam_u->sat_u.foq_d++; + + u3_pier_peek_last(sam_u->pir_u, gang, c3__ax, + u3_nul, pax, pan_u, _ames_lane_scry_forward_cb); + } + // otherwise, just scry for the lane + // + else { + u3_pier_peek_last(sam_u->pir_u, gang, c3__ax, + u3_nul, pax, pan_u, _ames_lane_scry_cb); + } + } +} + +#undef AMES_SKIP +#ifdef AMES_SKIP +/* _ames_skip(): decide whether to skip this packet, for rescue +*/ +static c3_o +_ames_skip(u3_prel* pre_u) +{ + if ( pre_u->sen_d[1] == 0 && + ( pre_u->sen_d[0] == 0x743a17a6 + || pre_u->sen_d[0] == 0xea99acb6 + || pre_u->sen_d[0] == 0x10100 + ) ) { + return c3n; + } + else { + return c3y; + } +} +#endif + +/* _fine_lop(): find beginning of page containing fra_w +*/ +static inline c3_w +_fine_lop(c3_w fra_w) +{ + return 1 + (((fra_w - 1) / FINE_PAGE) * FINE_PAGE); +} + +/* _fine_scry_path(): parse path from wail or purr. +*/ +static u3_weak +_fine_scry_path(u3_pact* pac_u) +{ + u3_peep* pep_u = ( PACT_WAIL == pac_u->typ_y ) + ? &pac_u->wal_u.pep_u + : &pac_u->pur_u.pep_u; + u3_noun ful = u3dc("rush", u3i_string(pep_u->pat_c), u3v_wish(PATH_PARSER)); + + if ( u3_nul == ful ) { + return u3_none; + } + else { + u3_noun pro = u3k(u3t(ful)); + u3z(ful); + return pro; + } +} + +/* _fine_hunk_scry_cb(): receive packets for datum out of fine + */ +static void +_fine_hunk_scry_cb(void* vod_p, u3_noun nun) +{ + u3_pact* pac_u = vod_p; + u3_ames* sam_u = pac_u->sam_u; + u3_peep* pep_u = &pac_u->pur_u.pep_u; + u3_weak fra = u3_none; + + u3_assert( PACT_PURR == pac_u->typ_y ); + + { + // XX virtualize + u3_noun pax = u3dc("rash", u3i_string(pep_u->pat_c), u3v_wish(PATH_PARSER)); + c3_w lop_w = _fine_lop(pep_u->fra_w); + u3_weak pas = u3r_at(7, nun); + + // if not [~ ~ fragments], mark as dead + // + if( u3_none == pas ) { + _fine_put_cache(sam_u, pax, lop_w, FINE_DEAD); + _ames_pact_free(pac_u); + + u3z(nun); + return; + } + + _fine_put_cache(sam_u, pax, lop_w, pas); + + // find requested fragment + // + while ( u3_nul != pas ) { + if ( pep_u->fra_w == lop_w ) { + fra = u3k(u3h(pas)); + break; + } + lop_w++; + pas = u3t(pas); + } + + u3z(pax); + } + + if ( fra == u3_none ) { + u3l_log("fine: fragment number out of range"); + _ames_pact_free(pac_u); + } + else if ( c3y == _fine_sift_meow(&pac_u->pur_u.mew_u, fra) ) { + if ( u3C.wag_w & u3o_verbose ) { + u3l_log("fine: send %u %s", pac_u->pur_u.pep_u.fra_w, + pac_u->pur_u.pep_u.pat_c); + } + + _fine_etch_response(pac_u); + _ames_try_send(pac_u, c3n); + } + else { + u3l_log("fine: bad meow"); + _ames_pact_free(pac_u); + } + + u3z(nun); +} + +/* _fine_hear_request(): hear wail (fine request packet packet). +*/ +static void +_fine_hear_request(u3_pact* req_u, c3_w cur_w) +{ + u3_ames* sam_u = req_u->sam_u; + u3_pact* res_u; + u3_noun key; + + if ( c3n == _fine_sift_wail(req_u, cur_w) ) { + sam_u->sat_u.wal_d++; + if ( 0 == (sam_u->sat_u.wal_d % 100) ) { + u3l_log("fine: %" PRIu64 " dropped wails", + sam_u->sat_u.wal_d); + } + _ames_pact_free(req_u); + return; + } + // make scry cache key + // + else { + u3_weak yek = _fine_scry_path(req_u); + + if ( u3_none == yek ) { + sam_u->sat_u.wap_d++; + if ( 0 == (sam_u->sat_u.wap_d % 100) ) { + u3l_log("fine: %" PRIu64 " dropped wails (path)", + sam_u->sat_u.wap_d); + } + _ames_pact_free(req_u); + return; + } + + key = yek; + } + + // fill in the parts of res_u that we know from req_u + { + res_u = c3_calloc(sizeof(*res_u)); + res_u->sam_u = req_u->sam_u; + res_u->typ_y = PACT_PURR; + res_u->lan_u = req_u->lan_u; + + // copy header, swapping sender and receiver + // + res_u->hed_u = (u3_head) { + .req_o = c3n, + .sim_o = c3n, + .ver_y = req_u->hed_u.ver_y, + .sac_y = req_u->hed_u.rac_y, + .rac_y = req_u->hed_u.sac_y, + .mug_l = 0, // filled in later + .rel_o = c3n + }; + + // copy prelude, swapping sender and receiver + // + res_u->pre_u = (u3_prel) { + .sic_y = req_u->pre_u.ric_y, + .ric_y = req_u->pre_u.sic_y, + .sen_d = { req_u->pre_u.rec_d[0], req_u->pre_u.rec_d[1] }, + .rec_d = { req_u->pre_u.sen_d[0], req_u->pre_u.sen_d[1] }, + .rog_d = 0 + }; + + // copy unsigned request payload into response body + // + res_u->pur_u = (u3_purr) { + .pep_u = req_u->wal_u.pep_u, + .mew_u = {0} // filled in later + }; + + // copy path string from request into response body + { + c3_s len_s = req_u->wal_u.pep_u.len_s; + res_u->pur_u.pep_u.pat_c = c3_calloc(len_s + 1); + memcpy(res_u->pur_u.pep_u.pat_c, req_u->wal_u.pep_u.pat_c, len_s); + } + + // free incoming request + // + _ames_pact_free(req_u); + } + + // look up request in scry cache + // + c3_w fra_w = res_u->pur_u.pep_u.fra_w; + c3_w lop_w = _fine_lop(fra_w); + u3_weak pec = _fine_get_cache(sam_u, key, lop_w); + + // already pending; drop + // + if ( FINE_PEND == pec ) { + if ( u3C.wag_w & u3o_verbose ) { + u3l_log("fine: pend %u %s", res_u->pur_u.pep_u.fra_w, + res_u->pur_u.pep_u.pat_c); + } + _ames_pact_free(res_u); + } + // cache miss or a previous scry blocked; try again + // + else { + u3_weak cac = _fine_get_cache(sam_u, key, fra_w); + + if ( (u3_none == cac) || (FINE_DEAD == cac) ) { + if ( u3C.wag_w & u3o_verbose ) { + u3l_log("fine: miss %u %s", res_u->pur_u.pep_u.fra_w, + res_u->pur_u.pep_u.pat_c); + } + + u3_noun pax = + u3nc(c3__fine, + u3nq(c3__hunk, + u3dc("scot", c3__ud, u3i_word(lop_w)), + u3dc("scot", c3__ud, FINE_PAGE), + u3k(key))); + + // mark as pending in the scry cache + // + _fine_put_cache(res_u->sam_u, key, lop_w, FINE_PEND); + + // scry into arvo for a page of packets + // + u3_pier_peek_last(res_u->sam_u->car_u.pir_u, u3_nul, c3__ax, u3_nul, + pax, res_u, _fine_hunk_scry_cb); + } + // cache hit, fill in response meow and send + // + else if ( c3y == _fine_sift_meow(&res_u->pur_u.mew_u, u3k(cac)) ) { + if ( u3C.wag_w & u3o_verbose ) { + u3l_log("fine: hit %u %s", res_u->pur_u.pep_u.fra_w, + res_u->pur_u.pep_u.pat_c); + } + _fine_etch_response(res_u); + _ames_try_send(res_u, c3n); + } + else { + u3l_log("fine: _fine_hear_request meow bad"); + _ames_pact_free(res_u); + } + } + + u3z(key); +} + +/* _fine_hear_response(): hear purr (fine response packet). +*/ +static void +_fine_hear_response(u3_pact* pac_u, c3_w cur_w) +{ + u3_noun wir = u3nc(c3__fine, u3_nul); + u3_noun cad = u3nt(c3__hear, + u3nc(c3n, u3_ames_encode_lane(pac_u->lan_u)), + u3i_bytes(pac_u->len_w, pac_u->hun_y)); + + u3_ovum* ovo_u = u3_ovum_init(0, c3__ames, wir, cad); + u3_auto_plan(&pac_u->sam_u->car_u, ovo_u); + + _ames_cap_queue(pac_u->sam_u); + _ames_pact_free(pac_u); +} + +/* _ames_hear_ames(): hear ames packet. +*/ +static void +_ames_hear_ames(u3_pact* pac_u, c3_w cur_w) +{ +#ifdef AMES_SKIP + if ( c3_y == _ames_skip(&pac_u->pre_u) ) { + _ames_pact_free(pac_u); + return; + } +#endif + + { + u3_noun msg = u3i_bytes(pac_u->len_w, pac_u->hun_y); + _ames_put_packet(pac_u->sam_u, msg, pac_u->lan_u); + _ames_pact_free(pac_u); + } +} + +/* _ames_try_forward(): forward packet, updating lane if needed. +*/ +static void +_ames_try_forward(u3_pact* pac_u) +{ + // insert origin lane if needed + // + if ( c3n == pac_u->hed_u.rel_o + && !( ( 256 > pac_u->pre_u.sen_d[0] ) + && ( 0 == pac_u->pre_u.sen_d[1] ) ) ) + { + c3_y* old_y; + c3_w old_w, cur_w; + + pac_u->hed_u.rel_o = c3y; + pac_u->pre_u.rog_d = u3_ames_lane_to_chub(pac_u->lan_u); + + old_w = pac_u->len_w; + old_y = pac_u->hun_y; + + pac_u->len_w += 6; + pac_u->hun_y = c3_calloc(pac_u->len_w); + + cur_w = 0; + + _ames_etch_head(&pac_u->hed_u, pac_u->hun_y); + cur_w += HEAD_SIZE; + + _ames_etch_origin(pac_u->pre_u.rog_d, pac_u->hun_y + cur_w); + cur_w += 6; + + memcpy(pac_u->hun_y + cur_w, + old_y + HEAD_SIZE, + old_w - HEAD_SIZE); + + c3_free(old_y); + } + + _ames_try_send(pac_u, c3y); +} + +/* _ames_hear(): parse a (potential) packet, dispatch appropriately. +** +** packet filtering needs to revised for two protocol-change scenarios +** +** - packets using old protocol versions from our sponsees +** these must be let through, and this is a transitive condition; +** they must also be forwarded where appropriate +** they can be validated, as we know their semantics +** +** - packets using newer protocol versions +** these should probably be let through, or at least +** trigger printfs suggesting upgrade. +** they cannot be filtered, as we do not know their semantics +*/ +void +_ames_hear(u3_ames* sam_u, + const struct sockaddr* adr_u, + c3_w len_w, + c3_y* hun_y) +{ + u3_pact* pac_u; + c3_w pre_w; + c3_w cur_w = 0; // cursor: how many bytes we've read from hun_y + + + // XX reorg, check if a STUN req/resp can look like an ames packet + // check the mug hash of the body of the packet, if not check if STUN + // otherwise , invalid packet, log failure + // check ames first, assume that STUN could maybe (not likely) overlap with ames + // for next protocol version, have an urbit cookie + // + if ( c3y == u3_stun_is_request(hun_y, len_w) ) { + _stun_on_request(sam_u, hun_y, adr_u); + c3_free(hun_y); + } + else if ( c3y == u3_stun_is_our_response(hun_y, + sam_u->sun_u.tid_y, len_w) ) + { + _stun_on_response(sam_u, hun_y, len_w); + c3_free(hun_y); + } + else { + struct sockaddr_in* add_u = (struct sockaddr_in*)adr_u; + u3_lane lan_u = { + .por_s = ntohs(add_u->sin_port), + .pip_w = ntohl(add_u->sin_addr.s_addr) + }; + + // make sure packet is big enough to have a header + // + if ( HEAD_SIZE > len_w ) { + sam_u->sat_u.hed_d++; + if ( 0 == (sam_u->sat_u.hed_d % 100000) ) { + u3l_log("ames: %" PRIu64 " dropped, failed to read header", + sam_u->sat_u.hed_d); + } + + c3_free(hun_y); + return; + } + + pac_u = c3_calloc(sizeof(*pac_u)); + pac_u->sam_u = sam_u; + pac_u->len_w = len_w; + pac_u->hun_y = hun_y; + pac_u->lan_u = lan_u; + cur_w = 0; + + // parse the header + // + _ames_sift_head(&pac_u->hed_u, pac_u->hun_y); + cur_w += HEAD_SIZE; + + pac_u->typ_y = _ames_pact_typ(&pac_u->hed_u); + + // ensure the protocol version matches ours + // + // XX rethink use of [fit_o] here and elsewhere + // + if ( (c3y == sam_u->fig_u.fit_o) + && (sam_u->ver_y != pac_u->hed_u.ver_y) ) + { + sam_u->sat_u.vet_d++; + if ( 0 == (sam_u->sat_u.vet_d % 100000) ) { + u3l_log("ames: %" PRIu64 " dropped for version mismatch", + sam_u->sat_u.vet_d); + } + _ames_pact_free(pac_u); + return; + } + + // check contents match mug in header + // + if ( c3n == _ames_check_mug(pac_u) ) { + // _log_head(&pac_u->hed_u); + sam_u->sat_u.mut_d++; + if ( 0 == (sam_u->sat_u.mut_d % 100000) ) { + u3l_log("ames: %" PRIu64 " dropped for invalid mug", + sam_u->sat_u.mut_d); + } + _ames_pact_free(pac_u); + return; + } + + // check that packet is big enough for prelude + // + pre_w = _ames_prel_size(&pac_u->hed_u); + if ( len_w < cur_w + pre_w ) { + sam_u->sat_u.pre_d++; + if ( 0 == (sam_u->sat_u.pre_d % 100000) ) { + u3l_log("ames: %" PRIu64 " dropped, failed to read prelude", + sam_u->sat_u.pre_d); + } + _ames_pact_free(pac_u); + return; + } + + // parse prelude + // + _ames_sift_prel(&pac_u->hed_u, &pac_u->pre_u, pac_u->hun_y + cur_w); + cur_w += pre_w; + + // if we can scry for lanes, + // and we are not the recipient, + // we might want to forward statelessly + // + if ( (c3y == sam_u->fig_u.see_o) + && ( (pac_u->pre_u.rec_d[0] != sam_u->pir_u->who_d[0]) + || (pac_u->pre_u.rec_d[1] != sam_u->pir_u->who_d[1]) ) ) + { + if ( c3y == sam_u->sat_u.for_o ) { + _ames_try_forward(pac_u); + } + } + else { + // enter protocol-specific packet handling + // + switch ( pac_u->typ_y ) { + case PACT_WAIL: { + _fine_hear_request(pac_u, cur_w); + } break; + + case PACT_PURR: { + _fine_hear_response(pac_u, cur_w); + } break; + + case PACT_AMES: { + _ames_hear_ames(pac_u, cur_w); + } break; + + default: { + u3l_log("ames_hear: bad packet type %d", pac_u->typ_y); + u3_pier_bail(u3_king_stub()); + } + } + } + } +} + +/* _ames_recv_cb(): udp message receive callback. +*/ +static void +_ames_recv_cb(uv_udp_t* wax_u, + ssize_t nrd_i, + const uv_buf_t * buf_u, + const struct sockaddr* adr_u, + unsigned flg_i) +{ + u3_ames* sam_u = u3_Host.sam_u; // wax_u->data; + + if ( 0 > nrd_i ) { + if ( u3C.wag_w & u3o_verbose ) { + u3l_log("ames: recv: fail: %s", uv_strerror(nrd_i)); + } + c3_free(buf_u->base); + } + else if ( 0 == nrd_i ) { + c3_free(buf_u->base); + } + else if ( flg_i & UV_UDP_PARTIAL ) { + if ( u3C.wag_w & u3o_verbose ) { + u3l_log("ames: recv: fail: message truncated"); + } + c3_free(buf_u->base); + } + else { + // NB: [nrd_i] will never exceed max length from _ames_alloc() + // + _ames_hear(sam_u, adr_u, (c3_w)nrd_i, (c3_y*)buf_u->base); + } +} + +static void natpmp_init(uv_timer_t* handle); + +static void +natpmp_cb(uv_poll_t* handle, + c3_i status, + c3_i events) +{ + + if (status != 0) { + return; + } + + u3_ames* sam_u = handle->data; + + natpmpresp_t response; + c3_i err_i = readnatpmpresponseorretry(&sam_u->nat_u.req_u, &response); + if ( NATPMP_TRYAGAIN == err_i ) { + return; + } + + uv_poll_stop(handle); + + if ( 0 != err_i ) { + u3l_log("ames: natpmp error %i", err_i); + uv_poll_stop(&sam_u->nat_u.pol_u); + closenatpmp(&sam_u->nat_u.req_u); + return; + } + + u3l_log("ames: mapped public port %hu to localport %hu lifetime %u", + response.pnu.newportmapping.mappedpublicport, + response.pnu.newportmapping.privateport, + response.pnu.newportmapping.lifetime); + + closenatpmp(&sam_u->nat_u.req_u); + sam_u->nat_u.tim_u.data = sam_u; + uv_timer_start(&sam_u->nat_u.tim_u, natpmp_init, 7200000, 0); +} + +static void +natpmp_init(uv_timer_t *handle) +{ + u3_ames* sam_u = handle->data; + c3_s por_s = sam_u->pir_u->por_s; + + c3_i err_i = initnatpmp(&sam_u->nat_u.req_u, 0, 0); + + if (err_i != 0) { + return; + } + + err_i = uv_poll_init(u3L, &sam_u->nat_u.pol_u, sam_u->nat_u.req_u.s); + + if (err_i != 0) { + return; + } + + sendnewportmappingrequest(&sam_u->nat_u.req_u, NATPMP_PROTOCOL_UDP, por_s, por_s, 7200); + + sam_u->nat_u.pol_u.data = sam_u; + uv_poll_start(&sam_u->nat_u.pol_u, UV_READABLE, natpmp_cb); +} + +static void +_mdns_dear_bail(u3_ovum* egg_u, u3_noun lud) +{ + u3z(lud); + u3_ovum_free(egg_u); +} + +/* _ames_put_dear(): send lane to arvo after hearing mdns response +*/ +static void +_ames_put_dear(c3_c* ship, bool fake, c3_w s_addr, c3_s port, void* context) +{ + u3_ames* sam_u = (u3_ames*)context; + + // one is loobean one is boolean + if (fake == sam_u->pir_u->fak_o) { + return; + } + + u3_lane lan; + lan.pip_w = ntohl(s_addr); + lan.por_s = ntohs(port); + + u3_noun whu = u3dc("slaw", c3__p, u3i_string(ship)); + + if (u3_nul == whu) { + u3l_log("ames: strange ship from mdns: %s", ship); + return; + } + + u3_noun our = u3i_chubs(2, sam_u->pir_u->who_d); + if (our == u3t(whu)) { + u3z(whu); + u3z(our); + return; + } + + u3z(our); + + u3_noun wir = u3nc(c3__ames, u3_nul); + u3_noun cad = u3nt(c3__dear, u3k(u3t(whu)), u3nc(c3n, u3_ames_encode_lane(lan))); + + u3_auto_peer( + u3_auto_plan(&sam_u->car_u, + u3_ovum_init(0, c3__a, wir, cad)), + 0, 0, _mdns_dear_bail); + u3z(whu); +} + +/* _ames_io_start(): initialize ames I/O. +*/ +static void +_ames_io_start(u3_ames* sam_u) +{ + c3_s por_s = sam_u->pir_u->por_s; + u3_noun who = u3i_chubs(2, sam_u->pir_u->who_d); + c3_o zar_o = _ames_is_czar(who); + c3_i ret_i; + + + if ( c3y == zar_o ) { + c3_y num_y = (c3_y)sam_u->pir_u->who_d[0]; + c3_s zar_s = _ames_czar_port(num_y); + + if ( 0 == por_s ) { + por_s = zar_s; + } + else if ( por_s != zar_s ) { + u3l_log("ames: czar: overriding port %d with -p %d", zar_s, por_s); + u3l_log("ames: czar: WARNING: %d required for discoverability", zar_s); + } + } + + // Bind and stuff. + { + struct sockaddr_in add_u; + c3_i add_i = sizeof(add_u); + + memset(&add_u, 0, sizeof(add_u)); + add_u.sin_family = AF_INET; + add_u.sin_addr.s_addr = _(u3_Host.ops_u.net) ? + htonl(INADDR_ANY) : + htonl(INADDR_LOOPBACK); + add_u.sin_port = htons(por_s); + u3l_log("ames: skipping port: %u", por_s); + + /*if ( (ret_i = uv_udp_bind(&sam_u->wax_u, + (const struct sockaddr*)&add_u, 0)) != 0 ) + { + u3l_log("ames: port: %u", por_s); + u3l_log("ames: bind: %s", uv_strerror(ret_i)); + + if ( (c3y == zar_o) && + (UV_EADDRINUSE == ret_i) ) + { + u3l_log(" ...perhaps you've got two copies of vere running?"); + } + + // XX revise + // + u3_pier_bail(u3_king_stub()); + }*/ + + /* + uv_udp_getsockname(&sam_u->wax_u, (struct sockaddr *)&add_u, &add_i); + u3_assert(add_u.sin_port); + + sam_u->pir_u->por_s = ntohs(add_u.sin_port); + */ + } + + if ( c3y == u3_Host.ops_u.net ) { + u3l_log("ames: live on %d", sam_u->pir_u->por_s); + } + else { + u3l_log("ames: live on %d (localhost only)", sam_u->pir_u->por_s); + } + + { + u3_noun our = u3dc("scot", 'p', u3k(who)); + char* our_s = u3r_string(our); + u3z(our); + + mdns_init(por_s, !sam_u->pir_u->fak_o, our_s, _ames_put_dear, (void *)sam_u); + + if ( c3n == sam_u->pir_u->fak_o ) { + uv_timer_start(&sam_u->nat_u.tim_u, natpmp_init, 0, 0); + } + + c3_free(our_s); + } + + /* + uv_udp_recv_start(&sam_u->wax_u, _ames_alloc, _ames_recv_cb); + */ + + sam_u->car_u.liv_o = c3y; + u3z(who); +} + +typedef struct _czar_resv { + uv_getaddrinfo_t adr_u; + u3_ames* sam_u; + c3_y imp_y; +} _czar_resv; + +/* _ames_czar_gone(): galaxy address resolution failed. +*/ +static void +_ames_czar_gone(u3_ames* sam_u, c3_y imp_y) +{ + c3_w old_w = sam_u->zar_u.pip_w[imp_y]; + + if ( !old_w ) { + sam_u->zar_u.pip_w[imp_y] = _CZAR_GONE; + } +} + +/* _ames_czar_here(): galaxy address resolution succeeded. +*/ +static void +_ames_czar_here(u3_ames* sam_u, c3_y imp_y, c3_w pip_w) +{ + c3_w old_w = sam_u->zar_u.pip_w[imp_y]; + + if ( pip_w != old_w ) { + c3_c dns_c[256]; + u3_assert ( !_ames_etch_czar(dns_c, sam_u->zar_u.dom_c, imp_y) ); + u3l_log("ames: czar %s ip .%d.%d.%d.%d", dns_c, + (pip_w >> 24) & 0xff, + (pip_w >> 16) & 0xff, + (pip_w >> 8) & 0xff, + (pip_w >> 0) & 0xff); + } + + sam_u->zar_u.pip_w[imp_y] = pip_w; + + { + c3_w blk_w = imp_y >> 5; + c3_w bit_w = 1 << (imp_y & 31); + + sam_u->zar_u.log_w[blk_w] &= ~bit_w; + } +} + +/* _ames_czar_cb(): galaxy address resolution callback. +*/ +static void +_ames_czar_cb(uv_getaddrinfo_t* adr_u, + c3_i sas_i, + struct addrinfo* aif_u) +{ + struct addrinfo* rai_u = aif_u; + _czar_resv* res_u = (_czar_resv*)adr_u; + u3_ames* sam_u = res_u->sam_u; + c3_y imp_y = res_u->imp_y; + + while ( rai_u && (AF_INET != rai_u->ai_family) ) { + rai_u = rai_u->ai_next; + } + + if ( rai_u && rai_u->ai_addr ) { + struct sockaddr_in* add_u = (void*)rai_u->ai_addr; + c3_w pip_w = ntohl(add_u->sin_addr.s_addr); + _ames_czar_here(sam_u, imp_y, pip_w); + } + else { + if ( !sas_i ) { + // XX unpossible + u3l_log("ames: czar: strange failure, no error"); + } + else if ( u3C.wag_w & u3o_verbose ) { + u3l_log("ames: czar fail: %s", uv_strerror(sas_i)); + } + + _ames_czar_gone(sam_u, imp_y); + } + + sam_u->zar_u.pen_s--; + + uv_freeaddrinfo(aif_u); + c3_free(res_u); +} + +/* _ames_czar(): single galaxy address resolution. +*/ +static void +_ames_czar(u3_ames* sam_u, const c3_c* dom_c, c3_y imp_y) +{ + struct addrinfo hin_u = { .ai_family = AF_INET }; + uv_getaddrinfo_t* adr_u; + _czar_resv* res_u; + c3_c dns_c[256]; + c3_i sas_i; + + u3_assert ( !_ames_etch_czar(dns_c, dom_c, imp_y) ); + + res_u = c3_malloc(sizeof(*res_u)); + res_u->sam_u = sam_u; + res_u->imp_y = imp_y; + + adr_u = &(res_u->adr_u); + sas_i = uv_getaddrinfo(u3L, adr_u, _ames_czar_cb, dns_c, 0, &hin_u); + + if ( sas_i ) { + _ames_czar_cb(adr_u, sas_i, NULL); + } +} + +/* _ames_czar_all(): galaxy address resolution. +*/ +static void +_ames_czar_all(uv_timer_t* tim_u) +{ + u3_ames* sam_u = tim_u->data; + + // requests still pending + if ( sam_u->zar_u.pen_s ) { + uv_timer_start(&sam_u->zar_u.tim_u, _ames_czar_all, 30*1000, 0); + return; + } + + sam_u->zar_u.pen_s = 256; + + for ( c3_w i_w = 0; i_w < 256; i_w++ ) { + _ames_czar(sam_u, sam_u->zar_u.dom_c, (c3_y)i_w); + } + + uv_timer_start(&sam_u->zar_u.tim_u, _ames_czar_all, 300*1000, 0); +} + +/* _ames_ef_turf(): initialize ames I/O on domain(s). +*/ +static void +_ames_ef_turf(u3_ames* sam_u, u3_noun tuf) +{ + if ( u3_nul != tuf ) { + c3_c dom_c[sizeof(sam_u->zar_u.dom_c)]; + u3_noun hot = u3h(tuf); + c3_w len_w = u3_mcut_host(0, 0, u3k(hot)); + + if ( len_w >= sizeof(dom_c) ) { // >250 + // 3 char for the galaxy (e.g. zod) and two dots + u3l_log("ames: galaxy domain too big (len=%u)", len_w); + u3m_p("hot", hot); + u3_pier_bail(u3_king_stub()); + } + + u3_mcut_host(dom_c, 0, u3k(hot)); + memset(dom_c + len_w, 0, sizeof(dom_c) - len_w); + + if ( 0 != memcmp(sam_u->zar_u.dom_c, dom_c, sizeof(dom_c)) ) { + memcpy(sam_u->zar_u.dom_c, dom_c, sizeof(dom_c)); + memset(sam_u->zar_u.pip_w, 0, sizeof(sam_u->zar_u.pip_w)); + sam_u->zar_u.dom_o = c3y; + _ames_czar_all(&(sam_u->zar_u.tim_u)); + } + + // XX save all for fallback, not just first + // + if ( u3_nul != u3t(tuf) ) { + u3l_log("ames: turf: ignoring additional domains"); + u3m_p("second", u3h(u3t(tuf))); + + if ( u3_nul != u3t(u3t(tuf)) ) { + u3m_p("third", u3h(u3t(u3t(tuf)))); + } + } + + u3z(tuf); + } + else if ( (c3n == sam_u->pir_u->fak_o) && (c3n == sam_u->zar_u.dom_o) ) { + u3l_log("ames: turf: no domains"); + } + + // XX is this ever necessary? + // + if ( c3n == sam_u->car_u.liv_o ) { + _ames_io_start(sam_u); + } +} + + +/* _ames_prot_scry_cb(): receive ames protocol version +*/ +static void +_ames_prot_scry_cb(void* vod_p, u3_noun nun) +{ + u3_ames* sam_u = vod_p; + u3_weak ver = u3r_at(7, nun); + + if ( u3_none == ver ) { + // assume protocol version 0 + // + sam_u->ver_y = 0; + sam_u->fin_s.ver_y = 0; + } + else if ( (c3n == u3a_is_cat(ver)) + || (7 < ver) ) { + u3m_p("ames: strange protocol", nun); + sam_u->ver_y = 0; + sam_u->fin_s.ver_y = 0; + } + else { + sam_u->ver_y = ver; + sam_u->fin_s.ver_y = ver; + } + + // XX revise: filtering should probably be disabled if + // we get a protocol version above the latest one we know + // + sam_u->fig_u.fit_o = c3y; + u3z(nun); +} + +/* _ames_io_talk(): start receiving ames traffic. +*/ +static void +_ames_io_talk(u3_auto* car_u) +{ + u3_ames* sam_u = (u3_ames*)car_u; + _ames_io_start(sam_u); + + // send born event + // + // { + // // XX remove [sev_l] + // // + // u3_noun wir = u3nt(c3__newt, + // u3dc("scot", c3__uv, sam_u->sev_l), + // u3_nul); + // u3_noun cad = u3nc(c3__born, u3_nul); + + // u3_auto_plan(car_u, u3_ovum_init(0, c3__a, wir, cad)); + // } + + // scry the protocol version out of arvo + // + // XX this should be re-triggered periodically, + // or, better yet, %ames should emit a %turf + // (or some other reconfig) effect when it is reset. + // + u3_noun gang = u3nc(u3_nul, u3_nul); + // XX drop this; done at another level + // + u3_pier_peek_last(car_u->pir_u, gang, c3__ax, u3_nul, + u3nt(u3i_string("protocol"), u3i_string("version"), u3_nul), + sam_u, _ames_prot_scry_cb); +} + +/* _ames_kick_newt(): apply packet network outputs. +*/ +c3_o +_ames_kick_newt(u3_ames* sam_u, u3_noun tag, u3_noun dat) +{ + c3_o ret_o; + + switch ( tag ) { + default: { + ret_o = c3n; + } break; + + case c3__send: { + u3_noun lan = u3k(u3h(dat)); + u3_noun pac = u3k(u3t(dat)); + _ames_ef_send(sam_u, lan, pac); + ret_o = c3y; + } break; + + case c3__turf: { + _ames_ef_turf(sam_u, u3k(dat)); + ret_o = c3y; + } break; + + case c3__saxo: { + _ames_ef_saxo(sam_u, u3k(dat)); + ret_o = c3y; + } + + case c3__nail: { + u3_noun who = u3k(u3h(dat)); + u3_noun las = u3k(u3t(dat)); + _ames_lane_into_cache(sam_u->lax_p, who, las); + sam_u->nal_o = c3y; + ret_o = c3y; + } break; + + } + + u3z(tag); u3z(dat); + return ret_o; +} + +/* _ames_io_kick(): apply effects +*/ +static c3_o +_ames_io_kick(u3_auto* car_u, u3_noun wir, u3_noun cad) +{ + u3_ames* sam_u = (u3_ames*)car_u; + + u3_noun tag, dat, i_wir; + c3_o ret_o; + + if ( (c3n == u3r_cell(wir, &i_wir, 0)) + || (c3n == u3r_cell(cad, &tag, &dat)) ) + { + ret_o = c3n; + } + else { + switch ( i_wir ) { + default: { + ret_o = c3n; + } break; + + // XX should also be c3__ames + // + case c3__newt: { + ret_o = _ames_kick_newt(sam_u, u3k(tag), u3k(dat)); + } break; + + // XX obsolete + // + // used to also handle %west and %woot for tcp proxy setup + // + case c3__ames: { + ret_o = _( c3__init == tag); + } break; + + // this can return through dill due to our fscked up boot sequence + // + // XX s/b obsolete, verify + // + case c3__term: { + if ( c3__send != tag ) { + ret_o = c3n; + } + else { + u3l_log("kick: strange send\r"); + ret_o = _ames_kick_newt(sam_u, u3k(tag), u3k(dat)); + } + } break; + } + } + + u3z(wir); u3z(cad); + return ret_o; +} + +/* _ames_exit_cb(): dispose resources aftr close. +*/ +static void +_ames_exit_cb(uv_handle_t* had_u) +{ + u3_ames* sam_u = had_u->data; + + u3_panc* pan_u = sam_u->pan_u; + while (0 != pan_u) { + u3_panc* nex_u = pan_u->nex_u; + _ames_panc_free(pan_u); + pan_u = nex_u; + } + + u3h_free(sam_u->lax_p); + + u3s_cue_xeno_done(sam_u->sil_u); + ur_cue_test_done(sam_u->tes_u); + + c3_free(sam_u); +} + +/* _ames_io_exit(): terminate ames I/O. +*/ +static void +_ames_io_exit(u3_auto* car_u) +{ + u3_ames* sam_u = (u3_ames*)car_u; + uv_close(&sam_u->had_u, _ames_exit_cb); + uv_close((uv_handle_t*)&sam_u->sun_u.tim_u, 0); + uv_close((uv_handle_t*)&sam_u->nat_u.tim_u, 0); + + uv_handle_type handle = uv_handle_get_type((uv_handle_t *)&sam_u->nat_u.pol_u); + if ( UV_UNKNOWN_HANDLE != handle) { + uv_close((uv_handle_t*)&sam_u->nat_u.pol_u, 0); + } +} + +/* _ames_io_info(): produce status info. +*/ +static u3_noun +_ames_io_info(u3_auto* car_u) +{ + u3_ames* sam_u = (u3_ames*)car_u; + c3_w sac_w, lax_w; + + sac_w = u3h_count(sam_u->fin_s.sac_p) * 4; + u3h_discount(sam_u->fin_s.sac_p); + + lax_w = u3h_count(sam_u->lax_p) * 4; + u3h_discount(sam_u->lax_p); + + return u3i_list( + u3_pier_mase("filtering", sam_u->fig_u.fit_o), + u3_pier_mase("can-send", net_o), + u3_pier_mase("can-scry", sam_u->fig_u.see_o), + u3_pier_mase("stun-working", sam_u->sun_u.wok_o), + u3_pier_mase("scry-cache", u3i_word(u3h_wyt(sam_u->fin_s.sac_p))), + u3_pier_mase("scry-cache-size", u3i_word(sac_w)), + u3_pier_mase("lane-cache", u3i_word(u3h_wyt(sam_u->lax_p))), + u3_pier_mase("lane-cache-size", u3i_word(lax_w)), + u3_pier_mase("dropped", u3i_chub(sam_u->sat_u.dop_d)), + u3_pier_mase("forwards-dropped", u3i_chub(sam_u->sat_u.fod_d)), + u3_pier_mase("forwards-pending", u3i_chub(sam_u->sat_u.foq_d)), + u3_pier_mase("forwarded", u3i_chub(sam_u->sat_u.fow_d)), + u3_pier_mase("filtered-hed", u3i_chub(sam_u->sat_u.hed_d)), + u3_pier_mase("filtered-ver", u3i_chub(sam_u->sat_u.vet_d)), + u3_pier_mase("filtered-mug", u3i_chub(sam_u->sat_u.mut_d)), + u3_pier_mase("filtered-pre", u3i_chub(sam_u->sat_u.pre_d)), + u3_pier_mase("filtered-wal", u3i_chub(sam_u->sat_u.wal_d)), + u3_pier_mase("filtered-wap", u3i_chub(sam_u->sat_u.wap_d)), + u3_pier_mase("crashed", u3i_chub(sam_u->sat_u.fal_d)), + u3_pier_mase("evil", u3i_chub(sam_u->sat_u.vil_d)), + u3_pier_mase("lane-scry-fails", u3i_chub(sam_u->sat_u.saw_d)), + u3_pier_mase("cached-lanes", u3i_word(u3h_wyt(sam_u->lax_p))), + u3_none); +} + +/* _ames_io_slog(): print status info. +*/ +static void +_ames_io_slog(u3_auto* car_u) +{ + u3_ames* sam_u = (u3_ames*)car_u; + c3_w sac_w, lax_w; + + sac_w = u3h_count(sam_u->fin_s.sac_p) * 4; + u3h_discount(sam_u->fin_s.sac_p); + + lax_w = u3h_count(sam_u->lax_p) * 4; + u3h_discount(sam_u->lax_p); + + +# define FLAG(a) ( (c3y == a) ? "&" : "|" ) + + // TODO rewrite in terms of info_f + // + u3l_log(" config:"); + u3l_log(" filtering: %s", FLAG(sam_u->fig_u.fit_o)); + u3l_log(" can send: %s", FLAG(net_o)); + u3l_log(" can scry: %s", FLAG(sam_u->fig_u.see_o)); + u3l_log(" stun:"); + u3l_log(" working: %s", FLAG(sam_u->sun_u.wok_o)); + u3l_log(" caches:"); + u3l_log(" cached lanes: %u, %u B", u3h_wyt(sam_u->lax_p), lax_w); + u3l_log(" cached meows: %u, %u B", u3h_wyt(sam_u->fin_s.sac_p), sac_w); + u3l_log(" counters:"); + u3l_log(" dropped: %" PRIu64, sam_u->sat_u.dop_d); + u3l_log(" forwards dropped: %" PRIu64, sam_u->sat_u.fod_d); + u3l_log(" forwards pending: %" PRIu64, sam_u->sat_u.foq_d); + u3l_log(" forwarded: %" PRIu64, sam_u->sat_u.fow_d); + u3l_log(" filtered (hed): %" PRIu64, sam_u->sat_u.hed_d); + u3l_log(" filtered (ver): %" PRIu64, sam_u->sat_u.vet_d); + u3l_log(" filtered (mug): %" PRIu64, sam_u->sat_u.mut_d); + u3l_log(" filtered (pre): %" PRIu64, sam_u->sat_u.pre_d); + u3l_log(" filtered (wal): %" PRIu64, sam_u->sat_u.wal_d); + u3l_log(" filtered (wap): %" PRIu64, sam_u->sat_u.wap_d); + u3l_log(" crashed: %" PRIu64, sam_u->sat_u.fal_d); + u3l_log(" evil: %" PRIu64, sam_u->sat_u.vil_d); + u3l_log(" lane scry fails: %" PRIu64, sam_u->sat_u.saw_d); + u3l_log(" cached lanes: %u", u3h_wyt(sam_u->lax_p)); +} + +/* u3_ames_io_init(): initialize ames I/O. +*/ +u3_auto* +u3_ames_io_init(u3_pier* pir_u) +{ + u3_ames* sam_u = c3_calloc(sizeof(*sam_u)); + sam_u->pir_u = pir_u; + sam_u->nal_o = c3n; + sam_u->fig_u.see_o = c3y; + sam_u->fig_u.fit_o = c3n; + sam_u->sun_u.wok_o = c3n; + sam_u->zar_u.dom_o = c3n; + + uv_timer_init(u3L, &sam_u->zar_u.tim_u); + sam_u->zar_u.tim_u.data = sam_u; + + uv_timer_init(u3L, &sam_u->sun_u.tim_u); + sam_u->sun_u.tim_u.data = sam_u; + + // initialize libnatpmp + sam_u->nat_u.tim_u.data = sam_u; + uv_timer_init(u3L, &sam_u->nat_u.tim_u); + + // enable forwarding on galaxies only + u3_noun who = u3i_chubs(2, sam_u->pir_u->who_d); + u3_noun rac = u3do("clan:title", who); + sam_u->sat_u.for_o = ( c3__czar == rac ) ? c3y : c3n; + + // hashtable for scry cache + // + // 1500 bytes per packet * 100_000 = 150MB + // 50 bytes (average) per path * 100_000 = 5MB + sam_u->fin_s.sac_p = u3h_new_cache(100000); + + //NOTE some numbers on memory usage for the lane cache + // + // assuming we store: + // a (list lane) with 1 item, 1+8 + 1 + (6*2) = 22 words + // and a @da as timestamp, 8 words + // consed together, 6 words + // with worst-case (128-bit) @p keys, 8 words + // and an additional cell for the k-v pair, 6 words + // that makes for a per-entry memory use of 50 words => 200 bytes + // + // the 500k entries below would take about 100mb (in the worst case, but + // not accounting for hashtable overhead). + // we could afford more, but 500k entries is more than we'll likely use + // in the near future. + // + sam_u->lax_p = u3h_new_cache(500000); + + u3_assert( !uv_udp_init(u3L, &sam_u->wax_u) ); + u3_assert( !uv_udp_init_ex(u3L, &u3_Host.wax_u, UV_UDP_RECVMMSG) ); + sam_u->wax_u.data = sam_u; + + sam_u->sil_u = u3s_cue_xeno_init(); + sam_u->tes_u = ur_cue_test_init(); + + // Disable networking for fake ships + // + if ( c3y == sam_u->pir_u->fak_o ) { + u3_Host.ops_u.net = c3n; + } + + u3_auto* car_u = &sam_u->car_u; + car_u->nam_m = c3__ames; + car_u->liv_o = c3n; + car_u->io.talk_f = _ames_io_talk; + car_u->io.info_f = _ames_io_info; + car_u->io.slog_f = _ames_io_slog; + car_u->io.kick_f = _ames_io_kick; + car_u->io.exit_f = _ames_io_exit; + + sam_u->fin_s.sam_u = sam_u; + + { + u3_noun now; + struct timeval tim_u; + gettimeofday(&tim_u, 0); + + now = u3_time_in_tv(&tim_u); + sam_u->sev_l = u3r_mug(now); + u3z(now); + } + + // XX declare void pointer to u3_host and add sam_u in it + u3_Host.sam_u = sam_u; + u3_Host.imp_u = sam_u->zar_u.pip_w; + return car_u; +} diff --git a/vere/pkg/vere/io/ames/stun.c b/vere/pkg/vere/io/ames/stun.c new file mode 100644 index 0000000..0f830c1 --- /dev/null +++ b/vere/pkg/vere/io/ames/stun.c @@ -0,0 +1,192 @@ +#include "vere.h" +#include "zlib.h" + +static c3_y* +_stun_add_fingerprint(c3_y *message, c3_w index) +{ + // Compute FINGERPRINT value as CRC-32 of the STUN message + // up to (but excluding) the FINGERPRINT attribute itself, + // XOR'ed with the 32-bit value 0x5354554e + c3_w init = crc32(0L, Z_NULL, 0); + c3_w crc = htonl(crc32(init, message, index) ^ 0x5354554e); + + // STUN attribute type: "FINGERPRINT" + message[index] = 0x80; message[index + 1] = 0x28; + // STUN attribute length: 4 bytes + message[index + 2] = 0x00; message[index + 3] = 0x04; + + memcpy(message + index + 4, &crc, 4); + + return message; +} + +static c3_o +_stun_has_fingerprint(c3_y* buf_y, c3_w buf_len_w) +{ + c3_y ned_y[4] = {0x80, 0x28, 0x00, 0x04}; + if ( buf_len_w < 28 ) { // At least STUN header and FINGERPRINT + return c3n; + } + + { + c3_y* fin_y = 0; + c3_w i = 20; // start after the header + + fin_y = memmem(buf_y + i, buf_len_w - i, ned_y, sizeof(ned_y)); + if ( fin_y != 0 ) { + c3_w lin_w = fin_y - buf_y; + // Skip attribute type and length + c3_w fingerprint = c3_sift_word(fin_y + sizeof(ned_y)); + c3_w init = crc32(0L, Z_NULL, 0); + c3_w crc = htonl(crc32(init, buf_y, lin_w) ^ 0x5354554e); + if ((fingerprint == crc) && (fin_y - buf_y + 8) == buf_len_w) { + return c3y; + } + } + + return c3n; + } +} + +/* u3_stun_is_request(): buffer is a stun request. +*/ +c3_o +u3_stun_is_request(c3_y* buf_y, c3_w len_w) +{ + c3_w cookie = htonl(0x2112A442); + + // Expects at least: + // STUN header and 8 byte FINGERPRINT + if ( (len_w >= 28) && + (buf_y[0] == 0x0 && buf_y[1] == 0x01) && + (memcmp(&cookie, buf_y + 4, 4) == 0) && + (c3y == _stun_has_fingerprint(buf_y, len_w)) ) + { + return c3y; + } + return c3n; +} + +/* u3_stun_is_our_response(): buffer is a response to our request. +*/ +c3_o +u3_stun_is_our_response(c3_y* buf_y, c3_y tid_y[12], c3_w len_w) +{ + c3_w cookie = htonl(0x2112A442); + + // Expects at least: + // STUN header, 12 byte XOR-MAPPED-ADDRESS and 8 byte FINGERPRINT + if ( (len_w == 40) && + (buf_y[0] == 0x01 && buf_y[1] == 0x01) && + (memcmp(&cookie, buf_y + 4, 4) == 0) && + (memcmp(tid_y, buf_y + 8, 12) == 0) && + (c3y == _stun_has_fingerprint(buf_y, len_w)) ) + { + return c3y; + } + return c3n; +} + +/* u3_stun_make_request(): serialize stun request. +*/ +void +u3_stun_make_request(c3_y buf_y[28], c3_y tid_y[12]) +{ + // see STUN RFC 8489 + // https://datatracker.ietf.org/doc/html/rfc8489#section-5 + memset(buf_y, 0, 28); + + // STUN message type: "binding request" + buf_y[1] = 0x01; + + // STUN message length: 8 (header and 32-bit FINGERPRINT) + buf_y[2] = 0x00; buf_y[3] = 0x08; + + // STUN "magic cookie" 0x2112A442 in network byte order + buf_y[4] = 0x21; buf_y[5] = 0x12; buf_y[6] = 0xa4; buf_y[7] = 0x42; + + // STUN "transaction id" + memcpy(buf_y + 8, tid_y, 12); + + // FINGERPRINT + _stun_add_fingerprint(buf_y, 20); +} + +/* u3_stun_make_response(): serialize stun response from request. +*/ +void +u3_stun_make_response(const c3_y req_y[20], + u3_lane* lan_u, + c3_y buf_y[40]) +{ + c3_w cok_w = 0x2112A442; + c3_w cur_w = 20; + + // XX hardcoded to match the requests we produce + // + memcpy(buf_y, req_y, cur_w); + buf_y[0] = 0x01; buf_y[1] = 0x01; // 0x0101 SUCCESS RESPONSE + buf_y[2] = 0x00; buf_y[3] = 0x14; // Length: 20 bytes + + buf_y[0] = 0x01; buf_y[1] = 0x01; // 0x0101 SUCCESS RESPONSE + buf_y[2] = 0x00; buf_y[3] = 0x14; // Length: 20 bytes + + memset(buf_y + cur_w, 0, cur_w); + + // XOR-MAPPED-ADDRESS + buf_y[cur_w + 0] = 0x00; // + buf_y[cur_w + 1] = 0x20; // attribute type 0x00020 + buf_y[cur_w + 2] = 0x00; // + buf_y[cur_w + 3] = 0x08; // STUN attribute length + buf_y[cur_w + 4] = 0x00; // extra reserved 0x0 byte + buf_y[cur_w + 5] = 0x01; // family 0x01:IPv4 + + c3_s por_s = htons(lan_u->por_s ^ (cok_w >> 16)); + c3_w pip_w = htonl(lan_u->pip_w ^ cok_w); + + memcpy(buf_y + cur_w + 6, &por_s, 2); // X-Port + memcpy(buf_y + cur_w + 8, &pip_w, 4); // X-IP Addres + + // FINGERPRINT + _stun_add_fingerprint(buf_y, cur_w + 12); +} + +/* u3_stun_find_xor_mapped_address(): extract lane from response. +*/ +c3_o +u3_stun_find_xor_mapped_address(c3_y* buf_y, + c3_w len_w, + u3_lane* lan_u) +{ + c3_y xor_y[4] = {0x00, 0x20, 0x00, 0x08}; + c3_w cookie = 0x2112A442; + + if ( len_w < 40 ) { // At least STUN header, XOR-MAPPED-ADDRESS & FINGERPRINT + return c3n; + } + + c3_w i = 20; // start after header + + c3_y* fin_y = memmem(buf_y + i, len_w - i, xor_y, sizeof(xor_y)); + if ( fin_y != 0 ) { + c3_w cur = (c3_w)(fin_y - buf_y) + sizeof(xor_y); + + if ( (buf_y[cur] != 0x0) && (buf_y[cur+1] != 0x1) ) { + return c3n; + } + + cur += 2; + + lan_u->por_s = ntohs(c3_sift_short(buf_y + cur)) ^ (cookie >> 16); + lan_u->pip_w = ntohl(c3_sift_word(buf_y + cur + 2)) ^ cookie; + + if ( u3C.wag_w & u3o_verbose ) { + c3_w nip_w = htonl(lan_u->pip_w); + c3_c nip_c[INET_ADDRSTRLEN]; + inet_ntop(AF_INET, &nip_w, nip_c, INET_ADDRSTRLEN); + u3l_log("stun: hear ip:port %s:%u", nip_c, lan_u->por_s); + } + return c3y; + } + return c3n; +} diff --git a/vere/pkg/vere/io/ames/stun.h b/vere/pkg/vere/io/ames/stun.h new file mode 100644 index 0000000..0fcaff6 --- /dev/null +++ b/vere/pkg/vere/io/ames/stun.h @@ -0,0 +1,35 @@ +#include "vere.h" + +#ifndef U3_STUN_H +#define U3_STUN_H + + /* u3_stun_is_request(): buffer is a stun request. + */ + c3_o + u3_stun_is_request(c3_y* buf_y, c3_w len_w); + + /* u3_stun_is_our_response(): buffer is a response to our request. + */ + c3_o + u3_stun_is_our_response(c3_y* buf_y, c3_y tid_y[12], c3_w len_w); + + /* u3_stun_make_request(): serialize stun request. + */ + void + u3_stun_make_request(c3_y buf_y[28], c3_y tid_y[12]); + + /* u3_stun_make_response(): serialize stun response from request. + */ + void + u3_stun_make_response(const c3_y req_y[20], + u3_lane* lan_u, + c3_y buf_y[40]); + + /* u3_stun_find_xor_mapped_address(): extract lane from response. + */ + c3_o + u3_stun_find_xor_mapped_address(c3_y* buf_y, + c3_w len_w, + u3_lane* lan_u); + +#endif /* ifndef U3_STUN_H */ diff --git a/vere/pkg/vere/io/behn.c b/vere/pkg/vere/io/behn.c new file mode 100644 index 0000000..d2db3ce --- /dev/null +++ b/vere/pkg/vere/io/behn.c @@ -0,0 +1,257 @@ +/// @file + +#include "vere.h" + +#include "noun.h" + +/* u3_behn: just a timer for ever +*/ + typedef struct _u3_behn { + u3_auto car_u; // driver + uv_timer_t tim_u; // behn timer + c3_o alm_o; // alarm + c3_l sev_l; // instance numbers + } u3_behn; + +// XX review, move +// +/* _behn_bail_dire(): c3y if fatal error. RETAIN +*/ +static c3_o +_behn_bail_dire(u3_noun lud) +{ + u3_noun mot = u3r_at(4, lud); + + if ( (c3__meme == mot) + || (c3__intr == mot) ) + { + return c3n; + } + + return c3y; +} + +/* _behn_wake_bail(): %wake is essential, retry failures. +*/ +static void +_behn_wake_bail(u3_ovum* egg_u, u3_noun lud) +{ + u3_auto* car_u = egg_u->car_u; + + if ( (2 > egg_u->try_w) + && (c3n == _behn_bail_dire(lud)) ) + { + u3z(lud); + u3_auto_redo(car_u, egg_u); + } + else { + u3_auto_bail_slog(egg_u, lud); + u3_ovum_free(egg_u); + + u3l_log("behn: timer failed; queue blocked"); + + if ( c3n == u3_Host.ops_u.beb ) { + u3_pier_bail(car_u->pir_u); + } + else { + u3l_log("vere: warning: continuing without timers"); + } + } +} + +/* _behn_time_cb(): timer callback. +*/ +static void +_behn_time_cb(uv_timer_t* tim_u) +{ + u3_behn* teh_u = tim_u->data; + teh_u->alm_o = c3n; + + // start another timer for 10 minutes + // + // This is a backstop to deal with the case where a %doze is not + // properly sent, for example after a crash. If the timer continues + // to fail, we can't proceed with the timers, but if it was a + // transient error, this will get us past it. + // + { + c3_d gap_d = 10 * 60 * 1000; + teh_u->alm_o = c3y; + uv_timer_start(&teh_u->tim_u, _behn_time_cb, gap_d, 0); + } + + // send timer event + // + { + u3_noun wir = u3nc(c3__behn, u3_nul); + u3_noun cad = u3nc(c3__wake, u3_nul); + + u3_auto_peer( + u3_auto_plan(&teh_u->car_u, u3_ovum_init(0, c3__b, wir, cad)), + 0, 0, _behn_wake_bail); + } +} + +/* u3_behn_ef_doze(): set or cancel timer +*/ +static void +_behn_ef_doze(u3_behn* teh_u, u3_noun wen) +{ + if ( c3n == teh_u->car_u.liv_o ) { + teh_u->car_u.liv_o = c3y; + } + + if ( c3y == teh_u->alm_o ) { + uv_timer_stop(&teh_u->tim_u); + teh_u->alm_o = c3n; + } + + if ( (u3_nul != wen) && + (c3y == u3du(wen)) && + (c3y == u3ud(u3t(wen))) ) + { + struct timeval tim_tv; + gettimeofday(&tim_tv, 0); + + u3_noun now = u3_time_in_tv(&tim_tv); + c3_d gap_d = u3_time_gap_ms(now, u3k(u3t(wen))); + + teh_u->alm_o = c3y; + uv_timer_start(&teh_u->tim_u, _behn_time_cb, gap_d, 0); + } + + u3z(wen); +} + +/* _behn_born_news(): initialization complete on %born. +*/ +static void +_behn_born_news(u3_ovum* egg_u, u3_ovum_news new_e) +{ + u3_auto* car_u = egg_u->car_u; + + if ( u3_ovum_done == new_e ) { + car_u->liv_o = c3y; + } +} + +/* _behn_born_bail(): %born is essential, retry failures. +*/ +static void +_behn_born_bail(u3_ovum* egg_u, u3_noun lud) +{ + u3_auto* car_u = egg_u->car_u; + + if ( (2 > egg_u->try_w) + && (c3n == _behn_bail_dire(lud)) ) + { + u3z(lud); + u3_auto_redo(car_u, egg_u); + } + else { + u3_auto_bail_slog(egg_u, lud); + u3_ovum_free(egg_u); + + u3l_log("behn: initialization failed"); + + // XX review, add flag to continue? + // + u3_pier_bail(car_u->pir_u); + } +} +/* _behn_io_talk(): notify %behn that we're live +*/ +static void +_behn_io_talk(u3_auto* car_u) +{ + u3_behn* teh_u = (u3_behn*)car_u; + + // XX remove [sev_l] + // + u3_noun wir = u3nt(c3__behn, + u3dc("scot", c3__uv, teh_u->sev_l), + u3_nul); + u3_noun cad = u3nc(c3__born, u3_nul); + + u3_auto_peer( + u3_auto_plan(car_u, u3_ovum_init(0, c3__b, wir, cad)), + 0, + _behn_born_news, + _behn_born_bail); +} + +/* _behn_io_kick(): apply effects. +*/ +static c3_o +_behn_io_kick(u3_auto* car_u, u3_noun wir, u3_noun cad) +{ + u3_behn* teh_u = (u3_behn*)car_u; + + u3_noun tag, dat, i_wir; + c3_o ret_o; + + if ( (c3n == u3r_cell(wir, &i_wir, 0)) + || (c3n == u3r_cell(cad, &tag, &dat)) + || (c3__behn != i_wir) + || (c3__doze != tag) ) + { + ret_o = c3n; + } + else { + ret_o = c3y; + _behn_ef_doze(teh_u, u3k(dat)); + } + + u3z(wir); u3z(cad); + return ret_o; +} + +/* _behn_exit_cb(); +*/ +static void +_behn_exit_cb(uv_timer_t* tim_u) +{ + u3_behn* teh_u = tim_u->data; + c3_free(teh_u); +} + +/* _behn_io_exit(): terminate timer. +*/ +static void +_behn_io_exit(u3_auto* car_u) +{ + u3_behn* teh_u = (u3_behn*)car_u; + uv_close((uv_handle_t*)&teh_u->tim_u, (uv_close_cb)_behn_exit_cb); +} + +/* u3_behn(): initialize time timer. +*/ +u3_auto* +u3_behn_io_init(u3_pier* pir_u) +{ + u3_behn* teh_u = c3_calloc(sizeof(*teh_u)); + teh_u->alm_o = c3n; + + uv_timer_init(u3L, &teh_u->tim_u); + teh_u->tim_u.data = teh_u; + + u3_auto* car_u = &teh_u->car_u; + car_u->nam_m = c3__behn; + + car_u->liv_o = c3n; + car_u->io.talk_f = _behn_io_talk; + car_u->io.kick_f = _behn_io_kick; + car_u->io.exit_f = _behn_io_exit; + + { + u3_noun now; + struct timeval tim_u; + gettimeofday(&tim_u, 0); + + now = u3_time_in_tv(&tim_u); + teh_u->sev_l = u3r_mug(now); + u3z(now); + } + + return car_u; +} diff --git a/vere/pkg/vere/io/conn.c b/vere/pkg/vere/io/conn.c new file mode 100644 index 0000000..85966f0 --- /dev/null +++ b/vere/pkg/vere/io/conn.c @@ -0,0 +1,966 @@ +/// @file + +/* +** implements the control plane: a socket that can be used to +** query and interact with an urbit ship from earth. +** +** the control plane nominally consumes input described by: +** +** $: request-id=@ :: id for response +** $% [%fyrd fyrd-args=*] :: run a thread +** [%peek peek-args=*] :: scry +** [%peel peel-args=*] :: runtime peek +** [%ovum ovum-args=*] :: inject raw ovum +** [%urth urth-args=*] :: runtime command +** == == :: +** +** request-id is a client-supplied atomic identifier that will +** be returned along with the response, to allow correlating +** responses with requests. +** +** responses are [request-id=@ data=*]. if the driver encounters +** an error, then it will try to send a %bail response with +** request-id set to 0, i.e.: +** +** [0 %bail error-code=@ error-string=@t] +** +** and subsequently close the connection. +** +** %fyrd is a request to run a thread. its arguments are +** described in the ++khan section of sys/lull.hoon. to +** summarize: +** +** +$ task $%(... [%fyrd p=(fyrd cast)]) :: +** +$ bear $@(desk beak) :: partial $beak +** +$ cast (pair mark page) :: output mark +input +** ++ fyrd |$ [a] [=bear name=term args=a] :: thread run request +** +** the cast's mark is applied to the output. the page (untyped +** cage, or pair of mark and noun) in args contains the input +** mark. e.g. to run -hi with the ship ~zod as input, receiving +** output as a tape, with request-id set to 32, send the +jam of +** this noun over the socket with newt framing: +** +** [32 %fyrd [%base %hi %tape [%ship ~zod]]] +** +** responses to %fyrd are: +** +** +$ gift $%(... [%avow p=(avow page)]) :: +** ++ avow |$ [a] (each a goof) :: +** +** %peek is a namespace read request (aka scry), and will be +** forwarded directly to arvo. its arguments are the nom of the +** external peek interface in arvo, at arm 22. (lyc is always +** `~, i.e. request from self.) that is: +** +** $+ each path +** $% [%once vis=view syd=desk tyl=spur] +** [%beam vis=view bem=beam] +** == +** +** %peel is a runtime "peek". it exposes an unprincipled +** scry-like namespace allowing querying of various metrics +** about the state of vere. it accepts $path-like arguments, +** i.e. nul-terminated lists of $knot. it responds with a +** (unit). +** +** the %peel path /help produces a list of available commands. +** /info produces runtime metrics at the moment in time that the +** request was received. the type produced by /info is $mass: +** +** +$ mass (pair cord (each * (list mass))) +** +** where the leaves are conventionally @ud, but the +** precise interpretation depends on the metric (e.g. +** loobean settings or integer counters.) it is acceptable +** to flatten the list by prepending the parent cord +** to each child element with a separator, e.g.: +** [%pier %| [%ames %| [%packets-sent %& 37] ~] ~] could be +** rendered as 'pier-ames-packets-sent'. this transformation is +** guaranteed to result in unique names. +** +** %ovum is a raw kernel move, to be injected directly into +** arvo. needless to say this will void your warranty. usually +** you want to use %fyrd instead. an update will be sent: %done +** on successful completion, %bail with a stack trace on error, +** or %drop if the ovum is dropped. +** +** %urth is a command for the runtime. these are acked with %.y +** on receipt. no further updates are provided. +** +** messages use newt framing. because the framing begins with +** a tag byte, any messages that do not contain that byte are +** reserved for future use. +** +*/ +#include "vere.h" + +#include +#include +#include +#include +#include + +#include "noun.h" +#include "uv.h" +#include "version.h" + +/* u3_cran: control plane request. +*/ + typedef struct _u3_cran { + u3_atom rid; // client-supplied request id + struct _u3_chan* can_u; // connection backpointer + struct _u3_cran* nex_u; // next pointer + } u3_cran; + +/* u3_chan: incoming control plane connection. +*/ + typedef struct _u3_chan { + struct _u3_moor mor_u; // message handler + c3_l coq_l; // connection number + c3_o liv_o; // connection live + struct _u3_shan* san_u; // server backpointer + struct _u3_cran* ran_u; // request list + } u3_chan; + +/* u3_shan: control plane server. +*/ + typedef struct _u3_shan { + uv_pipe_t pyp_u; // server stream handler + c3_l nex_l; // next connection number + struct _u3_conn* con_u; // device backpointer + struct _u3_chan* can_u; // connection list + } u3_shan; + +/* u3_conn: control plane device. +*/ + typedef struct _u3_conn { + u3_auto car_u; // driver + c3_l sev_l; // instance number + struct _u3_shan* san_u; // server reference + u3_cue_xeno* sil_u; // cue handle + c3_o kan_o; // %khan present? + } u3_conn; + +static const c3_c URB_SOCK_PATH[] = ".urb/conn.sock"; + +/* _conn_close_cb(): socket close callback. +*/ +static void +_conn_close_cb(uv_handle_t* had_u) +{ + c3_free(had_u); +} + +/* _conn_mote_free(): u3_moat-shaped close callback. +*/ +static void +_conn_moat_free(void* ptr_v, ssize_t err_i, const c3_c* err_c) +{ + c3_free(ptr_v); +} + +/* _conn_send_noun(): jam and send noun over chan. +*/ +static void +_conn_send_noun(u3_chan* can_u, u3_noun nun) +{ + c3_y* byt_y; + c3_d len_d; + + u3s_jam_xeno(nun, &len_d, &byt_y); + u3z(nun); + u3_newt_send((u3_mojo*)&can_u->mor_u, len_d, byt_y); +} + +/* _conn_find_chan(): lookup channel by connection number. +*/ +static u3_chan* +_conn_find_chan(u3_conn* con_u, c3_l sev_l, c3_l coq_l) +{ + u3_chan* ret_u; + + for ( ret_u = con_u->san_u->can_u; + ret_u; + ret_u = (u3_chan*)ret_u->mor_u.nex_u ) { + if ( coq_l == ret_u->coq_l ) { + return ret_u; + } + } + return 0; +} + +/* _conn_read_wire(): check tag, decompose wire into /sev/coq/rid +*/ +static c3_o +_conn_read_wire(u3_noun wir, + c3_l tag_l, + c3_l* sev_l, + c3_l* coq_l, + u3_atom* rid) +{ + u3_noun i_wir, t_wir; + + if ( (c3n == u3r_cell(wir, &i_wir, &t_wir)) || + (tag_l != i_wir) ) + { + u3z(wir); return c3n; + } + else { + u3_noun pud = t_wir; + u3_noun p_pud, t_pud, tt_pud, q_pud, r_pud, s_pud, + uco, p_uco, q_uco; + + if ( (c3n == u3r_cell(pud, &p_pud, &t_pud)) || + (c3n == u3v_lily(c3__uv, u3k(p_pud), sev_l)) ) + { + u3z(wir); return c3n; + } + if ( u3_nul == t_pud ) { + *coq_l = 0; *rid = 0; + } + else { + if ( (c3n == u3r_cell(t_pud, &q_pud, &tt_pud)) || + (c3n == u3v_lily(c3__ud, u3k(q_pud), coq_l)) ) + { + u3z(wir); return c3n; + } + if ( u3_nul == tt_pud ) { + *rid = 0; + } + else { + if ( (c3n == u3r_cell(tt_pud, &r_pud, &s_pud)) || + (u3_nul != s_pud) || + (c3n == u3ud(r_pud)) ) + { + u3z(wir); return c3n; + } + uco = u3dc("slaw", c3__uv, u3k(r_pud)); + if ( (c3n == u3r_cell(uco, &p_uco, &q_uco)) || + (u3_nul != p_uco) ) + { + u3z(uco); u3z(wir); return c3n; + } + *rid = u3k(q_uco); + u3z(uco); + } + } + u3z(wir); return c3y; + } +} + +/* _conn_poke_bail(): error function on failed %fyrd. +*/ +static void +_conn_poke_bail(u3_ovum* egg_u, u3_noun lud) +{ + u3_conn* con_u = (u3_conn*)egg_u->car_u; + u3_chan* can_u; + u3_noun wir = egg_u->wir; + c3_l sev_l, coq_l; + u3_atom rid; + + u3_auto_bail_slog(egg_u, u3k(lud)); + if ( (c3n == _conn_read_wire(u3k(wir), c3__khan, &sev_l, &coq_l, &rid)) || + (con_u->sev_l != sev_l) ) + { + // wtf? + // + u3_assert(!"not reached"); + u3z(lud); return; + } + can_u = _conn_find_chan(con_u, sev_l, coq_l); + if ( can_u ) { + _conn_send_noun(can_u, u3nt(rid, c3__bail, lud)); + } + else { + u3z(rid); u3z(lud); + } + u3_ovum_free(egg_u); +} + +/* _conn_close_chan(): close given channel, freeing. +*/ +static void +_conn_close_chan(u3_shan* san_u, u3_chan* can_u) +{ + u3_conn* con_u = san_u->con_u; + u3_chan* inn_u; + u3_cran* ran_u; + + // unset chan on all pending requests. + // + for ( ran_u = can_u->ran_u; ran_u; ran_u = ran_u->nex_u ) { + ran_u->can_u = 0; + } + + // remove chan from server's connection list. + // + if ( san_u->can_u == can_u ) { + san_u->can_u = (u3_chan*)can_u->mor_u.nex_u; + } + else { + for ( inn_u = san_u->can_u; inn_u; inn_u = (u3_chan*)inn_u->mor_u.nex_u ) { + if ( (u3_chan*)inn_u->mor_u.nex_u == can_u ) { + inn_u->mor_u.nex_u = can_u->mor_u.nex_u; + break; + } + } + } + can_u->mor_u.nex_u = NULL; + + // send a close event to arvo and stop reading. + // + if ( _(con_u->kan_o) ) { + u3_noun wir, cad; + + wir = u3nq(c3__khan, + u3dc("scot", c3__uv, con_u->sev_l), + u3dc("scot", c3__ud, can_u->coq_l), + u3_nul); + cad = u3nc(c3__done, u3_nul); + u3_auto_peer( + u3_auto_plan(&con_u->car_u, + u3_ovum_init(0, c3__k, wir, cad)), + 0, 0, _conn_poke_bail); + } + u3_newt_moat_stop((u3_moat*)&can_u->mor_u, _conn_moat_free); +} + +/* _conn_moor_bail(): error callback for u3_moor. +*/ +static void +_conn_moor_bail(void* ptr_v, ssize_t err_i, const c3_c* err_c) +{ + u3_chan* can_u = (u3_chan*)ptr_v; + u3_shan* san_u = can_u->san_u; + + if ( err_i != UV_EOF ) { + u3l_log("conn: moor bail %zd %s", err_i, err_c); + can_u->liv_o = c3n; + } + + _conn_close_chan(san_u, can_u); +} + +/* _conn_drop_cran(): finalize/remove request from chan (does not u3z rid.) +*/ +static void +_conn_drop_cran(u3_chan* can_u, u3_cran* ran_u) +{ + u3_cran* inn_u; + + // remove from pending list, special-case for head. + // + if ( ran_u == can_u->ran_u ) { + can_u->ran_u = ran_u->nex_u; + } + else { + for ( inn_u = can_u->ran_u; inn_u; inn_u = inn_u->nex_u ) { + if ( ran_u == inn_u->nex_u ) { + inn_u->nex_u = ran_u->nex_u; + break; + } + } + } + c3_free(ran_u); +} + +/* _conn_peek_cb(): scry result handler. +*/ +static void +_conn_peek_cb(void* ptr_v, u3_noun res) +{ + u3_cran* ran_u = (u3_cran*)ptr_v; + u3_chan* can_u = ran_u->can_u; + + if ( !can_u ) { + // chan was closed; noop. + // + u3z(ran_u->rid); c3_free(ran_u); + u3z(res); return; + } + _conn_send_noun(can_u, u3nt(ran_u->rid, c3__peek, res)); + _conn_drop_cran(can_u, ran_u); +} + +/* _conn_ovum_bail(): bail callback on injected event. +*/ +static void +_conn_ovum_bail(u3_ovum* egg_u, u3_noun lud) +{ + u3_cran* ran_u = egg_u->ptr_v; + u3_chan* can_u = ran_u->can_u; + + u3_auto_bail_slog(egg_u, u3k(lud)); + if ( !can_u ) { + // chan was closed; noop. + // + u3z(ran_u->rid); c3_free(ran_u); + u3z(lud); return; + } + _conn_send_noun(can_u, u3nt(ran_u->rid, c3__bail, lud)); + _conn_drop_cran(can_u, ran_u); + u3_ovum_free(egg_u); +} + +/* _conn_ovum_news(): lifecycle callback for injected events. +*/ +static void +_conn_ovum_news(u3_ovum* egg_u, u3_ovum_news new_e) +{ + u3_cran* ran_u = egg_u->ptr_v; + u3_chan* can_u = ran_u->can_u; + + if ( u3_ovum_done == new_e || + u3_ovum_drop == new_e ) + { + if ( can_u ) { + _conn_send_noun(can_u, + u3nt(ran_u->rid, c3__news, + ( u3_ovum_done == new_e + ? c3__done + : c3__drop ))); + _conn_drop_cran(can_u, ran_u); + } + else { + u3z(ran_u->rid); c3_free(ran_u); + } + } +} + +/* _conn_make_cran(): alloc/init new request. +*/ +static u3_cran* +_conn_make_cran(u3_chan* can_u, u3_atom rid) +{ + u3_cran* ran_u = c3_calloc(sizeof(*ran_u)); + + ran_u->rid = rid; + ran_u->can_u = can_u; + ran_u->nex_u = can_u->ran_u; + can_u->ran_u = ran_u; + return ran_u; +} + +static void +_conn_peel_quiz_cb(c3_m mot_m, void* ptr_v, u3_noun res) +{ + u3_cran* ran_u = ptr_v; + u3_chan* can_u = ran_u->can_u; + + if ( !can_u ) { + // chan was closed; noop. + // + u3z(ran_u->rid); c3_free(ran_u); + u3z(res); return; + } + + _conn_send_noun(can_u, u3nt(ran_u->rid, c3__peel, res)); + _conn_drop_cran(can_u, ran_u); +} + +static void +_conn_async_peel(u3_conn* con_u, + u3_chan* can_u, + u3_atom rid, + u3_noun dat) +{ + u3_pier* pir_u = con_u->car_u.pir_u; + c3_m mot_m = u3h(dat); + + switch ( mot_m ) { + case c3__quic: + case c3__mass: { + u3_lord_quiz(pir_u->god_u, + (c3__quic == mot_m) ? c3__quic : c3__quac, + _conn_make_cran(can_u, rid), _conn_peel_quiz_cb); + } break; + + default: u3_assert(0); + } + + u3z(dat); +} + +/* _conn_read_peel(): response to a %peel request, sans rid. +*/ +static u3_weak +_conn_read_peel(u3_conn* con_u, u3_noun dat) +{ + u3_pier* pir_u = con_u->car_u.pir_u; + u3_noun i_dat, t_dat, it_dat, tt_dat; + u3_weak res; + + if ( c3n == u3r_cell(dat, &i_dat, &t_dat) ) { + res = u3_nul; + } + else if ( u3_nul == t_dat ) { + // zero-argument requests. + // + switch (i_dat) { + default: { + res = u3_nul; + } break; + // command list. + // + case c3__help: { + res = u3nc( + u3_nul, + u3i_list(u3nc(c3__help, u3_nul), u3nc(c3__info, u3_nul), + u3nc(c3__khan, u3_nul), u3nc(c3__live, u3_nul), + u3nc(c3__mass, u3_nul), + u3nc(c3__quic, u3_nul), + u3nc(c3__port, + u3i_list(c3__ames, c3__htls, c3__http, u3_none)), + u3nc(c3__v, u3_nul), u3nc(c3__who, u3_nul), + u3_none)); + } break; + // simple health check. + // + case c3__live: { + res = u3nc(u3_nul, pir_u->liv_o); + } break; + // true iff the %khan vane is live (meaning %fyrd is supported.) + // + case c3__khan: { + res = u3nc(u3_nul, con_u->kan_o); + } break; + // |mass output + // + case c3__quic: + case c3__mass: { + res = u3_none; + } break; + // runtime metrics. + // + case c3__info: { + res = u3nc(u3_nul, u3_pier_info(pir_u)); + } break; + // vere version. + // + case c3__v: { + res = u3nc(u3_nul, u3i_string(URBIT_VERSION)); + } break; + // current ship. + // + case c3__who: { + res = u3nc(u3_nul, u3i_chubs(2, pir_u->who_d)); + } + } + } + else if ( c3n == u3r_cell(t_dat, &it_dat, &tt_dat) ) { + res = u3_nul; + } + else if ( u3_nul == tt_dat ) { + // one-argument requests. + // + switch (i_dat) { + default: { + res = u3_nul; + } break; + case c3__port: { + switch (it_dat) { + default: { + res = u3_nul; + } break; + case c3__ames: { + res = u3nc(u3_nul, pir_u->por_s); + } break; + case c3__htls: { + res = u3nc(u3_nul, pir_u->pes_s); + } break; + case c3__http: { + res = u3nc(u3_nul, pir_u->per_s); + } break; + } + } break; + } + } + else { + res = u3_nul; + } + u3z(dat); return res; +} + +/* _conn_moor_poke(): called on message read from u3_moor. +*/ +static void +_conn_moor_poke(void* ptr_v, c3_d len_d, c3_y* byt_y) +{ + u3_weak jar; + u3_noun can, rid, tag, dat, rud = u3_nul, tar, wir, cad; + u3_chan* can_u = (u3_chan*)ptr_v; + u3_conn* con_u = can_u->san_u->con_u; + c3_i err_i = 0; + c3_c* err_c; + c3_c* tag_c; + c3_c* rid_c; + + jar = u3s_cue_xeno_with(con_u->sil_u, len_d, byt_y); + if ( u3_none == jar ) { + can_u->mor_u.bal_f(can_u, -1, "cue-none"); + return; + } + if ( (c3n == u3r_cell(jar, &rid, &can)) || + (c3n == u3r_cell(can, &tag, &dat)) || + (c3n == u3ud(rid)) ) + { + err_i = -2; err_c = "jar-bad"; + goto _moor_poke_out; + } + + rud = u3dc("scot", c3__uv, u3k(rid)); + tag_c = u3r_string(tag); + rid_c = u3r_string(rud); + u3l_log("conn: %s %s", tag_c, rid_c); + c3_free(tag_c); c3_free(rid_c); + + switch (tag) { + default: { + err_i = -3; err_c = "tag-unknown"; + goto _moor_poke_out; + } break; + + case c3__fyrd: { + if ( c3n == con_u->kan_o ) { + err_i = -8; err_c = "khan-miss"; + goto _moor_poke_out; + } + wir = u3nc(c3__khan, + u3nq(u3dc("scot", c3__uv, con_u->sev_l), + u3dc("scot", c3__ud, can_u->coq_l), u3k(rud), u3_nul)); + u3_auto_peer( + u3_auto_plan(&con_u->car_u, + u3_ovum_init(0, c3__k, wir, u3k(can))), + 0, 0, _conn_poke_bail); + } break; + + case c3__peek: { + u3_pier_peek(con_u->car_u.pir_u, u3nc(u3_nul, u3_nul), u3k(dat), + _conn_make_cran(can_u, u3k(rid)), _conn_peek_cb); + } break; + + case c3__peel: { + u3_weak out; + + if ( u3_none != (out = _conn_read_peel(con_u, u3k(dat))) ) { + _conn_send_noun(can_u, u3nc(u3k(rid), out)); + } + else { + _conn_async_peel(con_u, can_u, u3k(rid), u3k(dat)); + } + } break; + + case c3__ovum: { + if ( (c3n == u3r_trel(dat, &tar, &wir, &cad)) ) { + err_i = -6; err_c = "ovum-bad"; + goto _moor_poke_out; + } + u3_auto_peer( + u3_auto_plan(&con_u->car_u, + u3_ovum_init(0, u3k(tar), u3k(wir), u3k(cad))), + _conn_make_cran(can_u, u3k(rid)), _conn_ovum_news, _conn_ovum_bail); + } break; + + case c3__urth: { + switch (dat) { + default: { + err_i = -7; err_c = "urth-bad"; + goto _moor_poke_out; + } break; + case c3__meld: { + _conn_send_noun(can_u, u3nc(u3k(rid), c3y)); + u3_pier_meld(con_u->car_u.pir_u); + } break; + case c3__pack: { + _conn_send_noun(can_u, u3nc(u3k(rid), c3y)); + u3_pier_pack(con_u->car_u.pir_u); + } break; + } + } break; + } +_moor_poke_out: + u3z(rud); u3z(jar); + if ( 0 != err_i ) { + can_u->mor_u.bal_f(can_u, err_i, err_c); + } +} + +/* _conn_sock_cb(): socket connection callback. +*/ +static void +_conn_sock_cb(uv_stream_t* sem_u, c3_i tas_i) +{ + u3_shan* san_u = (u3_shan*)sem_u; + u3_conn* con_u = san_u->con_u; + u3_chan* can_u; + c3_i err_i; + + can_u = c3_calloc(sizeof(u3_chan)); + can_u->mor_u.ptr_v = can_u; + can_u->mor_u.pok_f = _conn_moor_poke; + can_u->mor_u.bal_f = _conn_moor_bail; + can_u->coq_l = san_u->nex_l++; + can_u->san_u = san_u; + err_i = uv_timer_init(u3L, &can_u->mor_u.tim_u); + u3_assert(!err_i); + err_i = uv_pipe_init(u3L, &can_u->mor_u.pyp_u, 0); + u3_assert(!err_i); + err_i = uv_accept(sem_u, (uv_stream_t*)&can_u->mor_u.pyp_u); + u3_assert(!err_i); + u3_newt_read((u3_moat*)&can_u->mor_u); + can_u->mor_u.nex_u = (u3_moor*)san_u->can_u; + san_u->can_u = can_u; +} + +/* _conn_init_sock(): initialize socket device. +*/ +static void +_conn_init_sock(u3_shan* san_u) +{ +#ifdef _WIN32 + u3_pier* pir_u = san_u->con_u->car_u.pir_u; + u3_atom who = u3dc("scot", c3__p, u3i_chubs(2, pir_u->who_d)); + c3_c* who_c = u3r_string(who); + c3_c pip_c[256]; + c3_i ret_i; + + u3z(who); + ret_i = snprintf(pip_c, sizeof(pip_c), "\\\\.\\pipe\\urbit-conn-%s", who_c + 1); + u3_assert(19 + strlen(who_c) == ret_i); + c3_free(who_c); + ret_i = uv_pipe_init(u3L, &san_u->pyp_u, 0); + u3_assert(!ret_i); + ret_i = uv_pipe_bind(&san_u->pyp_u, pip_c); + u3_assert(!ret_i); + ret_i = uv_listen((uv_stream_t*)&san_u->pyp_u, 0, _conn_sock_cb); + u3_assert(!ret_i); + u3l_log("conn: listening on %s", pip_c); + +#else // _WIN32 + // the full socket path is limited to about 108 characters, + // and we want it to be relative to the pier. save our current + // path, chdir to the pier, open the socket at the desired + // path, then chdir back. hopefully there aren't any threads. + // + c3_c pax_c[2048]; + c3_i err_i; + + if ( NULL == getcwd(pax_c, sizeof(pax_c)) ) { + u3l_log("conn: getcwd: %s", uv_strerror(errno)); + u3_king_bail(); + } + if ( 0 != chdir(u3_Host.dir_c) ) { + u3l_log("conn: chdir: %s", uv_strerror(errno)); + u3_king_bail(); + } + if ( 0 != unlink(URB_SOCK_PATH) && errno != ENOENT ) { + u3l_log("conn: unlink: %s", uv_strerror(errno)); + goto _conn_sock_err_chdir; + } + if ( 0 != (err_i = uv_pipe_init(u3L, &san_u->pyp_u, 0)) ) { + u3l_log("conn: uv_pipe_init: %s", uv_strerror(err_i)); + goto _conn_sock_err_chdir; + } + if ( 0 != (err_i = uv_pipe_bind(&san_u->pyp_u, URB_SOCK_PATH)) ) { + u3l_log("conn: uv_pipe_bind: %s", uv_strerror(err_i)); + goto _conn_sock_err_chdir; + } + if ( 0 != (err_i = uv_listen((uv_stream_t*)&san_u->pyp_u, 0, + _conn_sock_cb)) ) { + u3l_log("conn: uv_listen: %s", uv_strerror(err_i)); + goto _conn_sock_err_unlink; + } + if ( 0 != chdir(pax_c) ) { + u3l_log("conn: chdir: %s", uv_strerror(errno)); + goto _conn_sock_err_close; + } + u3l_log("conn: listening on %s/%s", u3_Host.dir_c, URB_SOCK_PATH); + return; + +_conn_sock_err_close: + uv_close((uv_handle_t*)&san_u->pyp_u, _conn_close_cb); +_conn_sock_err_unlink: + if ( 0 != unlink(URB_SOCK_PATH) ) { + u3l_log("conn: unlink: %s", uv_strerror(errno)); + } +_conn_sock_err_chdir: + if ( 0 != chdir(pax_c) ) { + u3l_log("conn: chdir: %s", uv_strerror(errno)); + } + u3_king_bail(); +#endif // _WIN32 +} + +/* _conn_born_news(): initialization complete; %khan available. +*/ +static void +_conn_born_news(u3_ovum* egg_u, u3_ovum_news new_e) +{ + u3_conn* con_u = (u3_conn*)egg_u->car_u; + + if ( u3_ovum_done == new_e ) { + con_u->kan_o = c3y; + } +} + +/* _conn_born_bail(): nonessential failure; log it and keep going. +*/ +static void +_conn_born_bail(u3_ovum* egg_u, u3_noun lud) +{ + u3l_log("conn: %%born failure; %%fyrd not supported"); + u3z(lud); + u3_ovum_free(egg_u); +} + +/* _conn_io_talk(): open socket and notify %khan that we're live. +*/ +static void +_conn_io_talk(u3_auto* car_u) +{ + u3_conn* con_u = (u3_conn*)car_u; + u3_shan* san_u; + u3_noun wir = u3nt(c3__khan, + u3dc("scot", c3__uv, con_u->sev_l), + u3_nul); + u3_noun cad = u3nc(c3__born, u3_nul); + + u3_auto_peer( + u3_auto_plan(car_u, u3_ovum_init(0, c3__k, wir, cad)), + 0, + _conn_born_news, + _conn_born_bail); + + // initialize server, opening socket. + // + u3_assert(!con_u->san_u); + san_u = c3_calloc(sizeof(*san_u)); + san_u->nex_l = 1; + san_u->con_u = con_u; + con_u->san_u = san_u; + _conn_init_sock(san_u); + car_u->liv_o = c3y; +} + +/* _conn_ef_handle(): handle result. +*/ +static void +_conn_ef_handle(u3_conn* con_u, + c3_l sev_l, + c3_l coq_l, + u3_atom rid, + u3_noun tag, + u3_noun dat) +{ + u3_chan* can_u; + + if ( 0 != (can_u = _conn_find_chan(con_u, sev_l, coq_l)) ) { + if ( c3__avow == tag ) { + _conn_send_noun(can_u, u3nt(u3k(rid), c3__avow, u3k(dat))); + } + else { + can_u->mor_u.bal_f(can_u, -4, "handle-unknown"); + u3_king_bail(); + } + } + else { + u3l_log("conn: handle-no-coq %" PRIx32 " %" PRIu32, + sev_l, coq_l); + } + u3z(rid); u3z(tag); u3z(dat); +} + +/* _conn_io_kick(): apply effects. +*/ +static c3_o +_conn_io_kick(u3_auto* car_u, u3_noun wir, u3_noun cad) +{ + u3_conn* con_u = (u3_conn*)car_u; + u3_noun tag, dat; + c3_l sev_l, coq_l; + u3_atom rid; + + if ( c3n == _conn_read_wire(wir, c3__khan, &sev_l, &coq_l, &rid) ) { + u3z(cad); return c3n; + } + if ( (con_u->sev_l != sev_l) || + (c3n == u3r_cell(cad, &tag, &dat)) ) + { + u3z(rid); u3z(cad); return c3n; + } + + _conn_ef_handle(con_u, sev_l, coq_l, rid, u3k(tag), u3k(dat)); + u3z(cad); return c3y; +} + +/* _conn_io_exit(): unlink socket, shut down connections. +*/ +static void +_conn_io_exit(u3_auto* car_u) +{ + u3_conn* con_u = (u3_conn*)car_u; + c3_c* pax_c = u3_Host.dir_c; + c3_w len_w = strlen(pax_c) + 1 + sizeof(URB_SOCK_PATH); + c3_c* paf_c = c3_malloc(len_w); + c3_i wit_i; + + wit_i = snprintf(paf_c, len_w, "%s/%s", pax_c, URB_SOCK_PATH); + u3_assert(wit_i > 0); + u3_assert(len_w == (c3_w)wit_i + 1); + + if ( 0 != unlink(paf_c) ) { + if ( ENOENT != errno ) { + u3l_log("conn: failed to unlink socket: %s", uv_strerror(errno)); + } + } + else { + // u3l_log("conn: unlinked %s", paf_c); + } + c3_free(paf_c); + + { + u3_shan* san_u = con_u->san_u; + + if ( san_u ) { + while ( san_u->can_u ) { + _conn_close_chan(san_u, san_u->can_u); + } + uv_close((uv_handle_t*)&san_u->pyp_u, _conn_close_cb); + } + } + + u3s_cue_xeno_done(con_u->sil_u); + c3_free(con_u); +} + +/* u3_conn(): initialize control plane socket. +*/ +u3_auto* +u3_conn_io_init(u3_pier* pir_u) +{ + u3_conn* con_u; + u3_auto* car_u; + u3_noun now; + struct timeval tim_u; + + if ( c3n == u3_Host.ops_u.con ) { + return NULL; + } + con_u = c3_calloc(sizeof(*con_u)); + con_u->sil_u = u3s_cue_xeno_init(); + con_u->kan_o = c3n; + car_u = &con_u->car_u; + car_u->nam_m = c3__conn; + car_u->liv_o = c3n; + car_u->io.talk_f = _conn_io_talk; + car_u->io.kick_f = _conn_io_kick; + car_u->io.exit_f = _conn_io_exit; + + gettimeofday(&tim_u, 0); + now = u3_time_in_tv(&tim_u); + con_u->sev_l = u3r_mug(now); + u3z(now); + return car_u; +} diff --git a/vere/pkg/vere/io/cttp.c b/vere/pkg/vere/io/cttp.c new file mode 100644 index 0000000..fa6bb5b --- /dev/null +++ b/vere/pkg/vere/io/cttp.c @@ -0,0 +1,1170 @@ +/// @file + +#include "vere.h" + +#include "h2o.h" +#include "noun.h" +#include "openssl/ssl.h" + +/* u3_csat: client connection state. +*/ + typedef enum { + u3_csat_init = 0, // initialized + u3_csat_addr = 1, // address resolution begun + u3_csat_quit = 2, // cancellation requested + u3_csat_conn = 3, // sync connect phase + u3_csat_ripe = 4 // passed to libh2o + } u3_csat; + +/* u3_cres: response to http client. +*/ + typedef struct _u3_cres { + c3_w sas_w; // status code + u3_noun hed; // headers + u3_hbod* bod_u; // exit of body queue + u3_hbod* dob_u; // entry of body queue + } u3_cres; + +/* u3_creq: outgoing http request. +*/ + typedef struct _u3_creq { // client request + c3_l num_l; // request number + h2o_http1client_t* cli_u; // h2o client + u3_csat sat_e; // connection state + c3_o sec; // yes == https + c3_w ipf_w; // IP + c3_c* ipf_c; // IP (string) + c3_c* hot_c; // host + c3_s por_s; // port + c3_c* por_c; // port (string) + c3_c* met_c; // method + c3_c* url_c; // url + u3_hhed* hed_u; // headers + u3_hbod* bod_u; // body + u3_hbod* rub_u; // exit of send queue + u3_hbod* bur_u; // entry of send queue + h2o_iovec_t* vec_u; // send-buffer array + u3_cres* res_u; // nascent response + struct _u3_creq* nex_u; // next in list + struct _u3_creq* pre_u; // previous in list + struct _u3_cttp* ctp_u; // cttp backpointer + } u3_creq; + +/* u3_cttp: http client. +*/ + typedef struct _u3_cttp { + u3_auto car_u; // driver + c3_l sev_l; // instance number + u3_creq* ceq_u; // request list + uv_async_t nop_u; // unused handle (async close) + h2o_timeout_t tim_u; // request timeout + h2o_http1client_ctx_t // + ctx_u; // h2o client ctx + void* tls_u; // client SSL_CTX* + } u3_cttp; + +// XX deduplicate with _http_vec_to_atom +/* _cttp_vec_to_atom(): convert h2o_iovec_t to atom (cord) +*/ +static u3_noun +_cttp_vec_to_atom(h2o_iovec_t vec_u) +{ + return u3i_bytes(vec_u.len, (const c3_y*)vec_u.base); +} + +/* _cttp_bods_free(): free body structure. +*/ +static void +_cttp_bods_free(u3_hbod* bod_u) +{ + while ( bod_u ) { + u3_hbod* nex_u = bod_u->nex_u; + + c3_free(bod_u); + bod_u = nex_u; + } +} + +/* _cttp_bod_new(): create a data buffer +*/ +static u3_hbod* +_cttp_bod_new(c3_w len_w, c3_c* hun_c) +{ + u3_hbod* bod_u = c3_malloc(1 + len_w + sizeof(*bod_u)); + bod_u->hun_y[len_w] = 0; + bod_u->len_w = len_w; + memcpy(bod_u->hun_y, (const c3_y*)hun_c, len_w); + + bod_u->nex_u = 0; + return bod_u; +} + +/* _cttp_bod_from_hed(): create a data buffer from a header +*/ +static u3_hbod* +_cttp_bod_from_hed(u3_hhed* hed_u) +{ + c3_w len_w = hed_u->nam_w + 2 + hed_u->val_w + 2; + u3_hbod* bod_u = c3_malloc(1 + len_w + sizeof(*bod_u)); + bod_u->hun_y[len_w] = 0; + + memcpy(bod_u->hun_y, hed_u->nam_c, hed_u->nam_w); + memcpy(bod_u->hun_y + hed_u->nam_w, ": ", 2); + memcpy(bod_u->hun_y + hed_u->nam_w + 2, hed_u->val_c, hed_u->val_w); + memcpy(bod_u->hun_y + hed_u->nam_w + 2 + hed_u->val_w, "\r\n", 2); + + bod_u->len_w = len_w; + bod_u->nex_u = 0; + + return bod_u; +} + +/* _cttp_bods_to_octs: translate body buffer into octet-stream noun. +*/ +static u3_noun +_cttp_bods_to_octs(u3_hbod* bod_u) +{ + c3_w len_w; + c3_y* buf_y; + u3_noun cos; + + { + u3_hbod* bid_u = bod_u; + + len_w = 0; + while ( bid_u ) { + len_w += bid_u->len_w; + bid_u = bid_u->nex_u; + } + } + buf_y = c3_malloc(1 + len_w); + buf_y[len_w] = 0; + + { + c3_y* ptr_y = buf_y; + + while ( bod_u ) { + memcpy(ptr_y, bod_u->hun_y, bod_u->len_w); + ptr_y += bod_u->len_w; + bod_u = bod_u->nex_u; + } + } + cos = u3i_bytes(len_w, buf_y); + c3_free(buf_y); + return u3nc(len_w, cos); +} + +/* _cttp_bod_from_octs(): translate octet-stream noun into body. +*/ +static u3_hbod* +_cttp_bod_from_octs(u3_noun oct) +{ + c3_w len_w; + + if ( !_(u3a_is_cat(u3h(oct))) ) { // 2GB max + u3m_bail(c3__fail); return 0; + } + len_w = u3h(oct); + + { + u3_hbod* bod_u = c3_malloc(1 + len_w + sizeof(*bod_u)); + bod_u->hun_y[len_w] = 0; + bod_u->len_w = len_w; + u3r_bytes(0, len_w, bod_u->hun_y, u3t(oct)); + + bod_u->nex_u = 0; + + u3z(oct); + return bod_u; + } +} + +/* _cttp_bods_to_vec(): translate body buffers to array of h2o_iovec_t +*/ +static h2o_iovec_t* +_cttp_bods_to_vec(u3_hbod* bod_u, c3_w* tot_w) +{ + h2o_iovec_t* vec_u; + c3_w len_w; + + { + u3_hbod* bid_u = bod_u; + len_w = 0; + + while( bid_u ) { + len_w++; + bid_u = bid_u->nex_u; + } + } + + if ( 0 == len_w ) { + *tot_w = len_w; + return 0; + } + + vec_u = c3_malloc(sizeof(h2o_iovec_t) * len_w); + len_w = 0; + + while( bod_u ) { + vec_u[len_w] = h2o_iovec_init(bod_u->hun_y, bod_u->len_w); + len_w++; + bod_u = bod_u->nex_u; + } + + *tot_w = len_w; + + return vec_u; +} + +// XX deduplicate with _http_heds_free +/* _cttp_heds_free(): free header linked list +*/ +static void +_cttp_heds_free(u3_hhed* hed_u) +{ + while ( hed_u ) { + u3_hhed* nex_u = hed_u->nex_u; + + c3_free(hed_u->nam_c); + c3_free(hed_u->val_c); + c3_free(hed_u); + hed_u = nex_u; + } +} + +// XX deduplicate with _http_hed_new +/* _cttp_hed_new(): create u3_hhed from nam/val cords +*/ +static u3_hhed* +_cttp_hed_new(u3_atom nam, u3_atom val) +{ + c3_w nam_w = u3r_met(3, nam); + c3_w val_w = u3r_met(3, val); + u3_hhed* hed_u = c3_malloc(sizeof(*hed_u)); + + hed_u->nam_c = c3_malloc(1 + nam_w); + hed_u->val_c = c3_malloc(1 + val_w); + hed_u->nam_c[nam_w] = 0; + hed_u->val_c[val_w] = 0; + hed_u->nex_u = 0; + hed_u->nam_w = nam_w; + hed_u->val_w = val_w; + + u3r_bytes(0, nam_w, (c3_y*)hed_u->nam_c, nam); + u3r_bytes(0, val_w, (c3_y*)hed_u->val_c, val); + + return hed_u; +} + +// XX deduplicate with _http_heds_from_noun +/* _cttp_heds_from_noun(): convert (list (pair @t @t)) to u3_hhed +*/ +static u3_hhed* +_cttp_heds_from_noun(u3_noun hed) +{ + u3_noun deh = hed; + u3_noun i_hed; + + u3_hhed* hed_u = 0; + + while ( u3_nul != hed ) { + i_hed = u3h(hed); + u3_hhed* nex_u = _cttp_hed_new(u3h(i_hed), u3t(i_hed)); + nex_u->nex_u = hed_u; + + hed_u = nex_u; + hed = u3t(hed); + } + + u3z(deh); + return hed_u; +} + +// XX deduplicate with _http_heds_to_noun +/* _cttp_heds_to_noun(): convert h2o_header_t to (list (pair @t @t)) +*/ +static u3_noun +_cttp_heds_to_noun(h2o_header_t* hed_u, c3_d hed_d) +{ + u3_noun hed = u3_nul; + c3_d dex_d = hed_d; + + h2o_header_t deh_u; + + while ( 0 < dex_d ) { + deh_u = hed_u[--dex_d]; + hed = u3nc(u3nc(_cttp_vec_to_atom(*deh_u.name), + _cttp_vec_to_atom(deh_u.value)), hed); + } + + return hed; +} + +/* _cttp_cres_free(): free a u3_cres. +*/ +static void +_cttp_cres_free(u3_cres* res_u) +{ + _cttp_bods_free(res_u->bod_u); + c3_free(res_u); +} + +/* _cttp_cres_new(): create a response +*/ +static void +_cttp_cres_new(u3_creq* ceq_u, c3_w sas_w) +{ + ceq_u->res_u = c3_calloc(sizeof(*ceq_u->res_u)); + ceq_u->res_u->sas_w = sas_w; +} + +/* _cttp_cres_fire_body(): attach response body buffer +*/ +static void +_cttp_cres_fire_body(u3_cres* res_u, u3_hbod* bod_u) +{ + u3_assert(!bod_u->nex_u); + + if ( !(res_u->bod_u) ) { + res_u->bod_u = res_u->dob_u = bod_u; + } + else { + res_u->dob_u->nex_u = bod_u; + res_u->dob_u = bod_u; + } +} + +/* _cttp_mcut_pork(): measure/cut path/extension. +*/ +static c3_w +_cttp_mcut_pork(c3_c* buf_c, c3_w len_w, u3_noun pok) +{ + u3_noun h_pok = u3h(pok); + u3_noun t_pok = u3t(pok); + + len_w = u3_mcut_path(buf_c, len_w, '/', u3k(t_pok)); + if ( u3_nul != h_pok ) { + len_w = u3_mcut_char(buf_c, len_w, '.'); + len_w = u3_mcut_cord(buf_c, len_w, u3k(u3t(h_pok))); + } + u3z(pok); + return len_w; +} + +/* _cttp_mcut_quay(): measure/cut query. +*/ +static c3_w +_cttp_mcut_quay(c3_c* buf_c, c3_w len_w, u3_noun quy) +{ + u3_noun yuq = quy; + c3_o fir_o = c3y; + + while ( u3_nul != quy ) { + if ( c3y == fir_o ) { + len_w = u3_mcut_char(buf_c, len_w, '?'); + fir_o = c3n; + } + else { + len_w = u3_mcut_char(buf_c, len_w, '&'); + } + + { + u3_noun i_quy, t_quy; + u3_noun pi_quy, qi_quy; + u3x_cell(quy, &i_quy, &t_quy); + u3x_cell(i_quy, &pi_quy, &qi_quy); + + len_w = u3_mcut_cord(buf_c, len_w, u3k(pi_quy)); + len_w = u3_mcut_char(buf_c, len_w, '='); + len_w = u3_mcut_cord(buf_c, len_w, u3k(qi_quy)); + + quy = t_quy; + } + } + + u3z(yuq); + return len_w; +} + +/* _cttp_mcut_url(): measure/cut purl, producing relative URL. +*/ +static c3_w +_cttp_mcut_url(c3_c* buf_c, c3_w len_w, u3_noun pul) +{ + u3_noun q_pul = u3h(u3t(pul)); + u3_noun r_pul = u3t(u3t(pul)); + + len_w = u3_mcut_char(buf_c, len_w, '/'); + len_w = _cttp_mcut_pork(buf_c, len_w, u3k(q_pul)); + + if ( u3_nul != r_pul ) { + len_w = _cttp_mcut_quay(buf_c, len_w, u3k(r_pul)); + } + u3z(pul); + return len_w; +} + +/* _cttp_creq_port(): stringify port +*/ +static c3_c* +_cttp_creq_port(c3_s por_s) +{ + c3_c* por_c = c3_malloc(8); + snprintf(por_c, 7, "%d", 0xffff & por_s); + return por_c; +} + +/* _cttp_creq_url(): construct url from noun. +*/ +static c3_c* +_cttp_creq_url(u3_noun pul) +{ + c3_w len_w = _cttp_mcut_url(0, 0, u3k(pul)); + c3_c* url_c = c3_malloc(1 + len_w); + + _cttp_mcut_url(url_c, 0, pul); + url_c[len_w] = 0; + + return url_c; +} + +/* _cttp_creq_host(): construct host from noun. +*/ +static c3_c* +_cttp_creq_host(u3_noun hot) +{ + c3_w len_w = u3_mcut_host(0, 0, u3k(hot)); + c3_c* hot_c = c3_malloc(1 + len_w); + + u3_mcut_host(hot_c, 0, hot); + hot_c[len_w] = 0; + + return hot_c; +} + +/* _cttp_creq_ip(): stringify ip +*/ +static c3_c* +_cttp_creq_ip(c3_w ipf_w) +{ + c3_c* ipf_c = c3_malloc(17); + snprintf(ipf_c, 16, "%d.%d.%d.%d", (ipf_w >> 24), + ((ipf_w >> 16) & 255), + ((ipf_w >> 8) & 255), + (ipf_w & 255)); + return ipf_c; +} + +/* _cttp_creq_find(): find a request by number in the client +*/ +static u3_creq* +_cttp_creq_find(u3_cttp* ctp_u, c3_l num_l) +{ + u3_creq* ceq_u = ctp_u->ceq_u; + + // XX glories of linear search + // + while ( ceq_u ) { + if ( num_l == ceq_u->num_l ) { + return ceq_u; + } + ceq_u = ceq_u->nex_u; + } + return 0; +} + +/* _cttp_creq_link(): link request to client +*/ +static void +_cttp_creq_link(u3_cttp* ctp_u, u3_creq* ceq_u) +{ + ceq_u->nex_u = ctp_u->ceq_u; + + if ( 0 != ceq_u->nex_u ) { + ceq_u->nex_u->pre_u = ceq_u; + } + + ceq_u->ctp_u = ctp_u; + ctp_u->ceq_u = ceq_u; +} + +/* _cttp_creq_unlink(): unlink request from client +*/ +static void +_cttp_creq_unlink(u3_creq* ceq_u) +{ + u3_cttp* ctp_u = ceq_u->ctp_u; + + if ( ceq_u->pre_u ) { + ceq_u->pre_u->nex_u = ceq_u->nex_u; + + if ( 0 != ceq_u->nex_u ) { + ceq_u->nex_u->pre_u = ceq_u->pre_u; + } + } + else { + ctp_u->ceq_u = ceq_u->nex_u; + + if ( 0 != ceq_u->nex_u ) { + ceq_u->nex_u->pre_u = 0; + } + } +} + +/* _cttp_creq_free(): free a u3_creq. +*/ +static void +_cttp_creq_free(u3_creq* ceq_u) +{ + _cttp_creq_unlink(ceq_u); + + _cttp_heds_free(ceq_u->hed_u); + // Note: ceq_u->bod_u is covered here + _cttp_bods_free(ceq_u->rub_u); + + if ( ceq_u->res_u ) { + _cttp_cres_free(ceq_u->res_u); + } + + c3_free(ceq_u->hot_c); + c3_free(ceq_u->ipf_c); + c3_free(ceq_u->por_c); + c3_free(ceq_u->met_c); + c3_free(ceq_u->url_c); + c3_free(ceq_u->vec_u); + c3_free(ceq_u); +} + +/* _cttp_creq_new(): create a u3_creq from an +http-request + * + * If we were rewriting all of this from scratch, this isn't how we'd do it. + * + * We start with the (?? - JB) + */ +static u3_creq* +_cttp_creq_new(u3_cttp* ctp_u, c3_l num_l, u3_noun hes) +{ + u3_creq* ceq_u = c3_calloc(sizeof(*ceq_u)); + + u3_noun method, url, headers, body; + if (c3n == u3r_qual(hes, &method, &url, &headers, &body)) { + u3z(hes); + return 0; + } + + // parse the url out of the new style url passed to us. + // + u3_noun unit_pul = u3do("de-purl:html", u3k(url)); + + if ( c3n == u3du(unit_pul) ) { + c3_c* url_c = u3r_string(url); + u3l_log("cttp: unable to parse url:\n %s", url_c); + c3_free(url_c); + u3z(hes); + return 0; + } + + u3_noun pul = u3t(unit_pul); + + u3_noun hat = u3h(pul); // +hart + u3_noun sec = u3h(hat); + u3_noun por = u3h(u3t(hat)); + u3_noun hot = u3t(u3t(hat)); // +host + + ceq_u->sat_e = u3_csat_init; + ceq_u->num_l = num_l; + ceq_u->sec = sec; + + if ( c3y == u3h(hot) ) { + ceq_u->hot_c = _cttp_creq_host(u3k(u3t(hot))); + } else { + ceq_u->ipf_w = u3r_word(0, u3t(hot)); + ceq_u->ipf_c = _cttp_creq_ip(ceq_u->ipf_w); + } + + if ( u3_nul != por ) { + ceq_u->por_s = u3t(por); + ceq_u->por_c = _cttp_creq_port(ceq_u->por_s); + } + + // XX this should be checked against a whitelist + // + u3_assert( c3y == u3ud(method) ); + ceq_u->met_c = u3r_string(method); + ceq_u->url_c = _cttp_creq_url(u3k(pul)); + + ceq_u->hed_u = _cttp_heds_from_noun(u3k(headers)); + + if ( u3_nul != body ) { + ceq_u->bod_u = _cttp_bod_from_octs(u3k(u3t(body))); + } + + _cttp_creq_link(ctp_u, ceq_u); + + u3z(unit_pul); + u3z(hes); + + return ceq_u; +} + +/* _cttp_creq_fire_body(): attach body to request buffers. +*/ +static void +_cttp_creq_fire_body(u3_creq* ceq_u, u3_hbod *rub_u) +{ + u3_assert(!rub_u->nex_u); + + if ( !(ceq_u->rub_u) ) { + ceq_u->rub_u = ceq_u->bur_u = rub_u; + } + else { + ceq_u->bur_u->nex_u = rub_u; + ceq_u->bur_u = rub_u; + } +} + +/* _cttp_creq_fire_str(): attach string to request buffers. +*/ +static void +_cttp_creq_fire_str(u3_creq* ceq_u, c3_c* str_c) +{ + _cttp_creq_fire_body(ceq_u, _cttp_bod_new(strlen(str_c), str_c)); + c3_free(str_c); +} + +/* _cttp_creq_fire_heds(): attach output headers. +*/ +static void +_cttp_creq_fire_heds(u3_creq* ceq_u, u3_hhed* hed_u) +{ + while ( hed_u ) { + _cttp_creq_fire_body(ceq_u, _cttp_bod_from_hed(hed_u)); + hed_u = hed_u->nex_u; + } +} + +/* _cttp_creq_fire(): load request data for into buffers. +*/ +static void +_cttp_creq_fire(u3_creq* ceq_u) +{ + { + c3_w len_w = strlen(ceq_u->met_c) + 1 + strlen(ceq_u->url_c) + 12; + c3_c* lin_c = c3_malloc(len_w); + + len_w = snprintf(lin_c, len_w, "%s %s HTTP/1.1\r\n", + ceq_u->met_c, + ceq_u->url_c); + _cttp_creq_fire_str(ceq_u, lin_c); + } + + { + c3_c* hot_c = ceq_u->hot_c ? ceq_u->hot_c : ceq_u->ipf_c; + c3_c* hos_c; + c3_w len_w; + + if ( ceq_u->por_c ) { + len_w = 6 + strlen(hot_c) + 1 + strlen(ceq_u->por_c) + 3; + hos_c = c3_malloc(len_w); + len_w = snprintf(hos_c, len_w, "Host: %s:%s\r\n", hot_c, ceq_u->por_c); + } + else { + len_w = 6 + strlen(hot_c) + 3; + hos_c = c3_malloc(len_w); + len_w = snprintf(hos_c, len_w, "Host: %s\r\n", hot_c); + } + + _cttp_creq_fire_body(ceq_u, _cttp_bod_new(len_w, hos_c)); + c3_free(hos_c); + } + + _cttp_creq_fire_heds(ceq_u, ceq_u->hed_u); + + if ( !ceq_u->bod_u ) { + _cttp_creq_fire_body(ceq_u, _cttp_bod_new(2, "\r\n")); + } + else { + c3_c len_c[41]; + c3_w len_w = snprintf(len_c, 40, "Content-Length: %u\r\n\r\n", + ceq_u->bod_u->len_w); + + _cttp_creq_fire_body(ceq_u, _cttp_bod_new(len_w, len_c)); + _cttp_creq_fire_body(ceq_u, ceq_u->bod_u); + } +} + +/* _cttp_creq_quit(): cancel a u3_creq +*/ +static void +_cttp_creq_quit(u3_creq* ceq_u) +{ + if ( u3_csat_addr == ceq_u->sat_e ) { + ceq_u->sat_e = u3_csat_quit; + return; // wait to be called again on address resolution + } + + if ( ceq_u->cli_u ) { + h2o_http1client_cancel(ceq_u->cli_u); + } + + _cttp_creq_free(ceq_u); +} + +static void +_cttp_http_client_receive(u3_creq* ceq_u, c3_w sas_w, u3_noun mes, u3_noun uct) +{ + u3_cttp* ctp_u = ceq_u->ctp_u; + + // XX inject partial responses as separate events + // + u3_noun wir = u3nt(u3i_string("http-client"), + u3dc("scot", c3__uv, ctp_u->sev_l), + u3_nul); + u3_noun cad = u3nt(u3i_string("receive"), + ceq_u->num_l, + u3nq(u3i_string("start"), u3nc(sas_w, mes), uct, c3y)); + + u3_auto_plan(&ctp_u->car_u, u3_ovum_init(0, c3__i, wir, cad)); +} + +/* _cttp_creq_fail(): dispatch error response +*/ +static void +_cttp_creq_fail(u3_creq* ceq_u, const c3_c* err_c) +{ + // XX anything other than a 504? + c3_w cod_w = 504; + + u3l_log("http: fail (%d, %d): %s", ceq_u->num_l, cod_w, err_c); + + // XX include err_c as response body? + _cttp_http_client_receive(ceq_u, cod_w, u3_nul, u3_nul); + _cttp_creq_free(ceq_u); +} + +/* _cttp_creq_respond(): dispatch response +*/ +static void +_cttp_creq_respond(u3_creq* ceq_u) +{ + u3_cres* res_u = ceq_u->res_u; + + _cttp_http_client_receive(ceq_u, res_u->sas_w, res_u->hed, + ( !res_u->bod_u ) ? u3_nul : + u3nc(u3_nul, _cttp_bods_to_octs(res_u->bod_u))); + + _cttp_creq_free(ceq_u); +} + +// XX research: may be called with closed client? +/* _cttp_creq_on_body(): cb invoked by h2o upon receiving a response body +*/ +static c3_i +_cttp_creq_on_body(h2o_http1client_t* cli_u, const c3_c* err_c) +{ + u3_creq* ceq_u = (u3_creq *)cli_u->data; + + if ( 0 != err_c && h2o_http1client_error_is_eos != err_c ) { + _cttp_creq_fail(ceq_u, err_c); + return -1; + } + + h2o_buffer_t* buf_u = cli_u->sock->input; + + if ( buf_u->size ) { + _cttp_cres_fire_body(ceq_u->res_u, + _cttp_bod_new(buf_u->size, buf_u->bytes)); + h2o_buffer_consume(&cli_u->sock->input, buf_u->size); + } + + // We're using the end of stream thing here to queue event to urbit. we'll + // need to separate this into our own timer for partial progress sends. + if ( h2o_http1client_error_is_eos == err_c ) { + _cttp_creq_respond(ceq_u); + } + + return 0; +} + +/* _cttp_creq_on_head(): cb invoked by h2o upon receiving response headers +*/ +static h2o_http1client_body_cb +_cttp_creq_on_head(h2o_http1client_t* cli_u, const c3_c* err_c, c3_i ver_i, + c3_i sas_i, h2o_iovec_t sas_u, h2o_header_t* hed_u, + size_t hed_t, c3_i len_i) +{ + u3_creq* ceq_u = (u3_creq *)cli_u->data; + + if ( 0 != err_c && h2o_http1client_error_is_eos != err_c ) { + _cttp_creq_fail(ceq_u, err_c); + return 0; + } + + _cttp_cres_new(ceq_u, (c3_w)sas_i); + ceq_u->res_u->hed = _cttp_heds_to_noun(hed_u, hed_t); + + if ( h2o_http1client_error_is_eos == err_c ) { + _cttp_creq_respond(ceq_u); + return 0; + } + + return _cttp_creq_on_body; +} + +/* _cttp_creq_on_connect(): cb invoked by h2o upon successful connection +*/ +static h2o_http1client_head_cb +_cttp_creq_on_connect(h2o_http1client_t* cli_u, const c3_c* err_c, + h2o_iovec_t** vec_u, size_t* vec_i, c3_i* hed_i) +{ + u3_creq* ceq_u = (u3_creq *)cli_u->data; + + if ( 0 != err_c ) { + // if synchronously connecting, caller will cleanup + // + if ( u3_csat_conn == ceq_u->sat_e ) { + ceq_u->sat_e = u3_csat_quit; + } + else { + u3_assert( u3_csat_ripe == ceq_u->sat_e ); + _cttp_creq_fail(ceq_u, err_c); + } + return 0; + } + + // serialize request (populate rub_u) + // + _cttp_creq_fire(ceq_u); + + { + c3_w len_w; + ceq_u->vec_u = _cttp_bods_to_vec(ceq_u->rub_u, &len_w); + + *vec_i = len_w; + *vec_u = ceq_u->vec_u; + *hed_i = (0 == strcmp(ceq_u->met_c, "HEAD")); + } + + return _cttp_creq_on_head; +} + +/* _cttp_creq_connect(): establish connection +*/ +static void +_cttp_creq_connect(u3_creq* ceq_u) +{ + u3_assert( u3_csat_conn == ceq_u->sat_e ); + u3_assert( ceq_u->ipf_c ); + + // connect by ip/port, avoiding synchronous getaddrinfo() + // + { + h2o_iovec_t ipf_u = h2o_iovec_init(ceq_u->ipf_c, strlen(ceq_u->ipf_c)); + c3_t tls_t = ( c3y == ceq_u->sec ); + c3_s por_s = ( ceq_u->por_s ) + ? ceq_u->por_s + : ( tls_t ) ? 443 : 80; + + h2o_http1client_connect(&ceq_u->cli_u, ceq_u, &ceq_u->ctp_u->ctx_u, + ipf_u, por_s, tls_t, _cttp_creq_on_connect); + } + + // connect() failed, cb invoked synchronously + // + if ( u3_csat_conn != ceq_u->sat_e ) { + u3_assert( u3_csat_quit == ceq_u->sat_e ); + // only one such failure case + // + _cttp_creq_fail(ceq_u, "socket create error"); + } + else { + ceq_u->sat_e = u3_csat_ripe; + + // fixup hostname for TLS handshake + // + // must be synchronous, after successfull connect() call + // + if ( ceq_u->hot_c && (c3y == ceq_u->sec) ) { + u3_assert( ceq_u->cli_u ); + c3_free(ceq_u->cli_u->ssl.server_name); + ceq_u->cli_u->ssl.server_name = strdup(ceq_u->hot_c); + } + } +} + +/* _cttp_creq_resolve_cb(): cb upon IP address resolution +*/ +static void +_cttp_creq_resolve_cb(uv_getaddrinfo_t* adr_u, + c3_i sas_i, + struct addrinfo* aif_u) +{ + u3_creq* ceq_u = adr_u->data; + + if ( u3_csat_quit == ceq_u->sat_e ) { + _cttp_creq_quit(ceq_u);; + } + else if ( 0 != sas_i ) { + _cttp_creq_fail(ceq_u, uv_strerror(sas_i)); + } + else { + // XX traverse struct a la _ames_czar_cb + ceq_u->ipf_w = ntohl(((struct sockaddr_in *)aif_u->ai_addr)->sin_addr.s_addr); + ceq_u->ipf_c = _cttp_creq_ip(ceq_u->ipf_w); + + ceq_u->sat_e = u3_csat_conn; + _cttp_creq_connect(ceq_u); + } + + c3_free(adr_u); + uv_freeaddrinfo(aif_u); +} + +/* _cttp_creq_resolve(): resolve hostname to IP address +*/ +static void +_cttp_creq_resolve(u3_creq* ceq_u) +{ + u3_assert(u3_csat_addr == ceq_u->sat_e); + u3_assert(ceq_u->hot_c); + + uv_getaddrinfo_t* adr_u = c3_malloc(sizeof(*adr_u)); + adr_u->data = ceq_u; + + struct addrinfo hin_u; + memset(&hin_u, 0, sizeof(struct addrinfo)); + + hin_u.ai_family = PF_INET; + hin_u.ai_socktype = SOCK_STREAM; + hin_u.ai_protocol = IPPROTO_TCP; + + // XX is this necessary? + c3_c* por_c = ceq_u->por_c ? ceq_u->por_c : + ( c3y == ceq_u->sec ) ? "443" : "80"; + + c3_i sas_i; + + if ( 0 != (sas_i = uv_getaddrinfo(u3L, adr_u, _cttp_creq_resolve_cb, + ceq_u->hot_c, por_c, &hin_u)) ) { + _cttp_creq_fail(ceq_u, uv_strerror(sas_i)); + } +} + +/* _cttp_creq_start(): start a request +*/ +static void +_cttp_creq_start(u3_creq* ceq_u) +{ + if ( ceq_u->ipf_c ) { + ceq_u->sat_e = u3_csat_conn; + _cttp_creq_connect(ceq_u); + } else { + ceq_u->sat_e = u3_csat_addr; + _cttp_creq_resolve(ceq_u); + } +} + +/* _cttp_init_tls: initialize OpenSSL context +*/ +static SSL_CTX* +_cttp_init_tls(void) +{ + // XX require 1.1.0 and use TLS_client_method() + SSL_CTX* tls_u = SSL_CTX_new(SSLv23_client_method()); + // XX use SSL_CTX_set_max_proto_version() and SSL_CTX_set_min_proto_version() + SSL_CTX_set_options(tls_u, SSL_OP_NO_SSLv2 | + SSL_OP_NO_SSLv3 | + // SSL_OP_NO_TLSv1 | // XX test + SSL_OP_NO_COMPRESSION); + + u3K.ssl_x509_f(SSL_CTX_get_cert_store(tls_u)); + SSL_CTX_set_verify(tls_u, SSL_VERIFY_PEER, 0); + SSL_CTX_set_session_cache_mode(tls_u, SSL_SESS_CACHE_OFF); + SSL_CTX_set_cipher_list(tls_u, + "ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:" + "ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:" + "RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS"); + + return tls_u; +} + +/* _cttp_ef_http_client(): send an %http-client (outgoing request) to cttp. +*/ +static c3_o +_cttp_ef_http_client(u3_cttp* ctp_u, u3_noun tag, u3_noun dat) +{ + u3_creq* ceq_u; + c3_o ret_o; + + if ( c3y == u3r_sing_c("request", tag) ) { + u3_noun num, req; + c3_l num_l; + + if ( (c3n == u3r_cell(dat, &num, &req)) + || (c3n == u3r_safe_word(num, &num_l)) ) + { + u3l_log("cttp: strange request"); + ret_o = c3n; + } + else if ( (ceq_u = _cttp_creq_new(ctp_u, num_l, u3k(req))) ) { + _cttp_creq_start(ceq_u); + ret_o = c3y; + } + else { + ret_o = c3n; + } + } + else if ( c3y == u3r_sing_c("cancel-request", tag) ) { + c3_l num_l; + + if ( c3n == u3r_safe_word(dat, &num_l) ) { + u3l_log("cttp: strange cancel-request"); + ret_o = c3n; + } + else if ( (ceq_u =_cttp_creq_find(ctp_u, num_l)) ) { + _cttp_creq_quit(ceq_u); + ret_o = c3y; + } + else { + // accepted whether or not request exists + // + ret_o = c3y; + } + } + else { + u3l_log("cttp: strange effect (unknown type)"); + ret_o = c3n; + } + + u3z(tag); u3z(dat); + return ret_o; +} + +/* _cttp_io_talk(): notify that we're live. +*/ +static void +_cttp_io_talk(u3_auto* car_u) +{ + u3_cttp* ctp_u = (u3_cttp*)car_u; + + // XX remove u3A->sen + // + u3_noun wir = u3nt(u3i_string("http-client"), + u3dc("scot", c3__uv, ctp_u->sev_l), + u3_nul); + u3_noun cad = u3nc(c3__born, u3_nul); + + u3_auto_plan(car_u, u3_ovum_init(0, c3__i, wir, cad)); +} + +/* _cttp_io_kick(): apply effects +*/ +static c3_o +_cttp_io_kick(u3_auto* car_u, u3_noun wir, u3_noun cad) +{ + u3_cttp* ctp_u = (u3_cttp*)car_u; + + u3_noun tag, dat, i_wir; + c3_o ret_o; + + if ( (c3n == u3r_cell(wir, &i_wir, 0)) + || (c3n == u3r_cell(cad, &tag, &dat)) + || (c3n == u3r_sing_c("http-client", i_wir)) ) + { + ret_o = c3n; + } + else { + ret_o = _cttp_ef_http_client(ctp_u, u3k(tag), u3k(dat)); + } + + u3z(wir); u3z(cad); + return ret_o; +} + +/* _cttp_io_exit_cb(): free cttp. +*/ +static void +_cttp_io_exit_cb(uv_handle_t* han_u) +{ + u3_cttp* ctp_u = han_u->data; + + SSL_CTX_free(ctp_u->tls_u); + c3_free(ctp_u); +} + +/* _cttp_io_exit(): shut down cttp. +*/ +static void +_cttp_io_exit(u3_auto* car_u) +{ + u3_cttp* ctp_u = (u3_cttp*)car_u; + + // close unused handle to free [ctp_u] after h2o is done + // + uv_close((uv_handle_t*)&ctp_u->nop_u, _cttp_io_exit_cb); + + // cancel requests + // + { + u3_creq* ceq_u = ctp_u->ceq_u; + + while ( ceq_u ) { + _cttp_creq_quit(ceq_u); + ceq_u = ceq_u->nex_u; + } + } + + h2o_timeout_dispose(u3L, &ctp_u->tim_u); +} + +/* u3_cttp_io_init(): initialize http client I/O. +*/ +u3_auto* +u3_cttp_io_init(u3_pier* pir_u) +{ + u3_cttp* ctp_u = c3_calloc(sizeof(*ctp_u)); + + // link to event loop + // + ctp_u->ctx_u.loop = u3L; + + // unused handle for async close + // + uv_async_init(u3L, &ctp_u->nop_u, 0); + ctp_u->nop_u.data = ctp_u; + + // link to initialized request timeout + // + h2o_timeout_init(u3L, &ctp_u->tim_u, 300 * 1000); + ctp_u->ctx_u.io_timeout = &ctp_u->tim_u; + + // link to initialized tls ctx + // + ctp_u->tls_u = _cttp_init_tls(); + ctp_u->ctx_u.ssl_ctx = ctp_u->tls_u; + + u3_auto* car_u = &ctp_u->car_u; + car_u->nam_m = c3__cttp; + + // XX set in done_cb for %born + // + car_u->liv_o = c3y; + car_u->io.talk_f = _cttp_io_talk; + car_u->io.kick_f = _cttp_io_kick; + car_u->io.exit_f = _cttp_io_exit; + // XX retry up to N? + // + // car_u->ev.bail_f = ...; + + { + u3_noun now; + struct timeval tim_u; + gettimeofday(&tim_u, 0); + + now = u3_time_in_tv(&tim_u); + ctp_u->sev_l = u3r_mug(now); + u3z(now); + } + + return car_u; +} diff --git a/vere/pkg/vere/io/fore.c b/vere/pkg/vere/io/fore.c new file mode 100644 index 0000000..951fee1 --- /dev/null +++ b/vere/pkg/vere/io/fore.c @@ -0,0 +1,168 @@ +/// @file + +#include "vere.h" + +#include "noun.h" + +/* _fore_inject_bail(): handle failure on arbitrary injection. +*/ +static void +_fore_inject_bail(u3_ovum* egg_u, u3_noun lud) +{ + u3_auto_bail_slog(egg_u, lud); + u3l_log("pier: injected event failed"); + + u3_ovum_free(egg_u); +} + +/* _fore_import_bail(): handle failure on arbitrary injection. +*/ +static void +_fore_import_bail(u3_ovum* egg_u, u3_noun lud) +{ + u3_auto_bail_slog(egg_u, lud); + u3l_log("pier: import failed"); + + u3_ovum_free(egg_u); +} + +/* _fore_inject(): inject an arbitrary ovum from a jammed file at [pax_c]. +*/ +static void +_fore_inject(u3_auto* car_u, c3_c* pax_c) +{ + // XX soft + // + u3_noun ovo = u3ke_cue(u3m_file(pax_c)); + u3_noun riw, cad, tar, wir; + + if ( c3n == u3r_cell(ovo, &riw, &cad) ) { + u3l_log("pier: invalid ovum in -I"); + } + else if ( (c3n == u3a_is_cell(cad)) + || (c3n == u3a_is_atom(u3h(cad))) ) + { + u3l_log("pier: invalid card in -I ovum"); + } + else if ( c3n == u3r_cell(riw, &tar, &wir) ) { + u3l_log("pier: invalid wire in -I ovum"); + } + else if ( (c3n == u3a_is_atom(tar)) + || (4 < u3r_met(3, tar)) ) + { + u3l_log("pier: invalid target in -I wire"); + } + else { + { + c3_c* tag_c = u3r_string(u3h(cad)); + u3_noun ser = u3do("spat", u3k(riw)); + c3_c* wir_c = u3r_string(ser); + + u3l_log("pier: injecting %%%s event on %s", tag_c, wir_c); + + c3_free(tag_c); + c3_free(wir_c); + u3z(ser); + } + + u3_auto_peer( + u3_auto_plan(car_u, u3_ovum_init(0, u3k(tar), u3k(wir), u3k(cad))), + 0, 0, _fore_inject_bail); + } + + u3z(ovo); +} + +/* _fore_import(): form an ovum from jammed archive at [pax_c] and inject it. +*/ +static void +_fore_import(u3_auto* car_u, c3_c* pax_c) +{ + u3_noun arc = u3ke_cue(u3m_file(pax_c)); + u3_noun imp = u3dt("cat", 3, u3i_string("#import_"), arc); + u3_noun siz = u3r_met(3, imp); + u3_noun dat = u3nt(u3_nul, siz, imp); + + u3_noun req = u3nt(c3n, + u3nc(u3i_string("ipv4"), u3i_word(0x7f000001)), + u3nq(u3i_string("POST"), u3i_string("/"), u3_nul, dat)); + u3_noun wir = u3nc(u3i_string("http-server"), u3_nul); + u3_noun cad = u3nc(u3i_string("request-local"), req); + u3_auto_peer( + u3_auto_plan(car_u, u3_ovum_init(0, c3__e, wir, cad)), + 0, 0, _fore_import_bail); +} + +/* _fore_io_talk(): +*/ +static void +_fore_io_talk(u3_auto* car_u) +{ + u3_noun wir, cad; + + // inject fresh entropy + // + { + c3_w eny_w[16]; + c3_rand(eny_w); + + wir = u3nc(c3__arvo, u3_nul); + cad = u3nc(c3__wack, u3i_words(16, eny_w)); + + u3_auto_plan(car_u, u3_ovum_init(0, u3_blip, wir, cad)); + } + + // set verbose as per -v + // + { + c3_o lac_o = ( c3y == u3_Host.ops_u.veb ) ? c3n : c3y; + wir = u3nc(c3__arvo, u3_nul); + cad = u3nt(c3__verb, u3_nul, lac_o); + u3_auto_plan(car_u, u3_ovum_init(0, u3_blip, wir, cad)); + } + + // inject arbitrary + // + if ( u3_Host.ops_u.jin_c ) { + _fore_inject(car_u, u3_Host.ops_u.jin_c); + } + + if ( u3_Host.ops_u.imp_c ) { + _fore_import(car_u, u3_Host.ops_u.imp_c); + } +} + +/* _fore_io_kick(): handle no effects. +*/ +static c3_o +_fore_io_kick(u3_auto* car_u, u3_noun wir, u3_noun cad) +{ + u3z(wir); u3z(cad); + return c3n; +} + +/* _fore_io_exit(): +*/ +static void +_fore_io_exit(u3_auto* car_u) +{ + c3_free(car_u); +} + +/* u3_fore_io_init(): initialize fore +*/ +u3_auto* +u3_fore_io_init(u3_pier* pir_u) +{ + u3_auto* car_u = c3_calloc(sizeof(*car_u)); + car_u->nam_m = c3__fore; + // XX set in done_cb for %wack + // + car_u->liv_o = c3y; + car_u->io.talk_f = _fore_io_talk; + car_u->io.kick_f = _fore_io_kick; + car_u->io.exit_f = _fore_io_exit; + // car_u->ev.bail_f = ...; + + return car_u; +} diff --git a/vere/pkg/vere/io/hind.c b/vere/pkg/vere/io/hind.c new file mode 100644 index 0000000..97cfba4 --- /dev/null +++ b/vere/pkg/vere/io/hind.c @@ -0,0 +1,86 @@ +/// @file + +#include "vere.h" + +#include "noun.h" + +/* _hind_io_talk(): +*/ +static void +_hind_io_talk(u3_auto* car_u) +{ +} + +/* _hind_io_kick(): handle generic effects, by tag +*/ +static c3_o +_hind_io_kick(u3_auto* car_u, u3_noun wir, u3_noun cad) +{ + u3_noun tag, dat; + c3_o ret_o; + + if ( c3n == u3r_cell(cad, &tag, &dat) ) { + ret_o = c3n; + } + else { + switch ( tag ) { + default: { + ret_o = c3n; + } break; + + case c3__exit: { + ret_o = c3y; + u3l_log("<<>>"); + u3_pier_exit(car_u->pir_u); + } break; + + // XX fake effect, check //arvo wire? + // + case c3__trim: { + ret_o = c3y; + u3_auto_plan(car_u, u3_ovum_init(0, u3_blip, + u3nc(c3__arvo, u3_nul), u3k(cad))); + } break; + + case c3__vega: { + ret_o = c3y; + u3l_log("<<>>"); + } break; + + // NB: startup explicitly handled in pier.c + // + // XX review arvo upgrade scenaria + // + case c3__wend: { + ret_o = c3y; + } break; + } + } + + u3z(wir); u3z(cad); + return ret_o; +} + +/* _hind_io_exit(): +*/ +static void +_hind_io_exit(u3_auto* car_u) +{ + c3_free(car_u); +} + +/* u3_hind_io_init(): +*/ +u3_auto* +u3_hind_io_init(u3_pier* pir_u) +{ + u3_auto* car_u = c3_calloc(sizeof(*car_u)); + car_u->nam_m = c3__hind; + car_u->liv_o = c3y; + car_u->io.talk_f = _hind_io_talk; + car_u->io.kick_f = _hind_io_kick; + car_u->io.exit_f = _hind_io_exit; + // car_u->ev.bail_f = ...; + + return car_u; +} diff --git a/vere/pkg/vere/io/http.c b/vere/pkg/vere/io/http.c new file mode 100644 index 0000000..8c502b0 --- /dev/null +++ b/vere/pkg/vere/io/http.c @@ -0,0 +1,3444 @@ +/// @file + +#include "vere.h" + +#include +#include + +#include "h2o.h" +#include "h2o/websocket.h" +#include "noun.h" +#include "openssl/err.h" +#include "openssl/ssl.h" +#include "version.h" + +typedef struct _u3_h2o_serv { + h2o_globalconf_t fig_u; // h2o global config + h2o_context_t ctx_u; // h2o ctx + h2o_accept_ctx_t cep_u; // h2o accept ctx + h2o_hostconf_t* hos_u; // h2o host config + h2o_handler_t* han_u; // h2o request handler +} u3_h2o_serv; + +/* u3_rsat: http request state. +*/ + typedef enum { + u3_rsat_init = 0, // initialized + u3_rsat_plan = 1, // planned + u3_rsat_peek = 2, // peek planned + u3_rsat_ripe = 3 // responded + } u3_rsat; + +typedef struct _u3_hws u3_hws; + +/* u3_hreq: incoming http request. +*/ + typedef struct _u3_hreq { + h2o_req_t* rec_u; // h2o request + c3_w seq_l; // sequence within connection + u3_rsat sat_e; // request state + uv_timer_t* tim_u; // timeout + void* gen_u; // response generator + struct _u3_preq* peq_u; // scry-backed (rsat_peek only) + u3_hws* wsu_u; // websocket session (optional) + struct _u3_hcon* hon_u; // connection backlink + struct _u3_hreq* nex_u; // next in connection's list + struct _u3_hreq* pre_u; // prev in connection's list + } u3_hreq; + + /* u3_preq: scry-backed http request. + */ + typedef struct _u3_preq { + struct _u3_hreq* req_u; // originating request (nullable) + struct _u3_httd* htd_u; // device backpointer + u3_noun pax; // partial scry path + c3_o las_o; // was scry at now + } u3_preq; + +/* u3_hcon: incoming http connection. +*/ + typedef struct _u3_hcon { + uv_tcp_t wax_u; // client stream handler + h2o_conn_t* con_u; // h2o connection + h2o_socket_t* sok_u; // h2o connection socket + c3_w ipf_w; // client ipv4 + c3_w coq_l; // connection number + c3_w seq_l; // next request number + struct _u3_http* htp_u; // server backlink + struct _u3_hreq* req_u; // request list + struct _u3_hcon* nex_u; // next in server's list + struct _u3_hcon* pre_u; // prev in server's list + } u3_hcon; + +/* u3_http: http server. +*/ + typedef struct _u3_http { + uv_tcp_t wax_u; // server stream handler + void* h2o_u; // libh2o configuration + c3_w sev_l; // server number + c3_w coq_l; // next connection number + c3_s por_s; // running port + c3_o dis; // manually-configured port + c3_o sec; // logically secure + c3_o lop; // loopback-only + c3_o liv; // c3n == shutdown + struct _u3_hcon* hon_u; // connection list + struct _u3_http* nex_u; // next in list + struct _u3_httd* htd_u; // device backpointer + } u3_http; + +/* u3_form: http config from %eyre +*/ + typedef struct _u3_form { + c3_o pro; // proxy + c3_o log; // keep access log + c3_o red; // redirect to HTTPS + uv_buf_t key_u; // PEM RSA private key + uv_buf_t cer_u; // PEM certificate chain + } u3_form; + +/* u3_hfig: general http configuration +*/ + typedef struct _u3_hfig { + u3_form* for_u; // config from %eyre + c3_c* key_c; // auth token key + u3_noun ses; // valid session tokens + struct _u3_hreq* seq_u; // open slog requests + uv_timer_t* sit_u; // slog stream heartbeat + } u3_hfig; + +/* u3_httd: general http device +*/ +typedef struct _u3_httd { + u3_auto car_u; // driver + c3_l sev_l; // instance number + u3_hfig fig_u; // http configuration + u3_http* htp_u; // http servers + SSL_CTX* tls_u; // server SSL_CTX* + u3p(u3h_root) sax_p; // url->scry cache + u3p(u3h_root) nax_p; // scry->noun cache + u3_hws* web_u; // websocket sessions + c3_w wid_l; // next websocket id +} u3_httd; + +typedef enum { + u3_hws_pending = 0, + u3_hws_open = 1, + u3_hws_closing = 2, + u3_hws_closed = 3, +} u3_hwsat; + +struct _u3_hws { + h2o_websocket_conn_t* woc_u; // h2o websocket connection + u3_httd* htd_u; // device backpointer + u3_hreq* req_u; // pending request (handshake) + u3_hws* nex_u; // next in list + u3_hws* pre_u; // prev in list + u3_hwsat sat_e; // websocket state + c3_w wid_l; // websocket id + c3_l sev_l; // server id + c3_l coq_l; // connection id + c3_l seq_l; // request id + c3_c key_c[29]; // sec-websocket-key buffer +}; + +static u3_weak _http_rec_to_httq(h2o_req_t* rec_u); +static u3_hreq* _http_req_prepare(h2o_req_t* rec_u, u3_hreq* (*new_f)(u3_hcon*, h2o_req_t*)); +static void _http_serv_free(u3_http* htp_u); +static void _http_serv_start_all(u3_httd* htd_u); +static void _http_form_free(u3_httd* htd_u); +static void _http_start_respond(u3_hreq* req_u, + u3_noun status, + u3_noun headers, + u3_noun data, + u3_noun complete); +static void _http_ws_handshake(u3_hreq* req_u, u3_noun req, const c3_c* client_key); +static void _http_ws_message_cb(h2o_websocket_conn_t *conn, const struct wslay_event_on_msg_recv_arg *arg); +static void _http_ws_link(u3_httd* htd_u, u3_hws* web_u); +static void _http_ws_unlink(u3_hws* web_u); +static u3_hws* _http_ws_find(u3_httd* htd_u, c3_w wid_l); +static void _http_ws_disconnect(u3_hws* web_u); +static void _http_ws_plan_event(u3_hws* web_u, u3_noun event); +static void _http_ws_close_all(u3_httd* htd_u); +static void _http_ws_detach_request(u3_hreq* req_u); + +static const c3_i TCP_BACKLOG = 16; +static const c3_w HEARTBEAT_TIMEOUT = 20 * 1000; + +/* _http_close_cb(): uv_close_cb that just free's handle +*/ +static void +_http_close_cb(uv_handle_t* han_u) +{ + c3_free(han_u); +} + +/* _http_vec_to_meth(): convert h2o_iovec_t to meth +*/ +static u3_weak +_http_vec_to_meth(h2o_iovec_t vec_u) +{ + return ( 0 == strncmp(vec_u.base, "GET", vec_u.len) ) ? u3i_string("GET") : + ( 0 == strncmp(vec_u.base, "PUT", vec_u.len) ) ? u3i_string("PUT") : + ( 0 == strncmp(vec_u.base, "POST", vec_u.len) ) ? u3i_string("POST") : + ( 0 == strncmp(vec_u.base, "HEAD", vec_u.len) ) ? u3i_string("HEAD") : + ( 0 == strncmp(vec_u.base, "CONNECT", vec_u.len) ) ? u3i_string("CONNECT") : + ( 0 == strncmp(vec_u.base, "DELETE", vec_u.len) ) ? u3i_string("DELETE") : + ( 0 == strncmp(vec_u.base, "OPTIONS", vec_u.len) ) ? u3i_string("OPTIONS") : + ( 0 == strncmp(vec_u.base, "TRACE", vec_u.len) ) ? u3i_string("TRACE") : + // TODO ?? + // ( 0 == strncmp(vec_u.base, "PATCH", vec_u.len) ) ? c3__patc : + u3_none; +} + +/* _http_vec_to_atom(): convert h2o_iovec_t to atom (cord) +*/ +static u3_noun +_http_vec_to_atom(h2o_iovec_t vec_u) +{ + return u3i_bytes(vec_u.len, (const c3_y*)vec_u.base); +} + +/* _http_vec_to_octs(): convert h2o_iovec_t to (unit octs) +*/ +static u3_noun +_http_vec_to_octs(h2o_iovec_t vec_u) +{ + if ( 0 == vec_u.len ) { + return u3_nul; + } + + // XX correct size_t -> atom? + return u3nt(u3_nul, u3i_chubs(1, (const c3_d*)&vec_u.len), + _http_vec_to_atom(vec_u)); +} + +/* _cttp_bods_free(): free body structure. +*/ +static void +_cttp_bods_free(u3_hbod* bod_u) +{ + while ( bod_u ) { + u3_hbod* nex_u = bod_u->nex_u; + + c3_free(bod_u); + bod_u = nex_u; + } +} + +/* _cttp_bod_from_octs(): translate octet-stream noun into body. +*/ +static u3_hbod* +_cttp_bod_from_octs(u3_noun oct) +{ + c3_w len_w; + + if ( !_(u3a_is_cat(u3h(oct))) ) { // 2GB max + u3m_bail(c3__fail); return 0; + } + len_w = u3h(oct); + + { + u3_hbod* bod_u = c3_malloc(1 + len_w + sizeof(*bod_u)); + bod_u->hun_y[len_w] = 0; + bod_u->len_w = len_w; + u3r_bytes(0, len_w, bod_u->hun_y, u3t(oct)); + + bod_u->nex_u = 0; + + u3z(oct); + return bod_u; + } +} + +/* _cttp_bods_to_vec(): translate body buffers to array of h2o_iovec_t +*/ +static h2o_iovec_t* +_cttp_bods_to_vec(u3_hbod* bod_u, c3_w* tot_w) +{ + h2o_iovec_t* vec_u; + c3_w len_w; + + { + u3_hbod* bid_u = bod_u; + len_w = 0; + + while( bid_u ) { + len_w++; + bid_u = bid_u->nex_u; + } + } + + vec_u = c3_malloc(sizeof(h2o_iovec_t) * len_w); + len_w = 0; + + while( bod_u ) { + vec_u[len_w] = h2o_iovec_init(bod_u->hun_y, bod_u->len_w); + len_w++; + bod_u = bod_u->nex_u; + } + + *tot_w = len_w; + + return vec_u; +} + +/* _http_heds_to_noun(): convert h2o_header_t to (list (pair @t @t)) +*/ +static u3_noun +_http_heds_to_noun(h2o_header_t* hed_u, c3_d hed_d) +{ + u3_noun hed = u3_nul; + c3_d dex_d = hed_d; + + h2o_header_t deh_u; + + while ( 0 < dex_d ) { + deh_u = hed_u[--dex_d]; + hed = u3nc(u3nc(_http_vec_to_atom(*deh_u.name), + _http_vec_to_atom(deh_u.value)), hed); + } + + return hed; +} + +/* _http_heds_free(): free header linked list +*/ +static void +_http_heds_free(u3_hhed* hed_u) +{ + while ( hed_u ) { + u3_hhed* nex_u = hed_u->nex_u; + + c3_free(hed_u->nam_c); + c3_free(hed_u->val_c); + c3_free(hed_u); + hed_u = nex_u; + } +} + +/* _http_hed_new(): create u3_hhed from nam/val cords +*/ +static u3_hhed* +_http_hed_new(u3_atom nam, u3_atom val) +{ + c3_w nam_w = u3r_met(3, nam); + c3_w val_w = u3r_met(3, val); + u3_hhed* hed_u = c3_malloc(sizeof(*hed_u)); + + hed_u->nam_c = c3_malloc(1 + nam_w); + hed_u->val_c = c3_malloc(1 + val_w); + hed_u->nam_c[nam_w] = 0; + hed_u->val_c[val_w] = 0; + hed_u->nex_u = 0; + hed_u->nam_w = nam_w; + hed_u->val_w = val_w; + + u3r_bytes(0, nam_w, (c3_y*)hed_u->nam_c, nam); + u3r_bytes(0, val_w, (c3_y*)hed_u->val_c, val); + + return hed_u; +} + +/* _http_heds_from_noun(): convert (list (pair @t @t)) to u3_hhed +*/ +static u3_hhed* +_http_heds_from_noun(u3_noun hed) +{ + u3_noun deh = hed; + u3_noun i_hed; + + u3_hhed* hed_u = 0; + + while ( u3_nul != hed ) { + i_hed = u3h(hed); + u3_hhed* nex_u = _http_hed_new(u3h(i_hed), u3t(i_hed)); + nex_u->nex_u = hed_u; + + hed_u = nex_u; + hed = u3t(hed); + } + + u3z(deh); + return hed_u; +} + +/* _http_req_is_auth(): returns c3y if rec_u contains a valid auth cookie +*/ +static c3_o +_http_req_is_auth(u3_hfig* fig_u, h2o_req_t* rec_u) +{ + // try to find a cookie header + // + h2o_iovec_t coo_u = {NULL, 0}; + { + //TODO http2 allows the client to put multiple 'cookie' headers, + // runtime should support that once eyre does too. + ssize_t hin_i = h2o_find_header_by_str(&rec_u->headers, "cookie", 6, -1); + if ( hin_i != -1 ) { + coo_u = rec_u->headers.entries[hin_i].value; + } + } + + // if there is no cookie header, it can't possibly be authenticated + // + if ( NULL == coo_u.base ) { + return c3n; + } + // if there is a cookie, see if it contains a valid auth token + // + else { + c3_c* key_c = fig_u->key_c; + c3_c val_c[128]; + c3_y val_y = 0; + size_t i_i = 0; + size_t j_i = 0; + + // step through the cookie string + // + while (i_i < coo_u.len) { + // if we found our key, read the value + // + if (key_c[j_i] == '\0' && coo_u.base[i_i] == '=') { + i_i++; + while ( i_i < coo_u.len + && coo_u.base[i_i] != ';' + && val_y < sizeof(val_c) ) { + val_c[val_y] = coo_u.base[i_i]; + val_y++; + i_i++; + } + break; + } + // keep reading the key as long as it matches + // + else if (coo_u.base[i_i] == key_c[j_i]) { + j_i++; + } + else { + j_i = 0; + } + i_i++; + } + + u3_noun aut = u3kdi_has(u3k(fig_u->ses), u3i_bytes(val_y, (c3_y*)val_c)); + u3_assert(c3y == aut || c3n == aut); + + return aut; + } +} + +/* _http_req_find(): find http request in connection by sequence. +*/ +static u3_hreq* +_http_req_find(u3_hcon* hon_u, c3_w seq_l) +{ + u3_hreq* req_u = hon_u->req_u; + + // XX glories of linear search + // + while ( req_u ) { + if ( seq_l == req_u->seq_l ) { + return req_u; + } + req_u = req_u->nex_u; + } + return 0; +} + +/* _http_req_link(): link http request to connection +*/ +static void +_http_req_link(u3_hcon* hon_u, u3_hreq* req_u) +{ + req_u->hon_u = hon_u; + req_u->seq_l = hon_u->seq_l++; + req_u->nex_u = hon_u->req_u; + + if ( 0 != req_u->nex_u ) { + req_u->nex_u->pre_u = req_u; + } + hon_u->req_u = req_u; +} + +/* _http_req_unlink(): remove http request from connection +*/ +static void +_http_req_unlink(u3_hreq* req_u) +{ + if ( 0 != req_u->pre_u ) { + req_u->pre_u->nex_u = req_u->nex_u; + + if ( 0 != req_u->nex_u ) { + req_u->nex_u->pre_u = req_u->pre_u; + } + } + else { + req_u->hon_u->req_u = req_u->nex_u; + + if ( 0 != req_u->nex_u ) { + req_u->nex_u->pre_u = 0; + } + } +} + +/* _http_seq_link(): store slog stream request in state +*/ +static void +_http_seq_link(u3_hcon* hon_u, u3_hreq* req_u) +{ + u3_hfig* fig_u = &hon_u->htp_u->htd_u->fig_u; + req_u->hon_u = hon_u; + req_u->seq_l = hon_u->seq_l++; + req_u->nex_u = fig_u->seq_u; + + if ( 0 != req_u->nex_u ) { + req_u->nex_u->pre_u = req_u; + } + fig_u->seq_u = req_u; +} + +/* _http_seq_unlink(): remove slog stream request from state +*/ +static void +_http_seq_unlink(u3_hreq* req_u) +{ + u3_hfig* fig_u = &req_u->hon_u->htp_u->htd_u->fig_u; + if ( 0 != req_u->pre_u ) { + req_u->pre_u->nex_u = req_u->nex_u; + + if ( 0 != req_u->nex_u ) { + req_u->nex_u->pre_u = req_u->pre_u; + } + } + else { + fig_u->seq_u = req_u->nex_u; + + if ( 0 != req_u->nex_u ) { + req_u->nex_u->pre_u = 0; + } + } + + // unlink from async scry request if present + // + if ( req_u->peq_u ) { + req_u->peq_u->req_u = 0; + } +} + +/* _http_req_to_duct(): translate srv/con/req to duct +*/ +static u3_noun +_http_req_to_duct(u3_hreq* req_u) +{ + return u3nc(u3i_string("http-server"), + u3nq(u3dc("scot", c3__uv, req_u->hon_u->htp_u->sev_l), + u3dc("scot", c3__ud, req_u->hon_u->coq_l), + u3dc("scot", c3__ud, req_u->seq_l), + u3_nul)); +} + +/* _http_req_kill(): kill http request in %eyre. +*/ +static void +_http_req_kill(u3_hreq* req_u) +{ + u3_httd* htd_u = req_u->hon_u->htp_u->htd_u; + u3_noun wir = _http_req_to_duct(req_u); + u3_noun cad = u3nc(u3i_string("cancel-request"), u3_nul); + + u3_auto_plan(&htd_u->car_u, u3_ovum_init(0, c3__e, wir, cad)); +} + +/* _http_ws_link(): link websocket session to device list. +*/ +static void +_http_ws_link(u3_httd* htd_u, u3_hws* web_u) +{ + web_u->htd_u = htd_u; + web_u->nex_u = htd_u->web_u; + web_u->pre_u = 0; + + if ( 0 != web_u->nex_u ) { + web_u->nex_u->pre_u = web_u; + } + htd_u->web_u = web_u; +} + +/* _http_ws_unlink(): unlink websocket session from device list. +*/ +static void +_http_ws_unlink(u3_hws* web_u) +{ + if ( 0 != web_u->pre_u ) { + web_u->pre_u->nex_u = web_u->nex_u; + + if ( 0 != web_u->nex_u ) { + web_u->nex_u->pre_u = web_u->pre_u; + } + } + else if ( web_u->htd_u->web_u == web_u ) { + web_u->htd_u->web_u = web_u->nex_u; + + if ( 0 != web_u->nex_u ) { + web_u->nex_u->pre_u = 0; + } + } + + web_u->nex_u = 0; + web_u->pre_u = 0; +} + +/* _http_ws_find(): locate websocket session by id. +*/ +static u3_hws* +_http_ws_find(u3_httd* htd_u, c3_w wid_l) +{ + u3_hws* web_u = htd_u->web_u; + + while ( 0 != web_u ) { + if ( wid_l == web_u->wid_l ) { + return web_u; + } + web_u = web_u->nex_u; + } + + return 0; +} + +/* _http_ws_to_duct(): rebuild duct for websocket session. +*/ +static u3_noun +_http_ws_to_duct(u3_hws* web_u) +{ + return u3nc(u3i_string("http-server"), + u3nq(u3dc("scot", c3__uv, web_u->sev_l), + u3dc("scot", c3__ud, web_u->coq_l), + u3dc("scot", c3__ud, web_u->seq_l), + u3_nul)); +} + +/* _http_ws_plan_event(): queue websocket event for eyre. +*/ +static void +_http_ws_plan_event(u3_hws* web_u, u3_noun event) +{ + u3_noun wir = _http_ws_to_duct(web_u); + u3_noun pay = u3nc(u3i_chub((c3_d)web_u->wid_l), event); + u3_noun cad = u3nc(u3i_string("websocket-event"), pay); + + u3l_log("http: ws emit wid=%u event=%s", web_u->wid_l, u3r_string(u3h(cad))); + + u3_auto_plan(&web_u->htd_u->car_u, u3_ovum_init(0, c3__e, wir, cad)); +} + +/* _http_ws_close_all(): close all active websocket sessions. +*/ +static void +_http_ws_close_all(u3_httd* htd_u) +{ + u3_hws* web_u = htd_u->web_u; + + while ( 0 != web_u ) { + u3_hws* nex_u = web_u->nex_u; + _http_ws_disconnect(web_u); + web_u = nex_u; + } +} + +/* _http_ws_detach_request(): release websocket session tied to request (if pending). +*/ +static void +_http_ws_detach_request(u3_hreq* req_u) +{ + if ( 0 == req_u->wsu_u ) { + return; + } + + u3_hws* web_u = req_u->wsu_u; + req_u->wsu_u = 0; + + if ( 0 != web_u->req_u && web_u->req_u == req_u ) { + web_u->req_u = 0; + web_u->sat_e = u3_hws_closed; + _http_ws_unlink(web_u); + c3_free(web_u); + } +} + +typedef struct _u3_hgen { + h2o_generator_t neg_u; // response callbacks + c3_o red; // ready to send + enum { // + u3_hgen_wait = 0, // more expected + u3_hgen_done = 1, // complete + u3_hgen_fail = 2 // failed + } sat_e; + u3_hbod* bod_u; // pending body + u3_hbod* nud_u; // pending free + u3_hhed* hed_u; // pending free + u3_hreq* req_u; // originating request +} u3_hgen; + +/* _http_req_close(): clean up & deallocate request +*/ +static void +_http_req_close(u3_hreq* req_u) +{ + if ( 0 != req_u->wsu_u ) { + _http_ws_detach_request(req_u); + } + + // client canceled request before response + // + if ( u3_rsat_plan == req_u->sat_e ) { + _http_req_kill(req_u); + } + + if ( 0 != req_u->tim_u ) { + uv_close((uv_handle_t*)req_u->tim_u, _http_close_cb); + req_u->tim_u = 0; + } +} + +/* _http_req_done(): request finished, deallocation callback +*/ +static void +_http_req_done(void* ptr_v) +{ + u3_hreq* req_u = (u3_hreq*)ptr_v; + _http_req_close(req_u); + _http_req_unlink(req_u); +} + +/* _http_seq_done(): slog stream request finished, deallocation callback +*/ +static void +_http_seq_done(void* ptr_v) +{ + u3_hreq* seq_u = (u3_hreq*)ptr_v; + _http_req_close(seq_u); + _http_seq_unlink(seq_u); +} + +static void +_http_hgen_send(u3_hgen* gen_u); + +/* _http_req_timer_cb(): request timeout callback +*/ +static void +_http_req_timer_cb(uv_timer_t* tim_u) +{ + u3_hreq* req_u = tim_u->data; + + switch ( req_u->sat_e ) { + case u3_rsat_init: u3_assert(0); + + case u3_rsat_plan: { + _http_req_kill(req_u); + req_u->sat_e = u3_rsat_ripe; + + c3_c* msg_c = "gateway timeout"; + h2o_send_error_generic(req_u->rec_u, 504, msg_c, msg_c, 0); + + if ( 0 != req_u->wsu_u ) { + _http_ws_detach_request(req_u); + } + } break; + + case u3_rsat_peek: { + req_u->peq_u->req_u = 0; + c3_c* msg_c = "gateway timeout"; + h2o_send_error_generic(req_u->rec_u, 504, msg_c, msg_c, 0); + } break; + + case u3_rsat_ripe: { + u3_hgen* gen_u = req_u->gen_u; + + // inform %eyre if response was incomplete + // + if ( u3_hgen_wait == gen_u->sat_e ) { + _http_req_kill(req_u); + } + + gen_u->sat_e = u3_hgen_fail; + + if ( c3y == gen_u->red ) { + _http_hgen_send(gen_u); + } + } break; + } +} + +/* _http_req_new(): receive standard http request. +*/ +static u3_hreq* +_http_req_new(u3_hcon* hon_u, h2o_req_t* rec_u) +{ + u3_hreq* req_u = h2o_mem_alloc_shared(&rec_u->pool, sizeof(*req_u), + _http_req_done); + memset(req_u, 0, sizeof(*req_u)); + req_u->rec_u = rec_u; + req_u->sat_e = u3_rsat_init; + + _http_req_link(hon_u, req_u); + + return req_u; +} + +/* _http_seq_new(): receive slog stream http request. +*/ +static u3_hreq* +_http_seq_new(u3_hcon* hon_u, h2o_req_t* rec_u) +{ + u3_hreq* req_u = h2o_mem_alloc_shared(&rec_u->pool, sizeof(*req_u), + _http_seq_done); + memset(req_u, 0, sizeof(*req_u)); + req_u->rec_u = rec_u; + req_u->sat_e = u3_rsat_plan; + + _http_seq_link(hon_u, req_u); + + return req_u; +} + +static void +_http_cache_respond(u3_hreq* req_u, u3_noun nun); + +static void +_http_scry_respond(u3_hreq* req_u, u3_noun nun); + +typedef struct _byte_range { + c3_z beg_z; + c3_z end_z; +} byte_range; + +/* _chunk_align(): align range to a nearby chunk +*/ +static void +_chunk_align(byte_range* rng_u) +{ + c3_z siz_z = 4194304; // 4MiB + + if ( SIZE_MAX != rng_u->beg_z ) { + if ( rng_u->beg_z > rng_u->end_z ) { + rng_u->beg_z = SIZE_MAX; + rng_u->end_z = SIZE_MAX; + } + else { + // XX an out-of-bounds request could be aligned to in-bounds + // resulting in a 200 or 206 response instead of 416. + // browsers should have the total length from content-range, + // and send reasonable range requests. + // + rng_u->beg_z = (rng_u->beg_z / siz_z) * siz_z; + rng_u->end_z = (rng_u->beg_z + siz_z) - 1; + } + } + else if ( SIZE_MAX != rng_u->end_z ) { + // round up to multiple of siz_z + rng_u->end_z = siz_z * ((rng_u->end_z / siz_z) + 1); + } +} + +/* _parse_range(): get a range from '-' delimited text +*/ +static byte_range +_parse_range(c3_c* txt_c, c3_w len_w) +{ + c3_c* hep_c = memchr(txt_c, '-', len_w); + byte_range rng_u; + rng_u.beg_z = SIZE_MAX; + rng_u.end_z = SIZE_MAX; + + if ( hep_c ) { + rng_u.beg_z = h2o_strtosize(txt_c, hep_c - txt_c); + rng_u.end_z = h2o_strtosize(hep_c + 1, len_w - ((hep_c + 1) - txt_c)); + // strange -> [SIZE_MAX SIZE_MAX] + if ( ((SIZE_MAX == rng_u.beg_z) && (hep_c != txt_c)) + || ((SIZE_MAX == rng_u.end_z) && (len_w - ((hep_c + 1) - txt_c) > 0)) + || ((SIZE_MAX != rng_u.beg_z) && (rng_u.beg_z > rng_u.end_z)) ) + { + rng_u.beg_z = SIZE_MAX; + rng_u.end_z = SIZE_MAX; + } + } + return rng_u; +} + +/* _get_range(): get a _byte_range from headers +*/ +static c3_o +_get_range(h2o_headers_t req_headers, byte_range* rng_u) +{ + rng_u->beg_z = SIZE_MAX; + rng_u->end_z = SIZE_MAX; + + c3_w inx_w = h2o_find_header(&req_headers, H2O_TOKEN_RANGE, -1); + if ( UINT32_MAX == inx_w) { + return c3n; + } + + if ( (req_headers.entries[inx_w].value.len >= 6) + && (0 == memcmp("bytes=", req_headers.entries[inx_w].value.base, 6)) ) + { + byte_range tmp_u = _parse_range(req_headers.entries[inx_w].value.base + 6, + req_headers.entries[inx_w].value.len - 6); + rng_u->beg_z = tmp_u.beg_z; + rng_u->end_z = tmp_u.end_z; + } + + return c3y; +} + +/* _http_scry_cb(): respond and maybe cache scry result +*/ +static void +_http_scry_cb(void* vod_p, u3_noun nun) +{ + u3_preq* peq_u = vod_p; + u3_httd* htd_u = peq_u->htd_u; + u3_hreq* req_u = peq_u->req_u; + u3_hfig* fig_u = &req_u->hon_u->htp_u->htd_u->fig_u; + c3_o auth = _http_req_is_auth(fig_u, req_u->rec_u); + + if ( req_u ) { + u3_assert(u3_rsat_peek == req_u->sat_e); + req_u->peq_u = 0; + _http_scry_respond(req_u, u3k(nun)); + } + + // cache only if peek was not at now, and nun isn't u3_nul + if ( (c3n == peq_u->las_o) + && (u3_nul != nun) ) + { + u3_noun key = u3nc(auth, u3k(peq_u->pax)); + u3h_put(htd_u->nax_p, key, nun); + u3z(key); + } + else { + u3z(nun); + } + + u3z(peq_u->pax); + c3_free(peq_u); +} + +/* _beam: ship desk case spur +*/ +typedef struct _beam { + u3_weak who; + u3_weak des; + u3_weak cas; + u3_weak pur; +} beam; + +/* _free_beam(): free a beam +*/ +static void +_free_beam(beam* bem) +{ + u3z(bem->who); + u3z(bem->des); + u3z(bem->cas); + u3z(bem->pur); +} + +/* _get_beam(): get a _beam from url +*/ +static beam +_get_beam(u3_hreq* req_u, c3_c* txt_c, c3_w len_w) +{ + beam bem; + + // get beak + // + for ( c3_w i_w = 0; i_w < 3; ++i_w ) { + u3_noun* wer; + if ( 0 == i_w ) { + wer = &bem.who; + } + else if ( 1 == i_w ) { + wer = &bem.des; + } + else { + wer = &bem.cas; + } + + // find '//' + if ( (len_w >= 2) + && ('/' == txt_c[0]) + && ('/' == txt_c[1]) ) + { + *wer = u3_nul; + txt_c++; + len_w--; + } + // skip '/' + else if ( (len_w > 0) && ('/' == txt_c[0]) ) { + txt_c++; + len_w--; + } + + // '=' + if ( (len_w > 0) && ('=' == txt_c[0]) ) { + if ( 0 == i_w ) { + u3_http* htp_u = req_u->hon_u->htp_u; + u3_httd* htd_u = htp_u->htd_u; + *wer = u3dc("scot", 'p', u3i_chubs(2, htd_u->car_u.pir_u->who_d)); + } + else if ( 1 == i_w ) { + *wer = c3__base; + } + else { + req_u->peq_u->las_o = c3y; + } + txt_c++; + len_w--; + } + // slice cord + else { + c3_c* nex_c; + c3_c* tis_c = memchr(txt_c, '=', len_w); + c3_c* fas_c = memchr(txt_c, '/', len_w); + + if ( tis_c && fas_c ) { + nex_c = c3_min(tis_c, fas_c); + } + else { + nex_c = ( tis_c ) ? tis_c : fas_c; + } + + if ( !nex_c ) { + *wer = u3_none; + return bem; + } + else { + c3_w dif_w = (c3_p)(nex_c - txt_c); + *wer = u3i_bytes(dif_w, (const c3_y*)txt_c); + txt_c = nex_c; + len_w = len_w - dif_w; + } + } + } + + // get spur + u3_noun tmp = u3dc("rush", u3i_bytes(len_w, (const c3_y*)txt_c), u3v_wish("stap")); + bem.pur = ( u3_nul == tmp ) ? u3_none : u3k(u3t(tmp)); + u3z(tmp); + + return bem; +} + +/* _http_req_dispatch(): dispatch http request +*/ +static void +_http_req_dispatch(u3_hreq* req_u, u3_noun req) +{ + u3_assert(u3_rsat_init == req_u->sat_e); + req_u->sat_e = u3_rsat_plan; + + { + u3_http* htp_u = req_u->hon_u->htp_u; + u3_httd* htd_u = htp_u->htd_u; + + c3_c* bas_c = req_u->rec_u->input.path.base; + c3_w len_w = req_u->rec_u->input.path.len; + + // check if base url starts with '/_~_/' + if ( (len_w < 6) + || (0 != memcmp("/_~_/", bas_c, 5)) ) + { + // no: inject to arvo + u3_noun wir = _http_req_to_duct(req_u); + u3_noun cad; + u3_noun adr = u3nc(c3__ipv4, u3i_words(1, &req_u->hon_u->ipf_w)); + // XX loopback automatically secure too? + // + u3_noun dat = u3nt(htp_u->sec, adr, req); + + cad = ( c3y == req_u->hon_u->htp_u->lop ) + ? u3nc(u3i_string("request-local"), dat) + : u3nc(u3i_string("request"), dat); + u3_auto_plan(&htd_u->car_u, u3_ovum_init(0, c3__e, wir, cad)); + } + else { + // '/_~_/' found + bas_c = bas_c + 4; // retain '/' after /_~_ + len_w = len_w - 4; + + req_u->peq_u = c3_malloc(sizeof(*req_u->peq_u)); + req_u->peq_u->req_u = req_u; + req_u->peq_u->htd_u = htd_u; + req_u->peq_u->las_o = c3n; + req_u->sat_e = u3_rsat_peek; + req_u->peq_u->pax = u3_nul; + + u3_hfig* fig_u = &req_u->hon_u->htp_u->htd_u->fig_u; + h2o_req_t* rec_u = req_u->rec_u; + + // set gang to [~ ~] or ~ + u3_noun gang; + c3_o auth = _http_req_is_auth(fig_u, rec_u); + if ( auth == c3y ) { + gang = u3nc(u3_nul, u3_nul); + } + else { + gang = u3_nul; + } + + beam bem = _get_beam(req_u, bas_c, len_w); + if ( (u3_none == bem.who) + || (u3_none == bem.des) + || (u3_none == bem.cas) + || (u3_none == bem.pur) ) + { + c3_c* msg_c = "bad request"; + h2o_send_error_generic(req_u->rec_u, 400, msg_c, msg_c, 0); + u3z(gang); + u3z(req_u->peq_u->pax); + _free_beam(&bem); + return; + } + + h2o_headers_t req_headers = req_u->rec_u->headers; + byte_range rng_u; + c3_o rng_o = _get_range(req_headers, &rng_u); + + // prepare spur for eyre range scry + // + u3_noun spur; + if ( c3n == rng_o ) { + // full range: '/range/0//foo' + spur = u3nq(u3i_string("range"), c3_s1('0'), u3_blip, u3k(bem.pur)); + } + else { + _chunk_align(&rng_u); + + u3_atom beg = ( SIZE_MAX == rng_u.beg_z) ? + u3_blip : u3dc("scot", c3__ud, u3i_chub(rng_u.beg_z)); + u3_atom end = ( SIZE_MAX == rng_u.end_z) ? + u3_blip : u3dc("scot", c3__ud, u3i_chub(rng_u.end_z)); + + spur = u3nq(u3i_string("range"), beg, end, u3k(bem.pur)); + } + + // peek or respond from cache + // + if ( c3y == req_u->peq_u->las_o ) { + u3_noun our = u3dc("scot", 'p', u3i_chubs(2, htd_u->car_u.pir_u->who_d)); + if ( c3y == u3r_sing(our, bem.who) ) { + u3_pier_peek_last(htd_u->car_u.pir_u, gang, c3__ex, + u3k(bem.des), spur, req_u->peq_u, _http_scry_cb); + } + else { + c3_c* msg_c = "bad request"; + h2o_send_error_generic(req_u->rec_u, 400, msg_c, msg_c, 0); + u3z(gang); + u3z(spur); + u3z(req_u->peq_u->pax); + } + u3z(our); + } + else { + u3_noun bam = u3nq(u3k(bem.who), u3k(bem.des), u3k(bem.cas), spur); + u3_noun key = u3nc(auth, u3k(bam)); + u3_weak nac = u3h_get(htd_u->nax_p, key); + u3z(key); + + if ( (u3_none == nac) + || ((u3_nul == gang) && (c3y == u3r_at(14, nac))) ) + { + // maybe cache, then serve subsequent range requests from cache + u3z(req_u->peq_u->pax); + req_u->peq_u->pax = u3k(bam); + u3_pier_peek(htd_u->car_u.pir_u, gang, u3nt(0, c3__ex, bam), + req_u->peq_u, _http_scry_cb); + u3z(nac); + } + else { + _http_scry_respond(req_u, nac); + u3z(bam); + u3z(gang); + } + } + _free_beam(&bem); + } + } +} + +/* _http_ws_handshake(): handle websocket handshake request. +*/ +static void +_http_ws_handshake(u3_hreq* req_u, u3_noun req, const c3_c* client_key) +{ + // capture the owning HTTP server/device so we can reuse shared state + // + u3_http* htp_u = req_u->hon_u->htp_u; + u3_httd* htd_u = htp_u->htd_u; + + // websocket ids start at 1; initialize the counter lazily + // + if ( 0 == htd_u->wid_l ) { + htd_u->wid_l = 1; + } + + // allocate a websocket session, mark it pending, and record the + // identifiers needed to upgrade/respond later (server/connection/request) + // + u3_hws* web_u = c3_calloc(sizeof(*web_u)); + web_u->sat_e = u3_hws_pending; + web_u->wid_l = htd_u->wid_l++; + web_u->sev_l = htp_u->sev_l; + web_u->coq_l = req_u->hon_u->coq_l; + web_u->seq_l = req_u->seq_l; + web_u->req_u = req_u; + web_u->woc_u = 0; + + // stash the Sec-WebSocket-Key so h2o can finalize the upgrade later + // + ssize_t key_index = h2o_find_header_by_str(&req_u->rec_u->headers, + H2O_STRLIT("sec-websocket-key"), -1); + size_t key_len = ( -1 != key_index ) + ? req_u->rec_u->headers.entries[key_index].value.len + : 0; + if ( key_len >= sizeof(web_u->key_c) ) { + key_len = sizeof(web_u->key_c) - 1; + } + memcpy(web_u->key_c, client_key, key_len); + web_u->key_c[key_len] = 0; + + // link the session into the device list and note the pending plan on req + // + _http_ws_link(htd_u, web_u); + req_u->wsu_u = web_u; + req_u->sat_e = u3_rsat_plan; + + // build the `%http-server` duct: ["http-server" uv-id conn-id req-id] + // + u3_noun wir = _http_req_to_duct(req_u); + // peer IPv4 as `[c3__ipv4 (atom ip-address)]` + // + c3_w ipf_w = req_u->hon_u->ipf_w; + u3_noun adr = u3nc(c3__ipv4, u3i_words(1, &ipf_w)); + // + u3_noun dat = u3nt(htp_u->sec, adr, u3k(req)); + // + u3_noun pay = u3nc(u3i_chub((c3_d)web_u->wid_l), dat); + // final ovum: ["websocket-handshake" pay], i.e. [%websocket-handshake websocket-id=@ secure=? =address:eyre =request:http] + // + u3_noun cad = u3nc(u3i_string("websocket-handshake"), pay); + + // enqueue the ovum for %eyre and drop the temporary request noun + // + u3_auto_plan(&htd_u->car_u, u3_ovum_init(0, c3__e, wir, cad)); + + u3z(req); +} + +/* _http_ws_accept(): accept websocket handshake. +*/ +static void +_http_ws_accept(u3_hws* web_u) +{ + if ( 0 == web_u || u3_hws_pending != web_u->sat_e ) { + return; + } + + u3_hreq* req_u = web_u->req_u; + if ( 0 == req_u ) { + return; + } + + if ( 0 != req_u->tim_u ) { + uv_timer_stop(req_u->tim_u); + } + + req_u->sat_e = u3_rsat_ripe; + + u3l_log("http: ws accept wid=%u req=%p rec=%p", web_u->wid_l, (void*)req_u, (void*)req_u->rec_u); + + // guard against h2o freeing the request while we upgrade; if that happens, + // _http_req_close() will no longer tear down the websocket session. + web_u->req_u = 0; + + web_u->woc_u = h2o_upgrade_to_websocket(req_u->rec_u, + web_u->key_c, + web_u, + _http_ws_message_cb); + + if ( 0 == web_u->woc_u ) { + c3_c* msg_c = "websocket upgrade failed"; + h2o_send_error_generic(req_u->rec_u, 500, msg_c, msg_c, 0); + web_u->req_u = req_u; + req_u->wsu_u = 0; + web_u->sat_e = u3_hws_closed; + _http_ws_unlink(web_u); + c3_free(web_u); + return; + } + + web_u->sat_e = u3_hws_open; + req_u->wsu_u = web_u; + + u3l_log("http: ws proceed scheduled wid=%u conn=%p", web_u->wid_l, (void*)web_u->woc_u); + + /* h2o will invoke h2o_websocket_proceed() once the HTTP upgrade completes + * (see on_complete in lib/websocket.c). Calling it here would dereference a + * null sock before the upgrade is finalized. + */ +} + +/* _http_ws_reject(): reject websocket handshake. +*/ +static void +_http_ws_reject(u3_hws* web_u) +{ + if ( 0 == web_u || u3_hws_pending != web_u->sat_e ) { + return; + } + + web_u->sat_e = u3_hws_closed; + + if ( 0 != web_u->req_u ) { + u3_hreq* req_u = web_u->req_u; + if ( 0 != req_u->tim_u ) { + uv_timer_stop(req_u->tim_u); + } + req_u->sat_e = u3_rsat_ripe; + req_u->wsu_u = 0; + + c3_c* msg_c = "websocket rejected"; + h2o_send_error_generic(req_u->rec_u, 403, msg_c, msg_c, 0); + } + + _http_ws_unlink(web_u); + c3_free(web_u); +} + +/* _http_ws_disconnect(): close websocket connection. +*/ +static void +_http_ws_disconnect(u3_hws* web_u) +{ + if ( 0 == web_u ) { + return; + } + + if ( u3_hws_pending == web_u->sat_e ) { + _http_ws_reject(web_u); + return; + } + + if ( (u3_hws_open == web_u->sat_e) && (0 != web_u->woc_u) ) { + web_u->sat_e = u3_hws_closing; + h2o_websocket_close(web_u->woc_u); + } +} + +/* _http_ws_send_message(): serialize and send websocket message to client. +*/ +static c3_o +_http_ws_send_message(u3_hws* web_u, u3_noun msg) +{ + if ( 0 == web_u || u3_hws_open != web_u->sat_e || 0 == web_u->woc_u ) { + u3z(msg); + return c3n; + } + + u3_noun opcode = u3h(msg); + u3_noun body = u3t(msg); + + c3_w opc_w; + if ( c3n == u3r_safe_word(opcode, &opc_w) ) { + u3l_log("http: bad websocket opcode"); + u3z(msg); + return c3n; + } + + c3_y* buf_y = 0; + size_t len_w = 0; + + if ( u3_nul != body ) { + if ( u3_nul != u3h(body) ) { + u3l_log("http: malformed websocket message body"); + u3z(msg); + return c3n; + } + + u3_noun oct = u3t(body); + c3_d len_d = u3r_chub(0, u3h(oct)); + if ( len_d > SIZE_MAX ) { + u3l_log("http: websocket message too large"); + u3z(msg); + return c3n; + } + len_w = (size_t)len_d; + + if ( 0 != len_w ) { + buf_y = c3_malloc(len_w); + u3r_bytes(0, len_w, buf_y, u3t(oct)); + } + } + + struct wslay_event_msg out = { + .opcode = (uint8_t)(opc_w & 0xFF), + .msg = buf_y, + .msg_length = len_w, + }; + + int sas_i = wslay_event_queue_msg(web_u->woc_u->ws_ctx, &out); + if ( 0 != sas_i ) { + u3l_log("http: websocket queue failed (%d)", sas_i); + if ( buf_y ) { + c3_free(buf_y); + } + u3z(msg); + return c3n; + } + + if ( buf_y ) { + c3_free(buf_y); + } + + h2o_websocket_proceed(web_u->woc_u); + u3z(msg); + return c3y; +} + +/* _http_ws_message_cb(): websocket receive / close callback. +*/ +static void +_http_ws_message_cb(h2o_websocket_conn_t *conn, + const struct wslay_event_on_msg_recv_arg *arg) +{ + u3_hws* web_u = (u3_hws*)conn->data; + + if ( 0 == web_u ) { + return; + } + + if ( NULL == arg ) { + if ( u3_hws_closed != web_u->sat_e ) { + web_u->sat_e = u3_hws_closed; + _http_ws_plan_event(web_u, u3nc(u3i_string("disconnect"), u3_nul)); + } + + _http_ws_unlink(web_u); + c3_free(web_u); + return; + } + + u3_noun payload; + if ( 0 == arg->msg_length ) { + payload = u3_nul; + } + else { + u3_noun octs = u3nc(u3i_chub((c3_d)arg->msg_length), + u3i_bytes(arg->msg_length, (const c3_y*)arg->msg)); + // the unit + payload = u3nc(u3_nul, octs); + } + + u3_noun event = u3nc(u3i_string("message"), + u3nc(u3i_chub((c3_d)arg->opcode), payload)); + + _http_ws_plan_event(web_u, event); +} + +/* _http_cache_respond(): respond with a simple-payload:http +*/ +static void +_http_cache_respond(u3_hreq* req_u, u3_noun nun) +{ + h2o_req_t* rec_u = req_u->rec_u; + u3_httd* htd_u = req_u->hon_u->htp_u->htd_u; + + if ( u3_nul == nun ) { + u3_weak req = _http_rec_to_httq(rec_u); + if ( u3_none == req ) { + if ( (u3C.wag_w & u3o_verbose) ) { + u3l_log("strange %.*s request", (c3_i)rec_u->method.len, + rec_u->method.base); + } + c3_c* msg_c = "bad request"; + h2o_send_error_generic(rec_u, 400, msg_c, msg_c, 0); + } + else { + u3_hreq* req_u = _http_req_prepare(rec_u, _http_req_new); + _http_req_dispatch(req_u, req); + } + } + else if ( u3_none == u3r_at(7, nun) ) { + h2o_send_error_500(rec_u, "Internal Server Error", "scry failed", 0); + } + else { + u3_noun auth, response_header, data; + u3x_qual(u3t(u3t(nun)), &auth, 0, &response_header, &data); + u3_noun status, headers; + u3x_cell(response_header, &status, &headers); + + // check auth + if ( (c3y == auth) + && (c3n == _http_req_is_auth(&htd_u->fig_u, rec_u)) ) + { + h2o_send_error_403(rec_u, "Unauthorized", "unauthorized", 0); + } + else { + req_u->sat_e = u3_rsat_plan; + _http_start_respond(req_u, u3k(status), u3k(headers), u3k(data), c3y); + } + } + u3z(nun); +} + +/* _http_scry_respond(): respond with a simple-payload:http +*/ +static void +_http_scry_respond(u3_hreq* req_u, u3_noun nun) +{ + h2o_req_t* rec_u = req_u->rec_u; + u3_httd* htd_u = req_u->hon_u->htp_u->htd_u; + + if ( u3_nul == nun ) { + u3_weak req = _http_rec_to_httq(rec_u); + if ( u3_none == req ) { + if ( (u3C.wag_w & u3o_verbose) ) { + u3l_log("strange %.*s request", (c3_i)rec_u->method.len, + rec_u->method.base); + } + c3_c* msg_c = "bad request"; + h2o_send_error_generic(rec_u, 400, msg_c, msg_c, 0); + } + else { + h2o_send_error_500(rec_u, "Internal Server Error", "scry failed", 0); + } + } + else if ( u3_none == u3r_at(7, nun) ) { + h2o_send_error_500(rec_u, "Internal Server Error", "scry failed", 0); + } + else { + u3_noun auth, response_header, data; + u3x_qual(u3t(u3t(nun)), &auth, 0, &response_header, &data); + u3_noun status, headers; + u3x_cell(response_header, &status, &headers); + + // check auth + if ( (c3y == auth) + && (c3n == _http_req_is_auth(&htd_u->fig_u, rec_u)) ) + { + h2o_send_error_403(rec_u, "Unauthorized", "unauthorized", 0); + } + else { + req_u->sat_e = u3_rsat_plan; + _http_start_respond(req_u, u3k(status), u3k(headers), u3k(data), c3y); + } + } + u3z(nun); +} + +/* _http_cache_scry_cb(): insert scry result into noun cache +*/ +static void +_http_cache_scry_cb(void* vod_p, u3_noun nun) +{ + u3_preq* peq_u = vod_p; + u3_httd* htd_u = peq_u->htd_u; + u3_hreq* req_u = peq_u->req_u; + + if ( req_u ) { + u3_assert(u3_rsat_peek == req_u->sat_e); + req_u->peq_u = 0; + _http_cache_respond(req_u, u3k(nun)); + } + + u3h_put(htd_u->nax_p, peq_u->pax, nun); + u3z(peq_u->pax); + c3_free(peq_u); +} + +/* _http_req_cache(): attempt to serve http request from cache +*/ +static c3_o +_http_req_cache(u3_hreq* req_u) +{ + u3_assert(u3_rsat_init == req_u->sat_e); + + h2o_iovec_t method = req_u->rec_u->method; + if (0 != strncmp("GET", method.base, method.len)) { + return c3n; + } + + u3_httd* htd_u = req_u->hon_u->htp_u->htd_u; + + u3_noun url = u3dc("scot", 't', _http_vec_to_atom(req_u->rec_u->path)); + u3_weak sac = u3h_get(htd_u->sax_p, url); + u3z(url); + + if ( u3_none == sac ) { + return c3n; + } + + u3_weak nac = u3h_get(htd_u->nax_p, sac); + if ( u3_none == nac ) { + // noun not in cache; scry it + req_u->peq_u = c3_malloc(sizeof(*req_u->peq_u)); + req_u->peq_u->req_u = req_u; + req_u->peq_u->htd_u = htd_u; + req_u->peq_u->pax = u3k(sac); + + req_u->sat_e = u3_rsat_peek; + + u3_noun gang = u3nc(u3_nul, u3_nul); + u3_pier_peek_last(htd_u->car_u.pir_u, gang, c3__ex, + u3_nul, sac, req_u->peq_u, _http_cache_scry_cb); + return c3y; + } + u3z(sac); + _http_cache_respond(req_u, nac); + return c3y; +} + +/* _http_hgen_dispose(): dispose response generator and buffers +*/ +static void +_http_hgen_dispose(void* ptr_v) +{ + u3_hgen* gen_u = (u3_hgen*)ptr_v; + _http_heds_free(gen_u->hed_u); + gen_u->hed_u = 0; + _cttp_bods_free(gen_u->nud_u); + gen_u->nud_u = 0; + _cttp_bods_free(gen_u->bod_u); + gen_u->bod_u = 0; +} + +/* _http_hgen_send(): send (some/more of a) response. +*/ +static void +_http_hgen_send(u3_hgen* gen_u) +{ + u3_hreq* req_u = gen_u->req_u; + h2o_req_t* rec_u = req_u->rec_u; + c3_w len_w; + h2o_iovec_t* vec_u = _cttp_bods_to_vec(gen_u->bod_u, &len_w); + + // not ready again until _proceed + // + u3_assert( c3y == gen_u->red ); + gen_u->red = c3n; + + // stash [bod_u] to free later + // + _cttp_bods_free(gen_u->nud_u); + gen_u->nud_u = gen_u->bod_u; + gen_u->bod_u = 0; + + switch ( gen_u->sat_e ) { + case u3_hgen_wait: { + h2o_send(rec_u, vec_u, len_w, H2O_SEND_STATE_IN_PROGRESS); + uv_timer_start(req_u->tim_u, _http_req_timer_cb, 45 * 1000, 0); + } break; + + case u3_hgen_done: { + // close connection if shutdown pending + // + u3_h2o_serv* h2o_u = req_u->hon_u->htp_u->h2o_u; + + if ( 0 != h2o_u->ctx_u.shutdown_requested ) { + rec_u->http1_is_persistent = 0; + } + + h2o_send(rec_u, vec_u, len_w, H2O_SEND_STATE_FINAL); + } break; + + case u3_hgen_fail: { + h2o_send(rec_u, vec_u, len_w, H2O_SEND_STATE_ERROR); + } break; + } + + c3_free(vec_u); +} + +/* _http_hgen_stop(): h2o is closing an in-progress response. +*/ +static void +_http_hgen_stop(h2o_generator_t* neg_u, h2o_req_t* rec_u) +{ + u3_hgen* gen_u = (u3_hgen*)neg_u; + + // response not complete, enqueue cancel + // + if ( u3_hgen_wait == gen_u->sat_e ) { + _http_req_kill(gen_u->req_u); + } +} + +/* _http_hgen_proceed(): h2o is ready for more response data. +*/ +static void +_http_hgen_proceed(h2o_generator_t* neg_u, h2o_req_t* rec_u) +{ + u3_hgen* gen_u = (u3_hgen*)neg_u; + u3_hreq* req_u = gen_u->req_u; + + // sanity check + u3_assert( rec_u == req_u->rec_u ); + + gen_u->red = c3y; + + if ( gen_u->bod_u || (u3_hgen_wait != gen_u->sat_e) ) { + _http_hgen_send(gen_u); + } +} + +/* _http_start_respond(): write a [%http-response %start ...] to h2o_req_t->res +*/ +static void +_http_start_respond(u3_hreq* req_u, + u3_noun status, + u3_noun headers, + u3_noun data, + u3_noun complete) +{ + if ( u3_rsat_plan != req_u->sat_e ) { + u3l_log("http: %%start not sane"); + u3z(status); u3z(headers); u3z(data); u3z(complete); + return; + } + + req_u->sat_e = u3_rsat_ripe; + + uv_timer_stop(req_u->tim_u); + + h2o_req_t* rec_u = req_u->rec_u; + + rec_u->res.status = status; + rec_u->res.reason = (status < 200) ? "weird" : + (status < 300) ? "ok" : + (status < 400) ? "moved" : + (status < 500) ? "missing" : + "hosed"; + + u3_hhed* hed_u = _http_heds_from_noun(u3k(headers)); + u3_hhed* deh_u = hed_u; + + c3_i has_len_i = 0; + + while ( 0 != hed_u ) { + if ( 0x200 <= rec_u->version ) { + h2o_strtolower(hed_u->nam_c, hed_u->nam_w); + + if ( 0 == strncmp(hed_u->nam_c, "connection", 10) ) { + hed_u = hed_u->nex_u; + continue; + } + } + if ( 0 == strncmp(hed_u->nam_c, "content-length", 14) ) { + has_len_i = 1; + } + else { + h2o_add_header_by_str(&rec_u->pool, &rec_u->res.headers, + hed_u->nam_c, hed_u->nam_w, 0, 0, + hed_u->val_c, hed_u->val_w); + } + + hed_u = hed_u->nex_u; + } + + u3_hgen* gen_u = h2o_mem_alloc_shared(&rec_u->pool, sizeof(*gen_u), + _http_hgen_dispose); + gen_u->neg_u = (h2o_generator_t){ _http_hgen_proceed, _http_hgen_stop }; + gen_u->red = c3y; + gen_u->sat_e = ( c3y == complete ) ? u3_hgen_done : u3_hgen_wait; + gen_u->bod_u = ( u3_nul == data ) ? + 0 : _cttp_bod_from_octs(u3k(u3t(data))); + gen_u->nud_u = 0; + gen_u->hed_u = deh_u; + gen_u->req_u = req_u; + + // if we don't explicitly set this field, h2o will send with + // transfer-encoding: chunked + // + if ( 1 == has_len_i ) { + rec_u->res.content_length = ( 0 == gen_u->bod_u ) ? + 0 : gen_u->bod_u->len_w; + } + + req_u->gen_u = gen_u; + + h2o_start_response(rec_u, &gen_u->neg_u); + + _http_hgen_send(gen_u); + + u3z(status); u3z(headers); u3z(data); u3z(complete); +} + +/* _http_continue_respond(): apply [%http-response %continue ...]. +*/ +static void +_http_continue_respond(u3_hreq* req_u, + u3_noun data, + u3_noun complete) +{ + if ( u3_rsat_ripe != req_u->sat_e ) { + u3l_log("http: %%continue before %%start"); + u3z(data); u3z(complete); + return; + } + + u3_hgen* gen_u = req_u->gen_u; + + uv_timer_stop(req_u->tim_u); + + gen_u->sat_e = ( c3y == complete ) ? u3_hgen_done : u3_hgen_wait; + + if ( u3_nul != data ) { + u3_hbod* bod_u = _cttp_bod_from_octs(u3k(u3t(data))); + + if ( 0 == gen_u->bod_u ) { + gen_u->bod_u = bod_u; + } + else { + u3_hbod* pre_u = gen_u->bod_u; + + while ( 0 != pre_u->nex_u ) { + pre_u = pre_u->nex_u; + } + + pre_u->nex_u = bod_u; + } + } + + if ( c3y == gen_u->red ) { + _http_hgen_send(gen_u); + } + + u3z(data); u3z(complete); +} + +/* _http_cancel_respond(): apply [%http-response %cancel ~]. +*/ +static void +_http_cancel_respond(u3_hreq* req_u) +{ + switch ( req_u->sat_e ) { + case u3_rsat_init: u3_assert(0); + case u3_rsat_peek: u3_assert(0); + + case u3_rsat_plan: { + req_u->sat_e = u3_rsat_ripe; // XX confirm + + c3_c* msg_c = "hosed"; + h2o_send_error_generic(req_u->rec_u, 500, msg_c, msg_c, 0); + + if ( 0 != req_u->wsu_u ) { + _http_ws_detach_request(req_u); + } + } break; + + case u3_rsat_ripe: { + u3_hgen* gen_u = req_u->gen_u; + + uv_timer_stop(req_u->tim_u); + gen_u->sat_e = u3_hgen_fail; + + if ( c3y == gen_u->red ) { + _http_hgen_send(gen_u); + } + } + } +} + +/* _http_rec_to_httq(): convert h2o_req_t to httq +*/ +static u3_weak +_http_rec_to_httq(h2o_req_t* rec_u) +{ + u3_noun med = _http_vec_to_meth(rec_u->method); + + if ( u3_none == med ) { + return u3_none; + } + + u3_noun url = _http_vec_to_atom(rec_u->path); + u3_noun hed = _http_heds_to_noun(rec_u->headers.entries, + rec_u->headers.size); + + // restore host header + hed = u3nc(u3nc(u3i_string("host"), + _http_vec_to_atom(rec_u->authority)), + hed); + + u3_noun bod = _http_vec_to_octs(rec_u->entity); + + return u3nq(med, url, hed, bod); +} + +typedef struct _h2o_uv_sock { // see private st_h2o_uv_socket_t + h2o_socket_t sok_u; // socket + uv_stream_t* han_u; // client stream handler (u3_hcon) +} h2o_uv_sock; + +/* _http_rec_sock(): u3 http connection from h2o request; hacky. +*/ +static u3_hcon* +_http_rec_sock(h2o_req_t* rec_u) +{ + h2o_uv_sock* suv_u = (h2o_uv_sock*)rec_u->conn-> + callbacks->get_socket(rec_u->conn); + u3_hcon* hon_u = (u3_hcon*)suv_u->han_u; + + // sanity check + // + u3_assert( hon_u->sok_u == &suv_u->sok_u ); + + return hon_u; +} + +/* _http_req_prepare(): creates u3 req from h2o req and initializes its timer +*/ +static u3_hreq* +_http_req_prepare(h2o_req_t* rec_u, + u3_hreq* (*new_f)(u3_hcon*, h2o_req_t*)) +{ + u3_hcon* hon_u = _http_rec_sock(rec_u); + u3_hreq* seq_u = new_f(hon_u, rec_u); + + seq_u->tim_u = c3_malloc(sizeof(*seq_u->tim_u)); + seq_u->tim_u->data = seq_u; + uv_timer_init(u3L, seq_u->tim_u); + uv_timer_start(seq_u->tim_u, _http_req_timer_cb, 600 * 1000, 0); + + return seq_u; +} + +/* _http_seq_accept(): handle incoming http request on slogstream endpoint +*/ +static c3_i +_http_seq_accept(h2o_handler_t* han_u, h2o_req_t* rec_u) +{ + u3_hcon* hon_u = _http_rec_sock(rec_u); + c3_o aut_o = _http_req_is_auth(&hon_u->htp_u->htd_u->fig_u, rec_u); + + // if the request is not authenticated, reject it + // + if ( c3n == aut_o ) { + u3_hreq* req_u = _http_req_prepare(rec_u, _http_req_new); + req_u->sat_e = u3_rsat_plan; + _http_start_respond(req_u, 403, u3_nul, u3_nul, c3y); + } + // if it is authenticated, send slogstream/sse headers + // + else { + u3_hreq* req_u = _http_req_prepare(rec_u, _http_seq_new); + u3_noun hed = u3nl(u3nc(u3i_string("Content-Type"), + u3i_string("text/event-stream")), + u3nc(u3i_string("Cache-Control"), + u3i_string("no-cache")), + u3nc(u3i_string("Connection"), + u3i_string("keep-alive")), + u3_none); + + _http_start_respond(req_u, 200, hed, u3_nul, c3n); + + //TODO auth token may expire at some point. if we want to close the + // slogstream when that happens, we need to store the token that + // was used alongside it... + } + + return 0; +} + +/* _http_sat_accept(): handle incoming http request on status endpoint +*/ +static c3_i +_http_sat_accept(h2o_handler_t* han_u, h2o_req_t* rec_u) +{ + c3_o bus_o; + { + u3_hcon* hon_u = _http_rec_sock(rec_u); + u3_httd* htd_u = hon_u->htp_u->htd_u; + u3_pier* pir_u = htd_u->car_u.pir_u; + bus_o = pir_u->god_u->pin_o; + } + + if ( c3y == bus_o ) { + rec_u->res.status = 429; + rec_u->res.reason = "busy"; + } + else { + rec_u->res.status = 204; + rec_u->res.reason = "no content"; + } + + rec_u->res.content_length = 0; + h2o_send_inline(rec_u, NULL, 0); + + return 0; +} + +/* _http_rec_accept(); handle incoming http request from h2o. +*/ +static c3_i +_http_rec_accept(h2o_handler_t* han_u, h2o_req_t* rec_u) +{ + u3_weak req = _http_rec_to_httq(rec_u); + + if ( u3_none == req ) { + if ( (u3C.wag_w & u3o_verbose) ) { + u3l_log("strange %.*s request", (c3_i)rec_u->method.len, + rec_u->method.base); + } + c3_c* msg_c = "bad request"; + h2o_send_error_generic(rec_u, 400, msg_c, msg_c, 0); + } + else { + u3_hreq* req_u = _http_req_prepare(rec_u, _http_req_new); + const c3_c* client_key = 0; + c3_i ws_rc = h2o_is_websocket_handshake(rec_u, &client_key); + + if ( (0 == ws_rc) && (0 != client_key) ) { + _http_ws_handshake(req_u, req, client_key); + } + else { + if ( ws_rc < 0 ) { + if ( 0 != req_u->tim_u ) { + uv_timer_stop(req_u->tim_u); + } + req_u->sat_e = u3_rsat_ripe; + u3l_log("http: invalid websocket handshake"); + c3_c* msg_c = "bad websocket handshake"; + h2o_send_error_generic(rec_u, 400, msg_c, msg_c, 0); + u3z(req); + } + else if ( c3n == _http_req_cache(req_u) ) { + _http_req_dispatch(req_u, req); + } + else { + u3z(req); + } + } + } + + return 0; +} + +/* _http_conn_find(): find http connection in server by sequence. +*/ +static u3_hcon* +_http_conn_find(u3_http *htp_u, c3_w coq_l) +{ + u3_hcon* hon_u = htp_u->hon_u; + + // XX glories of linear search + // + while ( hon_u ) { + if ( coq_l == hon_u->coq_l ) { + return hon_u; + } + hon_u = hon_u->nex_u; + } + return 0; +} + +/* _http_conn_link(): link http request to connection +*/ +static void +_http_conn_link(u3_http* htp_u, u3_hcon* hon_u) +{ + hon_u->htp_u = htp_u; + hon_u->coq_l = htp_u->coq_l++; + hon_u->nex_u = htp_u->hon_u; + + if ( 0 != hon_u->nex_u ) { + hon_u->nex_u->pre_u = hon_u; + } + htp_u->hon_u = hon_u; +} + +/* _http_conn_unlink(): remove http request from connection +*/ +static void +_http_conn_unlink(u3_hcon* hon_u) +{ + if ( 0 != hon_u->pre_u ) { + hon_u->pre_u->nex_u = hon_u->nex_u; + + if ( 0 != hon_u->nex_u ) { + hon_u->nex_u->pre_u = hon_u->pre_u; + } + } + else { + hon_u->htp_u->hon_u = hon_u->nex_u; + + if ( 0 != hon_u->nex_u ) { + hon_u->nex_u->pre_u = 0; + } + } +} + +/* _http_conn_free(): free http connection on close. +*/ +static void +_http_conn_free(uv_handle_t* han_t) +{ + u3_hcon* hon_u = (u3_hcon*)han_t; + u3_http* htp_u = hon_u->htp_u; + u3_h2o_serv* h2o_u = htp_u->h2o_u; + + u3_assert( 0 == hon_u->req_u ); + +#if 0 + { + c3_w len_w = 0; + + u3_hcon* noh_u = htp_u->hon_u; + + while ( 0 != noh_u ) { + len_w++; + noh_u = noh_u->nex_u; + } + + u3l_log("http conn free %d of %u server %d", hon_u->coq_l, len_w, htp_u->sev_l); + } +#endif + + _http_conn_unlink(hon_u); + +#if 0 + { + c3_w len_w = 0; + + u3_hcon* noh_u = htp_u->hon_u; + + while ( 0 != noh_u ) { + len_w++; + noh_u = noh_u->nex_u; + } + + u3l_log("http conn free %u remaining", len_w); + } +#endif + + if ( (0 == htp_u->hon_u) && (0 != h2o_u->ctx_u.shutdown_requested) ) { +#if 0 + u3l_log("http conn free %d free server %d", hon_u->coq_l, htp_u->sev_l); +#endif + _http_serv_free(htp_u); + } + + c3_free(hon_u); +} + +/* _http_conn_new(): create and accept http connection. +*/ +static u3_hcon* +_http_conn_new(u3_http* htp_u) +{ + u3_hcon* hon_u = c3_malloc(sizeof(*hon_u)); + hon_u->seq_l = 1; + hon_u->ipf_w = 0; + hon_u->req_u = 0; + hon_u->sok_u = 0; + hon_u->con_u = 0; + hon_u->pre_u = 0; + + _http_conn_link(htp_u, hon_u); + +#if 0 + u3l_log("http conn neww %d server %d", hon_u->coq_l, htp_u->sev_l); +#endif + + return hon_u; +} + +/* _http_serv_find(): find http server by sequence. +*/ +static u3_http* +_http_serv_find(u3_httd* htd_u, c3_l sev_l) +{ + u3_http* htp_u = htd_u->htp_u; + + // XX glories of linear search + // + while ( htp_u ) { + if ( sev_l == htp_u->sev_l ) { + return htp_u; + } + htp_u = htp_u->nex_u; + } + return 0; +} + +/* _http_serv_link(): link http server to global state. +*/ +static void +_http_serv_link(u3_httd* htd_u, u3_http* htp_u) +{ + // XX link elsewhere initially, relink on start? + + if ( 0 != htd_u->htp_u ) { + htp_u->sev_l = 1 + htd_u->htp_u->sev_l; + } + else { + htp_u->sev_l = htd_u->sev_l; + } + + htp_u->nex_u = htd_u->htp_u; + htp_u->htd_u = htd_u; + htd_u->htp_u = htp_u; +} + +/* _http_serv_unlink(): remove http server from global state. +*/ +static void +_http_serv_unlink(u3_http* htp_u) +{ + // XX link elsewhere initially, relink on start? +#if 0 + u3l_log("http serv unlink %d", htp_u->sev_l); +#endif + u3_http* pre_u = htp_u->htd_u->htp_u; + + if ( pre_u == htp_u ) { + pre_u = htp_u->nex_u; + } + else { + // XX glories of linear search + // + while ( pre_u ) { + if ( pre_u->nex_u == htp_u ) { + pre_u->nex_u = htp_u->nex_u; + } + else pre_u = pre_u->nex_u; + } + } +} + +/* _http_h2o_context_dispose(): h2o_context_dispose, inlined and cleaned up. +*/ +static void +_http_h2o_context_dispose(h2o_context_t* ctx) +{ + h2o_globalconf_t *config = ctx->globalconf; + size_t i, j; + + for (i = 0; config->hosts[i] != NULL; ++i) { + h2o_hostconf_t *hostconf = config->hosts[i]; + for (j = 0; j != hostconf->paths.size; ++j) { + h2o_pathconf_t *pathconf = hostconf->paths.entries + j; + h2o_context_dispose_pathconf_context(ctx, pathconf); + } + h2o_context_dispose_pathconf_context(ctx, &hostconf->fallback_path); + } + + c3_free(ctx->_pathconfs_inited.entries); + c3_free(ctx->_module_configs); + + h2o_timeout_dispose(ctx->loop, &ctx->zero_timeout); + h2o_timeout_dispose(ctx->loop, &ctx->hundred_ms_timeout); + h2o_timeout_dispose(ctx->loop, &ctx->handshake_timeout); + h2o_timeout_dispose(ctx->loop, &ctx->http1.req_timeout); + h2o_timeout_dispose(ctx->loop, &ctx->http2.idle_timeout); + + // NOTE: linked in http2/connection, never unlinked + h2o_timeout_unlink(&ctx->http2._graceful_shutdown_timeout); + + h2o_timeout_dispose(ctx->loop, &ctx->http2.graceful_shutdown_timeout); + h2o_timeout_dispose(ctx->loop, &ctx->proxy.io_timeout); + h2o_timeout_dispose(ctx->loop, &ctx->one_sec_timeout); + + h2o_filecache_destroy(ctx->filecache); + ctx->filecache = NULL; + + /* clear storage */ + for (i = 0; i != ctx->storage.size; ++i) { + h2o_context_storage_item_t *item = ctx->storage.entries + i; + if (item->dispose != NULL) { + item->dispose(item->data); + } + } + + c3_free(ctx->storage.entries); + + h2o_multithread_unregister_receiver(ctx->queue, &ctx->receivers.hostinfo_getaddr); + h2o_multithread_destroy_queue(ctx->queue); + + if (ctx->_timestamp_cache.value != NULL) { + h2o_mem_release_shared(ctx->_timestamp_cache.value); + } + + // NOTE: explicit uv_run removed +} + +/* _http_serv_really_free(): free http server. +*/ +static void +_http_serv_really_free(u3_http* htp_u) +{ + u3_assert( 0 == htp_u->hon_u ); + + if ( 0 != htp_u->h2o_u ) { + u3_h2o_serv* h2o_u = htp_u->h2o_u; + + if ( 0 != h2o_u->cep_u.ssl_ctx ) { + SSL_CTX_free(h2o_u->cep_u.ssl_ctx); + } + + h2o_config_dispose(&h2o_u->fig_u); + + // XX h2o_cleanup_thread if not restarting? + + c3_free(htp_u->h2o_u); + htp_u->h2o_u = 0; + } + + _http_serv_unlink(htp_u); + c3_free(htp_u); +} + +/* http_serv_free_cb(): timer callback for freeing http server. +*/ +static void +http_serv_free_cb(uv_timer_t* tim_u) +{ + u3_http* htp_u = tim_u->data; + +#if 0 + u3l_log("http serv free cb %d", htp_u->sev_l); +#endif + + _http_serv_really_free(htp_u); + + uv_close((uv_handle_t*)tim_u, _http_close_cb); +} + +/* _http_serv_free(): begin to free http server. +*/ +static void +_http_serv_free(u3_http* htp_u) +{ +#if 0 + u3l_log("http serv free %d", htp_u->sev_l); +#endif + + u3_assert( 0 == htp_u->hon_u ); + + if ( 0 == htp_u->h2o_u ) { + _http_serv_really_free(htp_u); + } + else { + u3_h2o_serv* h2o_u = htp_u->h2o_u; + + _http_h2o_context_dispose(&h2o_u->ctx_u); + + // NOTE: free deferred to allow timers to be closed + // this is a heavy-handed workaround for the lack of + // close callbacks in h2o_timer_t + // it's unpredictable how many event-loop turns will + // be required to finish closing the underlying uv_timer_t + // and we can't free until that's done (or we have UB) + // testing reveals 5s to be a long enough deferral + uv_timer_t* tim_u = c3_malloc(sizeof(*tim_u)); + + tim_u->data = htp_u; + + uv_timer_init(u3L, tim_u); + uv_timer_start(tim_u, http_serv_free_cb, 5000, 0); + } +} + +/* _http_serv_close_cb(): http server uv_close callback. +*/ +static void +_http_serv_close_cb(uv_handle_t* han_u) +{ + u3_http* htp_u = (u3_http*)han_u; + u3_httd* htd_u = htp_u->htd_u; + htp_u->liv = c3n; + + // otherwise freed by the last linked connection + if ( 0 == htp_u->hon_u ) { + _http_serv_free(htp_u); + } + + // restart if all linked servers have been shutdown + { + htp_u = htd_u->htp_u; + c3_o res = c3y; + + while ( 0 != htp_u ) { + if ( c3y == htp_u->liv ) { + res = c3n; + } + htp_u = htp_u->nex_u; + } + + if ( (c3y == res) && (0 != htd_u->fig_u.for_u) ) { + _http_serv_start_all(htd_u); + } + } +} + +/* _http_serv_close(): close http server gracefully. +*/ +static void +_http_serv_close(u3_http* htp_u) +{ + u3_h2o_serv* h2o_u = htp_u->h2o_u; + h2o_context_request_shutdown(&h2o_u->ctx_u); + +#if 0 + u3l_log("http serv close %d %p", htp_u->sev_l, &htp_u->wax_u); +#endif + + uv_close((uv_handle_t*)&htp_u->wax_u, _http_serv_close_cb); +} + +/* _http_serv_new(): create new http server. +*/ +static u3_http* +_http_serv_new(u3_httd* htd_u, c3_s por_s, c3_o dis, c3_o sec, c3_o lop) +{ + u3_http* htp_u = c3_malloc(sizeof(*htp_u)); + + htp_u->coq_l = 1; + htp_u->por_s = por_s; + htp_u->dis = dis; + htp_u->sec = sec; + htp_u->lop = lop; + htp_u->liv = c3y; + htp_u->h2o_u = 0; + htp_u->hon_u = 0; + htp_u->nex_u = 0; + + _http_serv_link(htd_u, htp_u); + + return htp_u; +} + +/* _http_serv_accept(): accept new http connection. +*/ +static void +_http_serv_accept(u3_http* htp_u) +{ + u3_hcon* hon_u = _http_conn_new(htp_u); + + uv_tcp_init(u3L, &hon_u->wax_u); + + c3_i sas_i; + + if ( 0 != (sas_i = uv_accept((uv_stream_t*)&htp_u->wax_u, + (uv_stream_t*)&hon_u->wax_u)) ) { + if ( (u3C.wag_w & u3o_verbose) ) { + u3l_log("http: accept: %s", uv_strerror(sas_i)); + } + + uv_close((uv_handle_t*)&hon_u->wax_u, _http_conn_free); + return; + } + + hon_u->sok_u = h2o_uv_socket_create((uv_stream_t*)&hon_u->wax_u, + _http_conn_free); + + h2o_accept(&((u3_h2o_serv*)htp_u->h2o_u)->cep_u, hon_u->sok_u); + + // capture h2o connection (XX fragile) + hon_u->con_u = (h2o_conn_t*)hon_u->sok_u->data; + + struct sockaddr_in adr_u; + h2o_socket_getpeername(hon_u->sok_u, (struct sockaddr*)&adr_u); + hon_u->ipf_w = ( adr_u.sin_family != AF_INET ) ? + 0 : ntohl(adr_u.sin_addr.s_addr); +} + +/* _http_serv_listen_cb(): uv_connection_cb for uv_listen +*/ +static void +_http_serv_listen_cb(uv_stream_t* str_u, c3_i sas_i) +{ + u3_http* htp_u = (u3_http*)str_u; + + if ( 0 != sas_i ) { + u3l_log("http: listen_cb: %s", uv_strerror(sas_i)); + } + else { + _http_serv_accept(htp_u); + } +} + +/* _http_serv_init_h2o(): initialize h2o ctx and handlers for server. +*/ +static u3_h2o_serv* +_http_serv_init_h2o(SSL_CTX* tls_u, c3_o log, c3_o red) +{ + u3_h2o_serv* h2o_u = c3_calloc(sizeof(*h2o_u)); + + h2o_config_init(&h2o_u->fig_u); + h2o_u->fig_u.server_name = h2o_iovec_init( + H2O_STRLIT("urbit/vere-" URBIT_VERSION)); + + // set maximum request size to 512 MiB + // + h2o_u->fig_u.max_request_entity_size = 512 * 1024 * 1024; + + // XX default pending vhost/custom-domain design + // XX revisit the effect of specifying the port + h2o_u->hos_u = h2o_config_register_host(&h2o_u->fig_u, + h2o_iovec_init(H2O_STRLIT("default")), + 65535); + + h2o_u->cep_u.ctx = (h2o_context_t*)&h2o_u->ctx_u; + h2o_u->cep_u.hosts = h2o_u->fig_u.hosts; + h2o_u->cep_u.ssl_ctx = tls_u; + + h2o_u->han_u = h2o_create_handler(&h2o_u->hos_u->fallback_path, + sizeof(*h2o_u->han_u)); + if ( c3y == red ) { + // XX h2o_redirect_register + h2o_u->han_u->on_req = _http_rec_accept; + } + else { + h2o_u->han_u->on_req = _http_rec_accept; + } + + // register runtime endpoints + // + { + h2o_pathconf_t* pac_u; + h2o_handler_t* han_u; + + // slog stream + // + pac_u = h2o_config_register_path(h2o_u->hos_u, "/~_~/slog", 0); + han_u = h2o_create_handler(pac_u, sizeof(*han_u)); + han_u->on_req = _http_seq_accept; + + // status (per spinner) + // + pac_u = h2o_config_register_path(h2o_u->hos_u, "/~_~/healthz", 0); + han_u = h2o_create_handler(pac_u, sizeof(*han_u)); + han_u->on_req = _http_sat_accept; + } + + if ( c3y == log ) { + // XX move this to post serv_start and put the port in the name +#if 0 + c3_c* pax_c = u3_Host.dir_c; + u3_noun now = u3dc("scot", c3__da, u3k(u3A->now)); + c3_c* now_c = u3r_string(now); + c3_c* nam_c = ".access.log"; + c3_w len_w = 1 + strlen(pax_c) + 1 + strlen(now_c) + strlen(nam_c); + + c3_c* paf_c = c3_malloc(len_w); + snprintf(paf_c, len_w, "%s/%s%s", pax_c, now_c, nam_c); + + h2o_access_log_filehandle_t* fil_u = + h2o_access_log_open_handle(paf_c, 0, H2O_LOGCONF_ESCAPE_APACHE); + + h2o_access_log_register(&h2o_u->hos_u->fallback_path, fil_u); + + c3_free(paf_c); + c3_free(now_c); + u3z(now); +#endif + } + + // XX h2o_compress_register + + h2o_context_init(&h2o_u->ctx_u, u3L, &h2o_u->fig_u); + + return h2o_u; +} + +/* _http_serv_start(): start http server. +*/ +static void +_http_serv_start(u3_http* htp_u) +{ + u3_pier* pir_u = htp_u->htd_u->car_u.pir_u; + struct sockaddr_in adr_u; + + memset(&adr_u, 0, sizeof(adr_u)); + adr_u.sin_family = AF_INET; + adr_u.sin_addr.s_addr = ( c3y == htp_u->lop ) ? + htonl(INADDR_LOOPBACK) : + INADDR_ANY; + + if ( 0 != u3_Host.ops_u.bin_c && c3n == htp_u->lop ) { + inet_pton(AF_INET, u3_Host.ops_u.bin_c, &adr_u.sin_addr); + } + + uv_tcp_init(u3L, &htp_u->wax_u); + + /* Try ascending ports. + */ + while ( 1 ) { + c3_i sas_i; + + adr_u.sin_port = htons(htp_u->por_s); + + if ( 0 != (sas_i = uv_tcp_bind(&htp_u->wax_u, + (const struct sockaddr*)&adr_u, 0)) || + 0 != (sas_i = uv_listen((uv_stream_t*)&htp_u->wax_u, + TCP_BACKLOG, _http_serv_listen_cb)) ) { + if ( UV_EADDRNOTAVAIL == sas_i ) { + u3l_log("http: ip address not available"); + u3_king_bail(); + } + if ( c3y == htp_u->dis ) { + u3l_log("http: listen (%" PRIu16 "): %s", htp_u->por_s, + uv_strerror(sas_i)); + u3_king_bail(); + } + if ( (UV_EADDRINUSE == sas_i) || (UV_EACCES == sas_i) ) { + if ( (c3y == htp_u->sec) && (443 == htp_u->por_s) ) { + htp_u->por_s = 8443; + } + else if ( (c3n == htp_u->sec) && (80 == htp_u->por_s) ) { + htp_u->por_s = 8080; + } + else { + htp_u->por_s++; + // XX + // + if ( c3n == htp_u->lop ) { + if ( c3y == htp_u->sec ) { + pir_u->pes_s = htp_u->por_s; + } + else { + pir_u->per_s = htp_u->por_s; + } + } + } + + continue; + } + + u3l_log("http: listen: %s", uv_strerror(sas_i)); + + _http_serv_free(htp_u); + return; + } + + u3l_log("http: %s live on %s://localhost:%d", + (c3y == htp_u->lop) ? "loopback" : "web interface", + (c3y == htp_u->sec) ? "https" : "http", + htp_u->por_s); + + break; + } +} + +static uv_buf_t +_http_wain_to_buf(u3_noun wan) +{ + c3_w len_w = u3_mcut_path(0, 0, (c3_c)10, u3k(wan)); + c3_c* buf_c = c3_malloc(1 + len_w); + + u3_mcut_path(buf_c, 0, (c3_c)10, wan); + buf_c[len_w] = 0; + + return uv_buf_init(buf_c, len_w); +} + +/* _http_init_tls: initialize OpenSSL context +*/ +static SSL_CTX* +_http_init_tls(uv_buf_t key_u, uv_buf_t cer_u) +{ + // XX require 1.1.0 and use TLS_server_method() + SSL_CTX* tls_u = SSL_CTX_new(SSLv23_server_method()); + // XX use SSL_CTX_set_max_proto_version() and SSL_CTX_set_min_proto_version() + SSL_CTX_set_options(tls_u, SSL_OP_NO_SSLv2 | + SSL_OP_NO_SSLv3 | + // SSL_OP_NO_TLSv1 | // XX test + SSL_OP_NO_COMPRESSION); + + SSL_CTX_set_default_verify_paths(tls_u); + SSL_CTX_set_session_cache_mode(tls_u, SSL_SESS_CACHE_OFF); + SSL_CTX_set_cipher_list(tls_u, + "ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:" + "ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:" + "RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS"); + + // enable ALPN for HTTP 2 support +#if H2O_USE_ALPN + { + SSL_CTX_set_ecdh_auto(tls_u, 1); + h2o_ssl_register_alpn_protocols(tls_u, h2o_http2_alpn_protocols); + } +#endif + + { + BIO* bio_u = BIO_new_mem_buf(key_u.base, key_u.len); + EVP_PKEY* pky_u = PEM_read_bio_PrivateKey(bio_u, 0, 0, 0); + c3_i sas_i = SSL_CTX_use_PrivateKey(tls_u, pky_u); + + EVP_PKEY_free(pky_u); + BIO_free(bio_u); + + if( 0 == sas_i ) { + u3l_log("http: load private key failed:"); + FILE* fil_u = u3_term_io_hija(); + ERR_print_errors_fp(fil_u); + u3_term_io_loja(1, fil_u); + + SSL_CTX_free(tls_u); + + return 0; + } + } + + { + BIO* bio_u = BIO_new_mem_buf(cer_u.base, cer_u.len); + X509* xer_u = PEM_read_bio_X509_AUX(bio_u, 0, 0, 0); + c3_i sas_i = SSL_CTX_use_certificate(tls_u, xer_u); + + X509_free(xer_u); + + if( 0 == sas_i ) { + u3l_log("http: load certificate failed:"); + FILE* fil_u = u3_term_io_hija(); + ERR_print_errors_fp(fil_u); + u3_term_io_loja(1,fil_u); + + BIO_free(bio_u); + SSL_CTX_free(tls_u); + + return 0; + } + + // get any additional CA certs, ignoring errors + while ( 0 != (xer_u = PEM_read_bio_X509(bio_u, 0, 0, 0)) ) { + // XX require 1.0.2 or newer and use SSL_CTX_add0_chain_cert + SSL_CTX_add_extra_chain_cert(tls_u, xer_u); + } + + BIO_free(bio_u); + } + + return tls_u; +} + +/* _http_write_ports_file(): update .http.ports +*/ +static void +_http_write_ports_file(u3_httd* htd_u, c3_c *pax_c) +{ + c3_c* nam_c = ".http.ports"; + c3_w len_w = 1 + strlen(pax_c) + 1 + strlen(nam_c); + + c3_c* paf_c = c3_malloc(len_w); + snprintf(paf_c, len_w, "%s/%s", pax_c, nam_c); + + c3_i por_i = c3_open(paf_c, O_WRONLY | O_CREAT | O_TRUNC, 0666); + c3_free(paf_c); + + u3_http* htp_u = htd_u->htp_u; + u3_pier* pir_u = htd_u->car_u.pir_u; + + c3_c temp[32]; + while ( 0 != htp_u ) { + if ( 0 < htp_u->por_s ) { + u3_write_fd(por_i, temp, snprintf(temp, 32, "%u %s %s\n", htp_u->por_s, + (c3y == htp_u->sec) ? "secure" : "insecure", + (c3y == htp_u->lop) ? "loopback" : "public")); + } + + htp_u = htp_u->nex_u; + } + + c3_sync(por_i); + close(por_i); +} + +/* _http_release_ports_file(): remove .http.ports +*/ +static void +_http_release_ports_file(c3_c *pax_c) +{ + c3_c* nam_c = ".http.ports"; + c3_w len_w = 1 + strlen(pax_c) + 1 + strlen(nam_c); + c3_c* paf_c = c3_malloc(len_w); + c3_i wit_i; + + wit_i = snprintf(paf_c, len_w, "%s/%s", pax_c, nam_c); + u3_assert(wit_i > 0); + u3_assert(len_w == (c3_w)wit_i + 1); + + c3_unlink(paf_c); + c3_free(paf_c); +} + +static u3_hreq* +_http_search_req(u3_httd* htd_u, + c3_l sev_l, + c3_l coq_l, + c3_l seq_l) +{ + u3_http* htp_u; + u3_hcon* hon_u; + u3_hreq* req_u; + c3_w bug_w = u3C.wag_w & u3o_verbose; + + if ( !(htp_u = _http_serv_find(htd_u, sev_l)) ) { + if ( bug_w ) { + u3l_log("http: server not found: %x", sev_l); + } + return 0; + } + else if ( !(hon_u = _http_conn_find(htp_u, coq_l)) ) { + if ( bug_w ) { + u3l_log("http: connection not found: %x/%d", sev_l, coq_l); + } + return 0; + } + else if ( !(req_u = _http_req_find(hon_u, seq_l)) ) { + if ( bug_w ) { + u3l_log("http: request not found: %x/%d/%d", + sev_l, coq_l, seq_l); + } + return 0; + } + + return req_u; +} + +/* _http_serv_start_all(): initialize and start servers based on saved config. +*/ +static void +_http_serv_start_all(u3_httd* htd_u) +{ + u3_http* htp_u; + u3_pier* pir_u = htd_u->car_u.pir_u; + c3_s por_s; + u3_noun sec = u3_nul; + u3_noun non = u3_none; + u3_noun dis; + u3_form* for_u = htd_u->fig_u.for_u; + + u3_assert( 0 != for_u ); + + // if the SSL_CTX existed, it'll be freed with the servers + htd_u->tls_u = 0; + + // HTTPS server. + if ( (0 != for_u->key_u.base) && (0 != for_u->cer_u.base) ) { + htd_u->tls_u = _http_init_tls(for_u->key_u, for_u->cer_u); + + // Note: if tls_u is used for additional servers, + // its reference count must be incremented with SSL_CTX_up_ref + + if ( 0 != htd_u->tls_u ) { + if ( 0 == pir_u->pes_s ) { + por_s = ( c3y == for_u->pro ) ? 8443 : 443; + dis = c3n; + } + else { + por_s = pir_u->pes_s; + dis = c3y; + } + htp_u = _http_serv_new(htd_u, por_s, dis, c3y, c3n); + htp_u->h2o_u = _http_serv_init_h2o(htd_u->tls_u, for_u->log, for_u->red); + + _http_serv_start(htp_u); + sec = u3nc(u3_nul, htp_u->por_s); + } + } + + // HTTP server. + { + if ( 0 == pir_u->per_s ) { + por_s = ( c3y == for_u->pro ) ? 8080 : 80; + dis = c3n; + } + else { + por_s = pir_u->per_s; + dis = c3y; + } + htp_u = _http_serv_new(htd_u, por_s, dis, c3n, c3n); + htp_u->h2o_u = _http_serv_init_h2o(0, for_u->log, for_u->red); + + _http_serv_start(htp_u); + non = htp_u->por_s; + } + + // Loopback server. + { + por_s = 12321; + htp_u = _http_serv_new(htd_u, por_s, c3n, c3n, c3y); + htp_u->h2o_u = _http_serv_init_h2o(0, for_u->log, for_u->red); + + _http_serv_start(htp_u); + } + + // send listening ports to %eyre + { + u3_assert( u3_none != non ); + + // XX remove [sen] + // + u3_noun wir = u3nt(u3i_string("http-server"), + u3dc("scot", c3__uv, htd_u->sev_l), + u3_nul); + u3_noun cad = u3nt(c3__live, non, sec); + + u3_auto_plan(&htd_u->car_u, u3_ovum_init(0, c3__e, wir, cad)); + } + + _http_write_ports_file(htd_u, u3_Host.dir_c); + _http_form_free(htd_u); +} + +/* _http_serv_restart(): gracefully shutdown, then start servers. +*/ +static void +_http_serv_restart(u3_httd* htd_u) +{ + u3_http* htp_u = htd_u->htp_u; + + if ( 0 == htp_u ) { + _http_serv_start_all(htd_u); + } + else { + u3l_log("http: restarting servers to apply configuration"); + + while ( 0 != htp_u ) { + if ( c3y == htp_u->liv ) { + _http_serv_close(htp_u); + } + htp_u = htp_u->nex_u; + } + + _http_release_ports_file(u3_Host.dir_c); + } +} + +/* _http_form_free(): free and unlink saved config. +*/ +static void +_http_form_free(u3_httd* htd_u) +{ + u3_form* for_u = htd_u->fig_u.for_u; + + if ( 0 == for_u ) { + return; + } + + _http_ws_close_all(htd_u); + + if ( 0 != for_u->key_u.base ) { + c3_free(for_u->key_u.base); + } + + if ( 0 != for_u->cer_u.base ) { + c3_free(for_u->cer_u.base); + } + + c3_free(for_u); + htd_u->fig_u.for_u = 0; +} + +/* _http_auth_free(): free stored auth token state +*/ +static void +_http_auth_free(u3_httd* htd_u) +{ + u3z(htd_u->fig_u.ses); + htd_u->fig_u.ses = u3_nul; + c3_free(htd_u->fig_u.key_c); +} + +/* u3_http_ef_form(): apply configuration, restart servers. +*/ +void +u3_http_ef_form(u3_httd* htd_u, u3_noun fig) +{ + u3_noun sec, pro, log, red; + + if ( (c3n == u3r_qual(fig, &sec, &pro, &log, &red) ) || + // confirm sec is a valid (unit ^) + !( u3_nul == sec || ( c3y == u3du(sec) && + c3y == u3du(u3t(sec)) && + u3_nul == u3h(sec) ) ) || + // confirm valid flags ("loobeans") + !( c3y == pro || c3n == pro ) || + !( c3y == log || c3n == log ) || + !( c3y == red || c3n == red ) ) { + u3l_log("http: form: invalid card"); + u3z(fig); + return; + } + + u3_form* for_u = c3_malloc(sizeof(*for_u)); + for_u->pro = (c3_o)pro; + for_u->log = (c3_o)log; + for_u->red = (c3_o)red; + + if ( u3_nul != sec ) { + u3_noun key = u3h(u3t(sec)); + u3_noun cer = u3t(u3t(sec)); + + for_u->key_u = _http_wain_to_buf(u3k(key)); + for_u->cer_u = _http_wain_to_buf(u3k(cer)); + } + else { + for_u->key_u = uv_buf_init(0, 0); + for_u->cer_u = uv_buf_init(0, 0); + } + + u3z(fig); + _http_form_free(htd_u); + + htd_u->fig_u.for_u = for_u; + + _http_serv_restart(htd_u); + + htd_u->car_u.liv_o = c3y; +} + +/* u3_http_ef_form(): store set of auth tokens +*/ +void +u3_http_ef_auth(u3_httd* htd_u, u3_noun fig) +{ + u3z(htd_u->fig_u.ses); + htd_u->fig_u.ses = fig; +} + +/* _http_io_talk(): start http I/O. +*/ +static void +_http_io_talk(u3_auto* car_u) +{ + u3_httd* htd_u = (u3_httd*)car_u; + + // XX remove [sen] + // + u3_noun wir = u3nt(u3i_string("http-server"), + u3dc("scot", c3__uv, htd_u->sev_l), + u3_nul); + u3_noun cad = u3nc(c3__born, u3_nul); + + u3_auto_plan(car_u, u3_ovum_init(0, c3__e, wir, cad)); + + // XX set liv_o on done/swap? + // +} + +/* _http_ef_http_server(): dispatch an %http-server effect from %light. +*/ +void +_http_ef_http_server(u3_httd* htd_u, + c3_l sev_l, + c3_l coq_l, + c3_l seq_l, + u3_noun tag, + u3_noun dat) +{ + u3_hreq* req_u; + u3_hws* web_u; + + // sets server configuration + // + if ( c3y == u3r_sing_c("set-config", tag) ) { + u3_http_ef_form(htd_u, u3k(dat)); + } + else if ( c3y == u3r_sing_c("sessions", tag) ) { + u3_http_ef_auth(htd_u, u3k(dat)); + } + // handles a cache notification + // + else if ( c3y == u3r_sing_c("grow", tag) ) { + // cache paths are /cache/(scot %ud aeon)/(scot %t url) + u3_noun pax = u3k(dat); + u3_noun url = u3h(u3t(u3t(pax))); + u3h_put(htd_u->sax_p, url, pax); + } + // responds to an open request + // + else if ( c3y == u3r_sing_c("websocket-response", tag) ) { + u3_noun wid = u3k(u3h(dat)); + u3_noun res = u3k(u3t(dat)); + + c3_w wid_w; + if ( c3n == u3r_safe_word(wid, &wid_w) ) { + u3l_log("http: invalid websocket id"); + } + else if ( 0 == (web_u = _http_ws_find(htd_u, wid_w)) ) { + u3l_log("http: unknown websocket id %u", wid_w); + } + else { + u3_noun typ = u3h(res); + + if ( c3y == u3r_sing_c("accept", typ) ) { + _http_ws_accept(web_u); + } + else if ( c3y == u3r_sing_c("reject", typ) ) { + _http_ws_reject(web_u); + } + else if ( c3y == u3r_sing_c("disconnect", typ) ) { + _http_ws_disconnect(web_u); + } + else if ( c3y == u3r_sing_c("message", typ) ) { + _http_ws_send_message(web_u, u3k(u3t(res))); + } + else { + u3l_log("http: unexpected websocket response"); + } + } + + u3z(wid); + u3z(res); + } + else if ( 0 != (req_u = _http_search_req(htd_u, sev_l, coq_l, seq_l)) ) { + if ( c3y == u3r_sing_c("response", tag) ) { + u3_noun response = dat; + + if ( 0 != req_u->wsu_u && (u3C.wag_w & u3o_verbose) ) { + u3l_log("http: ws pending got http response sev=%u coq=%u seq=%u wid=%u", + (c3_w)sev_l, + (c3_w)coq_l, + (c3_w)seq_l, + req_u->wsu_u->wid_l); + } + + if ( c3y == u3r_sing_c("start", u3h(response)) ) { + // Separate the %start message into its components. + // + u3_noun response_header, data, complete; + u3_noun status, headers; + u3x_trel(u3t(response), &response_header, &data, &complete); + u3x_cell(response_header, &status, &headers); + + _http_start_respond(req_u, u3k(status), u3k(headers), u3k(data), + u3k(complete)); + } + else if ( c3y == u3r_sing_c("continue", u3h(response)) ) { + // Separate the %continue message into its components. + // + u3_noun data, complete; + u3x_cell(u3t(response), &data, &complete); + + _http_continue_respond(req_u, u3k(data), u3k(complete)); + } + else if (c3y == u3r_sing_c("cancel", u3h(response))) { + _http_cancel_respond(req_u); + } + else { + u3l_log("http: strange response"); + } + } + else { + u3l_log("http: strange response"); + } + } + + u3z(tag); + u3z(dat); +} + +/* _http_stream_slog(): emit slog to open connections +*/ +static void +_http_stream_slog(void* vop_p, c3_w pri_w, u3_noun tan) +{ + u3_httd* htd_u = (u3_httd*)vop_p; + u3_hreq* seq_u = htd_u->fig_u.seq_u; + + // only do the work if there are open slog streams + // + if ( 0 != seq_u ) { + u3_weak data = u3_none; + + if ( c3y == u3a_is_atom(tan) ) { + u3_noun lin = u3i_list(u3i_string("data:"), + u3k(tan), + c3_s2('\n', '\n'), + u3_none); + u3_atom txt = u3qc_rap(3, lin); + data = u3nt(u3_nul, u3r_met(3, txt), txt); + u3z(lin); + } + else { + u3_weak wol = u3_none; + + // if we have no arvo kernel and can't evaluate nock, + // only send %leaf tanks + // + if ( 0 == u3A->roc ) { + if ( c3__leaf == u3h(tan) ) { + wol = u3nc(u3k(u3t(tan)), u3_nul); + } + } + else { + u3_noun blu = u3_term_get_blew(0); + c3_l col_l = u3h(blu); + wol = u3dc("wash", u3nc(0, col_l), u3k(tan)); + u3z(blu); + } + + if ( u3_none != wol ) { + u3_noun low = wol; + u3_noun paz = u3_nul; + while ( u3_nul != low ) { + u3_noun lin = u3i_list(u3i_string("data:"), + u3qc_rap(3, u3h(low)), + c3_s2('\n', '\n'), + u3_none); + paz = u3kb_weld(paz, lin); + low = u3t(low); + } + u3_atom txt = u3qc_rap(3, paz); + data = u3nt(u3_nul, u3r_met(3, txt), txt); + u3z(paz); + } + + u3z(wol); + } + + if ( u3_none != data ) { + while ( 0 != seq_u ) { + _http_continue_respond(seq_u, u3k(data), c3n); + seq_u = seq_u->nex_u; + } + } + + u3z(data); + } + + u3z(tan); +} + +/* _http_seq_heartbeat_cb(): send heartbeat to slog streams and restart timer +*/ +static void +_http_seq_heartbeat_cb(uv_timer_t* tim_u) +{ + u3_httd* htd_u = tim_u->data; + u3_hreq* seq_u = htd_u->fig_u.seq_u; + + if ( 0 != seq_u ) { + u3_noun dat = u3nt(u3_nul, 1, c3_s1('\n')); + while ( 0 != seq_u ) { + _http_continue_respond(seq_u, u3k(dat), c3n); + seq_u = seq_u->nex_u; + } + u3z(dat); + } + + uv_timer_start(htd_u->fig_u.sit_u, _http_seq_heartbeat_cb, + HEARTBEAT_TIMEOUT, 0); +} + +/* _http_io_kick(): apply effects. +*/ +static c3_o +_http_io_kick(u3_auto* car_u, u3_noun wir, u3_noun cad) +{ + u3_httd* htd_u = (u3_httd*)car_u; + + u3_noun tag, dat, i_wir, t_wir; + + if ( (c3n == u3r_cell(wir, &i_wir, &t_wir)) + || (c3n == u3r_cell(cad, &tag, &dat)) + || (c3n == u3r_sing_c("http-server", i_wir)) ) + { + u3z(wir); u3z(cad); + return c3n; + } + + // XX this needs to be rewritten, it defers (c3n) in cases it should not + // + { + u3_noun pud = t_wir; + u3_noun p_pud, t_pud, tt_pud, q_pud, r_pud, s_pud; + c3_l sev_l, coq_l, seq_l; + + + if ( (c3n == u3r_cell(pud, &p_pud, &t_pud)) || + (c3n == u3v_lily(c3__uv, u3k(p_pud), &sev_l)) ) + { + u3z(wir); u3z(cad); + return c3n; + } + + if ( u3_nul == t_pud ) { + coq_l = seq_l = 0; + } + else { + if ( (c3n == u3r_cell(t_pud, &q_pud, &tt_pud)) || + (c3n == u3v_lily(c3__ud, u3k(q_pud), &coq_l)) ) + { + u3z(wir); u3z(cad); + return c3n; + } + + if ( u3_nul == tt_pud ) { + seq_l = 0; + } else { + if ( (c3n == u3r_cell(tt_pud, &r_pud, &s_pud)) || + (u3_nul != s_pud) || + (c3n == u3v_lily(c3__ud, u3k(r_pud), &seq_l)) ) + { + u3z(wir); u3z(cad); + return c3n; + } + } + } + + _http_ef_http_server(htd_u, sev_l, coq_l, seq_l, u3k(tag), u3k(dat)); + u3z(wir); u3z(cad); + return c3y; + } +} + +/* _http_io_exit(): shut down http. +*/ +static void +_http_io_exit(u3_auto* car_u) +{ + u3_httd* htd_u = (u3_httd*)car_u; + + _http_ws_close_all(htd_u); + + u3h_free(htd_u->sax_p); + u3h_free(htd_u->nax_p); + + // dispose of configuration to avoid restarts + // + _http_form_free(htd_u); + _http_auth_free(htd_u); + + // close all servers + // + // XX broken + // + // for ( u3_http* htp_u = htd_u->htp_u; htp_u; htp_u = htp_u->nex_u ) { + // _http_serv_close(htp_u); + // } + + { + u3_atom lin = u3i_string("data:urbit shutting down\n\n"); + u3_noun dat = u3nt(u3_nul, u3r_met(3, lin), lin); + u3_hreq* seq_u = htd_u->fig_u.seq_u; + while ( 0 != seq_u ) { + _http_continue_respond(seq_u, u3k(dat), c3y); + seq_u = seq_u->nex_u; + } + u3z(dat); + } + + _http_release_ports_file(u3_Host.dir_c); +} + +/* _http_io_info(): produce status info. +*/ +static u3_noun +_http_io_info(u3_auto* car_u) +{ + u3_httd* htd_u = (u3_httd*)car_u; + u3_http* htp_u = htd_u->htp_u; + c3_w sec_w = 0; + u3_hreq* seq_u = htd_u->fig_u.seq_u; + u3_noun res; + + // XX review: metrics + // + while ( 0 != seq_u ) { + sec_w++; + seq_u = seq_u->nex_u; + } + res = u3i_list( + u3_pier_mase("instance", htd_u->sev_l), + u3_pier_mase("open-slogstreams", u3i_word(sec_w)), + u3_none); + + while ( 0 != htp_u ) { + res = u3nc( + u3_pier_mass( + u3dc("scot", c3__uv, htp_u->sev_l), + u3i_list( + u3_pier_mase("secure", htp_u->sec), + u3_pier_mase("loopback", htp_u->lop), + u3_pier_mase("live", htp_u->liv), + u3_pier_mase("port", htp_u->por_s), + u3_pier_mase("connections", htp_u->coq_l), + u3_none)), + res); + htp_u = htp_u->nex_u; + } + return u3kb_flop(res); +} + +/* _http_io_slog(): print status info. +*/ +static void +_http_io_slog(u3_auto* car_u) +{ + u3_httd* htd_u = (u3_httd*)car_u; + c3_y sec_y = 0; + u3_hreq* seq_u = htd_u->fig_u.seq_u; + while ( 0 != seq_u ) { + sec_y++; + seq_u = seq_u->nex_u; + } + u3l_log(" open slogstreams: %d", sec_y); +} + +/* u3_http_io_init(): initialize http I/O. +*/ +u3_auto* +u3_http_io_init(u3_pier* pir_u) +{ + u3_httd* htd_u = c3_calloc(sizeof(*htd_u)); + htd_u->sax_p = u3h_new(); + htd_u->nax_p = u3h_new_cache(512); + htd_u->web_u = 0; + htd_u->wid_l = 1; + + { + u3_noun key = u3dt("cat", 3, + u3i_string("urbauth-"), + u3dc("scot", 'p', u3i_chubs(2, pir_u->who_d))); + htd_u->fig_u.ses = u3_nul; + htd_u->fig_u.key_c = u3r_string(key); + u3z(key); + } + + u3_auto* car_u = &htd_u->car_u; + car_u->nam_m = c3__http; + car_u->liv_o = c3n; + car_u->io.talk_f = _http_io_talk; + car_u->io.info_f = _http_io_info; + car_u->io.slog_f = _http_io_slog; + car_u->io.kick_f = _http_io_kick; + car_u->io.exit_f = _http_io_exit; + + pir_u->sop_p = htd_u; + pir_u->sog_f = _http_stream_slog; + + uv_timer_t* sit_u = c3_malloc(sizeof(*sit_u)); + sit_u->data = htd_u; + uv_timer_init(u3L, sit_u); + uv_timer_start(sit_u, _http_seq_heartbeat_cb, HEARTBEAT_TIMEOUT, 0); + htd_u->fig_u.sit_u = sit_u; + + { + u3_noun now; + struct timeval tim_u; + gettimeofday(&tim_u, 0); + + now = u3_time_in_tv(&tim_u); + htd_u->sev_l = u3r_mug(now); + u3z(now); + } + + // XX retry up to N? + // + // car_u->ev.bail_f = ...; + + return car_u; +} diff --git a/vere/pkg/vere/io/lick.c b/vere/pkg/vere/io/lick.c new file mode 100644 index 0000000..4e3dfa4 --- /dev/null +++ b/vere/pkg/vere/io/lick.c @@ -0,0 +1,652 @@ +/// @file + +#include "vere.h" +#include +#include +#include "noun.h" + +/* u3_chan: incoming ipc port connection. +*/ +typedef struct _u3_chan { + struct _u3_moor mor_u; // message handler + c3_l coq_l; // connection number + c3_o liv_o; // connection live + struct _u3_shan* san_u; // server backpointer +} u3_chan; + +/* u3_shan: ipc port server. +*/ +typedef struct _u3_shan { + uv_pipe_t pyp_u; // server stream handler + c3_l nex_l; // next connection number + struct _u3_port* gen_u; // port backpointer + struct _u3_chan* can_u; // connection list +} u3_shan; + + +/* u3_port: description of an IPC port +*/ +typedef struct _u3_port { + c3_c* nam_c; // name of port + c3_o con_o; + c3_o liv_o; + struct _u3_shan* san_u; // server reference + struct _u3_lick* lic_u; // device backpointer + struct _u3_port* nex_u; // next pointer +} u3_port; + +/* u3_lick: a list of devices +*/ +typedef struct _u3_lick { + u3_auto car_u; // driver + c3_c* fod_c; // IPC folder location + u3_cue_xeno* sil_u; // cue handle + struct _u3_port* gen_u; // port list +} u3_lick; + +static const c3_c URB_DEV_PATH[] = "/.urb/dev"; + +/* _lick_string_to_knot(): convert c unix path component to $knot +*/ +static u3_atom +_lick_string_to_knot(c3_c* pax_c) +{ + u3_assert(pax_c); + u3_assert(!strchr(pax_c, '/')); + if ( '!' == *pax_c ) { + pax_c++; + } + return u3i_string(pax_c); +} + +/* _lick_string_to_path(): convert c string to u3_noun $path +** +** c string must begin with the pier path plus mountpoint +*/ +static u3_noun +_lick_string_to_path(c3_c* pax_c) +{ + u3_noun not; + + //u3_assert(pax_c[-1] == '/'); + c3_c* end_c = strchr(pax_c, '/'); + if ( !end_c ) { + return u3nc(_lick_string_to_knot(pax_c), u3_nul); + } + else { + *end_c = 0; + not = _lick_string_to_knot(pax_c); + *end_c = '/'; + return u3nc(not, _lick_string_to_path(end_c + 1)); + } +} + +/* _lick_it_path(): path for ipc files +*/ +static c3_c* +_lick_it_path(u3_noun pax) +{ + c3_w len_w = 0; + c3_c *pas_c; + + // measure + // + { + u3_noun wiz = pax; + + while ( u3_nul != wiz ) { + len_w += (1 + u3r_met(3, u3h(wiz))); + wiz = u3t(wiz); + } + } + + // cut + // + pas_c = c3_malloc(len_w + 1); + pas_c[len_w] = '\0'; + { + u3_noun wiz = pax; + c3_c* waq_c = pas_c; + + while ( u3_nul != wiz ) { + c3_w tis_w = u3r_met(3, u3h(wiz)); + + if ( (u3_nul == u3t(wiz)) ) { + *waq_c++ = '/'; + } else *waq_c++ = '/'; + + u3r_bytes(0, tis_w, (c3_y*)waq_c, u3h(wiz)); + waq_c += tis_w; + + wiz = u3t(wiz); + } + *waq_c = 0; + } + u3z(pax); + return pas_c; +} + +/* _lick_send_noun(): jam and send noun over chan. +*/ +static void +_lick_send_noun(u3_chan* can_u, u3_noun nun) +{ + c3_y* byt_y; + c3_d len_d; + + u3s_jam_xeno(nun, &len_d, &byt_y); + u3z(nun); + u3_newt_send((u3_mojo*)&can_u->mor_u, len_d, byt_y); +} + +/* _lick_mote_free(): u3_moat-shaped close callback. +*/ +static void +_lick_moat_free(void* ptr_v, ssize_t err_i, const c3_c* err_c) +{ + c3_free((u3_chan*)ptr_v); +} + +/* _lick_close_cb(): socket close callback. +*/ +static void +_lick_close_cb(uv_handle_t* had_u) +{ + c3_free((u3_shan*)had_u); +} + +/* _lick_moor_poke(): called on message read from u3_moor. +*/ +static void +_lick_moor_poke(void* ptr_v, c3_d len_d, c3_y* byt_y) +{ + u3_weak put; + u3_noun dev, nam, dat, wir, cad; + + u3_chan* can_u = (u3_chan*)ptr_v; + u3_port* gen_u = can_u->san_u->gen_u; + u3_lick* lic_u = gen_u->lic_u; + c3_i err_i = 0; + c3_c* err_c; + c3_c* tag_c; + c3_c* rid_c; + + put = u3s_cue_xeno_with(lic_u->sil_u, len_d, byt_y); + if ( u3_none == put ) { + can_u->mor_u.bal_f(can_u, -1, "cue-none"); + return; + } + if ( c3n == u3r_cell(put, &nam, &dat) ) { + can_u->mor_u.bal_f(can_u, -2, "put-bad"); + u3z(put); + return; + } + + wir = u3nc(c3__lick, u3_nul); + dev = _lick_string_to_path(gen_u->nam_c+1); + cad = u3nt(c3__soak, dev, put); + u3_auto_peer( + u3_auto_plan(&lic_u->car_u, u3_ovum_init(0, c3__l, wir, cad)), + 0, 0, 0); +} + +/* _lick_close_chan(): close given channel, freeing. +*/ +static void +_lick_close_chan(u3_chan* can_u) +{ + u3_shan* san_u = can_u->san_u; + u3_lick* lic_u = san_u->gen_u->lic_u; + u3_port* gen_u = san_u->gen_u; + gen_u->con_o = c3n; + u3_chan* inn_u; + // remove chan from server's connection list. + // + if ( san_u->can_u == can_u ) { + san_u->can_u = (u3_chan*)can_u->mor_u.nex_u; + } + else { + for ( inn_u = san_u->can_u; inn_u; inn_u = (u3_chan*)inn_u->mor_u.nex_u ) { + if ( (u3_chan*)inn_u->mor_u.nex_u == can_u ) { + inn_u->mor_u.nex_u = can_u->mor_u.nex_u; + break; + } + } + } + can_u->mor_u.nex_u = NULL; + + if ( NULL == san_u->can_u && c3y == gen_u->liv_o ) { + // send a close event to arvo and stop reading. + // + u3_noun wir, cad, dev, dat, mar; + + wir = u3nc(c3__lick, u3_nul); + dev = _lick_string_to_path(gen_u->nam_c+1); + mar = u3i_string("disconnect"); + dat = u3_nul; + + cad = u3nq(c3__soak, dev, mar, dat); + + u3_auto_peer( + u3_auto_plan(&lic_u->car_u, + u3_ovum_init(0, c3__l, wir, cad)), + 0, 0, 0); + } + + u3_newt_moat_stop((u3_moat*)&can_u->mor_u, _lick_moat_free); +} + +/* _lick_moor_bail(): error callback for u3_moor. +*/ +static void +_lick_moor_bail(void* ptr_v, ssize_t err_i, const c3_c* err_c) +{ + u3_chan* can_u = (u3_chan*)ptr_v; + + if ( err_i != UV_EOF ) { + u3l_log("lick: moor bail %zd %s", err_i, err_c); + if ( _(can_u->liv_o) ) { + _lick_send_noun(can_u, u3nq(0, c3__bail, u3i_word(err_i), + u3i_string(err_c))); + can_u->liv_o = c3n; + } + } + _lick_close_chan(can_u); +} + +/* _lick_sock_cb(): socket connection callback. +*/ +static void +_lick_sock_cb(uv_stream_t* sem_u, c3_i tas_i) +{ + u3_shan* san_u = (u3_shan*)sem_u; + u3_port* gen_u = san_u->gen_u; + u3_chan* can_u; + c3_i err_i; + + can_u = c3_calloc(sizeof(u3_chan)); + can_u->mor_u.ptr_v = can_u; + can_u->mor_u.pok_f = _lick_moor_poke; + can_u->mor_u.bal_f = _lick_moor_bail; + can_u->coq_l = san_u->nex_l++; + can_u->san_u = san_u; + err_i = uv_timer_init(u3L, &can_u->mor_u.tim_u); + u3_assert(!err_i); + err_i = uv_pipe_init(u3L, &can_u->mor_u.pyp_u, 0); + u3_assert(!err_i); + err_i = uv_accept(sem_u, (uv_stream_t*)&can_u->mor_u.pyp_u); + u3_assert(!err_i); + u3_newt_read((u3_moat*)&can_u->mor_u); + can_u->mor_u.nex_u = (u3_moor*)san_u->can_u; + san_u->can_u = can_u; + gen_u->con_o = c3y; + + // only send on first connection + if ( NULL == can_u->mor_u.nex_u ) { + u3_noun dev, dat, wir, cad, mar; + wir = u3nc(c3__lick, u3_nul); + dev = _lick_string_to_path(gen_u->nam_c+1); + mar = u3i_string("connect"); + dat = u3_nul; + + cad = u3nq(c3__soak, dev, mar, dat); + u3_auto_peer( + u3_auto_plan(&gen_u->lic_u->car_u, u3_ovum_init(0, c3__l, wir, cad)), + 0, 0, 0); + } +} + +/* _lick_close_sock(): close an port's socket +*/ +static void +_lick_close_sock(u3_shan* san_u) +{ + u3_lick* lic_u = san_u->gen_u->lic_u; + + if ( NULL != san_u->can_u ) { + _lick_close_chan(san_u->can_u); + } + + c3_w len_w = strlen(lic_u->fod_c) + strlen(san_u->gen_u->nam_c) + 2; + c3_c* paf_c = c3_malloc(len_w); + c3_i wit_i; + wit_i = snprintf(paf_c, len_w, "%s/%s", lic_u->fod_c, san_u->gen_u->nam_c); + + u3_assert(wit_i > 0); + u3_assert(len_w == (c3_w)wit_i + 1); + + if ( 0 != unlink(paf_c) ) { + if ( ENOENT != errno ) { + u3l_log("lick: failed to unlink socket: %s", uv_strerror(errno)); + } + } + + uv_close((uv_handle_t*)&san_u->pyp_u, _lick_close_cb); + c3_free(paf_c); +} + +/* _lick_mkdirp(): recursive mkdir of dirname of pax_c. +*/ +static c3_o +_lick_mkdirp(c3_c* por_c) +{ + c3_c pax_c[2048]; + + strncpy(pax_c, por_c, sizeof(pax_c)); + + c3_c* fas_c = strchr(pax_c + 1, '/'); + + while ( fas_c ) { + *fas_c = 0; + if ( 0 != mkdir(pax_c, 0777) && EEXIST != errno ) { + return c3n; + } + *fas_c++ = '/'; + fas_c = strchr(fas_c, '/'); + } + return c3y; +} + +/* _lick_init_sock(): initialize socket device. +*/ +static void +_lick_init_sock(u3_shan* san_u) +{ + // the full socket path is limited to about 108 characters, + // and we want it to be relative to the pier. save our current + // path, chdir to the pier, open the socket at the desired + // path, then chdir back. hopefully there aren't any threads. + // + c3_c pax_c[2048]; + c3_i err_i; + c3_c por_c[2048] = "."; + u3_port* gen_u = san_u->gen_u; + + if ( NULL == getcwd(pax_c, sizeof(pax_c)) ) { + u3l_log("lick: getcwd: %s", uv_strerror(errno)); + u3_king_bail(); + } + if ( 0 != chdir(u3_Host.dir_c) ) { + u3l_log("lick: chdir: %s", uv_strerror(errno)); + u3_king_bail(); + } + + strcat(por_c, URB_DEV_PATH); + strcat(por_c, gen_u->nam_c); + + if ( c3y != _lick_mkdirp(por_c) ) { + u3l_log("lick: mkdir %s: %s", por_c, strerror(errno)); + goto _lick_sock_err_chdir; + } + + if ( 0 != unlink(por_c) && errno != ENOENT ) { + u3l_log("lick: unlink: %s", uv_strerror(errno)); + goto _lick_sock_err_chdir; + } + if ( 0 != (err_i = uv_pipe_init(u3L, &san_u->pyp_u, 0)) ) { + u3l_log("lick: uv_pipe_init: %s", uv_strerror(err_i)); + goto _lick_sock_err_chdir; + } + + if ( 0 != (err_i = uv_pipe_bind(&san_u->pyp_u, por_c)) ) { + u3l_log("lick: uv_pipe_bind: %s", uv_strerror(err_i)); + u3l_log("lick: uv_pipe_bind: %s", por_c); + goto _lick_sock_err_chdir; + } + if ( 0 != (err_i = uv_listen((uv_stream_t*)&san_u->pyp_u, 0, + _lick_sock_cb)) ) { + u3l_log("lick: uv_listen: %s", uv_strerror(err_i)); + goto _lick_sock_err_unlink; + } + if ( 0 != chdir(pax_c) ) { + u3l_log("lick: chdir: %s", uv_strerror(errno)); + goto _lick_sock_err_close; + } + return; + +_lick_sock_err_close: + uv_close((uv_handle_t*)&san_u->pyp_u, _lick_close_cb); +_lick_sock_err_unlink: + if ( 0 != unlink(gen_u->nam_c) ) { + u3l_log("lick: unlink: %s", uv_strerror(errno)); + } +_lick_sock_err_chdir: + if ( 0 != chdir(pax_c) ) { + u3l_log("lick: chdir: %s", uv_strerror(errno)); + } + u3_king_bail(); +} + +/* u3_lick_ef_shut(): Close an IPC port +*/ +static void +_lick_ef_shut(u3_lick* lic_u, u3_noun nam) +{ + c3_c* nam_c = _lick_it_path(nam); + + u3_port* cur_u = lic_u->gen_u; + u3_port* las_u = NULL; + + while ( NULL != cur_u ) { + if ( 0 == strcmp(cur_u->nam_c, nam_c) ) { + cur_u->liv_o = c3n; + _lick_close_sock(cur_u->san_u); + if( las_u == NULL ) { + lic_u->gen_u = cur_u->nex_u; + } + else { + las_u->nex_u = cur_u->nex_u; + } + c3_free(cur_u); + return; + } + las_u = cur_u; + cur_u = cur_u->nex_u; + } + // XX We should delete empty folders in the pier/.urb/dev path +} + + +/* u3_lick_ef_spin(): Open an IPC port +*/ +static void +_lick_ef_spin(u3_lick* lic_u, u3_noun nam) +{ + c3_c* nam_c = _lick_it_path(nam); + u3_port* las_u = lic_u->gen_u; + + while ( NULL != las_u ) { + if( 0 == strcmp(las_u->nam_c, nam_c) ) { + c3_free(nam_c); + return; + } + las_u = las_u->nex_u; + } + u3_port* gen_u = c3_calloc(sizeof(*gen_u)); + gen_u->san_u = c3_calloc(sizeof(*gen_u->san_u)); + + gen_u->lic_u = lic_u; + gen_u->san_u->gen_u = gen_u; + gen_u->nam_c = nam_c; + gen_u->con_o = c3n; + gen_u->liv_o = c3y; + + _lick_init_sock(gen_u->san_u); + gen_u ->nex_u = lic_u->gen_u; + lic_u->gen_u = gen_u; +} + +/* _lick_ef_spit(): spit effects to port +*/ +static void +_lick_ef_spit(u3_lick* lic_u, u3_noun nam, u3_noun dat) +{ + c3_c* nam_c = _lick_it_path(nam); + u3_port* gen_u = NULL; + u3_port* cur_u = lic_u->gen_u; + while (cur_u != NULL){ + if( 0 == strcmp(cur_u->nam_c, nam_c) ) { + gen_u = cur_u; + break; + } + cur_u = cur_u->nex_u; + } + if ( NULL == gen_u ) { + u3l_log("lick: spit: gen %s not found", nam_c); + u3z(dat); + return; + } + + if( c3y == gen_u->con_o ) { + _lick_send_noun(gen_u->san_u->can_u, dat); + } + else { + u3_noun dev, wir, cad, mar; + u3z(dat); + wir = u3nc(c3__lick, u3_nul); + dev = _lick_string_to_path(gen_u->nam_c+1); + mar = u3i_string("error"); + dat = u3i_string("not connected"); + cad = u3nq(c3__soak, dev, mar, dat); + u3_auto_peer( + u3_auto_plan(&gen_u->lic_u->car_u, u3_ovum_init(0, c3__l, wir, cad)), + 0, 0, 0); + } +} + + +/* _lick_io_kick(): apply effects. +*/ +static c3_o +_lick_io_kick(u3_auto* car_u, u3_noun wir, u3_noun cad) +{ + u3_lick* lic_u = (u3_lick*)car_u; + + u3_noun tag, i_wir, par; + u3_noun nam, dat, tmp; + c3_o ret_o, dev_o; + + if ( (c3n == u3r_cell(wir, &i_wir, 0)) + || (c3n == u3r_cell(cad, &tag, &tmp)) + || (c3__lick != i_wir) ) + { + ret_o = c3n; + } + else { + if ( (c3__spin == tag) ) { + _lick_ef_spin(lic_u, u3k(tmp)); // execute spin command + ret_o = c3y; + } + else if ( (c3__shut == tag) ) { + _lick_ef_shut(lic_u, u3k(tmp)); // execute shut command + ret_o = c3y; + } + else if ( c3__spit == tag ) { + if ( c3y == u3r_cell(tmp, &nam, &dat) ) { + _lick_ef_spit(lic_u, u3k(nam), u3k(dat)); + } + ret_o = c3y; + } + else { + ret_o = c3n; + } + } + + u3z(wir); + u3z(cad); + return ret_o; +} + +/* _lick_born_news(): initialization complete on %born. +*/ +static void +_lick_born_news(u3_ovum* egg_u, u3_ovum_news new_e) +{ + u3_auto* car_u = egg_u->car_u; + + if ( u3_ovum_done == new_e ) { + car_u->liv_o = c3y; + } +} + +/* _lick_born_bail(): %born is essential, retry failures. +*/ +static void +_lick_born_bail(u3_ovum* egg_u, u3_noun lud) +{ + u3l_log("lick: %%born failure;"); + u3z(lud); + u3_ovum_free(egg_u); +} + +/* _lick_io_talk(): notify %lick that we're live + * pass it a list of device names +*/ +static void +_lick_io_talk(u3_auto* car_u) +{ + u3_lick* lic_u = (u3_lick*)car_u; + u3_noun wir = u3nc(c3__lick, u3_nul); + u3_noun cad = u3nc(c3__born, u3_nul); + + u3_auto_peer( + u3_auto_plan(car_u, u3_ovum_init(0, c3__l, wir, cad)), + 0, + _lick_born_news, + _lick_born_bail); + + car_u->liv_o = c3y; +} + +/* _lick_io_exit(): close all open device files and exit +*/ +static void +_lick_io_exit(u3_auto* car_u) +{ + u3_lick* lic_u = (u3_lick*)car_u; + u3_port* cur_u = lic_u->gen_u; + u3_port* nex_u; + while ( NULL != cur_u ) { + _lick_close_sock(cur_u->san_u); + nex_u = cur_u->nex_u; + c3_free(cur_u); + cur_u = nex_u; + } + + u3s_cue_xeno_done(lic_u->sil_u); + c3_free(lic_u); +} + + +/* u3_lick(): initialize hardware control vane. +*/ +u3_auto* +u3_lick_io_init(u3_pier* pir_u) +{ + u3_lick* lic_u = c3_calloc(sizeof(*lic_u)); + + c3_c pax_c[2048] = ""; + struct stat st = {0}; + strcat(pax_c, u3_Host.dir_c); + strcat(pax_c, URB_DEV_PATH); + + if ( -1 == stat(pax_c, &st) ) { + u3l_log("lick: init mkdir %s",pax_c ); + if ( mkdir(pax_c, 0700) && (errno != EEXIST) ) { + u3l_log("lick: cannot make directory"); + u3_king_bail(); + } + } + + lic_u->sil_u = u3s_cue_xeno_init(); + lic_u->fod_c = strdup(pax_c); + + u3_auto* car_u = &lic_u->car_u; + car_u->nam_m = c3__lick; + car_u->liv_o = c3n; + car_u->io.talk_f = _lick_io_talk; + car_u->io.kick_f = _lick_io_kick; + car_u->io.exit_f = _lick_io_exit; + + return car_u; +} diff --git a/vere/pkg/vere/io/lss.c b/vere/pkg/vere/io/lss.c new file mode 100644 index 0000000..7097526 --- /dev/null +++ b/vere/pkg/vere/io/lss.c @@ -0,0 +1,391 @@ +/// @file + +#include "vere.h" +#include +#include +#include "urcrypt.h" +#include "lss.h" + +static c3_y IV[32] = {103, 230, 9, 106, 133, 174, 103, 187, 114, 243, 110, 60, 58, 245, 79, 165, 127, 82, 14, 81, 140, 104, 5, 155, 171, 217, 131, 31, 25, 205, 224, 91}; + +static void _leaf_hash(lss_hash out, c3_y* leaf_y, c3_w leaf_w, c3_d counter_d) +{ + c3_y cv[32]; + memcpy(cv, IV, 32); + c3_y block[64] = {0}; + c3_y block_len = 0; + c3_y flags = 0; + urcrypt_blake3_chunk_output(leaf_w, leaf_y, cv, block, &block_len, &counter_d, &flags); + urcrypt_blake3_compress(cv, block, block_len, counter_d, flags, block); + memcpy(out, block, 32); +} + +static void _parent_hash(lss_hash out, lss_hash left, lss_hash right) +{ + c3_y cv[32]; + memcpy(cv, IV, 32); + c3_y block[64]; + memcpy(block, left, 32); + memcpy(block + 32, right, 32); + c3_y block_len = 64; + c3_y flags = 1 << 2; // PARENT + urcrypt_blake3_compress(cv, block, block_len, 0, flags, block); + memcpy(out, block, 32); +} + +static void _subtree_root(lss_hash out, c3_y* leaf_y, c3_w leaf_w, c3_d counter_d) +{ + if ( leaf_w <= 1024 ) { + _leaf_hash(out, leaf_y, leaf_w, counter_d); + return; + } + c3_w leaves_w = (leaf_w + 1023) / 1024; + c3_w mid_w = 1 << (c3_bits_word(leaves_w-1) - 1); + lss_hash l, r; + _subtree_root(l, leaf_y, (mid_w * 1024), counter_d); + _subtree_root(r, leaf_y + (mid_w * 1024), leaf_w - (mid_w * 1024), counter_d + mid_w); + _parent_hash(out, l, r); +} + +c3_w lss_proof_size(c3_w leaves) { + return 1 + c3_bits_word(leaves-1); +} + +c3_o _lss_expect_pair(c3_w leaves, c3_w i) { + return __((i != 0) && ((i + (1 << (1+c3_tz_w(i)))) < leaves)); +} + +static void _lss_builder_merge(lss_builder* bil_u, c3_w height, lss_hash l, lss_hash r) { + // whenever two subtrees are merged, insert them into the pairs array; + // if the merged tree is part of the left-side "spine" of the tree, + // instead add the right subtree to the initial proof + if ( bil_u->counter >> (height+1) ) { + c3_w i = (bil_u->counter&~((1<<(height+1))-1)) - (1<pairs[i][0], l, sizeof(lss_hash)); + memcpy(bil_u->pairs[i][1], r, sizeof(lss_hash)); + } else { + if (height == 0) { + memcpy(bil_u->proof[0], l, sizeof(lss_hash)); // proof always begins with [0, 1) + } + memcpy(bil_u->proof[height+1], r, sizeof(lss_hash)); + } +} + +void lss_builder_ingest(lss_builder* bil_u, c3_y* leaf_y, c3_w leaf_w) { + lss_hash h; + _leaf_hash(h, leaf_y, leaf_w, bil_u->counter); + c3_w height = 0; + while ( bil_u->counter&(1<trees[height], h); + _parent_hash(h, bil_u->trees[height], h); + height++; + } + memcpy(bil_u->trees[height], h, sizeof(lss_hash)); + bil_u->counter++; +} + +c3_w lss_builder_transceive(lss_builder* bil_u, c3_w steps, c3_y* jumbo_y, c3_w jumbo_w, lss_pair* pair) { + if ( pair != NULL ) { + c3_w i = bil_u->counter; + memcpy(bil_u->pairs[i][0], (*pair)[0], sizeof(lss_hash)); + memcpy(bil_u->pairs[i][1], (*pair)[1], sizeof(lss_hash)); + } + for (c3_w i = 0; (i < (1< 0); i++) { + c3_w leaf_w = c3_min(jumbo_w, 1024); + lss_builder_ingest(bil_u, jumbo_y, leaf_w); + jumbo_y += leaf_w; + jumbo_w -= leaf_w; + } + return c3_min(bil_u->counter - (1<leaves); +} + +lss_hash* lss_builder_finalize(lss_builder* bil_u) { + if ( bil_u->counter != 0 ) { + c3_w height = c3_tz_w(bil_u->counter); + lss_hash h; + memcpy(h, bil_u->trees[height], sizeof(lss_hash)); + for (height++; height < sizeof(bil_u->trees)/sizeof(lss_hash); height++) { + if ( bil_u->counter&(1<trees[height], h); + _parent_hash(h, bil_u->trees[height], h); + } + } + } + return bil_u->proof; +} + +lss_pair* lss_builder_pair(lss_builder* bil_u, c3_w i) { + if ( c3y == _lss_expect_pair(bil_u->leaves, i) ) { + return &bil_u->pairs[i]; + } + return NULL; +} + +void lss_builder_init(lss_builder* bil_u, c3_w leaves) { + bil_u->leaves = leaves; + bil_u->counter = 0; + bil_u->proof = c3_calloc(lss_proof_size(leaves) * sizeof(lss_hash)); + bil_u->pairs = c3_calloc(leaves * sizeof(lss_pair)); +} + +void lss_builder_free(lss_builder* bil_u) { + c3_free(bil_u->proof); + c3_free(bil_u->pairs); + c3_free(bil_u); +} + +lss_hash* lss_transceive_proof(lss_hash* proof, c3_w steps) { + for (c3_w i = 0; i < steps; i++) { + _parent_hash(proof[i+1], proof[i], proof[i+1]); + } + return proof + steps; +} + +static c3_o _lss_verifier_check_hash(lss_verifier* los_u, c3_w i, c3_w height, lss_hash h) +{ + // Binary numeral trees are composed of a set of perfect binary trees of + // unique heights. Unless the set consists of a single tree, there will be + // pairs that span two trees. We call these pairs "odd" because the heights of + // their children are uneven. Specifically, the left child of an odd pair has + // a greater height than the right child. + // + // When such a pair is inserted by lss_verifier_ingest, both children are + // inserted at the same height, causing right child to be in the "wrong" + // place. The abstruse bithacking below corrects for this. First, it + // calculates the positions of the odd pairs within a tree of this size. Then + // it determines how many odd pairs are directly above us, and increments the + // height accordingly. A mask is used to ensure that we only perform this + // adjustment when necessary. + c3_w odd = (1<leaves-1)) - los_u->leaves; + c3_w mask = (1<leaves-1))) - 1; + height += c3_tz_w(~((odd&~mask) >> height)); + c3_b parity = (i >> height) & 1; + return __(memcmp(los_u->pairs[height][parity], h, sizeof(lss_hash)) == 0); +} + +c3_o lss_verifier_ingest(lss_verifier* los_u, c3_y* leaf_y, c3_w leaf_w, lss_pair* pair) { + // verify leaf + /* los_u->counter++; */ + /* return c3y; */ + + lss_hash h; + _subtree_root(h, leaf_y, leaf_w, los_u->counter << los_u->steps); + if ( c3n == _lss_verifier_check_hash(los_u, los_u->counter, 0, h) ) { + return c3n; + } + // check whether pair is expected + if ( (pair != NULL) != (c3y == _lss_expect_pair(los_u->leaves, los_u->counter)) ) { + return c3n; + } else if (pair == NULL) { + los_u->counter++; + return c3y; + } + // verify and insert pair + c3_w height = c3_tz_w(los_u->counter); + c3_w start = los_u->counter + (1 << height); // first leaf "covered" by this pair + lss_hash parent_hash; + _parent_hash(parent_hash, (*pair)[0], (*pair)[1]); + if ( c3n == _lss_verifier_check_hash(los_u, start, height+1, parent_hash) ) { + return c3n; + } + memcpy(los_u->pairs[height][0], (*pair)[0], sizeof(lss_hash)); + memcpy(los_u->pairs[height][1], (*pair)[1], sizeof(lss_hash)); + los_u->counter++; + return c3y; +} + +void lss_verifier_init(lss_verifier* los_u, c3_w steps, c3_w leaves, lss_hash* proof, arena* are_u) { + c3_w proof_w = lss_proof_size(leaves); + c3_w pairs_w = c3_bits_word(leaves); + los_u->steps = steps; + los_u->leaves = leaves; + los_u->counter = 0; + los_u->pairs = new(are_u, lss_pair, pairs_w); + memcpy(los_u->pairs[0][0], proof[0], sizeof(lss_hash)); + for (c3_w i = 1; i < proof_w; i++) { + memcpy(los_u->pairs[i-1][1], proof[i], sizeof(lss_hash)); + } +} + +void lss_complete_inline_proof(lss_hash* proof, c3_y* leaf_y, c3_w leaf_w) { + _subtree_root(proof[0], leaf_y, leaf_w, 0); +} + +void lss_root(lss_hash root, lss_hash* proof, c3_w proof_w) { + memcpy(root, proof[0], sizeof(lss_hash)); + for (c3_w i = 1; i < proof_w; i++) { + _parent_hash(root, root, proof[i]); + } +} + +#ifdef LSS_TEST + +static lss_pair* _make_pair(lss_hash left, lss_hash right) +{ + lss_pair* pair = c3_malloc(sizeof(lss_pair)); + memcpy((*pair)[0], left, 32); + memcpy((*pair)[1], right, 32); + return pair; +} + +static void _test_lss_manual_verify_8() +{ + #define asrt_ok(y) if ( c3y != y ) { fprintf(stderr, "failed at %s:%u\n", __FILE__, __LINE__); exit(1); } + + c3_w dat_w = 1024 * 7 + 1; + c3_y* dat_y = c3_calloc(dat_w); + + c3_y* leaves_y[8]; + c3_w leaves_w[8]; + lss_hash leaves_h[8]; + lss_pair *pairs[8]; + + // construct leaves + for ( c3_w i = 0; i < 8; i++ ) { + leaves_y[i] = dat_y + 1024 * i; + leaves_w[i] = i < 7 ? 1024 : 1; + _leaf_hash(leaves_h[i], leaves_y[i], leaves_w[i], i); + pairs[i] = NULL; + } + // construct pairs + pairs[1] = _make_pair(leaves_h[2], leaves_h[3]); + pairs[3] = _make_pair(leaves_h[4], leaves_h[5]); + pairs[5] = _make_pair(leaves_h[6], leaves_h[7]); + lss_hash pair3_hash; + _parent_hash(pair3_hash, (*pairs[3])[0], (*pairs[3])[1]); + lss_hash pair5_hash; + _parent_hash(pair5_hash, (*pairs[5])[0], (*pairs[5])[1]); + pairs[2] = _make_pair(pair3_hash, pair5_hash); + + // construct proof + lss_hash *proof = c3_calloc(4 * sizeof(lss_hash)); + memcpy(proof[0], leaves_h[0], 32); + memcpy(proof[1], leaves_h[1], 32); + _parent_hash(proof[2], leaves_h[2], leaves_h[3]); + _parent_hash(proof[3], (*pairs[2])[0], (*pairs[2])[1]); + + // verify + lss_verifier lss_u; + memset(&lss_u, 0, sizeof(lss_verifier)); + lss_verifier_init(&lss_u, 0, 8, proof); + for ( c3_w i = 0; i < 8; i++ ) { + asrt_ok(lss_verifier_ingest(&lss_u, leaves_y[i], leaves_w[i], pairs[i])) + } + + #undef asrt_ok +} + +static void _test_lss_build_verify(c3_w dat_w) +{ + #define asrt_ok(y) if ( c3y != y ) { fprintf(stderr, "failed at %s:%u\n", __FILE__, __LINE__); exit(1); } + + c3_y* dat_y = c3_calloc(dat_w); + for ( c3_w i = 0; i < dat_w; i++ ) { + dat_y[i] = i; + } + c3_w leaves_w = (dat_w + 1023) / 1024; + + // build + lss_builder bil_u; + lss_builder_init(&bil_u, leaves_w); + for ( c3_w i = 0; i < leaves_w; i++ ) { + c3_y* leaf_y = dat_y + (i*1024); + c3_w leaf_w = (i < leaves_w - 1) ? 1024 : dat_w % 1024; + lss_builder_ingest(&bil_u, leaf_y, leaf_w); + } + lss_hash* proof = lss_builder_finalize(&bil_u); + + // verify + lss_verifier lss_u; + lss_verifier_init(&lss_u, 0, leaves_w, proof); + for ( c3_w i = 0; i < leaves_w; i++ ) { + c3_y* leaf_y = dat_y + (i*1024); + c3_w leaf_w = (i < leaves_w - 1) ? 1024 : dat_w % 1024; + lss_pair* pair = lss_builder_pair(&bil_u, i); + asrt_ok(lss_verifier_ingest(&lss_u, leaf_y, leaf_w, pair)); + } + + #undef asrt_ok +} + +static void _test_lss_build_verify_jumbo(c3_w steps, c3_w dat_w) +{ + #define asrt_ok(y) if ( c3y != y ) { fprintf(stderr, "failed at %s:%u\n", __FILE__, __LINE__); exit(1); } + + c3_y* dat_y = c3_calloc(dat_w); + for ( c3_w i = 0; i < dat_w; i++ ) { + dat_y[i] = i; + } + c3_w leaves_w = (dat_w + 1023) / 1024; + + // build + lss_builder bil_u; + lss_builder_init(&bil_u, leaves_w); + for ( c3_w i = 0; i < leaves_w; i++ ) { + c3_y* leaf_y = dat_y + (i*1024); + c3_w leaf_w = c3_min(dat_w - (i*1024), 1024); + lss_builder_ingest(&bil_u, leaf_y, leaf_w); + } + lss_hash* proof = lss_builder_finalize(&bil_u); + + // transceive up + c3_w jumbo_leaf_w = 1024 << steps; + c3_w jumbo_leaves_w = (dat_w + jumbo_leaf_w - 1) / jumbo_leaf_w; + + // verify (if possible) + if ( jumbo_leaves_w > 1 ) { + lss_verifier lss_u; + lss_verifier_init(&lss_u, steps, jumbo_leaves_w, lss_transceive_proof(proof, steps)); + for ( c3_w i = 0; i < jumbo_leaves_w; i++ ) { + c3_y* leaf_y = dat_y + (i*(1024< +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "lss.h" +#include "arena.h" + +static c3_o dop_o = c3n; + +static c3_y are_y[524288]; + +/* FILE* packs; */ +/* static c3_d tim_y[200000] = {0}; */ +/* static c3_o done = c3y; */ + +/* #define PACKET_TEST c3y */ + +// #define MESA_DEBUG c3y +//#define MESA_TEST +#define RED_TEXT "\033[0;31m" +#define DEF_TEXT "\033[0m" +#define REORDER_THRESH 5 + +#define DIRECT_ROUTE_TIMEOUT_MICROS 5000000 +#define DIRECT_ROUTE_RETRY_MICROS 1000000 +#define PIT_EXPIRE_MICROS 20000000 + +#define JUMBO_CACHE_MAX_SIZE 200000000 // 200 mb + +// logging and debug symbols +#define MESA_SYM_DESC(SYM) MESA_DESC_ ## SYM +#define MESA_SYM_FIELD(SYM) MESA_FIELD_ ## SYM +#ifdef MESA_DEBUG + #define MESA_LOG(SAM_U, SYM, ...) { SAM_U->sat_u.MESA_SYM_FIELD(SYM)++; u3l_log("mesa: (%u) %s", __LINE__, MESA_SYM_DESC(SYM)); } +#else + #define MESA_LOG(SAM_U, SYM, ...) { SAM_U->sat_u.MESA_SYM_FIELD(SYM)++; } +#endif + +typedef struct _u3_mesa_stat { + c3_w dop_w; // dropped for other reasons + c3_w ser_w; // dropped for serialisation + c3_w aut_w; // droppped for auth + c3_w apa_w; // dropped bc no interest + c3_w inv_w; // non-fatal invariant violation + c3_w dup_w; // duplicates +} u3_mesa_stat; + +#define MESA_DESC_STRANGE "dropped strange packet" +#define MESA_FIELD_STRANGE dop_w + +#define MESA_DESC_SERIAL "dropped packet (serialisation)" +#define MESA_FIELD_SERIAL ser_w + +#define MESA_DESC_AUTH "dropped packet (authentication)" +#define MESA_FIELD_AUTH aut_w + +#define MESA_DESC_INVARIANT "invariant violation" +#define MESA_FIELD_INVARIANT inv_w + +#define MESA_DESC_APATHY "dropped packet (no interest)" +#define MESA_FIELD_APATHY apa_w + +#define MESA_DESC_DUPE "dropped packet (duplicate)" +#define MESA_FIELD_DUPE dup_w + +// routing table sentinels +#define MESA_CZAR 1 // pending dns lookup +#define MESA_ROUT 2 // have route +// +// hop enum + +#define _mesa_met3_w(a_w) ((c3_bits_word(a_w) + 0x7) >> 3) + +struct _u3_mesa_pact; + +typedef struct _u3_pact_stat { + c3_y tie_y; // tries + c3_d sen_d; // last sent + c3_y sip_y; // skips +} u3_pact_stat; + +struct _u3_mesa; + +typedef struct _u3_gage { + c3_w rtt_w; // rtt + c3_w rto_w; // rto + c3_w rtv_w; // rttvar + c3_w wnd_w; // cwnd + c3_w wnf_w; // cwnd fraction + c3_w sst_w; // ssthresh + c3_w con_w; // counter + // +} u3_gage; + +struct _u3_mesa; + +typedef struct _u3_mesa_pict { + uv_udp_send_t snd_u; + struct _u3_mesa* sam_u; + u3_mesa_pact pac_u; +} u3_mesa_pict; + +typedef struct _u3_lane_state { + c3_d sen_d; // last sent date + c3_d her_d; // last heard date + c3_w rtt_w; // round-trip time + c3_w rtv_w; // round-trip time variance +} u3_lane_state; + +/* _u3_mesa: next generation networking + */ + +typedef struct _u3_pit_addr u3_pit_addr; + +typedef struct sockaddr_in sockaddr_in; + +typedef struct _u3_pit_addr { + sockaddr_in sdr_u; + u3_pit_addr* nex_p; +} u3_pit_addr; + +typedef struct _u3_pit_entry { + u3_pit_addr* adr_u; + c3_d tim_d; + arena are_u; +} u3_pit_entry; + +typedef struct _u3_shap { + c3_d hed_d; + c3_d tel_d; +} u3_shap; + + +static u3_shap u3_ship_to_shap( u3_ship ship ) +{ + return (u3_shap){ship[0], ship[1]}; +} + +static void u3_shap_to_ship( u3_ship ship, u3_shap shap ) +{ + ship[0] = shap.hed_d; + ship[1] = shap.tel_d; +} + +static void u3_free_pit( u3_pit_entry* pit_u ) +{ + arena_free(&pit_u->are_u); +} + +static void u3_free_str( u3_str key ) +{ + c3_free(key.str_c); +} + +static uint64_t u3_hash_str( u3_str key ) +{ + c3_d hash = 0xcbf29ce484222325ull; + for (c3_w i = 0; i < key.len_w; i++) { + hash = ( (unsigned char)*(key.str_c)++ ^ hash ) * 0x100000001b3ull; + } + return hash; +} + +static uint64_t u3_cmpr_str( u3_str key1, u3_str key2 ) +{ + return key1.len_w == key2.len_w && memcmp( key1.str_c, key2.str_c, key1.len_w ) == 0; +} + +static uint64_t u3_cmpr_shap( u3_shap ship1, u3_shap ship2 ) +{ + return ship1.hed_d == ship2.hed_d && ship1.tel_d == ship2.tel_d; +} + +static uint64_t u3_hash_shap(u3_shap ship) +{ + uint64_t combined = ship.hed_d ^ (ship.tel_d * 0x9e3779b97f4a7c15ull); + combined ^= combined >> 23; + combined *= 0x2127599bf4325c37ull; + combined ^= combined >> 47; + return combined; +} + +typedef struct _u3_pend_req u3_pend_req; + +#define NAME req_map +#define KEY_TY u3_str +#define HASH_FN u3_hash_str +#define CMPR_FN u3_cmpr_str +#define VAL_TY u3_pend_req* +#include "verstable.h" + +#define NAME pit_map +#define KEY_TY u3_str +#define HASH_FN u3_hash_str +#define CMPR_FN u3_cmpr_str +#define VAL_TY u3_pit_entry* +#define VAL_DTOR_FN u3_free_pit +#include "verstable.h" + +#define NAME gag_map +#define KEY_TY u3_shap +#define HASH_FN u3_hash_shap +#define CMPR_FN u3_cmpr_shap +#define VAL_TY u3_gage* +#include "verstable.h" + +typedef enum _u3_mesa_ctag { + CTAG_WAIT = 1, + CTAG_BLOCK = 2, +} u3_mesa_ctag; + + +typedef struct _u3_scry_handle { + void* vod_p; + arena are_u; +} u3_scry_handle; + +// jumbo frame cache value +// +typedef struct _u3_mesa_line { + u3_mesa_name nam_u; // full name for data, ready to serialize + u3_auth_data aut_u; // message authenticator + c3_w tob_d; // number of bytes in whole message + c3_w dat_w; // size in bytes of dat_y + c3_w len_w; // total allocated size, in bytes + c3_y* tip_y; // initial Merkle spine, nullable + c3_y* dat_y; // fragment data (1024 bytes per fragment) + c3_y* haz_y; // hash pairs (64 bytes per fragment) + arena are_u; +} u3_mesa_line; + + +static void u3_free_line( u3_mesa_line* lin_u ) +{ + // CTAG_WAIT, CTAG_BLOCK + if ( lin_u > (u3_mesa_line*)2 ) { + arena_free(&lin_u->are_u); + } +} + +#define NAME jum_map +#define KEY_TY u3_str +#define KEY_DTOR_FN u3_free_str +#define VAL_DTOR_FN u3_free_line +#define HASH_FN u3_hash_str +#define CMPR_FN u3_cmpr_str +#define VAL_TY u3_mesa_line* +#include "verstable.h" + +typedef struct _u3_peer u3_peer; + +#define NAME per_map +#define KEY_TY u3_shap +#define HASH_FN u3_hash_shap +#define CMPR_FN u3_cmpr_shap +#define VAL_TY u3_peer* +#include "verstable.h" + +typedef struct _u3_mesa { + u3_auto car_u; + u3_pier* pir_u; + union { + uv_udp_t wax_u; + uv_handle_t had_u; + }; + u3_mesa_stat sat_u; // statistics + c3_l sev_l; // XX: ?? + c3_o for_o; // is forwarding + per_map per_u; // (map ship u3_peer) + c3_d jum_d; // bytes in jumbo cache + jum_map jum_u; // jumbo cache + gag_map gag_u; // lane cache + pit_map pit_u; // (map path [our=? las=(set lane)]) + req_map req_u; // (map [rift path] u3_pend_req) + c3_c* dns_c; // turf (urb.otrg) + c3_d tim_d; // XX: remove + arena are_u; // per packet arena + arena par_u; // permanent arena + uv_timer_t tim_u; // pit clear timer +} u3_mesa; + +typedef struct _u3_peer { + u3_mesa* sam_u; // backpointer + u3_ship her_u; // who is this peer + c3_o ful_o; // has this been initialized? + sockaddr_in dan_u; // direct lane (nullable) + u3_lane_state dir_u; // direct lane state + c3_y imp_y; // galaxy @p + u3_lane_state ind_u; // indirect lane state +} u3_peer; + +typedef struct _u3_pend_req { + u3_peer* per_u; // backpointer + c3_d nex_d; // number of the next fragment to be sent + c3_d tof_d; // total number of expected fragments + c3_d tob_d; // total number of expected bytes + u3_auth_data aut_u; // message authenticator + uv_timer_t tim_u; // timehandler + c3_y* dat_y; // ((mop @ud *) lte) + c3_d hav_d; // how many fragments we've received + c3_d lef_d; // lowest fragment number currently in flight/pending + c3_d out_d; // outstanding fragments in flight + c3_d old_d; // frag num of oldest packet sent + c3_d ack_d; // highest acked fragment number + u3_gage* gag_u; // congestion control + lss_pair* mis_u; // misordered packets + lss_verifier* los_u; // Lockstep verifier + u3_mesa_pict* pic_u; // preallocated request packet + u3_pact_stat* wat_u; // ((mop @ud packet-state) lte) + u3_bitset was_u; // ((mop @ud ?) lte) + c3_c* pek_c; + c3_w pek_w; + c3_d pek_d; + // stats TODO: use + c3_d beg_d; // date when request began + arena are_u; +} u3_pend_req; + +/* + * typedef u3_mesa_req u3_noun + * [tot=@ waiting=(set @ud) missing=(set @ud) nex=@ud dat=(map @ud @)] + */ + +typedef struct _u3_cace_enty { + u3_mesa_ctag typ_y; + union { + // u03_mesa_cace_wait wat_u; + // u3_mesa_cace_item res_u; + }; +} u3_cace_enty; + +// Sent request +// because of lifecycles a u3_mesa_pact may have several libuv +// callbacks associated with it, so we can't those as callback +// instead just alloc new buffer and stick here +typedef struct _u3_seal { + uv_udp_send_t snd_u; // udp send request + u3_mesa* sam_u; + c3_w len_w; + c3_y* buf_y; + arena are_u; +} u3_seal; + +typedef struct _u3_mesa_cb_data { + u3_mesa* sam_u; + u3_mesa_name nam_u; + sockaddr_in lan_u; +} u3_mesa_cb_data; + +static c3_d +get_millis() { + struct timeval tp; + + gettimeofday(&tp, NULL); + return (tp.tv_sec * 1000) + (tp.tv_usec / 1000); + // Convert the seconds to milliseconds by multiplying by 1000 + // Convert the microseconds to milliseconds by dividing by 1000 +} + +static void +_log_buf(c3_y* buf_y, c3_w len_w) +{ + for( c3_w i_w = 0; i_w < len_w; i_w++ ) { + fprintf(stderr, "%02x", buf_y[i_w]); + } + fprintf(stderr, "\r\n"); +} + +static void +_log_gage(u3_gage* gag_u) +{ + u3l_log("gauge at %p", gag_u); + u3l_log("rtt: %f", ((double)gag_u->rtt_w / 1000)); + u3l_log("rto: %f", ((double)gag_u->rto_w / 1000)); + u3l_log("rttvar: %f", ((double)gag_u->rtv_w / 1000)); + u3l_log("cwnd: %u", gag_u->wnd_w); + u3l_log("cwnd fraction: %f", gag_u->wnf_w / (float)gag_u->wnd_w ); + u3l_log("ssthresh: %u", gag_u->sst_w); + u3l_log("counter: %u", gag_u->con_w); + //u3l_log("algorithm: %s", gag_u->alg_c); +} + +static void +_log_lane(u3_lane* lan_u) +{ + u3l_log("mesa: lane (%s,%u)", u3r_string(u3dc("scot", c3__if, u3i_word(lan_u->pip_w))), lan_u->por_s); +} + +static void _log_peer(u3_peer* per_u) +{ + if ( per_u == NULL ) { + u3l_log("NULL peer"); + return; + } + u3l_log("dir"); + u3l_log("galaxy: %s", u3r_string(u3dc("scot", 'p', per_u->imp_y))); +} + +static void +_log_pend_req(u3_pend_req* req_u) +{ + if( req_u == NULL ) { + u3l_log("pending request was NULL"); + return; + } + u3l_log("have: %"PRIu64, req_u->hav_d); + u3l_log("next: %"PRIu64, req_u->nex_d); + u3l_log("total: %" PRIu64, req_u->tof_d); + u3l_log("gage: %c", req_u->gag_u == NULL ? 'n' : 'y'); + //u3l_log("timer in: %" PRIu64 " ms", uv_timer_get_due_in(&req_u->tim_u)); +} + +static void +_log_mesa_data(u3_mesa_data dat_u) +{ + u3l_log("total bytes: %" PRIu64, dat_u.tob_d); + u3l_log("frag len: %u", dat_u.len_w); + // u3l_log("frag: %xxx", dat_u.fra_y); +} + +/* _mesa_lop(): find beginning of page containing fra_d +*/ +static inline c3_d +_mesa_lop(c3_d fra_d) +{ + return fra_d & ~((1 << u3_Host.ops_u.jum_y) - 1); +} + +static c3_d +_get_now_micros() +{ + struct timeval tim_u; + gettimeofday(&tim_u, NULL); + return (tim_u.tv_sec * 1000 * 1000) + tim_u.tv_usec; +} + +static c3_d +_abs_dif(c3_d ayy_d, c3_d bee_d) +{ + return ayy_d > bee_d ? ayy_d - bee_d : bee_d - ayy_d; +} + +static c3_d +_clamp_rto(c3_d rto_d) { + return c3_min(c3_max(rto_d, 200 * 1000), 25000 * 1000); // ~s25 max backoff +} + +static inline c3_o +_mesa_is_lane_zero(sockaddr_in lan_u) +{ + return __((lan_u.sin_addr.s_addr == 0) && (lan_u.sin_port == 0)); +} + +static c3_o +_mesa_is_direct_mode(u3_peer* per_u) +{ + c3_d now_d = _get_now_micros(); + return __(per_u->dir_u.her_d + DIRECT_ROUTE_TIMEOUT_MICROS > now_d); +} + +/* _mesa_encode_path(): produce buf_y as a parsed path +*/ +static u3_noun +_mesa_encode_path(c3_w len_w, c3_y* buf_y) +{ + u3_noun pro; + u3_noun* lit = &pro; + + { + u3_noun* hed; + u3_noun* tel; + c3_y* fub_y = buf_y; + c3_y car_y; + c3_w tem_w; + u3i_slab sab_u; + + while ( len_w-- ) { + car_y = *buf_y++; + if ( len_w == 0 ) { + buf_y++; + car_y = 47; + } + + if ( 47 == car_y ) { + tem_w = buf_y - fub_y - 1; + u3i_slab_bare(&sab_u, 3, tem_w); + sab_u.buf_w[sab_u.len_w - 1] = 0; + memcpy(sab_u.buf_y, fub_y, tem_w); + + *lit = u3i_defcons(&hed, &tel); + *hed = u3i_slab_moot(&sab_u); + lit = tel; + fub_y = buf_y; + } + } + } + + *lit = u3_nul; + + return pro; +} + +static void +_mesa_copy_auth_data(u3_auth_data* des_u, u3_auth_data* src_u) +{ + des_u->typ_e = src_u->typ_e; + switch ( des_u->typ_e ) { + case AUTH_HMAC: { + memcpy(des_u->mac_y, src_u->mac_y, 16); + } break; + case AUTH_SIGN: { + memcpy(des_u->sig_y, src_u->sig_y, 64); + } break; + case AUTH_PAIR: { + memcpy(des_u->has_y, src_u->has_y, 64); + } break; + case AUTH_NONE: { + } break; + default: u3_assert(!"unreachable"); + } +} + +static void +_mesa_copy_name(u3_mesa_name* des_u, u3_mesa_name* src_u, arena* are_u) +{ + memcpy(des_u, src_u, sizeof(u3_mesa_name)); + u3_ship_copy(des_u->her_u, src_u->her_u); + des_u->str_u.str_c = new(are_u, c3_c, src_u->str_u.len_w); + memcpy(des_u->str_u.str_c, src_u->str_u.str_c, src_u->str_u.len_w); + des_u->pat_c = des_u->str_u.str_c + (src_u->pat_c - src_u->str_u.str_c); +} + +static u3_mesa_name* +_mesa_copy_name_alloc(u3_mesa_name* src_u, arena* are_u) +{ + u3_mesa_name* des_u = new(are_u, u3_mesa_name, 1); + _mesa_copy_name(des_u, src_u, are_u); + return des_u; +} + +static u3_atom +_dire_etch_ud(c3_d num_d) +{ + c3_y hun_y[26]; + c3_y* buf_y = u3s_etch_ud_smol(num_d, hun_y); + c3_w dif_w = (c3_p)buf_y - (c3_p)hun_y; + return u3i_bytes(26 - dif_w, buf_y); // XX known-non-null +} + +/* _mesa_request_key(): produce key for request hashtable sam_u->req_p from nam_u +*/ +u3_noun +_mesa_request_key(u3_mesa_name* nam_u) +{ + u3_noun pax = _mesa_encode_path(nam_u->pat_s, (c3_y*)nam_u->pat_c); + u3_noun res = u3nc(u3i_word(nam_u->rif_w), pax); + return res; +} + +static void +_init_gage(u3_gage* gag_u) // microseconds +{ + gag_u->rto_w = 200 * 1000; // ~s1 + gag_u->rtt_w = 1000 * 1000; // ~s1 + gag_u->rtv_w = 1000 * 1000; // ~s1 + /* gag_u->rto_w = 200 * 1000; // ~s1 */ + /* gag_u->rtt_w = 82 * 1000; // ~s1 */ + /* gag_u->rtv_w = 100 * 1000; // ~s1 */ + gag_u->con_w = 0; + gag_u->wnd_w = 1; + gag_u->sst_w = 10000; +} + +/* u3_mesa_encode_lane(): serialize lane to noun +*/ +static u3_noun +u3_mesa_encode_lane(sockaddr_in lan_u) { + // [%if ip=@ port=@] + c3_w pip_w = ntohl(lan_u.sin_addr.s_addr); + c3_s por_s = ntohs(lan_u.sin_port); + return u3nt(c3__if, u3i_word(pip_w), por_s); +} + +static u3_peer* +_mesa_get_peer(u3_mesa* sam_u, u3_ship her) +{ + per_map_itr itr_u = vt_get(&sam_u->per_u, u3_ship_to_shap(her)); + if ( vt_is_end(itr_u) ) { + return NULL; + } + return itr_u.data->val; +} + +static void +_mesa_put_peer(u3_mesa* sam_u, u3_ship her_u, u3_peer* per_u) +{ + u3_shap him_u = u3_ship_to_shap(her_u); + per_map_itr itr_u = vt_get(&sam_u->per_u, him_u); + + if ( vt_is_end(itr_u) ) { + itr_u = vt_insert(&sam_u->per_u, him_u, per_u); + + if ( vt_is_end(itr_u) ) { + fprintf(stderr, "mesa: cannot allocate memory for peer, dying"); + u3_king_bail(); + } + } else { + memcpy(itr_u.data->val, per_u, sizeof(u3_peer)); + } +} + +/* _mesa_get_request(): produce pending request state for nam_u + * + * produces a NULL pointer if no pending request exists +*/ +static u3_pend_req* +_mesa_get_request(u3_mesa* sam_u, u3_mesa_name* nam_u) { + u3_str key_u = {nam_u->pat_c, nam_u->pat_s}; + req_map_itr itr_u = vt_get(&sam_u->req_u, key_u); + if ( vt_is_end(itr_u) ) { + return NULL; + } + return itr_u.data->val; +} + +static void +_mesa_del_request_cb(uv_handle_t* han_u) { + u3_pend_req* req_u = han_u->data; + arena_free(&req_u->are_u); +} + +static void +_mesa_del_request(u3_mesa* sam_u, u3_mesa_name* nam_u) { + u3_str key_u = {nam_u->pat_c, nam_u->pat_s}; + req_map_itr itr_u = vt_get(&sam_u->req_u, key_u); + + if ( vt_is_end(itr_u) ) { + return; + } + + u3_pend_req* req_u = itr_u.data->val; + vt_erase(&sam_u->req_u, key_u); + if ( (u3_pend_req*)CTAG_WAIT != req_u ) { + uv_timer_stop(&req_u->tim_u); + req_u->tim_u.data = req_u; + uv_close((uv_handle_t*)&req_u->tim_u, _mesa_del_request_cb); + } +} + +/* _mesa_put_request(): save new pending request state for nam_u +*/ +static void +_mesa_put_request(u3_mesa* sam_u, u3_mesa_name* nam_u, u3_pend_req* req_u) { + u3_str key_u = {nam_u->pat_c, nam_u->pat_s}; + req_map_itr itr_u = vt_insert(&sam_u->req_u, key_u, req_u); + + if ( vt_is_end(itr_u) ) { + fprintf(stderr, "mesa: cannot allocate memory for request, dying"); + u3_king_bail(); + } +} + +/* _ames_czar_port(): udp port for galaxy. + XX copied from io/ames.c +*/ +static c3_s +_ames_czar_port(c3_y imp_y) +{ + if ( c3n == u3_Host.ops_u.net ) { + return 31337 + imp_y; + } + else { + return 13337 + imp_y; + } +} + +static sockaddr_in +_mesa_get_direct_lane(u3_mesa* sam_u, u3_ship her_u) +{ + sockaddr_in adr_u = {0}; + adr_u.sin_family = AF_INET; + + if ( c3__czar == u3_ship_rank(her_u) ) { + c3_s por_s = _ames_czar_port(her_u[0]); + adr_u.sin_addr.s_addr = htonl(u3_Host.imp_u[her_u[0]]); + adr_u.sin_port = htons(por_s); + return adr_u; + } + + per_map_itr itr_u = vt_get(&sam_u->per_u, u3_ship_to_shap(her_u)); + if ( vt_is_end(itr_u) ) { + return adr_u; + } + + adr_u = itr_u.data->val->dan_u; + + + return adr_u; +} + +static c3_o +_mesa_lanes_equal(sockaddr_in lan_u, sockaddr_in lon_u) +{ + return __((lan_u.sin_addr.s_addr == lon_u.sin_addr.s_addr) && (lan_u.sin_port == lon_u.sin_port)); +} + +static sockaddr_in +_mesa_get_czar_lane(u3_mesa* sam_u, c3_y imp_y) +{ + c3_s por_s = _ames_czar_port(imp_y); + sockaddr_in adr_u = {0}; + adr_u.sin_family = AF_INET; + adr_u.sin_addr.s_addr = htonl(u3_Host.imp_u[imp_y]); + adr_u.sin_port = htons(por_s); + return adr_u; +} + +/* _mesa_get_lane(): get lane +*/ +static u3_gage* +_mesa_get_gage(u3_mesa* sam_u, u3_ship her_u) { + gag_map_itr itr_u = vt_get(&sam_u->gag_u, u3_ship_to_shap(her_u)); + if ( vt_is_end(itr_u) ) { + return NULL; + } + return itr_u.data->val; +} + +/* _mesa_put_gage(): put gage state in state + * +*/ +static void +_mesa_put_gage(u3_mesa* sam_u, u3_ship her_u, u3_gage* gag_u) +{ + gag_map_itr itr_u = vt_insert(&sam_u->gag_u, u3_ship_to_shap(her_u), gag_u); + if ( vt_is_end(itr_u) ) { + fprintf(stderr, "mesa: cannot allocate memory for gage, dying"); + u3_king_bail(); + } +} +// congestion control update +static void _mesa_handle_ack(u3_gage* gag_u, u3_pact_stat* pat_u) +{ + /* _log_gage(gag_u); */ + gag_u->con_w++; + + c3_d now_d = _get_now_micros(); + c3_d rtt_d = now_d < pat_u->sen_d ? 0 : now_d - pat_u->sen_d; + + c3_d err_d = _abs_dif(rtt_d, gag_u->rtt_w); + + gag_u->rtt_w = (rtt_d + (gag_u->rtt_w * 7)) >> 3; + gag_u->rtv_w = (err_d + (gag_u->rtv_w * 7)) >> 3; + gag_u->rto_w = _clamp_rto(gag_u->rtt_w + (4*gag_u->rtv_w)); + + if ( gag_u->wnd_w < gag_u->sst_w ) { + gag_u->wnd_w++; + } else if ( gag_u->wnd_w <= ++gag_u->wnf_w ) { + gag_u->wnd_w++; + gag_u->wnf_w = 0; + } +} + +static inline c3_d +_mesa_req_get_remaining(u3_pend_req* req_u) +{ + return req_u->tof_d - req_u->hav_d; +} + +static c3_d +_safe_sub(c3_d a, c3_d b) { + return a < b ? 0 : a - b; +} + +/* + * _mesa_req_get_cwnd(): produce packets to send + * + * saves next fragment number and preallocated pact into the passed pointers. + * Will not do so if returning 0 +*/ +static c3_w +_mesa_req_get_cwnd(u3_pend_req* req_u) +{ + /* c3_w liv_w = bitset_wyt(&req_u->was_u); */ + c3_w rem_w = _mesa_req_get_remaining(req_u); + /* u3l_log("rem_w %u wnd_w %u", rem_w, req_u->gag_u->wnd_w); */ + + /* u3l_log("rem_w %u", rem_w); */ + /* u3l_log("wnd_w %u", req_u->gag_u->wnd_w); */ + /* u3l_log("out_d %"PRIu64, req_u->out_d); */ + /* return c3_min(rem_w, _safe_sub(3500, req_u->out_d)); */ + return c3_min(rem_w, _safe_sub((c3_d)req_u->gag_u->wnd_w, req_u->out_d)); + /* return c3_min(rem_w, 5000 - req_u->out_d); */ +} + +/* _mesa_req_pact_resent(): mark packet as resent +** +*/ +static void +_mesa_req_pact_resent(u3_pend_req* req_u, u3_mesa_name* nam_u, c3_d now_d) +{ + req_u->wat_u[nam_u->fra_d].sen_d = now_d; + req_u->wat_u[nam_u->fra_d].tie_y++; +} + +/* _mesa_req_pact_sent(): mark packet as sent +** after 1-RT first packet is handled in _mesa_req_pact_init() +*/ +static void +_mesa_req_pact_sent(u3_pend_req* req_u, c3_d fra_d, c3_d now_d) +{ + if( req_u->nex_d == fra_d ) { + req_u->nex_d++; + req_u->out_d++; + } + // TODO: optional assertions? + req_u->wat_u[fra_d].sen_d = now_d; + req_u->wat_u[fra_d].sip_y = 0; + req_u->wat_u[fra_d].tie_y++; +} + +/* _ames_alloc(): libuv buffer allocator. +*/ +static void +_mesa_alloc(uv_handle_t* had_u, size_t len_i, uv_buf_t* buf) +{ + u3_mesa* sam_u = (u3_mesa*)had_u->data; + sam_u->are_u.beg = (char*)are_y; + c3_c* ptr_v = new(&sam_u->are_u, c3_c, 400000); + buf->base = ptr_v; + buf->len = 400000; +} + +/* u3_mesa_decode_lane(): deserialize noun to lane; 0.0.0.0:0 if invalid +*/ +static sockaddr_in +u3_mesa_decode_lane(u3_atom lan) { + sockaddr_in adr_u = {0}; + c3_d lan_d; + + if ( c3n == u3r_safe_chub(lan, &lan_d) || (lan_d >> 48) != 0 ) { + return adr_u; + } + + u3z(lan); + // convert incoming localhost to outgoing localhost + // + + adr_u.sin_addr.s_addr = ( u3_Host.ops_u.net == c3y ) ? + htonl((c3_w)lan_d) : htonl(0x7f000001); + adr_u.sin_port = htons((c3_s)(lan_d >> 32)); + + return adr_u; +} + +// END plagariasm zone +// +// +// +// +// +// +static void _mesa_free_seal(u3_seal* sel_u) +{ + c3_free(sel_u->buf_y); + c3_free(sel_u); +} + +static void +_mesa_send_cb(uv_udp_send_t* req_u, c3_i sas_i) +{ + u3_seal* sel_u = (u3_seal*)req_u; + u3_mesa* sam_u = sel_u->sam_u; + + if ( sas_i ) { + u3l_log("mesa: send fail_async: %s", uv_strerror(sas_i)); + //sam_u->fig_u.net_o = c3n; + } + else { + //sam_u->fig_u.net_o = c3y; + } + + _mesa_free_seal(sel_u); +} + +static void +_mesa_send_cb2(uv_udp_send_t* req_u, c3_i sas_i) +{ + if ( sas_i ) { + u3l_log("mesa: send fail_async: %s", uv_strerror(sas_i)); + //sam_u->fig_u.net_o = c3n; + } + c3_free(req_u); +} + +typedef struct _send_helper { + uv_udp_send_t snd_u; + u3_pend_req* req_u; + c3_d fra_d; +} send_helper; + +static void +_mesa_send_cb3(uv_udp_send_t* snt_u, c3_i sas_i) +{ + send_helper* snd_u = (send_helper*)snt_u; + if ( sas_i ) { + u3l_log("mesa: send fail_async: %s", uv_strerror(sas_i)); + //sam_u->fig_u.net_o = c3n; + } else { + /* _mesa_req_pact_sent(snd_u->req_u, snd_u->fra_d); */ + } + c3_free(snd_u); +} + +static c3_i _mesa_send_buf2(struct sockaddr** ads_u, uv_buf_t** bfs_u, c3_w* int_u, c3_w num_w) +{ + + /* add_u.sin_family = AF_INET; */ + + /* if ( u3_Host.ops_u.net && (add_u.sin_addr.s_addr == 0 || add_u.sin_addr.s_addr == 0xffffffff) ) { */ + /* return; */ + /* } */ + +#ifdef MESA_DEBUG + /* c3_c* sip_c = inet_ntoa(add_u.sin_addr); */ + // u3l_log("mesa: sending packet to %s:%u", sip_c, por_s); +#endif + c3_i sas_i = uv_udp_try_send2(&u3_Host.wax_u, num_w, bfs_u, int_u, ads_u, 0); + if ( sas_i < 0 ) { + u3l_log("ames: send fail_sync: %s", uv_strerror(sas_i)); + return 0; + } + return sas_i; +// else if ( sas_i < (c3_i)num_w) { +// for ( c3_i i = sas_i; i < (c3_i)num_w; i++) { +// uv_udp_send_t* req_u = c3_malloc(sizeof(*req_u)); +// uv_udp_send(req_u, &u3_Host.wax_u, bfs_u[i], 1, ads_u[0], _mesa_send_cb2); +// } +// } +} +static void _mesa_send_buf3(sockaddr_in add_u, uv_buf_t buf_u) +{ + + add_u.sin_addr.s_addr = ( u3_Host.ops_u.net == c3y ) ? add_u.sin_addr.s_addr : htonl(0x7f000001); + /* add_u.sin_family = AF_INET; */ + + if ( u3_Host.ops_u.net && (add_u.sin_addr.s_addr == 0 || add_u.sin_addr.s_addr == 0xffffffff) ) { + return; + } + +#ifdef MESA_DEBUG + // c3_c* sip_c = inet_ntoa(add_u.sin_addr); + // u3l_log("mesa: sending packet to %s:%u", sip_c, por_s); +#endif + + + uv_udp_send_t* snd_u = c3_malloc(sizeof(*snd_u)); + + c3_i sas_i = uv_udp_send((uv_udp_send_t*)snd_u, + &u3_Host.wax_u, + &buf_u, 1, + (const struct sockaddr*)&add_u, + _mesa_send_cb3); + + if ( sas_i ) { + u3l_log("ames: send fail_sync: %s", uv_strerror(sas_i)); + /*if ( c3y == sam_u->fig_u.net_o ) { + //sam_u->fig_u.net_o = c3n; + }*/ + } +} + +static void _mesa_send_buf(u3_mesa* sam_u, sockaddr_in add_u, c3_y* buf_y, c3_w len_w) +{ + + add_u.sin_addr.s_addr = ( u3_Host.ops_u.net == c3y ) ? add_u.sin_addr.s_addr : htonl(0x7f000001); + add_u.sin_family = AF_INET; + + if ( u3_Host.ops_u.net && (add_u.sin_addr.s_addr == 0 || add_u.sin_addr.s_addr == 0xffffffff) ) { + c3_free(buf_y); + return; + } + + u3_seal* sel_u = c3_calloc(sizeof(*sel_u)); + sel_u->buf_y = buf_y; + sel_u->len_w = len_w; + sel_u->sam_u = sam_u; + + + +#ifdef MESA_DEBUG + c3_c* sip_c = inet_ntoa(add_u.sin_addr); + u3l_log("mesa: sending packet to %s:%u", sip_c, ntohs(add_u.sin_port)); +#endif + + uv_buf_t buf_u = uv_buf_init((c3_c*)buf_y, len_w); + + c3_i sas_i = uv_udp_send(&sel_u->snd_u, + &u3_Host.wax_u, + &buf_u, 1, + (const struct sockaddr*)&add_u, + _mesa_send_cb); + + if ( sas_i ) { + u3l_log("ames: send fail_sync: %s", uv_strerror(sas_i)); + /*if ( c3y == sam_u->fig_u.net_o ) { + //sam_u->fig_u.net_o = c3n; + }*/ + _mesa_free_seal(sel_u); + } +} + +static void _mesa_send(u3_mesa_pict* pic_u, sockaddr_in lan_u) +{ + u3_mesa* sam_u = pic_u->sam_u; + c3_y *buf_y = c3_calloc(PACT_SIZE); + c3_w len_w = mesa_etch_pact_to_buf(buf_y, PACT_SIZE, &pic_u->pac_u); + _mesa_send_buf(sam_u, lan_u, buf_y, len_w); +} + +typedef struct _u3_mesa_request_data { + u3_mesa* sam_u; + u3_ship her_u; + u3_mesa_name* nam_u; + c3_y* buf_y; + c3_w len_w; + u3_pit_addr* las_u; + arena are_u; +} u3_mesa_request_data; + +typedef struct _u3_mesa_resend_data { + arena are_u; + uv_timer_t tim_u; + u3_mesa_request_data dat_u; + c3_y ret_y; // number of remaining retries +} u3_mesa_resend_data; + + +static void +_mesa_free_cb(uv_handle_t *han_u) +{ + u3_mesa_resend_data* res_u = han_u->data; + arena_free(&res_u->are_u); +} + +static void +_mesa_free_resend_data(u3_mesa_resend_data* res_u) +{ + uv_timer_stop(&res_u->tim_u); + res_u->tim_u.data = res_u; + uv_close((uv_handle_t*)&res_u->tim_u, _mesa_free_cb); +} + +static void +_mesa_send_bufs(u3_mesa* sam_u, + u3_peer* per_u, + c3_y* buf_y, + c3_w len_w, + u3_pit_addr* las_u); + +static void +_mesa_send_modal(u3_peer* per_u, uv_buf_t buf_u, u3_pit_addr* las_u) +{ + u3_mesa* sam_u = per_u->sam_u; + c3_d now_d = _get_now_micros(); + + c3_w len_w = buf_u.len; + c3_y* sen_y = c3_calloc(len_w); + memcpy(sen_y, buf_u.base, len_w); + + u3_ship gal_u = {0}; + gal_u[0] = per_u->imp_y; + c3_o our_o = u3_ships_equal(gal_u, sam_u->pir_u->who_d); + + if ( ( c3y == _mesa_is_direct_mode(per_u) ) || + // if we are the sponsor of the ship, don't send to ourselves + (our_o == c3y) ) { + // u3l_log("mesa: direct"); + _mesa_send_buf(sam_u, per_u->dan_u, sen_y, len_w); + per_u->dir_u.sen_d = now_d; + } + else if ( las_u != NULL ) { + _mesa_send_bufs(sam_u, per_u, sen_y, len_w, las_u); + } else { + #ifdef MESA_DEBUG + /* c3_c* gal_c = u3_ship_to_string(gal_u); */ + // u3l_log("mesa: sending to %s", gal_c); + /* c3_free(gal_c); */ + #endif + // + sockaddr_in imp_u = _mesa_get_czar_lane(sam_u, per_u->imp_y); + _mesa_send_buf(sam_u, imp_u, sen_y, len_w); + per_u->ind_u.sen_d = now_d; + + if ( c3n == _mesa_is_lane_zero(per_u->dan_u) ) { + c3_y* san_y = c3_calloc(len_w); + memcpy(san_y, buf_u.base, len_w); + _mesa_send_buf(sam_u, per_u->dan_u, san_y, len_w); + per_u->dir_u.sen_d = now_d; + } + } +} + + +static uv_buf_t +_mesa_peek_buf(c3_c* pek_c, c3_d fra_d, c3_w pek_w) +// 43 +{ + if (fra_d <= 0xff) { + return uv_buf_init(pek_c+(fra_d*pek_w), pek_w); + } + if (fra_d <= 0xffff) { + return uv_buf_init( + pek_c + (0x100 * pek_w) + ((fra_d - 0x100) * (pek_w + 1)), + pek_w + 1 + ); + } + if (fra_d <= 0xffffff) { + return uv_buf_init( + pek_c + (0x100 * pek_w) + + ((fra_d - 0x100) * (pek_w + 1)) + + ((fra_d - 0x10000) * (pek_w + 3)), + pek_w + 3 + ); + } + return uv_buf_init( + pek_c + (0xff * pek_w) + + ((fra_d - 0x100) * (pek_w + 1)) + + ((fra_d - 0x10000) * (pek_w + 3)) + + ((fra_d - 0x1000000ULL) * (pek_w + 7)), + pek_w + 7 + ); +} + +static void +_try_resend(u3_pend_req* req_u, c3_d nex_d) +{ + c3_o los_o = c3n; + c3_d now_d = _get_now_micros(); + u3_mesa_pact *pac_u = &req_u->pic_u->pac_u; + + /* c3_y buf_y[PACT_SIZE]; */ + /* arena scr_u = req_u->are_u; */ + /* uv_buf_t* bfs_u = new(&scr_u, uv_buf_t, 1); */ + // c3_w i_w = 0; + for ( c3_d i_d = req_u->lef_d; i_d < nex_d; i_d++ ) { + // TODO: make fast recovery different from slow + // TODO: track skip count but not dupes, since dupes are meaningless + if ( (c3n == bitset_has(&req_u->was_u, i_d)) && + (now_d - req_u->wat_u[i_d].sen_d > req_u->gag_u->rto_w) ) { + // u3l_log("now_d %"PRIu64, now_d); + // u3l_log("sen_d %"PRIu64, req_u->wat_u[i_d].sen_d); + // u3l_log("rto_w %u", req_u->gag_u->rto_w); + los_o = c3y; + /* u3l_log("resend fra_w: %llu", i_d); */ + + uv_buf_t buf_u = _mesa_peek_buf(req_u->pek_c, i_d, req_u->pek_w); + /* if (buf_u.base < req_u->pek_c) { */ + /* u3l_log("peek overflow, dying, fragment %"PRIu64, i_d); */ + /* abort(); */ + /* } */ + /* new(&scr_u, uv_buf_t, 1); */ + /* bfs_u[i_w] = buf_u; */ + /* c3_w len_w = mesa_etch_pact_to_buf(buf_y, PACT_SIZE, pac_u); */ + /* _mesa_send_buf3(req_u->per_u->dan_u, buf_u, req_u, i_d); */ + _mesa_send_modal(req_u->per_u, buf_u, NULL); + _mesa_req_pact_resent(req_u, &pac_u->pek_u.nam_u, now_d); + // i_w++; + } + } + /* c3_w* int_u = new(&scr_u, c3_w, i_w); */ + /* struct sockaddr** ads_u = new(&scr_u, struct sockaddr*, i_w); */ + /* uv_buf_t** bus_u = new(&scr_u, uv_buf_t*, i_w); */ + /* for (c3_w j_w = 0; j_w < i_w; j_w++) { */ + /* ads_u[j_w] = (struct sockaddr*)&req_u->per_u->dan_u; */ + /* bus_u[j_w] = &bfs_u[j_w]; */ + /* int_u[j_w] = 1; */ + /* } */ + + if ( c3y == los_o ) { + /* _mesa_send_buf2(req_u->per_u->sam_u, ads_u, bus_u, int_u, i_w); */ + /* _mesa_send_buf2(req_u->per_u->sam_u, req_u->per_u->dan_u, bfs_u, i_w); */ + req_u->gag_u->sst_w = c3_max(1, req_u->gag_u->wnd_w / 2); + req_u->gag_u->wnd_w = req_u->gag_u->sst_w; + req_u->gag_u->rto_w = _clamp_rto(req_u->gag_u->rto_w * 2); + // u3l_log("loss"); + // u3l_log("resent %u", i_w); + // u3l_log("counter %u hav_d %"PRIu64 " nex_d %"PRIu64 " ack_d %"PRIu64 " lef_d %"PRIu64 " old_d %"PRIu64, req_u->los_u->counter, req_u->hav_d, req_u->nex_d, req_u->ack_d, req_u->lef_d, req_u->old_d); + // _log_gage(req_u->gag_u); + } +} + +static void +_mesa_packet_timeout(uv_timer_t* tim_u); + +// TODO rename to indicate it sets a timer +static void +_update_resend_timer(u3_pend_req *req_u) +{ + // scan in flight packets, find oldest + c3_w idx_d = req_u->lef_d; + /* c3_d now_d = _get_now_micros(); */ + /* c3_d wen_d = now_d; */ + /* for ( c3_d i = req_u->lef_d; i < req_u->nex_d; i++ ) { */ + /* // u3l_log("fra %u (%u)", i, __LINE__); */ + /* if ( c3n == bitset_has(&req_u->was_u, i) && */ + /* wen_d > req_u->wat_u[i].sen_d */ + /* ) { */ + /* wen_d = req_u->wat_u[i].sen_d; */ + /* idx_d = i; */ + /* } */ + /* } */ +/* if ( now_d == wen_d ) { */ +/* #ifdef MESA_DEBUG */ +/* /\* u3l_log("failed to find new oldest"); *\/ */ +/* #endif */ +/* } */ + /* req_u->old_d = idx_d; */ + req_u->tim_u.data = req_u; + // c3_d gap_d = req_u->wat_u[idx_d].sen_d == 0 ? + // 0 : + // now_d - req_u->wat_u[idx_d].sen_d; + c3_d next_expiry = req_u->gag_u->rto_w; + // u3l_log("next_expiry %llu", next_expiry / 1000); + // u3l_log("DUE %llu", uv_timer_get_due_in(&req_u->tim_u)); + uv_timer_start(&req_u->tim_u, _mesa_packet_timeout, next_expiry / 1000, 0); +} + +/* _mesa_packet_timeout(): callback for packet timeout +*/ +static void +_mesa_packet_timeout(uv_timer_t* tim_u) { + u3_pend_req* req_u = (u3_pend_req*)tim_u->data; + // u3l_log("old %llu nex %llu packet timed out", req_u->old_d, req_u->nex_d); + _try_resend(req_u, req_u->nex_d); + _update_resend_timer(req_u); +} + +static c3_o +_mesa_burn_misorder_queue(u3_pend_req* req_u, c3_y boq_y, c3_w ack_w) +{ + c3_d num_d; + c3_d max_d = req_u->tof_d; + c3_o res_o = c3y; + for ( num_d = 0; (num_d + ack_w) < max_d; num_d++ ) { + c3_w siz_w = (1 << (boq_y - 3)); // XX + c3_y* fra_y = req_u->dat_y + (siz_w * (ack_w + num_d)); + c3_w len_w = (num_d + ack_w) == (max_d - 1) ? req_u->tob_d % 1024 : 1024; + lss_pair* pur_u = &req_u->mis_u[ack_w + num_d]; + lss_pair* par_u = (0 == memcmp(pur_u, &(lss_pair){0}, sizeof(lss_pair))) ? NULL : &req_u->mis_u[ack_w + num_d]; + if ( c3n == bitset_has(&req_u->was_u, (num_d + ack_w)) ) { + break; + } + if ( c3y != lss_verifier_ingest(req_u->los_u, fra_y, len_w, par_u) ) { + res_o = c3n; + u3l_log("fail to burn %" PRIu64 " %" PRIu64, num_d + ack_w, req_u->tof_d); + break; + } + // u3l_log("size %u counter %u num %u fra %u inx %u lef_d %u", siz_w, req_u->los_u->counter , num_w, fra_d, (req_u->los_u->counter + num_w + 1), lef_d); + } + + // ratchet forward + /* u3l_log("burned %llu", num_d); */ + num_d++; // account for the in-ordered packet processed in _mesa_req_pact_done + req_u->lef_d += num_d; + req_u->hav_d += num_d; + + return res_o; +} + +static void +_init_lane_state(u3_lane_state* sat_u); + +/* _mesa_req_pact_done(): mark packet as done +*/ +static void +_mesa_req_pact_done(u3_pend_req* req_u, + u3_mesa_name* nam_u, + u3_mesa_data* dat_u, + c3_y hop_y, + sockaddr_in lan_u) +{ + u3_mesa* sam_u = req_u->per_u->sam_u; // needed for the MESA_LOG macro + + // received past the end of the message + if ( mesa_num_leaves(dat_u->tob_d) <= nam_u->fra_d ) { + u3l_log("strange tob_d %"PRIu64" fra_d %"PRIu64" req_u %"PRIu64, + dat_u->tob_d, nam_u->fra_d, req_u->hav_d); + MESA_LOG(sam_u, STRANGE); + // XX: is this sufficient to drop whole request + return; + } + + // received duplicate + if ( c3y == bitset_has(&req_u->was_u, nam_u->fra_d) ) { + // MESA_LOG(sam_u, DUPE); + /* _update_resend_timer(req_u); */ + return; + } + + lss_pair* par_u = NULL; + + c3_w siz_w = (1 << (nam_u->boq_y - 3)); + memcpy(req_u->dat_y + (siz_w * nam_u->fra_d), dat_u->fra_y, dat_u->len_w); + + if ( dat_u->aut_u.typ_e == AUTH_PAIR ) { + par_u = &req_u->mis_u[nam_u->fra_d]; + memcpy((*par_u)[0], dat_u->aut_u.has_y[0], sizeof(lss_hash)); + memcpy((*par_u)[1], dat_u->aut_u.has_y[1], sizeof(lss_hash)); + } + + if ( req_u->los_u->counter != nam_u->fra_d ) { + // insert into misordered queue + /* u3l_log("insert into misordered queue fra: %llu [counter %u]", */ + /* nam_u->fra_d, */ + /* req_u->los_u->counter); */ + req_u->out_d--; + bitset_put(&req_u->was_u, nam_u->fra_d); + + _mesa_handle_ack(req_u->gag_u, &req_u->wat_u[nam_u->fra_d]); + /* _try_resend(req_u, nam_u->fra_d); */ + /* _update_resend_timer(req_u); */ + return; + } + else if ( c3y != lss_verifier_ingest(req_u->los_u, dat_u->fra_y, dat_u->len_w, par_u) ) { + u3l_log("auth fail frag %"PRIu64, nam_u->fra_d); + u3l_log("nit_o %u", nam_u->nit_o); + _mesa_del_request(sam_u, nam_u); + MESA_LOG(sam_u, AUTH); + return; + } + else if ( c3y != _mesa_burn_misorder_queue(req_u, nam_u->boq_y, req_u->los_u->counter) ) { + MESA_LOG(sam_u, AUTH) + _mesa_del_request(sam_u, nam_u); + return; + } + else { + // u3l_log("about to other free"); + } + + if ( nam_u->fra_d > req_u->ack_d ) { + req_u->ack_d = nam_u->fra_d; + } + + req_u->out_d--; + bitset_put(&req_u->was_u, nam_u->fra_d); + + #ifdef MESA_DEBUG + // u3l_log("fragment %llu counter %u hav_d %llu nex_d %llu ack_d %llu lef_d %llu old_d %llu", nam_u->fra_d, req_u->los_u->counter, req_u->hav_d, req_u->nex_d, req_u->ack_d, req_u->lef_d, req_u->old_d); + #endif + + u3_lane_state* sat_u; + if ( 0 == hop_y && (c3n == _mesa_lanes_equal(lan_u, req_u->per_u->dan_u)) ) { + req_u->per_u->dan_u = lan_u; + sat_u = &req_u->per_u->dir_u; + _init_lane_state(sat_u); + } + else { + sat_u = &req_u->per_u->ind_u; + } + sat_u->her_d = _get_now_micros(); + + // handle gauge update + _mesa_handle_ack(req_u->gag_u, &req_u->wat_u[nam_u->fra_d]); + + // XX FIXME? + /* _try_resend(req_u, nam_u->fra_d); */ + _update_resend_timer(req_u); +} + +static sockaddr_in +_realise_lane(u3_noun lan) { + sockaddr_in lan_u = {0}; + lan_u.sin_family = AF_INET; + + if ( c3y == u3a_is_cat(lan) ) { + // u3_assert( lan < 256 ); + if ( (c3n == u3_Host.ops_u.net) ) { + lan_u.sin_addr.s_addr = htonl(0x7f000001); + lan_u.sin_port = htons(_ames_czar_port(lan)); + } else { + lan_u.sin_addr.s_addr = htonl(u3_Host.imp_u[lan]); + lan_u.sin_port = htons(_ames_czar_port(lan)); + } + } else { + u3_noun tag, pip, por; + u3x_trel(lan, &tag, &pip, &por); + if ( tag == c3__if ) { + lan_u.sin_addr.s_addr = htonl(u3r_word(0, pip)); + u3_assert( c3y == u3a_is_cat(por) && por <= 0xFFFF); + lan_u.sin_port = htons(por); + } else { + u3l_log("mesa: inscrutable lane"); + } + + } + u3z(lan); + return lan_u; +} + +static void +_mesa_send_bufs(u3_mesa* sam_u, + u3_peer* per_u, // null for response packets + c3_y* buf_y, + c3_w len_w, + u3_pit_addr* las_u) +{ + + u3_pit_addr* t = las_u; + while ( NULL != t ) { + sockaddr_in lan_u = t->sdr_u; + + if ( !lan_u.sin_port ) { + u3l_log("mesa: failed to realise lane"); + } else { + c3_y* sen_y = c3_calloc(len_w); + memcpy(sen_y, buf_y, len_w); + _mesa_send_buf(sam_u, lan_u, sen_y, len_w); + if ( per_u && (c3y == _mesa_lanes_equal(lan_u, per_u->dan_u)) ) { + per_u->dir_u.sen_d = _get_now_micros(); + } + } + t = t->nex_p; + } +} + +static u3_pit_entry* +_mesa_get_pit(u3_mesa* sam_u, u3_mesa_name* nam_u) +{ + pit_map_itr itr_u = vt_get(&sam_u->pit_u, nam_u->str_u); + if ( vt_is_end(itr_u) ) { + return NULL; + } + return itr_u.data->val; +} + +static void +_mesa_del_pit(u3_mesa* sam_u, u3_mesa_name* nam_u) +{ + /* u3l_log("deleting %llu", nam_u->fra_d); */ + vt_erase(&sam_u->pit_u, nam_u->str_u); +} + +static void +_mesa_add_lane_to_pit(u3_mesa* sam_u, u3_mesa_name* nam_u, sockaddr_in lan_u) +{ + pit_map_itr itr_u = vt_get(&sam_u->pit_u, nam_u->str_u); + + c3_d now_d = _get_now_micros(); + + if ( vt_is_end(itr_u) ) { + arena are_u = arena_create(16384); + u3_pit_entry* ent_u = new(&are_u, u3_pit_entry, 1); + ent_u->are_u = are_u; + ent_u->tim_d = now_d; + u3_pit_addr* adr_u = new(&ent_u->are_u, u3_pit_addr, 1); + adr_u->nex_p = 0; + adr_u->sdr_u = lan_u; + ent_u->adr_u = adr_u; + + c3_c* str_c = new(&ent_u->are_u, c3_c, nam_u->str_u.len_w); + memcpy(str_c, nam_u->str_u.str_c, nam_u->str_u.len_w); + u3_str str_u = {str_c, nam_u->str_u.len_w}; + + itr_u = vt_insert(&sam_u->pit_u, str_u, ent_u); + + if ( vt_is_end(itr_u) ) { + fprintf(stderr, "mesa: cannot allocate memory for pit, dying"); + u3_king_bail(); + } + + } + else { + u3_pit_entry* ent_u = itr_u.data->val; + ent_u->tim_d = now_d; + u3_pit_addr* old_u = ent_u->adr_u; + while (old_u) { + if ( c3y == _mesa_lanes_equal(lan_u, old_u->sdr_u) ) { + return; + } + old_u = old_u->nex_p; + } + + u3_pit_addr* adr_u = new(&ent_u->are_u, u3_pit_addr, 1); + adr_u->sdr_u = lan_u; + u3_pit_addr* tmp_u = ent_u->adr_u; + adr_u->nex_p = tmp_u; + ent_u->adr_u = adr_u; + } + return; +} + +static void +_mesa_resend_timer_cb(uv_timer_t* tim_u) +{ + u3_mesa_resend_data* res_u = tim_u->data; + u3_mesa_request_data* dat_u = &res_u->dat_u; + res_u->ret_y--; + + u3_pend_req* pit_u = _mesa_get_request(dat_u->sam_u, dat_u->nam_u); + if ( (u3_pend_req*)CTAG_WAIT != pit_u ) { + #ifdef MESA_DEBUG + // u3l_log("mesa: resend PIT entry gone %u", res_u->ret_y); + #endif + _mesa_free_resend_data(res_u); + return; + } + else { + #ifdef MESA_DEBUG + u3l_log("mesa: resend %u", res_u->ret_y); + #endif + } + + _mesa_send_bufs(dat_u->sam_u, + NULL, + dat_u->buf_y, + dat_u->len_w, + dat_u->las_u); + + if ( res_u->ret_y ) { + uv_timer_start(&res_u->tim_u, _mesa_resend_timer_cb, 1000, 0); + } + else { + _mesa_del_request(res_u->dat_u.sam_u, res_u->dat_u.nam_u); + _mesa_free_resend_data(res_u); + } +} + +static u3_pit_addr* +_mesa_lanes_to_addrs(u3_noun las, arena* are_u) { + u3_pit_addr* adr_u = NULL; + u3_noun lan, t = las; + while ( t != u3_nul ) { + u3x_cell(t, &lan, &t); + u3_pit_addr* new_u = new(are_u, u3_pit_addr, 1); + new_u->sdr_u = _realise_lane(u3k(lan)); + new_u->nex_p = adr_u; + adr_u = new_u; + } + return adr_u; +} + +static void +_mesa_hear(u3_mesa* sam_u, + const struct sockaddr* adr_u, + c3_w len_w, + c3_y* hun_y); + +static void time_elapsed(c3_d fra_d, c3_d total, c3_d begin, c3_d end) +{ + c3_d elapsed = end - begin; + double percent = 100.0 * ((double)elapsed / (double)total); + u3l_log(" %"PRIu64": %"PRIu64"(%.2f%%)", fra_d, elapsed, percent); +} + +static void +packet_test(u3_mesa* sam_u, c3_c* fil_c) { + FILE* fd = fopen(fil_c, "rb"); + fseek(fd, 0L, SEEK_END); + c3_d sz = ftell(fd); + c3_y* packets = c3_malloc(sz); + fseek(fd, 0L, SEEK_SET); + + const struct sockaddr adr_u = { + .sa_family = AF_INET, + .sa_data = { + 0x00, 0x50, // Port 80 in network byte order + 0xa7, 0xac, 0xa8, 0x17, // IP 167.172.168.23 + 0x00, 0x00, 0x00, 0x00, // Padding + 0x00, 0x00, 0x00, 0x00 // Padding + } + }; + + fread(packets, 1, sz, fd); + fclose(fd); + + c3_d now_d = _get_now_micros(); + c3_d tidx = 0; + + for (c3_d i = 0; i < sz;) { + c3_w len_w = *(c3_w*)(packets+i); + /* u3l_log("len_w %u i %"PRIu64, len_w, i); */ + i += 4; + _mesa_hear(sam_u, &adr_u, len_w, packets + i); + /* tim_y[tidx] = _get_now_micros(); */ + sam_u->are_u.beg = (char*)are_y; + i += len_w; + /* tidx++; */ + } + c3_d end_d = _get_now_micros(); + c3_d total_d = end_d - now_d; + /* for (c3_d i = 1; i < tidx; i++) { */ + /* time_elapsed(i, total_d, tim_y[i-1], tim_y[i]); */ + /* } */ + u3l_log("packet_test took %"PRIu64, total_d); + c3_free(packets); +} + +static void +_mesa_ef_send(u3_mesa* sam_u, u3_noun las, u3_noun pac) +{ + c3_w len_w = u3r_met(3, pac); + arena are_u = arena_create(len_w + 16384); + c3_y* buf_y = new(&are_u, c3_y, len_w); + u3r_bytes(0, len_w, buf_y, pac); + + u3_mesa_pact pac_u; + memset(&pac_u, 0x11, sizeof(pac_u)); + c3_c* err_c = mesa_sift_pact_from_buf(&pac_u, buf_y, len_w); + if ( err_c ) { + u3l_log("mesa: ef_send: sift failed: %u %s", len_w, err_c); + u3z(pac); + u3z(las); + arena_free(&are_u); + return; + } + + u3_pend_req* old_u = _mesa_get_request(sam_u, &pac_u.pek_u.nam_u); + + if (old_u) { + u3z(pac); + u3z(las); + arena_free(&are_u); + return; + } + + if ( PACT_PAGE == pac_u.hed_u.typ_y ) { + u3_pit_entry* pin_u = _mesa_get_pit(sam_u, &pac_u.pek_u.nam_u); + + if ( NULL == pin_u ) { + arena_free(&are_u); + u3z(pac); + u3z(las); + return; + } + + _mesa_send_bufs(sam_u, NULL, buf_y, len_w, pin_u->adr_u); + _mesa_del_pit(sam_u, &pac_u.pek_u.nam_u); + arena_free(&are_u); + } + else { + u3_mesa_resend_data* res_u = new(&are_u, u3_mesa_resend_data, 1); + res_u->are_u = are_u; + u3_mesa_name* nam_u = _mesa_copy_name_alloc(&pac_u.pek_u.nam_u, &res_u->are_u); + u3_mesa_request_data* dat_u = &res_u->dat_u; + { + dat_u->sam_u = sam_u; + u3_ship_copy(dat_u->her_u, nam_u->her_u); + dat_u->nam_u = nam_u; + dat_u->las_u = _mesa_lanes_to_addrs(las, &res_u->are_u); + dat_u->buf_y = buf_y; + dat_u->len_w = len_w; + } + { + res_u->ret_y = 9; + uv_timer_init(u3L, &res_u->tim_u); + } + _mesa_put_request(sam_u, nam_u, (u3_pend_req*)CTAG_WAIT); + res_u->tim_u.data = res_u; + #ifdef PACKET_TEST + packet_test(sam_u, "pages.packs"); + #else + + _mesa_send_bufs(sam_u, NULL, buf_y, len_w, dat_u->las_u); + uv_timer_start(&res_u->tim_u, _mesa_resend_timer_cb, 1000, 0); + #endif + } + + u3z(pac); + u3z(las); +} + +c3_o +_ames_kick_newt(void* sam_u, u3_noun tag, u3_noun dat); + +u3_atom +u3_ames_encode_lane(u3_lane lan); + +static void _meet_peer(u3_mesa* sam_u, u3_peer* per_u, u3_ship her_u); +static void _init_peer(u3_mesa* sam_u, u3_peer* per_u); + +static c3_o _mesa_kick(u3_mesa* sam_u, u3_noun tag, u3_noun dat) +{ + c3_o ret_o; + switch ( tag ) { + default: { + ret_o = c3n; + } break; + case c3__push: { + u3_noun las, pac; + if ( c3n == u3r_cell(dat, &las, &pac) ) { + // u3l_log(" mesa: send old"); + ret_o = c3n; + } else { + // u3l_log(" mesa: send new"); + _mesa_ef_send(sam_u, u3k(las), u3k(pac)); + ret_o = c3y; + } + } break; + case c3__send: + case c3__turf: + case c3__saxo: { + #ifdef MESA_DEBUG + c3_c* tag_c = u3r_string(tag); + /* u3l_log("mesa: send old %s", tag_c); */ + c3_free(tag_c); + #endif + ret_o = _ames_kick_newt(u3_Host.sam_u, u3k(tag), u3k(dat)); + } break; + case c3__nail: { + u3_ship who_u; + u3_ship_of_noun(who_u, u3h(dat)); + u3_peer* per_u = _mesa_get_peer(sam_u, who_u); + + if ( NULL == per_u ) { + per_u = new(&sam_u->par_u, u3_peer, 1); + _init_peer(sam_u, per_u); + } + + // XX the format of the lane %nail gives is (list (each @p address)) + // + u3_noun las = u3do("tail", u3k(dat)); + + if ( las == u3_nul ) { + per_u->dan_u = (sockaddr_in){0}; + } + else { + u3_noun lan = u3h(las); + // we either have a direct route, and a galaxy, or just one lane + if ( c3n == u3h(lan) ) { + sockaddr_in lan_u = u3_mesa_decode_lane(u3k(u3t(lan))); + per_u->dan_u = lan_u; + } else { + // delete direct lane if galaxy + per_u->dan_u = (sockaddr_in){0}; + } + } + + _meet_peer(sam_u, per_u, who_u); + + ret_o = _ames_kick_newt(u3_Host.sam_u, u3k(tag), u3k(dat)); + } break; + } + + // technically losing tag is unnecessary as it always should + // be a direct atom, but better to be strict + u3z(dat); u3z(tag); + return ret_o; +} + +static c3_o _mesa_io_kick(u3_auto* car_u, u3_noun wir, u3_noun cad) +{ + u3_mesa* sam_u = (u3_mesa*)car_u; + + u3_noun tag, dat, i_wir; + c3_o ret_o; + if ( (c3n == u3r_cell(wir, &i_wir, 0)) + || (c3__ames != i_wir) + || (c3n == u3r_cell(cad, &tag, &dat)) ) + { + ret_o = c3n; + } + else { + ret_o = _mesa_kick(sam_u, u3k(tag), u3k(dat)); + } + + u3z(wir); u3z(cad); + return ret_o; +} + +static u3_noun +_mesa_io_info(u3_auto* car_u) +{ + + return u3_nul; +} + +static void +_mesa_io_slog(u3_auto* car_u) { + u3l_log("mesa is online"); +} + +static void +_mesa_exit_cb(uv_handle_t* han_u) { + u3_mesa* sam_u = (u3_mesa*)han_u->data; + arena_free(&sam_u->par_u); +} + +static void +_mesa_io_exit(u3_auto* car_u) +{ + u3_mesa* sam_u = (u3_mesa*)car_u; + uv_timer_stop(&sam_u->tim_u); + sam_u->tim_u.data = sam_u; + uv_udp_recv_stop(&u3_Host.wax_u); + uv_close((uv_handle_t*)&sam_u->tim_u, _mesa_exit_cb); + uv_close((uv_handle_t*)&u3_Host.wax_u, 0); +} + +static void +_init_lane_state(u3_lane_state* sat_u) +{ + sat_u->sen_d = 0; + sat_u->her_d = 0; + sat_u->rtt_w = 1000000; + sat_u->rtv_w = 1000000; +} + +static void +_init_peer(u3_mesa* sam_u, u3_peer* per_u) +{ + per_u->sam_u = sam_u; + per_u->ful_o = c3n; + per_u->dan_u = (sockaddr_in){0}; + _init_lane_state(&per_u->dir_u); + per_u->imp_y = 0; + _init_lane_state(&per_u->ind_u); +} + +static u3_noun +_name_to_jumbo_scry(u3_mesa_name* nam_u) +{ + u3_noun rif = _dire_etch_ud(nam_u->rif_w); + u3_noun boq = _dire_etch_ud(31); // XX make configurable + u3_noun fag = _dire_etch_ud(0); // XX 1 + u3_noun pax = _mesa_encode_path(nam_u->pat_s, (c3_y*)nam_u->pat_c); + // u3_noun wer = nam_u->nit_o == c3y + // ? u3nc(c3__init, pax) + // : u3nt(nam_u->aut_o == c3y ? c3__auth : c3__data, fag, pax); + + // XX only boq_y of MAX JUMBO allowed + u3_noun wer = u3nt(c3__data, fag, pax); + u3_noun res = u3nc(c3__mess, u3nq(rif, c3__pact, boq, u3nc(c3__etch, wer))); + + return res; +} + + +static c3_w +_name_to_jumbo_str(u3_mesa_name* nam_u, c3_y* buf_y) +{ + u3_mesa_name tmp_u = *nam_u; + tmp_u.boq_y = 31; + tmp_u.fra_d = 0; + tmp_u.nit_o = c3n; + + u3_etcher ech_u; + etcher_init(&ech_u, buf_y, PACT_SIZE); + _mesa_etch_name(&ech_u, &tmp_u); + return ech_u.len_w; +} + +static u3_mesa_line* +_mesa_get_jumbo_cache(u3_mesa* sam_u, u3_mesa_name* nam_u) +{ + c3_y buf_y[PACT_SIZE]; + c3_w len_w = _name_to_jumbo_str(nam_u, buf_y); + u3_str str_u = {(c3_c*)buf_y, len_w}; + + jum_map_itr itr_u = vt_get(&sam_u->jum_u, str_u); + if ( vt_is_end(itr_u) ) { + return NULL; + } + return itr_u.data->val; +} + +static void +_mesa_put_jumbo_cache(u3_mesa* sam_u, u3_mesa_name* nam_u, u3_mesa_line* lin_u) +{ + c3_y* buf_y = c3_malloc(PACT_SIZE); + + c3_w len_w = _name_to_jumbo_str(nam_u, buf_y); + u3_str str_u = {(c3_c*)buf_y, len_w}; + + // CTAG_BLOCK, CTAG_WAIT + if ( lin_u > (u3_mesa_line*)2 ) { + if (sam_u->jum_d > JUMBO_CACHE_MAX_SIZE) { + vt_cleanup(&sam_u->jum_u); + sam_u->jum_d = 0; + } + + sam_u->jum_d += lin_u->tob_d; + } + + jum_map_itr itr_u = vt_insert(&sam_u->jum_u, str_u, lin_u); + + if ( vt_is_end(itr_u) ) { + fprintf(stderr, "mesa: cannot allocate memory for jumbo cache, dying"); + u3_king_bail(); + } +} + +static void +_mesa_send_pact_single(u3_mesa* sam_u, + sockaddr_in adr_u, + u3_mesa_pact* pac_u) +{ + c3_y* buf_y = c3_calloc(PACT_SIZE); + c3_w len_w = mesa_etch_pact_to_buf(buf_y, PACT_SIZE, pac_u); + _mesa_send_buf(sam_u, adr_u, buf_y, len_w); +} + +static void +_mesa_send_pact(u3_mesa* sam_u, + u3_pit_addr* las_u, + u3_peer* per_u, // null for response packets + u3_mesa_pact* pac_u) +{ + c3_y* buf_y = c3_calloc(PACT_SIZE); + c3_w len_w = mesa_etch_pact_to_buf(buf_y, PACT_SIZE, pac_u); + _mesa_send_bufs(sam_u, per_u, buf_y, len_w, las_u); +} + +static void +_mesa_send_leaf(u3_mesa* sam_u, + u3_mesa_line* lin_u, + u3_mesa_pact* pac_u, // scratchpad + c3_d fra_d, + sockaddr_in adr_u + ) +{ + u3_mesa_name* nam_u = &pac_u->pag_u.nam_u; + u3_mesa_data* dat_u = &pac_u->pag_u.dat_u; + + nam_u->fra_d = fra_d; + c3_d i_d = fra_d - (lin_u->nam_u.fra_d * (1 << u3_Host.ops_u.jum_y)); + c3_w cur_w = i_d * 1024; + dat_u->fra_y = lin_u->dat_y + cur_w; + dat_u->len_w = c3_min(lin_u->dat_w - cur_w, 1024); + + lss_pair* pair = ((lss_pair*)lin_u->haz_y) + i_d; + + if ( 0 == nam_u->fra_d ) { // XX + _mesa_copy_auth_data(&dat_u->aut_u, &lin_u->aut_u); + } else if ( 0 == memcmp(pair, &(lss_pair){0}, sizeof(lss_pair)) ) { + dat_u->aut_u.typ_e = AUTH_NONE; + } else { + dat_u->aut_u.typ_e = AUTH_PAIR; + memcpy(dat_u->aut_u.has_y, pair, sizeof(lss_pair)); + } +#ifdef MESA_DEBUG + // u3l_log(" sending leaf packet, fra_d: %"PRIu64, nam_u->fra_d); +#endif + // log_pact(pac_u); + _mesa_send_pact_single(sam_u, adr_u, pac_u); +} + +static void +_mesa_send_piece(u3_mesa* sam_u, u3_mesa_line* lin_u, u3_mesa_name* nam_u, c3_d fra_d, sockaddr_in adr_u) { + u3_mesa_pact pac_u = {0}; + u3_mesa_head* hed_u = &pac_u.hed_u; + { + hed_u->nex_y = HOP_NONE; + hed_u->pro_y = 1; + hed_u->typ_y = PACT_PAGE; + hed_u->hop_y = 0; + // mug_w varies by fragment + } + pac_u.pag_u.nam_u = *nam_u; + + u3_mesa_data* dat_u = &pac_u.pag_u.dat_u; + { + dat_u->tob_d = lin_u->tob_d; + dat_u->aut_u = lin_u->aut_u; + // aut_u, len_w, and fra_y vary by fragment + } + + c3_d mev_d = mesa_num_leaves(dat_u->tob_d); + c3_w pro_w = lss_proof_size(mev_d); + if ( 0 == nam_u->fra_d && c3y == nam_u->nit_o ) { + if ( pro_w > 1 ) { + dat_u->len_w = pro_w * sizeof(lss_hash); + c3_y* pro_y = c3_malloc(dat_u->len_w); + memcpy(pro_y, lin_u->tip_y, dat_u->len_w); + dat_u->fra_y = pro_y; + _mesa_send_pact_single(sam_u, adr_u, &pac_u); + c3_free(pro_y); + } + + // single-fragment message; just send the one data fragment + else if ( 0 == fra_d ) { + _mesa_send_leaf(sam_u, lin_u, &pac_u, 0, adr_u); + } + else { + u3l_log("mesa: weird fragment number %"PRIu64, fra_d); + } + + } else { + _mesa_send_leaf(sam_u, lin_u, &pac_u, fra_d, adr_u); + } +} + +static void +_mesa_page_scry_jumbo_cb(void* vod_p, u3_noun res) +{ + u3_scry_handle* han_u = (u3_scry_handle*)vod_p; + u3_mesa_cb_data* dat_u = (u3_mesa_cb_data*)han_u->vod_p; + u3_mesa* sam_u = dat_u->sam_u; + u3_mesa_name* nam_u = &dat_u->nam_u; + + u3_weak pag = u3r_at(7, res); + + if ( u3_none == pag ) { + // TODO: mark as dead + u3_mesa_line* lin_u = _mesa_get_jumbo_cache(sam_u, nam_u); + u3z(res); + if ( NULL == lin_u ) { + arena_free(&han_u->are_u); + return; + } + lin_u = (u3_mesa_line*)CTAG_BLOCK; + _mesa_put_jumbo_cache(sam_u, nam_u, lin_u); + arena_free(&han_u->are_u); + return; + } + u3_noun pac, pas, pof; + if ( c3n == u3r_trel(pag, &pac, &pas, &pof) || + c3n == u3a_is_pug(pac) ) { + u3l_log("mesa: jumbo frame misshapen"); + u3z(res); + arena_free(&han_u->are_u); + return; + } + + u3_mesa_line* lin_u; + { + c3_w jumbo_w = u3r_met(3, pac); + c3_y* jumbo_y = c3_calloc(jumbo_w); + u3r_bytes(0, jumbo_w, jumbo_y, pac); + + u3_mesa_pact jum_u; + c3_c* err_c = mesa_sift_pact_from_buf(&jum_u, jumbo_y, jumbo_w); + if ( err_c ) { + u3l_log("mesa: jumbo frame parse failure: %s", err_c); + arena_free(&han_u->are_u); + u3z(res); + return; + } + u3_mesa_data* dat_u = &jum_u.pag_u.dat_u; + + c3_d mev_d = mesa_num_leaves(dat_u->tob_d); // leaves in message + c3_w tip_w = // bytes in Merkle spine + (mev_d > 1 && jum_u.pag_u.nam_u.fra_d == 0)? + lss_proof_size(mev_d) * sizeof(lss_hash): + 0; + c3_w dat_w = dat_u->len_w; // bytes in fragment data in this jumbo frame + c3_w lev_w = mesa_num_leaves(dat_w); // number of leaves in this frame + c3_w haz_w = lev_w * sizeof(lss_pair); // bytes in hash pairs + c3_w len_w = tip_w + dat_w + haz_w; + + arena are_u = arena_create(sizeof(u3_mesa_line) + len_w + 2048); + + lin_u = new(&are_u, u3_mesa_line, 1); + lin_u->are_u = are_u; + _mesa_copy_name(&lin_u->nam_u, &jum_u.pek_u.nam_u, &lin_u->are_u); + lin_u->aut_u = dat_u->aut_u; + lin_u->tob_d = dat_u->tob_d; + lin_u->dat_w = dat_w; + lin_u->len_w = len_w; + lin_u->tip_y = new(&lin_u->are_u, c3_y, len_w); + lin_u->dat_y = lin_u->tip_y + tip_w; + lin_u->haz_y = lin_u->dat_y + dat_w; + memcpy(lin_u->dat_y, dat_u->fra_y, dat_u->len_w); + + c3_y* haz_y = lin_u->haz_y; + while ( pas != u3_nul ) { + u3r_bytes(0, 64, haz_y, u3h(pas)); + haz_y += 64; + pas = u3t(pas); + } + + u3r_bytes(0, tip_w, lin_u->tip_y, pof); + c3_free(jumbo_y); + + } + + _mesa_put_jumbo_cache(sam_u, nam_u, lin_u); + + u3_pit_entry* ent_u = _mesa_get_pit(sam_u, nam_u); + if ( NULL != ent_u ) { + u3_pit_addr* adr_u = ent_u->adr_u; + while (adr_u) { + _mesa_send_piece(sam_u, lin_u, nam_u, 0, adr_u->sdr_u); + adr_u = adr_u->nex_p; + } + _mesa_del_pit(sam_u, nam_u); + } + + + /* _mesa_send_jumbo_pieces(sam_u, lin_u, NULL); */ + + u3z(res); + arena_free(&han_u->are_u); + return; +} + +static void +_mesa_hear_bail(u3_ovum* egg_u, u3_noun lud) +{ + u3l_log("mesa: hear bail"); + c3_w len_w = u3qb_lent(lud); + u3l_log("len_w: %i", len_w); + if( len_w == 2 ) { + u3_pier_punt_goof("hear", u3k(u3h(lud))); + u3_pier_punt_goof("crud", u3k(u3h(u3t(lud)))); + } + u3_ovum_free(egg_u); +} + +static void +_saxo_cb(void* vod_p, u3_noun nun) +{ + u3_peer* per_u = vod_p; + u3_weak sax = u3r_at(7, nun); + + if ( sax != u3_none ) { + u3_noun her = u3h(sax); + u3_ship her_u; + u3_ship_of_noun(her_u, her); + u3_peer* new_u = _mesa_get_peer(per_u->sam_u, her_u); + if ( new_u != NULL ) { + per_u = new_u; + } else { + _mesa_put_peer(per_u->sam_u, her_u, per_u); + } + u3_mesa* sam_u = per_u->sam_u; + u3_noun gal = u3do("rear", u3k(sax)); + u3_assert( c3y == u3a_is_cat(gal) && gal < 256 ); + // both atoms guaranteed to be cats, bc we don't call unless forwarding + per_u->ful_o = c3y; + per_u->imp_y = gal; + } + + u3z(nun); +} + +static void +_forward_lanes_cb(void* vod_p, u3_noun nun) +{ + u3_peer* per_u = vod_p; + u3_mesa* sam_u = per_u->sam_u; + + u3_weak las = u3r_at(7, nun); + // u3m_p("_forward_lanes_cb", las); + + if ( las != u3_none ) { + u3_peer* new_u = _mesa_get_peer(per_u->sam_u, per_u->her_u); + if ( new_u != NULL ) { + per_u = new_u; + } + u3_noun gal = u3h(las); + u3_assert( c3y == u3a_is_cat(gal) && gal < 256 ); + // both atoms guaranteed to be cats, bc we don't call unless forwarding + per_u->ful_o = c3y; + per_u->imp_y = gal; + u3_noun sal = u3k(u3t(las)); + u3_noun lan; + while ( sal != u3_nul ) { + u3x_cell(sal, &lan, &sal); + + if ( c3n == u3a_is_cat(lan) ) { + // there should be only one lane that is not a direct atom + // + sockaddr_in lan_u = _realise_lane(u3k(lan)); + per_u->dan_u = lan_u; + } + } + u3z(sal); + _mesa_put_peer(per_u->sam_u, per_u->her_u, per_u); + } + + u3z(nun); + +} + +static void +_meet_peer(u3_mesa* sam_u, u3_peer* per_u, u3_ship her_u) +{ + u3_noun her = u3_ship_to_noun(her_u); + u3_noun gan = u3nc(u3_nul, u3_nul); + + per_u->her_u[0] = her_u[0]; + per_u->her_u[1] = her_u[1]; + + u3_noun pax = u3nc(u3dc("scot", c3__p, her), u3_nul); + u3_pier_peek_last(sam_u->pir_u, gan, c3__j, c3__saxo, pax, per_u, _saxo_cb); + +} + +static void +_get_peer_lanes(u3_mesa* sam_u, u3_peer* per_u) +{ + u3_noun her = u3_ship_to_noun(per_u->her_u); + u3_noun gan = u3nc(u3_nul, u3_nul); + u3_noun pax = u3nq(u3i_string("chums"), + u3dc("scot", 'p', her), + u3i_string("lanes"), + u3_nul); + u3m_p("pax", pax); + u3_pier_peek_last(sam_u->pir_u, gan, c3__ax, u3_nul, pax, per_u, _forward_lanes_cb); +} + +static void +_hear_peer(u3_mesa* sam_u, u3_peer* per_u, sockaddr_in lan_u, c3_o dir_o) +{ + if ( c3y == dir_o ) { + per_u->dan_u = lan_u; + per_u->dir_u.her_d = _get_now_micros(); + } else { + per_u->ind_u.her_d = _get_now_micros(); + } +} + +static void +_mesa_request_next_fragments(u3_mesa* sam_u, + u3_pend_req* req_u, + sockaddr_in lan_u) +{ + + lan_u.sin_addr.s_addr = ( u3_Host.ops_u.net == c3y ) ? lan_u.sin_addr.s_addr : htonl(0x7f000001); + + c3_w win_w = _mesa_req_get_cwnd(req_u); + u3_mesa_pict* nex_u = req_u->pic_u; + c3_w nex_d = req_u->nex_d; + /* arena scr_u = req_u->are_u; */ + /* uv_buf_t* bfs_u = new(&scr_u, uv_buf_t, win_w); */ + /* uv_buf_t** bus_u = new(&scr_u, uv_buf_t*, win_w); */ + /* struct sockaddr** ads_u = new(&scr_u, struct sockaddr*, win_w); */ + /* c3_w* int_u = new(&scr_u, c3_w, win_w); */ + c3_d now_d = _get_now_micros(); + for ( c3_w i = 0; i < win_w; i++ ) { + c3_w fra_w = nex_d + i; + if ( fra_w >= req_u->tof_d ) { + break; + } + // u3l_log("next fra_w: %u", fra_w); + nex_u->pac_u.pek_u.nam_u.fra_d = fra_w; + uv_buf_t buf_u = _mesa_peek_buf(req_u->pek_c, nex_d+i, req_u->pek_w); + if (buf_u.base < req_u->pek_c) { + u3l_log("peek overflow, dying, fragment %u", nex_d+i); + abort(); + } + mesa_etch_pact_to_buf((c3_y*)buf_u.base, buf_u.len, &nex_u->pac_u); + /* bfs_u[i] = buf_u; */ + /* bus_u[i] = &bfs_u[i]; */ + /* ads_u[i] = (struct sockaddr*)&lan_u; */ + /* int_u[i] = 1; */ + _mesa_req_pact_sent(req_u, fra_w, now_d); + + /* _mesa_send_buf3(req_u->per_u->dan_u, buf_u, req_u, fra_w); */ + _mesa_send_modal(req_u->per_u, buf_u, NULL); + /* _mesa_send(nex_u, lan_u); */ + } + /* if ( i > 0 ) { */ + /* c3_i sen_i = _mesa_send_buf2(ads_u, bus_u, int_u, i); */ + /* for (c3_w i = 0; i < sen_i; i++) { */ + /* c3_w fra_w = nex_d + i; */ + /* _mesa_req_pact_sent(req_u, fra_w, now_d); */ + /* } */ + /* } */ +} + +static void +_mesa_veri_scry_cb(void* vod_p, u3_noun nun) +{ + u3_mesa_cb_data* ver_u = vod_p; + #ifndef PACKET_TEST + u3_pend_req* req_u = _mesa_get_request(ver_u->sam_u, &ver_u->nam_u); + if ( !req_u ) { + return; + } + else if ( c3y == nun ) { // XX + _mesa_request_next_fragments(ver_u->sam_u, req_u, ver_u->lan_u); + } + else if ( c3n == nun ) { + u3l_log("mesa: packet auth failed verification"); + // TODO: wipe request state? (If this was an imposter, + // we don't want to punish the real peer.) + } + else { + u3l_log("mesa: %%veri returned strange value"); + } + #endif + c3_free(ver_u); +} + +static void +_mesa_req_pact_init(u3_mesa* sam_u, u3_mesa_pict* pic_u, sockaddr_in lan_u, u3_peer* per_u) +{ + sam_u->tim_d = _get_now_micros(); + u3_mesa_pact* pac_u = &pic_u->pac_u; + u3_mesa_name* nam_u = &pac_u->pag_u.nam_u; + u3_mesa_data* dat_u = &pac_u->pag_u.dat_u; + + u3_gage* gag_u = _mesa_get_gage(sam_u, nam_u->her_u); + if ( gag_u == NULL ) { + gag_u = new(&sam_u->par_u, u3_gage, 1); + _init_gage(gag_u); + _mesa_put_gage(sam_u, nam_u->her_u, gag_u); + u3_assert( gag_u != NULL ); + } + + // _log_gage(gag_u); + u3_mesa_pact exa_u; + exa_u.hed_u.typ_y = PACT_PEEK; + exa_u.pek_u.nam_u = *nam_u; + exa_u.pek_u.nam_u.fra_d = 0; + exa_u.pek_u.nam_u.nit_o = c3n; + exa_u.pek_u.nam_u.aut_o = c3n; + c3_w pek_w = mesa_size_pact(&exa_u); + c3_d tof_d = mesa_num_leaves(dat_u->tob_d); + c3_w pof_w = lss_proof_size(tof_d); + c3_w pairs_w = c3_bits_word(pof_w); + c3_d pek_d = dat_u->tob_d; + arena are_u = arena_create(5*dat_u->tob_d); + u3_pend_req* req_u = new(&are_u, u3_pend_req, 1); + req_u->are_u = are_u; + req_u->pic_u = new(&req_u->are_u, u3_mesa_pict, 1); + req_u->pic_u->sam_u = sam_u; + req_u->pic_u->pac_u.hed_u.typ_y = PACT_PEEK; + req_u->pic_u->pac_u.hed_u.pro_y = MESA_VER; + req_u->pic_u->pac_u.pek_u.nam_u = *(_mesa_copy_name_alloc(nam_u, &req_u->are_u)); + req_u->pic_u->pac_u.pek_u.nam_u.aut_o = c3n; + req_u->pic_u->pac_u.pek_u.nam_u.nit_o = c3n; + req_u->aut_u = dat_u->aut_u; + + uv_timer_init(u3L, &req_u->tim_u); + + u3_assert( pac_u->pag_u.nam_u.boq_y == 13 ); + req_u->gag_u = gag_u; + req_u->tob_d = dat_u->tob_d; + /* req_u->out_d = 4000; */ + req_u->out_d = 0; + req_u->tof_d = mesa_num_leaves(dat_u->tob_d); // NOTE: only correct for bloq 13! + assert( req_u->tof_d != 1 ); // these should be injected directly by _mesa_hear_page + req_u->dat_y = new(&req_u->are_u, c3_y, dat_u->tob_d); + req_u->mis_u = new(&req_u->are_u, lss_pair, tof_d); + memset(req_u->mis_u, 0, sizeof(lss_pair)*tof_d); + req_u->wat_u = new(&req_u->are_u, u3_pact_stat, req_u->tof_d + 2); + bitset_init(&req_u->was_u, req_u->tof_d, &req_u->are_u); + + // TODO: handle restart + // u3_assert( nam_u->fra_w == 0 ); + + req_u->nex_d = 0; + req_u->hav_d = 0; + req_u->lef_d = 0; + req_u->old_d = 0; + req_u->ack_d = 0; + + lss_hash* pof_u = new(&req_u->are_u, lss_hash, pof_w); + if ( dat_u->len_w != pof_w*sizeof(lss_hash) ) { + return; // TODO: handle like other auth failures + } + for ( int i = 0; i < pof_w; i++ ) { + memcpy(pof_u[i], dat_u->fra_y + (i * sizeof(lss_hash)), sizeof(lss_hash)); + } + lss_hash root; + lss_root(root, pof_u, pof_w); + req_u->los_u = new(&req_u->are_u, lss_verifier, 1); + lss_verifier_init(req_u->los_u, 0, req_u->tof_d, pof_u, &req_u->are_u); + + req_u->pek_w = pek_w; + req_u->pek_d = pek_d; + req_u->pek_c = new(&req_u->are_u, c3_c, pek_d); + + req_u->per_u = per_u; + + _mesa_put_request(sam_u, &req_u->pic_u->pac_u.pek_u.nam_u, req_u); + _update_resend_timer(req_u); + + // scry to verify auth + u3_noun typ, aut; + switch ( dat_u->aut_u.typ_e ) { + case AUTH_SIGN: + typ = c3__sign; + aut = u3dc("scot", c3__uv, u3i_bytes(64, dat_u->aut_u.sig_y)); + break; + case AUTH_HMAC: + typ = c3__hmac; + aut = u3dc("scot", c3__uv, u3i_bytes(16, dat_u->aut_u.mac_y)); + break; + default: + return; // TODO: handle like other auth failures + } + u3_noun her = u3dc("scot", c3__p, u3_ship_to_noun(nam_u->her_u)); + u3_noun rut = u3dc("scot", c3__uv, u3i_bytes(32, root)); + u3_noun pax = _mesa_encode_path(nam_u->pat_s, (c3_y*)nam_u->pat_c); + u3_noun sky = u3i_list(typ, her, aut, rut, pax, u3_none); + u3_mesa_cb_data* ver_u = c3_malloc(sizeof(u3_mesa_cb_data)); + ver_u->sam_u = sam_u; + ver_u->nam_u = req_u->pic_u->pac_u.pek_u.nam_u; + ver_u->lan_u = lan_u; + u3_pier_peek_last(sam_u->pir_u, u3_nul, c3__a, c3__veri, sky, ver_u, _mesa_veri_scry_cb); +} + +typedef struct _u3_mesa_lane_cb_data { + u3_lane lan_u; + u3_peer* per_u; +} u3_mesa_lane_cb_data; + +static void +_mesa_page_bail_cb(u3_ovum* egg_u, u3_ovum_news new_e) +{ + u3l_log("mesa: arvo page event failed"); +} + +static void +_mesa_add_hop(c3_y hop_y, u3_mesa_head* hed_u, u3_mesa_page_pact* pag_u, sockaddr_in lan_u) +{ + c3_w pip_w = ntohl(lan_u.sin_addr.s_addr); + c3_s por_s = ntohs(lan_u.sin_port); + c3_etch_word(pag_u->sot_u, pip_w); + c3_etch_short(pag_u->sot_u + 4, por_s); + hed_u->nex_y = HOP_SHORT; +} + +/* static c3_d avg_time() { */ +/* c3_d sum = 0; */ +/* c3_w i; */ +/* for (i = 0; tim_y[i] != 0; i++) { */ +/* if (tim_y[i] > 1000) { */ +/* u3l_log("dingding fra %u time %"PRIu64, i, tim_y[i]); */ +/* } */ +/* sum += tim_y[i]; */ +/* } */ +/* return sum / i; */ +/* } */ + +static void +_mesa_forward_request(u3_mesa* sam_u, u3_mesa_pict* pic_u, sockaddr_in lan_u) +{ + u3_mesa_pact* pac_u = &pic_u->pac_u; + u3_peer* per_u = _mesa_get_peer(sam_u, pac_u->pek_u.nam_u.her_u); + if ( !per_u ) { + #ifdef MESA_DEBUG + c3_c* mes = u3_ship_to_string(pac_u->pek_u.nam_u.her_u); + u3l_log("mesa: alien forward for %s; meeting ship", mes); + c3_free(mes); + #endif + per_u = new(&sam_u->par_u, u3_peer, 1); + _init_peer(sam_u, per_u); + per_u->her_u[0] = pac_u->pek_u.nam_u.her_u[0]; + per_u->her_u[1] = pac_u->pek_u.nam_u.her_u[1]; + + _get_peer_lanes(sam_u, per_u); // forward-lanes + return; + } + if ( c3y == sam_u->for_o && sam_u->pir_u->who_d[0] == per_u->imp_y ) { + // if ( c3y == sam_u->for_o ) { + sockaddr_in lin_u = _mesa_get_direct_lane(sam_u, pac_u->pek_u.nam_u.her_u); + if ( _mesa_is_lane_zero(lin_u) == c3y) { + c3_c* shp_c = u3_ship_to_string(pac_u->pek_u.nam_u.her_u); + u3l_log("zero lane for %s", shp_c); + c3_free(shp_c); + return; + } + inc_hopcount(&pac_u->hed_u); + #ifdef MESA_DEBUG + u3l_log("mesa: forward_request()"); + // _log_lane(&lan_u); + #endif + + #ifdef MESA_DEBUG + c3_c* sip_c = inet_ntoa(lin_u.sin_addr); + u3l_log("mesa: sending packet to %s:%u", sip_c, ntohs(lin_u.sin_port)); + #endif + + _mesa_add_lane_to_pit(sam_u, &pac_u->pek_u.nam_u, lan_u); + _mesa_send(pic_u, lin_u); + } +} + +static void +_mesa_hear_page(u3_mesa_pict* pic_u, sockaddr_in lan_u) +{ + #ifdef MESA_DEBUG + u3l_log("mesa: hear_page()"); + // log_pact(&pic_u->pac_u); + u3_assert( PACT_PAGE == pic_u->pac_u.hed_u.typ_y ); + #endif + + u3_mesa* sam_u = pic_u->sam_u; + u3_mesa_pact* pac_u = &pic_u->pac_u; + u3_mesa_name* nam_u = &pac_u->pag_u.nam_u; + + c3_o our_o = u3_ships_equal(nam_u->her_u, sam_u->pir_u->who_d); + + u3_peer* per_u = _mesa_get_peer(sam_u, nam_u->her_u); + c3_o new_o = c3n; + if ( NULL == per_u ) { + new_o = c3y; + per_u = new(&sam_u->par_u, u3_peer, 1); + _init_peer(sam_u, per_u); + _meet_peer(sam_u, per_u, nam_u->her_u); + } + + c3_o dir_o = __(pac_u->hed_u.hop_y == 0); + // if ( pac_u->hed_u.hop_y == 0 ) { + // u3l_log(" received direct page"); + // } else { + // u3l_log(" received forwarded page"); + // } + _hear_peer(sam_u, per_u, lan_u, dir_o); + + if ( new_o == c3y ) { + //u3l_log("new lane is direct %c", c3y == dir_o ? 'y' : 'n'); + //_log_lane(&lan_u); + } + + _mesa_put_peer(sam_u, nam_u->her_u, per_u); + + u3_pit_entry* pin_u = _mesa_get_pit(sam_u, nam_u); + + if ( NULL != pin_u ) { + #ifdef MESA_DEBUG + u3l_log(" forwarding page"); + #endif + + inc_hopcount(&pac_u->hed_u); + c3_etch_word(pac_u->pag_u.sot_u, ntohl(lan_u.sin_addr.s_addr)); + c3_etch_short(pac_u->pag_u.sot_u + 4, ntohs(lan_u.sin_port)); + + // stick next hop in packet + + _mesa_add_hop(pac_u->hed_u.hop_y, &pac_u->hed_u, &pac_u->pag_u, lan_u); + + _mesa_send_pact(sam_u, pin_u->adr_u, NULL, pac_u); + _mesa_del_pit(sam_u, nam_u); + } + + c3_d lev_d = mesa_num_leaves(pac_u->pag_u.dat_u.tob_d); + u3_pend_req* req_u = _mesa_get_request(sam_u, nam_u); + if ( !req_u ) { + return; + } + if ( (u3_pend_req*)CTAG_WAIT == req_u ) { + if (0 != nam_u->fra_d) { + return; + } + // process incoming response to ourselves + // if single-leaf message, inject directly into Arvo + c3_d lev_d = mesa_num_leaves(pac_u->pag_u.dat_u.tob_d); + if ( 1 == lev_d ) { + u3_noun cad; + { + u3_noun lan = u3_mesa_encode_lane(lan_u); + + // XX should just preserve input buffer + u3i_slab sab_u; + u3i_slab_init(&sab_u, 3, PACT_SIZE); + mesa_etch_pact_to_buf(sab_u.buf_y, PACT_SIZE, pac_u); + cad = u3nt(c3__heer, lan, u3i_slab_mint(&sab_u)); + } + + u3_noun wir = u3nc(c3__ames, u3_nul); + + u3_ovum* ovo = u3_ovum_init(0, c3__ames, wir, cad); + ovo = u3_auto_plan(&sam_u->car_u, ovo); + + // early deletion, to avoid injecting retries, + // (in case of failure, the retry timer will add it again to the PIT) + // + _mesa_del_request(sam_u, nam_u); + u3_auto_peer(ovo, 0, 0, _mesa_page_bail_cb); + return; + } + + + c3_d now_d = _get_now_micros(); + _mesa_req_pact_init(sam_u, pic_u, lan_u, per_u); + return; + } + + if ( c3y == nam_u->nit_o ) { + /* u3l_log("dupe init"); */ + return; + } + + sockaddr_in lon_u = {0}; + if ( HOP_SHORT == pac_u->hed_u.nex_y ) { + lon_u.sin_family = AF_INET; + lon_u.sin_addr.s_addr = htonl(c3_sift_word(pac_u->pag_u.sot_u)); + lon_u.sin_port = htons(c3_sift_short(pac_u->pag_u.sot_u + 4)); + } + else { + lon_u = lan_u; + } + _mesa_req_pact_done(req_u, + nam_u, + &pac_u->pag_u.dat_u, + pac_u->hed_u.hop_y, + lon_u); + // TODO: check return value before continuing? + + c3_y boq_y = 31; + // c3_o done_with_jumbo_frame = __(0 == req_u->hav_d % boq_y); + c3_o done_with_jumbo_frame = __(req_u->hav_d == req_u->tof_d); // TODO: fix for non-message-sized jumbo frames + if ( c3y == done_with_jumbo_frame ) { + u3_noun cad; + + // u3l_log(" received last packet, tof_d: %" PRIu64 " tob_d: %" PRIu64, + // req_u->tof_d, + // req_u->tob_d); + + /* c3_d now_d = _get_now_micros(); */ + /* u3l_log("%" PRIu64 " kilobytes took %f ms", */ + /* req_u->tof_d, */ + /* (now_d - sam_u->tim_d)/1000.0); */ + // u3l_log("page handling took %"PRIu64, avg_time()); + //done = c3y; + + #ifndef PACKET_TEST + { + // construct jumbo frame + u3_noun lan = u3_mesa_encode_lane(lan_u); + u3_noun pac; + { + pac_u->pag_u.nam_u.boq_y = boq_y; + pac_u->pag_u.dat_u.tob_d = req_u->tob_d; + pac_u->pag_u.nam_u.fra_d = (req_u->hav_d >> boq_y); + pac_u->pag_u.dat_u.len_w = req_u->tob_d; + pac_u->pag_u.dat_u.fra_y = req_u->dat_y; + pac_u->pag_u.dat_u.aut_u = req_u->aut_u; + + c3_y* buf_y = c3_calloc(mesa_size_pact(pac_u)); + c3_w res_w = mesa_etch_pact_to_buf(buf_y, mesa_size_pact(pac_u), pac_u); + pac = u3i_bytes(res_w, buf_y); + c3_free(buf_y); + } + cad = u3nt(c3__heer, lan, pac); + } + + + _mesa_del_request(sam_u, &pac_u->pag_u.nam_u); + + u3_auto_plan(&sam_u->car_u, + u3_ovum_init(0, c3__ames, u3nc(c3__ames, u3_nul), cad)); + #else + _mesa_del_request(sam_u, &pac_u->pag_u.nam_u); + #endif + } else if ( req_u->hav_d < lev_d ) { + _mesa_request_next_fragments(sam_u, req_u, lan_u); + } +} + +static void +_mesa_hear_peek(u3_mesa_pict* pic_u, sockaddr_in lan_u) +{ + #ifdef MESA_DEBUG + u3l_log("mesa: hear_peek()"); + u3_assert( PACT_PEEK == pic_u->pac_u.hed_u.typ_y ); + #endif + + u3_mesa_pact* pac_u = &pic_u->pac_u; + u3_mesa* sam_u = pic_u->sam_u; + c3_o our_o = u3_ships_equal(pac_u->pek_u.nam_u.her_u, sam_u->pir_u->who_d); + + if ( c3n == our_o ) { + _mesa_forward_request(sam_u, pic_u, lan_u); + return; + } + + c3_d fra_d = pac_u->pek_u.nam_u.fra_d; + c3_d bat_d = _mesa_lop(fra_d); + + pac_u->pek_u.nam_u.fra_d = bat_d; + + /* u3l_log("hear peek fra %llu", fra_d); */ + + // if we have the page, send it + u3_mesa_line* lin_u = _mesa_get_jumbo_cache(sam_u, &pac_u->pek_u.nam_u); + + if ( ( (u3_mesa_line*)CTAG_WAIT == lin_u )) { + return; + } + + if ( ( NULL != lin_u && (u3_mesa_line*)CTAG_BLOCK != lin_u)) { + _mesa_send_piece(sam_u, lin_u, &pac_u->pek_u.nam_u, fra_d, lan_u); + return; + } + + + // record interest + _mesa_add_lane_to_pit(sam_u, &pac_u->pek_u.nam_u, lan_u); + + // otherwise, if blocked or NULL scry + lin_u = (u3_mesa_line*)CTAG_WAIT; + /* _mesa_copy_name(&lin_u->nam_u, &pac_u->pek_u.nam_u); // XX */ + + _mesa_put_jumbo_cache(sam_u, &pac_u->pek_u.nam_u, lin_u); + u3_noun sky = _name_to_jumbo_scry(&pac_u->pek_u.nam_u); + u3_noun our = u3i_chubs(2, sam_u->car_u.pir_u->who_d); + u3_noun bem = u3nc(u3nt(our, u3_nul, u3nc(c3__ud, 1)), sky); + + arena are_u = arena_create(sizeof(u3_mesa_cb_data) + 1024); + u3_scry_handle* han_u = new(&are_u, u3_scry_handle, 1); + han_u->are_u = are_u; + u3_mesa_cb_data* dat_u = new(&han_u->are_u, u3_mesa_cb_data, 1); + han_u->vod_p = dat_u; + dat_u->sam_u = sam_u; + _mesa_copy_name(&dat_u->nam_u, &pac_u->pek_u.nam_u, &han_u->are_u); + + u3_pier_peek(sam_u->car_u.pir_u, u3_nul, u3k(u3nq(1, c3__beam, c3__ax, bem)), han_u, _mesa_page_scry_jumbo_cb); +} + +static void +_mesa_poke_bail_cb(u3_ovum* egg_u, u3_noun lud) +{ + // XX failure stuff here + u3l_log("mesa: poke failure"); +} + +static void +_mesa_hear_poke(u3_mesa_pict* pic_u, sockaddr_in lan_u) +{ + u3_mesa_pact* pac_u = &pic_u->pac_u; + u3_mesa* sam_u = pic_u->sam_u; + + #ifdef MESA_DEBUG + u3l_log("mesa: hear_poke()"); + u3_assert( PACT_POKE == pac_u->hed_u.typ_y ); + #endif + + c3_o our_o = u3_ships_equal(pac_u->pek_u.nam_u.her_u, sam_u->pir_u->who_d); + + if ( c3n == our_o ) { + _mesa_forward_request(sam_u, pic_u, lan_u); + return; + } + // TODO check if lane already in pit, drop dupes + _mesa_add_lane_to_pit(sam_u, &pac_u->pek_u.nam_u, lan_u); + + // XX if this lane management stuff is necessary + // it should be deferred to after successful event processing + u3_peer* per_u = _mesa_get_peer(sam_u, pac_u->pok_u.pay_u.her_u); + c3_o new_o = c3n; + if ( NULL == per_u ) { + new_o = c3y; + per_u = new(&sam_u->par_u, u3_peer, 1); + _init_peer(sam_u, per_u); + _meet_peer(sam_u, per_u, pac_u->pok_u.pay_u.her_u); + } + + c3_o dir_o = __(pac_u->hed_u.hop_y == 0); + if ( pac_u->hed_u.hop_y == 0 ) { + new_o = c3y; + _hear_peer(sam_u, per_u, lan_u, dir_o); + // u3l_log("learnt lane"); + } else { + // u3l_log("received forwarded poke"); + } + if ( new_o == c3y ) { + // u3l_log("new lane is direct %c", c3y == dir_o ? 'y' : 'n'); + // _log_lane(lan_u); + } + // XX _meet_peer, in the _saxo_cb, is already putting the peer in her_p + // + _mesa_put_peer(sam_u, pac_u->pok_u.pay_u.her_u, per_u); + + u3_pend_req* req_u = _mesa_get_request(sam_u, &pac_u->pok_u.pay_u); + if ( req_u != NULL) { + // u3l_log("req pending"); + return; + } + + u3_ovum_peer nes_f; + u3_ovum_bail bal_f; + void* ptr_v; + + u3_noun wir = u3nc(c3__ames, u3_nul); + u3_noun cad; + { + u3_noun lan = u3_mesa_encode_lane(lan_u); + u3i_slab sab_u; + u3i_slab_init(&sab_u, 3, PACT_SIZE); + + // XX should just preserve input buffer + mesa_etch_pact_to_buf(sab_u.buf_y, PACT_SIZE, pac_u); + cad = u3nt(c3__heer, lan, u3i_slab_mint(&sab_u)); + } + + u3_ovum* ovo = u3_ovum_init(0, c3__ames, wir, cad); + ovo = u3_auto_plan(&sam_u->car_u, ovo); + + // XX check request state for *payload* (in-progress duplicate) + assert(pac_u->pok_u.dat_u.tob_d); + + u3_auto_peer(ovo, 0, 0, _mesa_poke_bail_cb); +} + +void +_ames_hear(void* sam_u, + const struct sockaddr* adr_u, + c3_w len_w, + c3_y* hun_y); + +static void +_mesa_hear(u3_mesa* sam_u, + const struct sockaddr* adr_u, + c3_w len_w, + c3_y* hun_y) +{ + /* fwrite(&len_w, 4, 1, packs); */ + /* fwrite(hun_y, 1, len_w, packs); */ + // c3_d now_d = _get_now_micros(); + if ( c3n == mesa_is_new_pact(hun_y, len_w) ) { + c3_y* han_y = c3_malloc(len_w); + memcpy(han_y, hun_y, len_w); + _ames_hear(u3_Host.sam_u, adr_u, len_w, han_y); + return; + } + + u3_mesa_pict* pic_u = new(&sam_u->are_u, u3_mesa_pict, 1); + pic_u->sam_u = sam_u; + c3_c* err_c = mesa_sift_pact_from_buf(&pic_u->pac_u, hun_y, len_w); + if ( err_c ) { + u3l_log("mesa: hear: sift failed: %s", err_c); + return; + } + + sockaddr_in sdr_u = *((sockaddr_in*)adr_u); + + switch ( pic_u->pac_u.hed_u.typ_y ) { + case PACT_PEEK: { + _mesa_hear_peek(pic_u, sdr_u); + } break; + case PACT_PAGE: { + _mesa_hear_page(pic_u, sdr_u); + } break; + default: { + _mesa_hear_poke(pic_u, sdr_u); + } break; + } + // if (done == c3n) { + // if (tidx < 200000) { + // tim_y[tidx] = _get_now_micros() - now_d; + // tidx++; + // } else { + // u3l_log("peek handling took %"PRIu64, avg_time()); + // tidx = 0; + // } + // } else { + // tidx = 0; + // done = c3n; + // } +} + +static void _mesa_recv_cb(uv_udp_t* wax_u, + ssize_t nrd_i, + const uv_buf_t * buf_u, + const struct sockaddr* adr_u, + unsigned flg_i) +{ + u3_mesa* sam_u = (u3_mesa*)wax_u->data; + if ( 0 > nrd_i ) { + if ( u3C.wag_w & u3o_verbose ) { + u3l_log("mesa: recv: fail: %s", uv_strerror(nrd_i)); + } + } + else if ( 0 == nrd_i ) { + } + else if ( flg_i & UV_UDP_PARTIAL ) { + if ( u3C.wag_w & u3o_verbose ) { + u3l_log("mesa: recv: fail: message truncated"); + } + } + else { + _mesa_hear(wax_u->data, adr_u, (c3_w)nrd_i, (c3_y*)buf_u->base); + } +} + +static void +_mesa_io_talk(u3_auto* car_u) +{ + u3_mesa* sam_u = (u3_mesa*)car_u; + sam_u->dns_c = "urbit.org"; // TODO: receive turf + { + // XX remove [sev_l] + // + u3_noun wir = u3nc(c3__ames, u3_nul); + u3_noun cad = u3nc(c3__born, u3_nul); + + u3_auto_plan(car_u, u3_ovum_init(0, c3__a, wir, cad)); + } + u3_noun who = u3i_chubs(2, sam_u->pir_u->who_d); + u3_noun rac = u3do("clan:title", u3k(who)); + c3_s por_s = sam_u->pir_u->por_s; + c3_i ret_i; + if ( c3__czar == rac ) { + c3_y num_y = (c3_y)sam_u->pir_u->who_d[0]; + c3_s zar_s = _ames_czar_port(num_y); + + if ( 0 == por_s ) { + por_s = zar_s; + } + else if ( por_s != zar_s ) { + u3l_log("ames: czar: overriding port %d with -p %d", zar_s, por_s); + u3l_log("ames: czar: WARNING: %d required for discoverability", zar_s); + } + } + + + // Bind and stuff. + { + struct sockaddr_in add_u; + c3_i add_i = sizeof(add_u); + + memset(&add_u, 0, sizeof(add_u)); + add_u.sin_family = AF_INET; + add_u.sin_addr.s_addr = _(u3_Host.ops_u.net) ? + htonl(INADDR_ANY) : + htonl(INADDR_LOOPBACK); + add_u.sin_port = htons(por_s); + + if ( (ret_i = uv_udp_bind(&u3_Host.wax_u, + (const struct sockaddr*)&add_u, 0)) != 0 ) + { + u3l_log("mesa: bind: %s", uv_strerror(ret_i)); + + /*if ( (c3__czar == rac) && + (UV_EADDRINUSE == ret_i) ) + { + u3l_log(" ...perhaps you've got two copies of vere running?"); + }*/ + + // XX revise + // + u3_pier_bail(u3_king_stub()); + } + + uv_udp_getsockname(&u3_Host.wax_u, (struct sockaddr *)&add_u, &add_i); + u3_assert(add_u.sin_port); + + sam_u->pir_u->por_s = ntohs(add_u.sin_port); + } + if ( c3y == u3_Host.ops_u.net ) { + u3l_log("mesa: live on %d", sam_u->pir_u->por_s); + } + else { + u3l_log("mesa: live on %d (localhost only)", sam_u->pir_u->por_s); + } + + u3_Host.wax_u.data = sam_u; + uv_udp_recv_start(&u3_Host.wax_u, _mesa_alloc, _mesa_recv_cb); + + c3_i rec_i = 2 * 1024 * 1024; + uv_recv_buffer_size((uv_handle_t*)&u3_Host.wax_u, &rec_i); + + uv_send_buffer_size((uv_handle_t*)&u3_Host.wax_u, &rec_i); + + sam_u->car_u.liv_o = c3y; + //u3z(rac); u3z(who); +} + +static void _mesa_clear_pit(uv_timer_t *tim_u) +{ + u3_mesa* sam_u = (u3_mesa*)tim_u->data; + pit_map_itr itr_u = vt_first( &sam_u->pit_u ); + + c3_d now_d = _get_now_micros(); + + while (!vt_is_end(itr_u)) { + u3_pit_entry* pit_u = itr_u.data->val; + if ( (now_d - pit_u->tim_d) > PIT_EXPIRE_MICROS) { + itr_u = vt_erase_itr(&sam_u->pit_u, itr_u); + } else { + itr_u = vt_next(itr_u); + } + } +} + +/* _mesa_io_init(): initialize ames I/O. +*/ +u3_auto* +u3_mesa_io_init(u3_pier* pir_u) +{ + u3l_log("mesa: INIT"); + /* packs = fopen("/home/ec2-user/pages.packs", "rb"); */ + arena par_u = arena_create(67108864); + u3_mesa* sam_u = new(&par_u, u3_mesa, 1); + sam_u->par_u = par_u; + sam_u->pir_u = pir_u; + + arena are_u; + are_u.dat = (char*)are_y; + are_u.beg = (char*)are_y; + are_u.end = (char*)(are_y + 524288); + sam_u->are_u = are_u; + + sam_u->jum_d = 0; + + uv_timer_init(u3L, &sam_u->tim_u); + + // clear pit every 30 seconds + sam_u->tim_u.data = sam_u; + uv_timer_start(&sam_u->tim_u, _mesa_clear_pit, 30000, 30000); + + vt_init(&sam_u->pit_u); + vt_init(&sam_u->per_u); + vt_init(&sam_u->gag_u); + vt_init(&sam_u->jum_u); + vt_init(&sam_u->req_u); + + // Disable networking for fake ships + // + if ( c3y == sam_u->pir_u->fak_o ) { + u3_Host.ops_u.net = c3n; + } + + sam_u->for_o = c3n; + { + u3_noun her = u3i_chubs(2, pir_u->who_d); + if ( c3y == u3a_is_cat(her) && her < 256 ) { + u3l_log("mesa: forwarding enabled"); + sam_u->for_o = c3y; + } + u3z(her); + } + + + u3_auto* car_u = &sam_u->car_u; + memset(car_u, 0, sizeof(*car_u)); + car_u->nam_m = c3__ames; + car_u->liv_o = c3y; + car_u->io.talk_f = _mesa_io_talk; + car_u->io.info_f = _mesa_io_info; + car_u->io.slog_f = _mesa_io_slog; + car_u->io.kick_f = _mesa_io_kick; + car_u->io.exit_f = _mesa_io_exit; + + + + /*{ + u3_noun now; + struct timeval tim_u; + gettimeofday(&tim_u, 0); + + now = u3_time_in_tv(&tim_u); + //sam_u->sev_l = u3r_mug(now); + u3z(now); + }*/ + + return car_u; +} diff --git a/vere/pkg/vere/io/mesa/bitset.c b/vere/pkg/vere/io/mesa/bitset.c new file mode 100644 index 0000000..9e78689 --- /dev/null +++ b/vere/pkg/vere/io/mesa/bitset.c @@ -0,0 +1,124 @@ +#include "bitset.h" +#include + +#include "vere.h" + +void bitset_init(u3_bitset* bit_u, c3_w len_w, arena* are_u) +{ + bit_u->len_w = len_w; + bit_u->buf_y = new(are_u, c3_y, (len_w >> 3) + 1); + memset(bit_u->buf_y, 0, (len_w >> 3) + 1); +} + +static c3_y +_popcnt(c3_y num_y) +{ + return __builtin_popcount(num_y); +} + +static void +_log_bitset(u3_bitset* bit_u) +{ + c3_w cur_w = 0; + while( cur_w < bit_u->len_w ) { + if ( c3y == bitset_has(bit_u, cur_w) ) { + u3l_log("%u", cur_w); + } + cur_w++; + } +} + +c3_w +bitset_wyt(u3_bitset* bit_u) +{ + c3_w ret_w = 0; + c3_w len_w = (bit_u->len_w >> 3); + for(int i = 0; i < len_w; i++ ) { + ret_w += _popcnt(bit_u->buf_y[i]); + } + return ret_w; +} + +void bitset_put(u3_bitset* bit_u, c3_w mem_w) +{ + if (( mem_w > bit_u->len_w )) { + u3l_log("overrun %u, %u", mem_w, bit_u->len_w); + return; + } + c3_w idx_w = mem_w >> 3; + c3_w byt_y = bit_u->buf_y[idx_w]; + c3_y rem_y = mem_w & 0x7; + c3_y mas_y = (1 << rem_y); + bit_u->buf_y[idx_w] = byt_y | mas_y; +} + +c3_o +bitset_has(u3_bitset* bit_u, c3_w mem_w) { + if (( mem_w > bit_u->len_w )) { + u3l_log("overrun %u, %u", mem_w, bit_u->len_w); + return c3n; + } + + u3_assert( mem_w < bit_u->len_w ); + c3_w idx_w = mem_w >> 3; + c3_y rem_y = mem_w & 0x7; + return __( (bit_u->buf_y[idx_w] >> rem_y) & 0x1); +} + +void +bitset_del(u3_bitset* bit_u, c3_w mem_w) +{ + u3_assert( mem_w < bit_u->len_w ); + c3_w idx_w = mem_w >> 3; + c3_w byt_y = bit_u->buf_y[idx_w]; + c3_y rem_y = mem_w & 0x7; + c3_y mas_y = ~(1 << rem_y); + bit_u->buf_y[idx_w] &= mas_y; +} + + + + +#ifdef BITSET_TEST +c3_w main() +{ + u3_bitset bit_u; + bitset_init(&bit_u, 500); + + bitset_put(&bit_u, 5); + bitset_put(&bit_u, 50); + bitset_put(&bit_u, 100); + + c3_w wyt_w = bitset_wyt(&bit_u); + if ( 3 != wyt_w ) { + u3l_log("wyt failed have %u expect %u", wyt_w, 3); + exit(1); + } + + if ( c3y == bitset_has(&bit_u, 3) ) { + u3l_log("false positive for has_bitset"); + exit(1); + } + + if ( c3n == bitset_has(&bit_u, 50) ) { + u3l_log("false negative for has_bitset"); + exit(1); + } + + bitset_del(&bit_u, 50); + + if ( c3y == bitset_has(&bit_u, 50) ) { + u3l_log("false positive for has_bitset"); + exit(1); + } + + wyt_w = bitset_wyt(&bit_u); + + if ( 2 != wyt_w ) { + u3l_log("wyt failed have %u expect %u", wyt_w, 2); + exit(1); + } + return 0; +} + +#endif diff --git a/vere/pkg/vere/io/mesa/bitset.h b/vere/pkg/vere/io/mesa/bitset.h new file mode 100644 index 0000000..ed523b8 --- /dev/null +++ b/vere/pkg/vere/io/mesa/bitset.h @@ -0,0 +1,24 @@ +#ifndef VERE_BITSET_H +#define VERE_BITSET_H + +#include "c3/c3.h" +#include "arena.h" + +typedef struct _u3_bitset { + c3_w len_w; + c3_y* buf_y; +} u3_bitset; + +void bitset_init(u3_bitset* bit_u, c3_w len_w, arena* are_u); + +void bitset_free(u3_bitset* bit_u); + +c3_w bitset_wyt(u3_bitset* bit_u); + +void bitset_put(u3_bitset* bit_u, c3_w mem_w); + +c3_o bitset_has(u3_bitset* bit_u, c3_w mem_w); + +void bitset_del(u3_bitset* bit_u, c3_w mem_w); + +#endif diff --git a/vere/pkg/vere/io/mesa/mesa.h b/vere/pkg/vere/io/mesa/mesa.h new file mode 100644 index 0000000..c7c3d07 --- /dev/null +++ b/vere/pkg/vere/io/mesa/mesa.h @@ -0,0 +1,175 @@ +#ifndef VERE_MESA_H +#define VERE_MESA_H + +#include "c3/c3.h" +#include "ship.h" + +#define MESA_VER 1 +#define FINE_PAGE 4096 // packets per page +#define FINE_FRAG 1024 // bytes per fragment packet +#define FINE_PATH_MAX 384 // longest allowed scry path +#define HEAD_SIZE 4 // header size in bytes +#define PACT_SIZE 1472 + +static c3_w MESA_COOKIE = 0x67e00200; + +typedef enum _u3_mesa_ptag { + PACT_RESV = 0, + PACT_PAGE = 1, + PACT_PEEK = 2, + PACT_POKE = 3, +} u3_mesa_ptag; + +typedef enum _u3_mesa_rout_tag { + ROUT_GALAXY = 0, + ROUT_OTHER = 1 +} u3_mesa_rout_tag; + +typedef enum _u3_mesa_hop_type { + HOP_NONE = 0, + HOP_SHORT = 1, + HOP_LONG = 2, + HOP_MANY = 3 +} u3_mesa_hop_type; + +typedef struct _u3_str { + c3_c* str_c; + c3_w len_w; +} u3_str; + +typedef struct _u3_mesa_name_meta { + c3_y ran_y; // rank (2 bits) + c3_y rif_y; // rift-len (2 bits) + c3_y nit_y; // initial overlay (1 bit) + c3_y tau_y; // %data (0) or %auth (1), 0 if !nit_o (1 bit) + c3_y gaf_y; // fragment number length (2bit) +} u3_mesa_name_meta; + +typedef struct _u3_mesa_name { + // u3_mesa_name_meta met_u; + u3_ship her_u; + c3_w rif_w; + c3_y boq_y; + c3_o nit_o; + c3_o aut_o; + c3_d fra_d; + c3_s pat_s; + c3_c* pat_c; + u3_str str_u; +} u3_mesa_name; + +typedef struct _u3_mesa_data_meta { + c3_y bot_y; // total-fragments len (2 bits) + c3_o aut_o; // auth tag (c3y for message, c3n for pair) + c3_o auv_o; // auth value (c3y for sig/no-pair, c3n for hmac/pair) + c3_y men_y; // fragment length/type (2 bits) +} u3_mesa_data_meta; + +typedef enum { + AUTH_SIGN = 0, + AUTH_NONE = 1, + AUTH_HMAC = 2, + AUTH_PAIR = 3, +} u3_mesa_auth_type; + +typedef struct _u3_auth_data { + u3_mesa_auth_type typ_e; // none, traversal (none), sig, or hmac + union { // + c3_y sig_y[64]; // signature + c3_y mac_y[16]; // hmac + c3_y has_y[2][32]; // hashes + }; +} u3_auth_data; + +typedef struct _u3_mesa_data { + c3_d tob_d; // total bytes in message + u3_auth_data aut_u; // authentication + c3_w len_w; // fragment length + c3_y* fra_y; // fragment +} u3_mesa_data; + + +typedef struct _u3_mesa_head { + u3_mesa_hop_type nex_y; // next-hop + c3_y pro_y; // protocol version + u3_mesa_ptag typ_y; // packet type + c3_y hop_y; // hopcount + c3_w mug_w; // truncated mug checksum +} u3_mesa_head; + +// +// +$ cache +// [%rout lanes=(list lanes)] +// [%pending pacs=(list pact)] + + +typedef struct _u3_mesa_peek_pact { + u3_mesa_name nam_u; +} u3_mesa_peek_pact; + +typedef struct _u3_mesa_hop_once { + c3_w len_w; + c3_y* dat_y; +} u3_mesa_hop_once; + +typedef struct _u3_mesa_hop_more { + c3_w len_w; + u3_mesa_hop_once* dat_y; +} u3_mesa_hop_more; + +typedef union { + c3_y sot_u[6]; + u3_mesa_hop_once one_u; + u3_mesa_hop_more man_u; +} u3_mesa_hop; + +typedef struct _u3_mesa_page_pact { + u3_mesa_name nam_u; + u3_mesa_data dat_u; + union { + c3_y sot_u[6]; + u3_mesa_hop_once one_u; + u3_mesa_hop_more man_u; + }; +} u3_mesa_page_pact; + +typedef struct _u3_mesa_poke_pact { + u3_mesa_name nam_u; + u3_mesa_name pay_u; + u3_mesa_data dat_u; +} u3_mesa_poke_pact; + +typedef struct _u3_mesa_pact { + u3_mesa_head hed_u; + union { + u3_mesa_poke_pact pok_u; + u3_mesa_page_pact pag_u; + u3_mesa_peek_pact pek_u; + }; +} u3_mesa_pact; + +typedef struct _u3_etcher { + c3_y* buf_y; + c3_w len_w; + c3_w cap_w; + c3_d bit_d; // for _etch_bits + c3_y off_y; // for _etch_bits +} u3_etcher; + +c3_d mesa_num_leaves(c3_d tot_d); +c3_w mesa_size_pact(u3_mesa_pact* pac_u); +c3_o mesa_is_new_pact(c3_y* buf_y, c3_w len_w); + +void mesa_free_pact(u3_mesa_pact* pac_u); + +c3_w mesa_etch_pact_to_buf(c3_y* buf_y, c3_w cap_w, u3_mesa_pact *pac_u); +void etcher_init(u3_etcher* ech_u, c3_y* buf_y, c3_w cap_w); +void _mesa_etch_name(u3_etcher *ech_u, u3_mesa_name* nam_u); +c3_c* mesa_sift_pact_from_buf(u3_mesa_pact *pac_u, c3_y* buf_y, c3_w len_w); + +void inc_hopcount(u3_mesa_head*); + +void log_pact(u3_mesa_pact* pac_u); +void log_name(u3_mesa_name* nam_u); + +#endif diff --git a/vere/pkg/vere/io/mesa/pact.c b/vere/pkg/vere/io/mesa/pact.c new file mode 100644 index 0000000..1b2940c --- /dev/null +++ b/vere/pkg/vere/io/mesa/pact.c @@ -0,0 +1,1605 @@ +#include "mesa.h" +#include +#include +#include +// only need for tests, can remove +#include "vere.h" +#include "ivory.h" +#include "ur/ur.h" +#include "ship.h" +#define RED_TEXT "\033[0;31m" +#define DEF_TEXT "\033[0m" +// endif tests + +#define safe_dec(num) (num == 0 ? num : num - 1) +#define _mesa_met3_w(a_w) ((c3_bits_word(a_w) + 0x7) >> 3) + +// assertions for roundtrip tests +/* #define MESA_ROUNDTRIP c3y */ + +#define _assert_eq_f(a, b) \ + if ( a != b ) { \ + u3l_log("mesa.c:%u %s != %s", __LINE__, \ + __(a)? "&" : "|", \ + __(b)? "&" : "|"); \ + u3m_bail(c3__oops); \ + } +#define _assert_eq_udF(a, b) \ + if ( a != b ) { \ + u3l_log("mesa.c:%u %u != %u", __LINE__, a, b); \ + u3m_bail(c3__oops); \ + } + +#define _assert_eq_udG(a, b) \ + if ( a != b ) { \ + u3l_log("mesa.c:%u %"PRIu64" != %"PRIu64, __LINE__, a, b); \ + u3m_bail(c3__oops); \ + } + +#define _assert_eq_uxF(a, b) \ + if ( a != b ) { \ + u3l_log("mesa.c: %u 0x%08x != 0x%08x", __LINE__, a, b); \ + u3m_bail(c3__oops); \ + } + +#define _assert_eq_uxG(a, b) \ + if ( a != b ) { \ + u3l_log("mesa.c: %u 0x%016llx != 0x%016llx", __LINE__, a, b); \ + u3m_bail(c3__oops); \ + } + +static void +_mesa_check_heads_equal(u3_mesa_head* hed_u, u3_mesa_head* hod_u) +{ + _assert_eq_udF(hed_u->hop_y, hed_u->hop_y); + _assert_eq_uxF(hed_u->mug_w, hed_u->mug_w); + _assert_eq_udF(hed_u->nex_y, hed_u->nex_y); + _assert_eq_udF(hed_u->pro_y, hed_u->pro_y); + _assert_eq_udF(hed_u->typ_y, hed_u->typ_y); +} + +static void +_mesa_check_names_equal(u3_mesa_name* nam_u, u3_mesa_name* nom_u) +{ + u3_assert( __(u3_ships_equal(nam_u->her_u, nom_u->her_u)) ); + _assert_eq_udF(nam_u->rif_w, nom_u->rif_w); + _assert_eq_udF(nam_u->boq_y, nom_u->boq_y); + _assert_eq_f(nam_u->nit_o, nom_u->nit_o); + _assert_eq_f(nam_u->aut_o, nom_u->aut_o); + _assert_eq_udG(nam_u->fra_d, nom_u->fra_d); + _assert_eq_udF(nam_u->pat_s, nom_u->pat_s); + u3_assert( 0 == memcmp(nam_u->pat_c, nom_u->pat_c, nam_u->pat_s + 1) ); +} + +static void +_mesa_check_auth_datas_equal(u3_auth_data* aut_u, u3_auth_data* aot_u) +{ + _assert_eq_udF(aut_u->typ_e, aot_u->typ_e); + switch ( aut_u->typ_e ) { + case AUTH_SIGN: { + u3_assert( 0 == memcmp(aut_u->sig_y, aot_u->sig_y, 64) ); + } break; + case AUTH_HMAC: { + u3_assert( 0 == memcmp(aut_u->mac_y, aot_u->mac_y, 16) ); + } break; + case AUTH_NONE: {} break; + case AUTH_PAIR: { + u3_assert( 0 == memcmp(aut_u->has_y, aot_u->has_y, 64) ); + } break; + default: u3_assert(!"unreachable"); + } +} + +static void +_mesa_check_datas_equal(u3_mesa_data* dat_u, u3_mesa_data* dot_u) +{ + _assert_eq_udG(dat_u->tob_d, dot_u->tob_d); + _mesa_check_auth_datas_equal(&dat_u->aut_u, &dot_u->aut_u); + _assert_eq_udF(dat_u->len_w, dot_u->len_w); + u3_assert( 0 == memcmp(dat_u->fra_y, dot_u->fra_y, dat_u->len_w) ); +} + +static void +_mesa_check_pacts_equal(u3_mesa_pact* pac_u, u3_mesa_pact* poc_u) +{ + _mesa_check_heads_equal(&poc_u->hed_u, &pac_u->hed_u); + + switch ( poc_u->hed_u.typ_y ) { + case PACT_PEEK: { + _mesa_check_names_equal(&poc_u->pek_u.nam_u, &pac_u->pek_u.nam_u); + } break; + case PACT_POKE: { + _mesa_check_names_equal(&poc_u->pok_u.nam_u, &pac_u->pok_u.nam_u); + _mesa_check_names_equal(&poc_u->pok_u.pay_u, &pac_u->pok_u.pay_u); + _mesa_check_datas_equal(&poc_u->pok_u.dat_u, &pac_u->pok_u.dat_u); + } break; + case PACT_PAGE: { + _mesa_check_names_equal(&poc_u->pag_u.nam_u, &pac_u->pag_u.nam_u); + _mesa_check_datas_equal(&poc_u->pag_u.dat_u, &pac_u->pag_u.dat_u); + } break; + default: u3_assert(!"unreachable"); + } +} + +/* Logging functions +*/ + +static void +_log_head(u3_mesa_head* hed_u) +{ + u3l_log("-- HEADER --"); + u3l_log("next hop: %u", hed_u->nex_y); + u3l_log("protocol: %u", hed_u->pro_y); + u3l_log("packet type: %u", hed_u->typ_y); + u3l_log("mug: 0x%05x", (hed_u->mug_w & 0xFFFFF)); + u3l_log("hopcount: %u", hed_u->hop_y); + u3l_log(""); +} + +static void +_log_buf(c3_y* buf_y, c3_w len_w) +{ + c3_c *buf_c = c3_malloc(2 * len_w + 1); + for ( c3_w i_w = 0; i_w < len_w; i_w++ ) { + sprintf(buf_c + (i_w*2), "%02x", buf_y[i_w]); + } + u3l_log("%s", buf_c); +} + +static void +_log_name_meta(u3_mesa_name_meta* met_u) +{ + u3l_log("meta"); + u3l_log("rank: %u", met_u->ran_y); + u3l_log("rift length: %u", met_u->rif_y); + u3l_log("nit: %u", met_u->nit_y); + u3l_log("tau: %u", met_u->tau_y); + u3l_log("frag num length: %u", met_u->gaf_y); +} + +void +log_name(u3_mesa_name* nam_u) +{ + c3_c* her_c; + { + u3_noun her = u3dc("scot", c3__p, u3_ship_to_noun(nam_u->her_u)); + her_c = u3r_string(her); + u3z(her); + } + + u3l_log("%s: /%.*s", her_c, nam_u->pat_s, nam_u->pat_c); + u3l_log(" rift: %u bloq: %u auth/data: %s init: %s frag: %"PRIu64, + nam_u->rif_w, + nam_u->boq_y, + (c3y == nam_u->aut_o) ? "auth" : "data", + (c3y == nam_u->nit_o) ? "init" : "nope", + nam_u->fra_d + ); + c3_free(her_c); + fflush(stderr); +} + +static void +_log_data(u3_mesa_data* dat_u) +{ + u3l_log("tob_d: %" PRIu64 " len_w: %u ", + dat_u->tob_d, dat_u->len_w); + + switch ( dat_u->aut_u.typ_e ) { + case AUTH_SIGN: { + u3l_log("signature: "); + _log_buf(dat_u->aut_u.sig_y, 64); + } break; + + case AUTH_HMAC: { + u3l_log("hmac: "); + _log_buf(dat_u->aut_u.mac_y, 16); + } break; + + case AUTH_NONE: { + u3l_log("merkle traversal: "); + } break; + + case AUTH_PAIR: { + u3l_log("merkle traversal:"); + _log_buf(dat_u->aut_u.has_y[0], 32); + _log_buf(dat_u->aut_u.has_y[1], 32); + } break; + } +} + + +static void +_log_peek_pact(u3_mesa_peek_pact* pac_u) +{ + log_name(&pac_u->nam_u); +} + +static void +_log_page_pact(u3_mesa_page_pact *pac_u) +{ + log_name(&pac_u->nam_u); + _log_data(&pac_u->dat_u); +} + +static void +_log_poke_pact(u3_mesa_poke_pact *pac_u) +{ + log_name(&pac_u->nam_u); + log_name(&pac_u->pay_u); + _log_data(&pac_u->dat_u); +} + +void +log_pact(u3_mesa_pact* pac_u) +{ + switch ( pac_u->hed_u.typ_y ) { + case PACT_PEEK: { + fprintf(stderr, "PEEK "); + _log_peek_pact(&pac_u->pek_u); + } break; + + case PACT_PAGE: { + fprintf(stderr, "PAGE "); + _log_page_pact(&pac_u->pag_u); + } break; + + case PACT_POKE: { + fprintf(stderr, "POKE "); + _log_poke_pact(&pac_u->pok_u); + } break; + + default: { + _log_poke_pact(&pac_u->pok_u); + break; + } + } +} + +/* Helper utilities +*/ + +/* mesa_num_leaves(): calculate how many leaves, given total bytes +*/ +c3_d +mesa_num_leaves(c3_d tob_d) +{ + return (tob_d + 1023) / 1024; +} + +void +inc_hopcount(u3_mesa_head* hed_u) +{ + hed_u->hop_y = c3_min(hed_u->hop_y+1, 7); +} + +static c3_y +_mesa_rank(u3_ship who_u) +{ + switch ( u3_ship_rank(who_u) ) { + case c3__pawn: return 3; + case c3__earl: return 2; + case c3__duke: return 1; + case c3__king: return 0; + case c3__czar: return 0; + default: u3_assert(!"unreachable"); + }; +} + +/* +** _mesa_make_chub_tag(): make a 2-bit tag for a chub length +*/ +static c3_y +_mesa_make_chub_tag(c3_d tot_d) +{ + return (tot_d <= 0xff)? 0b00 : + (tot_d <= 0xffff)? 0b01 : + (tot_d <= 0xffffffff)? 0b10 : + 0b11; +} + +/* +** _mesa_bytes_of_chub_tag(): how many bytes does a chub tag mean +*/ +static c3_y +_mesa_bytes_of_chub_tag(c3_y tot_y) +{ + return 1 << tot_y; +} + +/* serialisation +*/ + +typedef struct _u3_sifter { + c3_y* buf_y; + c3_w rem_w; + c3_d bit_d; // for _etch_bits + c3_y off_y; // for _etch_bits + c3_c* err_c; +} u3_sifter; + +void +etcher_init(u3_etcher* ech_u, c3_y* buf_y, c3_w cap_w) +{ + ech_u->buf_y = buf_y; + ech_u->len_w = 0; + ech_u->cap_w = cap_w; + ech_u->bit_d = 0; + ech_u->off_y = 0; +} + +static void +sifter_init(u3_sifter* sif_u, c3_y* buf_y, c3_w len_w) +{ + sif_u->buf_y = buf_y; + sif_u->rem_w = len_w; + sif_u->bit_d = 0; + sif_u->off_y = 0; + sif_u->err_c = NULL; +} + +static void +_sift_fail(u3_sifter* sif_u, c3_c* msg_c) +{ + if ( sif_u->err_c ) { + return; + } + sif_u->err_c = msg_c; + #ifdef MESA_ROUNDTRIP + u3l_log(RED_TEXT "sift fail: %s" DEF_TEXT, msg_c); + assert(!"sift fail"); + #endif +} + +static c3_y* +_etch_next(u3_etcher* ech_u, c3_w len_w) +{ + assert ( ech_u->off_y == 0 ); // ensure all bits were etched + assert ( ech_u->len_w + len_w <= ech_u->cap_w ); // ensure buffer is big enough + c3_y *res_y = ech_u->buf_y + ech_u->len_w; + ech_u->len_w += len_w; + return res_y; +} + +static c3_y* +_sift_next(u3_sifter* sif_u, c3_w len_w) +{ + assert ( sif_u->off_y == 0 ); // ensure all bits were sifted + if ( sif_u->err_c ) { + return NULL; + } + else if ( len_w > sif_u->rem_w ) { + _sift_fail(sif_u, "unexpected eof"); + } + c3_y *res_y = sif_u->buf_y; + sif_u->buf_y += len_w; + sif_u->rem_w -= len_w; + return res_y; +} + +static void +_etch_bytes(u3_etcher* ech_u, c3_y *buf_y, c3_w len_w) +{ + c3_y *res_y = _etch_next(ech_u, len_w); + memcpy(res_y, buf_y, len_w); +} + +static void +_sift_bytes(u3_sifter* sif_u, c3_y *buf_y, c3_w len_w) +{ + c3_y *res_y = _sift_next(sif_u, len_w); + if ( NULL == res_y ) { + memset(buf_y, 0, len_w); + return; + } + memcpy(buf_y, res_y, len_w); +} + +static void +_etch_byte(u3_etcher* ech_u, c3_y val_y) +{ + _etch_next(ech_u, 1)[0] = val_y; +} + +static c3_y +_sift_byte(u3_sifter* sif_u) +{ + c3_y *res_y = _sift_next(sif_u, 1); + return ( NULL == res_y ) ? 0 : res_y[0]; +} + +static void +_etch_short(u3_etcher* ech_u, c3_s val_s) +{ + c3_etch_short(_etch_next(ech_u, 2), val_s); +} + +static c3_s +_sift_short(u3_sifter* sif_u) +{ + c3_y *res_y = _sift_next(sif_u, 2); + return ( NULL == res_y ) ? 0 : c3_sift_short(res_y); +} + +static void +_etch_word(u3_etcher* ech_u, c3_w val_w) +{ + c3_etch_word(_etch_next(ech_u, 4), val_w); +} + +static c3_w +_sift_word(u3_sifter* sif_u) +{ + c3_y *res_y = _sift_next(sif_u, 4); + return ( NULL == res_y ) ? 0 : c3_sift_word(res_y); +} + +static void +_etch_chub(u3_etcher* ech_u, c3_d val_d) +{ + c3_etch_chub(_etch_next(ech_u, 8), val_d); +} + +static c3_d +_sift_chub(u3_sifter* sif_u) +{ + c3_y *res_y = _sift_next(sif_u, 8); + return ( NULL == res_y ) ? 0 : c3_sift_chub(res_y); +} + +static void +_etch_var_word(u3_etcher* ech_u, c3_w val_w, c3_w len_w) +{ + assert ( len_w <= 4 ); + c3_y *buf_y = _etch_next(ech_u, len_w); + for ( c3_w i = 0; i < len_w; i++ ) { + buf_y[i] = (val_w >> (8*i)) & 0xFF; + } +} + +static c3_w +_sift_var_word(u3_sifter* sif_u, c3_w len_w) +{ + assert ( len_w <= 4 ); + c3_y *res_y = _sift_next(sif_u, len_w); + if ( NULL == res_y ) { + return 0; + } + c3_w val_w = 0; + for ( c3_w i = 0; i < len_w; i++ ) { + val_w |= (res_y[i] << (8*i)); + } + return val_w; +} + +static void +_etch_var_chub(u3_etcher* ech_u, c3_d val_d, c3_w len_w) +{ + assert ( len_w <= 8 ); + c3_y *buf_y = _etch_next(ech_u, len_w); + for ( int i = 0; i < len_w; i++ ) { + buf_y[i] = (val_d >> (8*i)) & 0xFF; + } +} + +static c3_d +_sift_var_chub(u3_sifter* sif_u, c3_w len_w) +{ + assert ( len_w <= 8 ); + c3_y *res_y = _sift_next(sif_u, len_w); + if ( NULL == res_y ) { + return 0; + } + c3_d val_d = 0; + for ( c3_d i = 0; i < len_w; i++ ) { + val_d |= ((c3_d)res_y[i] << (8*i)); + } + return val_d; +} + +static void +_etch_bits(u3_etcher* ech_u, c3_w wid_w, c3_d val_d) +{ + assert ( ech_u->off_y + wid_w <= 64 ); + ech_u->bit_d |= ((val_d&((1 << wid_w) - 1)) << ech_u->off_y); + ech_u->off_y += wid_w; + while ( ech_u->off_y >= 8 ) { + ech_u->buf_y[ech_u->len_w] = ech_u->bit_d & 0xFF; + ech_u->bit_d >>= 8; + ech_u->len_w += 1; + ech_u->off_y -= 8; + } +} + +static c3_d +_sift_bits(u3_sifter* sif_u, c3_w wid_w) +{ + assert ( wid_w <= 64 ); + while ( sif_u->off_y < wid_w ) { + c3_d byt_d = (sif_u->rem_w > 0) ? sif_u->buf_y[0] : 0; + sif_u->buf_y += 1; + sif_u->rem_w -= 1; + sif_u->bit_d |= (byt_d << sif_u->off_y); + sif_u->off_y += 8; + } + c3_d res_d = sif_u->bit_d & ((1 << wid_w) - 1); + sif_u->bit_d >>= wid_w; + sif_u->off_y -= wid_w; + return res_d; +} + +static void +_etch_ship(u3_etcher* ech_u, u3_ship who_u, c3_y len_y) +{ + assert ( len_y <= 16 ); + u3_ship_to_bytes(who_u, len_y, _etch_next(ech_u, len_y)); +} + +static void +_sift_ship(u3_sifter* sif_u, u3_ship who_u, c3_y len_y) +{ + assert ( len_y <= 16 ); + c3_y *res_y = _sift_next(sif_u, len_y); + if ( NULL == res_y ) { + who_u[0] = who_u[1] = 0; + return; + } + u3_ship_of_bytes(who_u, len_y, res_y); +} + +static void +_mesa_etch_head(u3_etcher* ech_u, u3_mesa_head* hed_u) +{ + if ( 1 != hed_u->pro_y ) { + u3l_log("etching bad head"); + } + _etch_bits(ech_u, 2, 0); // unused + _etch_bits(ech_u, 2, hed_u->nex_y); + _etch_bits(ech_u, 3, hed_u->pro_y); + _etch_bits(ech_u, 2, hed_u->typ_y); + _etch_bits(ech_u, 3, hed_u->hop_y); + _etch_bits(ech_u, 20, hed_u->mug_w); + _etch_word(ech_u, MESA_COOKIE); +} + +c3_o +mesa_is_new_pact(c3_y* buf_y, c3_w len_w) +{ + return __((len_w >= 8) && c3_sift_word(buf_y + 4) == MESA_COOKIE); +} + +void +mesa_sift_head(u3_sifter* sif_u, u3_mesa_head* hed_u) +{ + _sift_bits(sif_u, 2); // unused + hed_u->nex_y = _sift_bits(sif_u, 2); + hed_u->pro_y = _sift_bits(sif_u, 3); + hed_u->typ_y = _sift_bits(sif_u, 2); + hed_u->hop_y = _sift_bits(sif_u, 3); + hed_u->mug_w = _sift_bits(sif_u, 20); + if ( 1 != hed_u->pro_y ) { + _sift_fail(sif_u, "bad protocol"); + } + if ( _sift_word(sif_u) != MESA_COOKIE ) { + _sift_fail(sif_u, "bad cookie"); + } +} + +void +_mesa_etch_name(u3_etcher *ech_u, u3_mesa_name* nam_u) +{ + u3_mesa_name_meta met_u = {0}; + met_u.ran_y = _mesa_rank(nam_u->her_u); + met_u.rif_y = safe_dec(_mesa_met3_w(nam_u->rif_w)); + + if ( c3y == nam_u->nit_o ) { + met_u.nit_y = 1; + met_u.tau_y = 0; + met_u.gaf_y = 0; + } + else { + met_u.nit_y = 0; + met_u.tau_y = (c3y == nam_u->aut_o) ? 1 : 0; + met_u.gaf_y = _mesa_make_chub_tag(nam_u->fra_d); + } + + _etch_bits(ech_u, 2, met_u.ran_y); + _etch_bits(ech_u, 2, met_u.rif_y); + _etch_bits(ech_u, 1, met_u.nit_y); + _etch_bits(ech_u, 1, met_u.tau_y); + _etch_bits(ech_u, 2, met_u.gaf_y); + c3_y her_y = 2 << met_u.ran_y; // XX confirm + _etch_ship(ech_u, nam_u->her_u, her_y); + // log_name(nam_u); + _etch_var_word(ech_u, nam_u->rif_w, met_u.rif_y + 1); + _etch_byte(ech_u, nam_u->boq_y); + + if ( met_u.nit_y ) { + // init packet + } + else { + // log_name(nam_u); + _etch_var_chub(ech_u, nam_u->fra_d, 1 << met_u.gaf_y); + } + + _etch_short(ech_u, nam_u->pat_s); + _etch_bytes(ech_u, (c3_y*)nam_u->pat_c, nam_u->pat_s); +} + +static void +_mesa_sift_name(u3_sifter* sif_u, u3_mesa_name* nam_u) +{ + nam_u->str_u.str_c = (c3_c*)sif_u->buf_y; + c3_w rem_w = sif_u->rem_w; + + u3_mesa_name_meta met_u = {0}; + met_u.ran_y = _sift_bits(sif_u, 2); + met_u.rif_y = _sift_bits(sif_u, 2); + met_u.nit_y = _sift_bits(sif_u, 1); + met_u.tau_y = _sift_bits(sif_u, 1); + met_u.gaf_y = _sift_bits(sif_u, 2); + + nam_u->nit_o = __( met_u.nit_y == 1 ); + nam_u->aut_o = __( met_u.tau_y == 1 ); + + _sift_ship(sif_u, nam_u->her_u, 2 << met_u.ran_y); + nam_u->rif_w = _sift_var_word(sif_u, met_u.rif_y + 1); + nam_u->boq_y = _sift_byte(sif_u); + + if ( met_u.nit_y ) { + assert( !met_u.tau_y ); + assert( !met_u.gaf_y ); + // XX init packet + nam_u->fra_d = 0; + } + else { + nam_u->fra_d = _sift_var_chub(sif_u, 1 << met_u.gaf_y); + } + + nam_u->pat_s = _sift_short(sif_u); + + nam_u->pat_c = (c3_c*)sif_u->buf_y; + /* nam_u->pat_c = c3_calloc(nam_u->pat_s + 1); */ + /* _sift_bytes(sif_u, (c3_y*)nam_u->pat_c, nam_u->pat_s); */ + + sif_u->buf_y += nam_u->pat_s; + sif_u->rem_w -= nam_u->pat_s; + + nam_u->str_u.len_w = rem_w - sif_u->rem_w; + + /* nam_u->pat_c[nam_u->pat_s] = 0; */ +} + +static void +_mesa_etch_data(u3_etcher* ech_u, u3_mesa_data* dat_u) +{ + u3_mesa_data_meta met_u = {0}; + met_u.bot_y = _mesa_make_chub_tag(dat_u->tob_d); + met_u.aut_o = __(dat_u->aut_u.typ_e == AUTH_SIGN || dat_u->aut_u.typ_e == AUTH_HMAC); + met_u.auv_o = __(dat_u->aut_u.typ_e == AUTH_SIGN || dat_u->aut_u.typ_e == AUTH_NONE); + c3_y nel_y = _mesa_met3_w(dat_u->len_w); + met_u.men_y = c3_min(nel_y, 3); + _etch_bits(ech_u, 2, met_u.bot_y); + _etch_bits(ech_u, 1, met_u.aut_o); + _etch_bits(ech_u, 1, met_u.auv_o); + _etch_bits(ech_u, 2, 0); // unused + _etch_bits(ech_u, 2, met_u.men_y); + _etch_var_chub(ech_u, dat_u->tob_d, 1 << met_u.bot_y); + switch ( dat_u->aut_u.typ_e ) { + case AUTH_SIGN: { + _etch_bytes(ech_u, dat_u->aut_u.sig_y, 64); + } break; + case AUTH_HMAC: { + _etch_bytes(ech_u, dat_u->aut_u.mac_y, 16); + } break; + case AUTH_NONE: { + } break; + case AUTH_PAIR: { + _etch_bytes(ech_u, dat_u->aut_u.has_y[0], 32); + _etch_bytes(ech_u, dat_u->aut_u.has_y[1], 32); + } break; + } + + if ( 3 == met_u.men_y ) { + _etch_byte(ech_u, nel_y); + } + _etch_var_word(ech_u, dat_u->len_w, nel_y); + _etch_bytes(ech_u, dat_u->fra_y, dat_u->len_w); +} + +static void +_mesa_sift_data(u3_sifter* sif_u, u3_mesa_data* dat_u) +{ + u3_mesa_data_meta met_u = {0}; + met_u.bot_y = _sift_bits(sif_u, 2); + met_u.aut_o = _sift_bits(sif_u, 1); + met_u.auv_o = _sift_bits(sif_u, 1); + _sift_bits(sif_u, 2); // unused + met_u.men_y = _sift_bits(sif_u, 2); + + dat_u->tob_d = _sift_var_chub(sif_u, 1<aut_u.sig_y, 64); + dat_u->aut_u.typ_e = AUTH_SIGN; + } + else { + _sift_bytes(sif_u, dat_u->aut_u.mac_y, 16); + dat_u->aut_u.typ_e = AUTH_HMAC; + } + } + else { + if ( c3y == met_u.auv_o ) { + dat_u->aut_u.typ_e = AUTH_NONE; + } else { + _sift_bytes(sif_u, dat_u->aut_u.has_y[0], 32); + _sift_bytes(sif_u, dat_u->aut_u.has_y[1], 32); + dat_u->aut_u.typ_e = AUTH_PAIR; + } + } + + c3_y nel_y = met_u.men_y; + if ( 3 == met_u.men_y ) { + nel_y = _sift_byte(sif_u); + } + dat_u->len_w = _sift_var_word(sif_u, nel_y); + dat_u->fra_y = _sift_next(sif_u, dat_u->len_w); +} + +static void +_mesa_etch_hop_long(u3_etcher* ech_u, u3_mesa_hop_once* hop_u) +{ + _etch_byte(ech_u, hop_u->len_w); + _etch_bytes(ech_u, hop_u->dat_y, hop_u->len_w); +} + +static void +_mesa_etch_page_pact(u3_etcher* ech_u, u3_mesa_page_pact* pag_u, u3_mesa_head* hed_u) +{ + _mesa_etch_name(ech_u, &pag_u->nam_u); + _mesa_etch_data(ech_u, &pag_u->dat_u); + + switch ( hed_u->nex_y ) { + case HOP_NONE: { + } break; + case HOP_SHORT: { + _etch_bytes(ech_u, pag_u->sot_u, 6); + } break; + case HOP_LONG: { + _mesa_etch_hop_long(ech_u, &pag_u->one_u); + } break; + case HOP_MANY: { + _etch_byte(ech_u, pag_u->man_u.len_w); + for ( c3_w i = 0; i < pag_u->man_u.len_w; i++ ) { + _mesa_etch_hop_long(ech_u, &pag_u->man_u.dat_y[i]); + } + } break; + default: { + return; + } break; + } +} + +static void +_mesa_sift_page_pact(u3_sifter* sif_u, u3_mesa_page_pact* pag_u, c3_y nex_y) +{ + _mesa_sift_name(sif_u, &pag_u->nam_u); + _mesa_sift_data(sif_u, &pag_u->dat_u); + + switch ( nex_y ) { + default: { + u3_assert(!"mesa: sift invalid hop type"); + } + case HOP_NONE: return; + case HOP_SHORT: { + _sift_bytes(sif_u, pag_u->sot_u, 6); + return; + } + case HOP_LONG: { + _sift_fail(sif_u, "mesa: sift invalid hop long"); + return; + } + case HOP_MANY: { + _sift_fail(sif_u, "mesa: sift invalid hop many"); + return; + } + } +} + +static void +_mesa_etch_peek_pact(u3_etcher* ech_u, u3_mesa_peek_pact* pac_u) +{ + _mesa_etch_name(ech_u, &pac_u->nam_u); +} + +static void +_mesa_sift_peek_pact(u3_sifter* sif_u, u3_mesa_peek_pact* pac_u) +{ + _mesa_sift_name(sif_u, &pac_u->nam_u); +} + +static void +_mesa_etch_poke_pact(u3_etcher* ech_u, u3_mesa_poke_pact* pac_u) +{ + _mesa_etch_name(ech_u, &pac_u->nam_u); + _mesa_etch_name(ech_u, &pac_u->pay_u); + _mesa_etch_data(ech_u, &pac_u->dat_u); +} + +static void +_mesa_sift_poke_pact(u3_sifter* sif_u, u3_mesa_poke_pact* pac_u) +{ + _mesa_sift_name(sif_u, &pac_u->nam_u); + _mesa_sift_name(sif_u, &pac_u->pay_u); + _mesa_sift_data(sif_u, &pac_u->dat_u); +} + +static void +_mesa_etch_pact(u3_etcher* ech_u, u3_mesa_pact* pac_u) +{ + // use a separate etcher to make computing the mug easier + u3_etcher pec_u; + etcher_init(&pec_u, ech_u->buf_y + ech_u->len_w + 8, ech_u->cap_w - ech_u->len_w - 8); + + switch ( pac_u->hed_u.typ_y ) { + case PACT_POKE: { + _mesa_etch_poke_pact(&pec_u, &pac_u->pok_u); + } break; + case PACT_PAGE: { + _mesa_etch_page_pact(&pec_u, &pac_u->pag_u, &pac_u->hed_u); + } break; + case PACT_PEEK: { + _mesa_etch_peek_pact(&pec_u, &pac_u->pek_u); + } break; + default: { + u3l_log("bad pact type %u", pac_u->hed_u.typ_y); + } + } + // now we can compute the mug and write the header + pac_u->hed_u.mug_w = u3r_mug_bytes(pec_u.buf_y, pec_u.len_w) + & 0xFFFFF; + _mesa_etch_head(ech_u, &pac_u->hed_u); + + // the payload is already written into the correct spot, so we just need to + // adjust the length + ech_u->len_w += pec_u.len_w; +} + +static void +_mesa_sift_pact(u3_sifter* sif_u, u3_mesa_pact* pac_u) +{ + mesa_sift_head(sif_u, &pac_u->hed_u); + + // for mug, later + c3_y *mug_y = sif_u->buf_y; + c3_w pre_w = sif_u->rem_w; + + switch ( pac_u->hed_u.typ_y ) { + case PACT_PEEK: { + _mesa_sift_peek_pact(sif_u, &pac_u->pek_u); + } break; + case PACT_PAGE: { + _mesa_sift_page_pact(sif_u, &pac_u->pag_u, pac_u->hed_u.nex_y); + } break; + case PACT_POKE: { + _mesa_sift_poke_pact(sif_u, &pac_u->pok_u); + } break; + default: { + /* u3l_log("mesa: received unknown packet type"); */ + break; + } + } + + { + c3_w mug_w = u3r_mug_bytes(mug_y, pre_w - sif_u->rem_w) + & 0xFFFFF; + if ( mug_w != pac_u->hed_u.mug_w ) { + _sift_fail(sif_u, "bad mug"); + return; + } + } +} + +/* packet etch/sift, with roundtrip tests */ + +c3_w +mesa_etch_pact_to_buf(c3_y* buf_y, c3_w cap_w, u3_mesa_pact *pac_u) { + u3_etcher ech_u; + etcher_init(&ech_u, buf_y, cap_w); + _mesa_etch_pact(&ech_u, pac_u); + + #ifdef MESA_ROUNDTRIP + u3_mesa_pact poc_u; + u3_sifter sif_u; + sifter_init(&sif_u, ech_u.buf_y, ech_u.len_w); + _mesa_sift_pact(&sif_u, &poc_u); + if ( sif_u.rem_w && !sif_u.err_c ) { + u3l_log("mesa: etch roundtrip failed: %u trailing bytes", sif_u.rem_w); + _sift_fail(&sif_u, "trailing bytes"); + } + if ( sif_u.err_c ) { + u3l_log("mesa: roundtrip failed: %s", sif_u.err_c); + assert(!"roundtrip failed"); + } + _mesa_check_pacts_equal(&poc_u, pac_u); + mesa_free_pact(&poc_u); + #endif + + return ech_u.len_w; +} + +c3_c* +mesa_sift_pact_from_buf(u3_mesa_pact *pac_u, c3_y* buf_y, c3_w len_w) { + u3_sifter sif_u; + sifter_init(&sif_u, buf_y, len_w); + _mesa_sift_pact(&sif_u, pac_u); + if ( sif_u.rem_w && !sif_u.err_c ) { + _sift_fail(&sif_u, "trailing bytes"); + } + + #ifdef MESA_ROUNDTRIP + c3_y* bof_y = c3_calloc(len_w); + u3_etcher ech_u; + etcher_init(&ech_u, bof_y, len_w); + _mesa_etch_pact(&ech_u, pac_u); + u3_assert( 0 == memcmp(bof_y, buf_y, len_w) ); + c3_free(bof_y); + #endif + + return sif_u.err_c; +} + +/* sizing +*/ +static c3_w +_mesa_size_name(u3_mesa_name* nam_u) +{ + c3_w siz_w = 1; + u3_mesa_name_meta met_u; + + met_u.ran_y = _mesa_rank(nam_u->her_u); + met_u.rif_y = safe_dec(_mesa_met3_w(nam_u->rif_w)); + + siz_w += 2 << met_u.ran_y; + siz_w += met_u.rif_y + 1; + siz_w++; // bloq + + if ( nam_u->nit_o == c3n ) { + met_u.gaf_y = _mesa_make_chub_tag(nam_u->fra_d); + siz_w += _mesa_bytes_of_chub_tag(met_u.gaf_y); + } + + siz_w += 2; // path-length + siz_w += nam_u->pat_s; + + return siz_w; +} + +static c3_w +_mesa_size_data(u3_mesa_data* dat_u) +{ + c3_w siz_w = 1; + u3_mesa_data_meta met_u; + + met_u.bot_y = _mesa_make_chub_tag(dat_u->tob_d); + siz_w += _mesa_bytes_of_chub_tag(met_u.bot_y); + + switch ( dat_u->aut_u.typ_e ) { + case AUTH_SIGN: { + siz_w += 64; + } break; + + case AUTH_HMAC: { + siz_w += 16; + } break; + + case AUTH_NONE: { + } break; + + case AUTH_PAIR: { + siz_w += 64; + } break; + } + + c3_y nel_y = _mesa_met3_w(dat_u->len_w); + met_u.men_y = (3 >= nel_y) ? nel_y : 3; + + if ( 3 == met_u.men_y ) { + siz_w++; + } + + siz_w += nel_y; + siz_w += dat_u->len_w; + + return siz_w; +} + +static c3_w +_mesa_size_hops(u3_mesa_pact* pac_u) +{ + if ( PACT_PAGE != pac_u->hed_u.typ_y ) { + return 0; + } + + switch ( pac_u->hed_u.nex_y ) { + case HOP_NONE: return 0; + case HOP_SHORT: return 6; + case HOP_LONG: return 1 + pac_u->pag_u.one_u.len_w; + case HOP_MANY: { + c3_w siz_w = 0; + for ( c3_w i = 0; i < pac_u->pag_u.man_u.len_w; i++ ) { + siz_w += 1 + pac_u->pag_u.man_u.dat_y[i].len_w; + } + return siz_w; + } + default: u3_assert(!"mesa: invalid hop type"); + } +} + +c3_w +mesa_size_pact(u3_mesa_pact* pac_u) +{ + c3_w siz_w = 8; // header + cookie; + + switch ( pac_u->hed_u.typ_y ) { + case PACT_PEEK: { + siz_w += _mesa_size_name(&pac_u->pek_u.nam_u); + } break; + + case PACT_PAGE: { + siz_w += _mesa_size_name(&pac_u->pag_u.nam_u); + siz_w += _mesa_size_data(&pac_u->pag_u.dat_u); + siz_w += _mesa_size_hops(pac_u); + } break; + + case PACT_POKE: { + siz_w += _mesa_size_name(&pac_u->pok_u.nam_u); + siz_w += _mesa_size_name(&pac_u->pok_u.pay_u); + siz_w += _mesa_size_data(&pac_u->pok_u.dat_u); + } break; + + default: { + u3l_log("bad pact type %u", pac_u->hed_u.typ_y);//u3m_bail(c3__bail); + return 0; + } + } + + return siz_w; +} + +#ifdef PACT_TEST + +/* _mesa_encode_path(): produce buf_y as a parsed path +*/ +static u3_noun +_mesa_encode_path(c3_w len_w, c3_y* buf_y) +{ + u3_noun pro; + u3_noun* lit = &pro; + + { + u3_noun* hed; + u3_noun* tel; + c3_y* fub_y = buf_y; + c3_y car_y; + c3_w tem_w; + u3i_slab sab_u; + + while ( len_w-- ) { + car_y = *buf_y++; + if ( len_w == 0 ) { + buf_y++; + car_y = 47; + } + + if ( 47 == car_y ) { + tem_w = buf_y - fub_y - 1; + u3i_slab_bare(&sab_u, 3, tem_w); + sab_u.buf_w[sab_u.len_w - 1] = 0; + memcpy(sab_u.buf_y, fub_y, tem_w); + + *lit = u3i_defcons(&hed, &tel); + *hed = u3i_slab_moot(&sab_u); + lit = tel; + fub_y = buf_y; + } + } + } + + *lit = u3_nul; + + return pro; +} + +#define cmp_scalar(nam, str, fmt) \ + if ( hav_u->nam != ned_u->nam ) { \ + fprintf(stderr, "mesa test cmp " str " differ:\r\n" \ + " have: " fmt "\r\n" \ + " need: " fmt "\r\n", \ + hav_u->nam, ned_u->nam); \ + ret_i = 1; \ + } + +#define cmp_string(nam, siz, str) \ + if ( memcmp(hav_u->nam, ned_u->nam, siz) ) { \ + fprintf(stderr, "mesa test cmp " str " differ:\r\n" \ + " have: %*.s\r\n" \ + " need: %*.s\r\n", \ + siz, hav_u->nam, siz, ned_u->nam); \ + ret_i = 1; \ + } + +#define cmp_buffer(nam, siz, str) \ + if ( memcmp(hav_u->nam, ned_u->nam, siz) ) { \ + fprintf(stderr, "mesa test cmp " str "\r\n"); \ + ret_i = 1; \ + } + +static c3_i +_test_cmp_head(u3_mesa_head* hav_u, u3_mesa_head* ned_u) +{ + c3_i ret_i = 0; + + cmp_scalar(nex_y, "head: next", "%u"); + cmp_scalar(pro_y, "head: protocol", "%u"); + cmp_scalar(typ_y, "head: type", "%u"); + cmp_scalar(hop_y, "head: hop", "%u"); + cmp_scalar(mug_w, "head: mug", "%u"); + + return ret_i; +} + +static c3_i +_test_cmp_name(u3_mesa_name* hav_u, u3_mesa_name* ned_u) +{ + c3_i ret_i = 0; + + cmp_buffer(her_u, sizeof(ned_u->her_u), "name: ships differ"); + + cmp_scalar(rif_w, "name: rifts", "%u"); + cmp_scalar(boq_y, "name: bloqs", "%u"); + cmp_scalar(nit_o, "name: inits", "%u"); + cmp_scalar(aut_o, "name: auths", "%u"); + cmp_scalar(fra_d, "name: fragments", "%" PRIu64); + cmp_scalar(pat_s, "name: path-lengths", "%u"); + + cmp_string(pat_c, ned_u->pat_s, "name: paths"); + + return ret_i; +} + +static c3_i +_test_cmp_data(u3_mesa_data* hav_u, u3_mesa_data* ned_u) +{ + c3_i ret_i = 0; + + cmp_scalar(tob_d, "data: total packets", "%" PRIu64); + + cmp_scalar(aut_u.typ_e, "data: auth-types", "%u"); + cmp_buffer(aut_u.sig_y, 64, "data: sig|hmac|null"); + + // cmp_scalar(aut_u.len_y, "data: hash-lengths", "%u"); + + if ( AUTH_PAIR == ned_u->aut_u.typ_e ) { + cmp_buffer(aut_u.has_y, 2, "data: hashes"); + } + + cmp_scalar(len_w, "data: fragments-lengths", "%u"); + cmp_buffer(fra_y, ned_u->len_w, "data: fragments"); + + return ret_i; +} + +static c3_i +_test_pact(u3_mesa_pact* pac_u) +{ + c3_y* buf_y = c3_calloc(PACT_SIZE); + c3_w len_w = mesa_etch_pact_to_buf(buf_y, PACT_SIZE, pac_u); + c3_i ret_i = 0; + c3_i bot_i = 0; + c3_w sif_w; + + u3_mesa_pact nex_u; + memset(&nex_u, 0, sizeof(u3_mesa_pact)); + + if ( !len_w ) { + fprintf(stderr, "pact: etch failed\r\n"); + ret_i = 1; goto done; + } + else if ( len_w > PACT_SIZE ) { + fprintf(stderr, "pact: etch overflowed: %u\r\n", len_w); + ret_i = 1; goto done; + } + + u3_sifter sif_u; + sifter_init(&sif_u, buf_y, len_w); + _mesa_sift_pact(&sif_u, &nex_u); + + if ( sif_u.rem_w && !sif_u.err_c ) { + fprintf(stderr, "pact: sift failed len=%u sif=%u\r\n", len_w, sif_u.rem_w); + _log_buf(buf_y, len_w); + ret_i = 1; goto done; + } + + bot_i = 1; + + if ( _test_cmp_head(&nex_u.hed_u, &pac_u->hed_u) ) { + fprintf(stderr, "pact: head cmp fail\r\n"); + ret_i = 1; + } + + switch ( pac_u->hed_u.typ_y ) { + case PACT_PEEK: { + if ( _test_cmp_name(&nex_u.pek_u.nam_u, &pac_u->pek_u.nam_u) ) { + fprintf(stderr, "%%peek name cmp fail\r\n"); + ret_i = 1; + } + } break; + + case PACT_PAGE: { + if ( _test_cmp_name(&nex_u.pag_u.nam_u, &pac_u->pag_u.nam_u) ) { + fprintf(stderr, "%%page name cmp fail\r\n"); + ret_i = 1; + } + else if ( _test_cmp_data(&nex_u.pag_u.dat_u, &pac_u->pag_u.dat_u) ) { + fprintf(stderr, "%%page data cmp fail\r\n"); + ret_i = 1; + } + } break; + + case PACT_POKE: { + if ( _test_cmp_name(&nex_u.pok_u.nam_u, &pac_u->pok_u.nam_u) ) { + fprintf(stderr, "%%poke name cmp fail\r\n"); + ret_i = 1; + } + else if ( _test_cmp_name(&nex_u.pok_u.pay_u, &pac_u->pok_u.pay_u) ) { + fprintf(stderr, "%%poke pay-name cmp fail\r\n"); + ret_i = 1; + } + else if ( _test_cmp_data(&nex_u.pok_u.dat_u, &pac_u->pok_u.dat_u) ) { + fprintf(stderr, "%%poke data cmp fail\r\n"); + ret_i = 1; + } + } break; + + default: { + fprintf(stderr, "test: strange packet\r\n"); + ret_i = 1; + } + } + +done: + if ( ret_i ) { + _log_head(&pac_u->hed_u); + log_pact(pac_u); + _log_buf(buf_y, len_w); + + if ( bot_i ) { + u3l_log(RED_TEXT); + _log_head(&nex_u.hed_u); + log_pact(&nex_u); + u3l_log(DEF_TEXT); + } + } + + c3_free(buf_y); + + return ret_i; +} + +static c3_y +_test_rand_bit(void* ptr_v) +{ + return rand() & 1; +} + +static c3_y +_test_rand_bits(void* ptr_v, c3_y len_y) +{ + assert( 8 >= len_y ); + return rand() & ((1 << len_y) - 1); +} + +static c3_w +_test_rand_word(void* ptr_v) +{ + c3_w low_w = rand(); + c3_w hig_w = rand(); + return (hig_w << 16) ^ (low_w & ((1 << 16) - 1)); +} + +static c3_d +_test_rand_chub(void* ptr_v) +{ + c3_w low_w = _test_rand_word(ptr_v); + c3_w hig_w = _test_rand_word(ptr_v); + return ((c3_d)hig_w << 32) ^ low_w; +} + +static c3_y +_test_rand_gulf_y(void* ptr_v, c3_y top_y) +{ + c3_y bit_y = c3_bits_word(top_y); + c3_y res_y = 0; + + if ( !bit_y ) return res_y; + + while ( 1 ) { + res_y = _test_rand_bits(ptr_v, bit_y); + + if ( res_y < top_y ) { + return res_y; + } + } +} + +static c3_w +_test_rand_gulf_w(void* ptr_v, c3_w top_w) +{ + c3_w bit_w = c3_bits_word(top_w); + c3_w res_w = 0; + + if ( !bit_w ) return res_w; + + while ( 1 ) { + res_w = _test_rand_word(ptr_v); + res_w &= (1 << bit_w) - 1; + + if ( res_w < top_w ) { + return res_w; + } + } +} + +static void +_test_rand_bytes(void* ptr_v, c3_w len_w, c3_y* buf_y) +{ + c3_w max_w = len_w / 2; + + while ( max_w-- ) { + c3_w wor_w = rand(); + *buf_y++ = (wor_w >> 0) & 0xff; + *buf_y++ = (wor_w >> 8) & 0xff; + } + + if ( len_w & 1 ) { + *buf_y = rand() & 0xff; + } +} + +const char* ta_c = "-~_.0123456789abcdefghijklmnopqrstuvwxyz"; + +static void +_test_rand_knot(void* ptr_v, c3_w len_w, c3_c* not_c) +{ + for ( c3_w i_w = 0; i_w < len_w; i_w++ ) { + *not_c++ = ta_c[_test_rand_gulf_y(ptr_v, 40)]; + } +} + +static void +_test_rand_path(void* ptr_v, c3_s len_s, c3_c* pat_c) +{ + c3_s not_s = 0; + + while ( len_s ) { + not_s = _test_rand_gulf_w(ptr_v, len_s); + _test_rand_knot(ptr_v, not_s, pat_c); + pat_c[not_s] = '/'; + pat_c += not_s + 1; + len_s -= not_s + 1; + } +} + +static void +_test_make_head(void* ptr_v, u3_mesa_head* hed_u) +{ + hed_u->nex_y = HOP_NONE; // XX + hed_u->pro_y = 1; + hed_u->typ_y = _test_rand_gulf_y(ptr_v, 3) + 1; + hed_u->hop_y = _test_rand_gulf_y(ptr_v, 8); + hed_u->mug_w = 0; + // XX set mug_w in etch? +} + +static void +_test_make_name(void* ptr_v, c3_s pat_s, u3_mesa_name* nam_u) +{ + _test_rand_bytes(ptr_v, 16, (c3_y*)nam_u->her_u); + nam_u->rif_w = _test_rand_word(ptr_v); + + nam_u->pat_s = _test_rand_gulf_w(ptr_v, pat_s); + nam_u->pat_c = c3_malloc(nam_u->pat_s + 1); + _test_rand_path(ptr_v, nam_u->pat_s, nam_u->pat_c); + nam_u->pat_c[nam_u->pat_s] = 0; + + nam_u->boq_y = _test_rand_bits(ptr_v, 8); + nam_u->nit_o = _test_rand_bits(ptr_v, 1); + + if ( c3y == nam_u->nit_o ) { + nam_u->aut_o = c3n; + nam_u->fra_d = 0; + } + else { + nam_u->aut_o = _test_rand_bits(ptr_v, 1); + nam_u->fra_d = _test_rand_chub(ptr_v); + } +} + +static void +_test_make_data(void* ptr_v, u3_mesa_data* dat_u) +{ + dat_u->tob_d = _test_rand_chub(ptr_v); + + memset(dat_u->aut_u.sig_y, 0, 64); + // dat_u->aut_u.len_y = 0; + memset(dat_u->aut_u.has_y, 0, sizeof(dat_u->aut_u.has_y)); + + switch ( dat_u->aut_u.typ_e = _test_rand_bits(ptr_v, 2) ) { + + case AUTH_SIGN: { + _test_rand_bytes(ptr_v, 64, dat_u->aut_u.sig_y); + } break; + + case AUTH_HMAC: { + _test_rand_bytes(ptr_v, 16, dat_u->aut_u.mac_y); + } break; + + case AUTH_NONE: { + + } break; + + case AUTH_PAIR: { + _test_rand_bytes(ptr_v, 32, dat_u->aut_u.has_y[0]); + _test_rand_bytes(ptr_v, 32, dat_u->aut_u.has_y[1]); + } break; + + default: break; + } + + dat_u->len_w = _test_rand_gulf_w(ptr_v, 1024); + dat_u->fra_y = c3_calloc(dat_u->len_w); + _test_rand_bytes(ptr_v, dat_u->len_w, dat_u->fra_y); +} + +static void +_test_make_pact(void* ptr_v, u3_mesa_pact* pac_u) +{ + _test_make_head(ptr_v, &pac_u->hed_u); + + switch ( pac_u->hed_u.typ_y ) { + case PACT_PEEK: { + _test_make_name(ptr_v, 277, &pac_u->pek_u.nam_u); + } break; + + case PACT_PAGE: { + _test_make_name(ptr_v, 277, &pac_u->pag_u.nam_u); + _test_make_data(ptr_v, &pac_u->pag_u.dat_u); + } break; + + case PACT_POKE: { + _test_make_name(ptr_v, 124, &pac_u->pok_u.nam_u); + _test_make_name(ptr_v, 124, &pac_u->pok_u.pay_u); + _test_make_data(ptr_v, &pac_u->pok_u.dat_u); + } break; + + default: break; // XX + } +} + +static c3_i +_test_rand_pact(c3_w bat_w) +{ + u3_mesa_pact pac_u; + void* ptr_v = 0; + + fprintf(stderr, "pact: test roundtrip %u random packets\r\n", bat_w); + + for ( c3_w i_w = 0; i_w < bat_w; i_w++ ) { + _test_make_pact(ptr_v, &pac_u); + + if ( _test_pact(&pac_u) ) { + fprintf(stderr, RED_TEXT "pact: roundtrip attempt %u failed\r\n", i_w); + exit(1); + } + + // XX free pat_s / buf_y + } + + return 0; +} + +static void +_test_sift_page() +{ + u3_mesa_pact pac_u; + memset(&pac_u,0, sizeof(u3_mesa_pact)); + pac_u.hed_u.typ_y = PACT_PAGE; + pac_u.hed_u.pro_y = 1; + u3l_log("%%page checking sift/etch idempotent"); + u3_mesa_name* nam_u = &pac_u.pag_u.nam_u; + + { + u3_noun her = u3v_wish("~hastuc-dibtux"); + u3r_chubs(0, 2, nam_u->her_u, her); + u3z(her); + } + nam_u->rif_w = 15; + nam_u->pat_c = "foo/bar"; + nam_u->pat_s = strlen(nam_u->pat_c); + nam_u->boq_y = 13; + nam_u->fra_d = 54; + nam_u->nit_o = c3n; + + u3_mesa_data* dat_u = &pac_u.pag_u.dat_u; + dat_u->aut_u.typ_e = AUTH_NONE; + dat_u->tob_d = 1000; + dat_u->len_w = 1024; + dat_u->fra_y = c3_calloc(1024); + // dat_u->fra_y[1023] = 1; + + if ( _test_pact(&pac_u) ) { + fprintf(stderr, RED_TEXT "%%page failed\r\n"); + exit(1); + } +} + + +static void +_test_encode_path(c3_c* pat_c) +{ + u3_noun wan = u3do("stab", u3dt("cat", 3, '/', u3i_string(pat_c))); + u3_noun hav = _mesa_encode_path(strlen(pat_c), (c3_y*)pat_c); + // u3m_p("hav", hav); + if ( c3n == u3r_sing(wan, hav) ) { + u3l_log(RED_TEXT); + u3l_log("path encoding mismatch"); + u3m_p("want", wan); + u3m_p("have", hav); + exit(1); + } +} + + +static void +_setup() +{ + c3_d len_d = u3_Ivory_pill_len; + c3_y* byt_y = u3_Ivory_pill; + u3_cue_xeno* sil_u; + u3_weak pil; + + u3C.wag_w |= u3o_hashless; + u3m_boot_lite(1 << 26); + sil_u = u3s_cue_xeno_init_with(ur_fib27, ur_fib28); + if ( u3_none == (pil = u3s_cue_xeno_with(sil_u, len_d, byt_y)) ) { + printf("*** fail _setup 1\n"); + exit(1); + } + u3s_cue_xeno_done(sil_u); + if ( c3n == u3v_boot_lite(pil) ) { + printf("*** fail _setup 2\n"); + exit(1); + } + + { + c3_w pid_w = getpid(); + srand(pid_w); + fprintf(stderr, "test: seeding rand() with pid %u\r\n", pid_w); + } +} + +int main() +{ + _setup(); + + _test_rand_pact(100000); + + _test_encode_path("foo/bar/baz"); + _test_encode_path("publ/0/xx//1/foo/g"); + return 0; +} + + +#endif diff --git a/vere/pkg/vere/io/mesa/pact_test.c b/vere/pkg/vere/io/mesa/pact_test.c new file mode 100644 index 0000000..62fd4fe --- /dev/null +++ b/vere/pkg/vere/io/mesa/pact_test.c @@ -0,0 +1,3 @@ +#define PACT_TEST + +#include "pact.c" diff --git a/vere/pkg/vere/io/serial.h b/vere/pkg/vere/io/serial.h new file mode 100644 index 0000000..e69de29 diff --git a/vere/pkg/vere/io/term.c b/vere/pkg/vere/io/term.c new file mode 100644 index 0000000..c8af965 --- /dev/null +++ b/vere/pkg/vere/io/term.c @@ -0,0 +1,1821 @@ +/// @file + +#include "vere.h" + +#include "noun.h" + +// macros for string literal args/buffers +// +// since (sizeof(s) - 1) is used for vector length, parameters +// must be appropriately typed. use with care! +// +#define TERM_LIT(s) sizeof(s) - 1, (const c3_y*)(s) +#define TERM_LIT_BUF(s) uv_buf_init(s, sizeof(s) - 1) + +static u3_utty* _term_main(); +static void _term_read_cb(uv_stream_t* tcp_u, + ssize_t siz_i, + const uv_buf_t* buf_u); +static void _term_it_send_stub(u3_utty* uty_u, u3_noun tub); + +/* u3_write_fd(): retry interrupts, continue partial writes, assert errors. +*/ +void +u3_write_fd(c3_i fid_i, const void* buf_v, size_t len_i) +{ + ssize_t ret_i; + + while ( len_i > 0 ) { + c3_w lop_w = 0; + // retry interrupt/async errors + // + do { + // abort pathological retry loop + // + if ( 100 == ++lop_w ) { + fprintf(stderr, "term: write loop: %s\r\n", strerror(errno)); + return; + } + ret_i = write(fid_i, buf_v, len_i); + } + while ( (ret_i < 0) + && ( (errno == EINTR) + || (errno == EAGAIN) + || (errno == EWOULDBLOCK) )); + + // assert on true errors + // + // NB: can't call u3l_log here or we would re-enter u3_write_fd() + // + if ( ret_i < 0 ) { + fprintf(stderr, "term: write failed %s\r\n", strerror(errno)); + u3_assert(0); + } + // continue partial writes + // + else { + len_i -= ret_i; + buf_v += ret_i; + } + } +} + +/* _term_msc_out_host(): unix microseconds from current host time. +*/ +static c3_d +_term_msc_out_host() +{ + struct timeval tim_tv; + gettimeofday(&tim_tv, 0); + return 1000000ULL * tim_tv.tv_sec + tim_tv.tv_usec; +} + +/* _term_alloc(): libuv buffer allocator. +*/ +static void +_term_alloc(uv_handle_t* had_u, + size_t len_i, + uv_buf_t* buf + ) +{ + // this read can range from a single byte to a paste buffer + // 123 bytes has been chosen because its not a power of 2 + // this is probably still broken + // + void* ptr_v = c3_malloc(123); + *buf = uv_buf_init(ptr_v, 123); +} + +/* u3_term_log_init(): initialize terminal for logging +*/ +void +u3_term_log_init(void) +{ + u3_utty* uty_u; + + if ( c3y == u3_Host.ops_u.tem ) { + uty_u = c3_calloc(sizeof(u3_utty)); + uty_u->fid_i = 1; + + uv_pipe_init(u3L, &(uty_u->pin_u.pip_u), 0); + uv_pipe_init(u3L, &(uty_u->pop_u.pip_u), 0); + uv_pipe_open(&(uty_u->pop_u.pip_u), uty_u->fid_i); + } + else { + // Initialize event processing. Rawdog it. + // + const c3_c* err_c; + if ( NULL == (uty_u = u3_ptty_init(u3L, &err_c)) ) { + fprintf(stderr, "vere: unable to initialize terminal (%s)\r\n" + " use -t to disable interactivity\r\n", err_c); + u3_king_bail(); + } + + // configure output escape sequences + // + // our requirements are minimal here, so we bypass terminfo + // and simply use constant sequences. + // + { + uty_u->ufo_u.reg_u = TERM_LIT_BUF("\033[r"); + + uty_u->ufo_u.suc_u = TERM_LIT_BUF("\033[s"); + uty_u->ufo_u.ruc_u = TERM_LIT_BUF("\033[u"); + uty_u->ufo_u.cub_u = TERM_LIT_BUF("\x8"); + + uty_u->ufo_u.clr_u = TERM_LIT_BUF("\033[H\033[2J"); + uty_u->ufo_u.cel_u = TERM_LIT_BUF("\033[K"); + + uty_u->ufo_u.bel_u = TERM_LIT_BUF("\x7"); + } + + // Initialize mirror and accumulator state. + // + { + uty_u->tat_u.mir.lin = u3_nul; + uty_u->tat_u.mir.rus_w = 0; + uty_u->tat_u.mir.cus_w = 0; + + uty_u->tat_u.esc.ape = c3n; + uty_u->tat_u.esc.bra = c3n; + uty_u->tat_u.esc.mou = c3n; + uty_u->tat_u.esc.ton_y = 0; + uty_u->tat_u.esc.col_y = 0; + + uty_u->tat_u.fut.len_w = 0; + uty_u->tat_u.fut.wid_w = 0; + uty_u->tat_u.fut.imp = u3_nul; + } + + // default size + // + { + uty_u->tat_u.siz.col_l = 80; + uty_u->tat_u.siz.row_l = 0; + } + + // initialize spinner state + // + { + uty_u->tat_u.sun_u.diz_o = c3n; + uty_u->tat_u.sun_u.eve_d = 0; + uty_u->tat_u.sun_u.end_d = 0; + } + } + + // This is terminal 1, linked in host. + // + { + uty_u->tid_l = 1; + uty_u->nex_u = 0; + u3_Host.uty_u = uty_u; + } + + // Disable I/O buffering on terminal streams. + // This is not necessary if output is a tty, + // but helps when output is redirected. + // + { + fflush(stdout); + fflush(stderr); + setvbuf(stdout, NULL, _IONBF, 0); + setvbuf(stderr, NULL, _IONBF, 0); + } + + // if terminal/tty is enabled + // + if ( c3n == u3_Host.ops_u.tem ) { + // Start raw input. + // + if ( c3n == uty_u->sta_f(uty_u) ) { + u3_assert(!"init-tcsetattr"); + } + + // initialize spinner timeout + // + { + uv_timer_init(u3L, &uty_u->tat_u.sun_u.tim_u); + uty_u->tat_u.sun_u.tim_u.data = uty_u; + } + } +} + +/* u3_term_log_exit(): clean up terminal. +*/ +void +u3_term_log_exit(void) +{ + if ( c3n == u3_Host.ops_u.tem ) { + u3_utty* uty_u; + + for ( uty_u = u3_Host.uty_u; uty_u; uty_u = uty_u->nex_u ) { + if ( uty_u->fid_i == -1 ) { continue; } + if ( c3n == uty_u->sto_f(uty_u) ) { + u3_assert(!"exit-tcsetattr"); + } + u3_write_fd(uty_u->fid_i, "\r\n", 2); + } + } + + if ( u3_Host.uty_u ) { + uv_close((uv_handle_t*)&u3_Host.uty_u->pin_u, 0); + uv_close((uv_handle_t*)&u3_Host.uty_u->pop_u, 0); + } +} + +/* _term_it_write_cb(): general write callback. +*/ +static void +_term_it_write_cb(uv_write_t* wri_u, c3_i sas_i) +{ + // write failure is logged, but otherwise ignored. + // + if ( 0 != sas_i ) { + u3l_log("term: write: %s", uv_strerror(sas_i)); + } + + c3_free(wri_u->data); + c3_free(wri_u); +} + +/* _term_it_write(): write libuv buffer, freeing pointer. +*/ +static void +_term_it_write(u3_utty* uty_u, + uv_buf_t* buf_u, + void* ptr_v) +{ + // work off a local copy of the buffer, in case we need + // to manipulate the length/pointer + // + uv_buf_t fub_u = { .base = buf_u->base, .len = buf_u->len }; + uv_stream_t* han_u = (uv_stream_t*)&(uty_u->pop_u); + c3_i ret_i; + + // try to write synchronously + // + while ( 1 ) { + ret_i = uv_try_write(han_u, &fub_u, 1); + + if ( (ret_i > 0) && (ret_i < fub_u.len) ) { + fub_u.len -= ret_i; + fub_u.base += ret_i; + continue; + } + else { + break; + } + } + + // cue an async write if necessary + // + if ( UV_EAGAIN == ret_i ) { + uv_write_t* wri_u = c3_malloc(sizeof(*wri_u)); + wri_u->data = ptr_v; + + // invoke callback manually on error + // + if ( (ret_i = uv_write(wri_u, han_u, &fub_u, 1, _term_it_write_cb)) ) { + _term_it_write_cb(wri_u, ret_i); + } + } + else { + // synchronous write failure is logged, but otherwise ignored + // + if ( ret_i < 0 ) { + u3l_log("term: write: %s", uv_strerror(ret_i)); + } + + c3_free(ptr_v); + } +} + +/* _term_it_dump_buf(): write static buffer. +*/ +static void +_term_it_dump_buf(u3_utty* uty_u, + uv_buf_t* buf_u) +{ + if ( buf_u->len ) { + _term_it_write(uty_u, buf_u, 0); + } +} + +/* _term_it_dump(): write static vector. +*/ +static void +_term_it_dump(u3_utty* uty_u, + c3_w len_w, + const c3_y* hun_y) +{ + uv_buf_t buf_u = uv_buf_init((c3_c*)hun_y, len_w); + _term_it_dump_buf(uty_u, &buf_u); +} + +/* _term_it_send(): write dynamic vector, freeing pointer. +*/ +static void +_term_it_send(u3_utty* uty_u, + c3_w len_w, + c3_y* hun_y) +{ + if ( len_w ) { + uv_buf_t buf_u = uv_buf_init((c3_c*)hun_y, len_w); + _term_it_write(uty_u, &buf_u, (void*)hun_y); + } + else { + c3_free(hun_y); + } +} + +/* _term_it_send_csi(): send csi escape sequence +*/ +static void +_term_it_send_csi(u3_utty *uty_u, c3_c cmd_c, c3_w num_w, ...) +{ + va_list ap; + va_start(ap, num_w); + + // allocate for escape sequence (2), command char (1), + // argument digits (5 per arg) and separators (1 per arg, minus 1). + // freed via _term_it_write. + // + c3_c* pas_c = c3_malloc( 2 + num_w * 6 ); + c3_y len_y = 0; + + pas_c[len_y++] = '\033'; + pas_c[len_y++] = '['; + + while ( num_w-- ) { + c3_w par_w = va_arg(ap, c3_w); + len_y += sprintf(pas_c+len_y, "%d", par_w); + + if ( num_w ) { + pas_c[len_y++] = ';'; + } + } + + pas_c[len_y++] = cmd_c; + + _term_it_send(uty_u, len_y, (c3_y*)pas_c); + + va_end(ap); +} + +/* _term_it_free_line(): wipe line stored by _term_it_save_stub +*/ +static void +_term_it_free_line(u3_utty* uty_u) +{ + u3z(uty_u->tat_u.mir.lin); + uty_u->tat_u.mir.lin = u3_nul; +} + +/* _term_it_clear_line(): clear line of cursor +*/ +static void +_term_it_clear_line(u3_utty* uty_u) +{ + _term_it_dump(uty_u, TERM_LIT("\r")); + _term_it_dump_buf(uty_u, &uty_u->ufo_u.cel_u); + _term_it_dump_buf(uty_u, &uty_u->ufo_u.ruc_u); + + // if we're clearing the bottom line, clear our mirror of it too + // + if ( uty_u->tat_u.siz.row_l - 1 == uty_u->tat_u.mir.rus_w ) { + _term_it_free_line(uty_u); + } +} + +/* _term_it_show_blank(): blank the screen. +*/ +static void +_term_it_show_blank(u3_utty* uty_u) +{ + _term_it_dump_buf(uty_u, &uty_u->ufo_u.clr_u); + _term_it_dump_buf(uty_u, &uty_u->ufo_u.ruc_u); +} + +/* _term_it_move_cursor(): move cursor to row & column + * + * row 0 is at the top, col 0 is to the left. + * if the given position exceeds the known window size, + * it is clipped to stay within the window. + */ +static void +_term_it_move_cursor(u3_utty* uty_u, c3_w col_w, c3_w row_w) +{ + c3_l row_l = uty_u->tat_u.siz.row_l; + c3_l col_l = uty_u->tat_u.siz.col_l; + if ( row_w >= row_l ) { row_w = row_l - 1; } + if ( col_w >= col_l ) { col_w = col_l - 1; } + + _term_it_send_csi(uty_u, 'H', 2, row_w + 1, col_w + 1); + _term_it_dump_buf(uty_u, &uty_u->ufo_u.suc_u); + + uty_u->tat_u.mir.rus_w = row_w; + uty_u->tat_u.mir.cus_w = col_w; +} + +/* _term_it_show_line(): print at cursor +*/ +static void +_term_it_show_line(u3_utty* uty_u, c3_w* lin_w, c3_w wor_w) +{ + u3_utat* tat_u = &uty_u->tat_u; + c3_y* hun_y = (c3_y*)lin_w; + c3_w byt_w = 0; + + // convert lin_w in-place from utf-32 to utf-8 + // + // (this is just a hand-translation of +tuft) + // XX refactor for use here and in a jet + // + { + c3_w car_w, i_w; + + for ( i_w = 0; i_w < wor_w; i_w++ ) { + car_w = lin_w[i_w]; + + if ( 0x7f >= car_w ) { + hun_y[byt_w++] = car_w; + } + else if ( 0x7ff >= car_w ) { + hun_y[byt_w++] = 0xc0 ^ ((car_w >> 6) & 0x1f); + hun_y[byt_w++] = 0x80 ^ (car_w & 0x3f); + } + else if ( 0xffff >= car_w ) { + hun_y[byt_w++] = 0xe0 ^ ((car_w >> 12) & 0xf); + hun_y[byt_w++] = 0x80 ^ ((car_w >> 6) & 0x3f); + hun_y[byt_w++] = 0x80 ^ (car_w & 0x3f); + } + else { + hun_y[byt_w++] = 0xf0 ^ ((car_w >> 18) & 0x7); + hun_y[byt_w++] = 0x80 ^ ((car_w >> 12) & 0x3f); + hun_y[byt_w++] = 0x80 ^ ((car_w >> 6) & 0x3f); + hun_y[byt_w++] = 0x80 ^ (car_w & 0x3f); + } + } + } + + //NOTE lin_w freed through hun_y by _send + _term_it_send(uty_u, byt_w, hun_y); + _term_it_dump_buf(uty_u, &uty_u->ufo_u.ruc_u); +} + +/* _term_it_restore_line(): re-render original line at bottom of screen +*/ +static void +_term_it_restore_line(u3_utty* uty_u) +{ + u3_utat* tat_u = &uty_u->tat_u; + + _term_it_send_csi(uty_u, 'H', 2, tat_u->siz.row_l, 1); + _term_it_dump_buf(uty_u, &uty_u->ufo_u.cel_u); + _term_it_send_stub(uty_u, u3k(tat_u->mir.lin)); + //NOTE send_stub restores cursor position +} + +/* _term_it_save_stub(): store line if relevant to internal logic + */ +static void +_term_it_save_stub(u3_utty* uty_u, u3_noun tub) +{ + u3_utat* tat_u = &uty_u->tat_u; + u3_noun lin = tat_u->mir.lin; + + // keep track of changes to bottom-most line, to aid screen in restoration + // after printfs or spinners. + // -t mode doesn't need this logic, because it doesn't render the spinner. + // + if ( ( tat_u->siz.row_l - 1 == tat_u->mir.rus_w ) && + ( c3n == u3_Host.ops_u.tem ) ) { + lin = u3dq("wail:klr:format", lin, tat_u->mir.cus_w, u3k(tub), ' '); + lin = u3do("pact:klr:format", lin); + } + + tat_u->mir.lin = lin; + u3z(tub); +} + +/* _term_it_show_nel(): render newline, moving cursor down +*/ +static void +_term_it_show_nel(u3_utty* uty_u) +{ + if ( c3y == u3_Host.ops_u.tem ) { + _term_it_dump(uty_u, TERM_LIT("\n")); + } + else { + _term_it_dump(uty_u, TERM_LIT("\r\n")); + _term_it_dump_buf(uty_u, &uty_u->ufo_u.suc_u); + } + + uty_u->tat_u.mir.cus_w = 0; + if ( uty_u->tat_u.mir.rus_w < uty_u->tat_u.siz.row_l - 1 ) { + uty_u->tat_u.mir.rus_w++; + } + else { + // newline at bottom of screen, so bottom line is now empty + // + _term_it_free_line(uty_u); + } +} + +/* _term_it_path(): path for console file. +*/ +static c3_c* +_term_it_path(u3_noun pax) +{ + c3_w len_w = 0; + c3_c *pas_c; + + // measure + // + { + u3_noun wiz = pax; + + while ( u3_nul != wiz ) { + len_w += (1 + u3r_met(3, u3h(wiz))); + wiz = u3t(wiz); + } + } + + // cut + // + pas_c = c3_malloc(len_w + 1); + pas_c[len_w] = '\0'; + { + u3_noun wiz = pax; + c3_c* waq_c = pas_c; + + while ( u3_nul != wiz ) { + c3_w tis_w = u3r_met(3, u3h(wiz)); + + if ( (u3_nul == u3t(wiz)) ) { + *waq_c++ = '.'; + } else *waq_c++ = '/'; + + u3r_bytes(0, tis_w, (c3_y*)waq_c, u3h(wiz)); + waq_c += tis_w; + + wiz = u3t(wiz); + } + *waq_c = 0; + } + u3z(pax); + return pas_c; +} + +/* _term_it_save(): save file by path. +*/ +static void +_term_it_save(u3_noun pax, u3_noun pad) +{ + c3_c* pax_c = _term_it_path(pax); + + u3_unix_save(pax_c, pad); + c3_free(pax_c); +} + +/* _term_ovum_plan(): plan term ovums, configuring spinner. +*/ +static u3_ovum* +_term_ovum_plan(u3_auto* car_u, u3_noun wir, u3_noun cad) +{ + u3_ovum* egg_u = u3_auto_plan(car_u, u3_ovum_init(0, c3__d, wir, cad)); + + // term events have no spinner label + // + u3z(egg_u->pin_u.lab); + egg_u->pin_u.lab = u3_blip; + + return egg_u; +} + +/* _term_io_belt(): send belt. +*/ +static void +_term_io_belt(u3_utty* uty_u, u3_noun blb) +{ + // XX s/b u3dc("scot", c3__ud, uty_u->tid_l) + // + u3_noun wir = u3nt(c3__term, '1', u3_nul); + u3_noun cad = u3nc(c3__belt, blb); + + u3_assert( 1 == uty_u->tid_l ); + u3_assert( uty_u->car_u ); + + { + u3_ovum* egg_u = _term_ovum_plan(uty_u->car_u, wir, cad); + + // no spinner delay on %ret + // + if ( c3__ret == u3h(blb) ) { + egg_u->pin_u.del_o = c3n; + } + } +} + +/* _term_io_spit(): input the buffer (if any), then input the belt (if any) +*/ +static void +_term_io_spit(u3_utty* uty_u, u3_noun bet) { + u3_utat* tat_u = &uty_u->tat_u; + if (u3_nul != tat_u->fut.imp) { + _term_io_belt(uty_u, u3nc(c3__txt, u3kb_flop(tat_u->fut.imp))); + tat_u->fut.imp = u3_nul; + } + if (u3_none != bet) { + _term_io_belt(uty_u, bet); + } +} + +/* _term_io_suck_char(): process a single character. + * + * Note that this accumulates simple inputs in a buffer, and is not + * guaranteed to flush it fully. After a call (or sequence of calls) + * to this function, please call _term_io_spit(uty_u, u3_none) to + * flush any remainder. + */ +static void +_term_io_suck_char(u3_utty* uty_u, c3_y cay_y) +{ + u3_utat* tat_u = &uty_u->tat_u; + + // escape sequences + // + if ( c3y == tat_u->esc.ape ) { + if ( c3y == tat_u->esc.bra ) { + // vt sequence + // + if ( cay_y == '~' ) { + switch ( tat_u->esc.seq_y ) { + default: { + _term_it_dump_buf(uty_u, &uty_u->ufo_u.bel_u); + break; + } + case '3': _term_io_spit(uty_u, u3nc(c3__del, u3_nul)); break; + } + tat_u->esc.ape = tat_u->esc.bra = c3n; + tat_u->esc.seq_y = 0; + } + else if ( cay_y <= '9' ) { + tat_u->esc.seq_y = cay_y; + } + // xterm sequence + // + else { + switch ( cay_y ) { + default: { + _term_it_dump_buf(uty_u, &uty_u->ufo_u.bel_u); + break; + } + case 'A': _term_io_spit(uty_u, u3nc(c3__aro, 'u')); break; + case 'B': _term_io_spit(uty_u, u3nc(c3__aro, 'd')); break; + case 'C': _term_io_spit(uty_u, u3nc(c3__aro, 'r')); break; + case 'D': _term_io_spit(uty_u, u3nc(c3__aro, 'l')); break; + // + //NOTE mouse reporting not presently enabled, see #109 + case 'M': tat_u->esc.mou = c3y; break; + } + tat_u->esc.ape = tat_u->esc.bra = c3n; + } + } + else { + if ( (cay_y >= 'a') && (cay_y <= 'z') ) { + tat_u->esc.ape = c3n; + // XX for backwards compatibility, check kelvin version + // and fallback to [%met @c] + // + _term_io_spit(uty_u, u3nt(c3__mod, c3__met, cay_y)); + } + else if ( 8 == cay_y || 127 == cay_y ) { + tat_u->esc.ape = c3n; + // XX backwards compatibility [%met @c] + // + _term_io_spit(uty_u, u3nq(c3__mod, c3__met, c3__bac, u3_nul)); + } + else if ( ('[' == cay_y) || ('O' == cay_y) ) { + tat_u->esc.bra = c3y; + } + else { + tat_u->esc.ape = c3n; + + _term_it_dump_buf(uty_u, &uty_u->ufo_u.bel_u); + } + } + } + // mouse input + // + else if ( c3y == tat_u->esc.mou ) { + if ( 0 == tat_u->esc.ton_y ) { + tat_u->esc.ton_y = cay_y - 31; + } + else if ( 0 == tat_u->esc.col_y ) { + tat_u->esc.col_y = cay_y - 32; + } + else { + c3_y row_y = cay_y - 32; + // only acknowledge button 1 presses within our known window + if ( 1 != tat_u->esc.ton_y && row_y <= tat_u->siz.row_l ) { + _term_io_spit(uty_u, u3nt(c3__hit, tat_u->esc.col_y - 1, row_y - 1)); + } + tat_u->esc.mou = c3n; + tat_u->esc.ton_y = tat_u->esc.col_y = 0; + } + } + // unicode inputs + // + else if ( 0 != tat_u->fut.wid_w ) { + tat_u->fut.syb_y[tat_u->fut.len_w++] = cay_y; + + if ( tat_u->fut.len_w == tat_u->fut.wid_w ) { + u3_noun huv = u3i_bytes(tat_u->fut.wid_w, tat_u->fut.syb_y); + u3_noun wug; + + // XX implement directly here and jet + // + wug = u3do("taft", huv); + + tat_u->fut.len_w = tat_u->fut.wid_w = 0; + tat_u->fut.imp = u3nc(wug, tat_u->fut.imp); + } + } + // individual characters + // + else { + if ( (cay_y >= 32) && (cay_y < 127) ) { // visual ascii + tat_u->fut.imp = u3nc(cay_y, tat_u->fut.imp); + } + else if ( 0 == cay_y ) { // null + _term_it_dump_buf(uty_u, &uty_u->ufo_u.bel_u); + } + else if ( 8 == cay_y || 127 == cay_y ) { // backspace & delete + _term_io_spit(uty_u, u3nc(c3__bac, u3_nul)); + } + else if ( 10 == cay_y || 13 == cay_y ) { // newline & carriage return + _term_io_spit(uty_u, u3nc(c3__ret, u3_nul)); + } + else if ( cay_y <= 26 ) { + // XX backwards compatibility [%ctl @c] + // + _term_io_spit(uty_u, u3nt(c3__mod, c3__ctl, ('a' + (cay_y - 1)))); + } + else if ( 27 == cay_y ) { + tat_u->esc.ape = c3y; + } + else if ( cay_y >= 128 ) { + tat_u->fut.len_w = 1; + tat_u->fut.syb_y[0] = cay_y; + + if ( cay_y < 224 ) { + tat_u->fut.wid_w = 2; + } else if ( cay_y < 240 ) { + tat_u->fut.wid_w = 3; + } else tat_u->fut.wid_w = 4; + } + } +} + +/* _term_suck(): process a chunk of input +*/ + +/* + * `nread` (siz_w) is > 0 if there is data available, 0 if libuv is done reading for + * now, or < 0 on error. + * + * The callee is responsible for closing the stream when an error happens + * by calling uv_close(). Trying to read from the stream again is undefined. + * + * The callee is responsible for freeing the buffer, libuv does not reuse it. + * The buffer may be a null buffer (where buf->base=NULL and buf->len=0) on + * error. + */ + +static inline void +_term_suck(u3_utty* uty_u, const c3_y* buf, ssize_t siz_i) +{ + { + if ( siz_i == UV_EOF ) { + // We hear EOF (on the third read callback) if + // 2x the _term_alloc() buffer size is pasted. + // The process hangs if we do nothing (and ctrl-z + // then corrupts the event log), so we force shutdown. + // + u3l_log("term: hangup (EOF)"); + + // XX revise + // + u3_pier_bail(u3_king_stub()); + } + else if ( siz_i < 0 ) { + u3l_log("term %d: read: %s", uty_u->tid_l, uv_strerror(siz_i)); + } + else { + c3_i i; + + for ( i=0; i < siz_i; i++ ) { + _term_io_suck_char(uty_u, buf[i]); + } + _term_io_spit(uty_u, u3_none); + } + } +} + +/* _term_read_cb(): server read callback. +*/ +static void +_term_read_cb(uv_stream_t* tcp_u, + ssize_t siz_i, + const uv_buf_t * buf_u) +{ + u3_utty* uty_u = (u3_utty*)(void*)tcp_u; + _term_suck(uty_u, (const c3_y*)buf_u->base, siz_i); + c3_free(buf_u->base); +} + +/* _term_spin_step(): advance spinner state and (re-)render. +*/ +static void +_term_spin_step(u3_utty* uty_u) +{ + u3_utat* tat_u = &uty_u->tat_u; + c3_w bac_w; + + // calculate backoff from end of line, or bail out + // + { + c3_w cus_w = tat_u->mir.cus_w; + c3_l col_l = tat_u->siz.col_l; + + if ( cus_w >= col_l ) { // shenanigans! + return; + } + + bac_w = col_l - 1 - cus_w; + } + + c3_d lag_d = tat_u->sun_u.eve_d++; + const c3_c daz_c[] = "|/-\\"; + // | + « + why + » + \0 + c3_c buf_c[1 + 2 + 4 + 2 + 1]; + c3_c* cur_c = buf_c; + c3_w sol_w = 1; // spinner length (utf-32) + + // set spinner char + // + *cur_c++ = daz_c[lag_d % (sizeof(daz_c) - 1)]; + + // if we have a spinner, add it between brackets + // + if ( tat_u->sun_u.why_c[0] ) { + *cur_c++ = '\xc2'; + *cur_c++ = '\xab'; + sol_w++; + + { + c3_c* why_c = tat_u->sun_u.why_c; + *cur_c++ = *why_c++; + *cur_c++ = *why_c++; + *cur_c++ = *why_c++; + *cur_c++ = *why_c; + // XX assumes one glyph per char + // + sol_w += 4; + } + + *cur_c++ = '\xc2'; + *cur_c++ = '\xbb'; + sol_w++; + } + + *cur_c = '\0'; + + // write spinner, adjusting cursor as needed + // + // NB: we simply bail out if anything goes wrong + // + { + uv_buf_t lef_u = uty_u->ufo_u.cub_u; + c3_i fid_i = uty_u->fid_i; + + // One-time cursor backoff. + // + if ( c3n == tat_u->sun_u.diz_o ) { + // if we know where the bottom line is, and the cursor is not on it, + // move it to the bottom left + // + if ( tat_u->siz.row_l && tat_u->mir.rus_w < tat_u->siz.row_l - 1 ) { + _term_it_send_csi(uty_u, 'H', 2, tat_u->siz.row_l, 1); + } + + c3_w i_w; + for ( i_w = bac_w; i_w < sol_w; i_w++ ) { + if ( lef_u.len != write(fid_i, lef_u.base, lef_u.len) ) { + return; + } + } + + tat_u->sun_u.diz_o = c3y; + } + + { + c3_w len_w = cur_c - buf_c; + if ( len_w != write(fid_i, buf_c, len_w) ) { + return; + } + } + + // Cursor stays on spinner. + // + while ( sol_w-- ) { + if ( lef_u.len != write(fid_i, lef_u.base, lef_u.len) ) { + return; + } + } + } +} + +/* _term_spin_timer_cb(): render spinner +*/ +static void +_term_spin_timer_cb(uv_timer_t* tim_u) +{ + u3_utty* uty_u = tim_u->data; + _term_spin_step(uty_u); +} + +#define _SPIN_FAST_US 100UL // spinner activation delay when expected +#define _SPIN_COOL_US 500UL // spinner activation delay when cool +#define _SPIN_WARM_US 50UL // spinner activation delay when warm +#define _SPIN_RATE_US 250UL // spinner rate (ms/frame) +#define _SPIN_IDLE_US 500UL // spinner cools down if stopped this long + +/* u3_term_start_spinner(): prepare spinner state. RETAIN. +*/ +void +u3_term_start_spinner(u3_atom say, c3_o del_o) +{ + if ( c3n == u3_Host.ops_u.tem ) { + u3_utty* uty_u = _term_main(); + u3_utat* tat_u = &uty_u->tat_u; + + tat_u->sun_u.why_c[4] = 0; + u3r_bytes(0, 4, (c3_y*)tat_u->sun_u.why_c, say); + + tat_u->sun_u.eve_d = 0; + // XX must be c3n for cursor backoff from EOL? + tat_u->sun_u.diz_o = c3n; + + { + c3_d now_d = _term_msc_out_host(); + c3_d end_d = tat_u->sun_u.end_d; + c3_d wen_d = (c3n == del_o) ? _SPIN_FAST_US : + (now_d - end_d < _SPIN_IDLE_US) ? + _SPIN_WARM_US : _SPIN_COOL_US; + + uv_timer_start(&tat_u->sun_u.tim_u, + _term_spin_timer_cb, + wen_d, _SPIN_RATE_US); + } + } +} + +/* u3_term_stop_spinner(): reset spinner state and restore input line. +*/ +void +u3_term_stop_spinner(void) +{ + if ( c3n == u3_Host.ops_u.tem ) { + u3_utty* uty_u = _term_main(); + u3_utat* tat_u = &uty_u->tat_u; + + memset(tat_u->sun_u.why_c, 0, 5); + + uv_timer_stop(&tat_u->sun_u.tim_u); + + if ( c3y == tat_u->sun_u.diz_o ) { + _term_it_restore_line(uty_u); + tat_u->sun_u.end_d = _term_msc_out_host(); + tat_u->sun_u.diz_o = c3n; + } + else { + tat_u->sun_u.end_d = 0; + } + } +} + +/* _term_main(): return main or console terminal. +*/ +static u3_utty* +_term_main() +{ + u3_utty* uty_u; + + for ( uty_u = u3_Host.uty_u; uty_u; uty_u = uty_u->nex_u ) { + if ( (uty_u->fid_i != -1) && (uty_u->fid_i <= 2) ) { + return uty_u; + } + } + return u3_Host.uty_u; +} + +/* _term_ef_get(): terminal by id. +*/ +static u3_utty* +_term_ef_get(c3_l tid_l) +{ + if ( 0 != tid_l ) { + u3_utty* uty_u; + + for ( uty_u = u3_Host.uty_u; uty_u; uty_u = uty_u->nex_u ) { + if ( tid_l == uty_u->tid_l ) { + return uty_u; + } + } + } + return _term_main(); +} + +/* u3_term_get_blew(): return window size [columns rows]. +*/ +u3_noun +u3_term_get_blew(c3_l tid_l) +{ + u3_utty* uty_u = _term_ef_get(tid_l); + c3_l col_l, row_l; + + if ( (c3y == u3_Host.ops_u.tem) || !uty_u || + (c3y != uty_u->wsz_f(uty_u, &col_l, &row_l)) ) + { + col_l = 80; + row_l = 24; + } + + if ( uty_u ) { + uty_u->tat_u.siz.col_l = col_l; + uty_u->tat_u.siz.row_l = row_l; + } + + return u3nc(col_l, row_l); +} + +/* u3_term_ef_winc(): window change. Just console right now. +*/ +void +u3_term_ef_winc(void) +{ + // XX groace, this should be a global handler sent to each pier + // + if ( u3_Host.uty_u->car_u ) { + u3_noun wir = u3nt(c3__term, '1', u3_nul); + u3_noun cad = u3nc(c3__blew, u3_term_get_blew(1)); + + u3_assert( 1 == u3_Host.uty_u->tid_l ); + + _term_ovum_plan(u3_Host.uty_u->car_u, wir, cad); + } +} + +/* u3_term_ef_ctlc(): send ^C on console. +*/ +void +u3_term_ef_ctlc(void) +{ + u3_utty* uty_u = _term_main(); + + if ( uty_u->car_u ) { + u3_noun wir = u3nt(c3__term, '1', u3_nul); + u3_noun cad = u3nq(c3__belt, c3__mod, c3__ctl, 'c'); + + u3_assert( 1 == uty_u->tid_l ); + _term_ovum_plan(uty_u->car_u, wir, cad); + } +} + +/* _term_it_put_value(): put numeric color value on lin_w. +*/ +static c3_w +_term_it_put_value(c3_w* lin_w, + u3_atom val) +{ + c3_c str_c[4]; + c3_w len = snprintf(str_c, 4, "%d", val % 256); + for ( c3_w i_w = 0; i_w < len; i_w++ ) { + lin_w[i_w] = str_c[i_w]; + } + u3z(val); + return len; +} + +/* _term_it_put_tint(): put ansi color id on lin_w. RETAINS col. +*/ +static c3_w +_term_it_put_tint(c3_w* lin_w, + u3_noun col) +{ + u3_noun red, gre, blu; + c3_o tru = u3r_trel(col, &red, &gre, &blu); + + // 24-bit color + // + if ( c3y == tru ) { + c3_w n = 0; + + *lin_w++ = '8'; + *lin_w++ = ';'; + *lin_w++ = '2'; + *lin_w++ = ';'; + + c3_w m = _term_it_put_value(lin_w, red); + n += m; + lin_w += m; + + *lin_w++ = ';'; + + m = _term_it_put_value(lin_w, gre); + n += m; + lin_w += m; + + *lin_w++ = ';'; + + n += _term_it_put_value(lin_w, blu); + + return n + 6; + } + // standard color + // + else { + switch ( col ) { + default: + case u3_nul: *lin_w = '9'; break; + case 'k': *lin_w = '0'; break; + case 'r': *lin_w = '1'; break; + case 'g': *lin_w = '2'; break; + case 'y': *lin_w = '3'; break; + case 'b': *lin_w = '4'; break; + case 'm': *lin_w = '5'; break; + case 'c': *lin_w = '6'; break; + case 'w': *lin_w = '7'; break; + } + return 1; + } +} + +/* _term_it_put_deco(): put ansi sgr code on lin_w. RETAINS dec. +*/ +static void +_term_it_put_deco(c3_w* lin_w, + u3_noun dec) +{ + switch ( dec ) { + default: + case u3_nul: *lin_w = '0'; break; + case c3__br: *lin_w = '1'; break; + case c3__un: *lin_w = '4'; break; + case c3__bl: *lin_w = '5'; break; + } +} + +/* _term_it_send_stub(): send styled text, without saving +*/ +static void +_term_it_send_stub(u3_utty* uty_u, + u3_noun tub) +{ + c3_w tuc_w = u3qb_lent(tub); + + // count the amount of characters across all stubs + // + c3_w lec_w = 0; + { + u3_noun nub = tub; + while ( u3_nul != nub ) { + u3_noun nib = u3t(u3h(nub)); + lec_w = lec_w + u3qb_lent(nib); + nub = u3t(nub); + } + } + + // allocate enough memory for every display character, plus styles + // + //NOTE we use max 48 characters per styl for escape codes: + // 2 for opening, 7 for decorations, 2x16 for colors, 4 for closing, + // and 3 as separators between decorations and colors. + // + c3_w* lin_w = c3_malloc( sizeof(c3_w) * (lec_w + (48 * tuc_w)) ); + + // write the contents to the buffer, + // tracking total and escape characters written + // + c3_w i_w = 0; + { + u3_noun nub = tub; + while ( u3_nul != nub ) { + u3_noun tyl, nib, dec, bag, fog; + u3x_cell(u3h(nub), &tyl, &nib); + u3x_trel(tyl, &dec, &bag, &fog); + + c3_o tyl_o = c3n; + if ( ( c3n == u3_Host.ops_u.tem ) && + ( (u3_nul != dec) || (u3_nul != bag) || (u3_nul != fog) ) ) { + tyl_o = c3y; + } + + // write style escape sequences + // + if ( c3y == tyl_o ) { + c3_o mor_o = c3n; + lin_w[i_w++] = 27; + lin_w[i_w++] = '['; + + // text decorations + // + { + u3_noun dos = u3qdi_tap(dec); + u3_noun des = dos; + while ( u3_nul != des ) { + if ( c3y == mor_o ) { + lin_w[i_w++] = ';'; + } + _term_it_put_deco(&lin_w[i_w++], u3h(des)); + mor_o = c3y; + des = u3t(des); + } + u3z(dos); + } + + // background color + // + if ( u3_nul != bag ) { + if ( c3y == mor_o ) { + lin_w[i_w++] = ';'; + } + lin_w[i_w++] = '4'; + c3_w put_w = _term_it_put_tint(&lin_w[i_w], bag); + i_w += put_w; + mor_o = c3y; + } + + // foreground color + // + if ( u3_nul != fog ) { + if ( c3y == mor_o ) { + lin_w[i_w++] = ';'; + } + lin_w[i_w++] = '3'; + c3_w put_w = _term_it_put_tint(&lin_w[i_w], fog); + i_w += put_w; + mor_o = c3y; + } + + lin_w[i_w++] = 'm'; + } + + // write the text itself + // + for ( ; u3_nul != nib; i_w++, nib = u3t(nib) ) { + lin_w[i_w] = u3r_word(0, u3h(nib)); + } + + // if we applied any styles, toggle them off + // + if ( c3y == tyl_o ) { + lin_w[i_w++] = 27; + lin_w[i_w++] = '['; + lin_w[i_w++] = '0'; + lin_w[i_w++] = 'm'; + } + + nub = u3t(nub); + } + } + + _term_it_show_line(uty_u, lin_w, i_w); + + u3z(tub); +} + +/* _term_it_send_stub(): send styled text to terminal as ansi escape sequences +*/ +static void +_term_it_show_stub(u3_utty* uty_u, + u3_noun tub) +{ + _term_it_send_stub(uty_u, u3k(tub)); + _term_it_save_stub(uty_u, tub); +} + +/* _term_it_show_tour(): send utf32 to terminal. +*/ +static void +_term_it_show_tour(u3_utty* uty_u, + u3_noun lin) +{ + c3_w len_w = u3qb_lent(lin); + c3_w* lin_w = c3_malloc( sizeof(c3_w) * len_w ); + + { + c3_w i_w; + + for ( i_w = 0; u3_nul != lin; i_w++, lin = u3t(lin) ) { + lin_w[i_w] = u3r_word(0, u3h(lin)); + } + } + + _term_it_show_line(uty_u, lin_w, len_w); + + { + u3_noun tub = u3i_list(u3nc(u3nt(u3_nul, u3_nul, u3_nul), lin), u3_none); + _term_it_save_stub(uty_u, tub); + } + + //NOTE lin transferred to tub above +} + +/* _term_ef_blit(): send blit to terminal. +*/ +static void +_term_ef_blit(u3_utty* uty_u, + u3_noun blt) +{ + switch ( u3h(blt) ) { + default: break; + + case c3__bel: { + _term_it_dump_buf(uty_u, &uty_u->ufo_u.bel_u); + } break; + + case c3__clr: { + _term_it_show_blank(uty_u); + } break; + + case c3__hop: { + u3_noun pos = u3t(blt); + if ( c3y == u3ud(pos) ) { + _term_it_move_cursor(uty_u, pos, uty_u->tat_u.siz.row_l - 1); + } + else { + _term_it_move_cursor(uty_u, u3h(pos), u3t(pos)); + } + } break; + + case c3__klr: { + _term_it_show_stub(uty_u, u3k(u3t(blt))); + } break; + + case c3__lin: { //TMP backwards compatibility + _term_it_move_cursor(uty_u, 0, uty_u->tat_u.siz.row_l - 1); + _term_it_clear_line(uty_u); + } // + case c3__put: { + _term_it_show_tour(uty_u, u3k(u3t(blt))); + } break; + + case c3__mor: { + if (u3_nul != u3t(blt)) { + u3_noun bis = u3t(blt); + while (u3_nul != bis) { + _term_ef_blit(uty_u, u3k(u3h(bis))); + bis = u3t(bis); + } + break; + } + //TMP fall through to nel for backwards compatibility + } + case c3__nel: { + _term_it_show_nel(uty_u); + } break; + + case c3__sav: { + u3_noun pax, dat; + u3x_cell(u3t(blt), &pax, &dat); + + _term_it_save(u3k(pax), u3k(dat)); + } break; + + case c3__sag: { + u3_noun pax, dat; + u3x_cell(u3t(blt), &pax, &dat); + + _term_it_save(u3k(pax), u3qe_jam(dat)); + } break; + + case c3__url: { + // platform-agnostically opening the default web browser from within a + // c program is an unsolved problem. + } break; + + case c3__wyp: { + _term_it_clear_line(uty_u); + } break; + } + + u3z(blt); +} + +/* _term_ef_blit_lame(): simplified output handling for -t +*/ +static void +_term_ef_blit_lame(u3_utty* uty_u, + u3_noun blt) +{ + switch ( u3h(blt) ) { + default: break; + + case c3__klr: { + _term_it_show_stub(uty_u, u3k(u3t(blt))); + _term_it_show_nel(uty_u); + } break; + + case c3__lin: //TMP backwards compatibility + case c3__put: { + _term_it_show_tour(uty_u, u3k(u3t(blt))); + _term_it_show_nel(uty_u); + } break; + + case c3__sav: { + u3_noun pax, dat; + u3x_cell(u3t(blt), &pax, &dat); + + _term_it_save(u3k(pax), u3k(dat)); + } break; + + case c3__sag: { + u3_noun pax, dat; + u3x_cell(u3t(blt), &pax, &dat); + + _term_it_save(u3k(pax), u3qe_jam(dat)); + } break; + } + + u3z(blt); +} + +/* u3_term_io_hija(): hijack console for fprintf, returning FILE*. +*/ +FILE* +u3_term_io_hija(void) +{ + u3_utty* uty_u = _term_main(); + + if ( uty_u && uty_u->tat_u.siz.row_l ) { + if ( uty_u->fid_i > 2 ) { + // We *should* in fact, produce some kind of fake FILE* for + // non-console terminals. If we use this interface enough... + // + u3_assert(0); + } + else { + if ( c3n == u3_Host.ops_u.tem ) { + if ( c3y != uty_u->hij_f(uty_u) ) { + u3_assert(!"hija-tcsetattr"); + } + + // move the cursor to the bottom left corner, + // and wipe that bottom line. + // + _term_it_send_csi(uty_u, 'H', 2, uty_u->tat_u.siz.row_l, 1); + _term_it_dump_buf(uty_u, &uty_u->ufo_u.cel_u); + } + } + } + return stdout; +} + +/* u3_term_io_loja(): release console from fprintf. +*/ +void +u3_term_io_loja(int x, FILE* f) +{ + u3_utty* uty_u = _term_main(); + + if ( uty_u && uty_u->tat_u.siz.row_l ) { + if ( uty_u->fid_i > 2 ) { + // We *should* in fact, produce some kind of fake FILE* for + // non-console terminals. If we use this interface enough... + // + u3_assert(0); + } + else { + if ( c3y == u3_Host.ops_u.tem ) { + fprintf(f, "\n"); + fflush(f); + } + else { + if ( c3y != uty_u->loj_f(uty_u) ) { + u3_assert(!"loja-tcsetattr"); + } + + // push the printfs up one more line, + // and re-render the bottom-most line, which we clobbered. + // + _term_it_dump(uty_u, TERM_LIT("\n")); + _term_it_restore_line(uty_u); + } + } + } + else { + fprintf(f, "\r\n"); + } +} + +/* u3_term_it_log(): writes a log message +*/ +void +u3_term_io_log(c3_c* line) +{ + FILE* stream = u3_term_io_hija(); + int x = fprintf(stream, "%s", line); + fflush(stream); + u3_term_io_loja(x, stream); //TODO remove arg? unused... +} + +/* u3_term_tape_to(): dump a tape to a file. +*/ +void +u3_term_tape_to(FILE *fil_f, u3_noun tep) +{ + u3_noun tap = tep; + + while ( u3_nul != tap ) { + c3_c car_c; + + if ( u3h(tap) >= 127 ) { + car_c = '?'; + } else car_c = u3h(tap); + + putc(car_c, fil_f); + tap = u3t(tap); + } + u3z(tep); +} + +/* u3_term_tape(): dump a tape to stdout. +*/ +void +u3_term_tape(u3_noun tep) +{ + FILE* fil_f = u3_term_io_hija(); + + u3_term_tape_to(fil_f, tep); + + u3_term_io_loja(0, fil_f); +} + +/* u3_term_wall(): dump a wall to stdout. +*/ +void +u3_term_wall(u3_noun wol) +{ + FILE* fil_f = u3_term_io_hija(); + u3_noun wal = wol; + + while ( u3_nul != wal ) { + u3_term_tape_to(fil_f, u3k(u3h(wal))); + + putc(13, fil_f); + putc(10, fil_f); + + wal = u3t(wal); + } + u3_term_io_loja(0, fil_f); + + u3z(wol); +} + +static void +_born_bail_cb(u3_ovum *egg_u, u3_noun stacktraces) { + u3z(stacktraces); + u3_ovum_free(egg_u); +} + +/* _term_io_talk(): +*/ +static void +_term_io_talk(u3_auto* car_u) +{ + if ( c3n == u3_Host.ops_u.tem ) { + u3_utty* uty_u = _term_main(); + + uv_read_start((uv_stream_t*)&(uty_u->pin_u), + _term_alloc, + _term_read_cb); + } + + //TODO reevaluate wrt dill sessions + // + u3_noun wir = u3nt(c3__term, '1', u3_nul); + u3_noun cad; + + // send born event + // + { + cad = u3nc(c3__born, u3_nul); + u3_ovum* egg_u = u3_auto_plan(car_u, u3_ovum_init(0, c3__d, u3k(wir), cad)); + u3z(egg_u->pin_u.lab); + egg_u->pin_u.lab = u3_blip; + + u3_auto_peer(egg_u, 0, 0, _born_bail_cb); + } + + // send terminal dimensions + // + { + cad = u3nc(c3__blew, u3_term_get_blew(1)); + _term_ovum_plan(car_u, u3k(wir), cad); + } + + // refresh terminal state + // + { + cad = u3nc(c3__hail, u3_nul); + _term_ovum_plan(car_u, wir, cad); + } +} + +/* _reck_orchid(): parses only a number as text + * + * Parses a text string which contains a decimal number. In practice, this + * number is always '1'. + */ +static u3_noun +_reck_orchid(u3_noun fot, u3_noun txt, c3_l* tid_l) +{ + c3_c* str = u3r_string(txt); + c3_d ato_d = strtol(str, NULL, 10); + c3_free(str); + + if ( ato_d >= 0x80000000ULL ) { + return c3n; + } else { + *tid_l = (c3_l) ato_d; + + return c3y; + } +} + +/* _term_io_quiz(): handle quiz (query to serf). +*/ +static void +_term_io_quiz(c3_m mot_m, void* vod_p, u3_noun res) +{ + u3_auto* car_u = (u3_auto*)vod_p; + u3_noun wir = u3nt(c3__term, '1', u3_nul); + u3_noun cad = u3k(res); + u3_auto_plan(car_u, u3_ovum_init(0, c3__d, wir, cad)); +} + +/* _term_io_kick(): apply effects. +*/ +static c3_o +_term_io_kick(u3_auto* car_u, u3_noun wir, u3_noun cad) +{ + u3_noun tag, dat, i_wir, t_wir; + c3_o ret_o; + + if ( (c3n == u3r_cell(wir, &i_wir, &t_wir)) + || (c3n == u3r_cell(cad, &tag, &dat)) + || (c3__term != i_wir) ) + { + ret_o = c3n; + } + else { + u3_noun pud = t_wir; + u3_noun p_pud, q_pud; + c3_l tid_l; + + if ( (c3n == u3r_cell(pud, &p_pud, &q_pud)) + || (u3_nul != q_pud) + || (c3n == _reck_orchid(c3__ud, u3k(p_pud), &tid_l)) ) + { + u3l_log("term: bad tire"); + ret_o = c3n; + } + else { + switch ( tag ) { + default: { + ret_o = c3n; + } break; + + case c3__blit: { + ret_o = c3y; + + { + u3_utty* uty_u = _term_ef_get(tid_l); + if ( 0 == uty_u ) { + // u3l_log("no terminal %d", tid_l); + // u3l_log("uty_u %p", u3_Host.uty_u); + } + else { + u3_noun bis = dat; + + while ( c3y == u3du(bis) ) { + if (c3n == u3_Host.ops_u.tem) { + _term_ef_blit(uty_u, u3k(u3h(bis))); + } + else { + _term_ef_blit_lame(uty_u, u3k(u3h(bis))); + } + bis = u3t(bis); + } + } + } + } break; + + // XX obsolete %ames + // + // case c3__send: + + case c3__logo: { + ret_o = c3y; + u3_pier_exit(car_u->pir_u); + // XX validate? ignore? + // + u3_Host.xit_i = dat; + } break; + + case c3__mass: { + ret_o = c3y; + + // gc the daemon area + // + // XX disabled due to known leaks; uncomment for dev + // + // uv_timer_start(&u3K.tim_u, (uv_timer_cb)u3_king_grab, 0, 0); + } break; + + case c3__meld: { + ret_o = c3y; + u3_pier_meld(car_u->pir_u); + } break; + + case c3__pack: { + ret_o = c3y; + u3_pier_pack(car_u->pir_u); + } break; + + case c3__quac: { + ret_o = c3y; + u3_lord_quiz(u3K.pir_u->god_u, c3__quac, car_u, _term_io_quiz); + } break; + } + } + } + + u3z(wir); u3z(cad); + return ret_o; +} + +static void +_term_io_exit_cb(uv_handle_t* han_u) +{ + u3_auto* car_u = han_u->data; + c3_free(car_u); +} + +/* _term_io_exit(): clean up terminal. +*/ +static void +_term_io_exit(u3_auto* car_u) +{ + u3_utty* uty_u = _term_main(); + + if ( c3n == u3_Host.ops_u.tem ) { + // move cursor to the end + // + _term_it_move_cursor(uty_u, 0, uty_u->tat_u.siz.row_l - 1); + + // NB, closed in u3_term_log_exit() + // + uv_read_stop((uv_stream_t*)&(uty_u->pin_u)); + + uv_timer_t* han_u = &(uty_u->tat_u.sun_u.tim_u); + han_u->data = car_u; + + uv_close((uv_handle_t*)han_u, _term_io_exit_cb); + } + else { + c3_free(car_u); + } +} + +/* u3_term_io_init(): initialize terminal +*/ +u3_auto* +u3_term_io_init(u3_pier* pir_u) +{ + u3_auto* car_u = c3_calloc(sizeof(*car_u)); + + u3_assert( u3_Host.uty_u ); + u3_Host.uty_u->car_u = car_u; + + car_u->nam_m = c3__term; + car_u->liv_o = c3y; + car_u->io.talk_f = _term_io_talk; + car_u->io.kick_f = _term_io_kick; + car_u->io.exit_f = _term_io_exit; + + return car_u; +} diff --git a/vere/pkg/vere/io/unix.c b/vere/pkg/vere/io/unix.c new file mode 100644 index 0000000..9d92e81 --- /dev/null +++ b/vere/pkg/vere/io/unix.c @@ -0,0 +1,1604 @@ +/// @file + +/* +** this file is responsible for maintaining a bidirectional +** mapping between the contents of a clay desk and a directory +** in a unix filesystem. +** +** TODO this driver is crufty and overdue for a rewrite. +** aspirationally, the rewrite should do sanity checking and +** transformations at the noun level to convert messages from +** arvo into sets of fs operations on trusted inputs, and +** inverse transformations and checks for fs contents to arvo +** messages. +** +** the two relevant transformations to apply are: +** +** 1. bidirectionally map file contents to atoms +** 2. bidirectionally map arvo $path <-> unix relative paths +** +** the first transform is trivial. the second poses some +** challenges: an arvo $path is a list of $knot, and the $knot +** space intersects with invalid unix paths in the three cases +** of: %$ (the empty knot), '.', and '..'. we escape these by +** prepending a '!' to the filename corresponding to the $knot, +** yielding unix files named '!', '!.', and '!..'. +** +** there is also the case of the empty path. we elide empty +** paths from this wrapper, which always uses the last path +** component as the file extension/mime-type. +** +** these transforms are implemented, but they ought to be +** implemented in one place, prior to any fs calls; as-is, they +** are sprinkled throughout the file updating code. +** +*/ + +#include "vere.h" + +#include + +#include "noun.h" + +struct _u3_umon; +struct _u3_udir; +struct _u3_ufil; + +/* u3_unod: file or directory. +*/ + typedef struct _u3_unod { + c3_o dir; // c3y if dir, c3n if file + c3_o dry; // ie, unmodified + c3_c* pax_c; // absolute path + struct _u3_udir* par_u; // parent + struct _u3_unod* nex_u; // internal list + } u3_unod; + +/* u3_ufil: synchronized file. +*/ + typedef struct _u3_ufil { + c3_o dir; // c3y if dir, c3n if file + c3_o dry; // ie, unmodified + c3_c* pax_c; // absolute path + struct _u3_udir* par_u; // parent + struct _u3_unod* nex_u; // internal list + c3_w gum_w; // mug of last %ergo + } u3_ufil; + +/* u3_ufil: synchronized directory. +*/ + typedef struct _u3_udir { + c3_o dir; // c3y if dir, c3n if file + c3_o dry; // ie, unmodified + c3_c* pax_c; // absolute path + struct _u3_udir* par_u; // parent + struct _u3_unod* nex_u; // internal list + u3_unod* kid_u; // subnodes + } u3_udir; + +/* u3_ufil: synchronized mount point. +*/ + typedef struct _u3_umon { + u3_udir dir_u; // root directory, must be first + c3_c* nam_c; // mount point name + struct _u3_umon* nex_u; // internal list + } u3_umon; + +/* u3_unix: clay support system, also +*/ + typedef struct _u3_unix { + u3_auto car_u; + c3_l sev_l; // instance number + u3_umon* mon_u; // mount points + c3_c* pax_c; // pier directory + c3_o alm; // timer set + c3_o dyr; // ready to update + u3_noun sat; // (sane %ta) handle +#ifdef SYNCLOG + c3_w lot_w; // sync-slot + struct _u3_sylo { + c3_o unx; // from unix + c3_m wer_m; // mote saying where + c3_m wot_m; // mote saying what + c3_c* pax_c; // path + } sylo[1024]; +#endif + } u3_unix; + +void +u3_unix_ef_look(u3_unix* unx_u, u3_noun mon, u3_noun all); + +/* u3_unix_cane(): true iff (unix) path is canonical. +*/ +c3_t +u3_unix_cane(const c3_c* pax_c) +{ + if ( 0 == pax_c ) { + return 0; + } + // allow absolute paths. + // + if ( '/' == *pax_c ) { + pax_c++; + // allow root. + // + if ( 0 == *pax_c ) { + return 1; + } + } + do { + if ( 0 == *pax_c + || 0 == strcmp(".", pax_c) + || 0 == strcmp("..", pax_c) + || 0 == strncmp("/", pax_c, 1) + || 0 == strncmp("./", pax_c, 2) + || 0 == strncmp("../", pax_c, 3) ) + { + return 0; + } + pax_c = strchr(pax_c, '/'); + } while ( 0 != pax_c++ ); + return 1; +} + +/* _unix_sane_ta(): true iff pat is a valid @ta +** +** %ta is parsed by: +** (star ;~(pose nud low hep dot sig cab)) +*/ +static c3_t +_unix_sane_ta(u3_unix* unx_u, u3_atom pat) +{ + return _(u3n_slam_on(u3k(unx_u->sat), pat)); +} + +/* u3_readdir_r(): +*/ +c3_w +u3_readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result) +{ + errno = 0; + struct dirent * tmp_u = readdir(dirp); + + if (NULL == tmp_u){ + *result = NULL; + return (errno); // either success or error code + } else { + memcpy(entry, tmp_u, sizeof(struct dirent)); + *result = entry; + } + + return(0); +} + +/* _unix_string_to_knot(): convert c unix path component to $knot +*/ +static u3_atom +_unix_string_to_knot(c3_c* pax_c) +{ + u3_assert(pax_c); + // XX this can happen if we encounter a file without an extension. + // + // u3_assert(*pax_c); + u3_assert(!strchr(pax_c, '/')); + // XX horrible + // +# ifdef _WIN32 + u3_assert(!strchr(pax_c, '\\')); +# endif + if ( '!' == *pax_c ) { + pax_c++; + } + return u3i_string(pax_c); +} + +/* _unix_knot_to_string(): convert $knot to c unix path component. RETAIN. +*/ +static c3_c* +_unix_knot_to_string(u3_atom pon) +{ + c3_c* ret_c; + + if ( u3_nul != pon + && c3_s1('.') != pon + && c3_s2('.','.') != pon + && '!' != u3r_byte(0, pon) ) + { + ret_c = u3r_string(pon); + } + else { + c3_w met_w = u3r_met(3, pon); + + ret_c = c3_malloc(met_w + 2); + *ret_c = '!'; + u3r_bytes(0, met_w, (c3_y*)ret_c + 1, pon); + ret_c[met_w + 1] = 0; + } + u3_assert(!strchr(ret_c, '/')); +# ifdef _WIN32 + u3_assert(!strchr(ret_c, '\\')); +# endif + return ret_c; +} + +/* _unix_down(): descend path. +*/ +static c3_c* +_unix_down(c3_c* pax_c, c3_c* sub_c) +{ + c3_w pax_w = strlen(pax_c); + c3_w sub_w = strlen(sub_c); + c3_c* don_c = c3_malloc(pax_w + sub_w + 2); + + strcpy(don_c, pax_c); + don_c[pax_w] = '/'; + strcpy(don_c + pax_w + 1, sub_c); + don_c[pax_w + 1 + sub_w] = '\0'; + + return don_c; +} + +/* _unix_string_to_path(): convert c string to u3_noun $path +** +** c string must begin with the pier path plus mountpoint +*/ +static u3_noun +_unix_string_to_path_helper(c3_c* pax_c) +{ + u3_noun not; + + u3_assert(pax_c[-1] == '/'); + c3_c* end_c = strchr(pax_c, '/'); + if ( !end_c ) { + end_c = strrchr(pax_c, '.'); + if ( !end_c ) { + return u3nc(_unix_string_to_knot(pax_c), u3_nul); + } + else { + *end_c = 0; + not = _unix_string_to_knot(pax_c); + *end_c = '.'; + return u3nt(not, _unix_string_to_knot(end_c + 1), u3_nul); + } + } + else { + *end_c = 0; + not = _unix_string_to_knot(pax_c); + *end_c = '/'; + return u3nc(not, _unix_string_to_path_helper(end_c + 1)); + } +} +static u3_noun +_unix_string_to_path(u3_unix* unx_u, c3_c* pax_c) +{ + pax_c += strlen(unx_u->pax_c) + 1; + c3_c* pox_c = strchr(pax_c, '/'); + if ( !pox_c ) { + pox_c = strchr(pax_c, '.'); + if ( !pox_c ) { + return u3_nul; + } + else { + return u3nc(_unix_string_to_knot(pox_c + 1), u3_nul); + } + } + else { + return _unix_string_to_path_helper(pox_c + 1); + } +} + +/* _unix_mkdirp(): recursive mkdir of dirname of pax_c. +*/ +static void +_unix_mkdirp(c3_c* pax_c) +{ + c3_c* fas_c = strchr(pax_c + 1, '/'); + + while ( fas_c ) { + *fas_c = 0; + if ( 0 != mkdir(pax_c, 0777) && EEXIST != errno ) { + u3l_log("unix: mkdir %s: %s", pax_c, strerror(errno)); + u3m_bail(c3__fail); + } + *fas_c++ = '/'; + fas_c = strchr(fas_c, '/'); + } +} + +/* u3_unix_save(): save file under .../.urb/put or bail. +** +** XX this is quite bad, and doesn't share much in common with +** the rest of unix.c. a refactor would probably share common +** logic with _unix_sync_change, perhaps using openat, making +** unx_u optional, and/or having a flag to not track the file +** for future changes. +*/ +void +u3_unix_save(c3_c* pax_c, u3_atom pad) +{ + c3_i fid_i; + c3_w lod_w, len_w, fln_w, rit_w; + c3_y* pad_y; + c3_c* ful_c; + + if ( !u3_unix_cane(pax_c) ) { + u3l_log("%s: non-canonical path", pax_c); + u3z(pad); u3m_bail(c3__fail); + } + if ( '/' == *pax_c) { + pax_c++; + } + lod_w = strlen(u3_Host.dir_c); + len_w = lod_w + sizeof("/.urb/put/") + strlen(pax_c); + ful_c = c3_malloc(len_w); + rit_w = snprintf(ful_c, len_w, "%s/.urb/put/%s", u3_Host.dir_c, pax_c); + u3_assert(len_w == rit_w + 1); + + _unix_mkdirp(ful_c); + fid_i = c3_open(ful_c, O_WRONLY | O_CREAT | O_TRUNC, 0666); + if ( fid_i < 0 ) { + u3l_log("%s: %s", ful_c, strerror(errno)); + c3_free(ful_c); + u3z(pad); u3m_bail(c3__fail); + } + + fln_w = u3r_met(3, pad); + pad_y = c3_malloc(fln_w); + u3r_bytes(0, fln_w, pad_y, pad); + u3z(pad); + rit_w = write(fid_i, pad_y, fln_w); + close(fid_i); + c3_free(pad_y); + + if ( rit_w != fln_w ) { + u3l_log("%s: %s", ful_c, strerror(errno)); + c3_free(ful_c); + u3m_bail(c3__fail); + } + c3_free(ful_c); +} + +/* _unix_rm_r_cb(): callback to delete individual files/directories +*/ +static c3_i +_unix_rm_r_cb(const c3_c* pax_c, + const struct stat* buf_u, + c3_i typeflag, + struct FTW* ftw_u) +{ + switch ( typeflag ) { + default: + u3l_log("bad file type in rm_r: %s", pax_c); + break; + case FTW_F: + if ( 0 != c3_unlink(pax_c) && ENOENT != errno ) { + u3l_log("error unlinking (in rm_r) %s: %s", + pax_c, strerror(errno)); + u3_assert(0); + } + break; + case FTW_D: + u3l_log("shouldn't have gotten pure directory: %s", pax_c); + break; + case FTW_DNR: + u3l_log("couldn't read directory: %s", pax_c); + break; + case FTW_NS: + u3l_log("couldn't stat path: %s", pax_c); + break; + case FTW_DP: + if ( 0 != c3_rmdir(pax_c) && ENOENT != errno ) { + u3l_log("error rmdiring %s: %s", pax_c, strerror(errno)); + u3_assert(0); + } + break; + case FTW_SL: + u3l_log("got symbolic link: %s", pax_c); + break; + case FTW_SLN: + u3l_log("got nonexistent symbolic link: %s", pax_c); + break; + } + + return 0; +} + +/* _unix_rm_r(): rm -r directory +*/ +static void +_unix_rm_r(c3_c* pax_c) +{ + if ( 0 > nftw(pax_c, _unix_rm_r_cb, 100, FTW_DEPTH | FTW_PHYS ) + && ENOENT != errno) { + u3l_log("rm_r error on %s: %s", pax_c, strerror(errno)); + } +} + +/* _unix_mkdir(): mkdir, asserting. +*/ +static void +_unix_mkdir(c3_c* pax_c) +{ + if ( 0 != c3_mkdir(pax_c, 0755) && EEXIST != errno) { + u3l_log("error mkdiring %s: %s", pax_c, strerror(errno)); + u3_assert(0); + } +} + +/* _unix_write_file_hard(): write to a file, overwriting what's there +*/ +static c3_w +_unix_write_file_hard(c3_c* pax_c, u3_noun mim) +{ + c3_i fid_i = c3_open(pax_c, O_WRONLY | O_CREAT | O_TRUNC, 0666); + c3_w len_w, rit_w, siz_w, mug_w = 0; + c3_y* dat_y; + + u3_noun dat = u3t(u3t(mim)); + + if ( fid_i < 0 ) { + u3l_log("error opening %s for writing: %s", + pax_c, strerror(errno)); + u3z(mim); + return 0; + } + + siz_w = u3h(u3t(mim)); + len_w = u3r_met(3, dat); + dat_y = c3_calloc(siz_w); + + u3r_bytes(0, len_w, dat_y, dat); + u3z(mim); + + rit_w = write(fid_i, dat_y, siz_w); + + if ( rit_w != siz_w ) { + u3l_log("error writing %s: %s", + pax_c, strerror(errno)); + mug_w = 0; + } + else { + mug_w = u3r_mug_bytes(dat_y, len_w); + } + + close(fid_i); + c3_free(dat_y); + + return mug_w; +} + +/* _unix_write_file_soft(): write to a file, not overwriting if it's changed +*/ +static void +_unix_write_file_soft(u3_ufil* fil_u, u3_noun mim) +{ + struct stat buf_u; + c3_i fid_i = c3_open(fil_u->pax_c, O_RDONLY, 0644); + c3_ws len_ws, red_ws; + c3_w old_w; + c3_y* old_y; + + if ( fid_i < 0 || fstat(fid_i, &buf_u) < 0 ) { + if ( ENOENT == errno ) { + goto _unix_write_file_soft_go; + } + else { + u3l_log("error opening file (soft) %s: %s", + fil_u->pax_c, strerror(errno)); + u3z(mim); + return; + } + } + + len_ws = buf_u.st_size; + old_y = c3_malloc(len_ws); + + red_ws = read(fid_i, old_y, len_ws); + + if ( close(fid_i) < 0 ) { + u3l_log("error closing file (soft) %s: %s", + fil_u->pax_c, strerror(errno)); + } + + if ( len_ws != red_ws ) { + if ( red_ws < 0 ) { + u3l_log("error reading file (soft) %s: %s", + fil_u->pax_c, strerror(errno)); + } + else { + u3l_log("wrong # of bytes read in file %s: %d %d", + fil_u->pax_c, len_ws, red_ws); + } + c3_free(old_y); + u3z(mim); + return; + } + + old_w = u3r_mug_bytes(old_y, len_ws); + + if ( old_w != fil_u->gum_w ) { + fil_u->gum_w = u3r_mug(u3t(u3t(mim))); // XXX this might fail with + c3_free(old_y); // trailing zeros + u3z(mim); + return; + } + + c3_free(old_y); + +_unix_write_file_soft_go: + fil_u->gum_w = _unix_write_file_hard(fil_u->pax_c, mim); +} + +static void +_unix_watch_dir(u3_udir* dir_u, u3_udir* par_u, c3_c* pax_c); +static void +_unix_watch_file(u3_unix* unx_u, u3_ufil* fil_u, u3_udir* par_u, c3_c* pax_c); + +/* _unix_get_mount_point(): retrieve or create mount point +*/ +static u3_umon* +_unix_get_mount_point(u3_unix* unx_u, u3_noun mon) +{ + if ( c3n == u3ud(mon) ) { + u3_assert(!"mount point must be an atom"); + u3z(mon); + return NULL; + } + + c3_c* nam_c = _unix_knot_to_string(mon); + u3_umon* mon_u; + + for ( mon_u = unx_u->mon_u; + mon_u && 0 != strcmp(nam_c, mon_u->nam_c); + mon_u = mon_u->nex_u ) + { + } + + if ( !mon_u ) { + mon_u = c3_malloc(sizeof(u3_umon)); + mon_u->nam_c = nam_c; + mon_u->dir_u.dir = c3y; + mon_u->dir_u.dry = c3n; + mon_u->dir_u.pax_c = strdup(unx_u->pax_c); + mon_u->dir_u.par_u = NULL; + mon_u->dir_u.nex_u = NULL; + mon_u->dir_u.kid_u = NULL; + mon_u->nex_u = unx_u->mon_u; + unx_u->mon_u = mon_u; + } + else { + c3_free(nam_c); + } + + u3z(mon); + + return mon_u; +} + +/* _unix_scan_mount_point(): scan unix for already-existing mount point +*/ +static void +_unix_scan_mount_point(u3_unix* unx_u, u3_umon* mon_u) +{ + DIR* rid_u = c3_opendir(mon_u->dir_u.pax_c); + if ( !rid_u ) { + u3l_log("error opening pier directory: %s: %s", + mon_u->dir_u.pax_c, strerror(errno)); + return; + } + + c3_w len_w = strlen(mon_u->nam_c); + + while ( 1 ) { + struct dirent ent_u; + struct dirent* out_u; + c3_w err_w; + + if ( 0 != (err_w = u3_readdir_r(rid_u, &ent_u, &out_u)) ) { + u3l_log("erroring loading pier directory %s: %s", + mon_u->dir_u.pax_c, strerror(errno)); + + u3_assert(0); + } + else if ( !out_u ) { + break; + } + else if ( '.' == out_u->d_name[0] ) { // unnecessary, but consistency + continue; + } + else if ( 0 != strncmp(mon_u->nam_c, out_u->d_name, len_w) ) { + continue; + } + else { + c3_c* pax_c = _unix_down(mon_u->dir_u.pax_c, out_u->d_name); + + struct stat buf_u; + + if ( 0 != stat(pax_c, &buf_u) ) { + u3l_log("can't stat pier directory %s: %s", + mon_u->dir_u.pax_c, strerror(errno)); + c3_free(pax_c); + continue; + } + if ( S_ISDIR(buf_u.st_mode) ) { + if ( out_u->d_name[len_w] != '\0' ) { + c3_free(pax_c); + continue; + } + else { + u3_udir* dir_u = c3_malloc(sizeof(u3_udir)); + _unix_watch_dir(dir_u, &mon_u->dir_u, pax_c); + } + } + else { + if ( '.' != out_u->d_name[len_w] + || '\0' == out_u->d_name[len_w + 1] + || '~' == out_u->d_name[strlen(out_u->d_name) - 1] + || !_unix_sane_ta(unx_u, _unix_string_to_knot(out_u->d_name)) ) + { + c3_free(pax_c); + continue; + } + else { + u3_ufil* fil_u = c3_malloc(sizeof(u3_ufil)); + _unix_watch_file(unx_u, fil_u, &mon_u->dir_u, pax_c); + } + } + + c3_free(pax_c); + } + } +} + +static u3_noun _unix_free_node(u3_unix* unx_u, u3_unod* nod_u); + +/* _unix_free_file(): free file, unlinking it +*/ +static void +_unix_free_file(u3_ufil *fil_u) +{ + if ( 0 != c3_unlink(fil_u->pax_c) && ENOENT != errno ) { + u3l_log("error unlinking %s: %s", fil_u->pax_c, strerror(errno)); + u3_assert(0); + } + + c3_free(fil_u->pax_c); + c3_free(fil_u); +} + +/* _unix_free_dir(): free directory, deleting everything within +*/ +static void +_unix_free_dir(u3_udir *dir_u) +{ + _unix_rm_r(dir_u->pax_c); + + if ( dir_u->kid_u ) { + fprintf(stderr, "don't kill me, i've got a family %s\r\n", dir_u->pax_c); + } + else { + // fprintf(stderr, "i'm a lone, lonely loner %s\r\n", dir_u->pax_c); + } + c3_free(dir_u->pax_c); + c3_free(dir_u); // XXX this might be too early, how do we + // know we've freed all the children? + // i suspect we should do this only if + // our kid list is empty +} + +/* _unix_free_node(): free node, deleting everything within +** +** also deletes from parent list if in it +*/ +static u3_noun +_unix_free_node(u3_unix* unx_u, u3_unod* nod_u) +{ + u3_noun can; + if ( nod_u->par_u ) { + u3_unod* don_u = nod_u->par_u->kid_u; + + if ( !don_u ) { + } + else if ( nod_u == don_u ) { + nod_u->par_u->kid_u = nod_u->par_u->kid_u->nex_u; + } + else { + for ( ; don_u->nex_u && nod_u != don_u->nex_u; don_u = don_u->nex_u ) { + } + if ( don_u->nex_u ) { + don_u->nex_u = don_u->nex_u->nex_u; + } + } + } + + if ( c3y == nod_u->dir ) { + can = u3_nul; + u3_unod* nud_u = ((u3_udir*) nod_u)->kid_u; + while ( nud_u ) { + u3_unod* nex_u = nud_u->nex_u; + can = u3kb_weld(_unix_free_node(unx_u, nud_u), can); + nud_u = nex_u; + } + _unix_free_dir((u3_udir *)nod_u); + } + else { + can = u3nc(u3nc(_unix_string_to_path(unx_u, nod_u->pax_c), u3_nul), + u3_nul); + _unix_free_file((u3_ufil *)nod_u); + } + + return can; +} + +/* _unix_free_mount_point(): free mount point +** +** this process needs to happen in a very careful order. in +** particular, we must recurse before we get to the callback, so +** that libuv does all the child directories before it does us. +** +** tread carefully +*/ +static void +_unix_free_mount_point(u3_unix* unx_u, u3_umon* mon_u) +{ + u3_unod* nod_u; + for ( nod_u = mon_u->dir_u.kid_u; nod_u; ) { + u3_unod* nex_u = nod_u->nex_u; + u3z(_unix_free_node(unx_u, nod_u)); + nod_u = nex_u; + } + + c3_free(mon_u->dir_u.pax_c); + c3_free(mon_u->nam_c); + c3_free(mon_u); +} + +/* _unix_delete_mount_point(): remove mount point from list and free +*/ +static void +_unix_delete_mount_point(u3_unix* unx_u, u3_noun mon) +{ + if ( c3n == u3ud(mon) ) { + u3_assert(!"mount point must be an atom"); + u3z(mon); + return; + } + + c3_c* nam_c = _unix_knot_to_string(mon); + u3_umon* mon_u; + u3_umon* tem_u; + + mon_u = unx_u->mon_u; + if ( !mon_u ) { + u3l_log("mount point already gone: %s", nam_c); + goto _delete_mount_point_out; + } + if ( 0 == strcmp(nam_c, mon_u->nam_c) ) { + unx_u->mon_u = mon_u->nex_u; + _unix_free_mount_point(unx_u, mon_u); + goto _delete_mount_point_out; + } + + for ( ; + mon_u->nex_u && 0 != strcmp(nam_c, mon_u->nex_u->nam_c); + mon_u = mon_u->nex_u ) + { + } + + if ( !mon_u->nex_u ) { + u3l_log("mount point already gone: %s", nam_c); + goto _delete_mount_point_out; + } + + tem_u = mon_u->nex_u; + mon_u->nex_u = mon_u->nex_u->nex_u; + _unix_free_mount_point(unx_u, tem_u); + +_delete_mount_point_out: + c3_free(nam_c); + u3z(mon); +} + +/* _unix_commit_mount_point: commit from mount point +*/ +static void +_unix_commit_mount_point(u3_unix* unx_u, u3_noun mon) +{ + unx_u->dyr = c3y; + u3_unix_ef_look(unx_u, mon, c3n); + return; +} + +/* _unix_watch_file(): initialize file +*/ +static void +_unix_watch_file(u3_unix* unx_u, u3_ufil* fil_u, u3_udir* par_u, c3_c* pax_c) +{ + // initialize fil_u + + fil_u->dir = c3n; + fil_u->dry = c3n; + fil_u->pax_c = c3_malloc(1 + strlen(pax_c)); + strcpy(fil_u->pax_c, pax_c); + fil_u->par_u = par_u; + fil_u->nex_u = NULL; + fil_u->gum_w = 0; + + if ( par_u ) { + fil_u->nex_u = par_u->kid_u; + par_u->kid_u = (u3_unod*) fil_u; + } +} + +/* _unix_watch_dir(): initialize directory +*/ +static void +_unix_watch_dir(u3_udir* dir_u, u3_udir* par_u, c3_c* pax_c) +{ + // initialize dir_u + + dir_u->dir = c3y; + dir_u->dry = c3n; + dir_u->pax_c = c3_malloc(1 + strlen(pax_c)); + strcpy(dir_u->pax_c, pax_c); + dir_u->par_u = par_u; + dir_u->nex_u = NULL; + dir_u->kid_u = NULL; + + if ( par_u ) { + dir_u->nex_u = par_u->kid_u; + par_u->kid_u = (u3_unod*) dir_u; + } +} + +/* _unix_create_dir(): create unix directory and watch it +*/ +static void +_unix_create_dir(u3_udir* dir_u, u3_udir* par_u, u3_noun nam) +{ + c3_c* nam_c = _unix_knot_to_string(nam); + c3_w nam_w = strlen(nam_c); + c3_w pax_w = strlen(par_u->pax_c); + c3_c* pax_c = c3_malloc(pax_w + 1 + nam_w + 1); + + strcpy(pax_c, par_u->pax_c); + pax_c[pax_w] = '/'; + strcpy(pax_c + pax_w + 1, nam_c); + pax_c[pax_w + 1 + nam_w] = '\0'; + + c3_free(nam_c); + u3z(nam); + + _unix_mkdir(pax_c); + _unix_watch_dir(dir_u, par_u, pax_c); +} + +static u3_noun _unix_update_node(u3_unix* unx_u, u3_unod* nod_u); + +/* _unix_update_file(): update file, producing list of changes +** +** when scanning through files, if dry, do nothing. otherwise, +** mark as dry, then check if file exists. if not, remove +** self from node list and add path plus sig to %into event. +** otherwise, read the file and get a mug checksum. if same as +** gum_w, move on. otherwise, overwrite add path plus data to +** %into event. +*/ +static u3_noun +_unix_update_file(u3_unix* unx_u, u3_ufil* fil_u) +{ + u3_assert( c3n == fil_u->dir ); + + if ( c3y == fil_u->dry ) { + return u3_nul; + } + + fil_u->dry = c3n; + + struct stat buf_u; + c3_i fid_i = c3_open(fil_u->pax_c, O_RDONLY, 0644); + c3_ws len_ws, red_ws; + c3_y* dat_y; + + if ( fid_i < 0 || fstat(fid_i, &buf_u) < 0 ) { + if ( ENOENT == errno ) { + return u3nc(u3nc(_unix_string_to_path(unx_u, fil_u->pax_c), u3_nul), u3_nul); + } + else { + u3l_log("error opening file %s: %s", + fil_u->pax_c, strerror(errno)); + return u3_nul; + } + } + + len_ws = buf_u.st_size; + dat_y = c3_malloc(len_ws); + + red_ws = read(fid_i, dat_y, len_ws); + + if ( close(fid_i) < 0 ) { + u3l_log("error closing file %s: %s", + fil_u->pax_c, strerror(errno)); + } + + if ( len_ws != red_ws ) { + if ( red_ws < 0 ) { + u3l_log("error reading file %s: %s", + fil_u->pax_c, strerror(errno)); + } + else { + u3l_log("wrong # of bytes read in file %s: %d %d", + fil_u->pax_c, len_ws, red_ws); + } + c3_free(dat_y); + return u3_nul; + } + else { + c3_w mug_w = u3r_mug_bytes(dat_y, len_ws); + if ( mug_w == fil_u->gum_w ) { + c3_free(dat_y); + return u3_nul; + } + else { + u3_noun pax = _unix_string_to_path(unx_u, fil_u->pax_c); + u3_noun mim = u3nt(c3__text, u3i_string("plain"), u3_nul); + u3_noun dat = u3nt(mim, len_ws, u3i_bytes(len_ws, dat_y)); + + c3_free(dat_y); + return u3nc(u3nt(pax, u3_nul, dat), u3_nul); + } + } +} + +/* _unix_update_dir(): update directory, producing list of changes +** +** when changing this, consider whether to also change +** _unix_initial_update_dir() +*/ +static u3_noun +_unix_update_dir(u3_unix* unx_u, u3_udir* dir_u) +{ + u3_noun can = u3_nul; + + u3_assert( c3y == dir_u->dir ); + + if ( c3y == dir_u->dry ) { + return u3_nul; + } + + dir_u->dry = c3n; + + // Check that old nodes are still there + + u3_unod* nod_u = dir_u->kid_u; + + if ( nod_u ) { + while ( nod_u ) { + if ( c3y == nod_u->dry ) { + nod_u = nod_u->nex_u; + } + else { + if ( c3y == nod_u->dir ) { + DIR* red_u = c3_opendir(nod_u->pax_c); + if ( 0 == red_u ) { + u3_unod* nex_u = nod_u->nex_u; + can = u3kb_weld(_unix_free_node(unx_u, nod_u), can); + nod_u = nex_u; + } + else { + closedir(red_u); + nod_u = nod_u->nex_u; + } + } + else { + struct stat buf_u; + c3_i fid_i = c3_open(nod_u->pax_c, O_RDONLY, 0644); + + if ( (fid_i < 0) || (fstat(fid_i, &buf_u) < 0) ) { + if ( ENOENT != errno ) { + u3l_log("_unix_update_dir: error opening file %s: %s", + nod_u->pax_c, strerror(errno)); + } + + u3_unod* nex_u = nod_u->nex_u; + can = u3kb_weld(_unix_free_node(unx_u, nod_u), can); + nod_u = nex_u; + } + else { + if ( close(fid_i) < 0 ) { + u3l_log("_unix_update_dir: error closing file %s: %s", + nod_u->pax_c, strerror(errno)); + } + + nod_u = nod_u->nex_u; + } + } + } + } + } + + // Check for new nodes + + DIR* rid_u = c3_opendir(dir_u->pax_c); + if ( !rid_u ) { + u3l_log("error opening directory %s: %s", + dir_u->pax_c, strerror(errno)); + u3_assert(0); + } + + while ( 1 ) { + struct dirent ent_u; + struct dirent* out_u; + c3_w err_w; + + + if ( (err_w = u3_readdir_r(rid_u, &ent_u, &out_u)) != 0 ) { + u3l_log("error loading directory %s: %s", + dir_u->pax_c, strerror(err_w)); + u3_assert(0); + } + else if ( !out_u ) { + break; + } + else if ( '.' == out_u->d_name[0] ) { + continue; + } + else { + c3_c* pax_c = _unix_down(dir_u->pax_c, out_u->d_name); + + struct stat buf_u; + + if ( 0 != stat(pax_c, &buf_u) ) { + u3l_log("can't stat %s: %s", pax_c, strerror(errno)); + c3_free(pax_c); + continue; + } + else { + u3_unod* nod_u; + for ( nod_u = dir_u->kid_u; nod_u; nod_u = nod_u->nex_u ) { + if ( 0 == strcmp(pax_c, nod_u->pax_c) ) { + if ( S_ISDIR(buf_u.st_mode) ) { + if ( c3n == nod_u->dir ) { + u3l_log("not a directory: %s", nod_u->pax_c); + u3_assert(0); + } + } + else { + if ( c3y == nod_u->dir ) { + u3l_log("not a file: %s", nod_u->pax_c); + u3_assert(0); + } + } + break; + } + } + + if ( !nod_u ) { + if ( !S_ISDIR(buf_u.st_mode) ) { + if ( !strchr(out_u->d_name,'.') + || '~' == out_u->d_name[strlen(out_u->d_name) - 1] + || !_unix_sane_ta(unx_u, _unix_string_to_knot(out_u->d_name)) ) + { + c3_free(pax_c); + continue; + } + + u3_ufil* fil_u = c3_malloc(sizeof(u3_ufil)); + _unix_watch_file(unx_u, fil_u, dir_u, pax_c); + } + else { + u3_udir* dis_u = c3_malloc(sizeof(u3_udir)); + _unix_watch_dir(dis_u, dir_u, pax_c); + can = u3kb_weld(_unix_update_dir(unx_u, dis_u), can); // XXX unnecessary? + } + } + } + + c3_free(pax_c); + } + } + + if ( closedir(rid_u) < 0 ) { + u3l_log("error closing directory %s: %s", + dir_u->pax_c, strerror(errno)); + } + + if ( !dir_u->kid_u ) { + return u3kb_weld(_unix_free_node(unx_u, (u3_unod*) dir_u), can); + } + + // get change list + + for ( nod_u = dir_u->kid_u; nod_u; nod_u = nod_u->nex_u ) { + can = u3kb_weld(_unix_update_node(unx_u, nod_u), can); + } + + return can; +} + +/* _unix_update_node(): update node, producing list of changes +*/ +static u3_noun +_unix_update_node(u3_unix* unx_u, u3_unod* nod_u) +{ + if ( c3y == nod_u->dir ) { + return _unix_update_dir(unx_u, (void*)nod_u); + } + else { + return _unix_update_file(unx_u, (void*)nod_u); + } +} + +/* _unix_update_mount(): update mount point +*/ +static void +_unix_update_mount(u3_unix* unx_u, u3_umon* mon_u, u3_noun all) +{ + if ( c3n == mon_u->dir_u.dry ) { + u3_noun can = u3_nul; + u3_unod* nod_u; + for ( nod_u = mon_u->dir_u.kid_u; nod_u; nod_u = nod_u->nex_u ) { + can = u3kb_weld(_unix_update_node(unx_u, nod_u), can); + } + + { + // XX remove u3A->sen + // + u3_noun wir = u3nt(c3__sync, + u3dc("scot", c3__uv, unx_u->sev_l), + u3_nul); + u3_noun cad = u3nq(c3__into, _unix_string_to_knot(mon_u->nam_c), all, + can); + + u3_auto_plan(&unx_u->car_u, u3_ovum_init(0, c3__c, wir, cad)); + } + } +} + +/* _unix_initial_update_file(): read file, but don't watch +** XX deduplicate with _unix_update_file() +*/ +static u3_noun +_unix_initial_update_file(c3_c* pax_c, c3_c* bas_c) +{ + struct stat buf_u; + c3_i fid_i = c3_open(pax_c, O_RDONLY, 0644); + c3_ws len_ws, red_ws; + c3_y* dat_y; + + if ( fid_i < 0 || fstat(fid_i, &buf_u) < 0 ) { + if ( ENOENT == errno ) { + return u3_nul; + } + else { + u3l_log("error opening initial file %s: %s", + pax_c, strerror(errno)); + return u3_nul; + } + } + + len_ws = buf_u.st_size; + dat_y = c3_malloc(len_ws); + + red_ws = read(fid_i, dat_y, len_ws); + + if ( close(fid_i) < 0 ) { + u3l_log("error closing initial file %s: %s", + pax_c, strerror(errno)); + } + + if ( len_ws != red_ws ) { + if ( red_ws < 0 ) { + u3l_log("error reading initial file %s: %s", + pax_c, strerror(errno)); + } + else { + u3l_log("wrong # of bytes read in initial file %s: %d %d", + pax_c, len_ws, red_ws); + } + c3_free(dat_y); + return u3_nul; + } + else { + u3_noun pax = _unix_string_to_path_helper(pax_c + + strlen(bas_c) + + 1); /* XX slightly less VERY BAD than before*/ + u3_noun mim = u3nt(c3__text, u3i_string("plain"), u3_nul); + u3_noun dat = u3nt(mim, len_ws, u3i_bytes(len_ws, dat_y)); + + c3_free(dat_y); + return u3nc(u3nt(pax, u3_nul, dat), u3_nul); + } +} + +/* _unix_initial_update_dir(): read directory, but don't watch +** XX deduplicate with _unix_update_dir() +*/ +static u3_noun +_unix_initial_update_dir(c3_c* pax_c, c3_c* bas_c) +{ + u3_noun can = u3_nul; + + DIR* rid_u = c3_opendir(pax_c); + if ( !rid_u ) { + u3l_log("error opening initial directory: %s: %s", + pax_c, strerror(errno)); + return u3_nul; + } + + while ( 1 ) { + struct dirent ent_u; + struct dirent* out_u; + c3_w err_w; + + if ( 0 != (err_w = u3_readdir_r(rid_u, &ent_u, &out_u)) ) { + u3l_log("error loading initial directory %s: %s", + pax_c, strerror(errno)); + + u3_assert(0); + } + else if ( !out_u ) { + break; + } + else if ( '.' == out_u->d_name[0] ) { + continue; + } + else { + c3_c* pox_c = _unix_down(pax_c, out_u->d_name); + + struct stat buf_u; + + if ( 0 != stat(pox_c, &buf_u) ) { + u3l_log("initial can't stat %s: %s", + pox_c, strerror(errno)); + c3_free(pox_c); + continue; + } + else { + if ( S_ISDIR(buf_u.st_mode) ) { + can = u3kb_weld(_unix_initial_update_dir(pox_c, bas_c), can); + } + else { + can = u3kb_weld(_unix_initial_update_file(pox_c, bas_c), can); + } + c3_free(pox_c); + } + } + } + + if ( closedir(rid_u) < 0 ) { + u3l_log("error closing initial directory %s: %s", + pax_c, strerror(errno)); + } + + return can; +} + +/* u3_unix_initial_into_card(): create initial filesystem sync card. +*/ +u3_noun +u3_unix_initial_into_card(c3_c* arv_c) +{ + u3_noun can = _unix_initial_update_dir(arv_c, arv_c); + + return u3nc(u3nt(c3__c, c3__sync, u3_nul), + u3nq(c3__into, u3_nul, c3y, can)); +} + +/* _unix_sync_file(): sync file to unix +*/ +static void +_unix_sync_file(u3_unix* unx_u, u3_udir* par_u, u3_noun nam, u3_noun ext, u3_noun mim) +{ + u3_assert( par_u ); + u3_assert( c3y == par_u->dir ); + + // form file path + + c3_c* nam_c = _unix_knot_to_string(nam); + c3_c* ext_c = _unix_knot_to_string(ext); + c3_w par_w = strlen(par_u->pax_c); + c3_w nam_w = strlen(nam_c); + c3_w ext_w = strlen(ext_c); + c3_c* pax_c = c3_malloc(par_w + 1 + nam_w + 1 + ext_w + 1); + + strcpy(pax_c, par_u->pax_c); + pax_c[par_w] = '/'; + strcpy(pax_c + par_w + 1, nam_c); + pax_c[par_w + 1 + nam_w] = '.'; + strcpy(pax_c + par_w + 1 + nam_w + 1, ext_c); + pax_c[par_w + 1 + nam_w + 1 + ext_w] = '\0'; + + c3_free(nam_c); c3_free(ext_c); + u3z(nam); u3z(ext); + + // check whether we already know about this file + + u3_unod* nod_u; + for ( nod_u = par_u->kid_u; + ( nod_u && + ( c3y == nod_u->dir || + 0 != strcmp(nod_u->pax_c, pax_c) ) ); + nod_u = nod_u->nex_u ) + { } + + // apply change + + if ( u3_nul == mim ) { + if ( nod_u ) { + u3z(_unix_free_node(unx_u, nod_u)); + } + } + else { + + if ( !nod_u ) { + c3_w gum_w = _unix_write_file_hard(pax_c, u3k(u3t(mim))); + u3_ufil* fil_u = c3_malloc(sizeof(u3_ufil)); + _unix_watch_file(unx_u, fil_u, par_u, pax_c); + fil_u->gum_w = gum_w; + goto _unix_sync_file_out; + } + else { + _unix_write_file_soft((u3_ufil*) nod_u, u3k(u3t(mim))); + } + } + + c3_free(pax_c); + +_unix_sync_file_out: + u3z(mim); +} + +/* _unix_sync_change(): sync single change to unix +*/ +static void +_unix_sync_change(u3_unix* unx_u, u3_udir* dir_u, u3_noun pax, u3_noun mim) +{ + u3_assert( c3y == dir_u->dir ); + + if ( c3n == u3du(pax) ) { + if ( u3_nul == pax ) { + u3l_log("can't sync out file as top-level, strange"); + } + else { + u3l_log("sync out: bad path"); + } + u3z(pax); u3z(mim); + return; + } + else if ( c3n == u3du(u3t(pax)) ) { + u3l_log("can't sync out file as top-level, strangely"); + u3z(pax); u3z(mim); + } + else { + u3_noun i_pax = u3h(pax); + u3_noun t_pax = u3t(pax); + u3_noun it_pax = u3h(t_pax); + u3_noun tt_pax = u3t(t_pax); + + if ( u3_nul == tt_pax ) { + _unix_sync_file(unx_u, dir_u, u3k(i_pax), u3k(it_pax), mim); + } + else { + c3_c* nam_c = _unix_knot_to_string(i_pax); + c3_w pax_w = strlen(dir_u->pax_c); + u3_unod* nod_u; + + for ( nod_u = dir_u->kid_u; + ( nod_u && + ( c3n == nod_u->dir || + 0 != strcmp(nod_u->pax_c + pax_w + 1, nam_c) ) ); + nod_u = nod_u->nex_u ) + { } + + if ( !nod_u ) { + nod_u = c3_malloc(sizeof(u3_udir)); + _unix_create_dir((u3_udir*) nod_u, dir_u, u3k(i_pax)); + } + + if ( c3n == nod_u->dir ) { + u3l_log("weird, we got a file when we weren't expecting to"); + u3_assert(0); + } + + _unix_sync_change(unx_u, (u3_udir*) nod_u, u3k(t_pax), mim); + } + } + u3z(pax); +} + +/* _unix_sync_ergo(): sync list of changes to unix +*/ +static void +_unix_sync_ergo(u3_unix* unx_u, u3_umon* mon_u, u3_noun can) +{ + u3_noun nac = can; + u3_noun nam = _unix_string_to_knot(mon_u->nam_c); + + while ( u3_nul != nac) { + _unix_sync_change(unx_u, &mon_u->dir_u, + u3nc(u3k(nam), u3k(u3h(u3h(nac)))), + u3k(u3t(u3h(nac)))); + nac = u3t(nac); + } + + u3z(nam); + u3z(can); +} + +/* u3_unix_ef_dirk(): commit mount point +*/ +void +u3_unix_ef_dirk(u3_unix* unx_u, u3_noun mon) +{ + _unix_commit_mount_point(unx_u, mon); +} + +/* u3_unix_ef_ergo(): update filesystem from urbit +*/ +void +u3_unix_ef_ergo(u3_unix* unx_u, u3_noun mon, u3_noun can) +{ + u3_umon* mon_u = _unix_get_mount_point(unx_u, mon); + + _unix_sync_ergo(unx_u, mon_u, can); +} + +/* u3_unix_ef_ogre(): delete mount point +*/ +void +u3_unix_ef_ogre(u3_unix* unx_u, u3_noun mon) +{ + _unix_delete_mount_point(unx_u, mon); +} + +/* u3_unix_ef_hill(): enumerate mount points +*/ +void +u3_unix_ef_hill(u3_unix* unx_u, u3_noun hil) +{ + u3_noun mon; + + for ( mon = hil; c3y == u3du(mon); mon = u3t(mon) ) { + u3_umon* mon_u = _unix_get_mount_point(unx_u, u3k(u3h(mon))); + _unix_scan_mount_point(unx_u, mon_u); + } + + unx_u->car_u.liv_o = c3y; + + u3z(hil); +} + +/* u3_unix_ef_look(): update the root of a specific mount point. +*/ +void +u3_unix_ef_look(u3_unix* unx_u, u3_noun mon, u3_noun all) +{ + if ( c3y == unx_u->dyr ) { + c3_c* nam_c = _unix_knot_to_string(mon); + + unx_u->dyr = c3n; + u3_umon* mon_u = unx_u->mon_u; + while ( mon_u && 0 != strcmp(nam_c, mon_u->nam_c) ) { + mon_u = mon_u->nex_u; + } + c3_free(nam_c); + if ( mon_u ) { + _unix_update_mount(unx_u, mon_u, all); + } + } + u3z(mon); +} + +/* _unix_io_talk(): start listening for fs events. +*/ +static void +_unix_io_talk(u3_auto* car_u) +{ + // XX review wire + // + u3_noun wir = u3nc(c3__boat, u3_nul); + u3_noun cad = u3nc(c3__boat, u3_nul); + + u3_auto_plan(car_u, u3_ovum_init(0, c3__c, wir, cad)); +} + +/* _unix_io_kick(): apply effects. +*/ +static c3_o +_unix_io_kick(u3_auto* car_u, u3_noun wir, u3_noun cad) +{ + u3_unix* unx_u = (u3_unix*)car_u; + + u3_noun tag, dat, i_wir; + c3_o ret_o; + + if ( (c3n == u3r_cell(wir, &i_wir, 0)) + || (c3n == u3r_cell(cad, &tag, &dat)) + || ( (c3__clay != i_wir) + && (c3__boat != i_wir) + && (c3__sync != i_wir) ) ) + { + ret_o = c3n; + } + else { + switch ( tag ) { + default: { + ret_o = c3n; + } break; + + case c3__dirk: { + u3_unix_ef_dirk(unx_u, u3k(dat)); + ret_o = c3y; + } break; + + case c3__ergo: { + u3_noun mon = u3k(u3h(dat)); + u3_noun can = u3k(u3t(dat)); + u3_unix_ef_ergo(unx_u, mon, can); + + ret_o = c3y; + } break; + + case c3__ogre: { + u3_unix_ef_ogre(unx_u, u3k(dat)); + ret_o = c3y; + } break; + + case c3__hill: { + u3_unix_ef_hill(unx_u, u3k(dat)); + ret_o = c3y; + } break; + } + } + + u3z(wir); u3z(cad); + return ret_o; +} + +/* _unix_io_exit(): terminate unix I/O. +*/ +static void +_unix_io_exit(u3_auto* car_u) +{ + u3_unix* unx_u = (u3_unix*)car_u; + + u3z(unx_u->sat); + c3_free(unx_u->pax_c); + c3_free(unx_u); +} + +/* u3_unix_io_init(): initialize unix sync. +*/ +u3_auto* +u3_unix_io_init(u3_pier* pir_u) +{ + u3_unix* unx_u = c3_calloc(sizeof(*unx_u)); + unx_u->mon_u = 0; + unx_u->pax_c = strdup(pir_u->pax_c); + unx_u->alm = c3n; + unx_u->dyr = c3n; + unx_u->sat = u3do("sane", c3__ta); + + u3_auto* car_u = &unx_u->car_u; + car_u->nam_m = c3__unix; + car_u->liv_o = c3n; + car_u->io.talk_f = _unix_io_talk; + car_u->io.kick_f = _unix_io_kick; + car_u->io.exit_f = _unix_io_exit; + // XX wat do + // + // car_u->ev.bail_f = ...l; + + { + u3_noun now; + struct timeval tim_u; + gettimeofday(&tim_u, 0); + + now = u3_time_in_tv(&tim_u); + unx_u->sev_l = u3r_mug(now); + u3z(now); + } + + return car_u; +} diff --git a/vere/pkg/vere/ivory/ivory.c b/vere/pkg/vere/ivory/ivory.c new file mode 100644 index 0000000..d18e57c --- /dev/null +++ b/vere/pkg/vere/ivory/ivory.c @@ -0,0 +1,4 @@ +#include "ivory.h" +unsigned char u3_Ivory_pill[] = { + 0x01, 0x9e, 0x34, 0xbb, 0x37, 0xb9, 0x7c, 0xe1, 0x17, 0x7e, 0x89, 0x0c, 0x92, 0x21, 0x93, 0x13, 0x5d, 0x41, 0xb6, 0x80, 0xdf, 0x56, 0xd6, 0xf6, 0x8e, 0x2d, 0x21, 0x1c, 0xb2, 0xf0, 0x0b, 0xbf, 0x84, 0xf2, 0xe3, 0xdb, 0xf1, 0x7c, 0x42, 0xba, 0x02, 0xfe, 0xd8, 0x9b, 0x5c, 0xb9, 0x80, 0x3f, 0x56, 0xc6, 0xc6, 0x0e, 0xf8, 0x6e, 0x6f, 0x75, 0xee, 0x86, 0x19, 0x5a, 0xc3, 0xc4, 0x2d, 0xe0, 0x9b, 0x85, 0x8d, 0x95, 0x03, 0x1e, 0x5c, 0x1a, 0x3d, 0xe0, 0xa3, 0xbd, 0xb1, 0x91, 0x6b, 0x98, 0xa1, 0x35, 0x4c, 0xdc, 0x1a, 0xe6, 0x7e, 0xc0, 0xb3, 0x4b, 0xc3, 0x37, 0xd4, 0x91, 0x35, 0xcc, 0xd0, 0x1a, 0x26, 0x6e, 0xc3, 0x74, 0x6e, 0x98, 0xa1, 0x05, 0x7c, 0xb4, 0x34, 0x37, 0x7a, 0x35, 0x14, 0xd3, 0xd5, 0x50, 0x4c, 0x57, 0xc3, 0x0c, 0x2d, 0xe0, 0x87, 0xd1, 0xbd, 0xb5, 0x03, 0x5f, 0x47, 0x4e, 0x10, 0x89, 0x65, 0xc0, 0x23, 0x93, 0xcb, 0x03, 0xff, 0xec, 0x8d, 0x8d, 0xdc, 0x50, 0xc5, 0x57, 0xc0, 0x37, 0xab, 0x63, 0x63, 0x3b, 0x9e, 0x2f, 0xb3, 0x00, 0x7e, 0x68, 0x6f, 0x6f, 0x6e, 0x2d, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0xee, 0x80, 0x3f, 0xe6, 0x46, 0x37, 0xaf, 0xf1, 0xbc, 0xa6, 0xc3, 0x29, 0x36, 0xe0, 0xa3, 0x95, 0xb1, 0xc1, 0x33, 0x40, 0xcb, 0x16, 0x96, 0x57, 0x26, 0xd7, 0x12, 0x57, 0x02, 0x78, 0x16, 0x0b, 0x9b, 0x4b, 0x1b, 0x03, 0x69, 0x0b, 0xa3, 0x43, 0x2b, 0x6b, 0x0b, 0xa3, 0x4b, 0x1b, 0x0b, 0x63, 0x03, 0x79, 0x83, 0x2b, 0x93, 0x0b, 0xa3, 0x4b, 0x7b, 0x73, 0x9b, 0x6b, 0xc3, 0x0c, 0x6d, 0x28, 0xd7, 0x1b, 0x4e, 0x84, 0x0d, 0xe5, 0x7a, 0x0d, 0xe7, 0xc8, 0x0a, 0xbf, 0x20, 0x58, 0x1c, 0x73, 0x71, 0x10, 0x6c, 0x88, 0xe1, 0x20, 0x58, 0x1c, 0x76, 0xe1, 0x36, 0xc4, 0xf0, 0x10, 0xff, 0x25, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xca, 0x07, 0xc1, 0x82, 0x64, 0x20, 0xbd, 0x32, 0x61, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x9d, 0x70, 0xfe, 0x38, 0x34, 0x88, 0x16, 0x76, 0x10, 0x2c, 0x48, 0x06, 0x25, 0x87, 0x6c, 0xc5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x09, 0xef, 0x27, 0xc4, 0xc7, 0xa1, 0xe3, 0xf1, 0xf1, 0xed, 0x78, 0x3c, 0xc8, 0x16, 0xf0, 0xcd, 0xc2, 0xe6, 0xe8, 0x71, 0xc0, 0x6b, 0xab, 0x63, 0x97, 0xf8, 0x8e, 0xc7, 0x2b, 0xfc, 0x82, 0x60, 0xf1, 0x70, 0x8a, 0x2d, 0x0e, 0xbb, 0x70, 0x1b, 0x62, 0x78, 0x88, 0xe6, 0x86, 0x71, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0x08, 0x16, 0x24, 0x03, 0xe9, 0x95, 0x43, 0x72, 0x69, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0x61, 0x7c, 0x1c, 0x1a, 0xe6, 0x30, 0x2e, 0xc7, 0xe3, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0x1c, 0xf0, 0xc2, 0xc8, 0xc8, 0x43, 0x6a, 0xe9, 0x78, 0xbc, 0xc2, 0x2f, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x8c, 0xcb, 0x86, 0x18, 0x0e, 0xbb, 0x20, 0x58, 0x90, 0x0c, 0xe4, 0x57, 0x0e, 0xc9, 0xa5, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xac, 0xdd, 0x84, 0xf5, 0x71, 0x68, 0x43, 0x0c, 0x0f, 0x47, 0xfb, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0x78, 0x6c, 0x74, 0xe5, 0x21, 0xb5, 0x74, 0x3c, 0x5e, 0xf8, 0x05, 0xc1, 0x86, 0x73, 0x7d, 0x71, 0x90, 0x2d, 0xe0, 0xb7, 0x95, 0x85, 0xb9, 0x8b, 0x8b, 0x81, 0xcf, 0x56, 0x16, 0x66, 0x0e, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x8e, 0x83, 0x93, 0x83, 0xa7, 0x83, 0xdb, 0x83, 0xa7, 0x83, 0x93, 0x83, 0x97, 0x83, 0xb6, 0xc1, 0xc5, 0xc1, 0xf3, 0x41, 0xdb, 0xe0, 0xfa, 0xe0, 0xe5, 0xe0, 0xf2, 0xe0, 0x6f, 0xc7, 0xb7, 0xe3, 0xf1, 0xb0, 0x0b, 0xb7, 0x21, 0x86, 0x87, 0x71, 0xd9, 0x70, 0x8a, 0x0d, 0x82, 0x0d, 0x31, 0x1c, 0x04, 0x8b, 0xc3, 0x2e, 0x08, 0x16, 0x24, 0x03, 0xf9, 0x95, 0x43, 0xb6, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0xd9, 0x71, 0x48, 0xcc, 0x1c, 0x87, 0xd6, 0x90, 0x3a, 0x38, 0xc4, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xca, 0x07, 0xc1, 0x82, 0x64, 0xf0, 0xe7, 0x90, 0xad, 0x38, 0xac, 0x4f, 0x0c, 0xa2, 0x85, 0x1d, 0xe6, 0x90, 0x3a, 0x38, 0x1e, 0x1f, 0xdf, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xc0, 0x23, 0xb3, 0x93, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0xc2, 0x2f, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x87, 0x5d, 0x10, 0x2c, 0x48, 0x06, 0x5f, 0x0e, 0xc9, 0xa5, 0x43, 0xa2, 0xf5, 0x90, 0xd8, 0x3c, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0xaf, 0x2d, 0x0c, 0x3f, 0xa4, 0x96, 0x8e, 0xc7, 0x0b, 0xbf, 0x20, 0xd8, 0x70, 0xae, 0x2f, 0x0e, 0xbf, 0x20, 0x58, 0x90, 0x0c, 0x8c, 0xca, 0x21, 0xb9, 0x74, 0x48, 0xb4, 0x1e, 0x87, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xc0, 0x23, 0x4b, 0xb3, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0xc2, 0x2f, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x90, 0xad, 0x21, 0x8f, 0xbd, 0xb8, 0x21, 0xf7, 0x3d, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x38, 0x0e, 0x4e, 0x0e, 0x5e, 0x0e, 0x3e, 0x0e, 0x2e, 0x0f, 0x5e, 0x0e, 0xde, 0x0e, 0x5e, 0x0e, 0xee, 0x0e, 0x4e, 0x0f, 0xda, 0x06, 0xaf, 0x07, 0x77, 0x07, 0x27, 0x07, 0x2f, 0x07, 0x97, 0x07, 0x37, 0x07, 0x67, 0x07, 0x7f, 0x07, 0xbf, 0x3b, 0xbe, 0x1d, 0x8f, 0x87, 0x5d, 0xb8, 0x0d, 0x31, 0x3c, 0xa4, 0x0e, 0x36, 0x9c, 0x62, 0x83, 0x60, 0x43, 0x0c, 0x07, 0xc1, 0xe2, 0xb0, 0x0b, 0xb7, 0x84, 0xf9, 0x61, 0xf9, 0x64, 0x43, 0xea, 0x60, 0x90, 0x0c, 0x39, 0xec, 0x98, 0x1c, 0xdf, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xc0, 0x23, 0x2b, 0x1b, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0xf0, 0x0b, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x61, 0x17, 0x76, 0x43, 0x3a, 0x73, 0xc3, 0xd1, 0x7e, 0x88, 0xe1, 0xc2, 0x2e, 0x08, 0x16, 0x87, 0x5d, 0xb8, 0x0d, 0x31, 0x3c, 0x64, 0xed, 0x36, 0xc4, 0x70, 0xd8, 0x85, 0x5d, 0xd8, 0x85, 0xdb, 0x10, 0xc3, 0x43, 0xbe, 0xf6, 0xb0, 0xbe, 0xb9, 0xb0, 0x0b, 0x92, 0x21, 0x83, 0x68, 0x41, 0xbc, 0x20, 0x58, 0x90, 0x0c, 0xa4, 0x57, 0x26, 0xe4, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x43, 0xfc, 0x8f, 0x43, 0x83, 0x60, 0xc3, 0x7a, 0xec, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x42, 0xfb, 0x71, 0xe8, 0x78, 0x7c, 0x48, 0xe7, 0x1e, 0x8e, 0xf6, 0x43, 0x3a, 0xf7, 0xf8, 0x76, 0x48, 0xe7, 0x1e, 0x8e, 0xf6, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0x1c, 0xf0, 0xd8, 0xe8, 0xd0, 0x43, 0x6a, 0xe9, 0x78, 0x3c, 0xfc, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0xd8, 0x05, 0xc1, 0x82, 0x64, 0x20, 0x28, 0x87, 0xe4, 0xd2, 0x21, 0xd1, 0x7a, 0x58, 0xdf, 0x3c, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0xef, 0x8c, 0x0e, 0x3d, 0xa4, 0x96, 0x8e, 0xc7, 0x0b, 0xbf, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x76, 0x43, 0x7e, 0xf4, 0xb0, 0xbe, 0x79, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0xde, 0x19, 0x5d, 0x79, 0x48, 0x2d, 0x1d, 0x8f, 0x57, 0xf8, 0x05, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0xb0, 0x1b, 0xf2, 0xa3, 0x87, 0xc4, 0xe6, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0x78, 0x6d, 0x69, 0xee, 0x21, 0xb5, 0x74, 0x3c, 0x1e, 0x7e, 0x41, 0xb0, 0xe1, 0x5c, 0x5f, 0x1c, 0x7e, 0xc3, 0xfe, 0xd2, 0xf1, 0xfc, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x07, 0xbc, 0xb6, 0x37, 0xf2, 0x90, 0x5a, 0x3a, 0x1e, 0x0f, 0xbf, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x64, 0x6b, 0xc8, 0x63, 0x2f, 0x6e, 0xc8, 0x7d, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x8e, 0x83, 0xcf, 0x83, 0xd7, 0x83, 0x8b, 0x83, 0xd3, 0x83, 0xcb, 0x83, 0x87, 0x83, 0x8f, 0x87, 0x1d, 0xb7, 0xe3, 0xdb, 0xf1, 0x78, 0xd8, 0x0d, 0xbb, 0x06, 0x1b, 0xa2, 0x39, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0x3d, 0x1b, 0x04, 0x1b, 0x92, 0x69, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x43, 0xbe, 0xf6, 0x38, 0x74, 0x3c, 0x3e, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0x6f, 0xae, 0x4e, 0x3c, 0xa4, 0x96, 0x8e, 0xc7, 0x2b, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xec, 0x42, 0x0f, 0xa9, 0x83, 0x15, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x48, 0x06, 0xb7, 0x8e, 0xc7, 0x87, 0x34, 0xdc, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0x32, 0x50, 0xbb, 0x8e, 0xc7, 0x87, 0x0e, 0x1a, 0x83, 0x60, 0x43, 0x8f, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x21, 0x55, 0x73, 0x1c, 0x1a, 0x04, 0x0b, 0xb7, 0x21, 0x55, 0x73, 0x1c, 0x3a, 0xa4, 0x0e, 0x8e, 0xc7, 0x2b, 0x08, 0x56, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0xd8, 0x90, 0x3a, 0x38, 0x34, 0x7f, 0x39, 0x1e, 0x6f, 0x68, 0x3b, 0xb3, 0xa1, 0xed, 0xcc, 0xa1, 0xed, 0xcc, 0xe2, 0x20, 0x58, 0x09, 0x95, 0x4b, 0xb8, 0xba, 0x04, 0xa1, 0x9d, 0x20, 0xbc, 0x8b, 0x83, 0x60, 0x05, 0xc1, 0x86, 0xf8, 0x1f, 0xd2, 0x70, 0x0b, 0x82, 0x25, 0x5c, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x4e, 0xa8, 0x3e, 0x0e, 0x2d, 0x08, 0x96, 0x20, 0xec, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x09, 0xb7, 0x8f, 0x43, 0x83, 0x60, 0x09, 0xe2, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x9d, 0xf0, 0xfb, 0x38, 0x74, 0x68, 0xfe, 0x72, 0x3c, 0x3e, 0x1e, 0xaf, 0x20, 0xd8, 0xd0, 0x76, 0x66, 0x71, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0xd8, 0x0d, 0x1d, 0x47, 0x56, 0xd8, 0x0d, 0x79, 0xac, 0x0d, 0x31, 0x3c, 0x9c, 0x62, 0x83, 0x60, 0xc3, 0x5e, 0xe1, 0xa1, 0x83, 0xc6, 0xb0, 0x1b, 0xd6, 0xf7, 0x0e, 0x8d, 0xa3, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0x5e, 0x37, 0x8b, 0x83, 0x60, 0x0d, 0x0d, 0x75, 0x36, 0xf4, 0xd8, 0x99, 0x70, 0x77, 0x71, 0x10, 0xac, 0xa1, 0x75, 0xcf, 0x86, 0x9e, 0x3f, 0x83, 0x60, 0x09, 0xdf, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x13, 0xba, 0x8f, 0x43, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x17, 0x9c, 0xc5, 0x41, 0xb0, 0xc2, 0x2f, 0x08, 0x16, 0x24, 0x03, 0xf7, 0xd7, 0x21, 0xb9, 0x74, 0x48, 0xc3, 0x1d, 0x52, 0x07, 0x13, 0x6a, 0x17, 0x07, 0xc1, 0x0a, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x3a, 0x74, 0x35, 0x3b, 0xa4, 0xe1, 0x06, 0xc1, 0x86, 0xb5, 0xdf, 0x43, 0x07, 0x8d, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0xf1, 0x78, 0x10, 0x6c, 0x68, 0x3b, 0xb3, 0x38, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xec, 0x86, 0x8e, 0x23, 0x2b, 0x08, 0x36, 0xec, 0x15, 0x1e, 0xd2, 0x70, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x64, 0xe0, 0xae, 0x3a, 0x24, 0x97, 0x0e, 0x8d, 0x5a, 0x0e, 0x1d, 0x34, 0x0e, 0xfd, 0xa9, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0xb6, 0x33, 0x8b, 0x83, 0x60, 0x09, 0xd3, 0xc5, 0x41, 0xb0, 0x20, 0xd8, 0xb0, 0x57, 0x78, 0x68, 0xd4, 0x72, 0x68, 0xfe, 0x72, 0x3c, 0x3e, 0x1e, 0x0f, 0x82, 0x0d, 0x5d, 0x70, 0x16, 0x07, 0xc1, 0x1a, 0x62, 0x78, 0x68, 0xa8, 0xb3, 0x38, 0x08, 0x16, 0x76, 0xe1, 0x36, 0x1c, 0xed, 0x87, 0x68, 0xae, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x87, 0xa3, 0x7d, 0xc3, 0xd1, 0x7e, 0x38, 0xc5, 0x0e, 0x2d, 0xdd, 0x16, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x10, 0xc3, 0x43, 0xe3, 0xa8, 0x41, 0xb0, 0x21, 0xfe, 0x87, 0x0e, 0x1a, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0xc2, 0x2e, 0xec, 0x86, 0x8e, 0x23, 0x87, 0xf5, 0xcd, 0x0d, 0xa9, 0x83, 0xc3, 0x29, 0x76, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x41, 0xb0, 0xa1, 0x0b, 0xce, 0xe2, 0x20, 0x58, 0x43, 0x43, 0x9d, 0x43, 0x27, 0xb5, 0xc5, 0x41, 0xb0, 0x86, 0xd6, 0x3d, 0x87, 0x96, 0x6e, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0xc2, 0x6f, 0x48, 0x4c, 0x0d, 0x82, 0x8d, 0x43, 0x8b, 0x87, 0x15, 0xda, 0xe3, 0xf1, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0xc3, 0xd1, 0x7e, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x10, 0x6c, 0x68, 0x3b, 0xb3, 0x38, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0xe2, 0xf0, 0x1b, 0x52, 0x35, 0xc7, 0xb7, 0xe3, 0xf1, 0xa1, 0xf9, 0xcb, 0xf1, 0xf8, 0x78, 0xbc, 0x82, 0x60, 0x43, 0xdb, 0x99, 0xc5, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x61, 0x37, 0x74, 0x1c, 0x59, 0x43, 0x57, 0xbb, 0x05, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xc9, 0xc0, 0xf1, 0x75, 0x48, 0x2e, 0x1d, 0x1a, 0xb5, 0x1c, 0x9a, 0x02, 0x0d, 0x82, 0x0d, 0x1d, 0x7e, 0x0f, 0x2d, 0xc0, 0x0e, 0xfd, 0xa9, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc7, 0xe3, 0x41, 0xb0, 0xa1, 0xed, 0xcc, 0xe2, 0x20, 0xd8, 0xd0, 0x76, 0xe6, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x20, 0xd8, 0xd0, 0x76, 0x66, 0x71, 0x10, 0xac, 0xa1, 0x91, 0xe0, 0xf0, 0x0b, 0x82, 0x0d, 0x4d, 0xce, 0x0e, 0x8d, 0x5a, 0x0e, 0xa9, 0x83, 0xc5, 0x41, 0xb0, 0x86, 0xae, 0x76, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x0e, 0xbd, 0x9e, 0x0f, 0x1d, 0x34, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc7, 0xe3, 0x41, 0xb0, 0xa1, 0xed, 0xcc, 0xe2, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0xb0, 0x1b, 0x3a, 0x8e, 0x6c, 0xe8, 0x2b, 0x7d, 0xe8, 0x4f, 0x75, 0x68, 0xfe, 0x72, 0x3c, 0x3e, 0x1e, 0x2f, 0xfc, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x87, 0x5d, 0xb8, 0xc5, 0xc8, 0x21, 0x75, 0xb0, 0xa1, 0x95, 0xf8, 0xb0, 0x0b, 0xb7, 0x18, 0x3d, 0xa4, 0x0e, 0x36, 0xf4, 0x27, 0x1f, 0x76, 0x61, 0x17, 0x6e, 0xc3, 0xd1, 0x7e, 0x48, 0x1d, 0x6c, 0x88, 0xe1, 0x61, 0x7d, 0x6f, 0xc3, 0x29, 0x36, 0xc8, 0x16, 0xf0, 0xe9, 0xde, 0xe6, 0xe6, 0x43, 0x0c, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x83, 0x60, 0x41, 0x32, 0x70, 0xae, 0x1c, 0x92, 0x4b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xa9, 0x9a, 0xe1, 0x37, 0x9e, 0x1f, 0x5a, 0x89, 0x1f, 0x87, 0x8e, 0xc7, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0x38, 0xe0, 0x8d, 0x85, 0xc1, 0x87, 0xd4, 0xd2, 0xf1, 0x78, 0xe1, 0x17, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0xc3, 0x6e, 0xc8, 0x63, 0x6d, 0x38, 0xc5, 0x86, 0xdd, 0xb0, 0x6b, 0xb0, 0xe1, 0x14, 0x1b, 0x76, 0xe1, 0x36, 0x1c, 0xed, 0x87, 0x71, 0xd9, 0x10, 0xcd, 0x61, 0x17, 0x6e, 0x43, 0x2b, 0xf1, 0xc3, 0xb8, 0x2c, 0x08, 0x16, 0x24, 0x83, 0xe0, 0x90, 0x5c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xc8, 0xda, 0x1d, 0x1a, 0xcf, 0x1f, 0x87, 0x86, 0x5d, 0xb8, 0x0d, 0xfd, 0xc9, 0x0f, 0xe3, 0xb2, 0x30, 0x87, 0xaf, 0x04, 0x06, 0xd9, 0x86, 0xe6, 0xeb, 0x83, 0x60, 0x41, 0x32, 0x28, 0x39, 0x24, 0x97, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0xa2, 0x73, 0x48, 0x2e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xe4, 0x6b, 0x0f, 0x8d, 0xe7, 0x8f, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x9e, 0x14, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x48, 0x07, 0xc1, 0x86, 0xc6, 0xef, 0x87, 0x1f, 0x15, 0x8e, 0xc7, 0x87, 0xc6, 0xf3, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0x78, 0x70, 0x65, 0xe7, 0x21, 0xb5, 0x74, 0x3c, 0x1e, 0x7e, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x2e, 0xec, 0x86, 0x9e, 0xe4, 0x1b, 0x62, 0x78, 0x68, 0x1f, 0xbe, 0xe1, 0x68, 0x1f, 0x76, 0x43, 0xa3, 0xf3, 0x0d, 0xa7, 0xd8, 0x20, 0xdb, 0xd0, 0x7c, 0x7d, 0x10, 0x6c, 0x78, 0xf0, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x6f, 0x13, 0x0e, 0x1d, 0xe3, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x3c, 0x29, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x87, 0xd6, 0xed, 0x87, 0xc6, 0xf3, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0x78, 0x6d, 0x61, 0xf3, 0x21, 0xb5, 0x74, 0x3c, 0x5e, 0xc0, 0x6f, 0x0b, 0xa3, 0x43, 0x97, 0x01, 0x78, 0xa9, 0x73, 0x9b, 0x4b, 0x3b, 0x73, 0x2b, 0x23, 0x03, 0x09, 0x93, 0x4b, 0xa3, 0x43, 0x6b, 0x2b, 0xa3, 0x4b, 0x1b, 0x5b, 0x43, 0xe2, 0x68, 0xc0, 0x9f, 0x3b, 0x33, 0x9b, 0x37, 0x24, 0x8e, 0x06, 0x7c, 0xb7, 0x37, 0xba, 0x72, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0x5b, 0x9d, 0xdb, 0x5c, 0xda, 0x99, 0x5b, 0x19, 0x19, 0x48, 0x5b, 0x1d, 0x1b, 0x5d, 0x1a, 0x1c, 0x5b, 0xda, 0x58, 0x18, 0x5d, 0xda, 0x9b, 0xbb, 0x12, 0xe0, 0x1d, 0xa6, 0x03, 0xd2, 0x56, 0xc7, 0x46, 0x97, 0x06, 0xc7, 0x96, 0x36, 0x16, 0xe6, 0x46, 0x2e, 0x01, 0x9e, 0x62, 0x3a, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x0d, 0xf8, 0x62, 0x72, 0x63, 0xec, 0x02, 0xfe, 0x18, 0x1b, 0x9d, 0xbc, 0x80, 0xbf, 0x46, 0x47, 0x37, 0x0f, 0x1e, 0x0e, 0xf8, 0x6b, 0x74, 0x6c, 0xf3, 0x02, 0xfe, 0x5c, 0x98, 0x1b, 0x79, 0x38, 0xc5, 0x36, 0x7c, 0xfd, 0xb2, 0xe1, 0x43, 0x98, 0x0d, 0x3f, 0xc2, 0x6c, 0xa8, 0xf9, 0xb9, 0x86, 0xcf, 0x5d, 0x06, 0x17, 0x0f, 0x3f, 0xbf, 0x34, 0xe0, 0xaf, 0xd1, 0xa1, 0xc1, 0x0b, 0xf8, 0x62, 0x61, 0x73, 0xe5, 0x86, 0x3a, 0xde, 0x80, 0x4f, 0x37, 0xc7, 0x36, 0xaf, 0xe1, 0x73, 0x97, 0xc1, 0xc7, 0x0d, 0x3f, 0xc2, 0x6c, 0xa8, 0xf9, 0x0d, 0xf8, 0x62, 0x72, 0x68, 0xf0, 0x80, 0x7f, 0x47, 0x37, 0xc6, 0x2e, 0xe0, 0x93, 0xd1, 0xd1, 0xcd, 0x1b, 0x1e, 0xbc, 0x19, 0xf0, 0xef, 0xd2, 0xdc, 0xce, 0xc1, 0xc3, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0x63, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x1e, 0xdc, 0x19, 0xf0, 0xc7, 0xdc, 0xc6, 0xd8, 0x35, 0xbc, 0xad, 0xb3, 0x61, 0x21, 0xb2, 0x0d, 0x4f, 0xeb, 0xb4, 0x86, 0x7f, 0x78, 0x36, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0xa4, 0x0f, 0x5b, 0xc3, 0xdb, 0x3a, 0x83, 0x8b, 0x6d, 0x78, 0x7a, 0xa7, 0x56, 0x43, 0xfa, 0x70, 0xc3, 0xe3, 0x23, 0x1b, 0xd2, 0x87, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xf0, 0x50, 0xe7, 0x36, 0x97, 0x76, 0xe6, 0x56, 0x46, 0x06, 0x12, 0x46, 0x46, 0x96, 0x46, 0x97, 0xf6, 0xe6, 0xae, 0x04, 0x78, 0x84, 0xe9, 0x80, 0x84, 0xd5, 0x9d, 0x95, 0xb9, 0x91, 0x4b, 0x80, 0x87, 0x98, 0x0e, 0x48, 0x18, 0x19, 0x59, 0x99, 0x1b, 0x59, 0x03, 0xbe, 0x98, 0x1c, 0xdd, 0xbc, 0x80, 0x2f, 0x36, 0x36, 0xc6, 0x2e, 0xe0, 0x8b, 0x8d, 0xd1, 0xcd, 0x83, 0x87, 0x87, 0x1f, 0x6a, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xe2, 0xe1, 0x87, 0x9a, 0x36, 0xfc, 0x45, 0xb3, 0xe1, 0x87, 0x9a, 0x0d, 0x1f, 0xe4, 0x6c, 0xf8, 0x36, 0x67, 0xc3, 0x7b, 0x41, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x86, 0x8f, 0x7a, 0xd6, 0xf0, 0x79, 0xd0, 0x80, 0x4f, 0x46, 0xc7, 0x36, 0x1f, 0xde, 0x0b, 0x6a, 0x35, 0x64, 0x8d, 0x37, 0x3c, 0x3e, 0xb2, 0x21, 0x6b, 0xbc, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x00, 0xbf, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x65, 0x71, 0x75, 0x61, 0x6c, 0xf3, 0x4a, 0x00, 0x8d, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x77, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x7b, 0x61, 0x20, 0x3e, 0x3d, 0x20, 0x62, 0x7d, 0xae, 0x95, 0x00, 0x34, 0x08, 0xd3, 0x01, 0x61, 0x2b, 0x33, 0xa3, 0x03, 0x41, 0x0b, 0x73, 0x23, 0x03, 0x79, 0x83, 0x2b, 0x93, 0x0b, 0x73, 0x23, 0x03, 0x41, 0xa1, 0x7b, 0x23, 0x7b, 0xd3, 0x01, 0x71, 0x0b, 0x6b, 0x2b, 0x4b, 0x4b, 0x00, 0x4f, 0x62, 0x3a, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x6d, 0xf8, 0x45, 0x69, 0xc3, 0xdf, 0x4a, 0x03, 0xfe, 0x1d, 0x9d, 0x98, 0xbc, 0x86, 0x7f, 0x73, 0x36, 0x3c, 0xad, 0x73, 0x78, 0x2f, 0x68, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0xeb, 0xcd, 0x6d, 0x78, 0x5a, 0x67, 0xc3, 0x7b, 0x41, 0x35, 0x6b, 0x58, 0x7c, 0xd9, 0xf0, 0xf8, 0xc8, 0x86, 0xc5, 0x97, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0xf8, 0xae, 0x73, 0x9b, 0x4b, 0x3b, 0x73, 0x2b, 0x23, 0x03, 0x21, 0x4b, 0xb3, 0x4b, 0x23, 0x2b, 0x03, 0xb9, 0x4b, 0xa3, 0x43, 0x03, 0x91, 0x2b, 0x6b, 0x0b, 0x4b, 0x73, 0x23, 0x2b, 0x93, 0x57, 0x02, 0xbc, 0xc2, 0x74, 0x40, 0xc8, 0xd2, 0xec, 0xd2, 0xc8, 0xca, 0xdc, 0xc8, 0x25, 0xc0, 0x47, 0x4c, 0x07, 0x84, 0x2c, 0xcd, 0x2e, 0x6d, 0xee, 0x4d, 0xae, 0x0d, 0xdf, 0xb5, 0x6c, 0xf8, 0xc4, 0x65, 0xc3, 0x5f, 0x34, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x0e, 0x1f, 0x7e, 0xa8, 0x59, 0xc3, 0x9f, 0x4b, 0x83, 0xc7, 0x87, 0x1f, 0x6a, 0x1a, 0xf0, 0xe7, 0xce, 0xc6, 0xc4, 0x15, 0xf0, 0xe5, 0xde, 0xc6, 0xd6, 0x01, 0x8f, 0x2e, 0x6c, 0x3e, 0x64, 0xc0, 0x07, 0xfc, 0x35, 0xb7, 0x34, 0xfa, 0x90, 0x61, 0x1f, 0xf0, 0xef, 0xe8, 0xce, 0xd8, 0x35, 0xfc, 0x9b, 0xb3, 0xe1, 0xc1, 0x9b, 0xc3, 0x7b, 0x41, 0x1b, 0x3e, 0xb1, 0xd9, 0xf0, 0xb5, 0xcd, 0x86, 0xaf, 0x70, 0x36, 0x7c, 0x90, 0xb3, 0xe1, 0x51, 0xb3, 0x35, 0xfc, 0xe2, 0xb2, 0xe1, 0xe9, 0x9d, 0xc3, 0x43, 0x3f, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x1e, 0xdc, 0xd9, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0xd0, 0xe2, 0xa3, 0xc3, 0xef, 0x67, 0x6b, 0xf8, 0x87, 0x67, 0xc3, 0xc7, 0x51, 0x87, 0xa7, 0x77, 0x5a, 0x0d, 0x2b, 0x43, 0x1b, 0x1e, 0x1f, 0xd9, 0xb0, 0x32, 0xb4, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x7f, 0x9d, 0xdb, 0x5c, 0xda, 0x99, 0x5b, 0x19, 0x19, 0x48, 0x5b, 0x18, 0x5e, 0x5a, 0x5b, 0x5d, 0xdb, 0x86, 0x5f, 0x94, 0x36, 0xfc, 0xad, 0xb4, 0xe1, 0x2f, 0x9a, 0x0d, 0x3f, 0xd4, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0xab, 0xe1, 0x1d, 0x7e, 0x3f, 0x3b, 0xbc, 0x5c, 0x76, 0x38, 0xc5, 0xd6, 0xb0, 0x68, 0xb5, 0xe1, 0xf1, 0x91, 0x0d, 0x8b, 0x56, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0xd7, 0xb9, 0xcd, 0xa5, 0x9d, 0xb9, 0x95, 0x91, 0x81, 0x90, 0xa5, 0xd9, 0xa5, 0x91, 0x95, 0x87, 0x17, 0xde, 0x36, 0x7c, 0xd7, 0xb2, 0xe1, 0x13, 0x97, 0x0d, 0x7f, 0xd1, 0x6c, 0xf8, 0xa1, 0x66, 0xc0, 0xa7, 0x9b, 0x3b, 0x63, 0xd7, 0x70, 0x49, 0xad, 0x71, 0xa8, 0x36, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x2c, 0xbe, 0x74, 0xf8, 0xfd, 0x6c, 0x35, 0x2c, 0x44, 0x6e, 0x78, 0x7c, 0x64, 0xc3, 0x42, 0xe4, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0x74, 0xd6, 0xb9, 0xcd, 0xa5, 0x9d, 0xb9, 0x95, 0x91, 0x81, 0x90, 0x95, 0x8d, 0xc9, 0x95, 0xb5, 0x95, 0xb9, 0xd1, 0x81, 0x88, 0xe5, 0x81, 0xbc, 0xb9, 0x95, 0xb9, 0x36, 0xfc, 0xa2, 0xb4, 0xe1, 0xcb, 0xa5, 0x0d, 0x6f, 0xd9, 0xad, 0xe1, 0x89, 0xbb, 0x0d, 0xcf, 0xe2, 0x1d, 0x76, 0xcc, 0x36, 0xbc, 0x9b, 0xb7, 0xe1, 0xdb, 0x9c, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xc5, 0xc3, 0x83, 0x37, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0x17, 0xcd, 0x86, 0x1f, 0x6a, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0x36, 0x3c, 0xad, 0x73, 0xf8, 0x37, 0x6a, 0xc3, 0x7b, 0x41, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0xe1, 0xa5, 0xa8, 0x59, 0xc3, 0x7a, 0xf3, 0x86, 0xc7, 0x47, 0x36, 0xac, 0x37, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0x47, 0x9d, 0xdb, 0x5c, 0xda, 0x99, 0x5b, 0x19, 0x19, 0x08, 0x5b, 0xd9, 0xdc, 0x1c, 0x08, 0x1d, 0x5a, 0x98, 0x7b, 0x78, 0x88, 0x6b, 0xc3, 0x2f, 0x4a, 0x1b, 0xfe, 0x56, 0xda, 0xf0, 0x17, 0xcd, 0x1a, 0xbe, 0xa8, 0x09, 0x7c, 0x33, 0xb6, 0xb0, 0x73, 0xc0, 0xbf, 0xa3, 0x83, 0x6b, 0x17, 0xf0, 0xef, 0xe8, 0xf4, 0xe0, 0xc3, 0x5f, 0x65, 0x6b, 0xf8, 0x0a, 0x67, 0xc3, 0xaf, 0x64, 0x1b, 0xbe, 0xcd, 0x59, 0xc3, 0x23, 0xac, 0x6b, 0x78, 0x9b, 0xf5, 0xf0, 0x9a, 0xde, 0x1a, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x86, 0x8f, 0x7a, 0xd6, 0xf0, 0x79, 0xd0, 0x86, 0x77, 0x7b, 0x36, 0xbc, 0xe6, 0x73, 0x78, 0x0b, 0xad, 0xea, 0x70, 0x8a, 0xb5, 0x86, 0xd5, 0xf0, 0x0d, 0x8f, 0x8f, 0x6c, 0x58, 0x0d, 0xdf, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0xa7, 0x3a, 0xb7, 0xb9, 0xb4, 0x33, 0xb7, 0x32, 0x32, 0x90, 0x33, 0xb9, 0xb2, 0x30, 0xba, 0x32, 0x39, 0x10, 0x3a, 0xb4, 0x30, 0x77, 0x25, 0x80, 0x37, 0xb9, 0x32, 0xba, 0x3a, 0x39, 0xb7, 0x39, 0x90, 0x3b, 0xb4, 0x32, 0x3a, 0xb4, 0x32, 0x39, 0x90, 0xbd, 0x30, 0x10, 0x1f, 0x10, 0xb1, 0xbe, 0xc3, 0x43, 0x5c, 0x1b, 0x7e, 0x51, 0xda, 0xf0, 0xb7, 0xd2, 0x86, 0xbf, 0x68, 0x36, 0x7c, 0xb0, 0xba, 0xe1, 0x6d, 0xd6, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x59, 0xe3, 0x0e, 0xbf, 0x9f, 0x1d, 0x4e, 0xb1, 0x35, 0xec, 0xc4, 0x6f, 0x78, 0x7c, 0x64, 0xc3, 0x4e, 0xfc, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0xbc, 0xd7, 0xb9, 0xcd, 0xa5, 0x9d, 0xb9, 0x95, 0x91, 0x81, 0x9c, 0xc9, 0x95, 0x85, 0xd1, 0x95, 0xc9, 0x81, 0xd0, 0xa1, 0x85, 0xb9, 0x81, 0xbc, 0xc9, 0x81, 0x94, 0xc5, 0xd5, 0x85, 0xb1, 0xcd, 0x87, 0x7f, 0xb1, 0x36, 0xfc, 0xa2, 0xb4, 0xe1, 0x6f, 0xa5, 0x0d, 0x7f, 0xd1, 0x6c, 0xf8, 0x60, 0x75, 0xc3, 0xdb, 0xac, 0x87, 0x47, 0xcd, 0x56, 0x43, 0x37, 0x80, 0x0d, 0x8f, 0x8f, 0x6c, 0xe8, 0x06, 0xb0, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x7f, 0x9d, 0xdb, 0x5c, 0xda, 0x99, 0x5b, 0x19, 0x19, 0x48, 0x5b, 0x9a, 0x5b, 0x5a, 0x5b, 0x5d, 0xdb, 0x86, 0x5f, 0x94, 0x36, 0xfc, 0xad, 0xb4, 0xe1, 0x2f, 0x9a, 0x0d, 0x3f, 0xd4, 0x6c, 0xf8, 0x20, 0x67, 0xc3, 0xa3, 0x66, 0x87, 0x97, 0xcb, 0x66, 0x0d, 0xcd, 0x0f, 0x36, 0x3c, 0x3e, 0xb2, 0xa1, 0xf9, 0xc1, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0xfe, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x75, 0xf3, 0xe1, 0x85, 0xb7, 0x0d, 0xdf, 0xb5, 0x6c, 0xf8, 0xc4, 0x65, 0xc3, 0x5f, 0x34, 0x1b, 0x7e, 0xa8, 0xd9, 0xf0, 0xa0, 0xe4, 0x86, 0x3b, 0xea, 0xf0, 0xfa, 0xe4, 0xe1, 0x14, 0x5b, 0x43, 0x8b, 0x8f, 0x0d, 0x8f, 0x8f, 0x6c, 0x68, 0xf1, 0xb1, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x3f, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x73, 0x75, 0x62, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0xee, 0x4a, 0x80, 0x4f, 0x98, 0x0e, 0x48, 0x5b, 0x9a, 0x5b, 0x5d, 0x99, 0x1b, 0xb9, 0x04, 0x78, 0x8a, 0xe9, 0x80, 0xcc, 0xd5, 0x89, 0xd1, 0xc9, 0x85, 0xa1, 0x95, 0xb9, 0x91, 0xb5, 0xe1, 0x17, 0xa5, 0x0d, 0x7f, 0x2b, 0x6d, 0x78, 0xcb, 0x6e, 0x0d, 0x4f, 0xdc, 0x6d, 0x78, 0x16, 0xef, 0xd0, 0xf9, 0x61, 0xc3, 0x5f, 0x34, 0x1b, 0x7e, 0xa8, 0xd9, 0xf0, 0x41, 0xce, 0x86, 0xd7, 0xf4, 0x36, 0x3c, 0xad, 0x73, 0xf8, 0x10, 0xf6, 0x70, 0x8a, 0xad, 0x00, 0x3e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0xf3, 0x32, 0x00, 0xbf, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x62, 0x61, 0x73, 0x69, 0x63, 0x20, 0x6f, 0x66, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x0b, 0xf8, 0x62, 0x69, 0x74, 0xe5, 0x80, 0xbf, 0x46, 0x37, 0xc6, 0x0e, 0xf8, 0x6e, 0x61, 0x6d, 0xe5, 0x86, 0x2f, 0xd9, 0x07, 0xfc, 0xb3, 0xb4, 0x39, 0x7a, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0x4f, 0x18, 0xdd, 0x5b, 0x1b, 0xc8, 0x1c, 0x5b, 0xda, 0x58, 0x19, 0xc8, 0x1c, 0x5c, 0xd9, 0x58, 0x9a, 0x59, 0x5a, 0x99, 0xdc, 0x80, 0x2f, 0x36, 0x06, 0x47, 0x2f, 0xe0, 0xb3, 0xa5, 0xad, 0x95, 0x0b, 0xf8, 0x62, 0x6c, 0x6f, 0x71, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x6d, 0xf8, 0x8e, 0xfe, 0xf0, 0xed, 0xfc, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xe7, 0xe8, 0xca, 0xe0, 0x0d, 0xff, 0xce, 0xaf, 0xe1, 0xad, 0xfb, 0x6a, 0x05, 0xfc, 0xb8, 0xba, 0x30, 0x76, 0xc0, 0x17, 0x93, 0x13, 0x1b, 0x17, 0xe0, 0x31, 0x4b, 0x93, 0x9b, 0xa3, 0x07, 0xf8, 0xe6, 0xca, 0xc6, 0xde, 0xdc, 0xc8, 0x01, 0x1e, 0x3a, 0xb4, 0x34, 0x39, 0x72, 0x80, 0xcf, 0xec, 0xad, 0x4e, 0x8e, 0x0e, 0x6d, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xef, 0xb8, 0xba, 0x30, 0x32, 0xb9, 0x3a, 0x38, 0xb6, 0x32, 0x10, 0xba, 0x3a, 0x38, 0xb6, 0x72, 0x25, 0x00, 0xcd, 0xdb, 0xde, 0xd8, 0xc8, 0x40, 0xce, 0xca, 0xdc, 0xca, 0xe4, 0xc2, 0xe8, 0xde, 0xe4, 0x74, 0x40, 0xe0, 0xe4, 0xde, 0xc8, 0xea, 0xc6, 0xca, 0xe6, 0x40, 0xc2, 0x40, 0xe8, 0xea, 0xe0, 0xd8, 0xca, 0x40, 0xde, 0xcc, 0x40, 0xe8, 0xd0, 0xca, 0x40, 0xcc, 0xde, 0xea, 0xe4, 0x40, 0xe8, 0xf2, 0xe0, 0xca, 0xe6, 0x40, 0xe0, 0xc2, 0xe6, 0xe6, 0xca, 0xc8, 0x40, 0xd2, 0xdc, 0x5c, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x0e, 0x6f, 0xf8, 0x77, 0x7e, 0x0d, 0xef, 0xe9, 0xd7, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0xde, 0xf0, 0xef, 0xfc, 0x1a, 0x9e, 0xda, 0xaf, 0x35, 0xfc, 0xb9, 0x34, 0xb8, 0xbc, 0xe1, 0xdf, 0xf9, 0x35, 0xbc, 0xc4, 0x5f, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0x79, 0xc3, 0xbf, 0xf3, 0x1b, 0xde, 0xe8, 0xaf, 0x15, 0xf0, 0xeb, 0xdc, 0xd2, 0xe8, 0x0d, 0x0f, 0xe7, 0x2f, 0xe0, 0xa7, 0xd1, 0x95, 0xb5, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xf0, 0xb4, 0x85, 0xe5, 0x89, 0x95, 0x2b, 0x01, 0xf8, 0xdb, 0xf6, 0xc6, 0x46, 0x06, 0x72, 0x56, 0xe6, 0x56, 0x26, 0x17, 0x46, 0xf7, 0x26, 0xa7, 0x03, 0x52, 0x96, 0x46, 0x87, 0x56, 0x26, 0x07, 0x02, 0xe6, 0x07, 0x06, 0xf2, 0x26, 0x07, 0x02, 0xb6, 0xe5, 0x07, 0x52, 0xd7, 0x13, 0xd6, 0x05, 0x06, 0x72, 0x87, 0x56, 0x26, 0x57, 0x06, 0x02, 0x16, 0x06, 0x06, 0x92, 0x36, 0x07, 0x42, 0x87, 0x56, 0x2e, 0x01, 0xf4, 0xd1, 0xe5, 0xc1, 0x95, 0x81, 0xd0, 0xa1, 0x85, 0xd1, 0x81, 0xdc, 0x85, 0xcd, 0x81, 0xc0, 0x85, 0xcd, 0xcd, 0x95, 0x91, 0x81, 0xa4, 0xb9, 0xb9, 0xda, 0xf0, 0xc1, 0xfc, 0x1a, 0xbe, 0xa8, 0x09, 0x7c, 0xb7, 0x3a, 0x36, 0x76, 0xc3, 0xe7, 0x4a, 0x1b, 0x84, 0xe0, 0xc3, 0x1a, 0xfe, 0x5c, 0x1a, 0xbc, 0xde, 0xf0, 0xef, 0xfc, 0x06, 0xa1, 0x8a, 0x50, 0x2b, 0xe0, 0xd3, 0xc9, 0x95, 0xb1, 0x1b, 0x1e, 0xce, 0x5f, 0xc3, 0x7b, 0xfa, 0x1b, 0x9e, 0xda, 0x3f, 0x08, 0x82, 0x83, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xfc, 0xe8, 0xe4, 0xd2, 0xe0, 0xd8, 0xca, 0x40, 0xe8, 0xea, 0xe0, 0xd8, 0xca, 0x95, 0x00, 0x74, 0x6f, 0x7b, 0x63, 0x23, 0x03, 0x39, 0x2b, 0x73, 0x2b, 0x93, 0x0b, 0xa3, 0x7b, 0x93, 0xd3, 0x01, 0x81, 0x93, 0x7b, 0x23, 0xab, 0x1b, 0x2b, 0x9b, 0x03, 0x09, 0x03, 0xa1, 0xab, 0x83, 0x63, 0x2b, 0x03, 0x79, 0x33, 0x03, 0xa1, 0x43, 0x2b, 0x03, 0xa1, 0x43, 0x93, 0x2b, 0x2b, 0x03, 0xa1, 0xcb, 0x83, 0x2b, 0x9b, 0x03, 0x81, 0x0b, 0x9b, 0x9b, 0x2b, 0x23, 0x03, 0x49, 0x73, 0x73, 0xb5, 0xe1, 0x73, 0xa5, 0x0d, 0x02, 0x9a, 0x60, 0x83, 0x10, 0x2d, 0xd8, 0x20, 0xe8, 0x0c, 0x9a, 0x05, 0xfc, 0xb8, 0xba, 0x34, 0x78, 0xc3, 0xc3, 0xf9, 0x6b, 0x10, 0xae, 0x08, 0x03, 0x3c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xf0, 0x0f, 0x17, 0x96, 0x26, 0x07, 0xf2, 0x66, 0x06, 0xc2, 0x96, 0x36, 0x47, 0x07, 0xf2, 0x66, 0x06, 0x62, 0x96, 0x26, 0x37, 0x47, 0x07, 0x12, 0xe6, 0x46, 0x06, 0x32, 0x57, 0x36, 0xf6, 0xe6, 0x46, 0xae, 0x04, 0xc0, 0x27, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x20, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x68, 0x6f, 0x6f, 0x6e, 0x20, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x69, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x20, 0x2b, 0x2b, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x2c, 0x20, 0x61, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x77, 0x69, 0x74, 0xe8, 0x12, 0xa0, 0x17, 0x06, 0xe2, 0x56, 0x76, 0x07, 0x32, 0x47, 0x17, 0x46, 0x57, 0xe6, 0x5a, 0x09, 0xe0, 0x27, 0x4c, 0x07, 0x84, 0x2e, 0x0f, 0xae, 0x0c, 0xe4, 0xcd, 0x0c, 0x84, 0x2d, 0x6d, 0x8e, 0x0e, 0x24, 0x8d, 0xae, 0xac, 0x5d, 0x02, 0x78, 0x14, 0xd3, 0x01, 0xa1, 0xcb, 0x83, 0x2b, 0x03, 0x79, 0x33, 0x03, 0x91, 0x2b, 0xa3, 0xab, 0x93, 0x73, 0x2b, 0x23, 0x03, 0x99, 0xa3, 0x0b, 0xa3, 0x2b, 0x6b, 0xc3, 0xe7, 0x4a, 0x0b, 0xf8, 0x6d, 0x61, 0x6b, 0xe5, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xd9, 0xd2, 0xe6, 0xe8, 0x36, 0x08, 0x6c, 0x88, 0xd6, 0xf0, 0xef, 0xfc, 0x06, 0x21, 0x9c, 0x51, 0xb3, 0x80, 0x0f, 0xf7, 0xc6, 0x56, 0x6e, 0x78, 0x38, 0x7f, 0x83, 0x50, 0x45, 0xd8, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0xd3, 0x2c, 0x6c, 0xac, 0x8c, 0xad, 0x6c, 0x6e, 0x0e, 0x84, 0x2d, 0x6d, 0x8e, 0x5e, 0x09, 0x40, 0x3b, 0xb6, 0xb4, 0xb5, 0x32, 0x90, 0x95, 0x15, 0xb6, 0xb4, 0x39, 0x3a, 0x16, 0x10, 0xb1, 0x3a, 0x3a, 0x90, 0xbb, 0x34, 0x3a, 0xb4, 0xb7, 0x3a, 0x3a, 0x10, 0x3a, 0xb4, 0x32, 0x10, 0xb3, 0xb0, 0xb1, 0xb2, 0x39, 0x90, 0xbd, 0xb4, 0x3e, 0x90, 0x30, 0x37, 0x32, 0x90, 0x3d, 0xba, 0x3e, 0x57, 0x1b, 0x3e, 0x98, 0xdf, 0x20, 0x04, 0x1f, 0x36, 0x7c, 0xae, 0xb4, 0x41, 0x60, 0x43, 0xac, 0x41, 0xe8, 0x97, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x42, 0xf6, 0xa4, 0x83, 0x20, 0x37, 0xe9, 0x70, 0x8a, 0xb5, 0x80, 0xcf, 0xf6, 0xe6, 0x56, 0x6e, 0x78, 0x38, 0x7f, 0x83, 0x50, 0x45, 0xd8, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0x87, 0xb9, 0x34, 0xb7, 0x33, 0xb6, 0x32, 0x90, 0x34, 0xba, 0xb2, 0x36, 0x10, 0xba, 0x3a, 0x38, 0xb6, 0x72, 0x25, 0x00, 0xad, 0xdb, 0xde, 0xd8, 0xc8, 0x40, 0xce, 0xca, 0xdc, 0xca, 0xe4, 0xc2, 0xe8, 0xde, 0xe4, 0x74, 0x40, 0xe0, 0xea, 0xe8, 0xe6, 0x40, 0xe8, 0xd0, 0xca, 0x40, 0xcc, 0xc2, 0xc6, 0xca, 0x40, 0xde, 0xcc, 0x40, 0xc0, 0xe0, 0xc0, 0x40, 0xde, 0xdc, 0x40, 0xe8, 0xd0, 0xca, 0x40, 0xe0, 0xc2, 0xe6, 0xe6, 0xca, 0xc8, 0x40, 0xd2, 0xdc, 0x40, 0xda, 0xde, 0xd8, 0xc8, 0x5c, 0x6d, 0xf8, 0x73, 0x69, 0x70, 0xf8, 0x20, 0xb0, 0x21, 0x66, 0x01, 0xbf, 0x2c, 0x6c, 0x0c, 0xdd, 0xf0, 0x70, 0xfe, 0x02, 0x3e, 0x1d, 0x5a, 0xda, 0x3c, 0xe0, 0xd3, 0xa1, 0x85, 0xd1, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0x80, 0x26, 0x65, 0x69, 0x74, 0x68, 0x65, 0x72, 0x20, 0x7b, 0x61, 0x7d, 0x20, 0x6f, 0x72, 0x20, 0x7b, 0x62, 0x7d, 0x2c, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x7b, 0x61, 0x7d, 0x6e, 0x25, 0x00, 0xfd, 0xdb, 0xde, 0xd8, 0xc8, 0x40, 0xce, 0xca, 0xdc, 0xca, 0xe4, 0xc2, 0xe8, 0xde, 0xe4, 0x74, 0x40, 0xe0, 0xe4, 0xde, 0xc8, 0xea, 0xc6, 0xca, 0xe6, 0x40, 0xc2, 0x40, 0xc8, 0xd2, 0xe6, 0xc6, 0xe4, 0xd2, 0xda, 0xd2, 0xdc, 0xc2, 0xe8, 0xca, 0xc8, 0x40, 0xcc, 0xde, 0xe4, 0xd6, 0x40, 0xc4, 0xca, 0xe8, 0xee, 0xca, 0xca, 0xdc, 0x40, 0xe8, 0xee, 0xde, 0x40, 0xe8, 0xf2, 0xe0, 0xca, 0xe6, 0xd8, 0x12, 0x40, 0x07, 0x59, 0x99, 0x59, 0x58, 0x1d, 0x1b, 0x5d, 0x9a, 0xdb, 0x19, 0x08, 0xdd, 0x1b, 0xc8, 0x5e, 0x58, 0x9f, 0xab, 0x01, 0x5f, 0x6c, 0x6c, 0xcc, 0x5d, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x0f, 0x6e, 0xe6, 0x1a, 0xfe, 0x5c, 0x1a, 0x1c, 0xde, 0xf0, 0xef, 0xfc, 0x06, 0xa1, 0x6e, 0x53, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x19, 0xf0, 0xc1, 0xcd, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xf0, 0x86, 0x7f, 0xe7, 0xd7, 0x20, 0x2c, 0x6d, 0xaa, 0x0e, 0xa7, 0xd8, 0x1a, 0xbe, 0xa3, 0xdf, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x7c, 0x47, 0xbf, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x87, 0x18, 0xdb, 0xdb, 0xd8, 0xda, 0x5c, 0x9a, 0x5e, 0xb9, 0x12, 0x00, 0x7f, 0x84, 0x81, 0x88, 0xb1, 0xbd, 0x8d, 0xad, 0xcd, 0xa5, 0xe9, 0x95, 0x81, 0xa4, 0xcd, 0x81, 0xd0, 0xa1, 0x95, 0x81, 0xc0, 0xbd, 0xdd, 0x95, 0xc9, 0x81, 0xbc, 0x99, 0x81, 0xc8, 0x80, 0xcc, 0xa5, 0xe9, 0x95, 0x81, 0xbc, 0x99, 0x81, 0x84, 0xb9, 0x81, 0x84, 0xd1, 0xbd, 0xb5, 0xb9, 0x80, 0xa4, 0x95, 0xb1, 0x80, 0xcc, 0x80, 0xa4, 0xcd, 0x81, 0x84, 0x81, 0x88, 0xe5, 0xd1, 0x95, 0x81, 0x84, 0xcd, 0x81, 0xc8, 0x78, 0xcd, 0x80, 0xa4, 0xcd, 0x4b, 0x40, 0x8b, 0x03, 0x22, 0x96, 0x46, 0x37, 0xe7, 0xea, 0xf0, 0x43, 0xcd, 0x0a, 0xf8, 0x70, 0x61, 0x69, 0xf2, 0x86, 0x87, 0xf3, 0x17, 0xf0, 0xd1, 0xca, 0xc2, 0xc8, 0x01, 0x9f, 0x2e, 0x2c, 0x8d, 0x6d, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x1f, 0xb2, 0xba, 0x30, 0x36, 0x10, 0xba, 0x3a, 0x38, 0xb6, 0x72, 0x25, 0x00, 0xbd, 0xdb, 0xde, 0xd8, 0xc8, 0x40, 0xce, 0xca, 0xdc, 0xca, 0xe4, 0xc2, 0xe8, 0xde, 0xe4, 0x74, 0x40, 0xe0, 0xe4, 0xde, 0xc8, 0xea, 0xc6, 0xca, 0xe6, 0x40, 0xc2, 0x40, 0xe8, 0xea, 0xe0, 0xd8, 0xca, 0x40, 0xde, 0xcc, 0x40, 0xe8, 0xd0, 0xca, 0x40, 0xe8, 0xee, 0xde, 0x40, 0xe8, 0xf2, 0xe0, 0xca, 0xe6, 0x40, 0xe0, 0xc2, 0xe6, 0xe6, 0xca, 0xc8, 0x40, 0xd2, 0xdc, 0x5c, 0x2b, 0x01, 0x7c, 0x86, 0xe9, 0x80, 0x98, 0xa5, 0xc9, 0xcd, 0xd1, 0x81, 0xd0, 0xe5, 0xc1, 0x95, 0xb1, 0x80, 0xb0, 0x85, 0x89, 0x95, 0xb1, 0x95, 0x91, 0x81, 0xec, 0xc1, 0xf5, 0x4b, 0x00, 0xaf, 0x62, 0x3a, 0x20, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x20, 0x74, 0x79, 0x70, 0x65, 0x2c, 0x20, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x65, 0x64, 0x20, 0x7b, 0x71, 0x7d, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x0e, 0x6f, 0xf8, 0x77, 0x7e, 0x0d, 0x82, 0x65, 0xa9, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xf1, 0x86, 0x7f, 0xe7, 0x37, 0x08, 0xc0, 0xa5, 0x5a, 0x01, 0xff, 0x2c, 0x8c, 0xae, 0xdc, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x08, 0x52, 0xab, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x7e, 0xb3, 0x3a, 0xb7, 0x31, 0xba, 0xb4, 0x37, 0x77, 0x25, 0x00, 0xfe, 0x08, 0x03, 0x19, 0x7b, 0x93, 0x2b, 0x03, 0xb9, 0x4b, 0xa3, 0x43, 0x03, 0x79, 0x73, 0x2b, 0x03, 0x09, 0x93, 0x6b, 0x63, 0x01, 0x01, 0x23, 0x01, 0x6b, 0x69, 0xa1, 0x43, 0x2b, 0x03, 0x29, 0x6b, 0x83, 0xa3, 0xcb, 0x03, 0x71, 0x0b, 0x6b, 0x2b, 0x6b, 0x69, 0xb9, 0x43, 0x4b, 0x1b, 0x43, 0x03, 0xa1, 0x93, 0x0b, 0x73, 0x9b, 0x33, 0x7b, 0x93, 0x6b, 0x9b, 0x03, 0x09, 0x03, 0x99, 0x0b, 0x6b, 0x83, 0x63, 0x2b, 0x03, 0x71, 0x7b, 0xab, 0x73, 0x97, 0x00, 0x78, 0x22, 0xcd, 0x8d, 0xee, 0x0d, 0x24, 0x0c, 0x04, 0x4e, 0xee, 0x8d, 0xac, 0x6e, 0x8c, 0x0e, 0xc4, 0xed, 0xad, 0xce, 0xcd, 0x05, 0x24, 0xc9, 0x0c, 0xa4, 0x6e, 0xae, 0x8c, 0x0c, 0x84, 0x4c, 0x2e, 0x8f, 0x2d, 0x0f, 0x24, 0x6c, 0x0e, 0x24, 0x0c, 0x84, 0x2e, 0x0f, 0xae, 0x8c, 0x05, 0x84, 0x0e, 0xad, 0x0c, 0x64, 0xae, 0x4e, 0x4c, 0xad, 0x6c, 0x8c, 0x0e, 0xa4, 0xad, 0x6e, 0x8e, 0x0e, 0x04, 0x2d, 0xcc, 0xae, 0x0c, 0x24, 0x5c, 0x02, 0x68, 0x99, 0x0b, 0x6b, 0x83, 0x63, 0x2b, 0x03, 0xa1, 0xcb, 0x83, 0x2b, 0x03, 0x79, 0x33, 0x03, 0x01, 0x53, 0x01, 0x73, 0x35, 0xe0, 0x8b, 0x8d, 0xa1, 0xc1, 0x6b, 0xf8, 0xa2, 0xe6, 0x30, 0x9d, 0x07, 0x61, 0x3a, 0x76, 0x38, 0xc5, 0xd6, 0xf0, 0xd6, 0xfd, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0x3c, 0x87, 0xd1, 0xbd, 0xb5, 0x81, 0xcc, 0xa5, 0xe9, 0x95, 0x81, 0xbc, 0xc9, 0x81, 0xbc, 0x99, 0x99, 0xcd, 0x95, 0xd1, 0xb1, 0x80, 0xa4, 0xb9, 0x81, 0x88, 0xb1, 0xbd, 0xc5, 0xcd, 0x6d, 0xf8, 0xa8, 0x7d, 0xc0, 0x17, 0x1b, 0x1b, 0x13, 0x37, 0x7c, 0xfd, 0xb2, 0x86, 0x1f, 0x61, 0x06, 0xaf, 0x3b, 0xbc, 0x18, 0x73, 0x38, 0xc5, 0x16, 0xf0, 0xe9, 0xe4, 0xc2, 0xe0, 0x0d, 0x0f, 0xe7, 0x2f, 0xc0, 0x0b, 0x27, 0xf7, 0x46, 0x56, 0x37, 0x46, 0xb7, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x6f, 0x61, 0x20, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x61, 0x72, 0x6d, 0x20, 0x60, 0x24, 0x60, 0x1b, 0x04, 0xd0, 0xd9, 0x80, 0x2f, 0x26, 0x77, 0x47, 0x6f, 0x78, 0x50, 0x72, 0x0d, 0x6f, 0xeb, 0x1c, 0x4e, 0xb1, 0x0d, 0x6f, 0xeb, 0x1c, 0x84, 0x46, 0xda, 0x0a, 0xf8, 0x74, 0x72, 0x65, 0xe5, 0x86, 0x87, 0xf3, 0x17, 0xf0, 0xdd, 0xde, 0xc8, 0xca, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0x85, 0x4e, 0xae, 0xac, 0x0c, 0xa4, 0xed, 0x8d, 0x8d, 0x0c, 0xe4, 0xac, 0xcc, 0xad, 0x4c, 0x2e, 0x8c, 0xee, 0x4d, 0x5e, 0x09, 0xc0, 0xdf, 0x30, 0x10, 0xb0, 0x95, 0x15, 0x3a, 0xb9, 0xb2, 0x32, 0x30, 0x90, 0xb1, 0x30, 0x37, 0x10, 0xb1, 0x32, 0x90, 0xb2, 0x36, 0x38, 0xba, 0x3c, 0x16, 0x90, 0x37, 0x39, 0x90, 0xb1, 0x37, 0x37, 0xba, 0xb0, 0x34, 0x37, 0x90, 0x30, 0x10, 0xb7, 0x37, 0xb2, 0x32, 0x90, 0x37, 0x33, 0x90, 0x30, 0x10, 0xba, 0x3c, 0xb8, 0x32, 0x90, 0x30, 0x37, 0x72, 0x09, 0x80, 0x16, 0xd8, 0xca, 0xcc, 0xe8, 0x5e, 0xe4, 0xd2, 0xce, 0xd0, 0xe8, 0x40, 0xe6, 0xea, 0xc4, 0x40, 0xc0, 0x56, 0x56, 0xe8, 0xe4, 0xca, 0xca, 0xc0, 0x40, 0xde, 0xcc, 0x40, 0xe8, 0xd0, 0xca, 0x40, 0xe6, 0xc2, 0xda, 0xca, 0x40, 0xe8, 0xf2, 0xe0, 0xca, 0x5c, 0x40, 0xe0, 0xe4, 0xca, 0xe8, 0xe8, 0xf2, 0x5a, 0xe0, 0xe4, 0xd2, 0xdc, 0xe8, 0xca, 0xc8, 0x40, 0xee, 0xd2, 0xe8, 0xd0, 0x40, 0xc0, 0xf6, 0xfa, 0xc0, 0x5c, 0x6d, 0xf8, 0x60, 0x7e, 0x83, 0x10, 0x7c, 0xd8, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0xdc, 0xdd, 0xf0, 0xef, 0xfc, 0x06, 0x81, 0xde, 0xd6, 0x1a, 0xfe, 0x5c, 0x1a, 0x9c, 0xdd, 0x20, 0xf4, 0x4b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0xa1, 0xd5, 0xd6, 0x06, 0x81, 0x92, 0xd7, 0x1a, 0xfe, 0x5c, 0x1a, 0x5c, 0x3e, 0x08, 0xfc, 0xbc, 0x66, 0x01, 0xbf, 0xed, 0x8d, 0x8d, 0xdc, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x08, 0xca, 0xbd, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xfc, 0xdd, 0xde, 0xe4, 0xda, 0xc2, 0xd8, 0xd2, 0xf4, 0xd2, 0xdc, 0xce, 0x40, 0xce, 0xc2, 0xe8, 0xca, 0x95, 0x00, 0xf8, 0x21, 0x0c, 0xe4, 0x2c, 0x8c, 0xae, 0x0c, 0x84, 0x0e, 0x2d, 0x8c, 0x0e, 0x24, 0x6c, 0x6c, 0xac, 0x0c, 0x8e, 0x6e, 0x0e, 0x24, 0xcc, 0x2d, 0x0f, 0xc4, 0xed, 0xad, 0xce, 0x8d, 0x05, 0x24, 0xcc, 0x8d, 0x0c, 0xc4, 0x2e, 0x8c, 0x2d, 0x8d, 0x2c, 0x8c, 0xae, 0x6c, 0x0e, 0x24, 0x8d, 0x6e, 0x0e, 0x64, 0x0e, 0x2d, 0x0c, 0xae, 0x8c, 0x05, 0x04, 0x4e, 0xee, 0x8d, 0xac, 0x6e, 0x2c, 0xcd, 0xed, 0x0c, 0x84, 0x0e, 0xad, 0x5c, 0x02, 0xd0, 0x31, 0xcd, 0x0d, 0xae, 0x8e, 0x0e, 0x24, 0xcd, 0x0c, 0x24, 0x8d, 0x0e, 0xc4, 0x2c, 0x8d, 0x6e, 0x0e, 0xe4, 0x4d, 0x0e, 0x24, 0x0c, 0x84, 0xac, 0xcc, 0x2c, 0xac, 0x8e, 0x8d, 0x0e, 0xc4, 0x2e, 0x8c, 0xad, 0xae, 0x0c, 0x24, 0xcd, 0x0c, 0x24, 0x8d, 0x0e, 0x84, 0xec, 0xad, 0x6c, 0xce, 0xed, 0x84, 0xce, 0xb5, 0x12, 0x80, 0x1f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x3a, 0x20, 0x2a, 0x20, 0x40, 0x75, 0x64, 0x20, 0x2c, 0x5b, 0x70, 0x3d, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x71, 0x3d, 0x3f, 0x28, 0x25, 0x61, 0x20, 0x25, 0x62, 0x29, 0x5d, 0x0d, 0xf8, 0x62, 0x63, 0x73, 0xe7, 0x06, 0x61, 0x3a, 0x76, 0x10, 0x4a, 0x63, 0x87, 0x53, 0x6c, 0x01, 0x9f, 0xad, 0x6c, 0x8e, 0xde, 0xf0, 0x70, 0xfe, 0x06, 0xa1, 0x8a, 0xb0, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x00, 0xdf, 0x6e, 0x75, 0x6c, 0x6c, 0x2d, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x20, 0x6c, 0x69, 0x73, 0xf4, 0x4a, 0x00, 0xfe, 0xb7, 0xbd, 0xb1, 0x91, 0x81, 0x9c, 0x95, 0xb9, 0x95, 0xc9, 0x85, 0xd1, 0xbd, 0xc9, 0xe9, 0x80, 0xc0, 0xc9, 0xbd, 0x91, 0xd5, 0x8d, 0x95, 0xcd, 0x81, 0x84, 0x81, 0xb4, 0xbd, 0xb1, 0x91, 0x81, 0xbc, 0x99, 0x81, 0x84, 0x81, 0xb8, 0xd5, 0xb1, 0xb1, 0xb5, 0xd0, 0x95, 0xc9, 0xb5, 0xa5, 0xb9, 0x85, 0xd1, 0x95, 0x91, 0x81, 0xb0, 0xa5, 0xcd, 0xd1, 0x81, 0xbc, 0x99, 0x81, 0xd0, 0xa1, 0x95, 0x4b, 0x00, 0xda, 0xa1, 0xbd, 0xb5, 0xbd, 0x9d, 0x95, 0xb9, 0x95, 0xbd, 0xd5, 0xcd, 0x81, 0xd0, 0xe5, 0xc1, 0x95, 0x81, 0xec, 0x85, 0xf5, 0x81, 0xdc, 0xa5, 0xd1, 0xa1, 0x81, 0x84, 0xd1, 0x81, 0xb0, 0x95, 0x85, 0xcd, 0xd1, 0x81, 0xbc, 0xb9, 0x95, 0x81, 0x94, 0xb1, 0x95, 0xb5, 0x95, 0xb9, 0xd1, 0xb9, 0xda, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0x3d, 0x08, 0x6c, 0x88, 0x35, 0xfc, 0xb9, 0x34, 0x38, 0x7d, 0x10, 0xf6, 0x25, 0xcd, 0x1a, 0x04, 0xa3, 0xc9, 0x86, 0x87, 0xf3, 0x37, 0x08, 0x55, 0x84, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xf8, 0x71, 0xab, 0x63, 0x63, 0x6b, 0xa1, 0x2b, 0x93, 0x6b, 0x4b, 0x73, 0x0b, 0xa3, 0x2b, 0x23, 0x03, 0x61, 0x4b, 0x9b, 0xa3, 0xd7, 0x20, 0x4c, 0x19, 0x97, 0x00, 0x9a, 0xd0, 0xde, 0xda, 0xde, 0xce, 0xca, 0xdc, 0xca, 0xde, 0xea, 0xe6, 0x40, 0xe8, 0xf2, 0xe0, 0xca, 0x40, 0xf6, 0xc2, 0xfa, 0x5c, 0x6d, 0xf8, 0x60, 0x7e, 0x83, 0x10, 0x7c, 0x38, 0x08, 0xfc, 0xc9, 0xc3, 0x29, 0x36, 0x6b, 0x10, 0x5a, 0x6d, 0xcb, 0x00, 0xde, 0x74, 0x72, 0x65, 0x65, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x6b, 0xe8, 0x83, 0xbf, 0xe1, 0xf1, 0x91, 0x0d, 0x7d, 0xf0, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0xa0, 0x93, 0x2b, 0x2b, 0x03, 0x41, 0x2b, 0x0b, 0x23, 0x57, 0x02, 0xe0, 0x0f, 0xba, 0xb2, 0x39, 0xba, 0x39, 0x90, 0x3b, 0xb4, 0x32, 0x3a, 0xb4, 0x32, 0x39, 0x90, 0x30, 0x37, 0x10, 0xb0, 0x30, 0x30, 0x90, 0xb4, 0x39, 0x90, 0x34, 0x37, 0x10, 0x3a, 0xb4, 0x32, 0x10, 0xb4, 0xb2, 0x30, 0x32, 0x90, 0x37, 0x39, 0x10, 0xba, 0xb0, 0x34, 0x36, 0x90, 0x37, 0x33, 0x90, 0x30, 0x10, 0xb7, 0xb7, 0x3a, 0x37, 0x17, 0x10, 0x38, 0xb9, 0x37, 0xb2, 0xba, 0xb1, 0xb2, 0x39, 0x90, 0x12, 0x19, 0x90, 0x34, 0x33, 0x90, 0x34, 0x7a, 0x09, 0x40, 0xcb, 0xb4, 0x39, 0x90, 0xbb, 0x34, 0x3a, 0xb4, 0x34, 0x37, 0x10, 0x3a, 0xb4, 0x32, 0x10, 0xb4, 0xb2, 0x30, 0x32, 0x16, 0x90, 0x37, 0x39, 0x90, 0x92, 0x19, 0x90, 0x34, 0x33, 0x90, 0x34, 0x3a, 0x90, 0xb4, 0x39, 0x90, 0xbb, 0x34, 0x3a, 0xb4, 0x34, 0x37, 0x10, 0x3a, 0xb4, 0x32, 0x10, 0xba, 0xb0, 0x34, 0x36, 0x57, 0x1b, 0x7e, 0x51, 0xda, 0xf0, 0xe5, 0xd2, 0x86, 0xbf, 0x68, 0x16, 0xf0, 0xc5, 0xc6, 0xee, 0xe8, 0x35, 0x64, 0xc0, 0x37, 0xd4, 0xfc, 0xc8, 0x1a, 0x32, 0xe0, 0x1b, 0x6a, 0x7e, 0xb4, 0x01, 0xff, 0x8e, 0x0e, 0x0d, 0xde, 0xf0, 0xe0, 0xce, 0x1a, 0x04, 0xb1, 0xe9, 0x86, 0x37, 0xee, 0x0e, 0x82, 0xde, 0x74, 0x0d, 0x42, 0xe6, 0x74, 0xc3, 0x1b, 0x77, 0x07, 0x21, 0x76, 0xba, 0x1a, 0x04, 0x9b, 0xe9, 0x1a, 0x32, 0xe0, 0x87, 0xdf, 0x6f, 0xd6, 0x90, 0x01, 0x3f, 0xfc, 0x2c, 0xd3, 0x80, 0xaf, 0x07, 0xa7, 0x07, 0xb7, 0x06, 0x61, 0x3a, 0xb6, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0xe1, 0xc1, 0x9d, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x8b, 0x56, 0x6d, 0x78, 0x5a, 0x67, 0x0d, 0x3f, 0xc2, 0x1c, 0x04, 0xbd, 0x69, 0xb5, 0x1a, 0xbe, 0x92, 0xd8, 0xf0, 0xf8, 0xc8, 0x86, 0xaf, 0x24, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x0f, 0xc3, 0x4b, 0x9b, 0x03, 0xb9, 0x4b, 0xa3, 0x43, 0x4b, 0x73, 0x03, 0x09, 0xc3, 0x4b, 0x9b, 0x57, 0x02, 0xd0, 0x68, 0xec, 0xad, 0x0d, 0xae, 0x8e, 0xae, 0x6c, 0x0e, 0x84, 0x0e, 0xad, 0x0c, 0x24, 0x0c, 0x2f, 0x6d, 0x0e, 0xe4, 0xcd, 0x0c, 0x64, 0x4f, 0xac, 0x0f, 0xe4, 0x2e, 0x8d, 0x0e, 0x2d, 0xcd, 0x0d, 0x24, 0x0c, 0x2f, 0x6d, 0x0e, 0x64, 0x2f, 0xac, 0xcf, 0xd5, 0x86, 0x5f, 0x94, 0x36, 0xfc, 0xad, 0xb4, 0xe1, 0xdd, 0xbc, 0x0d, 0xdf, 0xe6, 0x6c, 0x78, 0x37, 0x6f, 0xc3, 0x6b, 0x7a, 0x1b, 0xfe, 0xa2, 0xd9, 0xf0, 0x43, 0xcd, 0x06, 0x41, 0x7a, 0xba, 0xe1, 0xf3, 0xa0, 0x35, 0x08, 0x1c, 0xd5, 0xc3, 0xd3, 0x3a, 0x6b, 0x10, 0xc4, 0xa6, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x12, 0x47, 0x1d, 0x84, 0x1d, 0xeb, 0x1a, 0x84, 0xcc, 0xe9, 0x86, 0x8f, 0xa3, 0x0e, 0x42, 0xa0, 0x76, 0x0d, 0xc2, 0x74, 0x6c, 0xc3, 0xbb, 0x3d, 0x1b, 0xfe, 0x04, 0x5a, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x43, 0xf3, 0x83, 0x36, 0xbc, 0x17, 0x74, 0x10, 0xac, 0xac, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xe0, 0xa9, 0x5d, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0xc3, 0xe7, 0x41, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0x14, 0x58, 0x0f, 0x82, 0xfc, 0xb6, 0x83, 0x60, 0x65, 0xad, 0xc3, 0x29, 0xb6, 0x86, 0xaf, 0x3d, 0x36, 0x3c, 0x3e, 0xb2, 0xe1, 0x6b, 0x8f, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0x78, 0x0a, 0xc3, 0x4b, 0x9b, 0x03, 0xb9, 0x4b, 0xa3, 0x43, 0x4b, 0x73, 0x03, 0x41, 0x2b, 0x0b, 0x23, 0x7b, 0xa1, 0x0b, 0x4b, 0x63, 0x57, 0x02, 0xe0, 0x81, 0xb1, 0xb7, 0x36, 0xb8, 0x3a, 0xba, 0xb2, 0x39, 0x10, 0x3a, 0xb4, 0x32, 0x90, 0x30, 0xbc, 0xb4, 0x39, 0x90, 0x37, 0x33, 0x10, 0xb0, 0x30, 0x30, 0x90, 0xbb, 0x34, 0x3a, 0xb4, 0x34, 0x37, 0x90, 0xb2, 0x34, 0x3a, 0xb4, 0x32, 0x39, 0x10, 0x3a, 0xb4, 0x32, 0x10, 0xb4, 0xb2, 0x30, 0x32, 0x90, 0x37, 0x39, 0x10, 0xba, 0xb0, 0x34, 0x36, 0x90, 0x37, 0x33, 0x90, 0x30, 0x10, 0xb7, 0xb7, 0x3a, 0x77, 0x09, 0x40, 0x5b, 0x14, 0xb2, 0x32, 0xb8, 0x32, 0x37, 0xb2, 0x39, 0x90, 0x3b, 0xb4, 0x32, 0x3a, 0xb4, 0x32, 0x39, 0x10, 0xb0, 0x30, 0x30, 0x10, 0xb6, 0xb4, 0xb2, 0x39, 0x90, 0xbb, 0x34, 0x3a, 0xb4, 0x34, 0x37, 0x10, 0x3a, 0xb4, 0x32, 0x10, 0x3a, 0xb4, 0x32, 0x10, 0xb4, 0xb2, 0x30, 0x32, 0x90, 0x37, 0x39, 0x10, 0xba, 0xb0, 0x34, 0xb6, 0x14, 0x57, 0x1b, 0x7e, 0x51, 0xda, 0xf0, 0xe5, 0xd2, 0x86, 0xbf, 0x68, 0x36, 0xfc, 0x50, 0xb3, 0x41, 0x90, 0x9e, 0x6e, 0x78, 0x70, 0x67, 0x0d, 0x02, 0xcd, 0xf4, 0xf0, 0x98, 0xcc, 0x06, 0xe1, 0x98, 0xba, 0x06, 0x61, 0x3a, 0xb6, 0xe1, 0xdd, 0x9e, 0x0d, 0x7f, 0x02, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0xc2, 0xee, 0xf6, 0x20, 0xec, 0x58, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xc1, 0x53, 0xbb, 0x41, 0xe8, 0xac, 0x1e, 0x04, 0x2b, 0x6b, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0xd6, 0x86, 0x3b, 0x6d, 0x06, 0x68, 0xd9, 0xc2, 0xf2, 0xca, 0xe4, 0x5a, 0x64, 0x1b, 0x66, 0x68, 0x43, 0x51, 0xde, 0x70, 0x22, 0x6c, 0x28, 0xca, 0x6b, 0x38, 0x47, 0x16, 0x04, 0x0b, 0xbf, 0xf0, 0x0b, 0x92, 0x81, 0xe3, 0xeb, 0x78, 0x7e, 0x7c, 0x3b, 0xbe, 0x2d, 0x2e, 0x08, 0x16, 0x87, 0x5d, 0xb8, 0x0d, 0x31, 0x3c, 0xa4, 0x6a, 0x36, 0xc4, 0x70, 0xd8, 0x85, 0xdb, 0x10, 0xc3, 0x43, 0xc7, 0xb0, 0x0d, 0x0b, 0xa2, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x10, 0x1f, 0x3a, 0x86, 0x1d, 0x8f, 0x8f, 0x6f, 0x2b, 0x08, 0x16, 0x87, 0xdd, 0x20, 0xf8, 0x98, 0x37, 0xc4, 0x70, 0xd8, 0x85, 0x5d, 0xb8, 0x0d, 0x31, 0x3c, 0xf4, 0x10, 0xda, 0x10, 0xc3, 0x61, 0x17, 0x04, 0x0b, 0x92, 0xc1, 0xb5, 0xc3, 0x0a, 0xed, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xfc, 0x27, 0x08, 0xfa, 0x71, 0xe8, 0x90, 0xce, 0x5d, 0xd8, 0x85, 0xdd, 0x20, 0x48, 0x9a, 0x37, 0xc4, 0x70, 0xd8, 0x05, 0xc1, 0x06, 0x61, 0x03, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x10, 0xff, 0x43, 0xd3, 0xa1, 0xe3, 0xd0, 0x21, 0x9d, 0xbb, 0x21, 0x55, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xf1, 0x20, 0x5a, 0xd8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x88, 0x07, 0xd1, 0xc2, 0x4f, 0x10, 0xee, 0x43, 0xaa, 0xe6, 0x78, 0x7c, 0xe8, 0x18, 0x76, 0x3c, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0x82, 0x78, 0x10, 0x2d, 0xfc, 0x20, 0x19, 0x32, 0x88, 0x16, 0xc4, 0x83, 0x68, 0x61, 0x27, 0x88, 0xf5, 0x21, 0x55, 0x73, 0x3c, 0x3e, 0xf4, 0x10, 0x3a, 0x1e, 0x1f, 0xdf, 0x16, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x87, 0x5d, 0xb8, 0x0d, 0x31, 0x9c, 0x50, 0xbf, 0x86, 0x54, 0xcd, 0x21, 0x31, 0x35, 0x48, 0x06, 0xa3, 0x41, 0xb4, 0x60, 0x3a, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xf5, 0x13, 0x84, 0xfe, 0x78, 0x7c, 0x58, 0xa1, 0x3d, 0xbe, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0x62, 0x38, 0x08, 0x16, 0x07, 0xc1, 0x86, 0x18, 0x0e, 0xbb, 0x41, 0x70, 0x61, 0x6f, 0x48, 0xd5, 0x0c, 0x92, 0x21, 0x83, 0x68, 0xc1, 0x7c, 0x82, 0xd8, 0x0f, 0xa2, 0x85, 0xdd, 0x90, 0xec, 0x18, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf9, 0x41, 0xc8, 0x67, 0x1f, 0xcf, 0x8f, 0xe7, 0xc7, 0xb7, 0x61, 0x37, 0x74, 0x1c, 0x59, 0xd8, 0x85, 0xdb, 0x10, 0xc3, 0x43, 0x23, 0xc1, 0x25, 0x6c, 0x07, 0xc1, 0x82, 0x64, 0x20, 0x7c, 0x83, 0x68, 0x61, 0x0f, 0x8d, 0x04, 0x8f, 0xc7, 0x83, 0x64, 0x30, 0x1a, 0x44, 0x0b, 0xa6, 0x13, 0x37, 0x88, 0x16, 0x84, 0x13, 0x73, 0x3c, 0x3f, 0x9c, 0x62, 0x0b, 0x82, 0xc5, 0x61, 0x37, 0x08, 0x3e, 0xe6, 0x0d, 0x31, 0x1c, 0x76, 0x83, 0x60, 0x7b, 0xde, 0xd0, 0x31, 0x6c, 0xd8, 0x0d, 0x82, 0xa4, 0x79, 0x43, 0x0f, 0xa1, 0x61, 0x17, 0x04, 0x1b, 0x84, 0x0d, 0xf4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x20, 0x89, 0x3e, 0x34, 0x1d, 0x3a, 0x0e, 0x2d, 0x88, 0x16, 0x7e, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xaa, 0x0f, 0x82, 0xdc, 0xfa, 0x78, 0x7c, 0xe8, 0x21, 0x34, 0x88, 0x16, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xba, 0x0f, 0xc2, 0x9e, 0xfa, 0x78, 0x7c, 0xe8, 0x18, 0x76, 0x7c, 0x5b, 0x10, 0x2c, 0x0e, 0xbb, 0x41, 0xf0, 0x31, 0x6f, 0x88, 0xe1, 0x30, 0x83, 0x60, 0x41, 0x32, 0x50, 0x56, 0x0e, 0xd9, 0x8a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf8, 0xd0, 0x43, 0xe8, 0x78, 0x3c, 0xfc, 0xc6, 0xf3, 0x83, 0x10, 0x6e, 0x3e, 0x0e, 0x1d, 0xdf, 0x16, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x87, 0xdd, 0x20, 0xf8, 0x98, 0x37, 0x08, 0x4c, 0xec, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xa8, 0x1f, 0x04, 0x0b, 0x92, 0x41, 0xd5, 0x61, 0x85, 0xf6, 0xb0, 0x51, 0x3b, 0x88, 0x16, 0xc4, 0x87, 0x7c, 0xed, 0xf1, 0xf8, 0xf8, 0x76, 0x3c, 0x5e, 0x10, 0x2c, 0x0e, 0xbb, 0x41, 0xf0, 0x31, 0x6f, 0x38, 0xc5, 0x86, 0xdd, 0x20, 0x48, 0x9a, 0xd7, 0x90, 0xb5, 0x3b, 0xf4, 0x10, 0x1a, 0x04, 0x1b, 0x84, 0x70, 0xf3, 0x06, 0x21, 0x05, 0x3e, 0xec, 0xc2, 0x2e, 0xdc, 0x86, 0x18, 0x1e, 0x84, 0x00, 0xf8, 0x86, 0x18, 0x0e, 0xbb, 0x20, 0x58, 0x90, 0x0c, 0xae, 0x1d, 0xb2, 0x15, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xc9, 0x8e, 0x43, 0x23, 0xc1, 0xe3, 0xd0, 0x21, 0x9d, 0xbb, 0x20, 0x5a, 0xf8, 0x83, 0x10, 0x00, 0x3f, 0xec, 0x15, 0x0e, 0xa2, 0xc5, 0x25, 0x44, 0x0b, 0xa2, 0x85, 0x9f, 0x30, 0x3b, 0xec, 0x15, 0x4e, 0xd8, 0x1d, 0xf6, 0x0a, 0x8f, 0x6f, 0x0b, 0x82, 0xc5, 0x61, 0x37, 0x08, 0x3e, 0xe6, 0x0d, 0x31, 0x1c, 0x76, 0x61, 0x37, 0x08, 0xb6, 0xe7, 0x0d, 0x31, 0x1c, 0x76, 0x83, 0xc0, 0x80, 0x5e, 0xd8, 0x0d, 0x02, 0xff, 0xfc, 0x90, 0xce, 0x3d, 0x1c, 0xed, 0x0b, 0xbb, 0xb0, 0x1b, 0x04, 0x49, 0xf3, 0x86, 0x18, 0x0e, 0xbb, 0x41, 0x10, 0x49, 0x2f, 0xec, 0x06, 0x21, 0xdc, 0x7c, 0x48, 0xe7, 0x1e, 0x8e, 0xf6, 0x43, 0x3a, 0xf7, 0x70, 0xb4, 0x1f, 0xdf, 0x06, 0xc1, 0xe2, 0x86, 0x15, 0xda, 0x39, 0x9c, 0x62, 0x8b, 0x83, 0x60, 0x71, 0xd8, 0x0d, 0x82, 0x0b, 0x7b, 0x83, 0xc0, 0xc4, 0x5e, 0x10, 0x6c, 0x48, 0xd5, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x27, 0x08, 0xfe, 0x71, 0x68, 0x83, 0x50, 0xcc, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xfa, 0x83, 0xe0, 0xe1, 0x3e, 0x1e, 0x1f, 0xdf, 0x8e, 0xc7, 0xc7, 0xe3, 0x55, 0xf8, 0x05, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0x58, 0xd8, 0x85, 0x5d, 0xe8, 0x21, 0x9a, 0x87, 0xf5, 0xcd, 0x0d, 0x2d, 0x24, 0x0f, 0xd1, 0x1c, 0x7e, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x6e, 0xe8, 0x9a, 0xb9, 0x82, 0x60, 0x41, 0x32, 0x50, 0x9c, 0x26, 0xf4, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xc4, 0x7f, 0xe1, 0x37, 0x9e, 0x6f, 0xc8, 0xd7, 0x1e, 0x52, 0x07, 0x13, 0x44, 0xff, 0x38, 0xb4, 0x21, 0x6b, 0x37, 0x08, 0x16, 0x24, 0x83, 0x92, 0x09, 0xff, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xd6, 0x7e, 0x0f, 0xa9, 0x9a, 0xe3, 0xd0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x1e, 0xa2, 0x79, 0x3c, 0x1e, 0x7e, 0x41, 0xb4, 0x60, 0x7e, 0x10, 0x02, 0xe0, 0xc7, 0xe3, 0xe1, 0xd7, 0x20, 0xa4, 0xc0, 0x8f, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x1b, 0xda, 0x6c, 0x1c, 0xcf, 0x87, 0x5f, 0x10, 0x2d, 0xa8, 0x3f, 0x08, 0x01, 0xf0, 0xe3, 0xf1, 0xf0, 0x1b, 0x0c, 0x76, 0x80, 0x35, 0xa4, 0x0e, 0x8e, 0x43, 0x07, 0x81, 0x89, 0x7d, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0x9e, 0x59, 0x9d, 0xbb, 0x61, 0x85, 0xb6, 0xe3, 0xf1, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0x78, 0x68, 0x65, 0xf7, 0x21, 0xb5, 0x74, 0x3c, 0x5e, 0xe1, 0x17, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0xc3, 0x6e, 0xd8, 0x35, 0xd8, 0x10, 0xc3, 0x41, 0xb0, 0x20, 0x19, 0x08, 0xd3, 0x21, 0xb9, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xb5, 0xdb, 0xd0, 0x43, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x90, 0x1e, 0x04, 0xa5, 0xf7, 0xf1, 0xf8, 0x38, 0x74, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0x9e, 0x5c, 0x18, 0x7c, 0x48, 0x2d, 0x1d, 0x8f, 0x17, 0x7e, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0xec, 0x86, 0x5d, 0x83, 0x0d, 0x31, 0x5c, 0x10, 0x2c, 0x48, 0x06, 0xfa, 0x3a, 0x1d, 0x92, 0x4b, 0x87, 0x44, 0xeb, 0x20, 0x19, 0x32, 0x88, 0x16, 0xa4, 0x83, 0x60, 0x41, 0x32, 0xf0, 0xbe, 0xd3, 0x21, 0xb9, 0x74, 0x48, 0xb4, 0x1e, 0x8f, 0x8f, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xc0, 0x93, 0x4b, 0x83, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0xc2, 0x2f, 0x08, 0x16, 0xe7, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x21, 0x86, 0xc3, 0x2f, 0x88, 0x16, 0x74, 0x0f, 0x82, 0x05, 0xc9, 0x40, 0x5f, 0xa7, 0xc3, 0x0a, 0xed, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xfc, 0x0f, 0x0d, 0xbf, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0xb0, 0xa1, 0x63, 0xd8, 0x20, 0x58, 0x1c, 0x76, 0xe1, 0x36, 0xa4, 0x6a, 0x0e, 0x42, 0x3e, 0x7b, 0x41, 0xb0, 0x20, 0x19, 0x78, 0xdf, 0xe9, 0x20, 0xc8, 0xf9, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x04, 0x29, 0xfe, 0x21, 0x55, 0x73, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0x82, 0x78, 0x98, 0x43, 0xaa, 0x66, 0x10, 0x2d, 0xec, 0x20, 0xd8, 0x20, 0x70, 0xfd, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x4b, 0x30, 0xfb, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0xba, 0x74, 0x10, 0xe4, 0xfc, 0x07, 0x43, 0x39, 0xe1, 0x38, 0x74, 0x3c, 0x3e, 0xbe, 0x1d, 0x8f, 0x07, 0xd9, 0x1a, 0xd2, 0x40, 0xe3, 0x80, 0x67, 0x96, 0xc6, 0x1e, 0x52, 0x4b, 0xc7, 0xe3, 0xe1, 0x17, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x61, 0x37, 0x08, 0x7a, 0xfd, 0x0d, 0xdd, 0x1b, 0x0f, 0xd1, 0x1c, 0x04, 0x0b, 0x92, 0x41, 0x70, 0xc8, 0x56, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xac, 0xfd, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0x92, 0x4e, 0x87, 0x15, 0xda, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x63, 0x9f, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xa3, 0xb3, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x1b, 0x8c, 0x30, 0x80, 0xe3, 0xd0, 0x61, 0x5c, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0x78, 0x6c, 0x73, 0xe8, 0x21, 0xb5, 0x74, 0x3c, 0x5e, 0xf8, 0x05, 0xc1, 0xe2, 0x41, 0x00, 0xdc, 0x2f, 0x0e, 0x82, 0x05, 0xc9, 0xa0, 0xe4, 0xb0, 0x42, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x50, 0x97, 0x0e, 0xc9, 0xa5, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0xdf, 0x10, 0xcd, 0x41, 0xb0, 0x20, 0x19, 0x68, 0xeb, 0x74, 0x48, 0x2e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x0f, 0x02, 0xa7, 0xfd, 0x38, 0x74, 0xe8, 0x18, 0x76, 0x1c, 0x3a, 0xf4, 0x10, 0x3a, 0x0e, 0x1d, 0x8f, 0x07, 0xd9, 0x1a, 0xd2, 0x40, 0xe3, 0x80, 0x37, 0x16, 0x46, 0x1f, 0x52, 0x4b, 0xc7, 0xe3, 0x15, 0x7e, 0x41, 0xb0, 0x38, 0x1b, 0x8e, 0xf6, 0x16, 0x07, 0xc1, 0x06, 0xa3, 0xc4, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x37, 0x44, 0x73, 0x42, 0xeb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x03, 0xd7, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x37, 0x44, 0x73, 0x42, 0xe9, 0xa1, 0x63, 0xd8, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0xde, 0x58, 0x1d, 0x7d, 0x48, 0x2d, 0x1d, 0x8f, 0x57, 0xf8, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xbb, 0x61, 0x7d, 0x6f, 0xc3, 0xd1, 0x3e, 0x08, 0x16, 0x24, 0x83, 0xe0, 0xb0, 0x42, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xd0, 0x78, 0x7e, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x41, 0xb0, 0x61, 0x3d, 0xf6, 0xd0, 0xa8, 0xe5, 0x78, 0x7c, 0x1c, 0x3a, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0x4f, 0xac, 0x0c, 0x3f, 0xa4, 0x96, 0x8e, 0xc7, 0x0b, 0xbf, 0x20, 0xd8, 0x60, 0xe4, 0x3f, 0x2c, 0x0e, 0xbf, 0x20, 0x5a, 0xb0, 0x1d, 0x04, 0x1b, 0x8c, 0x12, 0x83, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0xdf, 0x10, 0xcd, 0x43, 0x23, 0xc1, 0x43, 0xc7, 0xb0, 0xe3, 0xd0, 0xf1, 0x78, 0x10, 0x6c, 0x30, 0x80, 0x21, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x43, 0x34, 0x07, 0xc1, 0x82, 0x64, 0xf0, 0xe7, 0xb0, 0x42, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xd0, 0x43, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x71, 0x16, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xb5, 0x3b, 0x74, 0x0c, 0x3b, 0x0e, 0x1d, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0x69, 0xa7, 0x43, 0x72, 0xe9, 0x60, 0xd4, 0x67, 0x1c, 0x87, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xc0, 0x93, 0x2b, 0xb3, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0xc2, 0x2f, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0x86, 0x18, 0x0e, 0x82, 0xc5, 0x61, 0x17, 0x6e, 0x43, 0x0c, 0x0f, 0x6b, 0xbf, 0x1b, 0x52, 0x07, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd0, 0x3e, 0x08, 0x16, 0x24, 0x03, 0xef, 0x3b, 0x1d, 0xb2, 0x15, 0x87, 0xf5, 0x89, 0xc3, 0x8e, 0xc9, 0xf1, 0xed, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x07, 0xbc, 0xb6, 0x32, 0xfa, 0x90, 0x5a, 0x3a, 0x1e, 0x0f, 0xbf, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x04, 0x1b, 0x0c, 0x4c, 0x86, 0x41, 0xb0, 0x20, 0x19, 0x88, 0xce, 0x21, 0x5b, 0x71, 0x30, 0x56, 0x1a, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xc0, 0x2b, 0x73, 0x23, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0xc2, 0x2f, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0x82, 0x64, 0xe0, 0x7e, 0x3a, 0x24, 0x97, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xb2, 0x76, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x01, 0xed, 0xaf, 0xf7, 0x1d, 0x92, 0x4b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0xc0, 0x28, 0x1d, 0x92, 0x4b, 0x87, 0x44, 0xeb, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0xde, 0xdc, 0x1d, 0x7c, 0x48, 0x2d, 0x1d, 0x8f, 0x57, 0xf8, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x0d, 0xc6, 0x59, 0xc4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x1f, 0x62, 0x78, 0x48, 0xd5, 0x1c, 0x87, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xc0, 0xc3, 0x2b, 0x13, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0xf0, 0x0b, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x61, 0x37, 0x08, 0x7a, 0xfd, 0x0d, 0x31, 0x1c, 0x04, 0x1b, 0xa2, 0x39, 0xec, 0xc2, 0x6d, 0x10, 0x52, 0xe0, 0x87, 0x7c, 0xed, 0x06, 0x21, 0x00, 0x3e, 0xec, 0x82, 0x60, 0x41, 0x32, 0xf8, 0x72, 0xc8, 0x56, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x44, 0xf3, 0xb0, 0xf6, 0x7b, 0x1c, 0x5a, 0x10, 0x2c, 0x48, 0x06, 0xea, 0xd2, 0x61, 0x85, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x37, 0xc4, 0x70, 0x10, 0x6c, 0xd8, 0x0c, 0x39, 0x18, 0x1b, 0x24, 0x87, 0x71, 0x39, 0x0e, 0x0d, 0x82, 0x35, 0xc4, 0x70, 0x10, 0x6c, 0xd8, 0x0c, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x58, 0xfb, 0x3d, 0x44, 0xf3, 0x38, 0x34, 0x08, 0x16, 0x04, 0x1b, 0x0c, 0x4a, 0x8e, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xd4, 0xc1, 0x21, 0x5f, 0x7b, 0x1c, 0x1a, 0x76, 0xe1, 0x36, 0xc4, 0x70, 0x10, 0x2c, 0x48, 0x06, 0xfa, 0x3a, 0x1d, 0x04, 0x39, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xaa, 0xe6, 0xb0, 0xf6, 0x7b, 0x1c, 0xda, 0x38, 0x34, 0xcc, 0x71, 0xe8, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x07, 0x3c, 0xb9, 0xb4, 0xf3, 0x90, 0x5a, 0x3a, 0x1e, 0x2f, 0xfc, 0x82, 0x60, 0x71, 0x16, 0x0f, 0x31, 0x6c, 0x71, 0x10, 0x6c, 0x30, 0x64, 0x20, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0x84, 0xbf, 0xd3, 0x21, 0xb9, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xb5, 0x5b, 0xf8, 0x8d, 0xe7, 0x1b, 0x0c, 0x2f, 0x8a, 0x83, 0xa0, 0xf4, 0x5e, 0xf8, 0x8d, 0xe7, 0x1b, 0x7a, 0xec, 0x4c, 0xf8, 0x7a, 0x30, 0xf0, 0x43, 0x8e, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x6b, 0x88, 0xe6, 0x20, 0xd8, 0x60, 0xc8, 0x40, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x97, 0x70, 0x7a, 0x82, 0x50, 0x1f, 0x87, 0x06, 0xc1, 0x06, 0xa3, 0x92, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x75, 0x30, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x78, 0xdf, 0xe9, 0xb0, 0x42, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0x3a, 0x38, 0x34, 0xfc, 0x3a, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0x38, 0xe0, 0xcd, 0x95, 0xdd, 0x87, 0xd4, 0xd2, 0xf1, 0x78, 0xe1, 0x17, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x83, 0x81, 0xc9, 0x30, 0x08, 0x16, 0x24, 0x03, 0xe7, 0xca, 0x21, 0x5b, 0x71, 0x30, 0x56, 0x1a, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xc0, 0x93, 0x9b, 0x43, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0xc2, 0x2f, 0x08, 0x16, 0x67, 0x0e, 0xc2, 0xd9, 0x7e, 0x71, 0x10, 0x2c, 0x48, 0x06, 0x24, 0xbf, 0xf7, 0x1d, 0x92, 0x4b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x18, 0x72, 0x20, 0x07, 0x63, 0x34, 0xe2, 0xd0, 0x31, 0xec, 0x38, 0x74, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0x9e, 0x5c, 0x1d, 0x7d, 0x48, 0x2d, 0x1d, 0x8f, 0x87, 0x5f, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0xbb, 0x61, 0xd7, 0x60, 0x43, 0x0c, 0x07, 0xc1, 0x06, 0x43, 0x06, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xa3, 0xc4, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x78, 0xa1, 0x98, 0xf0, 0xfa, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x00, 0x86, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x5e, 0x28, 0x0e, 0x86, 0x25, 0xc1, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0xde, 0x58, 0x98, 0x7b, 0x48, 0x2d, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0xb8, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x04, 0x0b, 0x92, 0x41, 0xd9, 0x21, 0xb9, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x4a, 0x0e, 0x82, 0x9c, 0xff, 0x90, 0x68, 0x3d, 0x0e, 0x1d, 0x8f, 0x17, 0x04, 0x0b, 0x92, 0x81, 0xa4, 0xd3, 0x21, 0xb9, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0x8c, 0xd3, 0x1c, 0x1a, 0xb5, 0x1c, 0x87, 0x56, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x90, 0x0c, 0xf4, 0x75, 0x3a, 0x64, 0x2b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x04, 0x26, 0xf6, 0x21, 0x55, 0x73, 0x1c, 0x3a, 0x1e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0x92, 0xc1, 0x9f, 0x83, 0x20, 0xe7, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x48, 0xaf, 0x1c, 0x04, 0x39, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0x10, 0x1d, 0x92, 0x4b, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xc6, 0xf6, 0xcc, 0xa1, 0x51, 0xcb, 0x71, 0xe8, 0x78, 0xbc, 0x20, 0xd8, 0x60, 0xe4, 0x3f, 0x2c, 0x0e, 0x82, 0x05, 0xc1, 0x06, 0x63, 0x7b, 0xe6, 0xd0, 0x02, 0x6c, 0x10, 0x2c, 0x08, 0x16, 0x24, 0x03, 0x49, 0xa7, 0x83, 0x20, 0xe7, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0x7f, 0x0e, 0x02, 0xde, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x84, 0xfb, 0x87, 0xf8, 0x1f, 0x87, 0x8e, 0x43, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x88, 0xce, 0x04, 0xf1, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x10, 0xf2, 0xd9, 0x87, 0xd4, 0xc1, 0x71, 0x68, 0x10, 0x2c, 0x48, 0x06, 0x65, 0x07, 0x41, 0xce, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x14, 0xbd, 0x83, 0xf1, 0xae, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0xf0, 0xbe, 0xd3, 0xc1, 0x78, 0xd7, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x0d, 0xc9, 0x8e, 0xe3, 0xd0, 0x61, 0xaf, 0xf0, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0xa8, 0x4b, 0x07, 0xe3, 0x5d, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x37, 0x24, 0x3b, 0x06, 0xc1, 0x82, 0x64, 0xf0, 0x67, 0x82, 0xf9, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0xd5, 0x1c, 0x52, 0x07, 0xc7, 0xa1, 0xc3, 0x5e, 0xe1, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x3a, 0x1e, 0xaf, 0x20, 0xd8, 0x60, 0xe4, 0x3f, 0x2c, 0x0e, 0x82, 0x0d, 0x86, 0x42, 0xce, 0x20, 0xd8, 0x60, 0x74, 0xe5, 0x0c, 0x82, 0x0d, 0x06, 0xb0, 0xce, 0x20, 0xd8, 0x60, 0x14, 0xee, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x18, 0x16, 0x3c, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x18, 0xb7, 0x3d, 0x07, 0x83, 0x9e, 0x67, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x01, 0xcb, 0x73, 0x30, 0xec, 0x7b, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x04, 0x1b, 0x8c, 0xed, 0x99, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x63, 0xdd, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xc3, 0x8c, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x70, 0xbf, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0x6c, 0xcf, 0x1c, 0xd2, 0x70, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xc6, 0xf6, 0xcc, 0xa1, 0x83, 0xc6, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x1e, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xfc, 0x82, 0x68, 0x61, 0x0f, 0xc6, 0x18, 0xce, 0xf1, 0x78, 0xd8, 0x05, 0xc1, 0x82, 0x64, 0x20, 0x28, 0x07, 0x41, 0xce, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0x30, 0xb1, 0x87, 0xdf, 0x78, 0x7e, 0xe8, 0x4f, 0x7e, 0x1c, 0xda, 0x90, 0x3a, 0x18, 0x04, 0x0b, 0x82, 0x0d, 0xc6, 0xdf, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0x20, 0x30, 0xb1, 0x8f, 0x43, 0x83, 0x60, 0x41, 0x32, 0x50, 0xf4, 0x0e, 0x82, 0x9c, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x63, 0x68, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x75, 0x30, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x98, 0x1f, 0x87, 0x06, 0xd1, 0xc2, 0x0e, 0x82, 0x0d, 0x02, 0x94, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x75, 0xb0, 0xf0, 0x1b, 0xcf, 0xc7, 0xe3, 0xf1, 0x61, 0xaf, 0xf0, 0x38, 0x74, 0x3c, 0x3f, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x19, 0x44, 0x1b, 0x8c, 0xe2, 0xa3, 0x41, 0xb4, 0xb0, 0x83, 0x60, 0x83, 0x00, 0xe5, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0x1d, 0x2c, 0xfc, 0xc6, 0xf3, 0xc3, 0xb9, 0x7e, 0xd8, 0x2b, 0x3c, 0x0e, 0x1d, 0xcf, 0x8f, 0x43, 0xc7, 0xe3, 0xe3, 0xf1, 0xc2, 0x2f, 0x08, 0x36, 0x18, 0xd4, 0x2e, 0x8b, 0x83, 0x60, 0x83, 0x91, 0xf2, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xb5, 0x1b, 0x7e, 0xe3, 0xf9, 0xc1, 0x30, 0x78, 0x39, 0x0e, 0x1d, 0x8f, 0x07, 0xd9, 0x1a, 0xd2, 0x40, 0xe3, 0x80, 0x27, 0x57, 0xe7, 0x1e, 0x52, 0x4b, 0xc7, 0xe3, 0xe1, 0x17, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x83, 0x81, 0xc9, 0x30, 0x08, 0x36, 0xc4, 0x70, 0x10, 0x2c, 0x0e, 0xbb, 0x70, 0x1b, 0x62, 0x78, 0x48, 0xcc, 0x6c, 0x88, 0xe1, 0x20, 0xd8, 0x20, 0x70, 0xfd, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xde, 0x1f, 0x04, 0x0f, 0xf7, 0x61, 0xc7, 0x64, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x31, 0xb4, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x1b, 0xb2, 0x76, 0x83, 0x60, 0x41, 0x32, 0x08, 0x0e, 0x02, 0xde, 0xff, 0x20, 0x28, 0xfe, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x18, 0x25, 0x27, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x7e, 0xc8, 0xcb, 0x4e, 0x30, 0xfa, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0xf8, 0x76, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0x9e, 0x5c, 0x19, 0x7c, 0x48, 0x2d, 0x1d, 0x8f, 0x17, 0x7e, 0x41, 0x32, 0x10, 0xaf, 0xe3, 0xf1, 0x20, 0x19, 0x44, 0xc7, 0xe3, 0x85, 0xdf, 0x60, 0x20, 0x41, 0x0d, 0x92, 0x41, 0xdf, 0xf1, 0x78, 0xe1, 0x37, 0x18, 0x48, 0x50, 0x83, 0x64, 0x50, 0x77, 0x3c, 0x5e, 0x5c, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0xbb, 0x61, 0xd7, 0x60, 0x41, 0xb6, 0x86, 0x3c, 0xf6, 0xe2, 0x86, 0xdc, 0xf7, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xe2, 0x38, 0xf8, 0x3c, 0xb8, 0x3b, 0x78, 0x38, 0xf8, 0x39, 0x68, 0x1b, 0xdc, 0x1c, 0x3c, 0x1c, 0x3c, 0x1d, 0x9c, 0xed, 0xf8, 0x76, 0x3c, 0x3e, 0x9c, 0x62, 0xc3, 0x6e, 0xc8, 0x63, 0x6d, 0x68, 0x24, 0x38, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0x10, 0x6c, 0xc8, 0x44, 0x1c, 0xd2, 0x70, 0x07, 0x41, 0xe9, 0x7d, 0x3c, 0x3e, 0x1e, 0x2f, 0x08, 0x36, 0xc4, 0x70, 0x71, 0xf8, 0x05, 0xd1, 0xc2, 0x1e, 0x52, 0x07, 0xc7, 0xe3, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0xac, 0xf5, 0x1d, 0x56, 0x68, 0x07, 0xc9, 0x40, 0xec, 0x06, 0xd1, 0xc2, 0x1e, 0x0c, 0xfc, 0x90, 0xe3, 0xd0, 0xa1, 0x51, 0xcb, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0xfc, 0x82, 0x68, 0x61, 0x0f, 0x89, 0xcd, 0xe3, 0xf1, 0x20, 0x58, 0x0c, 0x55, 0x83, 0x60, 0x71, 0xd8, 0x0d, 0x89, 0x80, 0x0d, 0x6b, 0xbf, 0x4b, 0x38, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xe5, 0x13, 0x9e, 0x1f, 0x8f, 0x8f, 0x6f, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x1e, 0x52, 0x07, 0xc7, 0xe3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x6f, 0x30, 0x04, 0xa8, 0x06, 0xc1, 0x82, 0x60, 0x41, 0x32, 0xb0, 0xd7, 0x77, 0x58, 0xa1, 0x1d, 0x24, 0x03, 0xa3, 0x77, 0x30, 0x74, 0xa9, 0x0e, 0x8d, 0x5a, 0x8e, 0xc7, 0xc7, 0xe3, 0x15, 0x7e, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0xec, 0x86, 0x74, 0xe6, 0x86, 0x18, 0x0e, 0xbb, 0x41, 0xd0, 0xeb, 0x2f, 0xec, 0xc2, 0x2e, 0xf4, 0x30, 0x2e, 0x87, 0xf5, 0xcd, 0x05, 0xc1, 0xe2, 0x20, 0x58, 0x41, 0xb0, 0xc1, 0xd0, 0x41, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x14, 0x8b, 0x0e, 0xf1, 0x3f, 0x0e, 0x0d, 0x82, 0x0d, 0x86, 0x0e, 0xc2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa1, 0x58, 0x74, 0x58, 0xfb, 0x3d, 0x0e, 0x0d, 0xbb, 0x70, 0x1b, 0x84, 0x14, 0xf8, 0x41, 0x08, 0x80, 0x2f, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xf1, 0x82, 0x60, 0x83, 0x41, 0xc9, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x28, 0x16, 0x1d, 0x92, 0x1d, 0xc7, 0xa1, 0x41, 0xb0, 0xc1, 0xa0, 0xe4, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x14, 0x8b, 0x0e, 0x89, 0x99, 0xe3, 0xd0, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0xf2, 0x2b, 0x07, 0x41, 0xce, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x0d, 0x06, 0x5c, 0xd5, 0x71, 0xe8, 0xf8, 0x76, 0x88, 0xe1, 0xb0, 0x1b, 0x8c, 0x58, 0xac, 0x0d, 0x47, 0xfb, 0xb0, 0x0b, 0xb7, 0x84, 0xe1, 0xa1, 0x91, 0xe0, 0x82, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x25, 0x2c, 0x0f, 0x82, 0xd2, 0xfb, 0x78, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x3d, 0x18, 0x3d, 0x5d, 0xc7, 0xe3, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0x1c, 0xf0, 0xc2, 0xde, 0xe4, 0x43, 0x6a, 0xe9, 0x78, 0xbc, 0xf0, 0x0b, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb0, 0x82, 0x60, 0x41, 0x32, 0xd0, 0xb9, 0xef, 0x90, 0x5c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x30, 0x20, 0xbe, 0x0e, 0x69, 0xb8, 0xe3, 0xd0, 0x20, 0xd8, 0x60, 0x40, 0x7c, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x18, 0x10, 0x5f, 0x87, 0x0e, 0x1a, 0xc7, 0xa1, 0x61, 0x37, 0x18, 0x5f, 0x5a, 0x0b, 0x82, 0x05, 0xc9, 0x40, 0xdc, 0x0e, 0x2b, 0xb4, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xf1, 0x3f, 0xac, 0xfd, 0x1e, 0x87, 0x06, 0xc1, 0x86, 0x25, 0x88, 0x83, 0x51, 0xc7, 0x75, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0x5e, 0xdb, 0x9b, 0x7c, 0x48, 0x2d, 0x1d, 0x8f, 0x17, 0x7e, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0x08, 0xd6, 0x60, 0x58, 0x7e, 0x1d, 0x8c, 0x2e, 0xb0, 0x83, 0x01, 0x0b, 0x76, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0xde, 0xd9, 0x9b, 0x7c, 0x48, 0x2d, 0x1d, 0x8f, 0x87, 0x5f, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0xbb, 0x21, 0x9d, 0xb9, 0x21, 0x86, 0xc3, 0x6e, 0x10, 0xf4, 0xfa, 0x0b, 0xbb, 0xc1, 0x88, 0xc5, 0x5a, 0x10, 0x2c, 0x48, 0x06, 0xf2, 0x2b, 0x87, 0x15, 0xda, 0x43, 0xa2, 0xf5, 0x10, 0xc3, 0x83, 0x71, 0xce, 0x75, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0x1e, 0xd9, 0x9b, 0x7c, 0x48, 0x2d, 0x1d, 0x8f, 0x57, 0x10, 0x2c, 0x1e, 0x0c, 0x6f, 0x97, 0xc5, 0x61, 0x37, 0xe4, 0xb1, 0x36, 0xc4, 0x70, 0x10, 0x6c, 0x18, 0x97, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x84, 0xe6, 0xe3, 0xd0, 0xf1, 0x78, 0x05, 0xc1, 0xe2, 0x86, 0xfe, 0x34, 0xb3, 0xa1, 0x6f, 0xf2, 0x1a, 0xfa, 0xd3, 0xcc, 0x86, 0x7b, 0x7c, 0xe3, 0x79, 0x10, 0x89, 0x83, 0x71, 0x6b, 0xb6, 0x38, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0x48, 0x06, 0xf6, 0xeb, 0x0e, 0xd9, 0x8a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x54, 0xcd, 0x41, 0x60, 0x62, 0x1f, 0x87, 0x8e, 0xc7, 0xc7, 0xe3, 0x15, 0x04, 0x8b, 0x6b, 0x58, 0xa1, 0xdd, 0x70, 0x8a, 0x6d, 0x38, 0xc5, 0x3a, 0x9c, 0x62, 0x8b, 0xc3, 0x6e, 0x10, 0x24, 0xde, 0x1b, 0x04, 0xa5, 0xf7, 0xb0, 0x0b, 0xb7, 0x21, 0x86, 0x07, 0x41, 0xe9, 0xbd, 0xa1, 0x91, 0xe0, 0xb0, 0x0b, 0x82, 0x0d, 0xd1, 0x1c, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xf8, 0x63, 0x0e, 0xcd, 0x92, 0x8e, 0x43, 0x1b, 0x1a, 0x09, 0x1e, 0x04, 0xa5, 0xf7, 0xf1, 0x78, 0x41, 0xb0, 0x41, 0x08, 0xdb, 0x2f, 0x0e, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x76, 0x43, 0xbf, 0xc1, 0x0d, 0x8b, 0x7c, 0x87, 0x18, 0x1e, 0x8f, 0x8f, 0xc7, 0x83, 0x60, 0x71, 0x66, 0x43, 0x46, 0xeb, 0x60, 0x8c, 0xa1, 0x2d, 0x0e, 0xbb, 0x21, 0x8f, 0xb5, 0x21, 0x86, 0xc3, 0x6e, 0x10, 0x24, 0xde, 0x1b, 0x62, 0x38, 0x08, 0x36, 0x08, 0x4a, 0xef, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xe3, 0xc2, 0xec, 0x60, 0xf0, 0xc7, 0x1c, 0x87, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x61, 0x37, 0xe4, 0xb1, 0x36, 0xc4, 0x70, 0xd8, 0x0d, 0xbb, 0x06, 0x1b, 0x62, 0xb8, 0x21, 0x86, 0x07, 0x03, 0xb3, 0xeb, 0x78, 0xbc, 0x20, 0x58, 0x9c, 0xd9, 0x10, 0xcd, 0x83, 0x31, 0x86, 0xb6, 0x38, 0xec, 0x86, 0x3c, 0xd6, 0x86, 0x46, 0x82, 0xc3, 0x6e, 0x10, 0x24, 0xde, 0x1b, 0xa2, 0x79, 0x30, 0x52, 0xd7, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x3c, 0x2c, 0xf2, 0x1d, 0x8f, 0x07, 0xc1, 0x06, 0xa3, 0xac, 0x6c, 0x71, 0xd8, 0x0d, 0x79, 0xac, 0x0d, 0x31, 0x3c, 0x18, 0xb2, 0x65, 0xc7, 0xe3, 0x05, 0xc1, 0xe2, 0x86, 0x7e, 0xb5, 0x1b, 0xba, 0xc9, 0x1e, 0x8c, 0x4b, 0xb3, 0xc5, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x6e, 0x58, 0xdf, 0x5b, 0xf8, 0x0d, 0x7b, 0x85, 0xc7, 0xb7, 0xc3, 0xb8, 0x1c, 0x8f, 0x8f, 0xc7, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x76, 0xc3, 0xfa, 0xde, 0x86, 0x18, 0x6e, 0x18, 0x97, 0x43, 0x0c, 0x8f, 0xc7, 0x0b, 0xbf, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x61, 0x37, 0xac, 0xef, 0x2d, 0xc8, 0xd6, 0x90, 0xc7, 0x1e, 0x03, 0xdf, 0xad, 0xac, 0x8c, 0x3c, 0x9c, 0x62, 0x87, 0x71, 0x39, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x0d, 0x86, 0x5c, 0xdc, 0x21, 0xb5, 0x74, 0x3c, 0x5e, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0xbb, 0x61, 0xd7, 0x60, 0x43, 0x34, 0x87, 0xdd, 0x90, 0xc7, 0xda, 0x30, 0x2e, 0xc3, 0x2e, 0xdc, 0xc1, 0xc0, 0xec, 0xda, 0x10, 0xcd, 0x41, 0xb6, 0x86, 0x3c, 0xf6, 0x18, 0xf8, 0x6d, 0x61, 0x74, 0xe5, 0xe1, 0x14, 0x3b, 0x1e, 0x0f, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x61, 0x37, 0xe4, 0xb1, 0x36, 0x8c, 0xcb, 0xc1, 0xd0, 0xec, 0x3a, 0x1e, 0xaf, 0xf0, 0x0b, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb0, 0x21, 0x31, 0x35, 0x08, 0x16, 0x87, 0x5d, 0xd8, 0x0d, 0x89, 0x80, 0x85, 0xdd, 0x60, 0x10, 0x70, 0x1c, 0xd2, 0xb9, 0x87, 0xa3, 0x7d, 0xc3, 0xb8, 0x0c, 0x92, 0x21, 0x83, 0x68, 0xc1, 0x7c, 0x41, 0xb0, 0xc1, 0xa0, 0xe4, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xf0, 0x43, 0x0e, 0xc9, 0x8e, 0xe3, 0xd0, 0x20, 0xd8, 0x60, 0x50, 0x72, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xf8, 0x21, 0x87, 0xc4, 0xcc, 0x71, 0x68, 0x10, 0x2d, 0xec, 0xc2, 0x1c, 0xa2, 0x39, 0x08, 0x36, 0x18, 0x66, 0x34, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xf9, 0xda, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x40, 0x5d, 0x3a, 0x64, 0x2b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0xfc, 0x90, 0xd1, 0x1a, 0x7e, 0xe3, 0xf9, 0x70, 0x0b, 0x82, 0x0d, 0x86, 0x7d, 0xcd, 0xc1, 0x20, 0xad, 0x1b, 0x04, 0x1b, 0x0c, 0xfb, 0x9a, 0x83, 0x31, 0x64, 0x77, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x8f, 0x6f, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0x38, 0xe0, 0xb5, 0xa5, 0xe1, 0x87, 0xd4, 0xd2, 0xf1, 0x78, 0x85, 0x5f, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0x0d, 0x89, 0xa9, 0x41, 0xb0, 0x38, 0xec, 0x06, 0xc3, 0x96, 0x6e, 0xc3, 0xb8, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x83, 0x81, 0x56, 0x37, 0x88, 0x16, 0x76, 0x83, 0x11, 0x6d, 0x37, 0x08, 0x36, 0x18, 0x66, 0x34, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xf9, 0xda, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x86, 0xe2, 0xdd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x31, 0x7f, 0x37, 0xfc, 0xc6, 0xf3, 0x61, 0x17, 0x6e, 0x43, 0x0c, 0x0f, 0xc6, 0x12, 0xde, 0xc2, 0x2e, 0xdc, 0x86, 0x18, 0x1e, 0x0c, 0x4a, 0xbc, 0x43, 0x3a, 0xf7, 0x70, 0xb4, 0x1f, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0xe3, 0xdb, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0x78, 0x63, 0x6f, 0xee, 0x21, 0xb5, 0x74, 0x3c, 0x1e, 0x04, 0x1b, 0x8c, 0xfc, 0x87, 0xc5, 0x41, 0xb0, 0x20, 0x19, 0x08, 0xde, 0x21, 0xb9, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xd0, 0x31, 0x6c, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xc3, 0x7a, 0xec, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x31, 0x4e, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0xb0, 0x56, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xf4, 0x10, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0x8c, 0xd3, 0x1c, 0xd2, 0x70, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x5e, 0xf8, 0x05, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0xd8, 0x60, 0x60, 0x32, 0x0c, 0x82, 0x0d, 0x9b, 0x21, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xc6, 0x81, 0xc3, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0xa0, 0xad, 0xd3, 0x61, 0x85, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc0, 0x0f, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0xe8, 0x20, 0x1c, 0x8c, 0x90, 0xb0, 0xe3, 0xd0, 0x71, 0xe8, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x07, 0xbc, 0x31, 0x36, 0xfd, 0x90, 0x5a, 0x3a, 0x1e, 0x2f, 0xfc, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x6c, 0x48, 0x4c, 0x0d, 0x82, 0xc5, 0x61, 0x17, 0x76, 0x43, 0x22, 0x60, 0x43, 0x0c, 0x0f, 0x86, 0x36, 0xdd, 0x86, 0x71, 0x19, 0x24, 0x43, 0x06, 0xd1, 0x06, 0x03, 0xad, 0x6e, 0x10, 0x2d, 0xec, 0x06, 0x23, 0xda, 0x6e, 0x10, 0x6c, 0x30, 0xcc, 0x68, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xf2, 0xb5, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x0c, 0xc5, 0xbb, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x63, 0xfe, 0x6e, 0xf8, 0x8d, 0xe7, 0xc3, 0x6e, 0x30, 0xf8, 0xf7, 0x36, 0xc4, 0xf0, 0x60, 0xe4, 0xf0, 0x1d, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0xe3, 0xdb, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0x78, 0x64, 0x69, 0xf3, 0x21, 0xb5, 0x74, 0x3c, 0x5e, 0xf8, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xbb, 0x61, 0x7d, 0x6f, 0x43, 0x0c, 0x07, 0xc1, 0x86, 0x18, 0x0e, 0x82, 0x05, 0xc1, 0x86, 0x4c, 0xc4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x11, 0x15, 0x38, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xe0, 0x87, 0x1c, 0xf6, 0x0a, 0x8f, 0x43, 0xc7, 0xa1, 0x41, 0xb0, 0x38, 0xfc, 0x82, 0x68, 0x41, 0x3c, 0xec, 0xc2, 0x6d, 0x38, 0xda, 0x07, 0xc1, 0x06, 0x01, 0xca, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xe0, 0x87, 0x2c, 0xfc, 0xc6, 0xf3, 0x0d, 0xa9, 0x83, 0xc3, 0xd1, 0x7e, 0x30, 0xde, 0x74, 0x8e, 0x43, 0x1b, 0x0c, 0x37, 0x85, 0x43, 0xaa, 0xe6, 0x78, 0x3c, 0xec, 0x86, 0xf5, 0xbd, 0x0d, 0xa9, 0x9a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x20, 0x58, 0x90, 0x0c, 0xa4, 0x57, 0x0e, 0x02, 0xde, 0xff, 0xd0, 0xa8, 0xe5, 0x78, 0x7c, 0x7c, 0x3b, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0x0f, 0x2d, 0xac, 0x3d, 0xa4, 0x96, 0x8e, 0xc7, 0xc3, 0x2f, 0x08, 0x36, 0xc4, 0x70, 0x71, 0xd8, 0x0d, 0xeb, 0x7b, 0x1b, 0x62, 0x38, 0x08, 0x36, 0xc4, 0x70, 0x10, 0x2c, 0x0e, 0xbb, 0x70, 0x1b, 0x8e, 0xf6, 0x41, 0xb0, 0x20, 0x19, 0x28, 0x4e, 0x87, 0x6c, 0xc5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x81, 0x1f, 0xb2, 0xc1, 0x28, 0x49, 0x3c, 0x08, 0x4c, 0xec, 0xe3, 0xd0, 0x61, 0xfd, 0xf0, 0xf8, 0x76, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0xde, 0x18, 0x9d, 0x7e, 0x48, 0x2d, 0x1d, 0x8f, 0x57, 0x41, 0xb0, 0xf0, 0x0b, 0x82, 0x0d, 0xc2, 0x70, 0x79, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x18, 0xae, 0xe3, 0xf9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x1f, 0xda, 0xce, 0x0c, 0xbf, 0xf1, 0xfc, 0x20, 0xdc, 0x96, 0x8f, 0x43, 0xc7, 0xa1, 0xe3, 0xdb, 0xe2, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x2c, 0x08, 0x16, 0x24, 0x83, 0xba, 0x43, 0x72, 0xe9, 0x90, 0x86, 0x1b, 0x04, 0x0b, 0x82, 0x05, 0xc9, 0xc0, 0x5e, 0xdf, 0x41, 0x90, 0xf3, 0x0f, 0x92, 0x81, 0xa1, 0x1a, 0x44, 0x0b, 0x7b, 0x30, 0xde, 0x74, 0x8e, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xf1, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x06, 0xd6, 0xfa, 0x0e, 0x82, 0x9c, 0x7f, 0x90, 0x0c, 0x4e, 0x0d, 0xa2, 0x0d, 0x46, 0x04, 0xd5, 0x71, 0xe8, 0xb0, 0xc7, 0x7b, 0x1c, 0x3a, 0x1e, 0x2f, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0x06, 0xa3, 0xf1, 0x71, 0x10, 0x2c, 0x08, 0x16, 0x04, 0x1b, 0x8c, 0x92, 0xc8, 0x41, 0x32, 0xb8, 0x77, 0x30, 0x06, 0x23, 0x0f, 0x7b, 0xbc, 0xc3, 0x2e, 0xdc, 0x86, 0x18, 0x1e, 0x87, 0x16, 0x04, 0x0b, 0x82, 0x05, 0xc9, 0xc0, 0x5e, 0xdf, 0x41, 0xc0, 0xfb, 0x0f, 0x92, 0x81, 0xf0, 0x0d, 0xa2, 0x85, 0x9d, 0x20, 0xfc, 0xc7, 0xa1, 0x43, 0xf6, 0x62, 0x10, 0x2c, 0x08, 0x36, 0x18, 0x42, 0x93, 0x83, 0x64, 0x60, 0xa8, 0x0e, 0xc6, 0xe8, 0xe4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xb2, 0xe3, 0x90, 0x3a, 0x38, 0x0e, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xfc, 0x06, 0x43, 0x80, 0x6a, 0x10, 0x2c, 0x0e, 0xbb, 0x41, 0xf0, 0x31, 0x6f, 0x10, 0x98, 0xd8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x50, 0x3f, 0x08, 0x16, 0x24, 0xc3, 0x1c, 0x56, 0x68, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x8c, 0x09, 0xab, 0x83, 0x91, 0x65, 0x75, 0x1c, 0x3a, 0x08, 0xbd, 0xf5, 0xe3, 0xdb, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0xec, 0xf5, 0x1d, 0xb2, 0x15, 0x83, 0x64, 0xa0, 0xf8, 0x1d, 0x8c, 0x1a, 0xa3, 0x43, 0xa3, 0x96, 0x61, 0x37, 0x18, 0xf5, 0x92, 0x07, 0xe1, 0xe6, 0x7e, 0x3c, 0x1e, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x58, 0xeb, 0x3b, 0x64, 0x2b, 0x06, 0xc9, 0xc0, 0xf4, 0x0d, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xc1, 0x68, 0x7c, 0x3c, 0x0e, 0x1d, 0x3a, 0x68, 0x1c, 0x8f, 0x8f, 0xc7, 0x83, 0x60, 0xe1, 0x17, 0x04, 0x1b, 0x84, 0xe1, 0xf2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xf1, 0xe4, 0x38, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xc0, 0x3a, 0x0e, 0xbf, 0xf1, 0x7c, 0xf8, 0x05, 0xc9, 0xc0, 0xfd, 0x75, 0x3c, 0x3f, 0xbe, 0x1d, 0x87, 0x8e, 0x43, 0xc7, 0xb7, 0xc5, 0x05, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0x58, 0x10, 0x6c, 0x30, 0x12, 0x70, 0x0e, 0x69, 0xb8, 0x41, 0xb0, 0xc1, 0x98, 0x7f, 0x1c, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x88, 0xff, 0xf0, 0x1b, 0xcf, 0x37, 0xe4, 0x6b, 0x8f, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0x06, 0x03, 0xd8, 0x72, 0xf8, 0x85, 0x5f, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0xb0, 0x0b, 0xb7, 0x21, 0x86, 0x87, 0xbd, 0xc2, 0x0d, 0xa9, 0x83, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x98, 0x1f, 0x1a, 0x7e, 0x0d, 0xa2, 0x85, 0x1d, 0x04, 0x8b, 0xc3, 0x2e, 0xdc, 0x86, 0x18, 0x4e, 0x10, 0xf9, 0x0d, 0x02, 0x99, 0x7b, 0xe1, 0x37, 0x24, 0x3b, 0x36, 0x0e, 0x1d, 0x52, 0x07, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x20, 0xf2, 0x13, 0xcc, 0xfc, 0xf1, 0xf8, 0xf8, 0x76, 0x3c, 0x3e, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0x4f, 0x2f, 0x0d, 0x3e, 0xa4, 0x96, 0x8e, 0xc7, 0xc7, 0xb7, 0xe3, 0xf1, 0x2a, 0x08, 0x36, 0x74, 0xc1, 0x59, 0x1c, 0x04, 0x0b, 0x92, 0x81, 0x36, 0x7d, 0x87, 0xe4, 0xd2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xd6, 0x6e, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x70, 0x7f, 0x1d, 0x56, 0x68, 0x0f, 0x1d, 0x34, 0x8e, 0x43, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0xb6, 0x33, 0x8b, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0x32, 0x70, 0x7c, 0x1d, 0x56, 0x68, 0x0f, 0x8d, 0x5a, 0x0e, 0x8d, 0x5a, 0x86, 0x5d, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x6e, 0x58, 0xdf, 0xdb, 0x10, 0xc3, 0x41, 0xb0, 0x20, 0x19, 0x58, 0xeb, 0x3b, 0x08, 0x78, 0xff, 0x41, 0x32, 0x30, 0x7c, 0x87, 0xf6, 0x2d, 0xc7, 0xe3, 0x41, 0x32, 0xe4, 0x60, 0x0c, 0x46, 0x6e, 0x1c, 0x3a, 0x9c, 0x62, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x17, 0x9c, 0xc5, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0xc1, 0x00, 0x0a, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0x86, 0xeb, 0xb0, 0x42, 0x7b, 0x48, 0xb4, 0x1e, 0x87, 0x0e, 0x8d, 0x5a, 0x86, 0x5d, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x6e, 0x58, 0xdf, 0xdb, 0x10, 0xc3, 0x41, 0xb0, 0xc1, 0x10, 0x9a, 0x1c, 0x24, 0x03, 0x49, 0xbf, 0x43, 0xfb, 0x96, 0xe3, 0xf1, 0xc1, 0xc0, 0x16, 0x3d, 0x18, 0x0b, 0xa3, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0xdb, 0x99, 0xc5, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0xc1, 0x00, 0x08, 0x1d, 0x76, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xbb, 0x61, 0x7d, 0x6f, 0x43, 0x0c, 0x07, 0xc1, 0x82, 0x64, 0x98, 0x83, 0x80, 0xf7, 0x1f, 0x24, 0x03, 0xe3, 0x77, 0x68, 0xdf, 0x72, 0x3c, 0x3e, 0x18, 0xd8, 0xa2, 0x07, 0x63, 0x61, 0xf4, 0xd0, 0xfc, 0xe5, 0x78, 0x7c, 0x3c, 0x1e, 0x04, 0x1b, 0xba, 0xe0, 0x2c, 0x0e, 0x82, 0x0d, 0xc6, 0xda, 0xe7, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xd6, 0x6e, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0xb0, 0xd2, 0x77, 0x48, 0x2e, 0x1d, 0x3a, 0x68, 0x1c, 0x87, 0x8e, 0xc7, 0x2b, 0xfc, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x86, 0x18, 0x0e, 0x82, 0x0d, 0x31, 0x1c, 0x7e, 0x41, 0xb0, 0x38, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x0d, 0x86, 0x00, 0xe4, 0x20, 0x19, 0x28, 0x7e, 0x87, 0xf6, 0x2d, 0x83, 0x64, 0xc8, 0xc1, 0x20, 0x83, 0x1c, 0x76, 0x83, 0x51, 0x2f, 0xb9, 0xf0, 0x0b, 0xa2, 0x05, 0xf1, 0x20, 0x58, 0x10, 0x6c, 0x30, 0x84, 0x26, 0x07, 0xc9, 0xc0, 0x50, 0x0d, 0xa2, 0x85, 0x3d, 0xec, 0x15, 0x1e, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xde, 0xc9, 0x83, 0xc0, 0xc4, 0x3e, 0x0e, 0x1d, 0x8f, 0x87, 0x5d, 0xd8, 0x85, 0x1e, 0x8c, 0x37, 0x9d, 0xc3, 0xfa, 0xe6, 0x82, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x10, 0x54, 0x7d, 0x07, 0x01, 0xef, 0x3f, 0x48, 0x86, 0x1c, 0x8c, 0xd1, 0xc9, 0x05, 0xc1, 0x82, 0x64, 0x50, 0x72, 0x30, 0x0c, 0x7d, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0xfc, 0x70, 0xb4, 0x1f, 0xa2, 0x79, 0x1c, 0x5a, 0x10, 0x6c, 0x30, 0x6e, 0x7b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xfc, 0x90, 0xc3, 0xb8, 0x1c, 0x87, 0x0e, 0x7b, 0x85, 0xc3, 0x2f, 0x88, 0x16, 0xcc, 0x07, 0xc1, 0x82, 0x64, 0x50, 0x72, 0x30, 0xde, 0x75, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x1a, 0xcf, 0x1f, 0x04, 0x26, 0xf6, 0x71, 0xe8, 0x78, 0x3c, 0x08, 0x16, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xfa, 0x83, 0x20, 0xc5, 0x3f, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x90, 0x41, 0xb4, 0xa0, 0x7e, 0x82, 0xe9, 0x1f, 0x44, 0x0b, 0xe2, 0x41, 0xb0, 0xc1, 0x88, 0x6d, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xde, 0x74, 0x0e, 0xd1, 0x3c, 0x0e, 0x0d, 0xa2, 0x85, 0x9d, 0x90, 0x1d, 0x92, 0x4b, 0x0b, 0x82, 0x05, 0xc9, 0xa0, 0x64, 0x82, 0xfa, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xd0, 0x78, 0x7e, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x21, 0x1e, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xb5, 0x3b, 0x44, 0xf3, 0x38, 0x74, 0x1c, 0x5a, 0x10, 0x2c, 0x48, 0x06, 0x82, 0x77, 0x30, 0x0c, 0x7d, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x8c, 0x0d, 0xd7, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x40, 0x5d, 0x3a, 0x18, 0x86, 0x3e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x1e, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0x61, 0x3a, 0x18, 0x86, 0x3e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x06, 0x7e, 0xc8, 0x86, 0x1e, 0x42, 0x87, 0x46, 0x82, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x60, 0xb0, 0xc6, 0x0e, 0xbb, 0xb0, 0x1b, 0x0c, 0x5f, 0xd6, 0x85, 0x5d, 0x10, 0x2c, 0x48, 0x06, 0x82, 0x72, 0x30, 0xde, 0x75, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0xda, 0x3a, 0x1d, 0x04, 0xbc, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x81, 0x1f, 0x72, 0x30, 0x78, 0x27, 0x8f, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x8c, 0x4e, 0xdb, 0x83, 0xa1, 0xe9, 0x7a, 0x1c, 0x3a, 0xa4, 0x73, 0x0f, 0x47, 0xfb, 0x06, 0x23, 0xa1, 0x75, 0x10, 0x2c, 0x08, 0x36, 0x18, 0x27, 0xad, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xc3, 0xb8, 0x1c, 0x87, 0x16, 0x04, 0x1b, 0x8c, 0xd8, 0xd6, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xc6, 0xf3, 0x87, 0x68, 0x1e, 0x87, 0x16, 0x04, 0x0b, 0x92, 0x81, 0xe0, 0x1d, 0x8c, 0x77, 0x9d, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x43, 0xb1, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x71, 0xdb, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x48, 0xd1, 0x1e, 0xc6, 0xe5, 0x38, 0x74, 0x1c, 0x3a, 0xec, 0x15, 0x1e, 0xdf, 0x0e, 0xa9, 0x83, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0x1c, 0xf0, 0xd4, 0xc2, 0xda, 0x43, 0x6a, 0xe9, 0x78, 0xbc, 0x82, 0x60, 0x71, 0x70, 0xb7, 0xc5, 0x41, 0xb0, 0xb0, 0x0b, 0xb7, 0x18, 0x6e, 0x1e, 0xa2, 0xb9, 0xc2, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x8c, 0xdb, 0xdd, 0x0d, 0xc6, 0xed, 0xee, 0xe1, 0x14, 0x5b, 0xd8, 0x0d, 0x82, 0xc4, 0x7b, 0x43, 0x0c, 0x87, 0x5d, 0xb8, 0x0d, 0x47, 0xfb, 0xa1, 0x91, 0xe0, 0xa1, 0xcd, 0xe3, 0xc2, 0x2e, 0xec, 0x42, 0x0f, 0x9d, 0xd4, 0x0e, 0xeb, 0x9b, 0x1b, 0x3a, 0xa9, 0x1d, 0x4e, 0xb1, 0x61, 0x17, 0x76, 0xa1, 0x13, 0x7a, 0x0f, 0xeb, 0x9b, 0x1b, 0x8c, 0xcc, 0xde, 0xc3, 0x29, 0x36, 0xec, 0xc2, 0x2d, 0x86, 0xa7, 0x87, 0x68, 0xae, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0xa3, 0xc1, 0x77, 0x83, 0xd1, 0xe0, 0x7b, 0x38, 0xc5, 0x86, 0xdd, 0xb0, 0x6b, 0xb0, 0x21, 0x86, 0xc3, 0x6e, 0x78, 0x04, 0xe0, 0xd0, 0xe6, 0x71, 0x61, 0x17, 0x6e, 0x43, 0x34, 0xc7, 0x70, 0x77, 0x83, 0x21, 0xf5, 0x7b, 0x38, 0xc5, 0x86, 0xdd, 0xb0, 0x6b, 0x70, 0x68, 0x1c, 0x75, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0xf8, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xbb, 0x61, 0x7d, 0x6f, 0xc3, 0xb9, 0x3e, 0x08, 0x36, 0x18, 0x9b, 0x21, 0x83, 0x60, 0x41, 0xb0, 0xc1, 0x88, 0x0a, 0x1c, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xf0, 0x43, 0x0e, 0xa9, 0x83, 0xe3, 0xd0, 0x82, 0x60, 0x83, 0x61, 0x46, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x61, 0x46, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0x3a, 0x38, 0xa4, 0x0e, 0x8e, 0x43, 0x87, 0x54, 0xcd, 0x71, 0x68, 0x10, 0x2c, 0x48, 0x06, 0xc2, 0x74, 0xc8, 0x56, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xf8, 0x21, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0x92, 0x4e, 0x87, 0x6c, 0xc5, 0xc1, 0xc0, 0x16, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x04, 0xef, 0x90, 0xad, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0xb0, 0xaf, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x0d, 0x31, 0x1c, 0x04, 0x1b, 0x8c, 0xbf, 0x9b, 0x83, 0x81, 0x2d, 0x7a, 0x48, 0xd5, 0x1c, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x18, 0x8a, 0x77, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x46, 0x27, 0xf1, 0x41, 0x60, 0x62, 0x1f, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0x1c, 0xf0, 0xda, 0xc2, 0xe8, 0x43, 0x6a, 0xe9, 0x78, 0x3c, 0x08, 0x36, 0x18, 0x70, 0xbb, 0x8b, 0x83, 0x60, 0x61, 0x17, 0x6e, 0x31, 0x9c, 0x3c, 0x44, 0x73, 0x85, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x18, 0xf8, 0xc6, 0x1b, 0x0c, 0x7c, 0xe3, 0xc3, 0x29, 0x76, 0x30, 0xb8, 0x78, 0x0f, 0x46, 0x7d, 0xef, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x41, 0xb0, 0xc1, 0x80, 0xdb, 0x5d, 0x1c, 0x04, 0x0b, 0xbb, 0xc1, 0x60, 0x37, 0x5e, 0x83, 0x21, 0x72, 0xbc, 0xc1, 0xf0, 0xe2, 0xdd, 0x60, 0xe4, 0xf3, 0xae, 0xb0, 0x0b, 0xbb, 0xd0, 0x09, 0x82, 0x7b, 0x58, 0xdf, 0xdc, 0x60, 0xc0, 0x23, 0x1f, 0x4e, 0xb1, 0x61, 0x17, 0x76, 0xa1, 0x13, 0x44, 0xf7, 0xb0, 0xbe, 0xb9, 0xc1, 0x88, 0x4b, 0x3e, 0x9c, 0x62, 0x0b, 0xbb, 0x70, 0x1b, 0x62, 0x78, 0x68, 0xc6, 0xb3, 0x21, 0x86, 0xc3, 0x2e, 0xdc, 0x86, 0xa3, 0xfd, 0xd0, 0x8c, 0xe7, 0xd0, 0xe6, 0x71, 0xd8, 0x85, 0x5d, 0xe8, 0x04, 0xf1, 0x3d, 0xac, 0x6f, 0x6e, 0x30, 0x4e, 0x95, 0x0f, 0xa7, 0xd8, 0xc1, 0xa8, 0xef, 0x3d, 0x34, 0x7f, 0x39, 0x1e, 0x2f, 0xfc, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x86, 0x18, 0x0e, 0x82, 0x0d, 0x31, 0x1c, 0x7e, 0x41, 0xb0, 0x38, 0xec, 0xc2, 0x6d, 0x88, 0xe1, 0x20, 0xd8, 0x20, 0x40, 0xf9, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xfc, 0x90, 0x85, 0xdf, 0x78, 0xbe, 0x21, 0x55, 0x73, 0x38, 0xda, 0x0f, 0xc6, 0x9b, 0xce, 0x71, 0x68, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0x08, 0xaf, 0xbe, 0x83, 0x20, 0xe7, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x83, 0xe1, 0xa6, 0x70, 0x30, 0xde, 0x74, 0x8e, 0x43, 0x0b, 0x73, 0x10, 0x52, 0xe0, 0x1b, 0x84, 0x00, 0xf8, 0x20, 0xd8, 0x60, 0x78, 0xae, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x08, 0x4c, 0xec, 0xc3, 0xb8, 0x1c, 0x87, 0x06, 0xc1, 0x82, 0x60, 0x83, 0xc0, 0xf5, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x68, 0x3c, 0x7f, 0xd8, 0x2b, 0x3c, 0x0e, 0x0d, 0xbb, 0x70, 0x1b, 0x62, 0x38, 0x08, 0x16, 0x24, 0x03, 0xc5, 0xe9, 0x20, 0xe0, 0xfd, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xfc, 0x90, 0x85, 0xdf, 0x78, 0xbe, 0x30, 0x87, 0xbd, 0xc2, 0xc3, 0xd1, 0x7e, 0x30, 0x78, 0x27, 0x8f, 0x43, 0x0b, 0x82, 0x05, 0xc9, 0x90, 0x41, 0xb4, 0x20, 0x3e, 0x0e, 0x1d, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0xc8, 0x20, 0x5a, 0x10, 0x0f, 0x82, 0x0d, 0x46, 0x6c, 0xeb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0x34, 0x0f, 0xa9, 0x9a, 0xe3, 0xd0, 0xc1, 0x98, 0x8c, 0x1d, 0x04, 0x6b, 0x68, 0x24, 0x78, 0x10, 0x64, 0xf1, 0x0b, 0x82, 0x05, 0xc9, 0xa0, 0x64, 0x82, 0xfb, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xa1, 0xf1, 0xfc, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x43, 0x4e, 0x7a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0xfe, 0x87, 0xac, 0xdd, 0x71, 0xe8, 0x38, 0xb4, 0x71, 0x68, 0x10, 0x2c, 0x08, 0x16, 0x24, 0x03, 0x7b, 0x7d, 0x07, 0xc3, 0x3f, 0x76, 0x90, 0x0c, 0x0c, 0xd5, 0xa1, 0x31, 0xd8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x09, 0xc6, 0xff, 0x90, 0x3a, 0x38, 0x0e, 0x0d, 0x82, 0x05, 0xc1, 0x82, 0x64, 0x40, 0x78, 0xf5, 0x1d, 0x04, 0xbc, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xea, 0xe0, 0x60, 0xf0, 0x4e, 0x1e, 0x87, 0x36, 0x18, 0xa4, 0xb8, 0x0b, 0x82, 0x05, 0xc9, 0xc0, 0x79, 0x77, 0x30, 0xde, 0x75, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x82, 0x05, 0xc9, 0xc0, 0x5e, 0xdf, 0xc1, 0x78, 0xd7, 0x39, 0x18, 0x51, 0x97, 0x07, 0x23, 0x0a, 0xf7, 0x38, 0x74, 0xd8, 0x2b, 0x3c, 0xbe, 0x1d, 0x52, 0x07, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0x38, 0xe0, 0x8d, 0xd5, 0x95, 0x87, 0xd4, 0xd2, 0xf1, 0x78, 0xf8, 0x05, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0x58, 0x10, 0xac, 0x21, 0x86, 0x83, 0x60, 0x83, 0x71, 0x16, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xe0, 0x87, 0x1c, 0xf2, 0xb5, 0xc7, 0xa1, 0x41, 0xb0, 0x38, 0xec, 0x82, 0x60, 0x41, 0x32, 0xf8, 0x72, 0x10, 0xe4, 0xfc, 0x87, 0x44, 0xeb, 0x86, 0x53, 0x6c, 0xd8, 0x85, 0xdb, 0x10, 0xc3, 0x41, 0xb0, 0xc1, 0x78, 0x61, 0x1c, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xf0, 0x43, 0x16, 0x7e, 0xe3, 0xf9, 0x82, 0x60, 0x83, 0x61, 0x46, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xec, 0x38, 0x64, 0xed, 0x8e, 0x43, 0x87, 0xa3, 0xfd, 0x90, 0x98, 0x39, 0x0e, 0x2d, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xe1, 0xc1, 0x88, 0xb6, 0x3b, 0x1e, 0x1f, 0xa2, 0x79, 0x7c, 0x1b, 0x76, 0x83, 0x51, 0x2f, 0xb9, 0xc1, 0x60, 0x45, 0x19, 0x04, 0x0b, 0x82, 0x0d, 0x59, 0x93, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xf8, 0x0f, 0xbf, 0xf1, 0xfc, 0x60, 0x94, 0x9f, 0x1c, 0x87, 0x06, 0xc1, 0x82, 0x60, 0x83, 0x61, 0x46, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xd1, 0x33, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0xfc, 0xdd, 0x1c, 0x1a, 0xb5, 0x1c, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x18, 0x2f, 0x8c, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x06, 0x7e, 0xc8, 0xc2, 0x6f, 0x3c, 0xdf, 0x38, 0x74, 0x30, 0xee, 0xba, 0x0f, 0x89, 0x99, 0xe3, 0xd0, 0x71, 0x68, 0x41, 0xb0, 0x41, 0xe0, 0xfa, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x70, 0xfd, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xf6, 0x0a, 0x0f, 0x7b, 0x85, 0xc7, 0xa1, 0x43, 0xea, 0xe0, 0x38, 0x34, 0x08, 0x36, 0x08, 0x50, 0xfe, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x03, 0x3f, 0x64, 0xe1, 0x37, 0x9e, 0x2f, 0x08, 0x36, 0x08, 0x5c, 0xff, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x54, 0xcd, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xc3, 0x4a, 0x71, 0x90, 0x0c, 0x39, 0x18, 0xeb, 0xab, 0xc7, 0xa1, 0xe3, 0xd0, 0x41, 0x88, 0xf8, 0x1f, 0x87, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xc0, 0x93, 0xab, 0x13, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0xc2, 0x2f, 0x08, 0x36, 0x08, 0xab, 0xe5, 0xc5, 0x85, 0x5f, 0x10, 0x6c, 0x10, 0xc2, 0xf6, 0x8b, 0x83, 0x60, 0x71, 0xd8, 0x0d, 0x82, 0x0b, 0x7b, 0xc3, 0xd1, 0x3e, 0xec, 0x06, 0xc1, 0x7f, 0xbf, 0x21, 0x86, 0xc3, 0x6e, 0x10, 0x8a, 0xd9, 0x1b, 0x62, 0x38, 0xec, 0x06, 0x81, 0x92, 0x7f, 0x48, 0xe7, 0x1e, 0xdf, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xc0, 0x0b, 0x73, 0xcb, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0x0a, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x1b, 0x8e, 0xf6, 0x41, 0xb0, 0x38, 0xec, 0xc2, 0x6d, 0x88, 0xe1, 0xc1, 0x78, 0xd3, 0xd9, 0x10, 0xc3, 0x61, 0x17, 0x6e, 0xc3, 0x5e, 0xe1, 0x41, 0x90, 0xe2, 0xaf, 0x21, 0x86, 0x83, 0x60, 0x41, 0x32, 0xa8, 0x3b, 0x18, 0xef, 0x3a, 0x87, 0x8e, 0xf1, 0xc3, 0x2e, 0x08, 0x16, 0x24, 0x03, 0x61, 0x3b, 0x08, 0x78, 0xff, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x81, 0x89, 0x3d, 0xc1, 0xf0, 0x1f, 0x87, 0x16, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xfb, 0x07, 0x63, 0xec, 0x69, 0x10, 0x2d, 0xec, 0x20, 0xd8, 0x60, 0xe0, 0x96, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xa4, 0x6a, 0x86, 0xdf, 0x78, 0x3e, 0xc6, 0x1e, 0x87, 0x8e, 0xc7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x70, 0xff, 0x60, 0x0c, 0x2c, 0x0c, 0xa2, 0x85, 0x1d, 0x04, 0x1b, 0x0c, 0xdc, 0xf2, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x54, 0xcd, 0xf0, 0x1b, 0xcf, 0xc7, 0xf8, 0xe3, 0xd0, 0xf1, 0xf8, 0xf8, 0x76, 0x3c, 0x5e, 0xe1, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x87, 0xdd, 0x20, 0xb8, 0xb0, 0x37, 0x08, 0x5f, 0xec, 0x61, 0x17, 0x6e, 0x43, 0xaa, 0xe6, 0x90, 0xec, 0xd8, 0x20, 0x30, 0xb1, 0x87, 0x5d, 0x10, 0x2c, 0x48, 0x06, 0xc2, 0x76, 0x10, 0xe4, 0xfc, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x83, 0xe1, 0x55, 0x7e, 0x1c, 0x5a, 0x10, 0x6c, 0x10, 0x8a, 0xd9, 0xc3, 0x2e, 0xf4, 0x38, 0xb4, 0xb0, 0x0b, 0x82, 0x05, 0xc9, 0xe0, 0xda, 0x41, 0xc0, 0xfb, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xad, 0xe6, 0x87, 0x68, 0x1e, 0x87, 0x16, 0x44, 0x0b, 0x7b, 0x1c, 0x3a, 0x18, 0x6f, 0x3a, 0x83, 0x68, 0xe1, 0x07, 0xd1, 0x06, 0x43, 0x34, 0xf6, 0x60, 0xbc, 0xe9, 0x1c, 0x87, 0x0e, 0xa7, 0xd8, 0x20, 0xd8, 0x20, 0x50, 0xf2, 0x87, 0xdd, 0x60, 0x74, 0xac, 0x2f, 0xec, 0x06, 0x63, 0x68, 0x7d, 0x41, 0xb4, 0xf0, 0xc7, 0xa1, 0x83, 0xf1, 0xa6, 0x33, 0x88, 0x16, 0x76, 0x10, 0x2d, 0xfc, 0x41, 0x90, 0xc5, 0x1f, 0x8c, 0x37, 0x9d, 0xe3, 0xd0, 0xe1, 0x14, 0x3b, 0xbe, 0x1d, 0x8f, 0x07, 0xd9, 0x1a, 0xd2, 0x40, 0xe3, 0x80, 0x07, 0x57, 0x47, 0x1f, 0x52, 0x4b, 0xc7, 0xe3, 0xe1, 0x17, 0x04, 0x1b, 0x52, 0x07, 0x8b, 0x83, 0x60, 0x71, 0xd8, 0x0d, 0x82, 0x8f, 0x79, 0x43, 0x0c, 0x87, 0xdd, 0x20, 0xb8, 0xb0, 0x37, 0xc4, 0x70, 0xd8, 0x05, 0xc1, 0x82, 0x64, 0x70, 0xed, 0x20, 0xc8, 0xf9, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x04, 0x29, 0xfe, 0x21, 0xfe, 0xc7, 0xa1, 0x85, 0x5d, 0xb8, 0x0d, 0x59, 0xbb, 0x43, 0xb2, 0x63, 0x41, 0xb4, 0xd0, 0x05, 0xc9, 0x90, 0x41, 0xb4, 0x41, 0x50, 0x67, 0x1f, 0x04, 0x09, 0xfa, 0x20, 0x19, 0x32, 0x88, 0x36, 0x08, 0xb9, 0xfc, 0x83, 0x70, 0x6f, 0x3e, 0x08, 0x4c, 0xec, 0x61, 0x17, 0x04, 0x1b, 0x8c, 0x26, 0xf5, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xf8, 0x1f, 0x04, 0x29, 0xfe, 0x71, 0x68, 0x41, 0xb0, 0x20, 0x19, 0x08, 0xd7, 0x20, 0x5a, 0xd8, 0x41, 0x32, 0x64, 0x10, 0x6d, 0x10, 0xd4, 0xd9, 0x83, 0x68, 0x41, 0xf7, 0x21, 0x86, 0xc7, 0xe3, 0xc3, 0x0a, 0xed, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0x20, 0x54, 0xd1, 0x8f, 0x43, 0x83, 0x60, 0x41, 0x32, 0x10, 0xae, 0x41, 0xb4, 0xb0, 0x83, 0x64, 0xc8, 0x20, 0xda, 0x20, 0xe4, 0xf2, 0x07, 0xd1, 0x82, 0xea, 0x43, 0x0c, 0x8f, 0xc7, 0x87, 0x15, 0xda, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x41, 0x08, 0x9f, 0x1f, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xa0, 0xfe, 0x90, 0xaa, 0x19, 0x44, 0x0b, 0xe2, 0x83, 0xc0, 0xc4, 0x3e, 0x1e, 0x1f, 0xdf, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xc0, 0x4b, 0x73, 0xa3, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0xc2, 0x2f, 0x08, 0x36, 0xc4, 0x70, 0x71, 0xf8, 0x05, 0xc1, 0xe2, 0xb0, 0x1b, 0x04, 0x17, 0xf6, 0x06, 0xe1, 0x8b, 0x3d, 0xec, 0x06, 0x83, 0x3b, 0x7d, 0x83, 0xc0, 0xc4, 0x1e, 0x76, 0x83, 0xe1, 0xa3, 0xbe, 0x20, 0xd8, 0x20, 0x14, 0xb3, 0x87, 0xdd, 0x60, 0x74, 0xac, 0x6f, 0x30, 0x82, 0xd8, 0x0f, 0xa7, 0xd8, 0x20, 0xd8, 0x20, 0x50, 0xf2, 0x87, 0xdd, 0x60, 0x74, 0xac, 0x6f, 0x30, 0x1a, 0xdb, 0x0f, 0xa7, 0xd8, 0xf1, 0xed, 0x78, 0x7e, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0x9e, 0x58, 0x9a, 0x79, 0x48, 0x2d, 0x1d, 0x8f, 0x17, 0x7e, 0x41, 0xb0, 0x21, 0x75, 0xb0, 0x38, 0xec, 0xc2, 0x6d, 0xd8, 0x2b, 0x3c, 0xa4, 0x0e, 0x36, 0xec, 0x15, 0x0e, 0x82, 0xc5, 0x61, 0x37, 0x08, 0x3e, 0xe6, 0x0d, 0x02, 0x13, 0x7b, 0xd8, 0x0d, 0x82, 0x0b, 0x7b, 0x43, 0xaa, 0x66, 0xd8, 0x0d, 0x86, 0x11, 0xfc, 0x82, 0x68, 0x83, 0xf1, 0x08, 0x7f, 0x48, 0xd5, 0x0c, 0xbb, 0xc1, 0x10, 0x7c, 0x5f, 0xd8, 0x0d, 0x06, 0x5f, 0xfc, 0x82, 0x64, 0xc8, 0x20, 0x5a, 0x20, 0xf4, 0x07, 0x03, 0x4c, 0xfe, 0x20, 0xdc, 0x9b, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0x40, 0xec, 0x0f, 0x46, 0xe6, 0xfc, 0x41, 0x90, 0xa0, 0x0f, 0xbb, 0x20, 0xd8, 0x60, 0x34, 0xa9, 0x1f, 0x0c, 0xe5, 0xf7, 0x05, 0xc9, 0x90, 0x41, 0xb4, 0x41, 0xc8, 0xe5, 0x0f, 0xa2, 0x05, 0xd5, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x20, 0xf6, 0x87, 0x18, 0x1e, 0x04, 0x09, 0xfa, 0xf1, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x1b, 0x04, 0x75, 0xf6, 0x20, 0x5a, 0xd0, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0x42, 0x7f, 0x88, 0xe1, 0x41, 0xb8, 0x37, 0x1f, 0x8f, 0x8f, 0x6f, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0x38, 0xe0, 0xd5, 0xb9, 0xa5, 0x87, 0xd4, 0xd2, 0xf1, 0x78, 0xf8, 0x05, 0xc1, 0x86, 0xd4, 0xc1, 0xe2, 0x20, 0x58, 0x1c, 0x76, 0x83, 0xe0, 0x63, 0xde, 0x20, 0x30, 0xb1, 0x07, 0xc1, 0x82, 0x60, 0x41, 0x32, 0xb8, 0x75, 0x58, 0xa1, 0x3d, 0x6c, 0xd4, 0x0e, 0xb2, 0x35, 0xb4, 0x5f, 0x3f, 0x18, 0x1d, 0xeb, 0x83, 0x60, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xa8, 0x3f, 0x08, 0x29, 0xf0, 0x41, 0xb4, 0x20, 0x3e, 0xb4, 0x00, 0x3a, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x90, 0x41, 0xb4, 0xa0, 0xfe, 0x30, 0x2e, 0x83, 0x68, 0x41, 0x7c, 0x10, 0x3c, 0xdc, 0x87, 0xe4, 0xd2, 0x20, 0x58, 0x1c, 0x76, 0x83, 0xe0, 0x63, 0xde, 0x90, 0x3a, 0x18, 0x76, 0xc3, 0xfa, 0xde, 0x86, 0x54, 0xcd, 0xb0, 0x0b, 0x82, 0x05, 0xc9, 0xe0, 0xda, 0xc1, 0xf0, 0x8f, 0x3d, 0x18, 0x36, 0xd3, 0x0b, 0xa2, 0x85, 0x3f, 0x08, 0xe1, 0xe6, 0x43, 0xaa, 0x66, 0x10, 0x2d, 0xec, 0x20, 0x19, 0x72, 0x10, 0x12, 0xdf, 0x87, 0xd4, 0xc1, 0xf1, 0xed, 0xf8, 0x76, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0x1e, 0x59, 0x9a, 0x79, 0x48, 0x2d, 0x1d, 0x8f, 0x17, 0x7e, 0x41, 0xb0, 0x41, 0x08, 0xdb, 0x2f, 0x0e, 0x82, 0xc5, 0x61, 0x37, 0x08, 0x2e, 0xec, 0x0d, 0x31, 0x1c, 0x76, 0x83, 0xe0, 0xbf, 0x5f, 0xd8, 0x0d, 0x42, 0x31, 0x7b, 0x83, 0x51, 0x3b, 0x7e, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0xf1, 0xed, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x07, 0xbc, 0x30, 0x36, 0xf6, 0x90, 0x5a, 0x3a, 0x1e, 0xaf, 0xf0, 0x0b, 0x82, 0xc5, 0x61, 0x37, 0x08, 0x3e, 0xe6, 0x0d, 0x31, 0x1c, 0x66, 0x10, 0x6c, 0xc8, 0x9a, 0x1c, 0x04, 0xd8, 0xf9, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0x1c, 0xf0, 0xee, 0xf2, 0xe8, 0xc3, 0xd5, 0x75, 0x3c, 0x3e, 0xbe, 0x2d, 0xfc, 0xc2, 0x2f, 0x08, 0x36, 0xc4, 0x70, 0x71, 0xd8, 0x0d, 0xc6, 0x26, 0xe7, 0x86, 0xd4, 0xc1, 0x20, 0x19, 0x32, 0x88, 0x36, 0x18, 0x0d, 0x9d, 0x83, 0x68, 0x61, 0x37, 0xc4, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xe6, 0x87, 0x16, 0x40, 0xc7, 0xe3, 0xe3, 0xf1, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0x78, 0x74, 0x61, 0xf0, 0x21, 0xb5, 0x74, 0x3c, 0x3e, 0xbe, 0x0d, 0xbf, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x38, 0xec, 0x06, 0xc1, 0xc7, 0xbc, 0x41, 0x60, 0x62, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x41, 0xfd, 0x20, 0x58, 0x90, 0x0c, 0x4e, 0x1d, 0x56, 0x68, 0x0f, 0x1b, 0xb5, 0x07, 0xa1, 0xb7, 0x7e, 0x7c, 0x3b, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0xef, 0x2c, 0x6c, 0x3e, 0xa4, 0x96, 0x8e, 0xc7, 0x0b, 0xbf, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x38, 0xec, 0x06, 0xc1, 0x85, 0xbd, 0x21, 0x86, 0xc3, 0x6e, 0x30, 0xb8, 0xd3, 0x17, 0x04, 0x8b, 0xc3, 0x2e, 0xdc, 0x86, 0x18, 0x1e, 0x8c, 0xb1, 0xa7, 0x0d, 0xc6, 0xc0, 0xc2, 0xb0, 0x0b, 0xb7, 0x21, 0x86, 0x07, 0x63, 0x60, 0x61, 0x83, 0x31, 0xf6, 0x34, 0xec, 0x82, 0x60, 0x83, 0x21, 0xb5, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0x82, 0xa3, 0x7f, 0x82, 0xb3, 0xff, 0x38, 0xb4, 0x20, 0x5a, 0xf8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x30, 0xfa, 0x13, 0xdc, 0xfa, 0xc7, 0xe3, 0x83, 0x31, 0xf6, 0x34, 0x88, 0x16, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xcc, 0xfe, 0x04, 0xe7, 0xfe, 0xf1, 0xf8, 0x60, 0x0c, 0x2c, 0x1c, 0xdf, 0x86, 0xdd, 0x60, 0xf8, 0xa8, 0x2f, 0x88, 0x16, 0xf6, 0x20, 0x14, 0xb3, 0x0f, 0x02, 0x13, 0x7b, 0x10, 0x2d, 0xfc, 0x41, 0xa0, 0xe4, 0x1f, 0x04, 0x26, 0xf6, 0xf1, 0xed, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x07, 0x3c, 0xb2, 0x32, 0xf6, 0x90, 0x5a, 0x3a, 0x1e, 0xaf, 0xf0, 0x0b, 0xbf, 0x20, 0x58, 0xe1, 0x17, 0x7e, 0x41, 0x32, 0x30, 0x54, 0x87, 0x15, 0xda, 0xe3, 0xdb, 0xf1, 0xed, 0xa0, 0xc0, 0x39, 0x58, 0x1c, 0x76, 0x83, 0xb1, 0xc9, 0xb9, 0x21, 0x86, 0xc3, 0x2e, 0xec, 0x86, 0x3c, 0xd6, 0x86, 0x18, 0x0e, 0xbb, 0x20, 0x58, 0x90, 0x0c, 0x84, 0xed, 0x90, 0xad, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0x76, 0x1c, 0x8c, 0x0b, 0xb3, 0xe3, 0xd0, 0xc2, 0x2e, 0xec, 0xc2, 0x6d, 0x88, 0xff, 0xc1, 0xd0, 0xec, 0x3a, 0xac, 0x6f, 0x1e, 0xd2, 0xb9, 0x87, 0xa3, 0x7d, 0x61, 0x17, 0x76, 0xc3, 0xae, 0xc1, 0x86, 0x18, 0x0e, 0xbb, 0x20, 0xd8, 0xa0, 0x78, 0x3e, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xe8, 0x18, 0x76, 0x48, 0x76, 0x1c, 0x87, 0x16, 0x76, 0x61, 0x17, 0x6e, 0x83, 0xa0, 0xf4, 0x3e, 0xc4, 0xff, 0xb0, 0xbe, 0x79, 0x48, 0xe7, 0x1e, 0x8e, 0xf6, 0x85, 0x5d, 0xd8, 0x85, 0xdb, 0x10, 0xc3, 0x43, 0x0b, 0xa0, 0x0d, 0x31, 0x1c, 0x76, 0x41, 0xb0, 0x41, 0xb0, 0xbc, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x24, 0x3b, 0x26, 0x18, 0xfa, 0xe3, 0xd0, 0xc2, 0x2e, 0xec, 0xc2, 0x1d, 0x04, 0x3f, 0xf4, 0x61, 0x7d, 0x73, 0x61, 0x17, 0x24, 0x43, 0x06, 0xd1, 0x06, 0x65, 0xd8, 0xc0, 0x20, 0x5a, 0x10, 0x1e, 0x52, 0x02, 0xc7, 0xe3, 0x43, 0x3a, 0xf7, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0x85, 0x5d, 0xd8, 0x85, 0xdb, 0x10, 0xc3, 0x43, 0xc3, 0xaf, 0x0d, 0x31, 0x1c, 0x76, 0x41, 0xb0, 0x41, 0xb0, 0xbc, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x24, 0x3b, 0x26, 0x18, 0xfb, 0xe3, 0xd0, 0xc2, 0x2e, 0xec, 0xc2, 0x1d, 0x04, 0xbe, 0xf4, 0x61, 0x7d, 0x73, 0x61, 0x17, 0x24, 0x43, 0x06, 0xd1, 0x06, 0xa3, 0xa1, 0x73, 0x10, 0x2d, 0x48, 0x0f, 0x29, 0x81, 0xe3, 0xf1, 0x21, 0x9d, 0x7b, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0x21, 0x9d, 0x7b, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0x3f, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0x2f, 0x0c, 0x8e, 0x3e, 0xa4, 0x96, 0x8e, 0xc7, 0xc7, 0xb7, 0xe1, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xfc, 0x82, 0x68, 0x61, 0x87, 0xdd, 0xd0, 0x71, 0x64, 0xc3, 0xb8, 0x1c, 0x4e, 0xb1, 0xe3, 0xf1, 0x20, 0x58, 0x1c, 0x76, 0xe1, 0x36, 0xc4, 0xf0, 0x60, 0xf0, 0x4e, 0x6e, 0x38, 0xda, 0x87, 0x5d, 0xb8, 0x0d, 0xa9, 0x9a, 0x83, 0xd1, 0x6a, 0xbe, 0x21, 0x86, 0xc3, 0x2e, 0x08, 0x16, 0x24, 0x03, 0x61, 0x3b, 0x18, 0xef, 0x3a, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x7b, 0x85, 0x13, 0x14, 0xff, 0xe3, 0xd0, 0x82, 0x64, 0xc8, 0x20, 0x5a, 0x20, 0xfc, 0x13, 0x94, 0xfe, 0xe3, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x08, 0xff, 0x04, 0xb5, 0xff, 0x78, 0x7c, 0x7c, 0x3b, 0x1e, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x7e, 0x58, 0xe4, 0x3b, 0x0e, 0x1d, 0x8f, 0x07, 0xd9, 0x1a, 0xd2, 0x40, 0xe3, 0x80, 0x87, 0x16, 0x36, 0x1f, 0x52, 0x4b, 0xc7, 0xe3, 0x85, 0x5f, 0x10, 0x6c, 0x10, 0xc2, 0xf6, 0x8b, 0x83, 0x60, 0x43, 0x0c, 0x07, 0xc1, 0xe2, 0xb0, 0x1b, 0x8c, 0x7c, 0xf2, 0x0d, 0xa9, 0x83, 0xe1, 0x17, 0x44, 0x0b, 0x3b, 0x08, 0x16, 0x04, 0x1b, 0x8c, 0x27, 0xd1, 0x41, 0x32, 0x38, 0x75, 0x68, 0xdf, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xb0, 0x57, 0x38, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x3d, 0x18, 0xad, 0xe6, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0xf8, 0x05, 0xd1, 0xc2, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x83, 0x91, 0x6f, 0x7e, 0x30, 0x04, 0xa8, 0x8e, 0xc7, 0x83, 0x64, 0xc8, 0x20, 0xda, 0x60, 0x78, 0xa0, 0x1f, 0x0c, 0x01, 0xaa, 0xe3, 0xdb, 0xf1, 0xf8, 0x60, 0xa8, 0x2d, 0x0d, 0xbf, 0x20, 0x58, 0xdc, 0x30, 0x2e, 0x07, 0x63, 0x0c, 0x6d, 0x71, 0x10, 0x2c, 0x0e, 0xbb, 0x41, 0x70, 0x61, 0x6f, 0x30, 0xf8, 0x63, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xe0, 0xf5, 0x20, 0x19, 0x32, 0x88, 0x16, 0xbc, 0x1e, 0x04, 0x1b, 0x52, 0x35, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x82, 0x14, 0x7f, 0x82, 0xa8, 0x1f, 0x87, 0x0e, 0xc2, 0x36, 0xfb, 0x20, 0xa8, 0xf2, 0x8f, 0x6f, 0xc7, 0xe3, 0x83, 0x41, 0xfc, 0x74, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0x9f, 0xe6, 0x1e, 0x52, 0x4b, 0xc7, 0xe3, 0xe1, 0x17, 0x04, 0x0b, 0xbf, 0x20, 0xd8, 0x20, 0x0c, 0x97, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0x83, 0xf1, 0xe4, 0x78, 0x7c, 0x3b, 0x0e, 0x1d, 0xdf, 0x16, 0x17, 0x04, 0x1b, 0x52, 0x07, 0x8b, 0x83, 0x60, 0x71, 0xc3, 0x0a, 0xed, 0x06, 0x01, 0x70, 0xbf, 0x41, 0x00, 0xdc, 0xb7, 0x38, 0x08, 0x16, 0x87, 0xdd, 0x20, 0xb8, 0xb0, 0x37, 0x18, 0xbc, 0x93, 0xc3, 0x6e, 0x50, 0x70, 0x31, 0x6c, 0x10, 0x98, 0xd8, 0xc3, 0x2e, 0xdc, 0x12, 0x04, 0x7e, 0x82, 0xc2, 0xbf, 0x1a, 0x14, 0x3b, 0x12, 0x83, 0x60, 0x43, 0xaa, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x04, 0x87, 0xff, 0x12, 0x5c, 0xfe, 0x13, 0x4c, 0xfe, 0x71, 0x68, 0x41, 0x32, 0x64, 0x10, 0x6d, 0x50, 0xac, 0x34, 0x1c, 0x84, 0x6d, 0xf6, 0x20, 0x19, 0x32, 0x88, 0x36, 0x28, 0xb4, 0x1a, 0x0e, 0x82, 0x2a, 0x7f, 0xd8, 0x05, 0xc1, 0x82, 0x64, 0x70, 0xed, 0x60, 0xbc, 0xeb, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x28, 0x07, 0x25, 0x26, 0x18, 0xfc, 0xe3, 0xd0, 0xc2, 0x2e, 0x08, 0x36, 0x28, 0x84, 0x19, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x14, 0x61, 0x13, 0x07, 0xe5, 0xa0, 0xc4, 0x71, 0x68, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x50, 0xfa, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0x41, 0xb1, 0xd2, 0x30, 0x88, 0x36, 0x18, 0x26, 0xfc, 0xc7, 0xe3, 0x83, 0xa0, 0xca, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0x02, 0xb5, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x1b, 0x14, 0x5a, 0x0d, 0x83, 0x68, 0x83, 0xa1, 0xcf, 0x7f, 0x3c, 0x3e, 0x08, 0xdb, 0xec, 0x61, 0x17, 0x04, 0x1b, 0x14, 0xc2, 0x0c, 0x07, 0x65, 0xce, 0xc4, 0x82, 0x64, 0xc8, 0x20, 0xda, 0xa0, 0xd0, 0x6a, 0x18, 0x44, 0x0b, 0x84, 0x7e, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xd4, 0xfe, 0x43, 0x0c, 0x0f, 0xc2, 0x36, 0xfb, 0x78, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x0d, 0x8a, 0x95, 0x86, 0x41, 0xb4, 0x40, 0xec, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0x40, 0xe9, 0x3f, 0xc4, 0xf0, 0x20, 0xa8, 0xf2, 0x8f, 0xc7, 0xc7, 0xb7, 0xe3, 0xf1, 0xf1, 0x78, 0x85, 0x5f, 0x10, 0x6c, 0x10, 0xc2, 0xf6, 0x8b, 0x83, 0x60, 0x71, 0xd8, 0x0d, 0x82, 0x0b, 0x7b, 0xc3, 0xd1, 0x3e, 0xec, 0x82, 0x60, 0x43, 0xaa, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x7b, 0x50, 0x72, 0x4a, 0x1c, 0x87, 0x0e, 0x46, 0xd9, 0xf8, 0xf1, 0xed, 0x78, 0x7c, 0x30, 0x22, 0xc8, 0x57, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0xd8, 0x70, 0xb4, 0x0f, 0x82, 0xc5, 0x61, 0x37, 0x18, 0xf9, 0xe4, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x6d, 0xd8, 0x2b, 0x3c, 0x28, 0xc2, 0x26, 0x36, 0x18, 0x95, 0xe5, 0xc3, 0x2e, 0x08, 0x36, 0x18, 0x24, 0xe6, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x02, 0x13, 0xfb, 0xa0, 0xd8, 0x91, 0x38, 0x0e, 0x1d, 0x0c, 0x69, 0xf3, 0xe3, 0xdb, 0xf1, 0x78, 0x85, 0x5f, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0xc5, 0x61, 0x37, 0x08, 0x2e, 0xec, 0x35, 0xe4, 0x65, 0x0f, 0x89, 0xa9, 0x61, 0x17, 0x6e, 0x43, 0xd6, 0xee, 0xa0, 0x84, 0x91, 0x58, 0xd8, 0x85, 0xdb, 0x90, 0xaf, 0x3d, 0x18, 0x8b, 0x9d, 0x1b, 0x04, 0x26, 0xf6, 0x20, 0x5a, 0xc8, 0x21, 0x2f, 0x7b, 0x10, 0x98, 0xd8, 0xc3, 0x2e, 0x08, 0x36, 0x18, 0x4d, 0xea, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xf1, 0x3f, 0x28, 0xc2, 0x26, 0x8e, 0x43, 0x0b, 0x82, 0x0d, 0x42, 0x31, 0x7b, 0xd8, 0x0d, 0x46, 0xc7, 0xfa, 0xc2, 0x2e, 0x08, 0x36, 0x18, 0x52, 0xeb, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x8a, 0x1d, 0x89, 0x83, 0xf1, 0xd3, 0x75, 0x1c, 0x3a, 0x18, 0xfa, 0xeb, 0x87, 0x53, 0x6c, 0x10, 0x6c, 0x10, 0x28, 0xf9, 0xc3, 0x6e, 0x30, 0x3a, 0xd6, 0x17, 0x76, 0x83, 0x52, 0x1b, 0xe3, 0x60, 0x18, 0xb5, 0x1f, 0x4e, 0xb1, 0xe3, 0xdb, 0xf1, 0xf8, 0x60, 0xe8, 0xb8, 0x0f, 0xbf, 0x20, 0xd8, 0x90, 0x3a, 0x58, 0x1c, 0x04, 0x8b, 0xc3, 0x6e, 0x10, 0x7c, 0xcc, 0x1b, 0x62, 0x38, 0xec, 0x06, 0xc1, 0x85, 0xbd, 0x21, 0x86, 0xc3, 0x2e, 0x08, 0x36, 0x18, 0x91, 0xef, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x8a, 0xb0, 0x89, 0x83, 0x31, 0x61, 0x75, 0x1c, 0x5a, 0xd8, 0x85, 0x5b, 0x42, 0xf1, 0x41, 0x09, 0x23, 0xb1, 0xc1, 0x88, 0xce, 0x1f, 0x76, 0x41, 0xb0, 0xc1, 0x68, 0x52, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x26, 0xac, 0x0e, 0x8a, 0xb0, 0x89, 0xe3, 0xd0, 0x82, 0x60, 0x41, 0x32, 0x50, 0xae, 0x0e, 0xc6, 0x91, 0xfc, 0xc1, 0xb8, 0x97, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0x72, 0x75, 0x30, 0x00, 0xe7, 0x0f, 0x06, 0x0c, 0xfd, 0xb0, 0x0b, 0xb7, 0x41, 0x09, 0x23, 0x71, 0x50, 0x1c, 0x6a, 0x6c, 0x30, 0xa2, 0xf3, 0x87, 0x5d, 0x10, 0x6c, 0x30, 0x9a, 0xd4, 0x0f, 0x4a, 0x1e, 0x8d, 0x05, 0xc1, 0x82, 0x64, 0xa0, 0x5c, 0x0d, 0xa2, 0x85, 0x3d, 0x18, 0x01, 0xfc, 0x87, 0x15, 0xda, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x0f, 0x02, 0x25, 0xff, 0x38, 0x34, 0x08, 0x16, 0x24, 0x03, 0xe5, 0x6a, 0x10, 0x2d, 0xec, 0xc1, 0xa8, 0xe6, 0x3f, 0xac, 0xd0, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x7e, 0x10, 0x8a, 0xd9, 0xc7, 0xa1, 0xe3, 0xdb, 0xf1, 0xf8, 0x60, 0xe4, 0xd4, 0x2f, 0xfc, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0xe2, 0xb0, 0x1b, 0x04, 0x17, 0xf6, 0x86, 0xc4, 0xd4, 0xb0, 0x0b, 0xb7, 0x21, 0x55, 0x73, 0x50, 0xc2, 0x48, 0x6c, 0x48, 0xcc, 0x0c, 0xbb, 0x20, 0xd8, 0x60, 0x34, 0xa9, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x0f, 0xca, 0x6e, 0x8b, 0xe3, 0xd0, 0x82, 0x60, 0x83, 0x50, 0xcc, 0x1e, 0x64, 0x1b, 0x0c, 0x75, 0xff, 0x0d, 0x42, 0x0a, 0x7c, 0x10, 0x2d, 0xec, 0x41, 0x08, 0x80, 0x1f, 0x8c, 0x37, 0x9d, 0x41, 0xb0, 0x41, 0xa0, 0xe4, 0x0f, 0xb2, 0x0d, 0x86, 0xba, 0xff, 0x82, 0x68, 0xe1, 0x0f, 0x42, 0x0a, 0xfc, 0x60, 0xbc, 0xe9, 0x1c, 0x84, 0x00, 0xf8, 0xf1, 0xed, 0x78, 0x7c, 0x30, 0xf8, 0xef, 0x17, 0x7e, 0x41, 0xb0, 0x21, 0x75, 0xb0, 0x38, 0x08, 0x16, 0x87, 0xdd, 0x20, 0xf8, 0x98, 0x37, 0x08, 0x4c, 0xec, 0x61, 0x37, 0x08, 0x2e, 0xec, 0x0d, 0xa9, 0x9a, 0x61, 0x37, 0x28, 0x02, 0x35, 0x36, 0x18, 0xd1, 0xf9, 0xc3, 0x6e, 0x50, 0x9a, 0x68, 0x2c, 0xec, 0x06, 0x05, 0xad, 0xc6, 0xc1, 0x38, 0xd3, 0x1f, 0x76, 0x83, 0x62, 0x76, 0xe3, 0x60, 0x80, 0xee, 0x1f, 0xdf, 0x8e, 0xc7, 0x07, 0x03, 0xad, 0x7f, 0xf8, 0x05, 0xc1, 0x86, 0xd4, 0xc1, 0xe2, 0x20, 0x58, 0x1c, 0x76, 0x83, 0xe0, 0x63, 0xde, 0x20, 0x30, 0xb1, 0x07, 0xc1, 0x82, 0x60, 0x41, 0x32, 0x30, 0x56, 0x87, 0x15, 0xda, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc1, 0x98, 0xb0, 0x3a, 0x0e, 0x0d, 0xb2, 0x0d, 0x86, 0xba, 0xff, 0x20, 0xd8, 0x60, 0xc0, 0xfc, 0x0f, 0x82, 0x0d, 0x86, 0xf4, 0xff, 0x20, 0x58, 0x1c, 0x76, 0x83, 0xe0, 0x63, 0xde, 0x90, 0x3a, 0x18, 0x76, 0xc3, 0xfa, 0xde, 0x86, 0x54, 0xcd, 0xb0, 0x0b, 0x82, 0x0d, 0x8a, 0x44, 0x80, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x63, 0xc2, 0xea, 0xa0, 0x38, 0xd4, 0x38, 0x0e, 0x1d, 0x94, 0xb4, 0x00, 0xc7, 0xb7, 0xe3, 0xdb, 0xf1, 0xf8, 0xa0, 0x10, 0x09, 0xd8, 0xa0, 0xfc, 0x11, 0xd8, 0xa0, 0xb4, 0x16, 0x58, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0xec, 0x86, 0x5d, 0x83, 0x05, 0xc1, 0x82, 0x64, 0x20, 0x7c, 0x87, 0xe4, 0xd2, 0x21, 0x0d, 0x37, 0x08, 0x16, 0x24, 0x03, 0x43, 0x75, 0x48, 0x2e, 0x1d, 0x8c, 0xfa, 0x8c, 0xe3, 0xf1, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x19, 0x38, 0xef, 0x0e, 0xd9, 0x8a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0xa0, 0xf8, 0x1d, 0x92, 0x4b, 0x87, 0x46, 0x2d, 0xc7, 0xa1, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x0c, 0x07, 0xc1, 0xe2, 0xb0, 0x1b, 0x8c, 0x4d, 0xce, 0x0d, 0xa9, 0x83, 0x41, 0x32, 0x64, 0x10, 0x6d, 0x30, 0x1a, 0x3a, 0x07, 0xd1, 0xc2, 0x6e, 0x30, 0xb2, 0xac, 0x0e, 0x8a, 0xa7, 0x81, 0xe3, 0xf1, 0xf1, 0x6d, 0x10, 0x6c, 0x30, 0xca, 0xca, 0x16, 0x07, 0xc1, 0xe2, 0xb0, 0x1b, 0x04, 0x17, 0xf6, 0x1a, 0xb2, 0x76, 0x87, 0x18, 0x0e, 0x82, 0x05, 0xc1, 0x86, 0x7c, 0xed, 0xc1, 0x50, 0x7e, 0x1f, 0x7e, 0x41, 0xb4, 0x40, 0xf0, 0x0f, 0x42, 0x00, 0xfc, 0x78, 0x3c, 0x08, 0x16, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xfa, 0x83, 0x31, 0xf6, 0x34, 0x88, 0x16, 0x8c, 0x0f, 0x42, 0x0a, 0xfc, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xfa, 0x83, 0x72, 0xac, 0x61, 0x10, 0x6d, 0x50, 0x58, 0x90, 0x1c, 0x92, 0x4b, 0x1b, 0x84, 0x14, 0xf8, 0x20, 0x5a, 0xe8, 0x86, 0x71, 0x39, 0x08, 0x01, 0xf0, 0x83, 0x81, 0x48, 0x7d, 0x7c, 0x3b, 0x1e, 0x2f, 0xfc, 0x82, 0x60, 0xf1, 0x60, 0xcc, 0xa0, 0x2d, 0x0e, 0x82, 0xc5, 0x61, 0x37, 0x08, 0x2e, 0xec, 0x0d, 0x31, 0x1c, 0x44, 0x8b, 0x0b, 0xa2, 0x85, 0x0e, 0x82, 0x0d, 0xa9, 0x9a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x45, 0xd8, 0xc4, 0x41, 0xc9, 0x29, 0x71, 0x1c, 0x3a, 0x24, 0x3b, 0x0e, 0x82, 0x1d, 0xff, 0x20, 0x30, 0xb1, 0x8f, 0x6f, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0x38, 0xe0, 0xd5, 0xc9, 0xb9, 0x87, 0xd4, 0xd2, 0xf1, 0x78, 0xe1, 0x17, 0x04, 0x1b, 0x84, 0xb0, 0xfd, 0xe2, 0x20, 0x58, 0x1c, 0x76, 0x83, 0xe0, 0xc2, 0xde, 0x10, 0xc3, 0x61, 0x37, 0x28, 0x29, 0x2c, 0x0e, 0x0a, 0xdd, 0x80, 0xe3, 0xdb, 0xf1, 0xf8, 0xa0, 0x14, 0x10, 0x58, 0xe1, 0x17, 0x7e, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x6e, 0x30, 0x36, 0x39, 0x37, 0xa4, 0x0e, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xc1, 0x68, 0xe8, 0x1c, 0x44, 0x0b, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x0d, 0xca, 0xb0, 0x81, 0x41, 0xb4, 0xb0, 0x83, 0x60, 0x41, 0xb0, 0xc1, 0x38, 0xc2, 0x3c, 0x28, 0x18, 0x1d, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x07, 0x25, 0x8c, 0xc4, 0x71, 0xe8, 0x78, 0x7c, 0x3c, 0x3e, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0x6f, 0xad, 0x2c, 0x3f, 0xa4, 0x96, 0x8e, 0xc7, 0xc7, 0xb7, 0x85, 0x5f, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0xf0, 0x1b, 0x0c, 0x01, 0xaa, 0x41, 0xb0, 0x38, 0xec, 0x06, 0xc1, 0xc7, 0xbc, 0x41, 0x60, 0x62, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x41, 0xfd, 0x20, 0xd8, 0xa0, 0x20, 0x3a, 0x38, 0x18, 0x0a, 0x96, 0x07, 0xa1, 0xb7, 0x7e, 0x7c, 0x3b, 0x1e, 0x1f, 0x94, 0x79, 0x04, 0xc3, 0x2f, 0x08, 0x56, 0xd8, 0x0d, 0x1d, 0x47, 0x36, 0x18, 0x3f, 0x5d, 0x87, 0x53, 0x6c, 0xf8, 0x15, 0x76, 0x43, 0xc7, 0x91, 0x0d, 0x86, 0x66, 0xd7, 0xe1, 0x14, 0x3b, 0x28, 0xc4, 0x51, 0x0e, 0x3d, 0x51, 0x17, 0x87, 0xdd, 0x60, 0x6c, 0x72, 0x6e, 0x38, 0xc5, 0x86, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x18, 0x13, 0x56, 0x0b, 0xa2, 0x85, 0x1b, 0x04, 0x1b, 0xc6, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x7b, 0x30, 0x16, 0x3b, 0x8f, 0x43, 0x87, 0xbd, 0xc2, 0x61, 0x17, 0x04, 0x1b, 0x14, 0xcf, 0x07, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x83, 0xe2, 0xfb, 0xe2, 0x38, 0xb4, 0x20, 0x5a, 0xd8, 0x83, 0xe2, 0x69, 0xe0, 0xb0, 0x57, 0x38, 0x88, 0x16, 0x7e, 0x90, 0x0c, 0x19, 0x44, 0x1b, 0x8c, 0x86, 0xce, 0xe3, 0xf1, 0x61, 0xaf, 0xf0, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x07, 0x3c, 0xb5, 0x30, 0xf1, 0x90, 0x5a, 0x3a, 0x1e, 0x2f, 0xfc, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0xe2, 0xb0, 0x1b, 0x04, 0x17, 0xf6, 0x86, 0x18, 0x0e, 0xbb, 0x41, 0x59, 0xd3, 0xb1, 0x20, 0x58, 0x1c, 0x76, 0x83, 0xd2, 0xa3, 0x60, 0x83, 0x31, 0xb0, 0x30, 0xec, 0x06, 0x65, 0x54, 0xc1, 0x06, 0x63, 0xec, 0x69, 0xd8, 0x05, 0xc1, 0x06, 0x43, 0x6a, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x04, 0x89, 0xfe, 0x09, 0x92, 0xfd, 0xc7, 0xa1, 0x83, 0x52, 0xba, 0xe0, 0xf8, 0x36, 0xec, 0x06, 0xe5, 0x59, 0xc7, 0x41, 0x59, 0x68, 0x70, 0x7c, 0x3b, 0x1e, 0x1f, 0x94, 0xe6, 0x06, 0x2b, 0xfc, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x87, 0xdf, 0x60, 0x08, 0x50, 0x0d, 0x82, 0xc5, 0x61, 0x37, 0x08, 0x2e, 0xec, 0x0d, 0x31, 0x1c, 0x76, 0x83, 0xb2, 0xa6, 0x63, 0x41, 0xb0, 0x20, 0x19, 0x58, 0xaf, 0x3b, 0x08, 0x72, 0xfe, 0x83, 0xe2, 0xc4, 0x62, 0xd8, 0x0d, 0xca, 0xb3, 0x8e, 0x83, 0x60, 0xc7, 0x3f, 0xbe, 0x1d, 0x8f, 0x07, 0xd9, 0x1a, 0xd2, 0x40, 0xe3, 0x80, 0x77, 0x56, 0x46, 0x1f, 0x52, 0x4b, 0xc7, 0xe3, 0x15, 0x7e, 0xe1, 0x17, 0x04, 0x1b, 0x14, 0x37, 0x07, 0x8b, 0xc3, 0x6e, 0x30, 0x36, 0x39, 0x37, 0xc4, 0x70, 0xd8, 0x85, 0xdd, 0x90, 0xc7, 0xda, 0x10, 0xc3, 0x61, 0x17, 0x04, 0x1b, 0x14, 0xcf, 0x07, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x4a, 0x18, 0x89, 0x83, 0x71, 0x61, 0x76, 0x1c, 0x5a, 0xd8, 0x85, 0x5d, 0xb8, 0x0d, 0xc6, 0x84, 0xd5, 0xc1, 0xd0, 0xec, 0x3a, 0xac, 0x6f, 0x1e, 0xd2, 0xb9, 0x87, 0xa3, 0x7d, 0x61, 0x17, 0x76, 0xc3, 0xae, 0xc1, 0x86, 0x18, 0x0e, 0xbb, 0x20, 0xd8, 0xa0, 0x78, 0x3e, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xe8, 0x18, 0x76, 0x50, 0xc2, 0x48, 0x1c, 0x87, 0x16, 0x76, 0x61, 0x17, 0x6e, 0x83, 0xa0, 0xf4, 0x3e, 0x18, 0x13, 0x56, 0x87, 0xf5, 0xcd, 0x43, 0x3a, 0xf7, 0x70, 0xb4, 0x2f, 0xec, 0xc2, 0x6e, 0x50, 0xf4, 0x24, 0x6c, 0x88, 0xe1, 0xb0, 0x0b, 0x82, 0x0d, 0x82, 0xe5, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x09, 0x23, 0x31, 0x41, 0xa1, 0x3f, 0x0e, 0x2d, 0xec, 0xc2, 0x2e, 0xdc, 0x06, 0x63, 0xc2, 0x6a, 0x82, 0x41, 0x3f, 0xac, 0x6f, 0x2e, 0xec, 0x82, 0x64, 0xc8, 0x20, 0xda, 0xa0, 0x0c, 0x1b, 0x18, 0x44, 0x0b, 0xc2, 0x0d, 0x31, 0x3c, 0x18, 0x13, 0x56, 0xc7, 0xe3, 0x43, 0x3a, 0xf7, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0x85, 0x5d, 0xd8, 0x0d, 0x8a, 0x2a, 0x85, 0x0d, 0x31, 0x1c, 0x76, 0x41, 0xb0, 0x41, 0xb0, 0xbc, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x28, 0x61, 0x24, 0x26, 0x28, 0xf6, 0xc7, 0xa1, 0x85, 0x5d, 0xd8, 0x85, 0xdb, 0x60, 0x4c, 0x58, 0x4d, 0x30, 0xec, 0x87, 0xf5, 0xcd, 0x85, 0x5d, 0x90, 0x0c, 0x19, 0x44, 0x1b, 0x8c, 0x86, 0xce, 0x41, 0xb4, 0x20, 0x3d, 0x28, 0xe8, 0x5f, 0x8e, 0xc7, 0x87, 0x74, 0xee, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x87, 0x74, 0xee, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0x78, 0x7c, 0x50, 0x46, 0x2e, 0x1c, 0xdf, 0x86, 0x5f, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0xb0, 0x0b, 0xb7, 0x21, 0x86, 0x07, 0x45, 0x99, 0xc8, 0x61, 0x7d, 0xf3, 0x78, 0x7c, 0x50, 0x14, 0x37, 0x0c, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb0, 0x20, 0x19, 0xc8, 0xdf, 0x1d, 0xb2, 0x15, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x28, 0xd9, 0x44, 0x0e, 0x69, 0xb8, 0x43, 0xbe, 0xf6, 0x38, 0x74, 0x3c, 0x5e, 0xf8, 0x05, 0xc1, 0x06, 0x21, 0x6c, 0xbf, 0x38, 0x08, 0x16, 0x87, 0xdd, 0x20, 0xb8, 0xb0, 0x37, 0x08, 0x4c, 0xec, 0x35, 0x28, 0x61, 0x24, 0x0e, 0x4a, 0x0a, 0x8b, 0x83, 0x60, 0xc7, 0x3f, 0xbe, 0x1d, 0x8f, 0x0f, 0x86, 0xda, 0xd2, 0x41, 0x19, 0xfb, 0x70, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0x2f, 0x96, 0x1f, 0x52, 0x4b, 0xc7, 0xe3, 0x15, 0x04, 0x1b, 0x84, 0xb0, 0xfd, 0xe2, 0x20, 0xd8, 0x20, 0x84, 0xed, 0x17, 0x07, 0xc1, 0x82, 0x64, 0x60, 0xb8, 0x0e, 0x82, 0x9c, 0xff, 0x60, 0xc8, 0xd8, 0x1c, 0x8f, 0x8f, 0xc7, 0x2b, 0x08, 0x16, 0x37, 0x08, 0x67, 0xfb, 0x83, 0x70, 0xb6, 0x5f, 0x1c, 0x04, 0x0b, 0x92, 0x81, 0xb6, 0x7d, 0x87, 0xe4, 0xd2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xbe, 0xf6, 0x90, 0xb5, 0x3b, 0x0e, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x87, 0x74, 0xe6, 0xf1, 0x78, 0x41, 0xb0, 0xb8, 0xc1, 0x98, 0x41, 0x6b, 0x71, 0x10, 0x2c, 0xe1, 0xe5, 0xe2, 0x20, 0xd8, 0x10, 0xff, 0x43, 0x9e, 0xe5, 0x78, 0x7c, 0x3c, 0xde, 0x60, 0x68, 0x5a, 0x2d, 0x08, 0x36, 0x08, 0x61, 0xfb, 0xc5, 0x41, 0xb0, 0x41, 0x08, 0xdb, 0x2f, 0x0e, 0x82, 0x0d, 0x4a, 0xde, 0x99, 0x83, 0x81, 0x78, 0x76, 0x3c, 0x3e, 0x1e, 0x2f, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x0f, 0xe3, 0x72, 0x3c, 0x5e, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x83, 0x31, 0x8c, 0x7f, 0x3c, 0x3e, 0x1e, 0x0f, 0x82, 0x0d, 0xca, 0x5d, 0x9a, 0xc5, 0x41, 0xb0, 0x84, 0x93, 0x8b, 0x83, 0x60, 0x43, 0xfc, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x52, 0x35, 0x87, 0xc4, 0xcc, 0x71, 0xe8, 0x78, 0x7c, 0x3c, 0x5e, 0x10, 0x6c, 0x50, 0x08, 0xd0, 0x2c, 0x0e, 0xbf, 0x20, 0xd8, 0xd0, 0x49, 0x6d, 0x71, 0x10, 0x6c, 0x88, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xc3, 0xda, 0xef, 0xa1, 0x51, 0xcb, 0x71, 0xe8, 0x78, 0x3c, 0x08, 0x16, 0x07, 0xc1, 0x86, 0x64, 0xc7, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x48, 0xcc, 0x1c, 0xdf, 0x8e, 0x43, 0xc7, 0xf3, 0xe3, 0xf1, 0x0a, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x1b, 0x62, 0xb8, 0xb8, 0x21, 0x75, 0x70, 0xd8, 0x2b, 0x3c, 0x1e, 0x1f, 0x8f, 0x07, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x21, 0x9a, 0xc7, 0xe3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x87, 0xe5, 0x93, 0xe3, 0xf1, 0x2a, 0xfc, 0x82, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x28, 0x4f, 0xc7, 0xe3, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0xe3, 0x8e, 0x43, 0x83, 0x60, 0x83, 0x91, 0xff, 0xb0, 0x38, 0xfc, 0x82, 0x68, 0x41, 0x38, 0x08, 0x16, 0x24, 0x03, 0x7d, 0x9d, 0x0e, 0x1d, 0xc3, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x94, 0x68, 0x38, 0x87, 0xac, 0xdd, 0x71, 0xe8, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x0b, 0x92, 0xc1, 0x9f, 0x43, 0xb3, 0xa4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x1e, 0x42, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0xb6, 0x4e, 0x87, 0x8e, 0x61, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0x62, 0xd1, 0xa1, 0x63, 0xd8, 0x71, 0xe8, 0x38, 0x34, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x01, 0x91, 0xfe, 0xde, 0x77, 0x68, 0xf8, 0x35, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x30, 0x4a, 0x87, 0x86, 0x5f, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0x62, 0xd1, 0xa1, 0xe1, 0xd7, 0x71, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x20, 0xda, 0xdf, 0xfb, 0x0e, 0x0d, 0xbf, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x52, 0x07, 0x07, 0x03, 0x3f, 0xe4, 0x38, 0x74, 0x1c, 0x1a, 0x04, 0x0b, 0x82, 0x05, 0xc9, 0xc0, 0xb9, 0x32, 0xc1, 0xdc, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x08, 0xf9, 0xec, 0xe1, 0x37, 0x9e, 0x8f, 0x31, 0xc7, 0xa1, 0x41, 0xb0, 0x21, 0xd9, 0x31, 0x08, 0x16, 0x07, 0x08, 0xa2, 0x5a, 0x3c, 0x99, 0x81, 0x3d, 0x59, 0x73, 0xb8, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x18, 0xa5, 0x09, 0x6e, 0xff, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x25, 0x1a, 0xce, 0x41, 0x81, 0xbe, 0x73, 0x1c, 0x1a, 0x04, 0x1b, 0xf6, 0x0a, 0x87, 0x5f, 0x10, 0x2d, 0x98, 0x0f, 0x82, 0x0d, 0x7b, 0x85, 0x83, 0x60, 0x71, 0xd8, 0x0d, 0x82, 0x8f, 0x79, 0x43, 0xea, 0x60, 0x10, 0x2c, 0x08, 0x16, 0x24, 0x03, 0x02, 0xbd, 0x6f, 0x82, 0xdf, 0xff, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0x7f, 0x26, 0x10, 0xee, 0xff, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x06, 0x22, 0xf5, 0x61, 0xaf, 0xf0, 0x38, 0x74, 0x10, 0x98, 0xd8, 0xc7, 0xa1, 0xe1, 0x17, 0x44, 0x0b, 0x19, 0x04, 0x0b, 0x92, 0x41, 0xd9, 0x04, 0xed, 0xff, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x41, 0x30, 0x81, 0x71, 0xff, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0x3a, 0x38, 0x18, 0xad, 0xe6, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0xf8, 0x05, 0xd1, 0x42, 0x06, 0xc1, 0x82, 0x64, 0x20, 0x78, 0x07, 0xe5, 0x62, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x81, 0x1f, 0xb2, 0xf0, 0x1b, 0xcf, 0xc7, 0x90, 0x1f, 0x52, 0x07, 0xc7, 0xa1, 0xe3, 0xf1, 0xf0, 0x0b, 0xa2, 0x85, 0x0c, 0x82, 0x0d, 0xca, 0xbe, 0x9e, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x65, 0x71, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xea, 0xe0, 0x60, 0x18, 0xc3, 0x1e, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0xe1, 0x17, 0x44, 0x0b, 0xe2, 0x41, 0xb0, 0x20, 0x19, 0x08, 0xde, 0x04, 0xc2, 0xfe, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x7b, 0x30, 0x86, 0xf1, 0x8f, 0x43, 0xc7, 0xe3, 0xe1, 0x17, 0x44, 0x0b, 0xe2, 0x41, 0xb0, 0x41, 0x49, 0xe4, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xe0, 0x87, 0x2c, 0xfc, 0xc6, 0xf3, 0x31, 0xa4, 0x87, 0xbd, 0xc2, 0xe3, 0xd0, 0xf1, 0x78, 0xf8, 0x05, 0xd1, 0x82, 0x78, 0x10, 0x2c, 0x48, 0x86, 0x39, 0x28, 0x17, 0x7b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x50, 0xf6, 0xf5, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x28, 0x8b, 0x7b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xf6, 0x0a, 0x0f, 0x4a, 0x34, 0x9c, 0xe3, 0xd0, 0x71, 0x68, 0xf8, 0x8d, 0xe7, 0x63, 0x40, 0x40, 0xb6, 0x46, 0x65, 0x3e, 0x0e, 0x1d, 0x8f, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0x20, 0x1e, 0x04, 0x0b, 0x92, 0x81, 0xf4, 0xca, 0x41, 0x29, 0xdd, 0x73, 0x30, 0x3e, 0x8c, 0x8e, 0xe7, 0xc7, 0xb7, 0xe3, 0xf1, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x06, 0x24, 0xaf, 0xf7, 0x4d, 0xb0, 0xfb, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x08, 0x26, 0xe8, 0xfb, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x20, 0xdb, 0x39, 0x18, 0x6f, 0x3a, 0xc7, 0xa1, 0x83, 0xc1, 0x3b, 0x79, 0x1c, 0x1a, 0x04, 0x1b, 0x62, 0x38, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x81, 0x73, 0xef, 0xa0, 0xd8, 0xe5, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xc1, 0xeb, 0xff, 0x07, 0x43, 0xb1, 0xe8, 0x38, 0x34, 0xfc, 0x82, 0x68, 0x81, 0xf0, 0x0f, 0xbb, 0x70, 0x1b, 0xfa, 0x93, 0x1f, 0x87, 0x16, 0x7e, 0x41, 0xb4, 0xb0, 0x83, 0x60, 0x83, 0x72, 0xf0, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x55, 0x33, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0xa8, 0x4b, 0x07, 0xe5, 0xe4, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x8f, 0x13, 0x06, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x01, 0x81, 0xde, 0x77, 0x50, 0x4e, 0xfe, 0x1c, 0x0c, 0x8a, 0xe7, 0xe3, 0xd0, 0x71, 0xe8, 0x78, 0x3c, 0xfc, 0x82, 0x68, 0x61, 0x07, 0xc1, 0x06, 0xe5, 0xe0, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xaa, 0x66, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x72, 0x79, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0xc7, 0x09, 0xc1, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x65, 0x0c, 0xd1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xb1, 0xe1, 0x7a, 0xd8, 0x2b, 0x3c, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0xe1, 0x17, 0x44, 0x0b, 0x3b, 0x08, 0x36, 0x28, 0x07, 0x7f, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x52, 0x35, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x94, 0x31, 0x44, 0x07, 0xa3, 0xf7, 0xf0, 0x38, 0x74, 0x3c, 0x1e, 0x7e, 0x41, 0xb4, 0xb0, 0x83, 0x60, 0x83, 0xb2, 0xaf, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x59, 0xdc, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x3d, 0x28, 0x20, 0x19, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0xf0, 0x0b, 0xa2, 0x85, 0x1d, 0x04, 0x1b, 0x94, 0x44, 0x3e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x06, 0x7e, 0xc8, 0x06, 0xe5, 0xa2, 0xcf, 0x21, 0x55, 0x73, 0x1c, 0x3a, 0x1e, 0x0f, 0xbf, 0x20, 0x5a, 0xd8, 0x41, 0xb0, 0x41, 0xd9, 0xd7, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0x2c, 0xee, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0xd5, 0x1c, 0x0c, 0x63, 0xd8, 0xe3, 0xd0, 0x71, 0xe8, 0x78, 0x3c, 0x08, 0x36, 0x28, 0x07, 0x7f, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0x44, 0xea, 0x43, 0xaa, 0xe6, 0x38, 0x34, 0xec, 0xc2, 0x6d, 0x68, 0x25, 0x7e, 0x1c, 0xda, 0xa0, 0xd4, 0x23, 0x1a, 0x76, 0xe1, 0x36, 0x1c, 0xed, 0xc7, 0xa1, 0x0d, 0x0a, 0xc8, 0xa2, 0x41, 0xb6, 0xa1, 0xf9, 0xfa, 0xc1, 0xe0, 0x9d, 0x3c, 0x1e, 0x0f, 0xbf, 0x20, 0x5a, 0x20, 0xfc, 0x83, 0x60, 0x83, 0x72, 0xf0, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x40, 0xa4, 0x9e, 0x40, 0xd0, 0xff, 0x1f, 0x87, 0x8e, 0xc7, 0x83, 0x60, 0x71, 0x41, 0xb0, 0x20, 0x19, 0xee, 0x78, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x9d, 0xa0, 0xfc, 0x1f, 0x87, 0x06, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xbf, 0x20, 0x5a, 0xd8, 0x41, 0xb0, 0x20, 0x19, 0x08, 0xde, 0x04, 0xce, 0xfe, 0xff, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xa9, 0x9a, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0xc0, 0xfb, 0x4e, 0x07, 0xe5, 0x6f, 0xd2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x82, 0x80, 0xe8, 0x90, 0xaa, 0x39, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0xc3, 0x2f, 0x88, 0x16, 0x76, 0x10, 0x2c, 0x48, 0x06, 0x65, 0x13, 0x18, 0xfe, 0xff, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x20, 0x98, 0x40, 0xba, 0xff, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xaa, 0x66, 0xf8, 0x8d, 0xe7, 0x63, 0x40, 0xb0, 0xa6, 0xbc, 0x5e, 0x38, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0xc3, 0x2f, 0x88, 0x16, 0x76, 0x10, 0x6c, 0x50, 0xbe, 0x26, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xa4, 0x6a, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x28, 0x12, 0x94, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0xfc, 0xa0, 0xf0, 0xac, 0x39, 0xa4, 0x6a, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0xf0, 0x0b, 0xa2, 0x85, 0x1d, 0x04, 0x1b, 0x94, 0x8e, 0x4a, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x8a, 0x6c, 0xa5, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x54, 0xcd, 0xf0, 0x1b, 0xcf, 0xc7, 0x80, 0xa0, 0xc6, 0x55, 0x56, 0x78, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x87, 0xdf, 0xa0, 0xdc, 0x4c, 0x3a, 0xa4, 0x0e, 0x8e, 0xc7, 0x83, 0x64, 0x98, 0xe3, 0xf1, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0x78, 0x6d, 0x75, 0xeb, 0x86, 0x8e, 0x61, 0x1d, 0x8f, 0x87, 0x5f, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x5c, 0xd8, 0x85, 0x5d, 0xe8, 0x21, 0x55, 0x73, 0x58, 0xdf, 0x5c, 0x10, 0x6c, 0x50, 0x0e, 0x25, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x18, 0x10, 0xf8, 0xea, 0xfa, 0x2b, 0x17, 0x7e, 0xe3, 0xf9, 0x18, 0xfc, 0xff, 0x7f, 0xd8, 0x2b, 0x3c, 0x0e, 0x0d, 0x82, 0x05, 0xc1, 0x82, 0x64, 0x20, 0x4c, 0x87, 0x15, 0xda, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x25, 0x1a, 0xce, 0xc2, 0x6f, 0x3c, 0x1f, 0x24, 0xc3, 0x0c, 0xa2, 0x05, 0xf1, 0x21, 0x6b, 0x77, 0x3c, 0x1e, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0xe6, 0x20, 0xf4, 0xd6, 0x8f, 0x43, 0x83, 0x60, 0x41, 0x32, 0xdc, 0xf1, 0x7c, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0xc7, 0x80, 0xe0, 0xdd, 0xb7, 0xd5, 0xbb, 0xf0, 0x1b, 0xcf, 0xc7, 0x40, 0xf0, 0xff, 0x1f, 0x52, 0x07, 0xc7, 0xa1, 0x41, 0xb0, 0xc1, 0xc8, 0x7f, 0x58, 0x1c, 0x04, 0x0b, 0x82, 0x05, 0xc9, 0x40, 0x5b, 0xa7, 0x83, 0x20, 0xe7, 0x3f, 0x28, 0x39, 0x73, 0x06, 0xc1, 0x86, 0x18, 0x0e, 0x82, 0xc5, 0x61, 0x17, 0x6e, 0x31, 0x04, 0x87, 0xd4, 0xc1, 0x06, 0x21, 0x9f, 0x3d, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x81, 0xc6, 0x7d, 0x07, 0xc3, 0xd0, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x90, 0xe2, 0x6f, 0xd8, 0x2b, 0x3c, 0x18, 0x03, 0x0b, 0xc7, 0xa1, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0x04, 0xef, 0x60, 0xf8, 0xc7, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0xbc, 0xef, 0x74, 0x30, 0xfc, 0x63, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x3c, 0x64, 0x2b, 0x0e, 0xa9, 0x83, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0xa0, 0xaf, 0xd3, 0xc1, 0xf0, 0x8f, 0x3d, 0x28, 0x32, 0xa2, 0x8e, 0x43, 0xc3, 0x6e, 0x30, 0xea, 0x25, 0x17, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf3, 0xc3, 0x1c, 0x8c, 0x56, 0xf3, 0x41, 0xb4, 0xb0, 0x07, 0xe3, 0x0c, 0xfa, 0x90, 0x5c, 0x3a, 0x0e, 0x1d, 0xdf, 0x8e, 0xc7, 0x07, 0x25, 0x43, 0xd3, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0x78, 0x6d, 0x75, 0xe7, 0x21, 0xb5, 0x74, 0x3c, 0x5e, 0xf8, 0x05, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0xb0, 0x0b, 0x77, 0x30, 0x66, 0xe1, 0x36, 0x1c, 0xed, 0x83, 0x60, 0x71, 0xd8, 0x85, 0xdb, 0x90, 0xaf, 0x3d, 0x1c, 0xed, 0x1b, 0xb2, 0x76, 0x83, 0x60, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x58, 0x0f, 0x82, 0x0d, 0x06, 0x77, 0xcb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xc3, 0xda, 0xef, 0xa1, 0xf1, 0xfc, 0x71, 0xe8, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x41, 0x70, 0x10, 0xe4, 0xfc, 0x07, 0xa3, 0x3d, 0x78, 0x10, 0x2c, 0x08, 0x16, 0x24, 0x03, 0xe7, 0xde, 0x41, 0x90, 0xf3, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x08, 0x11, 0xff, 0x83, 0xb1, 0xe1, 0x7a, 0x1c, 0x1a, 0x76, 0x83, 0x51, 0x2f, 0xb9, 0x21, 0x75, 0x30, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x40, 0x73, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0x1d, 0x1c, 0x04, 0x29, 0xfe, 0x71, 0xe8, 0xf8, 0x76, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0x1e, 0xdc, 0xdb, 0x7d, 0x48, 0x2d, 0x1d, 0x8f, 0x87, 0x5f, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0xb0, 0x1b, 0xd6, 0xf7, 0x36, 0x24, 0xa6, 0x06, 0xc1, 0x0a, 0x82, 0x05, 0xc9, 0xc0, 0xb9, 0x72, 0x58, 0xa1, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x61, 0x3d, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x68, 0xee, 0x74, 0x48, 0x2e, 0x1d, 0x1a, 0xb5, 0x1c, 0x87, 0x0e, 0x8d, 0xe7, 0x8f, 0x43, 0x87, 0x18, 0x0e, 0x82, 0x05, 0xc1, 0xe2, 0x20, 0x58, 0x10, 0x6c, 0x30, 0xcc, 0x68, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xf2, 0xb5, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x8c, 0x9e, 0xe1, 0x43, 0x1a, 0xee, 0x38, 0x34, 0x08, 0x16, 0x04, 0x1b, 0x0c, 0x34, 0xa7, 0x83, 0xd1, 0x1e, 0x3c, 0xec, 0xc2, 0x6d, 0x88, 0xff, 0x21, 0x86, 0x0b, 0xbb, 0x20, 0xd8, 0x60, 0x14, 0xd8, 0x1e, 0x8c, 0x93, 0xea, 0x0d, 0x86, 0x8a, 0xc0, 0x86, 0xb5, 0xdf, 0x41, 0xb0, 0x20, 0x19, 0x04, 0x07, 0xe3, 0x5d, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x31, 0x73, 0x48, 0xcc, 0x1c, 0x87, 0x86, 0xdd, 0xa0, 0x5c, 0xb6, 0x5a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x20, 0x58, 0x90, 0x0c, 0xa4, 0x57, 0x0e, 0xc6, 0xbb, 0xce, 0x21, 0x7b, 0x71, 0x48, 0x1d, 0x1c, 0x92, 0x4b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x10, 0x1e, 0x94, 0x93, 0x57, 0x87, 0xe4, 0xd2, 0xf1, 0x6d, 0x83, 0x90, 0x02, 0x1f, 0x04, 0x1b, 0x8c, 0x75, 0x9b, 0x83, 0xb1, 0xe6, 0x7c, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0xde, 0x5c, 0x1c, 0x7d, 0x48, 0x2d, 0x1d, 0x8f, 0x57, 0xf8, 0x05, 0xc1, 0x06, 0xa3, 0xac, 0x6c, 0x71, 0x10, 0x2c, 0x0e, 0xbb, 0x61, 0x2d, 0x74, 0x43, 0x0c, 0x87, 0x5d, 0x10, 0x6c, 0xc8, 0xd7, 0x1e, 0x14, 0x10, 0x20, 0x0b, 0x92, 0x21, 0x83, 0x68, 0xc1, 0xf8, 0x60, 0x5c, 0x98, 0x1d, 0x8f, 0x0f, 0x47, 0xfb, 0xf1, 0xed, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x07, 0x7c, 0xb6, 0x32, 0xbb, 0xfc, 0x90, 0x5a, 0x3a, 0x1e, 0xaf, 0xf0, 0x0b, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb0, 0x38, 0xec, 0x86, 0x15, 0xd4, 0x0d, 0x06, 0x6a, 0xd4, 0xb0, 0x1b, 0xd6, 0x42, 0x37, 0xf4, 0x10, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0x82, 0x78, 0x41, 0xb0, 0x21, 0x13, 0x71, 0xd8, 0xa8, 0x3d, 0x74, 0x0c, 0x3b, 0x1e, 0x1f, 0xdf, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xc0, 0x9f, 0x73, 0x0b, 0x3b, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0x0a, 0xbf, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x76, 0x43, 0x1e, 0x6b, 0x41, 0xb4, 0x41, 0xe1, 0x59, 0x73, 0x88, 0xe6, 0x20, 0x5a, 0xe8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x84, 0x07, 0x43, 0xb3, 0xeb, 0x78, 0x7c, 0x88, 0xe6, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0xf8, 0x77, 0x65, 0x6c, 0xf0, 0x21, 0xb5, 0x74, 0x3c, 0x1e, 0x7e, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x43, 0x0c, 0x07, 0xc1, 0xe2, 0xb0, 0x1b, 0x8c, 0x4d, 0xce, 0x0d, 0xa9, 0x83, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x98, 0x1f, 0xd6, 0x7e, 0x0f, 0x3b, 0x26, 0xc7, 0xb7, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0x1c, 0xf0, 0xd9, 0xca, 0xdc, 0xe8, 0x43, 0x6a, 0xe9, 0x78, 0xbc, 0xf0, 0x0b, 0x82, 0x15, 0x7e, 0x83, 0xe1, 0xa5, 0x79, 0x7c, 0x1b, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x87, 0xad, 0x83, 0xe3, 0xf1, 0xe2, 0xf0, 0x0b, 0x82, 0x05, 0xc9, 0x80, 0xbb, 0xff, 0x7b, 0xdf, 0x21, 0xb9, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xb5, 0x5b, 0x82, 0x68, 0x1f, 0xf2, 0xb5, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0xf8, 0x73, 0x70, 0x75, 0xee, 0x21, 0xb5, 0x74, 0x3c, 0x5e, 0xf8, 0x05, 0xc1, 0x06, 0x23, 0xff, 0x61, 0x71, 0x10, 0x2c, 0x48, 0x36, 0x28, 0xea, 0x73, 0x0e, 0xc9, 0xa5, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x01, 0xd5, 0xfa, 0x7b, 0xdf, 0x21, 0xb9, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xd0, 0x43, 0xe8, 0x90, 0xb5, 0x3b, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x83, 0xa0, 0xf4, 0x1e, 0x04, 0x0b, 0x92, 0x0d, 0x0a, 0xff, 0xa0, 0x43, 0x72, 0xe9, 0xa0, 0x74, 0xef, 0x3a, 0x0e, 0x1d, 0x8f, 0x07, 0xd9, 0x1a, 0xd2, 0x40, 0xe3, 0x80, 0x9f, 0xe6, 0x46, 0xf7, 0x1e, 0x52, 0x4b, 0xc7, 0xe3, 0x85, 0x5f, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0xc5, 0x61, 0x37, 0xac, 0x85, 0x6e, 0xc8, 0xd7, 0x0e, 0xbb, 0x61, 0x05, 0x75, 0x43, 0x0c, 0x0f, 0x0a, 0xf7, 0xac, 0xe3, 0xdb, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0xf8, 0x73, 0x6c, 0x61, 0xe7, 0x21, 0xb5, 0x74, 0x3c, 0x5e, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0x0d, 0x4a, 0xbd, 0xae, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xac, 0xdd, 0xf0, 0x1b, 0xcf, 0x0f, 0xc6, 0x2c, 0xdc, 0x71, 0xe8, 0x78, 0xbc, 0xf0, 0x0b, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb0, 0x21, 0x86, 0x83, 0x60, 0x71, 0x10, 0x6c, 0x30, 0xa0, 0xc2, 0x06, 0xc1, 0xe2, 0xb0, 0x0b, 0xbb, 0x21, 0x8f, 0xb5, 0x21, 0x86, 0xc3, 0x6e, 0xd8, 0x35, 0x38, 0xa4, 0x73, 0x37, 0xc4, 0x70, 0xd8, 0x0d, 0xc6, 0x4c, 0xd7, 0xc2, 0x2e, 0xdc, 0x86, 0x18, 0x1e, 0x0c, 0xcd, 0xae, 0x0d, 0x46, 0x29, 0xe7, 0xc1, 0x48, 0xeb, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf6, 0x83, 0x31, 0xb0, 0x70, 0x50, 0xc0, 0x47, 0x1d, 0xdf, 0x8e, 0x6f, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0x38, 0xe0, 0x9b, 0xa5, 0xb9, 0x91, 0x87, 0xd4, 0xd2, 0xf1, 0x78, 0xf8, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xbf, 0x20, 0x5a, 0xd8, 0x41, 0xb0, 0x20, 0x19, 0xb0, 0xf6, 0xbd, 0xef, 0x90, 0x5c, 0x3a, 0x34, 0x6a, 0x39, 0x1e, 0x0f, 0x82, 0x0d, 0x31, 0x1c, 0x04, 0x8b, 0xc3, 0x6e, 0x30, 0x36, 0x39, 0x37, 0xa4, 0x0e, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0x41, 0xa9, 0xbc, 0x35, 0x88, 0x16, 0x76, 0x43, 0xfc, 0x0f, 0xa9, 0x83, 0xe3, 0xf1, 0xf1, 0xed, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x07, 0x7c, 0x33, 0xb6, 0x37, 0xf8, 0x90, 0x5a, 0x3a, 0x1e, 0x2f, 0xfc, 0x82, 0x60, 0xf1, 0x60, 0x8c, 0xa1, 0x2d, 0x0e, 0x82, 0x0d, 0x4a, 0xbd, 0xae, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x94, 0xc9, 0x5d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x8a, 0x43, 0x8d, 0x43, 0xbe, 0xf6, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x99, 0xe4, 0x35, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x21, 0x03, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x38, 0xd4, 0x38, 0x18, 0x17, 0x66, 0xc7, 0xa1, 0x43, 0xbe, 0xf6, 0x38, 0x74, 0x1c, 0x3a, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0xff, 0xad, 0x6e, 0x8e, 0x3e, 0xa4, 0x96, 0x8e, 0xc7, 0x2b, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x43, 0xea, 0xe0, 0x10, 0xc3, 0xe3, 0xf1, 0x82, 0x60, 0x83, 0x82, 0x5a, 0x6c, 0x71, 0x10, 0x6c, 0x50, 0x26, 0x77, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x17, 0x66, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x94, 0x49, 0x5e, 0x07, 0x25, 0xcf, 0xd8, 0x71, 0xe8, 0x78, 0x3c, 0xfc, 0x82, 0x60, 0x83, 0x51, 0x56, 0xb6, 0x38, 0x08, 0x16, 0x87, 0xdd, 0xb0, 0x16, 0xba, 0x21, 0x86, 0xc3, 0x6e, 0x50, 0x6c, 0x63, 0xad, 0x41, 0x71, 0xa8, 0x71, 0x50, 0xf6, 0x63, 0x1d, 0x94, 0xfd, 0x58, 0xc7, 0xb7, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0x1c, 0xf0, 0xe7, 0xd6, 0xd2, 0xda, 0x43, 0x6a, 0xe9, 0x78, 0xbc, 0xf0, 0x0b, 0x82, 0x0d, 0x46, 0x59, 0xd9, 0xe2, 0x20, 0x58, 0x1c, 0x76, 0xc3, 0x5a, 0xe8, 0x86, 0xa3, 0x7d, 0xd8, 0x0d, 0x8a, 0x6d, 0xac, 0x0d, 0x31, 0x3c, 0x28, 0xfb, 0xb1, 0x8e, 0x6f, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0x38, 0xe0, 0xb3, 0xa5, 0x95, 0xb9, 0x87, 0xd4, 0xd2, 0xf1, 0x78, 0x85, 0x5f, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0xb0, 0x1b, 0x3a, 0x8e, 0x2c, 0xec, 0x86, 0x5d, 0x83, 0x0d, 0xd1, 0x1c, 0x24, 0x43, 0x06, 0xd1, 0x06, 0xc3, 0x0e, 0xf7, 0x78, 0x7c, 0x38, 0xc5, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xc0, 0x97, 0x2b, 0x0b, 0x93, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0xc2, 0x2f, 0x08, 0x36, 0xc4, 0x70, 0x71, 0xd8, 0x0d, 0xeb, 0x7b, 0x1b, 0x52, 0x07, 0x83, 0x60, 0x41, 0x32, 0xa0, 0x50, 0xef, 0x3b, 0x24, 0x97, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xb2, 0x76, 0xc3, 0x6f, 0x3c, 0x3f, 0x28, 0x54, 0xce, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0x38, 0xe0, 0xeb, 0xa5, 0xb9, 0x9d, 0x87, 0xd4, 0xd2, 0xf1, 0xf8, 0x60, 0x68, 0x5a, 0x2d, 0xfc, 0x82, 0x60, 0x83, 0x51, 0x56, 0xb6, 0x38, 0xfc, 0x82, 0x68, 0x41, 0x38, 0x08, 0x36, 0x28, 0x77, 0xc3, 0x0e, 0x69, 0xb8, 0xe3, 0xf1, 0x20, 0x58, 0x1c, 0x76, 0xc3, 0x5a, 0xe8, 0x86, 0x18, 0x6e, 0x50, 0x6c, 0x63, 0x1d, 0x94, 0xfd, 0x58, 0xc7, 0xb7, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0x1c, 0xf0, 0xe9, 0xea, 0xe4, 0xdc, 0x43, 0x6a, 0xe9, 0x78, 0xbc, 0xc2, 0x2f, 0x08, 0x16, 0xe7, 0xa0, 0x10, 0x7e, 0x58, 0x1c, 0x04, 0x8b, 0xc3, 0x6e, 0x58, 0x0b, 0xdd, 0xa0, 0x38, 0xe7, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0x82, 0x78, 0x83, 0x71, 0x61, 0x36, 0x88, 0x16, 0xa4, 0x83, 0x60, 0x43, 0xbe, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x98, 0xb0, 0x9a, 0x60, 0xda, 0x8f, 0x43, 0x87, 0x7c, 0xed, 0xf1, 0xf8, 0xf8, 0x76, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0xbe, 0xdc, 0x1b, 0x1b, 0x7b, 0x48, 0x2d, 0x1d, 0x8f, 0x57, 0xf8, 0x05, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0xf0, 0x1b, 0x8c, 0xb0, 0xaa, 0x41, 0xb0, 0x38, 0xec, 0x86, 0xb5, 0xd0, 0x0d, 0xf9, 0xda, 0x83, 0xd2, 0xb3, 0xec, 0xf8, 0x76, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0xfe, 0x5d, 0x19, 0x1b, 0x79, 0x48, 0x2d, 0x1d, 0x8f, 0x17, 0x7e, 0x41, 0xb0, 0xc1, 0x28, 0x2b, 0x5b, 0x1c, 0x7e, 0x83, 0x12, 0x19, 0x6d, 0x10, 0x2c, 0x0e, 0xbb, 0x61, 0x2d, 0x74, 0x43, 0x0c, 0x07, 0xc1, 0x06, 0xc5, 0x36, 0xd6, 0xb0, 0x1b, 0x8c, 0x7a, 0xc9, 0x05, 0xc9, 0x90, 0x41, 0xb4, 0x60, 0x7c, 0x30, 0xb2, 0xac, 0x8e, 0xe7, 0x1b, 0x84, 0x00, 0xf8, 0x41, 0x91, 0xc0, 0x76, 0x7c, 0x3b, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0xbf, 0xad, 0x4e, 0xce, 0x3d, 0xa4, 0x96, 0x8e, 0xc7, 0x0b, 0xbf, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x04, 0x8b, 0xc3, 0x2e, 0xec, 0x86, 0x15, 0xd4, 0x0d, 0x31, 0x1c, 0x76, 0xc3, 0x5a, 0xe8, 0x21, 0x9d, 0xbb, 0x21, 0x86, 0x07, 0x45, 0x78, 0xd6, 0xf1, 0xed, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x07, 0xfc, 0xb9, 0xb1, 0xb0, 0xf3, 0x90, 0x5a, 0x3a, 0x1e, 0xaf, 0xf0, 0x0b, 0x82, 0x0d, 0x0a, 0xd1, 0xb4, 0xc5, 0x41, 0xb0, 0x38, 0xec, 0x86, 0xb5, 0xd0, 0x0d, 0x8a, 0x73, 0xae, 0x41, 0xb0, 0x21, 0x5f, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x4c, 0x58, 0x0d, 0xbf, 0xf1, 0xfc, 0xa0, 0xec, 0xc7, 0x3a, 0x0e, 0x1d, 0xdf, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xc0, 0x97, 0x2b, 0x2b, 0x63, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x76, 0x41, 0xb0, 0x20, 0x19, 0x08, 0xca, 0x61, 0x85, 0xf6, 0x90, 0x68, 0x5d, 0x10, 0x2c, 0x0e, 0xbb, 0x70, 0x1b, 0xb2, 0x76, 0xc3, 0x1c, 0xf2, 0xb5, 0x1b, 0x62, 0xb8, 0x21, 0x6b, 0x37, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xe3, 0x61, 0x0e, 0x59, 0xbb, 0xe3, 0xf1, 0xf1, 0xed, 0x70, 0x8a, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0xc3, 0x2f, 0x88, 0x16, 0x84, 0x87, 0x68, 0x1e, 0x8f, 0x87, 0xdd, 0xb0, 0x6b, 0xb0, 0x21, 0x86, 0x83, 0x60, 0xe1, 0x17, 0x04, 0x1b, 0x0c, 0x0c, 0xd0, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x64, 0x6b, 0x68, 0xbf, 0x7e, 0x30, 0x7a, 0xb1, 0x0e, 0x8d, 0x04, 0x0f, 0xcd, 0x5f, 0x8e, 0xc7, 0xc7, 0xa1, 0xe3, 0xdb, 0x20, 0x58, 0x1c, 0x76, 0x83, 0xa2, 0x4a, 0x61, 0x41, 0xb0, 0x20, 0xd9, 0x60, 0x88, 0x7f, 0x1c, 0xb2, 0x15, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x6f, 0x68, 0x01, 0x74, 0x48, 0x1d, 0x1c, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xa0, 0xfd, 0xd0, 0xf0, 0x6b, 0x10, 0x2d, 0xec, 0x86, 0xf8, 0x1f, 0x94, 0xd5, 0x70, 0xc7, 0xe3, 0xe3, 0xdb, 0xf1, 0x78, 0xf8, 0x05, 0xc1, 0x06, 0xa3, 0xac, 0x6c, 0x71, 0x10, 0x2c, 0x0e, 0xbb, 0x61, 0x2d, 0x74, 0x43, 0x0c, 0x87, 0xdd, 0xa0, 0xd8, 0xc6, 0xda, 0xa0, 0xec, 0xc7, 0x3a, 0x28, 0x3d, 0xcb, 0x8e, 0x6f, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0x38, 0xe0, 0xcf, 0xad, 0xa5, 0xc1, 0x87, 0xd4, 0xd2, 0xf1, 0x78, 0xe1, 0x17, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x71, 0xd8, 0x0d, 0x6b, 0xa1, 0x1b, 0x62, 0xb8, 0x21, 0x5f, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xe3, 0x83, 0x02, 0x41, 0xeb, 0x78, 0x7c, 0x7c, 0x3b, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0x5f, 0xae, 0x2c, 0x0c, 0x3e, 0xa4, 0x96, 0x8e, 0xc7, 0x83, 0x60, 0x71, 0x83, 0x70, 0xb6, 0x3f, 0x18, 0x5f, 0x66, 0x8b, 0x83, 0x60, 0xe1, 0x37, 0x8c, 0xcb, 0xf1, 0x6d, 0x71, 0x10, 0x6c, 0x88, 0xff, 0xa1, 0x51, 0xcb, 0xf1, 0xf8, 0x78, 0xbc, 0xf0, 0x0b, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb0, 0x21, 0x86, 0x83, 0x60, 0xe1, 0x17, 0x04, 0x0b, 0x92, 0x81, 0xfb, 0xeb, 0x90, 0xad, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0xfc, 0xd0, 0xf1, 0xf2, 0x38, 0x74, 0x7c, 0x1b, 0x04, 0x8b, 0x83, 0x60, 0xc3, 0xb6, 0xc5, 0x20, 0x58, 0x1c, 0x76, 0x83, 0x32, 0x0c, 0x6c, 0x41, 0xb0, 0x20, 0xd9, 0x60, 0x88, 0x7f, 0x1c, 0x8c, 0x77, 0x9d, 0x83, 0xf1, 0x61, 0x34, 0xec, 0x06, 0x63, 0xa6, 0x6b, 0x61, 0x37, 0x28, 0x7d, 0xc1, 0x16, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf7, 0x07, 0xe5, 0x58, 0xc3, 0x20, 0x5a, 0x10, 0x0f, 0x73, 0x10, 0x98, 0xd8, 0x83, 0x68, 0x61, 0x37, 0x08, 0x4c, 0xec, 0xc3, 0x5e, 0xe1, 0x21, 0xb9, 0x74, 0x30, 0xd2, 0xba, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0x41, 0xc9, 0x4b, 0x37, 0x88, 0x36, 0x28, 0xb6, 0xe9, 0x0e, 0xc9, 0xa5, 0xe3, 0xdb, 0xf1, 0xed, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x07, 0x7c, 0xb3, 0x30, 0x37, 0xf2, 0x90, 0x5a, 0x3a, 0x1e, 0x2f, 0xfc, 0x82, 0x60, 0x71, 0x0e, 0xc6, 0x0c, 0xda, 0xe2, 0xf0, 0x1b, 0x94, 0x66, 0x6f, 0x83, 0x60, 0x71, 0xd8, 0x0d, 0x6b, 0xa1, 0x1b, 0x62, 0x38, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x01, 0xd1, 0xff, 0xde, 0x77, 0x58, 0xa1, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xb2, 0xac, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x28, 0x0e, 0x35, 0x16, 0x07, 0xc1, 0x86, 0xc4, 0xcc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xaa, 0xe6, 0xa0, 0x08, 0x9b, 0x38, 0x0e, 0x1d, 0x8f, 0x8f, 0x43, 0x83, 0x60, 0x41, 0xb2, 0x41, 0x51, 0x9f, 0x73, 0xc8, 0x56, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x72, 0x50, 0x3a, 0x90, 0x0c, 0xbf, 0xf1, 0x7c, 0x83, 0x31, 0x61, 0x35, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xe3, 0x83, 0x10, 0x00, 0x3f, 0x9e, 0x1f, 0x87, 0x8e, 0x6f, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0x38, 0xe0, 0xcf, 0xbd, 0xc9, 0xd1, 0x87, 0xd4, 0xd2, 0xf1, 0x78, 0xe1, 0x17, 0x04, 0x1b, 0x8c, 0xb2, 0xb2, 0xc5, 0x41, 0xb0, 0x38, 0xec, 0x86, 0xb5, 0xd0, 0x0d, 0x89, 0xa9, 0x41, 0xb0, 0x41, 0xd9, 0x8f, 0x35, 0xec, 0x82, 0x60, 0xc3, 0xda, 0xef, 0x41, 0x11, 0x75, 0xb2, 0x1a, 0x8c, 0x09, 0xab, 0x83, 0x90, 0x02, 0x3f, 0x08, 0x01, 0xf0, 0x0d, 0x42, 0x0a, 0x7c, 0x83, 0x31, 0x61, 0x75, 0x10, 0x02, 0xe0, 0xc7, 0xb7, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0x1c, 0xf0, 0xe7, 0xd6, 0xd2, 0xc8, 0x43, 0x6a, 0xe9, 0x78, 0xbc, 0xc2, 0x2f, 0x08, 0x36, 0x18, 0xf9, 0x0f, 0x8b, 0x83, 0x60, 0x83, 0x52, 0xaf, 0x6b, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x49, 0xdb, 0x35, 0xfc, 0xc6, 0xf3, 0x0d, 0x82, 0xd2, 0x7b, 0x10, 0x6c, 0x50, 0x26, 0x79, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x30, 0x87, 0x46, 0x82, 0x87, 0xac, 0xdd, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0xfe, 0x9c, 0x5b, 0x18, 0x7c, 0x48, 0x2d, 0x1d, 0x8f, 0x37, 0x18, 0x9a, 0x56, 0xc3, 0x2f, 0x08, 0xd6, 0xa0, 0x30, 0xe2, 0xda, 0x10, 0xc3, 0x83, 0x42, 0x8c, 0x6b, 0x71, 0xf8, 0x05, 0xd1, 0x82, 0xed, 0x41, 0x50, 0x7a, 0x1f, 0x8f, 0x07, 0xc1, 0x86, 0x18, 0x0e, 0x82, 0xc5, 0x61, 0x37, 0x24, 0x02, 0x56, 0x10, 0x6c, 0x50, 0x3e, 0xc2, 0x1d, 0x1a, 0xb5, 0x1c, 0x5a, 0x00, 0x0d, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xa1, 0xe1, 0xd7, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x12, 0x46, 0xe2, 0x20, 0xe4, 0xb3, 0x8f, 0x43, 0xc3, 0x2f, 0x88, 0x16, 0x08, 0xfd, 0x41, 0x08, 0x80, 0x1f, 0x8f, 0x87, 0xdf, 0x60, 0xb0, 0x03, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x41, 0xf9, 0xc1, 0x58, 0xec, 0x1c, 0x44, 0x0b, 0xbb, 0x71, 0xe8, 0x90, 0xaa, 0x39, 0x9e, 0x1f, 0xdf, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xc0, 0x9f, 0x83, 0x4b, 0x73, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0xf0, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x76, 0xc3, 0xfa, 0xde, 0x86, 0x18, 0x0e, 0xbb, 0x61, 0xd7, 0x60, 0x43, 0x0c, 0x0f, 0x0a, 0x90, 0xb3, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0x1c, 0xf0, 0xe7, 0xdc, 0xd2, 0xe0, 0x43, 0x6a, 0xe9, 0x78, 0xbc, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0xc1, 0x50, 0xd3, 0x1c, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x08, 0xfd, 0xbe, 0xe3, 0xf1, 0x71, 0xe8, 0xd0, 0xa8, 0xe5, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x06, 0x43, 0x4d, 0xf3, 0xa0, 0x30, 0x9e, 0x3b, 0x34, 0x6a, 0x39, 0x34, 0x7f, 0x39, 0x1e, 0x1f, 0x3a, 0x5e, 0x2e, 0x08, 0x16, 0x37, 0x64, 0xc0, 0x5b, 0x1c, 0x04, 0x0b, 0xbb, 0xa1, 0xe3, 0xc8, 0xc2, 0x2e, 0xdc, 0x86, 0xdc, 0xf7, 0x21, 0x9a, 0x2b, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0x21, 0xf7, 0xbd, 0x21, 0xf7, 0x7d, 0x38, 0xc5, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x92, 0x01, 0x81, 0xdf, 0x77, 0x3c, 0x3e, 0x74, 0xd0, 0x18, 0x76, 0xe1, 0x16, 0x03, 0x1f, 0x2e, 0x8c, 0xad, 0x3d, 0x44, 0x73, 0x85, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x28, 0xa4, 0xfe, 0x36, 0x28, 0xa4, 0xfe, 0x0e, 0xa7, 0xd8, 0x82, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x64, 0x70, 0xea, 0x78, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0x65, 0xc7, 0xdf, 0x06, 0xc5, 0x00, 0xe0, 0x06, 0xc5, 0x00, 0xe0, 0x41, 0x31, 0x00, 0x78, 0x1c, 0x3a, 0x34, 0x05, 0x1a, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x36, 0x18, 0x6a, 0x9a, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x01, 0xc1, 0xdf, 0x77, 0x3c, 0x3e, 0x0e, 0x1d, 0x5a, 0x80, 0x2d, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0x18, 0xf8, 0x72, 0x6f, 0x73, 0xe5, 0x06, 0xe5, 0x3e, 0xe0, 0xe1, 0x14, 0x5b, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0x0c, 0x94, 0xaa, 0xe3, 0xf9, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0xa0, 0xfc, 0x00, 0x3c, 0x0e, 0x1d, 0x9a, 0x02, 0x1d, 0x14, 0x62, 0x80, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc9, 0x80, 0xc2, 0xbf, 0xef, 0x78, 0x7c, 0x68, 0xd4, 0x72, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x43, 0xc7, 0xcb, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x83, 0xa1, 0xa6, 0x39, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x41, 0x91, 0x1c, 0x78, 0x1c, 0x3a, 0x34, 0x6a, 0x39, 0x34, 0x7f, 0x39, 0x1e, 0x6f, 0xe8, 0x78, 0xb9, 0x82, 0x60, 0x71, 0xe6, 0x20, 0x00, 0xee, 0x17, 0x07, 0xc1, 0x0a, 0xbb, 0x41, 0xd0, 0xeb, 0x6f, 0x88, 0xe6, 0xe1, 0x14, 0x5b, 0xd8, 0x85, 0x5d, 0xe8, 0xa1, 0x91, 0xe0, 0x61, 0x7d, 0x73, 0x43, 0x23, 0xc1, 0xc3, 0x29, 0xb6, 0xc1, 0xc8, 0xe7, 0x5d, 0xd8, 0x85, 0x5d, 0xe8, 0xa1, 0x09, 0xd7, 0x61, 0x7d, 0x73, 0x43, 0x13, 0xae, 0xc3, 0x29, 0x36, 0x08, 0x36, 0x28, 0x28, 0xfc, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x13, 0xc4, 0xfb, 0x38, 0x74, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0xd8, 0x0d, 0xeb, 0x7b, 0x1b, 0x62, 0x38, 0xec, 0x86, 0xa6, 0xe7, 0x87, 0x36, 0x8f, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x0d, 0x6d, 0x67, 0x16, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x0d, 0xca, 0x78, 0xc1, 0x61, 0x37, 0x18, 0xb1, 0x58, 0x07, 0xc5, 0x0b, 0xc3, 0xa1, 0xf9, 0xcb, 0xf1, 0xf8, 0xa0, 0xf8, 0x1f, 0x5c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0xd8, 0x60, 0xa8, 0x69, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0xd4, 0xef, 0xff, 0x7d, 0xc7, 0xe3, 0xe3, 0xd0, 0xa1, 0x51, 0xcb, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x85, 0xdd, 0xd0, 0x71, 0x64, 0x0d, 0xca, 0x78, 0xc1, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x64, 0xa0, 0x7d, 0xdf, 0xf1, 0xf8, 0xd0, 0x41, 0xe3, 0xd0, 0x29, 0xf3, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x06, 0x43, 0x4d, 0x73, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x7b, 0x50, 0x0c, 0x00, 0x1e, 0x87, 0x0e, 0x8d, 0x5a, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x83, 0x60, 0x71, 0xc3, 0x29, 0x36, 0x07, 0xc5, 0xb4, 0xe0, 0xe2, 0x20, 0x58, 0x85, 0x5d, 0xb8, 0x0d, 0x31, 0x3c, 0x18, 0x3f, 0x5d, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x6d, 0x38, 0xda, 0x0f, 0xc6, 0x4f, 0xd7, 0xa1, 0xcd, 0xe3, 0xb0, 0x0b, 0xbb, 0xd0, 0x83, 0xa1, 0xd9, 0x75, 0x58, 0xdf, 0x3c, 0x28, 0xe8, 0x51, 0x36, 0x28, 0x36, 0x06, 0x07, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x92, 0x01, 0x89, 0xff, 0x7d, 0xc7, 0xe3, 0x43, 0x0b, 0xb0, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x86, 0x8e, 0x97, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0x82, 0x0d, 0xca, 0x34, 0xc0, 0x43, 0xa3, 0x96, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x86, 0x8e, 0x97, 0x83, 0x60, 0x83, 0x01, 0xb7, 0xbb, 0x38, 0x08, 0x16, 0x76, 0x43, 0xc7, 0x91, 0x85, 0x5d, 0xb8, 0xc5, 0xe0, 0xeb, 0xc4, 0x43, 0x34, 0x57, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0xa2, 0x17, 0x71, 0x83, 0xa2, 0x17, 0xf1, 0x70, 0x8a, 0x1d, 0x14, 0xa4, 0x84, 0xc3, 0x2e, 0xdc, 0x62, 0xf0, 0x75, 0xe3, 0x21, 0x9a, 0x2b, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0x41, 0x09, 0x93, 0xb8, 0x41, 0x09, 0x93, 0x78, 0x38, 0xc5, 0x0e, 0x0a, 0x52, 0xc2, 0x61, 0x17, 0x6e, 0xf1, 0x50, 0xf3, 0x0f, 0xd1, 0x5c, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x0a, 0xd2, 0xc4, 0x0d, 0x0a, 0xd2, 0xc4, 0xc3, 0x29, 0x76, 0x50, 0x90, 0x12, 0x0e, 0xbb, 0x70, 0x8b, 0xc1, 0xd7, 0xa5, 0x87, 0x68, 0xae, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x65, 0x85, 0xe2, 0x06, 0x65, 0x85, 0xe2, 0xe1, 0x14, 0x3b, 0x28, 0x48, 0x09, 0x87, 0x5d, 0xb8, 0xc5, 0xe0, 0xeb, 0xf0, 0x43, 0x34, 0x57, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x22, 0x51, 0x71, 0x83, 0x22, 0x51, 0xf1, 0x70, 0x8a, 0x1d, 0x14, 0xa4, 0x84, 0xc3, 0x2e, 0xdc, 0x62, 0xf0, 0x75, 0xf6, 0x21, 0x9a, 0x2b, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0x41, 0xc9, 0xaf, 0xb8, 0x41, 0xc9, 0xaf, 0x78, 0x38, 0xc5, 0x0e, 0x0a, 0x52, 0xc2, 0x61, 0x17, 0x6e, 0x31, 0xf8, 0xba, 0xfb, 0x10, 0xcd, 0x15, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xa0, 0x80, 0x5b, 0xdc, 0xa0, 0x80, 0x5b, 0x3c, 0x9c, 0x62, 0x07, 0x05, 0x29, 0xe1, 0xb0, 0x0b, 0xb7, 0x18, 0xfc, 0x9c, 0x78, 0x88, 0xe6, 0x0a, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0x50, 0x8e, 0x2f, 0x6e, 0x50, 0x8e, 0x2f, 0x1e, 0x4e, 0xb1, 0x83, 0x82, 0x94, 0x70, 0xd8, 0x85, 0x5b, 0x0c, 0x7e, 0x6e, 0x3c, 0x44, 0x73, 0x85, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x28, 0xae, 0x18, 0x37, 0x28, 0xae, 0x18, 0x0f, 0xa7, 0xd8, 0x41, 0x41, 0x4a, 0x38, 0xec, 0xc2, 0x2d, 0x06, 0x3f, 0x47, 0x1e, 0xa2, 0xb9, 0xc2, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x94, 0xca, 0x8c, 0x1b, 0x94, 0xca, 0x8c, 0x87, 0x53, 0xec, 0xa0, 0x20, 0x25, 0x1c, 0x76, 0xe1, 0x16, 0x83, 0x9f, 0x4b, 0x0f, 0xd1, 0x5c, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x0a, 0x9f, 0xc6, 0x0d, 0x0a, 0x9f, 0xc6, 0xc3, 0x29, 0x76, 0x50, 0x90, 0x12, 0x0e, 0xbb, 0x70, 0x8b, 0xc1, 0xcf, 0xe1, 0x87, 0x68, 0xae, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x65, 0x6c, 0xe3, 0x06, 0x65, 0x6c, 0xe3, 0xe1, 0x14, 0x3b, 0x28, 0x48, 0x09, 0x87, 0x5d, 0xb8, 0xc5, 0xe0, 0xe7, 0xec, 0x43, 0x34, 0x57, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0xa2, 0xc4, 0x71, 0x83, 0xa2, 0xc4, 0xf1, 0x70, 0x8a, 0x1d, 0x14, 0xa4, 0x84, 0xc3, 0x2e, 0xdc, 0x62, 0xf0, 0x73, 0xf7, 0x21, 0x9a, 0x2b, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0x41, 0x89, 0xe9, 0xb8, 0x41, 0x89, 0xe9, 0x78, 0x38, 0xc5, 0x0e, 0x0a, 0x52, 0xc2, 0x61, 0x17, 0x6e, 0x31, 0x78, 0xb2, 0xf0, 0x10, 0xcd, 0x15, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xa0, 0x60, 0x78, 0xdc, 0xa0, 0x60, 0x78, 0x3c, 0x9c, 0x62, 0x07, 0x05, 0x29, 0xe1, 0xb0, 0x0b, 0xb7, 0x18, 0x3c, 0x99, 0x7c, 0x88, 0xe6, 0x0a, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0x50, 0xfe, 0x3d, 0x6e, 0x50, 0xfe, 0x3d, 0x1e, 0x4e, 0xb1, 0x83, 0x82, 0x94, 0x70, 0xd8, 0x0d, 0xc6, 0xea, 0xee, 0x1a, 0x8c, 0xf0, 0xdd, 0x83, 0x21, 0xeb, 0x3b, 0xec, 0xc2, 0x6d, 0x30, 0xa4, 0x7e, 0x0f, 0xd1, 0xdc, 0x60, 0x98, 0xfc, 0x0e, 0xbb, 0x70, 0x8b, 0xc1, 0xa7, 0x99, 0x87, 0x68, 0xae, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x65, 0x16, 0xe4, 0x06, 0x65, 0x16, 0xe4, 0xe1, 0x14, 0x3b, 0x28, 0x48, 0x09, 0x87, 0x5d, 0xb8, 0xc5, 0xe0, 0xd3, 0xe6, 0x43, 0x34, 0x57, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0xa2, 0x19, 0x72, 0x83, 0xa2, 0x19, 0xf2, 0x70, 0x8a, 0x1d, 0x14, 0xa4, 0x84, 0xc3, 0x2e, 0xdc, 0x62, 0x38, 0x7d, 0x88, 0xe6, 0x0a, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0x50, 0x02, 0x45, 0x6e, 0x50, 0x02, 0x45, 0x1e, 0x4e, 0xb1, 0x83, 0x82, 0x94, 0x70, 0xd8, 0x85, 0x5b, 0x0c, 0x9e, 0x2e, 0x3c, 0x44, 0x73, 0x85, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x28, 0x5e, 0x23, 0x37, 0x28, 0x5e, 0x23, 0x0f, 0xa7, 0xd8, 0x41, 0x41, 0x4a, 0x38, 0xec, 0xc2, 0x2d, 0x86, 0xc3, 0x87, 0x68, 0xae, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0xa5, 0x88, 0xe4, 0x06, 0xa5, 0x88, 0xe4, 0xe1, 0x14, 0x3b, 0x28, 0x48, 0x09, 0x87, 0x5d, 0xb8, 0xc5, 0xf0, 0xf8, 0x10, 0xcd, 0x15, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xa0, 0x88, 0x94, 0xdc, 0xa0, 0x88, 0x94, 0x3c, 0x9c, 0x62, 0x07, 0x05, 0x29, 0xe1, 0xb0, 0x0b, 0xb7, 0x18, 0xbc, 0xdc, 0x7c, 0x88, 0xe6, 0x0a, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0x50, 0xfe, 0x4b, 0x6e, 0x50, 0xfe, 0x4b, 0x1e, 0x4e, 0xb1, 0x83, 0x82, 0x94, 0x70, 0xd8, 0x85, 0x5b, 0x0c, 0x5e, 0x8e, 0x3c, 0x44, 0x73, 0x85, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x28, 0xe6, 0x26, 0x37, 0x28, 0xe6, 0x26, 0x0f, 0xa7, 0xd8, 0x41, 0x41, 0x4a, 0x38, 0xec, 0xc2, 0x2d, 0x06, 0x2f, 0x87, 0x1e, 0xa2, 0xb9, 0xc2, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x94, 0xe6, 0x93, 0x1b, 0x94, 0xe6, 0x93, 0x87, 0x53, 0xec, 0xa0, 0x20, 0x25, 0x5c, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x31, 0x78, 0xb9, 0x78, 0x83, 0x82, 0x8c, 0xf2, 0x70, 0x8a, 0x1d, 0x14, 0xa4, 0x84, 0x87, 0x4e, 0x99, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x83, 0x12, 0xbe, 0x6f, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0x32, 0x50, 0xfe, 0x0e, 0xc9, 0xa5, 0x43, 0xa3, 0x96, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x60, 0x41, 0x32, 0xb0, 0xd7, 0x77, 0x48, 0x2e, 0x1d, 0x0c, 0xca, 0xab, 0x43, 0xa3, 0x96, 0xe3, 0xf1, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x21, 0x86, 0x83, 0x60, 0x41, 0xb0, 0xc1, 0xf0, 0xa2, 0x1a, 0x24, 0x03, 0xb1, 0x3b, 0x18, 0x83, 0x91, 0x07, 0xc3, 0x2c, 0xfc, 0x78, 0xbc, 0x00, 0x5e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x2d, 0x6c, 0x6f, 0x67, 0x69, 0xe3, 0x32, 0x80, 0xb7, 0xcc, 0x9a, 0x0e, 0x48, 0x5c, 0x5d, 0x59, 0x5d, 0x19, 0x08, 0xdb, 0xdb, 0x59, 0xda, 0xd8, 0x02, 0x4f, 0xf7, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0a, 0xf8, 0x66, 0x75, 0x6e, 0x6b, 0xf0, 0x74, 0x6f, 0x03, 0xf8, 0xc5, 0xd5, 0x95, 0xd5, 0x95, 0x81, 0x94, 0xb9, 0x9d, 0xa5, 0xb9, 0x95, 0x0d, 0xf8, 0x74, 0x73, 0x62, 0xf2, 0x1a, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0x34, 0x28, 0x71, 0x65, 0x75, 0xa9, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x6e, 0x10, 0xfa, 0x25, 0x1b, 0x04, 0x8e, 0x5e, 0x03, 0xbe, 0x98, 0x1c, 0x1c, 0x3d, 0xcb, 0x2c, 0xe0, 0xd1, 0xbd, 0xc1, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xe5, 0xe5, 0x65, 0x03, 0x78, 0xc2, 0xc9, 0xbd, 0x91, 0xd5, 0x8d, 0x95, 0xcd, 0x81, 0xa0, 0x95, 0x85, 0x91, 0x6d, 0xf8, 0x0a, 0x67, 0xc3, 0x5f, 0x34, 0x6b, 0x10, 0xfa, 0x25, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xe0, 0x40, 0x68, 0x0d, 0x02, 0xe8, 0x6c, 0xc0, 0xbf, 0xa3, 0x3b, 0x93, 0x17, 0xf0, 0xef, 0xe8, 0xe8, 0xe6, 0x35, 0x7c, 0x51, 0x73, 0x98, 0xb8, 0xc3, 0x83, 0x3b, 0x1b, 0xde, 0xd6, 0x19, 0xdc, 0x3d, 0x3c, 0xb8, 0xd3, 0x80, 0x7f, 0x47, 0x37, 0x77, 0x6e, 0x78, 0x70, 0x67, 0x01, 0x5f, 0xac, 0x6e, 0x8e, 0x3e, 0x08, 0xdc, 0x87, 0x0d, 0x4a, 0x78, 0xcc, 0x05, 0x97, 0x0f, 0x0f, 0xee, 0xac, 0xe1, 0x17, 0x97, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x4a, 0x66, 0xcc, 0x36, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x3c, 0xb8, 0xb3, 0xe1, 0x6d, 0x9d, 0x83, 0x22, 0x29, 0xb3, 0x15, 0xf0, 0xc4, 0xc2, 0xd8, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0xfa, 0x65, 0xc3, 0xd3, 0x3a, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x1e, 0xdc, 0xd9, 0xa0, 0xa0, 0xc8, 0x1c, 0xf0, 0xef, 0xe8, 0xc8, 0xe8, 0x35, 0xfc, 0x4a, 0xb6, 0x06, 0xc5, 0x24, 0xe6, 0x06, 0x21, 0xf8, 0x30, 0x38, 0x7b, 0x78, 0x70, 0x67, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0xc6, 0x82, 0x58, 0x1b, 0x94, 0xcc, 0x98, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0xf7, 0xa0, 0xf4, 0xd3, 0xac, 0x35, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x3c, 0xb8, 0xb3, 0xe1, 0x92, 0xda, 0xa0, 0xf4, 0xd3, 0x5c, 0xc1, 0xe5, 0x36, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x3c, 0xb8, 0xb3, 0xe1, 0x92, 0xda, 0xf0, 0xe0, 0xce, 0x1a, 0x0c, 0x52, 0xa9, 0x0d, 0x6f, 0xeb, 0x0c, 0x2e, 0x1f, 0x94, 0x7e, 0x9a, 0x55, 0x1b, 0x14, 0x3b, 0x9a, 0x6b, 0xf8, 0x95, 0x6c, 0x0d, 0x8a, 0x49, 0xcc, 0x0d, 0x42, 0xf0, 0xe1, 0xa0, 0x48, 0xca, 0x5c, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0xa2, 0x9a, 0x1b, 0x94, 0xcc, 0x98, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0xf7, 0xa0, 0x48, 0xca, 0xac, 0x35, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x3c, 0xb8, 0xb3, 0xe1, 0x92, 0xda, 0xa0, 0x48, 0xca, 0x5c, 0x83, 0x41, 0x2a, 0xb5, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0xe1, 0xc1, 0x9d, 0x0d, 0x97, 0xd4, 0x86, 0x07, 0x77, 0xd6, 0xa0, 0xe0, 0xd9, 0xdc, 0xf0, 0xb6, 0xce, 0xe0, 0xec, 0x41, 0x91, 0x94, 0x59, 0x75, 0x78, 0x5a, 0x67, 0x35, 0x18, 0x69, 0xee, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0x23, 0xcd, 0xbd, 0x01, 0xbc, 0xd3, 0xdc, 0xe6, 0xca, 0xe4, 0xe8, 0x40, 0xdc, 0xca, 0xee, 0x40, 0xe8, 0xc2, 0xd2, 0xd8, 0x06, 0x7c, 0x31, 0x39, 0x3a, 0x79, 0x0d, 0x7f, 0x2e, 0x0d, 0x2e, 0x1e, 0x84, 0xe9, 0xd8, 0x86, 0xaf, 0x70, 0x36, 0x7c, 0xfd, 0xb2, 0xe1, 0x69, 0x9d, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x0f, 0xee, 0xac, 0xe1, 0x17, 0x97, 0x0d, 0xef, 0x05, 0x6d, 0x50, 0x50, 0x64, 0x6e, 0x50, 0x50, 0x64, 0xb6, 0xe1, 0x92, 0x5a, 0x83, 0x62, 0x3a, 0xb3, 0x35, 0x28, 0xfd, 0x34, 0x37, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x3c, 0xb8, 0xb3, 0xe1, 0x6d, 0x9d, 0x83, 0xd2, 0x4f, 0xb3, 0x0e, 0xa7, 0xd8, 0x1a, 0x94, 0xa2, 0x03, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xa5, 0xe8, 0x40, 0x03, 0xf8, 0x87, 0x91, 0x91, 0xcd, 0x81, 0xb0, 0xa5, 0xcd, 0xd1, 0x81, 0xd0, 0xbd, 0x81, 0x94, 0xb9, 0x91, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x2e, 0x6e, 0xf8, 0x8b, 0x66, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0x90, 0x32, 0x39, 0x28, 0xd6, 0x30, 0x0f, 0x0a, 0x8a, 0xcc, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0xfa, 0x65, 0xc3, 0x7b, 0x41, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x3e, 0xd0, 0xc2, 0xc6, 0xd6, 0x40, 0xcc, 0xde, 0xe4, 0x40, 0xd4, 0xca, 0xe8, 0x40, 0xda, 0xc2, 0xe8, 0xc6, 0xd0, 0x0e, 0x0f, 0xde, 0x6c, 0x50, 0xc2, 0x63, 0x6e, 0x78, 0x70, 0x67, 0xc3, 0x7b, 0x41, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x06, 0x45, 0x69, 0xe6, 0x1a, 0x3e, 0x0f, 0xda, 0xf0, 0x8b, 0xcb, 0x06, 0x25, 0x33, 0xe6, 0x06, 0x45, 0xad, 0x67, 0xad, 0x80, 0xe7, 0x16, 0x06, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x94, 0x4c, 0xa1, 0x0d, 0xe0, 0x27, 0x57, 0xd6, 0xf6, 0x66, 0x57, 0x36, 0x07, 0x22, 0xf7, 0xf6, 0x46, 0xb7, 0x41, 0xc1, 0x87, 0xb9, 0x41, 0x21, 0x89, 0xb9, 0xe1, 0x83, 0x9c, 0x35, 0xfc, 0x9b, 0xb3, 0x41, 0x41, 0x91, 0x79, 0x50, 0x6a, 0x7b, 0x6e, 0x50, 0xca, 0x66, 0x6e, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x2e, 0x6e, 0xb8, 0xa4, 0xd6, 0xa0, 0x44, 0x68, 0xe9, 0xa0, 0x60, 0xf6, 0xdc, 0x70, 0x49, 0x6d, 0x50, 0x4c, 0x7a, 0xae, 0x41, 0xa1, 0x8d, 0xb9, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0xc3, 0xe7, 0x41, 0x6b, 0x50, 0xfa, 0x69, 0x6e, 0x78, 0x5b, 0x67, 0xf0, 0xf8, 0xf0, 0x79, 0x50, 0x87, 0x53, 0xac, 0x05, 0x3c, 0xb7, 0x34, 0x78, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xa0, 0xf0, 0x18, 0xed, 0xa0, 0xcc, 0x0c, 0xdd, 0xf0, 0x15, 0xce, 0x86, 0xaf, 0x5f, 0x36, 0x3c, 0xad, 0xb3, 0x41, 0x09, 0x8f, 0xb9, 0xe1, 0xc1, 0x9d, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x4a, 0x3f, 0xcd, 0x0d, 0x4a, 0xd9, 0xcc, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x8a, 0xa4, 0xcc, 0x0d, 0x4a, 0x6d, 0xcf, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0x51, 0xcd, 0x0d, 0xca, 0x68, 0xcd, 0x83, 0x12, 0x87, 0x73, 0x0d, 0x97, 0xd4, 0x06, 0xa5, 0x9f, 0xe6, 0x1a, 0x14, 0x3c, 0x9b, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x94, 0x7e, 0x9a, 0x07, 0x05, 0xe5, 0x66, 0x6d, 0xb8, 0xa4, 0x36, 0x28, 0x92, 0x32, 0xd7, 0x60, 0x90, 0x4a, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0x50, 0x24, 0x65, 0x1e, 0x14, 0x02, 0x9d, 0x35, 0x0b, 0x78, 0x64, 0x65, 0xf0, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0xa9, 0x54, 0xda, 0x00, 0x7c, 0xb4, 0x85, 0xe1, 0x81, 0x90, 0x95, 0xc1, 0xd1, 0xa1, 0x81, 0xbc, 0x99, 0x81, 0xc4, 0xd5, 0x95, 0xd5, 0x95, 0x6d, 0xf8, 0x0a, 0x67, 0xc3, 0x5f, 0x34, 0x1b, 0x7e, 0xa8, 0xd9, 0xa0, 0x84, 0xc7, 0xdc, 0xf0, 0xe0, 0xce, 0x86, 0x07, 0x6f, 0x36, 0x7c, 0x1c, 0xb5, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0x61, 0x65, 0xa8, 0x0d, 0x8a, 0x5a, 0xcf, 0x0d, 0x8a, 0xc6, 0xcc, 0x56, 0x83, 0x22, 0x92, 0x60, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xa0, 0x88, 0x24, 0x68, 0x00, 0x3e, 0xd2, 0xdc, 0xe6, 0xca, 0xe4, 0xe8, 0x40, 0xd8, 0xd2, 0xe6, 0xe8, 0x40, 0xe8, 0xde, 0x40, 0xe2, 0xea, 0xca, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x17, 0x0f, 0x0a, 0xe6, 0xcf, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0xfa, 0x65, 0xc3, 0xd3, 0x3a, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x3e, 0x0f, 0xda, 0xf0, 0xb4, 0xce, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x86, 0xcf, 0x83, 0x36, 0xbc, 0xad, 0x33, 0x38, 0x7d, 0xf8, 0x3c, 0x68, 0x0d, 0x0f, 0xee, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0x30, 0xd2, 0xdc, 0x5b, 0xc3, 0xdb, 0x3a, 0x83, 0xa7, 0x87, 0xcf, 0x83, 0xea, 0x70, 0x8a, 0xad, 0x41, 0x89, 0xd0, 0xb2, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x50, 0x22, 0xb4, 0x34, 0x80, 0x2f, 0x5a, 0x59, 0x18, 0x59, 0x8b, 0x5c, 0xd9, 0x1c, 0x1d, 0x08, 0x5c, 0x58, 0x9a, 0xdc, 0x86, 0xaf, 0x70, 0x36, 0x7c, 0xfd, 0xb2, 0x06, 0x05, 0x1f, 0xe6, 0x06, 0x85, 0x24, 0xe6, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xf0, 0x41, 0xc9, 0x8c, 0xb9, 0x86, 0xcf, 0x5d, 0x06, 0x8f, 0x07, 0xfc, 0x35, 0x3a, 0x3a, 0x79, 0x83, 0xd0, 0x2f, 0xd9, 0x20, 0x70, 0xf4, 0xd6, 0x20, 0x80, 0xce, 0x0e, 0x4a, 0x66, 0xcc, 0xda, 0xa0, 0x84, 0xc7, 0xdc, 0xf0, 0xe0, 0xce, 0x06, 0xe1, 0xa9, 0xba, 0x41, 0x09, 0x8f, 0xb9, 0x41, 0x91, 0x94, 0xb9, 0x86, 0x5f, 0x5c, 0x36, 0x28, 0x99, 0x31, 0x37, 0x28, 0xb5, 0x3d, 0xdb, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0x5c, 0x3c, 0x28, 0x1a, 0x33, 0x07, 0xfc, 0x31, 0x36, 0x34, 0x78, 0x83, 0x52, 0x57, 0x74, 0xc3, 0x07, 0x39, 0x6b, 0xf8, 0x95, 0x6c, 0x0d, 0x8a, 0x49, 0xcc, 0x0d, 0x42, 0xf0, 0xe1, 0xa0, 0xd8, 0x17, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0xa2, 0x9a, 0x1b, 0x94, 0xcc, 0x98, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0xf7, 0xa0, 0xd8, 0x17, 0xad, 0x35, 0x5c, 0x52, 0x1b, 0x1e, 0xdc, 0x59, 0x83, 0x82, 0x67, 0xf3, 0xa0, 0x6c, 0x17, 0x6d, 0xc3, 0x25, 0xb5, 0xe1, 0xc1, 0x9d, 0x35, 0x18, 0x76, 0xbb, 0x07, 0x65, 0xc9, 0xea, 0x1a, 0x0c, 0x52, 0xa9, 0x0d, 0x97, 0xd4, 0x86, 0x07, 0x77, 0xd6, 0xa0, 0xe0, 0xd9, 0xdc, 0xf0, 0xb6, 0xce, 0xe0, 0xec, 0x41, 0xb1, 0x2f, 0xda, 0x1a, 0x14, 0x3c, 0x9b, 0x1b, 0xde, 0xd6, 0x19, 0x5c, 0x3e, 0x28, 0xf6, 0x45, 0x5b, 0x0d, 0x8a, 0xd4, 0x85, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x22, 0x75, 0xa1, 0x01, 0x78, 0x18, 0x43, 0x2b, 0x1b, 0x5b, 0x03, 0x19, 0x7b, 0x93, 0x93, 0x2b, 0x1b, 0xa3, 0x73, 0x2b, 0x9b, 0x9b, 0xdb, 0xf0, 0x15, 0xce, 0x86, 0xbf, 0x68, 0x36, 0x7c, 0xb0, 0xba, 0x41, 0x09, 0x8f, 0xb9, 0xe1, 0xc1, 0x9d, 0x35, 0xfc, 0x08, 0x73, 0x10, 0xe0, 0x41, 0x1b, 0x1e, 0x61, 0x5d, 0x83, 0x12, 0x1e, 0x73, 0x83, 0xd2, 0x4f, 0x73, 0x83, 0x22, 0xa7, 0x75, 0xc3, 0x23, 0xac, 0x1b, 0x14, 0x94, 0x9a, 0x07, 0xe5, 0x4d, 0xe8, 0x1a, 0x94, 0xf0, 0x98, 0x1b, 0x14, 0x49, 0x99, 0x1b, 0x14, 0x39, 0xad, 0x1b, 0x1e, 0x61, 0xdd, 0xa0, 0x58, 0xe0, 0x3c, 0x28, 0x08, 0x4d, 0x3b, 0x9c, 0x62, 0x6b, 0x30, 0x32, 0x97, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x46, 0xe6, 0x52, 0x03, 0xf0, 0x13, 0x06, 0x07, 0xc7, 0x96, 0x07, 0x72, 0x16, 0x46, 0x57, 0x06, 0x42, 0xf7, 0x06, 0x62, 0x17, 0xc6, 0x56, 0x57, 0x36, 0xb7, 0x41, 0xa1, 0xdc, 0xb9, 0x86, 0x3f, 0x97, 0x06, 0x17, 0x37, 0xfc, 0x3b, 0xbf, 0x06, 0x41, 0x6a, 0x55, 0x1b, 0xbe, 0xc2, 0xd9, 0xa0, 0x84, 0xc7, 0xdc, 0xf0, 0xe0, 0xce, 0x86, 0xa7, 0x75, 0x36, 0xfc, 0xe2, 0xb2, 0x86, 0xcf, 0x5d, 0x06, 0x77, 0x37, 0xbc, 0xdb, 0xb3, 0xe1, 0xbd, 0xa0, 0x83, 0x82, 0x2f, 0x73, 0x0d, 0x9f, 0xbb, 0x0c, 0xce, 0x1e, 0x14, 0xb5, 0x9e, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0xf9, 0xa0, 0x68, 0xcc, 0xec, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0xb6, 0x02, 0xf8, 0x8a, 0xa5, 0xd1, 0xb5, 0x84, 0xc9, 0xa5, 0xd1, 0xa1, 0xb5, 0x95, 0xd1, 0xa5, 0x8d, 0xcb, 0x00, 0x7c, 0xc8, 0x8c, 0xe9, 0x80, 0x88, 0xa5, 0xd1, 0x81, 0x84, 0xc9, 0xa5, 0xd1, 0xa1, 0xb5, 0x95, 0xd1, 0xa5, 0x8d, 0xad, 0xc1, 0xa8, 0x19, 0xd8, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x18, 0x35, 0x03, 0x0d, 0xf0, 0x8f, 0xd5, 0xd1, 0x81, 0xb4, 0x85, 0xb9, 0xe5, 0x6d, 0x78, 0x7c, 0x64, 0x83, 0x51, 0x33, 0xb0, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x0f, 0x37, 0xfc, 0x3b, 0xbf, 0x86, 0x2f, 0xd9, 0x6b, 0x0d, 0x7f, 0x2e, 0x0d, 0x3e, 0x1e, 0x7e, 0xa8, 0x69, 0xc0, 0xa7, 0x9b, 0x33, 0x9b, 0xd7, 0xf0, 0x7d, 0xfb, 0xe0, 0xe4, 0x80, 0x3f, 0x07, 0x57, 0x36, 0x6e, 0xf8, 0xa5, 0xfe, 0x20, 0x4c, 0xc7, 0x16, 0xf0, 0xef, 0xe8, 0xd6, 0xe8, 0x0d, 0x0f, 0xee, 0x6c, 0x78, 0x5a, 0x67, 0xc3, 0x2f, 0x2e, 0x1b, 0x9e, 0xd6, 0xd9, 0xf0, 0xe0, 0x4d, 0x03, 0xfe, 0xdc, 0xd9, 0x98, 0xbb, 0xc1, 0x58, 0x15, 0x58, 0xc3, 0x25, 0xb5, 0xc1, 0x68, 0x16, 0x68, 0x36, 0x28, 0x94, 0x3b, 0x37, 0x28, 0xc0, 0x3b, 0x37, 0x7c, 0xfd, 0xb2, 0x86, 0x5f, 0x5c, 0x36, 0xbc, 0x17, 0xb4, 0x86, 0xb7, 0x75, 0x06, 0x27, 0x6b, 0xc0, 0xbf, 0xa3, 0x83, 0xa3, 0x37, 0x7c, 0x1e, 0xb4, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0x8c, 0x53, 0xb4, 0x86, 0xb7, 0x75, 0x36, 0x7c, 0x47, 0x7f, 0x50, 0xe4, 0xcb, 0xae, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0xad, 0xb3, 0xe1, 0xad, 0xfb, 0x83, 0x22, 0x5f, 0xf6, 0xf0, 0x16, 0xda, 0xe1, 0x17, 0xa1, 0x0d, 0xca, 0xb1, 0xd9, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x4f, 0xa0, 0x83, 0x82, 0x73, 0xb6, 0x01, 0x9f, 0x6e, 0x6e, 0x8d, 0x1e, 0xdc, 0xdc, 0xa0, 0xc8, 0x97, 0x5d, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0xc3, 0xe7, 0x41, 0x1b, 0x2e, 0xa9, 0x35, 0x0e, 0x1d, 0x3e, 0x0f, 0xaa, 0x0d, 0x8a, 0x0e, 0xda, 0xc1, 0xcf, 0x0d, 0x8a, 0x7c, 0xd9, 0x35, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x7c, 0x1e, 0xb4, 0xe1, 0x92, 0x5a, 0xe3, 0xf9, 0xe1, 0xf3, 0xa0, 0xda, 0xf0, 0x8b, 0xcb, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0xdb, 0x3a, 0x07, 0x01, 0x1e, 0xb4, 0x86, 0xb7, 0x75, 0x06, 0x3f, 0xeb, 0xa0, 0x54, 0x97, 0x5d, 0x0d, 0xc6, 0x56, 0xc1, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0xd8, 0x2a, 0x68, 0x00, 0x1e, 0xc2, 0xe6, 0xe6, 0xca, 0xda, 0xc4, 0xd8, 0xca, 0x40, 0xec, 0xc2, 0xe4, 0xd2, 0xc2, 0xc4, 0xd8, 0xca, 0x36, 0x3c, 0x3e, 0xb2, 0xc1, 0xd8, 0x2a, 0xd8, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x83, 0x87, 0x87, 0x6f, 0xe7, 0xd7, 0xf0, 0xe7, 0xd2, 0xe0, 0xe2, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0x48, 0x99, 0x6c, 0xf8, 0xa1, 0xa6, 0x36, 0xfc, 0x45, 0xb3, 0xe1, 0x87, 0x9a, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x9f, 0x07, 0x6d, 0x78, 0xf0, 0x66, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x91, 0x28, 0xd1, 0x86, 0xa7, 0x75, 0x36, 0x28, 0x7e, 0x50, 0xd7, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0x36, 0x28, 0xa7, 0x4f, 0x6b, 0xd6, 0x60, 0x60, 0x1d, 0x6c, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x0c, 0xac, 0x83, 0x06, 0xf0, 0x22, 0x4b, 0x9b, 0x0b, 0x9b, 0x9b, 0x2b, 0x6b, 0x13, 0x63, 0x2b, 0xdb, 0xf0, 0xf8, 0xc8, 0x06, 0x03, 0xeb, 0x60, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x72, 0x29, 0xf6, 0xf0, 0x3a, 0xd3, 0x86, 0xbf, 0x68, 0x36, 0x28, 0xe7, 0x6c, 0x37, 0x7c, 0x90, 0xb3, 0xe1, 0x35, 0xbd, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0xc0, 0xf4, 0xe8, 0xf0, 0xfb, 0xd9, 0x1a, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x3e, 0x0f, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0xc0, 0xb9, 0x74, 0xf8, 0xfd, 0xac, 0x66, 0x0d, 0x46, 0x02, 0xc3, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0x48, 0x60, 0x68, 0x00, 0x6f, 0xb3, 0x34, 0x36, 0x36, 0x10, 0x31, 0xb6, 0xb7, 0xb8, 0x39, 0x3a, 0xb9, 0xb2, 0xb0, 0xb6, 0x0d, 0x8f, 0x8f, 0x6c, 0x30, 0x12, 0x18, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0x36, 0x28, 0x76, 0x6c, 0xd7, 0xf0, 0xe7, 0xd2, 0xe0, 0xe2, 0xe1, 0x01, 0xfc, 0x83, 0xe2, 0x2f, 0x76, 0x83, 0xd2, 0xde, 0x72, 0x0d, 0x7f, 0x2e, 0x0d, 0xee, 0x6e, 0xf8, 0xa2, 0x66, 0x43, 0x1d, 0x3f, 0xd4, 0xfc, 0x01, 0x9f, 0x6e, 0x8e, 0x8c, 0xde, 0xf0, 0x0f, 0xcf, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xc8, 0xc4, 0xdd, 0xf0, 0xb4, 0xce, 0xe1, 0x17, 0xa1, 0x0d, 0x0a, 0xd2, 0xd8, 0xc1, 0xc9, 0x0d, 0x4f, 0xef, 0x6c, 0xf8, 0x0a, 0x67, 0xc3, 0x5f, 0x34, 0x1b, 0x7e, 0xa8, 0xd9, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0x59, 0xc3, 0xdb, 0x3a, 0x07, 0xc3, 0x6e, 0xf7, 0xf0, 0x5e, 0xd0, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xc4, 0xc7, 0xdd, 0xf0, 0xb4, 0xce, 0x41, 0xa9, 0x2e, 0xbb, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0x41, 0x91, 0x2f, 0xbb, 0xe1, 0xdd, 0x9e, 0x0d, 0x7f, 0x02, 0x6d, 0x78, 0x7a, 0x67, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x46, 0xe5, 0x43, 0x07, 0x85, 0xe2, 0x6e, 0x6b, 0x30, 0xec, 0x76, 0x37, 0x7c, 0x1c, 0x75, 0x50, 0x0c, 0xed, 0xb6, 0x1a, 0x8c, 0xca, 0x87, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x51, 0xf9, 0xd0, 0x00, 0x3e, 0x6c, 0x65, 0x66, 0x74, 0x2d, 0x73, 0x68, 0x69, 0x66, 0x74, 0x1b, 0x1e, 0x1f, 0xd9, 0x60, 0x54, 0x3e, 0x6c, 0xf8, 0x45, 0x69, 0x83, 0x32, 0x01, 0x77, 0x83, 0x82, 0x34, 0x76, 0x83, 0xf2, 0x39, 0x76, 0x0d, 0x8a, 0x01, 0xd9, 0x0d, 0x0f, 0xee, 0x6c, 0x78, 0x5a, 0x67, 0xc3, 0x2f, 0x2e, 0x1b, 0x9e, 0xd6, 0x59, 0x83, 0x42, 0x30, 0xf5, 0xf0, 0x00, 0x7e, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0x78, 0x6a, 0x37, 0xbc, 0x17, 0xb4, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x43, 0xe1, 0xa2, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xf0, 0xd4, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x0a, 0xed, 0xde, 0x35, 0xbc, 0xad, 0x73, 0xf8, 0x8d, 0xbe, 0x35, 0xbc, 0xad, 0x73, 0xf8, 0x0e, 0xbf, 0x3a, 0x9c, 0x62, 0xad, 0xc1, 0x48, 0x94, 0xd8, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x18, 0x89, 0x12, 0x0d, 0xe0, 0x35, 0xf6, 0xe6, 0x36, 0x16, 0x46, 0x57, 0xe6, 0x16, 0x46, 0x57, 0xb6, 0xe1, 0xf1, 0x91, 0x0d, 0x46, 0xa2, 0xc4, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x06, 0xc5, 0x8e, 0xed, 0x86, 0xe7, 0x99, 0x0e, 0x8a, 0xbf, 0xd8, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x13, 0x68, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x1a, 0xf0, 0xae, 0xe1, 0x17, 0x97, 0x0d, 0x4f, 0xeb, 0xac, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0x60, 0xea, 0xe8, 0xf0, 0xfb, 0x59, 0x87, 0x5f, 0x84, 0x0e, 0x6f, 0xa1, 0xad, 0x06, 0x63, 0x9c, 0x62, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x60, 0x8c, 0x53, 0x34, 0xc0, 0x33, 0xc7, 0x96, 0x36, 0x56, 0xb6, 0xe1, 0xf1, 0x91, 0x0d, 0xc6, 0x38, 0xc5, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x06, 0xc5, 0x8e, 0xed, 0x1a, 0x3e, 0x57, 0xda, 0xa0, 0x10, 0xd0, 0x5d, 0xc3, 0x9f, 0x4b, 0x83, 0x8f, 0x87, 0x07, 0xf0, 0x5b, 0xc3, 0x9f, 0x4b, 0x83, 0x93, 0x87, 0x1f, 0x6a, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x45, 0x26, 0xee, 0x1a, 0x7e, 0x71, 0x39, 0x28, 0x7c, 0x75, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x25, 0x3e, 0xee, 0x1a, 0x7e, 0x71, 0x39, 0xfc, 0x7e, 0x76, 0x50, 0xaa, 0xcb, 0xb6, 0x1a, 0x0c, 0x85, 0x8b, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xa1, 0x70, 0xd1, 0x00, 0xde, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x20, 0x65, 0x78, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x1b, 0x1e, 0x1f, 0xd9, 0x60, 0x28, 0x5c, 0x6c, 0xf8, 0x45, 0x69, 0x83, 0x62, 0xc7, 0x76, 0xc3, 0x5f, 0x34, 0x1b, 0x7e, 0xa8, 0xd9, 0xf0, 0x41, 0xce, 0x86, 0x6f, 0x73, 0x36, 0x3c, 0x26, 0xb3, 0xe1, 0xdd, 0x9e, 0x0d, 0x82, 0xa7, 0x76, 0x83, 0x80, 0x65, 0x5d, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0xdb, 0xf0, 0x51, 0x4f, 0xad, 0x06, 0x03, 0x68, 0x63, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xbc, 0x94, 0x2b, 0xb3, 0x2b, 0x93, 0x9b, 0x2b, 0x9b, 0x03, 0x11, 0x63, 0x7b, 0x1b, 0x5b, 0x03, 0x79, 0x93, 0x23, 0x2b, 0x93, 0x63, 0x01, 0x09, 0x1b, 0x1b, 0x7b, 0xab, 0x73, 0xa3, 0x4b, 0x73, 0x3b, 0x03, 0x31, 0x7b, 0x93, 0x03, 0x61, 0x2b, 0x0b, 0x23, 0x4b, 0x73, 0x3b, 0x03, 0xd1, 0x2b, 0x93, 0x7b, 0x2b, 0x9b, 0x57, 0x02, 0xbc, 0xc5, 0xde, 0xf4, 0x74, 0x40, 0xc4, 0xd8, 0xde, 0xc6, 0xd6, 0x40, 0xe6, 0xd2, 0xf4, 0xca, 0x25, 0x80, 0x3f, 0xb6, 0x32, 0x37, 0x1d, 0x90, 0xb9, 0x34, 0xbd, 0x32, 0x90, 0x37, 0x33, 0x10, 0xb2, 0x30, 0x3a, 0x16, 0x90, 0x34, 0x37, 0x10, 0xb1, 0x37, 0x7d, 0x09, 0xe0, 0x81, 0x2c, 0x8c, 0x4e, 0x07, 0x84, 0x2c, 0x8c, 0x2e, 0x0c, 0x84, 0xee, 0x0d, 0xc4, 0x8c, 0x2d, 0x0d, 0xae, 0x0d, 0x8f, 0x8f, 0x6c, 0x30, 0x80, 0x36, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0x80, 0x27, 0xf6, 0xa6, 0x1f, 0xbe, 0x9d, 0x5f, 0xc3, 0x9f, 0x4b, 0x03, 0x1e, 0x5b, 0x99, 0x7b, 0x50, 0x66, 0xe9, 0xae, 0xe1, 0xcf, 0xa5, 0x01, 0x8f, 0x2c, 0x8c, 0x3e, 0xfc, 0x50, 0xd3, 0x86, 0xbf, 0x68, 0x36, 0xfc, 0x50, 0xb3, 0x41, 0xd1, 0xa7, 0xbb, 0x06, 0x45, 0x6d, 0x71, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x22, 0x13, 0x77, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x4a, 0xac, 0xe2, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x65, 0x61, 0x71, 0xad, 0xe1, 0x6d, 0x9d, 0x83, 0xf2, 0xbf, 0xb8, 0x01, 0x7f, 0xcc, 0x8d, 0x6d, 0xde, 0xa0, 0x34, 0xe0, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0x94, 0x3e, 0xc6, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0xa7, 0x80, 0x1b, 0x14, 0x5e, 0xc6, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xa2, 0xf8, 0x77, 0x83, 0xd2, 0xc7, 0xf8, 0xa0, 0xec, 0x33, 0xae, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0xc6, 0x46, 0x48, 0x07, 0xc5, 0xca, 0xf1, 0x6a, 0x30, 0x98, 0x3a, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x06, 0x53, 0x47, 0x03, 0xbc, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x1b, 0x1e, 0x1f, 0xd9, 0x60, 0x30, 0x75, 0x6c, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0x6d, 0x50, 0xec, 0xd8, 0x1e, 0x5e, 0x67, 0xda, 0xf0, 0x17, 0xcd, 0x86, 0x1f, 0x6a, 0x36, 0x7c, 0x62, 0xb3, 0xe1, 0x6b, 0x9b, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x20, 0x67, 0xc3, 0x6b, 0x7a, 0x1b, 0x9e, 0xde, 0xd9, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0x36, 0x28, 0xb9, 0x71, 0x0f, 0x9f, 0x07, 0xae, 0x06, 0x03, 0xd3, 0x63, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x60, 0x60, 0x7a, 0x74, 0x10, 0x80, 0x4b, 0x1b, 0x1e, 0x1f, 0xd9, 0x60, 0x60, 0x7a, 0x6c, 0xf8, 0x45, 0x69, 0x83, 0x32, 0x01, 0x77, 0x83, 0x82, 0x34, 0x76, 0x83, 0xf2, 0x39, 0x76, 0x83, 0x82, 0xa7, 0x77, 0xc3, 0xbb, 0x3d, 0x1b, 0x84, 0xdd, 0xed, 0x41, 0xd1, 0xdb, 0x7b, 0x38, 0xc5, 0xaa, 0x35, 0x18, 0x1b, 0x21, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0x63, 0x23, 0xa4, 0x01, 0xf8, 0x71, 0x0b, 0x4b, 0xb3, 0x2b, 0x03, 0x91, 0x2b, 0xb3, 0x03, 0x11, 0x63, 0x7b, 0x8b, 0x03, 0x79, 0x93, 0x23, 0x2b, 0x93, 0xdb, 0xf0, 0xf8, 0xc8, 0x06, 0x63, 0x23, 0x64, 0xc3, 0x2f, 0x4a, 0x1b, 0x14, 0x24, 0xc8, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x8c, 0xf9, 0xa7, 0x36, 0x3c, 0xad, 0xb3, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x85, 0xa7, 0x58, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0x30, 0xb0, 0x0e, 0x3a, 0xfc, 0x7e, 0x56, 0xab, 0xc1, 0x40, 0x14, 0xd9, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x18, 0x88, 0x22, 0x0d, 0xe0, 0x2f, 0x96, 0xe6, 0x16, 0x26, 0x97, 0x07, 0xc2, 0xf6, 0x76, 0x16, 0x26, 0x97, 0x46, 0x87, 0xd6, 0xb6, 0xe1, 0xf1, 0x91, 0x0d, 0x06, 0xa2, 0xc8, 0x86, 0x5f, 0x94, 0x36, 0x7c, 0xb9, 0xb4, 0xe1, 0x2f, 0x9a, 0x0d, 0x3f, 0xd4, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0xa2, 0xf8, 0x77, 0xc3, 0x83, 0x37, 0x87, 0x87, 0x7e, 0x56, 0x83, 0xc1, 0x83, 0xb2, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x30, 0x78, 0x50, 0x1a, 0xc0, 0x73, 0xec, 0xcd, 0xcd, 0xae, 0x4c, 0x8e, 0x0e, 0x44, 0x8c, 0xed, 0x2d, 0x6e, 0x6e, 0xc3, 0xe3, 0x23, 0x1b, 0x0c, 0x1e, 0x94, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0xb4, 0xe1, 0x4b, 0xf6, 0x83, 0x22, 0x2c, 0x76, 0x0d, 0x7f, 0x2e, 0x0d, 0x2e, 0x1e, 0xbe, 0x9d, 0x6f, 0xc3, 0x5f, 0x34, 0x1b, 0x1e, 0xc0, 0xdf, 0xa0, 0x20, 0x98, 0xdd, 0xa0, 0x7c, 0x8b, 0xdd, 0xf0, 0xe0, 0xcd, 0x06, 0x05, 0x69, 0xec, 0x1a, 0x94, 0xd0, 0xb1, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x62, 0xc7, 0xf6, 0xa0, 0xd0, 0x06, 0x3e, 0x08, 0xd3, 0xb1, 0x35, 0xbc, 0xad, 0x73, 0x50, 0xbe, 0xc5, 0x6e, 0xf8, 0x20, 0x67, 0xc3, 0x5f, 0x65, 0x1b, 0x9e, 0xde, 0xd9, 0xf0, 0x41, 0xce, 0x86, 0x87, 0x13, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xa5, 0x01, 0xef, 0x1a, 0x7e, 0x71, 0xd9, 0xf0, 0xe0, 0xcd, 0x86, 0x67, 0x00, 0x3b, 0xfc, 0x22, 0xb4, 0x41, 0x41, 0x1a, 0x3b, 0x38, 0xb9, 0x86, 0x5f, 0x5c, 0x36, 0x3c, 0x78, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0x0a, 0xb8, 0xe1, 0xbd, 0xa0, 0xc3, 0x43, 0x3f, 0x6d, 0x50, 0x90, 0xc6, 0x0e, 0x5e, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0x7c, 0xdc, 0x0d, 0xca, 0x75, 0xd9, 0xc3, 0x2f, 0x42, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x1b, 0x1e, 0xbc, 0xd9, 0xf0, 0x6e, 0xcf, 0x06, 0x45, 0x26, 0xee, 0x41, 0x01, 0xfa, 0xbc, 0x86, 0xb7, 0x75, 0x06, 0x2f, 0xdb, 0xf0, 0x71, 0xd4, 0x41, 0x39, 0x01, 0x7d, 0x38, 0xc5, 0x5a, 0x83, 0xf1, 0xd1, 0xb2, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x30, 0x3e, 0x5a, 0x1a, 0xc0, 0x6b, 0x8e, 0x2e, 0x8d, 0x6e, 0x0c, 0x0d, 0x24, 0xcd, 0x8d, 0xee, 0x6d, 0xc3, 0xe3, 0x23, 0x1b, 0x8c, 0x8f, 0x96, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0x8a, 0x1d, 0xdb, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0x21, 0xa0, 0xbb, 0x41, 0xb1, 0x0d, 0x7c, 0x50, 0xf8, 0x03, 0xaf, 0xe1, 0xcf, 0xa5, 0xc1, 0xcb, 0xc3, 0x0f, 0x35, 0x6d, 0xf8, 0x8b, 0x66, 0xc3, 0x0f, 0x35, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0xfe, 0x04, 0x5a, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xb1, 0x32, 0xd3, 0x86, 0xa7, 0x75, 0xd6, 0xf0, 0x5e, 0xd0, 0x41, 0x39, 0x01, 0xbd, 0x86, 0xa7, 0x77, 0x0e, 0xca, 0x75, 0xd9, 0x83, 0xb2, 0xce, 0x73, 0x83, 0x82, 0x34, 0x76, 0x70, 0x73, 0x0d, 0xbf, 0xb8, 0x6c, 0x78, 0x5a, 0x67, 0xc3, 0x2b, 0x40, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0xd2, 0x80, 0x77, 0x83, 0x62, 0xa4, 0x76, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0xe2, 0xe3, 0x6e, 0x50, 0x8c, 0xd4, 0x6e, 0x50, 0x4e, 0x40, 0xd7, 0x6a, 0x30, 0xe0, 0x5c, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x06, 0x9c, 0x4b, 0x03, 0x78, 0xc9, 0xa5, 0x9d, 0xa1, 0xd1, 0xb5, 0xcc, 0xa1, 0xa5, 0x99, 0xd1, 0x6d, 0x78, 0x7c, 0x64, 0x83, 0x01, 0xe7, 0xb2, 0xe1, 0x17, 0xa5, 0x0d, 0xca, 0x04, 0xdc, 0x0d, 0x0a, 0xd2, 0xd8, 0x0d, 0xca, 0xe7, 0xd8, 0x0d, 0x0a, 0x9e, 0xde, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x0a, 0xac, 0x07, 0x45, 0x6f, 0xef, 0xe1, 0x14, 0x5b, 0x83, 0x31, 0x05, 0xb3, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x30, 0xa6, 0x60, 0x1a, 0xc0, 0x7b, 0x85, 0xae, 0x4e, 0xce, 0x0d, 0x24, 0xcd, 0x8d, 0xee, 0x0d, 0x84, 0x2d, 0x6d, 0x8e, 0x6e, 0xc3, 0xe3, 0x23, 0x1b, 0x8c, 0x29, 0x98, 0x0d, 0x0a, 0xe5, 0xce, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0xb9, 0x14, 0xbb, 0xe1, 0x79, 0xa6, 0x35, 0xfc, 0xb9, 0x34, 0xf8, 0xb8, 0x41, 0x38, 0x8d, 0x6d, 0xf8, 0xa1, 0xe6, 0x20, 0x4c, 0xc7, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0x58, 0x4b, 0x6b, 0x83, 0xb2, 0x66, 0xf9, 0xf0, 0x8b, 0xd0, 0xac, 0xc1, 0x58, 0x99, 0xd9, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x18, 0x2b, 0x33, 0x0d, 0xf0, 0x87, 0xcd, 0xcd, 0x95, 0xb5, 0x89, 0xb1, 0x95, 0x6d, 0x78, 0x7c, 0x64, 0x83, 0xb1, 0x32, 0xb3, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0xb1, 0x63, 0xbb, 0x86, 0x3f, 0x97, 0x06, 0x17, 0x37, 0x08, 0xfd, 0x92, 0x0d, 0x42, 0xca, 0x64, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xe1, 0xc3, 0x03, 0xf8, 0x87, 0x67, 0xea, 0x6a, 0xc3, 0x5f, 0x34, 0x1b, 0x7e, 0xa8, 0xd9, 0xa0, 0x84, 0xc7, 0xdc, 0xf0, 0x79, 0xd0, 0x86, 0x07, 0x6f, 0x36, 0xbc, 0xdb, 0xb3, 0xe1, 0x4f, 0xa0, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x91, 0x89, 0xbb, 0x86, 0x5f, 0x5c, 0x36, 0x3c, 0xad, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0x87, 0x0f, 0x4a, 0x26, 0xd4, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf1, 0x41, 0xc9, 0x84, 0xda, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x34, 0xe0, 0xdd, 0xa0, 0xbc, 0xb9, 0x3e, 0x28, 0x62, 0x6e, 0x3b, 0x9c, 0x62, 0x0b, 0xbc, 0x59, 0xb9, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x19, 0xbc, 0x59, 0xd9, 0x00, 0x5e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x6f, 0x20, 0x62, 0x6c, 0x6f, 0x71, 0x03, 0xbe, 0x98, 0xdc, 0x98, 0xb8, 0x41, 0xb1, 0x63, 0x3b, 0xcb, 0x2c, 0xe0, 0xcd, 0xd5, 0xb5, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xf8, 0xdd, 0xc9, 0x85, 0xc1, 0xc1, 0xa5, 0xb9, 0x9d, 0x81, 0x84, 0x91, 0x91, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0x1d, 0x94, 0x43, 0xbf, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0xde, 0x5c, 0x1a, 0xdd, 0x41, 0xf1, 0x26, 0x3d, 0x0b, 0x78, 0x6f, 0x75, 0xf4, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0x1e, 0x6d, 0x6f, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xd0, 0xee, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0xda, 0xbd, 0x87, 0x87, 0x7e, 0x5a, 0x0d, 0xca, 0xa0, 0xec, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0x7c, 0xcb, 0xdc, 0xcc, 0xde, 0xe4, 0xc6, 0xca, 0x40, 0xda, 0xde, 0xc8, 0xea, 0xd8, 0xde, 0x36, 0xfc, 0xa2, 0xb4, 0xe1, 0x79, 0xa6, 0x83, 0x52, 0x11, 0x77, 0x16, 0xf0, 0xd2, 0xdc, 0xec, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0xde, 0x34, 0x37, 0xbb, 0x32, 0xb9, 0xb9, 0xb2, 0x0d, 0xbf, 0x28, 0x6d, 0x78, 0x9e, 0x69, 0xc3, 0xbb, 0x3d, 0x1b, 0x3e, 0x05, 0x5c, 0xc3, 0xbb, 0x3d, 0x1b, 0x5e, 0xf3, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x94, 0x66, 0xd9, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x66, 0xb2, 0x0f, 0x6f, 0xa1, 0x75, 0x38, 0xc5, 0x16, 0xf0, 0xe4, 0xde, 0xe4, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0x0a, 0xc0, 0xe6, 0x0d, 0x0a, 0xc0, 0xd8, 0x83, 0xc2, 0x1f, 0x78, 0xc3, 0x5f, 0x34, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x23, 0xf7, 0xc6, 0xc6, 0x06, 0x22, 0x97, 0x76, 0x86, 0x46, 0x77, 0xf8, 0xa1, 0x66, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xf0, 0x72, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0x33, 0xd9, 0x07, 0xa5, 0xba, 0xec, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xe6, 0x86, 0x77, 0x7b, 0x36, 0x28, 0xb4, 0x7b, 0x0f, 0xca, 0x71, 0xe7, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xcf, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x76, 0xb7, 0x1b, 0x9e, 0xde, 0xd9, 0xa0, 0x18, 0xa9, 0x6d, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0x33, 0xd9, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0x30, 0x4a, 0xfa, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0xf8, 0xb8, 0x6b, 0xf8, 0xc5, 0x65, 0xc3, 0x7b, 0x41, 0x07, 0xa5, 0x4f, 0xed, 0x41, 0x99, 0x2d, 0xbd, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x0d, 0x78, 0xd7, 0xf0, 0x8b, 0xcb, 0x86, 0xf7, 0x82, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x4f, 0x01, 0x0f, 0x0a, 0x91, 0xda, 0x0e, 0xca, 0x6c, 0xe9, 0x5a, 0x01, 0x4f, 0xee, 0x8d, 0xdd, 0xf0, 0x8b, 0xd2, 0x06, 0xa5, 0xf0, 0xf6, 0x86, 0xbf, 0x68, 0xd6, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x43, 0xee, 0x8d, 0x8d, 0x0d, 0x84, 0xad, 0xcc, 0x8c, 0xee, 0xf0, 0x43, 0xcd, 0x86, 0x4f, 0x6c, 0x36, 0x28, 0xeb, 0xb8, 0x37, 0x7c, 0x62, 0xb3, 0x41, 0x61, 0xcc, 0xbd, 0xe1, 0x13, 0x9b, 0x0d, 0x4a, 0x8b, 0xee, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0xcc, 0x64, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0x0a, 0xca, 0xee, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x69, 0xc0, 0x7b, 0x50, 0x42, 0x77, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0x7c, 0xdc, 0x83, 0x22, 0xc5, 0xbb, 0x56, 0x83, 0x32, 0x27, 0x60, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xa0, 0xcc, 0x09, 0x68, 0x00, 0x1f, 0xb2, 0x34, 0x33, 0xb3, 0x32, 0xb9, 0x32, 0xb7, 0xb1, 0xb2, 0x0d, 0xbf, 0x28, 0x6d, 0x50, 0x20, 0x64, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0x62, 0x26, 0x7b, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x14, 0x70, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x13, 0x68, 0x83, 0x62, 0x69, 0xfb, 0xa0, 0x54, 0xdb, 0x5e, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0x33, 0xd9, 0x87, 0x5f, 0x84, 0xea, 0x70, 0x8a, 0xb5, 0x80, 0xe7, 0x56, 0x46, 0x6f, 0xf8, 0x45, 0x69, 0xc3, 0xf3, 0x4c, 0x1b, 0xfe, 0xa2, 0x59, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x7e, 0xcc, 0xd8, 0xd2, 0xe0, 0x40, 0xc4, 0xf2, 0xe8, 0xca, 0x40, 0xca, 0xdc, 0xc8, 0xd2, 0xc2, 0xdc, 0xdc, 0xca, 0xe6, 0xe6, 0x0e, 0x3f, 0xd4, 0x0c, 0xf8, 0x74, 0x73, 0x67, 0xf2, 0x1a, 0x2e, 0xa9, 0x35, 0x1e, 0xb7, 0x86, 0xcf, 0x83, 0x0e, 0xca, 0xb5, 0xed, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0xf1, 0xbb, 0xe1, 0x69, 0x9d, 0x35, 0xfc, 0x08, 0x73, 0x10, 0x62, 0xa7, 0x6d, 0x78, 0x2f, 0x68, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xf0, 0xf1, 0xf0, 0x6c, 0xcf, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x05, 0x65, 0xf7, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x34, 0xe0, 0xdd, 0xf0, 0xf4, 0xce, 0x1a, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x1e, 0xdc, 0x39, 0x3c, 0xbd, 0xb3, 0x86, 0xcf, 0x83, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x49, 0x34, 0xbb, 0xe1, 0xe9, 0x9d, 0x35, 0xfc, 0xe2, 0xb2, 0xe1, 0xc1, 0x9b, 0x0d, 0x8f, 0xc9, 0x74, 0x78, 0x0b, 0xad, 0x36, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x0d, 0x4a, 0xaa, 0xf1, 0x35, 0x7c, 0x1e, 0xb4, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0xa2, 0xd9, 0x0d, 0x4f, 0xef, 0xac, 0xe1, 0x17, 0x97, 0x0d, 0x8f, 0xc9, 0x1c, 0x14, 0xc4, 0xe3, 0x87, 0xb7, 0xd0, 0x3a, 0x9c, 0x62, 0x87, 0x53, 0x6c, 0xd6, 0x60, 0x64, 0x2e, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x06, 0x05, 0x95, 0xeb, 0x00, 0xde, 0x2b, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x74, 0x6f, 0x6d, 0x1b, 0x1e, 0x1f, 0xd9, 0x60, 0x64, 0x2e, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0x6d, 0x50, 0x2e, 0xc5, 0x6e, 0x78, 0x9e, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x3e, 0x6e, 0x10, 0x4e, 0x63, 0x1b, 0x7e, 0xa8, 0x39, 0xfc, 0x50, 0xd3, 0x86, 0x77, 0x7b, 0x36, 0x28, 0xb6, 0x95, 0x37, 0x3c, 0xad, 0xb3, 0x41, 0xa1, 0x53, 0xdd, 0xac, 0xc1, 0x98, 0x7f, 0xda, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x18, 0xf3, 0x4f, 0x0d, 0xe0, 0x1b, 0x36, 0x37, 0x57, 0xd6, 0x26, 0xc6, 0x56, 0x06, 0x62, 0x96, 0x86, 0x57, 0x46, 0xb6, 0xe1, 0xf1, 0x91, 0x0d, 0xc6, 0xfc, 0xd3, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x06, 0xe5, 0x52, 0xec, 0x41, 0xd1, 0x65, 0xbb, 0x41, 0x41, 0x1a, 0xbb, 0x41, 0xf9, 0x1c, 0xbb, 0x41, 0xc1, 0xd3, 0xbb, 0x41, 0x69, 0x6f, 0xb9, 0x86, 0x3f, 0x97, 0x06, 0x4f, 0x0f, 0xca, 0x2c, 0xdd, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x8b, 0x66, 0xc3, 0x0f, 0x35, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x3e, 0x0f, 0xda, 0xf0, 0xe0, 0xcd, 0x06, 0x45, 0xa7, 0xf1, 0x86, 0x3f, 0x81, 0xd6, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0x56, 0xf0, 0xb4, 0x0d, 0x1f, 0x47, 0x6d, 0x78, 0x5b, 0xe7, 0xa0, 0xd8, 0x3d, 0x3f, 0x28, 0x92, 0x6e, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x69, 0xc0, 0xbb, 0x86, 0x5f, 0x5c, 0x36, 0x28, 0x6a, 0x7c, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xc1, 0x53, 0xbb, 0x41, 0x11, 0xe5, 0xbb, 0x41, 0x19, 0x7d, 0x5e, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x22, 0x13, 0x77, 0x0d, 0xbf, 0xb8, 0x6c, 0x50, 0xd4, 0xf8, 0x1e, 0x14, 0x50, 0xbe, 0x07, 0x85, 0x0f, 0x6a, 0x87, 0x53, 0x6c, 0x05, 0xe0, 0x65, 0xec, 0xcd, 0x8d, 0x2e, 0x2c, 0xcd, 0xad, 0x4c, 0xae, 0xc5, 0x4c, 0xee, 0xad, 0xad, 0xc5, 0xed, 0xad, 0xce, 0x5d, 0x06, 0xe0, 0x4d, 0xa6, 0x4d, 0x07, 0x64, 0xec, 0xcd, 0x8d, 0x2e, 0x2c, 0xcd, 0xad, 0x4c, 0x0e, 0xc4, 0x4c, 0xee, 0xad, 0x0d, 0xc4, 0xed, 0xad, 0xce, 0x6d, 0x81, 0x9f, 0xcb, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x83, 0x9f, 0xcb, 0x1b, 0x80, 0x87, 0xb9, 0x32, 0x3a, 0x10, 0x33, 0xb9, 0xb7, 0x36, 0x10, 0xb9, 0xb0, 0x3b, 0x10, 0xb7, 0xb7, 0x3a, 0xb7, 0x0d, 0x0f, 0x4a, 0xae, 0xe1, 0x6d, 0x9d, 0x81, 0x9f, 0x4b, 0xdb, 0xf0, 0xb6, 0xce, 0xc0, 0xbb, 0xb1, 0xcd, 0x02, 0xdf, 0x96, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x06, 0xdf, 0x96, 0x37, 0x00, 0x0f, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x72, 0x61, 0x77, 0x20, 0x6e, 0x6f, 0x75, 0x6e, 0x1b, 0x1e, 0x94, 0x5c, 0xc3, 0xdb, 0x3a, 0x03, 0xdf, 0x96, 0x77, 0x50, 0x78, 0xa9, 0xaf, 0xc0, 0xb3, 0xe5, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0xc1, 0xb3, 0xe5, 0x0d, 0xc0, 0x07, 0x5b, 0xda, 0x1c, 0x1d, 0x88, 0x99, 0xdc, 0x5b, 0x1b, 0x88, 0x5c, 0xd8, 0x1d, 0x88, 0xdb, 0x5b, 0x9d, 0xdb, 0x86, 0x07, 0x25, 0xd7, 0xf0, 0xb6, 0xce, 0xc0, 0xb3, 0x95, 0x1d, 0x14, 0x5e, 0xea, 0x2b, 0xf0, 0x6e, 0xec, 0x80, 0x2f, 0x26, 0x37, 0xe6, 0xce, 0x32, 0x6b, 0x50, 0x80, 0x69, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x14, 0x60, 0x5a, 0x0d, 0xf0, 0xa4, 0xb9, 0x91, 0x95, 0xe1, 0x6d, 0x50, 0x28, 0x77, 0xae, 0xe1, 0x73, 0xa5, 0x0d, 0x5f, 0x2e, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xc5, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0x90, 0x32, 0xa9, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x9f, 0x07, 0xad, 0xe1, 0x2d, 0xbb, 0x35, 0x3c, 0x71, 0xb7, 0xe1, 0x59, 0xbc, 0x83, 0x51, 0x22, 0x75, 0x10, 0x9e, 0xaa, 0x1b, 0x3e, 0xc8, 0xd9, 0xf0, 0x6d, 0xce, 0x06, 0xc5, 0x0f, 0xea, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x41, 0x39, 0x7d, 0x7a, 0x50, 0xe8, 0x0b, 0xcf, 0x02, 0x3f, 0x97, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x06, 0x3f, 0x97, 0x36, 0x80, 0xe7, 0xd8, 0x9b, 0xdb, 0x1c, 0x9d, 0x5c, 0xdd, 0x18, 0x1d, 0xc8, 0x5c, 0x19, 0xdd, 0x06, 0x85, 0x72, 0xe7, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0x3c, 0x28, 0xe8, 0xd9, 0x37, 0x28, 0x25, 0xc4, 0xd7, 0x70, 0x49, 0x6d, 0x50, 0xd4, 0x88, 0xaf, 0xe1, 0xc1, 0x9d, 0x0d, 0x5f, 0xbf, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x0a, 0xf9, 0xf5, 0xc3, 0x43, 0x3f, 0x87, 0xa7, 0x75, 0xda, 0xf0, 0x6e, 0xcf, 0x02, 0xfe, 0x98, 0xdb, 0xdc, 0xb9, 0x06, 0x45, 0x24, 0x41, 0x6b, 0x78, 0x5b, 0x67, 0xe0, 0xd3, 0xdc, 0xd6, 0xf0, 0x17, 0xcd, 0x1a, 0x84, 0x7e, 0xc9, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xe6, 0xca, 0xe8, 0xd6, 0x20, 0x80, 0xce, 0x36, 0xbc, 0xad, 0x33, 0x78, 0xba, 0x71, 0xe8, 0xf0, 0xe0, 0x4e, 0x07, 0x05, 0x45, 0x66, 0x87, 0x87, 0x7e, 0x66, 0x0d, 0xca, 0xac, 0xb5, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x32, 0x6b, 0xad, 0x83, 0xb2, 0xd8, 0x77, 0x83, 0x42, 0xb9, 0x73, 0x0d, 0x9f, 0x2b, 0x6d, 0x50, 0xc2, 0xb9, 0x1f, 0x94, 0xdd, 0xec, 0x1b, 0x94, 0x12, 0xe2, 0x6b, 0xb8, 0xa4, 0x36, 0x28, 0x6a, 0xc4, 0x37, 0x28, 0x85, 0xdd, 0xd7, 0xf0, 0x79, 0xd0, 0x86, 0xaf, 0x5f, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x85, 0xfc, 0xfa, 0xe1, 0x2d, 0xb4, 0xc3, 0x7b, 0x41, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x3f, 0xc2, 0x6c, 0xa8, 0xf9, 0xa1, 0x6a, 0xc3, 0x57, 0x38, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x1e, 0xdc, 0xd9, 0xf0, 0x5e, 0xd0, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xe9, 0x86, 0xb7, 0x75, 0x06, 0x4f, 0x0f, 0x0f, 0xee, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xe9, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x0f, 0xee, 0x6c, 0x78, 0x5b, 0x67, 0x70, 0xfa, 0xf0, 0xe0, 0x4e, 0xad, 0xc0, 0xb3, 0x95, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0xc1, 0xb3, 0x95, 0x0d, 0xe0, 0x3b, 0xf6, 0xe6, 0x36, 0x47, 0x27, 0x57, 0x37, 0x46, 0x07, 0xc2, 0x96, 0x36, 0x47, 0xb7, 0x41, 0xa1, 0xdc, 0xb9, 0x41, 0x09, 0xe7, 0xbe, 0xe1, 0xeb, 0x97, 0x35, 0x3c, 0x28, 0xb9, 0x41, 0x00, 0xb2, 0x6d, 0x50, 0xe6, 0x5d, 0xce, 0x32, 0xcb, 0x86, 0x0f, 0x72, 0xd6, 0xa0, 0x10, 0x4c, 0x3d, 0x7c, 0xb0, 0xba, 0x41, 0x41, 0x91, 0xb9, 0xe1, 0x17, 0x97, 0x35, 0x7c, 0xee, 0x32, 0x78, 0xba, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x01, 0xa6, 0xd5, 0x41, 0x71, 0xc7, 0xbc, 0x86, 0xcf, 0x5d, 0x06, 0xa7, 0x0f, 0x02, 0x90, 0xad, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x0e, 0x4f, 0xeb, 0x1c, 0x4e, 0xb1, 0x05, 0xbe, 0x2d, 0xdf, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x0d, 0x4a, 0x52, 0xf5, 0x01, 0x3c, 0xc7, 0xde, 0xdc, 0xe6, 0xe8, 0xe4, 0xea, 0xc6, 0xe8, 0x40, 0xda, 0xc2, 0xe0, 0x36, 0x28, 0x94, 0x3b, 0xd7, 0xf0, 0xe7, 0xd2, 0xe0, 0xe1, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0x48, 0x99, 0xac, 0x41, 0xe8, 0x97, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x42, 0x53, 0xa9, 0xda, 0xa0, 0x94, 0x10, 0xdf, 0xa0, 0x30, 0x75, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0x94, 0x3b, 0xef, 0x6b, 0x78, 0x5b, 0x67, 0xe0, 0xc5, 0xf2, 0xd6, 0xf0, 0x17, 0xcd, 0x1a, 0x84, 0x7e, 0xc9, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xda, 0xc2, 0xe0, 0xd6, 0x20, 0x80, 0xce, 0x36, 0xbc, 0xad, 0x33, 0x38, 0x7c, 0x50, 0x1a, 0xbf, 0xaf, 0x41, 0x00, 0x9d, 0x6d, 0x78, 0x5b, 0x67, 0xf0, 0xf8, 0xa0, 0x34, 0x7e, 0xef, 0xa0, 0xa0, 0xc8, 0xec, 0xf0, 0xd0, 0xcf, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x87, 0x53, 0xac, 0x0e, 0xa7, 0x58, 0x0b, 0xe0, 0xe9, 0xf6, 0x56, 0xe7, 0xd6, 0xf2, 0x26, 0x47, 0x56, 0x26, 0x97, 0xe6, 0x76, 0x2e, 0x03, 0xf0, 0x20, 0x63, 0xa6, 0x03, 0xe2, 0xf6, 0x56, 0xe7, 0x06, 0xf2, 0x26, 0x47, 0x56, 0x26, 0x97, 0xe6, 0x76, 0xb6, 0x06, 0xc3, 0xcd, 0x6b, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x60, 0xb8, 0x79, 0x35, 0x00, 0x1f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x65, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6f, 0x72, 0x64, 0x65, 0xf2, 0x4a, 0x00, 0x7a, 0x3f, 0xc9, 0x91, 0x95, 0xc9, 0xcd, 0x81, 0x84, 0xd1, 0xbd, 0xb5, 0xcd, 0x81, 0x88, 0x95, 0x99, 0xbd, 0xc9, 0x95, 0x81, 0x8c, 0x95, 0xb1, 0xb1, 0xcd, 0xb1, 0x80, 0x84, 0xb9, 0x91, 0x81, 0x84, 0xd1, 0xbd, 0xb5, 0xcd, 0x81, 0xa4, 0xb9, 0x81, 0x84, 0xcd, 0x8d, 0x95, 0xb9, 0x91, 0xa5, 0xb9, 0x9d, 0x81, 0x30, 0x4d, 0x09, 0x81, 0xbc, 0xc9, 0x91, 0x95, 0xc9, 0xb9, 0xda, 0xf0, 0xf8, 0xc8, 0x06, 0xc3, 0xcd, 0x6b, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x1e, 0x84, 0xe9, 0xd8, 0x06, 0x05, 0x78, 0x67, 0x1b, 0xfe, 0xa2, 0xd9, 0xf0, 0xc1, 0xea, 0x86, 0x0f, 0x72, 0x36, 0xfc, 0x55, 0xb6, 0x41, 0x91, 0xd3, 0xba, 0x41, 0xb1, 0xa3, 0xb9, 0x06, 0xc5, 0x24, 0xe6, 0x86, 0x1f, 0x6a, 0x0e, 0x0f, 0xee, 0xac, 0xe1, 0x83, 0x9c, 0x35, 0x28, 0x26, 0x31, 0x37, 0xfc, 0x50, 0x73, 0xf8, 0x3c, 0x68, 0x0d, 0x3f, 0xc2, 0x1c, 0x84, 0x1d, 0xd0, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x1a, 0x2e, 0xa9, 0x0d, 0x4a, 0xe7, 0xf7, 0x0e, 0x4a, 0x38, 0xda, 0x35, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x3c, 0xb8, 0xb3, 0xe1, 0x92, 0x5a, 0xe3, 0xf9, 0xe1, 0xc1, 0x9d, 0x0e, 0x0a, 0x6a, 0xda, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x0f, 0xee, 0x1c, 0x94, 0xe8, 0xf9, 0x07, 0x85, 0x18, 0xed, 0x06, 0xc5, 0x8e, 0xe6, 0x06, 0x45, 0x61, 0xfe, 0x06, 0x45, 0x4e, 0xeb, 0x86, 0xaf, 0x70, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xe3, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x32, 0x71, 0x37, 0x28, 0x2a, 0xc5, 0x0f, 0x0f, 0xfd, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xc9, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x64, 0xe2, 0x6e, 0x50, 0x54, 0x8a, 0x1f, 0xde, 0x42, 0x6b, 0xc3, 0x07, 0x39, 0x6b, 0xf8, 0x37, 0xe7, 0xa0, 0x7c, 0x90, 0x5e, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0xc3, 0x83, 0x3b, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xc4, 0xc7, 0x3d, 0x28, 0x7a, 0xf6, 0xd7, 0xf0, 0x79, 0xd0, 0x86, 0x77, 0x7b, 0x36, 0x28, 0xf1, 0x71, 0x0f, 0xca, 0xc6, 0xfd, 0x36, 0xbc, 0xdb, 0xb3, 0xe1, 0x8b, 0xb3, 0x0d, 0x4f, 0xef, 0x1c, 0x94, 0xea, 0xb2, 0xb3, 0x06, 0x63, 0x41, 0x6c, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x60, 0x2c, 0x88, 0x35, 0x80, 0x3f, 0x4a, 0xdb, 0x9b, 0x5c, 0x59, 0x0a, 0x48, 0x5b, 0xdd, 0x19, 0xc8, 0x9b, 0x1c, 0x59, 0x99, 0xbc, 0x12, 0x00, 0x8d, 0x3c, 0xc9, 0x91, 0x95, 0xc9, 0xcd, 0x81, 0xa4, 0xb9, 0x81, 0x84, 0xcd, 0x8d, 0x95, 0xb9, 0x91, 0xa5, 0xb9, 0x9d, 0x81, 0x90, 0xbd, 0xd5, 0x89, 0xb1, 0x95, 0x81, 0xac, 0xb4, 0xd5, 0x9d, 0x81, 0xa0, 0x85, 0xcd, 0xa1, 0x81, 0xbc, 0xc9, 0x91, 0x95, 0xc9, 0xb1, 0x80, 0x8c, 0xbd, 0xb1, 0xb1, 0xa5, 0xcd, 0xa5, 0xbd, 0xb9, 0xcd, 0x81, 0x98, 0x85, 0xb1, 0xb1, 0x81, 0x88, 0x85, 0x8d, 0xad, 0x81, 0xd0, 0xbd, 0x81, 0xac, 0x90, 0xbd, 0xc9, 0xb9, 0xda, 0xf0, 0xf8, 0xc8, 0x06, 0x63, 0x41, 0x6c, 0xc3, 0x2f, 0x4a, 0x1b, 0x94, 0xb1, 0xf8, 0x1b, 0xfe, 0xa2, 0xd9, 0xf0, 0xc1, 0xea, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0x3e, 0x77, 0x19, 0x7c, 0xdc, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0xd4, 0x92, 0x6a, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0xf2, 0xfb, 0x1f, 0x1e, 0xfa, 0x69, 0x0d, 0x9f, 0xbb, 0x0c, 0x4e, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x92, 0xdf, 0x7f, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0xf2, 0xfb, 0x1f, 0xde, 0x42, 0xab, 0x0d, 0x1f, 0xe4, 0x6c, 0x50, 0xe6, 0xee, 0xaf, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0x58, 0x28, 0xeb, 0xf0, 0xfb, 0xd9, 0x41, 0x51, 0xc6, 0xbf, 0x1a, 0x8c, 0x99, 0xb1, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x31, 0x33, 0xd6, 0x00, 0x1e, 0x6d, 0x75, 0x67, 0x20, 0x6f, 0x72, 0x64, 0x65, 0xf2, 0x4a, 0x00, 0x74, 0xf0, 0x24, 0x47, 0x56, 0x26, 0x37, 0x07, 0x92, 0xe6, 0x06, 0x12, 0x36, 0x37, 0x56, 0xe6, 0x46, 0x96, 0xe6, 0x76, 0x06, 0xb2, 0xd2, 0x56, 0x77, 0x06, 0x82, 0x16, 0x36, 0x87, 0x06, 0xf2, 0x26, 0x47, 0x56, 0x26, 0xc7, 0x02, 0x32, 0xf6, 0xc6, 0xc6, 0x96, 0x36, 0x97, 0xf6, 0xe6, 0x36, 0x07, 0x62, 0x16, 0xc6, 0xc6, 0x06, 0x22, 0x16, 0x36, 0xb6, 0x06, 0x42, 0xf7, 0x06, 0xb2, 0x42, 0xf6, 0x26, 0xe7, 0x6a, 0xc3, 0xe3, 0x23, 0x1b, 0x8c, 0x99, 0xb1, 0x0d, 0xbf, 0x28, 0x6d, 0x50, 0xc6, 0xe2, 0x6f, 0xf8, 0x8b, 0x66, 0xc3, 0x07, 0xab, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0xdc, 0x65, 0xf0, 0xf1, 0xa0, 0xe0, 0xf8, 0x5f, 0xc3, 0xe7, 0x2e, 0x83, 0x93, 0x07, 0x05, 0xdf, 0x7f, 0x07, 0x05, 0xea, 0xff, 0x6a, 0x30, 0x16, 0xca, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0xc6, 0x42, 0x59, 0x03, 0x78, 0x91, 0x95, 0xc1, 0xd1, 0xa1, 0x81, 0xbc, 0xc9, 0x91, 0x95, 0xc9, 0x2b, 0x01, 0xb4, 0x3f, 0xc9, 0x91, 0x95, 0xc9, 0xcd, 0x81, 0xa4, 0xb9, 0x81, 0x84, 0xcd, 0x8d, 0x95, 0xb9, 0x91, 0xa5, 0xb9, 0x9d, 0x81, 0xd0, 0xc9, 0x95, 0x95, 0x81, 0x90, 0x95, 0xc1, 0xd1, 0xa1, 0xb9, 0xda, 0xf0, 0xf8, 0xc8, 0x06, 0x63, 0xa1, 0x6c, 0xc3, 0x2f, 0x4a, 0x1b, 0x94, 0xb1, 0xf8, 0x1b, 0xfe, 0xa2, 0xd9, 0xf0, 0xc1, 0xea, 0x86, 0x0f, 0x72, 0x36, 0xfc, 0x55, 0xb6, 0x41, 0x91, 0xd3, 0xba, 0x41, 0xb1, 0xa3, 0xb9, 0x41, 0xb9, 0x94, 0xbf, 0x41, 0x69, 0x97, 0xbf, 0x41, 0xb1, 0xa3, 0xb9, 0x41, 0x51, 0x98, 0xbf, 0x41, 0x91, 0xd3, 0x7a, 0x78, 0xd4, 0xec, 0x70, 0x8a, 0xd5, 0x0a, 0xe0, 0x51, 0xe7, 0x96, 0x46, 0xd7, 0xc2, 0xf6, 0x76, 0x36, 0x2e, 0x03, 0xf8, 0xca, 0x84, 0xe9, 0x80, 0xd4, 0xb9, 0xa5, 0xd1, 0x81, 0xb0, 0xbd, 0x9d, 0xa5, 0x8d, 0x2d, 0xe0, 0x8b, 0xa5, 0x99, 0x99, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xe7, 0x38, 0x81, 0x06, 0x78, 0xc2, 0xe0, 0xe0, 0xd8, 0xf2, 0x36, 0x28, 0x94, 0x3b, 0xd7, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0xdc, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0x9b, 0x30, 0x5b, 0xc3, 0x9f, 0x4b, 0x83, 0x8b, 0x1b, 0x84, 0xd3, 0xd8, 0x06, 0x61, 0x3a, 0x76, 0x70, 0x18, 0x16, 0x68, 0x83, 0x12, 0x1e, 0x73, 0xc3, 0x83, 0x3b, 0x1b, 0x14, 0x14, 0x99, 0x1b, 0xde, 0xed, 0xd9, 0xf0, 0x5e, 0xd0, 0x1a, 0xde, 0xd6, 0x19, 0xbc, 0x3e, 0x3c, 0xb8, 0xd3, 0x0a, 0xf8, 0x6c, 0x69, 0x66, 0xf4, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0xa9, 0x65, 0xa0, 0x01, 0xf4, 0xd9, 0xd2, 0xcc, 0xe8, 0x40, 0xda, 0xde, 0xd8, 0xc8, 0x40, 0x50, 0xcc, 0xda, 0xc2, 0xe0, 0x52, 0x1b, 0x14, 0xca, 0x9d, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xf0, 0x9a, 0xb1, 0xa5, 0xc1, 0xc1, 0x95, 0x91, 0x6d, 0xf8, 0x73, 0x69, 0xf0, 0x70, 0xc3, 0xbf, 0xf3, 0x6b, 0x10, 0x94, 0x7b, 0xb5, 0x41, 0xa1, 0xdc, 0xb9, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xef, 0x58, 0x9d, 0x9c, 0x5c, 0x5a, 0x19, 0xd9, 0x86, 0x3f, 0x97, 0x06, 0x17, 0x0f, 0x0e, 0xc3, 0x02, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xbe, 0x58, 0x9a, 0x1b, 0xd9, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0xc1, 0xc9, 0x80, 0xe0, 0xa0, 0x74, 0x7a, 0x5e, 0x01, 0x1f, 0xad, 0xce, 0x8d, 0xde, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x38, 0xc2, 0x10, 0x34, 0x80, 0xaf, 0x59, 0x9a, 0xdc, 0x1c, 0x1d, 0xc8, 0x9b, 0x19, 0x48, 0x9d, 0x5b, 0x1a, 0xdd, 0xdc, 0x06, 0x85, 0x72, 0xe7, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x03, 0xde, 0x9b, 0x1c, 0xb9, 0x41, 0x38, 0x8d, 0x6d, 0x50, 0xa4, 0x62, 0x1e, 0x3e, 0x58, 0xdd, 0xe0, 0x84, 0x2b, 0xb0, 0xc1, 0xb9, 0x7c, 0xa0, 0x0d, 0x7f, 0xd1, 0xac, 0x41, 0xe8, 0x97, 0x6c, 0x50, 0x36, 0x61, 0xae, 0x41, 0xb0, 0x99, 0xae, 0x41, 0x00, 0x9d, 0x6d, 0x50, 0xf0, 0x61, 0x6e, 0x50, 0x48, 0x62, 0x1e, 0x9c, 0x34, 0x06, 0xd6, 0x20, 0x80, 0xce, 0x36, 0x28, 0xf8, 0x30, 0xd7, 0xa0, 0x98, 0xc4, 0xdc, 0xa0, 0x48, 0xc5, 0x3c, 0x7c, 0x1e, 0xb4, 0xe1, 0x6d, 0x9d, 0xc1, 0xeb, 0xc3, 0xe7, 0x41, 0xb5, 0x41, 0x09, 0x8f, 0xb9, 0xe1, 0xc1, 0x9d, 0x0d, 0xef, 0x05, 0x6d, 0x50, 0xc2, 0x63, 0x6e, 0xf8, 0x3c, 0x68, 0xc3, 0xd3, 0x3a, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x33, 0x24, 0x41, 0x1b, 0x9c, 0x34, 0x06, 0x36, 0x38, 0x95, 0x14, 0x74, 0x78, 0xb9, 0x6c, 0x16, 0xf0, 0xcd, 0xd8, 0xd2, 0xe8, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x63, 0x66, 0x41, 0x03, 0x78, 0xb5, 0x85, 0xad, 0x95, 0x81, 0x98, 0xa5, 0xb1, 0xd1, 0x95, 0xc9, 0x6d, 0x50, 0x28, 0x77, 0xae, 0xe1, 0xcf, 0xa5, 0xc1, 0xc3, 0x0d, 0xc2, 0x69, 0x6c, 0x83, 0x30, 0x1d, 0x3b, 0x7c, 0xb0, 0xba, 0x41, 0xa1, 0xdc, 0xb9, 0x41, 0x01, 0xde, 0xb9, 0x41, 0xb1, 0xa3, 0xb9, 0x86, 0x77, 0x7b, 0x0e, 0xbf, 0x9f, 0x6d, 0x50, 0x50, 0x64, 0x6e, 0xf8, 0xc5, 0x65, 0x83, 0x82, 0x22, 0x73, 0x0d, 0x9f, 0xbb, 0x0c, 0x5e, 0x1f, 0xde, 0x0b, 0x6a, 0x05, 0xfc, 0x31, 0xb6, 0x32, 0x73, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xe0, 0x50, 0x65, 0xd0, 0x00, 0xef, 0xd8, 0x5b, 0x1b, 0xdc, 0xdb, 0x5c, 0xd9, 0x06, 0x85, 0x72, 0xe7, 0x1a, 0x3e, 0x57, 0xda, 0xe0, 0x84, 0x2b, 0xb0, 0xc1, 0xb9, 0x7c, 0x60, 0x0d, 0x7f, 0x2e, 0x0d, 0x3e, 0x6e, 0x10, 0x40, 0x67, 0x1b, 0x94, 0x12, 0xe2, 0x1b, 0x14, 0x14, 0x99, 0x1b, 0x7e, 0x51, 0xda, 0xa0, 0x48, 0xc5, 0x5c, 0xc3, 0x1b, 0x77, 0x07, 0xc3, 0x6e, 0x77, 0xc3, 0x25, 0xb5, 0x86, 0x68, 0x56, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x1e, 0xdc, 0xd9, 0xa0, 0xa0, 0xc8, 0xdc, 0xa0, 0x84, 0xc7, 0xdc, 0xf0, 0x79, 0xd0, 0x06, 0x05, 0x45, 0xe6, 0x86, 0x77, 0x7b, 0x36, 0x3c, 0xbd, 0x73, 0x70, 0x02, 0x2c, 0x38, 0x9c, 0x62, 0x2d, 0xe0, 0x8b, 0xbd, 0xd1, 0xa1, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xe7, 0xa2, 0x83, 0x06, 0xf0, 0x0c, 0x63, 0x63, 0x03, 0xa1, 0x43, 0x2b, 0x03, 0x09, 0x13, 0x7b, 0xb3, 0x2b, 0xdb, 0xa0, 0x50, 0xee, 0x5c, 0xc3, 0xe7, 0x4a, 0x07, 0x87, 0x57, 0x82, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x0f, 0xee, 0x6c, 0x50, 0x50, 0x64, 0x6e, 0x50, 0xc2, 0x63, 0x6e, 0xf8, 0x3c, 0x68, 0x83, 0x82, 0x22, 0x73, 0xc3, 0x2f, 0x2e, 0x1b, 0x14, 0x14, 0x99, 0x6b, 0xf8, 0xdc, 0x65, 0xf0, 0x7a, 0xc3, 0x2f, 0x2e, 0x07, 0x27, 0xc0, 0x82, 0x56, 0xc0, 0x1f, 0x63, 0x0b, 0x83, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x0e, 0xfc, 0x07, 0x0d, 0xf0, 0x8e, 0xbd, 0xb5, 0x89, 0xa5, 0xb9, 0x95, 0x6d, 0x50, 0x28, 0x77, 0xae, 0xe1, 0x73, 0xa5, 0x0d, 0x4e, 0xb8, 0x02, 0x1b, 0x9c, 0xcb, 0x07, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xe3, 0x06, 0x01, 0x74, 0xb6, 0x41, 0x29, 0x21, 0xbe, 0x41, 0x41, 0x91, 0xb9, 0xe1, 0x17, 0xa5, 0x0d, 0x8a, 0x54, 0xcc, 0x83, 0xe3, 0xbb, 0x41, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x1e, 0xdc, 0xd9, 0xf0, 0x5e, 0xd0, 0x06, 0x25, 0x3c, 0xe6, 0x86, 0xcf, 0x83, 0x36, 0x3c, 0xad, 0xb3, 0xe1, 0x17, 0x97, 0x0d, 0x0a, 0x8a, 0xcc, 0x35, 0x7c, 0xee, 0x32, 0x78, 0x7d, 0x70, 0x4e, 0x39, 0xe8, 0x70, 0x8a, 0x2d, 0xe0, 0xcf, 0xbd, 0xb5, 0x95, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xe7, 0x71, 0x84, 0x06, 0xd0, 0x62, 0x4b, 0x33, 0xa3, 0x03, 0x41, 0x81, 0xab, 0x93, 0x2b, 0x4b, 0x6d, 0x50, 0x28, 0x77, 0x6e, 0x50, 0x00, 0xe3, 0x6f, 0xf8, 0xc5, 0x65, 0x83, 0x82, 0x22, 0x73, 0x0d, 0x9f, 0xbb, 0x0c, 0x5e, 0x1f, 0x9e, 0xd6, 0x69, 0x35, 0x38, 0x1b, 0x10, 0x6c, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x9c, 0x0d, 0x08, 0x1a, 0xe0, 0x09, 0x93, 0x3b, 0xab, 0x2b, 0xdb, 0xa0, 0x50, 0xee, 0x5c, 0xc3, 0xe7, 0x4a, 0x1b, 0x9c, 0x70, 0x05, 0x36, 0x28, 0xbf, 0x5d, 0xdb, 0xa0, 0x84, 0xc7, 0xdc, 0xf0, 0xe0, 0xce, 0x06, 0x05, 0x45, 0xe6, 0x86, 0x5f, 0x5c, 0x36, 0x28, 0x28, 0x32, 0xd7, 0xf0, 0xb9, 0xcb, 0xe0, 0xf5, 0xc1, 0x89, 0x61, 0xa0, 0xc3, 0x29, 0xd6, 0x02, 0xbe, 0xd8, 0x9b, 0x1b, 0xb9, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x70, 0x66, 0x4f, 0x68, 0x80, 0x57, 0xae, 0x0c, 0x8e, 0x2d, 0x6c, 0xac, 0x6c, 0x83, 0x42, 0xb9, 0x73, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x60, 0x44, 0xab, 0x0d, 0x0a, 0xe5, 0xce, 0x0d, 0xce, 0xe5, 0x03, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x3e, 0x0f, 0x5a, 0xc3, 0x83, 0x92, 0x1b, 0x04, 0x20, 0xdb, 0xe1, 0x69, 0x9d, 0x83, 0x53, 0x49, 0xc1, 0x0a, 0xf8, 0x64, 0x72, 0x6f, 0xf0, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0xe9, 0x51, 0xa1, 0x01, 0xbe, 0x32, 0x37, 0xb6, 0xb4, 0x39, 0xba, 0x0d, 0x0a, 0xe5, 0xce, 0x0d, 0x4e, 0xb8, 0x02, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x1e, 0xdc, 0xd9, 0xa0, 0xa0, 0xc8, 0xdc, 0xf0, 0x8b, 0xcb, 0x1a, 0x3e, 0x77, 0x19, 0x3c, 0x3d, 0x38, 0x69, 0x0c, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xe9, 0x83, 0x82, 0x22, 0xb3, 0xc3, 0x29, 0xb6, 0x06, 0x43, 0x2e, 0x6e, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x60, 0xc8, 0xc5, 0x35, 0xc0, 0x47, 0x56, 0xd6, 0x16, 0xe6, 0x46, 0xb6, 0xe1, 0xf1, 0x91, 0x0d, 0x86, 0x5c, 0xdc, 0x06, 0x85, 0x72, 0xe7, 0x06, 0x27, 0x5c, 0x81, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x0f, 0xee, 0x2c, 0xe0, 0xcf, 0x9d, 0x9d, 0xc9, 0x6b, 0xc8, 0x63, 0x6f, 0xf8, 0x11, 0x66, 0x70, 0xfa, 0x60, 0xc8, 0xc5, 0x1d, 0x84, 0xa7, 0xea, 0xc1, 0x49, 0x63, 0x60, 0x35, 0x18, 0x55, 0x73, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xa3, 0x6a, 0xae, 0x01, 0xbe, 0x31, 0xb4, 0xb7, 0xb7, 0xb9, 0xb2, 0x0d, 0x0a, 0xe5, 0xce, 0x0d, 0x8e, 0x95, 0x07, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x3e, 0x0f, 0xda, 0xf0, 0xb4, 0xce, 0x06, 0x25, 0x3c, 0xe6, 0x86, 0x07, 0x77, 0x36, 0xbc, 0x17, 0xb4, 0x41, 0xb1, 0xa3, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x38, 0x69, 0x0c, 0x1c, 0x9c, 0x4a, 0x0a, 0xd6, 0xe0, 0x5c, 0xb8, 0xb0, 0x86, 0x3c, 0xf6, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x0f, 0x46, 0xd5, 0xdc, 0x41, 0x78, 0xaa, 0x1e, 0x9e, 0xd6, 0x39, 0x9c, 0x62, 0x0b, 0xf8, 0x66, 0x61, 0x6c, 0xec, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0xa9, 0x8f, 0xa1, 0x01, 0x5e, 0xb2, 0x32, 0xb3, 0xb0, 0x3a, 0x36, 0xba, 0x0d, 0x0a, 0xe5, 0xce, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0x09, 0x57, 0xe0, 0xa0, 0x1c, 0xc7, 0xdf, 0xa0, 0x84, 0xc7, 0xdc, 0xf0, 0xe0, 0xce, 0x86, 0xf7, 0x82, 0x0e, 0x4e, 0x1a, 0x03, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x2d, 0x80, 0x87, 0x58, 0x1a, 0x5d, 0x0b, 0xdb, 0xdb, 0x59, 0xda, 0xb8, 0x0c, 0xe0, 0x29, 0x43, 0xa6, 0x03, 0x22, 0x96, 0x46, 0x07, 0xc2, 0xf6, 0x76, 0x96, 0x36, 0xb6, 0x06, 0xe3, 0x2a, 0x6f, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x60, 0x5c, 0xe5, 0x35, 0x80, 0x8f, 0x58, 0x9a, 0x5b, 0x98, 0x5c, 0x1e, 0x08, 0xde, 0x9b, 0xdc, 0x86, 0xc7, 0x47, 0x36, 0x18, 0x57, 0x79, 0x1b, 0x7e, 0x51, 0xda, 0xf0, 0xb7, 0xd2, 0x86, 0xbf, 0x68, 0x36, 0xfc, 0x50, 0xb3, 0xe1, 0x13, 0x9b, 0x35, 0xfc, 0xe2, 0xb2, 0xe1, 0x6b, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0x38, 0x79, 0x78, 0xf0, 0xa6, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0x8f, 0xb0, 0x6e, 0xf8, 0x36, 0x67, 0xc3, 0x6b, 0x7a, 0x6d, 0x50, 0xae, 0xcb, 0x6e, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0x78, 0x70, 0x67, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0xf8, 0xb8, 0x07, 0xc5, 0x1d, 0xf3, 0x1a, 0x3e, 0x0f, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x25, 0x3e, 0xee, 0x86, 0x07, 0x6f, 0x0e, 0x6f, 0xa1, 0x6d, 0xf8, 0x3d, 0x70, 0x0d, 0x8a, 0x7c, 0xd9, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x13, 0x68, 0x83, 0x72, 0x5d, 0x76, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x1a, 0xf0, 0xae, 0xe1, 0x17, 0x97, 0x0d, 0x0f, 0xde, 0x1c, 0x7e, 0x11, 0x5a, 0xc3, 0xbf, 0x39, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x22, 0x13, 0xf7, 0xa0, 0xb8, 0x63, 0xde, 0xf0, 0x6e, 0xcf, 0x06, 0x45, 0x26, 0xee, 0xc1, 0xb9, 0xc5, 0xa1, 0x5a, 0x0d, 0x46, 0x49, 0xdf, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0x28, 0xe9, 0x6b, 0x00, 0x0f, 0xb1, 0x34, 0xb7, 0x30, 0xb9, 0x3c, 0x90, 0x37, 0xb9, 0x0d, 0x8f, 0x8f, 0x6c, 0x30, 0x4a, 0xfa, 0x36, 0xfc, 0xa2, 0xb4, 0xe1, 0x6f, 0xa5, 0x0d, 0x9f, 0xd8, 0x6c, 0x70, 0x24, 0x6d, 0xd8, 0xf0, 0x15, 0xce, 0x86, 0xbf, 0x68, 0x36, 0xfc, 0x50, 0xb3, 0xe1, 0x83, 0x9c, 0x0d, 0x0e, 0xd2, 0x0d, 0x1b, 0x94, 0xeb, 0xb2, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x06, 0x67, 0xfd, 0x86, 0x0d, 0x4e, 0x18, 0x0e, 0x1b, 0x7e, 0x0f, 0x5c, 0x83, 0x22, 0x5f, 0x76, 0x83, 0xa2, 0xd3, 0x78, 0xc3, 0x9f, 0x40, 0x1b, 0x94, 0xeb, 0xb2, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x94, 0x06, 0xbc, 0x1b, 0x9c, 0xde, 0x1c, 0x36, 0x3c, 0xc2, 0xba, 0x86, 0x7f, 0x73, 0x36, 0x3c, 0x78, 0x73, 0x70, 0x56, 0x74, 0x58, 0xc3, 0xbf, 0x39, 0x1b, 0x1e, 0xbc, 0x39, 0x38, 0x84, 0x3a, 0xd4, 0x2c, 0xe0, 0xb9, 0xbd, 0xd1, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x3a, 0xc4, 0xd2, 0xdc, 0xc2, 0xe4, 0xf2, 0x40, 0xdc, 0xde, 0xe8, 0x40, 0x50, 0xe6, 0xd2, 0xf4, 0xca, 0xc8, 0x52, 0x07, 0x85, 0xc9, 0xef, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0xe3, 0x2a, 0xaf, 0x0d, 0x4f, 0xef, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0xaf, 0xf9, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x0a, 0xed, 0xde, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xf0, 0xd4, 0x6e, 0x78, 0x2f, 0xe8, 0xa0, 0xf0, 0xce, 0xae, 0x0e, 0xa7, 0xd8, 0x1a, 0x0c, 0x4e, 0xc1, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xc1, 0x29, 0xd8, 0x00, 0x9e, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x7a, 0x65, 0x72, 0x6f, 0x73, 0x1b, 0x1e, 0x1f, 0xd9, 0x60, 0x70, 0x0a, 0x6e, 0xf8, 0x45, 0x69, 0x83, 0x32, 0x01, 0x77, 0x83, 0x82, 0x34, 0x76, 0x0d, 0xdf, 0xb7, 0x0f, 0x3e, 0x1e, 0x94, 0xcf, 0xb1, 0x6b, 0x50, 0x0c, 0xc8, 0x6e, 0x78, 0x70, 0x67, 0xc3, 0xd3, 0x3a, 0x1b, 0x7e, 0x71, 0xd9, 0xf0, 0xb4, 0xce, 0x41, 0x41, 0x3c, 0xbe, 0xe1, 0xdd, 0x9e, 0x0d, 0x9f, 0x02, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x82, 0xa7, 0x76, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x68, 0xf7, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0xdf, 0xd1, 0x1f, 0xfe, 0xe1, 0x69, 0x0d, 0x6f, 0xeb, 0x6c, 0x78, 0xeb, 0xfe, 0xf0, 0x0f, 0x4f, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xa2, 0xf8, 0x77, 0xc3, 0x83, 0x37, 0x1b, 0x94, 0x8a, 0xb8, 0xb5, 0x1a, 0x8c, 0x1e, 0xc3, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xd1, 0x63, 0xd8, 0x00, 0x3e, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x20, 0x61, 0x6e, 0x64, 0x1b, 0x1e, 0x1f, 0xd9, 0x60, 0xf4, 0x18, 0x6e, 0xf8, 0x45, 0x69, 0xc3, 0xdf, 0x4a, 0x1b, 0x94, 0xf6, 0x96, 0x6b, 0xf8, 0x5c, 0xe9, 0xa0, 0x00, 0xdf, 0xde, 0xf0, 0x15, 0xce, 0x86, 0xbf, 0x68, 0x36, 0xfc, 0x50, 0xb3, 0xe1, 0x83, 0x9c, 0x35, 0xfc, 0x4a, 0x76, 0x70, 0xc6, 0x6e, 0xd8, 0xa0, 0x5c, 0x97, 0xdd, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0x36, 0x38, 0xeb, 0x37, 0x6c, 0x70, 0xc2, 0x70, 0xd8, 0xf0, 0x7b, 0xe0, 0x1a, 0x14, 0xf9, 0xb2, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0xfe, 0x04, 0xda, 0xa0, 0x5c, 0x97, 0xdd, 0xa0, 0xe8, 0x34, 0xde, 0xa0, 0x34, 0xe0, 0xdd, 0xe0, 0xf4, 0xe6, 0xb0, 0xe1, 0x57, 0xb2, 0x83, 0x53, 0xeb, 0x43, 0xab, 0xc1, 0x50, 0x58, 0xdc, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x18, 0x0a, 0x8b, 0x0d, 0xf0, 0xc3, 0xbd, 0xc1, 0x8d, 0xbd, 0xd5, 0xb9, 0xd1, 0x6d, 0x78, 0x7c, 0x64, 0x83, 0xa1, 0xb0, 0xb8, 0xe1, 0x17, 0xa5, 0x0d, 0x5f, 0x2e, 0x6d, 0xf8, 0x20, 0x67, 0xc3, 0xb7, 0x39, 0x1b, 0x1e, 0xbc, 0xd9, 0xa0, 0xb4, 0xb7, 0xdc, 0xa0, 0x20, 0xd2, 0xdd, 0xa0, 0x20, 0x8d, 0x1d, 0xbc, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x5e, 0xf3, 0xd9, 0xa0, 0xcc, 0x62, 0x6e, 0xc3, 0x57, 0x38, 0x1b, 0xfe, 0xa2, 0xd9, 0xa0, 0xcc, 0xd2, 0x1d, 0xf0, 0xe9, 0xe6, 0xee, 0xe8, 0x0d, 0x86, 0xdd, 0xee, 0x1a, 0xfe, 0xcd, 0xd9, 0xf0, 0x98, 0xcc, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x89, 0x66, 0x37, 0x3c, 0x78, 0xb3, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0x6d, 0x07, 0x05, 0xf1, 0xf8, 0xe1, 0xa1, 0x9f, 0x0d, 0x8a, 0x22, 0xde, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x0d, 0x0f, 0xde, 0x1c, 0x1c, 0x42, 0x27, 0x36, 0x28, 0x86, 0x76, 0x37, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x38, 0x9f, 0x4e, 0x6c, 0x78, 0xb7, 0x67, 0xc3, 0x6b, 0x3e, 0x1b, 0x1c, 0x42, 0x27, 0xea, 0x70, 0x8a, 0xad, 0xc1, 0x18, 0x6b, 0xdc, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x18, 0x63, 0x8d, 0x0d, 0xe0, 0x4b, 0x27, 0x17, 0x96, 0xc6, 0x96, 0xe6, 0x76, 0x06, 0xa2, 0x57, 0x26, 0xf7, 0x36, 0xb7, 0xe1, 0xf1, 0x91, 0x0d, 0xc6, 0x58, 0xe3, 0x86, 0x5f, 0x94, 0x36, 0x7c, 0xb9, 0xb4, 0xe1, 0x83, 0x9c, 0x0d, 0xdf, 0xe6, 0x6c, 0x78, 0xf0, 0x66, 0x83, 0xd2, 0xde, 0x72, 0x83, 0x72, 0xe1, 0x7c, 0xc3, 0x57, 0x38, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x1b, 0x1e, 0x93, 0xd9, 0xf0, 0x6e, 0xcf, 0x06, 0x25, 0xd1, 0xec, 0x86, 0x07, 0x6f, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x65, 0xf4, 0xf9, 0x41, 0x41, 0x3c, 0x7e, 0x78, 0xe8, 0x67, 0x83, 0x32, 0xfa, 0x7c, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0xdb, 0xa0, 0xd0, 0x3d, 0xef, 0x70, 0x8a, 0xb5, 0x02, 0xf0, 0xa0, 0x16, 0x26, 0xd7, 0x12, 0xe6, 0x46, 0xd6, 0xa2, 0x56, 0x77, 0xd6, 0xc2, 0xf6, 0x76, 0x96, 0x36, 0x2e, 0x03, 0xf0, 0x24, 0xa3, 0xa6, 0x03, 0xa2, 0x16, 0x26, 0x07, 0x12, 0xe6, 0x46, 0x06, 0xa2, 0x56, 0x77, 0x06, 0xc2, 0xf6, 0x76, 0x96, 0x36, 0xb6, 0xc0, 0xab, 0xd5, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0xc1, 0xab, 0xd5, 0x0d, 0xe0, 0xa3, 0x56, 0x77, 0x06, 0x52, 0xe6, 0x76, 0x96, 0xe6, 0x56, 0xb6, 0x41, 0x69, 0x6f, 0xb9, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x0d, 0x8a, 0x5a, 0xdd, 0x59, 0x6a, 0xc3, 0x9f, 0x4b, 0x83, 0x87, 0x1b, 0x84, 0x7e, 0xc9, 0x06, 0x81, 0xa3, 0xb7, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0xe9, 0x4d, 0xbf, 0x41, 0x98, 0x8e, 0x6d, 0x50, 0x66, 0x5d, 0xd6, 0x06, 0x65, 0xde, 0xe5, 0x2c, 0xb3, 0x06, 0x23, 0xcd, 0x7d, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x36, 0x28, 0xc7, 0x3a, 0x07, 0xf0, 0x0f, 0x23, 0x23, 0x03, 0x59, 0x2b, 0xcb, 0x6b, 0x99, 0x2b, 0xa3, 0x03, 0x81, 0x0b, 0x4b, 0x93, 0xdb, 0xa0, 0x50, 0xee, 0x5c, 0xc3, 0xe7, 0x4a, 0x1b, 0x14, 0xe0, 0x9d, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0xf1, 0x20, 0x4c, 0xc7, 0xda, 0xf0, 0xf5, 0xcb, 0x86, 0xa7, 0x75, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x27, 0x37, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x0e, 0x0a, 0x37, 0xd1, 0xc3, 0x5b, 0x68, 0x1b, 0xde, 0xed, 0x59, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0xb2, 0x05, 0x75, 0x83, 0xb2, 0xa9, 0xfe, 0xf0, 0xd0, 0xcf, 0x86, 0xf7, 0x82, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0x94, 0x2d, 0xa8, 0x1b, 0x94, 0x4d, 0xef, 0x07, 0xa5, 0xba, 0xec, 0xe1, 0x17, 0xa1, 0x66, 0x0d, 0x0a, 0x7f, 0x83, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xc2, 0xdf, 0xa0, 0x01, 0xfc, 0xc9, 0xca, 0xd8, 0x40, 0xd6, 0xca, 0xf2, 0x5a, 0xe6, 0xca, 0xe8, 0x40, 0xe0, 0xc2, 0xd2, 0xe4, 0x36, 0x28, 0x94, 0x3b, 0x37, 0x38, 0x56, 0x59, 0x6c, 0xf8, 0xfa, 0x65, 0xc3, 0xd3, 0x3a, 0x1b, 0x3e, 0xb1, 0xd9, 0xe0, 0xbc, 0x68, 0xb1, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0x78, 0xb9, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x4b, 0xde, 0xd7, 0xa0, 0xf0, 0x37, 0xe8, 0xe0, 0x64, 0x6f, 0x71, 0xf8, 0x45, 0x68, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x22, 0x04, 0x7a, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x59, 0xf2, 0xbe, 0xc1, 0xe1, 0xf4, 0xe2, 0xe0, 0x98, 0x6c, 0x71, 0x78, 0x0b, 0x6d, 0xc3, 0xbb, 0x3d, 0x1b, 0x1c, 0x73, 0x2d, 0x36, 0xbc, 0x17, 0x74, 0x50, 0x66, 0x4b, 0xaf, 0x06, 0x45, 0x24, 0xc1, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0x6d, 0x50, 0x08, 0x9b, 0x1e, 0x94, 0xc5, 0xbe, 0x1b, 0x14, 0xca, 0x9d, 0x6b, 0xf8, 0x73, 0x69, 0x70, 0x71, 0x83, 0xd0, 0x2f, 0xd9, 0x20, 0xa4, 0x4c, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x1c, 0x3e, 0x08, 0xd3, 0xb1, 0x35, 0xfc, 0xb9, 0x34, 0x78, 0x7c, 0x10, 0xa6, 0x63, 0xb5, 0x41, 0x29, 0x21, 0xbe, 0x86, 0x4b, 0x6a, 0x83, 0xa2, 0x46, 0x7c, 0x0d, 0x9f, 0x07, 0x6d, 0xf8, 0x8b, 0x66, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0x90, 0x32, 0x59, 0x83, 0x00, 0x3a, 0xdb, 0xa0, 0xe0, 0xc3, 0x5c, 0x83, 0x62, 0x12, 0x73, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0xc2, 0x74, 0x6c, 0x83, 0x22, 0x15, 0xb3, 0x83, 0xe3, 0x39, 0xc6, 0xe1, 0xc1, 0x9d, 0x0d, 0x0f, 0x4a, 0xae, 0xe1, 0x17, 0x97, 0x35, 0x7c, 0xee, 0x32, 0x38, 0xbc, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xf1, 0x86, 0xb7, 0x75, 0x06, 0x77, 0x07, 0x8f, 0xeb, 0xa0, 0x64, 0xc6, 0xec, 0xf0, 0x5e, 0x50, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0xf5, 0xcb, 0x86, 0xa7, 0x75, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x7c, 0x1e, 0xb4, 0xe1, 0x69, 0x9d, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x83, 0x72, 0xfa, 0x74, 0x0d, 0x0f, 0xee, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0x02, 0x04, 0x75, 0x83, 0x72, 0xea, 0xfa, 0xa0, 0xc8, 0xbb, 0x6e, 0xd6, 0xa0, 0x44, 0x68, 0xd9, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x0d, 0xca, 0x4c, 0xd4, 0x01, 0xbc, 0xcf, 0xca, 0xe8, 0xe6, 0x40, 0xe6, 0xca, 0xe8, 0x40, 0xc4, 0xf2, 0x40, 0xd6, 0xca, 0xf2, 0x36, 0x28, 0x94, 0x3b, 0x37, 0x28, 0xc0, 0x3b, 0x37, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x1f, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x85, 0x9b, 0xe8, 0xc1, 0x31, 0xd9, 0xe2, 0xf0, 0x16, 0xda, 0x06, 0x25, 0x3c, 0xe6, 0x86, 0x7f, 0x78, 0x36, 0x28, 0x28, 0x32, 0x37, 0xbc, 0xad, 0x33, 0x78, 0x7d, 0xf8, 0x87, 0x67, 0x35, 0x28, 0xb9, 0x1b, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x4a, 0xee, 0x86, 0x06, 0xf0, 0x2e, 0xc3, 0x4b, 0x9b, 0xa3, 0x2b, 0x73, 0x1b, 0x2b, 0x03, 0x19, 0x43, 0x2b, 0x1b, 0x5b, 0xdb, 0xa0, 0x50, 0xee, 0xdc, 0xe0, 0x58, 0x65, 0xb1, 0xe1, 0x2f, 0x9a, 0x0d, 0x1f, 0xac, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x35, 0x28, 0xb9, 0x1b, 0xda, 0xa0, 0x6c, 0x7a, 0xdf, 0xe0, 0x68, 0x69, 0xd1, 0xe1, 0x17, 0xa1, 0xc3, 0x29, 0x56, 0x87, 0x53, 0x6c, 0x16, 0x78, 0xb5, 0x70, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0x32, 0x78, 0xb5, 0xb0, 0x01, 0x7c, 0xd4, 0xc2, 0xe4, 0x40, 0xca, 0xdc, 0xce, 0xd2, 0xdc, 0xca, 0x36, 0x28, 0xed, 0x2d, 0xd7, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xa0, 0x41, 0x51, 0x0b, 0x93, 0x4b, 0x6d, 0xf8, 0x73, 0x69, 0xf0, 0x70, 0x83, 0xd0, 0x2f, 0xd9, 0x20, 0x70, 0xf4, 0xd6, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0xbd, 0xe9, 0x37, 0x08, 0xd3, 0xb1, 0x0d, 0x0a, 0x7a, 0xf6, 0xda, 0xa0, 0xcc, 0xbb, 0x9c, 0x65, 0xd6, 0x90, 0x3e, 0xdc, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0xa4, 0x0f, 0x1b, 0x80, 0x8f, 0x30, 0x32, 0xb2, 0x39, 0x90, 0xb5, 0xb2, 0xbc, 0x16, 0xb6, 0xb4, 0x39, 0x3a, 0x10, 0xb8, 0xb0, 0x34, 0xb9, 0x0d, 0x0a, 0xe5, 0xce, 0x0d, 0x8e, 0x55, 0x16, 0x1b, 0x3e, 0xb1, 0xd9, 0xe0, 0xbc, 0x68, 0xb1, 0xe1, 0xdd, 0x9e, 0x0d, 0x8e, 0xb9, 0x16, 0x1b, 0xde, 0x0b, 0x5a, 0xc3, 0x2f, 0x2e, 0x07, 0x05, 0x20, 0x7f, 0xb3, 0x06, 0x25, 0x42, 0xcb, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0x6d, 0x50, 0x66, 0xa2, 0x0e, 0xe0, 0x7f, 0x56, 0x46, 0x37, 0x07, 0xc2, 0x96, 0x36, 0x47, 0x07, 0x22, 0x96, 0x07, 0xb2, 0x56, 0x96, 0x77, 0x70, 0x84, 0xcf, 0x58, 0x0d, 0x86, 0xb0, 0xe7, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0x10, 0xf6, 0x6c, 0x00, 0x2f, 0xb6, 0xb4, 0x39, 0xba, 0x34, 0xb3, 0x3c, 0x10, 0xb5, 0x30, 0xb9, 0x0d, 0x0f, 0x4a, 0x6e, 0x10, 0x80, 0x6c, 0x1b, 0x1e, 0x1f, 0xd9, 0x60, 0x08, 0x7b, 0x6e, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x2e, 0x6e, 0xf8, 0x8b, 0x66, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0x90, 0x32, 0x59, 0x83, 0x00, 0x3a, 0xdb, 0xa0, 0xe0, 0xc3, 0x5c, 0x83, 0x62, 0x12, 0x73, 0x0d, 0x9f, 0x2b, 0x6d, 0x70, 0xca, 0xc6, 0xd8, 0x20, 0x4c, 0xc7, 0x3a, 0x3c, 0xb8, 0xb3, 0xe1, 0x41, 0xc9, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0x91, 0x21, 0x63, 0x0d, 0x9f, 0xbb, 0x0c, 0x1e, 0x6f, 0x78, 0x5b, 0x67, 0xf0, 0xf4, 0xe0, 0x88, 0x93, 0xd1, 0x41, 0xc9, 0x8c, 0xd9, 0x41, 0x41, 0x91, 0x39, 0xe0, 0x8b, 0xc9, 0x91, 0xd1, 0x1b, 0xbe, 0x7e, 0xd9, 0xf0, 0x5e, 0xd0, 0x06, 0x25, 0x3c, 0xe6, 0x86, 0x07, 0x77, 0x36, 0xbc, 0x17, 0xb4, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0x6d, 0x50, 0x94, 0x66, 0xae, 0xe1, 0xf3, 0xa0, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0xfa, 0x65, 0xc3, 0x7b, 0x41, 0x1b, 0x94, 0xf0, 0x98, 0x0b, 0x1e, 0x1f, 0x14, 0xda, 0x98, 0x6b, 0xb8, 0xa4, 0x56, 0x3c, 0x24, 0xa6, 0x3a, 0x28, 0x98, 0x3d, 0x37, 0xfc, 0xe2, 0xb2, 0x86, 0x07, 0x25, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0xa7, 0x8b, 0x8c, 0x0d, 0xce, 0x60, 0x1d, 0x1d, 0x94, 0xcc, 0x98, 0x6b, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0x70, 0x46, 0xef, 0xd8, 0xf0, 0xb6, 0xce, 0xe0, 0xf4, 0xc1, 0x19, 0xbd, 0xa3, 0x3a, 0x9c, 0x62, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0xb6, 0x1a, 0x3e, 0x39, 0x5f, 0x06, 0xf0, 0x95, 0x79, 0xd3, 0x01, 0x19, 0x7b, 0x73, 0xa3, 0x0b, 0x4b, 0x73, 0x2b, 0x93, 0x9b, 0x5b, 0xc0, 0x53, 0x0b, 0x93, 0x37, 0x3c, 0x9c, 0xbf, 0x06, 0x45, 0xeb, 0xc9, 0x00, 0x8f, 0x5d, 0x18, 0x5b, 0x5d, 0xd9, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x7e, 0x6d, 0x61, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x73, 0x1b, 0x84, 0x7e, 0xc9, 0x06, 0x25, 0x62, 0xfd, 0x1a, 0xfe, 0x9d, 0x5f, 0x83, 0xa2, 0xf5, 0xa4, 0xd6, 0x20, 0xf4, 0x4b, 0x36, 0x08, 0x29, 0x93, 0x35, 0xfc, 0x3b, 0xbf, 0xc1, 0x79, 0xd6, 0xa3, 0x5a, 0x0d, 0x8a, 0xcb, 0xf7, 0x0d, 0x0f, 0xe7, 0x6f, 0x10, 0xaa, 0x08, 0x03, 0xbe, 0xd8, 0x98, 0x98, 0xbc, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0xe0, 0xe8, 0x1d, 0x04, 0xb9, 0xc9, 0x86, 0x5f, 0x94, 0x36, 0x28, 0x88, 0x2e, 0x37, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0x36, 0x28, 0x28, 0x32, 0x0f, 0x4f, 0xeb, 0x6c, 0x50, 0xe4, 0xb4, 0x6e, 0x50, 0x96, 0xbc, 0xaf, 0x41, 0x91, 0xba, 0xd0, 0x06, 0x65, 0xd3, 0xfb, 0xe1, 0xa1, 0x9f, 0xd5, 0xa0, 0xb8, 0xac, 0xdf, 0xf0, 0x70, 0xfe, 0x06, 0xe7, 0x55, 0x8f, 0x0d, 0xce, 0x44, 0x1f, 0x6b, 0x10, 0xfa, 0x25, 0x1b, 0x04, 0x8e, 0xde, 0x1a, 0x84, 0x7e, 0xc9, 0x06, 0xa5, 0x37, 0xfd, 0x06, 0x27, 0x7e, 0x8f, 0x83, 0x03, 0xc7, 0x47, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0x9f, 0x4b, 0x83, 0x87, 0x1b, 0x84, 0x7e, 0xc9, 0x06, 0x81, 0xa3, 0x77, 0x50, 0x36, 0xd3, 0x6f, 0xf8, 0x20, 0x67, 0x83, 0xf3, 0xde, 0xc7, 0x06, 0x45, 0x4e, 0xeb, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0xa7, 0xd0, 0x8f, 0x83, 0x63, 0xb2, 0xc5, 0xe1, 0x14, 0x5b, 0xc0, 0x8b, 0x2b, 0xab, 0x37, 0x3c, 0x9c, 0xbf, 0x41, 0xa8, 0x22, 0x6c, 0x70, 0x26, 0xfa, 0xd8, 0xe0, 0xfc, 0xf4, 0xb1, 0xe1, 0x17, 0xa5, 0x0d, 0x0a, 0xa2, 0xcb, 0x0d, 0x1f, 0xe4, 0x6c, 0x70, 0xde, 0xfb, 0xd8, 0xa0, 0xc8, 0x69, 0xdd, 0xa0, 0x2c, 0x79, 0xdf, 0xe0, 0x14, 0xfa, 0xb1, 0x86, 0xb7, 0x75, 0x06, 0x9e, 0xee, 0xed, 0xf0, 0xd0, 0xcf, 0x0a, 0x78, 0x6a, 0x75, 0xe7, 0x86, 0x87, 0xf3, 0x37, 0x38, 0xaf, 0x7a, 0x6c, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0xd5, 0x16, 0x06, 0x07, 0xf2, 0x66, 0x06, 0x32, 0x57, 0x46, 0x37, 0xb7, 0x41, 0xe8, 0x97, 0x6c, 0x50, 0x22, 0xd6, 0x6f, 0x70, 0xe2, 0xf7, 0x58, 0x83, 0xd0, 0x2f, 0xd9, 0xa0, 0x44, 0x7c, 0x3f, 0x38, 0x70, 0x7c, 0x74, 0x38, 0xc5, 0x6a, 0x05, 0xf0, 0x9c, 0x2b, 0x93, 0x4b, 0x0b, 0x63, 0x4b, 0xd3, 0x0b, 0xa3, 0x4b, 0x7b, 0x73, 0x97, 0x01, 0x78, 0x90, 0x81, 0xd3, 0x01, 0x99, 0x2b, 0x93, 0x4b, 0x0b, 0x63, 0x4b, 0xd3, 0x0b, 0xa3, 0x4b, 0x7b, 0x73, 0x5b, 0x83, 0x61, 0xb1, 0xbb, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x30, 0x2c, 0x76, 0x1b, 0xf0, 0xe1, 0xc2, 0xc6, 0xd6, 0x36, 0x3c, 0x3e, 0xb2, 0xc1, 0xb0, 0xd8, 0xdd, 0xf0, 0x8b, 0xd2, 0x06, 0x05, 0x30, 0xfe, 0x86, 0xbf, 0x68, 0x36, 0xfc, 0x50, 0xb3, 0xe1, 0x13, 0x9b, 0x0d, 0x5f, 0x7c, 0x6e, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0xde, 0x6e, 0xf8, 0x8b, 0x66, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0x12, 0xb1, 0x7e, 0x83, 0x30, 0x1d, 0x3b, 0x28, 0x23, 0x6d, 0x0f, 0x0a, 0x8a, 0xcc, 0x0d, 0x0f, 0x4a, 0xae, 0xe1, 0x6d, 0x9d, 0x83, 0x23, 0x4e, 0xc6, 0x86, 0xaf, 0x70, 0x36, 0xfc, 0x45, 0xb3, 0x86, 0xcf, 0x95, 0x36, 0x3c, 0x42, 0xb7, 0xe1, 0x9d, 0xba, 0x35, 0xfc, 0xb9, 0x34, 0xb8, 0x7c, 0x70, 0xd0, 0x10, 0x69, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xf0, 0x71, 0xc3, 0xbb, 0x3d, 0x6b, 0x50, 0x96, 0xbc, 0x6f, 0x50, 0xb8, 0x89, 0x6e, 0x50, 0x36, 0xd5, 0x1f, 0x9c, 0x10, 0x28, 0x0e, 0x0f, 0xfd, 0x6c, 0x50, 0xc2, 0x63, 0x6e, 0xf8, 0x87, 0x67, 0x0d, 0x4a, 0x09, 0xf1, 0x35, 0x5c, 0x52, 0x1b, 0x14, 0x35, 0xe2, 0x6b, 0x70, 0x3e, 0x9d, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0x94, 0x2d, 0xa8, 0x07, 0x67, 0x5a, 0x91, 0xc3, 0xef, 0x67, 0x6d, 0xf8, 0x20, 0x67, 0x83, 0x72, 0x29, 0x7f, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xc9, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x86, 0x95, 0x71, 0x87, 0x87, 0x7e, 0x36, 0xfc, 0xe2, 0xb2, 0x86, 0x77, 0x7b, 0x36, 0xfc, 0x09, 0xb4, 0xe1, 0x31, 0x99, 0x35, 0xbc, 0xad, 0x33, 0x38, 0x7c, 0x50, 0xe4, 0xcb, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x0d, 0x78, 0x37, 0x3c, 0x78, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0x8f, 0x0f, 0x8a, 0x7c, 0xd9, 0x0e, 0x4e, 0x08, 0x14, 0x1b, 0x94, 0x12, 0xe2, 0x6b, 0xb8, 0xa4, 0x36, 0x28, 0x6a, 0xc4, 0xd7, 0xf0, 0x79, 0xd0, 0x86, 0x77, 0x7b, 0x36, 0xfc, 0x09, 0xb4, 0x41, 0xc0, 0xb2, 0x1e, 0xde, 0x42, 0x6b, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0x72, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0xdb, 0xa0, 0x20, 0xd4, 0x6f, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xf0, 0x72, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0xdb, 0xa0, 0x68, 0xd1, 0x5f, 0xc3, 0xe7, 0x41, 0x1b, 0xde, 0xed, 0xd9, 0xf0, 0x27, 0xd0, 0x86, 0xf7, 0x82, 0x0e, 0x0e, 0x78, 0x23, 0x6b, 0x70, 0x3e, 0x9d, 0xd8, 0xf0, 0xb6, 0xce, 0xe0, 0xf2, 0x41, 0x91, 0x2f, 0xdb, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x3f, 0x81, 0x36, 0x08, 0x58, 0xd6, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x4f, 0xa0, 0x0d, 0x8e, 0x78, 0x23, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0xf8, 0xa0, 0x08, 0x81, 0xae, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x21, 0x06, 0x62, 0xc3, 0x63, 0x32, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xd2, 0x80, 0x77, 0x0d, 0xbf, 0xb8, 0x6c, 0x78, 0xf0, 0xe6, 0x20, 0x58, 0x59, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x65, 0xbd, 0xed, 0x86, 0x07, 0x6f, 0x36, 0x38, 0x87, 0x8e, 0xac, 0xe1, 0x6d, 0x9d, 0xc1, 0xe3, 0x83, 0x22, 0x04, 0xba, 0x5a, 0xc3, 0xdb, 0x3a, 0x83, 0xcb, 0x07, 0x45, 0x08, 0x74, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0x23, 0xac, 0x1b, 0x94, 0x4b, 0xf9, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x17, 0xbf, 0x1b, 0x94, 0x59, 0xcc, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xa2, 0xf8, 0x77, 0xc3, 0x83, 0x37, 0x1b, 0x1c, 0x9d, 0x34, 0xaa, 0x0d, 0x0e, 0x2e, 0x23, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0x93, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0x74, 0x34, 0x72, 0x70, 0x42, 0x2c, 0xd9, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0x27, 0xd0, 0x06, 0x01, 0xcb, 0x7a, 0x70, 0xc0, 0x1b, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x1c, 0x62, 0x20, 0x36, 0x28, 0x2a, 0xc5, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xa5, 0x01, 0xef, 0x06, 0x07, 0x76, 0x92, 0x83, 0x53, 0xe8, 0x48, 0x07, 0x27, 0x04, 0x8a, 0x15, 0x78, 0x33, 0x77, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xde, 0xcc, 0xd8, 0xde, 0xc2, 0xe8, 0x58, 0x40, 0xd2, 0xdc, 0xcc, 0xd2, 0xdc, 0xd2, 0xe8, 0xf2, 0x58, 0x40, 0xde, 0xe4, 0x40, 0x9c, 0xc2, 0x9c, 0x95, 0x00, 0x3c, 0x99, 0xeb, 0x99, 0x4b, 0x3b, 0x73, 0x63, 0x01, 0x29, 0xeb, 0x29, 0xc3, 0x83, 0x7b, 0x73, 0x2b, 0x73, 0xa3, 0x63, 0x01, 0x09, 0xeb, 0x09, 0x93, 0x4b, 0xa3, 0x43, 0x6b, 0x2b, 0xa3, 0x4b, 0x1b, 0x03, 0x31, 0x7b, 0x93, 0x6b, 0x97, 0x00, 0x7f, 0x94, 0x96, 0x98, 0x14, 0xaf, 0x39, 0x10, 0x15, 0x90, 0x30, 0x10, 0x15, 0x10, 0x19, 0xaf, 0xb2, 0x36, 0x7c, 0xd4, 0xbe, 0x41, 0xd0, 0xfe, 0xac, 0xe1, 0x73, 0xa5, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x17, 0x6e, 0xae, 0xe1, 0xcf, 0xa5, 0xc1, 0xe7, 0xc3, 0x07, 0xab, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0x72, 0xc3, 0x17, 0x35, 0x1b, 0xea, 0x78, 0xf8, 0xbc, 0x86, 0x3f, 0x97, 0x06, 0x0f, 0x37, 0x7c, 0x51, 0xb3, 0xa1, 0x8e, 0x87, 0xd7, 0xad, 0xe1, 0x73, 0xa5, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x17, 0x9e, 0x6e, 0x70, 0x5a, 0x38, 0x69, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x70, 0x77, 0x83, 0x10, 0x7c, 0xa8, 0xd5, 0x60, 0x58, 0x19, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x0c, 0x2b, 0xe3, 0x06, 0xf0, 0x64, 0x2b, 0x73, 0x3b, 0xa3, 0x43, 0x6b, 0x29, 0x73, 0x1b, 0x7b, 0x23, 0x2b, 0xdb, 0xf0, 0xf8, 0xc8, 0x06, 0xc3, 0xca, 0x78, 0xc3, 0x2f, 0x4a, 0x1b, 0xbe, 0x5c, 0xda, 0xf0, 0x17, 0xcd, 0x86, 0x5f, 0xe7, 0x36, 0x7c, 0x90, 0xb3, 0xe1, 0xdb, 0x9c, 0x0d, 0x4a, 0x21, 0xf2, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xc5, 0x83, 0x32, 0x8b, 0x79, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xf0, 0x71, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0xc5, 0xbf, 0x07, 0xe7, 0x16, 0x87, 0x0d, 0x0a, 0x43, 0xd5, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x4f, 0xa0, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x4f, 0xa0, 0x0d, 0x4f, 0xef, 0x1c, 0x7e, 0x11, 0x3a, 0xbc, 0x85, 0xb6, 0xe1, 0xdd, 0x9e, 0x0d, 0xca, 0x7a, 0xdb, 0x0d, 0x0f, 0xde, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x0a, 0xed, 0xde, 0xc3, 0x2f, 0x42, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x43, 0x0c, 0xc4, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xc8, 0xc4, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0x1e, 0xbc, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x5e, 0xf3, 0x39, 0xfc, 0x22, 0xd4, 0xe1, 0x2d, 0xb4, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x69, 0xc0, 0xbb, 0xc1, 0x71, 0x1b, 0xe5, 0xf0, 0xd0, 0x4f, 0xad, 0xc0, 0x93, 0xb9, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xf0, 0x4e, 0x56, 0x36, 0x96, 0xd6, 0x16, 0xc6, 0x06, 0x62, 0xc6, 0xf6, 0x16, 0x46, 0xc7, 0x02, 0x92, 0xe6, 0x66, 0x96, 0xe6, 0x96, 0x46, 0x97, 0xc7, 0x02, 0xf2, 0x26, 0x07, 0xe2, 0x14, 0xe6, 0xac, 0x04, 0xf0, 0x80, 0xd2, 0x12, 0x93, 0xe2, 0x35, 0x07, 0xa2, 0x02, 0x12, 0x06, 0xa2, 0x02, 0x12, 0x03, 0xe3, 0x55, 0xd6, 0x86, 0x8f, 0xda, 0x37, 0x08, 0xda, 0x9f, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0xc2, 0xc9, 0x83, 0xb3, 0xc2, 0xc9, 0xc1, 0x59, 0xea, 0xe4, 0x70, 0x8a, 0xd5, 0x02, 0x2f, 0xe7, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0x0f, 0x5c, 0x98, 0xdc, 0x5c, 0x19, 0x19, 0x08, 0x59, 0xd9, 0x58, 0x5a, 0x5b, 0x18, 0x1b, 0x88, 0x19, 0xdb, 0x5b, 0x18, 0xdd, 0x86, 0x8f, 0xda, 0x37, 0x08, 0xda, 0x9f, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0x39, 0x37, 0x65, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x1e, 0x3e, 0x58, 0x5d, 0xc3, 0x9f, 0x4b, 0x83, 0x8b, 0x1b, 0x3e, 0x57, 0xda, 0xa0, 0x00, 0x8c, 0x5d, 0xc3, 0xe7, 0x4a, 0x1b, 0x14, 0xff, 0xc0, 0x07, 0x65, 0x56, 0xf4, 0x1a, 0xfe, 0x5c, 0x1a, 0xdc, 0x3c, 0x7c, 0xb0, 0xba, 0x86, 0x3f, 0x97, 0x06, 0x4f, 0x0f, 0x3f, 0xd4, 0xd4, 0x1a, 0x3e, 0x57, 0xda, 0xe0, 0xa8, 0x75, 0xb2, 0xc1, 0x01, 0x48, 0xa5, 0x83, 0xe3, 0xdc, 0xc9, 0xac, 0xc1, 0xb8, 0xbb, 0xde, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x18, 0x77, 0xd7, 0x0d, 0xf0, 0xd5, 0xb9, 0xc1, 0x85, 0x8d, 0xad, 0x6d, 0x78, 0x7c, 0x64, 0x83, 0x71, 0x77, 0xbd, 0xe1, 0x17, 0xa5, 0x0d, 0x5f, 0x2e, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0x30, 0x1d, 0xdb, 0xf0, 0x89, 0xcd, 0x86, 0x2f, 0x3e, 0x37, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x6f, 0x37, 0xfc, 0x45, 0xb3, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0x89, 0x58, 0xbf, 0xe1, 0x87, 0x9a, 0x83, 0x43, 0x4c, 0xc7, 0x41, 0x41, 0x91, 0xb9, 0xe1, 0x41, 0xc9, 0x0d, 0x4e, 0x47, 0x22, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0x17, 0xcd, 0x1a, 0x3e, 0x57, 0xda, 0xf0, 0x08, 0xdd, 0x06, 0x47, 0x39, 0x8c, 0x35, 0xfc, 0xb9, 0x34, 0xb8, 0x7c, 0x70, 0x6e, 0x5a, 0x69, 0xc3, 0x07, 0x39, 0x6b, 0xf8, 0x37, 0x67, 0xc3, 0x83, 0x37, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x24, 0x9a, 0xdd, 0xf0, 0xe0, 0xcd, 0x1a, 0x7e, 0x71, 0xd9, 0xf0, 0x5e, 0xd0, 0x41, 0x41, 0x3c, 0x7e, 0x78, 0xe8, 0x67, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xc7, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x06, 0x88, 0x78, 0x1b, 0xfe, 0x8d, 0x3a, 0x3c, 0xf4, 0xb3, 0xe1, 0x17, 0x97, 0x35, 0x7c, 0x1c, 0xb5, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0xc3, 0x3f, 0x3c, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xf8, 0xf0, 0x0f, 0xcf, 0x1a, 0xde, 0xed, 0xd9, 0xe0, 0x04, 0x30, 0xb2, 0xe1, 0xbd, 0xa0, 0x0d, 0xce, 0x54, 0x2c, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xf8, 0x78, 0x70, 0xce, 0x1e, 0xd9, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0xf0, 0xe0, 0xcd, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x89, 0x66, 0x37, 0x3c, 0x78, 0xb3, 0x86, 0x5f, 0x5c, 0x36, 0xfc, 0x1b, 0x75, 0x50, 0x10, 0x8f, 0x1f, 0x1e, 0xfa, 0x59, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xf0, 0x7a, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0xc3, 0xe7, 0x41, 0x87, 0xa7, 0x77, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xdc, 0xde, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0xf0, 0x79, 0xd0, 0x86, 0x77, 0x7b, 0x36, 0xfc, 0x09, 0xb4, 0x86, 0xb7, 0x75, 0x06, 0x87, 0x0f, 0x82, 0x00, 0xed, 0xf0, 0x8b, 0xd0, 0x1a, 0x9c, 0x4f, 0x27, 0x36, 0xbc, 0xad, 0x33, 0xb8, 0x7c, 0x10, 0x04, 0x68, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x7e, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xeb, 0x0c, 0x1e, 0x1f, 0x04, 0x01, 0xda, 0x1a, 0xde, 0xd6, 0x19, 0x3c, 0x1e, 0xdc, 0xae, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x7f, 0x02, 0x6d, 0x10, 0xb0, 0xac, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x9f, 0x40, 0x1b, 0x9c, 0x87, 0x5a, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf0, 0xc1, 0xa1, 0xb5, 0xa5, 0xd6, 0xf0, 0xb6, 0xce, 0x61, 0x05, 0x6f, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0xd9, 0x82, 0xba, 0x41, 0xd9, 0x54, 0xbf, 0x86, 0xb7, 0x75, 0x06, 0x97, 0x0f, 0x0e, 0xad, 0x2d, 0x6d, 0x78, 0x2f, 0x68, 0x83, 0x43, 0x7e, 0x4b, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x4e, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x53, 0x06, 0xcb, 0xe1, 0x1b, 0xbf, 0x0d, 0xbf, 0xb8, 0x6c, 0x70, 0x52, 0x2e, 0x59, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x21, 0x17, 0xd7, 0x1a, 0xde, 0xed, 0xd9, 0xe0, 0x4c, 0x2a, 0x72, 0x70, 0x0a, 0x1d, 0xe9, 0xe0, 0x84, 0x40, 0xb1, 0x1a, 0x0c, 0x10, 0xf1, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x01, 0x22, 0xde, 0x00, 0x9e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2d, 0x64, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x1b, 0x1e, 0x1f, 0xd9, 0x60, 0x80, 0x88, 0x6f, 0xf8, 0x45, 0x69, 0xc3, 0xdf, 0x4a, 0x1b, 0xfe, 0xa2, 0xd9, 0xf0, 0xeb, 0xdc, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xe3, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0x8b, 0xcb, 0x86, 0xaf, 0x6d, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xed, 0xc1, 0x71, 0x08, 0xa5, 0x0d, 0x5f, 0xe1, 0x6c, 0x78, 0x37, 0x6f, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x46, 0x71, 0xc3, 0xd3, 0x3b, 0x07, 0x27, 0x04, 0x8a, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0xfc, 0x9b, 0xb3, 0xe1, 0xc1, 0x9b, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x12, 0xcd, 0x6e, 0x78, 0xf0, 0x66, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x7f, 0x02, 0x1d, 0x14, 0xbe, 0xba, 0x07, 0x05, 0xf1, 0xf8, 0xe1, 0x2d, 0xb4, 0x0d, 0x4f, 0xef, 0x6c, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x87, 0xcf, 0x03, 0x37, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0x36, 0x3c, 0x78, 0x73, 0x78, 0x7a, 0x67, 0x0d, 0xbf, 0xb8, 0x6c, 0x78, 0x4c, 0xe6, 0xa0, 0x70, 0x92, 0xdd, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0x9c, 0xdc, 0xf0, 0x6e, 0xcf, 0x86, 0x3f, 0x81, 0x36, 0x3c, 0xad, 0xb3, 0xe1, 0x2d, 0xc1, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x2f, 0x37, 0xbc, 0xdb, 0xb3, 0xe1, 0x4f, 0xa0, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xa1, 0xdd, 0x7b, 0x70, 0x48, 0x47, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0x44, 0xb3, 0x1b, 0x1e, 0xbc, 0x59, 0xc3, 0x2f, 0x2e, 0x1b, 0x94, 0xeb, 0xb2, 0x07, 0x87, 0x74, 0x94, 0xc3, 0x5b, 0x68, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x13, 0x68, 0x83, 0x23, 0x1c, 0xca, 0x41, 0x99, 0x2d, 0xbd, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x89, 0x66, 0x37, 0x3c, 0x78, 0xb3, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x3f, 0x81, 0x0e, 0x4e, 0xa8, 0x30, 0x07, 0x65, 0xb6, 0xf4, 0xe1, 0x2d, 0xb4, 0x0e, 0xa7, 0x58, 0x2b, 0x80, 0xc7, 0x5c, 0x19, 0x5d, 0x0b, 0xdb, 0xdb, 0x59, 0xda, 0xb8, 0x0c, 0xe0, 0x29, 0x83, 0xa6, 0x03, 0x32, 0x57, 0x46, 0x07, 0xc2, 0xf6, 0x76, 0x96, 0x36, 0xb6, 0xc0, 0xa7, 0xb9, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0xc1, 0xa7, 0xb9, 0x0d, 0xe0, 0x33, 0x57, 0x46, 0x07, 0x52, 0xe6, 0x76, 0x96, 0xe6, 0x56, 0xb6, 0xe1, 0xf1, 0x91, 0x81, 0x4f, 0x73, 0x37, 0x28, 0xed, 0x2d, 0x37, 0x28, 0x88, 0x2e, 0x37, 0x28, 0xf3, 0x2e, 0x67, 0x99, 0x35, 0x18, 0x40, 0xe4, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0x03, 0x88, 0xbc, 0x01, 0x7c, 0xd8, 0xde, 0xce, 0xd2, 0xc6, 0xc2, 0xd8, 0x40, 0x9e, 0xa4, 0x36, 0x3c, 0x3e, 0xb2, 0xc1, 0x00, 0x22, 0xdf, 0xa0, 0x50, 0xee, 0x5c, 0xc3, 0x9f, 0x4b, 0x83, 0x8b, 0x07, 0x07, 0xf8, 0x82, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x8b, 0x66, 0xc3, 0x07, 0xab, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x1e, 0xdc, 0xd9, 0xa0, 0x80, 0xcd, 0xdf, 0xf0, 0x2b, 0xd9, 0x06, 0x45, 0xdc, 0xeb, 0x41, 0x41, 0x67, 0xba, 0x02, 0x1e, 0x59, 0xda, 0xb9, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x70, 0x86, 0x93, 0x69, 0x00, 0xdf, 0x30, 0xbc, 0xb4, 0x39, 0x90, 0x37, 0x33, 0x90, 0x30, 0x90, 0x34, 0x37, 0x10, 0xb1, 0x0d, 0xbf, 0x28, 0x6d, 0x50, 0x80, 0x77, 0x6e, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x3e, 0x1e, 0x1e, 0x93, 0xd9, 0xf0, 0x15, 0xce, 0x86, 0xbf, 0x68, 0xd6, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0x9b, 0x30, 0x0f, 0xca, 0x48, 0xdb, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x0f, 0xee, 0x6c, 0x50, 0x50, 0x64, 0x6e, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0x6c, 0x78, 0x2f, 0xe8, 0xa0, 0x64, 0xc6, 0x5c, 0xc3, 0x2f, 0x2e, 0x1b, 0x14, 0x14, 0x99, 0x6b, 0xf8, 0xdc, 0x65, 0xf0, 0x7a, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0xc3, 0x57, 0x12, 0x6d, 0x78, 0x7a, 0xe7, 0x20, 0x58, 0x59, 0xdb, 0xf0, 0x41, 0xce, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x8c, 0x99, 0xb1, 0x0e, 0x4a, 0xbf, 0xd7, 0x35, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x0d, 0x8a, 0x66, 0xcf, 0x35, 0xfc, 0xc3, 0xb3, 0xe1, 0xdd, 0x9e, 0x0d, 0xce, 0x58, 0x33, 0x1b, 0x9e, 0xde, 0x59, 0xc3, 0x8f, 0x30, 0x1b, 0x6a, 0x7e, 0x6c, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x1b, 0x14, 0xa5, 0x99, 0x6b, 0xf8, 0x87, 0x67, 0xc3, 0xbb, 0x3d, 0x1b, 0x9c, 0xb1, 0x66, 0x36, 0x3c, 0xbd, 0xb3, 0x86, 0x1f, 0x61, 0x36, 0xd4, 0xfc, 0xf8, 0x5a, 0x0d, 0x46, 0x9a, 0xfb, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0x6d, 0x50, 0x8e, 0x75, 0x0e, 0xc0, 0x0b, 0x5c, 0x1d, 0xdd, 0x1c, 0x88, 0x18, 0x48, 0x9a, 0x1b, 0x48, 0x18, 0x0b, 0xc8, 0xdc, 0x9b, 0x1c, 0x5d, 0x19, 0xd9, 0x86, 0xc7, 0x47, 0x36, 0x18, 0x69, 0xee, 0x1b, 0x14, 0xca, 0x9d, 0x1b, 0x14, 0xe0, 0x9d, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0xf5, 0xcb, 0x86, 0xa7, 0x75, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x3c, 0xb8, 0xb3, 0x41, 0xa9, 0xe4, 0xb9, 0xe1, 0x83, 0x9c, 0x0d, 0x0e, 0x22, 0x33, 0x1b, 0x9e, 0xd6, 0xd9, 0xf0, 0x41, 0xce, 0x06, 0x27, 0xbe, 0x99, 0x35, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x1f, 0x0f, 0x8a, 0x5a, 0xcf, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0x28, 0x26, 0x31, 0x37, 0x28, 0x52, 0x31, 0x0f, 0xff, 0xf0, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x8a, 0x6a, 0x6e, 0x50, 0x32, 0x63, 0xae, 0xe1, 0x6d, 0x9d, 0xc1, 0xdd, 0xc3, 0x3f, 0x3c, 0xad, 0xe1, 0x92, 0xda, 0xf0, 0xe0, 0xce, 0x1a, 0x0c, 0x52, 0xa9, 0xc3, 0xd3, 0x3b, 0x6d, 0xb8, 0xa4, 0x36, 0xfc, 0xc3, 0xb3, 0x06, 0x05, 0xcf, 0xe6, 0x86, 0x4b, 0x6a, 0xc3, 0x83, 0x3b, 0x6b, 0x30, 0x48, 0xa5, 0x36, 0xbc, 0xad, 0x33, 0xb8, 0x7c, 0xf8, 0x87, 0xa7, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x1f, 0x0f, 0x8a, 0xc6, 0xcc, 0x0d, 0x0a, 0x3e, 0xcc, 0x0d, 0x8e, 0xf4, 0x34, 0x1b, 0x3e, 0xc8, 0xd9, 0xe0, 0x20, 0x51, 0xb3, 0x86, 0x4b, 0x6a, 0xc3, 0x83, 0x3b, 0x6b, 0x50, 0xf0, 0x6c, 0x1e, 0x9e, 0xde, 0x69, 0xc3, 0x25, 0xb5, 0xe1, 0x1f, 0x9e, 0x35, 0x18, 0xa4, 0x52, 0x1b, 0x2e, 0xa9, 0x0d, 0x0f, 0xee, 0xac, 0x41, 0xc1, 0xb3, 0xb9, 0xe1, 0x6d, 0x9d, 0xc1, 0xd9, 0xc3, 0x3f, 0x3c, 0x35, 0x6b, 0x30, 0xd0, 0xea, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x06, 0x5a, 0x7d, 0x03, 0xf8, 0xa5, 0xb9, 0xd1, 0x95, 0xc9, 0xcd, 0x95, 0x8d, 0xd1, 0xa5, 0xbd, 0xb9, 0x6d, 0x78, 0x7c, 0x64, 0x83, 0x81, 0x56, 0xbf, 0x41, 0xa1, 0xdc, 0xb9, 0x86, 0x3f, 0x97, 0x06, 0x17, 0x37, 0x08, 0xa0, 0xb3, 0xc3, 0xd3, 0x3a, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0xf5, 0xcb, 0x86, 0xa7, 0x75, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x7c, 0x1e, 0xb4, 0x41, 0x41, 0x91, 0xb9, 0x41, 0x09, 0x8f, 0xb9, 0xe1, 0xc1, 0x9d, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x29, 0xaa, 0xb9, 0x41, 0xc9, 0x8c, 0xb9, 0x86, 0xb7, 0x75, 0x06, 0x77, 0x0f, 0x9f, 0x07, 0xb5, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x86, 0x07, 0x77, 0x0e, 0xef, 0x05, 0xad, 0xe1, 0xf3, 0xa0, 0xc3, 0xd3, 0x3a, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0x6c, 0x70, 0xbe, 0xb7, 0x39, 0x28, 0x99, 0x31, 0xd7, 0x70, 0x49, 0x6d, 0x78, 0x70, 0x67, 0x0d, 0x06, 0xa9, 0xd4, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x41, 0xd1, 0xec, 0xb9, 0x86, 0xcf, 0x83, 0x36, 0xbc, 0xad, 0x33, 0x38, 0x7b, 0xf8, 0x3c, 0xa8, 0x35, 0x28, 0x78, 0x36, 0x37, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x0d, 0x8a, 0xd2, 0xcc, 0x35, 0x7c, 0x1e, 0xb4, 0xe1, 0x6d, 0x9d, 0xc1, 0xe5, 0xc3, 0xe7, 0x41, 0xb5, 0xe1, 0x83, 0x9c, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x71, 0x70, 0x66, 0x83, 0xf3, 0xbd, 0xcd, 0x41, 0xc1, 0x97, 0xb9, 0x80, 0x3f, 0xe6, 0x86, 0x06, 0xaf, 0xe1, 0x92, 0x5a, 0x83, 0x71, 0xd9, 0xdf, 0x1a, 0x1e, 0xdc, 0xd9, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0x36, 0x28, 0x9a, 0x3d, 0xd7, 0xe0, 0xa0, 0x7b, 0x73, 0x50, 0x50, 0x64, 0xd6, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0x76, 0x70, 0x60, 0xbd, 0xd9, 0xe0, 0xc4, 0x7e, 0xb3, 0x86, 0x4b, 0x6a, 0x83, 0x63, 0xff, 0xcd, 0x1a, 0x1e, 0xdc, 0xd9, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0x36, 0x28, 0x4a, 0x33, 0xd7, 0xe0, 0x54, 0x78, 0x73, 0x50, 0x50, 0x64, 0xd6, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0x76, 0x70, 0xba, 0xbb, 0x39, 0x9c, 0x62, 0x6b, 0x30, 0x56, 0xf0, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0xc6, 0x0a, 0x7e, 0x03, 0x78, 0xce, 0xc1, 0xb1, 0xa5, 0xd1, 0xcd, 0x81, 0x84, 0x81, 0x88, 0xe5, 0x81, 0x88, 0x6d, 0x78, 0x7c, 0x64, 0x83, 0xb1, 0x82, 0xbf, 0x41, 0xa1, 0xdc, 0xb9, 0x41, 0x01, 0xde, 0xb9, 0xe1, 0xeb, 0x97, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0xcf, 0x5d, 0x06, 0x67, 0x0f, 0x4f, 0xeb, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xe5, 0xc3, 0xd3, 0x3a, 0x6d, 0x78, 0x50, 0x72, 0xc3, 0x1d, 0xb5, 0xe1, 0x2b, 0x9c, 0x0d, 0x5f, 0xbf, 0x6c, 0x78, 0x5a, 0x67, 0x83, 0x12, 0x1e, 0x73, 0xc3, 0x83, 0x3b, 0x1b, 0x94, 0x4a, 0x9e, 0x1b, 0x3e, 0xc8, 0xd9, 0xe0, 0x20, 0x32, 0xb3, 0xe1, 0x69, 0x9d, 0x0d, 0x1f, 0xe4, 0x6c, 0x70, 0xe2, 0x9b, 0x59, 0xc3, 0x27, 0x36, 0x1b, 0x9c, 0xb3, 0x69, 0x36, 0x28, 0xf8, 0x30, 0x37, 0x38, 0xd2, 0xd3, 0x1c, 0x9c, 0xad, 0x6a, 0x36, 0x7c, 0x62, 0xb3, 0xc1, 0x39, 0xb3, 0x66, 0x83, 0x82, 0x0f, 0x73, 0x83, 0x23, 0x3d, 0xcd, 0xc1, 0xf1, 0xbc, 0x66, 0x35, 0x18, 0x97, 0xfd, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xe3, 0xb2, 0xbf, 0x01, 0x9e, 0x3a, 0xb7, 0xb4, 0x37, 0xb7, 0x0d, 0x8f, 0x8f, 0x6c, 0x30, 0x2e, 0xfb, 0x37, 0x28, 0x94, 0x3b, 0x37, 0x38, 0xf7, 0xd9, 0x6c, 0xf8, 0x20, 0x67, 0xc3, 0x5f, 0x65, 0x1b, 0x9e, 0xd6, 0xd9, 0xf0, 0x15, 0xce, 0x86, 0xaf, 0x5f, 0x36, 0x3c, 0xad, 0xb3, 0x41, 0x09, 0x8f, 0xb9, 0xe1, 0xf3, 0xa0, 0x0d, 0x4f, 0xeb, 0x6c, 0x50, 0xc2, 0x63, 0x6e, 0x78, 0x70, 0x67, 0xc3, 0x7b, 0x41, 0x1b, 0x3e, 0xc8, 0xd9, 0xe0, 0x80, 0x73, 0xb3, 0x86, 0x4b, 0x6a, 0xc3, 0xe7, 0x41, 0x07, 0xc7, 0xad, 0x9b, 0x0d, 0x1f, 0xe4, 0x6c, 0x70, 0x04, 0xb7, 0x59, 0xc3, 0x07, 0x39, 0x1b, 0x1c, 0x99, 0x6f, 0xd6, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0xa0, 0xf4, 0xd3, 0x3c, 0x38, 0x34, 0xe0, 0x1c, 0x1c, 0x58, 0x6f, 0x36, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x28, 0x92, 0x32, 0x0f, 0x0e, 0x63, 0x38, 0x07, 0xa7, 0xbb, 0x9b, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x8e, 0x83, 0x33, 0x07, 0xa7, 0x77, 0x9b, 0x35, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x38, 0x15, 0xde, 0x6c, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x1b, 0x9c, 0xef, 0x6e, 0xd6, 0xa0, 0x48, 0xca, 0x3c, 0x28, 0x28, 0x32, 0x3b, 0x28, 0x48, 0x33, 0x37, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x38, 0xe8, 0xde, 0x6c, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x1b, 0x1c, 0x59, 0x6f, 0xd6, 0xa0, 0xf4, 0xd3, 0x3c, 0x28, 0x28, 0x32, 0x3b, 0x28, 0x98, 0x3d, 0x0f, 0xa7, 0xd8, 0x1a, 0x94, 0x39, 0x01, 0x1b, 0x9e, 0x27, 0xd9, 0xa0, 0x4c, 0x01, 0xdf, 0xf0, 0xf8, 0xc8, 0x06, 0x65, 0x4e, 0xc0, 0x06, 0x85, 0x72, 0xe7, 0x06, 0xe7, 0x3e, 0x9b, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0xfa, 0x65, 0xc3, 0xd3, 0x3a, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x3e, 0x0f, 0xda, 0xf0, 0xb4, 0xce, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xe3, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x63, 0x05, 0xbf, 0x83, 0xd3, 0xbd, 0xcd, 0x06, 0x05, 0x1f, 0xe6, 0x06, 0x47, 0x7a, 0x9a, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xc9, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x0f, 0xee, 0x1c, 0x9c, 0x22, 0x6c, 0x0e, 0x4e, 0x77, 0x37, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0x97, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x1e, 0xdc, 0x39, 0x38, 0x02, 0xd6, 0x1c, 0x1c, 0x58, 0x6f, 0x36, 0x7c, 0x85, 0xb3, 0xe1, 0x2f, 0x9a, 0x35, 0x7c, 0xae, 0xb4, 0x06, 0xc1, 0x66, 0xba, 0x41, 0x08, 0x3e, 0x6c, 0x70, 0x44, 0xb4, 0xa9, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x8a, 0x7c, 0xd9, 0x0d, 0xca, 0x09, 0xe8, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x8a, 0x10, 0xe8, 0x0d, 0xca, 0x75, 0xd9, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0x51, 0xcd, 0x35, 0xbc, 0xad, 0x33, 0xb8, 0x7b, 0x50, 0xe4, 0xcb, 0xae, 0xe1, 0x6d, 0x9d, 0xc1, 0xdd, 0x83, 0x22, 0x04, 0xba, 0x35, 0x5c, 0x52, 0x1b, 0x14, 0xf9, 0xb2, 0x6b, 0x50, 0xf0, 0x6c, 0x6e, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0x50, 0xe4, 0xcb, 0x1e, 0x1c, 0xda, 0x48, 0x6a, 0xc3, 0x25, 0xb5, 0x41, 0x11, 0x02, 0xbd, 0x06, 0x83, 0x54, 0x6a, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x22, 0x04, 0x7a, 0xc3, 0xdb, 0x3a, 0x83, 0xb3, 0x07, 0x45, 0x08, 0x74, 0x1d, 0x4e, 0xb1, 0x35, 0x28, 0x34, 0x04, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x0a, 0x0d, 0x81, 0x06, 0xf0, 0x62, 0x7b, 0x3b, 0x4b, 0x1b, 0x0b, 0x63, 0x03, 0x09, 0x72, 0x22, 0xda, 0xf0, 0xf8, 0xc8, 0x06, 0x85, 0x86, 0xc0, 0x06, 0x85, 0x72, 0xe7, 0x06, 0xc7, 0x0d, 0x99, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x8b, 0x66, 0xc3, 0x07, 0xab, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x1e, 0xdc, 0xd9, 0xa0, 0xc8, 0x69, 0xdd, 0xf0, 0x08, 0xeb, 0xc1, 0xf9, 0x4b, 0x66, 0x35, 0x28, 0x56, 0x05, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x8a, 0x55, 0x81, 0x06, 0xf0, 0x9a, 0x4b, 0xd3, 0x2b, 0x03, 0x79, 0x33, 0x03, 0x99, 0x2b, 0xa3, 0xdb, 0xf0, 0xa0, 0xe4, 0x06, 0x01, 0xc8, 0xb6, 0x41, 0xd9, 0x25, 0xbb, 0x41, 0xb1, 0x2a, 0xb0, 0xe1, 0x8e, 0x9a, 0x0d, 0xce, 0x83, 0x1d, 0x1b, 0xfe, 0xa2, 0xd9, 0xf0, 0x43, 0xcd, 0x06, 0x25, 0x3c, 0xe6, 0x86, 0x07, 0x77, 0x36, 0x3c, 0x78, 0xb3, 0xe1, 0xe3, 0xa8, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x13, 0xe8, 0xa0, 0xa0, 0x33, 0x5d, 0x0d, 0x4a, 0xd1, 0x81, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0xdb, 0xa0, 0x7c, 0xf9, 0x1c, 0xc0, 0x7b, 0xec, 0xcd, 0xcd, 0xae, 0x4c, 0x8e, 0x0e, 0x84, 0xee, 0x0d, 0x84, 0x2d, 0x6d, 0x8e, 0x6e, 0xc3, 0x83, 0x92, 0x1b, 0x04, 0x20, 0xdb, 0x86, 0xc7, 0x47, 0x36, 0x28, 0x45, 0x07, 0x36, 0x7c, 0x62, 0xb3, 0x41, 0x81, 0xfa, 0xb9, 0xc1, 0x79, 0xb0, 0x63, 0xc3, 0xd7, 0x2f, 0x1b, 0xde, 0x0b, 0x3a, 0x28, 0x73, 0x41, 0x0f, 0xa7, 0xd8, 0x1a, 0x14, 0x91, 0x04, 0x1b, 0x9e, 0x27, 0xd9, 0xe0, 0x10, 0x82, 0xb1, 0xe1, 0xf1, 0x91, 0x0d, 0x8a, 0x48, 0x82, 0x83, 0xa2, 0xe6, 0xf4, 0x70, 0x8a, 0xad, 0x41, 0xe1, 0x6f, 0xb0, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x1b, 0x1c, 0x47, 0x2e, 0x06, 0xf0, 0x16, 0x03, 0xb9, 0x4b, 0xa3, 0x43, 0x7b, 0xab, 0xa3, 0x03, 0x09, 0x73, 0xcb, 0x03, 0x09, 0xdb, 0xf0, 0xf8, 0xc8, 0x06, 0x85, 0xbf, 0xc1, 0x06, 0x85, 0x72, 0xe7, 0x06, 0x05, 0x78, 0xe7, 0x86, 0xaf, 0x70, 0x36, 0x7c, 0xfd, 0xb2, 0xe1, 0x69, 0x9d, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x0f, 0xee, 0x6c, 0x50, 0x50, 0x64, 0x6e, 0x50, 0xec, 0x68, 0x6e, 0x70, 0x10, 0x99, 0x59, 0xc3, 0x07, 0x39, 0x1b, 0x9c, 0xf8, 0x66, 0xd6, 0x70, 0x49, 0x6d, 0x78, 0x70, 0x67, 0x0d, 0x06, 0xa9, 0xd4, 0x41, 0x51, 0xeb, 0xd9, 0x86, 0x4b, 0x6a, 0xc3, 0x83, 0x3b, 0x6b, 0x50, 0xf0, 0x6c, 0x1e, 0x14, 0x8d, 0x99, 0x6d, 0xf8, 0x0a, 0x67, 0xc3, 0x5f, 0x34, 0x1b, 0x1c, 0x95, 0x79, 0x0e, 0x0a, 0xe8, 0xd1, 0xd5, 0xa0, 0x48, 0x5d, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0xa5, 0x1d, 0xeb, 0x86, 0x07, 0x25, 0x37, 0x08, 0x40, 0xb6, 0x0d, 0x8f, 0x8f, 0x6c, 0x50, 0xa4, 0x2e, 0x6c, 0x50, 0xda, 0x5b, 0xae, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0x38, 0x7b, 0x70, 0x18, 0x16, 0x58, 0xc3, 0x9f, 0x4b, 0x83, 0xcb, 0x07, 0x87, 0x61, 0x81, 0x36, 0x38, 0x0f, 0x76, 0x6c, 0xf8, 0x8b, 0x66, 0xc3, 0x07, 0xab, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x1e, 0xdc, 0xd9, 0xa0, 0xc8, 0x69, 0xdd, 0xf0, 0x08, 0xeb, 0x1a, 0x94, 0xf0, 0x98, 0x1b, 0x0c, 0x52, 0xa9, 0x0d, 0x8a, 0x9c, 0xd6, 0x0d, 0x8f, 0xb0, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x8e, 0x83, 0x33, 0x1b, 0x94, 0xcc, 0x98, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xfa, 0x60, 0x90, 0x4a, 0xb5, 0x86, 0xb7, 0x59, 0x37, 0xfc, 0x9b, 0xb3, 0x41, 0xc9, 0x8c, 0x79, 0x70, 0x56, 0x0d, 0x6a, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x0a, 0x9e, 0xcd, 0x0d, 0x8a, 0x9c, 0xd6, 0x0d, 0x8f, 0xb0, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x8e, 0x83, 0x33, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xfa, 0xa0, 0xe0, 0xd9, 0x3c, 0x28, 0xf8, 0x32, 0xd7, 0xf0, 0x36, 0xeb, 0x86, 0x7f, 0x73, 0x36, 0x38, 0x2b, 0x08, 0x1d, 0x94, 0xcc, 0x98, 0xad, 0x41, 0x09, 0x8f, 0xb9, 0x41, 0xe9, 0xa7, 0xb9, 0x41, 0x91, 0xd3, 0xba, 0xe1, 0x11, 0xd6, 0x0d, 0x0a, 0x4a, 0xcd, 0x35, 0xbc, 0xcd, 0xba, 0xe1, 0xdf, 0x9c, 0x0d, 0x4a, 0x66, 0xcc, 0x83, 0x32, 0x5a, 0x73, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x83, 0xa2, 0xd9, 0x73, 0x0d, 0x06, 0xa9, 0xd4, 0x06, 0xc7, 0x70, 0x83, 0x83, 0x92, 0x19, 0xb3, 0xd6, 0xa0, 0x84, 0xc7, 0xdc, 0xa0, 0x48, 0xca, 0xdc, 0xa0, 0xc8, 0x69, 0xdd, 0xf0, 0x08, 0xeb, 0x06, 0xc5, 0x02, 0xe7, 0x1a, 0xde, 0x66, 0xdd, 0xf0, 0x6f, 0xce, 0x06, 0x25, 0x33, 0xe6, 0x41, 0x99, 0xc3, 0xb9, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x41, 0x51, 0x9a, 0xb9, 0x06, 0x05, 0xcf, 0xe6, 0xc1, 0x79, 0x54, 0xa8, 0x5a, 0x0d, 0x4a, 0xee, 0x86, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0xdb, 0xe0, 0x60, 0xa7, 0x31, 0x00, 0x3d, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x3a, 0x62, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x3a, 0x61, 0xbf, 0x0d, 0x8f, 0x8f, 0x6c, 0x50, 0x72, 0x37, 0x6c, 0x50, 0x28, 0x77, 0x6e, 0x50, 0x80, 0x77, 0x6e, 0xf8, 0x8b, 0x66, 0xc3, 0x07, 0xab, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xe0, 0xef, 0x9d, 0x5c, 0x18, 0x1c, 0x48, 0x19, 0x1e, 0x9d, 0x5c, 0xd8, 0x18, 0x5d, 0x19, 0x19, 0x48, 0x1a, 0x5d, 0x59, 0x1b, 0x08, 0x5d, 0x1e, 0x5c, 0x19, 0x48, 0x9a, 0x1b, 0x48, 0x18, 0x48, 0x9d, 0x5b, 0x1a, 0x1d, 0x88, 0x58, 0xd9, 0x58, 0x58, 0xdd, 0x5c, 0x19, 0x88, 0x58, 0x9d, 0x1b, 0x5d, 0x9a, 0xdb, 0x19, 0x88, 0x59, 0x58, 0x1a, 0xdb, 0xbc, 0x12, 0x00, 0x1d, 0x24, 0x99, 0x81, 0xdc, 0x95, 0x81, 0xd4, 0xcd, 0x95, 0x91, 0x81, 0xd0, 0xa1, 0x95, 0x81, 0xc8, 0x95, 0x85, 0xb1, 0x81, 0xa4, 0xd1, 0x95, 0xb5, 0x81, 0xd0, 0xe5, 0xc1, 0x95, 0x81, 0xbc, 0x99, 0x81, 0x7c, 0xfd, 0x78, 0xa1, 0x84, 0x81, 0xb8, 0xb9, 0x84, 0x81, 0x84, 0x84, 0xa4, 0x80, 0x84, 0xcd, 0x81, 0xd0, 0xa1, 0x95, 0x81, 0xcc, 0x85, 0xb5, 0xc1, 0xb1, 0x95, 0x81, 0xd0, 0xe5, 0xc1, 0x95, 0xb1, 0x25, 0x00, 0x3a, 0xa0, 0x43, 0x2b, 0x73, 0x03, 0x41, 0x7b, 0x7b, 0x73, 0x03, 0xb9, 0x7b, 0xab, 0x63, 0x23, 0x03, 0x11, 0xab, 0x73, 0xa3, 0x03, 0x49, 0xa3, 0x03, 0xa1, 0x7b, 0x03, 0x19, 0x93, 0x2b, 0x0b, 0xa3, 0x2b, 0x03, 0xa1, 0x43, 0x2b, 0x03, 0x21, 0x2b, 0x33, 0x0b, 0xab, 0x63, 0xa3, 0x03, 0x99, 0x0b, 0x6b, 0x83, 0x63, 0x2b, 0x03, 0x31, 0x7b, 0x93, 0x03, 0xa1, 0x43, 0x2b, 0x03, 0x39, 0x0b, 0xa3, 0x2b, 0x73, 0xad, 0x04, 0xe0, 0x3f, 0xd2, 0xdb, 0x5d, 0x99, 0x5d, 0x99, 0x1c, 0x0b, 0x88, 0x58, 0x9d, 0x1b, 0x5d, 0x9a, 0xdb, 0x19, 0x08, 0x1d, 0x5a, 0x18, 0x1d, 0x48, 0x19, 0x1e, 0x9c, 0x5c, 0xd9, 0xdc, 0x5c, 0xda, 0x9b, 0x1b, 0x88, 0x59, 0x58, 0x1a, 0xdb, 0x1c, 0x48, 0x9a, 0x19, 0x88, 0x4e, 0x18, 0x48, 0xda, 0x1c, 0x88, 0x9f, 0x0b, 0x48, 0x92, 0x19, 0xc8, 0x5d, 0x19, 0xc8, 0x9d, 0x5c, 0x18, 0x1c, 0x48, 0x1a, 0xbd, 0x04, 0xa0, 0x7f, 0x9a, 0x1b, 0x48, 0x18, 0x48, 0x9d, 0x5b, 0x1a, 0x1d, 0x0b, 0x08, 0x1d, 0x5a, 0x19, 0x88, 0x58, 0x9d, 0x1b, 0x5d, 0x19, 0x19, 0x48, 0x9d, 0x5b, 0x1a, 0x1d, 0x08, 0xd9, 0x5b, 0xd9, 0x9c, 0xdb, 0x09, 0x1d, 0x48, 0x9a, 0xdb, 0x18, 0x5b, 0x1d, 0x59, 0x19, 0x08, 0x1d, 0x5a, 0x19, 0x88, 0x58, 0x9d, 0x1b, 0x5d, 0x19, 0x19, 0x48, 0x1a, 0x5d, 0x59, 0x1b, 0x08, 0x5d, 0x1e, 0x5c, 0x99, 0x6b, 0x25, 0x00, 0x5e, 0xa0, 0x42, 0x4b, 0x9b, 0x03, 0xb9, 0x0b, 0xcb, 0x03, 0xb9, 0x2b, 0x03, 0x19, 0x0b, 0x73, 0x03, 0x29, 0x73, 0x9b, 0xab, 0x93, 0x2b, 0x03, 0xa1, 0xcb, 0x83, 0x2b, 0x03, 0x99, 0x0b, 0x33, 0x2b, 0xa3, 0xcb, 0x03, 0x79, 0x33, 0x03, 0xd1, 0x11, 0x03, 0xb9, 0x4b, 0xa3, 0x43, 0x7b, 0xab, 0xa3, 0x03, 0x71, 0x2b, 0x2b, 0x23, 0x4b, 0x73, 0x3b, 0x03, 0xa1, 0x7b, 0x03, 0x81, 0x2b, 0x93, 0x33, 0x7b, 0x93, 0x6b, 0x97, 0x00, 0xda, 0xe9, 0xd0, 0xd2, 0xe6, 0x40, 0xcc, 0xc2, 0xd2, 0xd8, 0xd2, 0xdc, 0xce, 0x40, 0xc4, 0xea, 0xdc, 0xe8, 0x5c, 0x40, 0x92, 0xe8, 0x4e, 0xe6, 0x40, 0xc2, 0x40, 0xd0, 0xc2, 0xc6, 0xd6, 0x5c, 0x0d, 0xf8, 0x63, 0x6e, 0x64, 0xf4, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0xa0, 0xc8, 0x3c, 0xbc, 0x85, 0xb6, 0xe1, 0x17, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0xb8, 0x78, 0x50, 0xf6, 0x60, 0x6e, 0x50, 0x4a, 0x88, 0xaf, 0xe1, 0x92, 0xda, 0xa0, 0xa8, 0x11, 0x5f, 0xc3, 0xe7, 0x41, 0x07, 0x47, 0x83, 0x82, 0x36, 0x7c, 0x85, 0xb3, 0xe1, 0x2f, 0x9a, 0x0d, 0x1f, 0xac, 0x6e, 0x50, 0xc2, 0x63, 0x6e, 0x78, 0x70, 0x67, 0x83, 0x02, 0x36, 0x7f, 0xc3, 0x07, 0x39, 0x1b, 0x1c, 0x44, 0x66, 0x36, 0x28, 0x72, 0x5a, 0x37, 0x7c, 0x90, 0xb3, 0xc1, 0x89, 0x6f, 0x66, 0x83, 0xa2, 0xd6, 0xf3, 0xa0, 0x68, 0xcc, 0x3c, 0x9c, 0x62, 0xad, 0xc1, 0xc8, 0x5c, 0xda, 0xf0, 0x3c, 0xc9, 0x06, 0xe5, 0x91, 0xeb, 0x86, 0xc7, 0x47, 0x36, 0x18, 0x99, 0x4b, 0x1b, 0x14, 0xca, 0x9d, 0x1b, 0x94, 0xdf, 0xae, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0x8f, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0xd0, 0x2f, 0xd9, 0xa0, 0x44, 0x7c, 0x5f, 0x83, 0x00, 0x3a, 0xdb, 0xa0, 0xe0, 0xc3, 0xdc, 0xa0, 0x90, 0xc4, 0x3c, 0x28, 0xe2, 0x5e, 0x3b, 0x28, 0x28, 0x32, 0x37, 0x7c, 0x85, 0xb3, 0x41, 0x09, 0x8f, 0xb9, 0xe1, 0xc1, 0x9d, 0x0d, 0x4f, 0xef, 0x6c, 0x50, 0xf4, 0xe9, 0x6e, 0xf8, 0x87, 0x67, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0xd9, 0x82, 0xba, 0x41, 0xd9, 0xf4, 0x7e, 0xf8, 0x45, 0x68, 0x83, 0x22, 0xee, 0xb5, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0xff, 0xf0, 0xac, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0x6d, 0x50, 0x34, 0x7b, 0xae, 0xe1, 0x1f, 0x9e, 0xc3, 0xd3, 0x3b, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x1b, 0x14, 0xa5, 0x99, 0x07, 0x67, 0x6a, 0xa4, 0x59, 0x83, 0x31, 0xff, 0xb4, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x1b, 0x14, 0x11, 0xe6, 0x03, 0xf0, 0x20, 0x57, 0x46, 0x56, 0x37, 0x56, 0x06, 0x42, 0xf7, 0x06, 0x02, 0x27, 0xf7, 0x46, 0x56, 0x37, 0x46, 0xb7, 0xe1, 0xf1, 0x91, 0x0d, 0xc6, 0xfc, 0xd3, 0x06, 0x85, 0x72, 0xe7, 0x1a, 0xfe, 0x5c, 0x1a, 0x5c, 0xdc, 0x20, 0x80, 0xce, 0x36, 0x28, 0x25, 0xc4, 0x37, 0x28, 0x28, 0x32, 0x37, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0x36, 0x08, 0xd3, 0xb1, 0x83, 0x43, 0x4c, 0xc7, 0x86, 0x4b, 0x6a, 0x0d, 0xe3, 0x52, 0x1b, 0xbe, 0xc2, 0xd9, 0xa0, 0x84, 0xc7, 0xdc, 0xf0, 0xe0, 0xce, 0x1a, 0x2e, 0xa9, 0x35, 0x8c, 0xcb, 0xe1, 0xf3, 0xa0, 0x36, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x0d, 0x8a, 0xd2, 0xcc, 0x35, 0x38, 0x0a, 0x27, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x1b, 0x14, 0xcd, 0x9e, 0x6b, 0x70, 0x14, 0x4e, 0xda, 0xf0, 0x6e, 0xcf, 0x86, 0xf7, 0x82, 0x36, 0x28, 0x99, 0x31, 0x37, 0x38, 0xf1, 0x26, 0x55, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0xb6, 0x00, 0x1e, 0x6d, 0x61, 0x70, 0x2d, 0x6c, 0x6f, 0x67, 0x69, 0xe3, 0x32, 0x80, 0xa7, 0x4c, 0x9a, 0x0e, 0x48, 0x5b, 0x18, 0x1c, 0x08, 0xdb, 0xdb, 0x59, 0xda, 0xd8, 0x02, 0x2f, 0x96, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x06, 0x2f, 0x96, 0x37, 0x80, 0x4f, 0x5b, 0x18, 0x1c, 0x48, 0x99, 0xdb, 0x59, 0x9a, 0x5b, 0xd9, 0x86, 0xc7, 0x47, 0x06, 0x5e, 0x2c, 0xdf, 0xa0, 0xb4, 0xb7, 0x5c, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x80, 0x06, 0xa5, 0x2d, 0x0c, 0x2e, 0x75, 0x70, 0x7c, 0x00, 0xd9, 0xa0, 0xcc, 0xbb, 0x9c, 0x65, 0x16, 0xf0, 0xea, 0xdc, 0xde, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xe3, 0xbc, 0x52, 0x03, 0x78, 0x9e, 0x95, 0xb9, 0x95, 0xc9, 0x85, 0xb1, 0x81, 0xd4, 0xb9, 0xa5, 0xbd, 0xb9, 0x6d, 0x50, 0x28, 0x77, 0x6e, 0x70, 0xee, 0xb3, 0xd9, 0xa0, 0x50, 0xee, 0x5c, 0xc3, 0x9f, 0x4b, 0x03, 0x5e, 0x5b, 0xd9, 0xb9, 0x41, 0x38, 0x8d, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0xc2, 0x74, 0xec, 0xe0, 0xa8, 0x98, 0x74, 0x10, 0xa6, 0x63, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0xf5, 0xcb, 0x86, 0xa7, 0x75, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x7c, 0x1e, 0xb4, 0xe1, 0x69, 0x9d, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x0f, 0xee, 0x6c, 0x78, 0x2f, 0x68, 0xc3, 0x07, 0x39, 0x6b, 0xf8, 0x37, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0x0e, 0x1f, 0x1c, 0xfd, 0x6d, 0x36, 0xbc, 0xad, 0x33, 0x38, 0x7c, 0x50, 0x68, 0x63, 0x2e, 0xe0, 0x8f, 0xb1, 0xb1, 0xcd, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xa3, 0xf9, 0xd2, 0x1a, 0xfe, 0xa2, 0x59, 0x83, 0x00, 0x3a, 0xdb, 0xa0, 0xe0, 0xc3, 0xdc, 0xa0, 0x90, 0xc4, 0xdc, 0xf0, 0xb6, 0xce, 0xc1, 0x19, 0xbd, 0x63, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x33, 0xd6, 0x52, 0x1b, 0x1c, 0xcd, 0x97, 0x36, 0x38, 0xcc, 0x30, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xe3, 0x83, 0xa3, 0xbf, 0x4d, 0xad, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0x6d, 0x70, 0xbe, 0xbb, 0x39, 0x28, 0x98, 0x3d, 0x37, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x0d, 0x8e, 0xac, 0x37, 0x07, 0x05, 0x69, 0xe6, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xa5, 0xa8, 0xe6, 0x06, 0x47, 0xf3, 0xa5, 0x0d, 0x0e, 0xd4, 0x4b, 0xad, 0xe1, 0x83, 0x9c, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x71, 0x70, 0x66, 0x83, 0x03, 0xf5, 0xd2, 0x06, 0x47, 0xf3, 0xa5, 0x0e, 0x8e, 0xc8, 0x3a, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x1c, 0x07, 0x67, 0x0e, 0xce, 0xc9, 0x4c, 0x07, 0x07, 0x97, 0x9d, 0xd5, 0x60, 0x00, 0x91, 0x6f, 0x78, 0x9e, 0x64, 0x83, 0x63, 0x75, 0xcc, 0x86, 0xc7, 0x47, 0x36, 0x18, 0x40, 0xe4, 0x1b, 0x14, 0xca, 0x9d, 0x1b, 0x1c, 0x37, 0x64, 0x36, 0x7c, 0x85, 0xb3, 0xe1, 0x2f, 0x9a, 0x0d, 0x1f, 0xac, 0x6e, 0x50, 0xc2, 0x63, 0x6e, 0x78, 0x70, 0x67, 0x83, 0x02, 0x36, 0x7f, 0xc3, 0xaf, 0x64, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x7b, 0x41, 0x1b, 0x1c, 0x66, 0x98, 0x3a, 0x28, 0xe8, 0x4c, 0x57, 0x83, 0x33, 0x9c, 0xcc, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0x6d, 0x70, 0x36, 0x94, 0x19, 0xc0, 0x33, 0x0c, 0x2f, 0x6d, 0x0e, 0xe4, 0xcd, 0x0c, 0x44, 0x0c, 0x64, 0xad, 0x2c, 0x6f, 0xc3, 0x2f, 0x4a, 0x1b, 0x14, 0xe0, 0x9d, 0x1b, 0x3e, 0xb1, 0xd9, 0xe0, 0xe0, 0x2c, 0xb3, 0xe1, 0x2b, 0x9c, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0x68, 0x97, 0xd9, 0xa0, 0x84, 0xc7, 0xdc, 0xf0, 0xe0, 0xce, 0x06, 0x05, 0x45, 0xe6, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x86, 0xf7, 0x82, 0x0e, 0x8e, 0xe6, 0x4b, 0x1b, 0x1c, 0x6f, 0x66, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x0e, 0xce, 0x6c, 0x78, 0x2f, 0xe8, 0xe0, 0x9c, 0xcf, 0x74, 0x70, 0xd0, 0x9c, 0x59, 0x0d, 0x46, 0x9a, 0xfb, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0x6d, 0x50, 0x8e, 0x75, 0x0e, 0xc0, 0x4b, 0x18, 0x19, 0xd9, 0x1c, 0xc8, 0x5a, 0x59, 0x5e, 0x8b, 0x5d, 0x18, 0x5b, 0x5d, 0x19, 0x08, 0x5c, 0x58, 0x9a, 0xdc, 0x86, 0xc7, 0x47, 0x36, 0x18, 0x69, 0xee, 0x1b, 0x14, 0xca, 0x9d, 0x1b, 0x1c, 0xab, 0x2c, 0x36, 0x7c, 0x85, 0xb3, 0xe1, 0xeb, 0x97, 0x0d, 0x4f, 0xeb, 0x6c, 0x50, 0xc2, 0x63, 0x6e, 0x78, 0x70, 0x67, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x17, 0x97, 0xc3, 0x73, 0x41, 0x07, 0x65, 0x99, 0xe7, 0x86, 0x0f, 0x72, 0x36, 0x38, 0x14, 0x39, 0xad, 0xe1, 0x83, 0x9c, 0x35, 0xfc, 0x9b, 0xb3, 0xe1, 0xe9, 0x9d, 0x83, 0xc3, 0x0c, 0xd3, 0x86, 0xa7, 0x75, 0x36, 0x5c, 0x52, 0x1b, 0x1e, 0xdc, 0x59, 0x83, 0x61, 0xb7, 0x7b, 0x70, 0x0a, 0x79, 0x6a, 0xc3, 0x07, 0x39, 0x1b, 0x9c, 0xd3, 0x9c, 0xd6, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0x9c, 0x3c, 0x28, 0x6a, 0x3d, 0x37, 0x28, 0xf8, 0x30, 0xd7, 0xa0, 0x98, 0xc4, 0xdc, 0xa0, 0x48, 0xc5, 0x3c, 0x28, 0xf2, 0x65, 0x37, 0x7c, 0x90, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x45, 0x35, 0x37, 0x38, 0x9a, 0x2f, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0x83, 0xd3, 0x4d, 0x4f, 0x6b, 0xb8, 0xa4, 0x36, 0x3c, 0xb8, 0xb3, 0x06, 0x83, 0x54, 0xea, 0xa0, 0x5c, 0x97, 0x6d, 0xc3, 0x25, 0xb5, 0x41, 0x91, 0x2f, 0xbb, 0x06, 0x05, 0xcf, 0xe6, 0x86, 0x4b, 0x6a, 0xc3, 0x83, 0x3b, 0x6b, 0x30, 0x48, 0xa5, 0x0e, 0x0e, 0x6d, 0x24, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0x38, 0x79, 0x50, 0x34, 0x66, 0x6e, 0x50, 0xf0, 0x61, 0x6e, 0x70, 0xb8, 0x7d, 0xda, 0xf0, 0x41, 0xce, 0x06, 0xe7, 0xea, 0xa7, 0x35, 0x5c, 0x52, 0x1b, 0x1e, 0xdc, 0x59, 0x83, 0x82, 0x67, 0xf3, 0xa0, 0x5c, 0x97, 0x6d, 0xc3, 0x25, 0xb5, 0x41, 0x91, 0x2f, 0xbb, 0x06, 0x83, 0x54, 0x6a, 0xc3, 0x25, 0xb5, 0xe1, 0xc1, 0x9d, 0x35, 0x28, 0x78, 0x36, 0x37, 0xbc, 0xad, 0x33, 0x38, 0x7b, 0x50, 0xe4, 0xcb, 0xd6, 0xac, 0xc1, 0x40, 0xab, 0xdf, 0xf0, 0x3c, 0xc9, 0x06, 0xe7, 0x19, 0x9b, 0x0d, 0x8f, 0x8f, 0x6c, 0x30, 0xd0, 0xea, 0x37, 0x28, 0x94, 0x3b, 0x37, 0x38, 0xf7, 0xd9, 0x6c, 0xf8, 0x0a, 0x67, 0xc3, 0xd7, 0x2f, 0x1b, 0x9e, 0xd6, 0xd9, 0xa0, 0x84, 0xc7, 0xdc, 0xf0, 0x79, 0xd0, 0x06, 0x05, 0x45, 0xe6, 0x06, 0x25, 0x3c, 0xe6, 0x86, 0x07, 0x77, 0x36, 0x28, 0x28, 0x32, 0x37, 0x7c, 0x90, 0xb3, 0xc1, 0x61, 0x97, 0x69, 0x0d, 0x1f, 0xe4, 0x6c, 0x70, 0x66, 0x5e, 0xda, 0xe0, 0x5c, 0xa9, 0xb3, 0xe1, 0x83, 0x9c, 0x0d, 0x8e, 0xe2, 0x4c, 0x07, 0xa7, 0xf5, 0x9b, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x0d, 0x8e, 0xe6, 0x4b, 0x07, 0x07, 0xea, 0xa5, 0x35, 0x5c, 0x52, 0x1b, 0x3e, 0x0f, 0x5a, 0x83, 0x41, 0x2a, 0x75, 0x70, 0xea, 0x63, 0x5a, 0x83, 0x82, 0x67, 0xf3, 0xe0, 0x88, 0xc9, 0xd4, 0x86, 0x0f, 0x72, 0x36, 0x38, 0x46, 0x34, 0xad, 0xc1, 0x89, 0xfd, 0x66, 0x0d, 0x97, 0xd4, 0x06, 0xc7, 0xfe, 0x9b, 0x35, 0x3c, 0xb8, 0x73, 0x70, 0x16, 0xda, 0xe9, 0xa0, 0x68, 0xcc, 0xdc, 0xe0, 0xc4, 0x7e, 0xb3, 0x86, 0x4b, 0x6a, 0x83, 0x63, 0xff, 0xcd, 0x1a, 0x1e, 0xdc, 0x39, 0x38, 0x0b, 0xee, 0x74, 0x50, 0xd4, 0x7a, 0x1e, 0x4e, 0xb1, 0x35, 0x18, 0x2b, 0xf8, 0x1b, 0x9e, 0x27, 0xd9, 0xe0, 0xfc, 0x8a, 0xb3, 0xe1, 0xf1, 0x91, 0x0d, 0xc6, 0x0a, 0xfe, 0x06, 0x85, 0x72, 0xe7, 0x06, 0x05, 0x78, 0xe7, 0x86, 0xaf, 0x70, 0x36, 0x7c, 0xfd, 0xb2, 0xc1, 0x51, 0x21, 0x67, 0x83, 0x12, 0x1e, 0x73, 0xc3, 0x83, 0x3b, 0x6b, 0xf8, 0xc5, 0xe5, 0xa0, 0x2c, 0xf3, 0xdc, 0xf0, 0x41, 0xce, 0x06, 0x87, 0x22, 0xa7, 0x0d, 0x4a, 0x1d, 0xfd, 0x0d, 0x1f, 0xe4, 0x6c, 0x70, 0x4e, 0x73, 0x5a, 0xc3, 0x27, 0x36, 0x1b, 0x9c, 0x38, 0x9f, 0x36, 0x28, 0xf8, 0x30, 0x37, 0x38, 0xdc, 0x3e, 0x6d, 0xf8, 0xc5, 0x65, 0x83, 0xa3, 0x34, 0xd4, 0x06, 0xe7, 0x19, 0xa8, 0x36, 0x7c, 0x62, 0xb3, 0xc1, 0x11, 0x0b, 0x6a, 0x83, 0x82, 0x0f, 0x73, 0x83, 0xc3, 0xed, 0xd3, 0x86, 0x5f, 0x5c, 0x36, 0x38, 0xf6, 0x42, 0x6d, 0x70, 0x68, 0x23, 0x69, 0x35, 0x18, 0x97, 0xfd, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0xc1, 0xb9, 0x3e, 0x67, 0x00, 0xbf, 0x3a, 0xb7, 0xb4, 0x37, 0x37, 0x16, 0x90, 0xb6, 0x32, 0xb9, 0xb3, 0xb2, 0x0d, 0x8f, 0x8f, 0x6c, 0x30, 0x2e, 0xfb, 0x37, 0x28, 0x94, 0x3b, 0x37, 0x38, 0xf7, 0xd9, 0x6c, 0xf8, 0x0a, 0x67, 0xc3, 0xd7, 0x2f, 0x1b, 0x9e, 0xd6, 0xd9, 0xa0, 0x84, 0xc7, 0xdc, 0xf0, 0x79, 0xd0, 0x86, 0xa7, 0x75, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x3c, 0xb8, 0xb3, 0xe1, 0xbd, 0xa0, 0x0d, 0x1f, 0xe4, 0x6c, 0x70, 0x66, 0x5e, 0xda, 0xe0, 0x5c, 0xa9, 0x73, 0x70, 0x9e, 0x65, 0x3a, 0x9c, 0x62, 0x6b, 0x50, 0xe6, 0x04, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0x32, 0x05, 0x7c, 0xc3, 0xe3, 0x23, 0x1b, 0x94, 0x39, 0x01, 0x1b, 0x14, 0xca, 0x9d, 0x1b, 0x9c, 0xfb, 0x6c, 0x36, 0x7c, 0x85, 0xb3, 0xe1, 0xeb, 0x97, 0x0d, 0x4f, 0xeb, 0x6c, 0x50, 0xc2, 0x63, 0x6e, 0xf8, 0x3c, 0x68, 0xc3, 0xd3, 0x3a, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0x8f, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0xd0, 0xc2, 0x73, 0x70, 0x90, 0x66, 0xda, 0xa0, 0xe0, 0xc3, 0xdc, 0xe0, 0x48, 0x4f, 0xb3, 0xe1, 0x13, 0x9b, 0x0d, 0x4e, 0x5b, 0x3c, 0x1b, 0x3e, 0xb1, 0xd9, 0xe0, 0xf8, 0xc8, 0xb3, 0xe1, 0x2b, 0x9c, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0x54, 0xe6, 0xd9, 0xa0, 0x84, 0xc7, 0xdc, 0xa0, 0xc8, 0x97, 0xdd, 0xa0, 0x9c, 0x80, 0xde, 0xa0, 0x84, 0xc7, 0xdc, 0xa0, 0x08, 0x81, 0xde, 0xa0, 0x5c, 0x97, 0xdd, 0xf0, 0x41, 0xce, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x14, 0xd5, 0xdc, 0xe0, 0xd4, 0xfe, 0xb4, 0x86, 0xb7, 0x75, 0x06, 0x87, 0x0f, 0x0e, 0x4a, 0x3d, 0x1d, 0x1c, 0xac, 0x7a, 0x0e, 0xa7, 0xd8, 0x1a, 0x14, 0xab, 0x02, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0xc1, 0x81, 0xcf, 0x67, 0x00, 0x3f, 0xb2, 0x32, 0x38, 0x3a, 0x34, 0x90, 0x37, 0x33, 0x90, 0xb6, 0x30, 0xb8, 0x83, 0xc3, 0xa9, 0xcf, 0x6a, 0x50, 0x8a, 0x0e, 0x6c, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x06, 0xe5, 0xcb, 0xe7, 0x00, 0x9e, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x66, 0x79, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x07, 0xc7, 0xa9, 0x9f, 0x15, 0xf0, 0xda, 0xc2, 0xe4, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x63, 0x75, 0x55, 0x03, 0xf0, 0x12, 0x46, 0x46, 0x06, 0x72, 0x97, 0x46, 0x87, 0x06, 0x62, 0x17, 0xc6, 0x96, 0x46, 0x16, 0x46, 0x97, 0xf6, 0xe6, 0xb6, 0x41, 0xa1, 0xdc, 0xb9, 0x86, 0xcf, 0x95, 0x36, 0x28, 0xc0, 0x3b, 0xd7, 0xf0, 0xe7, 0xd2, 0xe0, 0xe3, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0xd9, 0x84, 0x79, 0x70, 0x88, 0xe9, 0x68, 0x83, 0x12, 0x1e, 0x73, 0xc3, 0x3f, 0x3c, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x1c, 0x1c, 0x4e, 0x2f, 0x0e, 0x6f, 0xa1, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x02, 0x04, 0x75, 0xc3, 0x7b, 0x41, 0x07, 0x27, 0xc4, 0x92, 0x15, 0xf0, 0xce, 0xde, 0xe8, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xe3, 0xaa, 0x55, 0x03, 0xf0, 0xe0, 0x56, 0x56, 0x46, 0x06, 0x62, 0x17, 0xc6, 0x56, 0x57, 0x06, 0x22, 0x96, 0x07, 0xb2, 0x56, 0x96, 0xb7, 0x41, 0xa1, 0xdc, 0xb9, 0x41, 0x01, 0xde, 0xb9, 0xe1, 0xdd, 0x9e, 0x0d, 0xce, 0x86, 0x2e, 0x07, 0x87, 0x73, 0x8d, 0xc3, 0x29, 0xd6, 0x02, 0x9e, 0x5d, 0x18, 0xbb, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x70, 0x36, 0xb9, 0x6a, 0x00, 0x3f, 0xb6, 0xb4, 0x39, 0x3a, 0x90, 0x37, 0x33, 0x10, 0xbb, 0x30, 0xb6, 0xb9, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xc5, 0x0d, 0x7f, 0xd1, 0xac, 0x41, 0xe8, 0x97, 0x6c, 0x10, 0x52, 0x26, 0x1b, 0x1c, 0x37, 0x98, 0x3a, 0x28, 0x28, 0x32, 0x37, 0x7c, 0x85, 0xb3, 0xe1, 0xeb, 0x97, 0x0d, 0xef, 0x05, 0x6d, 0x50, 0xc2, 0x63, 0x6e, 0x78, 0x70, 0x67, 0xc3, 0x7b, 0x41, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x06, 0x45, 0x69, 0xe6, 0x1a, 0x3e, 0x0f, 0xda, 0xf0, 0x8b, 0xcb, 0x06, 0x87, 0x19, 0xa6, 0x83, 0xf2, 0x26, 0xb4, 0x59, 0xc0, 0x93, 0x4b, 0x13, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x0e, 0x00, 0x58, 0x0d, 0xc0, 0x0b, 0x9d, 0x5c, 0x98, 0xdb, 0x9c, 0xd9, 0x9b, 0x5c, 0x1b, 0xc8, 0x0a, 0x08, 0x9c, 0xdc, 0x1b, 0x59, 0xdd, 0x18, 0xdd, 0x06, 0x85, 0x72, 0xe7, 0x1a, 0x3e, 0x57, 0xda, 0xa0, 0x00, 0xef, 0x5c, 0xc3, 0x9f, 0x4b, 0x83, 0x8f, 0x07, 0x45, 0xbd, 0x6b, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0xf5, 0xcb, 0x1a, 0x7e, 0x71, 0x39, 0x28, 0x9d, 0x9e, 0x37, 0x28, 0xe1, 0x31, 0x37, 0x3c, 0xb8, 0xb3, 0x86, 0x5f, 0x5c, 0x36, 0xbc, 0x17, 0x74, 0x50, 0xd6, 0x79, 0x6e, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x4e, 0x6e, 0x78, 0xb7, 0x67, 0xc3, 0xd3, 0x3b, 0x1b, 0x94, 0xcc, 0x98, 0x87, 0xb7, 0xd0, 0x36, 0x28, 0xfa, 0x74, 0x37, 0x28, 0xb4, 0x31, 0xd7, 0x70, 0x49, 0xad, 0xf1, 0xfc, 0xa0, 0xc8, 0x97, 0x6d, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xf0, 0x72, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0xdb, 0xa0, 0x68, 0xf6, 0x5c, 0xc3, 0xe7, 0x41, 0x1b, 0x2e, 0xa9, 0x35, 0x0e, 0x1d, 0x14, 0xf9, 0xb2, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xb8, 0xb9, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0x6d, 0x50, 0x94, 0x66, 0xae, 0xe1, 0xf3, 0xa0, 0x0d, 0x97, 0xd4, 0x1a, 0x87, 0x0e, 0x8a, 0x10, 0xe8, 0xda, 0xf0, 0x8b, 0xcb, 0x1a, 0x2e, 0xa9, 0x35, 0x0e, 0x1d, 0x04, 0x78, 0x50, 0x6b, 0xb8, 0xa4, 0x36, 0x3c, 0xb8, 0xb3, 0x06, 0x83, 0x54, 0x6a, 0xc3, 0x25, 0xb5, 0xc6, 0xf3, 0x83, 0x22, 0x04, 0xba, 0x35, 0x28, 0x78, 0x36, 0x37, 0x5c, 0x52, 0x6b, 0x3c, 0x3f, 0x08, 0xf0, 0xa0, 0xea, 0x70, 0x8a, 0xb5, 0x06, 0xe5, 0x75, 0xc9, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x79, 0x5d, 0xd2, 0x00, 0xbc, 0x84, 0xc1, 0xc1, 0xb1, 0xe5, 0x81, 0x9c, 0x85, 0xd1, 0x95, 0x81, 0xd0, 0xbd, 0x81, 0xb8, 0xbd, 0x91, 0x95, 0xcd, 0x6d, 0x78, 0x7c, 0x64, 0x83, 0xf2, 0xba, 0x64, 0x83, 0x42, 0xb9, 0x73, 0x0d, 0x7f, 0x2e, 0x0d, 0x2e, 0x6e, 0x10, 0x4e, 0x63, 0x1b, 0x9c, 0x07, 0x93, 0x0e, 0xc2, 0x74, 0x6c, 0xc3, 0x57, 0x38, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x1e, 0xdc, 0xd9, 0xa0, 0xa0, 0xc8, 0xdc, 0x70, 0x49, 0x6d, 0x78, 0x70, 0x67, 0x0d, 0x86, 0xdd, 0xee, 0x86, 0x4b, 0x6a, 0x83, 0x42, 0x1b, 0x73, 0x0d, 0x8e, 0x38, 0x19, 0x1b, 0xde, 0xed, 0xd9, 0xf0, 0x5e, 0xd0, 0x06, 0x47, 0xf3, 0xa5, 0x83, 0x93, 0x69, 0x53, 0x1b, 0x1c, 0x18, 0x81, 0x0e, 0x4e, 0xa8, 0x40, 0xb3, 0x06, 0x85, 0x86, 0xc0, 0x86, 0xe7, 0x49, 0x36, 0x38, 0x6f, 0xf7, 0x6c, 0x78, 0x7c, 0x64, 0x83, 0x42, 0x43, 0x60, 0x83, 0x42, 0xb9, 0x73, 0x83, 0xe3, 0x86, 0xcc, 0x86, 0xaf, 0x70, 0x36, 0xfc, 0x45, 0xb3, 0xe1, 0x83, 0xd5, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x0f, 0xee, 0x6c, 0x50, 0xe4, 0xb4, 0x6e, 0x78, 0x84, 0xf5, 0xe0, 0x84, 0xd9, 0xb4, 0x1a, 0x14, 0xad, 0x27, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0x45, 0xeb, 0x49, 0x03, 0x78, 0xcd, 0x95, 0xd1, 0x81, 0xbc, 0x99, 0x81, 0xac, 0x95, 0xe5, 0xcd, 0x6d, 0x78, 0x50, 0x72, 0x83, 0x00, 0x64, 0xdb, 0xf0, 0xf8, 0xc8, 0x06, 0x45, 0xeb, 0xc9, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xe2, 0x86, 0xbf, 0x68, 0xd6, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0x11, 0xdf, 0xd7, 0x20, 0x80, 0xce, 0x36, 0x28, 0xf8, 0x30, 0x37, 0x28, 0x24, 0x31, 0x0f, 0x8e, 0xe6, 0x4b, 0x1d, 0x14, 0x14, 0x99, 0x1b, 0x9c, 0x07, 0x3b, 0x36, 0x7c, 0xfd, 0xb2, 0xe1, 0xbd, 0xa0, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x0f, 0xee, 0x6c, 0x78, 0x2f, 0x68, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0xdb, 0xa0, 0x28, 0xcd, 0x5c, 0xc3, 0xe7, 0x41, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x06, 0x45, 0xb3, 0xe7, 0x1a, 0x3e, 0x0f, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0x94, 0x2d, 0xa8, 0x1b, 0x94, 0x4d, 0xef, 0x87, 0xb7, 0xd0, 0x0e, 0xce, 0xf9, 0x4c, 0xb5, 0x1a, 0x14, 0x91, 0x04, 0x1b, 0x9e, 0x27, 0xd9, 0xe0, 0x10, 0x82, 0xb1, 0xe1, 0xf1, 0x91, 0x0d, 0x8a, 0x48, 0x82, 0x0d, 0x0a, 0xe5, 0xce, 0x0d, 0xce, 0x3e, 0x18, 0x1b, 0x94, 0x12, 0xe2, 0x6b, 0xb8, 0xa4, 0x36, 0x28, 0x6a, 0xc4, 0xd7, 0xf0, 0x79, 0xd0, 0x86, 0xbf, 0x68, 0x36, 0x28, 0x98, 0x3f, 0x0f, 0xef, 0x05, 0x75, 0x70, 0x62, 0xca, 0x38, 0x9c, 0x62, 0x6b, 0x50, 0x68, 0xaa, 0x6c, 0x78, 0x7c, 0x64, 0x83, 0x42, 0x53, 0x65, 0x83, 0x42, 0xb9, 0x73, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0x0d, 0x8a, 0xd6, 0x93, 0x83, 0x43, 0xfa, 0xd6, 0x1a, 0xfe, 0x5c, 0xda, 0x60, 0xac, 0x0a, 0x6c, 0x10, 0x4e, 0x63, 0x1b, 0x1c, 0x37, 0x98, 0x0e, 0x8e, 0x1b, 0x4c, 0x6d, 0xf8, 0xfa, 0x65, 0xc3, 0xd3, 0x3a, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x1e, 0xdc, 0xd9, 0x20, 0x3c, 0x55, 0x37, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0xd6, 0xf0, 0xb6, 0xce, 0xc1, 0x71, 0xe0, 0xe3, 0xe0, 0x68, 0xbe, 0xb4, 0x86, 0x4b, 0x6a, 0xc3, 0x83, 0x3b, 0x2b, 0x78, 0x7c, 0x30, 0xec, 0x76, 0x37, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x18, 0xab, 0x02, 0x1d, 0x9c, 0x4c, 0x9b, 0xda, 0xf0, 0x41, 0xce, 0x1a, 0xde, 0xed, 0xd9, 0xe0, 0x38, 0x38, 0xb3, 0xc1, 0xa1, 0xb5, 0xeb, 0xe0, 0x9c, 0xcf, 0x74, 0x70, 0xf4, 0x03, 0x3a, 0x9c, 0x62, 0x6b, 0x50, 0xf8, 0x1b, 0x6c, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x06, 0xc7, 0x91, 0x8b, 0x01, 0xbc, 0xc9, 0xca, 0xd8, 0xca, 0xe8, 0xca, 0x40, 0xc2, 0xe8, 0x40, 0xd6, 0xca, 0xf2, 0x40, 0xc4, 0x36, 0x3c, 0x3e, 0xb2, 0x41, 0xe1, 0x6f, 0xb0, 0x41, 0xa1, 0xdc, 0xb9, 0x41, 0x01, 0xde, 0xb9, 0xe1, 0x2b, 0x9c, 0x0d, 0x5f, 0xbf, 0x6c, 0x78, 0x5a, 0x67, 0x83, 0x12, 0x1e, 0x73, 0xc3, 0x83, 0x3b, 0x1b, 0x14, 0x14, 0x99, 0x1b, 0x14, 0x3b, 0x9a, 0x1b, 0x1c, 0x8a, 0x9c, 0xd6, 0xf0, 0x41, 0xce, 0x06, 0xe7, 0x34, 0xa7, 0x83, 0xa3, 0x1f, 0xd0, 0x86, 0xaf, 0x70, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0x51, 0x99, 0x67, 0x83, 0x12, 0x1e, 0x73, 0x83, 0xd2, 0x4f, 0x73, 0x83, 0x52, 0x36, 0x73, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x22, 0x29, 0x73, 0x83, 0x52, 0xdb, 0x73, 0xc3, 0x07, 0x39, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x52, 0x54, 0x73, 0x0d, 0x6f, 0xeb, 0x0c, 0x0e, 0x1f, 0x14, 0xdf, 0x9a, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0xf8, 0xa0, 0x38, 0xe2, 0xec, 0xa0, 0xd8, 0x23, 0x5d, 0x0d, 0x4a, 0x84, 0x96, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0xdb, 0xa0, 0xcc, 0x44, 0x1d, 0x80, 0x87, 0x33, 0xb9, 0x30, 0x31, 0x10, 0xbb, 0x30, 0xb6, 0xba, 0x32, 0x10, 0xb1, 0x3c, 0x90, 0xb5, 0xb2, 0xbc, 0x0d, 0x8f, 0x8f, 0x6c, 0x50, 0x22, 0xb4, 0x6c, 0x50, 0x28, 0x77, 0x6e, 0x50, 0x80, 0x77, 0x6e, 0x50, 0x4a, 0x88, 0xaf, 0xe1, 0x92, 0xda, 0xa0, 0xa8, 0x11, 0x5f, 0xc3, 0xe7, 0x41, 0x1b, 0xfe, 0xa2, 0xd9, 0xe0, 0x90, 0xbe, 0x75, 0x78, 0x2f, 0xa8, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x8b, 0x66, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0xb2, 0x09, 0xf3, 0xe0, 0x24, 0x79, 0xb5, 0x41, 0x09, 0x8f, 0xb9, 0xe1, 0xc1, 0x9d, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x1f, 0xe4, 0x6c, 0x70, 0x28, 0x72, 0x5a, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xf3, 0x38, 0x42, 0x07, 0x27, 0xd3, 0xa6, 0x0d, 0x1f, 0xe4, 0x6c, 0x70, 0x4e, 0x73, 0x3a, 0x38, 0xf6, 0x1e, 0xad, 0x06, 0x45, 0xea, 0xc2, 0x86, 0xe7, 0x49, 0x36, 0x28, 0xed, 0x58, 0x37, 0x3c, 0x28, 0xb9, 0x41, 0x00, 0xb2, 0x6d, 0x78, 0x7c, 0x64, 0x83, 0x22, 0x75, 0x61, 0x83, 0xd2, 0xde, 0x72, 0x83, 0xd3, 0x44, 0xd0, 0x06, 0xe7, 0xc1, 0x8e, 0x0d, 0x7f, 0xd1, 0x6c, 0xf8, 0x60, 0x75, 0x83, 0x12, 0x1e, 0x73, 0xc3, 0x83, 0x3b, 0x1b, 0x14, 0x39, 0xad, 0x1b, 0x1e, 0x61, 0x5d, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x41, 0x2a, 0xb5, 0x41, 0x91, 0xd3, 0xba, 0xe1, 0x11, 0xd6, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x71, 0x70, 0x66, 0x83, 0xa3, 0xf9, 0xd2, 0xc1, 0x49, 0x35, 0x68, 0x0d, 0x6f, 0xb3, 0x6e, 0xf8, 0x37, 0x67, 0x83, 0xa3, 0xf9, 0xd2, 0xc1, 0x59, 0x35, 0xa8, 0x35, 0x28, 0xe1, 0x31, 0x37, 0x28, 0x78, 0x36, 0x37, 0x28, 0x72, 0x5a, 0x37, 0x3c, 0xc2, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x0e, 0xce, 0x6c, 0x70, 0x56, 0x10, 0x3a, 0x38, 0xe7, 0x33, 0xad, 0xe1, 0x6d, 0xd6, 0x0d, 0xff, 0xe6, 0x6c, 0x70, 0x56, 0x10, 0x3a, 0x38, 0x9a, 0x2f, 0xb5, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0xa5, 0x9f, 0xe6, 0x06, 0x45, 0x4e, 0xeb, 0x86, 0x47, 0x58, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xa5, 0xa8, 0xe6, 0x06, 0x47, 0xf3, 0xa5, 0x0d, 0x0e, 0x3c, 0x5f, 0xad, 0xe1, 0x6d, 0xd6, 0x0d, 0xff, 0xe6, 0x6c, 0x70, 0x34, 0x5f, 0x3a, 0x38, 0xf0, 0x7c, 0xad, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0x6d, 0x50, 0x34, 0x7b, 0xae, 0xc1, 0x20, 0x95, 0xda, 0xe0, 0x18, 0x6e, 0x70, 0x70, 0x34, 0x5f, 0xaa, 0x35, 0x28, 0xe1, 0x31, 0x37, 0x28, 0x92, 0x32, 0x37, 0x28, 0x72, 0x5a, 0x37, 0x3c, 0xc2, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x45, 0x35, 0x37, 0x38, 0x9a, 0x2f, 0x1d, 0x9c, 0x9c, 0xbe, 0xd6, 0xf0, 0x36, 0xeb, 0x86, 0x7f, 0x73, 0x36, 0x38, 0x9a, 0x2f, 0x1d, 0x9c, 0x9d, 0xbe, 0xd6, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0x36, 0x28, 0x4a, 0x33, 0xd7, 0xa0, 0xe0, 0xd9, 0x3c, 0x38, 0xb4, 0x88, 0x55, 0xab, 0x41, 0xc9, 0xdd, 0xb0, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x1b, 0x1c, 0xec, 0x34, 0x06, 0xe0, 0x65, 0xad, 0x2c, 0x0f, 0xa4, 0x0c, 0x2f, 0x6d, 0x8e, 0xae, 0xcc, 0x6d, 0xac, 0x0c, 0x64, 0x0c, 0xad, 0x6c, 0x6c, 0x6d, 0xc3, 0xe3, 0x23, 0x1b, 0x94, 0xdc, 0x0d, 0x1b, 0x14, 0xca, 0x9d, 0x1b, 0x14, 0xe0, 0x9d, 0x1b, 0xde, 0x66, 0xdd, 0xf0, 0x6f, 0xce, 0x06, 0x05, 0x45, 0xe6, 0xc1, 0xd1, 0xd2, 0xe2, 0x70, 0x8a, 0xb5, 0x80, 0x77, 0x56, 0x47, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x9c, 0x98, 0xc6, 0x1a, 0x80, 0x07, 0xb3, 0x30, 0x36, 0x36, 0x10, 0xbb, 0x30, 0xb6, 0xba, 0x32, 0x10, 0xb1, 0x3c, 0x90, 0xb5, 0xb2, 0xbc, 0x0d, 0x0a, 0xe5, 0xce, 0x0d, 0x8e, 0x55, 0x16, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x9c, 0xfa, 0x18, 0xda, 0xe0, 0x68, 0x69, 0x71, 0xf8, 0x45, 0xe8, 0x70, 0x8a, 0xad, 0xc1, 0xc8, 0x5c, 0xda, 0xf0, 0x3c, 0xc9, 0x06, 0xe5, 0x91, 0xeb, 0x86, 0xc7, 0x47, 0x36, 0x18, 0x99, 0x4b, 0x1b, 0x14, 0xca, 0x9d, 0x1b, 0x94, 0xdf, 0xae, 0x1b, 0xbe, 0xc2, 0xd9, 0xa0, 0x84, 0xc7, 0xdc, 0xf0, 0xe0, 0xce, 0x86, 0xa7, 0x75, 0x36, 0xfc, 0xe2, 0xb2, 0x86, 0xcf, 0x5d, 0x06, 0x77, 0x37, 0xfc, 0xe2, 0xb2, 0x86, 0xcf, 0x5d, 0x06, 0x87, 0x0f, 0x8e, 0xe6, 0x4b, 0x6b, 0xf8, 0xdc, 0x65, 0xf0, 0xf8, 0xe0, 0x8c, 0xd9, 0xd4, 0x41, 0xb1, 0xf9, 0x7a, 0x70, 0xf0, 0x47, 0x3a, 0x9c, 0x62, 0x87, 0x53, 0xec, 0x70, 0x8a, 0xb5, 0x00, 0xfe, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2d, 0x68, 0x61, 0x63, 0x6b, 0xf3, 0x32, 0x00, 0x3f, 0x32, 0x6e, 0x3a, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x20, 0x68, 0x61, 0x63, 0x6b, 0x73, 0x0b, 0xf8, 0x66, 0x6f, 0x72, 0xe5, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0x5e, 0x70, 0x61, 0x69, 0x72, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x1b, 0x14, 0xca, 0x9d, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0xf0, 0x20, 0x94, 0xc6, 0x36, 0x28, 0x94, 0x3b, 0xd7, 0xf0, 0xe7, 0xd2, 0xe0, 0xe2, 0x41, 0x28, 0x8d, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0xd2, 0x9b, 0xfe, 0xf0, 0xfb, 0xd9, 0x0a, 0xf8, 0x63, 0x6f, 0x72, 0xeb, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0xde, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x1b, 0x14, 0xca, 0x9d, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x33, 0x45, 0xd9, 0x06, 0x87, 0x97, 0xb2, 0x36, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0xfc, 0xb1, 0x37, 0x39, 0xb6, 0x83, 0xd2, 0xe9, 0x79, 0x05, 0x7c, 0xba, 0xb2, 0x39, 0x7a, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x80, 0xbf, 0x2c, 0xae, 0x2e, 0x8c, 0x2d, 0x8d, 0x2e, 0x6f, 0xc3, 0x2f, 0x4a, 0x1b, 0x14, 0xa9, 0x98, 0x1b, 0xfe, 0xcd, 0xd9, 0xe0, 0xf8, 0x6e, 0x70, 0x70, 0xce, 0x4c, 0x3a, 0x9c, 0x62, 0x0b, 0xf8, 0x63, 0x75, 0x72, 0xf9, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0xa9, 0xc5, 0xac, 0x01, 0x7c, 0xc6, 0xea, 0xe4, 0xe4, 0xf2, 0x40, 0xd8, 0xca, 0xcc, 0xe8, 0x36, 0x28, 0x94, 0x3b, 0xd7, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0xdc, 0x20, 0x9c, 0xc6, 0x36, 0x28, 0x52, 0x31, 0x0f, 0xc2, 0x74, 0xec, 0xa0, 0x1c, 0xc7, 0xdf, 0xa0, 0x50, 0xee, 0x5c, 0xc3, 0x9f, 0x4b, 0x83, 0x8f, 0x1b, 0x04, 0xd0, 0xd9, 0x86, 0xb7, 0x75, 0x36, 0x24, 0xa6, 0x36, 0x8c, 0xcb, 0xe1, 0xc1, 0x9d, 0x0d, 0xef, 0xf6, 0x6c, 0x78, 0x5a, 0xe7, 0xf0, 0x5c, 0xd0, 0x0a, 0xf8, 0x73, 0x61, 0x6d, 0xe5, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0x7f, 0x1a, 0x59, 0x99, 0x1b, 0x5d, 0x1a, 0x5d, 0xde, 0x06, 0x85, 0x72, 0xe7, 0x06, 0x61, 0x3a, 0xb6, 0xe1, 0x92, 0x5a, 0x43, 0xea, 0xa0, 0x56, 0xc0, 0x0f, 0x33, 0xa3, 0x93, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x81, 0x0b, 0x4b, 0x93, 0x03, 0x09, 0x33, 0xa3, 0x2b, 0x93, 0xdb, 0xa0, 0x50, 0xee, 0xdc, 0xe0, 0x4c, 0x51, 0xb6, 0x41, 0xa1, 0xdc, 0xb9, 0xc1, 0xe1, 0xa5, 0x6c, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0xde, 0xf4, 0x07, 0xa5, 0xd3, 0xf3, 0xac, 0x41, 0x10, 0x2e, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xf0, 0x9f, 0x95, 0xd1, 0x81, 0xd0, 0x85, 0xa5, 0xb1, 0x6d, 0x50, 0x28, 0x77, 0x6e, 0x50, 0xa4, 0x62, 0x6e, 0x78, 0x50, 0x72, 0x0d, 0x6f, 0xeb, 0x6c, 0x48, 0x4c, 0x75, 0x70, 0xce, 0x4c, 0x9a, 0x05, 0x7c, 0xb6, 0xb2, 0x30, 0x72, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x80, 0x1f, 0xae, 0x8e, 0x0e, 0x04, 0xad, 0x2c, 0x8c, 0x6c, 0x83, 0x42, 0xb9, 0x73, 0x83, 0x30, 0x1d, 0xdb, 0xa0, 0x50, 0xee, 0xdc, 0x20, 0x4c, 0xc7, 0x36, 0xfc, 0xe2, 0xb2, 0x86, 0x4b, 0x6a, 0x0d, 0x7b, 0x85, 0xb5, 0xc1, 0x69, 0xe5, 0xac, 0x15, 0xf0, 0xc7, 0xea, 0xe4, 0xe4, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x63, 0x19, 0x5a, 0x03, 0x78, 0x8d, 0xd5, 0xc9, 0xc9, 0xe5, 0x81, 0xc8, 0xa5, 0x9d, 0xa1, 0xd1, 0x6d, 0x50, 0x28, 0x77, 0xae, 0xe1, 0x73, 0xa5, 0x0d, 0x4e, 0x7e, 0x66, 0x07, 0x27, 0x32, 0x8b, 0x0d, 0x0a, 0xe5, 0xce, 0x35, 0xfc, 0xb9, 0x34, 0xb8, 0xb8, 0x41, 0x00, 0x9d, 0x6d, 0x78, 0x5b, 0x67, 0x43, 0x62, 0x6a, 0x43, 0x34, 0x0f, 0x0f, 0xee, 0x1c, 0x1c, 0xb4, 0xcd, 0x0e, 0xa7, 0x58, 0xb5, 0x06, 0x87, 0xe0, 0xb2, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x43, 0x70, 0x59, 0x03, 0xf0, 0x30, 0xf6, 0xd6, 0x06, 0xf7, 0x36, 0x57, 0x06, 0x22, 0x16, 0x36, 0xb6, 0x76, 0x17, 0x26, 0x47, 0x36, 0xb7, 0x41, 0xa1, 0xdc, 0xb9, 0xc1, 0x59, 0xb3, 0x6c, 0xc3, 0x83, 0x92, 0x6b, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x43, 0x97, 0x07, 0x57, 0x06, 0x32, 0x86, 0x56, 0x36, 0xb6, 0xb6, 0xe1, 0x41, 0xc9, 0x0d, 0x77, 0xd4, 0x06, 0xe7, 0xc1, 0x8e, 0x0d, 0xef, 0xf6, 0x6c, 0x78, 0x5a, 0x67, 0x0d, 0xef, 0xf6, 0x1c, 0xde, 0x42, 0x6b, 0x83, 0x42, 0xb9, 0x73, 0x0d, 0x7f, 0x2e, 0x0d, 0x3e, 0x6e, 0x10, 0x40, 0x67, 0x1b, 0xde, 0xd6, 0xd9, 0x90, 0x98, 0xda, 0x90, 0x3a, 0x38, 0x7c, 0x1e, 0xb4, 0xe1, 0xdd, 0x9e, 0x0d, 0x4f, 0xeb, 0xac, 0xe1, 0xdd, 0x9e, 0xc3, 0x73, 0x41, 0xad, 0x80, 0xcf, 0x16, 0x46, 0x57, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xf0, 0xc3, 0xd5, 0xd1, 0x81, 0xd0, 0x85, 0xa5, 0xb1, 0x6d, 0x50, 0x28, 0x77, 0x6e, 0x10, 0xa6, 0x63, 0x1b, 0x14, 0xca, 0x9d, 0x1b, 0x84, 0xe9, 0xd8, 0x86, 0x5f, 0x5c, 0x36, 0x38, 0xad, 0x9c, 0x6d, 0x70, 0x6e, 0x42, 0x6b, 0xd6, 0x20, 0x58, 0x96, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xf8, 0xcf, 0xca, 0xe8, 0x40, 0xd0, 0xca, 0xc2, 0xc8, 0x36, 0x28, 0x94, 0x3b, 0x37, 0x28, 0x52, 0x31, 0x37, 0x3c, 0x28, 0xb9, 0xc1, 0x81, 0xfc, 0xec, 0xe0, 0xf8, 0x6e, 0x70, 0x38, 0xc5, 0x16, 0xf0, 0xe7, 0xea, 0xc6, 0xc6, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0x3c, 0xe6, 0xea, 0xc6, 0xc6, 0xca, 0xe6, 0xe6, 0xde, 0xe4, 0x36, 0xfc, 0xa2, 0xb4, 0xe1, 0x87, 0x9a, 0x0d, 0x1f, 0x47, 0x1d, 0x9c, 0x56, 0xce, 0x0e, 0xa7, 0xd8, 0x0a, 0xe0, 0x9f, 0xe6, 0x36, 0x57, 0x36, 0x56, 0x27, 0x57, 0xd6, 0x82, 0x16, 0x36, 0x87, 0x96, 0xe6, 0x76, 0x2e, 0x03, 0xf0, 0x23, 0x53, 0xa6, 0x03, 0x92, 0xe6, 0x36, 0x57, 0x36, 0x56, 0x27, 0x57, 0x06, 0x82, 0x16, 0x36, 0x87, 0x96, 0xe6, 0x76, 0xb6, 0x06, 0xa5, 0x4f, 0xd3, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0xe9, 0xd3, 0xd4, 0x00, 0xfa, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x20, 0x6d, 0x75, 0x72, 0x6d, 0x75, 0x72, 0xb3, 0x0d, 0xca, 0x2e, 0xd9, 0x0d, 0x4a, 0x9f, 0xa6, 0x35, 0x5c, 0x52, 0x6b, 0x3c, 0xde, 0xa0, 0xf4, 0x69, 0xaa, 0xd9, 0xf0, 0x89, 0xcd, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0x14, 0x35, 0xe2, 0x6b, 0x78, 0x5b, 0x67, 0xe0, 0xcd, 0xca, 0xd6, 0xf0, 0x23, 0xcc, 0x86, 0x9a, 0x1f, 0xd7, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xe6, 0xf2, 0xc8, 0xc3, 0x0f, 0x35, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0xb2, 0xb0, 0xf8, 0xf0, 0x43, 0xcd, 0x1a, 0xfe, 0x5c, 0xda, 0xa0, 0x68, 0x3d, 0x39, 0xfc, 0x50, 0xd3, 0x06, 0x45, 0x9f, 0xee, 0x1a, 0x1c, 0x5f, 0xd8, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0x99, 0xb8, 0x1b, 0x1c, 0x16, 0xd8, 0xd6, 0xf0, 0xb6, 0xce, 0xc1, 0x49, 0x8e, 0xad, 0x0d, 0x0a, 0xd2, 0xd8, 0x01, 0x0f, 0x2e, 0x8c, 0x5c, 0xc3, 0xbb, 0x3d, 0x1b, 0x3e, 0x05, 0xdc, 0xa0, 0xf0, 0x32, 0x5e, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0xc5, 0xbf, 0x1b, 0x14, 0x95, 0xe2, 0x1b, 0x1c, 0x5a, 0xbb, 0x6a, 0x83, 0x82, 0x34, 0x76, 0xc0, 0x27, 0x0b, 0xa3, 0x0b, 0xd7, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0xcc, 0x5a, 0x6b, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x10, 0x2d, 0x1f, 0x9c, 0xb0, 0xd9, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0x28, 0x96, 0x6b, 0x0d, 0x6f, 0xeb, 0x6c, 0x70, 0x54, 0x65, 0xeb, 0xa0, 0x70, 0x92, 0x6d, 0x83, 0x82, 0x34, 0x76, 0x80, 0xd7, 0x4d, 0x8c, 0xed, 0x6d, 0x6c, 0x6d, 0x5e, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xfe, 0xd2, 0xdc, 0xe8, 0xca, 0xdc, 0xe8, 0xd2, 0xde, 0xdc, 0xc2, 0xd8, 0xd8, 0xf2, 0x40, 0xde, 0xcc, 0xcc, 0x5a, 0xc4, 0xf2, 0x5a, 0xde, 0xdc, 0xca, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x28, 0xb0, 0x6e, 0x50, 0x78, 0x19, 0xaf, 0xe1, 0x47, 0x98, 0x0d, 0x35, 0x3f, 0xa6, 0x0d, 0x0a, 0xd2, 0xd8, 0x81, 0x46, 0x8b, 0x1b, 0x1c, 0x26, 0xd9, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb9, 0xcb, 0x40, 0x8f, 0xc5, 0x0d, 0x3f, 0xc2, 0x0c, 0x7c, 0x1d, 0x7e, 0x50, 0x78, 0xee, 0xac, 0xe1, 0x73, 0x97, 0x81, 0x1e, 0x93, 0x1b, 0x7e, 0x84, 0x19, 0xf8, 0x3a, 0xfc, 0xa0, 0xa4, 0xdd, 0x69, 0x83, 0x82, 0x34, 0x76, 0x80, 0x4f, 0x8c, 0xed, 0x6d, 0x6c, 0x6d, 0x5e, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0x44, 0xcb, 0x1b, 0x1c, 0x16, 0xd8, 0x0e, 0x4e, 0xe0, 0x6c, 0x1b, 0x14, 0xa4, 0xb1, 0x83, 0xa7, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x83, 0x58, 0x5b, 0x1b, 0x14, 0x7d, 0xba, 0x0b, 0x34, 0x5a, 0x6c, 0x0d, 0x0a, 0xd2, 0xd8, 0x81, 0x47, 0x4b, 0xd7, 0xf0, 0xb6, 0xce, 0xc1, 0x19, 0xd4, 0x6d, 0xc3, 0x57, 0x38, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x1b, 0x1e, 0xbc, 0x39, 0x28, 0xa3, 0xcf, 0xd7, 0xf0, 0xb6, 0xce, 0xc0, 0xa3, 0xa5, 0x6d, 0x50, 0x90, 0xc6, 0x0e, 0xf4, 0x5a, 0x5c, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x7e, 0xdc, 0xca, 0xce, 0xc2, 0xe8, 0xd2, 0xec, 0xca, 0x40, 0xc2, 0xe4, 0xe4, 0xc2, 0xf2, 0x40, 0xd2, 0xdc, 0xc8, 0xca, 0xf0, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x51, 0x39, 0xbf, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0x0a, 0xb8, 0xc1, 0x19, 0xd1, 0xed, 0xa0, 0x34, 0x43, 0x5f, 0xc3, 0xdb, 0x3a, 0x1b, 0x1c, 0x9c, 0xdc, 0x6a, 0x83, 0xa2, 0x4f, 0x77, 0x81, 0x5e, 0x8b, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x8a, 0x99, 0xec, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xf0, 0xd4, 0xae, 0xe1, 0x6d, 0x9d, 0x83, 0x83, 0xe1, 0xdb, 0x1a, 0xde, 0xd6, 0x19, 0xe8, 0xb1, 0x58, 0x6d, 0x50, 0xf4, 0xe9, 0x6e, 0x70, 0x30, 0x7c, 0x5b, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xa2, 0xd0, 0xbb, 0x0d, 0x0f, 0xde, 0xac, 0xe1, 0x47, 0x98, 0x0d, 0x35, 0x3f, 0xe4, 0x1b, 0x9c, 0x56, 0xdf, 0xda, 0xa0, 0xe8, 0xd3, 0xdd, 0xe0, 0x60, 0xf8, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x66, 0xb2, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xc1, 0x53, 0xbb, 0xc1, 0x69, 0xf5, 0x6d, 0x0d, 0x6f, 0xeb, 0x0c, 0xf4, 0x98, 0xac, 0x36, 0x28, 0xfa, 0x74, 0x37, 0x38, 0xbf, 0xbb, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x0e, 0x31, 0x10, 0x1b, 0x1c, 0xd2, 0xdd, 0x0e, 0x4e, 0x06, 0x70, 0x1b, 0x14, 0x7d, 0xba, 0x1b, 0x9c, 0xdf, 0xdd, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x67, 0xf0, 0xb7, 0x0d, 0x0f, 0xde, 0xac, 0xe1, 0x47, 0x98, 0x0d, 0x35, 0x3f, 0xa4, 0x1b, 0x1c, 0xd2, 0xdd, 0xda, 0xa0, 0xe8, 0xd3, 0xdd, 0xe0, 0xfc, 0xee, 0xb6, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0xe5, 0x24, 0x76, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x62, 0x26, 0x7b, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x3c, 0xb5, 0x1b, 0x1c, 0xd2, 0xdd, 0x0e, 0x8e, 0x0a, 0x6c, 0xad, 0xe1, 0x47, 0x98, 0x81, 0xaf, 0xc3, 0x0f, 0xca, 0xad, 0xa0, 0x36, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x28, 0x76, 0xcf, 0x37, 0xbc, 0xdb, 0xb3, 0xe1, 0x35, 0x9f, 0x83, 0xd2, 0x0c, 0xbd, 0x0d, 0x0a, 0xd2, 0xd8, 0x0d, 0x82, 0x70, 0x69, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x4a, 0xaf, 0xaf, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xc1, 0x53, 0xbb, 0xc1, 0xa9, 0xb9, 0x6d, 0x83, 0x33, 0xa2, 0x5b, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x83, 0x3c, 0x5b, 0x6d, 0x50, 0x90, 0xc6, 0x0e, 0xf4, 0x5a, 0xdc, 0xf0, 0xe0, 0xcd, 0x06, 0x05, 0x69, 0xec, 0x80, 0x4f, 0xc7, 0x56, 0xe6, 0xae, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0xe8, 0x31, 0x6c, 0x83, 0xc2, 0xcb, 0xf8, 0xa0, 0xa0, 0x14, 0xdf, 0xa0, 0xe8, 0xd3, 0xdd, 0xe0, 0x0c, 0xea, 0xb6, 0x80, 0x7f, 0x47, 0xc7, 0x36, 0xaf, 0xc1, 0x89, 0x39, 0xae, 0x35, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0xc3, 0x2c, 0x8c, 0x8d, 0x8d, 0x0e, 0x4d, 0xee, 0xad, 0xee, 0x0c, 0x0d, 0x64, 0xee, 0x2e, 0x8d, 0x6e, 0x0c, 0xed, 0xe0, 0x70, 0xeb, 0xb6, 0x06, 0x21, 0x73, 0xba, 0x41, 0xd1, 0xa7, 0xbb, 0xc1, 0xc1, 0xf0, 0x6d, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0x88, 0x81, 0xd8, 0xe0, 0xb4, 0xfa, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x0d, 0x78, 0xd7, 0xf0, 0x8b, 0xcb, 0x86, 0x07, 0x6f, 0xd6, 0xf0, 0x23, 0xcc, 0x86, 0x9a, 0x1f, 0x06, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x8a, 0xca, 0xf9, 0x0d, 0x02, 0x96, 0x75, 0x0d, 0x6f, 0xeb, 0x1c, 0x04, 0xe0, 0x52, 0xb5, 0x41, 0xd1, 0xa7, 0xbb, 0xc1, 0xc1, 0xf0, 0x6d, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0x88, 0x81, 0xd8, 0xe0, 0xb4, 0xfa, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x0d, 0x78, 0xd7, 0xf0, 0x8b, 0xcb, 0x86, 0x07, 0x6f, 0xd6, 0xf0, 0x23, 0xcc, 0x86, 0x9a, 0x1f, 0x82, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x45, 0xe5, 0xfc, 0x86, 0xc7, 0x64, 0x0e, 0x8e, 0xd5, 0x72, 0xb5, 0x41, 0xd1, 0xa7, 0xbb, 0xc1, 0xc1, 0xf0, 0x6d, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0x88, 0x81, 0xd8, 0xe0, 0xb4, 0xfa, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x2a, 0xe7, 0x37, 0x3c, 0x78, 0x73, 0x70, 0xac, 0x96, 0x6b, 0x83, 0xa2, 0x4f, 0x77, 0x83, 0x83, 0xe1, 0xdb, 0x06, 0xa7, 0xc6, 0xb7, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0x0e, 0x86, 0x6f, 0x1b, 0x1c, 0xb3, 0xdf, 0x36, 0x28, 0xfa, 0x74, 0x37, 0x38, 0x18, 0xbe, 0x6d, 0x70, 0xfe, 0x80, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0x87, 0x18, 0x88, 0x0d, 0x0e, 0xb7, 0x6e, 0x07, 0x27, 0x03, 0xb8, 0x35, 0x08, 0x62, 0xd3, 0x83, 0x53, 0xb9, 0xdc, 0x1a, 0x04, 0x8e, 0xea, 0xc1, 0x29, 0x6b, 0xae, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0xce, 0xa0, 0x6e, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x43, 0x0c, 0xc4, 0x06, 0x87, 0x5b, 0xb7, 0x83, 0xa2, 0xcb, 0x78, 0xc0, 0x17, 0x93, 0x5b, 0xa3, 0xd7, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0x19, 0xa0, 0x33, 0x6b, 0x4b, 0xc3, 0x9b, 0x91, 0x6d, 0x70, 0xb8, 0x75, 0x6b, 0x99, 0x35, 0x38, 0xc6, 0xd1, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x8e, 0x1e, 0x7e, 0xa8, 0xd9, 0xa0, 0xe8, 0xd3, 0x5d, 0x70, 0xb4, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x21, 0x06, 0x62, 0x0d, 0x6f, 0xeb, 0x1c, 0x1c, 0x6b, 0xe9, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x25, 0x3e, 0xee, 0x06, 0x87, 0x50, 0xb9, 0x0d, 0x0e, 0xca, 0x74, 0xb5, 0x41, 0xd1, 0xa7, 0xbb, 0xc1, 0xb1, 0x96, 0x6e, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0xcc, 0x64, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0x82, 0xa7, 0x76, 0x83, 0x83, 0x32, 0xdd, 0x1a, 0x7e, 0x84, 0x19, 0xf8, 0x3a, 0xfc, 0xa0, 0x5c, 0x59, 0xaa, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0x8e, 0xb5, 0x74, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x43, 0x0c, 0xc4, 0x06, 0x07, 0x65, 0xba, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x89, 0x8f, 0xbb, 0x86, 0x5f, 0x5c, 0x36, 0x3c, 0x78, 0xb3, 0xc1, 0x69, 0x15, 0xae, 0x83, 0x03, 0x3c, 0x5d, 0x1b, 0x14, 0x7d, 0xba, 0x1b, 0x1c, 0x6b, 0xe9, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xc5, 0x4c, 0xf6, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x78, 0x6a, 0x37, 0x38, 0x28, 0xd3, 0xad, 0xe1, 0x47, 0x98, 0x81, 0xaf, 0xc3, 0x0f, 0x0a, 0x5c, 0xa6, 0xda, 0xa0, 0xe8, 0xd3, 0xdd, 0xe0, 0x58, 0x4b, 0xb7, 0xc1, 0x51, 0x97, 0xee, 0xe0, 0xa0, 0x4c, 0x77, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0x6a, 0x50, 0x6a, 0x49, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x94, 0x5a, 0x52, 0x0d, 0xa0, 0xdf, 0x56, 0x77, 0x06, 0x72, 0x97, 0x46, 0x87, 0x06, 0xd2, 0x56, 0x27, 0xd7, 0x56, 0x27, 0x37, 0xdb, 0xf0, 0xf8, 0xc8, 0x06, 0xa5, 0x96, 0xd4, 0x86, 0x5f, 0x94, 0x36, 0x28, 0x80, 0xf1, 0x37, 0x38, 0x60, 0xd1, 0xad, 0x41, 0x41, 0x30, 0xbb, 0xe1, 0xc1, 0x9d, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0xbc, 0xb6, 0xba, 0xb6, 0x35, 0xfc, 0x08, 0x33, 0xf0, 0x75, 0xf8, 0x41, 0x29, 0xdf, 0xb4, 0x86, 0x1f, 0x61, 0x06, 0xbe, 0x0e, 0x0f, 0xfe, 0xff, 0x3f, 0x3c, 0xf4, 0xb3, 0x41, 0x41, 0x1a, 0x3b, 0xb8, 0xb8, 0x86, 0x77, 0x7b, 0x36, 0x28, 0xeb, 0x6d, 0x37, 0x38, 0x2c, 0xb0, 0x6d, 0x70, 0x3c, 0x20, 0x59, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0xdb, 0xa0, 0x68, 0xd1, 0xaf, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0xde, 0xb4, 0x5b, 0xc3, 0x8f, 0x30, 0x03, 0x5f, 0x87, 0x1f, 0x14, 0x38, 0x4f, 0x6b, 0xf8, 0x11, 0x66, 0xe0, 0xeb, 0xf0, 0x40, 0xf0, 0xff, 0x1f, 0xde, 0x42, 0x5b, 0x66, 0x0d, 0x0e, 0xa3, 0x76, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0xe3, 0x0b, 0xdb, 0x86, 0x2f, 0x6a, 0x36, 0xd4, 0xf1, 0xc0, 0xab, 0xc3, 0x33, 0xd6, 0xf0, 0xe7, 0xd2, 0x80, 0x67, 0x16, 0xc6, 0x6e, 0xf8, 0xa2, 0x66, 0x43, 0x1d, 0x0f, 0x37, 0x0e, 0xce, 0x53, 0x6c, 0x1b, 0x14, 0xa4, 0xb1, 0x03, 0xde, 0x5d, 0x1e, 0xb9, 0xc1, 0x31, 0x99, 0x6d, 0x83, 0xd2, 0xde, 0x72, 0x83, 0x72, 0xe1, 0x7c, 0xc3, 0x57, 0x38, 0x1b, 0xfe, 0xa2, 0xd9, 0xe0, 0x8c, 0x7a, 0xb7, 0xe1, 0x83, 0x9c, 0x35, 0xfc, 0x9b, 0xb3, 0xc1, 0x61, 0x65, 0xee, 0xa0, 0x8c, 0x3e, 0x5f, 0xc3, 0xdb, 0x3a, 0x1b, 0x9c, 0x40, 0xef, 0xda, 0xa0, 0x20, 0x8d, 0x5d, 0xc3, 0xf7, 0xed, 0x03, 0x1e, 0x5a, 0x98, 0xbe, 0x41, 0x09, 0x1d, 0xbb, 0xc1, 0x19, 0xf5, 0xee, 0x20, 0x4c, 0xc7, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0x39, 0x38, 0x6c, 0xaf, 0x6d, 0x70, 0x98, 0x64, 0x5b, 0xc3, 0xdb, 0x3a, 0x1b, 0x9c, 0x91, 0xef, 0x3a, 0x38, 0x81, 0xb3, 0x6d, 0x50, 0x90, 0xc6, 0xae, 0xe1, 0xfb, 0xf6, 0x0d, 0x86, 0xc2, 0xe2, 0xc1, 0xa9, 0x08, 0x6f, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0x88, 0x81, 0x58, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0xf8, 0xb8, 0x6b, 0xf8, 0xc5, 0x65, 0xc3, 0x83, 0x37, 0x6b, 0xf8, 0x11, 0x66, 0x43, 0xcd, 0x0f, 0xfb, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x67, 0x1e, 0xbc, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0x99, 0xb8, 0x07, 0x27, 0x68, 0xbc, 0x36, 0x28, 0x76, 0x34, 0xd7, 0xf0, 0x6f, 0xce, 0x86, 0x07, 0x6f, 0x36, 0xbc, 0xad, 0xb3, 0xc1, 0x50, 0x58, 0x6c, 0x83, 0x23, 0x4b, 0xde, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x41, 0xa1, 0x7b, 0xbe, 0x06, 0x27, 0x39, 0xb6, 0x0d, 0x1f, 0x47, 0x1d, 0x1c, 0x26, 0xd9, 0x3a, 0x9c, 0x62, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x35, 0x0b, 0xe0, 0x5d, 0xe7, 0x36, 0x97, 0x76, 0xe6, 0x56, 0x46, 0xd6, 0x02, 0xf7, 0x76, 0x57, 0x26, 0x37, 0x2f, 0x03, 0xf0, 0x22, 0x73, 0xa6, 0x03, 0x52, 0xe7, 0x36, 0x97, 0x76, 0xe6, 0x56, 0x46, 0x06, 0x02, 0xf7, 0x76, 0x57, 0x26, 0x37, 0xb7, 0x06, 0x65, 0x2d, 0xd5, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x59, 0x4b, 0xd5, 0x00, 0x3c, 0xd4, 0xb9, 0xcd, 0xa5, 0x9d, 0xb9, 0x95, 0x91, 0x81, 0x94, 0xe1, 0xc1, 0xbd, 0xb9, 0x95, 0xb9, 0xd1, 0x6d, 0x78, 0x7c, 0x64, 0x83, 0xb2, 0x96, 0x6a, 0xc3, 0x2f, 0x4a, 0x1b, 0xfe, 0x56, 0xda, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0xf0, 0x5e, 0xd0, 0xe1, 0xc1, 0x9b, 0x0d, 0x8f, 0xc9, 0x6c, 0xf8, 0x0a, 0x67, 0xc3, 0x07, 0x39, 0x6b, 0xf8, 0x37, 0x67, 0xc3, 0x7b, 0x41, 0x87, 0xc7, 0x64, 0x36, 0x3c, 0xad, 0xb3, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xf8, 0x78, 0x10, 0xcc, 0xb8, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0x93, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0x78, 0x6a, 0x0f, 0x0e, 0x7e, 0x28, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x1c, 0xbd, 0xe3, 0x0e, 0x0e, 0xeb, 0x2b, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0xbe, 0x9c, 0x5c, 0x83, 0x52, 0x42, 0x7c, 0xe3, 0xf9, 0x41, 0xb9, 0x2e, 0xbb, 0x41, 0x29, 0x21, 0xbe, 0xf1, 0x7c, 0xc3, 0xbb, 0x3d, 0x1b, 0x04, 0x4f, 0xed, 0x06, 0xe5, 0xba, 0xec, 0xe1, 0xa1, 0x9f, 0xd5, 0xa0, 0x4c, 0xc3, 0xda, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x28, 0xd3, 0xb0, 0x1a, 0x80, 0x87, 0x3a, 0xb7, 0xb9, 0xb4, 0x33, 0xb7, 0x32, 0x32, 0x90, 0xb9, 0x38, 0x39, 0xba, 0x17, 0xb9, 0xb2, 0xb6, 0x0d, 0x8f, 0x8f, 0x6c, 0x50, 0xa6, 0x61, 0x6d, 0xf8, 0x45, 0x69, 0xc3, 0x97, 0x4b, 0x1b, 0xfe, 0xa2, 0xd9, 0xf0, 0xeb, 0xdc, 0x06, 0x25, 0x3c, 0xe6, 0x86, 0x07, 0x77, 0xd6, 0xf0, 0x8b, 0xcb, 0x86, 0x07, 0x6f, 0x0e, 0x0a, 0x27, 0xd9, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x17, 0x97, 0x35, 0x7c, 0xee, 0x32, 0x78, 0xbc, 0xe1, 0xdd, 0x9e, 0x0d, 0x42, 0x81, 0x75, 0x0d, 0xef, 0xf6, 0x6c, 0x78, 0xcd, 0x67, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x06, 0xa2, 0x48, 0x87, 0x87, 0x7e, 0x3a, 0x08, 0x56, 0xd6, 0x35, 0x7c, 0xee, 0x32, 0xb8, 0x7c, 0x78, 0xf0, 0xa6, 0x01, 0x9f, 0x6e, 0x0e, 0x0d, 0x5e, 0xc3, 0x2f, 0x2e, 0x1b, 0x94, 0x70, 0xb4, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0xa7, 0x80, 0x1b, 0x9e, 0xd6, 0xd9, 0xa0, 0x14, 0xa7, 0xad, 0x0d, 0x9f, 0xbb, 0x0c, 0x2e, 0x6e, 0xf8, 0x0a, 0x67, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xf0, 0x79, 0xc3, 0xbb, 0x3d, 0x1b, 0xfe, 0x04, 0x5a, 0xc3, 0xdb, 0x3a, 0x07, 0x05, 0xcf, 0xe6, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xd0, 0xee, 0xdd, 0xe0, 0x74, 0x24, 0x52, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0xd3, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0x78, 0x6a, 0xd7, 0xf0, 0xb6, 0xce, 0xe0, 0x73, 0x1b, 0x1c, 0xce, 0xf9, 0xda, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0xe0, 0x74, 0x24, 0x72, 0x78, 0xf0, 0x66, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x5f, 0xfc, 0xae, 0xe1, 0x6d, 0x9d, 0xc1, 0xe9, 0x0e, 0x0f, 0xfd, 0xac, 0xe1, 0x17, 0x97, 0x0d, 0x0e, 0xe7, 0x7c, 0x1b, 0x9c, 0x5a, 0xfa, 0xda, 0xf0, 0x8b, 0xcb, 0x06, 0xc7, 0x4f, 0xbe, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xf0, 0xd4, 0x6e, 0x70, 0xfc, 0xe4, 0xdb, 0xe0, 0xf8, 0xc9, 0x57, 0x1b, 0x3e, 0xc8, 0xd9, 0xe0, 0xf4, 0xd1, 0xb7, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0x05, 0xcf, 0xe6, 0xc1, 0xe1, 0x9c, 0x6f, 0x0d, 0x8e, 0x38, 0x19, 0x1b, 0xde, 0xed, 0xd9, 0xf0, 0x9a, 0xcf, 0xc1, 0xa1, 0x97, 0xaf, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0xec, 0xe0, 0x18, 0xdb, 0x77, 0x38, 0xc5, 0x3a, 0x9c, 0x62, 0x0b, 0xe0, 0xc3, 0x96, 0x36, 0x47, 0xd7, 0xc2, 0xf6, 0x76, 0x96, 0x36, 0x2e, 0x03, 0xf8, 0xca, 0x88, 0xe9, 0x80, 0xb0, 0xa5, 0xcd, 0xd1, 0x81, 0xb0, 0xbd, 0x9d, 0xa5, 0x8d, 0xad, 0x41, 0xe1, 0x95, 0xb5, 0xe1, 0xf1, 0x91, 0x0d, 0x0a, 0xaf, 0xac, 0x0d, 0x0a, 0xe5, 0xce, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0x09, 0xe7, 0xbe, 0xc1, 0x71, 0x43, 0xa6, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x8b, 0x66, 0xc3, 0x07, 0xab, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x1e, 0xdc, 0xd9, 0xa0, 0xc8, 0x69, 0xdd, 0xa0, 0xd8, 0xd1, 0x5c, 0xc3, 0xbb, 0x3d, 0x1b, 0xde, 0x0b, 0xda, 0xa0, 0xbc, 0x8d, 0x6f, 0x83, 0x02, 0x36, 0xff, 0xa0, 0x80, 0x8f, 0x5f, 0x0d, 0x0a, 0x30, 0xad, 0x0d, 0xcf, 0x93, 0x6c, 0x50, 0xa0, 0xb1, 0x6f, 0x78, 0x7c, 0x64, 0x83, 0x02, 0x4c, 0x6b, 0x83, 0x42, 0xb9, 0x73, 0x83, 0x52, 0x98, 0x7d, 0xc3, 0x57, 0x38, 0x1b, 0xbe, 0x7e, 0x59, 0x83, 0x82, 0x0f, 0x73, 0x83, 0xc3, 0x43, 0xc1, 0x41, 0xf1, 0x83, 0x7a, 0x50, 0x50, 0xb4, 0xaf, 0x06, 0xa5, 0xce, 0xd6, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0xa9, 0xb3, 0xd5, 0x00, 0x9e, 0x66, 0x61, 0x63, 0x65, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x77, 0x65, 0x6c, 0x64, 0x1b, 0x1e, 0x1f, 0xd9, 0xa0, 0xd4, 0xd9, 0xda, 0xa0, 0x50, 0xee, 0xdc, 0xe0, 0x3c, 0x98, 0xb4, 0x41, 0x09, 0x8f, 0xb9, 0xc1, 0xb9, 0xde, 0x60, 0x0d, 0x97, 0xd4, 0x06, 0xe7, 0x7a, 0x83, 0x35, 0x28, 0x6a, 0xc4, 0x0f, 0xce, 0x99, 0x49, 0x6d, 0xb8, 0xa4, 0x36, 0x38, 0xd7, 0x1b, 0xac, 0xe1, 0xea, 0xda, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0xe0, 0x5c, 0x6f, 0xb0, 0xe1, 0x92, 0x5a, 0x83, 0xa1, 0xd9, 0x55, 0x35, 0x6b, 0x50, 0x3c, 0x70, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x14, 0x0f, 0x5c, 0x0d, 0xf0, 0xb1, 0x95, 0xb9, 0x9d, 0xd1, 0xa1, 0x6d, 0x78, 0x7c, 0x64, 0x83, 0xe2, 0x81, 0x6b, 0xc3, 0x2f, 0x4a, 0x1b, 0x94, 0x70, 0xee, 0x1b, 0xfe, 0xa2, 0xd9, 0xf0, 0x43, 0xcd, 0x86, 0x4f, 0x6c, 0x36, 0x7c, 0xf1, 0xb9, 0xe1, 0x2b, 0x9c, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x0f, 0xee, 0x6c, 0x78, 0x2f, 0x68, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0xdb, 0xa0, 0x40, 0x90, 0x3f, 0xbc, 0x14, 0x75, 0x38, 0xc5, 0xd6, 0xa0, 0x54, 0xe9, 0xda, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x28, 0x55, 0xba, 0x1a, 0xc0, 0x33, 0xcd, 0x8d, 0xae, 0x4c, 0xce, 0x2d, 0x8c, 0x0d, 0x64, 0x0e, 0x2e, 0xcd, 0x6d, 0xc3, 0xe3, 0x23, 0x1b, 0x94, 0x2a, 0x5d, 0x1b, 0x14, 0xca, 0x9d, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x12, 0xce, 0x7d, 0x0d, 0x7f, 0x2e, 0x0d, 0x2e, 0x6e, 0x10, 0x40, 0x67, 0x1b, 0x7e, 0x51, 0xda, 0xa0, 0x48, 0xc5, 0xdc, 0xf0, 0x8b, 0xcb, 0x1a, 0x14, 0x82, 0xa9, 0x07, 0x61, 0x3a, 0xb6, 0xc1, 0x39, 0x33, 0xa9, 0x36, 0x3c, 0x28, 0xb9, 0xc1, 0xe9, 0x22, 0x63, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x82, 0x8d, 0xaf, 0x0d, 0x4f, 0xeb, 0x6c, 0x70, 0xe2, 0x4d, 0x3a, 0xbc, 0x85, 0x36, 0x6b, 0x50, 0x82, 0x7a, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x94, 0xa0, 0x5e, 0x0d, 0xe0, 0x95, 0xe6, 0x36, 0x57, 0x26, 0x47, 0x07, 0x92, 0x46, 0x57, 0xd6, 0xb6, 0xe1, 0xf1, 0x91, 0x0d, 0x4a, 0x50, 0xaf, 0x0d, 0x0a, 0xe5, 0xce, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0x09, 0xe7, 0xbe, 0xe1, 0x79, 0xa6, 0x83, 0x13, 0x99, 0xc5, 0x86, 0xaf, 0x5f, 0x36, 0x3c, 0xad, 0xb3, 0xe1, 0xdd, 0x9e, 0x0d, 0x4e, 0x04, 0x6d, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0x50, 0x28, 0xb5, 0x75, 0x50, 0x3a, 0x3d, 0xaf, 0xe1, 0x17, 0x97, 0x0d, 0x4f, 0xef, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x4e, 0x6f, 0x71, 0x07, 0xa5, 0xd3, 0x73, 0xad, 0x06, 0xa5, 0xd7, 0xd7, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0xe9, 0xf5, 0xd5, 0x00, 0xdf, 0x5c, 0x9d, 0x99, 0x59, 0x1a, 0xde, 0x86, 0xc7, 0x47, 0x36, 0x28, 0xbd, 0xbe, 0x36, 0x28, 0x94, 0x3b, 0x37, 0x28, 0x85, 0xd9, 0x37, 0x7c, 0x85, 0xb3, 0xe1, 0xeb, 0x97, 0x0d, 0xef, 0x05, 0x6d, 0xf8, 0x20, 0x67, 0xc3, 0xb7, 0x39, 0x1b, 0xde, 0x0b, 0xda, 0xa0, 0x84, 0xc7, 0xdc, 0xf0, 0x79, 0xd0, 0x06, 0x05, 0x45, 0xe6, 0x41, 0x39, 0xda, 0x3e, 0x0b, 0xf8, 0x73, 0x6e, 0x6f, 0xe3, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0x29, 0x5e, 0xb0, 0x01, 0xf0, 0x25, 0x0c, 0x0e, 0xae, 0xcc, 0x8d, 0x0c, 0x24, 0xcc, 0x0d, 0xa4, 0x8c, 0xad, 0xac, 0xad, 0xcc, 0x8d, 0x0e, 0x84, 0xee, 0x0d, 0x84, 0x0e, 0xad, 0x0c, 0xa4, 0xcc, 0x8d, 0x0c, 0xe4, 0xcd, 0x0c, 0x24, 0x0c, 0x84, 0x2d, 0x6d, 0x8e, 0x6e, 0x83, 0x42, 0xb9, 0x73, 0x0d, 0x9f, 0x2b, 0x6d, 0x50, 0xc2, 0xb9, 0x1f, 0x94, 0xe3, 0xf8, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0x44, 0xd0, 0xb6, 0xe1, 0x69, 0x9d, 0x35, 0x7c, 0xfd, 0xb2, 0xe1, 0x69, 0x9d, 0x01, 0x7f, 0x8c, 0x6d, 0xee, 0x5c, 0xc3, 0x2f, 0x2e, 0x87, 0xb7, 0xd0, 0x6a, 0x35, 0x28, 0xbf, 0xc2, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0xca, 0xaf, 0xb0, 0x06, 0xf0, 0x32, 0x4b, 0x93, 0x9b, 0xa3, 0x03, 0x49, 0x73, 0x23, 0x2b, 0xc3, 0xdb, 0xf0, 0xf8, 0xc8, 0x06, 0xe5, 0x57, 0xd8, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xdd, 0xca, 0xc8, 0xd8, 0x83, 0x82, 0x9e, 0x7d, 0x0d, 0x7f, 0x2e, 0x0d, 0xf8, 0x68, 0x73, 0x74, 0xeb, 0x41, 0x41, 0xcf, 0xde, 0x06, 0xa5, 0xbd, 0xe5, 0x06, 0xe5, 0xc2, 0xf9, 0x86, 0xaf, 0x70, 0x36, 0xfc, 0x45, 0xb3, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0xd9, 0x84, 0xb9, 0x41, 0x99, 0xa5, 0xdb, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0x3e, 0x77, 0x19, 0xdc, 0xdd, 0xf0, 0xb6, 0xce, 0x06, 0xc7, 0x16, 0xc2, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xe8, 0x86, 0xb7, 0x75, 0x36, 0x38, 0x1d, 0x11, 0xd6, 0x86, 0xaf, 0x70, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x5f, 0xc9, 0xd6, 0xa0, 0x98, 0xc4, 0xdc, 0x20, 0x04, 0x1f, 0x0e, 0x86, 0xdd, 0xee, 0x1a, 0x14, 0x93, 0x98, 0x1b, 0x84, 0xe0, 0xc3, 0xc1, 0xb1, 0x96, 0xae, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x35, 0xbc, 0xad, 0x33, 0x78, 0x7a, 0x30, 0xec, 0x76, 0x37, 0xbc, 0xad, 0x33, 0x78, 0x7a, 0x70, 0xac, 0xa5, 0x5b, 0x83, 0x12, 0x1e, 0x73, 0xc1, 0xe9, 0x83, 0x61, 0xb7, 0xbb, 0x06, 0xc7, 0x70, 0x83, 0x83, 0x32, 0xfa, 0x7c, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x61, 0xb7, 0xbb, 0xe1, 0x6d, 0x9d, 0x83, 0x03, 0x57, 0xe1, 0x1a, 0x1c, 0x6b, 0xe9, 0x36, 0xbc, 0xad, 0x33, 0x38, 0x7d, 0x70, 0xac, 0xa5, 0x6b, 0xc3, 0x25, 0xb5, 0xc1, 0x61, 0xbf, 0x63, 0x83, 0x42, 0xf7, 0x7c, 0x0d, 0x8e, 0xca, 0x84, 0x1b, 0x2e, 0xa9, 0x35, 0x9e, 0x1f, 0x1c, 0x95, 0x09, 0x6b, 0xd6, 0xa0, 0xf0, 0x14, 0xdb, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x28, 0x3c, 0xc5, 0x1a, 0xe0, 0x95, 0x2b, 0xb3, 0x2b, 0x93, 0x9b, 0x2b, 0xdb, 0xf0, 0xf8, 0xc8, 0x06, 0x85, 0xa7, 0xd8, 0x06, 0x85, 0x72, 0xe7, 0x06, 0x25, 0x9c, 0xfb, 0x06, 0xa5, 0x84, 0xf8, 0x1a, 0x2e, 0xa9, 0x0d, 0x8a, 0x1a, 0xf1, 0x35, 0x3c, 0xb8, 0xb3, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xa3, 0xbd, 0xb5, 0xbd, 0x1d, 0x1e, 0xfa, 0x69, 0xc3, 0xd7, 0x2f, 0x1b, 0x9e, 0xd6, 0xd9, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0x5c, 0xdc, 0xf0, 0x17, 0xcd, 0x06, 0x47, 0x44, 0x9b, 0x83, 0x82, 0x22, 0x73, 0xc3, 0x57, 0x38, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x1e, 0xdc, 0xd9, 0xf0, 0x5e, 0xd0, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x41, 0x81, 0x20, 0xbf, 0x86, 0xcf, 0x83, 0x36, 0xfc, 0xe2, 0xb2, 0x41, 0x79, 0x1b, 0x7f, 0x78, 0x0b, 0xad, 0xc3, 0x29, 0x56, 0x6b, 0x50, 0x34, 0x91, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x14, 0x4d, 0x64, 0x0d, 0xf0, 0xc9, 0x95, 0xb5, 0xbd, 0xd9, 0x95, 0x6d, 0x78, 0x7c, 0x64, 0x83, 0xa2, 0x89, 0x6c, 0x83, 0x42, 0xb9, 0x73, 0x0d, 0x9f, 0x2b, 0x6d, 0xf8, 0x5b, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x3e, 0x1e, 0x14, 0xf4, 0xec, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x13, 0x41, 0xdb, 0x1a, 0xde, 0xed, 0xd9, 0xe0, 0x60, 0x21, 0xb8, 0x86, 0x4b, 0x6a, 0x0d, 0xc6, 0x4f, 0x57, 0x1d, 0x7e, 0x11, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x9c, 0xde, 0xe2, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x3f, 0x81, 0x36, 0x38, 0x4f, 0x1e, 0x6e, 0x70, 0xca, 0xfe, 0xeb, 0xf0, 0x8b, 0x50, 0x2b, 0xe0, 0xb3, 0xd5, 0xc9, 0x95, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xe7, 0xef, 0xc3, 0x06, 0xf0, 0x60, 0x4a, 0x9b, 0xa3, 0x03, 0x81, 0xab, 0x92, 0x2a, 0xda, 0xa0, 0x50, 0xee, 0xdc, 0xa0, 0x00, 0xc6, 0xdf, 0xf0, 0x8b, 0xcb, 0x1a, 0x3e, 0x77, 0x19, 0x3c, 0x3d, 0x3c, 0xad, 0x73, 0x70, 0x46, 0x58, 0x58, 0x01, 0x7f, 0xee, 0x2e, 0xec, 0xdc, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x38, 0x42, 0x21, 0x76, 0x50, 0x5a, 0x01, 0x6f, 0x50, 0x28, 0x77, 0x6e, 0x70, 0xa0, 0x3a, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0x07, 0x0b, 0xc1, 0x0d, 0x4e, 0xd9, 0x7f, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xd3, 0x5b, 0xdc, 0xc1, 0x69, 0xf2, 0xb0, 0xd5, 0xa0, 0x98, 0x2f, 0xdb, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x28, 0xe6, 0xcb, 0x1a, 0xf0, 0xdf, 0xdc, 0xd8, 0xf2, 0x36, 0x3c, 0x3e, 0xb2, 0x41, 0x31, 0x5f, 0xb6, 0x41, 0xa1, 0xdc, 0xb9, 0xc1, 0x11, 0xc9, 0x6f, 0xc3, 0x57, 0x38, 0x1b, 0xbe, 0x7e, 0xd9, 0xf0, 0xb4, 0xce, 0x06, 0x25, 0x3c, 0xe6, 0x86, 0x07, 0x77, 0x36, 0x28, 0x28, 0x32, 0x37, 0x7c, 0x90, 0xb3, 0xc1, 0x71, 0xd2, 0x6f, 0x0d, 0xbf, 0xb8, 0x6c, 0x50, 0xde, 0xc6, 0x6f, 0x50, 0xc0, 0xc7, 0x77, 0x50, 0xc0, 0xc7, 0x1f, 0x4e, 0xb1, 0x5a, 0x83, 0xf2, 0xd6, 0x6c, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xa0, 0xbc, 0x35, 0x6b, 0x80, 0x77, 0xee, 0xad, 0xad, 0x0c, 0xe4, 0xcd, 0x6c, 0xc3, 0xe3, 0x23, 0x1b, 0x94, 0xb7, 0x66, 0x1b, 0x14, 0xca, 0x9d, 0x1b, 0x1c, 0x91, 0xfc, 0x36, 0x7c, 0x85, 0xb3, 0xe1, 0x2f, 0x9a, 0x0d, 0x1f, 0xac, 0x6e, 0x50, 0xc2, 0x63, 0x6e, 0x78, 0x70, 0x67, 0x83, 0x02, 0x36, 0x7f, 0xc3, 0x07, 0x39, 0x1b, 0x1c, 0x27, 0xfd, 0x36, 0x28, 0x72, 0x5a, 0x0f, 0x0a, 0xf8, 0xf8, 0xd5, 0xa0, 0xe0, 0x3b, 0xdb, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x28, 0xf8, 0xce, 0x1a, 0x80, 0x07, 0xb6, 0xb0, 0x39, 0x3a, 0x90, 0x34, 0xba, 0xb2, 0x36, 0x90, 0x37, 0x33, 0x10, 0xb6, 0xb4, 0x39, 0xba, 0x0d, 0x8f, 0x8f, 0x6c, 0x50, 0xf0, 0x9d, 0x6d, 0x50, 0x28, 0x77, 0x6e, 0x50, 0xc2, 0xb9, 0x6f, 0xf8, 0x8b, 0x66, 0x0d, 0x02, 0xe8, 0x6c, 0x83, 0x82, 0x0f, 0x73, 0x83, 0x42, 0x12, 0xf3, 0xa0, 0xbc, 0x8d, 0xdf, 0xa0, 0xe0, 0xc3, 0xdc, 0xa0, 0x90, 0xc4, 0xdc, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0xa0, 0xa0, 0xc8, 0x3c, 0x28, 0x2b, 0xe4, 0x37, 0x28, 0x6f, 0xe3, 0x0f, 0x0a, 0xf8, 0xf8, 0xd5, 0xa0, 0x5c, 0x43, 0xdb, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x28, 0xd7, 0xd0, 0x1a, 0xe0, 0x85, 0x93, 0x7b, 0x6b, 0x7b, 0xa3, 0x2b, 0xdb, 0xf0, 0xf8, 0xc8, 0x06, 0xe5, 0x1a, 0xda, 0x06, 0x85, 0x72, 0xe7, 0x06, 0x61, 0x3a, 0xb6, 0x41, 0x09, 0x8f, 0xb9, 0xc1, 0x31, 0xe6, 0x6c, 0x83, 0xd3, 0xca, 0xd9, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0xa5, 0xce, 0x56, 0x1b, 0x1c, 0xdf, 0x0d, 0xd6, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0xe0, 0x18, 0x73, 0x76, 0x70, 0xce, 0x4c, 0xaa, 0xd5, 0xe0, 0xbc, 0x66, 0xb8, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x70, 0x5e, 0x33, 0x6c, 0x00, 0x1f, 0xb4, 0xb7, 0xb6, 0xb7, 0xb3, 0x32, 0xb7, 0x34, 0xbd, 0xb2, 0x83, 0x52, 0x58, 0xfe, 0x70, 0x8a, 0xd5, 0x1a, 0x14, 0x6b, 0x69, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xc5, 0x5a, 0x5a, 0x03, 0xe0, 0x29, 0x9d, 0x5c, 0x98, 0xdb, 0x9c, 0xd9, 0x9b, 0x5c, 0x1b, 0x48, 0x59, 0xd8, 0x18, 0x1a, 0x88, 0x5d, 0x18, 0x5b, 0x5d, 0x19, 0xc8, 0x9b, 0x19, 0x08, 0x5b, 0xda, 0x1c, 0x1d, 0x88, 0x4e, 0x18, 0x48, 0xdd, 0x5c, 0x9a, 0xdb, 0x19, 0x08, 0x1d, 0x5a, 0x19, 0x88, 0x59, 0x9d, 0xdb, 0x18, 0x5d, 0xda, 0x9b, 0x1b, 0x88, 0x8e, 0xd8, 0x86, 0xc7, 0x47, 0x36, 0x28, 0xd6, 0xd2, 0x36, 0x28, 0x94, 0x3b, 0xd7, 0xf0, 0xb9, 0xd2, 0x06, 0x25, 0x9c, 0xfb, 0xc1, 0x91, 0x34, 0x61, 0x83, 0x52, 0x42, 0x7c, 0x83, 0x13, 0x92, 0xe1, 0x86, 0xbf, 0x68, 0xd6, 0x20, 0xf4, 0x4b, 0x36, 0x08, 0x29, 0x93, 0x35, 0x08, 0xa0, 0xb3, 0x0d, 0x0a, 0x3e, 0xcc, 0x0d, 0x0a, 0x49, 0xcc, 0x83, 0xe3, 0xa4, 0x5f, 0x1b, 0xbe, 0xc2, 0xd9, 0xa0, 0x84, 0xc7, 0xdc, 0xf0, 0xe0, 0xce, 0x06, 0x05, 0x45, 0xe6, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xe9, 0xc1, 0x71, 0xd2, 0xef, 0xa0, 0xcc, 0x8e, 0x5f, 0x0d, 0xca, 0x50, 0xb5, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x32, 0x54, 0xad, 0x01, 0x3c, 0xd8, 0xca, 0xcc, 0xe8, 0x40, 0xcc, 0xde, 0xd8, 0xc8, 0x36, 0x3c, 0x3e, 0xb2, 0x41, 0x19, 0xaa, 0xb6, 0x41, 0xa1, 0xdc, 0xb9, 0x86, 0xcf, 0x95, 0x36, 0x28, 0xe1, 0xdc, 0x37, 0x38, 0x69, 0x25, 0xb5, 0xe1, 0x2b, 0x9c, 0x0d, 0x5f, 0xbf, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x89, 0xa9, 0x83, 0xa3, 0x70, 0xd2, 0x06, 0x25, 0x3c, 0xe6, 0x86, 0x07, 0x77, 0x36, 0x38, 0xf1, 0x26, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x1b, 0x14, 0x08, 0xf2, 0x6b, 0xf8, 0x3c, 0x68, 0xc3, 0x25, 0xb5, 0xe1, 0xf3, 0xa0, 0x35, 0x38, 0x80, 0x26, 0x6d, 0x78, 0xb7, 0x67, 0xc3, 0x7b, 0x41, 0x1b, 0x94, 0xb7, 0xf1, 0x07, 0x47, 0x0e, 0xa5, 0x5a, 0x0d, 0xca, 0xac, 0xb5, 0x0d, 0xcf, 0x93, 0x6c, 0x50, 0x8a, 0xc0, 0x6f, 0x78, 0x7c, 0x64, 0x83, 0x32, 0x6b, 0x6d, 0x83, 0x42, 0xb9, 0x73, 0x83, 0x02, 0x0e, 0x7e, 0x83, 0x52, 0x42, 0x7c, 0x0d, 0x97, 0xd4, 0x06, 0x45, 0x8d, 0xf8, 0x1a, 0x1e, 0xdc, 0x19, 0xf0, 0xd7, 0xe8, 0xc8, 0xe8, 0x0d, 0x8e, 0x64, 0x86, 0x87, 0xa7, 0x75, 0xd6, 0xf0, 0x79, 0xd0, 0x06, 0xc7, 0x36, 0xc7, 0x0d, 0x8e, 0x64, 0x86, 0x87, 0xf7, 0x82, 0xda, 0xf0, 0x15, 0xce, 0x86, 0xaf, 0x5f, 0x36, 0xbc, 0x17, 0xb4, 0x41, 0x09, 0x8f, 0xb9, 0xe1, 0xc1, 0x9d, 0x0d, 0xef, 0x05, 0x1d, 0x1c, 0x98, 0x12, 0x57, 0x83, 0xa2, 0x8f, 0x6d, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xa0, 0xe8, 0x63, 0x6b, 0x00, 0xef, 0xb6, 0xb0, 0x3c, 0xb1, 0x32, 0x10, 0x3a, 0xb9, 0x30, 0xb7, 0x39, 0xb3, 0x37, 0xb9, 0xb6, 0x0d, 0x8f, 0x8f, 0x6c, 0x50, 0xf4, 0xb1, 0x6d, 0x50, 0x28, 0x77, 0xae, 0xe1, 0x73, 0xa5, 0x0d, 0x4a, 0x38, 0xf7, 0x83, 0xc3, 0xb4, 0xc0, 0x06, 0xa5, 0x84, 0xf8, 0x06, 0x27, 0x24, 0xc3, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x8b, 0x66, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0x90, 0x32, 0x59, 0x83, 0x00, 0x3a, 0xdb, 0xa0, 0xe0, 0xc3, 0xdc, 0xa0, 0x90, 0xc4, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0x67, 0x43, 0x97, 0x0d, 0x8e, 0x93, 0x7e, 0xb5, 0x41, 0x09, 0x8f, 0xb9, 0xe1, 0xc1, 0x9d, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x0a, 0xd2, 0xd8, 0xc1, 0xc7, 0x0d, 0x8e, 0x93, 0x7e, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0xfe, 0xe1, 0xd9, 0xa0, 0x80, 0x8f, 0xdf, 0xf0, 0x8b, 0xcb, 0x1a, 0x2e, 0xa9, 0x35, 0x9e, 0x1f, 0xfe, 0xe1, 0xe9, 0xe0, 0xac, 0x95, 0x78, 0x38, 0xc5, 0xd6, 0xa0, 0x50, 0x6a, 0xdb, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x28, 0x94, 0xda, 0x1a, 0xe0, 0x83, 0x93, 0x2b, 0x33, 0x4b, 0xc3, 0xdb, 0xf0, 0xf8, 0xc8, 0x06, 0x85, 0x52, 0xdb, 0x06, 0x85, 0x72, 0xe7, 0x06, 0xa5, 0x30, 0xfb, 0x86, 0xaf, 0x70, 0x36, 0x7c, 0xfd, 0xb2, 0xe1, 0xbd, 0xa0, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0x57, 0xb2, 0x35, 0x28, 0x26, 0x31, 0x37, 0x08, 0xc1, 0x87, 0xc3, 0xe7, 0x41, 0x1b, 0xbe, 0xcd, 0x69, 0x83, 0x82, 0x22, 0x73, 0xc3, 0x2f, 0x2e, 0x1b, 0x14, 0x3f, 0xa8, 0x1b, 0x94, 0xa3, 0xed, 0xad, 0x06, 0x05, 0x91, 0xdb, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x41, 0xe4, 0xd6, 0x00, 0x3e, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x66, 0x6f, 0x6c, 0x64, 0x1b, 0x1e, 0x1f, 0xd9, 0xa0, 0x20, 0x72, 0xdb, 0xa0, 0x50, 0xee, 0xdc, 0xe0, 0x9c, 0xd7, 0xb8, 0xe1, 0x2b, 0x9c, 0x0d, 0x5f, 0xbf, 0x6c, 0x70, 0xfa, 0x6c, 0xdc, 0xa0, 0x84, 0xc7, 0xdc, 0xf0, 0xe0, 0xce, 0x06, 0x27, 0xde, 0xa4, 0x0d, 0xef, 0xf6, 0x6c, 0x78, 0x2f, 0xe8, 0xe0, 0x2c, 0x95, 0x38, 0x0b, 0xf8, 0x67, 0x75, 0x6c, 0xe6, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0x29, 0x2d, 0xb2, 0x01, 0xbc, 0xe5, 0xc2, 0xdc, 0xce, 0xca, 0x40, 0xd2, 0xdc, 0xc6, 0xd8, 0xea, 0xe6, 0xd2, 0xec, 0xca, 0x36, 0xfc, 0xa2, 0xb4, 0xe1, 0x6f, 0xa5, 0x0d, 0x0a, 0x3e, 0xcc, 0x0d, 0x8f, 0xfa, 0x6e, 0xf8, 0x0a, 0x67, 0xc3, 0x5f, 0x34, 0x1b, 0x94, 0x73, 0xb6, 0x1b, 0x3e, 0xc8, 0xd9, 0xf0, 0x77, 0xe8, 0x06, 0x05, 0x45, 0xe6, 0x86, 0x5f, 0x5c, 0x36, 0x3c, 0xad, 0xb3, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x86, 0x07, 0x77, 0x36, 0x7c, 0x1c, 0x75, 0x78, 0x5a, 0xa7, 0x0e, 0xa7, 0xd8, 0x02, 0xbe, 0xda, 0x5b, 0x9a, 0xbb, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x70, 0x86, 0x91, 0x6c, 0x00, 0x3c, 0x1f, 0x7b, 0x73, 0x9b, 0xa3, 0x93, 0xab, 0x1b, 0xa3, 0x03, 0x09, 0x03, 0x71, 0x2b, 0xbb, 0x03, 0x61, 0x4b, 0x9b, 0xa3, 0x63, 0x01, 0x81, 0x63, 0x0b, 0x1b, 0x4b, 0x73, 0x3b, 0x03, 0x71, 0x99, 0x2b, 0x83, 0x03, 0x11, 0x2b, 0xa3, 0xbb, 0x2b, 0x2b, 0x73, 0x03, 0x29, 0xb3, 0x2b, 0x93, 0xcb, 0x03, 0x81, 0x0b, 0x4b, 0x93, 0x03, 0x49, 0x73, 0x03, 0x71, 0x61, 0x4b, 0xa3, 0xdb, 0xa0, 0x50, 0xee, 0x5c, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x9b, 0x2b, 0x83, 0x0f, 0xc2, 0x74, 0x6c, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x6c, 0x69, 0xf4, 0x41, 0x41, 0xcf, 0xde, 0x06, 0x45, 0x9f, 0xee, 0x1a, 0x1c, 0xe0, 0x25, 0x5b, 0xc3, 0x5f, 0x34, 0x6b, 0x10, 0x40, 0x67, 0x1b, 0x14, 0x7c, 0x98, 0x6b, 0x50, 0x4c, 0x62, 0x6e, 0x50, 0xa4, 0x62, 0x6e, 0x70, 0x3a, 0x98, 0x6c, 0xc3, 0xdb, 0x3a, 0x83, 0xa7, 0x07, 0x67, 0xa8, 0xc9, 0x0d, 0x6f, 0xeb, 0x1c, 0x9c, 0x40, 0x26, 0x37, 0x28, 0xe1, 0x31, 0x37, 0x38, 0x43, 0x4d, 0x6e, 0x50, 0x50, 0x64, 0x6e, 0x50, 0xda, 0x5b, 0xae, 0xe1, 0xcf, 0xa5, 0x0d, 0x4a, 0xb3, 0xec, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0x90, 0x32, 0xd9, 0xe0, 0x0c, 0x33, 0xd9, 0x86, 0xaf, 0x70, 0x36, 0x7c, 0xfd, 0xb2, 0x41, 0xb1, 0xb4, 0xbd, 0x41, 0x09, 0x8f, 0xb9, 0xe0, 0xf4, 0xc1, 0x19, 0x6a, 0x72, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x58, 0x2c, 0xaf, 0xe1, 0x17, 0x97, 0x0d, 0x8e, 0x59, 0x93, 0x07, 0x85, 0xd2, 0x76, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x94, 0x58, 0xdb, 0x1b, 0x7e, 0x71, 0xd9, 0xe0, 0xc0, 0x36, 0x79, 0x70, 0x10, 0xa0, 0x5c, 0x83, 0x33, 0xd4, 0xe4, 0x86, 0xb7, 0x75, 0x0e, 0xce, 0xdf, 0x93, 0xad, 0x06, 0xe5, 0x7d, 0xdc, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x79, 0x1f, 0xd7, 0x00, 0x5f, 0x19, 0xde, 0x58, 0x19, 0x1c, 0xdd, 0x86, 0xc7, 0x47, 0x36, 0x28, 0xef, 0xe3, 0x36, 0x28, 0x94, 0x3b, 0x37, 0x38, 0x22, 0xf9, 0x6d, 0xf8, 0x0a, 0x67, 0xc3, 0xd7, 0x2f, 0x1b, 0x9e, 0xd6, 0xd9, 0xa0, 0x84, 0xc7, 0xdc, 0xf0, 0xe0, 0xce, 0x06, 0x05, 0x45, 0xe6, 0x86, 0x0f, 0x72, 0x36, 0x38, 0x4e, 0xfa, 0x6d, 0x50, 0xc0, 0xc7, 0x1f, 0x1c, 0x98, 0x12, 0x0f, 0xa7, 0x58, 0x6b, 0x50, 0x14, 0xcb, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x14, 0xc5, 0x72, 0x0d, 0xe0, 0x21, 0x57, 0x06, 0xc7, 0x96, 0x36, 0x16, 0x46, 0x57, 0xb6, 0xe1, 0xf1, 0x91, 0x0d, 0x8a, 0x62, 0xb9, 0x0d, 0x0a, 0xe5, 0xce, 0x35, 0x7c, 0xae, 0xb4, 0xe1, 0xcb, 0xa5, 0x83, 0x72, 0x1c, 0x7f, 0xc3, 0x57, 0x38, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0xd0, 0x2f, 0xd9, 0x20, 0xa4, 0x4c, 0xd6, 0x20, 0x80, 0xce, 0x0e, 0xef, 0x05, 0xb5, 0x41, 0x09, 0x8f, 0xb9, 0xe1, 0xc1, 0x9d, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0xbf, 0xb8, 0x6c, 0x78, 0x2f, 0xe8, 0xa0, 0x10, 0x17, 0x9e, 0x05, 0x7c, 0xb1, 0xb0, 0xb5, 0x72, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xe0, 0xd0, 0x5b, 0xd9, 0x00, 0xf8, 0x3b, 0xf6, 0xe6, 0x66, 0x57, 0x26, 0x47, 0x07, 0x72, 0x57, 0x46, 0x07, 0x72, 0x16, 0x46, 0x57, 0x06, 0x42, 0xf7, 0x06, 0x42, 0x26, 0x97, 0x07, 0x72, 0x16, 0x46, 0x57, 0x06, 0x22, 0x96, 0x07, 0x32, 0x07, 0x57, 0x36, 0x96, 0x66, 0x96, 0x97, 0xe6, 0x76, 0x06, 0x12, 0x26, 0x77, 0x56, 0xd7, 0x56, 0xe6, 0x46, 0x07, 0xd2, 0xf6, 0xc6, 0x46, 0xb6, 0x41, 0xa1, 0xdc, 0xb9, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xe6, 0x41, 0x51, 0xef, 0xba, 0xc1, 0x59, 0x74, 0xa0, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0xcf, 0xa5, 0x01, 0x2f, 0x4c, 0xee, 0xdc, 0xf0, 0xef, 0xfc, 0x86, 0x07, 0x77, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0xc5, 0x48, 0xed, 0x1a, 0xde, 0xd6, 0xd9, 0xe0, 0x48, 0x69, 0x59, 0x87, 0x53, 0x6c, 0x0d, 0x0a, 0xd3, 0xba, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xc2, 0xb4, 0xae, 0x01, 0xbc, 0xc2, 0xd8, 0xd8, 0x40, 0xd2, 0xdc, 0xc8, 0xd2, 0xc6, 0xca, 0xe6, 0x36, 0x3c, 0x3e, 0xb2, 0x41, 0x61, 0x5a, 0xb7, 0xe1, 0x17, 0xa5, 0x0d, 0x0e, 0x1f, 0x84, 0x1b, 0x94, 0xf6, 0x96, 0x1b, 0x94, 0x0b, 0xe7, 0x1b, 0x94, 0xf6, 0x96, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x33, 0x73, 0x23, 0x37, 0x08, 0xfd, 0x92, 0x0d, 0x42, 0xca, 0xe4, 0xe0, 0x74, 0x48, 0xb8, 0xe1, 0x2b, 0x9c, 0x0d, 0x5f, 0xbf, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x0e, 0x4e, 0x97, 0x6d, 0xf8, 0xc4, 0x66, 0x83, 0xc3, 0x25, 0xe1, 0x86, 0xaf, 0x70, 0x36, 0x7c, 0x90, 0xb3, 0xc1, 0x39, 0x9c, 0x70, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x58, 0x2c, 0x6f, 0x70, 0xda, 0xbb, 0x6c, 0xc3, 0x07, 0x39, 0x1b, 0x9c, 0x4e, 0x0a, 0xd7, 0xa0, 0x84, 0xc7, 0xdc, 0xe0, 0xc0, 0x55, 0xb8, 0x86, 0x4b, 0x6a, 0x83, 0xc3, 0x7e, 0xc7, 0x06, 0x85, 0xee, 0xf9, 0x06, 0x07, 0xe6, 0xc2, 0x35, 0x38, 0x08, 0x5e, 0x6e, 0xf8, 0xc5, 0x65, 0x83, 0x32, 0xfa, 0xfc, 0xe0, 0xec, 0x7b, 0xd9, 0xc1, 0xf1, 0xae, 0xf0, 0xe0, 0x58, 0x5b, 0xb8, 0x1a, 0x94, 0xef, 0x77, 0x1b, 0x1e, 0x1f, 0xd9, 0xa0, 0x7c, 0xbf, 0xdb, 0xa0, 0x50, 0xee, 0x5c, 0xc3, 0xe7, 0x4a, 0x1b, 0x94, 0x70, 0xee, 0x6b, 0xf8, 0x73, 0x69, 0x70, 0x71, 0x83, 0x70, 0x1a, 0xdb, 0xe0, 0x3c, 0x98, 0x74, 0xf8, 0x60, 0xb5, 0x0d, 0x4a, 0x09, 0xf1, 0x35, 0x5c, 0x52, 0x1b, 0x14, 0x35, 0xe2, 0x1b, 0x9c, 0xcc, 0x1c, 0xdb, 0xf0, 0x15, 0xce, 0x86, 0xaf, 0x5f, 0x36, 0x3c, 0xad, 0xb3, 0x41, 0x09, 0x8f, 0xb9, 0xe1, 0xc1, 0x9d, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xe7, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x8a, 0x8f, 0xbc, 0x36, 0x28, 0x2b, 0xe4, 0xd7, 0xf0, 0x5d, 0xcb, 0x1a, 0x3e, 0x77, 0x19, 0x7c, 0x3c, 0x28, 0x6f, 0xe3, 0x37, 0xbc, 0xdb, 0xb3, 0xe1, 0xbd, 0xa0, 0x0d, 0x4f, 0xef, 0x1c, 0x1c, 0x42, 0xfd, 0xda, 0xa0, 0xe8, 0x34, 0xde, 0xe0, 0x44, 0xd0, 0xb6, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x86, 0x07, 0x77, 0x36, 0xbc, 0xad, 0x33, 0x38, 0x7c, 0x70, 0x6e, 0xe7, 0x6b, 0xc3, 0xd7, 0x2f, 0x1b, 0x94, 0x15, 0xf2, 0x1b, 0x7e, 0x71, 0xd9, 0xa0, 0xbc, 0x8d, 0x5f, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0xc3, 0x83, 0x3b, 0x1b, 0xde, 0xd6, 0x19, 0x3c, 0x3e, 0x38, 0xb7, 0xf3, 0xd5, 0xe1, 0x14, 0x5b, 0x83, 0xe2, 0x23, 0x6f, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xa0, 0xf8, 0xc8, 0x6b, 0x80, 0x7f, 0xae, 0x0c, 0x2e, 0x4c, 0x2e, 0x8c, 0xae, 0x6c, 0xc3, 0xe3, 0x23, 0x1b, 0x14, 0x1f, 0x79, 0x1b, 0x14, 0xca, 0x9d, 0x1b, 0x1c, 0x91, 0xfc, 0x36, 0x7c, 0x85, 0xb3, 0xe1, 0xeb, 0x97, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0xcf, 0x5d, 0x06, 0x87, 0x0f, 0x4f, 0xeb, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xe3, 0xc3, 0xd3, 0x3a, 0x6d, 0x50, 0xc2, 0x63, 0x6e, 0x78, 0x70, 0x67, 0x83, 0xb3, 0xac, 0xd4, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xe3, 0x41, 0x01, 0x1f, 0xbf, 0xe1, 0x83, 0x9c, 0x0d, 0x8e, 0x93, 0x7e, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0xbf, 0xb8, 0x6c, 0x50, 0xde, 0xc6, 0x6f, 0x70, 0x1a, 0x62, 0xe9, 0xe0, 0xc0, 0xc7, 0xb2, 0xe1, 0x17, 0x97, 0x0d, 0x4e, 0x43, 0x2c, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xf2, 0x36, 0xfe, 0xe0, 0xc0, 0xc7, 0xd2, 0x6a, 0x50, 0x26, 0xe9, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x94, 0x49, 0x7a, 0x0d, 0xe0, 0x27, 0x57, 0x06, 0xc7, 0x16, 0x36, 0x56, 0x06, 0x92, 0x46, 0x57, 0xd6, 0xb6, 0xe1, 0xf1, 0x91, 0x0d, 0xca, 0x24, 0xbd, 0x0d, 0x0a, 0xe5, 0xce, 0x0d, 0x8e, 0xd4, 0x81, 0x1b, 0xbe, 0x7e, 0xd9, 0xf0, 0xb4, 0xce, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x11, 0xb4, 0x6d, 0x70, 0x76, 0x10, 0x5c, 0xc3, 0x2f, 0x2e, 0x1b, 0x9e, 0xde, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x9c, 0xde, 0xe2, 0x0e, 0x4e, 0x28, 0x2c, 0xb5, 0x02, 0x3e, 0x5b, 0x5a, 0xdb, 0xbb, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x70, 0x26, 0xdc, 0x6c, 0x80, 0x97, 0x2d, 0x6d, 0x8e, 0x2e, 0xcd, 0x2c, 0x6f, 0x83, 0x42, 0xb9, 0x73, 0x83, 0x02, 0x18, 0x7f, 0xc3, 0xd7, 0x2f, 0x6b, 0x78, 0x50, 0x72, 0x83, 0x00, 0x64, 0xdb, 0xa0, 0xcc, 0xbb, 0x9c, 0x65, 0x96, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x0f, 0xee, 0x6c, 0x50, 0x50, 0x64, 0x6e, 0xf8, 0x20, 0x67, 0x83, 0xc2, 0x66, 0x7e, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xd3, 0x83, 0x12, 0x3d, 0xff, 0xa0, 0x14, 0x9e, 0x3f, 0x38, 0x1e, 0xdc, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0x76, 0x78, 0x5a, 0xe7, 0x70, 0x8a, 0xad, 0x41, 0xc1, 0xc6, 0xb7, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x50, 0xb0, 0xf1, 0x35, 0x80, 0xe7, 0x1c, 0x5d, 0x18, 0x5d, 0x99, 0x59, 0x1d, 0x1b, 0x08, 0x5d, 0x9d, 0x9c, 0xdb, 0x86, 0xc7, 0x47, 0x36, 0x28, 0xd8, 0xf8, 0x36, 0x28, 0x94, 0x3b, 0xd7, 0xf0, 0xb9, 0xd2, 0x06, 0x25, 0x9c, 0xfb, 0x06, 0x05, 0x78, 0xe7, 0x1a, 0xfe, 0x5c, 0x1a, 0x7c, 0x3c, 0x38, 0x2b, 0x04, 0xb6, 0x41, 0x29, 0x21, 0xbe, 0x86, 0x4b, 0x6a, 0x83, 0xa2, 0x46, 0x7c, 0x0d, 0xff, 0xf0, 0x6c, 0xf8, 0x8b, 0x66, 0x0d, 0xc2, 0x69, 0x6c, 0x0d, 0x9f, 0x2b, 0x6d, 0x70, 0x30, 0x54, 0x3c, 0x38, 0x02, 0x56, 0x6e, 0xf8, 0x5c, 0x69, 0x0d, 0x02, 0xe8, 0x6c, 0xc3, 0x83, 0x92, 0x1b, 0x9e, 0x99, 0xdc, 0xf0, 0x6e, 0xcf, 0xe1, 0x17, 0xa1, 0x83, 0x23, 0x60, 0xe5, 0xe1, 0xe9, 0x9d, 0x36, 0x28, 0x48, 0x63, 0xd7, 0xf0, 0x7d, 0xfb, 0x80, 0x17, 0x36, 0x36, 0x6e, 0x50, 0x42, 0xc7, 0xae, 0x41, 0xe8, 0x97, 0x6c, 0x10, 0x52, 0x26, 0x1b, 0x1c, 0x50, 0x3a, 0x3b, 0x08, 0xd3, 0xb1, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x8b, 0x66, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0xd2, 0x9b, 0x7e, 0x0d, 0x02, 0xe8, 0x6c, 0xc3, 0xdb, 0x3a, 0x1b, 0x9c, 0xd0, 0x3a, 0x3b, 0x38, 0x02, 0x56, 0x6e, 0x50, 0xc2, 0x63, 0x6e, 0x78, 0x70, 0x67, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x0a, 0x8b, 0xe5, 0x0d, 0x8e, 0xc5, 0x9d, 0x1d, 0xde, 0x42, 0xdb, 0xa0, 0xe8, 0xa0, 0x1d, 0xf0, 0xe4, 0xca, 0xe6, 0x0d, 0x9f, 0x07, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x4f, 0xef, 0x1c, 0x9c, 0xe2, 0x0d, 0x37, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x38, 0x31, 0x77, 0x6e, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xeb, 0x6c, 0x70, 0xcc, 0xf0, 0xec, 0xe0, 0x20, 0xe0, 0x79, 0x50, 0x1c, 0xc8, 0x1f, 0x4e, 0xb1, 0x35, 0x28, 0x26, 0xfa, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x8a, 0x89, 0xbe, 0x06, 0xe0, 0x83, 0x4c, 0xee, 0x0d, 0x0e, 0x84, 0x2e, 0x2c, 0x8d, 0x0d, 0xe4, 0xcd, 0xcc, 0x0c, 0x84, 0x2d, 0x6d, 0x8e, 0x6e, 0xc3, 0xe3, 0x23, 0x1b, 0x14, 0x13, 0x7d, 0x1b, 0x14, 0xca, 0x9d, 0x1b, 0x94, 0x70, 0xee, 0x1b, 0xbe, 0x7e, 0xd9, 0xf0, 0xb4, 0xce, 0x06, 0x25, 0x3c, 0xe6, 0x86, 0x07, 0x77, 0x36, 0x28, 0x28, 0x32, 0x37, 0x7c, 0x90, 0xb3, 0xc1, 0x89, 0x57, 0x71, 0x83, 0x82, 0x22, 0xf3, 0xe0, 0xc0, 0x94, 0x78, 0x38, 0xc5, 0x66, 0x01, 0x78, 0x6b, 0x7b, 0x63, 0x23, 0x9b, 0x6b, 0x09, 0x73, 0x23, 0x6b, 0x69, 0x7b, 0x63, 0x23, 0x6b, 0x11, 0xab, 0x4b, 0x63, 0x23, 0x2b, 0x93, 0x9b, 0x97, 0x01, 0x78, 0x95, 0x89, 0xd3, 0x01, 0x69, 0x7b, 0x63, 0x23, 0x9b, 0x03, 0x09, 0x73, 0x23, 0x03, 0x69, 0x7b, 0x63, 0x23, 0x03, 0x11, 0xab, 0x4b, 0x63, 0x23, 0x2b, 0x93, 0x9b, 0x5b, 0xc0, 0x87, 0x0b, 0xa3, 0x43, 0x37, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x0e, 0xa6, 0x9f, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xf8, 0xb2, 0xa5, 0xad, 0x95, 0x81, 0xd4, 0xb9, 0xa5, 0xe1, 0x81, 0xc0, 0x85, 0xd1, 0xa1, 0x6d, 0x10, 0xfa, 0x25, 0x1b, 0x84, 0x94, 0xc9, 0x1a, 0xfe, 0x9d, 0x5f, 0xc0, 0x5f, 0x73, 0x7b, 0xa3, 0xab, 0x15, 0xf0, 0xe9, 0xc2, 0xe0, 0xca, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0x63, 0x06, 0xe8, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xbc, 0xd4, 0xd1, 0x99, 0xe1, 0x80, 0xcc, 0xd1, 0xc9, 0xa5, 0xb9, 0x9d, 0x81, 0x84, 0xcd, 0x81, 0xb0, 0xa5, 0xcd, 0xd1, 0x6d, 0x10, 0xfa, 0x25, 0x1b, 0x84, 0x94, 0xc9, 0x1a, 0xbe, 0xa8, 0xd9, 0x50, 0xc7, 0x83, 0xa7, 0x23, 0x5a, 0x0d, 0x0e, 0x0c, 0xa0, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0x07, 0x06, 0xd0, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x7c, 0x82, 0xa6, 0x86, 0x92, 0x92, 0x40, 0xe8, 0xca, 0xf0, 0xe8, 0x36, 0x7c, 0x51, 0xb3, 0xa1, 0x8e, 0x07, 0x4f, 0x17, 0x1e, 0x4e, 0xb1, 0x16, 0xf0, 0xe9, 0xc2, 0xdc, 0xd6, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x01, 0x1f, 0x8e, 0x2d, 0xcc, 0x3d, 0x38, 0xce, 0x83, 0x36, 0x00, 0x3f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x20, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x20, 0x74, 0x72, 0x65, 0xe5, 0x4a, 0x80, 0xb7, 0x5a, 0xdd, 0x1c, 0x1d, 0x48, 0x18, 0xc8, 0xd8, 0x9b, 0x1c, 0x19, 0x0b, 0xc8, 0x9b, 0xbc, 0x04, 0xf0, 0x51, 0xc2, 0x56, 0x16, 0x66, 0xa6, 0x03, 0xa2, 0x56, 0x37, 0x47, 0x07, 0x12, 0x06, 0x42, 0x17, 0x06, 0x57, 0x2e, 0x01, 0xfc, 0x94, 0xc0, 0x85, 0xb1, 0xb5, 0xe9, 0x80, 0x88, 0x85, 0x8d, 0xad, 0xcd, 0xd1, 0x95, 0xc1, 0x81, 0xb0, 0xa5, 0xcd, 0xd1, 0xb5, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x7f, 0x89, 0xdc, 0xdb, 0x5c, 0x99, 0x0e, 0x88, 0x19, 0x5b, 0x18, 0x1d, 0x08, 0x5b, 0xda, 0x1c, 0xdd, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x71, 0x1e, 0x74, 0xc0, 0x17, 0x1b, 0x63, 0x9b, 0x37, 0x38, 0xce, 0x83, 0x6e, 0x10, 0x6a, 0x88, 0x6b, 0x78, 0xe2, 0xee, 0xa0, 0xa0, 0xc8, 0xdc, 0xf0, 0xc1, 0xfc, 0x1a, 0xfe, 0x9d, 0x5f, 0xc0, 0x1f, 0x7b, 0x93, 0x23, 0x6b, 0x83, 0xa0, 0xfd, 0x59, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x1f, 0x1e, 0xbe, 0x5b, 0xc3, 0x9f, 0x4b, 0x83, 0xc3, 0x1b, 0xfe, 0x9d, 0x5f, 0x83, 0x63, 0x06, 0x68, 0xb5, 0x86, 0xcf, 0x95, 0xd6, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0x51, 0xf5, 0xb7, 0x86, 0x3f, 0x97, 0x06, 0x87, 0x37, 0x08, 0xfd, 0x92, 0x35, 0xbc, 0xad, 0xb3, 0xe1, 0x89, 0xfc, 0x36, 0x38, 0xe9, 0x89, 0x6e, 0x70, 0xd2, 0x13, 0xdd, 0xe0, 0xa4, 0x27, 0xba, 0xc1, 0x49, 0x4f, 0xb4, 0x35, 0xfc, 0xb9, 0x34, 0x78, 0xbc, 0x41, 0xe8, 0x97, 0x6c, 0x10, 0x52, 0x26, 0x6b, 0xf8, 0x77, 0x7e, 0x0d, 0x8e, 0xf3, 0xa0, 0x55, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x94, 0xfe, 0x80, 0x6b, 0xf8, 0x73, 0x69, 0x70, 0x78, 0x83, 0xd0, 0x2f, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x84, 0x57, 0x44, 0x07, 0x67, 0x68, 0xd1, 0x83, 0x83, 0xba, 0x68, 0xab, 0xc1, 0x01, 0x49, 0x74, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0x80, 0x24, 0xba, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x77, 0x15, 0x95, 0x11, 0x0e, 0x0b, 0x08, 0xd3, 0x94, 0x10, 0x88, 0x59, 0x9a, 0xdc, 0x1c, 0xdd, 0x86, 0x2f, 0x6a, 0x36, 0xd4, 0xf1, 0x70, 0x7a, 0x05, 0xfc, 0xbb, 0xb0, 0x34, 0x77, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0x50, 0x3c, 0xba, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x0f, 0x5d, 0x19, 0x1e, 0x1d, 0x08, 0x5b, 0x9a, 0x5b, 0xd9, 0xdc, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0x48, 0x99, 0x6c, 0x70, 0x02, 0x12, 0xed, 0x70, 0x8a, 0xb5, 0x80, 0x3f, 0x86, 0x16, 0x26, 0x6f, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0x9c, 0x54, 0x48, 0x37, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0xa8, 0xa2, 0x32, 0xc2, 0x01, 0x11, 0xcb, 0xa3, 0x2b, 0x3b, 0x38, 0xcf, 0x8e, 0xae, 0x80, 0x4f, 0x17, 0x26, 0x07, 0x6f, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0x9c, 0xf0, 0x48, 0x37, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x82, 0x0b, 0x93, 0x9b, 0x2b, 0x23, 0x03, 0xa1, 0x4b, 0x6b, 0x2b, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x9c, 0x3c, 0x28, 0xb3, 0x74, 0xd7, 0xf0, 0xe7, 0xd2, 0xe0, 0xe8, 0x41, 0x99, 0xa5, 0xbb, 0x86, 0x3f, 0x97, 0x06, 0x6f, 0x0f, 0xca, 0x2c, 0xdd, 0x35, 0xfc, 0xb9, 0x34, 0xf8, 0x7c, 0x50, 0x66, 0xe9, 0xae, 0xe1, 0xcf, 0xa5, 0xc1, 0xcd, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0x90, 0x32, 0x59, 0xc3, 0x17, 0x35, 0x1b, 0xea, 0x78, 0xf0, 0x75, 0x78, 0xad, 0x80, 0x2f, 0x56, 0x16, 0xe6, 0x6e, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0x9c, 0x84, 0x4a, 0x37, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x86, 0xe9, 0x31, 0xe9, 0xc9, 0x2b, 0x9b, 0x63, 0x01, 0x89, 0xe9, 0xe1, 0xeb, 0x71, 0x7b, 0x3b, 0x7c, 0xb0, 0x7a, 0x38, 0xc5, 0xd6, 0x30, 0x9d, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x86, 0xe9, 0xdc, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xe0, 0x0f, 0x73, 0xcb, 0x03, 0x71, 0x7b, 0xab, 0x73, 0x3b, 0x08, 0xd3, 0xb1, 0x15, 0xf0, 0xc5, 0xf2, 0xe8, 0xe6, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0x63, 0x78, 0xe9, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xfe, 0x62, 0x79, 0x74, 0x65, 0x73, 0x2c, 0x20, 0x4d, 0x53, 0x42, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x1b, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x03, 0xde, 0x5d, 0x1a, 0x79, 0x50, 0x66, 0xe9, 0x1e, 0x94, 0xa5, 0xc5, 0x87, 0x53, 0x6c, 0x0d, 0xcf, 0xad, 0x6e, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0x9e, 0x5b, 0x3d, 0x7c, 0xb0, 0x7a, 0x38, 0xc5, 0x16, 0xf0, 0xe1, 0xd2, 0xe8, 0xd0, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0xe3, 0xa1, 0xe9, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xfe, 0x74, 0x79, 0x70, 0x65, 0x64, 0x20, 0x75, 0x72, 0x62, 0x69, 0x74, 0x20, 0x70, 0x61, 0x74, 0x68, 0x1b, 0x84, 0x7e, 0xc9, 0x06, 0x21, 0x65, 0xb2, 0x86, 0x7f, 0xe7, 0x17, 0xf0, 0xd3, 0xde, 0xe8, 0xc2, 0x6a, 0x05, 0xfc, 0x39, 0xba, 0x3a, 0x72, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x23, 0x43, 0xe8, 0xc1, 0xe1, 0xdf, 0xb4, 0x01, 0x3c, 0xe7, 0xe8, 0xc2, 0xdc, 0xc8, 0xc2, 0xe4, 0xc8, 0x40, 0xdc, 0xc2, 0xda, 0xca, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x0e, 0xff, 0xa6, 0x1b, 0x3e, 0x98, 0x5f, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x9f, 0xb0, 0x3a, 0x3a, 0xb4, 0x9e, 0x3a, 0x39, 0xb1, 0x34, 0xba, 0x0d, 0x7f, 0x2e, 0x0d, 0xf8, 0x6d, 0x61, 0x72, 0xeb, 0x86, 0x2f, 0x6a, 0x36, 0xd4, 0xf1, 0xc3, 0xcb, 0x77, 0x1b, 0x3e, 0x57, 0x5a, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x5e, 0xe6, 0xe8, 0xc2, 0xdc, 0xc8, 0xc2, 0xe4, 0xc8, 0xe6, 0x40, 0xc2, 0xea, 0xe8, 0xd0, 0xde, 0xe4, 0xd2, 0xe8, 0xf2, 0x36, 0xfc, 0xb9, 0x34, 0xe0, 0x87, 0xd5, 0xd1, 0xa1, 0x07, 0xe7, 0xcd, 0xd3, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x9d, 0xa3, 0x0b, 0x73, 0x23, 0x0b, 0x93, 0x23, 0x03, 0x61, 0x0b, 0x13, 0x2b, 0x63, 0xdb, 0xf0, 0xe7, 0xd2, 0x80, 0x4f, 0x97, 0x07, 0x57, 0x6e, 0xf8, 0x77, 0x7e, 0x0d, 0x0e, 0xa6, 0x9f, 0xd5, 0x0a, 0xf8, 0x77, 0x61, 0x6c, 0xec, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x69, 0x0b, 0x75, 0xc3, 0x13, 0xef, 0x1b, 0x1c, 0xd9, 0x47, 0x37, 0x08, 0xfd, 0x92, 0x0d, 0x42, 0xca, 0xe4, 0xe0, 0x14, 0x2e, 0xba, 0x02, 0x3e, 0x59, 0x18, 0x5d, 0xb9, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0x70, 0x16, 0x45, 0xdd, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x0b, 0x2e, 0x4c, 0x6e, 0xae, 0x8c, 0x0c, 0x84, 0x2c, 0x8c, 0xae, 0x6c, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x03, 0x90, 0xca, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0x3f, 0x28, 0xb3, 0x74, 0xdb, 0xe0, 0xdc, 0x4e, 0xba, 0x86, 0x3f, 0x97, 0x06, 0xa7, 0x37, 0xfc, 0x3b, 0xbf, 0x06, 0x27, 0x3c, 0xd2, 0xea, 0x70, 0x8a, 0xb5, 0x80, 0x4f, 0x57, 0x26, 0xd7, 0x6e, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0x9c, 0x80, 0x52, 0x37, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x0b, 0x9b, 0x1b, 0x4b, 0x4b, 0x03, 0x99, 0xcb, 0x6b, 0x13, 0x7b, 0x63, 0x3b, 0x38, 0x6f, 0x9e, 0xae, 0x80, 0x4f, 0x17, 0xe6, 0x76, 0x6e, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0x9c, 0x28, 0x53, 0x37, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0x43, 0xec, 0x8d, 0x8e, 0xee, 0xad, 0xad, 0xc5, 0x2c, 0x4d, 0x6e, 0x8e, 0x0e, 0xa4, 0x4c, 0x4e, 0xee, 0x4d, 0xee, 0xe0, 0x54, 0x2f, 0xba, 0x02, 0x7e, 0x18, 0x5e, 0xda, 0xbc, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0x70, 0xa6, 0x4f, 0xdd, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x8f, 0x4e, 0xae, 0xac, 0x0c, 0x24, 0x8c, 0x8c, 0x4c, 0xae, 0x6c, 0x6e, 0xee, 0xf0, 0x43, 0xcd, 0xac, 0xc1, 0x31, 0xde, 0x74, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x23, 0x43, 0xe8, 0xc1, 0x31, 0xde, 0xb4, 0x01, 0xf8, 0xa0, 0xcb, 0x83, 0x2b, 0x23, 0x03, 0x81, 0x0b, 0xa3, 0x43, 0x03, 0x99, 0x2b, 0x3b, 0x6b, 0x2b, 0x73, 0xa3, 0xdb, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x38, 0xc6, 0x9b, 0x6e, 0x70, 0x80, 0x10, 0xdd, 0xe0, 0x18, 0x6f, 0xba, 0x41, 0xa8, 0x21, 0xae, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0x71, 0x77, 0x70, 0x0a, 0x3c, 0x39, 0x28, 0xeb, 0x3c, 0x37, 0x7c, 0x30, 0xbf, 0xc1, 0x79, 0xf3, 0x74, 0x83, 0xa0, 0xfd, 0x59, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0x2e, 0xf8, 0x3a, 0x71, 0x0d, 0x5f, 0xd4, 0x6c, 0xa8, 0xe3, 0xc1, 0xd7, 0x89, 0xad, 0xe1, 0x73, 0xa5, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x17, 0x7c, 0xdd, 0xb8, 0x86, 0x2f, 0x6a, 0x36, 0xd4, 0xf1, 0xe0, 0xeb, 0xc6, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0xd4, 0xfc, 0x83, 0xd3, 0x21, 0xe1, 0x1a, 0x3e, 0x57, 0x5a, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0xc1, 0xd7, 0xa5, 0x6b, 0xf8, 0xa2, 0x66, 0x43, 0x1d, 0x0f, 0xbe, 0x2e, 0x6d, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0xe0, 0xeb, 0xf0, 0x83, 0x43, 0x4b, 0xe9, 0x1a, 0x3e, 0x57, 0x5a, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0xc1, 0xd7, 0xd9, 0x6b, 0xf8, 0xa2, 0x66, 0x43, 0x1d, 0x0f, 0xbe, 0xce, 0x6e, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0xe0, 0xeb, 0xee, 0x35, 0x7c, 0x51, 0xb3, 0xa1, 0x8e, 0x07, 0x5f, 0x77, 0xb7, 0x86, 0xcf, 0x95, 0xd6, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0x5d, 0xf0, 0x73, 0xe2, 0x1a, 0xbe, 0xa8, 0xd9, 0x50, 0xc7, 0x83, 0x9f, 0x13, 0x5b, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0x2e, 0xf8, 0xb9, 0x71, 0x0d, 0x5f, 0xd4, 0x6c, 0xa8, 0xe3, 0xc1, 0xcf, 0x8d, 0xad, 0xe1, 0x73, 0xa5, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x17, 0xfc, 0x1c, 0xb9, 0x86, 0x2f, 0x6a, 0x36, 0xd4, 0xf1, 0xe0, 0xe7, 0xc8, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x0b, 0x7e, 0x2e, 0x5d, 0xc3, 0x17, 0x35, 0x1b, 0xea, 0x78, 0xf0, 0x73, 0x69, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x05, 0x3f, 0x87, 0xaf, 0xe1, 0x8b, 0x9a, 0x0d, 0x75, 0x3c, 0xf8, 0x39, 0xbc, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x82, 0x9f, 0xb3, 0xd7, 0xf0, 0x45, 0xcd, 0x86, 0x3a, 0x1e, 0xfc, 0x9c, 0xdd, 0x1a, 0x3e, 0x57, 0x5a, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0xc1, 0xcf, 0xdd, 0x6b, 0xf8, 0xa2, 0x66, 0x43, 0x1d, 0x0f, 0x7e, 0xee, 0x6e, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0xe0, 0xc9, 0xc2, 0x35, 0x7c, 0x51, 0xb3, 0xa1, 0x8e, 0x07, 0x4f, 0x16, 0xb6, 0x86, 0xcf, 0x95, 0xd6, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0x5d, 0xf0, 0x64, 0xf2, 0x1a, 0xbe, 0xa8, 0xd9, 0x50, 0xc7, 0x83, 0x27, 0x93, 0x5b, 0xc3, 0xe7, 0x4a, 0x1b, 0x1c, 0xf5, 0x4d, 0x36, 0x7c, 0xb0, 0xda, 0x06, 0x07, 0xba, 0x93, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x82, 0x4f, 0x33, 0xd7, 0xf0, 0x45, 0xcd, 0x86, 0x3a, 0x1e, 0x7c, 0x9a, 0xd9, 0x1a, 0x3e, 0x57, 0x5a, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0xc1, 0xa7, 0xcd, 0x6b, 0xf8, 0xa2, 0x66, 0x43, 0x1d, 0x0f, 0x3e, 0x6d, 0x6e, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x70, 0x7a, 0x83, 0xf3, 0xec, 0x68, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xf8, 0x40, 0x74, 0x61, 0x73, 0x1b, 0x3e, 0x57, 0x5a, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0xc1, 0xd3, 0x85, 0x1b, 0x1c, 0xb5, 0x41, 0x5b, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0x2e, 0x1c, 0x5e, 0xc3, 0x17, 0x35, 0x1b, 0xea, 0x78, 0x38, 0xdc, 0x1a, 0x3e, 0x57, 0x5a, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0xe1, 0xf1, 0x1a, 0xbe, 0xa8, 0xd9, 0x50, 0xc7, 0xc3, 0xe3, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x0b, 0x5e, 0x6e, 0x5e, 0xc3, 0x17, 0x35, 0x1b, 0xea, 0x78, 0xf0, 0x72, 0x73, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x05, 0x2f, 0x47, 0xae, 0xe1, 0x8b, 0x9a, 0x0d, 0x75, 0x3c, 0x78, 0x39, 0xb2, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x82, 0x97, 0x43, 0xd7, 0xf0, 0x45, 0xcd, 0x86, 0x3a, 0x1e, 0xbc, 0x1c, 0xda, 0x1a, 0x3e, 0x57, 0x5a, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0xc1, 0xcb, 0xc5, 0x6b, 0xf8, 0xa2, 0x66, 0x43, 0x1d, 0x0f, 0x5e, 0x2e, 0xae, 0xc3, 0x29, 0x56, 0x0b, 0xf8, 0x74, 0x6f, 0x75, 0xf2, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0xa9, 0xf4, 0x75, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xdf, 0x3a, 0x3a, 0xb3, 0x19, 0x19, 0x90, 0x31, 0xb6, 0xba, 0x39, 0xba, 0x32, 0xb9, 0xb9, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0x90, 0x32, 0x59, 0xc3, 0x17, 0x35, 0x1b, 0xea, 0x78, 0xf8, 0xd8, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x0b, 0xc0, 0xdf, 0xd8, 0x9b, 0x1b, 0x5d, 0x58, 0x9a, 0x5b, 0x99, 0x5c, 0x8b, 0x99, 0xdc, 0x5b, 0x5b, 0xcb, 0xd8, 0x9b, 0x1b, 0x5d, 0x58, 0x9a, 0x5b, 0x99, 0xbc, 0x0c, 0xc0, 0xaf, 0x0c, 0x9b, 0x0e, 0xc8, 0xd8, 0x9b, 0x1b, 0x5d, 0x58, 0x9a, 0x5b, 0x99, 0x1c, 0x88, 0x99, 0xdc, 0x5b, 0x1b, 0xc8, 0xd8, 0x9b, 0x1b, 0x5d, 0x58, 0x9a, 0x5b, 0x99, 0xdc, 0x02, 0x7e, 0x5b, 0x18, 0x1b, 0xbd, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x70, 0x96, 0x84, 0x6d, 0x00, 0xcf, 0xb6, 0x30, 0x38, 0x10, 0x33, 0xb9, 0xb7, 0x36, 0x10, 0xb6, 0xb4, 0x39, 0xba, 0x0d, 0x0a, 0xe5, 0xce, 0x0d, 0x4a, 0x38, 0xf7, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0xbf, 0xed, 0x8d, 0x8d, 0x6e, 0x0d, 0x7f, 0xd1, 0xac, 0x41, 0xe8, 0x97, 0x6c, 0x10, 0x52, 0x26, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x0e, 0x6f, 0x10, 0x40, 0x67, 0x1b, 0x2e, 0xa9, 0x35, 0x08, 0x29, 0xf0, 0xc3, 0x83, 0x3b, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xe3, 0x0d, 0x02, 0xe8, 0x6c, 0xc3, 0x25, 0xb5, 0x06, 0x21, 0x00, 0x7e, 0x78, 0x70, 0xa7, 0x3a, 0x3c, 0xad, 0xd3, 0x6a, 0x70, 0xc4, 0x87, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x38, 0xe2, 0xc3, 0x36, 0x00, 0x1f, 0x6d, 0x61, 0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x70, 0x61, 0x69, 0x72, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x1b, 0x14, 0xca, 0x9d, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0x40, 0xa3, 0x57, 0x0b, 0x08, 0x48, 0x0f, 0x0b, 0x4a, 0x9a, 0x4b, 0x8b, 0x4b, 0x18, 0x08, 0x4a, 0x5b, 0x18, 0x1c, 0xc8, 0x17, 0x1c, 0xc8, 0x57, 0x5c, 0x4a, 0xea, 0xa0, 0xd0, 0xa4, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0x94, 0x3b, 0xef, 0x1b, 0x94, 0x4d, 0xf5, 0x6b, 0xf8, 0x8b, 0x66, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0xc0, 0xd1, 0x5b, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x70, 0xf8, 0xa0, 0x50, 0xad, 0x5f, 0xc3, 0x9f, 0x4b, 0x83, 0xc7, 0x07, 0xa5, 0x77, 0x7d, 0x1d, 0x14, 0x14, 0x99, 0x1d, 0x1e, 0xfa, 0x39, 0x9c, 0x62, 0x0b, 0xf8, 0x73, 0x69, 0x6c, 0xf4, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0xa9, 0x52, 0xb6, 0x01, 0x3c, 0xe7, 0xca, 0xe8, 0x40, 0xcc, 0xe4, 0xde, 0xda, 0x40, 0xd8, 0xd2, 0xe6, 0xe8, 0x36, 0x28, 0x94, 0x3b, 0xd7, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0x40, 0xdf, 0xab, 0x05, 0x04, 0x04, 0x65, 0xae, 0x8c, 0x0e, 0xe4, 0x2b, 0xcd, 0xa5, 0xc5, 0x25, 0x2c, 0x75, 0x50, 0xc2, 0xb9, 0x6f, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x2e, 0x6e, 0x50, 0x08, 0xa6, 0x6e, 0x10, 0xfa, 0x25, 0x1b, 0x04, 0x8e, 0xde, 0x06, 0x07, 0x43, 0xc5, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0xe5, 0xce, 0xfb, 0xc1, 0x09, 0x91, 0xeb, 0xf0, 0xd0, 0xcf, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x1b, 0xee, 0xb4, 0x19, 0xa0, 0x65, 0x0b, 0xcb, 0x2b, 0x93, 0x6b, 0x99, 0x6d, 0x98, 0xa1, 0x0d, 0xa5, 0x77, 0xc3, 0x89, 0xb0, 0xa1, 0xf4, 0xae, 0xe1, 0x1c, 0x59, 0xe1, 0x17, 0x04, 0x8b, 0xe1, 0xfa, 0xe2, 0xc2, 0x2f, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xd9, 0x1a, 0xf2, 0xd8, 0x8b, 0x1b, 0x72, 0xdf, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x8b, 0xe3, 0xe0, 0xf2, 0xe0, 0xf1, 0xc1, 0x28, 0x93, 0x3a, 0xbe, 0x1d, 0x8f, 0x07, 0xc1, 0xc2, 0x2f, 0x48, 0x06, 0xa6, 0xeb, 0x90, 0x5c, 0x3a, 0x28, 0x19, 0x9a, 0x0e, 0x89, 0xd6, 0xe3, 0xf1, 0x21, 0xeb, 0xb3, 0x82, 0x60, 0x83, 0x01, 0xb7, 0xbb, 0x38, 0x08, 0x16, 0x7e, 0x83, 0xd3, 0x03, 0xed, 0x20, 0x19, 0x8c, 0x8e, 0xc7, 0x87, 0x46, 0x2d, 0xc7, 0xe3, 0x15, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x7e, 0x83, 0xd3, 0x03, 0xed, 0x20, 0x19, 0x9c, 0x3a, 0x1e, 0x1f, 0x1a, 0xb5, 0x1c, 0x8f, 0x17, 0x7e, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0xc8, 0x36, 0x38, 0x59, 0xcf, 0x0e, 0x82, 0x85, 0xdf, 0xe0, 0xf4, 0x40, 0x3b, 0x48, 0x06, 0x42, 0x75, 0x3c, 0x3e, 0x24, 0x5a, 0x8f, 0xc7, 0x87, 0x34, 0xf0, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0xc2, 0x6f, 0x70, 0x7a, 0xa0, 0x1d, 0x24, 0x03, 0x63, 0x75, 0x3c, 0x3e, 0x34, 0x6a, 0x39, 0x1e, 0x2f, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xfc, 0x06, 0xa7, 0x07, 0xda, 0x41, 0x32, 0x50, 0xae, 0x8e, 0xc7, 0x87, 0x46, 0x2d, 0xc7, 0xe3, 0x85, 0x5f, 0x10, 0x6c, 0x30, 0xf2, 0x1f, 0x16, 0x07, 0xd9, 0x06, 0x27, 0xeb, 0xd9, 0x41, 0xb0, 0xf0, 0x1b, 0x9c, 0x1e, 0x68, 0x07, 0xc9, 0xc0, 0x79, 0x75, 0x3c, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xc8, 0xda, 0x6d, 0xe8, 0x21, 0x74, 0xe8, 0x18, 0x76, 0x1c, 0x3a, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0xcf, 0xac, 0x2d, 0x3c, 0xa4, 0x96, 0x8e, 0xc7, 0x0b, 0xbf, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x64, 0x1b, 0x9c, 0xac, 0x67, 0x07, 0xc1, 0xc2, 0x6f, 0x70, 0x7a, 0xa0, 0x1d, 0x24, 0x03, 0xe9, 0xab, 0xe3, 0xf1, 0x21, 0xd1, 0x7a, 0x3c, 0x3e, 0x6c, 0x4e, 0x2d, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xfc, 0x06, 0xa7, 0x07, 0xda, 0x41, 0x32, 0xd0, 0xfc, 0xea, 0x78, 0x7c, 0x68, 0xd4, 0x72, 0x3c, 0x1e, 0x7e, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0xc8, 0x36, 0x38, 0x59, 0xcf, 0x0e, 0x82, 0x85, 0xdf, 0xe0, 0xf4, 0x40, 0x3b, 0x48, 0x06, 0x5e, 0xbf, 0x3a, 0x1e, 0x1f, 0x12, 0xad, 0xc7, 0xe3, 0xc3, 0xbe, 0xf2, 0xc2, 0x2f, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xd9, 0x06, 0x27, 0xeb, 0xd9, 0x41, 0xb0, 0xf0, 0x1b, 0x9c, 0x1e, 0x68, 0x0f, 0x5d, 0x4c, 0x0e, 0x89, 0xd6, 0xe3, 0xf1, 0x21, 0x1f, 0xb8, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0xc2, 0x6f, 0x70, 0x7a, 0xa0, 0x1d, 0x24, 0x03, 0xe1, 0x3a, 0x1e, 0x1f, 0x1a, 0xb5, 0x1c, 0x8f, 0x07, 0xc1, 0x82, 0x64, 0x20, 0x2e, 0x87, 0xe4, 0xd2, 0x20, 0x5a, 0xd8, 0x35, 0x28, 0x17, 0x7d, 0x16, 0x7e, 0xe3, 0xf9, 0x41, 0x29, 0x22, 0x39, 0xfc, 0xc6, 0xf3, 0x31, 0x78, 0xff, 0xff, 0x90, 0xaa, 0x39, 0x0e, 0x2d, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xfc, 0x06, 0xa7, 0x07, 0xda, 0x41, 0x32, 0x30, 0x5e, 0xc7, 0xe3, 0x43, 0xa3, 0x96, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0xc2, 0x6f, 0x70, 0x7a, 0xa0, 0x1d, 0x24, 0x03, 0xc7, 0xd7, 0xf1, 0xf8, 0xd0, 0xa8, 0xe5, 0x78, 0xbc, 0xf0, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x64, 0x1b, 0x9c, 0xac, 0x67, 0x07, 0xc1, 0xc2, 0x6f, 0x70, 0x7a, 0xa0, 0x1d, 0x24, 0x03, 0xe7, 0xd7, 0xf1, 0xf8, 0xd0, 0xa8, 0xe5, 0x78, 0x7c, 0x50, 0x48, 0x61, 0x0d, 0xbf, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x64, 0x1b, 0x9c, 0xac, 0x67, 0x07, 0xc1, 0xc2, 0x6f, 0x70, 0x7a, 0xa0, 0x1d, 0x24, 0x03, 0xf7, 0xd7, 0xf1, 0xf8, 0x90, 0x68, 0x3d, 0x1e, 0x1f, 0x76, 0xbd, 0x17, 0x7e, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0xc8, 0x36, 0x38, 0x59, 0xcf, 0x0e, 0x82, 0x85, 0xdf, 0xe0, 0xf4, 0x40, 0x3b, 0x48, 0x06, 0xb3, 0xe3, 0xf1, 0x21, 0xd1, 0x7a, 0x3c, 0x3e, 0x2c, 0xb9, 0xaf, 0x20, 0xd8, 0x60, 0xc0, 0xed, 0x2e, 0x0e, 0x82, 0x85, 0xdf, 0xe0, 0xf4, 0x40, 0x3b, 0x48, 0x06, 0xe7, 0x8e, 0xc7, 0x87, 0x46, 0x2d, 0xc7, 0xe3, 0xe1, 0x17, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x6c, 0x83, 0x93, 0xf5, 0xec, 0x20, 0x58, 0xf8, 0x0d, 0x4e, 0x0f, 0xb4, 0x83, 0x64, 0x20, 0x76, 0xc7, 0xe3, 0x43, 0xa2, 0xf5, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x07, 0xbc, 0xb2, 0xb8, 0xfa, 0x90, 0x5a, 0x3a, 0x1e, 0x0f, 0xbf, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x64, 0x1b, 0x9c, 0xac, 0x67, 0x07, 0xc1, 0xc2, 0x6f, 0x70, 0x7a, 0xa0, 0x3d, 0x18, 0xcb, 0x50, 0x87, 0x44, 0xeb, 0xf1, 0xf8, 0xd0, 0xb3, 0xe3, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x07, 0x5e, 0x2e, 0x3e, 0xa4, 0x96, 0x8e, 0xc7, 0x2b, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xfc, 0x82, 0x64, 0xe0, 0x5e, 0x39, 0x24, 0x97, 0x06, 0xc9, 0x40, 0xfb, 0xab, 0xe3, 0xf1, 0xa1, 0x51, 0xcb, 0xf1, 0x78, 0x05, 0xc1, 0xe2, 0x82, 0xc7, 0x03, 0xc2, 0x36, 0x20, 0xf8, 0xfe, 0x7f, 0x70, 0x37, 0x9c, 0x1c, 0x7e, 0x41, 0xb0, 0xb8, 0xb0, 0x0b, 0x82, 0x0d, 0x06, 0xfa, 0xc8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xe2, 0x50, 0xe3, 0x60, 0x6c, 0xb8, 0x1e, 0x87, 0x0e, 0x8a, 0x60, 0x94, 0x15, 0x04, 0x1b, 0x0c, 0xb8, 0xdd, 0xc5, 0x61, 0x37, 0x18, 0xab, 0xbb, 0x0b, 0xa2, 0x85, 0x1d, 0x76, 0x43, 0x23, 0xc1, 0xc3, 0xfa, 0xe6, 0x21, 0x75, 0x30, 0xec, 0x06, 0x23, 0xc0, 0x77, 0x41, 0xb4, 0xd0, 0x61, 0x37, 0x8c, 0xcb, 0x61, 0x7d, 0xf3, 0x90, 0x3a, 0x18, 0x64, 0x6b, 0x68, 0xbf, 0x7e, 0x50, 0x82, 0x40, 0x1e, 0x52, 0x07, 0xc7, 0xe3, 0x15, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0xc3, 0x2e, 0xdc, 0x82, 0x60, 0xe1, 0x17, 0x24, 0x03, 0xe1, 0x3b, 0x64, 0x2b, 0x06, 0xc9, 0x40, 0xfc, 0x8e, 0xc7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x59, 0xbb, 0x83, 0x81, 0x1f, 0x72, 0x1c, 0x3a, 0x1c, 0xed, 0x0b, 0x82, 0x05, 0xc1, 0xc2, 0x6f, 0x70, 0x68, 0xd2, 0x1d, 0x24, 0x03, 0xb7, 0xde, 0xf1, 0xf8, 0x90, 0x86, 0x1b, 0x04, 0x0b, 0x82, 0x05, 0xc9, 0xc0, 0xfb, 0x4e, 0x07, 0x01, 0xef, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0xe3, 0x5f, 0xf2, 0xb0, 0xf6, 0x7b, 0x1c, 0x1a, 0x76, 0x61, 0x17, 0x6e, 0x83, 0x31, 0xf6, 0x74, 0x30, 0xf0, 0x8d, 0x37, 0xc4, 0x70, 0xd8, 0x85, 0xdb, 0x60, 0x8c, 0x3d, 0x1d, 0x9c, 0x79, 0x67, 0x0f, 0xe9, 0xdc, 0x35, 0x18, 0xb7, 0xbb, 0x1b, 0x62, 0x78, 0x30, 0xfe, 0x25, 0x07, 0xc1, 0x82, 0x60, 0x41, 0x32, 0xd0, 0xd7, 0xe9, 0x60, 0xbc, 0xeb, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x28, 0x3a, 0x1b, 0x0e, 0x89, 0x99, 0xe3, 0xd0, 0xb0, 0x0b, 0xbb, 0x70, 0x1b, 0x94, 0x34, 0x0d, 0x63, 0x78, 0xbd, 0x21, 0x86, 0xc3, 0x2e, 0xdc, 0x06, 0x25, 0x4d, 0xc3, 0x18, 0x1e, 0x1e, 0xd2, 0xb9, 0x6b, 0x30, 0x6e, 0x77, 0x37, 0xc4, 0x70, 0x43, 0x0c, 0x87, 0xdd, 0x60, 0xd4, 0x4b, 0x6e, 0x48, 0x1d, 0x1c, 0x96, 0x4f, 0x06, 0xc1, 0x82, 0x60, 0x41, 0x32, 0x90, 0x74, 0x3a, 0x18, 0x86, 0x3e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x40, 0x7a, 0xe5, 0x60, 0xf8, 0xc7, 0x1e, 0x0c, 0xb3, 0xf0, 0xe3, 0xd0, 0xb0, 0x0b, 0xbb, 0x70, 0x07, 0x43, 0x45, 0x60, 0x61, 0x17, 0x6e, 0x41, 0xb0, 0x20, 0x19, 0x38, 0xf7, 0x0e, 0x86, 0x7f, 0xec, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xc3, 0x5e, 0xe1, 0xc1, 0xd8, 0x70, 0x3d, 0x0e, 0x1d, 0x62, 0x78, 0x48, 0xe7, 0x1e, 0x8e, 0xf6, 0x35, 0x18, 0xb7, 0xbb, 0x1b, 0x62, 0x78, 0x10, 0x90, 0xcc, 0xc3, 0x2e, 0x08, 0x16, 0x24, 0x03, 0xf9, 0x95, 0x83, 0xe1, 0x28, 0x7d, 0x30, 0x38, 0x7d, 0x36, 0x38, 0x92, 0xf1, 0x6e, 0x30, 0x6e, 0x77, 0x37, 0xc4, 0x70, 0x43, 0x0c, 0x0f, 0x86, 0x9b, 0xc2, 0x06, 0xe3, 0x76, 0xf7, 0xb0, 0xc8, 0x77, 0x3c, 0x5e, 0x10, 0x2c, 0xfc, 0x06, 0x25, 0x6a, 0xc8, 0x41, 0xc9, 0xd0, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0xe0, 0xac, 0x3b, 0x1e, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0xfc, 0x06, 0x25, 0x6a, 0xc8, 0xc1, 0xb8, 0x83, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0xfc, 0xa0, 0x64, 0x68, 0x3a, 0x0e, 0x1d, 0x87, 0x06, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0x58, 0x90, 0x0c, 0x64, 0xbb, 0x0e, 0xc9, 0xa5, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x54, 0xcd, 0xc1, 0xc0, 0x0f, 0x39, 0x0e, 0x1d, 0x8f, 0x57, 0x90, 0x0c, 0x94, 0xbb, 0xe3, 0xf1, 0xe1, 0x68, 0x5f, 0x41, 0xb0, 0xb8, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x8b, 0x83, 0x60, 0x05, 0xc1, 0x06, 0x45, 0xea, 0xd3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x81, 0x1f, 0x72, 0x30, 0x2e, 0xcc, 0x8e, 0x43, 0x83, 0x60, 0x83, 0x22, 0xf5, 0x69, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc0, 0x0f, 0x39, 0x74, 0x0c, 0x3b, 0x0e, 0x0d, 0x82, 0x05, 0xc1, 0xc2, 0x2f, 0x48, 0x06, 0xc2, 0x77, 0x10, 0xe4, 0xfc, 0x83, 0x64, 0xa0, 0xee, 0x1d, 0x8f, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0xfc, 0x06, 0xa7, 0x00, 0xdf, 0x83, 0x71, 0x07, 0x75, 0x30, 0x8c, 0x1d, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x38, 0xcd, 0xf8, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xcc, 0x20, 0xd8, 0x60, 0x64, 0xbd, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x8c, 0xcb, 0xf0, 0x1b, 0xcf, 0x0f, 0x06, 0x77, 0xe5, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x1a, 0x7e, 0x41, 0xb4, 0xa0, 0x7c, 0xd8, 0x05, 0xc1, 0xc2, 0x2f, 0x48, 0x06, 0xc2, 0x77, 0x10, 0xf0, 0xfe, 0x83, 0x64, 0x20, 0x78, 0xc7, 0xe3, 0x83, 0x81, 0x2d, 0xba, 0x21, 0xfe, 0x83, 0x68, 0x71, 0x41, 0xb0, 0xf0, 0x1b, 0x9c, 0x7a, 0x7d, 0x0f, 0x4a, 0x86, 0xa6, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xd4, 0xc1, 0x41, 0x09, 0x23, 0x71, 0x1c, 0x1a, 0x04, 0x1b, 0x8c, 0xdb, 0x9e, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0xdf, 0x10, 0xc3, 0x41, 0xb0, 0xf0, 0x1b, 0x9c, 0x7a, 0x7d, 0x0f, 0x0e, 0x9b, 0xba, 0x07, 0x03, 0x5b, 0xf4, 0x60, 0x2c, 0x76, 0x1e, 0x87, 0x0e, 0xf1, 0x3f, 0x1e, 0x0f, 0x82, 0x15, 0x04, 0x0b, 0xbf, 0xc1, 0xa9, 0xd7, 0xf7, 0xe0, 0x04, 0xe1, 0x7b, 0x50, 0xde, 0xed, 0x0d, 0x82, 0x05, 0xc9, 0xc0, 0xa8, 0x1c, 0x0c, 0x43, 0x9f, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x63, 0xb1, 0xf3, 0x20, 0x78, 0xb8, 0x8f, 0x43, 0x83, 0x60, 0x41, 0x32, 0x90, 0xed, 0x3a, 0x08, 0x72, 0xfe, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0xdf, 0x20, 0xa4, 0xc0, 0x0f, 0x82, 0x2c, 0x7e, 0xf8, 0x8d, 0xe7, 0xc3, 0x6d, 0x30, 0x58, 0x63, 0x0f, 0x31, 0x3c, 0x0e, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x71, 0xd8, 0x85, 0x5b, 0x10, 0x2c, 0x48, 0x06, 0xfa, 0x3a, 0x1d, 0x04, 0xbc, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x81, 0x1f, 0x72, 0x58, 0xfb, 0x3d, 0x0e, 0x1d, 0x8e, 0xf6, 0x0d, 0xa9, 0x9a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x88, 0x17, 0x04, 0x0b, 0xbf, 0xc1, 0x29, 0xc0, 0xf7, 0xa0, 0x64, 0x68, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x88, 0xff, 0xa1, 0xf1, 0xfc, 0x71, 0x68, 0x10, 0x6c, 0x70, 0xa4, 0xd5, 0x3d, 0x38, 0x07, 0x01, 0x1f, 0x8f, 0x8f, 0x6f, 0xc7, 0xe3, 0xd5, 0xe0, 0xb8, 0xd7, 0x3b, 0x08, 0x36, 0x18, 0x9d, 0x0d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x99, 0x88, 0x83, 0xc3, 0x46, 0xef, 0x71, 0x68, 0x10, 0x6c, 0x50, 0x50, 0x8b, 0x2d, 0x0e, 0xbb, 0x70, 0x1b, 0x9c, 0x79, 0x67, 0x0f, 0x2d, 0x80, 0x16, 0x04, 0x0b, 0x92, 0x81, 0x52, 0x77, 0x48, 0x2e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x18, 0xbc, 0x19, 0x7b, 0xc8, 0xcb, 0x1e, 0x87, 0x86, 0x5d, 0xb8, 0x0d, 0x06, 0xbe, 0xf1, 0xa1, 0x05, 0xd0, 0x06, 0x87, 0x91, 0xe0, 0x61, 0x17, 0x6e, 0x83, 0x73, 0xe4, 0xee, 0xa1, 0x05, 0xd0, 0x82, 0x60, 0x83, 0xb3, 0x49, 0xf0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x8f, 0xc1, 0x8f, 0x95, 0x87, 0xbc, 0xec, 0x71, 0x68, 0xd8, 0x85, 0xdb, 0xe0, 0xa4, 0xb7, 0x7b, 0x68, 0x01, 0xb4, 0xc1, 0x09, 0x31, 0x78, 0x90, 0xad, 0xa1, 0xfd, 0xfa, 0x70, 0x1b, 0x0c, 0xa9, 0xdf, 0x43, 0x0b, 0xa0, 0x41, 0xb0, 0xc1, 0xd9, 0x24, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0xc7, 0xe0, 0xdd, 0xca, 0x43, 0x5e, 0xf6, 0x38, 0x74, 0x3c, 0x5e, 0xf8, 0x05, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0xb0, 0x1b, 0x94, 0xa1, 0x52, 0x1b, 0x4e, 0xb1, 0xe1, 0x17, 0x44, 0x0b, 0x3b, 0x08, 0x16, 0x24, 0x03, 0x63, 0x77, 0x48, 0x2e, 0x1d, 0x1a, 0xb5, 0x1c, 0x8f, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x31, 0xb4, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x1b, 0x62, 0x38, 0xec, 0x82, 0x60, 0xe1, 0x37, 0x38, 0x34, 0xe9, 0x1e, 0x9c, 0x98, 0x7d, 0x0f, 0x69, 0xb8, 0x0d, 0x8e, 0x8c, 0xba, 0x87, 0x18, 0x1e, 0xf2, 0xb5, 0xc7, 0xa1, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0xd4, 0xa5, 0x83, 0x80, 0xf7, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x0d, 0x31, 0x1c, 0x76, 0x41, 0xb0, 0xf0, 0x1b, 0x9c, 0x02, 0x7c, 0x0f, 0x4e, 0xcc, 0xbe, 0x87, 0x8d, 0xda, 0x0d, 0x31, 0x1c, 0x04, 0x0b, 0xbf, 0xc1, 0x29, 0xc0, 0xf7, 0xe0, 0xb0, 0xa9, 0x7b, 0xd8, 0xa8, 0x3d, 0x18, 0x1b, 0xae, 0xc7, 0xa1, 0x41, 0xb0, 0x20, 0xd8, 0x60, 0xdc, 0xf6, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x86, 0x18, 0x0e, 0xbb, 0x20, 0xd8, 0xe0, 0xa4, 0xeb, 0x7b, 0xc8, 0x5e, 0x2c, 0x08, 0x36, 0x38, 0x0f, 0xfd, 0x1e, 0xb2, 0x17, 0x87, 0x18, 0x1e, 0x8c, 0x0d, 0xd7, 0xe3, 0xd0, 0x20, 0xd8, 0x38, 0x34, 0xfc, 0xc2, 0x2e, 0xec, 0xc2, 0x6d, 0x10, 0x22, 0xfe, 0x83, 0x60, 0x41, 0x32, 0x90, 0x74, 0x3a, 0x18, 0xfe, 0xb1, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x40, 0x7a, 0xe5, 0x60, 0x38, 0x4a, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x7e, 0x30, 0x82, 0x4f, 0x8f, 0x43, 0xc7, 0xa1, 0x85, 0x5d, 0xd8, 0x85, 0x5d, 0xb8, 0x0d, 0x82, 0x14, 0x7f, 0x90, 0x0c, 0x94, 0xbb, 0x83, 0x80, 0xf7, 0x3f, 0xac, 0x6f, 0x6e, 0x88, 0xe1, 0xb0, 0x0b, 0xb7, 0x20, 0x19, 0xb8, 0xeb, 0x0e, 0x02, 0xde, 0xff, 0x60, 0x34, 0xf8, 0x1e, 0xd2, 0xb9, 0x87, 0x74, 0xee, 0xe1, 0x68, 0x5f, 0x10, 0x2d, 0x98, 0x0f, 0x82, 0x05, 0xc9, 0x40, 0x5d, 0x3a, 0x18, 0xfe, 0xb1, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x06, 0x7e, 0xc8, 0x41, 0x60, 0x62, 0x1f, 0x87, 0x06, 0xd1, 0x82, 0x78, 0x10, 0x6c, 0x70, 0x94, 0x23, 0x3e, 0x18, 0xbd, 0x87, 0x83, 0x68, 0x21, 0x83, 0x60, 0x83, 0xa3, 0x1c, 0xf1, 0xc1, 0xa0, 0x06, 0x3e, 0x1e, 0x1f, 0x8f, 0x07, 0xc1, 0x1a, 0x62, 0x38, 0x08, 0x16, 0x24, 0x03, 0xe7, 0xca, 0xc1, 0x70, 0x94, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x90, 0x93, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xd8, 0x2b, 0x1c, 0x7e, 0xe3, 0xf9, 0x18, 0x92, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0xc7, 0x10, 0x1d, 0x87, 0x06, 0xc1, 0xe2, 0xb0, 0x0b, 0x82, 0x05, 0xc9, 0x40, 0x7e, 0x65, 0x82, 0xfd, 0xff, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x83, 0x77, 0xf2, 0x90, 0xaf, 0x3d, 0x0e, 0x2d, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xf7, 0x07, 0xc1, 0x82, 0x64, 0x10, 0x1c, 0x1c, 0xb3, 0x8a, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xde, 0xc9, 0x83, 0x73, 0x4d, 0xf1, 0x71, 0x68, 0x10, 0x2d, 0x98, 0x0f, 0x82, 0x0d, 0x4e, 0x8e, 0xc5, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x02, 0x13, 0xfb, 0xe0, 0x5c, 0x53, 0x7c, 0x1c, 0x1a, 0x44, 0x0b, 0xe2, 0x41, 0xb0, 0xc1, 0xc9, 0xb1, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x61, 0xaf, 0xf0, 0xe0, 0x5c, 0x53, 0x7c, 0x1c, 0x1a, 0x44, 0x0b, 0xc2, 0x41, 0xb0, 0xf0, 0x0b, 0x92, 0x81, 0xf0, 0x1d, 0x0c, 0x47, 0xe9, 0x83, 0x13, 0x84, 0xef, 0xe1, 0xa9, 0x81, 0xe3, 0xf1, 0x20, 0x58, 0x1c, 0x76, 0x41, 0xb0, 0x20, 0x19, 0xd4, 0x4c, 0xd0, 0xff, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x50, 0x72, 0x70, 0xf6, 0x32, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x04, 0x07, 0x67, 0x2f, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x03, 0x91, 0xfa, 0xd0, 0x78, 0xfe, 0x38, 0x74, 0x10, 0x98, 0xd8, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xce, 0xa1, 0xc6, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x06, 0xef, 0xe4, 0xa1, 0xf1, 0xfc, 0x71, 0xe8, 0x38, 0xb4, 0x20, 0x19, 0x32, 0x88, 0x16, 0xdc, 0x1f, 0x04, 0x1b, 0x9c, 0x43, 0x8d, 0x0f, 0x8e, 0x9c, 0xc5, 0x83, 0x68, 0xc1, 0x78, 0x10, 0x2c, 0xfc, 0x82, 0x64, 0x20, 0x7c, 0x13, 0xe4, 0xff, 0x0f, 0x4a, 0x86, 0xa6, 0x83, 0x43, 0x23, 0xf0, 0xf1, 0x78, 0x10, 0x6c, 0x48, 0x4c, 0x0d, 0x82, 0xc5, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0x8c, 0xca, 0x04, 0xc2, 0xff, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x10, 0x1c, 0x9c, 0xf3, 0x8e, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x4b, 0x70, 0xfe, 0x1f, 0x9c, 0x6b, 0x8a, 0x8f, 0x43, 0x07, 0x85, 0x5b, 0xd2, 0x71, 0x68, 0xf8, 0x05, 0xd1, 0x02, 0xe7, 0xff, 0x41, 0x08, 0x80, 0x0f, 0xa2, 0x05, 0xc6, 0x7f, 0x10, 0x2c, 0x48, 0x06, 0xc1, 0x04, 0xc6, 0xff, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xc2, 0x2d, 0xe9, 0xe0, 0x5c, 0x53, 0x7c, 0x1c, 0x1a, 0x44, 0x0b, 0x84, 0x7f, 0x10, 0x6c, 0x70, 0x7a, 0x3f, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x10, 0xa9, 0x0f, 0xce, 0x35, 0xc5, 0xc7, 0xa1, 0x41, 0xb4, 0x40, 0xf0, 0x07, 0xc1, 0xc2, 0x2f, 0x48, 0x06, 0xc2, 0x37, 0xc1, 0xff, 0xff, 0x07, 0x27, 0x08, 0xdf, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xa3, 0xd5, 0xfc, 0xd0, 0x78, 0xfe, 0x38, 0x34, 0x88, 0x36, 0x28, 0x2c, 0x48, 0x8e, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0xc8, 0xaf, 0x1c, 0x9c, 0xeb, 0x8f, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x70, 0x7a, 0x3f, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0x41, 0xfa, 0xff, 0xd0, 0x78, 0xfe, 0x38, 0x74, 0x50, 0xb8, 0x25, 0x1d, 0x87, 0x06, 0xc1, 0xc2, 0x2e, 0x08, 0x16, 0x24, 0x03, 0xf9, 0x95, 0x09, 0x94, 0xff, 0xff, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x83, 0xe0, 0xe0, 0x40, 0x91, 0x7c, 0x70, 0xc8, 0x46, 0x3e, 0x28, 0xdc, 0x92, 0x8e, 0x43, 0x1b, 0x62, 0x38, 0xec, 0x82, 0x60, 0x41, 0x32, 0xf8, 0x72, 0x70, 0xa0, 0x48, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x61, 0x26, 0x79, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x04, 0xeb, 0xff, 0x87, 0xc6, 0xf3, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0xe0, 0xcf, 0xc1, 0x81, 0x22, 0xf9, 0xe0, 0xc4, 0x91, 0x7c, 0x1c, 0x3a, 0xa4, 0x73, 0x87, 0x5d, 0xd8, 0x85, 0xdd, 0x90, 0x3a, 0x38, 0xac, 0x6f, 0x2e, 0xec, 0xc2, 0x6e, 0x1c, 0x3a, 0xac, 0x6f, 0x1e, 0xd2, 0xb9, 0x87, 0xa3, 0x7d, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x48, 0x07, 0xc1, 0x82, 0x64, 0x50, 0x32, 0x81, 0xf3, 0xff, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x20, 0x38, 0x38, 0x6d, 0x28, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x08, 0x11, 0xff, 0x83, 0x73, 0x4d, 0xf1, 0x71, 0xe8, 0x20, 0x48, 0xf1, 0x8f, 0x43, 0x87, 0x15, 0xda, 0x41, 0xb0, 0xb0, 0x1b, 0x87, 0x16, 0x76, 0x61, 0x37, 0x38, 0x6a, 0x27, 0x6f, 0x88, 0xe1, 0xb0, 0x0b, 0x82, 0x05, 0xc9, 0xe0, 0xcb, 0xc1, 0x69, 0x43, 0x79, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x47, 0x1d, 0xe5, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xe5, 0x62, 0xcf, 0xa1, 0xf1, 0xfc, 0x71, 0xe8, 0xe0, 0x9c, 0x99, 0x7c, 0x1c, 0x3a, 0xa4, 0x73, 0x0f, 0xe9, 0xdc, 0xc3, 0xd1, 0x3e, 0xfc, 0x82, 0x68, 0x81, 0xe8, 0x0f, 0x82, 0x05, 0xc9, 0xa0, 0x64, 0x02, 0xe9, 0xff, 0xff, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x83, 0xe0, 0xe0, 0x98, 0xb1, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x18, 0xc3, 0x1e, 0x9c, 0x6b, 0x8a, 0x8f, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x76, 0xe3, 0xd0, 0xc2, 0x1c, 0x04, 0x29, 0xfe, 0x41, 0x90, 0xe2, 0x1f, 0x87, 0x8e, 0xc7, 0x4b, 0x70, 0xfc, 0x1f, 0x84, 0x88, 0xff, 0xf1, 0xed, 0xf8, 0x76, 0x7c, 0x3b, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0x8f, 0x4c, 0xee, 0x3c, 0xa4, 0x96, 0x8e, 0xc7, 0x83, 0x60, 0x83, 0x73, 0x64, 0xef, 0xe2, 0xb0, 0x1b, 0x8c, 0x99, 0xae, 0x05, 0xc1, 0x82, 0x64, 0x20, 0xbf, 0x72, 0x10, 0xf0, 0xfe, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xc6, 0x85, 0xd9, 0xa1, 0x63, 0xd8, 0x71, 0x68, 0x10, 0x2c, 0x08, 0x36, 0x38, 0x28, 0xe9, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0xd4, 0xbe, 0x43, 0x72, 0xe9, 0x90, 0x86, 0x1b, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0x58, 0xc3, 0x7c, 0xe8, 0xa0, 0x71, 0x1c, 0x1a, 0x76, 0xe1, 0x36, 0x0e, 0x1d, 0x8e, 0xf6, 0x0d, 0x31, 0x1c, 0x76, 0xe1, 0x36, 0x0e, 0x1d, 0x5a, 0x89, 0x6f, 0x38, 0xda, 0x87, 0x5d, 0xb8, 0x05, 0xc1, 0xc2, 0x6f, 0x70, 0x0a, 0xf0, 0x3d, 0x38, 0x6a, 0xe9, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x13, 0x56, 0x87, 0x16, 0x40, 0xc7, 0xa1, 0xc3, 0xd1, 0xbe, 0x20, 0x58, 0x90, 0x0c, 0xe4, 0x57, 0x0e, 0xc6, 0xbb, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x8e, 0xb4, 0xba, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0xbe, 0x21, 0x86, 0x83, 0x60, 0x83, 0xb3, 0xc5, 0xf0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x93, 0x7f, 0xef, 0xc1, 0x59, 0x95, 0xf9, 0x38, 0x74, 0x30, 0xb2, 0xac, 0x8e, 0x43, 0x87, 0x86, 0x5f, 0xc7, 0xa1, 0x41, 0xb0, 0xc1, 0x31, 0x9a, 0x79, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xc7, 0x63, 0xe1, 0x83, 0x13, 0x40, 0xf3, 0xa1, 0xe1, 0xd7, 0x71, 0xe8, 0x78, 0xbc, 0xc1, 0x49, 0x9e, 0x77, 0x10, 0x2c, 0x48, 0x06, 0xca, 0xd2, 0x61, 0x85, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc0, 0x0f, 0xd9, 0xe0, 0x6c, 0xd2, 0x7b, 0x30, 0x36, 0x5c, 0x8f, 0x43, 0x0b, 0x82, 0x0d, 0xce, 0x91, 0xbd, 0x8b, 0x83, 0x60, 0x41, 0x32, 0x10, 0xab, 0x43, 0x72, 0x69, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc2, 0x6f, 0x70, 0x68, 0xd2, 0x3d, 0x28, 0x19, 0x9a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x14, 0x87, 0x1a, 0x87, 0x1e, 0x42, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x06, 0x9a, 0xd3, 0xc1, 0x49, 0x7e, 0xf9, 0x38, 0x74, 0x3c, 0x5e, 0x41, 0xb0, 0x78, 0x30, 0x98, 0xd0, 0x16, 0x07, 0xc1, 0x82, 0x60, 0xe1, 0x37, 0x38, 0x34, 0xe9, 0x1e, 0x9c, 0x20, 0x7c, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x14, 0x87, 0x1a, 0x07, 0x83, 0x68, 0xe5, 0x38, 0x34, 0x08, 0x16, 0x87, 0x5d, 0x10, 0x6c, 0x70, 0xd2, 0xf5, 0x3d, 0x34, 0x6a, 0x59, 0xd8, 0x0d, 0x0d, 0xbf, 0xd6, 0x60, 0xdc, 0xee, 0x6e, 0x88, 0xe1, 0x06, 0x41, 0x12, 0x3d, 0x08, 0x36, 0x18, 0xb1, 0xad, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x18, 0xb7, 0x3d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0xbe, 0x21, 0x86, 0x83, 0x60, 0x83, 0xf3, 0xd0, 0xef, 0xa1, 0x51, 0xcb, 0xc1, 0x58, 0xec, 0x3c, 0x0e, 0x4d, 0x30, 0xf5, 0xc7, 0xa1, 0x41, 0xb0, 0x82, 0x60, 0x41, 0x32, 0xd0, 0xd6, 0xe9, 0x60, 0xbc, 0xeb, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xf8, 0x21, 0x07, 0x63, 0xb1, 0xf3, 0x38, 0x34, 0x08, 0x36, 0x38, 0x60, 0x3d, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xf8, 0x21, 0x07, 0x67, 0xa3, 0xe7, 0xe3, 0xd0, 0x20, 0x58, 0x10, 0x2c, 0xfc, 0x82, 0x64, 0x20, 0x7c, 0x07, 0xe3, 0x5d, 0xe7, 0xe0, 0x04, 0xe1, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x08, 0x9b, 0x18, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0xf8, 0x0d, 0x4e, 0xbc, 0xcf, 0x07, 0xe3, 0x0e, 0x6a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x61, 0x17, 0x04, 0x0b, 0x92, 0xc1, 0x97, 0x83, 0xe1, 0x1f, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0x98, 0x83, 0x20, 0xe7, 0x3f, 0x44, 0xf3, 0x38, 0xb4, 0x20, 0x58, 0x90, 0x0c, 0xfe, 0x1c, 0x0c, 0xff, 0xd8, 0x83, 0xd3, 0x0a, 0xf4, 0x21, 0x86, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0x58, 0x10, 0x2c, 0xfc, 0x82, 0x64, 0x20, 0x7c, 0x07, 0xc3, 0xd0, 0xe7, 0xa0, 0x64, 0x68, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x50, 0xcc, 0x16, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0xfc, 0x06, 0x27, 0x42, 0xe8, 0x83, 0x71, 0x07, 0x75, 0xe8, 0xa0, 0x71, 0x1c, 0x1a, 0x76, 0xe1, 0x16, 0x04, 0x0b, 0xbf, 0x20, 0x19, 0x08, 0xdf, 0xc1, 0xf0, 0x8f, 0x3d, 0x38, 0x6a, 0xe9, 0x1e, 0x0c, 0x4e, 0x9f, 0x43, 0x2b, 0xf1, 0x85, 0x5d, 0xb8, 0x0d, 0xce, 0xbc, 0xb3, 0x13, 0xa4, 0xfe, 0x17, 0x04, 0x0b, 0x92, 0x81, 0x52, 0x77, 0x30, 0xde, 0x75, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x1c, 0x82, 0x82, 0x37, 0x28, 0x09, 0x1a, 0x0e, 0x06, 0x7e, 0xc8, 0x71, 0x68, 0xd8, 0x85, 0xdb, 0x60, 0xe0, 0x1b, 0x1f, 0x9c, 0x28, 0xa2, 0x37, 0x38, 0x6c, 0x44, 0x0f, 0xbb, 0x70, 0x1b, 0x9c, 0x23, 0x77, 0x0f, 0x4e, 0x14, 0xd1, 0x0b, 0x82, 0x0d, 0xce, 0x1e, 0xd1, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x06, 0xcf, 0x76, 0x1e, 0x1c, 0x85, 0xa2, 0x8f, 0x43, 0xc3, 0x2e, 0xdc, 0x06, 0x27, 0xbd, 0xdd, 0x83, 0x13, 0x45, 0xf4, 0x06, 0x67, 0xc4, 0xe8, 0x41, 0xb6, 0x86, 0xf6, 0xeb, 0xc3, 0x6d, 0x30, 0xa4, 0x7e, 0x0f, 0x4e, 0x14, 0xd1, 0x83, 0x60, 0x83, 0xb3, 0x47, 0xf4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x8f, 0xc1, 0xbb, 0x85, 0x07, 0x47, 0xa1, 0xe8, 0xe3, 0xd0, 0x20, 0x58, 0x90, 0x0c, 0xc4, 0xea, 0x60, 0xbc, 0xeb, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0x41, 0x31, 0x5b, 0x30, 0x08, 0x16, 0x24, 0x83, 0x92, 0x83, 0x93, 0xd0, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x40, 0x5d, 0x3a, 0x18, 0x8e, 0xd2, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0xbe, 0x21, 0x86, 0x83, 0x60, 0xe1, 0x37, 0x38, 0x87, 0x43, 0x1f, 0x1c, 0x36, 0x75, 0x0f, 0x46, 0xc2, 0xea, 0x41, 0x09, 0x29, 0x71, 0x1c, 0x9a, 0x20, 0xeb, 0x7f, 0x1c, 0x3a, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0xc1, 0xf5, 0x43, 0xfc, 0x07, 0xd1, 0x82, 0xf2, 0x43, 0x0b, 0xa0, 0xc3, 0x8e, 0xc9, 0xf1, 0xed, 0x78, 0xbc, 0x82, 0x60, 0x71, 0x83, 0x61, 0xb7, 0xdb, 0xe2, 0xb0, 0x0b, 0xbb, 0xb0, 0x1b, 0x04, 0xc3, 0xfe, 0xc2, 0x6d, 0x30, 0xa4, 0x7e, 0x0f, 0xc6, 0x4f, 0xd7, 0xe1, 0x68, 0xdf, 0x10, 0xc3, 0x61, 0x17, 0x76, 0x83, 0x60, 0xd8, 0x5f, 0xb8, 0x0d, 0x46, 0x83, 0xef, 0xc1, 0xf8, 0xe9, 0x3a, 0x1c, 0xed, 0x87, 0x74, 0xee, 0x86, 0x68, 0x0e, 0xa2, 0x05, 0xf1, 0x20, 0xd8, 0xe0, 0x84, 0xe1, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0x82, 0x30, 0x1f, 0xf2, 0xb5, 0xc7, 0xa1, 0x43, 0x34, 0x8f, 0xc7, 0x0b, 0xbf, 0x20, 0x58, 0x1c, 0x78, 0x37, 0xfa, 0x60, 0x8c, 0xa1, 0x2d, 0x0e, 0xbb, 0x70, 0x1b, 0x0c, 0xd3, 0x89, 0x43, 0x0c, 0x37, 0x9c, 0x62, 0x83, 0x60, 0x41, 0xb0, 0x20, 0xd8, 0xa0, 0x48, 0x7d, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xf0, 0x43, 0x0e, 0x06, 0x7f, 0xcc, 0x71, 0x68, 0xd8, 0x85, 0xdd, 0xd0, 0x31, 0x6c, 0x43, 0x0c, 0x87, 0x5d, 0x10, 0x2c, 0x48, 0x06, 0x5f, 0x0e, 0xc6, 0xbb, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xea, 0xe0, 0xe0, 0xfc, 0xe8, 0x7b, 0x1c, 0x3a, 0xa4, 0x73, 0x17, 0x04, 0x0b, 0x82, 0x05, 0xc9, 0x40, 0x59, 0x39, 0x18, 0xef, 0x3a, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xec, 0x06, 0xc7, 0x0e, 0xea, 0x05, 0xc1, 0x82, 0x64, 0xf0, 0xe7, 0x60, 0xbc, 0xeb, 0x1c, 0x9c, 0x5f, 0xa8, 0x0f, 0x31, 0x1c, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0x6c, 0x31, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xb0, 0x0b, 0xb7, 0x20, 0x19, 0xb8, 0xeb, 0x0e, 0x2b, 0xb4, 0x07, 0xa3, 0xc1, 0x77, 0x43, 0x0c, 0x87, 0x5d, 0xb8, 0x05, 0xc1, 0x06, 0x27, 0x4c, 0xe6, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x41, 0x12, 0x3d, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x50, 0xee, 0x0e, 0x2b, 0xb4, 0xc7, 0xa1, 0xc3, 0xd1, 0xbe, 0x20, 0xd8, 0xe0, 0xe4, 0xdf, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0x14, 0x51, 0x7d, 0x10, 0x24, 0xd1, 0xc7, 0xa1, 0x43, 0x0c, 0x8f, 0x43, 0xc7, 0xa1, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0xbc, 0x20, 0xd8, 0xe0, 0xc0, 0xb3, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0x18, 0xad, 0x7b, 0x70, 0x36, 0x7a, 0x3e, 0x0e, 0x0d, 0xa2, 0xc5, 0x05, 0xc1, 0x06, 0xe7, 0x76, 0xdf, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x45, 0x68, 0xc2, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc2, 0x6f, 0x70, 0xea, 0xf5, 0x3d, 0x18, 0x77, 0x50, 0x07, 0x03, 0x5b, 0xf4, 0x38, 0x34, 0x08, 0x36, 0x18, 0xb0, 0x3c, 0x07, 0xa7, 0xc1, 0xea, 0x43, 0x0b, 0xa0, 0xe1, 0x37, 0x28, 0x75, 0xf7, 0x86, 0xdf, 0x60, 0xb0, 0x03, 0x0c, 0xbb, 0x70, 0x1b, 0x62, 0x78, 0x70, 0x36, 0x7a, 0x5e, 0xd8, 0x85, 0x5b, 0x90, 0x0c, 0xdc, 0x75, 0x07, 0x41, 0xce, 0x7f, 0x30, 0x1a, 0x7c, 0x37, 0x9c, 0x62, 0xc3, 0x2e, 0xdc, 0x06, 0xe7, 0xa3, 0xe0, 0x43, 0xb2, 0x63, 0x0d, 0xc6, 0xed, 0xee, 0x86, 0x18, 0x0e, 0x92, 0x81, 0xe1, 0x3b, 0x08, 0x72, 0xfe, 0x61, 0x17, 0x6e, 0x31, 0xf8, 0xb9, 0xf6, 0x90, 0xec, 0xd8, 0xe0, 0x60, 0x66, 0x3d, 0xec, 0xc2, 0x6d, 0x70, 0x36, 0x0d, 0x3e, 0x24, 0x3b, 0xd6, 0x60, 0xdc, 0xee, 0x6e, 0x88, 0xe1, 0x20, 0x19, 0xdc, 0x3a, 0x08, 0x72, 0xfe, 0x61, 0x17, 0x6e, 0x83, 0xd3, 0x69, 0xf4, 0x21, 0xd9, 0xb1, 0xc1, 0x21, 0xd6, 0x7a, 0xd8, 0x85, 0xdb, 0xe0, 0xc8, 0x20, 0x7c, 0x48, 0x76, 0x2c, 0xec, 0x06, 0xc1, 0xc3, 0xbd, 0x06, 0xe3, 0x76, 0x77, 0x43, 0x0c, 0x87, 0x5d, 0x10, 0x2c, 0x48, 0x06, 0x82, 0x72, 0x30, 0xfc, 0x63, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x52, 0x07, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x1c, 0x98, 0x77, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x1c, 0xe5, 0x77, 0x0f, 0x8d, 0x5a, 0x8e, 0x43, 0xc7, 0xa1, 0x0d, 0xce, 0x72, 0xd6, 0x07, 0xe7, 0x5e, 0xeb, 0x0d, 0xc6, 0xed, 0xee, 0x86, 0x18, 0x0e, 0xbb, 0x20, 0x58, 0x90, 0x0c, 0xe4, 0x57, 0x0e, 0x86, 0x7f, 0xec, 0xc1, 0x11, 0xe5, 0xfa, 0xe0, 0x80, 0x77, 0x3d, 0xec, 0xc2, 0x2d, 0x06, 0xef, 0x46, 0x1f, 0x92, 0x1d, 0x1b, 0x9c, 0xf6, 0xad, 0x07, 0xd9, 0x1a, 0xda, 0xaf, 0x0f, 0xb7, 0xc1, 0x59, 0x42, 0xfa, 0x90, 0xec, 0x38, 0x38, 0x20, 0x5e, 0x0f, 0xbf, 0x20, 0x5a, 0x20, 0xf4, 0x83, 0x60, 0x41, 0x32, 0x30, 0x76, 0x07, 0x41, 0xce, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x3d, 0x18, 0x63, 0x4f, 0xc7, 0xa1, 0xe3, 0xf1, 0xf0, 0x0b, 0xa2, 0x05, 0x42, 0x3f, 0xec, 0x06, 0xa7, 0x2a, 0xeb, 0x0d, 0x42, 0x3e, 0x7b, 0xd8, 0x0d, 0x0e, 0xcf, 0xd6, 0x0b, 0xa2, 0x85, 0x0e, 0x73, 0x70, 0x36, 0x7a, 0x3e, 0x08, 0xf9, 0xec, 0x61, 0x37, 0x38, 0x14, 0x5a, 0x2f, 0xec, 0xc2, 0x2e, 0xdc, 0xc6, 0xa1, 0x43, 0x0c, 0x17, 0x76, 0x83, 0xe0, 0xe1, 0x3e, 0xa4, 0x73, 0x0f, 0x47, 0xfb, 0xc2, 0x2e, 0xec, 0xc2, 0x6d, 0x50, 0x84, 0x26, 0x0c, 0x92, 0x81, 0x72, 0x77, 0x10, 0xe4, 0xfc, 0x0b, 0xbb, 0xb0, 0x1b, 0x1c, 0x65, 0xac, 0x0f, 0xeb, 0x9b, 0x87, 0x74, 0xee, 0xe1, 0x68, 0x5f, 0x10, 0x2d, 0x74, 0x10, 0x6c, 0x70, 0x94, 0xdf, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x4e, 0x50, 0xf5, 0x8f, 0x43, 0x07, 0x21, 0x9f, 0x3d, 0x08, 0x16, 0x04, 0x1b, 0x1c, 0xe5, 0x77, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x41, 0x70, 0x30, 0xfc, 0x63, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x9c, 0x01, 0xb2, 0x0f, 0x8d, 0xe7, 0x8f, 0x43, 0xc7, 0xa1, 0x61, 0x17, 0x04, 0x0b, 0x92, 0x81, 0xa0, 0x1c, 0x0c, 0x47, 0xe9, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0xb6, 0x4e, 0x07, 0xc3, 0x3f, 0xf6, 0x60, 0x50, 0x03, 0x1f, 0x1c, 0xed, 0x87, 0x8f, 0x43, 0x2b, 0x08, 0x16, 0x7e, 0x83, 0x13, 0x21, 0xf4, 0xc1, 0x09, 0xc2, 0x77, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x31, 0x5b, 0x70, 0x68, 0x3c, 0x7f, 0x1c, 0x3a, 0x0e, 0x0d, 0xa2, 0x85, 0x0e, 0x82, 0x0d, 0x8e, 0xda, 0xc3, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x09, 0xae, 0xfe, 0xe3, 0xd0, 0xc1, 0x18, 0x7b, 0x3a, 0x08, 0xf9, 0xec, 0x61, 0x37, 0x38, 0x81, 0x5a, 0x2f, 0xec, 0x06, 0x27, 0x40, 0xec, 0x0d, 0x42, 0x3e, 0xfb, 0xe0, 0xac, 0x85, 0x3d, 0xec, 0x06, 0x47, 0x75, 0xeb, 0x85, 0xdd, 0x60, 0xd4, 0x4b, 0x6e, 0x10, 0xf2, 0xd9, 0x83, 0x60, 0x83, 0x43, 0xd0, 0xf5, 0xb0, 0x0b, 0xbb, 0xc1, 0x79, 0x82, 0x77, 0x61, 0x37, 0x18, 0x03, 0x0b, 0x87, 0x74, 0xee, 0xe1, 0x68, 0x5f, 0x10, 0x2c, 0x08, 0x36, 0x38, 0x9f, 0xf0, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x38, 0x30, 0x68, 0x1f, 0x8c, 0x0d, 0xd7, 0xe3, 0xd0, 0xb0, 0x1b, 0x8c, 0x7a, 0xc9, 0x0d, 0x4a, 0x9a, 0x86, 0xe1, 0x37, 0x9e, 0x0f, 0xa2, 0x85, 0x0e, 0x73, 0x70, 0x06, 0xc8, 0x3e, 0x18, 0x63, 0x4f, 0xc3, 0x6e, 0x70, 0xda, 0xe3, 0xdd, 0x60, 0x8c, 0x3d, 0x1d, 0x9c, 0xb9, 0xb5, 0x87, 0xdd, 0xe0, 0x0c, 0x7e, 0xbd, 0xb0, 0x1b, 0x8c, 0x7a, 0xc9, 0x0d, 0x42, 0x3e, 0x7b, 0x10, 0x6c, 0x70, 0x08, 0xba, 0x3e, 0x38, 0xd1, 0x6b, 0x0f, 0xb2, 0x35, 0xb4, 0x5f, 0x3f, 0x38, 0xf9, 0x5e, 0x0f, 0xbb, 0xc1, 0xa8, 0x97, 0xdc, 0x20, 0xe4, 0xb3, 0x07, 0xc1, 0x06, 0x87, 0xa0, 0xeb, 0x61, 0x37, 0x38, 0x4f, 0xf0, 0x2e, 0xec, 0x06, 0x63, 0x60, 0xe1, 0xe0, 0xf0, 0xaf, 0x7d, 0x70, 0xa2, 0xd7, 0x3e, 0x1e, 0x0f, 0xbf, 0x20, 0x5a, 0x20, 0xf4, 0xc3, 0x2e, 0xdc, 0x82, 0x60, 0x41, 0x32, 0xd0, 0xd6, 0xe9, 0x60, 0x18, 0xfa, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xf8, 0x21, 0x07, 0x67, 0x80, 0xec, 0xe3, 0xd0, 0x30, 0x07, 0x27, 0x1f, 0xe8, 0x05, 0xd1, 0xe2, 0x82, 0x60, 0xe1, 0x37, 0x38, 0xf1, 0x3e, 0x1f, 0x94, 0x0c, 0x4d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x25, 0x28, 0xfa, 0x87, 0xc6, 0xf3, 0xc7, 0xa1, 0x41, 0xb0, 0x20, 0x19, 0x78, 0xdf, 0xe9, 0x60, 0x18, 0xfa, 0x1c, 0x9c, 0x79, 0xb7, 0x0f, 0x42, 0x3e, 0xfb, 0x20, 0xe4, 0xb3, 0x8f, 0xc7, 0xc3, 0x6e, 0x70, 0xfe, 0xb0, 0xde, 0xe0, 0x60, 0x66, 0x3d, 0xec, 0x06, 0x47, 0x19, 0xeb, 0x35, 0x18, 0xb7, 0xbb, 0x1b, 0x62, 0x78, 0x10, 0xf2, 0xd9, 0xc3, 0x2e, 0xdc, 0x82, 0x60, 0xe1, 0x37, 0x38, 0xf1, 0x3e, 0x1f, 0x1c, 0xb5, 0x74, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x9c, 0x75, 0x07, 0x41, 0xce, 0x7f, 0x70, 0x74, 0xe0, 0x3e, 0x0e, 0x1d, 0x8e, 0xf6, 0xc5, 0x83, 0x62, 0xf7, 0xfc, 0xe0, 0xa8, 0xc6, 0x7d, 0x38, 0xc5, 0x86, 0x5d, 0xb8, 0x0d, 0xce, 0xd1, 0xd4, 0x07, 0xe3, 0x76, 0x77, 0x61, 0x17, 0x76, 0x83, 0xd1, 0xb1, 0xbe, 0x70, 0x1b, 0x8c, 0xdb, 0xdd, 0x83, 0x90, 0x02, 0x3f, 0x1c, 0xed, 0x0b, 0xbb, 0x70, 0x0b, 0x82, 0x0d, 0x46, 0xa7, 0xed, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x81, 0x1f, 0x72, 0x30, 0x32, 0x7b, 0x8f, 0x43, 0x07, 0x83, 0xbb, 0x72, 0xe3, 0xd0, 0x06, 0xe3, 0x76, 0x77, 0x43, 0x0c, 0x07, 0xc9, 0xc0, 0xf0, 0x1d, 0x56, 0x68, 0x8f, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0x1c, 0xf0, 0xd8, 0xea, 0xce, 0x43, 0x6a, 0xe9, 0x78, 0xbc, 0x20, 0xd8, 0xe0, 0xd4, 0xcc, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0xc7, 0xbd, 0xde, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x4e, 0x09, 0xbd, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x09, 0x9f, 0x8f, 0x43, 0xc7, 0xa1, 0x83, 0xa0, 0xf4, 0x5e, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0x05, 0xc1, 0x06, 0x45, 0xea, 0xd3, 0xc1, 0xa8, 0xc2, 0x1e, 0x76, 0x41, 0xb0, 0x20, 0x19, 0xd4, 0x1c, 0x8c, 0x77, 0x9d, 0x83, 0xf3, 0x0b, 0xf5, 0x86, 0x54, 0xcd, 0x20, 0x58, 0xd8, 0x0d, 0xce, 0xce, 0xd4, 0x0b, 0x82, 0x0d, 0x4e, 0x8c, 0xd4, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xce, 0x8f, 0xbe, 0x87, 0xd4, 0xc1, 0x71, 0x68, 0x10, 0x2c, 0x08, 0x16, 0x04, 0x1b, 0x9c, 0xfc, 0x7b, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xe2, 0x7f, 0x70, 0x8a, 0xa8, 0x3e, 0x0e, 0x0d, 0xbb, 0xc1, 0xd1, 0xd6, 0x77, 0x83, 0x03, 0xd0, 0xef, 0x21, 0x86, 0x83, 0x60, 0x41, 0x32, 0x10, 0x9c, 0x83, 0x61, 0xe8, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0x3a, 0x18, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0xa4, 0xf9, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0xe6, 0x90, 0xad, 0x38, 0xa4, 0x6a, 0x8e, 0x43, 0xc7, 0xa1, 0x41, 0xb4, 0xb8, 0x20, 0xd8, 0xe0, 0x8c, 0xf7, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xec, 0x38, 0x38, 0x1f, 0x57, 0x1f, 0x87, 0x06, 0xc1, 0x06, 0xe3, 0xb6, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x31, 0x5a, 0xf7, 0x90, 0x98, 0x39, 0x0e, 0x1d, 0xf6, 0x0a, 0x8f, 0xc7, 0x1b, 0x1a, 0xea, 0x0c, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0xe1, 0x17, 0x44, 0x0b, 0x3b, 0x08, 0xd6, 0xe0, 0x48, 0xe0, 0x3d, 0x08, 0x36, 0x18, 0x68, 0x4e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xcc, 0x20, 0x19, 0xe6, 0x90, 0x5c, 0x3a, 0x34, 0x9e, 0x3f, 0x0e, 0x0d, 0x82, 0x85, 0x5d, 0x10, 0x6c, 0x70, 0x8c, 0x66, 0x3e, 0x18, 0x75, 0x5c, 0x0b, 0x82, 0x0d, 0x4e, 0x8c, 0xd4, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xe3, 0x72, 0x88, 0xe6, 0x71, 0xe8, 0x10, 0xc3, 0x41, 0xb0, 0xb0, 0x0b, 0xb7, 0x20, 0x58, 0x90, 0x0c, 0x9c, 0x7b, 0x07, 0xe3, 0x5d, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x75, 0x70, 0x30, 0x36, 0x5c, 0x8f, 0x43, 0x83, 0x60, 0x83, 0xe3, 0x09, 0xf8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x1f, 0x9c, 0xea, 0x86, 0x0f, 0xc6, 0x86, 0xeb, 0x71, 0x68, 0xe3, 0xd0, 0x20, 0xd8, 0x60, 0xc4, 0xb6, 0x1e, 0x1c, 0x6f, 0xc0, 0x07, 0xd1, 0xe2, 0x82, 0x60, 0x83, 0x53, 0xee, 0xf3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x20, 0xc5, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0x18, 0xff, 0x7c, 0x30, 0xb0, 0x45, 0x8f, 0x43, 0x83, 0x60, 0x83, 0x21, 0x3e, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0x18, 0xad, 0x7b, 0x10, 0x22, 0xfe, 0xc7, 0xa1, 0x83, 0xc0, 0xc4, 0x3e, 0x1e, 0x0f, 0x82, 0x15, 0x04, 0x0b, 0x92, 0x81, 0xde, 0x7d, 0x07, 0x41, 0xce, 0x7f, 0xe8, 0xa0, 0x31, 0x08, 0x16, 0x7e, 0x83, 0x43, 0x93, 0xee, 0x20, 0x19, 0x08, 0xdf, 0xf1, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x6b, 0x77, 0x50, 0x90, 0xed, 0x1c, 0x87, 0x06, 0xc1, 0x82, 0x64, 0x20, 0xdb, 0x75, 0x58, 0xa1, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x0d, 0x42, 0x00, 0xfc, 0xa0, 0xa0, 0x28, 0x1a, 0x7e, 0xe3, 0xf9, 0x70, 0x4b, 0x48, 0x0e, 0x31, 0x3c, 0x0e, 0x1d, 0x8f, 0x17, 0x76, 0xe1, 0x36, 0x18, 0xf8, 0xc6, 0x87, 0x46, 0x82, 0x1b, 0x9c, 0xf4, 0x76, 0x87, 0x5d, 0xb8, 0x0d, 0x4e, 0x7a, 0xbb, 0x87, 0x46, 0x82, 0x1b, 0x0c, 0x7c, 0xe3, 0x41, 0xb6, 0xa1, 0xf9, 0xfa, 0xa1, 0x91, 0xe0, 0x1a, 0x12, 0x53, 0x0b, 0x82, 0x0d, 0x06, 0xdc, 0xee, 0xe2, 0xb0, 0x0b, 0xbb, 0xa1, 0xe3, 0xc8, 0x06, 0x63, 0x75, 0xf7, 0x70, 0xb4, 0x6f, 0x48, 0x1d, 0x0c, 0xb2, 0x35, 0xe4, 0xb1, 0x17, 0x37, 0xe4, 0xbe, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0xc7, 0xc1, 0xdd, 0xc1, 0xcb, 0xc1, 0xcb, 0xc1, 0xc9, 0x41, 0xdb, 0xe0, 0xe6, 0xe0, 0xec, 0xe0, 0xef, 0xe0, 0xe1, 0xc1, 0x81, 0xa6, 0xef, 0xf8, 0x76, 0x3c, 0x3e, 0x9c, 0x62, 0xc7, 0xe3, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0x08, 0x36, 0x38, 0x61, 0x38, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0xf8, 0x0d, 0x0e, 0x4d, 0xba, 0x07, 0xe3, 0x0e, 0x6a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0xb0, 0x52, 0x1c, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0xfc, 0xe0, 0x48, 0xe0, 0x7d, 0x1c, 0x3a, 0x0e, 0x1d, 0xb2, 0x76, 0xc7, 0xa1, 0xe3, 0xf1, 0x82, 0x60, 0x83, 0x73, 0x64, 0xef, 0xe2, 0xb0, 0x0b, 0xb7, 0xc1, 0x39, 0x86, 0xf9, 0xe0, 0xfc, 0xc4, 0xbc, 0xb0, 0x0b, 0xb7, 0x20, 0xd8, 0xe0, 0xa0, 0xa4, 0x7b, 0x70, 0x54, 0x71, 0x3e, 0x1c, 0xed, 0x0b, 0xb7, 0x20, 0xd8, 0x60, 0x0c, 0x2d, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x86, 0x18, 0x0e, 0x82, 0x0d, 0x4e, 0x90, 0xba, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x0e, 0x80, 0xce, 0x07, 0x47, 0x15, 0xe7, 0xe3, 0xd0, 0xa1, 0x63, 0xd8, 0x71, 0xe8, 0x60, 0x68, 0x76, 0x0d, 0xb7, 0x20, 0xd8, 0x60, 0x0c, 0x2d, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x38, 0xd4, 0x8d, 0x1f, 0x8c, 0x0b, 0xb3, 0xe3, 0xd0, 0x41, 0x50, 0x7a, 0x1f, 0x8e, 0xf6, 0xe3, 0xf1, 0x20, 0xd8, 0xe0, 0xdc, 0xe6, 0xbc, 0x38, 0x08, 0x36, 0x38, 0xf1, 0x39, 0x0f, 0x82, 0xc5, 0x61, 0x37, 0x38, 0xe6, 0x3a, 0x2f, 0x08, 0x36, 0x38, 0x4f, 0x3d, 0x0f, 0x82, 0x0d, 0x8e, 0xb5, 0xcf, 0x83, 0x60, 0x41, 0xb0, 0xc1, 0x29, 0x10, 0x7a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x31, 0x5b, 0x30, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x29, 0x17, 0x7a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x43, 0x52, 0xef, 0x38, 0x74, 0x1c, 0x1a, 0x76, 0x61, 0x17, 0x76, 0x83, 0x72, 0xac, 0xe1, 0xb0, 0xbe, 0xb9, 0xb0, 0x1b, 0x1c, 0xb0, 0xa1, 0x0f, 0xe9, 0xdc, 0xc3, 0xd1, 0xbe, 0xb0, 0x1b, 0x1c, 0x13, 0xa2, 0x17, 0x04, 0x1b, 0x9c, 0x3d, 0xa2, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0xfc, 0xe0, 0x80, 0x68, 0x7d, 0x70, 0x14, 0x8a, 0x3e, 0x0e, 0x0d, 0xbb, 0xc1, 0x11, 0x2b, 0x7a, 0x83, 0x43, 0x34, 0xf9, 0xb0, 0x1b, 0x9c, 0xeb, 0xa2, 0x17, 0x04, 0x1b, 0x9c, 0x3d, 0xa2, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x1c, 0x40, 0x83, 0x0f, 0x8e, 0x42, 0xd1, 0xc7, 0xa1, 0x61, 0x37, 0x38, 0xf5, 0x46, 0x6f, 0x70, 0x08, 0x29, 0x1f, 0x64, 0x1b, 0x9c, 0xb7, 0xa3, 0x07, 0xc1, 0x06, 0x67, 0x8f, 0xe8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x3f, 0x38, 0x05, 0x5f, 0x1f, 0x1c, 0x85, 0xa2, 0x8f, 0x43, 0x83, 0x60, 0x83, 0x33, 0x9e, 0xf4, 0x20, 0x58, 0x1c, 0x76, 0x41, 0xb0, 0xc1, 0xf9, 0xca, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x55, 0x33, 0x41, 0xd7, 0xff, 0xe3, 0xd0, 0x82, 0x60, 0x41, 0xb0, 0x20, 0x19, 0xfc, 0x39, 0x38, 0x7b, 0x19, 0x1f, 0x1c, 0x77, 0xcb, 0x87, 0xdd, 0x60, 0xd4, 0x4b, 0xae, 0xc1, 0xb8, 0xdd, 0xdd, 0x10, 0xc3, 0x41, 0x32, 0x30, 0x7c, 0x07, 0xc3, 0x51, 0x7a, 0xd8, 0x0d, 0xca, 0x06, 0xa1, 0x35, 0x18, 0xb7, 0xbb, 0x1b, 0x62, 0xb8, 0x04, 0x4d, 0xff, 0x8f, 0x43, 0x83, 0x60, 0x41, 0x32, 0x10, 0xab, 0x83, 0xe1, 0x28, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xc1, 0xa9, 0xc6, 0xfc, 0x38, 0x34, 0x08, 0x16, 0x24, 0x83, 0xd1, 0xc1, 0xf0, 0x8f, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xb4, 0xfe, 0x1f, 0x24, 0x83, 0x7b, 0x07, 0xc3, 0x3f, 0x76, 0x10, 0x2d, 0xb0, 0xf5, 0x7f, 0x48, 0x1d, 0x0c, 0xa2, 0x85, 0x9d, 0x60, 0xeb, 0xff, 0x78, 0x7c, 0x1c, 0x3a, 0xbe, 0x0d, 0x82, 0x05, 0xc9, 0x60, 0x74, 0xc8, 0x56, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0x46, 0x7f, 0x90, 0x0c, 0xee, 0x1d, 0xb2, 0x15, 0x07, 0x27, 0x70, 0xe9, 0xe3, 0xd0, 0xf1, 0xed, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x07, 0xfc, 0xb1, 0x37, 0x33, 0xf6, 0x90, 0x5a, 0x3a, 0x1e, 0x2f, 0x2e, 0x08, 0x16, 0x37, 0x18, 0x76, 0xbb, 0x07, 0xc3, 0x6e, 0x77, 0x71, 0xd8, 0x85, 0xdd, 0xe0, 0xdc, 0x31, 0xbd, 0x21, 0x86, 0xc3, 0x2e, 0xec, 0x06, 0xa3, 0x17, 0x6b, 0xe1, 0x36, 0x18, 0x52, 0xbf, 0x87, 0x46, 0x82, 0x87, 0xa3, 0xfd, 0x90, 0xce, 0xdd, 0x60, 0xc0, 0xed, 0x0e, 0xbb, 0xc1, 0xe1, 0x68, 0x7a, 0x61, 0x17, 0x76, 0x83, 0xd1, 0x8b, 0xb5, 0x70, 0x1b, 0x8c, 0x06, 0xdf, 0x43, 0x23, 0xc1, 0xc3, 0xd1, 0xbe, 0x06, 0xa3, 0xc1, 0xf7, 0x60, 0xb4, 0xcb, 0x0d, 0xbb, 0x70, 0x4b, 0xf8, 0x7b, 0x88, 0xe1, 0x06, 0x03, 0x6e, 0x77, 0x83, 0xd1, 0xe0, 0x3b, 0xdc, 0x06, 0x43, 0xb3, 0xeb, 0xd0, 0x49, 0x6d, 0xd8, 0x0d, 0x0e, 0xb5, 0xe7, 0x0b, 0xbb, 0x70, 0x4b, 0xf8, 0x79, 0x88, 0xe1, 0x06, 0x03, 0x6e, 0x77, 0x83, 0xd1, 0xe0, 0x3b, 0xdc, 0x86, 0x86, 0x3a, 0x07, 0x41, 0xe9, 0x3d, 0xec, 0xc2, 0x6e, 0x70, 0x0e, 0x41, 0xdf, 0x10, 0xc3, 0x61, 0x37, 0x38, 0x9f, 0x9f, 0x1f, 0xd2, 0xb9, 0x6b, 0x30, 0x6e, 0x77, 0x17, 0xee, 0xd0, 0x06, 0xf4, 0xe0, 0x68, 0xd6, 0x3d, 0xec, 0x06, 0x87, 0x3c, 0xf4, 0x05, 0xc1, 0x82, 0x64, 0x30, 0x3b, 0xac, 0xd0, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x38, 0x88, 0x77, 0x1f, 0x9a, 0x25, 0x1d, 0x87, 0x86, 0x5f, 0x10, 0x2d, 0x10, 0xfa, 0x41, 0x32, 0xb8, 0x77, 0x58, 0xa1, 0x3d, 0x1e, 0x0f, 0x82, 0x05, 0xc9, 0x60, 0x74, 0x58, 0xa1, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0xfc, 0xe0, 0x48, 0x89, 0x7e, 0x1c, 0x3a, 0x1e, 0xaf, 0x20, 0xd8, 0x60, 0xc0, 0xed, 0x2e, 0x0e, 0xbb, 0xb0, 0x1b, 0x3a, 0x8e, 0x6c, 0x50, 0x82, 0x40, 0x1e, 0x8e, 0xf6, 0x0d, 0x06, 0xdc, 0xee, 0xb0, 0x0b, 0xbb, 0xa1, 0xe3, 0xc8, 0x06, 0x23, 0xc0, 0xf7, 0x70, 0xb4, 0xaf, 0xc1, 0x68, 0xf0, 0x3d, 0x8c, 0xcb, 0xf0, 0x0b, 0xa2, 0x05, 0x42, 0x7f, 0x30, 0xa4, 0x7e, 0x8f, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0xc1, 0xd9, 0x62, 0xf8, 0xd0, 0x89, 0x68, 0xd8, 0x05, 0xc1, 0x06, 0x27, 0x5d, 0xdf, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xa1, 0xe9, 0xd0, 0x71, 0x68, 0x41, 0xb0, 0xc1, 0xe0, 0xae, 0x1c, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x0d, 0xc6, 0xed, 0xee, 0x86, 0x1e, 0x42, 0x1b, 0x62, 0x78, 0x68, 0x96, 0x34, 0xfc, 0xc6, 0xf3, 0x0d, 0xc6, 0xed, 0xee, 0x86, 0x18, 0x6e, 0x68, 0x5c, 0x34, 0x08, 0x16, 0x24, 0x03, 0xad, 0xfb, 0x0e, 0xc6, 0xbb, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x12, 0x0d, 0xe7, 0x90, 0x3a, 0x38, 0x0e, 0x1d, 0x87, 0x06, 0xc1, 0x82, 0x64, 0xa0, 0x5c, 0x1d, 0x56, 0x68, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x9c, 0x9a, 0xd3, 0x87, 0xdf, 0x78, 0xbe, 0xc1, 0xb8, 0xdd, 0xdd, 0x10, 0xc3, 0x0d, 0x8e, 0xce, 0xd5, 0x07, 0xa7, 0x03, 0xf5, 0xe3, 0xd0, 0xf1, 0x78, 0x05, 0xc1, 0xe2, 0x06, 0xc3, 0x6e, 0xf7, 0xe0, 0x28, 0x75, 0xbe, 0x38, 0x08, 0x16, 0x24, 0x83, 0x5b, 0x87, 0xe4, 0xd2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x40, 0xf9, 0x3a, 0x24, 0x97, 0x0e, 0xc6, 0x68, 0xc4, 0xa1, 0x63, 0xd8, 0x71, 0xe8, 0x78, 0xbc, 0x82, 0x60, 0x83, 0x43, 0xd4, 0xf9, 0xe2, 0x20, 0x58, 0x90, 0x0c, 0xec, 0xd7, 0x1d, 0x04, 0xbc, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x40, 0xf6, 0xea, 0x90, 0x5c, 0x3a, 0x28, 0x97, 0x68, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0xf1, 0xe0, 0xa8, 0x9d, 0x7c, 0x3c, 0x3e, 0x0e, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x24, 0x03, 0x67, 0xd5, 0x21, 0xb9, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x06, 0xe3, 0x76, 0x77, 0x43, 0x0c, 0x0f, 0x8b, 0x7c, 0xc7, 0xa1, 0xe3, 0xf1, 0x82, 0x60, 0x83, 0x01, 0xb7, 0xbb, 0x38, 0xec, 0x06, 0x67, 0x0a, 0xf1, 0x85, 0x5d, 0xb8, 0x0d, 0x31, 0x3c, 0x18, 0x99, 0xbd, 0x6b, 0x30, 0x6e, 0x77, 0x37, 0x34, 0x12, 0x3c, 0x38, 0x9a, 0x75, 0x0f, 0xbb, 0xa1, 0x91, 0xe0, 0x82, 0x60, 0x41, 0x32, 0x10, 0xab, 0xc3, 0x0a, 0xed, 0xa1, 0x05, 0xd8, 0xf0, 0x1b, 0x1c, 0x8b, 0xd1, 0x07, 0xc1, 0x06, 0x47, 0x71, 0xf4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x0f, 0x4e, 0xf6, 0xeb, 0xc7, 0xa1, 0x43, 0xea, 0xe0, 0x78, 0x3c, 0x08, 0x36, 0x18, 0x70, 0xbb, 0x8b, 0xc3, 0x6e, 0x70, 0xa6, 0x10, 0x5f, 0xd8, 0x0d, 0x8e, 0xc7, 0xeb, 0x1b, 0x9c, 0xad, 0xd7, 0x87, 0xdd, 0xd0, 0x48, 0x70, 0x41, 0xb0, 0x41, 0x71, 0x43, 0x70, 0x68, 0x01, 0x36, 0xfc, 0x06, 0xc7, 0x62, 0xf4, 0x41, 0xb0, 0xc1, 0x51, 0x1c, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x83, 0x03, 0x20, 0xfb, 0x71, 0xe8, 0x90, 0x3a, 0x38, 0x1e, 0x2f, 0x08, 0x36, 0x18, 0x70, 0xbb, 0x8b, 0xc3, 0x6e, 0x30, 0x56, 0x77, 0x37, 0x34, 0x12, 0x1c, 0x76, 0x83, 0x11, 0xe0, 0xbb, 0x61, 0x5c, 0x06, 0xd9, 0x06, 0x67, 0x0e, 0xdd, 0x43, 0x0c, 0x8f, 0xc7, 0x0b, 0x82, 0x0d, 0x0e, 0x51, 0xe7, 0x8b, 0xc3, 0x6e, 0x70, 0x34, 0x3b, 0xdf, 0x60, 0xc0, 0xed, 0x0e, 0xbb, 0xc1, 0xe1, 0x68, 0x7a, 0x61, 0x37, 0x38, 0xd4, 0x9e, 0x1f, 0x9c, 0xe7, 0xcf, 0x87, 0xdd, 0xe0, 0x50, 0x7b, 0xbe, 0x06, 0xe3, 0x76, 0x77, 0x83, 0x53, 0x0f, 0xfa, 0xc1, 0xd1, 0xac, 0x7b, 0xd8, 0x0d, 0xce, 0x21, 0xe8, 0x0b, 0xbb, 0xc1, 0xf9, 0xfc, 0x7c, 0x83, 0x01, 0xb7, 0x7b, 0x70, 0x86, 0x43, 0x1f, 0x76, 0x83, 0xf3, 0xf9, 0xf9, 0x1a, 0x8c, 0x06, 0xdf, 0x83, 0x43, 0x1e, 0xfa, 0xb0, 0x1b, 0x1c, 0xf2, 0xd0, 0x17, 0x04, 0x1b, 0x8c, 0x4a, 0xd2, 0x83, 0x33, 0x29, 0xfa, 0xf0, 0x1b, 0x1c, 0x8b, 0xd1, 0x07, 0xc1, 0x06, 0x47, 0x71, 0xf4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x0f, 0x0e, 0xbd, 0xed, 0xc7, 0xa1, 0xe3, 0xf1, 0x0a, 0x82, 0x0d, 0x06, 0xdc, 0xee, 0xe2, 0xb0, 0x1b, 0x9c, 0x43, 0xd2, 0x37, 0x18, 0x70, 0xbb, 0xc3, 0x6e, 0x70, 0x16, 0x4a, 0xdf, 0xe0, 0x94, 0x95, 0x3e, 0xec, 0x06, 0xc7, 0xe3, 0xf5, 0x35, 0x18, 0xf8, 0xc6, 0x1b, 0x1a, 0x09, 0x1e, 0x12, 0x53, 0x1b, 0x0c, 0x7c, 0xe3, 0x0d, 0x8d, 0x04, 0x07, 0xc1, 0x82, 0x64, 0x20, 0xdd, 0x75, 0x58, 0xa1, 0x3d, 0xb4, 0x00, 0x3b, 0x1e, 0x0f, 0x82, 0x0d, 0x0e, 0x51, 0xe7, 0x8b, 0xc3, 0x6e, 0x70, 0x34, 0x3b, 0xdf, 0x10, 0xc3, 0x0d, 0x31, 0x1c, 0x76, 0x43, 0x3a, 0x73, 0xc3, 0xd1, 0x3e, 0xec, 0x06, 0x87, 0xa3, 0xe9, 0x85, 0xdd, 0x60, 0x68, 0x76, 0x1d, 0xd6, 0x37, 0x87, 0xdd, 0xe0, 0x50, 0x7b, 0xbe, 0x41, 0x50, 0x7a, 0x0f, 0xbb, 0xc1, 0x09, 0x0a, 0x7d, 0x61, 0x17, 0x76, 0x83, 0x73, 0x08, 0xfa, 0x06, 0x07, 0x30, 0xf4, 0xc3, 0xd1, 0xbe, 0xe1, 0x68, 0x1f, 0x76, 0x83, 0x73, 0x08, 0xfa, 0x86, 0x4e, 0x6a, 0xc3, 0x6e, 0x68, 0xa8, 0x73, 0x58, 0xdf, 0x1c, 0x76, 0x61, 0x37, 0x38, 0xe4, 0xa1, 0x1f, 0xd6, 0x37, 0x37, 0x74, 0x52, 0x1b, 0x76, 0x43, 0x43, 0x9d, 0x05, 0xc1, 0x82, 0x64, 0x20, 0xdf, 0x75, 0x58, 0xa1, 0x3d, 0x38, 0x93, 0xa2, 0x0f, 0x82, 0x0d, 0x4e, 0x56, 0xef, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xcd, 0x92, 0x0e, 0x0e, 0xe2, 0xdd, 0xc7, 0xa1, 0xe3, 0xf1, 0x82, 0x60, 0x83, 0x01, 0xb7, 0xbb, 0x38, 0x08, 0x16, 0x24, 0x03, 0xe5, 0xea, 0x90, 0x5c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x71, 0x70, 0x73, 0x8e, 0xc7, 0x87, 0x54, 0xcd, 0x71, 0xe8, 0x78, 0xbc, 0x20, 0xd8, 0x60, 0xc0, 0xed, 0x2e, 0x0e, 0xbb, 0xc1, 0x99, 0x42, 0x7c, 0x0d, 0xc6, 0xed, 0xee, 0x86, 0x18, 0x6e, 0xe8, 0xa4, 0x76, 0x30, 0x32, 0x7b, 0x87, 0xdd, 0xe0, 0x2c, 0x94, 0xbe, 0xc1, 0xd1, 0x99, 0xfb, 0x60, 0xc0, 0xed, 0x1e, 0x8f, 0x07, 0xc1, 0x06, 0x87, 0xa8, 0xf3, 0xc5, 0x61, 0x37, 0x38, 0x9a, 0x9d, 0x6f, 0x30, 0xe0, 0x76, 0x87, 0x5d, 0xd8, 0x0d, 0x0e, 0x47, 0xd3, 0x1b, 0x62, 0x38, 0xec, 0x06, 0x87, 0xda, 0xf3, 0x43, 0x3a, 0x77, 0x61, 0x17, 0x76, 0x83, 0xc3, 0xd1, 0xf4, 0x06, 0xa7, 0x33, 0xf8, 0xc3, 0xd1, 0xbe, 0xb0, 0x1b, 0xd2, 0x99, 0x1b, 0xa2, 0x79, 0x30, 0xe0, 0x76, 0x87, 0xdd, 0xe0, 0x70, 0x34, 0x7d, 0x48, 0x6c, 0x0e, 0xbb, 0xc1, 0x09, 0x0a, 0x7d, 0x61, 0x37, 0x38, 0xc4, 0xbb, 0xaf, 0xc1, 0xb8, 0xdd, 0x5d, 0xd8, 0x85, 0xdb, 0x20, 0xe4, 0xb3, 0x0f, 0x06, 0xbe, 0xf1, 0xc2, 0x6e, 0x68, 0xa8, 0xb3, 0xb0, 0x1b, 0x3a, 0xa9, 0x1d, 0xd2, 0xb9, 0x87, 0xa3, 0x7d, 0xd8, 0x0d, 0x0d, 0x75, 0x36, 0xc4, 0xf0, 0xe0, 0x5c, 0x0f, 0x7f, 0x70, 0x34, 0xeb, 0x1e, 0x76, 0xe1, 0x36, 0xc4, 0xf0, 0xe0, 0x4c, 0x82, 0x7e, 0x70, 0x40, 0x00, 0x1f, 0x04, 0x0b, 0x82, 0x0d, 0x06, 0xdc, 0xee, 0xe2, 0xb0, 0x1b, 0x9c, 0x29, 0xc4, 0x17, 0x76, 0xe1, 0x36, 0x18, 0x99, 0xbd, 0x87, 0x18, 0xae, 0xc1, 0xb8, 0xdd, 0x5d, 0xd8, 0x85, 0xdb, 0xa0, 0xa4, 0x69, 0x38, 0x18, 0xf8, 0xc6, 0x87, 0xf5, 0xcd, 0x83, 0xb3, 0x9c, 0xf5, 0x21, 0x75, 0x70, 0x48, 0x1d, 0x1c, 0x8f, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x76, 0x83, 0x43, 0x1e, 0xfa, 0xc2, 0x6e, 0x68, 0xa8, 0xb3, 0x20, 0x58, 0x90, 0x0c, 0xce, 0x1d, 0x56, 0x68, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x1c, 0xc4, 0xbb, 0x37, 0x34, 0x4b, 0x3a, 0x18, 0xf8, 0x21, 0xc7, 0xa1, 0x41, 0xb0, 0xc1, 0x51, 0x1c, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x83, 0xf3, 0x73, 0xfc, 0x71, 0x68, 0xd8, 0x0d, 0x0d, 0x75, 0x16, 0x04, 0x0b, 0x92, 0x81, 0xf9, 0x3b, 0xac, 0xd0, 0x1e, 0x1c, 0xc1, 0xe3, 0x07, 0xc1, 0x06, 0x67, 0x1e, 0xf9, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x66, 0x49, 0x1b, 0x1c, 0xc4, 0xbb, 0x0f, 0x06, 0x7e, 0xc8, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x5e, 0x10, 0x6c, 0x70, 0x88, 0x3a, 0x5f, 0x1c, 0x76, 0x83, 0xa3, 0xd9, 0xf9, 0x06, 0x03, 0x6e, 0x77, 0xd8, 0x0d, 0x8e, 0x57, 0xf0, 0x1b, 0x1c, 0xf0, 0xe0, 0x87, 0xdd, 0xe0, 0x04, 0x85, 0xbe, 0xb0, 0x1b, 0x1c, 0xe2, 0xdd, 0x37, 0x38, 0x3d, 0xc3, 0x0f, 0x82, 0x0d, 0x0e, 0x71, 0xeb, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x1f, 0x1c, 0x4e, 0xe2, 0x8f, 0x43, 0x83, 0x60, 0x83, 0x33, 0x51, 0xfc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0xc3, 0x6e, 0x70, 0xc8, 0x43, 0x5f, 0xd8, 0x0d, 0x0d, 0x75, 0x16, 0x04, 0x1b, 0x1c, 0xa7, 0xe3, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x1c, 0xc4, 0xbb, 0x37, 0x34, 0x4b, 0x3a, 0x18, 0x1b, 0xae, 0xc7, 0xa1, 0xe1, 0x37, 0x38, 0x16, 0xa3, 0x0f, 0x82, 0x0d, 0x8e, 0xe2, 0xe8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x1f, 0x1c, 0x72, 0xe6, 0x8f, 0x43, 0xc3, 0x6e, 0x68, 0xa8, 0xb3, 0x20, 0xd8, 0xe0, 0xcc, 0x23, 0x7f, 0x70, 0x24, 0x9a, 0x1f, 0x04, 0x1b, 0x9c, 0x79, 0xe4, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x9a, 0x25, 0x6d, 0x70, 0x10, 0xef, 0x3e, 0x18, 0x1b, 0xae, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0x9c, 0x02, 0x7c, 0x07, 0xc9, 0x40, 0xd1, 0x3b, 0x1e, 0x1f, 0x1a, 0xb5, 0x0c, 0x82, 0x05, 0xc9, 0xc0, 0x59, 0x75, 0x58, 0xa1, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x83, 0x71, 0xbb, 0xbb, 0x41, 0x48, 0x81, 0x1f, 0x84, 0x9b, 0xfb, 0x71, 0xe8, 0x78, 0xbc, 0x20, 0xd8, 0x60, 0xc0, 0xed, 0x2e, 0x0e, 0x82, 0x0d, 0x2d, 0xf4, 0x86, 0xdd, 0xe0, 0xd0, 0xcf, 0xbd, 0x86, 0x18, 0x0e, 0x82, 0x05, 0xc1, 0x82, 0x64, 0x10, 0x1c, 0x0c, 0x43, 0x9f, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0xa4, 0xd3, 0xc1, 0x78, 0xd7, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x70, 0x1e, 0xfa, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x1e, 0x3a, 0xa9, 0x1d, 0x87, 0x8e, 0x43, 0x07, 0x23, 0xb3, 0xf7, 0x38, 0x34, 0x08, 0x16, 0x7e, 0x83, 0x13, 0xef, 0xf3, 0x20, 0x19, 0x28, 0x7b, 0xc7, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x1e, 0x42, 0x87, 0xd4, 0xc1, 0x71, 0xe8, 0x10, 0xc3, 0xe3, 0xf1, 0x82, 0x60, 0x83, 0x43, 0xd4, 0xf9, 0xe2, 0xb0, 0x1b, 0x1c, 0xcd, 0xce, 0x37, 0x18, 0x70, 0xbb, 0xc3, 0x6e, 0x70, 0x38, 0x9a, 0xde, 0xe0, 0x20, 0x7b, 0x3e, 0xec, 0x06, 0x87, 0xda, 0xf3, 0x0d, 0xce, 0x1e, 0xe8, 0xc3, 0x6e, 0x70, 0x82, 0x42, 0xdf, 0xe0, 0x0c, 0x87, 0xbe, 0xc1, 0xb8, 0xdd, 0xdd, 0xe0, 0x90, 0x87, 0xbe, 0x20, 0xd8, 0xe0, 0xac, 0x07, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0x18, 0x39, 0x7d, 0x10, 0xf6, 0xd4, 0xc7, 0xa1, 0x41, 0xb0, 0x41, 0x39, 0x71, 0x35, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0x82, 0x38, 0x1f, 0x94, 0xd8, 0x83, 0xc7, 0xa1, 0xe3, 0xf1, 0x82, 0x60, 0x83, 0x01, 0xb7, 0xbb, 0x38, 0xec, 0x06, 0xe7, 0x90, 0xf4, 0x0d, 0x06, 0xdc, 0xee, 0xb0, 0x1b, 0x9c, 0x85, 0xd2, 0x17, 0x76, 0xc3, 0xb8, 0x6c, 0x48, 0x1d, 0x1c, 0x0c, 0xb8, 0xdd, 0x61, 0x37, 0x38, 0x1e, 0xaf, 0x6f, 0x70, 0xb6, 0x5e, 0x1f, 0x76, 0x43, 0x23, 0xc1, 0x05, 0xc1, 0x82, 0x64, 0xa0, 0xde, 0x1d, 0x56, 0x68, 0x0f, 0x2d, 0xc0, 0x0e, 0x06, 0xdc, 0xee, 0xf1, 0x78, 0x10, 0x6c, 0x70, 0x88, 0x3a, 0x5f, 0x3c, 0x38, 0x93, 0xac, 0x1f, 0x8f, 0x17, 0x04, 0x1b, 0x1c, 0xa2, 0xce, 0x17, 0x07, 0xc1, 0x06, 0x85, 0x75, 0xc8, 0x41, 0xb9, 0x44, 0x73, 0x3c, 0x5e, 0x10, 0x6c, 0x70, 0x88, 0x3a, 0x5f, 0x1c, 0x76, 0x83, 0xa3, 0xd9, 0xf9, 0x86, 0x18, 0x6e, 0x88, 0xe1, 0xb0, 0x1b, 0xd2, 0x99, 0x1b, 0x62, 0x38, 0xec, 0x06, 0xc7, 0x2b, 0xf8, 0x0d, 0x47, 0xfb, 0xb0, 0x1b, 0x9c, 0xa0, 0xd0, 0x17, 0x76, 0x83, 0x43, 0xbc, 0xfb, 0x21, 0x9d, 0x3b, 0xec, 0xc2, 0x2e, 0xdc, 0x12, 0x6e, 0x1e, 0x9a, 0x70, 0x6d, 0x88, 0xe1, 0xb0, 0x1b, 0x1c, 0x64, 0xde, 0x0f, 0xe9, 0xdc, 0x0d, 0x47, 0xfb, 0x20, 0x58, 0x90, 0x0c, 0x8c, 0xdf, 0x61, 0x85, 0xf6, 0xe0, 0x4c, 0x8a, 0x7e, 0x3c, 0x1e, 0x04, 0x1b, 0x1c, 0xa2, 0xce, 0x17, 0x07, 0xc1, 0x06, 0x87, 0x54, 0xf5, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xac, 0xdd, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x47, 0x71, 0xf4, 0x43, 0x07, 0x8d, 0xe3, 0xd0, 0xf1, 0xf8, 0x78, 0xbc, 0x82, 0x60, 0x83, 0x01, 0xb7, 0xbb, 0x38, 0x08, 0x16, 0x7e, 0x41, 0x32, 0x90, 0x56, 0x39, 0x24, 0x97, 0x0e, 0xce, 0x4f, 0xb4, 0x87, 0x46, 0x2d, 0xc7, 0xe3, 0x85, 0x5f, 0x10, 0x6c, 0x70, 0xe6, 0x9d, 0x5d, 0x5c, 0xf8, 0x05, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0x5b, 0x43, 0x1e, 0x7b, 0x71, 0x43, 0xee, 0x7b, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x71, 0x1c, 0x5c, 0x1e, 0x9c, 0x3c, 0x18, 0x65, 0x52, 0xc7, 0xb7, 0xe3, 0xf1, 0xc1, 0x11, 0x81, 0xf6, 0x78, 0x7c, 0xc8, 0xfa, 0xac, 0xc1, 0x89, 0x86, 0x76, 0x0d, 0x0e, 0x65, 0xb4, 0x0b, 0xbf, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x64, 0x1b, 0x1c, 0x2b, 0xf0, 0x0f, 0xce, 0xac, 0xb4, 0xc7, 0xe3, 0x43, 0x1a, 0x78, 0x83, 0x93, 0x35, 0xed, 0x06, 0xa7, 0x82, 0xda, 0x85, 0x5f, 0x10, 0x6c, 0x30, 0xf2, 0x1f, 0x16, 0x07, 0xd9, 0x06, 0xc7, 0x0a, 0xfc, 0x83, 0x03, 0x54, 0xed, 0xf1, 0xf8, 0xe0, 0x0c, 0x59, 0xbb, 0xf0, 0x0b, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb6, 0xc1, 0xb1, 0x02, 0xff, 0xe0, 0x88, 0x5c, 0x7b, 0x3c, 0x3e, 0x6c, 0x4e, 0x6d, 0x70, 0x9a, 0xaf, 0x1d, 0x7e, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0xc8, 0x36, 0x38, 0x56, 0xe0, 0x1f, 0x9c, 0x79, 0x6c, 0x8f, 0xc7, 0x87, 0x7d, 0xe5, 0x85, 0x5f, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0xb2, 0x0d, 0x8e, 0x15, 0xf8, 0x07, 0x07, 0x41, 0xdb, 0xe3, 0xf1, 0x21, 0x1f, 0xb8, 0x06, 0x27, 0x53, 0xdb, 0x41, 0xb0, 0xc1, 0x09, 0xdb, 0x76, 0x10, 0x2d, 0xec, 0x0a, 0xbf, 0xf1, 0x7c, 0x0c, 0xd9, 0xc2, 0x6f, 0x3c, 0x1f, 0x43, 0xe9, 0xf0, 0x1b, 0xcf, 0xc7, 0xe0, 0xfc, 0x3f, 0xa4, 0x6a, 0x8e, 0x43, 0x1b, 0x9c, 0x36, 0x6e, 0x37, 0x38, 0x29, 0xdd, 0x2e, 0xfc, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xd9, 0x06, 0xc7, 0x0a, 0xfc, 0x83, 0xa3, 0xe4, 0xed, 0xf1, 0xf8, 0xa0, 0x90, 0xc2, 0x1a, 0x7e, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0xc8, 0x36, 0x38, 0x56, 0xe0, 0x1f, 0x1c, 0xb1, 0x6f, 0x8f, 0xc7, 0x87, 0x5d, 0xef, 0x85, 0x5f, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0xb2, 0x0d, 0x8e, 0x15, 0xf8, 0x07, 0x67, 0x0e, 0xdc, 0xe3, 0xf1, 0x61, 0xc9, 0x7d, 0x0d, 0xce, 0x45, 0xb8, 0xc3, 0x2f, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xd9, 0x06, 0xc7, 0x0a, 0xfc, 0x83, 0xf3, 0x23, 0xee, 0xf1, 0xf8, 0xe0, 0x34, 0x8b, 0x3b, 0xfc, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x90, 0x6d, 0x70, 0xac, 0xc0, 0x3f, 0x38, 0xaa, 0xe3, 0x1e, 0x8f, 0x0f, 0x3d, 0x3b, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xe0, 0xe5, 0xc8, 0x43, 0x6a, 0xe9, 0x78, 0xbc, 0xf0, 0x0b, 0x82, 0x0d, 0xce, 0xbc, 0xb3, 0x8b, 0x0b, 0xbf, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x64, 0x6b, 0xc8, 0x63, 0x2f, 0x6e, 0xc8, 0x7d, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x8e, 0x83, 0xcb, 0x83, 0xcf, 0x07, 0xa3, 0x4c, 0xea, 0xf8, 0x76, 0x3c, 0x3e, 0x38, 0x22, 0xd0, 0x1e, 0x8f, 0x0f, 0x59, 0x9f, 0x35, 0x38, 0xd1, 0xd0, 0xae, 0xc1, 0xa1, 0x8c, 0x76, 0xe1, 0x17, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x6c, 0x83, 0xb3, 0xb7, 0xfe, 0xc1, 0x99, 0x95, 0xf6, 0x78, 0x7c, 0x48, 0x03, 0x6f, 0x70, 0xb2, 0xa6, 0xdd, 0xe0, 0x54, 0x50, 0xbb, 0xf0, 0x0b, 0x82, 0x0d, 0x46, 0xfe, 0xc3, 0xe2, 0x20, 0xdb, 0xe0, 0xec, 0xad, 0x7f, 0x70, 0x80, 0xaa, 0x3d, 0x1e, 0x1f, 0x9c, 0x21, 0x6b, 0x17, 0x7e, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0xc8, 0x36, 0x38, 0x7b, 0xeb, 0x1f, 0x1c, 0x91, 0x6b, 0x8f, 0xc7, 0x87, 0xcd, 0xa9, 0x0d, 0x4e, 0xf3, 0xb5, 0xc3, 0x2f, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xd9, 0x06, 0x67, 0x6f, 0xfd, 0x83, 0x33, 0x8f, 0xed, 0xf1, 0xf8, 0xb0, 0xaf, 0xbc, 0xf0, 0x0b, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb6, 0xc1, 0xd9, 0x5b, 0xff, 0xe0, 0x20, 0x68, 0x7b, 0x3c, 0x3e, 0xe4, 0x03, 0xd7, 0xe0, 0x64, 0x6a, 0x3b, 0x08, 0x36, 0x38, 0x61, 0xdb, 0x0e, 0xa2, 0x85, 0x5d, 0xe1, 0x37, 0x9e, 0x1f, 0x14, 0x00, 0x50, 0x0b, 0xbf, 0xf1, 0x7c, 0x0c, 0xbb, 0xe1, 0x37, 0x9e, 0x8f, 0x41, 0xf8, 0x0f, 0xa9, 0x9a, 0xe3, 0xd0, 0x06, 0xa7, 0x8d, 0xdb, 0x0d, 0x4e, 0x4a, 0xb7, 0x0b, 0xbf, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb6, 0xc1, 0xd9, 0x5b, 0xff, 0xe0, 0x28, 0x79, 0x7b, 0x3c, 0x3e, 0x28, 0xa4, 0xb0, 0x86, 0x5f, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0xb2, 0x0d, 0xce, 0xde, 0xfa, 0x07, 0x47, 0xec, 0xdb, 0xe3, 0xf1, 0x61, 0xd7, 0x7b, 0xe1, 0x17, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x6c, 0x83, 0xb3, 0xb7, 0xfe, 0xc1, 0x99, 0x03, 0xf7, 0x78, 0x7c, 0x58, 0x72, 0x5f, 0x83, 0x73, 0x11, 0xee, 0xf0, 0x0b, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb6, 0xc1, 0xd9, 0x5b, 0xff, 0xe0, 0xfc, 0x88, 0x7b, 0x3c, 0x3e, 0x38, 0xcd, 0xe2, 0x0e, 0xbf, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x64, 0x1b, 0x9c, 0xbd, 0xf5, 0x0f, 0x8e, 0xea, 0xb8, 0xc7, 0xe3, 0x43, 0xcf, 0x8e, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0x1c, 0x78, 0xb9, 0xf9, 0x90, 0x5a, 0x3a, 0x1e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xbf, 0xe1, 0x49, 0x81, 0x41, 0x32, 0xb0, 0x7e, 0x75, 0x3c, 0x3e, 0x34, 0x6a, 0x39, 0x1e, 0x2f, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xfc, 0x82, 0x64, 0xe0, 0x54, 0x39, 0x24, 0x97, 0x0e, 0x0e, 0x9e, 0xfd, 0x87, 0x46, 0x2d, 0xc7, 0xe3, 0x15, 0x04, 0x1b, 0x0c, 0xb8, 0xdd, 0xc5, 0x41, 0xb0, 0xf0, 0x1b, 0x9c, 0x80, 0x72, 0x0f, 0xce, 0x4f, 0xb4, 0x87, 0x46, 0x2d, 0xc7, 0xe3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0xe1, 0x37, 0x38, 0x48, 0xdf, 0x1f, 0x1c, 0x3c, 0xfb, 0x0f, 0x8d, 0x5a, 0x8e, 0xc7, 0xc3, 0x2f, 0x08, 0x36, 0x38, 0xf3, 0xce, 0x2e, 0x2e, 0xfc, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x90, 0xad, 0x21, 0x8f, 0xbd, 0xb8, 0x21, 0xf7, 0x3d, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x38, 0x0e, 0x2e, 0x0f, 0x8e, 0x1e, 0x8c, 0x32, 0xa9, 0xe3, 0xdb, 0xf1, 0xf8, 0xe0, 0x88, 0x40, 0x7b, 0x3c, 0x3e, 0x64, 0x7d, 0xd6, 0xe0, 0x44, 0x43, 0xbb, 0x06, 0x87, 0x32, 0xda, 0x85, 0x5f, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0xb2, 0x0d, 0x4e, 0x61, 0xfe, 0x07, 0x67, 0x56, 0xda, 0xe3, 0xf1, 0x21, 0x0d, 0xbc, 0xc1, 0xc9, 0x9a, 0x76, 0x83, 0x53, 0x41, 0xed, 0xc2, 0x2f, 0x08, 0x36, 0x18, 0xf9, 0x0f, 0x8b, 0x83, 0x6c, 0x83, 0x53, 0x98, 0xff, 0xc1, 0x01, 0xaa, 0xf6, 0x78, 0x7c, 0x70, 0x86, 0xac, 0x5d, 0xf8, 0x05, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0xdb, 0xe0, 0x14, 0xe6, 0x7f, 0x70, 0x44, 0xae, 0x3d, 0x1e, 0x1f, 0x36, 0xa7, 0x16, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x7e, 0x41, 0x32, 0x90, 0x56, 0x39, 0x64, 0x2b, 0x0e, 0x4e, 0x61, 0xb8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0xe0, 0xd4, 0x21, 0xb9, 0x74, 0x68, 0xd4, 0x72, 0x1c, 0x3a, 0x1e, 0x6f, 0x70, 0x9a, 0xaf, 0x1d, 0x7e, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0xc8, 0x36, 0x38, 0x85, 0xf9, 0x1f, 0x9c, 0x79, 0x6c, 0x8f, 0xc7, 0x87, 0x7d, 0xe5, 0x85, 0x5f, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0xb2, 0x0d, 0x4e, 0x61, 0xfe, 0x07, 0x07, 0x41, 0xdb, 0xe3, 0xf1, 0x21, 0x1f, 0xb8, 0x06, 0x27, 0x53, 0xdb, 0x41, 0xb0, 0xc1, 0x09, 0xdb, 0x76, 0x10, 0x2d, 0xec, 0x1a, 0x94, 0x68, 0x38, 0x1b, 0x9c, 0x6b, 0x8a, 0x87, 0xdf, 0x78, 0x3e, 0x86, 0xf9, 0x21, 0x55, 0x73, 0x1c, 0xda, 0xe0, 0xb4, 0x71, 0xbb, 0xc1, 0x49, 0xe9, 0x76, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0x32, 0x38, 0x77, 0x48, 0x2e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x7e, 0x83, 0x83, 0xd7, 0xff, 0xc1, 0xb9, 0x8f, 0xf6, 0xd0, 0xa8, 0xe5, 0x38, 0x74, 0x3c, 0x5e, 0xf8, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xb2, 0x0d, 0x4e, 0x61, 0xfe, 0x07, 0x47, 0xc9, 0xdb, 0xe3, 0xf1, 0x41, 0x21, 0x85, 0x35, 0xfc, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x90, 0x6d, 0x70, 0x0a, 0xf3, 0x3f, 0x38, 0x62, 0xdf, 0x1e, 0x8f, 0x0f, 0xbb, 0xde, 0x0b, 0xbf, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x64, 0x1b, 0x9c, 0xc2, 0xfc, 0x0f, 0xce, 0x1c, 0xb8, 0xc7, 0xe3, 0xc3, 0x92, 0xfb, 0x1a, 0x9c, 0x8b, 0x70, 0x87, 0x5f, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0xb2, 0x0d, 0x4e, 0x61, 0xfe, 0x07, 0xe7, 0x47, 0xdc, 0xe3, 0xf1, 0xc1, 0x69, 0x16, 0x77, 0xf8, 0x05, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0xdb, 0xe0, 0x14, 0xe6, 0x7f, 0x70, 0x54, 0xc7, 0x3d, 0x1e, 0x1f, 0x7a, 0x76, 0x1c, 0x8f, 0x07, 0xd9, 0x1a, 0xd2, 0x40, 0xe3, 0xc0, 0xcb, 0xa1, 0x87, 0xd4, 0xd2, 0xf1, 0x78, 0x41, 0xb0, 0xc1, 0x80, 0xdb, 0x5d, 0x1c, 0x04, 0x0b, 0xbf, 0xc1, 0xc9, 0xb8, 0xff, 0xe0, 0xfc, 0x44, 0x7b, 0x68, 0xd4, 0x72, 0x3c, 0x1e, 0x04, 0x8b, 0x1b, 0x04, 0xc0, 0x7d, 0x78, 0xb8, 0xb8, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x04, 0x0b, 0x92, 0x81, 0xfd, 0xab, 0x43, 0x72, 0x69, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xf0, 0x0b, 0x92, 0x81, 0xeb, 0xeb, 0x90, 0x5c, 0x3a, 0x28, 0x19, 0x9a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x70, 0x54, 0xfc, 0x3f, 0xa4, 0xe1, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x38, 0x2a, 0xfe, 0x1f, 0x3a, 0x68, 0x1c, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0x15, 0x04, 0x1b, 0x0c, 0xb8, 0xdd, 0xc5, 0x41, 0xb0, 0x41, 0xda, 0x3e, 0xc0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe1, 0x37, 0x48, 0x7b, 0x08, 0x38, 0x38, 0x3f, 0xd1, 0x1e, 0x1a, 0xb5, 0x1c, 0x87, 0x8e, 0xc7, 0x2b, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0xac, 0x20, 0xd8, 0x20, 0x40, 0xf9, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xfc, 0x90, 0x85, 0xdf, 0x78, 0xbe, 0x21, 0x86, 0x13, 0x84, 0xfc, 0x90, 0xaa, 0x39, 0x0e, 0x0d, 0x82, 0x0d, 0x02, 0x94, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc0, 0x0f, 0x59, 0xf8, 0x8d, 0xe7, 0x1b, 0xa4, 0x0c, 0x06, 0x1c, 0x8c, 0x09, 0xab, 0x43, 0xaa, 0xe6, 0x38, 0x34, 0x08, 0x16, 0x04, 0x1b, 0x14, 0xf4, 0x1f, 0x07, 0xc3, 0x2c, 0x7c, 0xd8, 0x0d, 0xca, 0x50, 0xa9, 0x85, 0xdd, 0xd0, 0x38, 0x72, 0x0d, 0xc6, 0xed, 0xee, 0xc6, 0xa1, 0x43, 0x62, 0x6a, 0x83, 0x71, 0xbb, 0xbb, 0x71, 0x68, 0x41, 0x32, 0xf0, 0xfb, 0xd5, 0x21, 0x5b, 0x71, 0x88, 0xe6, 0xb0, 0x0b, 0xb7, 0x61, 0x5c, 0x06, 0xc1, 0x82, 0x64, 0xa0, 0x2c, 0x1d, 0x8c, 0x77, 0x9d, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x03, 0x3f, 0x64, 0x83, 0x62, 0x47, 0xe2, 0x60, 0x6c, 0xb8, 0x1e, 0x87, 0x16, 0x76, 0x43, 0xe3, 0xc8, 0x35, 0x18, 0x0d, 0xbe, 0xc7, 0xa1, 0x83, 0x01, 0xb7, 0x3b, 0x08, 0x16, 0x04, 0x1b, 0x9c, 0xdb, 0x7d, 0x07, 0xc1, 0xc6, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0x24, 0x5d, 0x7d, 0xe8, 0xa0, 0x31, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x7e, 0x90, 0xe0, 0x1c, 0x30, 0xfc, 0xc6, 0xf3, 0x83, 0xb1, 0xe1, 0x7a, 0x1c, 0x3a, 0x0e, 0x0d, 0x82, 0x05, 0xc1, 0x06, 0x43, 0x3c, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0xfe, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x1c, 0x98, 0x77, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x13, 0xa4, 0xfc, 0x8f, 0x43, 0xc7, 0xa1, 0x0d, 0xc6, 0xed, 0xee, 0x86, 0x54, 0xcd, 0xc1, 0x50, 0x11, 0x38, 0x1e, 0x2f, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0x82, 0x64, 0x20, 0x7f, 0x77, 0x10, 0xe4, 0xfc, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x7e, 0x83, 0xb4, 0x87, 0x80, 0x41, 0x32, 0x30, 0x54, 0xc7, 0xe3, 0x83, 0x24, 0x8d, 0x80, 0x83, 0xb1, 0xe1, 0x7a, 0x1c, 0x3a, 0x1e, 0x2f, 0x08, 0x36, 0xc4, 0x70, 0x71, 0xb8, 0x0d, 0x31, 0x1c, 0x04, 0x1b, 0x04, 0x28, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x81, 0x1f, 0xb2, 0xf0, 0x1b, 0xcf, 0x17, 0x04, 0x1b, 0x04, 0xae, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x09, 0x46, 0xfe, 0xa0, 0x84, 0x91, 0x38, 0x0e, 0x1d, 0x8e, 0xf6, 0x43, 0xaa, 0xe6, 0x38, 0x74, 0x3c, 0x5e, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0xd8, 0x20, 0x21, 0x06, 0xe0, 0xe0, 0xf4, 0xb7, 0x7e, 0x3c, 0x5e, 0x10, 0x6c, 0x30, 0xf2, 0x1f, 0x16, 0x07, 0xc1, 0x06, 0x69, 0xfb, 0x00, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x85, 0xdf, 0x20, 0xed, 0x21, 0xe0, 0xe0, 0xdc, 0x47, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0x0d, 0x24, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x8e, 0x8a, 0xff, 0x87, 0xa6, 0x40, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x1c, 0x15, 0xff, 0x0f, 0x2d, 0xc0, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x6c, 0x90, 0xb6, 0x0f, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0xf8, 0x0d, 0xd2, 0x1e, 0x02, 0x0e, 0x0e, 0x1e, 0xb5, 0x07, 0x49, 0x1a, 0x01, 0xc7, 0xa1, 0xe3, 0xf1, 0x0a, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xbf, 0x41, 0xda, 0x43, 0xc0, 0x20, 0x19, 0x48, 0x5e, 0x1d, 0x8f, 0x0f, 0x4e, 0x74, 0xff, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0xd8, 0x20, 0xc5, 0x50, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc2, 0x6f, 0x90, 0xf6, 0x10, 0x30, 0x48, 0x06, 0xb2, 0x57, 0xc7, 0xe3, 0x83, 0x24, 0x8d, 0x80, 0x83, 0xb1, 0xe1, 0x7a, 0x1c, 0x3a, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0xa0, 0x44, 0x0d, 0x39, 0x38, 0x41, 0xf8, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0xa9, 0x76, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xa1, 0xf1, 0xfc, 0xc1, 0x41, 0xbc, 0xfb, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x29, 0xa1, 0x77, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xe1, 0xf2, 0x71, 0xe8, 0x38, 0x34, 0x08, 0x36, 0x18, 0x70, 0xbb, 0x8b, 0xc3, 0x6e, 0x70, 0x16, 0x4a, 0x5f, 0x10, 0x2c, 0x08, 0x36, 0x18, 0x43, 0x0b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x92, 0xfa, 0x02, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0x65, 0xe9, 0x20, 0xc8, 0xf9, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xfc, 0x90, 0x0d, 0x4a, 0x18, 0x89, 0x83, 0xb1, 0xe1, 0x7a, 0x1c, 0x3a, 0x0e, 0x0d, 0xbb, 0x21, 0x5f, 0xbb, 0x71, 0x68, 0x10, 0x6c, 0x30, 0xb2, 0x5e, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x52, 0x07, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0xa1, 0x3b, 0xac, 0xd0, 0x1e, 0x87, 0x86, 0xdd, 0xe0, 0x1c, 0x92, 0xbe, 0x20, 0xd8, 0x60, 0x0c, 0x2d, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x86, 0x18, 0x0e, 0x82, 0x0d, 0x86, 0x95, 0xe2, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0x20, 0x01, 0x5b, 0xe0, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x22, 0x05, 0xc1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x81, 0x1f, 0xb2, 0xf0, 0x1b, 0xcf, 0x87, 0x39, 0x18, 0x13, 0x56, 0x07, 0x63, 0xc3, 0xf5, 0x38, 0x74, 0x1c, 0x1a, 0x76, 0x83, 0xe3, 0xf1, 0xfa, 0xc2, 0x6e, 0x68, 0x24, 0xb8, 0x21, 0x86, 0x83, 0x64, 0x20, 0x74, 0x87, 0xe4, 0xd2, 0x20, 0x58, 0x10, 0x6c, 0x50, 0xa4, 0x3e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xf8, 0x21, 0x87, 0x66, 0x49, 0xc7, 0xa1, 0x61, 0x17, 0x6e, 0xe3, 0xd0, 0x30, 0x07, 0x09, 0xd8, 0x02, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0x67, 0x3d, 0xe0, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x9c, 0xfc, 0x7b, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x9a, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0xfc, 0x7e, 0x75, 0x58, 0xa1, 0x3d, 0x0e, 0x1d, 0x1a, 0xcf, 0x1f, 0x87, 0x06, 0xc1, 0x82, 0x60, 0x83, 0x11, 0xdb, 0x3a, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x71, 0xdb, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x1b, 0x62, 0x38, 0x41, 0xc9, 0x1f, 0x7e, 0xe3, 0xf9, 0xc1, 0x01, 0xe8, 0xf7, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x81, 0x67, 0x77, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0xf2, 0x47, 0xc1, 0x41, 0x29, 0xb3, 0x73, 0x1c, 0x3a, 0x0e, 0x0d, 0xbb, 0x41, 0xc8, 0x67, 0x6f, 0x1c, 0x1a, 0x04, 0x1b, 0x0c, 0xf1, 0xd8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xd4, 0xc1, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x40, 0xe8, 0x0e, 0x82, 0x9c, 0xff, 0x38, 0x34, 0xec, 0xc2, 0x6d, 0x68, 0x5c, 0x74, 0x90, 0x4c, 0x4f, 0xb0, 0xb0, 0x0b, 0x82, 0x0d, 0x8e, 0xd1, 0xcc, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xa9, 0x83, 0xe1, 0x37, 0x9e, 0x1f, 0xa4, 0x2f, 0x13, 0x1c, 0x87, 0x16, 0x76, 0x43, 0x0f, 0xa1, 0x0d, 0xcd, 0x92, 0x06, 0xc1, 0x06, 0x23, 0xeb, 0x75, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xa1, 0xd1, 0xd1, 0x41, 0x8a, 0x11, 0xc1, 0x71, 0xe8, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x6c, 0x90, 0xb6, 0x0f, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0xf8, 0x0d, 0xd2, 0x1e, 0x02, 0x0e, 0x5d, 0x4c, 0x0e, 0x92, 0x34, 0x02, 0x8e, 0x43, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x0d, 0x0e, 0x80, 0xce, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x38, 0xe6, 0x8a, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x7e, 0x90, 0xa6, 0x18, 0x70, 0x1c, 0x3a, 0x18, 0x41, 0x9e, 0xc7, 0xa1, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x06, 0x09, 0x31, 0x00, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x6f, 0x30, 0x6e, 0x77, 0x17, 0x04, 0x1b, 0x1c, 0x24, 0x85, 0x0f, 0x8d, 0x5a, 0x36, 0xc4, 0x70, 0x10, 0x6c, 0x70, 0x82, 0xd4, 0x3d, 0x34, 0x6a, 0x39, 0x0e, 0x1d, 0x8f, 0x57, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0xf8, 0x0d, 0xd2, 0x1e, 0x02, 0x0e, 0x0e, 0x34, 0xb7, 0x07, 0x27, 0xba, 0xff, 0xe3, 0xf1, 0x20, 0xd8, 0xb0, 0x79, 0x3d, 0x88, 0x16, 0xc4, 0x2b, 0xfc, 0xc6, 0xf3, 0x61, 0x0e, 0x0d, 0x75, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0xf8, 0xfd, 0xea, 0x78, 0x3c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x61, 0x33, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xa3, 0xb3, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x7b, 0x50, 0x1c, 0x6a, 0x1c, 0x87, 0x0e, 0x86, 0x62, 0xd1, 0x71, 0x68, 0x43, 0xbe, 0x76, 0xf8, 0x8d, 0xe7, 0x07, 0x03, 0xdf, 0xf8, 0x38, 0xb4, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x41, 0xda, 0x3e, 0xc0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe1, 0x37, 0x48, 0x7b, 0x08, 0x38, 0x38, 0x84, 0xde, 0x1e, 0x9c, 0xe8, 0xfe, 0x8f, 0x43, 0xc7, 0xe3, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0x08, 0x36, 0x48, 0x31, 0x14, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xf0, 0x1b, 0xa4, 0x3d, 0x04, 0x1c, 0x1c, 0xce, 0x6f, 0x0f, 0x92, 0x34, 0x02, 0x0e, 0xc6, 0x86, 0xeb, 0x71, 0xe8, 0x78, 0xbc, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x04, 0x1b, 0xa4, 0x18, 0x0a, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0xf8, 0x0d, 0xd2, 0x1e, 0x02, 0x0e, 0x4e, 0x2b, 0xb8, 0x07, 0x49, 0x1a, 0x01, 0x07, 0x63, 0xc3, 0xf5, 0x38, 0x74, 0x3c, 0x5e, 0x41, 0xb0, 0xc1, 0x80, 0xdb, 0x5d, 0x1c, 0x04, 0x1b, 0xa4, 0xed, 0x03, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x7e, 0x83, 0xb4, 0x87, 0x80, 0x41, 0x32, 0x70, 0x56, 0x1d, 0x8f, 0x0f, 0x8d, 0x5a, 0x8e, 0x43, 0xc7, 0xe3, 0x05, 0xc1, 0x06, 0xa3, 0xb3, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x6b, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x38, 0xd4, 0x38, 0x48, 0x5d, 0x1f, 0x38, 0x0e, 0x1d, 0x87, 0x06, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0xd8, 0x20, 0xc5, 0x50, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc2, 0x6f, 0x90, 0xf6, 0x10, 0x70, 0x30, 0x42, 0xa2, 0x0e, 0x92, 0x34, 0x02, 0x0e, 0xc6, 0x86, 0xeb, 0x71, 0xe8, 0x78, 0x3c, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0x06, 0x69, 0xfb, 0x00, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x85, 0xdf, 0x20, 0xed, 0x21, 0xe0, 0x60, 0x2c, 0x43, 0x1d, 0x24, 0x69, 0x04, 0x1c, 0x87, 0x8e, 0xc7, 0xc7, 0xe3, 0x41, 0xb0, 0xc1, 0x80, 0xdb, 0x5d, 0x1c, 0x04, 0x0b, 0xbf, 0xe1, 0x49, 0x81, 0x83, 0xf3, 0x13, 0xed, 0xa1, 0x51, 0xcb, 0xf1, 0x78, 0x05, 0xc1, 0xe2, 0x82, 0x60, 0x71, 0x66, 0xe6, 0xa0, 0xf4, 0xa5, 0x59, 0x1c, 0x04, 0x0b, 0x82, 0x05, 0xc9, 0xe0, 0xdf, 0x21, 0xb9, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xb5, 0xdb, 0xd0, 0x43, 0x68, 0x43, 0xe3, 0xa2, 0x25, 0x18, 0xef, 0x09, 0xe6, 0xfb, 0x38, 0x34, 0xec, 0x82, 0x60, 0x83, 0x93, 0xf8, 0xf2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xea, 0x60, 0x82, 0x71, 0x3f, 0x0e, 0x6d, 0x1c, 0x1a, 0x04, 0x0b, 0x92, 0xc1, 0xbf, 0xc3, 0x0a, 0xed, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xfc, 0x37, 0xb4, 0x00, 0xda, 0xd0, 0x74, 0x68, 0x09, 0xca, 0xfb, 0x21, 0x75, 0x70, 0x1c, 0x3a, 0x1e, 0xaf, 0xf0, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x76, 0x61, 0x17, 0x04, 0x0b, 0x92, 0x41, 0xcd, 0x41, 0x90, 0xf3, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xa4, 0x6a, 0x86, 0xdf, 0x78, 0x3e, 0x06, 0x06, 0x00, 0xc0, 0x71, 0x68, 0x61, 0x17, 0x04, 0x1b, 0x8c, 0x80, 0xa2, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x54, 0xcd, 0xf0, 0x1b, 0xcf, 0xc7, 0x80, 0xe0, 0xff, 0xff, 0xff, 0x7f, 0x1c, 0x3a, 0xa4, 0x73, 0x0f, 0x47, 0xfb, 0x82, 0x60, 0x83, 0x61, 0x46, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0xc9, 0x0b, 0x61, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0xf8, 0x75, 0x48, 0x2e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x18, 0xeb, 0x36, 0x07, 0x69, 0x55, 0x08, 0xc7, 0xa1, 0xe3, 0xd0, 0xb0, 0x0b, 0xbb, 0x20, 0xd8, 0x20, 0xcd, 0x09, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x55, 0x33, 0xfc, 0xc6, 0xf3, 0x31, 0x60, 0x00, 0x00, 0x00, 0x00, 0x38, 0x0e, 0x2d, 0xec, 0x82, 0x60, 0x83, 0x11, 0x50, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xaa, 0x19, 0x7e, 0xe3, 0xf9, 0x18, 0x20, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x0e, 0x1d, 0xd2, 0xb9, 0x87, 0xa3, 0x7d, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0x9c, 0x7b, 0x87, 0x6c, 0xc5, 0x41, 0xc2, 0x1b, 0xc2, 0x20, 0x58, 0x10, 0x6c, 0x50, 0xd8, 0x4e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xec, 0x15, 0x0e, 0xbf, 0xf1, 0x7c, 0x0c, 0x10, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x1f, 0x87, 0x06, 0xc1, 0x82, 0x64, 0xa0, 0xe8, 0x1d, 0x04, 0xbc, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xea, 0x60, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0xc8, 0x20, 0xda, 0x60, 0x44, 0x50, 0x1d, 0x92, 0x4b, 0xc7, 0xa1, 0x43, 0xea, 0xe0, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x07, 0x7c, 0xb3, 0x3c, 0x37, 0xf2, 0x90, 0x5a, 0x3a, 0x1e, 0x2f, 0xfc, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x87, 0xdd, 0x20, 0x61, 0x09, 0x61, 0x41, 0xb0, 0xc1, 0x30, 0xa3, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x90, 0xe4, 0x85, 0x30, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x88, 0xde, 0x21, 0xb9, 0x74, 0x90, 0x46, 0x8a, 0x70, 0x1c, 0x3a, 0x48, 0xd7, 0x45, 0x38, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0xdf, 0xac, 0x2c, 0xcd, 0x3d, 0xa4, 0x96, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x12, 0xc4, 0x0f, 0x16, 0x07, 0xc1, 0x82, 0x60, 0x83, 0xf1, 0xda, 0x77, 0x90, 0x3a, 0x7f, 0x30, 0xec, 0x06, 0x29, 0x0c, 0x08, 0x1b, 0x87, 0x06, 0xc1, 0x82, 0x64, 0x20, 0x78, 0x87, 0x15, 0xda, 0x83, 0xf4, 0x14, 0x84, 0xe3, 0xf1, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0xc1, 0x21, 0x55, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x41, 0xb6, 0xb3, 0xf0, 0x1b, 0xcf, 0xc7, 0x40, 0xf8, 0xff, 0x6f, 0x90, 0xe4, 0x85, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x65, 0xdf, 0xd4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xf4, 0xf2, 0x84, 0x83, 0x24, 0x2f, 0x84, 0xe3, 0xd0, 0xc2, 0x6f, 0x3c, 0x3f, 0x18, 0x9c, 0x8f, 0x87, 0x54, 0xcd, 0x71, 0xe8, 0x78, 0xbc, 0x38, 0x40, 0xd0, 0xee, 0xd5, 0x76, 0x1b, 0x20, 0x00, 0x98, 0x40, 0x71, 0x0f, 0x10, 0x04, 0xb8, 0xf2, 0x16, 0x06, 0xfc, 0x7b, 0x3d, 0x9c, 0xa5, 0x05, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0x58, 0x90, 0x0c, 0x34, 0xee, 0x3b, 0x64, 0x2b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0x04, 0x7a, 0xdf, 0x21, 0x5b, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xb5, 0x1b, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0xcc, 0x0e, 0xc9, 0xa5, 0xe3, 0xd0, 0x86, 0xc6, 0xf3, 0x87, 0x7c, 0xed, 0x71, 0xe8, 0x78, 0xbc, 0x82, 0x60, 0xf1, 0x20, 0x69, 0xfc, 0x60, 0x71, 0x10, 0x6c, 0x88, 0xe6, 0x20, 0x58, 0xd8, 0x85, 0x5b, 0x10, 0x2c, 0x48, 0x06, 0xa2, 0x73, 0x10, 0xf0, 0xfe, 0x07, 0x87, 0x46, 0xe0, 0x43, 0x0c, 0x17, 0x04, 0x1b, 0xa4, 0x12, 0x2a, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x97, 0x60, 0xde, 0x0f, 0x2d, 0x80, 0x8e, 0x43, 0x83, 0x60, 0x41, 0x32, 0x70, 0xae, 0x1c, 0x04, 0xbc, 0xff, 0x41, 0x1a, 0xa6, 0xc2, 0x20, 0x58, 0xd8, 0x85, 0x5b, 0x10, 0x6c, 0x30, 0x9e, 0x75, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x92, 0x1d, 0x87, 0xc6, 0xf3, 0xc7, 0xa1, 0x43, 0x0c, 0x17, 0x04, 0x0b, 0x92, 0x81, 0x73, 0xe5, 0x60, 0xbc, 0xeb, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x97, 0xa0, 0xde, 0x1f, 0x84, 0x7c, 0xf6, 0x71, 0x68, 0x10, 0x6c, 0x30, 0x9e, 0x75, 0x0e, 0xd2, 0xb0, 0x15, 0x06, 0xc1, 0xc2, 0x2e, 0xdc, 0xc6, 0xa1, 0x83, 0x90, 0xcf, 0x3e, 0x18, 0x2a, 0x02, 0x83, 0x60, 0x61, 0x17, 0x6e, 0x43, 0xea, 0xe0, 0x60, 0x8c, 0x3d, 0x6d, 0x48, 0x1d, 0x1c, 0x52, 0x35, 0x83, 0x60, 0x71, 0xd8, 0x05, 0xc1, 0x82, 0x64, 0x20, 0xbf, 0x72, 0x70, 0x12, 0x3a, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x78, 0x27, 0x0f, 0xc6, 0x86, 0xeb, 0x71, 0x68, 0x41, 0xb0, 0xc1, 0xe1, 0x4a, 0x7a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x10, 0x1c, 0x9c, 0x84, 0x8e, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x52, 0x35, 0x07, 0x27, 0x8a, 0xe8, 0xe3, 0xd0, 0x61, 0xaf, 0xf0, 0x38, 0x34, 0x08, 0x16, 0x04, 0x4b, 0xb0, 0xee, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0xf8, 0x73, 0x70, 0x12, 0x3a, 0x3e, 0x48, 0xec, 0x58, 0x38, 0xec, 0x15, 0x1e, 0x87, 0x06, 0xc1, 0xc2, 0x2e, 0xdc, 0x82, 0x60, 0x41, 0x32, 0x10, 0x9d, 0x83, 0x63, 0x56, 0xf1, 0xc1, 0x01, 0xd6, 0xf8, 0x10, 0xc3, 0x05, 0xc1, 0x06, 0x09, 0x82, 0x0b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x83, 0x3f, 0x07, 0xc7, 0xac, 0xe2, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x41, 0xc9, 0xc1, 0x31, 0xab, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x61, 0xaf, 0x70, 0x82, 0xb6, 0xff, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x12, 0x04, 0x17, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x52, 0x07, 0x07, 0xc9, 0xc4, 0x0b, 0xc7, 0xa1, 0xe3, 0xd0, 0x41, 0x32, 0xf1, 0xc2, 0x71, 0x68, 0x10, 0x6c, 0x90, 0x20, 0xb8, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xc4, 0xd0, 0x85, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xa4, 0xd1, 0x2e, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xec, 0x15, 0x4e, 0xb0, 0xfa, 0x7f, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x41, 0x70, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x75, 0x70, 0x90, 0x76, 0xc1, 0x70, 0x1c, 0x3a, 0x0e, 0x1d, 0xa4, 0x5d, 0x30, 0x1c, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xe0, 0xfe, 0x20, 0xd8, 0xe0, 0xfc, 0x5d, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x70, 0x4b, 0x3a, 0x18, 0x1b, 0xae, 0xc7, 0xa1, 0x41, 0xb4, 0xc1, 0xf8, 0x87, 0x1e, 0x44, 0x1b, 0x0c, 0x22, 0xa3, 0x43, 0x72, 0xe9, 0xf8, 0x76, 0x3c, 0x1e, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x36, 0x38, 0x07, 0x7f, 0x1f, 0x24, 0x6f, 0x27, 0x1c, 0x8f, 0x07, 0xc1, 0x06, 0x09, 0x74, 0x0a, 0x8b, 0x83, 0x60, 0xc3, 0xd1, 0x3e, 0x08, 0x36, 0x48, 0x94, 0x54, 0x18, 0x04, 0x1b, 0x24, 0x3a, 0x2b, 0x0c, 0x82, 0xc5, 0x61, 0x17, 0x04, 0x1b, 0x9c, 0x39, 0xa0, 0x0f, 0x06, 0x98, 0xf9, 0xc2, 0x2e, 0xdc, 0x82, 0x60, 0x41, 0x32, 0x10, 0x9d, 0x83, 0xe1, 0x1f, 0x7b, 0x70, 0xb0, 0x43, 0x3e, 0xc4, 0x70, 0x61, 0x37, 0x48, 0x0c, 0x58, 0x58, 0x10, 0x6c, 0x30, 0xc4, 0x63, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x70, 0xb6, 0xc9, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0xd5, 0x1c, 0x94, 0x34, 0x0d, 0xc7, 0xa1, 0xc3, 0x5e, 0xe1, 0x71, 0x68, 0x10, 0x6c, 0x30, 0xc4, 0x63, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x70, 0xb6, 0xc9, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xd8, 0x2b, 0x3c, 0x28, 0x69, 0x1a, 0x8e, 0x43, 0x87, 0x54, 0xcd, 0x71, 0xe8, 0x20, 0xf9, 0x96, 0x61, 0x10, 0x2c, 0x08, 0x36, 0x28, 0x8f, 0x0c, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x70, 0xbc, 0x82, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x10, 0x98, 0xd8, 0x07, 0x63, 0xc3, 0xf5, 0x38, 0x74, 0x48, 0xd5, 0x1c, 0x87, 0x06, 0xc1, 0xc2, 0x2e, 0xdc, 0x82, 0x60, 0x41, 0x32, 0x10, 0x9d, 0x83, 0xe1, 0x28, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xbc, 0xe9, 0x1c, 0x1a, 0xcf, 0x1f, 0x87, 0x0e, 0x31, 0x5c, 0x10, 0x6c, 0x90, 0xd0, 0xd3, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x21, 0x27, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0x3a, 0x38, 0x08, 0x4c, 0xec, 0xe3, 0xd0, 0x04, 0x69, 0xff, 0xe3, 0xd0, 0x20, 0xd8, 0x20, 0xa1, 0xa7, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x72, 0x58, 0xc3, 0x04, 0xa7, 0xff, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xe6, 0xc3, 0x1c, 0x8c, 0x37, 0x9d, 0x41, 0xb4, 0x20, 0x3e, 0xec, 0x15, 0x0e, 0xa2, 0x0d, 0xc6, 0x02, 0xfb, 0x21, 0xb9, 0x74, 0x7c, 0x3b, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x81, 0x7f, 0x13, 0x37, 0x9e, 0xaf, 0x41, 0x92, 0x67, 0xc2, 0x20, 0x19, 0x54, 0x1d, 0x8f, 0xd7, 0x20, 0x51, 0x2b, 0xe1, 0xe0, 0xfc, 0x44, 0xdb, 0xf1, 0x78, 0x71, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0xcc, 0x20, 0x58, 0x90, 0x0c, 0x44, 0xe7, 0x20, 0xc8, 0xf9, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x30, 0xcc, 0x68, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x30, 0xfe, 0x6e, 0x0e, 0x1d, 0x34, 0x0e, 0x59, 0xbb, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0xc7, 0x20, 0xfe, 0xc7, 0xa1, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x98, 0x41, 0xb0, 0x41, 0x72, 0x76, 0xc3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x86, 0x19, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x34, 0xfb, 0x86, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xc6, 0xba, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x74, 0x03, 0x87, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x92, 0xb3, 0x1b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xb2, 0x76, 0x07, 0xe9, 0x06, 0x0e, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x20, 0xdd, 0xc0, 0xe1, 0x38, 0x74, 0x3c, 0x5e, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x06, 0xda, 0x3a, 0x1d, 0xb2, 0x15, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0x62, 0xd1, 0x21, 0x55, 0x73, 0x1c, 0x1a, 0x76, 0x83, 0x51, 0x2f, 0xb9, 0x21, 0x86, 0xc3, 0x2f, 0x88, 0x16, 0x32, 0x08, 0x36, 0x18, 0x56, 0x8a, 0x07, 0x03, 0x5b, 0xf4, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x1b, 0x04, 0x28, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa1, 0x58, 0xb4, 0xf0, 0x1b, 0xcf, 0x0f, 0x8e, 0x6a, 0xcc, 0x87, 0xbd, 0xc2, 0xe3, 0xd0, 0x20, 0x58, 0x90, 0x0c, 0x08, 0x7f, 0xa7, 0x83, 0x80, 0xf7, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x14, 0x8b, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x1b, 0x0c, 0xf1, 0x8f, 0x83, 0x80, 0xf7, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x0d, 0x47, 0xfb, 0x20, 0x58, 0x90, 0x0c, 0xa2, 0x43, 0xb6, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x55, 0x33, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0xf0, 0x1d, 0x3e, 0x18, 0xd8, 0xa2, 0xc7, 0xa1, 0x41, 0xb0, 0x38, 0xec, 0x06, 0xc1, 0xc7, 0xbc, 0x21, 0x86, 0xc3, 0x2f, 0x88, 0x16, 0xc4, 0x83, 0x60, 0x41, 0x32, 0x90, 0x5e, 0x39, 0x18, 0x86, 0x3e, 0x07, 0xc3, 0x2c, 0xfc, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x81, 0xe2, 0x74, 0x30, 0xde, 0x75, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xc5, 0xa2, 0x83, 0x81, 0xc8, 0x7c, 0x1c, 0x5a, 0xc3, 0xd1, 0x3e, 0x08, 0x36, 0x18, 0x2d, 0xb3, 0x83, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xc0, 0xc4, 0x1e, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0xbe, 0x4e, 0x07, 0xc3, 0xd0, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x50, 0x2c, 0x3a, 0x08, 0x4c, 0xec, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x83, 0x7f, 0x07, 0x01, 0xef, 0x7f, 0x30, 0xb0, 0x45, 0x8f, 0x43, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x6d, 0x30, 0x16, 0xd8, 0x8f, 0xe7, 0xc7, 0xb7, 0xe3, 0xd0, 0x71, 0xe8, 0x78, 0xbc, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x41, 0x32, 0x9d, 0xc3, 0xb0, 0x1b, 0x8c, 0x7a, 0xc9, 0x0d, 0x31, 0x1c, 0x7e, 0x83, 0xd4, 0x4a, 0x87, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0xcc, 0xde, 0x61, 0x85, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0xe0, 0xae, 0x1c, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0x1d, 0x0c, 0xbf, 0xf1, 0xfc, 0x20, 0xb1, 0xd4, 0xe1, 0x38, 0x74, 0x1c, 0x1a, 0x04, 0x1b, 0x24, 0x0b, 0x3b, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x8a, 0x45, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x24, 0x6a, 0x3b, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0x41, 0x11, 0x87, 0x34, 0x08, 0x16, 0x87, 0xdd, 0x20, 0xf8, 0x98, 0x37, 0xc4, 0x70, 0xf8, 0x0d, 0x52, 0x35, 0x1e, 0x06, 0xc1, 0x82, 0x60, 0x41, 0x32, 0x30, 0x7a, 0x07, 0x41, 0xce, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0x2c, 0xe5, 0x0e, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x7b, 0x85, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x03, 0xcf, 0xee, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa1, 0x58, 0x74, 0xd8, 0x2b, 0x3c, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xe7, 0x07, 0x89, 0x2f, 0x0f, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0x68, 0x83, 0x22, 0x0e, 0xe9, 0x20, 0x61, 0xf4, 0xe1, 0xf8, 0x76, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x57, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x0c, 0x00, 0xef, 0xd7, 0x73, 0x84, 0x4b, 0x1c, 0x67, 0xf4, 0x9e, 0xf9, 0xe9, 0xc0, 0xac, 0xf8, 0xdc, 0x4b, 0x20, 0x97, 0x03, 0x67, 0xcd, 0x3e, 0x1a, 0x3e, 0xcb, 0xbd, 0x59, 0x50, 0x60, 0xc3, 0x75, 0x87, 0x4e, 0x82, 0x7f, 0x09, 0xbd, 0xcc, 0x19, 0x20, 0x60, 0x69, 0x94, 0x40, 0xa0, 0x09, 0x2f, 0xd6, 0x6f, 0xab, 0x5d, 0x6b, 0x2d, 0xe5, 0xf4, 0x45, 0x89, 0x1e, 0x1a, 0xc5, 0x98, 0xea, 0x54, 0x41, 0x5a, 0x69, 0xbf, 0xb7, 0x24, 0x31, 0xfc, 0x76, 0x61, 0x20, 0x7d, 0xbe, 0x8a, 0x59, 0xed, 0xed, 0x39, 0x31, 0x87, 0x8c, 0x33, 0x0d, 0xf3, 0x11, 0x10, 0xa4, 0x26, 0xde, 0x82, 0x60, 0x1a, 0x14, 0x4a, 0x3d, 0xde, 0xa4, 0xdd, 0x06, 0x51, 0x56, 0x7c, 0xbd, 0x76, 0x15, 0xbb, 0x18, 0x33, 0x61, 0xde, 0xed, 0x7a, 0xd3, 0x6d, 0xf2, 0xff, 0xf8, 0x43, 0xa4, 0x6f, 0xb1, 0xe0, 0xce, 0x43, 0x77, 0x93, 0xce, 0x6c, 0x48, 0x2b, 0x3a, 0xe7, 0xb7, 0x7b, 0x10, 0xe1, 0xa2, 0xf2, 0xc2, 0x96, 0xf1, 0xc4, 0x2b, 0x90, 0x07, 0xb5, 0x71, 0xa2, 0x33, 0xc2, 0x21, 0xc2, 0x87, 0x09, 0xc2, 0xd2, 0xf8, 0x9d, 0x37, 0x6e, 0x06, 0xde, 0x99, 0x94, 0x54, 0x85, 0xd2, 0xae, 0x91, 0x55, 0xb3, 0x2d, 0x0f, 0x0c, 0xce, 0x5f, 0xac, 0x7f, 0xac, 0xd2, 0xf2, 0xd3, 0xe9, 0x0b, 0xd0, 0xec, 0xa7, 0xa0, 0x54, 0x4a, 0x77, 0x98, 0xbe, 0xe3, 0x03, 0x34, 0x13, 0xdf, 0x3f, 0x8c, 0xe7, 0xfd, 0x67, 0xff, 0xaa, 0xf4, 0x98, 0xcd, 0x20, 0x8b, 0x35, 0x48, 0x21, 0xe4, 0xb1, 0xde, 0x80, 0x75, 0x1e, 0x89, 0x58, 0x5e, 0xba, 0x05, 0x13, 0x2d, 0x5b, 0x07, 0x92, 0xea, 0x9e, 0xb0, 0x8a, 0x2c, 0x44, 0x3d, 0x0d, 0xb1, 0x2f, 0x89, 0xca, 0xaa, 0x46, 0x7e, 0x17, 0xae, 0x4b, 0x9e, 0xe3, 0x50, 0x3f, 0x78, 0x42, 0x07, 0xc1, 0x06, 0x01, 0xca, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x28, 0x16, 0x2d, 0xfc, 0xc6, 0xf3, 0x0d, 0x86, 0x4e, 0xf8, 0xe1, 0x68, 0x3f, 0xa4, 0x0e, 0x8e, 0x43, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0xc5, 0x00, 0x20, 0x00, 0xc2, 0x3d, 0xf5, 0x2f, 0x4f, 0xa8, 0x65, 0x6c, 0x67, 0x1e, 0xbf, 0x3d, 0xd0, 0x20, 0x7f, 0xb2, 0xb9, 0x39, 0x73, 0x0a, 0x6c, 0xa0, 0x16, 0x9f, 0x7b, 0xdf, 0x08, 0x8d, 0x46, 0x72, 0x83, 0xe1, 0xe8, 0x4d, 0x16, 0x6e, 0xce, 0x1a, 0x3b, 0xfa, 0x43, 0xda, 0x0a, 0xeb, 0x5b, 0x13, 0x3a, 0xab, 0xda, 0x63, 0x76, 0x1e, 0x50, 0xed, 0xbd, 0xa0, 0x55, 0x6b, 0xac, 0x63, 0x55, 0x4c, 0xa5, 0x58, 0xc6, 0x21, 0x78, 0xa3, 0x8b, 0x75, 0xdc, 0xd2, 0xd5, 0x57, 0x44, 0x0e, 0x65, 0x19, 0xac, 0x2a, 0x01, 0xa7, 0x46, 0xf9, 0x53, 0xe6, 0x11, 0x80, 0x36, 0x66, 0xb1, 0x7f, 0xaf, 0x9d, 0x14, 0x24, 0xb6, 0x2a, 0x96, 0xcf, 0x85, 0xc7, 0xe6, 0x68, 0x44, 0x2d, 0x49, 0x7d, 0x05, 0x29, 0xf6, 0xa9, 0x34, 0xcc, 0x43, 0x5f, 0x91, 0x84, 0x30, 0xa4, 0x8b, 0x92, 0x29, 0xeb, 0xe2, 0xc5, 0xb1, 0x0e, 0xca, 0x99, 0x00, 0xc4, 0x56, 0xff, 0x22, 0x27, 0x33, 0xc3, 0x10, 0xef, 0x35, 0x4f, 0x87, 0xf3, 0x27, 0x1c, 0xb5, 0xb2, 0x5c, 0x08, 0xa2, 0x12, 0xe5, 0xcd, 0xfa, 0xd6, 0x9f, 0xf6, 0x9a, 0xff, 0x3f, 0x49, 0xee, 0x06, 0x94, 0xbd, 0x51, 0x90, 0xd9, 0xdc, 0xe1, 0x95, 0x40, 0x7a, 0x86, 0x82, 0xd8, 0x89, 0xf2, 0xc8, 0xb8, 0xfc, 0x58, 0xb5, 0x8d, 0x15, 0xe9, 0xf4, 0x1c, 0x9c, 0xe5, 0x70, 0xa6, 0xcb, 0x7c, 0x4a, 0x80, 0x03, 0x5c, 0x79, 0xfc, 0xdf, 0x39, 0x5e, 0x8e, 0x89, 0xd1, 0xf1, 0x19, 0xed, 0xd4, 0x30, 0x5b, 0x9a, 0x0c, 0xae, 0x74, 0xf1, 0x98, 0x41, 0x61, 0xc0, 0x37, 0x1b, 0xba, 0xc0, 0x24, 0x61, 0x53, 0x33, 0xaa, 0x97, 0xe2, 0x06, 0x4b, 0xf9, 0xb6, 0xbb, 0xbf, 0x22, 0x8e, 0x2c, 0x6a, 0xd3, 0x0c, 0xd7, 0xc8, 0x2f, 0x04, 0x68, 0x03, 0x71, 0x3f, 0x6e, 0x93, 0x76, 0x83, 0x60, 0x83, 0x00, 0xe5, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x14, 0x8b, 0x36, 0x18, 0x8a, 0xcc, 0x87, 0xd4, 0xc1, 0x71, 0xe8, 0x78, 0x3c, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0x06, 0x80, 0xf8, 0xeb, 0x5e, 0x99, 0x9c, 0x44, 0x56, 0xf7, 0xaf, 0x3c, 0x6c, 0x68, 0x20, 0x09, 0x06, 0x23, 0x72, 0x79, 0xab, 0xa4, 0xf7, 0x32, 0xec, 0xb1, 0xed, 0x48, 0x7b, 0x6a, 0xef, 0x2b, 0x40, 0xdb, 0x95, 0xbd, 0x27, 0x76, 0x13, 0xc5, 0xbb, 0x41, 0xdd, 0x58, 0xfb, 0x00, 0xa1, 0xe8, 0x1d, 0x89, 0x6c, 0x32, 0x39, 0x22, 0xb0, 0xa8, 0x52, 0x66, 0x60, 0x96, 0xe0, 0x92, 0x62, 0x3f, 0x59, 0x25, 0x98, 0x73, 0x7e, 0xe5, 0x64, 0x12, 0x5e, 0x56, 0xfc, 0x80, 0xfc, 0x82, 0x77, 0xd1, 0x55, 0xfa, 0xa3, 0xca, 0x9f, 0xf3, 0x2c, 0xd6, 0xaa, 0x2f, 0x75, 0xce, 0xdb, 0x6e, 0x29, 0xc6, 0x31, 0x3a, 0x8b, 0x57, 0xad, 0xb5, 0x4d, 0x93, 0x1b, 0x5f, 0xfc, 0x0f, 0xb2, 0xca, 0x70, 0xc0, 0xfc, 0xc9, 0x0d, 0x4c, 0x45, 0xe8, 0x5b, 0xe2, 0x1f, 0x0e, 0x43, 0xf6, 0x05, 0x38, 0x10, 0xe7, 0xde, 0xde, 0x15, 0xbf, 0x62, 0x79, 0x5d, 0xb3, 0x17, 0x25, 0xe3, 0x11, 0x9c, 0xc9, 0x1a, 0xa4, 0x08, 0xd0, 0x4a, 0xad, 0x9b, 0x96, 0xfa, 0x3e, 0x0f, 0x91, 0x2c, 0x04, 0xee, 0x8a, 0xd5, 0xf4, 0x3c, 0x36, 0x4c, 0x8e, 0x8c, 0xeb, 0x24, 0xd1, 0x50, 0xb9, 0xb7, 0x83, 0x9d, 0x36, 0x4d, 0xcc, 0xa8, 0xa1, 0x6d, 0x53, 0xaf, 0x46, 0x8f, 0xc5, 0xb4, 0x86, 0x77, 0x60, 0xcc, 0xc1, 0x2d, 0x3b, 0xd9, 0x7c, 0x8e, 0xc2, 0xde, 0x5b, 0x68, 0xb9, 0x84, 0x86, 0xd5, 0xe7, 0x9b, 0x7d, 0xbf, 0x89, 0x72, 0x2b, 0x7d, 0xe0, 0x00, 0x0a, 0x67, 0xd1, 0x67, 0xa7, 0x35, 0x52, 0xa4, 0x92, 0xf1, 0xa1, 0x1f, 0x18, 0x49, 0xb4, 0x1c, 0x17, 0x40, 0xb8, 0x46, 0x15, 0xfa, 0x01, 0xf3, 0x97, 0x37, 0x07, 0x79, 0xd8, 0x87, 0x28, 0x4b, 0x82, 0xe6, 0xcd, 0xc2, 0x0b, 0x69, 0xc6, 0xbe, 0x20, 0x1b, 0xf2, 0xd6, 0x31, 0x0f, 0x92, 0x52, 0x23, 0x8e, 0xc7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x62, 0x00, 0x10, 0x00, 0x82, 0xc5, 0xf8, 0xa3, 0x95, 0x13, 0xd6, 0x7f, 0x56, 0x2d, 0x5e, 0x22, 0x4d, 0xdf, 0xbc, 0x33, 0x41, 0xef, 0x5f, 0x90, 0x6d, 0x61, 0xf1, 0xf7, 0x76, 0xe5, 0x70, 0x58, 0xca, 0x26, 0x0b, 0xfc, 0xac, 0x28, 0x4a, 0x1c, 0xa1, 0xc3, 0x21, 0x04, 0xa6, 0x54, 0x3c, 0x49, 0x3f, 0xd4, 0x94, 0xcb, 0xdc, 0x31, 0x06, 0x08, 0x67, 0x39, 0x14, 0x23, 0xbf, 0x12, 0x45, 0x32, 0xc7, 0xad, 0xc2, 0x0e, 0x57, 0xaf, 0x75, 0xae, 0xb1, 0x78, 0x1b, 0xf0, 0x74, 0xfe, 0xab, 0xe7, 0x81, 0xd5, 0x5d, 0x9c, 0x15, 0x96, 0x3e, 0x51, 0x6f, 0x2f, 0x4e, 0xd7, 0x7e, 0x93, 0x92, 0x60, 0xb4, 0xe0, 0x36, 0xee, 0xe1, 0x89, 0x83, 0x65, 0xb3, 0xc1, 0x99, 0x24, 0x0c, 0xf3, 0xd2, 0xf5, 0xa8, 0x29, 0x46, 0x19, 0x1f, 0xe8, 0xbe, 0x66, 0xba, 0x7b, 0xd1, 0xa2, 0xd9, 0xb2, 0xbb, 0x9d, 0xeb, 0x9a, 0xb5, 0x85, 0x50, 0xfa, 0x6c, 0xe9, 0x1a, 0x2a, 0xf4, 0x4b, 0x8a, 0x97, 0xb9, 0x16, 0xd0, 0x25, 0x91, 0x09, 0x0d, 0x86, 0xe2, 0x87, 0x7a, 0x4f, 0x69, 0x03, 0xd3, 0x88, 0x8c, 0xde, 0x11, 0x2e, 0x01, 0xa0, 0xdb, 0x72, 0x68, 0x52, 0x6a, 0xea, 0x3d, 0x8d, 0x34, 0xe4, 0x38, 0x84, 0xb6, 0x2c, 0xc6, 0x73, 0xe3, 0x3b, 0x4c, 0x59, 0xf9, 0xf2, 0x07, 0xfd, 0xfb, 0x1d, 0xd8, 0xff, 0x42, 0x18, 0x6b, 0x5b, 0xc4, 0x1e, 0x64, 0x8e, 0xcd, 0x44, 0xb8, 0xcc, 0xa7, 0x79, 0xa4, 0x62, 0xda, 0x9e, 0xbd, 0x17, 0x37, 0x43, 0x77, 0xc0, 0x05, 0xe6, 0x3a, 0x5c, 0x5a, 0x0f, 0xb7, 0xec, 0x10, 0xed, 0xa5, 0x0a, 0xdd, 0x00, 0x7d, 0x40, 0xf6, 0x80, 0x71, 0x63, 0xce, 0x47, 0x48, 0x9b, 0xb0, 0x30, 0xa9, 0xc9, 0xaa, 0x7c, 0x98, 0x55, 0x20, 0x2b, 0x35, 0x8b, 0xcf, 0x8f, 0x02, 0x6e, 0x53, 0x27, 0xc8, 0x9f, 0x83, 0x14, 0x6a, 0x89, 0xe3, 0xf1, 0xf1, 0x78, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xc1, 0x06, 0xe3, 0x82, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x90, 0x3d, 0x3f, 0xa4, 0x6a, 0x8e, 0x43, 0x83, 0x60, 0x41, 0xb0, 0x06, 0x65, 0xdc, 0xce, 0x20, 0xd8, 0x60, 0xd8, 0xd7, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xb2, 0xe7, 0x87, 0xbd, 0xc2, 0xe3, 0xd0, 0x20, 0x58, 0x1c, 0x76, 0x61, 0x37, 0xec, 0x1a, 0x6c, 0x88, 0xe1, 0xb0, 0x1b, 0xf2, 0x58, 0x87, 0x74, 0xee, 0x86, 0x18, 0x0e, 0xbf, 0x20, 0x5a, 0x10, 0x0e, 0x82, 0x0d, 0x8a, 0xcd, 0xab, 0x43, 0x1a, 0xee, 0x78, 0xbc, 0x20, 0xd8, 0x60, 0xf0, 0x3e, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x28, 0xc8, 0x76, 0x16, 0x7e, 0xe3, 0xf9, 0xa1, 0x7b, 0xe3, 0x21, 0x5f, 0x7b, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0x82, 0x74, 0x10, 0x6c, 0x70, 0x8a, 0x01, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x0d, 0xca, 0xb8, 0x9d, 0x43, 0x34, 0x0f, 0xf9, 0xda, 0xe3, 0xd0, 0xf1, 0xf8, 0xf8, 0x36, 0x08, 0x16, 0x04, 0x1b, 0x24, 0xa0, 0x2a, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xa4, 0x6a, 0x86, 0xdf, 0x78, 0x3e, 0xfc, 0x82, 0x64, 0x20, 0x68, 0x87, 0x6c, 0xc5, 0xc1, 0xf9, 0x89, 0xf6, 0x38, 0x34, 0xfc, 0x82, 0x68, 0x41, 0x3c, 0x08, 0x36, 0x18, 0xcf, 0x3a, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x7b, 0x85, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0x41, 0x32, 0x10, 0xb4, 0x83, 0x20, 0xe7, 0x3f, 0x38, 0x3f, 0xd1, 0x1e, 0x87, 0x8e, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0x41, 0x1a, 0xb4, 0xc2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xc3, 0x5e, 0xe1, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x20, 0x81, 0xbc, 0x62, 0x90, 0x0c, 0x84, 0xee, 0x78, 0x7c, 0x1c, 0x1a, 0x7e, 0x41, 0xb4, 0x60, 0x3e, 0x08, 0x16, 0x24, 0x03, 0xd1, 0x39, 0x18, 0x86, 0x3e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x02, 0x13, 0x7b, 0xf8, 0x8d, 0xe7, 0xc3, 0x2f, 0x48, 0x06, 0x82, 0x76, 0x10, 0xf0, 0xfe, 0x07, 0xc9, 0x0c, 0x16, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x06, 0xce, 0x95, 0x83, 0x61, 0xe8, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0x30, 0xb1, 0x87, 0xdf, 0x78, 0x3e, 0xfc, 0x06, 0xa9, 0x31, 0x16, 0x07, 0xe9, 0xbf, 0x0d, 0xc7, 0xa1, 0xe1, 0x17, 0x44, 0x0b, 0xea, 0x07, 0xc1, 0x06, 0x09, 0xa4, 0x0c, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xc6, 0x9b, 0xce, 0xf0, 0x1b, 0xcf, 0x87, 0x5f, 0x90, 0x0c, 0x04, 0xed, 0x60, 0xbc, 0xeb, 0x1c, 0xa4, 0xff, 0x36, 0x1c, 0x87, 0x8e, 0xc7, 0x1b, 0x52, 0x35, 0x1b, 0x52, 0x07, 0x1b, 0x87, 0x0e, 0x8a, 0x80, 0xba, 0xe3, 0xf1, 0x2a, 0x2e, 0x06, 0x26, 0xe0, 0x4c, 0xf8, 0x8a, 0x81, 0x01, 0x18, 0xb5, 0x18, 0xca, 0xc7, 0xc0, 0x0d, 0x70, 0x26, 0x7c, 0x31, 0x50, 0x62, 0x75, 0xac, 0x38, 0xd8, 0x0f, 0xc6, 0x83, 0xfd, 0x60, 0x3e, 0xd8, 0x0f, 0xe6, 0x83, 0xfd, 0x60, 0x3f, 0x98, 0x0f, 0xf6, 0x83, 0xf9, 0x60, 0xdf, 0x62, 0x90, 0x10, 0x5e, 0x1c, 0xec, 0x07, 0xeb, 0x83, 0x94, 0x5c, 0x8b, 0x31, 0xe0, 0x0b, 0xac, 0x0f, 0x14, 0xb9, 0x08, 0xc7, 0x40, 0x60, 0x75, 0x1c, 0x8f, 0x17, 0x04, 0x1b, 0x8c, 0xfc, 0x87, 0xc5, 0xe1, 0x17, 0x44, 0x0b, 0xd2, 0x05, 0xc1, 0x86, 0x4c, 0xc4, 0xa1, 0x29, 0xd0, 0x20, 0xd8, 0x90, 0x89, 0x38, 0xb4, 0x00, 0x3b, 0x1e, 0x0f, 0xbf, 0x20, 0x5a, 0xb0, 0x1d, 0x04, 0x0b, 0xbb, 0x20, 0x58, 0x90, 0x0c, 0xdc, 0x6b, 0x87, 0xe4, 0xd2, 0x21, 0x0d, 0xb7, 0xf0, 0x0b, 0x92, 0x81, 0xa0, 0x1d, 0x92, 0x4b, 0x83, 0x64, 0x60, 0xec, 0x8e, 0xc7, 0xc3, 0x6f, 0x90, 0x86, 0x71, 0x71, 0x70, 0x0a, 0xc3, 0x1d, 0x04, 0x8b, 0xc3, 0x6e, 0x50, 0xf4, 0x24, 0x6c, 0x68, 0xf8, 0x35, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xed, 0x0b, 0x82, 0x0d, 0x86, 0x95, 0xe2, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0x20, 0xe4, 0xb3, 0x8f, 0x43, 0x83, 0x60, 0x83, 0xc0, 0xf5, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x10, 0x3c, 0xdc, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x01, 0x81, 0xde, 0x77, 0x10, 0xe4, 0xfc, 0x07, 0xe3, 0x38, 0xe4, 0x38, 0x34, 0x88, 0x16, 0x76, 0x10, 0x2c, 0x48, 0x36, 0x28, 0xfc, 0x83, 0x0e, 0x82, 0x9c, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xd8, 0x70, 0x3d, 0xa4, 0x6a, 0x8e, 0x43, 0xc7, 0xe3, 0xe3, 0xdb, 0xf1, 0x78, 0x10, 0x2c, 0x0e, 0xbb, 0x70, 0x1b, 0x62, 0x38, 0x08, 0x36, 0x48, 0xce, 0x6e, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x88, 0xff, 0x41, 0x41, 0xb6, 0x73, 0x1c, 0x5a, 0xd8, 0x85, 0xdb, 0x10, 0xc3, 0x41, 0xb0, 0x41, 0x72, 0x76, 0xc3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xfc, 0x0f, 0x92, 0x35, 0x0d, 0x8e, 0x43, 0x0b, 0xbb, 0x70, 0x1b, 0x62, 0x38, 0x08, 0x36, 0x48, 0xce, 0x6e, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x88, 0xff, 0xf0, 0x1b, 0xcf, 0xc7, 0x60, 0x20, 0x8f, 0x43, 0x0b, 0x82, 0x0d, 0x86, 0x19, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xc3, 0xaf, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xca, 0xbe, 0xa9, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0x73, 0xe5, 0x20, 0xc8, 0xf9, 0x0f, 0x12, 0xad, 0x2f, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x18, 0x66, 0x34, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xc6, 0x86, 0xeb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x65, 0xdf, 0xd4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x82, 0x6c, 0x67, 0xf8, 0x8d, 0xe7, 0x07, 0x49, 0xdf, 0x16, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x34, 0x08, 0x16, 0x04, 0x1b, 0x8c, 0x75, 0x9b, 0x83, 0x74, 0xde, 0x8b, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xe8, 0x1e, 0x04, 0x1b, 0x04, 0xae, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xe0, 0xe1, 0x1e, 0x7e, 0xe3, 0xf9, 0xb0, 0x0b, 0x82, 0x05, 0xc9, 0xc0, 0xbd, 0x76, 0xc8, 0x56, 0x1c, 0x0c, 0x6c, 0xd1, 0xc5, 0x40, 0x68, 0x75, 0x1c, 0x24, 0x7d, 0x5b, 0x1c, 0x87, 0x06, 0xd1, 0x82, 0xf1, 0x71, 0xe8, 0x78, 0x3e, 0x08, 0x16, 0x04, 0x1b, 0x8c, 0x75, 0x9b, 0x83, 0xc4, 0xd1, 0x8b, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xe8, 0x1e, 0x04, 0x1b, 0x04, 0xae, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xe0, 0xe1, 0x1e, 0x7e, 0xe3, 0xf9, 0xb0, 0x1b, 0xa4, 0xc1, 0x61, 0x2c, 0x06, 0x57, 0xdb, 0x18, 0x1c, 0x6d, 0xc7, 0xa1, 0x83, 0xa4, 0x43, 0x8c, 0x41, 0xb0, 0x20, 0xd8, 0x60, 0xfc, 0xdd, 0x1c, 0x36, 0x6a, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xa0, 0x7b, 0x10, 0x6c, 0x10, 0xb8, 0xfe, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x82, 0x87, 0x7b, 0xf8, 0x8d, 0xe7, 0xc3, 0x6e, 0x90, 0x06, 0x87, 0xb1, 0x18, 0x8c, 0xdb, 0x18, 0x4c, 0xdb, 0x71, 0xe8, 0x20, 0xe9, 0x10, 0xe3, 0xf8, 0x76, 0x3c, 0x5e, 0x10, 0x2c, 0x06, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xb5, 0x70, 0xd0, 0x00, 0x00, 0x00, 0x58, 0x1c, 0x04, 0x1b, 0x8c, 0x31, 0x9c, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0x84, 0xed, 0xb0, 0x42, 0x7b, 0x30, 0x8c, 0x1d, 0x16, 0x76, 0x41, 0xb0, 0x20, 0x19, 0x7c, 0x39, 0x08, 0x78, 0xff, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x68, 0x0e, 0xbf, 0xf1, 0x7c, 0x0c, 0x78, 0x20, 0xed, 0x22, 0x1a, 0x88, 0xe3, 0xd0, 0x1a, 0x62, 0x38, 0x08, 0x36, 0x18, 0x05, 0x3a, 0x07, 0x09, 0x32, 0x19, 0x1b, 0x8e, 0xf6, 0x61, 0x06, 0xc1, 0x06, 0xa3, 0x40, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x9a, 0x4e, 0xc6, 0x21, 0x9a, 0xc7, 0xa1, 0x0d, 0x82, 0x2c, 0x7e, 0x83, 0xc1, 0x1a, 0xbb, 0xa1, 0x91, 0xe0, 0x86, 0x4e, 0x6a, 0x1b, 0x9a, 0x70, 0x1d, 0x9c, 0xd5, 0xcf, 0x8f, 0xc7, 0x0b, 0x82, 0x0d, 0x0a, 0x72, 0xc3, 0xc5, 0x41, 0xb0, 0xb0, 0x1b, 0x8c, 0x9f, 0xae, 0x05, 0xc1, 0x86, 0xac, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x34, 0x9d, 0x8c, 0x83, 0x71, 0x61, 0x76, 0x1c, 0x1a, 0x04, 0x1b, 0x36, 0x43, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xa4, 0xe9, 0x64, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xc8, 0x44, 0x1c, 0x0c, 0xf4, 0xb2, 0xe3, 0xd0, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x06, 0x46, 0xed, 0xb0, 0x42, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0x3a, 0xd8, 0xd0, 0x02, 0xe8, 0xd0, 0x74, 0xe8, 0x38, 0x34, 0x08, 0x16, 0x24, 0x03, 0x71, 0x3b, 0x64, 0x2b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x52, 0x07, 0x4b, 0x50, 0xee, 0x97, 0xe0, 0xbc, 0x5f, 0x82, 0xf4, 0xfd, 0x04, 0xf9, 0xfb, 0xe3, 0xd0, 0xf1, 0x78, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0xb0, 0x0b, 0xb7, 0x21, 0x86, 0x83, 0x60, 0x83, 0x71, 0xe0, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xaa, 0x39, 0x28, 0xc8, 0x76, 0x8e, 0x43, 0x0b, 0xbb, 0xb0, 0x0b, 0xbb, 0x70, 0x1b, 0x62, 0x38, 0x08, 0x36, 0x18, 0x07, 0x1e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xa9, 0x9a, 0x83, 0x64, 0x4d, 0x83, 0xe3, 0xd0, 0x61, 0x7d, 0x73, 0x43, 0x0c, 0x87, 0x5d, 0xb8, 0x0d, 0x31, 0x1c, 0x04, 0x1b, 0x8c, 0x03, 0x8f, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x54, 0xcd, 0x41, 0xba, 0xf7, 0xc5, 0x71, 0xe8, 0x90, 0xce, 0x3d, 0xa4, 0x73, 0x0f, 0x47, 0xfb, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x83, 0x91, 0xff, 0x30, 0xfc, 0x82, 0x68, 0x41, 0x3c, 0x08, 0x36, 0x48, 0xce, 0x6e, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xd8, 0x2b, 0x1c, 0x7e, 0xe3, 0xf9, 0xf0, 0x0b, 0x92, 0x81, 0xa0, 0x1d, 0x56, 0x68, 0x0f, 0x4e, 0x2b, 0xb8, 0xc7, 0xa1, 0x41, 0xb4, 0x30, 0x83, 0x60, 0x83, 0x34, 0x05, 0x8c, 0x83, 0x44, 0x3c, 0x8d, 0xe3, 0xf1, 0xf0, 0x0b, 0xbb, 0x20, 0xd8, 0x60, 0xd4, 0x70, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xec, 0x15, 0x0e, 0xbf, 0xf1, 0x7c, 0x98, 0xe1, 0x37, 0x48, 0x33, 0xd4, 0x38, 0x18, 0xcb, 0x50, 0xc7, 0xa1, 0x05, 0xd1, 0xc2, 0x1d, 0x12, 0x53, 0xc7, 0xe3, 0xe1, 0x17, 0x44, 0x0b, 0xe2, 0x41, 0xb0, 0xc1, 0x58, 0xb7, 0x39, 0x48, 0x53, 0xd5, 0x18, 0x44, 0x0b, 0x77, 0x38, 0xd7, 0x8f, 0xc7, 0x83, 0x68, 0x41, 0x3c, 0x08, 0x36, 0x48, 0xce, 0x6e, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xd8, 0x2b, 0x1c, 0x7e, 0xe3, 0xf9, 0x41, 0x02, 0xae, 0xc6, 0x71, 0x68, 0x10, 0x2d, 0x88, 0x06, 0xc1, 0x06, 0xc3, 0x8c, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xa1, 0x91, 0xe0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x69, 0x0a, 0x18, 0x07, 0x89, 0xea, 0x1a, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0x58, 0x10, 0x6c, 0x30, 0xcc, 0x68, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x50, 0xf6, 0x4d, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x48, 0xf7, 0xbe, 0x38, 0x44, 0xf3, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0xd9, 0x37, 0x35, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0x59, 0xd3, 0xe0, 0xd0, 0x48, 0xf0, 0x38, 0x74, 0x1c, 0x1a, 0x04, 0x8b, 0x83, 0x60, 0x61, 0x37, 0x74, 0x0c, 0x3b, 0x48, 0x6d, 0xc7, 0x18, 0x76, 0x41, 0xb0, 0x20, 0x19, 0xc8, 0xaf, 0x1c, 0x0c, 0x43, 0x9f, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x83, 0x77, 0xf2, 0x90, 0x3a, 0x38, 0x0e, 0x2d, 0x08, 0x16, 0x07, 0xc1, 0x1a, 0x62, 0x38, 0xec, 0x06, 0xc1, 0xc3, 0xbd, 0xf0, 0x1b, 0x24, 0xfb, 0x59, 0x1c, 0xa4, 0x7c, 0x5c, 0x0c, 0xbf, 0x41, 0xb2, 0x9f, 0xc5, 0xc1, 0x29, 0x0c, 0x77, 0x10, 0x2c, 0x0e, 0x82, 0x05, 0xc1, 0x82, 0x64, 0x40, 0xa0, 0xf7, 0x1d, 0x0c, 0x47, 0xe9, 0x43, 0xa2, 0x75, 0xd8, 0x05, 0xc1, 0x06, 0x47, 0xa8, 0xe2, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xa7, 0x72, 0xe4, 0x43, 0xea, 0xe0, 0x38, 0xb4, 0x06, 0x83, 0x77, 0x72, 0x83, 0x02, 0xe3, 0x6d, 0x98, 0x83, 0xb3, 0xec, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x28, 0xff, 0x83, 0x60, 0x83, 0xc4, 0xd0, 0x85, 0x83, 0x04, 0xdf, 0x8d, 0x41, 0xb4, 0x20, 0x3c, 0x28, 0x30, 0xde, 0x8e, 0xe7, 0xc7, 0xb7, 0xe3, 0xdb, 0x20, 0xd8, 0x60, 0xb8, 0x29, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x41, 0xfd, 0x20, 0xd8, 0xe0, 0x78, 0x05, 0x7d, 0x50, 0xf4, 0x1f, 0x0d, 0xa2, 0x05, 0xdd, 0xc3, 0x6d, 0x88, 0xe1, 0x20, 0xd8, 0x20, 0x8d, 0xee, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x90, 0xa2, 0x3d, 0xa4, 0x0e, 0x8e, 0x43, 0x07, 0x69, 0xa4, 0x0d, 0xc7, 0xb7, 0xe3, 0xf1, 0x20, 0xd8, 0xa0, 0x80, 0x16, 0x5c, 0x1c, 0x04, 0x0b, 0x82, 0x0d, 0x59, 0x93, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x18, 0xfb, 0x0c, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x59, 0xbb, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0x41, 0x1a, 0xc6, 0xc5, 0xc1, 0xf9, 0x89, 0xf6, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x18, 0xfb, 0x0c, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x3d, 0x84, 0x86, 0xdf, 0x78, 0x3e, 0xfc, 0x06, 0x69, 0x18, 0x17, 0x07, 0xc9, 0x0c, 0x16, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0xd8, 0x67, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x68, 0x5c, 0x34, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x48, 0xc3, 0xb8, 0x38, 0x48, 0xff, 0x6d, 0x38, 0x0e, 0x1d, 0x24, 0x6b, 0x20, 0x1c, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0x41, 0xb0, 0x20, 0xd8, 0xa0, 0x8c, 0xdb, 0x19, 0x04, 0x8b, 0xc3, 0x2e, 0xdc, 0x86, 0x18, 0x1e, 0x24, 0x7a, 0x2b, 0x6c, 0x88, 0xe1, 0xf0, 0x0b, 0xa2, 0x85, 0x1d, 0x04, 0x1b, 0x14, 0x9b, 0x57, 0x87, 0x46, 0x2d, 0xc7, 0xe3, 0x41, 0xb0, 0xc1, 0xc8, 0x7a, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0xf1, 0x58, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x37, 0x28, 0xe3, 0x76, 0x0e, 0xa9, 0x83, 0x09, 0xd2, 0xfb, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x81, 0x7a, 0x3f, 0xc1, 0x7d, 0x7f, 0x3c, 0x3e, 0x0e, 0x1d, 0xdf, 0x06, 0xc1, 0x06, 0x03, 0xd1, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x63, 0x68, 0xe1, 0x20, 0x99, 0xa3, 0xe2, 0x90, 0x3a, 0x38, 0x0e, 0x1d, 0x8f, 0x57, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0xe1, 0x17, 0x24, 0x03, 0xe5, 0xe9, 0xb0, 0x42, 0x3b, 0x88, 0x16, 0xf6, 0xa0, 0xb0, 0xc3, 0x39, 0x1e, 0x0f, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb0, 0x41, 0x80, 0xf2, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x28, 0xd1, 0x70, 0x0e, 0x92, 0xf4, 0x2a, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0xb0, 0x82, 0xe4, 0x60, 0xec, 0x37, 0x2f, 0x48, 0x06, 0x75, 0x07, 0x21, 0x05, 0xbe, 0x20, 0x19, 0x08, 0xde, 0x41, 0x48, 0x81, 0x2f, 0x48, 0x06, 0xff, 0x0e, 0x42, 0x0a, 0x7c, 0x90, 0x0c, 0xda, 0x0e, 0x42, 0x0a, 0x7c, 0x10, 0x2c, 0x08, 0x36, 0x18, 0x43, 0x0b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x1e, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x28, 0x52, 0x9f, 0x0e, 0x92, 0xf9, 0x1e, 0x8e, 0x43, 0x83, 0x60, 0x41, 0xb0, 0x41, 0xb2, 0xb0, 0xc3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x81, 0x1f, 0x32, 0xfc, 0xc6, 0xf3, 0x35, 0x0e, 0x1d, 0x04, 0x26, 0xf6, 0xe2, 0x20, 0x08, 0x02, 0xb0, 0x82, 0x60, 0x83, 0xf1, 0xac, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x13, 0x23, 0xf5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x8f, 0x41, 0x01, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0x3c, 0xeb, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0x64, 0xbd, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x38, 0x10, 0xf1, 0x1f, 0x52, 0x07, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x8f, 0x41, 0x01, 0x38, 0x0e, 0x1d, 0x87, 0x0e, 0x12, 0x7c, 0x3c, 0x8e, 0x43, 0x87, 0x18, 0xae, 0x18, 0x0e, 0x0c, 0x82, 0x05, 0xc1, 0x82, 0x64, 0xa0, 0x3c, 0x1d, 0x04, 0xbc, 0xff, 0x20, 0x19, 0xfc, 0x1b, 0x44, 0x0b, 0x7b, 0x30, 0x64, 0xcf, 0x8f, 0x43, 0x07, 0x03, 0x5b, 0xf4, 0x10, 0xc3, 0xe3, 0xd0, 0x20, 0x58, 0x10, 0x6c, 0x70, 0xc0, 0x7a, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x70, 0x38, 0x29, 0x3e, 0xa4, 0x0e, 0x8e, 0x43, 0x83, 0x60, 0x31, 0x80, 0x80, 0xcc, 0x3c, 0x41, 0xad, 0xd0, 0xf5, 0x6c, 0x37, 0x6e, 0xde, 0x8d, 0x47, 0xeb, 0x60, 0x31, 0xe5, 0x20, 0x58, 0x0c, 0x20, 0x28, 0x60, 0xa4, 0xe8, 0x2c, 0x71, 0xb5, 0xf9, 0xdd, 0x9f, 0x5b, 0x17, 0xd3, 0x8e, 0x4a, 0x06, 0x02, 0x3e, 0x5c, 0x7a, 0x38, 0x08, 0x36, 0xc4, 0x70, 0x10, 0x2c, 0x0e, 0xbb, 0x70, 0x07, 0x89, 0x70, 0x0d, 0x0b, 0x82, 0x05, 0xc9, 0xc0, 0xfd, 0x74, 0x70, 0xcc, 0x2a, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x50, 0xa2, 0xe1, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x36, 0x18, 0xe2, 0x1f, 0x07, 0xc7, 0xac, 0xe2, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x60, 0x94, 0x0e, 0x8e, 0x59, 0xc5, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x4a, 0x34, 0x9c, 0xc3, 0x5e, 0xe1, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x1a, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x82, 0x64, 0xa0, 0x38, 0x1d, 0x1c, 0xb3, 0x8a, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x1c, 0x4e, 0x8a, 0x37, 0x18, 0x25, 0x89, 0x07, 0x83, 0x77, 0xf2, 0x38, 0x34, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x81, 0xfb, 0xe9, 0xe0, 0xec, 0x65, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x44, 0xc3, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x6c, 0x30, 0x48, 0x5e, 0x0e, 0xce, 0x5e, 0xc6, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0xa3, 0x74, 0x70, 0xf6, 0x32, 0x3e, 0x38, 0x6f, 0xa8, 0x4f, 0xf0, 0xee, 0xff, 0x71, 0xe8, 0x38, 0x34, 0x08, 0x16, 0xc3, 0x60, 0x10, 0x2c, 0x0e, 0xbb, 0x70, 0x8b, 0xe1, 0xd0, 0x21, 0x75, 0xb0, 0x21, 0x55, 0x33, 0x08, 0x56, 0x10, 0x2c, 0xc1, 0xf7, 0xff, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x38, 0xd2, 0x26, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xa4, 0x6a, 0x0e, 0x86, 0x62, 0xd1, 0x71, 0xe8, 0xb0, 0x57, 0x78, 0x1c, 0x5a, 0x10, 0x6c, 0x90, 0x6a, 0xf8, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x23, 0x6d, 0xf2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xaa, 0xe6, 0xe0, 0x40, 0xc4, 0x7f, 0x1c, 0x3a, 0xec, 0x15, 0x1e, 0x87, 0x16, 0x04, 0x1b, 0xa4, 0x1a, 0x7e, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0x48, 0x9b, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xaa, 0x19, 0x7e, 0xe3, 0xf9, 0x18, 0xe2, 0xe3, 0xd0, 0x61, 0xaf, 0xf0, 0x38, 0x34, 0x08, 0x36, 0x48, 0x35, 0xfc, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x91, 0x36, 0x79, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x55, 0x33, 0xfc, 0xc6, 0xf3, 0x83, 0x44, 0xb9, 0x8f, 0xe3, 0xd0, 0x61, 0xaf, 0xf0, 0x38, 0x34, 0x08, 0x16, 0x04, 0x4b, 0x60, 0xd8, 0xff, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xf8, 0x21, 0x1b, 0x8c, 0x0d, 0xd7, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x40, 0xf0, 0x0e, 0x0e, 0x14, 0xc9, 0x83, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xd6, 0x6e, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0x0f, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x8d, 0x8b, 0x0e, 0xcd, 0x92, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xe2, 0x41, 0xb0, 0x20, 0x19, 0x28, 0x7a, 0x07, 0xa7, 0x0d, 0xe5, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0xba, 0x74, 0x70, 0xda, 0x50, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x0d, 0x0a, 0x3b, 0x9c, 0xc3, 0x5e, 0xe1, 0x21, 0x75, 0x70, 0x1c, 0x3a, 0x18, 0x6f, 0x3a, 0xc7, 0xa1, 0x83, 0x02, 0x3e, 0xea, 0xf8, 0x36, 0x08, 0x36, 0xc4, 0x70, 0x10, 0xac, 0x20, 0x58, 0x82, 0xed, 0xff, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x03, 0x3f, 0xe4, 0x60, 0xbc, 0xe9, 0x1c, 0x87, 0x16, 0x04, 0x1b, 0x24, 0x47, 0x83, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x1b, 0xae, 0x07, 0xe3, 0x4d, 0xe7, 0x38, 0xb4, 0x20, 0xd8, 0x20, 0x39, 0x1a, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xa1, 0xf1, 0xfc, 0xc1, 0x78, 0xd3, 0x39, 0x0e, 0x2d, 0x08, 0x36, 0x48, 0x8e, 0x06, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x14, 0x8b, 0x0e, 0xc6, 0x9b, 0xce, 0x71, 0x68, 0x10, 0x6c, 0x90, 0x1c, 0x0d, 0x72, 0x50, 0x8a, 0x09, 0x0d, 0x82, 0xc5, 0x61, 0x17, 0x6e, 0x83, 0x34, 0xbd, 0x8f, 0x43, 0xaa, 0x66, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x88, 0x07, 0xc1, 0x82, 0x64, 0xe0, 0x7e, 0x3a, 0x38, 0xd7, 0x1f, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x28, 0xd1, 0x70, 0x86, 0xdf, 0x78, 0xbe, 0x20, 0x58, 0x82, 0xe6, 0xff, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x59, 0xbb, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x52, 0x0d, 0x3f, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xfc, 0x90, 0x83, 0x81, 0x48, 0x7d, 0x1c, 0x3a, 0x0e, 0x2d, 0x08, 0x36, 0x48, 0xce, 0x0a, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xe8, 0x21, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0xaa, 0xe1, 0xc7, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xb1, 0xe1, 0x7a, 0x30, 0x10, 0xa9, 0x8f, 0x43, 0xc7, 0xa1, 0x05, 0xc1, 0x06, 0xc9, 0x59, 0x21, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x8d, 0x8b, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x48, 0x35, 0xfc, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x68, 0x3c, 0x7f, 0x30, 0x10, 0xa9, 0x8f, 0x43, 0xc7, 0xa1, 0x05, 0xc1, 0x06, 0xc9, 0x59, 0x21, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xc2, 0x9e, 0x7a, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x54, 0xc3, 0x8f, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x43, 0xb1, 0xe8, 0x60, 0x20, 0x52, 0x1f, 0x87, 0x8e, 0x43, 0x0b, 0x82, 0x0d, 0x92, 0xb3, 0x42, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x94, 0xd8, 0x83, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xa4, 0x1a, 0x7e, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x28, 0xc8, 0x76, 0x0e, 0x06, 0x22, 0xf5, 0x71, 0xe8, 0x38, 0x74, 0x88, 0xe1, 0x71, 0x68, 0x10, 0x2d, 0xec, 0x41, 0x4a, 0x66, 0xc3, 0x21, 0x5b, 0x31, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x81, 0xa2, 0x77, 0x70, 0xae, 0x3f, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x38, 0xf7, 0x0e, 0xce, 0xf5, 0xc7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x3d, 0x84, 0x0e, 0x8d, 0x8b, 0x8e, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xa4, 0x33, 0x89, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x54, 0xbd, 0x83, 0x73, 0xfd, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x12, 0x0d, 0x67, 0x83, 0xb1, 0xe1, 0x7a, 0xe8, 0x21, 0x74, 0x1c, 0x3a, 0x08, 0x7b, 0xea, 0xe3, 0xd0, 0x71, 0x68, 0x10, 0x2c, 0x08, 0x36, 0x48, 0x32, 0x02, 0x19, 0x04, 0x1b, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x84, 0x7c, 0xf6, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc6, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x45, 0xae, 0xc2, 0x41, 0x9a, 0x7b, 0xc6, 0x71, 0xe8, 0x38, 0x34, 0x08, 0x16, 0x04, 0x1b, 0xa4, 0x37, 0x82, 0x0c, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x38, 0xf7, 0x0e, 0x4e, 0x1b, 0xca, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x42, 0x3e, 0xfb, 0xa0, 0xc8, 0x55, 0x38, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xd2, 0xc3, 0x45, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x84, 0x7c, 0xf6, 0x41, 0x9a, 0x7b, 0xc6, 0x71, 0x68, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xa4, 0x87, 0x8b, 0x1c, 0x24, 0xd8, 0x8a, 0x1c, 0x87, 0x8e, 0x43, 0x83, 0x60, 0x61, 0x17, 0x76, 0x41, 0xb0, 0x20, 0x19, 0xd4, 0x4c, 0x60, 0xfd, 0xff, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xc1, 0x3b, 0x79, 0x30, 0xf0, 0x43, 0x8e, 0x43, 0x0b, 0xbb, 0x20, 0x58, 0x90, 0x0c, 0x04, 0xe5, 0x20, 0x2d, 0x68, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xe0, 0x9d, 0x1c, 0x7e, 0xe3, 0xf9, 0x18, 0x36, 0xc7, 0xa1, 0x43, 0x3a, 0xf7, 0x70, 0xb4, 0x2f, 0x08, 0x96, 0xc0, 0xe0, 0xff, 0x1f, 0x04, 0x1b, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x09, 0x1c, 0xfb, 0xff, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xfc, 0x90, 0x0d, 0x4a, 0x34, 0x9c, 0x83, 0x20, 0xc5, 0x3f, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x10, 0x98, 0xd8, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x4b, 0x90, 0xef, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x4b, 0xa0, 0xf4, 0xff, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xf0, 0x43, 0x0e, 0xce, 0x99, 0xc9, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x90, 0xe6, 0x3d, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xf0, 0x4e, 0x1e, 0x0c, 0x44, 0xea, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x0d, 0xbb, 0xb0, 0x0b, 0x82, 0x0d, 0xd2, 0x7b, 0x46, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xde, 0xc9, 0xe1, 0x37, 0x9e, 0x8f, 0x61, 0x74, 0x1c, 0x5a, 0xd8, 0x05, 0xc1, 0x06, 0xc9, 0x58, 0x23, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x06, 0xef, 0xe4, 0xf0, 0x1b, 0xcf, 0xc7, 0xd0, 0x73, 0x1c, 0x3a, 0xa4, 0x73, 0x0f, 0x47, 0xfb, 0x82, 0x60, 0x83, 0xc4, 0xbc, 0x91, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0xda, 0xe1, 0xc8, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc6, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xbd, 0xc2, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xd2, 0x8a, 0x47, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x69, 0xde, 0x23, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xc6, 0x86, 0xeb, 0xc1, 0x39, 0x33, 0xf9, 0x38, 0x74, 0x90, 0x20, 0x3f, 0x72, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0xc3, 0x2e, 0xec, 0x82, 0x60, 0x83, 0xf4, 0x9e, 0x91, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x83, 0x77, 0x72, 0xf8, 0x8d, 0xe7, 0x63, 0x28, 0x3a, 0x0e, 0x2d, 0xec, 0x82, 0x60, 0x83, 0x64, 0xac, 0x91, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x83, 0x77, 0x72, 0xf8, 0x8d, 0xe7, 0x63, 0xe8, 0x3e, 0x0e, 0x1d, 0xd2, 0xb9, 0x87, 0xa3, 0x7d, 0x41, 0xb0, 0x41, 0x62, 0xde, 0xc8, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0xed, 0x70, 0x64, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xaa, 0x66, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xb4, 0xe2, 0x91, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x9a, 0xf7, 0xc8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xe3, 0xf9, 0x83, 0x73, 0x66, 0xf2, 0x71, 0xe8, 0x20, 0x41, 0x7e, 0xe4, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x06, 0xc1, 0x06, 0x89, 0x79, 0x23, 0x83, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xb4, 0xc3, 0x91, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x7b, 0x85, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xa4, 0x15, 0x8f, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xd2, 0xbc, 0x47, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xc5, 0xa2, 0x83, 0x73, 0x66, 0xf2, 0x71, 0xe8, 0x20, 0x41, 0x7e, 0xe4, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0x20, 0x1e, 0xe6, 0x60, 0xf0, 0x4e, 0x0e, 0xa2, 0x85, 0xdd, 0x38, 0xb4, 0x41, 0x90, 0xe2, 0x2f, 0x08, 0x96, 0x40, 0xb2, 0xff, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x81, 0x1f, 0xb2, 0x41, 0xd2, 0x05, 0xc0, 0x41, 0x49, 0xd3, 0x70, 0x1c, 0x5a, 0x82, 0xb2, 0x7f, 0x50, 0x1e, 0x19, 0x1c, 0xb2, 0x15, 0xc7, 0xb7, 0xe3, 0xdb, 0xf1, 0x78, 0x05, 0xc1, 0x06, 0x23, 0xff, 0x61, 0x71, 0x10, 0x2c, 0x08, 0x16, 0x24, 0x03, 0xfd, 0xef, 0x0e, 0xc9, 0xa5, 0x41, 0x32, 0xd8, 0x0d, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0xfc, 0x7e, 0x77, 0x48, 0x2e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x64, 0xed, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x48, 0x21, 0x4e, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x1e, 0x9c, 0xf9, 0x6a, 0x8f, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0xa1, 0x29, 0xd0, 0xf1, 0x78, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0x05, 0xc1, 0x06, 0xc9, 0x1f, 0x26, 0x87, 0x44, 0xeb, 0x20, 0xd8, 0x60, 0xf8, 0x0e, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0xd8, 0xd7, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xd7, 0xe8, 0x87, 0xd4, 0xc1, 0x71, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x41, 0xc9, 0x71, 0x90, 0x26, 0x67, 0x72, 0x1c, 0x3a, 0x1e, 0x2f, 0xfc, 0x82, 0x60, 0x71, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0xb8, 0x21, 0x9a, 0x83, 0x60, 0x41, 0x32, 0xb0, 0xea, 0x74, 0xc8, 0x56, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x8a, 0x45, 0x87, 0xbc, 0xec, 0x71, 0xe8, 0x78, 0xbc, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x0d, 0x92, 0xe9, 0x1c, 0x0e, 0xa9, 0x83, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x64, 0x20, 0xed, 0x74, 0xc8, 0x56, 0x1c, 0xa4, 0xf8, 0x39, 0x1c, 0x8f, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xc9, 0x80, 0x60, 0xed, 0x3b, 0x64, 0x2b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x90, 0x14, 0x6e, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0x09, 0xa0, 0x26, 0x07, 0x43, 0xb1, 0xe8, 0x38, 0x74, 0x48, 0xd5, 0x1c, 0x87, 0x8e, 0xc7, 0x8b, 0x0b, 0x82, 0x05, 0xc9, 0x40, 0xd3, 0xbe, 0xc3, 0x0a, 0xed, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0xc3, 0x1c, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0xc0, 0xeb, 0x77, 0x87, 0xe4, 0xd2, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x83, 0xdd, 0xf1, 0x7c, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x31, 0x14, 0x1c, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0x15, 0x04, 0x1b, 0x24, 0x55, 0x9c, 0x0c, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x98, 0x1d, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x40, 0xfa, 0xee, 0x90, 0x5c, 0x1a, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x89, 0x56, 0x27, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x1f, 0xa4, 0x43, 0x79, 0x1c, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0x15, 0x04, 0x1b, 0x24, 0x55, 0x9c, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x44, 0xc7, 0xf3, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0xc1, 0xab, 0xe3, 0xf1, 0x71, 0x68, 0xf8, 0x05, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0x58, 0xe1, 0x17, 0x24, 0x03, 0xe5, 0xe9, 0x20, 0xc8, 0xf9, 0x0f, 0x52, 0xd3, 0x3a, 0x06, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0xd8, 0x20, 0x2d, 0xe6, 0xe1, 0x20, 0xad, 0xaf, 0xe3, 0x78, 0x3c, 0x08, 0x36, 0x48, 0x87, 0xec, 0x18, 0x04, 0x0b, 0x82, 0x0d, 0xc6, 0x6d, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa4, 0xe0, 0x8e, 0x43, 0xb2, 0xe3, 0x38, 0x34, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x01, 0xe1, 0xef, 0x74, 0x30, 0x0c, 0x7d, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xfc, 0x90, 0xe1, 0x37, 0x9e, 0xaf, 0x71, 0x68, 0x10, 0x2c, 0x48, 0x06, 0x56, 0x9d, 0x0e, 0x86, 0xa1, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa1, 0x58, 0xb4, 0x41, 0x90, 0xe2, 0x1f, 0x84, 0x88, 0xff, 0x71, 0x68, 0x83, 0x94, 0xf8, 0x8e, 0x15, 0x04, 0x1b, 0x24, 0x90, 0x32, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0x78, 0x05, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0x21, 0xc2, 0x63, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x04, 0x52, 0x86, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x0c, 0xf1, 0xd8, 0x83, 0xb4, 0x17, 0x8f, 0x83, 0x04, 0x1f, 0x8f, 0xe3, 0xd0, 0x71, 0xe8, 0x20, 0xc1, 0xc7, 0xe3, 0x38, 0x74, 0x88, 0xe1, 0x1a, 0xa4, 0x43, 0x79, 0x0c, 0x82, 0x05, 0xc1, 0x82, 0x64, 0xa0, 0x3c, 0x1d, 0x0c, 0x43, 0x9f, 0x83, 0x74, 0x2f, 0x8f, 0x83, 0x81, 0x2d, 0x7a, 0x88, 0xe1, 0x71, 0x68, 0x10, 0x2c, 0x08, 0x36, 0x38, 0x4b, 0x66, 0x1f, 0x24, 0xea, 0x79, 0x0c, 0x82, 0x0d, 0x12, 0x16, 0x3d, 0x06, 0xc1, 0x06, 0xc9, 0x9f, 0x1e, 0x83, 0x60, 0x43, 0x0c, 0x07, 0xc1, 0xe2, 0xb0, 0x1b, 0xa4, 0xfb, 0x7a, 0x2c, 0x08, 0x16, 0x24, 0x03, 0xf7, 0xd3, 0xc1, 0xe9, 0x0c, 0x79, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x89, 0x86, 0x33, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0xd9, 0x60, 0x88, 0x7f, 0x1c, 0x9c, 0xce, 0x90, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0x51, 0x3a, 0x38, 0x9d, 0x21, 0x1f, 0xa4, 0xe8, 0x7b, 0x1c, 0x87, 0x8e, 0x43, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0x14, 0xa7, 0x83, 0xd3, 0x19, 0xf2, 0x41, 0x92, 0xc6, 0xc7, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x06, 0xee, 0xa7, 0x83, 0x73, 0xde, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x12, 0x0d, 0x67, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0xb2, 0xc1, 0x20, 0x79, 0x39, 0x38, 0xe7, 0x1d, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x8c, 0xd2, 0xc1, 0x39, 0xef, 0xf8, 0xe0, 0xbc, 0xa1, 0x7e, 0x90, 0x96, 0xf6, 0x71, 0x1c, 0x3a, 0x0e, 0x0d, 0x82, 0x0d, 0x12, 0xe5, 0x3e, 0x06, 0xc1, 0xe2, 0xb0, 0x1b, 0xa4, 0xe3, 0x7d, 0x6c, 0x48, 0xd5, 0x0c, 0x82, 0x15, 0x04, 0x1b, 0xa4, 0x1a, 0x7e, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0xfe, 0x1c, 0x1c, 0x33, 0x96, 0x0f, 0xd2, 0x32, 0x3f, 0x0e, 0x7b, 0x85, 0xc7, 0xa1, 0x05, 0xc1, 0x06, 0xa9, 0x86, 0x1f, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x48, 0x3e, 0x4d, 0x39, 0x48, 0x0f, 0xfe, 0x38, 0xec, 0x15, 0x1e, 0x87, 0x16, 0x04, 0x1b, 0xa4, 0x1a, 0x7e, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0xf9, 0x34, 0xe5, 0x20, 0x55, 0xfd, 0xe3, 0xb0, 0x57, 0x78, 0x1c, 0x1a, 0x04, 0x1b, 0xa4, 0x1a, 0x7e, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0xf9, 0x34, 0xe5, 0x20, 0x99, 0x02, 0xe4, 0xb0, 0x57, 0x78, 0x1c, 0x1a, 0x04, 0x0b, 0x82, 0x0d, 0xd2, 0x5e, 0x40, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xfc, 0x90, 0x0d, 0xc6, 0x86, 0xeb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x20, 0x78, 0x07, 0xc7, 0x8c, 0xe5, 0x83, 0x14, 0x27, 0x90, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0xc4, 0x83, 0x60, 0x41, 0x32, 0x50, 0xf4, 0x0e, 0xd2, 0x82, 0x46, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0xea, 0xd2, 0x41, 0x5a, 0xd0, 0xc8, 0x41, 0x62, 0x2a, 0xc8, 0xc1, 0x78, 0xd3, 0x39, 0x0e, 0x1d, 0x14, 0xf0, 0x51, 0xc7, 0xb7, 0x41, 0xb0, 0x21, 0x86, 0x83, 0x60, 0x83, 0xd4, 0x67, 0x90, 0x41, 0xb0, 0x38, 0xec, 0x06, 0x89, 0x31, 0x21, 0x0b, 0x92, 0x21, 0x83, 0x68, 0x41, 0x3c, 0x08, 0x16, 0x24, 0x03, 0xf7, 0xd3, 0xc1, 0x69, 0x43, 0xf9, 0x20, 0x4d, 0x29, 0xe4, 0x20, 0x79, 0x45, 0x64, 0x10, 0x2c, 0x08, 0x36, 0x48, 0x6f, 0x04, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x7a, 0xb8, 0xc8, 0x41, 0x4a, 0x95, 0xc8, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xe9, 0xe1, 0x22, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0x55, 0xef, 0xe0, 0xb4, 0xa1, 0x7c, 0x90, 0xfe, 0x27, 0x72, 0x10, 0xf6, 0xd4, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0x58, 0x10, 0x6c, 0x90, 0xd2, 0xa2, 0x72, 0x90, 0x18, 0x2a, 0x32, 0x08, 0x16, 0x04, 0x1b, 0x24, 0x0c, 0xa9, 0x0c, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x38, 0xf7, 0x0e, 0xd2, 0x82, 0x46, 0x0e, 0x52, 0xd4, 0x45, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xe9, 0x01, 0x2b, 0x07, 0x49, 0x13, 0x23, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x3d, 0x60, 0xe5, 0x20, 0xc1, 0x56, 0xe4, 0x38, 0x74, 0x1c, 0x1a, 0x04, 0x0b, 0xbb, 0xb0, 0x0b, 0x82, 0x05, 0xc9, 0xa0, 0x66, 0x02, 0xef, 0xff, 0xff, 0x3f, 0x48, 0x2f, 0x1a, 0x59, 0xd8, 0x05, 0xc1, 0x82, 0x64, 0x20, 0x28, 0x07, 0xc9, 0x4a, 0x2b, 0x07, 0xc9, 0x60, 0x23, 0x87, 0x74, 0xee, 0xe1, 0x68, 0xdf, 0x20, 0xf5, 0x6e, 0x64, 0xd8, 0x85, 0x5d, 0x10, 0x6c, 0x90, 0x74, 0xb4, 0x72, 0x90, 0xe4, 0x41, 0xb2, 0xb0, 0x0b, 0x82, 0x0d, 0x52, 0xae, 0x56, 0x0e, 0x52, 0x6e, 0x48, 0x0e, 0xe9, 0xdc, 0xc3, 0xd1, 0xbe, 0x41, 0x8a, 0x13, 0xc9, 0xb0, 0x0b, 0xbb, 0x20, 0xd8, 0x20, 0xe9, 0x68, 0xe5, 0x20, 0x21, 0x98, 0x64, 0x61, 0x17, 0x04, 0x1b, 0xa4, 0x5c, 0xad, 0x1c, 0x24, 0x68, 0x93, 0x1c, 0xd2, 0xb9, 0x87, 0xa3, 0xfd, 0x20, 0x19, 0x9e, 0xe4, 0x20, 0x89, 0xb8, 0xe4, 0xf8, 0x76, 0x7c, 0x3b, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0x7d, 0x0e, 0x2d, 0x2c, 0x1e, 0x52, 0x4b, 0xc7, 0xe3, 0x41, 0xb0, 0x41, 0x52, 0xc5, 0xc9, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0xd9, 0xe4, 0x64, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x9c, 0x77, 0x87, 0xe4, 0xd2, 0x41, 0x22, 0xe9, 0xc9, 0x71, 0xe8, 0x38, 0x34, 0x08, 0x36, 0x48, 0xaa, 0x38, 0x19, 0x04, 0x1b, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x24, 0xf5, 0x9d, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x81, 0xf6, 0x77, 0x87, 0xe4, 0xd2, 0x41, 0x7a, 0xd3, 0xc9, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0xde, 0x1c, 0x5a, 0x78, 0x48, 0x2d, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xec, 0x86, 0xae, 0x99, 0x0b, 0x82, 0x05, 0xc9, 0xc0, 0xd4, 0x1d, 0x92, 0x4b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x06, 0x7e, 0x5b, 0xd8, 0x1c, 0x7a, 0x48, 0xd5, 0x1c, 0x87, 0x06, 0xc1, 0x06, 0x49, 0x54, 0x2c, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x06, 0xfe, 0x1c, 0x5a, 0x58, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x58, 0xea, 0x3b, 0xac, 0xd0, 0x1e, 0x1a, 0xb5, 0x1c, 0x87, 0x8e, 0xc7, 0x0b, 0xbf, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x7e, 0x41, 0xb4, 0x20, 0x1d, 0x04, 0x0b, 0x92, 0x81, 0xe2, 0x74, 0x58, 0xa1, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x14, 0x8b, 0x36, 0x18, 0xf3, 0x77, 0x87, 0x7c, 0xed, 0x71, 0xe8, 0x78, 0x3c, 0x08, 0x56, 0xf8, 0x0d, 0x12, 0xc5, 0x3a, 0x06, 0xd1, 0xc2, 0x1e, 0x8c, 0xe6, 0xf3, 0xe3, 0xf1, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x04, 0x1b, 0x04, 0x28, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x21, 0x7b, 0x7e, 0x90, 0xa4, 0x57, 0x71, 0x1c, 0x3a, 0x1e, 0x0f, 0x82, 0x35, 0x48, 0x89, 0xec, 0xd8, 0x20, 0xd5, 0xb2, 0xe3, 0x20, 0xad, 0xb4, 0x63, 0x10, 0x2c, 0x08, 0x36, 0x18, 0x43, 0x0b, 0x07, 0xe9, 0x18, 0x28, 0x83, 0x60, 0x41, 0xb0, 0x41, 0xb2, 0xb0, 0xc3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x81, 0x1f, 0x32, 0xfc, 0xc6, 0xf3, 0x35, 0x0e, 0x1d, 0x12, 0x33, 0x1b, 0xa4, 0xc4, 0x77, 0xac, 0x20, 0xd8, 0x60, 0x3c, 0xeb, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0xc4, 0x48, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x63, 0x70, 0x80, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x30, 0x9e, 0x75, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x24, 0x9a, 0x78, 0x0c, 0xbf, 0xf1, 0x7c, 0x0c, 0x0e, 0x80, 0xe3, 0xd0, 0x71, 0xe8, 0x20, 0x6d, 0xab, 0xe5, 0x38, 0x74, 0x88, 0xe1, 0x8a, 0x41, 0x00, 0x06, 0xc1, 0x82, 0x60, 0x83, 0x94, 0x2b, 0x8f, 0x41, 0x32, 0xf8, 0x37, 0x88, 0x16, 0xf6, 0x60, 0x5c, 0xa3, 0x1f, 0x87, 0x0e, 0x06, 0xb6, 0xe8, 0x21, 0x86, 0xc7, 0xa1, 0x41, 0xb0, 0x20, 0xd8, 0xe0, 0x80, 0xf5, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0x5c, 0x53, 0x7c, 0x48, 0x1d, 0x1c, 0x87, 0x06, 0xc1, 0x62, 0x00, 0xe0, 0xff, 0x88, 0xb8, 0xa2, 0x5c, 0x63, 0xbe, 0x28, 0x0a, 0x35, 0x97, 0xbd, 0x8f, 0x44, 0x12, 0xdd, 0xc4, 0xbd, 0xec, 0x34, 0xb1, 0x3f, 0xef, 0x03, 0xd7, 0xf2, 0x6e, 0x27, 0x06, 0x96, 0x6e, 0xd7, 0xa6, 0xe3, 0xd4, 0x22, 0xcd, 0x6f, 0x09, 0x5b, 0xe5, 0x64, 0x40, 0x17, 0xd8, 0xc6, 0x47, 0xc4, 0x67, 0x6d, 0x3e, 0x65, 0xbc, 0x92, 0x0a, 0xfe, 0x48, 0x62, 0x04, 0xb6, 0x69, 0x57, 0x7b, 0x71, 0xac, 0x0a, 0x09, 0x0c, 0x8c, 0x62, 0xaa, 0x1e, 0x60, 0xfb, 0xbe, 0xc1, 0x15, 0x05, 0x6c, 0x0d, 0x4a, 0x30, 0xca, 0x92, 0x3b, 0xf9, 0x16, 0xc6, 0x90, 0x88, 0xd3, 0xfe, 0x57, 0x0f, 0xf7, 0x31, 0x54, 0xbd, 0x25, 0xee, 0xc9, 0xd3, 0x75, 0xf9, 0xca, 0xc5, 0x5a, 0x5a, 0xec, 0xf8, 0xc7, 0x7a, 0x03, 0xd6, 0x48, 0x1c, 0x97, 0x9c, 0x1a, 0x70, 0x6f, 0x52, 0x9a, 0xa4, 0x3d, 0xd3, 0xc5, 0x6f, 0x06, 0x4b, 0x2b, 0xc5, 0x7b, 0x06, 0xa7, 0x6d, 0x92, 0x8f, 0x97, 0x3c, 0xe1, 0x18, 0x1e, 0xf9, 0xbe, 0xd7, 0x56, 0x33, 0x2e, 0x1a, 0x77, 0x06, 0x3f, 0x94, 0x71, 0xb2, 0xde, 0x31, 0x87, 0x32, 0x90, 0xd4, 0x09, 0xac, 0x64, 0xbd, 0xb1, 0xa4, 0xb7, 0x0c, 0x92, 0x9b, 0xba, 0xa9, 0x12, 0xd2, 0x29, 0x51, 0xef, 0x07, 0xf5, 0x72, 0xa7, 0xc2, 0x72, 0xd5, 0x4e, 0x45, 0x0c, 0x6a, 0x23, 0xe6, 0xdb, 0xad, 0x7e, 0x9b, 0xb9, 0x4b, 0x45, 0xf9, 0x60, 0x42, 0xc8, 0xd0, 0xb6, 0xb4, 0x19, 0xc7, 0xa0, 0xfe, 0x84, 0xec, 0x63, 0x22, 0x9f, 0x0c, 0xc0, 0x92, 0x3b, 0xbc, 0xfb, 0x1e, 0xff, 0x65, 0xfd, 0x0a, 0x3f, 0xa2, 0xf6, 0xcc, 0x2f, 0x80, 0x1b, 0x97, 0x9c, 0x2a, 0x4c, 0x1e, 0x45, 0x9e, 0x56, 0xbf, 0x09, 0x0e, 0x80, 0x47, 0x8d, 0x29, 0x1b, 0xc0, 0xb9, 0x39, 0x28, 0x9c, 0xa5, 0xa4, 0x50, 0xf0, 0xbf, 0x48, 0x1b, 0x15, 0x2a, 0xdc, 0x9e, 0x98, 0x24, 0x9b, 0x70, 0xe1, 0x84, 0x6c, 0xb8, 0xb4, 0xab, 0x10, 0x6b, 0xf1, 0xb7, 0xb1, 0x34, 0x7d, 0xcf, 0x56, 0x76, 0x4e, 0x34, 0xe0, 0x4c, 0x79, 0x8f, 0xbd, 0x2e, 0x52, 0xcd, 0x29, 0x94, 0xa1, 0xca, 0xde, 0xf1, 0xec, 0x2a, 0xa8, 0xd9, 0x99, 0xbb, 0xb6, 0x1f, 0xb9, 0x24, 0x0b, 0x07, 0xee, 0xd4, 0x08, 0x52, 0x14, 0xb2, 0xc8, 0x49, 0x92, 0x0d, 0xc4, 0x33, 0x85, 0xa2, 0xff, 0x8a, 0x06, 0xc0, 0x08, 0xf1, 0x2e, 0x99, 0x69, 0xa0, 0x46, 0x5e, 0xe2, 0x43, 0xc3, 0x2d, 0x2e, 0x09, 0xc3, 0xf8, 0x52, 0x19, 0x8c, 0x46, 0xb1, 0x1d, 0x63, 0x48, 0xbd, 0x5b, 0x67, 0xa0, 0x4b, 0x46, 0x43, 0xa4, 0x96, 0x55, 0x91, 0x18, 0x64, 0x5a, 0xab, 0x80, 0xc4, 0x5d, 0x15, 0xd6, 0x38, 0xd0, 0xe3, 0x46, 0xef, 0xca, 0xc0, 0x81, 0xaa, 0x41, 0x20, 0x43, 0x4b, 0xe3, 0x5a, 0x04, 0x93, 0x66, 0x4c, 0xad, 0x06, 0x45, 0x21, 0xb0, 0xdd, 0x78, 0x64, 0xae, 0x3b, 0x7e, 0x33, 0xdd, 0x21, 0x9d, 0xa0, 0x22, 0x6d, 0x86, 0xd7, 0xf2, 0xc2, 0xd2, 0x8c, 0x69, 0x25, 0x17, 0xcf, 0x32, 0x70, 0xe4, 0x2c, 0x2b, 0x06, 0x8d, 0x2b, 0xa9, 0x62, 0x3b, 0xcd, 0x8d, 0x8f, 0xdd, 0x3d, 0x29, 0x73, 0x6e, 0x8d, 0xe2, 0xca, 0x5a, 0xcf, 0xbf, 0xb9, 0xa0, 0xf1, 0xcb, 0xbe, 0x77, 0xb9, 0x0b, 0x3e, 0xd2, 0x81, 0xbd, 0x5c, 0x0c, 0xbd, 0x8d, 0x95, 0xe2, 0xc9, 0xad, 0xc2, 0x87, 0x52, 0xe0, 0x21, 0x13, 0xb2, 0xe7, 0x90, 0x69, 0x20, 0x08, 0x1c, 0x33, 0xa2, 0x78, 0x8c, 0x8d, 0xe8, 0xff, 0xfb, 0x42, 0xa6, 0xf7, 0x0a, 0x7a, 0xaf, 0xb3, 0x41, 0x91, 0x56, 0xe4, 0x19, 0xcb, 0xde, 0x8f, 0xe6, 0xfb, 0xae, 0x4c, 0xc9, 0x8d, 0xcb, 0xe3, 0xc5, 0x19, 0x73, 0x86, 0x99, 0xa8, 0x3b, 0xfb, 0x9c, 0x28, 0x1f, 0x08, 0x03, 0x87, 0x1c, 0xe3, 0x1a, 0x46, 0x7b, 0xac, 0x83, 0x37, 0x5b, 0xf7, 0x69, 0xab, 0xe3, 0x45, 0xbb, 0xb9, 0xff, 0x3d, 0xf5, 0xd5, 0xeb, 0xbe, 0x5d, 0xc8, 0xa9, 0x9e, 0xc1, 0x1b, 0x98, 0x62, 0x22, 0x8b, 0x16, 0xf7, 0x8d, 0x29, 0xb8, 0x36, 0xe4, 0xfb, 0x12, 0x60, 0xfe, 0x44, 0x6c, 0x1c, 0x71, 0x4c, 0xd4, 0x2c, 0xc4, 0x6d, 0x10, 0xf6, 0x11, 0x8c, 0xd4, 0xdf, 0x6d, 0xa3, 0x4c, 0x92, 0x1c, 0x03, 0xed, 0xad, 0x2a, 0xcb, 0xf0, 0xfa, 0x26, 0x57, 0x28, 0xf8, 0x7a, 0xf2, 0x30, 0x35, 0x40, 0x70, 0x12, 0x9f, 0x75, 0x0c, 0xd9, 0x0a, 0xf9, 0x2c, 0xfb, 0x52, 0x17, 0x33, 0xa9, 0xf8, 0x95, 0xf1, 0x73, 0xa6, 0xfc, 0x65, 0xb1, 0xeb, 0x5b, 0xeb, 0xac, 0xbe, 0x2d, 0x7f, 0x5d, 0x60, 0x1d, 0x29, 0x31, 0x66, 0x10, 0xb1, 0x83, 0x60, 0x31, 0x00, 0xff, 0x11, 0x92, 0x79, 0xe7, 0xcf, 0xcc, 0x13, 0xd4, 0x76, 0x4e, 0x95, 0x09, 0x0b, 0x5d, 0xcf, 0x76, 0x57, 0xf0, 0x29, 0xfd, 0xe5, 0xe6, 0xdd, 0x78, 0xe2, 0x6d, 0x3a, 0xbe, 0x74, 0xea, 0x9f, 0x4a, 0xa3, 0x05, 0xcd, 0x5b, 0xff, 0xa4, 0x1c, 0xa2, 0x3e, 0xd8, 0x7c, 0x56, 0x18, 0xd1, 0x0a, 0x36, 0xd7, 0x7a, 0x83, 0xf6, 0x57, 0xb3, 0x07, 0x3f, 0xf2, 0x42, 0xfc, 0x26, 0x32, 0x9a, 0xc1, 0xb7, 0x41, 0xb0, 0x21, 0x86, 0x83, 0x60, 0x71, 0xd8, 0x0d, 0xd2, 0x7d, 0x3d, 0x16, 0x04, 0x0b, 0x92, 0x81, 0xf3, 0xe9, 0xe0, 0x98, 0x55, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xc8, 0x9e, 0x6f, 0xd8, 0x2b, 0x9c, 0x60, 0xed, 0xff, 0x38, 0x34, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x0d, 0x52, 0x24, 0x3e, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x9c, 0x6b, 0x8a, 0x0f, 0x92, 0x48, 0x3e, 0x8e, 0x43, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x38, 0x9f, 0x0e, 0xce, 0x5e, 0xc6, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0xec, 0xf9, 0x41, 0x4a, 0xf6, 0xc2, 0x71, 0x68, 0x10, 0x6c, 0x90, 0x28, 0xf7, 0x31, 0x08, 0x16, 0x87, 0xdd, 0x20, 0x1d, 0xef, 0x63, 0x43, 0xaa, 0x66, 0x10, 0xac, 0x20, 0xd8, 0x20, 0xd5, 0xf0, 0x63, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x47, 0xda, 0xe4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x54, 0xcd, 0x41, 0xb9, 0xe8, 0x73, 0x1c, 0x3a, 0xec, 0x15, 0x1e, 0x87, 0x16, 0x04, 0x1b, 0xa4, 0x1a, 0x7e, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0x48, 0x9b, 0x7c, 0xe8, 0x18, 0x7f, 0xd8, 0x2b, 0x3c, 0x0e, 0x6d, 0x90, 0xfa, 0xff, 0x31, 0x08, 0x36, 0x48, 0x35, 0xfc, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x91, 0x36, 0xf9, 0x60, 0x40, 0xa2, 0x1f, 0xf6, 0x0a, 0x8f, 0x43, 0x83, 0x60, 0x41, 0xb0, 0x41, 0x92, 0x11, 0xc8, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x14, 0x12, 0x49, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x06, 0x7e, 0xc8, 0xc1, 0xc8, 0x70, 0x3d, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x0a, 0x89, 0xa4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x03, 0x3f, 0x64, 0x83, 0x03, 0x11, 0xff, 0x21, 0x9a, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0xde, 0x77, 0x3a, 0x38, 0x50, 0x24, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x78, 0x48, 0x2e, 0x1d, 0xa2, 0x79, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x06, 0xc1, 0x82, 0x60, 0x41, 0x32, 0x10, 0xbc, 0x83, 0xd3, 0x86, 0xf2, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x4b, 0x60, 0xe8, 0xff, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xf8, 0x21, 0x1b, 0x24, 0xaa, 0x8d, 0x1c, 0x7a, 0x08, 0x1d, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x69, 0xe3, 0x31, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x06, 0x7e, 0xc8, 0xc2, 0x6f, 0x3c, 0x1f, 0x43, 0xfb, 0xa1, 0x87, 0xd0, 0x71, 0x68, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0xf7, 0x9d, 0x0e, 0x4e, 0x1b, 0xca, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x7e, 0x30, 0x7a, 0xad, 0x0e, 0x3d, 0x84, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0x58, 0x10, 0x6c, 0x90, 0x98, 0x37, 0x32, 0x08, 0x36, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x28, 0x72, 0x15, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xec, 0x15, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x50, 0xca, 0xec, 0x1c, 0x52, 0x35, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xe2, 0x41, 0xb0, 0x41, 0xc2, 0x90, 0xca, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x52, 0xad, 0x54, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x83, 0xd1, 0x7c, 0x7e, 0x30, 0xde, 0x74, 0x0e, 0xa9, 0x83, 0xe3, 0xd0, 0xc1, 0x40, 0xa4, 0x3e, 0x0e, 0x1d, 0x24, 0xaf, 0x88, 0x1c, 0xdf, 0x06, 0xc1, 0x86, 0x18, 0x0e, 0x82, 0x35, 0x48, 0x7f, 0x06, 0xd9, 0x20, 0x91, 0x1c, 0x64, 0x83, 0xf4, 0x7c, 0x90, 0x0d, 0x52, 0x1d, 0x42, 0x36, 0x48, 0x1e, 0x09, 0x59, 0x10, 0x6c, 0x90, 0x1c, 0x0d, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x44, 0xc3, 0x39, 0x18, 0x6f, 0x3a, 0xc7, 0xa1, 0x05, 0xc1, 0x06, 0xc9, 0xd1, 0x20, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0xec, 0xf9, 0xc1, 0x78, 0xd3, 0x39, 0x0e, 0x0d, 0x82, 0x0d, 0x92, 0xa3, 0x41, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x8c, 0x6b, 0xf4, 0x83, 0xf1, 0xa6, 0x73, 0x1c, 0x1a, 0x04, 0x8b, 0xc3, 0x6e, 0x90, 0x18, 0x13, 0xb2, 0x20, 0x19, 0x32, 0x88, 0x16, 0xc4, 0x83, 0x60, 0x83, 0x14, 0xa1, 0x90, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x43, 0xf6, 0x7c, 0xf8, 0x8d, 0xe7, 0x1b, 0xa4, 0x5f, 0x85, 0x6c, 0x90, 0x0a, 0x18, 0xb2, 0x41, 0x92, 0x6a, 0xc8, 0x06, 0x49, 0xd3, 0x21, 0x0b, 0x82, 0x0d, 0x92, 0xb3, 0x42, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x24, 0x0d, 0x20, 0x1c, 0xa4, 0x34, 0x88, 0x1c, 0x87, 0x16, 0x04, 0x1b, 0x24, 0x67, 0x85, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x97, 0xa0, 0x7c, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x90, 0x6a, 0xf8, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x44, 0xc3, 0x39, 0x18, 0x88, 0xd4, 0xc7, 0xa1, 0xe3, 0xd0, 0x82, 0x60, 0x83, 0xe4, 0xac, 0x90, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x12, 0x9c, 0xdf, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xa4, 0x1a, 0x7e, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xb2, 0xe7, 0x07, 0x03, 0x91, 0xfa, 0x38, 0x74, 0x1c, 0x5a, 0x10, 0x6c, 0x90, 0x9c, 0x15, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0x82, 0xfb, 0x7b, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x54, 0xc3, 0x8f, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xe3, 0x1a, 0xfd, 0x60, 0x20, 0x52, 0x1f, 0x87, 0x8e, 0x43, 0x87, 0x18, 0x1e, 0x87, 0x0e, 0x92, 0x57, 0x44, 0x06, 0xc1, 0x82, 0x60, 0x41, 0x32, 0x10, 0xbc, 0x83, 0x73, 0xfd, 0xf1, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x94, 0x0e, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x06, 0x7e, 0xc8, 0xc2, 0x6f, 0x3c, 0x1f, 0xc3, 0xf8, 0x90, 0xb5, 0x3b, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x4a, 0x87, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x03, 0x3f, 0x64, 0xe1, 0x37, 0x9e, 0x8f, 0xa1, 0xe2, 0x90, 0xb5, 0x3b, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xd2, 0x61, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc0, 0x0f, 0xd9, 0x20, 0x1d, 0x88, 0xe4, 0x90, 0xb5, 0x3b, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0x83, 0x60, 0x41, 0xb0, 0x41, 0x92, 0x11, 0xc8, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0x73, 0xef, 0xe0, 0x40, 0x91, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x10, 0xff, 0x43, 0x0b, 0xa0, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc6, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0xad, 0x92, 0xe6, 0x20, 0x34, 0xa5, 0x87, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x5a, 0x25, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0x20, 0x91, 0x3a, 0xe3, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x0d, 0x82, 0x05, 0xc1, 0x12, 0x08, 0xfc, 0xff, 0x83, 0xc1, 0xe9, 0x33, 0x08, 0x16, 0x04, 0x1b, 0xa4, 0xb4, 0xa8, 0x0c, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x04, 0x8a, 0xfe, 0xff, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x03, 0x3f, 0x64, 0x83, 0xc4, 0xf9, 0x8f, 0x83, 0x04, 0x91, 0x8e, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc6, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x3d, 0xa1, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc0, 0x0f, 0x59, 0xf8, 0x8d, 0xe7, 0x63, 0x98, 0x1c, 0x24, 0x88, 0x74, 0x1c, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x7a, 0x42, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x81, 0x1f, 0xb2, 0xf0, 0x1b, 0xcf, 0xc7, 0xd0, 0x74, 0x90, 0x20, 0xd2, 0x71, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x06, 0xc1, 0x82, 0x60, 0x41, 0x32, 0x10, 0xbc, 0x83, 0xb4, 0xa0, 0x91, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xa4, 0x07, 0xac, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x97, 0x60, 0xbd, 0x7f, 0x82, 0xf6, 0xfd, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xd2, 0x03, 0x56, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x50, 0x98, 0x2b, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x0f, 0x12, 0x31, 0x6b, 0x8e, 0x43, 0x13, 0xbc, 0xdf, 0x7f, 0x1c, 0x3a, 0x0e, 0x0d, 0x82, 0x05, 0xc1, 0x12, 0x38, 0xfc, 0xff, 0x0f, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x25, 0x30, 0xfe, 0xfe, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xec, 0x15, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0xd5, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x25, 0x90, 0xfa, 0xff, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x70, 0x4b, 0x9a, 0xe0, 0xfd, 0xff, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x48, 0xc2, 0xb0, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x50, 0xb8, 0x25, 0x1d, 0x9c, 0x65, 0x8f, 0x8f, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xf1, 0x30, 0x07, 0x85, 0x5b, 0xd2, 0x20, 0x5a, 0xd8, 0x05, 0xc1, 0x12, 0x48, 0xfc, 0xff, 0x3f, 0x48, 0x55, 0x6b, 0xd8, 0xa0, 0x24, 0x68, 0xd8, 0x20, 0xbd, 0xb1, 0x61, 0x83, 0x74, 0xbc, 0x86, 0x05, 0xc1, 0x06, 0x29, 0x60, 0x36, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x25, 0x68, 0xf7, 0x7f, 0x48, 0x1d, 0x1c, 0x87, 0x96, 0xa0, 0xbd, 0xff, 0x12, 0xbc, 0xef, 0x3f, 0x81, 0xe0, 0xf7, 0x3f, 0x08, 0x78, 0xff, 0xe3, 0xdb, 0xf1, 0xed, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x07, 0xfc, 0x39, 0xb4, 0x30, 0xf6, 0x90, 0x5a, 0x3a, 0x1e, 0x2f, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x6c, 0x90, 0x1c, 0xbf, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x82, 0x60, 0x83, 0x11, 0x15, 0x78, 0x90, 0xe2, 0xe7, 0x70, 0x48, 0x1d, 0x1c, 0x87, 0x8e, 0xc7, 0x2b, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x6c, 0x90, 0x86, 0xc2, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x0d, 0x85, 0xe5, 0xd0, 0xa8, 0xe5, 0x38, 0x74, 0x3c, 0x5e, 0xf8, 0x05, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0xf0, 0x1b, 0x24, 0x84, 0xb2, 0x0c, 0x82, 0x0d, 0x92, 0xc1, 0x3a, 0x06, 0xc1, 0x06, 0x49, 0xf0, 0x2c, 0x83, 0x60, 0x83, 0x54, 0x7f, 0x96, 0x41, 0xb0, 0x20, 0xd8, 0x20, 0x59, 0xd8, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc0, 0x0f, 0x19, 0x7e, 0xe3, 0xf9, 0x06, 0x49, 0x1d, 0x2d, 0x07, 0xe9, 0xf0, 0x1d, 0xc7, 0xa1, 0x41, 0xb0, 0x41, 0x32, 0x9d, 0xc7, 0x20, 0x58, 0x0c, 0x00, 0x02, 0x00, 0xf3, 0x45, 0x51, 0x28, 0x92, 0xe8, 0x26, 0xee, 0x79, 0x1f, 0xb8, 0xb6, 0x74, 0xbb, 0x36, 0x7d, 0x4b, 0xd8, 0x2a, 0x27, 0x3e, 0x22, 0x3e, 0x8b, 0x54, 0xf0, 0x47, 0xb2, 0xda, 0x8b, 0x63, 0x15, 0x53, 0xf5, 0x00, 0x3b, 0x60, 0x6b, 0x50, 0xc2, 0xb7, 0x30, 0x86, 0x64, 0xb8, 0x8f, 0xa1, 0x8a, 0xae, 0xcb, 0x57, 0xce, 0x3f, 0xd6, 0x1b, 0xf0, 0xd4, 0x80, 0x7b, 0x93, 0x2e, 0x7e, 0x33, 0x38, 0x38, 0x6d, 0x93, 0xdc, 0xf0, 0xc8, 0xf7, 0xdd, 0xb8, 0x33, 0xf8, 0x81, 0x39, 0x94, 0x81, 0xe4, 0x8d, 0x25, 0xbd, 0x45, 0x95, 0x90, 0x4e, 0x89, 0x3b, 0x15, 0x96, 0x4b, 0x1b, 0x31, 0xdf, 0x4e, 0x2a, 0xca, 0x07, 0xb3, 0xcd, 0x38, 0x06, 0x15, 0xf9, 0x64, 0x00, 0xf6, 0xf8, 0x2f, 0xeb, 0x77, 0x7e, 0x01, 0xdc, 0xf8, 0x28, 0xf2, 0xb4, 0x3a, 0x6a, 0x4c, 0xd9, 0xe0, 0x2c, 0x25, 0x85, 0xa2, 0x50, 0xe1, 0xf6, 0x04, 0x27, 0x64, 0xc3, 0x85, 0xbf, 0x8d, 0xa5, 0x69, 0xa2, 0x01, 0x67, 0x8a, 0x6a, 0x4e, 0xa1, 0x6c, 0x57, 0x41, 0xcd, 0xce, 0x25, 0x59, 0x38, 0xb0, 0x90, 0x45, 0x4e, 0x32, 0x14, 0xfd, 0x57, 0x74, 0xc9, 0x4c, 0x03, 0x15, 0x6e, 0x71, 0x49, 0x78, 0x34, 0x8a, 0xed, 0x38, 0x03, 0x5d, 0x32, 0x9a, 0xc4, 0x20, 0xd3, 0xba, 0xb0, 0xc6, 0x81, 0x1e, 0x0e, 0x54, 0x0d, 0xc2, 0x22, 0x98, 0x34, 0x03, 0x81, 0xed, 0xc6, 0x83, 0xe9, 0x0e, 0xe9, 0xa4, 0x96, 0x17, 0x96, 0x66, 0x96, 0x81, 0x23, 0x47, 0x49, 0x15, 0xdb, 0xe9, 0x49, 0x99, 0x73, 0x6b, 0xfe, 0xcd, 0x05, 0xcd, 0x5d, 0xf0, 0x91, 0xee, 0x6d, 0xac, 0x14, 0x8f, 0x02, 0x0f, 0x99, 0x10, 0x41, 0xe0, 0x98, 0x51, 0xff, 0xdf, 0x17, 0x72, 0x9d, 0x0d, 0x8a, 0xf4, 0x7e, 0x34, 0xdf, 0x57, 0x1e, 0x2f, 0xce, 0x38, 0x08, 0x16, 0x03, 0xf8, 0x3f, 0x33, 0x4f, 0x50, 0x2b, 0x74, 0x3d, 0xdb, 0x95, 0x9b, 0x77, 0xe3, 0xd1, 0xa9, 0x7f, 0x2a, 0xfd, 0x93, 0x72, 0x88, 0x62, 0x44, 0x2b, 0xd8, 0x5c, 0xcd, 0x1e, 0xfc, 0xc8, 0x68, 0x06, 0xdf, 0x06, 0xc1, 0x86, 0x18, 0x0e, 0x82, 0xc5, 0x61, 0x37, 0x48, 0xf7, 0xf5, 0x58, 0x10, 0x6c, 0x90, 0xc6, 0x07, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x44, 0xc3, 0x39, 0x48, 0x73, 0x84, 0x39, 0x0e, 0x0d, 0x82, 0x05, 0xc1, 0x06, 0x49, 0x10, 0x1f, 0x83, 0x60, 0x41, 0xb0, 0x41, 0xfa, 0x2c, 0xcc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x12, 0x0d, 0xe7, 0x20, 0x25, 0x7b, 0xe1, 0x38, 0x34, 0x08, 0x36, 0x48, 0x94, 0xfb, 0x18, 0x04, 0x8b, 0xc3, 0x2e, 0xdc, 0x06, 0xe9, 0x50, 0x1e, 0x87, 0xd4, 0xc1, 0x86, 0x54, 0xcd, 0x20, 0xd8, 0x20, 0xd5, 0x1b, 0x66, 0x10, 0x2c, 0x08, 0x36, 0x48, 0x32, 0x02, 0x19, 0x04, 0x1b, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x42, 0x22, 0x69, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc0, 0x0f, 0xd9, 0x60, 0x5c, 0xa3, 0x1f, 0xa2, 0x79, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x14, 0x12, 0x49, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x06, 0x7e, 0xc8, 0x06, 0xc9, 0x45, 0x35, 0x87, 0x68, 0x1e, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0xea, 0x69, 0xcc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa4, 0xe0, 0x8e, 0x43, 0x34, 0x8f, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0x58, 0x10, 0x6c, 0x90, 0x90, 0x1c, 0x33, 0x08, 0x36, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x69, 0xe3, 0x31, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x06, 0x7e, 0xc8, 0xc2, 0x6f, 0x3c, 0x1f, 0xc3, 0xe2, 0xd0, 0x43, 0xe8, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0xb2, 0x76, 0xcc, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x48, 0x8b, 0x91, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xf1, 0x20, 0xc8, 0xe2, 0x0f, 0x3d, 0x84, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0xd8, 0x20, 0x39, 0x4a, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xe2, 0x41, 0xb0, 0x41, 0xc2, 0x90, 0xca, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x52, 0xad, 0x54, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x83, 0xc2, 0x0e, 0xe7, 0x60, 0xbc, 0xe9, 0x1c, 0x52, 0x07, 0xc7, 0xa1, 0x83, 0x81, 0x48, 0x7d, 0x1c, 0x3a, 0x48, 0x5e, 0x11, 0x39, 0xbe, 0x0d, 0x82, 0x0d, 0x31, 0x1c, 0x04, 0x1b, 0x24, 0x45, 0xcb, 0x0c, 0x82, 0xc5, 0x61, 0x17, 0x6e, 0x83, 0x74, 0x28, 0x8f, 0x43, 0xaa, 0x66, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x88, 0x07, 0xc1, 0x06, 0x29, 0x42, 0x21, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x4a, 0x34, 0x9c, 0x83, 0x64, 0xa2, 0x99, 0xe3, 0xd0, 0x41, 0xf2, 0x8a, 0xc8, 0x20, 0x58, 0x10, 0x6c, 0x90, 0x80, 0x3f, 0x33, 0x08, 0x36, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xa5, 0xc3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x81, 0x1f, 0xb2, 0xa1, 0xf1, 0xfc, 0x21, 0x6b, 0x77, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x94, 0x0e, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x06, 0x7e, 0xc8, 0x06, 0xa5, 0x0a, 0xd0, 0x21, 0x6b, 0x77, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xa5, 0xc3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x81, 0x1f, 0xb2, 0xf0, 0x1b, 0xcf, 0xc7, 0x30, 0x3b, 0x64, 0xed, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0xd8, 0x20, 0xa1, 0x8f, 0x66, 0x10, 0x6c, 0x90, 0x64, 0x4e, 0x33, 0x08, 0x16, 0x04, 0x1b, 0xa4, 0xb4, 0xa8, 0x0c, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x7a, 0x42, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x81, 0x1f, 0xb2, 0xc1, 0x90, 0x3d, 0x3f, 0x48, 0x10, 0xe9, 0x38, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xd2, 0x13, 0x6a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xfc, 0x90, 0x0d, 0xce, 0x7a, 0xf9, 0x07, 0x09, 0x22, 0x1d, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x90, 0x9e, 0x50, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xe0, 0x87, 0x2c, 0xfc, 0xc6, 0xf3, 0x31, 0x2c, 0x0f, 0x12, 0x44, 0x3a, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x41, 0xd2, 0x5d, 0xcd, 0xf1, 0xed, 0xf8, 0x76, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0xfe, 0x1c, 0x5a, 0x58, 0x7e, 0x48, 0x2d, 0x1d, 0x8f, 0x87, 0x5f, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0x05, 0xc1, 0x06, 0x01, 0x6f, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0x35, 0xec, 0x64, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x11, 0x15, 0x38, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x28, 0x16, 0x1d, 0xb2, 0x76, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0x58, 0x90, 0x0c, 0xbc, 0x7e, 0x77, 0x58, 0xa1, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0x1d, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x30, 0x7c, 0x87, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xe2, 0x3f, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x68, 0x7f, 0x77, 0x58, 0xa1, 0x3d, 0xec, 0xf1, 0x1e, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0x38, 0xe0, 0xcf, 0xa1, 0x85, 0xcd, 0x87, 0xd4, 0xd2, 0xf1, 0x78, 0xe1, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x36, 0x48, 0x32, 0x3a, 0x39, 0x48, 0xc5, 0xb5, 0x39, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0x7f, 0x0e, 0x2d, 0x0c, 0x3f, 0xa4, 0x96, 0x8e, 0xc7, 0xc3, 0x2f, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0xec, 0x0e, 0xc9, 0xa5, 0x43, 0xa3, 0x96, 0x8d, 0x43, 0x83, 0x68, 0x61, 0x07, 0xc1, 0x82, 0x64, 0xe0, 0xf7, 0xbb, 0x83, 0x20, 0xe7, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x31, 0xf0, 0xdf, 0xce, 0x5a, 0xe6, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x40, 0xf0, 0x0e, 0x02, 0xde, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x78, 0xd3, 0x39, 0xa4, 0x0e, 0x8e, 0x43, 0xc7, 0xa1, 0xc3, 0x0a, 0xed, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x6c, 0x0d, 0x79, 0xec, 0xc5, 0x0d, 0xb9, 0xef, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0xc5, 0x71, 0x70, 0x79, 0xf0, 0x70, 0x70, 0xf2, 0x90, 0xf0, 0x3f, 0xbe, 0x1d, 0x8f, 0x87, 0xdd, 0xb0, 0xbe, 0xb7, 0xe1, 0x14, 0x1b, 0x04, 0x0b, 0x82, 0x0d, 0xd2, 0xdd, 0x77, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x14, 0xa9, 0x4f, 0x07, 0xe3, 0x38, 0xe4, 0x38, 0x34, 0xec, 0x82, 0x60, 0x83, 0x63, 0x34, 0xf3, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0xa0, 0xb4, 0xbd, 0x39, 0x0e, 0x6d, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf9, 0x41, 0x19, 0x4e, 0x77, 0x3c, 0x3f, 0x1e, 0x2f, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0x08, 0x36, 0x18, 0x09, 0x38, 0x87, 0x46, 0x2d, 0x07, 0x09, 0xf8, 0x3b, 0xc7, 0xe3, 0xe1, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x24, 0x03, 0xc2, 0xdf, 0xe9, 0x20, 0xc8, 0xf9, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xfc, 0x90, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc1, 0x82, 0x64, 0xe0, 0xf7, 0xbb, 0x43, 0xb6, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0xc7, 0xc0, 0x7f, 0x3b, 0x6b, 0x09, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0xc1, 0x3b, 0x08, 0x72, 0xfe, 0x83, 0x81, 0x78, 0x76, 0x1c, 0x1a, 0x04, 0x8b, 0xc3, 0x6e, 0x30, 0x36, 0x39, 0x37, 0xc4, 0x70, 0x10, 0x2c, 0x08, 0x16, 0x24, 0x03, 0xbf, 0xdf, 0x1d, 0x04, 0xbc, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x8f, 0x81, 0xff, 0x76, 0xd6, 0x22, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x30, 0x96, 0x72, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x04, 0x26, 0xf6, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x63, 0x29, 0x77, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xe0, 0x9d, 0x3c, 0xa4, 0x6a, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0xb0, 0x0b, 0x82, 0x0d, 0x8e, 0x9b, 0xd7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xc6, 0x9b, 0xce, 0xf0, 0x1b, 0xcf, 0xc7, 0x60, 0x00, 0x8e, 0x43, 0xab, 0x41, 0x60, 0x62, 0x0f, 0x82, 0x0d, 0xd2, 0xe8, 0x1e, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0xfc, 0x20, 0xe0, 0xb0, 0x0f, 0xa9, 0x83, 0xe3, 0xd0, 0x21, 0x86, 0x6b, 0x90, 0x94, 0xd6, 0x73, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf9, 0x20, 0xd8, 0xe0, 0x78, 0x05, 0x7d, 0x90, 0xc2, 0xd5, 0x73, 0x90, 0x5c, 0xfa, 0x70, 0x7c, 0x3b, 0x0e, 0x1d, 0x8f, 0x07, 0xd9, 0x1a, 0xd2, 0x40, 0xe3, 0x80, 0x27, 0x17, 0x76, 0x1f, 0x52, 0x4b, 0xc7, 0xe3, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0x1c, 0xf8, 0xb7, 0xf3, 0x90, 0x5a, 0x3a, 0x1e, 0xaf, 0x41, 0x61, 0x47, 0xb8, 0x82, 0x60, 0x83, 0x82, 0x5a, 0x6c, 0x71, 0x10, 0xac, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x83, 0x13, 0xb3, 0xef, 0x21, 0x0d, 0x37, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x6c, 0x50, 0x58, 0x87, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0xe7, 0x60, 0x8c, 0xa1, 0x2d, 0x0e, 0x82, 0x35, 0x44, 0x73, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0xc1, 0x39, 0xa3, 0xfe, 0xd0, 0x41, 0xe3, 0xd0, 0xfc, 0xe5, 0x78, 0x7c, 0x1c, 0x3a, 0x74, 0xd0, 0x38, 0x34, 0x7f, 0x39, 0x1e, 0xaf, 0x20, 0x58, 0x9c, 0x83, 0xd3, 0x64, 0xef, 0xe2, 0x20, 0x58, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x64, 0xa0, 0x7d, 0xdf, 0xf1, 0xfc, 0x90, 0x86, 0x1b, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x48, 0x06, 0xf6, 0xf5, 0x8e, 0xc7, 0x87, 0x0e, 0x1a, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x41, 0xb0, 0x38, 0x87, 0xdf, 0x6f, 0x16, 0x07, 0xc1, 0xc2, 0x6e, 0xc8, 0x63, 0xad, 0xa1, 0x59, 0xe4, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0x32, 0x90, 0xde, 0x3b, 0x1e, 0x1f, 0x3a, 0x68, 0x0c, 0xbb, 0x70, 0x8b, 0x81, 0x2f, 0xc6, 0xf6, 0x26, 0x1e, 0xa2, 0xb9, 0xc2, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0xa4, 0xcd, 0xf9, 0x6c, 0x90, 0x36, 0xe7, 0x73, 0x38, 0xc5, 0x0e, 0xe3, 0xb2, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x63, 0xe0, 0xb7, 0x85, 0xb9, 0xe5, 0x1b, 0xa4, 0x50, 0xfa, 0x1c, 0x4e, 0xb1, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x43, 0x93, 0xb3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x40, 0x56, 0xef, 0x78, 0x7c, 0x1c, 0x3a, 0x74, 0xd0, 0x38, 0x34, 0x7f, 0x39, 0x1e, 0x2f, 0x08, 0x16, 0x87, 0xb4, 0x38, 0x08, 0x16, 0x76, 0x43, 0x1e, 0x6b, 0x0d, 0xcd, 0x22, 0x0f, 0xe3, 0x32, 0xec, 0x86, 0x86, 0x8b, 0x6b, 0xe8, 0xd3, 0x78, 0x18, 0x97, 0x85, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0xb4, 0x12, 0xdf, 0xd0, 0x4a, 0xfc, 0x70, 0x8a, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x1b, 0x9a, 0x9c, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0x04, 0x7f, 0xdf, 0xf1, 0xfc, 0x38, 0x74, 0xe8, 0xa0, 0x71, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0xf0, 0x1b, 0x9c, 0x33, 0xea, 0x8f, 0x6f, 0x8b, 0xc3, 0x2f, 0x48, 0x06, 0x8a, 0xde, 0x21, 0xb9, 0x74, 0x7c, 0x3b, 0x1e, 0x1f, 0x9a, 0xbf, 0x1c, 0x8f, 0x07, 0xc1, 0x06, 0xe7, 0xc8, 0xde, 0xc5, 0x41, 0xb0, 0x0a, 0xbb, 0xb0, 0x0b, 0x3d, 0x18, 0x3f, 0x5d, 0x87, 0xf5, 0xcd, 0x83, 0x22, 0x18, 0xe5, 0xa0, 0x7c, 0x3b, 0xdc, 0xa0, 0xd8, 0x18, 0x1c, 0x76, 0x61, 0x17, 0x7a, 0x10, 0x94, 0xde, 0x87, 0xf5, 0xcd, 0x0d, 0x82, 0xd2, 0xfb, 0x70, 0x8a, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x04, 0x1b, 0x14, 0xd4, 0x62, 0x8b, 0x83, 0x60, 0x0d, 0xd2, 0xaf, 0x7b, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x92, 0x01, 0x81, 0xdf, 0x77, 0x3c, 0x3f, 0x74, 0xd0, 0x38, 0x34, 0x7f, 0x39, 0x1e, 0xaf, 0x20, 0xd8, 0x20, 0x84, 0xed, 0x17, 0x07, 0xc1, 0x0a, 0xbf, 0xc1, 0x78, 0xed, 0x3b, 0xbe, 0x1d, 0x62, 0xb8, 0xb8, 0x20, 0xd8, 0x60, 0xf8, 0x0e, 0x1f, 0xd2, 0x70, 0xc3, 0x6e, 0x30, 0x62, 0xb1, 0x36, 0xc4, 0x70, 0x43, 0x0c, 0x17, 0x04, 0x1b, 0xf6, 0x0a, 0x0f, 0x9d, 0x88, 0x36, 0x48, 0x2f, 0xfd, 0x19, 0x04, 0x0b, 0x92, 0x01, 0x81, 0xdf, 0x77, 0x10, 0xe4, 0xfc, 0x87, 0x0e, 0x1a, 0xc7, 0xe3, 0xe3, 0xf1, 0x20, 0xd8, 0xa0, 0xa0, 0x16, 0x5b, 0x1c, 0x76, 0xc3, 0xae, 0xc1, 0x86, 0x53, 0xec, 0xd0, 0x49, 0xed, 0x78, 0xbc, 0x41, 0x61, 0x47, 0x38, 0x08, 0x36, 0x48, 0x3c, 0xf6, 0x59, 0x1c, 0x04, 0x0b, 0xbb, 0x21, 0x8f, 0xb5, 0x41, 0x42, 0xb4, 0xcf, 0xb0, 0x1b, 0x1a, 0x2e, 0x6e, 0x90, 0xb6, 0xed, 0xb3, 0x41, 0x52, 0xb8, 0xcf, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0xa1, 0xc9, 0xd9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0xac, 0x41, 0x19, 0x2f, 0x78, 0x18, 0x97, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x71, 0xe8, 0xd0, 0x41, 0xe3, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0xe2, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0xac, 0x20, 0xd8, 0x20, 0x75, 0xe5, 0xe7, 0x90, 0x86, 0x1b, 0x04, 0x1b, 0xa4, 0xae, 0xfc, 0x1c, 0x3a, 0x68, 0x0c, 0xbb, 0x41, 0x41, 0x51, 0xb4, 0xb0, 0x1b, 0x04, 0x59, 0xfc, 0x82, 0x60, 0x41, 0x32, 0x50, 0xf6, 0x0e, 0x2b, 0xb4, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x06, 0x7e, 0xc8, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x81, 0xeb, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x0d, 0x86, 0x63, 0xd7, 0x71, 0xe8, 0x38, 0x34, 0xec, 0x82, 0x60, 0x41, 0x32, 0xa8, 0x39, 0x08, 0x78, 0xff, 0x83, 0x54, 0x3e, 0xa0, 0x05, 0xc1, 0x06, 0x09, 0x63, 0x40, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x06, 0x7e, 0xc8, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xa3, 0x40, 0xe7, 0x20, 0x95, 0x0f, 0xe8, 0x38, 0x34, 0x08, 0x36, 0x48, 0x18, 0x03, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x36, 0x5c, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x18, 0x05, 0x3a, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x82, 0xd2, 0xfb, 0x60, 0x68, 0x76, 0x1d, 0x87, 0x8e, 0x43, 0xc3, 0x6e, 0x10, 0x64, 0xf1, 0x0b, 0xbb, 0x41, 0x8a, 0x22, 0xd0, 0x82, 0x60, 0x83, 0x84, 0x31, 0xa0, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x63, 0xc3, 0xf5, 0x20, 0xdd, 0x14, 0xe8, 0x38, 0x34, 0x08, 0x36, 0x48, 0x18, 0x03, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xf0, 0x43, 0x0e, 0x92, 0x8a, 0x81, 0x8e, 0x43, 0x83, 0x60, 0x83, 0x84, 0x31, 0xa0, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x63, 0xc3, 0xf5, 0x20, 0x7d, 0x0e, 0xe8, 0x38, 0x74, 0x3c, 0x5e, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0xd8, 0xa0, 0xec, 0x9b, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x68, 0x3c, 0x7f, 0x48, 0xd5, 0x1c, 0x87, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb0, 0x41, 0x3a, 0x11, 0xd0, 0xb0, 0x1b, 0x84, 0x14, 0xf8, 0x82, 0x60, 0x83, 0x54, 0x42, 0x85, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x71, 0x39, 0xac, 0xfd, 0x1e, 0x87, 0x06, 0xc1, 0x06, 0xa3, 0x40, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x61, 0xed, 0xf7, 0x30, 0x2e, 0xc7, 0xa1, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x2c, 0x48, 0x06, 0xca, 0xde, 0x21, 0xb9, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc3, 0x6d, 0x88, 0xe1, 0x20, 0xd8, 0x60, 0xf8, 0x0e, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0xbc, 0xf6, 0x1d, 0xd2, 0x70, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x8c, 0xd7, 0xbe, 0x43, 0x07, 0x8d, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x65, 0xdf, 0xd4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0xc0, 0xad, 0x77, 0x48, 0x2e, 0x1d, 0xd2, 0x70, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x24, 0x55, 0x07, 0x1d, 0x3a, 0x68, 0x1c, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0x15, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xdc, 0x86, 0x18, 0x0e, 0x82, 0x0d, 0x86, 0x7d, 0xcd, 0xc1, 0x38, 0x0e, 0x39, 0x1e, 0xaf, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x05, 0xc1, 0x06, 0xe3, 0xb5, 0xef, 0xd0, 0xa8, 0x65, 0x10, 0x6c, 0x90, 0x54, 0x1d, 0x74, 0x68, 0xd4, 0x72, 0x3c, 0x5e, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0x05, 0xc9, 0x40, 0xdd, 0x3b, 0x24, 0x97, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xb2, 0x76, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x0c, 0xce, 0xc7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x7c, 0xed, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x25, 0x6a, 0xc8, 0x21, 0xd1, 0x7a, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x0d, 0x86, 0x19, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x1f, 0xa4, 0xe9, 0x07, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x30, 0x28, 0x39, 0x0e, 0xc6, 0x71, 0xc8, 0x71, 0xe8, 0x78, 0xbc, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x76, 0x43, 0x34, 0x17, 0x04, 0x1b, 0x94, 0x7d, 0x53, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x83, 0xf4, 0x33, 0x85, 0xe3, 0xd0, 0xb0, 0x1b, 0x76, 0x0d, 0x36, 0xc4, 0x70, 0x98, 0x41, 0xb0, 0x41, 0xd9, 0x37, 0x35, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xd0, 0x78, 0xfe, 0x20, 0xcd, 0xbe, 0xe1, 0x38, 0x74, 0x3c, 0x1e, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x83, 0x73, 0xf0, 0xf7, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xd6, 0x6e, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xd4, 0xc3, 0xa0, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x76, 0x83, 0x44, 0xdb, 0xa0, 0xc3, 0xfa, 0xe6, 0x41, 0xca, 0x77, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x5e, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0x0d, 0x52, 0x0f, 0x83, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x24, 0x53, 0x06, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x90, 0xa6, 0x80, 0x71, 0x90, 0x9e, 0x1c, 0x74, 0x1c, 0x3a, 0x1e, 0x0f, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x61, 0x37, 0xa4, 0x33, 0x37, 0xc4, 0x70, 0xd8, 0x0d, 0xd2, 0x55, 0x83, 0x16, 0x76, 0x83, 0x44, 0xdb, 0xa0, 0x85, 0xdd, 0x60, 0xa4, 0x63, 0x6f, 0x68, 0x25, 0x7e, 0x38, 0xda, 0x0f, 0xad, 0xc4, 0x87, 0xdd, 0x20, 0xd1, 0x36, 0x68, 0xc3, 0xd1, 0x3e, 0xec, 0x06, 0x23, 0x1d, 0x7b, 0xc3, 0xd1, 0x7e, 0x68, 0x25, 0x7e, 0x3c, 0x3e, 0x1e, 0x2f, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0x06, 0x25, 0x6a, 0xc8, 0x20, 0x58, 0x41, 0xb0, 0x20, 0x19, 0x44, 0xc7, 0xa1, 0xc3, 0x46, 0xed, 0x20, 0xd8, 0x20, 0xfd, 0x6c, 0xe8, 0xb0, 0xc7, 0x3b, 0x08, 0x56, 0x41, 0xb0, 0x20, 0x19, 0x44, 0x87, 0xd4, 0xc1, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0x60, 0x6c, 0xb8, 0x1e, 0x87, 0x0e, 0x31, 0xdc, 0x10, 0xc3, 0x83, 0x84, 0xbd, 0xa1, 0x41, 0xb0, 0x38, 0xec, 0x86, 0xb5, 0xd0, 0x15, 0x04, 0x0b, 0x92, 0x81, 0x5b, 0xef, 0xb0, 0x57, 0x78, 0xd8, 0xe3, 0x3d, 0x18, 0x98, 0x5d, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x08, 0xdf, 0x61, 0xaf, 0x70, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x61, 0xed, 0xf7, 0x10, 0xff, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0xc4, 0x0b, 0x82, 0x05, 0xc9, 0x40, 0xdd, 0x3b, 0x08, 0x4c, 0xec, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xc4, 0xcc, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x50, 0x77, 0x10, 0x98, 0xd8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xa9, 0x83, 0x43, 0xb2, 0xe3, 0x38, 0x74, 0x1c, 0x3a, 0xc4, 0x7f, 0x10, 0x2d, 0xec, 0x0a, 0x82, 0x0d, 0x92, 0x9c, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x8c, 0x2c, 0xab, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x52, 0xc8, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x52, 0x07, 0x07, 0x63, 0xc2, 0xea, 0x38, 0x74, 0x1c, 0x3a, 0x28, 0x0e, 0x35, 0x16, 0x04, 0x1b, 0x24, 0x39, 0x0f, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x34, 0xfc, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x85, 0x7c, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x75, 0x70, 0x68, 0x01, 0x74, 0x1c, 0x3a, 0x0e, 0x1d, 0x7a, 0x08, 0x1d, 0xcf, 0x8f, 0x6f, 0xc7, 0xe3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x0b, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb0, 0xc1, 0xd8, 0x9e, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0xb8, 0xfe, 0x87, 0x44, 0xeb, 0x71, 0xe8, 0x78, 0xbc, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x04, 0x1b, 0x8c, 0xed, 0x99, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x03, 0xcd, 0xe9, 0x90, 0x68, 0x3d, 0x0e, 0x1d, 0x8f, 0x57, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0xd8, 0x20, 0x95, 0x50, 0xe1, 0x60, 0x20, 0x9e, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0xc3, 0x6e, 0xc8, 0x63, 0x6d, 0x38, 0xda, 0x07, 0xc1, 0x82, 0x64, 0xc8, 0x20, 0x5a, 0x10, 0x0e, 0x82, 0x0d, 0xc6, 0x61, 0xc2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x81, 0x1f, 0x72, 0xc8, 0xda, 0x1d, 0x87, 0x8e, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x44, 0x87, 0x15, 0xda, 0x83, 0xd1, 0x1e, 0x3c, 0xec, 0xc2, 0x6d, 0x88, 0xe1, 0x20, 0xd8, 0xe0, 0xc0, 0xb3, 0x7b, 0x30, 0x48, 0xeb, 0x36, 0x0e, 0x0d, 0x82, 0x0d, 0x92, 0xe3, 0x1d, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x12, 0x33, 0x87, 0xd4, 0xc1, 0x71, 0xe8, 0x78, 0xbc, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x0d, 0x0e, 0x4d, 0xba, 0x07, 0xa7, 0x15, 0xdc, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x7e, 0x41, 0xb0, 0x20, 0x19, 0x18, 0xbf, 0x43, 0xb6, 0xe2, 0x60, 0x20, 0x9e, 0x1d, 0x52, 0x07, 0x07, 0x81, 0x89, 0x7d, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x07, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0xd8, 0x60, 0x6c, 0xcf, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x18, 0x05, 0x3a, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x08, 0x5c, 0xff, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x81, 0x89, 0x7d, 0xc8, 0xda, 0x1d, 0x87, 0x0e, 0x06, 0xf8, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x1e, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x83, 0x91, 0x80, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xb5, 0x1b, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x84, 0xed, 0x90, 0x5c, 0x3a, 0x74, 0xd0, 0x38, 0x0e, 0x1d, 0x8f, 0x8f, 0xc7, 0x0b, 0xe0, 0x6b, 0xc6, 0xf6, 0x16, 0x46, 0x97, 0xe6, 0x76, 0xd6, 0x02, 0xf7, 0x96, 0xe6, 0x46, 0x2f, 0x03, 0xf0, 0x31, 0x23, 0xa6, 0x03, 0x62, 0xc6, 0xf6, 0x16, 0x46, 0x97, 0xe6, 0x76, 0x06, 0x02, 0xf7, 0x96, 0xe6, 0x46, 0xb7, 0xc0, 0xcb, 0xc5, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0xc1, 0xcb, 0xc5, 0x0d, 0xc0, 0x43, 0x5c, 0x5d, 0x18, 0x19, 0x08, 0x9c, 0x5c, 0xd9, 0x58, 0xda, 0x5c, 0xda, 0x9b, 0x1b, 0x88, 0x19, 0xdc, 0x06, 0x65, 0x97, 0xec, 0xc0, 0xcb, 0xc5, 0x6b, 0xb8, 0xa4, 0x36, 0xa4, 0x96, 0x9a, 0x01, 0x7f, 0x8d, 0x4e, 0x4c, 0xde, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0x00, 0x4f, 0xe5, 0xde, 0xea, 0xdc, 0xc8, 0x40, 0xe8, 0xde, 0x40, 0xdc, 0xca, 0xc2, 0xe4, 0xca, 0xe6, 0xe8, 0x58, 0x40, 0xe4, 0xde, 0xea, 0xdc, 0xc8, 0x40, 0xea, 0xe0, 0x58, 0x40, 0xe4, 0xde, 0xea, 0xdc, 0xc8, 0x40, 0xc8, 0xde, 0xee, 0xdc, 0x58, 0x40, 0xe4, 0xde, 0xea, 0xdc, 0xc8, 0x40, 0xe8, 0xde, 0x40, 0xf4, 0xca, 0xe4, 0xde, 0x36, 0x28, 0xcb, 0xb0, 0xd7, 0xf0, 0xe7, 0xd2, 0xe0, 0xf2, 0x06, 0xc1, 0x66, 0xba, 0xc1, 0x69, 0xef, 0x64, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x85, 0xd7, 0x1b, 0x9c, 0x73, 0x53, 0xd6, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0x5d, 0xb8, 0xde, 0x2c, 0xb3, 0x86, 0xc4, 0xd1, 0x86, 0xc7, 0x47, 0x36, 0x24, 0x8e, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xe1, 0xc1, 0x59, 0xf1, 0x75, 0x0d, 0x7f, 0x2e, 0x0d, 0x2e, 0x1e, 0x9c, 0x15, 0x5f, 0xdb, 0xf0, 0x17, 0xcd, 0x06, 0x67, 0xc5, 0xd7, 0x0d, 0x6f, 0xd9, 0xad, 0xe1, 0x89, 0xbb, 0x0d, 0xcf, 0xe2, 0x1d, 0x9c, 0xe3, 0x67, 0x37, 0xbc, 0xdb, 0xb3, 0x86, 0x07, 0x25, 0x37, 0x08, 0x9e, 0xda, 0x0d, 0x6f, 0xeb, 0x0c, 0x7c, 0x5b, 0xd8, 0xe1, 0xf7, 0xb3, 0x15, 0xf0, 0xce, 0xe4, 0xc8, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0x78, 0xb8, 0xe1, 0xdf, 0xf9, 0x05, 0x9e, 0xcc, 0xad, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0x59, 0xf1, 0x75, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x7e, 0xc8, 0xca, 0xc6, 0xd2, 0xda, 0xc2, 0xd8, 0x40, 0xcc, 0xd8, 0xde, 0xc2, 0xe8, 0x40, 0xe8, 0xde, 0x40, 0x80, 0xe4, 0xe2, 0x36, 0xbc, 0xdb, 0xb3, 0x86, 0x07, 0x25, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0xc9, 0xc6, 0x46, 0x1d, 0x24, 0xf0, 0x1a, 0x1d, 0x1e, 0xfa, 0x59, 0x01, 0x6f, 0xae, 0x2c, 0xdc, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x48, 0xda, 0x38, 0x6a, 0x00, 0x0f, 0x20, 0xb9, 0x38, 0x10, 0xba, 0x37, 0x10, 0x33, 0xb7, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0x12, 0x11, 0x8d, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0x1e, 0x94, 0x5c, 0xc3, 0xdb, 0x3a, 0x1b, 0x24, 0x6d, 0x1c, 0x75, 0x90, 0xc0, 0x6b, 0x74, 0x78, 0xe8, 0x67, 0x35, 0x64, 0x8d, 0x37, 0x3c, 0x3e, 0xb2, 0x21, 0x6b, 0xbc, 0xe1, 0x17, 0xa5, 0x0d, 0xd2, 0x09, 0x8d, 0x36, 0xbc, 0x65, 0xb7, 0x41, 0xaa, 0xa9, 0xd1, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xa0, 0xe4, 0x86, 0x2f, 0x7e, 0x0f, 0x12, 0x78, 0x8d, 0x0e, 0xbf, 0x9f, 0x1d, 0x4e, 0xb1, 0x05, 0xbc, 0xb9, 0xb4, 0x73, 0xc3, 0x2f, 0x4a, 0x1b, 0xa4, 0xf6, 0x1c, 0x6d, 0xf8, 0x8b, 0x66, 0xc3, 0x07, 0xab, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xfc, 0x67, 0x65, 0x74, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0x83, 0x92, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xc4, 0xc4, 0xa3, 0x0e, 0x12, 0x78, 0x8d, 0x0e, 0x0f, 0xfd, 0xac, 0x80, 0x37, 0x57, 0xe7, 0x6e, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0x1d, 0x9c, 0x6e, 0x4e, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0x59, 0xf1, 0x75, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x3e, 0xea, 0xdc, 0xe6, 0x40, 0xd2, 0xdc, 0xe8, 0xca, 0xce, 0xca, 0xe4, 0x40, 0xe8, 0xde, 0x40, 0x80, 0xe4, 0xe2, 0x36, 0xbc, 0xdb, 0xb3, 0x86, 0x07, 0x25, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0x29, 0xc4, 0x47, 0x1d, 0x24, 0xf0, 0x1a, 0x1d, 0x1e, 0xfa, 0x39, 0x9c, 0x62, 0x6b, 0x70, 0xe4, 0xac, 0xdd, 0xf0, 0xf8, 0xc8, 0x06, 0x47, 0xce, 0xda, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0x12, 0x11, 0x8d, 0x36, 0x48, 0x90, 0x34, 0x5a, 0xc3, 0x9f, 0x4b, 0x83, 0x8f, 0x07, 0x67, 0xc5, 0xd7, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0x59, 0xf1, 0x75, 0xc3, 0x5b, 0x76, 0x1b, 0xa4, 0x9a, 0x1a, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0x0f, 0x4a, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0x8e, 0x9c, 0xb5, 0x1d, 0x24, 0xf0, 0x1a, 0x1d, 0x9c, 0xc1, 0xcd, 0x66, 0x0d, 0x8b, 0x56, 0x1b, 0x1e, 0x1f, 0xd9, 0xb0, 0x68, 0xb5, 0xe1, 0x17, 0xa5, 0x0d, 0xd2, 0x09, 0x8d, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0x59, 0xf1, 0x75, 0xc3, 0x5b, 0x76, 0x1b, 0xa4, 0x9a, 0x1a, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0x0f, 0x4a, 0x6e, 0x10, 0x0a, 0xac, 0x07, 0x09, 0xbc, 0x46, 0x87, 0xdf, 0xcf, 0x56, 0x83, 0x23, 0xed, 0xf2, 0x86, 0x5f, 0x94, 0x36, 0x48, 0xed, 0x39, 0xda, 0xf0, 0x17, 0xcd, 0x06, 0xa9, 0xd7, 0x46, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xf0, 0x03, 0x24, 0x17, 0x07, 0x42, 0xf7, 0x06, 0x42, 0x56, 0x36, 0x96, 0xd6, 0x16, 0xc6, 0x06, 0x62, 0xc6, 0xf6, 0x16, 0x46, 0xb7, 0xe1, 0xdd, 0x9e, 0x35, 0x3c, 0x28, 0xb9, 0x86, 0xb7, 0x75, 0x36, 0x38, 0xd2, 0x2e, 0x77, 0x90, 0xc0, 0x6b, 0x74, 0x78, 0xe8, 0x67, 0x35, 0xac, 0x37, 0x6f, 0x78, 0x7c, 0x64, 0xc3, 0x7a, 0xf3, 0x86, 0x5f, 0x94, 0x36, 0x48, 0x27, 0x34, 0xda, 0xf0, 0x96, 0xdd, 0x06, 0xa9, 0xa6, 0x46, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0x83, 0x92, 0x1b, 0xbe, 0x38, 0x3b, 0x48, 0xe0, 0x35, 0x3a, 0xfc, 0x7e, 0x76, 0x38, 0xc5, 0x6a, 0x0d, 0xe9, 0xc3, 0x0d, 0x8f, 0x8f, 0x6c, 0x48, 0x1f, 0x6e, 0xf8, 0x45, 0x69, 0x83, 0x74, 0x42, 0xa3, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0x56, 0x7c, 0xdd, 0xf0, 0x96, 0xdd, 0x06, 0xa9, 0xa6, 0x46, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0x83, 0x92, 0x1b, 0xfe, 0x04, 0x3a, 0x48, 0xe0, 0x35, 0x3a, 0xfc, 0x7e, 0xb6, 0x02, 0x5e, 0x19, 0x1e, 0xbc, 0xe1, 0x17, 0xa5, 0x0d, 0x52, 0x7b, 0x8e, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0xf1, 0xe4, 0x64, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xbf, 0xb3, 0x32, 0x3a, 0x90, 0x32, 0x3c, 0xb8, 0x37, 0xb7, 0x32, 0x37, 0xba, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x41, 0xc9, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x5a, 0x4d, 0x52, 0x07, 0x09, 0xbc, 0x46, 0x87, 0x87, 0x7e, 0x56, 0xe0, 0xdb, 0xc2, 0x01, 0x7f, 0xcc, 0x8d, 0x4e, 0xde, 0xa0, 0xa8, 0x11, 0x5f, 0xc3, 0xdb, 0x3a, 0x03, 0x6f, 0x66, 0xb6, 0x86, 0x15, 0xbc, 0x83, 0xd3, 0xfd, 0xdb, 0x1a, 0x1c, 0x3c, 0x32, 0x36, 0xfc, 0x08, 0xb3, 0xa1, 0xe6, 0x87, 0xc3, 0x6b, 0xf8, 0x3c, 0x68, 0xc3, 0x8f, 0x30, 0x03, 0x3f, 0x47, 0x06, 0xef, 0xff, 0xaf, 0x41, 0xc1, 0xb3, 0x79, 0x70, 0xfc, 0xe4, 0xeb, 0x70, 0x8a, 0xb5, 0x80, 0x37, 0x17, 0xe6, 0x6e, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xc3, 0x83, 0xe3, 0xc9, 0x49, 0x1b, 0xfe, 0xa2, 0xd9, 0xe0, 0xac, 0xf8, 0xba, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x1f, 0x73, 0x67, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x40, 0x72, 0x71, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0x83, 0x92, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x94, 0xda, 0xa4, 0x0e, 0x12, 0x78, 0x8d, 0x0e, 0x0f, 0xfd, 0xac, 0x80, 0x47, 0xf7, 0x96, 0x6e, 0xf8, 0x45, 0x69, 0x83, 0xd4, 0x9e, 0xa3, 0x0d, 0x7f, 0xd1, 0xac, 0x41, 0xe8, 0x97, 0x6c, 0x50, 0x36, 0x61, 0x6e, 0x70, 0x3c, 0x39, 0x69, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x7f, 0xb9, 0xb7, 0x3a, 0x37, 0x32, 0x10, 0xba, 0x37, 0x90, 0x34, 0x37, 0xba, 0xb2, 0xb3, 0x32, 0xb9, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x41, 0xc9, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x0a, 0x81, 0x52, 0x07, 0x09, 0xbc, 0x46, 0x87, 0x87, 0x7e, 0x0e, 0xa7, 0xd8, 0x1a, 0x94, 0x69, 0x58, 0x1b, 0x1e, 0x1f, 0xd9, 0xa0, 0x4c, 0xc3, 0xda, 0xf0, 0x8b, 0xd2, 0x06, 0xa9, 0x3d, 0x47, 0x1b, 0xfe, 0xa2, 0xd9, 0xe0, 0xac, 0xf8, 0xba, 0xe1, 0x2d, 0xbb, 0x0d, 0x52, 0x4d, 0x8d, 0x36, 0xbc, 0xdb, 0xb3, 0x86, 0x07, 0x25, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0x65, 0x1a, 0x56, 0x07, 0x09, 0xbc, 0x46, 0x87, 0x87, 0x7e, 0x66, 0x0d, 0xab, 0xe1, 0x1b, 0x1e, 0x1f, 0xd9, 0xb0, 0x1a, 0xbe, 0xe1, 0x17, 0xa5, 0x0d, 0xd2, 0x09, 0x8d, 0x36, 0xbc, 0x65, 0xb7, 0x41, 0xaa, 0xa9, 0xd1, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xa0, 0xe4, 0x86, 0x6f, 0x14, 0x0f, 0x12, 0x78, 0x8d, 0x0e, 0xbf, 0x9f, 0x1d, 0x4e, 0xb1, 0x35, 0xec, 0xc4, 0x6f, 0x78, 0x7c, 0x64, 0xc3, 0x4e, 0xfc, 0x86, 0x5f, 0x94, 0x36, 0x48, 0x27, 0x34, 0xda, 0xf0, 0x96, 0xdd, 0x06, 0xa9, 0xa6, 0x46, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0x83, 0x92, 0x6b, 0x78, 0x5b, 0x67, 0xc3, 0x4e, 0x7c, 0x07, 0x09, 0xbc, 0x46, 0x87, 0xdf, 0xcf, 0x56, 0xc0, 0x13, 0x4b, 0xa3, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x12, 0xce, 0x95, 0x1a, 0xc0, 0xc3, 0xcc, 0x0d, 0x84, 0xee, 0x0d, 0x04, 0x48, 0x2e, 0x6e, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x6e, 0xf8, 0x77, 0x7e, 0x81, 0x37, 0x73, 0xab, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0x56, 0x7c, 0xdd, 0xf0, 0x6e, 0xcf, 0x1a, 0x1e, 0x94, 0x5c, 0xc3, 0xdb, 0x3a, 0x1b, 0x24, 0x9c, 0x2b, 0x75, 0x90, 0xc0, 0x6b, 0x74, 0x78, 0xe8, 0x67, 0xd6, 0xe0, 0xf0, 0x8b, 0xbb, 0xe1, 0xf1, 0x91, 0x0d, 0x0e, 0xbf, 0xb8, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0x9d, 0xd0, 0x68, 0xc3, 0x5b, 0x76, 0x1b, 0xa4, 0x9a, 0x1a, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0x0f, 0x4a, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0x0e, 0xbf, 0xb8, 0x1d, 0x24, 0xf0, 0x1a, 0x1d, 0x7e, 0x3f, 0x3b, 0x9c, 0x62, 0x6b, 0x68, 0xf1, 0xb1, 0xe1, 0xf1, 0x91, 0x0d, 0x2d, 0x3e, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0x3a, 0xa1, 0xd1, 0x86, 0xbf, 0x68, 0x36, 0x38, 0x2b, 0xbe, 0x6e, 0x78, 0xcb, 0x6e, 0x83, 0x54, 0x53, 0xa3, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x41, 0xc9, 0x0d, 0x9f, 0x02, 0x1e, 0x24, 0xf0, 0x1a, 0x1d, 0x7e, 0x3f, 0x3b, 0x9c, 0x62, 0x87, 0x53, 0x6c, 0x05, 0x7c, 0x39, 0xb6, 0x3c, 0x74, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0xf0, 0xe0, 0xd0, 0xf5, 0xba, 0xe1, 0x2f, 0x9a, 0x0d, 0x52, 0xaf, 0x8d, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0x03, 0x4e, 0xae, 0x0c, 0x0e, 0x04, 0x48, 0x0e, 0x0d, 0xc4, 0xec, 0x4d, 0x0e, 0x04, 0x4e, 0x2e, 0xcd, 0x8d, 0x6e, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x50, 0x72, 0x83, 0xf4, 0x62, 0xa4, 0x0d, 0x6f, 0xeb, 0x0c, 0xbc, 0x1c, 0xda, 0xe1, 0xa1, 0x9f, 0x15, 0x78, 0x33, 0x76, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0x32, 0x78, 0x33, 0xb6, 0x01, 0x78, 0x08, 0x93, 0x13, 0x73, 0x01, 0x81, 0x93, 0x2b, 0x1b, 0x4b, 0x9b, 0x4b, 0x7b, 0x73, 0x03, 0x31, 0x83, 0xdb, 0xa0, 0x20, 0x8d, 0x5d, 0x83, 0x12, 0x3a, 0x76, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0x38, 0x7c, 0x70, 0x14, 0x3a, 0x59, 0xc3, 0x9f, 0x4b, 0x83, 0xdb, 0x07, 0xc7, 0x93, 0x93, 0x35, 0xfc, 0xb9, 0x34, 0xf8, 0x7d, 0x70, 0x14, 0x3a, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x2e, 0x6f, 0x10, 0x6c, 0xa6, 0x1b, 0x9c, 0xf6, 0x4e, 0x36, 0x48, 0x08, 0x33, 0xda, 0xe0, 0x9c, 0x9b, 0xb2, 0x41, 0x62, 0x9b, 0xd1, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x0b, 0x0f, 0x5b, 0xc3, 0x9f, 0x4b, 0x83, 0x93, 0x1b, 0x04, 0x9b, 0xe9, 0x06, 0xe7, 0xdc, 0x94, 0x0d, 0x8e, 0xfa, 0x26, 0x1b, 0x1c, 0xb5, 0x4e, 0xea, 0x20, 0x4c, 0xc7, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0x8f, 0x30, 0x1b, 0x6a, 0x7e, 0x78, 0xbc, 0x86, 0x1f, 0x61, 0x06, 0x7e, 0x8e, 0x0c, 0x84, 0x6d, 0xc0, 0x1a, 0x7e, 0x84, 0xd9, 0x50, 0xf3, 0x83, 0xef, 0xff, 0xdb, 0xe0, 0xc8, 0xac, 0xba, 0x86, 0x37, 0xee, 0x0e, 0xce, 0xbf, 0x29, 0x6d, 0x50, 0x4a, 0x88, 0xaf, 0x41, 0xd9, 0x25, 0xbb, 0xc1, 0xe1, 0xe6, 0x7c, 0x83, 0x34, 0x02, 0xa3, 0xd9, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd9, 0xe0, 0x70, 0x73, 0xbe, 0x12, 0x00, 0x2f, 0xa4, 0xb9, 0xd1, 0x95, 0xc9, 0xb9, 0x85, 0xb1, 0x81, 0x98, 0xd5, 0xb9, 0x8d, 0xd1, 0xa5, 0xbd, 0xb9, 0xcd, 0xed, 0x80, 0xb4, 0xbd, 0xcd, 0xd1, 0xb1, 0xe5, 0x81, 0xbc, 0xc1, 0x95, 0xc9, 0x85, 0xd1, 0xa5, 0xb9, 0x9d, 0x81, 0xbc, 0xb9, 0x81, 0x6c, 0x95, 0xf5, 0x00, 0xcd, 0x81, 0x84, 0xf5, 0x00, 0xd5, 0x75, 0xb1, 0x80, 0xa4, 0xb9, 0x81, 0xbc, 0xd1, 0xa1, 0x95, 0xc9, 0x81, 0xdc, 0xbd, 0xc9, 0x91, 0xcd, 0x4b, 0x00, 0x1a, 0xc2, 0xbd, 0xcd, 0xa5, 0xd1, 0xa5, 0xd9, 0x95, 0x81, 0xb8, 0xd5, 0xb5, 0x89, 0x95, 0xc9, 0xcd, 0xb9, 0x80, 0xb4, 0x85, 0xb9, 0xe5, 0x81, 0xbc, 0x99, 0x81, 0xd0, 0xa1, 0x95, 0xcd, 0x95, 0x81, 0x94, 0xc9, 0xc9, 0xbd, 0xc9, 0x81, 0xbc, 0xd5, 0xd1, 0x81, 0xa4, 0x99, 0x81, 0x84, 0xf5, 0xc0, 0xb8, 0xda, 0xa0, 0x64, 0x61, 0x9f, 0x65, 0x16, 0xf0, 0xe0, 0xe4, 0xc6, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0xf8, 0x31, 0x7b, 0x93, 0x1b, 0x2b, 0x03, 0xf1, 0xe9, 0x01, 0x91, 0x01, 0x81, 0x93, 0x2b, 0x1b, 0x4b, 0x9b, 0x4b, 0x7b, 0x73, 0xdb, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbb, 0x3d, 0x1b, 0xbe, 0x51, 0xdc, 0xe0, 0x74, 0x91, 0x71, 0x50, 0x10, 0x8f, 0x1f, 0x9c, 0x2e, 0x32, 0x56, 0xc0, 0x33, 0x63, 0x4b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x12, 0x06, 0x9b, 0x1a, 0xc0, 0xc3, 0x8c, 0x2d, 0x0d, 0x0e, 0x64, 0x2e, 0xed, 0xcc, 0x6d, 0xc3, 0x2f, 0x4a, 0x1b, 0xa4, 0x25, 0x2c, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0x34, 0x89, 0xa5, 0x0d, 0x82, 0xf4, 0x74, 0x83, 0xd2, 0xf9, 0x7d, 0x0d, 0x8e, 0xfa, 0x26, 0x1b, 0x2e, 0xa9, 0x0d, 0x0f, 0xee, 0xac, 0xc1, 0xb9, 0x9d, 0x6f, 0xc3, 0xdb, 0xac, 0x1b, 0xde, 0xd6, 0x19, 0x7c, 0x3e, 0x3c, 0xb8, 0xd3, 0x1a, 0x1c, 0xb5, 0x4e, 0x0e, 0x52, 0x7a, 0x9b, 0xd6, 0xe0, 0xb4, 0x77, 0x72, 0x78, 0x5a, 0xa7, 0x15, 0xf0, 0xe8, 0xde, 0xd4, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x64, 0xf2, 0xa6, 0x0e, 0x92, 0x4d, 0x94, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xe1, 0x86, 0xcf, 0x95, 0x0e, 0x4e, 0x1c, 0x27, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0x34, 0x89, 0xa5, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0xfc, 0x9b, 0xb3, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xa0, 0xe4, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xc6, 0xda, 0xe0, 0x0e, 0x4a, 0x21, 0xf5, 0x35, 0xbc, 0xad, 0x33, 0x78, 0x79, 0x78, 0x70, 0x67, 0x0d, 0x3f, 0xc2, 0x0c, 0xfc, 0x1c, 0x59, 0x1b, 0x7e, 0x84, 0x19, 0xf8, 0x39, 0x32, 0xd7, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xb8, 0x3b, 0x38, 0x02, 0x9c, 0x6c, 0x50, 0xe4, 0xb4, 0x1e, 0x1e, 0xfa, 0xd9, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0x1c, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0x1e, 0x94, 0x5c, 0xc3, 0xdb, 0x3a, 0x03, 0x5e, 0x98, 0xd8, 0xdc, 0x41, 0x29, 0xa4, 0xbe, 0x41, 0xd2, 0x8c, 0x53, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0xe7, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xc4, 0xc7, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0x1e, 0xbc, 0x59, 0xc3, 0xdb, 0x3a, 0x83, 0xe3, 0xb5, 0x86, 0xb7, 0x75, 0x06, 0x0f, 0x0f, 0x0f, 0xee, 0xb4, 0xe1, 0x83, 0x9c, 0x35, 0xfc, 0x4a, 0xb6, 0x86, 0x7f, 0x73, 0x36, 0x38, 0x7e, 0xf2, 0x1d, 0xa4, 0x93, 0x32, 0xad, 0xe1, 0xdf, 0x9c, 0x0d, 0x8e, 0x9f, 0x7c, 0x1b, 0xde, 0xb8, 0x3b, 0x48, 0x84, 0x33, 0x6a, 0x0d, 0xbf, 0xb8, 0x6c, 0x90, 0xe2, 0xe4, 0xb4, 0x41, 0x91, 0xd3, 0xba, 0x41, 0x02, 0x8f, 0xd3, 0x1a, 0xde, 0xd6, 0x19, 0x3c, 0xaf, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xf5, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x64, 0xe2, 0x1e, 0x24, 0x36, 0x3a, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0xbf, 0x92, 0xad, 0xe1, 0xdf, 0x9c, 0x0d, 0x8e, 0x9f, 0x7c, 0x1b, 0xde, 0xb8, 0x3b, 0x48, 0x20, 0x33, 0x5a, 0xc3, 0xbf, 0x39, 0x1b, 0x1c, 0x3f, 0xf9, 0x36, 0xbc, 0x71, 0x77, 0x90, 0xe2, 0xc5, 0xd4, 0x1a, 0x7e, 0x71, 0xd9, 0x20, 0xc5, 0xc9, 0x69, 0x83, 0x22, 0xa7, 0x75, 0x83, 0x04, 0x1e, 0xa7, 0x35, 0x28, 0xe1, 0x31, 0x17, 0x5c, 0x6f, 0x83, 0x14, 0x6b, 0xa7, 0x0d, 0x1f, 0x47, 0x1d, 0xa4, 0x58, 0x3b, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0x78, 0xba, 0xe1, 0xdd, 0x9e, 0x0d, 0x0a, 0xed, 0xde, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x35, 0x9f, 0x83, 0x44, 0x4a, 0xa7, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x47, 0x58, 0xd7, 0xf0, 0x6f, 0xce, 0x1a, 0xde, 0xd6, 0x39, 0x48, 0x54, 0x79, 0x3a, 0x28, 0xa3, 0xcf, 0xd7, 0xf0, 0x6f, 0xce, 0x1a, 0xde, 0xed, 0xd9, 0xe0, 0xe8, 0x1d, 0xb7, 0x41, 0x8a, 0xb5, 0xd3, 0x41, 0x41, 0x3c, 0x7e, 0x78, 0xf0, 0xa6, 0x0d, 0x12, 0x8c, 0x9d, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0xe2, 0x38, 0x87, 0xf5, 0xe6, 0x36, 0x48, 0xf9, 0x7a, 0x3a, 0x28, 0xcd, 0xd0, 0x37, 0x48, 0x30, 0x76, 0xda, 0xf0, 0x8b, 0xcb, 0x06, 0x29, 0x4e, 0x4e, 0x1b, 0x14, 0x39, 0xad, 0x1b, 0x24, 0xf0, 0x38, 0x6d, 0x90, 0x10, 0xf3, 0xd4, 0x0a, 0x78, 0x6c, 0x66, 0xe5, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0xbc, 0xc8, 0x78, 0xb1, 0x99, 0x95, 0x81, 0xa4, 0xcd, 0x81, 0xf8, 0x80, 0xd0, 0xa1, 0x85, 0xb9, 0x81, 0x84, 0xb1, 0xb1, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0x0f, 0x4a, 0x6e, 0x70, 0xd8, 0x86, 0x3b, 0x28, 0x85, 0xd4, 0xd7, 0xf0, 0xb6, 0xce, 0x80, 0x57, 0xd6, 0x86, 0xb7, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xa0, 0xe4, 0x06, 0x89, 0xfd, 0x47, 0x07, 0xa5, 0x90, 0xfa, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0x39, 0xa9, 0xa9, 0x5a, 0x01, 0x4f, 0xee, 0xad, 0xde, 0xf0, 0x8b, 0xd2, 0x06, 0xe9, 0xff, 0x4d, 0x1b, 0xfe, 0xa2, 0xd9, 0x20, 0x4d, 0x62, 0x69, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x93, 0x0b, 0xab, 0xdb, 0xf0, 0xb4, 0xce, 0x06, 0x45, 0x4e, 0x6b, 0x87, 0x53, 0xac, 0x16, 0xf0, 0xe6, 0xe0, 0xc8, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0x78, 0x98, 0x6b, 0x0b, 0x63, 0x63, 0x2b, 0x9b, 0xa3, 0x03, 0x21, 0x2b, 0x73, 0x7b, 0x93, 0x6b, 0x0b, 0x63, 0xdb, 0xf0, 0x8b, 0xcb, 0x1a, 0x3e, 0x77, 0x19, 0xbc, 0xdc, 0xf0, 0xb6, 0xce, 0x80, 0x57, 0xd6, 0xe6, 0xb6, 0x86, 0xcf, 0x5d, 0x06, 0x0f, 0x0f, 0x8f, 0xc9, 0xb4, 0x1a, 0x16, 0xad, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x8b, 0x56, 0x0d, 0xf0, 0x91, 0xa5, 0xd9, 0xa5, 0x91, 0x95, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0x6d, 0x90, 0x38, 0xe0, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x17, 0x0f, 0xd2, 0x11, 0x9c, 0xda, 0xf0, 0x17, 0xcd, 0x06, 0x69, 0x12, 0x4b, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0xdc, 0x65, 0xe0, 0xdb, 0xc2, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x14, 0xff, 0x6e, 0x78, 0xf0, 0xe6, 0x20, 0x55, 0xd3, 0x69, 0x0d, 0x9f, 0xbb, 0x0c, 0x7c, 0x9b, 0xb8, 0xe1, 0xdd, 0x9e, 0x0d, 0x8a, 0xe2, 0xdf, 0x0d, 0x0f, 0xde, 0xac, 0xe1, 0x6d, 0x9d, 0xc1, 0xc3, 0xc3, 0xe7, 0x41, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xb8, 0xbd, 0xe1, 0xdd, 0x9e, 0x35, 0x3c, 0x28, 0xb9, 0x86, 0xb7, 0x75, 0x36, 0x28, 0x73, 0x02, 0x3a, 0x28, 0x85, 0xd4, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x89, 0xf2, 0x4f, 0x1b, 0x24, 0xf0, 0x1a, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x48, 0x94, 0x7f, 0x5a, 0xc3, 0xc7, 0x51, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x8b, 0xe3, 0x1c, 0xd2, 0x87, 0xad, 0xe1, 0x6d, 0x9d, 0x81, 0x6f, 0x13, 0x3b, 0x48, 0xef, 0x7f, 0xaa, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0x0f, 0xee, 0xac, 0xe1, 0x83, 0x9c, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0x07, 0x25, 0xd7, 0xf0, 0xb6, 0xce, 0x80, 0x37, 0x97, 0xe7, 0x76, 0x50, 0x0a, 0xa9, 0xaf, 0xe1, 0x6d, 0x9d, 0x83, 0x43, 0x6b, 0x4b, 0x1b, 0x9e, 0xd6, 0xd9, 0x70, 0x49, 0x6d, 0x78, 0x70, 0x67, 0x0d, 0x8a, 0x10, 0xe8, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0xb0, 0xfd, 0xb4, 0x41, 0xaa, 0x50, 0xd4, 0x41, 0x2a, 0x9e, 0xd3, 0x1a, 0x1e, 0xdc, 0xd9, 0xf0, 0x6e, 0xcf, 0x06, 0xa5, 0x01, 0xef, 0x1a, 0x7e, 0x71, 0xd9, 0xf0, 0xe0, 0xcd, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x25, 0xcd, 0xe9, 0x20, 0x4d, 0x28, 0xaa, 0x83, 0x54, 0x4d, 0xa7, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xea, 0x86, 0x77, 0x7b, 0x36, 0x48, 0x2a, 0x87, 0xda, 0x20, 0x69, 0xc6, 0x69, 0x0d, 0x6f, 0xeb, 0x0c, 0x5e, 0x1e, 0x3e, 0x0f, 0x6a, 0x0d, 0x9f, 0xbb, 0x0c, 0x1e, 0x6f, 0x78, 0xb7, 0x67, 0xc3, 0x5f, 0x94, 0x1b, 0xa4, 0x6b, 0x3a, 0x1d, 0xa4, 0x3d, 0x43, 0xb5, 0xe1, 0xdd, 0x9e, 0x0d, 0xd2, 0x3c, 0xa0, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xd6, 0x19, 0x5c, 0x6d, 0x0d, 0x6f, 0xeb, 0x0c, 0x0e, 0x1f, 0x1c, 0x71, 0x32, 0x5a, 0xc3, 0xbf, 0x39, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xf8, 0xe0, 0x88, 0x93, 0x71, 0x78, 0xf0, 0xa6, 0xd5, 0x60, 0x5c, 0xf6, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x06, 0xe7, 0xfa, 0x9c, 0x59, 0x09, 0xc0, 0xab, 0x31, 0xb4, 0x30, 0xb7, 0xb3, 0x32, 0x10, 0xba, 0x37, 0x90, 0x30, 0x10, 0xb9, 0x32, 0x38, 0xb9, 0xb2, 0xb9, 0x32, 0x37, 0xba, 0x30, 0xba, 0xb4, 0x37, 0x37, 0x90, 0x3b, 0xb4, 0x32, 0xb9, 0x32, 0x90, 0x30, 0x97, 0x30, 0x90, 0xb4, 0x39, 0x90, 0x37, 0x32, 0x72, 0x09, 0xc0, 0xc3, 0x32, 0xbb, 0x32, 0xb9, 0x3c, 0x10, 0x33, 0x37, 0x10, 0xb4, 0xb0, 0x39, 0x90, 0x30, 0x90, 0x3a, 0xb7, 0xb4, 0xb8, 0xba, 0x32, 0x10, 0xb9, 0x32, 0x38, 0xb9, 0xb2, 0xb9, 0x32, 0x37, 0xba, 0x30, 0xba, 0xb4, 0x37, 0x37, 0x90, 0x37, 0x33, 0x10, 0x3a, 0xb4, 0xb4, 0x39, 0x90, 0xb5, 0x34, 0x37, 0xb2, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0xfa, 0x7f, 0xd3, 0x86, 0xaf, 0x70, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x45, 0x26, 0xee, 0x41, 0x9a, 0x2d, 0xd4, 0xe1, 0x31, 0x99, 0x0d, 0x4f, 0xeb, 0x6c, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0x90, 0xe4, 0xe9, 0xb4, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0x7c, 0xdc, 0x83, 0x34, 0x5b, 0xa8, 0x35, 0x48, 0xb5, 0x71, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x09, 0xdb, 0x4f, 0x1b, 0x24, 0xcd, 0x38, 0xad, 0xe1, 0x47, 0x98, 0x81, 0x9f, 0x23, 0x23, 0xb5, 0x02, 0xde, 0x1c, 0x9c, 0xbb, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xf7, 0x5c, 0x5b, 0x18, 0x1b, 0x5b, 0xd9, 0x1c, 0x1d, 0x88, 0xdb, 0x9b, 0x5c, 0x5b, 0x18, 0xdb, 0x86, 0x5f, 0x5c, 0x36, 0x48, 0xa1, 0x82, 0x5a, 0xc3, 0xe7, 0x2e, 0x83, 0x87, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xd0, 0xee, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x5e, 0xf3, 0x39, 0x48, 0xef, 0x7f, 0xaa, 0x59, 0x83, 0x04, 0x11, 0xa8, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0x12, 0x07, 0x9c, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xf4, 0xe1, 0x83, 0xd5, 0x36, 0xfc, 0x45, 0xb3, 0x41, 0x9a, 0xc4, 0xd2, 0x06, 0x41, 0x7a, 0xba, 0x41, 0xc1, 0xb3, 0xb9, 0x06, 0x89, 0x6d, 0x46, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x1c, 0x17, 0xbb, 0x5b, 0xc3, 0x1b, 0x77, 0x1b, 0x5e, 0xbe, 0x0b, 0xde, 0x8c, 0xdd, 0xf0, 0xb4, 0xce, 0xc1, 0xc9, 0xa9, 0x6f, 0x0d, 0xce, 0xb9, 0x29, 0x07, 0x29, 0x1b, 0x53, 0x6b, 0x90, 0xb2, 0xc5, 0xb4, 0xe1, 0xdd, 0x9e, 0x0d, 0x92, 0x3d, 0xa6, 0xd6, 0xf0, 0xc6, 0xdd, 0x86, 0x97, 0xef, 0x82, 0x1f, 0x2b, 0x0f, 0x12, 0x61, 0xa6, 0xd6, 0x20, 0x21, 0xcc, 0xe8, 0x20, 0x95, 0x68, 0x6a, 0x0d, 0x4e, 0x7b, 0x27, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0xd9, 0x63, 0x6a, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0x2e, 0x78, 0xb7, 0xf2, 0x20, 0x11, 0x66, 0xaa, 0xc3, 0x29, 0xb6, 0x06, 0x47, 0xda, 0xe5, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x23, 0xed, 0x72, 0x03, 0xf8, 0x91, 0xc9, 0x85, 0x9d, 0xbd, 0xb9, 0xd1, 0xec, 0x80, 0x9c, 0x95, 0xd1, 0x6d, 0x78, 0x7c, 0x64, 0x83, 0x23, 0xed, 0xf2, 0x86, 0x5f, 0x94, 0x36, 0x48, 0xff, 0x6f, 0xda, 0xf0, 0x17, 0xcd, 0x1a, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xf0, 0x72, 0x56, 0x17, 0x26, 0x17, 0xe6, 0x46, 0x57, 0x56, 0x46, 0x06, 0x12, 0x36, 0x36, 0x56, 0x27, 0x17, 0x46, 0x57, 0xb6, 0xe1, 0x73, 0xa5, 0x0d, 0x8e, 0x27, 0x27, 0x1b, 0x1c, 0x85, 0x4e, 0xda, 0xf0, 0x6e, 0xde, 0x1a, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xf0, 0x61, 0xf6, 0x26, 0x07, 0x22, 0xf7, 0x56, 0xe7, 0x46, 0x56, 0x46, 0x06, 0x62, 0xc6, 0xf6, 0x16, 0x46, 0x37, 0xb7, 0xe1, 0xdf, 0x9c, 0x0d, 0xd2, 0x35, 0x9d, 0x0e, 0x0f, 0xde, 0x6c, 0x50, 0xf4, 0xe9, 0x6e, 0x78, 0x70, 0x67, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0x0f, 0x0f, 0x8e, 0xec, 0xf0, 0xd0, 0xcf, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xf2, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x0d, 0x78, 0xd7, 0xf0, 0x8b, 0xcb, 0x86, 0x07, 0x6f, 0xd6, 0xf0, 0x41, 0xce, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x5d, 0x26, 0xea, 0x20, 0x15, 0xcf, 0x69, 0x83, 0xc4, 0x32, 0xa7, 0xc3, 0x83, 0x37, 0x1d, 0xa4, 0x6a, 0x3a, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x3e, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0xd2, 0x80, 0x77, 0x0d, 0xbf, 0xb8, 0x6c, 0x78, 0xf0, 0x66, 0x0d, 0x8a, 0x1d, 0xcd, 0x83, 0xf4, 0x1b, 0xaa, 0x0e, 0x0a, 0xe2, 0xf1, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x81, 0x6f, 0x73, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x69, 0xc0, 0xbb, 0x41, 0x62, 0x0b, 0xd5, 0x41, 0x41, 0x3c, 0xbe, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xf0, 0x6d, 0xf0, 0x86, 0xb7, 0x75, 0x06, 0xbe, 0xcd, 0x6d, 0x83, 0x52, 0x42, 0x7c, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0x85, 0x2e, 0xed, 0x0c, 0x8d, 0xae, 0xcc, 0x0d, 0x84, 0xed, 0xed, 0xae, 0x4c, 0x0e, 0x44, 0xec, 0xad, 0xce, 0x8d, 0x6c, 0xc3, 0x23, 0xac, 0x6b, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x9f, 0x66, 0x06, 0xe2, 0x56, 0x86, 0x47, 0x07, 0x32, 0xd7, 0x16, 0xc6, 0xc6, 0x56, 0x36, 0x47, 0xb7, 0xe1, 0xdf, 0x9c, 0x0d, 0xd2, 0x35, 0x9d, 0x0e, 0x52, 0xb6, 0xa5, 0xd6, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0x0e, 0x33, 0xb6, 0xb7, 0x30, 0x3a, 0x90, 0xb4, 0x39, 0x10, 0xb4, 0x30, 0x36, 0x33, 0x90, 0x2a, 0x26, 0x28, 0xd6, 0x86, 0x5f, 0xc9, 0xd6, 0xf0, 0x36, 0xeb, 0x86, 0x7f, 0x73, 0x36, 0x48, 0x9a, 0x71, 0x3a, 0x48, 0xcc, 0x82, 0x5a, 0xc3, 0xbf, 0x39, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x23, 0x2b, 0x73, 0xdb, 0xf0, 0xc6, 0xdd, 0xc1, 0x11, 0xec, 0xa4, 0xd6, 0x70, 0x49, 0x6d, 0x50, 0xd4, 0x88, 0xb7, 0xe1, 0x92, 0xda, 0xa0, 0xa8, 0x11, 0x5f, 0x81, 0x6f, 0x83, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0xa5, 0x01, 0xef, 0x86, 0x07, 0x6f, 0xd6, 0xf0, 0xb6, 0xce, 0x41, 0x02, 0x4f, 0x55, 0x6b, 0x50, 0xf0, 0x6c, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0xd2, 0x80, 0x77, 0xc3, 0x83, 0x37, 0x07, 0x87, 0xbe, 0xbe, 0x35, 0x38, 0xb7, 0xf3, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0xd2, 0x80, 0x77, 0xc3, 0x83, 0x37, 0x07, 0x27, 0x79, 0xbe, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xeb, 0x41, 0x02, 0x8f, 0xd3, 0x1a, 0x3e, 0x77, 0x19, 0x3c, 0xde, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0x59, 0x1c, 0xe7, 0xb0, 0x68, 0xd5, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0xf9, 0x21, 0x6a, 0x83, 0xc3, 0x39, 0xdf, 0x1a, 0x7e, 0x84, 0xd9, 0x50, 0xf3, 0x43, 0xd2, 0x1a, 0x7e, 0x84, 0xd9, 0x50, 0xf3, 0x43, 0x54, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0x41, 0xce, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x91, 0xf1, 0x69, 0x83, 0xe3, 0x27, 0xdf, 0xc1, 0xa1, 0x97, 0x6f, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x05, 0x5f, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0x49, 0xe5, 0x50, 0x6b, 0x78, 0x5b, 0xe7, 0x20, 0x89, 0xba, 0xea, 0x20, 0x0d, 0x55, 0x6a, 0x0d, 0x0a, 0x9e, 0xcd, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0xc5, 0x71, 0x0e, 0x89, 0xa3, 0x36, 0x38, 0x7e, 0xf2, 0x1d, 0xa4, 0xbb, 0x56, 0xad, 0x41, 0x92, 0x26, 0xd5, 0x86, 0x77, 0x7b, 0x36, 0x48, 0x8d, 0xaf, 0xda, 0x20, 0xdd, 0x92, 0xea, 0x20, 0xdd, 0xb5, 0x6a, 0x0d, 0x12, 0x78, 0xaa, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x6a, 0x7c, 0xd5, 0x06, 0x89, 0x4a, 0x55, 0x07, 0xe9, 0xae, 0x55, 0x6d, 0xf8, 0x0a, 0x67, 0xc3, 0x07, 0x39, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x34, 0x6c, 0xa5, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xf2, 0x43, 0xd4, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x35, 0xbe, 0x6a, 0x83, 0xe3, 0x27, 0xdf, 0x41, 0xb0, 0xb2, 0x1e, 0x24, 0x29, 0x55, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x52, 0xe3, 0xab, 0x36, 0x38, 0x9c, 0xf3, 0x1d, 0x04, 0x2b, 0x6b, 0x6b, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0x70, 0x6e, 0xe7, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0xa9, 0xf1, 0x55, 0x1b, 0x1c, 0xce, 0xf9, 0x0e, 0xd2, 0x5d, 0xab, 0xd6, 0x20, 0x89, 0xba, 0x6a, 0xc3, 0xbb, 0x3d, 0x1b, 0x24, 0x6c, 0x3f, 0x1d, 0xa4, 0x78, 0x57, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0xcf, 0x5d, 0x06, 0xaf, 0x0f, 0x0f, 0xde, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xdf, 0xc3, 0x83, 0x37, 0x6d, 0xf8, 0x0a, 0x67, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0x7b, 0xc3, 0xbb, 0x3d, 0x1b, 0xfe, 0xa2, 0xdc, 0x20, 0xc1, 0xbd, 0xea, 0xe0, 0x24, 0xcf, 0xb7, 0x41, 0x29, 0x21, 0xbe, 0x86, 0x4b, 0x6a, 0x83, 0xa2, 0x46, 0x7c, 0x83, 0x04, 0xea, 0xaa, 0x35, 0x08, 0x02, 0xb4, 0x83, 0x43, 0x79, 0xcb, 0x1a, 0x14, 0x3c, 0x9b, 0x07, 0x27, 0xd1, 0x96, 0x83, 0x34, 0x01, 0xab, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x6f, 0x9a, 0x1b, 0x08, 0xdb, 0xdb, 0x5d, 0x99, 0x1c, 0x88, 0xd8, 0x5b, 0x9d, 0x1b, 0xd9, 0x86, 0xcf, 0x5d, 0x06, 0x67, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x22, 0xe3, 0xd3, 0x06, 0x29, 0x42, 0x56, 0x1b, 0xa4, 0x5b, 0x52, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0xb2, 0x86, 0x3b, 0x6d, 0x19, 0xc0, 0x37, 0xcd, 0x0d, 0xa4, 0x0e, 0x0e, 0xae, 0x4c, 0x0e, 0x44, 0xec, 0xad, 0xce, 0x8d, 0x2c, 0x1c, 0xdd, 0xf0, 0x2b, 0xd9, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x91, 0xf1, 0x69, 0x83, 0xd4, 0x2a, 0xab, 0x83, 0x24, 0xa5, 0xaa, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x1b, 0xc5, 0x0d, 0x52, 0x84, 0xac, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0x59, 0x1c, 0xe7, 0xd0, 0xe2, 0xa3, 0x83, 0xe4, 0x9f, 0xab, 0xda, 0xf0, 0x41, 0xce, 0x1a, 0x1e, 0x61, 0x5d, 0xc3, 0xdb, 0xac, 0x1b, 0xde, 0xd6, 0x39, 0x18, 0xa4, 0x52, 0x6b, 0x78, 0x9b, 0xf5, 0xe0, 0xa0, 0x4c, 0xd7, 0x1a, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0xf6, 0x05, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0xf2, 0x43, 0xd4, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x35, 0xbe, 0x6a, 0x0d, 0x6f, 0xeb, 0x1c, 0xf6, 0x05, 0x0e, 0xd2, 0x5d, 0xab, 0xd6, 0xf0, 0xb6, 0xce, 0x41, 0x10, 0xa0, 0xd5, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xf1, 0x86, 0x47, 0x58, 0x37, 0x38, 0x28, 0xd3, 0xad, 0xe1, 0x57, 0xb2, 0x0d, 0x92, 0xd7, 0xae, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x6f, 0x14, 0x37, 0x48, 0x11, 0xb2, 0x3a, 0x38, 0xc9, 0xf3, 0xd5, 0x06, 0x45, 0x9f, 0xee, 0x86, 0x7d, 0x81, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xf2, 0x43, 0xd4, 0x06, 0x29, 0x8f, 0x57, 0x6b, 0xf8, 0x20, 0x67, 0x83, 0xd3, 0x91, 0xc8, 0x1a, 0x3e, 0x8e, 0x3a, 0x48, 0x0c, 0xbd, 0x3a, 0x48, 0x0c, 0xbd, 0x6a, 0xc3, 0x2f, 0x2e, 0x1b, 0xa4, 0x79, 0x57, 0x6d, 0x90, 0x70, 0x79, 0xd5, 0x6a, 0x58, 0x6f, 0xde, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0xac, 0x37, 0x37, 0x80, 0x07, 0x5b, 0xd9, 0xdc, 0x5c, 0x0b, 0x1d, 0x5a, 0x98, 0xdb, 0x86, 0x5f, 0x94, 0x36, 0x48, 0x40, 0x84, 0xda, 0xf0, 0x17, 0xcd, 0x86, 0x0f, 0x56, 0x37, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0x36, 0x48, 0x9a, 0x71, 0x3a, 0x48, 0x18, 0x8d, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x24, 0x32, 0x3e, 0x1d, 0xa4, 0xe0, 0x46, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x3e, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0xc4, 0x11, 0xa7, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0xbc, 0x34, 0x31, 0xb6, 0xc3, 0x43, 0x3f, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x74, 0x2f, 0xac, 0xc3, 0x5b, 0x68, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0x6c, 0x78, 0x7a, 0xe7, 0x20, 0x65, 0xc8, 0x69, 0x83, 0x22, 0xa7, 0x75, 0xc3, 0x07, 0x39, 0x6b, 0xf8, 0x37, 0x67, 0xc3, 0xd3, 0x3b, 0x07, 0xa9, 0xa8, 0x52, 0x1b, 0x14, 0xb0, 0xf9, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xc4, 0x11, 0xa7, 0x83, 0x44, 0xcf, 0xa8, 0x83, 0x94, 0x21, 0xa7, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x22, 0xe3, 0xd3, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xc4, 0xc7, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0x1e, 0xbc, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0xa4, 0x39, 0x6d, 0x90, 0x6e, 0x19, 0x55, 0x07, 0xa9, 0x9a, 0x4e, 0x07, 0x69, 0xcf, 0x50, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0x91, 0xf1, 0x69, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x1a, 0xf0, 0x1e, 0x24, 0x02, 0x63, 0x1d, 0xa4, 0x3d, 0x43, 0x1d, 0x4e, 0xb1, 0x5a, 0xc0, 0x63, 0x33, 0x73, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0x78, 0xd9, 0xc2, 0xe4, 0xce, 0xca, 0xe6, 0xe8, 0x36, 0xfc, 0xe2, 0xb2, 0x86, 0xcf, 0x5d, 0x06, 0x2f, 0x0f, 0x12, 0xcd, 0x9f, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xe1, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x23, 0x81, 0xa1, 0x0d, 0x0f, 0xde, 0x6c, 0x90, 0xe2, 0xff, 0x74, 0x50, 0x10, 0x8f, 0x77, 0x38, 0xc5, 0xd6, 0x90, 0x38, 0xda, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x24, 0x8e, 0x1a, 0xe0, 0x6f, 0xab, 0x63, 0xa3, 0x4b, 0x83, 0x63, 0xcb, 0xdb, 0xf0, 0x8b, 0xd2, 0x06, 0x09, 0x88, 0x50, 0x1b, 0xfe, 0xa2, 0xd9, 0x20, 0x4d, 0x62, 0x69, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xa4, 0x03, 0xa8, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x09, 0xdb, 0x4f, 0x07, 0x89, 0x9e, 0x51, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xd4, 0xf8, 0xaa, 0x83, 0x14, 0xdc, 0xa8, 0x56, 0x43, 0xfa, 0x70, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x36, 0x38, 0xf2, 0x6e, 0x0c, 0xe0, 0x1d, 0x46, 0x46, 0xb6, 0x03, 0x52, 0x86, 0x17, 0x36, 0x46, 0x07, 0x92, 0x66, 0x06, 0x52, 0xb6, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0xe2, 0x80, 0xd3, 0x06, 0xe9, 0x8f, 0x50, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0xf2, 0xf0, 0xc1, 0x6a, 0x1b, 0xfe, 0xa2, 0xd9, 0x20, 0x4d, 0x62, 0x69, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xf0, 0xf8, 0x20, 0xdd, 0x32, 0x6a, 0xc3, 0x57, 0x38, 0x1b, 0x14, 0x3b, 0x9a, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x74, 0x99, 0xa8, 0x83, 0x43, 0x2f, 0xdf, 0x1a, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xf8, 0x87, 0x81, 0xa0, 0x85, 0xcd, 0x81, 0xb0, 0x85, 0xc9, 0x9d, 0x95, 0xc9, 0x81, 0x94, 0xe1, 0xc1, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x1b, 0x9c, 0x46, 0x6e, 0x36, 0x38, 0x57, 0xdc, 0xac, 0xc1, 0x11, 0x27, 0x63, 0xc3, 0xc7, 0x51, 0x07, 0xa7, 0x23, 0x91, 0x36, 0x7c, 0x90, 0xb3, 0x41, 0x39, 0x01, 0xbd, 0x86, 0x5f, 0x5c, 0x36, 0x48, 0x71, 0x72, 0xda, 0xa0, 0xc8, 0x69, 0xdd, 0x20, 0x61, 0x34, 0x6a, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0xfc, 0x10, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x0d, 0x78, 0xd7, 0xf0, 0x8b, 0xcb, 0x86, 0x07, 0x6f, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x29, 0x69, 0x4e, 0x07, 0x87, 0x5e, 0xbe, 0x0e, 0x52, 0x35, 0x9d, 0x0e, 0xd2, 0x9e, 0xa1, 0xda, 0xf0, 0x89, 0xcd, 0x06, 0xc9, 0xa4, 0x50, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0xdf, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x24, 0x95, 0x43, 0x6d, 0x90, 0x34, 0xe3, 0xb4, 0xc1, 0x89, 0xfd, 0x66, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0x78, 0x28, 0xc3, 0x83, 0x0b, 0x73, 0x23, 0x2b, 0x23, 0x03, 0x29, 0xc3, 0x83, 0x03, 0x79, 0x33, 0x03, 0x09, 0x3b, 0x48, 0x94, 0x7f, 0xda, 0xf0, 0x41, 0xce, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0x8d, 0xe2, 0x06, 0x29, 0xfe, 0x4f, 0x07, 0x29, 0xfc, 0x50, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x94, 0xab, 0xab, 0x83, 0x74, 0x52, 0xad, 0xc3, 0x83, 0x37, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0xe3, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x24, 0x6c, 0x3f, 0x6d, 0x90, 0x30, 0x1a, 0xb5, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x0f, 0x68, 0x69, 0x67, 0x68, 0x65, 0x73, 0x74, 0x20, 0x65, 0x78, 0x70, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x62, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0x51, 0xfe, 0x69, 0x83, 0x54, 0x8c, 0xa8, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0x3c, 0x90, 0xbd, 0xb9, 0x9d, 0xd0, 0x81, 0xb8, 0x95, 0x95, 0x91, 0x81, 0xd0, 0xbd, 0x81, 0x84, 0x91, 0x91, 0x6d, 0xf8, 0x37, 0x67, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x38, 0xe2, 0xb4, 0xc1, 0x21, 0xbf, 0xe5, 0x20, 0x91, 0xd2, 0xe9, 0x20, 0x15, 0x55, 0x6a, 0x0d, 0x82, 0xf4, 0x74, 0x83, 0x82, 0x67, 0x73, 0x0d, 0x12, 0xdb, 0x8c, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0xb2, 0xc7, 0xd4, 0x06, 0xc9, 0x26, 0x53, 0x07, 0x89, 0x26, 0x50, 0x6b, 0x70, 0xce, 0x4d, 0x39, 0x48, 0xd2, 0xd9, 0x5a, 0x83, 0x94, 0x2d, 0xa6, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0xec, 0x31, 0xb5, 0x86, 0x37, 0xee, 0x36, 0xbc, 0x7c, 0x17, 0x3c, 0xdb, 0x79, 0x90, 0x68, 0x02, 0xb5, 0x06, 0x09, 0x61, 0x46, 0x07, 0x09, 0x57, 0x5b, 0x6b, 0x70, 0xda, 0x3b, 0xd9, 0xf0, 0x6e, 0xcf, 0x06, 0xc9, 0x1e, 0x53, 0x6b, 0x78, 0xe3, 0x6e, 0xc3, 0xcb, 0x77, 0xc1, 0xbb, 0x85, 0x07, 0x89, 0x26, 0x50, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0xb4, 0xb2, 0xac, 0x35, 0xfc, 0xe2, 0x72, 0x90, 0xb8, 0xa2, 0xd5, 0x0a, 0x78, 0x73, 0x68, 0xe6, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0xea, 0xe7, 0x56, 0x03, 0xf0, 0x13, 0x06, 0xa2, 0x02, 0x22, 0xe3, 0x25, 0xb6, 0x03, 0xe2, 0xf6, 0x06, 0x22, 0xf7, 0x56, 0xe7, 0x46, 0x96, 0xe6, 0x76, 0xb6, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0x42, 0xc3, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x5c, 0x3c, 0x38, 0x9e, 0x9c, 0xb4, 0xe1, 0x83, 0x9c, 0x35, 0xfc, 0x4a, 0xb6, 0x06, 0xc5, 0x24, 0xe6, 0x1a, 0x3e, 0x57, 0xda, 0xe0, 0xb4, 0x77, 0x72, 0x70, 0x88, 0xe9, 0x38, 0x3c, 0xb8, 0xb3, 0x06, 0xc5, 0x24, 0xe6, 0x1a, 0x3e, 0x57, 0xda, 0xe0, 0xa8, 0x75, 0x72, 0x70, 0x88, 0xe9, 0x38, 0x3c, 0xb8, 0xd3, 0x86, 0xa7, 0x75, 0x36, 0x5c, 0x52, 0x1b, 0x1e, 0xdc, 0x59, 0x83, 0x22, 0x04, 0x7a, 0xc3, 0xbb, 0x3d, 0x1b, 0x24, 0x6c, 0x3f, 0x6d, 0x90, 0x34, 0xe3, 0x74, 0x78, 0x0b, 0xad, 0xd5, 0xe0, 0xb8, 0xd8, 0xbd, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x70, 0x5c, 0xec, 0x6e, 0x00, 0x3e, 0xc7, 0xca, 0xdc, 0xe8, 0xe4, 0xc2, 0xd8, 0x40, 0xe4, 0xde, 0xea, 0xdc, 0xc8, 0xd2, 0xdc, 0xce, 0x40, 0xda, 0xca, 0xc6, 0xd0, 0xc2, 0xdc, 0xd2, 0xe6, 0xda, 0x95, 0x00, 0x34, 0x1b, 0x0b, 0x73, 0x03, 0x81, 0x2b, 0x93, 0x33, 0x7b, 0x93, 0x6b, 0xd3, 0x01, 0x31, 0x63, 0x7b, 0x7b, 0x93, 0x63, 0x01, 0x19, 0x2b, 0x4b, 0x63, 0x4b, 0x73, 0x3b, 0x63, 0x01, 0x99, 0x6b, 0x0b, 0x63, 0x63, 0x2b, 0x93, 0x63, 0x01, 0x61, 0x0b, 0x93, 0x3b, 0x2b, 0x93, 0x63, 0xb5, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x00, 0xba, 0xcf, 0x81, 0xa4, 0xcd, 0x81, 0xcc, 0xd1, 0xa5, 0x8d, 0xad, 0xe5, 0x81, 0x88, 0xa5, 0xd1, 0xe9, 0x80, 0xc8, 0x95, 0xc1, 0xc9, 0x95, 0xcd, 0x95, 0xb9, 0xd1, 0xcd, 0x81, 0x84, 0x81, 0xd8, 0x85, 0xb1, 0xd5, 0x95, 0x81, 0xb0, 0x95, 0xcd, 0xcd, 0x81, 0xd0, 0xa1, 0x85, 0xb9, 0x81, 0xd4, 0xb1, 0xc1, 0xa1, 0x84, 0xa5, 0x80, 0xf4, 0x80, 0xc8, 0x78, 0xa1, 0x94, 0xb9, 0x84, 0xa5, 0x36, 0x3c, 0x3e, 0xb2, 0xc1, 0x71, 0xb1, 0x7b, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x4e, 0x6f, 0x10, 0x6c, 0xa6, 0x6b, 0xc8, 0x80, 0x1f, 0xa4, 0xa8, 0x4c, 0xad, 0x21, 0x03, 0x7e, 0x90, 0xfe, 0x34, 0xb5, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x82, 0x9f, 0x6b, 0xd7, 0x90, 0x01, 0x3f, 0x48, 0x12, 0xdb, 0x5a, 0x43, 0x06, 0xfc, 0x20, 0x4d, 0x6e, 0x6a, 0x0d, 0x19, 0xf0, 0x83, 0x64, 0xc2, 0xad, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x17, 0xbc, 0x1b, 0xdd, 0x06, 0x89, 0x03, 0x4e, 0x07, 0x67, 0xb5, 0x93, 0x0d, 0x7f, 0xd1, 0x6c, 0x90, 0x26, 0xb1, 0xb4, 0xe1, 0xdd, 0xbc, 0x0d, 0x52, 0xf7, 0xa7, 0x36, 0x38, 0xda, 0xf0, 0xad, 0x41, 0xb1, 0xa3, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x48, 0xeb, 0xa8, 0x3a, 0x48, 0x71, 0x72, 0x5a, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x6f, 0x33, 0xb6, 0xba, 0x39, 0x34, 0x10, 0xb2, 0x32, 0xb7, 0x37, 0xb9, 0xb6, 0x30, 0xb6, 0xb9, 0xc3, 0x33, 0x93, 0x1b, 0x14, 0x3b, 0x9a, 0x6b, 0x50, 0x4c, 0x62, 0xae, 0xe1, 0x73, 0xa5, 0x0d, 0x8e, 0xfa, 0x26, 0x07, 0x87, 0x98, 0x8e, 0xc3, 0x97, 0x93, 0x1b, 0x9e, 0x99, 0xdc, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0xc5, 0xbf, 0x1b, 0x1e, 0xbc, 0x59, 0xc3, 0x25, 0xb5, 0x06, 0x61, 0x20, 0x5f, 0x1d, 0xa4, 0xf8, 0x3f, 0x6d, 0x78, 0x66, 0x72, 0xc3, 0x2f, 0x2e, 0x1b, 0xa4, 0x38, 0x39, 0x6d, 0x50, 0xe4, 0xb4, 0xae, 0xe1, 0x6d, 0x9d, 0x01, 0x4f, 0xaf, 0x4c, 0xae, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xdb, 0x83, 0x84, 0x57, 0xa8, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0x41, 0xae, 0x2c, 0xae, 0x2e, 0x4d, 0xae, 0x0c, 0x04, 0x4e, 0xae, 0x6c, 0x2c, 0x6d, 0x2e, 0xed, 0xcd, 0x6d, 0xc3, 0xaf, 0x64, 0x1b, 0x1c, 0xce, 0xf9, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x6f, 0x14, 0x37, 0x38, 0x84, 0x4e, 0x1c, 0xa4, 0xf7, 0x3f, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0x78, 0xbc, 0x41, 0xd1, 0x69, 0xbc, 0x41, 0x91, 0x65, 0xba, 0x86, 0x0f, 0x72, 0x36, 0x48, 0x5c, 0xef, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0x5c, 0x5d, 0x1d, 0x24, 0xc9, 0x77, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x2f, 0x57, 0x46, 0x56, 0x37, 0x56, 0x06, 0x02, 0x27, 0x57, 0x36, 0x96, 0x36, 0x97, 0xf6, 0xe6, 0x76, 0x78, 0xf0, 0x66, 0x83, 0x13, 0xfb, 0xcd, 0x06, 0x29, 0x69, 0x4e, 0x1b, 0x3e, 0xc8, 0xd9, 0x20, 0x39, 0xa3, 0x6a, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0xfc, 0xcb, 0xdc, 0xcc, 0xde, 0xe4, 0xc6, 0xca, 0x40, 0xda, 0xd2, 0xdc, 0x5c, 0x40, 0xca, 0xf0, 0xe0, 0x0e, 0x12, 0x78, 0x9c, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x89, 0x23, 0x4e, 0x1b, 0x24, 0xcd, 0x38, 0x6d, 0x90, 0x98, 0x05, 0xd5, 0x41, 0xca, 0x90, 0xd3, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0xa9, 0x1c, 0x6a, 0x83, 0xc4, 0x2c, 0xa8, 0x83, 0x54, 0x3c, 0xa7, 0x83, 0x04, 0x1e, 0xa7, 0x0d, 0x8a, 0x0e, 0xda, 0xc1, 0xc5, 0x0d, 0x0f, 0xee, 0xac, 0x41, 0x61, 0xa8, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x32, 0x71, 0xd7, 0xf0, 0x8b, 0xcb, 0x86, 0x07, 0x6f, 0x0e, 0x0e, 0xbd, 0x7c, 0x07, 0xa9, 0x9a, 0x4e, 0x1b, 0x2e, 0xa9, 0x0d, 0x0f, 0xee, 0xac, 0x41, 0x11, 0x02, 0xbd, 0xe1, 0xdd, 0x9e, 0x0d, 0x12, 0xb6, 0x9f, 0x36, 0x48, 0x9a, 0x71, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x24, 0xca, 0x3f, 0x1d, 0x1c, 0x7a, 0xf9, 0x5a, 0xc3, 0x83, 0x3b, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xc4, 0xc7, 0x3d, 0x48, 0x72, 0xf5, 0x6a, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x24, 0x4f, 0xa7, 0x35, 0xbc, 0x9b, 0xb7, 0x41, 0x72, 0x46, 0xd5, 0x06, 0x41, 0x7a, 0xba, 0xc1, 0x81, 0xa6, 0x6f, 0x0d, 0xd2, 0xd2, 0xb9, 0x0e, 0x92, 0x47, 0xbb, 0xd6, 0x20, 0xfd, 0x9e, 0xeb, 0x20, 0x79, 0xb4, 0x6b, 0x0d, 0x52, 0xe1, 0xb9, 0x36, 0xfc, 0xe2, 0xb2, 0x41, 0x8a, 0x93, 0xd3, 0x06, 0x45, 0x4e, 0xeb, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0x39, 0x06, 0xaa, 0xd6, 0x20, 0x31, 0xa0, 0xeb, 0x20, 0x89, 0xe3, 0x6b, 0x0d, 0x92, 0x11, 0xba, 0x36, 0x7c, 0x90, 0xb3, 0xc1, 0xe1, 0x9c, 0x6f, 0x0d, 0xbf, 0xb8, 0x6c, 0x90, 0xe2, 0xe4, 0xb4, 0x41, 0x91, 0xd3, 0xba, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x2f, 0x7e, 0x37, 0xbc, 0x17, 0xb4, 0x86, 0x77, 0x7b, 0x36, 0x28, 0xb4, 0x7b, 0x37, 0x38, 0xe9, 0xf6, 0xd5, 0x06, 0xa9, 0xaf, 0x5d, 0x07, 0x29, 0x28, 0x5f, 0x6d, 0xf8, 0xc5, 0x65, 0x83, 0x14, 0x27, 0xa7, 0x0d, 0x8a, 0x9c, 0xd6, 0x35, 0x7c, 0x90, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x48, 0x64, 0x7c, 0x3a, 0x48, 0xda, 0xfa, 0x3a, 0x48, 0x57, 0xfb, 0x6a, 0x0d, 0x92, 0x2e, 0xba, 0x0e, 0x92, 0x7a, 0xbe, 0xd6, 0x20, 0x01, 0xa2, 0xeb, 0x20, 0x6d, 0xee, 0xab, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0x0f, 0xee, 0x6c, 0x90, 0xe0, 0x40, 0xb5, 0x41, 0xd1, 0xa7, 0xbb, 0xe1, 0xc1, 0x9d, 0x35, 0x08, 0xd2, 0xd3, 0x0d, 0x0e, 0x34, 0x7d, 0x6b, 0x90, 0x96, 0xce, 0x75, 0x78, 0x5a, 0x67, 0x0d, 0x12, 0x03, 0xba, 0x36, 0x5c, 0x52, 0x1b, 0x1e, 0xdc, 0x59, 0xc3, 0x83, 0x3b, 0x1b, 0x3e, 0x8e, 0x3a, 0x48, 0xd7, 0x74, 0x6a, 0x0d, 0xd2, 0xef, 0xb9, 0x36, 0x28, 0x76, 0x34, 0xd7, 0xf0, 0x08, 0xeb, 0x06, 0x27, 0x20, 0xbd, 0x83, 0x93, 0x3c, 0xdf, 0x86, 0xa7, 0x75, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x47, 0x58, 0x37, 0x48, 0x6f, 0xa8, 0x5a, 0xc3, 0xdb, 0xac, 0x07, 0xc9, 0x19, 0x55, 0xad, 0xe1, 0x92, 0xda, 0xf0, 0xe0, 0xce, 0x1a, 0x1e, 0xdc, 0xd9, 0xf0, 0x6e, 0xcf, 0x86, 0xd7, 0x7c, 0x0e, 0x52, 0x35, 0x9d, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0x3c, 0xdf, 0xf0, 0x6e, 0xcf, 0x86, 0xd7, 0x7c, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xa9, 0xf1, 0x55, 0x1b, 0xa4, 0x6b, 0x3a, 0x1d, 0x04, 0x2b, 0x6b, 0x1b, 0x14, 0x3b, 0x9a, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x17, 0xbf, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xa2, 0xf8, 0x77, 0xc3, 0x83, 0x37, 0x07, 0xe9, 0xd5, 0x4e, 0x07, 0xe9, 0xfd, 0x4f, 0x1b, 0xa4, 0x1e, 0x80, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x54, 0x0e, 0x75, 0x90, 0x42, 0x2a, 0x75, 0x90, 0x5e, 0xed, 0xb4, 0x06, 0xa9, 0xf0, 0x5c, 0x1b, 0x3e, 0xc8, 0xd9, 0x20, 0xb1, 0xfc, 0x6b, 0xc3, 0xd3, 0x3a, 0x07, 0x49, 0xcb, 0x5f, 0x6b, 0x90, 0x8c, 0xd0, 0xb5, 0x41, 0x09, 0x8f, 0xb9, 0xe1, 0xf3, 0xa0, 0x0d, 0x4f, 0xeb, 0x6c, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x9e, 0x1f, 0xa4, 0x7b, 0x7d, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0x78, 0x91, 0x7b, 0xab, 0x73, 0x23, 0x03, 0x41, 0x0b, 0x63, 0x33, 0x9b, 0x03, 0xa1, 0x7b, 0x03, 0x29, 0xb3, 0x2b, 0x73, 0xdb, 0xf0, 0x08, 0xeb, 0x1a, 0xfe, 0xcd, 0xd9, 0xf0, 0x5e, 0xd0, 0x41, 0x8a, 0xb5, 0xd3, 0xc1, 0x49, 0x9e, 0x6f, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x8e, 0xde, 0x71, 0x1b, 0xa4, 0x6b, 0x3a, 0x1d, 0x14, 0xc4, 0xe3, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0xbe, 0x9c, 0x5c, 0x83, 0x52, 0x42, 0x7c, 0xe3, 0xf9, 0xe1, 0x69, 0x9d, 0x0d, 0x4a, 0x09, 0xf1, 0x8d, 0xe7, 0x07, 0x49, 0xcb, 0x5f, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x24, 0x32, 0x3e, 0x6d, 0x78, 0x2f, 0xe8, 0x20, 0xbd, 0xda, 0xe9, 0x20, 0xb9, 0x0f, 0x6c, 0x0d, 0x12, 0x20, 0xba, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x7c, 0x1e, 0xb4, 0xe1, 0x69, 0x9d, 0x0d, 0x9f, 0xd8, 0x6c, 0x90, 0x80, 0x09, 0x76, 0x90, 0x22, 0x10, 0xb6, 0x06, 0x49, 0x17, 0x5d, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x3e, 0x0f, 0xda, 0xf0, 0xb4, 0xce, 0x86, 0x4f, 0x6c, 0x36, 0x48, 0xc0, 0x04, 0xdb, 0xf0, 0x41, 0xce, 0x06, 0x29, 0xc5, 0x60, 0x6b, 0xf8, 0x20, 0x67, 0x83, 0xc3, 0x39, 0xdf, 0x41, 0x72, 0x1f, 0xd8, 0x41, 0x8a, 0x40, 0x58, 0x1b, 0x14, 0x7d, 0xba, 0x1b, 0x1e, 0xdc, 0x59, 0x83, 0x62, 0x47, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x90, 0xf0, 0x0a, 0xb5, 0xe1, 0xe3, 0xa8, 0x83, 0x14, 0xff, 0xa7, 0x0d, 0x4f, 0xeb, 0x6c, 0xb8, 0xa4, 0x36, 0x3c, 0xb8, 0xb3, 0x86, 0x07, 0x77, 0x0e, 0x52, 0x19, 0xa5, 0xd6, 0xa0, 0x08, 0x81, 0x3e, 0x48, 0xe4, 0x94, 0x6a, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x24, 0x4f, 0xa7, 0x0d, 0x92, 0x47, 0xbb, 0x36, 0x7c, 0x90, 0xb3, 0x41, 0x72, 0x46, 0xd5, 0x06, 0x89, 0x4a, 0x4e, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xc4, 0x11, 0xa7, 0x0d, 0x12, 0xcd, 0x9f, 0x0e, 0x52, 0xf1, 0x9c, 0x0e, 0x52, 0x86, 0x9c, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x89, 0x25, 0x55, 0x07, 0xe9, 0x29, 0x50, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xf8, 0x97, 0xb9, 0x99, 0xbd, 0xc9, 0x8d, 0x95, 0x81, 0xb4, 0x85, 0xe1, 0xb9, 0x80, 0x94, 0xe1, 0xc1, 0x1d, 0x24, 0x2a, 0x39, 0x1d, 0x4e, 0xb1, 0x35, 0x48, 0x51, 0x7f, 0xda, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0xbf, 0x2d, 0x0c, 0x2f, 0xad, 0xad, 0xae, 0x0d, 0xa4, 0x0c, 0x0f, 0xee, 0xcd, 0xad, 0xcc, 0x8d, 0x6e, 0xc3, 0xbb, 0x3d, 0x1b, 0x24, 0x6c, 0x3f, 0x6d, 0x90, 0x98, 0x05, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x48, 0x94, 0x7f, 0x3a, 0x38, 0xfe, 0xb8, 0x34, 0x6b, 0x90, 0x10, 0x52, 0xb5, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x3f, 0x64, 0x65, 0x6e, 0x6f, 0x72, 0x6d, 0x2b, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x2b, 0x69, 0x6e, 0x66, 0x20, 0x65, 0x78, 0x70, 0x07, 0xe5, 0xba, 0xec, 0xe1, 0x14, 0x5b, 0x83, 0xa4, 0x0a, 0xaa, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xa4, 0x0a, 0xaa, 0x06, 0xc0, 0xcb, 0x32, 0x3c, 0xb8, 0x30, 0x37, 0xb2, 0x39, 0x10, 0xba, 0x37, 0x90, 0xb2, 0x34, 0x3a, 0xb4, 0x32, 0x39, 0x10, 0xb3, 0x3a, 0x36, 0x36, 0x10, 0x38, 0xb9, 0xb2, 0xb1, 0xb4, 0xb9, 0xb4, 0x37, 0x37, 0x90, 0x37, 0x39, 0x10, 0xba, 0x37, 0x10, 0xb2, 0x32, 0xb7, 0x37, 0xb9, 0xb6, 0x30, 0xb6, 0x34, 0xbd, 0x32, 0xb2, 0x0d, 0xbf, 0x28, 0x6d, 0x90, 0xfe, 0xdf, 0xb4, 0xe1, 0x13, 0x9b, 0x0d, 0xd2, 0x50, 0xa1, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x48, 0xc3, 0x56, 0xda, 0x20, 0x81, 0xd7, 0xe8, 0x20, 0xbd, 0xff, 0x69, 0xc3, 0xd3, 0x3a, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0x07, 0x39, 0x1b, 0x24, 0x67, 0x54, 0x6d, 0x90, 0xd6, 0xaa, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0x78, 0xbc, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xf8, 0xbd, 0xe1, 0xdd, 0x9e, 0x0d, 0x92, 0xca, 0xa1, 0x0e, 0x52, 0xf0, 0xbc, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x48, 0x97, 0x89, 0x3a, 0x38, 0xfe, 0xb8, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x52, 0xd2, 0x9c, 0x0e, 0x8e, 0x3f, 0x2e, 0x87, 0x07, 0x6f, 0x36, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x74, 0x03, 0x68, 0x83, 0xd3, 0x91, 0xc8, 0x06, 0x69, 0xad, 0x5a, 0x6d, 0xb8, 0xa4, 0x36, 0x3c, 0xb8, 0xb3, 0x06, 0x45, 0x08, 0xf4, 0x86, 0x77, 0x7b, 0x36, 0x48, 0x2a, 0x87, 0xda, 0x20, 0x69, 0xc6, 0x69, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x28, 0xff, 0xb4, 0xe1, 0x99, 0xc9, 0x5a, 0xc3, 0x83, 0x3b, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x34, 0xe0, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0x1e, 0xbc, 0x39, 0x48, 0x05, 0x1a, 0x3b, 0x48, 0xd5, 0x74, 0x6a, 0x35, 0x48, 0xe9, 0x82, 0xda, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0xbf, 0x2d, 0xcd, 0x2d, 0xad, 0xad, 0xae, 0x0d, 0xa4, 0x0c, 0x0f, 0xee, 0xcd, 0xad, 0xcc, 0x8d, 0xee, 0x20, 0x55, 0x28, 0x6a, 0xd6, 0xa0, 0x4c, 0xc3, 0xda, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x0d, 0x8e, 0x44, 0x7b, 0x03, 0x78, 0xcd, 0xc5, 0xd5, 0x85, 0xc9, 0x95, 0x81, 0xc8, 0xbd, 0xbd, 0xd1, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0xf4, 0xff, 0xa6, 0x0d, 0x7f, 0xd1, 0x6c, 0x90, 0x26, 0xb1, 0xb4, 0x41, 0xd1, 0xa7, 0xbb, 0xe1, 0xc1, 0x9d, 0x35, 0x7c, 0x62, 0xb3, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xf7, 0x41, 0xc2, 0x2b, 0xd4, 0x1a, 0x3e, 0x77, 0x19, 0x1c, 0xdf, 0xf0, 0x6e, 0xcf, 0x06, 0xa9, 0xf1, 0x55, 0x1b, 0xa4, 0xd6, 0x85, 0x1d, 0x04, 0x2b, 0x6b, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0x07, 0x39, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x44, 0xc6, 0xa7, 0x83, 0xd4, 0x90, 0xad, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xca, 0xd5, 0xd5, 0x06, 0xc9, 0x94, 0x4e, 0x07, 0xc7, 0x1f, 0x97, 0xc3, 0x83, 0x37, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0x07, 0x39, 0x6b, 0xf8, 0x37, 0x67, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0xf4, 0x8e, 0xdb, 0xf0, 0xcc, 0xe4, 0x41, 0x41, 0x3c, 0xbe, 0xe1, 0xdd, 0x9e, 0x0d, 0x8e, 0xde, 0x71, 0x1b, 0x24, 0x96, 0x39, 0x1d, 0x14, 0xc4, 0xe3, 0x1b, 0x9e, 0x99, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0xc9, 0x0f, 0x51, 0x07, 0x89, 0x12, 0x64, 0x07, 0x69, 0x22, 0x63, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0xdc, 0x65, 0xf0, 0x7c, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x71, 0x9c, 0x83, 0x32, 0x0d, 0xab, 0x83, 0x54, 0x4d, 0xa7, 0x35, 0x7c, 0xee, 0x32, 0xb8, 0xbe, 0xe1, 0xdd, 0x9e, 0x35, 0x3c, 0x28, 0xb9, 0x86, 0xb7, 0x75, 0x06, 0x3c, 0x33, 0xb9, 0xb0, 0x83, 0x52, 0x48, 0x7d, 0x83, 0xa4, 0x19, 0xa7, 0x35, 0xfc, 0x08, 0x33, 0xf0, 0x73, 0x64, 0x4c, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x34, 0x0f, 0xa8, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0xca, 0xd7, 0xd3, 0x1a, 0xde, 0xd6, 0x19, 0x1c, 0x3e, 0x48, 0xcc, 0x76, 0x6a, 0x0d, 0xff, 0xe6, 0xac, 0xe1, 0x6d, 0x9d, 0xc1, 0xe3, 0x83, 0xc4, 0x6c, 0xa7, 0xc3, 0x83, 0x37, 0x1d, 0x4e, 0xb1, 0x16, 0xf0, 0xe6, 0xee, 0xe4, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0xfc, 0xcd, 0xd8, 0xd2, 0xe0, 0xe0, 0xca, 0xc8, 0x40, 0xe4, 0xde, 0xea, 0xdc, 0xc8, 0xd2, 0xdc, 0xce, 0x36, 0x38, 0x39, 0xc8, 0x6d, 0x50, 0xf0, 0x6c, 0x6e, 0x70, 0xfc, 0xe4, 0x5b, 0x83, 0x73, 0x6e, 0xca, 0x41, 0xca, 0xbf, 0xd3, 0x1a, 0x24, 0x84, 0x19, 0x1d, 0xa4, 0x93, 0x32, 0xb5, 0x1a, 0x24, 0xcd, 0x76, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0x9f, 0xbb, 0x0c, 0x5e, 0x1e, 0x24, 0xf0, 0x38, 0xad, 0xe1, 0x73, 0x97, 0xc1, 0xc3, 0xc3, 0x83, 0x37, 0xcd, 0x02, 0x9e, 0x5b, 0x19, 0xb9, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x90, 0x36, 0x50, 0xd6, 0x00, 0xf4, 0xc8, 0x95, 0xc5, 0xd5, 0xa5, 0xc9, 0x95, 0x81, 0xfc, 0xf4, 0xa0, 0x6c, 0x95, 0x98, 0x81, 0xa8, 0x74, 0x81, 0x84, 0xa5, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0x5a, 0xc2, 0xd2, 0x86, 0xbf, 0x68, 0x36, 0x38, 0xcd, 0x9b, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0x8a, 0x49, 0xcc, 0x0d, 0x52, 0xe1, 0xba, 0x0e, 0x0f, 0xee, 0x6c, 0x78, 0x5a, 0x67, 0xc3, 0x5b, 0x76, 0x6b, 0x78, 0xe2, 0x6e, 0xc3, 0xb3, 0x78, 0x07, 0x07, 0x28, 0xf1, 0x83, 0xf0, 0x54, 0x5d, 0x0d, 0x12, 0xc5, 0xb0, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0x40, 0xdf, 0x34, 0x37, 0xba, 0xb2, 0xb3, 0x32, 0x39, 0x10, 0xb1, 0x34, 0xb7, 0x30, 0xb9, 0x3c, 0x10, 0xb6, 0xb7, 0xb3, 0x30, 0xb9, 0x34, 0x3a, 0xb4, 0x36, 0x1d, 0x10, 0x19, 0xaf, 0x34, 0x31, 0x36, 0x94, 0xb0, 0x14, 0x10, 0x9e, 0x1e, 0x10, 0xbe, 0x30, 0x3e, 0x10, 0x1e, 0x10, 0x19, 0x2f, 0x94, 0x34, 0x31, 0x36, 0x94, 0xb0, 0x94, 0x95, 0x98, 0xd4, 0x86, 0x5f, 0x94, 0x36, 0x48, 0xff, 0x6f, 0xda, 0xf0, 0x17, 0xcd, 0x06, 0xc7, 0x93, 0x93, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0xb0, 0xfd, 0xb4, 0x86, 0x77, 0x7b, 0x36, 0x48, 0x94, 0x7f, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x5e, 0xf3, 0xd9, 0x20, 0xe1, 0x15, 0xaa, 0x0e, 0x52, 0xf1, 0x9c, 0x0e, 0xa7, 0x58, 0x6b, 0x70, 0xf8, 0xc5, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x38, 0xfc, 0xe2, 0x36, 0xc0, 0x57, 0x16, 0x57, 0x17, 0xc6, 0x36, 0xb7, 0xe1, 0x17, 0xa5, 0x0d, 0x12, 0x10, 0xa1, 0x36, 0xfc, 0x45, 0xb3, 0xe1, 0x83, 0xd5, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0xfc, 0x9b, 0xb3, 0x41, 0xd2, 0x16, 0xd6, 0x41, 0x9a, 0x1a, 0xd6, 0x06, 0x05, 0x6c, 0xfe, 0x86, 0x0f, 0x72, 0x36, 0x48, 0xee, 0xc4, 0x5a, 0xc3, 0xbf, 0x39, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xd2, 0x80, 0x77, 0x83, 0x64, 0x60, 0xac, 0x83, 0xb4, 0x67, 0xa8, 0x83, 0x74, 0x4d, 0xa7, 0x0d, 0xff, 0xe6, 0x6c, 0x90, 0x40, 0x8e, 0x75, 0x90, 0xfa, 0x0c, 0x35, 0x6b, 0x68, 0xf1, 0xb1, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x68, 0xf1, 0xd1, 0x00, 0xfc, 0xcc, 0xd5, 0x89, 0xd1, 0xc9, 0x85, 0x8d, 0xd1, 0xed, 0x80, 0x94, 0xe1, 0x85, 0x8d, 0xd1, 0x81, 0xa4, 0x99, 0x81, 0x94, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0x24, 0xd4, 0xac, 0x0d, 0x7f, 0xd1, 0x6c, 0x90, 0x26, 0xb1, 0xb4, 0xe1, 0x13, 0x9b, 0x0d, 0xd2, 0x90, 0xb3, 0x36, 0x7c, 0x85, 0xb3, 0x41, 0xb1, 0xa3, 0xb9, 0x41, 0x5a, 0x76, 0xd6, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x24, 0x0c, 0x36, 0xb5, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0xc1, 0x69, 0xe4, 0x66, 0x83, 0x73, 0xc5, 0xcd, 0x06, 0xa9, 0x0c, 0x5a, 0x6b, 0x50, 0xf0, 0x6c, 0x6e, 0x78, 0x5b, 0x67, 0x83, 0x64, 0x56, 0xb2, 0x6a, 0xc3, 0x27, 0x36, 0x1b, 0x24, 0x93, 0x42, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x7e, 0x6f, 0x50, 0x74, 0x1a, 0x6f, 0x90, 0x54, 0x0e, 0xb5, 0x41, 0xd2, 0x8c, 0xd3, 0x06, 0x27, 0xf6, 0x9b, 0x0d, 0x12, 0xe5, 0x9f, 0x0e, 0x12, 0x35, 0xb5, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0xc7, 0x37, 0x28, 0x3a, 0x8d, 0x37, 0x48, 0xd8, 0x7e, 0xda, 0x20, 0x61, 0x34, 0x6a, 0xc3, 0xbb, 0x3d, 0x1b, 0x24, 0xca, 0x3f, 0xad, 0xe1, 0xe3, 0xa8, 0x83, 0x54, 0x8c, 0xa8, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x47, 0x58, 0xd7, 0xf0, 0x36, 0xeb, 0x41, 0x39, 0x01, 0xbd, 0x41, 0x9a, 0xc5, 0x56, 0x6b, 0x10, 0xa4, 0xa7, 0x1b, 0x14, 0x3c, 0x9b, 0x6b, 0x90, 0xd8, 0x66, 0xb4, 0xe1, 0xdd, 0x9e, 0x0d, 0x92, 0x3d, 0xa6, 0xd6, 0xf0, 0xc6, 0xdd, 0x41, 0xba, 0x3e, 0xd7, 0x41, 0xa2, 0x09, 0xd4, 0x1a, 0x9c, 0x73, 0x53, 0x0e, 0x52, 0x49, 0xce, 0xd6, 0x20, 0x65, 0x8b, 0x69, 0xc3, 0xbb, 0x3d, 0x1b, 0x24, 0x7b, 0x4c, 0x6d, 0x90, 0xc8, 0x34, 0x75, 0x90, 0x68, 0x02, 0xb5, 0x06, 0x09, 0x61, 0x46, 0x07, 0xc9, 0x44, 0x67, 0x6b, 0x70, 0xda, 0x3b, 0xd9, 0xf0, 0x6e, 0xcf, 0x06, 0xc9, 0x1e, 0x53, 0x6b, 0x78, 0xe3, 0xee, 0x20, 0x49, 0xa3, 0xeb, 0x20, 0xd1, 0x04, 0xaa, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xd5, 0x83, 0xf4, 0x1b, 0xad, 0x0d, 0x5f, 0xe1, 0x6c, 0x50, 0xec, 0x68, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0xd2, 0xb0, 0x95, 0x36, 0x48, 0x61, 0x8e, 0x3a, 0x48, 0x7b, 0x86, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x24, 0x3f, 0x9a, 0xad, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0x41, 0xc2, 0x34, 0xd4, 0x41, 0x0a, 0x73, 0xd4, 0x1a, 0x24, 0x3e, 0x47, 0x1d, 0xa4, 0x3e, 0x43, 0x1d, 0xa4, 0xa8, 0x9a, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0x78, 0xba, 0xe1, 0xdd, 0x9e, 0x0d, 0x52, 0xae, 0xae, 0x0e, 0x92, 0x22, 0xcf, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x28, 0x76, 0xcf, 0x37, 0x48, 0x1e, 0xed, 0xda, 0xf0, 0x41, 0xce, 0x06, 0xe5, 0x04, 0xf4, 0x1a, 0x7e, 0x71, 0xd9, 0x20, 0xc5, 0xc9, 0x69, 0x83, 0x22, 0xa7, 0x75, 0x83, 0x84, 0xd1, 0xa8, 0x83, 0xd2, 0x0c, 0x7d, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0x95, 0x65, 0xad, 0xe1, 0x17, 0x97, 0x83, 0x64, 0xf8, 0xb3, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0xdb, 0xa0, 0x64, 0x61, 0x9f, 0x65, 0xd6, 0x90, 0x38, 0xda, 0xf0, 0x3c, 0xc9, 0x06, 0x29, 0x3e, 0x59, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x1b, 0x24, 0x34, 0x2c, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xc5, 0x83, 0x34, 0x89, 0xa5, 0x36, 0xfc, 0x45, 0xb3, 0x41, 0x9a, 0xc4, 0xd2, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x2b, 0xd9, 0x06, 0xe9, 0xe5, 0x5b, 0x6b, 0x50, 0x4c, 0x62, 0x6e, 0x90, 0xa2, 0xbe, 0x75, 0xf8, 0x3c, 0xa8, 0x0d, 0x4e, 0xc5, 0xaa, 0x1b, 0x3e, 0xc8, 0xd9, 0x20, 0x1d, 0x7f, 0x6b, 0x0d, 0x1f, 0xe4, 0xac, 0x41, 0x31, 0x89, 0xb9, 0x41, 0x4a, 0xff, 0xd6, 0xe1, 0xf3, 0xa0, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x62, 0x49, 0xd5, 0x1a, 0xfe, 0xcd, 0xd9, 0x20, 0x65, 0xb9, 0x69, 0xc3, 0xdb, 0x3a, 0x83, 0xcf, 0x87, 0xcf, 0x83, 0xda, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0x20, 0xf5, 0x19, 0xea, 0xf0, 0xe0, 0xcd, 0x06, 0xa7, 0x62, 0xd5, 0x83, 0xa4, 0x36, 0xb4, 0x0d, 0x1f, 0xe4, 0x6c, 0x90, 0x1a, 0x86, 0xb6, 0x86, 0x0f, 0x72, 0x36, 0x48, 0xdd, 0x9f, 0x3a, 0x48, 0x9f, 0x44, 0xdb, 0xf0, 0x41, 0xce, 0x1a, 0x7e, 0x25, 0xdb, 0x20, 0x75, 0x7f, 0x6a, 0x83, 0x94, 0x44, 0xb4, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x29, 0x4e, 0x4e, 0x1b, 0xa4, 0xd4, 0xa1, 0x1d, 0xa4, 0xbd, 0x76, 0x6d, 0xf8, 0x20, 0x67, 0x83, 0x94, 0x3a, 0xb4, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x6a, 0x7c, 0xd5, 0x1a, 0x2e, 0xa9, 0x35, 0x24, 0x97, 0x0e, 0x0f, 0xee, 0xb4, 0x86, 0x4b, 0x6a, 0x0d, 0xc9, 0xa5, 0xc3, 0xe7, 0x41, 0xb5, 0x41, 0xd1, 0xa7, 0xbb, 0x41, 0xc1, 0xb3, 0xb9, 0x41, 0x9a, 0xab, 0xd9, 0x86, 0x77, 0x7b, 0x36, 0x48, 0x7e, 0x34, 0xdb, 0x20, 0xe9, 0x1a, 0xad, 0xd5, 0x20, 0xd9, 0xd8, 0x68, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x20, 0xd9, 0xd8, 0xa8, 0x01, 0xfc, 0xc9, 0xca, 0xc6, 0xd2, 0xda, 0xc2, 0xd8, 0x40, 0xe8, 0xde, 0x40, 0xcc, 0xd8, 0xde, 0xc2, 0xe8, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0xaa, 0xb3, 0xd1, 0x86, 0xbf, 0x68, 0x36, 0x48, 0x93, 0x58, 0xda, 0xf0, 0x41, 0xce, 0x06, 0xe9, 0xe5, 0x5b, 0x1b, 0x9c, 0x8a, 0x55, 0x37, 0x7c, 0x90, 0xb3, 0x41, 0x3a, 0xfe, 0xd6, 0x1a, 0x7e, 0x71, 0xd9, 0x20, 0xb1, 0xa4, 0x6a, 0x83, 0x94, 0xe5, 0xa6, 0x36, 0x28, 0x25, 0xc4, 0xd7, 0x70, 0x49, 0x6d, 0x50, 0xd4, 0x88, 0xaf, 0x41, 0xc1, 0xb3, 0x79, 0x70, 0x64, 0x56, 0x6d, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xf0, 0xf8, 0x20, 0xb1, 0xcc, 0x69, 0xc3, 0x07, 0x39, 0x1b, 0xa4, 0xe0, 0x50, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x82, 0xa7, 0x76, 0x0d, 0xbf, 0xb8, 0x6c, 0x90, 0xe2, 0xe4, 0xb4, 0x41, 0xca, 0x72, 0xd3, 0x06, 0x09, 0x3c, 0x4e, 0x07, 0xa9, 0x9a, 0x4e, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x14, 0x27, 0xa7, 0x0d, 0x8a, 0x9c, 0xd6, 0x0d, 0x92, 0x66, 0x9c, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0xac, 0xa5, 0x6a, 0x83, 0xc3, 0x02, 0xdb, 0xc1, 0xa1, 0x97, 0xaf, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x28, 0xb0, 0x6e, 0x90, 0x00, 0x99, 0xb6, 0x86, 0x5f, 0x5c, 0x36, 0x48, 0x71, 0x72, 0xda, 0xa0, 0xc8, 0x69, 0xdd, 0x20, 0x79, 0xda, 0xeb, 0x20, 0x89, 0x36, 0xad, 0xd5, 0xe0, 0xc8, 0x59, 0xbb, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x70, 0xe4, 0xac, 0x6d, 0x00, 0x3e, 0xcc, 0xea, 0xe6, 0xca, 0xc8, 0x40, 0xda, 0xea, 0xd8, 0xe8, 0xd2, 0xe0, 0xd8, 0xf2, 0x5a, 0xc2, 0xc8, 0xc8, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0x36, 0x48, 0x68, 0x58, 0xda, 0x20, 0x35, 0x05, 0x6d, 0x0d, 0x7f, 0x2e, 0x0d, 0x3e, 0x1e, 0xa4, 0x49, 0x2c, 0xb5, 0xe1, 0x2f, 0x9a, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x42, 0x09, 0x03, 0x51, 0x01, 0x11, 0x4b, 0x01, 0x59, 0x01, 0x19, 0x3b, 0x48, 0x93, 0x58, 0xda, 0xf0, 0x6e, 0xcf, 0x86, 0x3f, 0x81, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xca, 0xda, 0xea, 0x0e, 0xbf, 0x9f, 0x1d, 0x7e, 0x11, 0x5a, 0x0d, 0x59, 0xe3, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x43, 0xd6, 0xb8, 0x01, 0x7c, 0xd8, 0xca, 0xe6, 0xe6, 0x5a, 0xca, 0xe2, 0xea, 0xc2, 0xd8, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0x72, 0x08, 0xda, 0x86, 0xbf, 0x68, 0xd6, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0x9b, 0x30, 0x0f, 0x8e, 0xcc, 0xad, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x1c, 0x32, 0x08, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x2f, 0xce, 0x0e, 0x4a, 0xa7, 0xe7, 0x0d, 0xbf, 0x28, 0x6d, 0x70, 0x00, 0x52, 0xd9, 0xf0, 0x36, 0xeb, 0xe1, 0x69, 0x9d, 0x59, 0x83, 0x14, 0xe2, 0xa3, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x14, 0xe2, 0xa3, 0x06, 0xe0, 0xa7, 0xce, 0x6d, 0x0e, 0x24, 0xcd, 0x8d, 0xae, 0xec, 0xac, 0x4c, 0x0e, 0x84, 0xee, 0x0d, 0xc4, 0x8c, 0xed, 0x2d, 0x8c, 0x6e, 0xc3, 0x2f, 0x4a, 0x1b, 0x24, 0x30, 0x1f, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0x34, 0x89, 0xa5, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x56, 0x96, 0xb5, 0x86, 0x5f, 0x5c, 0x36, 0x48, 0x71, 0x72, 0xda, 0xa0, 0xc8, 0x69, 0xdd, 0x20, 0x81, 0xc7, 0xe9, 0xf0, 0xd0, 0x4f, 0xab, 0x41, 0xd2, 0x01, 0xd4, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0xd2, 0x01, 0x54, 0x03, 0x3c, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0x2d, 0x61, 0x69, 0xc3, 0x5f, 0x34, 0x1b, 0xa4, 0x49, 0x2c, 0x6d, 0x50, 0xec, 0x68, 0x6e, 0x90, 0x00, 0x54, 0xb6, 0xe1, 0x69, 0x9d, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x92, 0x3c, 0x9d, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x29, 0x4e, 0x4e, 0x1b, 0xa4, 0x2c, 0x37, 0x1d, 0xa4, 0xbd, 0x76, 0x6d, 0xf8, 0x20, 0x67, 0x83, 0x94, 0xe5, 0xa6, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x16, 0xc7, 0x39, 0x48, 0x3a, 0x80, 0x6a, 0x83, 0x94, 0x6f, 0xb4, 0x36, 0x28, 0xfa, 0x74, 0x37, 0x28, 0x78, 0x36, 0x37, 0x48, 0x73, 0x35, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0xc9, 0x8f, 0x66, 0x1b, 0x24, 0x7d, 0xad, 0x75, 0x38, 0xc5, 0xd6, 0x20, 0x99, 0xbc, 0x69, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x36, 0x48, 0x7e, 0x6f, 0x1a, 0x80, 0x17, 0xb9, 0xb7, 0x3a, 0x37, 0x32, 0x10, 0xba, 0x37, 0x90, 0x34, 0x37, 0xba, 0xb2, 0xb3, 0x32, 0x39, 0x10, 0x33, 0xb7, 0x0d, 0xbf, 0x28, 0x6d, 0x90, 0x96, 0xb0, 0xb4, 0xe1, 0x2f, 0x9a, 0x0d, 0xd2, 0x24, 0x96, 0x36, 0x28, 0x76, 0x34, 0x37, 0x48, 0x00, 0x2a, 0xdb, 0xf0, 0xb4, 0xce, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0x49, 0x9e, 0x4e, 0x1b, 0x24, 0x1e, 0xad, 0x6d, 0xf8, 0x20, 0x67, 0x83, 0x94, 0xe5, 0xa6, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x16, 0xc7, 0x39, 0x48, 0x26, 0x6f, 0xea, 0x20, 0x99, 0x6d, 0x6d, 0x83, 0xa2, 0x4f, 0x77, 0x83, 0x82, 0x67, 0x73, 0x83, 0x34, 0x57, 0xb3, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0xfc, 0x68, 0xb6, 0x41, 0x12, 0xf8, 0x5a, 0x87, 0x53, 0x6c, 0x0d, 0x52, 0x74, 0xa2, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x52, 0x74, 0xa2, 0x3a, 0x48, 0x19, 0x3d, 0xda, 0xf0, 0x8b, 0xd2, 0x06, 0x69, 0x09, 0x4b, 0x1b, 0xfe, 0xa2, 0xd9, 0xf0, 0xc1, 0xea, 0x06, 0x41, 0x7a, 0xba, 0x41, 0xe9, 0xfc, 0xbe, 0x06, 0x47, 0x7d, 0x93, 0x83, 0x94, 0xe5, 0xa6, 0x35, 0x38, 0x6a, 0x9d, 0x1c, 0xa4, 0x2c, 0x37, 0xad, 0xc1, 0x69, 0xef, 0xe4, 0xa0, 0xc8, 0x69, 0x6d, 0x35, 0x2c, 0x5a, 0x6d, 0x78, 0x9e, 0x64, 0x83, 0xf4, 0x38, 0xa8, 0x0d, 0xbf, 0x28, 0x6d, 0x90, 0x1c, 0x82, 0xb6, 0xe1, 0x2f, 0x9a, 0x0d, 0xd2, 0x24, 0x96, 0x36, 0x7c, 0x90, 0xb3, 0x41, 0xa2, 0x0f, 0xda, 0x06, 0xa7, 0x62, 0xd5, 0x0d, 0x1f, 0xe4, 0x6c, 0x90, 0x8e, 0xbf, 0xb5, 0x86, 0x0f, 0x72, 0x36, 0x48, 0x0d, 0x43, 0x3b, 0x48, 0x9f, 0x44, 0xdb, 0xf0, 0x41, 0xce, 0x06, 0xa9, 0x61, 0x68, 0x1b, 0x24, 0xfe, 0xa2, 0x6d, 0xf8, 0x20, 0x67, 0x83, 0xd4, 0xfd, 0xa9, 0x35, 0x7c, 0x90, 0xb3, 0x41, 0x4a, 0x22, 0xda, 0x06, 0xa7, 0x62, 0xd5, 0x83, 0xc4, 0x5f, 0xb4, 0x0d, 0x1f, 0xe4, 0x6c, 0x90, 0x92, 0x88, 0xb6, 0x41, 0x52, 0x1b, 0xda, 0x86, 0x0f, 0x72, 0x36, 0x48, 0xa9, 0x43, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0x48, 0x56, 0x1d, 0xa4, 0x7b, 0xa3, 0x6d, 0x50, 0xf4, 0xe9, 0x6e, 0x50, 0xf0, 0x6c, 0x6e, 0x90, 0xe6, 0x6a, 0xb6, 0xe1, 0xdd, 0x9e, 0x0d, 0x92, 0x1f, 0xcd, 0x36, 0x48, 0x26, 0x66, 0x6b, 0x35, 0x38, 0xd2, 0x2e, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x06, 0xc9, 0x8a, 0x53, 0x03, 0xf8, 0x9b, 0xb1, 0xbd, 0x85, 0xd1, 0x81, 0xd0, 0xbd, 0x81, 0x90, 0x95, 0x8d, 0xa5, 0xb5, 0x85, 0xb1, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0xb4, 0x84, 0xa5, 0x0d, 0x7f, 0xd1, 0x6c, 0x90, 0x7a, 0x6d, 0xb4, 0xe1, 0x83, 0x9c, 0x0d, 0xd2, 0xcb, 0xb7, 0x36, 0x38, 0x15, 0xab, 0x6e, 0xf8, 0x20, 0x67, 0x83, 0x74, 0xfc, 0xad, 0x0d, 0x52, 0xa8, 0xd2, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x48, 0xf2, 0x74, 0x5a, 0xc3, 0x2f, 0x2e, 0x1b, 0xa4, 0x93, 0x32, 0x6d, 0x90, 0xb2, 0xdc, 0xb4, 0x41, 0x02, 0x8f, 0xd3, 0x41, 0xe1, 0x24, 0xbb, 0xe1, 0x17, 0x97, 0x0d, 0xd2, 0x49, 0x99, 0x36, 0x48, 0x59, 0x6e, 0x5a, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x71, 0x9c, 0x83, 0x23, 0xed, 0x72, 0x07, 0xc9, 0x6c, 0x6b, 0xad, 0x86, 0xf5, 0xe6, 0x0d, 0xcf, 0x93, 0x6c, 0x90, 0xb2, 0x80, 0xb5, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x3e, 0x8d, 0xbd, 0xb5, 0xc1, 0x85, 0xc9, 0xa5, 0xcd, 0xbd, 0xb9, 0xcd, 0x81, 0xc8, 0x95, 0xd1, 0xd5, 0xc9, 0xb9, 0x81, 0xf8, 0x81, 0xa4, 0xb9, 0x81, 0xd0, 0xa1, 0x95, 0x81, 0x94, 0xd9, 0x95, 0xb9, 0xd1, 0x81, 0xbc, 0x99, 0x81, 0x84, 0x81, 0x38, 0x85, 0x39, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0xe4, 0x10, 0xb4, 0x0d, 0x7f, 0xd1, 0x6c, 0x90, 0x78, 0xa8, 0xb6, 0xe1, 0x83, 0x9c, 0x0d, 0x12, 0x7d, 0xd0, 0x36, 0x28, 0x28, 0x32, 0x37, 0x28, 0x0c, 0x55, 0x37, 0x28, 0x28, 0x32, 0x37, 0x7c, 0x90, 0xb3, 0xe1, 0xaf, 0xb2, 0x0d, 0x0a, 0xd8, 0xfc, 0x0d, 0x1f, 0xe4, 0x6c, 0x90, 0x8e, 0xbf, 0xb5, 0x41, 0xf2, 0x71, 0xd3, 0x86, 0x0f, 0x72, 0x36, 0x48, 0x0d, 0x43, 0xdb, 0x20, 0x99, 0x0f, 0x6d, 0xc3, 0x07, 0x39, 0x1b, 0xa4, 0xcc, 0xa2, 0xad, 0xe1, 0x83, 0x9c, 0x35, 0x3c, 0xc2, 0x7a, 0x90, 0x68, 0x8b, 0xb6, 0x41, 0x01, 0x9b, 0xbf, 0xe1, 0x83, 0x9c, 0x0d, 0x52, 0xf7, 0xa7, 0x36, 0x48, 0xe6, 0x43, 0x3b, 0x48, 0x3e, 0x6e, 0xda, 0xf0, 0x41, 0xce, 0x1a, 0xde, 0x66, 0x3d, 0x48, 0xa9, 0x43, 0xdb, 0x20, 0x99, 0x0f, 0x6d, 0xc3, 0x07, 0x39, 0x1b, 0xa4, 0x2c, 0x37, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x12, 0x19, 0x9f, 0x0e, 0xd2, 0xbd, 0xd1, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x22, 0xe3, 0xd3, 0x06, 0xe9, 0xe8, 0x68, 0x07, 0xc9, 0x6c, 0x6b, 0x87, 0x53, 0xac, 0x35, 0x28, 0x4e, 0xb5, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x8a, 0x53, 0xed, 0x0e, 0x0a, 0x6a, 0xed, 0x0d, 0xbf, 0x28, 0x6d, 0x90, 0x96, 0xb0, 0xb4, 0xe1, 0x2f, 0x9a, 0x0d, 0xd2, 0x24, 0x96, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x28, 0xb0, 0xae, 0xe1, 0x17, 0x97, 0x0d, 0x52, 0x9c, 0x9c, 0x36, 0x28, 0x72, 0x5a, 0x37, 0x48, 0xe0, 0x71, 0x3a, 0x28, 0x88, 0xc7, 0x0f, 0x0f, 0xfd, 0xac, 0x06, 0x69, 0x70, 0x4e, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0x69, 0x70, 0x4e, 0x0d, 0xe0, 0x1b, 0x26, 0x36, 0xf7, 0xc6, 0x56, 0x47, 0x57, 0x06, 0x62, 0x17, 0xc6, 0x56, 0x57, 0xb6, 0xe1, 0x17, 0xa5, 0x0d, 0xd2, 0x12, 0x96, 0x36, 0xfc, 0x45, 0xb3, 0x41, 0x9a, 0xc4, 0xd2, 0x86, 0x0f, 0x72, 0x36, 0x48, 0x00, 0x2a, 0x5b, 0xc3, 0x2f, 0x2e, 0x1b, 0xa4, 0x38, 0x39, 0x6d, 0x50, 0xe4, 0xb4, 0x6e, 0x90, 0x34, 0xe3, 0x74, 0x90, 0xaa, 0xe9, 0xb4, 0xe1, 0x83, 0x9c, 0x0d, 0xd2, 0xf1, 0xb7, 0x36, 0x48, 0x54, 0x0e, 0x3b, 0x38, 0x15, 0xab, 0xce, 0x02, 0x5e, 0x59, 0x18, 0xb9, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x90, 0x06, 0xef, 0xd6, 0x00, 0x1e, 0x65, 0x78, 0x61, 0x63, 0x74, 0x20, 0x61, 0x64, 0x64, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0x39, 0x04, 0x6d, 0xc3, 0x5f, 0x34, 0x1b, 0xa4, 0x49, 0x2c, 0x6d, 0xf8, 0x20, 0x67, 0x83, 0x44, 0x1f, 0xb4, 0x0d, 0x4e, 0xc5, 0xaa, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xaf, 0x64, 0x1b, 0xa4, 0xe3, 0x6f, 0x6d, 0x90, 0x1a, 0x86, 0xd6, 0x1a, 0x3e, 0xc8, 0x59, 0xc3, 0x23, 0xac, 0x07, 0x29, 0x31, 0x6f, 0x6b, 0xf8, 0x20, 0x67, 0xc3, 0x5f, 0x65, 0x1b, 0x9e, 0xd6, 0x39, 0x38, 0x15, 0xab, 0x6e, 0xf8, 0x20, 0x67, 0x83, 0x74, 0xfc, 0xad, 0xc3, 0xcb, 0x65, 0x1b, 0x3e, 0xc8, 0xd9, 0x20, 0x65, 0x16, 0x6d, 0x0d, 0x8a, 0x1d, 0xcd, 0x0d, 0x92, 0xf6, 0xdb, 0xd6, 0xa0, 0x84, 0xc7, 0xdc, 0x20, 0xc9, 0xd3, 0x69, 0xc3, 0x7b, 0x41, 0x87, 0xa7, 0x75, 0x36, 0xfc, 0xe2, 0xb2, 0x41, 0x8a, 0x93, 0xd3, 0x1a, 0x3e, 0xc8, 0xd9, 0x20, 0x5d, 0xd5, 0x69, 0x0d, 0x8f, 0xb0, 0x6e, 0x90, 0xb2, 0xdc, 0xb4, 0x41, 0x32, 0x1f, 0x5a, 0x1b, 0x7e, 0x25, 0x3b, 0x48, 0x83, 0x7c, 0x3b, 0x48, 0x7b, 0xed, 0xda, 0xe0, 0xc4, 0x7e, 0xb3, 0x86, 0x5f, 0x94, 0x36, 0x48, 0x4b, 0x58, 0xda, 0xa0, 0xd8, 0xd1, 0xdc, 0x20, 0x01, 0xa8, 0x6c, 0xc3, 0xd3, 0x3a, 0x1b, 0x14, 0x3b, 0x9a, 0x1b, 0xa4, 0xee, 0x4f, 0x6d, 0x78, 0x5a, 0x67, 0xc3, 0x2f, 0x2e, 0x1b, 0xa4, 0x38, 0x39, 0xad, 0xe1, 0x6d, 0xd6, 0x83, 0x74, 0x55, 0xa7, 0x83, 0xb4, 0xd7, 0xae, 0x0d, 0x1f, 0xe4, 0x6c, 0x90, 0x52, 0x87, 0xb6, 0x86, 0x0f, 0x72, 0x36, 0x48, 0x59, 0x6e, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x24, 0x3f, 0x44, 0x6d, 0x90, 0xf2, 0x8d, 0xb6, 0x41, 0x3a, 0x3a, 0xda, 0x41, 0x7a, 0x0a, 0xd4, 0x86, 0x77, 0x7b, 0x36, 0x48, 0x7e, 0x34, 0xdb, 0x20, 0x59, 0xfd, 0xad, 0x0d, 0x1f, 0xe4, 0x6c, 0x90, 0xb2, 0xdc, 0xb4, 0x86, 0x77, 0x7b, 0x36, 0x48, 0xb9, 0xba, 0x3a, 0x48, 0x93, 0x7f, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0x29, 0x57, 0x57, 0x1b, 0xa4, 0xa3, 0xa3, 0x6d, 0x90, 0xf2, 0x8d, 0x76, 0x90, 0x9e, 0x02, 0x75, 0x38, 0xc5, 0x6a, 0x0d, 0xe9, 0xc3, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0xdb, 0xe0, 0xc8, 0xbb, 0x71, 0x78, 0x21, 0x68, 0xc3, 0x2f, 0x4a, 0x1b, 0x24, 0x87, 0xa0, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0x34, 0x89, 0xa5, 0x0d, 0x1f, 0xe4, 0x6c, 0x90, 0xe8, 0x83, 0xb6, 0xc1, 0xa9, 0x58, 0x75, 0xc3, 0x07, 0x39, 0x1b, 0x24, 0xb7, 0xbc, 0x6d, 0x90, 0xa2, 0xf3, 0xb6, 0xe1, 0x83, 0x9c, 0x0d, 0x52, 0x66, 0xd1, 0xd6, 0xa0, 0xd8, 0xd1, 0xdc, 0x20, 0x69, 0xbf, 0x6d, 0x0d, 0x4e, 0xec, 0x37, 0x1b, 0xa4, 0x95, 0x65, 0x1d, 0x24, 0xba, 0xbd, 0x1d, 0x24, 0xf5, 0xbd, 0x6d, 0x70, 0x62, 0xbf, 0xd9, 0x20, 0x1d, 0xf5, 0x6d, 0xc3, 0x07, 0x39, 0x1b, 0xa4, 0xd4, 0xa1, 0xad, 0xe1, 0x83, 0x9c, 0x0d, 0x52, 0x96, 0x9b, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xc9, 0x0f, 0x51, 0x1b, 0xa4, 0x7c, 0xa3, 0x6d, 0x90, 0x8e, 0x8e, 0xb6, 0x41, 0x01, 0x9b, 0xdf, 0x06, 0x45, 0x9f, 0xee, 0x06, 0x05, 0xcf, 0xe6, 0x06, 0x69, 0xae, 0x66, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0xf9, 0xd1, 0x6c, 0x83, 0x44, 0x53, 0xb8, 0x36, 0x7c, 0x90, 0xb3, 0x41, 0xca, 0x72, 0xd3, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0xe5, 0xea, 0xea, 0x20, 0xc5, 0x15, 0x6e, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0x5c, 0x5d, 0x6d, 0x90, 0x8e, 0x8e, 0xb6, 0x41, 0xca, 0x37, 0xda, 0x41, 0xaa, 0x2d, 0xdc, 0xac, 0x41, 0x4a, 0x6d, 0xd2, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x4a, 0x6d, 0x52, 0x03, 0xf0, 0x33, 0x77, 0xe6, 0x06, 0x92, 0xe6, 0x46, 0x57, 0x76, 0x56, 0x26, 0x07, 0x42, 0xf7, 0x06, 0x62, 0xc6, 0xf6, 0x16, 0x46, 0xb7, 0xe1, 0x17, 0xa5, 0x0d, 0x12, 0x7a, 0x93, 0x36, 0xfc, 0x45, 0xb3, 0x41, 0x9a, 0xc4, 0xd2, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xe2, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xa0, 0xe4, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xde, 0xd8, 0xc8, 0x0e, 0x4a, 0x21, 0xf5, 0xc3, 0x43, 0x3f, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0xad, 0x2c, 0x6b, 0x0d, 0xbf, 0xb8, 0x6c, 0x90, 0xe2, 0xe4, 0xb4, 0x41, 0x09, 0x47, 0xbb, 0x41, 0x02, 0x8f, 0xd3, 0xc1, 0xa1, 0x8c, 0xaf, 0xd5, 0x20, 0x85, 0x40, 0x69, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x20, 0x85, 0x40, 0xa9, 0x01, 0x78, 0x91, 0x7b, 0xab, 0x73, 0x23, 0x03, 0xa1, 0x7b, 0x03, 0x49, 0x73, 0xa3, 0x2b, 0x3b, 0x2b, 0x93, 0x03, 0x01, 0x9a, 0xdb, 0xf0, 0x8b, 0xd2, 0x06, 0x69, 0x09, 0x4b, 0x1b, 0xfe, 0xa2, 0xd9, 0x20, 0x75, 0x42, 0x69, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0x71, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x64, 0xf2, 0xa6, 0x0e, 0x0f, 0xfd, 0x6c, 0x50, 0xec, 0x68, 0xae, 0x41, 0x31, 0x89, 0xb9, 0x41, 0x2a, 0x5c, 0xd7, 0xe1, 0xf3, 0xa0, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x0a, 0x43, 0xd5, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xc7, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0xc5, 0x21, 0x07, 0xc9, 0xf6, 0x55, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x0a, 0xed, 0xde, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x4a, 0x9a, 0xd3, 0x41, 0xb2, 0x68, 0x54, 0x07, 0x69, 0xcf, 0x50, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0x83, 0x92, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x73, 0x2b, 0xbb, 0x3b, 0x28, 0x85, 0xd4, 0x37, 0x48, 0xe6, 0x43, 0x3b, 0xfc, 0x22, 0x74, 0x38, 0xc5, 0xd6, 0x20, 0x79, 0x4a, 0x6d, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x20, 0x79, 0x4a, 0xad, 0x01, 0x7c, 0xcb, 0xf0, 0xc2, 0xc6, 0xe8, 0x40, 0xda, 0xea, 0xd8, 0xe8, 0xd2, 0xe0, 0xd8, 0xf2, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0x72, 0x08, 0xda, 0x86, 0xbf, 0x68, 0x36, 0x48, 0x93, 0x58, 0xda, 0xf0, 0x41, 0xce, 0x06, 0x89, 0x3e, 0x68, 0x1b, 0x9c, 0x8a, 0x55, 0x37, 0x7c, 0x90, 0xb3, 0x41, 0x3a, 0xfe, 0xd6, 0x06, 0x09, 0x5e, 0x68, 0x1b, 0x3e, 0xc8, 0xd9, 0x20, 0x35, 0x0c, 0x6d, 0x83, 0xf4, 0x51, 0xb4, 0x0d, 0x1f, 0xe4, 0x6c, 0x90, 0x32, 0x8b, 0xb6, 0x41, 0xe2, 0x2f, 0xda, 0x86, 0x5f, 0x5c, 0x36, 0x48, 0x71, 0x72, 0xda, 0x20, 0xa5, 0x0e, 0x6d, 0x83, 0xc4, 0xb6, 0xac, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x2a, 0x7a, 0xdc, 0x41, 0x0a, 0x6e, 0x54, 0xab, 0x41, 0x99, 0x86, 0xb5, 0xe1, 0x79, 0x92, 0x0d, 0x52, 0x12, 0xc7, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0x5a, 0xc2, 0xd2, 0x86, 0xbf, 0x68, 0x36, 0x48, 0x93, 0x58, 0xda, 0xf0, 0x41, 0xce, 0x06, 0xe9, 0xe5, 0x5b, 0x1b, 0x9c, 0x8a, 0x55, 0x37, 0x7c, 0x90, 0xb3, 0x41, 0x3a, 0xfe, 0xd6, 0x1a, 0x3e, 0xc8, 0xd9, 0x20, 0x65, 0xb9, 0xe9, 0x20, 0x85, 0xe9, 0x6d, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x24, 0x4f, 0xa7, 0x0d, 0x12, 0x8f, 0xd6, 0x36, 0x7c, 0x90, 0xb3, 0x41, 0xca, 0x72, 0xd3, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x8d, 0x89, 0xec, 0x20, 0x99, 0x6d, 0xed, 0xe0, 0x54, 0xac, 0x3a, 0x6b, 0x58, 0x0d, 0xdf, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0xac, 0x86, 0x37, 0x80, 0xdf, 0x99, 0x5c, 0x59, 0x18, 0x5d, 0x99, 0x5c, 0x0b, 0x1d, 0x5a, 0x98, 0xdb, 0x86, 0x5f, 0x94, 0x36, 0x48, 0x0e, 0x41, 0xdb, 0xf0, 0x17, 0xcd, 0x06, 0x89, 0x87, 0x6a, 0x07, 0x89, 0x9b, 0x6a, 0x87, 0x53, 0xac, 0x35, 0xec, 0xc4, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x76, 0xe2, 0x1b, 0xc0, 0xf3, 0x4c, 0xae, 0x2c, 0x8c, 0xae, 0x4c, 0xae, 0xa5, 0x2c, 0xae, 0x2e, 0x8c, 0x6d, 0xc3, 0x2f, 0x4a, 0x1b, 0x24, 0x87, 0xa0, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0xc4, 0x43, 0xb5, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0xe2, 0xf7, 0xa0, 0x74, 0x7a, 0x5e, 0x0d, 0x0e, 0xbf, 0xb8, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x41, 0xd2, 0x78, 0xd9, 0x00, 0x4f, 0x59, 0x5c, 0x5d, 0x18, 0xdb, 0x86, 0x5f, 0x94, 0x36, 0x48, 0x0e, 0x41, 0xdb, 0xf0, 0x17, 0xcd, 0x06, 0x89, 0x87, 0x6a, 0x1b, 0x3e, 0xc8, 0xd9, 0x20, 0xd1, 0x07, 0x6d, 0x83, 0x82, 0x22, 0x73, 0x83, 0xc2, 0x50, 0x75, 0x83, 0x82, 0x22, 0x73, 0xc3, 0x07, 0x39, 0x1b, 0xfe, 0x2a, 0xdb, 0xa0, 0xc8, 0x69, 0xdd, 0xf0, 0x41, 0xce, 0x06, 0xc9, 0x2d, 0x6f, 0x1b, 0x14, 0xb0, 0xf9, 0x1b, 0x3e, 0xc8, 0xd9, 0x20, 0x65, 0x16, 0x6d, 0x0d, 0x1f, 0xe4, 0x6c, 0x90, 0xb4, 0xdf, 0xb6, 0x41, 0x91, 0xd3, 0x7a, 0x50, 0xc0, 0xe6, 0x6f, 0xf8, 0x20, 0x67, 0x0d, 0xbf, 0x92, 0x6d, 0x90, 0x2e, 0x83, 0xb5, 0x41, 0x8a, 0x86, 0x5b, 0x1b, 0x14, 0xb0, 0xf9, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x8b, 0xe3, 0x1c, 0x1c, 0x7e, 0x71, 0x3b, 0x48, 0xf7, 0x46, 0x3b, 0x9c, 0x62, 0x6b, 0x68, 0xf1, 0xb1, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x1b, 0xa4, 0x2d, 0x99, 0x0d, 0xf0, 0xcf, 0xd5, 0x89, 0xd1, 0xc9, 0x85, 0x8d, 0xd1, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0xe4, 0x10, 0xb4, 0x0d, 0x7f, 0xd1, 0x6c, 0x90, 0x26, 0xb1, 0xb4, 0xe1, 0xdd, 0x9e, 0x0d, 0x7f, 0x02, 0x6d, 0x78, 0x5a, 0x67, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0xfc, 0x68, 0x76, 0x78, 0x0b, 0xad, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x56, 0xc0, 0x97, 0xcb, 0x63, 0x9b, 0x37, 0xfc, 0xa2, 0xb4, 0x41, 0x92, 0xb4, 0xd1, 0x86, 0xbf, 0x68, 0x36, 0x38, 0x06, 0xbc, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0x87, 0x59, 0x9a, 0x5b, 0xda, 0x1c, 0x1a, 0x08, 0x5c, 0x98, 0xdc, 0x5c, 0x9a, 0xdb, 0x19, 0x08, 0x90, 0xdc, 0xdc, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xa0, 0xe4, 0x06, 0x89, 0x0b, 0x47, 0x1b, 0xde, 0xd6, 0x19, 0x78, 0xb9, 0xb9, 0xc3, 0x43, 0x3f, 0xb3, 0xc0, 0xcb, 0x91, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0xc1, 0xcb, 0x91, 0x0d, 0xc0, 0x0b, 0xd9, 0x5b, 0x9d, 0x18, 0x5b, 0x19, 0x08, 0x9c, 0x5c, 0xd9, 0x58, 0xda, 0x5c, 0xda, 0x9b, 0x1b, 0x88, 0x19, 0xdc, 0x06, 0x49, 0x0b, 0x46, 0x1b, 0x94, 0x5d, 0xb2, 0x03, 0x2f, 0x47, 0x6e, 0x90, 0x46, 0x60, 0x34, 0x1b, 0x94, 0x65, 0xd8, 0x1b, 0x24, 0x4e, 0x19, 0xcd, 0x32, 0x6b, 0x48, 0x1c, 0x6d, 0x78, 0x7c, 0x64, 0x43, 0xe2, 0x68, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x1e, 0x9c, 0x5e, 0x5e, 0xd7, 0xf0, 0xe7, 0xd2, 0xe0, 0xe2, 0xc1, 0xe9, 0xe5, 0xb5, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0x7a, 0x79, 0xdd, 0xf0, 0x96, 0xdd, 0x1a, 0x9e, 0xb8, 0xdb, 0xf0, 0x2c, 0xde, 0xc1, 0x21, 0x06, 0xff, 0x20, 0x29, 0xd6, 0x68, 0x35, 0x48, 0x36, 0x36, 0xda, 0xf0, 0x8b, 0xd2, 0x06, 0xa9, 0xce, 0x46, 0x1b, 0xfe, 0xa2, 0xd9, 0xe0, 0xf4, 0xf2, 0xba, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x3f, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x40, 0x72, 0x64, 0x07, 0x49, 0x04, 0x47, 0xab, 0x41, 0xd2, 0xc6, 0xd1, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0x6d, 0x90, 0x64, 0x72, 0x34, 0x80, 0x07, 0x90, 0x1c, 0x19, 0x08, 0xdd, 0x1b, 0x88, 0x99, 0xdb, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x06, 0x09, 0xdf, 0x74, 0x1d, 0x24, 0x16, 0x1d, 0xad, 0x86, 0xac, 0xf1, 0x86, 0xc7, 0x47, 0x36, 0x64, 0x8d, 0x37, 0xfc, 0xa2, 0xb4, 0x41, 0xda, 0x36, 0xdd, 0x86, 0xb7, 0xec, 0x36, 0x48, 0xe9, 0xa7, 0x3b, 0x48, 0xa7, 0x3b, 0x3a, 0x9c, 0x62, 0x6b, 0x90, 0x98, 0x78, 0xb4, 0xe1, 0x17, 0xa5, 0x0d, 0x12, 0xbf, 0xea, 0x0e, 0xd2, 0x2a, 0x8f, 0x56, 0x83, 0x14, 0xe2, 0xa3, 0x0d, 0xbf, 0x28, 0x6d, 0x90, 0xc0, 0x7c, 0xb4, 0xe1, 0x2f, 0x9a, 0x0d, 0x4e, 0x2f, 0xaf, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xf0, 0x51, 0xe7, 0x36, 0x07, 0x92, 0xe6, 0x46, 0x57, 0x76, 0x56, 0x26, 0x07, 0x42, 0xf7, 0x06, 0x02, 0x24, 0x47, 0x76, 0x90, 0x64, 0x7f, 0x74, 0x38, 0xc5, 0xd6, 0xe0, 0xc8, 0x59, 0xbb, 0xe1, 0xf1, 0x91, 0x0d, 0x8e, 0x9c, 0xb5, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x1b, 0x24, 0x7c, 0xd3, 0x6d, 0x90, 0x88, 0x4e, 0xb7, 0x86, 0x3f, 0x97, 0x06, 0x1f, 0x0f, 0x4e, 0x2f, 0xaf, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0xd3, 0xcb, 0xeb, 0x86, 0xb7, 0xec, 0x36, 0x48, 0xe9, 0xa7, 0x3b, 0x48, 0x1b, 0x42, 0x9a, 0x35, 0x2c, 0x5a, 0x6d, 0x78, 0x7c, 0x64, 0xc3, 0xa2, 0xd5, 0x86, 0x5f, 0x94, 0x36, 0x48, 0xdb, 0xa6, 0xdb, 0xf0, 0x17, 0xcd, 0x06, 0xa7, 0x97, 0xd7, 0x0d, 0x6f, 0xd9, 0x6d, 0x90, 0xd2, 0x4f, 0x77, 0x90, 0xb6, 0x87, 0xb4, 0x1a, 0x1c, 0x69, 0x97, 0x37, 0xfc, 0xa2, 0xb4, 0x41, 0xe2, 0x57, 0xdd, 0x86, 0xbf, 0x68, 0x36, 0x48, 0xbd, 0x36, 0xda, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0x1f, 0x20, 0x39, 0x32, 0x10, 0xba, 0x37, 0x10, 0xb2, 0xb2, 0xb1, 0xb4, 0xb6, 0x30, 0x36, 0x10, 0x33, 0xb6, 0xb7, 0x30, 0xba, 0x83, 0x54, 0x5f, 0xa4, 0xd5, 0xb0, 0xde, 0xbc, 0xe1, 0xf1, 0x91, 0x0d, 0xeb, 0xcd, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0x6d, 0x9b, 0x6e, 0xc3, 0x5b, 0x76, 0x1b, 0xa4, 0xf4, 0xd3, 0x1d, 0xa4, 0xb8, 0x23, 0x1d, 0x4e, 0xb1, 0x5a, 0x43, 0xfa, 0x70, 0xc3, 0xe3, 0x23, 0x1b, 0xd2, 0x87, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0x6d, 0x9b, 0x6e, 0xc3, 0x5f, 0x34, 0x1b, 0x9c, 0x5e, 0x5e, 0x37, 0xbc, 0x65, 0xb7, 0x41, 0x4a, 0x3f, 0xdd, 0x41, 0xca, 0x48, 0xd2, 0x6a, 0x90, 0x56, 0x93, 0xb4, 0xe1, 0x17, 0xa5, 0x0d, 0x12, 0xbf, 0xea, 0x0e, 0x92, 0x82, 0x92, 0x56, 0xe0, 0xdb, 0xc2, 0x0d, 0x92, 0xf0, 0x92, 0x36, 0x28, 0x6a, 0xc4, 0x37, 0x48, 0x0e, 0x4c, 0x5a, 0xc3, 0x0a, 0xde, 0x86, 0x1f, 0x61, 0x36, 0xd4, 0xfc, 0x90, 0xad, 0xc1, 0xc1, 0x23, 0x63, 0xc3, 0x8f, 0x30, 0x1b, 0x6a, 0x7e, 0x28, 0x5d, 0xc3, 0xe7, 0x41, 0x1b, 0x7e, 0x84, 0x19, 0xf8, 0x39, 0x32, 0x38, 0xff, 0x0f, 0xd2, 0x52, 0x93, 0x0e, 0xa7, 0x58, 0x6b, 0x90, 0x52, 0x9b, 0xb4, 0xe1, 0x17, 0xa5, 0x0d, 0x12, 0x7a, 0x93, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0xe9, 0xe5, 0x75, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x3e, 0xe6, 0xce, 0xdc, 0x40, 0xd2, 0xdc, 0xe8, 0xca, 0xce, 0xca, 0xe4, 0x40, 0xe8, 0xde, 0x40, 0x80, 0xe4, 0xc8, 0x0e, 0x52, 0xda, 0x93, 0x56, 0x83, 0x14, 0x02, 0xa5, 0x0d, 0xbf, 0x28, 0x6d, 0x90, 0xf8, 0x55, 0x77, 0x90, 0x00, 0xa1, 0x74, 0x38, 0xc5, 0xd6, 0xa0, 0x4c, 0xc3, 0xda, 0xf0, 0xf8, 0xc8, 0x06, 0x65, 0x1a, 0xd6, 0x86, 0x5f, 0x94, 0x36, 0x48, 0xfc, 0xaa, 0xdb, 0xf0, 0x17, 0xcd, 0x06, 0xa7, 0x97, 0xd7, 0x0d, 0x6f, 0xd9, 0x6d, 0x90, 0xd2, 0x4f, 0x77, 0x90, 0x44, 0xa7, 0x34, 0x6b, 0x58, 0x0d, 0xdf, 0xf0, 0xf8, 0xc8, 0x86, 0xd5, 0xf0, 0x0d, 0xbf, 0x28, 0x6d, 0x90, 0xb6, 0x4d, 0xb7, 0xe1, 0x2d, 0xbb, 0x0d, 0x52, 0xfa, 0xe9, 0x0e, 0xd2, 0x47, 0x95, 0x0e, 0xa7, 0xd8, 0x1a, 0x76, 0xe2, 0x37, 0x3c, 0x3e, 0xb2, 0x61, 0x27, 0x7e, 0xc3, 0x2f, 0x4a, 0x1b, 0xa4, 0x6d, 0xd3, 0x6d, 0x78, 0xcb, 0x6e, 0x83, 0x94, 0x7e, 0xba, 0x83, 0x94, 0x68, 0xa5, 0xd5, 0x20, 0xe1, 0x5c, 0x69, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x36, 0x48, 0x90, 0x57, 0x1a, 0xc0, 0xc3, 0xcc, 0x0d, 0x84, 0xee, 0x0d, 0x04, 0x48, 0x8e, 0x6c, 0xc3, 0x2f, 0x4a, 0x1b, 0xa4, 0x25, 0x2c, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0xd3, 0xcb, 0xeb, 0x41, 0x62, 0xc8, 0xd2, 0xac, 0xc1, 0xe1, 0x17, 0x77, 0xc3, 0xe3, 0x23, 0x1b, 0x1c, 0x7e, 0x71, 0x37, 0xfc, 0xa2, 0xb4, 0x41, 0xda, 0x36, 0xdd, 0x86, 0xb7, 0xec, 0x36, 0x48, 0xe9, 0xa7, 0x3b, 0x48, 0x9b, 0x5a, 0x3a, 0x9c, 0x62, 0x6b, 0x68, 0xf1, 0xb1, 0xe1, 0xf1, 0x91, 0x0d, 0x2d, 0x3e, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0xda, 0x36, 0xdd, 0x86, 0xbf, 0x68, 0x36, 0x38, 0xbd, 0xbc, 0x6e, 0x78, 0xcb, 0x6e, 0x83, 0x94, 0x7e, 0xba, 0x83, 0x84, 0xc6, 0xa5, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x56, 0xe0, 0xe5, 0xe6, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0xe0, 0xe5, 0xe6, 0x06, 0xe0, 0x65, 0x2e, 0xcd, 0xed, 0x8c, 0xad, 0x0c, 0x04, 0x4e, 0xae, 0x6c, 0x2c, 0x6d, 0x2e, 0xed, 0xcd, 0x0d, 0xc4, 0x0c, 0x6e, 0x83, 0xb2, 0x4b, 0x76, 0xe0, 0xe5, 0xe6, 0x0d, 0xd2, 0x08, 0x8c, 0x66, 0x83, 0xa4, 0x05, 0xa3, 0x0d, 0xcf, 0x93, 0x6c, 0x90, 0x42, 0x61, 0xb4, 0x41, 0x59, 0x86, 0xbd, 0x41, 0xe2, 0x94, 0xd1, 0x2c, 0xb3, 0x86, 0xc4, 0xd1, 0x86, 0xc7, 0x47, 0x36, 0x24, 0x8e, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xe1, 0xc1, 0x31, 0xe0, 0x75, 0x0d, 0x7f, 0x2e, 0x0d, 0x2e, 0x1e, 0x1c, 0x03, 0x5e, 0xdb, 0xf0, 0x17, 0xcd, 0x06, 0xc7, 0x80, 0xd7, 0x0d, 0x6f, 0xd9, 0xad, 0xe1, 0x89, 0xbb, 0x0d, 0xcf, 0xe2, 0x1d, 0x9c, 0xf4, 0xf5, 0x0f, 0x92, 0x62, 0x8d, 0x56, 0x83, 0x64, 0x63, 0xa3, 0x0d, 0xbf, 0x28, 0x6d, 0x90, 0xea, 0x6c, 0xb4, 0xe1, 0x2f, 0x9a, 0x0d, 0x8e, 0x01, 0xaf, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xf0, 0x43, 0x56, 0x36, 0x96, 0xd6, 0x16, 0xc6, 0x06, 0x62, 0xc6, 0xf6, 0x16, 0x46, 0x07, 0x42, 0xf7, 0x06, 0x02, 0x24, 0x37, 0x77, 0x90, 0x44, 0x70, 0xb4, 0x1a, 0x24, 0x6d, 0x1c, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x06, 0x49, 0x26, 0x47, 0x03, 0x78, 0x00, 0xc9, 0xcd, 0x81, 0xd0, 0xbd, 0x81, 0x98, 0xb9, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0x6d, 0x90, 0x28, 0x87, 0xd7, 0x41, 0x62, 0xd1, 0xd1, 0x6a, 0xc8, 0x1a, 0x6f, 0x78, 0x7c, 0x64, 0x43, 0xd6, 0x78, 0xc3, 0x2f, 0x4a, 0x1b, 0xa4, 0xbb, 0xe1, 0x6d, 0x78, 0xcb, 0x6e, 0x83, 0x54, 0x48, 0xbc, 0x83, 0x74, 0xba, 0xa3, 0xc3, 0x29, 0xb6, 0x06, 0x89, 0x89, 0x47, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0x61, 0x1e, 0xef, 0x20, 0xad, 0xf2, 0x68, 0x35, 0x48, 0x21, 0x3e, 0xda, 0xf0, 0x8b, 0xd2, 0x06, 0x09, 0xcc, 0x47, 0x1b, 0xfe, 0xa2, 0xd9, 0xe0, 0x18, 0xf0, 0xba, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x1f, 0x75, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x20, 0x74, 0x6f, 0x20, 0x40, 0x72, 0x73, 0x07, 0x49, 0xf6, 0x47, 0x87, 0x53, 0x6c, 0x0d, 0x8e, 0x9c, 0xb5, 0x1b, 0x1e, 0x1f, 0xd9, 0xe0, 0xc8, 0x59, 0xbb, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0xa2, 0x1c, 0xde, 0x06, 0x09, 0x7c, 0x78, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0xf1, 0xe0, 0x18, 0xf0, 0xda, 0x86, 0xbf, 0x68, 0x36, 0x38, 0x06, 0xbc, 0x6e, 0x78, 0xcb, 0x6e, 0x83, 0x54, 0x48, 0xbc, 0x83, 0xb4, 0x21, 0xa4, 0x59, 0xc3, 0xa2, 0xd5, 0x86, 0xc7, 0x47, 0x36, 0x2c, 0x5a, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0x74, 0x37, 0xbc, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0x0c, 0x78, 0xdd, 0xf0, 0x96, 0xdd, 0x06, 0xa9, 0x90, 0x78, 0x07, 0x69, 0x7b, 0x48, 0xab, 0xc1, 0x91, 0x76, 0x79, 0xc3, 0x2f, 0x4a, 0x1b, 0x24, 0xcc, 0xe3, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0xd4, 0x6b, 0xa3, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0xf8, 0x01, 0x92, 0x9b, 0x03, 0xa1, 0x7b, 0x03, 0x21, 0x2b, 0x1b, 0x4b, 0x6b, 0x0b, 0x63, 0x03, 0x31, 0x63, 0x7b, 0x0b, 0xa3, 0x3b, 0x48, 0xf5, 0x45, 0x5a, 0x0d, 0xeb, 0xcd, 0x1b, 0x1e, 0x1f, 0xd9, 0xb0, 0xde, 0xbc, 0xe1, 0x17, 0xa5, 0x0d, 0xd2, 0xdd, 0xf0, 0x36, 0xbc, 0x65, 0xb7, 0x41, 0x2a, 0x24, 0xde, 0x41, 0x8a, 0x3b, 0xd2, 0xe1, 0x14, 0xab, 0x35, 0xa4, 0x0f, 0x37, 0x3c, 0x3e, 0xb2, 0x21, 0x7d, 0xb8, 0xe1, 0x17, 0xa5, 0x0d, 0xd2, 0xdd, 0xf0, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0x31, 0xe0, 0x75, 0xc3, 0x5b, 0x76, 0x1b, 0xa4, 0x42, 0xe2, 0x1d, 0xa4, 0x8c, 0x24, 0xad, 0x06, 0x69, 0x35, 0x49, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0x61, 0x1e, 0xef, 0x20, 0x29, 0x28, 0x69, 0x05, 0xbe, 0x2d, 0xdc, 0x20, 0x09, 0x2f, 0x69, 0x83, 0xa2, 0x46, 0x7c, 0x83, 0xe4, 0xc0, 0xa4, 0x35, 0xac, 0xe0, 0x1d, 0x1c, 0x56, 0xe6, 0xd6, 0xe0, 0xe0, 0x91, 0xb1, 0xe1, 0x47, 0x98, 0x0d, 0x35, 0x3f, 0xec, 0xd6, 0xf0, 0x79, 0xd0, 0x86, 0x1f, 0x61, 0x06, 0x7e, 0x8e, 0x0c, 0xc2, 0x7f, 0x90, 0x96, 0x9a, 0x74, 0x38, 0xc5, 0x5a, 0x83, 0x94, 0xda, 0xa4, 0x0d, 0xbf, 0x28, 0x6d, 0x90, 0xd0, 0x9b, 0xb4, 0xe1, 0x2f, 0x9a, 0x0d, 0x8e, 0x01, 0xaf, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xf0, 0x31, 0x77, 0xe6, 0x06, 0x92, 0xe6, 0x46, 0x57, 0x76, 0x56, 0x26, 0x07, 0x42, 0xf7, 0x06, 0x02, 0x24, 0x37, 0x77, 0x90, 0xd2, 0x9e, 0xb4, 0x1a, 0xa4, 0x10, 0x28, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0x84, 0x79, 0xbc, 0x83, 0x04, 0x08, 0xa5, 0xc3, 0x29, 0xb6, 0x06, 0x65, 0x1a, 0xd6, 0x86, 0xc7, 0x47, 0x36, 0x28, 0xd3, 0xb0, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0xc2, 0x3c, 0xde, 0x86, 0xbf, 0x68, 0x36, 0x38, 0x06, 0xbc, 0x6e, 0x78, 0xcb, 0x6e, 0x83, 0x54, 0x48, 0xbc, 0x83, 0x24, 0x3a, 0xa5, 0x59, 0xc3, 0x6a, 0xf8, 0x86, 0xc7, 0x47, 0x36, 0xac, 0x86, 0x6f, 0xf8, 0x45, 0x69, 0x83, 0x74, 0x37, 0xbc, 0x0d, 0x6f, 0xd9, 0x6d, 0x90, 0x0a, 0x89, 0x77, 0x90, 0x3e, 0xaa, 0x74, 0x38, 0xc5, 0xd6, 0xb0, 0x13, 0xbf, 0xe1, 0xf1, 0x91, 0x0d, 0x3b, 0xf1, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0xdd, 0x0d, 0x6f, 0xc3, 0x5b, 0x76, 0x1b, 0xa4, 0x42, 0xe2, 0x1d, 0xa4, 0x44, 0x2b, 0xad, 0x06, 0x09, 0xe7, 0x4a, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x41, 0x82, 0xbc, 0xd2, 0x00, 0x1e, 0x66, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x40, 0x72, 0x73, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0x2d, 0x61, 0x69, 0xc3, 0x5f, 0x34, 0x1b, 0x1c, 0x03, 0x5e, 0x0f, 0x12, 0x43, 0x96, 0x66, 0x0d, 0x0e, 0xbf, 0xb8, 0x1b, 0x1e, 0x1f, 0xd9, 0xe0, 0xf0, 0x8b, 0xbb, 0xe1, 0x17, 0xa5, 0x0d, 0xd2, 0xdd, 0xf0, 0x36, 0xbc, 0x65, 0xb7, 0x41, 0x2a, 0x24, 0xde, 0x41, 0xda, 0xd4, 0xd2, 0xe1, 0x14, 0x5b, 0x43, 0x8b, 0x8f, 0x0d, 0x8f, 0x8f, 0x6c, 0x68, 0xf1, 0xb1, 0xe1, 0x17, 0xa5, 0x0d, 0xd2, 0xdd, 0xf0, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0x31, 0xe0, 0x75, 0xc3, 0x5b, 0x76, 0x1b, 0xa4, 0x42, 0xe2, 0x1d, 0x24, 0x34, 0x2e, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0x36, 0x0b, 0xf8, 0x72, 0x6c, 0x79, 0xf1, 0x86, 0x5f, 0x94, 0x36, 0x48, 0x44, 0x34, 0xda, 0xf0, 0x17, 0xcd, 0x06, 0xa9, 0xd7, 0x46, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xf0, 0x01, 0x27, 0x57, 0x06, 0x07, 0x02, 0x24, 0x17, 0x07, 0x62, 0xf6, 0x26, 0x07, 0x02, 0x27, 0x97, 0xe6, 0x46, 0xb7, 0xe1, 0xdd, 0x9e, 0x35, 0x3c, 0x28, 0xb9, 0x41, 0x7a, 0x31, 0xd2, 0x86, 0xb7, 0x75, 0x06, 0x5e, 0x2e, 0xee, 0xf0, 0xd0, 0xcf, 0xe1, 0x14, 0x6b, 0x01, 0x5f, 0x8e, 0x2d, 0x8f, 0xdc, 0xf0, 0x8b, 0xd2, 0x06, 0x09, 0xdf, 0x74, 0x1b, 0xfe, 0xa2, 0xd9, 0x20, 0xf5, 0xda, 0x68, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x3e, 0xe0, 0xe4, 0xca, 0xe0, 0x40, 0x80, 0xe4, 0xc8, 0x40, 0xcc, 0xde, 0xe4, 0x40, 0xe0, 0xe4, 0xd2, 0xdc, 0xe8, 0x36, 0xbc, 0xdb, 0xb3, 0x86, 0x07, 0x25, 0x37, 0x48, 0x2f, 0x46, 0xda, 0xf0, 0xb6, 0xce, 0xc0, 0xcb, 0x91, 0x1d, 0x1e, 0xfa, 0x59, 0x01, 0x5f, 0x2e, 0x8f, 0x0d, 0xdd, 0xf0, 0x8b, 0xd2, 0x06, 0x49, 0xd2, 0x46, 0x1b, 0xfe, 0xa2, 0xd9, 0xe0, 0xd0, 0xf5, 0xba, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x1f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x20, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x40, 0x72, 0x68, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0x83, 0x92, 0x1b, 0x24, 0x2e, 0x1c, 0x1d, 0x24, 0x94, 0x2f, 0x1d, 0x1e, 0xfa, 0x99, 0x05, 0x7c, 0x39, 0xb6, 0xbc, 0x79, 0xc3, 0x2f, 0x4a, 0x1b, 0x24, 0xca, 0xe1, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0xd4, 0x6b, 0xa3, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0xf8, 0x80, 0x93, 0x2b, 0x83, 0x03, 0x01, 0x92, 0x9b, 0x03, 0x31, 0x7b, 0x93, 0x03, 0x81, 0x93, 0x4b, 0x73, 0xa3, 0xdb, 0xf0, 0x6e, 0xcf, 0x1a, 0x1e, 0x94, 0xdc, 0x20, 0xbd, 0x18, 0xe9, 0x20, 0x45, 0x90, 0xee, 0xf0, 0xd0, 0xcf, 0xe1, 0x14, 0x5b, 0xe0, 0xe5, 0xd0, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0xe0, 0xe5, 0xd0, 0x06, 0xe0, 0x01, 0x2d, 0x8c, 0xcd, 0x0c, 0x04, 0x4e, 0xae, 0x6c, 0x2c, 0x6d, 0x2e, 0xed, 0xcd, 0x0d, 0xc4, 0x0c, 0x6e, 0x83, 0xb2, 0x4b, 0x76, 0xe0, 0xe5, 0xd0, 0x0d, 0xd2, 0x08, 0x8c, 0x66, 0x83, 0xa4, 0x05, 0xa3, 0x0d, 0xcf, 0x93, 0x6c, 0x90, 0x42, 0x61, 0xb4, 0x41, 0x59, 0x86, 0xbd, 0x41, 0xe2, 0x94, 0xd1, 0x2c, 0xb3, 0x86, 0xc4, 0xd1, 0x86, 0xc7, 0x47, 0x36, 0x24, 0x8e, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0x36, 0x48, 0x6b, 0x5d, 0x5a, 0xc3, 0x9f, 0x4b, 0x83, 0x8b, 0x07, 0x87, 0xae, 0xd7, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0xa1, 0xeb, 0x75, 0xc3, 0x5b, 0x76, 0x6b, 0x78, 0xe2, 0x6e, 0xc3, 0xb3, 0x78, 0x07, 0x67, 0x3e, 0xff, 0x83, 0xa4, 0x58, 0xa3, 0xd5, 0x20, 0xd9, 0xd8, 0x68, 0xc3, 0x2f, 0x4a, 0x1b, 0xa4, 0x3a, 0x1b, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0x43, 0xd7, 0xeb, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0xfc, 0x90, 0x95, 0x8d, 0xa5, 0xb5, 0x85, 0xb1, 0x81, 0x98, 0xb1, 0xbd, 0x85, 0xd1, 0x81, 0xd0, 0xbd, 0x81, 0x00, 0xc9, 0xa1, 0x1d, 0x24, 0x11, 0x1c, 0xad, 0x06, 0x49, 0x1b, 0x47, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x41, 0x92, 0xc9, 0xd1, 0x00, 0x1e, 0x40, 0x72, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x66, 0x6e, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x1b, 0xa4, 0xb5, 0x2e, 0x75, 0x90, 0x58, 0x74, 0xb4, 0x1a, 0xb2, 0xc6, 0x1b, 0x1e, 0x1f, 0xd9, 0x90, 0x35, 0xde, 0xf0, 0x8b, 0xd2, 0x06, 0xe9, 0x13, 0x7d, 0x1b, 0xde, 0xb2, 0xdb, 0x20, 0x0d, 0xa6, 0xef, 0x20, 0x9d, 0xee, 0xe8, 0x70, 0x8a, 0xad, 0x41, 0x62, 0xe2, 0xd1, 0x86, 0x5f, 0x94, 0x36, 0x48, 0x96, 0xec, 0x3b, 0x48, 0xab, 0x3c, 0x5a, 0x0d, 0x52, 0x88, 0x8f, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0x02, 0xf3, 0xd1, 0x86, 0xbf, 0x68, 0x36, 0x38, 0x74, 0xbd, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0x47, 0x9d, 0xdb, 0x1c, 0x48, 0x9a, 0x1b, 0x5d, 0xd9, 0x59, 0x99, 0x1c, 0x08, 0xdd, 0x1b, 0x08, 0x90, 0x1c, 0xda, 0x41, 0x92, 0xfd, 0xd1, 0xe1, 0x14, 0x5b, 0x83, 0x23, 0x67, 0xed, 0x86, 0xc7, 0x47, 0x36, 0x38, 0x72, 0xd6, 0x6e, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0x6d, 0x90, 0xd6, 0xba, 0xb4, 0x41, 0xf2, 0x46, 0xdf, 0x1a, 0xfe, 0x5c, 0x1a, 0x7c, 0x3c, 0x38, 0x74, 0xbd, 0xb6, 0xe1, 0x2f, 0x9a, 0x0d, 0x0e, 0x5d, 0xaf, 0x1b, 0xde, 0xb2, 0xdb, 0x20, 0x0d, 0xa6, 0xef, 0x20, 0x6d, 0x08, 0x69, 0xd6, 0xb0, 0x68, 0xb5, 0xe1, 0xf1, 0x91, 0x0d, 0x8b, 0x56, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0x7d, 0xa2, 0x6f, 0xc3, 0x5f, 0x34, 0x1b, 0x1c, 0xba, 0x5e, 0x37, 0xbc, 0x65, 0xb7, 0x41, 0x1a, 0x4c, 0xdf, 0x41, 0xda, 0x1e, 0xd2, 0x0a, 0x78, 0x74, 0x6f, 0xf3, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0xaa, 0x98, 0x5f, 0x03, 0xf8, 0x00, 0xc9, 0xa1, 0x81, 0xd0, 0xbd, 0x81, 0x00, 0xc9, 0xcd, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0x64, 0xc9, 0xbe, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x41, 0xc9, 0x0d, 0x92, 0x51, 0x96, 0x0e, 0x52, 0x04, 0xe9, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xc9, 0x4c, 0x47, 0x87, 0x87, 0x7e, 0x9a, 0x35, 0x38, 0xd2, 0x2e, 0x6f, 0xf8, 0x45, 0x69, 0x83, 0x64, 0xc9, 0xbe, 0x0d, 0x7f, 0xd1, 0x6c, 0x90, 0x7a, 0x6d, 0xb4, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x3f, 0x40, 0x72, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x07, 0xa9, 0xbe, 0x48, 0xab, 0x61, 0xbd, 0x79, 0xc3, 0xe3, 0x23, 0x1b, 0xd6, 0x9b, 0x37, 0xfc, 0xa2, 0xb4, 0x41, 0xfa, 0x44, 0xdf, 0x86, 0xb7, 0xec, 0x36, 0x48, 0x83, 0xe9, 0x3b, 0x48, 0x71, 0x47, 0x3a, 0x9c, 0x62, 0xb5, 0x86, 0xf4, 0xe1, 0x86, 0xc7, 0x47, 0x36, 0xa4, 0x0f, 0x37, 0xfc, 0xa2, 0xb4, 0x41, 0xfa, 0x44, 0xdf, 0x86, 0xbf, 0x68, 0x36, 0x38, 0x74, 0xbd, 0x6e, 0x78, 0xcb, 0x6e, 0x83, 0x34, 0x98, 0xbe, 0x83, 0x94, 0x91, 0xa4, 0xd5, 0x20, 0xad, 0x26, 0x69, 0xc3, 0x2f, 0x4a, 0x1b, 0x24, 0x4b, 0xf6, 0x1d, 0x24, 0x05, 0x25, 0xad, 0xc0, 0xb7, 0x85, 0x1b, 0x24, 0xe1, 0x25, 0x6d, 0x50, 0xd4, 0x88, 0x6f, 0x90, 0x1c, 0x98, 0xb4, 0x86, 0x15, 0xbc, 0x83, 0xc3, 0x02, 0xdb, 0x1a, 0x1c, 0x3c, 0x32, 0x0e, 0x52, 0x5e, 0xab, 0xd6, 0xf0, 0x79, 0xd0, 0x86, 0x1f, 0x61, 0x06, 0x7e, 0x8e, 0x0c, 0xf3, 0x83, 0xb4, 0xd4, 0xa4, 0xc3, 0x29, 0xd6, 0x1a, 0xa4, 0xd4, 0x26, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0x84, 0xde, 0xa4, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0xe8, 0x7a, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0x8f, 0xb9, 0x33, 0x37, 0x90, 0x34, 0x37, 0xba, 0xb2, 0xb3, 0x32, 0x39, 0x10, 0xba, 0x37, 0x10, 0x20, 0x39, 0xb4, 0x83, 0x94, 0xf6, 0xa4, 0xd5, 0x20, 0x85, 0x40, 0x69, 0xc3, 0x2f, 0x4a, 0x1b, 0x24, 0x4b, 0xf6, 0x1d, 0x24, 0x40, 0x28, 0x1d, 0x4e, 0xb1, 0x05, 0x3c, 0xb3, 0xb7, 0x79, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x20, 0x11, 0xf5, 0xaf, 0x01, 0x7c, 0x80, 0xe4, 0xe6, 0x40, 0xe8, 0xde, 0x40, 0x80, 0xe4, 0xd0, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0xc2, 0x3c, 0xde, 0x86, 0x77, 0x7b, 0x36, 0x48, 0x46, 0x59, 0x5a, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x50, 0x72, 0x83, 0x64, 0xa6, 0xa3, 0x83, 0x14, 0x41, 0xba, 0xc3, 0x43, 0x3f, 0xcd, 0x1a, 0x94, 0x69, 0x58, 0x1b, 0x1e, 0x1f, 0xd9, 0xa0, 0x4c, 0xc3, 0xda, 0xf0, 0x8b, 0xd2, 0x06, 0xc9, 0x92, 0x7d, 0x1b, 0xfe, 0xa2, 0xd9, 0xe0, 0xd0, 0xf5, 0xba, 0xe1, 0x2d, 0xbb, 0x0d, 0xd2, 0x60, 0xfa, 0x0e, 0x92, 0xe8, 0x94, 0x66, 0x0d, 0xab, 0xe1, 0x1b, 0x1e, 0x1f, 0xd9, 0xb0, 0x1a, 0xbe, 0xe1, 0x17, 0xa5, 0x0d, 0xd2, 0x27, 0xfa, 0x36, 0xbc, 0x65, 0xb7, 0x41, 0x1a, 0x4c, 0xdf, 0x41, 0xfa, 0xa8, 0xd2, 0xe1, 0x14, 0x5b, 0xc3, 0x4e, 0xfc, 0x86, 0xc7, 0x47, 0x36, 0xec, 0xc4, 0x6f, 0xf8, 0x45, 0x69, 0x83, 0xf4, 0x89, 0xbe, 0x0d, 0x6f, 0xd9, 0x6d, 0x90, 0x06, 0xd3, 0x77, 0x90, 0x12, 0xad, 0xb4, 0x1a, 0x24, 0x9c, 0x2b, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x06, 0x09, 0xf2, 0x4a, 0x03, 0x78, 0x98, 0xb9, 0x81, 0xd0, 0xbd, 0x81, 0x00, 0xc9, 0xa1, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0xb4, 0x84, 0xa5, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0xe8, 0x7a, 0x3d, 0x48, 0x0c, 0x59, 0x9a, 0x35, 0x38, 0xfc, 0xe2, 0x6e, 0x78, 0x7c, 0x64, 0x83, 0xc3, 0x2f, 0xee, 0x86, 0x5f, 0x94, 0x36, 0x48, 0x9f, 0xe8, 0xdb, 0xf0, 0x96, 0xdd, 0x06, 0x69, 0x30, 0x7d, 0x07, 0x69, 0x53, 0x4b, 0x87, 0x53, 0x6c, 0x0d, 0x2d, 0x3e, 0x36, 0x3c, 0x3e, 0xb2, 0xa1, 0xc5, 0xc7, 0x86, 0x5f, 0x94, 0x36, 0x48, 0x9f, 0xe8, 0xdb, 0xf0, 0x17, 0xcd, 0x06, 0x87, 0xae, 0xd7, 0x0d, 0x6f, 0xd9, 0x6d, 0x90, 0x06, 0xd3, 0x77, 0x90, 0xd0, 0xb8, 0x74, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x5b, 0xc0, 0x97, 0xcb, 0x63, 0x23, 0x37, 0xfc, 0xa2, 0xb4, 0x41, 0x92, 0xb4, 0xd1, 0x86, 0xbf, 0x68, 0x36, 0x38, 0xbd, 0xbc, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0x87, 0x59, 0x9a, 0x5b, 0xda, 0x1c, 0x1a, 0x08, 0x5c, 0x98, 0xdc, 0x5c, 0x9a, 0xdb, 0x19, 0x08, 0x90, 0x1c, 0xd9, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xa0, 0xe4, 0x06, 0x89, 0x0b, 0x47, 0x07, 0x89, 0x2c, 0x7c, 0x87, 0x87, 0x7e, 0x66, 0x81, 0x37, 0x33, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x83, 0x37, 0x33, 0x1b, 0x80, 0x8f, 0xb4, 0xb2, 0xb2, 0x32, 0x90, 0x9b, 0x1a, 0x1a, 0x10, 0xb3, 0x37, 0xb9, 0xb6, 0x30, 0x3a, 0x10, 0x33, 0xb8, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0x6f, 0xc5, 0xcc, 0x5c, 0x09, 0xc0, 0x43, 0x3a, 0xb4, 0xb4, 0x39, 0x90, 0xb1, 0x37, 0xb9, 0x32, 0x10, 0xb4, 0xb0, 0x39, 0x10, 0xb7, 0x37, 0x90, 0xba, 0xb9, 0x32, 0x90, 0xb7, 0x3a, 0xba, 0xb9, 0x34, 0xb2, 0x32, 0x90, 0x37, 0x33, 0x10, 0x3a, 0xb4, 0x32, 0x10, 0xb3, 0x3a, 0xb7, 0x31, 0xba, 0xb4, 0x37, 0xb7, 0x30, 0xb6, 0x34, 0xba, 0x7c, 0x09, 0xc0, 0x17, 0x38, 0xb9, 0x37, 0xbb, 0x34, 0xb2, 0x32, 0x32, 0x10, 0xba, 0x37, 0x90, 0x95, 0x15, 0x39, 0x32, 0x16, 0x90, 0x95, 0x15, 0xb9, 0x39, 0x16, 0x90, 0x95, 0x15, 0xb9, 0x38, 0x16, 0x90, 0x30, 0x37, 0x32, 0x90, 0x95, 0x15, 0x39, 0xb4, 0x95, 0x00, 0xbc, 0xb9, 0xeb, 0xb9, 0x4b, 0x23, 0xa3, 0x43, 0xd3, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x11, 0x4b, 0xa3, 0x9b, 0x03, 0x49, 0x73, 0x03, 0x29, 0xc3, 0x83, 0x7b, 0x73, 0x2b, 0x73, 0xa3, 0x03, 0x31, 0x4b, 0x2b, 0x63, 0x23, 0x97, 0x00, 0xbc, 0x81, 0xeb, 0x81, 0x93, 0x2b, 0x1b, 0x4b, 0x9b, 0x4b, 0x7b, 0x73, 0xd3, 0x01, 0x01, 0x01, 0x01, 0x01, 0x11, 0x4b, 0xa3, 0x9b, 0x03, 0x49, 0x73, 0x03, 0x31, 0x93, 0x0b, 0x1b, 0xa3, 0x4b, 0x7b, 0x73, 0x03, 0x31, 0x4b, 0x2b, 0x63, 0x23, 0x97, 0x00, 0xbc, 0x13, 0xeb, 0x11, 0x4b, 0x0b, 0x9b, 0xd3, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x09, 0x23, 0x23, 0x2b, 0x23, 0x03, 0xa1, 0x7b, 0x03, 0x29, 0xc3, 0x83, 0x7b, 0x73, 0x2b, 0x73, 0xa3, 0x03, 0xb9, 0x43, 0x2b, 0x73, 0x03, 0x99, 0xa3, 0x7b, 0x93, 0x4b, 0x73, 0x3b, 0x97, 0x00, 0xfe, 0xe5, 0x7a, 0xe4, 0xde, 0xea, 0xdc, 0xc8, 0xd2, 0xdc, 0xce, 0x40, 0xda, 0xde, 0xc8, 0xca, 0x74, 0x40, 0xe6, 0xc2, 0xda, 0xca, 0x40, 0xc2, 0xe6, 0x40, 0xd2, 0xdc, 0x40, 0x56, 0x56, 0xcc, 0xd8, 0xda, 0xa0, 0x2c, 0xc3, 0x5e, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0xa4, 0x1b, 0xa6, 0x0d, 0x92, 0x48, 0x98, 0x0e, 0xd2, 0xa9, 0xb7, 0x36, 0x48, 0x08, 0x62, 0x6a, 0x96, 0x59, 0x43, 0xe2, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0xa4, 0xf8, 0x64, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xc3, 0x0d, 0x5f, 0xd4, 0x6c, 0xa8, 0xe3, 0xe1, 0xf2, 0x1a, 0xfe, 0x5c, 0x1a, 0x5c, 0x3c, 0x48, 0xe8, 0x13, 0x6c, 0xc3, 0xbb, 0x3d, 0x1b, 0x1c, 0x5a, 0x78, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0x1e, 0x94, 0xdc, 0x20, 0x78, 0x6a, 0x37, 0xbc, 0xad, 0x33, 0xf0, 0x70, 0x61, 0x1b, 0x24, 0x66, 0xfa, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x92, 0x99, 0x8e, 0x0e, 0x6f, 0xa1, 0xd5, 0x6a, 0x90, 0x6c, 0x6c, 0xb4, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x1b, 0x24, 0x5a, 0xa4, 0x0d, 0xc0, 0x0b, 0x59, 0xd9, 0x58, 0x5a, 0x5b, 0x18, 0x1b, 0x88, 0x19, 0xdb, 0x5b, 0x18, 0x1d, 0x08, 0xdd, 0x1b, 0x08, 0x90, 0xdc, 0x86, 0x5f, 0x94, 0x36, 0x48, 0x75, 0x36, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x87, 0x16, 0x9e, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0x07, 0x25, 0x37, 0x48, 0x5c, 0x38, 0x3a, 0x48, 0x0a, 0x15, 0x3c, 0x3c, 0xf4, 0xd3, 0x6a, 0x90, 0xb4, 0x71, 0xb4, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x1b, 0x24, 0x99, 0x1c, 0x0d, 0xf0, 0x03, 0xc9, 0x81, 0xd0, 0xbd, 0x81, 0x98, 0xb9, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0x6d, 0x90, 0x7a, 0x27, 0xd8, 0x86, 0xbf, 0x68, 0x36, 0x48, 0x93, 0x58, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0x9b, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x24, 0x9a, 0xdd, 0xf0, 0xe0, 0xcd, 0x1a, 0x7e, 0x71, 0xd9, 0xf0, 0xe0, 0xcd, 0x06, 0xa7, 0x8b, 0x8c, 0x0e, 0x0f, 0xfd, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xcb, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x12, 0xcd, 0x6e, 0x78, 0xf0, 0x66, 0x0d, 0xbf, 0xb8, 0x6c, 0x70, 0xba, 0xc8, 0x38, 0x38, 0xfe, 0xb8, 0x1c, 0x1e, 0xfa, 0x69, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xf0, 0x79, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0xd1, 0x1e, 0x1d, 0x1e, 0xfa, 0xd9, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0xa0, 0x9c, 0x80, 0x3e, 0x3c, 0x78, 0xb3, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x06, 0xc5, 0x48, 0xed, 0xe1, 0xc1, 0x9b, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x8a, 0x93, 0xd3, 0x06, 0x87, 0x73, 0xbe, 0x83, 0xd4, 0xa2, 0xb6, 0x0d, 0xbf, 0xb8, 0x6c, 0x90, 0xe2, 0xe4, 0xb4, 0xc1, 0xe1, 0x9c, 0x6f, 0x0d, 0x6f, 0xeb, 0x0c, 0x7c, 0x5b, 0xd9, 0x41, 0x61, 0xd5, 0xbd, 0xe1, 0x83, 0x9c, 0x35, 0xfc, 0x9b, 0xb3, 0x41, 0x39, 0x01, 0xbd, 0xe1, 0xdd, 0x9e, 0x0d, 0x12, 0x43, 0xb2, 0x36, 0x3c, 0x78, 0xb3, 0xc1, 0x21, 0xbf, 0xe5, 0xa0, 0x20, 0x1e, 0x5f, 0xc3, 0x07, 0x39, 0x1b, 0x24, 0x5a, 0x0e, 0xae, 0xe1, 0x17, 0x97, 0x0d, 0x12, 0x4b, 0xaa, 0x0e, 0x4e, 0xf2, 0x7c, 0x07, 0xa7, 0x62, 0xd5, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xe3, 0x01, 0xbf, 0x6d, 0x6c, 0x8c, 0xdd, 0x20, 0x61, 0xfb, 0x69, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x28, 0xff, 0x74, 0x50, 0x66, 0x4b, 0x6f, 0x90, 0xd0, 0x3b, 0xb8, 0x41, 0xca, 0x90, 0x53, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0xcb, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0xf9, 0x21, 0x6a, 0x83, 0x62, 0xa4, 0x76, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x68, 0xf7, 0x1e, 0xa4, 0x27, 0x0d, 0xb6, 0xe1, 0x17, 0x97, 0x0d, 0x52, 0x9c, 0x9c, 0x36, 0x38, 0x9c, 0xf3, 0x6d, 0x70, 0x3a, 0x12, 0x39, 0x38, 0xf4, 0xf5, 0xad, 0x86, 0xac, 0xf1, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0x6d, 0x90, 0x8c, 0xa6, 0x36, 0x80, 0x17, 0x5b, 0xd9, 0xdc, 0x5c, 0x4b, 0x59, 0x5c, 0x5d, 0x18, 0xdb, 0xdc, 0x86, 0x5f, 0x94, 0x36, 0x48, 0xa0, 0x13, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0xc7, 0xd8, 0xb1, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0x07, 0x25, 0x37, 0x7c, 0xf1, 0x7b, 0x90, 0x14, 0x2a, 0x78, 0x90, 0x82, 0x2a, 0x78, 0x90, 0x6a, 0x0b, 0x77, 0x38, 0xc5, 0xd6, 0x20, 0x31, 0xf1, 0x68, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x20, 0x31, 0xf1, 0xa8, 0x83, 0x94, 0xd1, 0xa3, 0x0d, 0xbf, 0x28, 0x6d, 0x90, 0xc0, 0x31, 0xb8, 0xe1, 0x2f, 0x9a, 0x0d, 0x1f, 0xac, 0x6e, 0xf8, 0x37, 0x67, 0xc3, 0x83, 0x37, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x24, 0x9a, 0xdd, 0xf0, 0xe0, 0xcd, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x24, 0x3f, 0x44, 0x1d, 0xa4, 0x95, 0x0d, 0x1e, 0x14, 0xc4, 0xe3, 0x87, 0x87, 0x7e, 0x56, 0x83, 0x14, 0xe2, 0xa3, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0xdb, 0x20, 0xf9, 0x57, 0x6d, 0x00, 0x1e, 0xea, 0xdc, 0xe6, 0x40, 0xd2, 0xdc, 0xe8, 0xca, 0xce, 0xca, 0xe4, 0x40, 0xe8, 0xde, 0x40, 0x80, 0xe4, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0x02, 0xf3, 0xd1, 0x86, 0x77, 0x7b, 0x36, 0x48, 0x46, 0x59, 0x3a, 0x48, 0xad, 0x57, 0x3b, 0x9c, 0x62, 0x6b, 0x70, 0xe4, 0xac, 0xdd, 0xf0, 0x3c, 0xc9, 0x06, 0x49, 0xf0, 0x69, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x1b, 0xa4, 0xde, 0x09, 0x6e, 0x90, 0x52, 0x28, 0xb8, 0x86, 0x3f, 0x97, 0x06, 0x1f, 0x0f, 0x12, 0xfa, 0x04, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0x87, 0x16, 0x9e, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0x07, 0x25, 0x37, 0x48, 0x55, 0x42, 0x3a, 0x48, 0x0a, 0x15, 0xdc, 0x20, 0x31, 0xd3, 0x6f, 0x83, 0x54, 0x56, 0xc1, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x32, 0xd3, 0xd1, 0xe1, 0x17, 0xa1, 0x9a, 0x35, 0x2c, 0x5a, 0x6d, 0x78, 0x9e, 0x64, 0x83, 0xf4, 0x38, 0xa8, 0x0d, 0xbf, 0x28, 0x6d, 0x90, 0x40, 0x27, 0xb8, 0xe1, 0xdd, 0x9e, 0x0d, 0x0e, 0x2d, 0x3c, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x0f, 0x4a, 0x6e, 0x10, 0x0a, 0xac, 0x07, 0x49, 0xa1, 0x82, 0x07, 0x29, 0xa8, 0x82, 0xad, 0x06, 0x47, 0xda, 0xe5, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0xdb, 0x20, 0x59, 0x71, 0x6a, 0x00, 0x5e, 0x80, 0xe4, 0x40, 0xe8, 0xde, 0x40, 0xc8, 0xca, 0xc6, 0xd2, 0xda, 0xc2, 0xd8, 0x40, 0xcc, 0xd8, 0xde, 0xc2, 0xe8, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0x02, 0xc7, 0xe0, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xa0, 0xe4, 0x06, 0xe9, 0xc5, 0x48, 0x07, 0x49, 0xa1, 0x82, 0x07, 0x49, 0x99, 0x7e, 0xab, 0x61, 0xbd, 0x79, 0xc3, 0xf3, 0x24, 0x1b, 0xa4, 0x2c, 0x60, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0x04, 0x3a, 0xc1, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0x8c, 0x1d, 0x5b, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x50, 0x72, 0xc3, 0x17, 0x67, 0x07, 0x49, 0xa1, 0x82, 0x07, 0x29, 0xa8, 0x82, 0x07, 0xa9, 0xb6, 0x70, 0x2b, 0xf0, 0x6d, 0xe5, 0x86, 0xe7, 0x49, 0x36, 0x48, 0x39, 0x1b, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0x49, 0xe5, 0x50, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xa4, 0x72, 0xa8, 0x0d, 0x52, 0x51, 0xa5, 0x0e, 0x6f, 0xa1, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x12, 0xe5, 0x9f, 0x0e, 0xd2, 0x93, 0x06, 0x3b, 0x9c, 0x62, 0xb5, 0x06, 0x63, 0x05, 0x7f, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x36, 0x38, 0xd8, 0xe2, 0x0c, 0xc0, 0x8f, 0x99, 0x1b, 0x08, 0xdd, 0x1b, 0x08, 0x90, 0x1c, 0x88, 0xdb, 0x1b, 0x88, 0xdc, 0x5b, 0x9d, 0x1b, 0x59, 0x9a, 0xdb, 0xd9, 0x86, 0x5f, 0x94, 0x36, 0x48, 0x4b, 0x58, 0xda, 0xf0, 0x17, 0xcd, 0x06, 0x09, 0x7d, 0x82, 0x1b, 0x3e, 0xc8, 0xd9, 0x20, 0x1d, 0x7f, 0x6b, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xe3, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x1a, 0xf0, 0x6e, 0x90, 0x32, 0x34, 0xb8, 0x41, 0xaa, 0xf4, 0x60, 0x1b, 0x3e, 0xc8, 0xd9, 0x20, 0x65, 0xb9, 0x69, 0x83, 0xd3, 0x91, 0xc8, 0x86, 0x77, 0x7b, 0x36, 0x48, 0x7e, 0x88, 0xda, 0xe0, 0x74, 0x24, 0xb2, 0x86, 0xb7, 0x75, 0x06, 0x7e, 0x4e, 0xac, 0x0d, 0x1f, 0xe4, 0x6c, 0x90, 0x5e, 0xbe, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x0d, 0x78, 0xd7, 0xf0, 0x8b, 0xcb, 0x86, 0x07, 0x6f, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0xd7, 0x7c, 0x0e, 0xd2, 0x93, 0x06, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x24, 0x86, 0x64, 0x6d, 0x78, 0xf0, 0x66, 0x0d, 0x1f, 0x47, 0x1d, 0x1c, 0xf2, 0x5b, 0x0e, 0x0a, 0xe2, 0xf1, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x48, 0xf2, 0x74, 0x5a, 0xc3, 0x07, 0x39, 0x1b, 0xa4, 0x2c, 0x37, 0xad, 0xe1, 0xeb, 0x97, 0x35, 0xfc, 0x08, 0x73, 0x50, 0xf0, 0x6c, 0x6e, 0xf8, 0xfa, 0x65, 0xc3, 0x87, 0x30, 0x87, 0x07, 0x6f, 0x0e, 0xd2, 0x61, 0x0d, 0x37, 0x7c, 0x62, 0xb3, 0x41, 0x1a, 0x2a, 0xd4, 0x06, 0xc5, 0x8e, 0xe6, 0x1a, 0xfe, 0xcd, 0xd9, 0x20, 0x81, 0xd7, 0x68, 0xc3, 0xc7, 0x51, 0x07, 0xa7, 0x8b, 0x8c, 0x35, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x6f, 0xce, 0x06, 0x49, 0x33, 0x4e, 0x07, 0x09, 0xbd, 0x83, 0x1b, 0x14, 0x7c, 0x98, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x44, 0xc6, 0xa7, 0x0d, 0x12, 0x78, 0x8d, 0x36, 0x48, 0x66, 0x39, 0x6c, 0xc3, 0x07, 0x39, 0x1b, 0xa4, 0x2c, 0x37, 0xad, 0xe1, 0xeb, 0x97, 0x0d, 0x92, 0x08, 0x0e, 0x37, 0x7c, 0xfd, 0xb2, 0xe1, 0x43, 0x98, 0x83, 0x74, 0x4d, 0xa7, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0xfc, 0x10, 0xb5, 0x41, 0xba, 0xa6, 0xd3, 0x41, 0x2a, 0xac, 0xe1, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xf1, 0x86, 0x77, 0x7b, 0x36, 0x48, 0xd8, 0x7e, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x24, 0x95, 0x43, 0x6d, 0x90, 0x34, 0xe3, 0xb4, 0x41, 0x42, 0xef, 0x60, 0x07, 0x69, 0xa8, 0x52, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0xcb, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0xf9, 0x21, 0x6a, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x1a, 0xf0, 0x6e, 0x90, 0x32, 0x34, 0x78, 0x90, 0x64, 0xa4, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x32, 0x71, 0x37, 0x48, 0x19, 0x1a, 0x3c, 0x48, 0xd5, 0x74, 0x6a, 0xc3, 0x07, 0x39, 0x1b, 0xa4, 0x2c, 0x37, 0x6d, 0x70, 0xfc, 0xe4, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0xc9, 0x0f, 0x51, 0x1b, 0x1c, 0x3f, 0xf9, 0x0e, 0x52, 0x61, 0x0d, 0x0f, 0xa7, 0xd8, 0x1a, 0xd2, 0x87, 0x1b, 0x9e, 0x27, 0xd9, 0x20, 0x95, 0x07, 0x6e, 0xc3, 0x2f, 0x4a, 0x1b, 0x24, 0xd0, 0x09, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x43, 0x0b, 0xcf, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0x83, 0x92, 0x1b, 0xfe, 0x04, 0x3a, 0x48, 0x0a, 0x15, 0x3c, 0x48, 0x41, 0x15, 0x6c, 0x35, 0x48, 0xab, 0x49, 0xda, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x48, 0xab, 0x49, 0xea, 0x20, 0xf9, 0x29, 0x69, 0xc3, 0x2f, 0x4a, 0x1b, 0x24, 0x70, 0x0c, 0x6e, 0xf8, 0x8b, 0x66, 0x83, 0xe3, 0xc9, 0xc9, 0x86, 0x77, 0x7b, 0x36, 0x48, 0x2a, 0x87, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x24, 0xca, 0x3f, 0x6d, 0x90, 0x70, 0x35, 0xd8, 0xe1, 0x2d, 0xb4, 0xc3, 0x29, 0xb6, 0x06, 0x29, 0xb5, 0x49, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x41, 0xaa, 0x41, 0xdc, 0x00, 0xfc, 0xcc, 0xa5, 0x9d, 0xb9, 0x95, 0x91, 0x81, 0xa4, 0xb9, 0xd1, 0x95, 0x9d, 0x95, 0xc9, 0x81, 0xd0, 0xbd, 0x81, 0x00, 0xc9, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0x84, 0xde, 0xa4, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x8c, 0xb2, 0xb4, 0x86, 0x5f, 0x5c, 0x36, 0x48, 0x71, 0x72, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0xcb, 0x44, 0x1d, 0x1e, 0xfa, 0xd9, 0x20, 0x81, 0xc7, 0x69, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x92, 0xe6, 0x74, 0x78, 0xe8, 0xa7, 0x56, 0x83, 0x14, 0x02, 0xa5, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0xdb, 0x20, 0x71, 0x2f, 0xee, 0x20, 0xd9, 0x44, 0x69, 0xc3, 0x2f, 0x4a, 0x1b, 0x24, 0x70, 0x0c, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0x0f, 0x4a, 0x6e, 0x90, 0x04, 0xa4, 0x74, 0x90, 0x14, 0x2a, 0x78, 0x90, 0x94, 0xe9, 0x37, 0x0b, 0x3c, 0x5c, 0xb8, 0x41, 0x12, 0x5e, 0xd2, 0x06, 0x45, 0x8d, 0xf8, 0x1a, 0xde, 0xd6, 0x19, 0x78, 0x33, 0xb6, 0x35, 0x38, 0x78, 0x64, 0x1c, 0x24, 0xb3, 0x1c, 0xae, 0xc1, 0xa1, 0xb5, 0xe5, 0x20, 0xa1, 0x77, 0x70, 0x0d, 0x2b, 0x78, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0xe5, 0xea, 0x6a, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x68, 0xf7, 0x1e, 0x1c, 0x7f, 0x5c, 0x0e, 0x0a, 0x4a, 0xf1, 0x35, 0x28, 0xf2, 0x65, 0x0f, 0xd2, 0x49, 0x99, 0x0e, 0xd2, 0x52, 0x93, 0x0e, 0xa7, 0xd8, 0x1a, 0x94, 0x69, 0x58, 0x1b, 0x9e, 0x27, 0xd9, 0x20, 0x25, 0x71, 0x6c, 0xc3, 0x2f, 0x4a, 0x1b, 0x24, 0x70, 0x0c, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x43, 0x0b, 0xcf, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0x83, 0x92, 0x1b, 0x24, 0xee, 0x29, 0x1d, 0x24, 0x85, 0x0a, 0x1e, 0x24, 0x65, 0xfa, 0x35, 0x6b, 0x58, 0x0d, 0xdf, 0xf0, 0x3c, 0xc9, 0x06, 0x29, 0x0c, 0x73, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0x81, 0x4e, 0x70, 0xc3, 0xbb, 0x3d, 0x1b, 0x1c, 0x63, 0xc7, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0x1e, 0x94, 0xdc, 0xf0, 0x8d, 0xe2, 0x41, 0x52, 0xa8, 0xe0, 0x41, 0x0a, 0xaa, 0xe0, 0x41, 0xaa, 0x2d, 0xdc, 0xe1, 0x14, 0x5b, 0xc3, 0x4e, 0xfc, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0x6d, 0x90, 0x52, 0x34, 0x37, 0x80, 0xef, 0x99, 0x5c, 0x59, 0x18, 0x5d, 0x99, 0x5c, 0x4b, 0x59, 0x5c, 0x5d, 0x18, 0xdb, 0xdc, 0x86, 0x5f, 0x94, 0x36, 0x48, 0xa0, 0x13, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0xc7, 0xd8, 0xb1, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0x07, 0x25, 0x37, 0x48, 0xc3, 0x56, 0x3a, 0x48, 0x0a, 0x15, 0x3c, 0x48, 0x41, 0x15, 0x3c, 0x48, 0xb5, 0x85, 0x5b, 0x0d, 0x12, 0xce, 0x95, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0x5a, 0xc2, 0xd2, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0xfc, 0x98, 0xb9, 0x81, 0xd0, 0xbd, 0x81, 0x00, 0xc9, 0x81, 0xdc, 0xad, 0x80, 0xc8, 0xbd, 0xd5, 0xb9, 0x91, 0xa5, 0xb9, 0x9d, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x43, 0x0b, 0xcf, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0x83, 0x92, 0x1b, 0xa4, 0x95, 0x65, 0x1d, 0x24, 0x85, 0x0a, 0x1e, 0x1e, 0xfa, 0x69, 0x05, 0x7e, 0x4e, 0xdc, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0xe0, 0x9f, 0x4b, 0x3b, 0x73, 0x03, 0x11, 0x4b, 0xa3, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0x85, 0x76, 0xef, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0xf9, 0x21, 0x6a, 0x83, 0x43, 0x7e, 0xcb, 0x41, 0x7a, 0xd2, 0x60, 0x87, 0x53, 0x6c, 0x0d, 0x0e, 0xbf, 0xb8, 0x1b, 0x9e, 0x27, 0xd9, 0x20, 0x05, 0xbc, 0x6c, 0xc3, 0x2f, 0x4a, 0x1b, 0x24, 0xd0, 0x09, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x63, 0xec, 0xd8, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0x83, 0x92, 0x1b, 0xa4, 0x6a, 0x2d, 0x1d, 0x24, 0x85, 0x0a, 0x1e, 0xa4, 0xa0, 0x0a, 0x1e, 0xa4, 0xda, 0xc2, 0x1d, 0x4e, 0xb1, 0x35, 0xb4, 0xf8, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0x49, 0x0b, 0x74, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0x81, 0x4e, 0x70, 0xc3, 0xbb, 0x3d, 0x1b, 0x1c, 0x5a, 0x78, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0x1e, 0x94, 0xdc, 0xf0, 0x29, 0xe0, 0x41, 0x52, 0xa8, 0xe0, 0x41, 0x0a, 0xaa, 0x60, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x05, 0x7c, 0xb9, 0x3c, 0xb6, 0x78, 0xc3, 0x2f, 0x4a, 0x1b, 0x24, 0x49, 0x1b, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0xb3, 0xe2, 0xeb, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0x7c, 0x98, 0xa5, 0xb9, 0xa5, 0xcd, 0xa1, 0x81, 0xc0, 0x85, 0xc9, 0xcd, 0xa5, 0xb9, 0x9d, 0x81, 0x00, 0xc9, 0xc5, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0x0f, 0x4a, 0x6e, 0x90, 0xb8, 0x70, 0x74, 0x90, 0x3e, 0xbe, 0x77, 0x78, 0xe8, 0xe7, 0x70, 0x8a, 0xad, 0x00, 0x3e, 0x73, 0x63, 0x72, 0x61, 0x6d, 0x62, 0x6c, 0x69, 0x6e, 0xe7, 0x32, 0x80, 0xef, 0x8c, 0x99, 0x0e, 0xc8, 0xdc, 0x98, 0x5c, 0x58, 0x9b, 0x18, 0x5b, 0x9a, 0xdb, 0xd9, 0x02, 0xff, 0x26, 0x6e, 0x50, 0x76, 0xc9, 0x0e, 0xfc, 0x9b, 0xb8, 0x86, 0x4b, 0x6a, 0x8d, 0xc7, 0x03, 0xff, 0x26, 0xd6, 0x6a, 0x90, 0xe4, 0x99, 0xb0, 0xe1, 0x6d, 0x9d, 0x0d, 0x92, 0x3c, 0x13, 0x5a, 0x83, 0x44, 0xad, 0x84, 0x0d, 0x6f, 0xeb, 0x6c, 0x90, 0xa8, 0x95, 0x50, 0x1b, 0x94, 0x2c, 0xec, 0xb3, 0xcc, 0x02, 0x9e, 0x59, 0x59, 0xb9, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x90, 0x36, 0xb5, 0xd8, 0x00, 0xb4, 0x88, 0x18, 0x95, 0x89, 0x80, 0xa4, 0xb9, 0x81, 0x08, 0x99, 0x48, 0x81, 0xa0, 0xc8, 0xc0, 0xc0, 0xc8, 0xa4, 0xb8, 0x95, 0x00, 0xf4, 0x0b, 0x02, 0x31, 0x2a, 0x4b, 0x9b, 0xa3, 0x2b, 0x63, 0x03, 0x19, 0x4b, 0x83, 0x43, 0x2b, 0x93, 0x03, 0x39, 0x4b, 0xb3, 0x2b, 0x73, 0x03, 0xa1, 0x43, 0x2b, 0x03, 0x31, 0x7b, 0x63, 0x63, 0x7b, 0xbb, 0x4b, 0x73, 0x3b, 0x03, 0x81, 0x0b, 0x93, 0x0b, 0x6b, 0x2b, 0xa3, 0x2b, 0x93, 0x9b, 0xd3, 0xad, 0x04, 0xf0, 0x2d, 0xa7, 0x03, 0x02, 0x02, 0x02, 0xe2, 0x56, 0xd7, 0x26, 0x56, 0x26, 0x07, 0xf2, 0x66, 0x06, 0x62, 0x54, 0x96, 0x36, 0x47, 0x57, 0xc6, 0x06, 0x22, 0xf7, 0x56, 0xe7, 0x46, 0x36, 0x2f, 0x01, 0xf8, 0x10, 0xc6, 0x02, 0x22, 0xa6, 0x03, 0x02, 0x17, 0x26, 0x17, 0xd6, 0x56, 0x46, 0x57, 0x26, 0x37, 0x07, 0x32, 0x57, 0x37, 0x86, 0x06, 0x42, 0x87, 0x16, 0x46, 0x07, 0x12, 0x26, 0x06, 0xe2, 0xd3, 0x03, 0xb2, 0x2e, 0x01, 0xf8, 0xbd, 0xa6, 0x03, 0x02, 0x02, 0x02, 0x62, 0x17, 0xc6, 0x56, 0x57, 0x06, 0x32, 0x57, 0x37, 0x86, 0x06, 0x42, 0x87, 0x16, 0x46, 0x07, 0x42, 0x87, 0x56, 0x06, 0x42, 0xf6, 0xd6, 0x16, 0x96, 0xe6, 0x06, 0xf2, 0x66, 0x06, 0x42, 0x87, 0x56, 0x06, 0x32, 0x96, 0x06, 0x87, 0x56, 0x26, 0x07, 0x92, 0x36, 0x07, 0xb2, 0x05, 0xc3, 0x02, 0xb2, 0x06, 0xd2, 0x02, 0x12, 0xd3, 0x2d, 0x01, 0xf0, 0x02, 0x9c, 0x9c, 0x99, 0x0e, 0x08, 0x48, 0x18, 0xc8, 0x59, 0x18, 0x5d, 0x19, 0x08, 0x59, 0x99, 0xdb, 0x1b, 0x5d, 0x9a, 0xdb, 0x19, 0x48, 0x18, 0x88, 0x59, 0x58, 0x5b, 0x1a, 0x5b, 0x1e, 0xc8, 0x9b, 0x19, 0x08, 0xdc, 0x5c, 0x59, 0x1d, 0xd9, 0x9b, 0x5c, 0x98, 0x1b, 0xd9, 0x5b, 0x1b, 0x88, 0x59, 0x9d, 0xdb, 0x18, 0x5d, 0xda, 0x9b, 0xdb, 0x1c, 0x48, 0x9a, 0x1b, 0x59, 0x19, 0x5e, 0x19, 0x19, 0x88, 0x58, 0x5e, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xe0, 0x59, 0x9b, 0x0e, 0x08, 0x08, 0x08, 0x48, 0x98, 0x1b, 0x48, 0x9a, 0x1b, 0x5c, 0x1d, 0x1d, 0x88, 0x5d, 0x18, 0x5b, 0x5d, 0x19, 0x48, 0x9a, 0x1b, 0x08, 0x1d, 0x5a, 0x19, 0x08, 0xd9, 0x5b, 0x5b, 0x58, 0x9a, 0x1b, 0xc8, 0x16, 0x0c, 0x0b, 0xc8, 0x1a, 0x48, 0x0b, 0x48, 0x4c, 0xd7, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x5c, 0x3e, 0xfc, 0x50, 0xb3, 0xe1, 0xcb, 0xa5, 0x0d, 0xcf, 0x33, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xd7, 0xc3, 0x0f, 0x35, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x83, 0x93, 0x33, 0x37, 0x08, 0xa7, 0xb1, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x57, 0x0f, 0x3f, 0xd4, 0x6c, 0x90, 0x92, 0xcb, 0xd8, 0xe1, 0x87, 0x9a, 0x35, 0xfc, 0xb9, 0x34, 0x78, 0x7b, 0xf8, 0xa1, 0xa6, 0x0d, 0x7f, 0xd1, 0x6c, 0xf8, 0xa1, 0x66, 0x83, 0x82, 0x34, 0x76, 0xf0, 0x71, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0xe6, 0x5f, 0xdb, 0xe0, 0xf8, 0xc9, 0xb7, 0xe1, 0x69, 0x9d, 0x0d, 0xef, 0x05, 0xad, 0xe1, 0x6d, 0x9d, 0x0d, 0x12, 0xaa, 0x19, 0x3b, 0x38, 0x21, 0x50, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0xe2, 0x6c, 0xc3, 0xd3, 0x3b, 0x1b, 0xa4, 0x79, 0x57, 0xb5, 0xe1, 0xe9, 0x9d, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0xe6, 0x5f, 0xdb, 0xe0, 0xf8, 0xc9, 0xb7, 0xe1, 0x69, 0x9d, 0x0d, 0xef, 0x05, 0x6d, 0x90, 0x9a, 0xd1, 0x78, 0xf8, 0x45, 0x68, 0x35, 0x48, 0xd4, 0x4a, 0xd8, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x48, 0xd4, 0x4a, 0x68, 0x00, 0xba, 0xe4, 0xca, 0xe6, 0xe8, 0xde, 0xe4, 0xca, 0x40, 0xe6, 0xe8, 0xe4, 0xea, 0xc6, 0xe8, 0xea, 0xe4, 0xca, 0x58, 0x40, 0xec, 0x66, 0xdc, 0x4a, 0x00, 0xfa, 0x4b, 0x95, 0xcd, 0xd1, 0xbd, 0xc9, 0x95, 0xcd, 0x81, 0xbc, 0x89, 0x99, 0xd5, 0xcd, 0x8d, 0x85, 0xd1, 0x95, 0x91, 0x81, 0xd8, 0x85, 0xb1, 0xd5, 0x95, 0xcd, 0x81, 0xd0, 0xa1, 0x85, 0xd1, 0x81, 0xa0, 0x85, 0xd9, 0x95, 0x81, 0x88, 0x95, 0x95, 0xb9, 0x81, 0x94, 0xb9, 0x8d, 0xa5, 0xc1, 0xa1, 0x95, 0xc9, 0x95, 0x91, 0x81, 0xdc, 0xa5, 0xd1, 0xa1, 0x81, 0xac, 0x98, 0x95, 0xa5, 0xb9, 0xb9, 0xda, 0xf0, 0xf8, 0xc8, 0x06, 0x89, 0x5a, 0x09, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0x9f, 0x4b, 0x03, 0xde, 0x98, 0x5c, 0x7e, 0xf8, 0xa1, 0x66, 0xc3, 0x5f, 0x34, 0x1b, 0x7e, 0xa8, 0xd9, 0xf0, 0x41, 0xce, 0x1a, 0x1e, 0x61, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0x61, 0x2b, 0xad, 0xe1, 0x6d, 0x9d, 0x0d, 0xd2, 0xa6, 0x1b, 0x5b, 0xc3, 0x8f, 0x30, 0x03, 0x5f, 0x87, 0x07, 0x06, 0x00, 0x40, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x17, 0xbf, 0x1b, 0xa4, 0xc2, 0x37, 0xae, 0xe1, 0x47, 0x98, 0x81, 0xaf, 0xc3, 0x0f, 0x12, 0xf8, 0x10, 0x6a, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x13, 0x68, 0x83, 0x64, 0xfc, 0xc6, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xc1, 0x5a, 0x6e, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x14, 0xf0, 0x20, 0x0d, 0xbe, 0xb1, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x47, 0x58, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x69, 0xd8, 0x4a, 0x1b, 0xa4, 0xc2, 0x37, 0xae, 0xe1, 0x47, 0x98, 0x81, 0xaf, 0xc3, 0x0f, 0x92, 0xa1, 0x11, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0xbe, 0xf8, 0xdd, 0x20, 0x15, 0xbe, 0x71, 0x0d, 0x3f, 0xc2, 0x0c, 0x7c, 0x1d, 0x7e, 0x90, 0xca, 0x8e, 0x50, 0x6b, 0x50, 0x90, 0xc6, 0x0e, 0x3c, 0xdb, 0xbb, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x7a, 0xc7, 0x1d, 0xa4, 0x28, 0x38, 0x6e, 0x50, 0x90, 0xc6, 0x0e, 0x3c, 0x5a, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x7a, 0xc7, 0x6d, 0x90, 0x0a, 0xdf, 0xb8, 0x86, 0x1f, 0x61, 0x06, 0xbe, 0x0e, 0x3f, 0x48, 0x0c, 0x49, 0x68, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x82, 0xb2, 0x7b, 0x83, 0x43, 0xba, 0xdb, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0x09, 0xf4, 0x8d, 0x1b, 0xde, 0xd6, 0x19, 0x78, 0xb6, 0xb7, 0x0e, 0x52, 0xe1, 0x1b, 0x57, 0x83, 0x24, 0xcf, 0x84, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x24, 0xcf, 0x84, 0x06, 0xa0, 0x6b, 0xec, 0xcd, 0x6d, 0xac, 0x2c, 0x8c, 0x0d, 0x64, 0x8e, 0x4e, 0xae, 0x6e, 0x8c, 0xae, 0x4e, 0xae, 0x8c, 0x05, 0xc4, 0x6e, 0xc6, 0xad, 0x04, 0xc0, 0x13, 0x2b, 0x66, 0x65, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x63, 0x65, 0x61, 0x6c, 0x73, 0x20, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x64, 0x20, 0x61, 0x74, 0x6f, 0x6d, 0x73, 0x2e, 0x20, 0x20, 0x54, 0x68, 0x65, 0x20, 0x69, 0x64, 0x65, 0x61, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x74, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0xe5, 0x12, 0x80, 0xae, 0x74, 0x72, 0x69, 0x76, 0x69, 0x61, 0x6c, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x65, 0x6c, 0x6c, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x74, 0x20, 0x61, 0x20, 0x73, 0x74, 0x61, 0x72, 0x20, 0x68, 0x61, 0x73, 0x20, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x65, 0x64, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0xae, 0x36, 0x3c, 0x3e, 0xb2, 0x41, 0x92, 0x67, 0xc2, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0x80, 0x07, 0x97, 0xe7, 0x1e, 0x7e, 0xa8, 0xd9, 0xf0, 0x17, 0xcd, 0x86, 0x1f, 0x6a, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x47, 0x58, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x69, 0xd8, 0x4a, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x94, 0xbe, 0xc7, 0x0e, 0x12, 0xf1, 0x1b, 0xd7, 0xf0, 0x6e, 0xcf, 0x86, 0x2f, 0x7e, 0x37, 0x48, 0xd3, 0x7c, 0x3c, 0x48, 0x73, 0x70, 0x6c, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x13, 0x68, 0x83, 0x64, 0xfc, 0xc6, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0x7c, 0xb3, 0xb2, 0xb4, 0xb9, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x53, 0xc0, 0x83, 0x14, 0xcd, 0xc7, 0xda, 0xf0, 0x41, 0xce, 0x1a, 0x1e, 0x61, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0x61, 0x2b, 0x6d, 0x90, 0xa6, 0xf9, 0x78, 0x90, 0xb6, 0xe4, 0xb8, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0xf1, 0xbb, 0x41, 0x9a, 0xe6, 0xe3, 0x41, 0x72, 0x98, 0x63, 0x6b, 0x50, 0x90, 0xc6, 0x0e, 0x3c, 0xdb, 0xbb, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x7a, 0xc7, 0x1d, 0x24, 0xb5, 0x3e, 0x6e, 0x50, 0x90, 0xc6, 0x0e, 0x3c, 0x5a, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x7a, 0xc7, 0x6d, 0x90, 0xa6, 0xf9, 0x78, 0x90, 0x3a, 0xe9, 0xb8, 0x41, 0xd1, 0x69, 0xbc, 0x41, 0x41, 0xd9, 0xbd, 0xc1, 0x21, 0xdd, 0x6d, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0xe4, 0xce, 0xc7, 0x83, 0x94, 0x5a, 0xc7, 0x0e, 0xd2, 0x34, 0x1f, 0x67, 0x01, 0xdf, 0xac, 0xac, 0xcc, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x48, 0x52, 0x82, 0x6c, 0x00, 0xba, 0x44, 0x8c, 0xca, 0xbc, 0x5a, 0x62, 0x44, 0x40, 0xd2, 0xdc, 0x40, 0x84, 0x4c, 0xa4, 0x40, 0x50, 0x64, 0x60, 0x60, 0x64, 0x52, 0xdc, 0x4a, 0x00, 0x3c, 0x21, 0x55, 0x66, 0x57, 0x26, 0x37, 0x57, 0x36, 0x07, 0x12, 0x06, 0x62, 0x54, 0x96, 0x36, 0x47, 0x57, 0xc6, 0x06, 0x32, 0x96, 0x06, 0x87, 0x56, 0x26, 0x07, 0x32, 0xf6, 0xe6, 0x36, 0x47, 0x27, 0x57, 0x37, 0x46, 0x57, 0x46, 0x06, 0x72, 0x97, 0x46, 0x87, 0x06, 0x02, 0x17, 0x26, 0x17, 0xd6, 0x56, 0x46, 0x57, 0x26, 0x37, 0x07, 0x12, 0x36, 0x07, 0x42, 0x56, 0x36, 0x37, 0x26, 0x97, 0x26, 0x56, 0x46, 0x06, 0x92, 0xe6, 0x2e, 0x01, 0xcd, 0x8a, 0x59, 0x59, 0x99, 0xab, 0x0d, 0xbf, 0x28, 0x6d, 0x90, 0x58, 0xcb, 0xb8, 0xe1, 0x2f, 0x9a, 0x0d, 0x3f, 0xd4, 0x6c, 0x50, 0x90, 0xc6, 0x0e, 0x3e, 0xae, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0x99, 0x95, 0xb9, 0x1d, 0x24, 0x3a, 0x34, 0x6e, 0xf8, 0x20, 0x67, 0x83, 0x84, 0x94, 0xc6, 0x0d, 0x4f, 0xef, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0xa4, 0x6f, 0xc8, 0x83, 0x44, 0xa1, 0xc6, 0xd5, 0x20, 0x08, 0x97, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x82, 0x70, 0xa9, 0x01, 0x74, 0xe5, 0xca, 0xec, 0xca, 0xe4, 0xe6, 0xca, 0x40, 0x56, 0xcc, 0xca, 0xd2, 0xe6, 0x5c, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0x29, 0x9e, 0x71, 0xc3, 0x5f, 0x34, 0x1b, 0x7e, 0xa8, 0xd9, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0x49, 0x09, 0xb2, 0x0d, 0x4e, 0xcd, 0x6d, 0x6b, 0xf8, 0x11, 0x66, 0xe0, 0xeb, 0xf0, 0x40, 0xf8, 0xff, 0x6f, 0x90, 0x8c, 0xdf, 0xb8, 0x86, 0x77, 0x7b, 0x36, 0x08, 0x9e, 0xda, 0x0d, 0xd2, 0x86, 0x22, 0x0f, 0x12, 0xf1, 0x1b, 0xd7, 0xf0, 0xb6, 0xce, 0x80, 0x57, 0x66, 0x66, 0x76, 0x70, 0x42, 0xa0, 0x38, 0x9c, 0x62, 0xb5, 0x80, 0x2f, 0x17, 0xb6, 0x56, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xa4, 0xc4, 0x45, 0x36, 0x80, 0xee, 0x5c, 0x59, 0x19, 0xd9, 0x1c, 0x88, 0xd9, 0x9b, 0x1c, 0x48, 0x99, 0x99, 0x99, 0x6b, 0xc3, 0x5f, 0x34, 0x1b, 0x1c, 0x3c, 0x4a, 0x37, 0x38, 0xba, 0x0e, 0xae, 0xe1, 0x47, 0x98, 0x81, 0xaf, 0xc3, 0x0f, 0xd2, 0x33, 0x14, 0xd6, 0xf0, 0x23, 0xcc, 0xc0, 0xd7, 0xe1, 0x07, 0xc9, 0x1f, 0x0a, 0x6b, 0xf8, 0x11, 0x66, 0xe0, 0xeb, 0xf0, 0x83, 0xd4, 0x12, 0x85, 0x35, 0xfc, 0x08, 0x33, 0xf0, 0x75, 0xf8, 0x41, 0xe2, 0x8a, 0x42, 0xab, 0x41, 0x4a, 0x59, 0xe4, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x4a, 0x59, 0x64, 0x03, 0xa0, 0x73, 0x18, 0x48, 0x5b, 0x9d, 0x5c, 0x5b, 0x9d, 0xdc, 0x4c, 0x8b, 0x58, 0xd8, 0x5c, 0x19, 0x19, 0x08, 0xdc, 0x5c, 0x59, 0x1d, 0xd9, 0x9b, 0x5c, 0x98, 0x1b, 0xd9, 0x5b, 0x1b, 0x88, 0x59, 0x9d, 0xdb, 0x18, 0x5d, 0xda, 0x9b, 0x9b, 0x0b, 0x08, 0xc8, 0x89, 0xd1, 0x09, 0x48, 0x9a, 0x1b, 0x88, 0x90, 0x89, 0x14, 0x08, 0x8a, 0x0c, 0x0c, 0x8c, 0x4c, 0x8a, 0x6b, 0xc3, 0x2f, 0x4a, 0x1b, 0x24, 0x75, 0x33, 0x6e, 0xf8, 0x8b, 0x66, 0xc3, 0x0f, 0x35, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0x44, 0x86, 0xb7, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x2a, 0xe7, 0x37, 0x48, 0x61, 0x8e, 0x5a, 0xc3, 0xdb, 0x3a, 0x1b, 0xa4, 0xc4, 0x45, 0xd6, 0x06, 0x01, 0xcb, 0x7a, 0x70, 0xe8, 0xeb, 0x5b, 0x0d, 0xd2, 0xc5, 0x21, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0xd2, 0xc5, 0x21, 0x1b, 0x80, 0x36, 0x10, 0x11, 0xb3, 0x32, 0xaf, 0x96, 0x18, 0x11, 0x90, 0x34, 0x37, 0x10, 0x21, 0x13, 0x29, 0x10, 0x14, 0x19, 0x18, 0x18, 0x99, 0x14, 0xb7, 0x12, 0x00, 0x6f, 0x38, 0xbd, 0xd1, 0x95, 0x81, 0xd0, 0xa1, 0x85, 0xd1, 0x81, 0xd0, 0xa1, 0xa5, 0xcd, 0x81, 0xa4, 0xb5, 0xc1, 0xb1, 0x95, 0xb5, 0x95, 0xb9, 0xd1, 0x85, 0xd1, 0xa5, 0xbd, 0xb9, 0x81, 0x90, 0xa5, 0x99, 0x99, 0x95, 0xc9, 0xcd, 0x81, 0xcc, 0xb1, 0xa5, 0x9d, 0xa1, 0xd1, 0xb1, 0xe5, 0x81, 0x98, 0xc9, 0xbd, 0xb5, 0x81, 0xd0, 0xa1, 0x95, 0x81, 0xc8, 0x95, 0x99, 0x95, 0xc9, 0x95, 0xb9, 0x8d, 0x95, 0x81, 0xc0, 0x85, 0xc1, 0x95, 0xc9, 0x4b, 0x00, 0xda, 0xd2, 0xbd, 0x81, 0xcc, 0xd5, 0xc1, 0xc1, 0xbd, 0xc9, 0xd1, 0x81, 0xcc, 0xbd, 0xb5, 0x95, 0x81, 0xb0, 0x95, 0x9d, 0x85, 0x8d, 0xe5, 0x81, 0x88, 0x95, 0xa1, 0x85, 0xd9, 0xa5, 0xbd, 0xd5, 0xc9, 0xb9, 0x80, 0x80, 0x4c, 0x95, 0x95, 0x81, 0xd4, 0xc9, 0x89, 0xa5, 0xd1, 0xbd, 0x84, 0xc9, 0xd9, 0xbd, 0x8d, 0xc4, 0xc4, 0xc0, 0xd4, 0xb8, 0xda, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0xda, 0x20, 0x25, 0x97, 0x71, 0xc3, 0x97, 0x4b, 0x1b, 0x9e, 0x67, 0x3a, 0x48, 0x89, 0x66, 0xdc, 0xa0, 0x20, 0x8d, 0x1d, 0x5c, 0xdd, 0xe0, 0xf8, 0xc9, 0xb7, 0x41, 0x41, 0x1a, 0x3b, 0xe0, 0x85, 0xa1, 0xa1, 0x6b, 0x50, 0xec, 0x68, 0xae, 0xe1, 0xdf, 0x9c, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xd8, 0xdd, 0x1e, 0x24, 0x27, 0x59, 0x1d, 0x1e, 0xbc, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x84, 0x02, 0xeb, 0x06, 0x87, 0xd0, 0x89, 0xc3, 0x43, 0x3f, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0xec, 0x6e, 0x0f, 0xd2, 0x8f, 0x26, 0x37, 0x28, 0x48, 0x63, 0x07, 0xbc, 0x30, 0xb6, 0x72, 0x0d, 0x8a, 0x1d, 0xcd, 0x0d, 0x52, 0x5d, 0x26, 0x37, 0x48, 0x79, 0x9a, 0x3c, 0x48, 0x06, 0x9a, 0xdc, 0xa0, 0x20, 0x8d, 0x1d, 0xf0, 0xca, 0xd8, 0xd8, 0x35, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x89, 0x5e, 0x93, 0x1d, 0x9e, 0xd6, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0xa4, 0x97, 0x4c, 0x76, 0x90, 0x38, 0x38, 0xb9, 0x41, 0x41, 0x1a, 0x3b, 0xe0, 0x85, 0xc9, 0xc9, 0x6b, 0xf8, 0x20, 0x67, 0x83, 0xf4, 0xbf, 0xc9, 0x0d, 0x12, 0x07, 0x27, 0x0f, 0x92, 0x1d, 0x27, 0x37, 0x7c, 0x85, 0xb3, 0xe1, 0x2f, 0x9a, 0x0d, 0x3f, 0xd4, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0xe2, 0x6c, 0x83, 0x14, 0xe6, 0xa8, 0x83, 0x82, 0x78, 0x7c, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x13, 0x68, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x3c, 0xb5, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x74, 0xcf, 0xc9, 0x0e, 0x0f, 0xfd, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x92, 0xef, 0x26, 0x6b, 0x83, 0x82, 0x34, 0x76, 0x70, 0x73, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x9a, 0xd1, 0xb8, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0x0a, 0x78, 0x90, 0x7c, 0x3c, 0x79, 0x90, 0x96, 0x3e, 0xb9, 0x41, 0x41, 0x1a, 0x3b, 0xe0, 0xd1, 0xb5, 0xc1, 0x6b, 0x50, 0xec, 0x68, 0xae, 0xe1, 0xdf, 0x9c, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xd8, 0xdd, 0x6e, 0x90, 0xc2, 0x1c, 0x75, 0x10, 0xac, 0xac, 0x87, 0x07, 0x6f, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x61, 0x77, 0xbb, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0x0a, 0xb8, 0x86, 0x77, 0x7b, 0x36, 0xfc, 0x09, 0x74, 0x90, 0xe2, 0x3d, 0xb9, 0x86, 0x77, 0x7b, 0x36, 0x08, 0xbb, 0xdb, 0x0d, 0x8a, 0x91, 0xda, 0xc3, 0x43, 0x3f, 0x1d, 0x1e, 0xfa, 0xd9, 0xf0, 0x6e, 0xcf, 0x06, 0x61, 0x77, 0xbb, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0x0a, 0xb8, 0x86, 0x77, 0x7b, 0x36, 0xfc, 0x09, 0xb4, 0x41, 0x9a, 0xf7, 0xe4, 0xe1, 0x2d, 0xb4, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xd8, 0xdd, 0x6e, 0x50, 0x8c, 0xd4, 0x1e, 0xde, 0x42, 0xeb, 0xf0, 0x16, 0xda, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0x89, 0xcf, 0x51, 0x07, 0xe9, 0xff, 0x93, 0x6b, 0x90, 0xd0, 0x3e, 0xb9, 0xe1, 0x6d, 0x9d, 0x0d, 0xd2, 0x25, 0x28, 0x5b, 0x83, 0xe4, 0xf0, 0xc9, 0x83, 0xd4, 0xf4, 0xc9, 0x56, 0x83, 0x44, 0xe4, 0xc7, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x44, 0xe4, 0xc7, 0x06, 0xc0, 0xdb, 0x30, 0x10, 0xb3, 0xb7, 0x3a, 0xb9, 0x16, 0xb9, 0xb7, 0x3a, 0x37, 0x32, 0x90, 0xb3, 0x32, 0xb7, 0x32, 0xb9, 0x30, 0xb6, 0xb4, 0xb9, 0x32, 0x32, 0x10, 0xa3, 0xb2, 0xb4, 0x39, 0xba, 0x32, 0x36, 0x90, 0xb1, 0x34, 0x38, 0xb4, 0x32, 0x39, 0x90, 0x37, 0xbb, 0x32, 0x39, 0x10, 0x3a, 0xb4, 0x32, 0x10, 0xb2, 0xb7, 0xb6, 0xb0, 0x34, 0xb7, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0xa0, 0x83, 0xa9, 0xb2, 0x32, 0x1d, 0x10, 0x21, 0xb6, 0xb0, 0xb1, 0x35, 0x10, 0x13, 0x10, 0xa9, 0xb7, 0xb3, 0xb0, 0xbb, 0xb0, 0x3c, 0x10, 0x14, 0x19, 0x18, 0x18, 0x99, 0x14, 0x16, 0x90, 0xa1, 0x34, 0x38, 0xb4, 0x32, 0xb9, 0x39, 0x10, 0xb3, 0x37, 0x39, 0x90, 0x30, 0x39, 0xb1, 0x34, 0x3a, 0xb9, 0x30, 0xb9, 0x3c, 0x10, 0xb3, 0x34, 0xb7, 0x34, 0xba, 0x32, 0x10, 0xb2, 0xb7, 0xb6, 0xb0, 0x34, 0xb7, 0x39, 0xd7, 0x86, 0x5f, 0x94, 0x36, 0x48, 0x8a, 0x67, 0xdc, 0xf0, 0x17, 0xcd, 0x86, 0x1f, 0x6a, 0x36, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x48, 0x9b, 0x5a, 0xec, 0x20, 0xe1, 0x27, 0xf2, 0x70, 0x8a, 0xb5, 0xc0, 0x9b, 0x95, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x41, 0x19, 0x81, 0x3d, 0x00, 0x3d, 0x20, 0x22, 0x66, 0x65, 0x22, 0x20, 0x69, 0x6e, 0x20, 0x42, 0x26, 0x52, 0x20, 0x28, 0x32, 0x30, 0x30, 0x32, 0x29, 0x6e, 0x25, 0x80, 0xe6, 0x20, 0x37, 0x90, 0x34, 0x37, 0xba, 0x32, 0x39, 0xb7, 0x30, 0x36, 0x10, 0xb3, 0x3a, 0xb7, 0x31, 0xba, 0xb4, 0x37, 0x37, 0x10, 0xba, 0x37, 0x90, 0x15, 0xb3, 0xb2, 0x32, 0xd7, 0x41, 0x2a, 0x9f, 0xe4, 0x86, 0x5f, 0x94, 0x36, 0x48, 0x29, 0x98, 0xdc, 0xa0, 0x20, 0x8d, 0x1d, 0x5c, 0xdd, 0xf0, 0x98, 0xcc, 0x06, 0x05, 0x69, 0xec, 0x06, 0xc9, 0x77, 0x93, 0x1b, 0xa4, 0x3c, 0x4d, 0x6e, 0x50, 0x90, 0xc6, 0x6e, 0x90, 0xee, 0x39, 0xb9, 0x41, 0x32, 0xd0, 0xe4, 0x86, 0xaf, 0x70, 0x36, 0xfc, 0x45, 0xb3, 0xe1, 0x87, 0x9a, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0xdf, 0x28, 0x6e, 0x90, 0xc2, 0x1c, 0x75, 0x70, 0xe8, 0xeb, 0x5b, 0x83, 0x62, 0x47, 0x73, 0x83, 0x54, 0x97, 0xc9, 0x0d, 0x12, 0xa0, 0x27, 0x37, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0x36, 0x48, 0xf3, 0x9e, 0x3c, 0x3c, 0xad, 0xb3, 0x41, 0x02, 0xf4, 0xe4, 0x86, 0x77, 0x7b, 0x36, 0xfc, 0x09, 0xb4, 0x86, 0x77, 0x7b, 0x36, 0x08, 0x9e, 0xda, 0x0d, 0x52, 0xd3, 0x27, 0x0f, 0x0f, 0xfd, 0x6c, 0x90, 0xe6, 0x3d, 0xd9, 0x06, 0x05, 0x69, 0xec, 0xe0, 0xe6, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x35, 0xa3, 0x71, 0x83, 0xf4, 0xff, 0xc9, 0x83, 0x34, 0x16, 0xcb, 0x0d, 0x0a, 0xd2, 0xd8, 0x0d, 0xd2, 0x25, 0x28, 0xd7, 0xa0, 0xd8, 0xd1, 0xdc, 0x20, 0x75, 0x83, 0x72, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x76, 0xb7, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x9f, 0x40, 0x1b, 0x14, 0x23, 0xb5, 0x07, 0x69, 0xe9, 0x93, 0x87, 0x87, 0x7e, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0xd8, 0xdd, 0x6e, 0x90, 0xf6, 0x65, 0x79, 0x78, 0x0b, 0x6d, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0xc4, 0xe7, 0xa8, 0x0d, 0x1f, 0x47, 0x1d, 0xa4, 0x30, 0x47, 0xad, 0x41, 0x42, 0xfb, 0xe4, 0x41, 0x9a, 0xf7, 0xe4, 0x1a, 0x24, 0x87, 0x4f, 0x1e, 0xa4, 0x76, 0x52, 0x76, 0x38, 0xc5, 0x3a, 0x9c, 0x62, 0xb3, 0xc0, 0xd7, 0xb9, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0xc1, 0xd7, 0xb9, 0x0d, 0x40, 0x4f, 0x0f, 0x0a, 0x1e, 0x08, 0xca, 0x9d, 0x5c, 0x19, 0x19, 0x08, 0xca, 0x9d, 0x5c, 0x99, 0x1b, 0x08, 0x5e, 0x4a, 0x4a, 0x6a, 0x83, 0x92, 0x85, 0x7d, 0x96, 0x59, 0xc0, 0xc7, 0x0b, 0x33, 0x7b, 0x37, 0xfc, 0xa2, 0xb4, 0xe1, 0x6f, 0xa5, 0x0d, 0x1f, 0x47, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0xb0, 0xbb, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xfe, 0x04, 0xda, 0xf0, 0x87, 0xec, 0xe1, 0xa1, 0x9f, 0x35, 0xfc, 0x08, 0xb3, 0xa1, 0xe6, 0x07, 0xf1, 0x6f, 0x05, 0x7c, 0xbc, 0x30, 0xb9, 0x77, 0xc3, 0x2f, 0x4a, 0x1b, 0xfe, 0x56, 0xda, 0xf0, 0x71, 0xd4, 0x86, 0x77, 0x7b, 0x36, 0x08, 0xbb, 0xdb, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x4f, 0xa0, 0x0d, 0x7f, 0xc8, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x9f, 0x02, 0x6e, 0x90, 0xb4, 0x6f, 0xb9, 0x86, 0x77, 0x7b, 0x36, 0x08, 0xbb, 0xdb, 0x0d, 0x4f, 0xeb, 0x1c, 0x24, 0xec, 0x5b, 0xd6, 0x41, 0xc2, 0xbe, 0xe5, 0xe1, 0x14, 0x5b, 0xc0, 0xbf, 0x93, 0x2b, 0x23, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x12, 0x8e, 0x2e, 0x1b, 0x80, 0x07, 0xb9, 0xb2, 0x39, 0xba, 0x37, 0xb9, 0x32, 0x90, 0x39, 0x3a, 0xb9, 0xba, 0x31, 0xba, 0x3a, 0xb9, 0xb2, 0x0d, 0xbf, 0x28, 0x6d, 0x90, 0xfc, 0xdc, 0xb8, 0xe1, 0x2f, 0x9a, 0x0d, 0x3f, 0xd4, 0x6c, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x6c, 0x50, 0x16, 0x16, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0xa2, 0xf8, 0x77, 0x83, 0xa2, 0x52, 0x7c, 0x83, 0x54, 0xf8, 0xc6, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0x36, 0x3c, 0x78, 0x73, 0x50, 0x78, 0x19, 0x6f, 0x78, 0xf0, 0x66, 0x83, 0x52, 0x42, 0x7c, 0x0d, 0x97, 0xd4, 0x06, 0x45, 0x8d, 0xf8, 0x1a, 0x94, 0x6b, 0xc6, 0x1b, 0xde, 0xed, 0xd9, 0xf0, 0x9a, 0xcf, 0x41, 0xd1, 0x65, 0xdc, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x80, 0xd7, 0x96, 0x76, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x92, 0x68, 0x76, 0x83, 0xa2, 0x52, 0x7c, 0x0d, 0xbf, 0xb8, 0x6c, 0x50, 0x78, 0x19, 0x1f, 0x14, 0xc4, 0xe3, 0x07, 0xc9, 0x93, 0x97, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x94, 0xc5, 0xd1, 0x1b, 0x14, 0x95, 0xe2, 0x1b, 0x9c, 0xd8, 0x6f, 0x36, 0x28, 0x2c, 0x96, 0x37, 0xfc, 0x45, 0xb3, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0x48, 0x99, 0xac, 0xe1, 0x73, 0xa5, 0x0d, 0x3f, 0xd4, 0x1c, 0x94, 0x91, 0xb6, 0x6d, 0x50, 0x18, 0xaa, 0xae, 0xe1, 0x17, 0x97, 0x0d, 0x8f, 0xc9, 0xac, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x22, 0xc1, 0x65, 0x1b, 0x14, 0x5e, 0xc6, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x7a, 0x61, 0x72, 0x74, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x94, 0xe5, 0xcb, 0xaa, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x8b, 0x66, 0x83, 0xf4, 0x00, 0xcc, 0x0d, 0x1f, 0xe4, 0x6c, 0x90, 0xbe, 0x79, 0xb9, 0x41, 0x41, 0x91, 0xb9, 0x41, 0x29, 0x21, 0xbe, 0x41, 0x82, 0xeb, 0xe5, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x80, 0xd7, 0xf6, 0x76, 0x1e, 0xa4, 0x3d, 0x5f, 0x6e, 0xf8, 0xc5, 0x65, 0x0d, 0xbf, 0xb8, 0x6c, 0x78, 0x4c, 0x66, 0x0d, 0x92, 0x0c, 0x08, 0x37, 0x38, 0xc4, 0x40, 0x6c, 0x90, 0xc6, 0x83, 0xb9, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x32, 0x71, 0x37, 0x28, 0x2a, 0xc5, 0x0f, 0x8a, 0x2e, 0xe3, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0x7c, 0xbd, 0x3c, 0x39, 0xba, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xca, 0x1a, 0x66, 0xd5, 0x1a, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x24, 0xff, 0x60, 0x1e, 0x24, 0x9d, 0x62, 0xd6, 0x0a, 0xf8, 0x77, 0x72, 0x65, 0xee, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0xea, 0x2f, 0x66, 0x03, 0xf0, 0x30, 0xf6, 0xe6, 0x36, 0x56, 0x16, 0xc6, 0x06, 0x32, 0x47, 0x27, 0x57, 0x37, 0x46, 0x57, 0x27, 0x57, 0xb6, 0xe1, 0x17, 0xa5, 0x0d, 0x12, 0xf3, 0x1e, 0x37, 0xfc, 0x45, 0xb3, 0xe1, 0x87, 0x9a, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x0d, 0xca, 0xc2, 0xe2, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x14, 0xff, 0x6e, 0x50, 0x54, 0x8a, 0x6f, 0x90, 0xa6, 0xf9, 0xd8, 0x86, 0x0f, 0x72, 0x36, 0x48, 0xdf, 0xbc, 0xdc, 0xf0, 0xe0, 0xcd, 0x06, 0xa5, 0x84, 0xf8, 0x06, 0x09, 0xae, 0x97, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x1b, 0xa4, 0x2c, 0x5f, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x7a, 0x61, 0x66, 0x74, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0x90, 0x70, 0x6d, 0xd9, 0x06, 0x85, 0x97, 0xf1, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x24, 0x9a, 0xdd, 0xa0, 0xa8, 0x14, 0xdf, 0x20, 0x61, 0xfb, 0xf2, 0x20, 0x8d, 0x21, 0xb3, 0x36, 0x28, 0x3a, 0x8d, 0x37, 0x28, 0x8b, 0xa3, 0x37, 0x28, 0x2a, 0xc5, 0x37, 0x38, 0xb1, 0xdf, 0x6c, 0x50, 0x58, 0x2c, 0x6f, 0xf8, 0x8b, 0x66, 0x83, 0xf4, 0x00, 0xcc, 0x0d, 0x0a, 0x43, 0xd5, 0x35, 0xfc, 0xe2, 0xb2, 0xe1, 0x31, 0x99, 0x83, 0x14, 0x1e, 0xcc, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x8b, 0x66, 0x83, 0xf4, 0x00, 0xcc, 0x0d, 0x1f, 0xe4, 0x6c, 0x90, 0xbe, 0x79, 0xb9, 0x41, 0x41, 0x91, 0xb9, 0x41, 0x29, 0x21, 0xbe, 0x41, 0x82, 0xeb, 0xe5, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x06, 0x29, 0x6b, 0x98, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0xbe, 0x5e, 0x9e, 0x19, 0xdd, 0x1a, 0x24, 0x19, 0x10, 0x6e, 0x70, 0x88, 0x81, 0xd8, 0x20, 0x8d, 0x07, 0x73, 0x83, 0x74, 0x45, 0xcc, 0x83, 0xf4, 0xa5, 0xcc, 0x36, 0xfc, 0xe2, 0xb2, 0x86, 0x5f, 0x5c, 0x36, 0x3c, 0x26, 0x73, 0x90, 0x70, 0x8a, 0x79, 0x90, 0xfe, 0x8a, 0xb9, 0x1a, 0xa4, 0xda, 0x60, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xa4, 0xda, 0x60, 0x36, 0x80, 0xbf, 0x5c, 0x99, 0x5d, 0x99, 0xdc, 0x5c, 0x19, 0x88, 0x4c, 0x4d, 0x4d, 0xcb, 0x9c, 0xd8, 0x1b, 0xde, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xe1, 0x86, 0x2f, 0x6a, 0x36, 0xd4, 0xf1, 0x70, 0x62, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0x71, 0xc3, 0x8f, 0x30, 0x03, 0x5f, 0x87, 0x1f, 0x24, 0x9e, 0x42, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0x92, 0x68, 0x76, 0x83, 0xa2, 0x52, 0x7c, 0x0d, 0xbf, 0xb8, 0x6c, 0x78, 0xb6, 0xe7, 0xa0, 0x20, 0x1e, 0x3f, 0xbc, 0x85, 0xb6, 0x1a, 0xa4, 0xf1, 0x66, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xa4, 0xf1, 0x66, 0x36, 0x80, 0xbf, 0xd9, 0x9b, 0xdc, 0x5d, 0x98, 0x1c, 0x19, 0x88, 0x4c, 0x8d, 0x4d, 0xcb, 0x9c, 0xd8, 0x1b, 0xde, 0x86, 0x5f, 0x94, 0x36, 0x48, 0x9c, 0xd0, 0xdc, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0x5c, 0xdc, 0xf0, 0x23, 0xcc, 0xc0, 0xd7, 0xe1, 0x07, 0x09, 0xd1, 0x11, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x24, 0x9a, 0xdd, 0xa0, 0xa8, 0x14, 0xdf, 0xe0, 0xa4, 0x11, 0x71, 0x78, 0x0b, 0xed, 0x70, 0x8a, 0xad, 0x41, 0xaa, 0x4d, 0xe6, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0xaa, 0x4d, 0x66, 0x03, 0xf8, 0x9b, 0xbd, 0xc9, 0xdd, 0x85, 0xc9, 0x91, 0x81, 0xc8, 0xd4, 0xd4, 0xb4, 0xcc, 0x89, 0xbd, 0xe1, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0xc4, 0x09, 0xcd, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xc5, 0x0d, 0x3f, 0xc2, 0x0c, 0x7c, 0x1d, 0x7e, 0x90, 0x56, 0x2f, 0x71, 0x90, 0x46, 0xa3, 0x79, 0x38, 0xc5, 0xd6, 0x20, 0x31, 0x14, 0x73, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x20, 0x31, 0x14, 0xb3, 0x01, 0xfc, 0xe5, 0xca, 0xec, 0xca, 0xe4, 0xe6, 0xca, 0x40, 0x64, 0x6a, 0x6c, 0x5a, 0xe6, 0xc4, 0xde, 0xf0, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0xe2, 0x84, 0xe6, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xe2, 0x86, 0x1f, 0x61, 0x06, 0xbe, 0x0e, 0x3f, 0x48, 0x27, 0xa0, 0x38, 0x48, 0x79, 0xd4, 0x3c, 0x9c, 0x62, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x16, 0xc0, 0xa7, 0x4e, 0x4e, 0x2c, 0x8d, 0xae, 0x85, 0x2e, 0xad, 0xad, 0x5c, 0x06, 0xf0, 0x9d, 0x19, 0xd3, 0x01, 0xa9, 0x93, 0x13, 0x4b, 0xa3, 0x03, 0xa1, 0x4b, 0x6b, 0x2b, 0x5b, 0xc0, 0xcf, 0x2b, 0x63, 0x63, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x12, 0xb4, 0x36, 0x1b, 0xc0, 0x8f, 0x2e, 0x4c, 0x0e, 0x0e, 0xc4, 0x4c, 0xee, 0xad, 0x0d, 0x04, 0x88, 0x6c, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x73, 0x7b, 0xbb, 0x37, 0x7c, 0x51, 0xb3, 0xa1, 0x8e, 0x87, 0x93, 0x1b, 0xfe, 0xa2, 0xd9, 0xe0, 0x88, 0x92, 0xba, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xe0, 0xcd, 0x95, 0x8d, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xc4, 0xc7, 0xdd, 0xe0, 0xb8, 0x3c, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x48, 0x20, 0xdc, 0xac, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x01, 0xcf, 0x2c, 0xcc, 0xdd, 0xf0, 0x89, 0xcd, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0xe7, 0x2e, 0x03, 0x5e, 0x5b, 0xdd, 0x78, 0x70, 0x6a, 0x6e, 0x5b, 0xc3, 0xe7, 0x2e, 0x1b, 0xa4, 0xc8, 0xf6, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0x22, 0x13, 0xf7, 0x20, 0x51, 0x75, 0xb3, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x8b, 0x66, 0x83, 0x83, 0x47, 0xe9, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x2b, 0xd9, 0x1a, 0xfe, 0xcd, 0xd9, 0xf0, 0xe0, 0xcd, 0x86, 0xb7, 0x75, 0x36, 0x48, 0x91, 0xed, 0x69, 0x0d, 0xff, 0xe6, 0x6c, 0x78, 0xf0, 0x66, 0xc3, 0xdb, 0x3a, 0x1b, 0xa4, 0x35, 0x6f, 0xd6, 0x06, 0x05, 0x45, 0xe6, 0x06, 0xa5, 0x84, 0xf8, 0x1a, 0x2e, 0xa9, 0x0d, 0x8a, 0x1a, 0xf1, 0x35, 0x48, 0xa1, 0xe0, 0xdc, 0xf0, 0x6e, 0xcf, 0x86, 0xd7, 0x7c, 0x36, 0x48, 0x86, 0xe0, 0xac, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0xa2, 0xd9, 0x0d, 0x4e, 0xcd, 0x6d, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x64, 0x08, 0xce, 0x83, 0x82, 0x78, 0x7c, 0x83, 0xf4, 0x00, 0xce, 0xd6, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0x20, 0xa9, 0x80, 0x73, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0x99, 0xb8, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x53, 0x73, 0xdb, 0x41, 0xd2, 0x0c, 0xe7, 0x41, 0xb2, 0x14, 0x67, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x64, 0x61, 0xf9, 0x86, 0x77, 0x7b, 0x36, 0x08, 0x05, 0xd6, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xba, 0xe7, 0x66, 0x6b, 0x78, 0x50, 0x72, 0x0d, 0x6f, 0xeb, 0x6c, 0x90, 0x0a, 0xc8, 0xd9, 0x86, 0xb7, 0x75, 0x06, 0x3e, 0xef, 0xad, 0x0d, 0x4a, 0x09, 0xf1, 0x35, 0x5c, 0x52, 0x1b, 0x14, 0x35, 0xe2, 0x6b, 0x90, 0xfa, 0xc8, 0xb9, 0xe1, 0xdd, 0x9e, 0x0d, 0xc2, 0xee, 0xf6, 0x20, 0x81, 0x91, 0xb3, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x01, 0x0f, 0xed, 0x4d, 0xde, 0xf0, 0x6e, 0xcf, 0x06, 0xa1, 0xc0, 0xba, 0x41, 0x12, 0x23, 0xe7, 0x1a, 0x1e, 0x94, 0x5c, 0xc3, 0xdb, 0x3a, 0x1b, 0x24, 0x25, 0x73, 0x76, 0x90, 0xfe, 0xc9, 0xd9, 0x06, 0xa5, 0x84, 0xf8, 0x1a, 0x2e, 0xa9, 0x0d, 0x8a, 0x1a, 0xf1, 0x35, 0x48, 0x7d, 0xe4, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0x61, 0x77, 0x7b, 0x90, 0x4a, 0xcd, 0xd9, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x80, 0xd7, 0x96, 0x46, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0x50, 0x60, 0xdd, 0x20, 0x89, 0x91, 0x73, 0x0d, 0x0f, 0x4a, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0x52, 0x16, 0x3a, 0x3b, 0x48, 0xff, 0xe4, 0x6c, 0x83, 0x52, 0x42, 0x7c, 0x0d, 0x97, 0xd4, 0x06, 0x45, 0x8d, 0xf8, 0x1a, 0xa4, 0x3e, 0x72, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0xb0, 0xbb, 0x3d, 0x48, 0xb4, 0xe8, 0x6c, 0xc3, 0x2f, 0x2e, 0x1b, 0x24, 0x60, 0x72, 0x6e, 0x90, 0xcc, 0xcd, 0xb9, 0x41, 0xaa, 0x47, 0xe7, 0x06, 0x49, 0x8c, 0x9c, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x24, 0xdf, 0xcd, 0x5a, 0x81, 0xcf, 0x7b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x83, 0xcf, 0x7b, 0x1b, 0xc0, 0x97, 0x2e, 0xad, 0xad, 0x0c, 0x64, 0xec, 0xcd, 0x6d, 0x8e, 0x2e, 0xcc, 0x8d, 0x6e, 0x6e, 0x83, 0x92, 0x85, 0x7d, 0x96, 0x59, 0xc0, 0xcb, 0x2b, 0x93, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xd0, 0x44, 0x69, 0xab, 0x63, 0x03, 0x99, 0xb1, 0xa9, 0x01, 0x21, 0x0b, 0xcb, 0x4b, 0x6d, 0xf8, 0x11, 0x66, 0x43, 0xcd, 0x3f, 0x48, 0xf3, 0xb4, 0x58, 0x0d, 0x52, 0x01, 0x39, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xd0, 0x43, 0x69, 0xab, 0x63, 0x03, 0x91, 0xa1, 0x01, 0x41, 0x7b, 0x93, 0x4b, 0x6d, 0xf8, 0x11, 0x66, 0x43, 0xcd, 0x0f, 0x0c, 0xc0, 0xa8, 0xd5, 0x20, 0x65, 0xa1, 0x73, 0xc3, 0x8f, 0x30, 0x1b, 0x6a, 0x7e, 0x28, 0x3f, 0x9c, 0x62, 0x0b, 0x78, 0x71, 0x61, 0xe4, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0xb4, 0xa0, 0x84, 0x91, 0x91, 0x81, 0xc4, 0x80, 0xa0, 0xb4, 0xd5, 0xb1, 0x81, 0xd0, 0x80, 0xe4, 0x95, 0xc9, 0xa5, 0xa4, 0x36, 0xfc, 0x08, 0xb3, 0xa1, 0xe6, 0x1f, 0x24, 0xac, 0x5a, 0x1c, 0x4e, 0xb1, 0x05, 0xbc, 0x32, 0xb9, 0x70, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x5a, 0x50, 0xc2, 0xc8, 0xc8, 0x40, 0x62, 0x40, 0x50, 0xda, 0xea, 0xd8, 0x40, 0x68, 0x40, 0xc6, 0xca, 0xe8, 0x52, 0x52, 0x1b, 0x7e, 0x84, 0xd9, 0x50, 0xf3, 0x03, 0x25, 0x56, 0xc7, 0x0a, 0x78, 0x6d, 0x6f, 0xe8, 0x86, 0xbf, 0x68, 0x36, 0x38, 0x5a, 0x5d, 0x6e, 0xf8, 0xc5, 0x65, 0x83, 0xb3, 0x37, 0xde, 0x1a, 0x7e, 0x84, 0xd9, 0x50, 0xf3, 0xc3, 0x78, 0x83, 0xb3, 0x37, 0xde, 0x1a, 0x7e, 0x84, 0xd9, 0x50, 0xf3, 0xc3, 0x7c, 0x83, 0xb3, 0x37, 0xde, 0x06, 0x29, 0x5b, 0x9e, 0x1b, 0x9c, 0xbd, 0xf1, 0x36, 0x38, 0x7b, 0xe3, 0x6d, 0x90, 0xb2, 0xe5, 0xb9, 0xc1, 0xd9, 0x1b, 0x6f, 0x83, 0x94, 0x2d, 0xcf, 0x0d, 0xce, 0xde, 0x78, 0x07, 0x65, 0x9d, 0xe7, 0x6a, 0x90, 0x94, 0xcc, 0xb9, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x1e, 0x4a, 0x5b, 0x1d, 0x1b, 0x88, 0x0d, 0x0c, 0x48, 0x5b, 0x1a, 0x5d, 0x6a, 0xc3, 0x8f, 0x30, 0x1b, 0x6a, 0x7e, 0x90, 0x10, 0x5e, 0x01, 0xaf, 0xed, 0x2d, 0xdf, 0xf0, 0x17, 0xcd, 0x06, 0x47, 0xab, 0xcb, 0x0d, 0xbf, 0xb8, 0x6c, 0x70, 0xf6, 0xc6, 0x5b, 0xc3, 0x8f, 0x30, 0x1b, 0x6a, 0x7e, 0x58, 0x1f, 0x24, 0x5b, 0x79, 0x1e, 0x4e, 0xb1, 0x05, 0x3c, 0xb5, 0xb2, 0x79, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x9a, 0x50, 0xda, 0xea, 0xd8, 0x40, 0x6e, 0x66, 0x60, 0x5c, 0x6c, 0x72, 0x64, 0x5c, 0x6a, 0x6c, 0x62, 0x40, 0xca, 0xe4, 0xc2, 0x52, 0x1b, 0x7e, 0x84, 0xd9, 0x50, 0xf3, 0x0f, 0x92, 0xaf, 0x2d, 0x0e, 0xa7, 0x58, 0x0b, 0x78, 0x63, 0x65, 0xf4, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0x74, 0xa1, 0x84, 0x91, 0x91, 0x81, 0xc8, 0xd0, 0x80, 0xa0, 0xb4, 0xd5, 0xb1, 0x81, 0xc4, 0xc0, 0xc0, 0x80, 0xcc, 0xd8, 0xd4, 0xa4, 0xa4, 0x36, 0xfc, 0x08, 0xb3, 0xa1, 0xe6, 0x07, 0x02, 0xab, 0xe3, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x15, 0xf0, 0xf3, 0xc2, 0xee, 0xdc, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x64, 0x98, 0xcf, 0x06, 0xf0, 0x27, 0x0b, 0xcb, 0x9b, 0x03, 0x99, 0x4b, 0x73, 0x1b, 0x2b, 0x03, 0x51, 0x2a, 0x9b, 0xab, 0x9b, 0xdb, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0x24, 0x2c, 0x76, 0x1e, 0x94, 0x59, 0xba, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x6b, 0x7b, 0xa3, 0x0f, 0xca, 0x2c, 0xdd, 0x35, 0xfc, 0xb9, 0xb4, 0x41, 0x2a, 0x20, 0xe7, 0x41, 0x99, 0xa5, 0xdb, 0x86, 0xbf, 0x68, 0x36, 0x28, 0xb3, 0x74, 0x37, 0x28, 0x25, 0xc4, 0xd7, 0x70, 0x49, 0x6d, 0x50, 0xd4, 0x88, 0xaf, 0x06, 0x09, 0x6e, 0x9f, 0x6d, 0x78, 0xb7, 0x67, 0xc3, 0x6b, 0x3e, 0x6b, 0x78, 0x5b, 0xe7, 0x20, 0x9d, 0xf2, 0xb3, 0x35, 0x48, 0xdb, 0xe4, 0xdc, 0xf0, 0x6e, 0xcf, 0x86, 0xd7, 0x7c, 0x36, 0x48, 0xc0, 0xe4, 0xac, 0x0d, 0x4a, 0x09, 0xf1, 0x35, 0x7c, 0xfd, 0xb2, 0x41, 0x62, 0x4b, 0xd5, 0x86, 0x4b, 0x6a, 0x83, 0xa2, 0x46, 0x7c, 0x0d, 0xd2, 0x36, 0x39, 0x37, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0xbc, 0xb1, 0x30, 0x74, 0xc3, 0x07, 0x39, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x79, 0x65, 0x6c, 0x70, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x84, 0xc5, 0xce, 0x5a, 0xc3, 0x83, 0x92, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xa4, 0x55, 0xcf, 0x0e, 0xd2, 0x3f, 0x39, 0x37, 0x3c, 0x28, 0xb9, 0x86, 0xb7, 0x75, 0x36, 0x48, 0xdd, 0xf1, 0xec, 0x20, 0xfd, 0x93, 0x73, 0xc3, 0x57, 0x38, 0x1b, 0xfe, 0xa2, 0xd9, 0xa0, 0xcc, 0xd2, 0xdd, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0xf0, 0xe0, 0xcd, 0x41, 0x1a, 0xe8, 0xe7, 0x06, 0x09, 0x98, 0x9c, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x06, 0xa9, 0x94, 0x9f, 0xab, 0x41, 0xa2, 0xf5, 0x67, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0xf4, 0x16, 0xb7, 0xe1, 0x31, 0x99, 0x35, 0xbc, 0xad, 0x73, 0x90, 0xaa, 0x03, 0xda, 0x1a, 0xa4, 0x6d, 0x72, 0x6e, 0x78, 0xb7, 0x67, 0xc3, 0x9f, 0x40, 0x1b, 0x24, 0x60, 0x72, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x8a, 0xca, 0xf9, 0x0d, 0x0f, 0xde, 0x1c, 0x24, 0x28, 0x81, 0x56, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0x17, 0xcd, 0x06, 0x65, 0x96, 0xee, 0x06, 0xc5, 0x8e, 0xe6, 0x1a, 0xfe, 0xcd, 0xd9, 0xf0, 0xe0, 0xcd, 0x86, 0x77, 0x7b, 0x36, 0x08, 0xbb, 0xdb, 0x0d, 0xd2, 0xd6, 0x3f, 0x0f, 0xce, 0xcc, 0x6d, 0x6b, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x6e, 0x65, 0xf9, 0x86, 0x77, 0x7b, 0x36, 0xbc, 0xe6, 0x73, 0x90, 0xb2, 0xfe, 0xb9, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0x41, 0xb2, 0xfb, 0xe7, 0x86, 0xb7, 0x75, 0x36, 0x48, 0xed, 0x04, 0x6d, 0x0d, 0xd2, 0x36, 0x39, 0x37, 0xbc, 0xdb, 0xb3, 0xe1, 0x4f, 0xa0, 0x0d, 0x12, 0x30, 0x39, 0xd7, 0xf0, 0x41, 0xce, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x41, 0xfc, 0x73, 0x83, 0x74, 0x5b, 0xd0, 0xd6, 0xf0, 0x23, 0xcc, 0x86, 0x9a, 0x1f, 0x8c, 0xdb, 0x86, 0x1f, 0x61, 0x36, 0xd4, 0xfc, 0x60, 0xda, 0x6a, 0x83, 0x62, 0x47, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x78, 0xf0, 0x66, 0xc3, 0xbb, 0x3d, 0x1b, 0x84, 0xdd, 0xed, 0x06, 0x69, 0xeb, 0x9f, 0x6b, 0xf8, 0x11, 0x66, 0x43, 0xcd, 0x0f, 0x27, 0x5b, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xc0, 0x73, 0x2b, 0x33, 0x37, 0xbc, 0xdb, 0xb3, 0xe1, 0x53, 0xc0, 0x83, 0x04, 0x47, 0xd0, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x92, 0xdd, 0x3f, 0x37, 0xbc, 0xad, 0xb3, 0x41, 0x82, 0x45, 0x68, 0x6b, 0x90, 0xb6, 0xc9, 0xb9, 0xe1, 0xdd, 0x9e, 0x0d, 0x7f, 0x02, 0x6d, 0x90, 0x80, 0xc9, 0xb9, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x09, 0xe2, 0x9f, 0x1b, 0x24, 0xbd, 0x84, 0xb6, 0x86, 0x1f, 0x61, 0x36, 0xd4, 0xfc, 0xe0, 0x6a, 0xdb, 0xf0, 0x23, 0xcc, 0x86, 0x9a, 0x1f, 0x1c, 0x6d, 0xb5, 0x41, 0xb1, 0xa3, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x3c, 0x78, 0xb3, 0xe1, 0xdd, 0x9e, 0x0d, 0xc2, 0xee, 0x76, 0x83, 0xb4, 0xf5, 0xcf, 0x35, 0xfc, 0x08, 0xb3, 0xa1, 0xe6, 0x07, 0x03, 0xd9, 0x1a, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x03, 0x9e, 0x5b, 0xd9, 0xb8, 0xe1, 0xdd, 0x9e, 0x0d, 0x9f, 0x02, 0x1e, 0xa4, 0x07, 0x84, 0x6e, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0x90, 0xec, 0xfe, 0xb9, 0xe1, 0x6d, 0x9d, 0x0d, 0xd2, 0x1e, 0x43, 0x5b, 0x83, 0xb4, 0x4d, 0xce, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x13, 0x68, 0x83, 0x04, 0x4c, 0xce, 0x35, 0x7c, 0x90, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x48, 0x10, 0xff, 0xdc, 0x20, 0x15, 0x35, 0xb4, 0x35, 0xfc, 0x08, 0xb3, 0xa1, 0xe6, 0x07, 0x42, 0xab, 0xe3, 0x20, 0x29, 0xe4, 0xb3, 0x36, 0xbc, 0xdb, 0xb3, 0xe1, 0x4f, 0xa0, 0x0d, 0x12, 0x30, 0x39, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xc1, 0x53, 0xbb, 0x86, 0x77, 0x7b, 0x36, 0x08, 0x05, 0xd6, 0x83, 0x64, 0xbd, 0xd0, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x4f, 0xa0, 0x0d, 0x8f, 0xc9, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x82, 0xa7, 0x76, 0x83, 0x53, 0x73, 0xdb, 0x06, 0x49, 0x21, 0x9f, 0x55, 0x2b, 0xe0, 0xe7, 0xbd, 0xc9, 0x95, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xe9, 0x17, 0xa2, 0x0d, 0xe0, 0x03, 0x44, 0x06, 0x42, 0xf7, 0x06, 0x42, 0x16, 0x46, 0x57, 0xb6, 0xe1, 0x17, 0xa5, 0x35, 0xfc, 0xb9, 0xb4, 0x41, 0x02, 0xe1, 0xe6, 0xc1, 0x91, 0xaf, 0x75, 0xc3, 0x5f, 0x34, 0x6b, 0xf8, 0x77, 0x7e, 0x0d, 0xce, 0xa2, 0xa8, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0xb2, 0xc1, 0xc0, 0x3a, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0x41, 0x6b, 0xb3, 0x83, 0x54, 0xd7, 0xcd, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x01, 0xef, 0xac, 0x4c, 0xde, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xf3, 0xc2, 0xd8, 0xd8, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xe4, 0x41, 0x19, 0xb5, 0xdc, 0x06, 0x85, 0xa1, 0xea, 0x1a, 0x3e, 0xc8, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0xbe, 0x51, 0x5c, 0xc3, 0xdb, 0x3a, 0x83, 0xe7, 0x1b, 0x24, 0xd5, 0x89, 0xb6, 0x86, 0x1f, 0x61, 0x36, 0xd4, 0xfc, 0x83, 0x44, 0x9f, 0x8c, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0x3e, 0x77, 0x19, 0x3c, 0x3c, 0x28, 0x72, 0x5a, 0xd7, 0xf0, 0xb9, 0xcb, 0xe0, 0xf9, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0x0a, 0x78, 0x90, 0xe8, 0x29, 0xda, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xe1, 0x41, 0x01, 0x9b, 0xbf, 0x86, 0xcf, 0x5d, 0x06, 0xcf, 0x37, 0x7c, 0x1c, 0xb5, 0xe1, 0xdd, 0x9e, 0x0d, 0x9f, 0x02, 0x6e, 0x90, 0x8e, 0x2a, 0xba, 0x41, 0xb2, 0xa7, 0x68, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xeb, 0x0c, 0xde, 0x1e, 0xa4, 0x90, 0x8a, 0xae, 0xe1, 0x6d, 0x9d, 0xc1, 0xc9, 0x83, 0x14, 0x52, 0xd1, 0x35, 0xbc, 0xad, 0x33, 0x38, 0x7a, 0x50, 0x46, 0x2d, 0xaf, 0xe1, 0x6d, 0x9d, 0xc1, 0xdb, 0x83, 0x32, 0x6a, 0x79, 0x0d, 0x6f, 0xeb, 0x0c, 0x3e, 0x1f, 0x94, 0x51, 0xcb, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0xf3, 0xa0, 0x8c, 0x5a, 0xee, 0x70, 0x8a, 0x2d, 0xe0, 0xe7, 0x95, 0x85, 0xc9, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xe9, 0x35, 0xa3, 0x0d, 0xe0, 0x43, 0x16, 0x46, 0x57, 0x06, 0x42, 0xf7, 0x06, 0x02, 0x44, 0xb6, 0xe1, 0x17, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0x91, 0x95, 0xd1, 0x07, 0x69, 0x4b, 0xa2, 0x1b, 0xfe, 0xa2, 0xd9, 0xe0, 0xc8, 0xd7, 0xba, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0xb2, 0x41, 0xc2, 0x62, 0xe7, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xe1, 0x06, 0xe9, 0x5d, 0xa3, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x7f, 0x02, 0x6d, 0x90, 0x8e, 0x2a, 0xba, 0x86, 0xb7, 0x75, 0x06, 0xcf, 0x0f, 0xd2, 0x03, 0x47, 0xdb, 0xf0, 0x6e, 0xcf, 0x86, 0x4f, 0x01, 0x37, 0x48, 0x47, 0x15, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x5e, 0xf3, 0x39, 0x48, 0x8d, 0x1c, 0x6d, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0x54, 0x40, 0xce, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x92, 0x61, 0x3e, 0xdb, 0x20, 0x6d, 0xfd, 0x73, 0x0d, 0x6f, 0xeb, 0x0c, 0xde, 0x1e, 0xa4, 0x07, 0x8e, 0xae, 0xe1, 0x6d, 0x9d, 0xc1, 0xc9, 0xc1, 0xe9, 0x83, 0xf4, 0xc0, 0xd1, 0x36, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0xfc, 0xbc, 0x3a, 0xb6, 0xb2, 0x0d, 0x12, 0x30, 0x39, 0xd7, 0xf0, 0xb6, 0xce, 0xe0, 0xe8, 0x41, 0x02, 0xf7, 0xe8, 0x1a, 0xde, 0xd6, 0x19, 0xbc, 0x3d, 0x48, 0xe0, 0x1e, 0x5d, 0xc3, 0xdb, 0x3a, 0x83, 0xcf, 0x07, 0x09, 0xdc, 0xa3, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0xf3, 0x20, 0x81, 0x7b, 0xb4, 0xd5, 0x20, 0xb5, 0xfc, 0x73, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x20, 0xb5, 0xfc, 0xb3, 0x01, 0x3c, 0xd8, 0xca, 0xc2, 0xe0, 0x40, 0xf2, 0xca, 0xc2, 0xe4, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0xb2, 0xd7, 0xe7, 0x86, 0xbf, 0x68, 0x36, 0x7c, 0xb0, 0xba, 0xe1, 0x11, 0xd6, 0x0d, 0x52, 0x00, 0x41, 0xd7, 0xf0, 0x2b, 0xd9, 0x1a, 0xde, 0x66, 0x3d, 0x48, 0xa0, 0x07, 0xdd, 0x20, 0x9d, 0x2d, 0xb4, 0x0e, 0xa7, 0x58, 0xad, 0x41, 0x32, 0xa0, 0xe8, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x32, 0xa0, 0x68, 0x03, 0xf0, 0x43, 0x16, 0x96, 0x07, 0xf2, 0x02, 0x42, 0xf7, 0x06, 0x42, 0x16, 0x96, 0x07, 0xf2, 0x66, 0x06, 0x92, 0x57, 0x16, 0x26, 0xb7, 0xe1, 0x17, 0xa5, 0x0d, 0x92, 0xec, 0x3e, 0x37, 0xfc, 0x45, 0xb3, 0x86, 0xcf, 0x95, 0x36, 0x38, 0x09, 0xa4, 0x6e, 0x70, 0x6e, 0x27, 0xdd, 0xe0, 0x84, 0x4c, 0xda, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0x3e, 0x77, 0xd9, 0x20, 0x11, 0xc2, 0xf3, 0xf0, 0xe0, 0xcd, 0x1a, 0x3e, 0x77, 0xd9, 0x20, 0xb5, 0xdf, 0xf3, 0xf0, 0xe0, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xf0, 0xd8, 0xca, 0xe0, 0x83, 0xc2, 0x66, 0xbe, 0x0d, 0x4a, 0x09, 0xf1, 0x35, 0x5c, 0x52, 0x1b, 0x14, 0x35, 0xe2, 0xab, 0x41, 0x22, 0x84, 0x67, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0x14, 0x58, 0x37, 0x48, 0xc0, 0xe4, 0x5c, 0xc3, 0x83, 0x92, 0x6b, 0x78, 0x5b, 0xe7, 0x20, 0x95, 0x9b, 0xf4, 0x20, 0xfd, 0x93, 0xb3, 0x35, 0x48, 0xdb, 0xe4, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0x61, 0x77, 0x7b, 0x90, 0x84, 0x4e, 0xda, 0x06, 0xa5, 0x84, 0xf8, 0x1a, 0xbe, 0x7e, 0xd9, 0x20, 0xb1, 0xa5, 0x6a, 0xc3, 0x07, 0x39, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x17, 0x67, 0x1b, 0x24, 0x60, 0x72, 0xae, 0xe1, 0xe3, 0xa8, 0x0d, 0x0f, 0x4a, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0x52, 0xfb, 0x3d, 0x3b, 0x48, 0xff, 0xe4, 0x6c, 0x0d, 0x97, 0xd4, 0x06, 0x45, 0x8d, 0xf8, 0x6a, 0x90, 0x8c, 0x4c, 0xda, 0x41, 0x91, 0xd3, 0xba, 0x06, 0x09, 0x31, 0xa5, 0x87, 0x07, 0x6f, 0xda, 0xa0, 0x94, 0x10, 0x5f, 0xc3, 0x25, 0xb5, 0x41, 0x51, 0x23, 0xbe, 0x06, 0x69, 0x41, 0xa5, 0x07, 0x05, 0x6c, 0xfe, 0x1a, 0x24, 0xc4, 0x94, 0x1e, 0x1e, 0x93, 0x59, 0x83, 0xb4, 0x4d, 0xce, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x14, 0xf0, 0x20, 0x45, 0xa4, 0xb4, 0x0d, 0x97, 0xd4, 0x06, 0x45, 0x8d, 0xf8, 0x1a, 0x24, 0xc4, 0x94, 0x6e, 0x78, 0xb7, 0x67, 0xc3, 0x9f, 0x40, 0x1b, 0xa4, 0xb6, 0x94, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x42, 0x81, 0x75, 0x83, 0x04, 0x4c, 0xce, 0x0d, 0x12, 0x54, 0x4a, 0x6b, 0x0d, 0xd2, 0x36, 0x39, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0xd8, 0xdd, 0x1e, 0x24, 0x67, 0x96, 0xb6, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0xb2, 0x41, 0xc2, 0x62, 0xe7, 0x86, 0x77, 0x7b, 0x36, 0xfc, 0x09, 0xb4, 0x86, 0x77, 0x7b, 0x36, 0x08, 0x9e, 0xda, 0x0d, 0x92, 0xfe, 0x42, 0x37, 0x48, 0x83, 0x27, 0x6d, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x3c, 0xb5, 0x1b, 0xa4, 0x19, 0x84, 0x6e, 0x90, 0xda, 0x52, 0x5a, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0x17, 0xcd, 0x06, 0xe9, 0x97, 0xa4, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x1b, 0x8c, 0x1e, 0xc3, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0x6d, 0x9d, 0x83, 0xb4, 0xa0, 0xd2, 0x83, 0x24, 0x6f, 0xd0, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x8b, 0xb3, 0x0d, 0x12, 0x30, 0x39, 0x37, 0x38, 0x7a, 0xc7, 0xb5, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x80, 0xe7, 0x56, 0x26, 0x6f, 0xf8, 0x38, 0xea, 0x20, 0x6d, 0xfd, 0x73, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x64, 0xf7, 0xcf, 0x0d, 0x6f, 0xeb, 0x6c, 0x90, 0x52, 0x62, 0xda, 0x1a, 0xa4, 0x6d, 0x72, 0x6e, 0x78, 0xb7, 0x67, 0xc3, 0xa7, 0x80, 0x07, 0x09, 0x15, 0xa6, 0x6b, 0x90, 0x16, 0x54, 0xba, 0xe1, 0xdf, 0x9c, 0x0d, 0x0f, 0xde, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0x22, 0x13, 0x77, 0x83, 0x03, 0x3b, 0xc9, 0x06, 0x09, 0x3b, 0xa6, 0xb5, 0xe1, 0x2b, 0x9c, 0x0d, 0x7f, 0xd1, 0x6c, 0x90, 0x7e, 0x49, 0xba, 0xe1, 0x13, 0x9b, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0xcf, 0x5d, 0x36, 0x48, 0x70, 0xfb, 0x3c, 0x3c, 0x78, 0xb3, 0x86, 0xcf, 0x5d, 0x36, 0x48, 0xb4, 0xfe, 0xdc, 0xf0, 0x41, 0xce, 0x06, 0xa9, 0xfe, 0xa5, 0x07, 0x89, 0xf3, 0x9f, 0x6d, 0xf8, 0x0a, 0x67, 0xc3, 0x5f, 0x34, 0x1b, 0xa4, 0x5f, 0x92, 0x6e, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x7a, 0x69, 0xf3, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x2a, 0xe7, 0x37, 0x48, 0x03, 0xfd, 0x3c, 0x48, 0x50, 0x02, 0xdd, 0xf0, 0x41, 0xce, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0xc5, 0xd9, 0x06, 0x09, 0x98, 0x9c, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x54, 0x58, 0xd3, 0x5a, 0xc3, 0x2f, 0x2e, 0x1b, 0xa4, 0xad, 0x7f, 0xae, 0xe1, 0xe3, 0xa8, 0x83, 0x34, 0xd0, 0xcf, 0x35, 0x7c, 0x1c, 0x75, 0x90, 0x80, 0xc9, 0xd9, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0xe9, 0x94, 0x9f, 0x07, 0xa9, 0xe3, 0xa6, 0x6b, 0x90, 0xb6, 0xc9, 0xb9, 0xe1, 0xdd, 0x9e, 0x0d, 0x9f, 0x02, 0x1e, 0xa4, 0x3b, 0x9b, 0xb6, 0x1a, 0x24, 0xa6, 0x8f, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x24, 0xa6, 0x8f, 0x36, 0x80, 0x07, 0x5d, 0x5a, 0x5b, 0x19, 0x48, 0x18, 0xdd, 0x5b, 0xdb, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0x03, 0xeb, 0xe0, 0xe0, 0x88, 0x92, 0xba, 0xe1, 0x2f, 0x9a, 0x0d, 0x92, 0x10, 0x37, 0x37, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x36, 0x48, 0xf7, 0xdc, 0xdc, 0x20, 0xc9, 0x80, 0x70, 0xc3, 0x9f, 0x40, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xe0, 0xa9, 0xdd, 0x20, 0xd1, 0x50, 0xf4, 0x20, 0x85, 0x92, 0x73, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x3c, 0xb5, 0x1b, 0x24, 0x35, 0x8c, 0x1e, 0xa4, 0x63, 0x73, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x82, 0xa7, 0x76, 0x83, 0x54, 0x8b, 0xd1, 0x83, 0x64, 0x8d, 0xce, 0x0d, 0x12, 0x40, 0x46, 0xdb, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xf0, 0xcc, 0xc2, 0xc6, 0x0d, 0x9f, 0xd8, 0x6c, 0x90, 0x9c, 0xbc, 0xb9, 0xe1, 0x2b, 0x9c, 0x0d, 0x7f, 0xd1, 0x6c, 0xf8, 0xa1, 0x66, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x64, 0x96, 0xd1, 0x0d, 0x0f, 0xde, 0x6c, 0x50, 0x4a, 0x88, 0x6f, 0x90, 0x12, 0xc2, 0xb9, 0xe1, 0xdd, 0x9e, 0x0d, 0x7f, 0x02, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0x03, 0xde, 0x0d, 0xd2, 0xd2, 0x38, 0xd7, 0xf0, 0xb6, 0xce, 0xe0, 0xe9, 0x41, 0x32, 0xcb, 0x68, 0x6b, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0x90, 0xcc, 0x32, 0xba, 0xe1, 0x6d, 0x9d, 0xc1, 0xe9, 0x83, 0x64, 0x96, 0xd1, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x05, 0x65, 0xf7, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x34, 0xe0, 0xdd, 0xe0, 0xb8, 0x3c, 0xb3, 0x41, 0x12, 0x23, 0x67, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xe4, 0xc9, 0xd3, 0x3a, 0x9c, 0x62, 0xad, 0x00, 0xde, 0x73, 0x68, 0x61, 0x2d, 0x68, 0x61, 0x73, 0x68, 0x2d, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0xf9, 0x32, 0x00, 0x2f, 0x33, 0x64, 0x3a, 0x20, 0x53, 0x48, 0x41, 0x20, 0x68, 0x61, 0x73, 0x68, 0x20, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x0b, 0xf8, 0x73, 0x68, 0x61, 0xee, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x6a, 0x0e, 0x6a, 0x03, 0xd0, 0x31, 0x87, 0x16, 0xd6, 0x12, 0x03, 0x82, 0x42, 0x56, 0x06, 0x27, 0x57, 0x36, 0x16, 0x46, 0x57, 0x46, 0x96, 0xda, 0xf0, 0x8b, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xe4, 0xea, 0xf4, 0xc3, 0x0f, 0x35, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0xdc, 0x65, 0xc0, 0x33, 0x2b, 0xbb, 0x37, 0x28, 0x25, 0xc4, 0x37, 0x38, 0xf3, 0xaf, 0x6d, 0xb8, 0xa4, 0x36, 0x28, 0x6a, 0xc4, 0xd7, 0xf0, 0xe0, 0xce, 0xc1, 0x61, 0x81, 0xad, 0x35, 0x7c, 0xee, 0x32, 0xe0, 0xdd, 0x85, 0x8d, 0x1b, 0x7e, 0x51, 0xda, 0xf0, 0xb7, 0xd2, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x89, 0x66, 0x37, 0x38, 0x2c, 0xb0, 0x1d, 0x24, 0x6a, 0x6a, 0xb6, 0xe1, 0x13, 0x9b, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0xcf, 0x5d, 0x36, 0x28, 0x27, 0xb1, 0x37, 0xbc, 0xad, 0xb3, 0x41, 0x39, 0x89, 0xbd, 0x41, 0x02, 0x1f, 0x6a, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0x62, 0x74, 0x7b, 0xc3, 0xdb, 0x3a, 0x1b, 0x14, 0xa3, 0xdb, 0x07, 0xa9, 0xcb, 0xa8, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0xa2, 0xd0, 0x7b, 0xc3, 0xdb, 0x3a, 0x1b, 0x14, 0x85, 0xde, 0x07, 0xa9, 0xcb, 0xa8, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0x92, 0x2a, 0x7c, 0xc3, 0xdb, 0x3a, 0x1b, 0x94, 0x54, 0xe1, 0x07, 0xa9, 0xcb, 0xa8, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0xe2, 0x54, 0x7b, 0xc3, 0xdb, 0x3a, 0x1b, 0x14, 0xa7, 0xda, 0x07, 0xa9, 0xcb, 0xa8, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x72, 0x61, 0xec, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x0d, 0x78, 0xd7, 0xf0, 0x8b, 0xcb, 0x86, 0x07, 0x6f, 0x0e, 0x0a, 0x4a, 0xf1, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x51, 0xfc, 0xbb, 0x41, 0x51, 0x29, 0xbe, 0x86, 0xb7, 0x75, 0x36, 0x48, 0x4e, 0x43, 0xad, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x3c, 0xb3, 0x3a, 0x76, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0xb2, 0x38, 0x7a, 0xc3, 0x83, 0x37, 0x1b, 0x1c, 0x5d, 0x07, 0xd7, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0x75, 0x24, 0xb5, 0x83, 0xd4, 0xa2, 0xd4, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0x61, 0x65, 0x6e, 0x0d, 0x3f, 0xc2, 0x6c, 0xa8, 0xf9, 0x41, 0x00, 0x5a, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xb0, 0xbb, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x3e, 0x05, 0x5c, 0xc3, 0x8f, 0x30, 0x1b, 0x6a, 0x7e, 0x50, 0xc0, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x61, 0x77, 0xbb, 0x86, 0x77, 0x7b, 0x36, 0xfc, 0x09, 0xb4, 0xc1, 0x61, 0x65, 0x6e, 0x83, 0x94, 0xb6, 0xd4, 0xd6, 0xf0, 0x23, 0xcc, 0x86, 0x9a, 0x1f, 0x14, 0x80, 0x3a, 0x48, 0xda, 0x4d, 0x3d, 0x28, 0x9c, 0x64, 0xd7, 0xf0, 0x8b, 0xcb, 0x1a, 0x7e, 0x84, 0xd9, 0x50, 0xf3, 0xc3, 0x81, 0x35, 0xbc, 0xdb, 0xb3, 0x06, 0x65, 0xc9, 0xfb, 0x1a, 0x94, 0x54, 0xe1, 0x6d, 0x70, 0xe6, 0x5f, 0x3b, 0x38, 0x2c, 0xcf, 0x1c, 0x24, 0xdb, 0xa6, 0xd6, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x80, 0xc7, 0x56, 0x86, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0xa2, 0xf8, 0x77, 0x83, 0x94, 0xd3, 0xaa, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x62, 0x55, 0x6a, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x6b, 0x62, 0xf8, 0x86, 0x1f, 0x61, 0x06, 0xbe, 0x0e, 0x3f, 0x48, 0x5e, 0xf4, 0xd8, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xf0, 0xd0, 0xc2, 0xf0, 0x0d, 0x3f, 0xc2, 0x0c, 0x7c, 0x1d, 0x7e, 0x90, 0x08, 0xea, 0xb1, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0x78, 0x7a, 0x78, 0xf0, 0x66, 0xc3, 0x57, 0x38, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x1b, 0x94, 0xd1, 0xe7, 0x1b, 0xde, 0xd6, 0xd9, 0x20, 0x05, 0x3f, 0xb5, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xb1, 0xad, 0xbc, 0xc1, 0x61, 0x81, 0x6d, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x58, 0x2c, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0x0a, 0xa2, 0xe5, 0x0d, 0x0e, 0x0b, 0x6c, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xe4, 0x16, 0xd5, 0xaa, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x01, 0xef, 0xee, 0x0d, 0xdf, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xf0, 0xc8, 0xea, 0xf0, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x12, 0xcd, 0x6e, 0x90, 0x72, 0x5a, 0xb5, 0xc1, 0xe1, 0x99, 0xe2, 0x20, 0x01, 0x41, 0x75, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0x24, 0x47, 0xd5, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x6c, 0x2b, 0x6f, 0x70, 0x58, 0x60, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0x48, 0xd5, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x82, 0x68, 0x79, 0x83, 0xc3, 0x02, 0xdb, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0x39, 0x53, 0xb5, 0xd6, 0xf0, 0xb6, 0xce, 0x41, 0x0a, 0x78, 0x6a, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0xae, 0x1e, 0x1c, 0x5e, 0xe5, 0x36, 0x7c, 0x85, 0xb3, 0xe1, 0x2f, 0x9a, 0x0d, 0x3f, 0xd4, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0xac, 0xe1, 0x47, 0x98, 0x0d, 0x35, 0x3f, 0x1c, 0x3a, 0x48, 0x61, 0x8e, 0x5a, 0xc3, 0xdb, 0x3a, 0x1b, 0x24, 0x39, 0xaa, 0xb6, 0xe1, 0x13, 0x9b, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0xcf, 0x5d, 0x06, 0x67, 0x37, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x48, 0xd7, 0x44, 0x6d, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x14, 0x70, 0x83, 0x14, 0xe6, 0xa8, 0x83, 0x82, 0x52, 0x7c, 0x83, 0x64, 0x8b, 0xd5, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xed, 0x86, 0x77, 0x7b, 0x36, 0x48, 0x77, 0x59, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x3e, 0x05, 0xdc, 0x20, 0x85, 0x39, 0xea, 0xe0, 0xa8, 0x32, 0x77, 0x90, 0x5c, 0xb4, 0xba, 0x86, 0xcf, 0x5d, 0x06, 0x77, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0xba, 0xcb, 0xea, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0x29, 0xe0, 0x06, 0x29, 0xcc, 0x51, 0x6b, 0xf8, 0x11, 0x66, 0x43, 0xcd, 0x0f, 0x71, 0x07, 0xc9, 0x45, 0xab, 0x6b, 0xf8, 0xdc, 0x65, 0xf0, 0x77, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0xbb, 0xac, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x9f, 0x02, 0x6e, 0x90, 0xc2, 0x1c, 0x75, 0x70, 0x74, 0x95, 0x3b, 0x48, 0x2e, 0x5a, 0x6d, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0x7d, 0xc3, 0xbb, 0x3d, 0x1b, 0x9c, 0xc1, 0xdf, 0x36, 0x3c, 0x78, 0xb3, 0xe1, 0x31, 0x99, 0x35, 0x48, 0x32, 0x20, 0xdc, 0xe0, 0x10, 0x03, 0xb1, 0x41, 0xca, 0xdb, 0xd5, 0x06, 0x87, 0xd0, 0x89, 0x0d, 0x8a, 0xa1, 0xdd, 0x83, 0xb4, 0xff, 0xab, 0x36, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x48, 0xd1, 0x58, 0xdd, 0xf0, 0x6e, 0xcf, 0x06, 0x05, 0x65, 0xf7, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x34, 0xe0, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0x1c, 0x16, 0xd8, 0x36, 0x48, 0x61, 0x8e, 0x6a, 0x83, 0x94, 0xaf, 0xa7, 0x0e, 0x92, 0x8b, 0x56, 0x37, 0x48, 0x2e, 0xb4, 0x6c, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0xf5, 0xf0, 0xe0, 0xcd, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0x3e, 0x77, 0x19, 0x3c, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0xe9, 0x2e, 0xab, 0x1b, 0x1e, 0xbc, 0x39, 0x48, 0xf1, 0x53, 0x5d, 0xc3, 0xe7, 0x2e, 0x83, 0x8b, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0xdd, 0x65, 0x75, 0xc3, 0x63, 0x32, 0x07, 0x29, 0x7e, 0xaa, 0x6b, 0xf8, 0xdc, 0x65, 0xf0, 0x71, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0xbb, 0xac, 0x6e, 0x10, 0xb0, 0xac, 0x07, 0x29, 0x7e, 0xaa, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0x72, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0xbb, 0xac, 0x6e, 0x50, 0x54, 0x8a, 0x1f, 0xa4, 0xf8, 0xa9, 0xae, 0xe1, 0x73, 0x97, 0xc1, 0xcb, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0xee, 0xb2, 0xba, 0xc1, 0xa9, 0xb9, 0xed, 0x20, 0xc5, 0x4f, 0xb5, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x8b, 0x66, 0xc3, 0x0f, 0x35, 0x1b, 0x3e, 0xc8, 0xd9, 0x20, 0xe1, 0x60, 0x75, 0x0d, 0x97, 0xd4, 0x06, 0x87, 0xfd, 0x8e, 0x0d, 0x0a, 0xdd, 0xf3, 0x35, 0x48, 0x0e, 0x54, 0xdd, 0xa0, 0xe8, 0x34, 0xde, 0xa0, 0xd8, 0x56, 0xde, 0xe0, 0xb0, 0xc0, 0xb6, 0xc1, 0xd1, 0x75, 0x70, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0xd8, 0x86, 0xdb, 0xf0, 0xb4, 0xce, 0x06, 0x89, 0x2b, 0xac, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x0e, 0xdb, 0x70, 0x1b, 0xde, 0x0b, 0xda, 0x20, 0x05, 0x88, 0xb5, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x61, 0x1b, 0x6e, 0xc3, 0xd3, 0x3b, 0x1b, 0x24, 0x53, 0xb1, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x6c, 0xc3, 0x6d, 0x50, 0xae, 0xcb, 0x6e, 0x90, 0x9c, 0xc6, 0xda, 0x1a, 0xde, 0xed, 0xd9, 0xe0, 0xb0, 0x0d, 0xb7, 0x41, 0x39, 0x01, 0xbd, 0x41, 0xc2, 0x1f, 0x6b, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xf0, 0x66, 0xf8, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x28, 0xbb, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x47, 0xef, 0xb8, 0xc3, 0x73, 0x41, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xa3, 0x77, 0xdc, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x9c, 0xb7, 0x1f, 0xda, 0xe0, 0xb0, 0xc0, 0xb6, 0xe1, 0x31, 0x99, 0xc3, 0x5b, 0x68, 0x07, 0xa5, 0xba, 0x6c, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x03, 0x6f, 0x96, 0x6f, 0x90, 0x64, 0x40, 0xb8, 0xc1, 0x21, 0x06, 0x62, 0xc3, 0x7b, 0x41, 0x07, 0x05, 0x20, 0xff, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0xc0, 0x9b, 0xe9, 0x1b, 0x24, 0x19, 0x10, 0x6e, 0x50, 0x50, 0x76, 0x6f, 0x90, 0x28, 0xd2, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x7a, 0xc7, 0x1d, 0x14, 0xdd, 0xb2, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xa3, 0x77, 0xdc, 0x41, 0x01, 0xc8, 0xdf, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x80, 0x47, 0x57, 0xd6, 0x6e, 0xf8, 0x20, 0x67, 0x0d, 0x8f, 0xb0, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0xd2, 0xb0, 0x95, 0x36, 0x48, 0x61, 0x8e, 0x3a, 0x28, 0x9c, 0x64, 0xd7, 0xf0, 0x6e, 0xcf, 0x86, 0x2f, 0x7e, 0x37, 0x48, 0x61, 0x8e, 0x5a, 0xc3, 0x8f, 0x30, 0x1b, 0x6a, 0x7e, 0xd8, 0xd4, 0x1a, 0x24, 0x19, 0x10, 0x6e, 0x70, 0xd8, 0x86, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x9c, 0xc1, 0xdf, 0x36, 0x3c, 0x78, 0xb3, 0xc1, 0x61, 0x81, 0xed, 0xf0, 0xd0, 0xcf, 0x1a, 0xde, 0xd6, 0x19, 0x78, 0x33, 0xbc, 0x0d, 0xca, 0x09, 0xe8, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xba, 0xcb, 0xea, 0x86, 0x07, 0x6f, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0xa9, 0x17, 0xaa, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x48, 0x77, 0x59, 0xdd, 0x20, 0x85, 0x39, 0xea, 0x20, 0xb9, 0x68, 0xb5, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0x11, 0xd6, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x1a, 0xb6, 0xd2, 0x06, 0x29, 0xcc, 0x51, 0x6b, 0xf8, 0x11, 0x66, 0x43, 0xcd, 0x0f, 0xa3, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x2f, 0x7e, 0x37, 0x48, 0x61, 0x8e, 0x5a, 0xc3, 0x8f, 0x30, 0x1b, 0x6a, 0x7e, 0xe8, 0xa9, 0x35, 0x48, 0x32, 0x20, 0xdc, 0xe0, 0xb0, 0x0d, 0xb7, 0x41, 0x72, 0x75, 0xeb, 0x1a, 0xde, 0xd6, 0x19, 0x78, 0xb3, 0xbc, 0x0d, 0xca, 0x09, 0xe8, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xba, 0xcb, 0xea, 0x86, 0xc7, 0x64, 0x0e, 0x92, 0xfc, 0x5b, 0x0f, 0x52, 0x0d, 0x5c, 0x37, 0x7c, 0x90, 0xb3, 0x86, 0x47, 0x58, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x69, 0xd8, 0x4a, 0x1b, 0xa4, 0x30, 0x47, 0xad, 0xe1, 0x47, 0x98, 0x0d, 0x35, 0x3f, 0x14, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0xf1, 0xbb, 0x41, 0x0a, 0x73, 0xd4, 0x1a, 0x7e, 0x84, 0xd9, 0x50, 0xf3, 0x43, 0x77, 0xad, 0x41, 0x92, 0x01, 0xe1, 0x06, 0x87, 0x6d, 0xb8, 0x0d, 0x92, 0xab, 0x5b, 0xd7, 0xf0, 0xb6, 0xce, 0xc0, 0x9b, 0xe9, 0x6d, 0x50, 0x4e, 0x40, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0xd2, 0x5d, 0x56, 0x37, 0x08, 0x58, 0xd6, 0x83, 0x24, 0xff, 0xd6, 0x83, 0x54, 0x03, 0xd7, 0x0d, 0x92, 0x0c, 0x08, 0x37, 0x38, 0x6c, 0xc3, 0x6d, 0x90, 0x5c, 0xdd, 0xba, 0x41, 0xca, 0x94, 0xeb, 0x06, 0xe5, 0x04, 0xf4, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0xdd, 0x65, 0x75, 0x83, 0xa2, 0x52, 0xfc, 0x20, 0xc9, 0xbf, 0xf5, 0x20, 0xd5, 0xc0, 0x75, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0xdb, 0x20, 0xb9, 0xd0, 0x72, 0x0d, 0x0f, 0xee, 0x6c, 0x78, 0x5b, 0x67, 0x83, 0x14, 0xcf, 0xd6, 0x36, 0x38, 0x8d, 0xdc, 0xac, 0xe1, 0x1f, 0x9e, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0x06, 0x7f, 0xdb, 0xf0, 0xe0, 0xcd, 0x06, 0x29, 0x5b, 0x9e, 0x87, 0xb7, 0xd0, 0xd6, 0xa0, 0xc8, 0x97, 0x3d, 0x3c, 0xbd, 0xb3, 0x06, 0x45, 0x08, 0xf4, 0x41, 0xb9, 0x2e, 0xdb, 0x0a, 0xf8, 0x73, 0x68, 0x61, 0xf7, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x2a, 0xcd, 0x6b, 0x03, 0x78, 0xa2, 0x85, 0xcd, 0xa1, 0x81, 0xd0, 0xbd, 0x81, 0xb8, 0x89, 0xa5, 0xd1, 0xcd, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0x01, 0x6f, 0x2e, 0x8c, 0x3d, 0xfc, 0x50, 0xb3, 0xc1, 0xd9, 0x87, 0x6d, 0x83, 0x14, 0x33, 0xd4, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x49, 0x05, 0x9c, 0x6b, 0x78, 0x5b, 0x67, 0xe0, 0xdf, 0xce, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0x5d, 0x76, 0xa7, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xd2, 0xd8, 0x6b, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x43, 0x0c, 0xc4, 0x06, 0x85, 0x97, 0xf1, 0x41, 0x6a, 0x51, 0x6a, 0x1d, 0x14, 0x5d, 0xc6, 0x2b, 0xe0, 0xcf, 0xa1, 0x85, 0x99, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xe9, 0xae, 0xaf, 0x0d, 0xa0, 0x87, 0x16, 0xc6, 0x66, 0x06, 0x32, 0x87, 0x16, 0xd6, 0x22, 0x53, 0x63, 0xdb, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0xda, 0x20, 0xf5, 0xeb, 0xf5, 0x20, 0xd9, 0xed, 0x75, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0x33, 0x0f, 0xde, 0x86, 0x77, 0x7b, 0x36, 0x48, 0x51, 0x7c, 0xdd, 0x20, 0x49, 0xf2, 0xf5, 0x20, 0xb5, 0x28, 0x75, 0xc3, 0xbb, 0x3d, 0x1b, 0x1c, 0x62, 0x20, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x45, 0x26, 0xee, 0x06, 0xe7, 0x05, 0x9a, 0x83, 0xa3, 0x3b, 0xde, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xc4, 0xc7, 0x3d, 0x48, 0x57, 0x80, 0xed, 0x70, 0x8a, 0xb5, 0x06, 0x69, 0x3f, 0x2c, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0x69, 0x3f, 0x2c, 0x0d, 0xc0, 0xc7, 0xd8, 0x9b, 0x9c, 0x5c, 0xd9, 0x18, 0x1d, 0x88, 0x58, 0x1e, 0x5d, 0x59, 0xcb, 0x9b, 0x1c, 0x59, 0x99, 0xdc, 0x06, 0x65, 0x97, 0xec, 0x06, 0x69, 0x3f, 0x2c, 0x6b, 0xb8, 0xa4, 0xd6, 0x78, 0xbc, 0x41, 0xda, 0x0f, 0x4b, 0xcd, 0x06, 0xa5, 0x84, 0xf8, 0x1a, 0x94, 0x2c, 0xec, 0xb3, 0xcc, 0x02, 0xbe, 0x19, 0x5b, 0x5a, 0xbb, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x3f, 0x66, 0x6c, 0x69, 0x70, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x77, 0x3d, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xbf, 0xf3, 0x6b, 0x70, 0x0c, 0x2f, 0xad, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0xce, 0x42, 0xa6, 0xad, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0x00, 0xda, 0x68, 0x83, 0xa2, 0x52, 0x7c, 0x83, 0xd4, 0x4c, 0xd8, 0x83, 0xb2, 0xcf, 0xb8, 0x15, 0xf0, 0xdb, 0xca, 0xca, 0xe8, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0xf8, 0x68, 0x2b, 0x0b, 0x9b, 0xab, 0x93, 0x2b, 0x03, 0x49, 0x73, 0x83, 0xab, 0xa3, 0x03, 0x99, 0x4b, 0xd3, 0x2b, 0xdb, 0xf0, 0x8b, 0xd2, 0x86, 0x2f, 0x97, 0x36, 0xfc, 0xe2, 0xb2, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x8a, 0x7f, 0x0f, 0x8a, 0x9e, 0xfd, 0xc3, 0x43, 0x3f, 0x2b, 0xe0, 0x9b, 0xb1, 0xa5, 0xb9, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xf8, 0x98, 0xb1, 0xa5, 0xc1, 0x81, 0xa4, 0xb9, 0xc1, 0xd5, 0xd1, 0x6d, 0xf8, 0x45, 0x69, 0xc3, 0x97, 0x4b, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xd4, 0x3a, 0x3e, 0x28, 0x7a, 0xf6, 0x0f, 0xa7, 0xd8, 0x02, 0xbe, 0x19, 0x5b, 0x1a, 0xbc, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x2f, 0x66, 0x6c, 0x69, 0x70, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0xe9, 0x86, 0x69, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x53, 0x8b, 0x59, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x34, 0xa7, 0xd8, 0x0d, 0x92, 0x4a, 0x61, 0x0f, 0x0a, 0x4a, 0xf1, 0x83, 0xe3, 0x8f, 0xcb, 0xe1, 0x14, 0xeb, 0x70, 0x8a, 0x6d, 0x50, 0xb2, 0xb0, 0xcf, 0x32, 0x0b, 0xf0, 0xcf, 0xa1, 0x85, 0xb5, 0xc8, 0xd4, 0xd8, 0xb0, 0x1b, 0x24, 0x19, 0x10, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0x4e, 0x57, 0x65, 0xad, 0xe1, 0x6d, 0x9d, 0x0d, 0xd2, 0xce, 0x60, 0x5b, 0xc3, 0xdb, 0x3a, 0x1b, 0xa4, 0xe1, 0xec, 0xb4, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x69, 0x21, 0xb1, 0xad, 0xe1, 0x47, 0x98, 0x0d, 0x35, 0x3f, 0x14, 0xd4, 0x0a, 0xd0, 0xce, 0xa1, 0x85, 0xb5, 0xd4, 0xc4, 0xc8, 0x0d, 0x92, 0x0c, 0x08, 0x37, 0x48, 0x1d, 0x8c, 0x5d, 0xc3, 0xdb, 0x3a, 0x1b, 0xa4, 0xcf, 0xc3, 0xb6, 0x86, 0xb7, 0x75, 0x06, 0xfc, 0x39, 0xb4, 0x30, 0xbd, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xe2, 0x67, 0xec, 0x06, 0x29, 0xd0, 0xa9, 0xb5, 0x02, 0x34, 0x73, 0x68, 0x61, 0x2d, 0x71, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0x0e, 0xc6, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0x92, 0x73, 0x61, 0x5b, 0xc3, 0xdb, 0x3a, 0x03, 0x7c, 0x73, 0x68, 0x61, 0x2d, 0x31, 0x6c, 0xad, 0x06, 0x69, 0xfa, 0xb1, 0x1b, 0x1e, 0x1f, 0xd9, 0x20, 0x09, 0x78, 0x65, 0xc3, 0x2f, 0x4a, 0x1b, 0x24, 0x37, 0xc2, 0x6e, 0xf8, 0x8b, 0x66, 0xc3, 0x0f, 0x35, 0x1b, 0x3e, 0xb1, 0xd9, 0x20, 0x99, 0x0e, 0x75, 0xc3, 0x27, 0x36, 0x1b, 0x24, 0xe5, 0xa2, 0x6e, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x6c, 0x90, 0x3a, 0x92, 0xba, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0x03, 0xde, 0x0d, 0x12, 0x5f, 0x52, 0x37, 0x48, 0xcd, 0x84, 0x6d, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0xc4, 0xaa, 0xd4, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0xca, 0xe2, 0xe8, 0x0d, 0x0f, 0xde, 0x6c, 0x70, 0x74, 0x1d, 0x5c, 0xc3, 0x2f, 0x2e, 0x1b, 0xa4, 0xb4, 0xa5, 0x1e, 0xa4, 0x85, 0xc2, 0x1e, 0x24, 0xe4, 0xa5, 0x1e, 0xa4, 0xc3, 0xa7, 0x1e, 0x4e, 0xb1, 0x16, 0xe0, 0x9f, 0x43, 0x0b, 0x6b, 0xa9, 0x89, 0x91, 0x61, 0x37, 0x48, 0x32, 0x20, 0xdc, 0x20, 0x75, 0x30, 0x76, 0x83, 0xd4, 0xc5, 0xd8, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xe2, 0xa8, 0x4d, 0x07, 0x09, 0xd3, 0xb1, 0x87, 0x53, 0x6c, 0x01, 0xda, 0x39, 0xb4, 0xb0, 0x16, 0x99, 0x1a, 0xbb, 0x41, 0x92, 0x01, 0xe1, 0x06, 0xa9, 0x83, 0xb1, 0x1b, 0x24, 0x07, 0xc7, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0x92, 0xaa, 0x77, 0x3a, 0x48, 0xdd, 0x8c, 0x3d, 0x9c, 0x62, 0x87, 0x53, 0x6c, 0xd6, 0x20, 0xed, 0x8f, 0x65, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x20, 0xed, 0x8f, 0xa5, 0x01, 0xfc, 0x63, 0x64, 0x70, 0xc4, 0xd2, 0xe8, 0x40, 0xdc, 0xde, 0xea, 0xdc, 0x40, 0xd0, 0xc2, 0xe6, 0xd0, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0xbc, 0x3a, 0xfc, 0x20, 0x4c, 0xc7, 0x36, 0xfc, 0x45, 0xb3, 0x86, 0x2f, 0x6a, 0x36, 0xd4, 0xf1, 0xc0, 0xab, 0xb3, 0x43, 0x36, 0xfc, 0x45, 0xb3, 0xe1, 0x87, 0x9a, 0x0d, 0x0a, 0x82, 0xd9, 0x35, 0x48, 0x9c, 0x97, 0x6d, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0xd2, 0x5d, 0x5f, 0x5b, 0xc3, 0x1b, 0x77, 0x1b, 0x5e, 0xbe, 0x3b, 0x48, 0x2b, 0x63, 0x59, 0xc3, 0xdb, 0x3a, 0x07, 0x49, 0x14, 0xb3, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x54, 0x8e, 0xd9, 0x35, 0xbc, 0x71, 0xb7, 0xe1, 0xe5, 0xbb, 0x83, 0xb4, 0x3f, 0x96, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x18, 0x16, 0xbb, 0x1d, 0x24, 0xbe, 0xcc, 0x36, 0x6b, 0x90, 0x38, 0x6a, 0xb3, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x90, 0x38, 0x6a, 0xd3, 0x00, 0xbc, 0xcc, 0xa1, 0x85, 0xb5, 0xd4, 0xc4, 0xc8, 0x80, 0xdc, 0xa5, 0xd1, 0xa1, 0x81, 0xb0, 0x95, 0xb9, 0x9d, 0xd1, 0xa1, 0x6d, 0x78, 0x7c, 0x64, 0x83, 0xc4, 0x51, 0x9b, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x83, 0x54, 0xb5, 0xd7, 0x0d, 0x7f, 0xd1, 0x6c, 0xf8, 0xa1, 0x66, 0x83, 0x52, 0x42, 0x7c, 0x0d, 0x97, 0xd4, 0x06, 0x45, 0x8d, 0xf8, 0x1a, 0x24, 0x25, 0xa5, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x92, 0x68, 0x76, 0x83, 0xa2, 0x52, 0x7c, 0x0d, 0xbf, 0xb8, 0x6c, 0x78, 0xf0, 0xe6, 0xa0, 0xe8, 0x32, 0x3e, 0x48, 0x2d, 0x4a, 0x6d, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0x9f, 0xbb, 0x6c, 0x90, 0xc0, 0x87, 0xba, 0x41, 0x29, 0x21, 0xbe, 0xc1, 0x99, 0x7f, 0x6d, 0xc3, 0x25, 0xb5, 0x41, 0x51, 0x23, 0xbe, 0x86, 0x07, 0x77, 0x0e, 0x8e, 0xcb, 0x33, 0xad, 0xe1, 0x73, 0x97, 0x0d, 0xd2, 0x35, 0x51, 0x37, 0xfc, 0xa2, 0xb4, 0xe1, 0x6f, 0xa5, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x12, 0xcd, 0x6e, 0x70, 0x5c, 0x9e, 0x39, 0x48, 0xd4, 0xd4, 0x6c, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x74, 0x5e, 0xd4, 0x0d, 0xd2, 0xa0, 0x51, 0x0f, 0x52, 0xec, 0x51, 0x37, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x36, 0x48, 0x1d, 0x49, 0xdd, 0xf0, 0x6e, 0xcf, 0x06, 0xa5, 0x01, 0xef, 0x06, 0x89, 0x2f, 0xa9, 0x07, 0x45, 0x97, 0xf1, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x06, 0x89, 0x55, 0xa9, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x94, 0xc5, 0xd1, 0x1b, 0x1e, 0xbc, 0xd9, 0xe0, 0xe8, 0x3a, 0xb8, 0x41, 0x62, 0x5a, 0xea, 0x06, 0x49, 0x79, 0xa9, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x76, 0xb7, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0xa7, 0x80, 0x6b, 0xf8, 0x11, 0x66, 0x43, 0xcd, 0x0f, 0x0e, 0xf0, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xd8, 0xdd, 0x6e, 0x90, 0xbe, 0x9a, 0xba, 0x86, 0x1f, 0x61, 0x36, 0xd4, 0xfc, 0xe0, 0x00, 0xa8, 0x83, 0x54, 0x41, 0xda, 0x83, 0xc2, 0x49, 0x76, 0x0d, 0xbf, 0xb8, 0x6c, 0x90, 0x10, 0x98, 0xba, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x2c, 0x79, 0xdf, 0x20, 0x05, 0x3c, 0x75, 0x83, 0x33, 0xff, 0xda, 0xc1, 0x69, 0x81, 0xe6, 0x20, 0xd9, 0x36, 0xb5, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x36, 0x48, 0xc1, 0x4f, 0xdd, 0xf0, 0x6e, 0xcf, 0x06, 0x45, 0xf1, 0xef, 0x06, 0x29, 0xaf, 0x55, 0x07, 0x09, 0x08, 0xaa, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x1b, 0xa4, 0x5e, 0xa8, 0x6e, 0xf8, 0x11, 0x66, 0xe0, 0xeb, 0xf0, 0x83, 0xf4, 0xd2, 0x96, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x0d, 0x92, 0x5b, 0x54, 0x37, 0xfc, 0x08, 0x33, 0xf0, 0x75, 0xf8, 0x41, 0xf2, 0x0a, 0xcc, 0x86, 0x4f, 0x6c, 0x36, 0x48, 0x02, 0x52, 0xdd, 0xf0, 0x15, 0xce, 0x86, 0xbf, 0x68, 0x36, 0xfc, 0x50, 0xb3, 0xe1, 0x83, 0x9c, 0x0d, 0x92, 0x9f, 0x54, 0xd7, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0x64, 0x2e, 0xb5, 0xc1, 0x71, 0x79, 0x66, 0x83, 0x34, 0x3f, 0xd5, 0x83, 0x24, 0x72, 0xd5, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x0d, 0x92, 0x1c, 0x55, 0x37, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x36, 0x48, 0xce, 0x54, 0xdd, 0xf0, 0x6e, 0xcf, 0x06, 0x25, 0xd1, 0xec, 0x06, 0x29, 0xaf, 0x55, 0x07, 0xa9, 0xa9, 0xaa, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x1b, 0x24, 0x39, 0xaa, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x14, 0x8c, 0xda, 0x0d, 0x8e, 0xcb, 0x33, 0x1b, 0xa4, 0x70, 0xab, 0x1e, 0x24, 0x91, 0xab, 0x6e, 0xf8, 0xc4, 0x66, 0x83, 0x04, 0x78, 0xd5, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x8b, 0x66, 0xc3, 0x0f, 0x35, 0x1b, 0x3e, 0xc8, 0xd9, 0x20, 0xe1, 0x60, 0x75, 0x83, 0x64, 0x8b, 0xd5, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x17, 0x97, 0x35, 0x7c, 0xee, 0x32, 0x38, 0xbb, 0xe1, 0xdd, 0x9e, 0x0d, 0xd2, 0x5d, 0x56, 0xd7, 0xf0, 0x6e, 0xcf, 0x86, 0x4f, 0x01, 0x37, 0x48, 0x61, 0x8e, 0xda, 0xe0, 0x74, 0xff, 0xd6, 0x41, 0x72, 0xd1, 0xea, 0x1a, 0x3e, 0x77, 0x19, 0xbc, 0xdd, 0xf0, 0x6e, 0xcf, 0x06, 0xe9, 0x2e, 0xab, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0xa7, 0x80, 0x07, 0x69, 0x26, 0x94, 0x07, 0xc9, 0x45, 0xab, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0xf7, 0x20, 0x99, 0x72, 0x75, 0x0d, 0x9f, 0xbb, 0x0c, 0xfe, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x74, 0x97, 0xd5, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x53, 0xc0, 0x0d, 0x52, 0x98, 0xa3, 0x0e, 0x4e, 0x0b, 0x34, 0x07, 0xc9, 0x45, 0xab, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x8e, 0x6f, 0x90, 0x64, 0x40, 0xb8, 0xc1, 0x21, 0x06, 0x62, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x8a, 0xd1, 0xed, 0x36, 0x3c, 0x78, 0xb3, 0xe1, 0x31, 0x99, 0x0d, 0x52, 0xde, 0xae, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0x4a, 0xd8, 0x6e, 0x78, 0xf0, 0x66, 0x83, 0xc3, 0xca, 0xdc, 0x41, 0x42, 0x88, 0xed, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xc4, 0xc7, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0x1e, 0xbc, 0x39, 0x38, 0x2d, 0xd0, 0x1c, 0x24, 0x84, 0xd8, 0xb6, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0x78, 0xbe, 0x41, 0x92, 0x01, 0xe1, 0x06, 0x87, 0x18, 0x88, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xaa, 0x84, 0xed, 0x86, 0x07, 0x6f, 0x36, 0x48, 0x26, 0x6e, 0x3d, 0x38, 0x21, 0x50, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x52, 0x25, 0x6c, 0x37, 0x3c, 0x78, 0xb3, 0x86, 0x1f, 0x61, 0x36, 0xd4, 0xfc, 0xd0, 0x7e, 0x70, 0x42, 0xa0, 0x58, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0xf8, 0xb8, 0x6b, 0xf8, 0xc5, 0x65, 0xc3, 0x83, 0x37, 0x07, 0x87, 0xe5, 0x99, 0x83, 0x13, 0x02, 0x45, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0xeb, 0x1b, 0x24, 0x19, 0x10, 0x6e, 0x70, 0xd8, 0x86, 0xdb, 0xa0, 0x18, 0xda, 0xdd, 0x20, 0x99, 0xd2, 0x69, 0x83, 0x84, 0xcb, 0xab, 0x83, 0xf4, 0x6a, 0xa7, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x52, 0x34, 0x56, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x41, 0xd9, 0xbd, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x0d, 0x78, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0xc7, 0xe5, 0x99, 0x83, 0xa4, 0x00, 0xd6, 0x83, 0xe4, 0x02, 0xd6, 0x83, 0xe4, 0xa2, 0xd5, 0x83, 0x24, 0x07, 0xd6, 0x0d, 0x9f, 0xd8, 0x6c, 0x90, 0x66, 0xc1, 0xba, 0xe1, 0x13, 0x9b, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x8a, 0x09, 0xeb, 0x06, 0xc9, 0x3a, 0xac, 0x1b, 0xa4, 0x3d, 0xb1, 0x6e, 0x90, 0x46, 0xc6, 0xba, 0x41, 0x6a, 0x1e, 0xeb, 0x1a, 0x3e, 0x77, 0x19, 0xdc, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0xe9, 0x2e, 0xab, 0x07, 0x09, 0x7a, 0xaa, 0x6b, 0xf8, 0xdc, 0x65, 0xf0, 0x73, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0xbb, 0xac, 0x6e, 0x70, 0x5c, 0x9e, 0x39, 0x48, 0xf1, 0x53, 0x5d, 0xc3, 0xe7, 0x2e, 0x83, 0xa3, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0xdd, 0x65, 0x75, 0x83, 0xf3, 0x02, 0xcd, 0x41, 0x8a, 0x9f, 0x6a, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0x17, 0xcd, 0x86, 0x1f, 0x6a, 0x36, 0x7c, 0x90, 0xb3, 0x41, 0xc2, 0xc1, 0xea, 0x1a, 0x2e, 0xa9, 0x0d, 0x0e, 0xfb, 0x1d, 0x1b, 0x14, 0xba, 0xe7, 0x6b, 0x90, 0x1c, 0xa8, 0xba, 0x41, 0xd1, 0x69, 0xbc, 0x41, 0xb1, 0xad, 0xbc, 0xc1, 0x71, 0x79, 0x66, 0x83, 0xa3, 0xeb, 0xe0, 0x06, 0x09, 0xc1, 0xac, 0x1b, 0xa4, 0x42, 0xb3, 0x6e, 0x90, 0x04, 0xce, 0xba, 0x41, 0xfa, 0x3b, 0xeb, 0x06, 0x29, 0x00, 0xad, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xc3, 0x36, 0xdc, 0x06, 0xc5, 0x48, 0xed, 0x06, 0x89, 0x1e, 0xb7, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x0e, 0xdb, 0x70, 0x1b, 0x94, 0x3f, 0xb5, 0x1b, 0x24, 0xbf, 0xdc, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x6c, 0xc3, 0x6d, 0x70, 0x50, 0xa6, 0xdb, 0x20, 0xa5, 0xe8, 0xb6, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0x3d, 0x05, 0xdb, 0xf0, 0xb9, 0xcb, 0xe0, 0xec, 0x06, 0x49, 0x06, 0x84, 0x1b, 0x1c, 0x62, 0x20, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xa9, 0x12, 0xb6, 0x1b, 0x1e, 0xbc, 0xd9, 0x20, 0xe5, 0xc9, 0xf3, 0xf0, 0xd0, 0xcf, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x55, 0xc2, 0x76, 0xc3, 0x83, 0x37, 0x6b, 0xf8, 0x11, 0x66, 0x43, 0xcd, 0x0f, 0x15, 0x87, 0x87, 0x7e, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xa9, 0x12, 0xb6, 0x1b, 0x1e, 0xbc, 0xd9, 0x20, 0xb9, 0xc7, 0xf5, 0xf0, 0xd0, 0x4f, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0xc0, 0x6b, 0x0b, 0x53, 0xdb, 0xf0, 0xb9, 0xcb, 0xe0, 0xed, 0x06, 0x49, 0x06, 0x84, 0x1b, 0x1c, 0x62, 0x20, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x47, 0xef, 0xb8, 0xc3, 0xef, 0x67, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xa3, 0x77, 0xdc, 0x41, 0xe1, 0xab, 0xbb, 0x41, 0xa2, 0x48, 0x6b, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0xa0, 0xe9, 0x64, 0x1b, 0x3e, 0x77, 0x19, 0xdc, 0xdd, 0xf0, 0x6e, 0xcf, 0x06, 0x87, 0x6d, 0xb8, 0x0d, 0x52, 0xde, 0xae, 0x0e, 0x4e, 0x08, 0x14, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0xa0, 0xa7, 0x62, 0x1b, 0x3e, 0x77, 0x19, 0xfc, 0xdd, 0x20, 0xc9, 0x80, 0x70, 0x83, 0x43, 0x0c, 0xc4, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x55, 0xc2, 0x76, 0xc3, 0x83, 0x37, 0x1b, 0xa4, 0x0d, 0xae, 0x1e, 0x94, 0xd9, 0xd2, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x54, 0x09, 0xdb, 0x0d, 0x0f, 0xde, 0xac, 0xe1, 0x47, 0x98, 0x0d, 0x35, 0x3f, 0x4c, 0x0e, 0xca, 0x6c, 0xe9, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xaa, 0x84, 0xed, 0x86, 0x07, 0x6f, 0xd6, 0xf0, 0x23, 0xcc, 0x86, 0x9a, 0x1f, 0x9a, 0x0e, 0xca, 0x6c, 0xe9, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0xc0, 0x8f, 0xa1, 0x6d, 0xf8, 0xdc, 0x65, 0x70, 0x78, 0xc3, 0xbb, 0x3d, 0x1b, 0x1c, 0x62, 0x20, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x47, 0xef, 0xb8, 0x0d, 0xca, 0x09, 0xe8, 0x83, 0xc2, 0xaa, 0x7b, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0xf4, 0x8e, 0x5b, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xe2, 0x54, 0xbb, 0x83, 0x32, 0x5b, 0xfa, 0xa0, 0xf4, 0xa9, 0x6d, 0xc3, 0x27, 0x36, 0x6b, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0x34, 0x5d, 0x6c, 0xc3, 0xe7, 0x2e, 0x83, 0xc7, 0x1b, 0x24, 0x19, 0x10, 0x6e, 0x70, 0xd8, 0x86, 0xdb, 0xe0, 0xa0, 0x4c, 0xb7, 0x41, 0xc2, 0xe5, 0xd5, 0x06, 0xa7, 0x8b, 0x8c, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xba, 0xcb, 0xea, 0x06, 0x29, 0xcc, 0x51, 0x07, 0x49, 0xfe, 0xad, 0x07, 0xa9, 0x06, 0xae, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x06, 0xc9, 0x85, 0x96, 0x6b, 0x78, 0x70, 0x67, 0xc3, 0xbb, 0x3d, 0x1b, 0x1c, 0xb6, 0xe1, 0x36, 0x38, 0x1d, 0x89, 0x6c, 0x50, 0x0c, 0xed, 0xb6, 0xc1, 0x69, 0xe4, 0x66, 0x0d, 0xff, 0xf0, 0x1c, 0xde, 0x0b, 0xda, 0x20, 0x91, 0xe4, 0x75, 0x0d, 0x8a, 0x10, 0xe8, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0xd8, 0x86, 0xdb, 0xa0, 0x5c, 0x97, 0x3d, 0x38, 0xf4, 0xf2, 0xad, 0x41, 0x80, 0x07, 0x1d, 0x94, 0x13, 0xd0, 0x6b, 0x50, 0x34, 0xd5, 0x1e, 0x14, 0x23, 0xb5, 0x6b, 0x70, 0xac, 0xa5, 0x3b, 0x28, 0x7f, 0x6a, 0x5b, 0x0d, 0x12, 0x9b, 0x63, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x12, 0x9b, 0x63, 0xdb, 0x20, 0x15, 0x36, 0xb6, 0x0d, 0xbf, 0x28, 0x6d, 0x90, 0x62, 0x86, 0xba, 0xe1, 0x2f, 0x9a, 0x0d, 0x3f, 0xd4, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0x24, 0x48, 0xd9, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x92, 0x4e, 0xea, 0x41, 0x6a, 0x51, 0x6a, 0x2b, 0xe0, 0xcf, 0xa1, 0x85, 0x91, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xe8, 0x92, 0xbd, 0xd5, 0x89, 0xb1, 0x95, 0x81, 0xcc, 0xa1, 0x85, 0xb5, 0xc8, 0xd4, 0xd8, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0x8a, 0x19, 0xea, 0x86, 0x77, 0x7b, 0x36, 0x48, 0xa5, 0x95, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0xd2, 0xca, 0x1e, 0xa4, 0x16, 0xa5, 0x36, 0x6b, 0x90, 0x86, 0xb3, 0xb3, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x90, 0x86, 0xb3, 0xd3, 0x00, 0xbc, 0xcc, 0xa1, 0x85, 0xb5, 0xc8, 0xd4, 0xd8, 0x80, 0xdc, 0xa5, 0xd1, 0xa1, 0x81, 0xb0, 0x95, 0xb9, 0x9d, 0xd1, 0xa1, 0x6d, 0x78, 0x7c, 0x64, 0x83, 0x34, 0x9c, 0x9d, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0xb4, 0x41, 0x59, 0x58, 0x7c, 0x70, 0x14, 0x3a, 0x39, 0x48, 0x76, 0x7b, 0xdd, 0xf0, 0x17, 0xcd, 0x86, 0x1f, 0x6a, 0x36, 0x28, 0x25, 0xc4, 0x37, 0x48, 0x08, 0x9d, 0xdd, 0xf0, 0x89, 0xcd, 0x06, 0xc9, 0x74, 0xa8, 0x1b, 0x3e, 0xb1, 0xd9, 0x20, 0xcd, 0x81, 0x76, 0xc3, 0x27, 0x36, 0x1b, 0xa4, 0x87, 0xd0, 0x6e, 0xf8, 0xc4, 0x66, 0x83, 0xf4, 0xa8, 0xd4, 0x0d, 0x9f, 0xd8, 0x6c, 0x90, 0x48, 0x9f, 0xba, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0xb2, 0x41, 0xea, 0x85, 0xea, 0x86, 0x1f, 0x61, 0x06, 0xbe, 0x0e, 0x3f, 0x48, 0xcc, 0xb9, 0xd9, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0xd9, 0x20, 0xb9, 0x45, 0x75, 0xc3, 0x8f, 0x30, 0x03, 0x5f, 0x87, 0x1f, 0x24, 0xfd, 0xe0, 0x6c, 0xf8, 0xc4, 0x66, 0x83, 0x24, 0x20, 0xd5, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x8b, 0x66, 0xc3, 0x0f, 0x35, 0x1b, 0x3e, 0xc8, 0xd9, 0x20, 0xf9, 0x49, 0x75, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x82, 0x51, 0xbb, 0xc1, 0x61, 0x81, 0xed, 0x20, 0x79, 0xa4, 0x76, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0x24, 0x47, 0xd5, 0x0d, 0x9f, 0xd8, 0x6c, 0x90, 0x62, 0xa9, 0xba, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0xb2, 0x41, 0x92, 0xa3, 0xea, 0x86, 0x77, 0x7b, 0x36, 0x48, 0xc1, 0xa8, 0xdd, 0xe0, 0xb0, 0xc0, 0x76, 0x90, 0x92, 0x56, 0xbb, 0xe1, 0x13, 0x9b, 0x0d, 0x12, 0xe0, 0x55, 0x37, 0x7c, 0x85, 0xb3, 0xe1, 0x2f, 0x9a, 0x0d, 0x3f, 0xd4, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0x6c, 0x90, 0x02, 0x9d, 0x7a, 0x90, 0xc2, 0x1c, 0xb5, 0x41, 0xb2, 0xc5, 0xea, 0x86, 0x4f, 0x6c, 0x36, 0x48, 0x95, 0xac, 0xdd, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0x1c, 0xdf, 0x20, 0xc9, 0x80, 0x70, 0x83, 0x43, 0x0c, 0xc4, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x55, 0xc2, 0x76, 0xc3, 0x83, 0x37, 0x1b, 0x9c, 0x17, 0x68, 0x0e, 0x12, 0x42, 0x6c, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xa9, 0x12, 0xb6, 0x1b, 0x1e, 0xbc, 0xd9, 0x20, 0x55, 0x17, 0xf7, 0x20, 0x21, 0xc4, 0x76, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0xe2, 0xe3, 0x6e, 0x90, 0xf8, 0x92, 0x7a, 0x90, 0x10, 0x62, 0xdb, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xf9, 0x06, 0x49, 0x06, 0x84, 0x1b, 0x1c, 0x62, 0x20, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xa9, 0x12, 0xb6, 0x1b, 0x1e, 0xbc, 0x59, 0xc3, 0x8f, 0x30, 0x1b, 0x6a, 0x7e, 0x58, 0x1c, 0x9c, 0x10, 0x28, 0x36, 0x48, 0x0a, 0xb3, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0xf8, 0xb8, 0x6b, 0xf8, 0xc5, 0x65, 0xc3, 0x83, 0x37, 0x07, 0xe9, 0xae, 0x55, 0x07, 0x27, 0x04, 0x8a, 0x36, 0x7c, 0x62, 0xb3, 0x41, 0x72, 0xa9, 0xed, 0x41, 0x12, 0xf8, 0xea, 0x86, 0x4f, 0x6c, 0x36, 0x48, 0xb3, 0x60, 0xdd, 0xf0, 0x89, 0xcd, 0x06, 0x49, 0x00, 0xb7, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0x17, 0xcd, 0x86, 0x1f, 0x6a, 0x36, 0x7c, 0x90, 0xb3, 0x41, 0x02, 0xd0, 0xee, 0x1a, 0x2e, 0xa9, 0x0d, 0x0e, 0xfb, 0x1d, 0x1b, 0x14, 0xba, 0xe7, 0x6b, 0x90, 0x1c, 0xa8, 0xba, 0x41, 0xd1, 0x69, 0xbc, 0x41, 0xb1, 0xad, 0xbc, 0xc1, 0x61, 0x81, 0xed, 0x20, 0x59, 0xf0, 0xb6, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0xd0, 0x73, 0xb0, 0x0d, 0x9f, 0xbb, 0x0c, 0xce, 0x6e, 0x90, 0x64, 0x40, 0xb8, 0xc1, 0x21, 0x06, 0x62, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x2a, 0x61, 0xbb, 0xe1, 0xc1, 0x9b, 0x0d, 0x02, 0x96, 0xf5, 0xf0, 0xd0, 0xcf, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x55, 0xc2, 0x76, 0xc3, 0x83, 0x37, 0x1b, 0x9c, 0x56, 0xe1, 0x0e, 0x0f, 0xfd, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x52, 0x25, 0x6c, 0x37, 0x3c, 0x78, 0xb3, 0x86, 0x1f, 0x61, 0x36, 0xd4, 0xfc, 0x30, 0x3b, 0x3c, 0xf4, 0xd3, 0x86, 0x4f, 0x6c, 0x36, 0x48, 0x46, 0xc1, 0xdd, 0xf0, 0x89, 0xcd, 0x06, 0xc9, 0x60, 0xb8, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0xa0, 0xe7, 0x62, 0x1b, 0x3e, 0x77, 0x19, 0xfc, 0xdd, 0x20, 0xc9, 0x80, 0x70, 0x83, 0x43, 0x0c, 0xc4, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x55, 0xc2, 0x76, 0xc3, 0x83, 0x37, 0x1b, 0x1c, 0x97, 0x67, 0x0e, 0xca, 0x6c, 0xe9, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xaa, 0x84, 0xed, 0x86, 0x07, 0x6f, 0x36, 0x48, 0x67, 0xb6, 0x3b, 0x28, 0xb3, 0xa5, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xa9, 0x12, 0xb6, 0x1b, 0x1e, 0xbc, 0x59, 0xc3, 0x8f, 0x30, 0x1b, 0x6a, 0x7e, 0x58, 0x1e, 0x94, 0xd9, 0xd2, 0x1d, 0x24, 0x75, 0xe3, 0xae, 0x06, 0xe9, 0xb2, 0x3b, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xe9, 0xb2, 0x3b, 0x0d, 0xe0, 0x35, 0x17, 0xc6, 0x46, 0x57, 0x46, 0x06, 0x82, 0x16, 0x36, 0x87, 0xb6, 0xe1, 0xf1, 0x91, 0x0d, 0xd2, 0x65, 0x77, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0x4a, 0xf5, 0xeb, 0x06, 0x05, 0x69, 0xec, 0x06, 0x65, 0x61, 0xf1, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xc8, 0x32, 0xdd, 0x20, 0xf5, 0x34, 0x76, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x14, 0xff, 0x6e, 0x50, 0x54, 0x8a, 0x6f, 0x90, 0x24, 0xf9, 0x5a, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0x79, 0x32, 0x76, 0x83, 0xc2, 0xcb, 0x78, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0x88, 0x81, 0xd8, 0x20, 0x49, 0xf2, 0xf5, 0x20, 0xd1, 0x43, 0xb7, 0xc3, 0x29, 0xd6, 0x1a, 0x24, 0x55, 0xef, 0x6c, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x24, 0x55, 0xef, 0xb4, 0x41, 0xd2, 0xa7, 0x6c, 0x1b, 0x1e, 0x1f, 0xd9, 0x20, 0xa9, 0x7a, 0x67, 0xc3, 0x2f, 0x4a, 0x1b, 0xa4, 0x98, 0xa1, 0x6e, 0xf8, 0x8b, 0x66, 0xc3, 0x0f, 0x35, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0x79, 0x32, 0xf6, 0x20, 0xc1, 0x3c, 0x77, 0x16, 0xf8, 0xb7, 0x73, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0x32, 0xf8, 0xb7, 0xb3, 0x01, 0xfc, 0xe7, 0xd0, 0xc2, 0xf0, 0x5a, 0xe0, 0xde, 0xee, 0xca, 0xe4, 0xca, 0xc8, 0x40, 0xe4, 0xdc, 0xce, 0x36, 0x3c, 0x3e, 0x32, 0xf0, 0x6f, 0xe7, 0x06, 0x65, 0x19, 0xf6, 0x86, 0x2f, 0x97, 0x66, 0x99, 0x05, 0x7c, 0xb9, 0xb0, 0xbb, 0x79, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x20, 0xb1, 0xba, 0xb7, 0x01, 0xbc, 0xe4, 0xc2, 0xdc, 0xc8, 0xde, 0xda, 0x40, 0xc4, 0xd2, 0xe8, 0xe6, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x7e, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x87, 0xe7, 0x99, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x97, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x7a, 0x00, 0xe7, 0xe1, 0x2d, 0xb4, 0x0d, 0xbf, 0xb8, 0x6c, 0x70, 0xfc, 0xe4, 0x5b, 0xc3, 0x25, 0xb5, 0x86, 0xe4, 0xd2, 0xe1, 0x14, 0x5b, 0xc3, 0x83, 0x3b, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0x45, 0xf1, 0x75, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0xee, 0x20, 0x39, 0x82, 0x67, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0x88, 0x81, 0xd8, 0xf0, 0xb4, 0xce, 0xc1, 0xa1, 0xaf, 0xaf, 0x5a, 0x01, 0x4f, 0x2e, 0x8c, 0xdc, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x48, 0xf2, 0xf2, 0x6d, 0x00, 0x6f, 0xb9, 0x30, 0x37, 0xb2, 0xb7, 0x36, 0x90, 0x34, 0x37, 0x10, 0xb9, 0x30, 0xb7, 0xb3, 0xb2, 0x0d, 0xbf, 0x28, 0x6d, 0x78, 0x9e, 0x69, 0xc3, 0x5f, 0x34, 0x1b, 0x7e, 0xa8, 0xd9, 0xf0, 0x96, 0xdd, 0x1a, 0x9e, 0xb8, 0xdb, 0xf0, 0x2c, 0xde, 0x41, 0x72, 0x13, 0xcf, 0x86, 0x77, 0xf3, 0x36, 0xbc, 0xa6, 0xb7, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xf8, 0xb8, 0xe1, 0xdd, 0x9e, 0x0d, 0xd2, 0x03, 0x38, 0x37, 0x38, 0x0e, 0xa1, 0xb4, 0xe1, 0x83, 0x9c, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x8b, 0xb3, 0x0d, 0x4f, 0xef, 0x1c, 0xde, 0x42, 0xdb, 0xf0, 0xf4, 0xce, 0xc1, 0x39, 0x41, 0xf2, 0x70, 0x8a, 0x2d, 0xe0, 0xcb, 0x85, 0x91, 0xcd, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xe9, 0xd5, 0xbe, 0x0d, 0xc0, 0x8b, 0x5c, 0x98, 0x1b, 0xd9, 0x5b, 0x1b, 0xc8, 0xd8, 0x9b, 0x1b, 0x5d, 0x9a, 0x5b, 0x5d, 0x18, 0x5d, 0xda, 0x9b, 0xdb, 0x86, 0x5f, 0x94, 0x36, 0x3c, 0xcf, 0xb4, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xb8, 0xbc, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x92, 0x97, 0x6f, 0x87, 0xb7, 0xd0, 0x0e, 0x12, 0x4e, 0x7c, 0x57, 0x83, 0x14, 0xd9, 0x9e, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x14, 0xd9, 0x9e, 0x0e, 0x12, 0xd4, 0x7b, 0x37, 0x3c, 0x3e, 0xb2, 0x41, 0x8a, 0x6c, 0xcf, 0x86, 0x5f, 0x94, 0x36, 0x3c, 0xcf, 0xb4, 0xe1, 0x2f, 0x9a, 0x0d, 0x3f, 0xd4, 0x6c, 0x50, 0x74, 0x1a, 0x6f, 0x50, 0x16, 0x47, 0x6f, 0x78, 0xf0, 0x66, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xf0, 0x71, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0x28, 0xbe, 0xae, 0xe1, 0x8d, 0xbb, 0x0d, 0x2f, 0xdf, 0x1d, 0x24, 0xa8, 0xf3, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x0e, 0x31, 0x10, 0x07, 0xa5, 0xd3, 0x73, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0x17, 0xcd, 0x06, 0xe9, 0x01, 0x98, 0x1b, 0x3e, 0xc8, 0xd9, 0xf0, 0x9a, 0xde, 0x06, 0x05, 0x45, 0xe6, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xe4, 0x86, 0x77, 0x7b, 0x36, 0x48, 0x51, 0x7c, 0x5d, 0xc3, 0x1b, 0x77, 0x1b, 0x5e, 0xbe, 0x3b, 0x48, 0x11, 0xe9, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x1c, 0x62, 0x20, 0x36, 0xbc, 0x17, 0xb4, 0x86, 0x77, 0x7b, 0x36, 0x38, 0xc4, 0x40, 0x1c, 0x14, 0xbe, 0xba, 0xb5, 0xe1, 0x83, 0x9c, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x8b, 0xb3, 0x0d, 0xef, 0x05, 0xad, 0xe1, 0x47, 0x98, 0x0d, 0x35, 0x3f, 0x18, 0x80, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0x7e, 0x71, 0xd9, 0xf0, 0x5e, 0xd0, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xc8, 0xc4, 0x5d, 0xc3, 0x2f, 0x2e, 0x07, 0xe7, 0x16, 0x87, 0x83, 0x52, 0x5d, 0xb6, 0x83, 0xb2, 0xce, 0x73, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x54, 0xec, 0xdf, 0x83, 0x52, 0x5d, 0x76, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0xff, 0xf0, 0x1c, 0x94, 0xeb, 0xb2, 0x6b, 0xf8, 0x3c, 0x68, 0xc3, 0xbb, 0x3d, 0x1b, 0x3e, 0x05, 0x3c, 0x48, 0xa8, 0xfe, 0xad, 0xc3, 0x29, 0xd6, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x1d, 0x4e, 0xb1, 0x35, 0x38, 0xda, 0x7c, 0x2e, 0x03, 0xf0, 0x3a, 0x73, 0xa6, 0x03, 0xd2, 0xf6, 0xc6, 0x46, 0x36, 0x07, 0x12, 0xe6, 0x46, 0x06, 0xd2, 0xf6, 0xc6, 0x46, 0x06, 0x22, 0x56, 0x97, 0xc6, 0x46, 0x56, 0x26, 0x37, 0xb7, 0x80, 0x8f, 0x16, 0x96, 0x26, 0x6f, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xa4, 0x70, 0x01, 0x6f, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x09, 0x17, 0x26, 0x37, 0x97, 0xe6, 0x76, 0x06, 0x42, 0x27, 0x17, 0x36, 0x56, 0xb6, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0x38, 0x7c, 0x50, 0x66, 0xe9, 0xae, 0xe1, 0xcf, 0xa5, 0xc1, 0xe3, 0x83, 0x32, 0x4b, 0xb7, 0x15, 0xf0, 0xcb, 0xc8, 0xce, 0xca, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0xe4, 0x4c, 0xe0, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x7c, 0xe1, 0xc2, 0xe4, 0xe6, 0xd2, 0xdc, 0xce, 0x40, 0xde, 0xea, 0xe8, 0xe0, 0xea, 0xe8, 0x36, 0x7c, 0xae, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x87, 0x37, 0xfc, 0x3b, 0xbf, 0x06, 0x29, 0x5c, 0xc0, 0xb5, 0x86, 0x3f, 0x97, 0x06, 0x8f, 0x37, 0x08, 0xfd, 0x92, 0x0d, 0xca, 0x26, 0xcc, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0x09, 0x0c, 0x63, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x6f, 0xf8, 0x77, 0x7e, 0x01, 0xdf, 0x2d, 0x2c, 0x8d, 0xad, 0x6a, 0x05, 0xfc, 0x39, 0xb8, 0x37, 0x7a, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0x20, 0x11, 0x1f, 0x78, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x4f, 0xb9, 0x30, 0xb7, 0xb3, 0x32, 0x90, 0x34, 0x37, 0x10, 0xb3, 0x34, 0xb6, 0xb2, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xe1, 0x83, 0x33, 0x12, 0xea, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0xde, 0xf0, 0xef, 0xfc, 0x02, 0x3e, 0x5c, 0x9a, 0x1b, 0x5d, 0xad, 0x80, 0x3f, 0xf6, 0x96, 0xe6, 0x6e, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xa4, 0xf0, 0x04, 0x6f, 0x10, 0x6a, 0x88, 0x6b, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x07, 0x27, 0x97, 0xe6, 0x46, 0x07, 0x62, 0xf6, 0x26, 0xd7, 0x16, 0x46, 0xb7, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0x71, 0xb7, 0xe1, 0xe5, 0xbb, 0xd6, 0xf0, 0xc6, 0xdd, 0xc1, 0x49, 0x6c, 0xf5, 0xa0, 0x70, 0x92, 0xdd, 0x20, 0x68, 0x7f, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0x32, 0xe0, 0x07, 0xa9, 0x6c, 0xc1, 0x6b, 0xf8, 0x73, 0x69, 0x70, 0x78, 0xc3, 0xbf, 0xf3, 0x0b, 0xf8, 0x64, 0x69, 0x6d, 0x65, 0xb5, 0x86, 0xcf, 0x95, 0xd6, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0x0a, 0x9d, 0xcf, 0x06, 0x27, 0x30, 0x8c, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x48, 0xa7, 0xf4, 0x59, 0xc3, 0x9f, 0x4b, 0x83, 0xc3, 0x1b, 0x84, 0x7e, 0xc9, 0x06, 0x21, 0x65, 0xb2, 0x86, 0x7f, 0xe7, 0xd7, 0x20, 0x85, 0x27, 0xb8, 0xaa, 0xc3, 0x29, 0xd6, 0x02, 0x3e, 0xdd, 0xdb, 0x9b, 0xbb, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0x90, 0x46, 0x1d, 0xbc, 0x41, 0xd0, 0xfe, 0xac, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0xc0, 0x3b, 0x57, 0x37, 0x36, 0x56, 0x36, 0x37, 0xb7, 0xe1, 0x73, 0xa5, 0x0d, 0x42, 0x3a, 0xf5, 0x20, 0xfd, 0x34, 0x78, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x1e, 0x31, 0xb6, 0xb7, 0xb1, 0xb5, 0x0d, 0x9f, 0x2b, 0x6d, 0x10, 0x38, 0xaa, 0x07, 0xe9, 0xa7, 0xc1, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x35, 0x47, 0x17, 0x36, 0xb6, 0x06, 0x42, 0x27, 0x17, 0x36, 0x56, 0xb6, 0xe1, 0x73, 0xa5, 0x0d, 0x82, 0xd8, 0x74, 0x0d, 0x7f, 0x2e, 0x0d, 0x0e, 0x1f, 0x9c, 0xea, 0x45, 0x6b, 0x16, 0xf0, 0xe5, 0xea, 0xd8, 0xca, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0xe4, 0x21, 0xe1, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xfc, 0xe0, 0xc2, 0xe4, 0xe6, 0xd2, 0xdc, 0xce, 0x40, 0xe4, 0xea, 0xd8, 0xca, 0x36, 0x08, 0xa0, 0xb3, 0x0d, 0xdf, 0xb5, 0xac, 0xe1, 0x41, 0xc9, 0x0d, 0x02, 0x90, 0x6d, 0xc3, 0xdb, 0x3a, 0x07, 0x09, 0xf1, 0xc0, 0x1b, 0x1e, 0x94, 0xdc, 0x20, 0x00, 0xd9, 0x36, 0xbc, 0xad, 0xb3, 0x41, 0x72, 0x26, 0x70, 0xab, 0x41, 0x5a, 0x4d, 0xf0, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0x41, 0x5a, 0x4d, 0xf0, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x3c, 0xb0, 0xa5, 0xb9, 0x95, 0xad, 0x8c, 0xbd, 0xb1, 0xd5, 0xb5, 0xb9, 0x81, 0xc8, 0x85, 0xb9, 0x9d, 0x95, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x0e, 0x1f, 0x7e, 0x9d, 0x5b, 0xc3, 0x9f, 0x4b, 0x83, 0xc7, 0x87, 0x5f, 0xe7, 0x3a, 0x9c, 0x62, 0xad, 0x41, 0x52, 0x3c, 0xf0, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0x41, 0x52, 0x3c, 0xf0, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x9e, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x1b, 0x3e, 0x57, 0xda, 0x20, 0x9d, 0x18, 0x78, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x1f, 0x9c, 0xf4, 0x44, 0x5b, 0x0d, 0xff, 0xce, 0x6f, 0x50, 0x28, 0x77, 0xae, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xdf, 0x59, 0x99, 0x5b, 0x99, 0x5c, 0xda, 0x18, 0x48, 0x19, 0xd9, 0x59, 0xd9, 0xc1, 0x99, 0xa2, 0x6c, 0xc3, 0x77, 0x2d, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0x71, 0xc3, 0x5f, 0x34, 0x1b, 0x84, 0xe9, 0xd8, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0x39, 0x48, 0x6f, 0x06, 0xee, 0xa0, 0xac, 0xf3, 0xdc, 0xa0, 0x30, 0x54, 0x5d, 0xc3, 0xe7, 0x2e, 0x83, 0xc3, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0x05, 0x68, 0x78, 0x83, 0x12, 0x8e, 0xb6, 0x0d, 0x9f, 0xbb, 0x0c, 0x1e, 0x6f, 0x50, 0x10, 0xcc, 0x6e, 0x50, 0xbc, 0xd3, 0x6e, 0x50, 0x50, 0x64, 0x6e, 0x50, 0x18, 0xaa, 0x6e, 0x50, 0x50, 0x64, 0x6e, 0xf8, 0xdc, 0x65, 0xf0, 0x7a, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0x78, 0xc3, 0xbb, 0x3d, 0x1b, 0x9e, 0xd6, 0x59, 0xc3, 0x25, 0xb5, 0x86, 0x54, 0xcd, 0xe1, 0xf3, 0xa0, 0x5a, 0xc3, 0xe7, 0x2e, 0x83, 0xc7, 0x1b, 0x7e, 0x71, 0xd9, 0x20, 0xf9, 0x69, 0x78, 0x0d, 0x9f, 0xbb, 0x0c, 0x1e, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x1c, 0x1c, 0x03, 0x45, 0x0f, 0x0e, 0x65, 0x7c, 0x35, 0x0b, 0xf8, 0x77, 0x6f, 0x6e, 0xeb, 0x06, 0x85, 0x72, 0xe7, 0x1a, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xf0, 0x00, 0x27, 0xf7, 0x46, 0x56, 0x37, 0x46, 0x07, 0x62, 0x26, 0xf7, 0xd6, 0x06, 0x52, 0x46, 0x76, 0x56, 0xb6, 0xe1, 0xcf, 0xa5, 0x01, 0xcf, 0xae, 0x2c, 0xde, 0x20, 0x80, 0xce, 0x0e, 0x52, 0xfe, 0x84, 0x37, 0x28, 0xe1, 0x31, 0x17, 0x3c, 0xde, 0x20, 0x89, 0x7c, 0xb8, 0x0d, 0xc2, 0x53, 0x75, 0xc3, 0xdb, 0x3a, 0x83, 0xc3, 0x83, 0xd7, 0x07, 0x89, 0xf4, 0xc3, 0x87, 0x53, 0x6c, 0x0d, 0x52, 0x27, 0x83, 0x37, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x52, 0x27, 0x83, 0x37, 0x7c, 0xae, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x87, 0x0f, 0x8e, 0xda, 0xa0, 0x87, 0x67, 0xea, 0x56, 0xc0, 0xa7, 0x7b, 0x73, 0x2b, 0x37, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x12, 0x5a, 0x88, 0x37, 0x08, 0xda, 0x9f, 0x35, 0x3c, 0xf1, 0xbe, 0x41, 0x12, 0x7b, 0xf0, 0x86, 0xcf, 0x95, 0x36, 0x08, 0xe9, 0xd4, 0x35, 0xfc, 0xb9, 0xb4, 0x41, 0x78, 0xa4, 0x1d, 0x84, 0xe9, 0x58, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x37, 0x97, 0xe6, 0x76, 0xc6, 0x56, 0x06, 0x22, 0xc6, 0xf6, 0x36, 0xb6, 0xb6, 0xe1, 0x73, 0xa5, 0x0d, 0x02, 0x47, 0x75, 0x0d, 0x7f, 0x2e, 0x6d, 0x90, 0xb4, 0x20, 0x7c, 0x10, 0xa6, 0x63, 0xad, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x5f, 0x99, 0x9c, 0xdc, 0x9b, 0x1c, 0x88, 0x5c, 0x19, 0xdc, 0x9b, 0x1c, 0xdd, 0x86, 0xcf, 0x95, 0x36, 0x08, 0x62, 0xd3, 0x35, 0xfc, 0xb9, 0x34, 0xc0, 0x43, 0x27, 0x17, 0x36, 0x56, 0x6e, 0x10, 0xfa, 0x25, 0x1b, 0x84, 0x94, 0xc9, 0x1a, 0x3e, 0x57, 0xda, 0xe0, 0xa8, 0x0d, 0x7a, 0x70, 0x88, 0xe9, 0xa8, 0x0e, 0xa7, 0x58, 0x2b, 0x00, 0x6f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x2d, 0x61, 0x6e, 0x64, 0x2d, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x72, 0x2d, 0x69, 0x6e, 0x74, 0xf3, 0x32, 0x00, 0xaf, 0x33, 0x61, 0x3a, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x72, 0x20, 0x69, 0x6e, 0x74, 0x73, 0x0b, 0xfc, 0x5c, 0xba, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x1b, 0x94, 0x04, 0xee, 0x03, 0xf8, 0xce, 0xa5, 0x9d, 0xb9, 0x95, 0x91, 0x81, 0xa4, 0xb9, 0xd1, 0x95, 0x9d, 0x95, 0xc9, 0x0d, 0xf8, 0x6b, 0x74, 0x77, 0xf4, 0x06, 0x25, 0x0b, 0xfb, 0x2c, 0xb3, 0x06, 0xe5, 0x24, 0xf6, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xe0, 0x0f, 0x23, 0x23, 0x4b, 0xa3, 0x4b, 0x7b, 0x73, 0xdb, 0xf0, 0xb9, 0xd2, 0x06, 0xa9, 0xc0, 0x49, 0x07, 0xe9, 0xd4, 0x5b, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0xdc, 0x65, 0xf0, 0x71, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0x14, 0xc5, 0x1d, 0x1e, 0xfa, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0x93, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0xa5, 0x28, 0xee, 0xf0, 0x16, 0x5a, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0x25, 0xb5, 0xc6, 0xa1, 0xc3, 0x3f, 0x3c, 0xad, 0xe1, 0x83, 0x9c, 0x0d, 0x4e, 0x3a, 0x59, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xb4, 0x08, 0xb9, 0x0d, 0x8a, 0x9c, 0xd6, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x4f, 0xa0, 0x0d, 0x4e, 0xf4, 0x8f, 0x1b, 0x1c, 0xf6, 0xb1, 0x6a, 0xc3, 0x07, 0x39, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x34, 0x6c, 0xa5, 0x83, 0x04, 0xcb, 0xe2, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x5a, 0x84, 0xdc, 0x06, 0x45, 0x4e, 0xeb, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0x29, 0xe0, 0x41, 0x82, 0x65, 0x71, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0x2d, 0x42, 0x6e, 0x83, 0x02, 0x36, 0x7f, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x14, 0x70, 0x83, 0xc3, 0x3e, 0xd6, 0x06, 0x27, 0xfa, 0xc7, 0xda, 0xf0, 0x41, 0xce, 0x06, 0x27, 0x9d, 0xac, 0x35, 0x7c, 0x90, 0xb3, 0x41, 0x9a, 0x68, 0xf1, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x2d, 0x42, 0x6e, 0x83, 0x02, 0x36, 0xff, 0x20, 0x3d, 0xb7, 0x78, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0x45, 0xc8, 0x6d, 0x50, 0xe4, 0xb4, 0x1e, 0x24, 0x43, 0x17, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0xb4, 0x08, 0xb9, 0x0d, 0x0a, 0xd8, 0xfc, 0x83, 0x84, 0xc7, 0xe2, 0xd5, 0x20, 0x85, 0xf8, 0x68, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x80, 0x1f, 0xa8, 0x0e, 0x84, 0xee, 0x0d, 0x04, 0x68, 0x6e, 0xc3, 0x2f, 0x4a, 0x1b, 0x9c, 0x6f, 0x4e, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0xf0, 0xd4, 0x1e, 0x24, 0x5c, 0xf1, 0x1e, 0x4e, 0xb1, 0x05, 0x3c, 0xb2, 0x3a, 0x76, 0xc3, 0x2f, 0x4a, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xf0, 0xb6, 0xbd, 0x91, 0xd5, 0xb1, 0xd5, 0xcd, 0x6d, 0xf8, 0x5c, 0x69, 0x83, 0x54, 0xe0, 0xa4, 0xc3, 0xeb, 0x4c, 0x1b, 0x3e, 0xb1, 0xd9, 0x20, 0xcd, 0xa9, 0x78, 0xc3, 0x07, 0x39, 0x1b, 0x24, 0xcb, 0x15, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0xc2, 0xee, 0x76, 0x83, 0x13, 0xfd, 0xe3, 0xe1, 0x2d, 0xb4, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x14, 0x70, 0xc3, 0x7b, 0x41, 0x07, 0xe9, 0xdb, 0xc5, 0xb3, 0x80, 0x07, 0x27, 0xf7, 0x6e, 0xf8, 0x45, 0x69, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x7c, 0xdb, 0xea, 0xd8, 0xe8, 0xd2, 0xe0, 0xd8, 0xd2, 0xc6, 0xc2, 0xe8, 0xd2, 0xde, 0xdc, 0x0e, 0x12, 0x77, 0x8a, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x5a, 0x84, 0xdc, 0x1a, 0xfe, 0xcd, 0xd9, 0xf0, 0xe0, 0xcd, 0x86, 0x77, 0x7b, 0x36, 0x38, 0xc4, 0x40, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x12, 0x6d, 0xa2, 0x0e, 0x0f, 0xfd, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x12, 0x6d, 0xa2, 0x0e, 0x6f, 0xa1, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x08, 0x9e, 0xda, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x32, 0x9b, 0xd3, 0xe1, 0xa1, 0x9f, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x32, 0x9b, 0xd3, 0xe1, 0x2d, 0xb4, 0x5a, 0x0d, 0x52, 0x74, 0xa2, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x98, 0x4b, 0x3b, 0x73, 0x03, 0xa1, 0x2b, 0x9b, 0xa3, 0xdb, 0xf0, 0x8b, 0xd2, 0x06, 0xa9, 0xc0, 0x49, 0x07, 0xe7, 0xd6, 0x87, 0xd5, 0x20, 0x19, 0x29, 0x6e, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xbf, 0xad, 0xb9, 0xb4, 0x33, 0x37, 0x10, 0xbb, 0x30, 0xb6, 0xba, 0xb2, 0xae, 0x0d, 0xbf, 0x28, 0x6d, 0x90, 0x0a, 0x9c, 0xb4, 0xe1, 0x17, 0x97, 0x0d, 0x52, 0xa7, 0x8d, 0x37, 0x48, 0x8a, 0x37, 0x6e, 0x05, 0x3c, 0xb9, 0xb2, 0x76, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x0f, 0xb9, 0xb2, 0xb6, 0xb0, 0x34, 0x37, 0xb2, 0x32, 0xb9, 0x0d, 0xbf, 0x28, 0x6d, 0x90, 0xb8, 0x53, 0xbc, 0xe1, 0xdd, 0x9e, 0x0d, 0xd2, 0xd1, 0xa1, 0x36, 0x3c, 0xad, 0xb3, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x29, 0x9a, 0xc6, 0x6d, 0x78, 0x2f, 0x68, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x6e, 0x46, 0x76, 0xf8, 0xfd, 0xac, 0x0e, 0xa7, 0xd8, 0x1a, 0xa4, 0xc1, 0x39, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x1c, 0xa4, 0x91, 0xba, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0x54, 0xe0, 0xa4, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x13, 0x68, 0x83, 0xb3, 0xa2, 0xc3, 0x06, 0xc7, 0x00, 0x87, 0x0e, 0xa7, 0xd8, 0x1a, 0x24, 0x54, 0xc8, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xf8, 0xd8, 0x9a, 0x4b, 0x3b, 0x73, 0x03, 0xb1, 0x0b, 0x63, 0xab, 0x2b, 0xeb, 0x02, 0xa1, 0x7b, 0x03, 0x01, 0x9a, 0xdb, 0xf0, 0xb9, 0xd2, 0x06, 0x07, 0x20, 0x95, 0xc3, 0xeb, 0x4c, 0x1b, 0xbe, 0x7e, 0x59, 0xc3, 0x8f, 0x30, 0x07, 0xe7, 0x76, 0xbe, 0x0d, 0x5f, 0xbf, 0x6c, 0xf8, 0x10, 0x66, 0xc3, 0x07, 0x39, 0x1b, 0x9e, 0xd6, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x04, 0x4f, 0xed, 0xc1, 0xe9, 0x7c, 0x64, 0xc3, 0x07, 0x39, 0x1b, 0x5e, 0xd3, 0xdb, 0xf0, 0xe0, 0xcd, 0x86, 0x8f, 0xa3, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0xf0, 0xd4, 0x6e, 0x10, 0xb0, 0xac, 0x1b, 0xfe, 0x90, 0x6d, 0x35, 0x28, 0x73, 0x02, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x5e, 0x73, 0x75, 0x62, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x07, 0x89, 0x3b, 0xc5, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0xb0, 0x0d, 0xb7, 0xe1, 0x69, 0x9d, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x5a, 0x84, 0xdc, 0x1a, 0xde, 0x66, 0x3d, 0x48, 0xf5, 0x36, 0x3e, 0x48, 0xe0, 0x37, 0xee, 0x70, 0x8a, 0xb5, 0x06, 0x89, 0x6a, 0x64, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0xe6, 0x20, 0x8d, 0x0f, 0xea, 0x20, 0x71, 0xa7, 0x78, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0x45, 0xc8, 0x6d, 0x90, 0x52, 0x6c, 0xbc, 0x86, 0x77, 0x7b, 0x36, 0x08, 0x05, 0xd6, 0x83, 0x84, 0x78, 0xe3, 0x66, 0x0d, 0x92, 0x55, 0x9c, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xef, 0xd8, 0x5b, 0x1b, 0x5c, 0x98, 0x5c, 0xd9, 0x41, 0xe2, 0x4e, 0xf1, 0x86, 0xbf, 0x68, 0x36, 0x38, 0x9e, 0x9c, 0x6c, 0xf8, 0x20, 0x67, 0xc3, 0x5f, 0x65, 0x1b, 0x24, 0xf0, 0x38, 0x6d, 0xf8, 0x20, 0x67, 0x83, 0xd4, 0x69, 0xe3, 0x35, 0x7c, 0x90, 0xb3, 0x41, 0xaa, 0xb7, 0xf1, 0x1a, 0x3e, 0xc8, 0xd9, 0xf0, 0x70, 0xe2, 0x06, 0xa9, 0xa8, 0x52, 0x07, 0x29, 0x43, 0x4e, 0x07, 0xa9, 0xa8, 0x52, 0x1b, 0x3e, 0xc8, 0xd9, 0x20, 0xd5, 0xdb, 0x78, 0x83, 0x94, 0x21, 0xa7, 0x0d, 0x1f, 0xe4, 0x6c, 0x78, 0x38, 0x71, 0x83, 0x94, 0x21, 0xa7, 0x83, 0x54, 0x54, 0xa9, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x56, 0xc0, 0x2f, 0x3b, 0x1b, 0x23, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x12, 0x32, 0x92, 0x1b, 0xc0, 0x7b, 0x6e, 0x0c, 0xcd, 0xad, 0x2c, 0xad, 0x4c, 0xee, 0x64, 0x0e, 0xa4, 0xec, 0x6c, 0x8c, 0x6c, 0xc3, 0x2f, 0x4a, 0x1b, 0xfe, 0x56, 0xda, 0xf0, 0x89, 0xcd, 0x06, 0xa5, 0x90, 0xfa, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0x3e, 0x77, 0x19, 0x7c, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0x89, 0xfd, 0x47, 0x87, 0x87, 0x7e, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xe4, 0x86, 0x77, 0x7b, 0x36, 0x48, 0xec, 0x3f, 0x3a, 0xbc, 0x85, 0xd6, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0x3e, 0x77, 0x19, 0xbc, 0xde, 0xf0, 0x8b, 0xcb, 0x1a, 0x3e, 0x77, 0x19, 0x7c, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0x89, 0xfd, 0x47, 0x07, 0x05, 0xf1, 0xf8, 0x1a, 0x3e, 0x77, 0x19, 0x9c, 0x3c, 0x48, 0xe0, 0x71, 0x6a, 0x0d, 0x9f, 0xbb, 0x0c, 0x6e, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0x9f, 0xbb, 0x0c, 0x3e, 0x1e, 0x24, 0xf0, 0x38, 0xad, 0xe1, 0x73, 0x97, 0xc1, 0xc9, 0x83, 0x44, 0xc5, 0xe4, 0xda, 0xf0, 0x15, 0xce, 0x86, 0xbf, 0x68, 0xd6, 0xf0, 0xb9, 0xd2, 0x06, 0xc5, 0x3f, 0xf0, 0x1a, 0xfe, 0x5c, 0x1a, 0xbc, 0x3e, 0x38, 0x9e, 0x9c, 0x6c, 0x90, 0xdc, 0xc2, 0xd4, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x06, 0x09, 0x3c, 0x4e, 0x87, 0xa7, 0x77, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x99, 0xcd, 0xe9, 0xa0, 0x54, 0x97, 0x5d, 0xc3, 0xdb, 0x3a, 0x83, 0x93, 0x07, 0x41, 0x80, 0xb6, 0x86, 0xb7, 0x75, 0x06, 0x27, 0x0f, 0x0e, 0xad, 0x2d, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x1e, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0x74, 0x33, 0xb2, 0x83, 0x02, 0xf4, 0x79, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0xc3, 0x3f, 0x3c, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0x1d, 0x1d, 0x6a, 0x83, 0x72, 0x5d, 0x76, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x58, 0x78, 0xbc, 0xc1, 0xe9, 0x48, 0xe4, 0xf0, 0x8b, 0x50, 0x1b, 0x24, 0x92, 0xbc, 0xae, 0x41, 0x10, 0xa0, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x8e, 0x0e, 0xb5, 0x41, 0xb2, 0x7d, 0xf2, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0xb1, 0xf0, 0x78, 0x83, 0xd3, 0x91, 0xc8, 0x1a, 0xde, 0xd6, 0x19, 0x7c, 0x3c, 0x08, 0x02, 0xb4, 0x3a, 0x48, 0x2f, 0x53, 0x5e, 0x83, 0x43, 0x6b, 0xcb, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xe9, 0xe8, 0x50, 0x1b, 0xa4, 0xff, 0x27, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0x12, 0x0b, 0x8f, 0x37, 0x38, 0x1d, 0x89, 0xac, 0xe1, 0x6d, 0x9d, 0xc1, 0xc7, 0x83, 0x43, 0x6b, 0x4b, 0x1d, 0xa4, 0x4d, 0x2a, 0xb7, 0x02, 0x6f, 0xf6, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x06, 0x6f, 0xf6, 0x36, 0x80, 0x5f, 0xdb, 0x1b, 0x59, 0x1d, 0xdb, 0x1b, 0x08, 0x9c, 0x5c, 0x5a, 0x5b, 0xd9, 0x06, 0x49, 0x0b, 0x46, 0x1b, 0x94, 0x65, 0xd8, 0x1b, 0xbe, 0x5c, 0x9a, 0x65, 0xd6, 0xa0, 0x9c, 0xc4, 0x3e, 0x28, 0xf3, 0xb1, 0x67, 0x0d, 0x52, 0x34, 0x8d, 0x37, 0xfc, 0xa2, 0xb4, 0x41, 0x81, 0x90, 0xbd, 0xe1, 0xdd, 0x9e, 0x0d, 0x8a, 0x99, 0xec, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xf0, 0xd4, 0x1e, 0x9e, 0x0b, 0x6a, 0x35, 0x28, 0x83, 0xb2, 0x37, 0xfc, 0xa2, 0xb4, 0xe1, 0x79, 0xa6, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x76, 0xb7, 0x07, 0xa5, 0xd3, 0xf3, 0xac, 0x41, 0x5a, 0x4d, 0xd2, 0x86, 0x5f, 0x94, 0x36, 0x28, 0x10, 0xb2, 0x37, 0x7c, 0x90, 0xb3, 0xe1, 0x35, 0xbd, 0x0d, 0x8f, 0xc9, 0x6c, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x4e, 0x6e, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x1b, 0x9c, 0x30, 0x1c, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xbc, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0x89, 0x85, 0xc7, 0x1b, 0x94, 0xeb, 0xb2, 0x07, 0xa5, 0xba, 0xec, 0x86, 0x0f, 0x72, 0x36, 0x38, 0x0e, 0x3f, 0x6c, 0x50, 0x4e, 0x40, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0xc4, 0xc2, 0xe3, 0x0d, 0x4f, 0xef, 0x1c, 0x94, 0xd9, 0xd2, 0xab, 0x41, 0x71, 0xaa, 0xbd, 0xe1, 0x17, 0xa5, 0x0d, 0xcf, 0x33, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x3e, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0x0f, 0x4a, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0x12, 0x95, 0x8c, 0x3b, 0x28, 0x85, 0xd4, 0xd7, 0xf0, 0xa0, 0xe4, 0x06, 0x89, 0xa1, 0x57, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x24, 0x64, 0x24, 0x77, 0x50, 0x3a, 0x3d, 0x1f, 0x1e, 0xfa, 0x39, 0x3c, 0xbd, 0x33, 0x6b, 0x50, 0xe6, 0x04, 0x6c, 0xf8, 0x45, 0x69, 0x83, 0x02, 0x21, 0x7b, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0x33, 0xd9, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0xa7, 0x80, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x9f, 0x40, 0x87, 0xdf, 0xcf, 0x0e, 0x0a, 0x8d, 0xf0, 0x0e, 0xa7, 0x58, 0x6b, 0x90, 0xa8, 0x46, 0xb6, 0xe1, 0x17, 0xa5, 0x0d, 0x0a, 0x84, 0xec, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x58, 0x78, 0xbc, 0xe1, 0xbd, 0xa0, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xda, 0x44, 0xee, 0xe1, 0x17, 0xa1, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x75, 0x38, 0xc5, 0xda, 0x70, 0x22, 0x6c, 0x28, 0xa5, 0x6b, 0x38, 0x47, 0x56, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0xb0, 0x1b, 0xd6, 0xf7, 0x36, 0xc4, 0x70, 0xd8, 0x85, 0x5b, 0x0c, 0xe7, 0x0e, 0xd1, 0x5c, 0x83, 0xe4, 0x0e, 0xe6, 0x0d, 0x92, 0x3b, 0x98, 0x0f, 0x0a, 0x95, 0xb3, 0x61, 0x17, 0x76, 0x41, 0xb0, 0xc1, 0xc0, 0xc7, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xc8, 0xda, 0x0d, 0xbf, 0xf1, 0x7c, 0x0c, 0xf7, 0x8f, 0x43, 0x1b, 0x62, 0x38, 0xec, 0x82, 0x60, 0x83, 0x51, 0xc3, 0x35, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xb5, 0x3b, 0x48, 0x0d, 0x3b, 0x39, 0x0e, 0x6d, 0x88, 0xe1, 0xb0, 0x0b, 0xb7, 0x41, 0x12, 0x11, 0xc9, 0x21, 0x9a, 0x87, 0x74, 0xee, 0x1a, 0x24, 0x77, 0x30, 0x0f, 0x82, 0x05, 0xc9, 0x80, 0x42, 0xbd, 0xef, 0x90, 0xad, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x08, 0xce, 0x21, 0xb9, 0x34, 0x48, 0x06, 0x86, 0xea, 0x90, 0x9c, 0x5b, 0xf8, 0x8d, 0xe7, 0x63, 0xe8, 0x3b, 0x28, 0x51, 0xd0, 0x8e, 0x43, 0x07, 0x05, 0xc8, 0xd9, 0xf1, 0x78, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xc9, 0x40, 0x90, 0x0e, 0xd9, 0x8a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x43, 0xb1, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x71, 0xd8, 0x0d, 0x82, 0x8f, 0x79, 0x43, 0x0c, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x51, 0x72, 0x72, 0x90, 0xa2, 0xef, 0x31, 0x08, 0x16, 0x24, 0x43, 0x06, 0xd1, 0x82, 0x78, 0x10, 0x6c, 0x70, 0xa4, 0xd5, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x50, 0xa2, 0xe1, 0x1c, 0x04, 0x26, 0xf6, 0x71, 0xe8, 0x78, 0x3e, 0xec, 0x82, 0x60, 0x41, 0x32, 0x10, 0x94, 0x83, 0x61, 0xe8, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xaa, 0x19, 0x7e, 0xe3, 0xf9, 0x18, 0xfe, 0x1f, 0x87, 0x36, 0x18, 0x2a, 0x02, 0xc3, 0x2e, 0x08, 0x36, 0x48, 0xd8, 0x67, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0xd5, 0x0c, 0xbf, 0xf1, 0x7c, 0x0c, 0xee, 0xff, 0xe3, 0xd0, 0x0a, 0x82, 0x0d, 0xc6, 0x52, 0xee, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x8f, 0x41, 0x00, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x48, 0x8b, 0x79, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xf0, 0x43, 0x16, 0x7e, 0xe3, 0xf9, 0x38, 0x6c, 0xdc, 0x21, 0x55, 0x73, 0x1c, 0x3a, 0x0e, 0x2d, 0x08, 0x36, 0x18, 0x4b, 0xb9, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x7e, 0x90, 0xe6, 0xd6, 0x32, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x81, 0x67, 0x77, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x12, 0x90, 0xcc, 0x21, 0x55, 0x73, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x86, 0x5d, 0x10, 0x6c, 0x90, 0xb0, 0xcf, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xaa, 0x39, 0x48, 0x2f, 0x4f, 0x38, 0x0e, 0xad, 0x20, 0xd8, 0x60, 0x2c, 0xe5, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x18, 0x04, 0x78, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xb4, 0x98, 0x87, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x03, 0x3f, 0x64, 0xe1, 0x37, 0x9e, 0x8f, 0x83, 0x30, 0xe6, 0x90, 0xaa, 0x39, 0x0e, 0x1d, 0x87, 0x16, 0x04, 0x1b, 0x8c, 0xa5, 0xdc, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x49, 0x6e, 0xcd, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xa4, 0xc5, 0x3c, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xf8, 0x21, 0x0b, 0xbf, 0xf1, 0x7c, 0x1c, 0x36, 0xf6, 0x90, 0xaa, 0x39, 0x0e, 0x1d, 0x87, 0x0e, 0xd2, 0xc4, 0x9a, 0x17, 0x04, 0x1b, 0x8c, 0xa5, 0xdc, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x83, 0x80, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x90, 0x16, 0xf3, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xe0, 0x87, 0x2c, 0xfc, 0xc6, 0xf3, 0x71, 0x30, 0x89, 0x1e, 0x52, 0x35, 0xc7, 0xa1, 0xe3, 0xd0, 0x82, 0x60, 0x83, 0xb1, 0x94, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0xc9, 0xad, 0x79, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xb4, 0x98, 0x87, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x03, 0x3f, 0x64, 0xe1, 0x37, 0x9e, 0x8f, 0x83, 0x30, 0xf6, 0x90, 0xaa, 0x39, 0x0e, 0x1d, 0x87, 0x0e, 0x92, 0xb4, 0x9b, 0x8f, 0x6f, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0xd8, 0xa0, 0xa0, 0x16, 0x5b, 0x1c, 0x76, 0x83, 0xe2, 0xe2, 0x70, 0xc3, 0xb8, 0x6c, 0x30, 0x34, 0xbb, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0x60, 0x38, 0x08, 0x36, 0x18, 0x7f, 0x37, 0x07, 0xc9, 0x86, 0x06, 0xc7, 0xe3, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x64, 0x83, 0x41, 0xf2, 0x72, 0xc8, 0x56, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xa4, 0x6a, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0xd8, 0x85, 0x5d, 0x10, 0x6c, 0x70, 0xee, 0xf0, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0xd5, 0x0c, 0xbf, 0xf1, 0x7c, 0x0c, 0x0f, 0x8e, 0x43, 0x0b, 0xbb, 0x20, 0xd8, 0x60, 0x14, 0xd8, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xa4, 0x6a, 0x86, 0xdf, 0x78, 0x3e, 0x86, 0x6b, 0xc7, 0xa1, 0x43, 0x3a, 0xf7, 0x70, 0xb4, 0x2f, 0x08, 0x36, 0x18, 0x59, 0xaf, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x52, 0xc3, 0x4e, 0x0e, 0xa9, 0x9a, 0xe3, 0xd0, 0x21, 0x75, 0x70, 0x3c, 0x3e, 0x0e, 0x1d, 0x8f, 0x57, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x8a, 0xa1, 0x70, 0x31, 0xdc, 0x1e, 0x04, 0x1b, 0x9c, 0x9f, 0x68, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x24, 0xdc, 0x9e, 0x6c, 0x30, 0xf0, 0x43, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0xd8, 0x85, 0x5b, 0x0c, 0xfd, 0x87, 0xd4, 0xc1, 0x62, 0xe8, 0x1a, 0x76, 0xe1, 0x16, 0x43, 0xfd, 0x21, 0x75, 0xb0, 0x18, 0xda, 0x86, 0x5d, 0x10, 0x6c, 0x70, 0x8c, 0x66, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0xd5, 0x0c, 0xbf, 0xf1, 0x7c, 0x0c, 0xd3, 0xe3, 0xd0, 0x82, 0x60, 0x83, 0x91, 0xf5, 0x3a, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0x6d, 0xda, 0xf9, 0x90, 0xaa, 0x39, 0x0e, 0x0d, 0xbb, 0x20, 0xd8, 0xe0, 0x18, 0xcd, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xaa, 0x39, 0x38, 0x19, 0xe6, 0x1f, 0x87, 0x16, 0x04, 0x1b, 0x8c, 0xac, 0xd7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0xc3, 0x8f, 0x43, 0xaa, 0xe6, 0x38, 0x34, 0x08, 0x36, 0x38, 0x31, 0x52, 0x1f, 0xa4, 0x3a, 0x68, 0x1c, 0x8f, 0x8f, 0x43, 0x2b, 0x08, 0x36, 0x18, 0xd4, 0x2e, 0x8b, 0xc3, 0x6e, 0x30, 0x36, 0x39, 0x57, 0x10, 0x6c, 0x10, 0x94, 0xde, 0x83, 0x64, 0xc8, 0xc1, 0xd0, 0xa5, 0x3a, 0x34, 0x12, 0x1c, 0x04, 0x1b, 0x62, 0x38, 0x08, 0x16, 0x87, 0xdd, 0x60, 0xe4, 0x93, 0x6f, 0x68, 0x01, 0x34, 0x08, 0x16, 0x76, 0x61, 0x37, 0xac, 0xef, 0x1d, 0xd6, 0x37, 0x17, 0x76, 0xe1, 0x36, 0xc4, 0x70, 0x10, 0x6c, 0x90, 0x40, 0xca, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xaa, 0x19, 0x7e, 0xe3, 0xf9, 0xb0, 0x0b, 0xb7, 0xc1, 0x91, 0xa7, 0xf8, 0x10, 0xff, 0x0d, 0xfd, 0xc9, 0x0f, 0xca, 0xb8, 0x9d, 0xe3, 0xd0, 0x21, 0x9d, 0x7b, 0x38, 0xda, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xe0, 0xfe, 0x20, 0xd8, 0xe0, 0x70, 0x4e, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x20, 0x52, 0x1f, 0x04, 0x29, 0xfe, 0x71, 0x68, 0x10, 0x2d, 0xb8, 0xbe, 0x20, 0xd8, 0x20, 0x78, 0xb8, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x24, 0xf4, 0x34, 0x1c, 0xa4, 0xa2, 0x40, 0x1f, 0x87, 0x86, 0xdd, 0x38, 0xb4, 0xc2, 0x2e, 0xdc, 0x06, 0x47, 0x9e, 0xe2, 0x43, 0xb2, 0x63, 0x31, 0x94, 0x1d, 0xa4, 0x3f, 0x3d, 0x1f, 0x84, 0x7c, 0xf6, 0x41, 0xc8, 0x67, 0x0f, 0xa2, 0x85, 0x3d, 0x18, 0x6e, 0x0a, 0xc7, 0xf3, 0xe3, 0xdb, 0xf1, 0x78, 0x15, 0x43, 0xcb, 0x20, 0x58, 0x90, 0x0c, 0xa4, 0x77, 0x0e, 0xc9, 0xa5, 0x43, 0xa3, 0x96, 0xd5, 0x20, 0x6d, 0xe3, 0x79, 0x31, 0x1c, 0x1f, 0x04, 0x1b, 0x9c, 0x9f, 0x68, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xa4, 0x76, 0x80, 0x6c, 0x30, 0xf0, 0x43, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x6c, 0x30, 0xb2, 0x5e, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x52, 0x35, 0xc3, 0x6f, 0x3c, 0x1f, 0x76, 0x41, 0xb0, 0xc1, 0x31, 0x9a, 0x79, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x55, 0x73, 0x70, 0xae, 0x29, 0x3e, 0x0e, 0x6d, 0x90, 0xb6, 0xf1, 0x3c, 0x86, 0x5f, 0xc7, 0xa1, 0xe3, 0xf1, 0x71, 0x68, 0x0d, 0x92, 0x88, 0x48, 0x06, 0xc1, 0x06, 0x05, 0xc5, 0xdd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x4f, 0x0a, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x7e, 0x90, 0x0e, 0x08, 0x7d, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x38, 0xe8, 0xe9, 0x38, 0x34, 0xec, 0xc2, 0x2e, 0x08, 0x36, 0x48, 0x73, 0x42, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x83, 0x64, 0x3a, 0x87, 0x43, 0xe3, 0xf9, 0xe3, 0xd0, 0xc2, 0x2e, 0x08, 0x16, 0x87, 0xdd, 0x20, 0xf8, 0x98, 0x37, 0xc4, 0x70, 0x10, 0x2c, 0x08, 0x36, 0x18, 0x25, 0x27, 0x07, 0xe9, 0x70, 0x10, 0xc3, 0x2e, 0xec, 0xc2, 0x6d, 0x90, 0xfe, 0xf4, 0x7c, 0x1c, 0xda, 0x10, 0xc3, 0x61, 0x17, 0x76, 0x41, 0xb0, 0xc1, 0xb9, 0xc3, 0x7b, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x75, 0x30, 0xfc, 0xc6, 0xf3, 0x83, 0x73, 0xe4, 0xee, 0x71, 0x68, 0x61, 0x17, 0x04, 0x1b, 0x8c, 0x02, 0xdb, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xd4, 0xc1, 0xf0, 0x1b, 0xcf, 0x0f, 0xce, 0xbc, 0xb3, 0xc7, 0xa1, 0x43, 0x3a, 0xf7, 0x70, 0xb4, 0x1f, 0xd2, 0xb9, 0x0b, 0xbb, 0x20, 0x19, 0x32, 0x88, 0x16, 0xc4, 0x83, 0x60, 0x83, 0x23, 0xad, 0xee, 0x41, 0x32, 0xdf, 0xc3, 0xf1, 0xfc, 0x90, 0xce, 0x3d, 0x1c, 0xed, 0xc7, 0xb7, 0x43, 0x3a, 0xf7, 0x70, 0xb4, 0x6f, 0x70, 0xee, 0xa3, 0x1d, 0x76, 0x41, 0xb0, 0xc1, 0x08, 0x28, 0x3a, 0x48, 0xec, 0x88, 0x5e, 0x90, 0x0c, 0xba, 0x8e, 0xc7, 0x07, 0x09, 0x9f, 0x02, 0x2b, 0xec, 0x86, 0xf5, 0xbd, 0xc5, 0x50, 0x33, 0xec, 0x86, 0xa6, 0xe7, 0x8b, 0xe1, 0xfc, 0x20, 0xdb, 0xd0, 0x7c, 0xfd, 0x70, 0x8a, 0x1d, 0x62, 0x38, 0x08, 0x36, 0x48, 0xa6, 0x73, 0xd8, 0x20, 0xfd, 0xe9, 0x79, 0x10, 0x2c, 0x0e, 0xbb, 0x20, 0xd8, 0xe0, 0x14, 0x42, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xd1, 0x69, 0x7b, 0x90, 0x68, 0xce, 0x7c, 0x30, 0x36, 0x5c, 0x8f, 0x43, 0x0b, 0x82, 0x05, 0xc9, 0x06, 0x45, 0x7d, 0xce, 0x41, 0xc0, 0xfb, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x32, 0x88, 0x16, 0xcc, 0x0f, 0x92, 0xc1, 0x99, 0x07, 0xd1, 0xc2, 0x1e, 0xa4, 0xaa, 0x3e, 0x1f, 0x8f, 0x87, 0xdf, 0x78, 0xbe, 0x41, 0xfa, 0xd3, 0xf3, 0x06, 0xe9, 0x4f, 0xcf, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x30, 0x1f, 0x04, 0x1b, 0x9c, 0x62, 0x80, 0x0f, 0x12, 0xcd, 0x99, 0x07, 0xd1, 0xc2, 0x1e, 0x94, 0x71, 0x3b, 0xc7, 0xe3, 0xe3, 0xd0, 0xb0, 0x1b, 0xd6, 0xf7, 0x16, 0x07, 0xf7, 0x1b, 0x76, 0x41, 0xb0, 0xc1, 0x28, 0xb0, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0xd5, 0x1c, 0x8c, 0x0d, 0xd7, 0xe3, 0xd0, 0x82, 0x60, 0x41, 0x32, 0x90, 0xde, 0x39, 0x64, 0x2b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0xbf, 0x20, 0x19, 0xa8, 0x55, 0x87, 0x6c, 0xc5, 0x20, 0x19, 0xec, 0x8e, 0xc7, 0x07, 0xe3, 0xc3, 0xe8, 0x38, 0x34, 0x08, 0x16, 0x87, 0x5d, 0xb8, 0x0d, 0xad, 0xc4, 0x0f, 0xa9, 0x9a, 0x05, 0xc1, 0x82, 0x60, 0x83, 0x01, 0xcb, 0x73, 0x90, 0x48, 0x11, 0x32, 0x08, 0x16, 0x04, 0x1b, 0xa4, 0xd1, 0x3d, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x8a, 0x45, 0x07, 0x83, 0x77, 0xf2, 0x38, 0x34, 0x08, 0x16, 0x24, 0x1b, 0x14, 0xf5, 0x39, 0x07, 0xc3, 0x3f, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x20, 0xbd, 0x73, 0x30, 0xde, 0x75, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0xbf, 0x20, 0x19, 0xa8, 0x55, 0x07, 0xe3, 0x5d, 0xe7, 0x60, 0xdc, 0x41, 0x1d, 0x1a, 0xb5, 0x1c, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x48, 0x31, 0x97, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0xfc, 0x06, 0xe9, 0xfa, 0xd2, 0x07, 0xe9, 0x96, 0xd2, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x8a, 0x55, 0xa8, 0x83, 0xc1, 0xe9, 0x73, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x06, 0xc1, 0x82, 0x60, 0x83, 0x01, 0xcb, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xe3, 0xd0, 0xc8, 0xc1, 0x78, 0xd3, 0x39, 0x0e, 0x0d, 0x82, 0x05, 0xc1, 0x06, 0x69, 0x74, 0x0f, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x92, 0x9d, 0xa6, 0x0f, 0x06, 0xef, 0xe4, 0x71, 0x68, 0x10, 0x6c, 0x90, 0x18, 0x2d, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x30, 0x3f, 0xa4, 0x0e, 0x06, 0xd1, 0xc2, 0x0e, 0x82, 0x0d, 0xce, 0x92, 0xd9, 0x07, 0x29, 0x7e, 0x0e, 0x87, 0x15, 0xda, 0xe1, 0x37, 0x9e, 0x6f, 0x90, 0xfe, 0xf4, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xf5, 0x07, 0x69, 0x32, 0xd3, 0x83, 0x68, 0x41, 0x7c, 0x68, 0x25, 0x7e, 0x48, 0x2e, 0x1d, 0x87, 0x8e, 0x6f, 0xc7, 0xb7, 0x41, 0xb0, 0xc1, 0xf9, 0x89, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xb9, 0xa6, 0x78, 0x83, 0x81, 0x1f, 0x32, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x83, 0x91, 0xf5, 0x3a, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0x69, 0x1b, 0xcf, 0x87, 0x54, 0xcd, 0x71, 0xe8, 0x78, 0x7c, 0x1c, 0x5a, 0x90, 0x0c, 0x94, 0xaa, 0xe3, 0xf1, 0x0a, 0xbb, 0x61, 0x7d, 0x6f, 0x83, 0xe4, 0x21, 0xe6, 0xc3, 0x29, 0x76, 0x88, 0xe1, 0x06, 0x69, 0x1b, 0xcf, 0x8b, 0xe1, 0xe2, 0x20, 0xd8, 0xe0, 0xfc, 0x44, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xd0, 0x78, 0xfe, 0x20, 0x59, 0x79, 0xfa, 0x38, 0x74, 0x3c, 0x5e, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x83, 0xa4, 0x57, 0xe6, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x43, 0xb1, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x71, 0xd8, 0x0d, 0x82, 0x8f, 0x79, 0x43, 0x0c, 0x07, 0xc1, 0x82, 0x60, 0x41, 0x32, 0xf0, 0xee, 0xce, 0x61, 0x85, 0xf6, 0x60, 0x98, 0x85, 0x0f, 0x82, 0x05, 0xc1, 0x86, 0xcd, 0x90, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xa7, 0x18, 0xe0, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x3f, 0x28, 0xa9, 0x86, 0x0e, 0x02, 0x13, 0xfb, 0x38, 0x74, 0x1c, 0x1a, 0x04, 0x0b, 0x92, 0x21, 0x83, 0x68, 0x41, 0x3c, 0x08, 0x36, 0x18, 0xb0, 0x3c, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x7e, 0xe8, 0x4e, 0x7e, 0x30, 0xde, 0x74, 0x8e, 0x43, 0x87, 0xe4, 0xd2, 0xb0, 0x0b, 0xbb, 0xb0, 0x0b, 0x82, 0x05, 0xc9, 0xa0, 0xe6, 0x60, 0xf8, 0xc7, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xa4, 0x6a, 0x0e, 0x52, 0xcb, 0xa2, 0x8f, 0x43, 0x0b, 0xbb, 0x20, 0xd8, 0xe0, 0x94, 0x71, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xaa, 0x39, 0x48, 0xf7, 0x8b, 0x3e, 0x0e, 0x1d, 0xd2, 0xb9, 0x87, 0xa3, 0x7d, 0x43, 0x0c, 0x87, 0x5d, 0xd8, 0x05, 0xc1, 0x06, 0x49, 0xa9, 0xd4, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xa9, 0x9a, 0x83, 0x64, 0xf1, 0xe9, 0xe3, 0xd0, 0xc2, 0x2e, 0x08, 0x36, 0x38, 0x65, 0x5c, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xa4, 0x6a, 0x86, 0xdf, 0x78, 0x3e, 0x86, 0xe6, 0xe3, 0xd0, 0x21, 0x9d, 0x7b, 0x38, 0xda, 0x37, 0xc4, 0x70, 0xd8, 0x85, 0xdb, 0x20, 0xfd, 0xe9, 0xf9, 0x90, 0x3a, 0x38, 0xa4, 0x73, 0x37, 0x18, 0x2a, 0x02, 0xc3, 0x2e, 0xdc, 0x06, 0x09, 0x65, 0x27, 0x87, 0xd4, 0xc1, 0x8a, 0xa1, 0xee, 0x38, 0x34, 0xec, 0xc2, 0x6d, 0x90, 0xf6, 0x52, 0x7d, 0x48, 0x1d, 0xac, 0x41, 0xf2, 0x10, 0xf3, 0x41, 0xca, 0x4b, 0xf5, 0xb0, 0x0b, 0xb7, 0x41, 0xf2, 0x10, 0xf3, 0x21, 0x75, 0xb0, 0x06, 0xc9, 0x43, 0xcc, 0x1b, 0x24, 0x0f, 0x31, 0x1f, 0x87, 0x06, 0xd9, 0x86, 0xe6, 0xeb, 0x1b, 0x24, 0x0f, 0x31, 0x0f, 0x82, 0x05, 0xc1, 0x06, 0x07, 0xd6, 0xed, 0x83, 0xc4, 0x9b, 0xa0, 0x41, 0xb0, 0x38, 0xec, 0x86, 0xf5, 0xbd, 0x35, 0x48, 0x7b, 0xa9, 0x3e, 0xa4, 0x6a, 0x86, 0x5f, 0x10, 0x2d, 0xec, 0x20, 0x58, 0x90, 0x0c, 0xa4, 0x57, 0x0e, 0x4e, 0x42, 0xc7, 0x87, 0x46, 0x2d, 0xc7, 0xe3, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0xbc, 0xef, 0x74, 0x30, 0x1c, 0xa5, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0xfc, 0xd0, 0x48, 0xfc, 0x20, 0x30, 0xb1, 0x8f, 0x43, 0x0b, 0x82, 0x0d, 0xd2, 0x68, 0x17, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0xd8, 0x05, 0xc1, 0x82, 0x64, 0x20, 0x28, 0x07, 0xc7, 0xac, 0xe2, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xd4, 0xc1, 0xc1, 0xe1, 0xa4, 0xf8, 0x38, 0x74, 0x90, 0x86, 0x0d, 0x7d, 0x48, 0x1d, 0x1c, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0x60, 0x3e, 0x08, 0x16, 0x24, 0x03, 0x7d, 0x9d, 0x0e, 0x4e, 0x42, 0xc7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x7e, 0x90, 0x70, 0x2a, 0x7d, 0x30, 0xde, 0x74, 0x8e, 0x43, 0xc7, 0xf3, 0xe3, 0xdb, 0xf1, 0xed, 0x38, 0x74, 0x3c, 0x1e, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x81, 0x51, 0x3a, 0x64, 0x2b, 0x0e, 0x52, 0xfc, 0x1c, 0x06, 0xc1, 0x82, 0x60, 0xe1, 0x37, 0x48, 0x33, 0xfe, 0x39, 0xbe, 0x0d, 0x82, 0xc5, 0x61, 0x37, 0x08, 0x3e, 0xe6, 0x0d, 0x8b, 0x7c, 0xc3, 0x2e, 0xdc, 0x06, 0xc9, 0x43, 0xcc, 0x87, 0xac, 0xdd, 0xc2, 0x6e, 0x58, 0x41, 0x5d, 0x43, 0xaa, 0xe6, 0x10, 0xc3, 0x61, 0x17, 0x6e, 0x83, 0xe4, 0x21, 0xe6, 0x43, 0x0f, 0xa1, 0x05, 0xc9, 0x90, 0x41, 0xb4, 0x41, 0x30, 0x38, 0x0f, 0xa2, 0x85, 0x3d, 0x48, 0x45, 0xaa, 0x3e, 0x1e, 0x0f, 0xbb, 0x70, 0x1b, 0xa4, 0x3f, 0x3d, 0x1f, 0x7a, 0x08, 0x2d, 0x48, 0x86, 0x0c, 0xa2, 0x0d, 0x82, 0xc1, 0x79, 0x10, 0x2d, 0xec, 0x62, 0xf8, 0x77, 0x48, 0x1d, 0x1c, 0x8f, 0x07, 0xd9, 0x1a, 0xda, 0xaf, 0x0f, 0xbb, 0xd0, 0x43, 0x0f, 0xa1, 0xc3, 0xfa, 0xe6, 0x41, 0xb2, 0x91, 0xf5, 0x20, 0x19, 0x32, 0x88, 0x36, 0x08, 0xcc, 0xf5, 0x41, 0xb4, 0xb0, 0x1b, 0xb2, 0x76, 0x87, 0xd4, 0xc1, 0xf1, 0xf8, 0xf8, 0x36, 0xec, 0xc2, 0x2e, 0xf4, 0x20, 0xa4, 0xc0, 0x0f, 0xeb, 0x9b, 0x0b, 0x82, 0x05, 0xc9, 0xc0, 0x7a, 0xdd, 0x41, 0xc0, 0xfb, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0x41, 0x3a, 0x08, 0x78, 0xff, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x43, 0xb1, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x44, 0x6d, 0x87, 0x83, 0x11, 0x85, 0x7b, 0x1c, 0x3a, 0x0e, 0x1d, 0x62, 0x78, 0x3c, 0x5e, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x90, 0x0c, 0xa4, 0xea, 0x0e, 0xd9, 0x8a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0xa0, 0xfd, 0xce, 0x21, 0xb9, 0x74, 0x68, 0xd4, 0x72, 0x1c, 0x3a, 0x1e, 0xaf, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x41, 0x0a, 0xaa, 0xf3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xaa, 0x66, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x87, 0x5d, 0xd8, 0x05, 0xc1, 0x06, 0xe7, 0x0e, 0xef, 0x83, 0x34, 0x58, 0xea, 0x85, 0x5d, 0x10, 0x6c, 0x30, 0x0a, 0x6c, 0x0f, 0x52, 0x8d, 0xa9, 0x0f, 0xe9, 0xdc, 0xc3, 0xd1, 0xbe, 0x20, 0xd8, 0xe0, 0xc4, 0x48, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xaa, 0x39, 0x48, 0x0d, 0x3b, 0x39, 0x0e, 0x1d, 0x52, 0x07, 0xc7, 0xe3, 0xe3, 0xd0, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x83, 0xc4, 0x0a, 0xeb, 0x41, 0xb0, 0x20, 0x19, 0x08, 0xd2, 0x41, 0x90, 0xf3, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x8a, 0x45, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x8b, 0xc3, 0x6e, 0x58, 0xdf, 0xdb, 0x10, 0xc3, 0x61, 0x17, 0x6e, 0x83, 0xe4, 0x21, 0xe6, 0x43, 0x34, 0xd7, 0x20, 0x79, 0x88, 0x79, 0x83, 0xe4, 0x21, 0xe6, 0x83, 0x42, 0xe5, 0x6c, 0xd8, 0x85, 0xdb, 0x20, 0xa5, 0xcf, 0xfa, 0x10, 0xcd, 0x35, 0x48, 0x1e, 0x62, 0xde, 0x20, 0xfd, 0xe9, 0xf9, 0xa0, 0x50, 0x39, 0x3b, 0x28, 0x40, 0xce, 0x8e, 0x6f, 0xc7, 0xa1, 0xe3, 0xf1, 0x0a, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x76, 0xc3, 0xfa, 0xde, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0x0c, 0x56, 0x94, 0xe3, 0xdb, 0x20, 0xd8, 0xa0, 0xa0, 0xb8, 0x1b, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0xda, 0x85, 0xf5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa1, 0x58, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xe1, 0xc1, 0x83, 0x43, 0x1a, 0xee, 0x38, 0x74, 0x50, 0xa2, 0xa0, 0x1d, 0x87, 0x8e, 0xc7, 0x83, 0x60, 0x43, 0x62, 0x6a, 0x71, 0xd8, 0x0d, 0xbb, 0x06, 0x1b, 0x12, 0x53, 0xc3, 0x6e, 0xc8, 0x63, 0x6d, 0xd8, 0x3a, 0x18, 0x04, 0x0b, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x04, 0x1b, 0x8c, 0xbf, 0x9b, 0x43, 0x1a, 0xee, 0x20, 0x28, 0xbd, 0x8f, 0xc7, 0x6b, 0xe8, 0x21, 0x74, 0x10, 0x52, 0xe0, 0x07, 0x21, 0x00, 0x7e, 0x3c, 0x5e, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x10, 0x6c, 0x30, 0xec, 0x6b, 0x0e, 0x52, 0xfc, 0x1c, 0x86, 0xdd, 0x60, 0xd4, 0x4b, 0x2e, 0xec, 0x06, 0xc1, 0xc7, 0x7c, 0x68, 0x1c, 0x35, 0xec, 0xc2, 0x2e, 0x08, 0x36, 0x48, 0x60, 0x04, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0x1d, 0x1c, 0xa4, 0x86, 0x9d, 0x1c, 0x87, 0x36, 0xc4, 0x70, 0xd8, 0x85, 0xdb, 0xe0, 0xc8, 0x53, 0x7c, 0x1c, 0x3a, 0xa4, 0x73, 0x17, 0x76, 0x41, 0xb0, 0x20, 0x19, 0x08, 0xca, 0x41, 0xc0, 0xfb, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xa4, 0x0e, 0x0e, 0x12, 0x17, 0x9a, 0x8f, 0x43, 0x1b, 0x8e, 0xf6, 0x61, 0x17, 0x04, 0x1b, 0xa4, 0x57, 0x62, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xa4, 0x0e, 0x86, 0xdf, 0x78, 0x3e, 0x06, 0xf1, 0x3d, 0x0e, 0x6d, 0x68, 0x25, 0x3e, 0xec, 0x82, 0x60, 0x83, 0xf4, 0x4a, 0xec, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xd4, 0xc1, 0xf0, 0x1b, 0xcf, 0xc7, 0x20, 0xde, 0xc7, 0xa1, 0x83, 0x04, 0x07, 0xe8, 0xc3, 0x29, 0x76, 0x3c, 0x5e, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0xd8, 0x20, 0xe9, 0x95, 0xf9, 0x20, 0xc5, 0xcf, 0xe1, 0x78, 0x3c, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x0f, 0x0a, 0x52, 0xc2, 0xe3, 0xf1, 0xc2, 0x2f, 0x08, 0x36, 0xc4, 0x70, 0x71, 0xd8, 0x85, 0xdb, 0x10, 0xc3, 0x83, 0x64, 0x3a, 0x87, 0x0d, 0x31, 0xdc, 0x20, 0xb9, 0x0a, 0x7b, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0x08, 0x36, 0x18, 0x94, 0x1c, 0x07, 0x29, 0x7e, 0x0e, 0xc7, 0xe3, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0x1c, 0xf0, 0xe9, 0xe4, 0xd2, 0xe0, 0x43, 0x6a, 0xe9, 0x78, 0xbc, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x41, 0xda, 0x85, 0xf5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x12, 0x0d, 0x67, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0xf8, 0x73, 0x48, 0x2e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x7e, 0x90, 0x0e, 0x8f, 0x7d, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x36, 0xc4, 0x70, 0x71, 0xd8, 0x85, 0xdb, 0xa0, 0x04, 0x8a, 0x1c, 0x04, 0x1b, 0x9c, 0x62, 0x80, 0x0f, 0x92, 0xf9, 0x1e, 0x16, 0x04, 0x6b, 0x88, 0xe1, 0x20, 0xd8, 0x60, 0x74, 0xda, 0x1e, 0xa4, 0xf8, 0x39, 0x0c, 0xbb, 0x70, 0x8b, 0x87, 0x97, 0xef, 0x0e, 0x02, 0x13, 0x7b, 0x41, 0xb0, 0x38, 0xec, 0x86, 0x74, 0xe6, 0x86, 0x18, 0x0e, 0x82, 0x05, 0xc1, 0x82, 0x64, 0xa0, 0x38, 0x1d, 0x0c, 0x43, 0x9f, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x43, 0xb1, 0x68, 0x83, 0x44, 0xbd, 0x8a, 0x83, 0xc0, 0xc4, 0x3e, 0x0e, 0x0d, 0xbb, 0xb0, 0x0b, 0xbb, 0x20, 0x58, 0x90, 0x0c, 0x6a, 0x0e, 0x86, 0xa3, 0xf4, 0x41, 0x32, 0x57, 0xf4, 0xc2, 0x2e, 0x08, 0x36, 0x38, 0xb3, 0x65, 0x1f, 0x24, 0xd8, 0x45, 0x1f, 0xd2, 0xb9, 0x87, 0xa3, 0x7d, 0x43, 0x0c, 0x87, 0x5d, 0xd8, 0x0d, 0x52, 0x94, 0xa2, 0x17, 0x76, 0x61, 0x37, 0xac, 0x85, 0x1e, 0xd6, 0x37, 0x17, 0x76, 0x61, 0x17, 0xee, 0xa0, 0x18, 0xa3, 0x39, 0xac, 0x6f, 0x1e, 0xd2, 0xb9, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x6f, 0x88, 0xe1, 0xb0, 0x0b, 0xbb, 0xb0, 0x0b, 0x82, 0x0d, 0x92, 0xaf, 0xb3, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x52, 0x07, 0x07, 0xc9, 0xe2, 0xd3, 0xc7, 0xa1, 0x85, 0x5d, 0x10, 0x6c, 0x70, 0x66, 0xcb, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0x1d, 0x1c, 0x24, 0x15, 0x54, 0x1f, 0x87, 0x0e, 0xe9, 0xdc, 0xc3, 0xd1, 0xbe, 0xb0, 0x1b, 0x24, 0xfc, 0x67, 0x1f, 0xd2, 0xb9, 0x87, 0xa3, 0xfd, 0x90, 0xce, 0x5d, 0xd8, 0x05, 0xc9, 0x90, 0x83, 0x84, 0xf5, 0x8d, 0x43, 0x3a, 0xf7, 0x70, 0xb4, 0x1f, 0xdf, 0x86, 0x5d, 0xb8, 0x0d, 0x8a, 0xd7, 0xc8, 0x83, 0xc0, 0xc4, 0x5e, 0x10, 0x2c, 0x0e, 0xbb, 0x21, 0x9d, 0xb9, 0x21, 0x86, 0x83, 0x60, 0x83, 0x24, 0xda, 0xec, 0x61, 0x17, 0x76, 0x83, 0x34, 0xea, 0xec, 0x0d, 0x31, 0x1c, 0x76, 0x83, 0x74, 0x0f, 0xed, 0x0d, 0x31, 0x1c, 0x76, 0x61, 0x37, 0x48, 0x51, 0x8a, 0xde, 0x10, 0xc3, 0x61, 0x17, 0xee, 0x20, 0x85, 0xaa, 0x7a, 0x43, 0x0c, 0x87, 0x5d, 0xb8, 0x0d, 0x52, 0xfa, 0xac, 0x8f, 0x43, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x1d, 0xa4, 0xbc, 0x54, 0x1f, 0xd2, 0xb9, 0x87, 0x74, 0xee, 0x41, 0xa2, 0x97, 0xf6, 0xf1, 0x6d, 0x10, 0x2c, 0x0e, 0xbb, 0x21, 0x9d, 0xb9, 0x21, 0x86, 0x83, 0x60, 0x83, 0x24, 0xda, 0xec, 0x61, 0x17, 0x76, 0x41, 0xb0, 0xc1, 0xe1, 0x8f, 0xf7, 0x20, 0xb1, 0x0e, 0x7b, 0x61, 0x17, 0x76, 0x83, 0x24, 0x44, 0xec, 0xc3, 0xfa, 0xe6, 0x21, 0x9d, 0x7b, 0x38, 0xda, 0x37, 0x1c, 0xed, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x78, 0x77, 0xe7, 0x60, 0xbc, 0xeb, 0x1c, 0x0c, 0x6c, 0xd1, 0x61, 0x17, 0x76, 0x83, 0x82, 0x0d, 0x69, 0x43, 0x0c, 0x87, 0x5d, 0x10, 0x6c, 0x38, 0xda, 0x07, 0xc1, 0xe2, 0xb0, 0x0b, 0x77, 0x90, 0x96, 0xb0, 0xb0, 0x21, 0x86, 0xc3, 0x2e, 0xec, 0x82, 0x60, 0x83, 0xf3, 0x95, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x52, 0x24, 0x3e, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xc5, 0xa2, 0x85, 0xdf, 0x78, 0xbe, 0x20, 0xd8, 0xe0, 0xc4, 0x67, 0x7c, 0x50, 0x0a, 0x1a, 0x1d, 0x8e, 0xf6, 0x83, 0xc2, 0x2d, 0xe9, 0x38, 0x74, 0x90, 0xe4, 0xd6, 0x7c, 0x1c, 0x5a, 0xd8, 0x0d, 0x6b, 0x89, 0x87, 0x74, 0xee, 0xe1, 0x68, 0x3f, 0xa4, 0x73, 0x8f, 0x6f, 0x87, 0x74, 0xee, 0xc2, 0x2e, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xe1, 0x20, 0xd8, 0xe0, 0x70, 0x25, 0x7d, 0x30, 0xde, 0x28, 0x0f, 0xc9, 0xa5, 0x43, 0x3a, 0xf7, 0x70, 0xb4, 0x1f, 0xdf, 0x0e, 0x31, 0x3c, 0x1e, 0x1f, 0x8f, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x0d, 0x92, 0x5e, 0x99, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xc5, 0xa2, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0xc5, 0x61, 0x37, 0x08, 0x3e, 0xe6, 0x0d, 0x31, 0x1c, 0x04, 0x1b, 0xa4, 0xf6, 0x44, 0x0f, 0x82, 0x0d, 0x52, 0x30, 0xa3, 0x87, 0xdd, 0x20, 0xa5, 0xa6, 0x7a, 0x0d, 0x12, 0xca, 0x4e, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xc1, 0xf8, 0x87, 0x3e, 0x24, 0x97, 0x86, 0xdd, 0x20, 0xed, 0xa8, 0x7a, 0xe1, 0x17, 0x44, 0x0b, 0x3b, 0x08, 0x36, 0x38, 0xf0, 0xec, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x8a, 0x45, 0x87, 0xd4, 0xc1, 0x71, 0x68, 0x10, 0x2d, 0x64, 0x10, 0x6c, 0x30, 0x60, 0x79, 0x0e, 0xd2, 0xcc, 0xb7, 0x8f, 0xc7, 0xc3, 0x6e, 0x90, 0x52, 0x53, 0xbd, 0x06, 0x69, 0x2f, 0xd5, 0x07, 0x49, 0xcb, 0xdb, 0xc3, 0x6e, 0x90, 0x76, 0x54, 0xbd, 0x06, 0xc9, 0x43, 0xcc, 0x07, 0x49, 0xcb, 0xdb, 0x83, 0x6c, 0x43, 0xf3, 0xf5, 0x41, 0xb0, 0x20, 0xd8, 0x10, 0xc3, 0x41, 0xb0, 0x38, 0xec, 0xc2, 0x6d, 0x90, 0xf6, 0x52, 0x7d, 0xd8, 0x2b, 0xdc, 0x20, 0x2d, 0x61, 0x61, 0xd8, 0x0d, 0x82, 0x8f, 0x79, 0xc3, 0x29, 0x36, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xf3, 0x41, 0xb0, 0x41, 0x49, 0x17, 0x75, 0x90, 0x0e, 0x07, 0x31, 0x88, 0x16, 0xc4, 0x83, 0x60, 0x83, 0xe2, 0x1e, 0xea, 0x20, 0x1d, 0x0e, 0x62, 0x10, 0x2d, 0xec, 0x20, 0xd8, 0x60, 0xc8, 0x49, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x82, 0x83, 0xe1, 0x28, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0xb5, 0x03, 0xe4, 0x90, 0xaa, 0x39, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0x7f, 0x0e, 0x86, 0xa3, 0xf4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xc0, 0xc4, 0x1e, 0x7e, 0xe3, 0xf9, 0xb0, 0x0b, 0xbb, 0x20, 0xd8, 0x20, 0xf9, 0x3a, 0x7b, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x60, 0x62, 0x1f, 0x24, 0x8b, 0x4f, 0x1f, 0x87, 0x16, 0x76, 0x41, 0xb0, 0xc1, 0x99, 0x2d, 0x7b, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x60, 0x62, 0x1f, 0x24, 0x15, 0x54, 0x1f, 0x87, 0x0e, 0xe9, 0xdc, 0xc3, 0xd1, 0xbe, 0x41, 0xda, 0xc6, 0xf3, 0xb0, 0x0b, 0xbb, 0x20, 0xd8, 0x20, 0xf9, 0x3a, 0x7b, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x60, 0x62, 0x1f, 0xa4, 0x96, 0x45, 0x1f, 0x87, 0x16, 0x76, 0x41, 0xb0, 0xc1, 0x99, 0x2d, 0x7b, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x60, 0x62, 0x1f, 0xa4, 0xfb, 0x45, 0x1f, 0x87, 0x0e, 0xe9, 0xdc, 0xc3, 0xd1, 0xbe, 0x41, 0x2a, 0x37, 0xf4, 0xe1, 0x14, 0x3b, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0xc7, 0xb7, 0x41, 0xb0, 0x20, 0xd9, 0xa0, 0xa8, 0xcf, 0x39, 0x18, 0x86, 0x3e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0xa3, 0x74, 0x30, 0x0c, 0x7d, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xc5, 0xa2, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x02, 0xd7, 0xff, 0x60, 0x18, 0x3b, 0x1c, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xf1, 0x41, 0x08, 0x80, 0x1f, 0x56, 0x68, 0x8f, 0x43, 0x1b, 0x52, 0x07, 0x07, 0x49, 0xcb, 0xdb, 0xc7, 0xb7, 0xe3, 0xd0, 0xf1, 0x78, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0xd8, 0x20, 0xe9, 0x95, 0x79, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x89, 0x86, 0x33, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x38, 0x08, 0x36, 0x48, 0x49, 0xa2, 0x1e, 0x76, 0x83, 0x51, 0x2f, 0xb9, 0x21, 0x86, 0x83, 0x60, 0x41, 0xb0, 0x41, 0xb2, 0xb0, 0xc3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x81, 0x1f, 0x32, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0xd9, 0x60, 0x90, 0xbc, 0x1c, 0x04, 0xbc, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xbb, 0x41, 0xc1, 0x86, 0xb4, 0x78, 0x48, 0x2d, 0x0d, 0xbb, 0x41, 0xc9, 0x83, 0xb4, 0xb8, 0x20, 0x88, 0xdd, 0x20, 0x04, 0xc0, 0x1b, 0x76, 0x83, 0xf2, 0x69, 0x68, 0x71, 0xc1, 0x20, 0x76, 0x83, 0x74, 0xea, 0xee, 0x0d, 0x42, 0x0a, 0xbc, 0x61, 0x17, 0x6e, 0x83, 0x32, 0x6e, 0xe7, 0x38, 0xb4, 0xb8, 0x60, 0x18, 0xbb, 0x41, 0x82, 0x78, 0xf7, 0x06, 0xe9, 0xd4, 0xdd, 0x87, 0xab, 0xeb, 0x20, 0xfd, 0x3a, 0x7a, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x62, 0x6a, 0x71, 0xc3, 0xb8, 0x0c, 0x82, 0x0d, 0x52, 0x6c, 0xb3, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xfc, 0x90, 0x85, 0xdf, 0x78, 0x7e, 0x48, 0x6c, 0x1e, 0x0c, 0xde, 0xc9, 0xe3, 0xd0, 0xf1, 0xf8, 0x38, 0x74, 0x1c, 0x1a, 0x76, 0xe1, 0x16, 0x04, 0x1b, 0x0c, 0x33, 0x9a, 0x83, 0x81, 0x2d, 0x3a, 0x08, 0x36, 0x38, 0xf0, 0xec, 0x1e, 0xa4, 0x38, 0x52, 0xaf, 0x71, 0xe8, 0x20, 0x4d, 0x90, 0xfa, 0x70, 0x8a, 0x1d, 0xdf, 0x8e, 0x43, 0xc7, 0xe3, 0x15, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x2e, 0xe0, 0xcd, 0xe5, 0xcd, 0x03, 0x3e, 0xda, 0xdb, 0x9b, 0xbb, 0x41, 0x9a, 0x99, 0x77, 0x0b, 0xac, 0x54, 0x45, 0x07, 0x36, 0xca, 0xe2, 0x86, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x3b, 0x55, 0xd1, 0x83, 0x24, 0x3a, 0xef, 0xe1, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x4a, 0x57, 0xf4, 0x20, 0x89, 0xce, 0x7b, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x95, 0xae, 0xf8, 0x81, 0x95, 0xae, 0x90, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xa5, 0x2b, 0x64, 0x07, 0x09, 0xb3, 0xde, 0xc3, 0x2f, 0x48, 0x06, 0x04, 0x7e, 0xdf, 0x21, 0xb9, 0x74, 0x7c, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x4e, 0x57, 0xf4, 0x20, 0x89, 0xce, 0x7b, 0xf8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x00, 0x16, 0x3d, 0x48, 0xa2, 0xf3, 0x5e, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xeb, 0x60, 0x71, 0x03, 0x8b, 0x61, 0xf1, 0x83, 0x60, 0x71, 0xc3, 0x29, 0x76, 0x50, 0x8c, 0x46, 0x2c, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x1f, 0x2c, 0xee, 0x20, 0xe5, 0xe1, 0x7b, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x16, 0xc2, 0xe2, 0x0e, 0x52, 0x1e, 0xbe, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x11, 0x16, 0x77, 0x90, 0xf2, 0xf0, 0x3d, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0x08, 0x0b, 0xc9, 0xc0, 0x46, 0x58, 0x58, 0x0f, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x36, 0xc2, 0x42, 0x36, 0xb0, 0x11, 0x16, 0x36, 0xc3, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x8d, 0xb0, 0x90, 0x0e, 0x6c, 0x84, 0x85, 0xf8, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x6c, 0x84, 0x85, 0x7c, 0x60, 0x23, 0x2c, 0x4c, 0x0e, 0xa9, 0x83, 0x85, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x1b, 0x61, 0x61, 0x34, 0xb0, 0x11, 0x16, 0xc6, 0xc3, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x8d, 0xb0, 0x30, 0x1b, 0xd8, 0x08, 0x0b, 0xbb, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x11, 0x16, 0x86, 0x03, 0x1b, 0x61, 0x61, 0x7b, 0x30, 0xb2, 0xac, 0x0e, 0xe9, 0xdc, 0xc3, 0xd1, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x56, 0xc2, 0xe2, 0x07, 0x56, 0xc2, 0x42, 0x74, 0x30, 0xde, 0x74, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x13, 0x16, 0x77, 0x90, 0xf2, 0xf0, 0x3d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x4e, 0x58, 0x18, 0x0e, 0xec, 0x84, 0x85, 0x96, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x76, 0xc2, 0xc2, 0x72, 0x60, 0x27, 0x2c, 0x8c, 0x07, 0xc9, 0xc0, 0xa8, 0x1c, 0x0c, 0xff, 0xd8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x4e, 0x58, 0x58, 0x0f, 0xec, 0x84, 0x85, 0x82, 0x43, 0xea, 0x60, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0x09, 0x0b, 0x0d, 0x03, 0x3b, 0x61, 0xa1, 0xe4, 0x60, 0x4c, 0x58, 0x1d, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x14, 0x16, 0x77, 0x90, 0xf2, 0xf0, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xf7, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x17, 0x16, 0xc2, 0x81, 0xbd, 0xb0, 0x50, 0x31, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x5e, 0x58, 0x48, 0x07, 0xf6, 0xc2, 0xc2, 0xe0, 0x90, 0x98, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x85, 0x85, 0xc5, 0xc0, 0x5e, 0x58, 0x58, 0x0e, 0xb7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xf6, 0xc2, 0xc2, 0x66, 0x60, 0x2f, 0x2c, 0x8c, 0x0e, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x5e, 0x58, 0x58, 0x0d, 0xec, 0x85, 0x85, 0xe1, 0x41, 0x48, 0x81, 0x2f, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x85, 0x85, 0xe9, 0xc0, 0x5e, 0x58, 0x58, 0x1f, 0x84, 0x00, 0xf8, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x17, 0x16, 0xe6, 0x03, 0x7b, 0x61, 0xa1, 0xe1, 0x60, 0xf0, 0x4e, 0x1e, 0x87, 0x06, 0xd1, 0x82, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0x0a, 0x0b, 0xe1, 0xc0, 0x56, 0x58, 0x28, 0x19, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x6c, 0x85, 0x85, 0x7c, 0x60, 0x2b, 0x2c, 0xec, 0x86, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x5b, 0x61, 0x61, 0x31, 0xb0, 0x15, 0x16, 0x26, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x2b, 0x2c, 0x6c, 0x06, 0xb6, 0xc2, 0xc2, 0xec, 0x60, 0x2c, 0x76, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xad, 0xb0, 0x30, 0x1c, 0xd8, 0x0a, 0x0b, 0xcb, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x15, 0x16, 0xa6, 0x03, 0x5b, 0x61, 0xa1, 0x63, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xad, 0xb0, 0xb0, 0x1d, 0xd8, 0x0a, 0x0b, 0xf3, 0x83, 0xa3, 0xf6, 0xf0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0x0a, 0x0b, 0xfb, 0x81, 0xad, 0xb0, 0x50, 0x71, 0x30, 0x16, 0x3b, 0x8f, 0x43, 0x83, 0x68, 0x61, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x16, 0x16, 0xc2, 0x81, 0xb5, 0xb0, 0x90, 0x1f, 0x84, 0x14, 0xf8, 0xf1, 0xfc, 0x78, 0x7c, 0x3c, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x3b, 0x63, 0x71, 0x03, 0xcb, 0x63, 0xa1, 0x63, 0x10, 0x2c, 0x6e, 0x38, 0xc5, 0x0e, 0xc2, 0xd9, 0x7e, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x4b, 0x63, 0x71, 0x07, 0x29, 0x65, 0xe2, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x8d, 0x85, 0x64, 0x60, 0x69, 0x2c, 0xc4, 0x07, 0xe7, 0xe0, 0xef, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xd6, 0x58, 0xfc, 0xc0, 0xd6, 0x58, 0x18, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xad, 0xb1, 0x10, 0x0c, 0x6c, 0x8d, 0x85, 0xd5, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x5b, 0x63, 0x21, 0x19, 0xd8, 0x1a, 0x0b, 0xe1, 0x20, 0x19, 0x68, 0xdd, 0x77, 0x10, 0xf0, 0xfe, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xad, 0xb1, 0x90, 0x0e, 0x6c, 0x8d, 0x85, 0xc1, 0xc1, 0xf8, 0xe9, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xb6, 0xc6, 0xc2, 0x62, 0x60, 0x6b, 0x2c, 0x8c, 0x0e, 0x86, 0x66, 0xd7, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x5b, 0x63, 0x61, 0x36, 0xb0, 0x35, 0x16, 0x76, 0x87, 0x18, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x6b, 0x63, 0x71, 0x07, 0x29, 0x65, 0xe2, 0x83, 0x60, 0x83, 0x91, 0xff, 0xb0, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xbd, 0xb1, 0xb8, 0x83, 0x94, 0x32, 0xf1, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xf6, 0xc6, 0x42, 0x32, 0xb0, 0x37, 0x16, 0xd2, 0x83, 0x74, 0x90, 0xee, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xe2, 0x58, 0xfc, 0xc0, 0xe2, 0x58, 0x98, 0x0f, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x16, 0xc7, 0x42, 0x34, 0xb0, 0x38, 0x16, 0xd2, 0x43, 0x34, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xe2, 0x58, 0x88, 0x07, 0x16, 0xc7, 0x42, 0x7e, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x16, 0xc7, 0xc2, 0x60, 0x60, 0x71, 0x2c, 0xac, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x38, 0x16, 0x66, 0x07, 0xc9, 0xec, 0xe3, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x71, 0x2c, 0xec, 0x06, 0x16, 0xc7, 0xc2, 0xf4, 0x20, 0xed, 0xa5, 0x7a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x8b, 0x63, 0x61, 0x3b, 0xb0, 0x38, 0x16, 0xc6, 0x87, 0x18, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x9b, 0x63, 0x71, 0x07, 0x29, 0x65, 0xe2, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x8e, 0xc5, 0x1d, 0xa4, 0x94, 0x89, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x3a, 0x16, 0x92, 0x81, 0xd5, 0xb1, 0xb0, 0x1b, 0x24, 0xc3, 0x0c, 0xa2, 0x85, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xea, 0x58, 0xd8, 0x0c, 0xac, 0x8e, 0x85, 0xd9, 0x41, 0x50, 0x7a, 0x1f, 0xb2, 0x15, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xdd, 0xb1, 0xf8, 0x81, 0xdd, 0xb1, 0x30, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xbb, 0x63, 0x21, 0x18, 0xd8, 0x1d, 0x0b, 0xd9, 0xc1, 0x98, 0xb0, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xee, 0x58, 0x08, 0x07, 0x76, 0xc7, 0xc2, 0x72, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x3b, 0x16, 0xf2, 0x81, 0xdd, 0xb1, 0x30, 0x39, 0x44, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x8e, 0x85, 0xcd, 0xc0, 0xee, 0x58, 0x18, 0x1d, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xdd, 0xb1, 0xb0, 0x1a, 0xd8, 0x1d, 0x0b, 0xc3, 0x83, 0x91, 0x65, 0x35, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x8f, 0xc5, 0x1d, 0xa4, 0x94, 0x89, 0x0f, 0x82, 0x0d, 0x46, 0xfe, 0xc3, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x96, 0xc7, 0xc2, 0x6e, 0x60, 0x79, 0x2c, 0x54, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xe5, 0xb1, 0x30, 0x1c, 0x58, 0x1e, 0x0b, 0xfb, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x96, 0xc7, 0xc2, 0x72, 0x60, 0x79, 0x2c, 0x8c, 0x0f, 0x42, 0xc4, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x8f, 0x85, 0xf5, 0xc0, 0xf2, 0x58, 0x98, 0x1f, 0x1a, 0x09, 0x1e, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x3c, 0x16, 0x0a, 0x06, 0x96, 0xc7, 0x42, 0xc3, 0x41, 0x50, 0x7a, 0x1f, 0x8f, 0x8f, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x73, 0x2c, 0x24, 0x03, 0x9b, 0x63, 0x21, 0x3c, 0x34, 0x12, 0x3c, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0xc7, 0xa1, 0xe3, 0xf1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0x23, 0x8b, 0x1b, 0x58, 0x28, 0x0b, 0x1d, 0x83, 0x60, 0x71, 0x83, 0x00, 0xb8, 0x3f, 0x08, 0x67, 0xfb, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x91, 0xc5, 0x1d, 0x24, 0xfe, 0x97, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x22, 0x59, 0xdc, 0x41, 0xe2, 0x7f, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x36, 0xc9, 0xe2, 0x0e, 0x12, 0xff, 0xcb, 0x87, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x9b, 0x64, 0x21, 0x19, 0xd8, 0x24, 0x0b, 0x8b, 0xe1, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x26, 0x59, 0xc8, 0x06, 0x36, 0xc9, 0x42, 0x78, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x36, 0xc9, 0x42, 0x3a, 0xb0, 0x49, 0x16, 0x06, 0x13, 0xc4, 0x7c, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x92, 0xc5, 0x0f, 0xac, 0x92, 0x85, 0xe8, 0x60, 0xbc, 0xe9, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x97, 0x2c, 0xee, 0x20, 0xf1, 0xbf, 0x7c, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x92, 0x85, 0x64, 0x60, 0x97, 0x2c, 0x84, 0x07, 0x69, 0x2f, 0xd5, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0x26, 0x8b, 0x3b, 0x48, 0xfc, 0x2f, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x99, 0x2c, 0xc4, 0x03, 0xcb, 0x64, 0x61, 0x37, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x32, 0x59, 0xc8, 0x07, 0x96, 0xc9, 0xc2, 0xe4, 0xe0, 0x28, 0xbf, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x96, 0xc9, 0xc2, 0x66, 0x60, 0x99, 0x2c, 0xcc, 0x0e, 0x52, 0x20, 0xcd, 0x8f, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0x26, 0x8b, 0x3b, 0x48, 0xfc, 0x2f, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x9d, 0x2c, 0xee, 0x20, 0xf1, 0xbf, 0x7c, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x75, 0xb2, 0x90, 0x0c, 0xac, 0x93, 0x85, 0xf9, 0x20, 0x19, 0x66, 0x10, 0x2d, 0xec, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xd6, 0xc9, 0xc2, 0x66, 0x60, 0x9d, 0x2c, 0xac, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0x40, 0xcc, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x4e, 0x16, 0x96, 0x03, 0xeb, 0x64, 0x61, 0x7c, 0x1c, 0x3a, 0x9e, 0x1f, 0x04, 0x39, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x9f, 0x2c, 0x7e, 0x60, 0x9f, 0x2c, 0xc4, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x9f, 0x2c, 0x04, 0x03, 0xfb, 0x64, 0x21, 0x3b, 0x48, 0xc0, 0x16, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x3e, 0x59, 0x08, 0x07, 0xf6, 0xc9, 0x42, 0x7a, 0x38, 0xda, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x85, 0xb2, 0xb8, 0x83, 0xc4, 0xff, 0xf2, 0x41, 0xb0, 0xc1, 0xc8, 0x7f, 0x58, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x42, 0x59, 0xd8, 0x0d, 0x2c, 0x94, 0x85, 0x8a, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x50, 0x16, 0x86, 0x03, 0x0b, 0x65, 0x61, 0x3f, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x42, 0x59, 0x58, 0x0e, 0x2c, 0x94, 0x85, 0xf1, 0xc1, 0x30, 0x86, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x0b, 0x65, 0x61, 0x3d, 0xb0, 0x50, 0x16, 0xe6, 0x87, 0x46, 0x82, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x94, 0x85, 0x82, 0x81, 0x85, 0xb2, 0xd0, 0x70, 0x10, 0x94, 0xde, 0xc7, 0xe3, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0x26, 0x0b, 0xc9, 0xc0, 0x36, 0x59, 0x98, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x4d, 0x16, 0xa2, 0x81, 0x6d, 0xb2, 0x90, 0x0e, 0x92, 0x81, 0xe2, 0x74, 0x30, 0xfc, 0x63, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xdb, 0x64, 0x21, 0x1e, 0xd8, 0x26, 0x0b, 0x8b, 0x83, 0x12, 0x46, 0x62, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x9b, 0x2c, 0x4c, 0x06, 0xb6, 0xc9, 0xc2, 0x72, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x6c, 0x93, 0x85, 0xcd, 0xc0, 0x36, 0x59, 0x98, 0x1d, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x4d, 0x16, 0x76, 0x03, 0xdb, 0x64, 0x61, 0x78, 0x38, 0xda, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x6d, 0xb2, 0x30, 0x1d, 0xd8, 0x26, 0x0b, 0xeb, 0x43, 0xaa, 0xe6, 0x38, 0x74, 0x1c, 0x3a, 0x1e, 0x1f, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x21, 0x16, 0x37, 0xb0, 0x27, 0x16, 0x8a, 0x06, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x36, 0xc4, 0xc2, 0xf8, 0x20, 0xf5, 0x2e, 0x7d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x2b, 0x62, 0x71, 0x07, 0xa9, 0x77, 0xe9, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x88, 0x85, 0xe5, 0xc0, 0x8a, 0x58, 0xe8, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x2b, 0x62, 0x61, 0x3a, 0xb0, 0x22, 0x16, 0x1a, 0x87, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x2b, 0x62, 0x61, 0x3c, 0xb0, 0x22, 0x16, 0xf6, 0x87, 0x56, 0xe2, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0x11, 0x0b, 0x05, 0x03, 0x2b, 0x62, 0xa1, 0x70, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x15, 0xb1, 0xd0, 0x30, 0xb0, 0x22, 0x16, 0x7a, 0x86, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x2b, 0x62, 0xa1, 0xe5, 0x20, 0x75, 0x42, 0xfd, 0xe0, 0x14, 0xe0, 0x7b, 0x70, 0xd4, 0xd2, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x88, 0x85, 0xa2, 0x81, 0x15, 0xb1, 0xd0, 0x75, 0x88, 0xe6, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x22, 0x16, 0xca, 0x06, 0x56, 0xc4, 0x42, 0xdf, 0x21, 0x86, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x88, 0x85, 0xca, 0x81, 0x15, 0xb1, 0x50, 0x3f, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x8a, 0x58, 0xe8, 0x1c, 0x58, 0x11, 0x0b, 0xcd, 0xc3, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x15, 0xb1, 0xd0, 0x7b, 0x90, 0x88, 0xa9, 0x7e, 0x70, 0x0a, 0xf0, 0x3d, 0x38, 0x6c, 0xea, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x15, 0xb1, 0x50, 0x3d, 0xb0, 0x22, 0x16, 0xda, 0x0f, 0xd1, 0x3c, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x47, 0x2c, 0xee, 0x20, 0xf5, 0x2e, 0x7d, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x23, 0x16, 0x92, 0x81, 0x1d, 0xb1, 0x10, 0x1e, 0x84, 0x14, 0xf8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0x12, 0x8b, 0x3b, 0x48, 0xbd, 0x4b, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x4b, 0x2c, 0xc4, 0x03, 0x5b, 0x62, 0x61, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x96, 0x58, 0xc8, 0x07, 0xb6, 0xc4, 0xc2, 0x66, 0x90, 0x0c, 0x28, 0xd5, 0xfb, 0x0e, 0xc6, 0xbb, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0x12, 0x0b, 0xa3, 0x81, 0x2d, 0xb1, 0xb0, 0x3b, 0xe4, 0x6b, 0x8f, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0x13, 0x8b, 0x3b, 0x48, 0xbd, 0x4b, 0x1f, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x89, 0x85, 0x64, 0x60, 0x4d, 0x2c, 0xcc, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0x13, 0x0b, 0xd1, 0xc0, 0x9a, 0x58, 0x48, 0x0f, 0x8e, 0x9b, 0xd7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x35, 0xb1, 0x10, 0x0f, 0xac, 0x89, 0x85, 0xc5, 0x61, 0x5c, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x35, 0xb1, 0x30, 0x19, 0x58, 0x13, 0x0b, 0xab, 0xe3, 0xd0, 0x71, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x89, 0x85, 0xe1, 0xc0, 0x9a, 0x58, 0xa8, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x4d, 0x2c, 0x2c, 0x07, 0xd6, 0xc4, 0xc2, 0x7a, 0x90, 0x0c, 0x38, 0xae, 0xf7, 0x1d, 0x0c, 0x43, 0x9f, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x9a, 0x58, 0x98, 0x0f, 0xac, 0x89, 0x85, 0x86, 0xc3, 0xda, 0xef, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x9a, 0x58, 0xa8, 0x18, 0x58, 0x13, 0x0b, 0x2d, 0x87, 0x71, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xd6, 0xc4, 0x42, 0xcd, 0xc0, 0x9a, 0x58, 0x68, 0x3a, 0x48, 0x7b, 0xa9, 0x3e, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x4f, 0x2c, 0xee, 0x20, 0xf5, 0x2e, 0x7d, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x3d, 0xb1, 0xd8, 0x81, 0x3d, 0xb1, 0x10, 0x1d, 0xa4, 0x83, 0x74, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xf6, 0xc4, 0x42, 0x36, 0xb0, 0x27, 0x16, 0xe2, 0xc3, 0xda, 0xef, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x27, 0x16, 0xf2, 0x81, 0x3d, 0xb1, 0xd0, 0x33, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x9e, 0x58, 0x18, 0x0c, 0xec, 0x89, 0x85, 0xd1, 0x20, 0xd9, 0xa0, 0x9c, 0xd5, 0x39, 0x18, 0x86, 0x3e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x3d, 0xb1, 0xb0, 0x1a, 0xd8, 0x13, 0x0b, 0x15, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x89, 0x85, 0xd9, 0xc0, 0x9e, 0x58, 0x58, 0x1e, 0x1c, 0xaf, 0xa0, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x7b, 0x62, 0x61, 0x3a, 0xb0, 0x27, 0x16, 0xd6, 0x87, 0x71, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xf6, 0xc4, 0xc2, 0x7c, 0x60, 0x4f, 0x2c, 0x34, 0x1c, 0x87, 0x8e, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x9e, 0x58, 0xe8, 0x18, 0xd8, 0x13, 0x0b, 0x35, 0x07, 0x69, 0x1b, 0xcf, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x96, 0xc4, 0xe2, 0x07, 0x96, 0xc4, 0x42, 0xe1, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x4b, 0x62, 0x21, 0x18, 0x58, 0x12, 0x0b, 0xe1, 0x20, 0x19, 0x70, 0x5c, 0xef, 0x3b, 0x18, 0xef, 0x3a, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x25, 0xb1, 0x90, 0x0e, 0x2c, 0x89, 0x85, 0xa6, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x96, 0xc4, 0x42, 0x3c, 0xb0, 0x24, 0x16, 0x26, 0x83, 0x64, 0x83, 0xa2, 0x3e, 0xe7, 0x60, 0xbc, 0xeb, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x96, 0xc4, 0xc2, 0x66, 0x60, 0x49, 0x2c, 0x94, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x24, 0x16, 0x46, 0x03, 0x4b, 0x62, 0x61, 0x38, 0x48, 0x36, 0x28, 0x67, 0x75, 0x0e, 0xc6, 0xbb, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x49, 0x2c, 0x2c, 0x07, 0x96, 0xc4, 0xc2, 0x7e, 0x98, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x89, 0x85, 0xed, 0xc0, 0x92, 0x58, 0x98, 0x1f, 0x84, 0x00, 0xf8, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x24, 0x16, 0x0a, 0x06, 0x96, 0xc4, 0x42, 0xc7, 0x41, 0xda, 0xc6, 0xf3, 0x71, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0x12, 0x0b, 0x2d, 0x03, 0x4b, 0x62, 0xa1, 0xe8, 0x90, 0xaf, 0x3d, 0x0e, 0x2d, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x89, 0x85, 0xaa, 0x81, 0x25, 0xb1, 0xd0, 0x75, 0x38, 0xda, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x25, 0xb1, 0x50, 0x36, 0xb0, 0x24, 0x16, 0xfa, 0x0e, 0xd2, 0x5e, 0xaa, 0x8f, 0x43, 0xc7, 0xe3, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x76, 0xba, 0xe2, 0x07, 0xf6, 0xbf, 0x42, 0xb2, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xd6, 0xbe, 0x42, 0x32, 0xb0, 0xf8, 0x15, 0x7a, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xed, 0x2b, 0x6c, 0x0f, 0x52, 0x33, 0xde, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xf7, 0x15, 0x92, 0x83, 0xd4, 0x8c, 0xf7, 0x61, 0x37, 0xac, 0xef, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xbd, 0xaf, 0x30, 0x19, 0xd8, 0xfb, 0x0a, 0xab, 0x83, 0xc0, 0xc4, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xe2, 0x57, 0x48, 0x0e, 0x52, 0x33, 0xde, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xe2, 0x57, 0x88, 0x06, 0x16, 0xbf, 0x42, 0x7a, 0x90, 0xf6, 0x52, 0x3d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xc5, 0xaf, 0x10, 0x0f, 0x2c, 0x7e, 0x85, 0xda, 0xe1, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xe2, 0x57, 0x58, 0x0c, 0x2c, 0x7e, 0x85, 0x92, 0x41, 0xb4, 0xa0, 0x7e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x8b, 0x5f, 0x61, 0x37, 0xb0, 0xf8, 0x15, 0x3a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xfc, 0x0a, 0xeb, 0x81, 0xc5, 0xaf, 0x50, 0x71, 0x18, 0x97, 0xe3, 0xf1, 0xf1, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x8b, 0x5f, 0xa1, 0x65, 0x60, 0xf1, 0x2b, 0xb4, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xf8, 0x15, 0x6a, 0x06, 0x16, 0xbf, 0x42, 0xdd, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x8b, 0x5f, 0xa1, 0x67, 0x60, 0xf1, 0x2b, 0x74, 0x0d, 0x92, 0x81, 0xe1, 0x3b, 0x24, 0x97, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xe2, 0x57, 0x28, 0x1b, 0x58, 0xfc, 0x0a, 0x6d, 0x07, 0x65, 0xdc, 0xce, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x7e, 0x85, 0xbe, 0x81, 0xc5, 0xaf, 0x50, 0x7a, 0x88, 0xe6, 0x71, 0xe8, 0x78, 0xbc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xfd, 0x0a, 0x8b, 0x81, 0xd5, 0xaf, 0x70, 0x66, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x56, 0xbf, 0xc2, 0x74, 0x60, 0xf5, 0x2b, 0x7c, 0x19, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xf5, 0x2b, 0x6c, 0x07, 0x56, 0xbf, 0x42, 0xc1, 0xc1, 0xe0, 0xae, 0x1c, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x7e, 0x85, 0x86, 0x81, 0xd5, 0xaf, 0xd0, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x56, 0xbf, 0x42, 0xc5, 0xc0, 0xea, 0x57, 0x28, 0x39, 0x48, 0x28, 0x3b, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xea, 0x57, 0x68, 0x19, 0x58, 0xfd, 0x0a, 0x45, 0x87, 0xd4, 0xc1, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xfa, 0x15, 0xaa, 0x06, 0x56, 0xbf, 0xc2, 0x95, 0x41, 0xb0, 0xc1, 0xc8, 0x7f, 0x58, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xea, 0x57, 0x28, 0x1f, 0x58, 0xfd, 0x0a, 0x4f, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xea, 0x57, 0x68, 0x1f, 0x58, 0xfd, 0x0a, 0x37, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xfd, 0x0a, 0x0f, 0x06, 0x56, 0xbf, 0xc2, 0x87, 0x41, 0x32, 0x30, 0x7e, 0x07, 0xe3, 0x5d, 0x67, 0x90, 0x0c, 0xda, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xab, 0x5f, 0xe1, 0xc4, 0xc0, 0xea, 0x57, 0x78, 0x71, 0x68, 0x24, 0x78, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xea, 0x57, 0xf8, 0x31, 0xb0, 0xfa, 0x15, 0x8e, 0x1c, 0x04, 0xa5, 0xf7, 0xf1, 0xf8, 0x38, 0x74, 0x3c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x8e, 0x57, 0x58, 0x0c, 0xec, 0x78, 0x85, 0x33, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xe3, 0x15, 0xa6, 0x03, 0x3b, 0x5e, 0xe1, 0xcb, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x3b, 0x5e, 0x61, 0x3b, 0xb0, 0xe3, 0x15, 0x0a, 0x0e, 0x06, 0x77, 0xe5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xc7, 0x2b, 0x34, 0x0c, 0xec, 0x78, 0x85, 0xa6, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xe3, 0x15, 0x2a, 0x06, 0x76, 0xbc, 0x42, 0xc9, 0xc1, 0x91, 0xa7, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x3b, 0x5e, 0xa1, 0x65, 0x60, 0xc7, 0x2b, 0x14, 0x1d, 0x52, 0x07, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x8e, 0x57, 0xa8, 0x1a, 0xd8, 0xf1, 0x0a, 0x57, 0x06, 0xc1, 0x06, 0x23, 0xff, 0x61, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x3b, 0x5e, 0xa1, 0x7c, 0x60, 0xc7, 0x2b, 0x3c, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x3b, 0x5e, 0xa1, 0x7d, 0x60, 0xc7, 0x2b, 0xdc, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xc7, 0x2b, 0x3c, 0x18, 0xd8, 0xf1, 0x0a, 0x1f, 0x0e, 0x12, 0xfa, 0xe2, 0x07, 0xc9, 0xa0, 0x6c, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xe3, 0x15, 0x4e, 0x0c, 0xec, 0x78, 0x85, 0x17, 0x87, 0x46, 0x82, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x78, 0x85, 0x1f, 0x03, 0x3b, 0x5e, 0xe1, 0xc8, 0x41, 0x50, 0x7a, 0x1f, 0x8f, 0x8f, 0x43, 0xc7, 0xe3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xfb, 0x15, 0x16, 0x03, 0xbb, 0x5f, 0xe1, 0xcc, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x7e, 0x85, 0xe9, 0xc0, 0xee, 0x57, 0xf8, 0x32, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xee, 0x57, 0xd8, 0x0e, 0xec, 0x7e, 0x85, 0x82, 0x83, 0xc1, 0x5d, 0x39, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xfd, 0x0a, 0x0d, 0x03, 0xbb, 0x5f, 0xa1, 0x69, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x7e, 0x85, 0x8a, 0x81, 0xdd, 0xaf, 0x50, 0x72, 0x90, 0x0e, 0xe5, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xdd, 0xaf, 0xd0, 0x32, 0xb0, 0xfb, 0x15, 0x8a, 0x0e, 0xa9, 0x83, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xf7, 0x2b, 0x54, 0x0d, 0xec, 0x7e, 0x85, 0x2b, 0x83, 0x60, 0x83, 0x91, 0xff, 0xb0, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xdd, 0xaf, 0x50, 0x3e, 0xb0, 0xfb, 0x15, 0x9e, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xdd, 0xaf, 0xd0, 0x3e, 0xb0, 0xfb, 0x15, 0x6e, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xfb, 0x15, 0x1e, 0x0c, 0xec, 0x7e, 0x85, 0x0f, 0x07, 0x09, 0x7d, 0xf1, 0x83, 0x64, 0x10, 0x0d, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x76, 0xbf, 0xc2, 0x89, 0x81, 0xdd, 0xaf, 0xf0, 0xe2, 0xd0, 0x48, 0xf0, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xdd, 0xaf, 0xf0, 0x63, 0x60, 0xf7, 0x2b, 0x1c, 0x39, 0x08, 0x4a, 0xef, 0xe3, 0xf1, 0x71, 0xe8, 0x78, 0xbc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xb6, 0xbf, 0xc2, 0x62, 0x60, 0xfb, 0x2b, 0x34, 0x0d, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xf6, 0x57, 0x98, 0x0e, 0x6c, 0x7f, 0x85, 0xa2, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xb6, 0xbf, 0xc2, 0x76, 0x60, 0xfb, 0x2b, 0x74, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xfd, 0x15, 0xc6, 0x03, 0xdb, 0x5f, 0xa1, 0x60, 0x90, 0x0c, 0x56, 0x87, 0xe4, 0xd2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xfe, 0x0a, 0x0d, 0x03, 0xdb, 0x5f, 0xa1, 0xe2, 0xd0, 0x4a, 0xfc, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xb6, 0xbf, 0x42, 0xc9, 0xc0, 0xf6, 0x57, 0xe8, 0x39, 0xa4, 0x0e, 0x8e, 0x43, 0xc7, 0xe3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xe1, 0x15, 0x16, 0x03, 0x1b, 0x5e, 0xa1, 0x69, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x36, 0xbc, 0xc2, 0x74, 0x60, 0xc3, 0x2b, 0x14, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xe1, 0x15, 0xb6, 0x03, 0x1b, 0x5e, 0xa1, 0x63, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x0d, 0xaf, 0x30, 0x1e, 0xd8, 0xf0, 0x0a, 0x05, 0x07, 0xc9, 0x98, 0xf4, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xc3, 0x2b, 0x34, 0x0c, 0x6c, 0x78, 0x85, 0x8a, 0xc3, 0xd1, 0x7e, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x1b, 0x5e, 0xa1, 0x64, 0x60, 0xc3, 0x2b, 0xf4, 0x1c, 0x52, 0x07, 0xc7, 0xa1, 0xe3, 0xf1, 0x0a, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xf9, 0x2b, 0x2c, 0x06, 0x96, 0xbf, 0xc2, 0x99, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xfe, 0x0a, 0xd3, 0x81, 0xe5, 0xaf, 0xf0, 0x65, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xe5, 0xaf, 0xb0, 0x1d, 0x58, 0xfe, 0x0a, 0x05, 0x07, 0x83, 0xbb, 0x72, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xfc, 0x15, 0x1a, 0x06, 0x96, 0xbf, 0x42, 0xd3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xfe, 0x0a, 0x15, 0x03, 0xcb, 0x5f, 0xa1, 0xe4, 0x20, 0x51, 0xee, 0x63, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xcb, 0x5f, 0xa1, 0x65, 0x60, 0xf9, 0x2b, 0x14, 0x1d, 0x52, 0x07, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xf2, 0x57, 0xa8, 0x1a, 0x58, 0xfe, 0x0a, 0x57, 0x06, 0xc1, 0x06, 0x23, 0xff, 0x61, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xcb, 0x5f, 0xa1, 0x7c, 0x60, 0xf9, 0x2b, 0x3c, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xcb, 0x5f, 0xa1, 0x7d, 0x60, 0xf9, 0x2b, 0xdc, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xf9, 0x2b, 0x3c, 0x18, 0x58, 0xfe, 0x0a, 0x1f, 0x0e, 0x12, 0xfa, 0xe2, 0x07, 0xc9, 0x30, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xe5, 0xaf, 0x70, 0x62, 0x60, 0xf9, 0x2b, 0xbc, 0x38, 0x34, 0x12, 0x3c, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xf9, 0x2b, 0xfc, 0x18, 0x58, 0xfe, 0x0a, 0x47, 0x0e, 0x82, 0xd2, 0xfb, 0x78, 0x7c, 0x1c, 0x3a, 0x1e, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x15, 0xaf, 0xb0, 0x18, 0x58, 0xf1, 0x0a, 0x07, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xf1, 0x0a, 0x93, 0x81, 0x15, 0xaf, 0xb0, 0x3b, 0x48, 0x6c, 0x39, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x78, 0x85, 0xe1, 0xc0, 0x8a, 0x57, 0x98, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x15, 0xaf, 0xb0, 0x1c, 0x58, 0xf1, 0x0a, 0xdb, 0x31, 0x54, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xc5, 0x2b, 0x8c, 0x07, 0x56, 0xbc, 0xc2, 0xfa, 0x70, 0xb4, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x2b, 0x5e, 0x61, 0x3f, 0xb0, 0xe2, 0x15, 0xfa, 0x07, 0xc1, 0x06, 0x23, 0xff, 0x61, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x2b, 0x5e, 0xa1, 0x71, 0x60, 0xc5, 0x2b, 0xd4, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x15, 0xaf, 0x50, 0x39, 0xb0, 0xe2, 0x15, 0xba, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xf1, 0x0a, 0xb5, 0x03, 0x2b, 0x5e, 0xa1, 0x78, 0x90, 0x0c, 0x8c, 0xdf, 0x41, 0x90, 0xf3, 0x0f, 0x92, 0xc1, 0x6e, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xe2, 0x15, 0x9a, 0x07, 0x56, 0xbc, 0x42, 0xf5, 0xa1, 0x91, 0xe0, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x2b, 0x5e, 0xa1, 0x7c, 0x60, 0xc5, 0x2b, 0xb4, 0x1f, 0x04, 0xa5, 0xf7, 0xf1, 0xf8, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x35, 0xaf, 0x90, 0x0c, 0xec, 0x7c, 0x85, 0xfd, 0x20, 0xd8, 0x60, 0xc0, 0xed, 0x2e, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xcf, 0x2b, 0x24, 0x07, 0x69, 0xf7, 0xf7, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x3d, 0xaf, 0x90, 0x0e, 0xec, 0x79, 0x85, 0xe5, 0xc1, 0x59, 0x28, 0x7d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x79, 0x85, 0xed, 0xc0, 0x9e, 0x57, 0xa8, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xcf, 0x2b, 0x8c, 0x07, 0xf6, 0xbc, 0x42, 0xc1, 0x41, 0x0a, 0x80, 0xfb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xcf, 0x2b, 0x34, 0x0c, 0xec, 0x79, 0x85, 0xd6, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x9e, 0x57, 0x28, 0x19, 0xd8, 0xf3, 0x0a, 0x3d, 0x87, 0x71, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x7b, 0x5e, 0xa1, 0x68, 0x60, 0xcf, 0x2b, 0xb4, 0x0d, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x8e, 0x83, 0xa7, 0x83, 0xbb, 0x07, 0x01, 0x1e, 0x74, 0x7c, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x9e, 0x57, 0xa8, 0x1b, 0xd8, 0xf3, 0x0a, 0xa5, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x8b, 0xe3, 0xa0, 0xed, 0x20, 0x25, 0x16, 0xff, 0xf8, 0x36, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x79, 0x85, 0xda, 0x81, 0x3d, 0xaf, 0xd0, 0x7c, 0x10, 0x98, 0xd8, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x7a, 0x85, 0xe4, 0x20, 0xed, 0xfe, 0x7e, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xe8, 0x15, 0xd2, 0x81, 0x45, 0xaf, 0xb0, 0x3c, 0x38, 0x87, 0xa4, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x45, 0xaf, 0xb0, 0x1d, 0x58, 0xf4, 0x0a, 0x5d, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x7a, 0x85, 0xf1, 0xc0, 0xa2, 0x57, 0x28, 0x38, 0x48, 0x01, 0x70, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x7a, 0x85, 0x86, 0x81, 0x45, 0xaf, 0x50, 0x33, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x38, 0x0e, 0xee, 0x0e, 0x1e, 0x1e, 0x0c, 0xbb, 0xdd, 0xe3, 0xdb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xe8, 0x15, 0x7a, 0x06, 0x16, 0xbd, 0x42, 0xd5, 0x41, 0x60, 0x62, 0x1f, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xe9, 0x15, 0x92, 0x83, 0xb4, 0xfb, 0xfb, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x56, 0xbd, 0x42, 0x72, 0x90, 0x76, 0x7f, 0x3f, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xaa, 0x57, 0x18, 0x0c, 0xac, 0x7a, 0x85, 0xf9, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xab, 0x5e, 0x61, 0x31, 0xb0, 0xea, 0x15, 0x96, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x7a, 0x85, 0xc9, 0xc0, 0xaa, 0x57, 0x98, 0x1d, 0x24, 0x63, 0xd2, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x55, 0xaf, 0xb0, 0x1b, 0x58, 0xf5, 0x0a, 0xc3, 0xc3, 0xd1, 0x7e, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xab, 0x5e, 0x61, 0x3a, 0xb0, 0xea, 0x15, 0xd6, 0x07, 0x23, 0xb3, 0xf7, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x5d, 0xaf, 0x90, 0x1c, 0xa4, 0xdd, 0xdf, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x7b, 0x85, 0x6c, 0x60, 0xe1, 0x2b, 0x34, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xec, 0x15, 0x56, 0x03, 0xcb, 0x5e, 0xa1, 0x66, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x65, 0xaf, 0x30, 0x1b, 0x58, 0xf6, 0x0a, 0xe3, 0xe1, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xb2, 0x57, 0x98, 0x1e, 0x24, 0xc6, 0xea, 0x1f, 0x9c, 0x78, 0x9f, 0x0f, 0xc6, 0x1d, 0xd4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xf6, 0x0a, 0xeb, 0x81, 0x65, 0xaf, 0xd0, 0x32, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xb2, 0x57, 0x98, 0x0f, 0x2c, 0x7b, 0x85, 0x8a, 0x41, 0x32, 0xa0, 0x54, 0xef, 0x3b, 0x18, 0x86, 0x3e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xd9, 0x2b, 0x74, 0x0c, 0x2c, 0x7b, 0x85, 0x92, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x6d, 0xaf, 0x90, 0x1d, 0x24, 0x13, 0xea, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xed, 0x15, 0x46, 0x03, 0xdb, 0x5e, 0xa1, 0x66, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x6d, 0xaf, 0x30, 0x1b, 0xd8, 0xf6, 0x0a, 0xe3, 0xe1, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xb6, 0x57, 0x98, 0x1e, 0x24, 0xbe, 0xed, 0x1f, 0x9c, 0x08, 0xa1, 0x0f, 0x4a, 0x86, 0xa6, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x6d, 0xaf, 0xb0, 0x1e, 0xd8, 0xf6, 0x0a, 0x05, 0x87, 0xa6, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xf6, 0x0a, 0x0d, 0x03, 0xdb, 0x5e, 0xa1, 0xe2, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xdb, 0x2b, 0x74, 0x0c, 0x6c, 0x7b, 0x85, 0x96, 0xc3, 0xd1, 0x7e, 0x1c, 0x3a, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xdd, 0x2b, 0x64, 0x07, 0xc9, 0x84, 0xfa, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x75, 0xaf, 0x90, 0x0f, 0xac, 0x7b, 0x85, 0xa2, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xd6, 0xbd, 0xc2, 0x60, 0x60, 0xdd, 0x2b, 0xcc, 0x86, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xeb, 0x5e, 0x61, 0x74, 0x90, 0x0c, 0xc4, 0x7f, 0x70, 0x0e, 0x87, 0x3e, 0x38, 0x31, 0xfb, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x75, 0xaf, 0xb0, 0x1b, 0x58, 0xf7, 0x0a, 0x3d, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x7b, 0x85, 0xe1, 0xc0, 0xba, 0x57, 0x98, 0x0f, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xd6, 0xbd, 0xc2, 0xf8, 0x20, 0x3d, 0x92, 0xff, 0xe0, 0x1c, 0x0e, 0x7d, 0x70, 0x82, 0xf0, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x7b, 0x85, 0xfd, 0xc0, 0xba, 0x57, 0xa8, 0x38, 0x28, 0x72, 0x15, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x75, 0xaf, 0xd0, 0x31, 0xb0, 0xee, 0x15, 0x6a, 0x0e, 0x46, 0xf3, 0xf9, 0x71, 0xe8, 0x38, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xd6, 0xbd, 0x42, 0xd5, 0xc0, 0xba, 0x57, 0xe8, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xeb, 0x5e, 0xa1, 0x6b, 0x60, 0xdd, 0x2b, 0xd4, 0x1d, 0x5a, 0x89, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xdd, 0x2b, 0xf4, 0x0d, 0xac, 0x7b, 0x85, 0xca, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xf6, 0xbd, 0x42, 0x76, 0x90, 0x4c, 0xa8, 0x3f, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xf7, 0x0a, 0xf9, 0xc0, 0xbe, 0x57, 0x28, 0x1a, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x7b, 0x85, 0xc1, 0x41, 0x3a, 0x57, 0xff, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xfb, 0x5e, 0x61, 0x31, 0xb0, 0xef, 0x15, 0x76, 0xc3, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x7d, 0xaf, 0xb0, 0x3a, 0x48, 0x45, 0xec, 0x3f, 0x38, 0x87, 0x43, 0x1f, 0x9c, 0x98, 0x7d, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xbe, 0x57, 0x18, 0x0e, 0xec, 0x7b, 0x85, 0x9e, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xf6, 0xbd, 0xc2, 0x72, 0x60, 0xdf, 0x2b, 0xec, 0x87, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xfb, 0x5e, 0x61, 0x7d, 0x90, 0x9c, 0xdd, 0x7f, 0x70, 0x0e, 0x87, 0x3e, 0x38, 0x41, 0xf8, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xf6, 0xbd, 0x42, 0xc1, 0xc0, 0xbe, 0x57, 0xe8, 0x38, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xfb, 0x5e, 0xa1, 0x64, 0x60, 0xdf, 0x2b, 0xd4, 0x1c, 0xfa, 0x93, 0x1f, 0x87, 0x8e, 0x43, 0x87, 0xf5, 0xcd, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xef, 0x15, 0xaa, 0x06, 0xf6, 0xbd, 0x42, 0xe7, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xf7, 0x0a, 0x5d, 0x03, 0xfb, 0x5e, 0xa1, 0xee, 0xd0, 0x4a, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xfb, 0x5e, 0xa1, 0x6f, 0x60, 0xdf, 0x2b, 0x54, 0x1e, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xf0, 0x15, 0xb2, 0x83, 0x64, 0x42, 0xfd, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xf0, 0x15, 0xc2, 0x81, 0x85, 0xaf, 0x30, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xe1, 0x2b, 0xa4, 0x03, 0x0b, 0x5f, 0x61, 0x33, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xf8, 0x0a, 0x8b, 0x83, 0x14, 0x5d, 0xff, 0x83, 0x73, 0x38, 0xf4, 0x41, 0xc9, 0xd0, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xf8, 0x0a, 0xa3, 0x81, 0x85, 0xaf, 0xb0, 0x3b, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x0b, 0x5f, 0x61, 0x38, 0xb0, 0xf0, 0x15, 0xb6, 0x87, 0x56, 0xe2, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x7c, 0x85, 0xf5, 0xc0, 0xc2, 0x57, 0x28, 0x38, 0xc4, 0x70, 0xf8, 0x05, 0xd1, 0x02, 0x61, 0x3f, 0x08, 0x01, 0xf0, 0xe3, 0xf1, 0xf0, 0x1b, 0x0c, 0x76, 0x80, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x6c, 0x7c, 0x85, 0xe4, 0x20, 0xed, 0xfe, 0x7e, 0xf8, 0x05, 0xd1, 0x02, 0xe1, 0x1f, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x6c, 0x7c, 0x85, 0xc9, 0xc0, 0xc6, 0x57, 0x58, 0x0f, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x36, 0xbe, 0xc2, 0xe6, 0x20, 0x3d, 0xed, 0x7f, 0xb8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xf1, 0x15, 0x56, 0x03, 0x1b, 0x5f, 0x61, 0x78, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x36, 0xbe, 0xc2, 0x72, 0x60, 0xe3, 0x2b, 0x8c, 0x0f, 0x4d, 0x87, 0x0e, 0xeb, 0x9b, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xe5, 0x2b, 0x64, 0x03, 0x2b, 0x5f, 0xe1, 0xc4, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x2b, 0x5f, 0x21, 0x1d, 0x58, 0xf9, 0x0a, 0x8b, 0x83, 0xc4, 0x68, 0xe9, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x95, 0xaf, 0x30, 0x19, 0x58, 0xf9, 0x0a, 0x5d, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x95, 0xaf, 0xb0, 0x1a, 0x58, 0xf9, 0x0a, 0x0d, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x7c, 0x85, 0xd9, 0xc0, 0xca, 0x57, 0x18, 0x0f, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x56, 0xbe, 0xc2, 0xf4, 0x60, 0x3d, 0x06, 0xc0, 0xc1, 0x89, 0x10, 0xfa, 0xe0, 0xc4, 0xec, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x56, 0xbe, 0xc2, 0x7a, 0x60, 0xe5, 0x2b, 0x14, 0x1c, 0x9a, 0x0e, 0x1d, 0x87, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xca, 0x57, 0xa8, 0x18, 0x58, 0xf9, 0x0a, 0x2d, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x8b, 0xe3, 0x41, 0x11, 0x02, 0x7d, 0x7c, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xca, 0x57, 0xa8, 0x19, 0x58, 0xf9, 0x0a, 0x55, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x8b, 0xe3, 0xe0, 0xe5, 0xa0, 0xad, 0xe3, 0xdb, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x95, 0xaf, 0x50, 0x36, 0xb0, 0xf2, 0x15, 0x3e, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xf2, 0x15, 0xda, 0x06, 0x56, 0xbe, 0x42, 0xeb, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x2b, 0x5f, 0xa1, 0x6e, 0x60, 0xe5, 0x2b, 0x54, 0x0e, 0x92, 0xc1, 0xea, 0x90, 0xad, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x2b, 0x5f, 0xa1, 0x73, 0x60, 0xe5, 0x2b, 0x94, 0x1e, 0x8e, 0xf6, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xf9, 0x0a, 0xb5, 0x03, 0x2b, 0x5f, 0xe1, 0xc2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x2b, 0x5f, 0xa1, 0x77, 0x60, 0xe5, 0x2b, 0xb4, 0x0f, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x56, 0xbe, 0x42, 0xf7, 0xc1, 0x72, 0x56, 0x80, 0x83, 0x13, 0x21, 0xf4, 0xc1, 0x61, 0x53, 0x77, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x7c, 0x85, 0xfa, 0x81, 0x95, 0xaf, 0xf0, 0xe0, 0xd0, 0x74, 0xe8, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x1d, 0x0c, 0xde, 0xc9, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x76, 0xbe, 0x42, 0x72, 0x90, 0x76, 0x7f, 0x3f, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xce, 0x57, 0x88, 0x06, 0x76, 0xbe, 0x42, 0x7c, 0x90, 0x18, 0x2d, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xf9, 0x0a, 0xf9, 0xc0, 0xce, 0x57, 0x98, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xf3, 0x15, 0x06, 0x03, 0x3b, 0x5f, 0x61, 0x35, 0x48, 0x06, 0xbb, 0x83, 0x20, 0xe7, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x7c, 0x85, 0xd9, 0xc0, 0xce, 0x57, 0xd8, 0x1d, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x9d, 0xaf, 0x30, 0x1c, 0xd8, 0xf9, 0x0a, 0xcb, 0x43, 0xea, 0xe0, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x7c, 0x85, 0xed, 0xc0, 0xce, 0x57, 0x98, 0x1f, 0x0c, 0xde, 0xc9, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x36, 0xbd, 0xc2, 0x64, 0x60, 0xd3, 0x2b, 0xf4, 0x0c, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x36, 0xbd, 0xc2, 0x6a, 0x60, 0xd3, 0x2b, 0x0c, 0x0f, 0x3d, 0x84, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xa6, 0x57, 0x58, 0x0e, 0x6c, 0x7a, 0x85, 0xf1, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x9b, 0x5e, 0x61, 0x3d, 0xb0, 0xe9, 0x15, 0x6a, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xa6, 0x57, 0x98, 0x0f, 0x6c, 0x7a, 0x85, 0x86, 0x83, 0xf4, 0xa7, 0xe7, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x6c, 0x7a, 0x85, 0x8a, 0x81, 0x4d, 0xaf, 0xd0, 0x72, 0x1c, 0x3a, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xfd, 0x2b, 0x2c, 0x06, 0xd6, 0xbf, 0x42, 0xf3, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x7f, 0x85, 0xe9, 0xc0, 0xfa, 0x57, 0x28, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xfa, 0x57, 0x28, 0x38, 0x58, 0xe7, 0x18, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xd6, 0xbf, 0x42, 0xc3, 0xc0, 0xfa, 0x57, 0x28, 0x39, 0x48, 0xdb, 0x78, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xeb, 0x5f, 0xa1, 0x65, 0x60, 0xfd, 0x2b, 0x14, 0x1d, 0x24, 0x48, 0x42, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xfd, 0x2b, 0x34, 0x0d, 0xac, 0x7f, 0x85, 0xde, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xd6, 0xbf, 0x42, 0xd5, 0xc0, 0xfa, 0x57, 0xa8, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xfd, 0x2b, 0x74, 0x0d, 0xac, 0x7f, 0x85, 0xbe, 0x83, 0x34, 0x1c, 0xf8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xfe, 0x15, 0x0a, 0x07, 0xd6, 0xbf, 0x42, 0xe3, 0xe1, 0x68, 0x3f, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xf5, 0xaf, 0xd0, 0x39, 0xb0, 0xfe, 0x15, 0x6a, 0x0f, 0xa9, 0x83, 0xe3, 0xd0, 0xf1, 0xf8, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x9d, 0xaa, 0xf8, 0x81, 0x8d, 0xae, 0x90, 0x0c, 0x82, 0x0d, 0xd2, 0xa3, 0x7c, 0x16, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x52, 0x55, 0x58, 0x0c, 0x2c, 0x55, 0x85, 0xae, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xaa, 0x0a, 0xeb, 0x81, 0xa5, 0xaa, 0x50, 0x35, 0x48, 0x06, 0xd9, 0x20, 0x5a, 0x50, 0x3f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xa5, 0xaa, 0x50, 0x33, 0xb0, 0x54, 0x15, 0x9a, 0x0e, 0xa9, 0x83, 0x43, 0x72, 0xe9, 0x78, 0xbc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xb6, 0xaa, 0xc2, 0x62, 0x60, 0xab, 0x2a, 0xd4, 0x0c, 0xb2, 0x0d, 0x71, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x56, 0x55, 0x58, 0x1d, 0x2c, 0xc7, 0x11, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x56, 0x55, 0x98, 0x1e, 0x2c, 0xc7, 0x11, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xab, 0x2a, 0x6c, 0x07, 0xb6, 0xaa, 0xc2, 0x7c, 0x90, 0x0c, 0x04, 0xe9, 0x60, 0xbc, 0xeb, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xb6, 0xaa, 0xc2, 0x7e, 0x60, 0xab, 0x2a, 0x14, 0x1c, 0xfa, 0x93, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x5b, 0x55, 0xa1, 0x61, 0x60, 0xab, 0x2a, 0xb4, 0x0c, 0x92, 0x41, 0x76, 0x3c, 0x3e, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xaf, 0x2a, 0x24, 0x03, 0x0b, 0x5d, 0x21, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x62, 0x55, 0x48, 0x0e, 0x56, 0x20, 0x0a, 0x0c, 0xb2, 0x0d, 0x71, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x66, 0x55, 0x48, 0x0e, 0x56, 0x20, 0x0a, 0x0c, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x36, 0xab, 0x42, 0x3a, 0xb0, 0x59, 0x15, 0xc6, 0x07, 0xe9, 0x71, 0x3e, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xb5, 0x2a, 0x64, 0x03, 0xab, 0x55, 0xa1, 0x6b, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x56, 0x85, 0x70, 0x60, 0xb5, 0x2a, 0xe4, 0x07, 0xc9, 0x43, 0xcc, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xb5, 0x2a, 0x0c, 0x06, 0x56, 0xab, 0xc2, 0xe6, 0x20, 0x6d, 0xe3, 0x79, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xab, 0x55, 0x61, 0x34, 0xb0, 0x5a, 0x15, 0xaa, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xad, 0x0a, 0xab, 0x81, 0xd5, 0xaa, 0xb0, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xb5, 0x2a, 0xcc, 0x06, 0x56, 0xab, 0xc2, 0x74, 0x90, 0x0c, 0x46, 0x87, 0xe4, 0xd2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xad, 0x0a, 0xdb, 0x81, 0xd5, 0xaa, 0x30, 0x3e, 0x1c, 0xed, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x5a, 0x15, 0xe6, 0x03, 0xab, 0x55, 0xa1, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xd5, 0xaa, 0xb0, 0x1f, 0x58, 0xad, 0x0a, 0x15, 0x83, 0x64, 0x60, 0xa9, 0xef, 0x60, 0xbc, 0xeb, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xd5, 0xaa, 0xd0, 0x31, 0xb0, 0x5a, 0x15, 0x8a, 0x0e, 0xe3, 0x72, 0x1c, 0x3a, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xb7, 0x2a, 0x24, 0x07, 0x2b, 0x10, 0x05, 0x86, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xbb, 0x55, 0x21, 0x1d, 0xd8, 0xad, 0x0a, 0xe3, 0xe1, 0x36, 0x48, 0xa1, 0xf4, 0x39, 0x44, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x57, 0x85, 0x6c, 0x60, 0xc1, 0x2a, 0x1c, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xcb, 0x55, 0x21, 0x1f, 0x58, 0xae, 0x0a, 0x93, 0x83, 0xb4, 0x97, 0xea, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x6c, 0x57, 0x85, 0xec, 0x60, 0x59, 0xd5, 0xc0, 0x20, 0x58, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x76, 0x55, 0xc8, 0x0f, 0x96, 0x55, 0x0d, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xbd, 0x2a, 0x64, 0x07, 0xcb, 0xaa, 0x06, 0x86, 0xdd, 0xb0, 0x82, 0xba, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xf6, 0xab, 0x42, 0x3a, 0xb0, 0x5f, 0x15, 0xa6, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xbf, 0x2a, 0xc4, 0x03, 0xfb, 0x55, 0x61, 0x71, 0x90, 0xd2, 0x67, 0xbd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xf6, 0xab, 0xc2, 0x64, 0x60, 0xbf, 0x2a, 0xac, 0x0e, 0x52, 0xfa, 0xac, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x5f, 0x15, 0x66, 0x03, 0xfb, 0x55, 0x61, 0x79, 0x30, 0xde, 0x74, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x60, 0x15, 0xb2, 0x83, 0x65, 0x55, 0x03, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xc1, 0x2a, 0x84, 0x03, 0x0b, 0x56, 0x21, 0x3f, 0x48, 0xe9, 0xb3, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x82, 0x55, 0x18, 0x0c, 0x2c, 0x58, 0x85, 0x1f, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x58, 0x85, 0xc5, 0xc0, 0x82, 0x55, 0x58, 0x1d, 0xa4, 0x83, 0x74, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x16, 0xac, 0xc2, 0x6c, 0x60, 0xc1, 0x2a, 0xb4, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x60, 0x15, 0x76, 0x03, 0x0b, 0x56, 0x61, 0x3b, 0x48, 0x06, 0xd2, 0x3b, 0x07, 0x01, 0xef, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x16, 0xac, 0xc2, 0x78, 0x60, 0xc1, 0x2a, 0x94, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x60, 0x15, 0xd6, 0x03, 0x0b, 0x56, 0xa1, 0x61, 0x90, 0x0c, 0xac, 0xee, 0x1c, 0x04, 0xbc, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xb0, 0x0a, 0x15, 0x03, 0x0b, 0x56, 0xa1, 0x73, 0x90, 0x0c, 0xa2, 0x41, 0xb4, 0xb0, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xb0, 0x0a, 0x5d, 0x03, 0x0b, 0x56, 0xa1, 0xf2, 0xd0, 0x43, 0xe8, 0x78, 0x7e, 0x1c, 0x3a, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x0b, 0x56, 0xa1, 0x76, 0x60, 0xc1, 0x2a, 0xdc, 0x18, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x16, 0xac, 0x42, 0xfd, 0xc0, 0x82, 0x55, 0x78, 0x71, 0xe8, 0x18, 0x76, 0x3c, 0x3e, 0x0e, 0x1d, 0xdf, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x61, 0x15, 0x92, 0x83, 0x15, 0x88, 0x02, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x6c, 0x58, 0x85, 0x74, 0x60, 0xc3, 0x2a, 0x94, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x0d, 0xab, 0x10, 0x0f, 0x6c, 0x58, 0x85, 0x86, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x6c, 0x58, 0x85, 0xc9, 0xc1, 0xda, 0x3c, 0x82, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x36, 0xac, 0xc2, 0x66, 0x60, 0xc3, 0x2a, 0xcc, 0x0e, 0x0e, 0x3c, 0xbb, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x0d, 0xab, 0xb0, 0x1b, 0xd8, 0xb0, 0x0a, 0xc3, 0x43, 0x7f, 0xf2, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xc3, 0x2a, 0x2c, 0x07, 0x36, 0xac, 0x42, 0xc1, 0xa1, 0x91, 0xe0, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x1b, 0x56, 0xa1, 0x62, 0x60, 0xc3, 0x2a, 0x74, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xc3, 0x2a, 0xd4, 0x1c, 0x2c, 0xcf, 0x25, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xc3, 0x2a, 0xf4, 0x0c, 0x6c, 0x58, 0x85, 0xaa, 0x83, 0xb4, 0x98, 0x87, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x86, 0x55, 0xe8, 0x1a, 0xd8, 0xb0, 0x0a, 0x65, 0x87, 0xfe, 0xe4, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x1b, 0x56, 0xa1, 0x6d, 0x60, 0xc3, 0x2a, 0x54, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x0d, 0xab, 0x50, 0x37, 0xb0, 0x61, 0x15, 0xfa, 0x0e, 0x47, 0xfb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x36, 0xac, 0x42, 0xe1, 0xc0, 0x86, 0x55, 0x68, 0x3c, 0x1c, 0xed, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x86, 0x55, 0xe8, 0x1c, 0xd8, 0xb0, 0x0a, 0xd5, 0x87, 0x46, 0x82, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x58, 0x85, 0xe4, 0x60, 0x05, 0xa2, 0xc0, 0x20, 0x58, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x8a, 0x55, 0x48, 0x0f, 0x56, 0x20, 0x0a, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xc7, 0x2a, 0x24, 0x07, 0x2b, 0x10, 0x05, 0x86, 0x5d, 0xb8, 0xc5, 0xf0, 0xf1, 0x10, 0xcd, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x64, 0x15, 0x26, 0x03, 0x4b, 0x56, 0xe1, 0xc4, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xb2, 0x0a, 0x9b, 0x81, 0x25, 0xab, 0x30, 0x3b, 0x48, 0x1e, 0x62, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x4b, 0x56, 0x61, 0x37, 0xb0, 0x64, 0x15, 0xa6, 0x07, 0xe9, 0x4f, 0xcf, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xb2, 0x0a, 0xdb, 0x81, 0x25, 0xab, 0xf0, 0x61, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x25, 0xab, 0x30, 0x1e, 0x58, 0xb2, 0x0a, 0x05, 0x07, 0x89, 0xd1, 0xd2, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x25, 0xab, 0xd0, 0x30, 0xb0, 0x64, 0x15, 0xea, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xb2, 0x0a, 0x15, 0x03, 0x4b, 0x56, 0xa1, 0x65, 0x90, 0x0c, 0x8c, 0xd2, 0xc1, 0xf0, 0x8f, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x59, 0x85, 0x9a, 0x81, 0x25, 0xab, 0xd0, 0x73, 0xe8, 0x4f, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x59, 0x85, 0xa2, 0x81, 0x25, 0xab, 0xd0, 0x3e, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x92, 0x55, 0x68, 0x1a, 0x58, 0xb2, 0x0a, 0x6d, 0x83, 0x64, 0xa0, 0xe8, 0x1c, 0x8c, 0x77, 0x9d, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x64, 0x15, 0xea, 0x06, 0x96, 0xac, 0x42, 0xf9, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x4b, 0x56, 0xa1, 0x6f, 0x60, 0xc9, 0x2a, 0x74, 0x1e, 0x8c, 0xac, 0xd7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x64, 0x15, 0x4a, 0x07, 0x96, 0xac, 0x42, 0xf7, 0xa1, 0xe1, 0xd7, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x96, 0xac, 0x42, 0xff, 0xc0, 0x92, 0x55, 0xb8, 0x70, 0x30, 0x78, 0x27, 0x8f, 0x43, 0xc3, 0x6e, 0x30, 0xd8, 0x8d, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x9a, 0x55, 0xc8, 0x06, 0xd6, 0xaf, 0x42, 0x3a, 0xec, 0xc2, 0x6d, 0x70, 0x8e, 0xdc, 0x3d, 0x8c, 0xcb, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xb4, 0x0a, 0xe9, 0xc0, 0xc6, 0x55, 0xd8, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x68, 0x15, 0x16, 0x03, 0x8b, 0x56, 0xa1, 0x63, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x8b, 0x56, 0x61, 0x75, 0xb0, 0x02, 0xc4, 0x60, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x45, 0xab, 0x30, 0x1b, 0x58, 0xb4, 0x0a, 0xd3, 0x41, 0x32, 0x50, 0xd6, 0x0e, 0x86, 0xa1, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xb4, 0x0a, 0xdb, 0x81, 0x45, 0xab, 0x50, 0x71, 0x68, 0xf8, 0x75, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xa6, 0x55, 0x48, 0x0f, 0xd6, 0x53, 0x18, 0x0c, 0xbf, 0x20, 0x5a, 0x60, 0xfc, 0x87, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x9b, 0x56, 0x61, 0x36, 0xb0, 0x69, 0x15, 0x3a, 0x86, 0x4e, 0x10, 0xbf, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x69, 0x15, 0x5a, 0x06, 0x36, 0xad, 0x42, 0xf3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xb4, 0x0a, 0x35, 0x03, 0x9b, 0x56, 0xa1, 0xe9, 0x20, 0xed, 0xa5, 0x7a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x9b, 0x56, 0xa1, 0x6a, 0x60, 0xd3, 0x2a, 0x14, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x69, 0x15, 0xba, 0x06, 0x36, 0xad, 0x42, 0xdf, 0xc1, 0xc9, 0x07, 0x7a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x6c, 0x5a, 0x85, 0xc2, 0x81, 0x4d, 0xab, 0xd0, 0x7b, 0xb0, 0xa6, 0xcc, 0xe0, 0x38, 0x74, 0x30, 0x10, 0xa9, 0x8f, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xb5, 0x0a, 0xe9, 0xc1, 0x7a, 0x0a, 0x83, 0xe1, 0x17, 0x44, 0x0b, 0x8c, 0xff, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xd5, 0x2a, 0xcc, 0x06, 0x56, 0xad, 0x42, 0xf9, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xd5, 0x2a, 0xec, 0x0e, 0x96, 0xfc, 0x1a, 0x0c, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x56, 0xad, 0x42, 0xef, 0xc1, 0x92, 0x5f, 0x83, 0x83, 0xc1, 0x1a, 0x3b, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xb5, 0x0a, 0xcb, 0x81, 0x55, 0xab, 0x50, 0x30, 0xdc, 0x86, 0x18, 0x1e, 0xb2, 0x15, 0x0b, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x56, 0xad, 0x42, 0xc3, 0xc0, 0xaa, 0x55, 0xe8, 0x19, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x5a, 0x85, 0x8e, 0x81, 0x55, 0xab, 0x50, 0x72, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x56, 0xad, 0x42, 0xcb, 0xc0, 0xaa, 0x55, 0xa8, 0x39, 0xa4, 0x0e, 0x16, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x5a, 0x85, 0xa2, 0x81, 0x55, 0xab, 0x50, 0x37, 0xdc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xb5, 0x0a, 0x55, 0x03, 0xab, 0x56, 0xa1, 0xeb, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x5a, 0x85, 0xb2, 0x81, 0x55, 0xab, 0xd0, 0x76, 0x48, 0xd5, 0x2c, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xb5, 0x0a, 0x7d, 0x03, 0xab, 0x56, 0xa1, 0x75, 0xb8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x6a, 0x15, 0x1a, 0x07, 0x56, 0xad, 0x42, 0xe5, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xb5, 0x0a, 0x9d, 0x03, 0xab, 0x56, 0xa1, 0xf4, 0xb0, 0x57, 0x78, 0x48, 0xe7, 0x1e, 0x8e, 0xf6, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x0f, 0xeb, 0x9b, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xd7, 0x2a, 0xe4, 0x03, 0xdb, 0x56, 0xa1, 0x67, 0xf8, 0x05, 0xd1, 0x02, 0xe3, 0x3f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x5d, 0xab, 0x30, 0x1c, 0xd8, 0xb5, 0x0a, 0x65, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xd7, 0x2a, 0x2c, 0x07, 0x76, 0xad, 0xc2, 0xf8, 0x20, 0xed, 0xa5, 0x7a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xbb, 0x56, 0x61, 0x3d, 0xb0, 0x6b, 0x15, 0xba, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xb5, 0x0a, 0xf3, 0x81, 0x5d, 0xab, 0x50, 0x31, 0x48, 0x06, 0x75, 0x07, 0x41, 0xce, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x76, 0xad, 0x42, 0xc7, 0xc0, 0xae, 0x55, 0xa8, 0x9a, 0x20, 0x7c, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x96, 0xad, 0x42, 0x7e, 0xb0, 0xe2, 0xeb, 0x60, 0xf8, 0x05, 0xd1, 0x02, 0xe3, 0x3f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x65, 0xab, 0x30, 0x1c, 0x58, 0xb6, 0x0a, 0x65, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xd9, 0x2a, 0x2c, 0x07, 0x96, 0xad, 0xc2, 0xf8, 0x20, 0xed, 0xa5, 0x7a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xcb, 0x56, 0x61, 0x3d, 0xb0, 0x6c, 0x15, 0xba, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xb6, 0x0a, 0xf3, 0x81, 0x65, 0xab, 0x50, 0x71, 0xb0, 0x0a, 0xf2, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x5b, 0x85, 0x8e, 0x81, 0x65, 0xab, 0x50, 0x35, 0xe1, 0xde, 0x71, 0xe8, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x6d, 0xab, 0x90, 0x1f, 0xac, 0xf8, 0x3a, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xdb, 0x56, 0x61, 0x30, 0xb0, 0x6d, 0x15, 0x36, 0x07, 0x69, 0x2f, 0xd5, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xdb, 0x2a, 0x8c, 0x06, 0xb6, 0xad, 0xc2, 0xee, 0x20, 0xed, 0xa5, 0x7a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xdb, 0x56, 0x61, 0x38, 0xb0, 0x6d, 0x15, 0x6a, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xb6, 0x0a, 0xcb, 0x81, 0x6d, 0xab, 0xb0, 0x3e, 0x58, 0x05, 0x79, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xb6, 0xad, 0xc2, 0x7c, 0x60, 0xdb, 0x2a, 0xb4, 0x4c, 0xa8, 0x3b, 0x0e, 0x1d, 0x0c, 0x44, 0xea, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xd6, 0xad, 0x42, 0x7a, 0xb0, 0x9e, 0xc2, 0x60, 0xf8, 0x05, 0xd1, 0x02, 0xe3, 0x3f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x75, 0xab, 0x30, 0x1b, 0x58, 0xb7, 0x0a, 0x55, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xdd, 0x2a, 0xec, 0x06, 0xd6, 0xad, 0xc2, 0xf4, 0x20, 0xed, 0xa5, 0x7a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xeb, 0x56, 0x61, 0x3b, 0xb0, 0x6e, 0x15, 0x9a, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xb7, 0x0a, 0xe3, 0x81, 0x75, 0xab, 0x50, 0x30, 0x48, 0x06, 0xf7, 0x0e, 0x82, 0x9c, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x5b, 0x85, 0x86, 0x81, 0x75, 0xab, 0x50, 0x74, 0x10, 0xb8, 0xf1, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xf6, 0xad, 0x42, 0x7a, 0xb0, 0x9e, 0xc2, 0x60, 0xf8, 0x05, 0xd1, 0x02, 0xe3, 0x3f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x7d, 0xab, 0x30, 0x1b, 0xd8, 0xb7, 0x0a, 0x45, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xdf, 0x2a, 0xec, 0x06, 0xf6, 0xad, 0xc2, 0xf4, 0x20, 0xed, 0xa5, 0x7a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xfb, 0x56, 0x61, 0x3b, 0xb0, 0x6f, 0x15, 0x7a, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xb7, 0x0a, 0xe3, 0x81, 0x7d, 0xab, 0x50, 0x70, 0xb0, 0x2a, 0x0f, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x5b, 0x85, 0x86, 0x81, 0x7d, 0xab, 0x50, 0x73, 0x10, 0x64, 0xf1, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x16, 0xae, 0x42, 0x7a, 0xb0, 0x9e, 0xc2, 0x60, 0xf8, 0x05, 0xd1, 0x02, 0xe3, 0x3f, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xb8, 0x0a, 0xb3, 0x81, 0x85, 0xab, 0x30, 0x1e, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x5c, 0x85, 0xdd, 0xc1, 0x42, 0x79, 0x84, 0x83, 0x82, 0xa2, 0xe8, 0xb0, 0xbe, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x16, 0xae, 0xc2, 0x7c, 0x60, 0xe1, 0x2a, 0xf4, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x85, 0xab, 0xb0, 0x1f, 0x58, 0xb8, 0x0a, 0x15, 0x07, 0xe9, 0x4f, 0xcf, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xb8, 0x0a, 0x1d, 0x03, 0x0b, 0x57, 0xa1, 0xe6, 0x60, 0x20, 0x52, 0x1f, 0x0c, 0x44, 0xea, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x36, 0xae, 0x42, 0x7a, 0xb0, 0x9e, 0xc2, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x6c, 0x5c, 0x85, 0x78, 0x60, 0xe3, 0x2a, 0x2c, 0x0e, 0x92, 0x87, 0x98, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x71, 0x15, 0x26, 0x03, 0x1b, 0x57, 0x61, 0x3e, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xc6, 0x55, 0xd8, 0x0c, 0x6c, 0x5c, 0x85, 0xdd, 0xc1, 0xaa, 0x3c, 0x84, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x71, 0x15, 0x86, 0x03, 0x1b, 0x57, 0x61, 0x7d, 0x70, 0x36, 0x0d, 0x3f, 0x0e, 0x0d, 0xbb, 0x70, 0x8b, 0xe1, 0xf2, 0x61, 0x5c, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xd2, 0x55, 0x48, 0x07, 0xb6, 0xaf, 0xc2, 0x64, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xa5, 0xab, 0xb0, 0x18, 0x58, 0xba, 0x0a, 0x1d, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xba, 0x0a, 0xab, 0x83, 0xc5, 0x7e, 0x09, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x5d, 0x85, 0xd9, 0xc0, 0xd2, 0x55, 0x98, 0x0e, 0x92, 0x41, 0xd9, 0xc1, 0x30, 0xf4, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x4b, 0x57, 0x61, 0x3b, 0xb0, 0x74, 0x15, 0x2a, 0x0e, 0x0d, 0xbf, 0x8e, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xba, 0x0a, 0xe9, 0xc1, 0xd2, 0xb9, 0x84, 0xe1, 0x17, 0x44, 0x0b, 0x8c, 0xff, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xeb, 0x2a, 0xcc, 0x06, 0xb6, 0xae, 0x42, 0xc3, 0xd0, 0x09, 0x7d, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xeb, 0x2a, 0x74, 0x0c, 0x6c, 0x5d, 0x85, 0xd6, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x75, 0x15, 0x4a, 0x06, 0xb6, 0xae, 0x42, 0xcf, 0x41, 0xda, 0x4b, 0xf5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xb6, 0xae, 0x42, 0xd1, 0xc0, 0xd6, 0x55, 0x28, 0x1d, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xeb, 0x2a, 0x34, 0x0d, 0x6c, 0x5d, 0x85, 0xb6, 0x83, 0x93, 0x0f, 0xf4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xba, 0x0a, 0x75, 0x03, 0x5b, 0x57, 0xa1, 0xf3, 0x60, 0xe1, 0x70, 0xc2, 0x71, 0xe8, 0x60, 0x20, 0x52, 0x1f, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x76, 0x15, 0xd2, 0x83, 0xa5, 0x73, 0x09, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xed, 0x2a, 0x2c, 0x06, 0xd6, 0xae, 0xc2, 0xe8, 0x20, 0x79, 0x88, 0x79, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x7b, 0x57, 0x21, 0x3d, 0x58, 0x3a, 0x97, 0x30, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xbb, 0x0a, 0x8b, 0x81, 0xbd, 0xab, 0xd0, 0x3f, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xbb, 0x0a, 0x9b, 0x81, 0xbd, 0xab, 0xb0, 0x1e, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x5d, 0x85, 0xd5, 0xc0, 0xde, 0x55, 0x98, 0x1d, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xbd, 0xab, 0xb0, 0x1b, 0xd8, 0xbb, 0x0a, 0xe3, 0x83, 0x90, 0x02, 0x5f, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x77, 0x15, 0xe6, 0x03, 0x7b, 0x57, 0xa1, 0x68, 0xb8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x77, 0x15, 0x0a, 0x06, 0xf6, 0xae, 0x42, 0xc3, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xbb, 0x0a, 0x15, 0x03, 0x7b, 0x57, 0xa1, 0xe7, 0x20, 0x70, 0xe3, 0x17, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x5d, 0x85, 0xa6, 0x81, 0xbd, 0xab, 0xd0, 0x39, 0xdc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xbb, 0x0a, 0x5d, 0x03, 0x7b, 0x57, 0xa1, 0xec, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x5d, 0x85, 0xb6, 0x81, 0xbd, 0xab, 0x50, 0x79, 0x10, 0x64, 0xf1, 0x0b, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xf6, 0xae, 0x42, 0xe9, 0xc0, 0xde, 0x55, 0xa8, 0x1f, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x5d, 0x85, 0xda, 0x81, 0xbd, 0xab, 0xd0, 0x7b, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xf6, 0xae, 0x42, 0xf1, 0xc0, 0xde, 0x55, 0x68, 0x3f, 0x58, 0xbb, 0x83, 0x70, 0x48, 0xe7, 0x1e, 0x8e, 0xf6, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xe2, 0x55, 0xc8, 0x07, 0x16, 0xaf, 0xc2, 0x78, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x5e, 0x85, 0xc1, 0xc0, 0xe2, 0x55, 0xd8, 0x8c, 0xe1, 0xf3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xbc, 0x0a, 0xa3, 0x81, 0xc5, 0xab, 0xb0, 0x3b, 0x48, 0xdb, 0x78, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xe2, 0x55, 0x18, 0x0e, 0x2c, 0x5e, 0x85, 0xed, 0xc1, 0x40, 0xa4, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xe6, 0x55, 0x48, 0x0f, 0x96, 0xce, 0x25, 0x0c, 0xbf, 0x20, 0x5a, 0x60, 0xfc, 0x87, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x9b, 0x57, 0x61, 0x36, 0xb0, 0x79, 0x15, 0x1a, 0x86, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x9b, 0x57, 0x61, 0x77, 0xb0, 0x2a, 0x61, 0x61, 0xb8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x79, 0x15, 0x96, 0x03, 0x9b, 0x57, 0x61, 0x7a, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x36, 0xaf, 0xc2, 0x76, 0x60, 0xf3, 0x2a, 0x14, 0x1c, 0xac, 0xdd, 0x41, 0x38, 0xac, 0x6f, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xcd, 0xab, 0xd0, 0x31, 0xb0, 0x79, 0x15, 0x9a, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xe6, 0x55, 0x28, 0x19, 0xd8, 0xbc, 0x0a, 0x3d, 0x07, 0x69, 0x2f, 0xd5, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xf3, 0x2a, 0x14, 0x0d, 0x6c, 0x5e, 0x85, 0xae, 0x83, 0x35, 0xda, 0x0a, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xbc, 0x0a, 0x65, 0x03, 0x9b, 0x57, 0xa1, 0x78, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xcd, 0xab, 0xd0, 0x36, 0xb0, 0x79, 0x15, 0x1a, 0x0f, 0x56, 0xe5, 0x21, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xcd, 0xab, 0x50, 0x39, 0xb0, 0x79, 0x15, 0x7a, 0x0f, 0xd6, 0xee, 0x20, 0x1c, 0x87, 0x0e, 0x06, 0x22, 0xf5, 0xf1, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xab, 0x57, 0x21, 0x3d, 0x58, 0x3a, 0x97, 0x30, 0xfc, 0x82, 0x68, 0x81, 0xf1, 0x1f, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x5e, 0x85, 0xd9, 0xc0, 0xea, 0x55, 0x68, 0x18, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x5e, 0x85, 0xdd, 0xc1, 0xba, 0xca, 0x85, 0xe1, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xea, 0x55, 0x58, 0x0e, 0xac, 0x5e, 0x85, 0xe9, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xbd, 0x0a, 0xdb, 0x81, 0xd5, 0xab, 0x50, 0x70, 0x10, 0xb8, 0xf1, 0x87, 0xf5, 0xcd, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x7a, 0x15, 0x3a, 0x06, 0x56, 0xaf, 0x42, 0xf3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xbd, 0x0a, 0x25, 0x03, 0xab, 0x57, 0xa1, 0xe7, 0x20, 0xed, 0xa5, 0x7a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x5e, 0x85, 0xa2, 0x81, 0xd5, 0xab, 0xd0, 0x35, 0x86, 0xb7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xbd, 0x0a, 0x65, 0x03, 0xab, 0x57, 0xa1, 0x78, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xd5, 0xab, 0xd0, 0x36, 0xb0, 0x7a, 0x15, 0x1a, 0x0f, 0x56, 0xe5, 0x21, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xd5, 0xab, 0x50, 0x39, 0xb0, 0x7a, 0x15, 0x7a, 0x0f, 0x02, 0x37, 0xfe, 0x38, 0x74, 0x30, 0x10, 0xa9, 0x8f, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xbd, 0x0a, 0xe9, 0xc1, 0xd2, 0xb9, 0x84, 0xe1, 0x17, 0x44, 0x0b, 0x8c, 0xff, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xf7, 0x2a, 0xcc, 0x06, 0x76, 0xaf, 0x42, 0xc3, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xf7, 0x2a, 0xec, 0x0e, 0x96, 0x80, 0x30, 0x0c, 0xb7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x76, 0xaf, 0xc2, 0x72, 0x60, 0xf7, 0x2a, 0x4c, 0x0f, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xee, 0x55, 0xd8, 0x0e, 0xec, 0x5e, 0x85, 0x82, 0x83, 0x20, 0x8b, 0x3f, 0xac, 0x6f, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xdd, 0xab, 0xd0, 0x31, 0xb0, 0x7b, 0x15, 0x9a, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xee, 0x55, 0x28, 0x19, 0xd8, 0xbd, 0x0a, 0x3d, 0x07, 0x69, 0x2f, 0xd5, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xf7, 0x2a, 0x14, 0x0d, 0xec, 0x5e, 0x85, 0xae, 0x31, 0x1c, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xee, 0x55, 0x28, 0x1b, 0xd8, 0xbd, 0x0a, 0xc5, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x5e, 0x85, 0xb6, 0x81, 0xdd, 0xab, 0xd0, 0x78, 0xb0, 0x2a, 0x0f, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x5e, 0x85, 0xca, 0x81, 0xdd, 0xab, 0xd0, 0x7b, 0x10, 0x64, 0xf1, 0xc7, 0xa1, 0x83, 0x81, 0x48, 0x7d, 0x3c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xf2, 0x55, 0x48, 0x0f, 0x96, 0xce, 0x25, 0x0c, 0xbf, 0x20, 0x5a, 0x60, 0xfc, 0x87, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xcb, 0x57, 0x61, 0x36, 0xb0, 0x7c, 0x15, 0x1a, 0x86, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xcb, 0x57, 0x61, 0x77, 0xb0, 0x5a, 0x95, 0x61, 0xb8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x7c, 0x15, 0x96, 0x03, 0xcb, 0x57, 0x61, 0x7a, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x96, 0xaf, 0xc2, 0x76, 0x60, 0xf9, 0x2a, 0x14, 0x1c, 0x84, 0x14, 0xf8, 0x61, 0x7d, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x5f, 0x85, 0x8e, 0x81, 0xe5, 0xab, 0xd0, 0xbc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x96, 0xaf, 0x42, 0xc9, 0xc0, 0xf2, 0x55, 0xe8, 0x39, 0x48, 0x7b, 0xa9, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xcb, 0x57, 0xa1, 0x68, 0x60, 0xf9, 0x2a, 0x74, 0x1d, 0x0c, 0x7c, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x5f, 0x85, 0xb2, 0x81, 0xe5, 0xab, 0x50, 0x3c, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xf2, 0x55, 0x68, 0x1b, 0x58, 0xbe, 0x0a, 0x8d, 0x07, 0xab, 0xf2, 0x10, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xf2, 0x55, 0xa8, 0x1c, 0x58, 0xbe, 0x0a, 0xbd, 0x07, 0x21, 0x05, 0x7e, 0x1c, 0x3a, 0x18, 0x88, 0xd4, 0xc7, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x6c, 0x5f, 0x85, 0xf4, 0x60, 0xe9, 0x5c, 0xc2, 0x04, 0xd5, 0x7f, 0x90, 0x6d, 0x68, 0xbe, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x35, 0xab, 0x30, 0x1b, 0x58, 0xb3, 0x0a, 0x25, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x59, 0x85, 0xdd, 0xc0, 0x9a, 0x55, 0xd8, 0x0e, 0x92, 0x81, 0xf8, 0x1d, 0xb2, 0x15, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xcd, 0x2a, 0x8c, 0x07, 0xd6, 0xac, 0x42, 0xc7, 0xa1, 0xe1, 0xd7, 0x71, 0x68, 0xd8, 0x0d, 0xc6, 0xea, 0xee, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xc0, 0x0a, 0xd9, 0xc0, 0x0e, 0x56, 0x28, 0x1e, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x6c, 0x60, 0x85, 0x7c, 0x60, 0x03, 0x2b, 0x6c, 0x87, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x1b, 0x58, 0x61, 0x31, 0xb0, 0x81, 0x15, 0x26, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x03, 0x2b, 0x6c, 0x06, 0x36, 0xb0, 0xc2, 0xf4, 0xd0, 0xf0, 0x6b, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x60, 0x85, 0x74, 0x60, 0x05, 0x2b, 0x4c, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x0a, 0x56, 0x88, 0x07, 0x56, 0xb0, 0xc2, 0xe2, 0x20, 0xed, 0xa5, 0x7a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x60, 0x85, 0xc9, 0xc0, 0x0a, 0x56, 0x58, 0x8d, 0xe1, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x56, 0xb0, 0xc2, 0x6c, 0x60, 0x05, 0x2b, 0x2c, 0x0f, 0x06, 0xef, 0xe4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x76, 0xb0, 0x42, 0x76, 0xb0, 0x5e, 0xac, 0x61, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x83, 0x15, 0xe2, 0x81, 0x1d, 0xac, 0x30, 0x1d, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x60, 0x85, 0xc1, 0xc0, 0x0e, 0x56, 0x58, 0x1c, 0x8e, 0xf6, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x60, 0x85, 0xc9, 0xc0, 0x0e, 0x56, 0x58, 0x1e, 0x1a, 0x7e, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x1d, 0xac, 0xb0, 0x1d, 0xd8, 0xc1, 0x0a, 0x45, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x07, 0x2b, 0x8c, 0x07, 0x76, 0xb0, 0xc2, 0xfe, 0x20, 0xed, 0xa5, 0x7a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x60, 0x85, 0x82, 0x81, 0x1d, 0xac, 0xd0, 0x71, 0x30, 0xa4, 0x7e, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x83, 0x15, 0x4a, 0x06, 0x76, 0xb0, 0x42, 0xcf, 0xc1, 0xe0, 0x9d, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x0e, 0x56, 0x68, 0x1a, 0xd8, 0xc1, 0x0a, 0xbd, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x60, 0x85, 0xaa, 0x81, 0x1d, 0xac, 0x50, 0x77, 0xb0, 0x76, 0xa8, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x60, 0x85, 0xbe, 0x81, 0x1d, 0xac, 0x50, 0x7b, 0x68, 0xf8, 0x75, 0x1c, 0x1a, 0x76, 0x83, 0x12, 0x04, 0x72, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x6c, 0x61, 0x85, 0xc9, 0xc0, 0x16, 0x56, 0xd8, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x2d, 0xac, 0xb0, 0x19, 0xd8, 0xc2, 0x0a, 0xb3, 0x83, 0xe4, 0x21, 0xe6, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x6c, 0x61, 0x85, 0xdd, 0xc0, 0x16, 0x56, 0x98, 0x1e, 0x0c, 0xde, 0xc9, 0x61, 0x37, 0x18, 0x01, 0xbe, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x0f, 0x2b, 0x64, 0x03, 0xab, 0x58, 0x21, 0x1d, 0x76, 0xe1, 0x36, 0x18, 0xb7, 0xbb, 0x87, 0x71, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x8b, 0x58, 0x61, 0x31, 0xb0, 0x88, 0x15, 0xda, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xc4, 0x0a, 0x93, 0x81, 0x45, 0xac, 0x50, 0x3a, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x22, 0x56, 0xd8, 0x0c, 0x2c, 0x62, 0x85, 0xe1, 0x20, 0x19, 0xcc, 0x0e, 0x82, 0x9c, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x88, 0x15, 0x96, 0x03, 0x8b, 0x58, 0xa1, 0x61, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x62, 0x85, 0xe9, 0xc0, 0x22, 0x56, 0xd8, 0x1e, 0xfa, 0x93, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x45, 0xac, 0x30, 0x1e, 0x58, 0xc4, 0x0a, 0xf3, 0x83, 0x23, 0x4f, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x16, 0xb1, 0xc2, 0x7e, 0x60, 0x11, 0x2b, 0x14, 0x1c, 0x94, 0x71, 0x3b, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x22, 0x56, 0xa8, 0x18, 0x58, 0xc4, 0x0a, 0x9d, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x88, 0x15, 0x9a, 0x06, 0x16, 0xb1, 0x42, 0xe5, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x8b, 0x58, 0xa1, 0x6d, 0x60, 0x11, 0x2b, 0xf4, 0x0d, 0x92, 0x81, 0xf1, 0x3b, 0x18, 0xfe, 0xb1, 0x83, 0x64, 0x50, 0x36, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xc4, 0x0a, 0x85, 0x03, 0x8b, 0x58, 0xa1, 0xf1, 0x90, 0x3a, 0x38, 0x0e, 0x1d, 0x8f, 0x8f, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x11, 0x2b, 0xb4, 0x0e, 0x2c, 0x62, 0x85, 0xf2, 0x43, 0xc3, 0xaf, 0xe3, 0xd0, 0xb0, 0x0b, 0xb7, 0xc1, 0x1a, 0x6d, 0x85, 0xc3, 0xb8, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x4d, 0xac, 0xb0, 0x18, 0xd8, 0xc4, 0x0a, 0xed, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x6c, 0x62, 0x85, 0xc9, 0xc0, 0x26, 0x56, 0x28, 0x1d, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x13, 0x2b, 0x6c, 0x06, 0x36, 0xb1, 0xc2, 0xf0, 0x60, 0x7d, 0xa4, 0xc3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x13, 0x2b, 0x2c, 0x07, 0x36, 0xb1, 0x42, 0xc3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xc4, 0x0a, 0xd3, 0x81, 0x4d, 0xac, 0xb0, 0x3d, 0x28, 0xe3, 0x76, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x26, 0x56, 0x18, 0x0f, 0x6c, 0x62, 0x85, 0xf9, 0x41, 0xa2, 0xdc, 0xc7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x36, 0xb1, 0xc2, 0x7e, 0x60, 0x13, 0x2b, 0x14, 0x1c, 0x14, 0x00, 0x50, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x26, 0x56, 0xa8, 0x18, 0xd8, 0xc4, 0x0a, 0x9d, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x89, 0x15, 0x9a, 0x06, 0x36, 0xb1, 0x42, 0xe5, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x9b, 0x58, 0xa1, 0x6d, 0x60, 0x13, 0x2b, 0xf4, 0x1d, 0xac, 0x65, 0x77, 0x18, 0x24, 0xc3, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x36, 0xb1, 0x42, 0xe1, 0xc0, 0x26, 0x56, 0x68, 0x3c, 0xa4, 0x0e, 0x8e, 0x43, 0xc7, 0xe3, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xc4, 0x0a, 0xad, 0x03, 0x9b, 0x58, 0xa1, 0xfc, 0xd0, 0xf0, 0xeb, 0x38, 0x34, 0xc8, 0x36, 0x34, 0x5f, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x1e, 0x56, 0x18, 0x0d, 0xec, 0x61, 0x85, 0x8a, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xf6, 0xb0, 0xc2, 0x6a, 0x60, 0x0f, 0x2b, 0x2c, 0x0f, 0xd6, 0x0e, 0x35, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x3d, 0xac, 0x30, 0x1d, 0xd8, 0xc3, 0x0a, 0x0d, 0x87, 0x86, 0x5f, 0xc7, 0xa1, 0x61, 0x37, 0x28, 0x39, 0x24, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x36, 0x56, 0xc8, 0x06, 0xf6, 0xb3, 0xc2, 0x68, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x6d, 0xac, 0x90, 0x0f, 0x6c, 0x63, 0x85, 0x92, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x6c, 0x63, 0x85, 0xcd, 0xc1, 0x1a, 0xfe, 0x87, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xb6, 0xb1, 0xc2, 0x68, 0x60, 0x1b, 0x2b, 0x6c, 0x87, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xdb, 0x58, 0x61, 0x79, 0xb0, 0x2c, 0x02, 0x62, 0x90, 0x0c, 0x46, 0x07, 0xc3, 0xd0, 0xe7, 0x20, 0xfd, 0xb7, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x6c, 0x63, 0x85, 0xf1, 0xc0, 0x36, 0x56, 0xe8, 0x38, 0x34, 0xfc, 0x3a, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x1d, 0x2b, 0x64, 0x07, 0x4b, 0xe2, 0x1f, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xc7, 0x0a, 0xf9, 0xc0, 0x3a, 0x56, 0x98, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x1d, 0x2b, 0x6c, 0x0e, 0xd6, 0x1f, 0x41, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x8e, 0x15, 0x46, 0x03, 0xeb, 0x58, 0x61, 0x37, 0x48, 0x06, 0xda, 0x3a, 0x1d, 0x0c, 0x47, 0xe9, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x3a, 0x56, 0x18, 0x0e, 0xac, 0x63, 0x85, 0xe5, 0xa1, 0x3f, 0xf9, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x8e, 0x15, 0xa6, 0x03, 0xeb, 0x58, 0x61, 0x7d, 0x1c, 0x3a, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x1f, 0x2b, 0x64, 0x07, 0x4b, 0xe2, 0x1f, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x3e, 0x56, 0xc8, 0x07, 0xf6, 0xb1, 0xc2, 0xe4, 0x20, 0x79, 0x88, 0x79, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x0b, 0x59, 0x21, 0x3b, 0x58, 0x12, 0xff, 0x30, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xc8, 0x0a, 0xf9, 0xc0, 0x42, 0x56, 0x98, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x90, 0x15, 0x06, 0x03, 0x0b, 0x59, 0x61, 0x73, 0x90, 0x22, 0x5c, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xc8, 0x0a, 0xa3, 0x81, 0x85, 0xac, 0xb0, 0x3b, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x0b, 0x59, 0x61, 0x38, 0xb0, 0x90, 0x15, 0x96, 0x87, 0xa3, 0xfd, 0x38, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x36, 0xb2, 0x42, 0x3a, 0xb0, 0x91, 0x15, 0xba, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xc8, 0x0a, 0xf1, 0xc0, 0x46, 0x56, 0x98, 0x0c, 0x92, 0x0d, 0x8a, 0xfa, 0x9c, 0x83, 0x93, 0xd0, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x23, 0x2b, 0x6c, 0x06, 0x36, 0xb2, 0x42, 0xcd, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x1b, 0x59, 0x61, 0x34, 0xb0, 0x91, 0x15, 0x86, 0x83, 0x64, 0x20, 0xbd, 0x73, 0x30, 0xfc, 0x63, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x46, 0x56, 0x58, 0x0e, 0x6c, 0x64, 0x85, 0x96, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x36, 0xb2, 0xc2, 0x74, 0x60, 0x23, 0x2b, 0x14, 0x0c, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x36, 0xb2, 0xc2, 0xfc, 0x60, 0xf9, 0x49, 0xc4, 0x20, 0x19, 0xa8, 0x55, 0x07, 0xc3, 0x3f, 0xf6, 0x60, 0xdc, 0x41, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x8d, 0xac, 0xd0, 0x30, 0xb0, 0x91, 0x15, 0x4a, 0x0e, 0xa9, 0x83, 0xe3, 0xd0, 0x71, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xc8, 0x0a, 0x3d, 0x03, 0x1b, 0x59, 0xa1, 0xea, 0xa0, 0x70, 0x4b, 0x3a, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x25, 0x2b, 0x64, 0x07, 0x4b, 0xe2, 0x1f, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xc9, 0x0a, 0xf9, 0xc0, 0x4a, 0x56, 0x98, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x25, 0x2b, 0x6c, 0x0e, 0xd6, 0xb9, 0x45, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x92, 0x15, 0x46, 0x03, 0x2b, 0x59, 0x61, 0x37, 0x48, 0x06, 0xda, 0x3a, 0x1d, 0x9c, 0x84, 0x8e, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x2b, 0x59, 0x61, 0x38, 0xb0, 0x92, 0x15, 0x96, 0x07, 0x65, 0xdc, 0xce, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x92, 0x15, 0xa6, 0x03, 0x2b, 0x59, 0x61, 0x7d, 0x48, 0x1d, 0x1c, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x93, 0x15, 0xb2, 0x83, 0x25, 0xf1, 0x0f, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x64, 0x85, 0x7c, 0x60, 0x27, 0x2b, 0xcc, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x93, 0x15, 0x36, 0x07, 0xcb, 0x77, 0x23, 0x0e, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x52, 0x56, 0xc8, 0x0e, 0x96, 0xc4, 0x3f, 0x0c, 0x82, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x65, 0x85, 0xfc, 0x60, 0x49, 0xfc, 0xc3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xb6, 0xb2, 0x42, 0x76, 0xb0, 0x24, 0xfe, 0x61, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x95, 0x15, 0xf2, 0x81, 0xad, 0xac, 0xb0, 0x1c, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x6c, 0x65, 0x85, 0xc5, 0xc0, 0x56, 0x56, 0x18, 0x1d, 0x52, 0x07, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xca, 0x0a, 0xab, 0x81, 0xad, 0xac, 0x30, 0x3c, 0xa4, 0x6a, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x5a, 0x56, 0x48, 0x07, 0xd6, 0xb2, 0xc2, 0xe0, 0xe0, 0x9c, 0x99, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xbd, 0xac, 0x90, 0x1d, 0x2c, 0x89, 0x7f, 0x18, 0x24, 0x43, 0x06, 0xd1, 0x02, 0xeb, 0xff, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xcc, 0x0a, 0x93, 0x81, 0xfd, 0xac, 0x90, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x99, 0x15, 0xb6, 0x03, 0x9b, 0x59, 0xa1, 0x6e, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xcd, 0xac, 0x30, 0x1e, 0xd8, 0xcc, 0x0a, 0xfb, 0x83, 0xe4, 0x99, 0x94, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x66, 0x56, 0x28, 0x18, 0xd8, 0xcc, 0x0a, 0x0d, 0x07, 0x65, 0xdc, 0xce, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x66, 0x56, 0xa8, 0x18, 0xd8, 0xcc, 0x0a, 0x4d, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x33, 0x2b, 0x74, 0x0c, 0x6c, 0x66, 0x85, 0x9a, 0x43, 0xea, 0x60, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x9b, 0x59, 0xa1, 0x67, 0x60, 0x33, 0x2b, 0x14, 0x1d, 0x8e, 0xf6, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x33, 0x2b, 0x54, 0x0d, 0x6c, 0x66, 0x85, 0xb6, 0x83, 0xc0, 0xc4, 0x3e, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x35, 0x2b, 0x4c, 0x0e, 0x16, 0xb4, 0x48, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x9a, 0x15, 0x66, 0x03, 0xab, 0x59, 0x61, 0x3a, 0x48, 0x36, 0x28, 0xea, 0x73, 0x0e, 0xce, 0x79, 0xc7, 0x83, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xbb, 0x59, 0x61, 0x34, 0xb0, 0x9b, 0x15, 0xfa, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xcd, 0x0a, 0xab, 0x81, 0xdd, 0xac, 0xb0, 0x1c, 0x24, 0x03, 0xe9, 0x9d, 0x83, 0xb3, 0x97, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xcd, 0x0a, 0xd3, 0x81, 0xdd, 0xac, 0x50, 0x37, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x6e, 0x56, 0xd8, 0x0e, 0xec, 0x66, 0x85, 0x86, 0xe1, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x6e, 0x56, 0xd8, 0x1f, 0xac, 0xf1, 0x96, 0x18, 0x24, 0x03, 0xb5, 0xea, 0xe0, 0xec, 0x65, 0x7c, 0x90, 0x6e, 0x29, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x76, 0xb3, 0x42, 0xc5, 0xc0, 0x6e, 0x56, 0x68, 0x1b, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x37, 0x2b, 0x74, 0x0c, 0xec, 0x66, 0x85, 0x9a, 0x41, 0x32, 0xf0, 0xbe, 0xd3, 0xc1, 0x39, 0xef, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x9b, 0x15, 0x7a, 0x06, 0x76, 0xb3, 0x42, 0xd1, 0xa1, 0x3f, 0xf9, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x9b, 0x15, 0x9a, 0x06, 0x76, 0xb3, 0x42, 0xd9, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x39, 0x2b, 0x8c, 0x06, 0x96, 0xb3, 0x42, 0xdf, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xcb, 0x59, 0x61, 0x35, 0xb0, 0x9c, 0x15, 0x96, 0x07, 0x8b, 0x84, 0x25, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x72, 0x56, 0x98, 0x0e, 0x2c, 0x67, 0x85, 0xba, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x96, 0xb3, 0xc2, 0x76, 0x60, 0x39, 0x2b, 0x34, 0x0c, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x96, 0xb3, 0xc2, 0xfe, 0x60, 0x59, 0xda, 0xc4, 0xc1, 0xa2, 0x75, 0x89, 0x83, 0x71, 0x07, 0x35, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x96, 0xb3, 0x42, 0xc5, 0xc0, 0x72, 0x56, 0x68, 0x1b, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x39, 0x2b, 0x74, 0x0c, 0x2c, 0x67, 0x85, 0x9a, 0x41, 0x32, 0xd0, 0xd7, 0xe9, 0xe0, 0x9c, 0x77, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xce, 0x0a, 0x3d, 0x03, 0xcb, 0x59, 0xa1, 0xe8, 0xd0, 0x9f, 0x7c, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xce, 0x0a, 0x4d, 0x03, 0xcb, 0x59, 0xa1, 0xec, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x9d, 0x15, 0x46, 0x03, 0xdb, 0x59, 0xe1, 0xc1, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x3b, 0x2b, 0xec, 0x06, 0xb6, 0xb3, 0x42, 0xcf, 0x70, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x3b, 0x2b, 0x2c, 0x07, 0xb6, 0xb3, 0x42, 0xc9, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xdb, 0x59, 0x61, 0x3a, 0xb0, 0x9d, 0x15, 0xd6, 0x83, 0x64, 0x20, 0x3a, 0x07, 0xe7, 0xfa, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x76, 0x56, 0x98, 0x0f, 0x6c, 0x67, 0x85, 0x86, 0x43, 0xaa, 0x66, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xce, 0x0a, 0x15, 0x03, 0xdb, 0x59, 0xa1, 0xe3, 0xa0, 0x8c, 0xdb, 0x39, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x3b, 0x2b, 0xb4, 0x0c, 0x6c, 0x67, 0x85, 0x9a, 0x43, 0x0c, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x76, 0x56, 0x28, 0x1a, 0xd8, 0xce, 0x0a, 0xe5, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xed, 0xac, 0xd0, 0x35, 0xb0, 0x9d, 0x15, 0x3a, 0x87, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xdb, 0x59, 0xa1, 0x6d, 0x60, 0x3b, 0x2b, 0x14, 0x1e, 0x52, 0x35, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xce, 0x0a, 0x8d, 0x03, 0xdb, 0x59, 0xa1, 0xf2, 0x10, 0xc3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x9d, 0x15, 0x4a, 0x07, 0xb6, 0xb3, 0x42, 0xed, 0x41, 0x8a, 0xf6, 0xf5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xb6, 0xb3, 0x42, 0xef, 0xc0, 0x76, 0x56, 0xe8, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x1c, 0x07, 0x6d, 0x07, 0xeb, 0xb4, 0x00, 0x8e, 0x6f, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xce, 0x0a, 0xed, 0x03, 0xdb, 0x59, 0xe1, 0xc0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xe2, 0x78, 0xb0, 0x4e, 0x0b, 0xe0, 0xf8, 0x36, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x3d, 0x2b, 0x8c, 0x06, 0xd6, 0xb3, 0xc2, 0xee, 0xa0, 0x5c, 0xec, 0x39, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0x83, 0x68, 0x61, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x98, 0x15, 0x26, 0x03, 0x8b, 0x59, 0x61, 0x38, 0xcc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x16, 0xb3, 0xc2, 0x68, 0x60, 0x31, 0x2b, 0xec, 0x0e, 0xa9, 0x83, 0xe3, 0xf1, 0xf1, 0x6d, 0xd8, 0x0d, 0x8a, 0x45, 0xc9, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xa2, 0x15, 0xb2, 0x81, 0x65, 0xad, 0x50, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x56, 0xb4, 0x42, 0x3e, 0xb0, 0xa2, 0x15, 0x26, 0x07, 0x69, 0x2f, 0xd5, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x45, 0x2b, 0x8c, 0x06, 0x56, 0xb4, 0xc2, 0xee, 0x20, 0x79, 0x88, 0x79, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x3b, 0x5a, 0x21, 0x3b, 0x58, 0x00, 0x4b, 0x31, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x96, 0x56, 0xc8, 0x0e, 0x16, 0xc0, 0x52, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xa5, 0x15, 0xf2, 0x81, 0x2d, 0xad, 0xb0, 0x19, 0x24, 0x03, 0x1a, 0x7f, 0xef, 0x3b, 0x18, 0xfe, 0xb1, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x35, 0xad, 0x90, 0x0e, 0xec, 0x69, 0x85, 0xaa, 0xe1, 0x37, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x4f, 0x2b, 0xa4, 0x07, 0x6b, 0xf8, 0x29, 0x86, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x7b, 0x5a, 0x61, 0x30, 0xb0, 0xa7, 0x15, 0x86, 0xc3, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x3d, 0xad, 0x30, 0x19, 0xd8, 0xd3, 0x0a, 0x9b, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xa7, 0x15, 0x46, 0x03, 0x7b, 0x5a, 0x61, 0x77, 0x68, 0xf8, 0xb5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xf6, 0xb4, 0xc2, 0x72, 0x60, 0x4f, 0x2b, 0xac, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x9e, 0x56, 0xd8, 0x0e, 0xec, 0x69, 0x85, 0xf1, 0x21, 0x86, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x4f, 0x2b, 0xcc, 0x07, 0xf6, 0xb4, 0x42, 0xd3, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x7b, 0x5a, 0x61, 0x3f, 0xb0, 0xa7, 0x15, 0x2a, 0x0e, 0x96, 0x37, 0x16, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xf6, 0xb4, 0x42, 0xc7, 0xc0, 0x9e, 0x56, 0x28, 0x39, 0xf4, 0x27, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xf6, 0xb4, 0x42, 0xcb, 0xc0, 0x9e, 0x56, 0x28, 0x3a, 0x34, 0xfc, 0x3a, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x8b, 0x5a, 0x21, 0x3b, 0x58, 0x00, 0x4b, 0x31, 0x08, 0x36, 0x18, 0xf9, 0x0f, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xd4, 0x0a, 0xd9, 0xc1, 0x02, 0x58, 0x8a, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xa9, 0x15, 0xf2, 0x81, 0x4d, 0xad, 0xb0, 0x18, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x6c, 0x6a, 0x85, 0xc1, 0xc1, 0x82, 0xcd, 0x8a, 0x43, 0x23, 0xc1, 0xc3, 0xfa, 0xe6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x56, 0xb5, 0x42, 0x76, 0xb0, 0x00, 0x96, 0x62, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x55, 0xad, 0x90, 0x0f, 0xac, 0x6a, 0x85, 0xcd, 0xc1, 0x9a, 0x76, 0x88, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xae, 0x56, 0x08, 0x07, 0x76, 0xb5, 0x42, 0xd5, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xbb, 0x5a, 0x21, 0x1d, 0xd8, 0xd5, 0x0a, 0x8b, 0x83, 0x15, 0x0c, 0x11, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x57, 0x2b, 0x4c, 0x06, 0x76, 0xb5, 0x42, 0xd3, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xbb, 0x5a, 0x61, 0x33, 0xb0, 0xab, 0x15, 0x6a, 0x86, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xbb, 0x5a, 0x61, 0x36, 0xb0, 0xab, 0x15, 0x76, 0x87, 0x46, 0x82, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x57, 0x2b, 0x0c, 0x07, 0x76, 0xb5, 0xc2, 0x7c, 0xf8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xab, 0x15, 0xc6, 0x07, 0x4b, 0x19, 0x2c, 0x0e, 0xd6, 0xd3, 0x44, 0x1c, 0x8c, 0x3b, 0xa8, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x6a, 0x85, 0xfd, 0xc0, 0xae, 0x56, 0x68, 0x19, 0x7e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x6a, 0x85, 0x8e, 0x83, 0x75, 0x25, 0x16, 0x07, 0xeb, 0x69, 0x22, 0x0e, 0xd2, 0x2d, 0xa5, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xae, 0x56, 0xe8, 0x19, 0xd8, 0xd5, 0x0a, 0x45, 0x87, 0x68, 0x1e, 0x87, 0x8e, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xb2, 0x56, 0xc8, 0x0e, 0x16, 0xc0, 0x52, 0x0c, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x96, 0xb5, 0x42, 0x3c, 0xb0, 0xac, 0x15, 0xb6, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x65, 0xad, 0x30, 0x18, 0x58, 0xd6, 0x0a, 0x8b, 0x43, 0x23, 0xc1, 0x85, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xcb, 0x5a, 0x61, 0x32, 0xb0, 0xac, 0x15, 0xa6, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x65, 0xad, 0xb0, 0x39, 0x58, 0x45, 0x67, 0x31, 0xdc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xd6, 0x0a, 0xab, 0x81, 0x65, 0xad, 0x30, 0x3b, 0x08, 0x4a, 0xef, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x6b, 0x85, 0xdd, 0xc0, 0xb2, 0x56, 0x58, 0x1e, 0xa4, 0x68, 0x5f, 0x1f, 0xd6, 0x37, 0x0f, 0xe9, 0xdc, 0xc3, 0xd1, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x96, 0xb5, 0xc2, 0x7c, 0x60, 0x59, 0x2b, 0xb4, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x65, 0xad, 0xb0, 0x1f, 0x58, 0xd6, 0x0a, 0x15, 0x07, 0xe9, 0x4f, 0xcf, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xd6, 0x0a, 0x1d, 0x03, 0xcb, 0x5a, 0xa1, 0xe4, 0x20, 0x28, 0xbd, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xac, 0x15, 0xc6, 0x03, 0xcb, 0x5a, 0x61, 0x7d, 0x10, 0x94, 0xde, 0xc7, 0xa1, 0xe3, 0xf1, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x4b, 0x5a, 0x21, 0x1d, 0x58, 0xd2, 0x0a, 0xeb, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x96, 0xb4, 0x42, 0x3c, 0xb0, 0xa4, 0x15, 0x26, 0x83, 0x64, 0x83, 0xa2, 0x3e, 0xe7, 0x60, 0x38, 0x4a, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x96, 0xb4, 0xc2, 0x66, 0x60, 0x49, 0x2b, 0x0c, 0x0f, 0x42, 0x00, 0x7c, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xd2, 0x0a, 0xcb, 0x81, 0x25, 0xad, 0x30, 0x3e, 0x18, 0x88, 0xd4, 0xc7, 0xa1, 0x61, 0x17, 0x6e, 0x83, 0x35, 0x69, 0x09, 0x87, 0x68, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x7d, 0xad, 0x90, 0x0d, 0x2c, 0x6d, 0x85, 0x74, 0xd8, 0x85, 0xdb, 0x60, 0xe0, 0x1b, 0x1f, 0xc6, 0x65, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x6c, 0x85, 0xc5, 0xc0, 0xc2, 0x56, 0x28, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x0b, 0x5b, 0x61, 0x32, 0xb0, 0xb0, 0x15, 0x56, 0x07, 0x69, 0x2f, 0xd5, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x61, 0x2b, 0xcc, 0x06, 0x16, 0xb6, 0xc2, 0xf2, 0x20, 0x79, 0x88, 0x79, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x0b, 0x5b, 0x61, 0x3a, 0xb0, 0xb0, 0x15, 0xfa, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xd8, 0x0a, 0xdb, 0x81, 0x85, 0xad, 0xb0, 0x1f, 0x24, 0x03, 0xb5, 0xef, 0x90, 0xad, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x0b, 0x5b, 0xa1, 0x60, 0x60, 0x61, 0x2b, 0xd4, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xb0, 0x15, 0x1a, 0x06, 0x16, 0xb6, 0x42, 0xcb, 0x20, 0x19, 0x28, 0x2b, 0x07, 0xc3, 0xd0, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x6c, 0x85, 0x9a, 0x81, 0x85, 0xad, 0xd0, 0x76, 0x68, 0xf8, 0x75, 0x1c, 0x3a, 0x0e, 0x0d, 0xbb, 0x70, 0x1b, 0x2c, 0x40, 0x63, 0x38, 0x8c, 0xcb, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xd8, 0x0a, 0x8b, 0x81, 0x8d, 0xad, 0x50, 0xba, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x36, 0xb6, 0xc2, 0x64, 0x60, 0x63, 0x2b, 0xac, 0x0e, 0xd2, 0x5e, 0xaa, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xc6, 0x56, 0x98, 0x0d, 0x6c, 0x6c, 0x85, 0xe5, 0x41, 0xf2, 0x10, 0xf3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xd8, 0x0a, 0xd3, 0x81, 0x8d, 0xad, 0xb0, 0x3e, 0x48, 0x1e, 0x62, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xc6, 0x56, 0x98, 0x0f, 0x6c, 0x6c, 0x85, 0xce, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x36, 0xb6, 0xc2, 0x7e, 0x60, 0x63, 0x2b, 0x74, 0x1c, 0x2c, 0xa6, 0xba, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x1b, 0x5b, 0xa1, 0x64, 0x60, 0x63, 0x2b, 0x54, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xb1, 0x15, 0x5a, 0x06, 0x36, 0xb6, 0x42, 0xd3, 0xc1, 0x88, 0x6d, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x1b, 0x5b, 0xa1, 0x6a, 0x60, 0x63, 0x2b, 0x34, 0x1e, 0x1a, 0x7e, 0x1d, 0x87, 0x8e, 0x43, 0xc3, 0x2e, 0xdc, 0x06, 0x45, 0xa4, 0xe4, 0x61, 0x5c, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xca, 0x56, 0x58, 0x0c, 0xac, 0x6c, 0x85, 0xe2, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xb2, 0x15, 0x26, 0x03, 0x2b, 0x5b, 0x61, 0x75, 0x90, 0xf6, 0x52, 0xbd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x56, 0xb6, 0xc2, 0x6c, 0x60, 0x65, 0x2b, 0x2c, 0x0f, 0x92, 0x87, 0x98, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xca, 0x56, 0x98, 0x0e, 0xac, 0x6c, 0x85, 0xf5, 0x41, 0xf2, 0x10, 0xf3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xd9, 0x0a, 0xf3, 0x81, 0x95, 0xad, 0xd0, 0x70, 0x90, 0x3c, 0xc4, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x95, 0xad, 0x50, 0x31, 0xb0, 0xb2, 0x15, 0x7a, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xd9, 0x0a, 0x1d, 0x03, 0x2b, 0x5b, 0xa1, 0xe7, 0x60, 0x31, 0xd5, 0xc5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xd9, 0x0a, 0x45, 0x03, 0x2b, 0x5b, 0xa1, 0x76, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x95, 0xad, 0xd0, 0x34, 0xb0, 0xb2, 0x15, 0xda, 0x06, 0xc9, 0x40, 0x5e, 0xe5, 0x60, 0x18, 0xfa, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x95, 0xad, 0x50, 0x37, 0xb0, 0xb2, 0x15, 0x5a, 0x0f, 0x0d, 0xbf, 0x8e, 0x43, 0xc7, 0xa1, 0x61, 0x37, 0x58, 0x63, 0xf1, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x76, 0xb6, 0xc2, 0x62, 0x60, 0x67, 0x2b, 0x94, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x9d, 0xad, 0x30, 0x19, 0xd8, 0xd9, 0x0a, 0xab, 0x83, 0xb4, 0x97, 0xea, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x6c, 0x85, 0xd9, 0xc0, 0xce, 0x56, 0xe8, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x67, 0x2b, 0xec, 0x06, 0x76, 0xb6, 0xc2, 0xf6, 0x60, 0x31, 0xd5, 0xc5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xd9, 0x0a, 0xe3, 0x81, 0x9d, 0xad, 0x50, 0x35, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xce, 0x56, 0x58, 0x0f, 0xec, 0x6c, 0x85, 0x86, 0x41, 0x32, 0x90, 0x5d, 0x39, 0x18, 0x86, 0x3e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x67, 0x2b, 0x54, 0x0c, 0xec, 0x6c, 0x85, 0xa6, 0x43, 0xc3, 0xaf, 0xe3, 0xd0, 0x71, 0x68, 0x90, 0x6d, 0x68, 0xbe, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x7d, 0xad, 0x30, 0x1a, 0xd8, 0xd7, 0x0a, 0x15, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x6b, 0x85, 0xd5, 0xc0, 0xbe, 0x56, 0x58, 0x1e, 0xac, 0x1d, 0x6a, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xfb, 0x5a, 0x61, 0x3a, 0xb0, 0xaf, 0x15, 0x1a, 0x0e, 0x0d, 0xbf, 0x8e, 0x43, 0xc3, 0x2e, 0xdc, 0x06, 0x27, 0xbd, 0xdd, 0x43, 0x34, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xde, 0x56, 0xc8, 0x06, 0x76, 0xb8, 0x42, 0x3a, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xdb, 0x0a, 0xf9, 0xc0, 0xde, 0x56, 0x58, 0x0e, 0xb7, 0xc1, 0x52, 0x9b, 0x82, 0xc3, 0xb8, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xc5, 0xad, 0x90, 0x0e, 0x6c, 0x6e, 0x85, 0x92, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x16, 0xb7, 0xc2, 0x62, 0x60, 0x71, 0x2b, 0xac, 0x06, 0xc9, 0x80, 0x42, 0xbd, 0xef, 0x60, 0xf8, 0xc7, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x16, 0xb7, 0xc2, 0x6e, 0x60, 0x71, 0x2b, 0x94, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xc5, 0xad, 0x30, 0x1c, 0x58, 0xdc, 0x0a, 0xdb, 0x83, 0xb4, 0x8d, 0xe7, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xb8, 0x15, 0xc6, 0x03, 0x8b, 0x5b, 0x61, 0x7f, 0xb0, 0xd4, 0xa6, 0x60, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x8b, 0x5b, 0xa1, 0x60, 0x60, 0x71, 0x2b, 0x74, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xb8, 0x15, 0x1a, 0x06, 0x16, 0xb7, 0x42, 0xcb, 0x20, 0xd9, 0xa0, 0x9c, 0xd5, 0x39, 0x18, 0xfe, 0xb1, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xc5, 0xad, 0x50, 0x33, 0xb0, 0xb8, 0x15, 0x6a, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xdc, 0x0a, 0x3d, 0x03, 0x8b, 0x5b, 0xa1, 0x6d, 0xf8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xb8, 0x15, 0xba, 0x0e, 0x56, 0xa4, 0x66, 0x0c, 0x92, 0x81, 0x52, 0x75, 0x30, 0xde, 0x75, 0x0e, 0x46, 0x48, 0xd4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xdc, 0x0a, 0x75, 0x03, 0x8b, 0x5b, 0xa1, 0xf5, 0xd0, 0xf0, 0xeb, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x6e, 0x85, 0xde, 0x81, 0xc5, 0xad, 0x50, 0x3d, 0x86, 0xc6, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xb9, 0x15, 0xd2, 0x83, 0x35, 0x3d, 0x19, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x6c, 0x6e, 0x85, 0x78, 0x60, 0x73, 0x2b, 0x4c, 0x06, 0xc9, 0x40, 0xe9, 0x3b, 0x64, 0x2b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xe6, 0x56, 0xd8, 0x0c, 0x6c, 0x6e, 0x85, 0x8e, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x36, 0xb7, 0xc2, 0x68, 0x60, 0x73, 0x2b, 0x4c, 0x87, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x9b, 0x5b, 0x61, 0x78, 0xb0, 0xac, 0x41, 0xe3, 0x60, 0x8d, 0x6d, 0xc6, 0x41, 0xc9, 0xd0, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x36, 0xb7, 0xc2, 0x76, 0x60, 0x73, 0x2b, 0x54, 0x1c, 0x1a, 0x7e, 0x1d, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x6e, 0x85, 0xec, 0x60, 0x09, 0x49, 0xc6, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xdb, 0x5b, 0x21, 0x3b, 0x58, 0x42, 0x92, 0x31, 0xec, 0xc2, 0x6d, 0x90, 0xb6, 0x40, 0x7d, 0x18, 0x97, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xbe, 0x15, 0x16, 0x03, 0xeb, 0x5b, 0xe1, 0xc8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xdf, 0x0a, 0x93, 0x81, 0xf5, 0xad, 0xb0, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xeb, 0x5b, 0x61, 0x33, 0xb0, 0xbe, 0x15, 0x66, 0x07, 0x69, 0x1b, 0xcf, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x7d, 0x2b, 0xec, 0x06, 0xd6, 0xb7, 0xc2, 0xf4, 0x20, 0x6d, 0x81, 0x7a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xeb, 0x5b, 0x61, 0x3b, 0xb0, 0xbe, 0x15, 0xc6, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x7d, 0x2b, 0xcc, 0x07, 0xd6, 0xb7, 0xc2, 0x8f, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xd6, 0xb7, 0xc2, 0x7e, 0x60, 0x7d, 0x2b, 0xd4, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xbe, 0x15, 0x0a, 0x06, 0xd6, 0xb7, 0x42, 0xcb, 0x20, 0x19, 0x44, 0x07, 0x41, 0xce, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xdf, 0x0a, 0x35, 0x03, 0xeb, 0x5b, 0xa1, 0x6b, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x6f, 0x85, 0x9e, 0x81, 0xf5, 0xad, 0x50, 0x74, 0x68, 0x25, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xf5, 0xad, 0xd0, 0x34, 0xb0, 0xbe, 0x15, 0xaa, 0x0e, 0xca, 0xb8, 0x9d, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x7d, 0x2b, 0x94, 0x0d, 0xac, 0x6f, 0x85, 0xf6, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xdf, 0x0a, 0x9d, 0x03, 0xeb, 0x5b, 0xa1, 0x7c, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xf5, 0xad, 0xd0, 0x3b, 0xb0, 0xbe, 0x15, 0x9a, 0x0f, 0xd6, 0xb2, 0x3b, 0x0c, 0x92, 0x41, 0xd9, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x7d, 0x2b, 0x54, 0x0f, 0xac, 0x6f, 0x85, 0xee, 0x43, 0xea, 0xe0, 0x38, 0x74, 0x3c, 0x3e, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xf5, 0xad, 0xd0, 0x3f, 0xb0, 0xbe, 0x15, 0x6e, 0x1c, 0x1a, 0x7e, 0x1d, 0x87, 0x86, 0x5d, 0xb8, 0x83, 0x53, 0x56, 0xfa, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xdf, 0x0a, 0x8b, 0x81, 0xfd, 0xad, 0xd0, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xf6, 0xb7, 0xc2, 0x64, 0x60, 0x7f, 0x2b, 0xac, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xfe, 0x56, 0xd8, 0x0c, 0xec, 0x6f, 0x85, 0xd9, 0x41, 0xda, 0xc6, 0xf3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xdf, 0x0a, 0xbb, 0x81, 0xfd, 0xad, 0x30, 0x3d, 0x18, 0x0d, 0xbe, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xdf, 0x0a, 0xdb, 0x81, 0xfd, 0xad, 0x30, 0x3e, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xfb, 0x5b, 0x61, 0x3e, 0xb0, 0xbf, 0x15, 0x0a, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xdf, 0x0a, 0xfb, 0x81, 0xfd, 0xad, 0xd0, 0x33, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xfe, 0x56, 0x28, 0x18, 0xd8, 0xdf, 0x0a, 0x25, 0x07, 0x6b, 0x01, 0x01, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xfe, 0x56, 0x68, 0x19, 0xd8, 0xdf, 0x0a, 0x35, 0x87, 0xa3, 0xfd, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xf6, 0xb7, 0x42, 0xd1, 0xc0, 0xfe, 0x56, 0xe8, 0x3b, 0x34, 0xfc, 0x3a, 0x0e, 0x0d, 0xbb, 0x70, 0x1b, 0x24, 0x48, 0x42, 0x1f, 0xc6, 0x65, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x70, 0x85, 0xc5, 0xc0, 0x02, 0x57, 0x78, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x16, 0xb8, 0xc2, 0x64, 0x60, 0x81, 0x2b, 0xac, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x02, 0x57, 0xd8, 0x0c, 0x2c, 0x70, 0x85, 0xd9, 0x41, 0xda, 0xc6, 0xf3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xe0, 0x0a, 0xbb, 0x81, 0x05, 0xae, 0x30, 0x3d, 0x48, 0x90, 0x84, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x02, 0x57, 0xd8, 0x0e, 0x2c, 0x70, 0x85, 0xf1, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xe0, 0x0a, 0xf3, 0x81, 0x05, 0xae, 0x70, 0x64, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x05, 0xae, 0xb0, 0x1f, 0x58, 0xe0, 0x0a, 0xfd, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x70, 0x85, 0x82, 0x81, 0x05, 0xae, 0xd0, 0x72, 0xb0, 0x8e, 0x54, 0x63, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xc0, 0x15, 0x6a, 0x06, 0x16, 0xb8, 0x42, 0xd9, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xe0, 0x0a, 0x3d, 0x03, 0x0b, 0x5c, 0xa1, 0xe9, 0x20, 0x51, 0xee, 0x63, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x0b, 0x5c, 0xa1, 0x6a, 0x60, 0x81, 0x2b, 0x74, 0x1d, 0x94, 0x71, 0x3b, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x02, 0x57, 0x68, 0x1b, 0x58, 0xe0, 0x0a, 0xf5, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xc0, 0x15, 0x4a, 0x07, 0x16, 0xb8, 0x42, 0xfb, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x0b, 0x5c, 0xa1, 0x78, 0x60, 0x81, 0x2b, 0x54, 0x1f, 0xac, 0x65, 0x77, 0x18, 0x24, 0xc3, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x16, 0xb8, 0x42, 0xf7, 0xc0, 0x02, 0x57, 0x28, 0x3f, 0xa4, 0x0e, 0x8e, 0x43, 0xc7, 0xe3, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xe0, 0x0a, 0x07, 0x06, 0x16, 0xb8, 0xc2, 0x8f, 0x43, 0xc3, 0xaf, 0xe3, 0xd0, 0xb0, 0x0b, 0xb7, 0x41, 0x82, 0xc7, 0xf3, 0x61, 0x5c, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x06, 0x57, 0x58, 0x0c, 0x6c, 0x70, 0x85, 0x27, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x83, 0x2b, 0x4c, 0x06, 0x36, 0xb8, 0xc2, 0x7a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x6c, 0x70, 0x85, 0xcd, 0xc0, 0x06, 0x57, 0x98, 0x1d, 0xa4, 0x6d, 0x3c, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x0d, 0xae, 0xb0, 0x1b, 0xd8, 0xe0, 0x0a, 0xd3, 0x83, 0x04, 0x8f, 0xe7, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x6c, 0x70, 0x85, 0xed, 0xc0, 0x06, 0x57, 0x18, 0x1f, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x0d, 0xae, 0x30, 0x1f, 0xd8, 0xe0, 0x0a, 0x47, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xe0, 0x0a, 0xfb, 0x81, 0x0d, 0xae, 0xd0, 0x3f, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x06, 0x57, 0x28, 0x18, 0xd8, 0xe0, 0x0a, 0x2d, 0x07, 0xeb, 0x48, 0x35, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x1b, 0x5c, 0xa1, 0x66, 0x60, 0x83, 0x2b, 0x94, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x0d, 0xae, 0xd0, 0x33, 0xb0, 0xc1, 0x15, 0x9a, 0x0e, 0x12, 0xca, 0x4e, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xc1, 0x15, 0xaa, 0x06, 0x36, 0xb8, 0x42, 0xd7, 0x41, 0x61, 0x87, 0x33, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x6c, 0x70, 0x85, 0xb6, 0x81, 0x0d, 0xae, 0x50, 0x3f, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x1b, 0x5c, 0xa1, 0x74, 0x60, 0x83, 0x2b, 0xb4, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xc1, 0x15, 0x8a, 0x07, 0x36, 0xb8, 0x42, 0xf5, 0xc1, 0x5a, 0x76, 0x87, 0x41, 0x32, 0xcc, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x83, 0x2b, 0x74, 0x0f, 0x6c, 0x70, 0x85, 0xf2, 0x43, 0xea, 0xe0, 0x38, 0x74, 0x3c, 0x3e, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x0d, 0xae, 0x70, 0x60, 0x60, 0x83, 0x2b, 0xfc, 0x38, 0x34, 0xfc, 0x3a, 0x0e, 0x0d, 0xbb, 0x70, 0x8b, 0xe1, 0xf7, 0x61, 0x5c, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x0a, 0x57, 0x58, 0x0c, 0xac, 0x70, 0x85, 0x27, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x85, 0x2b, 0x4c, 0x06, 0x56, 0xb8, 0xc2, 0x7a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x70, 0x85, 0xcd, 0xc0, 0x0a, 0x57, 0x98, 0x1d, 0xa4, 0x6d, 0x3c, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x15, 0xae, 0xb0, 0x1b, 0x58, 0xe1, 0x0a, 0xd3, 0x83, 0x35, 0x42, 0x1d, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xe1, 0x0a, 0xdb, 0x81, 0x15, 0xae, 0x30, 0x3e, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x2b, 0x5c, 0x61, 0x3e, 0xb0, 0xc2, 0x15, 0x8e, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xc2, 0x15, 0xf6, 0x03, 0x2b, 0x5c, 0xa1, 0x7f, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x15, 0xae, 0x50, 0x30, 0xb0, 0xc2, 0x15, 0x5a, 0x0e, 0xd6, 0x91, 0x6a, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x56, 0xb8, 0x42, 0xcd, 0xc0, 0x0a, 0x57, 0x28, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x2b, 0x5c, 0xa1, 0x67, 0x60, 0x85, 0x2b, 0x34, 0x1d, 0xa4, 0x43, 0x79, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x85, 0x2b, 0x54, 0x0d, 0xac, 0x70, 0x85, 0xae, 0x83, 0xc2, 0x0e, 0x67, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xe1, 0x0a, 0x6d, 0x03, 0x2b, 0x5c, 0xa1, 0x7e, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x56, 0xb8, 0x42, 0xe9, 0xc0, 0x0a, 0x57, 0x68, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x85, 0x2b, 0x14, 0x0f, 0xac, 0x70, 0x85, 0xea, 0x83, 0xb5, 0xec, 0x0e, 0x83, 0x64, 0x10, 0x0d, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x56, 0xb8, 0x42, 0xf7, 0xc0, 0x0a, 0x57, 0x28, 0x3f, 0xa4, 0x0e, 0x8e, 0x43, 0xc7, 0xe3, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xe1, 0x0a, 0x07, 0x06, 0x56, 0xb8, 0xc2, 0x8f, 0x43, 0xc3, 0xaf, 0xe3, 0xd0, 0x20, 0xdb, 0xd0, 0x7c, 0x7d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xdb, 0x5b, 0x61, 0x34, 0xb0, 0xbd, 0x15, 0x2e, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xed, 0xad, 0xb0, 0x1a, 0xd8, 0xde, 0x0a, 0xb3, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xbd, 0x15, 0x76, 0x03, 0xdb, 0x5b, 0xe1, 0xc1, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xdb, 0x5b, 0x61, 0x38, 0xb0, 0xbd, 0x15, 0x8a, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xde, 0x0a, 0xcb, 0x81, 0xed, 0xad, 0x30, 0x3f, 0x58, 0x47, 0xaa, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xde, 0x0a, 0xfb, 0x81, 0xed, 0xad, 0xd0, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xb6, 0xb7, 0x42, 0xc1, 0xc0, 0xf6, 0x56, 0xa8, 0x38, 0x38, 0xf2, 0x14, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x7b, 0x2b, 0x74, 0x0c, 0x6c, 0x6f, 0x85, 0x92, 0x43, 0x7f, 0xf2, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x7b, 0x2b, 0xd4, 0x0c, 0x6c, 0x6f, 0x85, 0xde, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xde, 0x0a, 0x6d, 0x03, 0xdb, 0x5b, 0xa1, 0x76, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xed, 0xad, 0xd0, 0x38, 0xb0, 0xbd, 0x15, 0x3a, 0x0f, 0xd6, 0xb2, 0x3b, 0x0c, 0x92, 0x41, 0xd9, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x7b, 0x2b, 0x94, 0x0e, 0x6c, 0x6f, 0x85, 0xd6, 0x43, 0xea, 0xe0, 0x38, 0x74, 0x3c, 0x3e, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xed, 0xad, 0xd0, 0x3c, 0xb0, 0xbd, 0x15, 0x0e, 0x1c, 0x1a, 0x7e, 0x1d, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xbc, 0x15, 0xd2, 0x81, 0xe5, 0xad, 0x50, 0x3f, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xf2, 0x56, 0x88, 0x07, 0x96, 0xb7, 0xc2, 0xe4, 0x60, 0x45, 0xb9, 0xc5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x79, 0x2b, 0x6c, 0x06, 0x96, 0xb7, 0xc2, 0xf0, 0x20, 0xa4, 0xc0, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xe5, 0xad, 0xb0, 0x1c, 0x58, 0xde, 0x0a, 0xed, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xe5, 0xad, 0x30, 0x1e, 0x58, 0xde, 0x0a, 0x45, 0xc3, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xe5, 0xad, 0x30, 0x1f, 0x58, 0xde, 0x0a, 0xfb, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xbc, 0x15, 0x0a, 0x06, 0x96, 0xb7, 0x42, 0xcf, 0x41, 0xf0, 0x70, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xe5, 0xad, 0xd0, 0x34, 0xb0, 0xbc, 0x15, 0x6a, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xbc, 0x15, 0xfa, 0x0e, 0x56, 0x7d, 0x7c, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xe5, 0xad, 0x50, 0x38, 0xb0, 0xbc, 0x15, 0x3a, 0x0f, 0xd2, 0x36, 0x9e, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xbc, 0x15, 0x4a, 0x07, 0x96, 0xb7, 0x42, 0xeb, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xde, 0x0a, 0xbd, 0x03, 0xcb, 0x5b, 0xa1, 0xfc, 0x20, 0x04, 0xc0, 0x8f, 0x43, 0xc3, 0x2e, 0xdc, 0x06, 0x6b, 0xb4, 0x15, 0x0e, 0xd1, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x6b, 0x5c, 0x21, 0x1b, 0x58, 0xe4, 0x0a, 0x7d, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x71, 0x85, 0x7c, 0x60, 0x8d, 0x2b, 0x6c, 0x0e, 0x12, 0xa3, 0xa5, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x7b, 0x5c, 0x21, 0x1d, 0xd8, 0xe3, 0x0a, 0x55, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x3d, 0xae, 0x30, 0x18, 0xd8, 0xe3, 0x0a, 0x05, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x71, 0x85, 0xc5, 0xc0, 0x1e, 0x57, 0xd8, 0x0d, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xf6, 0xb8, 0xc2, 0xea, 0x60, 0xdd, 0xe3, 0xc7, 0xc1, 0x89, 0x10, 0xfa, 0xe0, 0xc4, 0xec, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xf6, 0xb8, 0xc2, 0x70, 0x60, 0x8f, 0x2b, 0xec, 0x0f, 0x0d, 0xbf, 0x8e, 0x43, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x8f, 0x2b, 0x34, 0x0c, 0xec, 0x71, 0x85, 0x96, 0x83, 0x45, 0x61, 0x14, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xe3, 0x0a, 0x35, 0x03, 0x7b, 0x5c, 0xa1, 0xe9, 0x60, 0xbd, 0x1c, 0xc5, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xc8, 0x15, 0xb2, 0x83, 0x45, 0x5d, 0x1f, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xf0, 0x7d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x8b, 0x5c, 0x61, 0x3e, 0xb0, 0xc8, 0x15, 0xea, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xe4, 0x0a, 0xfb, 0x81, 0x45, 0xae, 0xd0, 0x32, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xe4, 0x0a, 0x1d, 0x07, 0x0b, 0xd9, 0x3f, 0x0e, 0x4e, 0x84, 0xd0, 0x07, 0x87, 0x4d, 0xdd, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xc8, 0x15, 0x6a, 0x06, 0x16, 0xb9, 0x42, 0xdb, 0xa1, 0xe1, 0xd7, 0x71, 0x68, 0x10, 0x2d, 0x08, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xc8, 0x15, 0x16, 0x03, 0x8b, 0x5c, 0x61, 0x74, 0x70, 0xd2, 0xdb, 0x3d, 0x1e, 0x1f, 0x87, 0x86, 0xdd, 0xa0, 0xd4, 0x89, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xbb, 0x5c, 0x21, 0x1b, 0xd8, 0xe7, 0x0a, 0xb5, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x5d, 0xae, 0x90, 0x0f, 0xec, 0x72, 0x85, 0xe5, 0x70, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x97, 0x2b, 0x2c, 0x06, 0x76, 0xb9, 0xc2, 0xe8, 0xe0, 0x1c, 0xb9, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x5d, 0xae, 0xb0, 0x1a, 0xd8, 0xe5, 0x0a, 0xc3, 0xc3, 0xb8, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x65, 0xae, 0x90, 0x0e, 0xac, 0x73, 0x85, 0xc6, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x32, 0x57, 0x58, 0x0c, 0x2c, 0x73, 0x85, 0xb6, 0xe1, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x32, 0x57, 0xd8, 0x0c, 0x2c, 0x73, 0x85, 0xd9, 0xc1, 0x1a, 0x6d, 0x85, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x73, 0x85, 0xdd, 0xc0, 0x32, 0x57, 0x28, 0x1b, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x99, 0x2b, 0x0c, 0x07, 0x96, 0xb9, 0xc2, 0xf6, 0x20, 0xed, 0x1a, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xcc, 0x15, 0xc6, 0x03, 0xcb, 0x5c, 0x61, 0x7d, 0xe8, 0x4f, 0xbe, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xcc, 0x15, 0xe6, 0x03, 0xcb, 0x5c, 0xa1, 0x63, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x73, 0x85, 0xfd, 0xc0, 0x32, 0x57, 0x28, 0x38, 0xb4, 0x12, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x32, 0x57, 0x68, 0x18, 0x58, 0xe6, 0x0a, 0x15, 0x87, 0xa3, 0x7d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xe6, 0x0a, 0x25, 0x03, 0xcb, 0x5c, 0xa1, 0xeb, 0xd0, 0x02, 0xe8, 0x38, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xb6, 0xb9, 0x42, 0x3e, 0xb0, 0xcd, 0x15, 0x9a, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xe6, 0x0a, 0x83, 0x81, 0x6d, 0xae, 0x30, 0x3a, 0x48, 0x8c, 0x96, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x6c, 0x73, 0x85, 0xd5, 0xc0, 0x36, 0x57, 0x28, 0x19, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x9b, 0x2b, 0xcc, 0x06, 0xb6, 0xb9, 0xc2, 0xf2, 0x60, 0x79, 0x63, 0xc1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x9b, 0x2b, 0x4c, 0x07, 0xb6, 0xb9, 0xc2, 0xf6, 0xd0, 0x9f, 0x7c, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xe6, 0x0a, 0xe3, 0x81, 0x6d, 0xae, 0xd0, 0x71, 0x68, 0xf8, 0x75, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xb6, 0xb9, 0x42, 0xcb, 0xc0, 0x36, 0x57, 0x28, 0x3a, 0x18, 0xbc, 0x93, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x73, 0x85, 0xf4, 0x60, 0xad, 0x15, 0xc8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xe7, 0x0a, 0xf1, 0xc0, 0x3a, 0x57, 0x58, 0x1c, 0x24, 0x0f, 0x31, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x75, 0xae, 0x30, 0x19, 0x58, 0xe7, 0x0a, 0xab, 0x83, 0xb4, 0x97, 0xea, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x73, 0x85, 0xd9, 0xc0, 0x3a, 0x57, 0x28, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x9d, 0x2b, 0xec, 0x06, 0xd6, 0xb9, 0xc2, 0xf6, 0x20, 0x31, 0x5a, 0x7a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xce, 0x15, 0xc6, 0x03, 0xeb, 0x5c, 0xa1, 0x6b, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x75, 0xae, 0xb0, 0x1e, 0x58, 0xe7, 0x0a, 0x05, 0x07, 0xcb, 0x1b, 0x0b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xeb, 0x5c, 0xa1, 0x61, 0x60, 0x9d, 0x2b, 0x54, 0x1c, 0xfa, 0x93, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xeb, 0x5c, 0xa1, 0x63, 0x60, 0x9d, 0x2b, 0x54, 0x1d, 0x1a, 0x7e, 0x1d, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x75, 0xae, 0x50, 0x36, 0xb0, 0xce, 0x15, 0xfa, 0x0e, 0x06, 0xef, 0xe4, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xfb, 0x5c, 0x21, 0x3b, 0x58, 0x94, 0x02, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xf6, 0xb9, 0x42, 0x38, 0xb0, 0xcf, 0x15, 0xf2, 0x83, 0xe4, 0x21, 0xe6, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xcf, 0x15, 0x06, 0x03, 0xfb, 0x5c, 0x61, 0x73, 0x90, 0x3c, 0xc4, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x7d, 0xae, 0x30, 0x1a, 0xd8, 0xe7, 0x0a, 0xad, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x73, 0x85, 0xd5, 0xc0, 0x3e, 0x57, 0x58, 0x1e, 0x24, 0x46, 0x4b, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xf6, 0xb9, 0xc2, 0x74, 0x60, 0x9f, 0x2b, 0x14, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xcf, 0x15, 0xb6, 0x03, 0xfb, 0x5c, 0x61, 0x7e, 0xb0, 0xbc, 0xb1, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xcf, 0x15, 0xf6, 0x03, 0xfb, 0x5c, 0xa1, 0xe0, 0xd0, 0x9f, 0x7c, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xe7, 0x0a, 0x0d, 0x03, 0xfb, 0x5c, 0xa1, 0x6f, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x7d, 0xae, 0x50, 0x31, 0xb0, 0xcf, 0x15, 0x6a, 0x0e, 0x56, 0xe6, 0x16, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x7d, 0xae, 0xd0, 0x33, 0xb0, 0xcf, 0x15, 0xea, 0x0e, 0x0d, 0xbf, 0x8e, 0x43, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x9f, 0x2b, 0x34, 0x0e, 0xec, 0x73, 0x85, 0xd2, 0x83, 0xc1, 0x3b, 0x79, 0x1c, 0x1a, 0x64, 0x1b, 0x9a, 0xaf, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xc7, 0x2a, 0x8c, 0x06, 0x76, 0xac, 0x42, 0xc5, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x3b, 0x56, 0x61, 0x35, 0xb0, 0x63, 0x15, 0x96, 0x07, 0x6b, 0x87, 0x1a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x8e, 0x55, 0x98, 0x0e, 0xec, 0x58, 0x85, 0x86, 0x43, 0xc3, 0xaf, 0xe3, 0xd0, 0xf1, 0xed, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x07, 0x7e, 0xec, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x2b, 0x55, 0x21, 0x1c, 0x58, 0xa9, 0x0a, 0x83, 0x83, 0x20, 0xe7, 0xef, 0x78, 0xbc, 0x0a, 0x82, 0x0d, 0x46, 0xfe, 0xc3, 0xe2, 0xb0, 0x0b, 0xb7, 0xc1, 0x91, 0xa7, 0xf8, 0x10, 0xcd, 0x35, 0x28, 0xff, 0xf3, 0x0e, 0x47, 0xfb, 0x86, 0x46, 0x82, 0xc3, 0x1c, 0x04, 0xa5, 0xf7, 0xf1, 0x78, 0x10, 0x6c, 0x70, 0x8e, 0xec, 0x5d, 0x1c, 0x76, 0x83, 0x31, 0xd3, 0xb5, 0xb0, 0x0b, 0x82, 0x0d, 0x06, 0x3e, 0xf6, 0xc1, 0x49, 0x7e, 0xf9, 0x90, 0xd8, 0x1c, 0x76, 0x41, 0xb0, 0xc1, 0xc0, 0xc7, 0x3e, 0x38, 0xaa, 0x38, 0x1f, 0x12, 0x9b, 0xc7, 0xe3, 0x55, 0x10, 0x2c, 0x48, 0x06, 0x3c, 0xf7, 0xbf, 0xeb, 0x78, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x06, 0x63, 0xdd, 0xe6, 0x20, 0xc5, 0x9c, 0xfa, 0x78, 0x3c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x10, 0xfc, 0x5d, 0xc7, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xc9, 0xe2, 0xd3, 0xc3, 0x6f, 0x3c, 0x1f, 0x43, 0xef, 0x71, 0xe8, 0x38, 0xb4, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0x19, 0x30, 0xbb, 0xf6, 0xa9, 0x8e, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x01, 0xc3, 0x95, 0xeb, 0x78, 0x3c, 0x08, 0x36, 0x08, 0xb2, 0xf8, 0xc5, 0x41, 0xb0, 0xf0, 0x1b, 0xb2, 0x15, 0x83, 0x64, 0x60, 0xd6, 0x8e, 0xc7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xa4, 0x6a, 0x0e, 0x8d, 0x5a, 0x86, 0xdf, 0x78, 0x3e, 0x88, 0x36, 0x18, 0x11, 0x54, 0x87, 0xbd, 0xc2, 0xe3, 0xd0, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x20, 0x78, 0xb9, 0x8e, 0xc7, 0x07, 0xab, 0xde, 0x45, 0x06, 0xc1, 0x06, 0xab, 0x13, 0x46, 0x06, 0xc1, 0x06, 0x41, 0x16, 0xbf, 0x38, 0x08, 0x16, 0x7e, 0x43, 0xb6, 0x62, 0x90, 0x0c, 0x04, 0xed, 0x78, 0x7c, 0xb0, 0x12, 0x5f, 0xe4, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x82, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x92, 0x01, 0xc7, 0x75, 0xaa, 0xe3, 0xf1, 0x20, 0xd8, 0x60, 0x81, 0xba, 0xc8, 0x20, 0xd8, 0x20, 0xc8, 0xe2, 0x17, 0x07, 0xc1, 0xc2, 0x6f, 0xc8, 0x56, 0x0c, 0x92, 0x81, 0xa2, 0x76, 0x3c, 0x3e, 0x58, 0x89, 0x2f, 0x72, 0x3c, 0x1e, 0x04, 0x1b, 0xac, 0x4e, 0x18, 0x39, 0x58, 0xef, 0x32, 0x72, 0xb0, 0xea, 0x5d, 0x64, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x92, 0x01, 0xe7, 0xff, 0xae, 0xe3, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0xe0, 0x5c, 0x53, 0x7c, 0x1c, 0x1a, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x92, 0x01, 0xd3, 0x6b, 0x9f, 0xea, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0xc1, 0xa2, 0xa5, 0x91, 0x41, 0xb0, 0x41, 0x90, 0xc5, 0x2f, 0x0e, 0x82, 0x85, 0xdf, 0x90, 0xad, 0x18, 0x24, 0x03, 0xd5, 0xed, 0x78, 0x7c, 0xb0, 0x12, 0x5f, 0xe4, 0x78, 0x7c, 0xb0, 0xde, 0x65, 0x64, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x83, 0x35, 0x28, 0x23, 0x07, 0xab, 0xde, 0x45, 0x06, 0xc1, 0x82, 0x64, 0xa0, 0x69, 0xd7, 0xf1, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc0, 0x0f, 0x19, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x24, 0x03, 0xa2, 0x7d, 0x97, 0xeb, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0xc1, 0xe2, 0xc4, 0x91, 0x83, 0x85, 0x65, 0x23, 0xc7, 0xa1, 0x41, 0xb0, 0xc1, 0xba, 0x64, 0x91, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xc9, 0xe2, 0xd3, 0x07, 0x49, 0x05, 0xd5, 0xc7, 0xa1, 0x05, 0xc1, 0x06, 0xab, 0x6b, 0x45, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0xfc, 0x20, 0x79, 0x1d, 0x7b, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x48, 0x06, 0x04, 0x7a, 0xd7, 0xf1, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x05, 0xc1, 0x06, 0x2b, 0x10, 0x47, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0x26, 0xd7, 0x3e, 0xd5, 0xf1, 0xf8, 0x60, 0xd5, 0xbb, 0xc8, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0x60, 0x97, 0xea, 0x78, 0x7c, 0xb0, 0xea, 0x5d, 0xe4, 0x38, 0x34, 0x08, 0x36, 0x58, 0x01, 0x3c, 0x72, 0xb0, 0xb0, 0x6c, 0xe4, 0x38, 0xb4, 0x82, 0x60, 0x41, 0x32, 0x20, 0xf0, 0xbb, 0x8e, 0xc7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x52, 0x3b, 0x40, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0x82, 0xbd, 0xeb, 0x78, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0x40, 0xd3, 0xfb, 0x54, 0xc7, 0xe3, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x01, 0xc1, 0x4f, 0x75, 0x3c, 0x3e, 0x0e, 0x1d, 0x87, 0x56, 0x10, 0x2c, 0x48, 0x06, 0x92, 0x5d, 0xc7, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0xc7, 0x41, 0x34, 0x28, 0xe8, 0x38, 0xb4, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x24, 0x03, 0x9a, 0xda, 0xa7, 0x3a, 0x1e, 0x1f, 0x2c, 0xf9, 0x1d, 0x59, 0x10, 0x2c, 0x48, 0x06, 0x9a, 0x77, 0x1d, 0x8f, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xa4, 0x97, 0xf5, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0x2a, 0x76, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x48, 0x06, 0x34, 0xbe, 0xcb, 0x75, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x78, 0xf6, 0x3e, 0xd5, 0xf1, 0xf8, 0x60, 0xd5, 0xbb, 0xc8, 0x71, 0xe8, 0x38, 0xb4, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0xac, 0x4b, 0x16, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x90, 0x1a, 0x76, 0x72, 0x90, 0x5e, 0xd6, 0x73, 0x1c, 0x1a, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0x86, 0x69, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x7b, 0x90, 0xb8, 0xd0, 0x7c, 0x1c, 0x3a, 0x58, 0xef, 0x32, 0xb2, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0xac, 0xdc, 0x1b, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x14, 0x8b, 0x86, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0xb4, 0xbf, 0xcb, 0x75, 0x3c, 0x3e, 0x0e, 0x0d, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x58, 0xb9, 0x37, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xd0, 0x78, 0x7e, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0xe0, 0x77, 0xae, 0xe3, 0xf1, 0x71, 0xe8, 0x60, 0xd5, 0xbb, 0xc8, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x24, 0x03, 0x9e, 0xb5, 0x4f, 0x75, 0x3c, 0x1e, 0x04, 0x1b, 0x2c, 0x1e, 0x1c, 0x39, 0x58, 0x58, 0x36, 0xb2, 0x20, 0xd8, 0x60, 0xe5, 0xde, 0xc8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x81, 0x1f, 0x32, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0xaa, 0xd8, 0x91, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0x19, 0x10, 0xe8, 0x54, 0xc7, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x80, 0xc3, 0x3e, 0xd5, 0xf1, 0xf8, 0x60, 0xd5, 0xbb, 0xc8, 0x71, 0xe8, 0x38, 0xb4, 0x20, 0x58, 0xdc, 0x20, 0x45, 0xe5, 0x67, 0x83, 0x31, 0x86, 0xb6, 0xc1, 0xa1, 0x76, 0x76, 0x83, 0xa0, 0x59, 0x3e, 0x18, 0xb7, 0x66, 0x8b, 0x83, 0x60, 0x83, 0x82, 0x5a, 0x6c, 0x71, 0x10, 0x2c, 0x08, 0x16, 0x7e, 0x43, 0xea, 0x60, 0xe3, 0xd0, 0xf1, 0xfc, 0x60, 0xa4, 0x69, 0x0d, 0x82, 0x05, 0xc1, 0x06, 0x29, 0xdf, 0x01, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0x62, 0xd1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x24, 0x80, 0x3c, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x0f, 0x86, 0x66, 0xd7, 0x71, 0xe8, 0x20, 0x35, 0xec, 0xe4, 0x38, 0x34, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x01, 0xe7, 0xff, 0xae, 0x83, 0x80, 0xf7, 0x3f, 0x58, 0xff, 0x34, 0x32, 0x08, 0x16, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0x1c, 0x1a, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe3, 0xd0, 0x20, 0xd8, 0x90, 0x3a, 0x18, 0x04, 0x1b, 0x04, 0x59, 0xfc, 0xe2, 0x20, 0x58, 0xf8, 0x0d, 0xd9, 0x8a, 0x41, 0x32, 0x50, 0xdd, 0x0e, 0xc6, 0xbb, 0xce, 0xc1, 0x4a, 0x7c, 0x91, 0xe3, 0xf1, 0x20, 0xd8, 0x20, 0xc8, 0xe2, 0x17, 0x07, 0xc1, 0xc2, 0x6f, 0xc8, 0x56, 0x0c, 0x92, 0x81, 0xaa, 0x76, 0x30, 0xde, 0x75, 0x0e, 0x56, 0xe2, 0x8b, 0x1c, 0x8f, 0x07, 0xc1, 0x82, 0x60, 0x41, 0x32, 0x20, 0xd0, 0xbb, 0x0e, 0x86, 0xa1, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x82, 0x8d, 0x43, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x20, 0x19, 0x50, 0xfe, 0x76, 0x1d, 0x0c, 0x43, 0x9f, 0x83, 0x61, 0x16, 0x3e, 0x08, 0x36, 0xa4, 0x6a, 0x06, 0xc1, 0x06, 0x41, 0x16, 0xbf, 0x38, 0x08, 0x16, 0x7e, 0x43, 0xb6, 0x62, 0x90, 0x0c, 0x84, 0xed, 0x60, 0x18, 0xfa, 0x1c, 0xac, 0xc4, 0x17, 0x39, 0x1e, 0x0f, 0x82, 0x0d, 0x82, 0x2c, 0x7e, 0x71, 0x10, 0x2c, 0xfc, 0x86, 0x6c, 0xc5, 0x20, 0x19, 0x98, 0xb5, 0x83, 0x61, 0xe8, 0x73, 0xb0, 0x12, 0x5f, 0xe4, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x70, 0x5c, 0xa7, 0x3a, 0x18, 0x86, 0x3e, 0x07, 0x6b, 0x61, 0x4a, 0x8e, 0x43, 0x87, 0xf5, 0x89, 0x61, 0x37, 0x08, 0x2d, 0xf7, 0x8d, 0x43, 0x83, 0x60, 0x41, 0xb0, 0xc1, 0x40, 0xa4, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb4, 0xd0, 0xc3, 0xd1, 0x7e, 0x88, 0xff, 0xa1, 0x93, 0xda, 0x71, 0x68, 0x10, 0x2c, 0x88, 0x16, 0x3a, 0x08, 0x36, 0x48, 0xa3, 0x5d, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x48, 0xaf, 0x1c, 0x1c, 0xb3, 0x8a, 0x0f, 0x8a, 0x13, 0x8b, 0x83, 0xa1, 0xd9, 0x75, 0x1c, 0x3a, 0x08, 0x29, 0xf0, 0x61, 0x37, 0xec, 0x1a, 0x2c, 0x88, 0x16, 0x72, 0x1c, 0x3a, 0xa4, 0x0e, 0x06, 0xc1, 0x1a, 0x3a, 0xa9, 0x2d, 0x88, 0x16, 0x3a, 0x08, 0x36, 0x38, 0xf1, 0x19, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0xa4, 0x57, 0x0e, 0xce, 0x5e, 0xc6, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x09, 0x2a, 0xff, 0x71, 0x68, 0x82, 0xe9, 0x3e, 0x0e, 0x1d, 0x9a, 0x70, 0x0d, 0x82, 0x0d, 0xce, 0xea, 0xe7, 0x83, 0x60, 0x71, 0xd8, 0x0d, 0xeb, 0x7b, 0x1b, 0x24, 0x7a, 0x2b, 0x0c, 0xbb, 0xc1, 0xda, 0x49, 0x91, 0x05, 0xc1, 0x82, 0x64, 0x40, 0xa1, 0xde, 0x77, 0x70, 0x3a, 0x43, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x0d, 0x8e, 0x3c, 0xc5, 0x83, 0x60, 0x41, 0x32, 0x90, 0xde, 0x39, 0x38, 0x66, 0x15, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x0f, 0x06, 0x22, 0xf5, 0x71, 0xe8, 0xa0, 0x44, 0x41, 0x3b, 0x0e, 0x1d, 0x14, 0x20, 0x67, 0xc7, 0xb7, 0x41, 0xb4, 0xc1, 0xb8, 0x6a, 0x1f, 0x44, 0x0b, 0x39, 0xa4, 0x0e, 0x0e, 0xa9, 0x9a, 0xe3, 0xf1, 0xf1, 0x78, 0x10, 0x6c, 0xb0, 0x72, 0x6f, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc0, 0x0f, 0x19, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x24, 0x03, 0x02, 0x9d, 0xeb, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0xc1, 0x62, 0xe8, 0x92, 0x83, 0x85, 0x65, 0x23, 0xc7, 0xa1, 0x05, 0xc1, 0x06, 0xab, 0x6b, 0x45, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x2c, 0xe7, 0x15, 0x19, 0x7e, 0xe3, 0xf9, 0xc1, 0xc2, 0xca, 0x91, 0xe3, 0xd0, 0x0a, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xb0, 0xf2, 0x8e, 0x64, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0xd0, 0x94, 0xeb, 0x78, 0x7c, 0xb0, 0xb0, 0x6c, 0x64, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x05, 0xc1, 0xc2, 0x6f, 0x3c, 0x3e, 0x58, 0xe2, 0x49, 0x32, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0x60, 0x65, 0x7e, 0xc9, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x07, 0xeb, 0x2f, 0x49, 0x0e, 0x56, 0xbd, 0x8b, 0x0c, 0x82, 0x0d, 0x96, 0x27, 0x98, 0x1c, 0x2c, 0x2c, 0x1b, 0x39, 0x58, 0xf5, 0x2e, 0x32, 0x08, 0x36, 0x58, 0x1c, 0x36, 0x72, 0xb0, 0xea, 0x5d, 0x64, 0x05, 0xc1, 0x06, 0x2b, 0xf7, 0x46, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xfc, 0x90, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x08, 0x16, 0x04, 0x1b, 0xac, 0x4c, 0x1a, 0x19, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0x2a, 0x76, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x7b, 0xb0, 0x9a, 0x6e, 0xe4, 0x38, 0x74, 0xb0, 0xb0, 0x6c, 0x64, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x60, 0xed, 0x2e, 0xd7, 0xf1, 0xf8, 0x60, 0x61, 0xd9, 0xc8, 0xc1, 0xf2, 0x1c, 0x93, 0xe3, 0xd0, 0x0a, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0x60, 0x65, 0xd2, 0xc8, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0xac, 0xcc, 0x2f, 0x19, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0x24, 0xfe, 0x77, 0x1d, 0x8f, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0xef, 0x73, 0x1d, 0x8f, 0x8f, 0x43, 0x07, 0x0b, 0xcb, 0x46, 0x0e, 0x56, 0xbd, 0x8b, 0x0c, 0x82, 0x05, 0xc9, 0x80, 0xe1, 0x4e, 0x75, 0x3c, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0xbc, 0xf7, 0xbf, 0xeb, 0x78, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0x1c, 0x1a, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0x6c, 0xb0, 0xb4, 0x6b, 0xe4, 0x78, 0x3e, 0x08, 0x36, 0x08, 0xb2, 0xf8, 0xc5, 0x41, 0xb0, 0xf0, 0x1b, 0xb2, 0x15, 0x83, 0x64, 0xa0, 0xba, 0x1d, 0xcf, 0x0f, 0x56, 0xe2, 0x8b, 0x1c, 0x8f, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0xc1, 0x72, 0x44, 0x93, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0xc0, 0xf9, 0xbf, 0xeb, 0x78, 0x7e, 0xb0, 0xfe, 0x69, 0xe4, 0x60, 0x35, 0xa3, 0xc9, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0xa0, 0x79, 0xd7, 0xf1, 0x7c, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x7a, 0x59, 0xcf, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x40, 0xa0, 0x77, 0x1d, 0xcf, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0x4d, 0xa9, 0x8e, 0xe7, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x34, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x92, 0x0d, 0x16, 0xeb, 0x99, 0x1c, 0x8f, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x83, 0xb5, 0xeb, 0x22, 0x07, 0x6b, 0xd7, 0x45, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x58, 0xe5, 0x40, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0xbd, 0xac, 0x67, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0xa0, 0x5c, 0xef, 0x3a, 0x1e, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x58, 0x9e, 0x3e, 0x32, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x90, 0xa4, 0x3a, 0x1e, 0x1f, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x0f, 0xd6, 0x72, 0x8d, 0x1c, 0xac, 0x77, 0x19, 0x39, 0x58, 0xf5, 0x2e, 0x32, 0x08, 0x36, 0x58, 0xa0, 0x2e, 0x32, 0x08, 0x36, 0x08, 0xb2, 0xf8, 0xc5, 0x41, 0xb0, 0xf0, 0x1b, 0xb2, 0x15, 0x83, 0x64, 0xa0, 0xaa, 0x1d, 0x8f, 0x0f, 0x56, 0xe2, 0x8b, 0x1c, 0x8f, 0x17, 0x04, 0x1b, 0xac, 0x4b, 0x16, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x90, 0x36, 0xed, 0x7c, 0x90, 0xb4, 0xee, 0x7c, 0x1c, 0x5a, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x05, 0xc9, 0x80, 0xd0, 0xef, 0x3a, 0x1e, 0x1f, 0xa4, 0x28, 0x3f, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0x94, 0xff, 0x54, 0xc7, 0xe3, 0x83, 0x55, 0xef, 0x22, 0x2b, 0x08, 0x36, 0x58, 0x97, 0x2c, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0xb5, 0x2c, 0xfa, 0x20, 0xdd, 0x2f, 0xfa, 0x38, 0x34, 0x08, 0x36, 0x58, 0x5d, 0x2b, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x6c, 0x30, 0xcc, 0x68, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x50, 0xf6, 0x4d, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x48, 0xed, 0x00, 0x39, 0x64, 0xed, 0x8e, 0x43, 0x87, 0x7c, 0xed, 0x71, 0xe8, 0x78, 0x3c, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x7c, 0xb0, 0x26, 0x7e, 0x64, 0x10, 0x6c, 0xb0, 0xf0, 0x7d, 0xe4, 0x60, 0x61, 0xd9, 0xc8, 0x71, 0x68, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x05, 0xc1, 0xc2, 0x6f, 0x3c, 0x3e, 0x58, 0xbb, 0x2e, 0x32, 0x08, 0x36, 0x58, 0xa0, 0x2e, 0x72, 0xb0, 0xb0, 0x6c, 0xe4, 0x60, 0x15, 0xdc, 0xc9, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x82, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x56, 0xee, 0x8d, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x41, 0xf2, 0xcf, 0xf3, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x6b, 0x98, 0x46, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x3f, 0x48, 0x29, 0x7a, 0x3e, 0x0e, 0x1d, 0x87, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xac, 0xdc, 0x1b, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x83, 0x44, 0xa5, 0xe7, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xd6, 0x30, 0x8d, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x7e, 0x90, 0xfe, 0xf4, 0x7c, 0x1c, 0x3a, 0x0e, 0x1d, 0xac, 0x7a, 0x17, 0x19, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0xba, 0x56, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x0d, 0x86, 0x19, 0xcd, 0x41, 0xaa, 0x83, 0xc6, 0xf1, 0xf8, 0x60, 0x11, 0x79, 0xc9, 0x71, 0xe8, 0x60, 0xd5, 0xbb, 0xc8, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xd5, 0xb5, 0x22, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x6c, 0x30, 0xd6, 0x6d, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x52, 0x35, 0x07, 0x29, 0xa0, 0xcf, 0xc7, 0xa1, 0xe3, 0xf1, 0xf0, 0x1b, 0xcf, 0x0f, 0x56, 0xc1, 0x9c, 0x1c, 0x87, 0x0e, 0x56, 0xbd, 0x8b, 0x0c, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x58, 0x5d, 0x2b, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x06, 0x63, 0xdd, 0xe6, 0x20, 0x51, 0xd9, 0xf9, 0x78, 0x3c, 0xfc, 0xc6, 0xf3, 0x83, 0xc5, 0x11, 0x27, 0xc7, 0xa1, 0x83, 0x55, 0xef, 0x22, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xb0, 0x72, 0x6f, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x50, 0x2c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x10, 0xaa, 0x5c, 0xc7, 0xe3, 0xe3, 0xd0, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x95, 0x7b, 0x23, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x8d, 0xe7, 0x0f, 0x16, 0x3b, 0x8e, 0x1c, 0x87, 0x0e, 0x56, 0xbd, 0x8b, 0x0c, 0x82, 0x0d, 0x16, 0x60, 0x8f, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x34, 0x9e, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0xd1, 0xf8, 0xc8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xe5, 0xe9, 0x23, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0x8a, 0x7f, 0xaa, 0xe3, 0xf1, 0x71, 0xe8, 0x38, 0xb4, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0xc1, 0x0a, 0xc4, 0x91, 0x83, 0xf5, 0xc7, 0x23, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x1f, 0x2c, 0x3a, 0x20, 0x39, 0x58, 0xf5, 0x2e, 0x72, 0xb0, 0xe4, 0x77, 0x64, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x58, 0x79, 0x47, 0x72, 0xb0, 0xba, 0x71, 0x64, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x16, 0x7e, 0x9c, 0x0c, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x64, 0x40, 0xe0, 0x72, 0x1d, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x3f, 0x58, 0x94, 0x47, 0x72, 0xb0, 0xb0, 0x6c, 0x64, 0x10, 0x6c, 0xb0, 0x3a, 0x61, 0xe4, 0x60, 0x61, 0xd9, 0xc8, 0xc1, 0xaa, 0x77, 0x91, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x0b, 0xbf, 0xf1, 0xf8, 0x60, 0xa5, 0xf2, 0xc8, 0xc1, 0x0a, 0x22, 0x94, 0x83, 0x25, 0xbf, 0x23, 0x83, 0x60, 0x83, 0x05, 0xd8, 0x23, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xce, 0x35, 0xc5, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x2c, 0x1a, 0x1f, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xb0, 0x3c, 0x7d, 0x64, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0xa0, 0x3d, 0xd5, 0xf1, 0xf8, 0x38, 0x74, 0x1c, 0x1a, 0x04, 0x1b, 0xac, 0xae, 0x15, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xb0, 0xd6, 0x74, 0x64, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xb0, 0x2a, 0x76, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0xe0, 0xb8, 0x4f, 0x75, 0x3c, 0x3e, 0x0e, 0x0d, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0x0c, 0x75, 0xaa, 0xe3, 0xf1, 0xc1, 0xc2, 0xb2, 0x91, 0xe3, 0xd0, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x58, 0x5d, 0x2b, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x06, 0x63, 0xdd, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x55, 0x73, 0xb0, 0x42, 0x5a, 0xe4, 0x38, 0x74, 0x3c, 0x1e, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0x5d, 0xb2, 0xc8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xb4, 0x69, 0xe7, 0xe1, 0x37, 0x9e, 0x8f, 0xe1, 0xc6, 0x71, 0xe8, 0x38, 0x34, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0x75, 0xad, 0xc8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x1b, 0x8c, 0x75, 0x9b, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x54, 0xcd, 0xf0, 0x1b, 0xcf, 0x0f, 0x52, 0xb9, 0xa1, 0x8f, 0x43, 0xc7, 0xe3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xd6, 0x25, 0x8b, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x48, 0x2d, 0x8b, 0x1e, 0x7e, 0xe3, 0xf9, 0xc1, 0xb8, 0xdd, 0x3d, 0x0e, 0x1d, 0x87, 0x0e, 0x56, 0xbd, 0x8b, 0x0c, 0x82, 0x0d, 0x96, 0x3d, 0xa2, 0x1c, 0xac, 0x7a, 0x17, 0x59, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x47, 0xfb, 0x20, 0xd8, 0xa0, 0xa0, 0x16, 0x5b, 0x1c, 0x04, 0x0b, 0xbb, 0x21, 0x55, 0xb3, 0x20, 0x58, 0x90, 0x0c, 0xa8, 0xbf, 0xf6, 0xa9, 0x0e, 0x2b, 0xb4, 0x87, 0x46, 0x2d, 0x83, 0x60, 0x41, 0x32, 0x20, 0x79, 0x9d, 0xea, 0xb0, 0x42, 0x7b, 0x68, 0xd4, 0x32, 0xec, 0x06, 0xa1, 0xe5, 0xbe, 0x86, 0xac, 0xdd, 0x86, 0x18, 0x6e, 0x38, 0xda, 0x0f, 0xa9, 0x9a, 0x41, 0xb0, 0x20, 0x19, 0x32, 0x88, 0x16, 0xc4, 0xc3, 0x6e, 0xd8, 0x2b, 0x3c, 0xac, 0x6f, 0x0e, 0xa2, 0x85, 0x3d, 0x08, 0x03, 0xf9, 0xe3, 0xf9, 0xb0, 0x0b, 0x3d, 0x08, 0x01, 0xf0, 0x35, 0x08, 0x29, 0xf0, 0x0d, 0x31, 0x5c, 0x10, 0x2c, 0x48, 0x06, 0x75, 0x07, 0xc3, 0xd0, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xa1, 0x71, 0xd1, 0xa1, 0x93, 0xda, 0x71, 0xe8, 0x20, 0x0c, 0xe4, 0x0f, 0xa7, 0xd8, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb2, 0xc1, 0x2a, 0x91, 0x94, 0xe3, 0xf1, 0x20, 0xd8, 0x20, 0xc8, 0xe2, 0x17, 0x07, 0xc1, 0xc2, 0x6f, 0xc8, 0x56, 0x0c, 0x82, 0x05, 0xc9, 0xa0, 0xec, 0x78, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x04, 0x1b, 0xac, 0x82, 0x3c, 0x38, 0x24, 0x5a, 0x8f, 0xc7, 0xc7, 0xa1, 0x83, 0x95, 0xf8, 0x22, 0xc7, 0xe3, 0x05, 0xc1, 0x06, 0xab, 0x6b, 0x45, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x2c, 0xe7, 0x15, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0x5d, 0xb2, 0xc8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x64, 0xf1, 0xe9, 0xe1, 0x37, 0x9e, 0x1f, 0xac, 0xca, 0xce, 0x38, 0x0e, 0x1d, 0x87, 0x06, 0xc1, 0x06, 0x2b, 0xf7, 0x46, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xfc, 0x90, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x83, 0x05, 0x8c, 0x24, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x01, 0x43, 0x9f, 0xea, 0x78, 0x7c, 0xb0, 0xb0, 0x6c, 0xe4, 0x38, 0xb4, 0x20, 0x58, 0x0c, 0xc0, 0xe7, 0x18, 0x99, 0x19, 0x9a, 0x1a, 0x9b, 0x1b, 0x9c, 0x9c, 0x20, 0xa1, 0x21, 0xa2, 0x22, 0xa3, 0x23, 0x24, 0xa5, 0x25, 0xa6, 0x26, 0x27, 0xa8, 0x28, 0xa9, 0x29, 0xaa, 0x2a, 0xab, 0x2b, 0xac, 0x2c, 0xad, 0x30, 0xb1, 0x31, 0xb2, 0x32, 0xb3, 0x33, 0xb4, 0x34, 0xb5, 0xb5, 0x36, 0xb7, 0x37, 0xb8, 0x38, 0xb9, 0x39, 0xba, 0x3a, 0xbb, 0x3b, 0xbc, 0x3c, 0x7d, 0x10, 0x2c, 0xc8, 0x36, 0xc4, 0x65, 0x10, 0x2c, 0x08, 0xd6, 0x10, 0xc3, 0x0d, 0x31, 0x1c, 0x04, 0x1b, 0x9c, 0x5a, 0x9b, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xc5, 0xa2, 0x0d, 0xd2, 0xcb, 0x7a, 0x0e, 0xd2, 0x0d, 0x1c, 0x8e, 0x43, 0x8b, 0x1b, 0x94, 0xff, 0x79, 0x83, 0x60, 0x83, 0x44, 0x7a, 0x9e, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x8e, 0x61, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x8c, 0xa1, 0x85, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0xdf, 0xd0, 0x9f, 0xfc, 0x10, 0xcd, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc1, 0x06, 0x89, 0xee, 0x27, 0x83, 0x64, 0xd0, 0x36, 0x88, 0x16, 0xf6, 0x60, 0x28, 0x16, 0x1d, 0x87, 0x0e, 0x4d, 0x81, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0xf0, 0x0b, 0x82, 0x05, 0xc9, 0x06, 0x6b, 0xd7, 0x29, 0x26, 0xfc, 0x1b, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x18, 0xa5, 0x83, 0xa5, 0x08, 0x2a, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0x62, 0xd1, 0xa1, 0x93, 0xda, 0x71, 0xe8, 0x90, 0x3a, 0x38, 0x0e, 0x1d, 0xcf, 0x17, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x36, 0x18, 0x4b, 0xb9, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x18, 0xb7, 0x3d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x0e, 0x8d, 0x39, 0xa4, 0x6a, 0x8e, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xa4, 0x7f, 0x29, 0x1c, 0x1a, 0xb5, 0x1c, 0x87, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0x82, 0x0d, 0xd2, 0x62, 0x1e, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xc5, 0xa2, 0x83, 0x51, 0xcb, 0x78, 0x1c, 0x1a, 0x76, 0xe1, 0x36, 0x0e, 0x1d, 0x24, 0x29, 0x38, 0x1c, 0x9c, 0x50, 0x76, 0x8f, 0xc7, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0x82, 0x0d, 0x06, 0xe7, 0xe3, 0xa1, 0x51, 0xcb, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x06, 0x5e, 0xbf, 0x3b, 0x18, 0xef, 0x3a, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x18, 0xe2, 0xb1, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xa9, 0x83, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x0e, 0xac, 0xdb, 0x07, 0xe9, 0x70, 0x10, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x86, 0xf8, 0xec, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x14, 0x39, 0xea, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x40, 0xda, 0xe9, 0x60, 0x18, 0xfa, 0x1c, 0xa4, 0xc3, 0x41, 0x1c, 0x87, 0x8e, 0x43, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x28, 0x4f, 0x07, 0xc3, 0x3f, 0x76, 0x90, 0x0c, 0xfe, 0x1d, 0x14, 0x5c, 0x38, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x4a, 0xba, 0xa8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x4b, 0x5d, 0x54, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0xaf, 0xdf, 0x1d, 0x0c, 0x43, 0x9f, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xa9, 0x61, 0x27, 0x87, 0xd4, 0xc1, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x3a, 0x1e, 0x2f, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0x08, 0x36, 0x38, 0x60, 0x3d, 0x1f, 0xa4, 0xf8, 0x39, 0x0c, 0xbb, 0x20, 0xd8, 0x20, 0x29, 0x95, 0x7a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x75, 0x30, 0xfc, 0xc6, 0xf3, 0x31, 0xac, 0x8e, 0x43, 0x1b, 0x62, 0x38, 0x08, 0x36, 0x38, 0x5e, 0x41, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x58, 0xed, 0xab, 0x72, 0x48, 0x1d, 0x1c, 0x87, 0x8e, 0xc7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x01, 0xcb, 0x73, 0xb0, 0x72, 0x45, 0x65, 0xd8, 0x85, 0x5b, 0x10, 0x6c, 0x70, 0xc2, 0x44, 0x3f, 0x18, 0xd8, 0xa2, 0x83, 0x60, 0x83, 0x34, 0xba, 0x87, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x4b, 0x5d, 0x54, 0x0e, 0x7b, 0x85, 0xc7, 0xa1, 0x0d, 0xc6, 0xbf, 0xe4, 0x21, 0x86, 0xc7, 0xe3, 0xe3, 0xf1, 0xf0, 0x0b, 0x82, 0xc5, 0x01, 0x00, 0xff, 0x8f, 0xec, 0x4d, 0xaf, 0x2d, 0x4c, 0x4e, 0x2c, 0xcd, 0xed, 0x2e, 0xcc, 0x6d, 0x2e, 0xac, 0x8d, 0x2d, 0x8d, 0x6e, 0x2e, 0xed, 0x0c, 0x2d, 0x8d, 0xcc, 0x2c, 0x8d, 0x8c, 0x2d, 0x6d, 0x6e, 0xee, 0xed, 0x8c, 0x2c, 0x4d, 0xee, 0x2e, 0x6c, 0x6c, 0x2e, 0x4c, 0xec, 0x2e, 0x6d, 0x6e, 0x2e, 0x4d, 0x4c, 0x2e, 0xed, 0x6c, 0xee, 0x8d, 0x8d, 0xec, 0x0d, 0xae, 0xed, 0x8d, 0xcc, 0xec, 0xed, 0x8c, 0x2d, 0x8d, 0x0c, 0xed, 0x0d, 0x8e, 0x2c, 0x4c, 0x8e, 0xec, 0x4d, 0x8e, 0xed, 0x4d, 0x0e, 0xed, 0x8d, 0xcc, 0xec, 0x8d, 0x4d, 0x2e, 0xcd, 0x8d, 0xee, 0xed, 0x6c, 0x2e, 0x8d, 0xad, 0x2d, 0x4d, 0x0e, 0xed, 0x8d, 0x0d, 0x2e, 0x6c, 0x8e, 0x2d, 0x6c, 0x4c, 0xee, 0xcd, 0x8e, 0x2d, 0xcd, 0x8e, 0x2c, 0x8c, 0x6d, 0x2e, 0x8c, 0x8e, 0x2d, 0x4d, 0x8c, 0x2e, 0x4c, 0x0c, 0x2d, 0xcc, 0x8d, 0x2e, 0x6d, 0x0c, 0x2e, 0x8d, 0x8c, 0xee, 0x4d, 0x4e, 0xec, 0x8d, 0xcd, 0xec, 0x6d, 0x8e, 0xec, 0x8d, 0x8e, 0xed, 0x6d, 0x8e, 0x2c, 0x8d, 0xcd, 0xec, 0x4d, 0x0e, 0x2e, 0x8d, 0x4d, 0x2e, 0xac, 0x8d, 0x2e, 0x4d, 0xee, 0x2e, 0xcd, 0x8d, 0x2e, 0x8c, 0x4c, 0x2c, 0x6d, 0x8c, 0x2c, 0xcd, 0x4c, 0xee, 0x6d, 0xec, 0x2e, 0x8d, 0x4c, 0x2c, 0x6d, 0x8e, 0x2c, 0x6c, 0xae, 0x2d, 0x8d, 0x8c, 0xed, 0x0d, 0x4e, 0x2e, 0x8d, 0xcd, 0x2d, 0x4c, 0x8e, 0x2c, 0x0c, 0xae, 0xed, 0x8d, 0x6d, 0x2e, 0xcc, 0x8d, 0xed, 0x6d, 0xcc, 0xed, 0xcd, 0x6e, 0x2e, 0x8d, 0xce, 0x2d, 0x8d, 0x8c, 0x2e, 0x0d, 0x6e, 0x2e, 0x6d, 0x4c, 0xee, 0x0d, 0xee, 0x2e, 0x8d, 0xce, 0x2d, 0x8c, 0x0e, 0x2e, 0xcc, 0xad, 0x2d, 0xcd, 0x4d, 0x2e, 0x8d, 0x0e, 0xee, 0x8d, 0xac, 0xed, 0x8d, 0x8e, 0x2e, 0xac, 0x8d, 0xee, 0x8d, 0x6d, 0x2e, 0xcc, 0x0e, 0xee, 0x6d, 0xce, 0x2d, 0x0c, 0xce, 0xed, 0x0d, 0x6e, 0xee, 0xad, 0xcd, 0x2c, 0xcd, 0xcd, 0xec, 0xcd, 0x4d, 0x2c, 0xcc, 0xad, 0xed, 0x4d, 0xee, 0xee, 0x4d, 0x6e, 0x2e, 0x0d, 0x4e, 0xee, 0xcd, 0xcd, 0xed, 0x4d, 0x4e, 0xec, 0x8d, 0xee, 0x2e, 0x6d, 0x6c, 0xee, 0x6d, 0xec, 0x2e, 0x8c, 0x8e, 0xec, 0x8d, 0xad, 0x2d, 0xec, 0x0c, 0x2e, 0x6d, 0x8c, 0x2c, 0xcc, 0x4e, 0x2c, 0x8d, 0x4c, 0x2c, 0x8c, 0x8d, 0x2e, 0xad, 0x8d, 0x2e, 0x6c, 0xae, 0x2d, 0x8c, 0x8d, 0x2d, 0xed, 0x6c, 0x2e, 0xcd, 0x8e, 0x2e, 0xec, 0x0c, 0x2e, 0x8c, 0x6c, 0x2e, 0x8c, 0x8d, 0x2c, 0xcd, 0x8e, 0x2c, 0x6c, 0x8c, 0x2e, 0xcc, 0x6d, 0x2e, 0x8d, 0xcc, 0x2c, 0x4c, 0x8c, 0x2e, 0x4c, 0xae, 0xed, 0xcd, 0x4d, 0x2e, 0xcc, 0xcd, 0x2d, 0x6d, 0xee, 0xee, 0x8d, 0xad, 0x2d, 0x6d, 0x0e, 0x2e, 0x8c, 0x8d, 0x2d, 0x6c, 0x8e, 0x2c, 0x6d, 0xae, 0x2d, 0x0c, 0x4e, 0x2e, 0x4c, 0x8c, 0xee, 0x4d, 0x4c, 0xee, 0x8d, 0x8d, 0x2d, 0x8c, 0x8e, 0xed, 0xcd, 0xcd, 0xed, 0x8d, 0xcc, 0x2d, 0xcc, 0xce, 0x2c, 0xed, 0xcc, 0xed, 0xad, 0xcd, 0x2d, 0x4d, 0x0c, 0x2e, 0xec, 0x6c, 0xee, 0x0d, 0x4e, 0x2e, 0x8c, 0x4d, 0x2c, 0x8d, 0x0d, 0x2d, 0x8c, 0x8c, 0xec, 0x6d, 0x4c, 0x2e, 0x8d, 0xac, 0xed, 0x6d, 0x0c, 0x2e, 0x6c, 0x4c, 0x2e, 0xcc, 0x4e, 0x2e, 0x0d, 0xce, 0x2c, 0x8c, 0x8d, 0xee, 0x8d, 0x8c, 0x2e, 0x8d, 0x8d, 0x2e, 0xcd, 0x0d, 0x2d, 0x0c, 0xae, 0x2d, 0x6d, 0xcc, 0x2c, 0xcc, 0x0d, 0x2e, 0x8c, 0x8e, 0x2e, 0x6c, 0x8c, 0x2d, 0x4c, 0xac, 0xed, 0xed, 0x6c, 0x2e, 0xad, 0x6d, 0xee, 0xcd, 0x0d, 0x2e, 0xcd, 0x8d, 0xed, 0xad, 0x4d, 0x2e, 0x6d, 0x8c, 0x2e, 0x0c, 0xce, 0x2c, 0x4d, 0x0e, 0x2d, 0x6c, 0x4e, 0xec, 0x6d, 0x4e, 0x2c, 0x8c, 0x0e, 0xee, 0x6d, 0x0c, 0x2d, 0x6c, 0x8c, 0x2e, 0x8d, 0x0c, 0x2d, 0xcc, 0x6e, 0x2e, 0x0c, 0x8e, 0x2d, 0xcd, 0x8d, 0x2c, 0x4d, 0x0c, 0xed, 0x6d, 0x8e, 0x2c, 0x4c, 0x4c, 0x2c, 0x8d, 0x4e, 0x2c, 0x4c, 0x4e, 0x2e, 0x6c, 0x0c, 0x2e, 0x4c, 0x8e, 0xed, 0x8d, 0x8c, 0xec, 0x6d, 0x4e, 0xec, 0x4d, 0x8e, 0xee, 0x6d, 0x0c, 0x2d, 0x8d, 0xad, 0x2d, 0x6c, 0x8c, 0xee, 0xad, 0x8d, 0x2c, 0xed, 0xcc, 0x2c, 0x8d, 0xcd, 0x2c, 0x6c, 0xae, 0x2d, 0x8d, 0x0e, 0xed, 0x4d, 0x0c, 0x2d, 0x4c, 0xae, 0x2d, 0xed, 0x0c, 0x2d, 0xcd, 0x4d, 0x2e, 0x8c, 0xac, 0x2d, 0x6c, 0x0e, 0x2d, 0x8c, 0x4d, 0x2e, 0xec, 0x8c, 0x2d, 0xec, 0xcc, 0x2c, 0x8c, 0x8c, 0xee, 0x0d, 0xae, 0xed, 0x0d, 0x0e, 0x2d, 0x4c, 0xcc, 0x2d, 0x8d, 0xcd, 0xed, 0x6d, 0xae, 0x2d, 0x8d, 0xcd, 0xec, 0x0d, 0xce, 0x2c, 0xac, 0x8d, 0x2c, 0x8c, 0xce, 0xed, 0x8d, 0x8d, 0x2c, 0xcd, 0x0d, 0x2d, 0x8c, 0xce, 0x2d, 0x6c, 0x4c, 0x2e, 0x6d, 0xce, 0xec, 0x8d, 0x4e, 0x2e, 0x4d, 0x0c, 0xed, 0x6d, 0xcc, 0x2d, 0xad, 0x8d, 0x2d, 0x4c, 0xce, 0x2c, 0x8d, 0xee, 0x2e, 0x8c, 0x4d, 0x2e, 0x0c, 0x6e, 0x2e, 0x4c, 0xce, 0x2d, 0x8c, 0xad, 0xed, 0x6d, 0x8e, 0x2d, 0xcc, 0x8d, 0xec, 0xcd, 0x8d, 0x2c, 0xcc, 0x8d, 0x2d, 0x8c, 0x8c, 0xec, 0xcd, 0x4e, 0x2e, 0xcd, 0x4e, 0x2c, 0x6c, 0x0c, 0xee, 0x8d, 0x8d, 0x2d, 0x0c, 0x8e, 0x2e, 0x8c, 0x0d, 0x2e, 0x8d, 0xce, 0x2d, 0xac, 0x4d, 0xec, 0xcd, 0x4d, 0xee, 0x6d, 0x8e, 0xee, 0xcd, 0xcd, 0xec, 0x8d, 0x0c, 0xee, 0xcd, 0x6d, 0xee, 0xcd, 0xce, 0xed, 0x6d, 0x6c, 0xee, 0x4d, 0x8e, 0x2d, 0xcc, 0xae, 0x2d, 0x8c, 0xae, 0x2d, 0x0d, 0xce, 0x2c, 0x0d, 0x0e, 0x00, 0xfc, 0x3f, 0xbd, 0x37, 0x32, 0xb7, 0xb2, 0x31, 0xb1, 0x3a, 0xb2, 0xbb, 0xb2, 0xb9, 0xb9, 0x32, 0x3b, 0xb8, 0x32, 0xb9, 0xb9, 0x3a, 0x3a, 0xb6, 0x32, 0x3a, 0xb3, 0x3a, 0x36, 0xb8, 0x32, 0xb7, 0xb9, 0x3c, 0x3a, 0xb2, 0x3a, 0xb9, 0xbb, 0x32, 0xb8, 0xb9, 0x32, 0xb9, 0xbb, 0x3c, 0xb6, 0xb9, 0x3a, 0x37, 0xb9, 0x3c, 0xb8, 0xb9, 0x3c, 0x3c, 0xb2, 0x3c, 0x39, 0xb7, 0x3a, 0x38, 0xb4, 0x32, 0x31, 0xb8, 0xb2, 0x33, 0xb6, 0x3a, 0x38, 0xb2, 0x32, 0x38, 0xb2, 0xbc, 0x39, 0xb8, 0x3a, 0x3a, 0xb6, 0xba, 0x33, 0xb4, 0xb2, 0x31, 0xb9, 0x3c, 0x3a, 0xba, 0x3c, 0xbb, 0xb9, 0x3c, 0x32, 0xb7, 0x32, 0x3c, 0xb6, 0x3a, 0xb7, 0xb6, 0x32, 0x38, 0xb6, 0x3a, 0xba, 0xb9, 0x32, 0x38, 0xb8, 0xb2, 0x39, 0xb2, 0x32, 0xb6, 0xb9, 0x3a, 0x36, 0xb8, 0x32, 0x32, 0xba, 0xb2, 0x36, 0xb6, 0x32, 0x32, 0xba, 0x3a, 0xb6, 0xb6, 0x32, 0xba, 0xbb, 0x32, 0x37, 0xb1, 0x3c, 0x37, 0xb4, 0x32, 0x3c, 0xb3, 0x32, 0x31, 0xb8, 0x3c, 0x36, 0xb2, 0x3a, 0x36, 0xb4, 0x32, 0xba, 0xb6, 0x32, 0x3b, 0xb9, 0x3a, 0x3a, 0xba, 0x3c, 0xb6, 0xbb, 0x3c, 0x32, 0xba, 0x32, 0x38, 0xb1, 0xb2, 0x39, 0xb2, 0x32, 0xbc, 0xb9, 0x32, 0xb3, 0xbb, 0xbc, 0x31, 0xb1, 0x3a, 0x39, 0xb2, 0x32, 0x39, 0xb7, 0x32, 0x38, 0xb8, 0x3a, 0x39, 0xb9, 0xbc, 0x39, 0xb9, 0x32, 0x31, 0xb2, 0x32, 0x37, 0xb7, 0x3a, 0xba, 0xb9, 0x3a, 0x31, 0xb8, 0x32, 0x3a, 0xb9, 0x3a, 0xb6, 0xb9, 0x3c, 0x37, 0xb9, 0xb2, 0x33, 0xba, 0x3c, 0xb2, 0xb9, 0x3a, 0xb8, 0xb9, 0xb2, 0xb6, 0xbb, 0x3c, 0x37, 0xb9, 0xb2, 0xb1, 0xb6, 0xb2, 0x33, 0xb7, 0x32, 0xba, 0xb9, 0xb2, 0xb1, 0xb6, 0x3a, 0x36, 0xb7, 0xbc, 0x36, 0xba, 0x32, 0xbb, 0xbb, 0x32, 0xb1, 0xb9, 0xba, 0xb6, 0xb6, 0x3a, 0x3a, 0xb7, 0x3c, 0x3c, 0xb9, 0x32, 0x3c, 0xba, 0x32, 0x31, 0xb3, 0xba, 0x39, 0xb4, 0x32, 0x38, 0xb1, 0x32, 0xb7, 0xb6, 0xba, 0xb9, 0xbb, 0x3c, 0xbc, 0xb9, 0xbc, 0xb6, 0xb9, 0x32, 0x36, 0xb9, 0xba, 0x31, 0xb2, 0xb2, 0xb1, 0xbb, 0x32, 0xbc, 0xb9, 0x3c, 0xb9, 0xbb, 0x32, 0x3a, 0xb2, 0x3c, 0xb6, 0xb6, 0x3c, 0xb7, 0xb6, 0xb2, 0x39, 0xb2, 0x32, 0x3a, 0xb1, 0x32, 0x3a, 0xb1, 0x32, 0x36, 0xba, 0x3a, 0x3c, 0xba, 0xba, 0xb3, 0xb6, 0x3c, 0x39, 0xb8, 0x32, 0xb6, 0xb9, 0x3c, 0x38, 0xba, 0x32, 0xb9, 0xb6, 0x32, 0xb1, 0xb9, 0x32, 0x3a, 0xb2, 0x3a, 0x3a, 0xb2, 0xb2, 0x33, 0xba, 0x32, 0xbc, 0xb9, 0x3a, 0x39, 0xb3, 0x32, 0x36, 0xba, 0x3a, 0x32, 0xb7, 0x3a, 0x3c, 0xb9, 0x3a, 0x3c, 0xb9, 0x32, 0xb7, 0xbb, 0x3c, 0x3a, 0xb7, 0x3a, 0xb1, 0xb6, 0x32, 0x32, 0xb6, 0x3c, 0x3a, 0xb2, 0xba, 0x39, 0xb7, 0x32, 0x31, 0xb9, 0xba, 0x36, 0xba, 0x3c, 0xb7, 0xb9, 0xb2, 0x33, 0xb6, 0x3c, 0x3c, 0xb8, 0x3a, 0x37, 0xb9, 0xb2, 0x39, 0xb9, 0x32, 0x32, 0xb3, 0x3a, 0x37, 0xb9, 0x32, 0x3b, 0xb9, 0x32, 0xb3, 0xb6, 0xb2, 0x31, 0xba, 0x32, 0x32, 0xb9, 0xba, 0x39, 0xb1, 0x32, 0x3c, 0xb6, 0x32, 0x31, 0xb2, 0x3a, 0x3c, 0xb9, 0x3c, 0x37, 0xb7, 0xba, 0x36, 0xb8, 0x3c, 0x3c, 0xb9, 0xbc, 0x33, 0xb9, 0x3c, 0x3c, 0xb3, 0x32, 0x38, 0xba, 0x3c, 0x39, 0xba, 0xba, 0x39, 0xba, 0xbc, 0x31, 0xb6, 0xb2, 0x33, 0xb7, 0xb2, 0x36, 0xb3, 0x32, 0xb9, 0xb6, 0x32, 0x39, 0xba, 0x32, 0x37, 0xb6, 0xba, 0x39, 0xb7, 0xba, 0xb9, 0xb9, 0x3c, 0x36, 0xba, 0xb2, 0xb1, 0xb6, 0x32, 0x3c, 0xb8, 0x3a, 0x31, 0xb9, 0xbc, 0x36, 0xba, 0xba, 0x31, 0xb3, 0x3c, 0x36, 0xb6, 0x32, 0x38, 0xb2, 0x32, 0x31, 0xb1, 0x32, 0xb9, 0xb6, 0xba, 0x33, 0xb4, 0x3a, 0x3a, 0xba, 0x3a, 0x37, 0xb1, 0x3c, 0xb6, 0xb9, 0x3a, 0x32, 0xb8, 0xb2, 0x36, 0xb2, 0x32, 0x3b, 0xb6, 0x3a, 0x39, 0xb2, 0x32, 0x33, 0xb1, 0xba, 0x39, 0xb1, 0x32, 0x38, 0xb9, 0x3a, 0xb7, 0xb6, 0x32, 0x36, 0xb8, 0x32, 0x3c, 0xb2, 0x3c, 0x3a, 0xb1, 0x3c, 0x3a, 0xba, 0x3c, 0x38, 0xb6, 0x32, 0xbb, 0xb6, 0x3c, 0xb6, 0xbb, 0x32, 0x32, 0xb2, 0xba, 0x31, 0xb3, 0x3a, 0x39, 0xb3, 0x32, 0x3c, 0xb7, 0x3a, 0x36, 0xb6, 0xba, 0x31, 0xb6, 0x32, 0x37, 0xb7, 0x32, 0x39, 0xb6, 0x32, 0x3c, 0xb9, 0x3a, 0x38, 0xb7, 0x32, 0x32, 0xb6, 0xb2, 0x31, 0xb9, 0x3c, 0x32, 0xb6, 0x3c, 0x32, 0xb3, 0x32, 0xb7, 0xbb, 0x32, 0x36, 0xb7, 0x3c, 0x32, 0xb4, 0xba, 0x39, 0xb9, 0x32, 0x36, 0xb9, 0x3a, 0x32, 0xb7, 0xb2, 0x39, 0xb4, 0xb2, 0x39, 0xb3, 0x32, 0x3a, 0xb2, 0xb2, 0x39, 0xb9, 0x32, 0x3a, 0xb2, 0x3a, 0x37, 0xb6, 0x32, 0x39, 0xb7, 0x3c, 0xb9, 0xb9, 0x32, 0x31, 0xb4, 0x3a, 0x36, 0xb9, 0x3c, 0x36, 0xb6, 0x3a, 0x32, 0xb9, 0xb2, 0x36, 0xb6, 0xbc, 0x39, 0xb3, 0x3c, 0xb7, 0xbb, 0x32, 0x39, 0xb9, 0xbc, 0xb1, 0xb9, 0xba, 0x33, 0xb7, 0xbc, 0x39, 0xb7, 0x3c, 0x36, 0xb6, 0x3c, 0x37, 0xb2, 0x3c, 0x37, 0xb2, 0xb2, 0x36, 0xb6, 0x3a, 0x3c, 0xb3, 0x32, 0xb2, 0xb9, 0x32, 0x32, 0xb1, 0xb2, 0xb1, 0xb6, 0x3a, 0x37, 0xb6, 0x3c, 0x39, 0xba, 0xb2, 0xb9, 0xb6, 0x3a, 0x32, 0xb7, 0x3c, 0x3a, 0xb1, 0x3c, 0xb9, 0xb9, 0x32, 0xb7, 0xbb, 0xb2, 0x33, 0xb3, 0x3c, 0xb9, 0xb6, 0x3a, 0x39, 0xba, 0x32, 0x36, 0xb9, 0x32, 0x38, 0xba, 0xb2, 0x33, 0xb8, 0xb2, 0x31, 0xb7, 0x32, 0x36, 0xb7, 0x32, 0x3b, 0xb3, 0xb2, 0x79, 0x71, 0xe1, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x36, 0xc4, 0x70, 0x10, 0x2c, 0x0e, 0xbb, 0x70, 0x1b, 0x24, 0xa5, 0xf5, 0x1c, 0x52, 0x07, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x6d, 0xd8, 0x2b, 0x1c, 0x04, 0x1b, 0x24, 0xc7, 0x3b, 0x1c, 0x1a, 0xb5, 0x6c, 0x58, 0xe4, 0x3b, 0xac, 0x25, 0x1e, 0xdf, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xc0, 0x4b, 0x73, 0x23, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0xc2, 0x2f, 0x08, 0x36, 0xc4, 0x70, 0x71, 0xd8, 0x05, 0xc1, 0x06, 0xc7, 0x68, 0xe6, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x54, 0xcd, 0x41, 0x7a, 0x59, 0xcf, 0x71, 0x68, 0x41, 0xb0, 0xc1, 0xe0, 0x7d, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x14, 0x8b, 0x16, 0x7e, 0xe3, 0xf9, 0x82, 0x60, 0x83, 0x72, 0xe2, 0xea, 0x20, 0xc5, 0xcf, 0xe1, 0xd0, 0x9f, 0xfc, 0x90, 0x98, 0x39, 0x0e, 0x1d, 0x4e, 0xb1, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0x1c, 0xf0, 0xe8, 0xde, 0xc8, 0x43, 0x6a, 0xe9, 0x78, 0xbc, 0xf0, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x1b, 0x62, 0x38, 0x08, 0x16, 0x87, 0xdd, 0x60, 0x9d, 0x7e, 0xcb, 0x86, 0x18, 0x0e, 0xbb, 0x70, 0x1b, 0xf6, 0x0a, 0x07, 0xc1, 0x82, 0x64, 0xb0, 0x3b, 0x64, 0x2b, 0x0e, 0x8d, 0x5a, 0x0e, 0xd6, 0x1c, 0xb8, 0x1c, 0xdf, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xc0, 0x4b, 0x73, 0x9b, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0xf0, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x76, 0x83, 0xa5, 0x17, 0x2e, 0x0b, 0x82, 0x0d, 0x06, 0xef, 0xf3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa1, 0x58, 0xb4, 0xc1, 0xe2, 0x14, 0x97, 0x43, 0xb2, 0xe3, 0x38, 0x74, 0x38, 0xc5, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0x83, 0x54, 0x31, 0xbf, 0x43, 0x6a, 0xe9, 0x78, 0x7c, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0x0f, 0xf7, 0x1e, 0x52, 0x4b, 0xc7, 0xe3, 0x41, 0xb0, 0xb8, 0x20, 0x58, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x82, 0x60, 0x41, 0x32, 0xa0, 0x54, 0xef, 0x3b, 0x08, 0x72, 0xfe, 0x43, 0xa3, 0x96, 0x41, 0xb0, 0x20, 0x19, 0x28, 0x5a, 0x87, 0x15, 0xda, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x54, 0xcd, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x40, 0xe0, 0x77, 0x1d, 0x56, 0x68, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x9c, 0x6b, 0x8a, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0x12, 0xff, 0xbb, 0x0e, 0x2b, 0xb4, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0x20, 0x19, 0xa8, 0x7f, 0x87, 0x15, 0xda, 0x41, 0x32, 0x60, 0xf8, 0x7f, 0x1d, 0x8f, 0x8f, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x90, 0x0c, 0x34, 0xed, 0x3a, 0x24, 0x97, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xfc, 0x90, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x80, 0xf2, 0xb7, 0xeb, 0x90, 0x5c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x0c, 0x3c, 0xb7, 0x30, 0xf7, 0x38, 0x74, 0x1c, 0x1a, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0x84, 0x7e, 0xd7, 0x21, 0xb9, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xc1, 0x90, 0xfa, 0x3d, 0x0e, 0x0d, 0x82, 0x0d, 0x82, 0x2c, 0x7e, 0x71, 0x10, 0x2c, 0xfc, 0x86, 0x6c, 0xc5, 0x20, 0x19, 0xa8, 0x6e, 0x87, 0xe4, 0xd2, 0xc1, 0x4a, 0x7c, 0x91, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x96, 0x36, 0xbb, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x06, 0x5e, 0x9a, 0x9b, 0x79, 0x1c, 0x1a, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x56, 0x79, 0xbb, 0x1c, 0xa4, 0x28, 0x3f, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x58, 0x26, 0xec, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x6c, 0xb8, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0x6c, 0xb0, 0x56, 0x71, 0xe4, 0x90, 0x5c, 0x3a, 0x0e, 0x0d, 0x82, 0x0d, 0x82, 0x2c, 0x7e, 0x71, 0x10, 0x2c, 0xfc, 0x86, 0x6c, 0xc5, 0x20, 0x19, 0x98, 0xb5, 0x43, 0x72, 0xe9, 0x60, 0x25, 0xbe, 0xc8, 0xf1, 0x78, 0x10, 0x6c, 0x10, 0x64, 0xf1, 0x8b, 0x83, 0x60, 0xe1, 0x37, 0x64, 0x2b, 0x0e, 0x92, 0x45, 0x8b, 0x0e, 0x56, 0xe2, 0x8b, 0x1c, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xac, 0xf2, 0x76, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0xfc, 0x60, 0x34, 0xf8, 0x1e, 0x87, 0x0e, 0xd6, 0xa6, 0xbb, 0x1c, 0xac, 0x51, 0x79, 0x19, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x56, 0x79, 0xbb, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x7e, 0x48, 0x4c, 0x1d, 0x87, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0xf8, 0x0d, 0x4a, 0xd4, 0x90, 0x83, 0x94, 0x8f, 0x8b, 0x41, 0xb0, 0xc1, 0xda, 0x86, 0x97, 0x83, 0xb5, 0xe9, 0x2e, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x80, 0xf3, 0x7f, 0xd7, 0x21, 0xb9, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x18, 0x5e, 0x1e, 0x87, 0x06, 0xc1, 0x06, 0x41, 0x16, 0xbf, 0x38, 0x08, 0x16, 0x7e, 0x43, 0xb6, 0xe2, 0x20, 0x0d, 0xe3, 0xe2, 0x60, 0x25, 0xbe, 0xc8, 0xf1, 0xf8, 0x60, 0x8d, 0xca, 0xcb, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0x2c, 0x18, 0x7b, 0x19, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x05, 0xc9, 0x06, 0x8b, 0x6d, 0x45, 0x0e, 0xc9, 0xa5, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xd4, 0xc1, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x40, 0xe2, 0x7f, 0xd7, 0x21, 0xb9, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x08, 0xfe, 0xae, 0x43, 0x72, 0xe9, 0x60, 0x21, 0xe6, 0xc8, 0x71, 0xe8, 0x38, 0x34, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x68, 0xca, 0x75, 0x48, 0x2e, 0x1d, 0x2c, 0x91, 0x7c, 0x39, 0x58, 0xa3, 0xf2, 0x72, 0xb0, 0x36, 0xdd, 0x65, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x83, 0xe5, 0x79, 0x2f, 0x07, 0x6b, 0xd3, 0x5d, 0x0e, 0x16, 0xfa, 0xbd, 0x0c, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x58, 0xe5, 0xed, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x3d, 0x48, 0xd6, 0x34, 0x38, 0x0e, 0x1d, 0xac, 0x4d, 0x77, 0x39, 0x58, 0xa3, 0xf2, 0xb2, 0x20, 0xdb, 0x10, 0x97, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x24, 0x03, 0x82, 0xb7, 0xeb, 0x78, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0x29, 0x94, 0x3e, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xac, 0xce, 0x33, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x05, 0xc9, 0x06, 0x8b, 0x4a, 0x48, 0x8e, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0xf8, 0x60, 0x09, 0x03, 0xcc, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x07, 0x4b, 0x18, 0x60, 0x0e, 0x56, 0x33, 0x9a, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0x94, 0xeb, 0x5d, 0xc7, 0xf3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xcb, 0x2e, 0x60, 0x86, 0xdf, 0x78, 0x7e, 0x70, 0xce, 0xa8, 0x3f, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x16, 0xe1, 0xbf, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xf8, 0x21, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0xf7, 0xde, 0xf1, 0xf8, 0x38, 0x34, 0x08, 0x36, 0x08, 0xb2, 0xf8, 0xc5, 0x41, 0xb0, 0xf0, 0x1b, 0xb2, 0x15, 0x83, 0x64, 0x60, 0xd6, 0x8e, 0xe7, 0x07, 0x2b, 0xf1, 0x45, 0x8e, 0xc7, 0x0b, 0xb2, 0x0d, 0x71, 0x19, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x10, 0x2c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x92, 0x01, 0xa1, 0xdf, 0x75, 0x3c, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x3c, 0x28, 0xaa, 0x05, 0x8f, 0x43, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x05, 0xc1, 0x82, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xc1, 0x9a, 0x2c, 0x98, 0x83, 0x14, 0xe5, 0xe7, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x90, 0x0c, 0x08, 0xf6, 0xae, 0xe3, 0xf9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x81, 0xa6, 0x5c, 0xc7, 0xf3, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0x20, 0x19, 0xa8, 0x7f, 0xc7, 0xf3, 0x83, 0xf3, 0x13, 0xed, 0x71, 0x68, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x7c, 0xb0, 0x66, 0x11, 0x66, 0x10, 0x6c, 0xb0, 0x30, 0x11, 0xe6, 0x60, 0x35, 0xa3, 0xc9, 0x20, 0xd8, 0x20, 0xc8, 0xe2, 0x17, 0x07, 0xc1, 0xc2, 0x6f, 0xc8, 0x56, 0x0c, 0x92, 0x81, 0xa0, 0x1d, 0xcf, 0x0f, 0x56, 0xe2, 0x8b, 0x1c, 0x8f, 0x0f, 0x56, 0xfd, 0xc0, 0x0c, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x87, 0x5f, 0x90, 0x0c, 0x84, 0xef, 0x78, 0x3e, 0x48, 0x06, 0xf7, 0x8e, 0xc7, 0x83, 0x60, 0x83, 0x85, 0x89, 0x30, 0x07, 0xeb, 0x49, 0x61, 0x0e, 0x56, 0x33, 0x9a, 0x1c, 0xac, 0x99, 0x85, 0x19, 0x04, 0x0b, 0xbf, 0xf1, 0xfc, 0x60, 0x89, 0x2e, 0xcc, 0xc1, 0x6a, 0x46, 0x93, 0x83, 0xe5, 0x96, 0x30, 0x07, 0xab, 0x7e, 0x60, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0xc3, 0x6f, 0xb0, 0x5c, 0x17, 0xe6, 0xe0, 0xb4, 0x82, 0x7b, 0xb0, 0x12, 0x18, 0xe6, 0x60, 0x35, 0xa3, 0xc9, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0xf8, 0x0d, 0x96, 0xeb, 0xc2, 0x1c, 0x24, 0x7c, 0x0a, 0x1c, 0xac, 0x04, 0x86, 0x39, 0x58, 0xcd, 0x68, 0x32, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x6c, 0xb0, 0xd8, 0x56, 0xe4, 0x78, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x62, 0x6a, 0xf1, 0xe0, 0x80, 0x00, 0x7e, 0x3c, 0x1e, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0x60, 0x15, 0x1d, 0xcc, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0xd0, 0xb4, 0xeb, 0x78, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x6c, 0xb8, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0x6c, 0xb0, 0x56, 0x71, 0xe4, 0x78, 0x7e, 0x1c, 0x3a, 0x58, 0xf5, 0x03, 0x33, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x2c, 0xd7, 0x85, 0x39, 0x48, 0xf9, 0xb8, 0x38, 0x58, 0xcd, 0x68, 0x72, 0x1c, 0x3a, 0x58, 0xcd, 0x68, 0xb2, 0x20, 0xd8, 0x60, 0xf9, 0x3d, 0xcc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0xc1, 0xe6, 0x90, 0x5c, 0x1a, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0x2c, 0xbf, 0x87, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x83, 0xf3, 0x4f, 0xf8, 0xc1, 0xd9, 0xa4, 0xf7, 0x38, 0x34, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x82, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x92, 0x01, 0x81, 0xca, 0x75, 0x3c, 0x1f, 0x04, 0x0b, 0xbf, 0xf1, 0xfc, 0x60, 0xcd, 0x55, 0xcc, 0xc1, 0x6a, 0x46, 0x93, 0x83, 0xc5, 0x5a, 0x31, 0x07, 0xeb, 0x49, 0x61, 0x8e, 0x43, 0x2b, 0xc8, 0x36, 0xc4, 0x65, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x16, 0xe1, 0xbf, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xf8, 0x21, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0xdd, 0xf5, 0x8e, 0xc7, 0xc7, 0xa1, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x8b, 0xf0, 0x5f, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0xfc, 0x20, 0x6d, 0xce, 0x67, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x90, 0xee, 0x3a, 0x9e, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x19, 0xc8, 0x7d, 0x1d, 0x56, 0x68, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x5f, 0x1c, 0x04, 0x0b, 0x92, 0x01, 0xc1, 0xd5, 0x77, 0x10, 0xf0, 0xfe, 0x07, 0xc3, 0x2c, 0xfc, 0x78, 0x7c, 0x1c, 0x3a, 0x1e, 0x0f, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xbf, 0xc1, 0x72, 0x5d, 0x98, 0x83, 0x73, 0x1f, 0xed, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x15, 0xa3, 0x26, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x83, 0x64, 0xf1, 0xe9, 0xe3, 0xd0, 0xc1, 0x7a, 0x52, 0x98, 0xe3, 0xd0, 0x71, 0xe8, 0x60, 0xd5, 0x0f, 0xcc, 0x0a, 0xbf, 0x20, 0xd8, 0xa0, 0xa0, 0x16, 0x5b, 0x1c, 0x04, 0x0b, 0x82, 0x05, 0xc9, 0x40, 0xe9, 0x3a, 0xac, 0xd0, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x41, 0x7a, 0x94, 0xcf, 0xf0, 0x1b, 0xcf, 0x17, 0x07, 0xd9, 0x86, 0xb8, 0x0c, 0x82, 0x05, 0xc9, 0x80, 0xa1, 0xde, 0x75, 0xc8, 0x56, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0xe2, 0xe0, 0x61, 0xb8, 0x3e, 0x08, 0x16, 0x24, 0x1b, 0x2c, 0xb6, 0x15, 0x39, 0x64, 0x2b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x86, 0x18, 0x6e, 0x90, 0x16, 0x9a, 0x7d, 0x48, 0x1d, 0x1c, 0x8f, 0x87, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0xd2, 0x54, 0x87, 0x6c, 0xc5, 0x71, 0x68, 0xc5, 0x41, 0x61, 0x68, 0x1e, 0x04, 0x0b, 0x92, 0x01, 0xc1, 0xdb, 0x75, 0xc8, 0x56, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xf8, 0x21, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0xa7, 0xde, 0x61, 0x85, 0xf6, 0x38, 0xb4, 0x06, 0xe9, 0x4f, 0xcf, 0x83, 0x60, 0x83, 0x35, 0x01, 0x32, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x06, 0x7e, 0xc8, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0xc0, 0xb9, 0x77, 0x58, 0xa1, 0x3d, 0x0e, 0xad, 0x41, 0xda, 0x4b, 0xf5, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x3e, 0x48, 0x1f, 0x27, 0x1a, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x34, 0xe5, 0x3a, 0x64, 0x2b, 0x06, 0xc1, 0x06, 0x41, 0x16, 0xbf, 0x38, 0x08, 0x16, 0x7e, 0x43, 0xb6, 0xe2, 0x20, 0xe5, 0xb7, 0xe2, 0x60, 0x25, 0xbe, 0xc8, 0xf1, 0x78, 0x0d, 0x92, 0x87, 0x98, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x92, 0x01, 0xa1, 0xdf, 0x75, 0xc8, 0x56, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xce, 0xc1, 0xb0, 0xdb, 0x3d, 0x0e, 0x0d, 0x82, 0x85, 0xdf, 0x78, 0x7e, 0x90, 0x42, 0x9c, 0x30, 0x08, 0x36, 0x08, 0xb2, 0xf8, 0xc5, 0x41, 0xb0, 0xf0, 0x1b, 0xb2, 0x15, 0x83, 0x64, 0x60, 0xd6, 0x0e, 0xd9, 0x8a, 0x83, 0x95, 0xf8, 0x22, 0xc7, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x80, 0x40, 0xe5, 0x3a, 0x64, 0x2b, 0x0e, 0x96, 0xbe, 0xc8, 0x1c, 0x62, 0x78, 0x1c, 0x3a, 0x1e, 0x1f, 0x87, 0x0e, 0x8d, 0x5a, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xc0, 0x77, 0xab, 0x1b, 0x5b, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0x82, 0x6c, 0x43, 0x5c, 0x86, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0x60, 0x11, 0xfe, 0xcb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x1f, 0x14, 0xa4, 0x89, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0x83, 0xe5, 0xba, 0x30, 0x07, 0xc7, 0xbd, 0xde, 0xe3, 0xd0, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x58, 0x10, 0x2c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0x60, 0x11, 0xfe, 0xcb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x1f, 0x14, 0x70, 0x8b, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0xc3, 0x6f, 0xb0, 0x5c, 0x17, 0xe6, 0xe0, 0xa8, 0xa5, 0x3b, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0xc5, 0xa8, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x07, 0x6b, 0x84, 0x3a, 0x8e, 0x43, 0x07, 0xeb, 0x49, 0x61, 0x8e, 0x43, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x16, 0xe1, 0xbf, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x41, 0xc9, 0xaf, 0x38, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xfc, 0x06, 0xcb, 0x75, 0x61, 0x06, 0xc9, 0x40, 0xbd, 0x3b, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x58, 0x31, 0x6a, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x41, 0x82, 0xc7, 0xf3, 0x71, 0xe8, 0x60, 0x3d, 0x29, 0xcc, 0x71, 0xe8, 0x60, 0xd5, 0x0f, 0xcc, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x45, 0xf8, 0x2f, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x7e, 0x50, 0x24, 0x2a, 0x0e, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xbf, 0xc1, 0x72, 0x5d, 0x98, 0x83, 0xf3, 0x13, 0xed, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x15, 0xa3, 0x26, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x1f, 0x24, 0x48, 0x42, 0x1f, 0x87, 0x0e, 0xd6, 0x93, 0xc2, 0x1c, 0x87, 0x0e, 0x56, 0xfd, 0xc0, 0x0c, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x58, 0x84, 0xff, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0x65, 0x85, 0xe2, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0xc1, 0xfa, 0x93, 0x98, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x2b, 0x46, 0x4d, 0x0e, 0x16, 0x1f, 0xbd, 0x1c, 0xac, 0x27, 0x85, 0x39, 0x0e, 0x1d, 0xac, 0xfa, 0x81, 0x19, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0x08, 0xff, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x0f, 0x4a, 0x98, 0xc4, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0xe1, 0x37, 0x58, 0xae, 0x0b, 0x73, 0x90, 0xfc, 0x1b, 0x3d, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0xc5, 0xa8, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x07, 0x4b, 0x6d, 0x0a, 0x8e, 0x43, 0x07, 0xeb, 0x49, 0x61, 0x8e, 0x43, 0x07, 0xab, 0x7e, 0x60, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x2c, 0xc2, 0x7f, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x83, 0xa2, 0x17, 0x71, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0xf8, 0x0d, 0x96, 0xeb, 0xc2, 0x1c, 0x9c, 0x7f, 0xc2, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xac, 0x18, 0x35, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0xfc, 0x20, 0x6d, 0x81, 0xfa, 0x38, 0x74, 0xb0, 0x9e, 0x14, 0xe6, 0x38, 0x74, 0xb0, 0xea, 0x07, 0xe6, 0x60, 0xbd, 0x6c, 0xcc, 0xc1, 0xaa, 0x1f, 0x98, 0x05, 0xc1, 0x06, 0xcb, 0xef, 0x61, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x24, 0x57, 0x0e, 0xc9, 0xa5, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xb0, 0x22, 0x28, 0x66, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x1f, 0xac, 0xa4, 0x8a, 0x39, 0x58, 0x4f, 0x0a, 0x73, 0x1c, 0x5a, 0x41, 0xb0, 0xc1, 0xf2, 0x7b, 0x98, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0x61, 0x39, 0x24, 0x97, 0x86, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xc1, 0x8a, 0xa0, 0x98, 0x41, 0xb0, 0xc1, 0xda, 0xad, 0x98, 0x83, 0xf5, 0xa4, 0x30, 0xc7, 0xa1, 0x41, 0xb6, 0x21, 0x2e, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0x60, 0x11, 0xfe, 0xcb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x65, 0x5a, 0x33, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x2c, 0xbf, 0x87, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0xf8, 0x73, 0x3c, 0x1f, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0xac, 0x87, 0x84, 0x39, 0x38, 0xd0, 0xdc, 0x1e, 0x87, 0x8e, 0x43, 0x83, 0x60, 0x83, 0xb5, 0x1c, 0x31, 0x07, 0xeb, 0x49, 0x61, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x45, 0xf8, 0x2f, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x7e, 0x50, 0x02, 0x45, 0x1e, 0x2c, 0x3a, 0x9f, 0x39, 0x0e, 0x1d, 0x2c, 0xf4, 0x9d, 0x39, 0x58, 0xf5, 0x03, 0x33, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0x2c, 0xc2, 0x7f, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x83, 0xe2, 0x35, 0x72, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0xb0, 0x1e, 0x12, 0x66, 0x90, 0x0c, 0x08, 0xfe, 0xaf, 0xe3, 0xf1, 0x71, 0xe8, 0x60, 0x25, 0x30, 0xcc, 0xc1, 0xaa, 0x1f, 0x98, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x8b, 0xf0, 0x5f, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x1c, 0xea, 0x6d, 0x87, 0xdf, 0x78, 0x3e, 0xfc, 0x06, 0xcb, 0x75, 0x61, 0x06, 0xc9, 0x40, 0xac, 0x8e, 0xc7, 0xc7, 0xa1, 0x83, 0x55, 0x3f, 0x30, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x96, 0xdf, 0xc3, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x04, 0x6b, 0x88, 0xe1, 0x86, 0x18, 0x6e, 0x88, 0xe1, 0x61, 0xeb, 0x60, 0x10, 0x2c, 0x0e, 0xbb, 0x21, 0x11, 0xb0, 0x06, 0xe5, 0xdf, 0xe3, 0x20, 0x58, 0x90, 0x0c, 0xc4, 0xed, 0x20, 0xe0, 0xfd, 0x0f, 0x8d, 0x5a, 0x86, 0x5d, 0xb8, 0x0d, 0x06, 0xbe, 0xf1, 0x04, 0x01, 0x5f, 0x90, 0x0c, 0x19, 0x44, 0x1b, 0x0c, 0x25, 0xab, 0x41, 0xb4, 0x20, 0x1c, 0x04, 0x1b, 0x8c, 0xd8, 0xd6, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x12, 0x4c, 0xfc, 0x21, 0x6b, 0x77, 0x1c, 0x3a, 0x1e, 0x0f, 0xbb, 0x70, 0x1b, 0x2c, 0x40, 0x63, 0x38, 0x58, 0x17, 0x46, 0xb3, 0x20, 0x19, 0x32, 0x88, 0x36, 0x18, 0x4a, 0x56, 0x83, 0x68, 0xc1, 0x74, 0x10, 0x6c, 0x30, 0x62, 0x5b, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xac, 0x74, 0xa3, 0x39, 0xf4, 0x10, 0x3a, 0x0e, 0x1d, 0x8f, 0x87, 0x5d, 0xb8, 0x0d, 0x56, 0x75, 0x2f, 0x1c, 0xac, 0x0b, 0xa3, 0x59, 0x90, 0x0c, 0x19, 0x44, 0x1b, 0x0c, 0x25, 0xab, 0x41, 0xb4, 0xa0, 0x76, 0x10, 0x6c, 0x30, 0x62, 0x5b, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xac, 0x74, 0xa3, 0x39, 0x34, 0x2e, 0x3a, 0x0e, 0x1d, 0x8f, 0x07, 0xd9, 0x1a, 0xda, 0xaf, 0x0f, 0xb7, 0xc1, 0x1a, 0x6d, 0x85, 0x83, 0x75, 0x61, 0x34, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x70, 0x77, 0x10, 0x6c, 0x30, 0x62, 0x5b, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xac, 0x74, 0xa3, 0x39, 0x08, 0x7b, 0xea, 0xe3, 0xd0, 0xc1, 0xd8, 0xb1, 0x3a, 0xbe, 0x1d, 0x8f, 0x87, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xc1, 0x02, 0x38, 0x98, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xcb, 0x05, 0x61, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x2c, 0x4c, 0x84, 0x19, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0x60, 0x11, 0xfe, 0xcb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x1f, 0xac, 0xd1, 0x56, 0x38, 0x58, 0x64, 0x12, 0x73, 0x1c, 0x1a, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0x62, 0xd4, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x7b, 0xb0, 0xb0, 0x9b, 0xe6, 0x38, 0x74, 0xb0, 0x9e, 0x14, 0x66, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x58, 0x84, 0xff, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0xab, 0xba, 0x17, 0x0e, 0x16, 0x99, 0xc4, 0x1c, 0x87, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xac, 0x18, 0x35, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x1e, 0x2c, 0xf7, 0xa7, 0x39, 0x0e, 0x1d, 0xac, 0x27, 0x85, 0x39, 0x58, 0xf5, 0x03, 0x33, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0x2c, 0xc2, 0x7f, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x83, 0x05, 0x68, 0x0c, 0x07, 0x8b, 0x4c, 0x62, 0x8e, 0x43, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x56, 0x8c, 0x9a, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x0f, 0x56, 0x89, 0xd4, 0x1c, 0x87, 0x0e, 0xd6, 0x93, 0xc2, 0x1c, 0xac, 0xfa, 0x81, 0x19, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x16, 0xe1, 0xbf, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x48, 0xd6, 0x34, 0x38, 0x58, 0x64, 0x12, 0x73, 0x1c, 0x1a, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0x62, 0xd4, 0xe4, 0x60, 0xb5, 0xf9, 0xcb, 0xc1, 0x7a, 0x52, 0x98, 0x83, 0x55, 0x3f, 0x30, 0xc7, 0xa1, 0x83, 0xd5, 0x8c, 0x26, 0xc7, 0xa1, 0x83, 0x55, 0x3f, 0x30, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x96, 0xdf, 0xc3, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0x20, 0x37, 0x5c, 0xdc, 0xa0, 0x60, 0x78, 0x1c, 0x04, 0x0b, 0x92, 0x81, 0x73, 0xed, 0x90, 0xad, 0x38, 0x34, 0x6a, 0x39, 0x1e, 0x0f, 0xbf, 0xf1, 0xfc, 0xe0, 0xb4, 0x82, 0x7b, 0x1c, 0x3a, 0x58, 0xf5, 0x03, 0x33, 0xc8, 0x36, 0xc4, 0x65, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x45, 0xf8, 0x2f, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x7e, 0x50, 0xfe, 0x4b, 0x0e, 0xbf, 0xf1, 0xfc, 0xe0, 0xa8, 0xa5, 0x7b, 0x1c, 0x1a, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0x08, 0xff, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x0f, 0x8a, 0xb9, 0xc9, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x81, 0xe6, 0x7a, 0xc7, 0xe3, 0xe3, 0xd0, 0xc1, 0xaa, 0x1f, 0x98, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x8b, 0xf0, 0x5f, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0xfc, 0xa0, 0x20, 0xa3, 0x1c, 0x7e, 0xe3, 0xf9, 0xc1, 0x08, 0x89, 0x3a, 0x0e, 0x1d, 0xac, 0xfa, 0x81, 0x19, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0x08, 0xff, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x0f, 0x4a, 0xf3, 0xc9, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x81, 0xb4, 0xde, 0xf1, 0xf8, 0x38, 0x74, 0xb0, 0xea, 0x07, 0x66, 0x41, 0xb6, 0x21, 0x2e, 0x83, 0x60, 0x83, 0x05, 0x8a, 0x31, 0x83, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x90, 0x0c, 0x9c, 0x5a, 0x87, 0x15, 0xda, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x54, 0xcd, 0xf0, 0x1b, 0xcf, 0x0f, 0x52, 0x57, 0x7e, 0x8e, 0x43, 0xc7, 0xe3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x50, 0x75, 0x8e, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0xac, 0x87, 0x84, 0x19, 0x24, 0x03, 0xef, 0x7f, 0x1d, 0x8f, 0x8f, 0x43, 0xc7, 0xa1, 0x05, 0xd9, 0x86, 0xb8, 0x0c, 0x82, 0x05, 0xc1, 0x06, 0x23, 0xff, 0x61, 0x71, 0xd8, 0x85, 0xdb, 0xe0, 0xa4, 0xb7, 0x3b, 0x08, 0x36, 0x18, 0x25, 0x27, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0x62, 0xd1, 0xa1, 0x87, 0xd0, 0x71, 0x68, 0x05, 0xc1, 0x82, 0x64, 0x20, 0x4c, 0x07, 0x41, 0xce, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x28, 0x16, 0x6d, 0xb0, 0xb0, 0x9b, 0x66, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x71, 0x98, 0x70, 0xb0, 0xe2, 0xc1, 0xe6, 0x38, 0x34, 0x08, 0x16, 0x7e, 0x83, 0x43, 0x93, 0xee, 0xc1, 0x39, 0xa3, 0xfe, 0x60, 0xd4, 0x67, 0x1c, 0x4e, 0xb1, 0xe3, 0xf1, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xb0, 0xd4, 0xf5, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0xd8, 0x90, 0xaa, 0x39, 0x18, 0xc7, 0x21, 0xc7, 0xe3, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x81, 0x53, 0xef, 0x78, 0x7e, 0x1c, 0x1a, 0x04, 0x1b, 0xac, 0x19, 0x79, 0x39, 0x58, 0x22, 0xf9, 0x32, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0xa9, 0xeb, 0xcb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb0, 0x21, 0x55, 0x73, 0x90, 0x1c, 0x78, 0x71, 0x3c, 0x3e, 0x58, 0x00, 0x65, 0x73, 0x1c, 0x3a, 0x58, 0xa3, 0xf2, 0x72, 0xb0, 0xb8, 0xca, 0x66, 0x90, 0x6d, 0x88, 0xcb, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x45, 0xf8, 0x2f, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x7e, 0x50, 0x44, 0x4a, 0x0e, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xbf, 0xc1, 0x72, 0x5d, 0x98, 0x83, 0x53, 0x18, 0xee, 0xc1, 0x42, 0xdf, 0x99, 0xe3, 0xd0, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x45, 0xf8, 0x2f, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x16, 0x1b, 0xa4, 0x0c, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x16, 0x52, 0xc4, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x1b, 0xae, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xac, 0x18, 0x35, 0x39, 0x58, 0x25, 0xee, 0x72, 0x1c, 0x1a, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0x90, 0x22, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc0, 0x0f, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0xc5, 0xa8, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x07, 0x6b, 0x51, 0x1b, 0x8e, 0x43, 0xc7, 0xa1, 0x83, 0x55, 0x3f, 0x30, 0xc7, 0xa1, 0x83, 0x55, 0x3f, 0x30, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x1f, 0xa4, 0x06, 0xf9, 0x1c, 0xac, 0xfa, 0x81, 0x19, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0x08, 0xff, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x0f, 0xca, 0x2c, 0xc8, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xc1, 0x72, 0x5d, 0x98, 0x83, 0x64, 0x06, 0x8b, 0xe3, 0xd0, 0xc1, 0xaa, 0x1f, 0x98, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x8b, 0xf0, 0x5f, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0xfc, 0xa0, 0x68, 0x86, 0x1c, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x2c, 0xd7, 0x85, 0x19, 0x24, 0x03, 0x53, 0x75, 0x3c, 0x3e, 0x0e, 0x1d, 0xac, 0xfa, 0x81, 0x59, 0x10, 0x6c, 0x30, 0xe0, 0x76, 0x17, 0x87, 0x5d, 0xd8, 0x0d, 0x1d, 0x47, 0x36, 0x18, 0xec, 0xc6, 0x87, 0xa3, 0x7d, 0x41, 0xb0, 0x20, 0xd8, 0xe0, 0x00, 0xe8, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xc5, 0x2a, 0x36, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x83, 0x84, 0x01, 0x84, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xc7, 0x5c, 0xf1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x04, 0xc3, 0x7d, 0x1c, 0x3a, 0x0e, 0x6d, 0x30, 0xf0, 0x8d, 0x37, 0xf4, 0x10, 0xda, 0x38, 0x34, 0x08, 0x36, 0x18, 0x59, 0xaf, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x28, 0x27, 0xae, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x9a, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x90, 0x8e, 0x2e, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0x5c, 0x53, 0x3c, 0x41, 0x71, 0x3f, 0x0e, 0x1d, 0x87, 0x26, 0xa8, 0xee, 0xc7, 0xa1, 0x43, 0xea, 0xe0, 0x78, 0x3c, 0x08, 0x36, 0x58, 0x7e, 0x0f, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0xa0, 0xa8, 0x1c, 0x92, 0x4b, 0xc3, 0x6f, 0x3c, 0x3f, 0x58, 0x2c, 0x14, 0x73, 0x1c, 0x1a, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0x3f, 0xf7, 0x1e, 0xae, 0xae, 0xe3, 0xf1, 0x0a, 0x82, 0xc5, 0x39, 0x58, 0x74, 0x4a, 0xb2, 0x38, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x05, 0xc9, 0x80, 0xd2, 0xbf, 0xeb, 0x90, 0x5c, 0x3a, 0x74, 0xd0, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0xc3, 0xb9, 0x7e, 0x88, 0xe6, 0x71, 0x68, 0xd8, 0x0d, 0x42, 0xcb, 0x7d, 0x43, 0x0c, 0x37, 0xc4, 0xf0, 0x20, 0x70, 0xe3, 0x8f, 0xc7, 0x2b, 0x08, 0x36, 0x58, 0x82, 0x76, 0xb3, 0x38, 0x08, 0x36, 0x58, 0xc4, 0x76, 0x33, 0xec, 0x06, 0xa1, 0xe5, 0xbe, 0x20, 0x5b, 0x43, 0x1e, 0x7b, 0x71, 0x10, 0x6c, 0x30, 0x7c, 0x87, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x1c, 0xbc, 0x0d, 0x78, 0xf7, 0x4a, 0xc8, 0x40, 0x4a, 0xc8, 0xfa, 0x0d, 0x8a, 0x43, 0x8d, 0x0d, 0xc6, 0x85, 0xd9, 0xc1, 0xc0, 0x0f, 0x39, 0x0e, 0x1d, 0x8f, 0x07, 0xd9, 0x1a, 0xf2, 0xd8, 0x8b, 0x1b, 0x72, 0xdf, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x8b, 0xe3, 0xe0, 0xf3, 0xe0, 0xf9, 0xe0, 0xee, 0xe0, 0xf4, 0xe0, 0xe1, 0xe0, 0xf8, 0xa0, 0x60, 0xf0, 0x72, 0x70, 0x79, 0x70, 0x79, 0xf0, 0xf7, 0xa0, 0xe0, 0xd9, 0x3c, 0xbe, 0x1d, 0x8f, 0x0f, 0xa7, 0xd8, 0x41, 0xe0, 0xc6, 0x1f, 0x8f, 0x17, 0x04, 0x1b, 0x2c, 0x41, 0xbb, 0x59, 0x1c, 0x04, 0x0b, 0x92, 0x81, 0x60, 0x1d, 0x92, 0x4b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x48, 0x16, 0x84, 0x3e, 0xa4, 0xe1, 0x0e, 0xf9, 0xda, 0xe3, 0xd0, 0xf1, 0x78, 0x10, 0x6c, 0xb0, 0x04, 0xed, 0x66, 0x71, 0x10, 0x2c, 0x48, 0x06, 0x8a, 0xd6, 0x21, 0xb9, 0x74, 0xb0, 0xe2, 0xf8, 0xe6, 0x78, 0x3c, 0x08, 0x36, 0x58, 0x82, 0x76, 0xb3, 0x38, 0x08, 0x16, 0x04, 0x1b, 0xc6, 0xe5, 0x60, 0xf1, 0xdc, 0xcd, 0x20, 0x58, 0x10, 0x6c, 0xb0, 0xc0, 0xd0, 0xe5, 0xb0, 0x51, 0x3b, 0xec, 0xc2, 0x6d, 0x30, 0xca, 0x4f, 0x0e, 0x86, 0x66, 0xd7, 0xc2, 0x6e, 0xd8, 0x35, 0xd8, 0x90, 0x98, 0xda, 0x10, 0xc3, 0x0d, 0x31, 0x3c, 0x74, 0x52, 0xdb, 0x70, 0xb4, 0x0f, 0x82, 0x0d, 0x8a, 0xcd, 0xab, 0x83, 0x81, 0x5e, 0x76, 0x3c, 0x5e, 0x05, 0xc1, 0x06, 0x6b, 0x98, 0x46, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x3f, 0x48, 0xf4, 0x83, 0x3e, 0x0e, 0xad, 0x20, 0xd8, 0x60, 0x0d, 0xd3, 0xc8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x07, 0x49, 0xce, 0xd1, 0xc7, 0xa1, 0x15, 0x04, 0x1b, 0xac, 0x61, 0x1a, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0xfc, 0x20, 0xed, 0xa5, 0xfa, 0x38, 0xb4, 0x82, 0x60, 0x83, 0x35, 0x4c, 0x23, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x83, 0x34, 0x20, 0xe6, 0xe3, 0xd0, 0xc1, 0x12, 0xc5, 0x93, 0x05, 0xc1, 0x06, 0x6b, 0x98, 0x46, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x07, 0xe9, 0x67, 0x35, 0xc7, 0xa1, 0x05, 0xc1, 0x06, 0x6b, 0x98, 0x46, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x07, 0xe9, 0x40, 0x24, 0xc7, 0xa1, 0x41, 0xb0, 0xc1, 0x1a, 0xa6, 0x91, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x41, 0xf2, 0x38, 0xc9, 0x71, 0x68, 0x41, 0xb0, 0xc1, 0x1a, 0xa6, 0x91, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0xc7, 0xf0, 0xfe, 0x38, 0xb4, 0x82, 0x60, 0x83, 0x35, 0x4c, 0x23, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x83, 0x64, 0x4b, 0xe6, 0xe3, 0xd0, 0x0a, 0x82, 0x0d, 0xd6, 0x30, 0x8d, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x7e, 0x90, 0x40, 0x06, 0x7d, 0x1c, 0x1a, 0x04, 0x1b, 0xac, 0x61, 0x1a, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x1e, 0x24, 0x38, 0xd1, 0x1c, 0x87, 0x16, 0x04, 0x1b, 0xac, 0x61, 0x1a, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0xfc, 0x20, 0xad, 0x3a, 0xfa, 0x38, 0xb4, 0x82, 0x60, 0x83, 0x35, 0x4c, 0x23, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x8f, 0xe1, 0xdd, 0x71, 0x68, 0x41, 0xb0, 0xc1, 0x1a, 0xa6, 0x91, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x0f, 0x86, 0x6b, 0xd5, 0x71, 0x68, 0x10, 0x6c, 0xb0, 0x86, 0x69, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x83, 0x84, 0x94, 0xfb, 0xe3, 0xd0, 0x82, 0x60, 0x83, 0x35, 0x4c, 0x23, 0x07, 0x29, 0xb1, 0x27, 0x2b, 0x08, 0x36, 0x58, 0xc3, 0x34, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x41, 0x4a, 0x9f, 0xf5, 0x71, 0x68, 0x41, 0xb0, 0xc1, 0x1a, 0xa6, 0x91, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0xc7, 0x70, 0xf0, 0x38, 0xb4, 0xc1, 0xda, 0xd1, 0x93, 0x41, 0xb0, 0xc1, 0x1a, 0xa6, 0x91, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0xc7, 0xf0, 0xed, 0x38, 0xb4, 0x20, 0xd8, 0x60, 0x0d, 0xd3, 0xc8, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0x20, 0x59, 0x99, 0xe4, 0x38, 0x34, 0x08, 0x36, 0x58, 0xc3, 0x34, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x3d, 0x58, 0xe5, 0x79, 0x72, 0x1c, 0x5a, 0x10, 0x6c, 0xb0, 0x86, 0x69, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x83, 0xe4, 0x0e, 0xe6, 0xe3, 0xd0, 0x20, 0xd8, 0x60, 0x0d, 0xd3, 0xc8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x63, 0xb8, 0x77, 0x1c, 0x5a, 0x10, 0x6c, 0xb0, 0x86, 0x69, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x31, 0x34, 0x1c, 0x87, 0x56, 0x10, 0x6c, 0xb0, 0x86, 0x69, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x31, 0x74, 0x1c, 0x87, 0x56, 0x10, 0x6c, 0xb0, 0x86, 0x69, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x7b, 0x90, 0xe2, 0x21, 0x73, 0x1c, 0x1a, 0x04, 0x1b, 0xac, 0x61, 0x1a, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x1e, 0x2c, 0x26, 0x3c, 0x39, 0x0e, 0x0d, 0x82, 0x0d, 0xd6, 0x30, 0x8d, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x7e, 0x90, 0x7e, 0x6a, 0x71, 0x1c, 0x5a, 0x10, 0x6c, 0xb0, 0x86, 0x69, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x31, 0x94, 0x1c, 0x87, 0x16, 0x04, 0x1b, 0xac, 0x61, 0x1a, 0x39, 0x48, 0xde, 0x3a, 0x19, 0x04, 0x1b, 0xac, 0x61, 0x1a, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x0c, 0xdf, 0x8f, 0x43, 0x0b, 0x82, 0x35, 0xc4, 0x70, 0x10, 0x2c, 0x1e, 0x2c, 0x37, 0x25, 0x39, 0x1e, 0x2f, 0x0e, 0x82, 0x0d, 0x0a, 0x6a, 0xb1, 0xc5, 0x41, 0xb0, 0xf0, 0x1b, 0xd6, 0x7e, 0x8f, 0x6f, 0x87, 0x46, 0x2d, 0xc7, 0xe3, 0xe3, 0xf1, 0x0a, 0xbf, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0xe1, 0x17, 0x04, 0x1b, 0x14, 0xd4, 0x62, 0x8b, 0xc3, 0x6e, 0xd8, 0x35, 0x58, 0x10, 0x2c, 0x48, 0x06, 0xea, 0xdb, 0x21, 0x5b, 0x71, 0x68, 0xd4, 0x32, 0xec, 0x82, 0x60, 0x41, 0x32, 0xa0, 0x78, 0xef, 0x3b, 0x08, 0x78, 0xff, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x81, 0x89, 0x3d, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x1d, 0x94, 0xd5, 0x70, 0xc7, 0xe3, 0xe3, 0xd0, 0x82, 0x60, 0x41, 0x32, 0x20, 0xdc, 0xbb, 0x0e, 0xd9, 0x8a, 0x43, 0xa3, 0x96, 0x83, 0xe5, 0x48, 0x39, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0xb8, 0xc1, 0x58, 0x15, 0x38, 0xa4, 0x96, 0x8e, 0xc7, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0x38, 0xe0, 0xb7, 0x85, 0xcd, 0xad, 0x87, 0xd4, 0xd2, 0xf1, 0x78, 0x85, 0x5f, 0x10, 0x6c, 0xb0, 0x04, 0xed, 0x66, 0x71, 0xf8, 0x05, 0xc1, 0x06, 0x05, 0xb5, 0xd8, 0xe2, 0x20, 0xd8, 0xa0, 0x64, 0xb7, 0x19, 0x76, 0x83, 0xd0, 0x72, 0xdf, 0x38, 0xb4, 0x41, 0x48, 0x81, 0x6f, 0x88, 0xe1, 0x86, 0x64, 0xc7, 0x41, 0x18, 0xc8, 0x1f, 0x8f, 0x0f, 0x16, 0xb0, 0xe5, 0x1c, 0x8f, 0x07, 0xd9, 0x1a, 0xd2, 0x40, 0xe3, 0x80, 0x3f, 0xf6, 0xc6, 0x46, 0x1e, 0x52, 0x4b, 0xc7, 0xe3, 0x41, 0xb0, 0xb8, 0x21, 0xb1, 0x79, 0x30, 0xc6, 0xd0, 0x16, 0x07, 0xc1, 0xe2, 0x06, 0x8b, 0x4e, 0x49, 0x0e, 0x16, 0x9d, 0x92, 0x2c, 0x0e, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x20, 0x19, 0x50, 0xac, 0x77, 0x1d, 0xb2, 0x15, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xce, 0x46, 0xcf, 0x1b, 0x04, 0x26, 0xf6, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x8c, 0xcb, 0x20, 0xd8, 0x90, 0xb5, 0x3b, 0x58, 0xfa, 0x22, 0x73, 0x1c, 0x1a, 0x04, 0x1b, 0xf2, 0xb5, 0x83, 0x60, 0x83, 0x20, 0x8b, 0x5f, 0x1c, 0x04, 0x0b, 0xbf, 0x21, 0x5b, 0x31, 0x08, 0x16, 0x24, 0x83, 0xb2, 0x43, 0xb6, 0xe2, 0x60, 0x7c, 0x18, 0x1d, 0xac, 0xc4, 0x17, 0x39, 0x1e, 0x1f, 0x8f, 0x8f, 0xc7, 0x0b, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x58, 0x26, 0xec, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x6c, 0xb8, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0xb4, 0xd9, 0xe5, 0xd0, 0x41, 0xe3, 0x38, 0x34, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0x99, 0xb0, 0xcb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x81, 0x1f, 0x32, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0xd2, 0x66, 0x97, 0x43, 0x1a, 0xee, 0x38, 0x74, 0xb0, 0x46, 0xe5, 0xe5, 0x78, 0xbc, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x38, 0xec, 0x06, 0xc1, 0xc7, 0xbc, 0x21, 0x86, 0x1b, 0x14, 0xee, 0x63, 0x83, 0x64, 0xc8, 0x41, 0xe8, 0xad, 0x1f, 0xdf, 0x8e, 0xc7, 0x0b, 0xbf, 0x20, 0xd8, 0x60, 0x09, 0xda, 0xcd, 0xe2, 0xf0, 0x0b, 0x82, 0x0d, 0x0a, 0x6a, 0xb1, 0xc5, 0x41, 0xb0, 0x41, 0xc9, 0x6e, 0x33, 0xec, 0x06, 0xa1, 0xe5, 0xbe, 0x71, 0x68, 0x83, 0x90, 0x02, 0xdf, 0x10, 0xc3, 0x35, 0x24, 0x3b, 0x0e, 0x02, 0x37, 0xfe, 0x20, 0x0c, 0xe4, 0x8f, 0xc7, 0x07, 0x0b, 0xd8, 0x72, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xc0, 0x9f, 0xa3, 0x0b, 0x3b, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0x82, 0x60, 0x83, 0x15, 0xa3, 0x39, 0x8b, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x48, 0x06, 0x04, 0x6f, 0xd7, 0x21, 0xb9, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x6c, 0xb8, 0x1e, 0xf2, 0xb5, 0xc7, 0xa1, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xab, 0x77, 0x74, 0x0e, 0xd2, 0x9f, 0x89, 0x0e, 0xd6, 0xa8, 0xbc, 0x1c, 0x8f, 0x37, 0x58, 0x5f, 0x4a, 0x32, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x6c, 0x50, 0x50, 0x8b, 0x2d, 0x0e, 0x82, 0x0d, 0x7b, 0x85, 0x83, 0x60, 0x71, 0xd8, 0x0d, 0x46, 0x3e, 0xf9, 0x1a, 0xe2, 0xbf, 0x21, 0x86, 0x07, 0xa5, 0xed, 0xcd, 0xb0, 0x0b, 0xbb, 0xc1, 0x20, 0xe0, 0xd8, 0x10, 0xc3, 0x61, 0x17, 0x76, 0xe1, 0x36, 0x48, 0xd4, 0x95, 0x3e, 0xb4, 0x00, 0x3a, 0xac, 0x6f, 0x1e, 0xd2, 0xb9, 0x0b, 0x82, 0x05, 0xc9, 0x40, 0x7d, 0x3b, 0x08, 0x78, 0xff, 0x83, 0xf1, 0x61, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xf7, 0x07, 0xc1, 0x06, 0xe7, 0x10, 0xee, 0x83, 0x34, 0x60, 0xe9, 0x41, 0xb4, 0x60, 0xbe, 0x20, 0x58, 0x90, 0x0c, 0x04, 0xea, 0x20, 0xe0, 0xfd, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x84, 0x7c, 0xf6, 0x21, 0xd9, 0x71, 0x1c, 0x3a, 0x34, 0xfc, 0x3a, 0x1e, 0x1f, 0xdf, 0x8e, 0xc7, 0xc7, 0xe3, 0x05, 0xc1, 0xe2, 0x06, 0xe1, 0x6c, 0x7f, 0xb0, 0xe8, 0x94, 0x64, 0x71, 0x10, 0x6c, 0x50, 0x50, 0x8b, 0x2d, 0x0e, 0x82, 0x0d, 0x4a, 0x76, 0x9b, 0x61, 0x37, 0x08, 0x2d, 0xf7, 0x8d, 0x43, 0x83, 0x60, 0x41, 0xb0, 0x21, 0xd9, 0x71, 0x70, 0x38, 0xa7, 0x1f, 0x76, 0x83, 0x51, 0x2f, 0xb9, 0xa1, 0x85, 0xe4, 0x86, 0x68, 0x6e, 0x88, 0xe1, 0x06, 0x21, 0x00, 0x7e, 0x30, 0x32, 0x7b, 0x8f, 0xc7, 0xc7, 0xe3, 0x15, 0x04, 0x1b, 0x2c, 0x41, 0xbb, 0x59, 0x1c, 0x04, 0x1b, 0x2c, 0x75, 0x7d, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0x32, 0x20, 0x73, 0xfd, 0xbd, 0xef, 0x20, 0xe0, 0xfd, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x52, 0x35, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x83, 0x21, 0x1e, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xb5, 0x1b, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0x6c, 0x93, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xb4, 0x9a, 0x1f, 0xf2, 0xb5, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0xf8, 0x38, 0x74, 0x3c, 0x3e, 0xe4, 0x6b, 0x8f, 0x43, 0xc7, 0xe3, 0x15, 0x04, 0x1b, 0x2c, 0x37, 0x25, 0x59, 0x1c, 0x04, 0x0b, 0x92, 0x01, 0xc5, 0x7a, 0xd7, 0x21, 0xb9, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xe0, 0x87, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x78, 0x48, 0x6c, 0x1e, 0x8f, 0x0f, 0xa9, 0x9a, 0xe3, 0xd0, 0xf1, 0x78, 0xe1, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x04, 0x1b, 0x9c, 0x23, 0x7b, 0x17, 0x87, 0xdd, 0x20, 0xe8, 0xf5, 0x17, 0x76, 0x83, 0x11, 0x8b, 0xb5, 0x20, 0xd8, 0xe0, 0x18, 0xcd, 0x7c, 0x48, 0xb4, 0x0e, 0x82, 0x0d, 0x8e, 0xd1, 0xcc, 0x07, 0x63, 0x34, 0x62, 0xd8, 0x0d, 0x46, 0x2c, 0xd6, 0x82, 0x60, 0x83, 0x63, 0x34, 0xf3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x71, 0x61, 0x76, 0xc8, 0xd7, 0x1e, 0x87, 0x06, 0xc1, 0x06, 0xc7, 0x68, 0xe6, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xe3, 0xc2, 0xec, 0xd0, 0x43, 0xe8, 0x38, 0x74, 0x3c, 0x1e, 0x04, 0x0b, 0x82, 0x0d, 0x31, 0x1c, 0x04, 0x8b, 0xc3, 0x6e, 0x10, 0x5c, 0xd8, 0x1b, 0x62, 0x38, 0x08, 0x16, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xfa, 0x43, 0x62, 0xe6, 0x78, 0x3c, 0x08, 0x16, 0x87, 0xdd, 0xb0, 0xbe, 0xb7, 0x06, 0xa3, 0xd5, 0xfc, 0x90, 0x98, 0x1a, 0x76, 0x41, 0xb0, 0x41, 0x60, 0x62, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x28, 0x07, 0x25, 0x0e, 0x8a, 0x43, 0x8d, 0xe3, 0xd0, 0x82, 0x60, 0x83, 0xf2, 0x1c, 0x60, 0xd8, 0x0d, 0x46, 0xc7, 0xfa, 0xc2, 0x2e, 0x08, 0x16, 0x24, 0x83, 0x6b, 0x07, 0xc3, 0x51, 0x7a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x98, 0xb0, 0x3a, 0x18, 0x3f, 0x5d, 0xc7, 0xa1, 0x35, 0x64, 0xed, 0x36, 0x0e, 0x1d, 0x3a, 0x86, 0x6d, 0x10, 0x52, 0xe0, 0x1b, 0x04, 0x59, 0xfc, 0x86, 0xac, 0xdd, 0x06, 0x83, 0x35, 0xf6, 0xd0, 0x31, 0xec, 0x70, 0x8a, 0x0d, 0x82, 0x05, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x07, 0x41, 0xe9, 0x7d, 0x3c, 0x1e, 0x76, 0x83, 0xd1, 0xb1, 0xbe, 0xb0, 0x1b, 0xac, 0xc2, 0xda, 0x59, 0x43, 0xd6, 0x6e, 0x43, 0x0f, 0xa1, 0xe3, 0xd0, 0x06, 0x21, 0x05, 0xbe, 0x86, 0xac, 0xdd, 0x86, 0x1e, 0x42, 0x07, 0x41, 0x16, 0x7f, 0x30, 0x58, 0x63, 0x0f, 0xa7, 0xd8, 0xf1, 0xed, 0xf8, 0x36, 0xfc, 0x82, 0x60, 0x83, 0x82, 0x5a, 0x6c, 0x71, 0xd8, 0x0d, 0xbb, 0x06, 0x0b, 0x82, 0x0d, 0x96, 0xca, 0xe9, 0x1c, 0x1a, 0xb5, 0x0c, 0x82, 0xc5, 0x61, 0x37, 0x18, 0x9b, 0x9c, 0x0b, 0x82, 0x05, 0xc9, 0x40, 0x7d, 0x3b, 0x18, 0xef, 0x3a, 0x07, 0xc3, 0x2c, 0x7c, 0xd8, 0x85, 0x5d, 0xd8, 0x85, 0x1e, 0x8c, 0x09, 0xab, 0xc3, 0xfa, 0xe6, 0xc2, 0x6d, 0x30, 0x26, 0xac, 0x0e, 0x3d, 0x84, 0x86, 0x5d, 0x10, 0x6c, 0x90, 0x7c, 0x9d, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xd0, 0x02, 0x68, 0x82, 0x81, 0x3f, 0x0e, 0x2d, 0xec, 0x82, 0x60, 0x83, 0x33, 0x5b, 0xf6, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0x0b, 0xa0, 0x83, 0x95, 0x6e, 0x34, 0xc7, 0xa1, 0x43, 0x3a, 0xf7, 0x70, 0xb4, 0x2f, 0x08, 0x36, 0x18, 0x59, 0x56, 0x07, 0xc3, 0x2c, 0x7c, 0xd8, 0x05, 0xc1, 0x06, 0x81, 0x89, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xd0, 0x02, 0xe8, 0xa0, 0x84, 0x91, 0x38, 0x0e, 0x6d, 0x50, 0x3c, 0x0d, 0x1c, 0x14, 0x47, 0x2a, 0xc7, 0xb7, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0xdc, 0x60, 0xac, 0x0a, 0x6c, 0xc8, 0x56, 0x74, 0x3c, 0x3e, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0x7f, 0x8e, 0xae, 0xec, 0x3e, 0xa4, 0x96, 0x8e, 0xc7, 0x0b, 0xbf, 0x20, 0x58, 0x9c, 0x0d, 0x56, 0x79, 0xe6, 0x1c, 0x2c, 0x3a, 0x25, 0x59, 0x1c, 0x7e, 0x41, 0xb0, 0x41, 0x41, 0x2d, 0xb6, 0x38, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x85, 0x5f, 0x10, 0x2c, 0x48, 0x06, 0xee, 0xaf, 0x83, 0xf1, 0xae, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x43, 0xc3, 0xaf, 0x43, 0xa3, 0x96, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x71, 0xe8, 0xf8, 0x36, 0x08, 0x16, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x31, 0xb0, 0x70, 0x30, 0x3e, 0x8c, 0x86, 0xdd, 0x20, 0xb4, 0xdc, 0xd7, 0x90, 0xaa, 0xd9, 0x20, 0xa4, 0xc0, 0x37, 0xc4, 0x70, 0x83, 0xd1, 0x6a, 0x7e, 0x10, 0x98, 0xd8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x30, 0x3f, 0x08, 0x03, 0xf9, 0x83, 0xc2, 0x83, 0xef, 0xf8, 0x76, 0x30, 0xd2, 0xb4, 0x06, 0xc1, 0x82, 0x64, 0x83, 0xb5, 0xeb, 0x14, 0x07, 0xe3, 0x5d, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x9a, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x2b, 0x08, 0x36, 0x08, 0x1e, 0xee, 0x83, 0x61, 0x16, 0x7e, 0x10, 0x02, 0xe0, 0x8b, 0x0b, 0x82, 0x05, 0xc9, 0x40, 0xa4, 0x0e, 0xc6, 0xbb, 0xce, 0xc1, 0x51, 0xc5, 0x79, 0x43, 0x0c, 0x17, 0x04, 0x1b, 0x94, 0x34, 0x0d, 0x07, 0xa7, 0xdf, 0xfa, 0x83, 0xb3, 0xfa, 0xf9, 0xf1, 0xf8, 0x38, 0x74, 0x3c, 0x3e, 0x58, 0xc0, 0x96, 0x73, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0xfe, 0x1c, 0x5d, 0x9a, 0x7c, 0x48, 0x2d, 0x1d, 0x8f, 0x07, 0xc1, 0x06, 0x2b, 0x46, 0x73, 0x16, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x58, 0x20, 0xf1, 0x32, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x08, 0xf6, 0xae, 0x43, 0x72, 0xe9, 0x90, 0x68, 0x3d, 0x58, 0xa3, 0xf2, 0x72, 0x3c, 0x5e, 0x10, 0x6c, 0xb0, 0x62, 0x34, 0x67, 0x71, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x05, 0xc9, 0x80, 0x40, 0xef, 0x3a, 0x24, 0x97, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0x30, 0x2e, 0x83, 0x60, 0x43, 0xd6, 0xee, 0x60, 0x89, 0xe4, 0xcb, 0x71, 0x68, 0x10, 0x6c, 0xc8, 0xd7, 0x1e, 0xac, 0x4d, 0x77, 0x39, 0x1e, 0x0f, 0x82, 0x0d, 0x0a, 0x6a, 0xb1, 0xc5, 0x61, 0x37, 0xec, 0x1a, 0x2c, 0x08, 0x16, 0x24, 0x03, 0xf5, 0xed, 0x90, 0x5c, 0x3a, 0x34, 0x6a, 0x19, 0x04, 0x0b, 0x82, 0x05, 0xc9, 0x40, 0xa0, 0x0e, 0xc9, 0xa5, 0x83, 0xd2, 0xbd, 0x6b, 0xe3, 0xd0, 0x86, 0x18, 0x6e, 0xe8, 0x21, 0x74, 0xb0, 0xc4, 0x6c, 0xe7, 0x78, 0xbc, 0xf0, 0x0b, 0x82, 0x15, 0x04, 0x8b, 0x1b, 0x9c, 0x26, 0x7b, 0x3b, 0x58, 0xd5, 0xaf, 0x33, 0xfc, 0x82, 0x64, 0x60, 0x5d, 0xef, 0x78, 0x7e, 0x7c, 0x5b, 0x1c, 0x7e, 0x41, 0xb0, 0x41, 0x41, 0x2d, 0xb6, 0x38, 0x08, 0x36, 0x28, 0xd9, 0x6d, 0x86, 0xdd, 0x20, 0xb4, 0xdc, 0x37, 0x0e, 0x6d, 0x10, 0x52, 0xe0, 0x1b, 0x62, 0xb8, 0x20, 0xd8, 0x90, 0xec, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x0d, 0x59, 0xbb, 0x83, 0xb5, 0x3b, 0x08, 0x87, 0x4e, 0x6a, 0xc7, 0xa1, 0x83, 0x30, 0x90, 0x3f, 0x1e, 0x1f, 0x2c, 0x60, 0xcb, 0x39, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0x1f, 0xad, 0x4c, 0xae, 0x3c, 0xa4, 0x96, 0x8e, 0xc7, 0x2b, 0x08, 0x36, 0x58, 0x82, 0x76, 0xb3, 0x38, 0x08, 0x36, 0x58, 0xea, 0xfa, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x64, 0x83, 0xb5, 0xeb, 0x14, 0x07, 0x01, 0xef, 0x7f, 0xb0, 0x14, 0x59, 0xe7, 0x78, 0x7c, 0xc8, 0xd7, 0x1e, 0x87, 0x8e, 0xc7, 0xc3, 0x2f, 0x08, 0x36, 0xc4, 0x70, 0x71, 0xf8, 0x05, 0xc1, 0x06, 0x05, 0xb5, 0xd8, 0xe2, 0x86, 0x68, 0x6e, 0x88, 0xe1, 0xc1, 0x18, 0xc6, 0x3f, 0x1e, 0x1f, 0x2c, 0x60, 0xcb, 0x39, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0xbf, 0x2c, 0x6c, 0x2e, 0x3f, 0xa4, 0x96, 0x8e, 0xc7, 0x0b, 0xbf, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x7e, 0x41, 0xb0, 0x41, 0x41, 0x2d, 0xb6, 0x38, 0xec, 0x86, 0x5d, 0x83, 0x0d, 0x96, 0x23, 0xe5, 0x0c, 0xbb, 0xb0, 0x0b, 0x82, 0x0d, 0xce, 0x1d, 0xde, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x3d, 0x84, 0x0e, 0xc9, 0x8e, 0xe3, 0xd0, 0xc2, 0x2e, 0x08, 0x36, 0x18, 0x05, 0xb6, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x3d, 0x84, 0x0e, 0x89, 0x99, 0xe3, 0xd0, 0x21, 0x9d, 0x7b, 0x38, 0xda, 0x0f, 0xd6, 0x89, 0xe5, 0x1c, 0x8f, 0x0f, 0x16, 0xb0, 0xe5, 0x1c, 0x8f, 0x07, 0xd9, 0x1a, 0xd2, 0x40, 0xe3, 0x80, 0x3f, 0x87, 0x96, 0xd6, 0x1e, 0x52, 0x4b, 0xc7, 0xe3, 0x15, 0x04, 0x1b, 0x2c, 0x37, 0x25, 0x59, 0x1c, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0x60, 0x81, 0xc4, 0xcb, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xd5, 0x3b, 0x3a, 0x07, 0xe3, 0x38, 0xe4, 0x60, 0x8d, 0xca, 0xcb, 0xf1, 0x78, 0x10, 0x6c, 0xb0, 0xdc, 0x94, 0x64, 0x71, 0x10, 0x6c, 0x50, 0x50, 0x8b, 0x2d, 0x0e, 0x82, 0x0d, 0xfd, 0x06, 0x87, 0xdd, 0x20, 0xb4, 0xdc, 0x37, 0x0e, 0x0d, 0xbb, 0x70, 0x1b, 0x62, 0x78, 0xb0, 0x70, 0x38, 0x61, 0xe3, 0xd0, 0x06, 0x21, 0x05, 0x7e, 0x88, 0xe1, 0xf1, 0xf8, 0x78, 0xbc, 0xf0, 0x0b, 0x82, 0xc5, 0x0d, 0xa7, 0xd8, 0xc1, 0xa2, 0x53, 0x92, 0xc5, 0x41, 0xb0, 0x41, 0x41, 0x2d, 0xb6, 0x38, 0xec, 0xc2, 0x6d, 0x88, 0xe1, 0xc1, 0xc8, 0xb2, 0x5a, 0x43, 0x34, 0x0f, 0x8e, 0x99, 0xeb, 0x83, 0x60, 0x83, 0x92, 0xdd, 0x66, 0xd8, 0x0d, 0x42, 0xcb, 0x7d, 0x61, 0x17, 0x6e, 0x43, 0x0c, 0x0f, 0x4a, 0x18, 0x89, 0x35, 0x08, 0x29, 0xf0, 0x83, 0x13, 0x1b, 0xef, 0x71, 0x68, 0x10, 0x2c, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xe5, 0x0b, 0xbb, 0xc1, 0x62, 0xc3, 0x9e, 0x0d, 0x31, 0x1c, 0x04, 0x1b, 0x24, 0x80, 0x3c, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x0f, 0x8a, 0xb0, 0x89, 0xe3, 0xd0, 0xb0, 0x1b, 0x8c, 0xb6, 0xce, 0x0d, 0x31, 0x1c, 0x04, 0x1b, 0x24, 0x80, 0x3c, 0x1c, 0x14, 0x27, 0x16, 0x07, 0x6b, 0x7c, 0x52, 0x86, 0xdd, 0x20, 0xb4, 0xdc, 0x37, 0x0e, 0x6d, 0x10, 0x52, 0xe0, 0x1b, 0x62, 0xb8, 0x86, 0x4e, 0x6a, 0x07, 0x81, 0x1b, 0x7f, 0x10, 0x06, 0xf2, 0xc7, 0xe3, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0x1c, 0xf0, 0xe7, 0xe8, 0xea, 0xdc, 0x43, 0x6a, 0xe9, 0x78, 0xbc, 0x82, 0x60, 0x83, 0xe5, 0xa6, 0x24, 0x8b, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xb0, 0x64, 0x8f, 0xe7, 0xd0, 0xa8, 0x65, 0x10, 0x6c, 0x48, 0xd5, 0x1c, 0xac, 0x4d, 0x77, 0x39, 0x1e, 0x2f, 0x08, 0x36, 0x58, 0x82, 0x76, 0xb3, 0x38, 0x08, 0x36, 0x28, 0xa8, 0xc5, 0x16, 0x07, 0xc1, 0x86, 0xb5, 0xdf, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xac, 0xdd, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x49, 0x10, 0xd2, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xc9, 0x8e, 0x43, 0xbe, 0xf6, 0x38, 0x74, 0x1c, 0x3a, 0x1e, 0x1f, 0x8f, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xec, 0x86, 0xf5, 0xbd, 0x0d, 0x16, 0x63, 0xf2, 0x0c, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x83, 0x42, 0xe5, 0x6c, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x32, 0x61, 0x97, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xac, 0xdd, 0xc1, 0xaa, 0xfb, 0x9c, 0xe3, 0xd0, 0xc1, 0x1a, 0x95, 0x97, 0xe3, 0xf1, 0xc2, 0x2f, 0x08, 0x36, 0x58, 0x49, 0xa9, 0xb3, 0x38, 0xfc, 0x82, 0x60, 0x83, 0x82, 0x5a, 0x6c, 0x71, 0x10, 0x6c, 0x50, 0xb2, 0xdb, 0x0c, 0xbb, 0x41, 0x68, 0xb9, 0x6f, 0x1c, 0xda, 0x20, 0xa4, 0xc0, 0x37, 0xc4, 0x70, 0x83, 0x05, 0xa4, 0x3a, 0x07, 0x61, 0x20, 0x7f, 0x3c, 0x3e, 0x58, 0xc0, 0x96, 0x73, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0xfe, 0xd8, 0xdb, 0xdb, 0x7a, 0x48, 0x2d, 0x1d, 0x8f, 0x07, 0xc1, 0xe2, 0x06, 0xeb, 0x46, 0x73, 0x0e, 0x16, 0x9d, 0x92, 0x2c, 0x0e, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x86, 0x66, 0xd7, 0x20, 0xd8, 0x90, 0xaf, 0x3d, 0x58, 0x6e, 0xf3, 0x32, 0x08, 0x36, 0x28, 0x0e, 0x35, 0x0e, 0x96, 0x48, 0xbe, 0x1c, 0x8f, 0x87, 0x5f, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0xf0, 0x0b, 0x82, 0x0d, 0x0a, 0x6a, 0xb1, 0xc5, 0x61, 0x37, 0xec, 0x1a, 0x6c, 0xb0, 0x1c, 0x29, 0x67, 0xd8, 0x85, 0xdb, 0xb0, 0x57, 0x78, 0x68, 0x24, 0x78, 0xb0, 0x4e, 0x2c, 0xe7, 0x78, 0x7c, 0xb0, 0x80, 0x2d, 0xe7, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x07, 0x7c, 0xb5, 0xba, 0x39, 0xfa, 0x90, 0x5a, 0x3a, 0x1e, 0x2f, 0x08, 0x36, 0x08, 0x61, 0xfb, 0xc5, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0x32, 0x90, 0xfb, 0x3a, 0x64, 0x2b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x5f, 0x1c, 0x04, 0x1b, 0x04, 0x26, 0xf6, 0xc1, 0x30, 0x0b, 0x3f, 0x1e, 0x1f, 0x87, 0x8e, 0xc7, 0xc7, 0xe3, 0x15, 0x7e, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0x64, 0x43, 0xea, 0x60, 0x1c, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x1e, 0xcf, 0x8f, 0x43, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0x38, 0xe0, 0xcf, 0xb1, 0xd5, 0xb5, 0x87, 0xd4, 0xd2, 0xf1, 0x78, 0x05, 0xc1, 0x06, 0x23, 0xe8, 0x6d, 0x71, 0x10, 0x2c, 0x08, 0x16, 0x24, 0x03, 0xed, 0xbf, 0x0e, 0xc9, 0xa5, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0xdf, 0x90, 0x3a, 0x18, 0x8f, 0x6f, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x1b, 0x62, 0xb8, 0x21, 0x86, 0x43, 0x36, 0xa4, 0x0e, 0xc6, 0x41, 0x78, 0xb0, 0x1c, 0x97, 0xe4, 0x78, 0x7c, 0x1c, 0x1a, 0x76, 0xe1, 0x36, 0xc4, 0xf0, 0x20, 0xa4, 0xc0, 0x37, 0x08, 0x37, 0xf7, 0x43, 0x0c, 0x8f, 0xc7, 0x83, 0x60, 0x83, 0xc4, 0x63, 0x9f, 0xc5, 0x61, 0x17, 0x76, 0x43, 0xc7, 0x91, 0x85, 0xdb, 0xd0, 0x4a, 0xfc, 0x10, 0xcd, 0xc3, 0xd1, 0xbe, 0x20, 0x58, 0x5c, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0xbb, 0x70, 0x8b, 0x81, 0x8f, 0x56, 0xe7, 0xb6, 0x1e, 0xa2, 0xb9, 0xb0, 0x1b, 0x8c, 0x58, 0xac, 0x35, 0xe4, 0xbe, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0xc7, 0xc1, 0xdb, 0xc1, 0xdf, 0xc1, 0xdf, 0xc1, 0xd7, 0x41, 0xdd, 0xe0, 0xe8, 0xe0, 0xf5, 0xe0, 0xee, 0x41, 0x12, 0x75, 0xd5, 0xf1, 0x6d, 0x10, 0x2c, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x81, 0xf1, 0x3a, 0x08, 0x72, 0xfe, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x40, 0xfb, 0xbe, 0x83, 0xf1, 0xae, 0x73, 0x1c, 0x3a, 0xb4, 0x00, 0x1b, 0x76, 0x83, 0x51, 0x2f, 0xb9, 0xc1, 0xd2, 0x67, 0x9f, 0x41, 0xb0, 0x20, 0x19, 0x68, 0x6f, 0x77, 0x10, 0xf0, 0xfe, 0x07, 0x23, 0x0a, 0x77, 0xd8, 0x85, 0x5b, 0x0c, 0x7c, 0xb6, 0xb7, 0xb9, 0xf2, 0x10, 0xcd, 0x85, 0xdd, 0x60, 0xc4, 0x62, 0xad, 0x21, 0xf7, 0x3d, 0x08, 0x16, 0x24, 0x03, 0xa3, 0x74, 0x30, 0xde, 0x75, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xc5, 0xa2, 0x43, 0xbe, 0xf6, 0x38, 0xb4, 0x21, 0xf7, 0x3d, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x38, 0x0e, 0xde, 0x0e, 0xfe, 0x0e, 0xfe, 0x0e, 0xbe, 0x0e, 0xea, 0x06, 0x67, 0x07, 0x7f, 0x07, 0x9f, 0x0f, 0x8a, 0x10, 0xe8, 0xe3, 0xdb, 0xb0, 0x0b, 0xb7, 0x18, 0xf8, 0x68, 0x61, 0x6e, 0xe4, 0x21, 0x9a, 0x6b, 0xc8, 0x7d, 0x0f, 0x82, 0x05, 0xc9, 0xc0, 0x69, 0x77, 0x10, 0xe4, 0xfc, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x0e, 0xf5, 0xb6, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0xce, 0x7d, 0x07, 0xe3, 0x5d, 0xe7, 0xd0, 0x41, 0xe3, 0x38, 0x34, 0xec, 0xc2, 0x2d, 0x1e, 0xf2, 0xd8, 0x87, 0x68, 0x2e, 0xec, 0x06, 0x23, 0x16, 0x6b, 0x83, 0x55, 0x05, 0x3f, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x78, 0xff, 0xeb, 0x20, 0xc8, 0xf9, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xf2, 0xb5, 0x87, 0x1e, 0x42, 0xc7, 0xa1, 0x61, 0x37, 0x18, 0xf5, 0x92, 0x6b, 0xc8, 0x7d, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x8e, 0x83, 0x8e, 0x41, 0xc7, 0xa0, 0x63, 0xd0, 0xd1, 0xf1, 0x6d, 0x10, 0x2c, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x81, 0xf1, 0x3a, 0x08, 0x78, 0xff, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x80, 0xe0, 0xef, 0x3b, 0x18, 0x86, 0x3e, 0xc7, 0xa1, 0x83, 0x11, 0x85, 0x3b, 0xec, 0x06, 0xa3, 0x5e, 0x72, 0x0d, 0xb9, 0xef, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0xc5, 0x71, 0xf0, 0x76, 0xf0, 0x77, 0xf0, 0x77, 0xf0, 0x75, 0x50, 0x37, 0x78, 0x3b, 0x78, 0x79, 0x90, 0xe6, 0x97, 0x7f, 0x7c, 0x3b, 0x08, 0x01, 0xf0, 0x61, 0x17, 0x6e, 0xf1, 0x20, 0x11, 0x1f, 0xf8, 0x10, 0xcd, 0x05, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0xc1, 0x1a, 0x71, 0x9f, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x40, 0x52, 0xef, 0x20, 0xe0, 0xfd, 0x8f, 0x43, 0x87, 0x0e, 0x1a, 0xc3, 0x6e, 0x30, 0xea, 0x25, 0xd7, 0x90, 0xfb, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x1c, 0x07, 0x6f, 0x07, 0x7f, 0x07, 0x7f, 0x07, 0x5f, 0x07, 0x75, 0x83, 0xcf, 0x83, 0xc3, 0x83, 0xbf, 0x07, 0x07, 0x9a, 0xbe, 0xe3, 0xdb, 0x06, 0xe5, 0x3e, 0xe0, 0x0a, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x8e, 0x83, 0xea, 0x8e, 0x6f, 0x87, 0xc4, 0xd4, 0x82, 0x60, 0x83, 0xf5, 0xf6, 0x3e, 0x83, 0x64, 0xc8, 0x20, 0xda, 0x20, 0x60, 0xbe, 0x8f, 0x43, 0x0b, 0xbf, 0xf1, 0x78, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0x32, 0x70, 0xda, 0x1d, 0x0c, 0x43, 0x9f, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x0b, 0x0f, 0x65, 0x0e, 0xa9, 0x9a, 0xe3, 0xd0, 0xf1, 0x78, 0x43, 0xee, 0x7b, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x71, 0x83, 0xf4, 0x53, 0x8b, 0x0d, 0x96, 0xec, 0xe2, 0x0c, 0x82, 0x15, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x9d, 0x20, 0xd8, 0xc7, 0xa1, 0x0d, 0x12, 0xca, 0x4e, 0x06, 0xc1, 0x0a, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x1e, 0x14, 0xe7, 0x5c, 0xc7, 0xa1, 0x0d, 0xd6, 0x00, 0xe2, 0x6c, 0x90, 0xf6, 0x52, 0xbd, 0xc1, 0x92, 0x5d, 0x9c, 0x41, 0xb0, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x07, 0x61, 0x4f, 0x7d, 0x1c, 0xda, 0x20, 0xa1, 0xec, 0x64, 0x10, 0xac, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc6, 0xa1, 0x83, 0x22, 0x78, 0x70, 0x1c, 0xbc, 0x1b, 0xd4, 0x37, 0x08, 0x16, 0x87, 0xdd, 0x20, 0xe8, 0xf5, 0x37, 0x8c, 0xcb, 0x06, 0xe3, 0xa7, 0xeb, 0xa0, 0x1c, 0xd7, 0x3a, 0xbe, 0x1d, 0xac, 0x66, 0x00, 0x3a, 0x58, 0xcd, 0x00, 0x74, 0xb0, 0x9a, 0x01, 0xe8, 0xf8, 0x76, 0x88, 0xe1, 0x20, 0xdb, 0xd0, 0x7c, 0x7d, 0x43, 0xee, 0x7b, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x71, 0x83, 0x55, 0xdd, 0x0b, 0x8b, 0xe1, 0xef, 0x06, 0x6b, 0x50, 0x80, 0x16, 0xc3, 0xd7, 0x0d, 0xd2, 0x5e, 0xaa, 0x07, 0xc1, 0x0a, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0xf8, 0xe0, 0xe7, 0x20, 0x75, 0x6c, 0xe7, 0x10, 0xc3, 0x83, 0xd5, 0x0c, 0x40, 0xc7, 0xb7, 0xe3, 0xf1, 0x82, 0x60, 0x41, 0xb0, 0xc1, 0x02, 0x43, 0x97, 0xc3, 0x1e, 0xef, 0xb0, 0x0b, 0x82, 0x0d, 0x4e, 0x21, 0xd4, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xa9, 0x83, 0x83, 0xb4, 0xad, 0x96, 0xe3, 0xd0, 0x82, 0x60, 0x83, 0x24, 0x08, 0xe9, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x0d, 0x8a, 0xe8, 0xae, 0x83, 0x80, 0xf7, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x90, 0xe0, 0xe3, 0x71, 0x48, 0xcc, 0x1c, 0x87, 0x86, 0xdf, 0x78, 0xbe, 0x06, 0xcb, 0xfc, 0x7d, 0x06, 0xc1, 0x82, 0x64, 0x40, 0xf0, 0xee, 0x1c, 0xb2, 0x15, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x6e, 0xb0, 0x64, 0x17, 0x67, 0x83, 0x35, 0xda, 0x0a, 0x1b, 0x2c, 0x5e, 0x01, 0xda, 0x60, 0x34, 0xf8, 0x6e, 0x50, 0x8a, 0x48, 0x6e, 0x50, 0x8a, 0x48, 0x6e, 0xb0, 0xfe, 0xf1, 0x65, 0x83, 0x81, 0x6f, 0xbc, 0x41, 0x42, 0xd9, 0xc9, 0x20, 0x58, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0xc0, 0x69, 0x77, 0xc8, 0x56, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x58, 0x78, 0x28, 0x33, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x89, 0x91, 0xfa, 0x60, 0x45, 0x11, 0xd0, 0x71, 0x68, 0x1c, 0x14, 0x0c, 0x6e, 0x0e, 0x2e, 0x0f, 0x1e, 0x0e, 0xde, 0x0e, 0x5e, 0x0e, 0x3e, 0x0f, 0xde, 0x75, 0xb0, 0x9a, 0x01, 0xe8, 0xf8, 0x76, 0x1c, 0x1a, 0x04, 0x0b, 0x92, 0x0d, 0x0a, 0xff, 0xa0, 0x83, 0x80, 0xf7, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x89, 0x91, 0x7a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x75, 0x70, 0x90, 0xe0, 0xe3, 0x71, 0x1c, 0x3a, 0x24, 0x66, 0x8e, 0x43, 0xc7, 0xa1, 0xc3, 0xda, 0xef, 0x86, 0x56, 0xe2, 0x83, 0x60, 0x41, 0xb2, 0xc1, 0x20, 0x79, 0x39, 0x08, 0x72, 0xfe, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x3f, 0x18, 0x77, 0x50, 0x07, 0x67, 0x93, 0xde, 0xe3, 0xd0, 0xc1, 0x5a, 0x3e, 0x81, 0x43, 0xea, 0xe0, 0x78, 0x3c, 0xfc, 0x82, 0x60, 0x83, 0x11, 0xf4, 0xb6, 0x38, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x81, 0xa5, 0xaf, 0x43, 0x72, 0xe9, 0xd0, 0xa8, 0x65, 0xd8, 0x0d, 0x46, 0xbd, 0xe4, 0x86, 0x18, 0x6e, 0x88, 0xe1, 0xa1, 0x5f, 0xed, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0xf8, 0x6d, 0x6f, 0x6c, 0xe5, 0x21, 0xb5, 0x74, 0x3c, 0x5e, 0x10, 0x2c, 0x6e, 0x38, 0xc5, 0x0e, 0xc6, 0x0c, 0xda, 0xe2, 0x20, 0x58, 0x90, 0x0c, 0x6c, 0x7d, 0x1d, 0x92, 0x4b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x16, 0x57, 0xfa, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x06, 0xe3, 0xa7, 0xeb, 0x60, 0x68, 0x76, 0x1d, 0xf2, 0xb5, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0xe1, 0x17, 0x04, 0x1b, 0x8c, 0xa0, 0xb7, 0xc5, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0xfc, 0xff, 0x75, 0x48, 0x2e, 0x1d, 0x1a, 0xb5, 0x0c, 0xbb, 0xc1, 0x02, 0x58, 0x9f, 0x0d, 0xd6, 0x86, 0x03, 0x0d, 0xb2, 0x35, 0xb4, 0x5f, 0x1f, 0x6e, 0xc3, 0xd1, 0x7e, 0x10, 0x52, 0xe0, 0x1b, 0x8e, 0xf6, 0x83, 0x10, 0x00, 0x3f, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0xbf, 0xad, 0x8e, 0xad, 0x3c, 0xa4, 0x96, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x56, 0xb9, 0x03, 0x2d, 0x0e, 0xbb, 0xb0, 0x1b, 0xa4, 0x1d, 0xfd, 0x2c, 0x74, 0x42, 0xe3, 0xe1, 0x68, 0x5f, 0x10, 0x2c, 0x48, 0x06, 0xce, 0xaf, 0x43, 0x72, 0x69, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x17, 0x44, 0x1b, 0x2c, 0x64, 0x26, 0x39, 0x18, 0x3f, 0x5d, 0x07, 0x8b, 0x3f, 0x7d, 0x0e, 0xf9, 0xda, 0xe3, 0xd0, 0x41, 0xe2, 0xb1, 0xcf, 0xf1, 0x78, 0xe1, 0x17, 0x04, 0x1b, 0xac, 0x72, 0x07, 0x5a, 0x1c, 0x04, 0x0b, 0xbf, 0x20, 0x58, 0x90, 0x0c, 0xdc, 0x5f, 0x07, 0x41, 0xce, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x04, 0x2b, 0x08, 0x16, 0x24, 0x03, 0xc2, 0x77, 0xe7, 0x90, 0xad, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xb0, 0x2a, 0x83, 0xe6, 0x90, 0xb5, 0x3b, 0x0e, 0x1d, 0xc6, 0xe5, 0xd0, 0xfc, 0xe5, 0x78, 0x7c, 0x1c, 0x3a, 0xbe, 0x0d, 0x82, 0xc5, 0x05, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0xb0, 0x1b, 0xf2, 0x58, 0x1b, 0x62, 0x38, 0x08, 0x16, 0x87, 0x5d, 0xb8, 0x0d, 0x47, 0xfb, 0x21, 0x6b, 0xb7, 0x61, 0x19, 0x75, 0xd8, 0x85, 0x5d, 0xe8, 0x21, 0x5f, 0x7b, 0x58, 0xdf, 0xdc, 0x10, 0xc3, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0x66, 0x07, 0xc3, 0x51, 0xfa, 0xb0, 0x51, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xf1, 0x82, 0x60, 0x41, 0x32, 0xe8, 0x3b, 0x38, 0x09, 0x1d, 0x1f, 0xb2, 0x17, 0xc3, 0x6e, 0x50, 0xf2, 0x20, 0x6d, 0x68, 0x01, 0x34, 0xc8, 0xd6, 0xd0, 0x7e, 0xfd, 0xa0, 0x7c, 0x1a, 0x3a, 0x34, 0xfc, 0x3a, 0x9e, 0x1f, 0xdf, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x46, 0xfe, 0xc3, 0xe2, 0xb0, 0x1b, 0x1a, 0x2e, 0x6e, 0x30, 0xea, 0xd1, 0x86, 0xdd, 0xa0, 0x08, 0x19, 0xdc, 0x10, 0xc3, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0x66, 0x07, 0xc3, 0x3f, 0xf6, 0x90, 0x86, 0x1b, 0x04, 0x0b, 0x92, 0x21, 0x83, 0x68, 0xc1, 0x74, 0xd8, 0x0d, 0x4a, 0x1e, 0xa4, 0x0d, 0x06, 0xd1, 0xca, 0x20, 0xdb, 0x60, 0x51, 0x67, 0xd0, 0xc1, 0xe0, 0x8f, 0x19, 0x44, 0x0b, 0xc2, 0x41, 0xb0, 0x20, 0x19, 0xf4, 0x1d, 0x0c, 0x47, 0xe9, 0xc3, 0x46, 0xed, 0xf1, 0x7c, 0xd8, 0x0d, 0x46, 0xbd, 0xe4, 0x86, 0x18, 0x0e, 0xbb, 0xa1, 0x7d, 0xf8, 0x1a, 0x62, 0xb8, 0x41, 0x08, 0x80, 0x1f, 0x14, 0x7b, 0x10, 0x83, 0x6c, 0x0d, 0xed, 0xd7, 0x0f, 0x3d, 0xc9, 0x37, 0xc4, 0x70, 0x83, 0x20, 0x89, 0x3e, 0x08, 0x01, 0xf0, 0xe3, 0xf1, 0xb0, 0x0b, 0xbb, 0xd0, 0x83, 0x91, 0x65, 0xb5, 0xd0, 0x83, 0x94, 0xc1, 0x80, 0xc3, 0xd1, 0xbe, 0x20, 0x58, 0x90, 0x0c, 0xb2, 0x41, 0xb4, 0xe0, 0xf9, 0x41, 0xca, 0x60, 0xc0, 0xf1, 0x78, 0xd8, 0x0d, 0x16, 0xc0, 0xfa, 0x2c, 0x08, 0x16, 0x24, 0x83, 0x6c, 0x10, 0x2d, 0x78, 0x7e, 0x30, 0x82, 0x3c, 0x8f, 0xe7, 0xc3, 0x6e, 0xb0, 0x00, 0xd6, 0x67, 0x0d, 0x31, 0x3c, 0x28, 0x3f, 0x49, 0x8e, 0x43, 0xc7, 0xa1, 0x61, 0x17, 0x76, 0x83, 0xf5, 0xe3, 0x41, 0x0b, 0xbb, 0x70, 0x07, 0xa9, 0x80, 0x01, 0x0b, 0xbb, 0xd0, 0x83, 0x14, 0x48, 0xf3, 0xc3, 0xfa, 0xe6, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0x25, 0x43, 0xd3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x11, 0xe4, 0x79, 0x50, 0xc2, 0x48, 0x1c, 0x87, 0x86, 0xdd, 0x60, 0xd4, 0x4b, 0x6e, 0x90, 0x70, 0x2a, 0x7d, 0x10, 0x6e, 0xee, 0xc3, 0x2e, 0xec, 0x06, 0xeb, 0xc7, 0x83, 0x16, 0x6e, 0xc3, 0xd1, 0x7e, 0x90, 0x32, 0x18, 0x70, 0x38, 0xda, 0xd7, 0x10, 0xc3, 0x83, 0x14, 0x48, 0xf3, 0x61, 0x17, 0x76, 0x83, 0xf5, 0xe3, 0x41, 0x0b, 0xbb, 0x70, 0x1b, 0x5a, 0x89, 0x1f, 0xa4, 0x0c, 0x06, 0x6c, 0xb0, 0x7e, 0x41, 0xe8, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0x05, 0xc1, 0x82, 0x64, 0x90, 0x0d, 0xa2, 0x05, 0xcf, 0x27, 0x18, 0xf3, 0xe3, 0xf1, 0xb0, 0x1b, 0x2c, 0x80, 0xf5, 0x59, 0x10, 0x2c, 0x48, 0x06, 0xd9, 0x20, 0x5a, 0xf0, 0x7c, 0x82, 0x3a, 0x7f, 0x3c, 0x1f, 0x76, 0x83, 0x05, 0xb0, 0x3e, 0x0b, 0x92, 0x41, 0x36, 0x88, 0x16, 0x94, 0x1f, 0x94, 0x9f, 0x24, 0x87, 0xe4, 0xd2, 0x71, 0xe8, 0x38, 0x34, 0xec, 0xc2, 0x6e, 0xb0, 0x7e, 0x3c, 0x68, 0xe1, 0x36, 0xf4, 0x27, 0x3f, 0x48, 0x19, 0x0c, 0x38, 0x1c, 0xed, 0x0b, 0x82, 0x05, 0xc9, 0x20, 0x1b, 0x44, 0x0b, 0x9e, 0x1f, 0xa4, 0x40, 0x9a, 0x1f, 0x8f, 0x87, 0xdd, 0x60, 0x01, 0xac, 0xcf, 0x1a, 0x62, 0x78, 0xb0, 0x66, 0x28, 0xe5, 0x38, 0x34, 0xec, 0xc2, 0x6e, 0xb0, 0x7e, 0x3c, 0x68, 0xe1, 0x36, 0x28, 0xe3, 0x76, 0x0e, 0x52, 0x06, 0x03, 0x0e, 0x47, 0xfb, 0x82, 0x60, 0x83, 0x25, 0x65, 0x42, 0xc3, 0x6e, 0xb0, 0x00, 0xd6, 0x67, 0x61, 0x17, 0x76, 0x83, 0x35, 0x43, 0x29, 0x87, 0xf5, 0xcd, 0x35, 0xc4, 0x70, 0x98, 0x83, 0x10, 0x00, 0x3f, 0x48, 0x38, 0x95, 0x3e, 0x0e, 0x0d, 0xbb, 0xb0, 0x1b, 0xac, 0x1f, 0x0f, 0x5a, 0xd8, 0x85, 0xdb, 0xa0, 0xb0, 0xc3, 0x39, 0x48, 0x19, 0x0c, 0x38, 0x58, 0x9b, 0x23, 0x74, 0x38, 0xda, 0x17, 0x04, 0x1b, 0xac, 0xfc, 0x11, 0x1a, 0x76, 0x83, 0x05, 0xb0, 0x3e, 0x0b, 0x82, 0x0d, 0x56, 0x25, 0x09, 0x0d, 0xbb, 0xc1, 0x02, 0x58, 0x9f, 0x35, 0xc4, 0x70, 0xb8, 0x83, 0xf2, 0x93, 0xe4, 0x38, 0x74, 0x1c, 0x1a, 0x76, 0x61, 0x37, 0x58, 0x3f, 0x1e, 0xb4, 0xb0, 0x0b, 0xb7, 0xc1, 0x68, 0x3e, 0x3f, 0x48, 0x19, 0x0c, 0x58, 0xd8, 0x0d, 0xd6, 0x2f, 0x08, 0x2d, 0x74, 0x82, 0x39, 0x3f, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x2f, 0x08, 0x36, 0x58, 0xf9, 0x23, 0x34, 0xec, 0x06, 0x0b, 0x60, 0x7d, 0x16, 0x76, 0x83, 0xd0, 0x72, 0x5f, 0x90, 0x0c, 0xb2, 0x41, 0xb4, 0xe0, 0xf9, 0x04, 0xe7, 0xfc, 0xf1, 0x7c, 0xd8, 0x85, 0x3b, 0x58, 0x21, 0x12, 0xb4, 0x20, 0x19, 0x64, 0x83, 0x68, 0xc1, 0xf3, 0x09, 0xee, 0xf9, 0xe3, 0xf9, 0x20, 0xdb, 0xd0, 0x7c, 0xfd, 0x20, 0xe1, 0x54, 0xfa, 0x38, 0x34, 0xec, 0xc2, 0x6e, 0xb0, 0x7e, 0x3c, 0x68, 0x61, 0x17, 0x6e, 0x83, 0x21, 0x8f, 0x7e, 0x90, 0x32, 0x18, 0x70, 0xb0, 0x36, 0x47, 0xe8, 0x70, 0xb4, 0x2f, 0x08, 0x36, 0x58, 0xf9, 0x23, 0x34, 0xec, 0x06, 0x0b, 0x60, 0x7d, 0x16, 0x24, 0x83, 0x6c, 0x10, 0x2d, 0x28, 0xdf, 0x20, 0x04, 0xc0, 0x0f, 0x96, 0x33, 0x09, 0x1d, 0xcf, 0x8f, 0x43, 0xc3, 0x2e, 0xec, 0x06, 0xeb, 0xc7, 0x83, 0x16, 0x76, 0xe1, 0x36, 0x28, 0x00, 0xa0, 0x0e, 0x52, 0x06, 0x03, 0x0e, 0xd6, 0xe6, 0x08, 0x1d, 0x8e, 0xf6, 0x05, 0xc1, 0x06, 0x2b, 0x7f, 0x84, 0x86, 0xdd, 0x60, 0x01, 0xac, 0xcf, 0x82, 0x64, 0x90, 0x0d, 0xa2, 0x05, 0xe5, 0x6b, 0x10, 0x02, 0xe0, 0x07, 0x25, 0x8c, 0xc4, 0xc1, 0x72, 0x26, 0xa1, 0xe3, 0xf9, 0x71, 0x68, 0xd8, 0x85, 0xdd, 0x60, 0xfd, 0x78, 0xd0, 0xc2, 0x2e, 0xdc, 0x06, 0xe7, 0x96, 0xe2, 0x83, 0x94, 0xc1, 0x80, 0x85, 0xdd, 0x60, 0xfd, 0x82, 0xd0, 0xc2, 0x2e, 0xf4, 0x60, 0xc9, 0x90, 0xd0, 0x61, 0x7d, 0xf3, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0xc3, 0xd1, 0xbe, 0x20, 0x58, 0x90, 0x0c, 0xb2, 0x41, 0xb4, 0xe0, 0xf9, 0xc1, 0x72, 0x5c, 0xa1, 0xe3, 0xf1, 0xb0, 0x1b, 0x2c, 0x80, 0xf5, 0x59, 0x10, 0x2c, 0x08, 0x36, 0x48, 0x6c, 0x39, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xc1, 0x99, 0x7f, 0x18, 0x97, 0xe3, 0xd0, 0xb0, 0x1b, 0x8c, 0x7a, 0xc9, 0x35, 0xb4, 0x12, 0x3f, 0xec, 0x15, 0x1e, 0xac, 0x91, 0x12, 0x3a, 0x0e, 0x0d, 0xbb, 0xb0, 0x1b, 0xac, 0x1f, 0x0f, 0x5a, 0xd8, 0x85, 0xdb, 0xe0, 0xc8, 0x53, 0x7c, 0x90, 0x32, 0x18, 0xb0, 0xb0, 0x1b, 0xac, 0x5f, 0x10, 0x5a, 0xd8, 0x0d, 0x56, 0x89, 0x0c, 0x2d, 0xec, 0x42, 0x27, 0x28, 0xe6, 0x87, 0xf5, 0xcd, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0x5f, 0xd8, 0x85, 0xdb, 0x10, 0xc3, 0x83, 0xa5, 0x58, 0x43, 0x1b, 0x1a, 0x89, 0x0f, 0x82, 0x0d, 0x96, 0xad, 0x0c, 0x0d, 0xbb, 0xc1, 0x02, 0x58, 0x9f, 0x05, 0xc1, 0x82, 0x64, 0x90, 0x0d, 0xa2, 0x05, 0xcf, 0x27, 0xb8, 0xe6, 0x8f, 0xe7, 0xc3, 0x6e, 0xb0, 0x00, 0xd6, 0x67, 0x41, 0xb0, 0x20, 0xd8, 0x60, 0x24, 0xe0, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x97, 0x60, 0x99, 0x7f, 0x43, 0xbe, 0xf6, 0x30, 0x2e, 0xc7, 0xa1, 0x61, 0x37, 0x18, 0xf5, 0x92, 0x6b, 0x68, 0x25, 0x7e, 0x10, 0x98, 0xd8, 0x07, 0xe1, 0xe6, 0x7e, 0x1c, 0x3a, 0x0e, 0x0d, 0xbb, 0xb0, 0x1b, 0xac, 0x1f, 0x0f, 0x5a, 0xd8, 0x85, 0xdb, 0xe0, 0x18, 0x98, 0x7f, 0x90, 0x32, 0x18, 0x70, 0xb0, 0xd0, 0x63, 0xe8, 0x70, 0xb4, 0x2f, 0x08, 0x36, 0x58, 0xb6, 0x32, 0x34, 0xec, 0x06, 0x0b, 0x60, 0x7d, 0xd6, 0x10, 0xc3, 0x21, 0x1b, 0x94, 0x30, 0x12, 0x1b, 0x1c, 0x03, 0xf3, 0x97, 0xa0, 0xcc, 0x1f, 0xac, 0x10, 0x09, 0x3a, 0x0e, 0x0d, 0xbb, 0xb0, 0x1b, 0xac, 0x1f, 0x0f, 0x5a, 0xd8, 0x0d, 0x96, 0x44, 0x0e, 0x1d, 0xac, 0x8a, 0x1a, 0x3a, 0x1c, 0xed, 0x0b, 0x82, 0x05, 0xc9, 0x20, 0x1b, 0x44, 0x0b, 0x9e, 0x4f, 0x50, 0xcd, 0x8f, 0xc7, 0xc3, 0x6e, 0xb0, 0x00, 0xd6, 0x67, 0x41, 0xb0, 0xf0, 0x0b, 0xa2, 0x05, 0xf1, 0xb0, 0x0b, 0xbb, 0x70, 0x1b, 0xac, 0x45, 0xf6, 0x99, 0xe0, 0x98, 0xdf, 0x10, 0xc3, 0x61, 0x17, 0x6e, 0x83, 0xf5, 0x23, 0x3f, 0x07, 0x8b, 0x8a, 0x87, 0x36, 0xc4, 0x70, 0xd8, 0x85, 0xdb, 0x60, 0x95, 0xcf, 0xcf, 0xc1, 0xa2, 0xe2, 0xa1, 0x0d, 0x31, 0x1c, 0x76, 0xe1, 0x36, 0x58, 0xe6, 0xef, 0x73, 0xb0, 0xa8, 0x78, 0x68, 0x43, 0x0c, 0x87, 0xdb, 0x60, 0xa1, 0xe1, 0xcf, 0xc1, 0xa2, 0xe2, 0xa1, 0xd5, 0x60, 0x51, 0xf1, 0xd0, 0x41, 0x08, 0x80, 0x1f, 0x52, 0x35, 0x87, 0x54, 0xcd, 0xf1, 0xf8, 0x60, 0x55, 0x92, 0xd0, 0xb0, 0x1b, 0x2c, 0x80, 0xf5, 0x59, 0x43, 0x0c, 0x87, 0x6c, 0x50, 0x84, 0x4d, 0x6c, 0x70, 0x0c, 0xcc, 0x5f, 0x09, 0x92, 0xf9, 0x87, 0x97, 0x00, 0x0e, 0x56, 0x88, 0x04, 0x1d, 0x87, 0x8e, 0x43, 0xc3, 0x2e, 0xec, 0x06, 0xeb, 0xc7, 0x83, 0x16, 0x76, 0xe1, 0x16, 0x43, 0x78, 0x90, 0x32, 0x18, 0x70, 0xb0, 0x36, 0x47, 0xe8, 0x70, 0xb4, 0x2f, 0x08, 0x36, 0x58, 0xf9, 0x23, 0x34, 0xec, 0x06, 0x0b, 0x60, 0x7d, 0x16, 0x04, 0x1b, 0xac, 0x4a, 0x12, 0x1a, 0x76, 0x83, 0x05, 0xb0, 0x3e, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0x21, 0xe2, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x3d, 0x58, 0xf6, 0x37, 0x74, 0x1c, 0x1a, 0x76, 0x83, 0x51, 0x2f, 0xb9, 0xe1, 0x25, 0x80, 0x61, 0x37, 0x08, 0x2d, 0xf7, 0x35, 0xb4, 0x12, 0x5f, 0x83, 0xb5, 0xc8, 0x3e, 0x07, 0xcb, 0xfe, 0x86, 0x0e, 0x02, 0x13, 0x7b, 0x43, 0x0c, 0x0f, 0x06, 0x6b, 0xec, 0x71, 0xe8, 0x38, 0x34, 0xc8, 0x36, 0x34, 0x5f, 0x3f, 0x34, 0x12, 0x3f, 0x58, 0xcb, 0x27, 0x70, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0x7e, 0x5b, 0x9a, 0xdb, 0x7a, 0x48, 0x2d, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0xc1, 0xe2, 0x4a, 0x9f, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x49, 0x24, 0xde, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x12, 0x53, 0x1b, 0x0c, 0x56, 0x94, 0xe3, 0xf1, 0x71, 0xe8, 0x60, 0xd1, 0xab, 0xcf, 0xf1, 0x78, 0x10, 0x6c, 0x30, 0x82, 0xde, 0x16, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x55, 0x39, 0x41, 0x07, 0x0b, 0x33, 0x7d, 0x86, 0xdd, 0x60, 0x01, 0xac, 0xcf, 0x06, 0xe1, 0xe6, 0x3e, 0xec, 0x06, 0x8b, 0x3c, 0x82, 0x16, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x82, 0x64, 0x60, 0xbc, 0x0e, 0x2b, 0xb4, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x81, 0xf6, 0x7d, 0x07, 0x41, 0xce, 0x7f, 0x1c, 0x3a, 0x18, 0x51, 0xb8, 0x1b, 0x8e, 0xf6, 0x85, 0xdd, 0x60, 0xd4, 0x4b, 0xae, 0x21, 0xf7, 0x3d, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x38, 0x0e, 0xde, 0x0e, 0x5e, 0x0f, 0x4e, 0x0f, 0x5e, 0x1e, 0x2c, 0xc4, 0xf6, 0x39, 0xbe, 0x0d, 0x82, 0x05, 0xc9, 0x40, 0x7b, 0xbb, 0x43, 0xb6, 0xe2, 0x60, 0x44, 0xe1, 0x1e, 0x62, 0x38, 0xc8, 0xd6, 0xd0, 0x7e, 0x7d, 0xb8, 0x0d, 0xad, 0xc4, 0x0f, 0x42, 0x0a, 0xfc, 0x60, 0x85, 0x48, 0xd0, 0xf1, 0x78, 0x85, 0x5f, 0x10, 0x6c, 0xb0, 0x60, 0x5f, 0x67, 0x71, 0xf8, 0x05, 0xc1, 0xe2, 0x06, 0x63, 0x0c, 0xed, 0x60, 0xd1, 0x29, 0xc9, 0xe2, 0xb0, 0x1b, 0x94, 0xbe, 0x60, 0x1b, 0xa2, 0x39, 0x08, 0x16, 0x04, 0x1b, 0xc6, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x7b, 0x70, 0xac, 0xaf, 0x3f, 0x0e, 0x0d, 0x82, 0x05, 0xc1, 0x82, 0x64, 0x20, 0x52, 0x07, 0x41, 0xce, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x4c, 0x58, 0x1d, 0xa2, 0x79, 0x1c, 0x1a, 0x76, 0xc3, 0xae, 0xc1, 0x1a, 0x87, 0x0e, 0xe3, 0xb2, 0x71, 0x68, 0x43, 0x0c, 0x17, 0x04, 0x1b, 0x8c, 0x37, 0x9d, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x8b, 0x4a, 0x87, 0x0e, 0x8d, 0x8b, 0x8e, 0x43, 0x07, 0x23, 0xb3, 0xf7, 0x78, 0x7c, 0xb0, 0x80, 0x2d, 0xe7, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x07, 0xfc, 0xb1, 0xb7, 0x36, 0xf8, 0x90, 0x5a, 0x3a, 0x1e, 0xaf, 0xf0, 0x0b, 0x82, 0x0d, 0x56, 0x80, 0x12, 0x2d, 0x0e, 0x82, 0x05, 0xc1, 0x06, 0x63, 0x7b, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x83, 0x52, 0xb1, 0xe6, 0x38, 0x74, 0x68, 0xd4, 0x72, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0x3e, 0x9c, 0x59, 0x1a, 0x7e, 0x48, 0x2d, 0x1d, 0x8f, 0x57, 0x10, 0x6c, 0xb0, 0x02, 0x94, 0x68, 0x71, 0xd8, 0x0d, 0x4a, 0x5f, 0xb0, 0x05, 0xc1, 0x06, 0x05, 0xc8, 0xdc, 0x82, 0x60, 0x41, 0x32, 0x10, 0xa9, 0xc3, 0x0a, 0xed, 0xc1, 0xaa, 0x5b, 0xa2, 0x83, 0x10, 0x00, 0x1f, 0x04, 0x1b, 0x2c, 0xc6, 0xe4, 0x39, 0x74, 0x22, 0x3a, 0x1e, 0x0f, 0x82, 0x0d, 0x56, 0x80, 0x12, 0x2d, 0x0e, 0xbb, 0x41, 0xe9, 0x0b, 0xb6, 0x21, 0x9a, 0x83, 0x60, 0x83, 0x02, 0x64, 0xee, 0x38, 0x74, 0x3c, 0x1e, 0x7e, 0x41, 0xb0, 0xc1, 0x0a, 0x50, 0xa2, 0xc5, 0x61, 0x37, 0x28, 0x7d, 0xc1, 0x36, 0x58, 0xda, 0x4f, 0x74, 0x88, 0xe6, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0xf8, 0x70, 0x6f, 0x73, 0xe5, 0x21, 0xb5, 0x74, 0x3c, 0x5e, 0xf8, 0x05, 0xc1, 0x06, 0x2b, 0x40, 0x89, 0x16, 0x07, 0xc1, 0x82, 0x60, 0x83, 0xb1, 0x3d, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x41, 0xd1, 0x7d, 0x73, 0x1c, 0x3a, 0x34, 0x6a, 0x39, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0x7f, 0xce, 0x2c, 0x0d, 0x3f, 0xa4, 0x96, 0x8e, 0xc7, 0x2b, 0xfc, 0x82, 0x60, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0xb8, 0x21, 0x86, 0x87, 0xc4, 0xe6, 0xf1, 0x78, 0x71, 0xf8, 0x05, 0xc1, 0x06, 0x2b, 0x40, 0x89, 0x16, 0x87, 0xdd, 0xa0, 0xf4, 0x05, 0xdb, 0x10, 0xcd, 0x41, 0xb0, 0xc1, 0xe2, 0x54, 0xa2, 0x41, 0xb0, 0xc1, 0x52, 0x59, 0xa2, 0x61, 0x37, 0xec, 0x1a, 0xac, 0x71, 0xe8, 0x60, 0x64, 0x59, 0x0d, 0x82, 0x0d, 0x16, 0x15, 0x13, 0x0d, 0xb2, 0x35, 0xb4, 0x5f, 0x3f, 0x18, 0xf5, 0x92, 0x1b, 0x52, 0x07, 0x1b, 0x62, 0xb8, 0x41, 0x08, 0x80, 0x1f, 0x9a, 0x25, 0x1d, 0x8f, 0x0f, 0x16, 0xb0, 0xe5, 0x1c, 0x8f, 0x07, 0xd9, 0x1a, 0xd2, 0x40, 0xe3, 0x80, 0x2f, 0x56, 0xe6, 0x46, 0x1e, 0x52, 0x4b, 0xc7, 0xe3, 0xe1, 0x17, 0x04, 0x1b, 0xac, 0x00, 0x25, 0x5a, 0x1c, 0x76, 0x83, 0xd2, 0x17, 0x6c, 0x43, 0x34, 0x07, 0xc1, 0x06, 0x8b, 0x53, 0x89, 0x06, 0xc1, 0x06, 0x2b, 0x01, 0x8a, 0x86, 0xdd, 0xb0, 0x6b, 0xb0, 0xc1, 0x4a, 0x60, 0xa2, 0x8d, 0x43, 0x1b, 0x62, 0xb8, 0x06, 0x4b, 0x86, 0x84, 0x0e, 0x9d, 0xd4, 0x0e, 0x46, 0x66, 0xef, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0xf8, 0x70, 0x6c, 0x75, 0xe7, 0x21, 0xb5, 0x74, 0x3c, 0x5e, 0xf8, 0x05, 0xc1, 0x06, 0xcb, 0x4d, 0x49, 0x16, 0x87, 0x5f, 0x10, 0x6c, 0xb0, 0x02, 0x94, 0x68, 0x71, 0x10, 0x2c, 0x48, 0x06, 0xaa, 0xdb, 0x21, 0x5b, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xb5, 0x1b, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x86, 0x71, 0x19, 0x04, 0x1b, 0x04, 0x26, 0xf6, 0xc1, 0xd2, 0x17, 0x99, 0xe3, 0xd0, 0xf1, 0xf8, 0x60, 0x01, 0x5b, 0xce, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0xf8, 0x67, 0x6c, 0x75, 0xe5, 0x21, 0xb5, 0x74, 0x3c, 0x1e, 0x04, 0x1b, 0x14, 0xd4, 0x62, 0x8b, 0x87, 0x16, 0x92, 0xc7, 0xe3, 0x55, 0x10, 0x6c, 0x90, 0x78, 0xec, 0xb3, 0x38, 0x08, 0x16, 0x76, 0x43, 0x1e, 0x6b, 0x0d, 0xcd, 0x22, 0x17, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x48, 0x06, 0x14, 0xeb, 0x72, 0xc7, 0xe3, 0x43, 0x53, 0xa0, 0x83, 0xa0, 0xf4, 0x1e, 0x76, 0x43, 0xc3, 0xc5, 0x35, 0xf4, 0x69, 0x1c, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0xfc, 0x06, 0x03, 0x2f, 0xf5, 0xf8, 0x76, 0xe8, 0xa0, 0xb1, 0x41, 0x52, 0xb8, 0xcf, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0xc1, 0xc0, 0x00, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0x15, 0x04, 0x0b, 0x92, 0x01, 0xe1, 0xbb, 0x73, 0x48, 0x2e, 0x1d, 0x2c, 0x32, 0x0b, 0x3a, 0x8c, 0xcb, 0xa1, 0xf9, 0xcb, 0xf1, 0xf8, 0x38, 0x74, 0xe8, 0xa0, 0x71, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x41, 0xb0, 0x18, 0xf8, 0x76, 0x6f, 0x69, 0xe4, 0xe2, 0x20, 0x58, 0xd8, 0x0d, 0x1d, 0x47, 0x56, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0xf1, 0x50, 0xc7, 0x37, 0x58, 0x78, 0x61, 0x74, 0x38, 0xc5, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x92, 0x01, 0x89, 0xef, 0x72, 0xc7, 0xe3, 0x43, 0x07, 0x8d, 0x61, 0x17, 0x6e, 0xf1, 0x30, 0x9d, 0x87, 0xd4, 0xc1, 0xc2, 0x2e, 0xdc, 0x86, 0xd4, 0xc1, 0xc1, 0x42, 0x13, 0xa3, 0x0d, 0x16, 0x9a, 0x18, 0x1d, 0x4e, 0xb1, 0x61, 0x17, 0x6e, 0xf1, 0x30, 0x71, 0x87, 0xd4, 0xc1, 0xc2, 0x2e, 0xdc, 0x86, 0xd4, 0xc1, 0xc1, 0xc2, 0x19, 0xa3, 0x0d, 0x16, 0xce, 0x18, 0x1d, 0x4e, 0xb1, 0x61, 0x17, 0x6e, 0xf1, 0xf0, 0xdc, 0xea, 0x21, 0x75, 0xb0, 0xb0, 0x0b, 0xb7, 0x21, 0x75, 0x70, 0xb0, 0x10, 0xc8, 0x68, 0x83, 0x85, 0x40, 0x46, 0x87, 0x53, 0x6c, 0xd8, 0x85, 0x5b, 0x3c, 0x08, 0xdc, 0x87, 0x43, 0xea, 0x60, 0x61, 0x17, 0x6e, 0x43, 0xea, 0xe0, 0x60, 0x79, 0x93, 0xd1, 0x06, 0xcb, 0x9b, 0x8c, 0x0e, 0xa7, 0xd8, 0xb0, 0x0b, 0xb7, 0x21, 0x75, 0x70, 0xb0, 0xbe, 0xc1, 0x68, 0x83, 0xf5, 0x0d, 0x46, 0x87, 0x53, 0xec, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x35, 0xfe, 0x45, 0x07, 0xe3, 0x38, 0xe4, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x20, 0x58, 0x9c, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x2c, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x6c, 0x30, 0x2a, 0x49, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x28, 0xdc, 0xe5, 0x8e, 0xc7, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0x86, 0xfd, 0xdc, 0xf1, 0xf8, 0x38, 0x74, 0x68, 0xd4, 0x72, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x10, 0x6c, 0x38, 0xda, 0x17, 0x07, 0xc1, 0xc2, 0x6e, 0xe8, 0x38, 0xb2, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0xc1, 0xa8, 0x24, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0xd0, 0x56, 0xee, 0x78, 0x7c, 0xb0, 0x7a, 0xd3, 0xe8, 0x38, 0x74, 0x68, 0xd4, 0x32, 0xec, 0x86, 0xf5, 0xbd, 0x85, 0x5d, 0xb8, 0x83, 0x62, 0x91, 0xec, 0xd0, 0x38, 0x6a, 0xd8, 0x85, 0x3b, 0x18, 0x40, 0x89, 0x87, 0x36, 0x8f, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x92, 0x81, 0xf6, 0x7d, 0x87, 0xe4, 0xd2, 0xa1, 0x51, 0xcb, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x10, 0x2c, 0x06, 0xbe, 0x99, 0x5c, 0x59, 0xb9, 0x38, 0x08, 0x16, 0x76, 0xe1, 0x16, 0x03, 0x5f, 0xae, 0x2c, 0x8c, 0x3c, 0xa4, 0x0e, 0x16, 0x76, 0xe1, 0x36, 0xa4, 0x0e, 0x0e, 0x16, 0x23, 0x1b, 0x6d, 0xb0, 0x18, 0xd9, 0xe8, 0x70, 0x8a, 0x0d, 0xbb, 0x70, 0x8b, 0x81, 0x2f, 0x97, 0x46, 0x57, 0x1e, 0x52, 0x07, 0x0b, 0xbb, 0x70, 0x1b, 0x52, 0x07, 0x07, 0x6b, 0xae, 0x8d, 0x36, 0x58, 0x73, 0x6d, 0x74, 0x38, 0xc5, 0x86, 0x5d, 0xb8, 0xc5, 0x83, 0x73, 0xd1, 0xc1, 0x21, 0x75, 0xb0, 0xb0, 0x0b, 0xb7, 0x21, 0x75, 0x70, 0xb0, 0xb4, 0xdc, 0x68, 0x83, 0xa5, 0xe5, 0x46, 0x87, 0x53, 0x6c, 0xd8, 0x85, 0xdb, 0x90, 0x3a, 0x38, 0x58, 0x2d, 0x6c, 0xb4, 0xc1, 0x6a, 0x61, 0xa3, 0xc3, 0x29, 0x76, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0xd8, 0x60, 0x60, 0x80, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x28, 0x88, 0x0e, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0x02, 0x5d, 0xee, 0x78, 0x7c, 0x1c, 0x3a, 0x0e, 0x1d, 0x1a, 0xb5, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x57, 0x10, 0x2c, 0x6e, 0x98, 0xce, 0x16, 0x07, 0xc1, 0x0a, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x24, 0x03, 0xce, 0xee, 0x72, 0xc7, 0xe3, 0x43, 0x1a, 0xee, 0x30, 0x2e, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x15, 0x04, 0x8b, 0x07, 0xe1, 0xa9, 0xba, 0x38, 0x08, 0x16, 0x76, 0x83, 0x60, 0xd8, 0x5f, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x07, 0x8b, 0x24, 0x8e, 0x0e, 0x69, 0xb8, 0x41, 0xb0, 0xc1, 0x3a, 0x9a, 0xa3, 0x43, 0x07, 0x8d, 0x61, 0x37, 0xe4, 0xb1, 0xd6, 0xd0, 0x2c, 0x72, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x19, 0x50, 0xbd, 0xff, 0xf7, 0x1d, 0x92, 0x4b, 0x87, 0x0e, 0x1a, 0xc3, 0x2e, 0xdc, 0xe2, 0xe1, 0x8b, 0x9a, 0x43, 0x34, 0x57, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x15, 0x4d, 0x47, 0x1b, 0xac, 0x68, 0x3a, 0x3a, 0x9c, 0x62, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc9, 0x40, 0x91, 0x3b, 0x1e, 0x1f, 0x3a, 0x68, 0x0c, 0xbb, 0x70, 0x8b, 0x07, 0x45, 0x45, 0xe6, 0x21, 0x9a, 0x2b, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0xda, 0xb0, 0xa3, 0x0d, 0xd6, 0x86, 0x1d, 0x1d, 0x4e, 0xb1, 0x83, 0x95, 0x58, 0x47, 0xc3, 0x2e, 0xdc, 0x62, 0xe0, 0x93, 0x89, 0xd5, 0x9d, 0x87, 0x68, 0xae, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x2b, 0xe2, 0x8e, 0x36, 0x58, 0x11, 0x77, 0x74, 0x38, 0xc5, 0x16, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x48, 0x06, 0x92, 0x7a, 0xc7, 0xf3, 0x43, 0x53, 0xa0, 0x41, 0xb0, 0xc1, 0x3a, 0x9a, 0xa3, 0x43, 0x0b, 0xb0, 0x61, 0x17, 0x6e, 0x31, 0xf0, 0xcb, 0xe4, 0xde, 0xe4, 0x43, 0x34, 0x57, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x85, 0x8b, 0x47, 0x1b, 0x2c, 0x5c, 0x3c, 0x3a, 0x9c, 0x62, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x0e, 0x52, 0x99, 0xbd, 0x0f, 0x1d, 0x34, 0x86, 0xdd, 0x60, 0xcd, 0xc8, 0xcf, 0x0a, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xb0, 0x7e, 0xe4, 0x67, 0x83, 0xf5, 0x23, 0x3f, 0x87, 0x53, 0x6c, 0x41, 0xb0, 0xc1, 0x92, 0x90, 0xa3, 0x43, 0x53, 0xa0, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x64, 0x40, 0xf0, 0xcb, 0x1d, 0x8f, 0x0f, 0x2d, 0xc0, 0x86, 0x5d, 0xb8, 0xc5, 0xc3, 0xf3, 0x24, 0x87, 0x68, 0xae, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x4b, 0x70, 0x8f, 0x36, 0x58, 0x82, 0x7b, 0x74, 0x38, 0xc5, 0x16, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x48, 0x06, 0x1c, 0xff, 0xe5, 0x8e, 0xc7, 0x87, 0xa6, 0x40, 0x07, 0x0b, 0x0b, 0x8f, 0x86, 0x5d, 0xb8, 0xc5, 0xc0, 0x37, 0x4b, 0xa3, 0x9b, 0x0f, 0xd1, 0x5c, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x96, 0x3e, 0x1f, 0x6d, 0xb0, 0xf4, 0xf9, 0xe8, 0x70, 0x8a, 0x2d, 0x08, 0x36, 0x58, 0x47, 0x73, 0x74, 0x68, 0x0a, 0x34, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x90, 0x0c, 0x48, 0x74, 0x97, 0x3b, 0x1e, 0x1f, 0x5a, 0x80, 0x0d, 0xbb, 0x70, 0x8b, 0x87, 0x67, 0xf1, 0x0e, 0xd1, 0x5c, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0xd6, 0xaa, 0x1f, 0x6d, 0xb0, 0x56, 0xfd, 0xe8, 0x70, 0x8a, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x1b, 0x0c, 0x0c, 0xd0, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x80, 0xd5, 0xff, 0x72, 0xc7, 0xe3, 0xe3, 0xd0, 0xa1, 0x83, 0xc6, 0xb0, 0x1b, 0x94, 0xb2, 0x7e, 0x6b, 0x50, 0x3a, 0xfb, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x1b, 0x8c, 0x4a, 0xd2, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0xa2, 0xfd, 0xbf, 0xef, 0x90, 0x5c, 0x1a, 0x7e, 0xe3, 0xf9, 0xc1, 0x8a, 0x32, 0xa3, 0xe3, 0xd0, 0xa1, 0x83, 0xc6, 0xb0, 0x0b, 0xb7, 0x18, 0xf8, 0x6c, 0x69, 0x6d, 0xe2, 0x21, 0x9a, 0x2b, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0x3a, 0x11, 0xa4, 0x0d, 0xd6, 0x89, 0x20, 0x1d, 0x4e, 0xb1, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x07, 0x8b, 0x2c, 0x90, 0x0e, 0x1d, 0x34, 0x86, 0x5d, 0xb8, 0xc5, 0xc0, 0x67, 0x7b, 0x9b, 0xa3, 0x0f, 0xd1, 0x5c, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x96, 0xdc, 0x20, 0x6d, 0xb0, 0xe4, 0x06, 0xe9, 0x70, 0x8a, 0x1d, 0x2c, 0xd0, 0x39, 0x1a, 0x76, 0xe1, 0x16, 0x0f, 0x6f, 0xdc, 0x1d, 0xa2, 0xb9, 0xc2, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x2c, 0x3a, 0x42, 0xda, 0x60, 0xd1, 0x11, 0xd2, 0xe1, 0x14, 0x5b, 0x10, 0x6c, 0xb0, 0xfe, 0x05, 0xe9, 0xd0, 0x14, 0xe8, 0x20, 0x28, 0xbd, 0x87, 0x5d, 0xb8, 0xc5, 0xc3, 0x8f, 0x30, 0x87, 0x68, 0xae, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x4b, 0xb5, 0x90, 0x36, 0x58, 0xaa, 0x85, 0x74, 0x38, 0xc5, 0x0e, 0x16, 0x4b, 0x21, 0x0d, 0xbb, 0x70, 0x8b, 0x81, 0x4f, 0x57, 0xc6, 0xc6, 0x1e, 0xa2, 0xb9, 0xc2, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0xac, 0x4d, 0x43, 0xda, 0x60, 0x6d, 0x1a, 0xd2, 0xe1, 0x14, 0x1b, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x36, 0x18, 0x18, 0xa0, 0x07, 0x4b, 0x1b, 0x8e, 0x0e, 0x1d, 0x34, 0x86, 0x5d, 0xb8, 0xc5, 0xc0, 0xa7, 0xab, 0x73, 0x2b, 0x0f, 0xd1, 0x5c, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x96, 0x04, 0x22, 0x6d, 0xb0, 0x24, 0x10, 0xe9, 0x70, 0x8a, 0x0d, 0xbb, 0xc1, 0xe8, 0xc5, 0x5a, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x19, 0xb0, 0xf8, 0x5f, 0xee, 0x78, 0x7c, 0xe8, 0xa0, 0x71, 0xb0, 0xe0, 0x05, 0x69, 0xd8, 0x85, 0x5b, 0x3c, 0xbc, 0xad, 0x73, 0x88, 0xe6, 0x0a, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xb0, 0x8c, 0x13, 0x69, 0x83, 0x65, 0x9c, 0x48, 0x87, 0x53, 0x6c, 0x10, 0x6c, 0xb0, 0x38, 0xfc, 0xe8, 0xd0, 0x41, 0x63, 0xd8, 0x85, 0x5b, 0x3c, 0x48, 0xd0, 0xda, 0x3c, 0x44, 0x73, 0x85, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x58, 0xde, 0x8a, 0xb4, 0xc1, 0xf2, 0x56, 0xa4, 0xc3, 0x29, 0x76, 0xb0, 0xc8, 0x0e, 0x69, 0xd8, 0x85, 0x5b, 0x0c, 0x7c, 0x3c, 0xb9, 0xb0, 0xfc, 0x10, 0xcd, 0x15, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x60, 0x59, 0x2f, 0xd2, 0x06, 0xcb, 0x7a, 0x91, 0x0e, 0xa7, 0xd8, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0xe1, 0x17, 0x24, 0x03, 0x82, 0x5d, 0xee, 0x78, 0x3c, 0x48, 0x06, 0xbf, 0x8e, 0xc7, 0x87, 0x0e, 0x1a, 0xc3, 0x2e, 0xdc, 0xe2, 0xe1, 0xe1, 0xfc, 0x43, 0x34, 0x57, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x15, 0xd7, 0x48, 0x1b, 0xac, 0xb8, 0x46, 0x3a, 0x9c, 0x62, 0x0b, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0x92, 0x81, 0xf3, 0xeb, 0xb0, 0x42, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x3d, 0x58, 0x49, 0x81, 0x74, 0x1c, 0x3a, 0x34, 0x05, 0x1a, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x48, 0x06, 0xbc, 0xff, 0x5d, 0xee, 0x78, 0x7c, 0x68, 0x01, 0x36, 0xec, 0xc2, 0x2d, 0x1e, 0x94, 0x65, 0xd8, 0x87, 0x68, 0xae, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0xab, 0xf7, 0x91, 0x36, 0x58, 0xbd, 0x8f, 0x74, 0x38, 0xc5, 0x16, 0x04, 0x1b, 0xac, 0x95, 0x47, 0x3a, 0x34, 0x05, 0x5a, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x19, 0x58, 0x9e, 0x3b, 0x1e, 0x1f, 0x3a, 0x11, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x1b, 0x8c, 0xb5, 0xcf, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x2b, 0x29, 0x90, 0x86, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0x2c, 0x7f, 0x97, 0x3b, 0x1e, 0x1f, 0x87, 0x0e, 0xdd, 0x8f, 0x86, 0x5d, 0xb8, 0xc5, 0xc3, 0x77, 0x2d, 0x87, 0x68, 0xae, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x4b, 0x51, 0x92, 0x36, 0x58, 0x8a, 0x92, 0x74, 0x38, 0xc5, 0x36, 0x58, 0xc5, 0x7d, 0x74, 0xb0, 0xb0, 0xf0, 0x68, 0xd8, 0x85, 0x5b, 0x3c, 0x28, 0x59, 0xd8, 0x0f, 0xd1, 0x5c, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x96, 0xe7, 0x24, 0x6d, 0xb0, 0x3c, 0x27, 0xe9, 0x70, 0x8a, 0x2d, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x6c, 0x50, 0x10, 0x1d, 0x1c, 0xac, 0x52, 0x47, 0x3a, 0x34, 0x05, 0x1a, 0x04, 0x1b, 0x2c, 0xa9, 0x48, 0x3a, 0xb4, 0x00, 0x1b, 0x76, 0xe1, 0x16, 0x0f, 0xce, 0x83, 0x1d, 0x87, 0x68, 0xae, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x8b, 0xaa, 0x92, 0x36, 0x58, 0x54, 0x95, 0x74, 0x38, 0xc5, 0x0e, 0x16, 0xe8, 0x1c, 0x0d, 0xbb, 0x70, 0x8b, 0x07, 0x07, 0x2c, 0xba, 0x43, 0x34, 0x57, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0xb5, 0x64, 0x49, 0x1b, 0xac, 0x25, 0x4b, 0x3a, 0x9c, 0x62, 0x1b, 0xac, 0xe2, 0x3e, 0x3a, 0x58, 0xf4, 0x94, 0x34, 0xec, 0xc2, 0x2d, 0x1e, 0xbe, 0xc2, 0x39, 0x44, 0x73, 0x85, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x58, 0x65, 0x97, 0xb4, 0xc1, 0x2a, 0xbb, 0xa4, 0xc3, 0x29, 0x76, 0xb0, 0x40, 0xe7, 0x68, 0xd8, 0x85, 0x5b, 0x0c, 0x7c, 0x31, 0xb9, 0xb9, 0xf3, 0x10, 0xcd, 0x15, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x60, 0x59, 0x61, 0xd2, 0x06, 0xcb, 0x0a, 0x93, 0x0e, 0xa7, 0xd8, 0x06, 0x8b, 0x0f, 0x92, 0x0e, 0x16, 0x16, 0x1e, 0x0d, 0xbb, 0x70, 0x8b, 0x07, 0x85, 0x72, 0xe7, 0x21, 0x9a, 0x2b, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0xda, 0xcb, 0xa4, 0x0d, 0xd6, 0x5e, 0x26, 0x1d, 0x4e, 0xb1, 0x83, 0xf5, 0x91, 0x49, 0xc3, 0x2e, 0xdc, 0xe2, 0xe1, 0x17, 0xa5, 0x43, 0x34, 0x57, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x15, 0xa7, 0x49, 0x1b, 0xac, 0x38, 0x4d, 0x3a, 0x9c, 0x62, 0x07, 0xeb, 0x23, 0x93, 0x86, 0x5d, 0xb8, 0xc5, 0x83, 0x32, 0xef, 0xf2, 0x10, 0xcd, 0x15, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x60, 0x89, 0x6d, 0xd2, 0x06, 0x4b, 0x6c, 0x93, 0x0e, 0xa7, 0xd8, 0xc1, 0xda, 0xa2, 0xa4, 0x61, 0x17, 0x6e, 0xf1, 0x20, 0xe4, 0xd7, 0x0e, 0xd1, 0x5c, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x16, 0x16, 0x27, 0x6d, 0xb0, 0xb0, 0x38, 0xe9, 0x70, 0x8a, 0x1d, 0x2c, 0xd0, 0x39, 0x1a, 0x76, 0xe1, 0x16, 0x03, 0x7f, 0x8c, 0x6d, 0x4c, 0x3c, 0x44, 0x73, 0x85, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x58, 0x4c, 0x9d, 0xb4, 0xc1, 0x62, 0xea, 0xa4, 0xc3, 0x29, 0x76, 0xb0, 0x84, 0x26, 0x69, 0xd8, 0x85, 0x5b, 0x0c, 0xfc, 0x31, 0xb6, 0x35, 0xfa, 0x10, 0xcd, 0x15, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x60, 0x39, 0x79, 0xd2, 0x06, 0xcb, 0xc9, 0x93, 0x0e, 0xa7, 0xd8, 0x06, 0xab, 0xb8, 0x8f, 0x16, 0x04, 0x1b, 0xac, 0xa3, 0x39, 0x3a, 0x74, 0x22, 0x5a, 0x10, 0x6c, 0xb0, 0x8e, 0xe6, 0xe8, 0x60, 0x09, 0xff, 0xcf, 0x20, 0xd8, 0x60, 0x1d, 0xcd, 0xd1, 0x41, 0x11, 0x3c, 0x38, 0xec, 0xc2, 0x2d, 0x1e, 0x14, 0x86, 0xaa, 0x87, 0x68, 0xae, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0xab, 0x07, 0x94, 0x36, 0x58, 0x3d, 0xa0, 0x74, 0x38, 0xc5, 0x0e, 0x96, 0xd0, 0x24, 0x0d, 0xbb, 0x70, 0x8b, 0x07, 0xe7, 0xfc, 0xa5, 0x43, 0x34, 0x57, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x35, 0x13, 0x4a, 0x1b, 0xac, 0x99, 0x50, 0x3a, 0x9c, 0x62, 0x1b, 0xac, 0xe2, 0x3e, 0xda, 0x60, 0xf1, 0x7c, 0xd2, 0x20, 0xd8, 0x60, 0x1d, 0xcd, 0xd1, 0xa1, 0xfb, 0xd1, 0xb0, 0x0b, 0xb7, 0x78, 0x70, 0x74, 0x1d, 0x3c, 0x44, 0x73, 0x85, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x58, 0x97, 0xa2, 0xb4, 0xc1, 0xba, 0x14, 0xa5, 0xc3, 0x29, 0x76, 0xb0, 0xc8, 0x0e, 0x69, 0xd8, 0x85, 0x5b, 0x3c, 0xfc, 0xe2, 0x72, 0x88, 0xe6, 0x0a, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xb0, 0x1c, 0x47, 0x69, 0x83, 0xe5, 0x38, 0x4a, 0x87, 0x53, 0xec, 0x60, 0x91, 0x1d, 0xd2, 0xb0, 0x0b, 0xb7, 0x18, 0xf8, 0x63, 0x6e, 0x63, 0xe2, 0x21, 0x9a, 0x2b, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0xfa, 0x23, 0xa5, 0x0d, 0xd6, 0x1f, 0x29, 0x1d, 0x4e, 0xb1, 0x05, 0xc1, 0x06, 0x8b, 0xc3, 0x8f, 0x0e, 0x4d, 0x81, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x0d, 0x06, 0x06, 0xe8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x51, 0x49, 0x3a, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0xcb, 0xc7, 0x8f, 0x0e, 0x56, 0x42, 0x1c, 0x1d, 0x87, 0x8e, 0x43, 0x87, 0x16, 0x60, 0xc3, 0x2e, 0xdc, 0xe2, 0xc1, 0xa9, 0xe1, 0xe8, 0x10, 0xcd, 0x15, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x60, 0x05, 0x9d, 0xd2, 0x06, 0x2b, 0xe8, 0x94, 0x0e, 0xa7, 0xd8, 0xc1, 0x12, 0x9a, 0xa4, 0x61, 0x17, 0x6e, 0xf1, 0xe0, 0xc4, 0x7e, 0x73, 0x88, 0xe6, 0x0a, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xb0, 0x70, 0x50, 0x69, 0x83, 0x85, 0x83, 0x4a, 0x87, 0x53, 0xec, 0x60, 0x09, 0x4d, 0xd2, 0xb0, 0x0b, 0xb7, 0x78, 0x78, 0xb7, 0xe7, 0x10, 0xcd, 0x15, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x60, 0xbd, 0xa4, 0xd2, 0x06, 0xeb, 0x25, 0x95, 0x0e, 0xa7, 0xd8, 0x06, 0xab, 0xb8, 0x8f, 0x06, 0xc1, 0x06, 0x6b, 0xee, 0x90, 0x0e, 0x2d, 0xc0, 0x86, 0x5d, 0xb8, 0xc5, 0x83, 0x24, 0xbc, 0xa4, 0x43, 0x34, 0x57, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0xa5, 0xa6, 0x4a, 0x1b, 0x2c, 0x35, 0x55, 0x3a, 0x9c, 0x62, 0x1b, 0x2c, 0xa5, 0x52, 0xda, 0x60, 0xf1, 0x7c, 0xd2, 0x20, 0xd8, 0x60, 0x85, 0x96, 0xd2, 0xa1, 0xfb, 0xd1, 0xb0, 0x0b, 0xb7, 0x18, 0xf8, 0x63, 0x6e, 0x6b, 0xf4, 0x21, 0x9a, 0x2b, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0x7a, 0x5e, 0xa5, 0x0d, 0xd6, 0xf3, 0x2a, 0x1d, 0x4e, 0xb1, 0x83, 0x75, 0xf1, 0x49, 0xc3, 0x2e, 0xdc, 0xe2, 0x41, 0xd1, 0x69, 0x7c, 0x88, 0xe6, 0x0a, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xb0, 0xa2, 0x59, 0x69, 0x83, 0x15, 0xcd, 0x4a, 0x87, 0x53, 0xec, 0x60, 0xc5, 0x87, 0xd2, 0xb0, 0x0b, 0xb7, 0x78, 0x50, 0x96, 0xbc, 0x1f, 0xa2, 0xb9, 0xc2, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0xac, 0xe3, 0x56, 0xda, 0x60, 0x1d, 0xb7, 0xd2, 0xe1, 0x14, 0xdb, 0x60, 0x29, 0x95, 0xd2, 0x06, 0x8b, 0xe7, 0x93, 0x06, 0xc1, 0x06, 0x6b, 0xee, 0x90, 0x0e, 0xdd, 0x8f, 0x86, 0x5d, 0xb8, 0xc5, 0xc3, 0x25, 0x75, 0x88, 0xe6, 0x0a, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xb0, 0x54, 0x5e, 0x69, 0x83, 0xa5, 0xf2, 0x4a, 0x87, 0x53, 0xec, 0x60, 0x21, 0x95, 0xd2, 0xb0, 0x0b, 0xb7, 0x18, 0xf8, 0x64, 0x74, 0x6b, 0xf4, 0x21, 0x9a, 0x2b, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0xba, 0x80, 0xa5, 0x0d, 0xd6, 0x05, 0x2c, 0x1d, 0x4e, 0xb1, 0x83, 0xf5, 0x91, 0x49, 0xc3, 0x2e, 0xdc, 0xe2, 0xe1, 0xe3, 0xa8, 0x43, 0x34, 0x57, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x95, 0x11, 0x4b, 0x1b, 0xac, 0x8c, 0x58, 0x3a, 0x9c, 0x62, 0x07, 0x0b, 0x74, 0x8e, 0x86, 0x5d, 0xb8, 0xc5, 0xc0, 0x27, 0xa3, 0xa3, 0x93, 0x0f, 0xd1, 0x5c, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x96, 0x82, 0x2c, 0x6d, 0xb0, 0x14, 0x64, 0xe9, 0x70, 0x8a, 0x1d, 0x2c, 0xa1, 0x49, 0x1a, 0x76, 0xe1, 0x16, 0x0f, 0xff, 0xe6, 0x1c, 0xa2, 0xb9, 0xc2, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x2c, 0x86, 0x59, 0xda, 0x60, 0x31, 0xcc, 0xd2, 0xe1, 0x14, 0x3b, 0x58, 0x42, 0x93, 0x34, 0xec, 0xc2, 0x2d, 0x06, 0x3e, 0x19, 0xdd, 0x1d, 0x7d, 0x88, 0xe6, 0x0a, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xb0, 0xfa, 0x67, 0x69, 0x83, 0xd5, 0x3f, 0x4b, 0x87, 0x53, 0xec, 0x60, 0x81, 0xce, 0xd1, 0xb0, 0x0b, 0xb7, 0x78, 0x90, 0xb4, 0x60, 0x74, 0x88, 0xe6, 0x0a, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xb0, 0xfe, 0x69, 0x69, 0x83, 0xf5, 0x4f, 0x4b, 0x87, 0x53, 0xec, 0x60, 0x81, 0xce, 0xd1, 0xb0, 0x0b, 0xb7, 0x78, 0x70, 0x6c, 0x73, 0x3c, 0x44, 0x73, 0x85, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x58, 0xf7, 0xb5, 0xb4, 0xc1, 0xba, 0xaf, 0xa5, 0xc3, 0x29, 0x76, 0xb0, 0x84, 0x26, 0x69, 0xd8, 0x85, 0x5b, 0x3c, 0x7c, 0xfd, 0x72, 0x88, 0xe6, 0x0a, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xb0, 0xdc, 0x6d, 0x69, 0x83, 0xe5, 0x6e, 0x4b, 0x87, 0x53, 0xec, 0x60, 0x09, 0x4d, 0xd2, 0xb0, 0x0b, 0xb7, 0x78, 0xf8, 0x8b, 0xe6, 0x10, 0xcd, 0x15, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x60, 0x7d, 0xdf, 0xd2, 0x06, 0xeb, 0xfb, 0x96, 0x0e, 0xa7, 0xd8, 0xc1, 0xfa, 0xc8, 0xa4, 0x61, 0x17, 0x6e, 0x31, 0xf0, 0xd7, 0xe8, 0xe0, 0xda, 0x43, 0x34, 0x57, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x05, 0x8d, 0x4b, 0x1b, 0x2c, 0x68, 0x5c, 0x3a, 0x9c, 0x62, 0x07, 0x0b, 0x74, 0x8e, 0x86, 0x5d, 0xb8, 0xc5, 0xc0, 0x5f, 0xa3, 0x9b, 0x3b, 0x0f, 0xd1, 0x5c, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x96, 0x74, 0x2e, 0x6d, 0xb0, 0xa4, 0x73, 0xe9, 0x70, 0x8a, 0x1d, 0x2c, 0xd0, 0x39, 0x1a, 0x76, 0xe1, 0x16, 0x0f, 0x9f, 0xbb, 0x1c, 0xa2, 0xb9, 0xc2, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x2c, 0x6a, 0x5d, 0xda, 0x60, 0x51, 0xeb, 0xd2, 0xe1, 0x14, 0x5b, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x19, 0x78, 0x7f, 0xee, 0x78, 0x7c, 0x68, 0x0a, 0x74, 0xb0, 0xb0, 0xf0, 0x68, 0xd8, 0x85, 0x5b, 0x3c, 0x48, 0xbd, 0x28, 0x3e, 0x44, 0x73, 0x85, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x58, 0x46, 0xbc, 0xb4, 0xc1, 0x32, 0xe2, 0xa5, 0xc3, 0x29, 0x76, 0xb0, 0x40, 0xe7, 0x68, 0xd8, 0x85, 0x5b, 0x3c, 0x28, 0x04, 0x53, 0x0f, 0xd1, 0x5c, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x96, 0x4f, 0x2f, 0x6d, 0xb0, 0x7c, 0x7a, 0xe9, 0x70, 0x8a, 0x0d, 0x82, 0x0d, 0xd6, 0xca, 0x23, 0x1d, 0x3a, 0x68, 0x0c, 0xbb, 0x70, 0x8b, 0x87, 0x8f, 0xda, 0x0f, 0xd1, 0x5c, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0xd6, 0x96, 0x2f, 0x6d, 0xb0, 0xb6, 0x7c, 0xe9, 0x70, 0x8a, 0x1d, 0xac, 0xfd, 0x5e, 0x1a, 0x76, 0xe1, 0x16, 0x03, 0x7f, 0xee, 0x4c, 0x4c, 0x3e, 0x44, 0x73, 0x85, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x58, 0x4c, 0xbf, 0xb4, 0xc1, 0x62, 0xfa, 0xa5, 0xc3, 0x29, 0x76, 0xb0, 0x84, 0x26, 0x69, 0xd8, 0x85, 0x5b, 0x3c, 0xbc, 0x65, 0x77, 0x88, 0xe6, 0x0a, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xb0, 0x9c, 0x80, 0x69, 0x83, 0xe5, 0x04, 0x4c, 0x87, 0x53, 0xec, 0x60, 0x09, 0x4d, 0xd2, 0xb0, 0x0b, 0xb7, 0x78, 0x50, 0x76, 0xc9, 0x1e, 0xa2, 0xb9, 0xc2, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0xac, 0x9f, 0x60, 0xda, 0x60, 0xfd, 0x04, 0xd3, 0xe1, 0x14, 0x5b, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x19, 0xb0, 0x5e, 0x5d, 0xee, 0x78, 0x7c, 0x68, 0x0a, 0xb4, 0xc1, 0xe2, 0xf9, 0xa4, 0x05, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x92, 0x01, 0x63, 0x5f, 0xee, 0x78, 0x7c, 0xb0, 0x84, 0xff, 0xe7, 0x60, 0x5d, 0x7f, 0xd2, 0xb0, 0x0b, 0xb7, 0x78, 0x78, 0x7c, 0xe4, 0x10, 0xcd, 0x15, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x60, 0xbd, 0x0d, 0xd3, 0x06, 0xeb, 0x6d, 0x98, 0x0e, 0xa7, 0xd8, 0x06, 0xcb, 0x3f, 0x98, 0x0e, 0x16, 0x16, 0x1e, 0x0d, 0xbb, 0x70, 0x8b, 0x81, 0x3f, 0x77, 0x76, 0xc6, 0x1e, 0xa2, 0xb9, 0xc2, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0xac, 0x41, 0x62, 0xda, 0x60, 0x0d, 0x12, 0xd3, 0xe1, 0x14, 0x5b, 0xd8, 0x0d, 0x8a, 0x93, 0xc1, 0x15, 0x04, 0x1b, 0xac, 0x7f, 0x41, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x1e, 0x0c, 0xa2, 0x95, 0xe3, 0xd0, 0x20, 0xd8, 0x60, 0x1d, 0xcd, 0xd1, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0x60, 0xf0, 0xc7, 0x1c, 0x87, 0x0e, 0x96, 0x4b, 0x21, 0x1d, 0x2c, 0x2c, 0x3c, 0x1a, 0x76, 0xe1, 0x16, 0x0f, 0xce, 0x85, 0x0b, 0x87, 0x68, 0xae, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x8b, 0xdd, 0x98, 0x36, 0x58, 0xec, 0xc6, 0x74, 0x38, 0xc5, 0x0e, 0x16, 0x53, 0x31, 0x0d, 0xbb, 0x70, 0x8b, 0x81, 0x3f, 0x77, 0x26, 0x36, 0x1e, 0xa2, 0xb9, 0xc2, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0xac, 0xf1, 0x63, 0xda, 0x60, 0x8d, 0x1f, 0xd3, 0xe1, 0x14, 0xdb, 0x60, 0xb9, 0x14, 0xd2, 0xc1, 0xc2, 0xc2, 0xa3, 0x61, 0x17, 0x6e, 0x31, 0xf0, 0xe7, 0xce, 0xd8, 0xe6, 0x43, 0x34, 0x57, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x85, 0x90, 0x4c, 0x1b, 0x2c, 0x84, 0x64, 0x3a, 0x9c, 0x62, 0x0b, 0x82, 0x0d, 0xd6, 0xf8, 0x17, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xf8, 0x21, 0x87, 0x1e, 0x42, 0xc7, 0xa1, 0x83, 0x85, 0x85, 0x47, 0xc3, 0x2e, 0xdc, 0x62, 0xe0, 0xcf, 0x9d, 0xc1, 0xb5, 0x87, 0x68, 0xae, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x2b, 0x56, 0x99, 0x36, 0x58, 0xb1, 0xca, 0x74, 0x38, 0xc5, 0x16, 0x04, 0x1b, 0xac, 0xf1, 0x2f, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xb0, 0xf0, 0x50, 0xe6, 0xd0, 0x43, 0xe8, 0x38, 0x74, 0xb0, 0x28, 0x44, 0x69, 0xd8, 0x85, 0x5b, 0x0c, 0xfc, 0xb9, 0x33, 0xba, 0xf9, 0x10, 0xcd, 0x15, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x60, 0x79, 0x31, 0xd3, 0x06, 0xcb, 0x8b, 0x99, 0x0e, 0xa7, 0xd8, 0xc1, 0x12, 0x9a, 0xa4, 0x61, 0x17, 0x6e, 0x31, 0xf0, 0xe7, 0xce, 0xee, 0xe8, 0x43, 0x34, 0x57, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x05, 0xd6, 0x4c, 0x1b, 0x2c, 0xb0, 0x66, 0x3a, 0x9c, 0x62, 0x1b, 0x2c, 0xbe, 0x65, 0x3a, 0x58, 0x3a, 0x9f, 0x34, 0xec, 0xc2, 0x2d, 0x06, 0xfe, 0xdc, 0x99, 0x1e, 0x7c, 0x88, 0xe6, 0x0a, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xb0, 0x0a, 0x9d, 0x69, 0x83, 0x55, 0xe8, 0x4c, 0x87, 0x53, 0xec, 0x60, 0x09, 0x4d, 0xd2, 0xb0, 0x0b, 0xb7, 0x18, 0xf8, 0x6d, 0x63, 0x74, 0xf3, 0x21, 0x9a, 0x2b, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0x3a, 0x7c, 0xa6, 0x0d, 0xd6, 0xe1, 0x33, 0x1d, 0x4e, 0xb1, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0xc3, 0x6f, 0xb0, 0xb8, 0x19, 0xe9, 0xa0, 0x64, 0x68, 0x3a, 0x74, 0xd0, 0x18, 0x76, 0xe1, 0x16, 0x0f, 0x92, 0x0c, 0x08, 0x0f, 0xd1, 0x5c, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x16, 0x3f, 0x34, 0x6d, 0xb0, 0xf8, 0xa1, 0xe9, 0x70, 0x8a, 0x1d, 0xac, 0xf3, 0x54, 0x1a, 0x76, 0xe1, 0x16, 0x03, 0xbf, 0x6d, 0xcc, 0x6c, 0x3e, 0x44, 0x73, 0x85, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x58, 0xf4, 0xd1, 0xb4, 0xc1, 0xa2, 0x8f, 0xa6, 0xc3, 0x29, 0x76, 0xb0, 0x40, 0xe7, 0x68, 0xd8, 0x85, 0x5b, 0x0c, 0xfc, 0xb6, 0xb1, 0x33, 0xf6, 0x10, 0xcd, 0x15, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x60, 0xd9, 0x4b, 0xd3, 0x06, 0xcb, 0x5e, 0x9a, 0x0e, 0xa7, 0xd8, 0x06, 0x8b, 0x0f, 0x92, 0x0e, 0x96, 0xce, 0x27, 0x0d, 0xbb, 0x70, 0x8b, 0x81, 0xdf, 0x36, 0x36, 0x77, 0x1e, 0xa2, 0xb9, 0xc2, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0xac, 0x0d, 0x6a, 0xda, 0x60, 0x6d, 0x50, 0xd3, 0xe1, 0x14, 0x3b, 0x58, 0xe7, 0xa9, 0x34, 0xec, 0xc2, 0x2d, 0x06, 0x7e, 0xdb, 0x58, 0xdb, 0x78, 0x88, 0xe6, 0x0a, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xb0, 0x3a, 0xaa, 0x69, 0x83, 0xd5, 0x51, 0x4d, 0x87, 0x53, 0xec, 0x60, 0x7d, 0x64, 0xd2, 0xb0, 0x0b, 0xb7, 0x78, 0x50, 0xda, 0x5b, 0x1e, 0xa2, 0xb9, 0xc2, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0xac, 0x0f, 0x6b, 0xda, 0x60, 0x7d, 0x58, 0xd3, 0xe1, 0x14, 0x3b, 0x58, 0x1f, 0x99, 0x34, 0xec, 0xc2, 0x2d, 0x06, 0x3e, 0xdd, 0xdc, 0x18, 0x7b, 0x88, 0xe6, 0x0a, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xb0, 0x2a, 0xae, 0x69, 0x83, 0x55, 0x71, 0x4d, 0x87, 0x53, 0x6c, 0x41, 0xb0, 0xc1, 0x0a, 0x2d, 0xa5, 0x43, 0x53, 0xa0, 0x83, 0x85, 0x85, 0x47, 0xc3, 0x2e, 0xdc, 0xe2, 0x41, 0x41, 0x1a, 0x7b, 0x88, 0xe6, 0x0a, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xb0, 0xc2, 0xb0, 0x69, 0x83, 0x15, 0x86, 0x4d, 0x87, 0x53, 0x6c, 0x83, 0xe5, 0xb8, 0x4b, 0x07, 0x8b, 0x42, 0x94, 0x86, 0x5d, 0xb8, 0xc5, 0xc0, 0xa7, 0x9b, 0x6b, 0x1b, 0x0f, 0xd1, 0x5c, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x96, 0x5e, 0x36, 0x6d, 0xb0, 0xf4, 0xb2, 0xe9, 0x70, 0x8a, 0x1d, 0x2c, 0x8f, 0x6c, 0x1a, 0x76, 0xe1, 0x16, 0x0f, 0x8a, 0x3e, 0xdd, 0x43, 0x34, 0x57, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0xc5, 0xa7, 0x4d, 0x1b, 0x2c, 0x3e, 0x6d, 0x3a, 0x9c, 0x62, 0x1b, 0x2c, 0xa5, 0x52, 0x3a, 0x58, 0x14, 0xa2, 0x34, 0xec, 0xc2, 0x2d, 0x1e, 0x1c, 0xc7, 0x26, 0x0e, 0xd1, 0x5c, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x56, 0xe5, 0x36, 0x6d, 0xb0, 0x2a, 0xb7, 0xe9, 0x70, 0x8a, 0x6d, 0xb0, 0x94, 0x4a, 0xe9, 0x60, 0xe9, 0x7c, 0xd2, 0xb0, 0x0b, 0xb7, 0x78, 0x78, 0x50, 0xf2, 0x10, 0xcd, 0x15, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x60, 0xbd, 0x72, 0xd3, 0x06, 0xeb, 0x95, 0x9b, 0x0e, 0xa7, 0xd8, 0xc1, 0x12, 0x9a, 0xa4, 0x61, 0x17, 0x6e, 0xf1, 0xe0, 0x68, 0xc3, 0x77, 0x88, 0xe6, 0x0a, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xb0, 0x40, 0xbb, 0x69, 0x83, 0x05, 0xda, 0x4d, 0x87, 0x53, 0xec, 0x60, 0x09, 0x4d, 0xd2, 0xb0, 0x0b, 0xb7, 0x78, 0x50, 0x4a, 0x88, 0x1f, 0xa2, 0xb9, 0xc2, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0xac, 0x4b, 0x6f, 0xda, 0x60, 0x5d, 0x7a, 0xd3, 0xe1, 0x14, 0x3b, 0x58, 0x42, 0x93, 0x34, 0xec, 0xc2, 0x2d, 0x1e, 0x14, 0x1d, 0xb4, 0x87, 0x68, 0xae, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0xab, 0xf1, 0x9b, 0x36, 0x58, 0x8d, 0xdf, 0x74, 0x38, 0xc5, 0x36, 0x58, 0x8e, 0xbb, 0xb4, 0x20, 0xd8, 0x60, 0x71, 0xf8, 0xd1, 0xa1, 0x13, 0xd1, 0xc1, 0x22, 0xfc, 0xa4, 0x61, 0x17, 0x6e, 0xf1, 0xf0, 0x89, 0xcd, 0x21, 0x9a, 0x2b, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0x82, 0x07, 0xa7, 0x0d, 0x16, 0x3c, 0x38, 0x1d, 0x4e, 0xb1, 0x83, 0x25, 0x34, 0x49, 0xc3, 0x2e, 0xdc, 0x62, 0xe0, 0xd3, 0xcd, 0xcd, 0x9d, 0x87, 0x68, 0xae, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x2b, 0x3c, 0x9c, 0x36, 0x58, 0xe1, 0xe1, 0x74, 0x38, 0xc5, 0x0e, 0x16, 0xd9, 0x21, 0x0d, 0xbb, 0x70, 0x8b, 0x81, 0x4f, 0x37, 0x47, 0x27, 0x1f, 0xa2, 0xb9, 0xc2, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0xac, 0x71, 0x71, 0xda, 0x60, 0x8d, 0x8b, 0xd3, 0xe1, 0x14, 0x5b, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0xd8, 0x60, 0x54, 0x92, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x58, 0x49, 0x81, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x41, 0x74, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xc1, 0x6a, 0x7a, 0xa4, 0xe3, 0xd0, 0x71, 0xe8, 0xd0, 0x14, 0xe8, 0x60, 0x51, 0x88, 0xd2, 0xb0, 0x0b, 0xb7, 0x18, 0xf8, 0x74, 0x73, 0x63, 0xed, 0x21, 0x9a, 0x2b, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0xfa, 0x2b, 0xa7, 0x0d, 0xd6, 0x5f, 0x39, 0x1d, 0x4e, 0xb1, 0x83, 0x25, 0x34, 0x49, 0xc3, 0x2e, 0xdc, 0xe2, 0xe1, 0x57, 0xb2, 0x43, 0x34, 0x57, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x15, 0x68, 0x4e, 0x1b, 0xac, 0x40, 0x73, 0x3a, 0x9c, 0x62, 0x07, 0x8b, 0xec, 0x90, 0x86, 0x5d, 0xb8, 0xc5, 0x83, 0x20, 0x3d, 0x3d, 0x44, 0x73, 0x85, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x58, 0x72, 0xe7, 0xb4, 0xc1, 0x92, 0x3b, 0xa7, 0xc3, 0x29, 0xb6, 0xc1, 0x52, 0x2a, 0xa5, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x83, 0x81, 0x01, 0x3a, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0x54, 0x92, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x58, 0xd4, 0xe4, 0x74, 0xb0, 0x12, 0xe2, 0xe8, 0x38, 0x74, 0x1c, 0x3a, 0xb4, 0x00, 0x1b, 0x76, 0xe1, 0x16, 0x0f, 0x1f, 0xe4, 0x1c, 0xa2, 0xb9, 0xc2, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x2c, 0xf2, 0x74, 0xda, 0x60, 0x91, 0xa7, 0xd3, 0xe1, 0x14, 0x3b, 0x58, 0xf1, 0xa1, 0x34, 0xec, 0xc2, 0x2d, 0x1e, 0x14, 0x3b, 0x9a, 0x87, 0x68, 0xae, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0xab, 0x5a, 0x9d, 0x36, 0x58, 0xd5, 0xea, 0x74, 0x38, 0xc5, 0x0e, 0x56, 0x7c, 0x28, 0x0d, 0xbb, 0x70, 0x8b, 0x07, 0xc5, 0x80, 0xec, 0x21, 0x9a, 0x2b, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0x5a, 0x5e, 0xa7, 0x0d, 0xd6, 0xf2, 0x3a, 0x1d, 0x4e, 0xb1, 0x83, 0x95, 0xb3, 0x4d, 0xc3, 0x2e, 0xdc, 0xe2, 0xe1, 0xdd, 0xbc, 0x43, 0x34, 0x57, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x15, 0xcc, 0x4e, 0x1b, 0xac, 0x60, 0x76, 0x3a, 0x9c, 0x62, 0x07, 0x4b, 0x68, 0x92, 0x86, 0x5d, 0xb8, 0xc5, 0x83, 0x82, 0x0f, 0xf3, 0x10, 0xcd, 0x15, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x60, 0xc9, 0xb6, 0xd3, 0x06, 0x4b, 0xb6, 0x9d, 0x0e, 0xa7, 0xd8, 0xc1, 0x12, 0x9a, 0xa4, 0x61, 0x17, 0x6e, 0xf1, 0xe0, 0xe4, 0x20, 0x77, 0x88, 0xe6, 0x0a, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xb0, 0x50, 0xdd, 0x69, 0x83, 0x85, 0xea, 0x4e, 0x87, 0x53, 0x6c, 0x83, 0xa5, 0x54, 0x4a, 0x1b, 0x2c, 0x9e, 0x4f, 0x1a, 0x04, 0x1b, 0xac, 0x2f, 0x74, 0x3a, 0x74, 0x3f, 0x1a, 0x76, 0xe1, 0x16, 0x0f, 0x8f, 0xb0, 0x1e, 0xa2, 0xb9, 0xc2, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x2c, 0x06, 0x78, 0xda, 0x60, 0x31, 0xc0, 0xd3, 0xe1, 0x14, 0x3b, 0x58, 0x64, 0x87, 0x34, 0xec, 0xc2, 0x2d, 0x1e, 0x14, 0x04, 0xb3, 0x87, 0x68, 0xae, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0xab, 0x1f, 0x9e, 0x36, 0x58, 0xfd, 0xf0, 0x74, 0x38, 0xc5, 0x0e, 0x56, 0xce, 0x36, 0x0d, 0xbb, 0x70, 0x8b, 0x07, 0x25, 0x3c, 0xe6, 0x21, 0x9a, 0x2b, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0x9a, 0x8f, 0xa7, 0x0d, 0xd6, 0x7c, 0x3c, 0x1d, 0x4e, 0xb1, 0x83, 0x95, 0xb3, 0x4d, 0xc3, 0x2e, 0xdc, 0x62, 0xe0, 0xdf, 0xd1, 0xa1, 0xe1, 0x87, 0x68, 0xae, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x2b, 0x5d, 0x9e, 0x36, 0x58, 0xe9, 0xf2, 0x74, 0x38, 0xc5, 0x36, 0x58, 0x8e, 0xbb, 0x74, 0xb0, 0x1a, 0xfc, 0x68, 0xd8, 0x85, 0x5b, 0x3c, 0x28, 0x26, 0x31, 0x0f, 0xd1, 0x5c, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x96, 0x03, 0x3d, 0x6d, 0xb0, 0x1c, 0xe8, 0xe9, 0x70, 0x8a, 0x6d, 0xb0, 0xf8, 0x20, 0xe9, 0x60, 0x35, 0xf8, 0xd1, 0xb0, 0x0b, 0xb7, 0x78, 0x78, 0x9b, 0xf5, 0x10, 0xcd, 0x15, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x60, 0x9d, 0xd4, 0xd3, 0x06, 0xeb, 0xa4, 0x9e, 0x0e, 0xa7, 0xd8, 0xc1, 0x02, 0x9d, 0xa3, 0x61, 0x17, 0x6e, 0x31, 0xf0, 0xf5, 0xe0, 0xc6, 0xda, 0x43, 0x34, 0x57, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x85, 0x61, 0x4f, 0x1b, 0x2c, 0x0c, 0x7b, 0x3a, 0x9c, 0x62, 0x07, 0x4b, 0x68, 0x92, 0x86, 0x5d, 0xb8, 0xc5, 0xc0, 0xd7, 0x83, 0x3b, 0x93, 0x0f, 0xd1, 0x5c, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x96, 0xc6, 0x3d, 0x6d, 0xb0, 0x34, 0xee, 0xe9, 0x70, 0x8a, 0x1d, 0x2c, 0xd0, 0x39, 0x1a, 0x76, 0xe1, 0x16, 0x03, 0x5f, 0x0f, 0xee, 0x8c, 0x3d, 0x44, 0x73, 0x85, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x58, 0x1c, 0xf8, 0xb4, 0xc1, 0xe2, 0xc0, 0xa7, 0xc3, 0x29, 0x76, 0xb0, 0x3e, 0x32, 0x69, 0xd8, 0x85, 0x5b, 0x0c, 0x7c, 0x3d, 0xb8, 0xb6, 0xf1, 0x10, 0xcd, 0x15, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x60, 0x79, 0xe4, 0xd3, 0x06, 0xcb, 0x23, 0x9f, 0x0e, 0xa7, 0xd8, 0xc1, 0x12, 0x9a, 0xa4, 0x61, 0x17, 0x6e, 0x31, 0xf0, 0xf5, 0xe0, 0xe8, 0xe6, 0x43, 0x34, 0x57, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x05, 0xa2, 0x4f, 0x1b, 0x2c, 0x10, 0x7d, 0x3a, 0x9c, 0x62, 0x07, 0x0b, 0x74, 0x8e, 0x86, 0x5d, 0xb8, 0xc5, 0xc0, 0xd7, 0x83, 0x83, 0xa3, 0x0f, 0xd1, 0x5c, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x96, 0xc8, 0x3e, 0x6d, 0xb0, 0x44, 0xf6, 0xe9, 0x70, 0x8a, 0x2d, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x6c, 0x30, 0x30, 0x40, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x07, 0xcb, 0xd2, 0x94, 0x8e, 0x43, 0x87, 0xa6, 0x40, 0x07, 0x8b, 0x42, 0x94, 0x86, 0x5d, 0xb8, 0xc5, 0xc0, 0xd7, 0x83, 0xbb, 0xa3, 0x0f, 0xd1, 0x5c, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x96, 0x3e, 0x3f, 0x6d, 0xb0, 0xf4, 0xf9, 0xe9, 0x70, 0x8a, 0x2d, 0xec, 0x06, 0xc5, 0xc9, 0xe0, 0x0a, 0x82, 0x0d, 0xd6, 0xf8, 0x17, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xf8, 0x21, 0x07, 0x83, 0x68, 0xe5, 0x38, 0x34, 0x08, 0x36, 0x58, 0xe3, 0x5f, 0x74, 0x70, 0x58, 0x9f, 0x3e, 0x58, 0xd3, 0xc9, 0x74, 0xb0, 0xb0, 0xf0, 0x68, 0x61, 0x17, 0x6e, 0x43, 0x34, 0xc7, 0x83, 0x10, 0x55, 0xdd, 0x60, 0x69, 0xfd, 0xd3, 0xe1, 0x14, 0x3b, 0x18, 0x9a, 0xbf, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x15, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x36, 0x18, 0x18, 0xa0, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x81, 0xde, 0x73, 0xc7, 0xe3, 0xe3, 0xd0, 0xa1, 0x51, 0xcb, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x05, 0xc1, 0xe2, 0x6c, 0x38, 0x14, 0x02, 0x5f, 0x2f, 0xcd, 0x6d, 0x5c, 0x1c, 0x04, 0x0b, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0x92, 0x81, 0x52, 0x75, 0x58, 0xa1, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x83, 0xe5, 0x48, 0x49, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x48, 0x75, 0x97, 0x3b, 0x1e, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0xac, 0xcf, 0x1d, 0x8f, 0x8f, 0x43, 0x87, 0x46, 0x2d, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0xe1, 0xd7, 0x10, 0xc3, 0xe1, 0x37, 0x24, 0x97, 0x86, 0x5f, 0x10, 0x6c, 0x50, 0x10, 0x1d, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0x34, 0xfb, 0xdf, 0x77, 0x48, 0x2e, 0x1d, 0x87, 0x8e, 0x6f, 0x87, 0x9e, 0xa8, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x85, 0xdd, 0xd0, 0x71, 0x64, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x64, 0x40, 0xe4, 0xbf, 0xcb, 0x1d, 0x8f, 0x0f, 0x8d, 0x5a, 0x0e, 0xfd, 0xa9, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x2b, 0x08, 0x16, 0x37, 0x58, 0x77, 0x01, 0xb5, 0x61, 0x3a, 0x57, 0xc3, 0x41, 0x72, 0x10, 0x00, 0xf7, 0xb5, 0x38, 0x08, 0x56, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x19, 0x90, 0xa8, 0x2e, 0x77, 0x3c, 0x3e, 0xa4, 0xe1, 0x36, 0x58, 0xa0, 0x7a, 0x34, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x6c, 0x30, 0x2a, 0x49, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0xfc, 0x60, 0x85, 0x17, 0xd4, 0xf0, 0x1b, 0xcf, 0x0f, 0x16, 0x5d, 0x24, 0x1d, 0x87, 0x0e, 0x2d, 0xc0, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x83, 0x60, 0x83, 0x91, 0xff, 0xb0, 0x38, 0x08, 0x16, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x36, 0x18, 0x95, 0xa4, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x7e, 0xb0, 0xae, 0xe8, 0x68, 0xf8, 0x8d, 0xe7, 0x07, 0x2b, 0x63, 0x8f, 0x8e, 0x43, 0x87, 0x46, 0x2d, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x41, 0xb0, 0xc1, 0xb2, 0x30, 0x98, 0xc5, 0x41, 0xb0, 0xb0, 0x1b, 0xba, 0x66, 0x2e, 0x08, 0x36, 0x58, 0xff, 0x82, 0x74, 0x68, 0xd4, 0x32, 0xec, 0xc2, 0x6e, 0xe8, 0x38, 0xb2, 0xb0, 0x1b, 0x04, 0xbd, 0xfe, 0x06, 0x23, 0x16, 0xeb, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0x15, 0x04, 0x1b, 0xac, 0x7f, 0x41, 0x3a, 0xa4, 0xe1, 0x06, 0xc1, 0x06, 0x6b, 0xfc, 0x8b, 0x0e, 0x46, 0x15, 0xf6, 0xb0, 0x0b, 0xbb, 0xa1, 0xe3, 0xc8, 0xc2, 0x6e, 0x10, 0xf4, 0xfa, 0x0b, 0xbb, 0xc1, 0xe8, 0xc5, 0x5a, 0xd8, 0x0d, 0x8a, 0x90, 0xc1, 0x0d, 0x12, 0xb8, 0x7e, 0x0e, 0x47, 0xfb, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x87, 0xa3, 0x7d, 0x0d, 0x16, 0x03, 0x43, 0x6d, 0xb0, 0x5c, 0x0a, 0x69, 0x10, 0x6c, 0xb0, 0xc6, 0xbf, 0xe8, 0xe0, 0x98, 0xdd, 0xbb, 0xc1, 0x62, 0x60, 0xa8, 0x0d, 0x96, 0x4b, 0x21, 0x2d, 0x08, 0x36, 0x58, 0xe3, 0x5f, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xe0, 0x87, 0x1c, 0x1a, 0x17, 0x1d, 0x87, 0x06, 0xc1, 0x06, 0x6b, 0xfc, 0x8b, 0x0e, 0xd2, 0x70, 0x09, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xbb, 0xa1, 0xe3, 0xc8, 0xc2, 0x6e, 0xc8, 0x63, 0xad, 0xa1, 0x59, 0xe4, 0x06, 0x8b, 0xad, 0x8b, 0x06, 0xc1, 0x06, 0x6b, 0xaf, 0x8b, 0x0e, 0x2d, 0xc0, 0x0e, 0x96, 0x8c, 0x17, 0x1d, 0xfa, 0x53, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x76, 0x43, 0xc7, 0x91, 0x05, 0xc1, 0x06, 0xab, 0x22, 0x91, 0x0e, 0x8d, 0x5a, 0x0e, 0x56, 0xc7, 0x42, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x07, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0x58, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x64, 0x40, 0xe1, 0xdf, 0x77, 0x48, 0x2e, 0x1d, 0xd2, 0x70, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x06, 0x03, 0x03, 0x74, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x20, 0xf0, 0xe5, 0x8e, 0xc7, 0xc7, 0xa1, 0x43, 0x07, 0x8d, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x8a, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x1b, 0x94, 0xa9, 0x73, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x83, 0x35, 0x73, 0x35, 0xc7, 0xa1, 0x43, 0xa3, 0x96, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x0a, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xbb, 0xa1, 0xe3, 0xc8, 0x1a, 0xda, 0x42, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x24, 0x03, 0x02, 0x5d, 0xee, 0x78, 0x7e, 0xe8, 0xa0, 0x31, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x90, 0x0c, 0x28, 0xfe, 0xfb, 0x0e, 0x2b, 0xb4, 0x87, 0x46, 0x2d, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0x58, 0x43, 0x53, 0x92, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x07, 0x23, 0x24, 0xea, 0xd0, 0x41, 0xe3, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0xb0, 0x1b, 0x3a, 0x8e, 0xac, 0x20, 0x58, 0x90, 0x0c, 0x08, 0xdf, 0x9d, 0xc3, 0x0a, 0xed, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x1f, 0xa4, 0x85, 0x66, 0x1f, 0xb2, 0x76, 0xc7, 0xa1, 0x41, 0xb0, 0xc1, 0xb2, 0xc2, 0xa8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x0b, 0x19, 0xa3, 0x0e, 0xf9, 0xda, 0xe3, 0xd0, 0x20, 0xd8, 0x60, 0x59, 0x61, 0xd4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x85, 0x8c, 0x51, 0x87, 0x54, 0xcd, 0x71, 0xe8, 0xd0, 0xfc, 0xe5, 0x78, 0x3c, 0x08, 0x36, 0x28, 0xa8, 0xc5, 0x16, 0x07, 0xc1, 0x0a, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x3a, 0x48, 0xff, 0x6d, 0x38, 0xa4, 0xe1, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x1d, 0x94, 0x0c, 0x4d, 0x87, 0x0e, 0x1a, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x05, 0xc1, 0x06, 0x05, 0xb5, 0xd8, 0xe2, 0x20, 0x58, 0xd8, 0x0d, 0x82, 0x61, 0x7f, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x07, 0xab, 0xa2, 0x91, 0x0e, 0x8d, 0x5a, 0x16, 0x76, 0xe1, 0x16, 0x0f, 0x8e, 0x19, 0xa0, 0x87, 0x68, 0x2e, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0x62, 0xe6, 0xa8, 0x0d, 0x16, 0x33, 0x47, 0x1d, 0x4e, 0xb1, 0x61, 0x17, 0x6e, 0x31, 0xf0, 0xdb, 0xc2, 0xdc, 0xf0, 0x43, 0x34, 0x17, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x60, 0x81, 0x76, 0xd4, 0x06, 0x0b, 0xb4, 0xa3, 0x0e, 0xa7, 0xd8, 0xb0, 0x0b, 0xb7, 0x18, 0xf8, 0x6d, 0x61, 0x72, 0xec, 0x21, 0x9a, 0x0b, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xb0, 0xfe, 0x3c, 0x6a, 0x83, 0xf5, 0xe7, 0x51, 0x87, 0x53, 0x6c, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x31, 0xf0, 0xc7, 0xc2, 0xd8, 0xd8, 0x0d, 0x16, 0xdc, 0x47, 0x1d, 0x4e, 0xb1, 0x83, 0xb5, 0x5c, 0x51, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x0d, 0xca, 0xd4, 0xb9, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0x58, 0x43, 0x53, 0x92, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x83, 0x32, 0x75, 0x6e, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x83, 0xf3, 0x13, 0xed, 0x71, 0xe8, 0xd0, 0x41, 0xe3, 0xd0, 0xfc, 0xe5, 0x78, 0x7c, 0x1c, 0x3a, 0x34, 0x6a, 0x39, 0x34, 0x7f, 0x39, 0x1e, 0x2f, 0x08, 0x36, 0x48, 0xdc, 0xef, 0x59, 0x1c, 0x04, 0x0b, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0x92, 0x81, 0xb9, 0x3a, 0x64, 0x2b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xac, 0x99, 0xab, 0x39, 0x38, 0x9b, 0xf4, 0x1e, 0x87, 0x0e, 0x8d, 0x5a, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x83, 0x60, 0x83, 0xc4, 0xfd, 0x9e, 0xc5, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0xc1, 0x1a, 0x1a, 0xa9, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x3f, 0x58, 0x15, 0x8d, 0x74, 0x70, 0x36, 0xe9, 0x3d, 0x0e, 0x1d, 0x1a, 0xb5, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x8f, 0xc7, 0x2b, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x6c, 0x30, 0x30, 0x40, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x14, 0x44, 0x07, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x83, 0xa5, 0x9e, 0x50, 0xc7, 0xa1, 0xe3, 0xd0, 0xa1, 0x51, 0xcb, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x0d, 0x06, 0x06, 0xe8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0x40, 0xf1, 0x2e, 0x77, 0x3c, 0x3e, 0x0e, 0x1d, 0x1a, 0xb5, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x07, 0xc1, 0xe2, 0xe1, 0x50, 0x58, 0x1c, 0x04, 0x0b, 0xbb, 0x70, 0x8b, 0x81, 0x77, 0x57, 0x46, 0x1f, 0x52, 0x07, 0x0b, 0xbb, 0x70, 0x1b, 0x52, 0x07, 0x07, 0x6b, 0x29, 0xa5, 0x36, 0x58, 0x4b, 0x29, 0x75, 0x38, 0xc5, 0x86, 0x5d, 0xb8, 0x0d, 0xa9, 0x83, 0x83, 0x15, 0x90, 0x52, 0x1b, 0xac, 0x80, 0x94, 0x3a, 0x9c, 0x62, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x41, 0xb0, 0xc1, 0x42, 0x13, 0xa3, 0xc5, 0x41, 0xb0, 0xb0, 0x1b, 0x3a, 0x8e, 0x2c, 0xec, 0xc2, 0x6d, 0xb0, 0xf0, 0xc2, 0xe8, 0x10, 0xcd, 0x35, 0x58, 0x4e, 0x61, 0xb4, 0xc1, 0x72, 0x29, 0xa4, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x83, 0x82, 0xe8, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x7b, 0xb0, 0x58, 0x03, 0xe9, 0x38, 0x74, 0x68, 0x01, 0x36, 0xec, 0xc2, 0x6d, 0xb0, 0x70, 0xc6, 0xe8, 0x10, 0xcd, 0x15, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x60, 0xe1, 0x8c, 0xd1, 0xc1, 0xc2, 0x1d, 0xa3, 0x0d, 0x16, 0xa8, 0x1e, 0x0d, 0x82, 0x0d, 0x96, 0x84, 0x1c, 0x1d, 0x5a, 0x80, 0x0d, 0xbb, 0x70, 0x8b, 0x87, 0x19, 0x3a, 0x44, 0x73, 0x85, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x58, 0xd3, 0x2d, 0xb5, 0xc1, 0x9a, 0x6e, 0xa9, 0xc3, 0x29, 0xb6, 0xc1, 0x02, 0xd5, 0xa3, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x64, 0x40, 0xe3, 0xea, 0x72, 0xc7, 0xe3, 0x43, 0x0b, 0xb0, 0x61, 0x17, 0x6e, 0xf1, 0x30, 0xf7, 0x87, 0x68, 0xae, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x0b, 0xe9, 0xa5, 0x36, 0x58, 0x48, 0x2f, 0x75, 0x38, 0xc5, 0x16, 0x76, 0x83, 0xe2, 0x64, 0x70, 0x41, 0xb0, 0xc1, 0xaa, 0x48, 0xa4, 0x43, 0x53, 0xa0, 0x83, 0xe5, 0x52, 0x48, 0x07, 0x6b, 0xae, 0xa5, 0x86, 0x5d, 0xb8, 0xc5, 0xc0, 0x37, 0x7b, 0x93, 0x5b, 0x0f, 0xd1, 0x5c, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x96, 0x32, 0x4c, 0x6d, 0xb0, 0x94, 0x61, 0xea, 0x70, 0x8a, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x1b, 0x0c, 0xbc, 0xd4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x0f, 0x16, 0x8d, 0x1c, 0x1d, 0x87, 0x0e, 0x1d, 0x34, 0x86, 0x5d, 0xb8, 0xc5, 0x43, 0x31, 0x3d, 0x44, 0x73, 0x85, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x58, 0x9a, 0x32, 0xb5, 0xc1, 0xd2, 0x94, 0xa9, 0xc3, 0x29, 0xb6, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0xc1, 0xa8, 0x24, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xb0, 0x3e, 0x64, 0x6a, 0xf8, 0x8d, 0xe7, 0x07, 0xab, 0x8d, 0x8f, 0x8e, 0x43, 0x87, 0xa6, 0x40, 0x07, 0x6b, 0xae, 0xa5, 0x16, 0x76, 0xe1, 0x36, 0x44, 0x73, 0x3c, 0xd4, 0x91, 0x0d, 0x96, 0x2b, 0x4d, 0x1d, 0x4e, 0xb1, 0x0d, 0x16, 0xa8, 0x1e, 0x1d, 0x2c, 0x2c, 0x3c, 0x1a, 0x76, 0x83, 0xc5, 0x25, 0x46, 0x1b, 0xac, 0x4c, 0x31, 0x3a, 0x58, 0x9f, 0x65, 0x74, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0xd8, 0x0d, 0x1d, 0x47, 0x16, 0x76, 0x43, 0x1e, 0x6b, 0x83, 0xc5, 0x40, 0x47, 0x1b, 0xfa, 0x34, 0x6e, 0xb0, 0xf8, 0x96, 0x69, 0x10, 0x6c, 0xb0, 0xd8, 0x28, 0xe9, 0xd0, 0x02, 0xec, 0x60, 0x75, 0x2c, 0xd4, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xc1, 0x06, 0x6b, 0xfc, 0x8b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xac, 0xca, 0xa0, 0x39, 0xa4, 0x6a, 0x8e, 0x43, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x41, 0xb0, 0x38, 0xe0, 0xb3, 0x85, 0xe9, 0xe5, 0x87, 0x53, 0x6c, 0x71, 0x10, 0x2c, 0xec, 0xc2, 0x2d, 0x06, 0x3e, 0x5a, 0x18, 0x9b, 0x79, 0x88, 0xe6, 0x0a, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xb0, 0xba, 0x71, 0x6a, 0x83, 0xd5, 0x8d, 0x53, 0x87, 0x53, 0x6c, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x64, 0x40, 0xea, 0xbb, 0xdc, 0xf1, 0xf8, 0xd0, 0x14, 0x68, 0x10, 0x6c, 0xb0, 0x6e, 0x73, 0xea, 0xd0, 0x02, 0x6c, 0xd8, 0x85, 0x5b, 0x3c, 0x1c, 0x24, 0x87, 0x68, 0xae, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0xcb, 0x51, 0xa7, 0x36, 0x58, 0x8e, 0x3a, 0x75, 0x38, 0xc5, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x0d, 0x06, 0x5e, 0xea, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0xe0, 0x5d, 0xb9, 0xe3, 0xf1, 0x71, 0xe8, 0xd0, 0x41, 0x63, 0x61, 0x17, 0x6e, 0x43, 0x34, 0xc7, 0x83, 0xf5, 0x86, 0x53, 0x1b, 0x2c, 0x39, 0x9e, 0x3a, 0x9c, 0x62, 0x0b, 0x82, 0x0d, 0x56, 0x0d, 0x1d, 0x1d, 0x9a, 0x02, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x24, 0x03, 0x52, 0xd5, 0xe5, 0x8e, 0xc7, 0x87, 0x16, 0x60, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x05, 0xc1, 0x06, 0x23, 0xff, 0x61, 0x71, 0x10, 0xac, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0x32, 0xa0, 0x50, 0x97, 0x3b, 0x1e, 0x1f, 0xd2, 0x70, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc9, 0x80, 0xf3, 0xba, 0xdc, 0xf1, 0xf8, 0xd0, 0x41, 0xe3, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x04, 0x0b, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x1b, 0x8c, 0x4a, 0xd2, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0xcf, 0xcf, 0x1d, 0x8f, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x18, 0x6b, 0x9f, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x56, 0x52, 0x20, 0x1d, 0xac, 0x84, 0x38, 0x3a, 0x0e, 0x1d, 0x87, 0x0e, 0x8d, 0x5a, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x0b, 0x82, 0xc5, 0xe5, 0xa0, 0x94, 0x37, 0x3c, 0x9c, 0x62, 0x8b, 0x83, 0x60, 0x05, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x92, 0x01, 0xc3, 0x7a, 0xee, 0x78, 0x7c, 0x48, 0xc3, 0x2d, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x6c, 0x30, 0xd6, 0x3e, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0xfc, 0x60, 0x8d, 0xae, 0xd1, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xc1, 0x06, 0x6b, 0xfc, 0x8b, 0x0e, 0x16, 0x26, 0xff, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x8f, 0x43, 0x87, 0xa6, 0x40, 0x83, 0x60, 0x83, 0xc5, 0x26, 0x54, 0x87, 0x16, 0x60, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x15, 0x04, 0x8b, 0x07, 0x8b, 0xd9, 0xa0, 0x16, 0x07, 0xc1, 0x0a, 0x82, 0x0d, 0xd6, 0x6d, 0x4e, 0x1d, 0xd2, 0x70, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x0e, 0x56, 0x2b, 0x41, 0x1d, 0x3a, 0x68, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x07, 0xc1, 0x06, 0x0b, 0x4d, 0x8c, 0x16, 0x07, 0xc1, 0x82, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc9, 0x80, 0xf4, 0x7f, 0xb9, 0xe3, 0xf1, 0xa1, 0x51, 0xcb, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x10, 0x2c, 0x1e, 0x84, 0xe0, 0xc3, 0xe2, 0x20, 0x58, 0xd8, 0x0d, 0x56, 0x31, 0x1d, 0x6d, 0xb0, 0x08, 0xea, 0x68, 0xd8, 0x0d, 0x56, 0xc1, 0x1d, 0xad, 0xc1, 0xba, 0xba, 0xa3, 0x0d, 0x16, 0xf7, 0x1d, 0x1d, 0x2c, 0x8e, 0x47, 0x1a, 0x76, 0xe1, 0x16, 0x0f, 0x4f, 0xbc, 0x1f, 0xa2, 0xb9, 0xc2, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x2c, 0xf6, 0xa3, 0xda, 0x60, 0xb1, 0x1f, 0xd5, 0xe1, 0x14, 0x5b, 0x61, 0x17, 0x6e, 0x83, 0xe1, 0x45, 0x31, 0x1e, 0xee, 0xb4, 0x0d, 0x56, 0x37, 0x52, 0x1d, 0x4e, 0xb1, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x64, 0x40, 0xf2, 0xbb, 0xdc, 0xf1, 0xf8, 0x60, 0xdd, 0x18, 0xd3, 0xc1, 0xe2, 0x78, 0xa4, 0x61, 0x37, 0x28, 0x65, 0xfd, 0xd6, 0xa0, 0x74, 0xf6, 0x3b, 0x58, 0xeb, 0x0d, 0x35, 0xec, 0xc2, 0x2d, 0x1e, 0xfe, 0x9d, 0x3f, 0x44, 0x73, 0x85, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x58, 0x65, 0x4a, 0xb5, 0xc1, 0x2a, 0x53, 0xaa, 0xc3, 0x29, 0xb6, 0xc1, 0x52, 0x2a, 0xa5, 0x41, 0xb0, 0xc1, 0xe2, 0xdf, 0xa7, 0x43, 0x0b, 0xb0, 0x61, 0x17, 0x6e, 0x31, 0xf0, 0xd9, 0xde, 0xde, 0xe0, 0x43, 0x34, 0x57, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x05, 0xba, 0x54, 0x1b, 0x2c, 0xd0, 0xa5, 0x3a, 0x9c, 0x62, 0x07, 0x0b, 0x5e, 0x90, 0x86, 0x5d, 0xb8, 0xc5, 0xc0, 0x6f, 0x0b, 0x23, 0x2b, 0x0f, 0xd1, 0x5c, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x96, 0x28, 0x53, 0x6d, 0xb0, 0x44, 0x99, 0xea, 0x70, 0x8a, 0x2d, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x6c, 0x30, 0x2a, 0x49, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xac, 0xa4, 0x40, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0x60, 0x80, 0x1e, 0xac, 0x52, 0x47, 0x3a, 0x0e, 0x1d, 0x9a, 0x02, 0x1d, 0x2c, 0x8e, 0x47, 0x1a, 0x76, 0xe1, 0x16, 0x0f, 0x42, 0xbf, 0xe4, 0x10, 0xcd, 0x15, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x60, 0x91, 0x3b, 0xd5, 0x06, 0x8b, 0xdc, 0xa9, 0x0e, 0xa7, 0xd8, 0x06, 0xab, 0xb8, 0x8f, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x0d, 0x06, 0x06, 0xe8, 0xc1, 0x2a, 0x25, 0xa7, 0x43, 0x0b, 0xb0, 0x61, 0x17, 0x6e, 0xf1, 0xf0, 0x7d, 0xfb, 0x21, 0x9a, 0x2b, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0x82, 0x83, 0xaa, 0x0d, 0x16, 0x1c, 0x54, 0x1d, 0x4e, 0xb1, 0x0d, 0x96, 0x4b, 0x21, 0x1d, 0x2c, 0x8e, 0x47, 0x1a, 0x76, 0xe1, 0x16, 0x03, 0xff, 0xcd, 0xae, 0x4c, 0x3e, 0x44, 0x73, 0x85, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x58, 0x84, 0x51, 0xb5, 0xc1, 0x22, 0x8c, 0xaa, 0xc3, 0x29, 0xb6, 0xc1, 0x52, 0x2a, 0xa5, 0x83, 0xc5, 0xf1, 0x48, 0xc3, 0x2e, 0xdc, 0x62, 0xe0, 0x8b, 0x8d, 0x9d, 0xc9, 0x87, 0x68, 0xae, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x2b, 0x55, 0xaa, 0x36, 0x58, 0xa9, 0x52, 0x75, 0x38, 0xc5, 0x36, 0x58, 0x7c, 0x90, 0x74, 0xb0, 0x38, 0x1e, 0x69, 0xd8, 0x85, 0x5b, 0x0c, 0x7c, 0xb1, 0x31, 0xb1, 0xf1, 0x10, 0xcd, 0x15, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x60, 0x39, 0x4f, 0xd5, 0x06, 0xcb, 0x79, 0xaa, 0x0e, 0xa7, 0xd8, 0x06, 0x8b, 0x0f, 0x92, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x0d, 0xc6, 0xda, 0xe7, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x95, 0x14, 0x48, 0x07, 0x8b, 0x9a, 0x9c, 0x8e, 0x43, 0x87, 0x16, 0x60, 0xc3, 0x2e, 0xdc, 0xe2, 0xc1, 0x99, 0xe8, 0xe3, 0x10, 0xcd, 0x15, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x60, 0x25, 0x57, 0xd5, 0x06, 0x2b, 0xb9, 0xaa, 0x0e, 0xa7, 0xd8, 0xc1, 0xfa, 0xc8, 0xa4, 0x61, 0x17, 0x6e, 0xf1, 0x20, 0x80, 0xce, 0x0e, 0xd1, 0x5c, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x16, 0xb0, 0x55, 0x6d, 0xb0, 0x80, 0xad, 0xea, 0x70, 0x8a, 0x1d, 0x2c, 0xd0, 0x39, 0x1a, 0x76, 0xe1, 0x16, 0x0f, 0x9f, 0x2b, 0x1d, 0xa2, 0xb9, 0xc2, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x2c, 0xda, 0xab, 0xda, 0x60, 0xd1, 0x5e, 0xd5, 0xe1, 0x14, 0xdb, 0x60, 0xf1, 0x41, 0xd2, 0xc1, 0x12, 0x7e, 0xaa, 0x61, 0x17, 0x6e, 0xf1, 0x20, 0x68, 0x7f, 0x0e, 0xd1, 0x5c, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x16, 0x32, 0x56, 0x6d, 0xb0, 0x90, 0xb1, 0xea, 0x70, 0x8a, 0x1d, 0x2c, 0x36, 0xac, 0x1a, 0x76, 0xe1, 0x16, 0x03, 0x5f, 0x6c, 0x8c, 0x8c, 0x3e, 0x44, 0x73, 0x85, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x58, 0xbc, 0x59, 0xb5, 0xc1, 0xe2, 0xcd, 0xaa, 0xc3, 0x29, 0x76, 0xb0, 0x2e, 0xa9, 0x6a, 0xd8, 0x85, 0x5b, 0x0c, 0x7c, 0xb1, 0xb1, 0x33, 0xf6, 0x10, 0xcd, 0x15, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x60, 0xf9, 0x6a, 0xd5, 0x06, 0xcb, 0x57, 0xab, 0x0e, 0xa7, 0xd8, 0xc1, 0x92, 0x9b, 0xaa, 0x61, 0x17, 0x6e, 0xf1, 0x20, 0x9c, 0xc6, 0x0e, 0xd1, 0x5c, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x16, 0xf0, 0x56, 0x6d, 0xb0, 0x80, 0xb7, 0xea, 0x70, 0x8a, 0x1d, 0x2c, 0xb9, 0xa9, 0x1a, 0x76, 0xe1, 0x16, 0x03, 0x5f, 0x6c, 0x6c, 0x8d, 0x3e, 0x44, 0x73, 0x85, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x58, 0xb4, 0x5c, 0xb5, 0xc1, 0xa2, 0xe5, 0xaa, 0xc3, 0x29, 0x76, 0xb0, 0xe4, 0xa6, 0x6a, 0xd8, 0x85, 0x5b, 0x3c, 0x38, 0x40, 0x88, 0x1e, 0xa2, 0xb9, 0xc2, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x2c, 0xdb, 0xae, 0xda, 0x60, 0xd9, 0x76, 0xd5, 0xe1, 0x14, 0x5b, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x19, 0xd0, 0xf8, 0x7f, 0xdf, 0x21, 0xb9, 0x74, 0x68, 0x0a, 0x74, 0xb0, 0x38, 0x1e, 0x69, 0xd8, 0x85, 0x5b, 0x0c, 0x7c, 0xb1, 0x31, 0xb3, 0xf9, 0x10, 0xcd, 0x15, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x60, 0xf9, 0x7c, 0xd5, 0x06, 0xcb, 0xe7, 0xab, 0x0e, 0xa7, 0xd8, 0xc1, 0xba, 0xa4, 0xaa, 0x61, 0x17, 0x6e, 0x31, 0xf0, 0xc5, 0xc6, 0xda, 0xc6, 0x43, 0x34, 0x57, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x05, 0x04, 0x56, 0x1b, 0x2c, 0x20, 0xb0, 0x3a, 0x9c, 0x62, 0x07, 0x0b, 0x74, 0x8e, 0x86, 0x5d, 0xb8, 0xc5, 0xc0, 0x17, 0x1b, 0x83, 0x6b, 0x0f, 0xd1, 0x5c, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x96, 0x50, 0x58, 0x6d, 0xb0, 0x84, 0xc2, 0xea, 0x70, 0x8a, 0x1d, 0xac, 0x8f, 0x4c, 0x1a, 0x76, 0xe1, 0x16, 0x0f, 0x42, 0x0d, 0xf1, 0x10, 0xcd, 0x15, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x60, 0x11, 0x89, 0xd5, 0x06, 0x8b, 0x48, 0xac, 0x0e, 0xa7, 0xd8, 0x06, 0xab, 0xb8, 0x8f, 0x0e, 0x16, 0xc7, 0x23, 0x0d, 0xbb, 0x70, 0x8b, 0x81, 0x2f, 0x36, 0x46, 0x37, 0x1e, 0xa2, 0xb9, 0xc2, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0xac, 0xad, 0xb1, 0xda, 0x60, 0x6d, 0x8d, 0xd5, 0xe1, 0x14, 0x3b, 0x58, 0x97, 0x54, 0x35, 0xec, 0xc2, 0x2d, 0x1e, 0xfe, 0x5c, 0x3a, 0x44, 0x73, 0x85, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x58, 0x5d, 0x64, 0xb5, 0xc1, 0xea, 0x22, 0xab, 0xc3, 0x29, 0xb6, 0xc1, 0x72, 0xdc, 0xa5, 0x83, 0xc5, 0xf1, 0x48, 0xc3, 0x2e, 0xdc, 0xe2, 0xe1, 0x83, 0xf9, 0x43, 0x34, 0x57, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x15, 0x57, 0x56, 0x1b, 0xac, 0xb8, 0xb2, 0x3a, 0x9c, 0x62, 0x07, 0x4b, 0x6e, 0xaa, 0x86, 0x5d, 0xb8, 0xc5, 0x83, 0x60, 0x33, 0x3d, 0x44, 0x73, 0x85, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x58, 0x62, 0x66, 0xb5, 0xc1, 0x12, 0x33, 0xab, 0xc3, 0x29, 0x76, 0xb0, 0xd8, 0xb0, 0x6a, 0x61, 0x17, 0x6e, 0x43, 0x34, 0xc7, 0xc0, 0x17, 0x1b, 0xd3, 0x83, 0x37, 0x58, 0x6a, 0x67, 0x75, 0x38, 0xc5, 0x0e, 0xd6, 0x25, 0x55, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x36, 0x28, 0x88, 0x0e, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x8b, 0x03, 0xfe, 0x5d, 0x58, 0x1a, 0xdd, 0xe2, 0x20, 0x58, 0xd8, 0x85, 0x5b, 0x0c, 0x7c, 0xb2, 0x37, 0xb7, 0xf2, 0x10, 0xcd, 0x15, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x60, 0xb9, 0xa5, 0xd5, 0x06, 0xcb, 0x2d, 0xad, 0x0e, 0xa7, 0xd8, 0xc1, 0x0a, 0x29, 0xaa, 0x85, 0x5d, 0xb8, 0x0d, 0xd1, 0x1c, 0x0f, 0xd6, 0x44, 0x5a, 0x6d, 0xb0, 0x08, 0xd5, 0xea, 0x70, 0x8a, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x1b, 0x0c, 0x0c, 0xd0, 0x83, 0xf5, 0xb9, 0x53, 0x87, 0x0e, 0x1a, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xd0, 0xa1, 0x51, 0xcb, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x0d, 0x06, 0x06, 0xe8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0xe0, 0x9c, 0x3b, 0x1e, 0x1f, 0x87, 0x0e, 0x8d, 0x5a, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x0b, 0x82, 0xc5, 0x71, 0x0e, 0xc2, 0x53, 0x75, 0x71, 0x10, 0x2c, 0xec, 0x86, 0x3c, 0xd6, 0x1a, 0x9a, 0x45, 0x6e, 0xb0, 0xba, 0x28, 0xe9, 0x60, 0x35, 0xf8, 0xd1, 0x86, 0x3e, 0x8d, 0x1b, 0xac, 0x2e, 0x4a, 0x3a, 0x58, 0x58, 0x78, 0x74, 0x68, 0xfe, 0x72, 0x3c, 0x1e, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x36, 0x18, 0x18, 0xa0, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x16, 0x5a, 0x5b, 0x2d, 0x0e, 0x82, 0x35, 0x58, 0x0c, 0x0c, 0x75, 0xb0, 0x40, 0xe7, 0xe8, 0xd0, 0xfc, 0xe5, 0x78, 0x7c, 0x1c, 0x3a, 0x34, 0x6a, 0x39, 0x34, 0x7f, 0x39, 0x1e, 0x2f, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0xc2, 0x6e, 0x10, 0x0c, 0xfb, 0x2b, 0x08, 0x36, 0x58, 0xf7, 0x7a, 0x74, 0x48, 0xc3, 0x0d, 0x82, 0x0d, 0xd6, 0xbd, 0x1e, 0x1d, 0x3a, 0x68, 0x0c, 0xbb, 0xa1, 0xe1, 0xe2, 0x06, 0x69, 0xdb, 0x3e, 0xc3, 0x6e, 0xb0, 0xc4, 0xd7, 0x67, 0x0d, 0x92, 0xc2, 0x7d, 0x16, 0x04, 0x1b, 0xac, 0x7b, 0x3d, 0x3a, 0x34, 0x05, 0x3a, 0x58, 0xe8, 0x7a, 0x34, 0xec, 0xc2, 0x1d, 0x2c, 0x8a, 0x4f, 0x59, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0xfd, 0xc9, 0x37, 0xf4, 0x27, 0x3f, 0x9c, 0x62, 0x07, 0x6b, 0x27, 0xae, 0x86, 0x5d, 0xb8, 0x83, 0x84, 0xcd, 0x8a, 0x15, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xa0, 0x8c, 0xdb, 0xd9, 0xa0, 0x8c, 0xdb, 0x39, 0x9c, 0x62, 0x07, 0x6b, 0x27, 0xae, 0x86, 0x5d, 0xb8, 0x0d, 0x0a, 0x3b, 0x9c, 0x43, 0x34, 0x57, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0xc2, 0x0e, 0x67, 0x83, 0xc2, 0x0e, 0xe7, 0x70, 0x8a, 0x1d, 0x2c, 0x0d, 0xb9, 0x1a, 0x76, 0xe1, 0x36, 0x18, 0xcd, 0xe7, 0x87, 0x68, 0xae, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0xa3, 0xf9, 0x7c, 0x83, 0xd1, 0x7c, 0x7e, 0x38, 0xc5, 0x36, 0x58, 0x1c, 0x72, 0xb5, 0x20, 0xd8, 0x60, 0xdd, 0xeb, 0xd1, 0xa1, 0x13, 0xd1, 0x20, 0xd8, 0x60, 0xdd, 0xeb, 0xd1, 0xa1, 0xfb, 0xd1, 0xb0, 0x0b, 0xb7, 0xc1, 0x90, 0x47, 0x3f, 0x44, 0x73, 0x85, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x18, 0xf2, 0xe8, 0x1b, 0x0c, 0x79, 0xf4, 0xc3, 0x29, 0x76, 0xb0, 0x34, 0xe4, 0x6a, 0xd8, 0x85, 0xdb, 0xa0, 0x00, 0x80, 0x3a, 0x44, 0x73, 0x85, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x28, 0x00, 0xa0, 0x36, 0x28, 0x00, 0xa0, 0x0e, 0xa7, 0xd8, 0xc1, 0xd2, 0x90, 0xab, 0x61, 0x17, 0x6e, 0x83, 0x73, 0x4b, 0xf1, 0x21, 0x9a, 0x2b, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0xb9, 0xa5, 0x78, 0x83, 0x73, 0x4b, 0xf1, 0xe1, 0x14, 0xdb, 0x60, 0x4d, 0x27, 0xd3, 0xc1, 0x42, 0xd7, 0xa3, 0x61, 0x37, 0x58, 0x3b, 0x29, 0xb2, 0xc2, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x1c, 0x79, 0x8a, 0x37, 0x38, 0xf2, 0x14, 0x1f, 0x4e, 0xb1, 0x35, 0x58, 0xf3, 0xfd, 0x34, 0x08, 0x36, 0x58, 0xf7, 0x7a, 0x74, 0xb0, 0x6e, 0x8c, 0xe9, 0x60, 0xa1, 0xeb, 0xd1, 0xb0, 0x0b, 0xb7, 0xc1, 0x31, 0x30, 0xff, 0x10, 0xcd, 0x15, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0x18, 0x98, 0xbf, 0xc1, 0x31, 0x30, 0xff, 0x70, 0x8a, 0x2d, 0xec, 0x06, 0xc5, 0xc9, 0xe0, 0x06, 0x4b, 0x44, 0xaf, 0x0e, 0xd6, 0x74, 0x32, 0x1d, 0x2c, 0x74, 0x3d, 0x1a, 0x76, 0xe1, 0x36, 0x58, 0x0c, 0x40, 0x74, 0x88, 0xe6, 0x0a, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xb0, 0x18, 0x80, 0x68, 0x83, 0xc5, 0x00, 0x44, 0x87, 0x53, 0xec, 0x60, 0x69, 0xc8, 0xd5, 0x86, 0x66, 0x91, 0x07, 0x4b, 0x8a, 0xa1, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x96, 0x60, 0x50, 0x2d, 0x0e, 0x82, 0x35, 0x58, 0xda, 0x41, 0xb5, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0xc1, 0x58, 0xfb, 0x1c, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xb0, 0x92, 0x02, 0xe9, 0x60, 0x9d, 0x0c, 0xd5, 0x71, 0xe8, 0xd0, 0x14, 0x68, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0xd8, 0x60, 0xac, 0x7d, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x58, 0xeb, 0x42, 0x35, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0xa0, 0xf9, 0x77, 0xb9, 0xe3, 0xf1, 0x71, 0xe8, 0xd0, 0x02, 0xec, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0xa1, 0x3f, 0xd5, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x41, 0xb0, 0xb8, 0xc1, 0x42, 0x65, 0xaa, 0xc3, 0x29, 0xb6, 0x38, 0x08, 0x16, 0x76, 0xe1, 0x36, 0x58, 0xdd, 0x48, 0x75, 0x88, 0xe6, 0x0a, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xb0, 0xba, 0x91, 0xea, 0x60, 0xe1, 0x23, 0xd5, 0x20, 0xd8, 0x60, 0xfd, 0x24, 0xd5, 0xa1, 0x83, 0xc6, 0xb0, 0x0b, 0xb7, 0x18, 0xf8, 0x6b, 0x6e, 0x6f, 0xf7, 0x21, 0x9a, 0x2b, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0xfa, 0x10, 0xac, 0x0d, 0xd6, 0x87, 0x60, 0x1d, 0x4e, 0xb1, 0x41, 0xb0, 0xc1, 0x2a, 0xf4, 0xaa, 0x43, 0x07, 0x8d, 0x0d, 0x16, 0x3a, 0x53, 0x6d, 0xb0, 0x5c, 0x0a, 0x69, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0xd8, 0xa0, 0x20, 0x3a, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0xfc, 0x60, 0x79, 0xf0, 0xd3, 0x71, 0xe8, 0xd0, 0x02, 0xec, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0xac, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0xc1, 0x58, 0xfb, 0x1c, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xb0, 0x92, 0x02, 0xe9, 0x60, 0x49, 0xc2, 0xd1, 0x71, 0xe8, 0x90, 0x86, 0x3b, 0x58, 0x64, 0x87, 0x74, 0x68, 0xfe, 0x72, 0x3c, 0x1e, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x76, 0x43, 0xc7, 0x91, 0x35, 0xb4, 0x85, 0x3a, 0x58, 0xa0, 0x73, 0x74, 0xb0, 0x12, 0xcd, 0xe8, 0xd0, 0xfc, 0xe5, 0x78, 0x3c, 0x08, 0x36, 0x58, 0x68, 0x62, 0xb4, 0x38, 0x08, 0x16, 0x04, 0x1b, 0x2c, 0x09, 0x39, 0x3a, 0x34, 0x6a, 0x39, 0x34, 0x7f, 0x39, 0x1e, 0x2f, 0x08, 0x16, 0x37, 0x58, 0x51, 0x29, 0x75, 0x10, 0x9e, 0xaa, 0x8b, 0x83, 0x60, 0x61, 0x17, 0x6e, 0x83, 0x15, 0x90, 0x52, 0x87, 0x68, 0xae, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x2b, 0x20, 0xa5, 0x0e, 0x56, 0x98, 0x4a, 0x1d, 0x2c, 0xd0, 0x39, 0x5a, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0xb5, 0x94, 0x52, 0x07, 0x4b, 0x3b, 0xa5, 0x0e, 0x16, 0xe8, 0x1c, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x83, 0x51, 0x49, 0x3a, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0xc5, 0xff, 0xe0, 0xf0, 0x1b, 0xcf, 0x0f, 0x56, 0xa2, 0x44, 0x1d, 0x87, 0x0e, 0x8d, 0x5a, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x2b, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x6c, 0x30, 0x30, 0x40, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x8c, 0x4a, 0xd2, 0x83, 0x15, 0x0a, 0x54, 0xc7, 0xa1, 0x43, 0xa3, 0x96, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x0a, 0x82, 0x0d, 0x56, 0x73, 0x1c, 0x2d, 0x0e, 0x82, 0x15, 0x04, 0x1b, 0x2c, 0x04, 0xa3, 0x3a, 0xa4, 0xe1, 0x0e, 0xe3, 0x72, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0xd8, 0x60, 0x60, 0x80, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x18, 0x95, 0xa4, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xd6, 0x87, 0x4c, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x94, 0xb9, 0xe3, 0xf1, 0x71, 0xe8, 0x38, 0x74, 0x68, 0xd4, 0x72, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x10, 0x2c, 0x1e, 0x2c, 0xc5, 0xa0, 0x5a, 0x1c, 0x04, 0x2b, 0x08, 0x36, 0x58, 0xe3, 0x5f, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xe1, 0xa1, 0xcc, 0x21, 0x6b, 0x77, 0x1c, 0xda, 0x60, 0xf1, 0x2d, 0xd3, 0x82, 0x60, 0x83, 0x35, 0xfe, 0x45, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x16, 0x1e, 0xca, 0x1c, 0x1a, 0x17, 0x1d, 0x87, 0x16, 0x04, 0x1b, 0xac, 0xf1, 0x2f, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xb0, 0xf0, 0x50, 0xe6, 0x20, 0xec, 0xa9, 0x8f, 0x43, 0x0b, 0x82, 0x0d, 0xd6, 0xf8, 0x17, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x58, 0x78, 0x28, 0x73, 0x90, 0x34, 0x80, 0x70, 0x1c, 0x5a, 0x10, 0x6c, 0xb0, 0xc6, 0xbf, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc2, 0x43, 0x99, 0x83, 0xc4, 0xbd, 0x99, 0xe3, 0xd0, 0x20, 0xd8, 0x60, 0x8d, 0x7f, 0xd1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x85, 0x87, 0x32, 0x13, 0xd4, 0xef, 0xe3, 0xd0, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0xd8, 0x60, 0xac, 0x7d, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xc1, 0x02, 0xf2, 0xa9, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x46, 0x25, 0xe9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x75, 0xaa, 0x58, 0xc3, 0x6f, 0x3c, 0x3f, 0x58, 0x12, 0x13, 0x75, 0x1c, 0x3a, 0x0e, 0x1d, 0x1a, 0xb5, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x07, 0xc1, 0xe2, 0x06, 0x47, 0x86, 0xd0, 0x16, 0x07, 0xc1, 0xc2, 0x2e, 0xdc, 0x62, 0xe0, 0x8f, 0xa1, 0x85, 0xd1, 0x87, 0x68, 0xae, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x2b, 0xd9, 0xb2, 0x36, 0x58, 0xc9, 0x96, 0x75, 0x38, 0xc5, 0x0e, 0x16, 0xbc, 0x20, 0x0d, 0xbb, 0x70, 0x8b, 0x81, 0x3f, 0xf6, 0xe6, 0x56, 0x1e, 0xa2, 0xb9, 0xc2, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0xac, 0xe5, 0xcb, 0xda, 0x60, 0x2d, 0x5f, 0xd6, 0xe1, 0x14, 0x5b, 0x10, 0x6c, 0xb0, 0xb2, 0xc3, 0xe8, 0xd0, 0x14, 0x68, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x19, 0x48, 0xca, 0x1d, 0x8f, 0x0f, 0x2d, 0xc0, 0x86, 0x5d, 0xb8, 0xc5, 0xc0, 0x37, 0x93, 0x0b, 0x3b, 0x0f, 0xd1, 0x5c, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x96, 0x5c, 0x66, 0x6d, 0xb0, 0xe4, 0x32, 0xeb, 0x70, 0x8a, 0x1d, 0x2c, 0x78, 0x41, 0x1a, 0x76, 0xe1, 0x16, 0x0f, 0x4a, 0x4d, 0xcb, 0x43, 0x34, 0x57, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x45, 0xa7, 0x59, 0x1b, 0x2c, 0x3a, 0xcd, 0x3a, 0x9c, 0x62, 0x07, 0x0b, 0x5e, 0x90, 0x16, 0x76, 0xe1, 0x36, 0x44, 0x73, 0x3c, 0x38, 0x32, 0x84, 0x6e, 0xb0, 0xfc, 0x36, 0xeb, 0x70, 0x8a, 0x1d, 0x2c, 0x78, 0x41, 0x3a, 0x34, 0x7f, 0x39, 0x1e, 0x2f, 0x08, 0x16, 0x0f, 0x96, 0x64, 0x40, 0x2d, 0x0e, 0x82, 0x85, 0x5d, 0xb8, 0xc5, 0xc3, 0x29, 0x71, 0x48, 0x1d, 0x2c, 0xec, 0xc2, 0x6d, 0x48, 0x1d, 0x1c, 0x2c, 0x45, 0xce, 0xda, 0x60, 0x29, 0x72, 0xd6, 0xe1, 0x14, 0x1b, 0x76, 0xe1, 0x16, 0x03, 0x3f, 0x4d, 0xee, 0xcd, 0x3d, 0xa4, 0x0e, 0x16, 0x76, 0xe1, 0x36, 0xa4, 0x0e, 0x0e, 0x16, 0x57, 0x67, 0x6d, 0xb0, 0xb8, 0x3a, 0xeb, 0x70, 0x8a, 0x0d, 0xbb, 0x70, 0x8b, 0x07, 0x87, 0xfd, 0xb3, 0x43, 0xea, 0x60, 0x61, 0x17, 0x6e, 0x43, 0xea, 0xe0, 0x60, 0x0d, 0x79, 0xd6, 0x06, 0x6b, 0xc8, 0xb3, 0x0e, 0xa7, 0xd8, 0xb0, 0x0b, 0xb7, 0x21, 0x75, 0x70, 0xb0, 0x68, 0x38, 0x6b, 0x83, 0x45, 0xc3, 0x59, 0x87, 0x53, 0xec, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x06, 0x05, 0xd1, 0xc1, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0x60, 0xc1, 0x54, 0xd6, 0x71, 0xe8, 0xd0, 0xa8, 0xe5, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x20, 0x58, 0x9c, 0x83, 0x45, 0x71, 0x46, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0x32, 0x30, 0x57, 0x87, 0x15, 0xda, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0xab, 0x72, 0xc7, 0xe3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x46, 0x25, 0xe9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xf5, 0x21, 0x53, 0x07, 0xcb, 0x44, 0xa1, 0x8e, 0x43, 0xc7, 0xa1, 0x43, 0xa3, 0x96, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x60, 0x83, 0xe3, 0x7e, 0xc7, 0xe2, 0x20, 0x58, 0xd8, 0x0d, 0x79, 0xac, 0x35, 0x34, 0x8b, 0x1c, 0x04, 0x1b, 0x2c, 0x09, 0x39, 0x3a, 0x74, 0xd0, 0xd8, 0xd0, 0xa7, 0x71, 0x83, 0x35, 0xcd, 0x53, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x06, 0x03, 0x2f, 0x75, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xb8, 0x61, 0x3a, 0x0f, 0x96, 0xee, 0x61, 0x2d, 0x0e, 0x82, 0x35, 0x58, 0x03, 0x72, 0x34, 0x08, 0x16, 0x7e, 0x43, 0x72, 0xe9, 0x60, 0xd9, 0x3b, 0xd6, 0xa1, 0x83, 0xc6, 0xa1, 0xf9, 0xcb, 0xf1, 0xf8, 0x38, 0x74, 0x68, 0x01, 0x76, 0x68, 0xfe, 0x72, 0x3c, 0x1e, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x61, 0x37, 0x34, 0x5c, 0x5c, 0x43, 0x9f, 0xc6, 0x0d, 0x96, 0x52, 0x29, 0x2d, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x90, 0x0c, 0x18, 0xf7, 0x73, 0xc7, 0xe3, 0x43, 0x27, 0xa2, 0x41, 0xb0, 0xc1, 0x8a, 0x7e, 0xaa, 0x43, 0xf7, 0xa3, 0x0d, 0xcd, 0x22, 0x07, 0xc1, 0x06, 0x8b, 0x7f, 0x9f, 0x0e, 0x1d, 0x34, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xbb, 0xa1, 0xe3, 0xc8, 0xc2, 0x6e, 0xb0, 0x8a, 0xe9, 0x68, 0x83, 0x45, 0x50, 0x47, 0xc3, 0x6e, 0xb0, 0x42, 0x59, 0x6a, 0x0d, 0x16, 0x39, 0x4b, 0x6d, 0xb0, 0x1c, 0x77, 0x69, 0x10, 0x6c, 0xb0, 0x3a, 0x77, 0xe9, 0xd0, 0x02, 0x6c, 0xd8, 0x0d, 0x56, 0xc1, 0x1d, 0xad, 0xc1, 0xba, 0xba, 0xa3, 0x0d, 0x16, 0xf7, 0x1d, 0x1d, 0x2c, 0xbf, 0xd4, 0x1a, 0x76, 0x83, 0x52, 0xd6, 0x6f, 0x0d, 0x4a, 0x67, 0xbf, 0x83, 0x45, 0x89, 0x59, 0xc3, 0x6e, 0xb0, 0x20, 0x02, 0x6b, 0x0d, 0xd6, 0x54, 0x60, 0x2d, 0x08, 0x36, 0x58, 0x3f, 0x49, 0x75, 0x68, 0x0a, 0x74, 0xb0, 0xfc, 0x52, 0x6b, 0xd8, 0x0d, 0x16, 0x19, 0x54, 0xad, 0xc1, 0x2a, 0x85, 0xaa, 0x0d, 0x96, 0x4b, 0x21, 0x1d, 0x2c, 0xbf, 0xd4, 0x1a, 0x76, 0x83, 0x85, 0x17, 0x55, 0x6b, 0xb0, 0x94, 0xa3, 0x6a, 0x83, 0xa5, 0x54, 0x4a, 0x07, 0xcb, 0x2f, 0xb5, 0x86, 0x5d, 0xb8, 0xc5, 0x83, 0x12, 0x3a, 0xf6, 0x10, 0xcd, 0x15, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x60, 0x29, 0xb3, 0xd6, 0x06, 0x4b, 0x99, 0xb5, 0x0e, 0xa7, 0xd8, 0x06, 0x8b, 0x0f, 0x92, 0x0e, 0x96, 0x5f, 0x6a, 0x2d, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0x18, 0xf8, 0x77, 0x61, 0x73, 0xe8, 0x06, 0xeb, 0xbe, 0xb5, 0x0e, 0xa7, 0xd8, 0x20, 0xd8, 0x60, 0x8d, 0x7f, 0xd1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x85, 0x87, 0x32, 0x87, 0x7c, 0xed, 0x71, 0xe8, 0x60, 0x75, 0x2c, 0xd4, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x10, 0x6c, 0xb0, 0xce, 0x24, 0xea, 0xd0, 0xa8, 0xe5, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0xf0, 0x0b, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb0, 0xc1, 0x32, 0x78, 0x81, 0x41, 0x32, 0x88, 0x0e, 0x46, 0x77, 0xc8, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0xf8, 0x73, 0x63, 0x6f, 0xf4, 0x21, 0xb5, 0x74, 0x3c, 0x5e, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x61, 0x17, 0x04, 0x1b, 0x0c, 0x7c, 0xec, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x03, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xa4, 0x6a, 0x8e, 0x43, 0x0b, 0xb2, 0x0d, 0x71, 0x19, 0x04, 0x0b, 0x82, 0x0d, 0x96, 0xb8, 0xdd, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xfc, 0x06, 0x07, 0xfa, 0xe6, 0x83, 0x23, 0x04, 0xfd, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x0d, 0xe7, 0xfa, 0x41, 0x3a, 0x20, 0xf4, 0x71, 0xe8, 0x60, 0x71, 0xc9, 0xd6, 0xc1, 0xf2, 0xbd, 0x9b, 0xe3, 0xf1, 0xc2, 0x2f, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0x06, 0xcb, 0xe0, 0x05, 0x06, 0xc9, 0x20, 0x3b, 0x18, 0xdd, 0x21, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0x38, 0xe0, 0xcf, 0x8d, 0xbd, 0xdd, 0x87, 0xd4, 0xd2, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0x32, 0x70, 0x6b, 0x1d, 0x92, 0x4b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xa9, 0x9a, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x81, 0xdd, 0xbb, 0x43, 0x72, 0xe9, 0x38, 0x74, 0x3c, 0x5e, 0xf8, 0x05, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0xb0, 0x1b, 0x14, 0x06, 0x8f, 0x0b, 0x82, 0x05, 0xc9, 0xc0, 0xa9, 0x75, 0x48, 0x2e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xe4, 0x6b, 0x87, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0x4b, 0x5d, 0x5f, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x9c, 0x6b, 0x87, 0x15, 0xda, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xc1, 0x81, 0xbe, 0xf9, 0xe0, 0xb4, 0x82, 0x7b, 0x1c, 0x1a, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x08, 0x54, 0xae, 0x43, 0x72, 0xe9, 0x60, 0x89, 0xe4, 0xcb, 0x71, 0x68, 0xd8, 0x0d, 0x4a, 0x0e, 0xc9, 0x05, 0xc1, 0x06, 0x4b, 0xde, 0xb6, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xf2, 0xb5, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0xc3, 0x6f, 0x50, 0xa2, 0x86, 0x1c, 0x2c, 0xc9, 0xa1, 0x39, 0x58, 0xfc, 0xb8, 0x75, 0x1c, 0x1a, 0x76, 0x83, 0xc2, 0x33, 0x71, 0x41, 0xb0, 0xc1, 0x92, 0xb7, 0xad, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x7c, 0xed, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0xa0, 0x44, 0x0d, 0x39, 0x38, 0xee, 0xf5, 0x1e, 0x87, 0x86, 0xdd, 0xa0, 0x18, 0x54, 0x5c, 0x10, 0x6c, 0xb0, 0xe4, 0x6d, 0x6b, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x5f, 0x3b, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xfc, 0x06, 0x25, 0x6a, 0xc8, 0xc1, 0xf9, 0x89, 0x76, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0xd2, 0x66, 0x97, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0xc7, 0xe0, 0x61, 0xf0, 0xe3, 0xd0, 0xc1, 0x12, 0xc9, 0x97, 0xe3, 0xd0, 0xb0, 0x1b, 0x94, 0xf6, 0x8a, 0x0b, 0x82, 0x0d, 0x96, 0xbc, 0x6d, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xe4, 0x6b, 0x87, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x87, 0xdf, 0xa0, 0x44, 0x0d, 0x39, 0x58, 0xb2, 0x2d, 0x33, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0x69, 0xb3, 0xcb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x63, 0xf0, 0x30, 0xf6, 0x71, 0xe8, 0x60, 0x89, 0xe4, 0xcb, 0x71, 0x68, 0xd8, 0x0d, 0x8a, 0xd4, 0xc8, 0x05, 0xc1, 0x06, 0x4b, 0xde, 0xb6, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xf2, 0xb5, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0xc3, 0x2f, 0x48, 0x06, 0xea, 0xdf, 0x21, 0xb9, 0x74, 0xb0, 0x2c, 0x84, 0x66, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x7c, 0xb0, 0xce, 0xf9, 0x65, 0x10, 0x6c, 0xb0, 0x16, 0x72, 0xeb, 0x60, 0x6d, 0xba, 0xcb, 0xc1, 0x12, 0xc9, 0x97, 0xe3, 0xd0, 0xb0, 0x0b, 0xb7, 0x41, 0x5a, 0x68, 0xf6, 0x21, 0x9a, 0x0b, 0x82, 0x0d, 0x96, 0xbc, 0x6d, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xe4, 0x6b, 0x87, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0xd2, 0x54, 0x87, 0xe4, 0xd2, 0x71, 0x68, 0x90, 0x6d, 0x68, 0xbe, 0x3e, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x81, 0x62, 0x77, 0x48, 0x2e, 0x1d, 0x3a, 0x68, 0x0c, 0xbb, 0xb0, 0x0b, 0xbb, 0xc1, 0xe8, 0x58, 0x5f, 0xd8, 0x0d, 0x16, 0xc0, 0xfa, 0x2c, 0xec, 0x06, 0x6b, 0x86, 0x52, 0x16, 0x76, 0xe1, 0x36, 0xc4, 0xf0, 0x20, 0xc8, 0xe2, 0x17, 0x76, 0xa1, 0x07, 0x83, 0x35, 0x76, 0x61, 0x17, 0x76, 0xa1, 0x07, 0x81, 0x1b, 0x7f, 0x58, 0xdf, 0x5c, 0xd8, 0x85, 0x1e, 0x84, 0x81, 0xfc, 0x61, 0x7d, 0xf3, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0x5f, 0xd8, 0x85, 0xdb, 0x20, 0x70, 0xe3, 0x0f, 0x59, 0xbb, 0x43, 0x3a, 0xf7, 0x70, 0xb4, 0xaf, 0x21, 0x86, 0x07, 0x61, 0x20, 0x7f, 0x88, 0xe1, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0xf8, 0x73, 0x6c, 0x61, 0xf7, 0x21, 0xb5, 0x74, 0x3c, 0x5e, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x06, 0xe5, 0x3e, 0xe0, 0xe2, 0x82, 0xbe, 0x36, 0x58, 0xd1, 0xc8, 0xd5, 0x20, 0xd8, 0x20, 0x05, 0xd5, 0x79, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x55, 0x33, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x1b, 0x72, 0xdf, 0x83, 0x60, 0x83, 0x04, 0x3e, 0xe9, 0x43, 0xa3, 0x96, 0xe3, 0xf1, 0x71, 0xe8, 0x78, 0xbc, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x41, 0x0a, 0xaa, 0xf3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xaa, 0x66, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x64, 0x20, 0x7f, 0x77, 0x10, 0xf0, 0xfe, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0xa7, 0xd6, 0x21, 0x5b, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xaa, 0x19, 0x7e, 0xe3, 0xf9, 0xf0, 0x0b, 0x92, 0x81, 0xe4, 0xdd, 0x21, 0x5b, 0x31, 0x48, 0x86, 0x3b, 0x24, 0x97, 0x8e, 0x43, 0xc3, 0x6f, 0x3c, 0xdf, 0xa0, 0x78, 0x8d, 0x3c, 0xa4, 0x0e, 0x8e, 0x43, 0xc7, 0xe3, 0xe3, 0xd0, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x83, 0x14, 0x54, 0xe7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x54, 0xcd, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x03, 0x6e, 0x77, 0x71, 0xd8, 0x0d, 0x5d, 0x33, 0x37, 0xa4, 0x0e, 0x06, 0xc1, 0x82, 0x64, 0x20, 0x74, 0x87, 0x6c, 0xc5, 0xa1, 0x51, 0xcb, 0xf1, 0xf8, 0x38, 0x74, 0x3c, 0x1e, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x24, 0x03, 0xb3, 0x77, 0x48, 0x2e, 0x0d, 0x92, 0xe1, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0xda, 0xdb, 0x1d, 0x92, 0x4b, 0x87, 0x46, 0x2d, 0xc7, 0xa1, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x64, 0x40, 0xf0, 0xee, 0x1c, 0x92, 0x4b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x80, 0xf0, 0xb7, 0x3b, 0x24, 0x97, 0x0e, 0x8d, 0x5a, 0x8e, 0x43, 0xc7, 0xe3, 0x15, 0x04, 0x8b, 0x0b, 0x82, 0x0d, 0x0a, 0x6a, 0xb1, 0xc5, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x92, 0x01, 0xe5, 0x7a, 0xd7, 0x61, 0x85, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x80, 0xc0, 0xe5, 0x3a, 0xac, 0xd0, 0x0e, 0xbf, 0xf1, 0xfc, 0x60, 0xf5, 0x32, 0xd7, 0x71, 0x68, 0x10, 0x6c, 0xb0, 0xce, 0xa5, 0x6b, 0x10, 0x6c, 0x10, 0x64, 0xf1, 0x8b, 0x83, 0x60, 0xe1, 0x37, 0x64, 0x2b, 0x0e, 0xd2, 0x0c, 0x35, 0x0e, 0x56, 0xe2, 0x8b, 0x1c, 0x8f, 0x0f, 0x8d, 0x5a, 0x8e, 0xc7, 0x83, 0x60, 0x83, 0x05, 0x8a, 0x31, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0xe3, 0x75, 0x3c, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0x6c, 0x50, 0x88, 0x15, 0x1e, 0x56, 0x68, 0x8f, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x01, 0x43, 0xbd, 0xeb, 0x78, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x1a, 0xac, 0x18, 0x8f, 0x19, 0x04, 0x1b, 0x2c, 0xc2, 0x7f, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xb0, 0x90, 0x31, 0x6a, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0x20, 0x4d, 0x75, 0x3c, 0x3f, 0x0e, 0xad, 0xc1, 0x02, 0x8e, 0x9c, 0x41, 0xb0, 0xc1, 0x42, 0x8a, 0x98, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x0f, 0x52, 0xd9, 0x82, 0x87, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0xda, 0x73, 0x1d, 0xcf, 0x8f, 0x43, 0x6b, 0xb0, 0xc4, 0x3f, 0x66, 0xf8, 0x05, 0xc9, 0x40, 0xac, 0x8e, 0xe7, 0x83, 0x64, 0xe0, 0xd4, 0x3b, 0x1e, 0xaf, 0x41, 0xfa, 0xd3, 0xf3, 0xf0, 0x1b, 0x2c, 0x7d, 0xec, 0x1a, 0x24, 0x03, 0xe7, 0xde, 0xf1, 0x78, 0x0d, 0xd2, 0x5e, 0xaa, 0x87, 0xdf, 0x60, 0xe9, 0x63, 0xd7, 0xc1, 0xa2, 0x1d, 0x98, 0x35, 0x48, 0x1e, 0x62, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xb0, 0x26, 0x0b, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x83, 0x01, 0xb7, 0x7b, 0x1c, 0x1a, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x0d, 0x96, 0x3e, 0x76, 0x1d, 0x2c, 0xb6, 0x8b, 0x39, 0x58, 0xf5, 0x03, 0x73, 0xb0, 0xd0, 0x77, 0x66, 0x0d, 0x92, 0x88, 0x48, 0x06, 0xc1, 0x06, 0x8b, 0xf0, 0x5f, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x2c, 0x0d, 0xa0, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0xb0, 0x68, 0x9f, 0xea, 0x78, 0x7e, 0x1c, 0x3a, 0xc4, 0xf0, 0x38, 0x74, 0x1c, 0x3a, 0x28, 0x19, 0x9a, 0x16, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0x48, 0x06, 0xd6, 0xed, 0x0e, 0xd9, 0x8a, 0x83, 0x21, 0x63, 0x73, 0x3c, 0x3e, 0x1e, 0x0f, 0x82, 0x05, 0xc9, 0x40, 0xba, 0xeb, 0x78, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x87, 0x5d, 0xd8, 0x0d, 0x1d, 0x47, 0x16, 0x76, 0x43, 0x1e, 0x6b, 0xc3, 0xae, 0xc1, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x1b, 0x12, 0x53, 0xc3, 0x2e, 0xdc, 0x86, 0x18, 0x0e, 0x82, 0x05, 0xc9, 0x80, 0xc4, 0xf7, 0xbe, 0x43, 0xb6, 0xe2, 0xd0, 0xa8, 0xe5, 0xe0, 0x98, 0xb9, 0x7e, 0x3c, 0x1e, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0x2c, 0x1a, 0x1f, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x83, 0x95, 0x60, 0x28, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0x41, 0x32, 0x50, 0xff, 0x8e, 0xc7, 0x07, 0xcb, 0x42, 0x68, 0x8e, 0x43, 0x83, 0x60, 0x83, 0xd5, 0x17, 0x5e, 0x07, 0x4b, 0x28, 0x46, 0x8e, 0x43, 0x83, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x6c, 0x50, 0x8e, 0x88, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0xeb, 0x76, 0x87, 0xe4, 0xd2, 0x21, 0xd1, 0x7a, 0x1c, 0x3a, 0x1e, 0xaf, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0xb8, 0x20, 0xd8, 0x60, 0x94, 0x95, 0x2d, 0x0e, 0xbb, 0x41, 0xd0, 0xeb, 0xaf, 0x21, 0xf7, 0x3d, 0x08, 0x36, 0x8c, 0xcb, 0x21, 0x0d, 0xb7, 0x41, 0xb9, 0x0f, 0xb8, 0xb8, 0xc1, 0x6a, 0x00, 0x92, 0x05, 0xdf, 0x3a, 0x58, 0xfb, 0x09, 0x34, 0xfc, 0x06, 0xa5, 0xd9, 0xdb, 0x20, 0x58, 0x1c, 0x76, 0x61, 0x17, 0x7a, 0xc8, 0xda, 0x1d, 0xd6, 0x37, 0x57, 0x90, 0x0c, 0x39, 0x9e, 0x1f, 0x62, 0xb8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x84, 0x07, 0xc5, 0xa1, 0xc6, 0xf1, 0xfc, 0xa0, 0xec, 0xc7, 0x3a, 0xbe, 0x1d, 0x8f, 0x57, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0x05, 0xc1, 0x06, 0x07, 0xac, 0xe7, 0x83, 0xd4, 0xb1, 0x9d, 0x41, 0xb0, 0x21, 0x86, 0x1b, 0x72, 0xdf, 0x83, 0x60, 0x71, 0xd8, 0x05, 0xc1, 0x82, 0x64, 0x50, 0x73, 0x70, 0x12, 0x3a, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0xd5, 0x1c, 0xf6, 0x0a, 0x8f, 0x43, 0x1b, 0x62, 0x38, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x81, 0xe2, 0x74, 0x30, 0x1c, 0xa5, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xc5, 0xa2, 0x0d, 0x46, 0x49, 0xe2, 0x41, 0x90, 0xe2, 0x1f, 0x87, 0x86, 0x5d, 0xb8, 0x0d, 0x12, 0xfd, 0xa0, 0x8f, 0x43, 0x0b, 0x82, 0x05, 0xc1, 0x82, 0x64, 0xa0, 0x38, 0x1d, 0x9c, 0x84, 0x8e, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xc5, 0xa2, 0x85, 0xdf, 0x78, 0xbe, 0xc1, 0x70, 0x53, 0x38, 0x1c, 0xed, 0x07, 0xa3, 0xd5, 0xfc, 0x38, 0x34, 0xec, 0x42, 0x0f, 0x86, 0x31, 0xec, 0x82, 0x60, 0x41, 0xb2, 0x41, 0x51, 0x9f, 0x73, 0x70, 0xcc, 0x2a, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x98, 0xbd, 0x83, 0xe1, 0x28, 0x3d, 0x48, 0x86, 0x1b, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x08, 0xde, 0xc1, 0x70, 0x94, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0x1d, 0x1c, 0xa4, 0x37, 0x36, 0x1c, 0x87, 0x8e, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0x06, 0x25, 0x2f, 0xdd, 0x20, 0x5a, 0xd8, 0x41, 0xb0, 0xc1, 0x89, 0xcf, 0xf8, 0x60, 0x48, 0xbe, 0x1e, 0x92, 0x4b, 0xc7, 0xa1, 0x0d, 0x92, 0x3b, 0x98, 0x37, 0x58, 0x58, 0x8f, 0x33, 0x48, 0x86, 0x1c, 0xac, 0xab, 0xf6, 0x1a, 0x04, 0x1b, 0xac, 0x69, 0x87, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0xd9, 0x26, 0x7b, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x83, 0x73, 0x21, 0xf6, 0x71, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0xc8, 0x41, 0x5a, 0x1c, 0xf4, 0x71, 0xe8, 0xf8, 0x76, 0x3c, 0x1e, 0x04, 0x1b, 0x62, 0xb8, 0xb8, 0x41, 0xb9, 0x0f, 0xb8, 0xb8, 0xa0, 0xae, 0xc3, 0x29, 0x36, 0x08, 0x16, 0x87, 0xdd, 0xa0, 0x88, 0x6c, 0xda, 0x10, 0xc3, 0x85, 0xdd, 0xb0, 0x16, 0xba, 0x20, 0xd8, 0x20, 0x89, 0x83, 0xe7, 0x60, 0xd9, 0x45, 0xce, 0xb0, 0x1b, 0x2c, 0xc0, 0xf2, 0x5a, 0x10, 0x6c, 0x90, 0xc4, 0xc1, 0x73, 0xd8, 0xa8, 0x1d, 0x76, 0x61, 0x37, 0x58, 0x8c, 0xe5, 0xb5, 0xb0, 0x0b, 0xb7, 0x21, 0x86, 0x07, 0xc5, 0xa1, 0xc6, 0xc2, 0x6d, 0x38, 0xda, 0x0f, 0xc6, 0x85, 0xd9, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x0b, 0x82, 0x0d, 0x92, 0x38, 0x78, 0x0e, 0x16, 0x65, 0xe0, 0x0c, 0xbb, 0xb0, 0x1b, 0x2c, 0xc6, 0xf2, 0x5a, 0xd8, 0x0d, 0xd6, 0x7e, 0x7c, 0x2d, 0xec, 0x42, 0x0f, 0xc6, 0x85, 0xd9, 0x61, 0x7d, 0xf3, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0x35, 0xe4, 0xbe, 0x37, 0x48, 0x29, 0x7a, 0x1e, 0x04, 0x0b, 0x92, 0x81, 0xe0, 0x1c, 0x04, 0xbc, 0xff, 0x20, 0x19, 0x74, 0x0d, 0xa2, 0x85, 0x3d, 0x18, 0x59, 0x56, 0xc7, 0xa1, 0x61, 0x17, 0x76, 0x83, 0xc5, 0x58, 0x5e, 0x0b, 0xbb, 0x70, 0x1b, 0x8e, 0xf6, 0x83, 0xe2, 0x50, 0x63, 0x61, 0x37, 0x58, 0x69, 0xf3, 0xb5, 0xb0, 0x0b, 0xbb, 0xd0, 0x83, 0xd4, 0xf5, 0x81, 0xc3, 0xfa, 0xe6, 0xc2, 0x6d, 0x88, 0xe1, 0xc1, 0x41, 0xbc, 0xfb, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x17, 0x04, 0x1b, 0x24, 0x71, 0xf0, 0x1c, 0xac, 0xe9, 0xc2, 0x19, 0x76, 0x61, 0x37, 0x58, 0x8c, 0xe5, 0xb5, 0xb0, 0x1b, 0xac, 0x7f, 0xfa, 0x5a, 0xd8, 0x0d, 0x56, 0xda, 0x7c, 0x2d, 0xec, 0x06, 0x6b, 0xaf, 0xbe, 0x16, 0x76, 0xa1, 0x07, 0x07, 0xf1, 0xee, 0x85, 0x5d, 0xb8, 0x0d, 0x31, 0x3c, 0x38, 0x46, 0x4e, 0x2f, 0xec, 0x42, 0x0f, 0x8e, 0xf5, 0xf5, 0x87, 0xf5, 0xcd, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x87, 0xa3, 0x7d, 0x0d, 0xb9, 0xef, 0x41, 0xb0, 0x41, 0x3a, 0x48, 0xf7, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xd2, 0xf7, 0xd9, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xa4, 0x0c, 0x06, 0x1c, 0x2c, 0xff, 0xc6, 0x39, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0xd8, 0x85, 0xdb, 0x10, 0xc3, 0x83, 0x63, 0x7d, 0xfd, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x8b, 0xe3, 0xa0, 0xa4, 0xe3, 0xdb, 0x20, 0xd8, 0x60, 0xf5, 0xfe, 0xc0, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0x60, 0x39, 0xae, 0xd0, 0x71, 0xe8, 0x38, 0x34, 0xc8, 0x36, 0x34, 0x5f, 0x1f, 0x04, 0x1b, 0x24, 0x71, 0xf0, 0x1c, 0x2c, 0x87, 0xc7, 0x39, 0x58, 0xb1, 0xa0, 0x73, 0x7c, 0x3b, 0x1e, 0x0f, 0xbb, 0x41, 0x11, 0xd9, 0xb4, 0x86, 0xdc, 0xf7, 0x20, 0xd8, 0x60, 0xb0, 0x56, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0xe9, 0x9d, 0xc3, 0x0a, 0xed, 0xc1, 0x30, 0x0b, 0x3f, 0x0e, 0x0d, 0xbb, 0xb0, 0x1b, 0x14, 0x97, 0x4d, 0x1b, 0xd6, 0x42, 0x0f, 0x47, 0xfb, 0x1a, 0x72, 0xdf, 0x1b, 0x24, 0x11, 0x91, 0x0c, 0x82, 0x05, 0xc9, 0x06, 0x45, 0x7d, 0xce, 0x41, 0x90, 0xf3, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0xb0, 0x56, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x48, 0x33, 0xfe, 0x39, 0xec, 0xf1, 0x1e, 0x87, 0x0e, 0x12, 0x19, 0xa2, 0x8f, 0x43, 0xc3, 0x2e, 0xec, 0x06, 0xc5, 0x65, 0xd3, 0xc2, 0x2e, 0xdc, 0x06, 0xe7, 0xc8, 0xdd, 0x43, 0xd6, 0x6e, 0x83, 0xa5, 0x82, 0x41, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0xaf, 0x21, 0xf7, 0x3d, 0x08, 0x36, 0x18, 0xac, 0x15, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x16, 0x37, 0x7f, 0x1d, 0xf6, 0x78, 0x8f, 0x43, 0xc3, 0x2e, 0xec, 0x06, 0xc5, 0x65, 0xd3, 0xc2, 0x6d, 0x90, 0xb6, 0x40, 0x7d, 0xc8, 0xda, 0x1d, 0x8e, 0xf6, 0x05, 0xc1, 0x06, 0x25, 0x43, 0xd3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xc3, 0xda, 0xef, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xc9, 0x40, 0x70, 0x0e, 0x82, 0x9c, 0x7f, 0x90, 0x0c, 0xfa, 0x0e, 0xed, 0x5b, 0x8e, 0xc7, 0xc7, 0xa1, 0x61, 0x17, 0x76, 0x83, 0xe2, 0xb2, 0x69, 0x61, 0x37, 0x58, 0x8c, 0xe5, 0xb5, 0xb0, 0x0b, 0xb7, 0xc1, 0x52, 0x9b, 0x82, 0x83, 0xe2, 0x50, 0xe3, 0x60, 0x6d, 0xcd, 0xd7, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x6b, 0x50, 0x48, 0xfd, 0x2d, 0x6e, 0xb0, 0x9e, 0xe0, 0x6b, 0x83, 0x75, 0x5a, 0x00, 0x87, 0x53, 0x6c, 0x0d, 0xb9, 0xef, 0x41, 0xb0, 0xc1, 0x60, 0xad, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0xb8, 0xf9, 0x6b, 0x90, 0x0c, 0x39, 0x58, 0x73, 0xf4, 0x75, 0x1c, 0x5a, 0x90, 0x0c, 0xb2, 0x83, 0xd0, 0x5b, 0x3f, 0xc4, 0x70, 0xd8, 0x85, 0xdd, 0xa0, 0xb8, 0x6c, 0x5a, 0xb8, 0x0d, 0x06, 0xbe, 0xf1, 0x21, 0x6b, 0x77, 0x38, 0xda, 0x17, 0x04, 0x1b, 0x94, 0x0c, 0x4d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x6b, 0xbf, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x36, 0x58, 0x92, 0x02, 0x36, 0x48, 0x06, 0x5d, 0x87, 0xf6, 0x2d, 0xc7, 0xe3, 0xe3, 0xd0, 0xb0, 0x0b, 0xbb, 0x41, 0x71, 0xd9, 0xb4, 0x70, 0x1b, 0x2c, 0x5e, 0x01, 0x3a, 0x64, 0xed, 0x0e, 0x47, 0xfb, 0x82, 0x60, 0x41, 0x32, 0x20, 0xf8, 0xfb, 0x0e, 0x82, 0x9c, 0xff, 0xb0, 0xc7, 0x3b, 0xec, 0xc2, 0x6e, 0x50, 0x5c, 0x36, 0x2d, 0xdc, 0x06, 0x0b, 0xd0, 0x18, 0x0e, 0x59, 0xbb, 0xc3, 0xd1, 0xbe, 0x06, 0xe5, 0x3e, 0xe0, 0x06, 0x2b, 0x19, 0xb9, 0x06, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0x20, 0x19, 0xb8, 0xbf, 0x0e, 0x02, 0xde, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x10, 0xbe, 0x3b, 0x07, 0x41, 0xce, 0x7f, 0xb0, 0x74, 0x6f, 0xea, 0xd0, 0xfc, 0xe5, 0x78, 0x7c, 0x1c, 0x3a, 0xec, 0xf1, 0x0e, 0x82, 0x0d, 0xd2, 0x65, 0xbb, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x52, 0x07, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0xb8, 0x21, 0xf7, 0x3d, 0x08, 0x36, 0x58, 0xbd, 0x3f, 0x70, 0x68, 0xd4, 0x72, 0x3c, 0x3e, 0x0e, 0x0d, 0xbb, 0xb0, 0x1b, 0x14, 0x97, 0x4d, 0x0b, 0xb7, 0x18, 0xce, 0x1e, 0xb2, 0x76, 0x87, 0xa3, 0x7d, 0x41, 0xb0, 0x20, 0x19, 0xac, 0x8e, 0xc7, 0x87, 0x3d, 0xde, 0x61, 0x17, 0x76, 0x83, 0xe2, 0xb2, 0x69, 0xe1, 0x36, 0x58, 0x83, 0x02, 0x74, 0xc8, 0xda, 0x1d, 0x8e, 0xf6, 0x05, 0xc9, 0x20, 0x1b, 0x44, 0x0b, 0xe2, 0xc5, 0xc1, 0xdb, 0x00, 0x7a, 0x4a, 0xd0, 0x74, 0x74, 0xb6, 0x4a, 0xc8, 0x40, 0x4a, 0xc8, 0xba, 0x5c, 0xb6, 0x4a, 0xc8, 0x40, 0x4a, 0xc8, 0xba, 0xfc, 0x86, 0x1e, 0x42, 0x1b, 0x2c, 0x12, 0xff, 0xd9, 0xa0, 0x38, 0xe7, 0xda, 0x20, 0xec, 0xa9, 0x37, 0x28, 0xb1, 0x07, 0x0f, 0x31, 0x3c, 0x1e, 0x0f, 0xbb, 0xb0, 0x1b, 0x14, 0x97, 0x4d, 0x0b, 0xb7, 0x41, 0x29, 0x22, 0x79, 0xc8, 0xda, 0x1d, 0x8e, 0xf6, 0x05, 0xc1, 0x06, 0x25, 0x43, 0xd3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xc3, 0xda, 0xef, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x0d, 0x96, 0xa4, 0x80, 0x0d, 0x92, 0x81, 0xb9, 0x3a, 0xb4, 0x6f, 0x39, 0x1e, 0x1f, 0x87, 0x86, 0x5d, 0xd8, 0x0d, 0x8a, 0xcb, 0xa6, 0x85, 0xdb, 0xa0, 0x88, 0x94, 0x3c, 0x64, 0xed, 0x0e, 0x47, 0xfb, 0x82, 0x60, 0x83, 0x92, 0xa1, 0x69, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x61, 0xed, 0x77, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x06, 0x4b, 0x52, 0xc0, 0x06, 0xc9, 0x40, 0xad, 0x3a, 0xb4, 0x6f, 0x39, 0x1e, 0x1f, 0x87, 0x86, 0x5d, 0xd8, 0x0d, 0x8a, 0xcb, 0xa6, 0x85, 0xdb, 0x60, 0x4d, 0x5a, 0xc2, 0x21, 0x6b, 0x77, 0x38, 0xda, 0x17, 0x24, 0x83, 0x6c, 0x10, 0x2d, 0x88, 0x17, 0x07, 0x97, 0x07, 0x05, 0x83, 0xef, 0xe1, 0xfd, 0x21, 0x5f, 0x7b, 0x3c, 0x1e, 0x76, 0x61, 0x37, 0x28, 0x2e, 0x9b, 0x16, 0x6e, 0x83, 0x12, 0x28, 0xf2, 0x90, 0xb5, 0x3b, 0x1c, 0xed, 0x0b, 0x82, 0x0d, 0x4a, 0x86, 0xa6, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xb5, 0xdf, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x1b, 0x2c, 0x49, 0x01, 0x1b, 0x24, 0x03, 0xa5, 0xea, 0xd0, 0xbe, 0xe5, 0x78, 0x7c, 0x1c, 0x1a, 0x76, 0x61, 0x37, 0x28, 0x2e, 0x9b, 0x16, 0x6e, 0x83, 0x04, 0x8f, 0xe7, 0x43, 0xd6, 0xee, 0x70, 0xb4, 0x2f, 0x08, 0x36, 0x28, 0x19, 0x9a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xd6, 0x7e, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x6c, 0xb0, 0x24, 0x05, 0x6c, 0x90, 0x0c, 0x73, 0x68, 0xdf, 0x72, 0x3c, 0x3e, 0x0e, 0x0d, 0xbb, 0xb0, 0x1b, 0x14, 0x97, 0x4d, 0x0b, 0xb7, 0x41, 0x82, 0x24, 0xf4, 0x21, 0x6b, 0x77, 0x38, 0xda, 0x17, 0x04, 0x1b, 0x94, 0x0c, 0x4d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x6b, 0xbf, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x36, 0x58, 0x92, 0x02, 0x36, 0x48, 0x06, 0x86, 0xea, 0xd0, 0xbe, 0xe5, 0x78, 0x7c, 0x1c, 0x1a, 0x76, 0x61, 0x37, 0x28, 0x2e, 0x9b, 0x16, 0x76, 0x83, 0xc5, 0x58, 0x5e, 0x0b, 0xbb, 0x70, 0x1b, 0xac, 0xea, 0x5e, 0x38, 0x28, 0x0e, 0x35, 0x0e, 0xd6, 0xd6, 0x7c, 0x1d, 0x8e, 0xf6, 0xc3, 0xd1, 0xbe, 0x20, 0xd8, 0xe0, 0xfc, 0x44, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x64, 0x59, 0x1d, 0xd6, 0x7e, 0x8f, 0x43, 0xc3, 0x2e, 0xec, 0x06, 0xc5, 0x65, 0xd3, 0xc2, 0x6e, 0xb0, 0x18, 0xcb, 0x6b, 0x61, 0x17, 0x6e, 0x83, 0x35, 0x69, 0x09, 0x07, 0xc5, 0xa1, 0xc6, 0xc1, 0xda, 0x9a, 0xaf, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x17, 0x24, 0x83, 0x6c, 0x10, 0x2d, 0x88, 0xd7, 0x60, 0x4d, 0x5a, 0xc2, 0x06, 0x09, 0x65, 0x27, 0x0b, 0x82, 0x0d, 0x02, 0x94, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x50, 0x2c, 0xda, 0x60, 0xbc, 0x21, 0x1d, 0x8c, 0x2c, 0xab, 0xe3, 0xd0, 0x20, 0xd8, 0x20, 0x40, 0xf9, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xc5, 0xa2, 0x0d, 0x46, 0x73, 0xd2, 0xc1, 0xc8, 0xb2, 0x3a, 0x0e, 0x1d, 0xf2, 0xb5, 0xc7, 0xe3, 0x61, 0x17, 0x76, 0x83, 0xe2, 0xb2, 0x69, 0x61, 0x37, 0x58, 0x8c, 0xe5, 0xb5, 0xb0, 0x1b, 0x2c, 0xfe, 0x0d, 0x5b, 0xd8, 0x0d, 0x56, 0xda, 0x7c, 0x2d, 0xec, 0x06, 0x6b, 0xaf, 0xbe, 0x16, 0x76, 0x83, 0x05, 0x78, 0x5f, 0x0b, 0xbb, 0xb0, 0x0b, 0x3d, 0x38, 0x46, 0x4e, 0x1f, 0xd6, 0x37, 0x0f, 0xd6, 0xfc, 0x7d, 0x1d, 0x8e, 0xf6, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x6b, 0x50, 0xee, 0x03, 0xae, 0x20, 0xd8, 0x60, 0xb0, 0x56, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x58, 0xdc, 0xfc, 0x35, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x3d, 0x48, 0x19, 0x0c, 0x38, 0x0e, 0x1d, 0x87, 0x16, 0x04, 0x1b, 0x0c, 0xd6, 0x8a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x8b, 0x9b, 0xbf, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x07, 0x4b, 0x86, 0x84, 0x8e, 0x43, 0xc7, 0xa1, 0x41, 0xb0, 0xc1, 0x60, 0xad, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0xb8, 0xf9, 0xeb, 0x60, 0xbd, 0xeb, 0xd7, 0x71, 0x68, 0x10, 0x2c, 0x0e, 0xbb, 0xb0, 0x0b, 0x3d, 0xac, 0xfd, 0x1e, 0xd6, 0x37, 0x37, 0xc4, 0x70, 0x41, 0x32, 0xc8, 0x0e, 0x06, 0xe0, 0xff, 0x20, 0x19, 0x32, 0x88, 0x36, 0x28, 0x0f, 0xe2, 0x8e, 0xc7, 0xc7, 0xb7, 0x61, 0x17, 0x76, 0x83, 0xe2, 0xb2, 0x69, 0xe1, 0x36, 0x38, 0xf3, 0xce, 0x1e, 0xb2, 0x76, 0x87, 0xa3, 0x7d, 0x41, 0x32, 0xc8, 0x06, 0xd1, 0x82, 0x78, 0x71, 0x70, 0xf9, 0x20, 0x00, 0xee, 0x0f, 0xf9, 0xda, 0xe3, 0xf1, 0x41, 0xfa, 0x75, 0xf4, 0xc1, 0x5a, 0x3e, 0x81, 0xe3, 0xf1, 0x82, 0x60, 0x71, 0xc3, 0x29, 0x76, 0x50, 0x04, 0xfa, 0x2d, 0x0e, 0x82, 0x05, 0xc1, 0x06, 0x8b, 0xee, 0xb9, 0x06, 0xc9, 0x30, 0x87, 0xbe, 0x1a, 0x07, 0xa5, 0xf5, 0xd8, 0xf1, 0x78, 0x10, 0x6c, 0x50, 0xf8, 0xf9, 0x2d, 0x2e, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0xc2, 0x2f, 0x48, 0x06, 0x44, 0xfa, 0x7f, 0xdf, 0x41, 0xc0, 0xfb, 0x1f, 0xdf, 0x06, 0xc1, 0xe2, 0xc2, 0x6e, 0x30, 0x7c, 0x59, 0x17, 0x04, 0x1b, 0xac, 0xe5, 0x13, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0x7a, 0x7f, 0xe0, 0x60, 0xb4, 0xb5, 0x1e, 0x87, 0x86, 0x5d, 0xb8, 0x0d, 0xb9, 0xef, 0x83, 0x20, 0xc5, 0x5f, 0x10, 0x6c, 0xb0, 0x96, 0x4f, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x7b, 0x30, 0x8c, 0x61, 0x8f, 0x43, 0xc3, 0x2e, 0xdc, 0x06, 0x85, 0xd4, 0xdf, 0x41, 0x90, 0xe2, 0x2f, 0x08, 0x16, 0x24, 0xc3, 0x1d, 0xb2, 0x15, 0xc3, 0x2e, 0x08, 0x36, 0x38, 0xb3, 0x65, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x28, 0xd5, 0xfb, 0x0e, 0x86, 0x7f, 0xec, 0xc1, 0xc0, 0x16, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0xd5, 0x91, 0x7b, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x88, 0xf8, 0x1f, 0x04, 0x29, 0xfe, 0x71, 0xe8, 0x38, 0xb4, 0x20, 0x58, 0x90, 0x0c, 0xb2, 0xe3, 0xf9, 0xc1, 0xc0, 0x16, 0x1d, 0x7e, 0xe3, 0xf1, 0xf0, 0x1b, 0x8f, 0x87, 0x5d, 0xb8, 0x0d, 0x31, 0x3c, 0x28, 0xc7, 0x1a, 0x16, 0x04, 0x1b, 0x2c, 0x53, 0x16, 0x1b, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x4e, 0xb0, 0xea, 0x7f, 0x1c, 0x1a, 0x76, 0xe1, 0x36, 0xc4, 0x70, 0x82, 0xbb, 0x7f, 0xe1, 0x17, 0x44, 0x0b, 0xce, 0x0f, 0x82, 0x0d, 0x86, 0x9c, 0xf4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xe3, 0xf9, 0x83, 0x20, 0xc5, 0x3f, 0x0e, 0x0d, 0xa2, 0x05, 0xf1, 0x20, 0x19, 0x66, 0x10, 0x2d, 0xb8, 0x7f, 0x50, 0xfc, 0x16, 0x1c, 0xcf, 0x8f, 0xc7, 0x07, 0x8b, 0xad, 0xc5, 0x86, 0x5f, 0x10, 0x2d, 0x50, 0xfb, 0x0f, 0xca, 0xb1, 0x86, 0xe3, 0xf1, 0x20, 0x58, 0x10, 0x6c, 0x90, 0x3c, 0xc7, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xd0, 0x78, 0x7e, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xe5, 0xb5, 0x62, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x83, 0x02, 0x7d, 0xe7, 0x38, 0x74, 0x1c, 0x1a, 0x7e, 0x41, 0xb4, 0x60, 0x3e, 0x08, 0x16, 0x87, 0x5d, 0xb8, 0x0d, 0x31, 0x9c, 0x20, 0xf7, 0xbf, 0x41, 0x60, 0x62, 0x0f, 0x82, 0x05, 0xc1, 0x06, 0x89, 0xa1, 0x0b, 0x87, 0x8e, 0xf1, 0x83, 0x64, 0x98, 0x41, 0xb4, 0xe0, 0xfe, 0x41, 0x32, 0xf1, 0xc2, 0x20, 0x5a, 0x50, 0x3e, 0x08, 0x36, 0x38, 0xf1, 0x19, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x38, 0x33, 0x2e, 0x1f, 0x52, 0x07, 0xc7, 0xa1, 0x41, 0xb4, 0xb0, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x20, 0xf7, 0x7f, 0x50, 0x54, 0x09, 0x1d, 0x24, 0x97, 0x3e, 0x1c, 0xb2, 0x15, 0xc7, 0xb7, 0xe3, 0xf1, 0x20, 0xd8, 0x60, 0x24, 0xe0, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x27, 0x68, 0xf5, 0x7f, 0x1c, 0x1a, 0x64, 0x6b, 0x68, 0xbf, 0x3e, 0xdc, 0x06, 0xe5, 0x3e, 0xe0, 0x41, 0x90, 0xe2, 0x0f, 0x82, 0x0d, 0x16, 0xa7, 0x8a, 0x0d, 0xbb, 0xc1, 0xaa, 0x56, 0xb1, 0x0d, 0xd6, 0x25, 0x8b, 0x0d, 0xbf, 0xf1, 0x78, 0xf8, 0x8d, 0xc7, 0xc3, 0x6f, 0x3c, 0x1e, 0x7e, 0x41, 0xb4, 0x20, 0x1e, 0x04, 0x8b, 0xc3, 0x2e, 0xdc, 0x86, 0x18, 0x1e, 0x14, 0xe8, 0x3b, 0x0b, 0xbb, 0x70, 0x1b, 0x62, 0x38, 0xc1, 0xae, 0xff, 0x86, 0xbd, 0xc2, 0x41, 0xb0, 0x20, 0x19, 0x64, 0x87, 0xe4, 0xd2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x82, 0x5e, 0xff, 0xc7, 0xa1, 0x41, 0x32, 0xcc, 0x20, 0x5a, 0x70, 0xff, 0x20, 0x1d, 0xaf, 0x61, 0x10, 0x2d, 0x28, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0xe8, 0x1c, 0x9c, 0x84, 0x8e, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x70, 0xb8, 0x92, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x68, 0x3c, 0x7f, 0x30, 0x5a, 0xcd, 0x8f, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xa4, 0xf8, 0x2c, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x34, 0x9e, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x9c, 0x2b, 0x07, 0x27, 0xa1, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xc3, 0x18, 0xf6, 0x60, 0x28, 0x16, 0x1d, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0x41, 0xb4, 0xb0, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xe0, 0xf6, 0x9f, 0x20, 0xef, 0x7f, 0x3c, 0x3e, 0x24, 0x97, 0x8e, 0x6f, 0xc7, 0xe3, 0x61, 0x17, 0x6e, 0x43, 0x0c, 0x27, 0x48, 0xf5, 0x6f, 0x48, 0xd5, 0x0c, 0x82, 0x0d, 0xd2, 0xa7, 0x4f, 0x0e, 0x16, 0x67, 0x8b, 0x2d, 0x08, 0x36, 0xc4, 0x70, 0x71, 0xd8, 0x0d, 0xc6, 0x26, 0xe7, 0x82, 0x60, 0x83, 0x75, 0x6d, 0x63, 0x87, 0x46, 0x2d, 0x83, 0x60, 0x41, 0xb0, 0xc1, 0xe1, 0x4a, 0x7a, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x90, 0x1a, 0x24, 0x30, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x49, 0xd0, 0x30, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x80, 0x52, 0xbd, 0xef, 0x60, 0x38, 0x4a, 0x1f, 0x1a, 0xb5, 0x1c, 0x87, 0x8e, 0x43, 0xc3, 0x2e, 0x08, 0x36, 0x24, 0x3b, 0x06, 0xc1, 0xe2, 0xb0, 0x1b, 0xd6, 0xf7, 0x36, 0x1c, 0xed, 0xc3, 0x6e, 0x10, 0x7c, 0xcc, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x2e, 0xdc, 0x06, 0x09, 0x65, 0x27, 0x87, 0x68, 0x2e, 0xec, 0x82, 0x64, 0xc8, 0x20, 0x5a, 0x10, 0x0f, 0x82, 0x05, 0xc9, 0x40, 0x7a, 0xe5, 0xe0, 0x74, 0x86, 0x7c, 0x30, 0xcc, 0xc2, 0x0f, 0x8a, 0x9a, 0xb3, 0x43, 0x3a, 0xf7, 0x70, 0xb4, 0x1f, 0xd2, 0xb9, 0xc7, 0xb7, 0x15, 0x04, 0x0b, 0x92, 0x41, 0xcb, 0xc1, 0xf0, 0x8f, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x0d, 0x46, 0xab, 0xf9, 0x41, 0x42, 0xd9, 0xc9, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x6b, 0xda, 0x21, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xf6, 0x0a, 0x87, 0xdf, 0x78, 0xbe, 0x41, 0x42, 0xd9, 0xc9, 0x20, 0x58, 0x90, 0x6c, 0x50, 0xf8, 0x07, 0x1d, 0x9c, 0x84, 0x8e, 0x0f, 0x0a, 0x2b, 0xaa, 0xe3, 0xd0, 0x71, 0xe8, 0x90, 0x98, 0x19, 0x04, 0x0b, 0x92, 0x41, 0x76, 0x58, 0xa1, 0x3d, 0x18, 0x66, 0xe1, 0xc7, 0xe3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x0b, 0x82, 0x05, 0xc9, 0xa0, 0xe5, 0x60, 0x18, 0xfa, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x06, 0x41, 0x8a, 0x7f, 0x90, 0x50, 0x76, 0x72, 0x48, 0xd5, 0x1c, 0x87, 0x0e, 0x7b, 0x85, 0xc7, 0xe3, 0x83, 0x92, 0xa1, 0xe9, 0x78, 0x3c, 0xec, 0x86, 0xae, 0x99, 0x1b, 0xa4, 0x03, 0x42, 0x0f, 0xbb, 0x41, 0x29, 0xeb, 0xb7, 0x61, 0x5c, 0x86, 0xdd, 0xa0, 0x60, 0xfa, 0x5b, 0xf8, 0x8d, 0xc7, 0xc3, 0x6f, 0x3c, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0x19, 0x6e, 0x10, 0x2d, 0xec, 0x06, 0xe5, 0x3e, 0xe0, 0x1a, 0x0c, 0x2f, 0x8a, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x28, 0x28, 0xee, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xab, 0x95, 0x09, 0xc6, 0xfa, 0x38, 0x34, 0x41, 0x5c, 0x0f, 0x82, 0xd2, 0xfb, 0x78, 0x3c, 0xc8, 0xd6, 0xd0, 0x7e, 0x7d, 0xb8, 0x0d, 0xca, 0x7d, 0xc0, 0x43, 0x34, 0x87, 0xdf, 0x78, 0x3c, 0xfc, 0xc6, 0xe3, 0xe1, 0x37, 0x1e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0x50, 0x50, 0xdc, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x56, 0x2b, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x8b, 0xc3, 0x6e, 0x10, 0x24, 0xcd, 0x1b, 0x04, 0xb9, 0xf5, 0x20, 0xd8, 0x60, 0xc9, 0xf7, 0xd7, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0xe1, 0x06, 0xd1, 0x86, 0x76, 0x45, 0xc7, 0xf3, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0xd8, 0x85, 0x3b, 0x38, 0x89, 0xa7, 0x2f, 0xfc, 0xc6, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xe8, 0x3e, 0x34, 0x4b, 0x3a, 0x1e, 0x0f, 0x82, 0x0d, 0x96, 0x7c, 0x7f, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x08, 0x92, 0xe8, 0xe1, 0x37, 0x9e, 0x1f, 0xac, 0x32, 0x25, 0x3b, 0x0e, 0x1d, 0x87, 0x8e, 0x6f, 0xc7, 0xa1, 0xe3, 0xf1, 0x8a, 0x0b, 0x82, 0x0d, 0x96, 0x9b, 0x92, 0x2c, 0x0e, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0x48, 0x1d, 0x0c, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0x4d, 0xbb, 0x0e, 0x2b, 0xb4, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x06, 0x7e, 0xc8, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0xc0, 0xf9, 0xbf, 0xeb, 0xb0, 0x42, 0x7b, 0xb0, 0x12, 0x37, 0xe6, 0x38, 0x34, 0x08, 0x36, 0x08, 0xb2, 0xf8, 0xc5, 0x41, 0xb0, 0xf0, 0x1b, 0xb2, 0x15, 0x83, 0x64, 0x60, 0xd6, 0x0e, 0x2b, 0xb4, 0x07, 0x2b, 0xf1, 0x45, 0x8e, 0xc7, 0xc7, 0xe3, 0x15, 0x04, 0x1b, 0x94, 0x0c, 0x4d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x80, 0xc0, 0xef, 0x3a, 0x9e, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x48, 0xf2, 0x42, 0x18, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0xac, 0xc4, 0x35, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x1f, 0xac, 0x81, 0x84, 0x19, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x08, 0x7c, 0xaa, 0xe3, 0xf9, 0xc1, 0x7a, 0x52, 0x98, 0xe3, 0xd0, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0xb0, 0x1e, 0x12, 0xe6, 0x60, 0xa5, 0x64, 0xd7, 0xc1, 0x6a, 0x46, 0x93, 0xe3, 0xd0, 0x71, 0x68, 0x05, 0xc1, 0x06, 0x4b, 0xe5, 0xc9, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xa4, 0x86, 0x9d, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0x24, 0xfe, 0x77, 0x1d, 0xcf, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0x83, 0xf5, 0x90, 0x30, 0x83, 0x64, 0xa0, 0xbd, 0xde, 0xf1, 0xf8, 0x38, 0x74, 0x1c, 0x5a, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xfc, 0x06, 0xeb, 0x21, 0x61, 0x06, 0xc9, 0xc0, 0xfc, 0x1d, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0xe5, 0xf7, 0x30, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x6c, 0x10, 0xb8, 0xfe, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xce, 0x35, 0xc5, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x8c, 0x02, 0x9d, 0x83, 0x14, 0x73, 0xea, 0xe3, 0xd0, 0xf1, 0x78, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x20, 0xf8, 0xbb, 0x8e, 0xe7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x92, 0xc5, 0xa7, 0x87, 0xdf, 0x78, 0x3e, 0x86, 0xca, 0xe3, 0xd0, 0x71, 0x68, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x8a, 0x51, 0x93, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc1, 0xc2, 0xc5, 0x94, 0xe3, 0xd0, 0xc1, 0x7a, 0x52, 0x98, 0x83, 0x55, 0x3f, 0x30, 0x83, 0x60, 0x41, 0xb0, 0x41, 0xc9, 0xd0, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x3d, 0x58, 0x96, 0x51, 0x76, 0x1c, 0x1a, 0x04, 0x0b, 0x92, 0x01, 0x81, 0xdf, 0x75, 0x48, 0x2e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x48, 0xf2, 0x42, 0x18, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x92, 0x01, 0xc5, 0x7f, 0xd7, 0x21, 0xb9, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xe3, 0xf0, 0xf1, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0x38, 0x34, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x10, 0xf8, 0x54, 0x87, 0xe4, 0xd2, 0xc1, 0x12, 0xc9, 0x97, 0xe3, 0xd0, 0x20, 0xd8, 0x90, 0x3a, 0x38, 0x58, 0x9b, 0xee, 0x72, 0x1c, 0x1a, 0x04, 0x1b, 0x2c, 0xbf, 0x87, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x58, 0x06, 0x2f, 0x70, 0x70, 0x7e, 0xa2, 0x1d, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x87, 0xdf, 0x60, 0x3d, 0x24, 0xcc, 0xc1, 0xf9, 0x27, 0x7c, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x58, 0x0f, 0x09, 0x73, 0xe8, 0x62, 0x72, 0xb0, 0xea, 0x07, 0x66, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x58, 0x0f, 0x09, 0x33, 0x48, 0x06, 0x8c, 0xfb, 0xaf, 0xe3, 0xf1, 0xc1, 0xaa, 0x1f, 0x98, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x4b, 0xe5, 0xc9, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x0c, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0xac, 0x76, 0x29, 0x1b, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xbf, 0xc1, 0x7a, 0x48, 0x98, 0x41, 0x32, 0x30, 0x5c, 0xc7, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x80, 0xf4, 0x75, 0xaa, 0xe3, 0xf9, 0xc1, 0x7a, 0x52, 0x98, 0xe3, 0xd0, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0xb0, 0x1e, 0x12, 0xe6, 0x60, 0x4d, 0x71, 0xcd, 0xc1, 0x6a, 0x46, 0x93, 0xe3, 0xd0, 0xc1, 0xaa, 0x1f, 0x98, 0xe3, 0xd0, 0x20, 0xd8, 0x60, 0x81, 0x62, 0xcc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0x41, 0xf1, 0x14, 0x78, 0x30, 0x96, 0xa1, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x58, 0x2a, 0x4f, 0x36, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xb5, 0x24, 0xce, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xab, 0x5d, 0xca, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0x83, 0xf5, 0x90, 0x30, 0x07, 0x27, 0x66, 0xdf, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0xb4, 0x20, 0xd8, 0x60, 0xa9, 0x3c, 0xd9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x73, 0x4d, 0xf1, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0x60, 0x25, 0xae, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0xb0, 0x1e, 0x12, 0xe6, 0x60, 0x21, 0xac, 0xcb, 0x71, 0x68, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x83, 0xd5, 0x43, 0x65, 0x07, 0xab, 0x19, 0x4d, 0x8e, 0x43, 0x2b, 0x08, 0x36, 0x58, 0x7e, 0x0f, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x64, 0xe0, 0x7e, 0x3a, 0x08, 0x72, 0xfe, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x05, 0xd9, 0xce, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x83, 0x21, 0xfe, 0x71, 0x10, 0xe4, 0xfc, 0x87, 0x46, 0x2d, 0xc7, 0xa1, 0xe3, 0xf1, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0x60, 0x25, 0xae, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0xf8, 0x0d, 0xd6, 0x43, 0xc2, 0x1c, 0x9c, 0xfb, 0x68, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0x16, 0xef, 0x53, 0x1d, 0xcf, 0x0f, 0xd6, 0x93, 0xc2, 0x1c, 0x87, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0x60, 0x9d, 0x75, 0xd9, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x07, 0xcb, 0x54, 0xcd, 0x0e, 0x56, 0xfd, 0xc0, 0x1c, 0xac, 0x66, 0x34, 0x39, 0x0e, 0x2d, 0x08, 0x16, 0x04, 0x1b, 0x94, 0x0c, 0x4d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xc1, 0x7a, 0x48, 0x98, 0x41, 0x32, 0xa0, 0xf8, 0xff, 0x3a, 0x1e, 0x1f, 0x87, 0x06, 0xc1, 0x06, 0x6b, 0x2a, 0xcb, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xa4, 0x97, 0xf5, 0x0c, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0xd6, 0x94, 0x96, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x38, 0x34, 0x7a, 0xb0, 0xf2, 0xb5, 0xec, 0x38, 0x74, 0xb0, 0xce, 0xb7, 0xec, 0x38, 0xb4, 0x20, 0xd8, 0xa0, 0x64, 0x68, 0x3a, 0x58, 0xb1, 0x14, 0xb5, 0x20, 0xd8, 0xa0, 0x64, 0x68, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0x54, 0x9e, 0x6c, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0xc7, 0xa0, 0xd0, 0x0f, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x56, 0xe2, 0x9a, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x87, 0xdf, 0x60, 0x3d, 0x24, 0xcc, 0xc1, 0x21, 0xf4, 0xf6, 0x60, 0xd1, 0x43, 0xd9, 0x71, 0x68, 0x10, 0x6c, 0xb0, 0x10, 0xda, 0xec, 0x60, 0x35, 0xa3, 0xc9, 0x71, 0xe8, 0x38, 0x34, 0x08, 0x36, 0x28, 0x19, 0x9a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x2c, 0x95, 0x27, 0x1b, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x31, 0x50, 0x01, 0x00, 0x00, 0x0c, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x56, 0xe2, 0x9a, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x87, 0xdf, 0x60, 0x3d, 0x24, 0xcc, 0x20, 0x19, 0x90, 0xfc, 0xff, 0x75, 0x3c, 0x3e, 0x58, 0xf4, 0x50, 0x76, 0x1c, 0x1a, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x0d, 0xd6, 0x43, 0xc2, 0x0c, 0x92, 0x81, 0xd9, 0x3b, 0x1e, 0x1f, 0xac, 0x66, 0x34, 0x39, 0x0e, 0x1d, 0x87, 0x16, 0x04, 0x1b, 0x2c, 0x95, 0x27, 0x1b, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x70, 0xae, 0x29, 0x1e, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0xb5, 0x4b, 0xd9, 0xc1, 0xba, 0x33, 0xb3, 0xe3, 0xd0, 0x82, 0x60, 0x83, 0x92, 0xa1, 0x69, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x52, 0x79, 0xb2, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xa9, 0x1d, 0x20, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x95, 0xb8, 0x26, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0xe1, 0x37, 0x58, 0x0f, 0x09, 0x33, 0x48, 0x06, 0x0c, 0xfb, 0xaf, 0xe3, 0xf1, 0xc1, 0xa2, 0x87, 0xb2, 0xe3, 0xd0, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0xb0, 0x1e, 0x12, 0xe6, 0xe0, 0xf0, 0x4e, 0x7b, 0xb0, 0x9a, 0xd1, 0xe4, 0x38, 0x74, 0x1c, 0x1a, 0x04, 0x1b, 0x94, 0x0c, 0x4d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x96, 0xca, 0x93, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x18, 0xf8, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0x60, 0x25, 0xae, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0xf8, 0x0d, 0xd6, 0x43, 0xc2, 0x0c, 0x92, 0x01, 0x41, 0xff, 0x75, 0x3c, 0x3e, 0x58, 0xf4, 0x50, 0x76, 0x1c, 0x1a, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x0d, 0xd6, 0x43, 0xc2, 0x1c, 0x9c, 0x56, 0x70, 0x0f, 0x56, 0x33, 0x9a, 0x1c, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x2e, 0xec, 0x82, 0x60, 0x83, 0x34, 0x27, 0x84, 0x83, 0xe4, 0x64, 0xe8, 0x05, 0xc1, 0x06, 0xc3, 0x8c, 0xe6, 0x60, 0xc1, 0x3c, 0xca, 0xc1, 0x12, 0xb3, 0x94, 0x85, 0x5d, 0xb8, 0x0d, 0xa9, 0x83, 0x83, 0xe4, 0x9f, 0xe7, 0x0d, 0x92, 0x87, 0x98, 0x87, 0x5d, 0xb8, 0x0d, 0xa9, 0x83, 0x83, 0x44, 0xa5, 0xe7, 0x0d, 0xd2, 0x9f, 0x9e, 0x87, 0x5d, 0x10, 0x6c, 0x90, 0xe6, 0x84, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xaa, 0x39, 0x58, 0xa5, 0x91, 0x73, 0x1c, 0x5a, 0x10, 0x6c, 0x30, 0xcc, 0x68, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x52, 0x35, 0xc3, 0x6f, 0x3c, 0x1f, 0xc3, 0xfa, 0x38, 0x74, 0x50, 0x32, 0x34, 0xad, 0x20, 0xd8, 0x60, 0x98, 0xd1, 0x1c, 0xa4, 0x98, 0x53, 0x1f, 0xac, 0x4e, 0x3f, 0x1b, 0x04, 0x1b, 0x8c, 0x17, 0xc6, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x43, 0xb1, 0x68, 0x83, 0x51, 0x92, 0x38, 0xfc, 0xc6, 0xf3, 0xe1, 0x17, 0x24, 0x03, 0xa5, 0xea, 0x90, 0x5c, 0x3a, 0xa4, 0x6a, 0x8e, 0x43, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x82, 0x60, 0x83, 0xe1, 0x3b, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xa1, 0x78, 0x37, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x20, 0xdb, 0x39, 0x64, 0xed, 0x8e, 0x43, 0x87, 0x7c, 0xed, 0x71, 0x68, 0x05, 0xc1, 0x06, 0xc3, 0xbe, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x41, 0xb6, 0x73, 0x30, 0x78, 0x68, 0x8e, 0x43, 0x87, 0x71, 0x59, 0x10, 0x6c, 0x30, 0xec, 0x6b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x14, 0x64, 0x3b, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x0c, 0x33, 0x9a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xac, 0xdd, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x63, 0xdd, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x92, 0x17, 0xc2, 0x21, 0x5f, 0x7b, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x0e, 0xe3, 0x72, 0x3c, 0x5e, 0x5c, 0x10, 0x6c, 0xb0, 0x90, 0x22, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xd8, 0x70, 0x3d, 0x58, 0xbd, 0x57, 0x76, 0x1c, 0x5a, 0x41, 0xb0, 0xc1, 0x52, 0x79, 0xb2, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xa9, 0x1d, 0x20, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x01, 0xc5, 0x7f, 0xd7, 0xf1, 0x7c, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0xc7, 0x61, 0x62, 0x86, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0xc6, 0xef, 0x78, 0x7c, 0x1c, 0x3a, 0x0e, 0xad, 0x20, 0xd8, 0x60, 0xa9, 0x3c, 0xd9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xf4, 0xb2, 0x9e, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x08, 0x36, 0x58, 0x45, 0x07, 0x33, 0x08, 0x36, 0x58, 0x8d, 0x14, 0x73, 0xb0, 0x9a, 0xd1, 0x64, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x20, 0xfd, 0xff, 0xeb, 0x78, 0x7c, 0xb0, 0x9a, 0xd1, 0xe4, 0x38, 0xb4, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x24, 0x03, 0x8e, 0xff, 0x5f, 0xc7, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x0f, 0x16, 0xc2, 0xba, 0x1c, 0xac, 0xfa, 0x81, 0x59, 0x10, 0x6c, 0xb0, 0x54, 0x9e, 0x6c, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xa1, 0xf1, 0xfc, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0x60, 0x0d, 0x24, 0xda, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa4, 0xe0, 0x8e, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x81, 0xf5, 0xaf, 0xe3, 0xf1, 0x71, 0x68, 0x10, 0x6c, 0x70, 0x36, 0xe9, 0x3d, 0x58, 0xcd, 0x68, 0x72, 0x1c, 0x5a, 0x10, 0x6c, 0xb0, 0x40, 0x31, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xbb, 0xc1, 0x32, 0x54, 0xa3, 0x0d, 0x31, 0x1c, 0x04, 0x1b, 0x94, 0x8f, 0x2c, 0x87, 0x46, 0x2d, 0xc7, 0xe3, 0xe1, 0x37, 0x9e, 0x1f, 0xac, 0x07, 0x45, 0x3b, 0x0e, 0x0d, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0x32, 0xf0, 0xfc, 0xd7, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x83, 0xa5, 0x46, 0x65, 0x07, 0xab, 0x7e, 0x60, 0x16, 0x04, 0x1b, 0x2c, 0x95, 0x27, 0x1b, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x90, 0x5e, 0xd6, 0x33, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x56, 0xb5, 0xa2, 0x0d, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0xca, 0xd7, 0xf1, 0xf8, 0x60, 0x35, 0xa3, 0xc9, 0x71, 0x68, 0x05, 0xc1, 0x06, 0x4b, 0xe5, 0xc9, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x24, 0x79, 0x21, 0x0c, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0xd6, 0x40, 0xa2, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x58, 0xdc, 0x6e, 0x36, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x7c, 0x70, 0xee, 0xa3, 0x3d, 0x58, 0xf9, 0x3e, 0x73, 0x1c, 0x1a, 0x04, 0x0b, 0xbf, 0xf1, 0xfc, 0xe0, 0xdc, 0x47, 0x7b, 0xb0, 0x9a, 0xd1, 0xe4, 0x38, 0x34, 0x08, 0x36, 0x58, 0x2a, 0x4f, 0x36, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0xb5, 0x03, 0x64, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x35, 0x90, 0x68, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x0e, 0x89, 0x1c, 0x2c, 0xd1, 0x44, 0x3b, 0x0e, 0x1d, 0x87, 0x16, 0x04, 0x1b, 0x2c, 0xbf, 0x87, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x83, 0x74, 0xbe, 0xeb, 0x83, 0x14, 0x3f, 0x87, 0xe3, 0xf1, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x2b, 0x71, 0x4d, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x10, 0x2c, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0x2c, 0xe1, 0x84, 0x19, 0x04, 0x1b, 0xac, 0xdd, 0x8a, 0x39, 0x58, 0xf5, 0x03, 0x73, 0xb0, 0xd0, 0x77, 0x66, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0xf2, 0x7b, 0x98, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x24, 0x83, 0x92, 0xe3, 0xf9, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xab, 0xf3, 0x4c, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x83, 0x35, 0x57, 0x31, 0x07, 0x6b, 0x16, 0x61, 0x86, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0x9a, 0x53, 0x1d, 0xcf, 0x8f, 0x43, 0xc7, 0xa1, 0x83, 0x55, 0x3f, 0x30, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x16, 0x52, 0xc4, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x48, 0x0d, 0x3b, 0x39, 0x58, 0x98, 0x08, 0x73, 0x1c, 0x3a, 0x58, 0xf5, 0x03, 0x33, 0x08, 0x36, 0x58, 0x76, 0x01, 0x73, 0xb0, 0xea, 0x07, 0x66, 0x10, 0x6c, 0xb0, 0x96, 0x23, 0xe6, 0x60, 0xd5, 0x0f, 0xcc, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0x83, 0xb5, 0xc2, 0x23, 0xc7, 0xf3, 0x83, 0x55, 0x3f, 0x30, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x81, 0x5d, 0xaa, 0xe3, 0xf9, 0xc1, 0xaa, 0x1f, 0x98, 0xe3, 0xd0, 0x71, 0x68, 0x41, 0xb0, 0xc1, 0x02, 0xc5, 0x98, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xec, 0xc2, 0x6d, 0x48, 0x1d, 0x8c, 0x81, 0x47, 0xf6, 0xa6, 0x6f, 0x88, 0xe1, 0x20, 0x58, 0xf8, 0x05, 0xc9, 0x40, 0xad, 0x3a, 0xac, 0xd0, 0x1e, 0x9c, 0x56, 0x70, 0x0f, 0x8d, 0x5a, 0x8e, 0xc7, 0x07, 0x8b, 0x61, 0x6b, 0x8e, 0x43, 0x0b, 0x82, 0x0d, 0x96, 0xca, 0x93, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x38, 0xd7, 0x14, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0x06, 0x12, 0x6d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xe2, 0x76, 0xb3, 0x83, 0xf5, 0xc7, 0x68, 0xc7, 0xa1, 0xe3, 0xd0, 0x82, 0x60, 0x83, 0xe5, 0xf7, 0x30, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x6c, 0x30, 0x0a, 0x74, 0x0e, 0x16, 0xcc, 0xa3, 0x1c, 0x8f, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x58, 0xd8, 0x56, 0x36, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0xb5, 0x2c, 0xfa, 0x60, 0xb1, 0xb9, 0xcc, 0x71, 0xe8, 0x38, 0xb4, 0x20, 0xd8, 0x60, 0xf9, 0x3d, 0xcc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x3c, 0x58, 0x44, 0x56, 0x76, 0x3c, 0x1e, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0x61, 0x5b, 0xd9, 0xc1, 0x3a, 0xc3, 0x94, 0xe3, 0xd0, 0x0a, 0x82, 0x0d, 0x96, 0xdf, 0xc3, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x58, 0x9a, 0xa2, 0x36, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0xc2, 0xb6, 0xb2, 0x83, 0xb5, 0x01, 0x29, 0xc7, 0xa1, 0x05, 0xc1, 0x06, 0x4b, 0xe5, 0xc9, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x24, 0xdc, 0x9e, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0x06, 0x12, 0x6d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0xc7, 0xe1, 0xe2, 0x86, 0xdf, 0x78, 0x7e, 0x70, 0xda, 0xa5, 0x3d, 0x0e, 0x1d, 0x87, 0x16, 0x04, 0x1b, 0x2c, 0x95, 0x27, 0x1b, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x68, 0x3c, 0x3f, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x1a, 0x48, 0xb4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xeb, 0x2d, 0xd1, 0x0e, 0x16, 0x8e, 0xa3, 0x1d, 0x87, 0x8e, 0x43, 0x83, 0x60, 0x83, 0xa5, 0xf2, 0x64, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x92, 0xbc, 0x10, 0x86, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0x6b, 0x20, 0xd1, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x3c, 0xf4, 0x27, 0x3f, 0x58, 0x3d, 0x94, 0x76, 0x1c, 0x1a, 0x04, 0x0b, 0xbf, 0xf1, 0xfc, 0xe0, 0xe0, 0x51, 0x7b, 0xb0, 0x9a, 0xd1, 0xe4, 0x38, 0xb4, 0x20, 0xd8, 0x60, 0xf9, 0x3d, 0xcc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x55, 0x73, 0x69, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xac, 0xc4, 0x35, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x58, 0x10, 0x6c, 0xb0, 0xb0, 0x2a, 0x66, 0x10, 0x6c, 0xb0, 0x30, 0x11, 0xe6, 0x60, 0xd5, 0x0f, 0xcc, 0xc1, 0x32, 0xec, 0xb4, 0x83, 0x75, 0xdd, 0x69, 0x07, 0x2b, 0xcc, 0xd3, 0x8e, 0x43, 0xc7, 0xa1, 0x05, 0xc1, 0x06, 0xcb, 0xef, 0x61, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xac, 0x9a, 0x4b, 0x1b, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0x25, 0xae, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0xc1, 0x5a, 0x09, 0x98, 0x83, 0xc5, 0x98, 0x69, 0x07, 0xcb, 0x9f, 0xd5, 0x0e, 0x96, 0x61, 0xa7, 0x1d, 0xac, 0xeb, 0x4e, 0x3b, 0x58, 0x61, 0x9e, 0x76, 0x1c, 0x3a, 0x0e, 0x2d, 0x08, 0x36, 0x58, 0x7e, 0x0f, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xe1, 0x91, 0xda, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x0b, 0xdb, 0xca, 0x0e, 0x16, 0x62, 0x8e, 0x1c, 0x87, 0x16, 0x04, 0x1b, 0x2c, 0x95, 0x27, 0x1b, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x70, 0xae, 0x29, 0x1e, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0xac, 0x81, 0x44, 0x1b, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xa4, 0x68, 0x0f, 0xd6, 0x1f, 0xa3, 0x1d, 0x87, 0x06, 0xc1, 0x06, 0xab, 0x20, 0xd2, 0x0e, 0x56, 0x33, 0x9a, 0x1c, 0x87, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x10, 0x2c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0x60, 0x21, 0x45, 0xcc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xc5, 0x84, 0x27, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xac, 0x18, 0x35, 0x39, 0x58, 0x41, 0x82, 0x73, 0x1c, 0x1a, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0x90, 0x22, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x2a, 0xcf, 0x93, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x56, 0x8c, 0x9a, 0x1c, 0xac, 0x35, 0x3d, 0x39, 0x0e, 0x1d, 0xac, 0xfa, 0x81, 0x19, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0xfc, 0x1e, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x0d, 0x46, 0x81, 0xce, 0xc1, 0x52, 0x09, 0xb4, 0xe3, 0xf1, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x0b, 0xdb, 0xca, 0x0e, 0x16, 0x53, 0x9c, 0x1c, 0x87, 0x0e, 0x56, 0xfd, 0xc0, 0x0c, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x58, 0x7e, 0x0f, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x69, 0x8a, 0xda, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x0b, 0xdb, 0xca, 0x0e, 0x56, 0xcd, 0x9c, 0x1c, 0x87, 0x0e, 0x56, 0xfd, 0xc0, 0x2c, 0x08, 0x36, 0x58, 0x2a, 0x4f, 0x36, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0x35, 0xec, 0x64, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x35, 0x90, 0x68, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xd6, 0xd9, 0xa9, 0x0d, 0xbf, 0xf1, 0xfc, 0x60, 0x85, 0x4e, 0xd9, 0x71, 0xe8, 0x38, 0x34, 0x08, 0x36, 0x58, 0xa0, 0x18, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x0f, 0xd6, 0x03, 0xa8, 0x1d, 0x8f, 0x0f, 0x16, 0xc3, 0xd6, 0x1c, 0x87, 0x16, 0x04, 0x1b, 0x2c, 0x95, 0x27, 0x1b, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x90, 0x70, 0x7b, 0x32, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x58, 0x03, 0x89, 0x36, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xe3, 0x41, 0x48, 0x81, 0x1f, 0x2c, 0xcd, 0x53, 0x3b, 0x0e, 0x0d, 0x82, 0x85, 0xdf, 0x78, 0x7e, 0x70, 0x84, 0xa0, 0x3f, 0x58, 0xcd, 0x68, 0x72, 0x1c, 0x5a, 0x10, 0x6c, 0xb0, 0xb2, 0xd5, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x7a, 0x59, 0xcf, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x6b, 0x20, 0xd1, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x2c, 0x6e, 0x37, 0x3b, 0x58, 0xe6, 0x9d, 0x76, 0x1c, 0x3a, 0x0e, 0xad, 0x20, 0xd8, 0x60, 0x81, 0x62, 0xcc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xbf, 0xc1, 0x9a, 0x10, 0xa8, 0x83, 0x71, 0x07, 0x75, 0x68, 0xd4, 0x72, 0x3c, 0x1e, 0x7e, 0xe3, 0xf9, 0x20, 0xd9, 0x60, 0xf5, 0x0a, 0xc9, 0xf1, 0xfc, 0x38, 0xb4, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0xac, 0x0c, 0x46, 0x3b, 0x58, 0xf6, 0x90, 0xb6, 0x20, 0xd8, 0x60, 0xa9, 0x3c, 0xd9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xd4, 0x0e, 0x90, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xc1, 0x1a, 0x48, 0xb4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x49, 0xc1, 0x1d, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0x82, 0x9f, 0xea, 0x78, 0x7e, 0x1c, 0x1a, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0xd4, 0xab, 0xe3, 0xf1, 0xc1, 0x6a, 0x46, 0x93, 0xe3, 0xd0, 0x82, 0x60, 0x83, 0xa5, 0xf2, 0x64, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x92, 0xbc, 0x10, 0x86, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0x6b, 0x20, 0xd1, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x24, 0x05, 0x77, 0x1c, 0xac, 0x1e, 0x4a, 0x3b, 0x0e, 0x1d, 0x2c, 0x7a, 0x55, 0x3b, 0x0e, 0x2d, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc9, 0x40, 0xfa, 0xeb, 0x78, 0x7c, 0xb0, 0xec, 0x21, 0x6d, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0xd6, 0x49, 0xb1, 0x1d, 0x2c, 0x38, 0x46, 0x1b, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x48, 0x06, 0xa6, 0xeb, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x30, 0x5c, 0xb9, 0x8e, 0xe7, 0x07, 0xab, 0x7e, 0x60, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0x82, 0x97, 0xeb, 0x78, 0x7e, 0xb0, 0xea, 0x07, 0x66, 0x10, 0x6c, 0xb0, 0xc2, 0x8e, 0xed, 0x60, 0x3d, 0x29, 0xcc, 0x20, 0xd8, 0x60, 0xa9, 0x3c, 0xd9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xd4, 0xb0, 0x93, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xc1, 0x1a, 0x48, 0xb4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xcb, 0x93, 0xd7, 0x0e, 0xd6, 0x7e, 0xae, 0x1d, 0x87, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0xeb, 0x7a, 0xc7, 0xe3, 0x83, 0xd5, 0x8c, 0x26, 0xc7, 0xa1, 0x05, 0xc1, 0x06, 0x0b, 0x14, 0x63, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0xf8, 0x0d, 0x96, 0x0a, 0xa8, 0x1d, 0x94, 0x0c, 0x4d, 0x87, 0x46, 0x2d, 0xc7, 0xe3, 0x83, 0xc5, 0xb0, 0x35, 0xc7, 0xa1, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x58, 0xa5, 0x90, 0x76, 0xb0, 0xe0, 0x18, 0x6d, 0x10, 0x6c, 0xb0, 0xfc, 0x1e, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc2, 0x23, 0xb5, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x16, 0xb6, 0x95, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x58, 0xb8, 0x98, 0x72, 0x90, 0x54, 0x50, 0x7d, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x17, 0xc0, 0x9b, 0xae, 0x0c, 0x8f, 0xae, 0x05, 0x4e, 0xee, 0x6d, 0xac, 0x6c, 0x6e, 0x2e, 0xcd, 0xed, 0x5c, 0x06, 0xe0, 0x85, 0x46, 0x4c, 0x07, 0x84, 0xae, 0x0c, 0x8f, 0x0e, 0x04, 0x4e, 0xee, 0x6d, 0xac, 0x6c, 0x6e, 0x2e, 0xcd, 0xed, 0x6c, 0x01, 0xbf, 0xad, 0x6c, 0x6e, 0xdc, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x58, 0xba, 0xce, 0xd6, 0x00, 0xfe, 0x63, 0x74, 0x72, 0x6c, 0x20, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0x9f, 0x4b, 0x03, 0x9e, 0x5d, 0x9a, 0x78, 0x70, 0xd2, 0x13, 0xdd, 0xf0, 0x17, 0xcd, 0x06, 0x27, 0x3d, 0xd1, 0x0d, 0x4a, 0x78, 0xcc, 0x35, 0x58, 0x2b, 0xd0, 0xd6, 0x06, 0x05, 0x45, 0xe6, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x1a, 0x7e, 0x84, 0x19, 0x9c, 0x0e, 0xe7, 0x36, 0xbc, 0xad, 0x33, 0x78, 0x7a, 0xb0, 0x94, 0xa1, 0x6d, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0x92, 0xa2, 0x6d, 0x83, 0x95, 0x14, 0x6d, 0x6b, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xb0, 0x94, 0xa1, 0x6d, 0xc3, 0xdb, 0x3a, 0x83, 0xd3, 0x07, 0x4b, 0x19, 0xda, 0x6a, 0xc3, 0x07, 0x39, 0x6b, 0xf8, 0x95, 0x6c, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x46, 0x71, 0x83, 0x25, 0x18, 0x6d, 0x6b, 0xf8, 0x11, 0x66, 0x43, 0xcd, 0x0f, 0xf7, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0xbe, 0x38, 0xdb, 0x60, 0x09, 0x46, 0xdb, 0x41, 0xda, 0x69, 0xec, 0x1a, 0xfe, 0xcd, 0x59, 0xc3, 0xd7, 0x2f, 0x1b, 0x3e, 0x84, 0xd9, 0xf0, 0xf5, 0xcb, 0x86, 0x0f, 0x61, 0x0e, 0x92, 0x7b, 0x5c, 0x0f, 0x96, 0x60, 0xb4, 0xb5, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0x49, 0xd1, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x64, 0x2d, 0xae, 0x41, 0x59, 0xf2, 0xbe, 0x80, 0x27, 0x57, 0x87, 0xb7, 0x86, 0xb7, 0x75, 0x06, 0x3e, 0x8c, 0x6e, 0x83, 0x25, 0x18, 0x6d, 0xad, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0xd0, 0x77, 0xb0, 0x62, 0xa4, 0xad, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0x04, 0xa3, 0xed, 0x60, 0xc5, 0x48, 0xdb, 0x0a, 0xf8, 0x74, 0x75, 0x66, 0xf4, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0xea, 0xb6, 0xb6, 0x06, 0xe0, 0xa3, 0x8e, 0xce, 0x6c, 0x46, 0x06, 0x84, 0xee, 0x0d, 0xa4, 0x8e, 0xce, 0x0c, 0x07, 0x84, 0xae, 0x0c, 0x8f, 0x6e, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0xf0, 0xe0, 0x38, 0x00, 0xbb, 0xe1, 0x2f, 0x9a, 0x0d, 0xce, 0xb3, 0xa3, 0x1b, 0x14, 0x9d, 0xc6, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xb1, 0x55, 0xd0, 0x06, 0x45, 0xa5, 0xf8, 0x86, 0xaf, 0x70, 0x36, 0xfc, 0x45, 0xb3, 0x41, 0x39, 0x67, 0xbb, 0xe1, 0x83, 0x9c, 0x35, 0xfc, 0x9b, 0xb3, 0x86, 0xaf, 0x5f, 0x36, 0x7c, 0x08, 0x73, 0x90, 0xb6, 0x70, 0x78, 0x78, 0x5a, 0x67, 0x83, 0x82, 0x22, 0x73, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0x71, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0x99, 0xb8, 0x07, 0xa9, 0xe0, 0xad, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0x8f, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x1e, 0xdc, 0xd9, 0xf0, 0x6e, 0xcf, 0x06, 0x25, 0x3e, 0xee, 0x41, 0x2a, 0x78, 0x6b, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0xbe, 0xf8, 0xdd, 0xf0, 0x5e, 0xd0, 0x1a, 0x7e, 0x84, 0x19, 0xf8, 0x3a, 0x3c, 0xfc, 0x6f, 0x83, 0x53, 0xc8, 0xd3, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x2f, 0x7e, 0x37, 0xbc, 0x17, 0xb4, 0x86, 0x1f, 0x61, 0x06, 0xbe, 0x0e, 0x0f, 0xee, 0xff, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xed, 0xd9, 0xe0, 0x10, 0x03, 0xb1, 0x86, 0x1f, 0x61, 0x06, 0xbe, 0x4e, 0x0c, 0x02, 0xb8, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x89, 0x66, 0x37, 0x3c, 0x78, 0xb3, 0x86, 0x5f, 0x5c, 0x36, 0x38, 0x2e, 0xcf, 0x1c, 0x1c, 0x15, 0xd8, 0x0e, 0x6f, 0xa1, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x38, 0xc4, 0x40, 0xac, 0xe1, 0x47, 0x98, 0x81, 0xaf, 0x13, 0x83, 0x00, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x8a, 0x4c, 0xdc, 0x0d, 0xd2, 0x26, 0x6d, 0x0f, 0x6f, 0xa1, 0x75, 0xf8, 0x45, 0x68, 0xc3, 0x07, 0x39, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x17, 0xbf, 0x1b, 0xde, 0x0b, 0xda, 0x20, 0x6d, 0x28, 0xb2, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0x77, 0x7b, 0x36, 0x38, 0xc4, 0x40, 0xac, 0xe1, 0x47, 0x98, 0x81, 0xaf, 0x13, 0x83, 0x00, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0xa2, 0xd9, 0x0d, 0x0f, 0xde, 0xac, 0xe1, 0x17, 0x97, 0x35, 0xfc, 0x08, 0xb3, 0xa1, 0xe6, 0x87, 0xf0, 0xe0, 0xcc, 0xdc, 0x76, 0x78, 0x0b, 0xad, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x21, 0x06, 0x62, 0x83, 0xd5, 0xf3, 0x6d, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x92, 0x68, 0x76, 0xc3, 0x83, 0x37, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xe3, 0xf2, 0xcc, 0xc1, 0x61, 0x79, 0xe6, 0xf0, 0x16, 0x5a, 0x07, 0xab, 0xdf, 0xdb, 0x36, 0xfc, 0xe2, 0xb2, 0x86, 0x77, 0x7b, 0x36, 0x38, 0xc4, 0x40, 0xac, 0xe1, 0x47, 0x98, 0x81, 0xaf, 0x13, 0x83, 0x80, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0xa2, 0xd9, 0x0d, 0x0f, 0xde, 0xac, 0xe1, 0x17, 0x97, 0x0d, 0x52, 0x75, 0x71, 0x0f, 0x0a, 0x4a, 0xf1, 0xc3, 0x5b, 0x68, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x0e, 0x31, 0x10, 0x1b, 0xac, 0x9e, 0x6f, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0x44, 0xb3, 0x1b, 0x1e, 0xbc, 0x59, 0xc3, 0x2f, 0x2e, 0x1b, 0x2c, 0xe1, 0x70, 0x3b, 0x38, 0x2c, 0xcf, 0x1c, 0xde, 0x42, 0xeb, 0x60, 0xe1, 0x88, 0xdb, 0x2c, 0xe0, 0xcb, 0xd5, 0xb9, 0xd1, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xeb, 0xca, 0xdc, 0x1a, 0x80, 0x0f, 0x38, 0xb9, 0x32, 0xb8, 0x32, 0x37, 0x32, 0x10, 0xb9, 0x32, 0xb8, 0xb2, 0x30, 0xba, 0x32, 0x32, 0xb6, 0xbc, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0x7f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xc7, 0x83, 0x93, 0x9e, 0x68, 0x1b, 0xfe, 0xa2, 0xd9, 0xe0, 0xa4, 0x27, 0xba, 0xe1, 0x83, 0x9c, 0x0d, 0xdf, 0xe6, 0x6c, 0x78, 0x7a, 0xe7, 0xe0, 0x60, 0x5a, 0x79, 0x38, 0xc5, 0x16, 0xf0, 0xc7, 0xc2, 0xe6, 0xe6, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x65, 0x90, 0x6e, 0x0d, 0xe0, 0xc1, 0xf6, 0x76, 0x57, 0x26, 0x37, 0x16, 0x36, 0x57, 0xb6, 0xe1, 0x17, 0xa5, 0x0d, 0x96, 0x03, 0xb4, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0x93, 0x9e, 0xe8, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x91, 0xaa, 0xd7, 0xf0, 0xb6, 0xce, 0xc1, 0x52, 0x86, 0xb6, 0x35, 0xfc, 0xa2, 0xb4, 0xe1, 0xcb, 0xa5, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0x3c, 0xc2, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x48, 0xc3, 0x56, 0xda, 0xf0, 0xb4, 0xce, 0x1a, 0x7e, 0x84, 0x19, 0x9c, 0x0e, 0x0f, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0xbe, 0xf8, 0xdd, 0xf0, 0xb4, 0xce, 0x1a, 0x7e, 0x84, 0x19, 0x9c, 0x0e, 0xd7, 0x6a, 0xc3, 0xd3, 0x3a, 0x1b, 0xde, 0xed, 0xd9, 0xf0, 0x27, 0xd0, 0x06, 0xa9, 0xa7, 0xb1, 0x87, 0x87, 0x7e, 0x5a, 0x81, 0x0f, 0xa3, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x83, 0x0f, 0xa3, 0x1b, 0xc0, 0x57, 0x2c, 0x6c, 0x2e, 0x6d, 0x0c, 0x04, 0x4e, 0x2e, 0xcd, 0x8d, 0x2e, 0xcd, 0xed, 0x6c, 0x83, 0xb2, 0x0c, 0x7b, 0xc3, 0x97, 0x4b, 0xb3, 0xcc, 0x02, 0x9e, 0x5c, 0x9d, 0xbd, 0xe1, 0x2f, 0x9a, 0x0d, 0x4e, 0x7a, 0xa2, 0x1b, 0x9c, 0xf3, 0x97, 0xd6, 0xf0, 0x23, 0xcc, 0xe0, 0x74, 0x28, 0x5c, 0xc3, 0x8f, 0x30, 0x83, 0xd3, 0xe1, 0xf6, 0x06, 0xab, 0x7a, 0x95, 0xd6, 0xf0, 0xb6, 0xce, 0x80, 0x27, 0x57, 0xd7, 0xb6, 0x41, 0x0a, 0x74, 0xea, 0x06, 0x05, 0x45, 0xe6, 0x86, 0x5f, 0x94, 0x36, 0x3c, 0xcf, 0xb4, 0xe1, 0x83, 0x9c, 0x35, 0xfc, 0x9b, 0xb3, 0x86, 0x1f, 0x61, 0x36, 0xd4, 0xfc, 0xd0, 0x7f, 0x78, 0x2f, 0x68, 0x0d, 0x3f, 0xc2, 0x0c, 0x4e, 0x87, 0xae, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x35, 0xfc, 0x08, 0xb3, 0xa1, 0xe6, 0x87, 0xfa, 0xc3, 0x7b, 0x41, 0x6b, 0xf8, 0x11, 0x66, 0x70, 0x3a, 0xb4, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0xe2, 0x6c, 0xc3, 0x7b, 0x41, 0x6b, 0xf8, 0x11, 0x66, 0x43, 0xcd, 0x0f, 0xd3, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x3f, 0x81, 0xd6, 0xf0, 0x23, 0xcc, 0x86, 0x9a, 0x1f, 0x1e, 0x1c, 0xde, 0x42, 0xdb, 0xf0, 0x41, 0xce, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0xc5, 0xd9, 0x86, 0xf7, 0x82, 0x36, 0x48, 0xc6, 0xb6, 0x6b, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x13, 0x68, 0x0d, 0x3f, 0xc2, 0x6c, 0xa8, 0xf9, 0xe1, 0xc7, 0xe1, 0x2d, 0xb4, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x14, 0x70, 0xc3, 0x7b, 0x41, 0x07, 0x67, 0xe6, 0xb6, 0xd5, 0x60, 0xe5, 0xbe, 0xdb, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x86, 0xe7, 0x99, 0x36, 0x58, 0xf5, 0xe7, 0xb6, 0x86, 0x3f, 0x97, 0x06, 0x27, 0x0f, 0xca, 0xbe, 0xf2, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0x49, 0x4f, 0x74, 0xc3, 0x07, 0x39, 0x1b, 0xbe, 0xcd, 0x59, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x72, 0x5d, 0xf6, 0xa0, 0x70, 0x92, 0x3d, 0xfc, 0x22, 0xb4, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0x78, 0x79, 0x78, 0xf0, 0x66, 0xc3, 0x57, 0x38, 0x1b, 0xfe, 0xa2, 0xd9, 0xe0, 0xa4, 0x27, 0xba, 0xe1, 0x83, 0x9c, 0x0d, 0xdf, 0xe6, 0x6c, 0x78, 0x7a, 0x67, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0x73, 0xc3, 0x23, 0xac, 0x6b, 0x78, 0x9b, 0x75, 0xc3, 0xbf, 0x39, 0x1b, 0x1e, 0xbc, 0x39, 0x28, 0x27, 0xa0, 0xd7, 0xf0, 0x6f, 0xce, 0x86, 0x07, 0x6f, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0xd8, 0xdd, 0x6e, 0x50, 0x4e, 0x40, 0xaf, 0xe1, 0x83, 0x9c, 0x35, 0xfc, 0x9b, 0xb3, 0x41, 0xca, 0x6b, 0xd5, 0xe1, 0xbd, 0xa0, 0x0d, 0x8a, 0x4a, 0xf1, 0x83, 0x53, 0x73, 0x5b, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0x78, 0x70, 0x67, 0xc3, 0xbb, 0x3d, 0x1b, 0x84, 0x02, 0xeb, 0xe1, 0xf7, 0xb3, 0x35, 0xfc, 0xc3, 0xb3, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xb9, 0x2e, 0xbb, 0x86, 0x77, 0x7b, 0x36, 0x08, 0xbb, 0xdb, 0xc3, 0xef, 0x67, 0xad, 0xe1, 0x83, 0x9c, 0x0d, 0x8a, 0x91, 0xda, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0x0f, 0x72, 0x36, 0x58, 0x3a, 0xf9, 0xb6, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x43, 0xd9, 0xc1, 0x9a, 0x8d, 0xb7, 0xc3, 0x2f, 0x42, 0x87, 0xa7, 0x77, 0x5a, 0x83, 0x22, 0x04, 0xfa, 0xa0, 0x50, 0x81, 0x6e, 0x05, 0x7c, 0x39, 0xba, 0xb0, 0x76, 0xc3, 0x5f, 0x34, 0x1b, 0x9c, 0xf4, 0x44, 0x37, 0xfc, 0xe2, 0xb2, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x43, 0xcb, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x24, 0xdf, 0x64, 0x77, 0x78, 0xe8, 0xa7, 0xd5, 0x60, 0x65, 0x56, 0xdb, 0x86, 0xbf, 0x68, 0x36, 0x38, 0xe9, 0x89, 0x6e, 0xf8, 0xc5, 0x65, 0x83, 0x45, 0xf0, 0x6e, 0x6b, 0xf8, 0x11, 0x66, 0x70, 0x3a, 0x1c, 0x5f, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xce, 0x77, 0xdb, 0xe0, 0xf0, 0x2a, 0xb7, 0x41, 0x41, 0x91, 0xb9, 0x86, 0x5f, 0x94, 0x36, 0x3c, 0xcf, 0xb4, 0xe1, 0xdd, 0x9e, 0x0d, 0x7f, 0x02, 0x6d, 0x78, 0x2f, 0x68, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x5f, 0x9c, 0x6d, 0x78, 0x2f, 0xe8, 0x20, 0xdd, 0xb5, 0x6a, 0x0d, 0x3f, 0xc2, 0x6c, 0xa8, 0xf9, 0xa1, 0x70, 0xc3, 0x8f, 0x30, 0x1b, 0x6a, 0x7e, 0xf8, 0x55, 0xcd, 0x02, 0x2f, 0x47, 0x6f, 0xf8, 0x8b, 0x66, 0x83, 0x93, 0x9e, 0xe8, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x23, 0xcc, 0xe0, 0x74, 0xe8, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x9c, 0x08, 0xda, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0xe9, 0x3a, 0x5b, 0x07, 0xeb, 0xac, 0xdf, 0xd6, 0xf0, 0x17, 0xcd, 0x06, 0x27, 0x3d, 0xd1, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0xa8, 0x02, 0xee, 0xa0, 0xac, 0xf3, 0xac, 0x15, 0x5c, 0xde, 0xf0, 0x41, 0xce, 0x1a, 0x1e, 0x61, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0x61, 0x2b, 0x6d, 0x90, 0x4e, 0x0e, 0x7b, 0x10, 0xac, 0xac, 0x6b, 0xf8, 0x0a, 0x67, 0xc3, 0x07, 0x39, 0x1b, 0xbe, 0xcd, 0xd9, 0xa0, 0xc8, 0x69, 0xdd, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xf0, 0xec, 0xd2, 0xe6, 0x83, 0xf2, 0x63, 0x7f, 0xc3, 0x23, 0xac, 0x6b, 0xf8, 0x95, 0x6c, 0x0d, 0xff, 0xe6, 0x6c, 0xb0, 0x66, 0xe3, 0x6d, 0xc3, 0xdb, 0x3a, 0x1b, 0x2c, 0x2f, 0x82, 0x6b, 0x0d, 0x8f, 0xb0, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0xd2, 0xb0, 0x95, 0x36, 0x58, 0x16, 0x05, 0xb7, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0xc3, 0xc3, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x2f, 0x7e, 0x37, 0x58, 0x16, 0x05, 0xb7, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0xc3, 0xf5, 0x6a, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x83, 0xe2, 0x7d, 0xbf, 0x5a, 0xc3, 0xdb, 0x3a, 0x1b, 0x2c, 0x56, 0x7e, 0x6b, 0xc3, 0x07, 0x39, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x17, 0xbf, 0x07, 0x6b, 0x6e, 0xe0, 0xd6, 0xf0, 0xb6, 0xce, 0x80, 0x27, 0x57, 0x47, 0xb6, 0xe1, 0x6d, 0x9d, 0x83, 0x75, 0x59, 0x6d, 0x87, 0x53, 0xac, 0x05, 0x5e, 0xce, 0xdc, 0xf0, 0x17, 0xcd, 0x06, 0x27, 0x3d, 0xd1, 0x0d, 0xbf, 0xb8, 0xac, 0x41, 0x90, 0x9e, 0x6e, 0x78, 0x70, 0x67, 0x0d, 0x02, 0x36, 0x68, 0xc3, 0x8f, 0x30, 0x83, 0xd3, 0xa1, 0x66, 0x0d, 0xc2, 0x08, 0x68, 0xc3, 0x8f, 0x30, 0x83, 0xd3, 0xe1, 0xfc, 0x1a, 0x84, 0xe9, 0xd8, 0x41, 0x78, 0xaa, 0x76, 0x50, 0xd6, 0x79, 0xce, 0x02, 0x9e, 0x5c, 0x1d, 0xbc, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xb8, 0x78, 0x90, 0x4e, 0x0e, 0xbb, 0xe1, 0x2f, 0x9a, 0x0d, 0x4e, 0x7a, 0xa2, 0x1b, 0x14, 0x86, 0xaa, 0x1b, 0xac, 0xd9, 0x78, 0xdb, 0xf0, 0x15, 0xce, 0x86, 0xbf, 0x68, 0x36, 0x38, 0xe9, 0x89, 0x6e, 0xf8, 0x20, 0x67, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x46, 0x71, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x14, 0xff, 0x1e, 0xa4, 0x82, 0xb7, 0x1e, 0x14, 0xc4, 0xe3, 0x6b, 0x50, 0x74, 0x1a, 0x6f, 0x70, 0x22, 0x68, 0x5b, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0xdb, 0x60, 0x05, 0x6e, 0xdb, 0x1a, 0x3e, 0x0f, 0x3a, 0x58, 0x50, 0xf4, 0xd6, 0x86, 0xbf, 0x68, 0x36, 0x38, 0xe9, 0x89, 0x6e, 0xf8, 0xc5, 0x65, 0x83, 0x35, 0x1b, 0x6f, 0x1b, 0xac, 0xd9, 0x78, 0x5b, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0xc3, 0x83, 0x3b, 0x07, 0xcb, 0x55, 0xdb, 0xd6, 0xf0, 0x79, 0xd0, 0xc1, 0xa9, 0xb9, 0xad, 0x36, 0x7c, 0x90, 0xb3, 0xe1, 0x35, 0xbd, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0xc3, 0xfd, 0x83, 0xb2, 0xce, 0x73, 0xc3, 0x07, 0x39, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x17, 0xbf, 0x07, 0x87, 0xf5, 0x95, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x32, 0xec, 0xb7, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0x07, 0x25, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0xa9, 0x62, 0x7e, 0x6d, 0x78, 0x5b, 0x67, 0xe0, 0xe1, 0xde, 0x0e, 0x0f, 0xfd, 0xb4, 0xe1, 0x2b, 0x9c, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0xd2, 0x13, 0xdd, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0x20, 0x60, 0x59, 0x0f, 0xef, 0x05, 0xad, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xf8, 0x78, 0x50, 0xf2, 0xef, 0x6f, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x4e, 0x1e, 0x94, 0x1f, 0xfb, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0x44, 0xd0, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x86, 0xfd, 0xb6, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xa0, 0xe4, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0x59, 0x8e, 0x4b, 0x07, 0x6b, 0x07, 0xe2, 0x0e, 0xbf, 0x08, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x86, 0xfd, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xdf, 0x0f, 0xb7, 0x86, 0x77, 0x7b, 0x36, 0x38, 0xc4, 0x40, 0x1c, 0x14, 0x80, 0xfc, 0xd5, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xe3, 0x86, 0x77, 0x7b, 0x36, 0x28, 0xf1, 0x71, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0x45, 0xa5, 0xf8, 0x41, 0xb0, 0xb2, 0x1e, 0x1e, 0xfa, 0xd9, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0x9c, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0x45, 0x26, 0xee, 0xc1, 0xd2, 0xa5, 0xb8, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0x22, 0x68, 0x5b, 0xc3, 0x25, 0xb5, 0xc1, 0x61, 0xbf, 0x63, 0x83, 0x92, 0x6a, 0x7c, 0x0d, 0x9f, 0x07, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0xa2, 0xf8, 0x77, 0x83, 0xa2, 0x52, 0xfc, 0xf0, 0x8b, 0x50, 0x6b, 0xf8, 0x8b, 0x66, 0x83, 0x93, 0x9e, 0xe8, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0xb3, 0xf1, 0xb6, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x86, 0x07, 0x77, 0x0e, 0xd6, 0xf5, 0xc4, 0xad, 0xe1, 0xf3, 0xa0, 0x83, 0x80, 0x65, 0xad, 0x0e, 0xa7, 0xd8, 0x1a, 0xac, 0xec, 0x83, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0x8b, 0xf3, 0xdd, 0x36, 0x48, 0x79, 0xad, 0xda, 0xa0, 0xa0, 0xc8, 0x5c, 0xc3, 0x2f, 0x4a, 0x1b, 0x9e, 0x67, 0xda, 0xf0, 0x6e, 0xcf, 0x86, 0x3f, 0x81, 0x36, 0x58, 0x04, 0xef, 0x76, 0x78, 0x0b, 0xad, 0xc3, 0x29, 0xb6, 0x80, 0x27, 0x47, 0x17, 0x6e, 0x78, 0x5b, 0x67, 0xe0, 0xe5, 0xe8, 0x66, 0x81, 0x97, 0x73, 0x37, 0xfc, 0x45, 0xb3, 0xc1, 0x49, 0x4f, 0x74, 0xc3, 0x2f, 0x2e, 0x6b, 0x50, 0xf0, 0x61, 0x6e, 0xf8, 0x36, 0xe7, 0x60, 0xdd, 0x3a, 0xdc, 0x41, 0x59, 0xe7, 0x39, 0x6b, 0x30, 0x40, 0xc4, 0x37, 0xfc, 0x45, 0xb3, 0xc1, 0x49, 0x4f, 0x74, 0xc3, 0x2f, 0x2e, 0x1b, 0x2c, 0x82, 0x77, 0x5b, 0xc3, 0x8f, 0x30, 0x83, 0xd3, 0xe1, 0xe2, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x71, 0xbe, 0xdb, 0x06, 0x01, 0xcb, 0x7a, 0xb0, 0x78, 0x31, 0xae, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x56, 0xc0, 0xbf, 0x7b, 0x7b, 0x23, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x16, 0x1e, 0xc7, 0x35, 0x80, 0xd7, 0xd8, 0x9b, 0x1c, 0x19, 0x48, 0xd9, 0xdc, 0x58, 0x18, 0x5c, 0xd9, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xe1, 0xc1, 0x79, 0x76, 0x74, 0xc3, 0x5f, 0x34, 0x1b, 0x1c, 0xb5, 0x41, 0x37, 0x28, 0x3a, 0x8d, 0x37, 0x58, 0xeb, 0xd8, 0xb6, 0x41, 0x51, 0x29, 0xbe, 0xe1, 0x2b, 0x9c, 0x0d, 0x7f, 0xd1, 0x6c, 0x50, 0xce, 0xd9, 0x6e, 0xf8, 0x20, 0x67, 0x83, 0xa5, 0x9b, 0x6d, 0x1b, 0x14, 0x14, 0x99, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0x8b, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0x3e, 0x5d, 0x99, 0x99, 0xd9, 0xe1, 0xa1, 0x9f, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xc7, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0x9f, 0x2e, 0xcc, 0x8c, 0x6e, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x64, 0xe2, 0xae, 0xe1, 0x17, 0x97, 0x83, 0xb2, 0x71, 0xff, 0xf0, 0xd0, 0x4f, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0x93, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x1e, 0xdc, 0xd9, 0xf0, 0x6e, 0xcf, 0x06, 0x25, 0x3e, 0xee, 0xc1, 0x9a, 0x07, 0xb9, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x5f, 0xc9, 0xd6, 0xf0, 0x08, 0xeb, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x0d, 0x5b, 0x69, 0xc3, 0xd3, 0x3b, 0x07, 0xab, 0xba, 0xe0, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x2f, 0x7e, 0x37, 0x3c, 0xbd, 0x73, 0xb0, 0xda, 0x0c, 0xae, 0x35, 0x3c, 0xc2, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x48, 0xc3, 0x56, 0xda, 0xf0, 0xf4, 0xce, 0x06, 0x8b, 0xe0, 0xdd, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0xbe, 0xf8, 0xdd, 0xf0, 0xf4, 0xce, 0x1a, 0x7e, 0x84, 0x19, 0x9c, 0x0e, 0xcd, 0xb5, 0x86, 0x7f, 0x73, 0xd6, 0xf0, 0xf5, 0xcb, 0x86, 0x0f, 0x61, 0x36, 0x7c, 0xfd, 0xb2, 0xe1, 0x43, 0x98, 0x83, 0x35, 0x1b, 0x6f, 0x87, 0xa7, 0x77, 0xda, 0xe0, 0x98, 0xc2, 0xb1, 0xc1, 0xc9, 0x41, 0x6e, 0xc3, 0x3f, 0x3c, 0x6b, 0x50, 0x18, 0xaa, 0x6e, 0xb0, 0x6e, 0x1d, 0x6e, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xf0, 0x72, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0xc5, 0xbf, 0x1b, 0x04, 0x2c, 0xeb, 0xe1, 0x17, 0xa1, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x8b, 0x66, 0x83, 0x93, 0x9e, 0xe8, 0x86, 0x0f, 0x72, 0x36, 0x58, 0x36, 0xf8, 0xb6, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x23, 0xcc, 0xe0, 0x74, 0xa8, 0x3b, 0x28, 0xd5, 0x65, 0x37, 0x28, 0xfa, 0x74, 0x37, 0x28, 0x42, 0xa0, 0xd7, 0xf0, 0x6e, 0xcf, 0x86, 0xd7, 0x7c, 0x0e, 0xca, 0x6c, 0xe9, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xcd, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0xe2, 0xe3, 0xae, 0xe1, 0x17, 0x97, 0x0d, 0x02, 0x96, 0xf5, 0xa0, 0xcc, 0x96, 0x3e, 0xfc, 0x22, 0xb4, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x4f, 0xa0, 0x35, 0x7c, 0x90, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0xf1, 0xbb, 0x41, 0x31, 0x52, 0x7b, 0x90, 0x6e, 0x5a, 0x75, 0xb0, 0xac, 0x00, 0xee, 0xa0, 0xb0, 0xea, 0x5e, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0xc3, 0x3f, 0x3c, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xc8, 0xc4, 0x3d, 0x58, 0xf3, 0x28, 0x57, 0xab, 0x21, 0x03, 0x3e, 0x38, 0x1d, 0x0a, 0x0e, 0xd6, 0xd9, 0xc9, 0xad, 0x86, 0x0c, 0xf8, 0xc1, 0xfa, 0x3c, 0xb9, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0x6e, 0x1d, 0xee, 0x60, 0x09, 0x9e, 0xdc, 0x6a, 0xc8, 0x80, 0x1f, 0x2c, 0x69, 0x87, 0xdb, 0xf0, 0x8b, 0xcb, 0x06, 0xeb, 0xd6, 0xe1, 0x36, 0x58, 0xb7, 0x0e, 0x77, 0x50, 0xaa, 0xcb, 0xb6, 0x02, 0xfe, 0x5d, 0xda, 0xd8, 0xba, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xb0, 0xe6, 0x59, 0xae, 0x01, 0x3c, 0xd7, 0xdc, 0xde, 0xe8, 0x40, 0xea, 0xdc, 0xca, 0xe6, 0xc6, 0xc2, 0xe0, 0xca, 0x36, 0xfc, 0xa2, 0xb4, 0xe1, 0xcb, 0xa5, 0x0d, 0x7f, 0xd1, 0xac, 0x41, 0xe8, 0x97, 0x6c, 0x50, 0x36, 0x61, 0x1e, 0x9c, 0x18, 0x5d, 0x37, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x17, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x41, 0xb4, 0x7c, 0x50, 0xf4, 0xec, 0x6f, 0x70, 0xb4, 0xe1, 0x5b, 0x83, 0x62, 0x40, 0x76, 0xc3, 0xe7, 0x41, 0x1b, 0x14, 0x14, 0x99, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0x2c, 0x05, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xeb, 0xd8, 0xb6, 0x41, 0x51, 0x29, 0xbe, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x2c, 0x96, 0x0f, 0xbf, 0x08, 0xd5, 0x06, 0xa5, 0xbd, 0xe5, 0x06, 0xab, 0xfe, 0xdc, 0x36, 0x7c, 0x85, 0xb3, 0xe1, 0x2f, 0x9a, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x17, 0x0f, 0x4e, 0x7a, 0xa2, 0x07, 0x6b, 0xfe, 0xdc, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x7c, 0x1e, 0xb4, 0x86, 0x5f, 0x5c, 0x36, 0x28, 0x28, 0x32, 0x0f, 0xbf, 0x08, 0x6d, 0x50, 0xec, 0x68, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0xd6, 0xad, 0xc3, 0x1d, 0x14, 0x3f, 0xa8, 0x6b, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x1b, 0x94, 0xd3, 0xa7, 0x6b, 0xf8, 0x87, 0x67, 0xc3, 0x2f, 0x2e, 0x1b, 0x14, 0x3f, 0xa8, 0x87, 0x5f, 0x84, 0xda, 0xa0, 0x84, 0xc7, 0xdc, 0xa0, 0x74, 0x3f, 0xdd, 0xe0, 0x7c, 0x8a, 0xb5, 0x41, 0x90, 0x9e, 0x2e, 0x78, 0x7a, 0x50, 0xba, 0x9f, 0xae, 0xc1, 0x9a, 0x61, 0xb9, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x9f, 0x07, 0x6d, 0x78, 0x5b, 0x67, 0x70, 0xfa, 0xa0, 0x74, 0x3f, 0x5d, 0xc3, 0x3f, 0x3c, 0x1b, 0x7e, 0x71, 0xd9, 0x60, 0xdd, 0x3a, 0xdc, 0xe1, 0x17, 0xa1, 0x56, 0x43, 0x06, 0xfc, 0x60, 0x39, 0xc7, 0xdb, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0xc1, 0x82, 0xa5, 0xb9, 0x35, 0xfc, 0xc3, 0xb3, 0xe1, 0x17, 0x97, 0x35, 0xfc, 0x08, 0x33, 0x38, 0x1d, 0xfe, 0x1d, 0x7e, 0x11, 0x6a, 0x0d, 0x3f, 0xd4, 0x1c, 0x9c, 0x4f, 0xb1, 0x3a, 0x9c, 0x62, 0xad, 0xe1, 0x47, 0x98, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0xc3, 0x8f, 0x30, 0x0d, 0xe0, 0x15, 0x46, 0xf7, 0xd6, 0x06, 0x32, 0x17, 0xe6, 0x96, 0x46, 0x97, 0xb7, 0xe1, 0x17, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0x78, 0x78, 0x70, 0xd4, 0x06, 0xdd, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0xe0, 0x98, 0x59, 0xd0, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0xfe, 0x5c, 0x98, 0x5b, 0xd9, 0xe1, 0xa1, 0x9f, 0x56, 0xc0, 0x1f, 0xab, 0x9b, 0x9b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x16, 0x50, 0xce, 0x35, 0x80, 0x47, 0x1d, 0x1c, 0x5c, 0x99, 0xdc, 0x58, 0xd8, 0x5c, 0xd9, 0x86, 0x5f, 0x94, 0x36, 0x58, 0x0e, 0xd0, 0xb6, 0xe1, 0x2f, 0x9a, 0x0d, 0x4e, 0x7a, 0xa2, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x44, 0xaa, 0xde, 0x60, 0xf1, 0xaa, 0xdb, 0x1a, 0x7e, 0x51, 0xda, 0xf0, 0xe5, 0xd2, 0x06, 0xc5, 0x8e, 0xe6, 0x1a, 0x1e, 0x61, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0x61, 0x2b, 0x6d, 0x78, 0x5a, 0xe7, 0x60, 0x55, 0x17, 0xdc, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0xc5, 0xef, 0x86, 0xa7, 0x75, 0x0e, 0x56, 0x9b, 0xc1, 0xb5, 0xe1, 0x69, 0x9d, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x14, 0x70, 0xc3, 0xd3, 0x3a, 0x07, 0x69, 0xa7, 0xb1, 0xcd, 0x02, 0xfe, 0x5d, 0xd8, 0xd8, 0xba, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xb0, 0x26, 0x7a, 0xae, 0x01, 0xbc, 0xd6, 0xdc, 0xde, 0xe8, 0x40, 0xca, 0xe6, 0xc6, 0xc2, 0xe0, 0xca, 0x36, 0xfc, 0xa2, 0xb4, 0xc1, 0x92, 0xc0, 0xb9, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0xd4, 0x06, 0xdd, 0xf0, 0x89, 0xcd, 0x06, 0xeb, 0xdb, 0xe5, 0x36, 0x28, 0x3a, 0x8d, 0x37, 0x58, 0xeb, 0xd8, 0xb6, 0x41, 0x51, 0x29, 0xbe, 0xe1, 0x2b, 0x9c, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0xd2, 0x13, 0xdd, 0xa0, 0x84, 0xc7, 0xdc, 0xf0, 0x79, 0xd0, 0x06, 0x05, 0x45, 0xe6, 0x86, 0x0f, 0x72, 0x36, 0x58, 0x8d, 0x32, 0xb7, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0xb7, 0x0e, 0xb7, 0xc1, 0xba, 0x75, 0xb8, 0x83, 0x22, 0xe6, 0x76, 0xc3, 0x07, 0x39, 0x6b, 0xf8, 0x37, 0x67, 0x83, 0x25, 0x65, 0x73, 0x07, 0xc5, 0x0f, 0xea, 0x1a, 0x7e, 0x71, 0xd9, 0x60, 0xdd, 0x3a, 0xdc, 0x06, 0x6b, 0x36, 0xde, 0x0e, 0x8a, 0x98, 0xdb, 0x0d, 0xbf, 0xb8, 0x1c, 0x14, 0x21, 0xb7, 0x2b, 0xe0, 0xd3, 0xd5, 0x99, 0x85, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xeb, 0x3c, 0xe8, 0x1a, 0x80, 0x8f, 0x3a, 0x3a, 0xb3, 0x19, 0x19, 0x10, 0xba, 0x37, 0x90, 0x3a, 0x3a, 0x33, 0x1c, 0x10, 0xba, 0x30, 0xb8, 0xb2, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xc3, 0x83, 0x03, 0xfd, 0xeb, 0x86, 0xbf, 0x68, 0x36, 0x38, 0xe9, 0x89, 0x6e, 0x50, 0xc2, 0x63, 0x6e, 0x78, 0x70, 0x67, 0x0d, 0xcf, 0xe2, 0xb5, 0xe1, 0xdd, 0x9e, 0x0d, 0x4e, 0x04, 0x6d, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x82, 0x68, 0x79, 0x83, 0xa2, 0x52, 0x7c, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x56, 0xb7, 0xb5, 0x75, 0x70, 0x08, 0xf5, 0xeb, 0xe0, 0xac, 0x95, 0x38, 0x0b, 0xf8, 0x74, 0x72, 0x69, 0xed, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0x6a, 0x2b, 0xba, 0x06, 0xf0, 0x61, 0x4b, 0x9b, 0xa3, 0x03, 0x99, 0x83, 0x63, 0x4b, 0xa3, 0xdb, 0xa0, 0x50, 0xee, 0xdc, 0xa0, 0x14, 0x66, 0xdf, 0xf0, 0xf5, 0xcb, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0xc3, 0x87, 0xf7, 0x82, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xf1, 0xe1, 0xbd, 0xa0, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x7c, 0x1e, 0xb4, 0xc1, 0x59, 0x56, 0x6a, 0xc3, 0x07, 0x39, 0x1b, 0xbe, 0xcd, 0xd9, 0xe0, 0x84, 0x71, 0xb4, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xf8, 0xb8, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0x6d, 0xf8, 0xa8, 0xe7, 0xa0, 0x48, 0xba, 0xdd, 0xf0, 0x8b, 0xcb, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0xf8, 0x41, 0x3d, 0x38, 0x7b, 0x6a, 0x1e, 0x1c, 0xf8, 0x58, 0x0e, 0xa7, 0xd8, 0x1a, 0xac, 0xe1, 0x8f, 0xdb, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x58, 0xc3, 0x1f, 0xd7, 0x00, 0x5a, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x75, 0x74, 0x66, 0xb8, 0x0d, 0xbf, 0x28, 0x6d, 0xb0, 0x48, 0x3b, 0x6e, 0xc3, 0x5f, 0x34, 0x1b, 0x7e, 0xa8, 0xd9, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0x5c, 0x3c, 0x28, 0x3f, 0xf6, 0x37, 0x7c, 0x90, 0xb3, 0xe1, 0x35, 0xbd, 0x35, 0x28, 0xf8, 0x30, 0x37, 0x58, 0xba, 0xd9, 0x76, 0x78, 0xf0, 0x66, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xbf, 0x92, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0xd2, 0xb0, 0x95, 0x36, 0xbc, 0x17, 0x74, 0x90, 0x76, 0x1a, 0xbb, 0xc1, 0xd2, 0xc9, 0xb7, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0xf1, 0xbb, 0xe1, 0xbd, 0xa0, 0x35, 0xfc, 0x08, 0xb3, 0xa1, 0xe6, 0x87, 0xff, 0x6d, 0x78, 0x4c, 0x66, 0xc3, 0x07, 0x39, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x17, 0xbf, 0x1b, 0xde, 0x0b, 0x5a, 0xc3, 0x8f, 0x30, 0x1b, 0x6a, 0x7e, 0x10, 0xdf, 0x36, 0x08, 0x58, 0xd6, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x5f, 0xfc, 0x6e, 0x78, 0x2f, 0x68, 0x0d, 0x3f, 0xc2, 0x6c, 0xa8, 0xf9, 0x41, 0xbc, 0x3b, 0x58, 0x90, 0xf9, 0xb6, 0x02, 0xfe, 0x98, 0x5c, 0x1a, 0xbc, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x1f, 0x5d, 0x18, 0x5c, 0x19, 0x08, 0xdd, 0x1b, 0xc8, 0xd8, 0x9b, 0x1c, 0xd9, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xe1, 0xc1, 0x49, 0x4f, 0x74, 0xc3, 0xd7, 0x2f, 0x6b, 0xf8, 0x11, 0xe6, 0xe0, 0x40, 0xd3, 0xb7, 0xe1, 0xeb, 0x97, 0x0d, 0x1f, 0xc2, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0xb5, 0x8e, 0x6d, 0x07, 0x45, 0xcf, 0xfe, 0xe1, 0x14, 0x5b, 0xc0, 0x97, 0xab, 0xa3, 0x43, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x16, 0x64, 0xd4, 0x35, 0x80, 0xb7, 0x58, 0x9a, 0x18, 0x5b, 0xda, 0x58, 0x18, 0x1b, 0xc8, 0x5c, 0x98, 0x5b, 0x1a, 0x5d, 0xde, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x06, 0x4b, 0x02, 0xe7, 0x0e, 0xca, 0x71, 0xfc, 0x0d, 0x7f, 0xd1, 0x6c, 0xf8, 0xa1, 0x66, 0x83, 0x62, 0x40, 0x76, 0xc3, 0xe7, 0x41, 0x1b, 0x84, 0xa7, 0xea, 0xe1, 0xbd, 0xa0, 0xc3, 0x29, 0xb6, 0x06, 0xc9, 0x37, 0xd9, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xc9, 0x37, 0xd9, 0x0d, 0xe0, 0x37, 0xf6, 0x26, 0x47, 0x06, 0x42, 0xf7, 0x06, 0x42, 0x17, 0x06, 0x57, 0xb6, 0xe1, 0xf1, 0x91, 0x0d, 0x92, 0x6f, 0xb2, 0x37, 0xfc, 0xa2, 0xb4, 0xe1, 0xcb, 0xa5, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0xd2, 0x13, 0xdd, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0xf0, 0xe0, 0xcd, 0x41, 0x3a, 0x39, 0xec, 0x06, 0x05, 0x45, 0xe6, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x17, 0xcd, 0x06, 0x47, 0x6d, 0xd0, 0x83, 0xf2, 0x63, 0xff, 0x60, 0xb9, 0x1a, 0xdc, 0x2c, 0xe0, 0xd3, 0xd5, 0x89, 0x85, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xeb, 0xdc, 0xea, 0x1a, 0x80, 0x8f, 0x3a, 0x3a, 0x33, 0x1c, 0x10, 0xba, 0x37, 0x90, 0x3a, 0x3a, 0xb3, 0x19, 0x19, 0x10, 0xba, 0x30, 0xb8, 0xb2, 0x0d, 0xbf, 0x28, 0x6d, 0xb0, 0x88, 0xa0, 0x6e, 0xc3, 0x5f, 0x34, 0x1b, 0x1c, 0xe8, 0x5f, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0xc2, 0xc2, 0x02, 0x41, 0x7b, 0x93, 0x93, 0x4b, 0x13, 0x63, 0x2b, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0x05, 0xd1, 0xf2, 0x06, 0x87, 0x05, 0xb6, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x6a, 0x03, 0xb9, 0x0d, 0xd6, 0x46, 0xd4, 0xd5, 0x6a, 0xb0, 0xe6, 0x71, 0x6e, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x60, 0xcd, 0xe3, 0x5c, 0x07, 0x6b, 0xf1, 0xe6, 0x36, 0xfc, 0xa2, 0xb4, 0xc1, 0x92, 0xc0, 0xb9, 0x0d, 0xbf, 0x28, 0x6d, 0x78, 0x9e, 0x69, 0xc3, 0x5f, 0x34, 0x1b, 0x3e, 0x58, 0xdd, 0xa0, 0xd8, 0xd1, 0x5c, 0xc3, 0xbf, 0x39, 0x6b, 0x78, 0xe3, 0xee, 0xe0, 0x54, 0xe4, 0x7a, 0x50, 0x7e, 0xec, 0x6f, 0x50, 0xe4, 0xb4, 0x6e, 0xf8, 0xc4, 0x66, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x73, 0x97, 0x01, 0x2f, 0xcd, 0x0d, 0x3f, 0x3c, 0x78, 0xb3, 0x86, 0xcf, 0x5d, 0x36, 0x28, 0x0b, 0x8b, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x51, 0xfc, 0x7b, 0x50, 0x36, 0xee, 0xb7, 0xe1, 0x83, 0x9c, 0x35, 0xfc, 0x9b, 0xb3, 0x86, 0x37, 0xee, 0x36, 0xbc, 0x7c, 0x77, 0x78, 0xf9, 0xee, 0xf0, 0xb4, 0xce, 0x1a, 0xbe, 0xc2, 0xd9, 0xf0, 0x17, 0xcd, 0x86, 0x0f, 0x56, 0x37, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x4b, 0x91, 0xeb, 0x3a, 0x28, 0xbc, 0x8c, 0x37, 0x28, 0x72, 0x5a, 0x37, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0xbc, 0xb1, 0x3a, 0x79, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0x44, 0xb3, 0x1b, 0x14, 0x95, 0xe2, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xc5, 0xe8, 0x75, 0x07, 0x05, 0xf1, 0xf8, 0xe1, 0x2d, 0xb4, 0x0d, 0x8f, 0xb0, 0xae, 0xe1, 0x57, 0xb2, 0x35, 0x3c, 0xc2, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x48, 0xc3, 0x56, 0x5a, 0xc3, 0xdb, 0x3a, 0x1b, 0x2c, 0xa2, 0xaf, 0xeb, 0x60, 0x55, 0x17, 0xdc, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0xc5, 0xef, 0x06, 0xcb, 0x19, 0xec, 0x0e, 0x56, 0x9b, 0xc1, 0xb5, 0x86, 0x47, 0x58, 0xd7, 0xf0, 0x6f, 0xce, 0x06, 0x6b, 0x36, 0xde, 0x0e, 0x96, 0x33, 0xd8, 0xad, 0xe1, 0x6d, 0xd6, 0x0d, 0xff, 0xe6, 0x6c, 0x78, 0xf0, 0xe6, 0x60, 0x31, 0x7a, 0xdd, 0x1a, 0xde, 0x66, 0xdd, 0xf0, 0x6f, 0xce, 0x06, 0x85, 0x97, 0xf1, 0xc1, 0x62, 0xf4, 0xba, 0xd6, 0xf0, 0x08, 0xeb, 0x1a, 0x1e, 0x61, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0x61, 0x2b, 0x6d, 0xb0, 0x9c, 0xc1, 0xee, 0x60, 0xdd, 0x8f, 0xdc, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0xc5, 0xef, 0x06, 0xcb, 0x19, 0xec, 0x0e, 0xd6, 0x1b, 0xc9, 0xb5, 0xc1, 0x6a, 0x11, 0xbb, 0x5a, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x75, 0xea, 0x75, 0x1b, 0x3e, 0x8e, 0x3a, 0x58, 0x8c, 0x5e, 0x57, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x6b, 0x78, 0xe3, 0xee, 0xe0, 0xf8, 0xe7, 0x7a, 0x78, 0x5a, 0x67, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x8b, 0x66, 0xc3, 0x07, 0xab, 0x1b, 0x3e, 0xc8, 0xd9, 0x60, 0xbd, 0x79, 0xdd, 0x06, 0x45, 0x4e, 0xeb, 0x86, 0x4f, 0x6c, 0x36, 0x58, 0x27, 0x5f, 0xb7, 0xe1, 0x11, 0xd6, 0x35, 0xfc, 0x4a, 0xb6, 0xc1, 0x92, 0x03, 0xbb, 0x0d, 0x56, 0xce, 0xd8, 0xad, 0xe1, 0x57, 0xb2, 0x0d, 0x16, 0x73, 0xd8, 0xad, 0xe1, 0xdf, 0x9c, 0x0d, 0xd6, 0xad, 0xc3, 0x1d, 0x2c, 0x67, 0xb0, 0x5b, 0xc3, 0xbf, 0x39, 0x1b, 0x2c, 0x29, 0x9b, 0x3b, 0x58, 0xce, 0x60, 0xb7, 0x86, 0x7f, 0x73, 0x36, 0x58, 0x84, 0x27, 0x77, 0xb0, 0x9c, 0xc1, 0xae, 0x0e, 0x16, 0x1f, 0xd9, 0x6d, 0xf8, 0x0a, 0x67, 0xc3, 0x5f, 0x34, 0x1b, 0x3e, 0x58, 0xdd, 0xf0, 0x41, 0xce, 0x06, 0xeb, 0xcd, 0xeb, 0x36, 0x28, 0x72, 0x5a, 0x37, 0x7c, 0x62, 0xb3, 0xc1, 0x3a, 0xf9, 0xba, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0x11, 0xd6, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x8b, 0xb3, 0x0d, 0x96, 0x33, 0xd8, 0x1d, 0xa4, 0x9d, 0xc6, 0xae, 0xe1, 0x6d, 0xd6, 0x0d, 0xff, 0xe6, 0x6c, 0x90, 0xf2, 0x5a, 0x75, 0xb0, 0x9c, 0xc1, 0xae, 0x0d, 0x0a, 0xd8, 0xfc, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x01, 0x8f, 0xae, 0xcc, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0xcb, 0xf4, 0xe3, 0x36, 0x58, 0xce, 0x60, 0xd7, 0x86, 0x47, 0x58, 0xd7, 0xf0, 0x2b, 0xd9, 0x1a, 0xfe, 0xcd, 0xd9, 0xf0, 0x98, 0xcc, 0x86, 0xb7, 0x75, 0x36, 0x58, 0x0a, 0x6b, 0xd7, 0x1a, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0xa7, 0x87, 0xc7, 0x64, 0x36, 0x7c, 0x85, 0xb3, 0xe1, 0x2f, 0x9a, 0x0d, 0x1f, 0xac, 0x6e, 0xf8, 0x95, 0x6c, 0x0d, 0xff, 0xe6, 0x6c, 0x50, 0x46, 0x9f, 0x1f, 0xac, 0xff, 0xb5, 0x5b, 0xc3, 0x23, 0xac, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x34, 0x6c, 0xa5, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x49, 0x34, 0xbb, 0x41, 0x51, 0x29, 0xbe, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x3f, 0x81, 0x36, 0x28, 0xa3, 0xcf, 0x37, 0x58, 0x8c, 0x5e, 0xd7, 0x41, 0x41, 0x3c, 0x7e, 0x78, 0x0b, 0xed, 0x20, 0x19, 0x30, 0x75, 0x83, 0xe3, 0x3c, 0x45, 0xb5, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0xeb, 0xd4, 0xeb, 0x36, 0xbc, 0xdb, 0xb3, 0xe1, 0x4f, 0xa0, 0x0d, 0x16, 0xa3, 0xd7, 0x6d, 0xb0, 0xfe, 0xd7, 0xae, 0x3a, 0x9c, 0x62, 0x0b, 0xf8, 0x77, 0x6f, 0x61, 0xe4, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0x6a, 0x81, 0xbb, 0x06, 0xf0, 0x1c, 0x7b, 0x93, 0x23, 0x03, 0xa9, 0x73, 0x2b, 0x9b, 0x1b, 0x0b, 0x83, 0x2b, 0xdb, 0xf0, 0x8b, 0xd2, 0x06, 0x4b, 0x02, 0xe7, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0x79, 0x76, 0x74, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0xb5, 0x8e, 0x6d, 0x1b, 0x14, 0x95, 0xe2, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0x17, 0xcd, 0x06, 0xe5, 0x9c, 0xed, 0x86, 0x0f, 0x72, 0x36, 0x58, 0xba, 0xd9, 0xb6, 0x41, 0x41, 0x91, 0xb9, 0xe1, 0x13, 0x9b, 0x0d, 0x56, 0xc8, 0xd2, 0x6d, 0xf8, 0xc4, 0x66, 0x83, 0x25, 0x17, 0x71, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x1b, 0x2c, 0xc2, 0x93, 0x3b, 0xbc, 0x17, 0xb4, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x23, 0xcc, 0xc1, 0xaa, 0x5a, 0xb9, 0x35, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x0d, 0x4a, 0xaa, 0xf1, 0xda, 0xa0, 0xd8, 0xd1, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0xac, 0x5b, 0x87, 0x3b, 0xbc, 0x17, 0xb4, 0x86, 0x5f, 0x5c, 0x36, 0xbc, 0x17, 0x74, 0xb0, 0x50, 0xe8, 0x6e, 0x83, 0x52, 0x42, 0x7c, 0x0d, 0x97, 0xd4, 0x06, 0x45, 0x8d, 0xf8, 0x1a, 0x3e, 0x0f, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x45, 0x26, 0xee, 0xc1, 0xf2, 0xb5, 0xb8, 0x35, 0xfc, 0xc3, 0xb3, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0x7c, 0xdc, 0x83, 0xe5, 0x6b, 0x71, 0x6d, 0x70, 0x72, 0x90, 0xdb, 0xf0, 0x79, 0xd0, 0x1a, 0x1c, 0x6d, 0xf8, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x27, 0x82, 0xb6, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x41, 0xb4, 0xbc, 0x41, 0x51, 0x29, 0xbe, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xe5, 0x44, 0x77, 0x70, 0xc0, 0x1b, 0x69, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x0f, 0xee, 0x1c, 0x9c, 0x43, 0x47, 0x6a, 0xc3, 0xe7, 0x2e, 0x83, 0x93, 0x1b, 0x3e, 0xb1, 0xd9, 0xe0, 0x28, 0xdb, 0xb0, 0xe1, 0x2b, 0x9c, 0x0d, 0x7f, 0xd1, 0x6c, 0xf8, 0x75, 0x6e, 0xc3, 0x07, 0x39, 0x1b, 0x2c, 0xbb, 0xb9, 0x5b, 0xc3, 0x2f, 0x2e, 0x07, 0x05, 0xe8, 0xf3, 0x86, 0x77, 0xf3, 0x36, 0x38, 0xf7, 0xbf, 0x6c, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x1b, 0xac, 0xd4, 0xba, 0xdb, 0x60, 0x89, 0xd8, 0xdd, 0x1a, 0x14, 0xf9, 0xb2, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0xfe, 0x04, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x04, 0x4f, 0xed, 0x06, 0x87, 0x57, 0xb9, 0x83, 0x52, 0x5d, 0x76, 0x83, 0xa2, 0xd3, 0x78, 0xc3, 0xa7, 0x80, 0x1b, 0xde, 0x0b, 0xda, 0xf0, 0x41, 0xce, 0x1a, 0x1e, 0x61, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0x61, 0x2b, 0x6d, 0x78, 0x2f, 0xe8, 0x60, 0xdd, 0x8f, 0xdc, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0xc5, 0xef, 0x86, 0xf7, 0x82, 0x0e, 0xd6, 0x1b, 0xc9, 0xb5, 0xc1, 0xc2, 0x02, 0xb8, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0x3c, 0xc2, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x48, 0xc3, 0x56, 0xda, 0xf0, 0x5e, 0xd0, 0xc1, 0xaa, 0x2e, 0xb8, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x8b, 0xdf, 0x0d, 0xef, 0x05, 0x1d, 0xac, 0x36, 0x83, 0xeb, 0x60, 0x59, 0x02, 0x5c, 0x6b, 0xb0, 0x2e, 0x57, 0x6e, 0xc3, 0x2f, 0x2e, 0x1b, 0x2c, 0xc2, 0x93, 0x3b, 0x58, 0x28, 0x74, 0xb7, 0x06, 0x6b, 0x86, 0xe5, 0x36, 0xfc, 0xe2, 0xb2, 0xc1, 0xba, 0x75, 0xb8, 0x83, 0x85, 0x42, 0x77, 0x1d, 0x4e, 0xb1, 0x35, 0x58, 0x8a, 0x20, 0xb7, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xb0, 0x14, 0x41, 0xae, 0x01, 0x34, 0xeb, 0xe8, 0xcc, 0x70, 0x40, 0xe8, 0xde, 0x40, 0xea, 0xe8, 0xcc, 0x66, 0x64, 0x1b, 0x7e, 0x51, 0xda, 0x60, 0x91, 0x76, 0xdc, 0x86, 0xbf, 0x68, 0x36, 0x38, 0x0e, 0xc0, 0x6e, 0x50, 0x74, 0x1a, 0x6f, 0xb0, 0xd6, 0xb1, 0x6d, 0x83, 0xc3, 0x02, 0xdb, 0x86, 0xaf, 0x70, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0x81, 0xfe, 0x75, 0xc3, 0x27, 0x36, 0x1b, 0x2c, 0xaf, 0x8f, 0xdb, 0xf0, 0x41, 0xce, 0x86, 0xd7, 0xf4, 0x36, 0x28, 0x28, 0x32, 0x37, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x1f, 0x37, 0x28, 0x3a, 0x8d, 0x37, 0x28, 0x8b, 0xa3, 0x37, 0x3c, 0x78, 0xb3, 0x41, 0xd1, 0x69, 0xbc, 0x41, 0x89, 0x54, 0xbd, 0x86, 0xbf, 0x68, 0xd6, 0x20, 0xf4, 0x4b, 0x36, 0x08, 0x29, 0x93, 0x0d, 0xbf, 0xce, 0xb5, 0xc1, 0xc9, 0x41, 0x6e, 0xc3, 0xe7, 0x41, 0x1b, 0x84, 0xa7, 0xea, 0x1a, 0x04, 0x8e, 0xea, 0x86, 0x5f, 0x5c, 0x36, 0x48, 0x06, 0xb2, 0x3d, 0x28, 0xeb, 0x3c, 0xd7, 0x20, 0x88, 0x4d, 0x37, 0xfc, 0xe2, 0xb2, 0x86, 0x5f, 0x5c, 0x36, 0x38, 0xac, 0xcc, 0x1d, 0x1c, 0x96, 0x67, 0xd6, 0xf0, 0x8b, 0xcb, 0x86, 0x07, 0x6f, 0x0e, 0x8e, 0x0a, 0x6c, 0x07, 0x65, 0x9d, 0xe7, 0x1a, 0x84, 0xcc, 0xe9, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x87, 0x57, 0xb9, 0x83, 0xc3, 0xf2, 0xcc, 0x06, 0xeb, 0x8f, 0xf0, 0xd6, 0xf0, 0x8b, 0xcb, 0x86, 0x07, 0x6f, 0x0e, 0xce, 0xcc, 0x6d, 0x07, 0x65, 0x9d, 0xe7, 0x6a, 0xc8, 0x80, 0x1f, 0x1c, 0xa8, 0xdb, 0x36, 0xfc, 0xe2, 0xb2, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x23, 0xcc, 0x86, 0x9a, 0x1f, 0x86, 0x07, 0x87, 0xe5, 0x99, 0x0d, 0x16, 0x63, 0xe1, 0x6d, 0xb0, 0xfe, 0x08, 0x6f, 0x83, 0xc4, 0x97, 0xd4, 0x83, 0xb2, 0xce, 0xb3, 0x0d, 0xbf, 0x28, 0x6d, 0xf8, 0x75, 0x6e, 0xc3, 0x2f, 0x2e, 0x1b, 0x9c, 0x8e, 0x44, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x25, 0xd1, 0xec, 0x86, 0x07, 0x6f, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xa7, 0x8b, 0x8c, 0x83, 0x43, 0x2f, 0xdf, 0xe1, 0xa1, 0x9f, 0x36, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x6f, 0xce, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x95, 0x13, 0xdd, 0xe1, 0x17, 0xa1, 0x83, 0x85, 0x0b, 0x72, 0x1b, 0x7e, 0x71, 0xd9, 0xf0, 0xf4, 0xce, 0x06, 0x2b, 0x32, 0xe4, 0x3a, 0x9c, 0x62, 0x2b, 0x80, 0x67, 0x18, 0xdd, 0x5b, 0x5b, 0x0b, 0x9c, 0x5c, 0x9a, 0x1b, 0x5d, 0x9a, 0xdb, 0xb9, 0x0c, 0xc0, 0x03, 0xcd, 0x9a, 0x0e, 0x48, 0x18, 0xdd, 0x5b, 0x1b, 0x08, 0x9c, 0x5c, 0x9a, 0x1b, 0x5d, 0x9a, 0xdb, 0xd9, 0x02, 0x3f, 0xf6, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb4, 0x30, 0xef, 0x0d, 0xca, 0x2e, 0xd9, 0x81, 0x1f, 0x7b, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xab, 0x0b, 0x45, 0x36, 0x5c, 0x52, 0x6b, 0x3c, 0x1e, 0xf8, 0xb1, 0xb7, 0x66, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xa4, 0x02, 0x7a, 0x6f, 0x78, 0x50, 0x72, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xc8, 0x3f, 0x60, 0x83, 0xb2, 0x0c, 0x7b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x3b, 0x55, 0x21, 0x1b, 0xd8, 0xa9, 0x0a, 0x9b, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x6c, 0x6f, 0xf4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x9d, 0xaa, 0x90, 0x1f, 0x2c, 0xe2, 0xc6, 0x3b, 0x48, 0x3f, 0x0e, 0x9e, 0x65, 0xd6, 0xa0, 0xe0, 0x3b, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6b, 0x17, 0x04, 0x36, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xa5, 0xaa, 0x30, 0x1a, 0x58, 0xaa, 0x0a, 0xe3, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x72, 0x6f, 0xed, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xa5, 0xaa, 0x30, 0x3c, 0x58, 0xd4, 0x8f, 0x77, 0x70, 0xd2, 0x13, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0b, 0x31, 0x04, 0x36, 0x5c, 0x52, 0x0b, 0xf8, 0x72, 0x65, 0x6e, 0x64, 0x6b, 0x50, 0xa2, 0x2b, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x45, 0x26, 0x02, 0x1b, 0xde, 0xd6, 0xd9, 0x60, 0x55, 0x40, 0x5e, 0xad, 0x80, 0x2f, 0x57, 0xe6, 0x46, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x65, 0x34, 0x02, 0x1b, 0x2c, 0x87, 0x64, 0x9a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x16, 0x48, 0x60, 0xc3, 0xd7, 0x2f, 0x6b, 0xf8, 0x11, 0x66, 0xe0, 0xe9, 0xc2, 0x36, 0x7c, 0xfd, 0xb2, 0xe1, 0x43, 0x98, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x56, 0x49, 0x60, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa5, 0x55, 0x02, 0x07, 0x6b, 0x1d, 0xdb, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcb, 0xd0, 0x04, 0x0e, 0x8a, 0x4a, 0xf1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xea, 0x3a, 0x81, 0x0d, 0x6f, 0xeb, 0x1c, 0xac, 0xa1, 0xc8, 0xeb, 0x70, 0x8a, 0xad, 0xc1, 0x2a, 0x8a, 0xbc, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x74, 0x50, 0x60, 0xc3, 0x5f, 0x34, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xab, 0x0a, 0xe9, 0xc0, 0x5e, 0x55, 0x58, 0x1c, 0x9c, 0xf4, 0x44, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xda, 0x46, 0x81, 0x0d, 0x96, 0x43, 0x32, 0xcd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x9b, 0x29, 0xb0, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x32, 0x52, 0x81, 0x0d, 0x8a, 0x49, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x6c, 0x56, 0x85, 0xc1, 0xc0, 0x66, 0x55, 0x58, 0x1d, 0x24, 0x76, 0x06, 0x6f, 0x1c, 0xda, 0x60, 0x15, 0x38, 0x5e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa5, 0xb0, 0x02, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0xd7, 0x15, 0x38, 0x58, 0xb7, 0x0e, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x72, 0x2c, 0x70, 0xb0, 0x08, 0xde, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x6a, 0x5a, 0x60, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x85, 0xde, 0x02, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0x4d, 0x17, 0xd8, 0xf0, 0xb6, 0xce, 0x80, 0x6f, 0xd7, 0x32, 0xf6, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0xb8, 0x2f, 0x70, 0x78, 0x4c, 0xa6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x4a, 0x86, 0x81, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x16, 0x5f, 0x0c, 0x1c, 0xa4, 0x37, 0xcd, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x16, 0xab, 0x0c, 0x6c, 0x78, 0x5b, 0x67, 0x70, 0xf8, 0x60, 0x11, 0x62, 0x5e, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x96, 0xe0, 0x0c, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x5a, 0x68, 0x60, 0x83, 0x62, 0x12, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xbb, 0x55, 0x61, 0x30, 0xb0, 0x5b, 0x15, 0x56, 0x07, 0x29, 0xb0, 0xc1, 0x07, 0x6b, 0x0e, 0xf3, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xeb, 0xa1, 0x06, 0x36, 0x28, 0x0c, 0x55, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xab, 0xb6, 0x06, 0x0e, 0x16, 0xe1, 0xc9, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x75, 0x67, 0x03, 0x1b, 0xbe, 0xc2, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6b, 0xe5, 0x06, 0x36, 0xfc, 0x45, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xed, 0xaa, 0xb0, 0x19, 0xd8, 0xae, 0x0a, 0xbb, 0x83, 0x93, 0x9e, 0xe8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0xca, 0x37, 0xb0, 0x41, 0x09, 0x8f, 0xb9, 0xc1, 0x32, 0xe6, 0xbc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x72, 0xc4, 0x81, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x96, 0x4c, 0x0e, 0x1c, 0x2c, 0x29, 0x9b, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0xfb, 0x1c, 0x38, 0x58, 0x52, 0x36, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0xb9, 0x3a, 0x70, 0x50, 0x6c, 0x2b, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x56, 0xde, 0x0e, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x34, 0x78, 0xe0, 0x60, 0x49, 0xd9, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x6d, 0xf3, 0xc0, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xeb, 0xb1, 0x07, 0x0e, 0x4e, 0x04, 0x6d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe5, 0xe9, 0x03, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0xa8, 0x1f, 0x38, 0x58, 0x86, 0xfd, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x7e, 0x40, 0xb0, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x8a, 0x09, 0x82, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0x26, 0x7a, 0xae, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x02, 0x13, 0x82, 0x0d, 0x97, 0xd4, 0x1a, 0xac, 0x10, 0xc9, 0x6b, 0x0d, 0x16, 0x21, 0xe6, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x85, 0x33, 0x04, 0x1b, 0xde, 0xd6, 0x19, 0x3c, 0x3d, 0x58, 0xc6, 0x9c, 0x57, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x56, 0x0f, 0x11, 0x6c, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xb0, 0x8c, 0x39, 0x6f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0x8b, 0x22, 0xd8, 0xf0, 0xb6, 0xce, 0xe0, 0xf4, 0xc1, 0x32, 0xe6, 0xbc, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0x00, 0x23, 0xd8, 0xf0, 0x89, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0xbd, 0x1a, 0xc1, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8b, 0xea, 0x08, 0x36, 0x7c, 0xee, 0x32, 0xe0, 0xe5, 0x95, 0x91, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0xdd, 0x1f, 0xc1, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcb, 0x14, 0x09, 0x0e, 0x8a, 0x4c, 0xdc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xa2, 0x4d, 0x82, 0x83, 0xa2, 0x52, 0x7c, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x14, 0x95, 0x60, 0xc3, 0xdb, 0x3a, 0x83, 0xc3, 0x07, 0xcb, 0x98, 0xf3, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0xaa, 0x25, 0xd8, 0xf0, 0xb9, 0xcb, 0x80, 0x87, 0x16, 0x96, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa5, 0xbf, 0x04, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0x55, 0x26, 0x38, 0x28, 0x89, 0x66, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6b, 0xb7, 0x09, 0x0e, 0x8a, 0x4a, 0xf1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xaa, 0x74, 0x82, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x16, 0xcf, 0x13, 0x1c, 0x1e, 0x93, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0xfb, 0x27, 0x38, 0x3c, 0x26, 0xd3, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x2d, 0x43, 0xc1, 0xc1, 0x32, 0x5c, 0xbd, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xeb, 0x32, 0x0a, 0x36, 0x7c, 0x85, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xd6, 0x92, 0x14, 0x6c, 0xf8, 0x8b, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x2b, 0x56, 0x61, 0x31, 0xb0, 0x62, 0x15, 0x56, 0x07, 0x27, 0x3d, 0xd1, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xd4, 0xa5, 0x60, 0x83, 0x93, 0x83, 0xdc, 0x1a, 0xac, 0xf7, 0xd4, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xd4, 0x4a, 0x64, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd5, 0x61, 0x22, 0x1b, 0xde, 0xd6, 0x19, 0xf0, 0xf5, 0x5a, 0xc6, 0xde, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6b, 0xe5, 0x44, 0x36, 0xbc, 0xad, 0x33, 0x78, 0x7c, 0xb0, 0x8c, 0x39, 0xaf, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x64, 0x15, 0xd2, 0x81, 0x25, 0xab, 0x90, 0x6f, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0x2e, 0x7c, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2b, 0x79, 0x0a, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x70, 0x54, 0x70, 0xb0, 0x6e, 0x1d, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x6a, 0xaa, 0xe0, 0x60, 0xcd, 0xc6, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0xe1, 0x57, 0xc1, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8b, 0xd5, 0x0a, 0x0e, 0x4e, 0x04, 0x6d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc5, 0x7b, 0x05, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0x38, 0x2c, 0x38, 0x28, 0x88, 0x96, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xeb, 0x33, 0x0b, 0x0e, 0x8a, 0x4a, 0xf1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xba, 0xd3, 0x82, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xd6, 0xca, 0x16, 0x6c, 0x78, 0x5b, 0x67, 0x83, 0x85, 0xc7, 0x71, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x56, 0x16, 0x17, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x1a, 0xba, 0xe0, 0x60, 0x95, 0x13, 0xdd, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x65, 0x78, 0xc1, 0xc1, 0xd2, 0x92, 0xbd, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x3c, 0xbe, 0xe0, 0xa0, 0xd8, 0x56, 0xae, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x65, 0x15, 0xd2, 0x81, 0x2d, 0xab, 0x90, 0x1f, 0x9c, 0x73, 0x53, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xda, 0x00, 0x83, 0x0d, 0x4e, 0x0e, 0x72, 0x6b, 0xb0, 0x72, 0x58, 0xaf, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xe2, 0x98, 0x86, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xd6, 0xf3, 0x34, 0x1c, 0xac, 0xe4, 0xd8, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0x79, 0x6a, 0x38, 0x58, 0x5a, 0xb2, 0xd7, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xb3, 0x0a, 0xf9, 0xc0, 0x9e, 0x55, 0x58, 0x1c, 0xa4, 0x6c, 0x31, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x85, 0x10, 0x06, 0x1b, 0x3e, 0xb1, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0xdc, 0x30, 0xd8, 0xf0, 0xb9, 0xcb, 0x80, 0x97, 0xf7, 0x46, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd5, 0x25, 0x06, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0x86, 0x31, 0xd8, 0xf0, 0xb6, 0xce, 0x06, 0xe9, 0x17, 0xa2, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x16, 0x0e, 0x19, 0x1c, 0x2c, 0x2d, 0xd9, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0x81, 0x32, 0xd8, 0xe0, 0x38, 0x36, 0xb1, 0x41, 0x89, 0xae, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0xdd, 0x65, 0xb0, 0x41, 0x31, 0x89, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x4d, 0xab, 0xb0, 0x1c, 0xd8, 0xb4, 0x0a, 0xd3, 0x83, 0x22, 0x15, 0x73, 0x70, 0x73, 0x70, 0x7a, 0x83, 0x95, 0xd2, 0x7b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x56, 0xa8, 0x19, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x90, 0xce, 0xe0, 0x60, 0x11, 0x9e, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x35, 0xa0, 0xc1, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2b, 0x18, 0x0d, 0x36, 0xbc, 0xad, 0x33, 0xe0, 0xcf, 0xb5, 0x8c, 0xbd, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xd6, 0x73, 0x1a, 0x6c, 0x78, 0x5b, 0xe7, 0x60, 0xf9, 0x00, 0x5f, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x05, 0xad, 0x06, 0x1b, 0x1c, 0xc7, 0x26, 0x36, 0x28, 0xd1, 0x95, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4b, 0x75, 0x0d, 0x36, 0xbc, 0xcd, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x96, 0x16, 0x1b, 0x6c, 0x78, 0x50, 0x72, 0x0d, 0x8f, 0xb0, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x16, 0x74, 0x1b, 0x6c, 0x50, 0x4c, 0x62, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xd5, 0x2a, 0x8c, 0x07, 0x56, 0xad, 0xc2, 0xfa, 0x20, 0x04, 0x1f, 0x0e, 0x02, 0x3c, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x6c, 0xdd, 0x60, 0xc3, 0xbf, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x75, 0xf6, 0x06, 0x87, 0x07, 0x6f, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xf2, 0x80, 0x83, 0x83, 0x83, 0x32, 0xdd, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x9d, 0xc3, 0xc1, 0x86, 0x7f, 0x73, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0b, 0x33, 0x0e, 0x0e, 0x0f, 0xde, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf5, 0x24, 0x07, 0x07, 0x87, 0xd0, 0x89, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xc2, 0x98, 0x83, 0x0d, 0xff, 0xe6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x56, 0xf2, 0x1c, 0x1c, 0x1e, 0xbc, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0b, 0x90, 0x0e, 0x0e, 0x0e, 0xe7, 0x7c, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x65, 0xd0, 0x06, 0x1b, 0xde, 0xd6, 0x39, 0x58, 0x4e, 0xc0, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0xaa, 0x75, 0xb0, 0x41, 0xd1, 0xa7, 0xbb, 0x41, 0x89, 0xae, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x7c, 0x76, 0xb0, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x12, 0xb9, 0x83, 0x83, 0x45, 0x78, 0x72, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x55, 0x7e, 0x07, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0x4c, 0x3c, 0xd8, 0xf0, 0xb6, 0xce, 0x80, 0x9f, 0xd7, 0x32, 0xf6, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0xbe, 0x79, 0xb0, 0xe1, 0x6d, 0x9d, 0xc1, 0xe7, 0x83, 0xe5, 0x04, 0x7c, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x96, 0xa5, 0x1e, 0x6c, 0x50, 0xf4, 0xe9, 0x6e, 0x50, 0xa2, 0x2b, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x16, 0xd9, 0x1e, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x14, 0xf8, 0xe0, 0x60, 0x11, 0x9e, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x35, 0xf3, 0xc1, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0b, 0xb0, 0x0f, 0x0e, 0x16, 0xd9, 0xf2, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xd6, 0xa3, 0x1f, 0x6c, 0x78, 0x5b, 0x67, 0xf0, 0xf6, 0x60, 0x39, 0x01, 0x5f, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x45, 0xf6, 0x07, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0x02, 0x40, 0x38, 0x58, 0x84, 0x27, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0xca, 0x80, 0x70, 0xb0, 0x08, 0x4f, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x1a, 0x03, 0x61, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x05, 0x24, 0x08, 0x07, 0x8b, 0x6c, 0xf9, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcb, 0x69, 0x10, 0x36, 0xbc, 0xad, 0x33, 0x38, 0x7a, 0xb0, 0x9c, 0x80, 0xaf, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xf2, 0x21, 0x84, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0x4a, 0x74, 0xe5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x62, 0x28, 0x84, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x96, 0x6c, 0x21, 0x1c, 0x2c, 0xc2, 0x93, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0x3a, 0x43, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0xa1, 0x1c, 0xc2, 0x86, 0xb7, 0x75, 0x06, 0xfc, 0xb0, 0x96, 0xb1, 0xb7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x7a, 0x42, 0x84, 0x0d, 0x6f, 0xeb, 0x0c, 0x4e, 0x1e, 0x2c, 0x27, 0xe0, 0xab, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x5c, 0x12, 0x61, 0x83, 0xa2, 0x4f, 0x77, 0x83, 0x12, 0x5d, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xf8, 0x13, 0x61, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x25, 0xaa, 0x08, 0x07, 0x8b, 0xf0, 0xe4, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xab, 0x6c, 0x11, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x18, 0x8c, 0x70, 0xb0, 0x1e, 0xa7, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x4e, 0x1a, 0x61, 0xc3, 0xdb, 0x3a, 0x83, 0xb7, 0x07, 0xcb, 0x0b, 0xf8, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0x03, 0x47, 0xd8, 0xe0, 0x38, 0x36, 0xb1, 0x41, 0x89, 0xae, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0xe0, 0x8e, 0xb0, 0xe1, 0x6d, 0xd6, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x1e, 0x1f, 0x61, 0xc3, 0xdb, 0x3a, 0x83, 0x87, 0x07, 0xcb, 0x0b, 0xf8, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcb, 0x0c, 0x12, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x0c, 0x91, 0x70, 0xb0, 0x66, 0xe3, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xa0, 0x23, 0xe1, 0xa0, 0xd8, 0x56, 0x6e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0x5f, 0x49, 0xd8, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x7d, 0x4d, 0xc2, 0xc1, 0xba, 0x75, 0xb8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x0a, 0xa1, 0x84, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xd6, 0x34, 0x25, 0x1c, 0xac, 0xc7, 0xe9, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0xf0, 0x4a, 0xd8, 0xf0, 0xb6, 0xce, 0xe0, 0xf9, 0xc1, 0xf2, 0x02, 0xbe, 0x5a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x3b, 0x57, 0x21, 0x1f, 0xd8, 0xb9, 0x0a, 0x8b, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x85, 0xcb, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0xcd, 0x5b, 0xc2, 0x86, 0x4f, 0x6c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8b, 0xf4, 0x12, 0x36, 0x7c, 0xee, 0x32, 0xe0, 0xe5, 0xd5, 0x9d, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x21, 0x61, 0xc2, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xeb, 0x1e, 0x13, 0x0e, 0x52, 0xc4, 0x44, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xab, 0x43, 0x13, 0x0e, 0x96, 0x96, 0xec, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x16, 0xba, 0x26, 0x6c, 0x70, 0x1c, 0x9b, 0xd8, 0xa0, 0x44, 0x57, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0xe1, 0x4d, 0xd8, 0xa0, 0x98, 0xc4, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xd6, 0x55, 0x58, 0x0e, 0x6c, 0x5d, 0x85, 0xe9, 0x41, 0x91, 0x8a, 0x39, 0xb8, 0xb9, 0xc1, 0xfa, 0xec, 0xbe, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4b, 0x90, 0x13, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x29, 0x9d, 0x70, 0xb0, 0x08, 0x4f, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xdc, 0x3b, 0x61, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x25, 0xea, 0x09, 0x07, 0x4b, 0x3f, 0xf8, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0b, 0xf6, 0x13, 0x36, 0xbc, 0xad, 0x73, 0xb0, 0x2a, 0xc1, 0xaf, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x8a, 0x05, 0x85, 0x0d, 0x0a, 0x43, 0xd5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x92, 0x0a, 0x85, 0x83, 0x75, 0xeb, 0x70, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x55, 0x88, 0xc2, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0b, 0x58, 0x14, 0x36, 0x3c, 0xc2, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x70, 0xa3, 0xb0, 0xe1, 0xdf, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xfa, 0x20, 0x85, 0xc3, 0x83, 0x37, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x51, 0x93, 0xc2, 0x86, 0xb7, 0x75, 0x06, 0x27, 0x0f, 0x56, 0x29, 0xf8, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x56, 0x68, 0x29, 0x6c, 0xf8, 0x37, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xa2, 0x4c, 0xe1, 0xf0, 0xe0, 0xcd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x08, 0xa7, 0xb0, 0xe1, 0x6d, 0x9d, 0xc1, 0xdb, 0x83, 0x55, 0x0a, 0x7e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x75, 0x7d, 0x0a, 0x1b, 0xfe, 0xcd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0x44, 0x54, 0x38, 0x3c, 0x78, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xd6, 0x4f, 0x2a, 0x6c, 0x78, 0x5b, 0x67, 0x70, 0xf4, 0x60, 0x95, 0x82, 0xdf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x39, 0xa8, 0xc2, 0x86, 0x7f, 0x73, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xeb, 0x57, 0x15, 0x0e, 0x0f, 0xde, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x65, 0xb7, 0x0a, 0x1b, 0xde, 0xd6, 0x19, 0x7c, 0x3e, 0x58, 0xa5, 0xe0, 0xd7, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x4d, 0xb2, 0xc2, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xeb, 0xa6, 0x15, 0x36, 0xfc, 0x08, 0x33, 0x38, 0x1d, 0x3e, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x16, 0x7c, 0x2b, 0x1c, 0x2c, 0x82, 0x77, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0x59, 0x57, 0x38, 0x28, 0xb6, 0x95, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6b, 0xee, 0x15, 0x36, 0x38, 0x8e, 0x4d, 0x6c, 0x50, 0xa2, 0x2b, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x56, 0x13, 0x2c, 0x6c, 0x78, 0x9b, 0x75, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0x7e, 0x58, 0xd8, 0xf0, 0x6f, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0xa5, 0xc6, 0xc2, 0xe1, 0xc1, 0x9b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xbc, 0x64, 0xe1, 0x60, 0x25, 0xa6, 0xdf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0xf1, 0xcc, 0xc2, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6b, 0x7c, 0x16, 0x0e, 0x16, 0xe1, 0xc9, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x96, 0x2a, 0x2d, 0x1c, 0x2c, 0x41, 0xf5, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0xb8, 0x5a, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x91, 0xd8, 0xc2, 0xc1, 0x7a, 0x9c, 0xbe, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xa2, 0xb9, 0x85, 0x83, 0x95, 0x98, 0x7e, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x56, 0x0d, 0x2e, 0x6c, 0x70, 0x1c, 0x9b, 0xd8, 0xa0, 0x44, 0x57, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0x87, 0x5c, 0xd8, 0xf0, 0x36, 0xeb, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0xbf, 0xb9, 0xb0, 0xe1, 0xdf, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x5a, 0xd3, 0x85, 0xc3, 0x83, 0x37, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x81, 0xec, 0xc2, 0xc1, 0xea, 0x36, 0xbf, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xca, 0xdf, 0x85, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x16, 0x28, 0x2f, 0x1c, 0x2c, 0xc2, 0x93, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0xb3, 0x5e, 0xd8, 0xf0, 0x23, 0xcc, 0xe0, 0x74, 0x78, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x20, 0xbe, 0xb0, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xa2, 0xf6, 0x85, 0x83, 0xf5, 0x38, 0x7d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x45, 0xfe, 0x0b, 0x07, 0xab, 0xdb, 0xfc, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0x70, 0x60, 0xd8, 0xe0, 0x38, 0x36, 0xb1, 0x41, 0x89, 0xae, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0xba, 0xc1, 0xb0, 0xe1, 0x6d, 0xd6, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xd4, 0x84, 0x61, 0xc3, 0xbf, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x65, 0x31, 0x0c, 0x87, 0x07, 0x6f, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x5a, 0x1e, 0x86, 0x83, 0x35, 0x83, 0x7e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x45, 0x4a, 0x0c, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0xa5, 0x62, 0x38, 0x58, 0x84, 0x27, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x12, 0xc6, 0xb0, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0x70, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x96, 0x8d, 0x61, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf5, 0x77, 0x0c, 0x07, 0xeb, 0x71, 0xfa, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xeb, 0x11, 0x19, 0x0e, 0xd6, 0x0c, 0xfa, 0xd5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x8b, 0xc9, 0xb0, 0xc1, 0x71, 0x6c, 0x62, 0x83, 0x12, 0x5d, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xca, 0x94, 0x61, 0xc3, 0xdb, 0xac, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x55, 0x2c, 0xc3, 0x86, 0x7f, 0x73, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2b, 0x78, 0x19, 0x0e, 0x0f, 0xde, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x65, 0xc7, 0x0c, 0x07, 0xeb, 0xb0, 0xfc, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xeb, 0xa9, 0x19, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0xf6, 0xcd, 0x70, 0xb0, 0x08, 0x4f, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x7a, 0x9d, 0x61, 0xc3, 0x8f, 0x30, 0x83, 0xd3, 0xe1, 0xe4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0xfd, 0x3d, 0xc3, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6b, 0x06, 0x1a, 0x0e, 0xd6, 0xe3, 0xf4, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xd6, 0x50, 0x34, 0x1c, 0xac, 0xc3, 0xf2, 0xab, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x7e, 0xa4, 0x61, 0xc3, 0x25, 0xb5, 0xc6, 0xf3, 0x83, 0x12, 0x5d, 0xb9, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x02, 0x56, 0x48, 0x07, 0x16, 0xb0, 0x42, 0x7e, 0x70, 0xd4, 0x37, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0b, 0xbd, 0x1a, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x97, 0xd6, 0xb0, 0xe1, 0xdf, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x2a, 0xba, 0x86, 0x83, 0x22, 0xa7, 0x75, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0xfd, 0x6b, 0x38, 0x58, 0x5a, 0xb2, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0xb7, 0xd8, 0xb0, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xda, 0xca, 0x86, 0x83, 0x45, 0x78, 0x72, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf5, 0xa1, 0x0d, 0x1b, 0x7e, 0x84, 0x19, 0x9c, 0x0e, 0xcf, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcb, 0x5a, 0x1b, 0x0e, 0x8a, 0x6d, 0xe5, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xb2, 0xdc, 0x86, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x56, 0x10, 0x37, 0x6c, 0xf8, 0x37, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xde, 0xb9, 0xe1, 0xa0, 0x80, 0xcd, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xeb, 0xb4, 0x1b, 0x0e, 0x96, 0x96, 0xec, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x16, 0x99, 0x37, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x14, 0xbe, 0xe1, 0x60, 0x11, 0x9e, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x3d, 0x7f, 0xc3, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0xc3, 0xdd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x8a, 0x04, 0x87, 0x83, 0x62, 0x5b, 0xb9, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xa6, 0xc2, 0x61, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x75, 0x20, 0x0e, 0x07, 0x2b, 0x39, 0xf6, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xeb, 0x62, 0x1c, 0x0e, 0x96, 0x96, 0xec, 0xb5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xb6, 0xb0, 0x42, 0x3a, 0xb0, 0x85, 0x15, 0xf2, 0x83, 0xd3, 0xde, 0xc9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x0f, 0xe4, 0xb0, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xa2, 0x25, 0x87, 0x83, 0x75, 0xeb, 0x70, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x75, 0x57, 0x0e, 0x07, 0xc5, 0xb6, 0x72, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x0d, 0x2b, 0xa4, 0x03, 0x6b, 0x58, 0x21, 0x3f, 0x38, 0x6a, 0x9d, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x25, 0x66, 0x0e, 0x1b, 0x9c, 0x1c, 0xe4, 0x36, 0x58, 0x53, 0xba, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x13, 0xfc, 0xb0, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x32, 0xe6, 0x87, 0x83, 0x95, 0x1c, 0x7b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x45, 0xdd, 0x0f, 0x07, 0x4b, 0x4b, 0xf6, 0x5a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x8b, 0x58, 0x21, 0x1d, 0x58, 0xc4, 0x0a, 0xf9, 0xc1, 0x51, 0xdf, 0x64, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0xa6, 0x73, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x01, 0xa0, 0xc3, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6b, 0x16, 0x1d, 0x36, 0xbc, 0xad, 0x33, 0xc0, 0x23, 0xf7, 0xd6, 0x32, 0xf6, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0xd9, 0xe9, 0xb0, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xfa, 0x53, 0x87, 0x83, 0xa2, 0x52, 0x7c, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x78, 0xd6, 0xe1, 0x20, 0xe5, 0xb5, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xfc, 0xd7, 0xe1, 0xe0, 0xd4, 0xdc, 0xd6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x6d, 0xb3, 0xc3, 0x86, 0x5f, 0x94, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x88, 0x15, 0x5a, 0x06, 0x16, 0xb1, 0x42, 0xd1, 0x86, 0x3f, 0x97, 0x06, 0x0f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x62, 0x85, 0x9e, 0x83, 0x25, 0xfb, 0x80, 0x87, 0x1f, 0x6a, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x4a, 0x6d, 0x87, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x8a, 0x7c, 0xd9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xea, 0x72, 0x87, 0x0d, 0x6f, 0xeb, 0x0c, 0xbc, 0x5b, 0xd9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x41, 0xbe, 0xc3, 0xe1, 0x69, 0x9d, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0x61, 0x78, 0x38, 0x58, 0x5a, 0xb2, 0xd7, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xc4, 0x0a, 0xe9, 0xc0, 0x26, 0x56, 0xc8, 0x37, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x17, 0x3e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc5, 0x1d, 0x0f, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0x47, 0x79, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x09, 0xcd, 0xc3, 0xc1, 0x92, 0x67, 0xc0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x92, 0xa2, 0x87, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x16, 0x3e, 0x3d, 0x1c, 0x9c, 0x9a, 0xdb, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6b, 0xb7, 0x1e, 0x0e, 0x0e, 0xaf, 0x72, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe5, 0x67, 0x0f, 0x07, 0x87, 0x95, 0xb9, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6b, 0xeb, 0x1e, 0x36, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x4d, 0xac, 0xd0, 0x32, 0xb0, 0x89, 0x15, 0x8a, 0x36, 0xfc, 0xb9, 0x34, 0x78, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x13, 0x2b, 0xf4, 0x1c, 0xac, 0x76, 0x0b, 0x3c, 0xfc, 0x50, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x56, 0x0a, 0x3e, 0x6c, 0x50, 0x96, 0xbc, 0x6f, 0x90, 0x82, 0xe9, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0xdd, 0xf8, 0x70, 0xb0, 0xf0, 0x22, 0x70, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xdc, 0xf3, 0xe1, 0xf0, 0xb4, 0x4e, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x16, 0xc8, 0x3e, 0x1c, 0x2c, 0x2d, 0xd9, 0xab, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x8c, 0x15, 0xd2, 0x81, 0x65, 0xac, 0x90, 0x1f, 0x9c, 0x39, 0x5d, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x5a, 0xf6, 0x87, 0x0d, 0x9f, 0xd8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x16, 0xdf, 0x3f, 0x6c, 0xf8, 0xdc, 0x65, 0xc0, 0x9b, 0xc3, 0xd3, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xfa, 0x00, 0x88, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x96, 0x33, 0x40, 0x6c, 0x78, 0x50, 0x72, 0x83, 0x54, 0x9c, 0xc5, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xfa, 0x02, 0x62, 0xc3, 0xdb, 0x3a, 0x07, 0x29, 0x30, 0x8b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf5, 0x2b, 0x10, 0x07, 0x4b, 0x4b, 0xf6, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4b, 0x71, 0x20, 0x36, 0x7c, 0x62, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x38, 0x04, 0xb1, 0xe1, 0x73, 0x97, 0x01, 0x8f, 0x2c, 0x0f, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4b, 0x9b, 0x20, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x89, 0x05, 0x71, 0x50, 0x14, 0xff, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xd6, 0xae, 0x41, 0x1c, 0x14, 0x95, 0xe2, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x15, 0x79, 0x10, 0x1b, 0xde, 0xd6, 0xd9, 0x60, 0x81, 0x6c, 0x60, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x25, 0x85, 0x10, 0x1b, 0x14, 0x86, 0xaa, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x35, 0x8f, 0x10, 0x07, 0xeb, 0xd6, 0xe1, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xaa, 0x4d, 0x88, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x16, 0x98, 0x42, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x22, 0x16, 0xe2, 0xf0, 0xc5, 0xef, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x81, 0x30, 0xc4, 0x86, 0xb7, 0x75, 0x36, 0x58, 0xda, 0x1d, 0xd8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0xb5, 0x33, 0xc4, 0xe1, 0x31, 0x99, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcb, 0xb6, 0x21, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x68, 0x0e, 0x71, 0x70, 0x22, 0x68, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0xd1, 0x87, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x55, 0x41, 0xc4, 0xc1, 0x32, 0xec, 0xb7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x1a, 0x8c, 0x88, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x96, 0x8d, 0x44, 0x6c, 0x78, 0x50, 0x72, 0x83, 0x95, 0x2d, 0x71, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x99, 0x4b, 0xc4, 0xc1, 0xda, 0x81, 0xb8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x62, 0xa1, 0x88, 0x83, 0x15, 0xf7, 0x81, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x20, 0x15, 0x71, 0x50, 0x6c, 0x2b, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x96, 0x7c, 0x45, 0x6c, 0xf8, 0xc4, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x40, 0x2d, 0x62, 0xc3, 0xe7, 0x2e, 0x03, 0x1e, 0x59, 0x5e, 0xbe, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x96, 0xd0, 0x45, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xe2, 0x2f, 0xe2, 0xa0, 0x28, 0xfe, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0x92, 0x8c, 0x38, 0x38, 0x35, 0xb7, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x56, 0x80, 0x46, 0x1c, 0xac, 0xb8, 0x0f, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0x64, 0x8d, 0xd8, 0xa0, 0xb4, 0xb7, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0xbb, 0x8d, 0xd8, 0xf0, 0xe7, 0xd2, 0x80, 0x97, 0xd6, 0x06, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x95, 0xc1, 0x11, 0x07, 0x65, 0x96, 0xee, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0xcb, 0x1c, 0xb1, 0xe1, 0x2b, 0x9c, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xfe, 0x3a, 0x62, 0xc3, 0x5f, 0x34, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xca, 0x0a, 0x9b, 0x81, 0xa5, 0xac, 0xb0, 0x3b, 0x38, 0xe9, 0x89, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe5, 0xe1, 0x11, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0x64, 0x8f, 0xd8, 0xf0, 0x6f, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0xdd, 0x7d, 0xc4, 0x86, 0xb7, 0x75, 0x36, 0x58, 0x99, 0x29, 0xd8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x30, 0x20, 0xb1, 0xe1, 0x6d, 0x9d, 0x0d, 0xd6, 0xc4, 0x09, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0xeb, 0x20, 0x71, 0x50, 0x6c, 0x2b, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc5, 0x1a, 0x12, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x2c, 0x5d, 0x16, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2b, 0x21, 0x29, 0x36, 0x7c, 0x1c, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x96, 0x6d, 0x52, 0x1c, 0xac, 0x4f, 0x16, 0x5c, 0x83, 0x12, 0x5d, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0x44, 0x91, 0xd8, 0xa0, 0x20, 0x8d, 0x1d, 0xf0, 0xd8, 0xde, 0xce, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xca, 0x19, 0x89, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x16, 0xfb, 0x48, 0x1c, 0x94, 0x44, 0xb3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb5, 0x4f, 0x12, 0x07, 0xa7, 0xe6, 0xb6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xda, 0x2e, 0x89, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x96, 0xa0, 0x49, 0x1c, 0xac, 0x4f, 0x16, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0x9e, 0x93, 0x38, 0x3c, 0x26, 0xd3, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x49, 0xa0, 0xc4, 0xc1, 0x8a, 0xfb, 0xc0, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x12, 0x47, 0x89, 0x0d, 0x92, 0x0c, 0x08, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2b, 0x32, 0x25, 0x0e, 0x4e, 0x04, 0x6d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x55, 0xb0, 0x12, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0xdc, 0x95, 0x38, 0x58, 0x86, 0xfd, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0xe8, 0x2c, 0xb1, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xda, 0x6c, 0x89, 0x0d, 0x0f, 0x4a, 0x6e, 0xb0, 0xf8, 0x1f, 0x6e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0x25, 0x97, 0x38, 0x58, 0x3b, 0x10, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x96, 0x2f, 0xb1, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x52, 0x82, 0x89, 0x83, 0x12, 0x1f, 0x77, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x02, 0x63, 0xe2, 0xa0, 0xa8, 0x14, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0x2c, 0x99, 0xd8, 0xf0, 0xb6, 0xce, 0x06, 0xcb, 0xf6, 0x05, 0xab, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4b, 0x7b, 0x26, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x8d, 0x34, 0x71, 0xb0, 0x0c, 0xfb, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x36, 0x6b, 0x62, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe5, 0x64, 0x13, 0x1b, 0x1e, 0x94, 0xdc, 0x60, 0x65, 0x4b, 0xdc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0xfe, 0x36, 0x71, 0xb0, 0x76, 0x20, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x4c, 0x70, 0x62, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa5, 0x8d, 0x13, 0x07, 0x45, 0x26, 0xee, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x41, 0xe8, 0xc4, 0x41, 0x51, 0x29, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0xe8, 0x3a, 0x71, 0xb0, 0x08, 0x6e, 0xb0, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0x34, 0x9e, 0xd8, 0xf0, 0x41, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x69, 0xf4, 0xc4, 0x86, 0x7f, 0x73, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4b, 0xb9, 0x27, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x7d, 0x3e, 0x71, 0x10, 0x76, 0xb7, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb5, 0xfa, 0x13, 0x07, 0xeb, 0x93, 0x05, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0b, 0x10, 0x28, 0x0e, 0x4e, 0xcd, 0x6d, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x25, 0x15, 0x14, 0x87, 0x07, 0x6f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6b, 0x41, 0x28, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0xbc, 0x42, 0xb1, 0xe1, 0xdf, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x6a, 0x1b, 0x8a, 0x83, 0xf5, 0xc9, 0x82, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0xa1, 0x10, 0xc5, 0xe1, 0xc1, 0x9b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x0a, 0x27, 0x8a, 0x83, 0x05, 0x41, 0x74, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x99, 0x16, 0xc5, 0x86, 0x67, 0xf1, 0x0e, 0x96, 0x92, 0x51, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x05, 0x6c, 0x14, 0x1b, 0x9e, 0xc5, 0x3b, 0x58, 0xa7, 0x05, 0xb0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x02, 0x48, 0x71, 0x50, 0x6c, 0x2b, 0xd7, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xd0, 0x0a, 0xe9, 0xc0, 0x86, 0x56, 0xc8, 0x0f, 0x8e, 0xc5, 0xae, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0xe5, 0x2a, 0xc5, 0x06, 0xe7, 0xfc, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xf2, 0x5a, 0x8a, 0x83, 0x45, 0x78, 0x72, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x25, 0xc2, 0x14, 0x07, 0xeb, 0xd6, 0xe1, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x2a, 0x67, 0x8a, 0x0d, 0x16, 0x60, 0x36, 0xad, 0xe1, 0xfb, 0xf6, 0x0d, 0x8e, 0x19, 0x9e, 0x1b, 0x94, 0xd0, 0xb1, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xd1, 0x0a, 0x9b, 0x81, 0x1d, 0xad, 0x50, 0xb0, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x47, 0x2b, 0x8c, 0x06, 0x76, 0xb4, 0xc2, 0xf0, 0xa0, 0xf4, 0xa6, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x8e, 0x56, 0x58, 0x0e, 0xec, 0x68, 0x85, 0xe9, 0xe1, 0x83, 0xd5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x68, 0x85, 0xed, 0xc0, 0x8e, 0x56, 0xd8, 0x1f, 0x9c, 0xf4, 0x44, 0x3b, 0x08, 0xd3, 0xb1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xaa, 0x69, 0x8b, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x96, 0x79, 0x5b, 0x1c, 0x9c, 0x08, 0xda, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcb, 0xe3, 0x2d, 0x36, 0xbc, 0xad, 0x33, 0x78, 0x7c, 0x70, 0x06, 0xf3, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0xfc, 0xb7, 0x38, 0x28, 0xb6, 0x95, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6b, 0xb2, 0x29, 0x36, 0x28, 0x3a, 0x8d, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2b, 0xc8, 0x29, 0x36, 0xbc, 0xad, 0xb3, 0x41, 0x19, 0xaa, 0xd6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0xf1, 0x3d, 0xc5, 0x06, 0x2b, 0x5d, 0x9c, 0xd6, 0xe0, 0x6c, 0x72, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xd6, 0xb4, 0xc2, 0x6c, 0x60, 0x4d, 0x2b, 0xac, 0x0f, 0x96, 0x96, 0xec, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa5, 0x03, 0x15, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0x72, 0xa8, 0xd8, 0xf0, 0x6f, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x51, 0x46, 0xc5, 0xe1, 0xc1, 0x9b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x92, 0xa4, 0x62, 0xc3, 0xdb, 0x3a, 0x07, 0x8b, 0x3a, 0x09, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcb, 0x60, 0x2a, 0x36, 0x38, 0xba, 0x0e, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xd6, 0xea, 0x54, 0x1c, 0x1e, 0xbc, 0x69, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0x39, 0xaa, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x95, 0x54, 0xc5, 0x41, 0x41, 0xb4, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x36, 0x56, 0x71, 0x50, 0x54, 0x8a, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x96, 0xc3, 0x55, 0x1c, 0x2c, 0x0b, 0x26, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0xfa, 0xab, 0xd8, 0xf0, 0x8b, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x16, 0xb5, 0x42, 0x3e, 0xb0, 0xa8, 0x15, 0xf6, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xa2, 0x56, 0x18, 0x0c, 0x2c, 0x6a, 0x85, 0xcd, 0x86, 0x3f, 0x97, 0x06, 0x8f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x6a, 0x85, 0xc9, 0xc1, 0x9a, 0x81, 0xc2, 0xc3, 0x0f, 0x35, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xd4, 0x0a, 0xa3, 0x81, 0x45, 0xad, 0xb0, 0xdb, 0xf0, 0xe7, 0xd2, 0xe0, 0xf3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x45, 0xad, 0x30, 0x3b, 0x58, 0x98, 0x51, 0x78, 0xf8, 0x60, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x8b, 0x5a, 0x61, 0x38, 0xb0, 0xa8, 0x15, 0xe6, 0x1b, 0xfe, 0x5c, 0x1a, 0x5c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xa8, 0x15, 0xa6, 0x07, 0xab, 0x5f, 0x0a, 0x0f, 0x4e, 0x7a, 0xa2, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x85, 0x8c, 0x15, 0x1b, 0x14, 0x86, 0xaa, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x95, 0x96, 0x15, 0x1b, 0xde, 0x66, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xeb, 0x42, 0x2b, 0x0e, 0x0e, 0xe7, 0x7c, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x99, 0x6b, 0xc5, 0x06, 0x45, 0xa7, 0xf1, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x51, 0x6e, 0xc5, 0xc1, 0x89, 0xa0, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x46, 0xb9, 0x62, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x55, 0xd5, 0x15, 0x07, 0xcb, 0xb0, 0xdf, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4b, 0xcc, 0x2b, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x15, 0x5f, 0xb1, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x2a, 0xfe, 0x8a, 0x83, 0xc3, 0x39, 0xdf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x09, 0x82, 0xc5, 0x86, 0x07, 0x25, 0x37, 0x58, 0xd9, 0x12, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x56, 0x4c, 0x58, 0x1c, 0xac, 0x1d, 0x88, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xeb, 0x41, 0x2c, 0x36, 0x3c, 0x28, 0xb9, 0xc1, 0xe2, 0x7f, 0xb8, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x7e, 0xc5, 0xe2, 0x60, 0xed, 0x40, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0xad, 0x8f, 0xc5, 0xc1, 0xe9, 0x48, 0xa4, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xda, 0x26, 0x8b, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x32, 0x2c, 0x8b, 0x0d, 0x8f, 0xb0, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x16, 0x8d, 0x59, 0x1c, 0x1c, 0xce, 0xf9, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xab, 0xdf, 0x2c, 0x36, 0xbc, 0xcd, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x16, 0xeb, 0x59, 0x6c, 0xf8, 0x37, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xb0, 0xd0, 0xe2, 0xe0, 0xf8, 0xc9, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xd6, 0x45, 0x5a, 0x1c, 0x2c, 0x08, 0xa2, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x92, 0xd8, 0xe2, 0xe0, 0xf8, 0xc9, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x96, 0x87, 0x5a, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x88, 0xd5, 0xe2, 0x60, 0xcd, 0xc6, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x21, 0xae, 0xc5, 0xc1, 0xf1, 0x93, 0xaf, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xae, 0x15, 0xd2, 0x81, 0x75, 0xad, 0x90, 0x1f, 0x2c, 0x4c, 0xee, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8b, 0x22, 0x2e, 0x36, 0x38, 0x39, 0xc8, 0x6d, 0xb0, 0xa6, 0x74, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x48, 0x1e, 0x63, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x75, 0xfd, 0x18, 0x07, 0x2b, 0x39, 0xf6, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xab, 0x1c, 0x32, 0x0e, 0x96, 0x96, 0xec, 0xb5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x16, 0xb6, 0x42, 0x3a, 0xb0, 0xb0, 0x15, 0xf2, 0x83, 0x73, 0x6e, 0xca, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0xff, 0x71, 0xb1, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x2a, 0x95, 0x8b, 0x83, 0x45, 0x78, 0x72, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa5, 0x36, 0x17, 0x07, 0xeb, 0xd6, 0xe1, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xab, 0x85, 0x2e, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0xe0, 0x74, 0xb1, 0xe1, 0x6d, 0x9d, 0x01, 0x5f, 0xae, 0x65, 0xec, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x0a, 0xec, 0x62, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x95, 0x6b, 0x17, 0x1b, 0xde, 0xd6, 0xd9, 0x20, 0x29, 0x7e, 0xaf, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x3a, 0xbf, 0x8b, 0x83, 0xa5, 0x25, 0x7b, 0xd5, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xd8, 0x0a, 0xe9, 0xc0, 0xc6, 0x56, 0xc8, 0x37, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x17, 0x8e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x05, 0x91, 0x17, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0xdb, 0xbc, 0x38, 0x58, 0x84, 0x27, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x7b, 0x7a, 0x71, 0xb0, 0x6e, 0x1d, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x80, 0xf6, 0xe2, 0x60, 0xdd, 0x3a, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x0d, 0xf0, 0xc5, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcb, 0x96, 0x2f, 0x0e, 0x56, 0xe5, 0x18, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x56, 0x71, 0x5f, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xf2, 0xfc, 0x62, 0xc3, 0xdb, 0x3a, 0x1b, 0x24, 0x92, 0x2e, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x85, 0x7f, 0x71, 0xb0, 0xb4, 0x64, 0xaf, 0x5a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x2b, 0x5b, 0x21, 0x1d, 0x58, 0xd9, 0x0a, 0xf9, 0xc1, 0xb1, 0xd8, 0x75, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0x55, 0xc0, 0xd8, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x45, 0x05, 0xc6, 0xc1, 0x22, 0x3c, 0xb9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xb2, 0x10, 0x8c, 0x83, 0x75, 0xeb, 0x70, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb5, 0x2d, 0x18, 0x07, 0xeb, 0xd6, 0xe1, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0b, 0x74, 0x30, 0x0e, 0xd6, 0xad, 0xc3, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x16, 0x19, 0x61, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x30, 0x0a, 0xe3, 0x60, 0x55, 0x8e, 0xe1, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0xa1, 0x18, 0xc6, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8b, 0xdb, 0x30, 0x36, 0xbc, 0xad, 0xb3, 0x41, 0x2a, 0xea, 0x5e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc5, 0x80, 0x18, 0x07, 0x4b, 0x4b, 0xf6, 0xaa, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xb3, 0x15, 0xd2, 0x81, 0x9d, 0xad, 0x90, 0x1f, 0x2c, 0x89, 0x09, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcb, 0x22, 0x31, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0xbc, 0x89, 0x71, 0xb0, 0x08, 0x4f, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xfe, 0x14, 0x63, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x25, 0xb3, 0x18, 0x07, 0xab, 0x72, 0x0c, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0b, 0x88, 0x31, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0xf3, 0x8c, 0xb1, 0xe1, 0x6d, 0x9d, 0x0d, 0x12, 0xf5, 0xf8, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0x11, 0xc7, 0x38, 0x58, 0x5a, 0xb2, 0x57, 0xb5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xd6, 0xb6, 0x42, 0x3a, 0xb0, 0xb6, 0x15, 0xf2, 0x83, 0x84, 0x30, 0xa3, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xf6, 0x23, 0x63, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x85, 0x2a, 0x19, 0x1b, 0x14, 0x93, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xdb, 0x0a, 0x93, 0x81, 0xbd, 0xad, 0x30, 0x3a, 0x58, 0x3b, 0xb3, 0x77, 0xb0, 0xa6, 0x74, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x18, 0x27, 0x63, 0x83, 0xa2, 0xd3, 0x78, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x7c, 0x28, 0xe3, 0xe0, 0x90, 0xb5, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x76, 0x95, 0xb1, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xe2, 0xb0, 0x8c, 0x83, 0x45, 0xf0, 0x6e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x15, 0x6e, 0x19, 0x1b, 0x7e, 0x84, 0x19, 0x9c, 0x0e, 0x1f, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xab, 0xf4, 0x32, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x59, 0x98, 0x71, 0x70, 0x92, 0x69, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0xca, 0xcc, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x21, 0x69, 0xc6, 0x86, 0x07, 0x25, 0x37, 0x38, 0x08, 0xb5, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x95, 0xaf, 0x19, 0x1b, 0xde, 0xd6, 0x19, 0x78, 0xb3, 0xb0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x02, 0xe2, 0x8c, 0x83, 0xa5, 0x25, 0x7b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xd6, 0x49, 0x67, 0x6c, 0xf8, 0x11, 0x66, 0x70, 0x3a, 0x34, 0xd6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x09, 0x9e, 0xb1, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xba, 0xf5, 0x8c, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x63, 0x2d, 0x63, 0x6f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb5, 0xfd, 0x19, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0x47, 0xd0, 0xd8, 0xf0, 0xa0, 0xe4, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xca, 0xdc, 0xc6, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xea, 0x09, 0x8d, 0x83, 0x15, 0x8b, 0x87, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x65, 0x26, 0x1a, 0x07, 0x4b, 0x4b, 0xf6, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0xa7, 0xd1, 0xd8, 0x60, 0x01, 0x66, 0xd3, 0x1a, 0xbe, 0x6f, 0x1f, 0xf0, 0xce, 0xc2, 0xda, 0x0d, 0x4a, 0xe8, 0xd8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x6e, 0x85, 0xcd, 0xc0, 0xee, 0x56, 0xe8, 0xd8, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xbb, 0x15, 0x46, 0x03, 0xbb, 0x5b, 0x61, 0x78, 0x50, 0x7a, 0xd3, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x77, 0x2b, 0x2c, 0x07, 0x76, 0xb7, 0xc2, 0xfa, 0xe0, 0xa4, 0x27, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xdd, 0xad, 0x30, 0x1f, 0xd8, 0xdd, 0x0a, 0x15, 0x07, 0x27, 0x3d, 0xd1, 0x0e, 0xc2, 0x74, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x72, 0xd8, 0x63, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb5, 0xce, 0x1e, 0x07, 0x27, 0x82, 0xb6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xd2, 0x6f, 0x8f, 0x0d, 0x6f, 0xeb, 0x0c, 0x0e, 0x6f, 0xb0, 0x5c, 0xfa, 0xb0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xa2, 0x76, 0x8f, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x16, 0xe1, 0x7b, 0x6c, 0xf8, 0x37, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x68, 0xe0, 0xe3, 0xf0, 0xe0, 0xcd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0xe9, 0xf0, 0x71, 0xb0, 0xb4, 0x64, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x58, 0xe3, 0x63, 0xc3, 0x5f, 0x34, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xde, 0x0a, 0x55, 0x03, 0xcb, 0x5b, 0xa1, 0xee, 0xe0, 0xa4, 0x27, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x56, 0x94, 0x7c, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xe8, 0xe5, 0xe3, 0x60, 0x11, 0xbc, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0xe5, 0xce, 0xc7, 0x41, 0x41, 0x91, 0xd9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x70, 0xf4, 0xb1, 0xe1, 0x6d, 0x9d, 0xc1, 0xe3, 0x83, 0x35, 0x19, 0x88, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd5, 0x3f, 0x1a, 0x1b, 0x9c, 0x1c, 0xe4, 0x36, 0x58, 0x53, 0xba, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x8d, 0xe1, 0xb1, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xa2, 0x11, 0x8f, 0x83, 0x82, 0x22, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xd2, 0xc5, 0x63, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd5, 0x39, 0x1e, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0x28, 0xf2, 0xd8, 0xf0, 0xb6, 0xce, 0x00, 0xcf, 0x1b, 0x5e, 0xcb, 0xd8, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x81, 0x95, 0xc7, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcb, 0xc0, 0x3c, 0x0e, 0x52, 0x5e, 0xab, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4b, 0xd9, 0x3c, 0x0e, 0x8a, 0x4a, 0xf1, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4b, 0xf4, 0x3c, 0x36, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xed, 0xad, 0xd0, 0x34, 0xb0, 0xbd, 0x15, 0xca, 0x36, 0xfc, 0xb9, 0x34, 0x78, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x7b, 0x2b, 0x74, 0x1d, 0xac, 0x6e, 0x45, 0x3c, 0xfc, 0x50, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x16, 0x1c, 0x7a, 0x6c, 0x50, 0x96, 0xbc, 0x6f, 0x50, 0xe4, 0xcb, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x16, 0x49, 0x7a, 0x1c, 0x2c, 0xbc, 0x08, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0x1d, 0xf5, 0x38, 0x3c, 0xad, 0x53, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc5, 0xb6, 0x1e, 0x07, 0x4b, 0x4b, 0xf6, 0x6a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x6f, 0x85, 0x74, 0x60, 0x7d, 0x2b, 0xe4, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x0b, 0x17, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x4a, 0x27, 0x8d, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x16, 0x64, 0x69, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x6a, 0x4c, 0xe3, 0x60, 0x11, 0xbc, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0xe9, 0x9b, 0xc6, 0xc1, 0x72, 0xdc, 0xb8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xea, 0x3d, 0x8d, 0x83, 0x82, 0x22, 0xb3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x92, 0x43, 0x8d, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x96, 0x49, 0x6a, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xb2, 0x53, 0xe3, 0x60, 0x11, 0x22, 0xe2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x01, 0xac, 0xc6, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xeb, 0x74, 0x35, 0x0e, 0x02, 0x96, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xc8, 0x58, 0xe3, 0xe0, 0xd4, 0xdc, 0xd6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x09, 0xb5, 0xc6, 0x86, 0x5f, 0x94, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xbe, 0x15, 0xfa, 0x06, 0xd6, 0xb7, 0x42, 0xe5, 0x86, 0x3f, 0x97, 0x06, 0x0f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x6f, 0x85, 0xc6, 0x83, 0xa5, 0x39, 0x89, 0x87, 0x1f, 0x6a, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x82, 0x70, 0x8d, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x8a, 0x7c, 0xd9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x22, 0x76, 0x8d, 0x83, 0x85, 0x17, 0x81, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa5, 0xfd, 0x1a, 0x87, 0xa7, 0x75, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x18, 0x62, 0xe3, 0x60, 0x69, 0xc9, 0x5e, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xfd, 0xad, 0x90, 0x0e, 0xec, 0x6f, 0x85, 0xfc, 0xe0, 0xa8, 0x75, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x16, 0x84, 0x6c, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x6c, 0x65, 0x63, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb5, 0x35, 0x1b, 0x07, 0x8b, 0xe0, 0xdd, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0b, 0x84, 0x36, 0x36, 0xfc, 0x08, 0x33, 0x38, 0x1d, 0x9e, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x16, 0x38, 0x6d, 0x1c, 0x14, 0x14, 0x99, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x56, 0x65, 0x6d, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x90, 0x6c, 0x63, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb5, 0x6f, 0x1b, 0x1b, 0xde, 0xd6, 0x19, 0xf0, 0xc9, 0x5a, 0xc6, 0xde, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6b, 0x01, 0x37, 0x0e, 0x8f, 0xc9, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x1e, 0xb9, 0x71, 0xb0, 0xb4, 0x64, 0xaf, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x02, 0x57, 0x48, 0x07, 0x16, 0xb8, 0x42, 0xbe, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x70, 0x7c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0x1b, 0xdd, 0xd8, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x79, 0xeb, 0xc6, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6b, 0x70, 0x37, 0x0e, 0x16, 0xc1, 0xbb, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x16, 0x12, 0x6f, 0x1c, 0xac, 0x41, 0x7f, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0x85, 0xde, 0x38, 0x28, 0x28, 0x32, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0xe0, 0xde, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0xd1, 0xf9, 0xc6, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xeb, 0xe4, 0x37, 0x0e, 0x16, 0x21, 0x22, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x56, 0x0e, 0x70, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xc0, 0x81, 0xe3, 0xe0, 0xf0, 0x2a, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0xa5, 0xc1, 0x71, 0x70, 0x6a, 0x6e, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x06, 0x85, 0x63, 0xc3, 0x2f, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xe0, 0x0a, 0x85, 0x03, 0x0b, 0x5c, 0xa1, 0x73, 0xc3, 0x9f, 0x4b, 0x83, 0x87, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x16, 0xb8, 0x42, 0xe5, 0xc1, 0x4a, 0x0a, 0xc5, 0xc3, 0x0f, 0x35, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x45, 0x0d, 0xc7, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x29, 0x98, 0x4e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x55, 0x40, 0x1c, 0x07, 0x0b, 0x2f, 0x02, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcb, 0xa2, 0x38, 0x0e, 0x4f, 0xeb, 0xd4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x21, 0x19, 0xc7, 0xc1, 0xd2, 0x92, 0xbd, 0x5a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x1b, 0x5c, 0x21, 0x1d, 0xd8, 0xe0, 0x0a, 0xf9, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0xc2, 0xed, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xc6, 0x8e, 0x63, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa5, 0x80, 0x1c, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0x57, 0xe4, 0x38, 0x58, 0x04, 0xef, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x74, 0xc9, 0x71, 0xb0, 0x7c, 0xde, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x6e, 0x94, 0xe3, 0xa0, 0xa0, 0xc8, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xd8, 0x95, 0x63, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x05, 0xba, 0x1c, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0x29, 0xe6, 0x38, 0x58, 0x84, 0x88, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x65, 0xcd, 0xb1, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x62, 0x70, 0x8e, 0x83, 0xd4, 0xd3, 0xd8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x8a, 0x76, 0x8e, 0x83, 0xc3, 0x02, 0x5b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf5, 0xfa, 0x1c, 0x1b, 0x7e, 0x51, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x06, 0x57, 0x28, 0x1c, 0xd8, 0xe0, 0x0a, 0x9d, 0x1b, 0xfe, 0x5c, 0x1a, 0x3c, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xc1, 0x15, 0x2a, 0x0f, 0x16, 0x83, 0x2a, 0x1e, 0x7e, 0xa8, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xab, 0x0f, 0x3a, 0x36, 0x28, 0x4b, 0xde, 0x37, 0x48, 0xc1, 0x74, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0x98, 0xe8, 0x38, 0x58, 0x78, 0x11, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x42, 0xd2, 0x71, 0x78, 0x5a, 0xa7, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8b, 0x6e, 0x3a, 0x0e, 0x96, 0x96, 0xec, 0xd5, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xe1, 0x0a, 0xe9, 0xc0, 0x0a, 0x57, 0xc8, 0x37, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x17, 0x7e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x35, 0x48, 0x1d, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0x95, 0xea, 0xd8, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x3d, 0x57, 0xc7, 0xc1, 0x22, 0x78, 0xb7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xa2, 0xb4, 0x8e, 0x0d, 0x3f, 0xc2, 0x0c, 0x4e, 0x87, 0xdf, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x85, 0x75, 0x1d, 0x07, 0x05, 0x45, 0x66, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd5, 0x80, 0x1d, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0x60, 0xec, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0xd1, 0x65, 0xc7, 0xc1, 0x22, 0x44, 0xc4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x32, 0xd4, 0x8e, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x56, 0xcb, 0x76, 0x1c, 0xa4, 0x40, 0xa7, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x96, 0xfc, 0x76, 0x1c, 0x1c, 0x16, 0xd8, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0x68, 0xee, 0xd8, 0xf0, 0x8b, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x56, 0xb8, 0x42, 0xe1, 0xc0, 0x0a, 0x57, 0xe8, 0xdc, 0xf0, 0xe7, 0xd2, 0xe0, 0xe1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x15, 0xae, 0x50, 0x79, 0xb0, 0xce, 0x65, 0xf1, 0xf0, 0x43, 0xcd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x9e, 0xdd, 0xb1, 0x41, 0x59, 0xf2, 0xbe, 0x61, 0x05, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xa4, 0xbc, 0xe3, 0x60, 0xe1, 0x45, 0xe0, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x99, 0x7d, 0xc7, 0xe1, 0x69, 0x9d, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0x4c, 0xf0, 0x38, 0x58, 0x5a, 0xb2, 0x57, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x2d, 0xae, 0x90, 0x0e, 0x6c, 0x71, 0x85, 0xfc, 0x60, 0x49, 0x4c, 0xe0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x8d, 0xf5, 0xb1, 0x41, 0xd1, 0x69, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x3f, 0xf6, 0x71, 0x70, 0x22, 0x68, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0xa6, 0xfb, 0xd8, 0xf0, 0x41, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0xf1, 0xdf, 0xc7, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xeb, 0x15, 0x3f, 0x36, 0x3c, 0x28, 0xb9, 0x41, 0xa2, 0x4d, 0xd4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x5e, 0xf9, 0x71, 0x50, 0x0a, 0xa9, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x96, 0xa1, 0x7e, 0x1c, 0x2c, 0x2d, 0xd9, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xa4, 0xf6, 0xe3, 0x60, 0xfd, 0xff, 0xe0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x18, 0xfc, 0x71, 0xb0, 0x02, 0x81, 0x70, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0x7c, 0xfe, 0xd8, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0x60, 0xe5, 0xc3, 0xde, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x41, 0x01, 0xb2, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0xf0, 0x7a, 0x0d, 0x56, 0x9d, 0xec, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd5, 0xdc, 0x1f, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0x40, 0xff, 0xd8, 0xf0, 0xa0, 0xe4, 0x06, 0xc9, 0x6c, 0x4e, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0xc1, 0xfc, 0xc7, 0x41, 0x29, 0xa4, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x59, 0x00, 0x72, 0xb0, 0xb4, 0x64, 0xaf, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x2a, 0x57, 0x48, 0x07, 0x56, 0xb9, 0x42, 0x7e, 0x70, 0xfa, 0x71, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xab, 0x49, 0x40, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0xfc, 0x02, 0xb2, 0xe1, 0xdf, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x52, 0x1d, 0x90, 0x83, 0x75, 0x5d, 0x70, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0xb1, 0x11, 0xc8, 0x86, 0xb7, 0x75, 0x0e, 0xd6, 0x94, 0xee, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x16, 0x49, 0x81, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xa6, 0x0b, 0x64, 0xc3, 0xbf, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x35, 0x68, 0x20, 0x07, 0x4b, 0x50, 0xfd, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x3a, 0x3a, 0x90, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x96, 0xfe, 0x81, 0x1c, 0x94, 0x44, 0xb3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x95, 0x90, 0x20, 0x07, 0x45, 0xa5, 0xf8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x85, 0x27, 0xc8, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xeb, 0x50, 0x41, 0x0e, 0x02, 0x96, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x86, 0x16, 0xe4, 0xf0, 0x98, 0x4c, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x85, 0xc1, 0x20, 0x07, 0xcb, 0x70, 0xf5, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0x73, 0x06, 0xd9, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x61, 0x36, 0xc8, 0xc1, 0x89, 0xa0, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x4e, 0x1d, 0x64, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa5, 0xf5, 0x20, 0x07, 0x05, 0xd1, 0xf2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0xa9, 0x41, 0xc8, 0x41, 0x51, 0x29, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x40, 0x11, 0x72, 0xb0, 0xb4, 0x64, 0xaf, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x32, 0x91, 0x90, 0x83, 0x62, 0x5b, 0xb9, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xee, 0x25, 0x64, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x85, 0x39, 0x21, 0x07, 0xeb, 0xd6, 0xe1, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8b, 0x8b, 0x42, 0x0e, 0x16, 0xe1, 0xc9, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xd6, 0x47, 0x85, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xa4, 0x2b, 0xe4, 0xe0, 0x44, 0xd0, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0xe1, 0x16, 0xb2, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xa2, 0xbc, 0x90, 0x83, 0x82, 0x68, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x4a, 0x31, 0xe4, 0xa0, 0xa8, 0x14, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0xbe, 0x0c, 0x39, 0x58, 0x5a, 0xb2, 0xd7, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x91, 0x69, 0xc8, 0x41, 0xb1, 0xad, 0x5c, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0xd5, 0x6c, 0xc8, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcb, 0x7a, 0x43, 0x0e, 0xd6, 0xad, 0xc3, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x56, 0x26, 0x87, 0x1c, 0xac, 0x5b, 0x87, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0xae, 0x0e, 0xd9, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x3d, 0x78, 0xc8, 0xc1, 0x89, 0xa0, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x3c, 0x3e, 0x64, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x15, 0xfd, 0x21, 0x07, 0x05, 0xd1, 0xf2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x85, 0x83, 0xc8, 0x41, 0x51, 0x29, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0xb8, 0x21, 0xb2, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x62, 0x13, 0x91, 0x83, 0x35, 0x75, 0x7b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc5, 0x37, 0x22, 0x07, 0x4b, 0x4b, 0xf6, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xe4, 0x48, 0xe4, 0xa0, 0xd8, 0x56, 0xae, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x69, 0x95, 0xde, 0x1b, 0x94, 0xf6, 0x96, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x44, 0x55, 0xef, 0x0d, 0x7f, 0x2e, 0x6d, 0x30, 0xe6, 0x9f, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x92, 0xaf, 0xf7, 0xc1, 0x49, 0x4f, 0x74, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xa4, 0x75, 0x7b, 0x6f, 0x78, 0x50, 0x72, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0xbc, 0xef, 0xbe, 0x41, 0xc9, 0xc2, 0x3e, 0xcb, 0xac, 0xc1, 0xba, 0x10, 0xbe, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x75, 0x21, 0x7c, 0x0d, 0x80, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x27, 0x2e, 0x27, 0x2d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x64, 0x20, 0x62, 0x61, 0x73, 0x65, 0x31, 0x36, 0x2c, 0x20, 0x34, 0x20, 0x64, 0x69, 0x67, 0x69, 0x74, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x19, 0xe2, 0x7d, 0xc3, 0x2f, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xfb, 0x0a, 0xe9, 0xc0, 0xda, 0x57, 0x58, 0x6e, 0xf8, 0x73, 0x69, 0xc0, 0x2b, 0x9b, 0x1b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x7d, 0x85, 0xc5, 0xc1, 0xba, 0xa0, 0xc6, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x6b, 0x5f, 0x61, 0x32, 0xb0, 0xf6, 0x15, 0x66, 0x07, 0x21, 0x65, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xb5, 0xaf, 0xb0, 0x1b, 0x58, 0xfb, 0x0a, 0xc3, 0xc3, 0x0f, 0x35, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x24, 0x95, 0xf7, 0x0d, 0x7f, 0xd1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xed, 0x2b, 0xec, 0x07, 0xd6, 0xbe, 0x42, 0xc7, 0xc1, 0x49, 0x4f, 0x74, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xa4, 0xf8, 0xbc, 0x6f, 0x50, 0xc2, 0x63, 0xae, 0xc1, 0xc2, 0xa2, 0xc6, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x89, 0x56, 0xef, 0x07, 0xc5, 0xb6, 0xf2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0x73, 0x7b, 0xdf, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x4d, 0xf0, 0xfd, 0x60, 0x11, 0x9e, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x51, 0xf3, 0x7d, 0x83, 0x52, 0x42, 0x7c, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x06, 0xfb, 0xbe, 0xe1, 0x92, 0xda, 0xa0, 0xa8, 0x11, 0x5f, 0x83, 0x12, 0x5d, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xa4, 0x22, 0xbf, 0x6f, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xb0, 0xfa, 0xaf, 0x71, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x24, 0x8c, 0xbf, 0x6f, 0x78, 0x5b, 0x67, 0x70, 0xfa, 0x60, 0xf5, 0x5f, 0x63, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd4, 0xfe, 0xf7, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x52, 0x28, 0xe0, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0x55, 0x81, 0xdf, 0xf0, 0xb6, 0xce, 0x80, 0x8f, 0xd7, 0x32, 0xf6, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0x7b, 0x82, 0x3f, 0x38, 0x35, 0xb7, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0x97, 0x83, 0xdf, 0xf0, 0xb6, 0xce, 0xe0, 0xe9, 0xc1, 0xea, 0xbf, 0xc6, 0x5a, 0x0d, 0x56, 0xc2, 0xe6, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xac, 0x84, 0xcd, 0x6b, 0x00, 0xbc, 0x10, 0x0b, 0x9b, 0x2b, 0x9b, 0x91, 0x61, 0x01, 0xa1, 0x0b, 0x5b, 0x2b, 0x9b, 0x03, 0x69, 0x4b, 0x73, 0x4b, 0x6b, 0xab, 0x6b, 0x03, 0x79, 0xab, 0xa3, 0x83, 0xab, 0xa3, 0x03, 0x21, 0x4b, 0x3b, 0x4b, 0xa3, 0x9b, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x09, 0x8e, 0xf0, 0x1b, 0x7e, 0x51, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xea, 0x57, 0x18, 0x0d, 0xac, 0x7e, 0x85, 0xe5, 0x86, 0x3f, 0x97, 0x36, 0x74, 0x03, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xfa, 0x15, 0x86, 0x07, 0x6b, 0x0e, 0x1c, 0x0f, 0x3f, 0xd4, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe4, 0x53, 0xf8, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x92, 0x7c, 0xe1, 0x37, 0xbc, 0xad, 0x33, 0xc0, 0x53, 0xd6, 0xd6, 0x32, 0xf6, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0xff, 0x86, 0xdf, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x99, 0x1e, 0xfe, 0x20, 0xf5, 0x34, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0xd6, 0x10, 0x7f, 0x90, 0x2e, 0x31, 0xd6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x05, 0x25, 0x7e, 0xc3, 0x2f, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xfd, 0x0a, 0x6d, 0x03, 0xab, 0x5f, 0xa1, 0x7b, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xfd, 0x0a, 0x75, 0x03, 0xab, 0x5f, 0xa1, 0xef, 0xf0, 0xc1, 0xea, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x56, 0xbf, 0x42, 0xe1, 0xc0, 0xea, 0x57, 0xe8, 0xdc, 0xf0, 0xe7, 0xd2, 0xe0, 0xe2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xd5, 0xaf, 0x50, 0x79, 0xb0, 0x9e, 0xcb, 0xf1, 0xf0, 0x43, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x56, 0xbf, 0x42, 0xe9, 0xc0, 0xea, 0x57, 0xa8, 0xde, 0xf0, 0xe7, 0xd2, 0xe0, 0xe3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xd5, 0xaf, 0x50, 0x7b, 0xb0, 0x6e, 0xce, 0xf1, 0xe0, 0xa4, 0x27, 0xda, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0x1b, 0x8a, 0xdf, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x0d, 0x2b, 0x7e, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x43, 0x6b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xe1, 0x2d, 0xfe, 0x60, 0xe1, 0x45, 0xe0, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xb5, 0x32, 0xfe, 0xf0, 0x5e, 0x50, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb4, 0xd7, 0xf8, 0xc3, 0xd3, 0x3b, 0xb5, 0x1a, 0x2c, 0x23, 0x4d, 0xdc, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x58, 0x46, 0x9a, 0xd8, 0x00, 0xf8, 0x41, 0x56, 0x36, 0x96, 0xd6, 0x16, 0xc6, 0xc6, 0x02, 0x42, 0x17, 0xb6, 0x56, 0x36, 0x07, 0xd2, 0x96, 0xe6, 0x96, 0xd6, 0x56, 0xd7, 0x06, 0xf2, 0x56, 0x47, 0x07, 0x57, 0x47, 0x07, 0x42, 0x96, 0x76, 0x96, 0x46, 0x37, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xd2, 0x9a, 0xe3, 0x37, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x1d, 0xaf, 0x30, 0x1a, 0xd8, 0xf1, 0x0a, 0xcb, 0x0d, 0x7f, 0x2e, 0x6d, 0xe8, 0x06, 0xb0, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xc7, 0x2b, 0x0c, 0x0f, 0x16, 0x3d, 0x3b, 0x1e, 0x7e, 0xa8, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x29, 0xe7, 0xf1, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xa4, 0xf6, 0xc7, 0x1f, 0x2c, 0x0d, 0x71, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x24, 0x7d, 0xc8, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x42, 0x23, 0x7f, 0x90, 0xf2, 0x5a, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0x65, 0x92, 0x3f, 0x48, 0x97, 0x18, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x76, 0x26, 0xbf, 0xe1, 0x17, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x78, 0x85, 0xb6, 0x81, 0x1d, 0xaf, 0xd0, 0xbd, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x78, 0x85, 0xba, 0x81, 0x1d, 0xaf, 0xd0, 0x77, 0xf8, 0x60, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x3b, 0x5e, 0xa1, 0x70, 0x60, 0xc7, 0x2b, 0x74, 0x6e, 0xf8, 0x73, 0x69, 0x70, 0x71, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x8e, 0x57, 0xa8, 0x3c, 0x58, 0x1e, 0xf2, 0x78, 0xf8, 0xa1, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x3b, 0x5e, 0xa1, 0x74, 0x60, 0xc7, 0x2b, 0x54, 0x6f, 0xf8, 0x73, 0x69, 0xf0, 0x71, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x8e, 0x57, 0xa8, 0x3d, 0x58, 0x86, 0xf3, 0x78, 0x70, 0xd2, 0x13, 0x6d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xa4, 0x0a, 0xca, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x7a, 0x29, 0xbf, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0x91, 0x2f, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0x72, 0x95, 0x3f, 0x58, 0x78, 0x11, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0x89, 0x96, 0x3f, 0xbc, 0x17, 0xd4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x5d, 0x5d, 0xfe, 0xf0, 0xf4, 0x4e, 0x1d, 0x4e, 0xb1, 0x16, 0xf0, 0xef, 0x5a, 0xc6, 0xde, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x65, 0x6b, 0x8f, 0x0d, 0x80, 0x17, 0x62, 0x61, 0x73, 0x65, 0x36, 0x34, 0x2c, 0x20, 0x74, 0x61, 0x6b, 0x65, 0x73, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x64, 0x69, 0x67, 0x69, 0x74, 0x73, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x25, 0x61, 0x7e, 0xc3, 0x2f, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xfd, 0x0a, 0xa3, 0x81, 0xdd, 0xaf, 0xb0, 0xdc, 0xf0, 0xe7, 0xd2, 0x86, 0x6e, 0x00, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x76, 0xbf, 0xc2, 0xf0, 0x60, 0x61, 0xe5, 0xe3, 0xe1, 0x87, 0x9a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x2e, 0x32, 0xbf, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x5a, 0xce, 0xfc, 0xc1, 0xd2, 0x10, 0xc7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xc2, 0xd6, 0xfc, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xe9, 0x6f, 0xf3, 0x07, 0x29, 0xd0, 0xa9, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x44, 0xc4, 0xf9, 0x83, 0x74, 0x89, 0xb1, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x49, 0xa3, 0xf3, 0x1b, 0x7e, 0x51, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xee, 0x57, 0x68, 0x1b, 0xd8, 0xfd, 0x0a, 0xdd, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xee, 0x57, 0xa8, 0x1b, 0xd8, 0xfd, 0x0a, 0x7d, 0x87, 0x0f, 0x56, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xfb, 0x15, 0x0a, 0x07, 0x76, 0xbf, 0x42, 0xe7, 0x86, 0x3f, 0x97, 0x06, 0x17, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x7e, 0x85, 0xca, 0x83, 0x25, 0xe8, 0x8f, 0x87, 0x1f, 0x6a, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xfb, 0x15, 0x4a, 0x07, 0x76, 0xbf, 0x42, 0xf5, 0x86, 0x3f, 0x97, 0x06, 0x1f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x7e, 0x85, 0xda, 0x83, 0xa5, 0xfe, 0x8f, 0x07, 0x27, 0x3d, 0xd1, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xa2, 0xef, 0xfc, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x89, 0xd3, 0xf3, 0x1b, 0x94, 0x25, 0xef, 0x1b, 0x56, 0xf0, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x29, 0xea, 0xf3, 0x07, 0x0b, 0x2f, 0x02, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xc9, 0x0c, 0xf4, 0x87, 0xf7, 0x82, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x24, 0x9a, 0xd0, 0x1f, 0x9e, 0xde, 0xa9, 0xd5, 0x60, 0x05, 0x2e, 0xdf, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0x0a, 0x5c, 0xbe, 0x06, 0xe0, 0x8f, 0xac, 0x6c, 0x2c, 0xad, 0x2d, 0x8c, 0x8d, 0x05, 0x44, 0x06, 0x84, 0x2c, 0xed, 0x2c, 0x8d, 0x0e, 0xa4, 0x2d, 0xcd, 0x2d, 0xad, 0xad, 0xae, 0x6d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x24, 0x13, 0xd1, 0x6f, 0xf8, 0x45, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xdb, 0x5f, 0x61, 0x34, 0xb0, 0xfd, 0x15, 0x96, 0x1b, 0xfe, 0x5c, 0xda, 0xa0, 0xa8, 0x2d, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xfd, 0x15, 0x86, 0x07, 0xab, 0xa7, 0x20, 0x0f, 0x3f, 0xd4, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x34, 0x2f, 0xfa, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x92, 0xe9, 0xe8, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0x59, 0xa4, 0x3f, 0x58, 0x29, 0x9a, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0x78, 0xa5, 0x3f, 0x08, 0x58, 0xd6, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xc9, 0xd1, 0xf4, 0x07, 0xa5, 0x9f, 0x71, 0x87, 0x53, 0x6c, 0x0d, 0x16, 0xeb, 0xf4, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x2c, 0xd6, 0xe9, 0x6b, 0x80, 0x97, 0xac, 0x6c, 0x2c, 0xad, 0x2d, 0x8c, 0x6d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xa4, 0xb4, 0xd3, 0x6f, 0xf8, 0x45, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x1b, 0x5e, 0x61, 0x34, 0xb0, 0xe1, 0x15, 0x96, 0x1b, 0xfe, 0x5c, 0xda, 0xa0, 0xa8, 0x2d, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xe1, 0x15, 0x86, 0x07, 0xab, 0x40, 0x21, 0x0f, 0x3f, 0xd4, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x64, 0x83, 0xfa, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x52, 0x3a, 0xea, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0x9c, 0xa9, 0x3f, 0x58, 0x29, 0x9a, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0xaa, 0xaa, 0x3f, 0x3c, 0x26, 0xd3, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xf5, 0xae, 0xfe, 0xa0, 0xf4, 0x33, 0x6e, 0x35, 0x58, 0xa9, 0xdc, 0xb8, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xb0, 0x52, 0xb9, 0xb1, 0x01, 0xf0, 0x42, 0x2c, 0x6c, 0xae, 0x2c, 0xc6, 0x86, 0x05, 0x84, 0x2e, 0x6c, 0xad, 0x6c, 0x0e, 0xa4, 0x2d, 0xcd, 0x2d, 0xad, 0xad, 0xae, 0x0d, 0xe4, 0xad, 0x8e, 0x0e, 0xae, 0x8e, 0x0e, 0x84, 0x2c, 0xed, 0x2c, 0x8d, 0x6e, 0x6e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x24, 0x4d, 0xd6, 0x6f, 0xf8, 0x45, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xcb, 0x5f, 0x61, 0x34, 0xb0, 0xfc, 0x15, 0x96, 0x1b, 0xfe, 0x5c, 0xda, 0xd0, 0x0d, 0x60, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xf2, 0x57, 0x18, 0x1e, 0xac, 0xce, 0x87, 0x3c, 0xfc, 0x50, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x12, 0x5a, 0xeb, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0x1c, 0xae, 0x3f, 0x58, 0x1a, 0xe2, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0x29, 0xaf, 0xdf, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x41, 0xbf, 0xfe, 0xe0, 0xf0, 0x2a, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0x95, 0xb0, 0x3f, 0x48, 0x97, 0x18, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0xd6, 0x62, 0xbf, 0xe1, 0x17, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x7f, 0x85, 0xb6, 0x81, 0xe5, 0xaf, 0xd0, 0xbd, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x7f, 0x85, 0xba, 0x81, 0xe5, 0xaf, 0xd0, 0x77, 0xf8, 0x60, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xcb, 0x5f, 0xa1, 0x70, 0x60, 0xf9, 0x2b, 0x74, 0x6e, 0xf8, 0x73, 0x69, 0x70, 0x71, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xf2, 0x57, 0xa8, 0x3c, 0x58, 0xc6, 0x14, 0x79, 0xf8, 0xa1, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xcb, 0x5f, 0xa1, 0x74, 0x60, 0xf9, 0x2b, 0x54, 0x6f, 0xf8, 0x73, 0x69, 0xf0, 0x71, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xf2, 0x57, 0xa8, 0x3d, 0x58, 0x2e, 0x16, 0x79, 0x70, 0xd2, 0x13, 0x6d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xa4, 0x22, 0xd9, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0xda, 0x65, 0xbf, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0x0a, 0xa6, 0xd3, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x89, 0xce, 0xfe, 0x60, 0xe1, 0x45, 0xe0, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xd1, 0xd2, 0xfe, 0xf0, 0x5e, 0x50, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x24, 0x58, 0xfb, 0xc3, 0xd3, 0x3b, 0xb5, 0x1a, 0xac, 0x4e, 0x3d, 0xdc, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x58, 0x9d, 0x7a, 0xd8, 0x00, 0x5e, 0x62, 0x61, 0x73, 0x65, 0x35, 0x38, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xd1, 0xd9, 0x7e, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x84, 0x72, 0xfb, 0x83, 0xa5, 0x21, 0x8e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x74, 0x83, 0xfb, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x12, 0x37, 0xee, 0x37, 0xfc, 0x08, 0xb3, 0xa1, 0xe6, 0x87, 0xea, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x92, 0xcc, 0xfd, 0xe1, 0x31, 0x99, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xa9, 0x4c, 0xf7, 0x1b, 0x7e, 0x51, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x8a, 0x57, 0xa8, 0x18, 0x58, 0xf1, 0x0a, 0x85, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x8a, 0x57, 0xe8, 0x18, 0x58, 0xf1, 0x0a, 0x25, 0x87, 0x0f, 0x56, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xe2, 0x15, 0x5a, 0x06, 0x56, 0xbc, 0x42, 0xd1, 0x86, 0x3f, 0x97, 0x06, 0x17, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x78, 0x85, 0x9e, 0x83, 0x25, 0xe9, 0x91, 0x87, 0x1f, 0x6a, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xe2, 0x15, 0x9a, 0x06, 0x56, 0xbc, 0x42, 0xdf, 0x86, 0x3f, 0x97, 0x06, 0x1f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x78, 0x85, 0xae, 0x83, 0xa5, 0xff, 0x91, 0x07, 0x27, 0x3d, 0xd1, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xea, 0xd9, 0xfd, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x89, 0x7c, 0xf7, 0x1b, 0x94, 0x25, 0xef, 0x1b, 0xfe, 0xe1, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x24, 0x4c, 0xde, 0x1f, 0x2c, 0xbc, 0x08, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xa4, 0xe4, 0xde, 0x1f, 0xde, 0x0b, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x2a, 0x7d, 0x7f, 0x78, 0x7a, 0xa7, 0x66, 0x0d, 0x96, 0xec, 0x18, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x2c, 0xd9, 0x31, 0x6c, 0x00, 0x5f, 0x33, 0xb6, 0xb7, 0x30, 0xba, 0x34, 0xb7, 0x33, 0x10, 0xb8, 0xb7, 0x34, 0x37, 0xba, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0xe8, 0x7e, 0xbf, 0xe1, 0x17, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x79, 0x85, 0x74, 0x60, 0xcd, 0x2b, 0x2c, 0x36, 0xfc, 0xb9, 0x34, 0x78, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xcd, 0x2b, 0xe4, 0x07, 0xcb, 0x9f, 0x24, 0x0f, 0x52, 0xaf, 0x8d, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x52, 0x02, 0xfe, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x89, 0x1e, 0xf8, 0x1b, 0x14, 0x93, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xf3, 0x0a, 0x83, 0x81, 0x3d, 0xaf, 0x30, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xf6, 0xbc, 0xc2, 0x62, 0x60, 0xcf, 0x2b, 0x6c, 0x0e, 0x8e, 0x5a, 0x27, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0xf3, 0x0a, 0xa3, 0x81, 0x3d, 0xaf, 0xb0, 0x3a, 0x08, 0xd3, 0xb1, 0x0e, 0x0f, 0xee, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xd2, 0x6d, 0xf0, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0x6a, 0xc2, 0x3f, 0x38, 0x11, 0xb4, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x92, 0xde, 0xf0, 0x37, 0x7c, 0x90, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0x2b, 0xc4, 0x3f, 0x48, 0x59, 0x6e, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xa4, 0x72, 0xe2, 0x6f, 0x78, 0x16, 0xef, 0x20, 0x25, 0x16, 0x7f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xa4, 0x05, 0xe3, 0x6f, 0x78, 0x16, 0xef, 0x20, 0xbd, 0x1a, 0x7f, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x7e, 0x8e, 0x7f, 0x50, 0x6c, 0x2b, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xd2, 0x03, 0xf2, 0x37, 0x7c, 0x90, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0xb9, 0xc8, 0xdf, 0xa0, 0x98, 0xc4, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xa2, 0x57, 0x18, 0x0c, 0x2c, 0x7a, 0x85, 0xd9, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0xe8, 0x15, 0x16, 0x03, 0x8b, 0x5e, 0x61, 0x73, 0x70, 0xda, 0x3b, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xa2, 0x57, 0x18, 0x0d, 0x2c, 0x7a, 0x85, 0xd5, 0x41, 0x98, 0x8e, 0x75, 0x78, 0x70, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0xf8, 0x92, 0xbf, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x7a, 0x51, 0xfe, 0xc1, 0x89, 0xa0, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x7e, 0x96, 0xbf, 0xe1, 0x59, 0xbc, 0x83, 0x34, 0xbe, 0xfc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x0a, 0x64, 0xfe, 0x41, 0xb1, 0xad, 0xdc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0x51, 0xcd, 0xdf, 0x60, 0x01, 0x66, 0xd3, 0x06, 0x63, 0xfe, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x0c, 0x27, 0x60, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x65, 0x43, 0x01, 0x07, 0x29, 0xcb, 0x4d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x35, 0x4f, 0x01, 0x07, 0xc5, 0xb6, 0xf2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0xa5, 0x15, 0xb0, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x5a, 0xb2, 0x80, 0x83, 0x35, 0x1b, 0x6f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf5, 0x70, 0x01, 0x07, 0xc5, 0xb6, 0x72, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xf9, 0x37, 0x7f, 0x83, 0x82, 0x34, 0x76, 0x70, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x56, 0x9d, 0xbf, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xea, 0x7a, 0xfe, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xe9, 0x01, 0xfa, 0x07, 0x2b, 0x45, 0x13, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x89, 0x23, 0xfa, 0x87, 0xc7, 0x64, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xa4, 0x16, 0xe9, 0x1f, 0xa4, 0x6b, 0x3a, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x12, 0xbf, 0xf4, 0x37, 0x28, 0x3a, 0x68, 0x07, 0x2f, 0x37, 0x48, 0xb5, 0x71, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xa4, 0xef, 0xe9, 0x6f, 0x50, 0x90, 0xc6, 0xae, 0xe1, 0xfb, 0xf6, 0xc1, 0xcb, 0x0d, 0x4a, 0xe8, 0xd8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x7b, 0x85, 0xc5, 0xc0, 0xb2, 0x57, 0xd8, 0x1c, 0x1c, 0x4f, 0x4e, 0x0e, 0xc2, 0x74, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x22, 0xa9, 0xbf, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x22, 0xaa, 0xfe, 0x86, 0x07, 0x25, 0x37, 0x48, 0xec, 0x3f, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x69, 0xbe, 0xfa, 0x07, 0xa5, 0x90, 0xfa, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x61, 0x5c, 0x7f, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb4, 0x7c, 0xfd, 0x0d, 0x6f, 0xeb, 0x6c, 0x50, 0x3c, 0x70, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0x02, 0xd9, 0x3f, 0x28, 0x46, 0x6a, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x24, 0xea, 0xec, 0x6f, 0x50, 0x90, 0xc6, 0x0e, 0x78, 0x73, 0x63, 0xe9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x05, 0x6a, 0x7f, 0x83, 0x24, 0x03, 0xc2, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xa2, 0xd9, 0xfe, 0x86, 0x07, 0x25, 0x37, 0x38, 0x6c, 0xc3, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x34, 0xbe, 0xfd, 0x83, 0x52, 0x48, 0x7d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x88, 0xba, 0x7f, 0x90, 0x34, 0xe3, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0xa0, 0xde, 0x3f, 0x28, 0x27, 0xa0, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x49, 0xf1, 0xfb, 0x07, 0x29, 0x43, 0x4e, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x24, 0x06, 0xfe, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x12, 0x43, 0xf8, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0xbe, 0xe1, 0xdf, 0xf0, 0xa0, 0xe4, 0x06, 0x89, 0x36, 0x51, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xb5, 0x89, 0xff, 0xa0, 0x14, 0x52, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x24, 0xca, 0xf1, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x8e, 0xc8, 0xbf, 0xe1, 0x41, 0xc9, 0x0d, 0xd2, 0xd1, 0xa1, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xb2, 0x27, 0xff, 0x41, 0x29, 0xa4, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0x1f, 0xe6, 0x3f, 0x48, 0x9a, 0x71, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x24, 0x7e, 0xf3, 0x6f, 0xf8, 0x11, 0x66, 0xe0, 0xe7, 0xc8, 0xd8, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x24, 0xef, 0xf3, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x0a, 0xd1, 0x7f, 0x90, 0x8a, 0x2a, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0x42, 0xe9, 0xdf, 0xf0, 0xb6, 0xce, 0x06, 0xab, 0x5e, 0x27, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x24, 0xfb, 0xf4, 0x6f, 0xf8, 0x20, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x40, 0xd5, 0xbf, 0xe1, 0x6d, 0xd6, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x9e, 0xd6, 0xbf, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xea, 0x5f, 0xff, 0x86, 0x07, 0x25, 0x37, 0x48, 0xb4, 0x89, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x89, 0x95, 0xfd, 0x07, 0xa5, 0x90, 0xfa, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x4d, 0xb7, 0x7f, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x64, 0xe8, 0xfe, 0x0d, 0x0f, 0x4a, 0x6e, 0x90, 0x8e, 0x0e, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x52, 0xcd, 0xfb, 0x0f, 0x4a, 0x21, 0xf5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xf2, 0x82, 0xff, 0xc1, 0x62, 0x14, 0xca, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x6a, 0x89, 0xff, 0x86, 0x1f, 0x61, 0x06, 0x7e, 0x8e, 0x8c, 0xd6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x85, 0xc8, 0x7f, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x84, 0x2c, 0xff, 0x83, 0x54, 0x54, 0xa9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x2a, 0x9c, 0xff, 0xc1, 0x62, 0x14, 0xca, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xca, 0xa1, 0xff, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x29, 0x9b, 0xfe, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x24, 0xc5, 0xfa, 0x6f, 0x78, 0x50, 0x72, 0x83, 0xc3, 0x36, 0xdc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0x38, 0xf6, 0x3f, 0x28, 0x85, 0xd4, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x09, 0xec, 0xfe, 0x07, 0x8b, 0x51, 0x28, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xa9, 0x05, 0xff, 0x07, 0xa9, 0xa8, 0x52, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xd2, 0x3d, 0xfe, 0x0f, 0x12, 0x78, 0x9c, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xe9, 0x45, 0xff, 0x1b, 0x1c, 0xc7, 0x26, 0x36, 0x28, 0xd1, 0x95, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xe9, 0x60, 0xff, 0x1b, 0xde, 0x66, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xc9, 0x76, 0xff, 0x1b, 0xfe, 0xcd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xa4, 0x30, 0xfe, 0x1f, 0x24, 0xf0, 0x38, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x64, 0xd1, 0xff, 0x83, 0xa4, 0x19, 0xa7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x52, 0xef, 0xff, 0x06, 0x49, 0x06, 0x84, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd4, 0xe9, 0xff, 0x83, 0x13, 0x41, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x91, 0xff, 0x7f, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x45, 0x09, 0x00, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0xa3, 0x00, 0xd8, 0xf0, 0xa0, 0xe4, 0x06, 0x89, 0x36, 0x51, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0xd9, 0x07, 0xc0, 0x41, 0x29, 0xa4, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0x1e, 0x03, 0x70, 0x90, 0x34, 0xe3, 0xd4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0xad, 0x0f, 0xc0, 0x86, 0x67, 0xf1, 0x0e, 0x8a, 0x10, 0xe8, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xe6, 0x09, 0x60, 0xc3, 0xb3, 0x78, 0x07, 0xeb, 0xb2, 0x00, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8b, 0xc6, 0x00, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x58, 0xe9, 0x06, 0xb0, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xea, 0x3c, 0x80, 0x83, 0x95, 0xa2, 0x89, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd5, 0x8b, 0x00, 0x87, 0xc7, 0x64, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0xe8, 0x04, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x15, 0x2a, 0xc0, 0x86, 0x07, 0x25, 0x37, 0x48, 0x66, 0x73, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcb, 0x66, 0x01, 0x0e, 0x4a, 0x21, 0xf5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xfa, 0x62, 0x80, 0x83, 0xa4, 0x19, 0xa7, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x2c, 0xbb, 0x06, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0x8d, 0x38, 0xc0, 0xc1, 0x89, 0xa0, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0x60, 0x1e, 0x60, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x15, 0xfe, 0x00, 0x1b, 0xde, 0xd6, 0x19, 0xe0, 0x29, 0x23, 0x6b, 0x19, 0x7b, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xac, 0x83, 0x08, 0x38, 0x28, 0x27, 0xa0, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8b, 0x3a, 0x02, 0x0e, 0x8a, 0x91, 0xda, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xeb, 0x56, 0x02, 0x0e, 0x8a, 0x6d, 0xe5, 0x0e, 0xa7, 0x58, 0x6b, 0xb0, 0xcc, 0x63, 0x6f, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x60, 0x99, 0xc7, 0x5e, 0x03, 0xd0, 0x73, 0x02, 0x83, 0x77, 0xd2, 0x02, 0x27, 0x57, 0x66, 0x96, 0x86, 0x57, 0x46, 0x06, 0x22, 0x16, 0x36, 0x57, 0x16, 0x63, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4b, 0xfa, 0x02, 0x36, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xf5, 0xaf, 0x30, 0x1a, 0x58, 0xff, 0x0a, 0xcb, 0x0d, 0x7f, 0x2e, 0x6d, 0x50, 0xd4, 0x16, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0xff, 0x0a, 0xc3, 0x83, 0x45, 0x9a, 0x95, 0x87, 0x1f, 0x6a, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xfa, 0xc4, 0x80, 0x0d, 0x7f, 0xd1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xfd, 0x2b, 0x6c, 0x07, 0xd6, 0xbf, 0xc2, 0xfe, 0xe0, 0xa4, 0x27, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xd6, 0x50, 0x06, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xcc, 0x33, 0xe0, 0x60, 0x11, 0xbc, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0xb5, 0x6a, 0xc0, 0xc1, 0x1a, 0xf4, 0xb7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x92, 0xdb, 0x80, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x96, 0x09, 0x07, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xb0, 0xb4, 0x39, 0xe0, 0x60, 0x31, 0x72, 0xe3, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x60, 0xa5, 0x77, 0xc0, 0xe1, 0x31, 0x99, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8b, 0xdf, 0x03, 0x0e, 0x4a, 0x3f, 0xe3, 0x3a, 0x9c, 0x62, 0x87, 0x53, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xa4, 0xc8, 0x7b, 0x6f, 0x50, 0xb2, 0xb0, 0xcf, 0x32, 0x6b, 0xb0, 0x6e, 0xc4, 0x71, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x60, 0xdd, 0x88, 0x63, 0x03, 0xf0, 0x65, 0xf6, 0x26, 0xd7, 0x16, 0x46, 0x07, 0x92, 0xe6, 0x06, 0xe2, 0x56, 0xd7, 0x56, 0x26, 0x97, 0x36, 0x06, 0x22, 0x16, 0x36, 0x57, 0xae, 0x04, 0xe0, 0x59, 0x9a, 0x1b, 0x88, 0x8b, 0x58, 0xd8, 0x1c, 0x0b, 0x88, 0xd9, 0x9b, 0x5c, 0x5b, 0x18, 0x1d, 0x88, 0x4b, 0x5b, 0x9a, 0x1b, 0x08, 0x59, 0xda, 0x59, 0x1a, 0xdd, 0x1c, 0xc8, 0x9b, 0x19, 0x88, 0x0b, 0xda, 0x1b, 0x1b, 0xc8, 0x5d, 0x1a, 0x1d, 0x1a, 0x88, 0x0b, 0x5c, 0x98, 0xdc, 0x4a, 0x00, 0x1e, 0xb6, 0x80, 0xb8, 0xa0, 0xbd, 0xb1, 0x81, 0xa4, 0xcd, 0x81, 0xc0, 0xc9, 0xbd, 0x8d, 0x95, 0xcd, 0xcd, 0x95, 0x91, 0x81, 0xb0, 0x95, 0x85, 0xcd, 0xd1, 0xb5, 0xcc, 0xa5, 0x9d, 0xb9, 0xa5, 0x99, 0xa5, 0x8d, 0x85, 0xb9, 0xd1, 0x81, 0x90, 0xa5, 0x9d, 0xa5, 0xd1, 0x81, 0x98, 0xa5, 0xc9, 0xcd, 0xd1, 0x4b, 0x00, 0x9e, 0xb6, 0x80, 0x84, 0xb1, 0xb1, 0x81, 0x84, 0xd9, 0x85, 0xa5, 0xb1, 0x85, 0x89, 0xb1, 0x95, 0x81, 0x90, 0xa5, 0x9d, 0xa5, 0xd1, 0xcd, 0x81, 0xa4, 0xb9, 0x81, 0xb8, 0xa0, 0xbd, 0xb1, 0x81, 0xdc, 0xa5, 0xb1, 0xb1, 0x81, 0x88, 0x95, 0x81, 0xc0, 0xc9, 0xbd, 0x8d, 0x95, 0xcd, 0xcd, 0x95, 0x91, 0xb1, 0x80, 0x88, 0xd5, 0xd1, 0x8b, 0x01, 0x78, 0xe9, 0xd2, 0x96, 0xe6, 0x06, 0x42, 0x96, 0x76, 0x96, 0x46, 0x37, 0x07, 0x32, 0x16, 0xe6, 0x06, 0x52, 0x86, 0x37, 0x56, 0x56, 0x46, 0x06, 0x42, 0x87, 0x56, 0x06, 0xe2, 0x56, 0xd7, 0x26, 0x56, 0x26, 0x07, 0x12, 0x66, 0x17, 0x96, 0xc6, 0x16, 0x26, 0xc6, 0x56, 0x06, 0x92, 0xe6, 0x06, 0xe2, 0x82, 0xf6, 0xc6, 0x2e, 0x01, 0x68, 0xd9, 0x02, 0xe2, 0x02, 0x17, 0x26, 0x07, 0x82, 0x16, 0xe6, 0x46, 0xc6, 0x56, 0x36, 0x07, 0x12, 0xc6, 0xc6, 0x06, 0x12, 0x36, 0x36, 0x56, 0xd7, 0x56, 0xc7, 0x16, 0x46, 0x57, 0x46, 0x06, 0xf2, 0x56, 0x47, 0x07, 0x57, 0x47, 0x07, 0xf2, 0xe6, 0x06, 0x52, 0x16, 0x36, 0x86, 0x06, 0x32, 0x16, 0xc6, 0xc6, 0xc6, 0x16, 0x03, 0xf0, 0x2c, 0xcc, 0x8d, 0x0c, 0x64, 0x2c, 0xcc, 0x0d, 0xa4, 0x8c, 0x2c, 0x8d, 0x0e, 0x24, 0x8d, 0x8e, 0x05, 0x04, 0x4e, 0xae, 0x0c, 0xae, 0xcc, 0x8d, 0x0c, 0xe4, 0x4d, 0x0e, 0x24, 0x0c, 0x0e, 0xae, 0xcc, 0x8d, 0x0c, 0x84, 0x2c, 0xed, 0x2c, 0x8d, 0x6e, 0x8e, 0x05, 0xc4, 0x64, 0x5c, 0x02, 0xd0, 0xbc, 0x05, 0xa4, 0xce, 0x8d, 0x2e, 0x8d, 0x0d, 0xc4, 0x05, 0xed, 0x8d, 0x0d, 0x24, 0x6d, 0x0e, 0xa4, 0x0c, 0x0f, 0x2d, 0xac, 0x6e, 0x8e, 0xae, 0x8c, 0x8c, 0x05, 0xc4, 0x05, 0x2e, 0x4c, 0xee, 0x64, 0x0e, 0x64, 0x2e, 0xac, 0x0d, 0x8e, 0xad, 0x0c, 0x24, 0x6d, 0x0e, 0x64, 0x8b, 0x0f, 0x84, 0x2c, 0xed, 0x2c, 0x8d, 0x0e, 0xe4, 0xad, 0x8e, 0x0e, 0xae, 0x8e, 0xae, 0x8b, 0x2d, 0x06, 0xf0, 0x3e, 0x57, 0x27, 0x36, 0x57, 0x16, 0x57, 0x57, 0xe6, 0x46, 0xc7, 0x96, 0xc7, 0x02, 0x92, 0x46, 0x77, 0x32, 0x07, 0xb2, 0x65, 0x02, 0x02, 0x03, 0xf2, 0x56, 0x47, 0x07, 0x57, 0x47, 0xd7, 0xd5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0x35, 0xf8, 0xde, 0xf0, 0x8b, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xd6, 0xc1, 0x42, 0x32, 0xb0, 0x0e, 0x16, 0x0a, 0x37, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x75, 0xb0, 0x10, 0x0d, 0xac, 0x83, 0x85, 0xdd, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x0e, 0x16, 0xb2, 0x81, 0x75, 0xb0, 0x30, 0xd8, 0xf0, 0xe7, 0xd2, 0x80, 0x27, 0x16, 0x36, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0x07, 0x0b, 0xf9, 0xc1, 0x82, 0x7f, 0xcb, 0xc3, 0x0f, 0x35, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0x07, 0x0b, 0x8b, 0x81, 0x75, 0xb0, 0x30, 0xdb, 0xf0, 0xe7, 0xd2, 0x86, 0x6e, 0x00, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xd6, 0xc1, 0xc2, 0xea, 0x60, 0xa1, 0xc5, 0xe5, 0xe1, 0x87, 0x9a, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x0e, 0x16, 0x86, 0x03, 0xeb, 0x60, 0xa1, 0x6f, 0xc3, 0x9f, 0x4b, 0x03, 0x1e, 0x5c, 0x98, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x1d, 0x2c, 0x8c, 0x0f, 0x56, 0xb6, 0x5c, 0x6e, 0x10, 0x4e, 0x63, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0x07, 0x0b, 0xfb, 0x81, 0x75, 0xb0, 0xd0, 0xb4, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x83, 0x85, 0x82, 0x81, 0x75, 0xb0, 0xd0, 0x70, 0xf8, 0x60, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xeb, 0x60, 0xa1, 0x62, 0x60, 0x1d, 0x2c, 0x74, 0x1c, 0x7e, 0xa8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x3a, 0x58, 0x28, 0x19, 0x58, 0x07, 0x0b, 0x45, 0x07, 0x27, 0x3d, 0xd1, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x83, 0x85, 0xaa, 0x81, 0x75, 0xb0, 0x50, 0x77, 0x70, 0xd2, 0x13, 0x6d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x24, 0x91, 0x7c, 0x6f, 0xf8, 0x45, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xfb, 0x60, 0x21, 0x19, 0xd8, 0x07, 0x0b, 0xf1, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb4, 0x37, 0x76, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x3e, 0x58, 0x48, 0x0f, 0x16, 0x0b, 0x5e, 0x1e, 0x7e, 0xa8, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xc9, 0x3c, 0xdf, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x42, 0x58, 0x48, 0x06, 0x16, 0xc2, 0x42, 0x7a, 0x70, 0xd2, 0x13, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x29, 0x50, 0xdf, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x24, 0x94, 0x7d, 0x6f, 0x78, 0x84, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0xac, 0xf7, 0xbd, 0xe1, 0xdf, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x22, 0xe4, 0xf7, 0xe1, 0xc1, 0x9b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x6e, 0xfa, 0xbd, 0xe1, 0x6d, 0x9d, 0x0d, 0x16, 0x1b, 0x5e, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0xfd, 0xfd, 0xde, 0xf0, 0x6f, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xb1, 0xfa, 0xfb, 0xf0, 0xe0, 0xcd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0x61, 0xff, 0x3e, 0x48, 0x97, 0x18, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x9c, 0x00, 0x7e, 0x50, 0x6c, 0x2b, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x94, 0x10, 0xf0, 0x0d, 0x0a, 0xd2, 0xd8, 0x35, 0x28, 0xa1, 0x63, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x13, 0x16, 0x92, 0x81, 0x9d, 0xb0, 0x30, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x76, 0xc2, 0x42, 0x34, 0xb0, 0x13, 0x16, 0xf2, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x64, 0x61, 0xf2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x9d, 0xb0, 0x10, 0x1f, 0xac, 0xbe, 0xbf, 0x3c, 0xfc, 0x50, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x9d, 0xb0, 0x30, 0x18, 0xd8, 0x09, 0x0b, 0xab, 0x0d, 0x7f, 0x2e, 0x6d, 0x90, 0xe4, 0xe5, 0xbb, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x27, 0x2c, 0x8c, 0x0e, 0x16, 0x3d, 0x60, 0x1e, 0x7e, 0xa8, 0xe9, 0x20, 0x4c, 0xc7, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x69, 0x36, 0xe0, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x24, 0x33, 0x81, 0x1f, 0xfe, 0xa2, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xa4, 0xc9, 0x81, 0x1f, 0xac, 0x06, 0xbe, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x24, 0x34, 0x82, 0x6f, 0x78, 0x5b, 0x67, 0x83, 0x15, 0x03, 0x97, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x52, 0x4e, 0xc1, 0x37, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x48, 0xb2, 0x18, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x09, 0x79, 0xe1, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xa4, 0x3b, 0x86, 0x6f, 0xf8, 0x37, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x4a, 0x1a, 0x7e, 0x78, 0xf0, 0x66, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x24, 0xed, 0x86, 0x1f, 0xa4, 0x4b, 0x8c, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x12, 0xa7, 0xc3, 0x0f, 0x0f, 0xde, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x14, 0xf5, 0xf0, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x12, 0x01, 0xc4, 0x0f, 0xaf, 0xf9, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x12, 0x44, 0xc4, 0x0f, 0xd2, 0x25, 0xc6, 0x5a, 0x83, 0x85, 0xc2, 0x97, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xe5, 0x47, 0x7c, 0xc3, 0xdb, 0x3a, 0x1b, 0xac, 0xde, 0xbf, 0x6c, 0x0d, 0x4a, 0x74, 0xe5, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x12, 0x0c, 0xbe, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xda, 0x35, 0xf8, 0x86, 0xb7, 0x75, 0x36, 0x58, 0x1b, 0x73, 0xd9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xfd, 0x1e, 0x7c, 0xc3, 0xbf, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe4, 0x86, 0xf0, 0xc3, 0x83, 0x37, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x8d, 0x24, 0xfc, 0x60, 0x79, 0x1f, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xfd, 0x27, 0xfc, 0x20, 0x69, 0xe2, 0x77, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0xb2, 0x15, 0x7e, 0x50, 0x6c, 0x2b, 0xd7, 0x6a, 0xb0, 0x42, 0x11, 0x71, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x60, 0x85, 0x22, 0x62, 0x03, 0xe0, 0xa7, 0xd9, 0x9b, 0x5c, 0x5b, 0x18, 0x1d, 0xc8, 0x89, 0xcb, 0x49, 0xcb, 0x5c, 0x19, 0x5c, 0x98, 0x5c, 0x18, 0x5d, 0x19, 0x19, 0x08, 0x59, 0xda, 0x59, 0x1a, 0x1d, 0xc8, 0x5c, 0x59, 0x5c, 0x5d, 0x99, 0xdb, 0x58, 0xd9, 0x1c, 0x48, 0x9a, 0x1b, 0x88, 0x5b, 0x5d, 0x5b, 0x99, 0x5c, 0xda, 0x18, 0x88, 0x58, 0xd8, 0x5c, 0xb9, 0x12, 0x80, 0x66, 0x69, 0x6e, 0x20, 0x2e, 0x62, 0x61, 0x73, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x64, 0x69, 0x67, 0x69, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x2e, 0x68, 0x6f, 0x6c, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x2e, 0x64, 0x75, 0x67, 0x6c, 0x09, 0x40, 0x97, 0xbb, 0x34, 0x3a, 0x34, 0x90, 0x13, 0x97, 0x13, 0x90, 0xb9, 0x32, 0xb8, 0x30, 0xb9, 0x30, 0xba, 0x37, 0xb9, 0x39, 0x90, 0x32, 0xbb, 0x32, 0xb9, 0x3c, 0x10, 0x97, 0xb3, 0x37, 0x38, 0x10, 0xb2, 0xb4, 0xb3, 0x34, 0xba, 0x39, 0xd7, 0x1a, 0xac, 0x39, 0xb1, 0x5c, 0x02, 0xf0, 0xb4, 0x05, 0xc4, 0x85, 0xac, 0xee, 0x0c, 0x04, 0x2d, 0xcc, 0x8d, 0x8c, 0xad, 0x6c, 0x0e, 0x24, 0xcd, 0x8d, 0x2c, 0xcd, 0x2e, 0x8d, 0xac, 0x2e, 0x8c, 0x0d, 0x84, 0x2c, 0xed, 0x2c, 0x8d, 0x6e, 0x8e, 0x05, 0xe4, 0xad, 0x8e, 0x0e, 0xae, 0x8e, 0x0e, 0x24, 0x6d, 0x0e, 0x04, 0x4e, 0xae, 0x0c, 0xae, 0xcc, 0x8d, 0xac, 0x8c, 0x5c, 0x02, 0xf0, 0xb2, 0x05, 0xa4, 0xcc, 0xae, 0x4c, 0x2e, 0x0f, 0x64, 0xae, 0xec, 0xac, 0xad, 0xcc, 0x8d, 0x0e, 0x44, 0xac, 0x8e, 0x0e, 0x84, 0x0e, 0xad, 0x0c, 0x84, 0x2d, 0x6c, 0x8e, 0x0e, 0x24, 0x6d, 0x0e, 0x44, 0xaf, 0x4c, 0xee, 0xad, 0x05, 0x2e, 0x8c, 0x8c, 0xac, 0x8c, 0x0c, 0x84, 0xee, 0x0d, 0xc4, 0xe5, 0xec, 0x0d, 0xae, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0xca, 0x25, 0xbe, 0xe1, 0x17, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xec, 0x8c, 0x85, 0x64, 0x60, 0x67, 0x2c, 0x94, 0x6c, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x3b, 0x63, 0x21, 0x1a, 0xd8, 0x19, 0x0b, 0xbb, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x67, 0x2c, 0x64, 0x03, 0x3b, 0x63, 0x61, 0xb0, 0xe1, 0xcf, 0xa5, 0x0d, 0x56, 0x0c, 0x5c, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0x19, 0x0b, 0xf9, 0xc1, 0x0a, 0xb0, 0xcc, 0xc3, 0x0f, 0x35, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0x19, 0x0b, 0x8b, 0x81, 0x9d, 0xb1, 0x30, 0xdb, 0xf0, 0xe7, 0xd2, 0x80, 0x77, 0xf6, 0x06, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xd8, 0x19, 0x0b, 0xab, 0x83, 0x85, 0x77, 0x99, 0x87, 0x1f, 0x6a, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xce, 0x58, 0x18, 0x0e, 0xec, 0x8c, 0x85, 0x8e, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x64, 0x75, 0xe7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x9d, 0xb1, 0x30, 0x3e, 0x58, 0xf3, 0x98, 0xb9, 0x41, 0x38, 0x8d, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x67, 0x2c, 0xec, 0x07, 0x76, 0xc6, 0x42, 0xc1, 0xe1, 0x87, 0x9a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x3b, 0x63, 0xa1, 0x61, 0x60, 0x67, 0x2c, 0x54, 0x1c, 0x7e, 0xa8, 0x69, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xa4, 0xea, 0x89, 0x6f, 0x50, 0x74, 0x1a, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xd2, 0x1f, 0xc5, 0x0f, 0x96, 0x86, 0x38, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xd2, 0x62, 0xc5, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0x2c, 0x16, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x75, 0x5b, 0xfc, 0x20, 0x05, 0x37, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x18, 0x30, 0x7e, 0xb0, 0x16, 0x07, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0xcc, 0x31, 0xbe, 0xe1, 0x6d, 0x9d, 0x0d, 0x56, 0xee, 0x65, 0xd6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xd5, 0x66, 0xfc, 0xf0, 0xe0, 0x4d, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x15, 0x6a, 0x7c, 0xc3, 0x2f, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0x1b, 0x0b, 0xc9, 0xc0, 0xda, 0x58, 0xd8, 0x6f, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x6b, 0x63, 0x21, 0x1a, 0x58, 0x1b, 0x0b, 0xf9, 0x86, 0x3f, 0x97, 0x36, 0x28, 0x2f, 0x2f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x8d, 0x85, 0xf8, 0x60, 0x91, 0x80, 0xe6, 0xe1, 0x83, 0xd5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x8d, 0x85, 0xc1, 0xc0, 0xda, 0x58, 0x58, 0x6d, 0xf8, 0x73, 0x69, 0xc0, 0x9b, 0x2b, 0x3b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x8d, 0x85, 0xd1, 0xc1, 0xba, 0x0c, 0xcd, 0xc3, 0x0f, 0x35, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0x1b, 0x0b, 0xb3, 0x81, 0xb5, 0xb1, 0x30, 0xdf, 0xf0, 0xe7, 0xd2, 0x06, 0xc7, 0x0c, 0xcf, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x6b, 0x63, 0x61, 0x7a, 0xb0, 0x20, 0x46, 0xf3, 0xe0, 0xa4, 0x27, 0xda, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0x54, 0x1b, 0xdf, 0xa0, 0xe8, 0x34, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x24, 0xff, 0x8d, 0x1f, 0x9c, 0x08, 0xda, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x69, 0xa1, 0xe3, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x24, 0xdb, 0x8e, 0x6f, 0x78, 0x5b, 0x67, 0x83, 0xf2, 0xf2, 0xb2, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x5a, 0xf3, 0xf8, 0x41, 0x41, 0x91, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x92, 0xc7, 0xc7, 0x37, 0xfc, 0x45, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xc5, 0xb1, 0xb0, 0x18, 0x58, 0x1c, 0x0b, 0xab, 0x83, 0x93, 0x9e, 0xe8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0xc1, 0x1f, 0xdf, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x89, 0x81, 0xfc, 0x60, 0x11, 0x9e, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x95, 0x84, 0xfc, 0xa0, 0xa0, 0xc8, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xa4, 0xfa, 0x90, 0x6f, 0x70, 0x6a, 0x38, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x24, 0x59, 0x97, 0x6f, 0x78, 0x5b, 0x67, 0x83, 0x85, 0x1d, 0x9a, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf4, 0x29, 0xf2, 0x0d, 0x8a, 0x4e, 0xe3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x4a, 0x1a, 0xf9, 0x86, 0x4b, 0x6a, 0x83, 0x55, 0x23, 0x8e, 0x6b, 0x50, 0xa2, 0x2b, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb4, 0x41, 0xf2, 0x83, 0x83, 0x96, 0x67, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc4, 0x53, 0xf2, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x52, 0x77, 0xc9, 0x0f, 0xd6, 0xe2, 0x60, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xd2, 0xa6, 0xc9, 0x37, 0x7c, 0x90, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0x49, 0x27, 0x3f, 0x58, 0x93, 0xa5, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0xff, 0x27, 0x3f, 0x3c, 0x78, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x12, 0x2d, 0xca, 0x0f, 0x56, 0x81, 0x67, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xd2, 0x63, 0xca, 0x37, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xe5, 0xb1, 0x10, 0x0c, 0x2c, 0x8f, 0x85, 0xd9, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x3c, 0x16, 0x92, 0x81, 0xe5, 0xb1, 0x10, 0x1d, 0x3e, 0x58, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0xf2, 0x58, 0xc8, 0x06, 0x96, 0xc7, 0x42, 0xbc, 0xe1, 0xcf, 0xa5, 0xc1, 0xc5, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xcb, 0x63, 0x21, 0x3d, 0x58, 0x52, 0xaf, 0x79, 0xf8, 0xa1, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xcb, 0x63, 0x21, 0x1f, 0x58, 0x1e, 0x0b, 0xab, 0x0d, 0x7f, 0x2e, 0x0d, 0x3e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0x1e, 0x0b, 0x8b, 0x83, 0x45, 0x0b, 0x9b, 0x07, 0x27, 0x3d, 0xd1, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xf2, 0x52, 0xf9, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x89, 0x60, 0xe5, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x24, 0xdb, 0x95, 0x6f, 0x78, 0x5b, 0x67, 0x83, 0x55, 0x93, 0x99, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xd2, 0x2f, 0xcb, 0x0f, 0xef, 0x05, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0x89, 0x2d, 0x3f, 0x3c, 0xbd, 0xd3, 0xe1, 0x14, 0x5b, 0x83, 0xf5, 0xd0, 0x80, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xeb, 0xa1, 0x01, 0x1b, 0x00, 0x8f, 0xcc, 0xde, 0xe4, 0xda, 0xc2, 0xe8, 0x40, 0x4e, 0x5c, 0x4e, 0x5a, 0xe0, 0xe4, 0xca, 0xcc, 0xd2, 0xf0, 0xca, 0xc8, 0x40, 0xc4, 0xd8, 0xde, 0xe2, 0xe6, 0x40, 0xd2, 0xdc, 0x40, 0xdc, 0xea, 0xda, 0xca, 0xe4, 0xd2, 0xc6, 0x40, 0xc4, 0xc2, 0xe6, 0xca, 0x95, 0x00, 0x7c, 0x4d, 0x73, 0x03, 0x71, 0x11, 0x0b, 0x9b, 0x63, 0x01, 0x31, 0x7b, 0x93, 0x03, 0x71, 0x11, 0xab, 0xd3, 0x03, 0x11, 0x63, 0x7b, 0x8b, 0x9b, 0x03, 0x81, 0x01, 0xa1, 0x7b, 0x03, 0x71, 0x21, 0x7b, 0x83, 0x63, 0x01, 0x31, 0x7b, 0x93, 0x6b, 0x0b, 0xa3, 0x03, 0x09, 0xa3, 0x03, 0x61, 0x2b, 0x0b, 0x9b, 0xa3, 0x03, 0x79, 0x73, 0x2b, 0x97, 0x00, 0xfa, 0xc9, 0xd2, 0xce, 0xd2, 0xe8, 0x40, 0xde, 0xcc, 0x40, 0x5c, 0xd0, 0xde, 0xd8, 0x58, 0x40, 0xe0, 0xe4, 0xca, 0xcc, 0xd2, 0xf0, 0xca, 0xc8, 0x40, 0xee, 0xd2, 0xe8, 0xd0, 0x40, 0x4e, 0x5c, 0x4e, 0x2b, 0x01, 0x3c, 0xb7, 0x80, 0xd4, 0xcd, 0x95, 0x91, 0x81, 0xbc, 0xb9, 0xb1, 0xe5, 0x81, 0x98, 0xbd, 0xc9, 0x81, 0x00, 0xa5, 0xa9, 0x80, 0x84, 0x91, 0x91, 0xc9, 0x95, 0xcd, 0xcd, 0x95, 0xcd, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x12, 0xee, 0xcb, 0x37, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x35, 0xb2, 0x90, 0x0c, 0xac, 0x91, 0x85, 0xaa, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x8d, 0x2c, 0x44, 0x03, 0x6b, 0x64, 0x61, 0xbd, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xac, 0x91, 0x85, 0x6c, 0x60, 0x8d, 0x2c, 0x0c, 0x36, 0xfc, 0xb9, 0x34, 0xe0, 0x89, 0xd5, 0xe9, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xd6, 0xc8, 0x42, 0x7e, 0xb0, 0xbc, 0x77, 0xf3, 0xf0, 0x43, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xd6, 0xc8, 0xc2, 0x62, 0x60, 0x8d, 0x2c, 0xcc, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0x8a, 0x81, 0xcb, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x6b, 0x64, 0x61, 0x75, 0xb0, 0xac, 0x7a, 0xf3, 0xf0, 0x43, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xd6, 0xc8, 0xc2, 0x6e, 0x60, 0x8d, 0x2c, 0x8c, 0x37, 0xfc, 0xb9, 0x34, 0xe0, 0x91, 0xbd, 0xc1, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xd6, 0xc8, 0xc2, 0xf6, 0x60, 0x39, 0xfb, 0xe6, 0xe1, 0x87, 0x9a, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x46, 0x16, 0xe6, 0x03, 0x6b, 0x64, 0xa1, 0x69, 0xc3, 0x9f, 0x4b, 0x1b, 0xac, 0x9a, 0xcc, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x46, 0x16, 0x2a, 0x0e, 0x56, 0x12, 0x70, 0x6e, 0x10, 0x4e, 0x63, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x58, 0x23, 0x0b, 0x2d, 0x03, 0x6b, 0x64, 0xa1, 0xe6, 0xf0, 0x43, 0xcd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x35, 0xb2, 0xd0, 0x33, 0xb0, 0x46, 0x16, 0x8a, 0x0e, 0x3f, 0xd4, 0xb4, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xd2, 0x2b, 0xcc, 0x37, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x3d, 0xb2, 0x90, 0x0c, 0xec, 0x91, 0x85, 0x78, 0xc3, 0x9f, 0x4b, 0x1b, 0x2c, 0x36, 0xbc, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x47, 0x16, 0xd2, 0x83, 0x35, 0x38, 0x9c, 0x87, 0x1f, 0x6a, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x9a, 0x8b, 0xf9, 0x86, 0xbf, 0x68, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x48, 0x16, 0x92, 0x81, 0x45, 0xb2, 0x90, 0x1e, 0x9c, 0xf4, 0x44, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x72, 0x90, 0xf9, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xa9, 0x56, 0xe6, 0x1b, 0xfe, 0xcd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xa4, 0xb1, 0x99, 0x1f, 0x1e, 0xbc, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xc9, 0x82, 0xe6, 0x1b, 0xde, 0xd6, 0xd9, 0x60, 0x3d, 0xfc, 0x66, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf4, 0x4c, 0xf3, 0x83, 0x62, 0x5b, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x24, 0xc5, 0x9a, 0x6f, 0x50, 0x18, 0xaa, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xd2, 0x89, 0xcd, 0x0f, 0x16, 0xe1, 0xc9, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x84, 0x6e, 0xf3, 0x0d, 0x0a, 0xd2, 0xd8, 0x01, 0x0f, 0xee, 0x8d, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x24, 0xc9, 0x9b, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x86, 0x70, 0x7e, 0x78, 0xcd, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x9c, 0x72, 0x7e, 0xb0, 0x02, 0x8e, 0xb3, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x40, 0x74, 0xbe, 0xc1, 0xa9, 0xe1, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x40, 0x8b, 0xbe, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x8a, 0x32, 0xfa, 0x41, 0x49, 0x34, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0x7d, 0x47, 0xdf, 0xf0, 0xb6, 0xce, 0x06, 0xeb, 0x83, 0x37, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x24, 0x2d, 0xa4, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0xfe, 0x91, 0xbe, 0xe1, 0x6d, 0x9d, 0x0d, 0x96, 0x36, 0x72, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0xb1, 0x49, 0x3f, 0x3c, 0x26, 0xd3, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x11, 0x2a, 0xfd, 0x60, 0x35, 0xf0, 0x65, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x29, 0xeb, 0x7c, 0x83, 0xa2, 0xd3, 0x78, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0xe8, 0x76, 0xbe, 0xe1, 0x92, 0xda, 0x60, 0xd5, 0x88, 0xe3, 0x1a, 0x94, 0xe8, 0xca, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x19, 0xf1, 0x7c, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0xc5, 0x71, 0x9c, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x85, 0xf4, 0xfc, 0x60, 0x15, 0x32, 0x67, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x92, 0x92, 0xcf, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0xea, 0x3e, 0x3f, 0x58, 0x8b, 0x83, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0xab, 0x3f, 0x3f, 0x3c, 0x26, 0xd3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0x7c, 0x40, 0xdf, 0xf0, 0x8b, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x16, 0xca, 0x42, 0x30, 0xb0, 0x50, 0x16, 0x66, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x42, 0x59, 0x48, 0x06, 0x16, 0xca, 0x42, 0x74, 0xf8, 0x60, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x0b, 0x65, 0x21, 0x1b, 0x58, 0x28, 0x0b, 0xf1, 0x86, 0x3f, 0x97, 0x06, 0x17, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x94, 0x85, 0xf4, 0x60, 0xb1, 0x4b, 0xe7, 0xe1, 0x87, 0x9a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x2c, 0x94, 0x85, 0x7c, 0x60, 0xa1, 0x2c, 0xac, 0x36, 0xfc, 0xb9, 0x34, 0xf8, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0xa1, 0x2c, 0x2c, 0x0e, 0x96, 0x13, 0x75, 0x1e, 0x9c, 0xf4, 0x44, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x69, 0x29, 0xe8, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xa4, 0xf8, 0xa0, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x46, 0x85, 0x7e, 0xb0, 0x76, 0x65, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x5a, 0x87, 0x7e, 0x78, 0x2f, 0xa8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xba, 0x23, 0xfa, 0xe1, 0xe9, 0x9d, 0x66, 0x0d, 0x96, 0x7f, 0x55, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x2c, 0xff, 0xaa, 0x6c, 0x00, 0x7c, 0x32, 0x7b, 0x93, 0x6b, 0x0b, 0xa3, 0x03, 0x49, 0x73, 0x03, 0x71, 0xab, 0x6b, 0x2b, 0x93, 0x4b, 0x1b, 0x03, 0x11, 0x0b, 0x9b, 0x2b, 0x63, 0x01, 0xb9, 0x4b, 0xa3, 0x43, 0x03, 0x79, 0xab, 0xa3, 0x83, 0xab, 0xa3, 0x03, 0x61, 0x2b, 0x73, 0x3b, 0xa3, 0x43, 0x57, 0x02, 0xf0, 0xb8, 0x05, 0x84, 0x2d, 0x6d, 0xad, 0x0c, 0x64, 0xa5, 0xac, 0xad, 0x65, 0xec, 0x8d, 0x05, 0x44, 0xac, 0x8e, 0x0e, 0xc4, 0x05, 0x2e, 0x4c, 0xee, 0x64, 0x0e, 0x64, 0x2e, 0xac, 0x0d, 0x8e, 0xad, 0x0c, 0xe4, 0x2e, 0x8d, 0x8d, 0x0d, 0x44, 0xac, 0x0c, 0x64, 0x8b, 0x0f, 0x84, 0x2c, 0xed, 0x2c, 0x8d, 0x0e, 0xe4, 0xad, 0x8e, 0x0e, 0xae, 0x8e, 0xae, 0x5b, 0x0c, 0xc0, 0xf3, 0x37, 0x37, 0x10, 0x3a, 0xb4, 0x32, 0x10, 0xb3, 0x34, 0xb9, 0x39, 0x3a, 0x90, 0xb1, 0x30, 0x36, 0x36, 0x16, 0x10, 0xb9, 0xb2, 0xb3, 0x30, 0x39, 0x32, 0xb6, 0xb2, 0xb9, 0x39, 0x90, 0x37, 0x33, 0x10, 0x3a, 0xb4, 0x32, 0x90, 0x30, 0xbb, 0xb0, 0x34, 0xb6, 0x30, 0x31, 0xb6, 0x32, 0x10, 0xb2, 0xb4, 0xb3, 0x34, 0xba, 0x39, 0x90, 0x34, 0x37, 0x10, 0x17, 0xb4, 0x37, 0x76, 0x09, 0xe0, 0xb3, 0x05, 0xa4, 0x6e, 0xae, 0x8c, 0x0c, 0xe4, 0xcd, 0x8d, 0x2d, 0x0f, 0xc4, 0xec, 0x4d, 0x0e, 0x04, 0x48, 0x4e, 0x05, 0xc4, 0x8c, 0xed, 0x2d, 0x8c, 0x6e, 0xae, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0xf2, 0x96, 0xbe, 0xe1, 0x17, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x6c, 0x88, 0x85, 0x64, 0x60, 0x43, 0x2c, 0x4c, 0x37, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x0d, 0xb1, 0x10, 0x0d, 0x6c, 0x88, 0x85, 0xc1, 0x86, 0x3f, 0x97, 0x36, 0x48, 0xab, 0x49, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x21, 0x16, 0xe2, 0x83, 0xb5, 0xf8, 0x9d, 0x07, 0xc7, 0x93, 0x93, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x6c, 0x88, 0x85, 0xc5, 0xc0, 0x86, 0x58, 0x58, 0x6e, 0xf8, 0x73, 0x69, 0x83, 0x81, 0x56, 0xbf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0x60, 0x43, 0x2c, 0xac, 0x0e, 0xd6, 0x41, 0x78, 0x1e, 0x9c, 0xf4, 0x44, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xc9, 0x88, 0xe9, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x86, 0x58, 0x28, 0x18, 0xd8, 0x10, 0x0b, 0x25, 0x07, 0x27, 0x3d, 0xd1, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0xca, 0x99, 0xbe, 0x41, 0x41, 0x1a, 0xbb, 0x06, 0x25, 0x74, 0xec, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x56, 0xc4, 0x42, 0x32, 0xb0, 0x22, 0x16, 0x76, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0xc0, 0x8a, 0x58, 0x88, 0x06, 0x56, 0xc4, 0x42, 0xbe, 0xe1, 0xcf, 0xa5, 0x01, 0x0f, 0xee, 0x6d, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x22, 0x16, 0xe2, 0x83, 0xa5, 0x4c, 0x9e, 0x87, 0x0f, 0x56, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xb0, 0x22, 0x16, 0x06, 0x03, 0x2b, 0x62, 0x61, 0xb6, 0xe1, 0xcf, 0xa5, 0x0d, 0xce, 0x70, 0x32, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x56, 0xc4, 0xc2, 0xe8, 0x60, 0x05, 0x99, 0xe7, 0xc1, 0x51, 0xe8, 0xa4, 0x83, 0x30, 0x1d, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xa4, 0xc7, 0xa6, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x6a, 0x9c, 0xbe, 0xe1, 0xdf, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x2a, 0x77, 0xfa, 0x41, 0x2a, 0xaa, 0xd4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0xa0, 0x4f, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x51, 0x41, 0x7d, 0xc3, 0x83, 0x92, 0x1b, 0xa4, 0x9c, 0x38, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x54, 0x10, 0xf5, 0x83, 0x52, 0x48, 0x7d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x5e, 0xa4, 0x7e, 0x90, 0x54, 0x96, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0x01, 0x53, 0x3f, 0x48, 0xe0, 0x71, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x8e, 0xa7, 0xbe, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xda, 0xa3, 0xfa, 0x86, 0x07, 0x25, 0x37, 0x48, 0x66, 0x73, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x89, 0xa5, 0xea, 0x07, 0xa5, 0x90, 0xfa, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x51, 0x59, 0xfd, 0x20, 0xa9, 0x2c, 0xa9, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xd2, 0xb8, 0xfa, 0x06, 0xc5, 0x8e, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x05, 0x5f, 0x7d, 0xc3, 0xdb, 0x3a, 0x1b, 0x2c, 0x85, 0xf2, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0xfc, 0xd9, 0xbe, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x6a, 0x6d, 0xfb, 0x86, 0xb7, 0x75, 0x36, 0x28, 0x41, 0xbd, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x24, 0x72, 0xb7, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x2c, 0xdf, 0x7e, 0x70, 0x22, 0x68, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x24, 0x67, 0xb8, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x02, 0xe3, 0x7e, 0x70, 0x92, 0x69, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x24, 0x5d, 0xb9, 0x6f, 0xf8, 0x38, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xa4, 0xb3, 0xb9, 0x6f, 0x78, 0x5b, 0x67, 0x83, 0x33, 0x9c, 0x4c, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x14, 0x44, 0xf7, 0x83, 0x45, 0xf0, 0x6e, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x12, 0x4c, 0xdd, 0x37, 0xbc, 0xad, 0xb3, 0xc1, 0x40, 0xab, 0xaf, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xba, 0xb0, 0xfb, 0xe1, 0x31, 0x99, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x62, 0xb7, 0xfb, 0xc1, 0x22, 0x3c, 0xb9, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x02, 0xc4, 0xfa, 0x06, 0x05, 0x69, 0xec, 0x06, 0x65, 0x61, 0xf1, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xa9, 0x64, 0x7d, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb4, 0x9d, 0xf5, 0x83, 0x85, 0x9e, 0x93, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x04, 0xb1, 0xf5, 0x83, 0xa5, 0x15, 0x9f, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x84, 0xbd, 0xf5, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xd2, 0x1f, 0xd7, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0x30, 0x5d, 0x3f, 0x7c, 0x71, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0x3c, 0x5e, 0x3f, 0x58, 0x6b, 0xf0, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x48, 0x0c, 0x5f, 0x3f, 0x28, 0xbc, 0x8c, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xa4, 0xe7, 0xaf, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x04, 0xc1, 0x7e, 0xb0, 0xee, 0xdb, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x76, 0xc3, 0x7e, 0xb0, 0xb4, 0xe2, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x26, 0xc5, 0x7e, 0xb0, 0xd6, 0xe0, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0xcc, 0xc6, 0x7e, 0xb0, 0x08, 0x4f, 0xae, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x74, 0xc8, 0xbe, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x22, 0x27, 0xfb, 0xc1, 0x89, 0xa0, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0xdc, 0xcb, 0x7e, 0xb0, 0xb4, 0xe2, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x82, 0xcd, 0xbe, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x9a, 0x3b, 0xfb, 0xc1, 0x49, 0xa6, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x90, 0x58, 0xd1, 0xbe, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xfa, 0x4a, 0xfb, 0xe1, 0x53, 0xc0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x6a, 0x53, 0xfb, 0xc1, 0x5a, 0x83, 0xcf, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xf2, 0x59, 0xfb, 0x41, 0xe1, 0x65, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x6d, 0xb0, 0xfd, 0x60, 0x11, 0xbc, 0x5b, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x56, 0x00, 0x6f, 0xb8, 0x30, 0xb9, 0xb9, 0x34, 0xb7, 0xb3, 0x16, 0x3a, 0xb9, 0xb0, 0xb1, 0x34, 0xb7, 0x73, 0x19, 0x80, 0x26, 0x1a, 0x32, 0x1d, 0x10, 0xb8, 0x30, 0xb9, 0xb9, 0x34, 0xb7, 0x33, 0x10, 0x14, 0x3a, 0xb9, 0xb0, 0xb1, 0x34, 0xb7, 0xb3, 0xd4, 0x02, 0x3e, 0x5b, 0xdd, 0x1c, 0xbd, 0xe1, 0x17, 0xa5, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x25, 0x2b, 0xa3, 0x2b, 0x1b, 0xa3, 0x03, 0x71, 0x2b, 0xbb, 0x63, 0x4b, 0x73, 0x2b, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xee, 0xca, 0xe2, 0x0d, 0xff, 0xce, 0xaf, 0xc1, 0x49, 0x85, 0xb4, 0xd6, 0xf0, 0xe7, 0xd2, 0x80, 0xe7, 0x16, 0xa6, 0x1f, 0x24, 0x29, 0x03, 0xb7, 0xe1, 0x2f, 0x9a, 0x0d, 0x92, 0x94, 0x81, 0x37, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0xd6, 0xf0, 0xf5, 0xcb, 0x86, 0x0f, 0x61, 0x36, 0x7c, 0xfd, 0xb2, 0xe1, 0x43, 0x98, 0x83, 0x94, 0xd7, 0xaa, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0x9c, 0xfd, 0xb3, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0x8f, 0xa3, 0x36, 0xbc, 0xad, 0x33, 0x38, 0xbc, 0xc1, 0x8a, 0xfa, 0xcf, 0x0e, 0x0a, 0xe2, 0xf1, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0x24, 0x02, 0x74, 0x0d, 0x1f, 0x47, 0x6d, 0x78, 0x5b, 0x67, 0xf0, 0xf8, 0x60, 0xf5, 0x04, 0x68, 0x2b, 0xe0, 0xb3, 0x85, 0xcd, 0xd1, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x4f, 0xb3, 0x30, 0x39, 0x3a, 0xb4, 0x32, 0x39, 0x10, 0x3a, 0xb9, 0xb0, 0xb1, 0xb2, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0x01, 0x4f, 0x2f, 0x6f, 0x3c, 0x48, 0x52, 0x06, 0x3e, 0x58, 0x32, 0xff, 0xb9, 0xe1, 0x2f, 0x9a, 0x0d, 0x92, 0x94, 0x81, 0x37, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf0, 0x06, 0x4b, 0x6c, 0x40, 0x3b, 0x58, 0x12, 0x01, 0xba, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x6f, 0x14, 0xd7, 0xf0, 0xb6, 0xce, 0xe0, 0xf1, 0xc1, 0x3a, 0x23, 0xd0, 0x0d, 0xd6, 0x76, 0x80, 0xb6, 0x86, 0xb7, 0x75, 0x0e, 0xd6, 0x19, 0x81, 0x6e, 0x78, 0x5b, 0xe7, 0x60, 0xf5, 0x04, 0xe8, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x6f, 0x14, 0x37, 0x58, 0x3c, 0x04, 0xba, 0xc1, 0x92, 0x08, 0xd0, 0x0e, 0x56, 0x5d, 0x81, 0x1e, 0x4e, 0xb1, 0x56, 0x00, 0x9e, 0xe0, 0xc2, 0xe4, 0xe6, 0xd2, 0xdc, 0xce, 0x5a, 0xea, 0xe6, 0xca, 0xcc, 0xea, 0xd8, 0x5a, 0xd2, 0xc8, 0xd2, 0xde, 0xda, 0xe6, 0x65, 0x00, 0x5a, 0x69, 0xd2, 0x74, 0x40, 0xe0, 0xc2, 0xe4, 0xe6, 0xd2, 0xdc, 0xce, 0x40, 0x50, 0xea, 0xe6, 0xca, 0xcc, 0xea, 0xd8, 0x40, 0xd2, 0xc8, 0xd2, 0xde, 0xda, 0xe6, 0x52, 0x0b, 0x78, 0x63, 0x69, 0xf4, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0x5e, 0x6f, 0x63, 0x74, 0x61, 0x6c, 0x20, 0x64, 0x69, 0x67, 0x69, 0x74, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0xac, 0x45, 0xf1, 0x69, 0x0d, 0xbf, 0x28, 0x6d, 0xf8, 0x72, 0x69, 0xc3, 0xbb, 0x3d, 0x1b, 0x3e, 0x05, 0xdc, 0xf0, 0xb4, 0xce, 0xc1, 0xba, 0x1f, 0xb9, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x58, 0x01, 0xd4, 0xd3, 0x06, 0x8b, 0xe0, 0xdd, 0xd6, 0xf0, 0x23, 0xcc, 0xe0, 0x74, 0xe8, 0xad, 0x15, 0xf0, 0xe2, 0xd2, 0xe8, 0x0d, 0x56, 0x08, 0x35, 0xad, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xf7, 0x18, 0x5a, 0x98, 0xdc, 0x1c, 0x48, 0x9a, 0x1b, 0x48, 0x18, 0xc8, 0xd8, 0x9b, 0x1c, 0xd9, 0x86, 0xb7, 0x75, 0x36, 0x58, 0x85, 0x52, 0xd4, 0x1a, 0xac, 0x10, 0x6a, 0x5a, 0xc3, 0xdb, 0x3a, 0x03, 0x3e, 0x5b, 0xd9, 0xdc, 0xdc, 0x06, 0x6b, 0x71, 0x30, 0xd7, 0xf0, 0xb6, 0xce, 0x80, 0x37, 0xf7, 0x16, 0xb7, 0x86, 0xb7, 0x75, 0x06, 0x3c, 0x38, 0x39, 0xb7, 0xd6, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0xaf, 0x6c, 0x6e, 0x2c, 0x0c, 0xae, 0x0c, 0x64, 0x0c, 0x2d, 0x4c, 0x6e, 0x6e, 0x83, 0x15, 0x42, 0x4d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x35, 0xf2, 0x44, 0x6d, 0xb0, 0x16, 0x07, 0x73, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x1e, 0x18, 0x74, 0x83, 0xb5, 0x38, 0x98, 0x1b, 0x2c, 0x72, 0x06, 0x5d, 0xc3, 0xdb, 0x3a, 0x03, 0x5e, 0x5b, 0xd9, 0x5c, 0xb5, 0x02, 0x5e, 0x5c, 0x18, 0xbd, 0xc1, 0x0a, 0xa1, 0xa6, 0x35, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0x63, 0x0c, 0x2d, 0x4c, 0x6e, 0x0e, 0x24, 0xcd, 0x0d, 0x44, 0x8c, 0xed, 0x6d, 0x6c, 0x6d, 0xec, 0x4d, 0x8e, 0xec, 0x60, 0x3d, 0x30, 0xe8, 0x06, 0xeb, 0xa4, 0x41, 0xd7, 0x60, 0x85, 0x50, 0xd3, 0x06, 0xcb, 0x8e, 0x41, 0xd7, 0x60, 0x85, 0x50, 0xd3, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0xb5, 0x66, 0x51, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0xf8, 0xcb, 0xa7, 0x0d, 0x16, 0x03, 0x80, 0xb6, 0x86, 0xb7, 0x75, 0x06, 0xbc, 0xb9, 0x37, 0xbd, 0x36, 0x58, 0x93, 0x11, 0x5a, 0xb3, 0x80, 0x47, 0x56, 0xe7, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0xdb, 0xd2, 0x02, 0x82, 0x32, 0x47, 0xf7, 0x06, 0x97, 0x02, 0x42, 0xf7, 0x06, 0xe2, 0xb7, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0x0a, 0xcc, 0x9c, 0x36, 0x28, 0x28, 0x32, 0xd7, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x2b, 0x2a, 0x42, 0xd7, 0xf0, 0xb6, 0xce, 0x80, 0x87, 0x56, 0x06, 0xb7, 0xc1, 0x62, 0xa1, 0xd0, 0x3a, 0x9c, 0x62, 0x0b, 0x78, 0x6e, 0x75, 0xe4, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0xaf, 0x5b, 0x5d, 0x5b, 0x99, 0x5c, 0xda, 0xd8, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x5f, 0x0a, 0xba, 0xc1, 0x22, 0x78, 0xb7, 0x83, 0xf5, 0x46, 0x72, 0x87, 0x53, 0x6c, 0x01, 0x6f, 0x2e, 0xaf, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x58, 0xea, 0x15, 0xda, 0x00, 0xdf, 0x5c, 0x5e, 0x9b, 0xd8, 0x1b, 0xdb, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0xcb, 0x2a, 0x41, 0xd7, 0xf0, 0x8b, 0xd2, 0x06, 0x8b, 0x08, 0xea, 0x36, 0xbc, 0xdb, 0xb3, 0xc1, 0x5a, 0xc7, 0xb6, 0x0d, 0x8a, 0x4a, 0xf1, 0x35, 0xfc, 0x45, 0xb3, 0x41, 0x39, 0x67, 0x7b, 0x78, 0x5a, 0xa7, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xa2, 0x22, 0x74, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x6c, 0x6f, 0x77, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x73, 0x74, 0x61, 0x72, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xf5, 0xc0, 0xa0, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xd5, 0x4a, 0xa1, 0x6d, 0xb0, 0x90, 0x30, 0xf4, 0x60, 0xb5, 0x51, 0x68, 0xad, 0x80, 0x87, 0x56, 0x86, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x85, 0x56, 0x86, 0x07, 0x42, 0xf7, 0x06, 0x12, 0x46, 0xf7, 0xd6, 0xb6, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0x8b, 0x85, 0xcd, 0xcd, 0x6d, 0x70, 0x78, 0x95, 0x5b, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x6f, 0x7b, 0x9b, 0xa3, 0x5b, 0xc3, 0xdb, 0x3a, 0x03, 0xde, 0xd9, 0x9b, 0xdb, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xd0, 0xd2, 0xe8, 0x6a, 0x05, 0xbc, 0xb3, 0x30, 0x74, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x5f, 0xb7, 0xb2, 0x3b, 0xb6, 0x34, 0xb7, 0x32, 0x90, 0x37, 0x39, 0x90, 0xb0, 0xb1, 0xb2, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0xd6, 0xdb, 0xe5, 0xb4, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0x0c, 0x00, 0xba, 0xc1, 0x62, 0x9f, 0xbb, 0x83, 0xb2, 0xce, 0xb3, 0x15, 0xf0, 0xc2, 0xd8, 0xcc, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0x7c, 0xc2, 0xd8, 0xe0, 0xd0, 0xc2, 0xc4, 0xca, 0xe8, 0xd2, 0xc6, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x7a, 0x60, 0xd0, 0x0d, 0x16, 0x12, 0x86, 0xae, 0xe1, 0x6d, 0x9d, 0x01, 0x0f, 0x2d, 0xed, 0xac, 0xc3, 0x29, 0xb6, 0x80, 0xe7, 0x96, 0x86, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x62, 0x6f, 0x73, 0x73, 0x1b, 0xa4, 0x62, 0xff, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0x2a, 0x86, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x03, 0x83, 0xae, 0xe1, 0x6d, 0x9d, 0x01, 0x2f, 0x8c, 0xcd, 0x6d, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x63, 0x61, 0x62, 0xd5, 0x6a, 0xb0, 0x88, 0x1a, 0x74, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x2f, 0xb7, 0x37, 0xb7, 0x96, 0xb1, 0x37, 0x37, 0x3a, 0xb9, 0x37, 0xb6, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xec, 0x18, 0x74, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x60, 0x23, 0x74, 0x0d, 0x5f, 0xbf, 0x6c, 0xf8, 0x10, 0x66, 0xc3, 0xd7, 0x2f, 0x1b, 0x3e, 0x84, 0x39, 0x58, 0x4a, 0x4d, 0xd7, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x7d, 0x29, 0xe8, 0x06, 0xa9, 0xa7, 0xb1, 0x07, 0x69, 0xd8, 0xbf, 0x1d, 0x4e, 0xb1, 0x05, 0xbc, 0xb3, 0x3a, 0x76, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xed, 0x30, 0xbc, 0xb4, 0x39, 0x90, 0xb9, 0x3c, 0x37, 0xba, 0x30, 0x3c, 0x10, 0x1e, 0x10, 0xdf, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x0f, 0x0c, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x82, 0x13, 0xba, 0x41, 0xc0, 0xb2, 0xae, 0xe1, 0x6d, 0x9d, 0x01, 0xef, 0x2c, 0x8c, 0xad, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x12, 0x9c, 0xd0, 0x0d, 0x8a, 0x4a, 0xf1, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0x9d, 0x85, 0xc9, 0xd5, 0x2c, 0xe0, 0x91, 0xbd, 0xa1, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xf0, 0xd1, 0xd2, 0x02, 0x02, 0x02, 0x87, 0xf6, 0xe6, 0x06, 0x32, 0x57, 0x06, 0x17, 0x26, 0x17, 0x46, 0xf7, 0x26, 0xb7, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x56, 0x54, 0x84, 0x6e, 0xb0, 0xc8, 0x27, 0x74, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x67, 0x61, 0x79, 0x1d, 0x4e, 0xb1, 0x05, 0xbc, 0xb3, 0xb0, 0x7b, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xcf, 0x31, 0xb6, 0xb0, 0xb9, 0xb9, 0xb4, 0x31, 0x90, 0x3b, 0xb4, 0x34, 0xba, 0xb2, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x04, 0x27, 0x74, 0x83, 0x82, 0x22, 0x73, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x50, 0x31, 0x74, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x1e, 0x18, 0x74, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x76, 0x75, 0x6c, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xc5, 0xc0, 0xa1, 0x55, 0x2b, 0xe0, 0xa5, 0xb9, 0xe5, 0x1b, 0x14, 0xca, 0x9d, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x9b, 0x2b, 0x33, 0x37, 0xfc, 0x3b, 0xbf, 0x06, 0xc9, 0x43, 0xc2, 0xb5, 0xe1, 0x17, 0xa5, 0x0d, 0xd2, 0xda, 0x81, 0x37, 0x7c, 0xfd, 0xb2, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x0b, 0x4f, 0x45, 0x6b, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x0d, 0x13, 0x37, 0xe0, 0xa1, 0x85, 0xc9, 0x07, 0xa5, 0xe8, 0xc0, 0x86, 0x07, 0x25, 0x37, 0x58, 0xa4, 0x88, 0x77, 0x70, 0x5a, 0x39, 0xdb, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xf0, 0xd8, 0xca, 0xec, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x18, 0x92, 0xb5, 0x41, 0x51, 0x29, 0xbe, 0x86, 0x77, 0x7b, 0x36, 0xbc, 0xe6, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0x8f, 0x37, 0x58, 0xe7, 0x2b, 0x5a, 0x1b, 0x2c, 0xf6, 0xb9, 0x6b, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xc0, 0x2b, 0x7b, 0x63, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0x82, 0x8d, 0xd0, 0x35, 0x7c, 0xfd, 0xb2, 0xc1, 0x5a, 0x85, 0xba, 0x83, 0x25, 0x04, 0xa0, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x8e, 0x36, 0x7c, 0x6b, 0xf8, 0xdc, 0x65, 0xc0, 0x93, 0x7b, 0x8b, 0x37, 0xbc, 0xdb, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xa8, 0x18, 0xba, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x0f, 0x0c, 0xba, 0xc1, 0x3a, 0x69, 0xd0, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0x86, 0xb7, 0x75, 0x36, 0x58, 0x22, 0x54, 0xd4, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0xa1, 0xb8, 0x68, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x6a, 0x65, 0x73, 0x74, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xe5, 0xcb, 0xa2, 0xd5, 0x41, 0x2a, 0xd0, 0x58, 0x6b, 0x78, 0x5b, 0xe7, 0x60, 0x89, 0xb6, 0xe8, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0x14, 0x1d, 0xa8, 0x0d, 0x56, 0x08, 0x35, 0xad, 0xe1, 0x6d, 0x9d, 0x01, 0x7f, 0x2e, 0xad, 0xad, 0x6e, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xa2, 0x22, 0x74, 0x83, 0x95, 0x09, 0xa3, 0x1b, 0xac, 0x4c, 0x18, 0xed, 0x60, 0x05, 0xcc, 0xe8, 0x06, 0x25, 0x3c, 0xe6, 0x82, 0xc7, 0x1b, 0x2c, 0xa4, 0x17, 0x6d, 0x0d, 0x6f, 0xeb, 0x1c, 0xac, 0xbc, 0x19, 0xdd, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xf0, 0xec, 0xca, 0xf0, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xa8, 0x56, 0x74, 0x0d, 0x97, 0xd4, 0x06, 0x4b, 0xb4, 0x45, 0xd7, 0xe0, 0x88, 0x93, 0x71, 0x78, 0x4c, 0xa6, 0x35, 0xbc, 0xad, 0x33, 0x38, 0x3c, 0x78, 0x7d, 0xb0, 0xd2, 0x66, 0xb4, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x01, 0xcf, 0xac, 0x4e, 0xde, 0x70, 0x49, 0x2d, 0x38, 0xbc, 0xc1, 0xb2, 0xa0, 0xd1, 0xd6, 0xe0, 0x88, 0x93, 0xb1, 0xe1, 0xdd, 0x9e, 0x0d, 0x7f, 0x02, 0x6d, 0xb0, 0x7e, 0x5a, 0x74, 0x0d, 0x6f, 0xeb, 0x0c, 0x1e, 0x1f, 0xac, 0xe2, 0x1a, 0xad, 0x0d, 0x4a, 0x78, 0xcc, 0x05, 0x8f, 0x0f, 0x56, 0x75, 0x8d, 0xae, 0xe1, 0x92, 0xda, 0x60, 0x55, 0xd7, 0xe8, 0x1a, 0x1c, 0x3c, 0x32, 0x36, 0xbc, 0xad, 0xb3, 0xc1, 0x52, 0xac, 0xd1, 0xda, 0xe0, 0x68, 0xc3, 0xb7, 0x86, 0x4b, 0x6a, 0x83, 0x55, 0x5d, 0xa3, 0x1b, 0xac, 0xac, 0x1b, 0x5d, 0xc1, 0xeb, 0x83, 0x23, 0x4e, 0xc6, 0xe1, 0x99, 0xc9, 0x36, 0x38, 0xe7, 0x2f, 0xad, 0xe1, 0x92, 0x5a, 0x43, 0xaa, 0xe6, 0x60, 0x55, 0xd7, 0x68, 0x6b, 0xb8, 0xa4, 0xd6, 0xb0, 0x57, 0x78, 0xb0, 0xaa, 0x6b, 0x74, 0x05, 0x8f, 0x0f, 0x0e, 0x1e, 0x19, 0x1b, 0xde, 0xed, 0xd9, 0xf0, 0x27, 0xd0, 0x06, 0xeb, 0xa7, 0x45, 0xd7, 0xf0, 0xb6, 0xce, 0xe0, 0xf1, 0xe0, 0xf0, 0xc1, 0xe2, 0xc8, 0xd1, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0xd9, 0xe0, 0x98, 0xe1, 0xb9, 0xe1, 0x92, 0x5a, 0x43, 0xb6, 0xe2, 0x60, 0x55, 0xd7, 0x68, 0x1b, 0xbe, 0xc2, 0xd9, 0xa0, 0x84, 0xc7, 0xdc, 0xe0, 0x0c, 0xe6, 0xb9, 0x86, 0x4b, 0x6a, 0x0d, 0xd9, 0x8a, 0x83, 0x95, 0x37, 0xa3, 0x6d, 0x50, 0xec, 0x68, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0x52, 0x5e, 0xab, 0x36, 0x5c, 0x52, 0x6b, 0x1c, 0x3a, 0x38, 0x83, 0x79, 0xb6, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0x02, 0x3c, 0xba, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0x67, 0x30, 0xcf, 0x0d, 0x97, 0xd4, 0x1a, 0xcf, 0x0f, 0xce, 0x60, 0x9e, 0xd5, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x64, 0x2d, 0xae, 0xe1, 0x17, 0x97, 0x0d, 0x96, 0xa2, 0x8b, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0x61, 0xbf, 0x1d, 0xac, 0xa0, 0x18, 0xed, 0x60, 0x35, 0xf2, 0xe8, 0xe1, 0x14, 0x5b, 0xc0, 0x23, 0xab, 0xd3, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0xed, 0xe9, 0x01, 0x41, 0x99, 0xa3, 0x2b, 0xa3, 0x4b, 0x01, 0xa1, 0x7b, 0x03, 0xf1, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0x4b, 0x70, 0x42, 0x37, 0x28, 0x28, 0x32, 0xd7, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x2b, 0x2a, 0x42, 0xd7, 0xf0, 0xb6, 0xce, 0x80, 0x47, 0x97, 0x36, 0xb7, 0xc1, 0x62, 0xfe, 0xd1, 0x3a, 0x9c, 0x62, 0x0b, 0x78, 0x64, 0x69, 0xf4, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0x9e, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x20, 0x64, 0x69, 0x67, 0x69, 0x74, 0x1b, 0xde, 0xed, 0xd9, 0x60, 0x59, 0x25, 0xe8, 0x06, 0x0b, 0x33, 0x41, 0x37, 0x58, 0x4f, 0x15, 0xda, 0x0a, 0x78, 0x64, 0x6f, 0xe7, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0xbc, 0xb8, 0x80, 0x80, 0xb8, 0xd5, 0xb5, 0x89, 0x95, 0xc9, 0x81, 0xcc, 0x95, 0xc1, 0x85, 0xc9, 0x85, 0xd1, 0xbd, 0xc9, 0x6d, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x23, 0x7b, 0xa3, 0x3b, 0x58, 0x6e, 0x27, 0xba, 0x02, 0xde, 0x59, 0x58, 0xbc, 0xc1, 0x0a, 0xa1, 0xa6, 0x35, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x2a, 0x73, 0x23, 0x03, 0x79, 0x33, 0x03, 0x61, 0x4b, 0x73, 0x2b, 0x3b, 0x58, 0x0f, 0x0c, 0xba, 0xc1, 0x9a, 0x8c, 0xd0, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x8a, 0x8a, 0xd0, 0x0d, 0xd6, 0x72, 0x8a, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x03, 0x83, 0x6e, 0xb0, 0x96, 0x53, 0x74, 0x83, 0x85, 0x98, 0xa2, 0x75, 0xb0, 0xcc, 0x8a, 0x74, 0x35, 0x58, 0xa5, 0x29, 0xba, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0x12, 0x9c, 0xd0, 0x35, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xf8, 0xc7, 0xde, 0xda, 0xda, 0xca, 0xdc, 0xe8, 0xe6, 0x0e, 0x0a, 0x8a, 0xcc, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xa2, 0x22, 0x74, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x63, 0x6f, 0x6c, 0x1b, 0x2c, 0x84, 0x23, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0x54, 0x0c, 0x3d, 0x58, 0x25, 0x0d, 0x7a, 0xb0, 0xb4, 0x24, 0x74, 0x05, 0xbc, 0xb8, 0x3a, 0x7a, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x26, 0x19, 0x5d, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0xe6, 0xe0, 0x78, 0x24, 0x7a, 0xb0, 0xc8, 0x19, 0x74, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x1e, 0x18, 0x74, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xec, 0x18, 0x74, 0x83, 0x75, 0x21, 0xa1, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x69, 0x66, 0x69, 0x78, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x45, 0xce, 0xa0, 0x1b, 0x2c, 0x72, 0x06, 0x6d, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x20, 0x3f, 0x74, 0x83, 0x54, 0xec, 0xdf, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0xfc, 0xb6, 0x37, 0xb9, 0xb2, 0x0d, 0x96, 0xdf, 0x86, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0x96, 0xc1, 0x82, 0x56, 0xb5, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x80, 0x87, 0x56, 0x46, 0x6e, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xf5, 0xc0, 0xa0, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x70, 0x6c, 0x75, 0x73, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x0b, 0x1b, 0x2b, 0xeb, 0x60, 0x99, 0x15, 0xe9, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0xc1, 0x46, 0xe8, 0x1a, 0x7e, 0x84, 0x19, 0x9c, 0x0e, 0x51, 0x6d, 0x70, 0x62, 0xbf, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0xac, 0x0b, 0x15, 0x6d, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x85, 0x9a, 0xa4, 0x6b, 0x50, 0x18, 0xaa, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x56, 0x54, 0x84, 0x6e, 0xb0, 0x2e, 0x24, 0x74, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0x92, 0x97, 0xb4, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x8a, 0x8a, 0xd0, 0x0d, 0x56, 0x52, 0x93, 0x1e, 0xac, 0x0a, 0x09, 0xdd, 0xf0, 0x6e, 0xcf, 0x06, 0x0b, 0xf2, 0x43, 0x37, 0x48, 0xc5, 0xfe, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0x54, 0x0c, 0x5d, 0xc3, 0xdb, 0x3a, 0x1b, 0xac, 0xbd, 0x07, 0xad, 0x6a, 0x35, 0x58, 0x12, 0x1f, 0xba, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x73, 0xb0, 0xca, 0x73, 0x6e, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x2f, 0x05, 0xdd, 0x60, 0x25, 0xaf, 0xdb, 0xc1, 0xba, 0x62, 0xb7, 0x59, 0x83, 0xd5, 0x78, 0xa2, 0x1b, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x3d, 0x30, 0xe8, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xce, 0xc2, 0xe0, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0x69, 0x43, 0x4f, 0x07, 0x65, 0x9d, 0x67, 0xab, 0xc1, 0x2a, 0xc3, 0xd0, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x83, 0xb5, 0x9a, 0x6e, 0x1b, 0xde, 0xed, 0xd9, 0x60, 0x7d, 0x29, 0xe8, 0x06, 0xeb, 0xba, 0xe0, 0x0e, 0x56, 0x9b, 0xc1, 0xad, 0x06, 0x6b, 0xe9, 0x41, 0x37, 0x28, 0x3a, 0x8d, 0xd7, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0xe0, 0x45, 0x2b, 0xc3, 0x13, 0xcb, 0xa3, 0x2b, 0x3b, 0x58, 0x56, 0x09, 0xba, 0x86, 0x5f, 0x94, 0x36, 0xfc, 0xad, 0xb4, 0xe1, 0xdd, 0x9e, 0x0d, 0x7f, 0x02, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x82, 0xa7, 0x76, 0x83, 0xc3, 0xab, 0xdc, 0xe1, 0xa1, 0x9f, 0xc3, 0x5b, 0x68, 0x1b, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x45, 0x45, 0xe8, 0x06, 0x2b, 0x78, 0x43, 0x0f, 0xd6, 0xef, 0x86, 0x1e, 0x4e, 0xb1, 0xd6, 0x60, 0xd1, 0x48, 0xe8, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0xba, 0x64, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x27, 0x27, 0xa7, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xa2, 0x22, 0x74, 0x83, 0x45, 0xce, 0xa0, 0x07, 0xcb, 0x41, 0x49, 0x67, 0x01, 0xcf, 0x2e, 0x8d, 0xde, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x58, 0xda, 0x57, 0xda, 0x00, 0x7e, 0x62, 0x61, 0x73, 0x65, 0x36, 0x34, 0x20, 0x64, 0x69, 0x67, 0x69, 0x74, 0x1b, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x3d, 0x30, 0xe8, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x59, 0x25, 0xe8, 0x1a, 0x7e, 0x51, 0xda, 0xf0, 0xe5, 0xd2, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0x0a, 0xb8, 0xe1, 0x69, 0x9d, 0x0d, 0x16, 0xb5, 0xbc, 0xb5, 0xc1, 0x72, 0x89, 0xd2, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xcb, 0x2a, 0x41, 0xd7, 0xf0, 0x8b, 0xd2, 0x86, 0x2f, 0x97, 0x36, 0xbc, 0xdb, 0xb3, 0xe1, 0x53, 0xc0, 0x0d, 0x4f, 0xeb, 0x6c, 0xb0, 0xf0, 0xe7, 0xad, 0x0d, 0x56, 0xd8, 0x94, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x56, 0x09, 0xba, 0x86, 0x5f, 0x94, 0x36, 0x7c, 0xb9, 0xb4, 0xe1, 0xdd, 0x9e, 0x0d, 0x7f, 0x02, 0x6d, 0x78, 0x5a, 0xe7, 0xe0, 0xcc, 0xdc, 0x76, 0xb0, 0x04, 0x83, 0x74, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x04, 0x27, 0x74, 0x83, 0xa5, 0x15, 0x6f, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x05, 0x1b, 0xa1, 0x1b, 0xac, 0xd9, 0x78, 0xab, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x12, 0x9c, 0xd0, 0x0d, 0xd6, 0x23, 0xbc, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0x6c, 0x84, 0x6e, 0xb0, 0xd0, 0xe1, 0xad, 0x9a, 0x05, 0x3c, 0xb1, 0x32, 0x7a, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xed, 0x30, 0xbc, 0xb4, 0x39, 0x90, 0xb9, 0x3c, 0x37, 0xba, 0x30, 0x3c, 0x90, 0x16, 0x90, 0xd5, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x0f, 0x0c, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x82, 0x13, 0xba, 0x41, 0xc0, 0xb2, 0x1e, 0xac, 0x36, 0x0a, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xc1, 0x09, 0xdd, 0xa0, 0xa8, 0x14, 0x5f, 0xc3, 0xdb, 0x3a, 0x03, 0x1e, 0x5b, 0xdd, 0x5c, 0x1d, 0x4e, 0xb1, 0x16, 0xf0, 0xc4, 0xd2, 0xdc, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0x7c, 0xc5, 0xd2, 0xdc, 0xc2, 0xe4, 0xf2, 0x40, 0xe8, 0xde, 0x40, 0xc2, 0xe8, 0xde, 0xda, 0x36, 0xbc, 0xdb, 0xb3, 0xc1, 0x52, 0xd5, 0xd0, 0x0d, 0x02, 0x96, 0x75, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x66, 0x36, 0x74, 0x83, 0xe5, 0xb7, 0xa1, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x13, 0xab, 0xa3, 0xab, 0xc3, 0x29, 0xb6, 0x80, 0x17, 0xc6, 0x06, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0x40, 0x47, 0x18, 0x1b, 0x1c, 0x5a, 0x98, 0x5b, 0x5d, 0x5b, 0x99, 0x5c, 0xda, 0x18, 0x48, 0x98, 0x1b, 0x19, 0x48, 0x6b, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x07, 0x06, 0xdd, 0x60, 0x21, 0x61, 0xe8, 0x06, 0xab, 0xde, 0x43, 0x37, 0x58, 0x3b, 0x19, 0x7a, 0xb0, 0xda, 0x28, 0x74, 0x05, 0x3c, 0xb2, 0x37, 0x73, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xdf, 0x16, 0x10, 0xa0, 0x38, 0x90, 0xb9, 0x32, 0xb8, 0x30, 0xb9, 0x30, 0xba, 0x37, 0xb9, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xa2, 0x22, 0x74, 0x83, 0xc5, 0x42, 0xa1, 0x07, 0xcb, 0xed, 0x44, 0x57, 0x83, 0xb5, 0xb9, 0xa1, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xe8, 0xb3, 0xbd, 0xb9, 0x9d, 0x81, 0xb8, 0xd5, 0xb5, 0x89, 0x95, 0xc9, 0xcd, 0x81, 0x70, 0x81, 0xbc, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x7a, 0x60, 0xd0, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x8a, 0x8a, 0xd0, 0x0d, 0xd6, 0xe2, 0x60, 0x6e, 0xb0, 0xe0, 0x4e, 0x74, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x66, 0x61, 0x73, 0x1d, 0x2c, 0x31, 0x29, 0x3d, 0x9c, 0x62, 0x6b, 0xb0, 0x44, 0x41, 0x74, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xbf, 0x30, 0x36, 0x38, 0xb4, 0x30, 0xb7, 0xba, 0xb6, 0x32, 0xb9, 0xb4, 0xb1, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x1e, 0x18, 0x74, 0x83, 0x85, 0x84, 0xa1, 0x1b, 0xac, 0x7a, 0x0f, 0xdd, 0x60, 0xed, 0x64, 0x68, 0xb3, 0x80, 0x47, 0x56, 0xd6, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x4d, 0x56, 0x36, 0x96, 0xd6, 0x16, 0xc6, 0x06, 0x42, 0xf7, 0x06, 0x12, 0x46, 0xf7, 0xd6, 0xb6, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0xaa, 0x86, 0x6e, 0x90, 0xf2, 0x5a, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x33, 0x1b, 0xba, 0xc1, 0xf2, 0xdb, 0xd0, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0x6a, 0x02, 0xd2, 0xea, 0x70, 0x8a, 0x2d, 0x00, 0x0f, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x2d, 0x63, 0x61, 0x73, 0x65, 0x2d, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0xec, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0xcb, 0x2a, 0x41, 0x37, 0x58, 0x0c, 0x17, 0xba, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x56, 0x54, 0x84, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0x96, 0x73, 0x87, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xa8, 0x18, 0xba, 0x86, 0xb7, 0x75, 0x36, 0x58, 0x61, 0x62, 0x5a, 0x1d, 0x4e, 0xb1, 0xd6, 0x60, 0x79, 0x6f, 0xe8, 0x06, 0x2b, 0x84, 0x9a, 0xd6, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x07, 0xad, 0x0c, 0x0f, 0x84, 0x2c, 0xed, 0x2c, 0x8d, 0x6e, 0xee, 0x60, 0x3d, 0x30, 0xe8, 0x06, 0x4b, 0x61, 0x4d, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xcb, 0x2a, 0x41, 0xd7, 0xf0, 0x8b, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0x3c, 0x58, 0xf0, 0xfe, 0xb9, 0xe1, 0xdd, 0x9e, 0x0d, 0x9f, 0x02, 0x6e, 0x78, 0x5a, 0x67, 0x83, 0x65, 0x09, 0x70, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0xd6, 0x97, 0x82, 0x6e, 0xb0, 0xae, 0x0b, 0x6e, 0x0d, 0x3f, 0xc2, 0x0c, 0x4e, 0x87, 0x9b, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x56, 0x09, 0xba, 0x86, 0x5f, 0x94, 0x36, 0x58, 0x11, 0x6f, 0xba, 0xe1, 0xdd, 0x9e, 0x0d, 0x9f, 0x02, 0x6e, 0x78, 0x5a, 0x67, 0x0d, 0x3f, 0xc2, 0x6c, 0xa8, 0xf9, 0xa1, 0xb7, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xfa, 0x52, 0xd0, 0x0d, 0x56, 0xf2, 0xba, 0xad, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0x70, 0xa3, 0x5a, 0x01, 0xcf, 0xae, 0xcc, 0xdd, 0x60, 0x85, 0x50, 0xd3, 0x1a, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0xaf, 0xf8, 0xb4, 0x80, 0x84, 0xe1, 0xa5, 0xcd, 0x81, 0xcc, 0xe5, 0xb9, 0xd1, 0x85, 0xe1, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0x08, 0x9b, 0xa8, 0x35, 0xfc, 0xa2, 0xb4, 0xe1, 0x6f, 0xa5, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0xc6, 0x9a, 0x39, 0xfc, 0x7e, 0xd6, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0xf1, 0x77, 0x69, 0x6b, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x68, 0x6f, 0xed, 0x86, 0xbf, 0x68, 0x36, 0x7c, 0xb0, 0x7a, 0x50, 0xc0, 0xe6, 0x6f, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x74, 0x75, 0xe2, 0x41, 0x5a, 0x3b, 0xf0, 0x86, 0xbf, 0x68, 0xd6, 0x20, 0xf4, 0x4b, 0xd6, 0xf0, 0xb6, 0xce, 0x86, 0x7f, 0xe7, 0x3b, 0x28, 0x23, 0x6d, 0x37, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x36, 0x58, 0x16, 0x34, 0xba, 0xe1, 0x83, 0x9c, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0x2a, 0xa5, 0xd3, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x2b, 0x85, 0x4e, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0xab, 0xaa, 0x4e, 0x6b, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xc5, 0x38, 0xa2, 0x1d, 0x2c, 0x91, 0x3b, 0xdd, 0xa0, 0x84, 0xc7, 0xdc, 0x60, 0xa9, 0xdb, 0xe8, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0xdb, 0x3a, 0x83, 0xc3, 0x07, 0xeb, 0xe7, 0x4e, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0x05, 0x45, 0xe6, 0x86, 0xc7, 0x64, 0x0e, 0x96, 0xc8, 0x9d, 0xb6, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xe0, 0xdd, 0x85, 0x9d, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0xac, 0x30, 0x3c, 0xdd, 0xf0, 0xb6, 0xce, 0xc1, 0x2a, 0xae, 0xd1, 0x35, 0x58, 0xbd, 0x76, 0xba, 0xe1, 0x6d, 0xd6, 0x83, 0x25, 0x6a, 0xa7, 0x6b, 0xb0, 0x7e, 0xee, 0x74, 0xc3, 0xdb, 0x3a, 0x83, 0xc7, 0x83, 0xd7, 0x07, 0x4b, 0xdd, 0x46, 0xdb, 0xa0, 0xe0, 0xc3, 0x5c, 0x83, 0x62, 0x12, 0x73, 0x83, 0x22, 0x15, 0x73, 0xf0, 0x78, 0x83, 0x75, 0x94, 0xa7, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xeb, 0x0c, 0x0e, 0x1f, 0x2c, 0xa7, 0x3d, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0x14, 0x14, 0x99, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x33, 0xd6, 0xcc, 0x1a, 0xde, 0xd6, 0x19, 0x1c, 0x3e, 0x58, 0xa9, 0x7a, 0xba, 0x86, 0xb7, 0x75, 0x06, 0x87, 0x07, 0xaf, 0x0f, 0x96, 0xcf, 0x9e, 0xb6, 0x86, 0xb7, 0x75, 0x06, 0x8f, 0x0f, 0x96, 0x34, 0x9f, 0x56, 0xb3, 0x06, 0x0b, 0x44, 0x4c, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x13, 0x4b, 0x73, 0x0b, 0x93, 0xcb, 0x03, 0x21, 0x4b, 0x3b, 0x4b, 0xa3, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0xcb, 0x2a, 0x41, 0x37, 0x58, 0x98, 0x09, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x5f, 0x0a, 0xba, 0xc1, 0x22, 0x78, 0xb7, 0x0d, 0xd6, 0x66, 0x1e, 0xd6, 0xac, 0xc1, 0xf2, 0x91, 0xd2, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0xfc, 0xe0, 0xd8, 0xea, 0xe4, 0xc2, 0xd8, 0x40, 0xe6, 0xe0, 0xc2, 0xc6, 0xca, 0x36, 0xbc, 0xdb, 0xb3, 0xc1, 0x12, 0x9c, 0xd0, 0x0d, 0x0a, 0x8a, 0xcc, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x8a, 0x8a, 0xd0, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0x1a, 0x1b, 0xd2, 0x0e, 0x96, 0x3f, 0x8a, 0x76, 0x38, 0xc5, 0x5a, 0x01, 0xfc, 0xca, 0xf0, 0xde, 0xe8, 0xd2, 0xc6, 0x5a, 0xc4, 0xc2, 0xe6, 0xca, 0xe6, 0x65, 0x00, 0x7f, 0x9a, 0x30, 0x1d, 0x90, 0x32, 0xbc, 0x37, 0xba, 0xb4, 0x31, 0x10, 0xb1, 0xb0, 0xb9, 0xb2, 0xb9, 0x05, 0xde, 0x2c, 0xdc, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x0c, 0xde, 0x2c, 0xec, 0x60, 0x9d, 0x67, 0xe4, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x06, 0x45, 0xeb, 0xc9, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x0f, 0x16, 0xaf, 0xa6, 0x6c, 0x50, 0x90, 0xc6, 0xae, 0xe1, 0xfb, 0xf6, 0x01, 0x2f, 0xaf, 0x6c, 0xdd, 0xa0, 0x84, 0x8e, 0xdd, 0xe0, 0xd8, 0x52, 0x7a, 0x10, 0xa6, 0x63, 0x6b, 0xb0, 0x1c, 0x92, 0x69, 0x36, 0x38, 0xda, 0xf0, 0xad, 0xe1, 0x41, 0xc9, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0x52, 0x1d, 0xd4, 0x36, 0xbc, 0xdb, 0xb3, 0xc1, 0x52, 0x49, 0xc2, 0x0d, 0x0e, 0x14, 0x6d, 0x07, 0xa9, 0x40, 0x63, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0xdc, 0x65, 0xf0, 0x70, 0x83, 0x42, 0x30, 0xf5, 0x60, 0xc1, 0xfb, 0xe7, 0x1a, 0x3e, 0x77, 0x19, 0x5c, 0xdc, 0xa0, 0x10, 0x4c, 0x3d, 0xfc, 0x50, 0xb3, 0x86, 0xcf, 0x5d, 0x36, 0x58, 0xaa, 0x83, 0xba, 0xe1, 0xeb, 0x97, 0x35, 0xfc, 0x08, 0x33, 0xf0, 0x75, 0x78, 0x1b, 0xbe, 0x7e, 0xd9, 0xf0, 0x21, 0xcc, 0x86, 0x77, 0x7b, 0x36, 0x48, 0x0c, 0xc9, 0xda, 0xa0, 0xa8, 0x14, 0xdf, 0x20, 0x15, 0xfb, 0x77, 0x0d, 0x3f, 0xc2, 0x0c, 0x7c, 0x1d, 0x1e, 0xc4, 0xbf, 0x36, 0x38, 0x0f, 0x76, 0x6c, 0xf8, 0xc5, 0x65, 0xc3, 0xbf, 0x51, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x43, 0x0c, 0xc4, 0x06, 0x4b, 0x92, 0x50, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xa5, 0x01, 0xef, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0xa8, 0x14, 0x5f, 0xc3, 0xd7, 0x2f, 0x1b, 0x84, 0xf3, 0xd9, 0x86, 0xaf, 0x5f, 0x36, 0x7c, 0x08, 0x73, 0x78, 0x5a, 0xa7, 0x35, 0xbc, 0xdb, 0xb3, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0xc9, 0x16, 0xb9, 0x1b, 0x9c, 0xf9, 0xd7, 0x0e, 0x0a, 0x4a, 0xf1, 0xc3, 0x5b, 0x68, 0xd5, 0x06, 0x25, 0x0b, 0xfb, 0x2c, 0xb3, 0x06, 0xcb, 0x75, 0x0f, 0x37, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x0f, 0x0f, 0x8e, 0x2d, 0xa5, 0x1b, 0xbe, 0x7e, 0xd9, 0x60, 0xe9, 0x1a, 0xea, 0x86, 0xaf, 0x5f, 0x36, 0x7c, 0x08, 0xb3, 0xe1, 0xdd, 0x9e, 0x0d, 0x0e, 0x31, 0x10, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xd2, 0x80, 0x77, 0x0d, 0xbf, 0xb8, 0x6c, 0x50, 0x54, 0x8a, 0x1f, 0x9c, 0x99, 0xdb, 0x0e, 0x0f, 0xfd, 0xac, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xd1, 0xbd, 0xad, 0x1d, 0x1e, 0xfa, 0x69, 0x05, 0xbc, 0x31, 0xb4, 0x70, 0xc3, 0x2f, 0x4a, 0x1b, 0xac, 0x88, 0x37, 0xdd, 0xf0, 0x17, 0xcd, 0x1a, 0x84, 0x7e, 0xc9, 0x06, 0x65, 0x13, 0xe6, 0x1a, 0xbe, 0xa8, 0xd9, 0x50, 0xc7, 0x83, 0xaf, 0x33, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0x5c, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0x25, 0xd1, 0xec, 0x06, 0x45, 0xa5, 0xf8, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0xd7, 0x2f, 0x1b, 0x3e, 0x84, 0x39, 0x58, 0x5f, 0x89, 0x7a, 0x50, 0x10, 0x8f, 0x6f, 0xb0, 0x24, 0x09, 0xb5, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x0d, 0xef, 0x05, 0x1d, 0x2c, 0xd4, 0x43, 0xdd, 0xa0, 0xa0, 0xc8, 0xdc, 0xe0, 0x18, 0x6e, 0x70, 0x78, 0x2f, 0x68, 0x35, 0x58, 0xc7, 0x8c, 0xba, 0xe1, 0x17, 0xa5, 0x0d, 0xd6, 0xb7, 0xa2, 0x6e, 0xf8, 0x8b, 0x66, 0x83, 0x63, 0x4b, 0xe9, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xe2, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x08, 0xb5, 0x1d, 0x1e, 0xfa, 0xd9, 0xe0, 0x68, 0xc3, 0xb7, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x2c, 0x79, 0xdf, 0x20, 0x05, 0x3c, 0xf5, 0xe0, 0xc4, 0xbf, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x32, 0x71, 0x37, 0x58, 0x18, 0x8c, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x48, 0x9e, 0x8c, 0xdd, 0x20, 0xf5, 0x34, 0xf6, 0x20, 0x15, 0x68, 0xac, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0xf2, 0x64, 0xec, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0x27, 0xd0, 0x86, 0xf7, 0x82, 0x36, 0x48, 0x27, 0x87, 0x6d, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x1a, 0xf0, 0x6e, 0xb0, 0xea, 0x41, 0x6e, 0x83, 0x94, 0x89, 0xd8, 0x3a, 0x9c, 0x62, 0x6b, 0x70, 0x54, 0x65, 0xdb, 0xf0, 0x8b, 0xd2, 0x86, 0x2f, 0x97, 0x36, 0x7c, 0x62, 0xb3, 0xc1, 0x92, 0x52, 0xb8, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0xd2, 0xb0, 0x95, 0x36, 0xbc, 0x17, 0xb4, 0x86, 0x1f, 0x61, 0x36, 0xd4, 0xfc, 0xb0, 0x6a, 0xc3, 0x83, 0x37, 0x1b, 0xde, 0xed, 0xd9, 0xf0, 0x29, 0xe0, 0x06, 0xeb, 0xab, 0x52, 0x0f, 0x6f, 0xa1, 0xcd, 0x1a, 0x24, 0x84, 0x54, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0xf5, 0xad, 0xa8, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0xd0, 0x2f, 0xd9, 0xa0, 0x6c, 0xc2, 0x3c, 0x38, 0xb4, 0x94, 0x6e, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x2e, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x12, 0x1f, 0xf7, 0x60, 0x59, 0x30, 0xea, 0x06, 0xc5, 0x8e, 0xe6, 0x1a, 0xfe, 0xcd, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0x55, 0x46, 0x3d, 0xbc, 0x85, 0xb6, 0xe1, 0xdd, 0x9e, 0x0d, 0x8a, 0x4c, 0xdc, 0x83, 0x65, 0xc1, 0xa8, 0x07, 0x8b, 0xfc, 0x51, 0x0f, 0xa7, 0x58, 0x87, 0x53, 0x6c, 0x16, 0x78, 0xb8, 0x77, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0x32, 0x78, 0xb8, 0xb7, 0x01, 0x3c, 0xe1, 0xd0, 0xde, 0xdc, 0xca, 0xe8, 0xd2, 0xc6, 0x40, 0xc4, 0xc2, 0xe6, 0xca, 0x36, 0x3c, 0x3e, 0x32, 0xf0, 0x70, 0xef, 0x86, 0x4f, 0x6c, 0xd6, 0xa0, 0x30, 0x54, 0x5d, 0xc3, 0xe7, 0x2e, 0x6b, 0xb8, 0xd3, 0x96, 0x01, 0xfc, 0xe1, 0xe4, 0xca, 0xcc, 0xd2, 0xf0, 0x40, 0xe6, 0xf2, 0xd8, 0xd8, 0xc2, 0xc4, 0xd8, 0xca, 0xe6, 0x02, 0x6f, 0x2e, 0x6d, 0xde, 0xf0, 0x23, 0xcc, 0xe0, 0xf4, 0xc1, 0x92, 0x77, 0x95, 0x0d, 0x9f, 0xbb, 0xac, 0xe1, 0x4e, 0x5b, 0x06, 0xf0, 0x9f, 0xab, 0x33, 0x33, 0x4b, 0xc3, 0x03, 0x99, 0xcb, 0x63, 0x63, 0x0b, 0x13, 0x63, 0x2b, 0x9b, 0x0b, 0x3c, 0xb2, 0x32, 0x7c, 0xc3, 0x8f, 0x30, 0x83, 0xd3, 0x07, 0x8b, 0xe1, 0x58, 0x36, 0x28, 0x59, 0xd8, 0x67, 0x99, 0x35, 0x58, 0xf0, 0xe0, 0xb2, 0xe1, 0xf1, 0x91, 0x0d, 0x16, 0x3c, 0xb8, 0x6c, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x1e, 0x9c, 0x37, 0x4f, 0x37, 0x7c, 0x62, 0xb3, 0xe1, 0x8b, 0xcf, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x8b, 0x66, 0x83, 0x43, 0xbb, 0xcc, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x06, 0xa9, 0xd8, 0xbf, 0x87, 0xf7, 0x82, 0x36, 0x28, 0x28, 0x32, 0x37, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0x36, 0x3c, 0xad, 0xb3, 0xe1, 0xdd, 0x9e, 0x0d, 0x56, 0xb6, 0xc4, 0x1d, 0xde, 0x42, 0xdb, 0xe0, 0x84, 0x71, 0x74, 0xf8, 0x70, 0x74, 0xd6, 0x60, 0x59, 0x8e, 0xcb, 0x86, 0xc7, 0x47, 0x36, 0x58, 0x96, 0xe3, 0xb2, 0xe1, 0x17, 0xa5, 0x0d, 0x5f, 0x2e, 0x6d, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x5f, 0x9c, 0x6d, 0x78, 0x5a, 0xe7, 0x20, 0x0d, 0xfb, 0x77, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0x44, 0xb3, 0x1b, 0x14, 0x95, 0xe2, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x3c, 0xb5, 0x07, 0x45, 0xcf, 0xfe, 0x41, 0x41, 0x29, 0xbe, 0x86, 0xb7, 0x75, 0x36, 0x58, 0x74, 0x9c, 0x5a, 0xab, 0xc1, 0x02, 0x2c, 0x97, 0x0d, 0x8f, 0x8f, 0x6c, 0xb0, 0x00, 0xcb, 0x65, 0xc3, 0x2f, 0x4a, 0x1b, 0x2c, 0xc8, 0x4e, 0xdd, 0xf0, 0x89, 0xcd, 0x86, 0x2f, 0x3e, 0x37, 0x7c, 0x85, 0xb3, 0xe1, 0x2f, 0x9a, 0x0d, 0x0e, 0xed, 0x32, 0x1b, 0x3e, 0xc8, 0xd9, 0x60, 0x11, 0x7a, 0xea, 0x06, 0x05, 0x45, 0xe6, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x86, 0xa7, 0x75, 0x36, 0xbc, 0xdb, 0xb3, 0xc1, 0xe2, 0x7f, 0xb8, 0xc3, 0x5b, 0x68, 0x07, 0x8b, 0xf4, 0x53, 0x57, 0x83, 0x54, 0x31, 0xbf, 0x0d, 0x8f, 0x8f, 0x6c, 0x90, 0x2a, 0xe6, 0xb7, 0xe1, 0x17, 0xa5, 0x0d, 0x5f, 0x2e, 0x6d, 0x50, 0xf0, 0x61, 0x6e, 0xb0, 0x3a, 0x41, 0x75, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0x44, 0xb3, 0x1b, 0x14, 0x95, 0xe2, 0x1b, 0xac, 0xb5, 0x50, 0x5d, 0xc3, 0xdb, 0x3a, 0x1b, 0x2c, 0x9d, 0x4d, 0xad, 0xc3, 0x29, 0x56, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x16, 0xc0, 0x2f, 0x8c, 0xee, 0xad, 0xad, 0x05, 0x2e, 0x4c, 0x6e, 0x2e, 0xcd, 0xed, 0x5c, 0x06, 0xf0, 0xa7, 0x61, 0xd3, 0x01, 0x09, 0xa3, 0x7b, 0x6b, 0x03, 0x81, 0x0b, 0x93, 0x9b, 0x4b, 0x73, 0x3b, 0x5b, 0xe0, 0xe7, 0xde, 0x0d, 0xca, 0x2e, 0xd9, 0x81, 0x9f, 0x7b, 0x37, 0xdc, 0x51, 0xb3, 0x41, 0xc9, 0xc2, 0x3e, 0xcb, 0x2c, 0xc0, 0x2b, 0xf7, 0x96, 0xc7, 0xd6, 0x22, 0xe7, 0x6e, 0x50, 0x90, 0xc6, 0x0e, 0x78, 0x6d, 0x6f, 0xef, 0x1a, 0x7e, 0x51, 0xda, 0x60, 0x11, 0x41, 0xdd, 0x06, 0x85, 0xa1, 0xea, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0xa1, 0xe7, 0xe4, 0xe1, 0xa1, 0x9f, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0x7f, 0x6e, 0x2c, 0xcc, 0x6d, 0xc3, 0xd3, 0x3a, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xa5, 0xaa, 0xa1, 0x1b, 0xa4, 0xbc, 0x56, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0x26, 0x93, 0xae, 0xe1, 0x41, 0xc9, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xcd, 0xa5, 0x91, 0x6d, 0x78, 0x5b, 0x67, 0xe0, 0xc3, 0xc4, 0xaa, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x1e, 0x18, 0x74, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xa2, 0x22, 0x74, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x02, 0xa5, 0xf4, 0x20, 0x95, 0x94, 0x69, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x1e, 0x18, 0x74, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x04, 0x27, 0x74, 0x83, 0x02, 0x36, 0xff, 0x60, 0xb5, 0x51, 0xe8, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x05, 0x4a, 0xe9, 0x41, 0x7a, 0x0a, 0x54, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x6b, 0x78, 0x50, 0x72, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x64, 0x69, 0x6d, 0x1b, 0xde, 0xd6, 0x19, 0xf8, 0xb0, 0xb3, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x7a, 0x60, 0xd0, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0xda, 0x71, 0xd0, 0x0d, 0xd6, 0xbe, 0x90, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0x55, 0x82, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0x56, 0x29, 0xaa, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x98, 0x4c, 0x7a, 0xb0, 0x04, 0x83, 0xb4, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x2b, 0x50, 0x4a, 0x37, 0x38, 0xd4, 0xee, 0xd5, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x3d, 0x30, 0xe8, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0xed, 0x38, 0xe8, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0xc1, 0x46, 0xe8, 0x1a, 0x7e, 0x84, 0x19, 0x9c, 0x0e, 0x2f, 0x5b, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0xa8, 0x08, 0xdd, 0x60, 0xc1, 0xb0, 0xea, 0x06, 0x6b, 0xb4, 0x55, 0x6b, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x02, 0xa5, 0x74, 0x0d, 0xbf, 0xb8, 0x6c, 0x50, 0xe4, 0xb4, 0x1e, 0x14, 0x4e, 0xb2, 0x55, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x15, 0x28, 0xa5, 0x1b, 0x24, 0x96, 0x54, 0xb5, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x57, 0x30, 0xba, 0xc1, 0x82, 0x61, 0xd5, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xc2, 0x87, 0xd1, 0x35, 0xfc, 0x08, 0x33, 0x38, 0x7d, 0xb0, 0x36, 0xe1, 0xa5, 0x5a, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0xa8, 0x08, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x40, 0x29, 0xdd, 0xe0, 0xc8, 0xac, 0xda, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x09, 0x4e, 0xe8, 0x06, 0x05, 0x45, 0xe6, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0xe1, 0xc3, 0xe8, 0x1a, 0x7e, 0x84, 0x19, 0x9c, 0x3e, 0x58, 0x6c, 0xed, 0x52, 0xb5, 0x02, 0x3e, 0x5c, 0x99, 0x1c, 0xb9, 0xc1, 0x72, 0x48, 0xa6, 0xd9, 0x60, 0x85, 0x50, 0xd3, 0x06, 0xeb, 0x81, 0x41, 0xd7, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0x81, 0x8b, 0x4e, 0x1b, 0x24, 0xa5, 0x05, 0xaf, 0xe1, 0x6d, 0x9d, 0x01, 0x5f, 0xaf, 0x6e, 0x8e, 0xae, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x0a, 0xb4, 0xd5, 0x35, 0xbc, 0x71, 0x77, 0x90, 0x32, 0x1b, 0xbc, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xa8, 0x49, 0xba, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0xc8, 0x20, 0xba, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x51, 0x11, 0xba, 0xc1, 0x42, 0x06, 0xd1, 0x83, 0x65, 0x0c, 0xa2, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0xd6, 0xb5, 0x92, 0x6e, 0xb0, 0x90, 0x41, 0x74, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x6e, 0x75, 0x73, 0x6b, 0x55, 0x87, 0x53, 0x6c, 0x01, 0xff, 0x0e, 0xad, 0xcc, 0xdd, 0x60, 0x39, 0x24, 0xd3, 0x6c, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x6b, 0x50, 0x74, 0x1a, 0x6f, 0xb0, 0xac, 0x12, 0x74, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0x5f, 0x2e, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xc5, 0xc3, 0x07, 0xab, 0x1d, 0x9c, 0x14, 0xb1, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x8a, 0x8a, 0xd0, 0x0d, 0xd6, 0x68, 0xab, 0x6e, 0xb0, 0x60, 0x58, 0xb5, 0x35, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0x78, 0xda, 0xde, 0xdc, 0xe8, 0xd0, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0xda, 0x71, 0xd0, 0x0d, 0xd6, 0xbe, 0x90, 0xae, 0xe1, 0x41, 0xc9, 0x0d, 0xd2, 0x40, 0x3f, 0x0f, 0x56, 0x80, 0xab, 0xb6, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x41, 0xda, 0x26, 0xe7, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x3b, 0x0e, 0xba, 0xc1, 0xda, 0x17, 0xd2, 0x35, 0x3c, 0x28, 0xb9, 0x86, 0xb7, 0x75, 0x06, 0x3c, 0xb2, 0x34, 0xb8, 0x83, 0x15, 0xe0, 0xaa, 0xad, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x03, 0x83, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x8e, 0x83, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x56, 0x54, 0x84, 0x6e, 0xb0, 0xf6, 0x85, 0x74, 0x83, 0xb5, 0x2f, 0xa4, 0xad, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x56, 0x54, 0x84, 0xae, 0xe1, 0x41, 0xc9, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0x91, 0xd5, 0xb5, 0x1d, 0xac, 0x00, 0x57, 0x5d, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x1d, 0x07, 0xdd, 0x60, 0xed, 0x0b, 0xe9, 0x06, 0xab, 0xf3, 0x57, 0xdb, 0x60, 0x79, 0x00, 0xeb, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x3d, 0x30, 0xe8, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0xed, 0x38, 0xe8, 0x06, 0xab, 0xd8, 0x57, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x6b, 0x66, 0x43, 0x37, 0x58, 0xfb, 0x42, 0xba, 0x86, 0x07, 0x25, 0xd7, 0xf0, 0xb6, 0xce, 0x80, 0x17, 0x97, 0x86, 0x77, 0xb0, 0x06, 0x56, 0xb5, 0x0e, 0x96, 0x98, 0x94, 0xd6, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x05, 0x4a, 0xe9, 0x1a, 0x7e, 0x71, 0xd9, 0xf0, 0xe0, 0xcd, 0x86, 0x07, 0x6f, 0x36, 0x3c, 0x78, 0x73, 0x50, 0xd6, 0x79, 0x56, 0x2b, 0xc0, 0x2b, 0xf7, 0x96, 0xc7, 0xd6, 0x22, 0x17, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0x65, 0x95, 0xa0, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xc4, 0x5e, 0xc5, 0xd6, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x6b, 0xc7, 0x41, 0xd7, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x2b, 0x2a, 0x42, 0x37, 0x48, 0xa3, 0x3d, 0xda, 0x20, 0x8d, 0xf6, 0x68, 0x83, 0x34, 0xda, 0xa3, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xcb, 0x2a, 0x41, 0xd7, 0xf0, 0xb6, 0xce, 0x00, 0x1e, 0x72, 0x6f, 0x79, 0x6c, 0x2d, 0x63, 0x65, 0x6c, 0x6c, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xf5, 0x83, 0xaa, 0x55, 0x2b, 0xe0, 0xd3, 0xdd, 0xa5, 0x91, 0x1b, 0x2c, 0x87, 0x64, 0x9a, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x1e, 0x18, 0x74, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x56, 0xa0, 0xad, 0xae, 0xe1, 0x8d, 0xbb, 0x83, 0x44, 0xd0, 0xe0, 0x0d, 0x8a, 0x4e, 0xe3, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xcf, 0x95, 0x85, 0xc9, 0xad, 0xe1, 0x17, 0xa5, 0x0d, 0x5f, 0x2e, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0x0a, 0x1d, 0xa8, 0x35, 0x38, 0x0f, 0x76, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0x30, 0xee, 0xae, 0x3b, 0x3c, 0xf4, 0xd3, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x3b, 0x0e, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xb0, 0x11, 0x7a, 0xb0, 0xee, 0x47, 0x6e, 0x0d, 0x0f, 0x4a, 0xae, 0xe1, 0x6d, 0x9d, 0x01, 0xcf, 0xae, 0xae, 0xed, 0x60, 0x05, 0xb8, 0x6a, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x15, 0x68, 0xab, 0x1b, 0x24, 0xa5, 0x05, 0xaf, 0xe1, 0x6d, 0x9d, 0x01, 0x7f, 0x4c, 0xae, 0x4e, 0xac, 0x56, 0x83, 0x05, 0x76, 0x32, 0x1b, 0x1e, 0x1f, 0xd9, 0x60, 0x81, 0x9d, 0xcc, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xe1, 0x41, 0x5a, 0x3b, 0xf0, 0x06, 0xa7, 0x86, 0xa3, 0x0d, 0x4f, 0xeb, 0x6c, 0x50, 0x74, 0x1a, 0xaf, 0xe1, 0x6d, 0x9d, 0x01, 0x7f, 0xcd, 0xad, 0xac, 0x6c, 0x0d, 0x0a, 0xc1, 0xd4, 0x83, 0xf4, 0xe3, 0xe0, 0x0d, 0xce, 0x83, 0x1d, 0x1b, 0x2c, 0x87, 0x64, 0x9a, 0x0d, 0x4e, 0xec, 0x37, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xa5, 0xe7, 0x3b, 0x6d, 0x70, 0x6c, 0x73, 0x5c, 0xc3, 0xdb, 0x3a, 0x03, 0xfe, 0x1c, 0x5d, 0x19, 0xdd, 0x06, 0xc7, 0x36, 0xc7, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0x99, 0x70, 0xb3, 0x0d, 0x8e, 0xae, 0x83, 0x6b, 0x50, 0x18, 0xaa, 0xae, 0xe1, 0x17, 0x97, 0x83, 0xf5, 0x39, 0xa5, 0x1b, 0xde, 0xed, 0xd9, 0x60, 0x59, 0x25, 0xe8, 0x1a, 0x7e, 0x51, 0xda, 0x60, 0x49, 0xe0, 0xdc, 0x86, 0x5f, 0x5c, 0x36, 0x48, 0x4a, 0x0b, 0xde, 0x60, 0x5d, 0x76, 0xdd, 0xe1, 0xa1, 0x9f, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0x52, 0xaf, 0xd0, 0x5a, 0x83, 0xc2, 0x50, 0x75, 0x0d, 0xbf, 0xb8, 0x1c, 0xac, 0xc6, 0x0a, 0xdd, 0xf0, 0x6e, 0xcf, 0x06, 0x2b, 0xd0, 0x56, 0x37, 0x48, 0x4a, 0x0b, 0x5e, 0xc3, 0xdb, 0x3a, 0x03, 0xbe, 0x58, 0xda, 0xdc, 0x5a, 0x6b, 0x50, 0x18, 0xaa, 0x6e, 0xb0, 0x66, 0xe3, 0x6d, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x40, 0x5b, 0xdd, 0x20, 0x29, 0x2d, 0x78, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x74, 0x61, 0x73, 0x68, 0xad, 0x41, 0x61, 0xa8, 0xba, 0xc1, 0x22, 0x3c, 0xb9, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x76, 0x1c, 0x74, 0x83, 0xb5, 0x2f, 0xa4, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xb5, 0x5c, 0xab, 0xb5, 0x06, 0x85, 0xa1, 0xea, 0x06, 0xeb, 0xd6, 0xe1, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0xda, 0x71, 0xd0, 0x0d, 0xd2, 0x68, 0x8f, 0xd6, 0x60, 0x85, 0x50, 0xd3, 0x06, 0xeb, 0x81, 0x41, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0xeb, 0xc4, 0x58, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x40, 0x29, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0x24, 0xa5, 0x05, 0x6f, 0x70, 0x64, 0x56, 0x3d, 0x28, 0x9c, 0x64, 0xab, 0x56, 0x83, 0xb5, 0x07, 0xad, 0x1b, 0x2c, 0x87, 0x64, 0x9a, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x1e, 0x18, 0x74, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x76, 0x1c, 0x74, 0x83, 0xf5, 0x91, 0xac, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xf5, 0xc0, 0xa0, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x15, 0x68, 0xab, 0x6b, 0x78, 0xe3, 0xee, 0xe0, 0x6c, 0xb0, 0xba, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x3b, 0x0e, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xb0, 0x11, 0xba, 0xc1, 0x72, 0xdc, 0xb8, 0xd6, 0xf0, 0xa0, 0xe4, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xc4, 0xc2, 0xf2, 0x0e, 0x56, 0x80, 0xab, 0xd6, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x05, 0xda, 0xea, 0x1a, 0xde, 0xb8, 0x3b, 0x38, 0xd2, 0xac, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x8e, 0x83, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0x6c, 0x84, 0x6e, 0xb0, 0x02, 0xed, 0xb0, 0x35, 0x3c, 0x28, 0xb9, 0x86, 0xb7, 0x75, 0x06, 0x3c, 0xb3, 0xb4, 0xb6, 0x83, 0x15, 0xe0, 0xaa, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x81, 0xb6, 0xba, 0x86, 0x37, 0xee, 0x0e, 0x8e, 0x83, 0xab, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x05, 0x1b, 0xa1, 0x1b, 0x2c, 0x3d, 0x4c, 0xec, 0x60, 0xbd, 0xc6, 0x6a, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x15, 0x68, 0xab, 0x6b, 0x78, 0xe3, 0xee, 0xe0, 0x14, 0xbb, 0xba, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x3b, 0x0e, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xb0, 0x11, 0xba, 0xc1, 0x1a, 0xf4, 0xb7, 0xd6, 0xf0, 0xa0, 0xe4, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0x25, 0x67, 0x68, 0x07, 0x2b, 0xc0, 0x55, 0x6b, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x02, 0x6d, 0x75, 0x0d, 0x6f, 0xdc, 0x1d, 0x1c, 0xa7, 0x57, 0xd7, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x6b, 0xc7, 0x41, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x0b, 0x36, 0x42, 0x37, 0x58, 0x3e, 0xef, 0xd6, 0x1a, 0x1e, 0x94, 0x5c, 0xc3, 0xdb, 0x3a, 0x03, 0x9e, 0x5d, 0x9a, 0xde, 0xc1, 0x0a, 0x70, 0xd5, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x40, 0x5b, 0x5d, 0xc3, 0x1b, 0x77, 0x07, 0xa7, 0x00, 0xd6, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0xda, 0x71, 0xd0, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x82, 0x8d, 0xd0, 0x0d, 0x16, 0xc4, 0x2b, 0xb6, 0x86, 0x07, 0x25, 0xd7, 0xf0, 0xb6, 0xce, 0x80, 0x77, 0x97, 0xa6, 0x77, 0xb0, 0x02, 0x5c, 0xb5, 0x6a, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x02, 0x6d, 0x75, 0x83, 0x44, 0xb8, 0xe0, 0x35, 0x3c, 0x28, 0xb9, 0x86, 0xb7, 0x75, 0x36, 0x58, 0x61, 0x69, 0xda, 0xc1, 0x0a, 0x70, 0xd5, 0x3a, 0x9c, 0x62, 0x0b, 0xf0, 0xca, 0xbd, 0xe5, 0xb1, 0xb5, 0xc8, 0xa1, 0x1b, 0xde, 0xed, 0xd9, 0x60, 0x59, 0x25, 0xe8, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0xe9, 0x86, 0xaf, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0xda, 0x71, 0xd0, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x8a, 0x8a, 0xd0, 0x83, 0xc5, 0x4d, 0xac, 0x07, 0x4b, 0xa4, 0x58, 0x5b, 0x01, 0x5e, 0xb9, 0xb7, 0x3c, 0xb6, 0x16, 0x39, 0x72, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xab, 0x04, 0x5d, 0xc3, 0xdb, 0x3a, 0x1b, 0x24, 0x30, 0x03, 0xb6, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x3b, 0x0e, 0xba, 0x41, 0x1a, 0xed, 0xd1, 0xc1, 0x12, 0x29, 0xd6, 0x66, 0x0d, 0x96, 0xa0, 0xb2, 0x6e, 0xb0, 0x1c, 0x92, 0x69, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x7a, 0x60, 0xd0, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xb2, 0x4a, 0xd0, 0x35, 0xfc, 0xa2, 0xb4, 0x41, 0x92, 0xd6, 0xe8, 0x86, 0xbf, 0x68, 0x36, 0x48, 0x7e, 0x0c, 0xde, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xb8, 0x3b, 0x38, 0xbd, 0xb5, 0xae, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x7a, 0xcd, 0x68, 0x6b, 0x78, 0x5b, 0xe7, 0x20, 0x3d, 0x70, 0xb4, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x4b, 0x31, 0x57, 0x6b, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x96, 0x55, 0x82, 0xae, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x0f, 0x37, 0x08, 0xfd, 0x92, 0x0d, 0x42, 0xca, 0x64, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xe1, 0x0d, 0x82, 0xcd, 0x74, 0x83, 0x73, 0x6e, 0xca, 0x06, 0x4b, 0xb9, 0x0c, 0xd7, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0x5d, 0x78, 0xbb, 0xc1, 0x92, 0x98, 0xc0, 0x0e, 0xcf, 0xd4, 0x75, 0x50, 0x74, 0xd9, 0x6e, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x72, 0x6f, 0xf0, 0x86, 0xbf, 0x68, 0x36, 0x38, 0xa2, 0xa4, 0x6e, 0xf8, 0xc5, 0x65, 0xc3, 0x83, 0x37, 0x1b, 0x1e, 0xbc, 0xd9, 0xf0, 0xe0, 0xcd, 0xc1, 0xb9, 0xc5, 0x61, 0xc3, 0x57, 0x38, 0x1b, 0xfe, 0xa2, 0xd9, 0x20, 0xf9, 0x31, 0x78, 0x83, 0x12, 0x1e, 0x73, 0xc3, 0x83, 0x3b, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xdc, 0x1d, 0x1c, 0x3a, 0x5b, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xe9, 0xe5, 0xa3, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xd5, 0x86, 0xae, 0xd5, 0x06, 0x41, 0x7a, 0xba, 0xe0, 0xf0, 0x41, 0x51, 0x1c, 0xbf, 0x06, 0xe7, 0xdc, 0x94, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x83, 0x02, 0x41, 0x7e, 0x05, 0x27, 0x0f, 0x96, 0xa7, 0xba, 0x6e, 0x78, 0xb7, 0x67, 0xc3, 0x9f, 0x40, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xf8, 0xa0, 0x28, 0x8e, 0x5f, 0xc3, 0xdb, 0x3a, 0x07, 0x4b, 0x71, 0x5d, 0x6b, 0x0d, 0x96, 0x72, 0x19, 0x6e, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x1b, 0x14, 0x08, 0xf2, 0x2b, 0x38, 0x7a, 0xb0, 0x3c, 0xd5, 0x75, 0xc3, 0xbb, 0x3d, 0x1b, 0xfe, 0x04, 0xda, 0x60, 0xcd, 0xaf, 0xeb, 0x1a, 0xde, 0xd6, 0x39, 0x58, 0xf5, 0xec, 0x5a, 0x6b, 0xb0, 0x28, 0xcf, 0x75, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0xdb, 0xa0, 0x40, 0x90, 0x5f, 0xc1, 0xdb, 0x83, 0xe5, 0xa9, 0xae, 0x1b, 0xde, 0xed, 0xd9, 0xf0, 0x27, 0xd0, 0x06, 0x6b, 0x7e, 0x5d, 0xd7, 0xf0, 0xb6, 0xce, 0xc1, 0xc2, 0x71, 0xd7, 0x5a, 0x83, 0x25, 0x31, 0x81, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x06, 0x05, 0x82, 0xfc, 0x0a, 0x3e, 0x1f, 0x2c, 0x4f, 0x75, 0xdd, 0xf0, 0x6e, 0xcf, 0x86, 0x3f, 0x81, 0x36, 0x58, 0xf3, 0xeb, 0xba, 0x86, 0xb7, 0x75, 0x0e, 0xd6, 0xde, 0xbb, 0x56, 0x1b, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x45, 0x45, 0xe8, 0x1a, 0x14, 0x9d, 0xc6, 0x1b, 0xac, 0x99, 0x0d, 0xdd, 0x60, 0xed, 0x0b, 0xe9, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x0f, 0x0c, 0xba, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x3b, 0x0e, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xb0, 0x11, 0xba, 0xc1, 0x32, 0xe3, 0xbf, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x2b, 0xd0, 0x56, 0x37, 0x48, 0x27, 0x65, 0x3a, 0x58, 0xaf, 0xb1, 0xda, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0xed, 0x38, 0xe8, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0xc1, 0x46, 0xe8, 0x06, 0xab, 0xf9, 0xfe, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x40, 0x5b, 0x5d, 0xc3, 0x1b, 0x77, 0x07, 0x4b, 0xbc, 0x0c, 0x0f, 0xd6, 0x6b, 0xac, 0xb6, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x3b, 0x0e, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xb0, 0x11, 0xba, 0xc1, 0xa2, 0x99, 0xbf, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x2b, 0xd0, 0x56, 0xd7, 0xf0, 0xc6, 0xdd, 0xc1, 0x62, 0x3d, 0xd7, 0x83, 0xf5, 0x1a, 0xab, 0xad, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x8e, 0x83, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0x6c, 0x84, 0x6e, 0xb0, 0x04, 0xd5, 0xaf, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x0a, 0xb4, 0xd5, 0x35, 0xbc, 0x71, 0x77, 0xb0, 0x54, 0x26, 0xf0, 0x60, 0xbd, 0xc6, 0x6a, 0x1d, 0xac, 0x67, 0x60, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x40, 0x5b, 0x5d, 0xc3, 0x1b, 0x77, 0x07, 0x67, 0x51, 0xd7, 0x35, 0x3c, 0x28, 0xb9, 0x86, 0xb7, 0x75, 0x06, 0x3c, 0xb3, 0x32, 0xb2, 0x83, 0x15, 0xe0, 0xaa, 0xad, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x8e, 0x83, 0x6e, 0xb0, 0xf6, 0x85, 0x74, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x02, 0x6d, 0x75, 0x83, 0xb5, 0x54, 0x76, 0x6b, 0x78, 0x50, 0x72, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x75, 0x72, 0x73, 0x07, 0x6b, 0x60, 0x55, 0x6b, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x76, 0x1c, 0x74, 0x83, 0x34, 0xda, 0xa3, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x0a, 0xb4, 0xd5, 0x0d, 0xd6, 0xee, 0xd6, 0xad, 0xe1, 0x41, 0xc9, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xd5, 0xc9, 0xe1, 0x1d, 0xac, 0x81, 0x55, 0xad, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0xda, 0x71, 0xd0, 0x0d, 0x16, 0x0b, 0x85, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x56, 0xa0, 0xad, 0xae, 0xe1, 0x8d, 0xbb, 0x83, 0x35, 0x35, 0x7b, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x65, 0x95, 0xa0, 0x1b, 0xac, 0x36, 0x90, 0x3b, 0x58, 0x9b, 0xf9, 0x5a, 0x1d, 0x4e, 0xb1, 0x05, 0x7c, 0xb9, 0xb7, 0x3c, 0x76, 0x83, 0xe5, 0x90, 0x4c, 0xb3, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x03, 0x83, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x56, 0xa0, 0xad, 0xae, 0xe1, 0x8d, 0xbb, 0x83, 0xf3, 0xd3, 0xeb, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0x15, 0x82, 0x6b, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x56, 0xa0, 0xad, 0xae, 0xe1, 0x8d, 0xbb, 0x83, 0x63, 0xdf, 0xeb, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0x9d, 0x0d, 0x6b, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x56, 0xa0, 0xad, 0xae, 0xe1, 0x8d, 0xbb, 0x83, 0x83, 0xc8, 0xeb, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0x89, 0x88, 0x6b, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x56, 0xa0, 0xad, 0xae, 0xe1, 0x8d, 0xbb, 0x83, 0x13, 0xbd, 0xeb, 0x1a, 0xde, 0xd6, 0x19, 0xe0, 0x95, 0x7b, 0xcb, 0x63, 0x6b, 0x91, 0x9b, 0xab, 0xc3, 0x29, 0xb6, 0x06, 0xab, 0x27, 0x57, 0x37, 0x58, 0x0e, 0xc9, 0x34, 0x1b, 0x24, 0x19, 0x10, 0x6e, 0xb0, 0xc4, 0x8e, 0x75, 0x0d, 0xbf, 0x28, 0x6d, 0xb0, 0x24, 0x70, 0x6e, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x97, 0xab, 0x9b, 0x43, 0xdb, 0xf0, 0xb4, 0xce, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0x81, 0x9d, 0x4c, 0xad, 0xe1, 0x6d, 0x9d, 0x0d, 0xd6, 0x3c, 0xcb, 0xb5, 0x86, 0x07, 0x25, 0xd7, 0xf0, 0xb6, 0xce, 0x80, 0x57, 0x27, 0x47, 0x77, 0xb0, 0x06, 0x56, 0xb5, 0xd5, 0x60, 0xb5, 0x45, 0xeb, 0x06, 0xcb, 0x21, 0x99, 0x66, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xc0, 0x73, 0x2b, 0x3b, 0x37, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0x29, 0x3a, 0x51, 0x87, 0x0f, 0x56, 0xd7, 0xf0, 0xe7, 0xd2, 0x80, 0xd7, 0xf6, 0xc6, 0x1e, 0x24, 0x3f, 0x06, 0xb7, 0xe1, 0x2f, 0x9a, 0x0d, 0x92, 0x1f, 0x83, 0x37, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x6f, 0xce, 0x06, 0xab, 0x5c, 0x17, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x91, 0x89, 0xbb, 0x41, 0x51, 0x29, 0xbe, 0x86, 0xb7, 0x75, 0x06, 0x87, 0x37, 0x58, 0x31, 0x03, 0x5b, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0xf5, 0xb6, 0x1b, 0x14, 0x95, 0xe2, 0x1b, 0x2c, 0x41, 0xf5, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0xf8, 0xb8, 0x07, 0xab, 0x89, 0x60, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x24, 0x37, 0xc8, 0x6d, 0x90, 0x68, 0x13, 0xb5, 0x86, 0xb7, 0x75, 0x06, 0x8f, 0x0f, 0x96, 0x26, 0xc1, 0xd6, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x3b, 0x0e, 0xba, 0xc1, 0x62, 0xa1, 0xd0, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x7a, 0x60, 0xd0, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xb2, 0x4a, 0xd0, 0x35, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x0f, 0x0f, 0x92, 0x1f, 0x83, 0x37, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x58, 0x60, 0x02, 0xdb, 0x06, 0x05, 0x6c, 0xfe, 0xe1, 0xa1, 0x9f, 0x83, 0xc5, 0x05, 0xad, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x1b, 0x2c, 0x16, 0x0a, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xab, 0x04, 0x5d, 0xc3, 0x2f, 0x4a, 0x1b, 0xac, 0xbf, 0x83, 0xdd, 0xf0, 0x6e, 0xcf, 0x06, 0xeb, 0xfc, 0x60, 0x0f, 0xd2, 0xaa, 0x9c, 0x0e, 0x16, 0x17, 0xb4, 0x56, 0x87, 0x53, 0x6c, 0x0d, 0x96, 0xc0, 0xad, 0x6e, 0xb0, 0x1c, 0x92, 0x69, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x7a, 0x60, 0xd0, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x0a, 0xb4, 0xd5, 0x35, 0xbc, 0x71, 0x77, 0x70, 0xbc, 0x70, 0x5d, 0xc3, 0x83, 0x92, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x13, 0x4b, 0x83, 0x3b, 0x58, 0x01, 0xae, 0xda, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x05, 0xda, 0xea, 0x1a, 0xde, 0xb8, 0x3b, 0x38, 0xa7, 0xb7, 0xae, 0xe1, 0x41, 0xc9, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xb1, 0xa5, 0xc1, 0x1d, 0xac, 0x00, 0x57, 0x6d, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0x58, 0xf7, 0xb5, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x0a, 0xb4, 0xd5, 0x0d, 0x52, 0x9c, 0x9c, 0xd6, 0x60, 0x85, 0x50, 0xd3, 0x06, 0xeb, 0x81, 0x41, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x4b, 0x70, 0x42, 0x37, 0x28, 0x72, 0x5a, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x0b, 0x36, 0x42, 0x37, 0x58, 0xc1, 0x01, 0x58, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x25, 0x38, 0xa1, 0x1b, 0x14, 0xb0, 0xf9, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x05, 0x1b, 0xa1, 0x1b, 0xac, 0x83, 0x02, 0xac, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x40, 0x5b, 0x5d, 0xc3, 0x1b, 0x77, 0x07, 0xc7, 0x65, 0xd7, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0xda, 0x71, 0xd0, 0x0d, 0xd2, 0x68, 0x8f, 0xd6, 0xf0, 0xa0, 0xe4, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xcc, 0xca, 0xe2, 0x0e, 0x56, 0x80, 0xab, 0x56, 0x87, 0x53, 0x6c, 0x0d, 0x56, 0x60, 0xb1, 0x6e, 0xf8, 0x45, 0x69, 0x0d, 0xff, 0xce, 0x2f, 0xf0, 0x72, 0x6e, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0xd4, 0x6b, 0xa3, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0x28, 0x26, 0x31, 0xd7, 0xf0, 0xb9, 0xd2, 0x06, 0xe7, 0xdc, 0x94, 0x83, 0x43, 0x4c, 0xc7, 0xc1, 0x31, 0xe6, 0x6c, 0x83, 0xd3, 0xca, 0xd9, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xe8, 0x86, 0x77, 0x7b, 0x36, 0x48, 0x2a, 0x87, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x24, 0x37, 0xc8, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xcd, 0xc3, 0xe7, 0x41, 0x07, 0x85, 0x0f, 0xea, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x51, 0xfe, 0x69, 0x0d, 0x6f, 0xeb, 0x0c, 0x4e, 0x1e, 0x3e, 0x0f, 0xaa, 0x0d, 0xbf, 0xb8, 0x6c, 0x90, 0x4e, 0xca, 0xb4, 0xe1, 0x69, 0x9d, 0x0d, 0x0e, 0xca, 0x74, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x9f, 0x40, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xe0, 0xa9, 0x5d, 0xc3, 0xdb, 0x3a, 0x83, 0x8f, 0x87, 0xcf, 0x83, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x29, 0xb8, 0x69, 0x1b, 0xa4, 0xbc, 0x56, 0x1d, 0x2c, 0xcb, 0x89, 0xed, 0x20, 0x59, 0x34, 0xaa, 0x59, 0x83, 0xe5, 0xf1, 0xaf, 0x1b, 0xde, 0xed, 0xd9, 0x60, 0x59, 0x25, 0xe8, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0xe1, 0x88, 0xae, 0x83, 0x25, 0x52, 0xac, 0x87, 0x53, 0xac, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0x02, 0xf0, 0x05, 0x17, 0x26, 0x37, 0x97, 0xe6, 0x76, 0xd6, 0xf2, 0x56, 0x47, 0x37, 0x97, 0x46, 0x56, 0xd6, 0x32, 0x16, 0xc6, 0xc6, 0x56, 0x26, 0x2f, 0x03, 0xd0, 0x4b, 0x73, 0xa6, 0x03, 0x02, 0x17, 0x26, 0x37, 0x97, 0xe6, 0x76, 0x06, 0x82, 0xf2, 0x56, 0x47, 0x37, 0x97, 0x46, 0x56, 0x06, 0x32, 0x16, 0xc6, 0xc6, 0x56, 0x26, 0x97, 0x5a, 0xc0, 0x97, 0xab, 0x9b, 0xa3, 0x37, 0x28, 0x94, 0x3b, 0xd7, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xd8, 0xde, 0xe6, 0x83, 0x93, 0x9e, 0xe8, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xe6, 0xc2, 0xc4, 0x83, 0xa5, 0xa9, 0xa2, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x6c, 0xb0, 0x2c, 0x68, 0x74, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x1c, 0xce, 0x91, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0xf2, 0xcb, 0xd8, 0x5a, 0xc3, 0x2f, 0x2e, 0x1b, 0x94, 0x42, 0xe4, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xe5, 0x91, 0xb1, 0xd5, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0x4b, 0xdd, 0x46, 0x37, 0x28, 0x28, 0x32, 0x37, 0xfc, 0xe2, 0xb2, 0x41, 0x41, 0x91, 0xb9, 0x86, 0xcf, 0x5d, 0x06, 0xaf, 0x0f, 0x56, 0x16, 0x9f, 0xb6, 0x1a, 0x2c, 0xdd, 0x54, 0xdd, 0xa0, 0x50, 0xee, 0xdc, 0x60, 0x91, 0x63, 0xec, 0x86, 0x4f, 0x6c, 0x36, 0x58, 0xe0, 0x19, 0xbb, 0x41, 0x09, 0x8f, 0xb9, 0xc1, 0x52, 0xb7, 0xd1, 0x35, 0xbc, 0x65, 0xb7, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x80, 0x3f, 0x87, 0xf6, 0x76, 0xb7, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0xac, 0xf4, 0xba, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x0f, 0x16, 0x63, 0xde, 0xb4, 0x86, 0xb7, 0x75, 0x06, 0x87, 0x0f, 0x56, 0x71, 0x8d, 0x6e, 0xb0, 0xf0, 0x6c, 0xf4, 0xa0, 0xac, 0xf3, 0xdc, 0xf0, 0x96, 0xdd, 0x1a, 0x9e, 0xb8, 0xdb, 0xf0, 0x2c, 0xde, 0xc1, 0x3a, 0xd6, 0x9b, 0x83, 0xf0, 0x54, 0x3d, 0x58, 0x59, 0x7c, 0xba, 0x1a, 0x2c, 0x44, 0x80, 0xdd, 0xa0, 0x50, 0xee, 0x5c, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x73, 0x0b, 0x33, 0x0f, 0x3f, 0xd4, 0x1c, 0xac, 0xaf, 0x8c, 0xdd, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0x61, 0x62, 0x6c, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x65, 0xd8, 0x6f, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x05, 0x00, 0xb2, 0x75, 0xb0, 0x10, 0x35, 0xf6, 0x70, 0x8a, 0x2d, 0xe0, 0xcb, 0x85, 0xcd, 0xa1, 0x1b, 0x14, 0xca, 0x9d, 0x1b, 0x2c, 0xe3, 0x8f, 0xdd, 0xf0, 0x6e, 0xcf, 0x06, 0xab, 0x33, 0x55, 0x0f, 0x56, 0x2e, 0xc8, 0x1e, 0x4e, 0xb1, 0x35, 0x28, 0xfd, 0x01, 0x37, 0x28, 0x94, 0x3b, 0x37, 0x58, 0xe4, 0x18, 0xbb, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0xb2, 0xc1, 0xb2, 0xa0, 0xd1, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x14, 0x35, 0xf6, 0x60, 0x31, 0x6b, 0xec, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x06, 0x65, 0x61, 0xf1, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xe8, 0x39, 0x79, 0xb0, 0x12, 0x36, 0x76, 0x83, 0x62, 0x47, 0x73, 0x0d, 0xff, 0xe6, 0xac, 0xe1, 0xe3, 0xa8, 0x83, 0xc2, 0xcb, 0xf8, 0x60, 0xe1, 0xd9, 0xe8, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0x1b, 0x77, 0x07, 0x61, 0x07, 0xb4, 0x86, 0xcf, 0x5d, 0x06, 0x87, 0x37, 0xbc, 0xdb, 0xb3, 0xe1, 0x35, 0x9f, 0x83, 0x65, 0x67, 0xa3, 0x6d, 0x50, 0xc2, 0x63, 0x6e, 0xb0, 0xd4, 0x6d, 0x74, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x8d, 0xbb, 0x83, 0x00, 0x0f, 0x5a, 0xc3, 0xe7, 0x2e, 0x83, 0xc3, 0x07, 0x05, 0x45, 0x66, 0x1b, 0x7e, 0x71, 0xd9, 0x60, 0x15, 0x98, 0xec, 0x1a, 0x3e, 0x77, 0x19, 0x1c, 0x3e, 0x58, 0xb2, 0x1b, 0xdb, 0xe1, 0x14, 0x5b, 0x01, 0xf8, 0x81, 0x0b, 0x93, 0x9b, 0x4b, 0x73, 0x3b, 0x6b, 0x09, 0x9b, 0x1b, 0x4b, 0x4b, 0x6b, 0x39, 0x63, 0xcb, 0x83, 0x43, 0x9b, 0x97, 0x01, 0xe8, 0xa4, 0x41, 0xd3, 0x01, 0x81, 0x0b, 0x93, 0x9b, 0x4b, 0x73, 0x3b, 0x03, 0x41, 0x09, 0x9b, 0x1b, 0x4b, 0x4b, 0x03, 0x39, 0x63, 0xcb, 0x83, 0x43, 0x9b, 0x4b, 0x2d, 0xe0, 0x8d, 0x95, 0xb9, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xbc, 0x70, 0x65, 0x72, 0x43, 0x45, 0x4e, 0x74, 0x1b, 0xde, 0xed, 0xd9, 0x60, 0xc1, 0x46, 0xe8, 0x06, 0xeb, 0xa5, 0xdf, 0x5a, 0x01, 0x0f, 0x2e, 0xac, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0x9f, 0xa0, 0x26, 0xa8, 0x32, 0xb9, 0xb9, 0x30, 0x37, 0x32, 0x10, 0xb8, 0xb0, 0x36, 0xb8, 0x32, 0xb9, 0xb9, 0x30, 0x37, 0xb2, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x60, 0x23, 0x74, 0x83, 0xe5, 0x91, 0x70, 0xad, 0x06, 0x0b, 0x63, 0x48, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xd0, 0x26, 0x7b, 0xa3, 0x03, 0x21, 0x7b, 0xa3, 0x03, 0x21, 0x7b, 0xa3, 0x03, 0x71, 0x71, 0x71, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x05, 0x1b, 0xa1, 0x1b, 0x2c, 0xc2, 0x93, 0x6b, 0x35, 0x48, 0x4c, 0x3c, 0xda, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0x8f, 0xa9, 0xa4, 0x23, 0xb7, 0x30, 0xba, 0x3a, 0xb9, 0x32, 0x90, 0xb9, 0xb8, 0xba, 0xb4, 0xb3, 0x33, 0xb6, 0xb2, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x60, 0x23, 0x74, 0x83, 0x75, 0xeb, 0x70, 0xad, 0x06, 0x6b, 0x04, 0x4c, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0x7c, 0x38, 0xa6, 0xaa, 0xa9, 0x83, 0xd5, 0xd8, 0xa5, 0x87, 0x53, 0xac, 0x35, 0x58, 0x1b, 0x73, 0xb9, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x17, 0x54, 0x98, 0x5c, 0x99, 0x1b, 0x88, 0x54, 0xda, 0x19, 0x1a, 0xdd, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xb0, 0x11, 0xba, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x43, 0x53, 0xab, 0xc1, 0x0a, 0x68, 0xd0, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0xfc, 0xa6, 0xd2, 0xdc, 0xce, 0xd8, 0xca, 0x40, 0xa2, 0xea, 0xde, 0xe8, 0xca, 0x36, 0xbc, 0xdb, 0xb3, 0xc1, 0x82, 0x8d, 0xd0, 0x0d, 0x16, 0x55, 0xc0, 0xb5, 0x02, 0x5e, 0x5b, 0xda, 0xb8, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xc7, 0x5c, 0x59, 0x53, 0xd2, 0xd0, 0x1b, 0xdb, 0x9b, 0xdb, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xb0, 0x11, 0xba, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x43, 0x77, 0x87, 0x53, 0xac, 0x16, 0xf0, 0xd6, 0xca, 0xe4, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0xbc, 0x86, 0xea, 0xe4, 0xd8, 0xf2, 0x40, 0xa4, 0xd2, 0xce, 0xd0, 0xe8, 0x36, 0xbc, 0xdb, 0xb3, 0xc1, 0x82, 0x8d, 0xd0, 0x35, 0xfc, 0x08, 0x33, 0x38, 0x1d, 0xde, 0xb7, 0x1a, 0xac, 0xbe, 0x33, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0xd3, 0xe8, 0x4d, 0xee, 0x2e, 0x4c, 0x8e, 0x0c, 0x64, 0x8a, 0x2d, 0x6c, 0x0e, 0x6d, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xd8, 0x08, 0xdd, 0x60, 0x75, 0x58, 0x5b, 0x2b, 0xe0, 0x8d, 0xbd, 0xb5, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0x3c, 0x43, 0x4f, 0x4d, 0x6d, 0x61, 0x1b, 0xde, 0xed, 0xd9, 0x60, 0xc1, 0x46, 0xe8, 0x06, 0xeb, 0x7a, 0xdf, 0x9a, 0x05, 0x3c, 0xb2, 0xb7, 0x78, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x3f, 0xa2, 0xb7, 0x3a, 0x31, 0xb6, 0x32, 0x90, 0xa8, 0xba, 0x37, 0xba, 0xb2, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x60, 0x23, 0x74, 0x0d, 0x3f, 0xc2, 0x0c, 0x4e, 0x87, 0x8a, 0x0e, 0xa7, 0xd8, 0x02, 0x9e, 0x58, 0x98, 0xbc, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x9f, 0x5d, 0x99, 0x1c, 0x5d, 0xda, 0x58, 0x18, 0x1b, 0x88, 0x50, 0x90, 0xd4, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xb0, 0x11, 0xba, 0xc1, 0xb2, 0x4b, 0xb8, 0x56, 0xc0, 0x9b, 0x2b, 0x93, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x9b, 0x8a, 0xab, 0x0b, 0x93, 0x2b, 0x03, 0x91, 0x4a, 0x3b, 0x43, 0xa3, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0x0b, 0x36, 0x42, 0xd7, 0xf0, 0x23, 0xcc, 0xe0, 0x74, 0x78, 0xd7, 0x0a, 0x78, 0x74, 0x61, 0xf2, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x80, 0x3f, 0x47, 0x15, 0x24, 0xb5, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0x6c, 0x84, 0xae, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0x50, 0xd5, 0xe1, 0x14, 0x5b, 0x83, 0x55, 0x72, 0xa4, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0x3c, 0x43, 0x4f, 0x4c, 0x6f, 0x6e, 0x1b, 0xde, 0xed, 0xd9, 0x60, 0xc1, 0x46, 0xe8, 0x1a, 0x7e, 0x84, 0x19, 0x9c, 0x0e, 0xd5, 0x1d, 0x4e, 0xb1, 0x05, 0x3c, 0xb8, 0x30, 0x7a, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x80, 0x2f, 0x88, 0x0a, 0x04, 0x2e, 0x8c, 0x6e, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xd8, 0x08, 0x5d, 0xc3, 0x8f, 0x30, 0x83, 0xd3, 0xe1, 0x40, 0xab, 0xc1, 0x2a, 0x07, 0xd1, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0xde, 0xa1, 0x20, 0xa1, 0xb7, 0xb7, 0xb9, 0xb2, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x60, 0x23, 0x74, 0x83, 0x25, 0x65, 0x73, 0xad, 0x80, 0x47, 0x97, 0x36, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xf0, 0x8b, 0x85, 0x8d, 0xad, 0x51, 0xa5, 0x0d, 0xad, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x05, 0x1b, 0xa1, 0x6b, 0xf8, 0x11, 0x66, 0x70, 0x3a, 0x1c, 0x6c, 0x35, 0x58, 0x49, 0x14, 0xba, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0xc0, 0x87, 0x94, 0x07, 0x85, 0x56, 0xe6, 0x76, 0xb0, 0x86, 0xb9, 0x74, 0x16, 0xf0, 0xe6, 0xca, 0xd8, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0xbc, 0xa6, 0xe2, 0xea, 0xc2, 0xe4, 0xca, 0x40, 0x98, 0xca, 0xcc, 0xe8, 0x36, 0xbc, 0xdb, 0xb3, 0xc1, 0x82, 0x8d, 0xd0, 0x35, 0xfc, 0x08, 0x33, 0x38, 0x1d, 0xbe, 0x75, 0x38, 0xc5, 0x6a, 0x01, 0x0f, 0x2e, 0x8c, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x07, 0x2a, 0x4c, 0xae, 0xcc, 0x0d, 0x84, 0xa9, 0xcc, 0x8c, 0x6e, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xd8, 0x08, 0x5d, 0xc3, 0x8f, 0x30, 0x83, 0xd3, 0xa1, 0xa8, 0x59, 0x83, 0x75, 0x5d, 0xa2, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0x1e, 0xc9, 0x95, 0x85, 0xd1, 0x95, 0xc9, 0x81, 0x48, 0xa5, 0x9d, 0xa1, 0xd1, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x05, 0x1b, 0xa1, 0x6b, 0xf8, 0x11, 0x66, 0x70, 0x3a, 0xd4, 0x77, 0x38, 0xc5, 0xd6, 0x60, 0xc5, 0xc0, 0xe5, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0xf4, 0x08, 0x85, 0x8d, 0xad, 0x81, 0x4c, 0xb1, 0x85, 0xcd, 0xa1, 0x81, 0xa0, 0x94, 0xcd, 0x8d, 0x85, 0xc1, 0x95, 0x91, 0xa5, 0x36, 0xbc, 0xdb, 0xb3, 0xc1, 0x82, 0x8d, 0xd0, 0x0d, 0x56, 0x52, 0xb4, 0x35, 0x0b, 0x78, 0x6b, 0x65, 0xf4, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0xcf, 0x50, 0x98, 0x5c, 0x19, 0xd5, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xb0, 0x11, 0xba, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0xc3, 0xbd, 0x0e, 0xa7, 0xd8, 0x02, 0x9e, 0x5e, 0x18, 0xbc, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x1d, 0x7a, 0x61, 0x70, 0x21, 0x20, 0x62, 0x61, 0x6e, 0x67, 0x21, 0x20, 0x63, 0x72, 0x61, 0x73, 0x68, 0x21, 0xa1, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x60, 0x23, 0x74, 0x0d, 0x3f, 0xc2, 0x0c, 0x4e, 0x87, 0x86, 0x56, 0x83, 0xe4, 0x16, 0xd5, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0x1f, 0x29, 0x6c, 0x0e, 0x6d, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xd8, 0x08, 0x5d, 0xc3, 0x8f, 0x30, 0x83, 0xd3, 0xa1, 0xa3, 0xd5, 0x60, 0xa5, 0xff, 0xe8, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0xde, 0x27, 0x74, 0x69, 0x73, 0x20, 0x74, 0x69, 0x73, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x69, 0x73, 0x1b, 0xde, 0xed, 0xd9, 0x60, 0xc1, 0x46, 0xe8, 0x1a, 0x7e, 0x84, 0x19, 0x9c, 0x0e, 0xed, 0xcd, 0x02, 0xde, 0x5d, 0x1d, 0xbd, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xce, 0x5d, 0x1d, 0x1d, 0x0b, 0xc8, 0x1d, 0x5a, 0x18, 0xdd, 0x6f, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xd8, 0x08, 0x5d, 0xc3, 0x8f, 0x30, 0x83, 0xd3, 0xa1, 0xbf, 0xc3, 0x29, 0xb6, 0x06, 0x4b, 0xa6, 0x44, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x3b, 0x92, 0x2b, 0x0b, 0xa3, 0x2b, 0x93, 0x03, 0x61, 0x2a, 0x33, 0xa3, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0x0b, 0x36, 0x42, 0xd7, 0xf0, 0x23, 0xcc, 0xe0, 0x74, 0x28, 0xef, 0x70, 0x8a, 0x2d, 0xe0, 0x89, 0xd5, 0x8d, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0x92, 0xbd, 0xb1, 0xb1, 0x85, 0xc9, 0xcd, 0x81, 0x08, 0x55, 0x0d, 0xad, 0xcd, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x05, 0x1b, 0xa1, 0x6b, 0xf8, 0x11, 0x66, 0x70, 0x3a, 0x94, 0xb4, 0x1a, 0x2c, 0x80, 0x26, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0xe0, 0x99, 0x83, 0x0b, 0x1a, 0x2a, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x0b, 0x36, 0x42, 0x0f, 0x56, 0x72, 0x8b, 0x1e, 0x4e, 0xb1, 0x05, 0xbc, 0xb5, 0x32, 0x76, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x9f, 0xa1, 0x3a, 0x39, 0xb6, 0x3c, 0x10, 0xa6, 0x32, 0x33, 0xba, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x60, 0x23, 0x74, 0x0d, 0x3f, 0xc2, 0x0c, 0x4e, 0x87, 0xef, 0x1d, 0x4e, 0xb1, 0x59, 0x00, 0x9e, 0xe0, 0xc2, 0xe4, 0xe6, 0xd2, 0xdc, 0xce, 0x5a, 0xe4, 0xea, 0xd8, 0xca, 0x5a, 0xc4, 0xea, 0xd2, 0xd8, 0xc8, 0xca, 0xe4, 0xe6, 0x65, 0x00, 0x5a, 0x69, 0xcc, 0x74, 0x40, 0xe0, 0xc2, 0xe4, 0xe6, 0xd2, 0xdc, 0xce, 0x40, 0x50, 0xe4, 0xea, 0xd8, 0xca, 0x40, 0xc4, 0xea, 0xd2, 0xd8, 0xc8, 0xca, 0xe4, 0xe6, 0x52, 0x6b, 0xb0, 0xf4, 0x97, 0x75, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x60, 0xe9, 0x2f, 0x6b, 0x03, 0x78, 0x8c, 0x85, 0xb1, 0xb1, 0x89, 0x85, 0x8d, 0xad, 0xcd, 0x6d, 0x50, 0x28, 0x77, 0xae, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0xba, 0x2e, 0xd1, 0x83, 0x30, 0x1d, 0x5b, 0xc3, 0x9f, 0x4b, 0x1b, 0x2c, 0x3c, 0x15, 0xdd, 0x20, 0x80, 0xce, 0x36, 0x38, 0x0f, 0x76, 0x6c, 0x50, 0x08, 0xa6, 0x1e, 0x2c, 0x4d, 0x15, 0x6d, 0xc3, 0x2f, 0x4a, 0x1b, 0x2c, 0x9c, 0x3a, 0xdd, 0xf0, 0x17, 0xcd, 0x1a, 0x84, 0x7e, 0xc9, 0x06, 0x8b, 0xba, 0x4e, 0xd7, 0x20, 0x80, 0xce, 0x0e, 0x96, 0x6e, 0x89, 0xb6, 0xe1, 0xdd, 0x9e, 0x0d, 0xd6, 0xcd, 0x8a, 0x1e, 0x2c, 0x91, 0x3b, 0x5d, 0x0d, 0xd6, 0xdb, 0xe5, 0x6c, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xac, 0xb7, 0xcb, 0x69, 0x00, 0x1e, 0xda, 0xc2, 0xe8, 0xc6, 0xd0, 0x40, 0xc6, 0xd0, 0xc2, 0xe4, 0x40, 0xd2, 0xdc, 0x40, 0xe6, 0xca, 0xe8, 0x36, 0x3c, 0x3e, 0xb2, 0xc1, 0x7a, 0xbb, 0x9c, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0xcf, 0xa5, 0x01, 0x4f, 0xac, 0x8e, 0xdc, 0x20, 0xf4, 0x4b, 0x36, 0x08, 0x29, 0x93, 0x0d, 0x16, 0xbc, 0x7f, 0xb6, 0xe1, 0xf1, 0x91, 0x0d, 0xc6, 0xaa, 0xc0, 0x86, 0x5f, 0x94, 0x36, 0x58, 0x38, 0x75, 0xba, 0xe1, 0x2f, 0x9a, 0x35, 0x08, 0xfd, 0x92, 0x0d, 0x16, 0x75, 0x9d, 0x1e, 0x2c, 0x34, 0xac, 0xdd, 0xa0, 0x84, 0xc7, 0x5c, 0xf0, 0xf8, 0x60, 0xfd, 0xdc, 0xe9, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0xbe, 0x59, 0x58, 0x1a, 0xdb, 0xc1, 0x12, 0xb9, 0xd3, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x28, 0x6f, 0xcd, 0x5a, 0xc3, 0xdb, 0x3a, 0x1b, 0x2c, 0x05, 0xac, 0x6d, 0x0d, 0xbf, 0x28, 0x6d, 0xb0, 0x22, 0xde, 0x74, 0xc3, 0xbf, 0x39, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xf4, 0x60, 0x99, 0x66, 0xed, 0xe1, 0x69, 0x9d, 0x36, 0x58, 0xd9, 0x59, 0xbb, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xbb, 0x95, 0xe1, 0xd1, 0x1d, 0x2c, 0x91, 0x3b, 0x5d, 0x0d, 0x56, 0x60, 0xe6, 0x6c, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xac, 0xc0, 0xcc, 0x69, 0x00, 0x5e, 0xe4, 0xca, 0xe0, 0xd8, 0xc2, 0xc6, 0xca, 0x40, 0xee, 0x56, 0x40, 0xc6, 0xde, 0xdc, 0xe6, 0xe8, 0xc2, 0xdc, 0xe8, 0x36, 0x3c, 0x3e, 0xb2, 0xc1, 0x0a, 0xcc, 0x9c, 0x0d, 0x0a, 0xe5, 0xce, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0xb1, 0xba, 0xf9, 0x20, 0x4c, 0xc7, 0x36, 0x58, 0x5b, 0x2a, 0xda, 0x86, 0xc7, 0x47, 0x36, 0x18, 0xab, 0x02, 0x1b, 0x7e, 0x51, 0xda, 0x60, 0xe1, 0xd4, 0xe9, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x06, 0xcb, 0x82, 0x46, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0xa2, 0x5a, 0xd1, 0x83, 0x25, 0x72, 0xa7, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x2c, 0x75, 0x1b, 0x5d, 0xc3, 0xdb, 0x3a, 0x07, 0xab, 0xba, 0x46, 0x37, 0xfc, 0xe2, 0xb2, 0x86, 0xcf, 0x5d, 0x06, 0x87, 0x0f, 0x16, 0x6f, 0x9e, 0xae, 0xe1, 0x73, 0x97, 0xc1, 0xe3, 0x0d, 0xbf, 0xb8, 0x6c, 0x50, 0x50, 0x64, 0xae, 0xe1, 0x73, 0x97, 0xc1, 0xeb, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xe1, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0xe8, 0xbc, 0xb6, 0x35, 0x7c, 0xee, 0x32, 0x78, 0x7c, 0xb0, 0xfc, 0xf4, 0xb4, 0x5a, 0x01, 0x7f, 0x8e, 0xad, 0xee, 0xdc, 0xa0, 0x50, 0xee, 0x5c, 0xc3, 0x9f, 0x4b, 0x03, 0x9e, 0x5c, 0x58, 0xbc, 0x41, 0x00, 0x9d, 0x6d, 0x50, 0x4a, 0x88, 0x6f, 0x50, 0x50, 0x64, 0x6e, 0x50, 0x28, 0x77, 0x6e, 0x50, 0xc6, 0xe2, 0x1f, 0x94, 0x7c, 0xc1, 0x1b, 0x14, 0xca, 0x9d, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x62, 0x75, 0xf3, 0xc1, 0xd2, 0x54, 0xd1, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0x99, 0x95, 0xb1, 0x07, 0x4b, 0x53, 0x45, 0xdb, 0x60, 0x85, 0x50, 0xd3, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x61, 0xcd, 0xe9, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0x4d, 0x8b, 0x6d, 0xad, 0xe1, 0x6d, 0x9d, 0x0d, 0xd6, 0x1b, 0xd9, 0xb6, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x6b, 0xb2, 0x78, 0x5a, 0xc3, 0x25, 0xb5, 0x86, 0x71, 0x39, 0x58, 0x34, 0x65, 0xdb, 0x06, 0x2b, 0xa3, 0x6c, 0xd7, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x6b, 0xc7, 0x41, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0xab, 0x81, 0x6c, 0xdb, 0x60, 0x75, 0x95, 0x6d, 0x75, 0x38, 0xc5, 0x5a, 0xc0, 0x37, 0xab, 0x9b, 0x9b, 0x37, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0x80, 0x37, 0x97, 0x36, 0x1e, 0x9c, 0x67, 0x47, 0xd7, 0xf0, 0xe7, 0xd2, 0x80, 0xe7, 0xf6, 0xe6, 0x1e, 0x9c, 0x67, 0x47, 0xdb, 0x60, 0x85, 0x50, 0xd3, 0x06, 0xeb, 0x81, 0x41, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x4b, 0x70, 0x42, 0x37, 0x58, 0x05, 0x26, 0xbb, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xf8, 0x30, 0xba, 0x86, 0xb7, 0x75, 0x36, 0x58, 0xc1, 0x67, 0x5b, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0xe0, 0x84, 0x6e, 0xb0, 0xcc, 0x49, 0x76, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xf0, 0x61, 0x74, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0x42, 0xd0, 0xb6, 0x6a, 0xd6, 0x60, 0x4d, 0x35, 0xeb, 0x06, 0x85, 0x72, 0xe7, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xd8, 0xca, 0xd0, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0x90, 0x32, 0x59, 0xc3, 0xe7, 0x4a, 0x6b, 0x10, 0x6c, 0xa6, 0x1b, 0x7e, 0xa8, 0x39, 0x48, 0x4b, 0xc0, 0xdc, 0x60, 0x69, 0xaa, 0x68, 0x6d, 0xf8, 0x0a, 0x67, 0x83, 0x12, 0x1e, 0x73, 0x0d, 0x96, 0xb9, 0xda, 0xb6, 0x41, 0x41, 0x91, 0xb9, 0xe1, 0x17, 0x97, 0x35, 0x7c, 0xee, 0x32, 0x78, 0xba, 0xe1, 0x17, 0x97, 0x35, 0x7c, 0xee, 0x32, 0x38, 0xbc, 0xe1, 0x92, 0x5a, 0xe3, 0xd0, 0xe0, 0xe9, 0xc1, 0x02, 0x61, 0xdb, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xf1, 0x86, 0x4b, 0x6a, 0x8d, 0xe7, 0x07, 0xeb, 0xa3, 0x6d, 0x6b, 0x0d, 0x9f, 0xbb, 0x0c, 0x4e, 0x6f, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xb0, 0x40, 0xd8, 0x76, 0xc3, 0xdb, 0x3a, 0x83, 0xd3, 0x07, 0x0b, 0x84, 0x6d, 0x6b, 0x35, 0x58, 0xe0, 0xa2, 0xb3, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xb0, 0xc0, 0x45, 0xa7, 0x01, 0xbc, 0xc2, 0xc8, 0xc8, 0x40, 0xc2, 0x40, 0xd8, 0xc2, 0xc4, 0xca, 0xd8, 0x36, 0x3c, 0x3e, 0xb2, 0xc1, 0x02, 0x17, 0x9d, 0x0d, 0x0a, 0xe5, 0xce, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0xb3, 0x37, 0xf1, 0x20, 0x4c, 0xc7, 0x0e, 0x96, 0xac, 0xd7, 0x6e, 0x78, 0x7c, 0x64, 0x83, 0xb1, 0x2a, 0xb0, 0xe1, 0x17, 0xa5, 0x0d, 0x16, 0x4e, 0x9d, 0x6e, 0xf8, 0xc4, 0x66, 0x83, 0xc5, 0xf6, 0xb5, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x2c, 0x75, 0x1b, 0xdd, 0x60, 0x39, 0x81, 0xed, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0xa7, 0x60, 0xbb, 0x86, 0xcf, 0x5d, 0x06, 0x8f, 0x37, 0xfc, 0xe2, 0xb2, 0x41, 0x41, 0x91, 0xb9, 0x86, 0xcf, 0x5d, 0x06, 0xaf, 0x37, 0xfc, 0xe2, 0xb2, 0x86, 0xcf, 0x5d, 0x06, 0x87, 0x37, 0xfc, 0xe2, 0xb2, 0x86, 0xb7, 0x75, 0x36, 0x58, 0x44, 0x70, 0xdb, 0x06, 0x2b, 0x8b, 0x4f, 0x3b, 0x58, 0x10, 0x62, 0x5b, 0x87, 0x53, 0x6c, 0x01, 0x1f, 0x2e, 0x6d, 0x6c, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x58, 0x9a, 0x73, 0xdb, 0x00, 0xde, 0x72, 0x75, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x2b, 0x2b, 0x65, 0x61, 0x63, 0x68, 0x1b, 0x14, 0xca, 0x9d, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x1e, 0x2c, 0x4d, 0x15, 0x5d, 0xc3, 0x9f, 0x4b, 0x83, 0x8b, 0x07, 0x4b, 0x53, 0x45, 0xdb, 0x60, 0x85, 0x50, 0xd3, 0x06, 0xeb, 0x81, 0x41, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x2b, 0xd0, 0x56, 0x37, 0x58, 0x05, 0x26, 0x7b, 0x78, 0xe8, 0x67, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x02, 0x6d, 0x75, 0x83, 0x65, 0x4e, 0xb2, 0x87, 0xb7, 0xd0, 0x5a, 0x01, 0x3f, 0xcd, 0x8d, 0xac, 0x3c, 0x58, 0x39, 0x2a, 0x3a, 0x6b, 0xb0, 0x2a, 0x62, 0x74, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x60, 0x55, 0xc4, 0x68, 0x03, 0xf8, 0xb5, 0x85, 0xd1, 0x8d, 0xa1, 0x81, 0x84, 0x81, 0x8c, 0xbd, 0xc9, 0x91, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x64, 0x61, 0xe6, 0xc1, 0x79, 0x76, 0x74, 0xc3, 0x2f, 0x4a, 0x1b, 0x2c, 0x9c, 0x3a, 0xdd, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xf0, 0xcc, 0xc2, 0xc8, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0x0a, 0xf1, 0xb6, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x8b, 0x66, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0x45, 0x5d, 0xa7, 0x07, 0xc7, 0x27, 0xd7, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x0d, 0xd6, 0x75, 0xb6, 0x1d, 0x2c, 0xb0, 0xbc, 0x5d, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0xf8, 0x60, 0x19, 0xe1, 0xe9, 0x1a, 0x3e, 0x77, 0x19, 0x3c, 0xde, 0xf0, 0x8b, 0xcb, 0x06, 0x05, 0x45, 0xe6, 0x1a, 0x3e, 0x77, 0x19, 0xbc, 0xde, 0xf0, 0x8b, 0xcb, 0x1a, 0x3e, 0x77, 0x19, 0x1c, 0xde, 0xf0, 0xb6, 0xce, 0x06, 0xcb, 0x27, 0x6f, 0x5b, 0xc3, 0xe7, 0x2e, 0x83, 0xc7, 0x07, 0x8b, 0xe4, 0x4e, 0xab, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0x57, 0xb2, 0x35, 0x28, 0x26, 0x31, 0x37, 0x08, 0xc1, 0x87, 0x83, 0x65, 0x9a, 0xb5, 0x6b, 0x78, 0x9b, 0x75, 0xc3, 0xbf, 0x39, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x22, 0x13, 0x77, 0x83, 0xa2, 0x52, 0x7c, 0x83, 0x05, 0x96, 0xb7, 0x1d, 0xac, 0xbd, 0xad, 0x6d, 0x83, 0x95, 0x9d, 0xb5, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0xac, 0x30, 0x3c, 0xdd, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0x4d, 0xf6, 0x67, 0x1b, 0xac, 0xbd, 0xad, 0xdd, 0x60, 0x19, 0xe1, 0x69, 0x6b, 0xb0, 0x4c, 0xb3, 0x76, 0xc3, 0xdb, 0x3a, 0x83, 0xd3, 0x07, 0xcb, 0x34, 0x6b, 0xd7, 0x60, 0xed, 0xe5, 0xed, 0x86, 0x77, 0x7b, 0x36, 0x28, 0xf1, 0x71, 0x0f, 0x96, 0x67, 0xdf, 0x76, 0x38, 0xc5, 0x5a, 0x83, 0xf5, 0x77, 0xac, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xeb, 0xef, 0x58, 0x1b, 0xc0, 0x7f, 0xec, 0xcd, 0x8d, 0x2c, 0x8d, 0x2e, 0xed, 0xcd, 0x2d, 0x8c, 0x0d, 0x64, 0xec, 0xed, 0x6d, 0x6d, 0x83, 0x42, 0xb9, 0x73, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0x01, 0x0f, 0x2e, 0x2f, 0x3e, 0x38, 0x79, 0x0b, 0x1c, 0x2c, 0x59, 0xaf, 0xdd, 0xf0, 0x8b, 0xd2, 0x06, 0x0b, 0xa7, 0x4e, 0x37, 0x7c, 0x62, 0xb3, 0xc1, 0x62, 0xfb, 0xda, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x96, 0xba, 0x8d, 0x6e, 0xb0, 0x9c, 0xc0, 0x76, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xc0, 0x3b, 0x2b, 0xcb, 0x37, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x58, 0xba, 0x81, 0xdb, 0xc1, 0xba, 0x99, 0xdb, 0x0d, 0x4a, 0x78, 0xcc, 0x35, 0x58, 0x38, 0x83, 0xdb, 0x1a, 0x7e, 0x71, 0xd9, 0x60, 0x9d, 0x82, 0xed, 0x1a, 0x3e, 0x77, 0x19, 0x3c, 0x3e, 0x28, 0x28, 0x32, 0xdb, 0xf0, 0x8b, 0xcb, 0x06, 0xeb, 0x14, 0x6c, 0xd7, 0xf0, 0xb9, 0xcb, 0xe0, 0xf1, 0x86, 0x5f, 0x5c, 0x36, 0x28, 0x28, 0x32, 0xd7, 0xf0, 0xb9, 0xcb, 0xe0, 0xf5, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xf0, 0x86, 0xb7, 0x75, 0x06, 0xaf, 0x0f, 0x96, 0xfe, 0xe0, 0x1e, 0x2c, 0x08, 0xb1, 0xad, 0xd5, 0x60, 0xb5, 0x7e, 0xe8, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0x6a, 0xfd, 0xd0, 0x06, 0xf0, 0x95, 0x4b, 0x3b, 0x43, 0xa3, 0x6b, 0x7b, 0x9b, 0xa3, 0x03, 0x11, 0x0b, 0x9b, 0x2b, 0xdb, 0xa0, 0x50, 0xee, 0x5c, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0xbb, 0xab, 0x1b, 0x0f, 0x3f, 0xd4, 0xac, 0xe1, 0xcf, 0xa5, 0x01, 0x8f, 0x2e, 0x8f, 0x3c, 0x58, 0x9a, 0x2a, 0xda, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0xcb, 0x2a, 0x41, 0xd7, 0xf0, 0x8b, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xee, 0xc2, 0xe2, 0x83, 0x72, 0xce, 0x76, 0x83, 0xa2, 0xd3, 0x78, 0x0d, 0x6f, 0xeb, 0x6c, 0x50, 0x10, 0xb9, 0xb5, 0x86, 0xb7, 0x75, 0x36, 0x58, 0xd6, 0x88, 0xdb, 0x06, 0xa5, 0xbd, 0xe5, 0x86, 0x5f, 0xe7, 0x36, 0x38, 0x0f, 0x76, 0x6c, 0x78, 0xb7, 0x67, 0xc3, 0x9f, 0x40, 0x1b, 0x9c, 0x2e, 0x32, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xc1, 0x53, 0xbb, 0x86, 0xb7, 0x75, 0x36, 0x58, 0xb8, 0x87, 0xdb, 0xc1, 0xa1, 0x97, 0xaf, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0x24, 0x10, 0xb7, 0xd5, 0x60, 0x15, 0x63, 0xe8, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0x2a, 0xc6, 0xd0, 0x06, 0xf0, 0x86, 0x01, 0x79, 0x93, 0x03, 0x69, 0x7b, 0x93, 0x2b, 0x03, 0xa1, 0x4b, 0x6b, 0x2b, 0x9b, 0xdb, 0xa0, 0x50, 0xee, 0xdc, 0x60, 0x49, 0x91, 0xed, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xbc, 0x65, 0xbb, 0x86, 0xbf, 0x68, 0xd6, 0x20, 0xf4, 0x4b, 0x36, 0x08, 0x29, 0x93, 0x35, 0x08, 0xa0, 0xb3, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x52, 0x79, 0x87, 0x5b, 0x83, 0x42, 0x30, 0x75, 0xc3, 0xbf, 0xf3, 0x1b, 0x2c, 0xbc, 0xb2, 0xad, 0x0e, 0x0a, 0x8a, 0xcc, 0x0d, 0xd6, 0xd4, 0xd8, 0x1e, 0x2c, 0x7e, 0xb3, 0x5d, 0x0d, 0x96, 0x9e, 0xef, 0x6c, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x2c, 0x3d, 0xdf, 0x69, 0x00, 0x7e, 0xe6, 0xee, 0xd2, 0xe8, 0xc6, 0xd0, 0x40, 0xc4, 0xf2, 0x40, 0xcc, 0xd2, 0xe4, 0xe6, 0xe8, 0x40, 0xc6, 0xd0, 0xc2, 0xe4, 0x36, 0x3c, 0x3e, 0xb2, 0xc1, 0xd2, 0xf3, 0x9d, 0x0d, 0x0a, 0xe5, 0xce, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x1e, 0x43, 0x0b, 0x93, 0x5b, 0x91, 0x0b, 0x73, 0x3b, 0x2b, 0x03, 0x59, 0x2b, 0xcb, 0x9b, 0xdb, 0xf0, 0xe7, 0xd2, 0x06, 0xcb, 0x5c, 0x6d, 0x37, 0x08, 0xfd, 0x92, 0x0d, 0x42, 0xca, 0x64, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xe1, 0x83, 0x35, 0xb6, 0xb6, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0xf8, 0x60, 0x69, 0xaa, 0x68, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0xac, 0xe1, 0x4e, 0x5b, 0x06, 0xe0, 0x43, 0x2e, 0xcc, 0xed, 0xac, 0x0c, 0x64, 0xec, 0xad, 0x0d, 0x8e, 0xad, 0x8c, 0xae, 0x0c, 0x84, 0x8d, 0x0e, 0x2d, 0xf0, 0xee, 0xde, 0xe4, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0xbd, 0xc9, 0xd1, 0x07, 0x6b, 0x6c, 0x6d, 0xd7, 0xf0, 0xe7, 0xd2, 0x80, 0x77, 0x17, 0xe6, 0x1e, 0xac, 0xb1, 0xb5, 0x6d, 0x83, 0x82, 0x60, 0x76, 0x0d, 0xd6, 0xed, 0xe4, 0xb6, 0x06, 0x05, 0xc1, 0xec, 0x1a, 0xac, 0x0c, 0xca, 0x6d, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0xe2, 0x6c, 0x0d, 0x6f, 0xeb, 0x1c, 0x2c, 0x40, 0xca, 0x5d, 0xc3, 0xdb, 0x3a, 0x07, 0x2b, 0x99, 0x72, 0xdb, 0xf0, 0x6e, 0xcf, 0x86, 0x2f, 0xce, 0x36, 0x58, 0x28, 0x95, 0xbb, 0x86, 0x4b, 0x6a, 0x8d, 0x43, 0x07, 0x2b, 0x99, 0x72, 0x6b, 0x83, 0x82, 0x60, 0x76, 0x83, 0x95, 0x4c, 0xb9, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x17, 0x67, 0x6b, 0xb8, 0xa4, 0xd6, 0x78, 0x7e, 0xb0, 0x00, 0x29, 0xb7, 0x83, 0x45, 0x56, 0xb9, 0x1b, 0xde, 0xed, 0xd9, 0xf0, 0xc5, 0xd9, 0x06, 0x6b, 0xd9, 0x72, 0x0f, 0x56, 0x7f, 0xe5, 0x6e, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0xac, 0xe1, 0x4e, 0x5b, 0x06, 0xf0, 0x17, 0xab, 0x4b, 0x63, 0x23, 0x03, 0x81, 0x0b, 0x93, 0x9b, 0x2b, 0x93, 0x03, 0x69, 0x0b, 0x83, 0x0b, 0x3c, 0xb4, 0x32, 0x76, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0xc5, 0x89, 0xb9, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0xd0, 0x2f, 0xd9, 0x20, 0x70, 0xf4, 0xd6, 0x20, 0x80, 0xce, 0x36, 0x28, 0xf8, 0x30, 0xd7, 0xa0, 0x98, 0xc4, 0xdc, 0xa0, 0x48, 0xc5, 0x3c, 0x58, 0x20, 0x6c, 0xbb, 0xe1, 0x6d, 0x9d, 0x83, 0xf5, 0xd1, 0xb6, 0x1d, 0x14, 0x14, 0x99, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0xf5, 0xcb, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0x71, 0x62, 0x6e, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x2c, 0x10, 0xb6, 0xdd, 0xa0, 0xa0, 0xc8, 0xdc, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xf0, 0xf2, 0xc2, 0xd8, 0x83, 0xb5, 0xdf, 0xb6, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0xf5, 0xcb, 0x06, 0x2b, 0x55, 0x73, 0x37, 0x28, 0xe1, 0x31, 0xd7, 0x60, 0x19, 0x6e, 0x6e, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x55, 0xa1, 0xb9, 0x07, 0x65, 0x99, 0xe7, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0xf9, 0x4c, 0x6e, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0xf8, 0x60, 0x7d, 0xb4, 0xed, 0x1a, 0xde, 0xd6, 0x19, 0x1c, 0x1e, 0xdc, 0x3d, 0x58, 0x44, 0x9c, 0xdb, 0x1a, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x03, 0x9e, 0x5b, 0xdd, 0xb8, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0xc1, 0x22, 0xe2, 0xdc, 0x0d, 0x6f, 0xeb, 0x0c, 0xce, 0x1e, 0x2c, 0x22, 0xce, 0x6d, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0x8a, 0x49, 0xcc, 0x0d, 0x8a, 0x54, 0xcc, 0x0d, 0xd6, 0x8a, 0xe7, 0xb6, 0xe1, 0x83, 0x9c, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x29, 0xaa, 0xb9, 0xc1, 0x8a, 0xec, 0xdc, 0x35, 0xbc, 0xad, 0x33, 0x38, 0x3c, 0xb8, 0x7b, 0xb0, 0xa0, 0x3e, 0xb7, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0xb7, 0x75, 0x0e, 0x16, 0x6f, 0xe7, 0xae, 0xe1, 0x6d, 0x9d, 0x83, 0x05, 0xf5, 0xb9, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0xf9, 0x60, 0x11, 0x71, 0x6e, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0xdb, 0x3a, 0x07, 0xab, 0x03, 0x74, 0xd7, 0xf0, 0xb6, 0xce, 0xe0, 0xec, 0xc1, 0x82, 0xfa, 0xdc, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0x7a, 0x03, 0xdd, 0x35, 0xbc, 0xad, 0x33, 0xb8, 0x7c, 0xb0, 0xa0, 0x3e, 0xf7, 0x60, 0xa5, 0x83, 0x6e, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x1b, 0xac, 0x15, 0xcf, 0xdd, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0x60, 0x11, 0x71, 0xee, 0xc1, 0x5a, 0x07, 0xdd, 0x36, 0x28, 0xf8, 0x30, 0x37, 0x58, 0x10, 0x9f, 0xbb, 0xe1, 0x83, 0x9c, 0x0d, 0x96, 0xe4, 0xe7, 0xae, 0xe1, 0x17, 0x97, 0x0d, 0xd6, 0x1b, 0xe8, 0x6e, 0xb0, 0x40, 0x3d, 0x77, 0x83, 0xd5, 0x0a, 0xba, 0x6d, 0xf8, 0xc5, 0x65, 0x83, 0x65, 0x15, 0xba, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xf5, 0x06, 0xba, 0x1b, 0x2c, 0x50, 0xcf, 0xdd, 0x60, 0x51, 0x86, 0x6e, 0x1b, 0x2c, 0x11, 0xd1, 0x6d, 0x83, 0xb2, 0x4b, 0x76, 0x83, 0xb1, 0x2a, 0xb0, 0x86, 0x4b, 0x6a, 0x8d, 0xc7, 0x07, 0x87, 0xfd, 0x8e, 0x66, 0xc3, 0x2f, 0x4a, 0x1b, 0x2c, 0x9c, 0x3a, 0xdd, 0xa0, 0x84, 0xc7, 0xdc, 0x60, 0x99, 0x66, 0xed, 0x06, 0x2b, 0x3b, 0x6b, 0x37, 0x7c, 0x85, 0xb3, 0x41, 0x09, 0x8f, 0xb9, 0xc1, 0x22, 0xd6, 0xdc, 0x0d, 0x56, 0x76, 0xd6, 0x6e, 0xf8, 0x20, 0x67, 0x0d, 0x0a, 0x82, 0xd9, 0x05, 0x87, 0x07, 0x77, 0x0f, 0x16, 0xb1, 0xe6, 0xae, 0xe1, 0xdf, 0x9c, 0x35, 0xbc, 0xad, 0x73, 0xb0, 0x94, 0x4e, 0xf7, 0x60, 0xed, 0x6d, 0xed, 0x86, 0x47, 0x58, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x69, 0xd8, 0x4a, 0x1b, 0xac, 0xbd, 0xad, 0x5d, 0xc3, 0x25, 0xb5, 0xc6, 0xa1, 0x83, 0xa5, 0x74, 0xba, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0xf1, 0xbb, 0xc1, 0xda, 0xdb, 0xda, 0x35, 0x5c, 0x52, 0x6b, 0x3c, 0x3f, 0x58, 0x4a, 0xa7, 0x5b, 0xad, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0x33, 0x78, 0x7c, 0xb0, 0xb4, 0x4e, 0xf7, 0x60, 0x89, 0xdc, 0xe9, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x2b, 0xa0, 0x73, 0x37, 0x58, 0x7b, 0x5b, 0xbb, 0xc1, 0x52, 0x3d, 0xdd, 0xd6, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0x60, 0x11, 0x6b, 0xee, 0x86, 0xb7, 0x75, 0x06, 0x67, 0x0f, 0x16, 0xb1, 0xe6, 0xb6, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0xc1, 0x22, 0xd6, 0xdc, 0x0d, 0x6f, 0xeb, 0x0c, 0x2e, 0x1f, 0x2c, 0x62, 0xcd, 0xed, 0x70, 0x8a, 0xad, 0xc1, 0x9a, 0x2c, 0x9e, 0x0d, 0x8f, 0x8f, 0x6c, 0xb0, 0x26, 0x8b, 0x67, 0x83, 0x42, 0xb9, 0x73, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0x0d, 0x56, 0xf6, 0xc1, 0x1d, 0x84, 0xe9, 0xd8, 0x06, 0xcb, 0x56, 0x6c, 0x0f, 0x16, 0x14, 0xd9, 0x6e, 0x78, 0x7c, 0x64, 0x83, 0xb1, 0x2a, 0xb0, 0xe1, 0x17, 0xa5, 0x0d, 0x16, 0x4e, 0x9d, 0x6e, 0xf8, 0x8b, 0x66, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0x45, 0x5d, 0xa7, 0x6b, 0x10, 0x40, 0x67, 0x07, 0x8b, 0xf7, 0xe0, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x59, 0xc3, 0xc4, 0x0d, 0x78, 0x6c, 0x65, 0xe6, 0xc1, 0x3a, 0xca, 0xd3, 0x0d, 0x4a, 0x7b, 0xcb, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0xaa, 0x75, 0xdd, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0x90, 0x32, 0x59, 0x83, 0x00, 0x3a, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0xab, 0xab, 0x6c, 0x0f, 0x96, 0xc8, 0x9d, 0xb6, 0xe1, 0x2b, 0x9c, 0x0d, 0x7f, 0xd1, 0xac, 0xe1, 0x73, 0xa5, 0x35, 0x08, 0xa0, 0xb3, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0x6a, 0x5d, 0xb7, 0x35, 0x08, 0xfd, 0x92, 0x0d, 0x4a, 0x6f, 0xfa, 0x0d, 0x92, 0x94, 0x81, 0xd7, 0xf0, 0xb9, 0xd2, 0x06, 0x21, 0xf8, 0xb0, 0x86, 0x3f, 0x97, 0x06, 0xaf, 0x37, 0x08, 0xfd, 0x92, 0x0d, 0x4a, 0x6f, 0xfa, 0x0d, 0xd6, 0x88, 0xeb, 0x6e, 0x90, 0xd6, 0x0e, 0x5c, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0xb2, 0xc1, 0xb2, 0xa0, 0xd1, 0x83, 0x45, 0xfb, 0xba, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x2c, 0x75, 0x1b, 0x5d, 0x83, 0xc2, 0x50, 0x75, 0x83, 0x85, 0x08, 0xbb, 0x1b, 0x7e, 0x71, 0xd9, 0x60, 0xf1, 0xe6, 0xe9, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0xa0, 0xc8, 0xdc, 0x60, 0xf1, 0x1e, 0xdc, 0xc1, 0x12, 0xb9, 0xd3, 0x36, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x58, 0xa3, 0xb0, 0xbb, 0xe1, 0x17, 0x97, 0x0d, 0x96, 0x13, 0xd8, 0x6e, 0xb0, 0x10, 0x61, 0xb7, 0x83, 0x95, 0xa5, 0xa7, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x2c, 0x95, 0x24, 0xdc, 0x60, 0x21, 0xc2, 0xee, 0x86, 0x5f, 0x94, 0xd6, 0x20, 0x80, 0xce, 0x36, 0xfc, 0xe2, 0xb2, 0xc1, 0xd2, 0x91, 0xdd, 0x35, 0x7c, 0xee, 0xb2, 0xc1, 0x3a, 0xca, 0xd3, 0x0d, 0x6f, 0xeb, 0x1c, 0x2c, 0xa7, 0x3d, 0x6d, 0xc3, 0xd7, 0x2f, 0x1b, 0x2c, 0xec, 0xda, 0xdd, 0xa0, 0x30, 0x54, 0x5d, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xf5, 0x22, 0xa0, 0x6d, 0xb0, 0x78, 0xf3, 0x74, 0x83, 0x05, 0xb9, 0xa7, 0x6d, 0xf8, 0xc5, 0x65, 0x83, 0x82, 0x22, 0x73, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x32, 0xca, 0x76, 0x0d, 0x6f, 0xeb, 0x0c, 0x0e, 0x0f, 0x5e, 0x6f, 0x3c, 0x3f, 0x58, 0xea, 0x36, 0x7a, 0xb0, 0x4a, 0xf9, 0xf4, 0x60, 0x15, 0xf4, 0xe9, 0xac, 0xc1, 0xa2, 0x57, 0xd2, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x45, 0xaf, 0xa4, 0x0d, 0xa0, 0x37, 0x57, 0x06, 0x17, 0x26, 0x17, 0x46, 0x57, 0x46, 0xc6, 0x02, 0xa2, 0xda, 0xa0, 0x50, 0xee, 0xdc, 0x60, 0x4d, 0x8f, 0xed, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x0f, 0x0c, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x33, 0x1b, 0x7a, 0xb0, 0x74, 0xcd, 0xf6, 0x60, 0x89, 0x49, 0xe9, 0xe1, 0x14, 0x5b, 0x83, 0x05, 0xb5, 0xa1, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0x0b, 0x6a, 0x43, 0x1b, 0x40, 0x6f, 0xae, 0x0c, 0x2e, 0x4c, 0x2e, 0x8c, 0xae, 0x8c, 0x8c, 0x05, 0x64, 0xb5, 0x41, 0xa1, 0xdc, 0xb9, 0xc1, 0x9a, 0x1e, 0xdb, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xa2, 0x22, 0x74, 0x83, 0xd5, 0x55, 0xb6, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x85, 0x8a, 0xa1, 0x07, 0x4b, 0xce, 0x6c, 0x9b, 0x35, 0x58, 0x3f, 0x5c, 0xbb, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xb0, 0x7e, 0xb8, 0xb6, 0x01, 0x7c, 0xc7, 0xde, 0xdc, 0xe6, 0xea, 0xda, 0xca, 0x40, 0xc2, 0x40, 0xc6, 0xd0, 0xc2, 0xe4, 0x36, 0xfc, 0xa2, 0xb4, 0xc1, 0xc2, 0xa9, 0xd3, 0x0d, 0x7f, 0xd1, 0x6c, 0xb0, 0x44, 0xb2, 0x76, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x65, 0x9a, 0xb5, 0x1b, 0xac, 0xec, 0xac, 0xdd, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xf0, 0xf4, 0xc2, 0xc6, 0x83, 0xc5, 0xe7, 0xb7, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x2c, 0x6f, 0xdf, 0x6d, 0x0d, 0xbf, 0xb8, 0x6c, 0x50, 0x50, 0x64, 0x6e, 0xb0, 0xf6, 0xb6, 0x76, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0x7c, 0x7e, 0x77, 0x83, 0x65, 0xf4, 0xb7, 0xd5, 0xe1, 0x14, 0x5b, 0x83, 0x25, 0xdc, 0x3c, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0x4b, 0xb8, 0x79, 0x1a, 0x80, 0x07, 0x38, 0xb6, 0xb0, 0xb1, 0xb2, 0x16, 0xb1, 0xb0, 0xb9, 0x32, 0x32, 0x90, 0x30, 0x38, 0x38, 0xb6, 0xbc, 0x0d, 0x8f, 0x8f, 0x6c, 0xb0, 0x84, 0x9b, 0x67, 0x83, 0x42, 0xb9, 0x73, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0x01, 0x0f, 0xad, 0x4c, 0xdf, 0x20, 0x80, 0xce, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xe1, 0x41, 0x62, 0x4c, 0xf0, 0x41, 0x39, 0x8e, 0x7f, 0x50, 0xf2, 0x05, 0x1f, 0x2c, 0x59, 0xaf, 0xdd, 0xf0, 0xf8, 0xc8, 0x06, 0x63, 0x55, 0x60, 0xc3, 0x2f, 0x4a, 0x1b, 0x2c, 0x9c, 0x3a, 0xdd, 0xf0, 0x89, 0xcd, 0x06, 0x8b, 0xed, 0x6b, 0x37, 0x28, 0xe1, 0x31, 0x37, 0x58, 0xea, 0x36, 0xba, 0xc1, 0x72, 0x02, 0xdb, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0x4e, 0xc1, 0x76, 0x0d, 0x9f, 0xbb, 0x0c, 0x1e, 0x6f, 0xf8, 0xc5, 0x65, 0x83, 0x82, 0x22, 0x73, 0x0d, 0x9f, 0xbb, 0x0c, 0x5e, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0x9f, 0xbb, 0x0c, 0x0e, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0x64, 0x84, 0xb7, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0x32, 0xc2, 0xd3, 0x35, 0xbc, 0xad, 0x33, 0x38, 0x7c, 0xb0, 0x32, 0xf5, 0xb4, 0x83, 0x75, 0x33, 0xb7, 0x07, 0x0b, 0x42, 0x6c, 0x6b, 0x35, 0x58, 0xc7, 0x1a, 0xba, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xb0, 0x8e, 0x35, 0xb4, 0x01, 0x3c, 0xd9, 0xca, 0xcc, 0xe8, 0xda, 0xde, 0xe6, 0xe8, 0x40, 0xc4, 0xc2, 0xe6, 0xca, 0x36, 0x28, 0x94, 0x3b, 0x37, 0x58, 0x7e, 0x87, 0xbb, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0xb2, 0x4a, 0xd0, 0x35, 0xfc, 0xa2, 0xb4, 0xc1, 0xca, 0x45, 0xdc, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x96, 0x4a, 0x12, 0x1e, 0xac, 0xba, 0xc4, 0x3d, 0x58, 0x08, 0x8b, 0xbb, 0x1a, 0x2c, 0x6d, 0xe8, 0xd9, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x58, 0xda, 0xd0, 0xd3, 0x00, 0x7e, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x70, 0x61, 0x72, 0x73, 0x65, 0x1b, 0x1e, 0x1f, 0xd9, 0x60, 0x69, 0x43, 0xcf, 0x06, 0x85, 0x72, 0xe7, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xd0, 0xea, 0xcc, 0x83, 0x30, 0x1d, 0xdb, 0xf0, 0xf8, 0xc8, 0x06, 0x63, 0x55, 0x60, 0xc3, 0x2f, 0x4a, 0x1b, 0x2c, 0x9c, 0x3a, 0xdd, 0xf0, 0x17, 0xcd, 0x1a, 0x84, 0x7e, 0xc9, 0x06, 0x8b, 0xba, 0x4e, 0xd7, 0x20, 0x80, 0xce, 0x36, 0xbc, 0xad, 0xb3, 0xc1, 0xb2, 0x55, 0xde, 0xda, 0xf0, 0x8b, 0xcb, 0x06, 0x6b, 0x5a, 0x6f, 0xd7, 0xf0, 0xb9, 0xcb, 0xe0, 0xf1, 0x86, 0x5f, 0x5c, 0x36, 0x28, 0x28, 0x32, 0xd7, 0xf0, 0xb9, 0xcb, 0xe0, 0xf5, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xf0, 0xc1, 0x52, 0x5f, 0xde, 0x83, 0xc5, 0xc3, 0xb7, 0x75, 0x38, 0xc5, 0x5a, 0x83, 0x15, 0x40, 0x3d, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0x2b, 0x80, 0x7a, 0x1a, 0x80, 0x97, 0xb6, 0x30, 0xba, 0x31, 0x34, 0x90, 0x31, 0xb4, 0x30, 0x39, 0x90, 0x34, 0x37, 0x10, 0xb9, 0x30, 0xb7, 0xb3, 0xb2, 0x0d, 0x8f, 0x8f, 0x6c, 0xb0, 0x02, 0xa8, 0x67, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x6c, 0x65, 0xf3, 0xe1, 0x87, 0x9a, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0xb5, 0xbd, 0xcd, 0x87, 0x1f, 0x6a, 0xda, 0xf0, 0xf8, 0xc8, 0x06, 0x63, 0x55, 0x60, 0xc3, 0x2f, 0x4a, 0x1b, 0x2c, 0x9c, 0x3a, 0xdd, 0xf0, 0x17, 0xcd, 0x06, 0x4b, 0x24, 0x6b, 0x37, 0x28, 0xe1, 0x31, 0x37, 0x58, 0xa6, 0x59, 0xbb, 0xc1, 0xca, 0xce, 0xda, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0x3c, 0xc2, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x48, 0xc3, 0x56, 0xda, 0x60, 0xed, 0x6d, 0xed, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0x15, 0x3e, 0x6f, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x5f, 0xfc, 0x6e, 0xb0, 0xf6, 0xb6, 0x76, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0xbe, 0x9f, 0xb7, 0x3a, 0x58, 0xe2, 0x5b, 0xbb, 0x02, 0x3e, 0x5c, 0x9d, 0x1b, 0xbd, 0x41, 0xa1, 0xdc, 0xb9, 0x86, 0xcf, 0x95, 0x36, 0x58, 0x08, 0x75, 0xdb, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x0f, 0x0c, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x81, 0xb6, 0xba, 0x41, 0x41, 0x91, 0x79, 0x78, 0xe8, 0xe7, 0x60, 0x89, 0x49, 0xe9, 0x6a, 0x38, 0x48, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x07, 0x49, 0x03, 0xf0, 0x81, 0x16, 0x36, 0x07, 0x42, 0xf7, 0x06, 0x62, 0x56, 0xc7, 0xc6, 0x96, 0x07, 0x02, 0x17, 0x26, 0x37, 0x57, 0xb6, 0x41, 0xa1, 0xdc, 0xb9, 0xc1, 0xda, 0x52, 0xd1, 0x0d, 0xbf, 0x28, 0x6d, 0xb0, 0x70, 0xea, 0x74, 0xc3, 0x27, 0x36, 0x1b, 0x2c, 0xb6, 0xaf, 0xdd, 0xa0, 0x84, 0xc7, 0xdc, 0x60, 0xa9, 0xdb, 0xe8, 0x06, 0xcb, 0x09, 0x6c, 0x37, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0x36, 0x28, 0x28, 0x32, 0x37, 0xbc, 0xad, 0x33, 0x78, 0x7c, 0xb0, 0x32, 0xf5, 0x74, 0x83, 0xe5, 0x04, 0xb6, 0x07, 0x2b, 0x84, 0x70, 0x0f, 0xa7, 0x58, 0x6b, 0xb0, 0x7c, 0xb7, 0x67, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x60, 0xf9, 0x6e, 0x4f, 0x03, 0xf0, 0x02, 0x17, 0x26, 0x37, 0x57, 0x06, 0x32, 0x57, 0x66, 0x57, 0x26, 0x17, 0xc6, 0x06, 0x42, 0x97, 0xd6, 0x56, 0x36, 0xb7, 0xe1, 0xf1, 0x91, 0x0d, 0x96, 0xef, 0xf6, 0x6c, 0x50, 0x28, 0x77, 0xae, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0xb1, 0xa5, 0x9d, 0x07, 0xa9, 0x09, 0x98, 0x07, 0x0b, 0x8a, 0x6c, 0x37, 0xfc, 0xa2, 0xb4, 0xc1, 0xc2, 0xa9, 0xd3, 0x0d, 0x7f, 0xd1, 0xac, 0x41, 0xe8, 0x97, 0x6c, 0xb0, 0xa8, 0xeb, 0x74, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0x90, 0x32, 0x59, 0x83, 0x00, 0x3a, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0xab, 0xb1, 0x71, 0xd7, 0xf0, 0x6e, 0xcf, 0xc1, 0xe2, 0x37, 0xdb, 0x6a, 0xc3, 0x07, 0x39, 0x6b, 0xf8, 0x37, 0x67, 0xc3, 0x83, 0x37, 0x1b, 0x2e, 0xa9, 0x35, 0x9e, 0x6f, 0xb0, 0x0e, 0xb3, 0xb7, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xcb, 0x08, 0x4f, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0x05, 0x45, 0xe6, 0x06, 0x05, 0x45, 0xe6, 0xc1, 0x12, 0xb9, 0xd3, 0x36, 0x7c, 0x62, 0xb3, 0xc1, 0xd2, 0x91, 0xdd, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x96, 0xba, 0x8d, 0xae, 0xe1, 0x83, 0x9c, 0x35, 0xfc, 0x9b, 0xb3, 0xe1, 0xc1, 0x9b, 0x0d, 0x97, 0xd4, 0x1a, 0x87, 0x0e, 0xd6, 0xf8, 0xf6, 0xb6, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0xbc, 0x79, 0x7a, 0xb0, 0x94, 0xb8, 0xf7, 0x60, 0x39, 0x81, 0xed, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x06, 0xeb, 0x28, 0x4f, 0x37, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x58, 0xb9, 0xdd, 0xbb, 0xe1, 0x83, 0x9c, 0x0d, 0x96, 0x5a, 0xf7, 0x6e, 0x78, 0xf0, 0x66, 0xc3, 0xbb, 0x3d, 0x1b, 0x5e, 0xf3, 0xd9, 0x60, 0x81, 0x76, 0x6f, 0x6b, 0xb0, 0xa4, 0xb7, 0x77, 0xc3, 0x07, 0x39, 0x1b, 0xac, 0xc1, 0xed, 0xdd, 0xf0, 0xe0, 0xcd, 0x86, 0x77, 0x7b, 0x36, 0xbc, 0xe6, 0xb3, 0xc1, 0xca, 0xdd, 0xde, 0x0e, 0x56, 0x96, 0x9e, 0x6e, 0x50, 0xc2, 0x63, 0x6e, 0xb0, 0x7c, 0xf6, 0x74, 0x83, 0x85, 0x5d, 0xbb, 0x1b, 0x7e, 0x71, 0xd9, 0x60, 0x41, 0xee, 0xe9, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0xa0, 0xc8, 0x5c, 0xc3, 0x2f, 0x2e, 0x07, 0xeb, 0x8a, 0x4f, 0x0f, 0x56, 0x41, 0x9f, 0xb6, 0x1a, 0xac, 0x5a, 0x26, 0xdd, 0xa0, 0x50, 0xee, 0xdc, 0x60, 0x49, 0x91, 0xed, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x51, 0x11, 0xba, 0xc1, 0xea, 0x2a, 0xdb, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x42, 0xc5, 0xd0, 0x83, 0xc5, 0x6f, 0xb6, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0xa9, 0x69, 0xd9, 0x00, 0x3c, 0x84, 0x91, 0x91, 0x81, 0xd0, 0xbd, 0x81, 0xd0, 0x85, 0xc1, 0x95, 0x81, 0x98, 0xa5, 0xc9, 0xcd, 0xd1, 0x6d, 0x50, 0x28, 0x77, 0xae, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0xc1, 0xc9, 0x95, 0x07, 0x27, 0x3d, 0xd1, 0x83, 0x25, 0xeb, 0xb5, 0x1b, 0x7e, 0x51, 0xda, 0x60, 0xe1, 0xd4, 0xe9, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x54, 0x2b, 0xba, 0xc1, 0x32, 0xc2, 0xd3, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x89, 0xa0, 0x6d, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0xae, 0xc9, 0xb7, 0x35, 0xbc, 0xad, 0x73, 0xb0, 0x4c, 0xb3, 0xb6, 0x0e, 0xa7, 0xd8, 0x02, 0x3e, 0x5c, 0x99, 0xdc, 0xba, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xb0, 0x66, 0xcd, 0xb7, 0x01, 0xbc, 0xe1, 0xc2, 0xe4, 0xe6, 0xca, 0x40, 0xc6, 0xea, 0xc4, 0xca, 0x40, 0xcc, 0xde, 0xe4, 0xd6, 0x36, 0x28, 0x94, 0x3b, 0xd7, 0xf0, 0xe7, 0xd2, 0xe0, 0xe1, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0xa8, 0xb8, 0x6c, 0x70, 0xde, 0x3c, 0x6d, 0x83, 0x12, 0x1e, 0x73, 0xc3, 0x83, 0x3b, 0x1b, 0x2c, 0xfb, 0xac, 0xdd, 0x60, 0x85, 0x50, 0xd3, 0x06, 0xeb, 0x81, 0x41, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x4b, 0x70, 0x42, 0x37, 0x28, 0xd1, 0xf3, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x0b, 0x1f, 0x46, 0x37, 0x28, 0xd1, 0xf3, 0xeb, 0xe0, 0x70, 0x70, 0xb7, 0x1a, 0xac, 0x45, 0xf1, 0xd9, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x58, 0x8b, 0xe2, 0xd3, 0x00, 0x3e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x67, 0x61, 0x74, 0x65, 0x1b, 0x1e, 0x1f, 0xd9, 0x60, 0x2d, 0x8a, 0xcf, 0x06, 0x85, 0x72, 0xe7, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x03, 0x1e, 0xdc, 0x5b, 0x7c, 0x50, 0xd4, 0xbb, 0x1e, 0x2c, 0x59, 0xaf, 0xdd, 0xf0, 0xf8, 0xc8, 0x06, 0x63, 0x55, 0x60, 0xc3, 0x2f, 0x4a, 0x1b, 0x2c, 0x9c, 0x3a, 0xdd, 0xf0, 0x89, 0xcd, 0x06, 0x8b, 0xed, 0x6b, 0x37, 0x28, 0xe1, 0x31, 0x37, 0x58, 0xea, 0x36, 0xba, 0xc1, 0x72, 0x02, 0xdb, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0x4e, 0xc1, 0x76, 0x0d, 0x9f, 0xbb, 0x0c, 0x1e, 0x6f, 0xf8, 0xc5, 0x65, 0x83, 0x82, 0x22, 0x73, 0x0d, 0x9f, 0xbb, 0x0c, 0x5e, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0x9f, 0xbb, 0x0c, 0x0e, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0x66, 0xd7, 0xb7, 0x83, 0x75, 0x33, 0xb7, 0x07, 0x0b, 0x42, 0x6c, 0x6b, 0xd6, 0x60, 0x15, 0x27, 0xe9, 0x06, 0x85, 0x72, 0xe7, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0xac, 0x37, 0xb2, 0xdd, 0xf0, 0xb9, 0xd2, 0x06, 0x4b, 0x53, 0x45, 0x0f, 0x16, 0xef, 0xda, 0xae, 0xe1, 0xcf, 0xa5, 0x01, 0x0f, 0xed, 0xcd, 0x3c, 0x58, 0x9a, 0x2a, 0xda, 0x06, 0x6b, 0xd1, 0x99, 0x36, 0x38, 0xad, 0x9c, 0x6d, 0xb0, 0x16, 0x9d, 0x69, 0x0d, 0x0f, 0x4a, 0x6e, 0x70, 0x5a, 0x39, 0xdb, 0x70, 0x49, 0xad, 0x71, 0xe8, 0x60, 0xe1, 0x95, 0x6d, 0x1b, 0xac, 0x45, 0x67, 0x5a, 0xc3, 0x83, 0x92, 0x1b, 0x9c, 0x56, 0xce, 0x36, 0x5c, 0x52, 0x6b, 0x3c, 0x3f, 0x58, 0x78, 0x65, 0xdb, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x3b, 0x0e, 0xba, 0xc1, 0xe2, 0x87, 0xdf, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0xba, 0x82, 0xd1, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0x92, 0x80, 0xdf, 0x36, 0x58, 0xaa, 0xf1, 0x5b, 0x87, 0x53, 0xac, 0x35, 0x58, 0xfc, 0xe5, 0xb3, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xb0, 0xf8, 0xcb, 0xa7, 0x01, 0xf8, 0xc0, 0xc2, 0x02, 0x91, 0x2b, 0x23, 0xab, 0x73, 0x23, 0x0b, 0x73, 0xa3, 0x63, 0x01, 0x51, 0x2b, 0x9b, 0xa3, 0xdb, 0xf0, 0xf8, 0xc8, 0x06, 0x8b, 0xbf, 0x7c, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x36, 0x58, 0x85, 0x78, 0x7b, 0xb0, 0xe0, 0xfd, 0x73, 0xc3, 0xe3, 0x23, 0x1b, 0x8c, 0x55, 0x81, 0x0d, 0xbf, 0x28, 0x6d, 0xb0, 0x70, 0xea, 0x74, 0xc3, 0x5f, 0x34, 0x1b, 0x2c, 0x91, 0xac, 0xdd, 0xa0, 0x84, 0xc7, 0xdc, 0x60, 0x99, 0x66, 0xed, 0x06, 0x2b, 0x3b, 0x6b, 0x37, 0x28, 0x76, 0x34, 0xd7, 0xf0, 0x6f, 0xce, 0x06, 0x0b, 0x2c, 0x6f, 0x0f, 0xd6, 0xde, 0xd6, 0x1e, 0x2c, 0xf1, 0xad, 0x3d, 0x9c, 0x62, 0x87, 0x53, 0x6c, 0x01, 0x7c, 0xed, 0xd2, 0xe4, 0xe8, 0xea, 0xc2, 0xd8, 0xd2, 0xf4, 0xc2, 0xe8, 0xd2, 0xde, 0xdc, 0x65, 0x00, 0x3e, 0x68, 0xdc, 0x74, 0x40, 0xec, 0xd2, 0xe4, 0xe8, 0xea, 0xc2, 0xd8, 0xd2, 0xf4, 0xc2, 0xe8, 0xd2, 0xde, 0xdc, 0x16, 0xf0, 0xe7, 0xde, 0xcc, 0xe8, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xe5, 0x83, 0xbf, 0x0d, 0xe0, 0x67, 0x97, 0x26, 0x47, 0x57, 0x17, 0xc6, 0x06, 0x32, 0xc6, 0x16, 0xd6, 0xb6, 0x41, 0xa1, 0xdc, 0xb9, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb4, 0x30, 0xf7, 0x20, 0x94, 0xc6, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb3, 0x3a, 0xf2, 0x20, 0x4c, 0xc7, 0x36, 0xbc, 0xdb, 0xb3, 0xc1, 0x02, 0x40, 0xd6, 0x35, 0x38, 0x0f, 0x76, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0x28, 0xf3, 0xb7, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0x62, 0xd0, 0xdf, 0x6a, 0x35, 0x58, 0xb7, 0xe8, 0xb3, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xb0, 0x6e, 0xd1, 0xa7, 0x01, 0xf0, 0x6e, 0x8e, 0x2d, 0xac, 0x0d, 0x24, 0x0c, 0xe4, 0x2c, 0x8c, 0xae, 0x0c, 0xe4, 0xcd, 0x0d, 0x24, 0x0c, 0x64, 0x2e, 0xac, 0x0d, 0x8e, 0xad, 0x0c, 0xa4, 0x6e, 0x2e, 0xcd, 0xed, 0x0c, 0x44, 0x2e, 0xec, 0x0e, 0xc4, 0xed, 0x6d, 0x6c, 0x8d, 0x05, 0xa4, 0xce, 0x8d, 0x2e, 0x0f, 0xae, 0x8c, 0x6c, 0xc3, 0xe3, 0x23, 0x1b, 0xac, 0x5b, 0xf4, 0xd9, 0xf0, 0x8b, 0xd2, 0x1a, 0xfe, 0x5c, 0xda, 0xd0, 0xe2, 0x63, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x3b, 0x0b, 0xa3, 0x0f, 0xc2, 0x74, 0x6c, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x73, 0x61, 0xed, 0x41, 0x98, 0x8e, 0xb5, 0xc1, 0x82, 0x90, 0xa5, 0x0d, 0x9f, 0x02, 0x6e, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xdc, 0x1d, 0x24, 0xaa, 0x56, 0x6d, 0x10, 0xb0, 0xac, 0x6b, 0x78, 0xe3, 0xee, 0x20, 0x51, 0xb6, 0x6a, 0x0d, 0xbf, 0xb8, 0x6c, 0x70, 0x5c, 0x9e, 0x59, 0xc3, 0x1b, 0x77, 0x87, 0xdf, 0x6f, 0x0e, 0x0a, 0x4a, 0xf1, 0x0d, 0x96, 0x05, 0x00, 0x1f, 0x04, 0x2b, 0xeb, 0x0a, 0xf8, 0x6d, 0x75, 0x72, 0xe5, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0x6a, 0x05, 0xe0, 0x06, 0xe0, 0xad, 0xce, 0x8d, 0x2e, 0x0f, 0xae, 0x8c, 0x0c, 0xa4, 0xce, 0x2d, 0x8d, 0x2e, 0x4c, 0x2e, 0x0f, 0xc4, 0x2e, 0x4d, 0x8e, 0xae, 0x2e, 0x8c, 0x6d, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x52, 0x74, 0xe0, 0xe0, 0xac, 0xa3, 0xb0, 0xe1, 0x2f, 0x9a, 0x0d, 0x0e, 0xc3, 0x02, 0x1b, 0x14, 0xa4, 0xb1, 0x03, 0x1e, 0xdd, 0x9b, 0xbb, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x6b, 0x74, 0x88, 0x5a, 0xc3, 0x2f, 0x2e, 0x1b, 0xac, 0xf4, 0x18, 0xdd, 0x60, 0x01, 0xfd, 0xef, 0x06, 0x01, 0xcb, 0xba, 0xc1, 0xb2, 0x00, 0xe0, 0x83, 0x82, 0x78, 0x7c, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xc3, 0x83, 0x22, 0x15, 0x73, 0x83, 0x63, 0xb8, 0xc1, 0x06, 0xc7, 0x70, 0x83, 0x0d, 0x16, 0x84, 0x2c, 0x6d, 0x78, 0x5a, 0x67, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0xe3, 0xee, 0x60, 0x75, 0x87, 0xdb, 0x1a, 0x7e, 0x71, 0x39, 0x58, 0x68, 0x00, 0x7c, 0xb0, 0x28, 0x00, 0xb8, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0x28, 0x26, 0x31, 0x37, 0x08, 0xe9, 0xd4, 0x8d, 0x43, 0x1b, 0xac, 0x79, 0x01, 0x6e, 0x83, 0x82, 0x22, 0x73, 0x83, 0x63, 0xb8, 0xc1, 0x86, 0xb7, 0x75, 0x36, 0x08, 0x8f, 0xb4, 0x83, 0x95, 0x64, 0xc0, 0x2b, 0xe0, 0xb7, 0xbd, 0xbd, 0xad, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xeb, 0xe1, 0x80, 0x1b, 0x00, 0xdf, 0xc6, 0xde, 0xdc, 0xec, 0xca, 0xe4, 0xe8, 0x40, 0x4a, 0xe8, 0xde, 0xdc, 0xca, 0x40, 0xe8, 0xde, 0x40, 0x4a, 0xe8, 0xde, 0xde, 0xdc, 0x58, 0x40, 0xe4, 0xca, 0xdc, 0xc8, 0xca, 0xe4, 0xd2, 0xdc, 0xce, 0x40, 0xe6, 0xe8, 0xc2, 0xc6, 0xd6, 0x40, 0xcc, 0xe4, 0xc2, 0xda, 0xca, 0xe6, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x36, 0x58, 0xf3, 0x02, 0xbc, 0xe1, 0xdf, 0xf9, 0x35, 0x48, 0x68, 0x21, 0xae, 0x0d, 0x7f, 0xd1, 0xac, 0xe1, 0xdf, 0xf9, 0x35, 0x48, 0xa3, 0x0e, 0xae, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0x28, 0x26, 0x31, 0xd7, 0xf0, 0xb9, 0xd2, 0x06, 0x41, 0x6c, 0x7a, 0x70, 0x88, 0xe9, 0x38, 0x58, 0x49, 0x06, 0xbc, 0x86, 0xb7, 0x75, 0x0e, 0x56, 0x92, 0x01, 0x6f, 0x70, 0xc0, 0xa2, 0x5b, 0xc3, 0x2f, 0x2e, 0x1b, 0x84, 0x1b, 0xea, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x44, 0xaa, 0x5e, 0xc3, 0xdb, 0x3a, 0x1b, 0x94, 0xf7, 0x71, 0x6d, 0xb0, 0x00, 0x2a, 0xaf, 0x96, 0x59, 0x83, 0x55, 0x14, 0x79, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xab, 0x28, 0xf2, 0x1a, 0x80, 0x37, 0xb9, 0xb0, 0x3b, 0x90, 0x39, 0xba, 0xb0, 0xb1, 0x35, 0x10, 0x33, 0xb9, 0xb0, 0xb6, 0x32, 0x10, 0xba, 0x37, 0x10, 0xba, 0x30, 0xb7, 0x75, 0x25, 0x00, 0x8d, 0x49, 0x4a, 0x40, 0x40, 0xb6, 0x4a, 0xd0, 0xea, 0xdc, 0xd6, 0x40, 0xe4, 0xca, 0xcc, 0x7a, 0x54, 0x40, 0xe0, 0xc2, 0xe8, 0xd0, 0xba, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x74, 0x74, 0x40, 0x40, 0xcc, 0xc2, 0xd2, 0xd8, 0xca, 0xc8, 0x40, 0xe6, 0xc6, 0xe4, 0xf2, 0x40, 0x50, 0xb6, 0xfc, 0x40, 0xfc, 0xba, 0x52, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0x74, 0x4f, 0x6f, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x74, 0x61, 0xe7, 0xc1, 0x51, 0x1b, 0x74, 0x0d, 0x7f, 0x2e, 0x6d, 0x50, 0xd4, 0x16, 0x1f, 0x84, 0xe9, 0x58, 0x1b, 0xfe, 0xa2, 0xd9, 0xe0, 0x4c, 0x30, 0xba, 0xc1, 0xc9, 0x41, 0x6e, 0x0d, 0x56, 0x0d, 0x04, 0xb7, 0x86, 0x27, 0xee, 0x36, 0x3c, 0x8b, 0x37, 0x78, 0x3b, 0xf8, 0x3b, 0xf8, 0x3b, 0xf8, 0x3a, 0xa8, 0x5b, 0x36, 0xfc, 0xe2, 0xb2, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x88, 0x96, 0x37, 0x28, 0x2a, 0xc5, 0xd7, 0xf0, 0xb6, 0xce, 0xc1, 0x82, 0x89, 0xe0, 0x6a, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xb0, 0x22, 0xd9, 0x67, 0x83, 0x82, 0x60, 0x76, 0x83, 0xf2, 0xbf, 0x78, 0x0d, 0x4f, 0xdc, 0x6d, 0x78, 0x16, 0xef, 0x60, 0x21, 0xb5, 0xcf, 0x06, 0x05, 0x69, 0xec, 0x1a, 0xbe, 0x6f, 0x1f, 0xf0, 0xe6, 0xde, 0xcc, 0x0d, 0x4a, 0xe8, 0xd8, 0x35, 0x08, 0xfd, 0x92, 0x0d, 0xca, 0x26, 0xcc, 0x0d, 0xce, 0x48, 0xa8, 0x1d, 0x84, 0xe9, 0xd8, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xe5, 0x83, 0xbf, 0xad, 0xe1, 0x6d, 0x9d, 0x83, 0x03, 0x14, 0x6a, 0x6b, 0xb8, 0xa4, 0xd6, 0x78, 0x7e, 0x50, 0xfe, 0x17, 0xd7, 0x06, 0x25, 0x3c, 0xe6, 0x1a, 0x2c, 0xe7, 0x09, 0x6e, 0x83, 0x85, 0x33, 0xc1, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0xfe, 0x5c, 0x5b, 0x1e, 0xdd, 0x1a, 0xde, 0xd6, 0x19, 0xbc, 0x3e, 0x58, 0xb9, 0x15, 0xdc, 0x6a, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0x60, 0xb1, 0xbf, 0xcf, 0x06, 0xc5, 0x80, 0xec, 0x06, 0xe5, 0x7f, 0xf1, 0x1a, 0x9e, 0xb8, 0xdb, 0xf0, 0x2c, 0xde, 0xc1, 0xda, 0x8b, 0x9f, 0x0d, 0x4f, 0xdc, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x82, 0x68, 0x79, 0x83, 0xa2, 0x52, 0xfc, 0xa0, 0xec, 0x33, 0x5e, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0xac, 0x22, 0xf9, 0xd9, 0xf0, 0xc4, 0xdd, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0xeb, 0x9f, 0xb6, 0xda, 0x60, 0xf9, 0xda, 0xeb, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xe4, 0xf7, 0x3f, 0x28, 0xfb, 0x8c, 0x5b, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0xf2, 0xd8, 0x1b, 0x14, 0x04, 0xb3, 0x1b, 0x94, 0xff, 0xc5, 0x1b, 0x2c, 0xd4, 0x0b, 0xde, 0xa0, 0x20, 0x8d, 0x1d, 0xf0, 0xda, 0xc2, 0xc6, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0xfc, 0xb6, 0xb0, 0xb1, 0xb5, 0x0d, 0x4a, 0x3f, 0xe3, 0x35, 0x5c, 0x52, 0x6b, 0x1c, 0x3a, 0x28, 0xff, 0x8b, 0x6b, 0x83, 0x12, 0x1e, 0x73, 0x0d, 0x96, 0x97, 0x06, 0xb7, 0x86, 0x27, 0xee, 0x36, 0x3c, 0x8b, 0x77, 0xb0, 0x52, 0xeb, 0x67, 0x83, 0x82, 0x34, 0x76, 0x83, 0xe5, 0x3c, 0xc1, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x96, 0x29, 0x78, 0x0d, 0x6f, 0xeb, 0x1c, 0x1c, 0x18, 0x46, 0x5b, 0xc3, 0xdb, 0x3a, 0x83, 0xd7, 0x07, 0x0b, 0x6f, 0x83, 0xdb, 0xa0, 0x84, 0xc7, 0xdc, 0x60, 0xe5, 0x56, 0xf0, 0x1a, 0x9e, 0xb8, 0xdb, 0xf0, 0x2c, 0xde, 0xc1, 0xb2, 0xbc, 0x9f, 0x83, 0x95, 0x66, 0xc1, 0xab, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x44, 0x7c, 0xe0, 0x0d, 0x0a, 0xd2, 0xd8, 0x35, 0x7c, 0xdf, 0xbe, 0xc1, 0x72, 0x9e, 0xe0, 0x0d, 0x4a, 0xe8, 0xd8, 0x35, 0x08, 0xfd, 0x92, 0x0d, 0xca, 0x26, 0xcc, 0x35, 0xfc, 0x3b, 0xbf, 0x06, 0x89, 0xf8, 0xc0, 0xd5, 0x41, 0x98, 0x8e, 0xad, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x5a, 0xa6, 0xe0, 0x35, 0xbc, 0xad, 0x73, 0xb0, 0x2e, 0x3e, 0xb8, 0x83, 0xb2, 0xcf, 0x78, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x95, 0x5b, 0xc1, 0x6b, 0x78, 0xe2, 0x6e, 0xc3, 0xb3, 0x78, 0x07, 0x4b, 0x43, 0x7f, 0x36, 0x38, 0xe7, 0x2f, 0xad, 0xe1, 0x8d, 0xbb, 0x83, 0x03, 0xc9, 0xe8, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0xb3, 0x78, 0x07, 0x2b, 0x64, 0x7f, 0x0e, 0xca, 0x32, 0xcf, 0x0d, 0x8e, 0xae, 0x83, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xe5, 0x61, 0xc1, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0xf8, 0x60, 0x11, 0x5a, 0x70, 0x6b, 0xb0, 0xd2, 0xc5, 0x69, 0x83, 0x41, 0x2a, 0xb5, 0x86, 0xb7, 0x75, 0x06, 0x87, 0x07, 0x8f, 0x0f, 0x16, 0xa1, 0x05, 0x6f, 0xb0, 0xd2, 0xc5, 0x69, 0x83, 0x82, 0x67, 0x73, 0x0d, 0x6f, 0xeb, 0x0c, 0x1e, 0x1f, 0x2c, 0x55, 0x11, 0xde, 0xa0, 0x20, 0x8d, 0xdd, 0x50, 0xf3, 0xd7, 0xf0, 0x8b, 0xd2, 0x06, 0xe7, 0x9b, 0x93, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x98, 0x31, 0x78, 0x83, 0x44, 0xb8, 0xe0, 0xc3, 0x43, 0x3f, 0x1b, 0x9e, 0xb8, 0xdb, 0xf0, 0x2c, 0xde, 0xa0, 0x7c, 0xf0, 0x6d, 0xd9, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x87, 0xdf, 0x6f, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf0, 0xc1, 0x20, 0x95, 0xaa, 0x41, 0xc1, 0xb2, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x72, 0x27, 0xe1, 0x35, 0xbc, 0xad, 0x33, 0x78, 0x7c, 0x30, 0x48, 0xa5, 0x6a, 0xf0, 0x6e, 0x50, 0x37, 0xf8, 0xb6, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xdc, 0x49, 0x78, 0x0d, 0x6f, 0xeb, 0x0c, 0x0e, 0x1f, 0x14, 0x3c, 0x9b, 0x35, 0x28, 0x58, 0x36, 0xfc, 0xe2, 0xb2, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xee, 0x24, 0xbc, 0x86, 0xb7, 0x75, 0x06, 0x8f, 0x0f, 0x0a, 0x9e, 0xcd, 0x3a, 0x58, 0xac, 0x00, 0x54, 0xab, 0x41, 0x79, 0x1f, 0xb7, 0xe1, 0xeb, 0x97, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xfa, 0x28, 0xf1, 0xc1, 0x4a, 0x32, 0xe0, 0x0d, 0x0a, 0xd2, 0xd8, 0x01, 0x2f, 0xaf, 0x8c, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xf4, 0x9c, 0xdc, 0x60, 0xc9, 0xa0, 0x70, 0x1b, 0x14, 0x3b, 0x9a, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x37, 0x8a, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x25, 0x8b, 0xc2, 0x1d, 0xa4, 0x0a, 0xd2, 0x6e, 0xb0, 0x64, 0x50, 0x78, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x13, 0x41, 0xdb, 0x1a, 0xde, 0xed, 0xd9, 0xe0, 0x60, 0x21, 0xb8, 0x41, 0xe2, 0x6e, 0xea, 0xc1, 0xa2, 0x48, 0xe1, 0x0d, 0x5f, 0xbf, 0x6c, 0xb0, 0x64, 0x50, 0x78, 0x83, 0x25, 0xd5, 0x49, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xd3, 0x5b, 0xdc, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0x29, 0xe0, 0x06, 0x6b, 0x32, 0x85, 0x0f, 0x92, 0x76, 0x53, 0x0f, 0x16, 0x45, 0x0a, 0x6f, 0x50, 0x18, 0xaa, 0xae, 0xe1, 0x8d, 0xbb, 0x83, 0x35, 0x6d, 0xc1, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0xac, 0xa9, 0xa7, 0x6b, 0x0d, 0xcf, 0xe2, 0x0d, 0xbe, 0x0d, 0x3e, 0x0f, 0xbe, 0x0e, 0x9e, 0x0e, 0x0e, 0x0f, 0x0e, 0x0f, 0x5e, 0x0e, 0x4e, 0x0e, 0x0a, 0x96, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0x33, 0x06, 0x6f, 0x90, 0x08, 0x17, 0xbc, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0x0a, 0x78, 0xb0, 0x22, 0x53, 0xb8, 0x0e, 0x16, 0x63, 0x02, 0x75, 0x38, 0xc5, 0x3a, 0x9c, 0x62, 0x87, 0x53, 0xac, 0x35, 0x58, 0x85, 0x0e, 0xb4, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xb0, 0x0a, 0x1d, 0xa8, 0x01, 0x78, 0xa2, 0xcb, 0x83, 0x2b, 0x23, 0x03, 0xa9, 0x73, 0x4b, 0xa3, 0x0b, 0x93, 0xcb, 0x03, 0xb1, 0x4b, 0x93, 0xa3, 0xab, 0x0b, 0x63, 0xdb, 0xf0, 0xf8, 0xc8, 0x06, 0xab, 0xd0, 0x81, 0x36, 0x28, 0x94, 0x3b, 0x37, 0x58, 0x3b, 0x02, 0xbc, 0xe1, 0x2f, 0x9a, 0x35, 0x08, 0xfd, 0x92, 0x0d, 0xca, 0x26, 0xcc, 0x35, 0x08, 0xa0, 0xb3, 0x0d, 0x0f, 0x4a, 0x6e, 0x10, 0x80, 0x6c, 0x07, 0x2b, 0x3d, 0x46, 0xdb, 0xa0, 0x20, 0x8d, 0x1d, 0xf0, 0xda, 0xea, 0xe4, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x58, 0xad, 0x00, 0xdc, 0xc1, 0x3a, 0x8f, 0xd1, 0x0d, 0x4a, 0x78, 0xcc, 0x35, 0x58, 0x96, 0x31, 0xdc, 0x06, 0x05, 0x45, 0xe6, 0x06, 0xc7, 0x70, 0x83, 0x83, 0x85, 0x11, 0xc3, 0x87, 0x53, 0x6c, 0x01, 0xbf, 0xed, 0x6d, 0x6c, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x58, 0xfa, 0x32, 0xdc, 0x00, 0x7e, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x20, 0x6e, 0x6f, 0x63, 0x6b, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x6d, 0x68, 0xf1, 0x71, 0x10, 0xa6, 0x63, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x33, 0x7b, 0x63, 0x0f, 0xc2, 0x74, 0xac, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0x62, 0x1c, 0xd1, 0x0d, 0xc2, 0x69, 0x6c, 0x83, 0x22, 0x15, 0x73, 0x83, 0xd0, 0x2f, 0xd9, 0xa0, 0x6c, 0xc2, 0xdc, 0xe0, 0x30, 0x2c, 0x50, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0xac, 0x87, 0x03, 0x6e, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x68, 0x06, 0x78, 0x0d, 0xbf, 0xb8, 0x6c, 0xf8, 0x14, 0x70, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0xb0, 0x69, 0xb8, 0x36, 0x58, 0x83, 0x77, 0x5a, 0xab, 0xc1, 0x92, 0x94, 0xa0, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x25, 0x29, 0x41, 0x0d, 0xe0, 0x49, 0x97, 0x07, 0x57, 0x46, 0x06, 0x62, 0x97, 0x26, 0x47, 0x57, 0x17, 0xc6, 0xb6, 0xe1, 0xf1, 0x91, 0x0d, 0x96, 0xa4, 0x04, 0x6d, 0x50, 0x28, 0x77, 0x6e, 0xb0, 0x76, 0x04, 0x78, 0x83, 0x82, 0x34, 0x76, 0xc0, 0x6b, 0xab, 0x23, 0xd7, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xdb, 0xea, 0xe8, 0xca, 0x0e, 0xd6, 0x79, 0x8c, 0x6e, 0x10, 0xa4, 0xa7, 0x6b, 0x1c, 0xda, 0x60, 0xe1, 0xe3, 0x70, 0x6b, 0x10, 0xb0, 0x41, 0x1b, 0x7e, 0x71, 0xd9, 0x60, 0x15, 0x98, 0xec, 0x1a, 0x3e, 0x77, 0x19, 0x1c, 0x3e, 0x58, 0x18, 0x31, 0xdc, 0x1a, 0x84, 0x11, 0xd0, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0xe6, 0x24, 0xbb, 0x86, 0xcf, 0x5d, 0x06, 0x87, 0x37, 0xbc, 0xad, 0x33, 0x38, 0x7c, 0xb0, 0xa8, 0x73, 0xb8, 0x0e, 0xa7, 0xd8, 0x02, 0x7e, 0xdb, 0x9b, 0xdb, 0xb9, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xb0, 0x36, 0x77, 0xb8, 0x01, 0xfc, 0xec, 0xd2, 0xe4, 0xe8, 0xea, 0xc2, 0xd8, 0x40, 0xe6, 0xd8, 0xc2, 0xda, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0x36, 0x58, 0x0e, 0xfe, 0x7b, 0xb0, 0x30, 0x6a, 0x78, 0xc3, 0x5f, 0x34, 0x1b, 0xac, 0xfa, 0x04, 0xde, 0xa0, 0xd8, 0xd1, 0x5c, 0x83, 0x62, 0x12, 0x73, 0x83, 0x53, 0x36, 0xc6, 0x06, 0x0b, 0xc9, 0x7f, 0x5b, 0xc3, 0x2f, 0x2e, 0x1b, 0x84, 0x1b, 0xea, 0x41, 0x59, 0xe7, 0xb9, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0xd2, 0x97, 0xe1, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0x2e, 0xa9, 0x0d, 0xd6, 0x73, 0x0f, 0xaf, 0xc1, 0x31, 0xe6, 0x6c, 0xc3, 0xdb, 0x3a, 0x1b, 0xac, 0x52, 0xff, 0xad, 0x83, 0x45, 0x3b, 0xc0, 0x07, 0x4b, 0xe2, 0x86, 0x57, 0x83, 0x35, 0x3a, 0x44, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0x6b, 0x74, 0x88, 0x1a, 0xc0, 0x5f, 0x2e, 0xec, 0x0e, 0xc4, 0x2e, 0x4d, 0x8e, 0xae, 0x2e, 0x8c, 0x0d, 0xc4, 0xed, 0x6d, 0x6c, 0x6d, 0xc3, 0xe3, 0x23, 0x1b, 0xac, 0xd1, 0x21, 0xda, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x80, 0x77, 0xae, 0x4e, 0x4c, 0xad, 0x6c, 0x8c, 0x3e, 0x08, 0xd3, 0xb1, 0x35, 0xfc, 0xb9, 0x34, 0xc0, 0x6b, 0xf6, 0x26, 0xd7, 0x56, 0xc7, 0x16, 0x1e, 0x84, 0xe9, 0x58, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x9f, 0x1b, 0x93, 0xcb, 0x0f, 0x16, 0x56, 0x0d, 0xb7, 0x41, 0x69, 0x6f, 0xb9, 0x41, 0x12, 0x28, 0xf1, 0x06, 0x07, 0x2c, 0xba, 0x35, 0xfc, 0x45, 0xb3, 0xc1, 0xaa, 0x4c, 0xe0, 0x0d, 0x4e, 0x0e, 0x72, 0x6b, 0xb0, 0x1e, 0x84, 0xb8, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0xb8, 0xa1, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0xd2, 0x47, 0x89, 0x6b, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0x91, 0x8a, 0x79, 0x70, 0x88, 0xe9, 0xd8, 0xa0, 0x20, 0x8d, 0xdd, 0x20, 0x58, 0x96, 0xd6, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0x60, 0x8d, 0x0e, 0xf1, 0x86, 0x4b, 0x6a, 0x8d, 0x43, 0x07, 0x6b, 0x74, 0x88, 0x6b, 0x83, 0x62, 0x47, 0x73, 0x0d, 0x8a, 0x49, 0xcc, 0x0d, 0x42, 0x3a, 0x75, 0xe3, 0xd0, 0x41, 0x00, 0x56, 0xad, 0xe1, 0x6d, 0x9d, 0x83, 0x00, 0xac, 0xda, 0xa0, 0x20, 0x8d, 0xdd, 0x20, 0x08, 0x97, 0xd6, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0x60, 0x8d, 0x0e, 0xf1, 0x86, 0x4b, 0x6a, 0x8d, 0xe7, 0x07, 0x6b, 0x74, 0x88, 0x6b, 0x83, 0x62, 0x47, 0x73, 0x0d, 0x8a, 0x49, 0xcc, 0x0d, 0x42, 0x3a, 0x75, 0xe3, 0xd0, 0x41, 0x00, 0x2e, 0x6d, 0x70, 0xb0, 0x96, 0xdb, 0xf0, 0x8b, 0xcb, 0x06, 0xcb, 0x02, 0x80, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0xe1, 0x91, 0x76, 0x10, 0x80, 0x55, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xf0, 0x48, 0x3b, 0x08, 0xc0, 0xa5, 0x56, 0xc3, 0xe7, 0x4a, 0x1b, 0x84, 0x74, 0xea, 0x1a, 0xfe, 0x5c, 0xda, 0xe0, 0x4c, 0x9f, 0x7a, 0xf8, 0xa1, 0xa6, 0x0d, 0x0a, 0xd2, 0xd8, 0x01, 0x1f, 0x2e, 0x4c, 0x8e, 0x5e, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x85, 0x97, 0x59, 0xad, 0xe1, 0x6d, 0x9d, 0x0d, 0xce, 0xf4, 0xa9, 0x07, 0x6b, 0x74, 0x88, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0x0b, 0x32, 0x88, 0x6b, 0x83, 0x12, 0x1e, 0x73, 0x0d, 0x96, 0x60, 0x12, 0xb7, 0xc1, 0x52, 0x1e, 0xe2, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0x2c, 0x00, 0x78, 0x0d, 0x6f, 0xeb, 0x0c, 0x5e, 0x1f, 0x2c, 0x68, 0x25, 0x6e, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0xe0, 0xa8, 0xae, 0xe1, 0xcf, 0xa5, 0x01, 0xfe, 0xb1, 0x37, 0xb7, 0x39, 0xba, 0x30, 0x37, 0xfa, 0x20, 0x4c, 0xc7, 0xda, 0xf0, 0x8b, 0xcb, 0x06, 0xcb, 0x02, 0x80, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0x4b, 0x80, 0x89, 0x0f, 0xd6, 0xe8, 0x10, 0xb7, 0x1a, 0x3e, 0x57, 0xda, 0x20, 0x88, 0x4d, 0x0f, 0x56, 0x5c, 0x10, 0x6f, 0x50, 0x90, 0xc6, 0x6e, 0xb0, 0x20, 0x83, 0x78, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0xd6, 0xe8, 0x10, 0x6f, 0x78, 0x5b, 0x67, 0x83, 0x05, 0x19, 0xc4, 0x07, 0x6b, 0x74, 0x88, 0xdb, 0xa0, 0xd8, 0xd1, 0x5c, 0x83, 0x62, 0x12, 0x73, 0x83, 0x90, 0x4e, 0xdd, 0x38, 0x74, 0xb0, 0x0e, 0x95, 0x78, 0x83, 0xc5, 0xa6, 0xc4, 0x1b, 0x14, 0xa4, 0xb1, 0x1b, 0xac, 0x07, 0x21, 0x5e, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x35, 0x3a, 0xc4, 0x1b, 0xde, 0xd6, 0xd9, 0x60, 0x3d, 0x08, 0xf1, 0xc1, 0x1a, 0x1d, 0xe2, 0x36, 0x28, 0x76, 0x34, 0xd7, 0xa0, 0x98, 0xc4, 0xdc, 0x20, 0xa4, 0x53, 0x0f, 0x16, 0x54, 0x11, 0xaf, 0xe1, 0x6d, 0x9d, 0x83, 0x35, 0x3a, 0xc4, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0xac, 0x43, 0x25, 0xde, 0xf0, 0xb6, 0xce, 0x06, 0xe1, 0x91, 0x76, 0xb0, 0x0e, 0x95, 0x78, 0x0d, 0xd6, 0xe8, 0x10, 0x6f, 0x78, 0x5b, 0x67, 0x83, 0xf0, 0x48, 0x3b, 0x58, 0xa3, 0x43, 0xdc, 0x6a, 0xf8, 0x5c, 0x69, 0x83, 0x90, 0x39, 0x5d, 0xc3, 0x9f, 0x4b, 0x03, 0xfc, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0xf4, 0x41, 0x98, 0x8e, 0xb5, 0x41, 0x41, 0x1a, 0xbb, 0xc1, 0xda, 0x92, 0xe2, 0x35, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x58, 0xa3, 0x43, 0xbc, 0xe1, 0x6d, 0x9d, 0x0d, 0xd6, 0x96, 0x14, 0x1f, 0xac, 0xd1, 0x21, 0x6e, 0x83, 0x62, 0x47, 0x73, 0x0d, 0x8a, 0x49, 0xcc, 0x0d, 0x42, 0x3a, 0x75, 0xe3, 0xd0, 0x06, 0x6b, 0x4b, 0x8a, 0x5b, 0xc3, 0xdb, 0x3a, 0x07, 0xeb, 0x85, 0x8a, 0x37, 0xfc, 0xe2, 0xb2, 0xc1, 0xb2, 0x00, 0xe0, 0x35, 0x58, 0x03, 0xb4, 0xb4, 0xe1, 0x6d, 0x9d, 0x0d, 0xc2, 0x23, 0xed, 0x60, 0xbd, 0x50, 0x71, 0xab, 0xe1, 0x73, 0xa5, 0x0d, 0xd6, 0xa0, 0xe1, 0x1d, 0x2c, 0x1e, 0x29, 0xde, 0xa0, 0x20, 0x8d, 0xdd, 0x60, 0x6d, 0x49, 0xf1, 0x06, 0x4b, 0x61, 0x8a, 0x37, 0x28, 0x76, 0x34, 0x37, 0x58, 0xe0, 0x53, 0xbc, 0xc1, 0xb2, 0xa2, 0xe2, 0x0d, 0x8a, 0x01, 0xd9, 0x0d, 0x16, 0x44, 0x15, 0x6f, 0xb0, 0x94, 0x87, 0x78, 0xc3, 0x2f, 0x2e, 0x1b, 0x2c, 0x0b, 0x00, 0x5e, 0xc3, 0xc7, 0x51, 0x07, 0xab, 0x9e, 0x8a, 0x5b, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0x7e, 0x70, 0x8e, 0x60, 0x3b, 0x28, 0x7e, 0xf1, 0x37, 0x28, 0x48, 0x63, 0x07, 0x0f, 0xd7, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0x60, 0x8d, 0x0e, 0xf1, 0x86, 0xb7, 0x75, 0x06, 0x0f, 0x0f, 0xd6, 0xe8, 0x10, 0xb7, 0x41, 0xb1, 0xa3, 0xb9, 0x06, 0xc5, 0x24, 0xe6, 0x06, 0x21, 0x9d, 0x7a, 0x50, 0x3a, 0xbf, 0x6f, 0x78, 0x5a, 0x67, 0x83, 0x82, 0x34, 0x76, 0x70, 0x71, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0xd6, 0xe8, 0x10, 0x6f, 0x78, 0x5b, 0x67, 0x70, 0xf1, 0x60, 0x8d, 0x0e, 0x71, 0x1b, 0x14, 0x3b, 0x9a, 0x6b, 0x50, 0x4c, 0x62, 0x6e, 0x10, 0xd2, 0xa9, 0x07, 0x45, 0x1f, 0xed, 0x86, 0xf7, 0x82, 0x36, 0xfc, 0xe2, 0xb2, 0xc1, 0xb2, 0x00, 0xe0, 0x35, 0xfc, 0x9b, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x08, 0x8f, 0xb4, 0xc3, 0x83, 0x3b, 0x1b, 0xde, 0xd6, 0xd9, 0x20, 0x3c, 0xd2, 0x0e, 0x9f, 0x07, 0xb5, 0x1a, 0x3e, 0x57, 0x5a, 0x43, 0x06, 0xfc, 0xe0, 0x24, 0x3d, 0xb3, 0x86, 0x3f, 0x97, 0x36, 0x38, 0x54, 0x97, 0x1d, 0x84, 0xe9, 0xd8, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xf2, 0xca, 0xe6, 0x83, 0x30, 0x1d, 0x5b, 0xc3, 0x9f, 0x4b, 0x03, 0xef, 0xf6, 0x1e, 0x84, 0xe9, 0x58, 0x1b, 0x14, 0xa4, 0xb1, 0x03, 0x7c, 0x72, 0x65, 0x73, 0x75, 0x6c, 0xf4, 0x1a, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0xac, 0xd1, 0x21, 0xde, 0xf0, 0xb6, 0xce, 0x06, 0x87, 0xea, 0xb2, 0x83, 0x35, 0x3a, 0xc4, 0x6d, 0x50, 0xec, 0x68, 0xae, 0x41, 0x31, 0x89, 0xb9, 0x41, 0x48, 0xa7, 0x6e, 0x1c, 0xda, 0x60, 0xed, 0x74, 0x71, 0x6b, 0x78, 0x5b, 0xe7, 0x60, 0x71, 0x7a, 0xf1, 0x06, 0x27, 0x07, 0xb9, 0x35, 0x08, 0x8f, 0xb4, 0x83, 0xc5, 0xe9, 0xc5, 0x1b, 0x2c, 0xe5, 0x21, 0x5e, 0x83, 0x80, 0x0d, 0xda, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0x60, 0x8d, 0x0e, 0xf1, 0x86, 0xb7, 0x75, 0x36, 0x58, 0x86, 0x5c, 0x7c, 0xb0, 0x46, 0x87, 0xb8, 0x35, 0x08, 0x23, 0xa0, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0xd6, 0xe8, 0x10, 0x6f, 0x78, 0x5b, 0x67, 0xe0, 0xdd, 0xde, 0x83, 0x35, 0x3a, 0xc4, 0xb5, 0x1a, 0x3e, 0x57, 0x5a, 0x43, 0x06, 0xfc, 0xe0, 0x28, 0x41, 0xb3, 0xc1, 0x9a, 0x0b, 0xe2, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0xfa, 0xe1, 0xda, 0x83, 0x30, 0x1d, 0x6b, 0x83, 0x82, 0x34, 0x76, 0x83, 0x05, 0x19, 0xc4, 0x1b, 0x2c, 0xd8, 0x26, 0xde, 0xa0, 0xd8, 0xd1, 0xdc, 0x60, 0x19, 0x3a, 0xf1, 0x06, 0x8b, 0x4d, 0x89, 0x37, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x0d, 0x56, 0x40, 0x14, 0xaf, 0xc1, 0x1a, 0x1d, 0xe2, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0x7e, 0xb8, 0xf6, 0x60, 0x8d, 0x0e, 0x71, 0xab, 0xe1, 0x73, 0xa5, 0x35, 0x64, 0xc0, 0x0f, 0xce, 0x31, 0x73, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x60, 0x59, 0x3a, 0x08, 0xd3, 0xb1, 0x83, 0x05, 0x1a, 0xc6, 0x1b, 0x14, 0xa4, 0xb1, 0x1b, 0x04, 0xcb, 0xd2, 0x1a, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0xac, 0xd1, 0x21, 0xde, 0xf0, 0xb6, 0xce, 0x06, 0xc1, 0xb2, 0x74, 0xb0, 0x46, 0x87, 0xb8, 0x0d, 0x8a, 0x1d, 0xcd, 0x0d, 0x16, 0x6a, 0x11, 0x6f, 0xb0, 0x2a, 0x8c, 0x78, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x75, 0xa8, 0xc4, 0x1b, 0x7e, 0x71, 0xd9, 0x60, 0x71, 0x20, 0xf1, 0xc1, 0x52, 0x53, 0xe2, 0x83, 0xb5, 0x31, 0xc6, 0xab, 0xe1, 0x73, 0xa5, 0x35, 0x64, 0xc0, 0x0f, 0x12, 0x55, 0xab, 0x36, 0x58, 0x09, 0x49, 0xbc, 0x86, 0x3f, 0x97, 0x36, 0xcc, 0xd0, 0x41, 0x98, 0x8e, 0xb5, 0x41, 0x41, 0x1a, 0xbb, 0x61, 0x86, 0xd6, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0x60, 0x8d, 0x0e, 0xf1, 0x86, 0xb7, 0x75, 0x36, 0xcc, 0xd0, 0xc1, 0x1a, 0x1d, 0xe2, 0x36, 0x28, 0x76, 0x34, 0xd7, 0xa0, 0x98, 0xc4, 0xdc, 0x20, 0xa4, 0x53, 0x37, 0x0e, 0x6d, 0x98, 0xa1, 0xd6, 0xf0, 0xb6, 0xce, 0xc1, 0x9a, 0x45, 0xe3, 0x0d, 0x0a, 0xd2, 0xd8, 0x01, 0x2f, 0x4c, 0xae, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0xe5, 0x24, 0xde, 0x60, 0x35, 0x28, 0xf1, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0x3c, 0xd2, 0x0e, 0xd6, 0x2c, 0x1a, 0xb7, 0x41, 0x09, 0x8f, 0xb9, 0x06, 0x4b, 0x25, 0x8d, 0xdb, 0x60, 0x29, 0x0f, 0xf1, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0xeb, 0x50, 0x89, 0x0f, 0x56, 0x6c, 0x1a, 0xaf, 0xc1, 0x1a, 0x1d, 0xe2, 0x0d, 0x6f, 0xeb, 0x0c, 0x5e, 0x1f, 0xac, 0x17, 0x35, 0x6e, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x41, 0xa2, 0x6c, 0xd5, 0x1a, 0x3e, 0x57, 0xda, 0x60, 0x25, 0x24, 0xf1, 0x1a, 0xfe, 0x5c, 0xda, 0xe0, 0x44, 0xeb, 0x71, 0x10, 0xa6, 0x63, 0xad, 0xe1, 0xcf, 0xa5, 0x01, 0x3e, 0xba, 0x30, 0xb9, 0xb3, 0x32, 0xfa, 0x20, 0x4c, 0xc7, 0xda, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0xf0, 0xe0, 0xcd, 0xc1, 0x6a, 0x50, 0xe2, 0x0d, 0x96, 0xf2, 0x10, 0x6f, 0x50, 0x90, 0xc6, 0x6e, 0xb0, 0xe4, 0xd8, 0x78, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0xd6, 0xe8, 0x10, 0x6f, 0x78, 0x5b, 0x67, 0x83, 0x25, 0xc7, 0xc6, 0x07, 0x6b, 0x74, 0x88, 0xdb, 0xa0, 0xd8, 0xd1, 0x5c, 0x83, 0x62, 0x12, 0x73, 0x83, 0x90, 0x4e, 0xdd, 0x38, 0xb4, 0xc1, 0x92, 0x63, 0xe3, 0xd6, 0xf0, 0xb6, 0xce, 0xc1, 0x6a, 0x76, 0xe3, 0x0d, 0x0a, 0xd2, 0xd8, 0x0d, 0x4e, 0xb4, 0x1e, 0x6b, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xb0, 0x46, 0x87, 0x78, 0xc3, 0xdb, 0x3a, 0x1b, 0x9c, 0x68, 0x3d, 0x0e, 0xd6, 0xe8, 0x10, 0xb7, 0x41, 0xb1, 0xa3, 0xb9, 0x06, 0xc5, 0x24, 0xe6, 0x06, 0x21, 0x9d, 0xba, 0x71, 0xe8, 0xe0, 0x3c, 0xeb, 0xb1, 0x86, 0xb7, 0x75, 0x0e, 0xce, 0xb3, 0x1e, 0x1b, 0x14, 0xa4, 0xb1, 0x6b, 0xf8, 0xbe, 0x7d, 0x80, 0xaf, 0xad, 0x8e, 0x2e, 0xcc, 0x8d, 0xde, 0xa0, 0x84, 0x8e, 0xdd, 0xe0, 0x9c, 0x64, 0x75, 0x10, 0xa6, 0x63, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x65, 0x64, 0x69, 0x74, 0x1b, 0xac, 0x06, 0x25, 0x5e, 0xc3, 0xdb, 0x3a, 0x1b, 0x84, 0x47, 0xda, 0xc1, 0x6a, 0x76, 0xe3, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x78, 0xa4, 0x1d, 0x9c, 0x67, 0x3d, 0xda, 0xa0, 0x84, 0xc7, 0x5c, 0x83, 0x05, 0x13, 0xc7, 0x6d, 0xb0, 0x94, 0x87, 0x78, 0xc3, 0x2f, 0x2e, 0x1b, 0x2c, 0x0b, 0x00, 0x5e, 0xc3, 0xdb, 0x3a, 0x83, 0xd7, 0x07, 0xcb, 0x65, 0x8e, 0x5b, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0x7e, 0x90, 0x04, 0x6d, 0xb7, 0x86, 0x3f, 0x97, 0x36, 0x58, 0x35, 0x10, 0x7c, 0xf8, 0xa1, 0xe6, 0x60, 0x81, 0x86, 0xf1, 0x06, 0x05, 0x69, 0xec, 0x06, 0xeb, 0x87, 0x6b, 0xd7, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0x0e, 0xd6, 0xc6, 0x18, 0x6f, 0x50, 0xec, 0x68, 0xae, 0x41, 0x31, 0x89, 0xb9, 0x41, 0x48, 0xa7, 0x6e, 0x1c, 0x3a, 0x58, 0x3d, 0x5c, 0xbb, 0xc1, 0x12, 0xe1, 0xda, 0x0d, 0x0a, 0x43, 0xd5, 0x0d, 0x96, 0x05, 0x00, 0x6f, 0xb0, 0x20, 0x64, 0x69, 0x83, 0xc5, 0xa6, 0xc4, 0x1b, 0x7e, 0x71, 0xd9, 0x20, 0x9d, 0xd9, 0x6e, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0x6a, 0x20, 0xf8, 0x60, 0x8d, 0x0e, 0xf1, 0x86, 0xc7, 0x64, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0xe1, 0x91, 0x76, 0xb0, 0x7a, 0xb8, 0xb6, 0xd5, 0xf0, 0xb9, 0xd2, 0x06, 0xab, 0x84, 0x8e, 0xd7, 0xf0, 0xb9, 0xd2, 0x06, 0xeb, 0x8b, 0x8e, 0xd7, 0xf0, 0xe7, 0xd2, 0x80, 0x3f, 0xc6, 0x56, 0x57, 0x1e, 0x84, 0xe9, 0x58, 0x07, 0x0b, 0x34, 0x8c, 0x37, 0x28, 0x48, 0x63, 0x37, 0x58, 0x61, 0x78, 0xbc, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0x6b, 0x74, 0x88, 0x37, 0xbc, 0xad, 0xb3, 0xc1, 0x0a, 0xc3, 0xe3, 0x83, 0x35, 0x3a, 0xc4, 0x6d, 0x50, 0xec, 0x68, 0xae, 0x41, 0x31, 0x89, 0xb9, 0x41, 0x48, 0xa7, 0x6e, 0x1c, 0xda, 0x60, 0x85, 0xe1, 0x71, 0x6b, 0x78, 0x5b, 0xe7, 0x60, 0xd1, 0xe8, 0xf1, 0x06, 0x05, 0x69, 0xec, 0x06, 0xeb, 0x87, 0x6b, 0xd7, 0xe0, 0x38, 0x36, 0xb1, 0xc1, 0x02, 0x21, 0xe2, 0x35, 0x28, 0x26, 0x31, 0xd7, 0x20, 0xd8, 0x4c, 0x37, 0x58, 0xa2, 0x12, 0xbc, 0xc1, 0x02, 0xc2, 0xe0, 0x0d, 0xd6, 0xae, 0x05, 0x6f, 0xb0, 0x20, 0x33, 0x78, 0x83, 0x55, 0xde, 0xc1, 0x1d, 0xac, 0x81, 0x3b, 0x5e, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x85, 0x6e, 0xc7, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xf0, 0x48, 0x3b, 0x58, 0x34, 0x7a, 0xdc, 0xc1, 0x1a, 0x20, 0xe2, 0x83, 0xc5, 0x51, 0xc7, 0x1b, 0x14, 0x3b, 0x9a, 0x1b, 0xac, 0xc6, 0x3a, 0xde, 0x60, 0x89, 0x70, 0xed, 0x06, 0x85, 0xa1, 0xea, 0x06, 0xcb, 0x02, 0x80, 0x37, 0x58, 0x10, 0xb2, 0xb4, 0xc1, 0x62, 0x53, 0xe2, 0x0d, 0xbf, 0xb8, 0x6c, 0x90, 0xce, 0x6c, 0xb7, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0xe8, 0x76, 0xbc, 0xe1, 0x31, 0x99, 0x83, 0x15, 0xc9, 0xc7, 0x07, 0xeb, 0xe8, 0x8e, 0x57, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x1f, 0xac, 0xee, 0x70, 0x5b, 0xc3, 0x9f, 0x4b, 0x03, 0x9e, 0x5c, 0x99, 0x79, 0x10, 0xa6, 0x63, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x83, 0xe9, 0xe7, 0x41, 0x98, 0x8e, 0xb5, 0x41, 0x41, 0x1a, 0xbb, 0xc1, 0x9a, 0xfb, 0xe3, 0x35, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x58, 0xa3, 0x43, 0xbc, 0xe1, 0x6d, 0x9d, 0x0d, 0xd6, 0xdc, 0x1f, 0x1f, 0xac, 0xd1, 0x21, 0x6e, 0x83, 0x62, 0x47, 0x73, 0x0d, 0x8a, 0x49, 0xcc, 0x0d, 0x42, 0x3a, 0x75, 0xe3, 0xd0, 0x06, 0x6b, 0xee, 0x8f, 0x5b, 0xc3, 0xdb, 0x3a, 0x07, 0xeb, 0x2e, 0x90, 0x37, 0x28, 0x48, 0x63, 0x37, 0x38, 0x98, 0x7e, 0xae, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0xc1, 0x1a, 0x1d, 0xe2, 0x0d, 0x6f, 0xeb, 0x6c, 0x70, 0x30, 0xfd, 0x3c, 0x58, 0xa3, 0x43, 0xdc, 0x06, 0xc5, 0x8e, 0xe6, 0x1a, 0x14, 0x93, 0x98, 0x1b, 0x84, 0x74, 0xea, 0xc6, 0xa1, 0x83, 0x03, 0x14, 0xea, 0x06, 0xab, 0xa1, 0x82, 0x37, 0x28, 0x48, 0x63, 0x37, 0x58, 0x3b, 0x5d, 0xbc, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x0b, 0x52, 0x88, 0x5b, 0xc3, 0xdb, 0x3a, 0x1b, 0x84, 0x47, 0xda, 0xc1, 0xba, 0x0b, 0xe4, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x78, 0xa4, 0x1d, 0x1c, 0xa0, 0x50, 0xdb, 0xa0, 0x84, 0xc7, 0xdc, 0x60, 0x71, 0x7a, 0xf1, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0x1b, 0x77, 0x87, 0x9f, 0x65, 0x0e, 0x16, 0x20, 0x21, 0x6f, 0x50, 0xc2, 0x63, 0x2e, 0x78, 0x7d, 0xb0, 0x38, 0xbd, 0x78, 0x0d, 0xbf, 0xb8, 0x6c, 0x10, 0x6e, 0xa8, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xdc, 0x1d, 0x2c, 0x5d, 0x09, 0x3e, 0x58, 0x24, 0x84, 0x7c, 0xb0, 0x06, 0x88, 0x78, 0xc3, 0x2f, 0x2e, 0x1b, 0x2c, 0x0b, 0x00, 0x5e, 0xc3, 0xdb, 0x3a, 0x83, 0xd7, 0x07, 0xab, 0xb6, 0x90, 0x6b, 0x99, 0x35, 0x58, 0x78, 0x99, 0xb5, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0x4a, 0x48, 0xe2, 0x35, 0xfc, 0xb9, 0xb4, 0x61, 0x3a, 0x0f, 0xc2, 0x74, 0xac, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0x18, 0x16, 0xd8, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0xf0, 0xe0, 0xcd, 0x86, 0xb7, 0x75, 0x36, 0x38, 0xd3, 0xa7, 0xb6, 0x41, 0x41, 0x91, 0xb9, 0xe1, 0x2b, 0x9c, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0x18, 0x16, 0xd8, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0xf0, 0x98, 0xcc, 0xc1, 0xba, 0x45, 0xe4, 0x35, 0x38, 0x86, 0x1b, 0x6c, 0x78, 0x5b, 0xe7, 0x60, 0x4d, 0xc7, 0xd1, 0x06, 0x05, 0xc1, 0xec, 0x06, 0x6b, 0x3a, 0x8e, 0x36, 0x28, 0x28, 0x32, 0x37, 0x28, 0x48, 0x63, 0x37, 0x58, 0x9a, 0x73, 0xbb, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x86, 0x3e, 0xf8, 0x6d, 0xb0, 0x6e, 0x11, 0xb9, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x96, 0x34, 0x22, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0xf8, 0xda, 0xa3, 0x83, 0xb5, 0xb3, 0xc8, 0x6b, 0xb0, 0xa6, 0xe3, 0x68, 0x83, 0x20, 0x3d, 0x5d, 0x83, 0xa5, 0x39, 0xb7, 0xad, 0x41, 0x10, 0x9b, 0x6e, 0xb8, 0xa4, 0xd6, 0x38, 0x74, 0xb0, 0xa6, 0xe3, 0xa8, 0x35, 0x08, 0x99, 0xd3, 0x0d, 0x97, 0xd4, 0x1a, 0xcf, 0x0f, 0xd6, 0x74, 0x1c, 0x55, 0xab, 0xc1, 0x2a, 0x90, 0xe3, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0x56, 0x42, 0x12, 0x6f, 0xb0, 0xaa, 0xd8, 0xf8, 0x60, 0xdd, 0xaf, 0xf1, 0x86, 0xbf, 0x68, 0x36, 0x38, 0x0c, 0x0b, 0x6c, 0xf8, 0x20, 0x67, 0x83, 0x95, 0x98, 0xc8, 0x6b, 0x70, 0x0c, 0x37, 0x38, 0x58, 0xb7, 0x70, 0xbc, 0x41, 0x41, 0x30, 0xbb, 0xc1, 0x6a, 0x76, 0xe3, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x0a, 0xd2, 0xd8, 0x0d, 0x96, 0xe6, 0xdc, 0x6e, 0xb0, 0xce, 0x15, 0x79, 0x83, 0x82, 0x34, 0x76, 0x83, 0x05, 0x13, 0xc7, 0x6b, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x1b, 0x2c, 0xc8, 0x45, 0x5e, 0x83, 0xd5, 0xec, 0xc6, 0x1b, 0x04, 0xe9, 0xe9, 0x06, 0xcb, 0x8d, 0x91, 0xd7, 0x20, 0x88, 0x4d, 0x37, 0x5c, 0x52, 0x1b, 0x2c, 0x5e, 0x37, 0x6e, 0x0d, 0x42, 0xe6, 0x74, 0xc3, 0x25, 0xb5, 0xc6, 0xf3, 0x83, 0xd5, 0xec, 0xc6, 0xd5, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0xcb, 0x65, 0x8e, 0x37, 0x28, 0x28, 0x32, 0x37, 0x08, 0xd2, 0xd3, 0x0d, 0x96, 0x1b, 0x23, 0xaf, 0x41, 0x10, 0x9b, 0x6e, 0x70, 0x0c, 0x37, 0xd8, 0xf0, 0x8b, 0xcb, 0x06, 0xcb, 0x76, 0x8e, 0x37, 0x58, 0x36, 0x91, 0xdc, 0x1a, 0x84, 0xcc, 0xe9, 0x06, 0xc7, 0x70, 0x83, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0xb4, 0x21, 0xf9, 0x60, 0xd1, 0xce, 0x71, 0x87, 0x53, 0xac, 0xc3, 0x29, 0xb6, 0x1a, 0x2c, 0x5e, 0x0d, 0xde, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x58, 0xbc, 0x1a, 0xdc, 0x00, 0xf8, 0x54, 0xe7, 0x46, 0x97, 0x07, 0x57, 0x46, 0xc6, 0x02, 0x32, 0x37, 0x26, 0x97, 0xd7, 0xc2, 0x56, 0x36, 0x37, 0xc7, 0x02, 0x52, 0xe7, 0x96, 0x46, 0x17, 0x26, 0x97, 0x07, 0x62, 0x97, 0x26, 0x47, 0x57, 0x17, 0xc6, 0x96, 0xa6, 0x17, 0x46, 0x97, 0xf6, 0xe6, 0xb6, 0xe1, 0x17, 0xa5, 0x0d, 0xd6, 0x12, 0x0d, 0x6f, 0xf8, 0x8b, 0x66, 0x83, 0xc3, 0xb0, 0xc0, 0x06, 0x05, 0x69, 0xec, 0x06, 0x6b, 0x5e, 0x80, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x8b, 0x66, 0x80, 0x37, 0x58, 0x98, 0x36, 0xbc, 0x06, 0x8b, 0x0b, 0x93, 0x36, 0x28, 0x52, 0x31, 0x0f, 0x0a, 0x8a, 0xcc, 0x0e, 0x16, 0x76, 0x01, 0x1f, 0x4e, 0xb1, 0x35, 0x58, 0x56, 0x39, 0xbc, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xb0, 0xac, 0x72, 0xb8, 0x01, 0xbc, 0xeb, 0xdc, 0xe8, 0xf2, 0xe0, 0xca, 0xc8, 0x40, 0xec, 0xd2, 0xe4, 0xe8, 0xea, 0xc2, 0xd8, 0x36, 0xfc, 0xa2, 0xb4, 0xc1, 0xda, 0x11, 0xe0, 0x0d, 0x7f, 0xd1, 0xac, 0x41, 0xe8, 0x97, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x82, 0xc0, 0xa6, 0x0d, 0xc2, 0x74, 0x6c, 0x83, 0x53, 0xbd, 0x68, 0x1b, 0x14, 0xa4, 0xb1, 0x1b, 0xac, 0x79, 0x01, 0x5e, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0x35, 0x1f, 0x3e, 0x58, 0x74, 0x03, 0xbc, 0x41, 0x90, 0x9e, 0x6e, 0xb0, 0x70, 0x0c, 0x78, 0x0d, 0x42, 0x3a, 0x75, 0xc3, 0x2f, 0x2e, 0x1b, 0xac, 0x02, 0x93, 0x5d, 0xc3, 0xdb, 0x3a, 0x83, 0xc3, 0x07, 0x2b, 0xc9, 0x80, 0x5b, 0x83, 0xc0, 0x51, 0xdd, 0xa0, 0x20, 0x8d, 0xdd, 0x60, 0xc5, 0x4e, 0xf0, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0xb9, 0x52, 0xf0, 0xc1, 0x22, 0xd6, 0xe4, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0xcc, 0x49, 0x76, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x56, 0x6e, 0x05, 0xaf, 0xe1, 0x89, 0xbb, 0x0d, 0xcf, 0xe2, 0x1d, 0xac, 0x0d, 0x24, 0x3a, 0x58, 0x01, 0x16, 0x7c, 0x50, 0xd6, 0x79, 0xae, 0x41, 0x10, 0x9b, 0x6e, 0xf8, 0xc5, 0x65, 0x83, 0x65, 0x4e, 0xb2, 0x07, 0x8b, 0x58, 0x93, 0x3b, 0x9c, 0x62, 0x1d, 0x4e, 0xb1, 0x05, 0xe0, 0x05, 0x2e, 0x4c, 0x6e, 0x2e, 0xcd, 0xed, 0xac, 0x65, 0xec, 0xad, 0x4d, 0x2c, 0xcd, 0x2d, 0x8c, 0xee, 0x4d, 0x6e, 0x5e, 0x06, 0xa0, 0x91, 0xa6, 0x4c, 0x07, 0x04, 0x2e, 0x4c, 0x6e, 0x2e, 0xcd, 0xed, 0x0c, 0x04, 0x65, 0xec, 0xad, 0x4d, 0x2c, 0xcd, 0x2d, 0x8c, 0xee, 0x4d, 0x6e, 0x2e, 0xb5, 0x06, 0x8b, 0xb0, 0x89, 0x36, 0x3c, 0x3e, 0xb2, 0xc1, 0x22, 0x6c, 0xa2, 0x0d, 0x0a, 0xe5, 0xce, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0x21, 0x4c, 0x4e, 0x2c, 0x8d, 0x4e, 0x2e, 0x4c, 0x2e, 0x0f, 0x64, 0xec, 0xad, 0x0d, 0xee, 0x6d, 0xae, 0x6c, 0xc3, 0x9f, 0x4b, 0x1b, 0xac, 0x69, 0xb1, 0xdd, 0x20, 0x80, 0xce, 0x0e, 0xd6, 0xd4, 0xd8, 0x6e, 0x78, 0x7c, 0x64, 0x83, 0xb1, 0x2a, 0xb0, 0x41, 0xa1, 0xdc, 0xb9, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0xcb, 0x82, 0x46, 0x37, 0xfc, 0x3b, 0xbf, 0x41, 0x6a, 0xa2, 0x70, 0x07, 0xeb, 0x2b, 0x63, 0x37, 0x58, 0x8b, 0xce, 0xb4, 0xc1, 0x69, 0xe5, 0x6c, 0x83, 0x12, 0x1e, 0x73, 0x83, 0xa5, 0x6e, 0xa3, 0x1b, 0x2c, 0x27, 0xb0, 0xdd, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xf0, 0xf2, 0xd2, 0xe8, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x14, 0x35, 0x76, 0x83, 0xe5, 0xa7, 0xa7, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x79, 0x75, 0xf2, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x93, 0xb6, 0xbb, 0xc1, 0xe2, 0xcd, 0xd3, 0x35, 0xbc, 0xad, 0x33, 0x38, 0xbc, 0xc1, 0xf2, 0x17, 0xe5, 0xda, 0xa0, 0x84, 0xc7, 0x5c, 0xf0, 0xf8, 0x60, 0xb5, 0x91, 0xf2, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0xc3, 0x1b, 0xde, 0xd6, 0xd9, 0x60, 0xf5, 0x8e, 0x72, 0x6b, 0xf8, 0xdc, 0x65, 0xf0, 0x78, 0xc3, 0xdb, 0x3a, 0x07, 0xcb, 0x96, 0x94, 0xdb, 0xf0, 0x8b, 0xcb, 0x06, 0xcb, 0xa0, 0x94, 0xd7, 0xf0, 0xb9, 0xcb, 0xe0, 0xf1, 0x86, 0x5f, 0x5c, 0x36, 0x28, 0x28, 0x32, 0xd7, 0xf0, 0xb9, 0xcb, 0xe0, 0xf5, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xf0, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x19, 0x65, 0xbb, 0xc1, 0xca, 0xe2, 0xd3, 0x35, 0xbc, 0xad, 0x33, 0x38, 0x3c, 0x78, 0x7d, 0xb0, 0x6c, 0x49, 0xb9, 0x35, 0x7c, 0xee, 0x32, 0x78, 0xbc, 0xe1, 0x6d, 0x9d, 0xc1, 0xe3, 0x83, 0x55, 0x78, 0xca, 0xd5, 0x6a, 0xb0, 0x46, 0x9e, 0x68, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x60, 0x8d, 0x3c, 0x51, 0x03, 0xf0, 0x41, 0x96, 0x36, 0x37, 0x16, 0x26, 0x47, 0x06, 0x62, 0x96, 0x26, 0x37, 0x47, 0x07, 0x22, 0x57, 0xc7, 0x56, 0xb6, 0xe1, 0xf1, 0x91, 0x0d, 0xd6, 0xc8, 0x13, 0x6d, 0x50, 0x28, 0x77, 0xae, 0xe1, 0xcf, 0xa5, 0x0d, 0x56, 0xa9, 0xff, 0x1e, 0xac, 0xaf, 0x50, 0xde, 0xe0, 0xd4, 0x70, 0xb4, 0xc1, 0x32, 0xf9, 0xe1, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xb0, 0xe6, 0x74, 0x0d, 0x0a, 0xe5, 0xce, 0x0d, 0xca, 0x58, 0xfc, 0xc3, 0x7b, 0x41, 0xad, 0x06, 0x6b, 0x92, 0x41, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0xd6, 0x24, 0x83, 0x36, 0x00, 0x2f, 0x6e, 0x6f, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x1b, 0x14, 0xca, 0x9d, 0x1b, 0xac, 0xaf, 0x50, 0xde, 0xa0, 0x84, 0xc7, 0xdc, 0x60, 0xa9, 0xdb, 0xe8, 0x1a, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x1b, 0x2c, 0xa4, 0x17, 0xdd, 0xf0, 0x6e, 0xcf, 0xc1, 0x42, 0xd4, 0xd8, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xe1, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x26, 0x6d, 0x77, 0x83, 0xc5, 0x9b, 0xa7, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0xf8, 0x60, 0xe5, 0xcd, 0x68, 0x6b, 0xf8, 0xdc, 0x65, 0xf0, 0x78, 0xc3, 0xdb, 0x3a, 0x07, 0x2b, 0x6d, 0x46, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0xcb, 0x3e, 0x6b, 0xd7, 0x70, 0x49, 0xad, 0x21, 0x75, 0x70, 0xb0, 0x4a, 0x35, 0xb6, 0x66, 0x0d, 0x96, 0x9a, 0x8c, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x2c, 0x35, 0x19, 0x6d, 0x00, 0x7f, 0xb3, 0x34, 0xb9, 0x39, 0x3a, 0x90, 0x30, 0x37, 0x32, 0x90, 0xb9, 0xb2, 0xb1, 0x37, 0x37, 0xb2, 0x0d, 0x0a, 0xe5, 0xce, 0x0d, 0xd6, 0x57, 0x28, 0x6f, 0x50, 0xc2, 0x63, 0x6e, 0xb0, 0xd4, 0x6d, 0x74, 0x83, 0xe5, 0x04, 0xb6, 0x1b, 0x3e, 0xb1, 0xd9, 0x60, 0x39, 0xb4, 0xf2, 0xc1, 0x02, 0x9d, 0xd1, 0xc3, 0x29, 0xb6, 0x06, 0xab, 0x50, 0x8a, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x56, 0xa1, 0x14, 0x35, 0x80, 0xb7, 0x59, 0x9a, 0xdc, 0x1c, 0x1d, 0xc8, 0x9b, 0x1c, 0xc8, 0x5c, 0xd9, 0xd8, 0x9b, 0x1b, 0xd9, 0x86, 0xc7, 0x47, 0x36, 0x58, 0x85, 0x52, 0xb4, 0x41, 0xa1, 0xdc, 0xb9, 0xc1, 0xfa, 0x0a, 0xe5, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x96, 0xba, 0x8d, 0x6e, 0xb0, 0xe2, 0x59, 0xf9, 0x60, 0x39, 0x81, 0xed, 0xe1, 0x14, 0x5b, 0x83, 0x25, 0x42, 0x45, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0x4b, 0x84, 0x8a, 0x1a, 0x80, 0x17, 0xb2, 0xb4, 0xb9, 0xb1, 0x30, 0x39, 0x32, 0x90, 0xb9, 0xb2, 0xb1, 0x37, 0x37, 0x32, 0x10, 0xb9, 0x3a, 0xb6, 0xb2, 0x0d, 0x8f, 0x8f, 0x6c, 0xb0, 0x44, 0xa8, 0x68, 0x83, 0x42, 0xb9, 0x73, 0x83, 0xd5, 0x9d, 0xca, 0x1b, 0x9c, 0x1a, 0x8e, 0x36, 0x58, 0x26, 0x3f, 0xbc, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0xd6, 0x9c, 0xae, 0x41, 0xa1, 0xdc, 0xb9, 0x41, 0x19, 0x8b, 0x7f, 0x78, 0x5a, 0xa7, 0xd5, 0x60, 0xe5, 0x5d, 0xd1, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0xca, 0xbb, 0xa2, 0x06, 0xf0, 0x1f, 0x7b, 0x73, 0x23, 0x4b, 0xa3, 0x4b, 0x7b, 0x73, 0x0b, 0x63, 0x03, 0x19, 0x7b, 0x6b, 0x83, 0xdb, 0xf0, 0xf8, 0xc8, 0x06, 0x2b, 0xef, 0x8a, 0x36, 0x28, 0x94, 0x3b, 0xd7, 0xf0, 0xe7, 0xd2, 0x06, 0x6b, 0x5a, 0x6c, 0x37, 0x08, 0xa0, 0xb3, 0x0d, 0x0a, 0xe5, 0xce, 0x0d, 0xca, 0x58, 0xfc, 0x0d, 0xbf, 0xb8, 0x6c, 0x50, 0x50, 0x64, 0xae, 0xe1, 0x73, 0x97, 0xc1, 0xeb, 0x83, 0x92, 0x2f, 0xb8, 0x0d, 0x8f, 0x8f, 0x6c, 0x30, 0x56, 0x05, 0x36, 0x28, 0x94, 0x3b, 0x37, 0x58, 0x5f, 0xa1, 0xbc, 0x41, 0x09, 0x8f, 0xb9, 0xc1, 0x52, 0xb7, 0xd1, 0x0d, 0x96, 0x13, 0xd8, 0x6e, 0xf8, 0xc4, 0x66, 0x83, 0x15, 0x2e, 0xca, 0x1b, 0x3e, 0xb1, 0xd9, 0x60, 0x81, 0x8e, 0xf2, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0xcb, 0x96, 0x94, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0xcb, 0xa0, 0x94, 0xd7, 0xf0, 0xb9, 0xcb, 0xe0, 0xf1, 0x86, 0xb7, 0x75, 0x0e, 0x96, 0xba, 0x8d, 0xb6, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xe0, 0xd9, 0xd5, 0xe1, 0x07, 0xeb, 0xde, 0x94, 0x37, 0x28, 0xe1, 0x31, 0xd7, 0x60, 0x1d, 0xf0, 0x72, 0x1b, 0x2c, 0x92, 0x5d, 0xde, 0xf0, 0x8b, 0xcb, 0x06, 0xcb, 0xa0, 0x94, 0xd7, 0xf0, 0xb9, 0xcb, 0xe0, 0xf1, 0x86, 0x5f, 0x5c, 0x36, 0x28, 0x28, 0x32, 0xd7, 0xf0, 0xb9, 0xcb, 0xe0, 0xf5, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xf0, 0x86, 0xb7, 0x75, 0x06, 0xaf, 0x0f, 0x16, 0x1b, 0x2f, 0x1f, 0x2c, 0xdc, 0x53, 0xae, 0x59, 0x83, 0xd5, 0x9a, 0x45, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xab, 0x35, 0x8b, 0x1a, 0x80, 0x07, 0xb3, 0x34, 0xb9, 0x39, 0x3a, 0x10, 0x3a, 0xb4, 0x32, 0x37, 0x90, 0xb9, 0xb2, 0xb1, 0x37, 0x37, 0xb2, 0x0d, 0x8f, 0x8f, 0x6c, 0xb0, 0x5a, 0xb3, 0x68, 0x83, 0x42, 0xb9, 0x73, 0x83, 0xf5, 0x15, 0xca, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x2c, 0x75, 0x1b, 0xdd, 0x60, 0x39, 0x81, 0xed, 0x86, 0x4f, 0x6c, 0x36, 0x58, 0xe1, 0xa2, 0xbc, 0xe1, 0x13, 0x9b, 0x0d, 0x16, 0xe8, 0x28, 0x6f, 0x50, 0xc2, 0x63, 0x6e, 0xb0, 0x6c, 0x49, 0x79, 0x83, 0x95, 0x4e, 0xca, 0x1b, 0x7e, 0x71, 0xd9, 0x60, 0x19, 0x94, 0xf2, 0x1a, 0x3e, 0x77, 0x19, 0x3c, 0xde, 0xf0, 0x8b, 0xcb, 0x06, 0x05, 0x45, 0xe6, 0x1a, 0x3e, 0x77, 0x19, 0xbc, 0xde, 0xf0, 0x8b, 0xcb, 0x1a, 0x3e, 0x77, 0x19, 0x1c, 0xde, 0xf0, 0x8b, 0xcb, 0xc1, 0xaa, 0x39, 0xe5, 0x83, 0x85, 0x7b, 0xca, 0x75, 0x38, 0xc5, 0xd6, 0x60, 0xd5, 0x70, 0xd1, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0xaa, 0xe1, 0xa2, 0x06, 0xf8, 0xc3, 0xc8, 0xc8, 0x40, 0xe4, 0xea, 0xd8, 0xca, 0x36, 0x3c, 0x3e, 0xb2, 0xc1, 0xaa, 0xe1, 0xa2, 0x0d, 0x0a, 0xe5, 0xce, 0x0d, 0x16, 0xfc, 0xd8, 0x6e, 0x78, 0x7c, 0x64, 0x83, 0xb1, 0x2a, 0xb0, 0x41, 0xa1, 0xdc, 0xb9, 0xc1, 0xfa, 0x0a, 0xe5, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xa2, 0x22, 0x74, 0x83, 0xe5, 0x04, 0xb6, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x1b, 0x2c, 0x5e, 0xb3, 0x3d, 0x58, 0x88, 0x1a, 0xdb, 0x6a, 0xb0, 0x26, 0xb4, 0x76, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x2f, 0xb7, 0x32, 0xbb, 0x32, 0x39, 0x10, 0xb8, 0x30, 0xb9, 0xb9, 0xb2, 0x0d, 0xbf, 0x28, 0x6d, 0xb0, 0x70, 0xea, 0x74, 0xc3, 0x2f, 0x2e, 0x1b, 0xac, 0x69, 0xbd, 0x3d, 0x58, 0x5f, 0x84, 0x7b, 0x38, 0xc5, 0x5a, 0x0d, 0x8e, 0x36, 0x9f, 0xcb, 0x00, 0xbc, 0xd2, 0xbc, 0xe9, 0x80, 0xb4, 0xbd, 0xb1, 0x91, 0xcd, 0x81, 0x84, 0xb9, 0x91, 0x81, 0xb4, 0xbd, 0xb1, 0x91, 0x81, 0x88, 0xd5, 0xa5, 0xb1, 0x91, 0x95, 0xc9, 0xcd, 0x2d, 0xe0, 0xd3, 0xbd, 0xb9, 0xe5, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x1c, 0x19, 0x42, 0x0f, 0xd6, 0x13, 0x32, 0x37, 0x00, 0x0f, 0x2b, 0x2b, 0x74, 0x6f, 0x6e, 0x65, 0x20, 0x64, 0x6f, 0x6e, 0x65, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0xeb, 0x09, 0x99, 0x37, 0x08, 0xda, 0x9f, 0x35, 0x3c, 0xf1, 0xbe, 0x41, 0x12, 0x7b, 0xf0, 0x86, 0xcf, 0x95, 0x36, 0x08, 0xe9, 0xd4, 0x35, 0xfc, 0xb9, 0x34, 0x38, 0xbc, 0xe1, 0xdf, 0xf9, 0x05, 0x7c, 0xba, 0x34, 0xb7, 0xb2, 0x0e, 0x0e, 0x72, 0x18, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x1c, 0x9c, 0xe8, 0xde, 0x36, 0x7c, 0xae, 0xb4, 0x41, 0xe0, 0xa8, 0xae, 0xe1, 0xcf, 0xa5, 0xc1, 0xe1, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0x12, 0xf1, 0xbd, 0xd6, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0xa3, 0x4c, 0x4e, 0xee, 0x4d, 0x0e, 0xc4, 0xef, 0x6b, 0x6e, 0xc3, 0xe7, 0x4a, 0x1b, 0x04, 0xb1, 0xe9, 0x1a, 0xfe, 0x5c, 0x1a, 0x1c, 0x3e, 0x48, 0x53, 0x25, 0xae, 0xd5, 0xf0, 0x45, 0xcd, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0x47, 0x86, 0xd0, 0xc3, 0x17, 0x35, 0x0d, 0xe0, 0x21, 0x16, 0x36, 0x57, 0x06, 0xd2, 0xf6, 0xc6, 0x46, 0xb6, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf8, 0xa2, 0x66, 0xc3, 0x07, 0xf3, 0x6b, 0x10, 0x6c, 0xa6, 0x6b, 0x78, 0xe2, 0x7d, 0x83, 0x93, 0x6f, 0xe9, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0xd3, 0xb9, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x7f, 0x98, 0x5b, 0x1e, 0xc8, 0x58, 0x19, 0x1b, 0xdb, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x13, 0xb7, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x2f, 0xdb, 0xdb, 0x9b, 0x58, 0x59, 0x98, 0xdb, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0xcf, 0xad, 0xae, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x40, 0xe7, 0x07, 0xd2, 0xd3, 0x03, 0x02, 0xdb, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0xe0, 0x3e, 0xac, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x47, 0x59, 0x1b, 0x1c, 0x5d, 0x1e, 0xc8, 0x5c, 0x19, 0xdd, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x56, 0x39, 0x18, 0xb5, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x73, 0xf8, 0xb7, 0x66, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0x50, 0xc7, 0xd7, 0xf0, 0xe7, 0xd2, 0xe0, 0xf0, 0x86, 0x7f, 0xe7, 0x17, 0xf0, 0xc3, 0xea, 0xe4, 0xc2, 0x6a, 0x35, 0xd4, 0xf1, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x43, 0x1d, 0xdf, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x4f, 0xad, 0x6e, 0x8e, 0x0e, 0x24, 0xcc, 0x0d, 0x24, 0x8c, 0xee, 0xad, 0xed, 0xf0, 0x43, 0xcd, 0x0a, 0xf8, 0x70, 0x61, 0x6c, 0xef, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x2a, 0xa7, 0xe6, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x78, 0xb8, 0x4b, 0x73, 0x3b, 0x03, 0xa1, 0x93, 0x0b, 0x1b, 0x2b, 0x63, 0x01, 0x69, 0x0b, 0xa3, 0x1b, 0x43, 0xdb, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0xbd, 0xe9, 0xd7, 0xf0, 0xef, 0xfc, 0x02, 0xbe, 0x5d, 0x59, 0x9a, 0x5b, 0x6b, 0xf8, 0x77, 0x7e, 0x01, 0xff, 0x0d, 0x2e, 0x8c, 0xad, 0x0e, 0xa7, 0xd8, 0x02, 0x3e, 0xdd, 0x1b, 0x5c, 0xb9, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0xc1, 0x91, 0x21, 0xf4, 0x60, 0xcd, 0x5c, 0x73, 0x03, 0xf8, 0xd3, 0xbd, 0xc1, 0xbd, 0x9d, 0xc9, 0x85, 0xc1, 0xa1, 0xa5, 0x8d, 0x81, 0xd0, 0xe5, 0xc1, 0x95, 0x6d, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xac, 0x99, 0x6b, 0xde, 0xf0, 0xc1, 0xfc, 0x1a, 0x04, 0x9b, 0xe9, 0x1a, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xf8, 0x8d, 0x95, 0xb1, 0xb1, 0x81, 0xbc, 0xc9, 0x81, 0x84, 0xd1, 0xbd, 0xb5, 0x1d, 0x04, 0x6c, 0xd0, 0x1a, 0x9e, 0x78, 0xdf, 0x60, 0x89, 0x4a, 0xf3, 0x41, 0x18, 0x01, 0xb5, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0xb3, 0x61, 0xe2, 0xda, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0xbd, 0xe9, 0xd7, 0xf0, 0xef, 0xfc, 0x1a, 0xac, 0x99, 0x6b, 0xae, 0x0d, 0x16, 0xad, 0x36, 0xb7, 0x1a, 0x24, 0x2d, 0x08, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x24, 0x2d, 0x08, 0x37, 0x00, 0x9e, 0x84, 0x89, 0xcd, 0xd1, 0xc9, 0x85, 0x8d, 0xd1, 0x81, 0xa4, 0x91, 0x95, 0xb9, 0xd1, 0xa5, 0xd1, 0xe5, 0x81, 0xbc, 0x99, 0x81, 0xc8, 0x95, 0xcd, 0xbd, 0xd5, 0xc9, 0x8d, 0x95, 0x81, 0x84, 0xdd, 0x85, 0xa5, 0xd1, 0x95, 0x91, 0x6d, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0x24, 0x2d, 0x08, 0x1f, 0x9c, 0x91, 0x50, 0x0f, 0xa7, 0xd8, 0x02, 0xbe, 0x5d, 0x5a, 0x18, 0xbb, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xb0, 0x16, 0xbb, 0x79, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xef, 0xb1, 0xb7, 0x97, 0xb1, 0x37, 0x37, 0x3a, 0xb9, 0xb0, 0x97, 0x34, 0xb7, 0x17, 0xb1, 0xb4, 0x0d, 0x82, 0xcd, 0x74, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x2c, 0x49, 0x36, 0x5a, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x2b, 0xaf, 0x8d, 0xd6, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0xb9, 0xe8, 0x60, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0xac, 0x19, 0x36, 0xea, 0x70, 0x8a, 0x2d, 0xe0, 0xd3, 0xe5, 0xad, 0x95, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0xeb, 0x0b, 0x9c, 0x37, 0x08, 0xfd, 0x92, 0x0d, 0x42, 0xca, 0x64, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0xb2, 0x09, 0x73, 0x0d, 0xff, 0xce, 0x6f, 0x90, 0xba, 0xe6, 0x5d, 0xad, 0x80, 0x6f, 0x17, 0x36, 0x57, 0x6e, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xac, 0xd4, 0x70, 0xde, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x9b, 0x2e, 0x0f, 0xae, 0xac, 0xc5, 0x2e, 0x8c, 0xad, 0xae, 0x0c, 0x04, 0x2e, 0x2c, 0x4d, 0x6e, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x70, 0x78, 0xc3, 0xbf, 0xf3, 0x6b, 0x70, 0xf2, 0x41, 0xad, 0x83, 0x83, 0x1c, 0xc6, 0x6a, 0x90, 0x66, 0xe6, 0xbd, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0xc1, 0x91, 0x21, 0xf4, 0x20, 0xcd, 0xcc, 0xbb, 0x01, 0x7e, 0xb4, 0xb7, 0x37, 0x37, 0x90, 0xa0, 0x29, 0xaa, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0x34, 0x33, 0xef, 0x0d, 0x0e, 0x10, 0xa2, 0x1b, 0xa4, 0x99, 0x79, 0x6f, 0x10, 0x6a, 0x88, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0xee, 0x20, 0x44, 0x55, 0x0f, 0xca, 0x3a, 0xcf, 0x0d, 0x96, 0x2e, 0x57, 0xad, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0x38, 0x7c, 0xb0, 0xc0, 0xc2, 0x79, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x1f, 0x2c, 0xb0, 0x70, 0x6e, 0x83, 0xa0, 0xfd, 0x59, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x9f, 0xb9, 0xb4, 0x36, 0x38, 0xb6, 0x32, 0x10, 0xb6, 0xb2, 0xb3, 0x0d, 0x9f, 0x2b, 0x6d, 0x90, 0x32, 0x18, 0xbc, 0x86, 0x3f, 0x97, 0x06, 0x87, 0x37, 0xfc, 0x3b, 0xbf, 0xc1, 0x92, 0x46, 0xe4, 0x5a, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x0f, 0xb1, 0xb0, 0xb9, 0x32, 0x90, 0x39, 0xb8, 0xb2, 0xb1, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0xc3, 0x17, 0x35, 0x6b, 0xf8, 0x73, 0x69, 0x70, 0x78, 0xc3, 0xbf, 0xf3, 0x6b, 0xf8, 0xa2, 0xa6, 0x5a, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x0f, 0xb1, 0x3a, 0x37, 0x3a, 0x10, 0xb1, 0xb0, 0xb9, 0xb2, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0xa2, 0x22, 0xf3, 0x60, 0x45, 0xa4, 0xf3, 0x1a, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xf0, 0x42, 0x56, 0x26, 0x56, 0x77, 0x06, 0x92, 0xe6, 0x66, 0xf6, 0x06, 0x92, 0xe6, 0x06, 0x42, 0x27, 0x17, 0x36, 0x56, 0xb6, 0xe1, 0x73, 0xa5, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x7f, 0x2e, 0x0d, 0x0e, 0x1f, 0x2c, 0x7d, 0x0f, 0x3e, 0x58, 0x5e, 0xe6, 0xbc, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xbe, 0x61, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x79, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x1b, 0x3e, 0x57, 0x5a, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0xcb, 0x17, 0x8f, 0x0e, 0x0e, 0x6f, 0xa2, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x0b, 0x27, 0x57, 0xd6, 0x16, 0x46, 0x56, 0x06, 0x22, 0x57, 0x36, 0x57, 0xc7, 0x46, 0xb7, 0xe1, 0x73, 0xa5, 0x0d, 0x16, 0x10, 0x06, 0x6f, 0xb0, 0x16, 0xc6, 0x79, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x6f, 0xf8, 0x77, 0x7e, 0x01, 0xdf, 0xed, 0x6d, 0x6c, 0xad, 0xd6, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xe0, 0x0f, 0x73, 0x73, 0x7b, 0xa3, 0x0b, 0xa3, 0x2b, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x3c, 0x4f, 0xb2, 0x86, 0x3f, 0x97, 0x06, 0x87, 0x37, 0xfc, 0x3b, 0xbf, 0x86, 0xe7, 0x49, 0xea, 0x60, 0x79, 0x99, 0xf3, 0x1a, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0x68, 0xd6, 0xb9, 0x91, 0x95, 0xc9, 0xb1, 0xe5, 0xa5, 0xb9, 0x9d, 0x81, 0xfc, 0xf4, 0x36, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x16, 0x40, 0x1f, 0x6d, 0xb0, 0x24, 0xcc, 0x79, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x6f, 0xf8, 0x77, 0x7e, 0x0d, 0x6f, 0xeb, 0x54, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x1d, 0x36, 0x37, 0x57, 0xd6, 0x26, 0xc6, 0x56, 0x06, 0x32, 0x47, 0x27, 0x97, 0xe6, 0x76, 0xb6, 0xe1, 0x73, 0xa5, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0x78, 0x16, 0x6f, 0x0d, 0x7f, 0x2e, 0x0d, 0x0e, 0x6f, 0x10, 0xfa, 0x25, 0x1b, 0x84, 0x94, 0xc9, 0x1a, 0xfe, 0x9d, 0x5f, 0xc0, 0xbf, 0x7b, 0x7b, 0x33, 0xab, 0xd6, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x6b, 0x2e, 0xaf, 0x4d, 0xec, 0x8d, 0x0d, 0x64, 0x0e, 0xae, 0x6c, 0x6c, 0xc3, 0xe7, 0x4a, 0x1b, 0x9c, 0xc5, 0x44, 0xd7, 0xf0, 0xe7, 0xd2, 0xe0, 0xf0, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0xe9, 0x4d, 0xbf, 0x86, 0x7f, 0xe7, 0xd7, 0xe0, 0x04, 0x94, 0x5a, 0x07, 0x65, 0xa4, 0x6d, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x41, 0x17, 0xb6, 0x56, 0x06, 0xc2, 0x96, 0xd6, 0x26, 0xb6, 0xe1, 0x73, 0xa5, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xb0, 0x5a, 0x04, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x0e, 0x1f, 0xac, 0xd7, 0x7a, 0x6e, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xbc, 0xdd, 0xde, 0xe8, 0x40, 0xe8, 0xde, 0x40, 0xc4, 0xca, 0x40, 0xe8, 0xc2, 0xd6, 0xca, 0xdc, 0x36, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x16, 0xde, 0x20, 0x6d, 0xb0, 0x24, 0xcc, 0xb9, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x35, 0x4b, 0xc3, 0x2b, 0x23, 0x03, 0x19, 0x7b, 0x73, 0x9b, 0xa3, 0x0b, 0x73, 0xa3, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0xbc, 0x71, 0xb7, 0xc1, 0xc2, 0xb8, 0xe7, 0x83, 0x83, 0x1c, 0xc6, 0x1a, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xf8, 0xd7, 0xb9, 0x99, 0xa5, 0xe1, 0x95, 0x91, 0x81, 0x8c, 0xbd, 0xb9, 0xcd, 0xd1, 0x85, 0xb9, 0xd1, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x7e, 0x84, 0x39, 0x58, 0xe5, 0xf9, 0xbc, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xbe, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x61, 0x73, 0x20, 0x74, 0x61, 0x70, 0x65, 0x1b, 0x3e, 0x57, 0x5a, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x2b, 0xd4, 0x90, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xf0, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0x48, 0x99, 0x1c, 0x2c, 0xaf, 0x70, 0x6e, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xfc, 0xda, 0xd2, 0xdc, 0xd2, 0xda, 0xc2, 0xd8, 0x40, 0xcc, 0xc2, 0xc6, 0xca, 0x36, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x16, 0x06, 0x22, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xe1, 0x0d, 0x1f, 0xcc, 0x6f, 0xb0, 0x5e, 0xeb, 0x79, 0xc3, 0xbf, 0xf3, 0x6b, 0xb0, 0x30, 0x10, 0xa9, 0x5a, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x0f, 0xba, 0xb0, 0xb5, 0x32, 0x90, 0xbb, 0x34, 0xb7, 0xb3, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0xc3, 0xdb, 0x3a, 0x6b, 0xf8, 0x73, 0x69, 0x70, 0xf8, 0x60, 0xed, 0xc8, 0x73, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x2b, 0x57, 0xe6, 0x46, 0x56, 0x26, 0x07, 0x12, 0x36, 0x07, 0x42, 0x17, 0xe6, 0xb6, 0xb6, 0xe1, 0x73, 0xa5, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0x90, 0xa0, 0xb5, 0x79, 0xb0, 0x54, 0xf9, 0x79, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xfc, 0x77, 0xcc, 0xde, 0xde, 0x76, 0x40, 0xe8, 0xca, 0xda, 0xe0, 0xd8, 0xc2, 0xe8, 0xd2, 0xdc, 0xce, 0x36, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x16, 0xf7, 0x22, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xe1, 0x0d, 0xff, 0xce, 0xaf, 0xc1, 0x32, 0xed, 0xa8, 0x16, 0xf0, 0xd1, 0xde, 0xde, 0xe8, 0x6a, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x81, 0xe6, 0x23, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x1e, 0xce, 0x5f, 0xc3, 0x9f, 0x4b, 0x03, 0x7c, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0xe5, 0x06, 0xa1, 0x5f, 0xb2, 0x86, 0xb7, 0x75, 0x36, 0x08, 0xb2, 0xc4, 0x36, 0x58, 0xaf, 0xf5, 0xdc, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xc5, 0xde, 0xc8, 0xf2, 0x0d, 0xff, 0xce, 0xaf, 0x41, 0x09, 0x1d, 0x5b, 0xad, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0xf0, 0x7c, 0x5f, 0x1b, 0x3e, 0x57, 0x5a, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x65, 0x19, 0xf6, 0x1a, 0xfe, 0x5c, 0x1a, 0x1c, 0x3e, 0x58, 0x60, 0x05, 0xbd, 0x86, 0x3f, 0x97, 0x06, 0x8f, 0x37, 0xfc, 0x3b, 0xbf, 0x80, 0x1f, 0xc6, 0x16, 0x36, 0xd7, 0x1a, 0xfe, 0x5c, 0x1a, 0x5c, 0xde, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0x11, 0xeb, 0x37, 0x58, 0xaf, 0xf5, 0xbc, 0x86, 0x7f, 0xe7, 0x17, 0xf0, 0xe9, 0xde, 0xda, 0xca, 0xaa, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0x9a, 0x4f, 0xb7, 0xe1, 0x73, 0xa5, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xf8, 0xae, 0xe5, 0x60, 0x41, 0x98, 0xf3, 0x1a, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xcd, 0x57, 0xda, 0xf0, 0xb9, 0xd2, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x28, 0x59, 0xd8, 0xd7, 0xf0, 0xe7, 0xd2, 0xe0, 0xf0, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0xd9, 0x84, 0x79, 0xb0, 0xe4, 0x09, 0x7a, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x1f, 0x2c, 0xae, 0x83, 0x6e, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x81, 0xe6, 0x73, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x9c, 0x07, 0x3b, 0x0e, 0xd6, 0x26, 0x3e, 0xaf, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0xf0, 0x7c, 0x5e, 0x1b, 0x3e, 0x57, 0x5a, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x07, 0x2c, 0xba, 0x0d, 0x96, 0x84, 0x39, 0x1f, 0x2c, 0x1f, 0x85, 0x5e, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0xa0, 0xf9, 0x5a, 0x1b, 0x3e, 0x57, 0x5a, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x87, 0xaf, 0x70, 0x0e, 0xd6, 0x26, 0x3e, 0xaf, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0xf0, 0x7c, 0x7e, 0x1b, 0x3e, 0x57, 0x5a, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x8b, 0x0b, 0x93, 0x36, 0x58, 0x69, 0x06, 0x7d, 0xb0, 0xbc, 0xcc, 0x79, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x81, 0xe6, 0x53, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x14, 0xca, 0x9d, 0x07, 0x4b, 0xc4, 0xa1, 0xd7, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0x68, 0xbe, 0xde, 0x86, 0xcf, 0x95, 0xd6, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xe1, 0x17, 0xa5, 0x83, 0x25, 0xe2, 0xd0, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0x3c, 0x1f, 0xd0, 0x86, 0xcf, 0x95, 0xd6, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0x99, 0x77, 0x79, 0xb0, 0x64, 0x13, 0x7a, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x81, 0xe6, 0xfb, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x84, 0xfc, 0xda, 0xc1, 0xda, 0xc4, 0xe7, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf8, 0x75, 0xbe, 0x40, 0xb6, 0xe2, 0x40, 0xe0, 0xba, 0x36, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x96, 0x54, 0x27, 0x1d, 0x2c, 0x08, 0x73, 0x5e, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x3f, 0x1d, 0x2f, 0x90, 0x2d, 0x38, 0x90, 0x38, 0x10, 0x39, 0x90, 0xb9, 0xae, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x45, 0xe5, 0x49, 0x1b, 0x2c, 0x09, 0x73, 0xde, 0x60, 0x81, 0x99, 0xf3, 0x1a, 0xfe, 0x5c, 0x1a, 0x5c, 0x3e, 0x58, 0x60, 0xe1, 0xbc, 0x86, 0x3f, 0x97, 0x06, 0x9f, 0x0f, 0x16, 0x58, 0x38, 0xb7, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xbf, 0x4e, 0x0b, 0xc8, 0x16, 0x1c, 0x48, 0x5c, 0xd7, 0x86, 0xcf, 0x95, 0xd6, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0x61, 0xa8, 0x7a, 0xb0, 0x20, 0xcc, 0x79, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x7c, 0x74, 0x56, 0x40, 0xb6, 0xe0, 0x40, 0xe2, 0x40, 0xe4, 0xba, 0x36, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0xce, 0xf9, 0x4b, 0x1b, 0x2c, 0x09, 0x73, 0xde, 0x60, 0x81, 0x99, 0xf3, 0x06, 0x2b, 0x8e, 0xa2, 0x5b, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x80, 0x5f, 0xc7, 0x0f, 0x64, 0x0b, 0x0e, 0xc4, 0xaf, 0x6b, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xe0, 0xe8, 0x3a, 0x78, 0xb0, 0x54, 0xf9, 0x79, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xbc, 0x75, 0x54, 0x40, 0xe0, 0x40, 0xc2, 0xe6, 0x40, 0xc2, 0x40, 0xe8, 0xea, 0xe0, 0xd8, 0xca, 0x36, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0xbf, 0xb8, 0x1c, 0x2c, 0x55, 0x7e, 0x5e, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0xe0, 0x4b, 0xbe, 0x36, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x56, 0x21, 0x29, 0x6d, 0xb0, 0x06, 0x00, 0x7a, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x6f, 0x10, 0xfa, 0x25, 0x1b, 0x84, 0x94, 0xc9, 0x1a, 0x84, 0x7e, 0xc9, 0x06, 0xa5, 0x37, 0xfd, 0x06, 0x6b, 0x47, 0x9e, 0x0f, 0x96, 0x57, 0x38, 0xd7, 0x1a, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0x5d, 0xe2, 0xda, 0xf0, 0xb9, 0xd2, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x38, 0x35, 0x1c, 0x1d, 0x2c, 0x08, 0x73, 0x5e, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0xa0, 0x4b, 0x5a, 0x1b, 0x3e, 0x57, 0x5a, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x27, 0xf6, 0x9b, 0x83, 0x05, 0x61, 0xce, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0x74, 0x89, 0x6e, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xf0, 0x6e, 0xcf, 0x06, 0x4b, 0xc2, 0x9c, 0xd7, 0xf0, 0xe7, 0xd2, 0xe0, 0xf1, 0xc1, 0xba, 0xe6, 0xe7, 0xd6, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xe8, 0x12, 0xd5, 0x86, 0xcf, 0x95, 0xd6, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0x12, 0x5e, 0xd2, 0x06, 0x6b, 0x00, 0xa0, 0x37, 0x58, 0x60, 0xe6, 0xbc, 0x86, 0x3f, 0x97, 0x06, 0x97, 0x0f, 0xd6, 0xc6, 0x46, 0xb7, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0xc0, 0x97, 0x78, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0xac, 0xea, 0x55, 0x3a, 0x58, 0x29, 0x14, 0xbd, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x40, 0x97, 0xac, 0x36, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x8a, 0x4e, 0xe3, 0x83, 0x15, 0x73, 0xd1, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0x7c, 0x89, 0xdf, 0x86, 0xcf, 0x95, 0xd6, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0x59, 0xf2, 0xbe, 0xc1, 0x1a, 0x00, 0xe8, 0x0d, 0x16, 0x98, 0x39, 0xaf, 0xe1, 0xcf, 0xa5, 0xc1, 0xe5, 0x83, 0x75, 0xcd, 0xcf, 0xad, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0xd0, 0x25, 0xbd, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0xc3, 0x25, 0x75, 0xb0, 0x96, 0x35, 0x7a, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xb4, 0x5c, 0xbc, 0x40, 0x40, 0xdc, 0xde, 0xc6, 0xd6, 0x40, 0x62, 0x62, 0x1b, 0x3e, 0x57, 0x5a, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0xab, 0x03, 0x96, 0x0e, 0x96, 0x88, 0x43, 0xaf, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x8e, 0xcb, 0x0a, 0x08, 0x88, 0xdb, 0xdb, 0xd8, 0x1a, 0x08, 0x6d, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xf0, 0x71, 0xd4, 0xc1, 0xda, 0xc4, 0xe7, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xd0, 0x71, 0x51, 0x01, 0x01, 0x71, 0x7b, 0x1b, 0x5b, 0x03, 0x91, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x2c, 0x08, 0x59, 0x3a, 0x58, 0x10, 0xe6, 0xbc, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x3a, 0x2e, 0x3d, 0x20, 0x20, 0x6e, 0x6f, 0x63, 0x6b, 0x20, 0xb5, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0xc3, 0xbf, 0x39, 0x07, 0x0b, 0xc2, 0x9c, 0xd7, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0x40, 0xc7, 0xe5, 0x07, 0x04, 0xc4, 0xed, 0x6d, 0x6c, 0x0d, 0x64, 0xb6, 0xe1, 0x73, 0xa5, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xb0, 0x06, 0x68, 0xe9, 0x60, 0x6d, 0xe2, 0xf3, 0x1a, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xf0, 0xe0, 0xc5, 0x07, 0x02, 0x32, 0xf6, 0xe6, 0x46, 0x27, 0x17, 0x66, 0x17, 0x26, 0x97, 0x16, 0xe6, 0x46, 0xb7, 0xe1, 0x73, 0xa5, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0x90, 0xb4, 0x60, 0x74, 0xb0, 0x36, 0xf1, 0x79, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x3c, 0xbd, 0x5c, 0x40, 0x40, 0xe6, 0xca, 0xd8, 0xcc, 0x5a, 0xc6, 0xc2, 0xe6, 0xe8, 0x36, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x8e, 0x6d, 0x8e, 0x07, 0x0b, 0xc2, 0x9c, 0xd7, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0x17, 0xaf, 0x15, 0x10, 0x90, 0x32, 0x3c, 0x38, 0xb9, 0xb2, 0xb9, 0xb9, 0xb4, 0x37, 0x37, 0x90, 0xb1, 0xb0, 0x39, 0xba, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0xc3, 0xd7, 0x2f, 0x07, 0x0b, 0xc2, 0x9c, 0xd7, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0x0f, 0xaf, 0x16, 0x10, 0x90, 0x39, 0x3a, 0xb9, 0xba, 0x31, 0xba, 0x3a, 0xb9, 0x32, 0x90, 0xb1, 0xb0, 0x39, 0xba, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0xc3, 0x5f, 0x34, 0x07, 0x4b, 0xc4, 0xa1, 0xd7, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0xd3, 0xcb, 0x04, 0x04, 0x64, 0xec, 0xcd, 0x2e, 0x4c, 0x2e, 0x2d, 0xcc, 0x8d, 0x6e, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0x60, 0x59, 0xe3, 0xd2, 0xc1, 0xda, 0xc4, 0xe7, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0xf3, 0xf2, 0x03, 0x01, 0x19, 0x7b, 0x73, 0x9b, 0xa3, 0x0b, 0x73, 0xa3, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x58, 0xd8, 0xb9, 0x74, 0xb0, 0x36, 0xf1, 0x79, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x3c, 0xbc, 0x7a, 0x40, 0x40, 0xd8, 0xc2, 0xc4, 0xca, 0xd8, 0x36, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x9f, 0xbb, 0xac, 0xe1, 0xcf, 0xa5, 0xc1, 0xe1, 0x0d, 0xff, 0xce, 0x2f, 0xe0, 0xcf, 0xad, 0xa5, 0xb9, 0x75, 0xb0, 0xbc, 0xcc, 0x79, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x3c, 0xbd, 0x7e, 0x40, 0x40, 0xc4, 0xd2, 0xec, 0xc2, 0xe4, 0xd2, 0xc2, 0xdc, 0xe8, 0x36, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x52, 0x2f, 0x8a, 0x0f, 0xd6, 0x26, 0x3e, 0xaf, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x97, 0x97, 0x0a, 0x08, 0x48, 0x19, 0x5e, 0x58, 0x1b, 0x1c, 0x5b, 0xd9, 0x86, 0xcf, 0x95, 0xd6, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0x21, 0x98, 0xba, 0xc1, 0x4a, 0x33, 0xe8, 0xd6, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0xc7, 0x4b, 0x07, 0x04, 0xc4, 0x2c, 0x8d, 0x8d, 0xae, 0x4c, 0x6e, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xf0, 0x51, 0xfb, 0xc1, 0x2a, 0xb0, 0xe9, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0xc1, 0x8f, 0x0f, 0x04, 0x64, 0xae, 0x8c, 0x8d, 0x0d, 0xe4, 0xcd, 0x0d, 0x84, 0x4e, 0x2e, 0x6c, 0xac, 0x6c, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0x60, 0x49, 0xfd, 0xd2, 0xc1, 0x82, 0x30, 0xe7, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0xc1, 0xef, 0x0b, 0x04, 0x84, 0x2e, 0xcc, 0x6d, 0x0d, 0xe4, 0xcd, 0x0d, 0x84, 0x4e, 0x2e, 0x6c, 0xac, 0x6c, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xf0, 0x96, 0xdd, 0xc1, 0x82, 0x30, 0xe7, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0xc7, 0xaf, 0x04, 0x04, 0xe4, 0xac, 0xcc, 0xad, 0x4c, 0x2e, 0x8c, 0x0d, 0x44, 0xad, 0x8c, 0x0e, 0x04, 0x2d, 0xcd, 0x8d, 0x6e, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xa0, 0xec, 0x92, 0x5d, 0xc3, 0x9f, 0x4b, 0x83, 0xc3, 0x1b, 0xfe, 0x9d, 0x5f, 0xc0, 0x1f, 0x43, 0xab, 0x6b, 0x6b, 0x83, 0x05, 0x66, 0xce, 0x6b, 0xf8, 0x73, 0x69, 0x70, 0x79, 0xc3, 0xbf, 0xf3, 0x0b, 0xf8, 0x74, 0x79, 0x72, 0x65, 0x1d, 0xac, 0x5e, 0x8a, 0x5e, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x5e, 0xfc, 0x5e, 0x40, 0x40, 0xcc, 0xea, 0xdc, 0xc6, 0xe8, 0xd2, 0xde, 0xdc, 0x40, 0xd4, 0x5a, 0xd0, 0xd2, 0xdc, 0xe8, 0x36, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x8f, 0x8f, 0x6c, 0xb0, 0xec, 0x76, 0xfa, 0x60, 0x79, 0x99, 0xf3, 0x1a, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xf0, 0xe0, 0xc7, 0x03, 0x02, 0x22, 0x16, 0x36, 0xb6, 0x76, 0x17, 0x26, 0x47, 0x06, 0x82, 0x96, 0xe6, 0x46, 0xb7, 0xe1, 0x73, 0xa5, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xb0, 0x12, 0x89, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x0e, 0x6f, 0xf8, 0x60, 0x7e, 0x83, 0xf5, 0x5a, 0xcf, 0x1b, 0x3e, 0x57, 0xda, 0x60, 0x61, 0xdc, 0xf3, 0xc1, 0xf2, 0x32, 0xe7, 0x83, 0xe5, 0x65, 0xce, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0xef, 0xe7, 0x03, 0x02, 0x62, 0xf6, 0x26, 0x77, 0x17, 0x26, 0x47, 0x06, 0x82, 0x96, 0xe6, 0x46, 0xb7, 0xe1, 0x73, 0xa5, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0x70, 0x2e, 0x5c, 0x38, 0x58, 0x86, 0x3f, 0xbd, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xfe, 0x7e, 0x24, 0x20, 0x20, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x72, 0x20, 0x68, 0x69, 0x74, 0x1b, 0x3e, 0x57, 0x5a, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x2b, 0xfd, 0x98, 0x0e, 0x16, 0x03, 0x50, 0xaf, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x0f, 0x7e, 0x2b, 0x20, 0x20, 0x63, 0x61, 0x63, 0x68, 0x65, 0x3d, 0x6d, 0x65, 0x6d, 0x6f, 0x69, 0x7a, 0x65, 0x1b, 0x3e, 0x57, 0x5a, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0xcb, 0x21, 0x99, 0x36, 0x3c, 0x42, 0x77, 0xb0, 0xbc, 0xcc, 0x79, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x78, 0xf1, 0x33, 0x01, 0x01, 0x81, 0x93, 0x4b, 0x73, 0xa3, 0x33, 0xeb, 0x81, 0x93, 0x4b, 0x7b, 0x93, 0x4b, 0xa3, 0xcb, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x58, 0xb7, 0xca, 0xb4, 0x41, 0x92, 0x21, 0xf0, 0xc1, 0xa2, 0xba, 0xe8, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0xc5, 0xaf, 0x07, 0x04, 0x84, 0xec, 0xcd, 0xed, 0x84, 0x0e, 0x84, 0xac, 0x0e, 0x8e, 0x2d, 0x6d, 0x2c, 0x8c, 0xae, 0x6c, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0x60, 0x91, 0x31, 0xd3, 0xc1, 0x82, 0x30, 0xe7, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0xc1, 0xef, 0x07, 0x04, 0x84, 0xae, 0x6c, 0x8e, 0xae, 0x8c, 0x0c, 0x04, 0x4e, 0x2e, 0xcd, 0x8d, 0xce, 0x6c, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0x60, 0x99, 0x35, 0xd3, 0x06, 0x49, 0x86, 0xc0, 0x07, 0x8b, 0x89, 0xa2, 0xd7, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0x07, 0xbf, 0x10, 0x10, 0x10, 0xba, 0x3c, 0xb8, 0x32, 0x90, 0x37, 0x37, 0x10, 0x3a, 0xb9, 0xb0, 0xb1, 0xb2, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0xb5, 0xe8, 0x4c, 0x07, 0x0b, 0xc2, 0x9c, 0xd7, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0x97, 0x9d, 0x1e, 0x10, 0x10, 0xb6, 0xb4, 0x39, 0x3a, 0x10, 0xba, 0xb2, 0x36, 0x38, 0xb6, 0x30, 0xba, 0x34, 0xb7, 0xb3, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0xd5, 0xf8, 0x4c, 0x6b, 0xf8, 0x73, 0x69, 0x70, 0x78, 0xc3, 0xbf, 0xf3, 0x6b, 0xb0, 0x0a, 0x3d, 0xaa, 0x83, 0xa5, 0x34, 0xd0, 0xad, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x1f, 0x3b, 0x3a, 0x20, 0x20, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x6e, 0x61, 0x72, 0x79, 0x1b, 0x3e, 0x57, 0x5a, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x49, 0x06, 0x84, 0x07, 0xeb, 0xcc, 0xa3, 0xd7, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0x97, 0x9d, 0x17, 0x10, 0x90, 0xad, 0x12, 0x12, 0x90, 0xad, 0x12, 0x12, 0x10, 0x38, 0x10, 0xbf, 0x2e, 0x10, 0xbf, 0xae, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0xa5, 0x1f, 0x4d, 0x07, 0x6b, 0x13, 0x9f, 0xd7, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xe0, 0xdf, 0xe1, 0x01, 0x01, 0x11, 0x4b, 0x73, 0x23, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x58, 0xfc, 0xd2, 0xb4, 0xc1, 0x4a, 0x33, 0xe8, 0x83, 0xc5, 0x44, 0xd1, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0xc3, 0x8e, 0x1f, 0x08, 0xc8, 0x1a, 0x5b, 0x59, 0xda, 0x1c, 0x5b, 0x1a, 0x48, 0x98, 0x9c, 0xdc, 0xdb, 0xdd, 0x86, 0xcf, 0x95, 0xd6, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0x0a, 0xa1, 0xa6, 0x83, 0x75, 0xe6, 0xd1, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0xb9, 0xb3, 0x03, 0x02, 0xe2, 0xf6, 0x26, 0xd7, 0x16, 0xc6, 0x96, 0xa6, 0x57, 0xb6, 0xe1, 0x73, 0xa5, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xb0, 0x46, 0xaa, 0xe9, 0x60, 0x89, 0x38, 0xf4, 0x1a, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0xf6, 0xf0, 0x81, 0x80, 0xc0, 0xd5, 0xcd, 0xa1, 0x81, 0x88, 0xd5, 0xb9, 0xd1, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x94, 0xf6, 0x96, 0x07, 0x4b, 0xc4, 0xa1, 0xd7, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0x8f, 0x1e, 0x1d, 0x10, 0x90, 0x38, 0x90, 0xbb, 0x1e, 0x10, 0x38, 0x90, 0x31, 0xb4, 0x30, 0xb7, 0xb3, 0xb2, 0xb9, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0xb5, 0x71, 0x4d, 0x6b, 0xf8, 0x73, 0x69, 0x70, 0xf8, 0x60, 0x6d, 0x6c, 0xf4, 0xc1, 0xf2, 0x32, 0xe7, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0xa3, 0xe7, 0x05, 0x04, 0x84, 0x2e, 0x0f, 0xae, 0x8c, 0x0c, 0xc4, 0x2e, 0x4c, 0x2e, 0x2d, 0x4c, 0x8c, 0xad, 0x6c, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xa0, 0x20, 0x8d, 0xdd, 0x60, 0x55, 0xcc, 0xf4, 0xc1, 0xa2, 0xba, 0xe8, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xd0, 0xec, 0xd9, 0x01, 0x01, 0xe9, 0x79, 0x41, 0x89, 0x03, 0x81, 0x03, 0x91, 0x4b, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x2c, 0xc0, 0x6c, 0x3a, 0x58, 0xbc, 0x57, 0xbd, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x3c, 0xf4, 0xb8, 0x80, 0x80, 0xc8, 0x81, 0xdc, 0xa5, 0xd1, 0xa1, 0x81, 0xc0, 0x81, 0x84, 0xcd, 0x81, 0xc4, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x14, 0x7d, 0xba, 0x1b, 0xac, 0x01, 0x80, 0x3e, 0x58, 0x54, 0x17, 0xbd, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x74, 0xf4, 0xfc, 0x80, 0x80, 0x8c, 0xbd, 0xb9, 0x91, 0xa5, 0xd1, 0xa5, 0xbd, 0xb9, 0x85, 0xb1, 0x81, 0xf4, 0xb8, 0x36, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x8e, 0x63, 0x13, 0x1b, 0xac, 0x01, 0x80, 0x3e, 0x58, 0x4c, 0x14, 0xbd, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x5a, 0x3d, 0x3c, 0x20, 0x20, 0x3d, 0x3e, 0x28, 0x71, 0x20, 0x70, 0xa9, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0xc3, 0x83, 0x92, 0x07, 0x0b, 0xc2, 0x9c, 0xd7, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0x40, 0xab, 0xa7, 0x05, 0x04, 0xa4, 0x67, 0x05, 0x25, 0x0e, 0x04, 0x2e, 0xb5, 0xe1, 0x73, 0xa5, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0x70, 0xb4, 0xe1, 0x3b, 0x58, 0x10, 0xe6, 0xbc, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x3c, 0xf4, 0xf8, 0x80, 0x80, 0xc4, 0x81, 0xdc, 0xf5, 0xcc, 0xd5, 0x89, 0xa9, 0x95, 0x8d, 0xd1, 0x81, 0xc0, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x94, 0x12, 0xe2, 0x07, 0x0b, 0xc2, 0x9c, 0xd7, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0x87, 0x1e, 0x2f, 0x10, 0x90, 0x39, 0xba, 0x30, 0xba, 0x32, 0x90, 0xb6, 0xb0, 0x31, 0xb4, 0x34, 0xb7, 0xb2, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0xa2, 0x83, 0x76, 0x83, 0x55, 0x31, 0xd3, 0x1b, 0x2c, 0x08, 0x79, 0x3e, 0x58, 0x6f, 0x14, 0xbd, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xbc, 0xf4, 0xac, 0x80, 0x80, 0xc4, 0x81, 0xdc, 0xf5, 0x6c, 0xc1, 0x81, 0xcc, 0xd5, 0x89, 0xa9, 0x95, 0x8d, 0xd1, 0x75, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x3e, 0xb1, 0x39, 0x58, 0x10, 0xe6, 0xbc, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xbe, 0x3d, 0x7e, 0x20, 0x20, 0x68, 0x6f, 0x6f, 0x6e, 0x20, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x1b, 0x3e, 0x57, 0x5a, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0xeb, 0x3c, 0x9c, 0x0e, 0x96, 0x2a, 0x3f, 0xaf, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x67, 0x8f, 0x0a, 0x08, 0x88, 0x5b, 0xd9, 0x1d, 0xc8, 0x1c, 0x5d, 0x1e, 0x5b, 0xd9, 0x86, 0xcf, 0x95, 0xd6, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0x4a, 0x17, 0xa7, 0x35, 0xfc, 0xb9, 0x34, 0x38, 0xbc, 0x41, 0xe8, 0x97, 0x6c, 0x50, 0x7a, 0xd3, 0x6f, 0xb0, 0x5e, 0xeb, 0x79, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0xb2, 0x09, 0x73, 0x83, 0x05, 0x56, 0xd0, 0x75, 0xb0, 0xa8, 0x2e, 0x7a, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x78, 0xe9, 0x61, 0x01, 0x01, 0x79, 0xb3, 0x2b, 0x93, 0x63, 0x7b, 0x0b, 0x23, 0x03, 0x81, 0x03, 0x49, 0x73, 0x03, 0x89, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x58, 0x85, 0xe5, 0x74, 0xb0, 0x20, 0xcc, 0x79, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x7c, 0x7f, 0xf8, 0x40, 0x40, 0xd8, 0xde, 0xde, 0xc4, 0xca, 0xc2, 0xdc, 0x40, 0xde, 0xe4, 0x36, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0xbf, 0x92, 0x1d, 0x2c, 0x55, 0x7e, 0x5e, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x3e, 0x7e, 0x5a, 0x40, 0x40, 0xe0, 0xd2, 0xc6, 0xd6, 0x40, 0xc6, 0xc2, 0xe6, 0xca, 0x40, 0xd2, 0xdc, 0x40, 0xe2, 0x36, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x82, 0xf4, 0x74, 0x83, 0x35, 0x00, 0xd0, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0x78, 0x83, 0xd0, 0x2f, 0xd9, 0x20, 0xa4, 0x4c, 0xd6, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0xbd, 0xe9, 0x37, 0x58, 0x60, 0x05, 0x7d, 0xb0, 0xbc, 0xc2, 0xb9, 0xd6, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0xff, 0x47, 0x07, 0x04, 0x24, 0xcd, 0xac, 0x87, 0x0e, 0xad, 0xcc, 0xad, 0xa7, 0x8c, 0x6d, 0xae, 0x6c, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xf0, 0x41, 0xce, 0xc1, 0x8a, 0xb9, 0xe8, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xd0, 0xfc, 0x71, 0x01, 0x01, 0xf9, 0xd1, 0x41, 0x81, 0x03, 0x91, 0x03, 0x89, 0x4b, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x14, 0x3b, 0x9a, 0x07, 0x2b, 0xe6, 0xa2, 0xd7, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0x8f, 0x1f, 0x2f, 0x10, 0x90, 0x34, 0x33, 0x10, 0x38, 0x90, 0xb4, 0x39, 0x90, 0x30, 0x90, 0xb1, 0x32, 0x36, 0xb6, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x62, 0x40, 0xf6, 0x60, 0x25, 0x6a, 0xf5, 0x1a, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xe8, 0xfe, 0xf0, 0x80, 0x80, 0xfc, 0xe8, 0xa0, 0xc0, 0x81, 0x84, 0x84, 0x80, 0xc4, 0xa5, 0x36, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0xef, 0xe6, 0x1d, 0x2c, 0x08, 0x73, 0x5e, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xdd, 0x1f, 0x1f, 0x10, 0x90, 0x1f, 0x1d, 0x14, 0x38, 0x90, 0x38, 0x90, 0x90, 0x90, 0xd4, 0x86, 0xcf, 0x95, 0xd6, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0xc1, 0x87, 0x79, 0xb0, 0x20, 0xcc, 0x79, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x78, 0xf8, 0x59, 0x01, 0x01, 0xf9, 0x69, 0x01, 0x01, 0xb9, 0xeb, 0x21, 0x2b, 0x33, 0x0b, 0xab, 0x63, 0xa3, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x38, 0x39, 0xc8, 0x6d, 0xb0, 0x06, 0x00, 0x7a, 0x83, 0x05, 0x66, 0xce, 0x6b, 0xf8, 0x73, 0x69, 0x70, 0xf9, 0x60, 0x79, 0xac, 0x75, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0xfd, 0x63, 0x02, 0x02, 0xc2, 0xf6, 0xf6, 0x26, 0x56, 0x16, 0xe6, 0x06, 0x12, 0xe6, 0x46, 0xb6, 0xe1, 0x73, 0xa5, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0x78, 0x84, 0xf5, 0x60, 0xa9, 0xf2, 0xf3, 0x1a, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xf8, 0xff, 0x00, 0x81, 0x80, 0xa4, 0x99, 0x81, 0xc0, 0x81, 0xa4, 0xcd, 0x81, 0x84, 0xd1, 0xbd, 0xb5, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x14, 0x04, 0xb3, 0x07, 0x2b, 0x51, 0xab, 0xd7, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0xff, 0xc7, 0x0f, 0x04, 0x24, 0xcd, 0x0c, 0x04, 0x0e, 0x24, 0x6d, 0x0e, 0xc4, 0xad, 0x8e, 0x8d, 0x6d, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xa0, 0x84, 0xc7, 0x3c, 0x58, 0x89, 0x5a, 0xbd, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x7c, 0xfc, 0x8c, 0x80, 0x80, 0xa4, 0x99, 0x81, 0xc4, 0x81, 0xb4, 0x85, 0xd1, 0x8d, 0xa1, 0x95, 0xcd, 0x81, 0xc0, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0xac, 0x77, 0x79, 0xda, 0x60, 0x55, 0xcc, 0xf4, 0xc1, 0x72, 0x90, 0xe7, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0xe3, 0xa7, 0x07, 0x04, 0x24, 0xcd, 0x0c, 0x24, 0x0e, 0xa4, 0x2d, 0x8c, 0x6e, 0x0c, 0xad, 0x6c, 0x0e, 0x04, 0x6e, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xa0, 0x98, 0xc4, 0xdc, 0x60, 0xa5, 0x19, 0xf4, 0xc1, 0x72, 0x90, 0xe7, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0xfe, 0x09, 0x01, 0x01, 0x61, 0x7b, 0x7b, 0x13, 0x2b, 0x0b, 0x73, 0x03, 0x71, 0x7b, 0xa3, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0xbc, 0xcd, 0x7a, 0xb0, 0x36, 0xf1, 0x79, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x81, 0x0e, 0x61, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x2c, 0x0f, 0x7b, 0x3a, 0x58, 0x10, 0xe6, 0xbc, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x40, 0x87, 0xf8, 0x36, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x16, 0xc8, 0x3d, 0x1d, 0xac, 0x4d, 0x7c, 0x5e, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0xa0, 0x43, 0x78, 0x1b, 0x3e, 0x57, 0x5a, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x4b, 0x04, 0x9f, 0x0e, 0x96, 0x88, 0x43, 0xaf, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0xd0, 0x21, 0xbb, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x45, 0x92, 0x4f, 0x07, 0x0b, 0xc2, 0x9c, 0xd7, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xe8, 0x90, 0xde, 0x86, 0xcf, 0x95, 0xd6, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0x32, 0xd1, 0xa7, 0x83, 0xb5, 0x89, 0xcf, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0x7c, 0x08, 0xd0, 0x86, 0xcf, 0x95, 0xd6, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0x42, 0xd9, 0xa7, 0x35, 0xfc, 0xb9, 0x34, 0x38, 0xbc, 0x41, 0xe8, 0x97, 0x6c, 0x10, 0x52, 0x26, 0x1b, 0xac, 0x1d, 0x79, 0xee, 0x60, 0x51, 0x5d, 0xf4, 0x1a, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0x1d, 0xf2, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x58, 0x00, 0xfd, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x87, 0x37, 0x7c, 0x30, 0xbf, 0xe1, 0x11, 0xba, 0xc3, 0xaf, 0x73, 0x07, 0xcb, 0xcb, 0x9c, 0xd7, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xe8, 0x90, 0xd0, 0x86, 0xcf, 0x95, 0xd6, 0x90, 0x01, 0x3f, 0x58, 0x7b, 0xe5, 0x7c, 0x70, 0x5c, 0x3c, 0x69, 0x05, 0xfc, 0xb1, 0x3a, 0x33, 0x73, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0x60, 0xd1, 0x13, 0xf6, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xbc, 0xc0, 0x85, 0xc9, 0xcd, 0x95, 0x91, 0x81, 0xb0, 0x95, 0xe1, 0x81, 0xcc, 0x95, 0x9d, 0xb5, 0x95, 0xb9, 0xd1, 0xcd, 0x6d, 0x10, 0xfa, 0x25, 0x1b, 0x84, 0x94, 0xc9, 0x1a, 0xfe, 0x9d, 0x5f, 0xc0, 0x67, 0x4b, 0x73, 0x5b, 0xab, 0x15, 0xf0, 0xcf, 0xc2, 0xe4, 0xc4, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0xe5, 0x6e, 0xd8, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x07, 0x6b, 0x16, 0x8d, 0x37, 0x08, 0xfd, 0x92, 0x0d, 0x8e, 0x45, 0xa3, 0x1b, 0xac, 0xef, 0x84, 0x5e, 0xc3, 0xbf, 0xf3, 0x0b, 0xf8, 0x70, 0x6f, 0x6c, 0x79, 0xad, 0xe1, 0xdf, 0xf9, 0x05, 0x7c, 0xbb, 0xb0, 0x34, 0xb9, 0x9a, 0x05, 0x78, 0xe8, 0xd0, 0xea, 0xdc, 0xd6, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x45, 0x8d, 0xd8, 0x0d, 0xc0, 0x8f, 0x99, 0x5c, 0xd8, 0x59, 0x5b, 0x99, 0x1b, 0x1d, 0xc8, 0xd8, 0x9b, 0xdb, 0x1c, 0x9d, 0x5c, 0xdd, 0x18, 0xdd, 0x9b, 0xdc, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0xa2, 0x46, 0xec, 0x0d, 0xc2, 0x69, 0x6c, 0x83, 0x32, 0x4b, 0x77, 0x83, 0xd0, 0x2f, 0xd9, 0xa0, 0x6c, 0xc2, 0x5c, 0xc3, 0xbf, 0xf3, 0x1b, 0xac, 0xe9, 0x38, 0xaa, 0xc3, 0x29, 0xb6, 0x06, 0x6b, 0xa7, 0x8b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0xd6, 0x4e, 0x17, 0x37, 0x00, 0xaf, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x72, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0x6b, 0xa7, 0x8b, 0x37, 0x7c, 0x30, 0xbf, 0x41, 0x08, 0x3e, 0x6c, 0xf8, 0x77, 0x7e, 0x01, 0xfe, 0xb9, 0xb2, 0xb6, 0x34, 0xb7, 0xb7, 0x3a, 0xb7, 0x56, 0xc0, 0x1f, 0x7b, 0x4b, 0x63, 0x37, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x16, 0x7e, 0x63, 0x6f, 0xf8, 0x5c, 0x69, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x78, 0x71, 0x0b, 0x6b, 0x2b, 0x63, 0x01, 0xb9, 0x2b, 0xa3, 0xeb, 0x21, 0x93, 0xcb, 0x63, 0x01, 0xb1, 0x0b, 0x93, 0xcb, 0xdb, 0xf0, 0xe7, 0xd2, 0xe0, 0xf0, 0x86, 0x7f, 0xe7, 0xd7, 0x60, 0xb9, 0x1b, 0x76, 0xad, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0xc0, 0x3b, 0xf6, 0xe6, 0x46, 0x57, 0x86, 0x47, 0xb7, 0xe1, 0xcf, 0xa5, 0xc1, 0xe3, 0x83, 0x65, 0x33, 0xce, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xf0, 0x8f, 0xa1, 0x85, 0xc1, 0xd1, 0x95, 0xc9, 0xcd, 0x6d, 0xf8, 0x73, 0x69, 0x70, 0x79, 0x83, 0xd0, 0x2f, 0xd9, 0xa0, 0xf4, 0xa6, 0xdf, 0x60, 0x0d, 0x36, 0xf6, 0x06, 0x8b, 0xeb, 0xa0, 0x6b, 0x16, 0xf0, 0xe1, 0xde, 0xc6, 0xd6, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0xe5, 0x1f, 0xd9, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xbc, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x1b, 0x84, 0x7e, 0xc9, 0x06, 0xa5, 0x37, 0xfd, 0x06, 0x4b, 0xfa, 0x9c, 0x37, 0x58, 0xfb, 0xee, 0xdc, 0xe1, 0x14, 0x5b, 0x83, 0x05, 0xbc, 0xd3, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0x0b, 0x78, 0xa7, 0x37, 0x08, 0x36, 0xd3, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf8, 0xd5, 0xca, 0xe8, 0x40, 0xdc, 0xc2, 0xda, 0xca, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0xaa, 0x75, 0xdd, 0x83, 0xf5, 0x5a, 0xcf, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0xbb, 0x56, 0xc6, 0x66, 0x97, 0xe6, 0x06, 0x62, 0x57, 0x26, 0x37, 0x97, 0xf6, 0xe6, 0xb6, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0xcd, 0xd1, 0x91, 0x07, 0xeb, 0xb5, 0x9e, 0xd7, 0xf0, 0xe7, 0xd2, 0x06, 0x8b, 0xf8, 0x69, 0x0f, 0x3f, 0xd4, 0xb4, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x7c, 0xd8, 0x95, 0xb9, 0x91, 0xbd, 0xc9, 0x81, 0x84, 0xb9, 0x91, 0x81, 0xc0, 0xc9, 0xbd, 0x91, 0xd5, 0x8d, 0xd1, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x6d, 0xb0, 0x64, 0xe4, 0xf4, 0x60, 0xbd, 0xd6, 0xf3, 0x1a, 0xfe, 0x5c, 0xda, 0x20, 0x45, 0xd3, 0xf8, 0x60, 0xbd, 0xd6, 0xf3, 0xc1, 0xd2, 0xb2, 0xec, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x0f, 0x63, 0x63, 0x03, 0x79, 0x33, 0x03, 0xa1, 0x43, 0x2b, 0x03, 0x09, 0x13, 0x7b, 0xb3, 0x2b, 0xdb, 0xf0, 0xb9, 0xd2, 0x06, 0x0b, 0xf6, 0xb2, 0x37, 0x58, 0x11, 0x98, 0xbd, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xbb, 0x32, 0xf9, 0xf0, 0x43, 0xcd, 0xc1, 0xd2, 0xb2, 0xec, 0x0e, 0xa7, 0xd8, 0x1a, 0x2c, 0x66, 0x65, 0xde, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xe0, 0xc8, 0x10, 0x7a, 0xb0, 0x98, 0x95, 0xb9, 0x01, 0xfc, 0xe0, 0xc2, 0xe4, 0xe8, 0xd2, 0xc2, 0xd8, 0x40, 0xdc, 0xde, 0xea, 0xdc, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x16, 0xb3, 0x32, 0x6f, 0xf8, 0x60, 0x7e, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xff, 0x0d, 0xae, 0xcc, 0xed, 0x20, 0x04, 0x1f, 0x36, 0x08, 0xda, 0x9f, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x43, 0x0b, 0x63, 0x33, 0x6b, 0x11, 0x63, 0x7b, 0x1b, 0x5b, 0x2b, 0x23, 0xdb, 0xf0, 0xb9, 0xd2, 0x06, 0x01, 0x1b, 0xb4, 0xc1, 0x12, 0x54, 0xe6, 0x35, 0xfc, 0xb9, 0x34, 0x78, 0x7c, 0xb0, 0x5a, 0x95, 0xb9, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x34, 0xab, 0x63, 0x63, 0xcb, 0x03, 0x11, 0x63, 0x7b, 0x1b, 0x5b, 0x2b, 0x23, 0xdb, 0xf0, 0xb9, 0xd2, 0x06, 0x61, 0x04, 0x74, 0xb0, 0x56, 0x97, 0xb9, 0x15, 0xf0, 0xe9, 0xde, 0xde, 0xd8, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0x65, 0xee, 0xd9, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0xd3, 0xe5, 0xc1, 0x95, 0x81, 0x90, 0x95, 0x8d, 0xbd, 0xc9, 0x85, 0xd1, 0xa5, 0xbd, 0xb9, 0x1d, 0x2c, 0x40, 0x7f, 0x9e, 0x05, 0xfc, 0x31, 0xb9, 0x34, 0x71, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0x60, 0x51, 0x81, 0xf6, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0x00, 0xef, 0x5c, 0x5d, 0x5b, 0x5b, 0x98, 0x5c, 0x7e, 0x70, 0x02, 0x12, 0x5d, 0xc3, 0x9f, 0x4b, 0x03, 0xbc, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0xf3, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0x48, 0x99, 0xac, 0xe1, 0xdf, 0xf9, 0x05, 0xfc, 0xb9, 0xb2, 0x31, 0xba, 0xea, 0x70, 0x8a, 0xb5, 0x06, 0xcb, 0x69, 0xa0, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x96, 0xd3, 0x40, 0x37, 0x80, 0x0f, 0xda, 0xdb, 0x9b, 0x1b, 0x08, 0xdd, 0xdb, 0x1b, 0xdb, 0xdc, 0x06, 0x25, 0x0b, 0xfb, 0x2c, 0xb3, 0x06, 0xab, 0xd0, 0xa3, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x56, 0xa1, 0x47, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0x03, 0x59, 0x9e, 0x5b, 0x58, 0x5b, 0xda, 0x18, 0x08, 0x56, 0x13, 0x13, 0x88, 0xdb, 0x1b, 0x59, 0xd9, 0xdc, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0x48, 0x99, 0xac, 0xe1, 0xdf, 0xf9, 0x05, 0x7c, 0xba, 0x3a, 0xb7, 0xb0, 0x5a, 0x01, 0x5f, 0xac, 0xac, 0x4c, 0xde, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x58, 0x92, 0xa5, 0xbd, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xdf, 0x5c, 0x5a, 0x1b, 0x1c, 0x5b, 0x19, 0x48, 0x59, 0x9b, 0x58, 0x19, 0xd9, 0x86, 0x0f, 0xe6, 0x37, 0x58, 0xf0, 0xfe, 0xb9, 0xe1, 0x73, 0xa5, 0x0d, 0x42, 0xf0, 0xe1, 0x60, 0x6d, 0xe2, 0xf3, 0x0a, 0xf8, 0x6d, 0x61, 0x72, 0xf8, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0xea, 0x3a, 0xed, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xbc, 0xc9, 0xf2, 0xdc, 0xc2, 0xda, 0xd2, 0xc6, 0x40, 0xb0, 0x9a, 0x98, 0x40, 0xe8, 0xc2, 0xce, 0x36, 0x08, 0x35, 0xc4, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x52, 0x5a, 0xf0, 0x41, 0x59, 0xe7, 0xb9, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0xb8, 0xbb, 0xe1, 0xdf, 0xf9, 0x05, 0xfc, 0xb6, 0x30, 0xb7, 0xb2, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xe1, 0x86, 0x7f, 0xe7, 0x17, 0xf0, 0xdb, 0xc2, 0xe4, 0xe8, 0xea, 0x70, 0x8a, 0xad, 0xc1, 0x22, 0x4c, 0xed, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0x45, 0x98, 0xda, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xf8, 0x62, 0x35, 0x31, 0x81, 0xb8, 0x85, 0xb5, 0x95, 0xad, 0xcc, 0xc1, 0x85, 0x8d, 0x95, 0x6d, 0xf8, 0x60, 0x7e, 0x83, 0xf3, 0xe6, 0xe9, 0x86, 0xcf, 0x95, 0x36, 0x38, 0x6f, 0x9e, 0x1e, 0xac, 0x35, 0xf4, 0x9d, 0x35, 0x58, 0xa6, 0x1d, 0xb5, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xb0, 0x4c, 0x3b, 0x6a, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x7f, 0xb2, 0x3c, 0xb7, 0xb0, 0xb6, 0xb4, 0x31, 0x10, 0xac, 0x26, 0x26, 0x10, 0xb7, 0x37, 0xb2, 0xb2, 0x0d, 0x42, 0x0d, 0x71, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0x84, 0x51, 0xfb, 0xa0, 0xac, 0xf3, 0xdc, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0xfc, 0xdc, 0xf0, 0xef, 0xfc, 0x1a, 0xac, 0xae, 0xd3, 0xae, 0x35, 0xfc, 0xb9, 0x34, 0xf8, 0xb8, 0xe1, 0xdf, 0xf9, 0x0d, 0xd6, 0x14, 0x53, 0xd7, 0xe1, 0x14, 0x5b, 0x83, 0xc5, 0x55, 0xda, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x1c, 0x19, 0x42, 0x0f, 0x16, 0x57, 0x69, 0x37, 0x00, 0x2f, 0x6d, 0x61, 0x79, 0x62, 0x65, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0x8b, 0xab, 0xb4, 0x37, 0x08, 0x35, 0xc4, 0x0d, 0x16, 0x60, 0x6b, 0x6f, 0xb0, 0x74, 0xb9, 0x6a, 0x0d, 0xff, 0xce, 0x6f, 0xb0, 0x4a, 0x06, 0xba, 0x0d, 0x9f, 0x2b, 0xad, 0x41, 0xb0, 0x99, 0xae, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x63, 0x06, 0xe8, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x58, 0xa6, 0x1d, 0xb5, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x56, 0xa1, 0x47, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x65, 0xf7, 0x51, 0x1d, 0xac, 0x4d, 0x7c, 0x9e, 0x35, 0x58, 0xfe, 0xa9, 0xbd, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xb0, 0xfc, 0x53, 0x7b, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x1e, 0xc8, 0xf2, 0xdc, 0xc2, 0xda, 0xd2, 0xc6, 0x40, 0xb0, 0x9a, 0x98, 0x40, 0xc2, 0xe8, 0xe8, 0xe4, 0xe6, 0x36, 0x08, 0xfd, 0x92, 0x0d, 0x42, 0xca, 0x64, 0x0d, 0x9f, 0x2b, 0x6d, 0xb0, 0x74, 0x52, 0x7b, 0x0d, 0x7f, 0x2e, 0x0d, 0x6e, 0x6f, 0x10, 0xfa, 0x25, 0x1b, 0x84, 0x94, 0xc9, 0x1a, 0xfe, 0x9d, 0x5f, 0x83, 0x25, 0x59, 0xda, 0x55, 0xad, 0x80, 0xdf, 0x16, 0x26, 0x57, 0x6f, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xac, 0xbc, 0xda, 0xde, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x3b, 0xcd, 0x8d, 0xae, 0x4c, 0x0e, 0x0e, 0xe4, 0x4d, 0x0e, 0xc4, 0xed, 0x8d, 0xac, 0x6c, 0x6e, 0x83, 0xd0, 0x2f, 0xd9, 0x60, 0x15, 0x64, 0xf2, 0x06, 0xab, 0xa7, 0xb4, 0x37, 0x58, 0x95, 0xae, 0xdd, 0xe1, 0x14, 0x5b, 0xc0, 0x6f, 0x0b, 0x93, 0x2b, 0x37, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x16, 0xd8, 0x6d, 0x6f, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0xe9, 0xf6, 0x46, 0x56, 0x06, 0xf2, 0x26, 0x07, 0xe2, 0xf6, 0x46, 0x56, 0x36, 0xb7, 0x41, 0xe8, 0x97, 0x6c, 0xb0, 0x0a, 0x32, 0x79, 0x83, 0x85, 0x0f, 0xdb, 0x07, 0x4b, 0xe4, 0xb6, 0x0f, 0xa7, 0xd8, 0xe1, 0x14, 0x5b, 0x0d, 0xd6, 0xa6, 0x35, 0x6f, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xac, 0x4d, 0x6b, 0xde, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x6f, 0xae, 0x2c, 0x4c, 0x6e, 0x0c, 0x0d, 0x84, 0x4e, 0x2e, 0x6c, 0xac, 0x6c, 0x83, 0xd0, 0x2f, 0xd9, 0x20, 0xa4, 0x4c, 0xd6, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0x9b, 0x30, 0x37, 0x58, 0xd2, 0xe7, 0x5c, 0xab, 0xe1, 0x6d, 0x9d, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0xc3, 0xdb, 0x3a, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0xcd, 0x95, 0x85, 0xc9, 0x8d, 0xa1, 0x81, 0xc0, 0x85, 0xd1, 0xa1, 0x6d, 0x10, 0xfa, 0x25, 0x1b, 0x84, 0x94, 0xc9, 0x1a, 0xfe, 0x9d, 0x5f, 0x83, 0xd5, 0x22, 0x48, 0xd5, 0x6a, 0xb0, 0x9a, 0x10, 0x7b, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0x60, 0x35, 0x21, 0xf6, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x3f, 0xdc, 0x1b, 0x5b, 0x98, 0x5c, 0x1a, 0x5d, 0xde, 0x06, 0xc1, 0x66, 0xba, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x56, 0x54, 0x4a, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0xc3, 0xa1, 0xd0, 0xe1, 0x14, 0x6b, 0x0d, 0x4e, 0x3e, 0xa8, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0x27, 0x1f, 0xd4, 0x0d, 0x0e, 0x10, 0xa2, 0x1b, 0x9c, 0x7c, 0x50, 0x37, 0x08, 0x35, 0xc4, 0x35, 0xbc, 0x71, 0x77, 0xb0, 0x0e, 0x9e, 0x79, 0xc3, 0x07, 0xf3, 0x6b, 0x10, 0x6c, 0xa6, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x11, 0xe6, 0x96, 0x07, 0xe2, 0xf6, 0x56, 0xe7, 0x36, 0x77, 0xb0, 0xde, 0x9d, 0x79, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x5e, 0xb7, 0x37, 0x10, 0xb7, 0xb7, 0x3a, 0xb7, 0x83, 0xf5, 0x22, 0xcd, 0x6d, 0x10, 0xb4, 0x3f, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x1d, 0x46, 0xf7, 0xd6, 0x06, 0xf2, 0x02, 0x32, 0xf6, 0xe6, 0x36, 0x47, 0x17, 0xe6, 0x46, 0xb7, 0xe1, 0x73, 0xa5, 0x0d, 0xd6, 0xbc, 0x34, 0x6f, 0xb0, 0x30, 0xee, 0x79, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x1f, 0x1c, 0xda, 0x65, 0x5a, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xbf, 0x37, 0x39, 0xb2, 0x32, 0xb9, 0x32, 0x32, 0x10, 0xb8, 0xb0, 0x34, 0xb9, 0x0d, 0x9f, 0x2b, 0x6d, 0xb0, 0x7e, 0x9f, 0x79, 0x83, 0xb5, 0x30, 0xce, 0x1b, 0xac, 0x36, 0xc8, 0x6e, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xbe, 0x37, 0x31, 0xb5, 0xb2, 0x31, 0xba, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0xc3, 0x0c, 0x6d, 0xb0, 0x16, 0xc6, 0x79, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x6f, 0xf8, 0x77, 0x7e, 0x0d, 0x16, 0x7e, 0x63, 0x57, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0xe1, 0x16, 0xd6, 0x56, 0x36, 0x07, 0x17, 0x36, 0x56, 0xb6, 0xe1, 0x73, 0xa5, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0x98, 0xfb, 0x0d, 0x56, 0x95, 0x3f, 0x1f, 0xac, 0xe8, 0xe1, 0x5e, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0xe6, 0xe0, 0x60, 0xa0, 0xb3, 0xe1, 0x73, 0xa5, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xb0, 0xa0, 0x61, 0x6a, 0x0d, 0x7f, 0x2e, 0x0d, 0x0e, 0x6f, 0x10, 0xfa, 0x25, 0x1b, 0x94, 0x88, 0xef, 0x1b, 0x2c, 0x9b, 0x71, 0xae, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x09, 0x73, 0x73, 0x7b, 0xa3, 0x0b, 0xa3, 0x4b, 0x7b, 0x73, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x14, 0xd3, 0x35, 0xfc, 0xb9, 0x34, 0x38, 0xbc, 0x41, 0xe8, 0x97, 0x6c, 0x50, 0x7a, 0xd3, 0x6f, 0xb0, 0x6c, 0xc6, 0x79, 0x83, 0xa5, 0x06, 0xcf, 0x1d, 0xac, 0xe8, 0xe1, 0x5e, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x6f, 0xb6, 0x30, 0xbd, 0x3c, 0x90, 0x32, 0xbb, 0x30, 0xb6, 0xba, 0x30, 0xba, 0xb4, 0x37, 0xb7, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x43, 0x1d, 0xd9, 0x60, 0x2d, 0x8c, 0xf3, 0xc1, 0xf2, 0x32, 0xe7, 0x0e, 0xa7, 0xd8, 0x1a, 0xac, 0x16, 0x41, 0xda, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x58, 0x2d, 0x82, 0xb4, 0xe1, 0x83, 0xf9, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0xbb, 0x4b, 0x73, 0x3b, 0x03, 0x29, 0x63, 0x2b, 0x6b, 0x2b, 0x73, 0xa3, 0x3b, 0x58, 0xaf, 0xf5, 0xbc, 0x41, 0xd0, 0xfe, 0xac, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x97, 0x58, 0x1e, 0xc8, 0x59, 0xd9, 0x5b, 0x5b, 0x19, 0x9d, 0x5c, 0xde, 0x86, 0xcf, 0x95, 0x36, 0x08, 0xd8, 0xa0, 0x83, 0x55, 0x7a, 0xce, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xf0, 0x8a, 0xe5, 0x81, 0xb8, 0x85, 0xb5, 0x95, 0x6d, 0xf8, 0x5c, 0x69, 0x83, 0x30, 0x02, 0xda, 0x20, 0xc9, 0x10, 0x78, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x1f, 0xac, 0xef, 0x84, 0xae, 0xd5, 0x60, 0x19, 0x4e, 0xf3, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x32, 0x9c, 0xe6, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xbc, 0xc2, 0xe8, 0xde, 0xda, 0x40, 0xcc, 0xde, 0xe4, 0xda, 0xc2, 0xe8, 0x0e, 0x8e, 0xda, 0xa0, 0x2b, 0xc0, 0x3b, 0x47, 0x57, 0xe6, 0x36, 0x96, 0xc6, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xac, 0x27, 0xe8, 0x6e, 0x00, 0x3e, 0xdc, 0xde, 0xea, 0xdc, 0x40, 0xd6, 0xdc, 0xde, 0xee, 0xd8, 0xca, 0xc8, 0xce, 0xca, 0x40, 0xda, 0xc2, 0xe0, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0xd6, 0x13, 0x74, 0x6f, 0x10, 0xb4, 0x3f, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0xac, 0x71, 0x9c, 0x5a, 0xc3, 0x9f, 0x4b, 0x03, 0x3e, 0x5b, 0x99, 0x19, 0xbd, 0xe1, 0xdf, 0xf9, 0x35, 0x58, 0x4f, 0xd0, 0x5d, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x95, 0xd7, 0x46, 0x07, 0xab, 0x5c, 0xba, 0x5b, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0x70, 0x90, 0xac, 0xe1, 0xcf, 0xa5, 0x0d, 0x0e, 0x4e, 0x6e, 0x1b, 0x84, 0x7e, 0xc9, 0x06, 0x25, 0xe2, 0xfb, 0x1a, 0xfe, 0x9d, 0xdf, 0x20, 0x61, 0x41, 0xb8, 0x5a, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0x60, 0xbd, 0xe1, 0xd4, 0x1a, 0xfe, 0x5c, 0x1a, 0xe0, 0x37, 0x93, 0x0b, 0x3b, 0x6b, 0x2b, 0x73, 0xa3, 0x0f, 0x96, 0xf4, 0x39, 0xaf, 0xe1, 0xcf, 0xa5, 0x01, 0x5e, 0xb9, 0xb2, 0xb9, 0x37, 0x36, 0xbb, 0x72, 0xc3, 0xbf, 0xf3, 0x6b, 0xb0, 0xa8, 0x11, 0xbb, 0xea, 0x70, 0x8a, 0xb5, 0x86, 0x3b, 0x6d, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0x70, 0xa7, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x49, 0xf6, 0x36, 0x56, 0xd7, 0x56, 0xe6, 0x46, 0x17, 0x46, 0x97, 0xf6, 0xe6, 0xb6, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0xa2, 0x27, 0xec, 0x0d, 0xff, 0xce, 0xaf, 0xc1, 0xa2, 0x27, 0xec, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0x2c, 0x2a, 0xd0, 0xde, 0xf0, 0xef, 0xfc, 0x1a, 0x2c, 0x2a, 0xd0, 0xae, 0x56, 0x83, 0xe5, 0x7d, 0xd0, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0xcb, 0xfb, 0xa0, 0x37, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x1b, 0x7b, 0x93, 0x2b, 0x03, 0x19, 0x43, 0x0b, 0x83, 0xa3, 0x2b, 0x93, 0xdb, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0xbd, 0xe9, 0xd7, 0xf0, 0xef, 0xfc, 0x02, 0xfe, 0x1d, 0x5a, 0x18, 0x5d, 0x6b, 0x10, 0xfa, 0x25, 0x1b, 0x94, 0x88, 0xf5, 0x1b, 0xac, 0xd7, 0x7a, 0x3e, 0x58, 0x5e, 0xe1, 0xdc, 0xe1, 0x14, 0x5b, 0xc0, 0x47, 0xab, 0x6b, 0x83, 0x37, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x16, 0xc2, 0x76, 0x6f, 0xf8, 0x5c, 0x69, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xfc, 0xe6, 0xc2, 0xda, 0xe0, 0xd8, 0xca, 0x40, 0xc6, 0xde, 0xea, 0xdc, 0xe8, 0x36, 0xfc, 0xb9, 0x34, 0xe0, 0xb5, 0xbd, 0xb9, 0x1b, 0xfe, 0x9d, 0x5f, 0xc0, 0x6f, 0x7b, 0x0b, 0x73, 0x6b, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xfc, 0xc6, 0xc2, 0xd8, 0xd8, 0xe6, 0x40, 0xde, 0xea, 0xe8, 0x40, 0xde, 0xcc, 0x36, 0xfc, 0xb9, 0xb4, 0x41, 0x69, 0x96, 0xbd, 0x41, 0xe8, 0x97, 0x6c, 0x50, 0x22, 0xd6, 0x6f, 0x70, 0x46, 0x42, 0x3d, 0x38, 0x1d, 0x12, 0xae, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xcf, 0x58, 0x18, 0x1b, 0xdb, 0x1c, 0x48, 0x9a, 0x1b, 0xdd, 0xdb, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0x34, 0x37, 0xf7, 0x60, 0x15, 0x77, 0x77, 0xab, 0xc1, 0x12, 0x6d, 0xec, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0x25, 0xda, 0xd8, 0x1b, 0x84, 0x1a, 0xe2, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0xe3, 0xee, 0x60, 0x0d, 0x4f, 0xf7, 0x1a, 0x1c, 0x5d, 0x07, 0x3b, 0x28, 0xcb, 0x3c, 0x0f, 0xca, 0x3a, 0xcf, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0x0d, 0xd6, 0xdb, 0xe5, 0x1c, 0xac, 0x72, 0xe9, 0x5e, 0xc3, 0x9f, 0x4b, 0x1b, 0x1c, 0xe4, 0xd9, 0x0e, 0x96, 0xc3, 0x62, 0xb7, 0x02, 0x7e, 0x98, 0x58, 0x19, 0xbb, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xb0, 0x36, 0xc3, 0x7b, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x3e, 0xde, 0xe4, 0xd2, 0xce, 0xd2, 0xdc, 0xc2, 0xd8, 0x40, 0xe6, 0xd2, 0xdc, 0x74, 0x40, 0xe8, 0xf2, 0xe0, 0xca, 0x36, 0xfc, 0x3b, 0xbf, 0x80, 0x4f, 0x97, 0x07, 0xf7, 0xd6, 0xe1, 0x14, 0x6b, 0x0d, 0x4a, 0xe8, 0xd8, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x8e, 0x0c, 0xa1, 0x07, 0x25, 0x74, 0x6c, 0x03, 0xf0, 0x33, 0x47, 0x27, 0x57, 0x37, 0x46, 0x57, 0x27, 0x57, 0x06, 0x42, 0x56, 0x66, 0x96, 0xe6, 0x96, 0x46, 0x97, 0xf6, 0xe6, 0xb6, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0x50, 0x42, 0xc7, 0x6e, 0x10, 0x6a, 0x88, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xdc, 0x1d, 0xac, 0x6e, 0x74, 0x5e, 0xc3, 0x1b, 0x77, 0x07, 0x8b, 0x2c, 0x9a, 0xdb, 0x20, 0x68, 0x7f, 0xd6, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x43, 0x2c, 0x6c, 0xae, 0x0c, 0x84, 0x2e, 0x0f, 0xae, 0xec, 0x60, 0xa1, 0xa2, 0xf3, 0x1a, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0xcc, 0x95, 0xd1, 0x81, 0x90, 0x95, 0x89, 0xd5, 0x9d, 0x6d, 0xf8, 0x5c, 0x69, 0x83, 0x25, 0xba, 0xce, 0x1b, 0x2c, 0xfc, 0x75, 0x5e, 0xc3, 0x9f, 0x4b, 0x83, 0xc7, 0x07, 0x0b, 0xac, 0xa0, 0x5b, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x5f, 0xb3, 0x37, 0xb9, 0xb6, 0x30, 0x36, 0x90, 0xb1, 0xb7, 0xb6, 0xb6, 0x32, 0x37, 0xba, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0xc3, 0x13, 0xef, 0x6b, 0xf8, 0x73, 0x69, 0x70, 0x78, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0x70, 0xa7, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xe1, 0x0d, 0xff, 0xce, 0xaf, 0xe1, 0x4e, 0xab, 0x0e, 0x16, 0xe1, 0x79, 0xaf, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xe7, 0xd8, 0x9b, 0xdb, 0x1c, 0x5d, 0x98, 0x1b, 0x1d, 0x48, 0x18, 0xdd, 0x5b, 0xdb, 0x86, 0xcf, 0x95, 0x36, 0x38, 0x8b, 0x89, 0x6e, 0xb0, 0x30, 0xee, 0xf9, 0xf0, 0x4c, 0xdd, 0x1a, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0xc8, 0x95, 0x99, 0x95, 0xc9, 0x95, 0xb9, 0x8d, 0x95, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0xfe, 0x9d, 0xdf, 0x60, 0x0d, 0x00, 0xf4, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0x3e, 0x58, 0x3d, 0x82, 0xdd, 0x1a, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xf0, 0x81, 0x96, 0x77, 0x96, 0x56, 0xe6, 0x96, 0x36, 0x06, 0x22, 0x57, 0x66, 0x56, 0x26, 0x57, 0xe6, 0x36, 0x56, 0xb6, 0xe1, 0x73, 0xa5, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xb0, 0x4c, 0x97, 0xea, 0x60, 0x59, 0xdc, 0xf3, 0x1a, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xf0, 0x11, 0xe6, 0xe6, 0xf6, 0x46, 0x17, 0x46, 0x57, 0x06, 0x32, 0x97, 0xe7, 0x46, 0x87, 0x56, 0x46, 0x97, 0x36, 0xb6, 0xe1, 0x73, 0xa5, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xb0, 0x50, 0x99, 0x6a, 0x0d, 0x7f, 0x2e, 0x0d, 0x0e, 0x6f, 0x10, 0xfa, 0x25, 0x1b, 0x94, 0xde, 0xf4, 0x1b, 0xac, 0xd7, 0x7a, 0x5e, 0x83, 0xd0, 0x2f, 0xd9, 0x20, 0xa4, 0x4c, 0x0e, 0x96, 0x3c, 0x41, 0x77, 0xb0, 0x08, 0xcf, 0x7b, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x3c, 0xc7, 0xde, 0xda, 0xe0, 0xde, 0xe6, 0xca, 0xc8, 0x40, 0xe6, 0xe0, 0xca, 0xc6, 0x36, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x42, 0xbf, 0x64, 0x83, 0x25, 0x61, 0xce, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0x78, 0x83, 0xd0, 0x2f, 0xd9, 0x20, 0xa4, 0x4c, 0x0e, 0x96, 0x9f, 0x59, 0xb7, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xde, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x1b, 0x3e, 0x57, 0x5a, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x87, 0xef, 0xdb, 0x37, 0x58, 0x18, 0xf7, 0x7c, 0xb0, 0x08, 0xcf, 0x7b, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x78, 0x91, 0x2b, 0x63, 0x0b, 0xa3, 0x4b, 0xb3, 0x2b, 0x03, 0xa1, 0x7b, 0x03, 0x99, 0xab, 0x13, 0x53, 0x2b, 0x1b, 0xa3, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x58, 0x8a, 0x51, 0xb5, 0xc1, 0x1a, 0x00, 0xe8, 0x83, 0x45, 0x78, 0xde, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0x0b, 0x89, 0x0f, 0x0b, 0x88, 0x59, 0x1a, 0x1b, 0x5d, 0x99, 0x9c, 0x0e, 0x88, 0x5c, 0x59, 0x5c, 0x5d, 0x9a, 0x5c, 0xd9, 0x86, 0xcf, 0x95, 0xd6, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0x7a, 0x95, 0xaa, 0x0d, 0x56, 0x9a, 0x41, 0x1f, 0x2c, 0xc2, 0xf3, 0x5e, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x4f, 0x12, 0x12, 0x16, 0x10, 0xb9, 0xb2, 0xb1, 0x3a, 0xb9, 0xb9, 0xb4, 0x37, 0xb7, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x45, 0x3d, 0x55, 0x1b, 0xac, 0x34, 0x83, 0x5e, 0xc3, 0x9f, 0x4b, 0x83, 0xc7, 0x1b, 0x84, 0x7e, 0xc9, 0x06, 0x25, 0x62, 0xfd, 0x06, 0xeb, 0xb5, 0x9e, 0x0f, 0x96, 0x9f, 0x59, 0xb7, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x3e, 0x24, 0x7c, 0x2c, 0x20, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x1b, 0x3e, 0x57, 0x5a, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x67, 0xa2, 0x8f, 0x83, 0x25, 0xe2, 0xd0, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x45, 0xf2, 0xc5, 0x02, 0x52, 0x86, 0x17, 0xd6, 0x06, 0xc7, 0x56, 0xb6, 0xe1, 0x73, 0xa5, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0x10, 0x40, 0x67, 0x07, 0x6b, 0x13, 0x9f, 0xd7, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x83, 0x44, 0x87, 0x05, 0x84, 0xae, 0x0e, 0x8e, 0xad, 0x6c, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x1c, 0xde, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0x3d, 0x58, 0x60, 0x05, 0xbd, 0x86, 0x3f, 0x97, 0x06, 0xa7, 0x0f, 0x96, 0x7b, 0x7c, 0xd7, 0x1a, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0x92, 0x94, 0xb0, 0x80, 0xa0, 0x95, 0x85, 0x91, 0x81, 0xc0, 0xa5, 0x8d, 0xad, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x04, 0xed, 0xcf, 0xc1, 0x3a, 0xe2, 0xef, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0x85, 0xc4, 0x85, 0x05, 0x44, 0xae, 0x2c, 0x8c, 0xac, 0xe5, 0x4e, 0x2e, 0x8d, 0xae, 0x0c, 0x64, 0xec, 0x4d, 0xae, 0x6c, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0x60, 0x09, 0x67, 0xd5, 0xc1, 0xca, 0xc0, 0xef, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0x85, 0x84, 0x87, 0x05, 0xc4, 0x2c, 0x8d, 0x8d, 0xae, 0x4c, 0x4e, 0x07, 0xa4, 0x0c, 0x6f, 0x8c, 0xad, 0x8e, 0xac, 0x6c, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0x60, 0x11, 0x6b, 0xd5, 0xc1, 0x82, 0xb5, 0xef, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0x81, 0xa4, 0x85, 0x05, 0xc4, 0xac, 0xce, 0x6d, 0x8c, 0x2e, 0xed, 0xcd, 0x0d, 0x64, 0xec, 0x4d, 0xae, 0x6c, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0x20, 0x9c, 0xc6, 0x0e, 0x16, 0xac, 0x7d, 0xaf, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x27, 0x89, 0x17, 0x0b, 0xc8, 0xd8, 0x9b, 0xdb, 0x1c, 0x08, 0x5c, 0xda, 0xd8, 0xda, 0x86, 0xcf, 0x95, 0xd6, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0xd2, 0xe5, 0xaa, 0x83, 0x05, 0x6b, 0xdf, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x47, 0xb2, 0xc2, 0x02, 0x32, 0x47, 0x17, 0xe6, 0x46, 0x16, 0x26, 0x47, 0xb6, 0xe1, 0x73, 0xa5, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0x70, 0x80, 0x10, 0x5d, 0xc3, 0x9f, 0x4b, 0x83, 0xc3, 0x1b, 0xfe, 0x9d, 0x5f, 0x83, 0xc3, 0xbf, 0x69, 0x1d, 0x2c, 0xc2, 0xf3, 0x5e, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x5e, 0x48, 0x5e, 0x58, 0x40, 0xee, 0xe4, 0xd2, 0xe8, 0xca, 0x5a, 0xde, 0xdc, 0xd8, 0xf2, 0x40, 0xc6, 0xde, 0xe4, 0xca, 0x36, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x16, 0xd1, 0x57, 0x1d, 0xac, 0x0c, 0xfc, 0x5e, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x1f, 0x92, 0x1d, 0x16, 0x90, 0xb6, 0x30, 0xb7, 0xba, 0x30, 0xb6, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x65, 0x04, 0x56, 0x07, 0x6b, 0x13, 0x9f, 0xd7, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x87, 0xc4, 0x84, 0x05, 0x44, 0xae, 0x0c, 0x2e, 0x2c, 0x4d, 0x6e, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0x60, 0x21, 0x85, 0xd5, 0xc1, 0x12, 0x71, 0xe8, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x22, 0xf1, 0x63, 0x01, 0x21, 0x2b, 0x33, 0x0b, 0xab, 0x63, 0xa3, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x08, 0x35, 0xc4, 0x0d, 0x96, 0x84, 0x39, 0x1f, 0x2c, 0xc2, 0xf3, 0x5e, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x3e, 0x48, 0xc0, 0x58, 0x40, 0xe4, 0xca, 0xc2, 0xc8, 0x5a, 0xde, 0xdc, 0xd8, 0xf2, 0x40, 0xc6, 0xde, 0xe4, 0xca, 0x36, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x56, 0xd8, 0x58, 0x1d, 0xac, 0x0c, 0xfc, 0x5e, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x80, 0x9f, 0xa4, 0x87, 0x05, 0xc4, 0x2d, 0xac, 0xad, 0x6c, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xf0, 0xe7, 0xd2, 0x06, 0xab, 0x62, 0xa6, 0x0f, 0x16, 0xe1, 0x79, 0xaf, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x27, 0x09, 0x10, 0x0b, 0x48, 0x18, 0xdd, 0x5b, 0x1b, 0x08, 0x5c, 0xda, 0xd8, 0xda, 0x86, 0xcf, 0x95, 0xd6, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xe1, 0x83, 0xf9, 0x83, 0x05, 0x6b, 0xdf, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x49, 0xf2, 0xc3, 0x02, 0x62, 0x56, 0xc7, 0xc6, 0x06, 0x02, 0x97, 0x36, 0xb6, 0xb6, 0xe1, 0x73, 0xa5, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0x10, 0x6c, 0xa6, 0x07, 0xeb, 0x88, 0xbf, 0xd7, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x9b, 0x24, 0x84, 0x05, 0xe4, 0x0d, 0x2e, 0x2c, 0xae, 0xae, 0x0c, 0x64, 0xec, 0x4d, 0xae, 0x6c, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0x60, 0xc1, 0x9d, 0xd5, 0xc1, 0xca, 0xc0, 0xef, 0x0e, 0xa7, 0xd8, 0x02, 0x7c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0xf4, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x9a, 0x8b, 0xf0, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0xb2, 0x09, 0x73, 0x0d, 0x82, 0xf6, 0x67, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x45, 0x97, 0x56, 0x6b, 0xf8, 0x73, 0x69, 0x70, 0xf8, 0x60, 0x39, 0x2c, 0x76, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0xac, 0x89, 0xb4, 0x5a, 0xc3, 0x9f, 0x4b, 0x83, 0xc3, 0x1b, 0x84, 0x7e, 0xc9, 0x06, 0x21, 0x65, 0x72, 0xb0, 0xde, 0xa8, 0xbb, 0x5a, 0x0d, 0x16, 0x8d, 0x68, 0x6f, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0x2c, 0x1a, 0xd1, 0xde, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x03, 0x2e, 0x4c, 0x2e, 0xec, 0x4c, 0x2e, 0x0c, 0x0e, 0x6d, 0x83, 0xd0, 0x2f, 0xd9, 0x20, 0xa4, 0x4c, 0xd6, 0xf0, 0xef, 0xfc, 0x02, 0x3e, 0x5c, 0xda, 0x58, 0x58, 0xad, 0x80, 0x4f, 0x97, 0xb6, 0x96, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x70, 0x64, 0x08, 0x3d, 0x58, 0xd1, 0x15, 0xde, 0x00, 0x1e, 0x74, 0x65, 0x73, 0x74, 0x20, 0x63, 0x61, 0x73, 0x65, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0x2b, 0xba, 0xc2, 0x37, 0x08, 0xda, 0x9f, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x9a, 0x4b, 0x6b, 0x83, 0x63, 0x2b, 0x03, 0xb9, 0x4b, 0x73, 0x3b, 0xdb, 0xf0, 0xb9, 0xd2, 0x06, 0x01, 0x1b, 0xb4, 0xc1, 0xa2, 0x4d, 0xe8, 0x83, 0xe5, 0x20, 0xcf, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0xe3, 0x16, 0xd6, 0x56, 0x46, 0x06, 0x72, 0x97, 0xe6, 0x76, 0xb6, 0xe1, 0x73, 0xa5, 0x0d, 0xc2, 0x08, 0x68, 0x83, 0x45, 0x9b, 0xd0, 0x07, 0xcb, 0xcb, 0x9c, 0x9b, 0x35, 0x58, 0x5d, 0x3c, 0xbd, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xb0, 0xba, 0x78, 0x7a, 0x83, 0xd0, 0x2f, 0xd9, 0x20, 0xa4, 0x4c, 0x36, 0x58, 0xf1, 0x3f, 0xdd, 0xe1, 0x14, 0x6b, 0x0d, 0x96, 0xc6, 0x3b, 0x6f, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0x2c, 0x8d, 0x77, 0xde, 0x60, 0xe9, 0x72, 0xd5, 0x1a, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xfc, 0x61, 0x75, 0x74, 0x6f, 0x63, 0x6f, 0x6e, 0x73, 0x1b, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x83, 0xc3, 0x07, 0x6b, 0xdf, 0x9d, 0x0f, 0x96, 0xb3, 0x3b, 0x6f, 0x10, 0xb4, 0x3f, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x6c, 0xb0, 0x04, 0x98, 0xb8, 0x83, 0x04, 0x09, 0xe1, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x0e, 0xce, 0x7d, 0x06, 0x1b, 0x3e, 0x57, 0xda, 0x20, 0x88, 0x4d, 0x0f, 0x16, 0xf1, 0x86, 0xaf, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xc7, 0x58, 0x19, 0x1b, 0x1b, 0x08, 0x5d, 0xd9, 0x1c, 0xdd, 0x86, 0xcf, 0x95, 0x36, 0x08, 0x99, 0xd3, 0x0d, 0x96, 0xf1, 0x86, 0xb7, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x1e, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x1b, 0x3e, 0x57, 0xda, 0x60, 0x0d, 0x1a, 0xde, 0xc1, 0x82, 0xf2, 0xf0, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x2c, 0x8b, 0xab, 0x0b, 0x63, 0x4b, 0xa3, 0xcb, 0x03, 0xa1, 0x2b, 0x9b, 0xa3, 0xdb, 0xf0, 0xb9, 0xd2, 0x06, 0xab, 0xf0, 0x8a, 0x0f, 0x16, 0xf1, 0x86, 0xaf, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x6f, 0x9a, 0x19, 0x0b, 0x08, 0x1d, 0x5a, 0x99, 0x1b, 0x0b, 0x48, 0x19, 0xdb, 0x5c, 0xd9, 0x86, 0xcf, 0x95, 0x36, 0x58, 0xd6, 0x5b, 0xbc, 0xc1, 0x32, 0xde, 0xf0, 0x0d, 0x16, 0xb4, 0x3b, 0xaf, 0xe1, 0xcf, 0xa5, 0xc1, 0xe5, 0x83, 0xb5, 0xef, 0xce, 0xad, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xef, 0x5c, 0x99, 0x5c, 0x5a, 0x18, 0x1b, 0xc8, 0xd8, 0x5b, 0x1b, 0xdc, 0xdb, 0x5c, 0xd9, 0x86, 0xcf, 0x95, 0x36, 0x58, 0x46, 0x61, 0x7c, 0xb0, 0x88, 0x37, 0x7c, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x78, 0x80, 0xab, 0x9b, 0x43, 0x03, 0x79, 0x73, 0xa3, 0x7b, 0x03, 0x99, 0xab, 0x13, 0x53, 0x2b, 0x1b, 0xa3, 0xdb, 0xf0, 0xb9, 0xd2, 0x06, 0x4b, 0x78, 0x8c, 0x0f, 0x16, 0xf1, 0x86, 0xaf, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x2f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x61, 0x72, 0x6d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x69, 0x72, 0x65, 0x1b, 0x3e, 0x57, 0xda, 0x60, 0xe9, 0x9a, 0xf1, 0x86, 0x47, 0xe8, 0x0e, 0x96, 0xb3, 0x3b, 0xaf, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x73, 0xb0, 0x06, 0xe4, 0x78, 0xc3, 0xe7, 0x4a, 0x1b, 0xac, 0xbf, 0x35, 0x5e, 0xc3, 0x9f, 0x4b, 0x83, 0xc3, 0x1b, 0x3e, 0x57, 0x3a, 0x58, 0x7f, 0x25, 0x7e, 0xb0, 0x9c, 0xdd, 0x79, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x0d, 0xc5, 0xb4, 0x0d, 0x9f, 0x2b, 0x6d, 0xb0, 0x4a, 0xe8, 0x78, 0x0d, 0x7f, 0x2e, 0x0d, 0x0e, 0x6f, 0xf8, 0x60, 0x7e, 0xc3, 0x0f, 0x35, 0x07, 0x2b, 0xd0, 0xc4, 0x0f, 0x96, 0xb3, 0x3b, 0xaf, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x1f, 0x67, 0x72, 0x61, 0x62, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x73, 0x6b, 0x79, 0x1b, 0x3e, 0x57, 0xda, 0x60, 0x6d, 0xfc, 0xf1, 0xc1, 0x22, 0xde, 0xf0, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x0a, 0xc3, 0x4b, 0x9b, 0x03, 0x99, 0x2b, 0x63, 0x2b, 0x1b, 0xa3, 0xdb, 0xf0, 0xb9, 0xd2, 0x06, 0x21, 0x9d, 0xba, 0xe1, 0x11, 0xba, 0x5a, 0x01, 0x9f, 0xec, 0x6d, 0x6e, 0xde, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x58, 0x52, 0x2a, 0xbe, 0xe1, 0x73, 0xa5, 0x0d, 0x16, 0xea, 0x76, 0xaf, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x0f, 0x5a, 0x1a, 0x1d, 0x08, 0xdc, 0x5b, 0x9a, 0x1b, 0xdd, 0xdc, 0x86, 0x3f, 0x97, 0x36, 0x58, 0xde, 0x1b, 0xba, 0x41, 0xe8, 0x97, 0x6c, 0x50, 0x22, 0xd6, 0x6f, 0xb0, 0x5e, 0xeb, 0xf9, 0xe0, 0x74, 0x48, 0xb8, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x3e, 0x63, 0x75, 0x74, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x1b, 0xfe, 0x5c, 0xda, 0x60, 0x8c, 0x53, 0x6c, 0x10, 0xfa, 0x25, 0x1b, 0x94, 0x88, 0xf5, 0x1b, 0x9c, 0x91, 0x50, 0xd7, 0xf0, 0xef, 0xfc, 0x1a, 0x2c, 0x84, 0xed, 0xae, 0x3a, 0x9c, 0x62, 0x6b, 0x10, 0xb8, 0x0f, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0x81, 0xfb, 0xb0, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xaf, 0x5b, 0x1d, 0x1b, 0x1b, 0x0b, 0x88, 0x5b, 0x1a, 0x1b, 0x0b, 0x48, 0x19, 0xdd, 0xd8, 0x41, 0x08, 0x3e, 0xac, 0x86, 0xe7, 0x49, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x38, 0x32, 0x84, 0x1e, 0x9e, 0x27, 0x69, 0x00, 0x6f, 0xba, 0x3c, 0xb8, 0x32, 0x90, 0x30, 0x37, 0xb7, 0x37, 0xba, 0x30, 0xba, 0xb4, 0x37, 0xb7, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0xc3, 0xf3, 0x24, 0x1b, 0x04, 0xed, 0xcf, 0x1a, 0x9e, 0x78, 0xdf, 0x60, 0xe1, 0x5b, 0xf7, 0xc1, 0x32, 0x49, 0xef, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x3e, 0x63, 0x7b, 0x13, 0x0b, 0x63, 0x03, 0x99, 0xa3, 0x0b, 0x73, 0x23, 0x0b, 0x93, 0x23, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x58, 0x25, 0x82, 0xb5, 0xc1, 0x32, 0x29, 0xf0, 0xd6, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x63, 0x8e, 0x4e, 0xae, 0x6e, 0x8c, 0xae, 0x4e, 0xae, 0x6c, 0xc3, 0xe7, 0x4a, 0x1b, 0x2c, 0x8d, 0xf7, 0xde, 0x60, 0x61, 0xdc, 0xf3, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0xde, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0x9b, 0x30, 0x37, 0x58, 0x3d, 0x82, 0x5d, 0xad, 0x06, 0x0b, 0x03, 0x91, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x38, 0x32, 0x84, 0x1e, 0x2c, 0x0c, 0x44, 0x6a, 0x80, 0x77, 0xec, 0xad, 0x0d, 0x8e, 0xad, 0x0c, 0x6f, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0x60, 0x61, 0x20, 0xd2, 0x06, 0xa1, 0x86, 0xb8, 0xc1, 0x59, 0x56, 0x6a, 0xc3, 0xe7, 0x4a, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xf0, 0x86, 0xb1, 0xa5, 0x85, 0xcd, 0x95, 0xcd, 0x6d, 0xf8, 0x73, 0x69, 0x70, 0x78, 0x83, 0xd0, 0x2f, 0xd9, 0xa0, 0x44, 0xac, 0xdf, 0x60, 0xbd, 0xd6, 0xf3, 0xc1, 0xf2, 0x08, 0xe7, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0x78, 0xc5, 0xe4, 0xd2, 0xc8, 0xce, 0xca, 0xe6, 0x0e, 0x16, 0xa3, 0x47, 0x37, 0x6b, 0xb0, 0x60, 0xe8, 0x79, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0x60, 0xc1, 0xd0, 0xf3, 0x86, 0x27, 0xde, 0x37, 0x58, 0x32, 0xa6, 0xbd, 0xe1, 0x83, 0xf9, 0x0d, 0x3f, 0xd4, 0x1c, 0xac, 0x7e, 0xd3, 0x3e, 0x9c, 0x62, 0x6b, 0xb0, 0x32, 0xc6, 0x7b, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0x60, 0x65, 0x8c, 0xf7, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xff, 0x1b, 0x1b, 0x19, 0x08, 0x5d, 0x1e, 0x5c, 0xd9, 0xc1, 0xb2, 0x19, 0xe7, 0xc3, 0x29, 0xd6, 0x02, 0xbe, 0xd9, 0xdb, 0x1b, 0xbd, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xb0, 0xf6, 0x73, 0x7c, 0x83, 0xa0, 0xfd, 0x59, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x3e, 0xc8, 0xe4, 0xf2, 0x40, 0xc2, 0xe4, 0xda, 0x58, 0x40, 0xce, 0xca, 0xde, 0xda, 0xca, 0xe8, 0xe4, 0xd2, 0xc6, 0x36, 0x7c, 0xae, 0xb4, 0xc1, 0x2a, 0xf1, 0xed, 0x83, 0xb5, 0x89, 0xcf, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x7f, 0x57, 0x46, 0x07, 0x12, 0x26, 0xd7, 0xc6, 0x02, 0x72, 0x56, 0xe6, 0x56, 0x26, 0x97, 0x36, 0xb6, 0xe1, 0x73, 0xa5, 0x0d, 0xd6, 0x73, 0x6f, 0x1f, 0xac, 0x4d, 0x7c, 0x6e, 0xd6, 0x60, 0x6d, 0x56, 0xf8, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0xda, 0xac, 0xf0, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xbc, 0x4d, 0x40, 0xe0, 0xe4, 0xde, 0xe6, 0xca, 0x58, 0x40, 0xf8, 0x40, 0xc6, 0xde, 0xc8, 0xca, 0x36, 0x08, 0xfd, 0x92, 0x0d, 0x4a, 0x6f, 0xfa, 0x0d, 0x1f, 0xac, 0x1e, 0x9c, 0x35, 0x48, 0x57, 0x83, 0x15, 0x70, 0xd0, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0x2b, 0xe0, 0xa0, 0x37, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x09, 0x63, 0x4b, 0x0b, 0x9b, 0x03, 0x61, 0x4b, 0x9b, 0xa3, 0xdb, 0x20, 0xf4, 0x4b, 0x36, 0x08, 0x29, 0x93, 0x35, 0x08, 0xfd, 0x92, 0x0d, 0x4a, 0x6f, 0xfa, 0x83, 0x95, 0xaa, 0xdd, 0xad, 0x80, 0x6f, 0x97, 0x36, 0x57, 0x6e, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xac, 0x40, 0x20, 0xdf, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xe0, 0x7f, 0x63, 0x23, 0x03, 0xb1, 0x0b, 0x9b, 0x2b, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x1c, 0x3e, 0x58, 0xfa, 0xe2, 0x7d, 0x70, 0x90, 0xc3, 0x98, 0x05, 0xfc, 0x37, 0xb7, 0x3c, 0x7c, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0x60, 0x71, 0x08, 0xf9, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xbe, 0x61, 0x72, 0x6d, 0x20, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1b, 0x84, 0x7e, 0xc9, 0x06, 0x21, 0x65, 0xb2, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0xe9, 0x4d, 0xbf, 0xc1, 0xb2, 0x19, 0xe7, 0x35, 0xfc, 0x3b, 0xbf, 0x06, 0x6b, 0x3f, 0xc7, 0xab, 0x56, 0x83, 0x05, 0xcb, 0xdd, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x1c, 0x19, 0x42, 0x0f, 0x16, 0x2c, 0x77, 0x37, 0x80, 0xe7, 0x5c, 0x58, 0x1b, 0x1c, 0x5b, 0x19, 0x48, 0x5b, 0x19, 0x9d, 0x5c, 0xda, 0xd8, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x82, 0xe5, 0xee, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xdf, 0x5c, 0x58, 0x1b, 0x1c, 0x5b, 0xd9, 0x1c, 0x48, 0x9a, 0x1b, 0xc8, 0xd0, 0x86, 0x3f, 0x97, 0x36, 0x18, 0xab, 0x02, 0x07, 0x65, 0x96, 0xee, 0x1a, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0xcf, 0x85, 0xb5, 0xc1, 0xb1, 0x95, 0xcd, 0x81, 0xa4, 0xb9, 0x81, 0xb8, 0xbd, 0x8d, 0xad, 0x6d, 0xf8, 0x73, 0x69, 0xc0, 0x73, 0x7b, 0x1b, 0x0f, 0xca, 0x2c, 0xdd, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x9e, 0x0b, 0x6b, 0x83, 0x63, 0x2b, 0x9b, 0x03, 0x49, 0x73, 0x03, 0x39, 0x63, 0xab, 0x2b, 0xdb, 0xf0, 0xe7, 0xd2, 0x80, 0x77, 0xc6, 0x56, 0x1f, 0x94, 0x59, 0xba, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x3f, 0x17, 0xd6, 0x06, 0xc7, 0x56, 0x36, 0x07, 0x92, 0xe6, 0x06, 0x12, 0xc6, 0xc6, 0xf6, 0x36, 0xb6, 0xe1, 0xcf, 0xa5, 0x01, 0xaf, 0x2d, 0x8c, 0x3d, 0x28, 0xb3, 0x74, 0xd7, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x7b, 0x2e, 0xac, 0x0d, 0x8e, 0xad, 0x6c, 0x0e, 0x24, 0xcd, 0x0d, 0xc4, 0x4c, 0x2e, 0xec, 0x6c, 0xc3, 0x9f, 0x4b, 0x03, 0x9e, 0x59, 0x98, 0x7c, 0x50, 0x66, 0xe9, 0xae, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xf7, 0x5c, 0x58, 0x1b, 0x1c, 0x5b, 0xd9, 0x1c, 0x48, 0x9a, 0x1b, 0xc8, 0xd8, 0x1b, 0x5c, 0xde, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0xb1, 0xb7, 0xfc, 0xa0, 0xcc, 0xd2, 0x5d, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xff, 0xb9, 0xb0, 0x36, 0x38, 0xb6, 0xb2, 0x39, 0x90, 0x34, 0x37, 0x90, 0xb2, 0xb8, 0xba, 0x30, 0xb6, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x65, 0x75, 0xf1, 0x41, 0x99, 0xa5, 0xdb, 0x0a, 0xf8, 0x77, 0x68, 0x69, 0xf4, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0x47, 0x86, 0xd0, 0x83, 0x55, 0xdb, 0xe4, 0x0d, 0xc0, 0x03, 0x9c, 0x5c, 0x99, 0x59, 0x1a, 0x1e, 0x08, 0xd9, 0xdb, 0xd8, 0x1c, 0x08, 0x5c, 0x98, 0xdc, 0x5c, 0xd9, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0xaa, 0x6d, 0xf2, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xa7, 0x58, 0x18, 0xdd, 0x18, 0x1a, 0xc8, 0xd8, 0x5b, 0x5b, 0x5b, 0x99, 0x1b, 0xdd, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb1, 0x30, 0x7a, 0x83, 0xd0, 0x2f, 0xd9, 0xa0, 0x44, 0xac, 0xdf, 0x60, 0xa1, 0x5f, 0xf7, 0x1a, 0x84, 0x7e, 0xc9, 0x06, 0xa5, 0x37, 0xfd, 0x06, 0x27, 0x20, 0xd1, 0x0d, 0xd6, 0x75, 0x68, 0x57, 0x87, 0x53, 0xac, 0xd6, 0x60, 0xe1, 0x1a, 0xf6, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0x47, 0x86, 0xd0, 0x83, 0x85, 0x6b, 0xd8, 0x0d, 0xe0, 0xcd, 0x56, 0x86, 0x97, 0x36, 0x16, 0xc6, 0x06, 0x32, 0x57, 0x76, 0xd6, 0x56, 0xe6, 0x46, 0xb7, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xb0, 0x70, 0x0d, 0x7b, 0x83, 0xa0, 0xfd, 0x59, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x80, 0x9f, 0x6f, 0x0c, 0x2d, 0x0c, 0x8e, 0xae, 0x4c, 0x6e, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0x60, 0x3d, 0x5b, 0xd6, 0xc1, 0xb2, 0xb8, 0xe7, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x28, 0x19, 0x7b, 0x73, 0x9b, 0xa3, 0x0b, 0x73, 0xa3, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x58, 0xd1, 0x97, 0xb5, 0xc1, 0xe2, 0x99, 0xe6, 0x35, 0xfc, 0xb9, 0x34, 0x78, 0xbc, 0xe1, 0xdf, 0xf9, 0x0d, 0xff, 0xd6, 0xd4, 0x1a, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0x3c, 0x2e, 0x66, 0x61, 0x63, 0x65, 0x1b, 0x3e, 0x57, 0x5a, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x0b, 0x2f, 0xb3, 0x0e, 0x96, 0xc5, 0x3d, 0xaf, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0xe0, 0xaf, 0x84, 0xc9, 0xb5, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x94, 0x9a, 0x96, 0x07, 0xcb, 0xe2, 0x9e, 0xd7, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xe0, 0x21, 0x99, 0x83, 0x2b, 0x1b, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x38, 0x32, 0x84, 0x1e, 0x2c, 0x8b, 0x7b, 0xee, 0x70, 0x8a, 0xad, 0xc1, 0xe2, 0x44, 0xec, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0xc5, 0x89, 0xd8, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0xa7, 0xb9, 0xbd, 0x8c, 0xbd, 0xb9, 0xd1, 0xc9, 0x85, 0xbd, 0x88, 0xa5, 0xbd, 0x8c, 0xbd, 0x6d, 0x10, 0x6c, 0xa6, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0x70, 0x4a, 0xac, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x25, 0xd6, 0x59, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xe0, 0xb0, 0x7f, 0xb6, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x96, 0x64, 0x40, 0xb5, 0x1a, 0xac, 0x1d, 0xed, 0xde, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x58, 0x3b, 0xda, 0xbd, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x2f, 0x68, 0x65, 0x6c, 0x70, 0x20, 0x73, 0x6c, 0x6f, 0x67, 0x61, 0x6e, 0x2f, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1b, 0x84, 0x7e, 0xc9, 0x06, 0x65, 0x13, 0xe6, 0xc1, 0xfa, 0x85, 0xf2, 0x15, 0xf0, 0xe1, 0xde, 0xe4, 0xe8, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0x65, 0xd3, 0xe5, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xf8, 0xcf, 0xd5, 0x8d, 0x8d, 0x95, 0xcd, 0xcd, 0x99, 0xd5, 0xb1, 0x81, 0xb4, 0x85, 0xd1, 0x8d, 0xa1, 0x6d, 0x10, 0xfa, 0x25, 0x1b, 0xac, 0x82, 0x4c, 0x5e, 0xc3, 0xbf, 0xf3, 0x6b, 0xb0, 0xca, 0xa9, 0xb9, 0xd6, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0xbd, 0xe9, 0x37, 0x58, 0x36, 0xe3, 0x7c, 0xb0, 0xc4, 0x26, 0xbb, 0xd5, 0x60, 0xa9, 0x5b, 0xf3, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0x47, 0x86, 0xd0, 0x83, 0xa5, 0x6e, 0xcd, 0x0d, 0xe0, 0xc3, 0x96, 0xd6, 0x26, 0x06, 0xd2, 0x16, 0x46, 0x37, 0x86, 0xb6, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xb0, 0xd4, 0xad, 0x79, 0x83, 0xa0, 0xfd, 0x59, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0xc0, 0x63, 0x2b, 0x3b, 0xdb, 0xf0, 0xb9, 0xd2, 0x06, 0x01, 0x1b, 0xb4, 0xc1, 0x5a, 0x18, 0xe7, 0xd6, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x39, 0x58, 0x2f, 0x6a, 0xbc, 0xe1, 0x73, 0xa5, 0x0d, 0xc2, 0x08, 0x68, 0x83, 0x75, 0x7a, 0xce, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0x78, 0x83, 0xd0, 0x2f, 0xd9, 0xa0, 0x44, 0x7c, 0x5f, 0xc3, 0xe7, 0x4a, 0x1b, 0xac, 0x85, 0x71, 0x5e, 0xc3, 0x9f, 0x4b, 0x83, 0xc7, 0x07, 0x4b, 0x7f, 0xc8, 0xab, 0x66, 0x01, 0x9f, 0xae, 0xcc, 0x8d, 0xde, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xe0, 0xc8, 0x10, 0x7a, 0xb0, 0x14, 0xc7, 0xbc, 0x01, 0x3c, 0xdb, 0xde, 0xc8, 0xca, 0xd8, 0x40, 0xc4, 0xea, 0xd2, 0xd8, 0xc8, 0xca, 0xe4, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x96, 0xe2, 0x98, 0x6f, 0x10, 0xb4, 0x3f, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xa0, 0xe5, 0x87, 0x02, 0x07, 0x12, 0x07, 0x22, 0xe7, 0xe2, 0xe2, 0x92, 0xda, 0xf0, 0xb9, 0xd2, 0x06, 0x61, 0x04, 0xb4, 0xc1, 0x1a, 0x00, 0xe8, 0x35, 0xfc, 0xb9, 0x34, 0x78, 0xbc, 0xe1, 0xdf, 0xf9, 0x35, 0x58, 0x8a, 0x63, 0x5e, 0x6b, 0xf8, 0x73, 0x69, 0x70, 0xf9, 0x60, 0xb9, 0xc7, 0x77, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xf0, 0x86, 0xb9, 0x88, 0xe9, 0x8c, 0xb9, 0x90, 0x6d, 0xf8, 0x5c, 0x69, 0x83, 0x80, 0x0d, 0xda, 0x60, 0x49, 0x08, 0x76, 0x1d, 0x4e, 0xb1, 0x5a, 0x83, 0xf5, 0x35, 0xd3, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x1c, 0x19, 0x42, 0x0f, 0xd6, 0xd7, 0x4c, 0x37, 0xc0, 0x4b, 0x57, 0x86, 0x47, 0x57, 0x27, 0x57, 0xb6, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xb0, 0xbe, 0x66, 0x7a, 0xc3, 0x07, 0xf3, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0x87, 0x5b, 0x58, 0x5b, 0xd9, 0x8b, 0xdf, 0x16, 0x5d, 0x99, 0x5c, 0x1b, 0x48, 0x89, 0xdb, 0x9b, 0x5b, 0x59, 0xd7, 0x86, 0x3f, 0x97, 0x36, 0x38, 0x01, 0xa5, 0x1e, 0xac, 0xd7, 0x7a, 0xde, 0x20, 0x68, 0x7f, 0xd6, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x47, 0x2c, 0x6c, 0xae, 0x0c, 0xa4, 0x2d, 0x8c, 0x6e, 0x0c, 0x6d, 0xc3, 0xe7, 0x4a, 0x1b, 0xac, 0x62, 0x74, 0x5e, 0xc3, 0x9f, 0x4b, 0x1b, 0xbe, 0xa8, 0x39, 0x58, 0x3e, 0xe9, 0xdc, 0x1a, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x07, 0x05, 0x3b, 0xfd, 0x86, 0xcf, 0x95, 0x36, 0x58, 0xbf, 0xcf, 0xbc, 0x86, 0x3f, 0x97, 0x36, 0x58, 0x5f, 0x33, 0x7d, 0xb0, 0x80, 0x66, 0x7a, 0x83, 0xf5, 0xc5, 0xe6, 0xad, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x73, 0xb0, 0x40, 0x88, 0x78, 0xc3, 0xe7, 0x4a, 0x1b, 0x2c, 0xd1, 0x75, 0x5e, 0xc3, 0x9f, 0x4b, 0x1b, 0x24, 0xe2, 0x03, 0x1f, 0x2c, 0x7d, 0x0f, 0x3e, 0x58, 0xbe, 0x6c, 0xbe, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xde, 0x61, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x1b, 0x3e, 0x57, 0xda, 0xe0, 0x2c, 0x26, 0xba, 0x86, 0x3f, 0x97, 0x36, 0x58, 0x86, 0xd3, 0x7c, 0xb0, 0xce, 0xa6, 0x79, 0x0d, 0x7f, 0x2e, 0x6d, 0xa8, 0xe3, 0x07, 0xab, 0xae, 0xca, 0x5b, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x80, 0x9f, 0xac, 0x6c, 0x6e, 0x4c, 0x2e, 0x4d, 0xac, 0x6c, 0xc3, 0xe7, 0x4a, 0x1b, 0xac, 0xa1, 0xf4, 0x5e, 0xc3, 0x9f, 0x4b, 0x1b, 0xee, 0xb4, 0x83, 0x85, 0x9b, 0xde, 0x07, 0xcb, 0x97, 0xcd, 0xd7, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x2b, 0x0c, 0x0e, 0x8e, 0x2d, 0x0f, 0x84, 0x2d, 0x4c, 0xac, 0x8c, 0x6d, 0xc3, 0xe7, 0x4a, 0x1b, 0x2c, 0x97, 0xf9, 0xde, 0x60, 0x5d, 0xa8, 0xf9, 0xc1, 0xf2, 0x65, 0xf3, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x92, 0x2b, 0x63, 0x0b, 0xa3, 0x4b, 0xb3, 0x2b, 0x03, 0xa1, 0x7b, 0xdb, 0xf0, 0xb9, 0xd2, 0x06, 0x2b, 0x98, 0xbe, 0xd7, 0xf0, 0xe7, 0xd2, 0x86, 0xb7, 0x75, 0x0e, 0xd6, 0x8e, 0x3c, 0x1f, 0x2c, 0x5f, 0x36, 0x5f, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x80, 0x77, 0x2c, 0x6c, 0x8e, 0x0e, 0x84, 0xee, 0x6d, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xa0, 0x84, 0x8e, 0x5d, 0xc3, 0x9f, 0x4b, 0x1b, 0x94, 0xd0, 0xb1, 0x07, 0x0b, 0xac, 0xa0, 0x0f, 0x96, 0x2f, 0x9b, 0xaf, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xd7, 0x1c, 0x9d, 0x5c, 0x1a, 0x1c, 0x88, 0x59, 0xd8, 0x58, 0xd9, 0xdc, 0x86, 0xcf, 0x95, 0xd6, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0xea, 0x6f, 0xad, 0x35, 0xfc, 0xb9, 0x34, 0xc0, 0x43, 0x56, 0x06, 0x47, 0x87, 0x1e, 0x94, 0x59, 0xba, 0x35, 0x0b, 0xf8, 0x77, 0x68, 0x69, 0xfa, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0xaa, 0xb3, 0xf3, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x78, 0x80, 0x7b, 0x9b, 0xa3, 0x33, 0x4b, 0xc3, 0x03, 0x21, 0x7b, 0x1b, 0x03, 0x81, 0x0b, 0x93, 0x9b, 0x2b, 0x3b, 0x38, 0x01, 0x89, 0x1e, 0x4e, 0xb1, 0x59, 0x00, 0x7e, 0xcc, 0xde, 0xe4, 0xda, 0xc2, 0xe8, 0xe8, 0xd2, 0xdc, 0xce, 0x5a, 0xcc, 0xea, 0xdc, 0xc6, 0xe8, 0xd2, 0xde, 0xdc, 0xe6, 0x65, 0x00, 0xfe, 0x68, 0xda, 0x74, 0x40, 0xcc, 0xde, 0xe4, 0xda, 0xc2, 0xe8, 0xe8, 0xd2, 0xdc, 0xce, 0x40, 0xcc, 0xea, 0xdc, 0xc6, 0xe8, 0xd2, 0xde, 0xdc, 0xe6, 0xd6, 0x60, 0x55, 0xc3, 0xd6, 0x86, 0xc7, 0x47, 0x36, 0x58, 0xd5, 0xb0, 0xb5, 0xe1, 0x17, 0xa5, 0x0d, 0x16, 0xc5, 0xc0, 0x6e, 0x50, 0x96, 0xbc, 0x6f, 0xb0, 0x62, 0x4d, 0x6f, 0x0d, 0x6f, 0xeb, 0x1c, 0x2c, 0x36, 0xc6, 0xdb, 0x20, 0x29, 0x2d, 0x78, 0x0d, 0x6f, 0xeb, 0x1c, 0x2c, 0x4d, 0x82, 0x6d, 0x05, 0xfc, 0x39, 0xb6, 0xb0, 0x7c, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0xa3, 0xc3, 0xa3, 0x0f, 0x8e, 0xda, 0xa0, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0xd0, 0x2f, 0xd9, 0xa0, 0x6c, 0xc2, 0x3c, 0x48, 0x3d, 0x0e, 0xde, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0xd9, 0x60, 0x59, 0xd0, 0xe8, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x1b, 0x0b, 0x0b, 0x04, 0x04, 0xae, 0x8c, 0x8e, 0x2e, 0x0f, 0x64, 0x2c, 0x6c, 0x0c, 0xad, 0x6c, 0xc3, 0xbb, 0x3d, 0x1b, 0xbe, 0x51, 0x5c, 0xc3, 0x8f, 0x30, 0x03, 0x5f, 0x87, 0x1f, 0x2c, 0xf5, 0xd8, 0x5a, 0xc3, 0xdb, 0x3a, 0x1b, 0x2c, 0xc0, 0x3d, 0xaf, 0x35, 0x58, 0x0e, 0xc9, 0x34, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0x2c, 0x8d, 0x5d, 0xc3, 0x83, 0x92, 0x1b, 0xac, 0x68, 0x80, 0xdd, 0xf0, 0xb6, 0xce, 0xc0, 0xcf, 0xbd, 0xb5, 0x86, 0x5f, 0x5c, 0x36, 0x28, 0x85, 0xc8, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xcb, 0xb0, 0xdf, 0x0e, 0x16, 0x81, 0x9f, 0xd7, 0xc1, 0x8a, 0xf3, 0xf3, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x96, 0xba, 0x8d, 0x6e, 0x50, 0x50, 0x64, 0x6e, 0xf8, 0xc5, 0x65, 0x83, 0x82, 0x22, 0xf3, 0x60, 0xdd, 0xcc, 0xed, 0xac, 0xc1, 0xfa, 0xa7, 0xad, 0x0d, 0x8f, 0x8f, 0x6c, 0xb0, 0xfe, 0x69, 0x6b, 0xc3, 0x2f, 0x4a, 0x1b, 0x2c, 0x8a, 0x81, 0xdd, 0xa0, 0x2c, 0x79, 0xdf, 0x60, 0x0d, 0x45, 0xde, 0xc1, 0xb2, 0xd3, 0xf3, 0x15, 0xf0, 0xe7, 0xe8, 0xc2, 0xc4, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0xf8, 0x80, 0x0b, 0x93, 0x9b, 0x2b, 0x03, 0x19, 0x7b, 0x93, 0x23, 0x03, 0xa1, 0x7b, 0x03, 0x81, 0x0b, 0xa3, 0x43, 0xdb, 0xf0, 0x8b, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xf4, 0xca, 0xe0, 0x83, 0xf3, 0xec, 0xe8, 0x86, 0xbf, 0x68, 0x36, 0x38, 0x23, 0xa1, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0xee, 0x42, 0xb6, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0xb2, 0x18, 0xf4, 0xd6, 0xf0, 0xb6, 0xce, 0x80, 0x3f, 0x47, 0x17, 0x06, 0xd7, 0xe1, 0x14, 0x5b, 0x83, 0xd5, 0x82, 0x5c, 0x1b, 0x1e, 0x1f, 0xd9, 0x60, 0xb5, 0x20, 0xd7, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0xda, 0xd0, 0xfc, 0xe0, 0xe0, 0xbc, 0x79, 0xba, 0xc1, 0x1a, 0xdb, 0xf3, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0xa1, 0x5d, 0x66, 0x83, 0x93, 0x83, 0xdc, 0x06, 0xc1, 0x7a, 0xbb, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x06, 0xa3, 0xa4, 0x6f, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xc5, 0xb1, 0xe7, 0x1d, 0x2c, 0x02, 0x3f, 0xdf, 0xa0, 0xd8, 0xd1, 0x5c, 0xc3, 0x23, 0xac, 0x6b, 0x50, 0x4c, 0x62, 0xae, 0xe1, 0x73, 0xa5, 0x0d, 0x42, 0xf0, 0x61, 0x83, 0x94, 0xc1, 0xe0, 0x83, 0x84, 0x06, 0xcc, 0x83, 0x32, 0xb4, 0x7b, 0x0d, 0xff, 0xe6, 0xac, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0xc1, 0xe1, 0xc1, 0xeb, 0x83, 0x32, 0xb4, 0xfb, 0x20, 0xec, 0x6e, 0xdb, 0xa0, 0xa0, 0xc8, 0xdc, 0xf0, 0x8b, 0xcb, 0x06, 0x05, 0x45, 0xe6, 0x1a, 0xde, 0xd6, 0x19, 0x3c, 0x3e, 0x58, 0x40, 0x88, 0xde, 0x1a, 0x9c, 0xd2, 0x5a, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0x5a, 0x03, 0xd8, 0x0d, 0x96, 0x81, 0x9f, 0xaf, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x8e, 0x83, 0x6e, 0x90, 0x46, 0x7b, 0xb4, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x56, 0x09, 0xba, 0xc1, 0xd2, 0x29, 0xd7, 0x35, 0x3c, 0x28, 0xb9, 0xc1, 0xe2, 0x2d, 0xd7, 0x83, 0xc5, 0xf0, 0xe7, 0xd5, 0x1a, 0x9c, 0x39, 0x5d, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0x5a, 0x03, 0xd8, 0x0d, 0x96, 0x81, 0x9f, 0xaf, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x8e, 0x83, 0x6e, 0x90, 0x46, 0x7b, 0x74, 0xb0, 0xf0, 0xed, 0xb5, 0x35, 0x38, 0x71, 0xad, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0xb5, 0x06, 0xb0, 0x1b, 0x2c, 0x03, 0x3f, 0x3f, 0x58, 0xe8, 0xdf, 0xba, 0x06, 0xa7, 0xd5, 0xd5, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xd6, 0x00, 0x76, 0x83, 0x65, 0xe0, 0xe7, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x85, 0x0f, 0xa3, 0x6b, 0xf8, 0x11, 0x66, 0x70, 0x3a, 0x78, 0x18, 0xbc, 0x83, 0x25, 0xba, 0xad, 0xad, 0xc1, 0xb1, 0x79, 0x75, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x35, 0x80, 0xdd, 0x60, 0x19, 0xf8, 0xf9, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0xed, 0x38, 0xe8, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0xe1, 0xc3, 0xe8, 0x1a, 0x7e, 0x84, 0x19, 0x9c, 0x0e, 0x1e, 0xc6, 0xee, 0x60, 0x3d, 0x75, 0x6b, 0x6b, 0x70, 0xcc, 0x73, 0xdd, 0xf0, 0x6e, 0xcf, 0x06, 0x6b, 0x0d, 0x60, 0x37, 0x58, 0x06, 0x7e, 0xbe, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x3b, 0x0e, 0xba, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x51, 0x11, 0xba, 0x41, 0x1a, 0xed, 0xd1, 0xc1, 0x72, 0xf9, 0xd5, 0x83, 0x95, 0x84, 0xaf, 0xad, 0x86, 0x0c, 0xf8, 0xc1, 0x92, 0xed, 0xba, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xd6, 0x00, 0x76, 0x83, 0x65, 0xe0, 0xe7, 0x07, 0x0b, 0xeb, 0x59, 0x5b, 0x0d, 0xd6, 0x8e, 0x05, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xac, 0x1d, 0x0b, 0x6e, 0x00, 0x1e, 0xe0, 0xe4, 0xca, 0xe8, 0xe8, 0xf2, 0x40, 0xe0, 0xe4, 0xd2, 0xdc, 0xe8, 0x40, 0xe0, 0xc2, 0xe8, 0xd0, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb1, 0x37, 0xf7, 0xe0, 0x8c, 0x84, 0xba, 0xe1, 0x2f, 0x9a, 0x0d, 0xce, 0x04, 0xa3, 0x1b, 0x9c, 0xf3, 0x97, 0x36, 0x58, 0xd5, 0x20, 0xbc, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xab, 0xc3, 0xda, 0x0e, 0xca, 0x3a, 0xcf, 0x0d, 0x16, 0x0d, 0xa5, 0x1f, 0x94, 0x75, 0x9e, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x44, 0xaa, 0x5e, 0xc3, 0xdb, 0x3a, 0x1b, 0x2c, 0xaa, 0x49, 0x6f, 0x0d, 0xbf, 0x28, 0x6d, 0xf8, 0x72, 0x69, 0xc3, 0x2f, 0x2e, 0x1b, 0x9e, 0xb8, 0x3b, 0x58, 0x67, 0xfd, 0xd6, 0xe1, 0x14, 0x5b, 0xc0, 0x87, 0x0b, 0xb3, 0x2b, 0x37, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x36, 0x38, 0x98, 0x7e, 0x1e, 0x9c, 0x91, 0x50, 0x37, 0xfc, 0x45, 0xb3, 0x86, 0x7f, 0xe7, 0xd7, 0xe0, 0x78, 0x68, 0x5a, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x94, 0x48, 0xd5, 0x1b, 0xac, 0x86, 0x0a, 0xde, 0xf0, 0x8b, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0x3d, 0x38, 0x6a, 0x83, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x63, 0xec, 0xd8, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0xad, 0x01, 0xec, 0x06, 0x65, 0xf4, 0xf9, 0x1a, 0x1e, 0x94, 0xdc, 0x60, 0xe9, 0x7e, 0xf0, 0x86, 0xb7, 0x75, 0x06, 0xfc, 0x39, 0xba, 0x34, 0xb8, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x6b, 0xa9, 0xec, 0x0e, 0x4a, 0x33, 0xf4, 0x56, 0xc0, 0x87, 0x7b, 0xab, 0xa3, 0x37, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x36, 0x38, 0x1e, 0x9a, 0x1e, 0xac, 0x5b, 0x4b, 0xdf, 0xf0, 0x17, 0xcd, 0x06, 0x67, 0x24, 0xd4, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x4a, 0xa4, 0xea, 0x35, 0xbc, 0xad, 0x73, 0xb0, 0xa8, 0x2d, 0x7d, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0xf4, 0xe0, 0x9c, 0x6e, 0xba, 0x41, 0x41, 0x30, 0xbb, 0x41, 0xb1, 0x7b, 0xbe, 0x41, 0x19, 0x7d, 0xbe, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0xaa, 0x86, 0xad, 0x0e, 0x4a, 0x33, 0xf4, 0x59, 0xc0, 0x9f, 0x83, 0xab, 0x23, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0x45, 0xae, 0xcc, 0x8d, 0xac, 0x4c, 0x0e, 0x04, 0x2e, 0x8c, 0x0e, 0x0d, 0x84, 0xee, 0x0d, 0x84, 0x2e, 0x0c, 0xae, 0x6c, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x83, 0x0b, 0xc3, 0x0f, 0xce, 0x48, 0xa8, 0x1b, 0x94, 0x25, 0xef, 0x0b, 0x78, 0x72, 0x61, 0x6d, 0x6b, 0x78, 0x5b, 0x67, 0xe0, 0xe5, 0xca, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xcb, 0xc3, 0x82, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0x0b, 0xa8, 0xd3, 0xab, 0xc3, 0x29, 0xd6, 0x02, 0xfe, 0x1c, 0x5c, 0x18, 0xbd, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x2f, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x72, 0x64, 0x1b, 0x7e, 0x51, 0xda, 0x60, 0x8d, 0x74, 0xfa, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x8e, 0x2c, 0xbc, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x0b, 0x7f, 0xd3, 0x3b, 0x58, 0x42, 0x9e, 0xde, 0x6a, 0xb0, 0x78, 0x31, 0x7d, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x60, 0xf1, 0x62, 0x7a, 0x03, 0xf0, 0x40, 0x97, 0x07, 0x57, 0x46, 0x06, 0x02, 0x17, 0x46, 0x87, 0x06, 0x02, 0x17, 0x26, 0x37, 0x57, 0x26, 0xb7, 0xe1, 0x41, 0xc9, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xcf, 0xdd, 0xbd, 0xd1, 0x6d, 0x50, 0xb2, 0xb0, 0xcf, 0x32, 0x6b, 0xb0, 0x4e, 0x44, 0x7d, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x70, 0xf7, 0x20, 0xad, 0x1d, 0x78, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x1b, 0x2c, 0xb0, 0x33, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x6b, 0x25, 0xdd, 0x60, 0x81, 0x9d, 0xe9, 0xc1, 0xc2, 0xfd, 0xe0, 0x0e, 0xd2, 0xf0, 0x72, 0x57, 0x83, 0x44, 0x7c, 0xe0, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x96, 0xd8, 0xb1, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0xd6, 0x32, 0x05, 0xaf, 0xe1, 0x6d, 0x9d, 0x83, 0x43, 0xbc, 0x69, 0x1b, 0x9c, 0xd8, 0x6f, 0x36, 0x58, 0xd3, 0xcc, 0xba, 0xc1, 0xb1, 0xcd, 0x71, 0x83, 0x65, 0xd3, 0xac, 0x1b, 0x1c, 0xdb, 0x1c, 0x37, 0x58, 0xa2, 0xcd, 0xba, 0xc1, 0xd1, 0x75, 0x70, 0x0d, 0x0a, 0x43, 0xd5, 0x35, 0x58, 0xd7, 0x05, 0x77, 0xb0, 0xde, 0x0c, 0x6e, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x40, 0x5b, 0xdd, 0x60, 0x5d, 0x76, 0xdd, 0xc1, 0xc2, 0x7a, 0xd6, 0x35, 0x28, 0x0c, 0x55, 0x37, 0x58, 0x7b, 0x4e, 0xbb, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0xe0, 0x84, 0xae, 0xe1, 0x17, 0x97, 0x0d, 0xd6, 0x65, 0xd7, 0x6d, 0x90, 0x94, 0x16, 0xdc, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0x9d, 0x35, 0x6d, 0xad, 0x41, 0x61, 0xa8, 0xba, 0x06, 0x8b, 0xe0, 0xdd, 0x0e, 0x56, 0x1c, 0xc9, 0x6d, 0x78, 0x50, 0x72, 0x83, 0xe5, 0x05, 0xad, 0x07, 0x8b, 0xe1, 0xcf, 0xd7, 0xa0, 0x30, 0x54, 0xdd, 0x60, 0xcd, 0xc6, 0xdb, 0x86, 0x07, 0x25, 0x37, 0x58, 0x50, 0xd1, 0x7a, 0xb0, 0x18, 0xfe, 0x7c, 0x0d, 0x0a, 0x43, 0xd5, 0x0d, 0x16, 0xe1, 0xc9, 0x6d, 0x78, 0x50, 0x72, 0x83, 0x55, 0x6e, 0xab, 0x07, 0x8b, 0xe1, 0xcf, 0xd7, 0xa0, 0x30, 0x54, 0xdd, 0x60, 0xdd, 0x3a, 0xdc, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x3b, 0x0e, 0xba, 0x41, 0x1a, 0xed, 0xd1, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x3d, 0x30, 0xe8, 0x1a, 0x1e, 0x94, 0xdc, 0x60, 0x95, 0x29, 0xeb, 0xc1, 0x62, 0xf8, 0xf3, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x0a, 0x94, 0xd2, 0x0d, 0x4e, 0xc5, 0xaa, 0xd5, 0x1a, 0x14, 0x86, 0xaa, 0x1b, 0x2c, 0xaa, 0x80, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0x2b, 0xd0, 0x56, 0x37, 0x58, 0xbb, 0x5b, 0xb7, 0x86, 0xb7, 0x75, 0x36, 0x58, 0xf4, 0x47, 0x5a, 0x1d, 0x4e, 0xb1, 0x0e, 0xa7, 0xd8, 0x2c, 0xe0, 0xcf, 0xb1, 0x85, 0xd1, 0x1b, 0x7e, 0x51, 0xda, 0x60, 0xc5, 0x14, 0xfa, 0x86, 0x5f, 0x94, 0x36, 0x58, 0x63, 0x7b, 0xbe, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0x6a, 0x41, 0xae, 0x36, 0x08, 0xbb, 0xdb, 0x83, 0x45, 0xe0, 0xe7, 0xb3, 0x06, 0x2b, 0x8a, 0xd0, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x56, 0x14, 0xa1, 0x37, 0x80, 0x17, 0x5c, 0x18, 0x1d, 0x1a, 0x08, 0x5c, 0x98, 0xdc, 0x5c, 0x99, 0xdc, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x4b, 0xec, 0x58, 0xd7, 0xf0, 0x8b, 0xd2, 0x06, 0xa9, 0x22, 0xc1, 0x1b, 0xfe, 0xa2, 0xd9, 0x60, 0x49, 0x50, 0xf0, 0x86, 0x0f, 0x72, 0xd6, 0xa0, 0x98, 0xc4, 0x5c, 0xc3, 0xe7, 0x4a, 0x1b, 0x84, 0xe0, 0xc3, 0xc1, 0x71, 0xf1, 0xe4, 0xe0, 0xe0, 0x91, 0xb1, 0x06, 0xc7, 0x70, 0x83, 0x83, 0x82, 0x22, 0x73, 0x83, 0x62, 0x47, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x50, 0x50, 0x64, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0x50, 0xf0, 0x9d, 0x75, 0x90, 0x9e, 0x34, 0xb8, 0x06, 0xc7, 0x70, 0x83, 0x83, 0xd3, 0x45, 0xc6, 0x41, 0x41, 0x91, 0xb9, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x8e, 0x83, 0x6e, 0xb0, 0xc0, 0xce, 0x74, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x66, 0x36, 0x74, 0x83, 0x05, 0x76, 0xa6, 0x07, 0x2b, 0x09, 0x5f, 0x3b, 0x9c, 0x62, 0x0b, 0xf8, 0x73, 0x6c, 0x61, 0xf6, 0x86, 0x5f, 0x94, 0x36, 0x58, 0x14, 0x85, 0xbe, 0xe1, 0xdd, 0x9e, 0x0d, 0xce, 0x86, 0x2e, 0x1b, 0xac, 0xda, 0x56, 0xef, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x05, 0xf0, 0xa3, 0x0b, 0x73, 0x5b, 0x6b, 0x81, 0x93, 0x4b, 0x73, 0xa3, 0x2b, 0x93, 0x67, 0x0d, 0x56, 0x60, 0xc7, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xac, 0xc0, 0x8e, 0x6d, 0x00, 0x5d, 0x2c, 0x2c, 0x10, 0xb2, 0x32, 0x38, 0xb9, 0xb2, 0xb1, 0x30, 0xba, 0x32, 0xb2, 0xd0, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0x80, 0x67, 0x57, 0xd6, 0x1e, 0x84, 0xe9, 0xd8, 0x06, 0x07, 0x2c, 0xba, 0x35, 0xfc, 0x45, 0xb3, 0xc1, 0x99, 0x60, 0x74, 0xc3, 0x07, 0x39, 0x6b, 0x50, 0x4c, 0x62, 0x6e, 0xf8, 0xa1, 0x66, 0x83, 0x95, 0x61, 0xeb, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0x4f, 0xdc, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x56, 0x7a, 0xc0, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0x61, 0xbf, 0xad, 0xe1, 0x6d, 0x9d, 0x83, 0xe5, 0x70, 0xeb, 0xd5, 0x06, 0x41, 0x7a, 0xba, 0xc1, 0x72, 0xb8, 0xf5, 0xd5, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x7c, 0x3e, 0x08, 0xc1, 0x87, 0x83, 0x13, 0x99, 0xc5, 0x86, 0x5f, 0x5c, 0x36, 0x3c, 0x71, 0xb7, 0xc1, 0xa2, 0x0a, 0xb8, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x89, 0xa0, 0x6d, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xd2, 0x03, 0x6e, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x00, 0x3b, 0xbc, 0x86, 0x4b, 0x6a, 0x8d, 0xe7, 0x07, 0xcb, 0xe1, 0xd6, 0xab, 0x83, 0xa5, 0x24, 0x70, 0xad, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xf3, 0x41, 0xca, 0x16, 0xd3, 0x41, 0xf1, 0x17, 0xbb, 0xe1, 0x17, 0x97, 0x0d, 0x4f, 0xdc, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x56, 0x7a, 0xc0, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0x61, 0xbf, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xc7, 0x83, 0xe5, 0x70, 0xeb, 0xd5, 0x6a, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x3e, 0x1f, 0xac, 0x14, 0x47, 0x3c, 0x38, 0x91, 0x59, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x73, 0x68, 0x6f, 0x70, 0x1b, 0xac, 0xe2, 0x5d, 0x5f, 0xc3, 0x2f, 0x4a, 0x1b, 0xbe, 0x5c, 0xda, 0xa0, 0x2c, 0x79, 0xdf, 0xe0, 0x00, 0xc2, 0xb2, 0xc1, 0xfa, 0xad, 0xb6, 0xc3, 0x43, 0x3f, 0xad, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xf3, 0x86, 0xcf, 0x95, 0x36, 0x58, 0x3b, 0xb3, 0x77, 0xb0, 0x5a, 0x54, 0xfc, 0xe0, 0x44, 0x66, 0xb1, 0xc1, 0x39, 0x7f, 0x69, 0x0d, 0x6f, 0xdc, 0x1d, 0x1c, 0x32, 0x45, 0xd7, 0xf0, 0x8b, 0xcb, 0x1a, 0x7e, 0x71, 0xd9, 0x60, 0x11, 0x9e, 0xdc, 0x41, 0x59, 0xe7, 0xb9, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0xb3, 0xf1, 0x76, 0x50, 0xd6, 0x79, 0x1e, 0x94, 0x65, 0x9e, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0x2f, 0x2e, 0x1b, 0x9e, 0xb8, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0xf4, 0x80, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xc3, 0x7e, 0x5b, 0xc3, 0xdb, 0x3a, 0x83, 0xc3, 0x83, 0xcf, 0x07, 0xcb, 0xe1, 0xd6, 0xab, 0x35, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x58, 0x0e, 0xb7, 0x7e, 0xb0, 0x8a, 0x77, 0xbd, 0x83, 0xb2, 0xce, 0x73, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x9f, 0x0f, 0xce, 0xb9, 0x29, 0x07, 0x27, 0x32, 0x8b, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x80, 0x79, 0x7d, 0x83, 0x55, 0xbc, 0xeb, 0x6b, 0xf8, 0x45, 0x69, 0xc3, 0x97, 0x4b, 0x1b, 0x94, 0x25, 0xef, 0x1b, 0xac, 0xeb, 0x83, 0x3b, 0x58, 0xa5, 0xbd, 0xde, 0x6a, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x3e, 0x6f, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0x2e, 0x7c, 0x3d, 0x38, 0x91, 0x59, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0x85, 0xc9, 0xc1, 0x07, 0x6b, 0x78, 0xd7, 0x57, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0xf9, 0x60, 0x29, 0x97, 0xe1, 0xc1, 0x89, 0xcc, 0x62, 0x83, 0x73, 0xfe, 0xd2, 0x06, 0xab, 0x1a, 0x84, 0x37, 0x58, 0x17, 0x94, 0xbe, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xe0, 0xe5, 0xbd, 0xb1, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x84, 0x94, 0xc9, 0xc1, 0x89, 0xd1, 0xf5, 0x60, 0x0d, 0xef, 0xfa, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x91, 0xaa, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0xeb, 0xb1, 0xd8, 0x5b, 0xc3, 0x2f, 0x4a, 0x1b, 0x2c, 0x09, 0x9c, 0x3b, 0x58, 0x86, 0x95, 0xde, 0x6a, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x3e, 0x6f, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0x2e, 0x9c, 0x3d, 0x38, 0x91, 0x59, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x73, 0x68, 0x6f, 0x6c, 0x07, 0x6b, 0x78, 0xd7, 0x57, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0x79, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0xe1, 0xef, 0xc1, 0x89, 0xcc, 0x62, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0xe5, 0x70, 0xeb, 0x1b, 0x14, 0x86, 0xaa, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xc5, 0x4a, 0xaf, 0x6b, 0xf8, 0x11, 0x66, 0x70, 0xfa, 0x60, 0xe1, 0x38, 0x58, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0x25, 0xb5, 0xc6, 0xa1, 0x83, 0x05, 0xbe, 0xeb, 0xad, 0xe1, 0x92, 0x5a, 0x43, 0x34, 0x0f, 0x16, 0xf8, 0xae, 0xb7, 0x86, 0x4b, 0x6a, 0x0d, 0xe3, 0x72, 0xb0, 0xc0, 0x77, 0xbd, 0x35, 0x5c, 0x52, 0x6b, 0x48, 0xd5, 0x1c, 0x2c, 0xf0, 0x5d, 0x6f, 0x0d, 0x97, 0xd4, 0x1a, 0x56, 0x68, 0x0f, 0x16, 0xf8, 0xae, 0x77, 0x50, 0xd6, 0x79, 0xb6, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x83, 0xcf, 0x07, 0x67, 0x4e, 0xd7, 0x83, 0x13, 0x99, 0xc5, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xc0, 0xbc, 0xbe, 0xc1, 0x2a, 0xde, 0xf5, 0x35, 0xfc, 0xa2, 0xb4, 0xe1, 0xcb, 0xa5, 0x0d, 0xca, 0x92, 0xf7, 0x35, 0x58, 0x13, 0x0a, 0xd7, 0xc1, 0x2a, 0xed, 0xf5, 0x56, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0xf9, 0xe0, 0x58, 0xec, 0x7a, 0x70, 0x22, 0xb3, 0xd8, 0xf0, 0x6e, 0xcf, 0x06, 0x0b, 0x98, 0xd7, 0x37, 0x58, 0xc5, 0xbb, 0xbe, 0x86, 0x5f, 0x94, 0x36, 0x7c, 0xb9, 0xb4, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0xc1, 0xb3, 0x79, 0xb0, 0x4a, 0x7b, 0xbd, 0xd5, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x7c, 0x3e, 0x58, 0x98, 0xdc, 0x77, 0x70, 0x22, 0xb3, 0xd8, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0x60, 0x39, 0xdc, 0xfa, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xb8, 0x3b, 0x58, 0xb0, 0xdc, 0xb7, 0xc1, 0x62, 0x9f, 0xbb, 0x0d, 0x16, 0x30, 0xd4, 0x1e, 0x2c, 0xc4, 0x99, 0x3d, 0x58, 0xc3, 0xbb, 0xde, 0x6a, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x3e, 0x1f, 0x9c, 0x7e, 0x5c, 0x0f, 0x4e, 0x64, 0x16, 0x1b, 0xde, 0xed, 0xd9, 0x60, 0x01, 0xf3, 0xfa, 0x06, 0xab, 0x78, 0xd7, 0xd7, 0xf0, 0x8b, 0xd2, 0x86, 0x2f, 0x97, 0x36, 0x28, 0x4b, 0xde, 0x37, 0x58, 0xde, 0x19, 0x77, 0xb0, 0x4a, 0x7b, 0xbd, 0xd5, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x7c, 0x3e, 0x58, 0x97, 0xa4, 0x78, 0x70, 0x22, 0xb3, 0xd8, 0xf0, 0x6e, 0xcf, 0x06, 0x0b, 0x98, 0xd7, 0x37, 0x58, 0xc5, 0xbb, 0xbe, 0x86, 0x5f, 0x94, 0x36, 0x7c, 0xb9, 0xb4, 0x41, 0x59, 0xf2, 0xbe, 0x06, 0x6b, 0xd0, 0xdd, 0x3a, 0x58, 0xa5, 0xbd, 0xde, 0x6a, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x3e, 0x1f, 0xac, 0xea, 0x4d, 0x3c, 0x38, 0x91, 0x59, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0x05, 0xcc, 0xeb, 0x1b, 0xac, 0xe2, 0x5d, 0x5f, 0xc3, 0x2f, 0x4a, 0x1b, 0xbe, 0x5c, 0xda, 0xa0, 0x2c, 0x79, 0xdf, 0x60, 0x5d, 0x56, 0xdb, 0xc1, 0x2a, 0xed, 0xf5, 0x56, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0x79, 0xc3, 0xe7, 0x4a, 0x1b, 0x2c, 0xca, 0x73, 0x3d, 0x58, 0x2d, 0x2a, 0x7e, 0x70, 0x22, 0xb3, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xe7, 0xd0, 0xca, 0xe0, 0x36, 0x58, 0xd6, 0xc0, 0x7e, 0xb0, 0x86, 0x77, 0x7d, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x9f, 0x37, 0x7c, 0xae, 0xb4, 0xc1, 0xc2, 0xe4, 0xbe, 0x83, 0xd5, 0xa2, 0xe2, 0x07, 0x27, 0x32, 0x8b, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x96, 0xc3, 0xad, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0x22, 0xa0, 0x7d, 0x83, 0xc5, 0x3e, 0x77, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x92, 0x68, 0x76, 0x83, 0xa2, 0x52, 0x7c, 0x83, 0x22, 0x75, 0xfc, 0x60, 0x51, 0x03, 0xfb, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x24, 0x9a, 0xdd, 0xa0, 0xa8, 0x14, 0xdf, 0xa0, 0x14, 0x22, 0x3f, 0x58, 0xd4, 0xc0, 0xde, 0xc1, 0x1a, 0xde, 0xf5, 0x56, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0x79, 0xc3, 0xe7, 0x4a, 0x1b, 0x2c, 0x4c, 0xee, 0xdb, 0xf0, 0x08, 0xdd, 0x86, 0x77, 0xea, 0x0e, 0xd2, 0xd2, 0x19, 0x0f, 0x4e, 0x64, 0x16, 0x1b, 0x9c, 0xf3, 0x97, 0x36, 0x58, 0xd5, 0x20, 0xbc, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xf0, 0xc1, 0xb2, 0x02, 0xf6, 0x35, 0x7c, 0xee, 0x32, 0x78, 0xbc, 0xe1, 0xdd, 0x9e, 0x0d, 0x56, 0x7a, 0xc0, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0x61, 0xbf, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xe3, 0x83, 0x15, 0x10, 0xec, 0xb5, 0x86, 0xcf, 0x5d, 0x06, 0x97, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0x4a, 0x0f, 0xb8, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x32, 0xec, 0xb7, 0x35, 0xbc, 0xad, 0x33, 0xb8, 0x7c, 0xb0, 0x02, 0x82, 0xbd, 0xda, 0xf0, 0x15, 0xce, 0x86, 0xbf, 0x68, 0x36, 0x38, 0xd5, 0x8b, 0x6e, 0x50, 0x10, 0xcc, 0x6e, 0xb0, 0xc0, 0x77, 0x7d, 0x83, 0x82, 0x22, 0x73, 0xc3, 0x2f, 0x2e, 0x6b, 0xb8, 0xa4, 0x36, 0x38, 0xec, 0x77, 0xac, 0xc1, 0x72, 0xb8, 0xf5, 0x83, 0x65, 0xa2, 0xec, 0xad, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0xc1, 0x02, 0xdf, 0xf5, 0x0d, 0x97, 0xd4, 0x1a, 0xcf, 0x0f, 0x16, 0xf8, 0xae, 0x57, 0xab, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0xf8, 0x7c, 0x90, 0xd8, 0x66, 0x74, 0x70, 0x22, 0xb3, 0xd8, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0x60, 0x39, 0xdc, 0xfa, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x2b, 0x02, 0xda, 0x37, 0x48, 0x4a, 0x0b, 0xde, 0x20, 0x29, 0x2d, 0xf8, 0x60, 0xed, 0x9e, 0xfa, 0xc1, 0x1a, 0xde, 0xf5, 0x0e, 0xd6, 0x6b, 0xc2, 0x2d, 0xb3, 0x06, 0xab, 0x9b, 0xd7, 0x37, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0x80, 0x17, 0x56, 0x77, 0x1e, 0x84, 0xe9, 0xd8, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xec, 0xca, 0xd8, 0x0d, 0xc2, 0x69, 0x6c, 0xc3, 0x97, 0x4b, 0x07, 0x27, 0x3d, 0xd1, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0x99, 0x60, 0x74, 0xc3, 0x07, 0x39, 0x6b, 0x50, 0x4c, 0x62, 0x6e, 0xf8, 0xa1, 0x66, 0x83, 0x95, 0x1f, 0xee, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0x4f, 0xdc, 0xad, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0xb2, 0x12, 0xf7, 0xd6, 0xf0, 0xb6, 0xce, 0xc1, 0x32, 0x1b, 0xf7, 0xda, 0xe0, 0x9c, 0xbf, 0xb4, 0xc1, 0xaa, 0x06, 0xe1, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0x5f, 0x5c, 0x0e, 0x56, 0x61, 0x87, 0xae, 0xe1, 0x17, 0x97, 0x0d, 0x96, 0x4e, 0xd0, 0x1e, 0x94, 0x75, 0x9e, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x45, 0x9a, 0xb3, 0x07, 0x65, 0x9d, 0x67, 0x1b, 0x94, 0x12, 0xe2, 0x6b, 0xb8, 0xa4, 0x36, 0x28, 0x6a, 0xc4, 0xd7, 0x60, 0x99, 0x8d, 0xfb, 0x86, 0xbf, 0x68, 0x36, 0x08, 0xd3, 0xb1, 0x83, 0x45, 0x42, 0xee, 0x6d, 0xf8, 0x0a, 0x67, 0xc3, 0x5f, 0x34, 0x1b, 0x9c, 0xea, 0x45, 0x37, 0x7c, 0x90, 0xb3, 0xc1, 0x5a, 0x19, 0xf7, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0xb7, 0x75, 0x0e, 0x0e, 0xfb, 0x1d, 0x07, 0x65, 0x9d, 0xe7, 0x86, 0x5f, 0x5c, 0xd6, 0x70, 0x49, 0x6d, 0x70, 0xd8, 0xef, 0x58, 0x83, 0x65, 0x36, 0xee, 0x1b, 0x2e, 0xa9, 0x35, 0x0e, 0x1d, 0x2c, 0xb3, 0x71, 0xaf, 0x35, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x58, 0x66, 0xe3, 0xbe, 0xe1, 0x92, 0x5a, 0xe3, 0xf9, 0xc1, 0x32, 0x1b, 0xf7, 0x6a, 0x35, 0x58, 0x7e, 0xd6, 0xbe, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb3, 0xb7, 0xf6, 0xf0, 0x43, 0xcd, 0x06, 0x4b, 0x7f, 0x6a, 0xdb, 0xf0, 0x17, 0xcd, 0x06, 0x67, 0x82, 0xd1, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xd9, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x14, 0xff, 0x6e, 0x50, 0x54, 0x8a, 0xaf, 0xe1, 0x6d, 0x9d, 0x0d, 0x16, 0x65, 0xba, 0xd7, 0x86, 0x4f, 0x6c, 0x36, 0x48, 0x02, 0x52, 0xdd, 0xa0, 0x30, 0x54, 0xdd, 0xf0, 0xc4, 0xdd, 0x86, 0xaf, 0x70, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0x49, 0x4f, 0x74, 0xc3, 0x07, 0x39, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x34, 0x6c, 0xa5, 0x0d, 0xca, 0xe8, 0xf3, 0x83, 0x84, 0x10, 0xdb, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xc7, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x12, 0xcd, 0x6e, 0x50, 0x54, 0x8a, 0x6f, 0x70, 0x78, 0xa6, 0x38, 0x58, 0xd3, 0xea, 0xbe, 0x41, 0xb1, 0xa3, 0xb9, 0x86, 0x7f, 0x73, 0xd6, 0xf0, 0x23, 0xcc, 0x86, 0x9a, 0x1f, 0x5a, 0x0e, 0x4f, 0xef, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x4e, 0x04, 0x6d, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x95, 0x1e, 0x70, 0x6b, 0xf8, 0xc5, 0x65, 0xc3, 0xd3, 0x3b, 0x07, 0x65, 0x9d, 0x67, 0x07, 0xcb, 0xe2, 0xed, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x27, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x49, 0x34, 0xbb, 0x41, 0x51, 0x29, 0xbe, 0x86, 0x5f, 0x5c, 0x36, 0x28, 0x88, 0xcf, 0x0f, 0x0a, 0xe2, 0xf1, 0x83, 0x35, 0xad, 0xee, 0x1b, 0x14, 0x3b, 0x9a, 0x6b, 0xb0, 0x06, 0x68, 0xe9, 0x60, 0xe9, 0x96, 0xe8, 0x1a, 0x7e, 0x71, 0xd9, 0x60, 0x25, 0x45, 0xdb, 0x06, 0xcb, 0x22, 0x69, 0xd7, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0xa0, 0xd8, 0x3d, 0xdf, 0xf0, 0x6e, 0xcf, 0x86, 0x3f, 0x81, 0x36, 0x08, 0x58, 0xd6, 0x83, 0xd2, 0x0c, 0xbd, 0x36, 0xbc, 0xdb, 0xb3, 0xc1, 0x89, 0xa0, 0x6d, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0xd6, 0x68, 0xa7, 0x6f, 0xb0, 0x96, 0x3b, 0x7d, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xc8, 0x3a, 0x76, 0x83, 0x72, 0x5d, 0x76, 0x0d, 0x97, 0xd4, 0x1a, 0x87, 0x0e, 0x56, 0x75, 0x89, 0x56, 0x6b, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x1b, 0x2c, 0x96, 0x78, 0x5f, 0x83, 0x55, 0x5d, 0xa2, 0x1b, 0x2e, 0xa9, 0x35, 0x9e, 0x1f, 0xac, 0xea, 0x12, 0xad, 0x66, 0x0d, 0x56, 0x03, 0xb2, 0x6f, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x6c, 0x69, 0xed, 0x41, 0x98, 0x8e, 0x6d, 0x70, 0xce, 0x5f, 0xda, 0x60, 0x55, 0x83, 0xf0, 0x1a, 0x7e, 0x71, 0xd9, 0x60, 0xa5, 0xfc, 0xfa, 0x41, 0x59, 0xe6, 0xb9, 0xe1, 0x2b, 0x9c, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0xaa, 0x17, 0xdd, 0xf0, 0x41, 0xce, 0x1a, 0x14, 0x93, 0x98, 0x1b, 0x7e, 0xa8, 0xd9, 0x60, 0x15, 0xd1, 0x7b, 0x1b, 0x14, 0x14, 0x99, 0x1b, 0x2c, 0xa9, 0x4e, 0x5a, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x45, 0x5d, 0xef, 0x1b, 0x2e, 0xa9, 0x35, 0x9e, 0x1f, 0x2c, 0xea, 0x7a, 0xaf, 0x0d, 0x4e, 0x0e, 0x72, 0x6b, 0x1c, 0x3a, 0x58, 0xd4, 0xf5, 0xbe, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x64, 0x1d, 0x7b, 0xb0, 0x28, 0x92, 0x76, 0x0d, 0x42, 0xf0, 0x61, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xb2, 0x8e, 0x3d, 0x58, 0x79, 0x4e, 0xbb, 0x06, 0x05, 0x60, 0xec, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x64, 0x1d, 0xbb, 0x86, 0xb7, 0x75, 0x06, 0x1f, 0x0f, 0x16, 0x75, 0xbd, 0xb7, 0x1a, 0x3e, 0x57, 0xda, 0x20, 0x60, 0x83, 0x0e, 0x82, 0x46, 0x75, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xb2, 0x8e, 0x3d, 0x58, 0x71, 0x2c, 0xbb, 0x1a, 0x3e, 0x57, 0xda, 0x20, 0x60, 0x83, 0x0e, 0x8a, 0xbf, 0xd8, 0x0d, 0xbf, 0xb8, 0x6c, 0x78, 0xe2, 0x6e, 0x83, 0x85, 0x0e, 0x6f, 0x6b, 0x50, 0x96, 0xbc, 0x6f, 0xb0, 0xae, 0x0f, 0x6e, 0x83, 0xf5, 0x5b, 0x6d, 0x07, 0xab, 0x0e, 0xdf, 0x5b, 0x0d, 0x9f, 0x2b, 0x6d, 0x10, 0x46, 0x40, 0x1b, 0x7e, 0xa8, 0x39, 0x38, 0x2e, 0x9e, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0x45, 0xd6, 0xb1, 0x07, 0xeb, 0xba, 0x66, 0x57, 0xc3, 0xe7, 0x4a, 0x1b, 0x84, 0x11, 0xd0, 0x1a, 0xfe, 0x5c, 0x1a, 0xdc, 0x3d, 0xfc, 0x50, 0xb3, 0x41, 0x08, 0x3e, 0x1c, 0x14, 0x7f, 0xb1, 0x1b, 0x7e, 0x71, 0xd9, 0xf0, 0xc4, 0xdd, 0x1a, 0xde, 0xed, 0xd9, 0xe0, 0x44, 0xd0, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x38, 0xc9, 0xb4, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xdd, 0x83, 0x45, 0x5d, 0xef, 0x07, 0xab, 0xcf, 0x68, 0xd7, 0xa0, 0x84, 0xc7, 0xdc, 0x60, 0x49, 0xe2, 0xfb, 0x1a, 0x9e, 0xc5, 0x3b, 0x58, 0x9f, 0xfa, 0xb5, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0x61, 0xbf, 0x1d, 0xac, 0x3a, 0x7c, 0xaf, 0x0e, 0xa7, 0x58, 0x87, 0x53, 0x6c, 0xd6, 0x60, 0xf5, 0xb7, 0xd6, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0xea, 0x6f, 0xad, 0x06, 0xe0, 0x47, 0xae, 0xcc, 0x8d, 0xac, 0x4c, 0x0e, 0x84, 0x2e, 0xcc, 0x6d, 0x0d, 0x24, 0x8c, 0x0e, 0xe4, 0x2e, 0x8d, 0x8c, 0x0e, 0x6d, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0x01, 0x8f, 0x2e, 0x4c, 0x3c, 0xfc, 0x50, 0xb3, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0x32, 0xb2, 0xf3, 0xf0, 0x43, 0x4d, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0xa3, 0x0b, 0x1b, 0x0f, 0xce, 0x04, 0xa3, 0x6d, 0xf8, 0x8b, 0x66, 0x0d, 0xff, 0xce, 0xaf, 0xc1, 0x69, 0x0b, 0xb5, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0x65, 0xc9, 0xfb, 0x02, 0xde, 0x5d, 0x9a, 0xdb, 0x06, 0x6b, 0xb9, 0xd3, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0x0b, 0x21, 0xe0, 0x6b, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0xa4, 0x00, 0xbe, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0x62, 0x05, 0xf8, 0x5a, 0x81, 0x97, 0x2b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x83, 0x97, 0x2b, 0x1b, 0xc0, 0x93, 0x2e, 0xcc, 0x6d, 0x0d, 0x44, 0xae, 0xcc, 0x8d, 0xac, 0x4c, 0xae, 0x4c, 0x6e, 0x83, 0xb2, 0x0c, 0x7b, 0x83, 0xb5, 0x0e, 0xf0, 0xb3, 0xcc, 0x1a, 0xac, 0xf5, 0x80, 0xdf, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x58, 0xeb, 0x01, 0xdf, 0x00, 0xe8, 0x22, 0x57, 0xe6, 0x46, 0x56, 0x26, 0x07, 0x12, 0x06, 0x42, 0x17, 0xe6, 0xb6, 0x06, 0x42, 0xf7, 0x06, 0xd2, 0x56, 0xc7, 0x46, 0x97, 0x06, 0xc7, 0x56, 0x06, 0xc2, 0x96, 0xe6, 0x56, 0x36, 0x07, 0x82, 0x42, 0x17, 0xc6, 0xc6, 0x96, 0x56, 0x02, 0xf0, 0x25, 0xcd, 0x8d, 0xac, 0xcc, 0x8d, 0xae, 0x8c, 0x0c, 0x44, 0x2c, 0x0f, 0xc4, 0x85, 0x2e, 0x4c, 0x8c, 0x05, 0x64, 0xee, 0xcd, 0x8c, 0xae, 0xe5, 0x4e, 0x2e, 0x0c, 0x0e, 0xae, 0x8c, 0x0c, 0x24, 0x8c, 0x0e, 0xc4, 0xa5, 0x8c, 0xec, 0xac, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0x92, 0x02, 0xf8, 0x83, 0x32, 0x4b, 0x77, 0x0d, 0x7f, 0x2e, 0x6d, 0xb0, 0x58, 0x01, 0xfe, 0xa0, 0xcc, 0xd2, 0x6d, 0x83, 0xd2, 0xde, 0x72, 0x0d, 0x7f, 0x2e, 0x6d, 0x70, 0x5c, 0xec, 0x3e, 0x58, 0x68, 0x01, 0xbf, 0xc1, 0x01, 0x8b, 0x6e, 0x0d, 0x7f, 0xd1, 0x6c, 0xb0, 0xd0, 0x02, 0x7e, 0x83, 0x82, 0x60, 0x76, 0x83, 0xf5, 0x24, 0xf0, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0x30, 0x78, 0x50, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xc3, 0x7e, 0x3b, 0x58, 0x32, 0x02, 0xdf, 0x06, 0x41, 0x7a, 0xba, 0xc6, 0xa1, 0x83, 0xf5, 0x24, 0xf0, 0x6b, 0x70, 0x16, 0x13, 0xdd, 0xf0, 0x6e, 0xcf, 0x06, 0x0b, 0x38, 0xe1, 0xd7, 0xf0, 0xb6, 0xce, 0xe0, 0xf0, 0xc1, 0x7a, 0x12, 0xf8, 0xd6, 0xe0, 0x30, 0x29, 0xba, 0x41, 0x41, 0x1a, 0xbb, 0xc1, 0x2a, 0xa5, 0xd3, 0x35, 0xbc, 0xad, 0x73, 0xb0, 0x46, 0x3b, 0x7d, 0xc3, 0x07, 0x39, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x17, 0xbf, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x85, 0x9e, 0x93, 0x1b, 0x2c, 0x51, 0x3b, 0x6d, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x14, 0x70, 0x83, 0xa5, 0x2b, 0xf0, 0x1b, 0x2c, 0x3c, 0x81, 0xaf, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x02, 0x4e, 0xf8, 0x83, 0x95, 0xc9, 0xf0, 0x1b, 0xac, 0x74, 0x71, 0x5a, 0xc0, 0x33, 0x7b, 0x93, 0x5b, 0xc3, 0xdb, 0x3a, 0x83, 0xc7, 0x07, 0xeb, 0x65, 0xe1, 0x37, 0x58, 0xe9, 0xe2, 0xb4, 0xc1, 0x19, 0x6a, 0x72, 0x0d, 0x6f, 0xeb, 0x0c, 0x1e, 0x1f, 0xac, 0x27, 0x81, 0xdf, 0xa0, 0x84, 0xc7, 0xdc, 0xe0, 0x0c, 0x35, 0xb9, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xc0, 0x09, 0xbf, 0x86, 0xb7, 0x75, 0x0e, 0x96, 0x71, 0xc3, 0xb7, 0x41, 0x09, 0x8f, 0xb9, 0xc1, 0xf9, 0x7b, 0x72, 0x0d, 0xd6, 0xc6, 0x35, 0xad, 0x06, 0x6b, 0x52, 0xe0, 0x37, 0xbc, 0xdb, 0xb3, 0xe1, 0x4f, 0xa0, 0x0d, 0x02, 0x96, 0xf5, 0x60, 0x65, 0x34, 0xfc, 0x1a, 0xa4, 0x88, 0x4c, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xb0, 0x9e, 0x04, 0xfe, 0xe0, 0x98, 0x35, 0x59, 0x07, 0xeb, 0xe1, 0xe1, 0x37, 0x28, 0x25, 0xc4, 0xd7, 0x70, 0x49, 0x6d, 0x50, 0xd4, 0x88, 0xaf, 0xc1, 0x19, 0x6a, 0x72, 0xc3, 0x5f, 0x34, 0x1b, 0x9c, 0xea, 0x45, 0x37, 0xbc, 0xad, 0x73, 0x70, 0x86, 0x9a, 0x6c, 0x83, 0x82, 0x34, 0x76, 0xc0, 0x63, 0xcb, 0x73, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xc1, 0x53, 0xbb, 0x41, 0xc0, 0xb2, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0x7a, 0x4e, 0x6e, 0xb0, 0x04, 0x24, 0xbe, 0x36, 0x28, 0xfa, 0x74, 0x37, 0x48, 0x11, 0x99, 0x5a, 0xc3, 0x57, 0x38, 0x1b, 0xfe, 0xa2, 0xd9, 0x60, 0xa1, 0x05, 0xfc, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0x67, 0xa8, 0xc9, 0x0d, 0x92, 0x3d, 0xa6, 0x36, 0x28, 0x48, 0x63, 0x07, 0x3c, 0xb7, 0x3c, 0x76, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x14, 0x70, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0xc0, 0x24, 0xbe, 0x83, 0x60, 0x65, 0xdd, 0x70, 0x49, 0x6d, 0x70, 0xd8, 0xef, 0xd8, 0x60, 0x8d, 0x43, 0xfc, 0x1a, 0xac, 0x49, 0x81, 0xdf, 0xf0, 0x6e, 0xcf, 0x86, 0x3f, 0x81, 0x36, 0x58, 0x78, 0x02, 0xbf, 0x86, 0xb7, 0x75, 0x36, 0x58, 0x64, 0x14, 0x5f, 0x6b, 0x90, 0x22, 0x32, 0xb5, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0x6d, 0x70, 0xec, 0xa1, 0x5c, 0x83, 0xb5, 0x4d, 0xf1, 0x07, 0xeb, 0xbe, 0xe2, 0x6b, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0xbb, 0x4b, 0x3b, 0x3b, 0x58, 0x4d, 0x0f, 0xbf, 0x06, 0x07, 0x8f, 0xd1, 0x0d, 0x0a, 0xd2, 0xd8, 0x0d, 0x56, 0x29, 0x9d, 0x6e, 0xb0, 0x94, 0x17, 0x7e, 0xc3, 0x07, 0x39, 0x1b, 0xac, 0x11, 0x86, 0xdf, 0x60, 0x09, 0x35, 0xfc, 0x06, 0x2b, 0x5d, 0x9c, 0x36, 0x58, 0xc6, 0x0d, 0xbf, 0xc1, 0x72, 0x6f, 0xf8, 0x0d, 0x56, 0xba, 0x38, 0x6d, 0x50, 0x9a, 0xe2, 0xae, 0xe1, 0x6d, 0x9d, 0xc1, 0xe5, 0x83, 0xf5, 0xb2, 0xf0, 0x1b, 0xac, 0x74, 0x71, 0xda, 0xe0, 0x0c, 0x35, 0xb9, 0xc1, 0x02, 0x74, 0xf8, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0x52, 0x44, 0xa6, 0xd6, 0xf0, 0x15, 0xce, 0x86, 0xbf, 0x68, 0x36, 0x58, 0x68, 0x01, 0xbf, 0x41, 0x09, 0x8f, 0xb9, 0xc1, 0x19, 0x6a, 0x72, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x4a, 0x53, 0xdc, 0x0d, 0x92, 0x3d, 0xa6, 0x36, 0xbc, 0xdb, 0xb3, 0xc1, 0x02, 0x4e, 0xf8, 0x0d, 0x8a, 0x4c, 0xdc, 0x36, 0x5c, 0x52, 0x1b, 0x1c, 0xf6, 0x3b, 0x36, 0x58, 0xe3, 0x10, 0xbf, 0x06, 0x6b, 0x52, 0xe0, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0xd8, 0xdd, 0x6e, 0xb0, 0x34, 0x20, 0x7e, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x3c, 0xb5, 0x1b, 0x04, 0x2c, 0xeb, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x14, 0x58, 0x37, 0x58, 0xba, 0x02, 0x7f, 0x50, 0x50, 0x8a, 0xd7, 0x1a, 0xa4, 0x88, 0x4c, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x07, 0x87, 0x1e, 0xca, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x58, 0xc6, 0x0d, 0xbf, 0x41, 0xb2, 0xc7, 0xd4, 0xc1, 0xb2, 0xb7, 0xf8, 0x96, 0x59, 0x83, 0x05, 0x73, 0xf1, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0x0b, 0xe6, 0xe2, 0x1b, 0x00, 0x5f, 0xd2, 0xdc, 0xc8, 0xca, 0xdc, 0xe8, 0x40, 0xe8, 0xc2, 0xe0, 0xca, 0x40, 0xc2, 0xdc, 0xc8, 0x40, 0xc6, 0xde, 0xdc, 0xe6, 0x40, 0xee, 0xd2, 0xe8, 0xd0, 0x40, 0xde, 0xea, 0xe8, 0xe0, 0xea, 0xe8, 0x40, 0xe6, 0xe8, 0xc2, 0xc6, 0xd6, 0x95, 0x00, 0xfc, 0x55, 0x7b, 0x4b, 0x73, 0x2b, 0x23, 0x03, 0xb9, 0x4b, 0xa3, 0x43, 0x03, 0xa1, 0x43, 0x2b, 0x03, 0xa1, 0x7b, 0x83, 0x03, 0x61, 0x4b, 0x73, 0x2b, 0x03, 0x49, 0x33, 0x03, 0xb9, 0x43, 0x4b, 0xa3, 0x2b, 0x9b, 0x83, 0x0b, 0x1b, 0x2b, 0x7b, 0x49, 0x73, 0x23, 0x2b, 0x73, 0xa3, 0x0b, 0xa3, 0x4b, 0x7b, 0x73, 0x03, 0x09, 0x63, 0x63, 0x7b, 0xbb, 0x6b, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x55, 0x4a, 0xa7, 0x07, 0x27, 0x3d, 0xd1, 0x0d, 0x7f, 0xd1, 0x6c, 0xb0, 0xd0, 0x02, 0x7e, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x14, 0x91, 0xa9, 0x0d, 0x96, 0x50, 0xc3, 0x6f, 0x50, 0x90, 0xc6, 0x0e, 0x78, 0x77, 0x75, 0xe7, 0x1a, 0x24, 0x19, 0x10, 0x6e, 0xf8, 0x13, 0x68, 0xc3, 0x63, 0x32, 0x1b, 0x2c, 0x3c, 0x81, 0xdf, 0x60, 0x6d, 0x31, 0x7c, 0x1b, 0x14, 0x3b, 0x9a, 0x6b, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x6d, 0x69, 0xf2, 0x86, 0xb7, 0x75, 0x06, 0x4f, 0x0f, 0x52, 0x44, 0xa6, 0x36, 0x7c, 0x85, 0xb3, 0xe1, 0x2f, 0x9a, 0x0d, 0x1f, 0xac, 0x6e, 0x50, 0xc2, 0x63, 0xae, 0xc1, 0xea, 0x21, 0xf9, 0x36, 0x28, 0x60, 0xf3, 0x37, 0xfc, 0x4a, 0xb6, 0x86, 0x7f, 0x73, 0x36, 0x3c, 0x78, 0xb3, 0xe1, 0x6d, 0x9d, 0x0d, 0x56, 0xc7, 0xc8, 0xb7, 0x86, 0x47, 0x58, 0xd7, 0xf0, 0x6f, 0xce, 0x06, 0x8b, 0x7d, 0xee, 0x36, 0xbc, 0xad, 0x33, 0x78, 0x7a, 0xb0, 0x3a, 0x4a, 0x7e, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x56, 0x47, 0xc9, 0x6f, 0x78, 0x5b, 0x67, 0x70, 0xfa, 0x60, 0x75, 0x94, 0xfc, 0x1a, 0x2c, 0xe8, 0x92, 0xdf, 0xf0, 0x6e, 0xcf, 0x86, 0xd7, 0x7c, 0x36, 0x58, 0xb5, 0x25, 0x5f, 0xb5, 0xc1, 0x12, 0x6a, 0xf8, 0x0d, 0x96, 0x54, 0x27, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xe9, 0x83, 0x14, 0x91, 0xa9, 0x0d, 0x8a, 0x4e, 0xe3, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0xba, 0x32, 0xb7, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x0b, 0x4f, 0xe0, 0x0f, 0x56, 0x72, 0x8b, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x13, 0x41, 0xdb, 0x06, 0x4b, 0xd4, 0x4e, 0xd7, 0xf0, 0x17, 0xcd, 0x06, 0x27, 0x3d, 0xd1, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0xd8, 0xe7, 0x6e, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0x7a, 0x8b, 0xdb, 0x60, 0xd5, 0x96, 0xfc, 0x06, 0xeb, 0x8b, 0xe4, 0xab, 0xd5, 0x60, 0xf0, 0xa0, 0x6c, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x06, 0x65, 0x2f, 0xf3, 0x06, 0xcb, 0xd7, 0xe3, 0xdb, 0xf0, 0x8b, 0xd2, 0x06, 0x6b, 0x3f, 0xe4, 0x37, 0xfc, 0x45, 0xb3, 0xc1, 0x42, 0x0b, 0xf8, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0x1e, 0xca, 0x6f, 0xb0, 0x78, 0x51, 0xfe, 0x60, 0x65, 0x32, 0xfc, 0x06, 0xc9, 0x1e, 0x53, 0x1d, 0x4e, 0xb1, 0x0e, 0xa7, 0xd8, 0xac, 0xc1, 0x2a, 0xed, 0xf4, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0xd2, 0x13, 0xdd, 0xa0, 0x20, 0x98, 0xdd, 0x60, 0x3d, 0x09, 0xfc, 0x06, 0xcb, 0x3f, 0xe1, 0x37, 0x08, 0xd2, 0xd3, 0x0d, 0xd6, 0x9f, 0xc2, 0xaf, 0xc1, 0x59, 0x4c, 0xf4, 0x60, 0x51, 0x2c, 0xfc, 0x1a, 0x1c, 0x26, 0x45, 0x37, 0x58, 0xe9, 0xe2, 0xb4, 0x80, 0xd7, 0x96, 0x46, 0xb6, 0x86, 0xb7, 0x75, 0x06, 0x87, 0x0f, 0xd6, 0xcb, 0xc2, 0x6f, 0xb0, 0xd2, 0xc5, 0x69, 0x83, 0x65, 0xdc, 0xf0, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x13, 0x41, 0xdb, 0x06, 0xcb, 0xbd, 0xe1, 0x37, 0x58, 0x0d, 0x19, 0xdf, 0x06, 0x2b, 0x5d, 0x9c, 0x36, 0x28, 0x4d, 0x71, 0xd7, 0xf0, 0xb6, 0xce, 0xe0, 0xf3, 0xc1, 0x7a, 0x59, 0xf8, 0x0d, 0x97, 0xd4, 0x06, 0x6b, 0xb4, 0xd3, 0xd7, 0x60, 0x3d, 0x09, 0xfc, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0xd5, 0x20, 0xbc, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb6, 0xce, 0xc1, 0xfa, 0x70, 0xf9, 0x0d, 0xd6, 0xd3, 0xc3, 0x1f, 0x2c, 0xa0, 0x8d, 0xdf, 0x60, 0x01, 0x3a, 0x7c, 0xad, 0xc1, 0xc1, 0x63, 0x74, 0x83, 0x95, 0x2e, 0x4e, 0x1b, 0xac, 0x0f, 0x97, 0xdf, 0x60, 0x1d, 0xb9, 0xfc, 0x06, 0x2b, 0x5d, 0x9c, 0x36, 0x58, 0xc6, 0x0d, 0xbf, 0xc1, 0x72, 0x6f, 0xf8, 0x0d, 0x56, 0xba, 0x38, 0x6d, 0x50, 0x9a, 0xe2, 0x6e, 0xb0, 0x1a, 0x32, 0x7e, 0x83, 0x95, 0x2e, 0x4e, 0x1b, 0x9c, 0xa1, 0x26, 0x37, 0x58, 0x80, 0x0e, 0xbf, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0x89, 0xa0, 0x6d, 0x83, 0xf5, 0xf4, 0xf0, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0x17, 0xcd, 0x06, 0x27, 0x3d, 0xd1, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0xce, 0x50, 0x93, 0x1b, 0x14, 0x99, 0xb8, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x9c, 0x08, 0xda, 0xd6, 0x70, 0x49, 0x6d, 0xb0, 0x46, 0x3b, 0xfd, 0x60, 0x85, 0x43, 0xfc, 0x06, 0x2b, 0x5d, 0x9c, 0x16, 0xf0, 0xec, 0xde, 0xf4, 0x36, 0x58, 0x3b, 0x1d, 0xbf, 0x41, 0x09, 0x8f, 0xb9, 0xc1, 0xf9, 0x7b, 0x72, 0x0d, 0x6f, 0xeb, 0x1c, 0x2c, 0x7a, 0x9a, 0xdf, 0xf0, 0x6e, 0xcf, 0x06, 0x27, 0x82, 0xb6, 0x0d, 0x16, 0x2b, 0xcc, 0x6f, 0xb0, 0x00, 0x6b, 0xbe, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0xad, 0x00, 0x3c, 0xc3, 0x85, 0xc9, 0xcd, 0xa5, 0xb9, 0x9d, 0xb5, 0x88, 0x85, 0xcd, 0x95, 0xcd, 0xb5, 0x84, 0xb9, 0x91, 0xb5, 0x88, 0x85, 0xcd, 0x95, 0xb5, 0x90, 0xa5, 0x9d, 0xa5, 0xd1, 0xcd, 0xcb, 0x00, 0x68, 0x41, 0xa3, 0xa6, 0x03, 0x02, 0x17, 0x26, 0x37, 0x97, 0xe6, 0x76, 0x06, 0x82, 0x22, 0x16, 0x36, 0x57, 0x36, 0x07, 0x12, 0xe6, 0x46, 0x06, 0x22, 0x16, 0x36, 0x57, 0x06, 0x42, 0x96, 0x76, 0x96, 0x46, 0x37, 0x97, 0x5a, 0xe0, 0xc3, 0xce, 0x0d, 0x4a, 0x16, 0xf6, 0x59, 0x66, 0x01, 0x2f, 0x0c, 0xae, 0xdc, 0xa0, 0x50, 0xee, 0xdc, 0x60, 0x49, 0x91, 0xed, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x0f, 0x0c, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x82, 0x13, 0xba, 0xc1, 0xba, 0xce, 0xb6, 0x0d, 0xd6, 0x47, 0xb2, 0x76, 0xb0, 0xf8, 0xcd, 0x76, 0x35, 0x58, 0xc9, 0x19, 0xba, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0x12, 0xc8, 0xf9, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x4b, 0x55, 0x43, 0x37, 0x48, 0xc6, 0x6f, 0x5c, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0xa8, 0x08, 0x5d, 0xc3, 0x83, 0x92, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x8b, 0x2b, 0xc3, 0x3b, 0x58, 0x03, 0xab, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xa8, 0x18, 0xba, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x3b, 0x0e, 0xba, 0x86, 0xb7, 0x75, 0x36, 0x58, 0xad, 0x41, 0xda, 0xc1, 0x2a, 0x0f, 0xd6, 0xaa, 0xd5, 0x60, 0xe9, 0x26, 0xeb, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xaa, 0x1a, 0xba, 0x41, 0xea, 0x69, 0xec, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x61, 0x32, 0xe9, 0x1a, 0x1e, 0x94, 0x5c, 0xc3, 0xdb, 0x3a, 0x03, 0xde, 0x5c, 0x9a, 0xdd, 0xc1, 0x1a, 0x58, 0xd5, 0x5a, 0x0d, 0x12, 0xdc, 0x3e, 0x37, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x7a, 0x60, 0xd0, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0xda, 0x71, 0xd0, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x82, 0x8d, 0xd0, 0x83, 0x05, 0xef, 0xa7, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x65, 0x95, 0xa0, 0x6b, 0xf8, 0x45, 0x69, 0xc3, 0x97, 0x4b, 0x1b, 0xde, 0xed, 0xd9, 0xf0, 0x27, 0xd0, 0x06, 0x29, 0xaf, 0x55, 0x1b, 0x2c, 0xe7, 0x04, 0x6d, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xbe, 0x14, 0x74, 0x83, 0x45, 0xf0, 0x6e, 0x6b, 0xf8, 0x11, 0x66, 0x70, 0x3a, 0x54, 0x56, 0x6b, 0x78, 0x50, 0x72, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x73, 0x65, 0x64, 0x07, 0x6b, 0x60, 0x55, 0x9b, 0x35, 0x58, 0x50, 0x0b, 0xbb, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0xb2, 0xc1, 0xb2, 0x1c, 0x97, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x34, 0x75, 0x7e, 0x83, 0x65, 0xb8, 0xf3, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0xa5, 0xaa, 0xa1, 0x1b, 0x24, 0xe3, 0x37, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x56, 0x54, 0x84, 0x6e, 0xb0, 0xb2, 0x25, 0x6e, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x96, 0xef, 0xf6, 0xb4, 0x86, 0x5f, 0x5c, 0x36, 0x38, 0x2f, 0xd0, 0x1c, 0x9c, 0x16, 0x68, 0xd6, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x6b, 0xc7, 0x41, 0x37, 0x58, 0x8f, 0x3c, 0xbf, 0xc1, 0xca, 0x96, 0xb8, 0xaa, 0xc3, 0x29, 0xb6, 0x06, 0x8b, 0xe6, 0x5e, 0x37, 0x28, 0x3a, 0x8d, 0x37, 0x58, 0x56, 0x09, 0xba, 0x86, 0x07, 0x25, 0x37, 0x48, 0x28, 0x5a, 0x3c, 0x58, 0x6e, 0x1c, 0xb8, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x03, 0x83, 0xae, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0x52, 0xd5, 0xd0, 0x35, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x78, 0xb3, 0x2b, 0x93, 0x9b, 0x4b, 0xd3, 0x2b, 0x23, 0xdb, 0xf0, 0x23, 0xcc, 0xc0, 0xd7, 0xe1, 0x07, 0x8b, 0xf7, 0xcb, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x8a, 0x8a, 0xd0, 0x35, 0x3c, 0x28, 0xb9, 0xc1, 0x52, 0x5f, 0xde, 0x83, 0x35, 0xb0, 0xaa, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x85, 0xc9, 0xa4, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x75, 0x60, 0xa2, 0xad, 0xe1, 0x41, 0xc9, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xa1, 0xe5, 0x99, 0x1d, 0xac, 0x81, 0x55, 0xad, 0xd6, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x17, 0x8e, 0x2d, 0xcc, 0xad, 0x8c, 0x0e, 0xe4, 0x4d, 0x0e, 0xa4, 0xed, 0xed, 0xcd, 0x6d, 0xc3, 0x83, 0x92, 0x1b, 0x2c, 0x55, 0xf9, 0x3d, 0x58, 0x03, 0xab, 0xba, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0xc1, 0x1a, 0xc6, 0xd0, 0x0d, 0x0f, 0x4a, 0xae, 0xe1, 0x6d, 0x9d, 0x01, 0x0f, 0x2d, 0xcc, 0xec, 0x60, 0x0d, 0xac, 0xea, 0x1a, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0x7c, 0x67, 0x61, 0x6c, 0x61, 0x78, 0x79, 0x1b, 0x1e, 0x94, 0x5c, 0xc3, 0xdb, 0x3a, 0x03, 0x1e, 0x5d, 0x5a, 0xdc, 0xc1, 0x1a, 0x58, 0xd5, 0x0e, 0xa7, 0xd8, 0x1a, 0x2c, 0x72, 0x6c, 0xdd, 0xf0, 0x6e, 0xcf, 0x06, 0x4b, 0xec, 0x58, 0xd7, 0xf0, 0xa0, 0xe4, 0x06, 0x69, 0x1d, 0x55, 0x07, 0x2b, 0x16, 0x0f, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x4b, 0x55, 0x43, 0x37, 0x58, 0xc2, 0x1b, 0xb9, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x98, 0x4c, 0xba, 0x86, 0x07, 0x25, 0xd7, 0xf0, 0xb6, 0xce, 0x80, 0x67, 0x56, 0xd6, 0x76, 0xb0, 0x06, 0x56, 0xb5, 0x3a, 0x9c, 0x62, 0x6b, 0xb0, 0xd8, 0x7b, 0x75, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0x55, 0x0d, 0xdd, 0x20, 0xe5, 0xb5, 0x6a, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xa2, 0x22, 0x74, 0x83, 0x35, 0x0f, 0xf4, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x85, 0x8a, 0xa1, 0x07, 0x6b, 0x54, 0x55, 0x6b, 0x35, 0x58, 0x36, 0x10, 0xbb, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0xb2, 0x4a, 0xd0, 0x35, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x0f, 0x0f, 0xca, 0x39, 0xdb, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x6c, 0x2b, 0x6f, 0x70, 0x6a, 0x6e, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0x16, 0xcb, 0x87, 0x87, 0x7e, 0xda, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x2b, 0x2a, 0x42, 0xd7, 0x60, 0x85, 0x50, 0xd3, 0x06, 0xeb, 0x81, 0x41, 0xd7, 0xf0, 0xa0, 0xe4, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xd0, 0xd2, 0xcc, 0x0e, 0xd6, 0xc0, 0xaa, 0x6e, 0xb0, 0x62, 0x96, 0xbe, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x42, 0xc5, 0xd0, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0xda, 0x71, 0xd0, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0xa2, 0x21, 0xd3, 0x36, 0x58, 0x34, 0x51, 0x5f, 0xcd, 0x1a, 0xac, 0x27, 0x86, 0xdd, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0xd9, 0x60, 0x59, 0x8e, 0xcb, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x9a, 0x3a, 0xbf, 0x86, 0x07, 0x25, 0xd7, 0xf0, 0xb6, 0xce, 0x80, 0x47, 0x57, 0x46, 0x76, 0xb0, 0x06, 0x56, 0xb5, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x54, 0x35, 0x74, 0x83, 0x54, 0xec, 0xdf, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x8a, 0x8a, 0xd0, 0x0d, 0x56, 0xb6, 0xc4, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x56, 0xd1, 0xd0, 0xaf, 0xe1, 0x17, 0x97, 0x0d, 0x8a, 0x4a, 0xf1, 0x83, 0x82, 0x52, 0xfc, 0x60, 0x89, 0x0f, 0x7d, 0xad, 0x06, 0xab, 0xbb, 0x55, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0xd2, 0xd4, 0xf9, 0x0d, 0xd6, 0x73, 0xaf, 0xb6, 0x1a, 0xac, 0xb0, 0x34, 0xdd, 0xf0, 0x6e, 0xcf, 0x06, 0x4b, 0x53, 0xe7, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x4b, 0x55, 0x43, 0xd7, 0xf0, 0x23, 0xcc, 0x86, 0x9a, 0x1f, 0x14, 0xfa, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x8a, 0x8a, 0xd0, 0x0d, 0xd6, 0xe3, 0xd4, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0x2a, 0x86, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x8e, 0x83, 0x6e, 0xb0, 0x1e, 0x79, 0x7e, 0x0d, 0x0f, 0x4a, 0xae, 0xe1, 0x6d, 0x9d, 0x01, 0x8f, 0x2e, 0x8d, 0xec, 0x60, 0x0d, 0xac, 0x6a, 0x55, 0xab, 0xc1, 0x5a, 0xec, 0xd6, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x34, 0x75, 0x7e, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x54, 0x35, 0x74, 0x0d, 0x3f, 0xc2, 0x0c, 0x7c, 0x1d, 0x7e, 0xb0, 0x9c, 0xe7, 0x6c, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xa2, 0x22, 0x74, 0x0d, 0x0f, 0x4a, 0xae, 0xe1, 0x6d, 0x9d, 0x01, 0x0f, 0xae, 0xcc, 0xee, 0x60, 0x0d, 0xac, 0xea, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0xa1, 0x62, 0xe8, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0xed, 0x38, 0xe8, 0x06, 0xeb, 0x91, 0xe7, 0xd7, 0xf0, 0xa0, 0xe4, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xe0, 0xd2, 0xec, 0x0e, 0xd6, 0xc0, 0xaa, 0x56, 0x75, 0x38, 0xc5, 0xaa, 0x35, 0x58, 0xd7, 0xbf, 0x7a, 0xb0, 0x06, 0x54, 0x75, 0xd6, 0x60, 0xd9, 0x5c, 0xeb, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x9a, 0x3a, 0xbf, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xaa, 0x1a, 0xba, 0xc1, 0xe1, 0x55, 0x6e, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xa2, 0x22, 0x74, 0x0d, 0x0f, 0x4a, 0xae, 0xe1, 0x6d, 0x9d, 0x01, 0x2f, 0xae, 0x4c, 0xec, 0x60, 0x0d, 0xac, 0xea, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0xa1, 0x62, 0xe8, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0xed, 0x38, 0xe8, 0x06, 0xeb, 0x91, 0xe7, 0xd7, 0xf0, 0xa0, 0xe4, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xe2, 0xd2, 0xc4, 0x0e, 0xd6, 0xc0, 0xaa, 0x56, 0x35, 0x6b, 0xb0, 0x72, 0xbe, 0x75, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0x4d, 0x9d, 0x5f, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0x55, 0x0d, 0x5d, 0xc3, 0x8f, 0x30, 0x03, 0x5f, 0x87, 0x1f, 0xac, 0xe6, 0x3d, 0x5b, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0xa8, 0x08, 0x5d, 0xc3, 0x83, 0x92, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x83, 0x2b, 0xbb, 0x3b, 0x58, 0x03, 0xab, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xa8, 0x18, 0xba, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x3b, 0x0e, 0xba, 0xc1, 0x7a, 0xe4, 0xf9, 0x35, 0x3c, 0x28, 0xb9, 0x86, 0xb7, 0x75, 0x06, 0x3c, 0xb8, 0xb4, 0xbb, 0x83, 0x35, 0xb0, 0xaa, 0x55, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0xb6, 0x02, 0xef, 0x56, 0x6e, 0x50, 0x96, 0x61, 0xaf, 0xe1, 0xcf, 0xa5, 0x01, 0x8f, 0x2e, 0xed, 0x3c, 0xfc, 0x50, 0x33, 0xcb, 0x2c, 0x38, 0xbe, 0xe1, 0x83, 0x9c, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x1a, 0xb6, 0xd2, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0x69, 0x89, 0x7d, 0x07, 0xe9, 0xae, 0x55, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x9f, 0x40, 0x1b, 0xac, 0x88, 0xb1, 0x3f, 0x58, 0xae, 0x6f, 0x7a, 0x50, 0xae, 0xcb, 0xae, 0xe0, 0xf7, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x06, 0x2b, 0x62, 0xec, 0x0f, 0xd6, 0x23, 0xbc, 0x6d, 0xb0, 0x6e, 0x1d, 0x6e, 0xc3, 0x07, 0x39, 0x6b, 0xf8, 0x37, 0x67, 0x83, 0x15, 0x31, 0xf6, 0x07, 0x4b, 0x2b, 0xde, 0x36, 0x58, 0xb3, 0xf1, 0xb6, 0xe1, 0x83, 0x9c, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x1a, 0xb6, 0xd2, 0x06, 0x2b, 0x62, 0xec, 0xd7, 0xf0, 0x23, 0xcc, 0x86, 0x9a, 0x1f, 0x4a, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0xfe, 0x04, 0xda, 0x60, 0x45, 0x8c, 0xfd, 0x06, 0xc9, 0xbe, 0x9e, 0x1d, 0x24, 0x53, 0x3a, 0xad, 0xe0, 0xe4, 0x86, 0x77, 0x7b, 0x36, 0xfc, 0x09, 0xb4, 0xc1, 0x8a, 0x18, 0xfb, 0x83, 0x75, 0x3f, 0x72, 0x2b, 0xb8, 0x7d, 0xb0, 0x6a, 0xc5, 0xfe, 0x70, 0x8a, 0xb5, 0xe0, 0xe3, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x89, 0x66, 0x37, 0x28, 0x2a, 0xc5, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0x2b, 0x62, 0xec, 0x0f, 0x0a, 0xe2, 0xf1, 0x35, 0x3c, 0x28, 0xb9, 0xc1, 0xa1, 0xb5, 0xeb, 0x60, 0xc5, 0xe2, 0x61, 0x87, 0x53, 0xac, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x16, 0xf8, 0xb6, 0x7a, 0x83, 0xb2, 0x0c, 0x7b, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0x0d, 0xca, 0xcb, 0xcb, 0xc3, 0x0f, 0x35, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x13, 0x7b, 0xa3, 0x0f, 0x3f, 0xd4, 0x34, 0xcb, 0x2c, 0xe0, 0xe9, 0xd5, 0x9d, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0x10, 0x03, 0xb1, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x0d, 0x78, 0x37, 0x38, 0x35, 0xb7, 0x6d, 0xb0, 0x26, 0x4b, 0xb3, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0x82, 0x4e, 0xfb, 0x5a, 0x01, 0x4f, 0x2f, 0xec, 0xdc, 0xf0, 0x8b, 0xcb, 0x1a, 0x3e, 0x77, 0x19, 0x1c, 0xde, 0xf0, 0x6e, 0xcf, 0x06, 0x45, 0x26, 0xee, 0x06, 0xa7, 0xe6, 0xb6, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x4f, 0xa0, 0x0d, 0xd6, 0x64, 0x69, 0x1e, 0x2c, 0x80, 0xb5, 0x6f, 0x0d, 0x9f, 0xbb, 0x0c, 0x1e, 0x1f, 0x2c, 0x81, 0xb5, 0x6f, 0x05, 0x3c, 0xbd, 0xb4, 0x73, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0x78, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0x99, 0xb8, 0x1b, 0x9c, 0x9a, 0xdb, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x3f, 0x81, 0x36, 0x58, 0x93, 0xa5, 0xb9, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0x0a, 0xb8, 0x41, 0x32, 0x7e, 0xe3, 0xc1, 0x02, 0x58, 0xfb, 0x3a, 0x58, 0x8e, 0x6c, 0x7f, 0x38, 0xc5, 0xea, 0x70, 0x8a, 0xcd, 0x02, 0x1f, 0x26, 0x6e, 0x50, 0xb2, 0xb0, 0xcf, 0x32, 0x0b, 0x78, 0x73, 0x65, 0xe2, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x82, 0x13, 0xba, 0xe1, 0x31, 0x99, 0x0d, 0x96, 0xbe, 0xcf, 0xb7, 0x1a, 0xac, 0x10, 0x61, 0xdd, 0xf0, 0x6e, 0xcf, 0x06, 0x4b, 0x55, 0x43, 0x37, 0x38, 0xbc, 0xca, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x56, 0xd1, 0xd0, 0xaf, 0xe1, 0x17, 0x97, 0x0d, 0x4e, 0xcd, 0x6d, 0x07, 0x67, 0xe6, 0xb6, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xcd, 0xa5, 0xe1, 0xd5, 0x6a, 0xb0, 0xdc, 0xa2, 0x7e, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0x55, 0x0d, 0xdd, 0x20, 0x15, 0xfb, 0x77, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xa2, 0x22, 0x74, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x74, 0x69, 0x70, 0x1b, 0x2c, 0xa7, 0xa5, 0x3f, 0x58, 0x62, 0x52, 0xda, 0x0a, 0x78, 0x73, 0x69, 0xf7, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x0f, 0x0c, 0xba, 0xc1, 0x12, 0x56, 0xd5, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xcd, 0xbd, 0xdd, 0x75, 0x38, 0xc5, 0xd6, 0x60, 0x69, 0x75, 0xfd, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xaa, 0x1a, 0xba, 0x41, 0xc0, 0xb2, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x56, 0x54, 0x84, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0x56, 0xc9, 0xdb, 0xb7, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x45, 0x43, 0xbf, 0x41, 0xe2, 0x4b, 0xea, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xe6, 0xd2, 0xc4, 0xaa, 0x59, 0xc0, 0x43, 0x2b, 0x33, 0x37, 0x28, 0x3a, 0x8d, 0x37, 0x58, 0x62, 0xc7, 0xba, 0x86, 0x5f, 0x94, 0x36, 0x7c, 0xb9, 0xb4, 0xe1, 0x83, 0x9c, 0x35, 0xfc, 0x9b, 0xb3, 0xe1, 0x69, 0x9d, 0xc3, 0x83, 0x37, 0x1b, 0x14, 0x14, 0x99, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0x2c, 0x05, 0x76, 0x78, 0xe8, 0x67, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0xa5, 0xaa, 0xa1, 0x1b, 0xa4, 0x62, 0xff, 0x1e, 0x2c, 0xdc, 0xb8, 0x9f, 0x05, 0xbc, 0xb9, 0x32, 0x7c, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x07, 0x06, 0xdd, 0x60, 0x41, 0x04, 0xfd, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xe6, 0xde, 0xf0, 0x3a, 0x9c, 0x62, 0x6b, 0xb0, 0xe4, 0x94, 0x7e, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0x55, 0x0d, 0xdd, 0x20, 0x15, 0xfb, 0x77, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xa2, 0x22, 0x74, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x74, 0x65, 0x70, 0x07, 0x2b, 0x48, 0xee, 0x5b, 0x0d, 0xd6, 0x1d, 0xd2, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0xa5, 0xaa, 0xa1, 0x1b, 0x24, 0xe3, 0x37, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x56, 0x54, 0x84, 0x6e, 0xb0, 0xa2, 0xa2, 0x7e, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x8a, 0x86, 0x7e, 0x83, 0xd5, 0x51, 0xf5, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x1b, 0x2c, 0x16, 0x0a, 0xdd, 0x60, 0x45, 0x45, 0x7d, 0xd5, 0x0a, 0x78, 0x62, 0x69, 0xf8, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xaa, 0x1a, 0xba, 0xc1, 0xe1, 0x55, 0x6e, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x8a, 0x86, 0x7e, 0x0d, 0xbf, 0xb8, 0x6c, 0x10, 0xb0, 0xac, 0x07, 0xc1, 0xca, 0x7a, 0xb0, 0xd0, 0xe1, 0xbe, 0xc3, 0x29, 0xd6, 0x1a, 0xac, 0xeb, 0x7c, 0xdd, 0xa0, 0xe8, 0x34, 0xde, 0x60, 0x59, 0x25, 0xe8, 0x06, 0x8b, 0xe1, 0x42, 0x37, 0x38, 0xb1, 0xdf, 0x6c, 0xb0, 0x50, 0x31, 0x74, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x07, 0x06, 0xdd, 0x60, 0xed, 0x64, 0xe8, 0x06, 0x0b, 0x09, 0x43, 0x37, 0x58, 0x2c, 0x14, 0xba, 0xc1, 0x42, 0x06, 0xd1, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x12, 0x9c, 0xd0, 0x0d, 0x16, 0xfb, 0xdc, 0x1d, 0x2c, 0x97, 0x5f, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xab, 0x04, 0xdd, 0x60, 0x95, 0x13, 0xdd, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0xa1, 0x26, 0xe9, 0x1a, 0x7e, 0x71, 0x39, 0x58, 0xb5, 0x90, 0xbe, 0xc1, 0x0a, 0xde, 0xd6, 0x5a, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x1d, 0x07, 0xdd, 0x20, 0x8d, 0xf6, 0x68, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x1e, 0x18, 0xf4, 0x60, 0xd5, 0x42, 0x7a, 0xad, 0x06, 0xab, 0x21, 0xef, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0x12, 0x3b, 0xd6, 0x35, 0xfc, 0xa2, 0xb4, 0xe1, 0xcb, 0xa5, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x0d, 0x4f, 0xeb, 0x6c, 0xf8, 0x11, 0x66, 0x70, 0xfa, 0x60, 0x65, 0x7f, 0xda, 0x06, 0x05, 0x45, 0xe6, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xa0, 0xe4, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0x01, 0x96, 0x4b, 0x07, 0x6b, 0x07, 0xe2, 0x0e, 0x0f, 0xfd, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0x8f, 0x2e, 0x8d, 0xad, 0xc3, 0x29, 0xb6, 0x06, 0x4b, 0x0c, 0xeb, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0x52, 0xd5, 0xd0, 0x0d, 0x52, 0x5e, 0xab, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xab, 0x68, 0xe8, 0x37, 0x58, 0x1d, 0x55, 0xbf, 0xc1, 0x12, 0x56, 0xd5, 0x5a, 0x01, 0x6f, 0xee, 0xcd, 0xde, 0xf0, 0x6e, 0xcf, 0x06, 0xcb, 0x2a, 0x41, 0xd7, 0xf0, 0x8b, 0xd2, 0x86, 0x2f, 0x97, 0x0e, 0x56, 0xd7, 0x9b, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0xd6, 0x97, 0x82, 0x6e, 0xb0, 0xae, 0x0b, 0xee, 0x60, 0xa9, 0x74, 0x6b, 0x87, 0x53, 0x6c, 0x0d, 0x96, 0x3f, 0xdd, 0x1f, 0x2c, 0x16, 0x3f, 0x5d, 0x0d, 0x96, 0xf9, 0xdd, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0x65, 0x95, 0xa0, 0x1b, 0x2c, 0x3e, 0xc2, 0x3f, 0x58, 0xd3, 0x6f, 0xba, 0x1a, 0x2c, 0xc2, 0xb0, 0xdf, 0xf0, 0x6e, 0xcf, 0x06, 0x4b, 0x55, 0x43, 0x37, 0x48, 0x81, 0x4e, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0xa2, 0xa1, 0x5f, 0xc3, 0x2f, 0x2e, 0x1b, 0x1c, 0x16, 0xd8, 0x0e, 0x8e, 0x0a, 0x6c, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xd5, 0x28, 0xf7, 0xd5, 0x6a, 0xb0, 0x0c, 0xbd, 0x7e, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0x55, 0x0d, 0xdd, 0x20, 0x60, 0x59, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xab, 0x68, 0xe8, 0x37, 0x58, 0x8d, 0x70, 0x7f, 0xb0, 0xbe, 0xe9, 0xbe, 0xc3, 0x29, 0xb6, 0x06, 0x4b, 0x02, 0x7e, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0x52, 0xd5, 0xd0, 0x0d, 0x92, 0xf1, 0x1b, 0xd7, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x2b, 0x2a, 0x42, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0x0b, 0xa6, 0xee, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0xa2, 0xa1, 0x5f, 0xc3, 0x2f, 0x2e, 0x1b, 0x1e, 0x93, 0x39, 0x28, 0x28, 0xc5, 0x0f, 0x56, 0xaa, 0xde, 0xd7, 0xe1, 0x14, 0x6b, 0x0d, 0x56, 0x64, 0xc0, 0x6e, 0x50, 0x74, 0x1a, 0x6f, 0xb0, 0xac, 0x12, 0x74, 0x83, 0xc5, 0x70, 0xa1, 0x1b, 0xde, 0xed, 0xd9, 0x60, 0xa1, 0x62, 0xe8, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x3d, 0x30, 0xe8, 0x06, 0x6b, 0x27, 0x43, 0x37, 0x58, 0x48, 0x18, 0xba, 0xc1, 0x62, 0xa1, 0xd0, 0x0d, 0xd6, 0xbe, 0x90, 0x1e, 0x2c, 0x7f, 0x62, 0x6d, 0x35, 0x58, 0x85, 0xf8, 0xba, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0xb2, 0x4a, 0xd0, 0x0d, 0x16, 0xc3, 0x85, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x85, 0x8a, 0xa1, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xf5, 0xc0, 0xa0, 0x1b, 0xac, 0x9d, 0x0c, 0xdd, 0x60, 0x21, 0x61, 0xe8, 0x06, 0x8b, 0x85, 0x42, 0x37, 0x58, 0xfb, 0x42, 0xba, 0x41, 0x1a, 0xed, 0xd1, 0xc1, 0x32, 0x06, 0xd1, 0x0e, 0xa7, 0xd8, 0x1a, 0xac, 0x6f, 0x55, 0x3d, 0x58, 0x21, 0x41, 0x3a, 0x6b, 0xb0, 0x92, 0xa7, 0x7e, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0x55, 0x0d, 0xdd, 0x20, 0xe5, 0xb5, 0x6a, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xa2, 0x22, 0x74, 0x83, 0x05, 0x11, 0xf4, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x55, 0x34, 0xf4, 0x1b, 0x1c, 0xd8, 0x49, 0x0e, 0x56, 0xfb, 0xe0, 0xd7, 0xac, 0xc1, 0xba, 0x99, 0xfb, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x1e, 0x18, 0x74, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xac, 0x12, 0x74, 0x83, 0xc5, 0x47, 0xf8, 0x07, 0x0b, 0x66, 0x4b, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xcb, 0x2a, 0x41, 0xd7, 0xf0, 0x8b, 0xd2, 0x86, 0x2f, 0x97, 0x36, 0xbc, 0xdb, 0xb3, 0xe1, 0x53, 0xc0, 0x0d, 0x4f, 0xeb, 0x1c, 0xac, 0x3b, 0xb3, 0x3f, 0x58, 0x1d, 0x5a, 0xba, 0xc1, 0x02, 0xe3, 0xd2, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x12, 0x9c, 0xd0, 0x0d, 0xd6, 0x23, 0xbc, 0x6d, 0xb0, 0x30, 0x5b, 0xb6, 0x56, 0x83, 0xe5, 0xb5, 0xf5, 0x1b, 0xde, 0xed, 0xd9, 0x60, 0xa9, 0x6a, 0xe8, 0x06, 0xa9, 0xa7, 0xb1, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x55, 0x34, 0xf4, 0x1b, 0x2c, 0x93, 0xc3, 0xdf, 0x60, 0x79, 0xf7, 0x7c, 0xad, 0x06, 0xab, 0x43, 0xee, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0x12, 0x3b, 0xd6, 0x35, 0xfc, 0xa2, 0xb4, 0xe1, 0xcb, 0xa5, 0x83, 0x75, 0x1f, 0xf8, 0x07, 0x6b, 0x55, 0xf0, 0x0f, 0xa7, 0x58, 0xad, 0xc1, 0xc2, 0x02, 0xfb, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x54, 0x35, 0x74, 0x83, 0x14, 0xe8, 0xd4, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x8a, 0x8a, 0xd0, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0xf8, 0x68, 0x69, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x8a, 0x86, 0x7e, 0x83, 0xc5, 0x60, 0x78, 0x07, 0x2b, 0xf0, 0xf0, 0x6b, 0xd6, 0x60, 0x29, 0x0b, 0xfe, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x90, 0x1f, 0xba, 0x41, 0x2a, 0xf6, 0xef, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x15, 0x0d, 0xfd, 0x06, 0xab, 0xa3, 0xea, 0x37, 0x58, 0x48, 0x18, 0x5a, 0xab, 0xc1, 0x4a, 0x6b, 0xfa, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xc4, 0x8e, 0x75, 0x0d, 0xbf, 0x28, 0x6d, 0xf8, 0x72, 0x69, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x50, 0x72, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0x18, 0x1a, 0xb5, 0x83, 0x15, 0x8b, 0x87, 0x87, 0x87, 0x7e, 0x36, 0x58, 0x85, 0x20, 0xda, 0x6a, 0x30, 0x3e, 0x5a, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x7a, 0x60, 0xd0, 0x0d, 0x16, 0x44, 0xd0, 0x1f, 0x2c, 0x8c, 0xb9, 0x5f, 0x0d, 0x16, 0xf0, 0xce, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0xa5, 0xaa, 0xa1, 0x1b, 0x1c, 0x5e, 0xe5, 0xd6, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x2b, 0x2a, 0x42, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0x8b, 0xe7, 0xee, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0xa2, 0xa1, 0xdf, 0x20, 0xf1, 0x25, 0xf5, 0x60, 0xfd, 0x6e, 0x68, 0xad, 0x06, 0xcb, 0x56, 0x79, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0x52, 0xd5, 0xd0, 0x0d, 0x92, 0xf1, 0x1b, 0xd7, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x2b, 0x2a, 0x42, 0x37, 0x58, 0xb4, 0x89, 0xbf, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x45, 0x43, 0xbf, 0x41, 0xe2, 0x4b, 0xea, 0xc1, 0x4a, 0xd5, 0xfb, 0x9a, 0x05, 0xbc, 0xb9, 0x32, 0x7b, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x07, 0x06, 0xdd, 0x60, 0x41, 0x04, 0xfd, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0x69, 0x10, 0x7e, 0xad, 0x06, 0x6b, 0xbf, 0xe7, 0x37, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x7a, 0x60, 0xd0, 0x0d, 0x96, 0xb0, 0xaa, 0x1e, 0xac, 0xaf, 0xce, 0x3f, 0x9c, 0x62, 0x0b, 0x78, 0x76, 0x6f, 0xf9, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x3b, 0x0e, 0xba, 0xc1, 0x5a, 0x1c, 0xcc, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x7a, 0x60, 0xd0, 0x0d, 0xd6, 0xe2, 0x60, 0x6e, 0xb0, 0xc8, 0x19, 0x74, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0x8a, 0xf6, 0xbe, 0x3a, 0x9c, 0x62, 0xb5, 0x06, 0x4b, 0x46, 0xeb, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0x52, 0xd5, 0xd0, 0x0d, 0x52, 0x4f, 0x63, 0xd7, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x2b, 0x2a, 0x42, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0x8b, 0x9a, 0xf3, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0xa2, 0xa1, 0xdf, 0x60, 0x31, 0x18, 0xde, 0xc1, 0xa2, 0x9e, 0xfc, 0x3a, 0x9c, 0x62, 0x6b, 0xb0, 0xd6, 0x96, 0x7e, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xb1, 0x63, 0x5d, 0xc3, 0x2f, 0x4a, 0x1b, 0xbe, 0x5c, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0x1e, 0x94, 0x5c, 0xc3, 0xdb, 0x3a, 0x1b, 0x2c, 0x78, 0x70, 0xe9, 0x60, 0xed, 0x40, 0xdc, 0xe1, 0xa1, 0x9f, 0x83, 0xb5, 0x2a, 0xf8, 0xb3, 0x06, 0xeb, 0x20, 0xee, 0x37, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x7a, 0x60, 0xd0, 0x0d, 0x96, 0xb0, 0xaa, 0x1e, 0xac, 0xe3, 0xbb, 0x5f, 0x0d, 0x56, 0x4b, 0xd0, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0x65, 0x95, 0xa0, 0x1b, 0x2c, 0xcc, 0x04, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x2f, 0x05, 0xdd, 0x60, 0x6d, 0xe6, 0xe1, 0xc1, 0x7a, 0x23, 0xb9, 0x0e, 0xa7, 0x58, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x36, 0x9c, 0x08, 0x1b, 0x2a, 0xe1, 0x06, 0x8b, 0xd9, 0xa0, 0x96, 0x59, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x21, 0x41, 0xbe, 0x86, 0xcf, 0x5d, 0x06, 0x87, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xa5, 0x84, 0xf8, 0x1a, 0xde, 0xd6, 0x39, 0xa4, 0x96, 0x36, 0xbc, 0xad, 0x73, 0xb0, 0x2e, 0xc6, 0xfb, 0xe0, 0x5c, 0x6f, 0xb0, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0x48, 0x90, 0x6f, 0xf8, 0xdc, 0x65, 0xf0, 0xf8, 0x30, 0x2e, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xbf, 0x39, 0x87, 0xae, 0x30, 0x87, 0xd4, 0xc1, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x07, 0x4b, 0xaf, 0xf4, 0x37, 0xcc, 0xd0, 0x1a, 0x8a, 0xe9, 0x1a, 0x4a, 0xe9, 0x86, 0x3b, 0x6d, 0x06, 0x68, 0xd9, 0xc2, 0xf2, 0xca, 0xe4, 0x5a, 0x68, 0x87, 0x9a, 0xb9, 0xe1, 0x44, 0xd8, 0x60, 0x45, 0xa0, 0xfe, 0x1a, 0xce, 0x91, 0x15, 0x04, 0x1b, 0xac, 0xe6, 0x38, 0x5a, 0x5c, 0xd8, 0x0d, 0x46, 0x2c, 0xd6, 0x82, 0x60, 0x41, 0xb0, 0xc1, 0x62, 0xda, 0x99, 0x41, 0x32, 0xf0, 0xd5, 0xdd, 0x21, 0x39, 0x37, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xb8, 0xa1, 0x8e, 0x1f, 0x4e, 0xb1, 0xe3, 0xd0, 0xb0, 0x1b, 0x14, 0x21, 0x83, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0x8b, 0x69, 0x67, 0x06, 0xc9, 0x40, 0xfa, 0xee, 0x90, 0x9c, 0x1b, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x83, 0x25, 0xdb, 0x4e, 0x6b, 0xb0, 0x1c, 0xe8, 0x69, 0x0d, 0xb9, 0xef, 0x0d, 0xd2, 0x42, 0xb3, 0x0f, 0x8d, 0x04, 0xc7, 0xc3, 0x97, 0x93, 0x07, 0x43, 0x11, 0xe9, 0x38, 0x34, 0x08, 0x36, 0x58, 0x80, 0xa9, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xb8, 0x61, 0xe2, 0x36, 0x4c, 0xe7, 0x61, 0x3a, 0x8f, 0x43, 0x87, 0x71, 0x39, 0x1e, 0xaf, 0x20, 0x58, 0xdc, 0x60, 0x4d, 0xc7, 0xd1, 0x41, 0x78, 0xaa, 0x2e, 0x0e, 0x82, 0x05, 0xc1, 0x82, 0x60, 0x83, 0xc5, 0xb4, 0x33, 0x83, 0x64, 0x40, 0xd8, 0xfd, 0x1d, 0x24, 0x26, 0x1a, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xc1, 0x42, 0x13, 0xa3, 0x43, 0xbe, 0xf6, 0x38, 0xb4, 0x41, 0x48, 0x81, 0x0f, 0xd9, 0x60, 0x5c, 0x98, 0x1d, 0x84, 0x00, 0xf8, 0xf1, 0x78, 0x41, 0xb0, 0xf0, 0x0b, 0x82, 0x05, 0xc9, 0xc0, 0x78, 0x1d, 0xb2, 0x15, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x83, 0x01, 0xeb, 0x78, 0x1c, 0x3a, 0xbe, 0x2d, 0x0e, 0x82, 0x05, 0xc1, 0x82, 0x64, 0x20, 0xfd, 0x75, 0x58, 0xa1, 0x3d, 0x34, 0x6a, 0x19, 0x76, 0x83, 0x05, 0xb0, 0x3e, 0x1b, 0x84, 0x00, 0xf8, 0x20, 0xdb, 0x60, 0x29, 0x47, 0xd0, 0x20, 0x58, 0x90, 0x0c, 0x34, 0xff, 0x39, 0xac, 0xd0, 0x1e, 0x8c, 0x28, 0xdc, 0xe3, 0xf1, 0xc2, 0x2f, 0x08, 0x36, 0x18, 0xf9, 0x0f, 0x83, 0x60, 0x83, 0x85, 0x26, 0x46, 0x8b, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x76, 0x61, 0x37, 0x74, 0x1c, 0x59, 0xd8, 0x85, 0xdd, 0x20, 0x18, 0xf6, 0x17, 0x76, 0x83, 0x72, 0xef, 0x70, 0x61, 0x17, 0x6e, 0x83, 0xb5, 0x94, 0x52, 0x87, 0x86, 0x3a, 0x0b, 0xbb, 0xd0, 0x09, 0x9d, 0x0b, 0xbb, 0x70, 0x1b, 0x62, 0x78, 0x70, 0x62, 0xb9, 0x5f, 0xb8, 0x0d, 0x47, 0xfb, 0xc1, 0x99, 0x04, 0xfd, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0xc1, 0xf2, 0xfc, 0xae, 0xc3, 0xd1, 0xbe, 0xc1, 0xf8, 0xe9, 0x1a, 0x04, 0x0b, 0x92, 0x81, 0xa3, 0xef, 0x20, 0xc8, 0xf9, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x0d, 0x06, 0xc9, 0xcb, 0xc1, 0x30, 0xf4, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0xd5, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0x1e, 0x4a, 0x6b, 0x71, 0xd8, 0x85, 0xdd, 0x20, 0x18, 0xf6, 0x17, 0x6e, 0x83, 0x35, 0xdd, 0x52, 0x07, 0xe3, 0xa7, 0xeb, 0x70, 0xb4, 0xaf, 0xc1, 0x72, 0xa5, 0xa9, 0x41, 0xb0, 0x06, 0x6b, 0xba, 0xa5, 0x96, 0x20, 0x9c, 0x83, 0x68, 0x41, 0x76, 0xb0, 0x14, 0x39, 0xeb, 0x60, 0x21, 0xcc, 0xfe, 0xb0, 0x0b, 0xb7, 0xc1, 0x0a, 0x48, 0xa9, 0x43, 0x0f, 0xa1, 0x85, 0x5d, 0xd8, 0x85, 0xdd, 0xa0, 0x40, 0xdf, 0x39, 0xac, 0x6f, 0x6e, 0x88, 0xe1, 0xb0, 0x0b, 0x82, 0x05, 0xc9, 0xe0, 0xdc, 0x20, 0x5a, 0xd8, 0x09, 0xc6, 0xf9, 0x20, 0xc8, 0xf9, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xfc, 0x90, 0x83, 0x94, 0xc1, 0x80, 0xe3, 0xd0, 0x21, 0x9d, 0xbb, 0xc1, 0x12, 0xb3, 0x9d, 0xc3, 0x29, 0x36, 0xc8, 0xd6, 0xd0, 0x7e, 0x7d, 0xb8, 0x0d, 0xd6, 0x52, 0x4a, 0x1d, 0x7a, 0x08, 0x0d, 0xbf, 0x20, 0x5a, 0x70, 0x79, 0x10, 0x2c, 0x48, 0x06, 0xb6, 0xfa, 0x06, 0xd1, 0x06, 0x69, 0xea, 0x03, 0x07, 0x41, 0xce, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x9d, 0xa0, 0x9c, 0x1f, 0x87, 0x8e, 0xc7, 0xc3, 0x2e, 0xec, 0x06, 0x4b, 0xf7, 0xf6, 0x37, 0xc4, 0x70, 0xd8, 0x05, 0xc1, 0x82, 0x60, 0x41, 0x32, 0xb0, 0xd6, 0x77, 0x70, 0x12, 0x3a, 0x1e, 0x24, 0x03, 0xd3, 0x37, 0x88, 0x16, 0xf6, 0xe0, 0x44, 0x11, 0x7d, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x83, 0xc1, 0x3b, 0x79, 0xb0, 0xc4, 0x6c, 0xe7, 0x38, 0xb4, 0x21, 0x86, 0xc3, 0x2e, 0xec, 0xc2, 0x6d, 0x88, 0xe1, 0x20, 0x58, 0x90, 0x0c, 0x3c, 0x75, 0x37, 0x88, 0x16, 0x54, 0x0f, 0x82, 0x05, 0xc1, 0x06, 0x0b, 0x6a, 0xf7, 0x07, 0xc9, 0xe0, 0xd4, 0xc1, 0xaa, 0xdd, 0xfd, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x03, 0x91, 0xfa, 0x60, 0x10, 0xb2, 0x1c, 0x87, 0x06, 0xd1, 0x86, 0x5c, 0xdd, 0x41, 0x90, 0xf3, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x58, 0x64, 0xae, 0x7f, 0x30, 0x08, 0x59, 0x8e, 0x43, 0x87, 0xf5, 0xcd, 0x43, 0x3a, 0x77, 0x83, 0x41, 0xa2, 0x71, 0x38, 0xc5, 0x06, 0xd9, 0x1a, 0xf2, 0xd8, 0x8b, 0x83, 0x60, 0x41, 0x32, 0x90, 0xfa, 0x3b, 0x08, 0x72, 0xfe, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0xc7, 0x00, 0x0f, 0xb3, 0x34, 0xb9, 0xb2, 0x16, 0xba, 0x3c, 0xb8, 0xf2, 0x38, 0x74, 0x3c, 0x1e, 0x64, 0x6b, 0xc8, 0x63, 0x2f, 0x6e, 0xc8, 0x7d, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x8e, 0x83, 0x97, 0x83, 0xe3, 0x83, 0xc3, 0x83, 0x97, 0x83, 0x8f, 0x83, 0xd3, 0x83, 0x97, 0x83, 0x93, 0x83, 0xb6, 0xc1, 0xcd, 0xc1, 0xdf, 0xc1, 0xe5, 0xc1, 0xd7, 0x41, 0xdb, 0xe0, 0xf4, 0xe0, 0xef, 0xa0, 0x6d, 0x70, 0x71, 0xf0, 0x72, 0xd0, 0x36, 0xf8, 0x38, 0xf8, 0x7b, 0x70, 0xd2, 0x29, 0x39, 0xbe, 0x1d, 0x8f, 0x07, 0xd9, 0x1a, 0xf2, 0xd8, 0x8b, 0x83, 0x60, 0x41, 0x32, 0x90, 0xfa, 0x3b, 0x58, 0x2a, 0xbe, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x18, 0xe0, 0x61, 0xf6, 0x26, 0xb7, 0xd6, 0x42, 0x97, 0x07, 0x57, 0x1e, 0x87, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x79, 0xec, 0x31, 0xc0, 0xc3, 0x2c, 0x4d, 0xae, 0xac, 0x65, 0xec, 0x4d, 0xae, 0x3c, 0x9c, 0x62, 0xc7, 0xe3, 0xe3, 0xd0, 0x71, 0xe8, 0x78, 0xbc, 0xc2, 0x2f, 0x08, 0x16, 0x17, 0x76, 0xe1, 0x36, 0x58, 0xdf, 0x60, 0x74, 0x48, 0xd5, 0x6c, 0xb0, 0xbe, 0xc1, 0x68, 0xd8, 0x85, 0xdb, 0x60, 0xa1, 0x89, 0xd1, 0x21, 0x55, 0xb3, 0xc1, 0x42, 0x13, 0xa3, 0x61, 0x17, 0x76, 0x83, 0xe2, 0xb2, 0x69, 0xe1, 0x36, 0x58, 0x78, 0x61, 0x74, 0xc8, 0xda, 0x1d, 0x8e, 0xf6, 0x05, 0xc1, 0x06, 0xcb, 0xb8, 0x04, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xc5, 0xa2, 0x85, 0xdf, 0x78, 0x3e, 0x06, 0x34, 0x61, 0x74, 0x6f, 0x6d, 0x60, 0x43, 0x0b, 0xa0, 0x0d, 0x52, 0xc3, 0x4e, 0x16, 0x7e, 0xe3, 0xf9, 0xb0, 0x1b, 0x04, 0x49, 0xf3, 0x06, 0xc9, 0x43, 0xcc, 0x87, 0x66, 0x49, 0x07, 0x03, 0x3f, 0xe4, 0x38, 0x34, 0xec, 0xc2, 0x6e, 0x50, 0x5c, 0x36, 0x2d, 0xdc, 0x06, 0x0b, 0x67, 0x8c, 0x0e, 0x59, 0xbb, 0xc3, 0xd1, 0xbe, 0x20, 0xd8, 0x60, 0x19, 0x97, 0xc0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa1, 0x58, 0xb4, 0xf0, 0x1b, 0xcf, 0xc7, 0x80, 0x66, 0xac, 0x8c, 0x8d, 0x0d, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x39, 0x94, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x3d, 0xb4, 0x00, 0x3a, 0x0e, 0x6d, 0x90, 0x1a, 0x76, 0xb2, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xe5, 0x50, 0xd2, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0xd0, 0xf0, 0xeb, 0x38, 0x74, 0x30, 0xf0, 0x43, 0x8e, 0x43, 0xc3, 0x2e, 0xec, 0x06, 0xc5, 0x65, 0xd3, 0xc2, 0x6d, 0xb0, 0x90, 0x5e, 0xea, 0x90, 0xb5, 0x3b, 0x1c, 0xed, 0x0b, 0x82, 0x0d, 0x96, 0x71, 0x09, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x8a, 0x45, 0x0b, 0xbf, 0xf1, 0x7c, 0x0c, 0x68, 0xcc, 0xc2, 0xc6, 0xca, 0xc0, 0xc2, 0x6f, 0x3c, 0x1f, 0x76, 0x83, 0xb4, 0x44, 0xeb, 0x0d, 0x3d, 0x84, 0x0e, 0x16, 0x66, 0xf2, 0x1f, 0xac, 0x0d, 0xe5, 0x3f, 0x0e, 0x0d, 0xbb, 0xb0, 0x1b, 0x14, 0x97, 0x4d, 0x0b, 0xb7, 0xc1, 0x52, 0x86, 0xa9, 0x43, 0xd6, 0xee, 0x70, 0xb4, 0x2f, 0x08, 0x36, 0x58, 0xc6, 0x25, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x28, 0x16, 0x2d, 0xfc, 0xc6, 0xf3, 0x31, 0xa0, 0x31, 0x7b, 0x93, 0x5b, 0x03, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x50, 0x0e, 0x25, 0x1d, 0xf6, 0x78, 0x0f, 0x06, 0x7e, 0xc8, 0x71, 0x68, 0xd8, 0x85, 0xdd, 0xa0, 0xb8, 0x6c, 0x5a, 0xb8, 0x0d, 0x96, 0xa6, 0x4c, 0x1d, 0xb2, 0x76, 0x87, 0xa3, 0x7d, 0x41, 0xb0, 0xc1, 0x32, 0x2e, 0x81, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x43, 0xb1, 0x68, 0xe1, 0x37, 0x9e, 0x8f, 0x01, 0x0d, 0x5a, 0x9a, 0x1b, 0x1d, 0x38, 0x58, 0x7b, 0xc9, 0x7f, 0x1c, 0x1a, 0x76, 0x61, 0x37, 0x28, 0x2e, 0x9b, 0x16, 0x6e, 0x83, 0xe5, 0x4a, 0x53, 0x87, 0xac, 0xdd, 0xe1, 0x68, 0x5f, 0x10, 0x6c, 0xb0, 0x8c, 0x4b, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x50, 0x2c, 0x5a, 0xf8, 0x8d, 0xe7, 0x63, 0x40, 0x83, 0xf6, 0xc6, 0x46, 0x06, 0x0e, 0xd6, 0x5e, 0xf2, 0x1f, 0x87, 0x06, 0xd9, 0x1a, 0xda, 0xaf, 0x0f, 0xbb, 0x41, 0x71, 0xd9, 0xb4, 0x70, 0x1b, 0xac, 0xe9, 0x96, 0x3a, 0x64, 0xed, 0x0e, 0x47, 0xfb, 0x20, 0xd8, 0x60, 0x19, 0x97, 0xc0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa1, 0x58, 0x34, 0xfc, 0xc6, 0xf3, 0xc5, 0x80, 0x66, 0xec, 0x4d, 0xae, 0x0c, 0x6c, 0xb0, 0x30, 0x93, 0x7f, 0x83, 0x84, 0xb2, 0x93, 0x85, 0x5d, 0xb8, 0x0d, 0x31, 0x3c, 0x58, 0x24, 0xfe, 0xb3, 0x41, 0xf2, 0x10, 0xf3, 0x04, 0x93, 0xbd, 0x41, 0x42, 0xd9, 0xc9, 0x12, 0x8c, 0xf6, 0x06, 0x09, 0x65, 0x27, 0x4b, 0x30, 0xdb, 0x1b, 0x24, 0x94, 0x9d, 0x2c, 0x08, 0x36, 0x28, 0x87, 0x92, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x07, 0xc9, 0x1a, 0x08, 0xc7, 0xa1, 0x0d, 0x12, 0xca, 0x4e, 0x16, 0x04, 0x1b, 0x94, 0x43, 0x49, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x83, 0x84, 0x1c, 0x84, 0xe3, 0xd0, 0x21, 0x86, 0xc7, 0xa1, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0x32, 0x10, 0xba, 0x83, 0xf1, 0xae, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0x50, 0x6f, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0xe8, 0xdc, 0x77, 0x30, 0xfc, 0x63, 0x0f, 0x8d, 0x5a, 0x8e, 0x43, 0xc7, 0xe3, 0x83, 0x92, 0xa1, 0x69, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0xf8, 0x73, 0x69, 0x6e, 0xeb, 0x21, 0xb5, 0x74, 0x3c, 0x5e, 0x41, 0xb0, 0xc1, 0x42, 0x13, 0xa3, 0xc5, 0x61, 0x17, 0x04, 0x1b, 0x24, 0xc4, 0x00, 0x1c, 0x24, 0x07, 0x5e, 0x6c, 0x88, 0xe1, 0xb0, 0x0b, 0x82, 0x05, 0xc9, 0xe0, 0xdc, 0x41, 0x7a, 0x51, 0xc2, 0xc1, 0x49, 0x90, 0xf8, 0x90, 0xce, 0x3d, 0x1e, 0x2f, 0x08, 0x16, 0x67, 0x0e, 0xd3, 0xb9, 0x38, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x81, 0x78, 0x1d, 0x92, 0x4b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x7e, 0xb0, 0xb4, 0xdc, 0xe8, 0xd0, 0x43, 0xe8, 0x38, 0x34, 0xec, 0x06, 0x8b, 0x3c, 0x82, 0x36, 0x08, 0x4c, 0xec, 0x41, 0xb6, 0x86, 0xf6, 0xeb, 0x07, 0x0b, 0x60, 0x7d, 0x86, 0x5f, 0x10, 0x2c, 0x48, 0x06, 0xde, 0xfb, 0x3b, 0xac, 0xd0, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x34, 0x12, 0x1c, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0xa1, 0x89, 0xd1, 0xe2, 0xb0, 0x1b, 0x92, 0x1d, 0x0b, 0x82, 0x05, 0xc9, 0xc0, 0x57, 0x77, 0x83, 0x68, 0x83, 0x11, 0x41, 0x75, 0x10, 0xe4, 0xfc, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x83, 0x31, 0xb0, 0x70, 0x1c, 0x1a, 0x04, 0x0b, 0x92, 0x81, 0xb3, 0xee, 0x60, 0x45, 0x73, 0xff, 0xc1, 0xca, 0xe8, 0xfe, 0xe3, 0xf1, 0x71, 0xe8, 0x78, 0x7e, 0x3c, 0x5e, 0x90, 0x6d, 0x88, 0xcb, 0x20, 0x58, 0xd8, 0x85, 0xdd, 0xd0, 0x71, 0x64, 0x83, 0x15, 0xca, 0x52, 0x87, 0xa3, 0x7d, 0x0d, 0x16, 0xce, 0x18, 0x2d, 0x48, 0x06, 0xc6, 0xea, 0x20, 0x24, 0xbe, 0x07, 0xc9, 0xc0, 0x58, 0x1d, 0x2c, 0xa8, 0xdb, 0x19, 0x76, 0x61, 0x37, 0x74, 0x1c, 0xd9, 0x60, 0x1d, 0xb7, 0xd4, 0xe1, 0x68, 0x5f, 0x83, 0x35, 0xdd, 0x52, 0x1b, 0xac, 0x72, 0xef, 0xdf, 0xd0, 0x49, 0x6d, 0x41, 0x32, 0x30, 0x56, 0x83, 0x68, 0x61, 0x0f, 0x4d, 0xb8, 0x8e, 0xc7, 0x0b, 0xbb, 0xb0, 0x0b, 0x3d, 0x34, 0xe3, 0x59, 0xd8, 0x85, 0x4e, 0x30, 0xbc, 0x0b, 0xbb, 0x70, 0x1b, 0x2c, 0x47, 0x9d, 0x9a, 0xa0, 0xf0, 0x2e, 0xdc, 0x86, 0x18, 0x4e, 0x50, 0x79, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x1b, 0x9a, 0xf1, 0x1c, 0xac, 0x4d, 0xa2, 0x3a, 0x18, 0xa7, 0xca, 0xc3, 0x2e, 0xec, 0x86, 0x8e, 0x23, 0x1b, 0x2c, 0x9e, 0x97, 0x3a, 0x1c, 0xed, 0x6b, 0xb0, 0x90, 0x5e, 0x6a, 0x43, 0x23, 0xc1, 0x83, 0x25, 0xf2, 0xfd, 0xc3, 0x2e, 0xec, 0x86, 0x8e, 0x23, 0x1b, 0x2c, 0x5f, 0x98, 0x3a, 0x1c, 0xed, 0x6b, 0xb0, 0x94, 0x61, 0x6a, 0x10, 0x2c, 0x08, 0x36, 0x18, 0x4f, 0xa2, 0x83, 0x64, 0x60, 0xfc, 0x0e, 0x7d, 0x35, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x2c, 0x34, 0x31, 0x5a, 0x1c, 0x24, 0x03, 0x63, 0x75, 0x90, 0x5e, 0x94, 0x70, 0x3c, 0x3e, 0x0e, 0x0d, 0xbb, 0xb0, 0x1b, 0x3a, 0x8e, 0x6c, 0xb0, 0x1c, 0x65, 0xea, 0x70, 0xb4, 0x2f, 0x08, 0x16, 0x24, 0x03, 0x67, 0xdf, 0x61, 0x85, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x17, 0x24, 0x03, 0x63, 0x35, 0x88, 0x16, 0xf6, 0x60, 0x78, 0x51, 0x1c, 0x8f, 0x0f, 0x86, 0xe9, 0xc4, 0xf0, 0x1b, 0xcf, 0x0f, 0x96, 0xc8, 0xf7, 0x1f, 0x87, 0x86, 0x5d, 0xd8, 0x0d, 0x1d, 0x47, 0x16, 0x6e, 0x83, 0xe5, 0x4a, 0x53, 0x87, 0x68, 0x1e, 0x8e, 0xf6, 0x35, 0x58, 0xae, 0x34, 0xb5, 0xc1, 0x2a, 0xf7, 0xfe, 0x83, 0xa0, 0xf4, 0x1e, 0x64, 0x1b, 0x9a, 0xaf, 0x1f, 0x52, 0x07, 0xc3, 0x6e, 0xe8, 0x05, 0x73, 0xe8, 0x0a, 0xb3, 0x20, 0x58, 0xdc, 0x30, 0x9d, 0x1b, 0x0e, 0x85, 0x16, 0x87, 0xdd, 0x60, 0xac, 0xa3, 0x6d, 0x88, 0xe1, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x06, 0x04, 0xdd, 0xdf, 0x21, 0xb9, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xb5, 0xdb, 0xd0, 0x43, 0xe8, 0x60, 0xad, 0x53, 0xff, 0x71, 0x68, 0xd8, 0x85, 0x5d, 0xe8, 0xa1, 0x63, 0xd8, 0xc2, 0x2e, 0xf4, 0xd0, 0x2c, 0x69, 0x61, 0x17, 0x6e, 0x43, 0x0c, 0x0f, 0xc2, 0x9e, 0x7a, 0xe1, 0x36, 0xc4, 0xf0, 0xa0, 0xc4, 0x1e, 0x3c, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x6f, 0x1c, 0x1a, 0x76, 0x61, 0x37, 0x58, 0x86, 0xe9, 0xbf, 0xb0, 0x1b, 0xac, 0xda, 0xf4, 0xdf, 0x60, 0x91, 0xa7, 0xff, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x6b, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xed, 0x41, 0x89, 0x3d, 0x78, 0x3c, 0x1f, 0x76, 0x61, 0x37, 0x58, 0x86, 0xe9, 0xbf, 0xb0, 0x1b, 0xac, 0xda, 0xf4, 0x3f, 0x58, 0x1e, 0xea, 0x7f, 0x38, 0xda, 0xd7, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xdb, 0x83, 0xb0, 0xa7, 0x3e, 0x9e, 0x0f, 0xb2, 0x35, 0xb4, 0x5f, 0x1f, 0x76, 0x83, 0x65, 0x98, 0xfe, 0x1b, 0xac, 0xda, 0xf4, 0x3f, 0x1c, 0xed, 0x1b, 0x87, 0x36, 0x58, 0x85, 0xec, 0x7f, 0xb0, 0xe8, 0xd6, 0xff, 0x78, 0x3c, 0xfc, 0x82, 0x60, 0x83, 0x35, 0x2d, 0x47, 0x8b, 0x1b, 0x2c, 0xa4, 0x97, 0x5a, 0x43, 0x0c, 0x0f, 0x8a, 0x45, 0xb2, 0xc3, 0x5e, 0xe1, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0xf8, 0x62, 0x75, 0x73, 0xeb, 0x21, 0xb5, 0x74, 0x3c, 0x5e, 0x10, 0x6c, 0xb0, 0xd0, 0xc4, 0x68, 0x71, 0x10, 0x2c, 0xfc, 0x82, 0x60, 0x41, 0x32, 0xb0, 0xd2, 0x77, 0x30, 0x0c, 0x7d, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x2c, 0xbc, 0xf7, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x38, 0xbb, 0xcb, 0x1d, 0x04, 0xbc, 0xff, 0x71, 0xe8, 0x38, 0x74, 0x7c, 0x1b, 0x04, 0x8b, 0x0b, 0xbb, 0x70, 0x1b, 0xf6, 0x0a, 0x0f, 0xc6, 0x9b, 0xce, 0x82, 0x60, 0x41, 0x32, 0x38, 0x37, 0x88, 0x16, 0xf6, 0x60, 0x7d, 0x83, 0xd1, 0x21, 0x5b, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x6c, 0xb8, 0x1e, 0x0c, 0xde, 0xc9, 0xe3, 0xd0, 0xb0, 0x0b, 0xb7, 0xc1, 0xfa, 0x06, 0xa3, 0x83, 0xf1, 0xa6, 0xb3, 0x21, 0x86, 0xc3, 0x2e, 0xdc, 0x06, 0x0b, 0x4d, 0x8c, 0x0e, 0xc6, 0x9b, 0xce, 0x82, 0x60, 0x83, 0x85, 0x16, 0xff, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xc6, 0x86, 0xeb, 0x41, 0x60, 0x62, 0x1f, 0x87, 0x86, 0x5d, 0xd8, 0x0d, 0x86, 0x32, 0xeb, 0xc2, 0x6d, 0xb0, 0xf0, 0xc2, 0xe8, 0x20, 0x48, 0xf1, 0x0f, 0x47, 0xfb, 0x06, 0xe5, 0x50, 0xd2, 0xb0, 0x0b, 0xbb, 0xc1, 0x50, 0x66, 0x5d, 0xb8, 0x0d, 0x16, 0xce, 0x18, 0x1d, 0x04, 0x29, 0xfe, 0xe1, 0x68, 0xdf, 0xa0, 0x1c, 0x4a, 0x1a, 0x76, 0x61, 0x37, 0x18, 0xca, 0xac, 0x0b, 0xb7, 0xc1, 0x9a, 0x6e, 0xa9, 0x83, 0x20, 0xc5, 0x3f, 0x1c, 0xed, 0x0b, 0x92, 0xe1, 0x06, 0xd1, 0x82, 0xfb, 0x07, 0xeb, 0x98, 0xf5, 0x8f, 0xc7, 0xc3, 0x2e, 0xec, 0x06, 0x43, 0x99, 0x75, 0xe1, 0x36, 0x58, 0xca, 0x30, 0x75, 0x10, 0xa4, 0xf8, 0x87, 0xa3, 0x7d, 0x41, 0xb0, 0x20, 0x19, 0x68, 0xde, 0x77, 0x30, 0x1c, 0xa5, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0xd6, 0xfa, 0x0e, 0x86, 0xa3, 0xf4, 0x20, 0x19, 0x08, 0xdd, 0xc1, 0xa2, 0x4f, 0xb1, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x16, 0x9a, 0x18, 0x2d, 0x0e, 0x92, 0x61, 0x06, 0xd1, 0x82, 0xfb, 0x87, 0xd4, 0xc1, 0x21, 0xb9, 0x74, 0x3c, 0x3e, 0x0e, 0x0d, 0xbb, 0xb0, 0x1b, 0x0c, 0x65, 0xd6, 0x85, 0xdb, 0x60, 0x21, 0xbd, 0xd4, 0x41, 0x90, 0xe2, 0x1f, 0x8e, 0xf6, 0x05, 0xc9, 0x30, 0x83, 0x68, 0x83, 0xe1, 0x81, 0x7e, 0x3c, 0x1e, 0x76, 0x61, 0x37, 0x18, 0xca, 0xac, 0x0b, 0xb7, 0xc1, 0xd2, 0x94, 0xa9, 0x83, 0x20, 0xc5, 0x3f, 0x1c, 0xed, 0x1b, 0x2c, 0xa9, 0xfc, 0x1f, 0x64, 0x6b, 0x68, 0xbf, 0x3e, 0xec, 0x06, 0x43, 0x99, 0x75, 0xe1, 0x36, 0x58, 0xae, 0x34, 0x75, 0x10, 0xa4, 0xf8, 0x87, 0xa3, 0x7d, 0x10, 0x2c, 0x08, 0x16, 0x04, 0x1b, 0xac, 0xb2, 0xfb, 0x3f, 0x18, 0x9a, 0x54, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x6f, 0x30, 0xde, 0x74, 0x36, 0xec, 0x15, 0x1e, 0x62, 0x78, 0x1c, 0x1a, 0x76, 0x41, 0xb0, 0x20, 0xd8, 0x60, 0x41, 0xed, 0xfe, 0x20, 0x19, 0x98, 0xbe, 0x83, 0xb1, 0xbe, 0x7a, 0x30, 0xb0, 0x45, 0x37, 0xc4, 0x70, 0x90, 0x0c, 0x33, 0x88, 0x16, 0xdc, 0x3f, 0x58, 0x1f, 0xe9, 0x30, 0x88, 0x16, 0x76, 0x10, 0x2c, 0x08, 0x36, 0x58, 0x50, 0xbb, 0x3f, 0x48, 0x06, 0xa7, 0x0e, 0xc6, 0xfa, 0xea, 0xc1, 0xc0, 0x16, 0x3d, 0x9e, 0x0f, 0xbb, 0xb0, 0x0b, 0x3d, 0xec, 0x15, 0x2e, 0xdc, 0x06, 0x0b, 0x2f, 0x8c, 0x0e, 0xf1, 0x3f, 0x1c, 0xed, 0x0b, 0xbb, 0xc1, 0x32, 0x9e, 0xff, 0x85, 0x5d, 0xe8, 0xa1, 0xe1, 0xd7, 0xc2, 0x2e, 0xf4, 0x60, 0x0c, 0x2c, 0x2c, 0xec, 0xc2, 0x2e, 0xdc, 0x86, 0x86, 0x5f, 0x07, 0x63, 0x60, 0xe1, 0xb0, 0xbe, 0x79, 0x48, 0xe7, 0x1e, 0x8e, 0xf6, 0xc3, 0xd1, 0x7e, 0x88, 0xe1, 0xb0, 0x0b, 0xbb, 0xc1, 0x1a, 0xf0, 0xff, 0x85, 0xdb, 0x60, 0xe1, 0x8c, 0xd1, 0x21, 0xfe, 0x87, 0xa3, 0x7d, 0x61, 0x37, 0x58, 0x7b, 0xf4, 0xbf, 0xb0, 0x0b, 0x92, 0x61, 0x06, 0xd1, 0x06, 0x23, 0xdf, 0xfc, 0xa0, 0xd0, 0x1a, 0xd8, 0x10, 0xc3, 0x61, 0x17, 0x24, 0xc3, 0x0c, 0xa2, 0x0d, 0x86, 0x07, 0xfa, 0x41, 0x21, 0xa5, 0x72, 0x48, 0xe7, 0x1e, 0x62, 0x38, 0xc8, 0x36, 0x34, 0x5f, 0x1f, 0x24, 0xc3, 0x0c, 0xa2, 0x05, 0xf7, 0x0f, 0x7b, 0x85, 0x83, 0x68, 0xc1, 0xfc, 0x60, 0xbc, 0xe9, 0x1c, 0x8f, 0x0f, 0x4a, 0x86, 0xa6, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x41, 0xb0, 0x78, 0xb0, 0xc4, 0x59, 0x7f, 0x71, 0x10, 0x2c, 0x08, 0x56, 0x10, 0x2c, 0x48, 0x06, 0xe2, 0x75, 0xc8, 0x56, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xc1, 0x62, 0x64, 0xa3, 0x43, 0xb2, 0xe3, 0x38, 0x34, 0x08, 0x16, 0x24, 0x03, 0xf1, 0x1a, 0x44, 0x1b, 0x0c, 0x3b, 0xdc, 0x43, 0xb6, 0xe2, 0xa0, 0x8d, 0x0d, 0x80, 0x61, 0x17, 0x6e, 0xc3, 0xd1, 0x7e, 0x50, 0x50, 0x14, 0x2d, 0xec, 0xc2, 0x2e, 0xdc, 0x86, 0xa3, 0xfd, 0x20, 0xc8, 0xe2, 0x17, 0x76, 0x83, 0x71, 0xc8, 0x74, 0x48, 0xe7, 0x1e, 0x8e, 0xf6, 0x95, 0x30, 0x39, 0x08, 0xdc, 0xf8, 0xc3, 0x29, 0x36, 0xec, 0x06, 0x0b, 0xb5, 0xb8, 0x16, 0x04, 0x0b, 0x92, 0x81, 0xe3, 0xee, 0x20, 0xc8, 0xf9, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x83, 0xb3, 0x69, 0xf8, 0xc1, 0x60, 0x8d, 0xdd, 0xb0, 0xf6, 0x7b, 0x10, 0x22, 0xfe, 0xc7, 0xa1, 0xc3, 0x29, 0x36, 0xec, 0xc2, 0x6e, 0xb0, 0x74, 0x6f, 0x7f, 0x43, 0x0c, 0x87, 0x5d, 0x10, 0x2c, 0x48, 0x06, 0xe7, 0x0e, 0x96, 0x8a, 0xef, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xf8, 0x21, 0x87, 0x68, 0x1e, 0x87, 0x0e, 0xe9, 0xdc, 0x83, 0xb1, 0x30, 0x7a, 0x3c, 0x5e, 0x10, 0x2c, 0x08, 0x36, 0x58, 0x23, 0xda, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x51, 0x0e, 0x80, 0x43, 0xd6, 0xee, 0x38, 0x34, 0xec, 0x06, 0x8b, 0x3c, 0x82, 0x16, 0x64, 0x6b, 0xc8, 0x63, 0x8f, 0x07, 0x69, 0x66, 0xde, 0xc3, 0x6e, 0x58, 0x41, 0xdd, 0x20, 0xc8, 0xe2, 0x0f, 0xa7, 0xd8, 0x20, 0xd8, 0x20, 0x3d, 0x91, 0xe5, 0x20, 0xc1, 0x2b, 0x68, 0x10, 0x6c, 0xb0, 0xd0, 0xc4, 0x68, 0x71, 0x10, 0x2c, 0x08, 0x36, 0x68, 0x1e, 0x03, 0x60, 0xd8, 0x0d, 0x16, 0x79, 0x04, 0x2d, 0xc8, 0x36, 0x68, 0x73, 0x09, 0x60, 0xd8, 0x0d, 0xc6, 0x21, 0xd3, 0x06, 0x21, 0x00, 0x7e, 0x38, 0xc5, 0x06, 0xc1, 0x82, 0x64, 0x60, 0xfd, 0xef, 0x20, 0xc8, 0xf9, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xc6, 0xe5, 0x20, 0x44, 0xfc, 0x8f, 0x43, 0xc3, 0x2e, 0xec, 0x06, 0x4b, 0xf7, 0xf6, 0x37, 0xc4, 0x70, 0xd8, 0x05, 0xc1, 0x82, 0x64, 0x70, 0x6e, 0x10, 0x6d, 0xe8, 0xe6, 0x72, 0x10, 0xe4, 0xfc, 0x07, 0x6d, 0xf9, 0x00, 0x1c, 0xd2, 0xb9, 0x07, 0x63, 0x61, 0xf4, 0x78, 0x7c, 0x3c, 0x1e, 0x7e, 0x41, 0xb0, 0xb8, 0xc1, 0x9a, 0x61, 0xa3, 0x16, 0x07, 0xd9, 0x1a, 0xf2, 0xd8, 0x8b, 0x83, 0x60, 0x83, 0xb1, 0x94, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xe3, 0xe0, 0xe3, 0x41, 0xf9, 0x15, 0xb6, 0xf0, 0x1b, 0xcf, 0x0f, 0xd6, 0x31, 0x83, 0x1d, 0xd6, 0x7e, 0x8f, 0x43, 0xc7, 0xe3, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0x7c, 0xfd, 0x77, 0x48, 0x2e, 0x1d, 0x12, 0xad, 0xc3, 0x2e, 0xec, 0x06, 0xa3, 0x63, 0xfd, 0xb0, 0xbe, 0xb9, 0xe1, 0x14, 0x1b, 0x76, 0x83, 0x05, 0xb0, 0x3e, 0x1b, 0x84, 0x9b, 0xfb, 0x20, 0xdb, 0x60, 0x29, 0x47, 0xd0, 0xb0, 0x1b, 0xb4, 0x76, 0x02, 0xb0, 0x86, 0xa3, 0xfd, 0x60, 0xb0, 0xc6, 0x0e, 0xb2, 0x35, 0xb4, 0x5f, 0x3f, 0x58, 0xa8, 0xc5, 0x75, 0x38, 0xc5, 0x8e, 0xc7, 0x07, 0x05, 0x52, 0xd8, 0xc2, 0x6e, 0xb0, 0xe0, 0xbe, 0x7f, 0x0d, 0x16, 0xce, 0x18, 0x6d, 0xb0, 0xd0, 0xc4, 0xe8, 0xd0, 0x48, 0x70, 0xd8, 0x0d, 0x56, 0x89, 0xf8, 0x6f, 0x10, 0x94, 0xde, 0xc3, 0x6e, 0xb0, 0x9e, 0xc9, 0x7f, 0x83, 0xa0, 0xf4, 0x1e, 0x76, 0x83, 0xe5, 0x69, 0xfe, 0x0b, 0x82, 0x05, 0xc9, 0xc0, 0x5a, 0xdf, 0xf1, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x0d, 0x46, 0x78, 0xda, 0x21, 0x86, 0xc7, 0xa1, 0x61, 0x37, 0x58, 0x5c, 0x62, 0xb4, 0x20, 0x58, 0x90, 0x0c, 0x1c, 0x7d, 0x87, 0x15, 0xda, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x8b, 0x43, 0xf5, 0x37, 0x58, 0xac, 0xac, 0x7f, 0x30, 0xf0, 0x43, 0x8e, 0x43, 0x83, 0x6c, 0x43, 0xf3, 0xf5, 0x41, 0xb6, 0x86, 0x3c, 0xf6, 0x18, 0xe0, 0x21, 0x57, 0x06, 0xf7, 0xd6, 0x62, 0xc6, 0x46, 0x47, 0x1f, 0x4e, 0xb1, 0x15, 0x7e, 0x41, 0xb0, 0x78, 0xb0, 0xcc, 0xb3, 0x7f, 0x71, 0x10, 0xac, 0xf0, 0x1b, 0x2c, 0x02, 0xf8, 0x3f, 0xbe, 0x6d, 0xd0, 0x6e, 0x2b, 0xc0, 0xf0, 0x0b, 0x82, 0x0d, 0x16, 0xde, 0xfb, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0xcf, 0x02, 0x60, 0x71, 0x10, 0xac, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x83, 0xe5, 0x07, 0xff, 0x87, 0x34, 0xdc, 0x20, 0xd8, 0xa0, 0xd9, 0x5b, 0x80, 0x43, 0x07, 0x8d, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x71, 0xe8, 0xf8, 0x36, 0xfc, 0x82, 0x60, 0x71, 0x61, 0x37, 0x18, 0x21, 0x51, 0x0b, 0xbb, 0x20, 0x19, 0xd4, 0x0d, 0xa2, 0x05, 0xf7, 0x0f, 0x6b, 0xbf, 0x83, 0x68, 0x41, 0xfb, 0xc1, 0x78, 0xd3, 0x39, 0x1e, 0x1f, 0xd2, 0xb9, 0x87, 0xa3, 0x7d, 0x41, 0xb0, 0xb8, 0xc1, 0x92, 0x0c, 0xa8, 0x83, 0x25, 0x19, 0x50, 0x8b, 0xc3, 0x2e, 0xec, 0x86, 0x74, 0xe6, 0x86, 0x18, 0x0e, 0xbb, 0x70, 0x1b, 0xac, 0x21, 0xcf, 0x3a, 0x44, 0x73, 0x43, 0x0c, 0x87, 0x5d, 0xb8, 0x0d, 0x96, 0x22, 0x67, 0x1d, 0xc6, 0xe5, 0x90, 0xce, 0x5d, 0xd8, 0x0d, 0xda, 0x6b, 0x06, 0xd8, 0x10, 0xc3, 0x61, 0x17, 0x6e, 0x83, 0xa5, 0xc8, 0x59, 0x87, 0x68, 0x6e, 0x70, 0x0e, 0xfe, 0x1e, 0x76, 0xe1, 0x36, 0x58, 0x5c, 0x9d, 0x75, 0x88, 0xe6, 0x82, 0x64, 0x50, 0x37, 0x88, 0x16, 0xdc, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0xe3, 0x6f, 0x10, 0x2d, 0xec, 0x41, 0x88, 0xf8, 0x1f, 0x04, 0xbc, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x1f, 0xac, 0xb9, 0x36, 0x3a, 0x34, 0x9e, 0x3f, 0x0e, 0x0d, 0xa2, 0x05, 0xed, 0x83, 0x60, 0x41, 0x32, 0x70, 0xfc, 0x1d, 0x04, 0xbc, 0xff, 0x41, 0xfb, 0xe0, 0x00, 0x87, 0xe4, 0xd2, 0x20, 0x5b, 0x43, 0xfb, 0xf5, 0xe1, 0x36, 0x58, 0x34, 0x9c, 0x75, 0x88, 0xe6, 0x20, 0x19, 0xd4, 0x0d, 0xa2, 0x05, 0xf7, 0x07, 0xc1, 0x06, 0x0d, 0x9c, 0x03, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x68, 0x94, 0x03, 0xe0, 0xd0, 0x78, 0xfe, 0x38, 0x34, 0x88, 0x16, 0xb4, 0x0f, 0x82, 0x0d, 0xda, 0xea, 0x06, 0x38, 0x68, 0x2b, 0x1e, 0xe0, 0x90, 0x5c, 0x3a, 0x1c, 0xed, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0xb0, 0x1b, 0xf2, 0x58, 0x1b, 0x94, 0xa1, 0x52, 0xc3, 0x6e, 0xd8, 0x35, 0xd8, 0x70, 0xb4, 0x0f, 0xbb, 0x70, 0x4b, 0x28, 0x3c, 0x18, 0x5e, 0x14, 0x0b, 0xbb, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0xd0, 0x06, 0xf4, 0x78, 0xbc, 0xb0, 0x0b, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x58, 0x08, 0xb3, 0x7f, 0x30, 0x32, 0x7b, 0x8f, 0xc7, 0x0b, 0xbb, 0x20, 0x58, 0x09, 0x1f, 0x0f, 0xc6, 0x9a, 0xca, 0x20, 0x58, 0x1c, 0x76, 0x43, 0x1e, 0x6b, 0x83, 0x32, 0x54, 0x6a, 0xd8, 0x0d, 0xbb, 0x06, 0x1b, 0x8e, 0xf6, 0x61, 0x37, 0x68, 0x07, 0x20, 0x60, 0x61, 0x37, 0x68, 0x4f, 0x20, 0x60, 0x61, 0x37, 0x68, 0xb3, 0x20, 0x60, 0x61, 0x17, 0x24, 0x83, 0xba, 0x41, 0xb4, 0xe0, 0xfe, 0x20, 0x58, 0x90, 0x0c, 0xa4, 0xef, 0x0e, 0x86, 0xa1, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xc2, 0xe3, 0xe3, 0xd0, 0x20, 0x5a, 0xd0, 0x3e, 0x08, 0x16, 0x24, 0x03, 0xe9, 0xbb, 0x41, 0xb4, 0xb0, 0x07, 0xeb, 0x54, 0x1a, 0x0e, 0x86, 0xa1, 0xcf, 0xc1, 0xba, 0x31, 0xa6, 0x43, 0xb6, 0xe2, 0x90, 0xce, 0x3d, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x1f, 0xdf, 0x0e, 0xe9, 0xdc, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0xf1, 0x78, 0xe1, 0x17, 0x04, 0x8b, 0x83, 0x60, 0x61, 0x17, 0x6e, 0x83, 0xc1, 0x3b, 0x79, 0x48, 0xcc, 0x6c, 0x88, 0xe1, 0xb0, 0x0b, 0xb7, 0xc1, 0xfa, 0x06, 0xa3, 0x83, 0xc1, 0x3b, 0xb9, 0x20, 0x19, 0xf4, 0x1d, 0xcf, 0x87, 0x5d, 0xb8, 0x0d, 0x16, 0x9a, 0x18, 0x1d, 0x0c, 0xde, 0xc9, 0x0d, 0x31, 0x1c, 0x76, 0x61, 0x17, 0x7a, 0x30, 0x78, 0x27, 0x17, 0x6e, 0x83, 0x85, 0x17, 0x46, 0x07, 0xa3, 0xd5, 0xfc, 0x70, 0xb4, 0x2f, 0xec, 0xc2, 0x2e, 0xf4, 0x90, 0x98, 0x59, 0xb8, 0x0d, 0x16, 0x5e, 0x18, 0x1d, 0x84, 0x7c, 0xf6, 0xe1, 0x68, 0x5f, 0xd8, 0x05, 0xc1, 0x82, 0x64, 0xc0, 0xe0, 0xea, 0x3b, 0x18, 0x86, 0x3e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xd2, 0x1b, 0x1b, 0x0e, 0x92, 0xe5, 0x4b, 0x8e, 0x43, 0x0b, 0xbb, 0xb0, 0x1b, 0x2c, 0x97, 0x16, 0xdb, 0x10, 0xc3, 0x61, 0x17, 0x6e, 0x83, 0x72, 0xac, 0xe1, 0xa0, 0x94, 0xd9, 0x39, 0xa4, 0x73, 0x0f, 0xe9, 0xdc, 0xc3, 0xd1, 0x7e, 0xd0, 0x2e, 0x4c, 0xc0, 0xb0, 0x0b, 0xbb, 0x41, 0x23, 0x36, 0x01, 0x0b, 0xb7, 0xc1, 0xc2, 0x19, 0xa3, 0x83, 0xd1, 0x6a, 0x7e, 0x38, 0xda, 0x17, 0x76, 0x61, 0x37, 0x68, 0x65, 0x27, 0x60, 0xe1, 0x36, 0x58, 0x38, 0x63, 0x74, 0x10, 0xf2, 0xd9, 0x87, 0xa3, 0x7d, 0x61, 0x17, 0x24, 0x83, 0xba, 0x41, 0xb4, 0xe0, 0xfe, 0x41, 0x49, 0xd3, 0x30, 0x88, 0x16, 0xb4, 0x1f, 0x14, 0xb9, 0x0a, 0x83, 0x68, 0xc1, 0xf4, 0x10, 0xc3, 0x41, 0xb4, 0x20, 0x3c, 0xc4, 0xf0, 0x78, 0xbe, 0xb0, 0x0b, 0x92, 0x41, 0xdd, 0x20, 0x5a, 0x70, 0xff, 0xa0, 0x1c, 0x6b, 0x18, 0x44, 0x0b, 0xda, 0x0f, 0x4a, 0x99, 0x9d, 0x83, 0x96, 0xba, 0x02, 0x0e, 0xe9, 0xdc, 0xc3, 0xd1, 0x7e, 0xd0, 0x2e, 0x4c, 0xc0, 0xb0, 0x0b, 0xbb, 0x41, 0x23, 0x36, 0x01, 0x0b, 0xb7, 0xc1, 0x9a, 0x6e, 0xa9, 0x83, 0xd1, 0x6a, 0x7e, 0x38, 0xda, 0x17, 0x76, 0x61, 0x37, 0x68, 0x65, 0x27, 0x60, 0xe1, 0x36, 0x58, 0xd3, 0x2d, 0x75, 0x10, 0xf2, 0xd9, 0x87, 0xa3, 0x7d, 0x61, 0x37, 0x68, 0x24, 0x29, 0x60, 0x41, 0x32, 0xa8, 0x1b, 0x44, 0x1b, 0xb4, 0x9f, 0x15, 0x30, 0x88, 0x36, 0x68, 0x7c, 0x2b, 0xe0, 0x78, 0x3e, 0xec, 0xc2, 0x2d, 0xc1, 0x6a, 0xff, 0x04, 0xa9, 0xfb, 0x85, 0x5d, 0x90, 0x0c, 0x33, 0x88, 0x16, 0xdc, 0x9f, 0x20, 0xdd, 0x3f, 0x88, 0x16, 0xb4, 0x1f, 0x94, 0x34, 0x0d, 0xc7, 0xf3, 0x85, 0x5d, 0x90, 0x0c, 0xea, 0x06, 0xd1, 0x82, 0xfb, 0x07, 0x89, 0xf1, 0x19, 0x07, 0xad, 0xdb, 0x05, 0x2c, 0xec, 0x82, 0x60, 0x41, 0x32, 0x88, 0x06, 0xd1, 0x06, 0x8d, 0xf3, 0x05, 0x0c, 0xa2, 0x05, 0xed, 0x07, 0x89, 0xf1, 0x19, 0xc7, 0xf3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x12, 0xf4, 0xf6, 0x9f, 0x60, 0x77, 0xff, 0x38, 0xb4, 0xb0, 0x0b, 0xbb, 0x70, 0x1b, 0xac, 0xa5, 0x94, 0x3a, 0x68, 0x35, 0x2f, 0x60, 0xe1, 0x96, 0x60, 0xbf, 0xff, 0x20, 0xfd, 0x3e, 0x63, 0xd8, 0x05, 0xc1, 0x82, 0x60, 0x83, 0x05, 0xb5, 0xfb, 0x83, 0x64, 0x60, 0xfa, 0x0e, 0x56, 0xa7, 0xf2, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x7e, 0xd0, 0xec, 0x4a, 0xc0, 0x71, 0x68, 0x43, 0x0c, 0x87, 0x5d, 0x10, 0x2c, 0x48, 0x06, 0xb3, 0x41, 0xb4, 0xe0, 0xfe, 0x20, 0x5a, 0xd0, 0x7d, 0xb0, 0x14, 0x39, 0x6b, 0x10, 0x2d, 0xec, 0x41, 0x63, 0x7d, 0x01, 0x07, 0x83, 0x77, 0x72, 0x10, 0x2d, 0x68, 0x1f, 0x44, 0x1b, 0x34, 0xfb, 0x19, 0x30, 0x88, 0x16, 0xf6, 0x20, 0x31, 0x3e, 0xe3, 0x90, 0x98, 0x19, 0x44, 0x0b, 0xb6, 0x83, 0x60, 0x41, 0xb0, 0xc1, 0x82, 0xda, 0xfd, 0x41, 0x32, 0x38, 0x75, 0xb0, 0x3a, 0x95, 0xff, 0xa0, 0x0d, 0xcc, 0x80, 0xe3, 0xf9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x07, 0x4d, 0x47, 0x06, 0x1c, 0x87, 0x0e, 0xe9, 0xdc, 0x43, 0x3a, 0xf7, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x0f, 0xda, 0x85, 0x09, 0x18, 0x76, 0x61, 0x37, 0x68, 0xc4, 0x26, 0x60, 0xe1, 0x36, 0x58, 0x48, 0x2f, 0x75, 0x30, 0x5a, 0xcd, 0x0f, 0x47, 0xfb, 0x82, 0x64, 0x50, 0x37, 0x88, 0x36, 0x68, 0x4e, 0x2c, 0xe0, 0x78, 0x3e, 0xec, 0xc2, 0x6e, 0xd0, 0x88, 0x4d, 0xc0, 0xc2, 0x6d, 0xb0, 0x94, 0x61, 0xea, 0x60, 0xb4, 0x9a, 0x1f, 0x8e, 0xf6, 0x85, 0x5d, 0xd8, 0x85, 0xdb, 0x60, 0xa1, 0x89, 0xd1, 0x21, 0x31, 0xb3, 0x21, 0x86, 0xc3, 0x6e, 0xd0, 0xa0, 0x5b, 0xc0, 0x86, 0x18, 0x0e, 0xbb, 0x41, 0xcb, 0x3a, 0x01, 0x1b, 0x62, 0x78, 0xd0, 0xf0, 0x54, 0xc0, 0x82, 0x60, 0x41, 0x32, 0xa0, 0x78, 0xef, 0x3b, 0x38, 0x09, 0x1d, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0x41, 0xed, 0xfe, 0x20, 0x19, 0x08, 0xdd, 0x20, 0xda, 0xa0, 0x9d, 0x8f, 0x80, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x0b, 0x4d, 0x8c, 0x16, 0x07, 0xc9, 0xa0, 0x6e, 0x10, 0x6d, 0xb0, 0xc2, 0xf0, 0x7f, 0x10, 0x2d, 0x28, 0x3f, 0x1c, 0xed, 0x87, 0x15, 0xda, 0xe3, 0xf1, 0x71, 0xe8, 0xa0, 0x5d, 0x98, 0x80, 0x61, 0x17, 0x76, 0x83, 0x46, 0x6c, 0x02, 0x16, 0x6e, 0x83, 0xa5, 0x29, 0x53, 0x07, 0xa3, 0xd5, 0xfc, 0x70, 0xb4, 0x6f, 0xd0, 0x42, 0x6f, 0xc0, 0x20, 0x5b, 0x43, 0xfb, 0xf5, 0x61, 0x37, 0x68, 0xc4, 0x26, 0x60, 0xe1, 0x36, 0x58, 0xae, 0x34, 0x75, 0x30, 0x5a, 0xcd, 0x0f, 0x47, 0xfb, 0xb0, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0x0b, 0x6a, 0xf7, 0x07, 0xc9, 0xc0, 0xf4, 0x1d, 0xf6, 0x6c, 0x0f, 0xd6, 0xba, 0x96, 0x6c, 0x38, 0xda, 0x87, 0xdd, 0xa0, 0x09, 0xca, 0x80, 0x0d, 0x31, 0x1c, 0x24, 0x83, 0xba, 0x41, 0xb4, 0xc1, 0xe2, 0xe7, 0xff, 0x41, 0xb4, 0x41, 0x5b, 0xa9, 0x01, 0x83, 0x68, 0x41, 0x38, 0x08, 0x16, 0x04, 0x1b, 0x2c, 0xa8, 0xdd, 0x1f, 0x24, 0x83, 0x53, 0x87, 0x3d, 0xdb, 0x83, 0xb5, 0xae, 0x25, 0xc7, 0xf3, 0x61, 0x37, 0x0e, 0x6d, 0x88, 0xe1, 0xb0, 0x1b, 0x04, 0x29, 0xfe, 0x82, 0x6c, 0x0d, 0x79, 0xec, 0xc5, 0x41, 0xb0, 0x20, 0x19, 0x48, 0xfd, 0x1d, 0x8c, 0x77, 0x9d, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x0f, 0x06, 0x5b, 0xdc, 0x71, 0xe8, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0xc7, 0x5e, 0x1c, 0x04, 0x0b, 0x92, 0x81, 0xd4, 0xdf, 0x20, 0xda, 0x60, 0x0d, 0xa8, 0xd8, 0xc1, 0x78, 0xd7, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x0c, 0x7c, 0xb4, 0x30, 0xbb, 0xf2, 0x38, 0x74, 0x3c, 0x1e, 0x64, 0x6b, 0xc8, 0x63, 0x8f, 0x01, 0x1e, 0x6e, 0x65, 0x73, 0x74, 0x2d, 0x66, 0x61, 0x69, 0xec, 0xe1, 0x14, 0x3b, 0x1c, 0xed, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0x00, 0x0f, 0xb7, 0xb2, 0x39, 0xba, 0x16, 0xb2, 0x32, 0x3c, 0xfa, 0x70, 0x75, 0x1d, 0x8f, 0x8f, 0x6f, 0xc3, 0x2e, 0xdc, 0x06, 0x0b, 0x4d, 0x8c, 0x0e, 0x6b, 0xbf, 0x1b, 0x8e, 0xf6, 0x61, 0x17, 0x6e, 0x83, 0xf5, 0x0d, 0x46, 0x87, 0xb5, 0xdf, 0x0d, 0x31, 0x1c, 0x76, 0x61, 0x37, 0x58, 0x2b, 0x24, 0xb6, 0x70, 0x1b, 0x2c, 0xbc, 0x30, 0x3a, 0xb4, 0x00, 0x3a, 0x1c, 0xed, 0x1b, 0x8e, 0xf6, 0x61, 0x17, 0x76, 0x83, 0xb5, 0x42, 0x62, 0x0b, 0xb7, 0xc1, 0xc2, 0x19, 0xa3, 0x43, 0x0b, 0xa0, 0xc3, 0xd1, 0xbe, 0xe1, 0x68, 0x1f, 0x76, 0x61, 0x37, 0x58, 0x2b, 0x24, 0xb6, 0x70, 0x1b, 0xac, 0xe9, 0x96, 0x3a, 0xb4, 0x00, 0x3a, 0x1c, 0xed, 0x0b, 0x92, 0x41, 0xdd, 0x20, 0x5a, 0xd0, 0x3e, 0x48, 0x06, 0xb3, 0x41, 0xb4, 0x61, 0xd9, 0xf7, 0x90, 0xad, 0x38, 0x1e, 0x0f, 0xbb, 0xb0, 0x1b, 0xac, 0x15, 0x12, 0x5b, 0xb8, 0x0d, 0x16, 0xd2, 0x4b, 0x1d, 0x5a, 0x00, 0x1d, 0x8e, 0xf6, 0x05, 0xc9, 0xa0, 0x6e, 0x10, 0x2d, 0x68, 0x3f, 0x34, 0x3a, 0x3a, 0x1e, 0x0f, 0xbb, 0xb0, 0x1b, 0xac, 0x15, 0x12, 0x5b, 0xb8, 0x0d, 0x96, 0x32, 0x4c, 0x1d, 0x5a, 0x00, 0x1d, 0x8e, 0xf6, 0x05, 0xc1, 0x06, 0xeb, 0xd8, 0xfe, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0xca, 0xee, 0x7f, 0x90, 0x0c, 0x84, 0x6e, 0x10, 0x2d, 0xec, 0x41, 0xf0, 0x70, 0x1f, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x58, 0x68, 0x62, 0xb4, 0x38, 0x48, 0x06, 0x75, 0x83, 0x68, 0x41, 0xfb, 0x21, 0x75, 0x70, 0x48, 0x2e, 0x1d, 0x8f, 0x8f, 0x43, 0xc3, 0x2e, 0xec, 0x06, 0x6b, 0x85, 0xc4, 0x16, 0x6e, 0x83, 0xa5, 0x29, 0x53, 0x87, 0x16, 0x40, 0x87, 0xa3, 0x7d, 0x83, 0xa6, 0x7b, 0x04, 0x06, 0xd9, 0x1a, 0xda, 0xaf, 0x0f, 0xbb, 0xc1, 0x5a, 0x21, 0xb1, 0x85, 0xdb, 0x60, 0xb9, 0xd2, 0xd4, 0xa1, 0x05, 0xd0, 0xe1, 0x68, 0x1f, 0x76, 0x41, 0xb0, 0x20, 0xd8, 0x60, 0x95, 0xdd, 0xff, 0x20, 0x19, 0x98, 0xbe, 0x43, 0xab, 0xa0, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x21, 0x31, 0x73, 0x1c, 0xda, 0x10, 0xc3, 0x61, 0x17, 0x04, 0x0b, 0x82, 0x0d, 0x56, 0xd9, 0xfd, 0x0f, 0x92, 0x81, 0xe9, 0x3b, 0x34, 0x06, 0x1b, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x83, 0xf1, 0xa6, 0x73, 0x58, 0xfb, 0x3d, 0x0e, 0x6d, 0x88, 0xe1, 0x20, 0x19, 0xd4, 0x0d, 0xa2, 0x0d, 0x9a, 0xab, 0x11, 0x18, 0x44, 0x0b, 0xd2, 0x05, 0xc1, 0x82, 0x60, 0x83, 0x55, 0x76, 0xff, 0x83, 0x64, 0x70, 0xea, 0xd0, 0x2a, 0xe8, 0xa0, 0x21, 0x32, 0x81, 0x41, 0xb0, 0x20, 0xd8, 0x60, 0x95, 0xdd, 0xff, 0x20, 0x19, 0x9c, 0x3a, 0x34, 0x06, 0x3b, 0x68, 0x74, 0x4d, 0xe0, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x07, 0x78, 0xdd, 0xca, 0xe6, 0xe8, 0x5a, 0xd2, 0xdc, 0x43, 0x6a, 0xe9, 0x78, 0x7c, 0x30, 0x42, 0xa2, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xc0, 0x77, 0x2b, 0x9b, 0xa3, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0x0a, 0x82, 0xc5, 0x0d, 0xd3, 0xb9, 0xc1, 0x92, 0x0c, 0xa8, 0x39, 0x58, 0x21, 0xe8, 0xbf, 0x38, 0x08, 0x16, 0x17, 0x04, 0x8b, 0x1b, 0xa6, 0xf3, 0x70, 0x8a, 0x2d, 0x0e, 0x82, 0x05, 0xc9, 0x40, 0xfe, 0xee, 0xe0, 0x24, 0x74, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x82, 0x60, 0x41, 0x32, 0xb0, 0x5f, 0x77, 0x70, 0x12, 0x3a, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xe8, 0x21, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x86, 0x3c, 0xf6, 0xe2, 0x86, 0xdc, 0xf7, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xe2, 0x06, 0x27, 0xbd, 0xdd, 0x0d, 0x86, 0xd4, 0xef, 0x06, 0xeb, 0x1f, 0x5f, 0x36, 0x48, 0x90, 0x84, 0xde, 0xa0, 0x14, 0x91, 0xdc, 0x60, 0xfd, 0xe3, 0xcb, 0x06, 0x4b, 0x6d, 0x0a, 0x36, 0x28, 0x81, 0x22, 0x37, 0x58, 0xff, 0xf8, 0xb2, 0xc1, 0xc0, 0x37, 0xde, 0x20, 0xfd, 0xe9, 0x79, 0x83, 0x73, 0xe4, 0xee, 0x06, 0x6b, 0xd2, 0x12, 0x36, 0x58, 0xd5, 0xbd, 0xb0, 0x41, 0xda, 0x4b, 0xf5, 0x20, 0x58, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x16, 0xaa, 0x96, 0x1c, 0xac, 0x8c, 0xee, 0x3f, 0xc4, 0xf0, 0x60, 0x35, 0x03, 0xd0, 0xf1, 0xed, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x81, 0xbd, 0xbe, 0x83, 0xb3, 0x97, 0xf1, 0x20, 0x19, 0xa8, 0x5e, 0x87, 0xf6, 0x2d, 0x83, 0x64, 0xc8, 0x41, 0xf3, 0x4b, 0x02, 0x83, 0x60, 0x41, 0x32, 0x90, 0xbe, 0x1b, 0x44, 0x1b, 0x52, 0x1c, 0x07, 0xc3, 0xd0, 0xe7, 0x60, 0x60, 0x8b, 0x1e, 0x8f, 0x8f, 0x43, 0x07, 0x0b, 0x4d, 0x8c, 0x8e, 0x43, 0xc7, 0xe3, 0x15, 0x04, 0x1b, 0x2c, 0x34, 0x31, 0x5a, 0x1c, 0x04, 0x0b, 0xbb, 0xa1, 0xe3, 0xc8, 0xc2, 0x6e, 0xb0, 0x42, 0x59, 0x6a, 0x0d, 0x16, 0x39, 0x4b, 0x2d, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x90, 0x0c, 0x38, 0xbb, 0xcb, 0x1d, 0x8c, 0x77, 0x9d, 0x43, 0x53, 0xa0, 0x41, 0xb0, 0x41, 0xe3, 0xc9, 0x02, 0x87, 0x16, 0x60, 0xc3, 0x6e, 0xb0, 0x8e, 0x5b, 0x6a, 0x0d, 0x96, 0x80, 0x4b, 0x6d, 0xd0, 0x5a, 0xb2, 0xc0, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb2, 0xc1, 0x42, 0x77, 0xa9, 0x83, 0xf1, 0xae, 0x73, 0x68, 0x01, 0xb6, 0xc1, 0x82, 0x88, 0xa9, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0x32, 0xb0, 0xd2, 0x77, 0x30, 0xfc, 0x63, 0x0f, 0x96, 0x6d, 0x48, 0x1d, 0x3a, 0x68, 0x1c, 0xac, 0x4c, 0x31, 0x3a, 0x34, 0x7f, 0x39, 0x1e, 0x2f, 0x08, 0x36, 0x58, 0x68, 0x62, 0xb4, 0x38, 0xec, 0x06, 0x8b, 0x4b, 0x8c, 0x36, 0xc4, 0x70, 0xd8, 0x0d, 0x96, 0x98, 0xf7, 0x6f, 0x88, 0xe1, 0xb0, 0x1b, 0xac, 0x76, 0xf1, 0xdf, 0x10, 0xc3, 0x41, 0xb6, 0x86, 0xf6, 0xeb, 0x07, 0x0b, 0xee, 0xfb, 0x37, 0xc4, 0xf0, 0x60, 0x9c, 0x2a, 0x1f, 0x8f, 0x07, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0xb0, 0x1b, 0xc6, 0x65, 0x43, 0x34, 0x07, 0xd9, 0x1a, 0xf2, 0xd8, 0x8b, 0x1b, 0x72, 0xdf, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x8b, 0xe3, 0xe0, 0xe3, 0xe0, 0xef, 0xe0, 0xf2, 0xe0, 0xe5, 0xa0, 0x6d, 0x70, 0x77, 0xf0, 0x74, 0xf0, 0xf1, 0xa0, 0x08, 0x81, 0x3e, 0xbe, 0x1d, 0x8f, 0x0f, 0xa7, 0xd8, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0xec, 0x86, 0x5d, 0x83, 0x0d, 0xe3, 0x32, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x05, 0xc9, 0xc0, 0x5e, 0xdf, 0xc1, 0x49, 0xe8, 0x78, 0x90, 0x0c, 0x6e, 0x1d, 0x1a, 0x83, 0x0d, 0x82, 0x05, 0xc1, 0x82, 0x64, 0x60, 0xaf, 0xef, 0xe0, 0x98, 0x55, 0x3c, 0x48, 0x06, 0xb7, 0x0e, 0x7b, 0xb6, 0x83, 0x6c, 0x0d, 0x79, 0xec, 0xc5, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0x9c, 0x76, 0x07, 0xc7, 0xac, 0xe2, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x0b, 0x0f, 0x65, 0x0e, 0x7b, 0x85, 0xc7, 0xa1, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0x9c, 0x76, 0x07, 0x67, 0x2f, 0xe3, 0x83, 0x06, 0x1b, 0x06, 0x36, 0xe4, 0xbe, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x37, 0x58, 0x6a, 0x53, 0xb0, 0xc1, 0x1a, 0x14, 0xa0, 0x0d, 0xd6, 0xa4, 0x25, 0x6c, 0xb0, 0xfe, 0xf1, 0x65, 0x83, 0xf4, 0xa7, 0xe7, 0x0d, 0x86, 0xd4, 0xef, 0x06, 0x27, 0xbd, 0xdd, 0x0d, 0x56, 0x75, 0x2f, 0x6c, 0x90, 0xb6, 0x40, 0xbd, 0xc1, 0xfa, 0xc7, 0x97, 0x0d, 0xd6, 0xa4, 0x25, 0x6c, 0x90, 0xfe, 0xf4, 0xbc, 0xc1, 0x1a, 0x14, 0xa0, 0x0d, 0xc6, 0xed, 0xee, 0x06, 0xe9, 0x4f, 0xcf, 0x1b, 0x9c, 0x23, 0x77, 0x37, 0x58, 0x93, 0x96, 0xb0, 0xc1, 0xaa, 0xee, 0x85, 0x0d, 0xd6, 0x68, 0x2b, 0x6c, 0x90, 0xf6, 0x52, 0xbd, 0xc1, 0xfa, 0xc7, 0x97, 0x0d, 0x12, 0x24, 0xa1, 0x37, 0x28, 0x45, 0x24, 0x37, 0x48, 0x0c, 0x91, 0x19, 0x04, 0x6b, 0x48, 0xd5, 0x6c, 0x90, 0xf6, 0x52, 0xbd, 0xc1, 0x02, 0x34, 0x86, 0x0d, 0xce, 0x91, 0xbb, 0x1b, 0x24, 0x78, 0x3c, 0x6f, 0x90, 0x18, 0x22, 0x33, 0x08, 0x36, 0x28, 0x16, 0xc9, 0x0e, 0x56, 0x33, 0x00, 0x1d, 0xac, 0x66, 0x00, 0x3a, 0xbe, 0x1d, 0x8f, 0x07, 0xd9, 0x1a, 0xf2, 0xd8, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x58, 0xeb, 0x3b, 0x38, 0x9d, 0x21, 0x0f, 0x92, 0x81, 0xd0, 0x0d, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x10, 0x6c, 0xd0, 0x9e, 0xcf, 0xc0, 0x20, 0x19, 0x88, 0xd7, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0xc0, 0x5e, 0xdf, 0xc1, 0xe9, 0x0c, 0x79, 0x90, 0x0c, 0x04, 0xef, 0x60, 0xbd, 0x74, 0xff, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x53, 0x48, 0x03, 0x83, 0x64, 0x20, 0x78, 0x07, 0x21, 0x87, 0x7f, 0x1c, 0x3a, 0x0e, 0x6d, 0xc8, 0x7d, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x6e, 0xb0, 0xaa, 0x7b, 0x61, 0x83, 0xd1, 0xe0, 0xbb, 0xc1, 0x1a, 0x6d, 0x85, 0x0d, 0xd6, 0x68, 0x2b, 0x6c, 0x30, 0x1a, 0x7c, 0x37, 0x18, 0x52, 0xbf, 0x8b, 0xe1, 0xe7, 0x06, 0x69, 0x2f, 0xd5, 0x83, 0x60, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0x69, 0x9f, 0x83, 0x63, 0x56, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x10, 0x9e, 0x83, 0x63, 0x56, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x8b, 0x1b, 0xea, 0xc8, 0x1a, 0x66, 0x68, 0x0d, 0x13, 0xb7, 0x06, 0x0b, 0x1a, 0xa6, 0xd6, 0x30, 0xf7, 0x83, 0x87, 0x1b, 0xea, 0xf8, 0xe0, 0xee, 0xe1, 0x14, 0x5b, 0x0d, 0x73, 0x3f, 0x78, 0xb8, 0x61, 0xe2, 0xd6, 0x30, 0xf7, 0x83, 0xbb, 0x1b, 0xea, 0xf8, 0x41, 0x2a, 0x5b, 0xf0, 0x86, 0x89, 0x5b, 0x83, 0x05, 0x0d, 0x53, 0x6b, 0x98, 0xfb, 0xc1, 0xd9, 0x83, 0x16, 0xdb, 0x06, 0x66, 0x0d, 0x73, 0x3f, 0x38, 0xbb, 0x61, 0xe2, 0x36, 0x68, 0x2c, 0x6e, 0x60, 0xc3, 0xc4, 0xad, 0x61, 0xee, 0x07, 0x67, 0x37, 0xd4, 0x91, 0x35, 0xcc, 0xd0, 0x1a, 0x26, 0x6e, 0xc3, 0x74, 0x6e, 0x98, 0xa1, 0x35, 0x4c, 0xdc, 0x1a, 0xe6, 0x7e, 0x83, 0x60, 0x6f, 0xdb, 0x30, 0x43, 0x6b, 0x98, 0xb8, 0x0d, 0xd3, 0xb9, 0x61, 0x86, 0xd6, 0x30, 0x71, 0x6b, 0x28, 0xa6, 0x6b, 0x10, 0x52, 0xca, 0x07, 0x67, 0x65, 0xa5, 0x0d, 0x16, 0x34, 0x4c, 0x6d, 0xd0, 0x18, 0xdb, 0xc0, 0x6a, 0x98, 0xfb, 0xc1, 0xc3, 0x0d, 0x13, 0xb7, 0x86, 0xb9, 0x1f, 0xdc, 0xdd, 0x30, 0x71, 0x6b, 0x28, 0xa6, 0xab, 0x61, 0x86, 0xd6, 0x30, 0x71, 0x1b, 0xa6, 0xf3, 0x20, 0xa4, 0x94, 0x37, 0x9c, 0x08, 0x1b, 0x34, 0x0e, 0x39, 0xb0, 0xc1, 0x62, 0x36, 0xa8, 0x65, 0x96, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x79, 0x92, 0x0d, 0xce, 0x67, 0xa9, 0x1b, 0xbe, 0x7e, 0x59, 0xc3, 0x8f, 0x30, 0x07, 0xa9, 0x6c, 0xc1, 0x1b, 0x2c, 0x94, 0x7d, 0x5a, 0xc5, 0x99, 0x83, 0x05, 0x19, 0x75, 0xb5, 0x06, 0x45, 0xa7, 0xf1, 0x1a, 0xac, 0x16, 0x41, 0x3a, 0x58, 0x90, 0x51, 0xb7, 0x86, 0x1f, 0x61, 0x06, 0x9e, 0x2e, 0x3c, 0xbc, 0x7c, 0x77, 0x48, 0x1d, 0x6c, 0x50, 0x10, 0xcc, 0x6e, 0x70, 0x8c, 0x39, 0xdb, 0x90, 0x3a, 0x38, 0x08, 0x4f, 0xd5, 0x83, 0x95, 0x74, 0xfa, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x1d, 0x9c, 0xcf, 0x52, 0x37, 0xcc, 0xfd, 0xe0, 0xf0, 0x41, 0x8b, 0x72, 0x03, 0x1b, 0x8a, 0xe9, 0x6a, 0x98, 0xa1, 0x0d, 0x95, 0x70, 0xc3, 0x89, 0xb0, 0xa1, 0x12, 0x6e, 0xb0, 0x98, 0x0d, 0x6a, 0x99, 0x65, 0xc3, 0x27, 0x36, 0x6b, 0x78, 0x9e, 0x64, 0x0d, 0x56, 0x89, 0x60, 0x1d, 0xa4, 0x99, 0x79, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x16, 0x2a, 0x53, 0x1d, 0xa4, 0xae, 0x79, 0x6f, 0xf8, 0x20, 0x67, 0x0d, 0xd6, 0x00, 0x2d, 0x1d, 0xa2, 0xb9, 0x1a, 0x3e, 0x77, 0x19, 0x1c, 0xde, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x12, 0xe2, 0x1b, 0xac, 0x20, 0xd3, 0xdf, 0xf0, 0xb6, 0xce, 0x41, 0xea, 0x9a, 0xf7, 0xc1, 0xb9, 0xde, 0x60, 0xc3, 0xe7, 0x2e, 0x83, 0xc7, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xc5, 0xdf, 0x81, 0x83, 0x03, 0x68, 0xd2, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x01, 0xf4, 0xd1, 0x1a, 0x1e, 0x94, 0xdc, 0x38, 0xb4, 0xe1, 0x79, 0x92, 0x0d, 0xd6, 0xba, 0x39, 0x6f, 0x90, 0x94, 0x16, 0xbc, 0xe1, 0x73, 0x97, 0xc1, 0xe1, 0x0d, 0x4a, 0x09, 0xf1, 0x0d, 0x56, 0x90, 0xe9, 0x6f, 0x78, 0x50, 0x72, 0x83, 0xe5, 0xc7, 0xdb, 0x07, 0xeb, 0x16, 0x91, 0x0f, 0xce, 0xf5, 0x06, 0x6b, 0x78, 0x9e, 0x64, 0x83, 0xb5, 0x6e, 0xce, 0x6b, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0xd1, 0xdc, 0xf0, 0xc6, 0xdd, 0xe1, 0x14, 0x3b, 0x48, 0x4a, 0x0b, 0xde, 0xf0, 0x3c, 0xc9, 0x06, 0x6b, 0xdd, 0x9c, 0x37, 0x7c, 0xee, 0x32, 0x38, 0xbc, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x25, 0xc4, 0x37, 0x58, 0x41, 0xa6, 0x7f, 0xb0, 0x6e, 0x11, 0xf9, 0xe0, 0x00, 0x9a, 0xb4, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x00, 0x7d, 0xb4, 0x86, 0x07, 0x25, 0x37, 0x0e, 0x6d, 0x78, 0x9e, 0x64, 0x83, 0x35, 0x83, 0xce, 0x1b, 0x2c, 0xa0, 0xf2, 0xde, 0xf0, 0xb9, 0xcb, 0xe0, 0xf0, 0x06, 0xa5, 0x84, 0xf8, 0x06, 0x2b, 0xc8, 0xf4, 0x37, 0x3c, 0x28, 0xb9, 0xc1, 0xf2, 0xe3, 0xed, 0x0d, 0x6f, 0xeb, 0x1c, 0xac, 0xad, 0x74, 0x3e, 0x38, 0xd7, 0x1b, 0xac, 0xe1, 0x79, 0x92, 0x0d, 0xd6, 0x0c, 0x3a, 0xaf, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x44, 0x73, 0xc3, 0x1b, 0x77, 0x73, 0xf8, 0xa2, 0xe6, 0x60, 0x01, 0x95, 0xf7, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x33, 0xe8, 0xbc, 0xe1, 0x73, 0x97, 0xc1, 0xe1, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x29, 0x21, 0xbe, 0xc1, 0x0a, 0x32, 0xfd, 0x83, 0x86, 0xe3, 0x07, 0x0e, 0x0e, 0xa0, 0x49, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x05, 0xd0, 0x47, 0x6b, 0x78, 0x50, 0x72, 0xe3, 0xd0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x9b, 0xe9, 0xbc, 0x86, 0x37, 0xee, 0x0e, 0x56, 0x91, 0x3a, 0x1f, 0x34, 0xc6, 0x3e, 0x70, 0x70, 0xae, 0x37, 0x58, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0xcd, 0x74, 0x5e, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x88, 0xe6, 0x86, 0x37, 0xee, 0xe6, 0xa0, 0xa8, 0xc8, 0x3c, 0x68, 0x37, 0x81, 0x60, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0xcd, 0x74, 0x3e, 0x68, 0xbd, 0x7f, 0x60, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x00, 0xfa, 0x68, 0x0d, 0x0f, 0x4a, 0x6e, 0x1c, 0xda, 0xf0, 0x3c, 0xc9, 0x06, 0xcb, 0x57, 0x9d, 0xd7, 0xf0, 0xc6, 0xdd, 0xc1, 0xd2, 0x5d, 0xe7, 0x35, 0x7c, 0xee, 0x32, 0x38, 0xbc, 0x41, 0x29, 0x21, 0xbe, 0xc1, 0x0a, 0x32, 0xfd, 0x0d, 0x0f, 0x4a, 0x6e, 0xb0, 0xfc, 0x78, 0xfb, 0x60, 0xe9, 0x7e, 0xf0, 0x86, 0xcf, 0x5d, 0x06, 0x8f, 0x37, 0x28, 0x25, 0xc4, 0x37, 0x58, 0x41, 0xa6, 0xbf, 0xe1, 0x41, 0xc9, 0x0d, 0x96, 0x1f, 0x6f, 0x1f, 0x34, 0x1a, 0x3c, 0x70, 0x70, 0xae, 0x37, 0x58, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0x5f, 0x75, 0x5e, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x88, 0xe6, 0x86, 0x37, 0xee, 0xe6, 0x60, 0x5d, 0xdc, 0xd1, 0x41, 0xa3, 0x1d, 0x04, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0xf9, 0xaa, 0xf3, 0x1a, 0x3e, 0x77, 0x19, 0x1c, 0xde, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x12, 0xe2, 0x1b, 0xac, 0x20, 0xd3, 0x3f, 0x58, 0xba, 0x1f, 0xbc, 0xa1, 0x91, 0x60, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0xf9, 0xaa, 0xf3, 0x86, 0xcf, 0x5d, 0x06, 0x8f, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x8b, 0xbf, 0x03, 0x1b, 0x04, 0xa5, 0x77, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x05, 0xd0, 0x47, 0x6b, 0x78, 0x50, 0x72, 0xe3, 0xd0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x84, 0xec, 0xbc, 0x86, 0x37, 0xee, 0x0e, 0x96, 0x55, 0x3b, 0x6f, 0xf8, 0xdc, 0x65, 0x70, 0x78, 0x83, 0x52, 0x42, 0x7c, 0x83, 0x15, 0x64, 0xfa, 0x1b, 0x1e, 0x94, 0xdc, 0x60, 0xf9, 0xf1, 0xf6, 0x41, 0x02, 0xec, 0xf0, 0xc1, 0xb9, 0xde, 0x60, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x08, 0xd9, 0x79, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x21, 0x9a, 0x1b, 0xde, 0xb8, 0x9b, 0x83, 0xe5, 0x8b, 0x47, 0x07, 0xed, 0x23, 0x11, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0x45, 0xc8, 0xce, 0x1b, 0x3e, 0x77, 0x19, 0x1c, 0xde, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x12, 0xe2, 0x1b, 0xac, 0x20, 0xd3, 0x3f, 0x48, 0x80, 0x1d, 0x3e, 0x38, 0x80, 0x26, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0x16, 0x40, 0x1f, 0xad, 0xe1, 0x41, 0xc9, 0x8d, 0x43, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x41, 0xb7, 0xf3, 0x1a, 0xde, 0xb8, 0x3b, 0x58, 0x58, 0x18, 0xbc, 0x86, 0xcf, 0x5d, 0x06, 0x87, 0x37, 0x28, 0x25, 0xc4, 0x37, 0x58, 0x41, 0xa6, 0xbf, 0xe1, 0x41, 0xc9, 0x0d, 0x96, 0x1f, 0x6f, 0x6f, 0x78, 0x5b, 0xe7, 0x60, 0x4d, 0x8d, 0xf3, 0x86, 0xcf, 0x5d, 0x06, 0x8f, 0x37, 0x28, 0x25, 0xc4, 0x37, 0x58, 0x41, 0xa6, 0xbf, 0xe1, 0x41, 0xc9, 0x0d, 0x96, 0x1f, 0x6f, 0x6f, 0x78, 0x5b, 0xe7, 0x60, 0x61, 0xbc, 0xf3, 0xc1, 0xb9, 0xde, 0x60, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xa0, 0xdb, 0x79, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x21, 0x9a, 0x1b, 0xde, 0xb8, 0x9b, 0x83, 0x55, 0x24, 0x3f, 0x07, 0x2d, 0x9e, 0x11, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0x05, 0xdd, 0xce, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0x78, 0xc3, 0xbb, 0x3d, 0x6b, 0x50, 0x4a, 0x88, 0x6f, 0xb0, 0x82, 0x4c, 0xff, 0xa0, 0x6d, 0x37, 0x82, 0x83, 0xd6, 0x78, 0x08, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x82, 0x6e, 0xe7, 0x0d, 0x9f, 0xbb, 0x0c, 0x1e, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0x4a, 0x09, 0xf1, 0x0d, 0x56, 0x90, 0xe9, 0x1f, 0xb4, 0x61, 0x47, 0x70, 0xd0, 0xa2, 0x10, 0xc1, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x01, 0xf4, 0xd1, 0x1a, 0x1e, 0x94, 0xdc, 0x38, 0xb4, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0xda, 0x3b, 0xaf, 0xe1, 0x8d, 0xbb, 0x83, 0x95, 0x00, 0xcf, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0x78, 0x83, 0x52, 0x42, 0x7c, 0x83, 0x15, 0x64, 0xfa, 0x1b, 0x1e, 0x94, 0xdc, 0x60, 0xf9, 0xf1, 0xf6, 0x86, 0xb7, 0x75, 0x0e, 0xd6, 0x21, 0x3c, 0x1f, 0xb4, 0x5f, 0x42, 0x70, 0x70, 0xae, 0x37, 0x58, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0xb4, 0x77, 0x5e, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x88, 0xe6, 0x86, 0x37, 0xee, 0xe6, 0xf0, 0x3c, 0xc9, 0x41, 0xeb, 0x96, 0x04, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0xa5, 0xbd, 0xf3, 0x1a, 0x3e, 0x77, 0x19, 0x1c, 0xde, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x12, 0xe2, 0x1b, 0xac, 0x20, 0xd3, 0x3f, 0x68, 0xc7, 0x93, 0xe0, 0xa0, 0x35, 0x1e, 0x82, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xd2, 0xde, 0xf9, 0xa0, 0x9d, 0x1f, 0x82, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0x73, 0x78, 0x5e, 0xc3, 0x1b, 0x77, 0x07, 0xeb, 0x35, 0x9e, 0xd7, 0xf0, 0xb9, 0xcb, 0xe0, 0xf0, 0x41, 0x53, 0x27, 0x04, 0x1b, 0x3e, 0x77, 0x19, 0x3c, 0xde, 0xa0, 0x94, 0x10, 0xdf, 0x60, 0x05, 0x99, 0xfe, 0x86, 0x07, 0x25, 0x37, 0x58, 0x7e, 0xbc, 0xbd, 0xe1, 0x6d, 0x9d, 0x83, 0x85, 0x25, 0xcf, 0x07, 0xe7, 0x7a, 0x83, 0x35, 0x3c, 0x4f, 0xb2, 0xc1, 0x32, 0x87, 0xe7, 0x35, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x6f, 0xce, 0x86, 0x68, 0x6e, 0x78, 0xe3, 0x6e, 0x0e, 0x16, 0x40, 0x1f, 0x1d, 0x34, 0xa7, 0x4b, 0xb0, 0xe1, 0x79, 0x92, 0x0d, 0x96, 0x39, 0x3c, 0xaf, 0xe1, 0x73, 0x97, 0xc1, 0xe1, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xe2, 0xef, 0xc0, 0x41, 0x6b, 0x3c, 0x04, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x99, 0xc3, 0xf3, 0x86, 0xcf, 0x5d, 0x06, 0x8f, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xa5, 0x84, 0xf8, 0x06, 0x2b, 0xc8, 0xf4, 0x0f, 0x5a, 0x21, 0x26, 0x38, 0x68, 0x51, 0x88, 0x60, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x00, 0xfa, 0x68, 0x0d, 0x0f, 0x4a, 0x6e, 0x1c, 0xda, 0xf0, 0x3c, 0xc9, 0x06, 0x0b, 0x53, 0x9e, 0xd7, 0xf0, 0xc6, 0xdd, 0xc1, 0x92, 0x9b, 0xe7, 0x0d, 0x9f, 0xbb, 0x0c, 0x0e, 0x6f, 0x50, 0x4a, 0x88, 0x6f, 0xb0, 0x82, 0x4c, 0x7f, 0xc3, 0x83, 0x92, 0x1b, 0x2c, 0x3f, 0xde, 0xde, 0xf0, 0x6e, 0xcf, 0x06, 0x21, 0x65, 0xb2, 0x86, 0x8f, 0xda, 0x0f, 0x56, 0x04, 0x3d, 0x77, 0x70, 0xae, 0x37, 0x58, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0x4c, 0x79, 0x5e, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x88, 0xe6, 0x86, 0x37, 0xee, 0xe6, 0xf0, 0x2c, 0xde, 0x41, 0xe3, 0xe2, 0x04, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x61, 0xca, 0xf3, 0x86, 0xcf, 0x5d, 0x06, 0x87, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xa5, 0x84, 0xf8, 0x06, 0x2b, 0xc8, 0xf4, 0x0f, 0x1a, 0x51, 0x27, 0x38, 0x38, 0x80, 0x26, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0x16, 0x40, 0x1f, 0xad, 0xe1, 0x41, 0xc9, 0x8d, 0x43, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x05, 0xd2, 0xf3, 0x86, 0x27, 0xee, 0x36, 0x7c, 0xee, 0x32, 0x38, 0xbc, 0x41, 0x29, 0x21, 0xbe, 0xc1, 0x0a, 0x32, 0xfd, 0x0d, 0x0f, 0x4a, 0x6e, 0xb0, 0xfc, 0x78, 0x7b, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0xde, 0xf4, 0x6b, 0xf8, 0xa8, 0xfd, 0x60, 0xbd, 0xd6, 0xf3, 0x1a, 0x3e, 0x6a, 0x3f, 0xfc, 0x50, 0xd3, 0xc1, 0xb9, 0xde, 0x60, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x02, 0xe9, 0x79, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x21, 0x9a, 0x1b, 0xde, 0xb8, 0x9b, 0x43, 0x06, 0xfc, 0xf0, 0xc4, 0xdd, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x81, 0xf4, 0xbc, 0xe1, 0x73, 0x97, 0xc1, 0xe1, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x29, 0x21, 0xbe, 0xc1, 0x0a, 0x32, 0xfd, 0x83, 0x66, 0x14, 0x0a, 0x0e, 0x0e, 0xa0, 0x49, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x05, 0xd0, 0x47, 0x6b, 0x78, 0x50, 0x72, 0xe3, 0xd0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x30, 0xf6, 0xbc, 0x86, 0x37, 0xee, 0x0e, 0x96, 0xb6, 0x3d, 0x6f, 0xf8, 0xdc, 0x65, 0x70, 0x78, 0x83, 0x52, 0x42, 0x7c, 0x83, 0x15, 0x64, 0xfa, 0x1b, 0x1e, 0x94, 0xdc, 0x60, 0xf9, 0xf1, 0xf6, 0x86, 0xb7, 0x75, 0x0e, 0x16, 0x73, 0x3d, 0x1f, 0x9c, 0xeb, 0x0d, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0x0b, 0xc6, 0x9e, 0xd7, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0xa2, 0xb9, 0xe1, 0x8d, 0xbb, 0x39, 0x58, 0x2d, 0x82, 0x74, 0xd0, 0x5e, 0x49, 0xc1, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x30, 0xf6, 0xbc, 0xe1, 0x73, 0x97, 0xc1, 0xe1, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x29, 0x21, 0xbe, 0xc1, 0x0a, 0x32, 0xfd, 0x83, 0x76, 0x59, 0x0a, 0x0e, 0x0e, 0xa0, 0x49, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x05, 0xd0, 0x47, 0x6b, 0x78, 0x50, 0x72, 0xe3, 0xd0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x85, 0xf7, 0xbc, 0x86, 0x37, 0xee, 0x0e, 0xd6, 0x17, 0x3e, 0x1f, 0x34, 0xc6, 0x4b, 0x70, 0x70, 0xae, 0x37, 0x58, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0xc2, 0x7b, 0x5e, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x88, 0xe6, 0x86, 0x37, 0xee, 0xe6, 0x60, 0xe1, 0x0d, 0xd2, 0x41, 0xfb, 0x44, 0x05, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x15, 0xde, 0xf3, 0x86, 0xcf, 0x5d, 0x06, 0x87, 0x0f, 0x5a, 0x2e, 0x1e, 0xd8, 0xf0, 0x41, 0xce, 0x1a, 0x2c, 0x80, 0x3e, 0x5a, 0xc3, 0x83, 0x92, 0x1b, 0x87, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0xfa, 0xc6, 0xe7, 0x35, 0xbc, 0x71, 0x77, 0xb0, 0x62, 0xf3, 0x79, 0x83, 0xb6, 0x4e, 0x0a, 0x36, 0x7c, 0xee, 0x32, 0x78, 0xbc, 0xe1, 0xeb, 0x97, 0x35, 0x58, 0x10, 0xb2, 0xb4, 0x41, 0x23, 0xdb, 0x03, 0x1b, 0x34, 0xb2, 0x3d, 0xb0, 0xe1, 0x8d, 0xbb, 0xe3, 0xf1, 0x41, 0x23, 0xdb, 0x03, 0x07, 0xe7, 0x7a, 0x83, 0x35, 0x3c, 0x4f, 0xb2, 0xc1, 0xfa, 0xc6, 0xe7, 0x35, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x6f, 0xce, 0x86, 0x68, 0x6e, 0x78, 0xe3, 0x6e, 0x0e, 0x6f, 0xdc, 0x1d, 0x34, 0xa5, 0x55, 0xb0, 0xe1, 0x79, 0x92, 0x0d, 0xd6, 0x37, 0x3e, 0xaf, 0xe1, 0x73, 0x97, 0xc1, 0xe1, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xda, 0x4e, 0xc1, 0x41, 0x6b, 0x3c, 0x04, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x7d, 0xe3, 0xf3, 0x86, 0xcf, 0x5d, 0x06, 0x8f, 0x0f, 0x82, 0xd2, 0x7b, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x00, 0xfa, 0x68, 0x0d, 0x0f, 0x4a, 0x6e, 0x1c, 0xda, 0xf0, 0x3c, 0xc9, 0x06, 0xcb, 0x48, 0x9f, 0xd7, 0xf0, 0xc6, 0xdd, 0xc1, 0x42, 0xd9, 0xe7, 0x83, 0x66, 0xb8, 0x0a, 0x0e, 0xce, 0xf5, 0x06, 0x6b, 0x78, 0x9e, 0x64, 0x83, 0x65, 0xa4, 0xcf, 0x6b, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0xd1, 0xdc, 0xf0, 0xc6, 0xdd, 0x1c, 0x7e, 0x84, 0x39, 0x68, 0xb4, 0xaf, 0x60, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0x23, 0x7d, 0xde, 0xa0, 0xd5, 0xb7, 0x82, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x8c, 0xf4, 0xf9, 0xa0, 0xfd, 0xba, 0x82, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0xce, 0x7d, 0x5e, 0xc3, 0x1b, 0x77, 0x07, 0xcb, 0x8d, 0x9f, 0x37, 0x7c, 0xee, 0x32, 0x38, 0xbc, 0x41, 0x29, 0x21, 0xbe, 0xc1, 0x0a, 0x32, 0xfd, 0x0d, 0x0f, 0x4a, 0x6e, 0xb0, 0xfc, 0x78, 0x7b, 0xc3, 0xbb, 0x3d, 0x1b, 0x84, 0x94, 0xc9, 0x1a, 0x3e, 0x6a, 0x3f, 0x58, 0x60, 0xe1, 0xdc, 0xc1, 0xb9, 0xde, 0x60, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x38, 0xf7, 0x79, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x21, 0x9a, 0x1b, 0xde, 0xb8, 0x9b, 0x83, 0x15, 0x6a, 0x48, 0x07, 0xcd, 0x51, 0x16, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0xc5, 0xb9, 0xcf, 0x1b, 0x3e, 0x77, 0x19, 0x1c, 0xde, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x12, 0xe2, 0x1b, 0xac, 0x20, 0xd3, 0x3f, 0x68, 0x76, 0xb3, 0xe0, 0xe0, 0x00, 0x9a, 0xb4, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x00, 0x7d, 0xb4, 0x86, 0x07, 0x25, 0x37, 0x0e, 0x6d, 0x78, 0x9e, 0x64, 0x83, 0x55, 0xd5, 0xcf, 0x6b, 0x78, 0xe3, 0xee, 0x60, 0x5d, 0xf8, 0xf3, 0x86, 0xcf, 0x5d, 0x06, 0x87, 0x37, 0x7c, 0x62, 0xb3, 0x86, 0xaf, 0x5f, 0xd6, 0xa0, 0xa8, 0xc8, 0x3c, 0x4c, 0xe7, 0x06, 0xa5, 0x84, 0xf8, 0x06, 0x2b, 0xc8, 0xf4, 0x37, 0x3c, 0x28, 0xb9, 0x21, 0x75, 0x70, 0xd0, 0x2e, 0x4b, 0xc1, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x0d, 0xd0, 0xd2, 0x71, 0x68, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x29, 0x21, 0xbe, 0x86, 0xb7, 0x75, 0x0e, 0x46, 0xb3, 0xc0, 0x86, 0xb7, 0x75, 0x0e, 0xd6, 0xb6, 0x3f, 0x1f, 0xbe, 0x9c, 0xdc, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x12, 0xe2, 0x1b, 0xb4, 0x5b, 0x5c, 0x70, 0xd0, 0x2e, 0x4b, 0xc1, 0xe1, 0xcb, 0xc9, 0x83, 0x73, 0xbd, 0xc1, 0x1a, 0x9e, 0x27, 0xd9, 0x60, 0x55, 0xf5, 0xf3, 0x1a, 0x14, 0x7c, 0x98, 0x6b, 0xf8, 0x37, 0x67, 0x43, 0x34, 0x37, 0xbc, 0x71, 0x37, 0x07, 0x0b, 0x03, 0x91, 0x0e, 0xda, 0xae, 0x2d, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0xab, 0xaa, 0x9f, 0x37, 0x7c, 0xee, 0x32, 0x38, 0xbc, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x03, 0xb4, 0x74, 0x18, 0x97, 0x35, 0xbc, 0xdb, 0xb3, 0x06, 0xa5, 0x84, 0xf8, 0x06, 0x2b, 0xc8, 0xf4, 0x0f, 0xda, 0x3b, 0x2e, 0x38, 0x38, 0x80, 0x26, 0x1d, 0x34, 0xa8, 0x53, 0xb0, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x00, 0x7d, 0xb4, 0x86, 0x07, 0x25, 0x37, 0x0e, 0x6d, 0x78, 0x9e, 0x64, 0x83, 0x35, 0xf2, 0xcf, 0x6b, 0x78, 0xe3, 0xee, 0x60, 0x35, 0xff, 0xf3, 0x86, 0xcf, 0x5d, 0x06, 0x87, 0x0f, 0x1a, 0x01, 0x26, 0x38, 0x38, 0xd7, 0x1b, 0xac, 0xe1, 0x79, 0x92, 0x0d, 0xd6, 0xc8, 0x3f, 0xaf, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x44, 0x73, 0xc3, 0x1b, 0x77, 0x73, 0x78, 0x5b, 0xe7, 0xa0, 0x8d, 0xf4, 0x82, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x46, 0xfe, 0x79, 0xc3, 0xe7, 0x2e, 0x83, 0xc3, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x9d, 0x6c, 0x82, 0x83, 0x03, 0x68, 0xd2, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x01, 0xf4, 0xd1, 0x1a, 0x1e, 0x94, 0xdc, 0x38, 0xb4, 0xe1, 0x79, 0x92, 0x0d, 0x16, 0x1c, 0x40, 0xaf, 0xe1, 0x8d, 0xbb, 0x83, 0x25, 0x14, 0xd0, 0x07, 0x4d, 0x59, 0x16, 0x1c, 0x9c, 0xeb, 0x0d, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0x0b, 0x0e, 0xa0, 0xd7, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0xa2, 0xb9, 0xe1, 0x8d, 0xbb, 0x39, 0x48, 0xd0, 0xda, 0x3c, 0x68, 0x2d, 0xc0, 0x60, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0x38, 0x80, 0x3e, 0x68, 0x41, 0xb5, 0x60, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x00, 0xfa, 0x68, 0x0d, 0x0f, 0x4a, 0x6e, 0x1c, 0xda, 0xf0, 0x3c, 0xc9, 0x06, 0xab, 0x37, 0xa0, 0xd7, 0xf0, 0xc6, 0xdd, 0xc1, 0xfa, 0x14, 0xe8, 0x0d, 0x9f, 0xbb, 0x0c, 0x0e, 0x6f, 0x50, 0x4a, 0x88, 0x6f, 0xb0, 0x82, 0x4c, 0x7f, 0xc3, 0x83, 0x92, 0x1b, 0x2c, 0x3f, 0xde, 0xde, 0xf0, 0xa0, 0xe4, 0x1a, 0xde, 0xd6, 0x39, 0x58, 0x25, 0x03, 0xbd, 0xe1, 0x6d, 0x9d, 0x83, 0xc5, 0x34, 0xd0, 0x07, 0xe7, 0x7a, 0x83, 0x35, 0x3c, 0x4f, 0xb2, 0xc1, 0xea, 0x0d, 0xe8, 0x35, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x6f, 0xce, 0x86, 0x68, 0x6e, 0x78, 0xe3, 0x6e, 0x0e, 0x16, 0xf7, 0x22, 0x1d, 0x34, 0x56, 0x61, 0xb0, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0x6f, 0x40, 0x6f, 0xf8, 0xdc, 0x65, 0x70, 0x78, 0xc3, 0xbb, 0x3d, 0x6b, 0x50, 0x4a, 0x88, 0x6f, 0xb0, 0x82, 0x4c, 0xff, 0xa0, 0x51, 0x0e, 0x83, 0x83, 0x03, 0x68, 0xd2, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x01, 0xf4, 0xd1, 0x1a, 0x1e, 0x94, 0xdc, 0x38, 0xb4, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0xe7, 0x40, 0xaf, 0xe1, 0x8d, 0xbb, 0x83, 0x85, 0x40, 0xd0, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0xb5, 0x45, 0xd0, 0x1b, 0x94, 0x12, 0xe2, 0x1b, 0xac, 0x20, 0xd3, 0xdf, 0xf0, 0xa0, 0xe4, 0x06, 0xcb, 0x8f, 0xb7, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0xba, 0x25, 0xe8, 0x0d, 0xda, 0x60, 0x28, 0x68, 0xc3, 0xe7, 0x2e, 0x1b, 0x2c, 0x9b, 0x82, 0xde, 0xa0, 0x94, 0x10, 0xdf, 0x60, 0x05, 0x99, 0xfe, 0x86, 0x07, 0x25, 0x37, 0x58, 0x7e, 0xbc, 0xbd, 0xe1, 0x6d, 0x9d, 0x83, 0xd5, 0x57, 0xd0, 0x07, 0xe7, 0x7a, 0x83, 0x35, 0x3c, 0x4f, 0xb2, 0xc1, 0xea, 0x1c, 0xe8, 0x35, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x6f, 0xce, 0x86, 0x68, 0x6e, 0x78, 0xe3, 0x6e, 0x0e, 0x0f, 0xe7, 0x1f, 0xb4, 0x7a, 0x63, 0xb0, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0xe7, 0x40, 0xaf, 0xe1, 0x73, 0x97, 0x0d, 0xd6, 0x16, 0x41, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0x4a, 0x09, 0xf1, 0x0d, 0x56, 0x90, 0xe9, 0x1f, 0x34, 0xf9, 0x63, 0x70, 0xd0, 0x1a, 0x0f, 0xc1, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x9d, 0x03, 0xbd, 0xe1, 0x73, 0x97, 0x0d, 0x96, 0x4d, 0x41, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0x4a, 0x09, 0xf1, 0x0d, 0x56, 0x90, 0xe9, 0x1f, 0xb4, 0x8a, 0x64, 0x70, 0xd0, 0xa2, 0x10, 0xc1, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x01, 0xf4, 0xd1, 0x1a, 0x1e, 0x94, 0xdc, 0x38, 0xb4, 0xe1, 0x79, 0x92, 0x0d, 0x96, 0x70, 0x41, 0xaf, 0xe1, 0x8d, 0xbb, 0x83, 0xe5, 0x62, 0xd0, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0xf8, 0xa0, 0x51, 0x22, 0x83, 0x35, 0x7c, 0xee, 0x32, 0x78, 0xbc, 0x41, 0x29, 0x21, 0xbe, 0xc1, 0x0a, 0x32, 0xfd, 0x0d, 0x0f, 0x4a, 0x6e, 0xb0, 0xfc, 0x78, 0x7b, 0xc3, 0xdb, 0x3a, 0x07, 0xeb, 0xdf, 0xa0, 0x37, 0x7c, 0xee, 0x32, 0xb8, 0xbc, 0x41, 0x29, 0x21, 0xbe, 0xc1, 0x0a, 0x32, 0xfd, 0x0d, 0x0f, 0x4a, 0x6e, 0xb0, 0xfc, 0x78, 0x7b, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0x88, 0xf5, 0x1b, 0xb4, 0xc1, 0x50, 0xb0, 0x86, 0x8f, 0xda, 0x0f, 0xd6, 0xef, 0x41, 0x77, 0x70, 0xae, 0x37, 0x58, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0xe1, 0x82, 0x5e, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x88, 0xe6, 0x86, 0x37, 0xee, 0xe6, 0xa0, 0x2c, 0xc3, 0x3e, 0x68, 0x4d, 0xcd, 0x60, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0xe1, 0x82, 0x5e, 0xc3, 0xe7, 0x2e, 0x83, 0xc3, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x61, 0x30, 0x83, 0x83, 0xd6, 0x78, 0x08, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x12, 0x2e, 0xe8, 0x35, 0x7c, 0xee, 0x32, 0x78, 0xbc, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x25, 0xc4, 0x37, 0x58, 0x41, 0xa6, 0x7f, 0xd0, 0x0c, 0x9d, 0xc1, 0x86, 0x4e, 0x6a, 0x6d, 0x78, 0x9e, 0x64, 0x83, 0x25, 0x5c, 0xd0, 0x1b, 0x3e, 0x77, 0x19, 0x5c, 0xde, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x12, 0xe2, 0x1b, 0xac, 0x20, 0xd3, 0x3f, 0x68, 0x6e, 0xcf, 0x60, 0x83, 0x91, 0xd9, 0xdb, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x01, 0xf4, 0xd1, 0x1a, 0x1e, 0x94, 0xdc, 0x38, 0xb4, 0xe1, 0x79, 0x92, 0x0d, 0xd6, 0x0b, 0x42, 0xaf, 0xe1, 0x8d, 0xbb, 0x83, 0xa5, 0x89, 0xd0, 0x1b, 0x34, 0xc6, 0x4b, 0x70, 0xd0, 0x7e, 0x09, 0xc1, 0xc1, 0xb9, 0xde, 0x60, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x5e, 0x10, 0x7a, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x21, 0x9a, 0x1b, 0xde, 0xb8, 0x9b, 0xc3, 0x77, 0x2d, 0x07, 0xad, 0x95, 0x1a, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0xf5, 0x82, 0xd0, 0x1b, 0xb4, 0x0a, 0x4d, 0xb0, 0xe1, 0x79, 0x92, 0x0d, 0xd6, 0x0b, 0x42, 0x1f, 0xb4, 0xf3, 0x43, 0xb0, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x00, 0x7d, 0xb4, 0x86, 0x07, 0x25, 0x37, 0x0e, 0x6d, 0x78, 0x9e, 0x64, 0x83, 0xe5, 0x90, 0xd0, 0x6b, 0x78, 0xe3, 0xee, 0x60, 0xe5, 0x25, 0xf4, 0x1a, 0x3e, 0x77, 0x19, 0x1c, 0xde, 0xa0, 0x94, 0x10, 0xdf, 0x60, 0x05, 0x99, 0xfe, 0x86, 0x07, 0x25, 0x37, 0x58, 0x7e, 0xbc, 0xbd, 0xe1, 0xdd, 0x9e, 0x0d, 0xca, 0x26, 0xcc, 0x83, 0x06, 0x83, 0x0c, 0x36, 0x7c, 0xee, 0x32, 0x78, 0x7c, 0xd0, 0xda, 0x9d, 0xc1, 0xc1, 0xb9, 0xde, 0x60, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x1c, 0x12, 0x7a, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x21, 0x9a, 0x1b, 0xde, 0xb8, 0x9b, 0x83, 0x92, 0x85, 0xfd, 0xa0, 0xad, 0x5e, 0x83, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x1c, 0x12, 0x7a, 0x0d, 0x9f, 0xbb, 0x0c, 0x0e, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0x4a, 0x09, 0xf1, 0x0d, 0x56, 0x90, 0xe9, 0x1f, 0xb4, 0x4a, 0x6c, 0x70, 0xd0, 0x1a, 0x0f, 0xc1, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x0e, 0x09, 0xbd, 0xe1, 0x73, 0x97, 0xc1, 0xe3, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xf2, 0xa6, 0xc1, 0x41, 0x8b, 0x42, 0x04, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x05, 0xd0, 0x47, 0x6b, 0x78, 0x50, 0x72, 0xe3, 0xd0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0xad, 0x0a, 0xbd, 0x86, 0x37, 0xee, 0x0e, 0x16, 0xc6, 0x42, 0x1f, 0x34, 0xc6, 0x4b, 0x70, 0x70, 0xae, 0x37, 0x58, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x56, 0x85, 0x5e, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x88, 0xe6, 0x86, 0x37, 0xee, 0xe6, 0xe0, 0x3c, 0xd8, 0x71, 0xd0, 0xae, 0xb9, 0xc1, 0x86, 0xe7, 0x49, 0x36, 0x58, 0xad, 0x0a, 0x7d, 0xd0, 0x9e, 0x54, 0xc1, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x01, 0xf4, 0xd1, 0x1a, 0x1e, 0x94, 0xdc, 0x38, 0xb4, 0xe1, 0x79, 0x92, 0x0d, 0x96, 0xe4, 0x42, 0xaf, 0xe1, 0x8d, 0xbb, 0x83, 0xe5, 0xbf, 0xd0, 0x1b, 0x34, 0xc6, 0x4b, 0x70, 0xd0, 0xe4, 0xb1, 0xc1, 0xc1, 0xb9, 0xde, 0x60, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x24, 0x17, 0x7a, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x21, 0x9a, 0x1b, 0xde, 0xb8, 0x9b, 0x83, 0x03, 0x16, 0xdd, 0x41, 0xab, 0xfa, 0x06, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x49, 0x2e, 0xf4, 0x06, 0xad, 0x42, 0x13, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0x25, 0xb9, 0xd0, 0x07, 0xad, 0x73, 0x1b, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0x16, 0x40, 0x1f, 0xad, 0xe1, 0x41, 0xc9, 0x8d, 0x43, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x6d, 0x32, 0xf4, 0x1a, 0xde, 0xb8, 0x3b, 0x58, 0x06, 0x0d, 0x7d, 0xd0, 0x18, 0x2f, 0xc1, 0xc1, 0xb9, 0xde, 0x60, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x36, 0x19, 0x7a, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x21, 0x9a, 0x1b, 0xde, 0xb8, 0x9b, 0xc3, 0x57, 0x38, 0x07, 0x2d, 0x4b, 0x1c, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0xb5, 0xc9, 0xd0, 0x07, 0xed, 0x49, 0x15, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0x16, 0x40, 0x1f, 0xad, 0xe1, 0x41, 0xc9, 0x8d, 0x43, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0xe9, 0x35, 0xf4, 0x1a, 0xde, 0xb8, 0x3b, 0x58, 0xe6, 0x0d, 0xbd, 0x41, 0x5b, 0x6c, 0x06, 0x07, 0xed, 0x97, 0x10, 0x1c, 0x9c, 0xeb, 0x0d, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0x4b, 0xaf, 0xa1, 0xd7, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0xa2, 0xb9, 0xe1, 0x8d, 0xbb, 0x39, 0x58, 0x5c, 0x98, 0x74, 0xd0, 0xa2, 0xc9, 0xc1, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x7a, 0x0d, 0xbd, 0x41, 0xf3, 0x8a, 0x06, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0xe9, 0x35, 0xf4, 0x41, 0x3b, 0x3f, 0x04, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x05, 0xd0, 0x47, 0x6b, 0x78, 0x50, 0x72, 0xe3, 0xd0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x85, 0x0e, 0xbd, 0x86, 0x37, 0xee, 0x0e, 0x16, 0xbc, 0x43, 0x1f, 0xb4, 0x86, 0x72, 0x70, 0x70, 0xae, 0x37, 0x58, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x42, 0x87, 0x5e, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x88, 0xe6, 0x86, 0x37, 0xee, 0xe6, 0xa0, 0x50, 0xee, 0x3c, 0x68, 0xd7, 0xe7, 0x60, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x42, 0x87, 0xde, 0xa0, 0x79, 0x45, 0x83, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x0a, 0x1d, 0xfa, 0xa0, 0x9d, 0x1f, 0x82, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0xb4, 0x87, 0x5e, 0xc3, 0x1b, 0x77, 0x07, 0x8b, 0xfa, 0xa1, 0x0f, 0x5a, 0x43, 0x39, 0x38, 0x38, 0xd7, 0x1b, 0xac, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0xda, 0x43, 0xaf, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x44, 0x73, 0xc3, 0x1b, 0x77, 0x73, 0xf8, 0x45, 0xe9, 0xa0, 0xd9, 0xaa, 0x83, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xd2, 0x1e, 0x7a, 0x83, 0xe6, 0x15, 0x0d, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x4a, 0x7b, 0xe8, 0x83, 0x76, 0x7e, 0x08, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0x0b, 0xa0, 0x8f, 0xd6, 0xf0, 0xa0, 0xe4, 0xc6, 0xa1, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x90, 0x20, 0x7a, 0x0d, 0x6f, 0xdc, 0x1d, 0x2c, 0x5a, 0x88, 0x3e, 0x68, 0xe7, 0xd7, 0xe0, 0xe0, 0x5c, 0x6f, 0xb0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x48, 0x10, 0xbd, 0x06, 0x05, 0x1f, 0xe6, 0x1a, 0xfe, 0xcd, 0xd9, 0x10, 0xcd, 0x0d, 0x6f, 0xdc, 0xcd, 0x41, 0x99, 0x77, 0x79, 0xd0, 0x20, 0xdb, 0xc1, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x48, 0x10, 0xbd, 0x41, 0x83, 0xd4, 0x06, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x21, 0x41, 0xf4, 0x41, 0xeb, 0xdc, 0x06, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x05, 0xd0, 0x47, 0x6b, 0x78, 0x50, 0x72, 0xe3, 0xd0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x2d, 0x11, 0xbd, 0x86, 0x37, 0xee, 0x0e, 0x16, 0x66, 0x44, 0x1f, 0x34, 0xc6, 0x4b, 0x70, 0x70, 0xae, 0x37, 0x58, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x96, 0x88, 0x5e, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x88, 0xe6, 0x86, 0x37, 0xee, 0xe6, 0x20, 0xe4, 0xd7, 0x0e, 0xda, 0x1b, 0x3c, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0xab, 0x25, 0xa2, 0x0f, 0xda, 0x93, 0x2a, 0xd8, 0xf0, 0x41, 0xce, 0x1a, 0x2c, 0x80, 0x3e, 0x5a, 0xc3, 0x83, 0x92, 0x1b, 0x87, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x7a, 0x90, 0xe8, 0x35, 0xbc, 0x71, 0x77, 0xb0, 0x5e, 0x25, 0xfa, 0xa0, 0xa5, 0x53, 0x83, 0x83, 0x73, 0xbd, 0xc1, 0x1a, 0x9e, 0x27, 0xd9, 0x60, 0x3d, 0x48, 0xf4, 0x1a, 0x14, 0x7c, 0x98, 0x6b, 0xf8, 0x37, 0x67, 0x43, 0x34, 0x37, 0xbc, 0x71, 0x37, 0x07, 0x4b, 0xaa, 0x93, 0x0e, 0x9a, 0xba, 0x3c, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0xeb, 0x41, 0xa2, 0x37, 0x68, 0x15, 0x9a, 0x60, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x07, 0x89, 0x3e, 0x68, 0xe7, 0x87, 0x60, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x00, 0xfa, 0x68, 0x0d, 0x0f, 0x4a, 0x6e, 0x1c, 0xda, 0xf0, 0x3c, 0xc9, 0x06, 0x6b, 0x65, 0xa2, 0xd7, 0xf0, 0xc6, 0xdd, 0xc1, 0x6a, 0x9f, 0xe8, 0x0d, 0x1a, 0xe3, 0x25, 0xd8, 0xa0, 0xfd, 0x12, 0x82, 0x35, 0x7c, 0xee, 0x32, 0xb8, 0x7c, 0xd0, 0xd4, 0x09, 0xc1, 0x86, 0xcf, 0x5d, 0x06, 0x9f, 0x0f, 0x9a, 0x3a, 0x21, 0x38, 0x38, 0xd7, 0x1b, 0xac, 0xe1, 0x79, 0x92, 0x0d, 0xd6, 0xca, 0x44, 0xaf, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x44, 0x73, 0xc3, 0x1b, 0x77, 0x73, 0xb0, 0xa8, 0x3c, 0xe9, 0xa0, 0x31, 0xd7, 0x83, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x56, 0x26, 0x7a, 0x83, 0x56, 0xa1, 0x09, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x5a, 0x99, 0xe8, 0x35, 0x7c, 0xee, 0x32, 0x78, 0xbc, 0xe1, 0xdd, 0x9e, 0x0d, 0x5a, 0xfc, 0x1d, 0x38, 0x68, 0xd7, 0xd2, 0x60, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x95, 0x89, 0x5e, 0xc3, 0xe7, 0x2e, 0x83, 0xcb, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xc5, 0xdf, 0x81, 0x0d, 0x4d, 0xb8, 0xda, 0xf0, 0x3c, 0xc9, 0x06, 0x6b, 0x65, 0xa2, 0x37, 0x7c, 0xee, 0x32, 0xf8, 0xbc, 0xe1, 0xdd, 0x9e, 0x0d, 0x5a, 0xfc, 0x1d, 0xd8, 0xe0, 0xac, 0x7e, 0xde, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x01, 0xf4, 0xd1, 0x1a, 0x1e, 0x94, 0xdc, 0x38, 0xb4, 0xe1, 0x79, 0x92, 0x0d, 0x16, 0x4b, 0x45, 0xaf, 0xe1, 0x8d, 0xbb, 0x83, 0xc5, 0x5c, 0xd1, 0x07, 0x2d, 0x9d, 0x1a, 0x1c, 0x9c, 0xeb, 0x0d, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0x8b, 0xa5, 0xa2, 0xd7, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0xa2, 0xb9, 0xe1, 0x8d, 0xbb, 0x39, 0x28, 0x0c, 0x55, 0x0f, 0x5a, 0xdb, 0x3e, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0x8b, 0xa5, 0xa2, 0x37, 0x68, 0x15, 0x9a, 0x60, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0x96, 0x8a, 0x3e, 0x68, 0xe7, 0x87, 0x60, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x00, 0xfa, 0x68, 0x0d, 0x0f, 0x4a, 0x6e, 0x1c, 0xda, 0xf0, 0x3c, 0xc9, 0x06, 0xab, 0xc8, 0xa2, 0xd7, 0xf0, 0xc6, 0xdd, 0xc1, 0xba, 0xb7, 0xe8, 0x0d, 0x1a, 0xe3, 0x25, 0xd8, 0xa0, 0xfd, 0x12, 0x82, 0x83, 0x26, 0x65, 0x0f, 0x0e, 0xce, 0xf5, 0x06, 0x6b, 0x78, 0x9e, 0x64, 0x83, 0x55, 0x64, 0xd1, 0x6b, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0xd1, 0xdc, 0xf0, 0xc6, 0xdd, 0x1c, 0x9c, 0xf3, 0x97, 0x0e, 0x1a, 0x93, 0x3f, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0xab, 0xc8, 0xa2, 0x37, 0x68, 0x15, 0x9a, 0x60, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x22, 0x8b, 0xde, 0xa0, 0x89, 0xe2, 0x83, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x8a, 0x2c, 0x7a, 0xc3, 0xe7, 0x2e, 0x83, 0xcb, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xc5, 0xdf, 0x81, 0x83, 0xe6, 0x3d, 0x0d, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0x0b, 0xa0, 0x8f, 0xd6, 0xf0, 0xa0, 0xe4, 0xc6, 0xa1, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x76, 0x2f, 0x7a, 0x0d, 0x6f, 0xdc, 0x1d, 0xac, 0x2d, 0x8c, 0x3e, 0x68, 0xca, 0xb2, 0xe0, 0xe0, 0x5c, 0x6f, 0xb0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0xbb, 0x17, 0xbd, 0x06, 0x05, 0x1f, 0xe6, 0x1a, 0xfe, 0xcd, 0xd9, 0x10, 0xcd, 0x0d, 0x6f, 0xdc, 0xcd, 0xc1, 0xd1, 0x75, 0xf0, 0xa0, 0x01, 0x09, 0x84, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x76, 0x2f, 0xfa, 0xa0, 0x05, 0xd5, 0x82, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x6a, 0x8c, 0x5e, 0xc3, 0x1b, 0x77, 0x07, 0xeb, 0x35, 0xa3, 0x0f, 0x9a, 0xb2, 0x2c, 0x38, 0x38, 0xd7, 0x1b, 0xac, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0x35, 0x46, 0xaf, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x44, 0x73, 0xc3, 0x1b, 0x77, 0x73, 0xf8, 0xc5, 0xe5, 0xa0, 0xf9, 0x12, 0x84, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xaa, 0x31, 0xfa, 0xa0, 0x05, 0xd5, 0x82, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x11, 0x8d, 0x5e, 0xc3, 0x1b, 0x77, 0x07, 0xeb, 0x51, 0xa3, 0x37, 0x68, 0x5f, 0xbd, 0x60, 0xc3, 0xe7, 0x2e, 0x83, 0xc7, 0x1b, 0x94, 0x12, 0xe2, 0x1b, 0xac, 0x20, 0xd3, 0xdf, 0xf0, 0xa0, 0xe4, 0x06, 0xcb, 0x8f, 0xb7, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x48, 0x99, 0xac, 0xe1, 0xa3, 0xf6, 0x83, 0x95, 0xb5, 0xd1, 0x1d, 0x9c, 0xeb, 0x0d, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0x6b, 0x44, 0xa3, 0xd7, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0xa2, 0xb9, 0xe1, 0x8d, 0xbb, 0x39, 0x58, 0x85, 0xa4, 0x74, 0xd0, 0x6c, 0x0e, 0xc2, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x23, 0x1a, 0xbd, 0x86, 0xcf, 0x5d, 0x06, 0x87, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x3b, 0xd9, 0x04, 0x07, 0xad, 0xf1, 0x10, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0x35, 0xa2, 0xd1, 0x1b, 0x3e, 0x77, 0x19, 0x3c, 0xde, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x12, 0xe2, 0x1b, 0xac, 0x20, 0xd3, 0x3f, 0x68, 0x42, 0x08, 0xe1, 0xa0, 0x45, 0x21, 0x82, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0xff, 0x8d, 0x5e, 0xc3, 0x1b, 0x77, 0x07, 0x2b, 0x8d, 0xa3, 0x0f, 0x5a, 0x3a, 0x35, 0x38, 0x38, 0xd7, 0x1b, 0xac, 0xe1, 0x79, 0x92, 0x0d, 0x96, 0xff, 0x46, 0xaf, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x44, 0x73, 0xc3, 0x1b, 0x77, 0x73, 0x70, 0x6a, 0x38, 0x3a, 0x68, 0x56, 0x0c, 0x61, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0xff, 0x8d, 0xde, 0xa0, 0x55, 0x68, 0x82, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xfc, 0x37, 0xfa, 0xa0, 0x9d, 0x1f, 0x82, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x71, 0x8e, 0x5e, 0xc3, 0x1b, 0x77, 0x07, 0xcb, 0xa9, 0xa3, 0x0f, 0x5a, 0x3a, 0x35, 0x38, 0x38, 0xd7, 0x1b, 0xac, 0xe1, 0x79, 0x92, 0x0d, 0xd6, 0x38, 0x47, 0xaf, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x44, 0x73, 0xc3, 0x1b, 0x77, 0x73, 0x70, 0x62, 0xbf, 0x39, 0x68, 0x36, 0x0f, 0x61, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x71, 0x8e, 0xde, 0xa0, 0x55, 0x68, 0x82, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xc6, 0x39, 0xfa, 0xa0, 0x9d, 0x1f, 0x82, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0xe4, 0x8e, 0x5e, 0xc3, 0x1b, 0x77, 0x07, 0x6b, 0xc6, 0xa3, 0x37, 0x68, 0x8c, 0x97, 0x60, 0xc3, 0xe7, 0x2e, 0x83, 0xc7, 0x07, 0xad, 0x5e, 0x16, 0x1c, 0x9c, 0xeb, 0x0d, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0x0b, 0xb9, 0xa3, 0xd7, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0xa2, 0xb9, 0xe1, 0x8d, 0xbb, 0x39, 0xbc, 0xdb, 0x73, 0xd0, 0x2c, 0x24, 0xc2, 0x86, 0xe7, 0x49, 0x36, 0x58, 0xc8, 0x1d, 0xbd, 0x41, 0xab, 0xd0, 0x04, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x21, 0x77, 0xf4, 0x86, 0xcf, 0x5d, 0x06, 0x8f, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x4b, 0xac, 0x05, 0x07, 0x2d, 0x0a, 0x11, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0x16, 0x40, 0x1f, 0xad, 0xe1, 0x41, 0xc9, 0x8d, 0x43, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0xe5, 0x7b, 0xf4, 0x1a, 0xde, 0xb8, 0x3b, 0x58, 0x64, 0x1f, 0xbd, 0x41, 0xfb, 0xea, 0x05, 0x1b, 0xb4, 0x5f, 0x42, 0xb0, 0xe1, 0x73, 0x97, 0xc1, 0xe5, 0x83, 0x16, 0x7c, 0x10, 0x0e, 0xce, 0xf5, 0x06, 0x6b, 0x78, 0x9e, 0x64, 0x83, 0x95, 0xef, 0xd1, 0x6b, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0xd1, 0xdc, 0xf0, 0xc6, 0xdd, 0x1c, 0x24, 0xe1, 0x25, 0x1d, 0xb4, 0xd4, 0x8a, 0xb0, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0xbe, 0x47, 0x6f, 0xd0, 0x1e, 0x14, 0xc2, 0x86, 0xe7, 0x49, 0x36, 0x58, 0xf9, 0x1e, 0xbd, 0x41, 0x13, 0xc5, 0x07, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0xe5, 0x7b, 0xf4, 0x86, 0xcf, 0x5d, 0x06, 0x97, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x0b, 0x59, 0x08, 0x07, 0xcd, 0x7b, 0x1a, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0x16, 0x40, 0x1f, 0xad, 0xe1, 0x41, 0xc9, 0x8d, 0x43, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x51, 0x81, 0xf4, 0x1a, 0xde, 0xb8, 0x3b, 0x58, 0xc0, 0x20, 0x7d, 0xd0, 0x10, 0xec, 0xc1, 0xc1, 0xb9, 0xde, 0x60, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xa8, 0x40, 0x7a, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x21, 0x9a, 0x1b, 0xde, 0xb8, 0x9b, 0x83, 0x55, 0xbd, 0x4a, 0x07, 0x2d, 0x39, 0x23, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0x45, 0x05, 0xd2, 0x1b, 0xb4, 0x0a, 0x4d, 0xb0, 0xe1, 0x79, 0x92, 0x0d, 0x16, 0x15, 0x48, 0x6f, 0xd0, 0x44, 0xf1, 0xc1, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x54, 0x20, 0xbd, 0x41, 0x73, 0xcb, 0x07, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x51, 0x81, 0xf4, 0x41, 0x93, 0xd1, 0x07, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x05, 0xd0, 0x47, 0x6b, 0x78, 0x50, 0x72, 0xe3, 0xd0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x3c, 0x21, 0xbd, 0x86, 0x37, 0xee, 0x0e, 0xd6, 0x69, 0x48, 0x1f, 0x34, 0x44, 0x7f, 0x70, 0x70, 0xae, 0x37, 0x58, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0x9e, 0x90, 0x5e, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x88, 0xe6, 0x86, 0x37, 0xee, 0xe6, 0xa0, 0xe8, 0x34, 0x3e, 0x68, 0x6f, 0x1d, 0x61, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0x9e, 0x90, 0xde, 0xa0, 0x55, 0x68, 0x82, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x78, 0x42, 0x7a, 0x83, 0x26, 0x8a, 0x0f, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0xe2, 0x09, 0xe9, 0x83, 0x66, 0x10, 0x10, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0x0b, 0xa0, 0x8f, 0xd6, 0xf0, 0xa0, 0xe4, 0xc6, 0xa1, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x40, 0x44, 0x7a, 0x0d, 0x6f, 0xdc, 0x1d, 0x2c, 0x46, 0x91, 0xde, 0xa0, 0x7d, 0xf5, 0x82, 0x0d, 0xda, 0x2f, 0x21, 0xd8, 0xf0, 0xb9, 0xcb, 0xe0, 0xf2, 0x41, 0xab, 0x97, 0x05, 0x07, 0xe7, 0x7a, 0x83, 0x35, 0x3c, 0x4f, 0xb2, 0xc1, 0x02, 0x11, 0xe9, 0x35, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x6f, 0xce, 0x86, 0x68, 0x6e, 0x78, 0xe3, 0x6e, 0x0e, 0xca, 0x92, 0xf7, 0x83, 0x06, 0x0b, 0x12, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x02, 0x11, 0xe9, 0x0d, 0xda, 0x83, 0x42, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0x0b, 0x44, 0xa4, 0x37, 0x68, 0xa2, 0xf8, 0x60, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0x10, 0x91, 0xde, 0xf0, 0xb9, 0xcb, 0xe0, 0xf2, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x89, 0xb5, 0xe0, 0xa0, 0x79, 0x4f, 0x83, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0xbd, 0x91, 0x5e, 0xc3, 0x1b, 0x77, 0x07, 0xab, 0x7c, 0xa4, 0x0f, 0x9a, 0xdc, 0x41, 0x38, 0x38, 0xd7, 0x1b, 0xac, 0xe1, 0x79, 0x92, 0x0d, 0x96, 0xde, 0x48, 0xaf, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x44, 0x73, 0xc3, 0x1b, 0x77, 0x73, 0xb8, 0xa4, 0x0e, 0x9a, 0x33, 0x49, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0x4b, 0x6f, 0xa4, 0x37, 0x68, 0x0f, 0x0a, 0x61, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0xbd, 0x91, 0x3e, 0x68, 0xd9, 0x0a, 0x61, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x00, 0xfa, 0x68, 0x0d, 0x0f, 0x4a, 0x6e, 0x1c, 0xda, 0xf0, 0x3c, 0xc9, 0x06, 0xab, 0x8a, 0xa4, 0xd7, 0xf0, 0xc6, 0xdd, 0xc1, 0x72, 0x28, 0xe9, 0x83, 0xd6, 0x50, 0x0e, 0x0e, 0xce, 0xf5, 0x06, 0x6b, 0x78, 0x9e, 0x64, 0x83, 0x55, 0x45, 0xd2, 0x6b, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0xd1, 0xdc, 0xf0, 0xc6, 0xdd, 0x1c, 0xac, 0x0e, 0x58, 0x3a, 0x68, 0xa4, 0x27, 0x61, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x2a, 0x92, 0xde, 0xa0, 0x79, 0x45, 0x83, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xaa, 0x48, 0xfa, 0xa0, 0x9d, 0x1f, 0x82, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0xc5, 0x92, 0x5e, 0xc3, 0x1b, 0x77, 0x07, 0x6b, 0xc7, 0xa4, 0x0f, 0x1a, 0xe3, 0x25, 0x38, 0x38, 0xd7, 0x1b, 0xac, 0xe1, 0x79, 0x92, 0x0d, 0x96, 0x62, 0x49, 0xaf, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x44, 0x73, 0xc3, 0x1b, 0x77, 0x73, 0xf8, 0x38, 0xea, 0xa0, 0x19, 0xaa, 0x84, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x14, 0x4b, 0xfa, 0xa0, 0x3d, 0xa9, 0x82, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x57, 0x93, 0x5e, 0xc3, 0x1b, 0x77, 0x07, 0x0b, 0xec, 0xa4, 0x0f, 0x5a, 0x3a, 0x35, 0x38, 0x38, 0xd7, 0x1b, 0xac, 0xe1, 0x79, 0x92, 0x0d, 0xd6, 0xab, 0x49, 0xaf, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x44, 0x73, 0xc3, 0x1b, 0x77, 0x73, 0xb0, 0x20, 0x64, 0xe9, 0xa0, 0xf9, 0xb3, 0x84, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x5e, 0x4d, 0x7a, 0x83, 0x56, 0xa1, 0x09, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x7a, 0x35, 0xe9, 0x83, 0x76, 0x7e, 0x08, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0x0b, 0xa0, 0x8f, 0xd6, 0xf0, 0xa0, 0xe4, 0xc6, 0xa1, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xb8, 0x4f, 0x7a, 0x0d, 0x6f, 0xdc, 0x1d, 0xac, 0x46, 0x94, 0x3e, 0x68, 0xe9, 0xd4, 0xe0, 0xe0, 0x5c, 0x6f, 0xb0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0xdc, 0x27, 0xbd, 0x06, 0x05, 0x1f, 0xe6, 0x1a, 0xfe, 0xcd, 0xd9, 0x10, 0xcd, 0x0d, 0x6f, 0xdc, 0xcd, 0xe1, 0xdf, 0x9c, 0x83, 0x06, 0xfe, 0x12, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0xe2, 0x3e, 0xe9, 0x0d, 0x5a, 0x85, 0x26, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0x8b, 0xfb, 0xa4, 0x0f, 0xda, 0xf9, 0x21, 0xd8, 0xf0, 0x41, 0xce, 0x1a, 0x2c, 0x80, 0x3e, 0x5a, 0xc3, 0x83, 0x92, 0x1b, 0x87, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x0a, 0x48, 0xe9, 0x35, 0xbc, 0x71, 0x77, 0xb0, 0x64, 0x53, 0xfa, 0xa0, 0x31, 0x5e, 0x82, 0x83, 0x73, 0xbd, 0xc1, 0x1a, 0x9e, 0x27, 0xd9, 0x60, 0x05, 0xa4, 0xf4, 0x1a, 0x14, 0x7c, 0x98, 0x6b, 0xf8, 0x37, 0x67, 0x43, 0x34, 0x37, 0xbc, 0x71, 0x37, 0x07, 0x6b, 0x80, 0x96, 0x0e, 0x9a, 0xae, 0x4c, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0x2b, 0x20, 0xa5, 0x0f, 0xda, 0x93, 0x2a, 0xd8, 0xf0, 0x41, 0xce, 0x1a, 0x2c, 0x80, 0x3e, 0x5a, 0xc3, 0x83, 0x92, 0x1b, 0x87, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x72, 0x51, 0xe9, 0x35, 0xbc, 0x71, 0x77, 0xb0, 0x34, 0x56, 0xfa, 0xa0, 0x31, 0x5e, 0x82, 0x83, 0x73, 0xbd, 0xc1, 0x1a, 0x9e, 0x27, 0xd9, 0x60, 0xb9, 0xa8, 0xf4, 0x1a, 0x14, 0x7c, 0x98, 0x6b, 0xf8, 0x37, 0x67, 0x43, 0x34, 0x37, 0xbc, 0x71, 0x37, 0x07, 0x49, 0x0b, 0x46, 0x07, 0x4d, 0xa7, 0x26, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0xe5, 0xa2, 0xd2, 0x07, 0xed, 0x49, 0x15, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0x16, 0x40, 0x1f, 0xad, 0xe1, 0x41, 0xc9, 0x8d, 0x43, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x55, 0xae, 0xf4, 0x1a, 0xde, 0xb8, 0x3b, 0x58, 0x5f, 0x2c, 0x7d, 0xd0, 0xd2, 0xa9, 0xc1, 0xc1, 0xb9, 0xde, 0x60, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x2a, 0x57, 0x7a, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x21, 0x9a, 0x1b, 0xde, 0xb8, 0x9b, 0x83, 0x63, 0x9b, 0xe3, 0x41, 0xcb, 0xbd, 0x09, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x55, 0xae, 0xf4, 0x06, 0xad, 0x42, 0x13, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0x55, 0xb9, 0xd2, 0x07, 0xed, 0xfc, 0x10, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0x16, 0x40, 0x1f, 0xad, 0xe1, 0x41, 0xc9, 0x8d, 0x43, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x65, 0xb3, 0xf4, 0x1a, 0xde, 0xb8, 0x3b, 0x58, 0xd5, 0x2d, 0x7d, 0xd0, 0xd2, 0xa9, 0xc1, 0xc1, 0xb9, 0xde, 0x60, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xb2, 0x59, 0x7a, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x21, 0x9a, 0x1b, 0xde, 0xb8, 0x9b, 0xc3, 0xd7, 0x2f, 0x07, 0x2d, 0x53, 0x27, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0x95, 0xcd, 0xd2, 0x1b, 0xb4, 0x0a, 0x4d, 0xb0, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0x36, 0x4b, 0x1f, 0xb4, 0xf3, 0x43, 0xb0, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x00, 0x7d, 0xb4, 0x86, 0x07, 0x25, 0x37, 0x0e, 0x6d, 0x78, 0x9e, 0x64, 0x83, 0x95, 0xe4, 0xd2, 0x6b, 0x78, 0xe3, 0xee, 0x60, 0xf5, 0xbc, 0xf4, 0x41, 0x6b, 0x28, 0x07, 0x07, 0xe7, 0x7a, 0x83, 0x35, 0x3c, 0x4f, 0xb2, 0xc1, 0x4a, 0x72, 0xe9, 0x35, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x6f, 0xce, 0x86, 0x68, 0x6e, 0x78, 0xe3, 0x6e, 0x0e, 0x7f, 0xd1, 0x1c, 0xb4, 0xb9, 0x9e, 0xb0, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0x92, 0x4b, 0x6f, 0xd0, 0xbc, 0xa2, 0xc1, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x49, 0x2e, 0x7d, 0xd0, 0xce, 0x0f, 0xc1, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x01, 0xf4, 0xd1, 0x1a, 0x1e, 0x94, 0xdc, 0x38, 0xb4, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0xec, 0x4b, 0xaf, 0xe1, 0x8d, 0xbb, 0x83, 0xb5, 0x07, 0xd3, 0x07, 0x8d, 0xf1, 0x12, 0x1c, 0x9c, 0xeb, 0x0d, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0x2b, 0xf6, 0xa5, 0xd7, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0xa2, 0xb9, 0xe1, 0x8d, 0xbb, 0x39, 0x58, 0xd6, 0xb8, 0x74, 0xd0, 0x9a, 0x80, 0xc2, 0x86, 0xe7, 0x49, 0x36, 0x58, 0xb1, 0x2f, 0x7d, 0xd0, 0x9e, 0x54, 0xc1, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x01, 0xf4, 0xd1, 0x1a, 0x1e, 0x94, 0xdc, 0x38, 0xb4, 0xe1, 0x79, 0x92, 0x0d, 0xd6, 0x3d, 0x4c, 0xaf, 0xe1, 0x8d, 0xbb, 0x83, 0x95, 0x1b, 0xd3, 0x07, 0x8d, 0xf1, 0x12, 0x1c, 0x9c, 0xeb, 0x0d, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0xeb, 0x1e, 0xa6, 0xd7, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0xa2, 0xb9, 0xe1, 0x8d, 0xbb, 0x39, 0x58, 0xd8, 0xb9, 0x74, 0xd0, 0x9a, 0x85, 0xc2, 0x86, 0xe7, 0x49, 0x36, 0x58, 0xf7, 0x30, 0x7d, 0xd0, 0x9e, 0x54, 0xc1, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x01, 0xf4, 0xd1, 0x1a, 0x1e, 0x94, 0xdc, 0x38, 0xb4, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0x8d, 0x4c, 0xaf, 0xe1, 0x8d, 0xbb, 0x83, 0xf5, 0x2d, 0xd3, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0x78, 0x83, 0x52, 0x42, 0x7c, 0x83, 0x15, 0x64, 0xfa, 0x1b, 0x1e, 0x94, 0xdc, 0x60, 0xf9, 0xf1, 0xf6, 0x86, 0xb7, 0x75, 0x0e, 0x56, 0xd7, 0x4c, 0x1f, 0xb4, 0x5f, 0x42, 0x70, 0x70, 0xae, 0x37, 0x58, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x1a, 0x99, 0x5e, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x88, 0xe6, 0x86, 0x37, 0xee, 0xe6, 0xf0, 0xb9, 0xcb, 0x41, 0x6b, 0x2a, 0x0a, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0xd5, 0xc8, 0xf4, 0x1a, 0x3e, 0x77, 0x19, 0x1c, 0xde, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x12, 0xe2, 0x1b, 0xac, 0x20, 0xd3, 0x3f, 0x68, 0x37, 0x46, 0xe1, 0xa0, 0x35, 0x1e, 0x82, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x6a, 0x64, 0xfa, 0xa0, 0x9d, 0x1f, 0x82, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0xe6, 0x99, 0x5e, 0xc3, 0x1b, 0x77, 0x07, 0xeb, 0x92, 0xa6, 0x0f, 0x1a, 0xe3, 0x25, 0x38, 0x38, 0xd7, 0x1b, 0xac, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0xf3, 0x4c, 0xaf, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x44, 0x73, 0xc3, 0x1b, 0x77, 0x73, 0x90, 0x7a, 0x51, 0x7c, 0xd0, 0x7c, 0x93, 0xc2, 0x86, 0xe7, 0x49, 0x36, 0x58, 0xcd, 0x33, 0x7d, 0xd0, 0x9e, 0x54, 0xc1, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x01, 0xf4, 0xd1, 0x1a, 0x1e, 0x94, 0xdc, 0x38, 0xb4, 0xe1, 0x79, 0x92, 0x0d, 0x96, 0x44, 0x4d, 0xaf, 0xe1, 0x8d, 0xbb, 0x83, 0xc5, 0x5c, 0xd3, 0x07, 0x6d, 0xb1, 0x19, 0x1c, 0x9c, 0xeb, 0x0d, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0x4b, 0xa2, 0xa6, 0xd7, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0xa2, 0xb9, 0xe1, 0x8d, 0xbb, 0x39, 0x28, 0x04, 0x53, 0x0f, 0x5a, 0x0f, 0x53, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0x4b, 0xa2, 0xa6, 0x37, 0x7c, 0xee, 0x32, 0x38, 0xbc, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0x06, 0x33, 0x38, 0x38, 0x80, 0x26, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0x16, 0x40, 0x1f, 0xad, 0xe1, 0x41, 0xc9, 0x8d, 0x43, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x25, 0xd9, 0xf4, 0x1a, 0xde, 0xb8, 0x3b, 0x58, 0xfb, 0x36, 0x7d, 0xd0, 0x16, 0x9b, 0xc1, 0xc1, 0xb9, 0xde, 0x60, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x92, 0x6c, 0x7a, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x21, 0x9a, 0x1b, 0xde, 0xb8, 0x9b, 0xc3, 0x47, 0xed, 0x07, 0x2d, 0xe4, 0x29, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0x95, 0x64, 0xd3, 0x07, 0x4d, 0xbd, 0x29, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0x16, 0x40, 0x1f, 0xad, 0xe1, 0x41, 0xc9, 0x8d, 0x43, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0xbd, 0xdd, 0xf4, 0x1a, 0xde, 0xb8, 0x3b, 0x58, 0x5b, 0x38, 0x7d, 0xd0, 0xd2, 0xa9, 0xc1, 0xc1, 0xb9, 0xde, 0x60, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xde, 0x6e, 0x7a, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x21, 0x9a, 0x1b, 0xde, 0xb8, 0x9b, 0x83, 0x25, 0xf5, 0x4b, 0x07, 0x2d, 0x33, 0x2a, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0xf5, 0x76, 0xd3, 0x1b, 0xb4, 0x0a, 0x4d, 0xb0, 0xe1, 0x79, 0x92, 0x0d, 0xd6, 0xdb, 0x4d, 0x1f, 0xb4, 0xf3, 0x43, 0xb0, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x00, 0x7d, 0xb4, 0x86, 0x07, 0x25, 0x37, 0x0e, 0x6d, 0x78, 0x9e, 0x64, 0x83, 0x75, 0x8d, 0xd3, 0x6b, 0x78, 0xe3, 0xee, 0x60, 0x0d, 0xe7, 0xf4, 0x41, 0x4b, 0xa7, 0x06, 0x07, 0xe7, 0x7a, 0x83, 0x35, 0x3c, 0x4f, 0xb2, 0xc1, 0xba, 0xc6, 0xe9, 0x35, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x6f, 0xce, 0x86, 0x68, 0x6e, 0x78, 0xe3, 0x6e, 0x0e, 0x6f, 0xd9, 0x1d, 0xb4, 0x3d, 0xaa, 0xb0, 0xe1, 0x79, 0x92, 0x0d, 0xd6, 0x35, 0x4e, 0x6f, 0xd0, 0x2a, 0x34, 0xc1, 0x86, 0xe7, 0x49, 0x36, 0x58, 0xd7, 0x38, 0x7d, 0xd0, 0xce, 0x0f, 0xc1, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x01, 0xf4, 0xd1, 0x1a, 0x1e, 0x94, 0xdc, 0x38, 0xb4, 0xe1, 0x79, 0x92, 0x0d, 0xd6, 0x8d, 0x4e, 0xaf, 0xe1, 0x8d, 0xbb, 0x83, 0xb5, 0xb3, 0xd3, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0x78, 0x83, 0x52, 0x42, 0x7c, 0x83, 0x15, 0x64, 0xfa, 0x1b, 0x1e, 0x94, 0xdc, 0x60, 0xf9, 0xf1, 0xf6, 0x86, 0xb7, 0x75, 0x0e, 0x96, 0xef, 0x4e, 0x6f, 0xd0, 0x7e, 0x09, 0xc1, 0x1a, 0x3e, 0x77, 0x19, 0x5c, 0xde, 0xa0, 0x94, 0x10, 0xdf, 0x60, 0x05, 0x99, 0xfe, 0x86, 0x07, 0x25, 0x37, 0x58, 0x7e, 0xbc, 0xbd, 0xe1, 0x6d, 0x9d, 0x83, 0xb5, 0xc5, 0xd3, 0x07, 0xed, 0xd3, 0x1e, 0x1c, 0x9c, 0xeb, 0x0d, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0xeb, 0x46, 0xa7, 0xd7, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0xa2, 0xb9, 0xe1, 0x8d, 0xbb, 0x39, 0x28, 0xbb, 0x64, 0x0f, 0x5a, 0xd5, 0x55, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0xeb, 0x46, 0xa7, 0xd7, 0xf0, 0xb9, 0xcb, 0xe0, 0xf0, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x94, 0x10, 0xdf, 0x60, 0x05, 0x99, 0xfe, 0x41, 0xfb, 0xc1, 0x0a, 0x07, 0xad, 0xf1, 0x10, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0x75, 0xa3, 0xd3, 0x1b, 0x34, 0x51, 0x7c, 0xb0, 0xe1, 0x79, 0x92, 0x0d, 0xd6, 0x8d, 0x4e, 0xaf, 0xe1, 0x73, 0x97, 0xc1, 0xe5, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x29, 0x21, 0xbe, 0xc1, 0x0a, 0x32, 0xfd, 0x83, 0xd6, 0x94, 0x15, 0x0e, 0x1a, 0x76, 0x3e, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0xeb, 0x46, 0xa7, 0x0f, 0x9a, 0x8c, 0x3e, 0xd8, 0xf0, 0x41, 0xce, 0x1a, 0x2c, 0x80, 0x3e, 0x5a, 0xc3, 0x83, 0x92, 0x1b, 0x87, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x5a, 0xe6, 0xe9, 0x35, 0xbc, 0x71, 0x77, 0xb0, 0x8e, 0x7b, 0x7a, 0x83, 0x36, 0x79, 0x15, 0x0e, 0xda, 0x2f, 0x21, 0x38, 0x38, 0xd7, 0x1b, 0xac, 0xe1, 0x79, 0x92, 0x0d, 0xd6, 0x32, 0x4f, 0xaf, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x44, 0x73, 0xc3, 0x1b, 0x77, 0x73, 0x78, 0x7c, 0xe4, 0xa0, 0x29, 0x79, 0x85, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x96, 0x79, 0x7a, 0x83, 0xc6, 0xaf, 0x15, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x5a, 0xe6, 0xe9, 0x83, 0x76, 0x7e, 0x08, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0x0b, 0xa0, 0x8f, 0xd6, 0xf0, 0xa0, 0xe4, 0xc6, 0xa1, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xbc, 0x7c, 0x7a, 0x0d, 0x6f, 0xdc, 0x1d, 0x2c, 0xa5, 0x9f, 0x5e, 0xc3, 0xe7, 0x2e, 0x83, 0xc3, 0x1b, 0x3e, 0xb1, 0xd9, 0xa0, 0xfd, 0xdc, 0x82, 0x0d, 0x1f, 0xe4, 0x6c, 0xd0, 0x88, 0x70, 0xc1, 0x6a, 0xf8, 0xdc, 0x65, 0x70, 0x78, 0xc3, 0xbb, 0x3d, 0x1b, 0xb4, 0xb0, 0x5c, 0x70, 0x90, 0x90, 0xde, 0xbd, 0xe1, 0x73, 0x97, 0xc1, 0xe3, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x29, 0x21, 0xbe, 0x41, 0xbb, 0xc5, 0x05, 0x07, 0x8d, 0x06, 0x0f, 0x1c, 0x24, 0x5e, 0x77, 0x1f, 0x34, 0xa2, 0x5c, 0x70, 0xd0, 0x7e, 0x09, 0xc1, 0xc1, 0xb9, 0xde, 0x60, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xbc, 0x7c, 0x7a, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x21, 0x9a, 0x1b, 0xde, 0xb8, 0x9b, 0x83, 0x95, 0x48, 0x4c, 0x07, 0x0d, 0x29, 0x2c, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0xe5, 0xe5, 0xd3, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0x78, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x06, 0x68, 0xe9, 0xd0, 0x48, 0x70, 0x35, 0x7c, 0xee, 0x32, 0x38, 0xbc, 0xe1, 0xdd, 0x9e, 0x0d, 0x5a, 0xdb, 0x29, 0xd8, 0x60, 0x78, 0x51, 0xb4, 0xe1, 0x73, 0x97, 0xc1, 0xe3, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xe2, 0xef, 0xc0, 0x06, 0xc3, 0x74, 0xa2, 0x83, 0x06, 0xe2, 0x0a, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0xf2, 0xf2, 0xe9, 0x83, 0x76, 0x7e, 0x08, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0x0b, 0xa0, 0x8f, 0xd6, 0xf0, 0xa0, 0xe4, 0xc6, 0xa1, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x20, 0x81, 0x7a, 0x0d, 0x6f, 0xdc, 0x1d, 0x2c, 0xb9, 0xa0, 0x3e, 0x68, 0x84, 0x61, 0xe1, 0xe0, 0x5c, 0x6f, 0xb0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x90, 0x40, 0xbd, 0x06, 0x05, 0x1f, 0xe6, 0x1a, 0xfe, 0xcd, 0xd9, 0x10, 0xcd, 0x0d, 0x6f, 0xdc, 0xcd, 0xc1, 0xb9, 0x70, 0xe1, 0xa0, 0xc1, 0x9f, 0x85, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x20, 0x81, 0x7a, 0x83, 0x36, 0x52, 0x16, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x82, 0x04, 0xea, 0x83, 0x76, 0x7e, 0x08, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0x0b, 0xa0, 0x8f, 0xd6, 0xf0, 0xa0, 0xe4, 0xc6, 0xa1, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xd8, 0x83, 0x7a, 0x0d, 0x6f, 0xdc, 0x1d, 0x2c, 0x67, 0xa1, 0xde, 0xa0, 0xad, 0x93, 0x82, 0x83, 0xf6, 0x4b, 0x08, 0x0e, 0xce, 0xf5, 0x06, 0x6b, 0x78, 0x9e, 0x64, 0x83, 0xc5, 0x1e, 0xd4, 0x6b, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0xd1, 0xdc, 0xf0, 0xc6, 0xdd, 0x1c, 0xac, 0xf4, 0x63, 0x3a, 0x68, 0xd0, 0x6a, 0x61, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0xf6, 0xa0, 0xde, 0xa0, 0xd5, 0xb7, 0x82, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xd8, 0x83, 0xfa, 0xa0, 0x9d, 0x1f, 0x82, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0xa5, 0xa1, 0x5e, 0xc3, 0x1b, 0x77, 0x07, 0xcb, 0x86, 0xa8, 0xd7, 0xf0, 0xb9, 0xcb, 0xe0, 0xf0, 0xe1, 0x43, 0x98, 0x83, 0xf6, 0x4b, 0x08, 0x0e, 0xce, 0xf5, 0x06, 0x6b, 0x78, 0x9e, 0x64, 0x83, 0xa5, 0x34, 0xd4, 0x6b, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0xd1, 0xdc, 0xf0, 0xc6, 0xdd, 0x1c, 0x2c, 0x87, 0x64, 0x3a, 0x68, 0xd6, 0x6d, 0x61, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0xa5, 0xa1, 0x5e, 0xc3, 0xe7, 0x2e, 0x83, 0xc3, 0x1b, 0xbe, 0x7e, 0xd9, 0xf0, 0x21, 0xcc, 0x06, 0x0b, 0x65, 0x9f, 0x36, 0x68, 0xa6, 0x73, 0x60, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x5a, 0x00, 0x1d, 0xd8, 0x60, 0x6d, 0x4c, 0xde, 0xa1, 0x91, 0xe0, 0x06, 0x05, 0xc1, 0xec, 0x06, 0xad, 0xf1, 0x10, 0x6c, 0x68, 0x24, 0x78, 0x10, 0x9e, 0xaa, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x29, 0x0d, 0xf5, 0x41, 0x3b, 0x3f, 0x04, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x05, 0xd0, 0x47, 0x6b, 0x78, 0x50, 0x72, 0xe3, 0xd0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0xcd, 0x44, 0xbd, 0x86, 0x37, 0xee, 0x0e, 0x56, 0x72, 0x51, 0xaf, 0xe1, 0x73, 0x97, 0xc1, 0xe1, 0xc3, 0x83, 0x37, 0x07, 0x8d, 0xd5, 0x1f, 0x1c, 0x9c, 0xeb, 0x0d, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0xab, 0x99, 0xa8, 0xd7, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0xa2, 0xb9, 0xe1, 0x8d, 0xbb, 0x39, 0x58, 0xb7, 0xca, 0x74, 0xd0, 0xfe, 0xe4, 0xc2, 0x86, 0xe7, 0x49, 0x36, 0x58, 0xcd, 0x44, 0xbd, 0x86, 0xcf, 0x5d, 0x06, 0x87, 0x37, 0x7c, 0xfd, 0xb2, 0xe1, 0xc1, 0x9b, 0x0d, 0x16, 0xca, 0x3e, 0x6d, 0xd0, 0x4c, 0xe7, 0xc0, 0x1a, 0x14, 0x9d, 0xc6, 0x1b, 0xb4, 0x00, 0x3a, 0xb0, 0x86, 0x1f, 0x61, 0x06, 0x9e, 0x2e, 0x3c, 0xd4, 0xfc, 0x43, 0x23, 0xc1, 0x83, 0x76, 0x0f, 0x17, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x6a, 0x26, 0xea, 0x0d, 0x9a, 0x28, 0x3e, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0xab, 0x99, 0xa8, 0x0f, 0x9a, 0x41, 0x40, 0xd8, 0xf0, 0x41, 0xce, 0x1a, 0x2c, 0x80, 0x3e, 0x5a, 0xc3, 0x83, 0x92, 0x1b, 0x87, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x3a, 0x33, 0xea, 0x35, 0xbc, 0x71, 0x77, 0xb0, 0xc6, 0x8e, 0xfa, 0xa0, 0xa5, 0x53, 0x83, 0x83, 0x73, 0xbd, 0xc1, 0x1a, 0x9e, 0x27, 0xd9, 0x60, 0x9d, 0x19, 0xf5, 0x1a, 0x14, 0x7c, 0x98, 0x6b, 0xf8, 0x37, 0x67, 0x43, 0x34, 0x37, 0xbc, 0x71, 0x37, 0x07, 0x8b, 0x8c, 0x99, 0x0e, 0x9a, 0xd6, 0x5d, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0xeb, 0xcc, 0xa8, 0x37, 0x68, 0x15, 0x9a, 0x60, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x33, 0xa3, 0x3e, 0x68, 0xe7, 0x87, 0x60, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x00, 0xfa, 0x68, 0x0d, 0x0f, 0x4a, 0x6e, 0x1c, 0xda, 0xf0, 0x3c, 0xc9, 0x06, 0xeb, 0xfb, 0xa8, 0xd7, 0xf0, 0xc6, 0xdd, 0xc1, 0x5a, 0x46, 0xea, 0x0d, 0x5a, 0xaf, 0x5c, 0x38, 0x68, 0x2c, 0xf6, 0xe0, 0xe0, 0x5c, 0x6f, 0xb0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0xdf, 0x47, 0xbd, 0x06, 0x05, 0x1f, 0xe6, 0x1a, 0xfe, 0xcd, 0xd9, 0x10, 0xcd, 0x0d, 0x6f, 0xdc, 0xcd, 0xc1, 0x32, 0x6b, 0xa6, 0x83, 0xc6, 0xa3, 0x17, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0xfa, 0x3e, 0xea, 0x0d, 0xda, 0x1d, 0x5d, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0xeb, 0xfb, 0xa8, 0x37, 0x68, 0xa2, 0xf8, 0x60, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0xef, 0xa3, 0xde, 0xa0, 0xb9, 0xe5, 0x83, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xbe, 0x8f, 0xfa, 0xa0, 0xc9, 0xe8, 0x83, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0xb4, 0xa4, 0x5e, 0xc3, 0x1b, 0x77, 0x07, 0xab, 0x4a, 0xa9, 0x0f, 0x5a, 0x3a, 0x35, 0x38, 0x38, 0xd7, 0x1b, 0xac, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0x5a, 0x52, 0xaf, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x44, 0x73, 0xc3, 0x1b, 0x77, 0x73, 0xb0, 0x16, 0x9d, 0xe9, 0xa0, 0x19, 0xf8, 0x85, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xd2, 0x92, 0x7a, 0x83, 0x56, 0xa1, 0x09, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x4a, 0x4b, 0xea, 0x83, 0x76, 0x7e, 0x08, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0x0b, 0xa0, 0x8f, 0xd6, 0xf0, 0xa0, 0xe4, 0xc6, 0xa1, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xa2, 0x95, 0x7a, 0x0d, 0x6f, 0xdc, 0x1d, 0xac, 0xe6, 0xa5, 0xde, 0xf0, 0xb9, 0xcb, 0xe0, 0xf0, 0x06, 0xa5, 0x84, 0xf8, 0x06, 0x2b, 0xc8, 0xf4, 0x37, 0x3c, 0x28, 0xb9, 0xc1, 0xf2, 0xe3, 0xed, 0x0d, 0x0f, 0x4a, 0xae, 0xe1, 0x6d, 0x9d, 0x83, 0x35, 0xc5, 0xd4, 0x07, 0xad, 0x7d, 0x18, 0x1c, 0x9c, 0xeb, 0x0d, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0x2b, 0x5a, 0xa9, 0xd7, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0xa2, 0xb9, 0xe1, 0x8d, 0xbb, 0x39, 0x58, 0x8d, 0xcf, 0x74, 0xd0, 0xd0, 0x01, 0xc3, 0x86, 0xe7, 0x49, 0x36, 0x58, 0xd1, 0x4a, 0xbd, 0xe1, 0x73, 0x97, 0xc1, 0xe1, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x29, 0x21, 0xbe, 0xc1, 0x0a, 0x32, 0xfd, 0x83, 0x06, 0x1d, 0x18, 0x0e, 0x0e, 0xa0, 0x49, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x05, 0xd0, 0x47, 0x6b, 0x78, 0x50, 0x72, 0xe3, 0xd0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0xba, 0x4c, 0xbd, 0x86, 0x37, 0xee, 0x0e, 0x96, 0x6b, 0x53, 0x1f, 0x34, 0x29, 0x89, 0x70, 0x70, 0xae, 0x37, 0x58, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0x5d, 0xa6, 0x5e, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x88, 0xe6, 0x86, 0x37, 0xee, 0xe6, 0x20, 0xc9, 0x80, 0xf0, 0xa0, 0x5d, 0x14, 0x86, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x74, 0x99, 0x7a, 0x83, 0x56, 0xa1, 0x09, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0xd2, 0x65, 0xea, 0x83, 0xf6, 0x46, 0x11, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0x0b, 0xa0, 0x8f, 0xd6, 0xf0, 0xa0, 0xe4, 0xc6, 0xa1, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x52, 0x9c, 0x7a, 0x0d, 0x6f, 0xdc, 0x1d, 0xac, 0x92, 0xa7, 0x3e, 0x68, 0x8c, 0x97, 0xe0, 0xe0, 0x5c, 0x6f, 0xb0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x29, 0x4e, 0xbd, 0x06, 0x05, 0x1f, 0xe6, 0x1a, 0xfe, 0xcd, 0xd9, 0x10, 0xcd, 0x0d, 0x6f, 0xdc, 0xcd, 0xc1, 0xd2, 0x8f, 0xa6, 0x83, 0x86, 0x7f, 0x18, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x4a, 0x71, 0xea, 0x83, 0xf6, 0xa4, 0x0a, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0x0b, 0xa0, 0x8f, 0xd6, 0xf0, 0xa0, 0xe4, 0xc6, 0xa1, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x42, 0x9f, 0x7a, 0x0d, 0x6f, 0xdc, 0x1d, 0xac, 0x20, 0xa8, 0xde, 0xa0, 0x2d, 0x36, 0x83, 0x83, 0xc6, 0x62, 0x0f, 0x0e, 0xce, 0xf5, 0x06, 0x6b, 0x78, 0x9e, 0x64, 0x83, 0x15, 0xfa, 0xd4, 0x6b, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0xd1, 0xdc, 0xf0, 0xc6, 0xdd, 0x1c, 0x2c, 0x7e, 0x69, 0x3a, 0x68, 0x78, 0x8a, 0x61, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0xd0, 0xa7, 0xde, 0xa0, 0x79, 0x45, 0x83, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x42, 0x9f, 0x7a, 0x83, 0x26, 0x8a, 0x0f, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x0a, 0x7d, 0xea, 0x0d, 0x9a, 0x5b, 0x3e, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0x2b, 0xf4, 0xa9, 0x0f, 0x9a, 0x8c, 0x3e, 0xd8, 0xf0, 0x41, 0xce, 0x1a, 0x2c, 0x80, 0x3e, 0x5a, 0xc3, 0x83, 0x92, 0x1b, 0x87, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x02, 0x87, 0xea, 0x35, 0xbc, 0x71, 0x77, 0xb0, 0x98, 0xa3, 0xfa, 0xa0, 0x49, 0x49, 0x84, 0x83, 0x73, 0xbd, 0xc1, 0x1a, 0x9e, 0x27, 0xd9, 0x60, 0x81, 0x43, 0xf5, 0x1a, 0x14, 0x7c, 0x98, 0x6b, 0xf8, 0x37, 0x67, 0x43, 0x34, 0x37, 0xbc, 0x71, 0x37, 0x07, 0x2b, 0x84, 0x9a, 0x0e, 0x9a, 0x90, 0x63, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0x0b, 0x1c, 0xaa, 0x37, 0x68, 0x15, 0x9a, 0x60, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0x70, 0xa8, 0x3e, 0x68, 0x6f, 0x14, 0x61, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x00, 0xfa, 0x68, 0x0d, 0x0f, 0x4a, 0x6e, 0x1c, 0xda, 0xf0, 0x3c, 0xc9, 0x06, 0x0b, 0x49, 0xaa, 0xd7, 0xf0, 0xc6, 0xdd, 0xc1, 0x92, 0x98, 0xea, 0x83, 0xd6, 0x50, 0x0e, 0x0e, 0xce, 0xf5, 0x06, 0x6b, 0x78, 0x9e, 0x64, 0x83, 0x85, 0x24, 0xd5, 0x6b, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0xd1, 0xdc, 0xf0, 0xc6, 0xdd, 0x1c, 0xac, 0x91, 0x6a, 0x3a, 0x68, 0x24, 0x91, 0x61, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0x24, 0xa9, 0xde, 0xa0, 0x79, 0x45, 0x83, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x90, 0xa4, 0xfa, 0xa0, 0x9d, 0x1f, 0x82, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0xc7, 0xa9, 0x5e, 0xc3, 0x1b, 0x77, 0x07, 0x0b, 0x8b, 0xaa, 0x0f, 0x5a, 0x43, 0x39, 0x38, 0x38, 0xd7, 0x1b, 0xac, 0xe1, 0x79, 0x92, 0x0d, 0x96, 0xe3, 0x54, 0xaf, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x44, 0x73, 0xc3, 0x1b, 0x77, 0x73, 0x50, 0xda, 0x5b, 0x1e, 0x34, 0x03, 0xca, 0xb0, 0xe1, 0x79, 0x92, 0x0d, 0x96, 0xe3, 0x54, 0x6f, 0xd0, 0xbc, 0xa2, 0xc1, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x8e, 0x53, 0x7d, 0xd0, 0xce, 0x0f, 0xc1, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x01, 0xf4, 0xd1, 0x1a, 0x1e, 0x94, 0xdc, 0x38, 0xb4, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0x34, 0x55, 0xaf, 0xe1, 0x8d, 0xbb, 0x83, 0x55, 0x5c, 0xd5, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0xf8, 0xa0, 0x05, 0x1f, 0x84, 0x83, 0xf6, 0x4b, 0x08, 0x0e, 0xce, 0xf5, 0x06, 0x6b, 0x78, 0x9e, 0x64, 0x83, 0x15, 0x4d, 0xd5, 0x6b, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0xd1, 0xdc, 0xf0, 0xc6, 0xdd, 0x1c, 0xac, 0x8d, 0x6b, 0x3a, 0x68, 0xe5, 0x96, 0x61, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x68, 0xaa, 0x5e, 0xc3, 0xe7, 0x2e, 0x83, 0xc3, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x85, 0x2c, 0x84, 0x83, 0xd6, 0x78, 0x08, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x8a, 0xa6, 0xea, 0x83, 0x76, 0x7e, 0x08, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0x0b, 0xa0, 0x8f, 0xd6, 0xf0, 0xa0, 0xe4, 0xc6, 0xa1, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x1e, 0xad, 0x7a, 0x0d, 0x6f, 0xdc, 0x1d, 0xac, 0xc1, 0xab, 0xde, 0xa0, 0x2d, 0x16, 0x85, 0x83, 0xc6, 0xea, 0x0f, 0x0e, 0xce, 0xf5, 0x06, 0x6b, 0x78, 0x9e, 0x64, 0x83, 0xf5, 0x68, 0xd5, 0x6b, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0xd1, 0xdc, 0xf0, 0xc6, 0xdd, 0x1c, 0x14, 0xa4, 0xb1, 0x07, 0x0d, 0x50, 0x33, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0xf5, 0x68, 0xd5, 0x1b, 0xb4, 0xf0, 0xa3, 0xb0, 0xe1, 0x79, 0x92, 0x0d, 0xd6, 0xa3, 0x55, 0x6f, 0xd0, 0x44, 0xf1, 0xc1, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x8f, 0x56, 0x7d, 0xd0, 0x0c, 0x02, 0xc2, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x01, 0xf4, 0xd1, 0x1a, 0x1e, 0x94, 0xdc, 0x38, 0xb4, 0xe1, 0x79, 0x92, 0x0d, 0xd6, 0x07, 0x56, 0xaf, 0xe1, 0x8d, 0xbb, 0x83, 0x85, 0x8e, 0xd5, 0x07, 0x8d, 0x57, 0x33, 0x1c, 0x9c, 0xeb, 0x0d, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0xeb, 0x03, 0xab, 0xd7, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0xa2, 0xb9, 0xe1, 0x8d, 0xbb, 0x39, 0x58, 0x80, 0xd9, 0x74, 0xd0, 0xca, 0x3b, 0xc3, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x1f, 0x58, 0xbd, 0x41, 0x0b, 0x3f, 0x0a, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x7d, 0x60, 0xf5, 0x06, 0x4d, 0x14, 0x1f, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0xf5, 0x81, 0xd5, 0x07, 0xcd, 0x20, 0x20, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0x16, 0x40, 0x1f, 0xad, 0xe1, 0x41, 0xc9, 0x8d, 0x43, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x91, 0x65, 0xf5, 0x1a, 0xde, 0xb8, 0x3b, 0x58, 0x50, 0x5a, 0xbd, 0x41, 0xfb, 0xea, 0x05, 0x07, 0x8d, 0xd5, 0x1f, 0x1c, 0x9c, 0xeb, 0x0d, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0x8b, 0x2c, 0xab, 0xd7, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0xa2, 0xb9, 0xe1, 0x8d, 0xbb, 0x39, 0x28, 0xfa, 0x74, 0x0f, 0x5a, 0x4a, 0x68, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0x8b, 0x2c, 0xab, 0x37, 0x68, 0x0f, 0x0a, 0x61, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0xb2, 0xac, 0xde, 0xa0, 0x89, 0xe2, 0x83, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xc8, 0xb2, 0xfa, 0xa0, 0x19, 0x04, 0x84, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0x76, 0xad, 0x5e, 0xc3, 0x1b, 0x77, 0x07, 0xeb, 0x7b, 0xab, 0x37, 0x68, 0x5f, 0xbd, 0xe0, 0xa0, 0xb1, 0xd8, 0x83, 0x83, 0x73, 0xbd, 0xc1, 0x1a, 0x9e, 0x27, 0xd9, 0x60, 0xb1, 0x6b, 0xf5, 0x1a, 0x14, 0x7c, 0x98, 0x6b, 0xf8, 0x37, 0x67, 0x43, 0x34, 0x37, 0xbc, 0x71, 0x37, 0x07, 0xc7, 0xb1, 0x89, 0x83, 0xe6, 0x48, 0x1a, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x62, 0xd7, 0xea, 0x0d, 0xda, 0x83, 0x42, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0x8b, 0x5d, 0xab, 0x37, 0x68, 0xa2, 0xf8, 0x60, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0x76, 0xad, 0xde, 0xa0, 0xb9, 0xe5, 0x83, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xd8, 0xb5, 0xfa, 0xa0, 0xc9, 0xe8, 0x83, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0x3e, 0xae, 0x5e, 0xc3, 0x1b, 0x77, 0x07, 0xab, 0xa6, 0xab, 0x0f, 0x5a, 0x3a, 0x35, 0x38, 0x38, 0xd7, 0x1b, 0xac, 0xe1, 0x79, 0x92, 0x0d, 0x16, 0x1f, 0x57, 0xaf, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x44, 0x73, 0xc3, 0x1b, 0x77, 0x73, 0x78, 0x50, 0xf2, 0xa0, 0x59, 0xa1, 0x86, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xf8, 0xb8, 0x7a, 0x83, 0x56, 0xa1, 0x09, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0xe2, 0xe3, 0xea, 0x83, 0x76, 0x7e, 0x08, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0x0b, 0xa0, 0x8f, 0xd6, 0xf0, 0xa0, 0xe4, 0xc6, 0xa1, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x52, 0xbb, 0x7a, 0x0d, 0x6f, 0xdc, 0x1d, 0x2c, 0x31, 0xaf, 0x3e, 0x68, 0xe9, 0xd4, 0xe0, 0xe0, 0x5c, 0x6f, 0xb0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0xa9, 0x5d, 0xbd, 0x06, 0x05, 0x1f, 0xe6, 0x1a, 0xfe, 0xcd, 0xd9, 0x10, 0xcd, 0x0d, 0x6f, 0xdc, 0xcd, 0xc1, 0xd1, 0x86, 0xef, 0xa0, 0xc1, 0xac, 0x86, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x52, 0xbb, 0x7a, 0x83, 0x56, 0xa1, 0x09, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x4a, 0xed, 0xea, 0x83, 0x76, 0x7e, 0x08, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0x0b, 0xa0, 0x8f, 0xd6, 0xf0, 0xa0, 0xe4, 0xc6, 0xa1, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xb8, 0xbd, 0x7a, 0x0d, 0x6f, 0xdc, 0x1d, 0x2c, 0xe4, 0xaf, 0x3e, 0x68, 0xe9, 0xd4, 0xe0, 0xe0, 0x5c, 0x6f, 0xb0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0xdc, 0x5e, 0xbd, 0x06, 0x05, 0x1f, 0xe6, 0x1a, 0xfe, 0xcd, 0xd9, 0x10, 0xcd, 0x0d, 0x6f, 0xdc, 0xcd, 0x41, 0x29, 0x21, 0x7e, 0xd0, 0x20, 0x5c, 0xc3, 0x86, 0xe7, 0x49, 0x36, 0x58, 0xdc, 0x5e, 0xbd, 0x41, 0xab, 0xd0, 0x04, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x71, 0x7b, 0xf5, 0x41, 0x3b, 0x3f, 0x04, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x05, 0xd0, 0x47, 0x6b, 0x78, 0x50, 0x72, 0xe3, 0xd0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x41, 0x60, 0xbd, 0x86, 0x37, 0xee, 0x0e, 0x56, 0x4b, 0x58, 0x6f, 0xd0, 0x16, 0x8b, 0xc2, 0x06, 0x2d, 0xfb, 0x12, 0x1c, 0x34, 0x28, 0x7b, 0x70, 0x70, 0xae, 0x37, 0x58, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x20, 0xb0, 0x5e, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x88, 0xe6, 0x86, 0x37, 0xee, 0xe6, 0xa0, 0xe8, 0xa0, 0x3d, 0x68, 0xef, 0xb0, 0x61, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x20, 0xb0, 0xde, 0xa0, 0x85, 0x1f, 0x85, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x82, 0xc0, 0x7a, 0x0d, 0x9f, 0xbb, 0x0c, 0x1e, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0x76, 0xb2, 0x09, 0x0e, 0xda, 0xb5, 0x34, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0x2b, 0x08, 0xac, 0x37, 0x68, 0x6e, 0xf9, 0x60, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x20, 0xb0, 0x3e, 0x68, 0x32, 0xfa, 0x60, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x00, 0xfa, 0x68, 0x0d, 0x0f, 0x4a, 0x6e, 0x1c, 0xda, 0xf0, 0x3c, 0xc9, 0x06, 0x8b, 0x3d, 0xac, 0xd7, 0xf0, 0xc6, 0xdd, 0xc1, 0x42, 0x17, 0xeb, 0x83, 0x96, 0x4e, 0x0d, 0x0e, 0xce, 0xf5, 0x06, 0x6b, 0x78, 0x9e, 0x64, 0x83, 0xc5, 0x1e, 0xd6, 0x6b, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0xd1, 0xdc, 0xf0, 0xc6, 0xdd, 0x1c, 0x3e, 0xb1, 0x39, 0x68, 0x44, 0xb5, 0x61, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0xf6, 0xb0, 0xde, 0xa0, 0x55, 0x68, 0x82, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xd8, 0xc3, 0xfa, 0xa0, 0x9d, 0x1f, 0x82, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0xae, 0xb1, 0x5e, 0xc3, 0x1b, 0x77, 0x07, 0xcb, 0x85, 0xac, 0x0f, 0x9a, 0xb2, 0x2c, 0x38, 0x38, 0xd7, 0x1b, 0xac, 0xe1, 0x79, 0x92, 0x0d, 0x16, 0xd7, 0x58, 0xaf, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x44, 0x73, 0xc3, 0x1b, 0x77, 0x73, 0xb0, 0xce, 0xc3, 0xe9, 0xa0, 0x79, 0xe0, 0x86, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xb8, 0xc6, 0xfa, 0xa0, 0x05, 0xd5, 0x82, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0x55, 0xb2, 0x5e, 0xc3, 0x1b, 0x77, 0x07, 0x8b, 0xae, 0xac, 0xd7, 0xf0, 0xb9, 0xcb, 0xe0, 0xf0, 0x06, 0xa5, 0x84, 0xf8, 0x06, 0x2b, 0xc8, 0xf4, 0x37, 0x3c, 0x28, 0xb9, 0xc1, 0xf2, 0xe3, 0xed, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x7a, 0xd3, 0x6f, 0xd0, 0x06, 0x43, 0xc1, 0x1a, 0x3e, 0x6a, 0x3f, 0x58, 0x40, 0x66, 0xdd, 0x41, 0x63, 0xf5, 0x07, 0x07, 0xe7, 0x7a, 0x83, 0x35, 0x3c, 0x4f, 0xb2, 0xc1, 0x52, 0x25, 0xeb, 0x35, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x6f, 0xce, 0x86, 0x68, 0x6e, 0x78, 0xe3, 0x6e, 0x0e, 0x56, 0xba, 0x38, 0x1d, 0x34, 0x4f, 0xdd, 0xb0, 0xe1, 0x79, 0x92, 0x0d, 0x96, 0x2a, 0x59, 0xaf, 0xe1, 0x73, 0x97, 0xc1, 0xe1, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x29, 0x21, 0xbe, 0xc1, 0x0a, 0x32, 0xfd, 0x83, 0x86, 0xb8, 0x1b, 0x0e, 0x5a, 0xe3, 0x21, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0x4b, 0x95, 0xac, 0x37, 0x68, 0xa2, 0xf8, 0x60, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0x55, 0xb2, 0x3e, 0x68, 0x06, 0x01, 0x61, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x00, 0xfa, 0x68, 0x0d, 0x0f, 0x4a, 0x6e, 0x1c, 0xda, 0xf0, 0x3c, 0xc9, 0x06, 0xab, 0xdc, 0xac, 0xd7, 0xf0, 0xc6, 0xdd, 0xc1, 0x0a, 0x3f, 0xeb, 0x83, 0x96, 0x4e, 0x0d, 0x0e, 0xce, 0xf5, 0x06, 0x6b, 0x78, 0x9e, 0x64, 0x83, 0x55, 0x6e, 0xd6, 0x6b, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0xd1, 0xdc, 0xf0, 0xc6, 0xdd, 0x1c, 0xac, 0xc2, 0x72, 0x3a, 0x68, 0xdc, 0xbf, 0x61, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x72, 0xb3, 0xde, 0xa0, 0x55, 0x68, 0x82, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xca, 0xcd, 0xfa, 0xa0, 0x9d, 0x1f, 0x82, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x2e, 0xb4, 0x5e, 0xc3, 0x1b, 0x77, 0x07, 0xeb, 0x25, 0xad, 0x0f, 0x9a, 0xb2, 0x2c, 0x38, 0x38, 0xd7, 0x1b, 0xac, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0x17, 0x5a, 0xaf, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x44, 0x73, 0xc3, 0x1b, 0x77, 0x73, 0xf8, 0x95, 0xec, 0xa0, 0xf9, 0x0a, 0x87, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xba, 0xd0, 0xfa, 0xa0, 0x05, 0xd5, 0x82, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0xd1, 0xb4, 0x5e, 0xc3, 0x1b, 0x77, 0x07, 0xeb, 0x52, 0xad, 0x37, 0x68, 0x5f, 0xbd, 0x60, 0xc3, 0xe7, 0x2e, 0x83, 0xc7, 0x1b, 0x94, 0x12, 0xe2, 0x1b, 0xac, 0x20, 0xd3, 0xdf, 0xf0, 0xa0, 0xe4, 0x06, 0xcb, 0x8f, 0xb7, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x48, 0x99, 0xac, 0xe1, 0xa3, 0xf6, 0x83, 0xc5, 0xb5, 0xd6, 0x1d, 0x9c, 0xeb, 0x0d, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0x6b, 0x34, 0xad, 0xd7, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0xa2, 0xb9, 0xe1, 0x8d, 0xbb, 0x39, 0x08, 0xd2, 0xd3, 0x83, 0x66, 0x53, 0x1c, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x1a, 0x4d, 0xeb, 0x0d, 0xda, 0x83, 0x42, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0x6b, 0x34, 0xad, 0x37, 0x7c, 0xee, 0x32, 0x78, 0xbc, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x25, 0xc4, 0x37, 0x58, 0x41, 0xa6, 0x7f, 0xd0, 0x84, 0x8c, 0xc3, 0x41, 0x8b, 0x42, 0x04, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x05, 0xd0, 0x47, 0x6b, 0x78, 0x50, 0x72, 0xe3, 0xd0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x01, 0x6c, 0xbd, 0x86, 0x37, 0xee, 0x0e, 0xd6, 0x38, 0x5b, 0x1f, 0x34, 0x44, 0x7f, 0x70, 0x70, 0xae, 0x37, 0x58, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x00, 0xb6, 0x5e, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x88, 0xe6, 0x86, 0x37, 0xee, 0xe6, 0xf0, 0x41, 0xce, 0x41, 0x3b, 0x4f, 0x0e, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x05, 0xb0, 0xf5, 0x06, 0xad, 0x42, 0x13, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0x15, 0xc0, 0xd6, 0x1b, 0x34, 0x51, 0x7c, 0xb0, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0x00, 0x5b, 0x1f, 0x34, 0x83, 0x80, 0xb0, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x00, 0x7d, 0xb4, 0x86, 0x07, 0x25, 0x37, 0x0e, 0x6d, 0x78, 0x9e, 0x64, 0x83, 0x75, 0xd5, 0xd6, 0x6b, 0x78, 0xe3, 0xee, 0x60, 0x81, 0xb8, 0xf5, 0x41, 0x43, 0xf4, 0x07, 0x07, 0xe7, 0x7a, 0x83, 0x35, 0x3c, 0x4f, 0xb2, 0xc1, 0xba, 0x6a, 0xeb, 0x35, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x6f, 0xce, 0x86, 0x68, 0x6e, 0x78, 0xe3, 0x6e, 0x0e, 0x8a, 0x1d, 0xcd, 0x83, 0x36, 0xd2, 0x1c, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0xba, 0x6a, 0xeb, 0x0d, 0x5a, 0x85, 0x26, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0xeb, 0xaa, 0xad, 0x37, 0x68, 0xa2, 0xf8, 0x60, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0xab, 0xb6, 0x3e, 0x68, 0x06, 0x01, 0x61, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x00, 0xfa, 0x68, 0x0d, 0x0f, 0x4a, 0x6e, 0x1c, 0xda, 0xf0, 0x3c, 0xc9, 0x06, 0x2b, 0xd3, 0xad, 0xd7, 0xf0, 0xc6, 0xdd, 0xc1, 0x6a, 0x7c, 0xeb, 0x83, 0x56, 0x16, 0x1a, 0x0e, 0xce, 0xf5, 0x06, 0x6b, 0x78, 0x9e, 0x64, 0x83, 0x95, 0xe9, 0xd6, 0x6b, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0xd1, 0xdc, 0xf0, 0xc6, 0xdd, 0x1c, 0x14, 0x03, 0xb2, 0x07, 0x8d, 0x0c, 0x3a, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0x95, 0xe9, 0xd6, 0x1b, 0xb4, 0x07, 0x85, 0xb0, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0xa6, 0x5b, 0x6f, 0xd0, 0x44, 0xf1, 0xc1, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x99, 0x6e, 0x7d, 0xd0, 0x0c, 0x02, 0xc2, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x01, 0xf4, 0xd1, 0x1a, 0x1e, 0x94, 0xdc, 0x38, 0xb4, 0xe1, 0x79, 0x92, 0x0d, 0x96, 0x01, 0x5c, 0xaf, 0xe1, 0x8d, 0xbb, 0x83, 0x75, 0x0d, 0xd7, 0x07, 0x2d, 0x9d, 0x1a, 0x1c, 0x9c, 0xeb, 0x0d, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0xcb, 0x00, 0xae, 0xd7, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0xa2, 0xb9, 0xe1, 0x8d, 0xbb, 0x39, 0xbc, 0x9b, 0x77, 0xd0, 0x4a, 0xa7, 0xc3, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x06, 0x70, 0xbd, 0x41, 0xab, 0xd0, 0x04, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x19, 0xc0, 0xf5, 0x41, 0x3b, 0x3f, 0x04, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x05, 0xd0, 0x47, 0x6b, 0x78, 0x50, 0x72, 0xe3, 0xd0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x4b, 0x71, 0xbd, 0x86, 0x37, 0xee, 0x0e, 0x16, 0x87, 0x5c, 0x1f, 0xb4, 0x74, 0x6a, 0x70, 0x70, 0xae, 0x37, 0x58, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0xa5, 0xb8, 0x5e, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x88, 0xe6, 0x86, 0x37, 0xee, 0xe6, 0xa0, 0xe0, 0xc3, 0x3c, 0x68, 0x7f, 0xd6, 0x61, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0xa5, 0xb8, 0xde, 0xa0, 0x55, 0x68, 0x82, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x96, 0xe2, 0xfa, 0xa0, 0x9d, 0x1f, 0x82, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x4a, 0xb9, 0x5e, 0xc3, 0x1b, 0x77, 0x07, 0x2b, 0x70, 0xae, 0x37, 0x68, 0x5f, 0xbd, 0x60, 0x83, 0xf6, 0x4b, 0x08, 0x36, 0x7c, 0xee, 0x32, 0xb8, 0x7c, 0xd0, 0x82, 0x8b, 0xc3, 0xc1, 0xb9, 0xde, 0x60, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x2a, 0xe5, 0x7a, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x21, 0x9a, 0x1b, 0xde, 0xb8, 0x9b, 0x83, 0x93, 0x83, 0xdc, 0x41, 0xf3, 0xca, 0x0e, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x55, 0xca, 0xf5, 0x06, 0xed, 0x41, 0x21, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0x55, 0x29, 0xd7, 0x1b, 0x34, 0x51, 0x7c, 0xb0, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0xa5, 0x5c, 0x6f, 0xf8, 0xdc, 0x65, 0x70, 0x79, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0x59, 0xe4, 0x70, 0xd0, 0xbc, 0xa7, 0xc1, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x01, 0xf4, 0xd1, 0x1a, 0x1e, 0x94, 0xdc, 0x38, 0xb4, 0xe1, 0x79, 0x92, 0x0d, 0x16, 0x1c, 0x5d, 0xaf, 0xe1, 0x8d, 0xbb, 0x83, 0xa5, 0x54, 0xd7, 0x07, 0x4d, 0x59, 0x16, 0x1c, 0x9c, 0xeb, 0x0d, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0x0b, 0x8e, 0xae, 0xd7, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0xa2, 0xb9, 0xe1, 0x8d, 0xbb, 0x39, 0x3c, 0xc2, 0x7a, 0xd0, 0xfa, 0xba, 0xc3, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x70, 0x74, 0x7d, 0xd0, 0x82, 0x6a, 0xc1, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x01, 0xf4, 0xd1, 0x1a, 0x1e, 0x94, 0xdc, 0x38, 0xb4, 0xe1, 0x79, 0x92, 0x0d, 0x96, 0x6f, 0x5d, 0xaf, 0xe1, 0x8d, 0xbb, 0x83, 0x05, 0x6a, 0xd7, 0x07, 0xad, 0x2c, 0x34, 0x1c, 0x9c, 0xeb, 0x0d, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0xcb, 0xb7, 0xae, 0xd7, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0xa2, 0xb9, 0xe1, 0x8d, 0xbb, 0x39, 0x28, 0x08, 0x66, 0x0f, 0x5a, 0xfd, 0x77, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0xcb, 0xb7, 0xae, 0x37, 0x68, 0x0f, 0x0a, 0x61, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0xdf, 0xba, 0xde, 0xa0, 0x89, 0xe2, 0x83, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x7c, 0xeb, 0xfa, 0xa0, 0x19, 0x04, 0x84, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x8c, 0xbb, 0x5e, 0xc3, 0x1b, 0x77, 0x07, 0x6b, 0xff, 0xae, 0x0f, 0x5a, 0x59, 0x68, 0x38, 0x38, 0xd7, 0x1b, 0xac, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0xc6, 0x5d, 0xaf, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x44, 0x73, 0xc3, 0x1b, 0x77, 0x73, 0x50, 0xc2, 0x63, 0x1e, 0x34, 0x9b, 0xf1, 0xb0, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0xc6, 0x5d, 0x6f, 0xd0, 0x1e, 0x14, 0xc2, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x19, 0x77, 0xbd, 0x41, 0x13, 0xc5, 0x07, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x65, 0xdc, 0xf5, 0x41, 0x33, 0x08, 0x08, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x05, 0xd0, 0x47, 0x6b, 0x78, 0x50, 0x72, 0xe3, 0xd0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x74, 0x78, 0xbd, 0x86, 0x37, 0xee, 0x0e, 0x16, 0x5a, 0x5e, 0x6f, 0xd0, 0x16, 0x8b, 0xc2, 0x41, 0xcb, 0xbe, 0x04, 0x07, 0xe7, 0x7a, 0x83, 0x35, 0x3c, 0x4f, 0xb2, 0xc1, 0xa2, 0xc3, 0xeb, 0x35, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x6f, 0xce, 0x86, 0x68, 0x6e, 0x78, 0xe3, 0x6e, 0x0e, 0xd6, 0xbb, 0x3c, 0x1d, 0xb4, 0x3b, 0xf3, 0xb0, 0xe1, 0x79, 0x92, 0x0d, 0x16, 0x1d, 0x5e, 0x6f, 0xd0, 0xc2, 0x8f, 0xc2, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x74, 0x78, 0x7d, 0xd0, 0xbe, 0x35, 0xc1, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x01, 0xf4, 0xd1, 0x1a, 0x1e, 0x94, 0xdc, 0x38, 0xb4, 0xe1, 0x79, 0x92, 0x0d, 0xd6, 0x81, 0x5e, 0xaf, 0xe1, 0x8d, 0xbb, 0x83, 0xb5, 0xaf, 0xd7, 0x1b, 0xb4, 0xc5, 0x66, 0x70, 0xd0, 0xb2, 0x2f, 0xc1, 0xc1, 0xb9, 0xde, 0x60, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x0e, 0xf4, 0x7a, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x21, 0x9a, 0x1b, 0xde, 0xb8, 0x9b, 0x83, 0x62, 0x12, 0xf3, 0xa0, 0xf5, 0xa5, 0x87, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x0e, 0xf4, 0x7a, 0x83, 0xe6, 0x15, 0x0d, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x3a, 0xd0, 0xeb, 0x83, 0xf6, 0xad, 0x09, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0x0b, 0xa0, 0x8f, 0xd6, 0xf0, 0xa0, 0xe4, 0xc6, 0xa1, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x2e, 0xf7, 0x7a, 0x0d, 0x6f, 0xdc, 0x1d, 0xac, 0x38, 0xbe, 0x3e, 0x68, 0x8c, 0x97, 0xe0, 0xe0, 0x5c, 0x6f, 0xb0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x97, 0x7b, 0xbd, 0x06, 0x05, 0x1f, 0xe6, 0x1a, 0xfe, 0xcd, 0xd9, 0x10, 0xcd, 0x0d, 0x6f, 0xdc, 0xcd, 0xe1, 0x6d, 0xd6, 0x83, 0x06, 0xc8, 0x1e, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0xba, 0xdc, 0xeb, 0x83, 0xf6, 0xa4, 0x0a, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0x0b, 0xa0, 0x8f, 0xd6, 0xf0, 0xa0, 0xe4, 0xc6, 0xa1, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xca, 0xf9, 0x7a, 0x0d, 0x6f, 0xdc, 0x1d, 0x2c, 0xa8, 0xbe, 0x3e, 0x68, 0xe9, 0xd4, 0xe0, 0xe0, 0x5c, 0x6f, 0xb0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0xe5, 0x7c, 0xbd, 0x06, 0x05, 0x1f, 0xe6, 0x1a, 0xfe, 0xcd, 0xd9, 0x10, 0xcd, 0x0d, 0x6f, 0xdc, 0xcd, 0xc1, 0xf2, 0xb0, 0xa7, 0x83, 0x86, 0xef, 0x1e, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x2a, 0xe7, 0xeb, 0x0d, 0x5a, 0x85, 0x26, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0xab, 0x9c, 0xaf, 0x0f, 0xda, 0xf9, 0x21, 0xd8, 0xf0, 0x41, 0xce, 0x1a, 0x2c, 0x80, 0x3e, 0x5a, 0xc3, 0x83, 0x92, 0x1b, 0x87, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x62, 0xee, 0xeb, 0x35, 0xbc, 0x71, 0x77, 0xb0, 0x6e, 0xfc, 0xfa, 0xa0, 0x31, 0x5e, 0x82, 0x83, 0x73, 0xbd, 0xc1, 0x1a, 0x9e, 0x27, 0xd9, 0x60, 0x31, 0xf7, 0xf5, 0x1a, 0x14, 0x7c, 0x98, 0x6b, 0xf8, 0x37, 0x67, 0x43, 0x34, 0x37, 0xbc, 0x71, 0x37, 0x07, 0x0b, 0xe4, 0x9e, 0x0e, 0x9a, 0x76, 0x7c, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0x8b, 0xb9, 0xaf, 0x0f, 0xda, 0x93, 0x2a, 0xd8, 0xf0, 0x41, 0xce, 0x1a, 0x2c, 0x80, 0x3e, 0x5a, 0xc3, 0x83, 0x92, 0x1b, 0x87, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x9a, 0xf5, 0xeb, 0x35, 0xbc, 0x71, 0x77, 0xb0, 0x3c, 0xfe, 0xfa, 0xa0, 0x35, 0x94, 0x83, 0x83, 0x73, 0xbd, 0xc1, 0x1a, 0x9e, 0x27, 0xd9, 0x60, 0xcd, 0xfa, 0xf5, 0x1a, 0x14, 0x7c, 0x98, 0x6b, 0xf8, 0x37, 0x67, 0x43, 0x34, 0x37, 0xbc, 0x71, 0x37, 0x07, 0x4b, 0x04, 0x9f, 0x0e, 0x9a, 0x16, 0x7d, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0x6b, 0xd6, 0xaf, 0x37, 0x68, 0x5e, 0xd1, 0x60, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x59, 0xbf, 0x3e, 0x68, 0xe7, 0x87, 0x60, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x00, 0xfa, 0x68, 0x0d, 0x0f, 0x4a, 0x6e, 0x1c, 0xda, 0xf0, 0x3c, 0xc9, 0x06, 0x4b, 0xf3, 0xaf, 0xd7, 0xf0, 0xc6, 0xdd, 0xc1, 0x2a, 0x00, 0xec, 0x83, 0x96, 0x4e, 0x0d, 0x0e, 0xce, 0xf5, 0x06, 0x6b, 0x78, 0x9e, 0x64, 0x83, 0xa5, 0xf9, 0xd7, 0x6b, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0xd1, 0xdc, 0xf0, 0xc6, 0xdd, 0x1c, 0x2c, 0x92, 0x7c, 0x3a, 0x68, 0x3c, 0xf7, 0x61, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0xcd, 0xbf, 0xde, 0xa0, 0x55, 0x68, 0x82, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x34, 0xff, 0xfa, 0xa0, 0x9d, 0x1f, 0x82, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x40, 0xc0, 0x5e, 0xc3, 0x1b, 0x77, 0x07, 0x8b, 0x1d, 0xb0, 0x0f, 0x1a, 0xe3, 0x25, 0x38, 0x38, 0xd7, 0x1b, 0xac, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0x20, 0x60, 0xaf, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x44, 0x73, 0xc3, 0x1b, 0x77, 0x73, 0xb0, 0x4c, 0xf4, 0xe9, 0xa0, 0x79, 0xe8, 0x87, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x02, 0x01, 0xfb, 0xa0, 0x3d, 0xa9, 0x82, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0xb4, 0xc0, 0x5e, 0xc3, 0x1b, 0x77, 0x07, 0x8b, 0x3a, 0xb0, 0xd7, 0xf0, 0xb9, 0xcb, 0xe0, 0xf0, 0x06, 0xa5, 0x84, 0xf8, 0x06, 0x2b, 0xc8, 0xf4, 0x37, 0x3c, 0x28, 0xb9, 0xc1, 0xf2, 0xe3, 0xed, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x52, 0x26, 0x6b, 0xf8, 0xa8, 0xfd, 0x60, 0xed, 0xc8, 0x73, 0x07, 0x8d, 0xd5, 0x1f, 0x1c, 0x9c, 0xeb, 0x0d, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0x0b, 0x2d, 0xb0, 0xd7, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0xa2, 0xb9, 0xe1, 0x8d, 0xbb, 0x39, 0x58, 0x28, 0xfb, 0x74, 0xd0, 0x3c, 0xf9, 0xc3, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x68, 0x81, 0xbd, 0x86, 0xcf, 0x5d, 0x06, 0x87, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xa5, 0x84, 0xf8, 0x06, 0x2b, 0xc8, 0xf4, 0x0f, 0x1a, 0x62, 0x7f, 0x38, 0x68, 0x8d, 0x87, 0x60, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0xb4, 0xc0, 0xde, 0xa0, 0x89, 0xe2, 0x83, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xd0, 0x02, 0xfb, 0xa0, 0x19, 0x04, 0x84, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0x6f, 0xc1, 0x5e, 0xc3, 0x1b, 0x77, 0x07, 0x2b, 0x69, 0xb0, 0xd7, 0xf0, 0xb9, 0xcb, 0xe0, 0xf0, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xf5, 0xcb, 0x06, 0x8d, 0xeb, 0x16, 0x6c, 0x50, 0x4a, 0x88, 0x6f, 0xb0, 0x82, 0x4c, 0xff, 0xa0, 0x51, 0xb8, 0x85, 0x0d, 0x1f, 0xe4, 0x6c, 0xd0, 0x88, 0x70, 0xc1, 0x6a, 0xf8, 0xdc, 0x65, 0x70, 0x78, 0xc3, 0xd7, 0x2f, 0x1b, 0x3e, 0x84, 0xd9, 0x60, 0xa1, 0xec, 0xd3, 0x06, 0xcd, 0x74, 0x0e, 0xac, 0x41, 0xd1, 0x69, 0xbc, 0x41, 0x0b, 0xa0, 0x03, 0x1b, 0xac, 0x8d, 0xc9, 0x3b, 0x08, 0x29, 0xf0, 0x0d, 0x0a, 0x82, 0xd9, 0x0d, 0x12, 0xd2, 0xbb, 0x37, 0x08, 0x29, 0xf0, 0x83, 0xf0, 0x54, 0xdd, 0xf0, 0xb9, 0xcb, 0xe0, 0xf1, 0x86, 0xaf, 0x5f, 0x36, 0x7c, 0x08, 0xb3, 0xc1, 0x42, 0xd9, 0xa7, 0x0d, 0x9a, 0xe9, 0x1c, 0x58, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x16, 0x40, 0x07, 0x36, 0x58, 0x1b, 0x93, 0x77, 0x10, 0x02, 0xe0, 0x1b, 0x14, 0x04, 0xb3, 0x1b, 0x24, 0x5e, 0x77, 0x6f, 0x10, 0x02, 0xe0, 0x07, 0xe1, 0xa9, 0xba, 0xe1, 0x73, 0x97, 0xc1, 0xe1, 0x0d, 0x5f, 0xbf, 0x6c, 0xf8, 0x10, 0x66, 0x83, 0x85, 0xb2, 0x4f, 0x1b, 0x34, 0xd3, 0x39, 0xb0, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x2d, 0x80, 0x0e, 0x6c, 0xb0, 0x36, 0x26, 0xef, 0x38, 0xb4, 0x41, 0x41, 0x30, 0xbb, 0xe1, 0xcb, 0xc9, 0x8d, 0x43, 0x07, 0xe1, 0xa9, 0x7a, 0xd0, 0x7e, 0x09, 0xc1, 0xc1, 0xb9, 0xde, 0x60, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xbc, 0x05, 0x7b, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x21, 0x9a, 0x1b, 0xde, 0xb8, 0x9b, 0x83, 0x05, 0xd0, 0x4f, 0x07, 0xcd, 0x36, 0x40, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0xe5, 0x2d, 0xd8, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0x78, 0xc3, 0x07, 0x39, 0x1b, 0xb4, 0xb5, 0xb2, 0xb0, 0x1a, 0x3e, 0x77, 0x19, 0x1c, 0xde, 0xf0, 0xf5, 0xcb, 0x86, 0x0f, 0x61, 0x36, 0x58, 0x28, 0xfb, 0xb4, 0x41, 0x33, 0x9d, 0x03, 0x6b, 0x50, 0x74, 0x1a, 0x6f, 0xd0, 0x02, 0xe8, 0xc0, 0x06, 0x6b, 0x63, 0xf2, 0x0e, 0x86, 0x17, 0xc5, 0x06, 0x05, 0xc1, 0xec, 0x06, 0x8d, 0xc2, 0x2c, 0x6c, 0x30, 0xbc, 0x28, 0x0e, 0xc2, 0x53, 0x75, 0xc3, 0xe7, 0x2e, 0x83, 0xc7, 0x1b, 0xbe, 0x7e, 0xd9, 0xf0, 0x21, 0xcc, 0x06, 0x0b, 0x65, 0x9f, 0x36, 0x68, 0xa6, 0x73, 0x60, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x5a, 0x00, 0x1d, 0xd8, 0x60, 0x6d, 0x4c, 0xde, 0xc1, 0x30, 0x9d, 0xd8, 0xa0, 0x20, 0x98, 0xdd, 0xa0, 0x7d, 0x9a, 0x85, 0x0d, 0x86, 0xe9, 0xc4, 0x41, 0x78, 0xaa, 0x1e, 0x34, 0xe7, 0xb7, 0xb0, 0xe1, 0x79, 0x92, 0x0d, 0x96, 0xb7, 0x60, 0x1f, 0xb4, 0xf3, 0x43, 0xb0, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0x10, 0x61, 0xaf, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x44, 0x73, 0xc3, 0x1b, 0x77, 0x73, 0x10, 0xa2, 0xaa, 0x07, 0x0b, 0xac, 0x9c, 0x37, 0x3c, 0x4f, 0xb2, 0xc1, 0x0a, 0x22, 0xec, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x41, 0xe3, 0xba, 0x05, 0x87, 0x71, 0x39, 0x38, 0x86, 0x1b, 0x1c, 0xac, 0xa4, 0xd3, 0x3f, 0x9c, 0x62, 0x87, 0x53, 0xec, 0xa0, 0xc1, 0xda, 0x81, 0x0d, 0xc5, 0x74, 0x0d, 0xda, 0x7a, 0x1d, 0x38, 0x68, 0x10, 0x77, 0x60, 0x83, 0x05, 0x0d, 0x53, 0x6b, 0x28, 0xa6, 0x6b, 0xd0, 0xd6, 0xeb, 0xc0, 0xc1, 0x82, 0xa3, 0xeb, 0x0d, 0x73, 0x3f, 0x78, 0xbc, 0x61, 0xe2, 0xd6, 0x50, 0xc7, 0x37, 0xbc, 0x7c, 0x77, 0xd0, 0x50, 0xbd, 0xc3, 0x86, 0x62, 0xba, 0x41, 0x1b, 0x84, 0x10, 0x1b, 0xe6, 0x7e, 0x70, 0x78, 0x43, 0x1d, 0x59, 0xc3, 0x0c, 0xad, 0x61, 0xe2, 0x36, 0x4c, 0xe7, 0x86, 0x19, 0x5a, 0xc3, 0xc4, 0xad, 0x61, 0xee, 0x37, 0x08, 0x57, 0x84, 0x0d, 0xc5, 0x74, 0x0d, 0x35, 0xf3, 0x60, 0x69, 0x8f, 0xf3, 0x41, 0x5b, 0xaf, 0x03, 0x87, 0xf3, 0x78, 0xd9, 0x60, 0x45, 0xa5, 0xd4, 0xe1, 0x94, 0x58, 0xc3, 0xc4, 0xad, 0x61, 0xee, 0x37, 0x08, 0x57, 0x84, 0x0d, 0x33, 0xb4, 0x86, 0x89, 0xdb, 0x30, 0x9d, 0x07, 0xab, 0x99, 0xf5, 0x97, 0x0d, 0x87, 0xc2, 0xc1, 0x12, 0xeb, 0xac, 0x0d, 0xda, 0xe5, 0x84, 0xd8, 0x60, 0x31, 0x1b, 0xd4, 0x32, 0xcb, 0x61, 0x85, 0xf6, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0xc3, 0x79, 0xbc, 0xc1, 0x62, 0x36, 0xa8, 0x65, 0x96, 0x0d, 0xcf, 0x93, 0x6c, 0x10, 0x4a, 0x96, 0x1b, 0x3e, 0x6a, 0x3f, 0x08, 0xd3, 0xcc, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x36, 0x9c, 0x08, 0x1b, 0xb4, 0xf2, 0x08, 0xb1, 0xc1, 0x62, 0x36, 0xa8, 0x65, 0x96, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x03, 0xb4, 0x74, 0x48, 0x1d, 0xac, 0x86, 0xcf, 0x5d, 0x06, 0x4f, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xa5, 0x84, 0xf8, 0x06, 0x2b, 0xc8, 0xf4, 0x37, 0xbc, 0xad, 0x73, 0x10, 0xaa, 0x08, 0x07, 0xe7, 0x7a, 0x83, 0x0d, 0x9f, 0xbb, 0x0c, 0x4e, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0x4a, 0x09, 0xf1, 0x0d, 0x56, 0x90, 0xe9, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0x90, 0x32, 0x59, 0xc3, 0x47, 0xed, 0x07, 0x81, 0x0d, 0xd1, 0xc1, 0x01, 0x34, 0x69, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0xd0, 0xb8, 0x6e, 0xc1, 0x21, 0x75, 0x70, 0x70, 0x0c, 0x37, 0x38, 0x58, 0x49, 0xa7, 0x7f, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0x41, 0x43, 0xb0, 0x10, 0xab, 0xa1, 0x98, 0xae, 0x41, 0x5b, 0xaf, 0x03, 0x07, 0x4b, 0xa2, 0xa6, 0x37, 0xcc, 0xfd, 0xe0, 0xf1, 0x86, 0x89, 0x5b, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0x43, 0x6b, 0x0a, 0x1b, 0x8a, 0xe9, 0x06, 0xad, 0x33, 0x43, 0x6c, 0x98, 0xfb, 0xc1, 0xe1, 0x0d, 0x75, 0x64, 0x0d, 0x33, 0xb4, 0xa1, 0x12, 0x6e, 0x38, 0x11, 0x36, 0x54, 0xc2, 0x0d, 0x16, 0xb3, 0x41, 0x2d, 0xb3, 0x6c, 0xf8, 0xc4, 0x66, 0x0d, 0xcf, 0x93, 0xac, 0xc1, 0x42, 0x65, 0xaa, 0x83, 0xd5, 0x57, 0xd0, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x05, 0xd0, 0x47, 0x6b, 0x78, 0x50, 0x72, 0xe3, 0xd0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0xf9, 0xe5, 0x7d, 0xd0, 0xd2, 0xfa, 0xc0, 0xc1, 0xb9, 0xde, 0x60, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xf2, 0xcb, 0x7b, 0x83, 0x56, 0xed, 0x07, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0xca, 0x2f, 0xef, 0x83, 0xd6, 0xfb, 0x07, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0x0b, 0xa0, 0x8f, 0xd6, 0xf0, 0xa0, 0xe4, 0xc6, 0xa1, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x5c, 0xcd, 0x7b, 0x83, 0x46, 0x3b, 0x08, 0x36, 0x68, 0xf2, 0x83, 0x60, 0xc3, 0xe7, 0x2e, 0x83, 0xc7, 0x07, 0x8d, 0x12, 0x19, 0x1c, 0x9c, 0xeb, 0x0d, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0xcb, 0xd5, 0xbc, 0x37, 0x68, 0xee, 0x85, 0x60, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0x57, 0xf3, 0xde, 0xa0, 0x85, 0x1b, 0x82, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x5c, 0xcd, 0x7b, 0xc3, 0xe7, 0x2e, 0x83, 0xc7, 0x07, 0x6d, 0x7f, 0x19, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0x16, 0x40, 0x1f, 0xad, 0xe1, 0x41, 0xc9, 0x8d, 0x43, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0xcd, 0x9f, 0xf7, 0x1a, 0xde, 0xb8, 0x3b, 0x58, 0xc5, 0xe8, 0xbd, 0x86, 0xcf, 0x5d, 0x06, 0x87, 0xd7, 0xf0, 0xc6, 0xdd, 0xc1, 0xda, 0x4a, 0xef, 0x0d, 0x9f, 0xbb, 0x0c, 0x0e, 0x6f, 0x50, 0x4a, 0x88, 0x6f, 0xb0, 0x82, 0x4c, 0x7f, 0xc3, 0x83, 0x92, 0x1b, 0x2c, 0x3f, 0xde, 0xde, 0xf0, 0xb6, 0xce, 0xc1, 0xaa, 0x4e, 0xef, 0x83, 0x66, 0xe9, 0x21, 0x0e, 0xce, 0xf5, 0x06, 0x6b, 0x78, 0x9e, 0x64, 0x83, 0x35, 0x7f, 0xde, 0x6b, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0xd1, 0xdc, 0xf0, 0xc6, 0xdd, 0x1c, 0x9e, 0x78, 0x3f, 0x68, 0x01, 0x21, 0x62, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0xf9, 0xf3, 0x5e, 0xc3, 0xe7, 0x2e, 0x83, 0xc3, 0x6b, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0x86, 0x17, 0xc5, 0x86, 0x37, 0xee, 0xe6, 0x70, 0xa7, 0x1d, 0x34, 0xb6, 0x10, 0xb1, 0xe1, 0x73, 0x97, 0xc1, 0xe1, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x29, 0x21, 0xbe, 0xc1, 0x0a, 0x32, 0xfd, 0x83, 0x46, 0x25, 0x22, 0x0e, 0xda, 0xa7, 0x59, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0x6b, 0xfe, 0xbc, 0x0f, 0x9a, 0x01, 0x88, 0xd8, 0xf0, 0x41, 0xce, 0x1a, 0x2c, 0x80, 0x3e, 0x5a, 0xc3, 0x83, 0x92, 0x1b, 0x87, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x92, 0x51, 0xef, 0x0d, 0x4f, 0xdc, 0x6d, 0xd0, 0xd6, 0x49, 0xc1, 0x86, 0xcf, 0x5d, 0x06, 0x8f, 0x0f, 0x1f, 0xc2, 0x1c, 0x9c, 0xeb, 0x0d, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0x4b, 0x46, 0xbd, 0x37, 0x68, 0x58, 0xa2, 0x60, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0x19, 0xf5, 0xde, 0xa0, 0xd5, 0xb7, 0x82, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x64, 0xd4, 0x7b, 0xc3, 0xe7, 0x2e, 0x83, 0xc7, 0x1b, 0xbe, 0x7e, 0xd9, 0xf0, 0x21, 0xcc, 0x06, 0x0b, 0x65, 0x9f, 0x36, 0x68, 0xa6, 0x73, 0x60, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x5a, 0x00, 0x1d, 0xd8, 0x60, 0x6d, 0x4c, 0xde, 0x41, 0x50, 0x7a, 0x6f, 0x50, 0x10, 0xcc, 0x6e, 0xd0, 0xa2, 0x10, 0xc1, 0x06, 0x41, 0xe9, 0x7d, 0x10, 0x9e, 0xaa, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x05, 0xd0, 0x47, 0x6b, 0x78, 0x50, 0x72, 0xe3, 0xd0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x5e, 0xeb, 0xbd, 0x86, 0x37, 0xee, 0x0e, 0x16, 0x02, 0x7b, 0x6f, 0xd0, 0xbe, 0x7a, 0xc1, 0x86, 0xcf, 0x5d, 0x06, 0x8f, 0x0f, 0xda, 0x41, 0x7f, 0x38, 0x38, 0xd7, 0x1b, 0xac, 0xe1, 0x79, 0x92, 0x0d, 0x96, 0xd7, 0x7a, 0xaf, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x44, 0x73, 0xc3, 0x1b, 0x77, 0x73, 0xf8, 0x77, 0xfe, 0xa0, 0xdd, 0xaa, 0x88, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xbc, 0xd6, 0x7b, 0x83, 0xf6, 0xa0, 0x10, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0xf2, 0x5a, 0xef, 0x0d, 0x9f, 0xbb, 0x0c, 0x1e, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0xf6, 0xfb, 0x1f, 0x0e, 0x5a, 0x14, 0x22, 0xd8, 0xf0, 0x41, 0xce, 0x1a, 0x2c, 0x80, 0x3e, 0x5a, 0xc3, 0x83, 0x92, 0x1b, 0x87, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x72, 0x66, 0xef, 0x35, 0xbc, 0x71, 0x77, 0xb0, 0x84, 0xdb, 0xfb, 0xa0, 0xad, 0x93, 0x82, 0x83, 0x73, 0xbd, 0xc1, 0x1a, 0x9e, 0x27, 0xd9, 0x60, 0x39, 0xb3, 0xf7, 0x1a, 0x14, 0x7c, 0x98, 0x6b, 0xf8, 0x37, 0x67, 0x43, 0x34, 0x37, 0xbc, 0x71, 0x37, 0x07, 0xcb, 0x74, 0xa9, 0x0e, 0x9a, 0x92, 0x8b, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0xcb, 0x99, 0xbd, 0x0f, 0x5a, 0xc9, 0x29, 0xd8, 0xf0, 0x41, 0xce, 0x1a, 0x2c, 0x80, 0x3e, 0x5a, 0xc3, 0x83, 0x92, 0x1b, 0x87, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0xf2, 0x71, 0xef, 0x35, 0xbc, 0x71, 0x77, 0xb0, 0x64, 0xde, 0x7b, 0x0d, 0x9f, 0xbb, 0x0c, 0x0e, 0x6f, 0x50, 0x4a, 0x88, 0x6f, 0xb0, 0x82, 0x4c, 0x7f, 0xc3, 0x83, 0x92, 0x1b, 0x2c, 0x3f, 0xde, 0xde, 0xf0, 0x6e, 0xcf, 0x06, 0xa5, 0x37, 0xfd, 0x06, 0x6d, 0x30, 0x14, 0xac, 0xe1, 0xa3, 0xf6, 0x83, 0xe5, 0xff, 0xde, 0x1d, 0x34, 0x4b, 0x0f, 0x71, 0x70, 0xae, 0x37, 0x58, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0x1f, 0xf7, 0x5e, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x88, 0xe6, 0x86, 0x37, 0xee, 0xe6, 0x60, 0xa1, 0x32, 0xd5, 0x41, 0x53, 0x86, 0x11, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0xf9, 0xb8, 0xf7, 0x1a, 0x3e, 0x77, 0x19, 0x1c, 0xde, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x12, 0xe2, 0x1b, 0xac, 0x20, 0xd3, 0x3f, 0x68, 0xb4, 0x31, 0xe2, 0xa0, 0x35, 0x1e, 0x82, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x7c, 0xdc, 0xfb, 0xa0, 0x19, 0x80, 0x88, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x4e, 0xf8, 0x5e, 0xc3, 0x1b, 0x77, 0x07, 0xeb, 0x2c, 0xbe, 0x37, 0x68, 0x8c, 0x97, 0x60, 0xc3, 0xe7, 0x2e, 0x83, 0xc7, 0x1b, 0x94, 0x12, 0xe2, 0x1b, 0xac, 0x20, 0xd3, 0xdf, 0xf0, 0xa0, 0xe4, 0x06, 0xcb, 0x8f, 0xb7, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x48, 0x99, 0xac, 0xe1, 0xa3, 0xf6, 0x83, 0x05, 0x56, 0xd0, 0x1d, 0x9c, 0xeb, 0x0d, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0xab, 0x13, 0xbe, 0xd7, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0xa2, 0xb9, 0xe1, 0x8d, 0xbb, 0x39, 0x08, 0xfd, 0x92, 0x83, 0x66, 0x5a, 0x23, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0xea, 0x84, 0xef, 0x0d, 0x5a, 0x85, 0x26, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0xab, 0x13, 0xbe, 0x37, 0x7c, 0xee, 0x32, 0x78, 0xbc, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x25, 0xc4, 0x37, 0x58, 0x41, 0xa6, 0x7f, 0xd0, 0x64, 0x6d, 0xc4, 0x41, 0x8b, 0x42, 0x04, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x05, 0xd0, 0x47, 0x6b, 0x78, 0x50, 0x72, 0xe3, 0xd0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x6c, 0xf2, 0xbd, 0x86, 0x37, 0xee, 0x0e, 0x96, 0xd1, 0x7c, 0x6f, 0xd0, 0xd6, 0x49, 0xc1, 0x41, 0xb3, 0xf4, 0x10, 0x07, 0xe7, 0x7a, 0x83, 0x35, 0x3c, 0x4f, 0xb2, 0xc1, 0x62, 0x93, 0xef, 0x35, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x6f, 0xce, 0x86, 0x68, 0x6e, 0x78, 0xe3, 0x6e, 0x0e, 0xdf, 0xb7, 0x1f, 0xb4, 0x2b, 0x1d, 0xb1, 0xe1, 0x79, 0x92, 0x0d, 0x16, 0x9b, 0x7c, 0x6f, 0xd0, 0xea, 0x5b, 0xc1, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x6c, 0xf2, 0x7d, 0xd0, 0x0c, 0x40, 0xc4, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x01, 0xf4, 0xd1, 0x1a, 0x1e, 0x94, 0xdc, 0x38, 0xb4, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0xf7, 0x7c, 0xaf, 0xe1, 0x8d, 0xbb, 0x83, 0x95, 0x4d, 0xdf, 0x1b, 0xb4, 0xaf, 0x5e, 0x70, 0xd0, 0x2c, 0x3d, 0xc4, 0xc1, 0xb9, 0xde, 0x60, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xba, 0xe7, 0x7b, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x21, 0x9a, 0x1b, 0xde, 0xb8, 0x9b, 0x83, 0xa5, 0x18, 0x55, 0x07, 0xad, 0xaa, 0x47, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0xd5, 0x3d, 0xdf, 0x1b, 0xb4, 0x07, 0x85, 0xb0, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0xf7, 0x7c, 0x1f, 0x34, 0x03, 0x10, 0xb1, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x00, 0x7d, 0xb4, 0x86, 0x07, 0x25, 0x37, 0x0e, 0x6d, 0x78, 0x9e, 0x64, 0x83, 0x85, 0x57, 0xdf, 0x6b, 0x78, 0xe3, 0xee, 0x60, 0xd1, 0xd9, 0xf7, 0x06, 0x6d, 0xb1, 0x19, 0x1c, 0x34, 0x4b, 0x0f, 0x71, 0x70, 0xae, 0x37, 0x58, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0xbc, 0xfa, 0x5e, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x88, 0xe6, 0x86, 0x37, 0xee, 0xe6, 0x60, 0xbd, 0x4a, 0xd5, 0x41, 0xdb, 0x02, 0x12, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0xe1, 0xd5, 0xf7, 0x06, 0xcd, 0x2b, 0x1a, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0x85, 0x57, 0xdf, 0x07, 0xcd, 0x00, 0x44, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0x16, 0x40, 0x1f, 0xad, 0xe1, 0x41, 0xc9, 0x8d, 0x43, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x4d, 0xdc, 0xf7, 0x1a, 0xde, 0xb8, 0x3b, 0x58, 0xdd, 0xf7, 0xbd, 0x41, 0x5b, 0x6c, 0x06, 0x1b, 0x3e, 0x77, 0x19, 0x3c, 0xde, 0xa0, 0x94, 0x10, 0xdf, 0x60, 0x05, 0x99, 0xfe, 0x86, 0x07, 0x25, 0x37, 0x58, 0x7e, 0xbc, 0xbd, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0xc4, 0xfa, 0x0d, 0xda, 0x60, 0x28, 0x38, 0x68, 0xeb, 0x36, 0xe2, 0xe0, 0x5c, 0x6f, 0xb0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x13, 0xf7, 0xbd, 0x06, 0x05, 0x1f, 0xe6, 0x1a, 0xfe, 0xcd, 0xd9, 0x10, 0xcd, 0x0d, 0x6f, 0xdc, 0xcd, 0xc1, 0xa2, 0x9e, 0xaa, 0x83, 0x16, 0x36, 0x24, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x9a, 0xb8, 0xef, 0x0d, 0x9a, 0x57, 0x34, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0x6b, 0xe2, 0xbe, 0x37, 0x7c, 0xee, 0x32, 0x78, 0xbc, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x25, 0xc4, 0x37, 0x58, 0x41, 0xa6, 0x7f, 0xd0, 0xda, 0x88, 0xc4, 0x41, 0x8b, 0x42, 0x04, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x05, 0xd0, 0x47, 0x6b, 0x78, 0x50, 0x72, 0xe3, 0xd0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x0c, 0xf9, 0xbd, 0x86, 0x37, 0xee, 0x0e, 0x96, 0x6f, 0x7e, 0x1f, 0xb4, 0x86, 0x72, 0x70, 0x70, 0xae, 0x37, 0x58, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0x86, 0xfc, 0x5e, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x88, 0xe6, 0x86, 0x37, 0xee, 0xe6, 0xe0, 0x4c, 0xf4, 0x71, 0xd0, 0x3e, 0x90, 0xc4, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x0c, 0xf9, 0xbd, 0x41, 0xf3, 0x8a, 0x06, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x31, 0xe4, 0xf7, 0x41, 0x3b, 0x3f, 0x04, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x05, 0xd0, 0x47, 0x6b, 0x78, 0x50, 0x72, 0xe3, 0xd0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x38, 0xfa, 0xbd, 0x86, 0x37, 0xee, 0x0e, 0x96, 0xbc, 0x7e, 0x1f, 0x34, 0xc6, 0x4b, 0x70, 0x70, 0xae, 0x37, 0x58, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0x1c, 0xfd, 0x5e, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x88, 0xe6, 0x86, 0x37, 0xee, 0xe6, 0x20, 0x80, 0xce, 0x0e, 0xda, 0xbf, 0x92, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0x0b, 0x47, 0xbf, 0x0f, 0xda, 0x93, 0x2a, 0xd8, 0xf0, 0x41, 0xce, 0x1a, 0x2c, 0x80, 0x3e, 0x5a, 0xc3, 0x83, 0x92, 0x1b, 0x87, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x4a, 0xdb, 0xef, 0x35, 0xbc, 0x71, 0x77, 0xb0, 0x26, 0xf8, 0x7b, 0xc3, 0xe7, 0x2e, 0x83, 0xc3, 0x6b, 0xf8, 0xdc, 0x65, 0xf0, 0xf4, 0xa0, 0x51, 0x22, 0x83, 0x0d, 0x9f, 0xbb, 0x0c, 0x4e, 0x1f, 0xb4, 0x18, 0x1b, 0x71, 0x70, 0xae, 0x37, 0x58, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0xb4, 0xfd, 0x5e, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x88, 0xe6, 0x86, 0x37, 0xee, 0xe6, 0xf0, 0xb9, 0xd2, 0x41, 0xd3, 0x6b, 0x12, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0xa5, 0xed, 0xf7, 0x86, 0xcf, 0x5d, 0x06, 0x87, 0xd7, 0xf0, 0xb9, 0xcb, 0xe0, 0xe9, 0x41, 0x4b, 0x8c, 0x06, 0x1b, 0x3e, 0x77, 0x19, 0x9c, 0x3e, 0x68, 0x05, 0x39, 0x62, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x00, 0xfa, 0x68, 0x0d, 0x0f, 0x4a, 0x6e, 0x1c, 0xda, 0xf0, 0x3c, 0xc9, 0x06, 0xcb, 0xa9, 0xbf, 0xd7, 0xf0, 0xc6, 0xdd, 0xc1, 0xc2, 0xf0, 0xef, 0x83, 0x66, 0xdb, 0x24, 0x0e, 0xce, 0xf5, 0x06, 0x6b, 0x78, 0x9e, 0x64, 0x83, 0xe5, 0xd4, 0xdf, 0x6b, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0xd1, 0xdc, 0xf0, 0xc6, 0xdd, 0x1c, 0x04, 0xed, 0xcf, 0x41, 0xe3, 0x89, 0x12, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x39, 0xf5, 0xf7, 0x41, 0x3b, 0x7e, 0x12, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x05, 0xd0, 0x47, 0x6b, 0x78, 0x50, 0x72, 0xe3, 0xd0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x8f, 0xfe, 0xbd, 0x86, 0x37, 0xee, 0x0e, 0xd6, 0xe2, 0x7f, 0x1f, 0xb4, 0xce, 0x21, 0x71, 0x70, 0xae, 0x37, 0x58, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x47, 0xff, 0x5e, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x88, 0xe6, 0x86, 0x37, 0xee, 0xe6, 0x60, 0x09, 0x67, 0xd5, 0x41, 0xbb, 0x9d, 0x12, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x3d, 0xfa, 0xf7, 0x06, 0xcd, 0x2b, 0x1a, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0xf5, 0xe8, 0xdf, 0x07, 0x4d, 0xd4, 0x48, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0x16, 0x40, 0x1f, 0xad, 0xe1, 0x41, 0xc9, 0x8d, 0x43, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x1d, 0x00, 0xf8, 0x1a, 0xde, 0xb8, 0x3b, 0x58, 0x03, 0x01, 0x7e, 0xd0, 0x2e, 0x81, 0xc4, 0xc1, 0xb9, 0xde, 0x60, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x0e, 0x00, 0x7c, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x21, 0x9a, 0x1b, 0xde, 0xb8, 0x9b, 0x83, 0x45, 0xac, 0x55, 0x07, 0x2d, 0xd3, 0x4a, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0x75, 0x00, 0xe0, 0x1b, 0x34, 0xaf, 0x68, 0xb0, 0xe1, 0x79, 0x92, 0x0d, 0xd6, 0x01, 0x80, 0x1f, 0x34, 0x03, 0x10, 0xb1, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x00, 0x7d, 0xb4, 0x86, 0x07, 0x25, 0x37, 0x0e, 0x6d, 0x78, 0x9e, 0x64, 0x83, 0xf5, 0x17, 0xe0, 0x6b, 0x78, 0xe3, 0xee, 0x60, 0xad, 0x09, 0xf8, 0x41, 0xbb, 0x04, 0x12, 0x07, 0xe7, 0x7a, 0x83, 0x35, 0x3c, 0x4f, 0xb2, 0xc1, 0xfa, 0x0b, 0xf0, 0x35, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x6f, 0xce, 0x86, 0x68, 0x6e, 0x78, 0xe3, 0x6e, 0x0e, 0xc2, 0x69, 0xec, 0xa0, 0xed, 0x65, 0x89, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xfe, 0x02, 0x7c, 0x83, 0xe6, 0x15, 0x0d, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0xfa, 0x0b, 0xf0, 0x83, 0x66, 0x00, 0x22, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0x0b, 0xa0, 0x8f, 0xd6, 0xf0, 0xa0, 0xe4, 0xc6, 0xa1, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xc4, 0x05, 0x7c, 0x0d, 0x6f, 0xdc, 0x1d, 0x2c, 0xd6, 0x01, 0x3f, 0x68, 0x97, 0x40, 0xe2, 0xe0, 0x5c, 0x6f, 0xb0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0xe2, 0x02, 0xbe, 0x06, 0x05, 0x1f, 0xe6, 0x1a, 0xfe, 0xcd, 0xd9, 0x10, 0xcd, 0x0d, 0x6f, 0xdc, 0xcd, 0xc1, 0xd2, 0xe5, 0xaa, 0x83, 0x86, 0xc5, 0x25, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x12, 0x17, 0xf0, 0x0d, 0x9a, 0x57, 0x34, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0x4b, 0x5c, 0xc0, 0x0f, 0x9a, 0x01, 0x88, 0xd8, 0xf0, 0x41, 0xce, 0x1a, 0x2c, 0x80, 0x3e, 0x5a, 0xc3, 0x83, 0x92, 0x1b, 0x87, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x42, 0x21, 0xf0, 0x35, 0xbc, 0x71, 0x77, 0xb0, 0xd4, 0x09, 0x7c, 0x0d, 0x9f, 0xbb, 0x0c, 0x0e, 0x6f, 0x50, 0x4a, 0x88, 0x6f, 0xb0, 0x82, 0x4c, 0x7f, 0xc3, 0x83, 0x92, 0x1b, 0x2c, 0x3f, 0xde, 0xde, 0xf0, 0xb6, 0xce, 0xc1, 0x72, 0x2b, 0xf0, 0x83, 0x66, 0xe9, 0x21, 0x0e, 0xce, 0xf5, 0x06, 0x6b, 0x78, 0x9e, 0x64, 0x83, 0x85, 0x42, 0xe0, 0x6b, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0xd1, 0xdc, 0xf0, 0xc6, 0xdd, 0x1c, 0x1c, 0x20, 0x44, 0x0f, 0x9a, 0xce, 0x97, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0x0b, 0x85, 0xc0, 0xd7, 0xf0, 0xb9, 0xcb, 0xe0, 0xf0, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x94, 0x10, 0xdf, 0x60, 0x05, 0x99, 0xfe, 0x41, 0x23, 0x01, 0x13, 0x07, 0xad, 0xf1, 0x10, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0x85, 0x42, 0xe0, 0x07, 0xcd, 0x00, 0x44, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0x16, 0x40, 0x1f, 0xad, 0xe1, 0x41, 0xc9, 0x8d, 0x43, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x4d, 0x17, 0xf8, 0x1a, 0xde, 0xb8, 0x3b, 0x58, 0xcf, 0x06, 0x7e, 0xd0, 0x3a, 0x87, 0xc4, 0xc1, 0xb9, 0xde, 0x60, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xa6, 0x0b, 0x7c, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x21, 0x9a, 0x1b, 0xde, 0xb8, 0x9b, 0x83, 0x45, 0xf4, 0x55, 0x07, 0x2d, 0x76, 0x4c, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0x35, 0x5d, 0xe0, 0x1b, 0x34, 0xaf, 0x68, 0xb0, 0xe1, 0x79, 0x92, 0x0d, 0xd6, 0x74, 0x81, 0x1f, 0x34, 0x51, 0x23, 0xb1, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x00, 0x7d, 0xb4, 0x86, 0x07, 0x25, 0x37, 0x0e, 0x6d, 0x78, 0x9e, 0x64, 0x83, 0xb5, 0x74, 0xe0, 0x6b, 0x78, 0xe3, 0xee, 0x60, 0xf5, 0x1f, 0xf8, 0x41, 0x63, 0xbc, 0x04, 0x07, 0xe7, 0x7a, 0x83, 0x35, 0x3c, 0x4f, 0xb2, 0xc1, 0x5a, 0x3a, 0xf0, 0x35, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x6f, 0xce, 0x86, 0x68, 0x6e, 0x78, 0xe3, 0x6e, 0x0e, 0x96, 0x11, 0x58, 0x1d, 0xb4, 0x49, 0x33, 0xb1, 0xe1, 0x79, 0x92, 0x0d, 0xd6, 0xd2, 0x81, 0x1f, 0xb4, 0x27, 0x55, 0xb0, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x00, 0x7d, 0xb4, 0x86, 0x07, 0x25, 0x37, 0x0e, 0x6d, 0x78, 0x9e, 0x64, 0x83, 0x95, 0x87, 0xe0, 0x6b, 0x78, 0xe3, 0xee, 0x60, 0xad, 0x24, 0xf8, 0x41, 0x6b, 0x28, 0x07, 0x07, 0xe7, 0x7a, 0x83, 0x35, 0x3c, 0x4f, 0xb2, 0xc1, 0xca, 0x43, 0xf0, 0x35, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x6f, 0xce, 0x86, 0x68, 0x6e, 0x78, 0xe3, 0x6e, 0x0e, 0x16, 0x52, 0x58, 0x1d, 0xb4, 0x89, 0x34, 0xb1, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0x1e, 0x82, 0x6f, 0xd0, 0xbc, 0xa2, 0xc1, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x79, 0x08, 0x7e, 0xd0, 0xce, 0x0f, 0xc1, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x01, 0xf4, 0xd1, 0x1a, 0x1e, 0x94, 0xdc, 0x38, 0xb4, 0xe1, 0x79, 0x92, 0x0d, 0xd6, 0x69, 0x82, 0xaf, 0xe1, 0x8d, 0xbb, 0x83, 0x15, 0xa6, 0xe0, 0x1b, 0x34, 0xc6, 0x4b, 0x70, 0xd0, 0x2c, 0x3d, 0xc4, 0xc1, 0xb9, 0xde, 0x60, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x4e, 0x13, 0x7c, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x21, 0x9a, 0x1b, 0xde, 0xb8, 0x9b, 0x83, 0x50, 0x43, 0x3c, 0x68, 0xf5, 0x6b, 0x62, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0xd3, 0x04, 0xdf, 0xa0, 0x55, 0x68, 0x82, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x4e, 0x13, 0xfc, 0xa0, 0x19, 0x80, 0x88, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x7d, 0x05, 0x5f, 0xc3, 0x1b, 0x77, 0x07, 0xeb, 0x7d, 0xc1, 0x0f, 0x5a, 0xe7, 0x90, 0x38, 0x38, 0xd7, 0x1b, 0xac, 0xe1, 0x79, 0x92, 0x0d, 0xd6, 0xbe, 0x82, 0xaf, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x44, 0x73, 0xc3, 0x1b, 0x77, 0x73, 0xb0, 0xc2, 0xc6, 0xea, 0xa0, 0xd9, 0xbb, 0x89, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xf6, 0x15, 0x7c, 0x83, 0xe6, 0x15, 0x0d, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0xda, 0x57, 0xf0, 0x83, 0x26, 0x6a, 0x24, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0x0b, 0xa0, 0x8f, 0xd6, 0xf0, 0xa0, 0xe4, 0xc6, 0xa1, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xd6, 0x18, 0x7c, 0x0d, 0x6f, 0xdc, 0x1d, 0xac, 0x85, 0x06, 0xdf, 0xa0, 0x2d, 0x16, 0x85, 0x83, 0x66, 0xe9, 0x21, 0x0e, 0xce, 0xf5, 0x06, 0x6b, 0x78, 0x9e, 0x64, 0x83, 0xb5, 0xc6, 0xe0, 0x6b, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0xd1, 0xdc, 0xf0, 0xc6, 0xdd, 0x1c, 0xfe, 0x5c, 0x3a, 0x68, 0xd8, 0x71, 0x62, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x35, 0x06, 0xdf, 0xa0, 0x85, 0x1f, 0x85, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xd6, 0x18, 0xfc, 0xa0, 0x19, 0x80, 0x88, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0xd1, 0x06, 0x5f, 0xc3, 0x1b, 0x77, 0x07, 0x8b, 0xcd, 0xc1, 0x0f, 0xda, 0x25, 0x90, 0x38, 0x38, 0xd7, 0x1b, 0xac, 0xe1, 0x79, 0x92, 0x0d, 0x96, 0x68, 0x83, 0xaf, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x44, 0x73, 0xc3, 0x1b, 0x77, 0x73, 0xf8, 0x60, 0xfe, 0xa0, 0x59, 0xd3, 0x89, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x44, 0x1b, 0x7c, 0x83, 0xe6, 0x15, 0x0d, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x12, 0x6d, 0xf0, 0x83, 0x66, 0x00, 0x22, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0x0b, 0xa0, 0x8f, 0xd6, 0xf0, 0xa0, 0xe4, 0xc6, 0xa1, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xc0, 0x1d, 0x7c, 0x0d, 0x6f, 0xdc, 0x1d, 0x2c, 0xd5, 0x07, 0x3f, 0x68, 0xb6, 0x4d, 0xe2, 0xe0, 0x5c, 0x6f, 0xb0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0xe0, 0x0e, 0xbe, 0x06, 0x05, 0x1f, 0xe6, 0x1a, 0xfe, 0xcd, 0xd9, 0x10, 0xcd, 0x0d, 0x6f, 0xdc, 0xcd, 0x41, 0xb0, 0x99, 0x1e, 0x34, 0xd8, 0x3b, 0xb1, 0xe1, 0x79, 0x92, 0x0d, 0x16, 0xb8, 0x83, 0x1f, 0xb4, 0xe3, 0x27, 0xb1, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0x08, 0x84, 0xaf, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x44, 0x73, 0xc3, 0x1b, 0x77, 0x73, 0xb0, 0xe0, 0xce, 0x6a, 0xc3, 0x1b, 0x77, 0x07, 0x6b, 0x1f, 0xc2, 0x37, 0x3c, 0x4f, 0xb2, 0xc1, 0x0a, 0x81, 0xf0, 0x0d, 0x9a, 0x57, 0x34, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0x2b, 0x04, 0xc2, 0x0f, 0x9a, 0xa8, 0x91, 0x38, 0x58, 0x49, 0xa7, 0x7f, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0x41, 0x9b, 0xdb, 0x10, 0xab, 0xa1, 0x98, 0xae, 0x41, 0x5b, 0xaf, 0x03, 0x07, 0xeb, 0x1a, 0xa7, 0x37, 0xcc, 0xfd, 0xe0, 0xf1, 0x86, 0x89, 0x5b, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0x33, 0xad, 0x0a, 0x1b, 0x8a, 0xe9, 0x06, 0xad, 0x7a, 0x4f, 0x6c, 0x98, 0xb8, 0x35, 0xcc, 0xfd, 0xe0, 0xf0, 0x86, 0x3a, 0xb2, 0x41, 0x5b, 0xaf, 0x03, 0x07, 0xcd, 0xce, 0x0e, 0x6c, 0x28, 0xa6, 0x1b, 0xb4, 0xea, 0x3d, 0xb1, 0x61, 0xee, 0x07, 0x8f, 0x0f, 0xda, 0x47, 0x9f, 0x58, 0x0d, 0xc5, 0x74, 0x0d, 0xda, 0x7a, 0x1d, 0x38, 0x58, 0xc2, 0x05, 0xbd, 0x61, 0xee, 0x07, 0x8f, 0x37, 0x4c, 0xdc, 0x1a, 0xea, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x9a, 0x36, 0x34, 0xd8, 0x50, 0x4c, 0x37, 0x68, 0x18, 0x7e, 0x62, 0xc3, 0xc4, 0x6d, 0xd0, 0x56, 0x35, 0xc4, 0x86, 0x62, 0xba, 0x41, 0xc3, 0xf0, 0x13, 0x1b, 0x26, 0x6e, 0x0d, 0x73, 0x3f, 0x78, 0xbc, 0xa1, 0x8e, 0xac, 0x61, 0x86, 0x36, 0x54, 0xc2, 0x0d, 0x27, 0xc2, 0x86, 0x4a, 0xb8, 0xc1, 0x62, 0x36, 0xa8, 0x65, 0x96, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x79, 0x92, 0x0d, 0xd6, 0xd7, 0x8f, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0x4a, 0x09, 0xf1, 0x0d, 0x56, 0x90, 0xe9, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0x90, 0x32, 0x59, 0xc3, 0x47, 0xed, 0x07, 0x4b, 0x03, 0xc8, 0x3b, 0x38, 0xc6, 0x9c, 0x1d, 0xac, 0xa4, 0xd3, 0x3f, 0x9c, 0x62, 0x87, 0x53, 0xec, 0xa0, 0xe1, 0x01, 0x8a, 0x0d, 0xc5, 0x74, 0x83, 0x86, 0xe1, 0x27, 0x36, 0xcc, 0xfd, 0xe0, 0xf2, 0x86, 0x3a, 0xb2, 0x86, 0x19, 0x5a, 0xc3, 0xc4, 0x6d, 0x98, 0xce, 0x0d, 0x33, 0xb4, 0x86, 0x89, 0x5b, 0xc3, 0xc4, 0xad, 0x61, 0xee, 0x37, 0x28, 0x5a, 0x4f, 0x0e, 0x5a, 0x81, 0x1c, 0xd8, 0x30, 0xf7, 0x1b, 0x9c, 0x68, 0x3d, 0x36, 0xcc, 0xd0, 0x86, 0x4a, 0xb8, 0xe1, 0x44, 0xd8, 0x50, 0x09, 0x37, 0x58, 0xcc, 0x06, 0xb5, 0xcc, 0xb2, 0xe1, 0x13, 0x9b, 0x35, 0x3c, 0x4f, 0xb2, 0xc1, 0x7a, 0xca, 0xee, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x29, 0x21, 0xbe, 0xc1, 0x0a, 0x32, 0xfd, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x7a, 0xd3, 0xaf, 0xe1, 0xa3, 0xf6, 0x83, 0xc5, 0xa1, 0xdd, 0x6b, 0xf8, 0xa8, 0xfd, 0x60, 0xad, 0x69, 0x77, 0x07, 0xc7, 0x98, 0xb3, 0x83, 0x95, 0x74, 0xfa, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x1d, 0x84, 0x94, 0xf2, 0x06, 0x0d, 0x5f, 0x42, 0xac, 0x61, 0xe2, 0xd6, 0x30, 0x71, 0x6b, 0x98, 0xfb, 0x0d, 0x8a, 0xd6, 0x93, 0x83, 0x06, 0x38, 0x21, 0x36, 0xcc, 0xfd, 0x06, 0x27, 0x5a, 0x8f, 0x83, 0x06, 0x38, 0x21, 0x0e, 0x42, 0x4a, 0x79, 0x83, 0xc5, 0x6c, 0x50, 0xcb, 0x2c, 0x1b, 0x3e, 0x6a, 0x3f, 0x38, 0x40, 0x7f, 0x1c, 0x4e, 0xb1, 0xc3, 0x29, 0xb6, 0xe1, 0x44, 0xd8, 0xa0, 0x19, 0x0b, 0x8a, 0x0d, 0x16, 0xb3, 0x41, 0x2d, 0xb3, 0x6c, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x25, 0xc4, 0x37, 0x58, 0x41, 0xa6, 0xbf, 0xe1, 0xdd, 0x9e, 0x0d, 0x02, 0x47, 0x6f, 0x0d, 0x1f, 0xb5, 0x1f, 0x9c, 0xd0, 0x3f, 0x3a, 0x38, 0xc6, 0x9c, 0x6d, 0x50, 0xf0, 0x61, 0xae, 0xc1, 0x89, 0xfd, 0x66, 0x0d, 0x4a, 0x09, 0xf1, 0x8d, 0xe7, 0x07, 0x27, 0x04, 0x90, 0xe3, 0xd0, 0x71, 0xe8, 0x60, 0x25, 0x9d, 0xfe, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x07, 0x6d, 0x0d, 0x51, 0xac, 0x86, 0x62, 0xba, 0x06, 0x6d, 0xbd, 0x0e, 0x1c, 0xac, 0x22, 0x8b, 0xde, 0x30, 0xf7, 0x83, 0xc7, 0x1b, 0x26, 0x6e, 0x0d, 0x75, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0xed, 0xf7, 0x1f, 0x6c, 0x28, 0xa6, 0x1b, 0xb4, 0x6b, 0x45, 0xb1, 0x61, 0xe2, 0x36, 0x68, 0xfa, 0x7c, 0x62, 0x43, 0x31, 0xdd, 0xa0, 0x5d, 0x2b, 0x8a, 0x0d, 0x13, 0xb7, 0x41, 0xab, 0xed, 0x13, 0x1b, 0x8a, 0xe9, 0x06, 0xed, 0x5a, 0x51, 0x6c, 0x98, 0xfb, 0xc1, 0xe5, 0x83, 0xf6, 0xd1, 0x27, 0x56, 0x43, 0x31, 0x5d, 0x83, 0xb6, 0x5e, 0x07, 0x0e, 0x56, 0xbe, 0x47, 0x6f, 0x98, 0xfb, 0xc1, 0xe3, 0x0d, 0x13, 0xb7, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x76, 0x74, 0x11, 0x36, 0x14, 0xd3, 0x0d, 0x9a, 0x4b, 0xa3, 0xd8, 0x30, 0x71, 0x6b, 0x98, 0xfb, 0xc1, 0xe1, 0x0d, 0x75, 0x64, 0x0d, 0x33, 0xb4, 0xa1, 0x12, 0x6e, 0x38, 0x11, 0x36, 0x54, 0xc2, 0x0d, 0x16, 0xb3, 0x41, 0x2d, 0xb3, 0x6c, 0xf8, 0xc4, 0x66, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x3c, 0x77, 0x7b, 0xc3, 0xbb, 0x3d, 0x6b, 0x50, 0x4a, 0x88, 0x6f, 0xb0, 0x82, 0x4c, 0x7f, 0xc3, 0xbb, 0x3d, 0x1b, 0x84, 0x94, 0xc9, 0x1a, 0x3e, 0x6a, 0x3f, 0x58, 0x61, 0xbc, 0xdd, 0xc1, 0x31, 0xe6, 0xec, 0x60, 0x25, 0x9d, 0xfe, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x07, 0x6d, 0xe3, 0x51, 0x6c, 0x28, 0xa6, 0x1b, 0x34, 0x97, 0x46, 0xb1, 0x61, 0xe2, 0x36, 0x68, 0xb5, 0x7d, 0x62, 0x43, 0x31, 0xdd, 0xa0, 0xb9, 0x34, 0x8a, 0x0d, 0x73, 0x3f, 0xb8, 0xbc, 0xa1, 0x8e, 0xac, 0x61, 0x86, 0xd6, 0x30, 0x71, 0x1b, 0xa6, 0x73, 0xc3, 0x0c, 0xad, 0x61, 0xe2, 0xd6, 0x30, 0xf7, 0x1b, 0x84, 0x2b, 0xc2, 0x86, 0x62, 0xba, 0x1a, 0x66, 0x68, 0x0d, 0x13, 0xb7, 0x86, 0x89, 0x5b, 0xc3, 0xdc, 0x6f, 0x10, 0x2c, 0x4b, 0x07, 0x0d, 0xd2, 0x51, 0x6c, 0x98, 0xfb, 0x0d, 0x82, 0x70, 0xe9, 0xa0, 0xc1, 0x49, 0x88, 0xc3, 0x79, 0xbc, 0x41, 0xc3, 0x97, 0x10, 0x6b, 0x98, 0xb8, 0x35, 0x4c, 0xdc, 0x1a, 0xe6, 0x7e, 0x83, 0x60, 0x59, 0x3a, 0x68, 0x80, 0x13, 0x62, 0xc3, 0xdc, 0x6f, 0x10, 0x84, 0x4b, 0x07, 0x0d, 0x70, 0x42, 0x1c, 0xce, 0xe3, 0x0d, 0x16, 0xb3, 0x41, 0x2d, 0xb3, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0xb0, 0x60, 0xda, 0xf0, 0x51, 0xfb, 0x41, 0xd8, 0x52, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0x76, 0x10, 0x16, 0x4c, 0x1b, 0x66, 0x68, 0x0d, 0x13, 0xb7, 0x61, 0x3a, 0x0f, 0x5a, 0xa0, 0xa4, 0xd8, 0x70, 0x22, 0x6c, 0xd0, 0x30, 0x2b, 0xc5, 0x06, 0x8b, 0xd9, 0xa0, 0x96, 0x59, 0x36, 0x7c, 0x62, 0xb3, 0x1a, 0x3e, 0x77, 0x19, 0x1c, 0xde, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x12, 0xe2, 0x1b, 0xac, 0x20, 0xd3, 0x3f, 0x58, 0x15, 0x46, 0x7c, 0x70, 0xae, 0x37, 0xd8, 0xf0, 0xb9, 0xcb, 0xe0, 0xf1, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x94, 0x10, 0xdf, 0x60, 0x05, 0x99, 0xfe, 0xc1, 0xc1, 0x5a, 0xee, 0xe0, 0x00, 0x9a, 0x74, 0xb0, 0x92, 0x4e, 0xff, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0xc3, 0x79, 0x7c, 0xd0, 0xec, 0x25, 0xc4, 0x86, 0x13, 0x61, 0x83, 0xc6, 0x1d, 0x29, 0x0e, 0x5a, 0x75, 0x85, 0x38, 0x68, 0x08, 0x16, 0x62, 0xd6, 0x50, 0x4c, 0xd7, 0xa0, 0xad, 0xd7, 0x81, 0x83, 0xc5, 0x7d, 0xd2, 0x1b, 0xe6, 0x7e, 0xf0, 0x78, 0xc3, 0xc4, 0xad, 0xa1, 0x8e, 0x6f, 0x78, 0xf9, 0xee, 0xa0, 0x2d, 0xc4, 0x84, 0x0d, 0xc5, 0x74, 0x83, 0x46, 0x92, 0x29, 0x36, 0x4c, 0xdc, 0x06, 0x4d, 0x9f, 0x4f, 0x6c, 0x28, 0xa6, 0x1b, 0x34, 0x92, 0x4c, 0x71, 0xd0, 0x6a, 0xfb, 0xc4, 0xac, 0xa1, 0x98, 0xae, 0x41, 0x5b, 0xaf, 0x03, 0x07, 0xcb, 0x71, 0xaa, 0x37, 0xcc, 0xfd, 0xe0, 0xf1, 0x86, 0x89, 0x5b, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0x8b, 0xa9, 0x0c, 0x1b, 0x8a, 0xe9, 0x06, 0xad, 0x5c, 0x53, 0x6c, 0x98, 0xb8, 0x0d, 0xda, 0xaa, 0x86, 0xd8, 0x50, 0x4c, 0x37, 0x68, 0xe5, 0x9a, 0xe2, 0xa0, 0xd5, 0xf6, 0x89, 0xc3, 0x29, 0xb6, 0x86, 0x62, 0xba, 0x06, 0x6d, 0xbd, 0x0e, 0x1c, 0x2c, 0x73, 0x78, 0xde, 0x30, 0xf7, 0x83, 0xc7, 0x1b, 0x26, 0x6e, 0x0d, 0x75, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0xcd, 0x31, 0x13, 0x6c, 0x28, 0xa6, 0x1b, 0xb4, 0x5b, 0x4e, 0xb1, 0x61, 0xe2, 0x36, 0x68, 0xfa, 0x7c, 0x62, 0x43, 0x31, 0xdd, 0xa0, 0xdd, 0x72, 0x8a, 0x0d, 0x73, 0x3f, 0x78, 0x7c, 0xd0, 0xf0, 0x1c, 0xc5, 0x6a, 0x28, 0xa6, 0x6b, 0xd0, 0xd6, 0xeb, 0xc0, 0xc1, 0xfa, 0x3e, 0xea, 0x0d, 0x73, 0x3f, 0x78, 0xbc, 0x61, 0xe2, 0xd6, 0x50, 0xc7, 0x37, 0xbc, 0x7c, 0x77, 0xd0, 0x16, 0xf7, 0xc2, 0x86, 0x62, 0xba, 0x41, 0xdb, 0xf4, 0x14, 0x1b, 0x26, 0x6e, 0x0d, 0x73, 0x3f, 0x38, 0xbc, 0xa1, 0x8e, 0x1f, 0x7e, 0xbf, 0xd9, 0x50, 0x4c, 0x37, 0x68, 0x9b, 0x9e, 0x62, 0xc3, 0xc4, 0x6d, 0xd0, 0x6a, 0xfb, 0xc4, 0x86, 0x62, 0xba, 0x41, 0xdb, 0xf4, 0x14, 0x1b, 0x26, 0x6e, 0x83, 0xb6, 0xcc, 0x28, 0x36, 0x14, 0xd3, 0x0d, 0xda, 0xa6, 0xa7, 0xd8, 0x30, 0xf7, 0x83, 0xcf, 0x07, 0xed, 0xa3, 0x4f, 0xcc, 0x1a, 0x8a, 0xe9, 0x1a, 0xb4, 0xf5, 0x3a, 0x70, 0xb0, 0x24, 0x17, 0x7a, 0xc3, 0xdc, 0x0f, 0x1e, 0x6f, 0x98, 0xb8, 0x35, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0x1d, 0x34, 0x52, 0x70, 0xb0, 0xa1, 0x98, 0x6e, 0xd0, 0x32, 0x43, 0xc5, 0x86, 0x89, 0xdb, 0xa0, 0xe9, 0xf3, 0x89, 0x0d, 0xc5, 0x74, 0x83, 0x96, 0x19, 0x2a, 0x36, 0xcc, 0xfd, 0xe0, 0xf1, 0x41, 0xbb, 0x14, 0x14, 0x87, 0x53, 0xac, 0x35, 0x14, 0xd3, 0x35, 0x68, 0xeb, 0x75, 0xe0, 0x60, 0x05, 0xd2, 0xf3, 0x86, 0xb9, 0x1f, 0x3c, 0xde, 0x30, 0x71, 0x6b, 0xa8, 0xe3, 0x1b, 0x5e, 0xbe, 0x3b, 0x68, 0xc4, 0xa2, 0x60, 0x43, 0x31, 0xdd, 0xa0, 0x49, 0x8e, 0x8a, 0x0d, 0x73, 0x3f, 0x38, 0xbc, 0xa1, 0x8e, 0xac, 0x61, 0x86, 0xd6, 0x30, 0x71, 0x1b, 0xa6, 0x73, 0xc3, 0x0c, 0xad, 0x61, 0xe2, 0xd6, 0x30, 0x71, 0x6b, 0x98, 0xfb, 0x0d, 0x82, 0x65, 0xe9, 0xa0, 0x15, 0xc8, 0x81, 0x0d, 0x73, 0xbf, 0x41, 0x10, 0x2e, 0x6d, 0x98, 0xa1, 0x0d, 0x95, 0x70, 0xc3, 0x89, 0xb0, 0xa1, 0x12, 0x6e, 0xb0, 0x98, 0x0d, 0x6a, 0x99, 0x65, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xfa, 0x65, 0xc3, 0x87, 0x30, 0x1b, 0x2c, 0x94, 0x7d, 0xda, 0xa0, 0x99, 0xce, 0x81, 0x35, 0x28, 0x3a, 0x8d, 0x37, 0x68, 0x01, 0x74, 0x60, 0x83, 0xb5, 0x31, 0x79, 0x87, 0xd4, 0xc1, 0x41, 0x5b, 0xa5, 0x03, 0x07, 0x2b, 0xe9, 0xf4, 0x0f, 0xa7, 0xd8, 0xe1, 0x14, 0x3b, 0x9c, 0xc7, 0x07, 0xad, 0x70, 0x52, 0x6c, 0x38, 0x11, 0x36, 0x68, 0xf4, 0xa4, 0xe2, 0xa0, 0x7d, 0x58, 0x8a, 0x83, 0x26, 0x65, 0x29, 0x56, 0x43, 0x31, 0x5d, 0x83, 0xb6, 0x5e, 0x07, 0x0e, 0xd6, 0xab, 0x49, 0x6f, 0x98, 0xfb, 0xc1, 0xe3, 0x0d, 0x13, 0xb7, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x96, 0xe2, 0x12, 0x36, 0x14, 0xd3, 0x0d, 0x9a, 0x33, 0xaa, 0xd8, 0x30, 0x71, 0x1b, 0x34, 0x7d, 0x3e, 0xb1, 0xa1, 0x98, 0x6e, 0xd0, 0x9c, 0x51, 0xc5, 0x41, 0xab, 0xed, 0x13, 0xab, 0xa1, 0x98, 0xae, 0x41, 0x5b, 0xaf, 0x03, 0x07, 0x8b, 0x3d, 0xa8, 0x37, 0xcc, 0xfd, 0xe0, 0xf1, 0x86, 0x89, 0x5b, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0xfb, 0x60, 0x0b, 0x1b, 0x8a, 0xe9, 0x06, 0xad, 0x51, 0x55, 0x6c, 0x98, 0xb8, 0x35, 0xcc, 0xfd, 0xe0, 0xf0, 0x86, 0x3a, 0xb2, 0x41, 0x2b, 0x90, 0x03, 0x07, 0x0d, 0x5a, 0x0e, 0x6c, 0x28, 0xa6, 0x1b, 0xb4, 0x46, 0x55, 0x71, 0xd0, 0x6a, 0xfb, 0xc4, 0x6a, 0x28, 0xa6, 0x6b, 0xd0, 0xd6, 0xeb, 0xc0, 0xc1, 0xa2, 0xc3, 0xeb, 0x0d, 0x73, 0x3f, 0x78, 0xbc, 0x61, 0xe2, 0xd6, 0x50, 0xc7, 0x37, 0xbc, 0x7c, 0x77, 0xd0, 0x8c, 0xcf, 0xc3, 0x86, 0x62, 0xba, 0x41, 0x5b, 0x65, 0x15, 0x1b, 0x26, 0x6e, 0x0d, 0x73, 0x3f, 0x38, 0xbc, 0xa1, 0x8e, 0xac, 0x61, 0x86, 0x36, 0x54, 0xc2, 0x0d, 0x27, 0xc2, 0x86, 0x4a, 0xb8, 0xc1, 0x62, 0x36, 0xa8, 0x65, 0x96, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x79, 0x92, 0x35, 0x58, 0xa8, 0x4c, 0x75, 0xb0, 0xba, 0x66, 0x7a, 0xc3, 0x07, 0x39, 0x1b, 0x34, 0x21, 0x0b, 0xb1, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x01, 0xf4, 0xd1, 0x1a, 0x1e, 0x94, 0xdc, 0x38, 0xb4, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0xac, 0x9a, 0x6f, 0xb0, 0x80, 0xca, 0x7b, 0xc3, 0xe7, 0x2e, 0x1b, 0xbe, 0xa8, 0x39, 0x68, 0xb7, 0x7d, 0xe0, 0xe0, 0x5c, 0x6f, 0xb0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0xb1, 0x6a, 0xbe, 0x41, 0xab, 0xf6, 0x03, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0xc5, 0xaa, 0xf9, 0x86, 0xcf, 0x5d, 0x36, 0x7c, 0x51, 0x73, 0xd0, 0xd0, 0xff, 0xc0, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x01, 0xf4, 0xd1, 0x1a, 0x1e, 0x94, 0xdc, 0x38, 0xb4, 0xe1, 0x79, 0x92, 0x0d, 0x96, 0xf9, 0x9a, 0xaf, 0xe1, 0x8d, 0xbb, 0x83, 0x75, 0xfd, 0xcc, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0xf5, 0x35, 0xd3, 0x07, 0xcd, 0xb6, 0x28, 0x1c, 0xb4, 0x41, 0x59, 0x71, 0x70, 0xae, 0x37, 0x58, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0xf3, 0x35, 0x5f, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x88, 0xe6, 0x86, 0x37, 0xee, 0xe6, 0x30, 0x71, 0x07, 0xad, 0x48, 0x56, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0x65, 0xbe, 0xe6, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0xf5, 0x35, 0xd3, 0x07, 0x8d, 0x01, 0x29, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0x65, 0xbe, 0xe6, 0x1b, 0x3e, 0x77, 0xd9, 0x60, 0x7d, 0xcd, 0xf4, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x29, 0x48, 0xe1, 0xa0, 0x45, 0x21, 0x82, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0x81, 0x36, 0xdf, 0xa0, 0xd1, 0x0e, 0x82, 0x35, 0x7c, 0xee, 0xb2, 0x41, 0x22, 0x3e, 0xf0, 0x41, 0xeb, 0x20, 0x04, 0x07, 0x6d, 0x50, 0x56, 0x1c, 0x9c, 0xeb, 0x0d, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0x4b, 0xa0, 0xcd, 0x37, 0x68, 0xee, 0x85, 0x60, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0x81, 0x36, 0x5f, 0xc3, 0xe7, 0x2e, 0x1b, 0x24, 0xe2, 0x03, 0x1f, 0x34, 0x86, 0x43, 0xb0, 0xe1, 0x79, 0x92, 0x0d, 0x96, 0x40, 0x9b, 0x1f, 0xb4, 0x74, 0x5a, 0xb1, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x00, 0x7d, 0xb4, 0x86, 0x07, 0x25, 0x37, 0x0e, 0x6d, 0x78, 0x9e, 0x64, 0x83, 0xc5, 0xe1, 0xe6, 0x1b, 0x9e, 0xb8, 0x5b, 0xc3, 0xe7, 0x2e, 0x1b, 0x2c, 0xc3, 0x69, 0xde, 0xa0, 0x94, 0x10, 0xdf, 0x60, 0x05, 0x99, 0xfe, 0x86, 0x07, 0x25, 0x37, 0x58, 0x7e, 0xbc, 0xbd, 0xe1, 0x6d, 0x9d, 0x83, 0x45, 0x38, 0xcd, 0x1b, 0x3e, 0x77, 0xd9, 0x50, 0xc7, 0x37, 0x28, 0x25, 0xc4, 0x37, 0x58, 0x41, 0xa6, 0xbf, 0xe1, 0x41, 0xc9, 0x0d, 0x96, 0x1f, 0x6f, 0x6f, 0x78, 0x5b, 0xe7, 0xf0, 0x6f, 0xcd, 0xc1, 0xb9, 0xde, 0x60, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x38, 0xdc, 0x7c, 0x83, 0x86, 0x25, 0x0a, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0xe2, 0x70, 0xf3, 0x35, 0x7c, 0xee, 0xb2, 0xc1, 0x32, 0x9c, 0xe6, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x29, 0x21, 0xbe, 0xc1, 0x0a, 0x32, 0xfd, 0x83, 0x56, 0x9e, 0x2b, 0x0e, 0x5a, 0xe3, 0x21, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0x8b, 0xc3, 0xcd, 0x37, 0x7c, 0xee, 0xb2, 0xa1, 0x8e, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0x4a, 0x09, 0xf1, 0x0d, 0x56, 0x90, 0xe9, 0x1f, 0xb4, 0x69, 0x5d, 0x71, 0xd0, 0xa2, 0x10, 0xc1, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x01, 0xf4, 0xd1, 0x1a, 0x1e, 0x94, 0xdc, 0x38, 0xb4, 0xe1, 0x79, 0x92, 0x0d, 0xd6, 0xf4, 0x9b, 0x6f, 0xd0, 0xd8, 0x42, 0xc4, 0x1a, 0x3e, 0x77, 0xd9, 0x70, 0xa7, 0x1d, 0xb4, 0xe9, 0x10, 0x71, 0xd0, 0x06, 0x65, 0xc5, 0xc1, 0xb9, 0xde, 0x60, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xa6, 0xdf, 0x7c, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x21, 0x9a, 0x07, 0xed, 0x90, 0x44, 0x1c, 0x34, 0xb6, 0x10, 0xb1, 0xe1, 0x79, 0x92, 0x0d, 0xd6, 0xf4, 0x9b, 0xaf, 0xe1, 0x73, 0x97, 0x0d, 0x77, 0xda, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x25, 0x25, 0xe2, 0xa0, 0x35, 0x1e, 0x82, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xa6, 0xdf, 0xfc, 0xa0, 0xa5, 0xd3, 0x8a, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x88, 0x38, 0xdf, 0xa0, 0x5d, 0xe9, 0x88, 0x35, 0x7c, 0xee, 0xb2, 0xc1, 0x09, 0x28, 0xf5, 0xa0, 0x59, 0x94, 0x82, 0x83, 0x36, 0x28, 0x2b, 0x0e, 0xce, 0xf5, 0x06, 0x6b, 0x78, 0x9e, 0x64, 0x83, 0x15, 0x11, 0xe7, 0x1b, 0x34, 0x9d, 0x1d, 0xb1, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0x44, 0x9c, 0xaf, 0xe1, 0x73, 0x97, 0x0d, 0x4e, 0x40, 0xa9, 0x07, 0x0d, 0xc4, 0x15, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0x15, 0x11, 0xe7, 0x07, 0x2d, 0x9d, 0x56, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0x16, 0x40, 0x1f, 0xad, 0xe1, 0x41, 0xc9, 0x8d, 0x43, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0xdd, 0xc8, 0xf9, 0x06, 0xad, 0xaa, 0x47, 0xac, 0xe1, 0x73, 0x97, 0x0d, 0x6f, 0xeb, 0x1c, 0x34, 0x02, 0x4c, 0x70, 0xd0, 0x06, 0x65, 0xc5, 0xc1, 0xb9, 0xde, 0x60, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x6e, 0xe4, 0x7c, 0x83, 0x86, 0xe3, 0x23, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0xba, 0x91, 0xf3, 0x35, 0x7c, 0xee, 0xb2, 0xe1, 0x6d, 0x9d, 0x83, 0xa6, 0xa3, 0x10, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0xba, 0x91, 0xf3, 0x83, 0x96, 0x4e, 0x2b, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0x0b, 0xa0, 0x8f, 0xd6, 0xf0, 0xa0, 0xe4, 0xc6, 0xa1, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x26, 0xe7, 0x7c, 0x0d, 0x6f, 0xdc, 0x1d, 0xac, 0x15, 0x3a, 0x5f, 0xc3, 0xe7, 0x2e, 0x1b, 0x94, 0xd0, 0xb1, 0x07, 0x8d, 0x12, 0x19, 0x1c, 0xb4, 0x41, 0x59, 0x71, 0x70, 0xae, 0x37, 0x58, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0xc9, 0x39, 0x5f, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x88, 0xe6, 0x86, 0x37, 0xee, 0xe6, 0xa0, 0x84, 0x8e, 0x3d, 0x68, 0x78, 0xc7, 0x62, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0xc9, 0x39, 0x5f, 0xc3, 0xe7, 0x2e, 0x1b, 0x94, 0xd0, 0xb1, 0x07, 0x2d, 0x31, 0x1a, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0x35, 0x39, 0xe7, 0x07, 0x2d, 0x9d, 0x56, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0x25, 0x50, 0xe7, 0x6b, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0xd1, 0xdc, 0xf0, 0xc6, 0xdd, 0x1c, 0xac, 0xfe, 0xd6, 0xda, 0xf0, 0xc6, 0xdd, 0xc1, 0xe2, 0xad, 0xf3, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x04, 0xea, 0x7c, 0xc3, 0xe7, 0x2e, 0x1b, 0xac, 0x0b, 0x3b, 0xdf, 0xf0, 0xf5, 0xcb, 0x86, 0x07, 0x6f, 0x36, 0x58, 0x28, 0xfb, 0xb4, 0x41, 0x33, 0x9d, 0x03, 0x6b, 0x50, 0x74, 0x1a, 0x6f, 0xd0, 0x02, 0xe8, 0xc0, 0x06, 0xed, 0xac, 0x2e, 0x1c, 0xc6, 0x65, 0x83, 0x82, 0x60, 0x76, 0x83, 0x03, 0x68, 0xd2, 0x86, 0x71, 0x39, 0x08, 0x4f, 0xd5, 0x0d, 0x9f, 0xbb, 0x6c, 0x70, 0x02, 0x4a, 0xdd, 0xf0, 0x3c, 0xc9, 0x06, 0x0b, 0x2b, 0xcd, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x6b, 0x3b, 0x05, 0x07, 0xc7, 0x98, 0xb3, 0x83, 0x95, 0x74, 0xfa, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x1d, 0x34, 0x4c, 0x57, 0xb1, 0xa1, 0x98, 0x6e, 0xd0, 0x56, 0x59, 0xc5, 0x41, 0xc3, 0xf1, 0x14, 0xab, 0xa1, 0x98, 0xae, 0x41, 0x5b, 0xaf, 0x03, 0x07, 0xab, 0x25, 0xa2, 0x37, 0xcc, 0xfd, 0xe0, 0xf1, 0x86, 0x89, 0x5b, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0xd3, 0x8c, 0x07, 0x1b, 0x8a, 0xe9, 0x06, 0xad, 0xde, 0x59, 0x1c, 0x34, 0x7d, 0x3e, 0xb1, 0x1a, 0x8a, 0xe9, 0x1a, 0xb4, 0xf5, 0x3a, 0x70, 0xb0, 0x46, 0x34, 0x7a, 0xc3, 0xdc, 0x0f, 0x1e, 0x6f, 0x98, 0xb8, 0x35, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0x1d, 0x34, 0xc4, 0x84, 0xb0, 0xa1, 0x98, 0x6e, 0xd0, 0x82, 0xa0, 0xc5, 0x86, 0x89, 0xdb, 0xa0, 0x4d, 0x39, 0x8a, 0x0d, 0xc5, 0x74, 0x83, 0x16, 0x04, 0x2d, 0x36, 0xcc, 0xfd, 0xe0, 0xf1, 0x41, 0x6b, 0x8d, 0x14, 0x87, 0x53, 0x6c, 0x0d, 0xc5, 0x74, 0x0d, 0xda, 0x7a, 0x1d, 0x38, 0x58, 0xec, 0x61, 0xbd, 0x61, 0xee, 0x07, 0x8f, 0x37, 0x4c, 0xdc, 0x1a, 0xea, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0xda, 0x9b, 0x6d, 0xd8, 0x50, 0x4c, 0x37, 0x68, 0x38, 0xd2, 0x62, 0xc3, 0xc4, 0x6d, 0xd0, 0xf4, 0xf9, 0xc4, 0x86, 0x62, 0xba, 0x41, 0xc3, 0x91, 0x16, 0x07, 0xad, 0xb6, 0x4f, 0x1c, 0x4e, 0xb1, 0xd6, 0x50, 0x4c, 0xd7, 0xa0, 0xad, 0xd7, 0x81, 0x83, 0x15, 0x90, 0xd2, 0x1b, 0xe6, 0x7e, 0xf0, 0x78, 0xc3, 0xc4, 0xad, 0xa1, 0x8e, 0x6f, 0x78, 0xf9, 0xee, 0xa0, 0x95, 0xcf, 0x84, 0x0d, 0xc5, 0x74, 0x83, 0xc6, 0x40, 0x2d, 0x0e, 0x9a, 0x3e, 0x9f, 0x38, 0x9c, 0x62, 0x6b, 0x28, 0xa6, 0x6b, 0xd0, 0xd6, 0xeb, 0xc0, 0xc1, 0x2a, 0x74, 0xe8, 0x0d, 0x73, 0x3f, 0x78, 0xbc, 0x61, 0xe2, 0xd6, 0x50, 0xc7, 0x37, 0xbc, 0x7c, 0x77, 0xd0, 0x04, 0xd2, 0xc1, 0x86, 0x62, 0xba, 0x41, 0x5b, 0xab, 0x16, 0x1b, 0x26, 0x6e, 0x83, 0xb6, 0xaa, 0x21, 0x36, 0x14, 0xd3, 0x0d, 0xda, 0x5a, 0xb5, 0x38, 0x68, 0xb5, 0x7d, 0x62, 0x35, 0x14, 0xd3, 0x35, 0x68, 0xeb, 0x75, 0xe0, 0x60, 0x31, 0xf7, 0xf5, 0x86, 0xb9, 0x1f, 0x3c, 0xde, 0x30, 0x71, 0x6b, 0xa8, 0xe3, 0x1b, 0x5e, 0xbe, 0x3b, 0x68, 0x05, 0xf3, 0x61, 0x43, 0x31, 0xdd, 0xa0, 0xa9, 0x5c, 0x8b, 0x83, 0xa6, 0xcf, 0x27, 0x0e, 0xa7, 0xd8, 0x1a, 0x8a, 0xe9, 0x1a, 0xb4, 0xf5, 0x3a, 0x70, 0xb0, 0xc0, 0xa1, 0x7a, 0xc3, 0xdc, 0x0f, 0x1e, 0x6f, 0x98, 0xb8, 0x35, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0x1d, 0xb4, 0xb6, 0xc7, 0xb0, 0xa1, 0x98, 0x6e, 0xd0, 0x12, 0xb1, 0xc5, 0x86, 0x89, 0xdb, 0xa0, 0xe9, 0xf3, 0x89, 0x0d, 0xc5, 0x74, 0x83, 0x96, 0x88, 0x2d, 0x36, 0xcc, 0xfd, 0xe0, 0xf1, 0x41, 0xb3, 0x8d, 0x10, 0x87, 0x53, 0x6c, 0x0d, 0xc5, 0x74, 0x0d, 0xda, 0x7a, 0x1d, 0x38, 0x58, 0xd5, 0x18, 0xbd, 0x61, 0xee, 0x07, 0x8f, 0x37, 0x4c, 0xdc, 0x1a, 0xea, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x5a, 0x7a, 0x41, 0xd8, 0x50, 0x4c, 0x37, 0x68, 0x80, 0xda, 0xe2, 0xa0, 0x45, 0x46, 0x88, 0xd5, 0x50, 0x4c, 0xd7, 0xa0, 0xad, 0xd7, 0x81, 0x83, 0xf5, 0x68, 0xd5, 0x1b, 0xe6, 0x7e, 0xf0, 0x78, 0xc3, 0xc4, 0xad, 0xa1, 0x8e, 0x6f, 0x78, 0xf9, 0xee, 0xa0, 0x3d, 0x6f, 0x86, 0x0d, 0xc5, 0x74, 0x83, 0xc6, 0xbc, 0x2d, 0x36, 0x4c, 0xdc, 0x06, 0x0d, 0xba, 0x55, 0x6c, 0x28, 0xa6, 0x1b, 0x34, 0xe6, 0x6d, 0xb1, 0x61, 0xe2, 0x36, 0x68, 0xb5, 0x7d, 0x62, 0x43, 0x31, 0xdd, 0xa0, 0x31, 0x6f, 0x8b, 0x83, 0xb6, 0xcc, 0x28, 0x66, 0x0d, 0xc5, 0x74, 0x0d, 0xda, 0x7a, 0x1d, 0x38, 0x58, 0x48, 0x10, 0xbd, 0x61, 0xee, 0x07, 0x8f, 0x37, 0x4c, 0xdc, 0x1a, 0xea, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0xda, 0xae, 0x3b, 0xd8, 0x50, 0x4c, 0x37, 0x68, 0x00, 0xde, 0x62, 0xc3, 0xc4, 0xad, 0x61, 0xee, 0x07, 0x87, 0x37, 0xd4, 0x91, 0x35, 0xcc, 0xd0, 0x1a, 0x26, 0x6e, 0xc3, 0x74, 0x6e, 0x98, 0xa1, 0x35, 0x4c, 0xdc, 0x1a, 0xe6, 0x7e, 0x83, 0x70, 0x45, 0x38, 0x68, 0x05, 0x72, 0xe0, 0x70, 0x1e, 0x6f, 0xd0, 0xf0, 0x25, 0xc4, 0x06, 0xcd, 0x66, 0x42, 0x6c, 0xb0, 0x98, 0x0d, 0x6a, 0x99, 0x65, 0xc3, 0xf3, 0x24, 0x1b, 0x04, 0x50, 0xc2, 0x86, 0x8f, 0xda, 0x0f, 0x02, 0xe9, 0xe1, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x0d, 0x27, 0xc2, 0x06, 0x2d, 0xef, 0x5b, 0x6c, 0xb0, 0x98, 0x0d, 0x6a, 0x99, 0x65, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0x20, 0x67, 0x83, 0x26, 0x64, 0x21, 0x56, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0xd0, 0xb8, 0x6e, 0xc1, 0x21, 0x9a, 0x07, 0xc7, 0x70, 0x83, 0x0d, 0x9f, 0xbb, 0x0c, 0x5e, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0x76, 0x6c, 0x21, 0x0e, 0x0e, 0xa0, 0x49, 0x07, 0xcd, 0x0f, 0x43, 0x1c, 0xac, 0xa4, 0xd3, 0x3f, 0x9c, 0x62, 0x87, 0x53, 0xec, 0xa0, 0xf9, 0x86, 0x8b, 0x0d, 0xc5, 0x74, 0x83, 0x06, 0xe0, 0x2d, 0x0e, 0x9a, 0xc6, 0xa8, 0x98, 0x35, 0x14, 0xd3, 0x35, 0x68, 0xeb, 0x75, 0xe0, 0x60, 0x15, 0xde, 0xf3, 0x86, 0xb9, 0x1f, 0x3c, 0xde, 0x30, 0x71, 0x6b, 0xa8, 0xe3, 0x1b, 0x5e, 0xbe, 0x3b, 0x68, 0xca, 0xa9, 0x60, 0x43, 0x31, 0xdd, 0xa0, 0x09, 0x91, 0x8b, 0x83, 0xa6, 0xcf, 0x27, 0x56, 0x43, 0x31, 0x5d, 0x83, 0xb6, 0x5e, 0x07, 0x0e, 0x16, 0xbb, 0x56, 0x6f, 0x98, 0xfb, 0xc1, 0xe3, 0x0d, 0x13, 0xb7, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0xd6, 0x5d, 0x1a, 0x36, 0x14, 0xd3, 0x0d, 0x9a, 0x63, 0xb9, 0xd8, 0x30, 0x71, 0x1b, 0xb4, 0x29, 0x47, 0xb1, 0xa1, 0x98, 0x6e, 0xd0, 0x1c, 0xcb, 0xc5, 0x86, 0x89, 0xdb, 0xa0, 0xd5, 0xf6, 0x89, 0x0d, 0xc5, 0x74, 0x83, 0xe6, 0x58, 0x2e, 0x36, 0x4c, 0xdc, 0x06, 0x6d, 0x99, 0x51, 0x6c, 0x28, 0xa6, 0x1b, 0x34, 0xc7, 0x72, 0x71, 0xd0, 0x68, 0x42, 0xc5, 0xe1, 0x14, 0x6b, 0x0d, 0xc5, 0x74, 0x0d, 0xda, 0x7a, 0x1d, 0x38, 0x58, 0xaa, 0x64, 0xbd, 0x61, 0xee, 0x07, 0x8f, 0x37, 0x4c, 0xdc, 0x1a, 0xea, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x9a, 0x45, 0x6f, 0xd8, 0x50, 0x4c, 0x37, 0x68, 0x48, 0xe8, 0x62, 0xc3, 0xc4, 0xad, 0x61, 0xee, 0x07, 0x87, 0x37, 0xd4, 0x91, 0x35, 0xcc, 0xd0, 0x1a, 0x26, 0x6e, 0xc3, 0x74, 0x6e, 0x98, 0xa1, 0x35, 0x4c, 0xdc, 0x1a, 0x26, 0x6e, 0x83, 0x36, 0x56, 0x2a, 0x36, 0xcc, 0xfd, 0x06, 0x41, 0xb8, 0xb4, 0xa1, 0x98, 0xae, 0x86, 0x19, 0x5a, 0xc3, 0xc4, 0xad, 0x61, 0xee, 0x37, 0x08, 0x57, 0x84, 0x0d, 0xc5, 0x74, 0x0d, 0x35, 0xf3, 0x60, 0x75, 0x8e, 0xf7, 0x41, 0x43, 0xd7, 0x10, 0x87, 0xf3, 0xf8, 0xa0, 0xed, 0x80, 0x8b, 0x83, 0x00, 0x4a, 0xd8, 0x30, 0x43, 0x6b, 0x98, 0xb8, 0x0d, 0xd3, 0x79, 0xd0, 0x3e, 0xd5, 0xc5, 0x86, 0x13, 0x61, 0x83, 0xb6, 0xbd, 0x2e, 0x0e, 0xda, 0x62, 0xb8, 0x38, 0x9c, 0xc7, 0x07, 0xad, 0x70, 0x52, 0x6c, 0x38, 0x11, 0x36, 0x68, 0xc1, 0xe9, 0xe2, 0xa0, 0x7d, 0x58, 0x8a, 0x83, 0x26, 0x65, 0x29, 0x36, 0x14, 0xd3, 0x0d, 0x1a, 0x12, 0xba, 0xd8, 0x30, 0x71, 0x1b, 0xb4, 0xda, 0x3e, 0xb1, 0xa1, 0x98, 0x6e, 0xd0, 0x90, 0xd0, 0xc5, 0x41, 0x5b, 0x66, 0x14, 0xb3, 0x86, 0x62, 0xba, 0x06, 0x6d, 0xbd, 0x0e, 0x1c, 0xac, 0xb4, 0x87, 0xde, 0x30, 0xf7, 0x83, 0xc7, 0x1b, 0x26, 0x6e, 0x0d, 0x75, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x2d, 0x7c, 0x1d, 0x6c, 0x28, 0xa6, 0x1b, 0xb4, 0x13, 0x77, 0xb1, 0x61, 0xe2, 0x36, 0x68, 0xab, 0x1a, 0x62, 0x43, 0x31, 0xdd, 0xa0, 0x9d, 0xb8, 0x8b, 0x83, 0x56, 0xdb, 0x27, 0x0e, 0xa7, 0xd8, 0x1a, 0x8a, 0xe9, 0x1a, 0xb4, 0xf5, 0x3a, 0x70, 0xb0, 0x36, 0xd3, 0x79, 0xc3, 0xdc, 0x0f, 0x1e, 0x6f, 0x98, 0xb8, 0x35, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0x1d, 0x34, 0x31, 0x41, 0xb0, 0xa1, 0x98, 0x6e, 0xd0, 0xf2, 0xdf, 0xc5, 0x86, 0xb9, 0x1f, 0x1c, 0xde, 0x50, 0x47, 0xd6, 0x30, 0x43, 0x1b, 0x2a, 0xe1, 0x86, 0x13, 0x61, 0x43, 0x25, 0xdc, 0x60, 0x31, 0x1b, 0xd4, 0x32, 0xcb, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0x3c, 0xc9, 0x1a, 0x2c, 0x54, 0xa6, 0x3a, 0x58, 0x5b, 0xe9, 0xbc, 0xe1, 0x83, 0x9c, 0x0d, 0x9a, 0x90, 0x85, 0x58, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0x51, 0x69, 0x5e, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x88, 0xe6, 0x86, 0x37, 0xee, 0xe6, 0x50, 0xc7, 0x37, 0xbc, 0x71, 0x77, 0xb0, 0x16, 0xa6, 0x79, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0x51, 0x69, 0xde, 0xf0, 0xb9, 0xcb, 0xe0, 0xf0, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x25, 0xbc, 0xe2, 0xe0, 0x00, 0x9a, 0xb4, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x00, 0x7d, 0xb4, 0x86, 0xe7, 0x49, 0x36, 0x38, 0xf9, 0x96, 0x1e, 0x2c, 0xb1, 0xdf, 0x3e, 0x38, 0xc6, 0x9c, 0xad, 0xe1, 0x79, 0x92, 0x0d, 0x4e, 0xbe, 0xa5, 0x1b, 0x14, 0x7c, 0x98, 0x6b, 0xf8, 0x37, 0x67, 0x43, 0xea, 0x60, 0xc3, 0x1b, 0x77, 0x07, 0xcb, 0x3c, 0xfb, 0x0f, 0x96, 0xd8, 0x6f, 0x6f, 0xf8, 0x20, 0x67, 0x0d, 0x16, 0x40, 0x1f, 0xad, 0xe1, 0x79, 0x92, 0x0d, 0x16, 0xd5, 0x33, 0x1f, 0xb4, 0x22, 0x59, 0x71, 0x70, 0x8c, 0x39, 0x5b, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0xaa, 0x67, 0xde, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0x52, 0x07, 0x07, 0xed, 0x76, 0x56, 0x1c, 0xb4, 0x22, 0x59, 0xb1, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x00, 0x7d, 0xb4, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x24, 0xd0, 0xbc, 0xe1, 0x8d, 0xbb, 0x83, 0xf5, 0x09, 0xcd, 0x07, 0xc7, 0x98, 0xb3, 0x35, 0x3c, 0x4f, 0xb2, 0xc1, 0x22, 0x81, 0xe6, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x21, 0x75, 0xb0, 0xe1, 0x8d, 0xbb, 0x39, 0x3c, 0xb7, 0x7a, 0xd0, 0x3a, 0xf0, 0xc5, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x01, 0xf4, 0xd1, 0x1a, 0x9e, 0x27, 0xd9, 0x60, 0xc9, 0x43, 0xf3, 0xc1, 0xf2, 0x2b, 0xef, 0x83, 0x63, 0xcc, 0xd9, 0x1a, 0x9e, 0x27, 0xd9, 0x60, 0xc9, 0x43, 0xf3, 0x06, 0x05, 0x1f, 0xe6, 0x1a, 0xfe, 0xcd, 0xd9, 0x90, 0x3a, 0xd8, 0xf0, 0xc6, 0xdd, 0x1c, 0x04, 0xee, 0xc3, 0xc1, 0xf2, 0x2b, 0xef, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x74, 0xa3, 0x79, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x48, 0x1d, 0x6c, 0x78, 0xe3, 0x6e, 0x0e, 0x56, 0x39, 0x18, 0x6d, 0x78, 0xe3, 0xee, 0x60, 0x1d, 0x49, 0xf3, 0xc1, 0x4a, 0x3a, 0xfd, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x0e, 0xda, 0x73, 0xbc, 0x58, 0x0d, 0xc5, 0x74, 0x0d, 0xda, 0x7a, 0x1d, 0x38, 0x58, 0xfe, 0x1b, 0xbd, 0x61, 0xee, 0x07, 0x8f, 0x37, 0x4c, 0xdc, 0x1a, 0xea, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x5a, 0x60, 0x43, 0xd8, 0x50, 0x4c, 0x37, 0x68, 0xb0, 0xfc, 0x62, 0xc3, 0xc4, 0x6d, 0xd0, 0xf4, 0xf9, 0xc4, 0x86, 0x62, 0xba, 0x41, 0x83, 0xe5, 0x17, 0x07, 0xad, 0xb6, 0x4f, 0xac, 0x86, 0x62, 0xba, 0x06, 0x6d, 0xbd, 0x0e, 0x1c, 0xac, 0x91, 0x7f, 0xde, 0x30, 0xf7, 0x83, 0xc7, 0x1b, 0x26, 0x6e, 0x0d, 0x75, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x2d, 0xcf, 0x17, 0x6c, 0x28, 0xa6, 0x1b, 0xb4, 0x37, 0x7f, 0x71, 0xd0, 0xa6, 0x1c, 0xc5, 0xac, 0xa1, 0x98, 0xae, 0x41, 0x5b, 0xaf, 0x03, 0x07, 0x8b, 0x6b, 0xac, 0x37, 0xcc, 0xfd, 0xe0, 0xf1, 0x86, 0x89, 0x5b, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0x4b, 0xca, 0x0d, 0x1b, 0x8a, 0xe9, 0x06, 0xad, 0xf7, 0x5f, 0x1c, 0xb4, 0xc8, 0x08, 0xb1, 0x1a, 0x8a, 0xe9, 0x1a, 0xb4, 0xf5, 0x3a, 0x70, 0xb0, 0xe0, 0x00, 0x7a, 0xc3, 0xdc, 0x0f, 0x1e, 0x6f, 0x98, 0xb8, 0x35, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0x1d, 0x34, 0xac, 0x60, 0xb0, 0xa1, 0x98, 0x6e, 0xd0, 0x12, 0x02, 0xc6, 0x41, 0x8b, 0x8c, 0x10, 0xab, 0xa1, 0x98, 0xae, 0x41, 0x5b, 0xaf, 0x03, 0x07, 0xcb, 0xb7, 0xae, 0x37, 0xcc, 0xfd, 0xe0, 0xf1, 0x86, 0x89, 0x5b, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0x03, 0x09, 0x0f, 0x1b, 0x8a, 0xe9, 0x06, 0xad, 0x4a, 0x60, 0x6c, 0x98, 0xb8, 0x0d, 0xda, 0x94, 0xa3, 0xd8, 0x50, 0x4c, 0x37, 0x68, 0x55, 0x02, 0x63, 0xc3, 0xc4, 0x6d, 0xd0, 0x6a, 0xfb, 0xc4, 0x86, 0x62, 0xba, 0x41, 0xab, 0x12, 0x18, 0x07, 0x6d, 0x99, 0x51, 0x1c, 0x4e, 0xb1, 0x35, 0x14, 0xd3, 0x35, 0x68, 0xeb, 0x75, 0xe0, 0x60, 0x79, 0xf9, 0xf4, 0x86, 0xb9, 0x1f, 0x3c, 0xde, 0x30, 0x71, 0x6b, 0xa8, 0xe3, 0x1b, 0x5e, 0xbe, 0x3b, 0x68, 0x9c, 0x64, 0x61, 0x43, 0x31, 0xdd, 0xa0, 0x69, 0x12, 0x8c, 0x0d, 0x13, 0xb7, 0x86, 0xb9, 0x1f, 0x1c, 0xde, 0x60, 0x41, 0xc3, 0xd4, 0x1a, 0x26, 0x6e, 0x83, 0x26, 0xbb, 0x2a, 0x0e, 0x5a, 0x6d, 0x9f, 0x98, 0x0d, 0xda, 0xf5, 0xaa, 0x38, 0x9c, 0x62, 0x1b, 0x8a, 0xe9, 0x06, 0x4d, 0x93, 0x60, 0x1c, 0xb4, 0xda, 0x3e, 0x71, 0x38, 0xc5, 0x5a, 0x43, 0x31, 0x5d, 0x83, 0xb6, 0x5e, 0x07, 0x0e, 0xd6, 0x99, 0x51, 0x6f, 0x98, 0xfb, 0xc1, 0xe3, 0x0d, 0x13, 0xb7, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x56, 0x88, 0x17, 0x36, 0x14, 0xd3, 0x0d, 0x9a, 0xcb, 0xc1, 0xd8, 0x30, 0x71, 0x1b, 0x34, 0x7d, 0x3e, 0xb1, 0xa1, 0x98, 0x6e, 0xd0, 0x5c, 0x0e, 0xc6, 0x41, 0xab, 0xed, 0x13, 0xab, 0xa1, 0x98, 0xae, 0x41, 0x5b, 0xaf, 0x03, 0x07, 0x6b, 0x34, 0xad, 0x37, 0xcc, 0xfd, 0xe0, 0xf1, 0x86, 0x89, 0x5b, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0x43, 0x3c, 0x0e, 0x1b, 0x8a, 0xe9, 0x06, 0xad, 0x1d, 0x61, 0x6c, 0x98, 0xb8, 0x0d, 0xda, 0x94, 0xa3, 0xd8, 0x50, 0x4c, 0x37, 0x68, 0xed, 0x08, 0x63, 0xc3, 0xdc, 0x0f, 0x1e, 0x6f, 0xa8, 0x23, 0x6b, 0x98, 0xa1, 0x35, 0x4c, 0xdc, 0x86, 0xe9, 0xdc, 0x30, 0x43, 0x6b, 0x98, 0xb8, 0x35, 0xcc, 0xfd, 0x06, 0xe1, 0x8a, 0xb0, 0xa1, 0x98, 0xae, 0x86, 0x19, 0x5a, 0xc3, 0xc4, 0xad, 0x61, 0xe2, 0xd6, 0x30, 0xf7, 0x1b, 0x04, 0xcb, 0xd2, 0x41, 0x03, 0x58, 0x17, 0x07, 0x6d, 0x63, 0x52, 0x1c, 0xce, 0xe3, 0x83, 0x56, 0x38, 0x29, 0x0e, 0xc2, 0x82, 0x69, 0xc3, 0x0c, 0xad, 0x61, 0xe2, 0x36, 0x4c, 0xe7, 0x41, 0x3b, 0x5b, 0x18, 0x1b, 0x4e, 0x84, 0x0d, 0x5a, 0x23, 0xc3, 0x38, 0x68, 0x1f, 0x96, 0xe2, 0x70, 0x1e, 0x1f, 0x34, 0x7b, 0x09, 0xb1, 0xe1, 0x44, 0xd8, 0xa0, 0x09, 0x2b, 0x8c, 0x83, 0x56, 0x5d, 0x21, 0x0e, 0x1a, 0x82, 0x85, 0x58, 0x0d, 0xc5, 0x74, 0x0d, 0xda, 0x7a, 0x1d, 0x38, 0x58, 0xd1, 0x54, 0xbd, 0x61, 0xee, 0x07, 0x8f, 0x37, 0x4c, 0xdc, 0x1a, 0xea, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0xda, 0x17, 0x66, 0xd8, 0x50, 0x4c, 0x37, 0x68, 0x08, 0x0e, 0x63, 0xc3, 0xc4, 0xad, 0x61, 0xee, 0x07, 0x87, 0x0f, 0x5a, 0x6b, 0xa4, 0xd8, 0x50, 0x4c, 0x37, 0x68, 0x08, 0x0e, 0xe3, 0xa0, 0xd5, 0xf6, 0x89, 0xd5, 0x50, 0x4c, 0xd7, 0xa0, 0xad, 0xd7, 0x81, 0x83, 0x85, 0x16, 0xd8, 0x1b, 0xe6, 0x7e, 0xf0, 0x78, 0xc3, 0xc4, 0xad, 0xa1, 0x8e, 0x6f, 0x78, 0xf9, 0xee, 0xa0, 0xc1, 0xfb, 0x87, 0x0d, 0xc5, 0x74, 0x83, 0xc6, 0xfe, 0x30, 0x36, 0x4c, 0xdc, 0x1a, 0xe6, 0x7e, 0x70, 0x78, 0x43, 0x1d, 0x59, 0xc3, 0x0c, 0xad, 0x61, 0xe2, 0x36, 0x4c, 0xe7, 0x86, 0x19, 0x5a, 0xc3, 0xc4, 0xad, 0x61, 0xee, 0x37, 0x08, 0x57, 0x84, 0x83, 0x06, 0xe9, 0x28, 0x0e, 0xe7, 0xf1, 0x41, 0xb3, 0x97, 0x10, 0x1b, 0x4e, 0x84, 0x0d, 0x5a, 0x59, 0xc4, 0x38, 0x68, 0xd5, 0x15, 0xe2, 0xa0, 0x21, 0x58, 0x88, 0x0d, 0xc5, 0x74, 0x83, 0xc6, 0xfe, 0x30, 0x36, 0x4c, 0xdc, 0x06, 0xad, 0xb6, 0x4f, 0x6c, 0x28, 0xa6, 0x1b, 0x34, 0xf6, 0x87, 0x71, 0xd0, 0x96, 0x19, 0xc5, 0x6a, 0x28, 0xa6, 0x6b, 0xd0, 0xd6, 0xeb, 0xc0, 0xc1, 0x7a, 0xbb, 0xe9, 0x0d, 0x73, 0x3f, 0x78, 0xbc, 0x61, 0xe2, 0xd6, 0x50, 0xc7, 0x37, 0xbc, 0x7c, 0x77, 0xd0, 0x88, 0xa5, 0xc2, 0x86, 0x62, 0xba, 0x41, 0x9b, 0x9d, 0x18, 0x1b, 0x26, 0x6e, 0x83, 0xa6, 0xcf, 0x27, 0x36, 0x14, 0xd3, 0x0d, 0xda, 0xec, 0xc4, 0x38, 0x68, 0xb5, 0x7d, 0xe2, 0x70, 0x8a, 0xad, 0xa1, 0x98, 0xae, 0x41, 0x5b, 0xaf, 0x03, 0x07, 0x4b, 0xb1, 0xa4, 0x37, 0xcc, 0xfd, 0xe0, 0xf1, 0x86, 0x89, 0x5b, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0x8b, 0x5d, 0x09, 0x1b, 0x8a, 0xe9, 0x06, 0xad, 0xb0, 0x62, 0x1c, 0x34, 0x7d, 0x3e, 0x71, 0x38, 0xc5, 0xd6, 0x50, 0x4c, 0xd7, 0xa0, 0xad, 0xd7, 0x81, 0x83, 0xb5, 0x7b, 0xd1, 0x1b, 0xe6, 0x7e, 0xf0, 0x78, 0xc3, 0xc4, 0xad, 0xa1, 0x8e, 0x6f, 0x78, 0xf9, 0xee, 0xa0, 0xad, 0x0d, 0x84, 0x0d, 0xc5, 0x74, 0x83, 0x46, 0x6e, 0x31, 0x0e, 0x5a, 0x64, 0x84, 0x58, 0x0d, 0xc5, 0x74, 0x0d, 0xda, 0x7a, 0x1d, 0x38, 0x58, 0xbe, 0xea, 0xbc, 0x61, 0xee, 0x07, 0x8f, 0x37, 0x4c, 0xdc, 0x1a, 0xea, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x9a, 0x96, 0x21, 0xd8, 0x50, 0x4c, 0x37, 0x68, 0x30, 0x18, 0x63, 0xc3, 0xc4, 0xad, 0x61, 0xee, 0x07, 0x87, 0x37, 0xd4, 0x91, 0x35, 0xcc, 0xd0, 0x1a, 0x26, 0x6e, 0xc3, 0x74, 0x1e, 0x9c, 0x31, 0x67, 0x37, 0x9c, 0x08, 0x1b, 0xb4, 0xd4, 0x8c, 0xb1, 0xc1, 0x62, 0x36, 0xa8, 0x65, 0x96, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x79, 0x92, 0x0d, 0xd2, 0x18, 0x82, 0xd7, 0xf0, 0xb9, 0xcb, 0xe0, 0xf0, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x94, 0x10, 0xdf, 0x60, 0x05, 0x99, 0xfe, 0xc1, 0x6a, 0xa8, 0xe0, 0x83, 0x73, 0xbd, 0xc1, 0x86, 0xe7, 0x49, 0x36, 0x48, 0x63, 0x08, 0xde, 0xf0, 0xb9, 0xcb, 0xe0, 0xf1, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x94, 0x10, 0xdf, 0x60, 0x05, 0x99, 0xfe, 0x86, 0xb7, 0x75, 0x0e, 0x52, 0x6a, 0x82, 0x0f, 0x0e, 0xa0, 0x49, 0x07, 0x2b, 0xe9, 0xf4, 0x0f, 0xa7, 0xd8, 0xe1, 0x14, 0x3b, 0x68, 0x60, 0x1a, 0x63, 0x43, 0x31, 0xdd, 0xa0, 0xc1, 0x60, 0x8c, 0x83, 0x56, 0xdb, 0x27, 0x0e, 0xa7, 0xd8, 0x1a, 0x8a, 0xe9, 0x1a, 0xb4, 0xf5, 0x3a, 0x70, 0xb0, 0x1c, 0x12, 0x7a, 0xc3, 0xdc, 0x0f, 0x1e, 0x6f, 0x98, 0xb8, 0x35, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0x1d, 0x34, 0x06, 0x6d, 0xb0, 0xa1, 0x98, 0x6e, 0xd0, 0x42, 0x3b, 0xc6, 0x86, 0x89, 0xdb, 0xa0, 0x95, 0x7c, 0x8b, 0x0d, 0xc5, 0x74, 0x83, 0x16, 0xda, 0x31, 0x0e, 0x9a, 0xc6, 0xa8, 0x58, 0x0d, 0xc5, 0x74, 0x0d, 0xda, 0x7a, 0x1d, 0x38, 0x58, 0x95, 0x2b, 0xbd, 0x61, 0xee, 0x07, 0x8f, 0x37, 0x4c, 0xdc, 0x1a, 0xea, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x1a, 0x39, 0x4e, 0xd8, 0x50, 0x4c, 0x37, 0x68, 0x60, 0x1f, 0x63, 0xc3, 0xc4, 0x6d, 0xd0, 0xf4, 0xf9, 0xc4, 0x86, 0x62, 0xba, 0x41, 0x03, 0xfb, 0x18, 0x07, 0xad, 0xb6, 0x4f, 0xac, 0x86, 0x62, 0xba, 0x06, 0x6d, 0xbd, 0x0e, 0x1c, 0x2c, 0xce, 0x7d, 0xde, 0x30, 0xf7, 0x83, 0xc7, 0x1b, 0x26, 0x6e, 0x0d, 0x75, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x8d, 0x97, 0x16, 0x6c, 0x28, 0xa6, 0x1b, 0xb4, 0x8f, 0x90, 0x71, 0xd0, 0x22, 0x23, 0xc4, 0xe1, 0x14, 0x6b, 0x0d, 0xc5, 0x74, 0x0d, 0xda, 0x7a, 0x1d, 0x38, 0x58, 0xcd, 0x33, 0xbd, 0x61, 0xee, 0x07, 0x8f, 0x37, 0x4c, 0xdc, 0x1a, 0xea, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x5a, 0xba, 0x52, 0xd8, 0x50, 0x4c, 0x37, 0x68, 0x80, 0x22, 0xe3, 0xa0, 0xe9, 0xf3, 0x89, 0xd5, 0x50, 0x4c, 0xd7, 0xa0, 0xad, 0xd7, 0x81, 0x83, 0x45, 0x05, 0xd2, 0x1b, 0xe6, 0x7e, 0xf0, 0x78, 0xc3, 0xc4, 0xad, 0xa1, 0x8e, 0x6f, 0x78, 0xf9, 0xee, 0xa0, 0xd1, 0x6b, 0x84, 0x0d, 0xc5, 0x74, 0x83, 0xc6, 0x3c, 0x32, 0x36, 0x4c, 0xdc, 0x06, 0x4d, 0x9f, 0x4f, 0x6c, 0x28, 0xa6, 0x1b, 0x34, 0xe6, 0x91, 0xb1, 0x61, 0xe2, 0x36, 0x68, 0xb5, 0x7d, 0x62, 0x43, 0x31, 0xdd, 0xa0, 0x31, 0x8f, 0x8c, 0x0d, 0x13, 0xb7, 0x41, 0x5b, 0x66, 0x14, 0x1b, 0x8a, 0xe9, 0x06, 0x8d, 0x79, 0x64, 0x1c, 0x34, 0x9a, 0x50, 0xb1, 0x1a, 0x8a, 0xe9, 0x1a, 0xb4, 0xf5, 0x3a, 0x70, 0xb0, 0x90, 0xa4, 0x7a, 0xc3, 0xdc, 0x0f, 0x1e, 0x6f, 0x98, 0xb8, 0x35, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0x1d, 0xb4, 0x27, 0xc9, 0xb0, 0xa1, 0x98, 0x6e, 0xd0, 0xe2, 0x4c, 0xc6, 0x86, 0x89, 0xdb, 0xa0, 0xad, 0x6a, 0x88, 0x0d, 0xc5, 0x74, 0x83, 0x16, 0x67, 0x32, 0x0e, 0x5a, 0x6d, 0x9f, 0x38, 0x9c, 0x62, 0xb5, 0x86, 0x62, 0xba, 0x06, 0x6d, 0xbd, 0x0e, 0x1c, 0xac, 0x0f, 0xac, 0xde, 0x30, 0xf7, 0x83, 0xc7, 0x1b, 0x26, 0x6e, 0x0d, 0x75, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x0d, 0xe2, 0x33, 0x6c, 0x28, 0xa6, 0x1b, 0xb4, 0x23, 0x94, 0xb1, 0x61, 0xe2, 0x36, 0x68, 0xd0, 0xad, 0x62, 0x43, 0x31, 0xdd, 0xa0, 0x1d, 0xa1, 0x8c, 0x0d, 0x13, 0xb7, 0x41, 0xab, 0xed, 0x13, 0x1b, 0x8a, 0xe9, 0x06, 0xed, 0x08, 0x65, 0x1c, 0xb4, 0x65, 0x46, 0xb1, 0x1a, 0x8a, 0xe9, 0x1a, 0xb4, 0xf5, 0x3a, 0x70, 0xb0, 0xee, 0x61, 0x7a, 0xc3, 0xdc, 0x0f, 0x1e, 0x6f, 0x98, 0xb8, 0x35, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0x1d, 0x34, 0xfc, 0xa1, 0xb0, 0xa1, 0x98, 0x6e, 0xd0, 0xf2, 0x54, 0xc6, 0x41, 0xd3, 0xe7, 0x13, 0xb3, 0x86, 0x62, 0xba, 0x06, 0x6d, 0xbd, 0x0e, 0x1c, 0xac, 0x4d, 0x86, 0xde, 0x30, 0xf7, 0x83, 0xc7, 0x1b, 0x26, 0x6e, 0x0d, 0x75, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x8d, 0x70, 0x1c, 0x6c, 0x28, 0xa6, 0x1b, 0xb4, 0xe3, 0x95, 0x71, 0xd0, 0xf4, 0xf9, 0xc4, 0xac, 0xa1, 0x98, 0xae, 0x41, 0x5b, 0xaf, 0x03, 0x07, 0x2b, 0x2d, 0xa9, 0x37, 0xcc, 0xfd, 0xe0, 0xf1, 0x86, 0x89, 0x5b, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0x8b, 0xf9, 0x0b, 0x1b, 0x8a, 0xe9, 0x06, 0xad, 0xa2, 0x65, 0x6c, 0x98, 0xb8, 0x0d, 0x9a, 0x3e, 0x9f, 0xd8, 0x50, 0x4c, 0x37, 0x68, 0x15, 0x2d, 0xe3, 0xa0, 0xd5, 0xf6, 0x89, 0x59, 0x43, 0x31, 0x5d, 0x83, 0xb6, 0x5e, 0x07, 0x0e, 0x96, 0xde, 0x48, 0x6f, 0x98, 0xfb, 0xc1, 0xe3, 0x0d, 0x13, 0xb7, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x96, 0x5f, 0x12, 0x36, 0x14, 0xd3, 0x0d, 0x9a, 0xb5, 0xcb, 0xd8, 0x30, 0x71, 0x1b, 0xb4, 0x29, 0x47, 0xb1, 0xa1, 0x98, 0x6e, 0xd0, 0xac, 0x5d, 0xc6, 0x41, 0x13, 0x8e, 0x16, 0x87, 0x53, 0x6c, 0x0d, 0xc5, 0x74, 0x0d, 0xda, 0x7a, 0x1d, 0x38, 0x58, 0x49, 0x36, 0xbd, 0x61, 0xee, 0x07, 0x8f, 0x37, 0x4c, 0xdc, 0x1a, 0xea, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x1a, 0x13, 0x54, 0xd8, 0x50, 0x4c, 0x37, 0x68, 0xa8, 0x30, 0xe3, 0xa0, 0xad, 0x6a, 0x88, 0xd5, 0x50, 0x4c, 0xd7, 0xa0, 0xad, 0xd7, 0x81, 0x83, 0xd5, 0x4c, 0xd4, 0x1b, 0xe6, 0x7e, 0xf0, 0x78, 0xc3, 0xc4, 0xad, 0xa1, 0x8e, 0x6f, 0x78, 0xf9, 0xee, 0xa0, 0xc1, 0xcf, 0x85, 0x0d, 0xc5, 0x74, 0x83, 0x46, 0x1f, 0x33, 0x36, 0x4c, 0xdc, 0x06, 0x0d, 0xf8, 0x53, 0x6c, 0x28, 0xa6, 0x1b, 0x34, 0xfa, 0x98, 0xb1, 0x61, 0xe2, 0x36, 0x68, 0xb5, 0x7d, 0x62, 0x43, 0x31, 0xdd, 0xa0, 0xd1, 0xc7, 0x8c, 0x83, 0xb6, 0xcc, 0x28, 0x56, 0x43, 0x31, 0x5d, 0x83, 0xb6, 0x5e, 0x07, 0x0e, 0x56, 0x20, 0x60, 0x6f, 0x98, 0xfb, 0xc1, 0xe3, 0x0d, 0x13, 0xb7, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x96, 0xb4, 0x1f, 0x36, 0x14, 0xd3, 0x0d, 0x9a, 0x09, 0xcd, 0x38, 0x68, 0xfa, 0x7c, 0xe2, 0x70, 0x8a, 0xd5, 0x1a, 0x8a, 0xe9, 0x1a, 0xb4, 0xf5, 0x3a, 0x70, 0xb0, 0xba, 0xd0, 0x7a, 0xc3, 0xdc, 0x0f, 0x1e, 0x6f, 0x98, 0xb8, 0x35, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0x1d, 0xb4, 0xf4, 0xe1, 0xb0, 0xa1, 0x98, 0x6e, 0xd0, 0x12, 0x6b, 0xc6, 0x41, 0x8b, 0x8c, 0x10, 0x87, 0x53, 0xac, 0x35, 0x14, 0xd3, 0x35, 0x68, 0xeb, 0x75, 0xe0, 0x60, 0x2d, 0xc5, 0xf5, 0x86, 0xb9, 0x1f, 0x3c, 0xde, 0x30, 0x71, 0x6b, 0xa8, 0xe3, 0x1b, 0x5e, 0xbe, 0x3b, 0x68, 0xaa, 0xd7, 0x61, 0x43, 0x31, 0xdd, 0xa0, 0xa9, 0xdb, 0x8c, 0x0d, 0x13, 0xb7, 0x41, 0xd3, 0xe7, 0x13, 0x1b, 0x8a, 0xe9, 0x06, 0x4d, 0xdd, 0x66, 0x1c, 0xb4, 0xda, 0x3e, 0x31, 0x6b, 0x28, 0xa6, 0x6b, 0xd0, 0xd6, 0xeb, 0xc0, 0xc1, 0x2a, 0x37, 0xeb, 0x0d, 0x73, 0x3f, 0x78, 0xbc, 0x61, 0xe2, 0xd6, 0x50, 0xc7, 0x37, 0xbc, 0x7c, 0x77, 0xd0, 0x0e, 0x82, 0xc3, 0x86, 0x62, 0xba, 0x41, 0x5b, 0xc5, 0x19, 0x1b, 0x26, 0x6e, 0x83, 0xa6, 0xcf, 0x27, 0x36, 0x14, 0xd3, 0x0d, 0xda, 0x2a, 0xce, 0x38, 0x68, 0xb5, 0x7d, 0x62, 0x35, 0x14, 0xd3, 0x35, 0x68, 0xeb, 0x75, 0xe0, 0x60, 0xbd, 0x20, 0xf4, 0x86, 0xb9, 0x1f, 0x3c, 0xde, 0x30, 0x71, 0x6b, 0xa8, 0xe3, 0x1b, 0x5e, 0xbe, 0x3b, 0x68, 0xfc, 0xd5, 0x60, 0x43, 0x31, 0xdd, 0xa0, 0xa9, 0xe9, 0x8c, 0x0d, 0x13, 0xb7, 0x41, 0xd3, 0xe7, 0x13, 0x1b, 0x8a, 0xe9, 0x06, 0x4d, 0x4d, 0x67, 0x1c, 0xb4, 0xda, 0x3e, 0x71, 0x38, 0xc5, 0x5a, 0x43, 0x31, 0x5d, 0x83, 0xb6, 0x5e, 0x07, 0x0e, 0x56, 0x8d, 0x4c, 0x6f, 0x98, 0xfb, 0xc1, 0xe3, 0x0d, 0x13, 0xb7, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x26, 0x76, 0x14, 0x36, 0x14, 0xd3, 0x0d, 0x9a, 0x0f, 0xcf, 0xd8, 0x30, 0x71, 0x1b, 0x34, 0xe8, 0x56, 0xb1, 0xa1, 0x98, 0x6e, 0xd0, 0x7c, 0x78, 0xc6, 0x41, 0xab, 0xed, 0x13, 0xab, 0xa1, 0x98, 0xae, 0x41, 0x5b, 0xaf, 0x03, 0x07, 0x2b, 0x5a, 0xa9, 0x37, 0xcc, 0xfd, 0xe0, 0xf1, 0x86, 0x89, 0x5b, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0xc3, 0x18, 0x0c, 0x1b, 0x8a, 0xe9, 0x06, 0xad, 0xbf, 0x67, 0x6c, 0x98, 0xfb, 0xc1, 0xe1, 0x0d, 0x75, 0x64, 0x0d, 0x33, 0xb4, 0x86, 0x89, 0xdb, 0x30, 0x9d, 0x1b, 0x66, 0x68, 0x43, 0xcd, 0xdc, 0x70, 0x22, 0x6c, 0xa8, 0x99, 0x1b, 0x2c, 0x66, 0x83, 0x3a, 0x58, 0xa3, 0xa3, 0xbd, 0xe1, 0x44, 0xd8, 0xa0, 0x7d, 0xfd, 0x8c, 0x0d, 0x16, 0xb3, 0x41, 0x2d, 0xb3, 0x6c, 0xf8, 0xc4, 0x66, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x90, 0x48, 0x7b, 0xc3, 0xbb, 0x3d, 0x6b, 0x50, 0x4a, 0x88, 0x6f, 0xb0, 0x82, 0x4c, 0x7f, 0xc3, 0xbb, 0x3d, 0x1b, 0x84, 0x94, 0xc9, 0x1a, 0x3e, 0x6a, 0x3f, 0x58, 0x3d, 0xa5, 0xdd, 0xc1, 0x31, 0xe6, 0xec, 0x60, 0x25, 0x9d, 0xfe, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x07, 0x6d, 0x12, 0x68, 0xac, 0x86, 0x62, 0xba, 0x06, 0x6d, 0xbd, 0x0e, 0x1c, 0xac, 0x00, 0xb6, 0xde, 0x30, 0xf7, 0x83, 0xc7, 0x1b, 0x26, 0x6e, 0x0d, 0x75, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x4d, 0x62, 0x39, 0x6c, 0x28, 0xa6, 0x1b, 0xb4, 0x37, 0xa1, 0xb1, 0x61, 0xe2, 0x36, 0x68, 0xfa, 0x7c, 0x62, 0x43, 0x31, 0xdd, 0xa0, 0xbd, 0x09, 0x8d, 0x0d, 0x13, 0xb7, 0x41, 0xab, 0xed, 0x13, 0x1b, 0x8a, 0xe9, 0x06, 0xed, 0x4d, 0x68, 0x1c, 0xb4, 0x65, 0x46, 0x31, 0x6b, 0x28, 0xa6, 0x6b, 0xd0, 0xd6, 0xeb, 0xc0, 0xc1, 0x4a, 0x7b, 0xe7, 0x0d, 0x73, 0x3f, 0x78, 0xbc, 0x61, 0xe2, 0xd6, 0x50, 0xc7, 0x37, 0xbc, 0x7c, 0x77, 0xd0, 0xe4, 0x29, 0xc1, 0x86, 0x62, 0xba, 0x41, 0x1b, 0x25, 0x1a, 0x1b, 0x26, 0x6e, 0x0d, 0x73, 0x3f, 0x38, 0xbc, 0xa1, 0x8e, 0xac, 0x61, 0x86, 0x36, 0x54, 0xc2, 0x0d, 0x27, 0xc2, 0x86, 0x4a, 0xb8, 0xc1, 0x62, 0x36, 0xa8, 0x65, 0x96, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x79, 0x92, 0x35, 0x58, 0xa8, 0x4c, 0x75, 0xb0, 0x0e, 0xe1, 0x79, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x00, 0xfa, 0x68, 0x0d, 0x0f, 0x4a, 0x6e, 0x1c, 0xda, 0xf0, 0x3c, 0xc9, 0x06, 0x0b, 0xdf, 0xba, 0x0f, 0x9a, 0x5a, 0x88, 0x38, 0x38, 0xd7, 0x1b, 0xac, 0xe1, 0x79, 0x92, 0x0d, 0x16, 0xbe, 0x75, 0x6f, 0xd0, 0xd0, 0x7e, 0xc5, 0x86, 0xe7, 0x49, 0x36, 0x58, 0xf8, 0xd6, 0xbd, 0xe1, 0x73, 0x97, 0xc1, 0xe1, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0x4a, 0x4a, 0xc4, 0xc1, 0x01, 0x34, 0x69, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x00, 0xfa, 0x68, 0x0d, 0x0f, 0x4a, 0x6e, 0x1c, 0xda, 0xf0, 0x3c, 0xc9, 0x06, 0xeb, 0x2a, 0xc6, 0xd7, 0xf0, 0xc6, 0xdd, 0xc1, 0x8a, 0x91, 0xf1, 0x83, 0x86, 0xf7, 0x25, 0x0e, 0xce, 0xf5, 0x06, 0x6b, 0x78, 0x9e, 0x64, 0x83, 0x75, 0x15, 0xe3, 0x6b, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0xd1, 0xdc, 0xf0, 0xc6, 0xdd, 0x1c, 0xac, 0x12, 0xc1, 0x3a, 0x68, 0xd4, 0x49, 0x63, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0xab, 0x18, 0xdf, 0xf0, 0xb9, 0xcb, 0xe0, 0xf0, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x1c, 0x62, 0xe2, 0xe0, 0x00, 0x9a, 0xb4, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0xac, 0x8c, 0x6f, 0xd0, 0xac, 0x65, 0xc4, 0x86, 0xe7, 0x49, 0x36, 0x58, 0xb1, 0x32, 0xbe, 0x41, 0xab, 0x6f, 0x05, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0xc5, 0xca, 0xf8, 0x86, 0xcf, 0x5d, 0x06, 0x8f, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xa5, 0x84, 0xf8, 0x06, 0x2b, 0xc8, 0xf4, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0xd9, 0x84, 0xb9, 0x86, 0x8f, 0xda, 0x0f, 0x56, 0x8f, 0x60, 0x77, 0xd0, 0xa2, 0x10, 0xc1, 0xc1, 0x4a, 0x3a, 0xfd, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x0e, 0x1a, 0xa4, 0xd1, 0xd8, 0x50, 0x4c, 0x37, 0x68, 0xa3, 0x44, 0xe3, 0xa0, 0xd5, 0xf6, 0x89, 0xd5, 0x50, 0x4c, 0xd7, 0xa0, 0xad, 0xd7, 0x81, 0x83, 0x35, 0xeb, 0xd7, 0x1b, 0xe6, 0x7e, 0xf0, 0x78, 0xc3, 0xc4, 0xad, 0xa1, 0x8e, 0x6f, 0x78, 0xf9, 0xee, 0xa0, 0x15, 0xd6, 0x87, 0x0d, 0xc5, 0x74, 0x83, 0xc6, 0xf1, 0x34, 0x36, 0x4c, 0xdc, 0x06, 0x6d, 0x55, 0x43, 0x6c, 0x28, 0xa6, 0x1b, 0x34, 0x8e, 0xa7, 0x71, 0xd0, 0x6a, 0xfb, 0xc4, 0x6a, 0x28, 0xa6, 0x6b, 0xd0, 0xd6, 0xeb, 0xc0, 0xc1, 0xfa, 0xc6, 0xe7, 0x0d, 0x73, 0x3f, 0x78, 0xbc, 0x61, 0xe2, 0xd6, 0x50, 0xc7, 0x37, 0xbc, 0x7c, 0x77, 0xd0, 0xec, 0x5a, 0xc1, 0x86, 0x62, 0xba, 0x41, 0xdb, 0x86, 0x1a, 0x1b, 0x26, 0x6e, 0x83, 0x26, 0xbb, 0x2a, 0x36, 0x14, 0xd3, 0x0d, 0xda, 0x36, 0xd4, 0xd8, 0x30, 0xf7, 0x83, 0xc7, 0x87, 0xe9, 0x3c, 0x9c, 0x62, 0xb5, 0x86, 0x62, 0xba, 0x06, 0x6d, 0xbd, 0x0e, 0x1c, 0x2c, 0xa5, 0xa1, 0xde, 0x30, 0xf7, 0x83, 0xc7, 0x1b, 0x26, 0x6e, 0x0d, 0x75, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0xed, 0xe8, 0x2d, 0x6c, 0x28, 0xa6, 0x1b, 0xb4, 0x63, 0xa9, 0xb1, 0x61, 0xe2, 0xd6, 0x30, 0xf7, 0x83, 0xc3, 0x07, 0xab, 0x47, 0xf5, 0x37, 0x14, 0xd3, 0x0d, 0xda, 0xb1, 0xd4, 0x38, 0x68, 0xb5, 0x7d, 0xe2, 0x70, 0x8a, 0xad, 0x61, 0xee, 0x07, 0x8f, 0x37, 0x4c, 0xdc, 0x06, 0x4d, 0x9f, 0x4f, 0x1c, 0xb4, 0xda, 0x3e, 0xb1, 0x1a, 0x8a, 0xe9, 0x1a, 0xb4, 0xf5, 0x3a, 0x70, 0xb0, 0x60, 0xec, 0x79, 0xc3, 0xdc, 0x0f, 0x1e, 0x6f, 0x98, 0xb8, 0x35, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0x1d, 0x34, 0x50, 0x53, 0xb0, 0xa1, 0x98, 0x6e, 0xd0, 0x82, 0xaa, 0xc6, 0x41, 0x93, 0x5d, 0x15, 0xab, 0xa1, 0x98, 0xae, 0x41, 0x5b, 0xaf, 0x03, 0x07, 0x8b, 0x2c, 0xab, 0x37, 0xcc, 0xfd, 0xe0, 0xf1, 0x86, 0x89, 0x5b, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0xc3, 0x13, 0x0d, 0x1b, 0x8a, 0xe9, 0x06, 0xad, 0xd1, 0x6a, 0x6c, 0x98, 0xb8, 0x0d, 0xda, 0x94, 0xa3, 0xd8, 0x50, 0x4c, 0x37, 0x68, 0x8d, 0x56, 0x63, 0xc3, 0xc4, 0x6d, 0xd0, 0x6a, 0xfb, 0xc4, 0x86, 0x62, 0xba, 0x41, 0x6b, 0xb4, 0x1a, 0x07, 0x6d, 0x99, 0x51, 0xac, 0x86, 0x62, 0xba, 0x06, 0x6d, 0xbd, 0x0e, 0x1c, 0xac, 0x20, 0xb0, 0xde, 0x30, 0xf7, 0x83, 0xc7, 0x1b, 0x26, 0x6e, 0x0d, 0x75, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x4d, 0x4c, 0x36, 0x6c, 0x28, 0xa6, 0x1b, 0xb4, 0x5f, 0xac, 0xb1, 0x61, 0xe2, 0x36, 0x68, 0xd0, 0xad, 0x62, 0x43, 0x31, 0xdd, 0xa0, 0xfd, 0x62, 0x8d, 0x0d, 0x13, 0xb7, 0x41, 0xc3, 0xf1, 0x14, 0x1b, 0x8a, 0xe9, 0x06, 0xed, 0x17, 0x6b, 0x6c, 0x98, 0xb8, 0x0d, 0xda, 0x32, 0xa3, 0xd8, 0x50, 0x4c, 0x37, 0x68, 0xbf, 0x58, 0xe3, 0xa0, 0xd1, 0x84, 0x8a, 0xd5, 0x50, 0x4c, 0xd7, 0xa0, 0xad, 0xd7, 0x81, 0x83, 0x15, 0xfa, 0xd4, 0x1b, 0xe6, 0x7e, 0xf0, 0x78, 0xc3, 0xc4, 0xad, 0xa1, 0x8e, 0x6f, 0x78, 0xf9, 0xee, 0xa0, 0x1d, 0x2f, 0x86, 0x0d, 0xc5, 0x74, 0x83, 0x46, 0xb6, 0x35, 0x36, 0x4c, 0xdc, 0x06, 0x6d, 0x55, 0x43, 0x6c, 0x28, 0xa6, 0x1b, 0x34, 0xb2, 0xad, 0xb1, 0x61, 0xe2, 0x36, 0x68, 0xb5, 0x7d, 0x62, 0x43, 0x31, 0xdd, 0xa0, 0x91, 0x6d, 0x8d, 0x0d, 0x13, 0xb7, 0x41, 0x5b, 0x66, 0x14, 0x1b, 0x8a, 0xe9, 0x06, 0x8d, 0x6c, 0x6b, 0x1c, 0x34, 0x9a, 0x50, 0x71, 0x38, 0xc5, 0x6a, 0x0d, 0xc5, 0x74, 0x0d, 0xda, 0x7a, 0x1d, 0x38, 0x58, 0x2e, 0x2a, 0xbd, 0x61, 0xee, 0x07, 0x8f, 0x37, 0x4c, 0xdc, 0x1a, 0xea, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x5a, 0x99, 0x4d, 0xd8, 0x50, 0x4c, 0x37, 0x68, 0x20, 0x5e, 0xe3, 0xa0, 0xe9, 0xf3, 0x89, 0xd5, 0x50, 0x4c, 0xd7, 0xa0, 0xad, 0xd7, 0x81, 0x83, 0x75, 0xd5, 0xd6, 0x1b, 0xe6, 0x7e, 0xf0, 0x78, 0xc3, 0xc4, 0xad, 0xa1, 0x8e, 0x6f, 0x78, 0xf9, 0xee, 0xa0, 0x39, 0x39, 0x87, 0x0d, 0xc5, 0x74, 0x83, 0xc6, 0xf6, 0x35, 0x36, 0x4c, 0xdc, 0x06, 0x4d, 0x9f, 0x4f, 0x6c, 0x28, 0xa6, 0x1b, 0x34, 0xb6, 0xaf, 0xb1, 0x61, 0xe2, 0x36, 0x68, 0xb5, 0x7d, 0x62, 0x43, 0x31, 0xdd, 0xa0, 0xb1, 0x7d, 0x8d, 0x83, 0xb6, 0xcc, 0x28, 0x56, 0x43, 0x31, 0x5d, 0x83, 0xb6, 0x5e, 0x07, 0x0e, 0x56, 0x6a, 0x57, 0x6f, 0x98, 0xfb, 0xc1, 0xe3, 0x0d, 0x13, 0xb7, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0xb6, 0xc5, 0x1a, 0x36, 0x14, 0xd3, 0x0d, 0x9a, 0x67, 0xd8, 0xd8, 0x30, 0x71, 0x1b, 0x34, 0x7d, 0x3e, 0xb1, 0xa1, 0x98, 0x6e, 0xd0, 0x3c, 0xc3, 0xc6, 0x41, 0xab, 0xed, 0x13, 0xab, 0xa1, 0x98, 0xae, 0x41, 0x5b, 0xaf, 0x03, 0x07, 0x6b, 0x06, 0x9d, 0x37, 0xcc, 0xfd, 0xe0, 0xf1, 0x86, 0x89, 0x5b, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0x0b, 0xfa, 0x03, 0x1b, 0x8a, 0xe9, 0x06, 0xad, 0x6b, 0x6c, 0x1c, 0xb4, 0x83, 0x78, 0xb1, 0x1a, 0x8a, 0xe9, 0x1a, 0xb4, 0xf5, 0x3a, 0x70, 0xb0, 0x5a, 0x15, 0x7a, 0xc3, 0xdc, 0x0f, 0x1e, 0x6f, 0x98, 0xb8, 0x35, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0x1d, 0x34, 0x01, 0x6f, 0xb0, 0xa1, 0x98, 0x6e, 0xd0, 0x52, 0xc9, 0xc6, 0x41, 0xd3, 0xe7, 0x13, 0xab, 0xa1, 0x98, 0xae, 0x41, 0x5b, 0xaf, 0x03, 0x07, 0x8b, 0x8f, 0xab, 0x37, 0xcc, 0xfd, 0xe0, 0xf1, 0x86, 0x89, 0x5b, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0x0b, 0x4c, 0x0d, 0x1b, 0x8a, 0xe9, 0x06, 0xad, 0xbe, 0x6c, 0x6c, 0x98, 0xb8, 0x0d, 0x9a, 0x3e, 0x9f, 0xd8, 0x50, 0x4c, 0x37, 0x68, 0xf5, 0x65, 0xe3, 0xa0, 0xd5, 0xf6, 0x89, 0x59, 0x43, 0x31, 0x5d, 0x83, 0xb6, 0x5e, 0x07, 0x0e, 0xd6, 0x38, 0x47, 0x6f, 0x98, 0xfb, 0xc1, 0xe3, 0x0d, 0x13, 0xb7, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x16, 0x06, 0x11, 0x36, 0x14, 0xd3, 0x0d, 0x9a, 0xed, 0xd9, 0xd8, 0x30, 0x71, 0x1b, 0x34, 0x7d, 0x3e, 0xb1, 0xa1, 0x98, 0x6e, 0xd0, 0x6c, 0xcf, 0xc6, 0x41, 0xab, 0xed, 0x13, 0xb3, 0x86, 0x62, 0xba, 0x06, 0x6d, 0xbd, 0x0e, 0x1c, 0x2c, 0x96, 0x8a, 0xde, 0x30, 0xf7, 0x83, 0xc7, 0x1b, 0x26, 0x6e, 0x0d, 0x75, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x0d, 0x93, 0x1f, 0x6c, 0x28, 0xa6, 0x1b, 0xb4, 0xbb, 0xb4, 0xb1, 0x61, 0xe2, 0x36, 0x68, 0xfa, 0x7c, 0x62, 0x43, 0x31, 0xdd, 0xa0, 0xdd, 0xa5, 0x8d, 0x83, 0x56, 0xdb, 0x27, 0x0e, 0xa7, 0xd8, 0x1a, 0x8a, 0xe9, 0x1a, 0xb4, 0xf5, 0x3a, 0x70, 0xb0, 0xca, 0xf9, 0x7a, 0xc3, 0xdc, 0x0f, 0x1e, 0x6f, 0x98, 0xb8, 0x35, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0x1d, 0xb4, 0x11, 0xf8, 0xb0, 0xa1, 0x98, 0x6e, 0xd0, 0x92, 0xd6, 0xc6, 0x86, 0x89, 0xdb, 0xa0, 0xe9, 0xf3, 0x89, 0x0d, 0xc5, 0x74, 0x83, 0x96, 0xb4, 0x36, 0x0e, 0x5a, 0x6d, 0x9f, 0x58, 0x0d, 0xc5, 0x74, 0x0d, 0xda, 0x7a, 0x1d, 0x38, 0x58, 0x9d, 0x03, 0xbd, 0x61, 0xee, 0x07, 0x8f, 0x37, 0x4c, 0xdc, 0x1a, 0xea, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x9a, 0x87, 0x32, 0xd8, 0x50, 0x4c, 0x37, 0x68, 0x08, 0x6d, 0x63, 0xc3, 0xc4, 0xad, 0x61, 0xee, 0x37, 0x58, 0x5b, 0x04, 0xbd, 0xa1, 0x8e, 0xac, 0x61, 0x86, 0xd6, 0x30, 0x71, 0x1b, 0xa6, 0x73, 0xc3, 0x0c, 0x6d, 0xd0, 0x74, 0xbf, 0xc5, 0x06, 0x0d, 0x5f, 0x42, 0x6c, 0xd0, 0x6c, 0x26, 0xc4, 0x06, 0x8b, 0xd9, 0xa0, 0x96, 0x59, 0x36, 0x3c, 0x4f, 0xb2, 0x41, 0x90, 0x29, 0x6e, 0xf8, 0xa8, 0xfd, 0x20, 0xf0, 0x27, 0x0f, 0xa7, 0xd8, 0xe1, 0x14, 0xdb, 0x70, 0x22, 0x6c, 0xd0, 0x28, 0xdd, 0xc6, 0x06, 0x8b, 0xd9, 0xa0, 0x96, 0x59, 0x36, 0x7c, 0x62, 0xb3, 0x41, 0xeb, 0xb3, 0x10, 0x07, 0x2b, 0xe9, 0xf4, 0x0f, 0xa7, 0xd8, 0xe1, 0x14, 0x3b, 0x68, 0x7a, 0x70, 0x63, 0x43, 0x31, 0xdd, 0xa0, 0x21, 0xb4, 0x8d, 0x0d, 0x73, 0xbf, 0xc1, 0xb2, 0x29, 0xe8, 0x83, 0x06, 0xad, 0x21, 0x0e, 0xa7, 0xd8, 0x1a, 0x8a, 0xe9, 0x1a, 0xb4, 0xf5, 0x3a, 0x70, 0xb0, 0x32, 0xee, 0x7a, 0xc3, 0xdc, 0x0f, 0x1e, 0x6f, 0x98, 0xb8, 0x35, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0x1d, 0xb4, 0x30, 0xf2, 0xb0, 0xa1, 0x98, 0x6e, 0xd0, 0xd2, 0xe3, 0xc6, 0x86, 0x89, 0xdb, 0xa0, 0x4d, 0x39, 0x8a, 0x0d, 0xc5, 0x74, 0x83, 0x96, 0x1e, 0x37, 0x36, 0x4c, 0xdc, 0x06, 0xad, 0xb6, 0x4f, 0x6c, 0x28, 0xa6, 0x1b, 0xb4, 0xf4, 0xb8, 0x71, 0xd0, 0x96, 0x19, 0xc5, 0xe1, 0x14, 0x5b, 0x43, 0x31, 0x5d, 0x83, 0xb6, 0x5e, 0x07, 0x0e, 0xd6, 0xe5, 0x5e, 0x6f, 0x98, 0xfb, 0xc1, 0xe3, 0x0d, 0x13, 0xb7, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0xb6, 0xda, 0x1e, 0x36, 0x14, 0xd3, 0x0d, 0x9a, 0x0b, 0xdd, 0x38, 0x68, 0xfa, 0x7c, 0xe2, 0x70, 0x8a, 0xd5, 0x1a, 0x8a, 0xe9, 0x1a, 0xb4, 0xf5, 0x3a, 0x70, 0xb0, 0x20, 0x81, 0x7a, 0xc3, 0xdc, 0x0f, 0x1e, 0x6f, 0x98, 0xb8, 0x35, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0x1d, 0xb4, 0x8d, 0xb4, 0xb0, 0xa1, 0x98, 0x6e, 0xd0, 0x22, 0xeb, 0xc6, 0x86, 0x89, 0xdb, 0xa0, 0xfd, 0x16, 0x8c, 0x0d, 0xc5, 0x74, 0x83, 0x16, 0x59, 0x37, 0x0e, 0x5a, 0x6d, 0x9f, 0x98, 0x35, 0x14, 0xd3, 0x35, 0x68, 0xeb, 0x75, 0xe0, 0x60, 0x55, 0x91, 0xf4, 0x86, 0xb9, 0x1f, 0x3c, 0xde, 0x30, 0x71, 0x6b, 0xa8, 0xe3, 0x1b, 0x5e, 0xbe, 0x3b, 0x68, 0xcf, 0x28, 0x61, 0x43, 0x31, 0xdd, 0xa0, 0x49, 0xdd, 0x8d, 0x0d, 0x13, 0xb7, 0x41, 0x5b, 0xd5, 0x10, 0x1b, 0x8a, 0xe9, 0x06, 0x4d, 0xea, 0x6e, 0x1c, 0xb4, 0xda, 0x3e, 0xb1, 0x1a, 0x8a, 0xe9, 0x1a, 0xb4, 0xf5, 0x3a, 0x70, 0xb0, 0xa0, 0xdb, 0x79, 0xc3, 0xdc, 0x0f, 0x1e, 0x6f, 0x98, 0xb8, 0x35, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0x1d, 0x34, 0xe6, 0x47, 0xb0, 0xa1, 0x98, 0x6e, 0xd0, 0x22, 0xf2, 0xc6, 0x86, 0x89, 0x5b, 0xc3, 0xdc, 0x0f, 0x0e, 0x6f, 0xa8, 0x23, 0x6b, 0x98, 0xa1, 0x0d, 0x95, 0x70, 0xc3, 0x89, 0xb0, 0xa1, 0x12, 0x6e, 0xb0, 0x98, 0x0d, 0x6a, 0x99, 0x65, 0xc3, 0x27, 0x36, 0x6b, 0x78, 0x9e, 0x64, 0x0d, 0x56, 0x89, 0x60, 0x1d, 0x9c, 0x7c, 0x50, 0x37, 0x3c, 0x4f, 0xb2, 0x06, 0x0b, 0x95, 0xa9, 0x0e, 0xd6, 0xd4, 0x38, 0x6f, 0xf8, 0x20, 0x67, 0x83, 0x26, 0x64, 0x21, 0xd6, 0xf0, 0x41, 0xce, 0x1a, 0x2c, 0x80, 0x3e, 0x5a, 0xc3, 0x83, 0x92, 0x1b, 0x87, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x82, 0x0b, 0xee, 0x0d, 0x9a, 0xd4, 0xbc, 0xd8, 0xa0, 0xad, 0x93, 0x82, 0x0d, 0x9f, 0xbb, 0x0c, 0x1e, 0x6f, 0x50, 0x4a, 0x88, 0x6f, 0xb0, 0x82, 0x4c, 0x7f, 0xc3, 0x83, 0x92, 0x1b, 0x2c, 0x3f, 0xde, 0xde, 0xf0, 0x6e, 0xcf, 0x06, 0x65, 0x13, 0xe6, 0x41, 0xfb, 0x0d, 0x05, 0x07, 0xe7, 0x7a, 0x83, 0x35, 0x3c, 0x4f, 0xb2, 0xc1, 0x82, 0x0b, 0xee, 0x0d, 0x9a, 0xb3, 0xbc, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0x0b, 0x2e, 0xb8, 0x37, 0x68, 0xf5, 0xad, 0x60, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0xb8, 0xe0, 0xde, 0xf0, 0xb9, 0xcb, 0xe0, 0xf1, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x94, 0x10, 0xdf, 0x60, 0x05, 0x99, 0xfe, 0x41, 0xe3, 0xed, 0x1b, 0x07, 0x2d, 0x0a, 0x11, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0x16, 0x40, 0x1f, 0xad, 0xe1, 0x41, 0xc9, 0x8d, 0x43, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x8d, 0x0b, 0xf7, 0x06, 0xad, 0x48, 0x56, 0x6c, 0xd0, 0x5e, 0x1a, 0xc1, 0x86, 0xcf, 0x5d, 0x06, 0x8f, 0x0f, 0x9a, 0x56, 0x23, 0x38, 0x38, 0xd7, 0x1b, 0xac, 0xe1, 0x79, 0x92, 0x0d, 0xd6, 0xb8, 0x70, 0x6f, 0xd0, 0xcc, 0x66, 0xc5, 0x86, 0xe7, 0x49, 0x36, 0x58, 0xe3, 0xc2, 0xbd, 0x41, 0x9b, 0x82, 0x04, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x8d, 0x0b, 0xf7, 0x86, 0xcf, 0x5d, 0x06, 0x8f, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0xdb, 0x84, 0x04, 0x07, 0x2d, 0x0a, 0x11, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0x16, 0x40, 0x1f, 0xad, 0xe1, 0x41, 0xc9, 0x8d, 0x43, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x55, 0x10, 0xf7, 0x1a, 0xde, 0xb8, 0x3b, 0x58, 0xa5, 0xc4, 0xbd, 0x41, 0x7b, 0x69, 0x04, 0x1b, 0x3e, 0x77, 0x19, 0x3c, 0xde, 0xa0, 0x94, 0x10, 0xdf, 0x60, 0x05, 0x99, 0xfe, 0x86, 0x07, 0x25, 0x37, 0x58, 0x7e, 0xbc, 0xbd, 0xe1, 0x6d, 0x9d, 0x83, 0x05, 0x54, 0xdc, 0x07, 0xe7, 0x7a, 0x83, 0x35, 0x3c, 0x4f, 0xb2, 0xc1, 0xaa, 0x20, 0xee, 0x35, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x6f, 0xce, 0x86, 0x68, 0x6e, 0x78, 0xe3, 0x6e, 0x0e, 0x33, 0x74, 0xd0, 0x52, 0x07, 0xc7, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x15, 0xc4, 0xbd, 0x41, 0x9b, 0x82, 0x04, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x55, 0x10, 0xf7, 0x86, 0xcf, 0x5d, 0x06, 0x8f, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xa5, 0x84, 0xf8, 0x06, 0x2b, 0xc8, 0xf4, 0x0f, 0x5a, 0x2d, 0xe1, 0x38, 0x68, 0x51, 0x88, 0x60, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x00, 0xfa, 0x68, 0x0d, 0x0f, 0x4a, 0x6e, 0x1c, 0xda, 0xf0, 0x3c, 0xc9, 0x06, 0x0b, 0xb1, 0xb8, 0xd7, 0xf0, 0xc6, 0xdd, 0xc1, 0x92, 0x31, 0xee, 0x0d, 0xda, 0xbd, 0x2d, 0x38, 0x68, 0xff, 0x80, 0xe3, 0xe0, 0x5c, 0x6f, 0xb0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x88, 0xc5, 0xbd, 0x06, 0x05, 0x1f, 0xe6, 0x1a, 0xfe, 0xcd, 0xd9, 0x10, 0xcd, 0x0d, 0x6f, 0xdc, 0xcd, 0x61, 0xee, 0x0f, 0x1a, 0x05, 0xe2, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0x0b, 0xb1, 0xb8, 0xd7, 0xf0, 0xb9, 0xcb, 0xe0, 0xf0, 0x86, 0x0f, 0x72, 0x36, 0x68, 0x6b, 0x65, 0x61, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0x9e, 0x77, 0xc1, 0x41, 0x6b, 0x3c, 0x04, 0x07, 0x0d, 0xc4, 0x15, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0x85, 0x58, 0xdc, 0x07, 0xed, 0x4d, 0x70, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0x16, 0x40, 0x1f, 0xad, 0xe1, 0x41, 0xc9, 0x8d, 0x43, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x0d, 0x1b, 0xf7, 0x1a, 0xde, 0xb8, 0x3b, 0x58, 0x32, 0xc7, 0xbd, 0xe1, 0x73, 0x97, 0xc1, 0xe1, 0x0d, 0x4a, 0x09, 0xf1, 0x0d, 0x56, 0x90, 0xe9, 0x6f, 0x78, 0x50, 0x72, 0x83, 0xe5, 0xc7, 0xdb, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x44, 0x7c, 0x5f, 0xc3, 0x47, 0xed, 0x07, 0xcb, 0x66, 0x9c, 0x3b, 0x38, 0xd7, 0x1b, 0xac, 0xe1, 0x79, 0x92, 0x0d, 0xd6, 0xb0, 0x71, 0xaf, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x44, 0x73, 0xc3, 0x1b, 0x77, 0x73, 0xb0, 0xa0, 0x61, 0xea, 0xa0, 0x65, 0x2f, 0x8e, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x86, 0x8d, 0x7b, 0xc3, 0xe7, 0x2e, 0x83, 0xc3, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x52, 0x42, 0x7c, 0x83, 0x15, 0x64, 0xfa, 0x07, 0x2d, 0x98, 0x71, 0x1c, 0x1c, 0x40, 0x93, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0x0b, 0xa0, 0x8f, 0xd6, 0xf0, 0xa0, 0xe4, 0xc6, 0xa1, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x3e, 0x90, 0x7b, 0x0d, 0x6f, 0xdc, 0x1d, 0xac, 0x68, 0xe4, 0x5e, 0xc3, 0xe7, 0x2e, 0x83, 0xc3, 0x1b, 0x94, 0x12, 0xe2, 0x1b, 0xac, 0x20, 0xd3, 0xdf, 0xf0, 0xa0, 0xe4, 0x06, 0xcb, 0x8f, 0xb7, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0xe9, 0x4d, 0xbf, 0x41, 0xf3, 0x67, 0x1c, 0x6b, 0xf8, 0xa8, 0xfd, 0x60, 0xa9, 0xc1, 0x73, 0x07, 0xed, 0x1f, 0x70, 0x1c, 0x9c, 0xeb, 0x0d, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0xeb, 0x03, 0xb9, 0xd7, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0xa2, 0xb9, 0xe1, 0x8d, 0xbb, 0x39, 0x14, 0xd3, 0x83, 0x86, 0x00, 0x39, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0xfa, 0x40, 0xee, 0x35, 0x7c, 0xee, 0x32, 0x38, 0xbc, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x25, 0xc4, 0x37, 0x58, 0x41, 0xa6, 0x7f, 0xd0, 0xe4, 0x21, 0xc7, 0x41, 0x6b, 0x3c, 0x04, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x7d, 0x20, 0xf7, 0x41, 0x7b, 0x13, 0x1c, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0xcd, 0x27, 0xf7, 0x1a, 0x14, 0x7c, 0x98, 0x6b, 0xf8, 0x37, 0x67, 0x43, 0x34, 0x37, 0xbc, 0x71, 0x37, 0x87, 0x3a, 0xb2, 0xe1, 0x8d, 0xbb, 0x83, 0xd5, 0xac, 0xdc, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0xcd, 0x27, 0xf7, 0x06, 0x6d, 0x0a, 0x12, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0x35, 0x9f, 0xdc, 0x07, 0xed, 0xfc, 0x10, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0x16, 0x40, 0x1f, 0xad, 0xe1, 0x79, 0x92, 0x0d, 0x16, 0xfe, 0x6f, 0x1f, 0x2c, 0xb1, 0xdf, 0x3e, 0x38, 0xc6, 0x9c, 0xad, 0xe1, 0x79, 0x92, 0x0d, 0x16, 0xfe, 0x6f, 0x1f, 0xb4, 0xa8, 0x7a, 0xb1, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0x2b, 0x70, 0x1f, 0x34, 0xab, 0x7d, 0x71, 0xb0, 0x92, 0x4e, 0xff, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x83, 0xe6, 0xaf, 0x37, 0x36, 0x14, 0xd3, 0x0d, 0x5a, 0x44, 0xde, 0xd8, 0x30, 0xf7, 0x83, 0xc7, 0x1b, 0xea, 0xc8, 0x1a, 0x66, 0x68, 0x43, 0x25, 0xdc, 0x70, 0x22, 0x6c, 0xa8, 0x84, 0x1b, 0x2c, 0x66, 0x83, 0x5a, 0x66, 0xd9, 0xf0, 0x89, 0xcd, 0x1a, 0x9e, 0x27, 0x59, 0x83, 0x85, 0xca, 0x54, 0x07, 0x0b, 0xe3, 0x9d, 0x37, 0x7c, 0x90, 0xb3, 0x41, 0x83, 0xbb, 0x03, 0x6b, 0x78, 0x9e, 0x64, 0x83, 0xe5, 0xb3, 0xe1, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0x78, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0xd4, 0x48, 0x70, 0x70, 0xae, 0x37, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0xcb, 0x67, 0xc3, 0x37, 0x7c, 0xee, 0x32, 0x78, 0xbc, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0x6a, 0x24, 0x38, 0x38, 0x80, 0x26, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0x16, 0x40, 0x1f, 0xad, 0xe1, 0x41, 0xc9, 0x8d, 0x43, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0xc1, 0x71, 0xf8, 0x06, 0xcb, 0xa7, 0x90, 0x37, 0x7c, 0xee, 0x32, 0x38, 0x7c, 0xd0, 0xaa, 0x57, 0xc1, 0xc1, 0xb9, 0xde, 0x60, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xe0, 0x38, 0x7c, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x21, 0x9a, 0x07, 0xad, 0x8b, 0x15, 0x1c, 0x2c, 0x9f, 0x42, 0xde, 0xf0, 0x3c, 0xc9, 0x06, 0x0b, 0x8e, 0xc3, 0x37, 0x7c, 0xee, 0x32, 0x38, 0x7c, 0x18, 0x97, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x77, 0x0e, 0xdf, 0x20, 0xdc, 0x50, 0xd7, 0xf0, 0xb9, 0xcb, 0xe0, 0xf0, 0x41, 0x13, 0x72, 0x04, 0x07, 0xed, 0xc2, 0x11, 0x1c, 0x9c, 0xeb, 0x0d, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0xeb, 0x9d, 0xc3, 0xd7, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0xa2, 0xb9, 0xe1, 0x8d, 0xbb, 0xe3, 0xd0, 0x41, 0xb8, 0xa1, 0x6e, 0x78, 0x9e, 0x64, 0x83, 0xf5, 0xce, 0xe1, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0x78, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0xd4, 0x48, 0x70, 0xd0, 0x1a, 0x0f, 0xc1, 0x86, 0xe7, 0x49, 0x36, 0x58, 0xef, 0x1c, 0x7e, 0xd0, 0xc0, 0x22, 0xc1, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x01, 0xf4, 0xd1, 0x1a, 0x1e, 0x94, 0xdc, 0x38, 0xb4, 0xe1, 0x79, 0x92, 0x0d, 0x96, 0x68, 0x87, 0x6f, 0x10, 0x1c, 0xa9, 0x07, 0x8d, 0xd0, 0x73, 0x1c, 0x9c, 0xeb, 0x0d, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0x4b, 0xb4, 0xc3, 0xd7, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0xa2, 0xb9, 0xe1, 0x8d, 0xbb, 0xe3, 0xf9, 0x41, 0x70, 0xa4, 0x6e, 0x78, 0x9e, 0x64, 0x83, 0x25, 0xda, 0xe1, 0x1b, 0x3e, 0x77, 0x19, 0x1c, 0x3e, 0x68, 0xcd, 0x9a, 0x63, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x00, 0xfa, 0x68, 0x0d, 0x0f, 0x4a, 0x6e, 0x1c, 0xda, 0xf0, 0x3c, 0xc9, 0x06, 0x8b, 0xd2, 0xc3, 0xd7, 0xf0, 0xc6, 0xdd, 0xc1, 0x81, 0xba, 0xed, 0xa0, 0x11, 0x7a, 0x8e, 0x83, 0x73, 0xbd, 0xc1, 0x1a, 0x9e, 0x27, 0xd9, 0x60, 0x51, 0x7a, 0xf8, 0x1a, 0x14, 0x7c, 0x98, 0x6b, 0xf8, 0x37, 0x67, 0x43, 0x34, 0x37, 0xbc, 0x71, 0x77, 0x10, 0x52, 0xe0, 0x07, 0x8d, 0x86, 0x74, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0x45, 0xe9, 0xe1, 0x07, 0x2d, 0x67, 0x74, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0x16, 0x40, 0x1f, 0xad, 0xe1, 0x41, 0xc9, 0x8d, 0x43, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x1d, 0x7e, 0xf8, 0x1a, 0xde, 0xb8, 0x3b, 0x38, 0x47, 0xb0, 0x1d, 0x34, 0x41, 0xcf, 0x71, 0x70, 0xae, 0x37, 0x58, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0xc3, 0x0f, 0x5f, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x88, 0xe6, 0x86, 0x37, 0xee, 0x0e, 0x42, 0x00, 0xfc, 0xa0, 0xa5, 0x9a, 0x8e, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x0e, 0x3f, 0x7c, 0x83, 0xb6, 0x02, 0x3a, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x3a, 0xfc, 0xf0, 0x83, 0x06, 0x16, 0x09, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0x0b, 0xa0, 0x8f, 0xd6, 0xf0, 0xa0, 0xe4, 0xc6, 0xa1, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x34, 0x41, 0x7c, 0x0d, 0x6f, 0xdc, 0x1d, 0x9c, 0xa4, 0x67, 0x36, 0x68, 0x84, 0x9e, 0x63, 0x83, 0x76, 0xe1, 0x08, 0x36, 0x7c, 0xee, 0x32, 0xb8, 0x7c, 0xd0, 0x84, 0x1c, 0xc1, 0xc1, 0xb9, 0xde, 0x60, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x34, 0x41, 0x7c, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x21, 0x9a, 0x1b, 0xde, 0xb8, 0x3b, 0xa4, 0x0e, 0x0e, 0x1a, 0x60, 0xea, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0x4b, 0x13, 0xc4, 0x37, 0x68, 0x2b, 0xa0, 0x63, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0x4d, 0x10, 0x5f, 0xc3, 0xe7, 0x2e, 0x83, 0xc7, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xa1, 0x46, 0x82, 0x83, 0x76, 0x2d, 0x0d, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0xd2, 0x04, 0xf1, 0x0d, 0x9f, 0xbb, 0x0c, 0x2e, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0x86, 0x1a, 0x09, 0x0e, 0x9a, 0xf7, 0x34, 0xd8, 0xf0, 0x41, 0xce, 0x1a, 0x2c, 0x80, 0x3e, 0x5a, 0xc3, 0x83, 0x92, 0x1b, 0x87, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x52, 0x11, 0xf1, 0x35, 0xbc, 0x71, 0x77, 0x70, 0x94, 0xa0, 0x39, 0x68, 0x82, 0x9e, 0xe3, 0xe0, 0x5c, 0x6f, 0xb0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x2a, 0x22, 0xbe, 0x06, 0x05, 0x1f, 0xe6, 0x1a, 0xfe, 0xcd, 0xd9, 0x10, 0xcd, 0x0d, 0x6f, 0xdc, 0x1d, 0x92, 0x4b, 0x07, 0x4d, 0xbf, 0x75, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0xa5, 0x22, 0xe2, 0x1b, 0xb4, 0x15, 0xd0, 0xb1, 0xe1, 0x79, 0x92, 0x0d, 0x96, 0x8a, 0x88, 0x1f, 0x34, 0xb0, 0x48, 0xb0, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x00, 0x7d, 0xb4, 0x86, 0x07, 0x25, 0x37, 0x0e, 0x6d, 0x78, 0x9e, 0x64, 0x83, 0x55, 0x34, 0xe2, 0x6b, 0x78, 0xe3, 0xee, 0xe0, 0x1c, 0x33, 0x77, 0xd0, 0x04, 0x3d, 0xc7, 0xc1, 0xb9, 0xde, 0x60, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x8a, 0x46, 0x7c, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x21, 0x9a, 0x1b, 0xde, 0xb8, 0x3b, 0x28, 0x28, 0x8a, 0x0e, 0xda, 0x32, 0xec, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0xab, 0x68, 0xc4, 0x37, 0x68, 0x2b, 0xa0, 0x63, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0xa2, 0x11, 0x3f, 0x68, 0x60, 0x91, 0x60, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x00, 0xfa, 0x68, 0x0d, 0x0f, 0x4a, 0x6e, 0x1c, 0xda, 0xf0, 0x3c, 0xc9, 0x06, 0x4b, 0x8f, 0xc4, 0x37, 0x58, 0x40, 0xff, 0xbb, 0x41, 0xa3, 0x70, 0x0b, 0x07, 0xed, 0xc2, 0x11, 0x1c, 0x9c, 0xeb, 0x0d, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0x4b, 0x8f, 0xc4, 0xd7, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0xa2, 0xb9, 0xe1, 0x8d, 0xbb, 0x83, 0xb3, 0x69, 0xf8, 0xc1, 0x02, 0xfa, 0xdf, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xf4, 0x48, 0x7c, 0x83, 0xe6, 0xfc, 0x16, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0xd2, 0x23, 0xf1, 0x83, 0x06, 0x16, 0x09, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0x0b, 0xa0, 0x8f, 0xd6, 0xf0, 0xa0, 0xe4, 0xc6, 0xa1, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xb4, 0x4b, 0x7c, 0x83, 0xb5, 0xf9, 0xbf, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0xf8, 0xa0, 0x15, 0xcf, 0x8e, 0x83, 0x76, 0xe1, 0x08, 0x0e, 0xce, 0xf5, 0x06, 0x6b, 0x78, 0x9e, 0x64, 0x83, 0xa5, 0x5d, 0xe2, 0x6b, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0xd1, 0xdc, 0xf0, 0xc6, 0xdd, 0x41, 0x90, 0xc5, 0x1f, 0xac, 0xcd, 0xff, 0xdd, 0xf0, 0x3c, 0xc9, 0x06, 0x4b, 0xbb, 0xc4, 0xd7, 0xf0, 0xb9, 0xcb, 0xe0, 0xf0, 0x06, 0x2d, 0x3c, 0x41, 0x6c, 0xf8, 0xdc, 0x65, 0xf0, 0x78, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0xd4, 0x48, 0x70, 0xd0, 0x3e, 0xcd, 0xc2, 0x86, 0xe7, 0x49, 0x36, 0x58, 0xda, 0x25, 0x7e, 0xd0, 0xc0, 0x22, 0xc1, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x01, 0xf4, 0xd1, 0x1a, 0x1e, 0x94, 0xdc, 0x38, 0xb4, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0xbf, 0x89, 0xaf, 0xe1, 0x8d, 0xbb, 0x83, 0x24, 0x68, 0xbb, 0x35, 0x7c, 0xee, 0x32, 0x38, 0xbc, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xfd, 0xb2, 0x41, 0xe3, 0xba, 0x05, 0x1b, 0x94, 0x12, 0xe2, 0x1b, 0xac, 0x20, 0xd3, 0x3f, 0x7c, 0x08, 0xb3, 0xe1, 0x83, 0x9c, 0x0d, 0x1a, 0x11, 0x2e, 0x58, 0x83, 0x36, 0x32, 0x20, 0x36, 0x7c, 0xee, 0x32, 0x78, 0xbc, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x25, 0xc4, 0x37, 0x68, 0xb7, 0xb8, 0xe0, 0xa0, 0x0d, 0x3b, 0x82, 0x83, 0xc4, 0xeb, 0xee, 0x83, 0x06, 0x6a, 0x20, 0x0e, 0xda, 0x85, 0x23, 0x38, 0x38, 0xd7, 0x1b, 0xac, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0xbf, 0x89, 0xaf, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x44, 0x73, 0xc3, 0x1b, 0x77, 0x07, 0x83, 0x35, 0xf6, 0xa0, 0x35, 0xe9, 0x8e, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xfa, 0x4d, 0x7c, 0x0d, 0x9f, 0xbb, 0x0c, 0x0e, 0x6f, 0xf8, 0x20, 0x67, 0x83, 0xb6, 0x56, 0x16, 0x36, 0x68, 0x8f, 0xb8, 0xe3, 0xa0, 0xe5, 0xbf, 0x85, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xfa, 0x4d, 0xfc, 0xa0, 0x81, 0x45, 0x82, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0x19, 0x14, 0xdf, 0x60, 0xed, 0x14, 0xf0, 0x41, 0x13, 0xf4, 0x1c, 0x07, 0xe7, 0x7a, 0x83, 0x35, 0x3c, 0x4f, 0xb2, 0xc1, 0x92, 0x41, 0xf1, 0x35, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x6f, 0xce, 0x86, 0x68, 0x6e, 0x78, 0xe3, 0xee, 0x10, 0xcd, 0x83, 0xb5, 0x53, 0xc0, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0xc9, 0xa0, 0xf8, 0x06, 0x6d, 0x05, 0x74, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0x25, 0x83, 0xe2, 0x07, 0x0d, 0x2c, 0x12, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0xf5, 0x96, 0xe2, 0x6b, 0x50, 0xf0, 0x61, 0x6e, 0xd0, 0x6a, 0xf6, 0xc0, 0xc1, 0xb2, 0x00, 0xe0, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xde, 0x52, 0x7c, 0xc3, 0xe7, 0x2e, 0x83, 0xc3, 0x1b, 0xbe, 0x7e, 0xd9, 0xf0, 0x21, 0xcc, 0x06, 0x0b, 0x65, 0x9f, 0x36, 0x68, 0xa6, 0x73, 0x60, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x5a, 0x00, 0x1d, 0xd8, 0x60, 0x6d, 0x4c, 0xde, 0x61, 0x5c, 0x0e, 0x9a, 0x31, 0xb3, 0x38, 0x58, 0x49, 0xa7, 0x7f, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0x41, 0xe3, 0xc6, 0x1c, 0xab, 0xa1, 0x98, 0xae, 0x41, 0x5b, 0xaf, 0x03, 0x07, 0xcb, 0x00, 0xae, 0x37, 0xcc, 0xfd, 0xe0, 0xf1, 0x86, 0x89, 0x5b, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0x83, 0xa6, 0x0e, 0x1b, 0x8a, 0xe9, 0x06, 0xad, 0x94, 0x78, 0x6c, 0x98, 0xb8, 0x0d, 0x9a, 0x3e, 0x9f, 0xd8, 0x50, 0x4c, 0x37, 0x68, 0xa5, 0xc4, 0xe3, 0xa0, 0xd5, 0xf6, 0x89, 0x59, 0x43, 0x31, 0x5d, 0x83, 0xb6, 0x5e, 0x07, 0x0e, 0xd6, 0x32, 0x4f, 0x6f, 0x98, 0xfb, 0xc1, 0xe3, 0x0d, 0x13, 0xb7, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x96, 0xf9, 0x15, 0x36, 0x14, 0xd3, 0x0d, 0x9a, 0x99, 0xf1, 0xd8, 0x30, 0x71, 0x6b, 0x98, 0xfb, 0xc1, 0xe1, 0x0d, 0x75, 0x64, 0x0d, 0x33, 0xb4, 0xa1, 0x12, 0x6e, 0x38, 0x11, 0x36, 0x54, 0xc2, 0x0d, 0x16, 0xb3, 0x41, 0x2d, 0xb3, 0x6c, 0xf8, 0xc4, 0x66, 0x0d, 0xcf, 0x93, 0xac, 0xc1, 0x42, 0x65, 0xaa, 0x83, 0xe5, 0xbb, 0xd3, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x05, 0xd0, 0x47, 0x6b, 0x78, 0x9e, 0x64, 0x83, 0x75, 0x45, 0xd9, 0x1b, 0x3e, 0x77, 0xd9, 0x60, 0xd5, 0xba, 0xee, 0x41, 0xb3, 0x28, 0x05, 0x07, 0xc7, 0x98, 0xb3, 0x35, 0x7c, 0xee, 0xb2, 0xc1, 0xaa, 0x75, 0xdd, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xae, 0x28, 0xfb, 0xa0, 0xc9, 0x36, 0x8b, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x4f, 0xb2, 0xc1, 0x02, 0xaa, 0xec, 0x35, 0x7c, 0xee, 0xb2, 0xc1, 0xba, 0xb0, 0xec, 0x83, 0x66, 0x51, 0x0a, 0x36, 0x7c, 0xee, 0xb2, 0xc1, 0x22, 0x7e, 0xda, 0xc3, 0x87, 0x30, 0x07, 0xc7, 0x98, 0xb3, 0x35, 0x3c, 0x4f, 0xb2, 0xc1, 0x02, 0xaa, 0xec, 0x35, 0x7c, 0xee, 0xb2, 0xc1, 0xba, 0xb0, 0xec, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xda, 0x4e, 0xc1, 0xc1, 0xb9, 0xde, 0x60, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0xa0, 0xca, 0xde, 0xf0, 0xb9, 0xcb, 0x06, 0x8b, 0xf8, 0x69, 0x0f, 0x5a, 0xc0, 0xf0, 0xd8, 0xf0, 0x41, 0xce, 0x1a, 0x2c, 0x80, 0x3e, 0x5a, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0x6a, 0xcb, 0x5e, 0xc3, 0xe7, 0x2e, 0x1b, 0x2c, 0x19, 0x39, 0x3d, 0x68, 0x16, 0xa5, 0x60, 0x0d, 0x9f, 0xbb, 0x6c, 0x90, 0xa2, 0x69, 0x7c, 0xd0, 0x2c, 0x4a, 0xc1, 0x41, 0x93, 0x5a, 0x1e, 0x07, 0xc7, 0x98, 0xb3, 0x35, 0x3c, 0x4f, 0xb2, 0xc1, 0xa2, 0xb6, 0xec, 0x35, 0x7c, 0xee, 0xb2, 0xc1, 0x92, 0x91, 0xd3, 0x83, 0x86, 0xc4, 0x3c, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0xa2, 0xb6, 0xec, 0x35, 0x7c, 0xee, 0xb2, 0x41, 0x8a, 0xa6, 0xf1, 0x41, 0x03, 0x71, 0x05, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x51, 0x5b, 0xf6, 0x86, 0xcf, 0x5d, 0x36, 0x58, 0xc4, 0x4f, 0x7b, 0xd0, 0x12, 0x51, 0xc4, 0x86, 0xe7, 0x49, 0x36, 0x58, 0xaf, 0x98, 0xbd, 0x41, 0x53, 0x78, 0x1e, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0xbd, 0x62, 0xf6, 0x06, 0x4d, 0xf5, 0x79, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0xf5, 0x8a, 0xd9, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0xc5, 0x9d, 0xd9, 0x1b, 0xbe, 0x7e, 0xd9, 0xf0, 0x21, 0xcc, 0x06, 0x0b, 0x65, 0x9f, 0x36, 0x68, 0xa6, 0x73, 0x60, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x5a, 0x00, 0x1d, 0xd8, 0x60, 0x6d, 0x4c, 0xde, 0xa1, 0x93, 0xda, 0x06, 0x05, 0xc1, 0xec, 0x06, 0xed, 0x5a, 0x1a, 0x6c, 0xe8, 0xa4, 0x76, 0x10, 0x9e, 0xaa, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0xbd, 0x62, 0xf6, 0x86, 0xcf, 0x5d, 0x36, 0x58, 0xc4, 0x4f, 0xbb, 0xe1, 0xeb, 0x97, 0x0d, 0x1f, 0xc2, 0x6c, 0xb0, 0x50, 0xf6, 0x69, 0x83, 0x66, 0x3a, 0x07, 0xd6, 0xa0, 0xe8, 0x34, 0xde, 0xa0, 0x05, 0xd0, 0x81, 0x0d, 0xd6, 0xc6, 0xe4, 0x1d, 0x8c, 0xcc, 0xde, 0x0d, 0x0a, 0x82, 0xd9, 0x0d, 0x9a, 0xf7, 0x34, 0xd8, 0x60, 0x64, 0xf6, 0x1e, 0x84, 0xa7, 0xea, 0xc1, 0x4a, 0x3a, 0xfd, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x0e, 0xda, 0x14, 0xf2, 0xd8, 0x50, 0x4c, 0x37, 0x68, 0x66, 0xc6, 0xe3, 0xa0, 0xd5, 0xf6, 0x89, 0xc3, 0x29, 0xb6, 0x86, 0x62, 0xba, 0x06, 0x6d, 0xbd, 0x0e, 0x1c, 0xac, 0x6c, 0x96, 0xde, 0x30, 0xf7, 0x83, 0xc7, 0x1b, 0x26, 0x6e, 0x0d, 0x75, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x8d, 0x78, 0x27, 0x6c, 0x28, 0xa6, 0x1b, 0xb4, 0x2b, 0xeb, 0xb1, 0x61, 0xe2, 0x36, 0x68, 0xfa, 0x7c, 0x62, 0x43, 0x31, 0xdd, 0xa0, 0x5d, 0x59, 0x8f, 0x83, 0x56, 0xdb, 0x27, 0x56, 0x43, 0x31, 0x5d, 0x83, 0xb6, 0x5e, 0x07, 0x0e, 0x56, 0x6f, 0x40, 0x6f, 0x98, 0xfb, 0xc1, 0xe3, 0x0d, 0x13, 0xb7, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x66, 0x4f, 0x0c, 0x36, 0x14, 0xd3, 0x0d, 0x9a, 0x05, 0xf6, 0xd8, 0x30, 0xf7, 0x83, 0xc3, 0x1b, 0xea, 0xc8, 0x1a, 0x66, 0x68, 0x83, 0xf6, 0xf5, 0x33, 0x36, 0x9c, 0x08, 0x1b, 0xb4, 0xaf, 0x9f, 0xb1, 0xc1, 0x62, 0x36, 0xa8, 0x65, 0x96, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x79, 0x92, 0x0d, 0xd6, 0x2c, 0x6b, 0xaf, 0xe1, 0x73, 0x97, 0xc1, 0xcf, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x29, 0x21, 0xbe, 0xc1, 0x0a, 0x32, 0xfd, 0x0d, 0x6f, 0xeb, 0x1c, 0xac, 0x20, 0xd7, 0x3e, 0x38, 0xd7, 0x1b, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0x35, 0xcb, 0xda, 0x1b, 0x3e, 0x77, 0x19, 0x7c, 0xdc, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x12, 0xe2, 0x1b, 0xac, 0x20, 0xd3, 0x3f, 0x68, 0xed, 0x81, 0xe1, 0xe0, 0x00, 0x9a, 0x74, 0xb0, 0x92, 0x4e, 0xff, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x83, 0x86, 0xa0, 0x3d, 0x0e, 0xa7, 0xd8, 0x1a, 0x8a, 0xe9, 0x1a, 0xb4, 0xf5, 0x3a, 0x70, 0xb0, 0x40, 0x44, 0x7a, 0xc3, 0xdc, 0x0f, 0x1e, 0x6f, 0x98, 0xb8, 0x35, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0x1d, 0x34, 0x27, 0x91, 0xb0, 0xa1, 0x98, 0x6e, 0xd0, 0xe2, 0xb9, 0xc7, 0x86, 0x89, 0xdb, 0xa0, 0x4d, 0x39, 0x8a, 0x0d, 0xc5, 0x74, 0x83, 0x16, 0xcf, 0x3d, 0x36, 0x4c, 0xdc, 0x06, 0xad, 0xb6, 0x4f, 0x6c, 0x28, 0xa6, 0x1b, 0xb4, 0x78, 0xee, 0xb1, 0x61, 0xee, 0x07, 0x97, 0x0f, 0x9a, 0x6d, 0x84, 0x98, 0x35, 0x14, 0xd3, 0x35, 0x68, 0xeb, 0x75, 0xe0, 0x60, 0x61, 0xca, 0xf3, 0x86, 0xb9, 0x1f, 0x3c, 0xde, 0x30, 0x71, 0x6b, 0xa8, 0xe3, 0x1b, 0x5e, 0xbe, 0x3b, 0x68, 0x8a, 0x9e, 0x60, 0x43, 0x31, 0xdd, 0xa0, 0x29, 0x7d, 0x8f, 0x0d, 0x73, 0x3f, 0x38, 0xbc, 0xa1, 0x8e, 0xac, 0x61, 0x86, 0xd6, 0x30, 0x71, 0x1b, 0xa6, 0x73, 0xc3, 0x0c, 0xad, 0x61, 0xe2, 0xd6, 0x30, 0xf7, 0x1b, 0x84, 0x2b, 0xc2, 0x86, 0x19, 0xda, 0x50, 0x09, 0x37, 0x9c, 0x08, 0x1b, 0x2a, 0xe1, 0x06, 0x8b, 0xd9, 0xa0, 0x96, 0x59, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x32, 0xa6, 0xbd, 0xe1, 0x83, 0x9c, 0x0d, 0x9a, 0x90, 0x85, 0x58, 0x83, 0xe6, 0x21, 0x2e, 0x0e, 0xda, 0x93, 0x2a, 0x38, 0x68, 0x93, 0xa6, 0xe2, 0x60, 0x25, 0x9d, 0xfe, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x87, 0xf3, 0xf8, 0xa0, 0xd9, 0x4b, 0x88, 0x0d, 0x27, 0xc2, 0x06, 0x8d, 0x15, 0x7c, 0x1c, 0xb4, 0xea, 0x0a, 0x71, 0xd0, 0x10, 0x2c, 0xc4, 0xe1, 0x14, 0x5b, 0x43, 0x31, 0x5d, 0x83, 0xb6, 0x5e, 0x07, 0x0e, 0xd6, 0xba, 0x39, 0x6f, 0x98, 0xfb, 0xc1, 0xe3, 0x0d, 0x13, 0xb7, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0xc3, 0x29, 0xb6, 0xa1, 0x98, 0x6e, 0xd0, 0xec, 0xc7, 0xc7, 0x86, 0xb9, 0x1f, 0x1c, 0xde, 0x50, 0x47, 0xd6, 0x30, 0x43, 0x1b, 0x34, 0x0e, 0x39, 0xb0, 0xe1, 0x44, 0xd8, 0xa0, 0x71, 0xc8, 0x81, 0x0d, 0x16, 0xb3, 0x41, 0x2d, 0xb3, 0x6c, 0xf8, 0xc4, 0x66, 0x0d, 0xcf, 0x93, 0x6c, 0x70, 0xe2, 0x50, 0x3d, 0x68, 0x93, 0xa6, 0xe2, 0x60, 0x25, 0x9d, 0xfe, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x07, 0x6d, 0xbb, 0x7c, 0x1c, 0x4e, 0xb1, 0x35, 0x14, 0xd3, 0x35, 0x68, 0xeb, 0x75, 0xe0, 0x60, 0x55, 0xf5, 0xf3, 0x86, 0xb9, 0x1f, 0x3c, 0xde, 0x30, 0x71, 0x6b, 0xa8, 0xe3, 0x1b, 0x5e, 0xbe, 0x3b, 0x68, 0xad, 0xba, 0x60, 0x43, 0x31, 0xdd, 0xa0, 0xc9, 0x9b, 0x8f, 0x0d, 0x73, 0x3f, 0x38, 0xbc, 0xc1, 0x82, 0x86, 0xa9, 0x35, 0xd4, 0x91, 0x35, 0xcc, 0xd0, 0x86, 0x4a, 0xb8, 0xe1, 0x44, 0xd8, 0x50, 0x09, 0x37, 0x58, 0xcc, 0x06, 0xb5, 0xcc, 0xb2, 0xe1, 0x13, 0x9b, 0x35, 0x3c, 0x4f, 0xb2, 0x06, 0x0b, 0x95, 0xa9, 0x0e, 0xd6, 0xb6, 0x3f, 0xaf, 0xe1, 0x73, 0x97, 0xc1, 0xe1, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xb0, 0x6b, 0x7c, 0xc3, 0xbb, 0x3d, 0x6b, 0x50, 0x4a, 0x88, 0x6f, 0xb0, 0x82, 0x4c, 0x7f, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0x88, 0xf5, 0x1b, 0xb4, 0xc1, 0x50, 0xb0, 0x86, 0x8f, 0xda, 0x0f, 0x16, 0x48, 0x38, 0x77, 0x70, 0xae, 0x37, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0xed, 0x24, 0x7d, 0x6c, 0xf8, 0xdc, 0x65, 0xf0, 0x78, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x83, 0x1b, 0x3f, 0x68, 0x6c, 0xb5, 0xe0, 0x60, 0x25, 0x9d, 0xfe, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x07, 0xad, 0x1d, 0x7d, 0x1c, 0x34, 0x32, 0x83, 0xb1, 0x1a, 0x8a, 0xe9, 0x1a, 0xb4, 0xf5, 0x3a, 0x70, 0xb0, 0x90, 0x3b, 0x7a, 0xc3, 0xdc, 0x0f, 0x1e, 0x6f, 0x98, 0xb8, 0x35, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0x1d, 0x34, 0xc8, 0x89, 0xb0, 0xa1, 0x98, 0x6e, 0xd0, 0xd2, 0xd8, 0xc7, 0x86, 0x89, 0xdb, 0xa0, 0xe9, 0xf3, 0x89, 0x0d, 0xc5, 0x74, 0x83, 0x96, 0xc6, 0x3e, 0x0e, 0x9a, 0x82, 0xb6, 0x38, 0x9c, 0x62, 0x6b, 0x28, 0xa6, 0x6b, 0xd0, 0xd6, 0xeb, 0xc0, 0xc1, 0x8a, 0x7d, 0xe9, 0x0d, 0x73, 0x3f, 0x78, 0xbc, 0x61, 0xe2, 0xd6, 0x50, 0xc7, 0x37, 0xbc, 0x7c, 0x77, 0xd0, 0xf0, 0x82, 0xc2, 0x86, 0x62, 0xba, 0x41, 0xdb, 0x71, 0x1f, 0x07, 0x4d, 0x9f, 0x4f, 0xac, 0x86, 0x62, 0xba, 0x06, 0x6d, 0xbd, 0x0e, 0x1c, 0xac, 0x4a, 0xb9, 0xde, 0x30, 0xf7, 0x83, 0xc7, 0x1b, 0x26, 0x6e, 0x0d, 0x75, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x8d, 0x5f, 0x3b, 0x6c, 0x28, 0xa6, 0x1b, 0xb4, 0xc3, 0xf7, 0xb1, 0x61, 0xe2, 0x36, 0x68, 0x53, 0x8e, 0x62, 0x43, 0x31, 0xdd, 0xa0, 0x1d, 0xbe, 0x8f, 0x0d, 0x13, 0xb7, 0x41, 0xab, 0xed, 0x13, 0x1b, 0x8a, 0xe9, 0x06, 0xed, 0xf0, 0x7d, 0x6c, 0x98, 0xfb, 0xc1, 0xe5, 0x83, 0x36, 0xa9, 0x30, 0x56, 0x43, 0x31, 0x5d, 0x83, 0xb6, 0x5e, 0x07, 0x0e, 0x96, 0xe6, 0x5f, 0x6f, 0x98, 0xfb, 0xc1, 0xe3, 0x0d, 0x13, 0xb7, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x76, 0x86, 0x1f, 0x36, 0x14, 0xd3, 0x0d, 0x9a, 0x77, 0xfc, 0xd8, 0x30, 0x71, 0x1b, 0x34, 0x7d, 0x3e, 0xb1, 0xa1, 0x98, 0x6e, 0xd0, 0xbc, 0xe3, 0xc7, 0x41, 0xab, 0xed, 0x13, 0xab, 0xa1, 0x98, 0xae, 0x41, 0x5b, 0xaf, 0x03, 0x07, 0x2b, 0x88, 0xb0, 0x37, 0xcc, 0xfd, 0xe0, 0xf1, 0x86, 0x89, 0x5b, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0x4b, 0x73, 0x10, 0x1b, 0x8a, 0xe9, 0x06, 0xad, 0x73, 0x7e, 0x1c, 0xb4, 0xd8, 0x36, 0x70, 0x38, 0xc5, 0xd6, 0x50, 0x4c, 0xd7, 0xa0, 0xad, 0xd7, 0x81, 0x83, 0xa5, 0xcb, 0xd4, 0x1b, 0xe6, 0x7e, 0xf0, 0x78, 0xc3, 0xc4, 0xad, 0xa1, 0x8e, 0x6f, 0x78, 0xf9, 0xee, 0xa0, 0x09, 0x19, 0x86, 0x0d, 0xc5, 0x74, 0x83, 0xc6, 0x4f, 0x3f, 0x36, 0x4c, 0xdc, 0x06, 0x4d, 0x9f, 0x4f, 0x6c, 0x28, 0xa6, 0x1b, 0x34, 0x7e, 0xfa, 0x71, 0xd0, 0x14, 0xb4, 0xc5, 0x6a, 0x28, 0xa6, 0x6b, 0xd0, 0xd6, 0xeb, 0xc0, 0xc1, 0x4a, 0x71, 0xea, 0x0d, 0x73, 0x3f, 0x78, 0xbc, 0x61, 0xe2, 0xd6, 0x50, 0xc7, 0x37, 0xbc, 0x7c, 0x77, 0xd0, 0x46, 0x12, 0xc3, 0x86, 0x62, 0xba, 0x41, 0xdb, 0xb5, 0x1f, 0x07, 0x4d, 0x9f, 0x4f, 0x1c, 0x4e, 0xb1, 0x35, 0x14, 0xd3, 0x35, 0x68, 0xeb, 0x75, 0xe0, 0x60, 0x79, 0x0b, 0xf6, 0x86, 0xb9, 0x1f, 0x3c, 0xde, 0x30, 0x71, 0x6b, 0xa8, 0xe3, 0x1b, 0x5e, 0xbe, 0x3b, 0x68, 0xec, 0x08, 0x62, 0x43, 0x31, 0xdd, 0xa0, 0x69, 0xe0, 0x8f, 0x0d, 0x13, 0xb7, 0x86, 0xb9, 0x1f, 0x1c, 0xde, 0x60, 0x41, 0xc3, 0xd4, 0x1a, 0x26, 0x6e, 0x83, 0xc6, 0x3e, 0x35, 0x36, 0xcc, 0xfd, 0xe0, 0xf1, 0xc1, 0xea, 0x51, 0xfd, 0xd9, 0xa0, 0xb1, 0x4f, 0x8d, 0xc3, 0x29, 0xb6, 0xa1, 0x98, 0x6e, 0xd0, 0x34, 0xf0, 0xc7, 0x41, 0xab, 0xed, 0x13, 0xab, 0xa1, 0x98, 0xae, 0x41, 0x5b, 0xaf, 0x03, 0x07, 0xeb, 0x40, 0xaf, 0x37, 0xcc, 0xfd, 0xe0, 0xf1, 0x86, 0x89, 0x5b, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0x63, 0x56, 0x0f, 0x1b, 0x8a, 0xe9, 0x06, 0xad, 0x57, 0x7f, 0x6c, 0x98, 0xb8, 0x0d, 0xda, 0xaa, 0x86, 0xd8, 0x50, 0x4c, 0x37, 0x68, 0xbd, 0xfa, 0xe3, 0xa0, 0xe1, 0x78, 0x8a, 0xd5, 0x50, 0x4c, 0xd7, 0xa0, 0xad, 0xd7, 0x81, 0x83, 0x65, 0xa4, 0xcf, 0x1b, 0xe6, 0x7e, 0xf0, 0x78, 0xc3, 0xc4, 0xad, 0xa1, 0x8e, 0x6f, 0x78, 0xf9, 0xee, 0xa0, 0x7d, 0xc3, 0x82, 0x0d, 0xc5, 0x74, 0x83, 0xc6, 0xc7, 0x3f, 0x36, 0x4c, 0xdc, 0x06, 0x4d, 0x76, 0x55, 0x6c, 0x28, 0xa6, 0x1b, 0x34, 0x3e, 0xfe, 0x71, 0xd0, 0xb8, 0xa4, 0xc6, 0xe1, 0x14, 0x6b, 0x0d, 0xc5, 0x74, 0x0d, 0xda, 0x7a, 0x1d, 0x38, 0x58, 0x0f, 0x12, 0xbd, 0x61, 0xee, 0x07, 0x8f, 0x37, 0x4c, 0xdc, 0x1a, 0xea, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x5a, 0x05, 0x3d, 0xd8, 0x50, 0x4c, 0x37, 0x68, 0x50, 0xfe, 0x63, 0xc3, 0xc4, 0x6d, 0xd0, 0xf4, 0xf9, 0xc4, 0x86, 0x62, 0xba, 0x41, 0x83, 0xf2, 0x1f, 0x07, 0xad, 0xb6, 0x4f, 0x1c, 0x4e, 0xb1, 0x35, 0x14, 0xd3, 0x35, 0x68, 0xeb, 0x75, 0xe0, 0x60, 0xad, 0x4c, 0xf4, 0x86, 0xb9, 0x1f, 0x3c, 0xde, 0x30, 0x71, 0x6b, 0xa8, 0xe3, 0x1b, 0x5e, 0xbe, 0x3b, 0x68, 0xb9, 0xf7, 0x60, 0x43, 0x31, 0xdd, 0xa0, 0x89, 0x00, 0x90, 0x0d, 0x13, 0xb7, 0x41, 0xd3, 0xe7, 0x13, 0x1b, 0x8a, 0xe9, 0x06, 0x4d, 0x04, 0x80, 0x6c, 0x98, 0xb8, 0x0d, 0x5a, 0x6d, 0x9f, 0xd8, 0x50, 0x4c, 0x37, 0x68, 0x22, 0x00, 0x64, 0xc3, 0xc4, 0x6d, 0xd0, 0x96, 0x19, 0xc5, 0x86, 0x62, 0xba, 0x41, 0x13, 0x01, 0x20, 0x07, 0x8d, 0x26, 0x54, 0xac, 0x86, 0x62, 0xba, 0x06, 0x6d, 0xbd, 0x0e, 0x1c, 0x2c, 0x9e, 0x90, 0xde, 0x30, 0xf7, 0x83, 0xc7, 0x1b, 0x26, 0x6e, 0x0d, 0x75, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x4d, 0xd3, 0x23, 0x6c, 0x28, 0xa6, 0x1b, 0xb4, 0x63, 0x01, 0xb2, 0x61, 0xe2, 0x36, 0x68, 0xfa, 0x7c, 0x62, 0x43, 0x31, 0xdd, 0xa0, 0x1d, 0x0b, 0x90, 0x0d, 0x13, 0xb7, 0x41, 0xab, 0xed, 0x13, 0x1b, 0x8a, 0xe9, 0x06, 0xed, 0x58, 0x80, 0x1c, 0xb4, 0x65, 0x46, 0x71, 0x38, 0xc5, 0x5a, 0x43, 0x31, 0x5d, 0x83, 0xb6, 0x5e, 0x07, 0x0e, 0x56, 0xa6, 0x5b, 0x6f, 0x98, 0xfb, 0xc1, 0xe3, 0x0d, 0x13, 0xb7, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0xf6, 0x18, 0x1d, 0x36, 0x14, 0xd3, 0x0d, 0x9a, 0x43, 0x01, 0xd9, 0x30, 0x71, 0x1b, 0xb4, 0x29, 0x47, 0xb1, 0xa1, 0x98, 0x6e, 0xd0, 0x1c, 0x0a, 0xc8, 0x86, 0x89, 0xdb, 0xa0, 0xd5, 0xf6, 0x89, 0x0d, 0xc5, 0x74, 0x83, 0xe6, 0x50, 0x40, 0x0e, 0xda, 0x32, 0xa3, 0x98, 0x35, 0x14, 0xd3, 0x35, 0x68, 0xeb, 0x75, 0xe0, 0x60, 0xdd, 0xe8, 0xf4, 0x86, 0xb9, 0x1f, 0x3c, 0xde, 0x30, 0x71, 0x6b, 0xa8, 0xe3, 0x1b, 0x5e, 0xbe, 0x3b, 0x68, 0x78, 0x5a, 0x61, 0x43, 0x31, 0xdd, 0xa0, 0x09, 0x1d, 0x90, 0x0d, 0x13, 0xb7, 0x41, 0x5b, 0x3c, 0x1e, 0x1b, 0x8a, 0xe9, 0x06, 0x4d, 0xe8, 0x80, 0x6c, 0x98, 0xb8, 0x0d, 0x5a, 0x6d, 0x9f, 0xd8, 0x50, 0x4c, 0x37, 0x68, 0x42, 0x07, 0x64, 0xc3, 0xc4, 0xad, 0x61, 0xee, 0x07, 0x97, 0x37, 0xd4, 0x91, 0x35, 0xcc, 0xd0, 0x86, 0x4a, 0xb8, 0xe1, 0x44, 0xd8, 0x50, 0x09, 0x37, 0x58, 0xcc, 0x06, 0xb5, 0xcc, 0xb2, 0xe1, 0x13, 0x9b, 0x35, 0x3c, 0x4f, 0xb2, 0x06, 0x0b, 0x95, 0xa9, 0x0e, 0xd6, 0x16, 0x4f, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0x4a, 0x09, 0xf1, 0x0d, 0x56, 0x90, 0xe9, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0x90, 0x32, 0x59, 0xc3, 0x47, 0xed, 0x07, 0x2b, 0xfe, 0xa7, 0x3b, 0x38, 0xc6, 0x9c, 0x1d, 0xac, 0xa4, 0xd3, 0x3f, 0x9c, 0x62, 0x87, 0x53, 0xec, 0xa0, 0x55, 0x28, 0x90, 0x0d, 0xc5, 0x74, 0x83, 0x26, 0x74, 0x40, 0x0e, 0x1a, 0x4d, 0xa8, 0x58, 0x0d, 0xc5, 0x74, 0x0d, 0xda, 0x7a, 0x1d, 0x38, 0x58, 0xdc, 0x5e, 0xbd, 0x61, 0xee, 0x07, 0x8f, 0x37, 0x4c, 0xdc, 0x1a, 0xea, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0xda, 0xce, 0x6b, 0xd8, 0x50, 0x4c, 0x37, 0x68, 0x70, 0x0c, 0x64, 0xc3, 0xc4, 0x6d, 0xd0, 0xf4, 0xf9, 0xc4, 0x86, 0x62, 0xba, 0x41, 0x83, 0x63, 0x20, 0x07, 0xad, 0xb6, 0x4f, 0xac, 0x86, 0x62, 0xba, 0x06, 0x6d, 0xbd, 0x0e, 0x1c, 0x2c, 0x42, 0x76, 0xde, 0x30, 0xf7, 0x83, 0xc7, 0x1b, 0x26, 0x6e, 0x0d, 0x75, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x8d, 0x5e, 0x11, 0x6c, 0x28, 0xa6, 0x1b, 0xb4, 0x17, 0x07, 0xb2, 0x61, 0xee, 0x07, 0x87, 0x37, 0xd4, 0x91, 0x35, 0xcc, 0xd0, 0x06, 0x8d, 0x43, 0x0e, 0x6c, 0x38, 0x11, 0x36, 0x68, 0x1c, 0x72, 0x60, 0x83, 0xc5, 0x6c, 0x50, 0xcb, 0x2c, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xf3, 0x24, 0x1b, 0x1c, 0x82, 0x40, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xa5, 0x84, 0xf8, 0x06, 0x2b, 0xc8, 0xf4, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x48, 0x99, 0xac, 0xe1, 0xa3, 0xf6, 0x83, 0x93, 0x20, 0x68, 0x07, 0xc7, 0x98, 0xb3, 0x83, 0x95, 0x74, 0xfa, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x1d, 0xb4, 0x10, 0x08, 0xb2, 0x1a, 0x8a, 0xe9, 0x1a, 0xb4, 0xf5, 0x3a, 0x70, 0xb0, 0x92, 0x5c, 0x7a, 0xc3, 0xdc, 0x0f, 0x1e, 0x6f, 0x98, 0xb8, 0x35, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0x1d, 0x34, 0x4f, 0x9f, 0xb0, 0xa1, 0x98, 0x6e, 0xd0, 0xf2, 0x23, 0xc8, 0x86, 0x89, 0xdb, 0xa0, 0xad, 0x6a, 0x88, 0x0d, 0xc5, 0x74, 0x83, 0x96, 0x1f, 0x41, 0x0e, 0x5a, 0x6d, 0x9f, 0x38, 0x9c, 0x62, 0xad, 0xa1, 0x98, 0xae, 0x41, 0x5b, 0xaf, 0x03, 0x07, 0x4b, 0xaf, 0xa1, 0x37, 0xcc, 0xfd, 0xe0, 0xf1, 0x86, 0x89, 0x5b, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0x03, 0x31, 0x07, 0x1b, 0x8a, 0xe9, 0x06, 0xad, 0x79, 0x82, 0x6c, 0x98, 0xb8, 0x0d, 0xda, 0xaa, 0x86, 0xd8, 0x50, 0x4c, 0x37, 0x68, 0xcd, 0x13, 0xe4, 0xa0, 0xd5, 0xf6, 0x89, 0xc3, 0x29, 0xd6, 0x86, 0x89, 0x5b, 0x83, 0x05, 0x0d, 0x53, 0x1b, 0xb4, 0x61, 0x37, 0xb0, 0x1a, 0xe6, 0x7e, 0x70, 0x76, 0xc3, 0xc4, 0x6d, 0xd0, 0x5e, 0xe3, 0xc0, 0x86, 0x89, 0x5b, 0x83, 0x05, 0x0d, 0x53, 0x1b, 0xb4, 0x61, 0x37, 0xb0, 0x1a, 0xe6, 0x7e, 0x70, 0x76, 0xc3, 0xc4, 0x6d, 0xd0, 0x5e, 0xe3, 0xc0, 0x86, 0x89, 0x5b, 0xc3, 0xdc, 0x0f, 0xce, 0x6e, 0xa8, 0x23, 0x6b, 0x98, 0xa1, 0x35, 0x4c, 0xdc, 0x86, 0xe9, 0xdc, 0x30, 0x43, 0x6b, 0x98, 0xb8, 0x35, 0xcc, 0xfd, 0x06, 0xc1, 0xde, 0xb6, 0x61, 0x86, 0xd6, 0x30, 0x71, 0x1b, 0xa6, 0x73, 0xc3, 0x0c, 0xad, 0x61, 0xe2, 0xd6, 0x30, 0x71, 0x1b, 0xb4, 0xb1, 0x52, 0xb1, 0xa1, 0x98, 0x6e, 0xd0, 0x10, 0x25, 0xc4, 0x86, 0xb9, 0xdf, 0x20, 0x08, 0x97, 0x0e, 0xda, 0x7a, 0x1d, 0x38, 0x9c, 0xc7, 0x07, 0xad, 0x70, 0x52, 0x6c, 0x38, 0x11, 0x36, 0x68, 0x14, 0x18, 0xe4, 0xa0, 0x7d, 0x58, 0x8a, 0xc3, 0x79, 0xbc, 0x41, 0xc3, 0x97, 0x10, 0x6b, 0x98, 0xb8, 0x35, 0xcc, 0xfd, 0x06, 0xc1, 0xde, 0x76, 0xd0, 0x00, 0x27, 0xc4, 0xe1, 0x3c, 0xde, 0x60, 0x31, 0x1b, 0xd4, 0x32, 0xcb, 0x86, 0xe7, 0x49, 0x36, 0x08, 0x3f, 0xb7, 0x0d, 0x1f, 0xb5, 0x1f, 0x84, 0x09, 0xde, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x1b, 0x4e, 0x84, 0x0d, 0x9a, 0xdc, 0x05, 0xd9, 0x60, 0x31, 0x1b, 0xd4, 0x32, 0xcb, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0x41, 0xce, 0x06, 0x4d, 0xc8, 0x42, 0xac, 0x86, 0xcf, 0x5d, 0x06, 0x77, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xa5, 0x84, 0xf8, 0x06, 0x2b, 0xc8, 0xf4, 0x37, 0xbc, 0xad, 0x73, 0x10, 0xe8, 0x6d, 0x07, 0xe7, 0x7a, 0x83, 0x35, 0x7c, 0xee, 0x32, 0x38, 0xbb, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x25, 0xc4, 0x37, 0x58, 0x41, 0xa6, 0xbf, 0xe1, 0xdd, 0x9e, 0x0d, 0x02, 0x47, 0x6f, 0x0d, 0x1f, 0xb5, 0x1f, 0x04, 0x4a, 0x5e, 0x07, 0xad, 0xf1, 0x10, 0x6c, 0xf8, 0xdc, 0x65, 0x70, 0x79, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0xa5, 0x0e, 0x72, 0xd0, 0xa2, 0x10, 0xc1, 0x41, 0xf3, 0xc3, 0x10, 0x07, 0x2b, 0xe9, 0xf4, 0x0f, 0xa7, 0xd8, 0xe1, 0x14, 0x3b, 0x68, 0xbf, 0x1b, 0x64, 0xc3, 0xdc, 0x0f, 0x2e, 0x1f, 0xb4, 0xa1, 0x0b, 0x72, 0x38, 0xc5, 0xda, 0x60, 0x41, 0xc3, 0xd4, 0x1a, 0xe6, 0x7e, 0x70, 0xf9, 0xa0, 0xc5, 0xb6, 0x81, 0x59, 0xc3, 0xdc, 0x0f, 0x2e, 0x1f, 0x34, 0x67, 0x0b, 0x72, 0x38, 0xc5, 0x0e, 0xa7, 0x58, 0x1b, 0x2c, 0x68, 0x98, 0xda, 0xa0, 0x05, 0x7f, 0x90, 0x59, 0xc3, 0xdc, 0x0f, 0x2e, 0x1f, 0x34, 0x07, 0x0b, 0x72, 0x38, 0xc5, 0x0e, 0xa7, 0x58, 0x07, 0x21, 0xa5, 0xbc, 0x41, 0xc3, 0x97, 0x10, 0x6b, 0x98, 0xb8, 0x35, 0x14, 0xd3, 0x0d, 0xda, 0x3a, 0x1c, 0xd8, 0x30, 0xf7, 0x83, 0x87, 0x1b, 0xea, 0xc8, 0x1a, 0x66, 0x68, 0x0d, 0x13, 0xb7, 0x61, 0x3a, 0x37, 0xcc, 0xd0, 0x1a, 0x26, 0x6e, 0x0d, 0x73, 0xbf, 0x41, 0xb0, 0xb7, 0x6d, 0x28, 0xa6, 0xab, 0x61, 0x86, 0x36, 0x68, 0xab, 0x93, 0xe2, 0xa0, 0x15, 0x4e, 0x8a, 0x83, 0xb0, 0x60, 0xda, 0x30, 0x43, 0x6b, 0x98, 0xb8, 0x0d, 0xd3, 0x79, 0xd0, 0x9a, 0x45, 0xc8, 0x86, 0x13, 0x61, 0x83, 0xb6, 0x35, 0x42, 0x0e, 0xda, 0x87, 0xa5, 0x38, 0x9c, 0xc7, 0x07, 0xad, 0x3b, 0x83, 0x6c, 0x38, 0x11, 0x36, 0x68, 0x28, 0x22, 0xe4, 0xa0, 0x31, 0x6e, 0x90, 0x83, 0xf6, 0xbb, 0x41, 0x0e, 0x42, 0x4a, 0x79, 0x83, 0xc5, 0x6c, 0x50, 0x07, 0x07, 0x78, 0xa5, 0x0d, 0x27, 0xc2, 0x06, 0x6d, 0x0f, 0x0e, 0x6c, 0xb0, 0x98, 0x0d, 0x6a, 0x99, 0x65, 0xc3, 0x27, 0x36, 0x6b, 0x50, 0x4a, 0x88, 0x6f, 0xb0, 0x82, 0x4c, 0xff, 0xe0, 0x08, 0xbf, 0x75, 0xb0, 0x92, 0x4e, 0xff, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0xc3, 0x79, 0x7c, 0xd0, 0xba, 0x33, 0xc8, 0x86, 0x13, 0x61, 0x83, 0x96, 0xfd, 0x06, 0x0e, 0x1a, 0xe3, 0x06, 0x39, 0x68, 0xbf, 0x1b, 0x64, 0xc3, 0xdc, 0x0f, 0x2e, 0x1f, 0x34, 0xd5, 0x37, 0x70, 0x38, 0xc5, 0x36, 0x58, 0xd0, 0x30, 0xb5, 0x41, 0x0b, 0xfe, 0x20, 0xb3, 0x86, 0xb9, 0x1f, 0x5c, 0x3e, 0x68, 0x35, 0x6f, 0xe0, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x0e, 0x42, 0x4a, 0x79, 0x83, 0x86, 0x2f, 0x21, 0xd6, 0x30, 0x71, 0x6b, 0x98, 0xfb, 0xc1, 0xc3, 0x0d, 0x75, 0x64, 0x0d, 0x33, 0xb4, 0x86, 0x89, 0xdb, 0x30, 0x9d, 0x1b, 0x66, 0x68, 0x83, 0x36, 0xa0, 0x41, 0x0e, 0x5a, 0x77, 0x06, 0xd9, 0x70, 0x22, 0x6c, 0xd0, 0x9e, 0x51, 0xc8, 0x41, 0x63, 0xdc, 0x20, 0x07, 0xed, 0x77, 0x83, 0x1c, 0x84, 0x94, 0xf2, 0x06, 0x8b, 0xd9, 0xa0, 0x0e, 0x8e, 0xc3, 0x31, 0x07, 0x07, 0x8e, 0x9f, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0x88, 0xe1, 0xc1, 0x6a, 0x06, 0xa0, 0xe3, 0xdb, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x8f, 0xbd, 0x38, 0x08, 0x16, 0x04, 0x1b, 0xb4, 0xe7, 0x33, 0x30, 0x48, 0x06, 0x42, 0x37, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0xb0, 0x41, 0x7b, 0x3e, 0x03, 0x83, 0x64, 0x20, 0x5e, 0x07, 0x8d, 0x36, 0x0d, 0x0c, 0x92, 0x21, 0x07, 0xed, 0x18, 0x0d, 0x1c, 0x87, 0x36, 0xe4, 0xbe, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x37, 0x58, 0xff, 0xf8, 0xb2, 0x41, 0x82, 0x24, 0xf4, 0x06, 0x25, 0x50, 0xe4, 0x06, 0x6b, 0xd2, 0x12, 0x36, 0x38, 0x47, 0xee, 0x1e, 0xb4, 0xcb, 0x35, 0x70, 0x7c, 0x3b, 0x1e, 0x0f, 0xb2, 0x35, 0xe4, 0xb1, 0x17, 0x07, 0xc1, 0x82, 0x60, 0x83, 0xf6, 0x7c, 0x06, 0x06, 0xc9, 0x40, 0xe8, 0x0e, 0x1a, 0x6d, 0x1a, 0xd8, 0x90, 0xfb, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xdc, 0x60, 0x01, 0x1a, 0xc3, 0x06, 0xe7, 0xc8, 0xdd, 0x0d, 0x12, 0x3c, 0x9e, 0x37, 0x58, 0xff, 0xf8, 0xb2, 0x41, 0xda, 0x4b, 0xf5, 0x20, 0x58, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x1a, 0xfd, 0x1a, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0x20, 0xd9, 0xc0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x8b, 0x1b, 0xea, 0xc8, 0x1a, 0x66, 0x68, 0x0d, 0x13, 0xb7, 0x86, 0x62, 0xba, 0x06, 0xad, 0x14, 0x0e, 0x1c, 0x1c, 0xe3, 0xb6, 0x36, 0x58, 0xd0, 0x30, 0xb5, 0x86, 0xb9, 0x1f, 0x3c, 0x3c, 0x68, 0x35, 0x6f, 0x60, 0x0d, 0x1a, 0x63, 0x1b, 0x38, 0x9c, 0x62, 0x1d, 0x84, 0x94, 0xf2, 0x41, 0xf3, 0x41, 0x21, 0x07, 0x07, 0x8e, 0x9f, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0x88, 0xe1, 0xc1, 0x6a, 0x06, 0xa0, 0xe3, 0xdb, 0xf1, 0x78, 0x10, 0x2c, 0x48, 0x06, 0x5d, 0x87, 0x6c, 0xc5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0x62, 0x66, 0xf8, 0x8d, 0xe7, 0x07, 0xe7, 0x09, 0xde, 0xe3, 0xd0, 0x71, 0xe8, 0x78, 0xbc, 0x82, 0x60, 0x83, 0x85, 0x26, 0x46, 0x8b, 0x83, 0x60, 0x71, 0xd8, 0x0d, 0x96, 0x58, 0xf1, 0x2f, 0x08, 0x16, 0x24, 0x83, 0xae, 0xc3, 0x0a, 0xed, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xc3, 0x5e, 0xe1, 0xc1, 0xc0, 0x0f, 0x39, 0x0e, 0x0d, 0xbb, 0xc1, 0x0a, 0x41, 0xfe, 0x0d, 0x5a, 0xfb, 0x0c, 0x19, 0x76, 0x83, 0xb5, 0x26, 0xfd, 0x0b, 0xb2, 0x35, 0xe4, 0xb1, 0x17, 0x37, 0xe4, 0xbe, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0xc7, 0xc1, 0xc7, 0xc1, 0xdf, 0xc1, 0xe5, 0xc1, 0xcb, 0x41, 0xdb, 0xe0, 0xee, 0xe0, 0xf5, 0xe0, 0xed, 0xe0, 0xe2, 0xe0, 0xe5, 0xe0, 0xf2, 0xa0, 0x6d, 0xf0, 0x77, 0x70, 0x73, 0xd0, 0x36, 0xf8, 0x38, 0x38, 0x3a, 0x78, 0x38, 0x38, 0x3c, 0x38, 0x3d, 0x78, 0x39, 0xb8, 0x7c, 0x70, 0x6e, 0xe7, 0x3b, 0xbe, 0x1d, 0x8f, 0x07, 0xc1, 0x06, 0x8d, 0x7f, 0x86, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xec, 0x15, 0x0e, 0xbf, 0xf1, 0x7c, 0xb8, 0x05, 0xc1, 0x06, 0x2d, 0x15, 0x0c, 0x0c, 0x92, 0xc1, 0xad, 0x41, 0xb4, 0xb0, 0x07, 0x69, 0xc5, 0x23, 0xc7, 0xa1, 0x41, 0xb0, 0x41, 0x4b, 0x05, 0x03, 0x83, 0x64, 0x70, 0x6b, 0x10, 0x2d, 0xec, 0x04, 0xf5, 0xfd, 0x38, 0x74, 0x1c, 0x1a, 0x64, 0x6b, 0x68, 0xbf, 0x7e, 0xb0, 0x5e, 0x9a, 0x7f, 0x10, 0x2c, 0x08, 0x16, 0x24, 0x03, 0x6b, 0x7d, 0x07, 0xc7, 0xac, 0xe2, 0x41, 0x32, 0x10, 0xba, 0xc3, 0x76, 0xef, 0x20, 0x58, 0x1c, 0x76, 0xc3, 0xfa, 0xde, 0x06, 0x81, 0x89, 0x3d, 0x08, 0x16, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf8, 0x10, 0xcd, 0x43, 0x72, 0x69, 0x10, 0x6c, 0x30, 0xbc, 0x02, 0x0e, 0x06, 0xef, 0xe4, 0xf1, 0xed, 0xf8, 0x76, 0x3c, 0x5e, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0x0d, 0x1a, 0xa2, 0x14, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xc8, 0xda, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x5b, 0x43, 0x1e, 0x7b, 0x71, 0x43, 0xee, 0x7b, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x71, 0x83, 0x93, 0xde, 0xee, 0x06, 0x43, 0xea, 0x77, 0x83, 0xf5, 0x8f, 0x2f, 0x1b, 0x24, 0x48, 0x42, 0x6f, 0x50, 0x8a, 0x48, 0x6e, 0xb0, 0xd4, 0xa6, 0x60, 0x83, 0x12, 0x28, 0x72, 0x83, 0xf5, 0x8f, 0x2f, 0x1b, 0x0c, 0x7c, 0xe3, 0x0d, 0xd2, 0x9f, 0x9e, 0x37, 0x58, 0x6a, 0x53, 0xb0, 0xc1, 0x02, 0x34, 0x86, 0x0d, 0xce, 0x91, 0xbb, 0x1b, 0x94, 0x22, 0x92, 0x1b, 0x94, 0x40, 0x91, 0x1b, 0xac, 0x7f, 0x7c, 0xd9, 0x60, 0x4d, 0x5a, 0xc2, 0x06, 0x69, 0x2f, 0xd5, 0x83, 0x60, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x58, 0xa8, 0x5a, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x0d, 0x5a, 0xf7, 0x06, 0x38, 0x0e, 0x1d, 0x62, 0x78, 0xb0, 0x9a, 0x01, 0xe8, 0xf8, 0x76, 0x3c, 0x1e, 0x7e, 0x41, 0xb0, 0x41, 0xa3, 0xb5, 0x02, 0x07, 0x0d, 0x91, 0x09, 0x1c, 0xcf, 0x8f, 0xc7, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0xd8, 0x60, 0xa1, 0x89, 0xd1, 0xe2, 0x20, 0x58, 0x1c, 0x76, 0x83, 0x25, 0x56, 0xfc, 0x1b, 0xb4, 0xf6, 0x19, 0x32, 0xec, 0x06, 0x0b, 0x9e, 0xf8, 0x17, 0x04, 0x1b, 0x34, 0xfe, 0x19, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x91, 0xb9, 0xfe, 0xc1, 0xd8, 0x70, 0x3d, 0x0e, 0x0d, 0xbb, 0xc1, 0xa2, 0x2e, 0xfe, 0x0d, 0x1a, 0x53, 0x10, 0x19, 0x76, 0x83, 0x15, 0x82, 0xfc, 0x0b, 0x82, 0x0d, 0x1a, 0xff, 0x0c, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xd8, 0x2b, 0x1c, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0xce, 0x0d, 0xa2, 0x0d, 0x9d, 0x83, 0x0e, 0x02, 0xde, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc0, 0x0f, 0x39, 0x58, 0x64, 0xae, 0x7f, 0x1c, 0x3a, 0x0e, 0x0d, 0xbb, 0xc1, 0x5a, 0x93, 0xfe, 0x05, 0xc1, 0x06, 0x8d, 0x7f, 0x86, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xda, 0xa0, 0xd9, 0xcf, 0x80, 0x43, 0xaa, 0xe6, 0x60, 0xe0, 0x87, 0x1c, 0x87, 0x86, 0xdd, 0x60, 0xbd, 0x34, 0xff, 0x82, 0x60, 0x83, 0x56, 0x96, 0x43, 0x36, 0x58, 0xca, 0x30, 0x35, 0x08, 0x16, 0x87, 0xdd, 0xb0, 0xbe, 0xb7, 0x21, 0x86, 0x83, 0x60, 0x83, 0x46, 0xa5, 0x43, 0x06, 0xc1, 0x06, 0xc3, 0x2b, 0x60, 0x10, 0x2c, 0x08, 0x16, 0x24, 0x03, 0x6b, 0x7d, 0x07, 0xe7, 0xfa, 0xe3, 0x83, 0x61, 0x16, 0x79, 0x68, 0xd4, 0x72, 0x7c, 0x1b, 0x64, 0x1b, 0x9a, 0xaf, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x41, 0x3c, 0x48, 0x06, 0xb3, 0x41, 0xb4, 0xa1, 0x9b, 0xcb, 0x41, 0xc0, 0xfb, 0x1f, 0x8f, 0x8f, 0x6f, 0xc7, 0xe3, 0x41, 0xb0, 0x20, 0xd8, 0xe0, 0x14, 0x86, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0xe4, 0x89, 0x7b, 0xd8, 0xa8, 0x3d, 0x0e, 0x0d, 0x82, 0x05, 0xc1, 0x82, 0x64, 0x50, 0x75, 0x3c, 0x3f, 0x18, 0xd8, 0xa2, 0x83, 0x60, 0xe1, 0x17, 0x44, 0x0b, 0x84, 0x7f, 0x10, 0x2c, 0x48, 0x06, 0x84, 0x55, 0xdf, 0xc1, 0x30, 0xf4, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x10, 0xa9, 0x17, 0x7e, 0xe3, 0xf9, 0x06, 0x45, 0xae, 0xc2, 0x06, 0x69, 0xee, 0x19, 0x07, 0x4b, 0x91, 0xb3, 0x36, 0x18, 0x88, 0xd4, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0x4a, 0xdd, 0x41, 0x90, 0xf3, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x48, 0x96, 0x2f, 0xd9, 0xa0, 0x3c, 0x32, 0x98, 0xe0, 0xde, 0x3f, 0x0e, 0x1d, 0x34, 0xbe, 0x25, 0x72, 0x1c, 0x3a, 0x1e, 0x0f, 0x82, 0xc5, 0x61, 0x17, 0x6e, 0x43, 0x0c, 0x0f, 0x1a, 0xdf, 0x12, 0xd9, 0x10, 0xc3, 0x41, 0xb0, 0x20, 0x58, 0x82, 0xde, 0xfb, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0xcc, 0x0e, 0xd9, 0x8a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xd4, 0xc1, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x2b, 0xd8, 0xb9, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xf6, 0x0a, 0x27, 0x78, 0xde, 0xff, 0x38, 0x74, 0x1c, 0x1a, 0x04, 0x8b, 0xc3, 0x6e, 0x10, 0x7c, 0xcc, 0x1b, 0x62, 0x38, 0x08, 0x16, 0x04, 0x1b, 0x8c, 0xe0, 0xd3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x83, 0x77, 0x72, 0x43, 0xaa, 0xe6, 0x60, 0x4c, 0x58, 0x1d, 0x87, 0x06, 0xc1, 0x82, 0x60, 0x41, 0x32, 0xd0, 0xaf, 0xef, 0x60, 0x38, 0x4a, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x97, 0x40, 0x70, 0xff, 0x6f, 0x48, 0x1d, 0x1c, 0x8c, 0xc5, 0xce, 0xe3, 0xd0, 0xb0, 0x0b, 0xbb, 0xd0, 0x83, 0xc0, 0xc4, 0x5e, 0xd8, 0x0d, 0x5a, 0xd9, 0x09, 0x58, 0xd8, 0x85, 0x3b, 0x38, 0xc9, 0x71, 0x2f, 0xdc, 0x86, 0x18, 0x1e, 0x04, 0x0f, 0xf7, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x87, 0xa3, 0x7d, 0xe3, 0xd0, 0xb0, 0x0b, 0xbb, 0x41, 0xfb, 0x80, 0x22, 0x0b, 0xbb, 0x41, 0x2b, 0x3b, 0x01, 0x1b, 0x34, 0x41, 0x28, 0x72, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0x1a, 0x87, 0x06, 0xc9, 0x90, 0x83, 0x92, 0x01, 0x60, 0xd8, 0x85, 0xdd, 0xa0, 0x7d, 0x40, 0x91, 0x85, 0xdd, 0xa0, 0x95, 0x9d, 0x80, 0x83, 0xb6, 0x0a, 0x45, 0x0e, 0x47, 0xfb, 0x1a, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0x20, 0x3e, 0x08, 0xf9, 0xec, 0x43, 0x72, 0x69, 0x90, 0xad, 0xa1, 0xfd, 0xfa, 0xb0, 0x1b, 0xb4, 0x0f, 0x28, 0xb2, 0x41, 0x2b, 0x3b, 0x01, 0x87, 0xa3, 0x7d, 0xe3, 0xd0, 0x06, 0x4d, 0x5d, 0x8a, 0x1c, 0x34, 0x01, 0x29, 0x72, 0x7c, 0x1b, 0x76, 0x61, 0x17, 0x7a, 0x90, 0x56, 0x3c, 0xb2, 0xb0, 0x0b, 0x3d, 0x68, 0x3c, 0x32, 0x60, 0x61, 0x17, 0x6e, 0x43, 0x0c, 0x0f, 0x92, 0x37, 0x6b, 0x16, 0x6e, 0x43, 0x0c, 0x27, 0xe8, 0xdf, 0x7f, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0xdf, 0x38, 0x34, 0xec, 0xc2, 0x6e, 0xd0, 0xb8, 0xa8, 0xc8, 0xc2, 0x6e, 0xd0, 0x26, 0xa9, 0xc8, 0x06, 0x8d, 0x99, 0x8a, 0x1c, 0x8e, 0xf6, 0xc3, 0xd1, 0xbe, 0xc6, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x70, 0xef, 0x1f, 0x34, 0x95, 0x2a, 0x72, 0x3c, 0x1f, 0x76, 0x61, 0x37, 0x68, 0x5c, 0x54, 0x64, 0x61, 0x37, 0x68, 0x93, 0x54, 0xe4, 0xa0, 0x29, 0x54, 0x91, 0xc3, 0xd1, 0xbe, 0xc6, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x70, 0xef, 0x1f, 0x24, 0x6f, 0xd6, 0x1c, 0xcf, 0x07, 0xd9, 0x1a, 0xda, 0xaf, 0x0f, 0xbb, 0x41, 0xe3, 0xa2, 0x22, 0x1b, 0xb4, 0x49, 0x2a, 0x72, 0x38, 0xda, 0x37, 0x0e, 0x6d, 0xd0, 0x00, 0xaf, 0xc8, 0x41, 0x03, 0xb3, 0x22, 0xc7, 0xb7, 0x05, 0xc1, 0x82, 0x64, 0x40, 0x58, 0xf5, 0x1d, 0x0c, 0xff, 0xd8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x85, 0x5b, 0xd2, 0xc2, 0x6f, 0x3c, 0xdf, 0x20, 0x59, 0xbe, 0x64, 0x83, 0xf2, 0xc8, 0xe0, 0x60, 0x8c, 0x3d, 0x6d, 0x50, 0xb8, 0x25, 0x2d, 0xfc, 0xc6, 0xf3, 0xc5, 0xc3, 0x39, 0x72, 0x1c, 0x3a, 0x48, 0x2b, 0x1e, 0x39, 0x0e, 0x1d, 0x14, 0x71, 0x48, 0x07, 0x63, 0x19, 0xea, 0x78, 0xbc, 0x20, 0x58, 0x3c, 0x68, 0x50, 0x51, 0x60, 0x71, 0x90, 0x6d, 0x88, 0xcb, 0x20, 0x58, 0x0c, 0xe8, 0xd1, 0xca, 0xda, 0xe0, 0x5a, 0x62, 0x68, 0xe2, 0x20, 0x58, 0x10, 0x2c, 0x08, 0x36, 0x18, 0xdc, 0xd3, 0x07, 0x83, 0xf2, 0x6a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xf0, 0x0b, 0x82, 0x05, 0xc9, 0xc0, 0xfd, 0x75, 0x30, 0x1c, 0xa5, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0xe1, 0x3a, 0x18, 0x8e, 0xd2, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0x08, 0x16, 0x24, 0x03, 0xc2, 0x77, 0xe7, 0x60, 0xf8, 0xc7, 0x1e, 0x2c, 0x4c, 0xfe, 0x39, 0x34, 0x7f, 0x39, 0x1e, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x08, 0x74, 0xb9, 0x83, 0xf1, 0xae, 0x73, 0x1c, 0x3a, 0x0e, 0x1d, 0xdf, 0x06, 0xc1, 0x86, 0xa3, 0x7d, 0x10, 0x2c, 0x2e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0xd8, 0x0d, 0xeb, 0x7b, 0x1b, 0x04, 0x26, 0xf6, 0xb0, 0x0b, 0xbb, 0xa1, 0xe3, 0xc8, 0xc2, 0x6e, 0x30, 0x7a, 0xb1, 0x16, 0x76, 0x83, 0x20, 0xf1, 0xde, 0x60, 0xac, 0xa3, 0x1d, 0x8e, 0xf6, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x57, 0xc3, 0x5e, 0xe1, 0xc1, 0xd0, 0xec, 0x3a, 0x08, 0x4c, 0xec, 0x61, 0x17, 0x76, 0x43, 0xc7, 0x91, 0x85, 0xdd, 0x60, 0xf4, 0x62, 0x1d, 0x34, 0x1a, 0x30, 0x72, 0x38, 0xda, 0x17, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xfa, 0x15, 0x04, 0x0b, 0x92, 0x41, 0xdd, 0xc1, 0x39, 0xef, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x60, 0x62, 0x1f, 0x1a, 0xcf, 0x1f, 0x87, 0x0e, 0x86, 0x66, 0xd7, 0x41, 0x60, 0x62, 0x0f, 0xa2, 0x05, 0xf3, 0x41, 0xb0, 0x41, 0x1b, 0x0e, 0x23, 0x07, 0xa3, 0xa7, 0xe8, 0x20, 0x24, 0xbe, 0x87, 0x5d, 0xd8, 0x0d, 0x1d, 0x47, 0x16, 0x76, 0x83, 0xd1, 0x8b, 0xb5, 0x41, 0x90, 0x78, 0x1f, 0x8e, 0xf6, 0xc3, 0xd1, 0xbe, 0x20, 0x19, 0x32, 0x88, 0x36, 0x68, 0xa1, 0x61, 0x64, 0x10, 0x6d, 0xd0, 0x74, 0xc5, 0xc8, 0xc1, 0x82, 0xba, 0x9d, 0x41, 0xb6, 0x86, 0xf6, 0xeb, 0xc3, 0x6e, 0xe8, 0x38, 0xb2, 0xc1, 0xe8, 0xc5, 0x3a, 0x1c, 0xed, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x50, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x0d, 0x5a, 0x68, 0x18, 0x19, 0x44, 0x0b, 0xe6, 0x83, 0x60, 0x83, 0x36, 0x1c, 0x46, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x04, 0x26, 0xf6, 0xc1, 0x90, 0x3d, 0x3f, 0x0e, 0x1d, 0x84, 0xc4, 0xf7, 0x20, 0x5a, 0x30, 0x1f, 0x04, 0x1b, 0xb4, 0xe1, 0x30, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0x30, 0xb1, 0x0f, 0xc6, 0x35, 0xfa, 0x71, 0xe8, 0x60, 0x41, 0xdd, 0xce, 0xf1, 0x78, 0xd8, 0x0d, 0xca, 0xa8, 0x82, 0x0d, 0xa9, 0x9a, 0x61, 0x17, 0x76, 0x83, 0x55, 0xee, 0xff, 0x0b, 0xbb, 0xd0, 0x09, 0xea, 0xfe, 0xc2, 0x2e, 0xdc, 0x86, 0x18, 0x1e, 0x94, 0x47, 0x06, 0x1b, 0x34, 0x02, 0x26, 0x72, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0x5f, 0x10, 0x6c, 0x50, 0x32, 0x34, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x27, 0xd8, 0xed, 0x3f, 0x0e, 0x0d, 0xbb, 0xb0, 0x1b, 0xac, 0x72, 0xff, 0x5f, 0xd8, 0x0d, 0xda, 0xf3, 0x19, 0x39, 0x68, 0x39, 0x68, 0xe4, 0x70, 0xb4, 0x2f, 0x48, 0x86, 0x1b, 0x44, 0x1b, 0x94, 0x3d, 0x06, 0x83, 0x68, 0x41, 0x3c, 0x08, 0x16, 0x24, 0xc3, 0x0c, 0xa2, 0x85, 0x1d, 0x04, 0x0b, 0x92, 0x41, 0xdd, 0xc1, 0xd9, 0xcb, 0xf8, 0xd0, 0x31, 0xfe, 0x78, 0x7c, 0xd0, 0x96, 0xd1, 0xc8, 0x20, 0x5a, 0xd8, 0x41, 0xb0, 0x41, 0x9b, 0x53, 0x23, 0x07, 0x69, 0x99, 0x1f, 0xc7, 0xe3, 0x61, 0x17, 0x76, 0x83, 0x55, 0xee, 0xff, 0x0b, 0xbb, 0x41, 0x7b, 0x3e, 0x23, 0x1b, 0xb4, 0xfe, 0x33, 0x72, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0x82, 0x64, 0xb8, 0x41, 0xb4, 0xc0, 0xec, 0x1f, 0x34, 0xbe, 0x25, 0x72, 0xd0, 0x12, 0xd4, 0xc8, 0x20, 0x5b, 0x43, 0xfb, 0xf5, 0x61, 0x37, 0x58, 0xe5, 0xfe, 0xbf, 0x41, 0x7b, 0x3e, 0x23, 0x87, 0xa3, 0x7d, 0x90, 0x0c, 0x37, 0x88, 0x36, 0x68, 0x4f, 0x6c, 0x64, 0x10, 0x2d, 0x88, 0x07, 0xc9, 0x70, 0x83, 0x68, 0x83, 0xb2, 0xc7, 0x60, 0x10, 0x6d, 0xd0, 0x30, 0xd4, 0xc8, 0x20, 0x5a, 0xd8, 0x41, 0xb0, 0x41, 0x9b, 0x53, 0x23, 0x07, 0x63, 0xed, 0xfc, 0x78, 0x3c, 0x88, 0x16, 0x76, 0x10, 0x6c, 0xd0, 0xe6, 0xd4, 0xc8, 0xc1, 0x80, 0x44, 0x3f, 0x1e, 0x1f, 0x94, 0x43, 0x49, 0xc7, 0xa1, 0x35, 0x58, 0x72, 0x3c, 0xb5, 0xe1, 0x68, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x24, 0x03, 0xfb, 0x75, 0x07, 0xc7, 0xac, 0xe2, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x82, 0x0d, 0x5a, 0x2a, 0x18, 0x18, 0x24, 0x03, 0xc5, 0xef, 0x60, 0xac, 0xaf, 0x1e, 0x1a, 0xb5, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0xa6, 0xe5, 0x68, 0x71, 0x10, 0x2c, 0x48, 0x06, 0xfa, 0xf5, 0x0d, 0xa2, 0x85, 0x1d, 0x04, 0x0b, 0x92, 0x01, 0x61, 0xd5, 0x77, 0x70, 0x12, 0x3a, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x70, 0x2a, 0x47, 0x5e, 0xf8, 0x8d, 0xe7, 0x1b, 0x94, 0x04, 0x0d, 0x1b, 0xa4, 0x37, 0x36, 0x1c, 0x2c, 0x45, 0xce, 0xda, 0xe0, 0x54, 0x8e, 0xbc, 0xf0, 0x1b, 0xcf, 0xd7, 0x60, 0xc9, 0xf1, 0xd4, 0x86, 0xa3, 0xfd, 0x90, 0x5c, 0x3a, 0xc4, 0xf0, 0x60, 0xd1, 0xc6, 0xd8, 0x71, 0xe8, 0x60, 0x18, 0xfa, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0x41, 0x7a, 0x63, 0xc3, 0xc1, 0x32, 0x13, 0xa3, 0xe3, 0xd0, 0xf1, 0xf8, 0x38, 0x74, 0x3c, 0x3e, 0xc4, 0xf0, 0x78, 0xbc, 0xf0, 0x0b, 0x82, 0x0d, 0x16, 0x9a, 0x18, 0x2d, 0x0e, 0x82, 0x0d, 0x31, 0x1c, 0x04, 0x8b, 0x0b, 0xb2, 0x35, 0xe4, 0xb1, 0x17, 0x37, 0xe4, 0xbe, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0xc7, 0xc1, 0xc7, 0xc1, 0xe5, 0xc1, 0xdf, 0x83, 0x83, 0x47, 0xc6, 0xf1, 0xed, 0x78, 0x3c, 0xec, 0xc2, 0x2e, 0xdc, 0x06, 0xe3, 0x4d, 0xe7, 0xb0, 0x57, 0xb8, 0x21, 0x86, 0xc3, 0x2e, 0xdc, 0x06, 0x0b, 0x4d, 0x8c, 0x0e, 0x7b, 0x85, 0x87, 0x74, 0xee, 0x06, 0xeb, 0x1b, 0x8c, 0x86, 0x5d, 0xb8, 0x0d, 0xd6, 0x37, 0x18, 0x1d, 0xf6, 0x0a, 0x37, 0x18, 0x6f, 0x3a, 0xc3, 0x6e, 0xb0, 0x8c, 0xe7, 0x7f, 0x61, 0x37, 0x58, 0xf7, 0xfd, 0xbf, 0xb0, 0x0b, 0xbb, 0xc1, 0x2a, 0xf7, 0xff, 0xc3, 0xfa, 0xe6, 0xc2, 0x2e, 0xec, 0x06, 0xcb, 0xd6, 0xff, 0x0f, 0xeb, 0x9b, 0x07, 0xab, 0x4c, 0xfe, 0x87, 0xdd, 0xa0, 0xb5, 0xdf, 0x91, 0x0d, 0xd6, 0x37, 0x18, 0x0d, 0xbb, 0xc1, 0x2a, 0xf9, 0xff, 0x83, 0x55, 0x26, 0xff, 0xc3, 0x6e, 0xb0, 0xb6, 0xff, 0x7f, 0x83, 0xf1, 0xa6, 0x33, 0xc8, 0x36, 0x34, 0x5f, 0x3f, 0x28, 0x87, 0x92, 0x86, 0xdd, 0x60, 0xed, 0xd1, 0xff, 0xc2, 0x6e, 0xb0, 0xee, 0xfb, 0x7f, 0x83, 0xf1, 0xa6, 0x33, 0xec, 0x06, 0x6b, 0xfb, 0xff, 0x17, 0x76, 0x41, 0xb0, 0x20, 0x19, 0x9c, 0x1b, 0x44, 0x1b, 0x2c, 0xf5, 0xe4, 0x3f, 0x64, 0x2b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x8c, 0x0d, 0xd7, 0x83, 0x92, 0xa6, 0xe1, 0x38, 0xb4, 0x20, 0x58, 0x90, 0x0c, 0xa4, 0xfb, 0x0e, 0xc6, 0xbb, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x92, 0xa6, 0x61, 0xf8, 0x8d, 0xe7, 0x07, 0x8d, 0x23, 0x00, 0x1c, 0x87, 0x0e, 0xc6, 0x9b, 0xce, 0x41, 0xeb, 0xc9, 0x23, 0xc3, 0x6e, 0xb0, 0x60, 0xea, 0x7f, 0x61, 0x17, 0x76, 0x83, 0x75, 0xdf, 0xff, 0x1b, 0x62, 0x78, 0xb0, 0xb6, 0xff, 0x7f, 0x83, 0xf1, 0xa6, 0x73, 0x50, 0x0e, 0x25, 0x0d, 0xbb, 0xc1, 0x3a, 0xc6, 0xff, 0x05, 0xc1, 0x82, 0x64, 0xe0, 0xa9, 0xbe, 0x83, 0xf1, 0xae, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0xa4, 0x69, 0x18, 0x7e, 0xe3, 0xf9, 0xc1, 0x92, 0xca, 0xff, 0xe3, 0xd0, 0xb0, 0x1b, 0xac, 0x16, 0xfb, 0x5f, 0x10, 0x2c, 0x48, 0x06, 0x8e, 0xbe, 0x83, 0xf1, 0xae, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x6c, 0x30, 0x48, 0x5e, 0x0e, 0x86, 0xa3, 0xf4, 0xc1, 0x52, 0xb8, 0xff, 0xe3, 0xd0, 0xb0, 0x1b, 0x2c, 0xd8, 0xfc, 0x5f, 0x10, 0x2c, 0x48, 0x06, 0xce, 0xbe, 0x83, 0xf1, 0xae, 0x73, 0xd0, 0x5a, 0xfb, 0xc8, 0xb0, 0x1b, 0xac, 0x42, 0xfd, 0x5f, 0xd8, 0x05, 0xc1, 0x82, 0x60, 0x83, 0x55, 0x76, 0xff, 0x83, 0x64, 0x60, 0xfa, 0x0e, 0xed, 0x5b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x3f, 0x68, 0xef, 0x75, 0xe4, 0x38, 0xb4, 0xe1, 0x14, 0x1b, 0x24, 0xc3, 0x0c, 0xa2, 0x05, 0xf7, 0x0f, 0xda, 0x2b, 0x13, 0x19, 0x44, 0x0b, 0x3b, 0x08, 0x16, 0x04, 0x1b, 0xac, 0xb2, 0xfb, 0x3f, 0x28, 0x18, 0x1d, 0x0e, 0x9a, 0x3a, 0x20, 0x39, 0x1e, 0x0f, 0xbb, 0xc1, 0x2a, 0x96, 0xff, 0x05, 0xc9, 0x30, 0x83, 0x68, 0x83, 0x26, 0x1a, 0x48, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0xed, 0xd7, 0x0f, 0xd6, 0x96, 0xfc, 0x1f, 0xac, 0x6f, 0x30, 0x1a, 0x76, 0x61, 0x37, 0x58, 0x03, 0xfe, 0xbf, 0x70, 0x1b, 0xac, 0xe9, 0x96, 0x3a, 0xc4, 0xff, 0x70, 0xb4, 0x6f, 0x30, 0xde, 0x74, 0x86, 0x5d, 0xd8, 0x0d, 0xd6, 0x80, 0xff, 0x2f, 0xdc, 0x06, 0x0b, 0xe9, 0xa5, 0x0e, 0xf1, 0x3f, 0x1c, 0xed, 0x0b, 0x92, 0x61, 0x06, 0xd1, 0x82, 0xf9, 0x20, 0x19, 0xcc, 0x06, 0xd1, 0x06, 0x43, 0x7f, 0xf5, 0x90, 0xad, 0x38, 0x1e, 0x0f, 0xbb, 0xb0, 0x1b, 0xac, 0x01, 0xff, 0x5f, 0xb8, 0x0d, 0x96, 0x32, 0x4c, 0x1d, 0xe2, 0x7f, 0x38, 0xda, 0x17, 0x04, 0x0b, 0x82, 0x0d, 0x56, 0xd9, 0xfd, 0x0f, 0x92, 0x81, 0xd0, 0x1d, 0x34, 0x4f, 0x26, 0x30, 0x08, 0x16, 0x87, 0xdd, 0xb0, 0xbe, 0xb7, 0xc1, 0x40, 0xa4, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0x02, 0xe3, 0x3f, 0x48, 0x86, 0x19, 0x44, 0x0b, 0xe6, 0x87, 0x68, 0x1e, 0x92, 0x4b, 0x07, 0x45, 0xcd, 0xd9, 0xf1, 0x6d, 0xd8, 0x85, 0xdd, 0x60, 0x0d, 0xf8, 0xff, 0xc2, 0x6d, 0xb0, 0x34, 0x65, 0xea, 0x10, 0xff, 0xc3, 0xd1, 0xbe, 0x41, 0x5b, 0x25, 0x24, 0xc3, 0x2e, 0xec, 0x06, 0x6b, 0xc0, 0xff, 0x17, 0x6e, 0x83, 0xe5, 0x4a, 0x53, 0x87, 0xf8, 0x1f, 0x8e, 0xf6, 0x0d, 0xda, 0x2a, 0x21, 0x39, 0x48, 0xbf, 0x8e, 0x3e, 0x28, 0x19, 0x9a, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xc0, 0x1f, 0x93, 0x7b, 0x83, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0x0a, 0x82, 0x0d, 0x16, 0x9a, 0x18, 0x2d, 0x0e, 0xbb, 0xc1, 0x62, 0xc6, 0xfe, 0x85, 0x5d, 0x10, 0x6c, 0xb0, 0x94, 0xb2, 0xff, 0x60, 0x05, 0xcd, 0xff, 0x21, 0x9d, 0x7b, 0x38, 0xda, 0x8f, 0xc7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x87, 0xdd, 0xb0, 0xbe, 0xb7, 0xe1, 0x68, 0x1f, 0x04, 0x0b, 0x92, 0x41, 0xdd, 0xc1, 0xf0, 0x8f, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x50, 0xa2, 0xa0, 0x0d, 0xbf, 0xf1, 0x7c, 0xd8, 0x0d, 0x79, 0xac, 0x0d, 0x47, 0xfb, 0xc1, 0xd0, 0xec, 0x3a, 0x0e, 0x1d, 0x8f, 0x17, 0x07, 0xc9, 0xc0, 0xd1, 0x77, 0x3c, 0x3f, 0x1e, 0x2f, 0xfc, 0x82, 0x60, 0x83, 0x85, 0xd6, 0x56, 0x8b, 0x1b, 0x2c, 0xa4, 0x97, 0x5a, 0x35, 0x44, 0xf3, 0xb0, 0x75, 0x70, 0x48, 0x4c, 0x1d, 0x62, 0x78, 0xd8, 0x2b, 0x3c, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0x5f, 0xac, 0x6e, 0x6e, 0x3e, 0xa4, 0x96, 0x8e, 0xc7, 0x2b, 0x08, 0x16, 0xd7, 0x60, 0x51, 0x9c, 0xd1, 0xc1, 0xa2, 0x38, 0xa3, 0x83, 0x35, 0x1d, 0x47, 0x8b, 0xc3, 0x2e, 0xdc, 0x86, 0x18, 0x4e, 0xb8, 0xb8, 0xb0, 0x1b, 0xac, 0x93, 0xd9, 0x5f, 0x10, 0x2c, 0x0e, 0xbb, 0x41, 0x90, 0x34, 0xaf, 0x04, 0x31, 0x3e, 0x38, 0xd6, 0xd7, 0x0f, 0x82, 0x05, 0xc1, 0x82, 0x64, 0xe0, 0xa9, 0xbb, 0xc3, 0x0a, 0xed, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x45, 0xe6, 0xfa, 0x1b, 0x5a, 0x00, 0x1d, 0x14, 0x56, 0x6a, 0xc7, 0xa1, 0x41, 0xb0, 0x82, 0x60, 0x41, 0x32, 0xb0, 0x77, 0x37, 0x88, 0x16, 0x76, 0x82, 0x19, 0x3f, 0x64, 0x2b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x14, 0x9d, 0x30, 0x87, 0x68, 0x1e, 0x87, 0x06, 0xc1, 0x82, 0x64, 0x60, 0xef, 0x6e, 0x10, 0x6d, 0xb0, 0x28, 0xf6, 0xeb, 0x90, 0xad, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x50, 0x74, 0xc2, 0x1c, 0xc6, 0xe5, 0x38, 0x34, 0xec, 0xc2, 0x6d, 0x50, 0x50, 0x14, 0x1d, 0x04, 0x59, 0xfc, 0x82, 0x64, 0xc8, 0x20, 0x5a, 0x20, 0xce, 0x07, 0x83, 0x35, 0x76, 0x10, 0x2d, 0x10, 0xe3, 0x83, 0xb3, 0x69, 0xf8, 0x20, 0x5a, 0xd0, 0x7d, 0x50, 0xca, 0xec, 0x1c, 0x92, 0x4b, 0x87, 0x53, 0xec, 0xf8, 0x76, 0x38, 0xc5, 0x86, 0x5d, 0xb8, 0x0d, 0x47, 0xfb, 0xc1, 0x89, 0xe5, 0x7e, 0x61, 0x17, 0x6e, 0x09, 0xc2, 0x78, 0xb0, 0xb8, 0x6d, 0x7f, 0x41, 0xb0, 0x82, 0x60, 0x41, 0x32, 0xb0, 0xd6, 0x77, 0x30, 0x0c, 0x7d, 0x06, 0xc9, 0x40, 0xe8, 0x06, 0xd1, 0xc2, 0x4e, 0x30, 0xc7, 0xc7, 0xa1, 0x41, 0xb0, 0x41, 0xc3, 0xa2, 0x24, 0x83, 0x64, 0x20, 0x74, 0x83, 0x68, 0x61, 0x27, 0x98, 0xe7, 0xe3, 0xd0, 0x20, 0x58, 0x10, 0x2c, 0x0e, 0xbb, 0x41, 0x51, 0xa5, 0xb0, 0x21, 0x75, 0x30, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x81, 0xa7, 0xee, 0x0e, 0xd9, 0x8a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x8b, 0xcc, 0xf5, 0x37, 0x08, 0xf9, 0xec, 0x09, 0xaa, 0xfd, 0x71, 0x68, 0x10, 0xac, 0x20, 0x58, 0x90, 0x0c, 0x3c, 0xf7, 0x77, 0x10, 0xe4, 0xfc, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x25, 0x38, 0xf6, 0x37, 0x44, 0xf3, 0x10, 0xff, 0xe3, 0xd0, 0x20, 0xd8, 0xa0, 0xf9, 0x5b, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x4d, 0xee, 0x92, 0x1c, 0xa4, 0x8f, 0x05, 0x1d, 0x87, 0x86, 0xdd, 0xa0, 0xc5, 0x48, 0x92, 0x05, 0xc9, 0x90, 0x41, 0xb4, 0xe0, 0xfb, 0x41, 0xc3, 0x3e, 0x23, 0x83, 0x68, 0x61, 0x0f, 0x9a, 0xa3, 0x01, 0x38, 0x24, 0x97, 0x0e, 0xa7, 0xd8, 0xf1, 0x6d, 0x41, 0xb0, 0xc1, 0x39, 0xe0, 0xfb, 0x60, 0x18, 0x3b, 0x0c, 0x82, 0x05, 0xc9, 0x30, 0x83, 0x68, 0x41, 0xf7, 0xe1, 0x68, 0x3f, 0x64, 0x2b, 0x0e, 0x46, 0x14, 0xee, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0xc7, 0xe3, 0x15, 0x7e, 0x41, 0xb0, 0xc1, 0x42, 0x6b, 0xab, 0xc5, 0x61, 0x17, 0x76, 0x83, 0xd1, 0x8b, 0xb5, 0x70, 0x1b, 0x2c, 0x07, 0x7a, 0x3a, 0x34, 0x12, 0x3c, 0x1c, 0xed, 0x0b, 0x82, 0x05, 0xc9, 0x40, 0xa8, 0x0e, 0xc9, 0xa5, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xac, 0xdd, 0x86, 0x66, 0x49, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x24, 0x75, 0x9e, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x83, 0x6f, 0x07, 0x41, 0xce, 0x3f, 0x48, 0x06, 0xb7, 0x0e, 0xfd, 0x89, 0x8e, 0x43, 0xc7, 0xa1, 0x61, 0x17, 0x76, 0x83, 0xd1, 0x8b, 0xb5, 0x70, 0x1b, 0xac, 0x74, 0x79, 0x3a, 0x34, 0x12, 0x3c, 0x1c, 0xed, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0x6b, 0x44, 0xfb, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x2c, 0x45, 0xed, 0x3f, 0x34, 0x4b, 0x3a, 0x0e, 0x0d, 0xbb, 0xc1, 0x22, 0x8f, 0xa0, 0x0d, 0x02, 0x13, 0x7b, 0x90, 0x6d, 0xb0, 0x8e, 0xb6, 0x7f, 0xf8, 0x05, 0xc1, 0x06, 0xab, 0x73, 0xfb, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x1a, 0x09, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0xd0, 0xc4, 0x68, 0x71, 0xd8, 0x0d, 0xc9, 0x8e, 0x05, 0xc1, 0x82, 0x64, 0xe0, 0xe9, 0xbf, 0x83, 0x20, 0xe7, 0x1f, 0x24, 0xc3, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xaa, 0x39, 0x48, 0x96, 0x2f, 0x39, 0x0e, 0x0d, 0x82, 0x0d, 0x5a, 0x00, 0x28, 0x19, 0x24, 0x83, 0xec, 0xa0, 0x6d, 0x81, 0x92, 0xe3, 0xf1, 0x71, 0xe8, 0x78, 0x3e, 0xec, 0xc2, 0x6e, 0x88, 0xe6, 0xc2, 0x2e, 0xec, 0x06, 0xa3, 0x17, 0x6b, 0xe1, 0x36, 0x58, 0x0c, 0xf0, 0x74, 0x68, 0x24, 0x78, 0x38, 0xda, 0x0f, 0xe9, 0xdc, 0xc3, 0xd1, 0xbe, 0x20, 0x58, 0x1c, 0x76, 0x83, 0x20, 0x69, 0xde, 0x20, 0x30, 0xb1, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xa0, 0x7e, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xd2, 0x43, 0xe3, 0xa2, 0xe3, 0xf9, 0xc1, 0xb2, 0x54, 0xb2, 0xe3, 0xdb, 0xb0, 0x0b, 0xbb, 0xb0, 0x1b, 0xa2, 0x79, 0x58, 0xdf, 0x5c, 0xd8, 0x85, 0xdd, 0x60, 0xf4, 0x62, 0x2d, 0xdc, 0x06, 0x2b, 0xd0, 0x9c, 0x0e, 0x8d, 0x04, 0x0f, 0x47, 0xfb, 0x21, 0x9d, 0x7b, 0x38, 0xda, 0x37, 0x68, 0x3f, 0xa2, 0x64, 0x10, 0x2c, 0x08, 0x36, 0x18, 0x85, 0x3b, 0x83, 0x64, 0x10, 0x1d, 0xfa, 0x6a, 0x0c, 0xbb, 0x70, 0x1b, 0x87, 0x0e, 0xf9, 0xda, 0x0d, 0x02, 0x13, 0x7b, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xd2, 0xe3, 0xd0, 0xf1, 0xfc, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x07, 0xfc, 0x31, 0xb4, 0x34, 0xf8, 0x90, 0x5a, 0x3a, 0x1e, 0xaf, 0xf0, 0x0b, 0x82, 0xc5, 0x0d, 0xd3, 0xb9, 0x61, 0x3a, 0x0f, 0xc2, 0x53, 0x75, 0x71, 0x10, 0x2c, 0x2e, 0x08, 0x36, 0x58, 0x68, 0x62, 0xb4, 0xb8, 0x20, 0xd8, 0x20, 0x19, 0x93, 0xfe, 0xd0, 0xa8, 0xe5, 0x90, 0x3a, 0x38, 0x1e, 0xaf, 0x20, 0x58, 0xdc, 0x60, 0x49, 0x06, 0xd4, 0x6c, 0x38, 0x14, 0x36, 0x08, 0x4f, 0xd5, 0x16, 0x07, 0xd9, 0x1a, 0xf2, 0xd8, 0x8b, 0x1b, 0x72, 0xdf, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x8b, 0xe3, 0xe0, 0xed, 0xe0, 0xf5, 0xe0, 0xec, 0xe0, 0xec, 0xa0, 0x6d, 0xf0, 0x73, 0x70, 0xf9, 0xb0, 0x72, 0x77, 0x7c, 0x3b, 0x1e, 0x0f, 0x82, 0x05, 0xc9, 0x20, 0x1b, 0x44, 0x0b, 0xba, 0x0f, 0x4d, 0xb8, 0x06, 0xd1, 0x82, 0xf1, 0xc1, 0x42, 0x13, 0xa3, 0x43, 0x72, 0x69, 0x10, 0x2c, 0x08, 0x16, 0x24, 0x03, 0xe3, 0x37, 0x88, 0x16, 0xf6, 0x20, 0xa4, 0xc0, 0x0f, 0x02, 0xde, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x61, 0x5c, 0x36, 0xc4, 0x7f, 0x43, 0x0b, 0xa0, 0x0d, 0x4d, 0x87, 0x0e, 0x12, 0x3d, 0x15, 0x8e, 0x43, 0x0b, 0x82, 0x0d, 0xd6, 0x02, 0x02, 0x1c, 0x0c, 0x63, 0x87, 0x83, 0x10, 0x00, 0x3f, 0x1e, 0x0f, 0x82, 0x0d, 0x16, 0x9a, 0x18, 0x2d, 0x0e, 0xb2, 0x35, 0xe4, 0xb1, 0x17, 0x37, 0xe4, 0xbe, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0xc7, 0xc1, 0xdb, 0xc1, 0xeb, 0xc1, 0xd9, 0xc1, 0xd9, 0x83, 0xf6, 0xed, 0x05, 0x8e, 0x6f, 0xc7, 0xe3, 0x61, 0x17, 0x76, 0x83, 0xa5, 0x7b, 0xfb, 0x1b, 0x62, 0x38, 0xec, 0x82, 0x60, 0x41, 0x32, 0x38, 0x37, 0x88, 0x36, 0xa4, 0x38, 0x0e, 0x82, 0x9c, 0xff, 0x60, 0x1c, 0x87, 0x1c, 0xd2, 0xb9, 0x87, 0x86, 0x9b, 0xc7, 0xe3, 0x61, 0x17, 0x6e, 0x83, 0xf5, 0x0d, 0x46, 0x07, 0x81, 0x89, 0xbd, 0x20, 0x5b, 0x43, 0x1e, 0x7b, 0x0c, 0xf0, 0x68, 0xab, 0x63, 0x63, 0x6b, 0x71, 0x7b, 0x73, 0x2b, 0x0f, 0xa7, 0xd8, 0xb0, 0x0b, 0xbb, 0xc1, 0x32, 0x4c, 0xff, 0x85, 0x1e, 0x1a, 0x17, 0x1d, 0x8e, 0xf6, 0x05, 0xc1, 0x82, 0x64, 0x90, 0x0d, 0xa2, 0x05, 0xdd, 0x87, 0xc6, 0x45, 0x83, 0x68, 0x83, 0x96, 0x96, 0x4a, 0x8e, 0xc7, 0x83, 0x60, 0x41, 0x32, 0xc8, 0x06, 0xd1, 0x82, 0xee, 0x43, 0xa3, 0xa3, 0x41, 0xb4, 0x41, 0x4b, 0x4b, 0x25, 0xc7, 0xf3, 0x05, 0xc1, 0x06, 0xc9, 0x98, 0xf4, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x40, 0xba, 0xef, 0x60, 0x18, 0xfa, 0x1c, 0x8c, 0x52, 0xd9, 0xe3, 0xd0, 0x20, 0xd8, 0xa0, 0xc9, 0xc3, 0x92, 0x83, 0xd5, 0x16, 0x44, 0xc3, 0x2e, 0xec, 0x06, 0xcb, 0x30, 0xfd, 0x17, 0x6e, 0x83, 0xe5, 0x39, 0x49, 0x87, 0xc6, 0x45, 0x87, 0xa3, 0x7d, 0x41, 0xb0, 0xc1, 0xf9, 0x89, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x0f, 0x96, 0x22, 0x67, 0x6d, 0x90, 0xac, 0x81, 0xb0, 0xf0, 0x1b, 0xcf, 0x0f, 0x56, 0x40, 0x4a, 0x6d, 0x30, 0xde, 0x90, 0x0e, 0x12, 0x3d, 0x15, 0x8e, 0x43, 0xc3, 0x2e, 0xec, 0x06, 0xcb, 0x30, 0xfd, 0x17, 0x6e, 0x83, 0x25, 0xb6, 0x49, 0x87, 0xc6, 0x45, 0x87, 0xa3, 0x7d, 0x41, 0xb0, 0xc1, 0xf9, 0x89, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x3b, 0x95, 0x25, 0x1b, 0x24, 0x6b, 0x20, 0x2c, 0xfc, 0xc6, 0xf3, 0x83, 0xb5, 0x94, 0x52, 0x07, 0x6d, 0x68, 0x96, 0x1c, 0x87, 0x86, 0x5d, 0xd8, 0x0d, 0x96, 0x61, 0xfa, 0x2f, 0xdc, 0x06, 0x4b, 0xe5, 0x95, 0x0e, 0x8d, 0x8b, 0x0e, 0x47, 0xfb, 0x82, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x08, 0xd7, 0x61, 0x85, 0x76, 0x90, 0x0c, 0x33, 0x88, 0x16, 0x76, 0x83, 0x64, 0x0d, 0x84, 0x83, 0x44, 0x4f, 0x85, 0xe3, 0xd0, 0x41, 0x6a, 0x27, 0xcd, 0xb0, 0x0b, 0xbb, 0xc1, 0x32, 0x4c, 0xff, 0x85, 0xdb, 0x60, 0x5d, 0xc0, 0xd2, 0xa1, 0x71, 0xd1, 0xe1, 0x68, 0x5f, 0x10, 0x2c, 0x48, 0x06, 0xd9, 0x20, 0x5a, 0xd0, 0x7d, 0x50, 0x62, 0x0f, 0x1e, 0xb4, 0xc4, 0x57, 0x32, 0x48, 0x06, 0xd9, 0x20, 0x5a, 0xd0, 0xbd, 0xc1, 0xf2, 0xe9, 0xa5, 0x83, 0x64, 0x0d, 0x84, 0xe3, 0xf9, 0xb0, 0x0b, 0xbb, 0xc1, 0x32, 0x4c, 0xff, 0x85, 0xdb, 0x60, 0x65, 0xc4, 0xd2, 0xa1, 0x71, 0xd1, 0xe1, 0x68, 0x5f, 0x10, 0x2c, 0x48, 0x06, 0xd9, 0x20, 0xda, 0x60, 0x95, 0x2a, 0xd9, 0x20, 0x5a, 0x30, 0x3e, 0x58, 0x37, 0xaa, 0x7f, 0x3c, 0x1e, 0x04, 0x1b, 0x24, 0xb6, 0x9c, 0x1c, 0xac, 0xf6, 0xd4, 0x1f, 0x76, 0x61, 0x37, 0x58, 0x86, 0xe9, 0xbf, 0x70, 0x1b, 0x2c, 0xd5, 0x42, 0x3a, 0x34, 0x2e, 0x3a, 0x1c, 0xed, 0x0b, 0x82, 0x0d, 0x4a, 0x86, 0xa6, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x20, 0x7d, 0x77, 0x58, 0xa1, 0x3d, 0x58, 0x87, 0xca, 0x7f, 0x1c, 0x1a, 0x76, 0x61, 0x37, 0x58, 0x86, 0xe9, 0xbf, 0x70, 0x1b, 0x2c, 0x3a, 0x42, 0x3a, 0x34, 0x2e, 0x3a, 0x1c, 0xed, 0x1b, 0xb4, 0x49, 0x5d, 0x32, 0xec, 0xc2, 0x6e, 0xb0, 0x0c, 0xd3, 0x7f, 0xe1, 0x36, 0x58, 0x0a, 0xb2, 0x74, 0x68, 0x5c, 0x74, 0x38, 0xda, 0x17, 0x04, 0x2b, 0x48, 0x06, 0xd9, 0x20, 0xda, 0x20, 0xac, 0xca, 0x0f, 0x5a, 0xe2, 0x2b, 0x39, 0x68, 0x6d, 0xb7, 0x64, 0x10, 0x6c, 0x90, 0xd8, 0x72, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x3d, 0x58, 0x64, 0xae, 0x7f, 0x1c, 0x1a, 0x76, 0x61, 0x37, 0x58, 0x86, 0xe9, 0xbf, 0x70, 0x1b, 0x2c, 0x86, 0x59, 0x3a, 0x34, 0x2e, 0x3a, 0x1c, 0xed, 0x0b, 0x82, 0x0d, 0xda, 0x38, 0x2f, 0x19, 0x04, 0x1b, 0x24, 0xb6, 0x9c, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x7e, 0xb0, 0xd2, 0x63, 0xe0, 0x38, 0x34, 0xec, 0xc2, 0x6e, 0xb0, 0x0c, 0xd3, 0x7f, 0xe1, 0x36, 0x58, 0xfd, 0xb3, 0x74, 0x68, 0x5c, 0x74, 0x38, 0xda, 0x17, 0x04, 0x0b, 0x92, 0x41, 0x36, 0x88, 0x36, 0x58, 0xa5, 0x4a, 0x76, 0xd0, 0x12, 0x5f, 0xc9, 0x41, 0x23, 0xf6, 0x25, 0xc3, 0x2e, 0xec, 0x06, 0xcb, 0x30, 0xfd, 0x17, 0x6e, 0x83, 0xf5, 0x23, 0x3f, 0x87, 0xc6, 0x45, 0x87, 0xa3, 0x7d, 0x0d, 0xc2, 0x9e, 0xfa, 0x20, 0xec, 0xa9, 0x87, 0x5d, 0xd8, 0x0d, 0x96, 0x61, 0xfa, 0x2f, 0xdc, 0x06, 0xeb, 0x9f, 0x96, 0x0e, 0x8d, 0x8b, 0x0e, 0x47, 0xfb, 0x82, 0x60, 0x41, 0x32, 0xc8, 0x0e, 0x96, 0xa5, 0x92, 0x2d, 0x08, 0x16, 0x24, 0x03, 0xcb, 0x7f, 0x83, 0x68, 0x83, 0xc6, 0x9f, 0x4a, 0x0e, 0xd9, 0x8a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x0f, 0x16, 0x57, 0x67, 0x1d, 0x87, 0x06, 0xc1, 0x82, 0x64, 0x60, 0xf9, 0x6f, 0x10, 0x6d, 0x50, 0xba, 0x77, 0x1c, 0xb2, 0x15, 0x07, 0x0d, 0x5a, 0x98, 0x0c, 0xbb, 0xb0, 0x1b, 0x2c, 0xc3, 0xf4, 0x5f, 0xb8, 0x0d, 0x96, 0xbb, 0x2d, 0x1d, 0x1a, 0x17, 0x1d, 0x8e, 0xf6, 0x05, 0xc1, 0x0a, 0x82, 0x0d, 0xd6, 0x45, 0x83, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0x19, 0xbb, 0xe4, 0x60, 0x49, 0x55, 0xff, 0x71, 0x68, 0x10, 0x2c, 0x48, 0x06, 0xd2, 0x77, 0x83, 0x68, 0x43, 0xe7, 0xa0, 0xc3, 0x0a, 0xed, 0xc1, 0x92, 0xaa, 0xfe, 0x41, 0xb0, 0x20, 0x19, 0x64, 0x83, 0x68, 0x41, 0xf7, 0x41, 0xa2, 0xa7, 0xc2, 0x41, 0xe9, 0x40, 0x72, 0x48, 0x1d, 0x0c, 0xbb, 0xb0, 0x1b, 0x2c, 0xc3, 0xf4, 0x5f, 0xb8, 0x0d, 0x16, 0x34, 0x2e, 0x1d, 0x1a, 0x17, 0x1d, 0x8e, 0xf6, 0x05, 0xc1, 0x06, 0x0d, 0x43, 0x98, 0x2c, 0x08, 0x36, 0x68, 0x64, 0xc2, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x83, 0x45, 0xc3, 0x59, 0xc7, 0xa1, 0x41, 0xb0, 0x41, 0xcb, 0x1a, 0x26, 0x07, 0xcd, 0xf1, 0x98, 0x0c, 0xbb, 0xb0, 0x1b, 0x2c, 0xc3, 0xf4, 0x5f, 0xb8, 0x0d, 0x96, 0x04, 0x22, 0x1d, 0x1a, 0x17, 0x1d, 0x8e, 0xf6, 0x15, 0x04, 0x0b, 0x92, 0x81, 0xa7, 0xfa, 0x0e, 0x02, 0xde, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xa1, 0xd1, 0xd1, 0xc1, 0x78, 0xd3, 0x39, 0x0e, 0x0d, 0x82, 0x0d, 0xda, 0x40, 0x32, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x68, 0x74, 0x74, 0x68, 0x01, 0x74, 0x1c, 0x1a, 0x76, 0x61, 0x37, 0x58, 0x86, 0xe9, 0xbf, 0x70, 0x1b, 0x2c, 0x23, 0x5e, 0x3a, 0x34, 0x2e, 0x3a, 0x1c, 0xed, 0x0b, 0x82, 0x0d, 0x1a, 0x86, 0x30, 0x59, 0x10, 0x6c, 0xd0, 0xc8, 0x84, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x07, 0x6b, 0xc8, 0xb3, 0x8e, 0x43, 0x83, 0x60, 0x83, 0x96, 0x35, 0x4c, 0x0e, 0xda, 0xd5, 0x32, 0x19, 0x76, 0x61, 0x37, 0x58, 0x86, 0xe9, 0xbf, 0x70, 0x1b, 0x2c, 0xc1, 0x3d, 0x3a, 0x34, 0x2e, 0x3a, 0x1c, 0xed, 0x0b, 0x82, 0x05, 0xc9, 0x20, 0x1b, 0x44, 0x1b, 0x34, 0xcb, 0x5b, 0x72, 0x3c, 0x5e, 0x10, 0x6c, 0xd0, 0xaa, 0xff, 0xc8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x6f, 0x30, 0xde, 0x74, 0x0e, 0x92, 0x35, 0x10, 0x0e, 0xd1, 0x3c, 0x0e, 0x0d, 0x82, 0x0d, 0x5a, 0xf5, 0x1f, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x0d, 0x2d, 0x80, 0x0e, 0x92, 0x35, 0x10, 0x0e, 0xe3, 0x72, 0x1c, 0x1a, 0x76, 0x61, 0x37, 0x58, 0x86, 0xe9, 0xbf, 0x70, 0x1b, 0x2c, 0xe9, 0x5c, 0x3a, 0x34, 0x2e, 0x3a, 0x1c, 0xed, 0x1b, 0x34, 0x0c, 0x61, 0x32, 0xec, 0xc2, 0x6e, 0xb0, 0x0c, 0xd3, 0x7f, 0xe1, 0x36, 0x58, 0x85, 0xce, 0x74, 0x68, 0x5c, 0x74, 0x38, 0xda, 0x17, 0x64, 0x6b, 0xc8, 0x63, 0x2f, 0x0e, 0x92, 0x81, 0xa3, 0x6f, 0x10, 0x2d, 0xec, 0x20, 0x58, 0x90, 0x0c, 0xa4, 0xef, 0x0e, 0xd9, 0x8a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x41, 0x9a, 0x7b, 0xc6, 0x71, 0xe8, 0x90, 0xad, 0x38, 0x1e, 0x1f, 0x34, 0x65, 0x66, 0x32, 0xec, 0xc2, 0x6e, 0xb0, 0x0c, 0xd3, 0x7f, 0xe1, 0x36, 0x58, 0xec, 0xc6, 0x74, 0x68, 0x5c, 0x74, 0x38, 0xda, 0x37, 0x68, 0xca, 0xcc, 0x64, 0xd8, 0x85, 0xdd, 0x60, 0x19, 0xa6, 0xff, 0xc2, 0x6d, 0xb0, 0x2e, 0xbd, 0xe9, 0xd0, 0xb8, 0xe8, 0x70, 0xb4, 0x2f, 0x08, 0x36, 0x68, 0xe5, 0xbc, 0x64, 0x90, 0x0c, 0xb2, 0x41, 0xb4, 0xc1, 0xa8, 0xfa, 0x1f, 0x44, 0x0b, 0xd6, 0x1b, 0x84, 0x00, 0xf8, 0x41, 0xa2, 0xa7, 0xc2, 0xf1, 0x7c, 0xd8, 0x85, 0xdd, 0x60, 0x19, 0xa6, 0xff, 0xc2, 0x6d, 0xb0, 0xfe, 0xca, 0xe9, 0xd0, 0xb8, 0xe8, 0x70, 0xb4, 0x2f, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x81, 0x7a, 0x75, 0x58, 0xa1, 0x3d, 0x58, 0x52, 0xd5, 0x3f, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x81, 0x7a, 0x75, 0xd0, 0xc8, 0xf4, 0xc8, 0x41, 0x03, 0x87, 0x26, 0x83, 0x64, 0x90, 0x0d, 0xa2, 0x05, 0xf5, 0x87, 0xd4, 0xc1, 0x20, 0x5a, 0xb0, 0xde, 0x38, 0x74, 0x90, 0xe8, 0xad, 0x70, 0x48, 0x2e, 0x0d, 0xbb, 0xb0, 0x1b, 0x2c, 0xc3, 0xf4, 0x5f, 0xb8, 0x0d, 0x16, 0x79, 0x3a, 0x1d, 0x1a, 0x17, 0x1d, 0x8e, 0xf6, 0x05, 0xc1, 0x82, 0x64, 0x90, 0x0d, 0xa2, 0x0d, 0xc2, 0xaa, 0x7c, 0x10, 0x2d, 0x18, 0x0f, 0x92, 0x81, 0xa5, 0xbe, 0x83, 0x80, 0xf7, 0x3f, 0x1e, 0x0f, 0x82, 0x05, 0xc1, 0x0a, 0x82, 0x05, 0xc9, 0xc0, 0xf0, 0x1d, 0xb2, 0x15, 0x07, 0x0d, 0x1c, 0x9a, 0x0c, 0x82, 0x05, 0xc9, 0xc0, 0xf0, 0x1d, 0x34, 0x32, 0x3d, 0x72, 0xd0, 0xc0, 0xa1, 0xc9, 0xb0, 0x0b, 0xb7, 0xc1, 0xfa, 0x06, 0xa3, 0x83, 0x90, 0x02, 0x5f, 0x83, 0xf5, 0x0d, 0x46, 0xc3, 0x2e, 0xdc, 0x06, 0xeb, 0x1b, 0x8c, 0x0e, 0x42, 0x00, 0x7c, 0x83, 0xf5, 0x0d, 0x46, 0x83, 0x6c, 0x0d, 0x79, 0xec, 0x31, 0xf0, 0xd3, 0xcc, 0x5a, 0xf4, 0x41, 0xb0, 0x20, 0x19, 0x48, 0xdf, 0x0d, 0xa2, 0x0d, 0x4a, 0xf7, 0x8e, 0x83, 0x20, 0xe7, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x1e, 0x24, 0x88, 0x74, 0x1c, 0x87, 0x86, 0xdd, 0xa0, 0x55, 0x63, 0x93, 0x05, 0xd9, 0x1a, 0xf2, 0xd8, 0x63, 0x80, 0x57, 0x5b, 0x1d, 0x1b, 0x5b, 0x8b, 0xd8, 0x9b, 0xdb, 0x5a, 0x8b, 0x78, 0x38, 0xc5, 0x06, 0xc9, 0x20, 0x1b, 0x44, 0x1b, 0x8c, 0xaa, 0xff, 0x41, 0xb4, 0x60, 0xbd, 0x41, 0x08, 0x80, 0x1f, 0x24, 0xc6, 0x67, 0x1c, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb0, 0x82, 0x60, 0x41, 0x32, 0x60, 0xf0, 0xfd, 0x1d, 0x04, 0x39, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0xa0, 0x3c, 0x32, 0x38, 0x0e, 0x0d, 0x82, 0x05, 0xc9, 0x80, 0xc1, 0xf7, 0x37, 0x88, 0x36, 0x48, 0x54, 0xba, 0x38, 0x08, 0x72, 0xfe, 0x83, 0x76, 0xc7, 0x4d, 0x86, 0xdd, 0xa0, 0x6d, 0x61, 0x93, 0x35, 0x58, 0xdf, 0x60, 0x34, 0xec, 0x06, 0xad, 0x1a, 0x9b, 0x6c, 0xb0, 0xbe, 0xc1, 0x68, 0x90, 0xad, 0x21, 0x8f, 0x3d, 0x06, 0x7e, 0x9a, 0x59, 0x4b, 0x38, 0x08, 0x16, 0x24, 0x03, 0xe9, 0xbb, 0x41, 0xb4, 0x41, 0xe9, 0xde, 0x71, 0x10, 0xf0, 0xfe, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x83, 0xc6, 0x23, 0x03, 0x8e, 0x43, 0xc3, 0x6e, 0xd0, 0xaa, 0xb1, 0xc9, 0x82, 0x6c, 0x0d, 0x79, 0xec, 0x31, 0xc0, 0xab, 0xad, 0x8e, 0x8d, 0xad, 0x45, 0xec, 0xcd, 0x6d, 0xad, 0x65, 0x3c, 0x9c, 0x62, 0x83, 0x64, 0x90, 0x0d, 0xa2, 0x0d, 0x46, 0xd5, 0xff, 0x20, 0x5a, 0xb0, 0xde, 0x20, 0x04, 0xc0, 0x27, 0xc8, 0xef, 0x1f, 0x56, 0x68, 0x17, 0x04, 0x0b, 0x92, 0xc1, 0xea, 0xb0, 0x42, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x1c, 0x7d, 0x07, 0xc3, 0x3f, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x6b, 0xb7, 0x21, 0x9a, 0x07, 0x03, 0x3f, 0xe4, 0x38, 0x74, 0x1c, 0x1a, 0x04, 0x1b, 0x34, 0xbb, 0x70, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xaf, 0xdd, 0x30, 0x2e, 0x07, 0x03, 0x3f, 0xe4, 0x38, 0x34, 0xec, 0xc2, 0x6e, 0xb0, 0x0c, 0xd3, 0x7f, 0xe1, 0x36, 0x58, 0xfa, 0x7c, 0x74, 0x68, 0x5c, 0x74, 0x38, 0xda, 0x17, 0x04, 0x6b, 0xd0, 0x0a, 0x8a, 0xc9, 0x41, 0x33, 0x2b, 0x26, 0x83, 0x60, 0x05, 0xc1, 0x82, 0x64, 0x60, 0xad, 0xef, 0x60, 0xbc, 0xeb, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xfc, 0x82, 0x60, 0x41, 0x32, 0x20, 0xec, 0xfe, 0x0e, 0xd9, 0x8a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x8b, 0xcc, 0xf5, 0x87, 0xdf, 0x78, 0xbe, 0xc1, 0x32, 0x4e, 0xa4, 0x83, 0x44, 0x4f, 0x85, 0xe3, 0xd0, 0xf1, 0xfc, 0x38, 0x34, 0x08, 0x36, 0x68, 0x11, 0xe4, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0xe1, 0x17, 0x04, 0x0b, 0x92, 0x01, 0x61, 0xf7, 0x77, 0xd0, 0xc8, 0xf4, 0xc8, 0x41, 0xc3, 0x27, 0x27, 0xc7, 0xf3, 0xe3, 0xd0, 0x20, 0x58, 0x41, 0xb0, 0x20, 0x19, 0x58, 0xbb, 0x1b, 0x44, 0x1b, 0x8c, 0x30, 0x80, 0x83, 0x20, 0xe7, 0x3f, 0x18, 0xc6, 0x0e, 0x83, 0x60, 0x41, 0x32, 0xb0, 0x76, 0x37, 0x88, 0x36, 0x18, 0x76, 0xb8, 0x07, 0x41, 0xce, 0x7f, 0x30, 0xa2, 0x70, 0x87, 0x5d, 0xd8, 0x0d, 0xe9, 0xcc, 0x85, 0xdd, 0x60, 0x7c, 0x69, 0x1d, 0xd2, 0xb9, 0x87, 0xa3, 0x7d, 0x41, 0xb0, 0xc1, 0xe0, 0xae, 0x1c, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x2c, 0xf5, 0x1d, 0x0c, 0xff, 0xd8, 0xe3, 0xd0, 0x20, 0x5b, 0x43, 0x1e, 0x7b, 0x0c, 0xf0, 0x6a, 0xab, 0x63, 0x63, 0x6b, 0x11, 0x7b, 0x73, 0x5b, 0x6b, 0x09, 0x0f, 0xa7, 0xd8, 0xb0, 0x0b, 0xbb, 0xc1, 0x32, 0x4c, 0xff, 0x85, 0xdb, 0x60, 0xa5, 0xcb, 0xd3, 0xa1, 0x71, 0xd1, 0xe1, 0x68, 0x5f, 0x90, 0xad, 0x21, 0x8f, 0x3d, 0x06, 0x78, 0xb5, 0xd5, 0xb1, 0xb1, 0xb5, 0x88, 0xbd, 0xb9, 0xad, 0xb5, 0xe0, 0x83, 0x60, 0x85, 0x5f, 0x10, 0x2c, 0x48, 0x06, 0x7a, 0xff, 0x1d, 0x56, 0x68, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x34, 0xca, 0x01, 0x30, 0xfc, 0xc6, 0xf3, 0x0d, 0x86, 0x22, 0xd2, 0x41, 0x89, 0x3d, 0x78, 0x1c, 0x3a, 0x58, 0x8e, 0x4b, 0x32, 0xfc, 0x82, 0x60, 0x41, 0x32, 0xd0, 0xfb, 0xef, 0xa0, 0x65, 0x16, 0x93, 0x83, 0x26, 0xbc, 0x4e, 0x0e, 0x96, 0xe3, 0x92, 0x0c, 0xbb, 0x70, 0x1b, 0x0c, 0xd6, 0xd8, 0x83, 0xb3, 0x69, 0xf8, 0xc2, 0x2e, 0x08, 0x16, 0x24, 0x83, 0x73, 0x83, 0x68, 0x61, 0x0f, 0x82, 0x2c, 0xfe, 0x90, 0xad, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xf0, 0x43, 0x0e, 0xc6, 0x4f, 0xd7, 0x71, 0x68, 0x83, 0x46, 0xec, 0x4b, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x1b, 0x76, 0x61, 0x37, 0x58, 0x86, 0xe9, 0xbf, 0x70, 0x1b, 0xac, 0x88, 0x3b, 0x3a, 0x34, 0x2e, 0x3a, 0x1c, 0xed, 0x0b, 0xb2, 0x35, 0xe4, 0xb1, 0x17, 0x07, 0xc1, 0x06, 0xa3, 0x65, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x0f, 0xd6, 0xa0, 0x00, 0x1d, 0xa4, 0xb9, 0x67, 0x1c, 0x87, 0x8e, 0xc7, 0x07, 0x4d, 0x99, 0x99, 0x0c, 0xbb, 0xb0, 0x1b, 0x2c, 0xc3, 0xf4, 0x5f, 0xb8, 0x0d, 0x16, 0x86, 0x3d, 0x1d, 0x1a, 0x17, 0x1d, 0x8e, 0xf6, 0x0d, 0x5a, 0x22, 0x31, 0x19, 0x76, 0x61, 0x37, 0x58, 0x86, 0xe9, 0xbf, 0x70, 0x1b, 0x2c, 0xb9, 0x41, 0x3a, 0x34, 0x2e, 0x3a, 0x1c, 0xed, 0x0b, 0xbb, 0xc1, 0x18, 0x58, 0x58, 0x90, 0xad, 0x21, 0x8f, 0x3d, 0x06, 0x78, 0xb4, 0xd5, 0xb1, 0xb1, 0xb5, 0xcc, 0xad, 0xa5, 0xc1, 0x87, 0x53, 0x6c, 0x10, 0x6c, 0x50, 0x32, 0x34, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x7e, 0xb0, 0xbe, 0xc1, 0xe8, 0x38, 0x34, 0xec, 0xc2, 0x6e, 0xb0, 0x0c, 0xd3, 0x7f, 0xe1, 0x36, 0x58, 0x20, 0xfa, 0x74, 0x68, 0x5c, 0x74, 0x38, 0xda, 0x17, 0x04, 0x1b, 0x94, 0x0c, 0x4d, 0x07, 0xad, 0xb3, 0x97, 0x0c, 0xbb, 0xb0, 0x1b, 0x2c, 0xc3, 0xf4, 0x5f, 0xb8, 0x0d, 0x96, 0x47, 0x3e, 0x1d, 0x1a, 0x17, 0x1d, 0x8e, 0xf6, 0x05, 0xc1, 0x06, 0xad, 0xed, 0x96, 0x2c, 0x08, 0x16, 0x24, 0x83, 0xd5, 0xf1, 0x7c, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0xb3, 0xd9, 0x23, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x7e, 0xd0, 0x2e, 0xa1, 0xc9, 0x21, 0x9a, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0xd8, 0xa0, 0xd9, 0xec, 0x91, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0xf4, 0xdd, 0x41, 0x23, 0xd3, 0x23, 0x07, 0x0d, 0x1c, 0x9a, 0x1c, 0xc6, 0xe5, 0x38, 0x34, 0xec, 0xc2, 0x6e, 0xb0, 0x0c, 0xd3, 0x7f, 0xe1, 0x36, 0x58, 0x1c, 0xf8, 0x74, 0x68, 0x5c, 0x74, 0x38, 0xda, 0x17, 0x04, 0x1b, 0x94, 0x0c, 0x4d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x5a, 0xc6, 0x2e, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x83, 0xe5, 0xd3, 0x4b, 0x07, 0x61, 0x4f, 0x7d, 0x1c, 0x3a, 0x0e, 0x0d, 0xbb, 0xb0, 0x1b, 0x2c, 0xc3, 0xf4, 0x5f, 0xb8, 0x0d, 0x96, 0xc8, 0x3e, 0x1d, 0x1a, 0x17, 0x1d, 0x8e, 0xf6, 0x05, 0xc1, 0x0a, 0x82, 0x05, 0xc9, 0xc0, 0x79, 0x77, 0x58, 0xa1, 0x3d, 0x58, 0x52, 0xd5, 0x3f, 0x08, 0x16, 0x24, 0x03, 0xe7, 0xdd, 0x41, 0xcb, 0x2c, 0x26, 0x07, 0x4b, 0xaa, 0xfa, 0x87, 0xdd, 0x60, 0x7c, 0x69, 0x2d, 0xec, 0x06, 0x21, 0x05, 0xbe, 0x20, 0x19, 0x64, 0x83, 0x68, 0x41, 0xf7, 0x41, 0x42, 0x0e, 0xc2, 0xf1, 0x7c, 0x90, 0x0c, 0xb2, 0x41, 0xb4, 0xa0, 0xfb, 0xa0, 0x5d, 0xe3, 0x90, 0xe3, 0xf9, 0x20, 0x5b, 0x43, 0x1e, 0x7b, 0x0c, 0xf0, 0x6a, 0xab, 0x63, 0x63, 0x6b, 0x11, 0x7b, 0x73, 0x5b, 0x6b, 0x31, 0x0f, 0xa7, 0xd8, 0xb0, 0x0b, 0xbb, 0xc1, 0x32, 0x4c, 0xff, 0x85, 0xdb, 0x60, 0x69, 0xfd, 0xd3, 0xa1, 0x71, 0xd1, 0xe1, 0x68, 0xdf, 0xa0, 0xd9, 0xca, 0x93, 0x41, 0xb6, 0xa1, 0xf9, 0xfa, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x06, 0x65, 0x07, 0x01, 0xef, 0x3f, 0x48, 0x06, 0xd1, 0xc1, 0xea, 0x54, 0xfe, 0x61, 0x17, 0x6e, 0xe3, 0xd0, 0xa1, 0xe1, 0xd7, 0x82, 0x6c, 0x0d, 0x79, 0xec, 0xc5, 0x41, 0xb0, 0x41, 0xb1, 0x0a, 0x35, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xe3, 0xe0, 0xe3, 0x41, 0x9a, 0x99, 0xf7, 0xf0, 0x1b, 0xcf, 0x37, 0x28, 0x22, 0x25, 0x0f, 0x82, 0x87, 0xfb, 0x38, 0x74, 0x3c, 0x1e, 0x64, 0x6b, 0xc8, 0x63, 0x8f, 0x01, 0x1e, 0x6d, 0x75, 0x6c, 0x6c, 0x2d, 0x6f, 0x70, 0x65, 0xee, 0xe1, 0x14, 0x1b, 0x24, 0x83, 0x6c, 0x10, 0x2d, 0xe8, 0x3e, 0x0e, 0x1d, 0xcf, 0x0f, 0xd6, 0xf2, 0x09, 0x1c, 0x8f, 0x07, 0xd9, 0x1a, 0xd2, 0x40, 0xe3, 0x80, 0xdf, 0x56, 0xc7, 0xc6, 0x1e, 0x52, 0x4b, 0xc7, 0xe3, 0xe1, 0x17, 0x04, 0x1b, 0x2c, 0x34, 0x31, 0x5a, 0x1c, 0x04, 0x1b, 0x62, 0x38, 0x08, 0x16, 0x87, 0xdd, 0xa0, 0x65, 0xd7, 0x91, 0x0d, 0xc6, 0x9b, 0xce, 0xb0, 0x1b, 0x2c, 0xe3, 0xf9, 0x5f, 0xd8, 0x0d, 0xd6, 0x7d, 0xff, 0x2f, 0x08, 0x16, 0x76, 0x41, 0xb0, 0x20, 0x19, 0x30, 0xb8, 0xfa, 0x0e, 0xc6, 0xbb, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x90, 0xcf, 0x3e, 0x28, 0x69, 0x1a, 0x8e, 0x43, 0x1b, 0x8c, 0xb1, 0xa7, 0x43, 0x0b, 0xa0, 0x61, 0x17, 0x76, 0xa1, 0x07, 0xe5, 0x58, 0xc3, 0x61, 0x7d, 0x73, 0x0d, 0x16, 0x5e, 0x18, 0x6d, 0x1c, 0x3a, 0x08, 0x1e, 0xee, 0x61, 0x17, 0x76, 0xa1, 0x07, 0xc1, 0xc3, 0x7d, 0x58, 0xdf, 0x5c, 0x83, 0x85, 0x17, 0x46, 0x1b, 0x87, 0x0e, 0xca, 0xb1, 0x86, 0x61, 0x17, 0x6e, 0x83, 0x72, 0xac, 0xe1, 0x20, 0x78, 0xb8, 0x37, 0x68, 0x96, 0x04, 0xe5, 0x60, 0x7d, 0x83, 0xd1, 0xb0, 0x1b, 0xac, 0xed, 0xff, 0xdf, 0x60, 0x7d, 0x83, 0xd1, 0x20, 0xdb, 0xd0, 0x7c, 0x7d, 0x90, 0x0c, 0x39, 0x68, 0xe3, 0x01, 0x60, 0xd8, 0x0d, 0xd6, 0x1e, 0xfd, 0x2f, 0xec, 0x06, 0x6b, 0xfb, 0xff, 0x17, 0x04, 0x1b, 0x34, 0x9b, 0x3d, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0xc8, 0x41, 0x93, 0x05, 0x00, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x43, 0x0e, 0xda, 0x4c, 0x00, 0x38, 0x0e, 0x1d, 0xb4, 0xe7, 0x82, 0x32, 0xec, 0x06, 0x0b, 0xa6, 0xfe, 0x17, 0x24, 0x43, 0x0e, 0x5a, 0xb0, 0x20, 0x19, 0x76, 0x83, 0x75, 0x8c, 0xff, 0x0b, 0x82, 0x0d, 0x5a, 0x5a, 0x1f, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x50, 0xd2, 0x34, 0x0c, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x39, 0x58, 0x69, 0xf9, 0x7f, 0x1c, 0x1a, 0x76, 0x83, 0xd5, 0x62, 0xff, 0x0b, 0x82, 0x0d, 0x5a, 0xa1, 0x1f, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0x3c, 0xfe, 0xc8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xb5, 0x73, 0xff, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x2c, 0x34, 0x31, 0x5a, 0x1c, 0x24, 0x43, 0x0e, 0x96, 0x14, 0xfe, 0x1f, 0x8f, 0x8f, 0x43, 0xc7, 0xa1, 0x61, 0x37, 0x58, 0xb0, 0xf9, 0xbf, 0x20, 0xd8, 0xa0, 0x55, 0xff, 0x91, 0x83, 0xc6, 0x88, 0x50, 0x86, 0xdd, 0x60, 0x15, 0xea, 0xff, 0xc2, 0x6e, 0xd0, 0xe4, 0x00, 0xc9, 0x82, 0x6c, 0x0d, 0x79, 0xec, 0x31, 0xc0, 0xc3, 0xac, 0x6e, 0xae, 0xac, 0x85, 0xed, 0xed, 0x0d, 0x3e, 0x9c, 0x62, 0x83, 0x64, 0xc8, 0x41, 0x9b, 0x0c, 0x24, 0xc3, 0x6e, 0xb0, 0x8a, 0xe5, 0x7f, 0xc3, 0x5e, 0xe1, 0x41, 0x0b, 0x18, 0x24, 0xc7, 0xb7, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0x1c, 0xf0, 0xcd, 0xea, 0xe6, 0xca, 0x43, 0x6a, 0xe9, 0x78, 0x3c, 0xc8, 0x36, 0xc4, 0x65, 0x10, 0x6c, 0x88, 0xe1, 0x20, 0x58, 0x1c, 0x64, 0x1b, 0xe2, 0x32, 0xec, 0x06, 0xad, 0xc8, 0x8e, 0x6c, 0xb0, 0x36, 0x89, 0x6a, 0xd8, 0x0d, 0x9a, 0xb3, 0x1d, 0xd9, 0x60, 0x6d, 0x12, 0xd5, 0xb0, 0x1b, 0xac, 0xfb, 0xfe, 0x5f, 0xd8, 0x0d, 0x8a, 0x2a, 0x85, 0x0d, 0xd6, 0x26, 0x51, 0x6d, 0xd0, 0x84, 0xb4, 0xc8, 0xa1, 0xd1, 0xd1, 0xb0, 0x1b, 0xac, 0xed, 0xff, 0x5f, 0x10, 0x2c, 0xfc, 0x06, 0xab, 0x20, 0x0f, 0x0e, 0x56, 0xf7, 0xc2, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x41, 0xf1, 0x34, 0x30, 0xfc, 0xc6, 0xf3, 0x83, 0xe2, 0x48, 0xe5, 0x38, 0x34, 0xec, 0x06, 0x0d, 0x6f, 0x90, 0x2c, 0x08, 0x36, 0x68, 0xe5, 0x0f, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x62, 0x7c, 0xc6, 0x41, 0x23, 0x83, 0x28, 0xc7, 0xa1, 0x61, 0x37, 0x68, 0x26, 0x84, 0x64, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x98, 0x1f, 0xa4, 0x7f, 0x29, 0x1c, 0x8f, 0x87, 0xdd, 0xa0, 0x5d, 0x15, 0x92, 0x0d, 0xd6, 0x26, 0x51, 0x0d, 0xbb, 0x41, 0x13, 0x3c, 0x24, 0x1b, 0x34, 0xfc, 0x88, 0x32, 0xc8, 0xd6, 0xd0, 0x7e, 0xfd, 0xa0, 0xd5, 0x20, 0x92, 0x61, 0x17, 0x04, 0x0b, 0x82, 0x0d, 0x1a, 0x16, 0x25, 0x39, 0x68, 0xb1, 0x80, 0xe4, 0x60, 0x7c, 0x18, 0x6d, 0xb0, 0x36, 0x89, 0x6a, 0x90, 0x0c, 0x19, 0x44, 0x1b, 0xb4, 0x0e, 0x89, 0x32, 0x88, 0x16, 0x76, 0x10, 0x2c, 0x08, 0x36, 0x68, 0x58, 0x94, 0xe4, 0xa0, 0x60, 0x74, 0x38, 0x18, 0x1f, 0x46, 0xc7, 0xe3, 0xe3, 0xdb, 0xc2, 0x2f, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x6c, 0x88, 0xe1, 0x20, 0x58, 0x1c, 0x76, 0x83, 0xb5, 0x25, 0xff, 0x1b, 0xce, 0xf5, 0x61, 0x37, 0x58, 0xc5, 0xf2, 0xbf, 0xc1, 0x60, 0x45, 0x19, 0x76, 0x83, 0x65, 0x3c, 0xff, 0x0b, 0xbb, 0x41, 0x19, 0x55, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0x28, 0xbb, 0xfa, 0x0e, 0xc6, 0xbb, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x1b, 0xfa, 0x93, 0x1f, 0x8c, 0x52, 0xce, 0xe3, 0xd0, 0x06, 0x85, 0x1d, 0xce, 0x1a, 0x8e, 0xf6, 0x83, 0x86, 0x7d, 0x46, 0x0e, 0x46, 0x29, 0xe7, 0xb0, 0x1b, 0xac, 0x3d, 0xfa, 0x5f, 0x10, 0x2c, 0x48, 0x06, 0xf2, 0x7d, 0x07, 0xe3, 0x5d, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x73, 0xb6, 0x28, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xb4, 0xf2, 0x8b, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0xc8, 0x20, 0xda, 0x60, 0xe4, 0x9b, 0x0f, 0xa2, 0x05, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0xd4, 0x1d, 0x9c, 0x84, 0x8e, 0x0f, 0x9a, 0x7f, 0x18, 0x39, 0x1e, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x19, 0x44, 0x1b, 0x0c, 0x0f, 0xf4, 0x41, 0xb4, 0x60, 0x3e, 0x08, 0x36, 0x68, 0x7f, 0x19, 0xe5, 0x60, 0xf4, 0x14, 0x1d, 0x8f, 0x8f, 0x43, 0xc7, 0xa1, 0x61, 0x37, 0x58, 0x30, 0xf5, 0xbf, 0x20, 0x5b, 0x43, 0x1e, 0x7b, 0x0c, 0xf0, 0x30, 0x4b, 0x9b, 0x43, 0x6b, 0x19, 0x7b, 0x93, 0x2b, 0x0f, 0xa7, 0xd8, 0xb0, 0x1b, 0xac, 0x63, 0xfc, 0xdf, 0xa0, 0xd9, 0x23, 0x94, 0x61, 0x37, 0x58, 0x2d, 0xf6, 0xbf, 0x20, 0xd8, 0x60, 0x59, 0xdd, 0xff, 0x20, 0x58, 0x1c, 0x76, 0xc3, 0xfa, 0xde, 0x86, 0x73, 0x7d, 0x10, 0x2c, 0x48, 0x06, 0xfe, 0xeb, 0x3b, 0x18, 0xfe, 0xb1, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xf7, 0x0f, 0xd1, 0x3c, 0x24, 0x97, 0x0e, 0x4a, 0x14, 0xb4, 0xe3, 0xd0, 0xf1, 0x6d, 0xd8, 0x0d, 0x16, 0x6c, 0xfe, 0x6f, 0xd0, 0xec, 0x11, 0xca, 0x20, 0xdb, 0x60, 0xad, 0xe9, 0xff, 0xb0, 0x0b, 0x82, 0x0d, 0x5a, 0x20, 0x20, 0x39, 0x18, 0x6d, 0xad, 0x0b, 0xb2, 0x35, 0xe4, 0xb1, 0xc7, 0x00, 0x0f, 0xb3, 0xb4, 0x39, 0xb4, 0x16, 0xb6, 0xb7, 0x37, 0xf8, 0x70, 0x8a, 0x0d, 0xbf, 0x20, 0x5a, 0xd8, 0x41, 0xb0, 0x41, 0xe3, 0x0f, 0x24, 0x07, 0xa3, 0xad, 0xf5, 0x78, 0x7c, 0xd0, 0xe8, 0x0f, 0xca, 0xf1, 0xed, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x07, 0x7c, 0xb3, 0xb4, 0x39, 0xf4, 0x90, 0x5a, 0x3a, 0x1e, 0x0f, 0x82, 0x0d, 0xda, 0x5d, 0x05, 0x58, 0x1c, 0x64, 0x6b, 0xc8, 0x63, 0x2f, 0x0e, 0x82, 0x0d, 0xc6, 0x52, 0xee, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x8f, 0x83, 0x8f, 0x81, 0x4f, 0x17, 0x36, 0xb6, 0x6e, 0xd0, 0x5e, 0x1d, 0xc0, 0x21, 0xfe, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0x58, 0x10, 0x6c, 0xb0, 0x46, 0xb4, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x83, 0xe2, 0x00, 0x87, 0xac, 0xdd, 0x71, 0x68, 0xd8, 0x0d, 0x16, 0xc0, 0xfa, 0x2c, 0x08, 0x36, 0x58, 0x9d, 0xdb, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xd0, 0x48, 0x70, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x85, 0x26, 0x46, 0x8b, 0x87, 0xc4, 0xcc, 0xf1, 0xf8, 0x38, 0x74, 0x38, 0xc5, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x7e, 0x41, 0xb4, 0xb0, 0x83, 0x60, 0x41, 0xb2, 0xc1, 0x10, 0xff, 0x38, 0x18, 0x86, 0x3e, 0x87, 0x46, 0x2d, 0xc7, 0xe3, 0x41, 0xb0, 0x38, 0xec, 0x06, 0xc1, 0xc7, 0xbc, 0x21, 0x86, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0xf8, 0xfa, 0xef, 0xb0, 0x42, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0xab, 0x85, 0x8d, 0x0e, 0xf1, 0x3f, 0x0e, 0x0d, 0xbb, 0xc1, 0xa8, 0x97, 0xdc, 0x70, 0xb4, 0x0f, 0xbb, 0xc1, 0x02, 0x58, 0x9f, 0x05, 0xc9, 0x90, 0x41, 0xb4, 0xa0, 0x7e, 0xf8, 0x05, 0xc1, 0x82, 0x64, 0xc0, 0xe8, 0xfb, 0x3b, 0x64, 0x2b, 0x0e, 0x86, 0xa6, 0xeb, 0x71, 0x68, 0x10, 0x2d, 0x88, 0x0f, 0x6b, 0xbf, 0xc7, 0xf3, 0x41, 0xb6, 0xc1, 0x52, 0x8e, 0xa0, 0x61, 0x37, 0x58, 0xa8, 0xc5, 0xb5, 0xe1, 0x68, 0x1f, 0x64, 0x6b, 0x68, 0xbf, 0x7e, 0xd0, 0xda, 0x09, 0xc0, 0x20, 0x19, 0x32, 0x88, 0x16, 0xd4, 0x0f, 0xbf, 0x20, 0xd8, 0xa0, 0x65, 0x9b, 0x94, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x63, 0xc3, 0xf5, 0x20, 0x28, 0xbd, 0x8f, 0x43, 0xc7, 0xa1, 0x83, 0x66, 0x74, 0x52, 0x8e, 0x6f, 0xc7, 0xe3, 0x85, 0x5f, 0xf8, 0x05, 0xd1, 0x06, 0x0d, 0x3e, 0x93, 0x1c, 0x8f, 0x07, 0xc1, 0x06, 0x6b, 0x5a, 0x8e, 0x16, 0x87, 0x5d, 0xd8, 0x0d, 0x1d, 0x47, 0x36, 0x08, 0x86, 0xfd, 0xc3, 0xd1, 0xbe, 0x20, 0x58, 0x90, 0x0c, 0xa4, 0xfb, 0x0e, 0x82, 0x9c, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x0f, 0x06, 0x0f, 0xc0, 0x41, 0x89, 0x82, 0x76, 0x1c, 0x1a, 0x76, 0x61, 0x37, 0x74, 0x1c, 0xd9, 0x60, 0x49, 0x4e, 0xd2, 0xe1, 0x68, 0x5f, 0x10, 0x2c, 0x48, 0x06, 0x84, 0x55, 0xdf, 0x41, 0x90, 0xf3, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x08, 0x4c, 0xec, 0x85, 0xdf, 0x78, 0xbe, 0xa1, 0x91, 0xe0, 0x78, 0x38, 0x13, 0x36, 0x08, 0x4c, 0xec, 0x85, 0xdf, 0x78, 0x7e, 0xb0, 0x36, 0x89, 0xea, 0xd0, 0x31, 0xec, 0x38, 0x34, 0xec, 0xc2, 0x6e, 0xe8, 0x38, 0xb2, 0xc1, 0xb2, 0xda, 0xa4, 0xc3, 0xd1, 0xbe, 0x20, 0xd8, 0xa0, 0x55, 0xaf, 0x94, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x81, 0x89, 0xbd, 0xf0, 0x1b, 0xcf, 0x37, 0x34, 0x12, 0x1c, 0x0f, 0x1a, 0xbf, 0x84, 0x38, 0x68, 0xba, 0x2c, 0xe5, 0x38, 0x34, 0xec, 0xc2, 0x6e, 0xe8, 0x38, 0xb2, 0xc1, 0xf2, 0x78, 0xa5, 0xc3, 0xd1, 0xbe, 0x20, 0x58, 0x90, 0x0c, 0x84, 0xeb, 0x90, 0x5c, 0x1a, 0x24, 0x83, 0xe8, 0x20, 0x89, 0xc7, 0x64, 0xd8, 0x85, 0xdd, 0xd0, 0x71, 0x64, 0x83, 0xb5, 0x00, 0x4b, 0x87, 0xa3, 0x7d, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xcb, 0xa7, 0x97, 0x0e, 0x8d, 0x04, 0x8f, 0xc7, 0xc3, 0x2e, 0xec, 0x86, 0x8e, 0x23, 0x1b, 0xac, 0x86, 0x58, 0x3a, 0x1c, 0xed, 0x1b, 0xac, 0x1b, 0xd5, 0x1f, 0x76, 0x61, 0x37, 0x74, 0x1c, 0xd9, 0x60, 0xa1, 0x11, 0xd2, 0xe1, 0x68, 0x5f, 0x10, 0x2c, 0x0e, 0xbb, 0xb0, 0x1b, 0x2c, 0xc3, 0xf4, 0x3f, 0xac, 0x6f, 0xae, 0xc1, 0xc2, 0x0b, 0xa3, 0x0d, 0x3d, 0x84, 0x0e, 0x02, 0xa7, 0x79, 0x83, 0x85, 0x33, 0x46, 0x0b, 0x92, 0x21, 0x83, 0x68, 0x83, 0x26, 0xf6, 0x4a, 0x8e, 0xc7, 0x07, 0x0b, 0x50, 0xc9, 0x8e, 0x6f, 0xc3, 0x2e, 0xec, 0x86, 0x8e, 0x23, 0x1b, 0x2c, 0xcf, 0x42, 0x3a, 0x1c, 0xed, 0x0b, 0xbb, 0x41, 0x02, 0xd7, 0xcf, 0xc2, 0x6e, 0x70, 0x20, 0x3c, 0x5f, 0xd8, 0x0d, 0xc6, 0x3a, 0xda, 0x1a, 0x2c, 0xbc, 0x30, 0xda, 0xd0, 0x48, 0xf0, 0x60, 0xd4, 0xa3, 0x1d, 0x4e, 0xb1, 0x61, 0x17, 0x6e, 0x83, 0x71, 0xbb, 0x7b, 0x68, 0x24, 0xb8, 0xb0, 0x0b, 0x82, 0x0d, 0x4e, 0x19, 0xd7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x1d, 0xc3, 0x0e, 0xc6, 0x86, 0xeb, 0x71, 0x68, 0x41, 0x32, 0xb0, 0xd4, 0x77, 0x10, 0xe4, 0xfc, 0x87, 0x53, 0x6c, 0x83, 0x85, 0x17, 0x46, 0x1b, 0x1a, 0x09, 0x1e, 0x62, 0x38, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xe1, 0xc1, 0xa2, 0x23, 0xa4, 0xe3, 0xf1, 0xb0, 0x0b, 0xbb, 0xa1, 0xe3, 0xc8, 0x06, 0xcb, 0x00, 0x91, 0x0e, 0x47, 0xfb, 0x82, 0x60, 0x41, 0x32, 0xf0, 0x54, 0xdf, 0x41, 0x90, 0xf3, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xe4, 0x6b, 0x0f, 0x02, 0x13, 0xfb, 0x38, 0x34, 0xec, 0xc2, 0x6e, 0xe8, 0x38, 0xb2, 0xc1, 0xf2, 0x8f, 0xa5, 0xc3, 0xd1, 0xbe, 0xc1, 0x42, 0x13, 0xa3, 0x61, 0x17, 0x76, 0x43, 0xc7, 0x91, 0x0d, 0x16, 0xc0, 0x2c, 0x1d, 0x8e, 0xf6, 0x0d, 0x1a, 0x50, 0x4d, 0x19, 0x76, 0x61, 0x37, 0x74, 0x1c, 0xd9, 0x60, 0xc5, 0xcf, 0xd2, 0xe1, 0x68, 0xdf, 0xa0, 0x01, 0xd5, 0x94, 0x61, 0x17, 0x76, 0x43, 0xc7, 0x91, 0x0d, 0xd6, 0x8c, 0xfc, 0x1c, 0x8e, 0xf6, 0x0d, 0x8d, 0x04, 0x87, 0x5d, 0xd8, 0x0d, 0x1d, 0x47, 0x36, 0x58, 0xf3, 0xb4, 0x74, 0x38, 0xda, 0x17, 0x04, 0x0b, 0x92, 0x81, 0xe5, 0xbf, 0x41, 0xb4, 0xb0, 0x07, 0x85, 0xca, 0xd9, 0x21, 0xb9, 0x74, 0xd0, 0xa0, 0x85, 0xc9, 0xb0, 0x0b, 0xbb, 0xa1, 0xe3, 0xc8, 0x06, 0x4b, 0xdc, 0x96, 0x0e, 0x47, 0xfb, 0x06, 0xe5, 0x39, 0xc0, 0xb0, 0x0b, 0xbb, 0xa1, 0xe3, 0xc8, 0x06, 0x8b, 0x18, 0x97, 0x0e, 0x47, 0xfb, 0x82, 0x60, 0x83, 0x36, 0xa1, 0x53, 0x0e, 0x9a, 0xe3, 0x31, 0x19, 0x76, 0x61, 0x37, 0x74, 0x1c, 0xd9, 0x60, 0x19, 0xe7, 0xd2, 0xe1, 0x68, 0xdf, 0xa0, 0x50, 0x39, 0x1b, 0x76, 0x61, 0x37, 0x74, 0x1c, 0xd9, 0x60, 0xe9, 0xf0, 0xd2, 0xe1, 0x68, 0x5f, 0x10, 0x6c, 0xd0, 0x26, 0x74, 0xca, 0x41, 0xbb, 0x5a, 0x26, 0xc3, 0x2e, 0xec, 0x86, 0x8e, 0x23, 0x1b, 0x2c, 0xbb, 0x3d, 0x3a, 0x1c, 0xed, 0x0b, 0x82, 0x05, 0xc9, 0xc0, 0xd9, 0x77, 0x10, 0xe4, 0xfc, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x7e, 0xb0, 0x78, 0xca, 0x67, 0xf8, 0x8d, 0xe7, 0x07, 0x4b, 0xe7, 0x76, 0x8e, 0x43, 0xc3, 0x2e, 0xec, 0x86, 0x8e, 0x23, 0x1b, 0xac, 0x3c, 0x67, 0x3a, 0x1c, 0xed, 0x0b, 0xb2, 0x35, 0xe4, 0xb1, 0x17, 0x07, 0xc9, 0xc0, 0xd1, 0x37, 0x88, 0x16, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x1b, 0x3a, 0x07, 0x1d, 0xcf, 0x0f, 0x2b, 0xb4, 0xc7, 0xe3, 0x83, 0xa5, 0x73, 0x3b, 0xc3, 0x2e, 0xec, 0x86, 0x8e, 0x23, 0x1b, 0x2c, 0x70, 0x63, 0x3a, 0x1c, 0xed, 0x1b, 0x2c, 0x9d, 0xdb, 0x19, 0x76, 0x61, 0x37, 0x74, 0x1c, 0xd9, 0x60, 0x2d, 0x7a, 0xd3, 0xe1, 0x68, 0x5f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xe6, 0x07, 0xe5, 0x39, 0xc0, 0xc1, 0x82, 0xba, 0x9d, 0x61, 0x17, 0x76, 0x43, 0xc7, 0x91, 0x0d, 0xd6, 0x5c, 0x39, 0x1d, 0x8e, 0xf6, 0x05, 0xc9, 0x90, 0x41, 0xb4, 0x60, 0x3e, 0x08, 0x16, 0x24, 0x03, 0xf5, 0xea, 0x90, 0x5c, 0x3a, 0x34, 0x05, 0x3a, 0x58, 0x50, 0xb7, 0x33, 0xec, 0xc2, 0x6e, 0xe8, 0x38, 0xb2, 0xc1, 0xc2, 0x4e, 0xa7, 0xc3, 0xd1, 0xbe, 0x20, 0x58, 0x41, 0xb0, 0x41, 0x1a, 0x0e, 0xfc, 0xa1, 0x29, 0xd0, 0x20, 0x58, 0x90, 0x0c, 0x18, 0x7c, 0x7f, 0x87, 0xe4, 0xd2, 0xa1, 0x29, 0xd0, 0x20, 0x58, 0x90, 0x0c, 0x1c, 0x7d, 0x07, 0x01, 0xef, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xc2, 0x6e, 0xd0, 0xb6, 0xb0, 0xc9, 0x06, 0xeb, 0x1b, 0x8c, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0x60, 0x7e, 0x10, 0x52, 0xe0, 0x07, 0x4b, 0x38, 0xc9, 0x16, 0x76, 0x83, 0x56, 0x8d, 0x4d, 0x36, 0x58, 0xdf, 0x60, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x0d, 0xc6, 0x29, 0xc0, 0x20, 0xda, 0xd0, 0x22, 0xe9, 0x78, 0x7e, 0x88, 0xe1, 0x71, 0x68, 0xd8, 0x85, 0xdd, 0xd0, 0x71, 0x64, 0x83, 0xe5, 0xce, 0x47, 0x87, 0xa3, 0x7d, 0x83, 0x06, 0x54, 0x53, 0x86, 0x5d, 0xd8, 0x0d, 0x1d, 0x47, 0x36, 0x58, 0xdd, 0xf2, 0x74, 0x38, 0xda, 0x37, 0x68, 0x40, 0x35, 0x65, 0xd8, 0x85, 0xdd, 0xd0, 0x71, 0x64, 0x83, 0x55, 0x70, 0x47, 0x87, 0xa3, 0x7d, 0x41, 0xb6, 0x86, 0x3c, 0xf6, 0xe2, 0x20, 0xd8, 0x60, 0x2c, 0xe5, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x68, 0x07, 0xf0, 0xe4, 0xd0, 0x02, 0xe8, 0x38, 0x74, 0x3c, 0x3e, 0x58, 0x3a, 0xb7, 0x33, 0xec, 0xc2, 0x6e, 0xe8, 0x38, 0xb2, 0xc1, 0x62, 0xb0, 0xa7, 0xc3, 0xd1, 0xbe, 0x41, 0x79, 0x0e, 0x30, 0xec, 0xc2, 0x6e, 0xe8, 0x38, 0xb2, 0xc1, 0x32, 0x1b, 0xa4, 0xc3, 0xd1, 0xbe, 0xc1, 0xfa, 0x06, 0xa3, 0x61, 0x17, 0x76, 0x43, 0xc7, 0x91, 0x0d, 0x96, 0x44, 0x3e, 0x1d, 0x8e, 0xf6, 0x05, 0xc1, 0x06, 0xcd, 0x50, 0xa5, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x41, 0x79, 0x0e, 0x70, 0xd0, 0xac, 0x7c, 0xca, 0x71, 0x68, 0xd8, 0x85, 0xdd, 0xd0, 0x71, 0x64, 0x83, 0x05, 0x81, 0x4f, 0x87, 0xa3, 0x7d, 0x41, 0xb0, 0x41, 0x52, 0xe7, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x07, 0xed, 0x06, 0xa6, 0x1c, 0x87, 0x86, 0x5d, 0xd8, 0x0d, 0x1d, 0x47, 0x36, 0x58, 0x14, 0xfa, 0x74, 0x38, 0xda, 0x37, 0x58, 0x68, 0x62, 0x34, 0xec, 0xc2, 0x6e, 0xe8, 0x38, 0xb2, 0xc1, 0xb2, 0xd8, 0xa7, 0xc3, 0xd1, 0xbe, 0xb0, 0x0b, 0x82, 0x0d, 0x92, 0xe3, 0x57, 0x0e, 0x4d, 0x81, 0x16, 0x24, 0x43, 0x06, 0xd1, 0x06, 0x27, 0x78, 0xfa, 0xe3, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0x60, 0x64, 0xf6, 0x1e, 0x8f, 0x87, 0x5d, 0xd8, 0x0d, 0x1d, 0x47, 0x16, 0x6e, 0x83, 0xa5, 0xf5, 0x4f, 0x87, 0x68, 0x1e, 0x8e, 0xf6, 0x0d, 0xd6, 0x37, 0x18, 0x0d, 0xb2, 0x0d, 0xcd, 0xd7, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x51, 0xb8, 0x33, 0x48, 0x06, 0xd1, 0xa1, 0x7d, 0xcb, 0xb0, 0x0b, 0x77, 0x50, 0xaa, 0xf0, 0x2d, 0xc8, 0xd6, 0x90, 0xc7, 0x5e, 0x1c, 0x04, 0x1b, 0x8c, 0x96, 0xd9, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xcd, 0xdd, 0x9f, 0x0c, 0xbf, 0xf1, 0x7c, 0x83, 0x22, 0x52, 0xf2, 0xb0, 0x57, 0x78, 0x1c, 0x3a, 0x1e, 0x0f, 0xb2, 0x35, 0xe4, 0xb1, 0xc7, 0x00, 0x0f, 0x38, 0xb6, 0xb0, 0xbc, 0x96, 0x37, 0xb8, 0x32, 0xf7, 0x70, 0x8a, 0x1d, 0x24, 0x8c, 0x3e, 0x1c, 0x8f, 0x07, 0xd9, 0x1a, 0xd2, 0x40, 0xe3, 0x80, 0x0f, 0xc7, 0x16, 0x96, 0x1f, 0x52, 0x4b, 0xc7, 0xe3, 0x85, 0x5f, 0x10, 0x2c, 0x6e, 0xb0, 0x66, 0xd8, 0xe8, 0x20, 0x3c, 0x55, 0x17, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x51, 0xb8, 0x73, 0xb0, 0x24, 0x4e, 0x6c, 0xd8, 0x0d, 0x46, 0xbd, 0xe4, 0x1a, 0x8e, 0xf6, 0x41, 0xb0, 0x20, 0x19, 0x10, 0x76, 0x7f, 0x87, 0x15, 0xda, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x8b, 0xcc, 0xf5, 0x0f, 0x6b, 0xbf, 0xc7, 0xa1, 0x41, 0xb0, 0x20, 0x19, 0x88, 0xd7, 0x61, 0x85, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0xfe, 0x87, 0x71, 0x39, 0x0e, 0x1d, 0x8f, 0x07, 0xd9, 0x1a, 0xd2, 0x40, 0xe3, 0x80, 0x6f, 0x56, 0xe7, 0x46, 0x1e, 0x52, 0x4b, 0xc7, 0xe3, 0x41, 0xb0, 0x78, 0xd0, 0xca, 0x4c, 0xc9, 0xe2, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x06, 0x84, 0xdd, 0xdf, 0x21, 0xb9, 0x74, 0x48, 0xb4, 0x0e, 0x82, 0x05, 0xc1, 0xc2, 0x2f, 0x48, 0x06, 0x75, 0x07, 0x01, 0xef, 0x3f, 0x48, 0x06, 0xca, 0xdf, 0xf1, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x40, 0xaf, 0xbb, 0xc3, 0x0a, 0xed, 0x61, 0x5c, 0x8e, 0x43, 0xc3, 0x2e, 0xec, 0x06, 0xa3, 0x5e, 0x72, 0x43, 0x0c, 0x87, 0x5d, 0xb8, 0x0d, 0x16, 0xa1, 0x5a, 0x1d, 0x04, 0x59, 0xfc, 0x21, 0x9d, 0xbb, 0x21, 0xb1, 0xb9, 0x21, 0x9a, 0x07, 0xed, 0x13, 0x02, 0x1c, 0x8f, 0x37, 0x9c, 0x62, 0x2b, 0xfc, 0x82, 0x60, 0x83, 0x35, 0x2d, 0x47, 0x8b, 0x83, 0x60, 0x41, 0x32, 0xb0, 0x74, 0x77, 0x48, 0x2e, 0x1d, 0x8c, 0xe3, 0x90, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0x1c, 0xf0, 0xcf, 0xc2, 0xd2, 0xdc, 0x43, 0x6a, 0xe9, 0x78, 0xbc, 0x82, 0x60, 0x41, 0x32, 0x50, 0x7e, 0x0e, 0x2b, 0xb4, 0x83, 0x64, 0x70, 0xef, 0xd0, 0xbe, 0x65, 0x05, 0xc1, 0xe2, 0x06, 0x8b, 0xe2, 0x8c, 0x5a, 0x1c, 0x76, 0xe1, 0x0e, 0x1d, 0x12, 0x17, 0x04, 0x8b, 0xc3, 0x6e, 0x58, 0x41, 0xdd, 0xe0, 0x20, 0xde, 0x3d, 0x08, 0x16, 0x04, 0x1b, 0xb4, 0x8c, 0x5d, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x3d, 0x28, 0xf6, 0x20, 0x8e, 0x43, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0xd8, 0xbb, 0x1b, 0x44, 0x0b, 0x7b, 0x90, 0x02, 0x69, 0x7e, 0xc8, 0x56, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x28, 0x42, 0x13, 0x0e, 0xa9, 0x83, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x7c, 0x3e, 0x08, 0x01, 0xf0, 0x41, 0xb4, 0x60, 0x7d, 0x10, 0x3c, 0xdc, 0x87, 0xe4, 0xd2, 0xf1, 0x6d, 0x10, 0x2c, 0x08, 0x36, 0x68, 0x58, 0x94, 0x64, 0x90, 0x0c, 0x84, 0xee, 0x60, 0x51, 0x2b, 0xd1, 0x20, 0xd8, 0x60, 0x70, 0x57, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x87, 0xdd, 0x60, 0x10, 0x70, 0x6c, 0x48, 0x1d, 0x0c, 0x82, 0x05, 0xc1, 0x06, 0xcd, 0x14, 0x9a, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x0f, 0xce, 0x46, 0xcf, 0xc7, 0xa1, 0x41, 0xb0, 0x20, 0xd8, 0xa0, 0xf9, 0x5b, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x47, 0x07, 0xee, 0x83, 0xd2, 0xf6, 0xe6, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x0d, 0x4a, 0x86, 0xb0, 0x41, 0xb4, 0x41, 0xe9, 0xde, 0x71, 0x48, 0x2e, 0x1d, 0xdf, 0x8e, 0x43, 0xc7, 0xe3, 0xe1, 0x17, 0x04, 0x1b, 0x2c, 0x34, 0x31, 0x5a, 0x1c, 0x04, 0x0b, 0xbf, 0x20, 0x58, 0x90, 0x0c, 0xdc, 0x5f, 0x07, 0xc3, 0x3f, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0xe0, 0xb8, 0x2e, 0x77, 0x10, 0xf0, 0xfe, 0xc7, 0xa1, 0xe3, 0xdb, 0x20, 0xd8, 0x60, 0xe4, 0x3f, 0x0c, 0x82, 0x85, 0x5f, 0x10, 0x2c, 0x48, 0x06, 0x56, 0xfa, 0x0e, 0x86, 0xa3, 0xf4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x30, 0x5c, 0x07, 0x27, 0xa1, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0xce, 0xee, 0x72, 0x07, 0xc3, 0xd0, 0xe7, 0xa0, 0x25, 0x8b, 0x95, 0xe3, 0xd0, 0x71, 0xe8, 0xf8, 0x36, 0x08, 0x16, 0x17, 0x04, 0x0b, 0x82, 0x0d, 0xc6, 0x1d, 0xd4, 0xb0, 0x1b, 0x8c, 0x7a, 0xc9, 0x05, 0xd9, 0x02, 0xfe, 0x1c, 0xdb, 0xdb, 0xb9, 0x21, 0x86, 0x83, 0x60, 0x41, 0x32, 0x90, 0xfe, 0x39, 0x18, 0x8e, 0xd2, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x40, 0x78, 0x0e, 0x86, 0xa3, 0xf4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x8b, 0x1b, 0x26, 0x6e, 0x0d, 0x75, 0x7c, 0xc3, 0xcb, 0x77, 0x13, 0x78, 0x77, 0x65, 0xe3, 0x86, 0x3a, 0xb2, 0x86, 0x19, 0x5a, 0xc3, 0xc4, 0x6d, 0x98, 0xce, 0x0d, 0x33, 0xb4, 0x86, 0x89, 0x5b, 0xc3, 0xdc, 0x6f, 0x10, 0xae, 0x08, 0x1b, 0x8a, 0xe9, 0x6a, 0x98, 0xa1, 0x35, 0x4c, 0xdc, 0x1a, 0xe6, 0x7e, 0x83, 0x70, 0x45, 0xd8, 0x30, 0x43, 0x1b, 0x2a, 0xe1, 0x86, 0x13, 0x61, 0x43, 0x25, 0xdc, 0x60, 0x31, 0x1b, 0xd4, 0x32, 0xcb, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0xcb, 0xf0, 0xb3, 0x37, 0x7c, 0x90, 0xb3, 0x41, 0x13, 0xb2, 0x10, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xf6, 0xbc, 0x0b, 0x0e, 0x8e, 0x31, 0x67, 0x07, 0x4d, 0xb6, 0x59, 0x1c, 0xac, 0xa4, 0xd3, 0x3f, 0x9c, 0x62, 0x87, 0x53, 0xec, 0x70, 0x1e, 0x1f, 0x34, 0x7b, 0x09, 0x71, 0x10, 0x4a, 0x96, 0x1b, 0x66, 0x68, 0x0d, 0x13, 0xb7, 0x61, 0x3a, 0x0f, 0xda, 0xb0, 0x59, 0xd9, 0x70, 0x22, 0x6c, 0xd0, 0x00, 0xd3, 0xca, 0x41, 0xab, 0xae, 0x10, 0x07, 0x21, 0xa5, 0xbc, 0x41, 0xc3, 0x97, 0x10, 0x6b, 0x98, 0xb8, 0x0d, 0x5a, 0xd3, 0x84, 0x38, 0x08, 0x29, 0xe5, 0x0d, 0x16, 0xb3, 0x41, 0x2d, 0xb3, 0x6c, 0xf8, 0xa8, 0xfd, 0xe0, 0x44, 0xf4, 0x71, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0x86, 0x13, 0x61, 0x83, 0xe6, 0x61, 0x56, 0x36, 0x58, 0xcc, 0x06, 0xb5, 0xcc, 0xb2, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0x62, 0xb3, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x94, 0x10, 0xdf, 0x60, 0x05, 0x99, 0xfe, 0x86, 0x77, 0x7b, 0x36, 0x08, 0x1c, 0xbd, 0x83, 0x46, 0x82, 0x21, 0x0e, 0x8e, 0x31, 0x67, 0x1b, 0x14, 0x7c, 0x98, 0x6b, 0x70, 0x62, 0xbf, 0x59, 0x83, 0x52, 0x42, 0x7c, 0xe3, 0xf9, 0xc1, 0xb9, 0xec, 0xe3, 0x38, 0x74, 0x1c, 0x3a, 0x58, 0x49, 0xa7, 0x7f, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0x41, 0x2b, 0x5e, 0x2b, 0x8b, 0x07, 0xad, 0xb9, 0xac, 0x1c, 0xf6, 0x0a, 0x8f, 0x43, 0xc7, 0xa1, 0xc3, 0x29, 0x36, 0x08, 0x16, 0x24, 0x03, 0xe7, 0xdd, 0xc1, 0xd9, 0xcb, 0xf8, 0x60, 0x60, 0x8b, 0x0e, 0x82, 0xc5, 0x61, 0x37, 0xac, 0xef, 0x6d, 0x70, 0x96, 0x3d, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0x02, 0xe7, 0xff, 0x20, 0x58, 0x90, 0x0c, 0x3c, 0xd5, 0x77, 0x70, 0x12, 0x3a, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xc8, 0xda, 0x1d, 0x9c, 0xca, 0x91, 0x8f, 0x43, 0x07, 0x45, 0xcd, 0xd9, 0xf1, 0x6d, 0x61, 0x37, 0x08, 0x3e, 0xe6, 0x0d, 0x89, 0xa9, 0x61, 0x17, 0x76, 0x83, 0xe2, 0xb2, 0x69, 0x61, 0x37, 0x58, 0x36, 0x18, 0xb4, 0xb0, 0x1b, 0x04, 0xdb, 0xf3, 0x06, 0x41, 0xd2, 0x7c, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0x5f, 0x43, 0x0c, 0x07, 0xc1, 0x86, 0xac, 0xdd, 0x20, 0x58, 0x41, 0xb0, 0x20, 0x19, 0x50, 0xaa, 0xf7, 0x1d, 0x9c, 0xbd, 0x8c, 0x0f, 0x46, 0xc2, 0xea, 0x20, 0xd8, 0xa0, 0xbd, 0xc7, 0x95, 0x83, 0x81, 0x2d, 0x3a, 0x08, 0x16, 0x04, 0x0b, 0xbf, 0x20, 0x58, 0x90, 0x0c, 0x0c, 0xd5, 0xc1, 0x39, 0xef, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x10, 0xbe, 0x3b, 0x07, 0xa7, 0x33, 0xe4, 0x83, 0x85, 0xc9, 0x3f, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xd0, 0xf1, 0x6d, 0x10, 0x6c, 0x88, 0xe1, 0x20, 0x58, 0x1c, 0x76, 0x61, 0x17, 0x04, 0x1b, 0x1c, 0x39, 0x95, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x07, 0xc3, 0x3c, 0xfd, 0x38, 0xb4, 0x21, 0x86, 0xc3, 0x2e, 0x08, 0x36, 0x38, 0x72, 0x2a, 0x1f, 0x14, 0x39, 0x36, 0x87, 0x74, 0xee, 0x82, 0x60, 0x41, 0x32, 0x90, 0xbf, 0x3b, 0x38, 0x50, 0x24, 0x1f, 0xb4, 0x17, 0x1a, 0x32, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x0d, 0x0a, 0xff, 0xa0, 0x83, 0x03, 0x45, 0xf2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0xe0, 0xcf, 0xc1, 0x69, 0x43, 0x79, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0xd9, 0x71, 0x48, 0xd5, 0x1c, 0x87, 0x0e, 0xce, 0xb2, 0xc7, 0xc7, 0xa1, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x6c, 0x50, 0x44, 0x77, 0x1d, 0x9c, 0x36, 0x94, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xf6, 0x0a, 0x0f, 0x06, 0xef, 0xe4, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xe2, 0x61, 0x37, 0x38, 0x4f, 0xf0, 0x6e, 0x30, 0x4a, 0x39, 0x0f, 0x02, 0x13, 0xfb, 0xa0, 0x80, 0x8f, 0x3a, 0xbe, 0x0d, 0x82, 0x0d, 0x56, 0x7f, 0x4a, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x88, 0xd4, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x0d, 0x0a, 0xff, 0xa0, 0x83, 0x73, 0xde, 0xf1, 0x41, 0x3a, 0x21, 0xcf, 0x71, 0x68, 0x90, 0xad, 0x41, 0x5b, 0x20, 0x2b, 0x1b, 0x62, 0x38, 0x08, 0x16, 0x24, 0x03, 0xe9, 0x9f, 0x83, 0xe1, 0x1f, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x84, 0xe7, 0x60, 0xf8, 0xc7, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0xb8, 0x61, 0xe2, 0xd6, 0x50, 0xc7, 0x37, 0xbc, 0x7c, 0x37, 0x01, 0x1e, 0x64, 0x65, 0x61, 0x72, 0x2d, 0x6d, 0x61, 0x6e, 0xf9, 0x86, 0x89, 0x5b, 0xc3, 0xdc, 0x0f, 0xee, 0x6e, 0xa8, 0x23, 0x1b, 0xb4, 0xb4, 0xb4, 0x72, 0xd0, 0x10, 0x2c, 0xc4, 0x86, 0x89, 0x5b, 0xc3, 0xdc, 0x0f, 0xce, 0x6e, 0xa8, 0x23, 0x6b, 0x98, 0xa1, 0x35, 0x4c, 0xdc, 0x86, 0xe9, 0xdc, 0x30, 0x43, 0x6b, 0x98, 0xb8, 0x35, 0xcc, 0xfd, 0x06, 0xc1, 0xde, 0x76, 0xd0, 0xd2, 0xd2, 0xca, 0xe1, 0x3c, 0x3e, 0x68, 0xdd, 0x19, 0x64, 0xc3, 0x89, 0xb0, 0x41, 0x93, 0xed, 0x2b, 0x07, 0x8d, 0x71, 0x83, 0x1c, 0xb4, 0xdf, 0x0d, 0xb2, 0x61, 0xee, 0x07, 0x97, 0x0f, 0xda, 0x60, 0x5f, 0x59, 0x3c, 0x68, 0x59, 0x7c, 0xe5, 0x90, 0xaa, 0x39, 0x0e, 0x1d, 0x87, 0x0e, 0x31, 0x5c, 0xd8, 0x85, 0x5d, 0xb8, 0x0d, 0x06, 0x22, 0xf5, 0xc1, 0x78, 0xd3, 0xd9, 0x10, 0xc3, 0x61, 0x17, 0x76, 0x83, 0xb5, 0x25, 0xff, 0x1b, 0x62, 0x38, 0xec, 0x06, 0xab, 0x58, 0xfe, 0x37, 0xc4, 0x70, 0xd8, 0x0d, 0x86, 0x32, 0xeb, 0xc2, 0x6e, 0xb0, 0xb6, 0xea, 0x7f, 0x43, 0x0c, 0x0f, 0x56, 0xfc, 0xfc, 0x1f, 0x8e, 0xf6, 0x43, 0x3a, 0x77, 0x83, 0x92, 0xa1, 0x69, 0xd8, 0x85, 0x5d, 0xb8, 0x0d, 0xd6, 0x37, 0x18, 0x1d, 0x0c, 0x44, 0xea, 0x0d, 0x31, 0x1c, 0x76, 0xe1, 0x36, 0x58, 0x68, 0x62, 0x74, 0x30, 0x10, 0xa9, 0x37, 0xc4, 0x70, 0xd8, 0x85, 0x1e, 0x0c, 0x44, 0xea, 0x85, 0x5d, 0xb8, 0x0d, 0xd6, 0x74, 0x4b, 0x1d, 0x94, 0x04, 0x0d, 0x1b, 0x62, 0x38, 0xdc, 0x06, 0x0b, 0x2f, 0x8c, 0x0e, 0x4a, 0x82, 0x86, 0xc3, 0xd1, 0xbe, 0xf0, 0x0b, 0x82, 0x0d, 0xd2, 0x2d, 0xa5, 0x0f, 0x52, 0x94, 0x9f, 0x0f, 0xce, 0xc1, 0xdf, 0xc3, 0x2e, 0xec, 0x06, 0x4d, 0x52, 0xb0, 0x2c, 0xdc, 0x06, 0x0b, 0x67, 0x8c, 0x0e, 0x4a, 0x82, 0x86, 0xc3, 0xd1, 0xbe, 0xf0, 0x1b, 0xb4, 0xc9, 0xc1, 0x32, 0xec, 0xc2, 0x2e, 0xf4, 0xe0, 0x2c, 0x7b, 0xbc, 0x70, 0x1b, 0x2c, 0x9c, 0x31, 0x9a, 0x20, 0xf9, 0x7f, 0x38, 0xda, 0x17, 0x24, 0xc3, 0x0c, 0xa2, 0x05, 0xc6, 0x7f, 0xf8, 0x05, 0xd1, 0x82, 0xfb, 0x87, 0x18, 0x0e, 0xa2, 0x05, 0xf5, 0x07, 0x23, 0xff, 0xe1, 0x78, 0xbc, 0xc1, 0xc2, 0x19, 0xa3, 0x05, 0xc9, 0x60, 0x36, 0x88, 0x16, 0x18, 0xff, 0x83, 0xb4, 0x0b, 0x86, 0x41, 0xb4, 0xe0, 0xfe, 0x20, 0x58, 0x90, 0x0c, 0x1c, 0x7f, 0x83, 0x68, 0x83, 0x05, 0xb1, 0x25, 0x07, 0xc3, 0xd0, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0xf3, 0x2d, 0x29, 0x87, 0xc6, 0xf3, 0xc7, 0xa1, 0x43, 0x72, 0x69, 0x90, 0x0c, 0x66, 0x83, 0x68, 0x81, 0xf1, 0x3f, 0x28, 0x1b, 0x84, 0x06, 0xd1, 0x82, 0xfb, 0x83, 0x60, 0x83, 0xe6, 0x6d, 0x58, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x34, 0xdf, 0x92, 0x72, 0x30, 0x14, 0x8b, 0x8e, 0x43, 0x87, 0xe4, 0xd2, 0x21, 0xb9, 0x74, 0x38, 0xc5, 0x86, 0x5d, 0xd8, 0x0d, 0x9a, 0xa4, 0x60, 0x59, 0xb8, 0x0d, 0x16, 0xd2, 0x4b, 0x1d, 0x94, 0x04, 0x0d, 0x87, 0xa3, 0x7d, 0x41, 0x32, 0x98, 0x0d, 0xa2, 0x05, 0xc6, 0xff, 0xa0, 0x40, 0xdf, 0x19, 0x44, 0x0b, 0xe6, 0x1b, 0xa4, 0x37, 0x36, 0x1c, 0xf6, 0x0a, 0x8f, 0xc7, 0xc3, 0x2e, 0xec, 0x06, 0x4d, 0x52, 0xb0, 0x2c, 0xdc, 0x06, 0x4b, 0x53, 0xa6, 0x0e, 0x4a, 0x82, 0x86, 0xc3, 0xd1, 0xbe, 0x20, 0x58, 0x90, 0x0c, 0x9c, 0x7d, 0x07, 0xc3, 0x3f, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x89, 0x22, 0x7a, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0x30, 0x1b, 0x44, 0x1b, 0x34, 0x09, 0xc5, 0x72, 0x3c, 0x3e, 0x0e, 0x0d, 0xbb, 0xb0, 0x1b, 0x34, 0x49, 0xc1, 0xb2, 0x70, 0x1b, 0x2c, 0x65, 0x98, 0x3a, 0x28, 0x09, 0x1a, 0x0e, 0x47, 0xfb, 0x82, 0x60, 0x83, 0x66, 0x17, 0x4e, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x0d, 0x06, 0xc9, 0xcb, 0xc1, 0x31, 0xab, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x8d, 0x2e, 0x87, 0x0c, 0x92, 0x81, 0xd0, 0x0d, 0xa2, 0x85, 0x9d, 0xe0, 0xfa, 0x3f, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0xd0, 0xc4, 0x68, 0x71, 0x90, 0x0c, 0x66, 0x83, 0x68, 0x81, 0xf1, 0x3f, 0xa4, 0x0e, 0x0e, 0xc9, 0xa5, 0xe3, 0xf1, 0x71, 0xe8, 0x38, 0x34, 0xc8, 0xd6, 0xd0, 0x7e, 0x7d, 0xd8, 0x0d, 0x9a, 0xa4, 0x60, 0x59, 0xb8, 0x0d, 0x96, 0x2b, 0x4d, 0x1d, 0x94, 0x04, 0x0d, 0x87, 0xa3, 0x7d, 0xf8, 0x05, 0xc1, 0x06, 0xe9, 0x96, 0xd2, 0x07, 0xe9, 0x82, 0x43, 0xc3, 0x2e, 0xec, 0x06, 0xad, 0x9c, 0xb0, 0x2c, 0xdc, 0x06, 0xcb, 0x95, 0xa6, 0x0e, 0x1a, 0x4f, 0x61, 0x39, 0x1c, 0xed, 0x0b, 0xbb, 0x20, 0x58, 0x10, 0x6c, 0xd0, 0x9e, 0xcf, 0xc0, 0x20, 0x19, 0x98, 0xbe, 0x41, 0xb4, 0xb0, 0x07, 0xc9, 0x59, 0x21, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x37, 0x48, 0xbb, 0x60, 0x38, 0x28, 0x1b, 0x84, 0x8e, 0x43, 0x0b, 0xbf, 0x20, 0xd8, 0x20, 0xdd, 0x7d, 0xe7, 0x20, 0x45, 0xf9, 0xf9, 0xe0, 0x1c, 0xfc, 0x3d, 0xec, 0x82, 0x60, 0x41, 0xb0, 0x41, 0x7b, 0x3e, 0x03, 0x83, 0x64, 0x60, 0xfa, 0x0e, 0x46, 0x8d, 0xd1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x1b, 0x9c, 0x65, 0x8f, 0x0f, 0x06, 0x22, 0xf5, 0x71, 0x68, 0xe1, 0x17, 0x04, 0x1b, 0xa4, 0xbb, 0xef, 0x1c, 0xa4, 0x0b, 0x0e, 0x1d, 0x9c, 0x83, 0xbf, 0x07, 0xc1, 0x82, 0x64, 0x30, 0x3b, 0x18, 0x86, 0x3e, 0x83, 0x60, 0x41, 0x32, 0x98, 0x0d, 0xa2, 0x05, 0xc6, 0xff, 0x38, 0x34, 0x88, 0x16, 0x76, 0x10, 0x2c, 0x08, 0x16, 0x24, 0x03, 0x6b, 0x7d, 0x07, 0xe7, 0xbc, 0xe3, 0x41, 0x32, 0x38, 0x75, 0x30, 0xc8, 0x20, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x9c, 0x33, 0x93, 0x0f, 0xce, 0xb2, 0xc7, 0xc7, 0xa1, 0xc3, 0x0a, 0xed, 0xb0, 0x0b, 0x77, 0x30, 0xc4, 0x3b, 0x37, 0x38, 0x67, 0x26, 0x1f, 0x87, 0x0e, 0xa7, 0xd8, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x61, 0x37, 0x68, 0xb5, 0x8a, 0x65, 0x41, 0x32, 0xe4, 0xa0, 0x71, 0x30, 0x96, 0x61, 0x37, 0x68, 0x56, 0x89, 0x65, 0x41, 0x32, 0x64, 0x10, 0x6d, 0xd0, 0x24, 0x14, 0xcb, 0x20, 0x5a, 0x50, 0x3f, 0x08, 0x16, 0x04, 0x1b, 0xb4, 0xe7, 0x33, 0x30, 0x48, 0x06, 0xc6, 0xef, 0x60, 0x90, 0x41, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x83, 0xb4, 0x0b, 0x86, 0x43, 0xea, 0xe0, 0x78, 0x7c, 0x1c, 0x3a, 0x1e, 0x0f, 0xbb, 0x41, 0xbb, 0x63, 0x2c, 0x0b, 0x82, 0x05, 0xc1, 0x82, 0x60, 0x83, 0xf6, 0x7c, 0x06, 0x0e, 0xda, 0x96, 0x63, 0x19, 0x04, 0x8b, 0xc3, 0x6e, 0x58, 0xdf, 0xdb, 0x90, 0x98, 0x1a, 0x04, 0x1b, 0x14, 0x2a, 0x67, 0xc3, 0x2e, 0x08, 0x16, 0x24, 0x83, 0x5b, 0x07, 0x27, 0xa1, 0xe3, 0xc3, 0x46, 0xed, 0xc6, 0xa1, 0x41, 0xb0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x18, 0xff, 0x43, 0xd6, 0xee, 0xb0, 0x42, 0xbb, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x06, 0xd6, 0xfa, 0x0e, 0x4e, 0x1b, 0xca, 0x83, 0x64, 0x20, 0x5c, 0x87, 0xe4, 0xdc, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0xd0, 0x8c, 0xe7, 0x38, 0xb4, 0x04, 0xe5, 0xef, 0x30, 0x2e, 0xc7, 0xb7, 0x41, 0xb4, 0xc0, 0xf8, 0x0f, 0x82, 0x05, 0xc9, 0xc0, 0xd1, 0x77, 0x70, 0xcc, 0x2a, 0x3e, 0x18, 0x51, 0xb8, 0x83, 0x68, 0x83, 0x51, 0xf5, 0x7f, 0x3c, 0x1f, 0x76, 0x83, 0xe6, 0xfc, 0x58, 0x16, 0x76, 0x43, 0xea, 0x60, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x30, 0xfe, 0x83, 0x64, 0x30, 0x3b, 0x68, 0x01, 0x87, 0xe5, 0x78, 0x7c, 0x3c, 0x1e, 0x64, 0x1b, 0x9a, 0xaf, 0x1f, 0x8f, 0x8f, 0xc7, 0x83, 0x6c, 0x0d, 0x79, 0xec, 0xc5, 0x41, 0xb0, 0x41, 0xc3, 0x22, 0x2b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x9a, 0x3c, 0x59, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x71, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x04, 0xf8, 0xc8, 0x95, 0x91, 0xbd, 0xb5, 0xb4, 0x85, 0xd1, 0x8d, 0xa1, 0xc3, 0x6f, 0x3c, 0x1f, 0x0f, 0xda, 0x0e, 0x68, 0x39, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0x07, 0xa7, 0x15, 0xdc, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0x1c, 0xf0, 0xe5, 0xca, 0xc8, 0xde, 0x43, 0x6a, 0xe9, 0x78, 0xbc, 0xf0, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x76, 0x41, 0xb0, 0x20, 0x19, 0x50, 0xbc, 0xf7, 0x1d, 0x0c, 0x43, 0x9f, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x54, 0xcd, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xed, 0x98, 0xaa, 0x2c, 0x0e, 0x82, 0x05, 0xc1, 0x06, 0xab, 0xec, 0xfe, 0x07, 0xc9, 0xc0, 0xf4, 0x0d, 0xa2, 0x85, 0x3d, 0x28, 0x09, 0x1a, 0x8e, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x83, 0x24, 0x12, 0xef, 0xe3, 0xd0, 0xf1, 0xf8, 0x38, 0xb4, 0x20, 0x5b, 0x43, 0x1e, 0x7b, 0x0c, 0xf0, 0x90, 0x2b, 0x9b, 0xa3, 0x6b, 0x61, 0x7b, 0x7b, 0x83, 0x0f, 0xa7, 0xd8, 0xf0, 0x0b, 0xa2, 0x05, 0xe7, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x86, 0x45, 0x49, 0x06, 0xc9, 0x40, 0xec, 0x0e, 0x42, 0x0e, 0xff, 0xd0, 0xa8, 0xe5, 0x78, 0x3c, 0x08, 0x36, 0x58, 0x73, 0xb4, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0x61, 0x51, 0x92, 0x41, 0x32, 0x10, 0xba, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x82, 0x0d, 0x1a, 0x16, 0x25, 0x39, 0x18, 0x9a, 0x54, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xd6, 0x42, 0xed, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xa4, 0x6a, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0xc7, 0x54, 0x65, 0x71, 0x10, 0x2c, 0x48, 0x06, 0xd2, 0x77, 0x83, 0x68, 0x83, 0x11, 0x06, 0x70, 0xc8, 0x56, 0x1c, 0x3a, 0x68, 0x1c, 0x8f, 0x8f, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x07, 0x7c, 0xb9, 0xb2, 0x39, 0xfa, 0x90, 0x5a, 0x3a, 0x1e, 0x2f, 0xfc, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x6c, 0xd0, 0x5c, 0x5e, 0xca, 0x20, 0x19, 0x44, 0x87, 0xf4, 0xeb, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0xf8, 0x65, 0x70, 0x6c, 0xe1, 0x21, 0xb5, 0x74, 0x3c, 0x1e, 0x04, 0x8b, 0x1b, 0x0e, 0x85, 0x83, 0x56, 0x66, 0x4a, 0x16, 0x07, 0xd9, 0x86, 0xb8, 0x0c, 0x82, 0x0d, 0x9a, 0xd5, 0x16, 0x19, 0x76, 0xe1, 0x36, 0x58, 0x01, 0x29, 0x75, 0xc8, 0xda, 0x2d, 0xfc, 0x82, 0x60, 0x83, 0x76, 0x2c, 0x55, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x5a, 0x00, 0x1d, 0x1a, 0x7e, 0x1d, 0x87, 0x8e, 0xe7, 0x83, 0x6c, 0x0d, 0xed, 0xd7, 0x87, 0xdb, 0x60, 0x2d, 0xa5, 0xd4, 0x21, 0x6b, 0x37, 0xfc, 0x82, 0x60, 0x41, 0x32, 0x20, 0xec, 0xfe, 0x06, 0xd1, 0x06, 0x0d, 0x3e, 0x93, 0x1c, 0x56, 0x68, 0x0f, 0x9a, 0xea, 0x6a, 0x39, 0x9e, 0x1f, 0x8f, 0x07, 0xc1, 0xe2, 0x06, 0x6b, 0x86, 0x8d, 0x0e, 0x96, 0x64, 0x40, 0x2d, 0x0e, 0xbb, 0x41, 0x73, 0xd0, 0x00, 0x1b, 0x12, 0x53, 0xc3, 0x2e, 0xdc, 0x06, 0x4b, 0xcb, 0x8d, 0x0e, 0xd1, 0xdc, 0x70, 0xae, 0x0f, 0xbb, 0x70, 0x1b, 0xac, 0x16, 0x36, 0x3a, 0x44, 0x73, 0x43, 0x62, 0x6a, 0xd8, 0x85, 0xdb, 0x60, 0x31, 0xb2, 0xd1, 0x21, 0x9a, 0x2b, 0xdc, 0x06, 0x8b, 0x86, 0xb3, 0x0e, 0xe3, 0x72, 0x38, 0xda, 0x07, 0xd9, 0x1a, 0xda, 0xaf, 0x0f, 0xb7, 0xc1, 0x9a, 0x6b, 0xa3, 0x43, 0x34, 0x17, 0x6e, 0x83, 0xc5, 0xd5, 0x59, 0x87, 0x71, 0x39, 0x1c, 0xed, 0xc7, 0xe3, 0x05, 0xc1, 0x06, 0x4d, 0x22, 0x0a, 0x2c, 0x0e, 0x82, 0x05, 0xc1, 0x06, 0xad, 0x7a, 0xa5, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x08, 0x4c, 0xec, 0x85, 0xdf, 0x78, 0xbe, 0xa1, 0x93, 0xda, 0x86, 0x26, 0x5c, 0x07, 0x4b, 0x91, 0xb3, 0x36, 0x08, 0x4c, 0xec, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x38, 0x9b, 0x04, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x34, 0x2e, 0xda, 0x20, 0xec, 0xa9, 0x0f, 0x4a, 0xec, 0xc1, 0xe3, 0xd0, 0x41, 0x89, 0x3d, 0x78, 0x1c, 0x1a, 0x04, 0x0b, 0x82, 0x05, 0xc9, 0x80, 0xb0, 0xea, 0x3b, 0x08, 0x78, 0xff, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xf8, 0x2f, 0xfc, 0xc6, 0xf3, 0x0d, 0x8d, 0x8b, 0x36, 0x08, 0x7b, 0xea, 0x83, 0xa5, 0xc8, 0x59, 0x1b, 0xe2, 0xbf, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0xa0, 0xd4, 0x1d, 0x56, 0x68, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x9a, 0x0e, 0x1d, 0x34, 0x2b, 0x5b, 0x72, 0x1c, 0x3a, 0x48, 0xf4, 0x54, 0x38, 0x0e, 0x0d, 0x82, 0x05, 0xc1, 0x82, 0x64, 0xa0, 0x5c, 0x0d, 0xa2, 0x0d, 0x46, 0x04, 0xd5, 0x21, 0x5b, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0x3a, 0xd8, 0x20, 0xcd, 0x3d, 0xe3, 0x20, 0xd1, 0x5b, 0xe1, 0x38, 0x74, 0x30, 0x96, 0x7d, 0x8e, 0xc7, 0x2b, 0xfc, 0x82, 0x60, 0x83, 0xf6, 0xd9, 0x00, 0x16, 0x87, 0xdd, 0xf0, 0x08, 0xc0, 0x86, 0xbd, 0xc2, 0x41, 0xb0, 0x82, 0x60, 0x83, 0x65, 0xb2, 0x41, 0x87, 0x0e, 0x1a, 0x83, 0x60, 0x41, 0x32, 0xe8, 0x3b, 0x18, 0xfe, 0xb1, 0x87, 0x0e, 0x1a, 0x83, 0x60, 0x43, 0x0c, 0x07, 0xc1, 0xe2, 0xb0, 0x1b, 0x34, 0x5c, 0x13, 0xb0, 0xc1, 0xfa, 0x06, 0xa3, 0x61, 0x37, 0x68, 0xdb, 0x29, 0x60, 0x61, 0x17, 0x6e, 0x43, 0x2b, 0xf1, 0x43, 0xd6, 0x6e, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x98, 0x1f, 0x94, 0x34, 0x0d, 0x83, 0x68, 0x41, 0x7a, 0xc8, 0xd7, 0x1e, 0x56, 0x68, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0x60, 0x7e, 0x50, 0x8e, 0x35, 0x1c, 0xb4, 0x5c, 0xdc, 0x32, 0xec, 0x06, 0x6d, 0xa6, 0x05, 0x2c, 0xec, 0xc2, 0x6d, 0xe8, 0x4f, 0x7e, 0xc8, 0xda, 0x2d, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x81, 0xda, 0x77, 0x10, 0xe4, 0xfc, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x82, 0x14, 0xff, 0xa0, 0x05, 0xc6, 0x80, 0xe3, 0xd0, 0x20, 0x58, 0xd8, 0x85, 0xdb, 0x70, 0xb4, 0x1f, 0xd6, 0x7e, 0x37, 0x1c, 0xed, 0x83, 0x60, 0x41, 0x32, 0x98, 0x1d, 0x9c, 0xbd, 0x8c, 0x0f, 0x1a, 0x22, 0x13, 0x18, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf9, 0xb0, 0x0b, 0xbb, 0x70, 0x1b, 0x12, 0x53, 0x87, 0xd4, 0xc1, 0x86, 0x18, 0x0e, 0xbb, 0xb0, 0x1b, 0xa2, 0xb9, 0xb0, 0x1b, 0x1c, 0xf8, 0x98, 0x0f, 0xe9, 0xdc, 0xc3, 0xd1, 0xbe, 0x21, 0x86, 0xc3, 0x2e, 0xec, 0x86, 0x71, 0x59, 0xd8, 0x85, 0xdb, 0x38, 0x74, 0xe8, 0x4f, 0x7e, 0x48, 0xe7, 0x1e, 0x8e, 0xf6, 0x43, 0x3a, 0x77, 0x83, 0x13, 0x45, 0xf4, 0x20, 0x5b, 0x43, 0x1e, 0x7b, 0x71, 0x43, 0xee, 0x7b, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x71, 0x1c, 0x1c, 0x1e, 0x3c, 0x1c, 0x3c, 0x1f, 0x9c, 0x1d, 0xfc, 0x1d, 0x3c, 0x1c, 0x9c, 0x1c, 0xb4, 0x0d, 0x2e, 0x0e, 0xce, 0x0e, 0xfe, 0x0e, 0x3e, 0x1e, 0x24, 0x51, 0x57, 0x1d, 0xdf, 0x8e, 0xc7, 0xc3, 0x2e, 0xdc, 0x06, 0xa3, 0xd5, 0xfc, 0x60, 0x31, 0xb2, 0xd1, 0x82, 0x60, 0x41, 0x32, 0x90, 0xee, 0x3b, 0x18, 0x8e, 0xd2, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xec, 0x86, 0x68, 0x2e, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xf3, 0x83, 0x13, 0x45, 0xf4, 0x20, 0x5a, 0x90, 0x1e, 0x5a, 0x89, 0x1f, 0x04, 0x39, 0xff, 0xc1, 0x42, 0x13, 0xa3, 0xe1, 0x37, 0x9e, 0x0f, 0xbb, 0x61, 0x5c, 0x16, 0x24, 0x43, 0x06, 0xd1, 0x06, 0x4d, 0x09, 0xb8, 0x0c, 0xa2, 0x05, 0xe9, 0xa1, 0x3f, 0xf9, 0x41, 0x90, 0xf3, 0x1f, 0x2c, 0x34, 0x31, 0x3a, 0x0e, 0x1d, 0x4e, 0xb1, 0x41, 0xb4, 0x20, 0x3d, 0x24, 0x66, 0x0e, 0x82, 0x9c, 0xff, 0x60, 0xa1, 0x89, 0xd1, 0xb0, 0x1b, 0xb4, 0x04, 0x1c, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0x1c, 0x7d, 0x07, 0xc3, 0xd0, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0xd9, 0x60, 0x90, 0xbc, 0x1c, 0x9c, 0x84, 0x8e, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x34, 0x1e, 0x1d, 0x30, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x42, 0x13, 0xa3, 0xc5, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x10, 0xfe, 0x43, 0xea, 0xe0, 0x90, 0x5c, 0x3a, 0x1e, 0x1f, 0x87, 0x8e, 0x43, 0xc3, 0x6e, 0xd0, 0xf0, 0x79, 0xc0, 0xc2, 0x2e, 0x08, 0x16, 0x04, 0x1b, 0x2c, 0xa8, 0xdd, 0x3f, 0x68, 0xb1, 0x80, 0xe4, 0x60, 0xad, 0x6b, 0xc9, 0x06, 0xeb, 0x1b, 0x8c, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0x40, 0xf8, 0x0f, 0xd6, 0x47, 0x3a, 0x0c, 0xa2, 0x85, 0x1d, 0x04, 0x0b, 0x82, 0x0d, 0x16, 0xd4, 0xee, 0x1f, 0x14, 0x8c, 0x0e, 0x07, 0x6b, 0x5d, 0x4b, 0x8e, 0xc7, 0xc3, 0x6e, 0xd0, 0x96, 0x4b, 0xc0, 0x06, 0xeb, 0x1b, 0x8c, 0x86, 0xdd, 0xa0, 0x39, 0x99, 0x80, 0x0d, 0x16, 0x9a, 0x18, 0x0d, 0xb2, 0x0d, 0xcd, 0xd7, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0x41, 0x7b, 0x2e, 0x2e, 0xc7, 0xe3, 0xe3, 0xdb, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0xf8, 0x70, 0x65, 0x65, 0xeb, 0x21, 0xb5, 0x74, 0x3c, 0x5e, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x06, 0x85, 0xd4, 0xdf, 0x06, 0xab, 0x89, 0xc0, 0xd6, 0x90, 0xfb, 0x1e, 0x04, 0x1b, 0x0c, 0x34, 0xa7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x0f, 0x56, 0x07, 0x83, 0x1d, 0x87, 0x16, 0x24, 0x03, 0x47, 0xdf, 0x21, 0xb9, 0x74, 0x88, 0xe1, 0xf1, 0x78, 0xe1, 0x17, 0x04, 0x8b, 0x1b, 0xa6, 0xf3, 0xa0, 0xa5, 0x46, 0x81, 0xc5, 0x41, 0xb0, 0x20, 0xd8, 0xa0, 0xb9, 0xbc, 0x94, 0x41, 0x32, 0xcc, 0x41, 0x3a, 0x1d, 0xc8, 0xc1, 0x18, 0x8d, 0x38, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0xbf, 0xac, 0xad, 0x8e, 0x3d, 0xa4, 0x96, 0x8e, 0xc7, 0x2b, 0xfc, 0x82, 0x60, 0x71, 0x0e, 0xd6, 0x74, 0x1c, 0x2d, 0x0e, 0x82, 0x05, 0xc1, 0xe2, 0xb0, 0x1b, 0x04, 0x49, 0xf3, 0x86, 0xc4, 0xd4, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x06, 0xf6, 0xee, 0x06, 0xd1, 0x06, 0x4b, 0xc3, 0x7f, 0x0e, 0x2b, 0xb4, 0x07, 0xa9, 0x9d, 0x34, 0x83, 0x60, 0x41, 0x32, 0x64, 0x10, 0x6d, 0xd0, 0x02, 0x60, 0xc9, 0xf1, 0x7c, 0x41, 0xb0, 0x20, 0x19, 0x48, 0xdf, 0x1d, 0x9c, 0x84, 0x8e, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xa2, 0x79, 0x30, 0xe6, 0xef, 0x8e, 0x43, 0x6b, 0x18, 0x97, 0x83, 0x86, 0x6b, 0x49, 0x0e, 0x42, 0x00, 0xfc, 0xf8, 0xb6, 0x20, 0x58, 0x90, 0x0c, 0x9c, 0x77, 0x07, 0xc3, 0x3f, 0xf6, 0x60, 0x18, 0x3b, 0x1c, 0x84, 0x00, 0xf8, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x6e, 0x68, 0xbf, 0x7e, 0x48, 0x2d, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0x2c, 0x03, 0xf4, 0x5f, 0x1c, 0x76, 0x83, 0xb1, 0x8e, 0xb6, 0x21, 0x86, 0x83, 0x60, 0x61, 0x17, 0x6e, 0x83, 0x15, 0x90, 0x52, 0x87, 0x46, 0x82, 0x0b, 0x82, 0x05, 0xc9, 0xc0, 0x53, 0x77, 0x87, 0xe4, 0xd2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x45, 0xe6, 0xfa, 0x1b, 0xb2, 0x76, 0x07, 0xc5, 0x39, 0xd7, 0x71, 0x68, 0x90, 0xad, 0xa1, 0xfd, 0xfa, 0x70, 0x1b, 0xac, 0xa5, 0x94, 0x3a, 0x34, 0x12, 0x3c, 0xc4, 0xf0, 0x60, 0xb9, 0xa5, 0xff, 0xf1, 0x78, 0xf8, 0x05, 0xc1, 0x06, 0xed, 0x98, 0xaa, 0x2c, 0x0e, 0x82, 0xc5, 0x85, 0x5d, 0xd8, 0x0d, 0x1a, 0x75, 0x2b, 0x59, 0xd8, 0x85, 0x5d, 0xd8, 0x0d, 0x96, 0x0d, 0x06, 0x2d, 0xdc, 0x06, 0x2b, 0xe2, 0x8e, 0x0e, 0x3d, 0x84, 0x0e, 0x47, 0xfb, 0x61, 0x7d, 0xf3, 0x90, 0xce, 0x3d, 0x1c, 0xed, 0x0b, 0xbb, 0xb0, 0x0b, 0xbb, 0xc1, 0x18, 0x58, 0x38, 0xac, 0x6f, 0x6e, 0x88, 0xe1, 0xb0, 0x0b, 0xbb, 0xc1, 0xb2, 0xc1, 0xa0, 0x85, 0xdb, 0x60, 0xc9, 0x0d, 0xd2, 0xa1, 0x87, 0xd0, 0xe1, 0x68, 0xdf, 0x10, 0xc3, 0x61, 0x17, 0x76, 0x83, 0x65, 0x83, 0x41, 0x0b, 0xb7, 0xc1, 0xd2, 0xfa, 0xa7, 0x43, 0x0f, 0xa1, 0xc3, 0xd1, 0x7e, 0x48, 0xe7, 0x2e, 0x6e, 0xb0, 0xca, 0xc1, 0xe8, 0x70, 0x8a, 0x0d, 0xb2, 0x35, 0xe4, 0xb1, 0xc7, 0x00, 0x8f, 0xb6, 0x34, 0x37, 0xba, 0x16, 0xbb, 0xb0, 0x34, 0xf7, 0x70, 0x8a, 0x0d, 0xbb, 0xb0, 0x1b, 0x2c, 0x1b, 0x0c, 0xda, 0x20, 0x5d, 0xd1, 0xfa, 0x70, 0xb4, 0x2f, 0x08, 0x16, 0x24, 0xc3, 0x0c, 0xa2, 0x05, 0xf1, 0x06, 0x0b, 0x4d, 0x8c, 0x0e, 0x3d, 0x84, 0x8e, 0xc7, 0x83, 0x60, 0x41, 0x32, 0xcc, 0x20, 0x5a, 0x10, 0x6f, 0xb0, 0xd0, 0xc4, 0xe8, 0xd0, 0xf0, 0xeb, 0x78, 0xbe, 0x20, 0xd8, 0x60, 0x5d, 0xdb, 0xd8, 0x41, 0xcb, 0x84, 0x25, 0x83, 0x60, 0x41, 0x32, 0x20, 0xbc, 0xfa, 0x0e, 0x86, 0xa1, 0xcf, 0xc1, 0x6a, 0x0b, 0xa2, 0x61, 0x17, 0x76, 0x83, 0x65, 0x83, 0x41, 0x0b, 0xb7, 0xc1, 0xf2, 0x9c, 0xa4, 0x43, 0x0f, 0xa1, 0xc3, 0xd1, 0xbe, 0x20, 0xd8, 0x60, 0xdc, 0x41, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x68, 0xa7, 0xb2, 0x64, 0x43, 0xd3, 0xa1, 0x0d, 0xda, 0xc1, 0x2c, 0xd9, 0x60, 0xbc, 0x21, 0x1d, 0x1a, 0x1d, 0x1d, 0x87, 0x86, 0x5d, 0xd8, 0x0d, 0x96, 0x0d, 0x06, 0x2d, 0xdc, 0x06, 0x4b, 0x6c, 0x93, 0x0e, 0x3d, 0x84, 0x0e, 0x47, 0xfb, 0x82, 0x60, 0x83, 0x71, 0x07, 0x35, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x9d, 0xca, 0x92, 0x0d, 0x4d, 0x87, 0x36, 0x68, 0xcd, 0xb4, 0xe4, 0xa0, 0x31, 0x66, 0x97, 0xe3, 0xd0, 0xb0, 0x0b, 0xbb, 0xc1, 0xb2, 0xc1, 0xa0, 0x85, 0xdb, 0x60, 0xa9, 0xbc, 0xd2, 0xa1, 0x87, 0xd0, 0xe1, 0x68, 0x5f, 0x10, 0x2c, 0x08, 0x36, 0x68, 0xef, 0xb5, 0x64, 0x90, 0x0c, 0xb2, 0x41, 0xb4, 0xb0, 0x1b, 0x9a, 0x0e, 0x1d, 0x1a, 0x1d, 0x1d, 0x87, 0x0e, 0x1b, 0xb5, 0xc3, 0x2e, 0xec, 0x06, 0xcb, 0x06, 0x83, 0x16, 0x6e, 0x83, 0x75, 0x01, 0x4b, 0x87, 0x1e, 0x42, 0x87, 0xa3, 0x7d, 0x41, 0xb0, 0x20, 0x19, 0x66, 0x10, 0x2d, 0x58, 0x6f, 0xb0, 0x7c, 0x7a, 0xe9, 0xd0, 0xb8, 0xe8, 0x78, 0xbc, 0x41, 0x48, 0x81, 0x6f, 0xb0, 0x18, 0x80, 0x68, 0x0d, 0x47, 0xfb, 0x82, 0x64, 0xc8, 0xc1, 0x31, 0xab, 0xf8, 0x20, 0xa4, 0xc0, 0x87, 0x5f, 0x90, 0x0c, 0x33, 0x88, 0x16, 0xc4, 0x1b, 0x2c, 0x34, 0x31, 0x3a, 0x34, 0x3a, 0x3a, 0x9e, 0x1f, 0xcf, 0x87, 0x5d, 0xd8, 0x0d, 0x96, 0x0d, 0x06, 0x2d, 0xdc, 0x06, 0x2b, 0x23, 0x96, 0x0e, 0x3d, 0x84, 0x0e, 0x47, 0xfb, 0x0a, 0x82, 0x0d, 0xd6, 0xf2, 0x09, 0x1c, 0xac, 0xf6, 0xd4, 0xdf, 0xa0, 0x8c, 0xdb, 0x19, 0x7e, 0x41, 0x32, 0xcc, 0x20, 0x5a, 0x10, 0x6f, 0xb0, 0x6e, 0x54, 0xff, 0xd0, 0x31, 0xec, 0x78, 0x7c, 0x3c, 0x1f, 0x76, 0x61, 0x37, 0x58, 0x36, 0x18, 0xb4, 0x70, 0x1b, 0x2c, 0xd5, 0x42, 0x3a, 0xf4, 0x10, 0x3a, 0x1c, 0xed, 0x2b, 0x08, 0x36, 0x58, 0xcb, 0x27, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0x65, 0xec, 0x92, 0xc3, 0x1e, 0xef, 0x71, 0x68, 0xc3, 0xd1, 0x7e, 0x68, 0x96, 0x34, 0xec, 0xc2, 0x6e, 0xb0, 0x6c, 0x30, 0x68, 0xe1, 0x36, 0x58, 0x74, 0x84, 0x74, 0xe8, 0x21, 0x74, 0x38, 0xda, 0x37, 0x68, 0x5b, 0xe1, 0x65, 0xd8, 0x85, 0xdd, 0x60, 0xd9, 0x60, 0xd0, 0xc2, 0x6d, 0xb0, 0x14, 0x64, 0xe9, 0xd0, 0x43, 0xe8, 0x70, 0xb4, 0xaf, 0x20, 0xd8, 0x60, 0x2d, 0x9f, 0xc0, 0x41, 0xeb, 0xec, 0x25, 0x1b, 0x5a, 0x89, 0x2f, 0xfc, 0x82, 0x64, 0x98, 0x41, 0xb4, 0x20, 0xde, 0x60, 0xa1, 0x89, 0xd1, 0xa1, 0x71, 0xd1, 0xf1, 0xf8, 0x78, 0x3e, 0xfc, 0x82, 0x64, 0x98, 0x41, 0xb4, 0x20, 0xde, 0x60, 0xa1, 0x89, 0xd1, 0xa1, 0x59, 0xd2, 0xf1, 0xf8, 0x78, 0x3e, 0xec, 0xc2, 0x6e, 0xb0, 0x6c, 0x30, 0x68, 0xe1, 0x36, 0x58, 0x0c, 0xb3, 0x74, 0xe8, 0x21, 0x74, 0x38, 0xda, 0x57, 0x10, 0x6c, 0xb0, 0x96, 0x4f, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x83, 0x36, 0x70, 0x4d, 0x8e, 0x43, 0x1b, 0x14, 0x76, 0x38, 0x07, 0x6d, 0x83, 0xbc, 0x0c, 0xbb, 0xb0, 0x1b, 0x2c, 0x1b, 0x0c, 0x5a, 0xb8, 0x0d, 0x56, 0xff, 0x2c, 0x1d, 0x7a, 0x08, 0x1d, 0x8e, 0xf6, 0x35, 0x68, 0xe6, 0xe5, 0x65, 0x43, 0x7f, 0xf2, 0xe1, 0x17, 0x24, 0xc3, 0x0c, 0xa2, 0x05, 0xf1, 0x06, 0x0b, 0x4d, 0x8c, 0x0e, 0x1d, 0xc3, 0x8e, 0xc7, 0xc7, 0xf3, 0x61, 0x17, 0x76, 0x83, 0x65, 0x83, 0x41, 0x0b, 0xb7, 0xc1, 0xfa, 0x91, 0x9f, 0x43, 0x0f, 0xa1, 0xc3, 0xd1, 0xbe, 0x41, 0x02, 0x1e, 0xc8, 0xb0, 0x0b, 0xbb, 0xc1, 0xb2, 0xc1, 0xa0, 0x85, 0xdb, 0x60, 0xfd, 0xd3, 0xd2, 0xa1, 0x87, 0xd0, 0xe1, 0x68, 0x5f, 0x10, 0x2c, 0x48, 0x86, 0x19, 0x44, 0x0b, 0xd6, 0x87, 0x8e, 0x61, 0xc7, 0xe3, 0x05, 0xc1, 0x06, 0xcb, 0x94, 0xc5, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x3f, 0x68, 0x55, 0xc2, 0xe4, 0x38, 0x74, 0x10, 0x02, 0xe0, 0xc3, 0x2e, 0xec, 0x06, 0xcb, 0x06, 0x83, 0x16, 0x6e, 0x83, 0xe5, 0x6e, 0x4b, 0x87, 0x1e, 0x42, 0x87, 0xa3, 0x7d, 0x41, 0xb0, 0x20, 0xd8, 0x60, 0x2d, 0x9f, 0xc0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x96, 0xb1, 0x4b, 0x0e, 0x0e, 0xa0, 0xe9, 0xc7, 0xa1, 0x8d, 0x43, 0xc3, 0x2f, 0x48, 0x86, 0x19, 0x44, 0x0b, 0xe2, 0x8d, 0x43, 0x87, 0x46, 0x47, 0xc7, 0xf3, 0xe3, 0xf9, 0xb0, 0x0b, 0xbb, 0xc1, 0xb2, 0xc1, 0xa0, 0x85, 0xdb, 0x60, 0x41, 0xe3, 0xd2, 0xa1, 0x87, 0xd0, 0xe1, 0x68, 0x5f, 0x10, 0x6c, 0xd0, 0x3a, 0xd3, 0xcb, 0x82, 0x60, 0x83, 0x65, 0xca, 0x62, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x1f, 0xb4, 0xae, 0x63, 0x72, 0x1c, 0x3a, 0x08, 0x01, 0xf0, 0x61, 0x17, 0x76, 0x83, 0x65, 0x83, 0x41, 0x0b, 0xb7, 0xc1, 0x92, 0xce, 0xa5, 0x43, 0x0f, 0xa1, 0xc3, 0xd1, 0xbe, 0x20, 0x58, 0x90, 0x0c, 0xec, 0xdf, 0x1d, 0x56, 0x68, 0x0f, 0xc6, 0x1d, 0xc2, 0xb0, 0x0b, 0xbb, 0xc1, 0xb2, 0xc1, 0xa0, 0x85, 0xdb, 0x60, 0x49, 0x20, 0xd2, 0xa1, 0x87, 0xd0, 0xe1, 0x68, 0x5f, 0x41, 0xb0, 0x41, 0x1b, 0x48, 0x26, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x0d, 0xbf, 0x0e, 0xc6, 0x9b, 0xce, 0x71, 0xe8, 0x60, 0x28, 0x22, 0x0d, 0xbb, 0xb0, 0x1b, 0x2c, 0x1b, 0x0c, 0x5a, 0xb8, 0x0d, 0x96, 0x11, 0x2f, 0x1d, 0x7a, 0x08, 0x1d, 0x8e, 0xf6, 0x05, 0xc1, 0x06, 0xad, 0x33, 0xbd, 0x2c, 0x08, 0x36, 0x58, 0xa6, 0x2c, 0x36, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x41, 0x33, 0x59, 0x26, 0xc7, 0xa1, 0x83, 0x10, 0x00, 0x1f, 0x76, 0x61, 0x37, 0x58, 0x36, 0x18, 0xb4, 0x70, 0x1b, 0x2c, 0xc1, 0x3d, 0x3a, 0xf4, 0x10, 0x3a, 0x1c, 0xed, 0x0b, 0x82, 0x05, 0xc9, 0x30, 0x83, 0x68, 0xc1, 0xfa, 0xd0, 0x2c, 0xe9, 0x78, 0xbc, 0x20, 0xd8, 0xa0, 0x55, 0xff, 0x91, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0xdf, 0x60, 0xbc, 0xe9, 0x1c, 0x9a, 0x0e, 0x1d, 0xa2, 0x79, 0x1c, 0x3a, 0x08, 0x01, 0xf0, 0x61, 0x17, 0x76, 0x83, 0x65, 0x83, 0x41, 0x0b, 0xb7, 0xc1, 0x2a, 0x74, 0xa6, 0x43, 0x0f, 0xa1, 0xc3, 0xd1, 0xbe, 0x20, 0x5b, 0x43, 0x1e, 0x7b, 0x71, 0x90, 0x0c, 0x1c, 0x7d, 0x83, 0x68, 0x61, 0x07, 0xc1, 0x06, 0xcd, 0x14, 0x9a, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x0f, 0x8a, 0x5c, 0x85, 0xe3, 0xd0, 0x21, 0x5b, 0x71, 0x3c, 0x3e, 0x68, 0xfa, 0xf2, 0x65, 0xd8, 0x85, 0xdd, 0x60, 0xd9, 0x60, 0xd0, 0xc2, 0x6d, 0xb0, 0xd8, 0x8d, 0xe9, 0xd0, 0x43, 0xe8, 0x70, 0xb4, 0x2f, 0x08, 0x36, 0x68, 0xfa, 0xf2, 0x65, 0x83, 0x90, 0x02, 0xdf, 0xe0, 0x18, 0x98, 0xbf, 0xb0, 0x0b, 0xbb, 0xd0, 0x43, 0xd3, 0xa1, 0xc3, 0xfa, 0xe6, 0x86, 0xa6, 0x43, 0x83, 0x6c, 0x0d, 0xed, 0xd7, 0x0f, 0xda, 0xcf, 0x7d, 0xd9, 0xa0, 0x8c, 0x86, 0x19, 0x7e, 0x41, 0x32, 0xcc, 0x20, 0x5a, 0x10, 0x6f, 0xb0, 0xd0, 0xc4, 0xe8, 0xa0, 0xb0, 0x52, 0x3b, 0x9e, 0x1f, 0xcf, 0x0f, 0x42, 0x00, 0x7c, 0xd8, 0x85, 0xdd, 0x60, 0xd9, 0x60, 0xd0, 0xc2, 0x6d, 0xb0, 0x2e, 0xbd, 0xe9, 0xd0, 0x43, 0xe8, 0x70, 0xb4, 0x2f, 0x08, 0x36, 0x68, 0x29, 0xe4, 0x65, 0x10, 0x2c, 0x48, 0x86, 0x19, 0x44, 0x1b, 0x8c, 0xaa, 0xff, 0x41, 0xb4, 0x60, 0x7d, 0x68, 0x74, 0x74, 0x3c, 0xdf, 0x20, 0xa4, 0xc0, 0x07, 0xc1, 0x82, 0x64, 0x60, 0xf8, 0x0e, 0x86, 0xa1, 0xcf, 0xc1, 0x6a, 0x0b, 0xa2, 0x61, 0x17, 0x76, 0x83, 0x65, 0x83, 0x41, 0x0b, 0xb7, 0xc1, 0xfa, 0x2b, 0xa7, 0x43, 0x0f, 0xa1, 0xc3, 0xd1, 0xbe, 0x20, 0x19, 0x66, 0x10, 0x2d, 0xa8, 0x1f, 0x04, 0x1b, 0xb4, 0x35, 0x6a, 0x72, 0x70, 0x00, 0x4d, 0x3f, 0x68, 0x11, 0xf3, 0x65, 0xd8, 0x85, 0xdd, 0x60, 0xd9, 0x60, 0xd0, 0xc2, 0x6d, 0xb0, 0xc8, 0xd3, 0xe9, 0xd0, 0x43, 0xe8, 0x70, 0xb4, 0x2f, 0x08, 0x16, 0x24, 0xc3, 0x0c, 0xa2, 0x05, 0xf1, 0x06, 0x6d, 0xe0, 0x9a, 0x1c, 0x1a, 0x17, 0x1d, 0x8f, 0x07, 0xc1, 0x0a, 0x82, 0x0d, 0x9a, 0xe0, 0x35, 0x39, 0x68, 0x7b, 0xf5, 0x65, 0x10, 0x2c, 0x48, 0x06, 0x0c, 0xbe, 0xbf, 0x43, 0xb6, 0xe2, 0xa0, 0xed, 0xd5, 0x97, 0x41, 0xb0, 0x20, 0x58, 0xd8, 0x85, 0xdd, 0x60, 0x74, 0xac, 0x2f, 0xec, 0x06, 0x6d, 0x0b, 0x9b, 0x6c, 0xd0, 0xaa, 0xb1, 0xc9, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x1b, 0x1c, 0xf7, 0x3b, 0x86, 0x5d, 0xd8, 0x0d, 0x46, 0xc7, 0xfa, 0x06, 0x6d, 0x0b, 0x9b, 0x1c, 0x8e, 0xf6, 0xc5, 0x39, 0x1c, 0xed, 0xc3, 0x2e, 0xec, 0x06, 0xa3, 0x63, 0xfd, 0xa0, 0x6d, 0xf9, 0x97, 0x0d, 0x06, 0xef, 0xc1, 0x20, 0xdb, 0xd0, 0x7c, 0xfd, 0xf0, 0x12, 0xc0, 0xc1, 0x48, 0xd3, 0x1a, 0x04, 0x0b, 0x92, 0x61, 0x06, 0xd1, 0x82, 0xfa, 0x43, 0x34, 0x07, 0xd1, 0x82, 0xf5, 0x41, 0x79, 0x64, 0x70, 0x58, 0xa1, 0x1d, 0x04, 0x0b, 0x92, 0x61, 0x06, 0xd1, 0x82, 0xfa, 0x43, 0xbe, 0x76, 0x10, 0x2d, 0x58, 0x1f, 0xa4, 0x15, 0x8f, 0x1c, 0xb2, 0x15, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x78, 0xaf, 0xef, 0xe0, 0x24, 0x74, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xb0, 0xf6, 0x7b, 0xb0, 0xec, 0x6f, 0xe8, 0x38, 0xb4, 0x20, 0xd8, 0xa0, 0x49, 0x74, 0x96, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xf8, 0x1f, 0x1c, 0xe4, 0x74, 0x8f, 0x43, 0xc3, 0x6e, 0x88, 0xff, 0x1a, 0x1c, 0x03, 0xf3, 0x57, 0x3c, 0xb4, 0x5f, 0x3f, 0x08, 0x11, 0xff, 0xe3, 0xd0, 0x71, 0x68, 0xd8, 0x85, 0xdd, 0x60, 0xd9, 0x60, 0xd0, 0xc2, 0x6d, 0xb0, 0xd2, 0xe5, 0xe9, 0xd0, 0x43, 0xe8, 0x70, 0xb4, 0xaf, 0x41, 0x33, 0x2f, 0x2f, 0x83, 0x60, 0x41, 0xb0, 0x41, 0x2b, 0x5c, 0x27, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x1a, 0xe5, 0x00, 0x18, 0x7e, 0xe3, 0xf9, 0x06, 0x43, 0x11, 0xe9, 0xd0, 0x2c, 0xe9, 0x38, 0x34, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x81, 0xa7, 0xff, 0x0e, 0xd9, 0x8a, 0x41, 0x32, 0x88, 0x06, 0xd1, 0xc2, 0x6e, 0x88, 0xe6, 0x41, 0x91, 0xab, 0x70, 0x1c, 0x3a, 0x18, 0x51, 0xb8, 0xc3, 0x2e, 0xec, 0x06, 0xcb, 0x06, 0x83, 0x16, 0x6e, 0x83, 0xa5, 0xcf, 0x47, 0x87, 0x1e, 0x42, 0x87, 0xa3, 0x7d, 0x0d, 0x9a, 0x79, 0x79, 0x19, 0x04, 0x1b, 0xb4, 0xf0, 0xf5, 0x32, 0x08, 0x16, 0x04, 0x1b, 0xb4, 0x96, 0x01, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x51, 0x0e, 0x80, 0x83, 0x52, 0x66, 0xe7, 0x38, 0x34, 0xc8, 0xd6, 0x90, 0xc7, 0x5e, 0x1c, 0x04, 0x1b, 0x34, 0x72, 0xbd, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0xf9, 0xed, 0x95, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x17, 0x37, 0x4c, 0xdc, 0x1a, 0xea, 0xf8, 0x86, 0x97, 0xef, 0xe6, 0xe0, 0x50, 0x5d, 0x76, 0xd0, 0xf0, 0x1c, 0xc5, 0xf0, 0x1b, 0xcf, 0x17, 0x0f, 0x0e, 0xd5, 0x65, 0x07, 0xa5, 0xcc, 0xce, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x1e, 0x04, 0x8b, 0xc3, 0x6e, 0xc8, 0x63, 0x2d, 0xec, 0xc2, 0x1d, 0x2c, 0xb4, 0xbf, 0x59, 0x10, 0x2c, 0x48, 0x06, 0xd6, 0xee, 0x0e, 0x1a, 0xdc, 0x11, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0xb6, 0xeb, 0x0e, 0x02, 0xde, 0xff, 0xd0, 0x14, 0xe8, 0x38, 0x34, 0xc8, 0xd6, 0xd0, 0x7e, 0x7d, 0xb8, 0x0d, 0x47, 0xfb, 0xa1, 0x93, 0xda, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xc3, 0xd1, 0x3e, 0x08, 0x16, 0x24, 0x03, 0x46, 0xdf, 0xdf, 0x41, 0xc0, 0xfb, 0x1f, 0x1a, 0xb5, 0x1c, 0x8f, 0x07, 0xd9, 0x1a, 0xda, 0xaf, 0x1f, 0x1a, 0x2e, 0x6e, 0x30, 0xe4, 0xd1, 0x37, 0x08, 0x4a, 0xef, 0x41, 0xb0, 0x41, 0x6b, 0x55, 0x30, 0x07, 0xe9, 0x82, 0x43, 0xc7, 0xb7, 0x61, 0x37, 0x68, 0x7e, 0xd2, 0x65, 0x41, 0xb6, 0x86, 0x3c, 0xf6, 0xe2, 0x20, 0xd8, 0x60, 0xb4, 0xcc, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x68, 0x07, 0xf0, 0xe4, 0xa0, 0xc8, 0x55, 0x38, 0x0e, 0x1d, 0x8f, 0x07, 0xc1, 0x06, 0x4d, 0x5f, 0xbe, 0x6c, 0x10, 0x52, 0xe0, 0x1b, 0x1c, 0x03, 0xf3, 0xd7, 0x60, 0xa1, 0xe1, 0xcf, 0x86, 0xa3, 0xfd, 0xd0, 0x74, 0xe8, 0x20, 0x04, 0xc0, 0x87, 0x5d, 0xd8, 0x0d, 0x96, 0x0d, 0x06, 0x2d, 0xdc, 0x06, 0x0b, 0xc3, 0x9e, 0x0e, 0x3d, 0x84, 0x0e, 0x47, 0xfb, 0x1a, 0xb4, 0xb3, 0xf5, 0x72, 0xd0, 0x5c, 0xc4, 0xcb, 0xb0, 0x1b, 0xb4, 0xe1, 0xe9, 0xb2, 0xb0, 0x1b, 0x8c, 0x81, 0x85, 0x05, 0xd9, 0x1a, 0xf2, 0xd8, 0x8b, 0x83, 0x60, 0x41, 0x32, 0x90, 0xfa, 0x1b, 0x44, 0x0b, 0x3b, 0x08, 0x36, 0x68, 0xa6, 0xd0, 0xe4, 0xa0, 0x05, 0x5d, 0x81, 0x43, 0xb6, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x83, 0x25, 0x37, 0x48, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1e, 0x7b, 0x0c, 0xf0, 0x68, 0x4b, 0x73, 0xa3, 0x6b, 0x61, 0x7b, 0x9b, 0xa3, 0x0f, 0xa7, 0xd8, 0x41, 0x6b, 0xa8, 0x2e, 0xc3, 0x2e, 0xec, 0x06, 0xcb, 0x06, 0x83, 0x16, 0x6e, 0x83, 0xe5, 0x91, 0x4f, 0x87, 0x1e, 0x42, 0x87, 0xa3, 0x7d, 0x41, 0xb0, 0x41, 0x0b, 0x26, 0x2f, 0x83, 0x60, 0xe1, 0x17, 0x24, 0xc3, 0x0c, 0xa2, 0x05, 0xf1, 0x06, 0x0b, 0x4d, 0x8c, 0x0e, 0x4d, 0x87, 0x8e, 0xe7, 0xc7, 0xa1, 0x05, 0xc1, 0x06, 0xeb, 0xda, 0xc6, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x34, 0x79, 0x58, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0x3a, 0x38, 0x64, 0xed, 0x8e, 0x43, 0xc7, 0xa1, 0x41, 0xb0, 0x41, 0x83, 0xbe, 0x2e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0xbe, 0xe1, 0x68, 0x1f, 0x24, 0x03, 0x63, 0x75, 0xd0, 0x78, 0xce, 0xc9, 0x21, 0x5f, 0x7b, 0x1c, 0x1a, 0x76, 0x61, 0x37, 0x58, 0x36, 0x18, 0xb4, 0x70, 0x1b, 0x2c, 0x0e, 0x7c, 0x3a, 0xf4, 0x10, 0x3a, 0x1c, 0xed, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0x6b, 0xf9, 0x04, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xb4, 0x8c, 0x5d, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x41, 0x9b, 0xec, 0x2e, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0x58, 0xf8, 0x05, 0xc9, 0x30, 0x83, 0x68, 0x41, 0xbc, 0xc1, 0x42, 0x13, 0xa3, 0x0d, 0x16, 0x79, 0x3a, 0xad, 0xc1, 0x7a, 0x49, 0xa5, 0xc5, 0x0d, 0x56, 0x8b, 0x20, 0x05, 0x3e, 0x5b, 0x99, 0x5d, 0xba, 0x06, 0xeb, 0xd2, 0x9b, 0xd6, 0x60, 0x69, 0xdc, 0xd3, 0x06, 0xcb, 0xa7, 0x97, 0x0e, 0x4d, 0x87, 0x0e, 0x46, 0x1b, 0xed, 0x1a, 0xac, 0x4b, 0x6f, 0xda, 0xd0, 0xe8, 0xe8, 0x60, 0xb4, 0xd1, 0x1e, 0x62, 0xb8, 0x06, 0xeb, 0xd2, 0x9b, 0x36, 0x34, 0x3a, 0x3a, 0x48, 0x25, 0xee, 0x38, 0x58, 0xd3, 0x72, 0x74, 0x3c, 0x3f, 0x9e, 0x1f, 0x0c, 0x15, 0x81, 0x61, 0x17, 0x76, 0x83, 0x65, 0x83, 0x41, 0x0b, 0xb7, 0xc1, 0x02, 0xd1, 0xa7, 0x43, 0x0f, 0xa1, 0xc3, 0xd1, 0xbe, 0x06, 0xed, 0x75, 0xbc, 0x6c, 0x38, 0xda, 0x87, 0x5f, 0x90, 0x0c, 0x33, 0x88, 0x16, 0x98, 0xfd, 0xc3, 0xd1, 0x7e, 0xd0, 0x68, 0xd3, 0xcb, 0xf1, 0x7c, 0xd8, 0x85, 0xdd, 0x60, 0xd9, 0x60, 0xd0, 0xc2, 0x6d, 0xb0, 0x44, 0xf6, 0xe9, 0xd0, 0x43, 0xe8, 0x70, 0xb4, 0x2f, 0xec, 0x82, 0x60, 0x83, 0x26, 0xa1, 0x4f, 0x0e, 0x0e, 0xa0, 0xe9, 0x0b, 0x92, 0x61, 0x06, 0xd1, 0x82, 0xf5, 0x41, 0xd8, 0x53, 0x1f, 0x8f, 0x07, 0xc9, 0x30, 0x83, 0x68, 0xc1, 0xfa, 0xa0, 0xc4, 0x1e, 0x3c, 0x1e, 0x0f, 0xbb, 0xb0, 0x1b, 0x2c, 0x1b, 0x0c, 0x5a, 0xd8, 0x0d, 0xda, 0x26, 0x75, 0x39, 0x68, 0x37, 0x71, 0xe5, 0x70, 0xb4, 0x6f, 0xd0, 0x1a, 0xaa, 0xcb, 0x20, 0xdb, 0xd0, 0x7c, 0x7d, 0x10, 0x2c, 0x08, 0x36, 0x68, 0xad, 0xfd, 0x64, 0x90, 0x0c, 0xa2, 0xc3, 0x76, 0xef, 0xb0, 0x0b, 0xb7, 0x71, 0xe8, 0xb0, 0xf6, 0xbb, 0x20, 0x5b, 0x43, 0x1e, 0x7b, 0x71, 0x10, 0x6c, 0x50, 0xac, 0x42, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x68, 0xee, 0xfe, 0x64, 0xf8, 0x8d, 0xe7, 0x1b, 0x14, 0x91, 0x92, 0x87, 0xc4, 0xcc, 0x71, 0xe8, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0xc7, 0x1e, 0x03, 0x3c, 0xda, 0xd2, 0xdc, 0xe8, 0x5a, 0xde, 0xe0, 0xca, 0xdc, 0xc3, 0x29, 0x36, 0x48, 0x86, 0x19, 0x44, 0x0b, 0xd6, 0xc7, 0xa1, 0xe3, 0xf9, 0x82, 0x60, 0x83, 0xe6, 0x76, 0x4a, 0x16, 0x07, 0xc1, 0x82, 0x64, 0x98, 0x41, 0xb4, 0x20, 0xde, 0x60, 0xa1, 0x89, 0xd1, 0xa1, 0x09, 0xd7, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x81, 0xa1, 0x3b, 0x08, 0x78, 0xff, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xa3, 0xd5, 0xfc, 0xa0, 0x09, 0xaa, 0x92, 0xe3, 0xd0, 0x82, 0x60, 0x41, 0x32, 0xc8, 0x0e, 0xd9, 0x8a, 0x83, 0x61, 0xec, 0x30, 0x08, 0x16, 0x24, 0x03, 0xc2, 0xab, 0xef, 0x60, 0x38, 0x4a, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x8c, 0xcb, 0x21, 0x5f, 0x7b, 0x1c, 0x3a, 0x1e, 0x0f, 0x82, 0x0d, 0x16, 0x9a, 0x18, 0x2d, 0x0e, 0xb2, 0x35, 0xe4, 0xb1, 0x17, 0x37, 0xe4, 0xbe, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0xc7, 0xc1, 0xdb, 0xc1, 0xd3, 0xc1, 0xdd, 0xc1, 0xe9, 0x83, 0xf6, 0xed, 0x05, 0x8e, 0x6f, 0xc7, 0xe3, 0x83, 0x86, 0xca, 0x4a, 0x8e, 0xc7, 0x07, 0x25, 0x43, 0xd3, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0xf8, 0x6d, 0x69, 0x6e, 0xf4, 0x21, 0xb5, 0x74, 0x3c, 0x5e, 0x10, 0x2c, 0xce, 0x86, 0x15, 0xda, 0x0d, 0xd3, 0x79, 0xb0, 0xc4, 0x59, 0x7f, 0x71, 0x41, 0xb0, 0x20, 0x19, 0xd8, 0xae, 0x3b, 0x24, 0x97, 0x0e, 0x69, 0xb8, 0xe1, 0x17, 0x44, 0x0b, 0xc2, 0x41, 0xb0, 0x41, 0x83, 0x23, 0x29, 0x87, 0x34, 0xdc, 0xf1, 0x78, 0x10, 0x2c, 0x0e, 0xbb, 0x61, 0x2d, 0x74, 0x41, 0xb0, 0x21, 0x5f, 0x7b, 0x30, 0x12, 0x56, 0x87, 0xdd, 0x60, 0xed, 0xc7, 0xd7, 0x82, 0x60, 0x71, 0xd8, 0x0d, 0xd6, 0x31, 0xfe, 0x2f, 0x08, 0x36, 0x68, 0x69, 0x7d, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x49, 0xd3, 0x30, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xa8, 0x3f, 0x18, 0x03, 0x0b, 0x07, 0x05, 0x05, 0xdb, 0x71, 0x68, 0xd8, 0x0d, 0x16, 0x6c, 0xfe, 0x2f, 0x08, 0x36, 0x68, 0xd5, 0x7f, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x49, 0xd3, 0x30, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x64, 0x10, 0x6d, 0xd0, 0xea, 0x53, 0xcc, 0xf1, 0xfc, 0x38, 0x34, 0xec, 0x06, 0xab, 0xc5, 0xfe, 0x37, 0x68, 0x6b, 0x09, 0x65, 0xd8, 0x0d, 0x56, 0xa1, 0xfe, 0x6f, 0xd0, 0xe8, 0x0f, 0xca, 0x20, 0xdb, 0xd0, 0x7c, 0xfd, 0xa0, 0x48, 0x60, 0x3b, 0xbe, 0x0d, 0x82, 0x0d, 0x31, 0x1c, 0x04, 0x8b, 0xc3, 0x2e, 0xdc, 0x86, 0xa3, 0xfd, 0x60, 0xa5, 0x1b, 0xcd, 0x82, 0x64, 0xc8, 0x20, 0x5a, 0x30, 0x3e, 0x18, 0x8b, 0x9d, 0x87, 0xe4, 0xd2, 0x20, 0x58, 0x41, 0xb0, 0x20, 0x19, 0xcc, 0x0e, 0x8e, 0x59, 0xc5, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x09, 0x2a, 0xfe, 0x71, 0x68, 0x10, 0x2c, 0x48, 0x06, 0x7d, 0x07, 0xc7, 0xac, 0xe2, 0x83, 0x96, 0xdb, 0x62, 0x86, 0xdd, 0xa0, 0xa1, 0x08, 0x96, 0x05, 0xc9, 0x90, 0x41, 0xb4, 0x40, 0xf8, 0x0f, 0xd6, 0x31, 0xeb, 0x1f, 0xcf, 0x87, 0xdd, 0xa0, 0xf9, 0x06, 0x96, 0x0d, 0xd6, 0x37, 0x18, 0x0d, 0xbb, 0xb0, 0x1b, 0x34, 0x49, 0xc1, 0xb2, 0x41, 0x2b, 0x19, 0x2c, 0x87, 0xa3, 0x7d, 0x83, 0xf5, 0x0d, 0x46, 0xc3, 0x6e, 0xd0, 0x1a, 0x08, 0xcb, 0xc2, 0x6e, 0xb0, 0x5c, 0x92, 0x68, 0x41, 0xb0, 0x20, 0x19, 0x48, 0xf7, 0x1d, 0x0c, 0xff, 0xd8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0x02, 0x13, 0x7f, 0x10, 0x02, 0xe0, 0x83, 0x68, 0x81, 0xf0, 0x1f, 0xa4, 0x37, 0x36, 0x1c, 0xcf, 0x0f, 0x16, 0x6d, 0x8c, 0x1d, 0x87, 0x06, 0xc1, 0x06, 0xed, 0x0c, 0xc6, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x38, 0x51, 0x44, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x19, 0x44, 0x1b, 0xb4, 0x8c, 0x18, 0x33, 0x88, 0x16, 0x08, 0xff, 0x41, 0x81, 0xbe, 0x73, 0x3c, 0x3f, 0x0e, 0x0d, 0xbb, 0xb0, 0x1b, 0x34, 0x49, 0xc1, 0xb2, 0x41, 0x33, 0x16, 0x2c, 0x87, 0xa3, 0x7d, 0x61, 0x37, 0x58, 0x2e, 0x49, 0xb4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x08, 0xff, 0x20, 0x19, 0xcc, 0x0e, 0x02, 0xde, 0xff, 0x78, 0x3e, 0x08, 0x36, 0x68, 0xf1, 0x58, 0xe4, 0xa0, 0xa1, 0xc2, 0x98, 0x61, 0x37, 0x68, 0x56, 0x89, 0x65, 0x41, 0xb0, 0x20, 0x19, 0x78, 0xaa, 0xef, 0x60, 0xf8, 0xc7, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x38, 0x51, 0x44, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x39, 0x68, 0xad, 0x32, 0xe6, 0x38, 0x34, 0xec, 0x06, 0xed, 0x8e, 0xb1, 0x2c, 0x08, 0x36, 0x68, 0x76, 0xe1, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x9b, 0x6c, 0x2c, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xda, 0x83, 0x63, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0xa1, 0x89, 0xd1, 0xe2, 0x20, 0x19, 0x32, 0x88, 0x36, 0x68, 0x5d, 0xc4, 0xe5, 0xb0, 0x42, 0x7b, 0x3c, 0x3e, 0x0e, 0x1d, 0x87, 0x86, 0xdd, 0xa0, 0xd5, 0x2a, 0x96, 0x05, 0xc1, 0x06, 0xcd, 0x6a, 0xb1, 0x1c, 0xb4, 0x81, 0x1a, 0x33, 0xc8, 0x36, 0x68, 0xb4, 0x8f, 0x65, 0xd8, 0x05, 0xc1, 0x82, 0x60, 0x83, 0x46, 0x97, 0x43, 0x0e, 0xd6, 0x19, 0xff, 0x1f, 0x94, 0x56, 0x49, 0x1b, 0xac, 0x6f, 0x30, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0x06, 0x8d, 0x7a, 0xc6, 0x0c, 0xa2, 0x85, 0x1d, 0x04, 0x0b, 0x82, 0x0d, 0x1a, 0x5d, 0x0e, 0x39, 0x58, 0x85, 0xfd, 0x7f, 0x50, 0x5a, 0x25, 0x1d, 0xcf, 0x8f, 0x6f, 0xc7, 0xb7, 0xe3, 0xf1, 0x0a, 0xbf, 0x20, 0xd8, 0x60, 0x4d, 0xcb, 0xd1, 0xe2, 0x20, 0xd8, 0xa0, 0xa1, 0x60, 0x95, 0x83, 0xe4, 0xc0, 0x8b, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0xdc, 0x60, 0xb1, 0xbf, 0xcf, 0x21, 0xb5, 0x74, 0x3c, 0x1e, 0x7e, 0x41, 0xb0, 0xc1, 0xf2, 0x07, 0xad, 0xc5, 0x61, 0x37, 0x34, 0x5c, 0xdc, 0x30, 0x2e, 0x83, 0x6c, 0x0d, 0xed, 0xd7, 0x0f, 0x79, 0xac, 0x41, 0xb0, 0x20, 0xd8, 0xa0, 0xdd, 0x9d, 0x98, 0x43, 0x53, 0xa0, 0x61, 0x17, 0x6e, 0x43, 0x0c, 0x0f, 0x8d, 0x8b, 0xd6, 0xd0, 0x2c, 0xe9, 0x60, 0xfc, 0x4b, 0x0e, 0xb2, 0x35, 0xb4, 0x5f, 0x1f, 0x6e, 0xc3, 0xd1, 0x7e, 0x68, 0x5c, 0xb4, 0x20, 0xd8, 0x60, 0x70, 0x57, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0x6b, 0x7d, 0x07, 0xc3, 0x3f, 0x76, 0x90, 0x0c, 0x84, 0x6e, 0x10, 0x2d, 0xec, 0x41, 0xa2, 0xa7, 0xc2, 0x71, 0xe8, 0x38, 0xb4, 0xc1, 0xb9, 0xa5, 0x78, 0x83, 0xb0, 0xa7, 0x3e, 0x18, 0xff, 0x92, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0x38, 0xe0, 0x9b, 0xa5, 0xb9, 0x95, 0x87, 0xd4, 0xd2, 0xf1, 0x78, 0x10, 0x6c, 0x88, 0xe1, 0x20, 0x58, 0x1c, 0x76, 0x83, 0x75, 0xdf, 0xff, 0x1b, 0x8e, 0xf6, 0x61, 0x37, 0x58, 0xdb, 0xff, 0xbf, 0xb0, 0x1b, 0x14, 0x4f, 0x03, 0x1b, 0x62, 0x38, 0xec, 0x06, 0xc5, 0x91, 0xca, 0x21, 0x9d, 0x3b, 0xec, 0x06, 0x0d, 0x6f, 0x90, 0x6c, 0x50, 0x3c, 0x0d, 0x0c, 0xbb, 0x41, 0x33, 0x21, 0x24, 0x1b, 0x14, 0x47, 0x2a, 0xc3, 0x6e, 0xd0, 0xae, 0x0a, 0xc9, 0x82, 0x60, 0x41, 0x32, 0xd0, 0xbc, 0xef, 0x60, 0x18, 0xfa, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0x61, 0x51, 0x92, 0x83, 0xb6, 0x61, 0x48, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x58, 0x68, 0x62, 0xb4, 0x38, 0x48, 0x86, 0x0c, 0xa2, 0x0d, 0x92, 0x0b, 0xa7, 0x0f, 0xc9, 0xa5, 0xe3, 0xf1, 0x71, 0x68, 0xd8, 0x0d, 0x9a, 0xe0, 0x21, 0xd9, 0xa0, 0x38, 0x52, 0x19, 0x76, 0x83, 0x56, 0x83, 0x48, 0x16, 0x76, 0x83, 0x46, 0x35, 0x51, 0x36, 0xc4, 0x70, 0xd8, 0x0d, 0x9a, 0xfd, 0x44, 0x39, 0xa4, 0x73, 0x87, 0xdd, 0xa0, 0x15, 0xd9, 0x91, 0x0d, 0x47, 0xfb, 0x20, 0x5b, 0x43, 0xfb, 0xf5, 0x83, 0xe6, 0x6c, 0x47, 0x0e, 0x31, 0x3c, 0xbe, 0x2d, 0xfc, 0x82, 0x60, 0x83, 0x36, 0x1a, 0x05, 0x16, 0x07, 0xc1, 0x82, 0x60, 0x83, 0xe6, 0xf2, 0x52, 0x06, 0xc9, 0x20, 0x3b, 0x48, 0xe2, 0x31, 0x39, 0xa4, 0xe1, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xc0, 0x2f, 0x6b, 0x4b, 0x73, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0x0a, 0xbf, 0x20, 0xd8, 0x60, 0xd1, 0x70, 0xd6, 0xe2, 0x20, 0x5b, 0x43, 0x1e, 0x7b, 0x71, 0x43, 0xee, 0x7b, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x71, 0x1c, 0xfc, 0x1e, 0x5c, 0x1e, 0x3c, 0x3c, 0x38, 0x78, 0x64, 0x1c, 0xdf, 0x8e, 0xc7, 0xc3, 0x6e, 0xb0, 0xb6, 0xff, 0x7f, 0x41, 0xb0, 0x41, 0x33, 0x54, 0x29, 0x07, 0x6d, 0x06, 0xa2, 0x0c, 0xbb, 0x41, 0xc3, 0x1b, 0x24, 0x0b, 0xbb, 0xb0, 0x0b, 0xb7, 0xc1, 0x52, 0xe4, 0xac, 0x09, 0x6a, 0xfb, 0x86, 0x18, 0x0e, 0xbb, 0xc1, 0xba, 0xf1, 0xac, 0x43, 0x3a, 0x77, 0x41, 0xb4, 0xa0, 0xfb, 0x90, 0x3a, 0x38, 0xec, 0x15, 0x1e, 0x4e, 0xb1, 0x61, 0x37, 0x68, 0x26, 0x84, 0x64, 0x41, 0xb0, 0x41, 0x03, 0xb6, 0x29, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x42, 0x3e, 0xfb, 0xa0, 0x75, 0x42, 0x94, 0xe3, 0xd0, 0xb0, 0x1b, 0xb4, 0xab, 0x42, 0xb2, 0x20, 0xd8, 0x60, 0xcd, 0xd1, 0xfe, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xb5, 0x50, 0xfb, 0x07, 0x6d, 0x37, 0xc8, 0x1c, 0x87, 0x86, 0xdd, 0xa0, 0x09, 0x1e, 0x92, 0x05, 0xc1, 0x06, 0x4d, 0xb5, 0xa7, 0x1c, 0xb4, 0xcc, 0x24, 0x33, 0xec, 0x06, 0xad, 0x06, 0x91, 0x6c, 0xd0, 0xf0, 0x23, 0xca, 0x20, 0xdb, 0xd0, 0x7c, 0xfd, 0xb0, 0x57, 0x78, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0xfe, 0x9d, 0x5c, 0x18, 0x7c, 0x48, 0x2d, 0x1d, 0x8f, 0x57, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x1d, 0x28, 0xe2, 0x06, 0x9a, 0x6e, 0xc4, 0x0f, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x1a, 0x51, 0xc4, 0x1d, 0x34, 0xa1, 0x26, 0x33, 0x08, 0x36, 0x58, 0xcd, 0x71, 0xb4, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0x58, 0xc4, 0x0f, 0xf4, 0xc7, 0x08, 0xc9, 0x20, 0x58, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x17, 0x8b, 0x90, 0x1d, 0xb4, 0x61, 0x27, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x36, 0x16, 0xf1, 0x07, 0x6d, 0xd8, 0xc9, 0x0c, 0xbb, 0xc1, 0x52, 0xc1, 0xa0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xc6, 0x22, 0x2c, 0x06, 0xda, 0x58, 0x84, 0xfe, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x58, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x8d, 0x45, 0x18, 0x0e, 0xb4, 0xb1, 0x08, 0xf5, 0x1b, 0x2c, 0x65, 0xd6, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x1b, 0x8b, 0xb0, 0x3e, 0x68, 0xc3, 0x51, 0x66, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xb1, 0x08, 0xf3, 0x81, 0x36, 0x16, 0xa1, 0x6f, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xb1, 0x08, 0xfb, 0x81, 0x36, 0x16, 0xa1, 0xe4, 0x60, 0x95, 0x29, 0xd5, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x63, 0x11, 0x5a, 0x06, 0xda, 0x58, 0x84, 0xb2, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xc6, 0x22, 0xd4, 0x0c, 0xb4, 0xb1, 0x08, 0x55, 0x87, 0x7c, 0xed, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x63, 0x11, 0xda, 0x06, 0xda, 0x58, 0x84, 0xba, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xc6, 0x22, 0x14, 0x0e, 0xb4, 0xb1, 0x08, 0xed, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x8d, 0x45, 0x68, 0x1c, 0x68, 0x63, 0x11, 0x6a, 0x0f, 0x56, 0x34, 0x1d, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x8d, 0x45, 0xe8, 0x1d, 0x68, 0x63, 0x11, 0xca, 0x0f, 0x16, 0x9a, 0x18, 0x1d, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xc7, 0x22, 0xfe, 0xa0, 0x0d, 0x3b, 0x99, 0x61, 0x17, 0x6e, 0x83, 0x15, 0x4d, 0x47, 0x87, 0x1e, 0x42, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x95, 0x45, 0x48, 0x06, 0x7a, 0x5c, 0x84, 0x6c, 0xd8, 0x85, 0xdb, 0x60, 0xe1, 0x8c, 0xd1, 0xa1, 0x63, 0xd8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x65, 0x11, 0x86, 0x03, 0xbd, 0x2c, 0xc2, 0x87, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x58, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x97, 0x45, 0xd8, 0x0f, 0xf4, 0xb2, 0x08, 0x17, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x2f, 0x8b, 0x50, 0x30, 0xd0, 0xcb, 0x22, 0xb4, 0x1c, 0x2c, 0x9c, 0x31, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xbd, 0x2c, 0x42, 0xcd, 0x40, 0x2f, 0x8b, 0xd0, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x59, 0x84, 0x9e, 0x81, 0x5e, 0x16, 0xa1, 0xec, 0x60, 0x45, 0xd3, 0xd1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x59, 0x84, 0xb6, 0x81, 0x5e, 0x16, 0xa1, 0xf2, 0x60, 0xa1, 0x89, 0xd1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x59, 0x84, 0xd2, 0x81, 0x5e, 0x16, 0xe1, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x65, 0x11, 0x5a, 0x07, 0x7a, 0x59, 0x84, 0xea, 0x83, 0x15, 0x4d, 0x47, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x65, 0x11, 0xba, 0x07, 0x7a, 0x59, 0x84, 0x03, 0x07, 0x0b, 0x4d, 0x8c, 0x8e, 0xc7, 0xc3, 0x2e, 0xdc, 0x06, 0x0b, 0x81, 0x8c, 0x0e, 0x1d, 0xc3, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x33, 0x8b, 0x30, 0x1c, 0x68, 0x66, 0x11, 0xae, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xcc, 0x22, 0x2c, 0x07, 0x9a, 0x59, 0x84, 0xf5, 0x41, 0x33, 0x1e, 0x2a, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x66, 0x16, 0x61, 0x3e, 0xd0, 0xcc, 0x22, 0x54, 0x0e, 0x92, 0x21, 0x83, 0x68, 0xc1, 0x7a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xcd, 0x2c, 0x42, 0xcb, 0x40, 0x33, 0x8b, 0xd0, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x9a, 0x59, 0x84, 0x9a, 0x81, 0x66, 0x16, 0xa1, 0xeb, 0x90, 0xfb, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xcd, 0x2c, 0x42, 0xd9, 0x40, 0x33, 0x8b, 0x50, 0x77, 0x30, 0x6e, 0x77, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xcc, 0x22, 0xf4, 0x0d, 0x34, 0xb3, 0x08, 0x85, 0x87, 0x18, 0x1e, 0x8f, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x9a, 0x59, 0x84, 0xce, 0x81, 0x66, 0x16, 0xe1, 0xc7, 0x20, 0x19, 0x32, 0x88, 0x16, 0xac, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xcc, 0x22, 0x54, 0x0f, 0x34, 0xb3, 0x08, 0x37, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x33, 0x8b, 0xd0, 0x3d, 0xd0, 0xcc, 0x22, 0x1c, 0x38, 0xe4, 0xbe, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x33, 0x8b, 0xf0, 0x60, 0xa0, 0x99, 0x45, 0xf8, 0x70, 0x30, 0x6e, 0x77, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xcc, 0x22, 0x9c, 0x18, 0x68, 0x66, 0x11, 0x5e, 0x1c, 0x8e, 0xf6, 0xe3, 0xf1, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xcc, 0x22, 0x1c, 0x19, 0x68, 0x66, 0x11, 0x9e, 0x1c, 0x62, 0x78, 0x1c, 0x1a, 0x76, 0xe1, 0x36, 0x58, 0xde, 0x64, 0x74, 0xe8, 0x18, 0xb6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0x59, 0x84, 0xe1, 0x40, 0x37, 0x8b, 0x50, 0x36, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xeb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xb3, 0x08, 0xfb, 0x81, 0x6e, 0x16, 0xa1, 0x6b, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xb3, 0x08, 0x05, 0x03, 0xdd, 0x2c, 0x42, 0xcb, 0x21, 0xf7, 0xbd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0x59, 0x84, 0x9a, 0x81, 0x6e, 0x16, 0xa1, 0xe8, 0x60, 0x48, 0xfd, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x9b, 0x45, 0x68, 0x1a, 0xe8, 0x66, 0x11, 0xaa, 0x0e, 0x31, 0x3c, 0x1e, 0x0f, 0xbb, 0x70, 0x1b, 0xac, 0x6f, 0x30, 0x3a, 0x74, 0x0c, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xed, 0x2c, 0xc2, 0x70, 0xa0, 0x9d, 0x45, 0x58, 0x1f, 0xac, 0x6f, 0x30, 0x1a, 0x76, 0xe1, 0x0e, 0xda, 0xf9, 0x79, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xfd, 0x2c, 0xc2, 0x70, 0xa0, 0x9f, 0x45, 0xa8, 0x1f, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xb3, 0x08, 0xdb, 0x81, 0x7e, 0x16, 0xa1, 0x73, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x7e, 0x16, 0x61, 0x3c, 0xd0, 0xcf, 0x22, 0x94, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xcf, 0x22, 0x74, 0x0c, 0xf4, 0xb3, 0x08, 0x2d, 0x83, 0x64, 0x20, 0x2c, 0x07, 0x01, 0xef, 0x3f, 0x48, 0x06, 0xe7, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xfd, 0x2c, 0x42, 0xcd, 0x40, 0x3f, 0x8b, 0xd0, 0x75, 0xb0, 0xbe, 0xc1, 0xe8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x67, 0x11, 0xda, 0x06, 0xfa, 0x59, 0x84, 0xba, 0xc3, 0xd1, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xb3, 0x08, 0x7d, 0x03, 0xfd, 0x2c, 0x42, 0xe5, 0x21, 0x6b, 0x77, 0x1c, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xfd, 0x2c, 0x42, 0xe9, 0x40, 0x3f, 0x8b, 0xd0, 0x7c, 0xb0, 0xbe, 0xc1, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xfd, 0x2c, 0x42, 0xf5, 0x40, 0x3f, 0x8b, 0xd0, 0x7e, 0xc8, 0xda, 0x0d, 0xb2, 0x35, 0xb4, 0x5f, 0x1f, 0x76, 0x83, 0x65, 0x98, 0xfe, 0x0b, 0xb7, 0xc1, 0xc2, 0x0b, 0xa3, 0x43, 0xe3, 0xa2, 0xc3, 0xd1, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x8e, 0x16, 0x21, 0x1b, 0x68, 0x71, 0x11, 0xd2, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x5a, 0x84, 0x7c, 0xa0, 0xa3, 0x45, 0x58, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xa3, 0x45, 0xd8, 0x1c, 0x34, 0x83, 0x3d, 0x33, 0xfc, 0x82, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xb4, 0x08, 0xa3, 0x81, 0x8e, 0x16, 0x61, 0x77, 0xd0, 0xf0, 0xb6, 0xc0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x68, 0x11, 0x86, 0x03, 0x1d, 0x2d, 0xc2, 0xf8, 0xa0, 0x79, 0x65, 0x81, 0xe3, 0xd0, 0xf1, 0x6d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x2d, 0x2d, 0x42, 0x76, 0xd0, 0xa8, 0xf4, 0xcc, 0x20, 0x58, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x4b, 0x8b, 0x90, 0x1f, 0x34, 0x2a, 0x3d, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x9e, 0x16, 0x21, 0x3b, 0x68, 0x54, 0x7a, 0x66, 0xd8, 0x85, 0xdb, 0x60, 0x7d, 0x83, 0xd1, 0x21, 0xd9, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x9a, 0x5a, 0x84, 0xe1, 0x40, 0x53, 0x8b, 0xb0, 0x3e, 0x58, 0xdf, 0x60, 0x34, 0xec, 0xc2, 0x6d, 0xb0, 0xd0, 0xc4, 0xe8, 0x90, 0xec, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x5d, 0x2d, 0xc2, 0x70, 0xa0, 0xab, 0x45, 0x68, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x5d, 0x2d, 0xc2, 0x72, 0xa0, 0xab, 0x45, 0x98, 0x1f, 0x2c, 0xbc, 0x30, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x5d, 0x2d, 0xc2, 0x7e, 0xa0, 0xab, 0x45, 0xa8, 0x3a, 0x28, 0x65, 0x76, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xd5, 0x22, 0x74, 0x0d, 0x74, 0xb5, 0x08, 0x65, 0x87, 0x18, 0x0e, 0xbb, 0xb0, 0x0b, 0x3d, 0x24, 0x3b, 0x16, 0x6e, 0x83, 0x85, 0x17, 0x46, 0x07, 0x25, 0x8c, 0xc4, 0xe1, 0x68, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x6d, 0x2d, 0xc2, 0x70, 0xa0, 0xb5, 0x45, 0x58, 0x0f, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xda, 0x5a, 0x84, 0xf1, 0x40, 0x5b, 0x8b, 0x50, 0x3a, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x5b, 0x8b, 0xb0, 0x1e, 0x68, 0x6b, 0x11, 0x1a, 0x0e, 0x5a, 0x00, 0x0a, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xb5, 0x08, 0x15, 0x03, 0x6d, 0x2d, 0x42, 0xdb, 0x41, 0x29, 0xb3, 0x33, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xb5, 0x08, 0x75, 0x03, 0x6d, 0x2d, 0x42, 0xe7, 0x41, 0x02, 0xb6, 0xc0, 0x71, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xb6, 0x08, 0xc3, 0x83, 0x66, 0x54, 0x68, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x63, 0x8b, 0x30, 0x1e, 0x68, 0x6c, 0x11, 0x1a, 0x0e, 0x16, 0x5e, 0x18, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xce, 0x16, 0x61, 0x3a, 0xd0, 0xd9, 0x22, 0x34, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xd9, 0x22, 0x6c, 0x07, 0x3a, 0x5b, 0x84, 0xf9, 0x20, 0x19, 0x28, 0x2b, 0x07, 0xc7, 0xac, 0xe2, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x67, 0x8b, 0xb0, 0x1f, 0xe8, 0x6c, 0x11, 0xaa, 0x0e, 0x4a, 0x99, 0x9d, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xb3, 0x45, 0xe8, 0x1a, 0xe8, 0x6c, 0x11, 0x0a, 0x0f, 0x12, 0xb0, 0x05, 0x8e, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x6d, 0x11, 0x86, 0x07, 0xcd, 0xa8, 0xd0, 0x1c, 0x8c, 0x20, 0xcf, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xb5, 0x08, 0xdb, 0x81, 0xbe, 0x16, 0xa1, 0x77, 0x90, 0xad, 0x21, 0x8f, 0x3d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xbe, 0x16, 0xa1, 0x64, 0xa0, 0xaf, 0x45, 0xe8, 0x1c, 0x03, 0x3c, 0xc3, 0xe8, 0xde, 0xda, 0x5a, 0xda, 0xd2, 0xe6, 0xda, 0xc2, 0xe8, 0xc6, 0xd0, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xb5, 0x08, 0xa5, 0x03, 0x7d, 0x2d, 0x42, 0xed, 0xe1, 0x14, 0x1b, 0x76, 0x61, 0x37, 0x68, 0x43, 0x84, 0x66, 0xe1, 0x36, 0x58, 0x38, 0x63, 0x74, 0x50, 0xc2, 0x48, 0x1c, 0x8e, 0xf6, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xdb, 0x22, 0x0c, 0x07, 0x7a, 0x5b, 0x84, 0xf5, 0xc1, 0xfa, 0x06, 0xa3, 0x61, 0x17, 0x76, 0x83, 0x36, 0x44, 0x68, 0x16, 0x6e, 0x83, 0x35, 0xdd, 0x52, 0x07, 0x25, 0x8c, 0xc4, 0xe1, 0x68, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xcd, 0x2d, 0xc2, 0x70, 0xa0, 0xb9, 0x45, 0x58, 0x1f, 0xac, 0x6f, 0x30, 0x1a, 0x76, 0x61, 0x37, 0x68, 0x43, 0x84, 0x66, 0xe1, 0x36, 0x58, 0x48, 0x2f, 0x75, 0x50, 0xc2, 0x48, 0x1c, 0x8e, 0xf6, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xdd, 0x22, 0x0c, 0x07, 0xba, 0x5b, 0x84, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x38, 0x3f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xee, 0x16, 0x61, 0x3e, 0xd0, 0xdd, 0x22, 0x74, 0x1c, 0x8c, 0x20, 0xcf, 0xe3, 0xf1, 0xb0, 0x0b, 0xbb, 0x41, 0x1b, 0x22, 0x34, 0x0b, 0xb7, 0xc1, 0x52, 0x86, 0xa9, 0x83, 0x12, 0x46, 0xe2, 0x70, 0xb4, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xf6, 0x16, 0x61, 0x38, 0xd0, 0xde, 0x22, 0x9c, 0x19, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xbd, 0x45, 0x58, 0x0e, 0xb4, 0xb7, 0x08, 0xeb, 0x83, 0xe6, 0x2a, 0x5c, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x7b, 0x8b, 0x30, 0x1f, 0x68, 0x6f, 0x11, 0xbe, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xde, 0x22, 0xec, 0x07, 0xda, 0x5b, 0x84, 0x8e, 0x83, 0x76, 0x34, 0x5c, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xed, 0x2d, 0x42, 0xc9, 0x40, 0x7b, 0x8b, 0xd0, 0x39, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x7b, 0x8b, 0x50, 0x35, 0xd0, 0xde, 0x22, 0x94, 0x1d, 0x2c, 0xa8, 0xdd, 0x1f, 0x24, 0x03, 0xa1, 0x1b, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xb7, 0x08, 0x6d, 0x03, 0xed, 0x2d, 0x42, 0xe5, 0xc1, 0x58, 0xec, 0x3c, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xed, 0x2d, 0x42, 0xe9, 0x40, 0x7b, 0x8b, 0x70, 0x65, 0x10, 0x6c, 0xb0, 0xd0, 0xc4, 0x68, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xed, 0x2d, 0x42, 0xfb, 0x40, 0x7b, 0x8b, 0xf0, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xce, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xbd, 0x45, 0x38, 0x31, 0xd0, 0xde, 0x22, 0x1c, 0x39, 0xa4, 0x0e, 0x0e, 0xc9, 0xa5, 0xe3, 0xf1, 0x71, 0xe8, 0x38, 0x34, 0xec, 0xc2, 0x6e, 0xd0, 0x86, 0x08, 0xcd, 0xc2, 0x6d, 0xb0, 0x34, 0x65, 0xea, 0xa0, 0x84, 0x91, 0x38, 0x1c, 0xed, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xbf, 0x45, 0x18, 0x0e, 0xf4, 0xb7, 0x08, 0x8d, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xb7, 0x08, 0xcb, 0x81, 0xfe, 0x16, 0x61, 0x3d, 0x48, 0x06, 0xce, 0xbe, 0x83, 0x61, 0xe8, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x6f, 0x11, 0xe6, 0x03, 0xfd, 0x2d, 0x42, 0xc7, 0x41, 0x02, 0xb6, 0xc0, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xdf, 0x22, 0x94, 0x0c, 0xf4, 0xb7, 0x08, 0x85, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x70, 0x7e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xfd, 0x2d, 0x42, 0xd5, 0x40, 0x7f, 0x8b, 0xd0, 0x77, 0x30, 0x82, 0x3c, 0x8f, 0xc7, 0xc7, 0xa1, 0x41, 0xb6, 0x86, 0xf6, 0xeb, 0xc3, 0x6e, 0xd0, 0x86, 0x08, 0xcd, 0xc2, 0x6d, 0xb0, 0x5c, 0x69, 0xea, 0xa0, 0x84, 0x91, 0x38, 0x1c, 0xed, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x70, 0x11, 0x86, 0x03, 0x1d, 0x2e, 0xc2, 0x8b, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x83, 0x8b, 0x30, 0x1e, 0x68, 0x70, 0x11, 0xfa, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x70, 0x11, 0xd6, 0x03, 0x0d, 0x2e, 0x42, 0xd5, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x0d, 0x2e, 0x42, 0xc7, 0x40, 0x83, 0x8b, 0xd0, 0x72, 0xb0, 0xa0, 0x76, 0x7f, 0x90, 0x0c, 0x4c, 0xdf, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xc1, 0x45, 0xa8, 0x19, 0x68, 0x70, 0x11, 0x9a, 0x0e, 0xa9, 0x83, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x70, 0x11, 0xba, 0x06, 0x1a, 0x5c, 0x84, 0xba, 0x43, 0xb2, 0xe3, 0x38, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x1a, 0x5c, 0x84, 0xc6, 0x81, 0x06, 0x17, 0xa1, 0xf6, 0x60, 0x7d, 0x83, 0xd1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x5c, 0x84, 0xe1, 0x41, 0x4b, 0x34, 0x35, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x70, 0x7e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x1d, 0x2e, 0x42, 0xef, 0x40, 0x87, 0x8b, 0x70, 0x62, 0x90, 0x0c, 0x66, 0x83, 0x68, 0x61, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xe1, 0x22, 0x1c, 0x18, 0xe8, 0x70, 0x11, 0x3e, 0x1c, 0x92, 0x1d, 0x07, 0x41, 0xce, 0x3f, 0x88, 0x16, 0x76, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x1d, 0x2e, 0xc2, 0x7c, 0xa0, 0xc3, 0x45, 0x68, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xc3, 0x45, 0xd8, 0x0f, 0x74, 0xb8, 0x08, 0x65, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xb8, 0x08, 0x2d, 0x03, 0x1d, 0x2e, 0x42, 0xcf, 0xc1, 0x82, 0xda, 0xfd, 0x41, 0x32, 0x38, 0x35, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x70, 0x11, 0x8a, 0x06, 0x3a, 0x5c, 0x84, 0xae, 0x43, 0xea, 0xe0, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x5c, 0x84, 0xb6, 0x81, 0x0e, 0x17, 0xa1, 0xf0, 0x90, 0xec, 0x38, 0x0e, 0x1d, 0x8f, 0x8f, 0x6f, 0xc3, 0x2e, 0xdc, 0x06, 0x0b, 0x67, 0x8c, 0x0e, 0x3d, 0x84, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x9b, 0x8b, 0x90, 0x0c, 0xf4, 0xbe, 0x08, 0xd9, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x6d, 0x2e, 0x42, 0x3a, 0xd0, 0xe6, 0x22, 0x6c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xe6, 0x22, 0x2c, 0x0e, 0x5a, 0x27, 0xad, 0x19, 0x7e, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xda, 0x5c, 0x84, 0xc9, 0x40, 0x9b, 0x8b, 0xb0, 0x3a, 0x68, 0x78, 0x5b, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xb9, 0x08, 0xb3, 0x81, 0x36, 0x17, 0x61, 0x7a, 0xd0, 0xbc, 0xb2, 0xc0, 0x71, 0xe8, 0xf8, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x3e, 0x17, 0x21, 0x39, 0x68, 0xeb, 0xb3, 0x66, 0x10, 0x2c, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xcf, 0x45, 0x48, 0x0f, 0xda, 0xfa, 0xac, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xa3, 0x8b, 0x90, 0x1c, 0xb4, 0xf5, 0x59, 0x33, 0xec, 0x06, 0x4d, 0xfc, 0xcf, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x4e, 0x17, 0x61, 0x38, 0xd0, 0xe9, 0x22, 0xac, 0x0f, 0xd6, 0x37, 0x18, 0x0d, 0xbb, 0x41, 0xcb, 0x07, 0x34, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xd5, 0x45, 0x18, 0x0e, 0x34, 0xbb, 0x08, 0xa5, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xba, 0x08, 0xe3, 0x81, 0x56, 0x17, 0xa1, 0x6e, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xd6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x75, 0x11, 0x4a, 0x06, 0x5a, 0x5d, 0x84, 0xb6, 0x83, 0x22, 0x57, 0xe1, 0x90, 0x5c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xaf, 0x8b, 0x30, 0x3c, 0x68, 0x13, 0xbb, 0x66, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xeb, 0x22, 0x8c, 0x07, 0x7a, 0x5d, 0x84, 0x9a, 0xe1, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xaf, 0x8b, 0x30, 0x1f, 0xe8, 0x75, 0x11, 0x3a, 0x0e, 0xd6, 0x37, 0x18, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xd7, 0x45, 0x28, 0x19, 0xe8, 0x75, 0x11, 0x5a, 0x8e, 0x43, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xd7, 0x45, 0x28, 0x1a, 0xe8, 0x75, 0x11, 0xda, 0x0e, 0xd6, 0x37, 0x18, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xd9, 0x45, 0x18, 0x1e, 0xb4, 0x89, 0x5d, 0x33, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xb3, 0x8b, 0xb0, 0x1c, 0x68, 0x76, 0x11, 0xd6, 0x07, 0xed, 0x0c, 0xc6, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x9a, 0x5d, 0x84, 0xf9, 0x40, 0xb3, 0x8b, 0xb0, 0x3f, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xcd, 0x2e, 0x42, 0xc1, 0x40, 0xb3, 0x8b, 0xd0, 0x39, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xeb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xbb, 0x08, 0x45, 0x03, 0xcd, 0x2e, 0x42, 0xe5, 0x41, 0xc3, 0x3e, 0x23, 0x87, 0x15, 0xda, 0xe3, 0xd0, 0xb0, 0x1b, 0xb4, 0x1b, 0x42, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0x5d, 0x84, 0xe1, 0x40, 0xb7, 0x8b, 0xb0, 0x3e, 0x58, 0xdf, 0x60, 0x34, 0xec, 0x06, 0x0d, 0x2f, 0xd2, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x76, 0x17, 0x61, 0x38, 0xd0, 0xf0, 0x22, 0xf4, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xee, 0x22, 0x8c, 0x07, 0xda, 0x5d, 0x84, 0xe6, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x88, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xbb, 0x8b, 0xd0, 0x39, 0xd0, 0xee, 0x22, 0x14, 0x1f, 0x24, 0x60, 0x0b, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xdd, 0x45, 0x28, 0x19, 0x68, 0x77, 0x11, 0xda, 0x0e, 0x8a, 0x5c, 0x85, 0x43, 0x72, 0x69, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xfd, 0x2e, 0xc2, 0xf0, 0xa0, 0x95, 0x1a, 0x9b, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xbf, 0x8b, 0x30, 0x1e, 0xe8, 0x77, 0x11, 0x6a, 0x86, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xfd, 0x2e, 0xc2, 0x7c, 0xa0, 0xdf, 0x45, 0xe8, 0x38, 0x58, 0xdf, 0x60, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x7e, 0x17, 0xa1, 0x64, 0xa0, 0xdf, 0x45, 0x68, 0x39, 0x0e, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x7e, 0x17, 0xa1, 0x68, 0xa0, 0xdf, 0x45, 0x68, 0x3b, 0x58, 0xdf, 0x60, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x86, 0x17, 0x61, 0x78, 0xd0, 0x4a, 0x8d, 0xcd, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x0d, 0x2f, 0xc2, 0x72, 0xa0, 0xe1, 0x45, 0x58, 0x1f, 0xb4, 0x33, 0x18, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x78, 0x11, 0xe6, 0x03, 0x0d, 0x2f, 0xc2, 0xfe, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xbc, 0x08, 0x05, 0x03, 0x0d, 0x2f, 0x42, 0xfd, 0x20, 0x19, 0x32, 0x88, 0x16, 0xc4, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xe1, 0x45, 0x28, 0x1e, 0x68, 0x78, 0x11, 0xda, 0x27, 0xa8, 0xf9, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x78, 0x11, 0x8a, 0x06, 0x1a, 0x5e, 0x84, 0xca, 0x83, 0x86, 0x7d, 0x46, 0x0e, 0x2b, 0xb4, 0xc7, 0xa1, 0x61, 0x37, 0x68, 0xdc, 0x92, 0x66, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xbc, 0x08, 0xc3, 0x81, 0xae, 0x17, 0xa1, 0x67, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x8e, 0x17, 0x61, 0x3c, 0xd0, 0xf1, 0x22, 0x34, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x41, 0xbc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x5e, 0x84, 0xce, 0x81, 0x8e, 0x17, 0xa1, 0xf8, 0x20, 0x01, 0x5b, 0x60, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x1d, 0x2f, 0x42, 0xc9, 0x40, 0xc7, 0x8b, 0xd0, 0x76, 0x50, 0xe4, 0x2a, 0x1c, 0x92, 0x4b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x79, 0x11, 0x86, 0x07, 0x0d, 0x59, 0xda, 0x0c, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x5e, 0x84, 0xf1, 0x40, 0xcb, 0x8b, 0x50, 0x33, 0xdc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x79, 0x11, 0xe6, 0x03, 0x2d, 0x2f, 0x42, 0xc7, 0xc1, 0xfa, 0x06, 0xa3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xbc, 0x08, 0x25, 0x03, 0x2d, 0x2f, 0x42, 0xcb, 0x71, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xbc, 0x08, 0x45, 0x03, 0x2d, 0x2f, 0x42, 0xdb, 0xc1, 0xfa, 0x06, 0xa3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xbc, 0x08, 0xc3, 0x83, 0x86, 0x2c, 0x6d, 0x86, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x3d, 0x2f, 0xc2, 0x78, 0xa0, 0xe7, 0x45, 0xe8, 0x1b, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xbc, 0x08, 0xf3, 0x81, 0x9e, 0x17, 0xa1, 0xe3, 0x60, 0xa1, 0x89, 0xd1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x5e, 0x84, 0x92, 0x81, 0x9e, 0x17, 0xa1, 0xee, 0xa0, 0x61, 0x9f, 0x91, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xf5, 0x22, 0x0c, 0x0f, 0x1a, 0xb2, 0xb4, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x5d, 0x2f, 0xc2, 0x72, 0xa0, 0xeb, 0x45, 0x98, 0x1f, 0xac, 0xe9, 0x96, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x5d, 0x2f, 0xc2, 0x7e, 0xa0, 0xeb, 0x45, 0x28, 0x38, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xeb, 0x45, 0x68, 0x18, 0xe8, 0x7a, 0x11, 0x6a, 0x0e, 0x9a, 0x44, 0xb4, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xd3, 0x8b, 0x30, 0x1d, 0x68, 0x7a, 0x11, 0x1e, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xf4, 0x22, 0x6c, 0x07, 0x9a, 0x5e, 0x84, 0xfd, 0x41, 0x3b, 0x83, 0x31, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xa6, 0x17, 0xa1, 0x60, 0xa0, 0xe9, 0x45, 0x68, 0x38, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x4d, 0x2f, 0x42, 0xc5, 0x40, 0xd3, 0x8b, 0x70, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xe2, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xf4, 0x22, 0x54, 0x0f, 0x34, 0xbd, 0x08, 0xfd, 0x07, 0x0b, 0x4d, 0x8c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xf4, 0x22, 0x54, 0x0d, 0x34, 0xbd, 0x08, 0xa5, 0x07, 0x0d, 0xfb, 0x8c, 0x1c, 0x56, 0x68, 0x8f, 0x43, 0xc3, 0x6e, 0xd0, 0x80, 0x28, 0xcd, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x7b, 0x11, 0x86, 0x03, 0x6d, 0x2f, 0x42, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x9c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xdb, 0x8b, 0x30, 0x1f, 0x68, 0x7b, 0x11, 0x3a, 0x0e, 0x46, 0x90, 0xe7, 0xf1, 0x78, 0xd8, 0x0d, 0xda, 0xa2, 0xa5, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x7d, 0x2f, 0xc2, 0x70, 0xa0, 0xef, 0x45, 0x38, 0x33, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xdf, 0x8b, 0xb0, 0x1c, 0xe8, 0x7b, 0x11, 0xd6, 0x07, 0xcd, 0x55, 0xb8, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xbe, 0x17, 0x61, 0x3e, 0xd0, 0xf7, 0x22, 0x7c, 0x19, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xef, 0x45, 0xd8, 0x0f, 0xf4, 0xbd, 0x08, 0x1d, 0x07, 0xed, 0x68, 0xb8, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xfa, 0x5e, 0x84, 0x92, 0x81, 0xbe, 0x17, 0xa1, 0x73, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xbe, 0x17, 0xa1, 0x6a, 0xa0, 0xef, 0x45, 0x28, 0x3b, 0x58, 0x50, 0xbb, 0x3f, 0x48, 0x06, 0x42, 0x37, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x7b, 0x11, 0xda, 0x06, 0xfa, 0x5e, 0x84, 0xca, 0x83, 0xb1, 0xd8, 0x79, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xfa, 0x5e, 0x84, 0xd2, 0x81, 0xbe, 0x17, 0xe1, 0xca, 0x20, 0xd8, 0x60, 0xa1, 0x89, 0xd1, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xfa, 0x5e, 0x84, 0xf6, 0x81, 0xbe, 0x17, 0xe1, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x9c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xdf, 0x8b, 0x70, 0x62, 0xa0, 0xef, 0x45, 0x38, 0x72, 0x48, 0x1d, 0x1c, 0x92, 0x4b, 0xc7, 0xe3, 0xe3, 0xd0, 0x71, 0x68, 0xd8, 0x0d, 0x5a, 0x0e, 0xa8, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x8d, 0x2f, 0xc2, 0x70, 0xa0, 0xf1, 0x45, 0x68, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xf1, 0x45, 0x58, 0x0e, 0x34, 0xbe, 0x08, 0xeb, 0x83, 0x56, 0x22, 0x6a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x8d, 0x2f, 0xc2, 0x7c, 0xa0, 0xf1, 0x45, 0xe8, 0x38, 0x48, 0xc0, 0x16, 0x18, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x1a, 0x5f, 0x84, 0x92, 0x81, 0xc6, 0x17, 0xa1, 0x70, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xce, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xf1, 0x45, 0xa8, 0x1a, 0x68, 0x7c, 0x11, 0xfa, 0x0e, 0x46, 0x90, 0xe7, 0xf1, 0xf8, 0x38, 0x34, 0xc8, 0x36, 0x68, 0x5f, 0xa5, 0x66, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x9d, 0x2f, 0xc2, 0x70, 0xa0, 0xf5, 0x45, 0x78, 0x31, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x7c, 0x11, 0xc6, 0x03, 0x9d, 0x2f, 0x42, 0xdf, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x9d, 0x2f, 0xc2, 0x7a, 0xa0, 0xf3, 0x45, 0xa8, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xf3, 0x45, 0xe8, 0x18, 0xe8, 0x7c, 0x11, 0x5a, 0x0e, 0x16, 0xd4, 0xee, 0x0f, 0x92, 0x81, 0xe9, 0x1b, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xbe, 0x08, 0x35, 0x03, 0x9d, 0x2f, 0x42, 0xd3, 0x21, 0x75, 0x70, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x9d, 0x2f, 0x42, 0xd7, 0x40, 0xe7, 0x8b, 0x50, 0x77, 0x48, 0x76, 0x1c, 0x87, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xe7, 0x8b, 0xd0, 0x38, 0xd0, 0xf9, 0x22, 0xd4, 0x1e, 0xac, 0x6f, 0x30, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xeb, 0x8b, 0x30, 0x3c, 0x68, 0x8e, 0xf4, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xce, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xf5, 0x45, 0xe8, 0x1d, 0x68, 0x7d, 0x11, 0x4e, 0x0c, 0x92, 0xc1, 0x6c, 0x10, 0x2d, 0xec, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x5f, 0x84, 0x03, 0x03, 0xad, 0x2f, 0xc2, 0x87, 0x43, 0xb2, 0xe3, 0x20, 0xc8, 0xf9, 0x07, 0xd1, 0xc2, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xf5, 0x45, 0x98, 0x0f, 0xb4, 0xbe, 0x08, 0x8d, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xbe, 0x08, 0xfb, 0x81, 0xd6, 0x17, 0xa1, 0x6c, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xd6, 0x17, 0xa1, 0x65, 0xa0, 0xf5, 0x45, 0xe8, 0x39, 0x58, 0x50, 0xbb, 0x3f, 0x48, 0x06, 0xa7, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xad, 0x2f, 0x42, 0xd1, 0x40, 0xeb, 0x8b, 0xd0, 0x75, 0x48, 0x1d, 0x1c, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xeb, 0x8b, 0xd0, 0x36, 0xd0, 0xfa, 0x22, 0x14, 0x1e, 0x92, 0x1d, 0xc7, 0xa1, 0xe3, 0xf1, 0xf1, 0x6d, 0xd8, 0x85, 0xdb, 0x90, 0xfb, 0x3e, 0xf4, 0x10, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xed, 0x2f, 0x42, 0x32, 0xd0, 0x11, 0x23, 0x64, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xbf, 0x08, 0xe9, 0x40, 0xfb, 0x8b, 0xb0, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xfb, 0x8b, 0xb0, 0x38, 0x68, 0x97, 0x02, 0x67, 0xf8, 0x05, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x7f, 0x11, 0x26, 0x03, 0xed, 0x2f, 0xc2, 0xea, 0xa0, 0xe1, 0x6d, 0x81, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xfe, 0x22, 0xcc, 0x06, 0xda, 0x5f, 0x84, 0xe9, 0x41, 0xf3, 0xca, 0x02, 0xc7, 0xa1, 0xe3, 0xdb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xfa, 0x5f, 0x84, 0xe4, 0xa0, 0x95, 0x07, 0x9c, 0x41, 0xb0, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xfe, 0x17, 0x21, 0x3d, 0x68, 0xe5, 0x01, 0x67, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x0d, 0x30, 0x42, 0x72, 0xd0, 0xca, 0x03, 0xce, 0xb0, 0x1b, 0x34, 0xf1, 0x3f, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x60, 0x84, 0xd9, 0x40, 0x07, 0x8c, 0xb0, 0x3d, 0x58, 0xdf, 0x60, 0x34, 0xec, 0x06, 0x2d, 0x1f, 0xd0, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x16, 0x18, 0x61, 0x36, 0xd0, 0x02, 0x23, 0x54, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x16, 0x18, 0x61, 0x37, 0xd0, 0x02, 0x23, 0x8c, 0x0f, 0x16, 0x5e, 0x18, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x16, 0x18, 0x61, 0x3d, 0xd0, 0x02, 0x23, 0xd4, 0x1c, 0x14, 0xb9, 0x0a, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x81, 0x11, 0x7a, 0x06, 0x5a, 0x60, 0x84, 0xc6, 0x0d, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x0b, 0x8c, 0x50, 0x74, 0xd0, 0x84, 0x16, 0xce, 0x41, 0x29, 0xb3, 0x33, 0xec, 0x06, 0xed, 0x86, 0xd0, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x1e, 0x18, 0x61, 0x36, 0xd0, 0x09, 0x23, 0x14, 0x0c, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x60, 0x84, 0xe9, 0x40, 0x0f, 0x8c, 0x50, 0x3f, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x81, 0x11, 0xc6, 0x03, 0x3d, 0x30, 0x42, 0xcf, 0xd0, 0x83, 0x11, 0xe4, 0xb9, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x07, 0x46, 0x28, 0x1a, 0xe8, 0x81, 0x11, 0xda, 0x87, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x3d, 0x30, 0x42, 0xd3, 0x41, 0x63, 0x79, 0x38, 0xc3, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x1e, 0x18, 0xa1, 0x6b, 0xa0, 0x07, 0x46, 0x28, 0x3d, 0x28, 0x65, 0x76, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x03, 0x23, 0xb4, 0x0e, 0xf4, 0xc0, 0x08, 0xe5, 0x07, 0xcb, 0x99, 0x84, 0x0e, 0xeb, 0x9b, 0x87, 0x74, 0xee, 0xe1, 0x68, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x4d, 0x30, 0xc2, 0x70, 0xa0, 0x09, 0x46, 0x58, 0x1f, 0xac, 0x6f, 0x30, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x17, 0x8c, 0x30, 0x3b, 0x68, 0xed, 0x0c, 0x67, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x05, 0x23, 0x4c, 0x07, 0xba, 0x60, 0x84, 0xc2, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0x60, 0x84, 0xed, 0x40, 0x17, 0x8c, 0xb0, 0x3f, 0x68, 0x01, 0x28, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x05, 0x23, 0x14, 0x0c, 0x74, 0xc1, 0x08, 0x4d, 0x07, 0x45, 0xae, 0xc2, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x05, 0x23, 0x54, 0x0d, 0x74, 0xc1, 0x08, 0x7d, 0x07, 0x09, 0xd8, 0x02, 0xc7, 0xa1, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x07, 0x23, 0xcc, 0x0e, 0x5a, 0x3b, 0xc3, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x7d, 0x30, 0xc2, 0x74, 0xa0, 0x0f, 0x46, 0xd8, 0x1f, 0x2c, 0xbc, 0x30, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x8d, 0x30, 0xc2, 0x70, 0xa0, 0x11, 0x46, 0x68, 0x1b, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x11, 0x46, 0x58, 0x0e, 0x34, 0xc2, 0x08, 0xe3, 0x83, 0xf6, 0xbb, 0x68, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x8d, 0x30, 0xc2, 0x7a, 0xa0, 0x11, 0x46, 0xa8, 0x39, 0x28, 0x72, 0x15, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x46, 0x18, 0xa1, 0x67, 0xa0, 0x11, 0x46, 0x28, 0x3b, 0x48, 0xc0, 0x16, 0x38, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x13, 0x46, 0x98, 0x1d, 0xb4, 0x76, 0x86, 0xb3, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x84, 0x11, 0x76, 0x07, 0xad, 0x9d, 0xe1, 0x1c, 0x94, 0x32, 0x3b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x83, 0x11, 0x96, 0x03, 0x6d, 0x30, 0x42, 0xeb, 0x20, 0x5b, 0x43, 0x1e, 0x7b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x6d, 0x30, 0x42, 0xc5, 0x40, 0x1b, 0x8c, 0xd0, 0x78, 0xd0, 0x68, 0x20, 0xcd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xda, 0x60, 0x84, 0xca, 0x81, 0x36, 0x18, 0xa1, 0xf4, 0x70, 0x8a, 0x0d, 0xbb, 0x41, 0xc3, 0x8b, 0x34, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x15, 0x46, 0x98, 0x0d, 0xb4, 0xc2, 0x08, 0xdb, 0x83, 0xf5, 0x0d, 0x46, 0xc3, 0x6e, 0xd0, 0xb8, 0x25, 0xcd, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x85, 0x11, 0x66, 0x03, 0xbd, 0x30, 0xc2, 0xf6, 0x60, 0x7d, 0x83, 0xd1, 0xb0, 0x1b, 0x34, 0x20, 0x4a, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x9a, 0x61, 0x84, 0xd9, 0x40, 0x33, 0x8c, 0x50, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xe7, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x0c, 0x23, 0x8c, 0x07, 0x9a, 0x61, 0x84, 0x86, 0x83, 0x11, 0xe4, 0x79, 0x3c, 0x1e, 0x76, 0x83, 0xb6, 0x68, 0x69, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x37, 0x8c, 0x30, 0x1b, 0xe8, 0x86, 0x11, 0xae, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x0d, 0x23, 0xec, 0x06, 0xba, 0x61, 0x84, 0xed, 0x41, 0x73, 0x15, 0x2e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x1b, 0x46, 0x18, 0x0f, 0x74, 0xc3, 0x08, 0x4f, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x86, 0x11, 0xd6, 0x03, 0xdd, 0x30, 0x42, 0xc3, 0x41, 0x3b, 0x1a, 0x2e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x6e, 0x18, 0xa1, 0x62, 0xa0, 0x1b, 0x46, 0x68, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x1b, 0x46, 0x28, 0x1a, 0xe8, 0x86, 0x11, 0xaa, 0x0e, 0x16, 0xd4, 0xee, 0x0f, 0x92, 0x81, 0xd0, 0x0d, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0x61, 0x84, 0xae, 0x81, 0x6e, 0x18, 0xa1, 0xf0, 0x60, 0x2c, 0x76, 0x1e, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x6e, 0x18, 0xa1, 0x72, 0xa0, 0x1b, 0x46, 0x38, 0x32, 0x08, 0x36, 0x58, 0x68, 0x62, 0xb4, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x6e, 0x18, 0xa1, 0x7b, 0xa0, 0x1b, 0x46, 0xf8, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xe7, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x0d, 0x23, 0x5c, 0x18, 0xe8, 0x86, 0x11, 0x6e, 0x1c, 0x52, 0x07, 0x87, 0xe4, 0xd2, 0xf1, 0xf8, 0x38, 0x74, 0x1c, 0x1a, 0x76, 0x83, 0x96, 0x03, 0x6a, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x3b, 0x8c, 0x30, 0x1b, 0x68, 0x87, 0x11, 0xfa, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x87, 0x11, 0x76, 0x03, 0xed, 0x30, 0xc2, 0xf6, 0xa0, 0x95, 0x88, 0x9a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x3b, 0x8c, 0x30, 0x1e, 0x68, 0x87, 0x11, 0x1a, 0x0e, 0x12, 0xb0, 0x05, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x76, 0x18, 0xa1, 0x62, 0xa0, 0x1d, 0x46, 0xa8, 0x1b, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf3, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x87, 0x11, 0x8a, 0x06, 0xda, 0x61, 0x84, 0xb6, 0x83, 0x11, 0xe4, 0x79, 0x3c, 0x3e, 0x0e, 0x0d, 0xb2, 0x0d, 0xda, 0x57, 0xa9, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x3f, 0x8c, 0x30, 0x1b, 0x68, 0x88, 0x11, 0x3e, 0x0c, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xfa, 0x61, 0x84, 0xe9, 0x40, 0x3f, 0x8c, 0xd0, 0x36, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x3f, 0x8c, 0xb0, 0x1d, 0xe8, 0x87, 0x11, 0x8a, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x87, 0x11, 0x1a, 0x06, 0xfa, 0x61, 0x84, 0x8e, 0x83, 0x05, 0xb5, 0xfb, 0x83, 0x64, 0x60, 0xfa, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xfd, 0x30, 0x42, 0xc9, 0x40, 0x3f, 0x8c, 0xd0, 0x73, 0x48, 0x1d, 0x1c, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x3f, 0x8c, 0xd0, 0x34, 0xd0, 0x0f, 0x23, 0x94, 0x1d, 0x92, 0x1d, 0xc7, 0xa1, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x0f, 0x23, 0xf4, 0x0d, 0xf4, 0xc3, 0x08, 0xa5, 0x07, 0xeb, 0x1b, 0x8c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x10, 0x23, 0xcc, 0x0e, 0x1a, 0x75, 0xcc, 0x19, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf3, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x88, 0x11, 0x5a, 0x07, 0x1a, 0x62, 0x84, 0x0b, 0x83, 0x64, 0x30, 0x1b, 0x44, 0x0b, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x86, 0x18, 0xa1, 0x7e, 0xa0, 0x21, 0x46, 0x78, 0x70, 0x48, 0x76, 0x1c, 0x04, 0x39, 0xff, 0x20, 0x5a, 0xd8, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xc4, 0x08, 0xe3, 0x81, 0x86, 0x18, 0xa1, 0x6f, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x86, 0x18, 0x61, 0x3d, 0xd0, 0x10, 0x23, 0x54, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x10, 0x23, 0x74, 0x0c, 0x34, 0xc4, 0x08, 0x2d, 0x07, 0x0b, 0x6a, 0xf7, 0x07, 0xc9, 0xe0, 0xd4, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x21, 0x46, 0xa8, 0x19, 0x68, 0x88, 0x11, 0x9a, 0x0e, 0xa9, 0x83, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x88, 0x11, 0xba, 0x06, 0x1a, 0x62, 0x84, 0xba, 0x43, 0xb2, 0xe3, 0x38, 0x74, 0x3c, 0x3e, 0xbe, 0x0d, 0xbb, 0x41, 0x6b, 0x95, 0x2e, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x27, 0x46, 0x98, 0x0c, 0xf4, 0xc4, 0x08, 0x1d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xb0, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x4f, 0x8c, 0xb0, 0x1c, 0xe8, 0x89, 0x11, 0x2a, 0x0e, 0xcd, 0x92, 0x8e, 0xc7, 0xc3, 0x2e, 0xdc, 0x06, 0xab, 0x1b, 0xa9, 0x0e, 0x3d, 0x84, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x53, 0x8c, 0x30, 0x19, 0x68, 0x8a, 0x11, 0x0e, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x14, 0x23, 0x6c, 0x06, 0x9a, 0x62, 0x84, 0xdd, 0x20, 0x19, 0x38, 0xfb, 0x0e, 0x02, 0xde, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x14, 0x23, 0x0c, 0x07, 0x9a, 0x62, 0x84, 0xb6, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x14, 0x23, 0x2c, 0x07, 0x9a, 0x62, 0x84, 0xf1, 0x41, 0x60, 0x62, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xa6, 0x18, 0x61, 0x3d, 0xd0, 0x14, 0x23, 0x54, 0x1c, 0xac, 0x6e, 0xa4, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x53, 0x8c, 0xd0, 0x31, 0xd0, 0x14, 0x23, 0x94, 0x1d, 0x1a, 0x17, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x4d, 0x31, 0x42, 0xdd, 0x40, 0x53, 0x8c, 0xd0, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xeb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xc5, 0x08, 0xad, 0x03, 0x4d, 0x31, 0x42, 0xfd, 0xa1, 0x59, 0xd2, 0xf1, 0xf8, 0x38, 0x34, 0xec, 0xc2, 0x6d, 0xb0, 0xe0, 0xa0, 0xea, 0xd0, 0x43, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xc5, 0x08, 0x93, 0x81, 0xae, 0x18, 0xa1, 0x74, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xae, 0x18, 0x61, 0x33, 0xd0, 0x15, 0x23, 0xec, 0x0e, 0xda, 0x40, 0x32, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xc5, 0x08, 0xc3, 0x81, 0xae, 0x18, 0xa1, 0xe1, 0xd0, 0xb8, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x8a, 0x11, 0x2a, 0x06, 0xba, 0x62, 0x84, 0xce, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x58, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x2b, 0x46, 0x68, 0x1a, 0xe8, 0x8a, 0x11, 0x2a, 0x0f, 0xcd, 0x92, 0x8e, 0xc7, 0xc7, 0xa1, 0x61, 0x17, 0x6e, 0x83, 0x45, 0x18, 0x55, 0x87, 0x1e, 0x42, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x2d, 0x46, 0x98, 0x0c, 0xb4, 0xc5, 0x08, 0x4f, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xa0, 0x7e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x6d, 0x31, 0x42, 0xd1, 0x40, 0x5b, 0x8c, 0x70, 0x64, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xb6, 0x18, 0xa1, 0x69, 0xa0, 0x2d, 0x46, 0xe8, 0x1d, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x2d, 0x46, 0x28, 0x1c, 0x68, 0x8b, 0x11, 0x2a, 0x0f, 0x5a, 0x12, 0x9d, 0x19, 0x24, 0x03, 0xe9, 0xbb, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x5b, 0x8c, 0xd0, 0x39, 0xd0, 0x16, 0x23, 0xd4, 0x1e, 0x04, 0x26, 0xf6, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x16, 0x23, 0x14, 0x0f, 0xb4, 0xc5, 0x08, 0xed, 0x07, 0xcb, 0x38, 0x91, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xb6, 0x18, 0xa1, 0x7e, 0xa0, 0x2d, 0x46, 0xf8, 0x71, 0x68, 0x5c, 0x74, 0x1c, 0x1a, 0x44, 0x0b, 0xd6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x8b, 0x11, 0x96, 0x03, 0x6d, 0x31, 0x42, 0xc5, 0xa1, 0x59, 0xd2, 0xf1, 0x78, 0xd8, 0x85, 0xdb, 0x60, 0x29, 0xb3, 0xd6, 0xa1, 0x87, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x8b, 0x11, 0x26, 0x03, 0x9d, 0x31, 0x42, 0xcd, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x7d, 0x31, 0xc2, 0x76, 0xa0, 0x2f, 0x46, 0xf8, 0x30, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x5f, 0x8c, 0x30, 0x1e, 0xe8, 0x8b, 0x11, 0xaa, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x8b, 0x11, 0x3a, 0x06, 0xfa, 0x62, 0x84, 0x96, 0x83, 0x96, 0x44, 0x67, 0x06, 0xc9, 0x40, 0xfa, 0x6e, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x17, 0x23, 0xd4, 0x0c, 0xf4, 0xc5, 0x08, 0x4d, 0x07, 0x81, 0x89, 0x7d, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x7d, 0x31, 0x42, 0xd7, 0x40, 0x5f, 0x8c, 0x70, 0x61, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xbe, 0x18, 0xa1, 0x75, 0xa0, 0x2f, 0x46, 0xe8, 0x1d, 0x24, 0x83, 0x6f, 0x07, 0x01, 0xef, 0x3f, 0x48, 0x06, 0xb7, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x7d, 0x31, 0x42, 0xf1, 0x40, 0x5f, 0x8c, 0xf0, 0xe0, 0xd0, 0xb8, 0xe8, 0x38, 0x74, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x63, 0x8c, 0x30, 0x39, 0x68, 0x29, 0x54, 0x67, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x18, 0x23, 0xcc, 0x06, 0x1a, 0x63, 0x84, 0xea, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x1a, 0x63, 0x84, 0xdd, 0x40, 0x63, 0x8c, 0xd0, 0x32, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x63, 0x8c, 0x30, 0x1f, 0x68, 0x8c, 0x11, 0x0a, 0x06, 0xc9, 0x40, 0x58, 0x0e, 0xc6, 0xbb, 0xce, 0x20, 0x19, 0x9c, 0x1b, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xc6, 0x08, 0x0d, 0x03, 0x8d, 0x31, 0x42, 0xc9, 0x71, 0xe8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x8c, 0x11, 0x6a, 0x06, 0x1a, 0x63, 0x84, 0x9e, 0x43, 0x0c, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xc6, 0x18, 0xa1, 0x68, 0xa0, 0x31, 0x46, 0x68, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x1a, 0x63, 0x84, 0xbe, 0x81, 0xc6, 0x18, 0xa1, 0xf8, 0xd0, 0xe8, 0xe8, 0x78, 0x7e, 0x1c, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x9d, 0x31, 0xc2, 0xe4, 0xa0, 0xa5, 0x50, 0x9d, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x63, 0x84, 0xcd, 0x40, 0x67, 0x8c, 0xd0, 0x30, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x67, 0x8c, 0x30, 0x1d, 0xe8, 0x8c, 0x11, 0xc6, 0x07, 0x4d, 0xb1, 0xeb, 0x0c, 0x92, 0x81, 0xaf, 0xee, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x9d, 0x31, 0xc2, 0x7a, 0xa0, 0x33, 0x46, 0x28, 0x38, 0xc4, 0xff, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x63, 0x84, 0x8a, 0x81, 0xce, 0x18, 0xa1, 0xe5, 0x38, 0x74, 0x1c, 0x3a, 0x9c, 0x62, 0x83, 0x6c, 0x0d, 0xed, 0xd7, 0x87, 0xdb, 0x60, 0xdd, 0xb7, 0xd6, 0xa1, 0x87, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x63, 0x84, 0xc9, 0x40, 0x7b, 0x8c, 0xd0, 0x3d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x6f, 0x8c, 0x30, 0x39, 0x68, 0x17, 0x67, 0x67, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xc6, 0x08, 0xb3, 0x81, 0xde, 0x18, 0x61, 0x7b, 0xb0, 0x8c, 0x13, 0x69, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xcd, 0x31, 0xc2, 0xe4, 0xa0, 0x5d, 0x9c, 0x9d, 0x41, 0xb0, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xe6, 0x18, 0x61, 0x76, 0xd0, 0x2e, 0xce, 0xce, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0x63, 0x84, 0xc9, 0x41, 0xbb, 0x38, 0x3b, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xee, 0x18, 0x61, 0x36, 0xd0, 0x1d, 0x23, 0xb4, 0x0c, 0xb7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0x63, 0x84, 0xe1, 0x40, 0x77, 0x8c, 0xb0, 0x3c, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xdd, 0x31, 0xc2, 0x74, 0xa0, 0x3b, 0x46, 0x28, 0x39, 0x34, 0xfc, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xdd, 0x31, 0x42, 0xcf, 0x40, 0x77, 0x8c, 0x50, 0x74, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xda, 0x63, 0x84, 0xc9, 0x41, 0xbb, 0x38, 0x3b, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x3d, 0x46, 0xd8, 0x0c, 0xb4, 0xc7, 0x08, 0xdb, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x1e, 0x23, 0x8c, 0x06, 0xda, 0x63, 0x84, 0xd9, 0xe1, 0x68, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xed, 0x31, 0xc2, 0x6e, 0xa0, 0x3d, 0x46, 0x18, 0x1e, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xf6, 0x18, 0x61, 0x39, 0xd0, 0x1e, 0x23, 0x4c, 0x0f, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x7b, 0x8c, 0x30, 0x1e, 0x68, 0x8f, 0x11, 0xaa, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xe0, 0xfb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xda, 0x63, 0x84, 0xa6, 0x81, 0xf6, 0x18, 0xa1, 0x79, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xf6, 0x18, 0xa1, 0x6a, 0xa0, 0x3d, 0x46, 0x68, 0x3b, 0x48, 0x1e, 0xac, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xed, 0x31, 0x42, 0xdd, 0x40, 0x7b, 0x8c, 0x50, 0x7c, 0x68, 0xf8, 0x75, 0x1c, 0x3a, 0x1e, 0x1f, 0xdf, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x1a, 0x23, 0xcc, 0x06, 0x5a, 0x63, 0x84, 0xbe, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x18, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x35, 0x46, 0x18, 0x0f, 0xb4, 0xc6, 0x08, 0x75, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xc6, 0x08, 0xeb, 0x81, 0xd6, 0x18, 0xa1, 0x6b, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xd6, 0x18, 0xa1, 0x64, 0xa0, 0x35, 0x46, 0xa8, 0x39, 0x68, 0x8a, 0x5d, 0x67, 0x90, 0x0c, 0xa4, 0xef, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xad, 0x31, 0x42, 0xcf, 0x40, 0x6b, 0x8c, 0x50, 0x75, 0x88, 0xff, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xc6, 0x08, 0x65, 0x03, 0xad, 0x31, 0x42, 0xdb, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x3f, 0xbe, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x6e, 0x14, 0xf1, 0x03, 0x0d, 0x2c, 0x42, 0x32, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xed, 0x28, 0xe2, 0x0f, 0x5a, 0x9e, 0xde, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x3f, 0x8a, 0xf8, 0x83, 0x96, 0xa7, 0x77, 0x86, 0xdd, 0x60, 0x7d, 0x90, 0xd8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x47, 0x11, 0x16, 0x03, 0xfd, 0x28, 0x42, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0xb4, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x1f, 0x45, 0x18, 0x0e, 0xf4, 0xa3, 0x08, 0xf5, 0x1b, 0x2c, 0x65, 0xd6, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x3f, 0x8a, 0xb0, 0x3e, 0x68, 0x8b, 0x7d, 0x67, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xa3, 0x08, 0xf3, 0x81, 0x7e, 0x14, 0xa1, 0x6f, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xa3, 0x08, 0xfb, 0x81, 0x7e, 0x14, 0xa1, 0xe4, 0x60, 0x95, 0x29, 0xd5, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x47, 0x11, 0x5a, 0x06, 0xfa, 0x51, 0x84, 0xb2, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x8f, 0x22, 0xd4, 0x0c, 0xf4, 0xa3, 0x08, 0x55, 0x87, 0xb5, 0xdf, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x8f, 0x22, 0xb4, 0x0d, 0xf4, 0xa3, 0x08, 0x75, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x1f, 0x45, 0x28, 0x1c, 0xe8, 0x47, 0x11, 0xda, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x3f, 0x8a, 0xd0, 0x38, 0xd0, 0x8f, 0x22, 0xd4, 0x1e, 0xac, 0x68, 0x3a, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x3f, 0x8a, 0xd0, 0x3b, 0xd0, 0x8f, 0x22, 0x94, 0x1f, 0x2c, 0x34, 0x31, 0x3a, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x21, 0x45, 0xfc, 0x41, 0xcb, 0xd3, 0x3b, 0xc3, 0x2e, 0xdc, 0x06, 0x2b, 0x9a, 0x8e, 0x0e, 0x2d, 0x80, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x4f, 0x8a, 0x90, 0x0c, 0x34, 0xa9, 0x08, 0xd9, 0xb0, 0x0b, 0xb7, 0xc1, 0xc2, 0x19, 0xa3, 0x43, 0xc3, 0xaf, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x94, 0x22, 0xcc, 0x06, 0x9a, 0x52, 0x84, 0x07, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd0, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xa6, 0x14, 0x61, 0x3d, 0xd0, 0x94, 0x22, 0x1c, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x4d, 0x29, 0xc2, 0x7c, 0xa0, 0x29, 0x45, 0xe8, 0x38, 0x58, 0x38, 0x63, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x9a, 0x52, 0x84, 0x92, 0x81, 0xa6, 0x14, 0xa1, 0x71, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xa5, 0x08, 0x2d, 0x03, 0x4d, 0x29, 0x42, 0xd5, 0xc1, 0x8a, 0xa6, 0xa3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xa5, 0x08, 0x5d, 0x03, 0x4d, 0x29, 0x42, 0xe1, 0xc1, 0x42, 0x13, 0xa3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xa5, 0x08, 0x95, 0x03, 0x4d, 0x29, 0x42, 0xff, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x4a, 0x11, 0x3a, 0x07, 0x9a, 0x52, 0x84, 0xe2, 0x83, 0x15, 0x4d, 0x47, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x4a, 0x11, 0x9a, 0x07, 0x9a, 0x52, 0x84, 0xfa, 0x83, 0x85, 0x26, 0x46, 0xc7, 0xe3, 0x61, 0x17, 0x6e, 0x83, 0x85, 0x40, 0x46, 0x87, 0x86, 0x5f, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x2b, 0x45, 0x98, 0x0d, 0xf4, 0xa6, 0x08, 0x5d, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xae, 0x14, 0x61, 0x3a, 0xd0, 0x95, 0x22, 0x34, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x95, 0x22, 0x6c, 0x07, 0xba, 0x52, 0x84, 0xaa, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0x52, 0x84, 0x8a, 0x81, 0xae, 0x14, 0xa1, 0xe4, 0xa0, 0x29, 0x76, 0x9d, 0x41, 0x32, 0x38, 0x37, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x4a, 0x11, 0x5a, 0x06, 0xba, 0x52, 0x84, 0xa6, 0x83, 0x95, 0x1e, 0x03, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x57, 0x8a, 0xd0, 0x35, 0xd0, 0x95, 0x22, 0x94, 0x1d, 0x8e, 0xf6, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x2b, 0x45, 0x68, 0x1b, 0xe8, 0x4a, 0x11, 0x0a, 0x0f, 0xf1, 0x3f, 0x0e, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xb6, 0x14, 0x61, 0x38, 0xd0, 0x96, 0x22, 0xcc, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x5b, 0x8a, 0xb0, 0x1c, 0x68, 0x4b, 0x11, 0xb6, 0x87, 0xa3, 0x7d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x6d, 0x29, 0xc2, 0x78, 0xa0, 0x2d, 0x45, 0x58, 0x1f, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xbe, 0x14, 0x61, 0x76, 0xd0, 0xd6, 0x1b, 0xcf, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x7d, 0x29, 0xc2, 0x74, 0xa0, 0x2f, 0x45, 0x98, 0x1f, 0xb4, 0xf2, 0x8b, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x4c, 0x11, 0x86, 0x03, 0x8d, 0x29, 0x42, 0xe1, 0x20, 0x19, 0x32, 0x88, 0x16, 0xb4, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x31, 0x45, 0xd8, 0x0f, 0x34, 0xa6, 0x08, 0x7d, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x31, 0x45, 0x28, 0x18, 0x68, 0x4c, 0x11, 0x5a, 0x0e, 0x56, 0x34, 0x1d, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xc6, 0x14, 0xa1, 0x66, 0xa0, 0x31, 0x45, 0xe8, 0x3a, 0x58, 0x78, 0x61, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xc6, 0x14, 0xa1, 0x6c, 0xa0, 0x31, 0x45, 0xa8, 0x3b, 0xc4, 0xf0, 0x78, 0x3c, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xa6, 0x08, 0xb3, 0x83, 0xb6, 0xde, 0x78, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x4c, 0x11, 0xa6, 0x03, 0x9d, 0x29, 0xc2, 0x7c, 0x90, 0x0c, 0xfc, 0xd7, 0x77, 0x30, 0xde, 0x75, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xad, 0x29, 0xc2, 0x70, 0xa0, 0x35, 0x45, 0x68, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xad, 0x29, 0xc2, 0x72, 0xa0, 0x35, 0x45, 0xd8, 0x1e, 0x14, 0x76, 0x38, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x35, 0x45, 0x18, 0x0f, 0xb4, 0xa6, 0x08, 0x2d, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x35, 0x45, 0x58, 0x0f, 0xb4, 0xa6, 0x08, 0xfb, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x9a, 0x22, 0x14, 0x0c, 0xb4, 0xa6, 0x08, 0x25, 0x87, 0xd4, 0xc1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x53, 0x84, 0x9a, 0x81, 0xd6, 0x14, 0xa1, 0x6c, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xa6, 0x08, 0x3d, 0x03, 0xad, 0x29, 0x42, 0xd3, 0xe1, 0x68, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x6b, 0x8a, 0x50, 0x35, 0xd0, 0x9a, 0x22, 0x74, 0x1d, 0x62, 0x38, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xa6, 0x08, 0xb3, 0x83, 0xb6, 0xde, 0x78, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x6f, 0x8a, 0xb0, 0x1b, 0xe8, 0x4d, 0x11, 0x96, 0x07, 0x85, 0x1d, 0xce, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x4d, 0x11, 0xa6, 0x03, 0xbd, 0x29, 0x42, 0xc7, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x4d, 0x11, 0xb6, 0x03, 0xbd, 0x29, 0xc2, 0xfa, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xa6, 0x08, 0xf3, 0x81, 0xde, 0x14, 0xa1, 0xe2, 0x90, 0x3a, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x6f, 0x8a, 0x50, 0x32, 0xd0, 0x9b, 0x22, 0x54, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xde, 0x14, 0xa1, 0x65, 0xa0, 0x37, 0x45, 0xe8, 0x39, 0x1c, 0xed, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x4d, 0x11, 0x8a, 0x06, 0x7a, 0x53, 0x84, 0xa6, 0xc3, 0xd1, 0x7e, 0x1c, 0x3a, 0x0e, 0x0d, 0xbb, 0x70, 0x07, 0x6d, 0xe4, 0xba, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xe6, 0x14, 0x61, 0x36, 0xd0, 0x9c, 0x22, 0x8c, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x73, 0x8a, 0xb0, 0x1b, 0x68, 0x4e, 0x11, 0x96, 0x87, 0xa3, 0x7d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xcd, 0x29, 0xc2, 0x74, 0xa0, 0x39, 0x45, 0xd8, 0x1e, 0x62, 0x38, 0xec, 0xc2, 0x6d, 0xb0, 0xbc, 0xc9, 0xe8, 0xd0, 0xf0, 0x6b, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xa7, 0x08, 0xb3, 0x81, 0xee, 0x14, 0xa1, 0x6a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xda, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x9d, 0x22, 0xac, 0x07, 0xba, 0x53, 0x84, 0xa6, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x9d, 0x22, 0xcc, 0x07, 0xba, 0x53, 0x84, 0x8e, 0x43, 0xee, 0x7b, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xa7, 0x08, 0x25, 0x03, 0xdd, 0x29, 0x42, 0xcd, 0xc1, 0x90, 0xfa, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x77, 0x8a, 0xd0, 0x33, 0xd0, 0x9d, 0x22, 0x14, 0x1d, 0x62, 0x78, 0x3c, 0x1e, 0x76, 0xe1, 0x36, 0x58, 0xdf, 0x60, 0x74, 0x68, 0xf8, 0xb5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xda, 0x53, 0x84, 0xd9, 0x40, 0x7b, 0x8a, 0x30, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xed, 0x29, 0xc2, 0x6e, 0xa0, 0x3d, 0x45, 0x58, 0x1e, 0x8e, 0xf6, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xa7, 0x08, 0xd3, 0x81, 0xf6, 0x14, 0x61, 0x7b, 0x38, 0xda, 0x07, 0xd9, 0x1a, 0xda, 0xaf, 0x0f, 0xbb, 0xc1, 0xb2, 0xf5, 0xff, 0x85, 0xdb, 0x60, 0xe1, 0x85, 0xd1, 0xa1, 0xe9, 0xd0, 0xe1, 0x68, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x7f, 0x8a, 0x30, 0x1b, 0xe8, 0x51, 0x11, 0x9a, 0x86, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xfd, 0x29, 0xc2, 0x74, 0xa0, 0x3f, 0x45, 0x68, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x3f, 0x45, 0xd8, 0x0e, 0xf4, 0xa7, 0x08, 0x95, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xa7, 0x08, 0x15, 0x03, 0xfd, 0x29, 0x42, 0xc9, 0x41, 0x53, 0xec, 0x3a, 0x83, 0x64, 0x70, 0x6e, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x9f, 0x22, 0xb4, 0x0c, 0xf4, 0xa7, 0x08, 0x8d, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x3f, 0x45, 0xa8, 0x19, 0xe8, 0x4f, 0x11, 0xba, 0x0e, 0x16, 0x5e, 0x18, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xfe, 0x14, 0xa1, 0x6c, 0xa0, 0x3f, 0x45, 0xa8, 0x3b, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xfd, 0x29, 0x42, 0xdf, 0x40, 0x7f, 0x8a, 0x50, 0x78, 0x88, 0xe1, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x9f, 0x22, 0x74, 0x0e, 0xf4, 0xa7, 0x08, 0xa5, 0x87, 0xa3, 0x7d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x4f, 0x11, 0x5a, 0x07, 0xfa, 0x53, 0x84, 0xe2, 0x43, 0xfc, 0x8f, 0x43, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x41, 0x45, 0x18, 0x0e, 0x34, 0xa8, 0x08, 0xf3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xa0, 0x22, 0x2c, 0x07, 0x1a, 0x54, 0x84, 0xed, 0xe1, 0x68, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x83, 0x8a, 0x30, 0x1e, 0x68, 0x50, 0x11, 0xd6, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x43, 0x45, 0x98, 0x1d, 0x34, 0x5a, 0xd9, 0x33, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x50, 0x11, 0xa6, 0x03, 0x1d, 0x2a, 0xc2, 0x81, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x54, 0x84, 0xed, 0x40, 0x87, 0x8a, 0xd0, 0x3c, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x87, 0x8a, 0x50, 0x31, 0xd0, 0xa1, 0x22, 0x94, 0x1c, 0x34, 0xc5, 0xae, 0x33, 0x48, 0x06, 0xe7, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x1d, 0x2a, 0x42, 0xcb, 0x40, 0x87, 0x8a, 0x50, 0xbc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x54, 0x84, 0x9a, 0x81, 0x0e, 0x15, 0xa1, 0xeb, 0x60, 0xe1, 0x8c, 0xd1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x50, 0x11, 0xca, 0x06, 0x3a, 0x54, 0x84, 0xc6, 0x83, 0x85, 0x26, 0x46, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x50, 0x11, 0x2a, 0x07, 0x3a, 0x54, 0x84, 0xde, 0x83, 0x85, 0x26, 0x46, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x87, 0x8a, 0x50, 0x3d, 0xd0, 0xa1, 0x22, 0x74, 0x1f, 0x8e, 0xf6, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x43, 0x45, 0x28, 0x1f, 0xe8, 0x50, 0x11, 0xfa, 0x0f, 0xf1, 0x3f, 0x0e, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x16, 0x15, 0x61, 0x38, 0xd0, 0xa2, 0x22, 0xcc, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x8b, 0x8a, 0xb0, 0x1c, 0x68, 0x51, 0x11, 0xb6, 0x87, 0xa3, 0x7d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x2d, 0x2a, 0xc2, 0x78, 0xa0, 0x45, 0x45, 0x58, 0x1f, 0x8e, 0xf6, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xa8, 0x08, 0xb3, 0x83, 0x46, 0x2b, 0x7b, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x51, 0x11, 0x76, 0x03, 0x3d, 0x2a, 0xc2, 0xf6, 0xa0, 0x59, 0x59, 0x94, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xa3, 0x22, 0x8c, 0x07, 0x7a, 0x54, 0x84, 0xa2, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xa3, 0x22, 0xac, 0x07, 0x7a, 0x54, 0x84, 0xfd, 0xa1, 0x3f, 0xf9, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x51, 0x11, 0x0a, 0x06, 0x7a, 0x54, 0x84, 0x8a, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xa3, 0x22, 0x74, 0x0c, 0xf4, 0xa8, 0x08, 0x3d, 0x87, 0xd4, 0xc1, 0x71, 0x68, 0xd8, 0x0d, 0xda, 0x5e, 0x11, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x7d, 0x2a, 0x42, 0x32, 0xd0, 0xae, 0x22, 0x7c, 0x19, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xa9, 0x08, 0xe9, 0x40, 0x9f, 0x8a, 0x50, 0x36, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x9f, 0x8a, 0x10, 0x0f, 0xf4, 0xa9, 0x08, 0x2d, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xa9, 0x08, 0xab, 0x81, 0x3e, 0x15, 0x61, 0x77, 0xd0, 0x14, 0xbb, 0xce, 0x20, 0x19, 0x9c, 0x1b, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xa9, 0x08, 0xc3, 0x81, 0x3e, 0x15, 0xa1, 0x64, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xa9, 0x08, 0xcb, 0x81, 0x3e, 0x15, 0x61, 0x7e, 0xb0, 0xf0, 0xc2, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xa9, 0x08, 0xfb, 0x81, 0x3e, 0x15, 0xa1, 0xe1, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xa9, 0x08, 0x15, 0x03, 0x7d, 0x2a, 0x42, 0xc7, 0x21, 0x86, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x9f, 0x8a, 0x50, 0x33, 0xd0, 0xa7, 0x22, 0xf4, 0x1c, 0x8e, 0xf6, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x4f, 0x45, 0x28, 0x1a, 0xe8, 0x53, 0x11, 0xba, 0x0e, 0xf1, 0x3f, 0x0e, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x3e, 0x15, 0xa1, 0x6e, 0xa0, 0x4f, 0x45, 0x28, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x7d, 0x2a, 0x42, 0xdf, 0x40, 0x9f, 0x8a, 0xd0, 0x78, 0x38, 0xda, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xa7, 0x22, 0x54, 0x0e, 0xf4, 0xa9, 0x08, 0x9d, 0x87, 0xa3, 0x7d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x8d, 0x2a, 0x42, 0x72, 0xd0, 0x1a, 0x98, 0xcf, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x8d, 0x2a, 0x42, 0x3a, 0xd0, 0xa8, 0x22, 0x2c, 0x0e, 0x5a, 0xf9, 0x45, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xaa, 0x08, 0xd9, 0x40, 0xaf, 0x8a, 0xb0, 0x1b, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xaa, 0x08, 0xf9, 0x40, 0xa7, 0x8a, 0xd0, 0x3a, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xa7, 0x8a, 0x30, 0x18, 0xe8, 0x54, 0x11, 0xea, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x54, 0x11, 0x76, 0x03, 0x9d, 0x2a, 0xc2, 0xf2, 0xa0, 0x29, 0x76, 0x9d, 0x41, 0x32, 0x38, 0x37, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x54, 0x11, 0xa6, 0x03, 0x9d, 0x2a, 0x42, 0xdb, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x54, 0x11, 0xb6, 0x03, 0x9d, 0x2a, 0x42, 0xc1, 0xc1, 0xc2, 0x19, 0xa3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xa9, 0x22, 0x34, 0x0c, 0x74, 0xaa, 0x08, 0x35, 0x07, 0x0b, 0x4d, 0x8c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xa9, 0x22, 0xf4, 0x0c, 0x74, 0xaa, 0x08, 0x65, 0x07, 0x0b, 0x4d, 0x8c, 0x8e, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x4e, 0x15, 0xa1, 0x6f, 0xa0, 0x53, 0x45, 0x28, 0x3c, 0x1c, 0xed, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xa7, 0x8a, 0xd0, 0x38, 0xd0, 0xa9, 0x22, 0x94, 0x1e, 0xe2, 0x7f, 0x1c, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xad, 0x2a, 0x42, 0x3a, 0xd0, 0xaa, 0x22, 0x6c, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xab, 0x8a, 0x10, 0x0f, 0xb4, 0xaa, 0x08, 0x83, 0xc3, 0xd1, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x56, 0x15, 0x61, 0x31, 0xd0, 0xaa, 0x22, 0x4c, 0x0e, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xaf, 0x8a, 0x90, 0x1d, 0xb4, 0xff, 0xeb, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x55, 0x84, 0x70, 0xa0, 0x57, 0x45, 0x88, 0x0f, 0xfd, 0xc9, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xaf, 0x8a, 0x90, 0x0f, 0xf4, 0xaa, 0x08, 0x8b, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xab, 0x22, 0x4c, 0x06, 0x7a, 0x55, 0x84, 0xd9, 0x21, 0x75, 0x30, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xab, 0x08, 0xc9, 0x41, 0x6b, 0x60, 0x3e, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xab, 0x08, 0xe9, 0x40, 0xb3, 0x8a, 0xb0, 0x38, 0x68, 0xe5, 0x17, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xad, 0x22, 0x64, 0x03, 0xdd, 0x2a, 0xc2, 0x99, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x98, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x6e, 0x15, 0x61, 0x31, 0xd0, 0xad, 0x22, 0x14, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xad, 0x22, 0x4c, 0x06, 0xba, 0x55, 0x84, 0xfd, 0x20, 0x19, 0x38, 0xfe, 0x06, 0xd1, 0xc2, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x5b, 0x45, 0xd8, 0x0e, 0x74, 0xab, 0x08, 0xf3, 0x43, 0xfc, 0x0f, 0xd9, 0x8a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xb7, 0x8a, 0x50, 0x30, 0xd0, 0xad, 0x22, 0xb4, 0x1c, 0xac, 0x16, 0x36, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0x55, 0x84, 0x9a, 0x81, 0x6e, 0x15, 0xa1, 0xe7, 0xd0, 0x4a, 0xfc, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x6e, 0x15, 0xe1, 0xc2, 0x40, 0xb7, 0x8a, 0xf0, 0xe5, 0xd0, 0x74, 0x68, 0x10, 0x2d, 0xec, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0x55, 0x84, 0xbe, 0x81, 0x6e, 0x15, 0xa1, 0x7b, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x6e, 0x15, 0xa1, 0x70, 0xa0, 0x5b, 0x45, 0xe8, 0x3c, 0x68, 0x7f, 0x19, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xad, 0x22, 0x94, 0x0e, 0x74, 0xab, 0x08, 0xc5, 0x87, 0xd4, 0xc1, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xad, 0x22, 0x34, 0x0f, 0x74, 0xab, 0x08, 0xd5, 0x87, 0x56, 0xe2, 0xc7, 0xa1, 0xe3, 0xf1, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xae, 0x22, 0x24, 0x07, 0xad, 0x81, 0xf9, 0x0c, 0x92, 0x21, 0x83, 0x68, 0xc1, 0x7c, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xab, 0x08, 0xf9, 0x40, 0xbb, 0x8a, 0x50, 0x33, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xbb, 0x8a, 0x30, 0x18, 0x68, 0x57, 0x11, 0xd6, 0x83, 0x64, 0xe0, 0xf8, 0x1b, 0x44, 0x0b, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x76, 0x15, 0x61, 0x39, 0xd0, 0xae, 0x22, 0x8c, 0x0f, 0xf1, 0x3f, 0x64, 0x2b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xed, 0x2a, 0xc2, 0x7c, 0xa0, 0x5d, 0x45, 0xe8, 0x38, 0x58, 0x2d, 0x6c, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xab, 0x08, 0x25, 0x03, 0xed, 0x2a, 0x42, 0xcb, 0xa1, 0x3f, 0xf9, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xed, 0x2a, 0xc2, 0x81, 0x81, 0x76, 0x15, 0xe1, 0xca, 0xa1, 0xd1, 0xd1, 0x20, 0x5a, 0xd8, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xab, 0x08, 0x6d, 0x03, 0xed, 0x2a, 0x42, 0xf3, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xed, 0x2a, 0x42, 0xdd, 0x40, 0xbb, 0x8a, 0xd0, 0x78, 0xd0, 0xfe, 0x32, 0xca, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x5d, 0x45, 0xa8, 0x1c, 0x68, 0x57, 0x11, 0x6a, 0x0f, 0xa9, 0x83, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x5d, 0x45, 0xe8, 0x1d, 0x68, 0x57, 0x11, 0x8a, 0x0f, 0xfd, 0xc9, 0x8f, 0x43, 0xc7, 0xe3, 0xe3, 0xd0, 0x71, 0x68, 0xd8, 0x85, 0xdb, 0x90, 0xfb, 0x3e, 0xb4, 0x00, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x1d, 0x2b, 0x42, 0x32, 0xd0, 0xb3, 0x22, 0xd4, 0x0c, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x56, 0x84, 0x74, 0xa0, 0x63, 0x45, 0x68, 0x1d, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x63, 0x45, 0x88, 0x07, 0x3a, 0x56, 0x84, 0xba, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x56, 0x84, 0xd5, 0x40, 0xc7, 0x8a, 0xb0, 0x3b, 0x68, 0x8a, 0x5d, 0x67, 0x90, 0x0c, 0xce, 0x0d, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x56, 0x84, 0xe1, 0x40, 0xc7, 0x8a, 0xd0, 0xb6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x56, 0x84, 0xe5, 0x40, 0xc7, 0x8a, 0x30, 0x3f, 0x58, 0x78, 0x61, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x56, 0x84, 0xfd, 0x40, 0xc7, 0x8a, 0xd0, 0x70, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x56, 0x84, 0x8a, 0x81, 0x8e, 0x15, 0xa1, 0x6c, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xb1, 0x22, 0x74, 0x1c, 0x34, 0xf8, 0xff, 0x73, 0x68, 0x74, 0x74, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xac, 0x08, 0x7d, 0x03, 0x1d, 0x2b, 0x42, 0xe1, 0xe1, 0x68, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x56, 0x84, 0xc6, 0x81, 0x8e, 0x15, 0xa1, 0xf4, 0x10, 0xff, 0xe3, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x59, 0x11, 0xb2, 0x81, 0x96, 0x15, 0x61, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x56, 0x84, 0x70, 0xa0, 0x65, 0x45, 0x88, 0x0f, 0x47, 0xfb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x56, 0x84, 0x7c, 0xa0, 0x65, 0x45, 0x18, 0x1c, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x9e, 0x15, 0x21, 0x39, 0x68, 0x95, 0xfa, 0x67, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xac, 0x08, 0xd1, 0x40, 0xcf, 0x8a, 0x10, 0x1e, 0x14, 0x76, 0x38, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x67, 0x45, 0x48, 0x07, 0x7a, 0x56, 0x84, 0xed, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x59, 0x11, 0xe2, 0x81, 0x9e, 0x15, 0x61, 0x70, 0x38, 0xda, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xb3, 0x22, 0x2c, 0x06, 0x7a, 0x56, 0x84, 0xe9, 0xa1, 0xd1, 0xd1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x56, 0x84, 0xf1, 0x40, 0xcf, 0x8a, 0xd0, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x56, 0x84, 0xf5, 0x40, 0xcf, 0x8a, 0xb0, 0x3f, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x3d, 0x2b, 0x42, 0xc1, 0x40, 0xcf, 0x8a, 0x50, 0x72, 0x48, 0x1d, 0x0c, 0xbb, 0x70, 0x1b, 0xac, 0x88, 0x3b, 0x3a, 0xb4, 0x00, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x5d, 0x2b, 0xc2, 0x64, 0xa0, 0x6b, 0x45, 0xe8, 0x18, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf6, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xad, 0x08, 0xcb, 0x81, 0xae, 0x15, 0xa1, 0xe2, 0xd0, 0xe8, 0xe8, 0x78, 0x3c, 0xec, 0xc2, 0x6d, 0xb0, 0xba, 0x91, 0xea, 0xd0, 0x02, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xad, 0x08, 0x93, 0x81, 0xb6, 0x15, 0xa1, 0x63, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xda, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xb6, 0x22, 0x2c, 0x07, 0xda, 0x56, 0x84, 0x8a, 0x43, 0xa3, 0xa3, 0xe3, 0xf1, 0xb0, 0x0b, 0xb7, 0xc1, 0x82, 0x83, 0xaa, 0x43, 0x0b, 0xa0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xb7, 0x22, 0x4c, 0x06, 0xfa, 0x56, 0x84, 0x8e, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x68, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xdf, 0x8a, 0xb0, 0x1c, 0xe8, 0x5b, 0x11, 0x2a, 0x0e, 0x8d, 0x8e, 0x8e, 0xc7, 0xc3, 0x2e, 0xdc, 0x06, 0x8b, 0x30, 0xaa, 0x0e, 0x2d, 0x80, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xe7, 0x8a, 0x30, 0x19, 0xe8, 0x5d, 0x11, 0x5e, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xb9, 0x22, 0xcc, 0x06, 0x5a, 0x57, 0x84, 0xc2, 0x41, 0xb6, 0x86, 0x3c, 0xf6, 0xe2, 0x20, 0x58, 0x90, 0x0c, 0xa4, 0x7f, 0x0e, 0x86, 0xa1, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x10, 0x9e, 0x83, 0x61, 0xe8, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xe2, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x09, 0xc0, 0x8f, 0xb7, 0x37, 0xb8, 0xb9, 0x96, 0xb3, 0xba, 0xb2, 0xb9, 0xb9, 0x96, 0xbc, 0xb7, 0xba, 0x16, 0xb7, 0xb2, 0x32, 0xb2, 0x32, 0xb2, 0x16, 0xb3, 0xb2, 0x32, 0xb6, 0x96, 0x30, 0x33, 0xba, 0x32, 0xb9, 0x96, 0x30, 0x36, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x5c, 0x11, 0xa6, 0x03, 0x9d, 0x2b, 0x42, 0xff, 0x78, 0xd0, 0x98, 0x27, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xeb, 0x8a, 0x30, 0x3b, 0x68, 0x0a, 0x12, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xad, 0x2b, 0xc2, 0xf4, 0xa0, 0x29, 0x48, 0xa0, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x57, 0x84, 0xed, 0x40, 0xeb, 0x8a, 0xb0, 0x1f, 0x24, 0x03, 0xbd, 0xff, 0x0e, 0xd9, 0x8a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xeb, 0x8a, 0x50, 0x30, 0xd0, 0xba, 0x22, 0xb4, 0x1c, 0x2c, 0x46, 0x36, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x57, 0x84, 0x9a, 0x81, 0xd6, 0x15, 0xa1, 0xef, 0xd0, 0x74, 0xe8, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xde, 0x15, 0x61, 0x72, 0xd0, 0xa8, 0x22, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0xdc, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xef, 0x8a, 0x30, 0x1c, 0xe8, 0x5d, 0x11, 0xd6, 0x07, 0x21, 0x05, 0x3e, 0x88, 0x16, 0xb4, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x77, 0x45, 0xe8, 0x1e, 0xe8, 0x5d, 0x11, 0x4e, 0x1c, 0x94, 0x32, 0x3b, 0x83, 0x68, 0x61, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xbb, 0x22, 0x94, 0x0c, 0xf4, 0xae, 0x08, 0xa5, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xae, 0x08, 0x2d, 0x03, 0xbd, 0x2b, 0x42, 0xd1, 0x20, 0x19, 0xd4, 0x1d, 0x1c, 0xb3, 0x8a, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xbd, 0x2b, 0x42, 0xd3, 0x40, 0xef, 0x8a, 0xd0, 0x76, 0x48, 0xd5, 0x0c, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xbd, 0x2b, 0x42, 0xdd, 0x40, 0xef, 0x8a, 0xd0, 0x79, 0x10, 0x02, 0xe0, 0xc7, 0xa1, 0xe3, 0xf9, 0xb0, 0x0b, 0xb7, 0xc1, 0x52, 0x66, 0xad, 0x43, 0x0b, 0xa0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xbc, 0x22, 0x4c, 0x06, 0xda, 0x57, 0x84, 0x8e, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x9a, 0x57, 0x84, 0xed, 0x40, 0xf3, 0x8a, 0xf0, 0x61, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xe6, 0x15, 0x61, 0x3c, 0xd0, 0xbc, 0x22, 0x54, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xbc, 0x22, 0x74, 0x0c, 0x34, 0xaf, 0x08, 0x2d, 0x07, 0x4d, 0xb1, 0xeb, 0x0c, 0x92, 0x81, 0xf4, 0xdd, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x79, 0x45, 0xa8, 0x19, 0x68, 0x5e, 0x11, 0x9a, 0x0e, 0xc6, 0x9b, 0xce, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xaf, 0x08, 0x5d, 0x03, 0xcd, 0x2b, 0xc2, 0x85, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x9a, 0x57, 0x84, 0xd6, 0x81, 0xe6, 0x15, 0xa1, 0x77, 0x90, 0x0c, 0xbe, 0x1d, 0x8c, 0x77, 0x9d, 0x41, 0x32, 0xb8, 0x35, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x5e, 0x11, 0x8a, 0x07, 0x9a, 0x57, 0x84, 0x07, 0x87, 0xa6, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0x57, 0x84, 0xc9, 0x41, 0x53, 0x0a, 0x41, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xee, 0x15, 0x61, 0x36, 0xd0, 0xbd, 0x22, 0x94, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xbd, 0x22, 0xec, 0x06, 0xba, 0x57, 0x84, 0x96, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0x57, 0x84, 0xf9, 0x40, 0xf7, 0x8a, 0x50, 0x30, 0x48, 0x06, 0xc2, 0x72, 0x30, 0x0c, 0x7d, 0x06, 0xc9, 0xe0, 0xdc, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x7b, 0x45, 0x68, 0x18, 0xe8, 0x5e, 0x11, 0x4a, 0x8e, 0x43, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xf7, 0x8a, 0x50, 0x33, 0xd0, 0xbd, 0x22, 0xf4, 0x1c, 0x62, 0x38, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xaf, 0x08, 0x45, 0x03, 0xdd, 0x2b, 0x42, 0xd7, 0x21, 0xd9, 0x71, 0x1c, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xed, 0x2b, 0xc2, 0xe4, 0xa0, 0x29, 0x85, 0xa0, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x68, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xfb, 0x8a, 0xb0, 0x1c, 0x68, 0x5f, 0x11, 0x2a, 0x0e, 0x4a, 0x99, 0x9d, 0xe3, 0xf9, 0xe1, 0x14, 0x1b, 0x64, 0x6b, 0x68, 0xbf, 0x3e, 0xdc, 0x06, 0xeb, 0xbe, 0xb5, 0x0e, 0x2d, 0x80, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xbf, 0x22, 0x4c, 0x06, 0xfa, 0x57, 0x84, 0xe1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x5f, 0x11, 0x36, 0x03, 0xfd, 0x2b, 0xc2, 0xea, 0x70, 0xb4, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x7f, 0x45, 0x98, 0x0d, 0xf4, 0xaf, 0x08, 0xbb, 0x43, 0x0c, 0x8f, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x92, 0x11, 0x3f, 0xd0, 0x73, 0x23, 0x24, 0x83, 0x60, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x4d, 0x32, 0x42, 0x76, 0xd0, 0x7a, 0x65, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0x64, 0xc4, 0x1f, 0xb4, 0x5e, 0x19, 0x34, 0xec, 0x06, 0x4b, 0x05, 0x83, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x97, 0x8c, 0xb0, 0x18, 0xe8, 0x92, 0x11, 0xfa, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0x60, 0x3d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x2e, 0x19, 0x61, 0x38, 0xd0, 0x25, 0x23, 0xd4, 0x6f, 0xb0, 0x94, 0x59, 0x6b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x5d, 0x32, 0xc2, 0xfa, 0xa0, 0xf5, 0xd6, 0xa0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x25, 0x23, 0xcc, 0x07, 0xba, 0x64, 0x84, 0xbe, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x25, 0x23, 0xec, 0x07, 0xba, 0x64, 0x84, 0x92, 0x83, 0x55, 0xa6, 0x54, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x4b, 0x46, 0x68, 0x19, 0xe8, 0x92, 0x11, 0xca, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x97, 0x8c, 0x50, 0x33, 0xd0, 0x25, 0x23, 0x54, 0x1d, 0xf2, 0xb5, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x4b, 0x46, 0x68, 0x1b, 0xe8, 0x92, 0x11, 0xea, 0x0e, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x97, 0x8c, 0x50, 0x38, 0xd0, 0x25, 0x23, 0xb4, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x2e, 0x19, 0xa1, 0x71, 0xa0, 0x4b, 0x46, 0xa8, 0x3d, 0x58, 0xd1, 0x74, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x2e, 0x19, 0xa1, 0x77, 0xa0, 0x4b, 0x46, 0x28, 0x3f, 0x58, 0x68, 0x62, 0x74, 0x3c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x9b, 0x8c, 0xf8, 0x83, 0xd6, 0x2b, 0x83, 0x86, 0xdd, 0xa0, 0x11, 0x65, 0x99, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x29, 0x23, 0x24, 0x03, 0xed, 0x33, 0x42, 0x36, 0xec, 0x06, 0x4d, 0x47, 0xcb, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x56, 0x19, 0x61, 0x38, 0xd0, 0x2a, 0x23, 0x7c, 0x18, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x65, 0x84, 0xfd, 0x40, 0xab, 0x8c, 0x70, 0x61, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xca, 0x08, 0x05, 0x03, 0xad, 0x32, 0x42, 0xcb, 0xc1, 0xc2, 0x19, 0xa3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x2a, 0x23, 0xd4, 0x0c, 0xb4, 0xca, 0x08, 0x9d, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x55, 0x46, 0xe8, 0x19, 0x68, 0x95, 0x11, 0xca, 0x0e, 0x56, 0x34, 0x1d, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x55, 0x46, 0x68, 0x1b, 0x68, 0x95, 0x11, 0x2a, 0x0f, 0x16, 0x9a, 0x18, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x55, 0x46, 0x28, 0x1d, 0x68, 0x95, 0x11, 0x1e, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x56, 0x19, 0xa1, 0x75, 0xa0, 0x55, 0x46, 0xa8, 0x3e, 0x58, 0xd1, 0x74, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x56, 0x19, 0xa1, 0x7b, 0xa0, 0x55, 0x46, 0x38, 0x70, 0xb0, 0xd0, 0xc4, 0xe8, 0x78, 0x3c, 0xec, 0x06, 0xad, 0x2b, 0xcc, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x5e, 0x19, 0x61, 0x38, 0xd0, 0x2b, 0x23, 0xdc, 0x18, 0x24, 0x43, 0x06, 0xd1, 0x82, 0x78, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xca, 0x08, 0xf3, 0x81, 0x5e, 0x19, 0xa1, 0x72, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xd6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x95, 0x11, 0x5a, 0x06, 0x7a, 0x65, 0x84, 0xc6, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x2b, 0x23, 0xd4, 0x0c, 0xf4, 0xca, 0x08, 0x5d, 0x87, 0xdc, 0xf7, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x95, 0x11, 0xca, 0x06, 0x7a, 0x65, 0x84, 0xba, 0x83, 0x71, 0xbb, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x5e, 0x19, 0xa1, 0x6f, 0xa0, 0x57, 0x46, 0x28, 0x3c, 0xc4, 0xf0, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x5e, 0x19, 0xa1, 0x79, 0xa0, 0x57, 0x46, 0x78, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x65, 0x84, 0xea, 0x81, 0x5e, 0x19, 0xa1, 0xff, 0x90, 0xfb, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xbd, 0x32, 0xc2, 0x81, 0x81, 0x5e, 0x19, 0xe1, 0xc2, 0xc1, 0xb8, 0xdd, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xaf, 0x8c, 0xf0, 0x61, 0xa0, 0x57, 0x46, 0x38, 0x71, 0x38, 0xda, 0x8f, 0xc7, 0xc3, 0x6e, 0xd0, 0x40, 0xd8, 0xcc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x96, 0x11, 0x86, 0x03, 0xcd, 0x32, 0x42, 0xd9, 0x20, 0x19, 0x32, 0x88, 0x16, 0xac, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x2c, 0x23, 0xec, 0x07, 0x9a, 0x65, 0x84, 0xae, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x2c, 0x23, 0x14, 0x0c, 0x34, 0xcb, 0x08, 0x2d, 0x87, 0xdc, 0xf7, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x96, 0x11, 0x6a, 0x06, 0x9a, 0x65, 0x84, 0xa2, 0x83, 0x21, 0xf5, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x66, 0x19, 0xa1, 0x69, 0xa0, 0x59, 0x46, 0xa8, 0x3a, 0xc4, 0xf0, 0x78, 0x3c, 0xec, 0x06, 0xed, 0x07, 0xce, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x6e, 0x19, 0x61, 0x38, 0xd0, 0x2d, 0x23, 0x6c, 0x0f, 0x59, 0xbb, 0x61, 0x37, 0x68, 0x58, 0x71, 0x66, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xcb, 0x08, 0xc3, 0x81, 0x76, 0x19, 0x61, 0x7d, 0xb0, 0xbe, 0xc1, 0x68, 0x90, 0x6d, 0xd0, 0x64, 0xf2, 0xcc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x1a, 0x66, 0x84, 0x6c, 0xa0, 0x7b, 0x46, 0x48, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x98, 0x11, 0xf2, 0x81, 0x86, 0x19, 0x61, 0x3d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x86, 0x19, 0x61, 0x73, 0xd0, 0x30, 0xa8, 0xd0, 0xf0, 0x0b, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x30, 0x23, 0x8c, 0x06, 0x1a, 0x66, 0x84, 0xdd, 0x41, 0xc3, 0xdb, 0x02, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x61, 0x46, 0x18, 0x0e, 0x34, 0xcc, 0x08, 0xe3, 0x83, 0xe6, 0x95, 0x05, 0x8e, 0x43, 0xc7, 0xb7, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xcc, 0x08, 0xd9, 0x41, 0x33, 0x9b, 0x42, 0x83, 0x60, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x1d, 0x33, 0x42, 0x7e, 0xd0, 0xcc, 0xa6, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x66, 0x84, 0xec, 0xa0, 0x99, 0x4d, 0xa1, 0x61, 0x37, 0x68, 0xe2, 0x7f, 0x66, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xcc, 0x08, 0xc3, 0x81, 0x9e, 0x19, 0x61, 0x7d, 0xb0, 0xbe, 0xc1, 0x68, 0xd8, 0x0d, 0x5a, 0x3e, 0xa0, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x4d, 0x33, 0xc2, 0x70, 0xa0, 0x69, 0x46, 0xe8, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x4d, 0x33, 0xc2, 0x72, 0xa0, 0x69, 0x46, 0x98, 0x1f, 0x2c, 0x9c, 0x31, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x4d, 0x33, 0xc2, 0x7e, 0xa0, 0x69, 0x46, 0x28, 0x39, 0x58, 0x68, 0x62, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xa6, 0x19, 0xa1, 0x65, 0xa0, 0x69, 0x46, 0xa8, 0x3a, 0x58, 0x68, 0x62, 0x34, 0xec, 0x06, 0xed, 0x86, 0xd0, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xae, 0x19, 0x61, 0x38, 0xd0, 0x35, 0x23, 0xac, 0x0f, 0xd6, 0x37, 0x18, 0x0d, 0xbb, 0x41, 0xc3, 0x8b, 0x34, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x6d, 0x46, 0x18, 0x0e, 0xb4, 0xcd, 0x08, 0xdb, 0x43, 0xb2, 0x63, 0xd8, 0x0d, 0x1a, 0xb7, 0xa4, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x7d, 0x33, 0xc2, 0x70, 0xa0, 0x6f, 0x46, 0xd8, 0x1e, 0x92, 0x1d, 0xc3, 0x6e, 0xd0, 0x80, 0x28, 0xcd, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x9c, 0x11, 0x86, 0x03, 0x8d, 0x33, 0x42, 0xe3, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x8d, 0x33, 0xc2, 0x72, 0xa0, 0x71, 0x46, 0x58, 0x0f, 0x92, 0x81, 0xa7, 0xfa, 0x0e, 0x86, 0xa1, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x71, 0x46, 0x98, 0x0f, 0x34, 0xce, 0x08, 0x1d, 0x07, 0x09, 0xd8, 0x02, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xe3, 0x8c, 0x50, 0x32, 0xd0, 0x38, 0x23, 0x14, 0x0e, 0x92, 0x21, 0x83, 0x68, 0xc1, 0xf9, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xce, 0x08, 0x55, 0x03, 0x8d, 0x33, 0x42, 0xdf, 0xc1, 0x08, 0xf2, 0x3c, 0x1e, 0x1f, 0x87, 0x86, 0xdd, 0xa0, 0x2d, 0x5a, 0x9a, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x39, 0x23, 0x0c, 0x07, 0x3a, 0x67, 0x84, 0x33, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xce, 0x08, 0xcb, 0x81, 0xce, 0x19, 0x61, 0x7d, 0xd0, 0x5c, 0x85, 0xcb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x9c, 0x11, 0xe6, 0x03, 0x9d, 0x33, 0xc2, 0x97, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x67, 0x84, 0xfd, 0x40, 0xe7, 0x8c, 0xd0, 0x71, 0xd0, 0x8e, 0x86, 0xcb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x73, 0x46, 0x28, 0x19, 0xe8, 0x9c, 0x11, 0x3a, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x9c, 0x11, 0xaa, 0x06, 0x3a, 0x67, 0x84, 0xb2, 0x83, 0x05, 0xb5, 0xfb, 0x83, 0x64, 0x20, 0x74, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xce, 0x19, 0xa1, 0x6d, 0xa0, 0x73, 0x46, 0xa8, 0x3c, 0x18, 0x8b, 0x9d, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x73, 0x46, 0x28, 0x1d, 0xe8, 0x9c, 0x11, 0xae, 0x0c, 0x82, 0x0d, 0x16, 0x9a, 0x18, 0x2d, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x73, 0x46, 0x68, 0x1f, 0xe8, 0x9c, 0x11, 0x9e, 0x0c, 0x92, 0x21, 0x83, 0x68, 0xc1, 0xf9, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xce, 0x08, 0x27, 0x06, 0x3a, 0x67, 0x84, 0x23, 0x87, 0xd4, 0xc1, 0x21, 0xb9, 0x74, 0x3c, 0x3e, 0x0e, 0x1d, 0x87, 0x86, 0xdd, 0xa0, 0xe5, 0x80, 0x9a, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x3a, 0x23, 0x0c, 0x07, 0x5a, 0x67, 0x84, 0xc6, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x67, 0x84, 0xe5, 0x40, 0xeb, 0x8c, 0xb0, 0x3e, 0x68, 0x25, 0xa2, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x3a, 0x23, 0xcc, 0x07, 0x5a, 0x67, 0x84, 0x8e, 0x83, 0x04, 0x6c, 0x81, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x75, 0x46, 0x28, 0x19, 0x68, 0x9d, 0x11, 0x0a, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xe0, 0xfc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x67, 0x84, 0xaa, 0x81, 0xd6, 0x19, 0xa1, 0xef, 0x60, 0x04, 0x79, 0x1e, 0x8f, 0x8f, 0x43, 0x83, 0x6c, 0x83, 0xf6, 0x55, 0x6a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x3b, 0x23, 0x0c, 0x07, 0x9a, 0x67, 0x84, 0x17, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xde, 0x19, 0x61, 0x3c, 0xd0, 0x3b, 0x23, 0xf4, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x3b, 0x23, 0xac, 0x07, 0x7a, 0x67, 0x84, 0xaa, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x67, 0x84, 0x8e, 0x81, 0xde, 0x19, 0xa1, 0xe5, 0x60, 0x41, 0xed, 0xfe, 0x20, 0x19, 0x98, 0xbe, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xef, 0x8c, 0x50, 0x33, 0xd0, 0x3b, 0x23, 0x34, 0x1d, 0x52, 0x07, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x3b, 0x23, 0x74, 0x0d, 0xf4, 0xce, 0x08, 0x75, 0x87, 0x64, 0xc7, 0x71, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xce, 0x08, 0x8d, 0x03, 0xbd, 0x33, 0x42, 0xed, 0xc1, 0xfa, 0x06, 0xa3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xcf, 0x08, 0xc3, 0x83, 0xa6, 0x31, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xe0, 0xfc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x9a, 0x67, 0x84, 0xde, 0x81, 0xe6, 0x19, 0xe1, 0xc4, 0x20, 0x19, 0xcc, 0x06, 0xd1, 0xc2, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x79, 0x46, 0x38, 0x30, 0xd0, 0x3c, 0x23, 0x7c, 0x38, 0x24, 0x3b, 0x0e, 0x82, 0x9c, 0x7f, 0x10, 0x2d, 0xec, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x9a, 0x67, 0x84, 0xf9, 0x40, 0xf3, 0x8c, 0xd0, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xf3, 0x8c, 0xb0, 0x1f, 0x68, 0x9e, 0x11, 0xca, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x9e, 0x11, 0x5a, 0x06, 0x9a, 0x67, 0x84, 0x9e, 0x83, 0x05, 0xb5, 0xfb, 0x83, 0x64, 0x70, 0x6a, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x3c, 0x23, 0x14, 0x0d, 0x34, 0xcf, 0x08, 0x5d, 0x87, 0xd4, 0xc1, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xcf, 0x08, 0x6d, 0x03, 0xcd, 0x33, 0x42, 0xe1, 0x21, 0xd9, 0x71, 0x1c, 0x3a, 0x1e, 0x1f, 0xdf, 0x86, 0xdd, 0xa0, 0x95, 0xcc, 0x9a, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x41, 0x23, 0x24, 0x03, 0x6d, 0x35, 0x42, 0x36, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x07, 0x8d, 0x90, 0x0e, 0x74, 0xd0, 0x08, 0xdb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xd0, 0x08, 0x8b, 0x83, 0xb6, 0x10, 0x88, 0x86, 0x5f, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x0e, 0x1a, 0x61, 0x32, 0xd0, 0x41, 0x23, 0xac, 0x0e, 0x1a, 0xde, 0x16, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x1d, 0x34, 0xc2, 0x6c, 0xa0, 0x83, 0x46, 0x98, 0x1e, 0x34, 0xaf, 0x2c, 0x70, 0x1c, 0x3a, 0xbe, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x85, 0x46, 0x48, 0x0e, 0x5a, 0x16, 0x20, 0x1a, 0x04, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xa1, 0x11, 0xd2, 0x83, 0x96, 0x05, 0x88, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x43, 0x23, 0x24, 0x07, 0x2d, 0x0b, 0x10, 0x0d, 0xbb, 0x41, 0x13, 0xff, 0x33, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x89, 0x46, 0x18, 0x0e, 0x34, 0xd1, 0x08, 0xeb, 0x83, 0xf5, 0x0d, 0x46, 0xc3, 0x6e, 0xd0, 0xf2, 0x01, 0xcd, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xa2, 0x11, 0x86, 0x03, 0x7d, 0x34, 0x42, 0xc9, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x8b, 0x46, 0x18, 0x0f, 0x74, 0xd1, 0x08, 0x3f, 0x86, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x5d, 0x34, 0xc2, 0x7c, 0xa0, 0x8b, 0x46, 0x78, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0x68, 0x84, 0xfd, 0x40, 0x17, 0x8d, 0x50, 0x72, 0xb0, 0x70, 0xc6, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xd1, 0x08, 0x2d, 0x03, 0x5d, 0x34, 0x42, 0xe5, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xa2, 0x11, 0x6a, 0x06, 0xba, 0x68, 0x84, 0xae, 0x83, 0x15, 0x4d, 0x47, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xa2, 0x11, 0xca, 0x06, 0xba, 0x68, 0x84, 0xc6, 0x83, 0x85, 0x26, 0x46, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xa2, 0x11, 0x3a, 0x07, 0xba, 0x68, 0x84, 0x03, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x8b, 0x46, 0x28, 0x1d, 0xe8, 0xa2, 0x11, 0x9a, 0x0f, 0x56, 0x34, 0x1d, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x8b, 0x46, 0xa8, 0x1e, 0xe8, 0xa2, 0x11, 0xfa, 0x0f, 0x16, 0x9a, 0x18, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x8b, 0x46, 0xb8, 0x30, 0xd0, 0x45, 0x23, 0xdc, 0x38, 0x24, 0x66, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x1f, 0x8d, 0x30, 0x3c, 0x68, 0x81, 0x87, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xd1, 0x08, 0xcb, 0x81, 0x3e, 0x1a, 0x61, 0x7e, 0xb0, 0xf0, 0xc2, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xd1, 0x08, 0xfb, 0x81, 0x3e, 0x1a, 0xa1, 0xe1, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xd1, 0x08, 0x15, 0x03, 0x7d, 0x34, 0x42, 0xc7, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xa3, 0x11, 0xa6, 0x03, 0x6d, 0x34, 0xc2, 0xfa, 0x90, 0xec, 0x18, 0x76, 0x83, 0x76, 0x43, 0x68, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x23, 0x8d, 0x30, 0x1c, 0x68, 0xa4, 0x11, 0xb6, 0x87, 0x64, 0xc7, 0xb0, 0x1b, 0x34, 0xbc, 0x48, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x69, 0x84, 0xe1, 0x40, 0x2f, 0x8d, 0xf0, 0x68, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x4e, 0x1a, 0xa1, 0x61, 0xa0, 0x93, 0x46, 0xa8, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0x82, 0x78, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xd2, 0x08, 0xc5, 0x03, 0x9d, 0x34, 0x42, 0xfb, 0x41, 0x02, 0xb6, 0xc0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x69, 0x84, 0xa6, 0x81, 0x4e, 0x1a, 0xa1, 0xf2, 0xa0, 0xc8, 0x55, 0x38, 0x24, 0x97, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x4a, 0x23, 0x0c, 0x0f, 0xda, 0x0f, 0x25, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x95, 0x46, 0x68, 0x18, 0x68, 0xa5, 0x11, 0xfa, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0x20, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xad, 0x34, 0x42, 0xf3, 0x40, 0x2b, 0x8d, 0x50, 0x7f, 0xd0, 0x24, 0xa2, 0xcd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x69, 0x84, 0xa6, 0x81, 0x56, 0x1a, 0xa1, 0xf3, 0xa0, 0x61, 0x9f, 0x91, 0xc3, 0x0a, 0xed, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x69, 0x84, 0xe1, 0x41, 0xfb, 0xa1, 0x44, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xd2, 0x08, 0xcb, 0x81, 0x5e, 0x1a, 0x61, 0x3d, 0x48, 0x06, 0x8e, 0xbe, 0x83, 0xe1, 0x28, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xa5, 0x11, 0xe6, 0x03, 0xbd, 0x34, 0x42, 0xd9, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xbd, 0x34, 0xc2, 0x7e, 0xa0, 0x97, 0x46, 0xe8, 0x38, 0x68, 0x78, 0xbf, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x4b, 0x23, 0x94, 0x0c, 0xf4, 0xd2, 0x08, 0x3d, 0x87, 0xd4, 0xc1, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x4b, 0x23, 0x14, 0x0d, 0xf4, 0xd2, 0x08, 0x5d, 0xc7, 0xa1, 0xe3, 0xd0, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x2f, 0x8d, 0xd0, 0x36, 0xd0, 0x4b, 0x23, 0xb4, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x4b, 0x23, 0xd4, 0x0d, 0xf4, 0xd2, 0x08, 0x95, 0x07, 0x0d, 0xef, 0xb7, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x69, 0x84, 0xce, 0x81, 0x5e, 0x1a, 0xa1, 0xf6, 0x90, 0x3a, 0x18, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x69, 0x84, 0xde, 0x81, 0x5e, 0x1a, 0xa1, 0x7c, 0x82, 0x9b, 0xff, 0x38, 0xb4, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x4b, 0x23, 0xd4, 0x0f, 0xf4, 0xd2, 0x08, 0x77, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xa5, 0x11, 0xfa, 0x07, 0x7a, 0x69, 0x84, 0x0f, 0x07, 0x0d, 0xef, 0xb7, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x69, 0x84, 0x13, 0x03, 0xbd, 0x34, 0xc2, 0x93, 0x09, 0x4e, 0xfe, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x97, 0x46, 0xb8, 0x32, 0xd0, 0x4b, 0x23, 0xbc, 0x39, 0x0e, 0x1d, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x5e, 0x1a, 0xe1, 0xcf, 0x40, 0x2f, 0x8d, 0x70, 0xe8, 0x10, 0xc3, 0xe3, 0xd0, 0xb0, 0x1b, 0x34, 0x6e, 0x49, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x9a, 0x69, 0x84, 0xe1, 0x40, 0x43, 0x8d, 0xd0, 0x33, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x33, 0x8d, 0x30, 0x1e, 0x68, 0xa6, 0x11, 0x9a, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0x20, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xcd, 0x34, 0x42, 0xe7, 0x40, 0x33, 0x8d, 0x50, 0x7c, 0x90, 0x80, 0x2d, 0x30, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x66, 0x1a, 0xa1, 0x64, 0xa0, 0x99, 0x46, 0x68, 0x3b, 0x28, 0x72, 0x15, 0x0e, 0xc9, 0xa5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xd3, 0x08, 0xc3, 0x83, 0xf6, 0x81, 0x8a, 0x86, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xdd, 0x34, 0xc2, 0x78, 0xa0, 0x9b, 0x46, 0xa8, 0x19, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xd3, 0x08, 0xf3, 0x81, 0x6e, 0x1a, 0xa1, 0xe3, 0x60, 0x7d, 0x83, 0xd1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0x69, 0x84, 0x92, 0x81, 0x6e, 0x1a, 0xa1, 0xe5, 0x38, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0x69, 0x84, 0xa2, 0x81, 0x6e, 0x1a, 0xa1, 0xed, 0x60, 0x7d, 0x83, 0xd1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xda, 0x69, 0x84, 0xe1, 0x41, 0xfb, 0x40, 0x45, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x76, 0x1a, 0x61, 0x3c, 0xd0, 0x4e, 0x23, 0xf4, 0x0d, 0xb7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xda, 0x69, 0x84, 0xf9, 0x40, 0x3b, 0x8d, 0xd0, 0x71, 0xb0, 0xd0, 0xc4, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xed, 0x34, 0x42, 0xc9, 0x40, 0x3b, 0x8d, 0x50, 0x77, 0xd0, 0xb0, 0xcf, 0xc8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xa8, 0x11, 0x86, 0x07, 0xed, 0x03, 0x15, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x86, 0x1a, 0x61, 0x39, 0xd0, 0x50, 0x23, 0xcc, 0x0f, 0xd6, 0x74, 0x4b, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x86, 0x1a, 0x61, 0x3f, 0xd0, 0x50, 0x23, 0x14, 0x1c, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x50, 0x23, 0x34, 0x0c, 0x34, 0xd4, 0x08, 0x35, 0x07, 0x4d, 0x22, 0xda, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x9f, 0x46, 0x98, 0x0e, 0xf4, 0xd3, 0x08, 0x0f, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xa7, 0x11, 0xb6, 0x03, 0xfd, 0x34, 0xc2, 0xfe, 0xa0, 0x9d, 0xc1, 0x98, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x3f, 0x8d, 0x50, 0x30, 0xd0, 0x4f, 0x23, 0x34, 0x1c, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x7e, 0x1a, 0xa1, 0x62, 0xa0, 0x9f, 0x46, 0x38, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xf1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xa7, 0x11, 0xaa, 0x07, 0xfa, 0x69, 0x84, 0xfe, 0x83, 0x85, 0x26, 0x46, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xa7, 0x11, 0xaa, 0x06, 0xfa, 0x69, 0x84, 0xd2, 0x83, 0x86, 0x7d, 0x46, 0x0e, 0x2b, 0xb4, 0xc7, 0xa1, 0x61, 0x37, 0x68, 0x40, 0x94, 0x66, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xd4, 0x08, 0xc3, 0x81, 0x8e, 0x1a, 0xa1, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xce, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xa3, 0x46, 0x98, 0x0f, 0x74, 0xd4, 0x08, 0x1d, 0x07, 0x23, 0xc8, 0xf3, 0x78, 0x3c, 0xec, 0x06, 0x6d, 0xd1, 0xd2, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x96, 0x1a, 0x61, 0x38, 0xd0, 0x52, 0x23, 0x9c, 0x19, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xa5, 0x46, 0x58, 0x0e, 0xb4, 0xd4, 0x08, 0xeb, 0x83, 0xe6, 0x2a, 0x5c, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x4b, 0x8d, 0x30, 0x1f, 0x68, 0xa9, 0x11, 0xbe, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x52, 0x23, 0xec, 0x07, 0x5a, 0x6a, 0x84, 0x8e, 0x83, 0x76, 0x34, 0x5c, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x2d, 0x35, 0x42, 0xc9, 0x40, 0x4b, 0x8d, 0xd0, 0x39, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x4b, 0x8d, 0x50, 0x35, 0xd0, 0x52, 0x23, 0x94, 0x1d, 0x2c, 0xa8, 0xdd, 0x1f, 0x24, 0x03, 0xa1, 0x1b, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xd4, 0x08, 0x6d, 0x03, 0x2d, 0x35, 0x42, 0xe5, 0xc1, 0x58, 0xec, 0x3c, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x2d, 0x35, 0x42, 0xe9, 0x40, 0x4b, 0x8d, 0x70, 0x65, 0x10, 0x6c, 0xb0, 0xd0, 0xc4, 0x68, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x2d, 0x35, 0x42, 0xfb, 0x40, 0x4b, 0x8d, 0xf0, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xce, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xa5, 0x46, 0x38, 0x31, 0xd0, 0x52, 0x23, 0x1c, 0x39, 0xa4, 0x0e, 0x0e, 0xc9, 0xa5, 0xe3, 0xf1, 0x71, 0xe8, 0x38, 0x34, 0xec, 0x06, 0x2d, 0x07, 0xd4, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x9e, 0x1a, 0x61, 0x38, 0xd0, 0x53, 0x23, 0x34, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x53, 0x23, 0x2c, 0x07, 0x7a, 0x6a, 0x84, 0xf5, 0x41, 0x2b, 0x11, 0x35, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x9e, 0x1a, 0x61, 0x3e, 0xd0, 0x53, 0x23, 0x74, 0x1c, 0x24, 0x60, 0x0b, 0x0c, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x3d, 0x35, 0x42, 0xc9, 0x40, 0x4f, 0x8d, 0x50, 0x38, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xe7, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x53, 0x23, 0x54, 0x0d, 0xf4, 0xd4, 0x08, 0x7d, 0x07, 0x23, 0xc8, 0xf3, 0x78, 0x7c, 0x1c, 0x1a, 0x64, 0x1b, 0xb4, 0xaf, 0x52, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xa6, 0x1a, 0x61, 0x38, 0xd0, 0x55, 0x23, 0xbc, 0x18, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xd5, 0x08, 0xe3, 0x81, 0xa6, 0x1a, 0xa1, 0x6f, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xa6, 0x1a, 0x61, 0x3d, 0xd0, 0x54, 0x23, 0x54, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x54, 0x23, 0x74, 0x0c, 0x34, 0xd5, 0x08, 0x2d, 0x07, 0x0b, 0x6a, 0xf7, 0x07, 0xc9, 0xc0, 0xf4, 0x0d, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x9a, 0x6a, 0x84, 0x9a, 0x81, 0xa6, 0x1a, 0xa1, 0xe9, 0x90, 0x3a, 0x38, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xa6, 0x1a, 0xa1, 0x6b, 0xa0, 0xa9, 0x46, 0xa8, 0x3b, 0x24, 0x3b, 0x8e, 0x43, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xa9, 0x46, 0x68, 0x1c, 0x68, 0xaa, 0x11, 0x6a, 0x0f, 0xd6, 0x37, 0x18, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xab, 0x46, 0x18, 0x1e, 0xb4, 0xf2, 0x64, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xe7, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x55, 0x23, 0xf4, 0x0e, 0x74, 0xd5, 0x08, 0x27, 0x06, 0xc9, 0x60, 0x36, 0x88, 0x16, 0x76, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x5d, 0x35, 0xc2, 0x81, 0x81, 0xae, 0x1a, 0xe1, 0xc3, 0x21, 0xd9, 0x71, 0x10, 0xe4, 0xfc, 0x83, 0x68, 0x61, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x55, 0x23, 0xcc, 0x07, 0xba, 0x6a, 0x84, 0xc6, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0x6a, 0x84, 0xfd, 0x40, 0x57, 0x8d, 0x50, 0x36, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x57, 0x8d, 0xd0, 0x32, 0xd0, 0x55, 0x23, 0xf4, 0x1c, 0x2c, 0xa8, 0xdd, 0x1f, 0x24, 0x83, 0x53, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xae, 0x1a, 0xa1, 0x68, 0xa0, 0xab, 0x46, 0xe8, 0x3a, 0xa4, 0x0e, 0x8e, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xab, 0x46, 0x68, 0x1b, 0xe8, 0xaa, 0x11, 0x0a, 0x0f, 0xc9, 0x8e, 0xe3, 0xd0, 0xf1, 0xf8, 0xf8, 0x36, 0xec, 0x06, 0x4d, 0x25, 0xe0, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xce, 0x1a, 0x21, 0x19, 0x68, 0xb4, 0x11, 0xb2, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x6b, 0x84, 0x74, 0xa0, 0xb3, 0x46, 0xd8, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xb3, 0x46, 0x58, 0x1c, 0x34, 0xeb, 0x6b, 0x34, 0xfc, 0x82, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xd6, 0x08, 0x93, 0x81, 0xce, 0x1a, 0x61, 0x75, 0xd0, 0xf0, 0xb6, 0xc0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xac, 0x11, 0x66, 0x03, 0x9d, 0x35, 0xc2, 0xf4, 0xa0, 0x79, 0x65, 0x81, 0xe3, 0xd0, 0xf1, 0x6d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xad, 0x35, 0x42, 0x72, 0xd0, 0x48, 0xae, 0xd1, 0x20, 0x58, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x6b, 0x8d, 0x90, 0x1e, 0x34, 0x92, 0x6b, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xde, 0x1a, 0x21, 0x39, 0x68, 0x24, 0xd7, 0x68, 0xd8, 0x0d, 0x9a, 0xf8, 0x9f, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xcd, 0x35, 0xc2, 0x6c, 0xa0, 0xb9, 0x46, 0xd8, 0x1e, 0xac, 0x6f, 0x30, 0x1a, 0x76, 0x83, 0x96, 0x0f, 0x68, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x77, 0x8d, 0x30, 0x1b, 0xe8, 0xae, 0x11, 0xb6, 0x07, 0x0b, 0x4d, 0x8c, 0x86, 0xdd, 0xa0, 0xdd, 0x10, 0x9a, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x5e, 0x23, 0xcc, 0x06, 0x1a, 0x6c, 0x84, 0xe5, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xbd, 0x46, 0x98, 0x0e, 0xb4, 0xd7, 0x08, 0x6d, 0xc3, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xf6, 0x1a, 0x61, 0x3c, 0xd0, 0x5e, 0x23, 0x34, 0x1c, 0x8c, 0x20, 0xcf, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xd7, 0x08, 0x15, 0x03, 0xed, 0x35, 0x42, 0xd9, 0x86, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xbd, 0x46, 0xe8, 0x38, 0x68, 0x69, 0xe1, 0xe8, 0xa0, 0x94, 0xd9, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xfd, 0x35, 0xc2, 0x70, 0xa0, 0xbf, 0x46, 0x58, 0x1f, 0xac, 0x6f, 0x30, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x83, 0x8d, 0x30, 0x3b, 0x68, 0x42, 0xdf, 0xe8, 0x90, 0xec, 0x18, 0x76, 0x83, 0x86, 0x17, 0x69, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x87, 0x8d, 0x30, 0x1b, 0xe8, 0xb0, 0x11, 0x96, 0x87, 0x64, 0xc7, 0xb0, 0x1b, 0x34, 0x6e, 0x49, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x6c, 0x84, 0xd9, 0x40, 0x8b, 0x8d, 0xb0, 0x3c, 0x24, 0x3b, 0x86, 0xdd, 0xa0, 0x01, 0x51, 0x9a, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x63, 0x23, 0xcc, 0x06, 0x7a, 0x6c, 0x84, 0xbe, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x6c, 0x84, 0xdd, 0x40, 0x8f, 0x8d, 0xb0, 0x3d, 0x68, 0x63, 0x61, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x63, 0x23, 0x8c, 0x07, 0x7a, 0x6c, 0x84, 0x86, 0x83, 0x04, 0x6c, 0x81, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xc7, 0x46, 0xa8, 0x18, 0xe8, 0xb1, 0x11, 0xea, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xe0, 0xfc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x6c, 0x84, 0xa2, 0x81, 0x1e, 0x1b, 0xa1, 0xed, 0x60, 0x04, 0x79, 0x1e, 0x8f, 0x8f, 0x43, 0xc3, 0x6e, 0xd0, 0x16, 0x2d, 0xcd, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xb2, 0x11, 0x66, 0x03, 0x4d, 0x36, 0xc2, 0x95, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x9a, 0x6c, 0x84, 0xdd, 0x40, 0x93, 0x8d, 0xb0, 0x3d, 0x68, 0xae, 0xc2, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xd9, 0x08, 0xe3, 0x81, 0x26, 0x1b, 0xe1, 0xc9, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x4d, 0x36, 0xc2, 0x7a, 0xa0, 0xc9, 0x46, 0x68, 0x38, 0x68, 0x47, 0xc3, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x64, 0x23, 0x54, 0x0c, 0x34, 0xd9, 0x08, 0x8d, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xd9, 0x08, 0x45, 0x03, 0x4d, 0x36, 0x42, 0xd5, 0xc1, 0x82, 0xda, 0xfd, 0x41, 0x32, 0x10, 0xba, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x93, 0x8d, 0xd0, 0x35, 0xd0, 0x64, 0x23, 0x14, 0x1e, 0x8c, 0xc5, 0xce, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x64, 0x23, 0x54, 0x0e, 0x34, 0xd9, 0x08, 0x47, 0x06, 0xc1, 0x06, 0x0b, 0x4d, 0x8c, 0x16, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x64, 0x23, 0x74, 0x0f, 0x34, 0xd9, 0x08, 0x3f, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xe0, 0xfc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x9a, 0x6c, 0x84, 0x0b, 0x03, 0x4d, 0x36, 0xc2, 0x8d, 0x43, 0xea, 0xe0, 0x90, 0x5c, 0x3a, 0x1e, 0x1f, 0x87, 0x8e, 0x43, 0xc3, 0x6e, 0xd0, 0x72, 0x40, 0xcd, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xb2, 0x11, 0x66, 0x03, 0x5d, 0x36, 0x42, 0xdf, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x5d, 0x36, 0xc2, 0x6e, 0xa0, 0xcb, 0x46, 0xd8, 0x1e, 0xb4, 0x12, 0x51, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xb2, 0x11, 0xc6, 0x03, 0x5d, 0x36, 0x42, 0xc3, 0x41, 0x02, 0xb6, 0xc0, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x65, 0x23, 0x54, 0x0c, 0x74, 0xd9, 0x08, 0x75, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x70, 0x7e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x5d, 0x36, 0x42, 0xd1, 0x40, 0x97, 0x8d, 0xd0, 0x76, 0x30, 0x82, 0x3c, 0x8f, 0xc7, 0xc7, 0xa1, 0x41, 0xb6, 0x41, 0xfb, 0x2a, 0x35, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xb3, 0x11, 0x66, 0x03, 0x7d, 0x36, 0xc2, 0x87, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x9b, 0x8d, 0x30, 0x1d, 0x68, 0xb3, 0x11, 0xda, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xb3, 0x11, 0xb6, 0x03, 0x6d, 0x36, 0x42, 0xd1, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x6d, 0x36, 0x42, 0xc3, 0x40, 0x9b, 0x8d, 0xd0, 0x71, 0xb0, 0xa0, 0x76, 0x7f, 0x90, 0x0c, 0x4c, 0xdf, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xcd, 0x46, 0x28, 0x19, 0x68, 0xb3, 0x11, 0x7a, 0x0e, 0xa9, 0x83, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xb3, 0x11, 0x9a, 0x06, 0xda, 0x6c, 0x84, 0xb2, 0x43, 0xb2, 0xe3, 0x38, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xda, 0x6c, 0x84, 0xbe, 0x81, 0x36, 0x1b, 0xa1, 0xf4, 0x60, 0x7d, 0x83, 0xd1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xfa, 0x6c, 0x84, 0xd9, 0x41, 0xcb, 0xc6, 0x47, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x70, 0x7e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x7d, 0x36, 0x42, 0xeb, 0x40, 0x9f, 0x8d, 0x70, 0x61, 0x90, 0x0c, 0x66, 0x83, 0x68, 0x61, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x67, 0x23, 0xd4, 0x0f, 0xf4, 0xd9, 0x08, 0x0f, 0x0e, 0xc9, 0x8e, 0x83, 0x20, 0xe7, 0x1f, 0x44, 0x0b, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x3e, 0x1b, 0x61, 0x3c, 0xd0, 0x67, 0x23, 0xf4, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x67, 0x23, 0xac, 0x07, 0xfa, 0x6c, 0x84, 0xaa, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xfa, 0x6c, 0x84, 0x8e, 0x81, 0x3e, 0x1b, 0xa1, 0xe5, 0x60, 0x41, 0xed, 0xfe, 0x20, 0x19, 0x9c, 0x1a, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xd9, 0x08, 0x35, 0x03, 0x7d, 0x36, 0x42, 0xd3, 0x21, 0x75, 0x70, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x7d, 0x36, 0x42, 0xd7, 0x40, 0x9f, 0x8d, 0x50, 0x77, 0x48, 0x76, 0x1c, 0x87, 0x8e, 0xc7, 0xc7, 0xb7, 0x61, 0x37, 0x68, 0xad, 0xd2, 0x65, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xda, 0x08, 0x93, 0x81, 0x56, 0x1b, 0xa1, 0x63, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xd6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xb5, 0x11, 0x96, 0x03, 0xad, 0x36, 0x42, 0xc5, 0xa1, 0x59, 0xd2, 0xf1, 0x78, 0xd8, 0x0d, 0x5a, 0x11, 0xd0, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xbd, 0x36, 0xc2, 0x64, 0xa0, 0xd7, 0x46, 0xe8, 0x18, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x6d, 0x84, 0xe5, 0x40, 0xaf, 0x8d, 0x50, 0x71, 0x68, 0x96, 0x74, 0x3c, 0x1e, 0x76, 0x83, 0x16, 0x74, 0x74, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xb3, 0x8d, 0x30, 0x19, 0x68, 0xb6, 0x11, 0x3a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0x60, 0x3d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x66, 0x1b, 0x61, 0x39, 0xd0, 0x6c, 0x23, 0x54, 0x1c, 0x9a, 0x25, 0x1d, 0x8f, 0x87, 0xdd, 0xa0, 0xb1, 0x2f, 0x9d, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x6e, 0x23, 0x4c, 0x06, 0xda, 0x6d, 0x84, 0x27, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x50, 0x3f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x76, 0x1b, 0xa1, 0x68, 0xa0, 0xdd, 0x46, 0x38, 0x32, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xbb, 0x8d, 0xd0, 0x34, 0xd0, 0x6e, 0x23, 0xf4, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x6e, 0x23, 0x14, 0x0e, 0xb4, 0xdb, 0x08, 0x95, 0x07, 0x2d, 0x89, 0xce, 0x0c, 0x92, 0x81, 0xf4, 0xdd, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xdd, 0x46, 0xe8, 0x1c, 0x68, 0xb7, 0x11, 0x6a, 0x0f, 0x02, 0x13, 0xfb, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xb7, 0x11, 0x8a, 0x07, 0xda, 0x6d, 0x84, 0xf6, 0x83, 0x65, 0x9c, 0x48, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xbb, 0x8d, 0x50, 0x3f, 0xd0, 0x6e, 0x23, 0xfc, 0x38, 0x34, 0x2e, 0x3a, 0x0e, 0x0d, 0xa2, 0x05, 0xeb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xdb, 0x08, 0xcb, 0x81, 0x76, 0x1b, 0xa1, 0xe2, 0xd0, 0x2c, 0xe9, 0x78, 0x3c, 0xec, 0x06, 0x4d, 0x6c, 0xea, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x7e, 0x1b, 0x61, 0x32, 0xd0, 0x71, 0x23, 0xd4, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x6f, 0x23, 0x6c, 0x07, 0xfa, 0x6d, 0x84, 0x0f, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xdb, 0x08, 0xe3, 0x81, 0x7e, 0x1b, 0xa1, 0x6a, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x7e, 0x1b, 0xa1, 0x63, 0xa0, 0xdf, 0x46, 0x68, 0x39, 0x68, 0x49, 0x74, 0x66, 0x90, 0x0c, 0xa4, 0xef, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xfd, 0x36, 0x42, 0xcd, 0x40, 0xbf, 0x8d, 0xd0, 0x74, 0x10, 0x98, 0xd8, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x6f, 0x23, 0x74, 0x0d, 0xf4, 0xdb, 0x08, 0x17, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xb7, 0x11, 0x5a, 0x07, 0xfa, 0x6d, 0x84, 0xde, 0x83, 0x46, 0x96, 0x75, 0x06, 0xc9, 0xe0, 0xd6, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xdf, 0x46, 0x28, 0x1e, 0xe8, 0xb7, 0x11, 0x1e, 0x1c, 0x1a, 0x17, 0x1d, 0x87, 0x8e, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xb8, 0x11, 0x26, 0x07, 0xad, 0x5d, 0x22, 0x0d, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x1a, 0x6e, 0x84, 0xd9, 0x40, 0xc3, 0x8d, 0x50, 0x3d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xc3, 0x8d, 0xb0, 0x1b, 0x68, 0xb8, 0x11, 0x5a, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xb8, 0x11, 0xe6, 0x03, 0x0d, 0x37, 0x42, 0xc1, 0x41, 0x53, 0xec, 0x3a, 0x83, 0x64, 0x70, 0x6e, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x70, 0x23, 0x34, 0x0c, 0x34, 0xdc, 0x08, 0x25, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xe1, 0x46, 0xa8, 0x19, 0x68, 0xb8, 0x11, 0x7a, 0x0e, 0x31, 0x1c, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x1a, 0x6e, 0x84, 0xa2, 0x81, 0x86, 0x1b, 0xa1, 0x79, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xd6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xb8, 0x11, 0xfa, 0x06, 0x1a, 0x6e, 0x84, 0xe2, 0x43, 0xa3, 0xa3, 0xe3, 0xf9, 0x71, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xdc, 0x08, 0x93, 0x83, 0xd6, 0x2e, 0x91, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xb8, 0x11, 0x36, 0x03, 0x1d, 0x37, 0x42, 0xc3, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x1d, 0x37, 0xc2, 0x74, 0xa0, 0xe3, 0x46, 0x18, 0x1f, 0x34, 0xc5, 0xae, 0x33, 0x48, 0x06, 0xce, 0xba, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xc7, 0x8d, 0xb0, 0x1e, 0xe8, 0xb8, 0x11, 0x0a, 0x0e, 0xf1, 0x3f, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x8e, 0x1b, 0xa1, 0x62, 0xa0, 0xe3, 0x46, 0x68, 0x39, 0x0e, 0x1d, 0x87, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0xa0, 0xe1, 0x98, 0x9d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xdc, 0x08, 0x93, 0x81, 0x96, 0x1b, 0x61, 0x75, 0xc8, 0xda, 0x1d, 0xdf, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xe0, 0xc3, 0xe4, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x82, 0x22, 0x24, 0x03, 0x2d, 0x28, 0x42, 0x76, 0x48, 0x2e, 0xad, 0x41, 0x23, 0x02, 0x29, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x42, 0x11, 0x06, 0x03, 0x4d, 0x28, 0xc2, 0xe8, 0x60, 0xdc, 0x41, 0xad, 0x41, 0xf3, 0xc5, 0x2a, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x42, 0x11, 0x06, 0x03, 0x5d, 0x28, 0xc2, 0xe8, 0xa0, 0x64, 0x68, 0x5a, 0x83, 0xc5, 0xfe, 0x3e, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x43, 0x11, 0x06, 0x03, 0x6d, 0x28, 0xc2, 0xe8, 0x60, 0x2d, 0x9f, 0x40, 0xc7, 0xe3, 0xe1, 0x17, 0x04, 0x1b, 0xb4, 0xcf, 0x06, 0xb0, 0x38, 0x08, 0x16, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x85, 0xdd, 0xd0, 0x71, 0x64, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0x32, 0x30, 0x57, 0x07, 0xc3, 0x51, 0x7a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xcb, 0xe1, 0x8c, 0x16, 0x07, 0xc1, 0x82, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc9, 0xc0, 0xaa, 0xdc, 0xc1, 0x78, 0xd7, 0x39, 0x34, 0x6a, 0x39, 0x34, 0x7f, 0x39, 0x1e, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0x10, 0x55, 0xd2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa6, 0xd8, 0x45, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0xa3, 0x51, 0x60, 0x71, 0x10, 0x2c, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x6c, 0xd0, 0x36, 0xba, 0xc8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x1f, 0x34, 0xaf, 0x2c, 0x30, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x20, 0xf8, 0xe5, 0x0e, 0xc6, 0xbb, 0xce, 0x71, 0xe8, 0xd0, 0xa8, 0xe5, 0xd0, 0xfc, 0xe5, 0x78, 0x7c, 0x1c, 0x3a, 0x0e, 0x1d, 0x1a, 0xb5, 0x1c, 0xfa, 0x53, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x87, 0xdd, 0xb0, 0x82, 0xba, 0x86, 0x18, 0x6e, 0x88, 0xe1, 0x41, 0xc0, 0x61, 0x0f, 0x82, 0x05, 0xc9, 0x90, 0x41, 0xb4, 0x20, 0x3d, 0x74, 0x0c, 0x3b, 0x9e, 0x0f, 0xbb, 0xc1, 0x22, 0x8f, 0xa0, 0x85, 0xdd, 0x60, 0xa1, 0x16, 0xd7, 0xc6, 0xa1, 0x41, 0xb6, 0x41, 0x5b, 0x40, 0x29, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x10, 0x76, 0x7f, 0x83, 0x68, 0x61, 0x0f, 0x02, 0x37, 0xfe, 0x90, 0xad, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xb0, 0xc8, 0x5c, 0x7f, 0xf8, 0x8d, 0xe7, 0x1b, 0x2c, 0xe3, 0x44, 0xda, 0xd0, 0x02, 0xe8, 0x10, 0xc3, 0xe3, 0xd0, 0x86, 0xa3, 0x7d, 0xc3, 0xd1, 0xbe, 0x41, 0x48, 0x81, 0x0f, 0x82, 0x0d, 0x5a, 0x90, 0x7e, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x68, 0x96, 0x74, 0x18, 0x97, 0xe3, 0xd0, 0x20, 0xdb, 0x60, 0x1d, 0x6d, 0xff, 0xf0, 0x0b, 0xa2, 0x05, 0xf7, 0x87, 0xdf, 0x78, 0x3c, 0xec, 0xc2, 0x1d, 0x2c, 0xfd, 0xbb, 0xd9, 0x20, 0x0c, 0xe4, 0x07, 0xd9, 0x1a, 0xda, 0xaf, 0x0f, 0xb7, 0xe1, 0x68, 0x3f, 0x08, 0xdc, 0xf8, 0x41, 0xb0, 0x41, 0x2b, 0xf4, 0x23, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x9a, 0xc7, 0x1f, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x2a, 0xbb, 0xff, 0x41, 0x32, 0x10, 0xba, 0x41, 0xb4, 0xb0, 0x07, 0x67, 0xf5, 0xf3, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x80, 0xd0, 0xed, 0x3b, 0x18, 0x8e, 0xd2, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0xf8, 0xd5, 0x70, 0xb4, 0x6f, 0x10, 0x64, 0xf1, 0xc3, 0x2e, 0xec, 0x42, 0x0f, 0x2d, 0x80, 0x0e, 0xeb, 0x9b, 0x6b, 0x38, 0xda, 0x37, 0xc4, 0x70, 0x10, 0x2c, 0x48, 0x06, 0xd6, 0xeb, 0x0e, 0x86, 0xa3, 0xf4, 0x41, 0x7a, 0xd1, 0xc5, 0xa1, 0x05, 0xd0, 0xf1, 0x7c, 0xd8, 0x0d, 0x5a, 0xce, 0x4c, 0x5a, 0x43, 0x0c, 0xd7, 0x60, 0xb5, 0x1e, 0xd7, 0x41, 0x90, 0xc5, 0x6f, 0x88, 0xe1, 0x20, 0x58, 0x90, 0x0c, 0x1c, 0x7f, 0x87, 0x6c, 0xc5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xb2, 0xe3, 0x60, 0x64, 0xf6, 0x1e, 0x87, 0x06, 0xc1, 0xc2, 0x2f, 0x08, 0x36, 0x68, 0xbd, 0x61, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x7b, 0xd0, 0x92, 0xc5, 0xca, 0x71, 0xe8, 0xf8, 0x36, 0x08, 0x16, 0x17, 0x76, 0x83, 0x05, 0xa2, 0xfe, 0x1b, 0x9c, 0x56, 0x70, 0x0f, 0xc6, 0x32, 0xd4, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x90, 0xad, 0x21, 0x8f, 0xbd, 0xb8, 0x21, 0xf7, 0x3d, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x38, 0x0e, 0x6e, 0x0e, 0x9e, 0x0e, 0xee, 0x0e, 0x4e, 0x0e, 0xda, 0x06, 0x37, 0x07, 0x7f, 0x07, 0x97, 0x0f, 0x92, 0xa8, 0xab, 0x8e, 0x6f, 0xc7, 0xe3, 0x61, 0x37, 0xa4, 0x33, 0x37, 0x44, 0x73, 0xd8, 0x0d, 0x79, 0xac, 0x0d, 0xe3, 0x32, 0xec, 0x86, 0x5d, 0x83, 0x0d, 0xd1, 0x1c, 0x76, 0x83, 0x92, 0xe8, 0x70, 0x61, 0x17, 0x76, 0x83, 0x61, 0xca, 0xbb, 0xb0, 0x0b, 0xb7, 0xe1, 0x68, 0x3f, 0x34, 0xd4, 0x59, 0xd8, 0x0d, 0x9a, 0xf7, 0x82, 0x59, 0xd8, 0x85, 0xdb, 0xe0, 0x4c, 0x82, 0x7e, 0x70, 0x56, 0x3f, 0x3f, 0xa4, 0x73, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x6b, 0x38, 0xda, 0x37, 0x1c, 0xed, 0x0b, 0x82, 0x05, 0xc9, 0xc0, 0xd1, 0x77, 0x70, 0x12, 0x3a, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x70, 0x8c, 0x9c, 0xde, 0x20, 0xec, 0xa9, 0x0f, 0x06, 0x7e, 0xc8, 0x71, 0xe8, 0xe0, 0x4c, 0x82, 0x7e, 0x38, 0xc5, 0x86, 0xdd, 0x20, 0x48, 0xbc, 0x17, 0x76, 0x83, 0x43, 0x1e, 0xfa, 0xc2, 0x2e, 0xec, 0x06, 0xeb, 0x64, 0xf6, 0x17, 0x76, 0xe1, 0x36, 0xc4, 0xf0, 0xd0, 0x84, 0xeb, 0x90, 0xce, 0x3d, 0x1c, 0xed, 0x6b, 0x88, 0xe1, 0x86, 0x86, 0x3a, 0x1b, 0x62, 0x38, 0x08, 0x36, 0x68, 0xc2, 0x3d, 0x69, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xb1, 0xbe, 0x7e, 0x83, 0x12, 0x7b, 0xf0, 0x60, 0xe0, 0x87, 0x1c, 0x87, 0x86, 0x5d, 0xd8, 0x0d, 0x9a, 0xe9, 0x24, 0x59, 0xd8, 0x85, 0xdb, 0x70, 0xb4, 0x1f, 0x9a, 0x70, 0x1d, 0xd2, 0xb9, 0x87, 0xa3, 0x7d, 0x61, 0x17, 0x6e, 0x83, 0xc5, 0x6d, 0xfb, 0x87, 0x66, 0x3c, 0x0b, 0x82, 0x05, 0xc1, 0x82, 0x60, 0x83, 0xf6, 0x7c, 0x06, 0x06, 0xc9, 0x40, 0xb8, 0x0e, 0x5a, 0x52, 0x25, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x1e, 0x24, 0x18, 0x20, 0x1c, 0x87, 0x36, 0xc4, 0x70, 0x83, 0xd4, 0xf5, 0x81, 0x0d, 0x47, 0xfb, 0x06, 0x0b, 0x0c, 0xf7, 0x8f, 0x43, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0x76, 0x3c, 0x5e, 0xd8, 0x0d, 0x16, 0x79, 0xfa, 0xaf, 0x21, 0x86, 0x6b, 0x88, 0xe1, 0x86, 0x05, 0xd1, 0x43, 0x0f, 0xa1, 0x0d, 0x31, 0x3c, 0x18, 0x88, 0xd4, 0x1b, 0x8e, 0xf6, 0x0d, 0x31, 0x1c, 0x04, 0x1b, 0x2c, 0x23, 0x2c, 0x39, 0x58, 0x52, 0xd5, 0xbf, 0xb0, 0x1b, 0x34, 0xdf, 0xc0, 0xb2, 0x21, 0x86, 0xc3, 0x6e, 0xd0, 0x50, 0x04, 0xcb, 0x06, 0x25, 0x43, 0xd3, 0xb0, 0x1b, 0xb4, 0xb7, 0x17, 0xb3, 0x41, 0xc9, 0xd0, 0x34, 0xec, 0x06, 0xad, 0x81, 0xb0, 0x2c, 0xec, 0x06, 0x0b, 0x44, 0xfd, 0x37, 0x38, 0xad, 0xe0, 0x0e, 0x82, 0x05, 0xc9, 0xa0, 0x6e, 0x10, 0x2d, 0x30, 0xfe, 0x07, 0xe9, 0x8d, 0x0d, 0x83, 0x68, 0xc1, 0x78, 0x10, 0x6c, 0xd0, 0xe6, 0xd4, 0xc8, 0xc1, 0xa1, 0x11, 0xf8, 0x78, 0x3c, 0xec, 0x06, 0xa3, 0x5e, 0x72, 0x43, 0x0c, 0x87, 0x5d, 0xd8, 0x0d, 0x16, 0xc0, 0xfa, 0x6c, 0x88, 0xe1, 0xb0, 0x1b, 0xb4, 0x76, 0x02, 0x70, 0x48, 0xe7, 0x6e, 0x1c, 0x1a, 0x24, 0x83, 0xba, 0x41, 0xb4, 0xc0, 0xf8, 0x1f, 0x2c, 0xda, 0x18, 0x1b, 0x44, 0x0b, 0x84, 0xfb, 0x60, 0xb0, 0xc6, 0x0e, 0xa2, 0x05, 0xe3, 0x41, 0xb0, 0x20, 0x19, 0xd4, 0x1d, 0x9c, 0xce, 0x90, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x92, 0x1d, 0x07, 0x43, 0xb1, 0xe8, 0x38, 0x74, 0x3c, 0x1f, 0x76, 0x83, 0x76, 0x31, 0x63, 0x16, 0x76, 0x83, 0x05, 0xa2, 0xfe, 0x1b, 0x9c, 0x56, 0x70, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x06, 0x04, 0x55, 0xdf, 0xc1, 0xf0, 0x8f, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xd0, 0xae, 0x71, 0xc8, 0x04, 0xff, 0xfd, 0x1f, 0x87, 0x86, 0xdd, 0x60, 0xd4, 0x4b, 0xae, 0x21, 0x86, 0x07, 0xc9, 0x1a, 0x08, 0xc3, 0x2e, 0xdc, 0x41, 0x6b, 0x5b, 0x4a, 0x1b, 0x9c, 0x0b, 0xb1, 0x37, 0xc4, 0x70, 0x10, 0x6c, 0xb0, 0xf4, 0x7f, 0xec, 0xa0, 0x81, 0x43, 0x93, 0xe1, 0x17, 0x44, 0x0b, 0x8c, 0xfb, 0x41, 0x08, 0x80, 0x1f, 0x8f, 0x87, 0xdf, 0x60, 0xb0, 0x03, 0x0c, 0xbb, 0x41, 0xeb, 0x7c, 0x00, 0x0b, 0x82, 0x05, 0xc1, 0x82, 0x64, 0xa0, 0xf6, 0x1d, 0x8c, 0x77, 0x9d, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x25, 0x41, 0xc3, 0x04, 0xc2, 0xf6, 0xff, 0x38, 0x34, 0xec, 0x06, 0x21, 0x05, 0xbe, 0xb0, 0x1b, 0x84, 0x00, 0xf8, 0x82, 0x64, 0x50, 0x37, 0x88, 0x36, 0x68, 0x7c, 0x86, 0x65, 0x10, 0x2d, 0x18, 0x0f, 0x82, 0x0d, 0xda, 0x70, 0x18, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x10, 0xa4, 0xf8, 0x07, 0x43, 0xb1, 0xe8, 0x38, 0x74, 0x48, 0x2e, 0x0d, 0x92, 0x41, 0xdd, 0x20, 0x5a, 0x60, 0xfc, 0x07, 0xc1, 0x82, 0x64, 0xe0, 0xf8, 0x1b, 0x44, 0x0b, 0x7b, 0x90, 0x76, 0xc1, 0x70, 0x30, 0x0c, 0x7d, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x9c, 0x19, 0x97, 0x0f, 0x8d, 0xe7, 0x8f, 0x43, 0x83, 0x68, 0xc1, 0x78, 0x10, 0x6c, 0xd0, 0x86, 0xc3, 0xc8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x20, 0xc5, 0x3f, 0x18, 0xb2, 0xe7, 0xc7, 0xa1, 0x43, 0x72, 0x69, 0x90, 0x0c, 0xfa, 0x0e, 0xc9, 0xa5, 0x0d, 0x31, 0x5c, 0x43, 0x4a, 0xe0, 0xd0, 0x02, 0x68, 0x10, 0x2c, 0xec, 0xc2, 0x6d, 0xb0, 0x96, 0x52, 0x6a, 0x82, 0xd7, 0xfe, 0xd7, 0x60, 0x2d, 0xa5, 0xd4, 0xc1, 0x60, 0x8d, 0x1d, 0x64, 0x6b, 0x68, 0xbf, 0x3e, 0xdc, 0x06, 0x2b, 0x20, 0xa5, 0x0e, 0x9a, 0x91, 0x54, 0xda, 0x60, 0x05, 0xa4, 0xd4, 0xc1, 0x60, 0x8d, 0xdd, 0x70, 0xb4, 0x2f, 0x08, 0x36, 0x68, 0xc3, 0x61, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xa1, 0xf1, 0xfc, 0xa1, 0x87, 0xd0, 0x71, 0x68, 0x0d, 0xce, 0xb2, 0xc7, 0xc7, 0xa1, 0x43, 0x62, 0x6a, 0xd8, 0x0d, 0x5a, 0xad, 0x62, 0x59, 0x90, 0x0c, 0xea, 0x06, 0xd1, 0x02, 0xe3, 0x7f, 0xd0, 0xce, 0x67, 0xcc, 0xf1, 0x78, 0xd8, 0x0d, 0x9a, 0x55, 0x62, 0x59, 0xd8, 0x0d, 0x16, 0x88, 0xfa, 0x6f, 0xd0, 0x02, 0x18, 0xcb, 0xf0, 0x1b, 0x8f, 0x87, 0x5d, 0xd8, 0x85, 0x1e, 0xa4, 0x37, 0x36, 0x1c, 0xd6, 0x37, 0x17, 0x76, 0xe1, 0x36, 0x48, 0x30, 0x40, 0x38, 0x48, 0x6f, 0x6c, 0xd8, 0xa0, 0x05, 0x30, 0x96, 0x83, 0xb1, 0x0c, 0x35, 0x08, 0x16, 0x17, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0x6d, 0xd8, 0x0a, 0x0c, 0x92, 0x81, 0xe2, 0x37, 0x88, 0x16, 0xf6, 0xe0, 0x5c, 0x63, 0x7e, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x1e, 0xa4, 0xc6, 0x74, 0x1c, 0x87, 0x86, 0xdd, 0x60, 0xd4, 0x4b, 0x6e, 0x50, 0xf0, 0x3b, 0x0d, 0xbb, 0x41, 0x68, 0xb9, 0x2f, 0x48, 0x06, 0x75, 0x83, 0x68, 0x83, 0x86, 0x80, 0x58, 0x06, 0xd1, 0x02, 0xe1, 0x1e, 0xe6, 0x20, 0xcd, 0x3d, 0x63, 0x10, 0x2d, 0xa8, 0x3e, 0x38, 0xc9, 0x71, 0x1f, 0x92, 0x4b, 0xc3, 0x2e, 0xdc, 0x86, 0x18, 0x1e, 0xa4, 0xb9, 0x67, 0x2c, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x81, 0xf5, 0xbb, 0x83, 0x61, 0xe8, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0xcc, 0xb8, 0x7c, 0x10, 0x94, 0xde, 0xc7, 0xa1, 0x61, 0x37, 0x58, 0x00, 0xeb, 0xb3, 0x86, 0x18, 0x2e, 0x08, 0x36, 0x58, 0xfd, 0x29, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xd0, 0x48, 0x70, 0xf8, 0x8d, 0xe7, 0x1b, 0x62, 0xb8, 0x86, 0x18, 0x1e, 0x04, 0x29, 0xfe, 0xc1, 0x18, 0x7b, 0x3a, 0x0e, 0x1d, 0x0c, 0xd6, 0xd8, 0x41, 0xb6, 0xc1, 0x52, 0x8e, 0xa0, 0x0d, 0x47, 0xfb, 0x86, 0xa3, 0x7d, 0x83, 0x20, 0x8b, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0xe1, 0x3b, 0x38, 0x66, 0x15, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x41, 0x7b, 0xd9, 0x4a, 0x07, 0x41, 0xe9, 0x7d, 0x1c, 0x1a, 0x24, 0xc3, 0x0d, 0xa2, 0x05, 0xc6, 0x7d, 0x10, 0x2c, 0x48, 0x06, 0xd2, 0x2b, 0x07, 0xe7, 0xbc, 0xe3, 0x83, 0x76, 0xc7, 0x4d, 0x8e, 0xe7, 0x83, 0x60, 0x71, 0xd8, 0x85, 0xdb, 0x10, 0xc3, 0x83, 0x53, 0x73, 0xf9, 0x82, 0x64, 0x50, 0x37, 0x88, 0x36, 0x68, 0x08, 0x88, 0xe5, 0xa0, 0x19, 0x63, 0xa5, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0x08, 0xbb, 0xbf, 0x41, 0xb4, 0xb0, 0x07, 0x65, 0x83, 0xd0, 0xc1, 0x30, 0xf4, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xb0, 0xc8, 0x5c, 0x7f, 0x02, 0x41, 0xfd, 0x7f, 0x1c, 0x1a, 0x04, 0x0b, 0x92, 0x41, 0xdd, 0x20, 0x5a, 0x60, 0xfc, 0x0f, 0x42, 0x0a, 0x7c, 0x10, 0x6d, 0x30, 0xd2, 0xe7, 0x07, 0xd1, 0x82, 0xf1, 0xe1, 0x68, 0x1f, 0x44, 0x0b, 0x7b, 0x88, 0xe1, 0x61, 0x85, 0x76, 0xd8, 0x0d, 0x46, 0xbd, 0xe4, 0x86, 0x18, 0x0e, 0xbb, 0xb0, 0x1b, 0x8c, 0x8e, 0xf5, 0x85, 0xdd, 0x60, 0x91, 0x47, 0xd0, 0xc2, 0x6e, 0xb0, 0x66, 0x28, 0x65, 0x83, 0x85, 0x5a, 0x5c, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0x05, 0xc9, 0x90, 0x41, 0xb4, 0x40, 0xd7, 0xff, 0x09, 0x8c, 0xf5, 0xff, 0x41, 0xb4, 0x40, 0xb9, 0x3f, 0x18, 0xac, 0xb1, 0x87, 0xe4, 0xd2, 0x20, 0x58, 0xd8, 0x0d, 0x16, 0xc0, 0xfa, 0x2c, 0x08, 0x16, 0x24, 0x03, 0x46, 0xdf, 0xdf, 0xc1, 0x70, 0x94, 0x3e, 0x18, 0x9a, 0xae, 0x83, 0x6c, 0x83, 0xa5, 0x1c, 0x41, 0x83, 0x60, 0x83, 0x46, 0x2f, 0x96, 0x0e, 0x1a, 0x2e, 0x4a, 0xd9, 0x70, 0xb4, 0x6f, 0x38, 0xda, 0x37, 0x08, 0x29, 0xf0, 0x41, 0xb0, 0x20, 0x19, 0x18, 0xbe, 0x83, 0xd3, 0x19, 0xf2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xda, 0x0d, 0x59, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x0d, 0x31, 0x3c, 0x28, 0x09, 0x1a, 0x0e, 0x6b, 0xbf, 0xc7, 0xa1, 0xc3, 0xb8, 0x1c, 0x87, 0x8e, 0x6f, 0x07, 0x25, 0x43, 0xd3, 0xb0, 0x1b, 0xb4, 0x3b, 0xc6, 0xb2, 0x20, 0x58, 0x10, 0x6c, 0xd0, 0x26, 0x1b, 0xcb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xf6, 0xe0, 0x58, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x58, 0x68, 0x62, 0xb4, 0x38, 0x48, 0x06, 0x75, 0x07, 0x2d, 0xe5, 0xb1, 0x1c, 0x8f, 0x8f, 0x43, 0xc3, 0x6e, 0x30, 0xea, 0x25, 0x37, 0xc4, 0x70, 0x10, 0x2c, 0x0e, 0xbb, 0x61, 0xd7, 0x60, 0x43, 0x34, 0x07, 0xc1, 0x06, 0x23, 0x01, 0xe7, 0xa0, 0x28, 0x40, 0x3b, 0xbe, 0x0d, 0xb2, 0x0d, 0x1a, 0xed, 0x63, 0x19, 0x76, 0x41, 0xb0, 0x20, 0xd8, 0xa0, 0xd1, 0xe5, 0x90, 0x83, 0x16, 0x0b, 0x48, 0x0e, 0x4a, 0xab, 0xa4, 0x0d, 0x31, 0x1c, 0x24, 0x83, 0xba, 0x41, 0xb4, 0x41, 0xcb, 0xa5, 0x4a, 0x83, 0x68, 0x61, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x46, 0x97, 0x43, 0x0e, 0x0a, 0x46, 0x87, 0x83, 0xd2, 0x2a, 0xe9, 0x78, 0xbc, 0xe1, 0x68, 0x3f, 0x58, 0xee, 0xe9, 0x7f, 0x30, 0x42, 0xa2, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xc0, 0x37, 0x7b, 0x73, 0x23, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0x20, 0xd8, 0xa0, 0x7d, 0x36, 0x80, 0xc5, 0x41, 0xb0, 0x20, 0xd8, 0x60, 0x8d, 0x68, 0xff, 0x21, 0xd1, 0x3a, 0xc8, 0xd6, 0x90, 0xc7, 0x1e, 0x03, 0x3c, 0xcd, 0xca, 0xdc, 0xc8, 0x5a, 0xcc, 0xe4, 0xc2, 0xce, 0xda, 0xca, 0xdc, 0xe8, 0x61, 0x17, 0x76, 0x83, 0x05, 0xb0, 0x3e, 0x0b, 0xbb, 0x41, 0xcb, 0x99, 0x49, 0x87, 0x74, 0xee, 0xe1, 0x68, 0x5f, 0x83, 0x30, 0x90, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0xed, 0xba, 0xc3, 0x0a, 0xed, 0xc1, 0x4a, 0xdc, 0x9f, 0xc3, 0x29, 0x76, 0x3c, 0x5e, 0x10, 0x6c, 0xd0, 0x42, 0xb3, 0xca, 0xe2, 0x20, 0x58, 0x10, 0x6c, 0xd0, 0xee, 0x4e, 0xcc, 0x41, 0xb2, 0xa1, 0xc1, 0x20, 0x58, 0xf8, 0x05, 0xc1, 0x06, 0x4d, 0x90, 0x8b, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0x1b, 0x5d, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x06, 0xcb, 0x8c, 0x8e, 0x0e, 0x86, 0x7f, 0xec, 0x41, 0xeb, 0x6e, 0x49, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x6d, 0xd8, 0x0d, 0xd6, 0x21, 0x08, 0x2d, 0x08, 0x16, 0x04, 0x8b, 0xc3, 0x6e, 0x30, 0x0e, 0x99, 0xd6, 0x60, 0x04, 0x79, 0x1e, 0x52, 0x07, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x10, 0x76, 0x7f, 0x07, 0x41, 0xce, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x91, 0xb9, 0xfe, 0xc1, 0x19, 0x20, 0xfb, 0x38, 0x34, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x81, 0xbd, 0xbb, 0x41, 0xb4, 0xb0, 0x07, 0x4d, 0x22, 0xda, 0x1c, 0x04, 0xbc, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x62, 0xb6, 0xe0, 0x10, 0xcd, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x98, 0xf9, 0x83, 0x10, 0x00, 0x1f, 0x44, 0x1b, 0x94, 0xbc, 0x74, 0x83, 0x68, 0x61, 0xd7, 0x20, 0xa4, 0xc0, 0x0f, 0xe3, 0x72, 0xd8, 0x2b, 0x3c, 0x24, 0x97, 0x8e, 0x6f, 0x1b, 0x84, 0x14, 0xf8, 0x20, 0x58, 0x90, 0x0c, 0xb4, 0xeb, 0x3b, 0x18, 0x86, 0x3e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x7b, 0x85, 0x87, 0x71, 0x39, 0x0e, 0x0d, 0x82, 0x05, 0xc1, 0x06, 0xab, 0xec, 0xfe, 0x07, 0xc9, 0x40, 0xe8, 0x06, 0xd1, 0xc2, 0x1e, 0x2c, 0x67, 0x12, 0x3a, 0x0e, 0x0d, 0x82, 0x05, 0xc1, 0xe2, 0xb0, 0x0b, 0xb7, 0x21, 0x86, 0x07, 0x21, 0xe2, 0xbf, 0x41, 0x5a, 0xc2, 0xc2, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x06, 0x84, 0xdd, 0xdf, 0x41, 0xc0, 0xfb, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x58, 0x64, 0xae, 0x7f, 0x70, 0x60, 0xd0, 0x3e, 0x0e, 0x0d, 0x82, 0x05, 0xc1, 0x82, 0x64, 0xe0, 0xb9, 0xbf, 0x83, 0xf1, 0xae, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0x82, 0xa4, 0xff, 0x86, 0x68, 0x1e, 0xf6, 0x0a, 0x8f, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x20, 0xfa, 0x07, 0x05, 0xfa, 0xce, 0x20, 0x5a, 0x10, 0x6f, 0xd0, 0xb8, 0xe5, 0xd2, 0x41, 0x60, 0x62, 0x1f, 0x34, 0xcc, 0xaf, 0x72, 0x7c, 0x5b, 0x10, 0x6c, 0x30, 0x82, 0x4f, 0x0f, 0x86, 0xb1, 0xc3, 0x06, 0xe7, 0x96, 0xe2, 0x0d, 0x56, 0xef, 0x0c, 0x0d, 0x82, 0x05, 0xc9, 0x40, 0xbb, 0xbe, 0x83, 0xe1, 0x1f, 0x7b, 0x30, 0xd6, 0x9c, 0x8f, 0xc7, 0x83, 0x60, 0x83, 0x85, 0x26, 0x46, 0x8b, 0xc3, 0x2e, 0xec, 0xc2, 0x6e, 0x10, 0x3c, 0xdc, 0x87, 0xf5, 0xcd, 0x83, 0xb5, 0x91, 0xfd, 0x87, 0x86, 0x9b, 0xc7, 0xe3, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0x1c, 0xf8, 0x3a, 0x7a, 0xc3, 0x0a, 0xed, 0x02, 0x1f, 0x26, 0x0f, 0x92, 0x81, 0xa7, 0xff, 0x8e, 0xc7, 0x6b, 0x90, 0xe4, 0xbb, 0x79, 0xc8, 0xda, 0xad, 0xc1, 0x01, 0x00, 0xeb, 0xd0, 0x43, 0x68, 0x01, 0xcf, 0xae, 0x8c, 0x3e, 0x74, 0x0c, 0x5b, 0xc0, 0x17, 0x63, 0x7b, 0xbb, 0x07, 0xc9, 0xc0, 0xfe, 0xdd, 0xf1, 0x78, 0x01, 0x5f, 0xac, 0x4e, 0x0e, 0x3e, 0x38, 0xbc, 0xd3, 0xae, 0xc1, 0x2a, 0x76, 0xff, 0x83, 0x65, 0x2d, 0x6c, 0x6b, 0xd0, 0x24, 0x1b, 0xc9, 0x41, 0xca, 0xc7, 0xc5, 0x1a, 0x34, 0xac, 0x44, 0x72, 0x70, 0x92, 0xe7, 0x5d, 0xc0, 0x27, 0xab, 0x1b, 0x5b, 0x07, 0xc9, 0xc0, 0xd1, 0x77, 0x3c, 0x5e, 0xc0, 0x27, 0xab, 0x73, 0x2b, 0x07, 0xc9, 0x40, 0xbe, 0xee, 0x78, 0xbc, 0x80, 0x4f, 0x56, 0xe7, 0xb6, 0x0e, 0x92, 0x81, 0xd4, 0xdf, 0xf1, 0x78, 0x0d, 0x5a, 0x89, 0x6a, 0x19, 0x24, 0x03, 0xed, 0xfa, 0x8e, 0xc7, 0x6b, 0xd0, 0xe0, 0x8b, 0xcc, 0x20, 0x19, 0x38, 0xff, 0x8e, 0xc7, 0x6b, 0xd0, 0x44, 0x96, 0xcb, 0x20, 0x19, 0x58, 0xfb, 0x3b, 0x1e, 0x2f, 0xe0, 0x9b, 0x95, 0x95, 0xb1, 0x83, 0x64, 0xe0, 0xbc, 0x3b, 0x1e, 0x2f, 0xe0, 0x9b, 0x95, 0xb1, 0xd1, 0x07, 0xab, 0x7b, 0x61, 0xd6, 0xa0, 0x9d, 0xfc, 0x98, 0x41, 0x32, 0x60, 0xf4, 0xfd, 0x1d, 0x8f, 0x17, 0xf0, 0xcd, 0xd2, 0xe4, 0xca, 0x83, 0x92, 0xa1, 0x69, 0x0d, 0x1a, 0x11, 0x48, 0x19, 0x24, 0x03, 0x6b, 0x77, 0xc7, 0xe3, 0x35, 0x68, 0x90, 0x6a, 0x69, 0x90, 0x0c, 0x7c, 0xfd, 0x77, 0x3c, 0x5e, 0x83, 0x96, 0x46, 0x55, 0x06, 0xc9, 0xc0, 0xfa, 0xdd, 0xf1, 0x78, 0x0d, 0x4a, 0x4d, 0xcb, 0x41, 0x32, 0x60, 0xe9, 0x7f, 0xd7, 0x21, 0x5b, 0xb1, 0x06, 0xcd, 0xb0, 0xa1, 0x0c, 0x92, 0x81, 0xaf, 0xee, 0x8e, 0xc7, 0x6b, 0xd0, 0x7c, 0xb1, 0xca, 0x20, 0x19, 0x18, 0xbe, 0xe3, 0xf1, 0x1a, 0x2c, 0xf6, 0xf7, 0x19, 0x24, 0x03, 0x06, 0xdf, 0xdf, 0xf1, 0x78, 0x01, 0xbf, 0x2d, 0x8d, 0xad, 0x3c, 0x58, 0xbd, 0x89, 0xb6, 0x80, 0xdf, 0x96, 0xe6, 0x56, 0x0e, 0x92, 0x81, 0xa1, 0x3b, 0x1e, 0xaf, 0x41, 0x2b, 0x35, 0x31, 0x83, 0x64, 0x40, 0xd8, 0xfd, 0x1d, 0x8f, 0x17, 0xf0, 0xdb, 0xde, 0xde, 0xe8, 0x41, 0x32, 0x20, 0xfc, 0xfe, 0x8e, 0xc7, 0x6b, 0xd0, 0x02, 0x02, 0xca, 0x20, 0x19, 0x78, 0xea, 0xee, 0x78, 0xbc, 0x06, 0x0d, 0x16, 0x0a, 0x1c, 0x9c, 0xc2, 0x70, 0x17, 0xf0, 0xe1, 0xca, 0xca, 0xd8, 0x41, 0x32, 0x50, 0xfb, 0x8e, 0xc7, 0x6b, 0xd0, 0xc2, 0xa2, 0xca, 0x20, 0x19, 0x48, 0xdf, 0x1d, 0x8f, 0xd7, 0xa0, 0x55, 0x20, 0x97, 0x41, 0x32, 0x70, 0xfc, 0x1d, 0x8f, 0x17, 0xf0, 0xe5, 0xca, 0xe0, 0xde, 0x83, 0xd3, 0x0a, 0xee, 0x1a, 0x34, 0x7e, 0xd4, 0x72, 0xd0, 0x84, 0x25, 0xc0, 0x1a, 0xac, 0x1a, 0xec, 0x3f, 0x38, 0x3f, 0xd1, 0xae, 0x41, 0x4b, 0x0c, 0x29, 0x83, 0x64, 0x60, 0xef, 0xee, 0x78, 0xbc, 0x86, 0xf6, 0xeb, 0x83, 0x64, 0xe0, 0xb9, 0xbf, 0xe3, 0xf1, 0x1a, 0xb4, 0x39, 0x26, 0x33, 0x48, 0x06, 0x96, 0xff, 0x8e, 0xc7, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0xb4, 0x67, 0x01, 0xb0, 0x38, 0xec, 0x82, 0x60, 0x41, 0xb0, 0xc1, 0x62, 0xda, 0x99, 0x41, 0x32, 0x38, 0x37, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0xb0, 0xc1, 0x62, 0xda, 0x99, 0x41, 0x32, 0x70, 0xfc, 0x1d, 0x92, 0x73, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x9a, 0x6f, 0x49, 0x39, 0x18, 0xb2, 0xe7, 0xc7, 0xa1, 0xe3, 0xd0, 0xc1, 0xa8, 0xc2, 0x5e, 0x10, 0x2c, 0x08, 0x36, 0x58, 0x4c, 0x3b, 0x33, 0x48, 0x06, 0xd2, 0x77, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0xc1, 0xc2, 0x19, 0xa3, 0x43, 0x62, 0xf3, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xb8, 0x41, 0x59, 0xf2, 0xbe, 0xe1, 0x14, 0xdb, 0x38, 0x74, 0xb8, 0xba, 0x8e, 0x43, 0x87, 0x53, 0xec, 0x78, 0xbc, 0x82, 0x60, 0x83, 0x85, 0x26, 0x46, 0x8b, 0xc3, 0x6e, 0xb0, 0x3c, 0xcd, 0x7f, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x20, 0xd8, 0x60, 0x31, 0xed, 0xcc, 0x20, 0x19, 0xcc, 0x0e, 0xed, 0x5b, 0x8e, 0xc7, 0xc3, 0x6e, 0xb0, 0x9e, 0xc9, 0x7f, 0x83, 0x86, 0xc2, 0x98, 0x86, 0xdd, 0x60, 0xc1, 0x7d, 0xff, 0x82, 0x60, 0x41, 0x32, 0x60, 0xe9, 0x7b, 0xdf, 0x41, 0x90, 0xf3, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x58, 0x08, 0x0c, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x21, 0x00, 0x39, 0x48, 0x06, 0xc2, 0x75, 0xd0, 0x14, 0x85, 0xd2, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x23, 0xff, 0x61, 0x71, 0x10, 0x2c, 0x48, 0x36, 0x18, 0x24, 0x2f, 0x07, 0xe3, 0x5d, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x43, 0xce, 0x7a, 0x90, 0x0c, 0x84, 0xeb, 0xd0, 0x18, 0xec, 0x60, 0x11, 0x4e, 0xd1, 0x71, 0xe8, 0x78, 0x7c, 0x1c, 0x3a, 0x0e, 0x0d, 0xb2, 0x0d, 0xcd, 0xd7, 0x0f, 0x31, 0x3c, 0x1e, 0x0f, 0x82, 0xc5, 0x0d, 0xce, 0x45, 0x07, 0x07, 0xcb, 0x3c, 0xfb, 0x17, 0x07, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0xc1, 0x62, 0xda, 0x99, 0x41, 0x32, 0xf0, 0xf5, 0xdf, 0xa1, 0x31, 0xd8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xd6, 0x6e, 0xf8, 0x8d, 0xe7, 0x07, 0x2d, 0xb7, 0xa6, 0x1c, 0x87, 0x86, 0xdd, 0x60, 0x74, 0xac, 0x6f, 0xb0, 0x00, 0xd6, 0xe7, 0x70, 0xb4, 0x1f, 0x8f, 0x87, 0x5f, 0x10, 0x6c, 0xb0, 0x9a, 0xe3, 0x68, 0x71, 0x90, 0xad, 0x21, 0x8f, 0xbd, 0x38, 0x08, 0x16, 0x24, 0x03, 0xe9, 0x9f, 0xc3, 0x0a, 0xed, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x10, 0x9e, 0xc3, 0x0a, 0xed, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x8b, 0x1b, 0xea, 0xf8, 0x86, 0x97, 0xef, 0x26, 0xf0, 0xe7, 0xca, 0xd8, 0xd8, 0xe1, 0x37, 0x9e, 0x8f, 0x07, 0xcd, 0x92, 0x32, 0x1d, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0x94, 0x9f, 0x43, 0x72, 0x69, 0x90, 0x0c, 0xfe, 0x1d, 0x92, 0x73, 0x87, 0x0e, 0x1a, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0xb8, 0x41, 0xb3, 0xa4, 0x4c, 0x87, 0xd4, 0xd2, 0xf1, 0x78, 0x41, 0xb0, 0xc1, 0x42, 0x13, 0xa3, 0x83, 0xb1, 0x6b, 0xb5, 0x20, 0xd8, 0xa0, 0x3d, 0x0b, 0x80, 0xc5, 0x41, 0xb0, 0x20, 0xd8, 0x60, 0x31, 0xed, 0xcc, 0x20, 0x19, 0x9c, 0x3b, 0x24, 0xe7, 0x0e, 0x46, 0x15, 0xf6, 0xf1, 0x78, 0x41, 0x32, 0x50, 0x7c, 0x8e, 0xc7, 0x2b, 0x08, 0x36, 0x58, 0xcd, 0x71, 0x74, 0x30, 0x76, 0xad, 0x56, 0x10, 0x6c, 0xd0, 0xee, 0x2a, 0xc0, 0xe2, 0xb0, 0x0b, 0xbb, 0xc1, 0xe8, 0xc5, 0x5a, 0xb8, 0x0d, 0x96, 0x2b, 0x4d, 0x1d, 0x1a, 0x09, 0x1e, 0x8e, 0xf6, 0x05, 0xc9, 0x90, 0x41, 0xb4, 0x20, 0x1d, 0x04, 0x1b, 0x2c, 0xa6, 0x9d, 0x19, 0x24, 0x83, 0xd9, 0xa1, 0xaf, 0xc6, 0xf1, 0x78, 0xd8, 0x85, 0xdd, 0x60, 0xf4, 0x62, 0x2d, 0xdc, 0x06, 0x4b, 0x53, 0xa6, 0x0e, 0x8d, 0x04, 0x0f, 0x47, 0xfb, 0x06, 0x4d, 0x1a, 0x33, 0x0d, 0xbb, 0xb0, 0x1b, 0x8c, 0x5e, 0xac, 0x85, 0xdb, 0x60, 0x4d, 0xb7, 0xd4, 0xa1, 0x91, 0xe0, 0xe1, 0x68, 0x5f, 0x10, 0x2c, 0x0e, 0xbb, 0x70, 0x1b, 0x62, 0x78, 0xb0, 0xc2, 0x27, 0x6b, 0xc3, 0xd1, 0x3e, 0xec, 0x82, 0x60, 0x41, 0xb0, 0xc1, 0x10, 0x9a, 0x1c, 0x24, 0x03, 0x59, 0xbf, 0x41, 0xb4, 0xb0, 0x13, 0xf4, 0x7e, 0x3f, 0x0e, 0x1d, 0x36, 0x6a, 0x37, 0xc4, 0x70, 0xd8, 0x05, 0xc9, 0x90, 0x41, 0xb4, 0x40, 0xfd, 0x9e, 0x20, 0xfd, 0x7d, 0x3c, 0xde, 0x10, 0xc3, 0x61, 0x17, 0x24, 0x43, 0x06, 0xd1, 0x02, 0xf5, 0x7b, 0x82, 0xfc, 0xf7, 0xf1, 0xf8, 0x90, 0xce, 0x3d, 0xbe, 0x0d, 0xb2, 0x0d, 0xcd, 0xd7, 0x0f, 0x47, 0xfb, 0xf1, 0x78, 0x41, 0xb0, 0xb8, 0xc1, 0x9a, 0x8e, 0xa3, 0x83, 0x35, 0x1d, 0x47, 0x8b, 0x6b, 0xb0, 0x70, 0xc6, 0xe8, 0x60, 0xf4, 0x74, 0x1d, 0x0c, 0xcc, 0xae, 0xe3, 0xf1, 0x20, 0xd8, 0xa0, 0xfd, 0x75, 0xa6, 0xc5, 0x41, 0xb0, 0x06, 0x6d, 0xba, 0x33, 0x1d, 0xb4, 0x93, 0xc5, 0x34, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x05, 0xc9, 0x40, 0x58, 0x0e, 0x2b, 0xb4, 0x83, 0x64, 0x40, 0xd8, 0xfd, 0x1d, 0x0c, 0x6e, 0x87, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x8b, 0xcc, 0xf5, 0x0f, 0xe3, 0x72, 0x1c, 0xda, 0x20, 0xa4, 0xc0, 0x07, 0xc1, 0x82, 0x64, 0xe0, 0xf8, 0x3a, 0x08, 0x72, 0xfe, 0x83, 0x83, 0xe9, 0xef, 0xf1, 0x78, 0x41, 0x32, 0x20, 0xec, 0x7d, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x1a, 0xe4, 0x72, 0x59, 0x1c, 0x04, 0x0b, 0x82, 0xc5, 0x41, 0xb0, 0x20, 0xd8, 0xa0, 0xe9, 0x7b, 0xa6, 0x41, 0x32, 0x70, 0xfc, 0x1d, 0xac, 0xed, 0xe4, 0x3f, 0x68, 0x8d, 0x25, 0xe5, 0x78, 0x3c, 0x08, 0x16, 0x87, 0x5d, 0xb8, 0x0d, 0x47, 0xfb, 0x21, 0xfe, 0x6b, 0x88, 0xe1, 0xc2, 0x6f, 0x48, 0x1d, 0x1c, 0xdf, 0x0e, 0x0d, 0xbf, 0x86, 0xdd, 0xa0, 0xb5, 0xdf, 0x91, 0x0d, 0x31, 0x1c, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xef, 0x83, 0x60, 0x41, 0xb0, 0x41, 0x8b, 0xa6, 0x2c, 0x87, 0xec, 0xc5, 0xb0, 0x1b, 0x94, 0x3c, 0x48, 0x1b, 0x14, 0xb9, 0x0a, 0x83, 0x6c, 0x83, 0x45, 0x9d, 0x41, 0x07, 0xa5, 0xcc, 0xce, 0x20, 0x5a, 0x50, 0x3e, 0x08, 0x16, 0x24, 0x83, 0xbe, 0x83, 0x61, 0xe8, 0x73, 0xc8, 0x5e, 0x1c, 0x8f, 0x8f, 0x6f, 0xc7, 0xe3, 0x15, 0x04, 0x8b, 0x6b, 0xe8, 0x57, 0xbb, 0xa1, 0x9b, 0xec, 0x1a, 0x2c, 0xf9, 0x38, 0xda, 0x60, 0x4d, 0xc7, 0xd1, 0x06, 0x49, 0x0e, 0xcc, 0x07, 0xab, 0x56, 0x49, 0x0e, 0xc6, 0xad, 0xd9, 0x41, 0x78, 0xaa, 0x2e, 0x0e, 0x82, 0x05, 0xc1, 0x82, 0x60, 0x83, 0xc5, 0xb4, 0x33, 0x83, 0x64, 0x40, 0xd8, 0xfd, 0x0d, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xf0, 0x0b, 0xbf, 0x21, 0x9a, 0xc7, 0xb7, 0xe3, 0xd0, 0x71, 0xe8, 0x60, 0xcd, 0xb8, 0xfe, 0xe2, 0x21, 0x10, 0xc7, 0xe3, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x0c, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xbb, 0x61, 0x7d, 0x6f, 0x41, 0x32, 0x60, 0xb8, 0xf6, 0x1d, 0x04, 0xbc, 0xff, 0x20, 0x5b, 0x83, 0xb6, 0x40, 0x56, 0x36, 0xa4, 0x6a, 0x0e, 0xd1, 0x3c, 0x28, 0x54, 0xce, 0x8e, 0xc7, 0x83, 0x60, 0x83, 0xd5, 0x1c, 0x47, 0x8b, 0x83, 0x60, 0x83, 0x64, 0xe8, 0x87, 0x41, 0x32, 0xdc, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x40, 0x7d, 0x39, 0x24, 0x97, 0x0e, 0x8d, 0x5a, 0x8e, 0x43, 0xc7, 0xe3, 0x83, 0x56, 0x7b, 0x99, 0x16, 0x04, 0x8b, 0x0b, 0x82, 0xc5, 0xc0, 0xcf, 0x0b, 0x93, 0x73, 0x17, 0x07, 0xc1, 0xc2, 0x6e, 0xe8, 0x38, 0xb2, 0xb0, 0x0b, 0xb7, 0x18, 0xf8, 0x6d, 0x61, 0x74, 0xef, 0x21, 0x9a, 0x2b, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0x41, 0x7b, 0x52, 0x4d, 0x1b, 0xb4, 0x27, 0xd5, 0x74, 0x38, 0xc5, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x92, 0x0d, 0xd6, 0x5c, 0x20, 0x1d, 0xb2, 0x15, 0x87, 0x0e, 0x1a, 0xc3, 0x6e, 0xb0, 0x8e, 0x5b, 0x6a, 0x0d, 0x96, 0x80, 0x4b, 0x2d, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x6c, 0xb0, 0x9c, 0x2a, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0xc1, 0x22, 0xb1, 0xa0, 0x83, 0xa5, 0x7b, 0x53, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xd0, 0xa1, 0x29, 0xd0, 0x20, 0xd8, 0x60, 0x65, 0x6d, 0xd4, 0xa1, 0x05, 0xd8, 0xb0, 0x1b, 0x2c, 0x9e, 0x97, 0x5a, 0x83, 0x75, 0xf7, 0x52, 0x0b, 0x82, 0x0d, 0x5a, 0xca, 0x6a, 0x3a, 0x34, 0x05, 0x3a, 0x68, 0x7f, 0xad, 0x69, 0xd8, 0x85, 0x5b, 0x3c, 0x08, 0x46, 0x93, 0x43, 0x34, 0x57, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0xe6, 0xe9, 0x9a, 0x36, 0x68, 0x9e, 0xae, 0xe9, 0x70, 0x8a, 0x1d, 0xb4, 0x0c, 0xd7, 0x34, 0xec, 0xc2, 0x2d, 0x06, 0x3e, 0x5c, 0x59, 0x98, 0x7c, 0x88, 0xe6, 0x0a, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xd0, 0x2a, 0x5f, 0xd3, 0x06, 0xad, 0xf2, 0x35, 0x1d, 0x4e, 0xb1, 0x0d, 0xda, 0x86, 0x6b, 0x1a, 0x04, 0x1b, 0x2c, 0x12, 0x0b, 0x3a, 0x38, 0x66, 0xf7, 0x0e, 0xbb, 0xc1, 0xb2, 0x32, 0xab, 0x35, 0x58, 0x9a, 0x66, 0x35, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x6c, 0xb0, 0x9c, 0x2a, 0xe8, 0xe0, 0xb0, 0xd1, 0x7b, 0xe8, 0xa0, 0x31, 0xec, 0xc2, 0x2d, 0x06, 0x3e, 0x1c, 0xdb, 0x1b, 0x7d, 0x88, 0xe6, 0x0a, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xd0, 0xaa, 0x63, 0xd3, 0x06, 0xad, 0x3a, 0x36, 0x1d, 0x4e, 0xb1, 0x83, 0x56, 0x12, 0x9b, 0x86, 0x5d, 0xb8, 0xc5, 0xc0, 0x9f, 0xa3, 0x7b, 0x83, 0x0f, 0xd1, 0x5c, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x9a, 0xb6, 0x6c, 0xda, 0xa0, 0x69, 0xcb, 0xa6, 0xc3, 0x29, 0x36, 0x08, 0x36, 0x58, 0x24, 0x16, 0x74, 0xb0, 0x1e, 0x5d, 0x6b, 0xd8, 0x85, 0x5b, 0x3c, 0x08, 0xad, 0xb6, 0x43, 0x34, 0x57, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0xe6, 0x40, 0x9b, 0x36, 0x68, 0x0e, 0xb4, 0xe9, 0x70, 0x8a, 0x1d, 0xb4, 0x0c, 0xd7, 0x34, 0xec, 0xc2, 0x2d, 0x1e, 0x04, 0x07, 0xc2, 0x21, 0x9a, 0x2b, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0x41, 0x2b, 0xa8, 0x4d, 0x1b, 0xb4, 0x82, 0xda, 0x74, 0x38, 0xc5, 0x0e, 0x5a, 0x86, 0x6b, 0xda, 0x60, 0x95, 0x42, 0xd5, 0x82, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc9, 0x06, 0xcb, 0xd6, 0xab, 0x0e, 0xd9, 0x8a, 0x43, 0x53, 0xa0, 0x83, 0xf6, 0xd7, 0x9a, 0x86, 0xdd, 0x60, 0x71, 0x89, 0xd1, 0x06, 0x2b, 0x53, 0x8c, 0x86, 0x5d, 0xb8, 0xc5, 0x83, 0x83, 0xe9, 0xe7, 0x21, 0x75, 0xb0, 0xb0, 0x0b, 0xb7, 0x21, 0x75, 0x70, 0xd0, 0x44, 0x6e, 0xd3, 0x06, 0x4d, 0xe4, 0x36, 0x1d, 0x4e, 0xb1, 0x61, 0x17, 0x6e, 0xf1, 0xe0, 0xe4, 0x83, 0x7a, 0x48, 0x1d, 0x2c, 0xec, 0xc2, 0x6d, 0x48, 0x1d, 0x1c, 0x34, 0x00, 0xdc, 0xb4, 0x41, 0x03, 0xc0, 0x4d, 0x87, 0x53, 0x6c, 0xd8, 0x85, 0xdb, 0x60, 0x7d, 0x83, 0xd1, 0x21, 0x75, 0xb0, 0xc1, 0xfa, 0x2c, 0xa3, 0x61, 0x17, 0x6e, 0xf1, 0xe0, 0xb4, 0x85, 0x7a, 0x48, 0x1d, 0x2c, 0xec, 0xc2, 0x6d, 0x48, 0x1d, 0x1c, 0x34, 0xa8, 0xdc, 0xb4, 0x41, 0x83, 0xca, 0x4d, 0x87, 0x53, 0x6c, 0xd8, 0x85, 0x5b, 0x0c, 0xfc, 0xbb, 0xb7, 0x37, 0xf6, 0x90, 0x3a, 0x58, 0xd8, 0x85, 0xdb, 0x90, 0x3a, 0x38, 0x68, 0x2e, 0xba, 0x69, 0x83, 0xe6, 0xa2, 0x9b, 0x0e, 0xa7, 0xd8, 0xb0, 0x0b, 0xb7, 0x21, 0x75, 0x70, 0xd0, 0x94, 0x53, 0xd3, 0x06, 0x4d, 0x39, 0x35, 0x1d, 0x4e, 0xb1, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x20, 0x58, 0x9c, 0x83, 0x06, 0x9d, 0x9a, 0x16, 0x07, 0xc1, 0x0a, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0x92, 0x81, 0x36, 0x7d, 0x87, 0x6c, 0xc5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0x82, 0x0d, 0x16, 0x89, 0x05, 0x1d, 0x2c, 0x4c, 0xfe, 0x39, 0x34, 0x7f, 0x39, 0x1e, 0x1f, 0x9c, 0x4d, 0x7a, 0x8f, 0x43, 0x87, 0x34, 0xdc, 0xc1, 0x52, 0xda, 0xa8, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x20, 0xd8, 0x60, 0xa1, 0x89, 0xd1, 0xe2, 0x82, 0x60, 0x83, 0xe6, 0xbb, 0x9b, 0x16, 0x07, 0xc1, 0xc2, 0x2e, 0xec, 0x06, 0xa3, 0x17, 0x6b, 0xe1, 0x36, 0x68, 0xda, 0xb2, 0xe9, 0xd0, 0x48, 0xf0, 0x70, 0xb4, 0x2f, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x05, 0xc9, 0xc0, 0x5e, 0xdf, 0xc1, 0x30, 0xf4, 0x19, 0x24, 0x03, 0xc5, 0xef, 0x90, 0x9c, 0x3b, 0xb4, 0x00, 0x1b, 0x76, 0x83, 0x51, 0x2f, 0xb9, 0x21, 0x5f, 0x3b, 0x08, 0x16, 0x37, 0x68, 0x9b, 0xaf, 0xe9, 0x60, 0xd8, 0xed, 0x0e, 0xbb, 0xb0, 0x0b, 0xbb, 0xc1, 0xe8, 0xc5, 0x5a, 0xb8, 0x0d, 0x96, 0x98, 0x59, 0x1d, 0x1a, 0x09, 0x1e, 0x8e, 0xf6, 0x85, 0x5d, 0xd8, 0x0d, 0x12, 0xbb, 0x7e, 0x16, 0x76, 0x83, 0x01, 0xd9, 0xbb, 0x70, 0x1b, 0x62, 0x78, 0x70, 0x56, 0x3f, 0x3f, 0x1c, 0xed, 0x87, 0xa3, 0x7d, 0x61, 0x17, 0x76, 0xe1, 0x36, 0x0e, 0x1d, 0x3a, 0xa9, 0x6d, 0x88, 0xe1, 0xb0, 0x0b, 0xb7, 0x71, 0xe8, 0xd0, 0x84, 0xeb, 0x90, 0xce, 0x3d, 0xa4, 0x73, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0x5f, 0x10, 0x2c, 0xec, 0x06, 0x0d, 0x3f, 0x38, 0x6d, 0x68, 0xc2, 0x75, 0xe8, 0xa4, 0x36, 0xec, 0xc2, 0x2e, 0xec, 0x06, 0xa3, 0x63, 0x7d, 0x61, 0x17, 0x6e, 0x83, 0x56, 0x1d, 0x9b, 0x0e, 0x42, 0x0a, 0x7c, 0x61, 0x37, 0x58, 0x33, 0x94, 0xb2, 0xb0, 0x0b, 0xbb, 0xd0, 0x83, 0x20, 0x8b, 0x5f, 0xb8, 0x0d, 0x16, 0xd2, 0x4b, 0x4d, 0x18, 0x1d, 0x8e, 0xf6, 0x85, 0xdd, 0x60, 0xc1, 0x17, 0xd7, 0xc2, 0x2e, 0xec, 0x06, 0x0b, 0xc6, 0xb8, 0x16, 0x76, 0xe1, 0x36, 0x58, 0x48, 0x2f, 0x35, 0xa1, 0x6c, 0x61, 0x17, 0x3a, 0xa1, 0x6d, 0x61, 0x17, 0x3a, 0xe1, 0xdb, 0xc2, 0x6d, 0xd0, 0xb4, 0x65, 0xd3, 0x04, 0x61, 0x3b, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0x85, 0x3b, 0x58, 0xad, 0xc7, 0x75, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x2f, 0xec, 0xc2, 0x6d, 0x10, 0x3c, 0xdc, 0x13, 0xc4, 0x6d, 0x61, 0x17, 0x6e, 0xc3, 0xd1, 0x3e, 0x08, 0x36, 0x58, 0x5d, 0x18, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x28, 0x16, 0x1d, 0x7a, 0xec, 0x1c, 0x87, 0x16, 0x76, 0xe1, 0x36, 0x1c, 0xed, 0x83, 0x60, 0x83, 0xd5, 0x85, 0x11, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0x62, 0xd1, 0xa1, 0xef, 0xce, 0x71, 0xe8, 0x90, 0xce, 0x3d, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0xaf, 0x41, 0xf3, 0x74, 0x4d, 0x0b, 0x82, 0x05, 0xc9, 0x40, 0x98, 0x0e, 0x4e, 0x42, 0xc7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0x62, 0xd1, 0x86, 0x1e, 0x3b, 0x87, 0xbe, 0x3b, 0xc7, 0xa1, 0x09, 0x5d, 0xc3, 0x2e, 0xec, 0xc2, 0x6e, 0x30, 0x3a, 0xd6, 0x17, 0x76, 0x83, 0x46, 0x39, 0x9c, 0x16, 0x76, 0x83, 0x35, 0x43, 0x29, 0x0b, 0xbb, 0x41, 0xdb, 0x20, 0x4e, 0x0b, 0xbb, 0xc1, 0x82, 0x2f, 0xae, 0x85, 0xdd, 0xa0, 0x75, 0x13, 0xa7, 0x85, 0xdd, 0x60, 0xe9, 0x19, 0xd7, 0xc2, 0x2e, 0xec, 0x42, 0x0f, 0xd6, 0xee, 0x20, 0x2c, 0xec, 0xc2, 0x6d, 0xb0, 0x90, 0x5e, 0x6a, 0xc2, 0xb9, 0x85, 0x5d, 0xe8, 0x84, 0x77, 0x0b, 0xbb, 0xd0, 0x09, 0x62, 0xb7, 0x70, 0x1b, 0x34, 0x6d, 0xd9, 0x34, 0xc1, 0xd8, 0x1d, 0x8e, 0xf6, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0x06, 0xeb, 0xca, 0x7a, 0x0e, 0x47, 0xfb, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x17, 0x76, 0x83, 0x96, 0x6f, 0x9c, 0x16, 0x76, 0xe1, 0x36, 0x08, 0x1e, 0xee, 0x09, 0xe6, 0x6e, 0x61, 0x37, 0x68, 0x44, 0xc7, 0x69, 0x61, 0x37, 0x68, 0x18, 0xc8, 0x69, 0x61, 0x17, 0x6e, 0xc3, 0xd1, 0x3e, 0x08, 0x36, 0x58, 0x5d, 0x18, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x28, 0x16, 0x4d, 0x30, 0xba, 0xc7, 0xa1, 0x43, 0x3a, 0xf7, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0x1a, 0x34, 0x07, 0xda, 0xb4, 0x20, 0xd8, 0xa0, 0xa9, 0x25, 0xa7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x43, 0xb1, 0x68, 0x43, 0x8f, 0x9d, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x9a, 0x5a, 0x72, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x14, 0x8b, 0x36, 0xf4, 0xdd, 0x39, 0x68, 0x7b, 0xcf, 0xe9, 0x38, 0x74, 0x1c, 0x3a, 0x68, 0x38, 0xca, 0xe9, 0x90, 0x98, 0x39, 0xac, 0xfd, 0x0e, 0xbb, 0xb0, 0x0b, 0xbb, 0xc1, 0xe8, 0xc5, 0x5a, 0xd8, 0x0d, 0x9a, 0x2d, 0x70, 0x5a, 0xd8, 0x0d, 0x12, 0xbb, 0x7e, 0x16, 0x76, 0x61, 0x37, 0x18, 0x11, 0xbd, 0x0b, 0xbb, 0x70, 0x1b, 0xb4, 0xca, 0xd7, 0x34, 0xe1, 0xec, 0xc2, 0x2e, 0x74, 0xc2, 0xdb, 0x85, 0x5d, 0xb8, 0x0d, 0x86, 0xd4, 0xef, 0xa1, 0xef, 0xce, 0xc2, 0x6d, 0x88, 0xe1, 0x04, 0xb1, 0x3d, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0x85, 0xdd, 0x60, 0x40, 0xf6, 0x2e, 0xec, 0xc2, 0x6e, 0x50, 0xdc, 0x0d, 0x2e, 0xec, 0xc2, 0x6d, 0xd0, 0xaa, 0x63, 0xd3, 0xc1, 0x80, 0x47, 0x5e, 0xd8, 0x0d, 0x06, 0x5a, 0xf2, 0xc2, 0x2e, 0xec, 0x42, 0x0f, 0xda, 0xde, 0x73, 0x5a, 0xd8, 0x85, 0xdb, 0xa0, 0x55, 0xbe, 0xa6, 0x09, 0x8a, 0xee, 0xc2, 0x2e, 0x74, 0x82, 0xaa, 0xbb, 0xb0, 0x0b, 0xb7, 0xc1, 0x90, 0xfa, 0x9d, 0xe0, 0xd4, 0x5d, 0xb8, 0x0d, 0x31, 0x9c, 0xe0, 0xd6, 0x3d, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0x85, 0x5d, 0xe8, 0x04, 0xb3, 0xbb, 0xb0, 0x0b, 0xbb, 0xd0, 0x09, 0xca, 0xee, 0xc2, 0x6d, 0xb0, 0x90, 0x5e, 0x6a, 0x82, 0x63, 0xf7, 0x70, 0xb4, 0x2f, 0xdc, 0x86, 0x18, 0x4e, 0x50, 0x77, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0x83, 0x56, 0x17, 0x9c, 0x0e, 0x47, 0xfb, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x2f, 0xec, 0xc2, 0x6d, 0x38, 0xda, 0x07, 0xc1, 0x06, 0x07, 0xd6, 0xed, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x43, 0xb1, 0x68, 0x82, 0xd5, 0xee, 0xe3, 0xd0, 0x21, 0x9d, 0x7b, 0x38, 0xda, 0xd7, 0xa0, 0x15, 0xd4, 0xa6, 0xe1, 0x37, 0x68, 0x20, 0xd7, 0x69, 0x43, 0xea, 0xe0, 0x90, 0x5c, 0x3a, 0x8c, 0xcb, 0xb0, 0x0b, 0xbb, 0xc1, 0xe8, 0x58, 0x5f, 0xd8, 0x85, 0xdb, 0xa0, 0x79, 0xba, 0xa6, 0x83, 0x90, 0x02, 0x5f, 0xd8, 0x0d, 0xd6, 0x0c, 0xa5, 0x2c, 0xec, 0x06, 0x0b, 0xbe, 0xb8, 0x16, 0x76, 0xe1, 0x36, 0x68, 0x4f, 0xaa, 0xe9, 0x20, 0x70, 0xe3, 0x17, 0x6e, 0x83, 0xe2, 0x35, 0xf2, 0x20, 0x0c, 0xe4, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x6f, 0xd0, 0x44, 0x6e, 0xd3, 0xb0, 0x0b, 0xbb, 0xc1, 0xe8, 0x58, 0x5f, 0xd8, 0x0d, 0x9a, 0xaa, 0x76, 0x5a, 0xd8, 0x0d, 0xd6, 0x0c, 0xa5, 0x2c, 0xec, 0x06, 0x0b, 0xbe, 0xb8, 0x16, 0x76, 0x83, 0x06, 0xb6, 0x9d, 0x16, 0x6e, 0x83, 0x12, 0x28, 0xf2, 0x20, 0x0c, 0xe4, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x6f, 0xd0, 0xa0, 0x72, 0xd3, 0xb0, 0x0b, 0xbb, 0xc1, 0xe8, 0x58, 0x5f, 0xd8, 0x0d, 0x9a, 0xaa, 0x76, 0x5a, 0xd8, 0x0d, 0xd6, 0x0c, 0xa5, 0x2c, 0xec, 0x06, 0x0b, 0xbe, 0xb8, 0x16, 0x76, 0x83, 0x06, 0xb6, 0x9d, 0x16, 0x6e, 0x31, 0x78, 0x3a, 0xe2, 0x20, 0x0c, 0xe4, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x6f, 0xd0, 0x94, 0x53, 0xd3, 0xb0, 0x0b, 0xbb, 0xc1, 0xe8, 0x58, 0x5f, 0xd8, 0x0d, 0x9a, 0xaa, 0x76, 0x5a, 0xd8, 0x0d, 0xd6, 0x0c, 0xa5, 0x2c, 0xdc, 0x06, 0x4d, 0x39, 0x35, 0x1d, 0x0c, 0xd6, 0xd8, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0x06, 0xcd, 0x45, 0x37, 0x0d, 0xb2, 0x0d, 0xcd, 0xd7, 0x8f, 0x43, 0xc7, 0xe3, 0x15, 0x04, 0x1b, 0x34, 0xdf, 0xdd, 0xb4, 0x38, 0x08, 0x36, 0xc4, 0x70, 0x10, 0x2c, 0x2e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0xd8, 0x0d, 0xeb, 0x7b, 0x1b, 0x8c, 0x52, 0xce, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x56, 0xe1, 0xf7, 0x0c, 0xbf, 0xc1, 0xb0, 0x0d, 0x18, 0x7e, 0x83, 0xc1, 0x0e, 0x30, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc9, 0x70, 0x83, 0x68, 0x41, 0xfb, 0x21, 0x6b, 0x77, 0x58, 0xa1, 0x1d, 0x7e, 0x41, 0xb4, 0xe0, 0xfe, 0x41, 0x08, 0x80, 0x1f, 0x8f, 0x87, 0xdf, 0x60, 0xb0, 0x03, 0x6c, 0x30, 0xc4, 0x3b, 0x0f, 0xc6, 0x9b, 0xce, 0xf1, 0x78, 0xd8, 0x0d, 0x5a, 0xf5, 0x10, 0x58, 0x71, 0x43, 0x06, 0x7c, 0x50, 0xd5, 0x21, 0x75, 0x30, 0xec, 0xc2, 0x6d, 0xd0, 0x44, 0x6e, 0xd3, 0x61, 0xed, 0x77, 0xc5, 0x0d, 0x19, 0xf0, 0x83, 0x15, 0x8d, 0x5c, 0x87, 0xd4, 0xc1, 0xb0, 0x0b, 0xb7, 0x41, 0x03, 0xc0, 0x4d, 0x87, 0xb5, 0xdf, 0x15, 0x37, 0x64, 0xc0, 0x07, 0x1d, 0x07, 0x07, 0x9a, 0xbe, 0x43, 0xea, 0x60, 0xd8, 0x0d, 0x1a, 0x0f, 0x11, 0x58, 0x71, 0x43, 0x06, 0x7c, 0xd0, 0x31, 0x68, 0xe8, 0x90, 0x3a, 0x18, 0x76, 0xe1, 0x36, 0x68, 0x2e, 0xba, 0xe9, 0xb0, 0xf6, 0xbb, 0xe2, 0x86, 0x0c, 0xf8, 0xa0, 0x6a, 0x50, 0x31, 0xa8, 0xe8, 0x90, 0x3a, 0x18, 0x76, 0xe1, 0x36, 0x68, 0x50, 0xb9, 0xe9, 0xb0, 0xf6, 0xbb, 0xe2, 0x86, 0x0c, 0xf8, 0xa0, 0x6a, 0xd0, 0x73, 0x90, 0x0a, 0x11, 0x7d, 0x48, 0x1d, 0x0c, 0xbb, 0x70, 0x1b, 0x34, 0xe5, 0xd4, 0x74, 0x58, 0xfb, 0x5d, 0x71, 0x43, 0x06, 0xfc, 0xa0, 0x99, 0x9d, 0xa7, 0x43, 0xea, 0x60, 0xd8, 0x85, 0xdd, 0x60, 0xad, 0x90, 0xd8, 0xc2, 0x6d, 0xd0, 0x9e, 0x54, 0xd3, 0xa1, 0x05, 0xd0, 0xe1, 0x68, 0x5f, 0x0d, 0xb9, 0xef, 0x0d, 0xd2, 0xa1, 0x3c, 0x06, 0xc1, 0x82, 0x64, 0x20, 0xbd, 0x73, 0x30, 0x0c, 0x7d, 0x0e, 0x5a, 0xd0, 0x15, 0x38, 0xa4, 0x0e, 0x86, 0xdd, 0xa0, 0xe1, 0x17, 0x81, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0x19, 0xee, 0xa0, 0x59, 0x1f, 0x81, 0xe1, 0x17, 0x44, 0x1b, 0x24, 0x75, 0x75, 0x1f, 0x8f, 0x87, 0xdf, 0x60, 0xb0, 0x03, 0xac, 0x41, 0xb9, 0x0f, 0xb8, 0xb8, 0xc1, 0x6a, 0x00, 0x92, 0x05, 0xe5, 0x1d, 0x2c, 0x5e, 0x00, 0x1a, 0x04, 0x8b, 0xc3, 0x2e, 0xdc, 0x86, 0x18, 0x1e, 0x24, 0xcb, 0x97, 0x6c, 0x50, 0x2c, 0x92, 0xad, 0x21, 0xf7, 0x3d, 0x08, 0x36, 0x48, 0x91, 0xf7, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x14, 0x8b, 0x0e, 0x0a, 0xd6, 0x95, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x28, 0xfb, 0x13, 0x5c, 0xfb, 0xc7, 0xe3, 0xe3, 0xdb, 0x21, 0x55, 0x33, 0xec, 0x06, 0xed, 0xe5, 0x08, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x41, 0x23, 0x56, 0x4f, 0xc3, 0x6f, 0xd0, 0x48, 0xd6, 0xd3, 0xf0, 0x1b, 0x0c, 0x76, 0x80, 0x35, 0x28, 0xa4, 0xfe, 0x16, 0x17, 0xb4, 0x77, 0x10, 0x00, 0xf7, 0x6b, 0xc8, 0x7d, 0x0f, 0x82, 0x0d, 0x56, 0x30, 0x44, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x0f, 0x92, 0xe5, 0x4b, 0x8e, 0x43, 0x07, 0xe7, 0x42, 0xec, 0x43, 0xaa, 0x66, 0xd8, 0x85, 0xdd, 0x60, 0xad, 0x90, 0xd8, 0xc2, 0x6d, 0xd0, 0x3c, 0x5d, 0xd3, 0xa1, 0x05, 0xd0, 0xe1, 0x68, 0x5f, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x46, 0xac, 0x9e, 0x86, 0xdf, 0xa0, 0x91, 0xac, 0xa7, 0xe1, 0x37, 0x18, 0xec, 0x00, 0x6b, 0x50, 0xee, 0x03, 0xae, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xe2, 0x78, 0xb0, 0x1a, 0x80, 0xe4, 0xf8, 0xb6, 0x20, 0xd8, 0x60, 0x4d, 0x3b, 0xc4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x1f, 0xb4, 0x8d, 0xf7, 0x34, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0xc5, 0x71, 0x50, 0xd4, 0xf1, 0xed, 0x38, 0x34, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x38, 0x0e, 0x9a, 0x3a, 0xbe, 0x1d, 0x9c, 0x0b, 0xb1, 0x0f, 0xa9, 0x9a, 0x61, 0x17, 0x76, 0x83, 0xb5, 0x42, 0x62, 0x0b, 0xb7, 0xc1, 0x12, 0x33, 0xab, 0x43, 0x0b, 0xa0, 0xc3, 0xd1, 0xbe, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0x94, 0x0c, 0x4d, 0x07, 0x2d, 0xe8, 0x0a, 0x0c, 0xbf, 0x41, 0x23, 0x59, 0x4f, 0xc3, 0x6f, 0x30, 0xd8, 0x01, 0xd6, 0xa0, 0xdc, 0x07, 0x5c, 0xdc, 0x60, 0x35, 0x00, 0xc9, 0x82, 0xfe, 0x83, 0x66, 0x29, 0x9f, 0x0e, 0xda, 0xbe, 0x7c, 0x3a, 0x0e, 0x1d, 0x52, 0x35, 0xc3, 0x2e, 0xec, 0x06, 0x6b, 0x85, 0xc4, 0x16, 0x6e, 0x83, 0x56, 0x1d, 0x9b, 0x0e, 0x2d, 0x80, 0x0e, 0x47, 0xfb, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0xb4, 0x08, 0xfa, 0x34, 0xfc, 0x06, 0x8d, 0x64, 0x3d, 0x0d, 0xbf, 0xc1, 0x60, 0x07, 0x58, 0x83, 0x72, 0x1f, 0x70, 0x83, 0x75, 0x4d, 0x5e, 0xc7, 0xa1, 0x43, 0xaa, 0x66, 0xd8, 0x85, 0xdd, 0x60, 0xad, 0x90, 0xd8, 0xc2, 0x6d, 0xd0, 0x2a, 0x5f, 0xd3, 0xa1, 0x05, 0xd0, 0xe1, 0x68, 0x5f, 0x0d, 0xb9, 0xef, 0x0d, 0x12, 0xfd, 0xa0, 0x07, 0xc1, 0x06, 0xcb, 0x3c, 0x20, 0x06, 0xc9, 0x20, 0x1b, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x0d, 0x31, 0x3c, 0x68, 0x61, 0xdc, 0xe5, 0x38, 0x74, 0x48, 0x1d, 0x0c, 0xbb, 0xb0, 0x1b, 0xac, 0x15, 0x12, 0x5b, 0xb8, 0x0d, 0x9a, 0xb6, 0x6c, 0x3a, 0xb4, 0x00, 0x3a, 0x1c, 0xed, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0xcb, 0x3c, 0x20, 0x06, 0xc9, 0x20, 0x1b, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x0d, 0x31, 0xdc, 0xa0, 0x20, 0x4d, 0x3c, 0x34, 0xfc, 0x3a, 0x0e, 0x0d, 0xbb, 0x20, 0xd8, 0x60, 0xdd, 0xf0, 0xff, 0xc1, 0xca, 0xe8, 0xfe, 0xd5, 0x90, 0xfb, 0xde, 0x60, 0x61, 0x3d, 0xce, 0x71, 0xe8, 0x90, 0xaa, 0x19, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x64, 0xb8, 0x41, 0xb4, 0xa0, 0x7d, 0x10, 0x2c, 0x08, 0x36, 0x68, 0x12, 0x60, 0x60, 0x90, 0x0c, 0x54, 0xaf, 0x83, 0x90, 0xc3, 0x3f, 0x58, 0x19, 0xdd, 0x3f, 0x88, 0x16, 0x76, 0x10, 0x6c, 0xb0, 0xaa, 0xfa, 0xff, 0x60, 0x65, 0x74, 0xff, 0xf1, 0x7c, 0xf8, 0x0d, 0x06, 0x26, 0xc0, 0xf0, 0x1b, 0x0c, 0x76, 0x80, 0x35, 0x28, 0xa4, 0xfe, 0x16, 0x37, 0x58, 0x4f, 0xf0, 0x75, 0x10, 0x00, 0xf7, 0x6b, 0xc8, 0x7d, 0x6f, 0xb0, 0x32, 0x1c, 0x67, 0x83, 0x85, 0xf5, 0x38, 0x87, 0xd4, 0xc1, 0xc1, 0xb9, 0x10, 0xfb, 0xb0, 0x57, 0x38, 0xec, 0xc2, 0x6e, 0xb0, 0x56, 0x48, 0x6c, 0xe1, 0x36, 0x68, 0x0e, 0xb4, 0xe9, 0xd0, 0x02, 0xe8, 0x70, 0xb4, 0x6f, 0xd0, 0xec, 0xe0, 0xd3, 0xb0, 0x0b, 0xbb, 0xc1, 0x5a, 0x21, 0xb1, 0x85, 0xdb, 0xa0, 0x15, 0xd4, 0xa6, 0x43, 0x0b, 0xa0, 0xc3, 0xd1, 0xbe, 0x41, 0xb3, 0x83, 0x4f, 0x83, 0x6c, 0x0d, 0xed, 0xd7, 0x87, 0xdd, 0x60, 0xad, 0x90, 0xd8, 0x06, 0x6d, 0xd2, 0x01, 0x1d, 0x8e, 0xf6, 0x85, 0xdd, 0xa0, 0xcd, 0xdc, 0x97, 0x05, 0xc1, 0x82, 0x64, 0x20, 0x4c, 0x07, 0xc3, 0x51, 0x7a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x50, 0x2c, 0xda, 0x60, 0xf5, 0x3c, 0xce, 0x41, 0x91, 0xab, 0x70, 0x1c, 0x1a, 0x04, 0x0b, 0x92, 0x81, 0x20, 0x1d, 0x0c, 0x47, 0xe9, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x43, 0xb1, 0x68, 0x83, 0xd5, 0xf3, 0x38, 0x1b, 0x14, 0x9d, 0x30, 0x1b, 0xac, 0x80, 0x3c, 0x59, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x50, 0xee, 0x0e, 0x86, 0xa1, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0xa0, 0xe1, 0x5a, 0x92, 0xe3, 0xd0, 0xc1, 0xc0, 0x0f, 0x39, 0x0e, 0x1d, 0x52, 0x07, 0xc3, 0x6f, 0x50, 0x0e, 0x25, 0x1d, 0x87, 0x8e, 0xc7, 0x83, 0x60, 0x43, 0x0c, 0x07, 0xc1, 0x86, 0xc4, 0xd4, 0xf0, 0x0b, 0x82, 0xc5, 0x41, 0xb0, 0xb0, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0x2d, 0x89, 0xce, 0x0c, 0x92, 0x81, 0xe5, 0xba, 0x83, 0x41, 0x06, 0x39, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xf0, 0x0b, 0x82, 0x05, 0xc9, 0x40, 0x78, 0x0e, 0x02, 0xde, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x71, 0x83, 0xb6, 0xa5, 0x37, 0x0e, 0xd3, 0x79, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x36, 0x68, 0x53, 0xb8, 0x69, 0xd8, 0x85, 0xdb, 0x60, 0xa1, 0x89, 0xd1, 0x41, 0x60, 0x62, 0x6f, 0x90, 0x08, 0xd7, 0x30, 0xec, 0x06, 0x8d, 0xba, 0x95, 0x6c, 0x90, 0x08, 0xd7, 0x30, 0xec, 0xc2, 0x6e, 0xd0, 0x3e, 0xa0, 0xc8, 0xc2, 0x6d, 0xb0, 0xf0, 0xc2, 0xe8, 0x90, 0xec, 0x38, 0x1c, 0xed, 0x6b, 0x48, 0x1d, 0x0c, 0xbb, 0x41, 0x6b, 0x85, 0x22, 0x6b, 0xd0, 0x9e, 0x54, 0xd3, 0x41, 0xc8, 0x67, 0x6f, 0xd0, 0x2a, 0x5f, 0xd3, 0x06, 0x21, 0x9f, 0x7d, 0x50, 0xca, 0xec, 0x0c, 0xbb, 0xb0, 0x1b, 0xb4, 0x0f, 0x28, 0xb2, 0x70, 0x1b, 0x2c, 0x9c, 0x31, 0x3a, 0x24, 0x3b, 0x0e, 0x47, 0xfb, 0x82, 0x60, 0x83, 0x50, 0xcc, 0x1e, 0x04, 0x0b, 0x92, 0x21, 0x83, 0x68, 0x83, 0x56, 0x9f, 0x62, 0x06, 0xd1, 0x06, 0x8d, 0x3f, 0x95, 0x1c, 0xcf, 0x37, 0x08, 0x29, 0xf0, 0x0d, 0x5a, 0x75, 0x6c, 0x1a, 0x76, 0x61, 0x37, 0x58, 0x33, 0x94, 0xb2, 0x70, 0x1b, 0xb4, 0xea, 0xd8, 0x74, 0x10, 0x64, 0xf1, 0x87, 0xa3, 0x7d, 0x0d, 0xe3, 0x72, 0x30, 0x58, 0x63, 0x37, 0x8c, 0xcb, 0x06, 0x21, 0x00, 0x7e, 0x88, 0xe1, 0xb0, 0x0b, 0xbb, 0x41, 0xfb, 0x80, 0x22, 0x0b, 0xb7, 0xc1, 0x9a, 0x6e, 0xa9, 0x43, 0xb2, 0xe3, 0x70, 0xb4, 0x2f, 0x08, 0x36, 0x08, 0xc5, 0xec, 0x0d, 0x42, 0x0a, 0x7c, 0x10, 0x2c, 0xec, 0xc2, 0x6e, 0xb0, 0x66, 0x28, 0x65, 0xe1, 0x36, 0x58, 0xd3, 0x2d, 0x75, 0x10, 0x64, 0xf1, 0x87, 0xa3, 0x7d, 0x0d, 0x02, 0x37, 0xfe, 0x20, 0x0c, 0xe4, 0x0f, 0xc2, 0xcd, 0x7d, 0x83, 0x35, 0xdd, 0x52, 0x2b, 0x08, 0x36, 0x68, 0x6a, 0xc9, 0x69, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x50, 0x2c, 0x5a, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x43, 0x9d, 0xf9, 0x20, 0x19, 0x44, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0x21, 0x86, 0x1b, 0x14, 0xa4, 0x89, 0x83, 0x60, 0x41, 0xb0, 0x41, 0x93, 0x00, 0x03, 0x83, 0x64, 0xa0, 0xfe, 0x0d, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x10, 0x6c, 0xd0, 0x24, 0xc0, 0xc0, 0x20, 0x19, 0x28, 0x7f, 0x83, 0x68, 0x61, 0x27, 0xe8, 0xef, 0x7f, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0x0d, 0xda, 0xb0, 0x15, 0x18, 0x24, 0x83, 0x5b, 0x87, 0xbe, 0x1a, 0xc7, 0xe3, 0xe3, 0xd0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x41, 0x2d, 0xb6, 0x38, 0x08, 0x16, 0x24, 0x83, 0x92, 0x83, 0xd3, 0x19, 0xf2, 0xc1, 0x7a, 0x8f, 0x9d, 0xe3, 0xf1, 0x71, 0xe8, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x53, 0x4b, 0x4e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0x62, 0xd1, 0xc2, 0x6f, 0x3c, 0x1f, 0x76, 0xe1, 0x36, 0x58, 0x8a, 0x9c, 0x75, 0xd0, 0xf4, 0xd1, 0xc8, 0x06, 0x69, 0x2f, 0xd5, 0xc3, 0x2e, 0xdc, 0x06, 0x8b, 0xab, 0xb3, 0x0e, 0x9a, 0x3e, 0x1a, 0xd9, 0x20, 0xad, 0x3a, 0x7a, 0xd8, 0x85, 0xdb, 0x60, 0x0d, 0x79, 0xd6, 0x41, 0xd3, 0x47, 0x23, 0x1b, 0x24, 0xff, 0x3c, 0x0f, 0xb2, 0x35, 0xb4, 0x5f, 0x1f, 0x6e, 0x83, 0x45, 0xc3, 0x59, 0x07, 0x4d, 0x1f, 0x8d, 0x1c, 0x24, 0x39, 0x47, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x08, 0x16, 0x24, 0x03, 0x9d, 0xfb, 0x0e, 0x4e, 0x42, 0xc7, 0x83, 0x64, 0xc8, 0x41, 0x8b, 0x7a, 0x50, 0x83, 0x60, 0x41, 0x32, 0x20, 0xfc, 0x9d, 0x0e, 0x8e, 0x59, 0xc5, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0x62, 0xd1, 0xf0, 0x1b, 0xcf, 0xd7, 0x70, 0xb4, 0x0f, 0x82, 0x0d, 0x4e, 0x7c, 0xc6, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x52, 0xcb, 0xa2, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0xd1, 0x39, 0x38, 0x7b, 0x19, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xa4, 0x0e, 0x0e, 0xd2, 0xc4, 0x9e, 0x8f, 0x43, 0xc7, 0xa1, 0x35, 0x1c, 0xed, 0x83, 0x60, 0x83, 0x13, 0x9f, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xd4, 0xb2, 0xe8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x1a, 0xad, 0x85, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x38, 0x57, 0x0e, 0xce, 0x5e, 0xc6, 0x07, 0x6d, 0xde, 0x42, 0x1d, 0xa4, 0x89, 0x3d, 0x1f, 0x87, 0x8e, 0x43, 0x6b, 0x38, 0xda, 0x07, 0xc1, 0x06, 0x27, 0x3e, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xa9, 0x65, 0xd1, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x34, 0x5a, 0x0b, 0x35, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x76, 0x8b, 0xa1, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x52, 0x07, 0xc3, 0x6f, 0x3c, 0x1f, 0x83, 0x22, 0x75, 0x1c, 0x3a, 0x48, 0x13, 0x7b, 0x3e, 0x0e, 0x1d, 0x87, 0x0e, 0x31, 0x3c, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0x07, 0x21, 0x05, 0x7e, 0x10, 0x02, 0xe0, 0xc3, 0x2e, 0xec, 0x06, 0xed, 0x03, 0x8a, 0x2c, 0xdc, 0x06, 0x4b, 0x53, 0xa6, 0x0e, 0xc9, 0x8e, 0xc3, 0xd1, 0xbe, 0x20, 0xd8, 0x20, 0x50, 0xf2, 0x87, 0x5d, 0xb8, 0x0d, 0xd6, 0x87, 0x60, 0x4d, 0x70, 0xea, 0xaf, 0x41, 0x48, 0x81, 0x6f, 0xb0, 0xe0, 0xa0, 0x6a, 0x83, 0x92, 0xbf, 0xe0, 0x20, 0x04, 0xc0, 0x8f, 0x43, 0xc3, 0x2e, 0xec, 0x06, 0xed, 0x03, 0x8a, 0x2c, 0xdc, 0x06, 0x0b, 0xe9, 0xa5, 0x0e, 0xc9, 0x8e, 0xc3, 0xd1, 0xbe, 0x20, 0xd8, 0x20, 0x50, 0xf2, 0x87, 0x5d, 0xd8, 0x85, 0x1e, 0x8c, 0xb1, 0xa7, 0xc3, 0xfa, 0xe6, 0x1a, 0x84, 0x14, 0xf8, 0x06, 0x0b, 0xe9, 0xa5, 0x36, 0x18, 0x63, 0x4f, 0x07, 0x21, 0x00, 0x7e, 0x1c, 0x1a, 0x76, 0x61, 0x37, 0x68, 0x1f, 0x50, 0x64, 0xe1, 0x36, 0x58, 0xca, 0x30, 0x75, 0x48, 0x76, 0x1c, 0x8e, 0xf6, 0x05, 0xc1, 0x82, 0x60, 0x41, 0x32, 0xe0, 0xf9, 0xef, 0x7d, 0x07, 0xc3, 0x3f, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x8d, 0xba, 0xc7, 0x0c, 0x92, 0x81, 0xd0, 0x1d, 0xb4, 0xa9, 0x1f, 0x32, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x28, 0x3b, 0x18, 0xfe, 0xb1, 0xc7, 0xa1, 0x41, 0xb0, 0x20, 0x58, 0x1c, 0x76, 0xc3, 0xfa, 0xde, 0x06, 0x4b, 0x7c, 0xff, 0x07, 0xc1, 0x06, 0x85, 0xca, 0xd9, 0x20, 0x58, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xea, 0x0f, 0x59, 0xbb, 0x41, 0xb4, 0x41, 0xe3, 0x4f, 0x25, 0x87, 0x15, 0xda, 0x0d, 0x42, 0x0a, 0x7c, 0x83, 0x10, 0x00, 0x3f, 0x8c, 0xcb, 0xf1, 0x6d, 0x83, 0x90, 0x02, 0xdf, 0x60, 0x89, 0x99, 0xd5, 0x41, 0x08, 0x80, 0x0f, 0xb2, 0x35, 0xb4, 0x5f, 0x1f, 0x76, 0x83, 0xf6, 0x01, 0x45, 0x16, 0x6e, 0x83, 0xe5, 0x4a, 0x53, 0x87, 0x64, 0xc7, 0xe1, 0x68, 0x1f, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0x83, 0x7b, 0xfa, 0xa0, 0x31, 0xfe, 0xa6, 0x83, 0x91, 0xb0, 0x3a, 0xec, 0x06, 0xad, 0xf3, 0x01, 0x2c, 0xec, 0x82, 0x60, 0x41, 0xb0, 0xc1, 0x2a, 0xbb, 0xff, 0x83, 0x16, 0x37, 0x59, 0x0e, 0x46, 0x5b, 0xeb, 0x82, 0x60, 0x61, 0x06, 0xc1, 0x82, 0x64, 0x60, 0xaf, 0xef, 0x60, 0x38, 0x4a, 0x1f, 0xb4, 0x76, 0x30, 0xb0, 0x82, 0x60, 0x41, 0xb0, 0x41, 0x93, 0x00, 0x03, 0x83, 0x64, 0x60, 0xa8, 0x0e, 0x39, 0x8d, 0x83, 0x71, 0x45, 0x7d, 0x58, 0xfb, 0xdd, 0xa0, 0x69, 0xcb, 0xa6, 0xe3, 0xd0, 0x20, 0x58, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xea, 0x07, 0xc1, 0x06, 0x4d, 0xb1, 0xeb, 0x0c, 0x92, 0xc1, 0xec, 0x60, 0x8c, 0x4e, 0x0e, 0xa2, 0x05, 0xf1, 0x20, 0x58, 0x10, 0x6c, 0xb0, 0xca, 0xee, 0x7f, 0x90, 0x0c, 0x4e, 0x1d, 0x8c, 0x1a, 0xa3, 0x83, 0xd1, 0xd6, 0x7a, 0x3c, 0x1f, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0x4d, 0x02, 0x0c, 0x0c, 0x92, 0x81, 0xe2, 0x37, 0x88, 0x16, 0xf6, 0x60, 0xfc, 0x74, 0x1d, 0x87, 0x0e, 0xd6, 0xba, 0x96, 0x0c, 0xbb, 0xc1, 0xa8, 0x97, 0xdc, 0x90, 0x3a, 0x58, 0x83, 0xf1, 0xd3, 0x35, 0x08, 0x16, 0x04, 0x1b, 0xb4, 0x54, 0x30, 0x30, 0x48, 0x06, 0x86, 0xea, 0x60, 0xf8, 0x97, 0x1d, 0xb4, 0x35, 0x12, 0xb3, 0x41, 0xd3, 0x96, 0x4d, 0x07, 0x21, 0x00, 0xbe, 0x21, 0x55, 0x73, 0xd0, 0xfa, 0x53, 0xd4, 0x06, 0x21, 0x05, 0x3e, 0x08, 0x36, 0x38, 0x07, 0x7c, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x9a, 0x5d, 0x87, 0x71, 0x39, 0x0e, 0x1d, 0xdf, 0x36, 0x08, 0x01, 0xf0, 0xe3, 0xf9, 0x82, 0x60, 0x83, 0x91, 0xff, 0xb0, 0x38, 0x08, 0x16, 0x04, 0x1b, 0xb4, 0x41, 0xd3, 0x72, 0x68, 0x01, 0xb6, 0xa1, 0x87, 0xd0, 0x20, 0x58, 0x1c, 0x76, 0x43, 0x22, 0x60, 0x83, 0x46, 0x19, 0x93, 0x86, 0x5d, 0xd8, 0x85, 0xdb, 0xd0, 0x02, 0xe8, 0x60, 0x4c, 0x58, 0x6d, 0x88, 0xe1, 0xb0, 0x0b, 0xb7, 0x41, 0x72, 0x07, 0xf3, 0xc1, 0x98, 0xb0, 0xda, 0x10, 0xc3, 0x61, 0x17, 0x04, 0x1b, 0xb4, 0x40, 0x40, 0x72, 0x50, 0x44, 0x9d, 0x1c, 0xd2, 0xb9, 0x6b, 0x90, 0xdc, 0xc1, 0x7c, 0x30, 0x22, 0xac, 0x86, 0x5d, 0x10, 0x2c, 0x48, 0x06, 0x82, 0x72, 0x70, 0x12, 0x3a, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x90, 0x1a, 0x76, 0x72, 0x50, 0xc2, 0x48, 0x1c, 0x87, 0x36, 0x18, 0x11, 0x56, 0x1b, 0x24, 0x77, 0x30, 0x2f, 0x08, 0x16, 0x24, 0x03, 0xe3, 0x77, 0x30, 0x0c, 0x7d, 0x06, 0xc9, 0x30, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x48, 0xa6, 0xac, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x68, 0x3c, 0x7f, 0x50, 0xc2, 0x48, 0x1c, 0x87, 0x8e, 0x43, 0x0b, 0x82, 0x0d, 0x1a, 0xc9, 0x8b, 0x1a, 0x24, 0xc3, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0xf4, 0x75, 0x3a, 0x18, 0x8e, 0xd2, 0x07, 0x8d, 0xfb, 0x45, 0x1d, 0x87, 0x0e, 0x46, 0x89, 0xd5, 0xf1, 0xed, 0x78, 0xbc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x68, 0xc5, 0x0d, 0x34, 0xff, 0x8a, 0x1f, 0x04, 0x8b, 0x1b, 0x34, 0xe2, 0xdd, 0xd4, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x68, 0x85, 0xed, 0x41, 0xdb, 0x90, 0x51, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xa1, 0x15, 0x77, 0xd0, 0x36, 0x64, 0xd4, 0x20, 0x5b, 0x43, 0x1e, 0x7b, 0x71, 0x10, 0x2c, 0x48, 0x06, 0xd2, 0x3f, 0x07, 0x01, 0xef, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0x09, 0x14, 0xa8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x17, 0x37, 0x4c, 0xdc, 0x1a, 0xea, 0xf8, 0x86, 0x97, 0xef, 0x26, 0xe0, 0x23, 0x4b, 0x9b, 0x43, 0x6b, 0x41, 0x37, 0x58, 0xd0, 0x30, 0xb5, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0xe6, 0x5b, 0x38, 0x56, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0x33, 0xdd, 0x11, 0xab, 0xa1, 0x98, 0xae, 0x86, 0x19, 0x5a, 0xc3, 0xc4, 0x6d, 0x98, 0xce, 0x0d, 0x33, 0xb4, 0x86, 0x19, 0xda, 0x60, 0x45, 0xa0, 0xfe, 0x86, 0x13, 0x61, 0x83, 0x15, 0x81, 0xfa, 0x1b, 0x2c, 0x66, 0x83, 0x5a, 0x00, 0x7c, 0x18, 0x7b, 0x6b, 0x83, 0x4b, 0x63, 0x2b, 0x93, 0x6b, 0x11, 0x0b, 0x1b, 0x5b, 0x2b, 0x73, 0x23, 0x6b, 0x09, 0x73, 0x23, 0x6b, 0x81, 0x93, 0x2b, 0xa3, 0xa3, 0xcb, 0x83, 0x93, 0x4b, 0x73, 0xa3, 0x2b, 0x93, 0x97, 0x01, 0xf0, 0xa5, 0x66, 0x4c, 0x07, 0x64, 0xec, 0xad, 0x0d, 0x2e, 0x8d, 0xad, 0x4c, 0x0e, 0x44, 0x2c, 0x6c, 0x6c, 0xad, 0xcc, 0x8d, 0x0c, 0x24, 0xcc, 0x8d, 0x0c, 0x04, 0x4e, 0xae, 0x8c, 0x8e, 0x2e, 0x0f, 0x4e, 0x2e, 0xcd, 0x8d, 0xae, 0x4c, 0x6e, 0x01, 0x7f, 0x0e, 0xae, 0x8c, 0xdc, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x68, 0xe2, 0x39, 0xaa, 0x01, 0xfc, 0xe5, 0xca, 0xc6, 0xde, 0xdc, 0xe6, 0xe8, 0xe4, 0xea, 0xc6, 0xe8, 0x40, 0xe8, 0xf2, 0xe0, 0xca, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xbb, 0x30, 0x7c, 0xc3, 0xbf, 0xf3, 0x6b, 0xb0, 0x52, 0xc3, 0xb9, 0x36, 0xfc, 0x45, 0xb3, 0x41, 0xb3, 0xdb, 0x51, 0x1b, 0x2c, 0xa9, 0x4e, 0x5a, 0xc3, 0xdb, 0x3a, 0x83, 0xc7, 0x1b, 0x34, 0xaa, 0x1d, 0xd5, 0x06, 0x05, 0xc1, 0xec, 0x06, 0x2d, 0x87, 0x47, 0xad, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x4b, 0xde, 0xd7, 0xa0, 0x19, 0x36, 0x94, 0xd6, 0xf0, 0xb6, 0xce, 0xc0, 0xd7, 0xd1, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0x83, 0x96, 0xc4, 0xa3, 0x5a, 0xc3, 0x2f, 0x2e, 0x1b, 0x34, 0xa9, 0x79, 0x71, 0xb0, 0xba, 0x51, 0xbb, 0x0d, 0x0a, 0x82, 0xd9, 0x35, 0x0e, 0x1d, 0xb4, 0x1c, 0x1e, 0xb5, 0x86, 0xcf, 0x5d, 0x06, 0x3c, 0xba, 0x3c, 0x78, 0x83, 0x13, 0xfb, 0xcd, 0x1a, 0x94, 0x25, 0xef, 0x6b, 0xd0, 0xc2, 0xa2, 0x4a, 0x07, 0x4d, 0xa3, 0x47, 0x6d, 0xf8, 0xc5, 0x65, 0x83, 0xf6, 0x67, 0x1d, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xad, 0x2f, 0x3d, 0xac, 0xe1, 0x17, 0x97, 0x0d, 0x4f, 0xdc, 0x6d, 0xb0, 0x2e, 0xbb, 0x6e, 0x0d, 0x97, 0xd4, 0x06, 0x4d, 0xc5, 0x47, 0xd5, 0x1a, 0x1c, 0x5d, 0x07, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0xab, 0xc0, 0x64, 0x0f, 0x82, 0x95, 0xb5, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x49, 0x69, 0xc1, 0x07, 0x05, 0xf1, 0x78, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x49, 0xf3, 0xa8, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x2b, 0x92, 0x15, 0x1b, 0x2c, 0xb1, 0xdf, 0xde, 0x60, 0x89, 0xfd, 0x76, 0xad, 0x80, 0x3f, 0xc7, 0x16, 0x06, 0x6f, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0x6d, 0xd0, 0x6e, 0x76, 0xd4, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xce, 0xca, 0xdc, 0x83, 0x05, 0x16, 0xce, 0x6d, 0xf8, 0x8b, 0x66, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xb4, 0xeb, 0xdc, 0xe8, 0xf2, 0xe0, 0xca, 0xc8, 0x40, 0xec, 0xc2, 0xe6, 0xca, 0x40, 0x5c, 0x54, 0x07, 0xcd, 0x6e, 0x47, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x67, 0x75, 0xee, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x2c, 0x79, 0x5f, 0x83, 0x56, 0x6a, 0x62, 0x3a, 0x68, 0x1a, 0x3d, 0x6a, 0x83, 0x25, 0xf6, 0xdb, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xe6, 0x29, 0xa4, 0x6a, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0x78, 0x83, 0xd6, 0x41, 0xa4, 0x5a, 0x83, 0x05, 0x21, 0x4b, 0x1b, 0x34, 0x0f, 0x1e, 0xb5, 0xe1, 0x6d, 0x9d, 0xc1, 0xe3, 0x83, 0x66, 0x57, 0xa4, 0x5a, 0x01, 0x5f, 0xee, 0x2d, 0x8c, 0xdc, 0xa0, 0x50, 0xee, 0x5c, 0xc3, 0x9f, 0x4b, 0x1b, 0x04, 0x23, 0xda, 0x06, 0xa1, 0x5f, 0xb2, 0xc1, 0x59, 0x48, 0xe1, 0xe0, 0x10, 0xd3, 0xb1, 0xe1, 0xeb, 0x97, 0x35, 0x3c, 0x28, 0xb9, 0x41, 0x00, 0xb2, 0x1d, 0x9c, 0x85, 0x14, 0x36, 0x28, 0x48, 0x63, 0x37, 0x38, 0x66, 0x78, 0xae, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0x92, 0x94, 0xa0, 0x0e, 0x4e, 0x42, 0x0a, 0x1b, 0x04, 0xe9, 0xe9, 0x06, 0x6b, 0x83, 0x47, 0xd7, 0x20, 0x60, 0x83, 0x36, 0xbc, 0xad, 0x33, 0x38, 0x7c, 0x70, 0x06, 0xf3, 0x5c, 0x83, 0x30, 0x02, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0x90, 0xc7, 0x6e, 0x83, 0x26, 0x8b, 0xa4, 0xea, 0x70, 0x8a, 0x2d, 0xf0, 0x75, 0xf4, 0x06, 0x65, 0x97, 0xec, 0xc0, 0xd7, 0xd1, 0x1b, 0x14, 0x83, 0xb2, 0x2b, 0xf0, 0x61, 0xf2, 0x86, 0xb7, 0x75, 0x06, 0x3e, 0x4c, 0x6e, 0x0d, 0x92, 0x7c, 0x37, 0x0f, 0xd2, 0xb4, 0x3a, 0xd7, 0xe0, 0x00, 0x80, 0xb5, 0xe1, 0x6d, 0x9d, 0x0d, 0x0e, 0x00, 0x58, 0xad, 0x41, 0x13, 0xd9, 0x4b, 0x1b, 0xde, 0xd6, 0xd9, 0xa0, 0x89, 0xec, 0xa5, 0xd6, 0xa0, 0x81, 0xed, 0xa5, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0xc0, 0xf6, 0x52, 0x6b, 0xd0, 0x84, 0xf7, 0xd2, 0x86, 0xb7, 0x75, 0x36, 0x68, 0xc2, 0x7b, 0xa9, 0x35, 0x58, 0xc5, 0xee, 0xbf, 0xe1, 0x6d, 0x9d, 0x0d, 0x56, 0xb1, 0xfb, 0xb7, 0x06, 0x4d, 0xb2, 0x91, 0x6c, 0x78, 0x5b, 0x67, 0x83, 0x26, 0xd9, 0x48, 0x5a, 0x83, 0x86, 0x95, 0x48, 0x36, 0xbc, 0xad, 0xb3, 0x41, 0xc3, 0x4a, 0x24, 0xad, 0x41, 0x03, 0xe7, 0x4b, 0x1b, 0xde, 0xd6, 0xd9, 0xa0, 0x81, 0xf3, 0xa5, 0xd6, 0xa0, 0x01, 0xf5, 0xa5, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0x80, 0xfa, 0x52, 0x6b, 0xd0, 0x42, 0xfb, 0xd2, 0x86, 0xb7, 0x75, 0x36, 0x68, 0xa1, 0x7d, 0xa9, 0x35, 0x68, 0x25, 0xaa, 0x65, 0xc3, 0xdb, 0x3a, 0x1b, 0xb4, 0x12, 0xd5, 0xd2, 0x1a, 0x34, 0xf8, 0x22, 0xb3, 0xe1, 0x6d, 0x9d, 0x0d, 0x1a, 0x7c, 0x91, 0x69, 0x0d, 0x9a, 0xc8, 0x72, 0xd9, 0xf0, 0xb6, 0xce, 0x06, 0x4d, 0x64, 0xb9, 0xb4, 0x06, 0xed, 0xe1, 0x2f, 0x6d, 0x78, 0x5b, 0x67, 0x83, 0xf6, 0xf0, 0x97, 0x5a, 0x83, 0xf6, 0xf6, 0x97, 0x36, 0xbc, 0xad, 0xb3, 0x41, 0x7b, 0xfb, 0x4b, 0xad, 0x41, 0x3b, 0xf9, 0x31, 0x1b, 0xde, 0xd6, 0xd9, 0xa0, 0x9d, 0xfc, 0x98, 0xd6, 0xa0, 0x79, 0x00, 0xa6, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0x3c, 0x00, 0x53, 0x6b, 0xd0, 0x88, 0x40, 0xca, 0x86, 0xb7, 0x75, 0x36, 0x68, 0x44, 0x20, 0xa5, 0x35, 0x68, 0x90, 0x6a, 0x69, 0xc3, 0xdb, 0x3a, 0x1b, 0x34, 0x48, 0xb5, 0xd4, 0x1a, 0xb4, 0x34, 0xaa, 0xb2, 0xe1, 0x6d, 0x9d, 0x0d, 0x5a, 0x1a, 0x55, 0x69, 0x0d, 0x4a, 0x4d, 0xcb, 0x0d, 0x6f, 0xeb, 0x6c, 0x50, 0x6a, 0x5a, 0xb6, 0x06, 0xcd, 0xb0, 0xa1, 0x6c, 0x78, 0x5b, 0xe7, 0xa0, 0xd1, 0xf3, 0xa8, 0x35, 0x68, 0xbe, 0x58, 0x65, 0xc3, 0xdb, 0x3a, 0x1b, 0x34, 0x5f, 0xac, 0xd2, 0x1a, 0x2c, 0xf6, 0xf7, 0xd9, 0xf0, 0xb6, 0xce, 0x06, 0x8b, 0xfd, 0x7d, 0x5a, 0x83, 0x26, 0x2f, 0x98, 0x36, 0xbc, 0xad, 0xb3, 0x41, 0x93, 0x17, 0x4c, 0xad, 0x41, 0x0b, 0x1a, 0x4c, 0x1b, 0xde, 0xd6, 0xd9, 0xa0, 0x05, 0x0d, 0xa6, 0xd6, 0xa0, 0x95, 0x9a, 0x98, 0x0d, 0x6f, 0xeb, 0x1c, 0x34, 0x3f, 0x22, 0xb5, 0x06, 0xcd, 0x7f, 0x30, 0x6d, 0x78, 0x5b, 0x67, 0x83, 0xe6, 0x3f, 0x98, 0x5a, 0x83, 0x16, 0x10, 0x50, 0x36, 0xbc, 0xad, 0xb3, 0x41, 0x0b, 0x08, 0x28, 0xad, 0x41, 0x83, 0x85, 0x02, 0x1b, 0xde, 0xd6, 0xd9, 0xa0, 0xc1, 0x42, 0x81, 0xd6, 0xa0, 0x19, 0x14, 0xa6, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0x0c, 0x0a, 0x53, 0x6b, 0xd0, 0xc2, 0xa2, 0xca, 0x86, 0xb7, 0x75, 0x0e, 0xda, 0xb8, 0x8f, 0x5a, 0x83, 0x56, 0x81, 0x5c, 0x36, 0xbc, 0xad, 0xb3, 0x41, 0xab, 0x40, 0x2e, 0xad, 0x41, 0xb3, 0x30, 0x4c, 0x1b, 0xde, 0xd6, 0xd9, 0xa0, 0x59, 0x18, 0xa6, 0xd6, 0xa0, 0xf1, 0xa3, 0x96, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0xf8, 0x51, 0x4b, 0x6b, 0xb0, 0x6a, 0xb0, 0x7f, 0xc3, 0xdb, 0x3a, 0x1b, 0xac, 0x1a, 0xec, 0x6f, 0x0d, 0x5a, 0x62, 0x48, 0xd9, 0xf0, 0xb6, 0xce, 0x06, 0x2d, 0x31, 0xa4, 0xb4, 0x86, 0xf6, 0xeb, 0x1b, 0xde, 0xd6, 0xd9, 0xd0, 0x7e, 0xbd, 0x35, 0x68, 0x73, 0x4c, 0x66, 0xc3, 0xdb, 0x3a, 0x1b, 0xb4, 0x39, 0x26, 0x53, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0x24, 0xdf, 0xcd, 0x0d, 0x0a, 0xc1, 0xd4, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0x12, 0xf1, 0x7d, 0x0d, 0x9f, 0x2b, 0x6d, 0xb0, 0x6c, 0xc6, 0xf9, 0x60, 0x79, 0x85, 0x73, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0x03, 0x00, 0xd6, 0x06, 0x85, 0x60, 0xea, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0x89, 0xf8, 0xbe, 0x86, 0xcf, 0x95, 0x36, 0x58, 0x36, 0xe3, 0x7c, 0xd0, 0x56, 0xb6, 0x54, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0x26, 0xb2, 0x97, 0x36, 0xfc, 0x45, 0xb3, 0xe1, 0x83, 0xd5, 0x83, 0x22, 0xa7, 0xb5, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x01, 0x6f, 0xae, 0x8e, 0xde, 0xf0, 0x17, 0xcd, 0x06, 0xcb, 0x66, 0x9c, 0x0f, 0x96, 0xd8, 0x6f, 0x6f, 0x50, 0xb2, 0xb0, 0xcf, 0x32, 0x6b, 0xd0, 0x3c, 0x00, 0xd3, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0x80, 0x87, 0x16, 0x76, 0x6e, 0x10, 0xfa, 0x25, 0x1b, 0x84, 0x94, 0xc9, 0xc1, 0x62, 0x17, 0xf3, 0x0d, 0x7f, 0xd1, 0x6c, 0xb0, 0x6c, 0xc6, 0x79, 0xc3, 0x07, 0x39, 0x6b, 0x50, 0x4c, 0x62, 0xae, 0xe1, 0x73, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0x98, 0x8e, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0xd6, 0x73, 0x6f, 0x6f, 0x10, 0x82, 0x0f, 0x07, 0x41, 0xa3, 0xda, 0xc1, 0x71, 0xf1, 0x64, 0x83, 0x16, 0xe5, 0xa5, 0x5a, 0xc3, 0xdb, 0x3a, 0x83, 0xc3, 0x83, 0xa7, 0x07, 0xcd, 0x07, 0x4c, 0x6d, 0x70, 0x62, 0xbf, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x2c, 0x68, 0x98, 0x6a, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x12, 0xa9, 0x7a, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0xa2, 0xbc, 0xd4, 0xe1, 0x14, 0xdb, 0xf0, 0x8b, 0xd2, 0x06, 0xcb, 0x5d, 0xcc, 0x37, 0x28, 0x76, 0x34, 0xd7, 0xa0, 0x98, 0xc4, 0x5c, 0xc3, 0xe7, 0x4a, 0x1b, 0xac, 0x46, 0xe2, 0x3e, 0x38, 0xc4, 0x74, 0x1c, 0x1c, 0x3c, 0x32, 0xd6, 0xf0, 0x96, 0xdd, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xdd, 0x39, 0xa9, 0x35, 0xbc, 0x71, 0xb7, 0xe1, 0xe5, 0xbb, 0x83, 0x85, 0x01, 0xfc, 0x6d, 0x78, 0xcb, 0x6e, 0x0d, 0x4f, 0xdc, 0x6d, 0x78, 0x16, 0xef, 0x60, 0x25, 0x04, 0xff, 0x86, 0xb7, 0xec, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0x2e, 0xa9, 0x0d, 0x9a, 0xa4, 0x93, 0x5a, 0x0d, 0x9a, 0x50, 0x97, 0xea, 0xe0, 0x74, 0x91, 0xd1, 0x1a, 0xde, 0xb8, 0xdb, 0xf0, 0xf2, 0xdd, 0xc1, 0xaa, 0x1b, 0xfe, 0x36, 0x38, 0x17, 0x2e, 0xac, 0x21, 0x8f, 0xbd, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0x83, 0x65, 0x41, 0xfc, 0x07, 0xe1, 0xa9, 0xba, 0x41, 0x61, 0xa8, 0xba, 0x41, 0x6b, 0xa7, 0x1c, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x03, 0x1e, 0xd9, 0x1b, 0xbe, 0xe1, 0x17, 0x97, 0x0d, 0x5a, 0xea, 0xe0, 0x58, 0xc3, 0xdb, 0x3a, 0x83, 0xc7, 0x07, 0x4b, 0x2b, 0x47, 0xd7, 0x70, 0x49, 0x6d, 0xb0, 0xb4, 0x72, 0x74, 0x05, 0x97, 0x0f, 0x0e, 0x1e, 0x19, 0x1b, 0xde, 0xb8, 0x3b, 0x58, 0x3b, 0x5a, 0x5e, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x62, 0x12, 0x73, 0x83, 0x55, 0xe2, 0xdb, 0x1b, 0x87, 0x0e, 0x8e, 0x38, 0x19, 0x6b, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0x57, 0xb2, 0x35, 0xbc, 0xcd, 0x7a, 0xd0, 0x82, 0x96, 0xd4, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0x25, 0xb5, 0x41, 0x63, 0xb4, 0x52, 0x6b, 0xd0, 0xc0, 0xc8, 0xd4, 0x41, 0x33, 0x34, 0x53, 0x6d, 0x50, 0xe4, 0xb4, 0xae, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0x83, 0x83, 0x47, 0x46, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0x46, 0xcc, 0x54, 0x07, 0xc9, 0xd1, 0x51, 0x1b, 0x14, 0x7c, 0x98, 0x6b, 0x50, 0x4c, 0x62, 0x6e, 0xb0, 0x9e, 0x7b, 0xfb, 0xa0, 0x85, 0x9f, 0xa9, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0x1a, 0x5c, 0x9a, 0x5a, 0xc3, 0xbb, 0x3d, 0x6b, 0xb8, 0xa4, 0xd6, 0xa0, 0x99, 0x85, 0x96, 0xd6, 0xa0, 0x81, 0x91, 0xa9, 0x83, 0x56, 0x95, 0xa6, 0xda, 0xa0, 0x19, 0x9a, 0xa9, 0x36, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x2b, 0xd9, 0x06, 0x4d, 0x0a, 0x4d, 0xad, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x4b, 0xde, 0x37, 0x38, 0x5a, 0x6b, 0x6c, 0x50, 0x36, 0xbd, 0x6f, 0xd0, 0xba, 0x95, 0x54, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xeb, 0x1c, 0x34, 0x30, 0x32, 0x75, 0xd0, 0x7c, 0xd3, 0x54, 0x6b, 0x78, 0x9b, 0x75, 0xc3, 0xbf, 0x39, 0x1b, 0x9c, 0x50, 0x02, 0x37, 0xbc, 0xdb, 0xb3, 0x86, 0x4b, 0x6a, 0x83, 0x56, 0x62, 0xa5, 0x36, 0x68, 0x5e, 0x64, 0x6a, 0x0d, 0x1a, 0xbe, 0x92, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0x94, 0x2d, 0xa8, 0x07, 0x6d, 0x8f, 0x4d, 0x1d, 0x34, 0x6f, 0x36, 0xd5, 0x06, 0x4b, 0xec, 0xb7, 0x0f, 0x9a, 0x6f, 0x9a, 0x6a, 0xc3, 0x2f, 0x2e, 0x1b, 0x9c, 0x2e, 0x32, 0x0e, 0x92, 0xa3, 0xa3, 0x56, 0x83, 0x55, 0x83, 0xfd, 0x1b, 0x1e, 0x1f, 0xd9, 0x60, 0xd5, 0x60, 0xff, 0x06, 0x07, 0x2c, 0xba, 0x35, 0xfc, 0x45, 0xb3, 0xc1, 0x09, 0x48, 0x74, 0x83, 0x20, 0x3d, 0xdd, 0xa0, 0x81, 0x91, 0xa9, 0x35, 0x58, 0x2f, 0xd2, 0xbc, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0x83, 0x55, 0x0e, 0x46, 0x6b, 0xb0, 0xde, 0x9d, 0x79, 0xc3, 0x8f, 0x30, 0x83, 0xd3, 0x87, 0xe9, 0x5c, 0x0d, 0x9f, 0x2b, 0x6d, 0xb0, 0xe6, 0xa5, 0xf9, 0xe0, 0x10, 0xd3, 0xb1, 0xe1, 0xdd, 0x9e, 0x0d, 0xd6, 0x3a, 0xb6, 0x6d, 0x50, 0x54, 0x8a, 0xaf, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0x83, 0xb5, 0x6f, 0xfc, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0xf8, 0xa0, 0x81, 0x91, 0xa9, 0x0d, 0x16, 0xfb, 0xdc, 0xad, 0x41, 0x09, 0x8f, 0xb9, 0xe0, 0xf1, 0x41, 0x03, 0x23, 0x53, 0x1b, 0xac, 0x5b, 0x87, 0xdb, 0xf0, 0xb6, 0xce, 0xe0, 0xf5, 0x41, 0xfb, 0x97, 0x53, 0x07, 0x65, 0x9d, 0xe7, 0x6a, 0xf8, 0x5c, 0x69, 0x83, 0xf5, 0xfb, 0xcc, 0x07, 0x87, 0x98, 0x8e, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xd6, 0xb1, 0x6d, 0x83, 0xa2, 0x52, 0x7c, 0x0d, 0x3f, 0xc2, 0x0c, 0x4e, 0x1f, 0x2c, 0xa4, 0xe4, 0x5f, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x6b, 0xab, 0x83, 0xdb, 0xa0, 0xad, 0xc9, 0xa9, 0x36, 0x58, 0xec, 0x73, 0xb7, 0x86, 0x77, 0x7b, 0x36, 0x68, 0xeb, 0x74, 0x6a, 0x0d, 0x6f, 0xeb, 0x1c, 0xb4, 0x7f, 0x39, 0xd5, 0x41, 0x59, 0xe7, 0xb9, 0x1a, 0x3e, 0x57, 0xda, 0x60, 0x69, 0x18, 0xf7, 0xc1, 0x21, 0xa6, 0x63, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x75, 0x6c, 0xdb, 0xa0, 0xa8, 0x14, 0x5f, 0xc3, 0x8f, 0x30, 0x83, 0xd3, 0x07, 0x8b, 0x87, 0xf9, 0xd7, 0xa0, 0x20, 0x98, 0xdd, 0xa0, 0x19, 0xca, 0xa9, 0x0d, 0xda, 0x9a, 0x9c, 0x3a, 0x68, 0xce, 0x74, 0xea, 0xa0, 0x49, 0xd5, 0xa9, 0xd5, 0xf0, 0xb9, 0xd2, 0x06, 0x4b, 0xe3, 0xb8, 0x0f, 0x0e, 0x31, 0x1d, 0x1b, 0xde, 0xed, 0xd9, 0x60, 0xad, 0x63, 0xdb, 0x06, 0x45, 0xa5, 0xf8, 0x1a, 0x7e, 0x84, 0x19, 0x9c, 0x3e, 0x58, 0x56, 0xce, 0xbf, 0x41, 0x73, 0xa6, 0x53, 0x07, 0x65, 0x9d, 0xe7, 0x6a, 0xf8, 0x5c, 0x69, 0x83, 0x95, 0x8b, 0xdc, 0x07, 0x87, 0x98, 0x8e, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xd6, 0xb1, 0x6d, 0x83, 0xa2, 0x52, 0x7c, 0x0d, 0x3f, 0xc2, 0x0c, 0x4e, 0x1f, 0xac, 0x24, 0xe8, 0x3f, 0x68, 0xcc, 0x74, 0x6a, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0xaa, 0x55, 0xee, 0x83, 0x43, 0x4c, 0xc7, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xeb, 0xd8, 0xb6, 0x41, 0x51, 0x29, 0xbe, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x0f, 0xd6, 0x77, 0xf4, 0x1f, 0x34, 0x66, 0x3a, 0xb5, 0x06, 0xcd, 0x47, 0x4c, 0x6d, 0x50, 0x74, 0x1a, 0x6f, 0xb0, 0xd6, 0xb1, 0x6d, 0x83, 0xa2, 0x52, 0x7c, 0x83, 0xa3, 0xeb, 0xe0, 0x1a, 0x7e, 0x84, 0x19, 0x9c, 0x3e, 0x58, 0x90, 0xd3, 0xbf, 0x41, 0x73, 0xa6, 0x53, 0x1b, 0x2c, 0xf6, 0xb9, 0x5b, 0x83, 0x12, 0x1e, 0x73, 0xc1, 0xe1, 0xc1, 0xe1, 0x83, 0xf6, 0x2f, 0xa7, 0x36, 0x58, 0xb7, 0x0e, 0xb7, 0xe1, 0x6d, 0x9d, 0xc1, 0xeb, 0x83, 0x06, 0xce, 0xa7, 0x36, 0x58, 0xec, 0x73, 0xb7, 0x86, 0xb7, 0x75, 0x06, 0x8f, 0x0f, 0x1a, 0x3c, 0x9f, 0xda, 0x60, 0xb1, 0xcf, 0xdd, 0x1a, 0xde, 0xd6, 0x19, 0x5c, 0x3e, 0x68, 0xf0, 0x7c, 0x6a, 0x83, 0xc5, 0x3e, 0x77, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xb6, 0x4e, 0xa7, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf1, 0x41, 0xfb, 0x97, 0x53, 0x6d, 0xb0, 0xd8, 0xe7, 0x6e, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xd6, 0xe9, 0xd4, 0x1a, 0xde, 0xd6, 0x19, 0x1c, 0x1e, 0x5c, 0x3e, 0x68, 0xff, 0x72, 0xaa, 0x5a, 0x66, 0x0d, 0x1a, 0x42, 0x9d, 0xda, 0xf0, 0x8b, 0xd2, 0x06, 0x61, 0x3a, 0xb6, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0xe4, 0xa6, 0x6f, 0xb0, 0x7c, 0xed, 0x75, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0xf2, 0xfb, 0x1f, 0x9c, 0xb6, 0xd0, 0x3a, 0x9c, 0x62, 0x87, 0x53, 0x6c, 0x05, 0xfc, 0xb6, 0x34, 0xba, 0x72, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x35, 0xf7, 0xc7, 0x07, 0xcb, 0x66, 0x9c, 0x37, 0xfc, 0x4a, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x71, 0x56, 0x6a, 0x83, 0x02, 0x36, 0x7f, 0x83, 0xe5, 0x19, 0xc8, 0xad, 0xe1, 0xdd, 0x9e, 0x35, 0x5c, 0x52, 0x1b, 0x34, 0x46, 0x2b, 0xb5, 0x06, 0x0d, 0x8c, 0x4c, 0x1d, 0x2c, 0xcf, 0x40, 0x6e, 0x83, 0x22, 0xa7, 0x75, 0x83, 0x06, 0xce, 0xa6, 0x6a, 0x05, 0xfc, 0xb1, 0xb7, 0x37, 0x76, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x70, 0x6f, 0xec, 0xe1, 0x83, 0xd5, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0xa1, 0xe5, 0xc1, 0x07, 0x6b, 0x47, 0x9e, 0x37, 0x68, 0x93, 0x81, 0xaa, 0x0d, 0x7f, 0xd1, 0x6c, 0xb0, 0x6c, 0xc6, 0x79, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xc0, 0x33, 0x4b, 0x23, 0x37, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x28, 0xbf, 0xc2, 0x5a, 0xc3, 0x1b, 0x77, 0x07, 0x8b, 0xf6, 0x9b, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0xed, 0x8b, 0x50, 0xd5, 0x06, 0x41, 0x7a, 0xba, 0xc6, 0xa1, 0x0d, 0x1a, 0x50, 0xa1, 0x6a, 0x0d, 0xc2, 0x08, 0xe8, 0xa0, 0x81, 0xb3, 0xa9, 0x35, 0x08, 0xd8, 0xa0, 0x0d, 0x0f, 0x4a, 0x6e, 0x70, 0x3a, 0x12, 0xd9, 0xa0, 0xe8, 0x34, 0x5e, 0xc3, 0xdb, 0x3a, 0x03, 0x3e, 0x5d, 0xd8, 0x5a, 0xd9, 0x1a, 0xde, 0xd6, 0x19, 0x1c, 0x1e, 0x1c, 0x3e, 0x68, 0x70, 0x86, 0x6a, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0xf0, 0x60, 0xd9, 0x8c, 0xf3, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0xad, 0x80, 0x50, 0xb5, 0x86, 0x77, 0x7b, 0xd6, 0x70, 0x49, 0x6d, 0xd0, 0xe8, 0x79, 0xd4, 0x1a, 0x34, 0x30, 0x32, 0x75, 0x78, 0x5a, 0xa7, 0x83, 0xe6, 0x26, 0xa8, 0x36, 0xbc, 0xdb, 0xb3, 0x86, 0x4b, 0x6a, 0x83, 0xd6, 0xd5, 0xa4, 0x0e, 0xda, 0x47, 0xa2, 0x3a, 0x68, 0x6e, 0x82, 0xaa, 0xc3, 0x29, 0xb6, 0x06, 0x4d, 0x78, 0x2f, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0x67, 0x19, 0x1e, 0x5c, 0x19, 0x1b, 0x48, 0x9d, 0x1b, 0x59, 0xda, 0x59, 0xd9, 0x1c, 0x5d, 0x19, 0x19, 0xc8, 0x5c, 0x59, 0x5b, 0x9a, 0xdb, 0x5b, 0x9d, 0xdb, 0xdc, 0x86, 0xbf, 0x68, 0x36, 0x58, 0x36, 0xe3, 0xbc, 0xc1, 0x72, 0x48, 0xa6, 0xd9, 0xe0, 0x68, 0xc3, 0xb7, 0x06, 0xc5, 0x8e, 0xe6, 0x1a, 0xfe, 0xcd, 0xd9, 0xa0, 0x81, 0xb3, 0xa9, 0xc3, 0x33, 0x93, 0x1b, 0x9e, 0x99, 0x3c, 0x68, 0xe0, 0x6c, 0x6a, 0x83, 0x93, 0x83, 0xdc, 0x06, 0x0d, 0x8c, 0x4c, 0x6d, 0xd0, 0xc0, 0xd9, 0xd4, 0x1a, 0xb4, 0xe1, 0x39, 0xb5, 0xe1, 0x17, 0x97, 0x0d, 0x5a, 0x91, 0xac, 0x58, 0xc3, 0x25, 0xb5, 0x41, 0x53, 0x61, 0x52, 0x6b, 0xd0, 0xc0, 0xc8, 0xd4, 0x41, 0x5b, 0x93, 0x53, 0xad, 0xe1, 0x92, 0xda, 0xa0, 0xa9, 0x30, 0xa9, 0x35, 0x68, 0x60, 0x64, 0xea, 0xa0, 0xe1, 0xd6, 0xa9, 0x5a, 0x83, 0xe6, 0x23, 0xa6, 0x36, 0x38, 0xe7, 0x2f, 0x6d, 0xd0, 0x52, 0x07, 0xc7, 0x06, 0xcd, 0xb0, 0x51, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xeb, 0x1c, 0x34, 0x78, 0x3e, 0xb5, 0x86, 0x4b, 0x6a, 0x83, 0xa6, 0xc2, 0xa4, 0xd6, 0xa0, 0x81, 0x91, 0xa9, 0x83, 0xc6, 0xed, 0xa7, 0x5a, 0x83, 0x25, 0xd5, 0x49, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xf8, 0xa0, 0xf1, 0xfe, 0xa9, 0x0d, 0x1f, 0xe4, 0xac, 0x41, 0x31, 0x89, 0xb9, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xb9, 0xd2, 0x06, 0x6b, 0x75, 0xba, 0x0f, 0x8e, 0x8b, 0x27, 0x07, 0x87, 0x98, 0x8e, 0x83, 0xc6, 0xfa, 0xa7, 0x36, 0x68, 0x91, 0x7f, 0x6a, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xb5, 0x01, 0xde, 0x1b, 0x14, 0x14, 0x99, 0x07, 0x65, 0x99, 0xe7, 0x41, 0x59, 0xe7, 0xd9, 0x1a, 0xb4, 0x0c, 0x3b, 0xb5, 0xe1, 0x17, 0x97, 0x0d, 0x1a, 0x05, 0xe2, 0xd8, 0xa0, 0xad, 0xc9, 0xa9, 0x83, 0xb6, 0xe0, 0xa8, 0xd6, 0xa0, 0x51, 0xdf, 0xa9, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0xb2, 0x17, 0xc7, 0x1a, 0xde, 0xed, 0x59, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0xc4, 0x8d, 0xda, 0x0d, 0xca, 0xa6, 0xf7, 0x83, 0xc6, 0x52, 0xa7, 0xd6, 0xf0, 0x8b, 0xd2, 0x06, 0xcb, 0x66, 0x9c, 0x37, 0x5c, 0x52, 0x1b, 0x34, 0x15, 0x26, 0xb5, 0x06, 0x0d, 0x8c, 0x4c, 0x1d, 0x9c, 0x56, 0xce, 0xaa, 0x35, 0x68, 0x23, 0x79, 0x6a, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0xe7, 0x60, 0x61, 0x9c, 0xf8, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0x25, 0xb5, 0x41, 0x53, 0x61, 0x52, 0x6b, 0xd0, 0xc0, 0xc8, 0xd4, 0x86, 0xb7, 0x75, 0x06, 0x87, 0x0f, 0x9a, 0xa1, 0x9c, 0x6a, 0x0d, 0x6f, 0xeb, 0x0c, 0x1e, 0x1f, 0x34, 0x43, 0x39, 0xd5, 0x41, 0x5b, 0x70, 0x54, 0x6b, 0xd0, 0xa4, 0xf4, 0xd4, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0xed, 0x94, 0x63, 0x83, 0x66, 0xd8, 0xa8, 0x0e, 0x9a, 0x6d, 0x9d, 0x6a, 0x05, 0x7c, 0xb1, 0x30, 0xb6, 0x75, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x6d, 0xd0, 0x46, 0xcc, 0xd4, 0xc1, 0xb2, 0x19, 0xe7, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0xa1, 0xd5, 0x91, 0x07, 0xcb, 0x05, 0xb1, 0xd7, 0xf0, 0xe7, 0xd2, 0x80, 0x47, 0xf6, 0xd6, 0x1e, 0x2c, 0xae, 0x83, 0x6e, 0xc3, 0x5f, 0x34, 0x1b, 0x84, 0xe9, 0xd8, 0x86, 0x0f, 0x72, 0xd6, 0xa0, 0x98, 0xc4, 0xdc, 0x20, 0x04, 0x1f, 0x36, 0x68, 0x81, 0x98, 0xaa, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x01, 0x8f, 0xec, 0xcd, 0xde, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0xe0, 0xd0, 0x5b, 0xd9, 0x06, 0x0d, 0x38, 0x4d, 0xad, 0xe1, 0x6d, 0x9d, 0x0d, 0xda, 0x07, 0xa6, 0x6a, 0x0d, 0x6f, 0xeb, 0x0c, 0x1e, 0x0f, 0x1e, 0x0f, 0xee, 0x1e, 0x34, 0xad, 0x4c, 0xd5, 0x06, 0x41, 0x7a, 0xba, 0x41, 0xd3, 0xca, 0x54, 0xab, 0xe1, 0x73, 0xa5, 0x0d, 0xc2, 0x74, 0xec, 0x60, 0xe5, 0xc1, 0xfa, 0x86, 0xb7, 0x75, 0x36, 0x68, 0xda, 0x99, 0xaa, 0xd5, 0xf0, 0xb9, 0xd2, 0x06, 0x61, 0x3a, 0xb6, 0x41, 0x08, 0x3e, 0x1c, 0x1c, 0x62, 0x3a, 0x36, 0xfc, 0xe2, 0xb2, 0x41, 0x7b, 0xde, 0x54, 0x6b, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xd0, 0xb4, 0x32, 0xd5, 0x86, 0xb7, 0x75, 0x06, 0x97, 0x0f, 0x9a, 0x56, 0xa6, 0xaa, 0xd5, 0xf0, 0xb9, 0xd2, 0x06, 0x61, 0x3a, 0xb6, 0x41, 0x98, 0x8e, 0x1d, 0x1c, 0x17, 0x4f, 0x36, 0xfc, 0xe2, 0xb2, 0x41, 0x7b, 0xde, 0x54, 0x6b, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xd0, 0xb4, 0x32, 0xd5, 0x86, 0xb7, 0x75, 0x06, 0x67, 0x0f, 0x9a, 0x56, 0xa6, 0xaa, 0x35, 0x38, 0xa5, 0x2d, 0x6d, 0xf8, 0xc5, 0x65, 0x83, 0xf6, 0xbc, 0xa9, 0x36, 0x68, 0x2b, 0x9e, 0xea, 0xa0, 0x25, 0x73, 0xaa, 0x66, 0x0d, 0x56, 0xb1, 0xfb, 0x6f, 0x78, 0x7c, 0x64, 0x83, 0x55, 0xec, 0xfe, 0x1b, 0x7e, 0x51, 0xda, 0xa0, 0x05, 0x0a, 0xa9, 0x0d, 0x7f, 0xd1, 0x6c, 0xb0, 0x6c, 0xc6, 0x79, 0xc3, 0x2f, 0x2e, 0x1b, 0x34, 0x0a, 0xc4, 0xb1, 0x86, 0x5f, 0x5c, 0x36, 0x28, 0x28, 0x32, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0x6d, 0x9d, 0x48, 0x1d, 0x94, 0x75, 0x9e, 0x1d, 0x34, 0xab, 0x41, 0x75, 0x38, 0xc5, 0x5a, 0xc0, 0x6f, 0x4b, 0x9b, 0x9b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x1a, 0x5e, 0xa8, 0x6a, 0x00, 0x6f, 0xb7, 0x37, 0xb7, 0x34, 0x37, 0xba, 0x32, 0xb9, 0xb9, 0xb2, 0x31, 0xba, 0xb4, 0x37, 0xb7, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x83, 0x26, 0x4a, 0xa8, 0x36, 0xfc, 0x45, 0xb3, 0xe1, 0x83, 0xd5, 0x0d, 0x4a, 0x7b, 0xcb, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0x9d, 0xa5, 0xb1, 0x1b, 0x84, 0x7e, 0xc9, 0x06, 0x25, 0xe2, 0xfb, 0x06, 0x6b, 0xf3, 0xb8, 0xdb, 0xf0, 0xa0, 0xe4, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xc9, 0xca, 0xf0, 0xe8, 0x36, 0x28, 0x59, 0xd8, 0x67, 0x99, 0x35, 0x68, 0x36, 0xa4, 0x6a, 0xc3, 0x5f, 0x34, 0x1b, 0x3e, 0x58, 0xdd, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0x60, 0x79, 0x06, 0xf2, 0x41, 0x03, 0x67, 0x53, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x97, 0xd4, 0x06, 0x8d, 0xd1, 0x4a, 0xad, 0x41, 0x03, 0x23, 0x53, 0x07, 0x6d, 0x7d, 0x5f, 0xb4, 0x41, 0x01, 0x9b, 0x7f, 0xd0, 0xac, 0x06, 0xd5, 0x06, 0x41, 0x7a, 0xba, 0x41, 0x03, 0x23, 0x53, 0x6b, 0xb0, 0x5e, 0xa4, 0xf9, 0xa0, 0xc8, 0x69, 0x5d, 0x83, 0xf5, 0xee, 0xcc, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x21, 0x96, 0xaa, 0x83, 0xe6, 0x24, 0xa8, 0xd6, 0xa0, 0x81, 0xc5, 0xa9, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x73, 0x69, 0x6e, 0x74, 0x6b, 0xd0, 0x86, 0xe7, 0xd4, 0x41, 0x03, 0x3c, 0x55, 0x6b, 0xd0, 0x7c, 0xc4, 0xd4, 0x86, 0x4b, 0x6a, 0x83, 0xb6, 0x79, 0xaa, 0xd6, 0xa0, 0x81, 0x91, 0xa9, 0x83, 0xa6, 0x16, 0xa4, 0x5a, 0x83, 0x46, 0x7d, 0xa7, 0x36, 0x28, 0x3a, 0x8d, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0x85, 0x57, 0x56, 0x6b, 0x50, 0x96, 0xbc, 0x6f, 0xb0, 0x08, 0x64, 0xf4, 0xa0, 0x01, 0x4f, 0xaa, 0x0d, 0xbf, 0x28, 0x6d, 0xb0, 0x6c, 0xc6, 0x79, 0xc3, 0x25, 0xb5, 0x41, 0xa3, 0x21, 0x55, 0x07, 0xad, 0x8f, 0x52, 0xad, 0x41, 0xcb, 0xb0, 0x53, 0x1b, 0x2e, 0xa9, 0x0d, 0x1a, 0x0d, 0xa9, 0x3a, 0x68, 0x48, 0x8e, 0x6a, 0x0d, 0xda, 0x48, 0x9e, 0x3a, 0x68, 0x69, 0xaa, 0x6a, 0x0d, 0x9a, 0x94, 0x9e, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0xde, 0xed, 0x59, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x72, 0xe7, 0x7d, 0x83, 0xb2, 0xe9, 0x7d, 0x0d, 0x0a, 0xc1, 0xd4, 0x83, 0xb5, 0x79, 0xdc, 0xad, 0xe1, 0x2f, 0x9a, 0x35, 0x08, 0xfd, 0x92, 0x0d, 0x42, 0xca, 0xe4, 0x60, 0x65, 0x1f, 0xf7, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0xe0, 0x6c, 0x6a, 0x83, 0xe5, 0x19, 0xc8, 0x07, 0x65, 0x9d, 0x67, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbb, 0x3d, 0x6b, 0x50, 0x96, 0xbc, 0x6f, 0x70, 0xb4, 0xd6, 0xd8, 0xa0, 0x6c, 0x7a, 0x5f, 0xc3, 0xdb, 0x3a, 0x1b, 0xb4, 0xbb, 0x51, 0x55, 0x07, 0xa9, 0x40, 0x63, 0x1b, 0x14, 0x39, 0xad, 0x1b, 0x2e, 0xa9, 0x0d, 0x1a, 0x0d, 0xa9, 0x5a, 0x83, 0x06, 0x46, 0xa6, 0x0e, 0x5a, 0x02, 0x96, 0x5a, 0x83, 0x96, 0xdc, 0xaa, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x65, 0x0b, 0xea, 0x41, 0x63, 0x6c, 0x55, 0x07, 0xa9, 0x40, 0x63, 0xb5, 0x1a, 0xb4, 0xce, 0x53, 0xb5, 0xc1, 0xc9, 0x41, 0x6e, 0x83, 0x75, 0x17, 0xc8, 0x6b, 0xb8, 0xa4, 0x36, 0x68, 0x34, 0xa4, 0x6a, 0x83, 0xf6, 0x2e, 0xa8, 0xd6, 0x60, 0xdd, 0x05, 0xf2, 0x41, 0x03, 0x67, 0x53, 0xad, 0x41, 0x03, 0x8b, 0x53, 0x1b, 0x14, 0x3b, 0x9a, 0x6b, 0x50, 0x4c, 0x62, 0x6e, 0xd0, 0xc0, 0xe2, 0xd4, 0x41, 0x03, 0x23, 0x53, 0x1b, 0x14, 0x39, 0xad, 0x1b, 0x1e, 0x61, 0x5d, 0x83, 0x62, 0x12, 0x73, 0x83, 0x22, 0x15, 0x73, 0xf0, 0xf8, 0x60, 0xdd, 0x05, 0xf2, 0x1a, 0x14, 0x93, 0x98, 0x1b, 0x14, 0xa9, 0x98, 0x07, 0xed, 0x5f, 0x4e, 0xad, 0xe1, 0x6d, 0xd6, 0x0d, 0xff, 0xe6, 0xac, 0xe1, 0x6d, 0x9d, 0x83, 0xe6, 0x1b, 0xab, 0x0e, 0x1a, 0x6e, 0x9d, 0x6a, 0x0d, 0xda, 0xf0, 0x9c, 0xda, 0xa0, 0xd8, 0xd1, 0x5c, 0x83, 0x62, 0x12, 0x73, 0x83, 0x36, 0x3c, 0xa7, 0x0e, 0x1a, 0x18, 0x99, 0xda, 0xa0, 0xc8, 0x69, 0xdd, 0xf0, 0x2b, 0xd9, 0x1a, 0x2e, 0xa9, 0x0d, 0x1a, 0x0d, 0xa9, 0xda, 0xa0, 0x0d, 0x37, 0xaa, 0x35, 0x58, 0x77, 0x81, 0xbc, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0x83, 0x75, 0x17, 0xc8, 0xad, 0xe1, 0x92, 0xda, 0xa0, 0xd1, 0x90, 0xaa, 0x0d, 0x9a, 0x92, 0xa3, 0x5a, 0x83, 0x75, 0x17, 0xc8, 0x07, 0xad, 0x51, 0x56, 0x55, 0x87, 0x53, 0xac, 0xc3, 0x29, 0xb6, 0x02, 0x5f, 0x46, 0x6f, 0x50, 0x96, 0x61, 0xaf, 0xe1, 0x73, 0xa5, 0x0d, 0x9a, 0x10, 0xa1, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0x0c, 0x1e, 0x94, 0x83, 0xb5, 0xb1, 0xd1, 0xcd, 0x32, 0x6b, 0xd0, 0x02, 0x02, 0xca, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xce, 0xde, 0xd8, 0x83, 0x65, 0x33, 0xce, 0x1b, 0x34, 0xd0, 0x4b, 0xd5, 0x06, 0x47, 0x1b, 0xbe, 0x35, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x2b, 0xd9, 0x06, 0x4d, 0x0a, 0x4d, 0xad, 0xe1, 0xdd, 0x9e, 0x35, 0x5c, 0x52, 0x1b, 0x34, 0x46, 0x2b, 0xb5, 0x06, 0x0d, 0x8c, 0x4c, 0x6d, 0x78, 0x5b, 0x67, 0x83, 0xe6, 0x6e, 0xab, 0x6a, 0x83, 0x22, 0xa7, 0x75, 0x0d, 0x6f, 0xeb, 0x0c, 0x0e, 0x1f, 0xbe, 0x9c, 0xac, 0xc3, 0x33, 0x93, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0xd0, 0x2f, 0xd9, 0xa0, 0xf4, 0xa6, 0xdf, 0x60, 0xd9, 0x8c, 0xf3, 0xc1, 0xca, 0x3e, 0xee, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x0d, 0x8e, 0x8b, 0xdd, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0xc3, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xfd, 0x15, 0xaa, 0x35, 0xbc, 0x71, 0x77, 0xb0, 0x10, 0xbe, 0xf9, 0xa0, 0xe9, 0x17, 0xaa, 0x35, 0x7c, 0xee, 0x32, 0x78, 0xbc, 0xe1, 0xdd, 0x9e, 0x35, 0x5c, 0x52, 0x1b, 0x34, 0xcd, 0x42, 0xb5, 0x06, 0x0d, 0x8c, 0x4c, 0x1d, 0x34, 0xe0, 0x34, 0xd5, 0x41, 0x03, 0xd5, 0x55, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0x8a, 0x49, 0xcc, 0x0d, 0xc2, 0x08, 0x68, 0xe3, 0xd0, 0xe0, 0xf0, 0x41, 0x8a, 0xc8, 0xd4, 0x1a, 0x14, 0x7c, 0x98, 0x6b, 0x78, 0x84, 0x75, 0x0d, 0x8a, 0x49, 0xcc, 0x0d, 0xc2, 0x08, 0x68, 0xe3, 0xd0, 0xe0, 0xf1, 0x41, 0x8a, 0xc8, 0xd4, 0x1a, 0x14, 0x93, 0x98, 0x1b, 0x84, 0xe0, 0xc3, 0xc1, 0xda, 0x4e, 0xf8, 0x36, 0xfc, 0xe2, 0xb2, 0x86, 0xb7, 0x75, 0x06, 0x87, 0x07, 0x87, 0x0f, 0xda, 0x17, 0xaf, 0x5a, 0xc3, 0xdb, 0x3a, 0x83, 0xc3, 0x83, 0xc3, 0x07, 0xed, 0xa3, 0x57, 0xb5, 0x41, 0xc1, 0x87, 0xb9, 0x06, 0xc5, 0x24, 0xe6, 0x06, 0x01, 0x1b, 0x74, 0xd0, 0x1c, 0x7a, 0xd5, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x80, 0x5f, 0xe6, 0x46, 0xf6, 0xb6, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb6, 0xce, 0x41, 0xd3, 0xef, 0x55, 0x6b, 0x78, 0x5b, 0xe7, 0xa0, 0x65, 0xf9, 0xaa, 0x36, 0x68, 0xc0, 0x69, 0x6a, 0x83, 0x05, 0x9c, 0xf0, 0xcd, 0x1a, 0xb4, 0xb0, 0xa8, 0xb2, 0xe1, 0x2f, 0x9a, 0x0d, 0x96, 0xcd, 0x38, 0x6f, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x6c, 0x70, 0x5c, 0xec, 0x3e, 0x68, 0x61, 0xba, 0x6a, 0xc3, 0x07, 0x39, 0x6b, 0x50, 0x4c, 0x62, 0x6e, 0x10, 0x46, 0x40, 0x1b, 0x87, 0x0e, 0x52, 0x44, 0xa6, 0xd6, 0xe0, 0x5c, 0xb8, 0xb0, 0x86, 0x3c, 0xf6, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x0f, 0xd2, 0xcc, 0xbc, 0x37, 0x28, 0xf8, 0x30, 0x37, 0x68, 0x51, 0xbd, 0xea, 0xa0, 0x51, 0xfe, 0xaa, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0xbf, 0x8c, 0x4d, 0xec, 0x6d, 0x0d, 0x6f, 0xeb, 0x1c, 0xb4, 0x2f, 0x5e, 0x75, 0xd0, 0x6c, 0x80, 0xd5, 0xac, 0x41, 0x2b, 0x35, 0x31, 0x1b, 0x7e, 0x51, 0xda, 0xa0, 0x45, 0xdb, 0xaa, 0x0d, 0x8e, 0x36, 0x7c, 0x1b, 0x34, 0xbd, 0x5b, 0xb5, 0xe1, 0x2f, 0x9a, 0x0d, 0x16, 0xc3, 0x97, 0x6f, 0xf8, 0xc4, 0x66, 0x83, 0x06, 0x0e, 0xac, 0x36, 0x7c, 0x90, 0xb3, 0x41, 0xdb, 0x0a, 0x56, 0x6b, 0x70, 0x2e, 0x5c, 0xd8, 0xa0, 0xbd, 0x07, 0xab, 0x0d, 0x0a, 0x3e, 0xcc, 0x0d, 0x5a, 0x54, 0xaf, 0x3a, 0x68, 0x20, 0xc3, 0x6a, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x2f, 0x93, 0x3b, 0x7b, 0x3b, 0x68, 0x1e, 0xc3, 0xea, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0xb6, 0x06, 0xe5, 0x57, 0xd8, 0x86, 0xc7, 0x47, 0x36, 0x28, 0xbf, 0xc2, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0x80, 0x77, 0x17, 0x96, 0x6f, 0xf8, 0x77, 0x7e, 0x0d, 0xd6, 0x62, 0x37, 0xd7, 0x06, 0x4d, 0x88, 0x50, 0xb5, 0xe1, 0x2f, 0x9a, 0x35, 0xfc, 0x3b, 0xbf, 0x06, 0xcb, 0xa6, 0xcb, 0x6b, 0xc3, 0x5b, 0x76, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x45, 0xd6, 0xb1, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xd5, 0xac, 0xaf, 0x6b, 0x78, 0xe3, 0x6e, 0xc3, 0xcb, 0x77, 0x07, 0xe5, 0x57, 0x58, 0x6b, 0x78, 0xe3, 0xee, 0x60, 0x2d, 0x1e, 0xfb, 0x41, 0xd3, 0x2f, 0x54, 0x1b, 0x1c, 0x6d, 0xf8, 0xd6, 0xa0, 0x20, 0x98, 0xdd, 0xf0, 0xe5, 0xe4, 0x06, 0xe1, 0xa9, 0xba, 0x41, 0x90, 0x9e, 0x6e, 0x90, 0x90, 0xde, 0xbd, 0x06, 0x01, 0x1b, 0xb4, 0xe1, 0x17, 0x97, 0x0d, 0x56, 0x81, 0xc9, 0x1e, 0x34, 0x5f, 0x5c, 0xb5, 0x06, 0x61, 0x04, 0xb4, 0x41, 0x90, 0x9e, 0xae, 0x71, 0xe8, 0xa0, 0x6d, 0xe3, 0xaa, 0x35, 0x08, 0x23, 0xa0, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0xcc, 0x49, 0x76, 0x0d, 0x6f, 0xeb, 0x0c, 0x0e, 0x1f, 0xb4, 0x6d, 0x5c, 0xd5, 0x1a, 0x04, 0x6c, 0xd0, 0x41, 0x78, 0xaa, 0xd6, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x16, 0x52, 0x6a, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0x22, 0x8e, 0x55, 0x07, 0x4d, 0xbf, 0x50, 0x1d, 0x4e, 0xb1, 0x35, 0x68, 0x16, 0x86, 0x69, 0xc3, 0x5f, 0x34, 0x1b, 0x2c, 0x9b, 0x71, 0xde, 0x20, 0x48, 0x4f, 0x37, 0x68, 0x60, 0x64, 0x6a, 0x0d, 0x9a, 0x8f, 0x98, 0xda, 0xf0, 0x8b, 0xcb, 0x06, 0xad, 0x48, 0x56, 0x6c, 0xb0, 0xc4, 0x7e, 0xfb, 0xa0, 0xb1, 0xd4, 0xa9, 0x35, 0x68, 0x19, 0x76, 0xea, 0xa0, 0xe1, 0xd6, 0xa9, 0x35, 0x68, 0x23, 0x79, 0xea, 0xa0, 0xe1, 0xd6, 0xa9, 0x35, 0x68, 0x52, 0x7a, 0x6a, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0x38, 0x2c, 0xb5, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x6d, 0x4d, 0x4e, 0x1d, 0x34, 0xdb, 0x3a, 0x75, 0x50, 0xd6, 0x79, 0xb6, 0x06, 0xeb, 0xdd, 0x99, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x33, 0x07, 0x53, 0x1b, 0x34, 0xd3, 0x1e, 0xb5, 0x41, 0x53, 0x0b, 0x52, 0x07, 0x65, 0x9d, 0xe7, 0x1a, 0x84, 0xe9, 0xd8, 0x06, 0xe7, 0xc2, 0x85, 0x35, 0xe4, 0xb1, 0x37, 0xfc, 0x08, 0x33, 0x38, 0x7d, 0xd0, 0xda, 0x29, 0xc0, 0x41, 0x78, 0xaa, 0xb6, 0x1a, 0x34, 0x58, 0x28, 0xb0, 0xe1, 0xf1, 0x91, 0x0d, 0x1a, 0x2c, 0x14, 0xd8, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x03, 0x1e, 0x5d, 0x19, 0x7b, 0xf8, 0x60, 0xf5, 0xa0, 0x89, 0x12, 0xaa, 0x0d, 0x4a, 0x7b, 0xcb, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xbe, 0x64, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x73, 0x75, 0x74, 0x1b, 0xfe, 0x5c, 0xda, 0x60, 0x61, 0x87, 0xe6, 0xc1, 0xda, 0x3c, 0xee, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x25, 0x2b, 0x3b, 0x2b, 0x73, 0x2b, 0x93, 0x0b, 0xa3, 0x2b, 0x03, 0x91, 0x2b, 0x33, 0xdb, 0xf0, 0xe7, 0xd2, 0x80, 0x27, 0x57, 0x76, 0x1e, 0xac, 0xcd, 0xe3, 0x5e, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xaf, 0xb0, 0xb9, 0xb9, 0xba, 0xb6, 0x32, 0x10, 0xb7, 0xb2, 0x39, 0xba, 0x0d, 0x7f, 0x2e, 0x6d, 0xd0, 0xee, 0x46, 0xd5, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0x89, 0xf8, 0xbe, 0x86, 0xcf, 0x95, 0x0e, 0x96, 0xeb, 0x70, 0xd7, 0x86, 0x07, 0x25, 0x37, 0x68, 0x19, 0xa4, 0x6a, 0x83, 0xb2, 0x4b, 0x76, 0x83, 0xc6, 0xfe, 0x04, 0xd6, 0x70, 0x49, 0xad, 0xf1, 0xf8, 0x70, 0x8a, 0x35, 0x1b, 0x94, 0x2c, 0xec, 0xb3, 0xcc, 0x1a, 0x24, 0xe7, 0xc2, 0x6e, 0x78, 0x84, 0x75, 0x83, 0x96, 0x41, 0xaa, 0x36, 0x68, 0xeb, 0xaf, 0xaa, 0x15, 0xf0, 0xc9, 0xca, 0xca, 0xda, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0xb5, 0x95, 0xb1, 0x07, 0xab, 0x0f, 0xb1, 0xd7, 0xf0, 0xe7, 0xd2, 0x06, 0xab, 0xb4, 0xd3, 0x0f, 0x56, 0x1f, 0x62, 0xb7, 0xe1, 0x2f, 0x9a, 0x0d, 0x1f, 0xac, 0x6e, 0x50, 0xec, 0x68, 0xae, 0xe1, 0x57, 0xb2, 0x35, 0xfc, 0x9b, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x68, 0x17, 0xd8, 0xaa, 0x83, 0xa5, 0xbc, 0xf0, 0x6b, 0xf8, 0x37, 0x67, 0x0d, 0x6f, 0xdc, 0x1d, 0xac, 0x6d, 0x2d, 0x3f, 0x68, 0x4f, 0xd9, 0x6a, 0x0d, 0xff, 0xe6, 0x6c, 0xd0, 0x82, 0xce, 0xd4, 0xc1, 0x52, 0x5e, 0xf8, 0x36, 0x28, 0x60, 0xf3, 0x37, 0x08, 0xd2, 0xd3, 0x0d, 0x9a, 0x5a, 0xb6, 0x5a, 0x83, 0x35, 0xac, 0xe5, 0x07, 0x45, 0x4e, 0xeb, 0x1a, 0xac, 0x11, 0x2d, 0x3f, 0x48, 0x75, 0x8f, 0x5d, 0x83, 0xd5, 0xa6, 0xe5, 0x1b, 0x2e, 0xa9, 0x0d, 0x1a, 0x0d, 0xa9, 0x5a, 0x83, 0x06, 0x46, 0xa6, 0x36, 0xbc, 0xdb, 0xb3, 0x86, 0x4b, 0x6a, 0x83, 0xd6, 0x7b, 0xa5, 0x0e, 0x5a, 0xbb, 0xa0, 0x5a, 0xc3, 0x1b, 0x77, 0x07, 0xcb, 0xeb, 0x9b, 0x0f, 0x82, 0x95, 0x75, 0x0d, 0xd6, 0x5d, 0x20, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0x26, 0x7a, 0xa5, 0x0e, 0x1a, 0x1f, 0xb7, 0x6a, 0x0d, 0xd6, 0xc5, 0x96, 0x6f, 0xb8, 0xa4, 0x36, 0x68, 0x34, 0xa4, 0x6a, 0x0d, 0x1a, 0x18, 0x99, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x4d, 0xf4, 0x4a, 0x6d, 0xd0, 0x44, 0x75, 0xd5, 0x41, 0xb0, 0xb2, 0xae, 0xc1, 0xba, 0x0b, 0xe4, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0x3e, 0xb8, 0xd5, 0x41, 0x1b, 0xf1, 0x56, 0x75, 0x38, 0xc5, 0x16, 0xf0, 0xc9, 0xca, 0xca, 0xe0, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0x1a, 0x19, 0xa6, 0x5a, 0xc3, 0x9f, 0x4b, 0x03, 0x9e, 0x5d, 0x5a, 0x7b, 0xb0, 0xb8, 0x0e, 0xba, 0x0d, 0x7f, 0xd1, 0x6c, 0xf8, 0x60, 0x75, 0xc3, 0x07, 0x39, 0x1b, 0x34, 0x8e, 0x4c, 0xb5, 0x86, 0x7f, 0x73, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x6d, 0xf5, 0x5b, 0x75, 0x50, 0x50, 0x64, 0x6e, 0xf8, 0x20, 0x67, 0x0d, 0x8a, 0x49, 0xcc, 0x0d, 0x42, 0xf0, 0xe1, 0xa0, 0x7d, 0x82, 0xab, 0x0d, 0x0a, 0xd8, 0xfc, 0x0d, 0x8f, 0xb0, 0xae, 0xe1, 0xdf, 0x9c, 0x35, 0xbc, 0xad, 0x33, 0x38, 0x7c, 0xd0, 0xf6, 0x35, 0xd5, 0x86, 0xb7, 0x75, 0x06, 0x87, 0x07, 0x77, 0x0f, 0xda, 0x27, 0xb8, 0x5a, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0xdb, 0xa0, 0x6d, 0x79, 0xaa, 0x35, 0x68, 0x9f, 0xe0, 0x6a, 0xc3, 0xdb, 0x3a, 0x83, 0xb3, 0x07, 0xed, 0x13, 0x5c, 0xb5, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x41, 0xdb, 0xe7, 0x54, 0x6b, 0xd0, 0x3e, 0xc1, 0xd5, 0x86, 0xb7, 0x75, 0x06, 0x97, 0x0f, 0xda, 0x27, 0xb8, 0x6a, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x35, 0x4c, 0xdc, 0x80, 0x47, 0x16, 0x26, 0x06, 0x1e, 0x5a, 0x59, 0xbb, 0xe1, 0x17, 0x97, 0x0d, 0x1a, 0xb0, 0xa6, 0x5a, 0xc3, 0xdb, 0x3a, 0x83, 0xc7, 0x83, 0xc7, 0x07, 0x4d, 0x46, 0x5c, 0xb5, 0xe1, 0x2b, 0x9c, 0x0d, 0x7f, 0xd1, 0x6c, 0xf8, 0x60, 0x75, 0xc3, 0x07, 0x39, 0x6b, 0x50, 0x4c, 0x62, 0x6e, 0x10, 0x82, 0x0f, 0x1b, 0xb4, 0x24, 0x72, 0xd5, 0x1a, 0xfe, 0xcd, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0xb4, 0x35, 0x72, 0xd5, 0x41, 0x41, 0x91, 0xb9, 0xe1, 0x83, 0x9c, 0x35, 0x28, 0x26, 0x31, 0x37, 0x08, 0xc1, 0x87, 0x83, 0x96, 0x63, 0xae, 0x36, 0x28, 0x60, 0xf3, 0x37, 0x3c, 0xc2, 0xba, 0x86, 0x7f, 0x73, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf0, 0xe0, 0xee, 0x41, 0xcb, 0x2e, 0x57, 0x1b, 0xde, 0xd6, 0x19, 0x1c, 0x1e, 0xdc, 0x3d, 0x68, 0x39, 0xe6, 0x6a, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x5a, 0x76, 0xb9, 0xda, 0xf0, 0xb6, 0xce, 0xe0, 0xec, 0x41, 0xcb, 0x2e, 0x57, 0x6b, 0xd0, 0x72, 0xcc, 0xd5, 0x86, 0xb7, 0x75, 0x06, 0x67, 0x0f, 0x5a, 0x8e, 0xb9, 0x6a, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x5a, 0x76, 0xb9, 0xda, 0xf0, 0xb6, 0xce, 0xe0, 0xf2, 0x41, 0xcb, 0x2e, 0x57, 0x6b, 0xd0, 0x72, 0xcc, 0xd5, 0x86, 0xb7, 0x75, 0x06, 0x97, 0x0f, 0x5a, 0x8e, 0xb9, 0x6a, 0x0d, 0x97, 0xd4, 0x06, 0x8d, 0x86, 0x54, 0xad, 0x41, 0x03, 0x23, 0x53, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xfd, 0x5c, 0xa9, 0x35, 0xbc, 0xad, 0x33, 0x78, 0x7c, 0xd0, 0xfe, 0xce, 0x55, 0x6b, 0xb0, 0xee, 0x02, 0x79, 0xc3, 0xbb, 0x3d, 0x6b, 0xb8, 0xa4, 0x36, 0x68, 0xe3, 0x3e, 0xea, 0xa0, 0xb5, 0x0b, 0xaa, 0x35, 0xbc, 0xad, 0x33, 0x78, 0x7c, 0xd0, 0xb8, 0xcf, 0x55, 0xd5, 0x6a, 0xd0, 0x6c, 0x48, 0xd5, 0x86, 0x07, 0x25, 0x37, 0x08, 0x40, 0xb6, 0x0d, 0xca, 0x2e, 0xd9, 0x0d, 0x1a, 0xd0, 0x10, 0xd8, 0x70, 0x47, 0xcd, 0x06, 0xe7, 0xc1, 0x8e, 0x0d, 0x7f, 0xd1, 0x6c, 0xf8, 0x60, 0x75, 0x83, 0xa3, 0x0d, 0xdf, 0x1a, 0x3e, 0xc8, 0xd9, 0xf0, 0xcc, 0xe4, 0x06, 0x45, 0x4e, 0xeb, 0x06, 0xc5, 0x8e, 0xe6, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0x6d, 0x47, 0xab, 0x36, 0x28, 0x60, 0xf3, 0x37, 0xbc, 0x65, 0xb7, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x77, 0x4e, 0x6a, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0xee, 0x60, 0xc8, 0xc5, 0xb5, 0xe1, 0x2d, 0xbb, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0x4b, 0x6a, 0x83, 0x26, 0xe9, 0xa4, 0x0e, 0x5a, 0xbb, 0xa0, 0x5a, 0xc3, 0x1b, 0x77, 0x1b, 0x5e, 0xbe, 0x3b, 0x68, 0x1c, 0x42, 0xa0, 0x0d, 0xce, 0x85, 0x0b, 0x6b, 0xc8, 0x63, 0x6f, 0xf8, 0x11, 0x66, 0x70, 0xfa, 0xa0, 0x45, 0x0a, 0x81, 0x83, 0xf0, 0x54, 0xdd, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0xa0, 0x81, 0xb3, 0xa9, 0x83, 0xe5, 0x19, 0xc8, 0x1b, 0x14, 0x39, 0xad, 0x1b, 0x04, 0xe9, 0xe9, 0x06, 0x0d, 0x8c, 0x4c, 0xad, 0xc1, 0x7a, 0x91, 0xe6, 0x83, 0x06, 0x78, 0xaa, 0xd6, 0x60, 0xbd, 0x3b, 0xf3, 0x41, 0x91, 0xd3, 0xba, 0x06, 0x0d, 0x2c, 0x4e, 0x6d, 0x50, 0xec, 0x68, 0xae, 0x41, 0x31, 0x89, 0xb9, 0x41, 0x03, 0x8b, 0x53, 0x07, 0xeb, 0x2e, 0x90, 0x37, 0x68, 0x80, 0xa7, 0x6a, 0xc3, 0x23, 0xac, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x66, 0x69, 0x74, 0x7a, 0x1b, 0xb4, 0x35, 0x39, 0xb5, 0x41, 0xeb, 0xa2, 0x55, 0xad, 0xe1, 0x57, 0xb2, 0x35, 0x28, 0x26, 0x31, 0x37, 0x08, 0xc1, 0x87, 0x83, 0xf6, 0x2f, 0xa7, 0xd6, 0xf0, 0x6f, 0xce, 0x06, 0x0d, 0xb7, 0x4e, 0x1d, 0xb4, 0x46, 0x59, 0x55, 0x6b, 0xd0, 0x86, 0xe7, 0xd4, 0x06, 0xc5, 0x8e, 0xe6, 0x1a, 0x14, 0x93, 0x98, 0x1b, 0xb4, 0xe1, 0x39, 0x75, 0xb0, 0xee, 0x02, 0x79, 0x83, 0x06, 0x78, 0xaa, 0x36, 0x3c, 0xc2, 0xba, 0x86, 0x4b, 0x6a, 0x83, 0x46, 0x43, 0xaa, 0x36, 0x68, 0xc3, 0x8d, 0x6a, 0x83, 0xa6, 0x43, 0xab, 0xd6, 0x60, 0xf9, 0xa4, 0xe6, 0x41, 0x41, 0x91, 0xb9, 0x1a, 0xb4, 0x34, 0x6a, 0xd5, 0x41, 0x41, 0x91, 0xd9, 0x1a, 0x2e, 0xa9, 0x0d, 0x1a, 0x0d, 0xa9, 0xda, 0xa0, 0x29, 0x39, 0xaa, 0x0d, 0x9a, 0x43, 0xad, 0x3a, 0x68, 0xe2, 0xf5, 0xaa, 0x35, 0x68, 0x3e, 0x62, 0x6a, 0x83, 0x62, 0x47, 0x73, 0x0d, 0x8a, 0x49, 0xcc, 0x0d, 0x9a, 0x8f, 0x98, 0x3a, 0x58, 0x77, 0x81, 0xbc, 0x41, 0x03, 0x3c, 0x55, 0x1b, 0x3e, 0xc8, 0xd9, 0xa0, 0x31, 0xd0, 0xab, 0x0d, 0x5a, 0xf6, 0xac, 0xda, 0xf0, 0x08, 0xeb, 0x1a, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xf8, 0xcd, 0x85, 0xb5, 0x95, 0x81, 0xdc, 0x95, 0xd1, 0xbd, 0x90, 0xc9, 0xe5, 0x6d, 0xf8, 0x37, 0x67, 0x83, 0x76, 0xdb, 0xa7, 0x36, 0xbc, 0xad, 0x33, 0x78, 0x3c, 0x38, 0x7c, 0xd0, 0x7c, 0x63, 0xd5, 0x1a, 0x2e, 0xa9, 0x0d, 0x12, 0xe4, 0x63, 0x37, 0x68, 0xbc, 0x8f, 0x6a, 0x0d, 0xd6, 0x5d, 0x20, 0x1f, 0xb4, 0x35, 0x39, 0xd5, 0x1a, 0x2e, 0xa9, 0x0d, 0x1a, 0x0d, 0xa9, 0x5a, 0x83, 0x06, 0x46, 0xa6, 0x36, 0xbc, 0xad, 0x33, 0x78, 0x7c, 0xd0, 0x7c, 0x63, 0xd5, 0x41, 0xc3, 0xa1, 0x55, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x97, 0xd4, 0x1a, 0x34, 0xcb, 0x6b, 0xd5, 0x06, 0x8d, 0xf7, 0x51, 0xad, 0xc1, 0xba, 0x0b, 0xe4, 0x83, 0xa6, 0xab, 0xaf, 0xda, 0xa0, 0xa5, 0xf8, 0xa9, 0x35, 0xbc, 0xad, 0x33, 0xb8, 0x7c, 0xd0, 0xfa, 0xf2, 0x55, 0x6b, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0xac, 0xe1, 0x8d, 0xbb, 0x83, 0x75, 0xde, 0xdb, 0x07, 0xed, 0xb6, 0x4f, 0xad, 0xe1, 0xdf, 0x9c, 0x0d, 0xda, 0x0a, 0xa4, 0xda, 0xf0, 0xb6, 0xce, 0xe0, 0xf1, 0xe0, 0xf2, 0x41, 0xf3, 0x8d, 0x55, 0x1b, 0x7e, 0x25, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0xb4, 0xa5, 0x56, 0xb5, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0xe0, 0x6c, 0xea, 0xa0, 0xb9, 0x09, 0xaa, 0xd6, 0xe0, 0xd4, 0x70, 0xb4, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0x2b, 0x90, 0x6a, 0x83, 0x46, 0xd4, 0xaf, 0xda, 0x70, 0x49, 0xad, 0x41, 0x33, 0xf8, 0x56, 0xad, 0x41, 0x4b, 0x6e, 0x55, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xdd, 0xbb, 0xaa, 0x83, 0xd6, 0xdf, 0xaf, 0xd6, 0xa0, 0x81, 0x91, 0xa9, 0x0d, 0x97, 0xd4, 0x06, 0x0d, 0x8c, 0x4c, 0xad, 0xc1, 0xc1, 0x23, 0xe3, 0xa0, 0x71, 0xfb, 0xa9, 0x15, 0x5c, 0x3e, 0x48, 0xab, 0x8e, 0x3a, 0x68, 0x41, 0x67, 0xaa, 0x35, 0x58, 0x77, 0x81, 0xbc, 0xe1, 0x92, 0xda, 0x60, 0xdd, 0x05, 0xf2, 0x1a, 0x1c, 0x3c, 0x32, 0x0e, 0x9a, 0xae, 0xbe, 0x3a, 0x68, 0x58, 0x00, 0xab, 0xda, 0xa0, 0x15, 0xa9, 0xaa, 0x35, 0x68, 0xd4, 0x77, 0x6a, 0x83, 0x62, 0x47, 0x73, 0x0d, 0x8a, 0x49, 0xcc, 0x35, 0x08, 0x36, 0xd3, 0x0d, 0x1a, 0x58, 0x9c, 0xda, 0x60, 0xbd, 0x3b, 0xf3, 0x06, 0x6d, 0x78, 0x4e, 0x6d, 0xd0, 0x7c, 0xc4, 0x54, 0x07, 0xeb, 0x2e, 0x90, 0x37, 0x68, 0x80, 0xa7, 0x6a, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x4f, 0xad, 0xdd, 0xa0, 0x0d, 0xa5, 0xaa, 0x35, 0xfc, 0xa2, 0xb4, 0xc1, 0xb2, 0x19, 0xe7, 0x0d, 0x97, 0xd4, 0x06, 0x8d, 0x86, 0x54, 0xad, 0x41, 0xa3, 0x6f, 0x57, 0x07, 0x05, 0x6c, 0xfe, 0x41, 0xeb, 0xa3, 0x54, 0x6d, 0xd0, 0x90, 0x55, 0xd5, 0x1a, 0x34, 0x29, 0x3d, 0xb5, 0xe1, 0x83, 0x9c, 0x35, 0xbc, 0xdb, 0xb3, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x47, 0x6b, 0x8d, 0x0d, 0xca, 0xa6, 0xf7, 0x0d, 0xd6, 0x48, 0x6a, 0x76, 0xd0, 0xac, 0x06, 0xd5, 0x06, 0x05, 0x6c, 0xfe, 0x86, 0x0f, 0x72, 0x36, 0x68, 0xbe, 0xfd, 0x6a, 0x83, 0x22, 0xa7, 0x75, 0xc3, 0x25, 0xb5, 0x41, 0xa3, 0x21, 0x55, 0x1b, 0x34, 0x37, 0x57, 0xb5, 0x06, 0xcb, 0x27, 0x35, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x65, 0x0b, 0xea, 0x41, 0x43, 0x28, 0x58, 0x07, 0xcd, 0x6a, 0x50, 0x6d, 0xd0, 0x5a, 0xfe, 0x55, 0xad, 0x06, 0xad, 0xf3, 0x54, 0x6d, 0xf8, 0x8b, 0x66, 0xc3, 0x07, 0xab, 0x1b, 0x04, 0xe9, 0xe9, 0x06, 0xeb, 0x2e, 0x90, 0xd7, 0x60, 0xbd, 0x3b, 0xf3, 0x41, 0x01, 0x9b, 0xbf, 0x41, 0x9b, 0x34, 0x55, 0x6b, 0xd0, 0xc0, 0xe2, 0xd4, 0x41, 0x01, 0x9b, 0xbf, 0x06, 0x6d, 0x78, 0x4e, 0x1d, 0x14, 0xb0, 0xf9, 0x6b, 0xd0, 0x7c, 0xc4, 0xd4, 0x86, 0x4b, 0x6a, 0x83, 0x46, 0x43, 0xaa, 0xd6, 0x60, 0xdd, 0x05, 0xf2, 0x86, 0x4b, 0x6a, 0x83, 0x46, 0x82, 0xa5, 0x0e, 0x5a, 0xbb, 0xa0, 0x6a, 0x0d, 0x5a, 0x86, 0x9d, 0xda, 0x70, 0x49, 0x6d, 0xd0, 0x68, 0x48, 0xd5, 0x41, 0x63, 0xa8, 0x55, 0x6b, 0xd0, 0xa8, 0xef, 0xd4, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x04, 0xa9, 0x6a, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x16, 0x81, 0x8c, 0x6e, 0x50, 0x36, 0xbd, 0x1f, 0xb4, 0xb2, 0x79, 0xb5, 0x86, 0x5f, 0x94, 0x36, 0x58, 0x36, 0xe3, 0xbc, 0xe1, 0x92, 0xda, 0xa0, 0xd1, 0x90, 0xaa, 0x35, 0x58, 0x77, 0x81, 0x7c, 0x70, 0x5a, 0x39, 0xab, 0x35, 0x68, 0x23, 0x79, 0xea, 0xa0, 0x51, 0x27, 0xac, 0x35, 0x68, 0x52, 0x7a, 0x6a, 0xc3, 0x07, 0x39, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x8e, 0xd6, 0x1a, 0x1b, 0x94, 0x4d, 0xef, 0x6b, 0x78, 0x5b, 0xe7, 0xa0, 0xa5, 0xd8, 0xab, 0x0e, 0x9a, 0x9b, 0xa0, 0xda, 0xa0, 0xc8, 0x69, 0xdd, 0xf0, 0x41, 0xce, 0x06, 0xcd, 0xb7, 0x5f, 0x6d, 0x50, 0xe4, 0xb4, 0x6e, 0xb8, 0xa4, 0x36, 0x68, 0x34, 0xa4, 0x6a, 0x83, 0xc6, 0x92, 0xb0, 0xd6, 0xa0, 0xa5, 0xd8, 0xab, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0xd9, 0x82, 0x7a, 0xd0, 0x92, 0x19, 0xd6, 0x41, 0x73, 0x13, 0x54, 0x07, 0x6d, 0xe2, 0x60, 0x75, 0x38, 0xc5, 0xea, 0x70, 0x8a, 0xad, 0x06, 0x2d, 0x68, 0x30, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0x80, 0x1f, 0x6d, 0x69, 0x6e, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x65, 0x65, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x72, 0x65, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x1b, 0xb4, 0x68, 0x5b, 0xb5, 0x41, 0xd3, 0xbf, 0x56, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x73, 0xcb, 0x6b, 0x0f, 0xd6, 0x77, 0x42, 0x1f, 0x34, 0x00, 0x4c, 0xb5, 0xe1, 0x2f, 0x9a, 0x0d, 0x16, 0xc3, 0x97, 0x6f, 0x70, 0xc0, 0xa2, 0x5b, 0x83, 0x82, 0x34, 0x76, 0x83, 0x65, 0xfb, 0x82, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0xe0, 0x3b, 0x86, 0x16, 0x06, 0x47, 0x57, 0x26, 0x37, 0xd7, 0x32, 0x86, 0x56, 0x36, 0xb6, 0xb6, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x00, 0x3e, 0x63, 0x6f, 0x72, 0x65, 0x2d, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x1b, 0xb4, 0x2d, 0x5c, 0x55, 0x1b, 0x14, 0xa4, 0xb1, 0x1b, 0xac, 0xd6, 0x20, 0x5d, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x00, 0x8f, 0xb3, 0x32, 0xba, 0x16, 0xba, 0xb7, 0xb6, 0xb2, 0xb9, 0x0d, 0x16, 0xc1, 0x0d, 0xb6, 0xc1, 0xd1, 0x86, 0x6f, 0x0d, 0x96, 0x54, 0x27, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0x96, 0x4f, 0x21, 0xaf, 0xe1, 0x6d, 0x9d, 0x01, 0x8f, 0xac, 0x4c, 0xaf, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x98, 0xd1, 0x78, 0x83, 0x06, 0xce, 0xa6, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0xe1, 0x45, 0xac, 0x36, 0x68, 0x7d, 0x9a, 0x6a, 0x83, 0xf6, 0x94, 0xad, 0xda, 0xa0, 0x81, 0xb3, 0xa9, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0x1b, 0xe0, 0x7d, 0x50, 0xd6, 0x79, 0x1e, 0xb4, 0xc1, 0x8a, 0xb5, 0x86, 0xb7, 0x75, 0x0e, 0x9a, 0x56, 0xa6, 0x6a, 0xc3, 0xe7, 0x2e, 0x1b, 0x34, 0xd1, 0x8a, 0xb5, 0x41, 0xd1, 0xa7, 0xbb, 0x41, 0x03, 0x23, 0x53, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xc5, 0x8c, 0xc6, 0x1b, 0x34, 0x70, 0x36, 0xb5, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0x49, 0x16, 0x6b, 0x83, 0xd6, 0xa7, 0xa9, 0x36, 0x68, 0x41, 0x67, 0xaa, 0x0d, 0x1a, 0x38, 0x9b, 0x5a, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x67, 0x0b, 0xd3, 0x2b, 0xdb, 0xa0, 0x25, 0x59, 0xac, 0x0d, 0x5a, 0x9f, 0xa6, 0x3a, 0x68, 0x95, 0x17, 0xeb, 0xa0, 0x55, 0x5e, 0xac, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x8b, 0x66, 0x0d, 0x82, 0xcd, 0x74, 0x83, 0x10, 0x7c, 0x38, 0x38, 0x9e, 0x63, 0x6c, 0xf8, 0x20, 0x67, 0x83, 0xc6, 0x91, 0xa9, 0x36, 0x28, 0x28, 0x32, 0x37, 0x28, 0x48, 0x63, 0xd7, 0xf0, 0x7d, 0xfb, 0x06, 0x4d, 0x3b, 0x53, 0x6d, 0x50, 0x42, 0xc7, 0x6e, 0xd0, 0x30, 0x35, 0xd6, 0x41, 0x98, 0x8e, 0xad, 0x41, 0x41, 0x1a, 0xbb, 0x86, 0xef, 0xdb, 0x37, 0x68, 0x49, 0xe4, 0x6a, 0x83, 0x12, 0x3a, 0x76, 0x83, 0xb5, 0xa6, 0xdd, 0x07, 0x61, 0x3a, 0xb6, 0x41, 0x03, 0xd6, 0x54, 0x1b, 0x14, 0xa4, 0xb1, 0x03, 0x1e, 0x59, 0xd8, 0xb9, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x00, 0x3e, 0x61, 0x72, 0x6d, 0x73, 0x2d, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6b, 0x78, 0x5b, 0xe7, 0xa0, 0x65, 0x97, 0xab, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0xf8, 0xcf, 0xca, 0xe8, 0x5a, 0xc2, 0xe4, 0xda, 0xe6, 0x36, 0x58, 0x8f, 0x3c, 0xbf, 0x41, 0xd3, 0x0d, 0x57, 0xb5, 0xe1, 0x2b, 0x9c, 0x0d, 0x7f, 0xd1, 0x6c, 0xd0, 0x30, 0x35, 0xd6, 0x86, 0x0f, 0x72, 0x36, 0x68, 0x9b, 0xe5, 0x6a, 0x83, 0x82, 0x22, 0x73, 0x83, 0x82, 0x34, 0x76, 0xc0, 0x3b, 0x7b, 0x3b, 0xd7, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0x19, 0xc0, 0xef, 0xac, 0x8c, 0xae, 0x25, 0x4c, 0xae, 0xad, 0x85, 0x2e, 0x0f, 0xae, 0x6c, 0x83, 0x45, 0x70, 0x83, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xb6, 0xd1, 0xb1, 0xda, 0xa0, 0x51, 0x9d, 0xab, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x3c, 0xbb, 0x30, 0x72, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x47, 0x2b, 0x6b, 0x83, 0xdb, 0xa0, 0xf5, 0x69, 0xaa, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x43, 0xfe, 0x58, 0x1d, 0x34, 0x70, 0x75, 0xb5, 0x41, 0x90, 0x9e, 0x6e, 0xd0, 0xb2, 0xcb, 0xd5, 0x1a, 0xb4, 0xba, 0x4d, 0xb5, 0xe1, 0x6d, 0x9d, 0x0d, 0x1a, 0x57, 0xc8, 0x6a, 0x0d, 0x1a, 0x05, 0xa7, 0xda, 0xf0, 0x8b, 0xcb, 0x06, 0xad, 0x5a, 0x64, 0xad, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0x6d, 0xd0, 0xb0, 0xd2, 0x55, 0xad, 0x41, 0xa3, 0xeb, 0x54, 0x1b, 0x7e, 0x71, 0xd9, 0xa0, 0x55, 0x8b, 0xac, 0x35, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x0d, 0x1a, 0x10, 0xba, 0xaa, 0x35, 0x38, 0xa5, 0x2d, 0x6d, 0xf8, 0xc5, 0x65, 0x83, 0x56, 0x2d, 0xb2, 0x36, 0x68, 0x3a, 0x24, 0xeb, 0xa0, 0xed, 0x8d, 0xac, 0x0e, 0xda, 0xcb, 0xa6, 0x5a, 0x66, 0x0d, 0x9a, 0x09, 0xc8, 0xda, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x68, 0x26, 0x20, 0xab, 0x01, 0x78, 0x3e, 0x2b, 0xa3, 0x03, 0x29, 0xc3, 0x83, 0x2b, 0x1b, 0xa3, 0x2b, 0x23, 0x03, 0xa1, 0xcb, 0x83, 0x2b, 0x03, 0x79, 0x33, 0x03, 0xa1, 0x43, 0x4b, 0x9b, 0x03, 0x09, 0x93, 0x6b, 0xdb, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0x2c, 0xdb, 0x17, 0xdc, 0xf0, 0xef, 0xfc, 0x02, 0xfc, 0x67, 0x6f, 0x6c, 0x2d, 0x74, 0x79, 0x70, 0x65, 0xad, 0xe1, 0xcf, 0xa5, 0x0d, 0xda, 0x46, 0xc7, 0xda, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0x9b, 0x30, 0x0f, 0x56, 0x9a, 0x76, 0xaf, 0xe1, 0xcf, 0xa5, 0x01, 0xcf, 0x2d, 0xac, 0x3d, 0x58, 0xaf, 0xf5, 0xdc, 0x86, 0xbf, 0x68, 0x36, 0x58, 0x36, 0xe3, 0xbc, 0xc1, 0x89, 0xfd, 0x66, 0x83, 0x63, 0xec, 0xd8, 0x06, 0x4b, 0xaa, 0x93, 0x36, 0x58, 0x62, 0xbf, 0xbd, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0x21, 0x83, 0x60, 0x83, 0xb6, 0x0b, 0xb2, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x0f, 0x0f, 0xd6, 0x9a, 0x76, 0x6f, 0x50, 0x90, 0xc6, 0xae, 0xe1, 0xfb, 0xf6, 0x0d, 0x9a, 0xa7, 0x90, 0xda, 0xa0, 0x84, 0x8e, 0xdd, 0x60, 0x81, 0x85, 0xf3, 0x41, 0x98, 0x8e, 0xad, 0xe1, 0x2d, 0xbb, 0x35, 0x3c, 0x71, 0xb7, 0xe1, 0x59, 0xbc, 0xc1, 0xeb, 0xc1, 0xdd, 0xc1, 0xcb, 0xc1, 0xf1, 0xc1, 0xe1, 0xc1, 0xcb, 0xc1, 0xc7, 0xc1, 0xe9, 0xc1, 0xcb, 0xc1, 0xc9, 0x41, 0xdb, 0xe0, 0xe1, 0xe0, 0xf2, 0xe0, 0xed, 0xa0, 0x6e, 0xd9, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x19, 0xf6, 0xdb, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0xa9, 0xa2, 0xac, 0xaa, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x59, 0xf2, 0xbe, 0x06, 0xc7, 0x55, 0xab, 0x0e, 0x8e, 0xc9, 0x16, 0x07, 0xed, 0x9c, 0x65, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0x97, 0xd4, 0x06, 0x6d, 0xdc, 0x47, 0xad, 0x41, 0x03, 0x23, 0x53, 0x07, 0x8b, 0xe0, 0x06, 0x3b, 0x68, 0xe9, 0x44, 0x6a, 0x35, 0x68, 0x9b, 0x27, 0x6b, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xa0, 0x6d, 0x9e, 0xac, 0x06, 0x40, 0xb3, 0x30, 0x36, 0x36, 0x10, 0x3a, 0xb4, 0x32, 0x10, 0xb8, 0xb7, 0xb9, 0xb9, 0x34, 0x31, 0xb6, 0x32, 0x10, 0xba, 0x3c, 0xb8, 0xb2, 0x39, 0x90, 0xbb, 0x32, 0x90, 0xb1, 0xb7, 0x3a, 0x36, 0x32, 0x10, 0xb1, 0x32, 0x90, 0x32, 0x3c, 0xb8, 0xb2, 0x31, 0xba, 0x34, 0xb7, 0x33, 0xd7, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0x41, 0xdb, 0x3c, 0x59, 0x1b, 0x84, 0x1a, 0xe2, 0x06, 0x4b, 0xec, 0xb7, 0x37, 0x7c, 0x30, 0xbf, 0xc1, 0x7a, 0x77, 0xe6, 0x0d, 0x82, 0xf6, 0x67, 0x83, 0x05, 0x37, 0xdc, 0x1b, 0x2c, 0x38, 0xe2, 0x5e, 0xc3, 0xe7, 0x4a, 0x1b, 0x2c, 0x8d, 0xe3, 0x5e, 0xc3, 0x9f, 0x4b, 0x83, 0xc3, 0x1b, 0x84, 0x7e, 0xc9, 0x06, 0x25, 0xe2, 0xfb, 0x06, 0x8d, 0xef, 0x64, 0x55, 0xb3, 0x06, 0x0d, 0x90, 0x62, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x34, 0x40, 0x8a, 0xd5, 0x00, 0x7c, 0x9e, 0x95, 0xd1, 0x81, 0xb4, 0x85, 0xc1, 0x81, 0xbc, 0x99, 0x81, 0xd0, 0xbd, 0xb5, 0x95, 0xcd, 0x81, 0xa4, 0x99, 0x81, 0x94, 0xe1, 0xa5, 0xcd, 0xd1, 0xcd, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0xe6, 0x73, 0xb2, 0x36, 0xfc, 0x45, 0xb3, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0xd9, 0x84, 0x79, 0xb0, 0x9e, 0x23, 0x7b, 0x83, 0x20, 0x3d, 0xdd, 0x60, 0x7d, 0xdc, 0xe0, 0x1a, 0xac, 0x77, 0x67, 0x3e, 0x28, 0x28, 0x32, 0xd7, 0xa0, 0x0d, 0xcf, 0xa9, 0x83, 0x82, 0x22, 0x73, 0x0d, 0x1a, 0xf5, 0x9d, 0xda, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0xef, 0xb6, 0xb0, 0x3c, 0xb1, 0x32, 0x90, 0xb1, 0xb7, 0x3a, 0x36, 0x32, 0x10, 0xb1, 0x32, 0x90, 0xb6, 0x37, 0xb9, 0x32, 0x90, 0xb0, 0xb3, 0x33, 0xb9, 0xb2, 0xb9, 0xb9, 0x34, 0xbb, 0xb2, 0x83, 0x82, 0x22, 0x73, 0x0d, 0x9a, 0x8f, 0x98, 0xda, 0xe0, 0x18, 0x6e, 0xb0, 0xe1, 0x6d, 0x9d, 0xc1, 0xe3, 0xc1, 0xe5, 0xc1, 0xe3, 0x83, 0xf5, 0x71, 0x83, 0xad, 0x80, 0xef, 0x96, 0x36, 0x56, 0x6e, 0x50, 0x28, 0x77, 0xae, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0xb4, 0x41, 0xe3, 0xf3, 0x51, 0x07, 0x61, 0x3a, 0xb6, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0xb3, 0x3a, 0xf2, 0xf0, 0xc1, 0x6a, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x34, 0x7a, 0x9c, 0xd5, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0xf1, 0xf9, 0xa8, 0x36, 0xbc, 0x65, 0xb7, 0x86, 0x27, 0xee, 0x36, 0x3c, 0x8b, 0x77, 0xd0, 0x3e, 0xbd, 0xc0, 0x41, 0x78, 0xaa, 0x1e, 0x4e, 0xb1, 0xd6, 0xa0, 0xe5, 0x75, 0xac, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x96, 0xd7, 0xb1, 0x1a, 0x00, 0x8f, 0xc6, 0xd0, 0xca, 0xc6, 0xd6, 0x40, 0xee, 0xca, 0x40, 0xd0, 0xc2, 0xec, 0xca, 0x40, 0xe8, 0xd0, 0xca, 0x40, 0xca, 0xf0, 0xe0, 0xca, 0xc6, 0xe8, 0xca, 0xc8, 0x40, 0xdc, 0xea, 0xda, 0xc4, 0xca, 0xe4, 0x40, 0xde, 0xcc, 0x40, 0xc2, 0xe4, 0xda, 0xe6, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0x2d, 0x89, 0x5c, 0x1d, 0xac, 0x35, 0xed, 0xde, 0xa0, 0xb5, 0x9f, 0xac, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x68, 0xd6, 0x20, 0x6b, 0x83, 0xb6, 0x0b, 0xb2, 0x36, 0x28, 0x48, 0x63, 0x07, 0x0f, 0xd7, 0xa0, 0x20, 0x8d, 0xdd, 0x20, 0xad, 0x26, 0x69, 0x0d, 0xca, 0x92, 0xf7, 0x35, 0x28, 0x56, 0x05, 0xda, 0xa0, 0x6c, 0xaa, 0x5f, 0xc3, 0xdb, 0x3a, 0x83, 0xd7, 0x07, 0xcd, 0x1a, 0x64, 0xb5, 0x41, 0x41, 0x1a, 0x3b, 0xe0, 0xa1, 0x85, 0xd9, 0x6b, 0x50, 0x96, 0xbc, 0x6f, 0xd0, 0x74, 0x7c, 0xd6, 0x06, 0x65, 0x53, 0xfd, 0x06, 0x6d, 0xbb, 0x63, 0xb5, 0xe1, 0x2d, 0xbb, 0x35, 0x28, 0x48, 0x63, 0x07, 0xfc, 0x32, 0x3c, 0x38, 0x7a, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x98, 0x31, 0x78, 0x83, 0x44, 0xb8, 0xe0, 0x0d, 0x92, 0xca, 0x92, 0xda, 0xa0, 0x20, 0x8d, 0x1d, 0xf0, 0xd1, 0xc2, 0xec, 0xe8, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x62, 0xc6, 0xe0, 0x0d, 0x12, 0xe1, 0x82, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0xed, 0xdd, 0x67, 0xd5, 0x86, 0x27, 0xee, 0x36, 0x3c, 0x8b, 0x37, 0xf8, 0x38, 0xf8, 0x3b, 0xb8, 0x3c, 0x78, 0x39, 0x68, 0x1b, 0xdc, 0x1d, 0xbc, 0x1e, 0xbc, 0x1d, 0x5c, 0x1c, 0xbc, 0x1c, 0x5c, 0x1e, 0xb4, 0x0d, 0xfe, 0x0e, 0x6e, 0x0e, 0xda, 0x06, 0x0f, 0x07, 0x97, 0x07, 0x6f, 0x07, 0x9f, 0x07, 0x75, 0x83, 0x97, 0x83, 0xe3, 0x83, 0xc3, 0x83, 0xf6, 0x65, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xc6, 0xfd, 0xb3, 0x6a, 0x50, 0x37, 0x38, 0x3a, 0x78, 0x38, 0xb8, 0x3d, 0x68, 0x5f, 0x36, 0xfc, 0xe2, 0xb2, 0x86, 0xb7, 0x75, 0x36, 0x68, 0xae, 0x40, 0xab, 0xda, 0xf0, 0x96, 0xdd, 0x1a, 0x14, 0xa4, 0xb1, 0x03, 0xbc, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0xe7, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0x2c, 0x02, 0x19, 0xdd, 0xa0, 0x6c, 0x7a, 0x5f, 0xc3, 0xbb, 0x3d, 0x6b, 0x50, 0x96, 0xbc, 0x6f, 0x90, 0xc4, 0x0e, 0xb5, 0x41, 0xd9, 0xf4, 0xbe, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0xc7, 0x81, 0x8f, 0x83, 0xc6, 0xe5, 0xb3, 0x5a, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0xe3, 0xc0, 0xc7, 0x41, 0xbb, 0xfa, 0x59, 0xb5, 0xe1, 0x89, 0xbb, 0x0d, 0xcf, 0xe2, 0x0d, 0xde, 0x0e, 0x9e, 0x0e, 0x3e, 0x0f, 0x3e, 0x0f, 0x9e, 0x0e, 0xee, 0x0e, 0x7e, 0x0e, 0xea, 0x96, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0x0a, 0x35, 0xa4, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x5b, 0x24, 0x5a, 0x55, 0x1b, 0xde, 0xb2, 0x5b, 0x83, 0x82, 0x34, 0x76, 0x80, 0xa7, 0x0c, 0x8f, 0x4e, 0x2e, 0x5c, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x45, 0x20, 0xa3, 0x1b, 0x94, 0x4d, 0xef, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x92, 0xd8, 0xa1, 0x36, 0x28, 0x9b, 0xde, 0x0f, 0x1a, 0x87, 0xd1, 0x3a, 0x68, 0xb5, 0x45, 0xab, 0x0d, 0x4f, 0xdc, 0x6d, 0x78, 0x16, 0x6f, 0xf0, 0x72, 0x70, 0x7c, 0x70, 0x7a, 0x70, 0x79, 0xf0, 0x70, 0x50, 0xb7, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0x56, 0xa8, 0x21, 0xad, 0xe1, 0x6d, 0x9d, 0x0d, 0x1a, 0x02, 0xd2, 0xaa, 0xda, 0xf0, 0x96, 0xdd, 0x1a, 0x14, 0xa4, 0xb1, 0x1b, 0x34, 0x0e, 0x21, 0xb0, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x8b, 0x40, 0x46, 0x0f, 0x9a, 0x40, 0xd2, 0xda, 0xf0, 0xc4, 0xdd, 0x86, 0x67, 0xf1, 0x06, 0x47, 0x07, 0x0f, 0x07, 0xb7, 0x07, 0x2f, 0x07, 0x75, 0xcb, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x85, 0x1a, 0xd2, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0x71, 0x08, 0x81, 0xaa, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x5a, 0x04, 0xce, 0x6a, 0x83, 0xb6, 0x0b, 0xb2, 0xd6, 0xf0, 0x6f, 0xce, 0x06, 0x49, 0x65, 0x49, 0x07, 0x8d, 0x27, 0x68, 0x75, 0x78, 0x5a, 0x67, 0x35, 0x68, 0xbd, 0x12, 0x6b, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xa0, 0xf5, 0x4a, 0xac, 0x06, 0xc0, 0xb3, 0x31, 0xb4, 0xb2, 0xb1, 0x35, 0x90, 0xbb, 0x32, 0x10, 0xb4, 0x30, 0xbb, 0x32, 0x10, 0x3a, 0xb4, 0x32, 0x90, 0x32, 0x3c, 0xb8, 0xb2, 0x31, 0xba, 0x32, 0x32, 0x10, 0xb7, 0xba, 0x36, 0xb1, 0x32, 0x39, 0x90, 0x37, 0x33, 0x90, 0x31, 0xb4, 0x30, 0x38, 0xba, 0x32, 0xb9, 0xb9, 0x0d, 0xbf, 0x28, 0x6d, 0xd0, 0x7c, 0x4e, 0xd6, 0x86, 0xaf, 0x70, 0x36, 0xfc, 0x45, 0xb3, 0x41, 0xe3, 0x3b, 0x59, 0x1b, 0x04, 0xe9, 0xe9, 0x06, 0xeb, 0xe3, 0x06, 0xd7, 0x60, 0xbd, 0x3b, 0xf3, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x85, 0x4c, 0x6b, 0x83, 0x45, 0x70, 0x83, 0x07, 0xe9, 0x29, 0x50, 0x6b, 0xd0, 0x86, 0xe7, 0xd4, 0x41, 0x3b, 0x84, 0x5a, 0x6b, 0xd0, 0x7c, 0xc4, 0xd4, 0x86, 0xb7, 0xec, 0xd6, 0xf0, 0xc4, 0xdd, 0x86, 0x67, 0xf1, 0x0e, 0x1a, 0x68, 0x0d, 0xd9, 0xf0, 0x6e, 0xcf, 0x06, 0xad, 0x90, 0x69, 0x6d, 0xb0, 0x08, 0x6e, 0x70, 0x0d, 0xff, 0xe6, 0xac, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0xd3, 0xf1, 0x59, 0x1b, 0x94, 0x4d, 0xf5, 0x07, 0xad, 0xf2, 0x62, 0x6d, 0x50, 0x96, 0xbc, 0x6f, 0xd0, 0x74, 0x7c, 0xd6, 0x06, 0x65, 0x53, 0xfd, 0x06, 0xad, 0xf3, 0x66, 0xd5, 0x1a, 0x34, 0xea, 0x3b, 0xb5, 0x41, 0x41, 0x1a, 0x3b, 0xe0, 0xd1, 0xe5, 0xcd, 0x6b, 0x50, 0x96, 0xbc, 0x6f, 0xb0, 0x08, 0x64, 0x74, 0x83, 0xb2, 0xe9, 0x7d, 0x0d, 0x6f, 0xeb, 0x0c, 0x0e, 0x1f, 0xac, 0x8f, 0x1b, 0x6c, 0xc3, 0x57, 0x38, 0x1b, 0xfe, 0xa2, 0xd9, 0xa0, 0xf1, 0x9d, 0xac, 0x0d, 0x4a, 0x78, 0xcc, 0x35, 0x68, 0xc7, 0x53, 0xab, 0x0d, 0x16, 0xc1, 0x0d, 0x6e, 0x50, 0x90, 0xc6, 0x0e, 0x1e, 0xae, 0xe1, 0x92, 0xda, 0xe0, 0xb0, 0xdf, 0xb1, 0x06, 0xeb, 0xe3, 0x06, 0x37, 0xbc, 0xad, 0x33, 0x78, 0x7a, 0xd0, 0x34, 0xaa, 0x56, 0x1b, 0x14, 0xa4, 0xb1, 0x83, 0x8b, 0x6b, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xd0, 0x34, 0xaa, 0xd6, 0x86, 0xb7, 0x75, 0x06, 0xa7, 0x0f, 0x9a, 0x46, 0xd5, 0xea, 0x60, 0x11, 0xdc, 0x60, 0xab, 0x41, 0xa3, 0xf2, 0x58, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0x8d, 0xca, 0x63, 0x35, 0x80, 0xff, 0x59, 0x19, 0x1d, 0x48, 0x98, 0x5c, 0xdb, 0x1c, 0x48, 0x9a, 0x1b, 0x08, 0xdd, 0x5b, 0x5b, 0xd9, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0xda, 0x60, 0xb5, 0x06, 0xe9, 0x41, 0x7b, 0xa5, 0x59, 0x07, 0x6d, 0x11, 0x65, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0xc6, 0x82, 0xb2, 0x36, 0x28, 0x3a, 0x8d, 0x37, 0x38, 0x64, 0x10, 0x6c, 0xb0, 0x1e, 0x79, 0x7e, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0xf0, 0x60, 0x71, 0x1d, 0xf4, 0x86, 0xb7, 0xec, 0xd6, 0xf0, 0xc4, 0xdd, 0x86, 0x67, 0xf1, 0x06, 0xaf, 0x07, 0x77, 0x07, 0x2f, 0x07, 0xc7, 0x07, 0x87, 0x07, 0x1f, 0x07, 0xa7, 0x07, 0x2f, 0x07, 0x27, 0x07, 0x6d, 0x83, 0x8f, 0x83, 0xa3, 0x83, 0x87, 0x83, 0xc3, 0x83, 0xd3, 0x83, 0x97, 0x83, 0xcb, 0x07, 0xed, 0x8e, 0x65, 0x6d, 0x78, 0x50, 0x72, 0x83, 0xd3, 0x91, 0xc8, 0x41, 0x83, 0x69, 0x59, 0xb3, 0x06, 0x2d, 0x6f, 0x62, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xb4, 0xbc, 0x89, 0xd5, 0x00, 0x78, 0x31, 0x86, 0x56, 0x36, 0xb6, 0x06, 0x42, 0x87, 0x16, 0x46, 0x07, 0x72, 0x57, 0x76, 0x22, 0x57, 0x06, 0xc2, 0xf6, 0xf6, 0xb6, 0x96, 0xe6, 0x76, 0x06, 0x62, 0xf6, 0x26, 0x07, 0x12, 0x06, 0x32, 0xf6, 0x26, 0x57, 0xb6, 0xe1, 0x17, 0xa5, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0xb2, 0x7d, 0xc1, 0x83, 0x65, 0x33, 0xce, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0x17, 0xcd, 0x06, 0x8d, 0xef, 0x64, 0x6d, 0x70, 0x72, 0x90, 0xdb, 0x60, 0x7d, 0xdc, 0xe0, 0x1a, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0xac, 0x8f, 0x1b, 0xdc, 0x70, 0x49, 0x6d, 0xd0, 0x48, 0xb0, 0xd4, 0x41, 0x5b, 0x71, 0x59, 0x6d, 0xd0, 0xc8, 0xa0, 0xd6, 0x1a, 0xac, 0x17, 0x69, 0xde, 0xf0, 0x6e, 0xcf, 0x06, 0xad, 0x90, 0x69, 0x6d, 0xb0, 0xc4, 0x7e, 0xfb, 0x20, 0xd5, 0x16, 0x6e, 0x0d, 0x1a, 0x58, 0x9c, 0x3a, 0x68, 0x04, 0x60, 0x6b, 0x0d, 0xda, 0xf0, 0x9c, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0xad, 0x90, 0x69, 0x6d, 0xb0, 0x08, 0x6e, 0x70, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x92, 0xda, 0xa0, 0x31, 0x5a, 0xa9, 0x35, 0x68, 0x60, 0x64, 0xea, 0xa0, 0x41, 0x51, 0xad, 0x36, 0x28, 0x72, 0x5a, 0x0f, 0x1a, 0x73, 0x90, 0x6a, 0x0d, 0x9a, 0x8f, 0x98, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0xad, 0x90, 0x69, 0xad, 0xe1, 0x92, 0xda, 0x60, 0x7d, 0xdc, 0xe0, 0x41, 0xc3, 0x02, 0x58, 0x07, 0xe9, 0x29, 0x50, 0x6b, 0xd0, 0xa8, 0xef, 0xd4, 0x06, 0x05, 0x69, 0xec, 0x06, 0xed, 0x78, 0x6a, 0x6d, 0xd0, 0xd6, 0xa7, 0xd6, 0x06, 0x85, 0xa1, 0xea, 0x06, 0x2d, 0x7b, 0x71, 0x6c, 0xf8, 0x0a, 0x67, 0xc3, 0x5f, 0x34, 0x1b, 0xb4, 0x30, 0x99, 0xb5, 0x41, 0x09, 0x8f, 0xb9, 0x41, 0xd3, 0xa8, 0x5a, 0x1b, 0x14, 0x14, 0x99, 0x1b, 0x14, 0xa4, 0xb1, 0x83, 0x87, 0x1b, 0xb4, 0xca, 0xaa, 0xb5, 0x41, 0x41, 0x1a, 0x3b, 0xb8, 0xb8, 0x41, 0x9b, 0xb3, 0x5a, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0x84, 0xc7, 0x75, 0x78, 0xe8, 0xa7, 0xc3, 0x29, 0x56, 0x87, 0x53, 0x6c, 0x35, 0x68, 0xa8, 0x19, 0x6b, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xfc, 0x83, 0x93, 0x7b, 0x23, 0xab, 0x1b, 0x2b, 0x03, 0x61, 0x0b, 0xd3, 0xcb, 0x03, 0x19, 0x7b, 0x93, 0x2b, 0x03, 0x39, 0x2b, 0x73, 0x2b, 0x93, 0x0b, 0xa3, 0x7b, 0x93, 0x03, 0x31, 0x7b, 0x93, 0x03, 0x99, 0xa3, 0x0b, 0xa3, 0x4b, 0x1b, 0x03, 0x29, 0xc3, 0x2b, 0x1b, 0xab, 0xa3, 0x4b, 0x7b, 0x73, 0xdb, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0x3a, 0x68, 0x59, 0x11, 0x6b, 0x83, 0xe5, 0x90, 0x4c, 0xb3, 0xe1, 0x2f, 0x9a, 0x0d, 0xd6, 0x60, 0x63, 0x6f, 0xf8, 0xc4, 0x66, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0xee, 0xa0, 0x71, 0x6d, 0x91, 0x0d, 0x16, 0x60, 0x36, 0xad, 0xe1, 0xfb, 0xf6, 0x01, 0x8f, 0x2e, 0x8c, 0xdd, 0xa0, 0x84, 0x8e, 0x5d, 0x83, 0xd0, 0x2f, 0xd9, 0xa0, 0x44, 0xac, 0xdf, 0xa0, 0xcc, 0xd2, 0x3d, 0x58, 0x5e, 0xe1, 0x7c, 0x10, 0xa6, 0x63, 0x6b, 0xb0, 0xa4, 0x3a, 0x69, 0x83, 0x82, 0x22, 0x73, 0x83, 0x73, 0xfe, 0xd2, 0x1a, 0xde, 0xb8, 0x3b, 0x58, 0xeb, 0xd4, 0xbd, 0xe1, 0x31, 0x99, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0xcf, 0xa5, 0x01, 0x2f, 0x0c, 0xaf, 0x3c, 0x28, 0xb3, 0x74, 0x37, 0xfc, 0x45, 0xb3, 0xc1, 0x72, 0x56, 0xec, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x0e, 0x19, 0x04, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x0a, 0x37, 0xd1, 0x0d, 0xca, 0xa6, 0xfa, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x53, 0x4a, 0x5b, 0xb5, 0x86, 0xb7, 0x75, 0x36, 0x68, 0x22, 0x6b, 0xab, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0x0b, 0x14, 0x52, 0x1b, 0x9c, 0x1a, 0x8e, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xad, 0x4f, 0x53, 0x1d, 0x34, 0x63, 0x22, 0xb5, 0xe1, 0x92, 0xda, 0xa0, 0xd9, 0x86, 0xac, 0x35, 0x68, 0x60, 0x64, 0x6a, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0x66, 0x34, 0xde, 0xa0, 0x81, 0xb3, 0xa9, 0x0d, 0xda, 0x2f, 0xc6, 0xda, 0xa0, 0x81, 0xb3, 0xa9, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0x91, 0x6a, 0x6b, 0xc3, 0x63, 0x32, 0x1b, 0xac, 0xcb, 0xd2, 0xed, 0xa0, 0xac, 0xf3, 0x3c, 0x68, 0x95, 0x17, 0xab, 0x0d, 0x4e, 0xec, 0x37, 0x6b, 0x50, 0x96, 0xbc, 0x6f, 0x50, 0xee, 0xbc, 0x6f, 0x50, 0x36, 0xd5, 0xaf, 0x41, 0x21, 0x98, 0x7a, 0xd0, 0x1c, 0xd3, 0x56, 0x1b, 0x94, 0xf6, 0x96, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0xcb, 0x2b, 0x13, 0x37, 0x08, 0xfd, 0x92, 0x0d, 0x42, 0xca, 0x64, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0xd2, 0x9b, 0xfe, 0xa0, 0x31, 0xa7, 0xad, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x36, 0x68, 0x22, 0x6b, 0xeb, 0xf0, 0x98, 0xcc, 0x06, 0x07, 0x2c, 0xba, 0x35, 0x08, 0xd2, 0xd3, 0x0d, 0x9a, 0x56, 0xa6, 0x5a, 0x83, 0x10, 0x7c, 0xd8, 0xf0, 0xb6, 0xce, 0x06, 0x0d, 0x14, 0x6e, 0xb5, 0x06, 0xad, 0x6e, 0x53, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0xf0, 0x8e, 0xa1, 0x85, 0xc1, 0xd1, 0x95, 0xc9, 0x1d, 0x34, 0x5f, 0x4d, 0xb5, 0x06, 0x8d, 0xae, 0x53, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x1b, 0xb4, 0x2d, 0x4f, 0xb5, 0x06, 0x4d, 0x98, 0x6d, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x33, 0xd6, 0xcc, 0x06, 0xed, 0x94, 0x6d, 0x1d, 0x14, 0x94, 0xe2, 0x6b, 0xd0, 0xee, 0xe4, 0xd6, 0x86, 0x77, 0x7b, 0xd6, 0x70, 0x49, 0x6d, 0xd0, 0xf6, 0xe5, 0xd6, 0x1a, 0x34, 0x61, 0xb6, 0xb5, 0xe1, 0xdd, 0x9e, 0x0d, 0xce, 0x58, 0x33, 0x1b, 0xb4, 0x53, 0xb6, 0x75, 0x10, 0xac, 0xac, 0x1d, 0x34, 0x5f, 0x4d, 0xd5, 0x1a, 0x34, 0x0a, 0x4e, 0xb5, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0x6d, 0xd0, 0xf6, 0x39, 0xd5, 0x41, 0xeb, 0x9e, 0x5b, 0x6b, 0x70, 0x4a, 0x5b, 0xda, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0x36, 0x68, 0xfb, 0x9c, 0x6a, 0x0d, 0x9a, 0x30, 0xdb, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x67, 0xac, 0x99, 0x0d, 0xda, 0x29, 0xdb, 0x3a, 0x38, 0x2d, 0xd0, 0xac, 0x41, 0xbb, 0x93, 0x5b, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x06, 0x6d, 0xcb, 0x53, 0xad, 0x41, 0x13, 0x66, 0x5b, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0x8c, 0x35, 0xb3, 0x41, 0x3b, 0x65, 0x5b, 0x07, 0x87, 0xe5, 0x99, 0x83, 0x16, 0x48, 0xb7, 0x6a, 0x99, 0x35, 0x68, 0xfd, 0x72, 0x6b, 0xc3, 0x2f, 0x4a, 0x1b, 0x34, 0x5a, 0x9e, 0xb5, 0xe1, 0xeb, 0x97, 0x0d, 0x1a, 0x97, 0xdc, 0xda, 0x20, 0x48, 0x4f, 0x37, 0x68, 0xd9, 0xe5, 0x6a, 0x83, 0xe6, 0x23, 0xb7, 0xd6, 0xa0, 0xd5, 0x6d, 0xaa, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x17, 0x97, 0x0d, 0xda, 0x29, 0xdb, 0x3a, 0x68, 0xe0, 0xea, 0x6a, 0x83, 0xc6, 0x25, 0xb7, 0x5a, 0x83, 0x46, 0xd7, 0xa9, 0x36, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x0d, 0x1a, 0x10, 0xba, 0xda, 0xa0, 0x7d, 0xcf, 0xad, 0x35, 0x68, 0x77, 0x72, 0x6b, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x56, 0x52, 0xb7, 0x0e, 0x1a, 0xb8, 0xba, 0x3a, 0x68, 0x76, 0x7a, 0xab, 0x35, 0x68, 0x14, 0x9c, 0x6a, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0xdb, 0xa0, 0x61, 0xa5, 0xab, 0x83, 0x46, 0xb1, 0xb7, 0xd6, 0xe0, 0x94, 0xb6, 0xb4, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0x6d, 0xd0, 0xb0, 0xd2, 0xd5, 0x06, 0x0d, 0xdb, 0x6e, 0xad, 0x41, 0xbb, 0x93, 0x5b, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x06, 0x0d, 0x08, 0x5d, 0x6d, 0xd0, 0xea, 0xef, 0xd6, 0x41, 0xc3, 0xd9, 0x5b, 0x75, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x5b, 0x83, 0x86, 0x95, 0x48, 0x36, 0x3c, 0x3e, 0xb2, 0x41, 0xc3, 0x4a, 0x24, 0x1b, 0x7e, 0x51, 0xda, 0xa0, 0x4d, 0x06, 0xaa, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x0d, 0x56, 0xd1, 0xde, 0x6f, 0x50, 0x08, 0xa6, 0x6e, 0x10, 0xfa, 0x25, 0x1b, 0x94, 0x88, 0xef, 0x6b, 0xf8, 0x5c, 0xe9, 0xa0, 0xf1, 0xe5, 0xaa, 0x36, 0x3c, 0x28, 0xb9, 0x41, 0xcb, 0x20, 0x55, 0x1b, 0x94, 0x2c, 0xec, 0xb3, 0xcc, 0x1a, 0x34, 0x1b, 0x52, 0xb5, 0xe1, 0x2f, 0x9a, 0x0d, 0x96, 0xcd, 0x38, 0x6f, 0x78, 0xcb, 0x6e, 0x0d, 0x4f, 0xdc, 0x6d, 0x78, 0x16, 0xef, 0xa0, 0x81, 0xd5, 0x91, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0x57, 0xb2, 0x0d, 0x5a, 0x28, 0xbc, 0x5a, 0xc3, 0xbf, 0x39, 0x1b, 0x2c, 0xb1, 0xdf, 0x3e, 0x58, 0x9e, 0x81, 0xdc, 0x06, 0x6d, 0x7d, 0x5f, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0x6c, 0xd0, 0xd6, 0xf7, 0xc5, 0xc1, 0xf2, 0x0c, 0xe4, 0x0d, 0x1a, 0x38, 0x9b, 0xda, 0x20, 0x48, 0x4f, 0x37, 0x68, 0x60, 0x64, 0x6a, 0x0d, 0x1a, 0x58, 0x9c, 0xda, 0xe0, 0xe4, 0x20, 0xb7, 0xc1, 0xba, 0x0b, 0xe4, 0x0d, 0x1a, 0xe0, 0xa9, 0x5a, 0x83, 0x06, 0x16, 0xa7, 0x36, 0x28, 0x06, 0x64, 0x37, 0x68, 0xff, 0x72, 0x6a, 0x0d, 0x8a, 0x01, 0xd9, 0x0d, 0x9a, 0x6f, 0xac, 0x5a, 0xc3, 0x07, 0x39, 0x1b, 0x34, 0x38, 0x59, 0xb5, 0x41, 0x5b, 0xdf, 0x17, 0x07, 0x0d, 0x9c, 0x4d, 0x1d, 0xb4, 0xf5, 0x7d, 0xb1, 0x41, 0x31, 0x20, 0xbb, 0x41, 0xf3, 0x8d, 0x55, 0x1b, 0x34, 0x70, 0x36, 0x75, 0xd0, 0xd6, 0xf7, 0xc5, 0x1a, 0xb4, 0xe1, 0x39, 0x75, 0xd0, 0xc0, 0xd9, 0x54, 0x6b, 0xd0, 0x86, 0xe7, 0xd4, 0x06, 0x27, 0x07, 0xb9, 0x0d, 0xd6, 0x5d, 0x20, 0x6f, 0xd0, 0x00, 0x4f, 0xd5, 0x1a, 0x34, 0xb0, 0x38, 0x75, 0xd0, 0xc0, 0xd9, 0xd4, 0x1a, 0xb4, 0xe1, 0x39, 0xb5, 0x41, 0xb1, 0xa3, 0xb9, 0x86, 0x77, 0x7b, 0xd6, 0x70, 0x49, 0x6d, 0xd0, 0x18, 0xad, 0xd4, 0x1a, 0x34, 0x30, 0x32, 0x75, 0xd0, 0xba, 0x68, 0x55, 0x1b, 0x14, 0xb0, 0xf9, 0x07, 0x8d, 0xa5, 0x4e, 0x6d, 0xd0, 0xc0, 0xd9, 0xd4, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0xc1, 0xea, 0xd2, 0xe6, 0x0d, 0xda, 0x9a, 0x9c, 0x3a, 0x68, 0xab, 0xb4, 0xaa, 0x35, 0x68, 0x3e, 0x62, 0x6a, 0xc3, 0x07, 0x39, 0x6b, 0x50, 0x4c, 0x62, 0xae, 0x41, 0xb0, 0x99, 0x6e, 0xd0, 0xc0, 0xe2, 0xd4, 0x06, 0x6d, 0x78, 0x4e, 0x75, 0xb0, 0xee, 0x02, 0x79, 0x83, 0x06, 0xce, 0xa6, 0x0e, 0x1a, 0xe0, 0xa9, 0x5a, 0x83, 0x96, 0x61, 0xa7, 0x36, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0xcc, 0x7d, 0x1b, 0xb4, 0x35, 0x39, 0xb5, 0x41, 0x4b, 0x53, 0x55, 0xad, 0x41, 0xa3, 0xbe, 0x53, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x99, 0x83, 0xa9, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x89, 0x54, 0xbd, 0x41, 0x1b, 0x4a, 0x55, 0x1b, 0x34, 0xd4, 0x54, 0x55, 0x6b, 0xd0, 0x46, 0xf2, 0xd4, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x0b, 0x95, 0xea, 0xa0, 0x25, 0x28, 0xae, 0x35, 0x68, 0x52, 0x7a, 0x6a, 0xc3, 0xbb, 0x79, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x8e, 0xd6, 0x1a, 0x1b, 0x94, 0x4d, 0xef, 0x07, 0xcb, 0xf0, 0xf3, 0x0f, 0x5a, 0x7f, 0xbf, 0xda, 0x70, 0x49, 0x6d, 0xd0, 0x68, 0x48, 0xd5, 0x06, 0xcd, 0xcd, 0x55, 0xad, 0xc1, 0x1a, 0xfd, 0xfc, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0xd9, 0x82, 0x7a, 0xd0, 0xd2, 0x18, 0xd7, 0x41, 0xeb, 0xef, 0x57, 0xad, 0xc1, 0x7a, 0x77, 0xe6, 0x0d, 0x97, 0xd4, 0x06, 0x8d, 0x86, 0x54, 0x6d, 0xd0, 0xdc, 0x5c, 0x55, 0x6b, 0xb0, 0x5e, 0xa4, 0xf9, 0xa0, 0xad, 0xef, 0x8b, 0x56, 0x83, 0xd6, 0x79, 0xaa, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0xb2, 0x19, 0xe7, 0x0d, 0x4e, 0x0e, 0x72, 0x1b, 0xac, 0xbb, 0x40, 0xde, 0x20, 0x3c, 0x55, 0xd7, 0xa0, 0xf9, 0x88, 0xa9, 0x83, 0x06, 0xce, 0xa6, 0xd6, 0xa0, 0x65, 0xd8, 0xa9, 0x83, 0xf6, 0x8e, 0xb0, 0xd6, 0xa0, 0x51, 0xdf, 0xa9, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x0d, 0xd6, 0x7b, 0xea, 0x1d, 0x34, 0x4c, 0x85, 0xb5, 0xe1, 0x2b, 0x9c, 0x0d, 0x7f, 0xd1, 0x6c, 0xb0, 0x6c, 0xc6, 0x79, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x95, 0x0f, 0x7b, 0x1b, 0x34, 0x70, 0x36, 0xb5, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0xc1, 0xca, 0x87, 0xbd, 0x0d, 0x6f, 0xeb, 0x0c, 0x4e, 0x1f, 0xac, 0x7c, 0xd8, 0x5b, 0x83, 0x06, 0x46, 0xa6, 0x36, 0x5c, 0x52, 0x1b, 0x34, 0x1a, 0x52, 0xb5, 0x06, 0xeb, 0x2e, 0x90, 0x37, 0xbc, 0xad, 0x33, 0x78, 0x7a, 0xb0, 0xf2, 0x61, 0xaf, 0xd6, 0xa0, 0x8d, 0xe4, 0xa9, 0x83, 0xf6, 0x8e, 0xb0, 0xd6, 0xa0, 0x49, 0xe9, 0xa9, 0x83, 0xf6, 0x8e, 0xb0, 0x3a, 0x9c, 0x62, 0x1d, 0x4e, 0xb1, 0xd5, 0x20, 0x39, 0x17, 0x76, 0xc3, 0x2f, 0x4a, 0x1b, 0xb4, 0xc9, 0x40, 0xb5, 0xe1, 0x11, 0xd6, 0x0d, 0xda, 0x83, 0xa0, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0x59, 0x41, 0x75, 0xd0, 0x1a, 0x4c, 0x55, 0xb3, 0x80, 0x4f, 0x57, 0xe6, 0x46, 0x6e, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x6d, 0xb0, 0xb4, 0xaf, 0xf4, 0x60, 0xf1, 0x59, 0xf3, 0x86, 0xbf, 0x68, 0x36, 0x58, 0xd2, 0xe7, 0xbc, 0x41, 0x09, 0x8f, 0xb9, 0x06, 0x4b, 0xfb, 0x4a, 0xdb, 0xf0, 0x98, 0xcc, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x63, 0xcd, 0xac, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0x41, 0x3b, 0xae, 0x5c, 0x1b, 0xde, 0xd6, 0x19, 0x9c, 0x3e, 0x68, 0xc7, 0x95, 0xab, 0x35, 0x28, 0xe1, 0x31, 0x17, 0x3c, 0x3d, 0x68, 0xc7, 0x95, 0x6b, 0xc3, 0x63, 0x32, 0x1b, 0xde, 0xd6, 0x19, 0xbc, 0x3e, 0x68, 0x0c, 0x97, 0xab, 0xc3, 0x29, 0xb6, 0x06, 0x0d, 0xa8, 0x2f, 0x6d, 0x70, 0x1e, 0xec, 0x38, 0x68, 0xa9, 0x4d, 0xea, 0x70, 0x8a, 0xad, 0x41, 0x93, 0x6c, 0x24, 0x1b, 0x1e, 0x1f, 0xd9, 0xa0, 0x49, 0x36, 0x92, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0x8d, 0xbd, 0x9d, 0x07, 0xeb, 0xb5, 0x9e, 0x0f, 0xda, 0x9f, 0x90, 0xda, 0xf0, 0x17, 0xcd, 0x06, 0xcb, 0x66, 0x9c, 0x37, 0xfc, 0xe2, 0xb2, 0x41, 0xa3, 0x40, 0x1c, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xbb, 0xc7, 0x5c, 0x6d, 0x50, 0x50, 0x64, 0x1e, 0xb4, 0x74, 0x22, 0x75, 0x50, 0x96, 0x79, 0x1e, 0x94, 0x75, 0x9e, 0x07, 0xcd, 0x6a, 0x50, 0xad, 0x06, 0x2d, 0xe9, 0x57, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0x01, 0x8f, 0xed, 0x0d, 0xde, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0xbd, 0xe9, 0x37, 0x58, 0xc6, 0x5e, 0xbe, 0xc1, 0x32, 0xf6, 0xf2, 0x36, 0x68, 0xa0, 0x97, 0xea, 0xa0, 0x11, 0xd8, 0xaa, 0x0d, 0x7f, 0xd1, 0x6c, 0xd0, 0x7c, 0x72, 0xd5, 0x86, 0x0f, 0x72, 0xd6, 0xa0, 0x98, 0xc4, 0xdc, 0x20, 0x60, 0x83, 0x36, 0x0e, 0x0d, 0x1e, 0x0f, 0x0e, 0x6f, 0xd0, 0x24, 0x37, 0x57, 0x6b, 0x50, 0xf0, 0x61, 0xae, 0x41, 0x31, 0x89, 0xb9, 0x41, 0xc0, 0x06, 0x6d, 0x1c, 0x1a, 0x3c, 0x1e, 0x3c, 0x3e, 0x68, 0x4b, 0x9d, 0x6b, 0xc3, 0x57, 0x38, 0x1b, 0xfe, 0xa2, 0xd9, 0xa0, 0xf9, 0xe4, 0xaa, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0xd6, 0x76, 0xc2, 0xaf, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0xad, 0x33, 0x38, 0x7c, 0xd0, 0x56, 0x3a, 0xd7, 0x1a, 0xde, 0xd6, 0x19, 0x1c, 0x3e, 0x68, 0xe4, 0x9d, 0xab, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x01, 0x4f, 0x2f, 0x8d, 0xdd, 0xf0, 0x6e, 0xcf, 0x06, 0x4d, 0xc1, 0x4a, 0x6d, 0xb0, 0xc4, 0x7e, 0x7b, 0x83, 0x06, 0x9c, 0xa6, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf1, 0xe0, 0xe9, 0xc1, 0xda, 0x4e, 0xf8, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x36, 0x58, 0xbd, 0x7f, 0xb9, 0x41, 0x61, 0xa8, 0xba, 0x86, 0xcf, 0x5d, 0x06, 0x87, 0x37, 0xbc, 0xdb, 0xb3, 0x86, 0x4b, 0x6a, 0x83, 0x76, 0x95, 0xa5, 0xd6, 0xa0, 0x81, 0x91, 0xa9, 0x83, 0x26, 0xee, 0xb9, 0x5a, 0xc3, 0xdb, 0x3a, 0x83, 0xc3, 0x07, 0xed, 0x11, 0x74, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0x0d, 0x9a, 0xee, 0xe7, 0xaa, 0x0d, 0x9f, 0xbb, 0x0c, 0x1e, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0x97, 0xd4, 0x06, 0xed, 0x2a, 0x4b, 0xad, 0x41, 0x03, 0x23, 0x53, 0x07, 0x2d, 0xe6, 0x73, 0xb5, 0x41, 0x73, 0x10, 0x5d, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xf8, 0xa0, 0x21, 0x8a, 0xae, 0x36, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x6f, 0xce, 0x1a, 0xde, 0xd6, 0x19, 0x1c, 0x1e, 0x1c, 0x3e, 0x58, 0xf9, 0x87, 0xb9, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0xc1, 0xe3, 0x83, 0x95, 0x7f, 0x98, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0xac, 0xed, 0x84, 0xdf, 0xf0, 0xb6, 0xce, 0xe0, 0xf4, 0xc1, 0xda, 0x4e, 0xf8, 0x35, 0x68, 0xfd, 0x9e, 0x6b, 0xc3, 0xdb, 0x3a, 0x83, 0xc7, 0x07, 0x8d, 0x8b, 0x74, 0xad, 0x41, 0x63, 0xfa, 0x5c, 0x1b, 0xde, 0xd6, 0x19, 0x3c, 0x3e, 0x68, 0xb8, 0xa4, 0xab, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0x28, 0x26, 0x31, 0x37, 0x08, 0x23, 0xa0, 0x83, 0x36, 0xdd, 0xb9, 0x36, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x6f, 0xce, 0x06, 0x4d, 0xdc, 0x73, 0x1d, 0xb4, 0x98, 0xcf, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0xb2, 0x41, 0x8b, 0xf2, 0x52, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0xc3, 0x1b, 0x94, 0x25, 0xef, 0x1b, 0x2c, 0x02, 0x19, 0xdd, 0xa0, 0x6c, 0x7a, 0x5f, 0xc3, 0xdb, 0x3a, 0x83, 0xc7, 0x07, 0x6d, 0xa5, 0x73, 0xb5, 0x86, 0xcf, 0x5d, 0x06, 0x8f, 0x37, 0x28, 0x4b, 0xde, 0x37, 0x58, 0x04, 0x32, 0xba, 0x41, 0xd9, 0xf4, 0xbe, 0x86, 0xb7, 0x75, 0x06, 0x8f, 0x0f, 0x1a, 0x79, 0xe7, 0xaa, 0x0d, 0x8e, 0x36, 0x7c, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0x90, 0xa2, 0xd4, 0x41, 0xf3, 0xc5, 0x55, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x97, 0xd4, 0x06, 0x6d, 0x2c, 0x4a, 0xad, 0x41, 0xe3, 0x5a, 0x52, 0x07, 0x05, 0x6c, 0x7e, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xf8, 0xf0, 0xe5, 0x64, 0x6d, 0xf8, 0x0a, 0x67, 0xc3, 0x5f, 0x34, 0x6b, 0x10, 0xfa, 0x25, 0x1b, 0x94, 0xde, 0xf4, 0x1b, 0xac, 0xac, 0x21, 0xdf, 0x60, 0x65, 0x0d, 0x79, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0xac, 0xed, 0x84, 0x5f, 0xc3, 0xdb, 0x3a, 0x07, 0xcd, 0x07, 0x4c, 0x6d, 0xf8, 0xc4, 0x66, 0x83, 0xd6, 0xf9, 0xb9, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x3c, 0xb2, 0x34, 0x7c, 0x83, 0xc2, 0x50, 0x75, 0x0d, 0x9f, 0xbb, 0x0c, 0x0e, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0x96, 0x99, 0xa5, 0x36, 0x68, 0x0e, 0xa2, 0x6b, 0x83, 0xd6, 0x25, 0xba, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf0, 0x41, 0xf3, 0x01, 0x53, 0x6d, 0xf8, 0xdc, 0x65, 0xf0, 0x78, 0xc3, 0xbb, 0x3d, 0x1b, 0xb4, 0xcc, 0x2c, 0xb5, 0x41, 0x73, 0x10, 0x5d, 0x1b, 0xb4, 0xd1, 0xd1, 0xb5, 0x86, 0xb7, 0x75, 0x06, 0x8f, 0x0f, 0x9a, 0x0f, 0x98, 0x6a, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0xac, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0xc1, 0xe1, 0x0d, 0x1a, 0x3d, 0xeb, 0x6a, 0xc3, 0xdb, 0x3a, 0x83, 0xc3, 0x83, 0xc7, 0x07, 0x0d, 0xf7, 0x75, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x1b, 0xb4, 0x8c, 0xd2, 0xb5, 0x06, 0xcd, 0x07, 0x4c, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xeb, 0x0c, 0x1e, 0x1f, 0x34, 0xd4, 0xd7, 0xb5, 0x86, 0xb7, 0x75, 0x06, 0x8f, 0x0f, 0x5a, 0x02, 0xec, 0xaa, 0xd5, 0xa0, 0x71, 0x97, 0x92, 0x0d, 0x8f, 0x8f, 0x6c, 0xd0, 0xb8, 0x4b, 0xc9, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xd0, 0xde, 0xee, 0xc3, 0x07, 0xab, 0x07, 0xed, 0x4f, 0x48, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0x65, 0x33, 0xce, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x62, 0x12, 0x73, 0x0d, 0x9f, 0x2b, 0x6d, 0xb0, 0xc6, 0xf5, 0xfa, 0xe0, 0x10, 0xd3, 0x71, 0xd0, 0x0c, 0x8a, 0xd4, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x34, 0xc2, 0x41, 0xd5, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0xb9, 0xc8, 0xae, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf1, 0x41, 0x33, 0x28, 0x52, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xf6, 0x73, 0xa5, 0xd6, 0xa0, 0x2c, 0x79, 0x5f, 0x80, 0xb7, 0x0c, 0x2f, 0xac, 0x0d, 0x8e, 0xad, 0x6c, 0x0d, 0x6f, 0xeb, 0x0c, 0x7c, 0x18, 0xde, 0x1a, 0xde, 0xd6, 0x19, 0x1c, 0x3e, 0x68, 0x06, 0x45, 0xaa, 0xda, 0xf0, 0x41, 0xce, 0x1a, 0x14, 0x93, 0x98, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x05, 0x95, 0xd7, 0x07, 0x87, 0x98, 0x8e, 0x83, 0x66, 0x50, 0xa4, 0xd6, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0xd9, 0xa0, 0x01, 0x15, 0xaa, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xfe, 0x0a, 0xd5, 0x06, 0xcd, 0xb7, 0x50, 0x6d, 0xd0, 0x58, 0x68, 0x57, 0x1b, 0x04, 0xe9, 0xe9, 0x06, 0xed, 0xcb, 0x50, 0x6d, 0xd0, 0x30, 0x0d, 0xd5, 0x1a, 0x04, 0x6c, 0xd0, 0x86, 0x07, 0x25, 0x37, 0x38, 0x1d, 0x89, 0x6c, 0x50, 0x74, 0x1a, 0x6f, 0xd0, 0xac, 0x0e, 0xd5, 0x06, 0x2d, 0xf4, 0x50, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0xb6, 0x81, 0xa8, 0x36, 0x7c, 0x90, 0xb3, 0x41, 0x4b, 0x9f, 0x5d, 0x6b, 0x50, 0x96, 0xbc, 0x6f, 0xd0, 0x82, 0xa7, 0xd4, 0x06, 0xed, 0x47, 0x49, 0x6d, 0x78, 0x5a, 0xe7, 0xa0, 0x7d, 0xd5, 0xae, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0xda, 0x09, 0x95, 0x3a, 0x68, 0x47, 0xb9, 0xab, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0x11, 0xd6, 0x0d, 0x5a, 0xfa, 0xec, 0x5a, 0x83, 0x62, 0x12, 0x73, 0x0d, 0x9f, 0x2b, 0x6d, 0xb0, 0x64, 0xea, 0xfa, 0xe0, 0x10, 0xd3, 0x71, 0xd0, 0x0c, 0x8a, 0x54, 0x6b, 0xf8, 0x0a, 0x67, 0x83, 0x12, 0x1e, 0x73, 0x83, 0xc6, 0x57, 0xbb, 0x36, 0x68, 0xe0, 0x6c, 0x6a, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0xc6, 0x57, 0xbb, 0x36, 0xbc, 0xad, 0x33, 0x38, 0x7d, 0xd0, 0xf8, 0x6a, 0xd7, 0x1a, 0x34, 0x30, 0x32, 0xb5, 0xe1, 0x92, 0xda, 0xe0, 0xb0, 0xdf, 0xb1, 0x06, 0xcd, 0xa0, 0x48, 0x6d, 0x78, 0x5b, 0x67, 0xf0, 0xf4, 0xa0, 0xf1, 0xd5, 0xae, 0xda, 0xf0, 0x41, 0xce, 0x1a, 0x1e, 0x61, 0x5d, 0xc3, 0xdb, 0xac, 0x07, 0x2d, 0x7d, 0x76, 0xad, 0x41, 0x31, 0x89, 0xb9, 0x86, 0xcf, 0x95, 0x36, 0x58, 0x17, 0x69, 0x7d, 0x70, 0x88, 0xe9, 0x38, 0x68, 0x06, 0x45, 0xaa, 0x0d, 0xda, 0xc4, 0xee, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0xd9, 0x60, 0x81, 0x09, 0xec, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x0b, 0x82, 0xb3, 0xd7, 0xf0, 0xb6, 0xce, 0xc0, 0x87, 0xc1, 0x1d, 0xb4, 0x74, 0x22, 0xb5, 0xe1, 0x83, 0x9c, 0x35, 0xfc, 0x9b, 0xb3, 0xc1, 0x3a, 0x3f, 0xd8, 0x83, 0xb6, 0x4e, 0xa4, 0x36, 0x68, 0xe0, 0x6c, 0x6a, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x66, 0x50, 0xa4, 0x0e, 0xd6, 0xf9, 0xc1, 0xb6, 0x1a, 0xb4, 0x80, 0x80, 0xb2, 0xe1, 0xf1, 0x91, 0x0d, 0x5a, 0x40, 0x40, 0xd9, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0xda, 0xa0, 0x45, 0xdb, 0xaa, 0x0d, 0x1a, 0xe8, 0xa5, 0x3a, 0x68, 0x7f, 0x42, 0x6a, 0x83, 0x03, 0x16, 0xdd, 0x1a, 0xfe, 0xa2, 0xd9, 0xa0, 0x3d, 0x57, 0xab, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x83, 0xd6, 0x45, 0xb8, 0xd6, 0xe0, 0x5c, 0xb8, 0xb0, 0x86, 0x3c, 0xf6, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x0f, 0x1a, 0x93, 0x2b, 0x39, 0x08, 0x4f, 0xd5, 0x0d, 0x82, 0xf4, 0x74, 0x83, 0x66, 0x50, 0xa4, 0xd6, 0x60, 0x29, 0x11, 0xf1, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x06, 0x2b, 0x79, 0x49, 0x37, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x68, 0x06, 0x45, 0xea, 0xa0, 0x85, 0xd5, 0xae, 0x35, 0x68, 0x76, 0xb8, 0xea, 0x60, 0x89, 0xfd, 0x76, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x1b, 0x34, 0xa5, 0xb4, 0xb5, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0x41, 0x33, 0x28, 0x52, 0x07, 0x8d, 0x85, 0x76, 0x1d, 0x34, 0x00, 0xe2, 0xb5, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x2b, 0x64, 0x5a, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xc6, 0x7d, 0xb8, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf0, 0xc1, 0x9a, 0x78, 0xd2, 0x35, 0xbc, 0xad, 0x33, 0x38, 0x7c, 0xd0, 0xfa, 0xd8, 0x56, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0xf7, 0xe1, 0x5a, 0xc3, 0xdb, 0x3a, 0x83, 0xc7, 0x07, 0x6b, 0xe2, 0x49, 0xd7, 0xf0, 0xb6, 0xce, 0xe0, 0xf1, 0x41, 0xeb, 0x63, 0x5b, 0xb5, 0x1a, 0x3e, 0x57, 0xda, 0x60, 0x85, 0x25, 0xf4, 0xc1, 0x21, 0xa6, 0x63, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x3f, 0x93, 0x7b, 0xbb, 0xdb, 0xa0, 0x05, 0x9d, 0xa9, 0x0d, 0x5a, 0x58, 0xed, 0x5a, 0xc3, 0x1b, 0x77, 0x07, 0xab, 0xc7, 0xb7, 0x37, 0x68, 0xcc, 0x40, 0xea, 0xa0, 0xcd, 0xdc, 0xae, 0xd5, 0xf0, 0xb9, 0xd2, 0x06, 0x8b, 0x13, 0xa2, 0x0f, 0x0e, 0x31, 0x1d, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x6d, 0x1f, 0xaf, 0x0d, 0x5a, 0xd0, 0x99, 0xda, 0xa0, 0x85, 0xd5, 0xae, 0x0d, 0x5a, 0x29, 0xbf, 0x3a, 0x68, 0xaa, 0xc8, 0x6b, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0x6a, 0x1e, 0xe9, 0x83, 0x43, 0x4c, 0xc7, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x2c, 0x79, 0xdf, 0xa0, 0x95, 0x58, 0xa9, 0x35, 0xbc, 0xad, 0x33, 0xf0, 0x65, 0x74, 0x1b, 0xb4, 0xb0, 0xda, 0x75, 0xd0, 0x66, 0x6e, 0xd7, 0x06, 0x6d, 0x0b, 0x57, 0x6d, 0xd0, 0x80, 0xd3, 0x54, 0xab, 0xe1, 0x73, 0xa5, 0x0d, 0x96, 0x3d, 0x49, 0x1f, 0x1c, 0x62, 0x3a, 0x36, 0x7c, 0x62, 0xb3, 0x41, 0x2b, 0x25, 0x5e, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x34, 0x83, 0x22, 0xb5, 0xe1, 0x17, 0x97, 0x0d, 0x5a, 0x0f, 0x53, 0x38, 0x68, 0x5f, 0xb5, 0xab, 0xd5, 0xf0, 0xb9, 0xd2, 0x06, 0x6b, 0xc4, 0xa4, 0x0f, 0x0e, 0x31, 0x1d, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0xdb, 0xa0, 0xe9, 0x0e, 0xaf, 0x35, 0x68, 0x76, 0xb8, 0xea, 0xa0, 0x99, 0xf6, 0xa8, 0x36, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0x7c, 0xb1, 0x32, 0x3a, 0xb4, 0x83, 0x46, 0xda, 0xa3, 0x56, 0xc3, 0xe7, 0x4a, 0x1b, 0x2c, 0x88, 0x7d, 0x3e, 0x38, 0xc4, 0x74, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0x76, 0xe3, 0xbc, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xed, 0xe7, 0x4a, 0x1d, 0xb4, 0x74, 0x22, 0xd5, 0x6a, 0xf8, 0x5c, 0x69, 0x83, 0x95, 0x99, 0xcf, 0x07, 0x87, 0x98, 0x8e, 0x83, 0x36, 0xf0, 0xbc, 0x56, 0xc3, 0xe7, 0x4a, 0x1b, 0x2c, 0xa4, 0x93, 0x3e, 0x38, 0xc4, 0x74, 0x6c, 0xf8, 0xc4, 0x66, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x14, 0x87, 0xd7, 0x06, 0xad, 0x94, 0x78, 0xb5, 0xe1, 0xdd, 0x9e, 0x0d, 0xda, 0x8d, 0xf3, 0x3a, 0x68, 0xcc, 0x41, 0x6a, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0xaa, 0x43, 0xe9, 0x83, 0x43, 0x4c, 0xc7, 0x86, 0x4f, 0x6c, 0x36, 0x68, 0xa8, 0xd0, 0x6b, 0xc3, 0xbb, 0x3d, 0x1b, 0xb4, 0x1b, 0xe7, 0xb5, 0x86, 0xb7, 0x75, 0x06, 0x7c, 0xb1, 0xb7, 0x37, 0xb6, 0x56, 0xc3, 0xe7, 0x4a, 0x1b, 0x2c, 0xcd, 0x94, 0x3e, 0x38, 0xc4, 0x74, 0x6c, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xf0, 0x61, 0x61, 0x81, 0x80, 0xf4, 0xf0, 0x6d, 0xf8, 0xc4, 0x66, 0x83, 0xa6, 0x38, 0xbc, 0x0e, 0x9a, 0x83, 0xf4, 0x5a, 0x0d, 0x9f, 0x2b, 0x6d, 0xb0, 0x80, 0x30, 0xf8, 0xe0, 0x10, 0xd3, 0xb1, 0xe1, 0x17, 0x97, 0x0d, 0x5a, 0x58, 0xed, 0x3a, 0x68, 0x5f, 0xb5, 0x6b, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0x12, 0x58, 0xe9, 0x83, 0x43, 0x4c, 0xc7, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x80, 0x67, 0x17, 0x46, 0x6f, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x1b, 0x34, 0xdd, 0xe1, 0xd5, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0x2e, 0xa9, 0x0d, 0x5a, 0x84, 0x96, 0x5a, 0x83, 0x06, 0x46, 0xa6, 0x36, 0xbc, 0xad, 0x33, 0x38, 0xbc, 0x41, 0x8b, 0xa9, 0x5e, 0xb5, 0x86, 0x37, 0xee, 0x0e, 0x56, 0xa1, 0x96, 0xb7, 0x86, 0x77, 0x7b, 0xd6, 0x70, 0x49, 0x6d, 0xd0, 0x22, 0xb4, 0xd4, 0x1a, 0x34, 0x30, 0x32, 0xb5, 0xe1, 0x6d, 0x9d, 0xc1, 0xe3, 0x83, 0xd6, 0x66, 0xbd, 0x3a, 0x68, 0x95, 0xd6, 0xab, 0xd5, 0xf0, 0xb9, 0xd2, 0x06, 0xab, 0xb7, 0xa5, 0x0f, 0x0e, 0x31, 0x1d, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x1b, 0x2c, 0xb7, 0xa8, 0xdf, 0xf0, 0x8b, 0xcb, 0x1a, 0x3e, 0x77, 0x19, 0x1c, 0xde, 0xf0, 0x6e, 0xcf, 0x06, 0xad, 0x90, 0x69, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0xda, 0xcf, 0x95, 0x3a, 0x68, 0x5f, 0xb5, 0xab, 0x35, 0x7c, 0xee, 0x32, 0x78, 0xbc, 0xe1, 0xdd, 0x9e, 0x35, 0x5c, 0x52, 0x1b, 0xb4, 0x71, 0x1f, 0x75, 0xd0, 0x0a, 0x77, 0xd5, 0x41, 0xfb, 0xaa, 0x5d, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x83, 0x56, 0x4d, 0xbc, 0xd6, 0xa0, 0xd9, 0xe1, 0xaa, 0x0d, 0x6f, 0xeb, 0x0c, 0x0e, 0x1f, 0x2c, 0xb6, 0xa8, 0xef, 0x60, 0x45, 0x45, 0xfd, 0x6a, 0xf8, 0x5c, 0x69, 0x83, 0x35, 0x06, 0xd3, 0x07, 0x87, 0x98, 0x8e, 0x0d, 0x9f, 0xd8, 0x6c, 0xd0, 0x28, 0xaa, 0xd7, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x2d, 0xbc, 0x7a, 0xad, 0xe1, 0x8d, 0xbb, 0x83, 0xf5, 0xb2, 0xe5, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0xbd, 0xf5, 0x3a, 0x68, 0x3b, 0xdc, 0xab, 0xd5, 0xf0, 0xb9, 0xd2, 0x06, 0xeb, 0xbf, 0x9f, 0x0f, 0x0e, 0x31, 0x1d, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0xb4, 0xeb, 0xc4, 0xb5, 0x41, 0x0b, 0xab, 0x5d, 0x07, 0xcd, 0x6a, 0x50, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0xda, 0x75, 0xe2, 0xda, 0xa0, 0x85, 0xd5, 0xae, 0x83, 0x36, 0xb8, 0xbc, 0x5a, 0x0d, 0x9f, 0x2b, 0x6d, 0xb0, 0xfe, 0x68, 0xfa, 0xe0, 0x10, 0xd3, 0xb1, 0xe1, 0x13, 0x9b, 0x0d, 0x1a, 0x45, 0xf5, 0xda, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x85, 0x57, 0xaf, 0x0d, 0x1a, 0x74, 0xb6, 0x6a, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xe8, 0xad, 0xd7, 0x41, 0x43, 0xfb, 0x5e, 0xad, 0x86, 0xcf, 0x95, 0x36, 0x58, 0xf1, 0xef, 0x7c, 0x70, 0x88, 0xe9, 0xd8, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0xd9, 0xa0, 0xc5, 0x54, 0xaf, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x83, 0x56, 0x4d, 0xbc, 0xda, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x2d, 0x54, 0xaa, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x03, 0x67, 0x53, 0x07, 0xed, 0xab, 0x76, 0x6d, 0xd0, 0x84, 0xac, 0x57, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xb6, 0x50, 0xa9, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x0d, 0x38, 0x4d, 0x1d, 0xb4, 0xaf, 0xda, 0xb5, 0x41, 0xab, 0xba, 0x5e, 0xb5, 0x1a, 0x3e, 0x57, 0xda, 0x60, 0x85, 0xc6, 0xf4, 0xc1, 0x21, 0xa6, 0xe3, 0xa0, 0x4d, 0x55, 0xaf, 0xd5, 0xf0, 0xb9, 0xd2, 0x06, 0xab, 0x47, 0xa9, 0x0f, 0x0e, 0x31, 0x1d, 0x1b, 0xde, 0xb2, 0x5b, 0xc3, 0x25, 0xb5, 0x41, 0x23, 0x6e, 0x52, 0x6b, 0xd0, 0xc0, 0xc8, 0xd4, 0x41, 0x6b, 0xc8, 0x5e, 0x1d, 0x34, 0x58, 0xf0, 0xb5, 0x1a, 0x3e, 0x57, 0xda, 0x60, 0x69, 0x05, 0xf5, 0xc1, 0x21, 0xa6, 0xe3, 0xa0, 0xc1, 0x82, 0xaf, 0xd5, 0xf0, 0xb9, 0xd2, 0x06, 0x0b, 0xf6, 0xab, 0x0f, 0x0e, 0x31, 0x1d, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x03, 0x1e, 0x5b, 0x59, 0x7b, 0xd0, 0x14, 0x87, 0xd7, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x41, 0xab, 0x26, 0x5e, 0x6b, 0xd0, 0xc0, 0xc8, 0xd4, 0x86, 0xb7, 0x75, 0x06, 0x87, 0x37, 0x68, 0x7b, 0xe5, 0xab, 0x35, 0x68, 0xdb, 0x69, 0x6a, 0xc3, 0xdb, 0x3a, 0x83, 0xc7, 0x07, 0x4d, 0xcc, 0x7c, 0xb5, 0x1a, 0x3e, 0x57, 0xda, 0x60, 0x25, 0x9f, 0xf5, 0xc1, 0x21, 0xa6, 0x63, 0x83, 0x82, 0x34, 0x76, 0xc0, 0x13, 0x7b, 0x1b, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xad, 0x8e, 0x49, 0x1d, 0xb4, 0xaf, 0xda, 0xb5, 0x41, 0x41, 0x1a, 0x3b, 0xe0, 0xb9, 0xd5, 0x99, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x97, 0xd4, 0x06, 0x0d, 0x92, 0x49, 0x1d, 0xb4, 0xc2, 0x5d, 0x75, 0xd0, 0xbe, 0x6a, 0xd7, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x41, 0xab, 0x26, 0x5e, 0x6b, 0xd0, 0xc0, 0xc8, 0xd4, 0x86, 0xb7, 0x75, 0x36, 0x68, 0x80, 0xe7, 0xab, 0x35, 0x68, 0xdb, 0x69, 0x6a, 0xc3, 0xdb, 0x3a, 0x1b, 0xb4, 0x13, 0xf4, 0x55, 0xab, 0xe1, 0x73, 0xa5, 0x0d, 0xd6, 0x32, 0x5b, 0x1f, 0x1c, 0x62, 0x3a, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x3c, 0xb7, 0x37, 0x79, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0xdb, 0xa0, 0xe9, 0x0e, 0xaf, 0x35, 0x68, 0x76, 0xb8, 0xea, 0xa0, 0x3d, 0x49, 0xaf, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x3c, 0xb4, 0xb4, 0x78, 0xc3, 0x5f, 0x34, 0x1b, 0xb4, 0xe7, 0x6a, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xe0, 0x99, 0x95, 0xe1, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0xc3, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x99, 0x4e, 0xa9, 0x83, 0xf6, 0x55, 0xbb, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xf1, 0x86, 0x77, 0x7b, 0xd6, 0x70, 0x49, 0x6d, 0xd0, 0x82, 0xa7, 0xd4, 0x41, 0x2b, 0xdc, 0x55, 0x07, 0xed, 0xab, 0x76, 0xb5, 0xe1, 0x83, 0x9c, 0x35, 0xfc, 0x9b, 0xb3, 0x41, 0x5b, 0xdf, 0x17, 0x1b, 0xde, 0xd6, 0x19, 0x1c, 0xde, 0xa0, 0xdd, 0xb0, 0xaf, 0xd6, 0xa0, 0x30, 0x54, 0xdd, 0xa0, 0xad, 0xef, 0x8b, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x0d, 0xda, 0xfa, 0xbe, 0xd8, 0xf0, 0xb6, 0xce, 0xe0, 0xf1, 0x41, 0xa3, 0x72, 0x5f, 0x1b, 0xb4, 0xf5, 0x7d, 0xb1, 0xc1, 0xb9, 0x70, 0x61, 0x0d, 0x79, 0xec, 0x0d, 0x3f, 0xc2, 0x0c, 0x4e, 0x1f, 0x34, 0xb7, 0x6c, 0xb2, 0xe1, 0xdd, 0x9e, 0x35, 0x5c, 0x52, 0x1b, 0xb4, 0x71, 0x1f, 0xb5, 0x06, 0x0d, 0x8c, 0x4c, 0x1d, 0x34, 0x8e, 0xf7, 0xd5, 0x41, 0x9b, 0xb9, 0x5d, 0x1b, 0x3e, 0xc8, 0xd9, 0xa0, 0x75, 0xbb, 0xaf, 0x35, 0x38, 0x17, 0x2e, 0xac, 0x21, 0x8f, 0xbd, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0x83, 0xf6, 0xac, 0x4d, 0x0e, 0xc2, 0x53, 0x75, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x06, 0x46, 0xa6, 0x0e, 0x5a, 0x8a, 0xfb, 0x5a, 0x83, 0xb6, 0x9d, 0xa6, 0x0e, 0x1a, 0xc7, 0xfb, 0x3a, 0x68, 0xde, 0xe0, 0x6b, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xc0, 0x93, 0x0b, 0x73, 0x37, 0xfc, 0x45, 0xb3, 0x41, 0x7b, 0xae, 0x56, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x03, 0xde, 0x5d, 0x1d, 0xbe, 0xe1, 0x17, 0x97, 0x35, 0x7c, 0xee, 0x32, 0x38, 0xbc, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0x03, 0x95, 0x3a, 0x68, 0x5f, 0xb5, 0x6b, 0x0d, 0x9f, 0xbb, 0x0c, 0x1e, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0x97, 0xd4, 0x06, 0xed, 0x84, 0x4a, 0x1d, 0xb4, 0xc2, 0x5d, 0x75, 0xd0, 0xbe, 0x6a, 0x57, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x1b, 0xb4, 0xf5, 0x7d, 0xb1, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0x0d, 0xda, 0xdc, 0xfc, 0x6a, 0x0d, 0x0a, 0x43, 0xd5, 0x0d, 0xda, 0xfa, 0xbe, 0xd8, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0xa0, 0xad, 0xef, 0x8b, 0x0d, 0x6f, 0xeb, 0x0c, 0x1e, 0x1f, 0x34, 0xc8, 0xfa, 0xb5, 0x41, 0x5b, 0xdf, 0x17, 0x1b, 0x9c, 0x0b, 0x17, 0xd6, 0x90, 0xc7, 0xde, 0xf0, 0x23, 0xcc, 0xe0, 0xf4, 0x41, 0x5b, 0xf2, 0x26, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0x25, 0xb5, 0x41, 0x1b, 0xf7, 0x51, 0x6b, 0xd0, 0xc0, 0xc8, 0xd4, 0x41, 0xc3, 0xb2, 0x5f, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xe5, 0x83, 0x66, 0x50, 0xa4, 0xda, 0xf0, 0x41, 0xce, 0x06, 0x2d, 0xc3, 0x7e, 0xad, 0xc1, 0xb9, 0x70, 0x61, 0x0d, 0x79, 0xec, 0x0d, 0x3f, 0xc2, 0x0c, 0x4e, 0x1f, 0x34, 0xd7, 0x6f, 0x72, 0x10, 0x9e, 0xaa, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x34, 0x30, 0x32, 0x75, 0xd0, 0xca, 0xea, 0xd7, 0x1a, 0xb4, 0xed, 0x34, 0x75, 0xd0, 0xb0, 0xec, 0xd7, 0x1a, 0x34, 0x83, 0x22, 0x75, 0xd0, 0xea, 0xef, 0x57, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0xb4, 0x42, 0xa6, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x68, 0xe6, 0x60, 0x6a, 0x0d, 0x6f, 0xeb, 0x0c, 0x0e, 0x6f, 0xd0, 0x38, 0xd7, 0x57, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0x78, 0x83, 0x86, 0x2d, 0xbf, 0x3a, 0x28, 0xeb, 0x3c, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0x73, 0x30, 0xb5, 0x86, 0xb7, 0x75, 0x06, 0x8f, 0x0f, 0xda, 0xbe, 0xfe, 0x5a, 0xc3, 0xdb, 0x3a, 0x83, 0xc7, 0x07, 0xcd, 0x69, 0x7f, 0x1d, 0x94, 0x75, 0x9e, 0xad, 0x86, 0xcf, 0x95, 0x36, 0x58, 0x97, 0xf1, 0x7c, 0x70, 0x88, 0xe9, 0xd8, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xf0, 0xee, 0xc2, 0xf4, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xe1, 0x83, 0xd6, 0x90, 0xbd, 0x0e, 0x1a, 0x5c, 0xf6, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xf0, 0xe6, 0xf2, 0xf0, 0x0d, 0x0a, 0x43, 0xd5, 0x35, 0x7c, 0xee, 0x32, 0x38, 0xbc, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0x8f, 0xbd, 0xd9, 0x95, 0xad, 0xe1, 0x41, 0xc9, 0x0d, 0x4e, 0x47, 0x22, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x01, 0x55, 0xa9, 0x0d, 0x96, 0xd8, 0x6f, 0xaf, 0xe1, 0x17, 0x97, 0x0d, 0xda, 0x48, 0x2f, 0x38, 0x68, 0x33, 0xb7, 0xab, 0x36, 0x7c, 0xee, 0x32, 0x78, 0xbc, 0xe1, 0xdd, 0x9e, 0x0d, 0x9a, 0xa8, 0xff, 0x5a, 0xc3, 0x83, 0x92, 0x1b, 0x9c, 0x8e, 0x44, 0x36, 0xbc, 0xdb, 0xb3, 0x86, 0x4b, 0x6a, 0x83, 0xe6, 0x47, 0xa4, 0x0e, 0x5a, 0xe1, 0xae, 0x3a, 0x68, 0x68, 0xff, 0xab, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x01, 0x0f, 0xee, 0xcd, 0xde, 0xf0, 0x8b, 0xcb, 0x1a, 0x3e, 0x77, 0x19, 0x1c, 0xde, 0xf0, 0x6e, 0xcf, 0x1a, 0x2e, 0xa9, 0x0d, 0x9a, 0x72, 0x94, 0x5a, 0x83, 0x06, 0x46, 0xa6, 0x36, 0xbc, 0xad, 0x33, 0x38, 0xbc, 0x41, 0x73, 0xe9, 0x5f, 0xb5, 0x86, 0xb7, 0x75, 0x06, 0x87, 0x37, 0x68, 0x16, 0xfe, 0xab, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xf1, 0x86, 0x77, 0x7b, 0xd6, 0x70, 0x49, 0x6d, 0xd0, 0x94, 0xa3, 0xd4, 0x1a, 0x34, 0x30, 0x32, 0xb5, 0xe1, 0x6d, 0x9d, 0xc1, 0xe3, 0x83, 0x56, 0x28, 0xc0, 0x5a, 0xc3, 0xdb, 0x3a, 0x83, 0xc7, 0x07, 0x4d, 0x5b, 0x80, 0xd5, 0x06, 0xc5, 0x8e, 0xe6, 0x1a, 0x1e, 0x61, 0x5d, 0xc3, 0xbf, 0x39, 0x1b, 0xb4, 0x57, 0x01, 0x76, 0xd0, 0xfc, 0x07, 0xd8, 0x1a, 0xfe, 0xcd, 0x59, 0xc3, 0xdb, 0x3a, 0x83, 0xc3, 0x1b, 0x34, 0xb9, 0x00, 0xd6, 0x86, 0xb7, 0x75, 0x06, 0x8f, 0x0f, 0x5a, 0x4e, 0x01, 0x6b, 0x0d, 0xce, 0x85, 0x0b, 0x6b, 0xc8, 0x63, 0x6f, 0xf8, 0x11, 0x66, 0x70, 0xfa, 0xa0, 0xd1, 0xa6, 0x93, 0x83, 0xf0, 0x54, 0x3d, 0x68, 0x0e, 0xd2, 0x6b, 0x0d, 0xda, 0x7c, 0xed, 0xda, 0xe0, 0x5c, 0xb8, 0xb0, 0x86, 0x3c, 0xf6, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x0f, 0xda, 0xbc, 0x3a, 0xd9, 0xf0, 0x89, 0xcd, 0x1a, 0x14, 0x86, 0xaa, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0x84, 0x0a, 0xb9, 0x0d, 0x0f, 0x4a, 0xae, 0xe1, 0x17, 0x97, 0x35, 0x7c, 0xee, 0xb2, 0xc1, 0xc9, 0x07, 0xf5, 0xe0, 0x74, 0x91, 0xb1, 0x86, 0xcf, 0x5d, 0x36, 0x38, 0xd3, 0xa7, 0x1e, 0x9c, 0x8e, 0x44, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xcd, 0xca, 0xdc, 0xc8, 0x36, 0x68, 0xa2, 0xba, 0x6a, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x17, 0x97, 0x0d, 0x56, 0x81, 0xc9, 0x1e, 0x14, 0xc4, 0xe3, 0x07, 0x6d, 0xe6, 0x76, 0xb5, 0xe1, 0x73, 0x97, 0x0d, 0x92, 0x91, 0xe2, 0x36, 0x3c, 0x28, 0xb9, 0x41, 0xeb, 0x3d, 0x60, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0x25, 0xb5, 0x41, 0x63, 0x46, 0x60, 0x07, 0xad, 0x70, 0x57, 0x1d, 0x34, 0x7d, 0x04, 0xb6, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x67, 0xfa, 0xd4, 0x83, 0x44, 0xa4, 0xb8, 0x0d, 0x6f, 0xeb, 0x6c, 0x70, 0xa6, 0x4f, 0x3d, 0x48, 0xa6, 0x90, 0xdb, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbb, 0x3d, 0x6b, 0xb8, 0xa4, 0x36, 0x68, 0x8c, 0x56, 0x6a, 0x0d, 0x1a, 0x18, 0x99, 0xda, 0xf0, 0xb6, 0xce, 0x06, 0x27, 0x1f, 0xd4, 0x83, 0x44, 0xa4, 0xb8, 0x36, 0x28, 0x72, 0x5a, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0x27, 0x1f, 0xd4, 0x83, 0x64, 0x0a, 0xb9, 0x0e, 0x9a, 0x83, 0xf4, 0x5a, 0x0d, 0x9f, 0x2b, 0x6d, 0xb0, 0x44, 0xd7, 0xf9, 0xe0, 0x10, 0xd3, 0xb1, 0xe1, 0x2d, 0xbb, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x22, 0xeb, 0xd8, 0x35, 0xbc, 0x71, 0x77, 0xb0, 0x7c, 0x91, 0xfd, 0xa0, 0x7d, 0xd5, 0xae, 0x83, 0x06, 0x0b, 0xbe, 0x56, 0xc3, 0xe7, 0x4a, 0x1b, 0x2c, 0x9c, 0xbe, 0x3e, 0x38, 0xc4, 0x74, 0x6c, 0xf8, 0xc5, 0x65, 0x83, 0xc6, 0x8c, 0xbd, 0x36, 0x68, 0x9d, 0xd9, 0xab, 0xd5, 0xf0, 0xb9, 0xd2, 0x06, 0xeb, 0x08, 0x9f, 0x0f, 0x0e, 0x31, 0x1d, 0x1b, 0x3e, 0xc8, 0xd9, 0xa0, 0x05, 0x2d, 0xa9, 0x35, 0x38, 0x17, 0x2e, 0xac, 0x21, 0x8f, 0xbd, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0x83, 0xb6, 0x24, 0x4f, 0x0e, 0xc2, 0x53, 0x75, 0xc3, 0xbb, 0x3d, 0x1b, 0xb4, 0x1b, 0xe7, 0xb5, 0x41, 0x5b, 0xdf, 0x17, 0xad, 0x86, 0xcf, 0x95, 0x36, 0x58, 0xd4, 0x80, 0x7d, 0x70, 0x88, 0xe9, 0x38, 0x68, 0x0d, 0xd1, 0x6b, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0x6a, 0xff, 0xeb, 0x83, 0x43, 0x4c, 0xc7, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0x40, 0x0f, 0x0b, 0x0b, 0xc4, 0x2e, 0x8c, 0x2d, 0x8d, 0x2c, 0x8c, 0xae, 0x2c, 0xb4, 0xe1, 0x73, 0x97, 0x01, 0xcf, 0xee, 0x6d, 0xde, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0x36, 0x68, 0x02, 0xc4, 0xeb, 0xa0, 0x79, 0x83, 0xaf, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x5a, 0x21, 0xd3, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0xee, 0xc3, 0xb5, 0x41, 0x6b, 0xc8, 0x5e, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0x78, 0x83, 0x26, 0x2e, 0xc1, 0xaa, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xe3, 0x3e, 0x5c, 0x1b, 0xb4, 0xce, 0xec, 0xb5, 0x86, 0xb7, 0x75, 0x06, 0x8f, 0x0f, 0x9a, 0x19, 0x05, 0xab, 0xd5, 0xf0, 0xb9, 0xd2, 0x06, 0xcb, 0xe0, 0xaf, 0x0f, 0x0e, 0x31, 0x1d, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xdd, 0x38, 0xaf, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xfb, 0xb9, 0x52, 0x1b, 0xb4, 0x4e, 0xe6, 0x55, 0xab, 0xe1, 0x73, 0xa5, 0x0d, 0x16, 0x6f, 0x60, 0x1f, 0x1c, 0x62, 0x3a, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x6d, 0x02, 0x4a, 0x1d, 0xb4, 0xaf, 0xda, 0xb5, 0x86, 0x77, 0x7b, 0xd6, 0x70, 0x49, 0x6d, 0xd0, 0x5c, 0xa0, 0xd4, 0x41, 0x2b, 0xdc, 0x55, 0x07, 0xed, 0xab, 0x76, 0xb5, 0x41, 0xb1, 0xa3, 0xb9, 0x86, 0x7f, 0x73, 0xd6, 0x70, 0x49, 0x6d, 0x90, 0x90, 0xde, 0xdd, 0x86, 0x4b, 0x6a, 0x83, 0xc4, 0xeb, 0xee, 0xd6, 0xe0, 0x5c, 0xb8, 0xb0, 0x86, 0x3c, 0xf6, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x0f, 0x1a, 0x0d, 0x3f, 0x39, 0x08, 0x4f, 0xd5, 0x0d, 0x1f, 0xe4, 0x6c, 0xd0, 0x58, 0x30, 0xd8, 0x06, 0x0d, 0x16, 0x7c, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x07, 0xed, 0x3c, 0x7f, 0xad, 0x86, 0xcf, 0x95, 0x36, 0x58, 0x94, 0x84, 0x7d, 0x70, 0x88, 0xe9, 0x38, 0x68, 0xb6, 0x10, 0x6c, 0x0d, 0xc2, 0x74, 0x6c, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0x95, 0xfd, 0x69, 0x07, 0xed, 0xd4, 0x77, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x56, 0xf6, 0xa7, 0x75, 0xd0, 0xd6, 0x89, 0xd4, 0x1a, 0xde, 0xb2, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xb2, 0x8e, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0xac, 0x66, 0x7d, 0xdd, 0xa0, 0x1d, 0x08, 0xab, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xcb, 0xea, 0x61, 0x0f, 0x5a, 0x3a, 0x91, 0x6a, 0x83, 0x73, 0xe1, 0xc2, 0x1a, 0xf2, 0xd8, 0x1b, 0x7e, 0x84, 0x19, 0x9c, 0x3e, 0x68, 0xe1, 0xff, 0xe4, 0x20, 0x3c, 0x55, 0x37, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x68, 0x06, 0x45, 0xea, 0xa0, 0x55, 0x6d, 0xb0, 0x5a, 0x66, 0x0d, 0x1a, 0x95, 0xf3, 0xda, 0xf0, 0x8b, 0xd2, 0x1a, 0xfe, 0x5c, 0xda, 0xa0, 0xf1, 0xf9, 0xa8, 0x83, 0x65, 0x33, 0xce, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0xb4, 0x42, 0xa6, 0xb5, 0x41, 0x8b, 0xcc, 0x59, 0x1d, 0xb4, 0x82, 0x0f, 0xb6, 0x1a, 0x34, 0xfc, 0xe3, 0xb5, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0xd3, 0xbf, 0x56, 0x1b, 0xb4, 0xad, 0x88, 0xb5, 0x41, 0x13, 0xc0, 0x54, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x93, 0xab, 0x33, 0x0f, 0x16, 0x58, 0x38, 0x1f, 0x34, 0x31, 0x4c, 0xb5, 0xe1, 0x2d, 0xbb, 0x35, 0x3c, 0x71, 0xb7, 0xe1, 0x59, 0xbc, 0x83, 0x76, 0x85, 0x4a, 0x36, 0xfc, 0x45, 0xb3, 0x41, 0x7b, 0xae, 0x56, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x03, 0x1e, 0x59, 0x98, 0xbb, 0xe1, 0x92, 0xda, 0xe0, 0xb0, 0xdf, 0xb1, 0x06, 0xcd, 0xa0, 0x48, 0x6d, 0x78, 0x5b, 0x67, 0x83, 0x86, 0x03, 0xc2, 0x3a, 0x68, 0x00, 0xc4, 0x6b, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xc0, 0xcb, 0x0b, 0xd3, 0x37, 0xbc, 0xdb, 0xb3, 0x86, 0x4b, 0x6a, 0x83, 0xd6, 0x48, 0xa5, 0xd6, 0xa0, 0x81, 0x91, 0xa9, 0x0d, 0x6f, 0xeb, 0x0c, 0x0e, 0x6f, 0xd0, 0x16, 0x43, 0x58, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xe3, 0x83, 0x36, 0x37, 0xc2, 0x36, 0x68, 0x4f, 0xd9, 0xea, 0xa0, 0x51, 0x67, 0xac, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x5a, 0x21, 0xd3, 0x5a, 0xc3, 0xdb, 0x3a, 0x83, 0xc3, 0x1b, 0x34, 0x54, 0x11, 0x56, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xf8, 0xa0, 0xe5, 0x92, 0xb0, 0x66, 0x0d, 0x5a, 0x04, 0xce, 0xda, 0xf0, 0x8b, 0xd2, 0x06, 0x2d, 0xc9, 0x83, 0x6d, 0x78, 0xcb, 0x6e, 0x0d, 0x4f, 0xdc, 0x6d, 0x78, 0x16, 0xef, 0xa0, 0xa1, 0xb0, 0x92, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x4a, 0xb6, 0x41, 0x93, 0x42, 0x53, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xa6, 0x7f, 0xab, 0x36, 0x28, 0x72, 0x5a, 0x0f, 0x5a, 0xc1, 0x07, 0xeb, 0xa0, 0x45, 0xe6, 0xac, 0xc3, 0x29, 0xd6, 0xe1, 0x14, 0x5b, 0x0d, 0x9a, 0x61, 0x43, 0xd9, 0xf0, 0xf8, 0xc8, 0x06, 0xcd, 0xb0, 0xa1, 0x6c, 0xf8, 0x45, 0x69, 0x83, 0x36, 0x19, 0xa8, 0x36, 0x7c, 0x62, 0xb3, 0x41, 0xab, 0xf7, 0x5b, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0x17, 0xcd, 0x06, 0xcb, 0x66, 0x9c, 0x37, 0x7c, 0x90, 0xb3, 0x41, 0xab, 0x09, 0x5c, 0x1b, 0x34, 0x70, 0x36, 0xb5, 0x41, 0x90, 0x9e, 0x6e, 0xd0, 0xc0, 0xc8, 0xd4, 0x1a, 0x34, 0xb0, 0x38, 0xb5, 0x41, 0x90, 0x9e, 0x6e, 0xb0, 0xee, 0x02, 0x79, 0x0d, 0x1a, 0x58, 0x9c, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xf0, 0xcc, 0xde, 0xc6, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0xbe, 0xbc, 0xda, 0xa0, 0x75, 0xd1, 0xaa, 0x83, 0xc6, 0x52, 0xa7, 0x36, 0x68, 0x6b, 0x72, 0xea, 0xa0, 0x75, 0xd1, 0xaa, 0x0d, 0x8a, 0x01, 0xd9, 0x0d, 0xda, 0xbf, 0x9c, 0x5a, 0x83, 0x62, 0x40, 0x76, 0x83, 0xe6, 0x1b, 0xab, 0xd6, 0xf0, 0x41, 0xce, 0x06, 0x8d, 0x81, 0x5e, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0x9a, 0xd4, 0xbc, 0x58, 0xc3, 0xdb, 0x3a, 0x1b, 0x34, 0xf7, 0x14, 0xd6, 0x41, 0xb3, 0xad, 0x53, 0x07, 0x6d, 0x7d, 0x5f, 0x1c, 0xb4, 0xe2, 0x15, 0xb6, 0xe1, 0x17, 0x97, 0x0d, 0x9a, 0xd4, 0xbc, 0xd8, 0xa0, 0x19, 0xb0, 0xb0, 0x0d, 0x5a, 0xa3, 0xac, 0x6a, 0x0d, 0xda, 0xf0, 0x9c, 0x3a, 0x68, 0xeb, 0xfb, 0x62, 0x0d, 0xc2, 0x74, 0x6c, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x3b, 0x68, 0x26, 0xb0, 0xaa, 0x35, 0x68, 0xc3, 0x73, 0x6a, 0x83, 0x20, 0x3d, 0xdd, 0x60, 0xdd, 0x05, 0xf2, 0x1a, 0xb4, 0xe1, 0x39, 0xb5, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0xf7, 0xe1, 0x5a, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x3b, 0x68, 0x14, 0xb4, 0x6a, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0xec, 0xa0, 0xa1, 0xd3, 0xaa, 0x0e, 0x9a, 0x5f, 0x0b, 0x5b, 0x83, 0xe6, 0x23, 0xa6, 0x36, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x83, 0x36, 0xe5, 0xb8, 0xd6, 0xa0, 0x65, 0xd8, 0xa9, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xae, 0x13, 0xd7, 0x06, 0x6d, 0x4d, 0x4e, 0xad, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0x1d, 0x34, 0x24, 0x47, 0xd5, 0x1a, 0x34, 0xea, 0x3b, 0xb5, 0xe1, 0xdd, 0x9e, 0x0d, 0x9a, 0x39, 0x98, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0x48, 0xd5, 0x1b, 0xb4, 0xa1, 0x54, 0xb5, 0x86, 0x5f, 0x94, 0x36, 0x58, 0x36, 0xe3, 0xbc, 0xe1, 0x92, 0xda, 0xe0, 0xb0, 0xdf, 0x71, 0xd0, 0xfa, 0x28, 0x55, 0xad, 0x41, 0x1b, 0xc9, 0x53, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x2d, 0x54, 0xaa, 0x83, 0xf6, 0x05, 0xc3, 0xd6, 0xa0, 0x49, 0xe9, 0xa9, 0x0d, 0x1f, 0xe4, 0x6c, 0xd0, 0x16, 0x18, 0xd7, 0x1a, 0x9c, 0x0b, 0x17, 0xd6, 0x90, 0xc7, 0xde, 0xf0, 0x23, 0xcc, 0xe0, 0xf4, 0x41, 0x73, 0x61, 0x28, 0x07, 0xe1, 0xa9, 0xba, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0x1d, 0xb4, 0x83, 0xc6, 0xb5, 0x06, 0xeb, 0xdd, 0x99, 0x0f, 0x96, 0x67, 0x20, 0x1f, 0xb4, 0x3c, 0xc7, 0x75, 0x38, 0xc5, 0x5a, 0xc0, 0x17, 0x93, 0x0b, 0x73, 0x37, 0x58, 0x0e, 0xc9, 0x34, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x1b, 0xb4, 0xbb, 0x51, 0x75, 0xd0, 0xa0, 0x57, 0xd5, 0x86, 0xaf, 0x70, 0x36, 0x58, 0x0e, 0xc9, 0x34, 0x1b, 0xfe, 0xa2, 0x59, 0xc3, 0xbf, 0xf3, 0x1b, 0x2c, 0xd0, 0xc6, 0x5e, 0xc0, 0x6f, 0xab, 0x9b, 0x5b, 0x6b, 0x83, 0x20, 0x3d, 0xdd, 0xa0, 0x81, 0x91, 0xa9, 0x35, 0x58, 0xef, 0xce, 0xbc, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x1b, 0xe0, 0xbd, 0xe1, 0x17, 0x97, 0x83, 0x16, 0x1f, 0xa9, 0x0e, 0xca, 0x3a, 0xcf, 0x35, 0x58, 0x2f, 0xd2, 0x7c, 0xd0, 0x4a, 0x6d, 0xd8, 0x1a, 0x34, 0xb0, 0x38, 0xb5, 0x41, 0x09, 0x8f, 0xb9, 0x41, 0xfb, 0x97, 0x53, 0x1b, 0xb4, 0x52, 0x1b, 0xb6, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x1b, 0xe0, 0x7d, 0x50, 0x50, 0x64, 0x6e, 0xd0, 0xa8, 0xe6, 0x54, 0x6b, 0xd0, 0x86, 0xe7, 0xd4, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xa0, 0xe4, 0x1a, 0xde, 0xd6, 0x39, 0x38, 0x93, 0x20, 0x6c, 0x78, 0x5b, 0xe7, 0xa0, 0x39, 0xd8, 0xb0, 0x35, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x83, 0x16, 0xdc, 0xa8, 0x0e, 0xda, 0x20, 0x0c, 0x5b, 0x83, 0xe6, 0x23, 0xa6, 0x36, 0x28, 0x3a, 0x8d, 0x37, 0x68, 0xdc, 0x38, 0x6c, 0x83, 0x16, 0xf9, 0xa7, 0x0e, 0x9a, 0x5c, 0x0e, 0x5b, 0x83, 0x96, 0x61, 0xa7, 0x0e, 0x9a, 0xea, 0x0b, 0x5b, 0x83, 0x46, 0x7d, 0xa7, 0x0e, 0x5a, 0xa9, 0x0d, 0x5b, 0x83, 0x36, 0x92, 0xa7, 0x0e, 0x9a, 0xea, 0x0b, 0x5b, 0x83, 0x26, 0xa5, 0xa7, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x4b, 0xad, 0xea, 0xa0, 0x59, 0x0d, 0xaa, 0x0d, 0x5a, 0xa9, 0x0d, 0xdb, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0x36, 0x68, 0x6e, 0xae, 0x6a, 0x0d, 0x5a, 0x72, 0xab, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0xed, 0xde, 0x55, 0x1d, 0x34, 0xab, 0x41, 0x55, 0x87, 0x53, 0x6c, 0x0d, 0x1a, 0x11, 0x48, 0xd9, 0xf0, 0xf8, 0xc8, 0x06, 0x8d, 0x08, 0xa4, 0x6c, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x6d, 0xd0, 0x44, 0xd6, 0xd6, 0xc1, 0x92, 0x3e, 0xe7, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x01, 0xcf, 0xee, 0x8d, 0x3e, 0x68, 0xd0, 0xab, 0x6a, 0xc3, 0x57, 0x38, 0x1b, 0xfe, 0xa2, 0xd9, 0x60, 0xed, 0xbb, 0xf3, 0x06, 0x41, 0x7a, 0xba, 0x41, 0x03, 0x23, 0x53, 0x6b, 0xb0, 0x5e, 0xa4, 0x79, 0xc3, 0x2f, 0x2e, 0x1b, 0x2c, 0x9f, 0x42, 0x3e, 0x28, 0x88, 0xc7, 0xd7, 0x60, 0xbd, 0x3b, 0xf3, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0x3e, 0x85, 0x7c, 0x50, 0x38, 0xc9, 0xae, 0x41, 0x03, 0x8b, 0x53, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0xb4, 0x7f, 0x39, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x48, 0xfc, 0x8c, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0x04, 0x47, 0xea, 0x06, 0xcb, 0x02, 0x80, 0x0f, 0x5a, 0x29, 0xdb, 0x6a, 0xc3, 0x2f, 0x2e, 0x1b, 0xb4, 0x54, 0xd3, 0xb1, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0x3e, 0x85, 0x7c, 0xd0, 0xe6, 0x70, 0xd8, 0x1a, 0x7e, 0x71, 0x39, 0x68, 0x07, 0x41, 0xac, 0x35, 0x68, 0xc3, 0x73, 0x6a, 0x83, 0xa2, 0xd3, 0x78, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x66, 0x6c, 0x61, 0x6e, 0x1b, 0x34, 0x67, 0x20, 0xb6, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0x9e, 0x10, 0x5b, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0xdb, 0xa0, 0x0d, 0x37, 0xaa, 0x83, 0xf6, 0x4f, 0xb7, 0xd6, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0x36, 0x68, 0x4a, 0x8e, 0x6a, 0x83, 0xf6, 0x3d, 0xb7, 0x6a, 0x0d, 0x9a, 0x8f, 0x98, 0xda, 0xe0, 0x5c, 0xb8, 0xb0, 0x86, 0x3c, 0xf6, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x0f, 0x1a, 0xcf, 0x46, 0x39, 0x08, 0x4f, 0xd5, 0x35, 0x68, 0x19, 0x76, 0xea, 0xa0, 0x15, 0xc2, 0xb0, 0x35, 0x68, 0xd4, 0x77, 0x6a, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0xf5, 0x9e, 0x7a, 0x07, 0x6d, 0x28, 0x55, 0x6d, 0xf8, 0x0a, 0x67, 0xc3, 0x5f, 0x34, 0x1b, 0xac, 0x7d, 0x77, 0xde, 0xa0, 0x84, 0xc7, 0xdc, 0x60, 0xe5, 0xc3, 0xde, 0x06, 0xcd, 0xe8, 0x87, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x66, 0x6c, 0x6f, 0x72, 0x6b, 0xb8, 0xa4, 0x36, 0x38, 0xec, 0x77, 0xac, 0x41, 0x03, 0x23, 0x53, 0x07, 0x4d, 0x54, 0x72, 0xb5, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x41, 0x6b, 0x8d, 0x5c, 0xb5, 0x06, 0x6d, 0x24, 0x4f, 0x1d, 0xb4, 0x42, 0x18, 0xb6, 0x06, 0x4d, 0x4a, 0x4f, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x59, 0xf2, 0xbe, 0xc1, 0xd1, 0x5a, 0x63, 0x83, 0xb2, 0xe9, 0x7d, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0x84, 0x7c, 0x58, 0x1d, 0x34, 0xab, 0x41, 0xb5, 0x06, 0xe7, 0xc2, 0x85, 0x35, 0xe4, 0xb1, 0x37, 0xfc, 0x08, 0x33, 0x38, 0x7d, 0xd0, 0xd0, 0x3d, 0xca, 0x41, 0x78, 0xaa, 0x6e, 0x50, 0x4a, 0x88, 0xaf, 0xe1, 0x92, 0xda, 0xa0, 0xa8, 0x11, 0x5f, 0x83, 0x36, 0x8f, 0xc4, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x65, 0x0b, 0xea, 0x41, 0xb3, 0x45, 0x62, 0x07, 0xcd, 0x6a, 0x50, 0x75, 0xd0, 0x54, 0x5f, 0x58, 0xab, 0x41, 0x4b, 0x0c, 0x29, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x1b, 0x34, 0x21, 0x42, 0xb5, 0x86, 0x3f, 0x97, 0x36, 0x58, 0x96, 0x31, 0x7c, 0xb0, 0x6c, 0xc6, 0xb9, 0x0d, 0x6f, 0xd9, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0x59, 0xc7, 0xae, 0xe1, 0x17, 0x97, 0x0d, 0x56, 0xb3, 0xbe, 0xae, 0xe1, 0x8d, 0xbb, 0x0d, 0x2f, 0xdf, 0x1d, 0xb4, 0xc4, 0x90, 0xd2, 0x41, 0x8b, 0x47, 0x56, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x1b, 0x34, 0xa0, 0x42, 0xb5, 0xe1, 0xdd, 0x9e, 0x0d, 0xda, 0x5f, 0xa1, 0xda, 0xa0, 0xf9, 0x71, 0xab, 0x83, 0xa6, 0x5f, 0xa8, 0x36, 0x28, 0xf8, 0x30, 0xd7, 0xa0, 0x98, 0xc4, 0xdc, 0x20, 0x60, 0x83, 0x0e, 0xda, 0x97, 0xa1, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0xcd, 0xea, 0x50, 0x6d, 0xd0, 0x42, 0x0f, 0xd5, 0x1a, 0x7e, 0x51, 0xda, 0x60, 0xd9, 0x8c, 0xf3, 0x86, 0xb7, 0x75, 0x0e, 0x96, 0x96, 0x0c, 0x77, 0x38, 0xc5, 0x5a, 0x83, 0xf6, 0xf0, 0x97, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0xda, 0xc3, 0x5f, 0x6a, 0x00, 0x7f, 0xb2, 0x32, 0xba, 0xb2, 0x31, 0x3a, 0x90, 0x32, 0xbc, 0xb4, 0x39, 0xba, 0x32, 0xb7, 0xb1, 0xb2, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0xcf, 0xa5, 0x01, 0x4f, 0xee, 0x8d, 0x3e, 0x58, 0x3d, 0x82, 0xbd, 0xe1, 0x2f, 0x9a, 0x0d, 0x1f, 0xac, 0x6e, 0x50, 0xf4, 0xe9, 0xae, 0x41, 0x93, 0x87, 0x62, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x0a, 0x8b, 0xe5, 0x35, 0xbc, 0xad, 0x73, 0xd0, 0x1a, 0xa3, 0x58, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0x17, 0xcd, 0x86, 0x0f, 0x56, 0x37, 0x28, 0xe1, 0x31, 0x37, 0x68, 0x8d, 0x51, 0x6c, 0x83, 0x22, 0xa7, 0x75, 0x83, 0x82, 0x34, 0x76, 0xc0, 0xcb, 0x2b, 0x83, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xcd, 0x42, 0x4a, 0xad, 0xe1, 0x8d, 0xbb, 0x83, 0x85, 0x00, 0xce, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xf4, 0xa0, 0x35, 0x46, 0xb1, 0x36, 0x28, 0xe1, 0x31, 0xd7, 0xa0, 0x21, 0x4c, 0xb1, 0x36, 0x28, 0x60, 0xf3, 0x37, 0x08, 0xd2, 0xd3, 0x35, 0x0e, 0x1d, 0x34, 0x0e, 0x2a, 0xb6, 0x06, 0x01, 0x1b, 0xb4, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0x41, 0x6b, 0x8c, 0x62, 0x1b, 0xde, 0xd6, 0x19, 0x9c, 0x3e, 0x68, 0x8d, 0x51, 0x6c, 0x0d, 0x1a, 0x18, 0x99, 0xda, 0xf0, 0xa0, 0xe4, 0x06, 0xa7, 0x8b, 0x8c, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xc2, 0xa1, 0xd4, 0x06, 0xab, 0xc0, 0x64, 0xd7, 0xf0, 0xb6, 0xce, 0xe0, 0xf0, 0x41, 0xe3, 0xa0, 0x62, 0xb5, 0x06, 0x61, 0x04, 0xb4, 0x41, 0x90, 0x9e, 0xae, 0x71, 0xe8, 0xa0, 0x5d, 0x59, 0xb1, 0x35, 0x08, 0xd8, 0xa0, 0x83, 0x02, 0x36, 0x7f, 0x0d, 0xc2, 0x08, 0x68, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0xdb, 0xa0, 0x15, 0x54, 0xb1, 0x35, 0x68, 0x60, 0x64, 0x6a, 0xc3, 0x83, 0x92, 0x1b, 0x9c, 0x2e, 0x32, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x0b, 0x87, 0x52, 0x1b, 0x2c, 0x73, 0x92, 0x5d, 0xc3, 0xdb, 0x3a, 0x83, 0xc3, 0x07, 0xed, 0xca, 0x8a, 0x55, 0xad, 0x06, 0x2d, 0x2c, 0xaa, 0x6c, 0x78, 0x7c, 0x64, 0x83, 0x16, 0x16, 0x55, 0x36, 0x28, 0x25, 0xc4, 0xd7, 0x70, 0x49, 0x6d, 0x50, 0xd4, 0x88, 0x1f, 0xb4, 0x55, 0xd5, 0xb5, 0xe1, 0x17, 0xa5, 0x0d, 0x5a, 0xa0, 0x90, 0xda, 0xf0, 0x17, 0xcd, 0x06, 0xcb, 0x66, 0x9c, 0x37, 0x08, 0xd2, 0xd3, 0x0d, 0x9a, 0x41, 0x91, 0x5a, 0x83, 0xa5, 0x44, 0xc4, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x71, 0x1f, 0xae, 0x0d, 0xda, 0x54, 0xf5, 0xda, 0xa0, 0xc1, 0x82, 0xaf, 0xd6, 0xa0, 0x85, 0x1d, 0xaf, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x98, 0xd1, 0x78, 0x83, 0x06, 0xce, 0xa6, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x2d, 0xac, 0x76, 0x6d, 0xd0, 0xdc, 0x90, 0xd7, 0x41, 0x13, 0xc9, 0x58, 0x1b, 0x34, 0x70, 0x36, 0xb5, 0x06, 0x85, 0x60, 0xea, 0xc1, 0x1a, 0x6c, 0xec, 0x83, 0x36, 0x73, 0xbb, 0xd6, 0xa0, 0xd1, 0x23, 0xaf, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x98, 0xd1, 0x78, 0x83, 0x06, 0xce, 0xa6, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x2d, 0xac, 0x76, 0x6d, 0xd0, 0x4a, 0xf9, 0xd5, 0x41, 0x13, 0xc9, 0x58, 0x07, 0x2d, 0x85, 0x8b, 0xad, 0x41, 0x13, 0x51, 0x5e, 0x1b, 0x94, 0x25, 0xef, 0x1b, 0xb4, 0x71, 0x1f, 0x75, 0xd0, 0xc0, 0x95, 0xd7, 0x1a, 0xb4, 0xd6, 0xe5, 0x75, 0xd0, 0x92, 0x98, 0xd7, 0x1a, 0x34, 0x82, 0xe6, 0x75, 0xd0, 0x4c, 0x7b, 0xd4, 0x1a, 0xb4, 0xd5, 0xe7, 0xb5, 0xe1, 0x2b, 0x9c, 0x0d, 0x7f, 0xd1, 0x6c, 0xb0, 0x6c, 0xc6, 0x79, 0x83, 0x82, 0x60, 0x76, 0x83, 0x76, 0x44, 0xbb, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x4d, 0x6a, 0x5e, 0x6c, 0xd0, 0xc2, 0x6a, 0xd7, 0x1a, 0x1c, 0xc3, 0x0d, 0x0e, 0x1a, 0x0b, 0xed, 0x6a, 0xc3, 0x2f, 0x2e, 0x1b, 0xb4, 0x22, 0x59, 0xb1, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0xed, 0x88, 0x76, 0x6d, 0xb8, 0xa4, 0xd6, 0x38, 0x74, 0xd0, 0x8e, 0x68, 0x57, 0xad, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0x41, 0x3b, 0xa2, 0x5d, 0x1b, 0x2e, 0xa9, 0x35, 0x9e, 0x1f, 0xb4, 0x23, 0xda, 0x55, 0xad, 0x41, 0x33, 0x75, 0x5e, 0x1b, 0x14, 0x04, 0xb3, 0x1b, 0xb4, 0x23, 0xda, 0xb5, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x06, 0x47, 0x66, 0xd5, 0x83, 0x16, 0x56, 0xbb, 0xd6, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0x1e, 0xbc, 0x39, 0x68, 0x2c, 0xb4, 0xeb, 0xa0, 0x11, 0x7f, 0xb1, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x0d, 0x52, 0x9c, 0x9c, 0x0e, 0x5a, 0x58, 0xed, 0x5a, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0xe2, 0x77, 0x83, 0xc6, 0x42, 0xbb, 0x0e, 0x0a, 0xe2, 0xf1, 0x83, 0xf6, 0x24, 0xbd, 0x36, 0xfc, 0xe2, 0xb2, 0x41, 0x93, 0x9a, 0x17, 0x1b, 0xb4, 0xb0, 0xda, 0x75, 0x50, 0xd6, 0x79, 0x6e, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0xab, 0x71, 0xe8, 0xa0, 0x19, 0x14, 0xa9, 0x83, 0xa6, 0xb4, 0x0a, 0x5a, 0x83, 0x46, 0xce, 0xbd, 0x0e, 0x9a, 0x57, 0xf7, 0x5a, 0x83, 0xe6, 0x02, 0xbd, 0x0e, 0x96, 0xd8, 0x6f, 0xaf, 0x41, 0x93, 0x8b, 0x5e, 0x07, 0xed, 0x49, 0x7a, 0xad, 0x41, 0xf3, 0x94, 0x5e, 0x07, 0xed, 0x49, 0x7a, 0xad, 0x41, 0xc3, 0x9e, 0x5e, 0x07, 0x2d, 0xac, 0x76, 0xad, 0x41, 0xd3, 0xa4, 0x5e, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0x25, 0xb5, 0x41, 0x8b, 0xd0, 0x52, 0x6b, 0xd0, 0xc0, 0xc8, 0xd4, 0x41, 0x9b, 0xaa, 0x5e, 0x1d, 0xb4, 0x4a, 0xeb, 0xb5, 0x06, 0x8d, 0xf9, 0x7a, 0x1d, 0xb4, 0xa9, 0xea, 0xb5, 0x06, 0x6d, 0x68, 0x7b, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0xe6, 0x76, 0xc6, 0x0e, 0xda, 0x0e, 0xf7, 0xda, 0xa0, 0xdd, 0x8a, 0xaf, 0x35, 0x68, 0x70, 0xde, 0x6b, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0xb7, 0x33, 0x76, 0xd0, 0xd0, 0xbe, 0xd7, 0x1a, 0xb4, 0xfb, 0xef, 0xb5, 0xe1, 0xdd, 0x9e, 0x0d, 0xda, 0x42, 0xa5, 0xda, 0xa0, 0x89, 0x85, 0xaf, 0x83, 0x46, 0xaf, 0xc5, 0xd6, 0xa0, 0xf1, 0x8c, 0xaf, 0x0d, 0x6f, 0xd9, 0xad, 0xe1, 0x92, 0xda, 0xa0, 0x11, 0x37, 0xa9, 0x35, 0x68, 0x60, 0x64, 0x6a, 0xc3, 0x25, 0xb5, 0xc1, 0x61, 0xbf, 0xe3, 0xa0, 0x05, 0x56, 0xaf, 0x0e, 0x1a, 0x2c, 0xf8, 0xda, 0xa0, 0x7d, 0x91, 0xaf, 0x35, 0x68, 0xe4, 0xe4, 0x6b, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0xdb, 0xa0, 0x55, 0x13, 0xaf, 0x83, 0x96, 0x7a, 0xc6, 0xd6, 0xa0, 0x05, 0x9c, 0xaf, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x83, 0x56, 0x4d, 0xbc, 0xd6, 0xa0, 0x81, 0x91, 0xa9, 0x83, 0x46, 0x7a, 0xbe, 0x5a, 0x83, 0xd6, 0xa0, 0xbe, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb9, 0xcb, 0x06, 0xed, 0x86, 0x7d, 0x1d, 0xb4, 0x50, 0xf6, 0xb5, 0x86, 0xcf, 0x5d, 0x36, 0x68, 0x73, 0xf3, 0xeb, 0xa0, 0x75, 0xcf, 0xaf, 0x36, 0x38, 0xb1, 0xdf, 0x6c, 0xd0, 0xcc, 0xc1, 0xd4, 0x06, 0x47, 0xd7, 0xc1, 0x35, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0x36, 0x68, 0xeb, 0xfb, 0x62, 0xc3, 0xdb, 0x3a, 0x07, 0x8d, 0xca, 0x7d, 0x6d, 0xd0, 0xd6, 0xf7, 0xc5, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0x0d, 0x8c, 0x4c, 0x1d, 0x34, 0x63, 0x37, 0x76, 0xd0, 0xbc, 0xc1, 0xd7, 0x1a, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x1b, 0xb4, 0xf5, 0x7d, 0xb1, 0xe1, 0x6d, 0x9d, 0x83, 0x06, 0x59, 0xbf, 0x36, 0x68, 0xeb, 0xfb, 0x62, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x06, 0x46, 0xa6, 0x0e, 0x5a, 0x07, 0x1c, 0x3b, 0x68, 0xe7, 0xf9, 0xab, 0x35, 0x68, 0x97, 0xfc, 0xeb, 0xa0, 0x3d, 0x49, 0xaf, 0x35, 0x68, 0xf3, 0xb5, 0xeb, 0xa0, 0x3d, 0x49, 0xaf, 0x0d, 0x9a, 0x5b, 0x03, 0x5b, 0x83, 0xe6, 0xea, 0xc0, 0x0e, 0xda, 0x54, 0xf5, 0x5a, 0x83, 0x46, 0xf7, 0xc0, 0x0e, 0xda, 0xfa, 0xbe, 0x58, 0x83, 0x26, 0x1a, 0xc1, 0x0e, 0x5a, 0xa4, 0x16, 0x5b, 0x83, 0xc6, 0x54, 0xc1, 0x0e, 0x9a, 0x7a, 0x05, 0x5b, 0x83, 0xf6, 0x11, 0xc1, 0x0e, 0x96, 0xd8, 0x6f, 0xaf, 0x41, 0xab, 0xb2, 0x60, 0x1b, 0x3e, 0xc8, 0xd9, 0xa0, 0xb1, 0x5b, 0xb0, 0x83, 0x76, 0x98, 0xc1, 0xd6, 0xa0, 0xfd, 0x67, 0xb0, 0x83, 0xb6, 0xbe, 0x2f, 0xd6, 0x20, 0x4c, 0xc7, 0x36, 0x7c, 0x62, 0xb3, 0x41, 0xdb, 0xd5, 0x60, 0x1b, 0x3e, 0xc8, 0xd9, 0xa0, 0xe1, 0x6c, 0xb0, 0x35, 0xbc, 0x65, 0xb7, 0x41, 0xb3, 0xde, 0x60, 0x1b, 0x9c, 0x0b, 0x17, 0xd6, 0x90, 0xc7, 0xde, 0xf0, 0x23, 0xcc, 0xe0, 0xf4, 0x41, 0xc3, 0x84, 0x2a, 0x07, 0xe1, 0xa9, 0x7a, 0xd0, 0x04, 0x3b, 0x58, 0xb3, 0x06, 0x2d, 0x8d, 0xaa, 0x6c, 0x78, 0x7c, 0x64, 0x83, 0x96, 0x46, 0x55, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0x36, 0x68, 0xf4, 0xc6, 0xea, 0xa0, 0xfd, 0x09, 0xa9, 0x0d, 0x7f, 0xd1, 0x6c, 0xd0, 0x74, 0x8f, 0xd5, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x80, 0x87, 0x56, 0x07, 0x6f, 0x50, 0x96, 0xbc, 0x2f, 0xe0, 0xcb, 0x95, 0x95, 0xad, 0x1d, 0x34, 0x75, 0xdf, 0xb5, 0x41, 0x09, 0x8f, 0xb9, 0x06, 0x2d, 0xe1, 0x8e, 0xb5, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0xe6, 0x24, 0xbb, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x40, 0x55, 0xea, 0xa0, 0x19, 0x13, 0xa9, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0xfb, 0x2b, 0x54, 0x1b, 0x34, 0x18, 0x66, 0xb5, 0x86, 0xb7, 0x75, 0x06, 0xaf, 0x0f, 0xda, 0xef, 0x1d, 0x6b, 0x35, 0x68, 0x60, 0x7b, 0x69, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x16, 0x6d, 0xab, 0x0e, 0xda, 0x9f, 0x90, 0xda, 0xf0, 0x17, 0xcd, 0x1a, 0x3e, 0x57, 0x3a, 0x58, 0x4a, 0x5f, 0xbe, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0xb2, 0x41, 0x8a, 0xa6, 0xf1, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x40, 0x55, 0x6a, 0x83, 0xb6, 0x85, 0xab, 0x0e, 0x5a, 0x3a, 0x91, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xf0, 0xd4, 0xde, 0xdc, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x41, 0xc9, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0x87, 0xc1, 0x95, 0xe1, 0x1d, 0xb4, 0x99, 0x1c, 0xb6, 0x86, 0xb7, 0x75, 0x36, 0x68, 0xa0, 0x34, 0xac, 0x35, 0xbc, 0xad, 0x33, 0x78, 0x7c, 0x90, 0x8e, 0x78, 0xdc, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x2b, 0xd9, 0x1a, 0x14, 0x93, 0x98, 0x1b, 0x84, 0xe0, 0xc3, 0x06, 0xcd, 0x6a, 0x8f, 0xb5, 0x06, 0xc5, 0x24, 0xe6, 0x06, 0x0b, 0x69, 0xc2, 0x37, 0x0e, 0x0d, 0x5e, 0x1f, 0xb4, 0x93, 0x3e, 0xd6, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0xdb, 0x3a, 0x83, 0xc3, 0x07, 0xe9, 0x88, 0xc7, 0x07, 0x0d, 0x8c, 0x8f, 0x6d, 0xf8, 0xc5, 0x65, 0x83, 0x66, 0xdf, 0xc7, 0x36, 0x58, 0x3e, 0x85, 0xbc, 0x86, 0xb7, 0x75, 0x06, 0x87, 0x0f, 0xda, 0x68, 0x1f, 0xeb, 0x70, 0x8a, 0xd5, 0x1a, 0xb4, 0xb7, 0xbf, 0x74, 0x10, 0x9e, 0xaa, 0xab, 0x41, 0xf3, 0xc5, 0x2a, 0x1b, 0x1e, 0x1f, 0xd9, 0xa0, 0xf9, 0x62, 0x95, 0x0d, 0xbf, 0x28, 0x6d, 0xd0, 0x02, 0x85, 0xd4, 0x86, 0xbf, 0x68, 0x36, 0x58, 0x36, 0xe3, 0xbc, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xe3, 0x2e, 0x25, 0x6d, 0x50, 0xe4, 0xb4, 0x1e, 0xb4, 0x74, 0x22, 0xb5, 0x1a, 0x34, 0x70, 0xbe, 0xb4, 0xe1, 0x2f, 0x9a, 0x0d, 0xce, 0x04, 0xa3, 0x1b, 0x94, 0x25, 0xef, 0x1b, 0x34, 0xe2, 0x26, 0xb5, 0x86, 0xb7, 0x75, 0x06, 0xbe, 0x6e, 0xee, 0xa0, 0x59, 0x0d, 0xaa, 0xd5, 0xa0, 0xc9, 0x0b, 0xab, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0xb4, 0x41, 0x93, 0xdc, 0x5c, 0x07, 0xcb, 0xd8, 0xcb, 0x0f, 0x1a, 0x81, 0xad, 0xda, 0xf0, 0x17, 0xcd, 0x06, 0xcb, 0x66, 0x9c, 0x37, 0x7c, 0x90, 0xb3, 0x06, 0xc5, 0x24, 0xe6, 0x06, 0x01, 0x1b, 0xb4, 0x71, 0xe8, 0xa0, 0xd1, 0x77, 0xae, 0x35, 0x7c, 0x85, 0xb3, 0xe1, 0x2f, 0x9a, 0x0d, 0x96, 0xcd, 0x38, 0x6f, 0x50, 0xc2, 0x63, 0x6e, 0xb0, 0xb6, 0x13, 0x7e, 0x0d, 0x6f, 0xeb, 0x0c, 0x0e, 0x1f, 0x34, 0xfa, 0xce, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0xb2, 0x41, 0xd3, 0xfd, 0x5c, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xfd, 0x5c, 0xa9, 0x83, 0x26, 0x06, 0xba, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x36, 0x58, 0xbd, 0x7f, 0xb9, 0xe1, 0xdd, 0x9e, 0x35, 0x5c, 0x52, 0x1b, 0xb4, 0xab, 0x2c, 0xb5, 0x06, 0x0d, 0x8c, 0x4c, 0x1d, 0x34, 0x24, 0x42, 0xd6, 0x06, 0xcd, 0x41, 0x74, 0xad, 0xe1, 0x6d, 0x9d, 0x83, 0x86, 0x28, 0xba, 0xda, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0x36, 0x68, 0x19, 0xa5, 0x6b, 0x0d, 0xda, 0x18, 0x21, 0xdb, 0xf0, 0xb6, 0xce, 0x41, 0xc3, 0x25, 0x5d, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x6c, 0xd0, 0xa2, 0xbc, 0xd4, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x8b, 0x40, 0x46, 0x37, 0x28, 0x9b, 0xde, 0xd7, 0xf0, 0xb6, 0xce, 0x41, 0x23, 0xef, 0x5c, 0x6d, 0x70, 0x62, 0xbf, 0xd9, 0xa0, 0x21, 0x45, 0xa9, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0xfa, 0x65, 0x83, 0xe6, 0xc3, 0xba, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x58, 0xdb, 0x09, 0xbf, 0x41, 0xf3, 0x61, 0x5d, 0x1b, 0x3e, 0xb1, 0xd9, 0xa0, 0xc9, 0x12, 0xb2, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x0d, 0x1a, 0x3d, 0xeb, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x2d, 0x33, 0x4b, 0x6d, 0xd0, 0x1c, 0x44, 0xd7, 0x06, 0xad, 0xce, 0x90, 0x6d, 0xd0, 0x7c, 0x58, 0x57, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x06, 0x2d, 0xa3, 0x74, 0xad, 0x41, 0xf3, 0x01, 0x53, 0x1b, 0xde, 0xd6, 0x39, 0x68, 0x09, 0xb0, 0xab, 0xd5, 0xa0, 0x99, 0x85, 0x96, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x66, 0x16, 0x5a, 0x1a, 0xc0, 0x5b, 0xae, 0xcc, 0xac, 0x4e, 0x4e, 0x2c, 0x6d, 0x0e, 0x0d, 0xc4, 0x2c, 0x6c, 0xac, 0x6c, 0x6e, 0xc3, 0xe3, 0x23, 0x1b, 0x34, 0xb3, 0xd0, 0xb2, 0xe1, 0x17, 0xa5, 0x0d, 0x5a, 0xb1, 0xa8, 0xda, 0xf0, 0x17, 0xcd, 0x06, 0xcb, 0x66, 0x9c, 0x37, 0x28, 0xed, 0x2d, 0xd7, 0xf0, 0xe7, 0xd2, 0x80, 0x87, 0xf6, 0x36, 0x6f, 0x10, 0xfa, 0x25, 0x1b, 0x84, 0x94, 0xc9, 0x1a, 0xfe, 0x9d, 0x5f, 0x83, 0x65, 0xee, 0xd9, 0xd5, 0x06, 0x05, 0x69, 0xec, 0x1a, 0xbe, 0x6f, 0xdf, 0xa0, 0x35, 0x97, 0x95, 0x0d, 0x4a, 0xe8, 0xd8, 0x35, 0x08, 0xfd, 0x92, 0x0d, 0x4a, 0xc4, 0xf7, 0x0d, 0xda, 0x6e, 0x23, 0xeb, 0x20, 0x4c, 0xc7, 0x36, 0x68, 0xe5, 0x36, 0x6c, 0x83, 0xd2, 0xde, 0x72, 0x0d, 0x7f, 0x2e, 0x6d, 0xd0, 0xee, 0x46, 0xd5, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0x89, 0xf8, 0xbe, 0x41, 0xf3, 0xc9, 0x55, 0x6d, 0x78, 0x50, 0x72, 0x0d, 0x96, 0xd4, 0x2f, 0xad, 0xe1, 0x8d, 0xbb, 0x0d, 0x2f, 0xdf, 0x1d, 0xb4, 0x1d, 0xd0, 0x72, 0xd0, 0x32, 0x48, 0xd5, 0x06, 0x25, 0x0b, 0xfb, 0x2c, 0xb3, 0x06, 0x8b, 0x2e, 0xad, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x16, 0x5d, 0x5a, 0x35, 0x00, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x61, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x79, 0x1b, 0xfe, 0xa2, 0xd9, 0x60, 0xd9, 0x8c, 0xf3, 0x06, 0x05, 0x69, 0xec, 0x80, 0xc7, 0xf6, 0x66, 0xaf, 0x41, 0x41, 0x1a, 0xbb, 0x41, 0x8b, 0x95, 0x64, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x27, 0x2b, 0x0b, 0x93, 0xdb, 0xa0, 0x84, 0xc7, 0x5c, 0x83, 0x16, 0x2b, 0xc9, 0x5a, 0x83, 0x75, 0xab, 0x4c, 0xb3, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xc6, 0xdd, 0x86, 0x97, 0xef, 0x0e, 0x5a, 0x73, 0x59, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0xb4, 0xe6, 0xb2, 0x52, 0x07, 0xe1, 0xa9, 0xba, 0xe1, 0xdd, 0x9e, 0x0d, 0xce, 0x86, 0x2e, 0x6b, 0x78, 0x5b, 0xe7, 0xa0, 0x19, 0x4e, 0xb2, 0x36, 0x7c, 0x85, 0xb3, 0xe1, 0x2f, 0x9a, 0x0d, 0x96, 0xcd, 0x38, 0x6f, 0x50, 0xc2, 0x63, 0x6e, 0xd0, 0x0c, 0x27, 0xd9, 0x06, 0x0d, 0x9c, 0x4d, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xd0, 0x0c, 0x27, 0xd9, 0x86, 0xb7, 0x75, 0x06, 0xa7, 0x0f, 0x9a, 0xe1, 0x24, 0x5b, 0x83, 0x06, 0x46, 0xa6, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0xbb, 0x4e, 0x5c, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xf4, 0xa0, 0x19, 0x4e, 0xb2, 0x83, 0x66, 0x35, 0xa8, 0x5a, 0x0d, 0x1a, 0xce, 0x24, 0xdb, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x68, 0x38, 0x93, 0xac, 0x01, 0xf8, 0x90, 0x2b, 0x9b, 0x7b, 0x63, 0xb3, 0x2b, 0x03, 0xa1, 0x7b, 0x7b, 0x63, 0x03, 0x99, 0xa3, 0x0b, 0x1b, 0x5b, 0xdb, 0xf0, 0x17, 0xcd, 0x1a, 0x84, 0x7e, 0xc9, 0x06, 0x65, 0x13, 0xe6, 0x41, 0x03, 0x78, 0x64, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0xb4, 0x34, 0x4a, 0xb6, 0xc1, 0xba, 0x86, 0xf5, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0x28, 0x26, 0x31, 0x37, 0x68, 0x75, 0x9b, 0xea, 0xa0, 0xa5, 0x51, 0xb2, 0x35, 0x58, 0xb7, 0xca, 0x34, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0xee, 0xa0, 0x65, 0xf1, 0x95, 0x83, 0xc6, 0x44, 0xc9, 0x0e, 0x0a, 0x8a, 0xcc, 0x0d, 0x0a, 0x43, 0xd5, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x0a, 0xd2, 0xd8, 0x0d, 0xd6, 0xf9, 0x8a, 0xae, 0xe1, 0x6d, 0x9d, 0xc1, 0xdd, 0x83, 0x96, 0x46, 0xc9, 0x36, 0x28, 0x48, 0x63, 0x37, 0x28, 0x0b, 0x8b, 0xd7, 0xf0, 0xb9, 0xcb, 0x1a, 0x26, 0x6e, 0x70, 0x38, 0x3c, 0xde, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0xa1, 0xe7, 0xe4, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0x65, 0x36, 0xb2, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xf4, 0x9c, 0xdc, 0x60, 0xad, 0xc6, 0x68, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0x80, 0x2e, 0x61, 0x6c, 0x6d, 0x6f, 0x73, 0x74, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x30, 0x2e, 0x20, 0x20, 0x62, 0x72, 0x75, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6e, 0x65, 0xae, 0x0d, 0x0a, 0xd2, 0xd8, 0x0d, 0xd6, 0x13, 0xc3, 0xae, 0x41, 0x69, 0x6f, 0xb9, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb6, 0x3a, 0xf8, 0xe0, 0x7c, 0x47, 0xb8, 0x41, 0x69, 0x6f, 0xb9, 0x86, 0x3f, 0x97, 0x36, 0x58, 0x4f, 0x0c, 0x7b, 0x50, 0x66, 0xe9, 0x6e, 0xf8, 0x0a, 0x67, 0xc3, 0x5f, 0x34, 0x1b, 0x94, 0x59, 0xba, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xaf, 0x64, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x37, 0x8a, 0x1b, 0x2c, 0x19, 0x86, 0x5d, 0xc3, 0xdb, 0x3a, 0x83, 0xc3, 0x07, 0xe5, 0x9a, 0x71, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x37, 0x8a, 0x1b, 0x2c, 0x19, 0x86, 0x5d, 0xc3, 0xdb, 0x3a, 0x83, 0xc7, 0x07, 0xe5, 0x9a, 0x71, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x8e, 0xb1, 0x63, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x46, 0xf6, 0xc9, 0x3a, 0x28, 0x9c, 0x64, 0x37, 0x28, 0x48, 0x63, 0x37, 0x48, 0x46, 0x26, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x9c, 0xde, 0xe2, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x4f, 0x01, 0x37, 0x68, 0x0e, 0xa1, 0x6c, 0x83, 0x25, 0xc3, 0xb0, 0x1d, 0xb4, 0x5b, 0x4e, 0xb6, 0x41, 0x41, 0x1a, 0x3b, 0xe0, 0xb1, 0x85, 0xc1, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x83, 0x85, 0xe0, 0x06, 0x4b, 0x86, 0x61, 0x0f, 0x1a, 0x4f, 0x27, 0xdb, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0x60, 0x35, 0x31, 0xec, 0x86, 0x8f, 0xa3, 0x0e, 0x96, 0x0c, 0xc3, 0xae, 0x41, 0xf3, 0x12, 0x65, 0x1b, 0x14, 0x3b, 0x9a, 0x6b, 0xf8, 0x37, 0x67, 0x83, 0x54, 0xff, 0xd2, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0xce, 0x47, 0x59, 0x1b, 0xb4, 0x21, 0x51, 0xb6, 0xc1, 0x31, 0xdc, 0xe0, 0x60, 0xc9, 0x30, 0x6c, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0x44, 0xd0, 0xb6, 0x41, 0xcb, 0xe5, 0x64, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xd3, 0x5b, 0xdc, 0x41, 0x3b, 0x22, 0x65, 0xcd, 0x1a, 0x34, 0x1b, 0x52, 0xb5, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xd0, 0x6c, 0x48, 0x55, 0x03, 0xf8, 0xcf, 0xd5, 0x89, 0xa9, 0x95, 0x8d, 0xd1, 0x81, 0xd0, 0xc9, 0x85, 0xd9, 0x95, 0xc9, 0xcd, 0x95, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0x65, 0x33, 0xce, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xaf, 0x64, 0x1b, 0xb4, 0x50, 0x78, 0xb5, 0x06, 0xc5, 0x24, 0xe6, 0x1a, 0x04, 0x9b, 0xe9, 0x06, 0xeb, 0xdd, 0x99, 0x37, 0x58, 0x2f, 0xd2, 0xbc, 0x86, 0xcf, 0x95, 0xd6, 0x20, 0xd8, 0x4c, 0x37, 0x58, 0xf3, 0xd2, 0xbc, 0xc1, 0x6a, 0x24, 0xee, 0x0e, 0x0e, 0x31, 0x1d, 0x1d, 0xac, 0xbb, 0x40, 0x6e, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0xe8, 0xd2, 0xaa, 0x0d, 0x82, 0xf4, 0x74, 0x83, 0x06, 0x46, 0xa6, 0xd6, 0xa0, 0x05, 0xa4, 0xb2, 0x0d, 0x0f, 0x4a, 0x6e, 0xd0, 0x60, 0x54, 0xd9, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x80, 0xa7, 0xea, 0x20, 0x3d, 0x05, 0x6a, 0x0d, 0xda, 0xf0, 0x9c, 0xda, 0xa0, 0x94, 0x10, 0xdf, 0xa0, 0x5d, 0xac, 0xb2, 0x0d, 0x0a, 0x3e, 0xcc, 0x0d, 0x9a, 0xcd, 0xac, 0xda, 0x70, 0x49, 0x6d, 0xd0, 0x96, 0x54, 0xd9, 0x1a, 0x34, 0x30, 0x32, 0xb5, 0xc1, 0xda, 0xb8, 0xa6, 0xd5, 0xa0, 0x51, 0x73, 0xb2, 0x83, 0x82, 0x22, 0x73, 0x0d, 0x5a, 0x1a, 0x25, 0x3b, 0x68, 0xe5, 0x36, 0xac, 0x0d, 0xce, 0xf9, 0x4b, 0x1b, 0xb4, 0x22, 0x59, 0xb1, 0x86, 0x4b, 0x6a, 0x83, 0x46, 0x43, 0xaa, 0x36, 0x68, 0xc3, 0x8d, 0x6a, 0x0d, 0xd6, 0x5d, 0x20, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0xf6, 0xc1, 0xad, 0x36, 0x68, 0x6d, 0x53, 0xec, 0x20, 0x58, 0x59, 0xdb, 0x70, 0x49, 0x6d, 0xd0, 0x68, 0x48, 0xd5, 0x06, 0x4d, 0xc9, 0x51, 0xad, 0xc1, 0xba, 0x0b, 0xe4, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0x3e, 0xb8, 0xd5, 0x06, 0xad, 0x6d, 0x8a, 0x1d, 0x14, 0x94, 0xe2, 0xb5, 0x06, 0x2d, 0xc3, 0x4e, 0x6d, 0xb8, 0xa4, 0x36, 0x68, 0x34, 0xa4, 0x6a, 0x0d, 0x1a, 0x35, 0x27, 0xdb, 0xf0, 0x8b, 0xcb, 0x06, 0x6d, 0x4d, 0x4e, 0x1d, 0xb4, 0x5b, 0x4e, 0x76, 0xd0, 0x90, 0x1c, 0xd5, 0x06, 0x6d, 0x68, 0x71, 0x6d, 0xd0, 0xaa, 0x14, 0xd7, 0x1a, 0x34, 0x29, 0x3d, 0xb5, 0x41, 0x29, 0x21, 0xbe, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x80, 0xa7, 0xea, 0x20, 0xd5, 0x16, 0x6e, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0x8a, 0x49, 0xcc, 0x0d, 0x9a, 0x94, 0x9e, 0x3a, 0x68, 0x60, 0x64, 0x6a, 0xc3, 0x07, 0x39, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x8e, 0xd6, 0x1a, 0x1b, 0x94, 0x4d, 0xef, 0x07, 0x29, 0x5a, 0x9d, 0x1b, 0x34, 0x86, 0x67, 0xd5, 0x06, 0x0d, 0x5b, 0x95, 0x6d, 0xf8, 0x20, 0x67, 0x83, 0xe6, 0xdb, 0xaf, 0xd6, 0xf0, 0xa0, 0xe4, 0x06, 0x0d, 0x46, 0x95, 0x1d, 0xb4, 0x93, 0x58, 0xb6, 0xe1, 0x13, 0x9b, 0x0d, 0x5a, 0x02, 0x96, 0xda, 0xe0, 0x68, 0xc3, 0xb7, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x86, 0x67, 0x26, 0x0f, 0x4e, 0x2b, 0x67, 0x07, 0x8d, 0x87, 0x51, 0x6d, 0xb8, 0xa4, 0x36, 0x68, 0x34, 0xa4, 0x6a, 0x0d, 0x1a, 0x18, 0x99, 0x3a, 0x3c, 0x33, 0xb9, 0x06, 0x2d, 0xb9, 0x55, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x76, 0xef, 0xaa, 0x0e, 0x9a, 0x86, 0xbf, 0xaa, 0xd5, 0xa0, 0x75, 0x9e, 0xaa, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xd6, 0x79, 0xaa, 0x1a, 0x80, 0x17, 0xb9, 0x32, 0xb2, 0xba, 0xb1, 0x32, 0x10, 0xb1, 0x3c, 0x10, 0xb9, 0x32, 0xb3, 0x32, 0xb9, 0x32, 0xb7, 0xb1, 0xb2, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0xa1, 0xbd, 0x91, 0x87, 0x0f, 0x56, 0xdb, 0xf0, 0xf5, 0xcb, 0x06, 0x89, 0x2d, 0x55, 0x1b, 0x9c, 0x1c, 0xe4, 0x36, 0x58, 0x77, 0x81, 0xbc, 0x41, 0x62, 0x4b, 0xd5, 0x1a, 0xb4, 0x91, 0x3c, 0xb5, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0x1d, 0x34, 0x86, 0x5a, 0xb5, 0x06, 0x2d, 0xc3, 0x4e, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x1b, 0x34, 0x87, 0x5a, 0xb5, 0x06, 0x2d, 0x8d, 0x92, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x12, 0x37, 0x6a, 0x37, 0x28, 0x9b, 0xde, 0x0f, 0x1a, 0x13, 0x25, 0x5b, 0xc3, 0x2f, 0x4a, 0x1b, 0xb4, 0xdd, 0x46, 0xb6, 0xe1, 0x17, 0x97, 0x0d, 0x5a, 0x17, 0xad, 0x3a, 0x38, 0x6d, 0xa1, 0xd5, 0x1a, 0x34, 0xea, 0x3b, 0xb5, 0xc1, 0xd1, 0x86, 0x6f, 0x0d, 0x97, 0xd4, 0x86, 0xab, 0x6b, 0x0d, 0x5a, 0x1a, 0x25, 0x3b, 0x68, 0x2c, 0x18, 0x6c, 0x0d, 0xd6, 0x5d, 0x20, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0x66, 0x0e, 0xa6, 0x36, 0x68, 0x67, 0x18, 0xac, 0x36, 0x28, 0x48, 0x63, 0x37, 0x48, 0x5a, 0xf5, 0xdc, 0xa0, 0x61, 0x2a, 0xac, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x8b, 0x66, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0xd2, 0x9b, 0x7e, 0x83, 0x26, 0xec, 0xc8, 0x36, 0x68, 0x32, 0xac, 0xaa, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x92, 0xf5, 0x3f, 0x37, 0x38, 0xcb, 0x4a, 0x6d, 0x50, 0x90, 0xc6, 0x6e, 0x30, 0x16, 0xc4, 0xd6, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0x20, 0x59, 0xff, 0x73, 0xc3, 0xdb, 0x3a, 0x83, 0xd3, 0x07, 0xc9, 0xfa, 0x9f, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x1a, 0x5e, 0xa8, 0x6a, 0x0d, 0x6f, 0xeb, 0x0c, 0x9e, 0x1e, 0x24, 0xeb, 0x7f, 0xb6, 0x41, 0x29, 0xaa, 0xb9, 0x41, 0x41, 0x1a, 0xbb, 0xc1, 0xe8, 0x31, 0x5c, 0xc3, 0x25, 0xb5, 0xc1, 0x61, 0xbf, 0x63, 0x0d, 0xd6, 0x5d, 0x20, 0x1f, 0x34, 0x60, 0x5f, 0xd6, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0x1c, 0xfb, 0x6f, 0x36, 0x28, 0x9b, 0xde, 0xd7, 0xf0, 0xb6, 0xce, 0xe0, 0xf0, 0x41, 0x01, 0xab, 0xd9, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0x35, 0x97, 0x95, 0x83, 0x53, 0x79, 0x5c, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0xe6, 0xfe, 0xf8, 0xe0, 0x54, 0x1e, 0xb7, 0x86, 0xb7, 0x75, 0x06, 0x8f, 0x0f, 0x0a, 0x58, 0xcd, 0x5a, 0x83, 0x26, 0xa5, 0xa7, 0x36, 0x28, 0x76, 0x34, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0xed, 0xea, 0x96, 0xb5, 0x41, 0x62, 0x4b, 0xd5, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0x76, 0xd0, 0x54, 0x12, 0x56, 0x87, 0x53, 0xac, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x6b, 0x0d, 0x1a, 0x3f, 0x6a, 0xd9, 0xf0, 0xf8, 0xc8, 0x06, 0x8d, 0x1f, 0xb5, 0x6c, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x6d, 0xb0, 0x90, 0xc2, 0x7c, 0x83, 0xd0, 0x2f, 0xd9, 0x20, 0xa4, 0x4c, 0xd6, 0xf0, 0xb9, 0xd2, 0xc1, 0xe2, 0x57, 0xee, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0xb2, 0x19, 0xe7, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0xd6, 0xa7, 0xd6, 0xae, 0xe1, 0x6d, 0x9d, 0x83, 0x65, 0x14, 0xe6, 0x6b, 0xf8, 0x45, 0x69, 0x83, 0x46, 0x44, 0xcc, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x43, 0x92, 0x65, 0x1b, 0x2c, 0x52, 0xc4, 0xab, 0x35, 0x38, 0x17, 0x2e, 0xac, 0x21, 0x8f, 0xbd, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0x83, 0xc6, 0x43, 0x5a, 0x0e, 0xc2, 0x53, 0x75, 0x83, 0x52, 0x42, 0x7c, 0x0d, 0x97, 0xd4, 0x06, 0x45, 0x8d, 0xf8, 0x1a, 0x24, 0x77, 0x75, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0xca, 0x9d, 0xf7, 0x83, 0x96, 0x28, 0xcb, 0x36, 0x68, 0x1d, 0xc5, 0xac, 0x36, 0x38, 0xb1, 0xdf, 0x6c, 0xd0, 0xcc, 0xc1, 0xd4, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x8b, 0x40, 0x46, 0x37, 0x28, 0x9b, 0xde, 0xd7, 0xe0, 0xc4, 0x7e, 0xb3, 0x41, 0x73, 0x5b, 0x55, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x44, 0xaa, 0xde, 0xa0, 0x75, 0x14, 0xb3, 0x35, 0xfc, 0xa2, 0xb4, 0x41, 0x23, 0x22, 0x66, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0x25, 0xb5, 0x41, 0x1b, 0xf7, 0x51, 0x07, 0x8d, 0x8b, 0x4c, 0x1d, 0x1c, 0x7a, 0xf9, 0x6a, 0x35, 0x68, 0x25, 0xaa, 0x65, 0xc3, 0xe3, 0x23, 0x1b, 0xb4, 0x12, 0xd5, 0xb2, 0xe1, 0x17, 0xa5, 0x0d, 0x5a, 0x71, 0xad, 0xda, 0xf0, 0x17, 0xcd, 0x06, 0xcb, 0x66, 0x9c, 0x37, 0x28, 0x4b, 0xde, 0x37, 0x68, 0xe3, 0x3e, 0x6a, 0x83, 0x26, 0xae, 0xbc, 0x36, 0x68, 0xfc, 0x85, 0xea, 0xa0, 0xd9, 0x00, 0xab, 0x59, 0x83, 0x86, 0x1b, 0xb2, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0xf3, 0xac, 0xcc, 0xad, 0x4c, 0x2e, 0x8c, 0xae, 0x0c, 0xc4, 0xec, 0x4d, 0xae, 0xad, 0x8e, 0x2d, 0x0c, 0xc4, 0x4c, 0xee, 0xad, 0x0d, 0xc4, 0xec, 0xed, 0x8d, 0x6e, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x26, 0x80, 0xa9, 0x0e, 0x9a, 0x67, 0x1e, 0xdb, 0xf0, 0x17, 0xcd, 0x06, 0x6b, 0xdf, 0x9d, 0x37, 0x58, 0x0e, 0xc9, 0x34, 0x1b, 0x3e, 0xb1, 0xd9, 0xa0, 0xc1, 0xa2, 0xad, 0x0d, 0x82, 0xf4, 0x74, 0x83, 0x86, 0xa9, 0xa9, 0xd6, 0x60, 0x95, 0xf8, 0xf6, 0x86, 0x07, 0x25, 0x37, 0x38, 0x1d, 0x89, 0x1c, 0xb4, 0x4b, 0x3d, 0xb6, 0x06, 0xeb, 0xb9, 0xb7, 0x37, 0x3c, 0x28, 0xb9, 0xc1, 0xe9, 0x48, 0x64, 0xc3, 0xbb, 0x3d, 0x6b, 0xb8, 0xa4, 0x36, 0x68, 0x7e, 0x44, 0xea, 0xa0, 0xad, 0xaa, 0xae, 0x83, 0x66, 0xad, 0xc7, 0x3a, 0x9c, 0x62, 0xad, 0x41, 0x33, 0x28, 0x4c, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x1b, 0x34, 0x7a, 0x63, 0xb5, 0x86, 0x3f, 0x97, 0x36, 0x18, 0x4c, 0x1d, 0x07, 0x6b, 0x40, 0xcb, 0xdb, 0xf0, 0x17, 0xcd, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0xac, 0x52, 0xff, 0x3d, 0x7c, 0xb0, 0xba, 0x86, 0x3f, 0x97, 0x36, 0x18, 0x25, 0x7d, 0x87, 0x0f, 0x56, 0xdb, 0xf0, 0x41, 0xce, 0x1a, 0x14, 0x93, 0x98, 0x1b, 0xac, 0x11, 0x2d, 0x3f, 0x28, 0xa5, 0x7f, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0x45, 0x4e, 0xeb, 0x41, 0x7a, 0x0a, 0xd4, 0x06, 0x41, 0x7a, 0xba, 0x41, 0x5b, 0x62, 0x56, 0x6b, 0xb0, 0x38, 0xbf, 0x79, 0xc3, 0x2f, 0x2e, 0x1b, 0x14, 0xb0, 0xf9, 0x07, 0xa9, 0xb6, 0x70, 0x6b, 0xb0, 0xe0, 0xbf, 0xf9, 0xa0, 0x51, 0x48, 0xb3, 0x35, 0x58, 0xf0, 0xde, 0xbc, 0xe1, 0x17, 0x97, 0x35, 0x28, 0x26, 0x31, 0x37, 0x58, 0x17, 0x5b, 0x7e, 0x50, 0x4a, 0xff, 0x1e, 0xa4, 0xda, 0xc2, 0xad, 0xc1, 0x32, 0xfa, 0xe6, 0x0d, 0xbf, 0xb8, 0xac, 0x41, 0x31, 0x89, 0xb9, 0xc1, 0x6a, 0xd3, 0xf2, 0x83, 0x52, 0xfa, 0xf7, 0x20, 0xd5, 0x16, 0xae, 0xc3, 0x29, 0xb6, 0x06, 0x4d, 0x5e, 0x30, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0x80, 0x1f, 0x6d, 0x75, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x65, 0x65, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x72, 0x65, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x1b, 0x34, 0xd0, 0x4b, 0x75, 0xd0, 0x6a, 0x22, 0xd6, 0x86, 0xbf, 0x68, 0x36, 0x68, 0x3e, 0xb9, 0x6a, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xc0, 0xcb, 0x2b, 0xa3, 0x0f, 0xda, 0x16, 0xc6, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xf0, 0xd0, 0xea, 0xda, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x98, 0xd1, 0x78, 0x83, 0x06, 0x9c, 0xa6, 0x36, 0x68, 0xbf, 0x18, 0x6b, 0x83, 0x06, 0x9c, 0xa6, 0x0e, 0x1a, 0x5b, 0xc6, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0x25, 0xb5, 0x06, 0x8d, 0xe7, 0x52, 0xb5, 0x06, 0x0d, 0x8c, 0x4c, 0x6d, 0x78, 0x5b, 0x67, 0x83, 0x06, 0x7a, 0xcd, 0x6a, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0x3c, 0xb0, 0x59, 0x07, 0x0d, 0x3f, 0x63, 0x6d, 0xf8, 0xc5, 0x65, 0x83, 0xb6, 0x9a, 0xcd, 0x36, 0x68, 0xf0, 0xd9, 0xac, 0xd5, 0xa0, 0x55, 0x20, 0x97, 0x0d, 0x8f, 0x8f, 0x6c, 0xd0, 0x2a, 0x90, 0xcb, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0xda, 0xa0, 0x45, 0x1c, 0xab, 0x83, 0x05, 0xed, 0xcd, 0x1b, 0x34, 0xd4, 0x1e, 0xd6, 0x86, 0xbf, 0x68, 0x36, 0x58, 0x36, 0xe3, 0xbc, 0xe1, 0x83, 0x9c, 0x35, 0xfc, 0x9b, 0xb3, 0xe1, 0x31, 0x99, 0x83, 0x76, 0xca, 0xb6, 0x36, 0x68, 0xe0, 0x6c, 0x6a, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0x9f, 0xbb, 0x6c, 0x90, 0x40, 0xb8, 0xb9, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0xc1, 0x22, 0x1f, 0xb4, 0x52, 0xb6, 0xb5, 0x86, 0xcf, 0x5d, 0x06, 0x3c, 0xb6, 0x30, 0x7a, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xe8, 0x45, 0x3e, 0x68, 0xa5, 0x6c, 0xab, 0x0d, 0x9f, 0xd8, 0x6c, 0xd0, 0x1c, 0x6a, 0xd8, 0x86, 0xaf, 0x70, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0xb2, 0x19, 0xe7, 0x0d, 0x82, 0xf4, 0x74, 0x83, 0x06, 0x46, 0xa6, 0xd6, 0xa0, 0x81, 0xc5, 0xa9, 0x83, 0xb6, 0xbe, 0x2f, 0xd6, 0xa0, 0x0d, 0xcf, 0xa9, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x0d, 0x02, 0x96, 0xf5, 0x20, 0xdd, 0x75, 0x73, 0x0d, 0x97, 0xd4, 0x06, 0x87, 0xfd, 0x8e, 0x0d, 0xda, 0x70, 0xa3, 0x5a, 0x83, 0x26, 0xcc, 0xb6, 0x36, 0xbc, 0xad, 0xb3, 0x41, 0x63, 0xed, 0x66, 0xb5, 0xe1, 0x92, 0xda, 0xe0, 0xb0, 0xdf, 0xb1, 0x41, 0x53, 0x72, 0x54, 0x07, 0x8d, 0x09, 0x9c, 0xad, 0x41, 0xf3, 0x11, 0x53, 0x1b, 0x14, 0x3b, 0x9a, 0x6b, 0xf8, 0x37, 0x67, 0x83, 0xa2, 0x52, 0xfc, 0x20, 0xdd, 0x75, 0x73, 0x83, 0x25, 0xf6, 0xdb, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x03, 0x1e, 0x5c, 0xd9, 0xb8, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0xb6, 0x95, 0xda, 0xa0, 0xc1, 0x30, 0xab, 0x0d, 0x5a, 0x8a, 0x9f, 0x6a, 0x83, 0x82, 0x34, 0x76, 0xc0, 0xa3, 0x7b, 0xbb, 0xd7, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0xf0, 0x98, 0xcc, 0x41, 0x93, 0x03, 0x67, 0x1b, 0x1e, 0x93, 0xd9, 0xf0, 0x6e, 0xcf, 0x06, 0x8b, 0x60, 0x91, 0x37, 0x68, 0x72, 0xe0, 0xac, 0x0d, 0x97, 0xd4, 0x06, 0x87, 0xfd, 0x8e, 0x0d, 0x9a, 0x13, 0x38, 0x5b, 0x83, 0x06, 0x46, 0xa6, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x5f, 0xc9, 0xd6, 0xf0, 0x6f, 0xce, 0x06, 0x8d, 0x42, 0x9a, 0x6d, 0x78, 0x5b, 0x67, 0x83, 0x36, 0x23, 0xce, 0x5a, 0xc3, 0x23, 0xac, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x55, 0xea, 0xbf, 0x07, 0xcd, 0xa5, 0x9c, 0xad, 0xe1, 0xdf, 0x9c, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x03, 0x18, 0x67, 0x1d, 0x04, 0x2c, 0x6b, 0x6b, 0x78, 0x84, 0x75, 0x0d, 0x6f, 0xeb, 0x6c, 0x30, 0x4a, 0xfa, 0x0e, 0x9a, 0x4b, 0x39, 0x5b, 0xc3, 0xbf, 0x39, 0x1b, 0x34, 0xf9, 0x72, 0x76, 0x50, 0x54, 0x8a, 0xd7, 0x06, 0x6d, 0x4d, 0x4e, 0x6d, 0x78, 0xcb, 0x6e, 0x0d, 0x4f, 0xdc, 0x6d, 0x78, 0x16, 0xef, 0xa0, 0x51, 0xf8, 0x96, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0xfc, 0x9b, 0xb3, 0x41, 0x83, 0x61, 0x56, 0x07, 0x4d, 0x54, 0x57, 0x6d, 0x10, 0x9e, 0xaa, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x34, 0xee, 0xc3, 0xb5, 0x06, 0xc5, 0x8e, 0xe6, 0x06, 0x6d, 0xae, 0x9c, 0x6d, 0xb0, 0xc4, 0x7e, 0x7b, 0xc3, 0x25, 0xb5, 0xc1, 0x61, 0xbf, 0x63, 0x83, 0x36, 0xdc, 0xa8, 0xd6, 0xa0, 0x09, 0xb3, 0xad, 0x83, 0x80, 0x65, 0x6d, 0x83, 0x62, 0x47, 0x73, 0x83, 0x06, 0x67, 0xce, 0x36, 0x58, 0x62, 0xbf, 0xbd, 0xe1, 0x92, 0xda, 0xe0, 0xb0, 0xdf, 0xb1, 0x41, 0x1b, 0x6e, 0x54, 0x6b, 0xd0, 0x84, 0xd9, 0xd6, 0x41, 0x51, 0x29, 0x5e, 0x1b, 0xb4, 0x6c, 0x18, 0xb6, 0x06, 0x4d, 0x4a, 0x4f, 0x6d, 0xf8, 0x20, 0x67, 0x83, 0xf6, 0xba, 0xc3, 0x36, 0x68, 0xeb, 0xfb, 0x62, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0xdb, 0xa0, 0x21, 0xf2, 0xb0, 0x83, 0x36, 0xe5, 0xb8, 0x36, 0x68, 0x7b, 0x8e, 0x6b, 0x0d, 0xd6, 0xbb, 0x33, 0x1f, 0x2c, 0xb1, 0xdf, 0x5e, 0x83, 0x30, 0x1d, 0x3b, 0x68, 0xaa, 0x2f, 0xac, 0x59, 0x83, 0x16, 0xda, 0x97, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb8, 0x30, 0xfd, 0x60, 0xbd, 0xd6, 0xf3, 0x86, 0xbf, 0x68, 0x36, 0x38, 0x13, 0x8c, 0x6e, 0x70, 0xce, 0x5f, 0xda, 0x60, 0x41, 0xfb, 0xfa, 0x06, 0x8b, 0xe1, 0xd7, 0x37, 0xfc, 0xe2, 0xb2, 0x86, 0x5f, 0x5c, 0x36, 0x3c, 0x71, 0xb7, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xe9, 0x01, 0xb7, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x86, 0xfd, 0xb6, 0x86, 0xb7, 0x75, 0x36, 0x68, 0xf4, 0xec, 0xac, 0x6a, 0x83, 0x96, 0xda, 0xa4, 0x0e, 0xca, 0x3a, 0xcf, 0xd5, 0xa0, 0x89, 0x2c, 0x97, 0x0d, 0x8f, 0x8f, 0x6c, 0xd0, 0x44, 0x96, 0xcb, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x06, 0x2d, 0xda, 0x56, 0x6d, 0xd0, 0x40, 0x2f, 0xd5, 0x41, 0x03, 0xaf, 0x55, 0x1b, 0xfe, 0xa2, 0xd9, 0xa0, 0xf9, 0xe4, 0xaa, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0x2b, 0xb1, 0x52, 0x07, 0xcd, 0x63, 0x99, 0x1d, 0xb4, 0xaf, 0xe5, 0xb5, 0x1a, 0xda, 0xaf, 0x6f, 0x78, 0x7c, 0x64, 0x43, 0xfb, 0xf5, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0x9a, 0x10, 0xa1, 0xda, 0xa0, 0xbd, 0x2e, 0xb1, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0xb5, 0x95, 0xb9, 0x07, 0x6d, 0xce, 0x4b, 0xb5, 0xe1, 0x2f, 0x9a, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0x3a, 0x3d, 0xe7, 0x35, 0xfc, 0xb9, 0x34, 0x78, 0x7c, 0xd0, 0xe6, 0xbc, 0x54, 0x1b, 0x1c, 0x6d, 0xf8, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xed, 0xd9, 0xe0, 0x6c, 0xe8, 0xb2, 0x86, 0xb7, 0x75, 0x06, 0x87, 0x07, 0xbc, 0xbb, 0x34, 0xb1, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf1, 0x41, 0x93, 0x9d, 0x67, 0x6d, 0xf8, 0xdc, 0x65, 0x83, 0x46, 0x3b, 0xcf, 0x36, 0x7c, 0x85, 0xb3, 0xe1, 0x2f, 0x9a, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x87, 0x0f, 0x16, 0xab, 0x6e, 0x1f, 0x34, 0x5c, 0x79, 0xb6, 0x41, 0x09, 0x8f, 0xb9, 0x06, 0xed, 0x42, 0x9e, 0xb5, 0x86, 0x5f, 0x5c, 0xd6, 0xa0, 0x10, 0x4c, 0x3d, 0x58, 0xac, 0xba, 0x7d, 0x50, 0xd6, 0x79, 0x6e, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x67, 0x65, 0xf1, 0x86, 0x77, 0x7b, 0xd6, 0x70, 0x49, 0x6d, 0xd0, 0xae, 0xb2, 0xd4, 0x1a, 0x34, 0x30, 0x32, 0xb5, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0xc1, 0xd3, 0x83, 0xf6, 0x54, 0xcf, 0xda, 0xa0, 0xf1, 0x17, 0xaa, 0x0d, 0xda, 0xcb, 0x13, 0x6b, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xc0, 0x6b, 0x7b, 0xc3, 0x37, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x68, 0x4f, 0xf5, 0x6c, 0xc3, 0xdb, 0x3a, 0x83, 0xd3, 0x07, 0xed, 0xa9, 0x9e, 0xb5, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x18, 0x55, 0x73, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0x0d, 0x1a, 0xec, 0x3d, 0x6b, 0x0d, 0x7f, 0xd1, 0xac, 0x41, 0x00, 0x9d, 0x1d, 0xb4, 0x76, 0x7c, 0xb6, 0xe1, 0x17, 0x97, 0x0d, 0x0a, 0x8a, 0xcc, 0x35, 0xbc, 0xad, 0x33, 0x38, 0xbc, 0x41, 0x6b, 0xb1, 0x67, 0xd5, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xf8, 0xa0, 0x15, 0xe8, 0xb3, 0x35, 0xbc, 0xad, 0x33, 0x78, 0x7c, 0xd0, 0xf0, 0xed, 0x59, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xf8, 0xa0, 0x61, 0xe4, 0xb3, 0x9a, 0x35, 0x38, 0xf4, 0x56, 0x6e, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0x6d, 0xd0, 0x40, 0x2f, 0xd5, 0x06, 0x4d, 0x00, 0x53, 0x6d, 0xd0, 0x68, 0x79, 0x56, 0x1b, 0xfe, 0xa2, 0xd9, 0x20, 0x4c, 0xc7, 0x36, 0x7c, 0x90, 0xb3, 0x41, 0xdb, 0x2c, 0x57, 0x1b, 0x14, 0x14, 0x99, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x1b, 0x34, 0xed, 0x4c, 0xb5, 0x41, 0x90, 0x9e, 0x6e, 0xd0, 0x30, 0x35, 0xd5, 0x1a, 0xac, 0x12, 0xdf, 0xde, 0xf0, 0x6e, 0xcf, 0x06, 0x4d, 0xc1, 0x4a, 0x6d, 0xb0, 0xc4, 0x7e, 0x7b, 0x83, 0x06, 0x9c, 0xa6, 0x0e, 0x1a, 0xb8, 0xba, 0x5a, 0x83, 0xf5, 0xdc, 0xdb, 0x07, 0x05, 0x45, 0x66, 0x1b, 0x04, 0xe9, 0xe9, 0x06, 0x2d, 0xbb, 0x5c, 0x6d, 0xd0, 0xe6, 0x36, 0xd5, 0x1a, 0x34, 0x0a, 0x4e, 0xb5, 0xe1, 0x17, 0x97, 0x0d, 0xda, 0xf3, 0xa6, 0x3a, 0x68, 0x7b, 0x23, 0x6b, 0x0d, 0x1a, 0x5d, 0xa7, 0xda, 0xf0, 0x8b, 0xcb, 0x06, 0xed, 0x79, 0x53, 0x1d, 0x34, 0x1c, 0x92, 0xb5, 0x06, 0xa7, 0xb4, 0xa5, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x9e, 0x37, 0xd5, 0x41, 0x93, 0x27, 0x59, 0xad, 0x06, 0xad, 0xd4, 0xc4, 0x6c, 0x78, 0x7c, 0x64, 0x83, 0x56, 0x6a, 0x62, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0x1b, 0xcc, 0x63, 0x1b, 0xfe, 0xa2, 0x59, 0xc3, 0xe7, 0x4a, 0x07, 0x6b, 0xd5, 0x9d, 0x37, 0x38, 0x60, 0xd1, 0xad, 0xe1, 0x2f, 0x9a, 0x0d, 0x9a, 0x4b, 0x40, 0xdb, 0xf0, 0x41, 0xce, 0x1a, 0x1e, 0x61, 0xdd, 0xa0, 0x95, 0x07, 0xaf, 0x35, 0xbc, 0xcd, 0xba, 0x41, 0x31, 0x89, 0xb9, 0x41, 0x83, 0x6b, 0x60, 0x07, 0xcd, 0xa0, 0x48, 0xb5, 0x06, 0xc5, 0x8e, 0xe6, 0x1a, 0x7e, 0x25, 0xdb, 0xa0, 0x49, 0xa1, 0xa9, 0x35, 0x28, 0x26, 0x31, 0x37, 0x68, 0x74, 0x0f, 0xec, 0xa0, 0x19, 0x14, 0xa9, 0x35, 0x28, 0x26, 0x31, 0x37, 0x68, 0xff, 0x19, 0xec, 0xa0, 0x19, 0x14, 0xa9, 0xd6, 0xe0, 0x5c, 0xb8, 0xb0, 0x86, 0x3c, 0xf6, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x0f, 0x1a, 0x5e, 0x75, 0x39, 0x08, 0x4f, 0xd5, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0xd6, 0xf7, 0xc5, 0x06, 0xcb, 0x02, 0x80, 0x0f, 0x0a, 0x27, 0xd9, 0x0d, 0x82, 0xf4, 0x74, 0x83, 0x66, 0x50, 0xa4, 0xd6, 0x60, 0x29, 0x11, 0xf1, 0x86, 0x4f, 0x6c, 0x36, 0x68, 0x4c, 0xc3, 0x6b, 0xc3, 0x27, 0x36, 0x1b, 0x34, 0x33, 0xe2, 0xb5, 0xe1, 0x17, 0x97, 0x0d, 0x9a, 0x56, 0xf1, 0x5a, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x1f, 0x7b, 0x73, 0x9b, 0x3b, 0x68, 0xbc, 0xc6, 0xab, 0x0d, 0xda, 0xd7, 0xf1, 0xda, 0xa0, 0xc9, 0x23, 0xaf, 0x35, 0x68, 0x22, 0xca, 0x6b, 0xc3, 0xbb, 0x3d, 0x6b, 0x50, 0x96, 0xbc, 0x6f, 0xd0, 0xfc, 0x88, 0xd4, 0x41, 0x03, 0x57, 0x5e, 0x07, 0x2d, 0x7b, 0x62, 0xad, 0x41, 0x6b, 0x5d, 0x5e, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x1b, 0x24, 0x58, 0x84, 0x1e, 0xb4, 0x24, 0xe6, 0xb5, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0xad, 0x33, 0x38, 0x7c, 0x90, 0x2a, 0x13, 0xba, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0x3b, 0x05, 0xbc, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0x3e, 0x85, 0xbc, 0x86, 0xb7, 0x75, 0x36, 0x5c, 0x36, 0x6d, 0xd0, 0x14, 0x11, 0x5a, 0x6b, 0x78, 0x50, 0x72, 0x83, 0xd3, 0x91, 0xc8, 0x41, 0x2b, 0x25, 0x5e, 0xb5, 0x06, 0x8d, 0xa0, 0x79, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0x0a, 0x99, 0xd6, 0x41, 0x23, 0xed, 0x51, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x46, 0x43, 0x3a, 0xd6, 0xf0, 0xa0, 0xe4, 0x06, 0xa7, 0x23, 0x91, 0x83, 0xe6, 0xd7, 0xbc, 0x6a, 0x0d, 0x9a, 0xa9, 0xf3, 0xda, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x15, 0x32, 0xad, 0x83, 0x26, 0xf4, 0xbc, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xcb, 0xa7, 0x90, 0x0f, 0xda, 0xcc, 0xed, 0x6a, 0x0d, 0xda, 0xea, 0xf3, 0x3a, 0x68, 0x84, 0x0b, 0x6d, 0x0d, 0x9a, 0x0b, 0xf4, 0xda, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x15, 0x32, 0xad, 0x83, 0xc6, 0x1c, 0xa4, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xe1, 0x86, 0xba, 0x86, 0x07, 0x25, 0x37, 0x38, 0x1d, 0x89, 0x1c, 0x34, 0xc5, 0xe1, 0x75, 0xd0, 0x62, 0x13, 0x5a, 0x6b, 0xd0, 0xe4, 0xa2, 0xd7, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xad, 0x90, 0x69, 0x1d, 0xb4, 0x26, 0xe9, 0xb5, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0xa9, 0xa6, 0xe3, 0xa0, 0x35, 0x36, 0xb4, 0xd6, 0xa0, 0x79, 0x4a, 0xaf, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0xa8, 0x1c, 0xda, 0x1a, 0x7e, 0x71, 0xd9, 0x20, 0x38, 0x52, 0x37, 0x68, 0x8f, 0x0d, 0xad, 0xd6, 0xa0, 0x61, 0x4f, 0xaf, 0x0d, 0xbf, 0xb8, 0x1c, 0xb4, 0x8c, 0xe5, 0xb5, 0x06, 0x4d, 0x93, 0x7a, 0x6d, 0xf8, 0xc4, 0x66, 0x83, 0x46, 0x51, 0xbd, 0x36, 0xfc, 0xe2, 0xb2, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x85, 0x4c, 0x6b, 0x83, 0x46, 0x5c, 0xbd, 0x3a, 0x68, 0x8d, 0xe2, 0x6b, 0x0d, 0x1a, 0xf3, 0xf5, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0xd9, 0x60, 0xb9, 0x45, 0xfd, 0x41, 0x63, 0xc6, 0x5e, 0x1b, 0x7e, 0x71, 0xd9, 0x60, 0x45, 0x45, 0xfd, 0x1a, 0x1e, 0x94, 0xdc, 0xe0, 0x74, 0x24, 0xb2, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0x6d, 0xd0, 0xaa, 0x89, 0xd7, 0x1a, 0x34, 0x3b, 0x5c, 0x75, 0xb0, 0xa2, 0xa2, 0xbe, 0xd6, 0xa0, 0x0d, 0x6d, 0xaf, 0x0d, 0x9f, 0xd8, 0x6c, 0xd0, 0x28, 0xaa, 0xd7, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xad, 0x90, 0x69, 0x6d, 0xd0, 0xf8, 0xb7, 0x57, 0x07, 0xad, 0x51, 0x7c, 0xad, 0x41, 0xcb, 0x15, 0x5f, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xa1, 0x2e, 0xa9, 0x0d, 0xda, 0x16, 0xae, 0x3a, 0x68, 0x5f, 0xb5, 0x6b, 0x0d, 0x1a, 0x39, 0xf7, 0xda, 0xf0, 0x8b, 0xcb, 0x06, 0xcd, 0xab, 0x7b, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0x96, 0x05, 0x00, 0x6f, 0xb0, 0x7c, 0x0a, 0xb9, 0xd6, 0xa0, 0xc1, 0x79, 0xaf, 0x0d, 0x9f, 0xd8, 0x6c, 0xd0, 0x28, 0xaa, 0xd7, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xad, 0x90, 0x69, 0x6d, 0xd0, 0x52, 0xbe, 0x57, 0x07, 0xad, 0x51, 0x7c, 0xad, 0x41, 0xbb, 0xff, 0x5e, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x1b, 0x34, 0x0f, 0x6c, 0x76, 0xd0, 0x60, 0xc1, 0xd7, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x6d, 0xa1, 0x52, 0x6d, 0xd0, 0xc4, 0xc2, 0xd7, 0x1a, 0xde, 0xd6, 0x19, 0x1c, 0x3e, 0x68, 0x0b, 0xda, 0xac, 0x35, 0xbc, 0xad, 0x33, 0x78, 0x7c, 0xd0, 0x16, 0xb4, 0x59, 0x1b, 0x34, 0x9d, 0xf1, 0xb5, 0x06, 0x2d, 0x8c, 0x7c, 0x6d, 0xf8, 0xc4, 0x66, 0x83, 0x66, 0x6d, 0xd1, 0x36, 0x28, 0x0c, 0x55, 0x37, 0x68, 0xb9, 0x17, 0x6d, 0x83, 0x73, 0xfe, 0xd2, 0x06, 0xad, 0x49, 0x77, 0xac, 0x41, 0x90, 0x9e, 0x6e, 0xd0, 0xf8, 0x6a, 0xd7, 0x1a, 0x7e, 0xa8, 0x39, 0x68, 0x61, 0xb5, 0x6b, 0x0d, 0x8a, 0x54, 0xcc, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0x83, 0xc6, 0x57, 0xbb, 0xd6, 0xf0, 0xa0, 0xe4, 0x06, 0xa7, 0x23, 0x91, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x9a, 0x41, 0x91, 0xda, 0xf0, 0xb6, 0xce, 0xe0, 0xf1, 0x41, 0xe3, 0xab, 0x5d, 0x07, 0x0d, 0x80, 0x78, 0xd5, 0x41, 0x53, 0xc0, 0x68, 0x6b, 0xd0, 0xc8, 0xc9, 0xd7, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x06, 0x0d, 0xa8, 0x50, 0x1d, 0x34, 0xc5, 0xe1, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0xb2, 0x41, 0xd3, 0xce, 0x54, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x34, 0x30, 0x32, 0xb5, 0xe1, 0x6d, 0x9d, 0x83, 0xc6, 0x7c, 0xa8, 0x0e, 0x9a, 0x37, 0xf8, 0xda, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xd6, 0x19, 0x1c, 0x3e, 0x68, 0xea, 0x9b, 0x6a, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0x7f, 0xec, 0xad, 0x4d, 0x6c, 0x0d, 0x6f, 0xeb, 0x0c, 0x1e, 0x1f, 0x34, 0x38, 0x43, 0xb5, 0x86, 0xb7, 0x75, 0x06, 0x8f, 0x0f, 0x9a, 0xfa, 0xa6, 0xaa, 0x0d, 0x1a, 0x07, 0x1b, 0x5b, 0x83, 0xd6, 0xa0, 0xbe, 0x36, 0x7c, 0x62, 0xb3, 0x41, 0x3b, 0x54, 0x5f, 0x1b, 0x3e, 0xb1, 0xd9, 0xa0, 0x7d, 0xb4, 0xb1, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x35, 0x4c, 0xdc, 0x06, 0x69, 0x03, 0x65, 0x81, 0x47, 0x56, 0x97, 0x6f, 0x10, 0xa4, 0xa7, 0x1b, 0xbe, 0x9c, 0x5c, 0x0d, 0x9f, 0x2b, 0x6d, 0xb0, 0x5e, 0xa4, 0x79, 0x83, 0xf5, 0x22, 0xcd, 0x6d, 0xb0, 0xcc, 0x49, 0x76, 0xc3, 0x2f, 0x2e, 0x07, 0xed, 0x98, 0xa0, 0xad, 0x86, 0xcf, 0x95, 0x36, 0x58, 0x2f, 0xd2, 0x7c, 0x70, 0x88, 0xe9, 0xd8, 0x60, 0x15, 0x98, 0xec, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0x3e, 0x85, 0x7c, 0x90, 0x6a, 0x0b, 0xb7, 0x1a, 0x3e, 0x57, 0xda, 0x20, 0x4c, 0xc7, 0x0e, 0x9a, 0x27, 0x48, 0xdb, 0x60, 0x15, 0x98, 0xec, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0x3e, 0x85, 0x7c, 0x90, 0x9e, 0x02, 0xb5, 0x06, 0x61, 0x3a, 0xb6, 0xc1, 0x32, 0x27, 0xd9, 0x0d, 0x6f, 0xeb, 0x0c, 0x1e, 0x6f, 0xd0, 0x48, 0xd5, 0x57, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x6c, 0xd0, 0x38, 0xd7, 0xd7, 0x41, 0x3b, 0x79, 0x63, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x1b, 0x34, 0x6c, 0xf9, 0x75, 0xd0, 0xfc, 0xe0, 0xd8, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x06, 0x0b, 0x9b, 0x86, 0x37, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0xfc, 0xb1, 0x37, 0x37, 0xb2, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x0b, 0x00, 0x69, 0x6d, 0xd0, 0xae, 0xf7, 0xd7, 0x06, 0xcd, 0x84, 0x7f, 0xb5, 0xe1, 0x17, 0x97, 0x0d, 0xda, 0xa3, 0xfe, 0x5a, 0x83, 0x62, 0x47, 0x73, 0x0d, 0x6f, 0xeb, 0x6c, 0x90, 0x36, 0x50, 0xd6, 0x06, 0x0b, 0xda, 0x86, 0x37, 0xfc, 0xe2, 0xb2, 0x41, 0x6b, 0xd2, 0x1d, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0xee, 0xd0, 0x7e, 0x7d, 0x83, 0x86, 0x32, 0xd2, 0x3a, 0x58, 0xce, 0x36, 0xdc, 0x1a, 0xb4, 0xf9, 0xda, 0xb5, 0x41, 0x61, 0xa8, 0xba, 0x41, 0xa3, 0x72, 0x68, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x1b, 0x34, 0xa0, 0x42, 0x75, 0xd0, 0x28, 0x11, 0xd8, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x2c, 0x79, 0xdf, 0xa0, 0x29, 0x47, 0xa9, 0x0d, 0xda, 0x8f, 0x92, 0x5a, 0xc3, 0x5f, 0x34, 0x1b, 0x2c, 0x9b, 0x71, 0x3e, 0x68, 0xf5, 0x1c, 0x6d, 0x0d, 0x7f, 0xd1, 0x6c, 0xb0, 0x80, 0x66, 0xfa, 0xa0, 0x85, 0xd5, 0xae, 0x36, 0x68, 0x28, 0x1e, 0xad, 0x35, 0x68, 0x97, 0xfc, 0x6b, 0x83, 0xc2, 0x50, 0x75, 0x83, 0x46, 0xe5, 0xd0, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x36, 0x58, 0x73, 0x7f, 0x7c, 0xd0, 0x1a, 0xb2, 0xd7, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x06, 0x0d, 0xa8, 0x50, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0xf6, 0x57, 0xa8, 0x36, 0x68, 0xa2, 0xba, 0xea, 0xa0, 0xcd, 0xdc, 0xae, 0x0d, 0x96, 0xd4, 0x2f, 0xad, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0x71, 0xb7, 0xe1, 0xe5, 0xbb, 0x83, 0x43, 0x75, 0xd9, 0x41, 0x9b, 0xb9, 0x5d, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0x17, 0xcd, 0x06, 0x6b, 0xdf, 0x9d, 0x37, 0x08, 0xd2, 0xd3, 0x0d, 0xda, 0x97, 0xa1, 0x5a, 0x83, 0x80, 0x0d, 0xda, 0x20, 0x48, 0x4f, 0xd7, 0x38, 0x34, 0x78, 0x7c, 0xd0, 0x98, 0x0f, 0xd5, 0x1a, 0x04, 0x6c, 0xd0, 0x86, 0x77, 0x7b, 0xd6, 0x70, 0x49, 0x6d, 0xd0, 0x94, 0xa3, 0xd4, 0x41, 0x6b, 0x17, 0x54, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0x82, 0x29, 0x57, 0x1b, 0xb4, 0xd0, 0x43, 0x55, 0x6b, 0x10, 0x46, 0x40, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x34, 0x38, 0x43, 0xb5, 0xe1, 0x17, 0x97, 0x0d, 0x96, 0x39, 0xc9, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x5a, 0x38, 0x94, 0x5a, 0xc3, 0xdb, 0x3a, 0x07, 0x0d, 0xce, 0x50, 0x55, 0xad, 0x41, 0x18, 0x01, 0x6d, 0xf8, 0xc5, 0x65, 0x83, 0xa6, 0xdf, 0x3a, 0xd6, 0xf0, 0xb6, 0xce, 0x41, 0x2b, 0x6a, 0x69, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x46, 0xdb, 0xd2, 0x0e, 0x0a, 0xe2, 0xf1, 0x5a, 0x83, 0x06, 0xd7, 0xc0, 0x36, 0xbc, 0x65, 0xb7, 0x41, 0x53, 0x6f, 0x60, 0x1b, 0x3e, 0xb1, 0xd9, 0xa0, 0x59, 0x5b, 0xb4, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x72, 0x2f, 0xda, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0x35, 0xe9, 0x8e, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0x37, 0xee, 0x0e, 0x56, 0x7f, 0x07, 0x6f, 0xb0, 0x7c, 0x0a, 0xf9, 0xa0, 0x7d, 0xd5, 0xae, 0x83, 0x86, 0x80, 0xd1, 0x5a, 0x83, 0xe6, 0xea, 0xc0, 0x36, 0x3c, 0x4f, 0xb2, 0x41, 0xcb, 0x91, 0x60, 0x1b, 0x7e, 0x71, 0xd9, 0xa0, 0x31, 0x63, 0xaf, 0x83, 0x26, 0xc0, 0xd0, 0xd6, 0xa0, 0xd1, 0x3d, 0xb0, 0x0d, 0x1f, 0xe4, 0x6c, 0xd0, 0x82, 0x96, 0xd4, 0x1a, 0xde, 0xb2, 0x5b, 0xc3, 0xbb, 0x3d, 0x6b, 0xb8, 0xa4, 0x36, 0x68, 0x92, 0x4e, 0xea, 0xa0, 0xc5, 0x8f, 0xaf, 0x35, 0xfc, 0x08, 0x33, 0x38, 0x7d, 0xb0, 0xf0, 0x06, 0xa9, 0x0d, 0xce, 0x85, 0x0b, 0x6b, 0xc8, 0x63, 0x6f, 0xf8, 0x11, 0x66, 0x70, 0xfa, 0xa0, 0x11, 0x4a, 0x98, 0x83, 0xf0, 0x54, 0xdd, 0xf0, 0x8b, 0xcb, 0x06, 0x6d, 0x7d, 0x5f, 0x6c, 0xd0, 0xcc, 0x41, 0x5a, 0x6b, 0xd0, 0x44, 0x23, 0xd8, 0x86, 0x4f, 0x6c, 0x36, 0x68, 0xc5, 0x12, 0x6c, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0x35, 0xf7, 0xc7, 0x1b, 0x1e, 0x94, 0xdc, 0xe0, 0x74, 0x91, 0xb1, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0x6d, 0xd0, 0x04, 0x88, 0xd7, 0x41, 0x0b, 0xac, 0x5e, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0xb4, 0x42, 0xa6, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x68, 0xdc, 0x87, 0x6b, 0x83, 0xe5, 0x19, 0xc8, 0x07, 0x2d, 0x87, 0x82, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x4b, 0x06, 0x6d, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0x7c, 0x0a, 0x79, 0x0d, 0x97, 0xd4, 0x06, 0x4d, 0x85, 0x49, 0xad, 0x41, 0x03, 0x23, 0x53, 0x07, 0x6d, 0x87, 0x82, 0xd5, 0x41, 0xab, 0xa7, 0x60, 0xad, 0x41, 0x63, 0xaa, 0x60, 0x1b, 0x14, 0xa4, 0xb1, 0x1b, 0x34, 0x3e, 0x1f, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x85, 0x4c, 0xeb, 0xa0, 0xa1, 0x57, 0xb0, 0x0d, 0x0a, 0xd2, 0xd8, 0x0d, 0xce, 0x26, 0x57, 0x6b, 0x78, 0x50, 0x72, 0x83, 0xd3, 0x91, 0xc8, 0x06, 0xab, 0x90, 0x94, 0x36, 0x9c, 0x62, 0x1b, 0x34, 0x01, 0xe2, 0xb5, 0x06, 0xcd, 0xa0, 0x48, 0x6d, 0xb0, 0xa8, 0x3c, 0x69, 0x83, 0x76, 0x9e, 0x1c, 0xd6, 0xe0, 0x9c, 0xbf, 0xb4, 0x41, 0xb3, 0x90, 0x08, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xf6, 0x4a, 0x0a, 0xd6, 0xf0, 0xc6, 0xdd, 0x86, 0x97, 0xef, 0x0e, 0xda, 0x58, 0x86, 0x69, 0x83, 0xa3, 0xeb, 0xe0, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0x41, 0xb8, 0x86, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0xd3, 0x8e, 0x0f, 0x07, 0x2d, 0xc5, 0x82, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0x92, 0xd2, 0x82, 0x0f, 0x82, 0x95, 0xb5, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x83, 0x70, 0x0d, 0x1b, 0x34, 0x16, 0xda, 0x75, 0xd0, 0x36, 0x7a, 0x5a, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x06, 0xe1, 0x1a, 0x36, 0x68, 0x2c, 0xb4, 0x6b, 0x0d, 0xbf, 0xb8, 0x6c, 0x90, 0x94, 0x16, 0x7c, 0x50, 0x50, 0x8a, 0x77, 0xb0, 0x86, 0xca, 0xb9, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x22, 0x73, 0xd6, 0x06, 0xcb, 0x82, 0x09, 0x5b, 0x83, 0xf6, 0x11, 0xc1, 0x36, 0xfc, 0xe2, 0xb2, 0x41, 0x8b, 0x67, 0x68, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xe5, 0x53, 0xc8, 0x6b, 0x78, 0x50, 0x72, 0x83, 0xd3, 0x91, 0xc8, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x41, 0x6b, 0x55, 0x5d, 0x07, 0x2d, 0xb0, 0x7a, 0xd5, 0x06, 0xad, 0x66, 0x8e, 0xad, 0xc1, 0xba, 0x23, 0xec, 0x83, 0x46, 0x57, 0xd3, 0xd6, 0x20, 0x4c, 0xc7, 0x36, 0x7c, 0x62, 0xb3, 0x41, 0xdb, 0xd5, 0x60, 0x1b, 0x3e, 0xc8, 0xd9, 0xa0, 0xe1, 0x6c, 0xb0, 0x35, 0xbc, 0x65, 0xb7, 0x41, 0xb3, 0xde, 0x60, 0x1b, 0x9c, 0x0b, 0x17, 0xd6, 0x90, 0xc7, 0xde, 0xf0, 0x23, 0xcc, 0xe0, 0xf4, 0x41, 0x93, 0x0a, 0x31, 0x07, 0xe1, 0xa9, 0x7a, 0xd0, 0x04, 0x3b, 0x58, 0xcb, 0xac, 0x41, 0xc3, 0x3f, 0x5e, 0x1b, 0x7e, 0x51, 0xda, 0xa0, 0x49, 0x7e, 0xb0, 0x0d, 0x7f, 0xd1, 0x6c, 0xd0, 0x5c, 0x02, 0xda, 0x86, 0x4f, 0x6c, 0x36, 0x68, 0x6e, 0x21, 0x6c, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xc0, 0x83, 0xab, 0x63, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0xcb, 0xa6, 0x52, 0x1b, 0xb4, 0x2d, 0x5c, 0x75, 0xd0, 0xd4, 0x47, 0xd8, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xad, 0x90, 0x69, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0x0d, 0x1a, 0xf8, 0x50, 0xab, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x5b, 0x32, 0x68, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xf8, 0xa0, 0x41, 0x14, 0xb5, 0x0d, 0x5a, 0xe7, 0x08, 0xab, 0x59, 0x83, 0x16, 0x81, 0xb3, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0x4b, 0xf2, 0x60, 0x1b, 0xde, 0xb2, 0x5b, 0xc3, 0x13, 0x77, 0x1b, 0x9e, 0xc5, 0x3b, 0x68, 0x98, 0x25, 0xe6, 0xa0, 0x41, 0x98, 0xb0, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x0e, 0xa7, 0x58, 0x6b, 0xd0, 0xe6, 0x0e, 0xd5, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x06, 0x0d, 0xa1, 0x72, 0xad, 0xe1, 0xcf, 0xa5, 0x0d, 0x16, 0x92, 0x8f, 0x6e, 0x10, 0x4e, 0x63, 0x1b, 0x2c, 0x9b, 0x71, 0x3e, 0x58, 0x36, 0xe3, 0xdc, 0x86, 0xbf, 0x68, 0xd6, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0xbd, 0xe9, 0x37, 0x58, 0xd2, 0xe7, 0x7c, 0xb0, 0xb2, 0x8f, 0x7b, 0x83, 0xc2, 0x50, 0x75, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0x60, 0x5c, 0xda, 0x1a, 0xde, 0xd6, 0x39, 0x68, 0xc7, 0x95, 0xab, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0xda, 0x71, 0xe5, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0x16, 0xcb, 0x07, 0xed, 0x2a, 0xa9, 0x6d, 0xf8, 0x0a, 0x67, 0xc3, 0x5f, 0x34, 0x1b, 0x2c, 0x9b, 0x71, 0xde, 0xa0, 0x84, 0xc7, 0xdc, 0xa0, 0x1d, 0x57, 0xae, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x58, 0x48, 0x3e, 0xda, 0x41, 0xb3, 0x1a, 0x54, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x34, 0x86, 0xcb, 0xb5, 0x86, 0xaf, 0x70, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0xb2, 0x19, 0xe7, 0x0d, 0x4e, 0x0e, 0x72, 0x1b, 0x34, 0x30, 0x32, 0xb5, 0x86, 0x4b, 0x6a, 0x83, 0xc3, 0x7e, 0xc7, 0x41, 0x9b, 0xb3, 0x5c, 0x6b, 0xd0, 0x32, 0xec, 0xd4, 0x86, 0x77, 0x7b, 0x36, 0x68, 0xd7, 0x89, 0x6b, 0x83, 0xb6, 0x26, 0xa7, 0xd6, 0x70, 0x49, 0x6d, 0x70, 0xd8, 0xef, 0xd8, 0xa0, 0xd5, 0x59, 0xae, 0x83, 0x86, 0xe4, 0xa8, 0x5a, 0x83, 0x36, 0x92, 0xa7, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x5b, 0xa8, 0x54, 0x1b, 0xb4, 0x35, 0x39, 0xb5, 0x86, 0x4b, 0x6a, 0x83, 0xc3, 0x7e, 0xc7, 0x41, 0x43, 0x72, 0x54, 0x6d, 0xd0, 0xb2, 0x61, 0xd8, 0x1a, 0x34, 0x29, 0x3d, 0x75, 0xd0, 0x54, 0x5f, 0x58, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x03, 0x9e, 0x5d, 0x1a, 0x7b, 0xd0, 0xa0, 0x57, 0xd5, 0x86, 0xaf, 0x70, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0xb2, 0x19, 0xe7, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x83, 0xe6, 0x73, 0xb9, 0x36, 0x68, 0x3f, 0x4c, 0x6d, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x0d, 0x13, 0xb7, 0x41, 0x02, 0xe1, 0xe6, 0x41, 0x63, 0xed, 0x66, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x45, 0xb0, 0xc8, 0x1b, 0xb4, 0xac, 0xcb, 0xd5, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xd0, 0x8b, 0x7c, 0xd0, 0x42, 0xa2, 0xda, 0x06, 0x41, 0x7a, 0xba, 0x41, 0x03, 0x23, 0x53, 0x6b, 0xb0, 0xde, 0x9d, 0x79, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x3b, 0x68, 0x72, 0xa8, 0x6a, 0x83, 0xb6, 0xe7, 0xb8, 0x36, 0x68, 0x0c, 0xdf, 0x6c, 0x0d, 0xda, 0xf0, 0x9c, 0xda, 0xf0, 0x41, 0xce, 0x06, 0xad, 0xf2, 0x9b, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0xf7, 0xe1, 0x5a, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0xdb, 0xa0, 0x0d, 0x37, 0xaa, 0x35, 0x68, 0x74, 0x97, 0xeb, 0xa0, 0xc9, 0x81, 0xb3, 0x0e, 0x9a, 0x6d, 0x9d, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x8d, 0xfb, 0x70, 0x6d, 0xd0, 0xd6, 0xe4, 0xd4, 0x1a, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x06, 0x4d, 0xc9, 0x51, 0x1d, 0x34, 0xd0, 0xa9, 0xd6, 0x1a, 0x34, 0x1f, 0x31, 0xb5, 0xe1, 0x83, 0x9c, 0x0d, 0x5a, 0xe5, 0x37, 0xdb, 0xa0, 0xa9, 0xbe, 0xb0, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x98, 0xd1, 0xf8, 0xa0, 0x31, 0x4d, 0xb5, 0x0d, 0x1a, 0xff, 0x0b, 0xdb, 0xa0, 0x65, 0xc3, 0xb0, 0x0d, 0x5a, 0x8f, 0x0c, 0x5b, 0x83, 0x26, 0xa5, 0xa7, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x2c, 0x79, 0xdf, 0xe0, 0x68, 0xad, 0xb1, 0x41, 0xd9, 0xf4, 0xbe, 0x86, 0xb7, 0x75, 0x36, 0x68, 0x33, 0x4f, 0xad, 0x0e, 0x9a, 0xd5, 0xa0, 0xda, 0xa0, 0xad, 0xef, 0x8b, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x83, 0xe6, 0xe6, 0xaa, 0xd6, 0xa0, 0x69, 0x5c, 0xb5, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0xd9, 0x82, 0x7a, 0xd0, 0xba, 0xad, 0xda, 0x41, 0xb3, 0x1a, 0x54, 0xb5, 0x1a, 0x2c, 0xf6, 0xf7, 0xd9, 0xf0, 0xf8, 0xc8, 0x06, 0x8b, 0xfd, 0x7d, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0x0b, 0x14, 0x52, 0x1b, 0xfe, 0xa2, 0xd9, 0x60, 0xd9, 0x8c, 0xf3, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x72, 0x80, 0x6c, 0x83, 0x02, 0x36, 0xff, 0xa0, 0xa5, 0x13, 0xa9, 0xd5, 0xa0, 0x9d, 0xfc, 0x98, 0x0d, 0x8f, 0x8f, 0x6c, 0xd0, 0x4e, 0x7e, 0xcc, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0x80, 0x47, 0xf7, 0x26, 0x1f, 0x34, 0xdd, 0x63, 0xb5, 0xe1, 0x2f, 0x9a, 0x0d, 0x16, 0xc3, 0x97, 0x6f, 0x10, 0xa4, 0xa7, 0x6b, 0x1c, 0xda, 0xa0, 0xa5, 0x6a, 0xb5, 0xd6, 0x20, 0x8c, 0x80, 0x36, 0xbc, 0xad, 0x33, 0x38, 0x7c, 0xd0, 0xb8, 0xb6, 0xda, 0x1a, 0x04, 0x6c, 0xd0, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x06, 0x4d, 0x64, 0x6d, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x06, 0xe3, 0xd2, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf0, 0x41, 0xeb, 0xdd, 0x6a, 0x6d, 0x10, 0xa4, 0xa7, 0x6b, 0x1c, 0x1a, 0x3c, 0x3e, 0x68, 0xbd, 0x5b, 0x6d, 0x0d, 0x02, 0x36, 0x68, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0x8b, 0x66, 0x83, 0x65, 0x33, 0xce, 0x1b, 0xde, 0xd6, 0x19, 0x1c, 0x3e, 0x68, 0x2c, 0x5d, 0xed, 0xa0, 0x1d, 0x04, 0xb1, 0x35, 0x08, 0x23, 0xa0, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0x52, 0x94, 0x5a, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x45, 0x20, 0xa3, 0x1b, 0x94, 0x4d, 0xef, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xf8, 0xa0, 0xb1, 0x74, 0xb5, 0x5a, 0xc3, 0x2f, 0x2e, 0x1b, 0x2c, 0xa0, 0xff, 0xdd, 0xa0, 0x65, 0x77, 0xb5, 0x83, 0x76, 0x10, 0xc4, 0xaa, 0xc3, 0x29, 0xd6, 0x1a, 0x34, 0xff, 0xc1, 0xb4, 0xe1, 0x13, 0x9b, 0x0d, 0x9a, 0x43, 0x0d, 0xdb, 0xf0, 0x15, 0xce, 0x86, 0xbf, 0x68, 0x36, 0x7c, 0xb0, 0xba, 0x41, 0x90, 0x9e, 0x6e, 0xd0, 0xc0, 0xc8, 0xd4, 0x06, 0x6d, 0x08, 0x61, 0xad, 0x41, 0x1b, 0x9e, 0x53, 0x1b, 0x7e, 0x25, 0x3b, 0x68, 0x70, 0x39, 0x6c, 0x0d, 0x9a, 0x8f, 0x98, 0x3a, 0x68, 0x72, 0x39, 0x6c, 0x83, 0x26, 0x4e, 0xc4, 0xd6, 0xa0, 0x51, 0xdf, 0xa9, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0x08, 0x52, 0xd5, 0x41, 0xcb, 0x8b, 0x61, 0x1b, 0xb4, 0xe7, 0x23, 0xb6, 0x06, 0x4d, 0x4a, 0x4f, 0x6d, 0xf8, 0x95, 0x6c, 0x83, 0xf6, 0xba, 0xc3, 0x36, 0x68, 0x6e, 0xeb, 0xac, 0x0d, 0x1a, 0xf7, 0xc1, 0xda, 0xa0, 0x4d, 0x9a, 0xaa, 0x0e, 0xa7, 0x58, 0x6b, 0xd0, 0xe0, 0x8b, 0xcc, 0x86, 0xc7, 0x47, 0x36, 0x68, 0xf0, 0x45, 0x66, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x16, 0x6d, 0xab, 0x0e, 0x1a, 0x78, 0xad, 0xda, 0xf0, 0x17, 0xcd, 0x06, 0x8b, 0xe1, 0xcb, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0xcd, 0x8f, 0x48, 0x1d, 0x34, 0x8f, 0x65, 0x76, 0xd0, 0xb2, 0x27, 0xd6, 0x6a, 0xd0, 0xe6, 0x98, 0xcc, 0x86, 0xc7, 0x47, 0x36, 0x68, 0x73, 0x4c, 0x66, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0xcb, 0x7b, 0xd3, 0x37, 0x08, 0x36, 0xd3, 0x0d, 0xd6, 0xb0, 0x96, 0x6f, 0xb0, 0xda, 0xb4, 0xfc, 0x60, 0x55, 0x6c, 0xf9, 0x86, 0xb7, 0xec, 0xd6, 0xf0, 0xc4, 0xdd, 0x86, 0x67, 0xf1, 0x0e, 0x1a, 0xc1, 0x91, 0xd9, 0xf0, 0x17, 0xcd, 0x06, 0xcb, 0x66, 0x9c, 0x37, 0x38, 0x39, 0xc8, 0x6d, 0xd0, 0xc0, 0xc8, 0xd4, 0x06, 0x0d, 0x9c, 0x4d, 0xad, 0x41, 0x1b, 0x9e, 0x53, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x71, 0x1f, 0xae, 0x83, 0x06, 0x97, 0xc3, 0xd6, 0xa0, 0xf9, 0x88, 0xa9, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x4a, 0xb6, 0x86, 0x7f, 0x73, 0x36, 0x68, 0x41, 0x67, 0xea, 0xa0, 0xa5, 0xf8, 0xa9, 0x35, 0xfc, 0x9b, 0xb3, 0x41, 0x83, 0xce, 0x56, 0x1b, 0xde, 0xd6, 0xd9, 0xa0, 0x21, 0x98, 0xb5, 0xda, 0x70, 0x49, 0x6d, 0xd0, 0xc0, 0xc8, 0xd4, 0x1a, 0x34, 0x2e, 0x80, 0x75, 0xd0, 0xb2, 0xd2, 0x5a, 0x1b, 0x34, 0xfe, 0x17, 0xb6, 0x41, 0xcb, 0x86, 0x61, 0x1b, 0xb4, 0x1e, 0x19, 0x76, 0xd0, 0x5e, 0x9d, 0xda, 0x0a, 0x7c, 0x98, 0xbc, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x19, 0x7c, 0x98, 0xdc, 0x00, 0xbe, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x20, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xf5, 0x33, 0x99, 0x0d, 0xca, 0x2e, 0xd9, 0x81, 0x0f, 0x93, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2d, 0xc8, 0x24, 0x1d, 0xa4, 0x11, 0x18, 0xad, 0x06, 0x8d, 0x08, 0xa4, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x06, 0x72, 0x92, 0x0e, 0xda, 0x6b, 0x94, 0x5a, 0x83, 0xe6, 0x8b, 0x55, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x43, 0x40, 0x49, 0x07, 0xcd, 0x74, 0x4a, 0xad, 0xc1, 0x62, 0x7f, 0x9f, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xe0, 0x51, 0xd2, 0x41, 0x63, 0xa0, 0x52, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x66, 0xda, 0x64, 0x36, 0x28, 0xcb, 0xb0, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x88, 0x22, 0x24, 0x03, 0x8d, 0x28, 0xc2, 0x72, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x44, 0x11, 0xa2, 0x81, 0x46, 0x14, 0x61, 0xb2, 0xe1, 0xcf, 0xa5, 0x0d, 0xd6, 0xdc, 0x1f, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x44, 0x11, 0xe2, 0x83, 0x06, 0xfe, 0xd6, 0x0e, 0x96, 0xcd, 0x38, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x11, 0x45, 0xd8, 0x0c, 0x34, 0xa2, 0x08, 0xc3, 0x0d, 0x7f, 0x2e, 0x6d, 0xb0, 0xbe, 0x66, 0x7a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x23, 0x8a, 0x30, 0x3a, 0x68, 0x63, 0x71, 0xed, 0x60, 0x01, 0xcd, 0x74, 0xb3, 0xcc, 0x1a, 0x34, 0x5f, 0xac, 0xb2, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xd0, 0x7c, 0xb1, 0x4a, 0x03, 0xe0, 0x51, 0x5b, 0xd8, 0x5a, 0x19, 0x48, 0x18, 0x08, 0x09, 0x5d, 0x1e, 0x5c, 0x19, 0x88, 0x58, 0x1e, 0x88, 0x5c, 0xd9, 0x1c, 0x9d, 0x5c, 0xda, 0x18, 0x5d, 0x9a, 0xdb, 0x19, 0x88, 0x8b, 0x5c, 0x99, 0x19, 0x08, 0xdd, 0x1b, 0x88, 0xcb, 0xdc, 0x5a, 0x9a, 0xdb, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x7e, 0x4e, 0x66, 0xc3, 0x57, 0x38, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xcd, 0x3c, 0x99, 0x0d, 0x7f, 0xd1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x8b, 0x45, 0xc8, 0x07, 0xba, 0x58, 0x84, 0xcd, 0xc1, 0xb2, 0x19, 0xe7, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xa8, 0x9f, 0xcc, 0x06, 0x05, 0xc1, 0xec, 0x06, 0xab, 0x6b, 0xa6, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2d, 0x14, 0xca, 0x6c, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xb0, 0xba, 0x66, 0x7a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0xbd, 0x28, 0xb3, 0x41, 0xc3, 0x3b, 0x16, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x0d, 0x49, 0x99, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xda, 0xb9, 0x94, 0xd9, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x3d, 0x4e, 0x99, 0x83, 0x76, 0xab, 0x22, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0d, 0x8b, 0xca, 0x6c, 0x70, 0x74, 0x1d, 0x5c, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x16, 0x50, 0x65, 0x0e, 0xda, 0x8d, 0x51, 0xa8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x83, 0xae, 0x32, 0x07, 0x05, 0x45, 0x66, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x96, 0x68, 0x65, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x32, 0x57, 0xe6, 0x60, 0x01, 0x95, 0xf7, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xe9, 0x5f, 0x99, 0x83, 0x25, 0xf6, 0xdb, 0xd5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xd1, 0x58, 0x66, 0x83, 0x20, 0x3d, 0x5d, 0xe3, 0xd0, 0xc1, 0xea, 0x9a, 0xe9, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xc9, 0x22, 0x64, 0x03, 0x9d, 0x2c, 0xc2, 0xe0, 0x60, 0x15, 0xa3, 0xf3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xc2, 0x59, 0x66, 0x83, 0x20, 0x3d, 0x5d, 0xc3, 0x17, 0x35, 0x07, 0xab, 0x6b, 0xa6, 0x57, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x2f, 0x8b, 0x90, 0x0e, 0xf4, 0xb2, 0x08, 0x93, 0x83, 0xf5, 0xfb, 0xcc, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xe1, 0x6a, 0x99, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x56, 0xd7, 0x4c, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x26, 0xb9, 0x65, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x3b, 0x5c, 0xe6, 0xa0, 0x15, 0xc9, 0x8a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x2b, 0xe8, 0x32, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0xd7, 0x2e, 0x73, 0xb0, 0x80, 0xca, 0x7b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xec, 0xbc, 0xcc, 0xc1, 0x12, 0xfb, 0xed, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcd, 0xe7, 0xcb, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xd0, 0xbf, 0xcc, 0xc1, 0x02, 0x2a, 0xef, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x83, 0x05, 0x33, 0x07, 0x4b, 0xec, 0xb7, 0xab, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xcc, 0x22, 0xa4, 0x03, 0xcd, 0x2c, 0xc2, 0xe4, 0x60, 0x1d, 0x42, 0xf3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xdb, 0x61, 0x66, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x16, 0x29, 0x66, 0x0e, 0x9a, 0x39, 0x98, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0xd2, 0x31, 0xb3, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0xc1, 0xea, 0x9a, 0xe9, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xfa, 0xc8, 0xcc, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcd, 0xa4, 0xcc, 0x1c, 0x9e, 0xb8, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0xf2, 0x32, 0x73, 0x90, 0xe2, 0xe4, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xa9, 0x66, 0xe6, 0xa0, 0xc8, 0x69, 0xad, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x73, 0x3c, 0x33, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0xac, 0xae, 0x99, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2d, 0x0d, 0xcd, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x26, 0xd2, 0xcc, 0xe1, 0x89, 0xbb, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x9b, 0x4e, 0x33, 0x07, 0x29, 0x4e, 0x4e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x96, 0xa9, 0x66, 0x0e, 0x0a, 0xd8, 0xfc, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0xc0, 0x35, 0x73, 0x50, 0x50, 0x64, 0xb6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0x59, 0x84, 0x74, 0xa0, 0x9b, 0x45, 0x98, 0x1c, 0x2c, 0xa6, 0x68, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcd, 0x93, 0xcd, 0x6c, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xb0, 0xba, 0x66, 0x7a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0xbb, 0x36, 0xb3, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xfb, 0x70, 0x33, 0x87, 0x27, 0xee, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcd, 0xdb, 0xcd, 0x1c, 0x1c, 0x99, 0x55, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4d, 0xf4, 0xcd, 0x1c, 0x14, 0x14, 0x99, 0xb5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xda, 0x59, 0x84, 0x74, 0xa0, 0x9d, 0x45, 0x98, 0x1c, 0xac, 0x17, 0x69, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xad, 0x17, 0xce, 0x1c, 0xb4, 0xf5, 0x7d, 0xb1, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xfa, 0x59, 0x84, 0x74, 0xa0, 0x9f, 0x45, 0x98, 0x1c, 0xac, 0x77, 0x67, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xad, 0x37, 0xce, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xde, 0xe4, 0xcc, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8d, 0x64, 0xce, 0x6c, 0x50, 0x96, 0xbc, 0x6f, 0xd0, 0x18, 0xad, 0xd4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x65, 0xcf, 0x99, 0x83, 0xc6, 0xd1, 0xa3, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xad, 0xa1, 0xce, 0x1c, 0xb4, 0xf5, 0x7d, 0xd1, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xc1, 0xd8, 0x99, 0x83, 0x02, 0x36, 0x7f, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x0e, 0xee, 0xcc, 0xc1, 0xf2, 0x0c, 0xe4, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xad, 0xfa, 0xce, 0x1c, 0xb4, 0xf5, 0x7d, 0xb1, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5a, 0x27, 0x9e, 0x39, 0x58, 0x9e, 0x81, 0xbc, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x1a, 0x5a, 0x84, 0x74, 0xa0, 0xa1, 0x45, 0x98, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x0d, 0x2d, 0x42, 0x3c, 0xd0, 0xd0, 0x22, 0x6c, 0x0e, 0xd6, 0xbc, 0x34, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xa1, 0x45, 0x18, 0x0d, 0x34, 0xb4, 0x08, 0xab, 0x83, 0x30, 0x1d, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0x06, 0x3d, 0xb3, 0x41, 0x69, 0x6f, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xbe, 0x7a, 0x66, 0xc3, 0x9f, 0x4b, 0x1b, 0xb4, 0xbb, 0x51, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9a, 0xd8, 0x9e, 0xd9, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xed, 0x83, 0xcf, 0x1c, 0x94, 0x88, 0xef, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x06, 0xd3, 0x67, 0x0e, 0x96, 0xcd, 0x38, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5a, 0x85, 0x9f, 0xd9, 0xf0, 0x15, 0xce, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xcb, 0x7e, 0x66, 0xc3, 0x5f, 0x34, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x69, 0x11, 0x36, 0x03, 0x2d, 0x2d, 0xc2, 0xee, 0x60, 0xd9, 0x8c, 0xf3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x6c, 0x7f, 0x66, 0x83, 0x20, 0x3d, 0xdd, 0x60, 0xdd, 0x05, 0xf2, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x6a, 0x11, 0xd2, 0x81, 0xa6, 0x16, 0x61, 0x72, 0xb0, 0x5e, 0xa4, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0x2f, 0x40, 0x73, 0xd0, 0xd6, 0xf7, 0xc5, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x6a, 0x11, 0xd2, 0x81, 0xae, 0x16, 0x61, 0x72, 0xb0, 0xde, 0x9d, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0xba, 0x40, 0xb3, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xeb, 0x10, 0x34, 0x07, 0x4d, 0x6a, 0x5e, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5a, 0xb9, 0xa0, 0xd9, 0xf0, 0xb6, 0xce, 0xe0, 0xf0, 0x41, 0xb3, 0xe8, 0x6b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x96, 0x3a, 0x68, 0x0e, 0x0a, 0x8a, 0xcc, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x5b, 0x8b, 0x90, 0x0e, 0xb4, 0xb5, 0x08, 0xb3, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xad, 0x45, 0x88, 0x07, 0xda, 0x5a, 0x84, 0xcd, 0xc1, 0x9a, 0x97, 0xe6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xb5, 0x08, 0xa3, 0x81, 0xb6, 0x16, 0x61, 0x75, 0x10, 0xa6, 0x63, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd6, 0x4f, 0x68, 0x36, 0x28, 0x76, 0x34, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcd, 0xb5, 0xd0, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xc6, 0x0c, 0xcd, 0x41, 0xc3, 0x97, 0x57, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x76, 0x77, 0x68, 0x0e, 0x1a, 0x7f, 0x66, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x2b, 0x44, 0x73, 0xd0, 0xba, 0x68, 0x55, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x76, 0xef, 0x68, 0x36, 0x38, 0x17, 0x2e, 0xac, 0x21, 0x8f, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1a, 0xf1, 0xa3, 0xd9, 0xf0, 0x23, 0xcc, 0xe0, 0xf4, 0x41, 0xd3, 0x81, 0x34, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x9d, 0x43, 0x9a, 0x83, 0xf0, 0x54, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xed, 0x25, 0xd1, 0x6c, 0x70, 0xce, 0x5f, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0xe9, 0x44, 0x73, 0xd0, 0xa4, 0xe6, 0xc5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x71, 0x2a, 0x9a, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5a, 0xd4, 0xa2, 0x39, 0x28, 0xb2, 0x4c, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6d, 0x90, 0xd1, 0x1c, 0x34, 0xfe, 0xcc, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x62, 0x8d, 0xe6, 0xa0, 0x75, 0xd1, 0xaa, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xc3, 0x71, 0x34, 0x07, 0xad, 0x51, 0x56, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xde, 0x16, 0x21, 0x1d, 0xe8, 0x6d, 0x11, 0x66, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x6f, 0x8b, 0x10, 0x0f, 0xf4, 0xb6, 0x08, 0x9b, 0x83, 0xf5, 0xfb, 0xcc, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x6d, 0x11, 0x46, 0x03, 0xbd, 0x2d, 0xc2, 0xea, 0x20, 0x4c, 0xc7, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2d, 0x48, 0xd2, 0x1c, 0xb4, 0xf5, 0x7d, 0xb1, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x9a, 0x5b, 0x84, 0x74, 0xa0, 0xb9, 0x45, 0x98, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xcd, 0x2d, 0x42, 0x3c, 0xd0, 0xdc, 0x22, 0x6c, 0x0e, 0x56, 0x23, 0x71, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xb9, 0x45, 0x18, 0x0d, 0x34, 0xb7, 0x08, 0xab, 0x83, 0x30, 0x1d, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0xd2, 0x49, 0x73, 0xd0, 0xd6, 0xf7, 0xc5, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x6e, 0x11, 0xd2, 0x81, 0xee, 0x16, 0x61, 0xb6, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xb7, 0x08, 0xf1, 0x40, 0x77, 0x8b, 0xb0, 0x39, 0x58, 0x1a, 0xc6, 0xbd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xee, 0x16, 0x61, 0x34, 0xd0, 0xdd, 0x22, 0xac, 0x0e, 0xc2, 0x74, 0xac, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x12, 0x2a, 0xcd, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0xeb, 0x2e, 0x90, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x23, 0xaf, 0x34, 0x07, 0xad, 0x51, 0x56, 0xb5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xda, 0x5b, 0x84, 0x74, 0xa0, 0xbd, 0x45, 0x98, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xed, 0x2d, 0x42, 0x3c, 0xd0, 0xde, 0x22, 0x6c, 0x0e, 0x96, 0xc6, 0x71, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xbd, 0x45, 0x18, 0x0d, 0xb4, 0xb7, 0x08, 0xab, 0x83, 0x30, 0x1d, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0xaa, 0x4b, 0xb3, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x53, 0xc0, 0x34, 0x07, 0xcd, 0x1c, 0x4c, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xda, 0x46, 0xa6, 0xd9, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x45, 0x67, 0x9a, 0x83, 0x12, 0xa9, 0x7a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xca, 0x35, 0xcd, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x8b, 0x40, 0x46, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6d, 0x73, 0xd3, 0x1c, 0x94, 0x4d, 0xef, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x76, 0xcb, 0x69, 0x0e, 0x5a, 0x17, 0xad, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x4a, 0x3b, 0xcd, 0x86, 0x5f, 0x94, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xde, 0x22, 0xf4, 0x0e, 0xb4, 0xb7, 0x08, 0xe5, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0xe4, 0x83, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xbd, 0x45, 0x28, 0x3e, 0x68, 0x3b, 0xb1, 0xed, 0x60, 0xd9, 0x8c, 0xf3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x85, 0x9e, 0x66, 0xc3, 0x25, 0xb5, 0xc1, 0x61, 0xbf, 0x63, 0x0d, 0xd6, 0x5d, 0x20, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x26, 0xf6, 0x69, 0x0e, 0xda, 0x76, 0x23, 0xa8, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x7f, 0x8b, 0x90, 0x0e, 0xf4, 0xb7, 0x08, 0xb3, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xbf, 0x45, 0x88, 0x07, 0xfa, 0x5b, 0x84, 0xcd, 0xc1, 0xca, 0x45, 0xee, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xb7, 0x08, 0xa3, 0x81, 0xfe, 0x16, 0x61, 0x75, 0x10, 0xa6, 0x63, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x26, 0x10, 0x6a, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xb7, 0xa1, 0xe6, 0xa0, 0x2d, 0x54, 0xaa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x43, 0x17, 0x35, 0x07, 0xad, 0x8b, 0x56, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5a, 0xf2, 0xa8, 0xd9, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0x60, 0xdd, 0x05, 0xf2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xa5, 0xa4, 0xe6, 0xa0, 0x35, 0xca, 0xaa, 0x5a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x0d, 0x2e, 0x42, 0x3a, 0xd0, 0xe0, 0x22, 0xcc, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x06, 0x17, 0x21, 0x1e, 0x68, 0x70, 0x11, 0x36, 0x07, 0xab, 0x56, 0xb9, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xe0, 0x22, 0x8c, 0x06, 0x1a, 0x5c, 0x84, 0xd5, 0x41, 0x98, 0x8e, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1a, 0x90, 0xa9, 0xd9, 0xf0, 0x41, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xcd, 0x9b, 0x9a, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1a, 0xea, 0xa9, 0xd9, 0xa0, 0x2c, 0x79, 0xdf, 0xe0, 0x68, 0xad, 0xb1, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x5d, 0xa8, 0xe6, 0xa0, 0x6c, 0x7a, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0xbd, 0x54, 0x73, 0xd0, 0x5c, 0x5b, 0x55, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x06, 0xa9, 0x6a, 0x0e, 0x96, 0x67, 0x20, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x5e, 0xab, 0xe6, 0xa0, 0xad, 0xef, 0x8b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x4c, 0x58, 0xcd, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0x2d, 0xb9, 0x55, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd6, 0xec, 0x6a, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x82, 0xaf, 0x66, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0xb2, 0x05, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x6e, 0x60, 0xcd, 0x41, 0xd9, 0xf4, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x50, 0xb1, 0xe6, 0xa0, 0xb9, 0xb6, 0xaa, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcd, 0x4c, 0xd6, 0x1c, 0x2c, 0xcf, 0x40, 0x6e, 0x0d, 0xd6, 0x5d, 0x20, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd6, 0xcf, 0x6a, 0x36, 0x5c, 0x52, 0x1b, 0x34, 0x12, 0x2c, 0xb5, 0x06, 0x0d, 0x8c, 0x4c, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x96, 0xdd, 0x6a, 0x0e, 0x96, 0x67, 0x20, 0x57, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x2e, 0x17, 0x21, 0x1b, 0xe8, 0x72, 0x11, 0x06, 0x07, 0xeb, 0xf7, 0x99, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x1b, 0x9d, 0x35, 0x1b, 0x94, 0xf6, 0x96, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x56, 0x45, 0x6b, 0x36, 0xfc, 0xb9, 0xb4, 0x41, 0xbb, 0x1b, 0x55, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xe5, 0xd3, 0x9a, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x6c, 0x6b, 0xcd, 0x41, 0x89, 0xf8, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xc7, 0xb6, 0xe6, 0x60, 0xd9, 0x8c, 0x73, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xb1, 0xde, 0x9a, 0x0d, 0x5f, 0xe1, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x26, 0x86, 0x6b, 0x36, 0xfc, 0x45, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x3e, 0x17, 0x61, 0x31, 0xd0, 0xe7, 0x22, 0xac, 0x0e, 0x96, 0xcd, 0x38, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x36, 0x90, 0x6b, 0x36, 0x08, 0xd2, 0xd3, 0x0d, 0xd6, 0x5d, 0x20, 0xaf, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x4e, 0x17, 0x21, 0x1d, 0xe8, 0x74, 0x11, 0x26, 0x07, 0xeb, 0x45, 0x9a, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xa3, 0xce, 0x35, 0x07, 0x6d, 0x7d, 0x5f, 0xac, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x56, 0x17, 0x21, 0x1d, 0x68, 0x75, 0x11, 0x26, 0x07, 0xeb, 0xdd, 0x99, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x53, 0xd6, 0x35, 0x1b, 0x3e, 0xb1, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0xbf, 0x5d, 0xb3, 0xe1, 0x92, 0xda, 0xe0, 0xb0, 0xdf, 0xb1, 0x06, 0xab, 0x6b, 0xa6, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xc3, 0xe2, 0x35, 0x1b, 0xde, 0xd6, 0xd9, 0x60, 0x7d, 0xcd, 0xf4, 0xc1, 0xea, 0x9a, 0xe9, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x9b, 0xe9, 0x35, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0xf0, 0x5e, 0xb3, 0xe1, 0xdf, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x9b, 0xf4, 0x35, 0x07, 0x6d, 0x7d, 0x5f, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa6, 0xf5, 0x6b, 0x0e, 0xcf, 0x4c, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9a, 0x04, 0xb0, 0x39, 0x68, 0xeb, 0xfb, 0x62, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0x6d, 0x60, 0xb3, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x5b, 0x0c, 0x36, 0x07, 0x8d, 0xfb, 0x70, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9a, 0xa7, 0xb0, 0x39, 0x3c, 0x33, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x6d, 0xc3, 0x66, 0xc3, 0x25, 0xb5, 0xc1, 0x61, 0xbf, 0x63, 0x0d, 0x56, 0xd7, 0x4c, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x76, 0x44, 0x6c, 0x36, 0xbc, 0xad, 0xb3, 0x38, 0xce, 0xc1, 0xfa, 0x9a, 0xe9, 0x83, 0xd5, 0x35, 0xd3, 0xb5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0x5d, 0x84, 0x74, 0xa0, 0xdb, 0x45, 0x98, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xdd, 0x2e, 0x42, 0x3c, 0xd0, 0xed, 0x22, 0x6c, 0x0e, 0xd6, 0xbc, 0x34, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xdb, 0x45, 0x18, 0x0d, 0x74, 0xbb, 0x08, 0xab, 0x83, 0x30, 0x1d, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0xb3, 0x62, 0x73, 0xd0, 0xd6, 0xf7, 0xc5, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x77, 0x11, 0xd2, 0x81, 0x76, 0x17, 0x61, 0xb6, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xbb, 0x08, 0xf1, 0x40, 0xbb, 0x8b, 0xb0, 0x39, 0x58, 0xbf, 0xcf, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x76, 0x17, 0x61, 0x34, 0xd0, 0xee, 0x22, 0xac, 0x0e, 0xc2, 0x74, 0xac, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xb8, 0x8c, 0xcd, 0x86, 0x4f, 0x6c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2d, 0xe2, 0xd8, 0x6c, 0xb8, 0xa4, 0x36, 0x38, 0xec, 0x77, 0xac, 0xc1, 0xea, 0x9a, 0xe9, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x64, 0x91, 0xcd, 0x41, 0xcb, 0x46, 0x6e, 0x6b, 0xb0, 0xee, 0x02, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0xf5, 0x63, 0x73, 0xd0, 0xba, 0x68, 0x55, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x35, 0x26, 0x9b, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xda, 0x8e, 0xb2, 0xd9, 0xf0, 0x6f, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xb5, 0x2b, 0x9b, 0x83, 0xb6, 0xbe, 0x2f, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xa3, 0x5d, 0x36, 0x87, 0x67, 0x26, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8d, 0x8d, 0xd9, 0x1c, 0xb4, 0xf5, 0x7d, 0xb1, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1a, 0x4d, 0xb3, 0xd9, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x95, 0x37, 0x9b, 0x83, 0xc6, 0x7d, 0xb8, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0d, 0xdf, 0xd9, 0x1c, 0x9e, 0x99, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0xe3, 0x67, 0xb3, 0xe1, 0x92, 0xda, 0xe0, 0xb0, 0xdf, 0xb1, 0x06, 0xab, 0x6b, 0xa6, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x03, 0x8b, 0x36, 0x07, 0x4d, 0xaa, 0xb9, 0xad, 0xc1, 0xba, 0x0b, 0xe4, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x44, 0xa1, 0xcd, 0x41, 0x6b, 0x94, 0x55, 0xb5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x5e, 0x84, 0x74, 0xa0, 0xe3, 0x45, 0x98, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x1d, 0x2f, 0x42, 0x3c, 0xd0, 0xf1, 0x22, 0x6c, 0x0e, 0x56, 0x23, 0x71, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xe3, 0x45, 0x18, 0x0d, 0x74, 0xbc, 0x08, 0xab, 0x83, 0x30, 0x1d, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x3f, 0x69, 0xb3, 0xe1, 0x13, 0x9b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xa3, 0x99, 0x36, 0x1b, 0x2e, 0xa9, 0x0d, 0x0e, 0xfb, 0x1d, 0x6b, 0xb0, 0xba, 0x66, 0x7a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x6a, 0x6a, 0x73, 0xd0, 0xb2, 0x91, 0xdb, 0x1a, 0xac, 0xbb, 0x40, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcd, 0x81, 0xda, 0x1c, 0xb4, 0x2e, 0x5a, 0xd5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xb0, 0xd5, 0x66, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe6, 0x65, 0x6d, 0x36, 0xfc, 0x9b, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x10, 0xd7, 0xe6, 0xa0, 0xad, 0xef, 0x8b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xae, 0xaf, 0xcd, 0xe1, 0x99, 0xc9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x7b, 0xc4, 0x36, 0x07, 0x6d, 0x7d, 0x5f, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x76, 0x95, 0x6d, 0x36, 0x28, 0x76, 0x34, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xad, 0x40, 0xdb, 0x6c, 0xf8, 0x37, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x6e, 0xb5, 0xcd, 0xc1, 0x12, 0xfb, 0xed, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xfc, 0xb6, 0xcd, 0x41, 0x93, 0x6a, 0x6e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x36, 0xf3, 0x6d, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xe9, 0xdf, 0xe6, 0xa0, 0x71, 0x1f, 0xae, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xe3, 0x07, 0x37, 0x87, 0x67, 0x26, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xad, 0x39, 0xdc, 0x6c, 0xb8, 0xa4, 0x36, 0x38, 0xec, 0x77, 0xac, 0xc1, 0xea, 0x9a, 0xe9, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xe2, 0xc6, 0xcd, 0x41, 0x93, 0x6a, 0x6e, 0x6b, 0xb0, 0xee, 0x02, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x54, 0x71, 0x73, 0xb0, 0xc4, 0x7e, 0xbb, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x4b, 0xe2, 0x36, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x76, 0x6e, 0x73, 0xd0, 0x52, 0x07, 0xc7, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xd5, 0x76, 0x9b, 0xc3, 0x33, 0x93, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa6, 0xe6, 0x6d, 0x0e, 0x5a, 0xa3, 0xac, 0x6a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xbd, 0x08, 0xe9, 0x40, 0xdb, 0x8b, 0x30, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xda, 0x5e, 0x84, 0x78, 0xa0, 0xed, 0x45, 0xd8, 0x1c, 0x2c, 0x0d, 0xe3, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xdb, 0x8b, 0x30, 0x1a, 0x68, 0x7b, 0x11, 0x56, 0x07, 0x61, 0x3a, 0xd6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x90, 0xe4, 0x66, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x75, 0x17, 0xc8, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xad, 0x95, 0x9b, 0x83, 0xd6, 0x28, 0xab, 0x5a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x7d, 0x2f, 0x42, 0x3a, 0xd0, 0xf7, 0x22, 0xcc, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xbe, 0x17, 0x21, 0x1e, 0xe8, 0x7b, 0x11, 0x36, 0x07, 0x4b, 0xe3, 0xb8, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xf7, 0x22, 0x8c, 0x06, 0xfa, 0x5e, 0x84, 0xd5, 0x41, 0x98, 0x8e, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5a, 0x9b, 0xb9, 0xd9, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x8d, 0x9c, 0x9b, 0x83, 0x66, 0x0e, 0xa6, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8d, 0x06, 0xdd, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xd4, 0xd1, 0xcd, 0x41, 0x89, 0x54, 0xbd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xfe, 0xe9, 0x66, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x45, 0x20, 0xa3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x46, 0xab, 0x6e, 0x0e, 0xca, 0xa6, 0xf7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x83, 0x5e, 0x37, 0x07, 0xad, 0x8b, 0x56, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xbe, 0xec, 0x66, 0xc3, 0x2f, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x7b, 0x11, 0x7a, 0x07, 0xfa, 0x5e, 0x84, 0xf2, 0x0d, 0x7f, 0x2e, 0x6d, 0x70, 0xf2, 0x41, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xf7, 0x22, 0x14, 0x1f, 0x34, 0x29, 0xf7, 0x76, 0xb0, 0x6c, 0xc6, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0xcf, 0x76, 0xb3, 0xe1, 0x92, 0xda, 0xe0, 0xb0, 0xdf, 0xb1, 0x06, 0xeb, 0x2e, 0x90, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xdb, 0x73, 0x37, 0x07, 0x6d, 0xbb, 0x11, 0x54, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xf1, 0x45, 0x48, 0x07, 0x1a, 0x5f, 0x84, 0xd9, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xf8, 0x22, 0xc4, 0x03, 0x8d, 0x2f, 0xc2, 0xe6, 0x60, 0xe5, 0x22, 0xf7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x1a, 0x5f, 0x84, 0xd1, 0x40, 0xe3, 0x8b, 0xb0, 0x3a, 0x08, 0xd3, 0xb1, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x6b, 0x7d, 0x37, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0x31, 0x78, 0x73, 0xd0, 0x16, 0x2a, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xd5, 0xc5, 0x9b, 0x83, 0xd6, 0x45, 0xab, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcd, 0x4a, 0xde, 0x6c, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xb0, 0xee, 0x02, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0x99, 0x79, 0x73, 0xd0, 0x1a, 0x65, 0x55, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xce, 0x17, 0x21, 0x1d, 0xe8, 0x7c, 0x11, 0x66, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xe7, 0x8b, 0x10, 0x0f, 0x74, 0xbe, 0x08, 0x9b, 0x83, 0x55, 0xab, 0xdc, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x7c, 0x11, 0x46, 0x03, 0x9d, 0x2f, 0xc2, 0xea, 0x20, 0x4c, 0xc7, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xad, 0x88, 0xde, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xf0, 0xe9, 0xcd, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xad, 0xb5, 0xde, 0x6c, 0x50, 0x96, 0xbc, 0x6f, 0x70, 0xb4, 0xd6, 0x58, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0x31, 0x7b, 0x73, 0x50, 0x36, 0xbd, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xda, 0xdf, 0xbd, 0x39, 0x68, 0xae, 0xad, 0xaa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xab, 0xc4, 0x37, 0x07, 0xcb, 0x33, 0x90, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0xb1, 0x7c, 0x73, 0xd0, 0xd6, 0xf7, 0xc5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x2b, 0xfa, 0x66, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x96, 0xdc, 0xaa, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x93, 0xe6, 0x37, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0xc3, 0x7e, 0xb3, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0xd9, 0x82, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x3c, 0xfe, 0xe6, 0xa0, 0x6c, 0x7a, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0xaa, 0x7f, 0x73, 0xd0, 0x5c, 0x5b, 0x55, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb6, 0x06, 0x70, 0x0e, 0x96, 0x67, 0x20, 0xb7, 0x06, 0xeb, 0x2e, 0x90, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x13, 0xd8, 0x37, 0x1b, 0x2e, 0xa9, 0x0d, 0x1a, 0x09, 0x96, 0x5a, 0x83, 0x06, 0x46, 0xa6, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xf3, 0xde, 0x37, 0x07, 0xcb, 0x33, 0x90, 0xab, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xfd, 0x22, 0x64, 0x03, 0xdd, 0x2f, 0xc2, 0xe0, 0xe0, 0x2c, 0x26, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5a, 0x67, 0xc0, 0xd9, 0xa0, 0xb4, 0xb7, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x27, 0x81, 0xb3, 0xe1, 0xcf, 0xa5, 0x0d, 0xda, 0xdd, 0xa8, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6d, 0x5e, 0xe0, 0x6c, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x06, 0x3b, 0x70, 0x0e, 0x4a, 0xc4, 0xf7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x0b, 0x26, 0x38, 0x07, 0xcb, 0x66, 0x9c, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcd, 0xb4, 0xe0, 0x6c, 0xf8, 0x0a, 0x67, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0x2e, 0x83, 0xb3, 0xe1, 0x2f, 0x9a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xbf, 0x08, 0x8b, 0x81, 0xfe, 0x17, 0x61, 0x75, 0xb0, 0x6c, 0xc6, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x7e, 0x83, 0xb3, 0x41, 0x90, 0x9e, 0x6e, 0xb0, 0xee, 0x02, 0x79, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xc0, 0x08, 0xd9, 0x40, 0x07, 0x8c, 0x30, 0x38, 0x58, 0x2f, 0xd2, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9a, 0xf3, 0xc1, 0x39, 0x68, 0xeb, 0xfb, 0x62, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xc0, 0x08, 0xd9, 0x40, 0x0b, 0x8c, 0x30, 0x38, 0x58, 0xef, 0xce, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1a, 0x31, 0xc2, 0xd9, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xb1, 0x25, 0x9c, 0x83, 0x26, 0x35, 0x2f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8d, 0x46, 0xe1, 0x6c, 0x78, 0x5b, 0x67, 0x83, 0x65, 0x38, 0xcd, 0x07, 0xab, 0x6b, 0xa6, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0d, 0x5f, 0xe1, 0x6c, 0x70, 0x0c, 0x37, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6d, 0x76, 0xe1, 0x6c, 0x78, 0x5b, 0x67, 0x43, 0x1d, 0x3f, 0x58, 0x5d, 0x33, 0xdd, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x81, 0x11, 0xb2, 0x81, 0x1e, 0x18, 0x61, 0xb4, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xc0, 0x08, 0xe1, 0x40, 0x0f, 0x8c, 0xb0, 0x38, 0x58, 0xf3, 0xd2, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x1e, 0x18, 0x61, 0x32, 0xd0, 0x03, 0x23, 0x6c, 0x0e, 0xc2, 0x74, 0xac, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x48, 0x19, 0xce, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcd, 0xaa, 0xe1, 0x6c, 0x78, 0x84, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x10, 0x1c, 0xce, 0x06, 0xc5, 0x24, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x60, 0x84, 0xfd, 0x40, 0x0f, 0x8c, 0x50, 0x70, 0x50, 0xa4, 0x62, 0x1e, 0x34, 0xdf, 0x58, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xe2, 0x0e, 0x67, 0xc3, 0xdb, 0xac, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x55, 0x3e, 0x9c, 0x0d, 0xff, 0xe6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1a, 0x11, 0xc4, 0x39, 0x68, 0xc3, 0x06, 0x6e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x84, 0x88, 0xb3, 0xe1, 0x6d, 0x9d, 0xc1, 0xeb, 0x83, 0xe6, 0x1b, 0xab, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x0a, 0x89, 0x73, 0xd0, 0xd6, 0xf7, 0xc5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xdb, 0x12, 0x67, 0x83, 0x62, 0x47, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x12, 0x27, 0xce, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcd, 0x87, 0xe2, 0x1c, 0x34, 0x7c, 0x79, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x51, 0x15, 0xe7, 0xa0, 0xcd, 0x16, 0xb8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x8b, 0xb1, 0x38, 0x07, 0xad, 0x8b, 0x56, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x68, 0x1d, 0x67, 0x83, 0x73, 0xe1, 0xc2, 0x1a, 0xf2, 0xd8, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xd5, 0x78, 0x9c, 0x83, 0x46, 0xfa, 0xd9, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xf3, 0xf7, 0x38, 0x07, 0xe1, 0xa9, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5a, 0xc2, 0xc5, 0xd9, 0xe0, 0x9c, 0xbf, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xad, 0x17, 0xe7, 0xa0, 0x49, 0xcd, 0x8b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xab, 0xc3, 0x38, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0x95, 0x8c, 0x73, 0x50, 0x64, 0x99, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5a, 0x8f, 0xc6, 0x39, 0x68, 0xb3, 0x05, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x38, 0x36, 0xce, 0x41, 0xeb, 0xa2, 0x55, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x26, 0xbf, 0x71, 0x36, 0x38, 0x86, 0x1b, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x86, 0xca, 0x71, 0x0e, 0xda, 0xb0, 0x81, 0x5b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xad, 0x30, 0x42, 0x36, 0xd0, 0x0a, 0x23, 0x8c, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x56, 0x18, 0x21, 0x1c, 0x68, 0x85, 0x11, 0x16, 0x07, 0xeb, 0xf7, 0x99, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x0a, 0x23, 0x4c, 0x06, 0x5a, 0x61, 0x84, 0xcd, 0x41, 0x98, 0x8e, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9a, 0xfa, 0xc7, 0x39, 0x68, 0xeb, 0xfb, 0x62, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xc2, 0x08, 0xd9, 0x40, 0x2f, 0x8c, 0x30, 0xda, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x61, 0x84, 0x70, 0xa0, 0x17, 0x46, 0x58, 0x1c, 0xac, 0x46, 0xe2, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x2f, 0x8c, 0x30, 0x19, 0xe8, 0x85, 0x11, 0x36, 0x07, 0x61, 0x3a, 0xd6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xe0, 0x20, 0xe7, 0xa0, 0xad, 0xef, 0x8b, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x0c, 0x23, 0x64, 0x03, 0xcd, 0x30, 0xc2, 0x68, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x86, 0x11, 0xc2, 0x81, 0x66, 0x18, 0x61, 0x71, 0xb0, 0x34, 0x8c, 0x7b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xcd, 0x30, 0xc2, 0x64, 0xa0, 0x19, 0x46, 0xd8, 0x1c, 0x84, 0xe9, 0x58, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x59, 0x87, 0x9c, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0xd6, 0x5d, 0x20, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x16, 0x2b, 0x72, 0x0e, 0x5a, 0xa3, 0xac, 0x6a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xc3, 0x08, 0xd9, 0x40, 0x37, 0x8c, 0x30, 0xda, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0x61, 0x84, 0x70, 0xa0, 0x1b, 0x46, 0x58, 0x1c, 0x2c, 0x8d, 0xe3, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x37, 0x8c, 0x30, 0x19, 0xe8, 0x86, 0x11, 0x36, 0x07, 0x61, 0x3a, 0xd6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xb3, 0x23, 0x67, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x96, 0x46, 0x72, 0x0e, 0x9a, 0x39, 0x98, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0xbd, 0x92, 0xb3, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x83, 0x31, 0x39, 0x07, 0x25, 0x52, 0xf5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x11, 0x9d, 0x9c, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x16, 0x81, 0x8c, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9a, 0xfe, 0xc9, 0x39, 0x28, 0x9b, 0xde, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcd, 0x22, 0xe5, 0x1c, 0xb4, 0x2e, 0x5a, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x11, 0xa8, 0x9c, 0x0d, 0xbf, 0x28, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x1b, 0x46, 0x68, 0x1d, 0xe8, 0x86, 0x11, 0xaa, 0x37, 0xfc, 0xb9, 0xb4, 0xc1, 0xc9, 0x07, 0x75, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x37, 0x8c, 0x50, 0x7b, 0xd0, 0x28, 0x44, 0xdc, 0xc1, 0xb2, 0x19, 0xe7, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xc8, 0x55, 0xce, 0x86, 0x4b, 0x6a, 0x83, 0xc3, 0x7e, 0xc7, 0x1a, 0xac, 0xbb, 0x40, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2d, 0x78, 0xe5, 0x1c, 0xb4, 0xed, 0x46, 0x50, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x76, 0x18, 0x21, 0x1b, 0x68, 0x87, 0x11, 0x46, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x3b, 0x8c, 0x10, 0x0e, 0xb4, 0xc3, 0x08, 0x8b, 0x83, 0x95, 0x8b, 0xdc, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x87, 0x11, 0x26, 0x03, 0xed, 0x30, 0xc2, 0xe6, 0x20, 0x4c, 0xc7, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6d, 0x9e, 0xe5, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x50, 0x5b, 0xce, 0x41, 0x5b, 0xa8, 0x54, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb6, 0xeb, 0x72, 0x0e, 0x5a, 0x17, 0xad, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0xce, 0x97, 0xb3, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0xc1, 0xba, 0x0b, 0xe4, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xf0, 0x60, 0xce, 0x41, 0x6b, 0x94, 0x55, 0xb5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xfa, 0x61, 0x84, 0x6c, 0xa0, 0x1f, 0x46, 0x18, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xfd, 0x30, 0x42, 0x38, 0xd0, 0x0f, 0x23, 0x2c, 0x0e, 0x56, 0xad, 0x72, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x1f, 0x46, 0x98, 0x0c, 0xf4, 0xc3, 0x08, 0x9b, 0x83, 0x30, 0x1d, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0xc5, 0x98, 0xb3, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xf3, 0x91, 0x39, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x79, 0x99, 0xb3, 0x41, 0x59, 0xf2, 0xbe, 0xc1, 0xd1, 0x5a, 0x63, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x50, 0x67, 0xce, 0x41, 0xd9, 0xf4, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xc5, 0x34, 0xe7, 0xa0, 0xb9, 0xb6, 0xaa, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6d, 0xbb, 0xe6, 0x1c, 0x2c, 0xcf, 0x40, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x52, 0x6d, 0xce, 0x41, 0x5b, 0xdf, 0x17, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xc5, 0xdd, 0x9c, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x5a, 0x72, 0xab, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xed, 0x42, 0xe7, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x98, 0x75, 0xce, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x65, 0x0b, 0xea, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x05, 0xee, 0x9c, 0x83, 0xb2, 0xe9, 0x7d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x34, 0x79, 0xce, 0x41, 0x73, 0x6d, 0x55, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1a, 0x6c, 0xcf, 0x39, 0x58, 0x9e, 0x81, 0xdc, 0x1a, 0xac, 0xbb, 0x40, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0d, 0x09, 0xe7, 0x6c, 0xb8, 0xa4, 0x36, 0x68, 0x24, 0x58, 0x6a, 0x0d, 0x1a, 0x18, 0x99, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8d, 0x24, 0xe7, 0x1c, 0x2c, 0xcf, 0x40, 0xae, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x4f, 0x8c, 0x90, 0x0d, 0xf4, 0xc4, 0x08, 0x83, 0x83, 0x25, 0xba, 0xce, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x29, 0xfb, 0x9c, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x56, 0xd7, 0x4c, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x36, 0xfa, 0x73, 0x0e, 0x5a, 0x36, 0x72, 0x6b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xc5, 0x08, 0xd9, 0x40, 0x53, 0x8c, 0x30, 0x38, 0x58, 0x43, 0xe9, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xda, 0x30, 0xd0, 0xd9, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xe5, 0x05, 0x9d, 0x83, 0xb6, 0x50, 0xa9, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2d, 0x55, 0xe8, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xa2, 0x86, 0xce, 0x41, 0x03, 0x67, 0x53, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x46, 0x41, 0x74, 0x0e, 0x1a, 0x5b, 0x88, 0x58, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x6d, 0xa2, 0xb3, 0xe1, 0x6d, 0x9d, 0x0d, 0x77, 0xda, 0xc1, 0xea, 0x9a, 0xe9, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xad, 0xb6, 0xe8, 0x6c, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xb0, 0xba, 0x66, 0x7a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x47, 0xa3, 0x73, 0xd0, 0xb2, 0x91, 0x5b, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xae, 0x18, 0x21, 0x1b, 0xe8, 0x8a, 0x11, 0x06, 0x07, 0xcb, 0x65, 0xbe, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xfb, 0x3d, 0x3a, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0x3a, 0xa4, 0x73, 0xd0, 0xae, 0x13, 0xd7, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x1d, 0x26, 0x9d, 0x0d, 0x6f, 0xeb, 0x6c, 0x70, 0x02, 0x4a, 0x3d, 0x58, 0x5d, 0x33, 0xbd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x60, 0x4a, 0x67, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0xd5, 0x35, 0xd3, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xe9, 0x2c, 0x9d, 0x83, 0x96, 0x8d, 0xdc, 0x6a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xc5, 0x08, 0xd9, 0x40, 0x5b, 0x8c, 0x30, 0x38, 0x58, 0xc1, 0xf4, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9a, 0x1a, 0xd3, 0xd9, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0x60, 0x75, 0xcd, 0xf4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xc0, 0x52, 0xe7, 0xa0, 0x65, 0x23, 0xb7, 0x35, 0x68, 0x60, 0x64, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0xa2, 0xa6, 0xb3, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xe3, 0x6f, 0x3a, 0x1b, 0x94, 0x25, 0xef, 0x1b, 0xb4, 0x71, 0x1f, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xb2, 0x4e, 0xe7, 0xa0, 0x71, 0xf4, 0xa8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x9b, 0x7e, 0x3a, 0x07, 0x0d, 0x9c, 0x4d, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xf1, 0x50, 0xe7, 0xa0, 0x8d, 0xf4, 0x82, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xa3, 0x8e, 0x3a, 0x1b, 0xde, 0xd6, 0x39, 0x68, 0x37, 0x46, 0xa1, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x5f, 0x8c, 0x90, 0x0d, 0xf4, 0xc5, 0x08, 0x83, 0x83, 0x35, 0x41, 0xe7, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x81, 0x4f, 0x9d, 0x0d, 0x0a, 0xd2, 0xd8, 0x0d, 0x96, 0xf7, 0x86, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5a, 0x25, 0xd5, 0xd9, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x2d, 0x55, 0x9d, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0xda, 0xb8, 0x8f, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0x00, 0xab, 0x73, 0xd0, 0x38, 0x7a, 0xd4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x85, 0x5c, 0x9d, 0x83, 0x06, 0xce, 0xa6, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x1e, 0xac, 0xb3, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0xf3, 0xa6, 0x5d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x46, 0x8f, 0x75, 0x0e, 0x1a, 0x4a, 0xed, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x12, 0xad, 0xb3, 0xe1, 0x6d, 0x9d, 0x0d, 0x4a, 0xe8, 0xd8, 0x83, 0xd5, 0x35, 0xd3, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xda, 0xc0, 0xd6, 0xd9, 0xa0, 0xe0, 0xc3, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0xd8, 0xad, 0xb3, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x33, 0xe3, 0x3a, 0x1b, 0x94, 0x25, 0xef, 0x1b, 0x34, 0x46, 0x2b, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x1b, 0x5d, 0xe7, 0xa0, 0x71, 0xf4, 0xa8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x7b, 0xf2, 0x3a, 0x07, 0x2b, 0x78, 0x43, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0xb0, 0xaf, 0x73, 0x50, 0xe4, 0xb4, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1a, 0x0d, 0xd8, 0xd9, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0x60, 0x75, 0xcd, 0xf4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x0e, 0x61, 0xe7, 0xa0, 0x65, 0x23, 0xb7, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xad, 0x3d, 0xec, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x3c, 0xc5, 0xce, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x8d, 0x9e, 0x47, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xda, 0xd4, 0xd8, 0x39, 0x68, 0x1c, 0x3d, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xea, 0xc8, 0xce, 0xc1, 0xf2, 0x0c, 0xe4, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcd, 0xb0, 0xec, 0x1c, 0xac, 0xe0, 0x0d, 0x6d, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xc6, 0x08, 0xd9, 0x40, 0x6b, 0x8c, 0x30, 0x38, 0x58, 0xa4, 0x75, 0xbe, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9a, 0xb3, 0xd9, 0xd9, 0xe0, 0x68, 0xc3, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xd9, 0x74, 0x67, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x75, 0x17, 0xc8, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xc9, 0xd6, 0x9d, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xda, 0x99, 0xdd, 0xd9, 0xa0, 0x2c, 0x79, 0xdf, 0xa0, 0x8d, 0xfb, 0xa8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xe3, 0xb8, 0x3b, 0x07, 0x8d, 0xa3, 0x47, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5a, 0x0f, 0xde, 0x39, 0x58, 0x9e, 0x81, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x3d, 0xe5, 0x9d, 0xc3, 0x33, 0x93, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xda, 0xe0, 0xd9, 0xd9, 0xa0, 0x30, 0x54, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x13, 0xb4, 0x73, 0xd0, 0x46, 0x7a, 0xc1, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xed, 0x68, 0x67, 0xc3, 0x57, 0x38, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x91, 0xa6, 0x9d, 0x0d, 0x7f, 0xd1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x39, 0x46, 0x98, 0x0e, 0x34, 0xc7, 0x08, 0xf3, 0x83, 0xb5, 0x23, 0xcf, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x19, 0xa9, 0x9d, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1a, 0xbd, 0xda, 0xd9, 0xf0, 0x6f, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x99, 0xae, 0x9d, 0xc3, 0x83, 0x37, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x75, 0xb1, 0x9d, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0x2e, 0xec, 0xfc, 0x60, 0x75, 0xcd, 0xf4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x75, 0xb4, 0x9d, 0x83, 0x82, 0x22, 0x73, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0xeb, 0xb6, 0xb3, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xd3, 0x73, 0x3b, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x90, 0xb7, 0x73, 0xb0, 0xcc, 0x49, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xba, 0xdf, 0xce, 0xe1, 0xc1, 0x9b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xa3, 0x84, 0x3b, 0x07, 0x05, 0x45, 0x66, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb6, 0x14, 0x77, 0x36, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x68, 0xd3, 0x51, 0x6e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0x13, 0xb9, 0xb3, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xe3, 0x96, 0x3b, 0x87, 0xd7, 0x7c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xad, 0x7d, 0xee, 0x1c, 0x34, 0xdc, 0x28, 0x57, 0xb5, 0x1a, 0x34, 0x22, 0x90, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1a, 0x8d, 0xde, 0xd9, 0xf0, 0x8b, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0x51, 0x84, 0x6c, 0xa0, 0x1b, 0x45, 0x18, 0x6c, 0xf8, 0x73, 0x69, 0x83, 0x33, 0x7d, 0xea, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x6e, 0x14, 0x21, 0x3c, 0x68, 0x46, 0x57, 0xee, 0x60, 0x49, 0x9f, 0xf3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xfd, 0x7a, 0x67, 0xc3, 0x5f, 0x34, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x47, 0x11, 0xb2, 0x81, 0x76, 0x14, 0x21, 0x3f, 0x58, 0xfb, 0xee, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xda, 0xe6, 0xde, 0xd9, 0xa0, 0x20, 0x98, 0xdd, 0x60, 0x75, 0xcd, 0xf4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xa1, 0xf1, 0x9d, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x56, 0xd7, 0x4c, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x26, 0xd4, 0x77, 0x36, 0x68, 0x78, 0xc7, 0x62, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x05, 0xbf, 0xb3, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x7b, 0xf5, 0x3b, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0xab, 0xbf, 0x73, 0xd0, 0x6e, 0x55, 0xc4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x81, 0x00, 0x9e, 0x0d, 0x8e, 0xae, 0x83, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x92, 0x01, 0xcf, 0x41, 0xbb, 0x31, 0x0a, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x99, 0x81, 0xe7, 0xa0, 0xa0, 0xc8, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xa4, 0x04, 0xcf, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6d, 0x5f, 0xf0, 0x1c, 0x2c, 0xa0, 0xf2, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0xe1, 0xc1, 0x73, 0xb0, 0xc4, 0x7e, 0xbb, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4d, 0x93, 0xf0, 0x6c, 0x10, 0xa4, 0xa7, 0x1b, 0x34, 0xe3, 0xbd, 0xb6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x52, 0x84, 0x6c, 0xa0, 0x25, 0x45, 0x18, 0x1c, 0xac, 0x62, 0x74, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6d, 0xb1, 0xf0, 0x6c, 0x10, 0xa4, 0xa7, 0x1b, 0x34, 0x8b, 0xbe, 0xb6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x9a, 0x52, 0x84, 0x6c, 0xa0, 0x29, 0x45, 0x18, 0x1c, 0xac, 0xdf, 0x67, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2d, 0xd0, 0xf0, 0x6c, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xb0, 0xba, 0x66, 0x7a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0xae, 0xc3, 0xb3, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x2b, 0x40, 0x3c, 0x07, 0xad, 0x48, 0x56, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9a, 0x33, 0xe2, 0xd9, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xdd, 0x25, 0x9e, 0x83, 0x05, 0x54, 0xde, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf6, 0xa3, 0x78, 0x0e, 0x96, 0xd8, 0x6f, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x07, 0x8b, 0x67, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x06, 0xbb, 0x78, 0x0e, 0x16, 0x50, 0x79, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1a, 0x1e, 0xe3, 0x39, 0x58, 0x62, 0xbf, 0x5d, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xae, 0x14, 0x21, 0x1b, 0xe8, 0x4a, 0x11, 0x06, 0x07, 0xeb, 0x10, 0x9a, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x13, 0x6d, 0x3c, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0x2a, 0xc7, 0xb3, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x4b, 0x78, 0x3c, 0x1b, 0x94, 0x25, 0xef, 0x1b, 0x34, 0x46, 0x2b, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xbe, 0x8f, 0xe7, 0xa0, 0x71, 0xf4, 0xa8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xc3, 0x86, 0x3c, 0x07, 0xed, 0x49, 0x7a, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xfb, 0x91, 0xe7, 0xa0, 0x80, 0xcd, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0x69, 0xc9, 0x73, 0xb0, 0x3c, 0x03, 0xb9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xe3, 0x9c, 0x3c, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x21, 0xca, 0x73, 0xb0, 0x7c, 0x0a, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xfa, 0x29, 0xcf, 0x41, 0x91, 0xd3, 0xda, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xb4, 0x95, 0x67, 0x83, 0xa2, 0xd3, 0x78, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xca, 0x2c, 0xcf, 0x41, 0xc3, 0x13, 0x62, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x86, 0x77, 0x79, 0x36, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x58, 0x5d, 0x33, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9a, 0x14, 0xe6, 0xd9, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xe9, 0x63, 0x9e, 0x83, 0x05, 0x54, 0xde, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x46, 0x9c, 0x79, 0x0e, 0x9a, 0xd4, 0xbc, 0x58, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0x46, 0xcd, 0x73, 0x90, 0x94, 0x16, 0x5c, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xbd, 0x6d, 0x9e, 0x0d, 0x8a, 0x4e, 0xe3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x03, 0xe1, 0x3c, 0x07, 0x0d, 0xd5, 0x88, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5a, 0x55, 0xe7, 0xd9, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xf5, 0x77, 0x9e, 0x83, 0x96, 0x6a, 0x3a, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4d, 0xd8, 0xf3, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xd4, 0x3e, 0xcf, 0xc1, 0xb2, 0x00, 0xe0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x0b, 0x01, 0x3d, 0x07, 0xeb, 0x16, 0x91, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0x6f, 0xd0, 0xb3, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x3b, 0x0c, 0x3d, 0x07, 0xcb, 0xa7, 0x90, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6d, 0x48, 0xf4, 0x1c, 0x14, 0x39, 0xad, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xda, 0xc5, 0xe8, 0xd9, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xed, 0x8e, 0x9e, 0x83, 0x96, 0x6a, 0x3a, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0d, 0x90, 0xf4, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x50, 0x4a, 0xcf, 0xc1, 0xb2, 0x00, 0xe0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xfb, 0x2e, 0x3d, 0x07, 0xeb, 0x16, 0x91, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x4d, 0xd3, 0xb3, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x23, 0x3a, 0x3d, 0x07, 0xcb, 0xa7, 0x90, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0d, 0x00, 0xf5, 0x1c, 0x14, 0xb0, 0xf9, 0xb5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x9a, 0x53, 0x84, 0x6c, 0xa0, 0x39, 0x45, 0x18, 0x1c, 0xac, 0x77, 0x67, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8d, 0x22, 0xf5, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x76, 0x53, 0xcf, 0xc1, 0xf2, 0x29, 0xe4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xab, 0x53, 0x3d, 0x07, 0x45, 0x4e, 0x6b, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x3b, 0x45, 0xc8, 0x06, 0xba, 0x53, 0x84, 0xc1, 0xc1, 0x62, 0x8a, 0xe6, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xfe, 0x56, 0xcf, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0xab, 0x6b, 0xa6, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xcb, 0x62, 0x3d, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x80, 0xd6, 0x73, 0x78, 0xe2, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x7e, 0x5b, 0xcf, 0xc1, 0x91, 0x59, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x06, 0x5d, 0xcf, 0x41, 0x41, 0x91, 0x59, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x3d, 0x45, 0xc8, 0x06, 0xda, 0x53, 0x84, 0xc1, 0xc1, 0x7a, 0x91, 0xe6, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x3c, 0x5f, 0xcf, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xad, 0x08, 0xf6, 0x1c, 0x2c, 0x9f, 0x42, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x7f, 0xd8, 0x73, 0x50, 0xc0, 0xe6, 0xb7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xfa, 0x53, 0x84, 0x6c, 0xa0, 0x3f, 0x45, 0x18, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xfd, 0x29, 0x42, 0x38, 0xd0, 0x9f, 0x22, 0x2c, 0x0e, 0xd6, 0xbc, 0x34, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x3f, 0x45, 0x98, 0x0c, 0xf4, 0xa7, 0x08, 0x9b, 0x83, 0x30, 0x1d, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x35, 0xd9, 0xb3, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xeb, 0x98, 0x3d, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0xe9, 0xd9, 0xb3, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0x63, 0xb4, 0x52, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x76, 0x48, 0x7b, 0x0e, 0x1a, 0x47, 0x8f, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0xd0, 0xda, 0xb3, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x53, 0xb2, 0x3d, 0x07, 0x4d, 0x6a, 0x5e, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1a, 0xc5, 0xed, 0x39, 0x48, 0x4a, 0x0b, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0xe6, 0xdb, 0x73, 0x50, 0x50, 0x64, 0xd6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x85, 0xe3, 0x9e, 0x83, 0x02, 0x36, 0x7f, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x70, 0x73, 0xcf, 0xc1, 0xf2, 0x0c, 0xe4, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4d, 0x50, 0xf7, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x52, 0x76, 0xcf, 0xc1, 0xf2, 0x29, 0xe4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x1b, 0xdf, 0x3d, 0x07, 0x45, 0x4e, 0x6b, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x69, 0xf2, 0x9e, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1a, 0x52, 0xef, 0xd9, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xf9, 0xf7, 0x9e, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x1a, 0xa3, 0x95, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x59, 0xdf, 0x73, 0xd0, 0x38, 0x7a, 0xd4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x35, 0xff, 0x9e, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9a, 0x1d, 0xf0, 0x39, 0x68, 0x45, 0xb2, 0x62, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x80, 0x82, 0xcf, 0xc1, 0x12, 0xfb, 0xed, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x43, 0x10, 0x3e, 0x07, 0x4b, 0xec, 0xb7, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x56, 0x86, 0xcf, 0x41, 0x01, 0x9b, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x02, 0xc4, 0xe7, 0x60, 0x79, 0x06, 0x72, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc6, 0x4c, 0x7c, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x73, 0xc5, 0xe7, 0x60, 0xf9, 0x14, 0xf2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xb5, 0x18, 0x9f, 0x83, 0x02, 0x36, 0xbf, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xce, 0x8d, 0xcf, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0d, 0xf3, 0xf8, 0x1c, 0x24, 0x7e, 0xc6, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5a, 0x2a, 0xf2, 0xd9, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x45, 0x25, 0x9f, 0x83, 0xe0, 0x48, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0x08, 0xe5, 0x73, 0xb0, 0x2c, 0x00, 0x78, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x92, 0x95, 0xcf, 0xc1, 0xba, 0x45, 0xe4, 0x6a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xa9, 0x08, 0xd9, 0x40, 0x9b, 0x8a, 0x30, 0x38, 0x58, 0xbf, 0xcf, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5a, 0xf1, 0xf2, 0xd9, 0xf0, 0x41, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xdd, 0x31, 0x9f, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xda, 0x4a, 0xf3, 0xd9, 0xa0, 0x2c, 0x79, 0xdf, 0xa0, 0x31, 0x5a, 0xa9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xfb, 0x6e, 0x3e, 0x07, 0x8d, 0xa3, 0x47, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xda, 0xbd, 0xf3, 0xd9, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x7d, 0x3e, 0x9f, 0x83, 0x26, 0x35, 0x2f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xed, 0x0c, 0xfa, 0x1c, 0x24, 0xa5, 0x05, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xda, 0x47, 0xf4, 0x39, 0x28, 0x28, 0x32, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x66, 0xa4, 0xcf, 0x41, 0x01, 0x9b, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x0a, 0xd3, 0xe7, 0x60, 0x79, 0x06, 0x72, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x46, 0x3d, 0x7d, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x7d, 0xd4, 0xe7, 0x60, 0xf9, 0x14, 0xf2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xe5, 0x54, 0x9f, 0x83, 0x02, 0x36, 0xbf, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xea, 0xab, 0xcf, 0x06, 0x45, 0xa7, 0xf1, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x95, 0x5a, 0x9f, 0x83, 0x86, 0x27, 0xc4, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xed, 0xf6, 0xfa, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xce, 0xb0, 0xcf, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6d, 0x23, 0xfb, 0x6c, 0x50, 0x96, 0xbc, 0x6f, 0xd0, 0x18, 0xad, 0xd4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x41, 0x67, 0x9f, 0x83, 0xc6, 0xd1, 0xa3, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0d, 0x5d, 0xfb, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x20, 0xb7, 0xcf, 0x41, 0x2b, 0x92, 0x15, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x96, 0xc5, 0x7d, 0x0e, 0x96, 0xd8, 0x6f, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5a, 0x48, 0xf7, 0x39, 0x58, 0x62, 0xbf, 0x5d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x46, 0xe4, 0x7d, 0x0e, 0x0a, 0xd8, 0xfc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xdb, 0xf8, 0x3e, 0x07, 0xcb, 0x33, 0x90, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0xf2, 0xef, 0xb3, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x5b, 0x04, 0x3f, 0x07, 0xcb, 0xa7, 0x90, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8d, 0x28, 0xfc, 0x1c, 0x14, 0x39, 0xad, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb6, 0x1f, 0x7e, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x9e, 0xe2, 0xe7, 0x20, 0x38, 0x52, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6d, 0x6b, 0xfc, 0x1c, 0x2c, 0x0b, 0x00, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x08, 0xf2, 0x73, 0xb0, 0x6e, 0x11, 0xb9, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xce, 0xc9, 0xcf, 0x06, 0x45, 0xa7, 0xf1, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x5d, 0x96, 0x9f, 0x83, 0x86, 0x27, 0xc4, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2d, 0xd5, 0xfc, 0x6c, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xb0, 0xee, 0x02, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0xc2, 0xf3, 0xb3, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xcb, 0x41, 0x3f, 0x1b, 0x2e, 0xa9, 0x0d, 0x5a, 0xef, 0x95, 0x5a, 0x83, 0x06, 0x46, 0xa6, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xd3, 0x48, 0x3f, 0x07, 0xcb, 0x33, 0x90, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x19, 0xf5, 0x73, 0xd0, 0xda, 0xa6, 0xd8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x59, 0xac, 0x9f, 0x83, 0x80, 0x65, 0x6d, 0x0d, 0x96, 0x34, 0x22, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe6, 0xcb, 0x7e, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x74, 0xed, 0xe7, 0xe0, 0x8c, 0x35, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x89, 0xee, 0xe7, 0x60, 0xdd, 0x22, 0xf2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x85, 0xbd, 0x9f, 0x83, 0x80, 0x65, 0x6d, 0x0d, 0x56, 0xd7, 0x4c, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x46, 0xbe, 0x7e, 0x0e, 0x5a, 0x36, 0x72, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x2c, 0xf8, 0xb3, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0xc1, 0xba, 0x0b, 0xe4, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x5e, 0xe2, 0xcf, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6d, 0x3c, 0xfe, 0x6c, 0xb8, 0xa4, 0x36, 0x68, 0xbd, 0x57, 0x6a, 0x0d, 0x1a, 0x18, 0x99, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8d, 0x58, 0xfe, 0x1c, 0x2c, 0xcf, 0x40, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xba, 0xe7, 0xcf, 0x41, 0x6b, 0x9b, 0x62, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf6, 0x4b, 0x7f, 0x0e, 0x8a, 0x4a, 0xf1, 0xd6, 0x60, 0x49, 0x23, 0xf2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x67, 0xf6, 0x67, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd6, 0x71, 0x7f, 0x0e, 0xce, 0x58, 0x33, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x26, 0x83, 0x7f, 0x0e, 0xd6, 0x2d, 0x22, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9a, 0x42, 0xfe, 0x39, 0x28, 0x2a, 0xc5, 0x5b, 0x83, 0xd5, 0x35, 0xd3, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x35, 0xd6, 0x9f, 0x83, 0x26, 0xd5, 0xdc, 0x5a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x0d, 0x2b, 0x42, 0x36, 0xd0, 0xb0, 0x22, 0x0c, 0x0e, 0xce, 0x62, 0xa2, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x35, 0xe9, 0x9f, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9a, 0xbf, 0xfe, 0xd9, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xc9, 0xee, 0x9f, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x1a, 0xa3, 0x95, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0x33, 0xfe, 0x73, 0xd0, 0x38, 0x7a, 0xd4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xf9, 0xf5, 0x9f, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9a, 0x89, 0xff, 0x39, 0x68, 0x52, 0xf3, 0x62, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xdc, 0xfd, 0xcf, 0x41, 0x52, 0x5a, 0xf0, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x99, 0xfe, 0x9f, 0x0d, 0x8e, 0xe1, 0x06, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x85, 0x01, 0xa0, 0x83, 0x36, 0x6c, 0xe0, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xee, 0x02, 0xd0, 0x41, 0x01, 0x9b, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x4e, 0x02, 0xe8, 0x60, 0x79, 0x06, 0x72, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x86, 0x31, 0x80, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xbe, 0x03, 0xe8, 0x60, 0xf9, 0x14, 0xf2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xd9, 0x11, 0xa0, 0x83, 0x22, 0xa7, 0xb5, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x58, 0x0a, 0xd0, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xed, 0xb9, 0x00, 0x1d, 0xb4, 0x54, 0xd3, 0xb1, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x92, 0x06, 0x68, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x86, 0x73, 0x80, 0x0e, 0x96, 0x4f, 0x21, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5a, 0xfc, 0x01, 0x3a, 0x68, 0xc3, 0x06, 0xae, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x73, 0x45, 0x40, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0xab, 0x04, 0x74, 0xb0, 0x2c, 0x00, 0x78, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x1a, 0x14, 0xd0, 0xc1, 0xba, 0x45, 0xe4, 0x5a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x5d, 0x2b, 0x42, 0x36, 0xd0, 0xb5, 0x22, 0x0c, 0x0e, 0x96, 0xe8, 0x3a, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd6, 0xb1, 0x80, 0x36, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x58, 0x5d, 0x33, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xda, 0xfd, 0x02, 0x3a, 0x68, 0xd9, 0xc8, 0xad, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xb6, 0x22, 0x64, 0x03, 0x6d, 0x2b, 0xc2, 0xe0, 0x60, 0x0d, 0xa5, 0xf7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x17, 0x0d, 0x68, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0xd5, 0x35, 0xd3, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xc5, 0x37, 0xa0, 0x83, 0x96, 0x8d, 0xdc, 0x5a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x7d, 0x2b, 0x42, 0x36, 0xd0, 0xb7, 0x22, 0x0c, 0x0e, 0x96, 0xcb, 0x7c, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x16, 0xf1, 0x80, 0x36, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x58, 0x5d, 0x33, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xda, 0xfa, 0x03, 0x3a, 0x68, 0xd9, 0xc8, 0xad, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xb8, 0x22, 0x64, 0x03, 0x8d, 0x2b, 0xc2, 0xe0, 0x60, 0x05, 0xd3, 0xf7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x0b, 0x11, 0x68, 0xc3, 0x27, 0x36, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x16, 0x1c, 0x81, 0x36, 0x58, 0x52, 0xbf, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x50, 0x15, 0x68, 0xc3, 0x1b, 0x77, 0x1b, 0x5e, 0xbe, 0x3b, 0x68, 0xcc, 0x13, 0x68, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x25, 0x0b, 0xb4, 0xe1, 0x73, 0x97, 0x0d, 0x1a, 0x50, 0xa1, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xad, 0xdd, 0x02, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x3c, 0x2f, 0xd0, 0x41, 0x8b, 0x45, 0x60, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb6, 0x8c, 0x81, 0x0e, 0x9a, 0xa8, 0xae, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0xd7, 0x0c, 0x74, 0xd0, 0xb2, 0x7e, 0x5c, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xf1, 0x69, 0xa0, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x1a, 0x18, 0x99, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6d, 0x6a, 0x03, 0x1d, 0xb4, 0x7a, 0x8e, 0xb6, 0x06, 0x4b, 0x1a, 0x91, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x8b, 0xe8, 0x40, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0xe3, 0x0e, 0x74, 0x70, 0xc6, 0x9a, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x7a, 0x0f, 0x74, 0xb0, 0x6e, 0x11, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x9a, 0x3f, 0xd0, 0x41, 0x43, 0xf1, 0x68, 0xad, 0xc1, 0xea, 0x9a, 0xe9, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x64, 0x38, 0xd0, 0x41, 0xcb, 0x46, 0x6e, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xe6, 0x15, 0x21, 0x1b, 0x68, 0x5e, 0x11, 0x06, 0x07, 0x6b, 0x82, 0xce, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x0b, 0x08, 0x41, 0x1b, 0x14, 0xa4, 0xb1, 0x1b, 0x2c, 0xef, 0x0d, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0xdb, 0x10, 0xb4, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x63, 0x13, 0x41, 0x1b, 0x94, 0x25, 0xef, 0x1b, 0xb4, 0x71, 0x1f, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x21, 0x23, 0xe8, 0xa0, 0x71, 0xf4, 0xa8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x13, 0x22, 0x41, 0x07, 0x0d, 0x9c, 0x4d, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x5f, 0x25, 0x68, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0xe6, 0x4d, 0xbb, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcd, 0xc2, 0x04, 0x1d, 0x34, 0x94, 0xda, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x48, 0x27, 0xe8, 0xa0, 0x95, 0x0f, 0xb9, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcd, 0x04, 0x05, 0x6d, 0x50, 0xf0, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1a, 0x35, 0x0a, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x25, 0xa6, 0xa0, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x1a, 0xa3, 0x95, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0x1f, 0x15, 0x74, 0xd0, 0x38, 0x7a, 0xd4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xc9, 0xad, 0xa0, 0x83, 0x15, 0xbc, 0xa1, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xda, 0x20, 0x0b, 0x3a, 0x28, 0x72, 0x5a, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xed, 0xaa, 0x05, 0x1d, 0x2c, 0xcf, 0x40, 0x6e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x12, 0x17, 0xb4, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0xc1, 0xea, 0x9a, 0xe9, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xf6, 0x5d, 0xd0, 0x41, 0xcb, 0x46, 0x6e, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xfe, 0x15, 0x21, 0x1b, 0xe8, 0x5f, 0x11, 0x06, 0x07, 0x8b, 0xb4, 0xce, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x8b, 0x82, 0x41, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0x7c, 0x18, 0x74, 0xb0, 0x7c, 0x0a, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x64, 0x63, 0xd0, 0x41, 0x91, 0xd3, 0x5a, 0x87, 0x53, 0x6c, 0x0d, 0x16, 0xfb, 0xfb, 0x6c, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x2c, 0xf6, 0xf7, 0x69, 0x00, 0x3c, 0x6c, 0x0b, 0x5b, 0x2b, 0x03, 0x09, 0x03, 0x21, 0xa1, 0xcb, 0x83, 0x2b, 0x03, 0x11, 0xcb, 0x03, 0x91, 0x2b, 0x9b, 0xa3, 0x93, 0x4b, 0x1b, 0xa3, 0x4b, 0x73, 0x3b, 0x03, 0x71, 0x91, 0x2b, 0x33, 0x03, 0xa1, 0x7b, 0x03, 0x29, 0xc3, 0x1b, 0x63, 0xab, 0x23, 0x2b, 0x03, 0x71, 0x99, 0x5b, 0x4b, 0x73, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0d, 0x4f, 0x06, 0x6d, 0xf8, 0x0a, 0x67, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x96, 0x19, 0xb4, 0xe1, 0x2f, 0x9a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xc9, 0x08, 0xf9, 0x40, 0x93, 0x8c, 0xb0, 0x39, 0x58, 0x36, 0xe3, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9a, 0xf3, 0x0c, 0xda, 0xa0, 0x20, 0x98, 0xdd, 0x60, 0x75, 0xcd, 0xf4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x6d, 0xd2, 0xa0, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x56, 0xd7, 0x4c, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x46, 0x57, 0x83, 0x36, 0x68, 0x78, 0xc7, 0x62, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x1e, 0x1b, 0xb4, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x0b, 0xb7, 0x41, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0xc4, 0x1b, 0x74, 0xd0, 0x6e, 0x55, 0xc4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x49, 0xe1, 0xa0, 0x0d, 0x8e, 0xae, 0x83, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xf6, 0x71, 0xd0, 0x41, 0xbb, 0x31, 0x0a, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xca, 0x39, 0xe8, 0xa0, 0xa0, 0xc8, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x06, 0x75, 0xd0, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8d, 0x65, 0x07, 0x1d, 0x2c, 0xa0, 0xf2, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0xfa, 0x1d, 0x74, 0xb0, 0xc4, 0x7e, 0xbb, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6d, 0x99, 0x07, 0x6d, 0x10, 0xa4, 0xa7, 0x1b, 0x34, 0xe3, 0xbd, 0xb6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x1a, 0x65, 0x84, 0x6c, 0xa0, 0x51, 0x46, 0x18, 0x1c, 0xac, 0x62, 0x74, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2d, 0xb3, 0x07, 0x6d, 0x10, 0xa4, 0xa7, 0x1b, 0x34, 0x8b, 0xbe, 0xb6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x65, 0x84, 0x74, 0xa0, 0x55, 0x46, 0x98, 0x1c, 0xac, 0xdf, 0x67, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8d, 0xcd, 0x07, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xb0, 0xba, 0x66, 0x7a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0xa3, 0x1f, 0xb4, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x7b, 0xff, 0x41, 0x07, 0xad, 0x48, 0x56, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5a, 0x2e, 0x10, 0xda, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x89, 0x05, 0xa1, 0x83, 0x05, 0x54, 0xde, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa6, 0x22, 0x84, 0x0e, 0x96, 0xd8, 0x6f, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xf2, 0x42, 0x68, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc6, 0x39, 0x84, 0x0e, 0x16, 0x50, 0x79, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1a, 0x19, 0x11, 0x3a, 0x58, 0x62, 0xbf, 0x5d, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x5e, 0x19, 0x21, 0x1d, 0xe8, 0x95, 0x11, 0x26, 0x07, 0xeb, 0x10, 0x9a, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x63, 0x2b, 0x42, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0xac, 0xbb, 0x40, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xed, 0xc8, 0x08, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xb0, 0xba, 0x66, 0x7a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0x90, 0x23, 0xb4, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x4b, 0x3e, 0x42, 0x87, 0x27, 0xee, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0d, 0x11, 0x09, 0x1d, 0xa4, 0x38, 0x39, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1a, 0x53, 0x12, 0x3a, 0x28, 0x72, 0x5a, 0x6b, 0x0d, 0x56, 0xd7, 0x4c, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x46, 0xa1, 0x84, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xbe, 0x4a, 0xe8, 0xf0, 0xc4, 0xdd, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xf5, 0x2d, 0xa1, 0x83, 0x14, 0x27, 0xa7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x1b, 0x62, 0x42, 0x07, 0x05, 0x6c, 0x7e, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x66, 0x19, 0x21, 0x1d, 0x68, 0x96, 0x11, 0x26, 0x07, 0x8b, 0x29, 0x9a, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x03, 0x6a, 0x42, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0xac, 0xae, 0x99, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2d, 0xc3, 0x09, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x82, 0x9d, 0xd0, 0xe1, 0x89, 0xbb, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x03, 0x7c, 0x42, 0x07, 0x47, 0x66, 0xd5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x23, 0x82, 0x42, 0x07, 0x05, 0x45, 0x66, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x6e, 0x19, 0x21, 0x1d, 0xe8, 0x96, 0x11, 0x26, 0x07, 0xeb, 0x45, 0x9a, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xe3, 0x89, 0x42, 0x07, 0xcb, 0x33, 0x90, 0x57, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xbb, 0x8c, 0x90, 0x0e, 0xb4, 0xcb, 0x08, 0x93, 0x83, 0xf5, 0xee, 0xcc, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x9d, 0x48, 0xa1, 0x83, 0xb6, 0xbe, 0x2f, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xbf, 0x8c, 0x90, 0x0e, 0xf4, 0xcb, 0x08, 0xb3, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x5f, 0x46, 0x88, 0x07, 0xfa, 0x65, 0x84, 0xcd, 0xc1, 0x9a, 0x97, 0xe6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xcb, 0x08, 0xa3, 0x81, 0x7e, 0x19, 0x61, 0x75, 0x10, 0xa6, 0x63, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe6, 0x31, 0x85, 0x36, 0x28, 0xed, 0x2d, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0d, 0x7a, 0x0a, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0x76, 0x37, 0xaa, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xa3, 0xa3, 0x42, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xc5, 0x54, 0xa1, 0x83, 0x12, 0xf1, 0x7d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x84, 0xac, 0xd0, 0xc1, 0xb2, 0x19, 0xe7, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x3b, 0xb9, 0x42, 0x1b, 0xbe, 0xc2, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xad, 0xfb, 0x0a, 0x6d, 0xf8, 0x8b, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x1d, 0x33, 0xc2, 0x66, 0xa0, 0x63, 0x46, 0xd8, 0x1d, 0x2c, 0x9b, 0x71, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcd, 0x0f, 0x0b, 0x6d, 0x10, 0xa4, 0xa7, 0x1b, 0xac, 0xbb, 0x40, 0x5e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x3d, 0x33, 0x42, 0x3a, 0xd0, 0x33, 0x23, 0x4c, 0x0e, 0xd6, 0x8b, 0x34, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf6, 0x94, 0x85, 0x0e, 0xda, 0xfa, 0xbe, 0x58, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x4d, 0x33, 0x42, 0x3a, 0xd0, 0x34, 0x23, 0x4c, 0x0e, 0xd6, 0xbb, 0x33, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x56, 0xa4, 0x85, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xed, 0x5a, 0xe8, 0xa0, 0x15, 0xc9, 0x8a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xab, 0xdd, 0x42, 0x07, 0x4b, 0xec, 0xb7, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8d, 0x8f, 0x0b, 0x1d, 0x2c, 0xb1, 0xdf, 0x6e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xcd, 0x08, 0xe9, 0x40, 0xd7, 0x8c, 0x30, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0x66, 0x84, 0x78, 0xa0, 0x6b, 0x46, 0xd8, 0x1c, 0xac, 0x79, 0x69, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xd7, 0x8c, 0x30, 0x1a, 0xe8, 0x9a, 0x11, 0x56, 0x07, 0x61, 0x3a, 0xd6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x74, 0x5d, 0xe8, 0xa0, 0xad, 0xef, 0x8b, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x36, 0x23, 0xa4, 0x03, 0x6d, 0x33, 0xc2, 0x6c, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x9b, 0x11, 0xe2, 0x81, 0xb6, 0x19, 0x61, 0x73, 0xb0, 0x7e, 0x9f, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x6d, 0x33, 0xc2, 0x68, 0xa0, 0x6d, 0x46, 0x58, 0x1d, 0x84, 0xe9, 0x58, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xa9, 0x79, 0xa1, 0x83, 0xe5, 0x19, 0xc8, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x6f, 0x46, 0x48, 0x07, 0xfa, 0x66, 0x84, 0xd9, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x37, 0x23, 0xc4, 0x03, 0x7d, 0x33, 0xc2, 0xe6, 0x60, 0x35, 0x12, 0xf7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xfa, 0x66, 0x84, 0xd1, 0x40, 0xdf, 0x8c, 0xb0, 0x3a, 0x08, 0xd3, 0xb1, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xab, 0xfa, 0x42, 0x07, 0xcb, 0x33, 0x90, 0x57, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xe3, 0x8c, 0x90, 0x0e, 0x34, 0xce, 0x08, 0xb3, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x71, 0x46, 0x88, 0x07, 0x1a, 0x67, 0x84, 0xcd, 0xc1, 0xd2, 0x30, 0xee, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xce, 0x08, 0xa3, 0x81, 0xc6, 0x19, 0x61, 0x75, 0x10, 0xa6, 0x63, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x06, 0x04, 0x86, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xf5, 0x60, 0xe8, 0xa0, 0x5d, 0x27, 0xae, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x53, 0x11, 0x43, 0x07, 0xad, 0x8b, 0x56, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xda, 0xc2, 0x18, 0xda, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0x60, 0xdd, 0x05, 0xf2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xe7, 0x63, 0xe8, 0xa0, 0x35, 0xca, 0xaa, 0x5a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x9d, 0x33, 0x42, 0x3a, 0xd0, 0x39, 0x23, 0xcc, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xce, 0x19, 0x21, 0x1e, 0xe8, 0x9c, 0x11, 0x36, 0x07, 0x4b, 0xe3, 0xb8, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x39, 0x23, 0x8c, 0x06, 0x3a, 0x67, 0x84, 0xd5, 0x41, 0x98, 0x8e, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5a, 0x3e, 0x19, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xbd, 0x96, 0xa1, 0x83, 0x66, 0x0e, 0xa6, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0d, 0xd8, 0x0c, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xec, 0xce, 0xd0, 0x41, 0x89, 0x54, 0xbd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x8a, 0x68, 0x68, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x45, 0x20, 0xa3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x06, 0x94, 0x86, 0x0e, 0xca, 0xa6, 0xf7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xe3, 0x52, 0x43, 0x07, 0xad, 0x8b, 0x56, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x4a, 0x6b, 0x68, 0xc3, 0x2f, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x9c, 0x11, 0x7a, 0x07, 0x3a, 0x67, 0x84, 0xf2, 0x0d, 0x7f, 0x2e, 0x6d, 0x70, 0xf2, 0x41, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x39, 0x23, 0x14, 0x1f, 0x34, 0x31, 0x7d, 0x77, 0xb0, 0x6c, 0xc6, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0x15, 0x36, 0xb4, 0xe1, 0x92, 0xda, 0xe0, 0xb0, 0xdf, 0xb1, 0x06, 0xeb, 0x2e, 0x90, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x3b, 0x68, 0x43, 0x07, 0x6d, 0xbb, 0x11, 0x54, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x75, 0x46, 0x48, 0x07, 0x5a, 0x67, 0x84, 0xd9, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x3a, 0x23, 0xc4, 0x03, 0xad, 0x33, 0xc2, 0xe6, 0x60, 0xe5, 0x22, 0xf7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x67, 0x84, 0xd1, 0x40, 0xeb, 0x8c, 0xb0, 0x3a, 0x08, 0xd3, 0xb1, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xcb, 0x71, 0x43, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0x77, 0x37, 0x74, 0xd0, 0x16, 0x2a, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x05, 0xc0, 0xa1, 0x83, 0xd6, 0x45, 0xab, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4d, 0x1c, 0x0e, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xb0, 0xee, 0x02, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0xdf, 0x38, 0x74, 0xd0, 0x1a, 0x65, 0x55, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xde, 0x19, 0x21, 0x1d, 0xe8, 0x9d, 0x11, 0x66, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xef, 0x8c, 0x10, 0x0f, 0xf4, 0xce, 0x08, 0x9b, 0x83, 0x55, 0xab, 0xdc, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x9d, 0x11, 0x46, 0x03, 0xbd, 0x33, 0xc2, 0xea, 0x20, 0x4c, 0xc7, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2d, 0x5a, 0x0e, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x08, 0xe7, 0xd0, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2d, 0x87, 0x0e, 0x6d, 0x50, 0x96, 0xbc, 0x6f, 0x70, 0xb4, 0xd6, 0x58, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0x77, 0x3a, 0x74, 0x50, 0x36, 0xbd, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xda, 0x82, 0x1d, 0x3a, 0x68, 0xae, 0xad, 0xaa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x0b, 0xb9, 0x43, 0x07, 0xcb, 0x33, 0x90, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0xf7, 0x3b, 0x74, 0xd0, 0xd6, 0xf7, 0xc5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xb7, 0x78, 0x68, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x96, 0xdc, 0xaa, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xf3, 0xda, 0x43, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x09, 0x3e, 0xb4, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0xd9, 0x82, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xc8, 0x7c, 0xe8, 0xa0, 0x6c, 0x7a, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0xf0, 0x3e, 0x74, 0xd0, 0x5c, 0x5b, 0x55, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x76, 0xef, 0x87, 0x0e, 0x96, 0x67, 0x20, 0xb7, 0x06, 0xeb, 0x2e, 0x90, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x73, 0xcc, 0x43, 0x1b, 0x2e, 0xa9, 0x0d, 0x1a, 0x09, 0x96, 0x5a, 0x83, 0x06, 0x46, 0xa6, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x53, 0xd3, 0x43, 0x07, 0xcb, 0x33, 0x90, 0xab, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x03, 0x8d, 0x90, 0x0d, 0x34, 0xd0, 0x08, 0x83, 0x83, 0xf5, 0xfb, 0xcc, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x45, 0x00, 0xa2, 0x0d, 0x4a, 0x7b, 0xcb, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x1b, 0x06, 0x44, 0x1b, 0xfe, 0x5c, 0xda, 0xa0, 0xdd, 0x8d, 0xaa, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xce, 0x02, 0xd1, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x24, 0x82, 0xe8, 0xa0, 0x44, 0x7c, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x9a, 0x41, 0x74, 0xb0, 0x6c, 0xc6, 0xb9, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x34, 0x08, 0xd1, 0x86, 0xaf, 0x70, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x83, 0x26, 0x44, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x0b, 0x8d, 0xb0, 0x18, 0x68, 0xa1, 0x11, 0x56, 0x07, 0xcb, 0x66, 0x9c, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x8b, 0x2b, 0x44, 0x1b, 0x04, 0xe9, 0xe9, 0x06, 0xeb, 0x2e, 0x90, 0x57, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x13, 0x8d, 0x90, 0x0e, 0x34, 0xd1, 0x08, 0x93, 0x83, 0xf5, 0x22, 0xcd, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x09, 0x19, 0xa2, 0x83, 0xb6, 0xbe, 0x2f, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x17, 0x8d, 0x90, 0x0e, 0x74, 0xd1, 0x08, 0x93, 0x83, 0xf5, 0xee, 0xcc, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xe1, 0x1c, 0xa2, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x53, 0x3f, 0x44, 0x1b, 0xfe, 0xcd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x4e, 0x44, 0xb4, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x33, 0x4a, 0x44, 0x07, 0xad, 0x48, 0x56, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xda, 0x83, 0x22, 0xda, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xe1, 0x2a, 0xa2, 0x83, 0x05, 0x54, 0xde, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x06, 0xb8, 0x88, 0x0e, 0x96, 0xd8, 0x6f, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x48, 0x8c, 0x68, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x26, 0xcf, 0x88, 0x0e, 0x16, 0x50, 0x79, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9a, 0x6e, 0x23, 0x3a, 0x58, 0x62, 0xbf, 0x5d, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x09, 0x3a, 0xa2, 0x83, 0x76, 0x63, 0x14, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0d, 0x44, 0x12, 0x1d, 0x2c, 0xcf, 0x40, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6d, 0xe8, 0x11, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xce, 0x1f, 0xd1, 0x41, 0x93, 0x9a, 0x17, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf6, 0x0a, 0x89, 0x0e, 0x92, 0xd2, 0x82, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xed, 0x2c, 0x12, 0x1d, 0x14, 0x14, 0x99, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x46, 0x1a, 0x21, 0x1d, 0x68, 0xa4, 0x11, 0x66, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x23, 0x8d, 0x10, 0x0f, 0x34, 0xd2, 0x08, 0x9b, 0x83, 0x35, 0x2f, 0xcd, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xa4, 0x11, 0x46, 0x03, 0x8d, 0x34, 0xc2, 0xea, 0x20, 0x4c, 0xc7, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6d, 0x61, 0x12, 0x1d, 0x2c, 0xcf, 0x40, 0x5e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x9d, 0x34, 0x42, 0x3a, 0xd0, 0x49, 0x23, 0xcc, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x4e, 0x1a, 0x21, 0x1e, 0xe8, 0xa4, 0x11, 0x36, 0x07, 0xeb, 0xf7, 0x99, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x49, 0x23, 0x8c, 0x06, 0x3a, 0x69, 0x84, 0xd5, 0x41, 0x98, 0x8e, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9a, 0xfd, 0x24, 0xda, 0xa0, 0x20, 0x8d, 0xdd, 0x60, 0xd5, 0xba, 0xee, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xb1, 0x52, 0xa2, 0x0d, 0x97, 0xd4, 0x06, 0x87, 0xfd, 0x8e, 0x35, 0x58, 0x5d, 0x33, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9a, 0x93, 0x25, 0x3a, 0x68, 0xd9, 0xc8, 0x6d, 0x0d, 0xd6, 0x5d, 0x20, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x76, 0x58, 0x89, 0x0e, 0x5a, 0x17, 0xad, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x94, 0x4b, 0xb4, 0x41, 0x41, 0x1a, 0xbb, 0xc1, 0xe0, 0x41, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0xed, 0x4b, 0xb4, 0xe1, 0x92, 0xda, 0xe0, 0xb0, 0xdf, 0xb1, 0x06, 0xab, 0x6b, 0xa6, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xf3, 0xcb, 0x44, 0x07, 0x4d, 0xaa, 0xb9, 0xad, 0xc1, 0xba, 0x0b, 0xe4, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x6a, 0x31, 0xd1, 0x41, 0x6b, 0x94, 0x55, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe6, 0xa5, 0x89, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x0f, 0x9b, 0xe8, 0xa0, 0x99, 0x83, 0xa9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x03, 0xe2, 0x44, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x7a, 0x4e, 0x74, 0xd0, 0xb8, 0x0f, 0xd7, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x25, 0x78, 0xa2, 0x83, 0x85, 0x08, 0xbb, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x16, 0xee, 0x89, 0x0e, 0x16, 0x70, 0xc2, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xc3, 0x9f, 0x68, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x96, 0x07, 0x8a, 0x0e, 0x1a, 0xf7, 0xe1, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0xc7, 0x50, 0x74, 0xb0, 0x10, 0x61, 0x77, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xcc, 0x44, 0xd1, 0x41, 0x6b, 0x94, 0x55, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5a, 0xd4, 0x28, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x21, 0x90, 0xa2, 0x83, 0xc6, 0x7d, 0xb8, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcd, 0xa3, 0x14, 0x1d, 0xb4, 0x2e, 0x5a, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xfa, 0xa5, 0xe8, 0x60, 0x01, 0x27, 0x7c, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc6, 0x6d, 0x8a, 0x0e, 0x0a, 0x8a, 0xcc, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x33, 0x8d, 0x90, 0x0e, 0x34, 0xd3, 0x08, 0xb3, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x99, 0x46, 0x88, 0x07, 0x9a, 0x69, 0x84, 0xcd, 0xc1, 0x6a, 0x24, 0xee, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xd3, 0x08, 0xa3, 0x81, 0x66, 0x1a, 0x61, 0x75, 0x10, 0xa6, 0x63, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x66, 0x7d, 0x8a, 0x36, 0x7c, 0x62, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x8b, 0xa8, 0x68, 0xc3, 0x25, 0xb5, 0xc1, 0x61, 0xbf, 0x63, 0x0d, 0x56, 0xd7, 0x4c, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc6, 0xa2, 0x8a, 0x0e, 0x5a, 0x36, 0x72, 0x5b, 0x83, 0x75, 0x17, 0xc8, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x95, 0xa5, 0xa2, 0x83, 0xd6, 0x45, 0xab, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xed, 0x60, 0x15, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x6a, 0x57, 0xd1, 0x86, 0x7f, 0x73, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xed, 0x8c, 0x15, 0x1d, 0xb4, 0xf5, 0x7d, 0xb1, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9a, 0x4b, 0x2b, 0x3a, 0x3c, 0x33, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xe6, 0xad, 0xe8, 0xa0, 0xad, 0xef, 0x8b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x5c, 0x5d, 0xd1, 0x06, 0xc5, 0x8e, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x71, 0xbd, 0xa2, 0x0d, 0xff, 0xe6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9a, 0x03, 0x2c, 0x3a, 0x58, 0x62, 0xbf, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5a, 0x35, 0x2c, 0x3a, 0x68, 0x52, 0xcd, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x14, 0x69, 0xd1, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0d, 0xa8, 0x16, 0x1d, 0x34, 0xee, 0xc3, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x53, 0xb6, 0xe8, 0xf0, 0xcc, 0xe4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x91, 0xdc, 0xa2, 0x0d, 0x97, 0xd4, 0x06, 0x87, 0xfd, 0x8e, 0x35, 0x58, 0x5d, 0x33, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1a, 0x32, 0x2e, 0x3a, 0x68, 0x52, 0xcd, 0x6d, 0x0d, 0xd6, 0x5d, 0x20, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x06, 0x80, 0x8b, 0x0e, 0x96, 0xd8, 0x6f, 0xd7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xa0, 0xb1, 0x68, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x46, 0x24, 0x8b, 0x0e, 0x5a, 0xea, 0xe0, 0x58, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0x86, 0x59, 0x74, 0x78, 0x66, 0x72, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x82, 0x67, 0xd1, 0x41, 0x6b, 0x94, 0x55, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x8e, 0x1a, 0x21, 0x1d, 0xe8, 0xa8, 0x11, 0x66, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x47, 0x8d, 0x10, 0x0f, 0x74, 0xd4, 0x08, 0x9b, 0x83, 0xa5, 0x61, 0xdc, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xa8, 0x11, 0x46, 0x03, 0x1d, 0x35, 0xc2, 0xea, 0x20, 0x4c, 0xc7, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xed, 0x3c, 0x17, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xb0, 0xee, 0x02, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0x61, 0x5d, 0x74, 0xd0, 0x1a, 0x65, 0x55, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xa5, 0x46, 0x48, 0x07, 0x5a, 0x6a, 0x84, 0xd9, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x52, 0x23, 0xc4, 0x03, 0x2d, 0x35, 0xc2, 0xe6, 0x60, 0x69, 0x1c, 0xf7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x6a, 0x84, 0xd1, 0x40, 0x4b, 0x8d, 0xb0, 0x3a, 0x08, 0xd3, 0xb1, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x23, 0xde, 0x45, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0x3d, 0x5e, 0x74, 0xd0, 0xcc, 0xc1, 0xd4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x2d, 0xf6, 0xa2, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5a, 0x90, 0x2f, 0x3a, 0x28, 0x91, 0xaa, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xad, 0xea, 0x17, 0x6d, 0x50, 0x96, 0xbc, 0x6f, 0xb0, 0x08, 0x64, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x16, 0x80, 0xd1, 0x41, 0xd9, 0xf4, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x27, 0xc1, 0xe8, 0xa0, 0x75, 0xd1, 0xaa, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xad, 0x42, 0x18, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x2d, 0x35, 0x42, 0xef, 0x40, 0x4b, 0x8d, 0x50, 0xbe, 0xe1, 0xcf, 0xa5, 0x0d, 0x4e, 0x3e, 0xa8, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x6a, 0x84, 0xe2, 0x83, 0x76, 0xb6, 0xf3, 0x0e, 0x96, 0xcd, 0x38, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x56, 0x2f, 0x8c, 0x36, 0x5c, 0x52, 0x1b, 0x1c, 0xf6, 0x3b, 0xd6, 0x60, 0xdd, 0x05, 0xf2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xd2, 0xc3, 0xe8, 0xa0, 0x6d, 0x37, 0x82, 0x6a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xd4, 0x08, 0xe9, 0x40, 0x4f, 0x8d, 0x30, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x6a, 0x84, 0x78, 0xa0, 0xa7, 0x46, 0xd8, 0x1c, 0xac, 0x5c, 0xe4, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x4f, 0x8d, 0x30, 0x1a, 0xe8, 0xa9, 0x11, 0x56, 0x07, 0x61, 0x3a, 0xd6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x04, 0xc5, 0x68, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x96, 0x5b, 0x8c, 0x0e, 0xda, 0x42, 0xa5, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0x66, 0x63, 0x74, 0xd0, 0xba, 0x68, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xb5, 0x1e, 0xa3, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0xd6, 0x5d, 0x20, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x96, 0x88, 0x8c, 0x0e, 0x5a, 0xa3, 0xac, 0xaa, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x54, 0x23, 0xa4, 0x03, 0x4d, 0x35, 0xc2, 0x6c, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xaa, 0x11, 0xe2, 0x81, 0xa6, 0x1a, 0x61, 0x73, 0xb0, 0x6a, 0x95, 0x7b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x4d, 0x35, 0xc2, 0x68, 0xa0, 0xa9, 0x46, 0x58, 0x1d, 0x84, 0xe9, 0x58, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x71, 0x26, 0xa3, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xda, 0x93, 0x32, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x11, 0x2c, 0xa3, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x8e, 0xd6, 0x1a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x96, 0xbb, 0x8c, 0x0e, 0xca, 0xa6, 0xf7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xb3, 0x66, 0x46, 0x07, 0xcd, 0xb5, 0x55, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xec, 0xcd, 0xe8, 0x60, 0x79, 0x06, 0x72, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa6, 0xeb, 0x8c, 0x0e, 0xda, 0xfa, 0xbe, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4d, 0xf0, 0x19, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xd0, 0x92, 0x5b, 0xd5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x29, 0xd2, 0x68, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe6, 0x2d, 0x8d, 0x36, 0x28, 0x4b, 0xde, 0x37, 0x28, 0x5b, 0x50, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6d, 0x72, 0x1a, 0x1d, 0x94, 0x4d, 0xef, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc6, 0x4a, 0x8d, 0x0e, 0x9a, 0x6b, 0xab, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x84, 0xab, 0xd1, 0xc1, 0xf2, 0x0c, 0xe4, 0xd6, 0x60, 0xdd, 0x05, 0xf2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x59, 0xd0, 0x68, 0xc3, 0x25, 0xb5, 0x41, 0x23, 0xc1, 0x52, 0x6b, 0xd0, 0xc0, 0xc8, 0xd4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x35, 0xd1, 0xe8, 0x60, 0x79, 0x06, 0x72, 0xb5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x1a, 0x6b, 0x84, 0x6c, 0xa0, 0xb1, 0x46, 0x18, 0x1c, 0x9c, 0xc5, 0x44, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xe3, 0xb6, 0x46, 0x1b, 0x94, 0xf6, 0x96, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe6, 0x78, 0x8d, 0x36, 0xfc, 0xb9, 0xb4, 0x41, 0xbb, 0x1b, 0x55, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xc9, 0x60, 0xa3, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xde, 0xb1, 0xd1, 0x41, 0x89, 0xf8, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x00, 0xda, 0xe8, 0x60, 0xd9, 0x8c, 0x73, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x95, 0x6b, 0xa3, 0x0d, 0x5f, 0xe1, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb6, 0xb9, 0x8d, 0x36, 0xfc, 0x45, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xd6, 0x1a, 0x61, 0x31, 0xd0, 0x5a, 0x23, 0xac, 0x0e, 0x96, 0xcd, 0x38, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc6, 0xc3, 0x8d, 0x36, 0x08, 0xd2, 0xd3, 0x0d, 0xd6, 0x5d, 0x20, 0xaf, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xe6, 0x1a, 0x21, 0x1b, 0x68, 0xae, 0x11, 0x06, 0x07, 0xeb, 0x45, 0x9a, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x6b, 0xe8, 0x46, 0x07, 0x6d, 0x7d, 0x5f, 0xac, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xee, 0x1a, 0x21, 0x1b, 0xe8, 0xae, 0x11, 0x06, 0x07, 0xeb, 0xdd, 0x99, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x1b, 0xf0, 0x46, 0x07, 0x4b, 0xec, 0xb7, 0x57, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x7b, 0x8d, 0x90, 0x0d, 0xb4, 0xd7, 0x08, 0xa3, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xbd, 0x46, 0x08, 0x07, 0xda, 0x6b, 0x84, 0xc5, 0xc1, 0x9a, 0x97, 0xe6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xd7, 0x08, 0x93, 0x81, 0xf6, 0x1a, 0x61, 0x73, 0x10, 0xa6, 0x63, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x96, 0xef, 0x8d, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xaa, 0xdf, 0x68, 0xc3, 0xbf, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc6, 0x05, 0x8e, 0x0e, 0x5a, 0xa3, 0xac, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xed, 0x23, 0x1c, 0x6d, 0x70, 0x0c, 0x37, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4d, 0x3b, 0x1c, 0x1d, 0xb4, 0x61, 0x03, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x9d, 0xe2, 0xe8, 0xa0, 0xad, 0xef, 0x8b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xc6, 0xc6, 0xd1, 0xc1, 0xf2, 0x0c, 0xe4, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x61, 0x23, 0x64, 0x03, 0x1d, 0x36, 0xc2, 0x68, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xb0, 0x11, 0xc2, 0x81, 0x0e, 0x1b, 0x61, 0x71, 0xb0, 0x7e, 0x9f, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x1d, 0x36, 0xc2, 0x64, 0xa0, 0xc3, 0x46, 0xd8, 0x1c, 0x84, 0xe9, 0x58, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x2d, 0x91, 0xa3, 0x83, 0xe5, 0x19, 0xc8, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xc5, 0x46, 0xc8, 0x06, 0x5a, 0x6c, 0x84, 0xd1, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x62, 0x23, 0x84, 0x03, 0x2d, 0x36, 0xc2, 0xe2, 0x60, 0x35, 0x12, 0xf7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x6c, 0x84, 0xc9, 0x40, 0x8b, 0x8d, 0xb0, 0x39, 0x08, 0xd3, 0xb1, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xb3, 0x29, 0x47, 0x07, 0xcb, 0x33, 0x90, 0x57, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x8f, 0x8d, 0x90, 0x0d, 0xf4, 0xd8, 0x08, 0xa3, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xc7, 0x46, 0x08, 0x07, 0x7a, 0x6c, 0x84, 0xc5, 0xc1, 0xd2, 0x30, 0xee, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xd8, 0x08, 0x93, 0x81, 0x1e, 0x1b, 0x61, 0x73, 0x10, 0xa6, 0x63, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x16, 0x62, 0x8e, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xd6, 0xe6, 0xe8, 0xa0, 0x5d, 0x27, 0xae, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x4b, 0x3f, 0x47, 0x07, 0xad, 0x8b, 0x56, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9a, 0x32, 0x3a, 0xda, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0x60, 0xdd, 0x05, 0xf2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xa6, 0xe9, 0xe8, 0xa0, 0x35, 0xca, 0xaa, 0x5a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x4d, 0x36, 0x42, 0x36, 0xd0, 0x64, 0x23, 0x8c, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x26, 0x1b, 0x21, 0x1c, 0x68, 0xb2, 0x11, 0x16, 0x07, 0x4b, 0xe3, 0xb8, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x64, 0x23, 0x4c, 0x06, 0x9a, 0x6c, 0x84, 0xcd, 0x41, 0x98, 0x8e, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1a, 0xae, 0x3a, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xb9, 0xad, 0xa3, 0x83, 0x66, 0x0e, 0xa6, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xed, 0x8f, 0x1d, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x6a, 0xda, 0xd1, 0x41, 0x89, 0x54, 0xbd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x49, 0xee, 0x68, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x45, 0x20, 0xa3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf6, 0xef, 0x8e, 0x0e, 0xca, 0xa6, 0xf7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xdb, 0x80, 0x47, 0x07, 0xad, 0x8b, 0x56, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x09, 0xf1, 0x68, 0xc3, 0x2f, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xb2, 0x11, 0x5a, 0x07, 0x9a, 0x6c, 0x84, 0xea, 0x0d, 0x7f, 0x2e, 0x6d, 0x70, 0xf2, 0x41, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x64, 0x23, 0xd4, 0x1e, 0x34, 0x25, 0xb3, 0x77, 0xb0, 0x6c, 0xc6, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0xf4, 0x78, 0xb4, 0xe1, 0x92, 0xda, 0xe0, 0xb0, 0xdf, 0xb1, 0x06, 0xeb, 0x2e, 0x90, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x33, 0x96, 0x47, 0x07, 0x6d, 0xbb, 0x11, 0x54, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xcb, 0x46, 0xc8, 0x06, 0xba, 0x6c, 0x84, 0xd1, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x65, 0x23, 0x84, 0x03, 0x5d, 0x36, 0xc2, 0xe2, 0x60, 0xe5, 0x22, 0xf7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0x6c, 0x84, 0xc9, 0x40, 0x97, 0x8d, 0xb0, 0x39, 0x08, 0xd3, 0xb1, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xc3, 0x9f, 0x47, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x56, 0x7a, 0x74, 0xd0, 0x16, 0x2a, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x01, 0xd7, 0xa3, 0x83, 0xd6, 0x45, 0xab, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2d, 0xd4, 0x1e, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xb0, 0xee, 0x02, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0xbe, 0x7b, 0x74, 0xd0, 0x1a, 0x65, 0x55, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x36, 0x1b, 0x21, 0x1b, 0x68, 0xb3, 0x11, 0x46, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x9b, 0x8d, 0x10, 0x0e, 0xb4, 0xd9, 0x08, 0x8b, 0x83, 0x55, 0xab, 0xdc, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xb3, 0x11, 0x26, 0x03, 0x6d, 0x36, 0xc2, 0xe6, 0x20, 0x4c, 0xc7, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0d, 0x12, 0x1f, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x86, 0xf2, 0xd1, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0d, 0x3f, 0x1f, 0x6d, 0x50, 0x96, 0xbc, 0x6f, 0x70, 0xb4, 0xd6, 0x58, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x56, 0x7d, 0x74, 0x50, 0x36, 0xbd, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9a, 0xf2, 0x3e, 0x3a, 0x68, 0xae, 0xad, 0xaa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x03, 0xe7, 0x47, 0x07, 0xcb, 0x33, 0x90, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0xd7, 0x7e, 0x74, 0xd0, 0xd6, 0xf7, 0xc5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x76, 0xfe, 0x68, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x96, 0xdc, 0xaa, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xe3, 0x08, 0x48, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0xe8, 0x80, 0xb4, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0xd9, 0x82, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x86, 0x02, 0xe9, 0xa0, 0x6c, 0x7a, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0xcf, 0x81, 0x74, 0xd0, 0x5c, 0x5b, 0x55, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x56, 0x4b, 0x90, 0x0e, 0x96, 0x67, 0x20, 0xb7, 0x06, 0xeb, 0x2e, 0x90, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x6b, 0xfa, 0x47, 0x1b, 0x2e, 0xa9, 0x0d, 0x1a, 0x09, 0x96, 0x5a, 0x83, 0x06, 0x46, 0xa6, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x4b, 0x01, 0x48, 0x07, 0xcb, 0x33, 0x90, 0xab, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x6a, 0x23, 0x64, 0x03, 0xad, 0x36, 0xc2, 0xe0, 0x60, 0x89, 0xae, 0xf3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xcf, 0x05, 0x69, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0xd5, 0x35, 0xd3, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xa1, 0x1a, 0xa4, 0x83, 0x96, 0x8d, 0xdc, 0x5a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xbd, 0x36, 0x42, 0x36, 0xd0, 0x6b, 0x23, 0x0c, 0x0e, 0xd6, 0x50, 0x7a, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x56, 0x7a, 0x90, 0x36, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x58, 0x5d, 0x33, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9a, 0x1f, 0x42, 0x3a, 0x68, 0xd9, 0xc8, 0xad, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x6c, 0x23, 0x64, 0x03, 0xcd, 0x36, 0xc2, 0xe0, 0x60, 0xb9, 0xcc, 0xf7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x7b, 0x09, 0x69, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0xd5, 0x35, 0xd3, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x51, 0x29, 0xa4, 0x83, 0x96, 0x8d, 0xdc, 0x5a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xdd, 0x36, 0x42, 0x36, 0xd0, 0x6d, 0x23, 0x0c, 0x0e, 0x56, 0x30, 0x7d, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x16, 0xb5, 0x90, 0x36, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x58, 0x5d, 0x33, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xda, 0x69, 0x44, 0x3a, 0x68, 0xd9, 0xc8, 0x6d, 0x0d, 0x1a, 0x18, 0x99, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8d, 0x85, 0x21, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xc6, 0x19, 0xd2, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x6d, 0xdc, 0x47, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5a, 0x66, 0x43, 0x3a, 0x68, 0x1c, 0x3d, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x74, 0x1d, 0xd2, 0x41, 0x03, 0x67, 0x53, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1a, 0xf6, 0x43, 0x3a, 0x68, 0x23, 0xbd, 0x60, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x76, 0x21, 0xd2, 0x41, 0xcb, 0xfa, 0x71, 0xb5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xfa, 0x6d, 0x84, 0x6c, 0xa0, 0xdf, 0x46, 0x18, 0x1c, 0xac, 0x09, 0x3a, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8d, 0x54, 0x22, 0x6d, 0x50, 0x90, 0xc6, 0x6e, 0xb0, 0xbc, 0x37, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0xb2, 0x26, 0xd2, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xed, 0x81, 0x22, 0x6d, 0x50, 0x96, 0xbc, 0x6f, 0xd0, 0xc6, 0x7d, 0xd4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x11, 0x53, 0xa4, 0x83, 0xc6, 0xd1, 0xa3, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xad, 0xbc, 0x22, 0x1d, 0x34, 0x70, 0x36, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x05, 0x5c, 0xa4, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x9a, 0x37, 0xed, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0xdc, 0x8b, 0x74, 0xd0, 0x50, 0x6a, 0xd7, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x49, 0x63, 0xa4, 0x83, 0x56, 0x3e, 0xe4, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0xd8, 0x8c, 0xb4, 0x41, 0xc1, 0x87, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0x5e, 0x1a, 0x69, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x36, 0xb1, 0x91, 0x36, 0x28, 0x4b, 0xde, 0x37, 0x68, 0x8c, 0x56, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x90, 0x37, 0xd2, 0x41, 0xe3, 0xe8, 0x51, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x16, 0xce, 0x91, 0x0e, 0x56, 0xf0, 0x86, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xf2, 0x1d, 0xe9, 0xa0, 0xc8, 0x69, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0x63, 0x8f, 0xb4, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0xc1, 0xea, 0x9a, 0xe9, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xd0, 0x40, 0x3f, 0xd2, 0x41, 0xcb, 0x46, 0x6e, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xda, 0x1f, 0x48, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0xc1, 0x84, 0xa4, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x5a, 0x57, 0x93, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0xf2, 0x90, 0x74, 0xd0, 0x38, 0x7a, 0xd4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xa0, 0x0d, 0x8c, 0xa4, 0x83, 0xe5, 0x19, 0xc8, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1a, 0x05, 0x49, 0x3a, 0x58, 0xc1, 0x1b, 0xda, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xb9, 0x11, 0xb2, 0x81, 0x96, 0x1b, 0x61, 0x70, 0xb0, 0x48, 0xeb, 0x7c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xb4, 0x8f, 0x92, 0x74, 0xb0, 0x3c, 0x03, 0xb9, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x56, 0x83, 0x06, 0xa9, 0x96, 0x36, 0x3c, 0x3e, 0xb2, 0x41, 0x83, 0x54, 0x4b, 0x1b, 0x7e, 0x51, 0xda, 0xa0, 0x5d, 0x1b, 0xab, 0x0d, 0x4a, 0x09, 0xf1, 0x35, 0x28, 0x59, 0xd8, 0x67, 0x99, 0x05, 0x7c, 0xb8, 0x37, 0xb7, 0x7c, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xa0, 0x71, 0x30, 0xbe, 0x06, 0xf0, 0x90, 0x0b, 0xbb, 0x03, 0x69, 0x0b, 0xa3, 0x1b, 0x43, 0xdb, 0xf0, 0x51, 0xfb, 0x86, 0x0f, 0xe6, 0xd7, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0xd9, 0x60, 0x95, 0x83, 0x51, 0x07, 0x21, 0xf8, 0xb0, 0x41, 0xe8, 0x97, 0xac, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xbf, 0x5b, 0x18, 0x5d, 0x9d, 0x5c, 0x18, 0xdb, 0x4b, 0x98, 0x98, 0xdb, 0x9b, 0x5c, 0x5b, 0x18, 0xdb, 0xc1, 0x2a, 0xc8, 0xe4, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x09, 0x93, 0x6b, 0x03, 0x79, 0x93, 0x03, 0x61, 0x2b, 0x3b, 0x3b, 0x58, 0xc6, 0x5e, 0xbe, 0x06, 0xa1, 0x5f, 0xb2, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0x7f, 0x98, 0x98, 0xdb, 0x9b, 0x5c, 0x5b, 0x18, 0xdb, 0xc1, 0x2a, 0xc8, 0xe4, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0xa8, 0x73, 0x6b, 0x0b, 0xa3, 0x1b, 0x43, 0x2b, 0x23, 0x3b, 0x28, 0xb3, 0x74, 0xd7, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x63, 0x2e, 0xcf, 0x8d, 0x0e, 0xad, 0x8c, 0x2e, 0x6d, 0xec, 0x60, 0x31, 0x7c, 0x79, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0xb6, 0xe1, 0x2f, 0x9a, 0x35, 0xfc, 0x3b, 0xbf, 0x06, 0x8d, 0x83, 0xf1, 0xd5, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0xed, 0xc2, 0x50, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0x56, 0x81, 0xc9, 0x6e, 0x50, 0x50, 0x64, 0x6e, 0xb0, 0x0a, 0x4c, 0xf6, 0xa0, 0x59, 0x0d, 0xaa, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x0d, 0xc6, 0x82, 0xd8, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0xed, 0xc2, 0x50, 0x6d, 0x78, 0x5b, 0x67, 0x70, 0xfa, 0xa0, 0x5d, 0x18, 0xaa, 0x36, 0x08, 0xd2, 0xd3, 0x35, 0x0e, 0x1d, 0x14, 0xb0, 0x9a, 0x6b, 0x10, 0x46, 0x40, 0x1b, 0x04, 0xe9, 0xe9, 0x1a, 0x87, 0x0e, 0xda, 0x29, 0x30, 0x5b, 0x83, 0x80, 0x0d, 0x3a, 0x28, 0x45, 0x35, 0xd7, 0x20, 0x8c, 0x80, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x36, 0x68, 0x37, 0xec, 0x6b, 0xc3, 0xbb, 0x3d, 0x6b, 0xb8, 0xa4, 0x36, 0x68, 0x7e, 0x44, 0x6a, 0x0d, 0x1a, 0x18, 0x99, 0xda, 0xf0, 0xb6, 0xce, 0xe0, 0xf0, 0xe0, 0xf0, 0x41, 0x3b, 0x05, 0x66, 0x6d, 0xb0, 0xc4, 0x7e, 0x7b, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x46, 0x7a, 0xc1, 0x1a, 0xde, 0xd6, 0x19, 0x3c, 0x3d, 0x68, 0x17, 0x86, 0xea, 0xa0, 0xac, 0xf3, 0x6c, 0xc3, 0x2f, 0x2e, 0x1b, 0x2c, 0x73, 0x92, 0xdd, 0x60, 0x99, 0x93, 0xec, 0x06, 0x2d, 0xc5, 0x7d, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x5a, 0x77, 0x47, 0x5b, 0xc3, 0xdb, 0x3a, 0x83, 0xc7, 0x07, 0xed, 0xcb, 0xf2, 0x6d, 0xd0, 0x38, 0xde, 0x57, 0xb5, 0x06, 0x01, 0x1b, 0xb4, 0x41, 0xd1, 0xa7, 0xbb, 0x41, 0x03, 0x23, 0x53, 0x6b, 0xb0, 0xd2, 0xc5, 0x69, 0x83, 0xb6, 0x5b, 0xca, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf1, 0x41, 0x3b, 0x05, 0x66, 0x1b, 0x04, 0xe9, 0xe9, 0x1a, 0x87, 0x0e, 0xda, 0x6e, 0x29, 0x5b, 0x83, 0x80, 0x0d, 0xda, 0xf0, 0xb6, 0xce, 0xe0, 0xf0, 0x41, 0xdb, 0x2d, 0x65, 0x6b, 0x10, 0x46, 0x40, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x99, 0x83, 0xa9, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x89, 0x54, 0xbd, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x8b, 0x40, 0x46, 0x37, 0x28, 0x9b, 0xde, 0xd7, 0xf0, 0xb6, 0xce, 0xe0, 0xf1, 0x41, 0xdb, 0x2d, 0x65, 0x6d, 0xb0, 0x2a, 0x8c, 0xb8, 0xda, 0xa0, 0x94, 0x10, 0x5f, 0x83, 0x25, 0xd5, 0x49, 0x1b, 0xee, 0xa8, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x73, 0x97, 0x0d, 0x9a, 0xc8, 0xda, 0xda, 0xf0, 0x17, 0xcd, 0x06, 0x4b, 0xfa, 0x9c, 0x0f, 0x8f, 0xc9, 0xac, 0xe1, 0x73, 0x97, 0x01, 0x8f, 0xed, 0xcd, 0xdd, 0xf0, 0xb6, 0xce, 0x41, 0xfb, 0xb2, 0x7c, 0x6b, 0xf8, 0xdc, 0x65, 0xc0, 0x43, 0x2b, 0x3b, 0x37, 0x28, 0x06, 0x64, 0x37, 0x68, 0x14, 0x97, 0x6f, 0x83, 0x96, 0x6f, 0xf9, 0x36, 0xfc, 0xe2, 0xb2, 0xc1, 0x32, 0x27, 0xd9, 0x0d, 0x5a, 0xaf, 0x5c, 0x58, 0xc3, 0xe7, 0x2e, 0x83, 0xc7, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0x2c, 0x05, 0xb6, 0x41, 0xcb, 0xb7, 0x7c, 0xd5, 0x86, 0x0f, 0x72, 0xd6, 0xa0, 0x98, 0xc4, 0xdc, 0x20, 0x60, 0x83, 0x36, 0x0e, 0x6d, 0xd0, 0x10, 0x3b, 0x5f, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x55, 0x60, 0xb2, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0x8e, 0xe1, 0x06, 0x1b, 0xde, 0xd6, 0x19, 0x1c, 0x3e, 0x68, 0x73, 0x9f, 0x6f, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0x14, 0x3a, 0x5f, 0x6d, 0xb0, 0x0a, 0x4c, 0x76, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0x44, 0xaf, 0xd4, 0x06, 0x0d, 0x86, 0x59, 0x6d, 0xd0, 0x32, 0x40, 0x5f, 0x6d, 0x50, 0xda, 0x5b, 0xae, 0xe1, 0xcf, 0xa5, 0x0d, 0xda, 0xdd, 0xa8, 0x3a, 0x58, 0x9b, 0xc7, 0xbd, 0xe1, 0x41, 0xc9, 0x0d, 0x02, 0x90, 0x6d, 0x83, 0x92, 0x85, 0x7d, 0x96, 0x59, 0x83, 0x06, 0x2e, 0x9b, 0x36, 0x28, 0xe1, 0x31, 0x17, 0x3c, 0x3e, 0x68, 0x73, 0x9f, 0x6f, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0x84, 0x9b, 0xa7, 0x83, 0xc6, 0x40, 0xa5, 0x56, 0xc0, 0xa7, 0xbb, 0x4b, 0x73, 0x37, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0xc9, 0x2d, 0xaa, 0x07, 0x4d, 0x42, 0xf2, 0xad, 0xe1, 0xcf, 0xa5, 0x01, 0x2f, 0xef, 0x4d, 0x3e, 0x68, 0x12, 0x92, 0xaf, 0x0d, 0x7f, 0xd1, 0x6c, 0xd0, 0x24, 0x24, 0xdf, 0x86, 0xb7, 0xec, 0xd6, 0xf0, 0xc4, 0xdd, 0x86, 0x67, 0xf1, 0x0e, 0xda, 0xa6, 0x4e, 0xda, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0x20, 0xcd, 0x4f, 0x75, 0xc3, 0xdb, 0x3a, 0x1b, 0x34, 0x05, 0xd2, 0xd7, 0x06, 0x69, 0x7e, 0xaa, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x24, 0x07, 0xaa, 0x6e, 0xd0, 0xbc, 0x4a, 0xdf, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0x2d, 0xaf, 0xf4, 0x6d, 0x90, 0xe6, 0xa7, 0xba, 0xe1, 0x83, 0x9c, 0x35, 0x28, 0x26, 0x31, 0x37, 0x08, 0x23, 0xa0, 0x8d, 0x43, 0x07, 0xc9, 0x81, 0xaa, 0x6b, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0x11, 0xd6, 0x35, 0x28, 0x26, 0x31, 0x37, 0x08, 0x23, 0xa0, 0x8d, 0x43, 0x07, 0x2d, 0xaf, 0xf4, 0xad, 0x41, 0x31, 0x89, 0xb9, 0x41, 0x18, 0x01, 0x6d, 0x1c, 0x1a, 0x1c, 0x3e, 0x48, 0x0e, 0x54, 0x5d, 0x83, 0x62, 0x12, 0x73, 0x83, 0x30, 0x02, 0xda, 0x38, 0x34, 0x38, 0x7c, 0xd0, 0xf2, 0x4a, 0xdf, 0x1a, 0xfe, 0xcd, 0x59, 0xc3, 0xdb, 0x3a, 0x83, 0xc7, 0x83, 0xc3, 0x07, 0x8d, 0x03, 0xf5, 0x6d, 0x78, 0x5b, 0x67, 0xf0, 0x78, 0x70, 0xf8, 0xa0, 0x75, 0xa2, 0xbe, 0x36, 0x38, 0xe7, 0x2f, 0x6d, 0xb0, 0xcc, 0x49, 0x76, 0x83, 0x65, 0x4e, 0xb2, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0x73, 0x30, 0xb5, 0x86, 0xb7, 0x75, 0x06, 0x87, 0x0f, 0x5a, 0x46, 0xea, 0x5b, 0xc3, 0xdb, 0x3a, 0x83, 0xc3, 0x07, 0xcd, 0x2e, 0xf5, 0x1d, 0x94, 0x75, 0x9e, 0x1b, 0x34, 0x77, 0xd4, 0xd7, 0x06, 0x05, 0x1f, 0xe6, 0x1a, 0x14, 0x93, 0x98, 0x1b, 0x04, 0x6c, 0xd0, 0x41, 0xc3, 0x3c, 0x7d, 0x1b, 0x14, 0x7c, 0x98, 0x6b, 0xf8, 0x37, 0x67, 0x0d, 0x6f, 0xeb, 0x1c, 0xb4, 0x8c, 0xd4, 0xb7, 0xe1, 0x6d, 0x9d, 0x83, 0x66, 0x97, 0xfa, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x47, 0x58, 0xd7, 0xa0, 0x98, 0xc4, 0xdc, 0x20, 0x60, 0x83, 0x36, 0x0e, 0x0d, 0x1e, 0x1f, 0x34, 0x0e, 0xd4, 0xb7, 0x06, 0xc5, 0x24, 0xe6, 0x06, 0x01, 0x1b, 0xb4, 0x71, 0x68, 0xf0, 0xf8, 0xa0, 0x75, 0xa2, 0xbe, 0xd6, 0xe0, 0x9c, 0xbf, 0xb4, 0xc1, 0x2a, 0x30, 0xd9, 0x0d, 0x1a, 0x04, 0xeb, 0xdb, 0xf0, 0x8b, 0xcb, 0x06, 0xab, 0xc0, 0x64, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xcd, 0x1c, 0x4c, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0x83, 0x36, 0xd1, 0xfa, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf0, 0x41, 0xb3, 0x6c, 0x7d, 0x07, 0x65, 0x9d, 0x67, 0x1b, 0x14, 0x7c, 0x98, 0x6b, 0x78, 0x84, 0x75, 0x0d, 0x8a, 0x49, 0xcc, 0x0d, 0xc2, 0x08, 0xe8, 0xa0, 0x09, 0xb4, 0xbe, 0x35, 0x28, 0x26, 0x31, 0x37, 0x08, 0x23, 0xa0, 0x83, 0x56, 0xd8, 0xfa, 0xda, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0xb4, 0x5a, 0xd7, 0x77, 0xd0, 0x08, 0x5e, 0xdf, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x80, 0x77, 0x17, 0xc6, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x8e, 0xfd, 0x37, 0x1b, 0x94, 0x4d, 0xef, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xf8, 0xa0, 0x4d, 0xb4, 0xbe, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf1, 0x41, 0xb3, 0x6c, 0x7d, 0x6d, 0x70, 0xce, 0x5f, 0xda, 0x60, 0x15, 0x98, 0xec, 0x06, 0x0d, 0x82, 0xf5, 0x6d, 0xf8, 0xc5, 0x65, 0x83, 0x65, 0x4e, 0xb2, 0x1b, 0xb4, 0x5a, 0xd7, 0xb7, 0x86, 0xb7, 0x75, 0x36, 0x68, 0x31, 0xb1, 0xaf, 0x0e, 0xa7, 0xd8, 0x1a, 0x2c, 0xe1, 0xe6, 0xd9, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0xf0, 0xe0, 0xcd, 0x41, 0xcb, 0x00, 0x7d, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x55, 0x60, 0xb2, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x82, 0x22, 0x73, 0x0d, 0x8e, 0xe1, 0x06, 0x07, 0xed, 0x94, 0x6d, 0x1d, 0x34, 0x33, 0xd0, 0x77, 0xd0, 0xf6, 0x25, 0xdf, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0xe6, 0x24, 0xbb, 0xc1, 0x2a, 0x30, 0xd9, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x35, 0x9f, 0x83, 0x36, 0x13, 0xfa, 0x9a, 0x65, 0xc3, 0x5f, 0x34, 0x1b, 0x34, 0x09, 0xc9, 0xb7, 0x41, 0x90, 0x9e, 0x6e, 0xd0, 0xc0, 0xc8, 0xd4, 0x1a, 0xac, 0x17, 0x69, 0x3e, 0x28, 0x28, 0x32, 0xd7, 0x60, 0xbd, 0x3b, 0xf3, 0x86, 0xb7, 0x75, 0x36, 0x68, 0xe0, 0xb2, 0xa9, 0x35, 0x68, 0x60, 0x71, 0xea, 0xa0, 0x9d, 0xdb, 0xbe, 0x35, 0x68, 0xc3, 0x73, 0x6a, 0x83, 0x12, 0x1e, 0x73, 0x83, 0xc6, 0x28, 0xfa, 0x36, 0x68, 0xc0, 0xa2, 0x6f, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xc0, 0xa3, 0x0b, 0x33, 0x37, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x0d, 0x5a, 0x40, 0xdd, 0x3a, 0x68, 0xc1, 0x8d, 0x6a, 0x83, 0x12, 0x1e, 0x73, 0x0d, 0x1a, 0x0e, 0xee, 0x6b, 0x83, 0x82, 0x22, 0x73, 0xc3, 0x07, 0x39, 0x6b, 0xf8, 0x95, 0x6c, 0x0d, 0x8a, 0x49, 0xcc, 0x0d, 0x02, 0x36, 0x68, 0xe3, 0xd0, 0x41, 0x83, 0xc7, 0x7d, 0x6b, 0x50, 0x4c, 0x62, 0x6e, 0x10, 0x46, 0x40, 0x1b, 0x87, 0x06, 0x87, 0x0f, 0x1a, 0x3c, 0xee, 0x6b, 0x0d, 0x6f, 0xeb, 0x1c, 0x34, 0x78, 0xdc, 0xb7, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0x6d, 0xd0, 0xbe, 0xe7, 0xd6, 0x1a, 0x34, 0x1a, 0xd0, 0xb7, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0x83, 0x26, 0xa3, 0xfb, 0x0e, 0x1a, 0x92, 0xa3, 0x5a, 0x83, 0xe6, 0x23, 0xa6, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x68, 0x8c, 0xa2, 0x6f, 0x83, 0x06, 0x2c, 0xfa, 0x36, 0x28, 0x3a, 0x68, 0x07, 0x3c, 0xbd, 0xb2, 0x76, 0x83, 0x46, 0x03, 0xfa, 0xd6, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0xd9, 0xa0, 0xf1, 0xf0, 0xbe, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0x9f, 0xed, 0xed, 0x8d, 0x6e, 0x0d, 0x6f, 0xeb, 0x0c, 0x5e, 0x1f, 0x34, 0x46, 0xd1, 0xb7, 0x41, 0x5b, 0x81, 0x54, 0x6d, 0x50, 0xc2, 0x63, 0xae, 0x41, 0xe3, 0xe1, 0x7d, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0x0a, 0x8a, 0xcc, 0x83, 0x36, 0x13, 0xfa, 0x36, 0x7c, 0x90, 0xb3, 0x41, 0xcb, 0x9e, 0x7d, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xeb, 0x1c, 0xb4, 0xee, 0xde, 0x77, 0x50, 0x38, 0xc9, 0x6e, 0xf8, 0xc5, 0x65, 0x83, 0x82, 0x22, 0xf3, 0xa0, 0x61, 0xd6, 0xbe, 0x0d, 0x8a, 0x01, 0xd9, 0x0d, 0x5a, 0x77, 0xef, 0x5b, 0x83, 0x73, 0xfe, 0xd2, 0x06, 0xab, 0xc0, 0x64, 0xd7, 0xf0, 0x8b, 0xcb, 0x41, 0x73, 0xa5, 0x7d, 0x1b, 0x14, 0xa4, 0xb1, 0x03, 0x9e, 0x5e, 0x1d, 0xbd, 0x86, 0xbf, 0x68, 0x36, 0x58, 0xfa, 0x43, 0xbe, 0x41, 0x90, 0x9e, 0x6e, 0xd0, 0xa4, 0xfb, 0xd4, 0x1a, 0xac, 0xe7, 0xde, 0xde, 0xf0, 0x8b, 0xcb, 0x06, 0xad, 0x94, 0x5f, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xe3, 0xc1, 0xeb, 0x83, 0xd6, 0xdd, 0xfb, 0x5a, 0x83, 0x55, 0xe2, 0xdb, 0x1b, 0x7e, 0x71, 0xd9, 0xa0, 0xb9, 0x21, 0xaf, 0x83, 0xb6, 0x16, 0xfc, 0xda, 0xf0, 0x8b, 0xcb, 0x06, 0xcb, 0x9c, 0x64, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x67, 0xac, 0x99, 0x0d, 0x02, 0x96, 0x75, 0x0d, 0x6f, 0xeb, 0x0c, 0x0e, 0x1f, 0x34, 0xcc, 0xe0, 0xd7, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0x2f, 0x2e, 0x1b, 0x34, 0x70, 0x36, 0xb5, 0x86, 0xb7, 0x75, 0x36, 0x68, 0x63, 0xc0, 0xaf, 0x0e, 0xca, 0x32, 0xcf, 0x36, 0x7c, 0x62, 0xb3, 0x41, 0xb3, 0x10, 0x67, 0x1b, 0x14, 0x3b, 0x9a, 0x1b, 0xb4, 0xb9, 0x72, 0xb6, 0x41, 0x63, 0xa0, 0x52, 0x1b, 0x3e, 0xc8, 0xd9, 0xa0, 0xc1, 0x99, 0xb3, 0x35, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x0d, 0xda, 0x70, 0xa3, 0x3a, 0x68, 0xee, 0x43, 0x6c, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x06, 0x46, 0xa6, 0x36, 0xbc, 0xdb, 0xb3, 0x86, 0x4b, 0x6a, 0x83, 0xd6, 0x7b, 0xa5, 0x0e, 0x5a, 0x70, 0xa3, 0xda, 0xa0, 0xc1, 0x30, 0xab, 0x83, 0x60, 0x65, 0xdd, 0xa0, 0xd5, 0xdf, 0xad, 0x36, 0x68, 0x26, 0x3b, 0x6c, 0x0d, 0x5a, 0x86, 0x9d, 0xda, 0xf0, 0x41, 0xce, 0x1a, 0x14, 0x93, 0x98, 0x1b, 0x84, 0xe0, 0xc3, 0x41, 0x63, 0x14, 0x7d, 0x6b, 0xb8, 0xa4, 0x36, 0x68, 0xdb, 0xa2, 0xef, 0xa0, 0x21, 0x39, 0xaa, 0x0d, 0x56, 0xba, 0x38, 0x2d, 0xe0, 0xe9, 0xbd, 0xd1, 0x6d, 0xd0, 0xd6, 0xe4, 0xd4, 0x06, 0x05, 0xc1, 0xec, 0x06, 0xad, 0xfb, 0xf8, 0xad, 0xe1, 0x83, 0x9c, 0x35, 0xfc, 0x9b, 0xb3, 0x41, 0x43, 0xea, 0x7d, 0x1b, 0xde, 0xd6, 0x39, 0x68, 0xdd, 0xc7, 0x6f, 0x83, 0xb6, 0x75, 0xfc, 0x0e, 0x1a, 0x03, 0x95, 0xda, 0xf0, 0xa0, 0xe4, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xdb, 0xc2, 0xd2, 0xdc, 0x36, 0x28, 0x59, 0xd8, 0x67, 0x99, 0x35, 0x68, 0x86, 0xc9, 0x6f, 0xc3, 0x5f, 0x34, 0x1b, 0x34, 0x09, 0xc9, 0xb7, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xe0, 0xd1, 0xe5, 0xc9, 0x1b, 0xde, 0xed, 0x59, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0xc2, 0x4d, 0x74, 0x83, 0xb2, 0xa9, 0x7e, 0x0d, 0x6f, 0xeb, 0x0c, 0x0e, 0x1f, 0xb4, 0xee, 0xe3, 0xd7, 0x06, 0x0d, 0xa9, 0xf7, 0xb5, 0x41, 0x09, 0x8f, 0xb9, 0x06, 0xed, 0x4f, 0xf9, 0xb5, 0xc1, 0x12, 0xe1, 0xda, 0x0d, 0x4a, 0x78, 0xcc, 0x05, 0xaf, 0x0f, 0xda, 0xed, 0xf2, 0x5b, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0xdb, 0xa0, 0x29, 0x39, 0xaa, 0x35, 0x68, 0x83, 0xa0, 0x6f, 0xc3, 0x2f, 0x2e, 0x1b, 0x14, 0x14, 0x99, 0x07, 0xcd, 0x0c, 0xf4, 0xad, 0x41, 0xa3, 0x01, 0x7d, 0x1b, 0x3e, 0x8e, 0x3a, 0x68, 0x19, 0xa0, 0xaf, 0x0d, 0x8a, 0x1d, 0xcd, 0x0d, 0x5a, 0xf6, 0xec, 0x5b, 0xc3, 0x25, 0xb5, 0xc1, 0xea, 0xe1, 0xda, 0x35, 0x68, 0x34, 0xa0, 0xef, 0xa0, 0x69, 0xd6, 0xbe, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x36, 0x68, 0xa9, 0x5a, 0x6d, 0xc3, 0xbb, 0x3d, 0x1b, 0xb4, 0x3e, 0x29, 0xb5, 0x41, 0x83, 0x61, 0x56, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xfa, 0xa0, 0x89, 0x30, 0xbf, 0x36, 0x08, 0xd2, 0xd3, 0x0d, 0xda, 0xd2, 0x56, 0x5b, 0x83, 0x80, 0x0d, 0xda, 0xf0, 0x8b, 0xcb, 0x06, 0xab, 0xc0, 0x64, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x27, 0x82, 0xb6, 0x0d, 0x1a, 0x2b, 0x57, 0x5b, 0xc3, 0x5f, 0x34, 0x1b, 0x2c, 0x3e, 0x6b, 0x3e, 0x68, 0x73, 0xb4, 0xaf, 0x35, 0xbc, 0xad, 0x73, 0xd0, 0x58, 0xba, 0x5a, 0x6b, 0x10, 0x46, 0x40, 0x1b, 0x7e, 0x71, 0xd9, 0x60, 0x99, 0x93, 0xec, 0x06, 0xcb, 0x9c, 0x64, 0x37, 0x68, 0xac, 0x5c, 0x6d, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xba, 0x3b, 0xda, 0x06, 0x2d, 0x3e, 0x88, 0x1d, 0x34, 0x68, 0xe8, 0x57, 0xab, 0xc1, 0xfa, 0xe1, 0xda, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x8b, 0x66, 0x83, 0x26, 0x21, 0xf9, 0x36, 0x28, 0xe1, 0x31, 0x17, 0x3c, 0x3e, 0x68, 0xdd, 0xc7, 0x6f, 0x0d, 0x97, 0xd4, 0x06, 0x87, 0xfd, 0x8e, 0x0d, 0x9a, 0x92, 0xa3, 0xda, 0xa0, 0xa9, 0x32, 0xbf, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x3c, 0xba, 0x34, 0x7b, 0xc3, 0xbb, 0x3d, 0x6b, 0xb8, 0xa4, 0x36, 0x68, 0x7e, 0x44, 0xea, 0xa0, 0x21, 0x39, 0xaa, 0x0d, 0x96, 0xd8, 0x6f, 0xaf, 0xe1, 0x6d, 0x9d, 0xc1, 0xd3, 0x83, 0x46, 0x2e, 0xfd, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0xd9, 0xa0, 0x01, 0x15, 0xaa, 0x0d, 0x97, 0xd4, 0x06, 0x87, 0xfd, 0x8e, 0x35, 0x68, 0x60, 0x64, 0x6a, 0xc3, 0xdb, 0x3a, 0x83, 0xc3, 0x1b, 0x34, 0xea, 0xe9, 0xd7, 0x1a, 0xb4, 0x41, 0xd0, 0x77, 0x50, 0x50, 0x64, 0xae, 0x41, 0x13, 0x66, 0x5b, 0x87, 0xc7, 0x64, 0xd6, 0xa0, 0x25, 0xb7, 0xaa, 0x83, 0x82, 0x22, 0xb3, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x1a, 0x9c, 0xa1, 0xda, 0xa0, 0xa0, 0xc8, 0xdc, 0xf0, 0x41, 0xce, 0x1a, 0x14, 0x93, 0x98, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x30, 0x02, 0xda, 0x20, 0x60, 0x83, 0x0e, 0x0e, 0x31, 0x1d, 0x07, 0x0d, 0xce, 0x50, 0xad, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0x41, 0x23, 0x97, 0x7e, 0x1b, 0xde, 0xd6, 0x19, 0x9c, 0x3e, 0x68, 0xe4, 0xd2, 0x6f, 0x0d, 0x1a, 0x0d, 0xe8, 0x3b, 0x68, 0xa1, 0x87, 0xaa, 0x0d, 0x0a, 0xd2, 0xd8, 0x35, 0x7c, 0xdf, 0xbe, 0x41, 0x8b, 0xa9, 0x5e, 0x1b, 0x94, 0xd0, 0xb1, 0x1b, 0x2c, 0x86, 0x2f, 0x3f, 0x08, 0xd3, 0xb1, 0x35, 0x08, 0xd2, 0xd3, 0x0d, 0xda, 0x97, 0xa1, 0x5a, 0x83, 0x80, 0x0d, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x2d, 0x1c, 0x4a, 0x6d, 0xb0, 0x0a, 0x4c, 0x76, 0x83, 0x56, 0xcf, 0xd1, 0x5a, 0x83, 0x30, 0x02, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x2d, 0x1c, 0x4a, 0x6d, 0xb0, 0xcc, 0x49, 0xf6, 0xa0, 0xc5, 0xb9, 0xb4, 0x36, 0xfc, 0xe2, 0xb2, 0xc1, 0x32, 0x27, 0xd9, 0x0d, 0x96, 0x39, 0xc9, 0x6e, 0xd0, 0x84, 0xac, 0xd7, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x75, 0x77, 0xb4, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xeb, 0xee, 0x68, 0x1b, 0xb4, 0xf8, 0x20, 0xb6, 0x86, 0xb7, 0x75, 0x06, 0x8f, 0x0f, 0x5a, 0x72, 0xf5, 0xeb, 0xa0, 0x35, 0x8a, 0xaf, 0x0e, 0xa7, 0x58, 0x87, 0x53, 0x6c, 0x0d, 0x1a, 0xf5, 0x9d, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0xd9, 0x60, 0xe5, 0x7c, 0xeb, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x91, 0xaa, 0x37, 0x68, 0x43, 0xa9, 0x6a, 0x0d, 0xbf, 0x28, 0x6d, 0xd0, 0x36, 0x10, 0xd5, 0x86, 0x4b, 0x6a, 0x83, 0xc3, 0x7e, 0xc7, 0x41, 0xfb, 0x48, 0x54, 0x6d, 0x50, 0xc2, 0x63, 0x6e, 0xb0, 0x6e, 0xbe, 0x75, 0x83, 0x82, 0x22, 0x73, 0xc3, 0x57, 0x38, 0x1b, 0xfe, 0xa2, 0xd9, 0xa0, 0x49, 0x48, 0xbe, 0x0d, 0x4a, 0x78, 0xcc, 0x05, 0xa7, 0x0f, 0xd6, 0xcd, 0xb7, 0xae, 0xe1, 0x6d, 0x9d, 0xc1, 0xd3, 0x83, 0x75, 0xf3, 0xad, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x34, 0x94, 0xd1, 0xd7, 0x06, 0xad, 0xf1, 0xfb, 0xad, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0xc1, 0xba, 0xf9, 0xd6, 0x0d, 0x6f, 0xeb, 0x1c, 0x34, 0xad, 0xef, 0x57, 0x6b, 0xd0, 0xa4, 0xf4, 0xd4, 0x86, 0x0f, 0x72, 0x36, 0x68, 0xaf, 0x3b, 0x6c, 0x83, 0x82, 0x22, 0xf3, 0xa0, 0xb9, 0xad, 0xb3, 0x56, 0x83, 0xc5, 0xfe, 0x3e, 0x1b, 0x7e, 0x71, 0xd9, 0x60, 0x99, 0x93, 0xec, 0x06, 0xab, 0xc0, 0x64, 0x0f, 0xda, 0x4c, 0xe8, 0x3b, 0x9c, 0x62, 0x1d, 0x4e, 0xb1, 0x0e, 0xa7, 0x58, 0x6b, 0xd0, 0x9c, 0x11, 0xd8, 0x86, 0x5f, 0x94, 0x36, 0x68, 0xd7, 0xc6, 0x6a, 0xc3, 0x5f, 0x34, 0x6b, 0x10, 0xfa, 0x25, 0x1b, 0x94, 0xde, 0xf4, 0x1b, 0x2c, 0x9b, 0x71, 0x3e, 0x58, 0xea, 0xba, 0xbd, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0xb2, 0x41, 0x03, 0x2a, 0x54, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xfd, 0x15, 0xaa, 0x83, 0xe6, 0xc2, 0xac, 0x36, 0x38, 0x17, 0x2e, 0xac, 0x21, 0x8f, 0xbd, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0x83, 0xa6, 0xb9, 0x96, 0x36, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x08, 0xeb, 0x06, 0x8d, 0xc5, 0x89, 0xad, 0x41, 0x31, 0x89, 0xb9, 0x41, 0xc0, 0x06, 0x1d, 0x34, 0x9a, 0x96, 0xd6, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf0, 0x41, 0x2b, 0x6a, 0x69, 0x07, 0x2d, 0xc2, 0xa5, 0x1d, 0x4e, 0xb1, 0x35, 0x68, 0xd0, 0xc5, 0x6a, 0xc3, 0x2f, 0x4a, 0x1b, 0xb4, 0x1e, 0x41, 0xb6, 0xe1, 0x2f, 0x9a, 0x0d, 0x16, 0xc3, 0x97, 0x6f, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x6c, 0xd0, 0x44, 0xd6, 0xd6, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x30, 0x2e, 0x6d, 0x0d, 0x6f, 0xeb, 0x1c, 0xb4, 0x9d, 0xce, 0xd5, 0x06, 0xa5, 0xbd, 0xe5, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xd0, 0xca, 0xd4, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0x90, 0x32, 0xd9, 0x60, 0x05, 0x4c, 0x76, 0x1b, 0x3e, 0xc8, 0xd9, 0xa0, 0xdd, 0x0c, 0xb2, 0x35, 0x38, 0xda, 0xf0, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0x1a, 0x30, 0xae, 0x5a, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x47, 0x4b, 0x5b, 0x2b, 0xdb, 0xa0, 0x9d, 0xb2, 0xad, 0x83, 0x16, 0xaf, 0xba, 0xda, 0xf0, 0x15, 0xce, 0x86, 0xbf, 0x68, 0xd6, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0xbd, 0xe9, 0x37, 0x58, 0x36, 0xe3, 0xbc, 0x41, 0xc3, 0x40, 0x7f, 0x6d, 0x50, 0xc2, 0x63, 0x6e, 0xb0, 0xb6, 0x13, 0x7e, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x90, 0x08, 0xd9, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0xd9, 0x9f, 0xbf, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0xd9, 0xa0, 0xe9, 0x7e, 0xae, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0x80, 0xaa, 0xd4, 0x06, 0x4b, 0xec, 0xb7, 0x0f, 0x9a, 0x18, 0xe8, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0xd9, 0x60, 0xf5, 0xfe, 0xe5, 0x86, 0x77, 0x7b, 0x36, 0x68, 0xca, 0x85, 0xec, 0xa0, 0x31, 0x88, 0xae, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x83, 0x96, 0x51, 0xba, 0x36, 0x68, 0x08, 0x87, 0x6c, 0x0d, 0x1a, 0xcb, 0xfa, 0xdb, 0xf0, 0x8b, 0xcb, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0xdb, 0x3a, 0x07, 0x8d, 0x8b, 0x74, 0x1d, 0xb4, 0xd0, 0xd1, 0x75, 0xd0, 0x1e, 0xd6, 0x5f, 0x1b, 0x3e, 0xb1, 0xd9, 0xa0, 0x21, 0x1e, 0xb2, 0x0d, 0x8e, 0x36, 0x7c, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x06, 0x9f, 0xba, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x0b, 0xe8, 0x7f, 0x37, 0x68, 0x48, 0x84, 0xec, 0xa0, 0x71, 0xa4, 0xbf, 0x36, 0x7c, 0x85, 0xb3, 0xe1, 0x2f, 0x9a, 0x35, 0x08, 0xfd, 0x92, 0x0d, 0x4a, 0x6f, 0xfa, 0x0d, 0x56, 0xd6, 0x90, 0x1f, 0xb4, 0x32, 0xf5, 0xb7, 0x41, 0x09, 0x8f, 0xb9, 0xc1, 0xda, 0x4e, 0xf8, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0xf3, 0x61, 0x5d, 0x07, 0xed, 0x61, 0xfd, 0x6d, 0xf8, 0xc4, 0x66, 0x83, 0x16, 0xb7, 0xfe, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x36, 0x68, 0xf4, 0xac, 0x6b, 0xc3, 0xbb, 0x3d, 0x1b, 0xb4, 0xcc, 0x2c, 0xb5, 0x41, 0x73, 0x10, 0x5d, 0x1b, 0xb4, 0x2e, 0xd1, 0x75, 0xd0, 0x26, 0x15, 0xd9, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x41, 0xcb, 0x28, 0x5d, 0x1b, 0xb4, 0x86, 0x45, 0xb6, 0x06, 0x8d, 0x65, 0xfd, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x6d, 0x9d, 0x83, 0x86, 0xfa, 0xba, 0x0e, 0x5a, 0xe8, 0xe8, 0x3a, 0x68, 0x0f, 0xeb, 0xaf, 0x15, 0xf0, 0xc7, 0xd8, 0xd2, 0xe0, 0x0d, 0xbf, 0x28, 0x6d, 0xd0, 0x26, 0x03, 0xd5, 0x06, 0x05, 0x1f, 0xe6, 0x1a, 0x7e, 0x25, 0xdb, 0xa0, 0x49, 0xa1, 0xa9, 0x83, 0x36, 0x29, 0xa8, 0x0e, 0x96, 0x67, 0x20, 0x1f, 0x4e, 0xb1, 0x0e, 0xa7, 0xd8, 0x2c, 0xe0, 0xcf, 0xb1, 0xa5, 0xd1, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xed, 0x96, 0xfe, 0x35, 0x80, 0x1f, 0x5d, 0x1e, 0x5c, 0x19, 0xc8, 0x9b, 0x19, 0xc8, 0x1c, 0x5b, 0x58, 0xdb, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0xda, 0x60, 0x21, 0xf9, 0xef, 0xc1, 0xb2, 0x19, 0xe7, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0x2a, 0xf5, 0xdf, 0x83, 0x65, 0x33, 0xce, 0x6d, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x4b, 0xde, 0x37, 0x68, 0x8c, 0x56, 0x6a, 0x83, 0xc6, 0xd1, 0xa3, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0xb4, 0xde, 0x2b, 0xb5, 0x41, 0xe3, 0xe8, 0x51, 0x6b, 0x78, 0x5b, 0xe7, 0x60, 0x3d, 0xf7, 0x70, 0x1b, 0xb4, 0xb6, 0x29, 0x76, 0x70, 0x58, 0x9e, 0x69, 0x83, 0x22, 0xa7, 0x75, 0x83, 0x65, 0xf2, 0xc3, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0xda, 0xb8, 0x8f, 0xda, 0xa0, 0x71, 0xf4, 0xa8, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x2b, 0x92, 0x15, 0x1b, 0xb4, 0xfd, 0xfb, 0x77, 0xd0, 0x3c, 0xf1, 0x5f, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x06, 0x0b, 0x12, 0x36, 0x58, 0xc2, 0xa8, 0xbd, 0x41, 0xeb, 0xe8, 0x69, 0x1b, 0x34, 0x34, 0x9f, 0x76, 0x50, 0xd6, 0x79, 0xb6, 0x02, 0xfe, 0x1c, 0xdb, 0x5b, 0xb9, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xd0, 0x46, 0xf5, 0x5f, 0x03, 0xf8, 0x9f, 0x95, 0xd1, 0x81, 0x84, 0xc9, 0xb5, 0xcd, 0x81, 0xa4, 0xb9, 0x81, 0x8c, 0xbd, 0xc9, 0x95, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0x96, 0xe4, 0xc1, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0xf2, 0x7f, 0xef, 0x0d, 0x4e, 0x0e, 0x72, 0x1b, 0x34, 0xd6, 0x9c, 0xb5, 0x41, 0x41, 0x91, 0xb9, 0x06, 0x4d, 0x4a, 0x4f, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xd0, 0x58, 0x73, 0xd6, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x8d, 0x04, 0x4b, 0x6d, 0xd0, 0x38, 0x7a, 0xd4, 0x41, 0x2b, 0xf8, 0x60, 0xad, 0x41, 0x1b, 0xc9, 0x53, 0x07, 0x6d, 0x9c, 0xff, 0xad, 0x41, 0xf3, 0x11, 0x53, 0x1b, 0x9c, 0xd8, 0x6f, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0xe5, 0x1a, 0x5a, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x94, 0x48, 0xd5, 0x6b, 0x50, 0x96, 0xbc, 0x6f, 0xb0, 0x08, 0x64, 0x74, 0x83, 0xb2, 0xa9, 0x7e, 0x0d, 0x6f, 0xeb, 0x0c, 0x1e, 0x0f, 0x2e, 0x0f, 0x1e, 0x1f, 0x34, 0xd6, 0x9c, 0xd5, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x06, 0x61, 0x3a, 0xb6, 0x86, 0x3f, 0x97, 0x06, 0x17, 0x0f, 0xd6, 0xef, 0x41, 0xb7, 0x41, 0xd1, 0x69, 0xbc, 0x41, 0x89, 0x54, 0xbd, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x8b, 0x40, 0x46, 0x37, 0x28, 0x9b, 0xea, 0x37, 0x28, 0xdb, 0x45, 0xdb, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x83, 0x87, 0x07, 0xeb, 0xb5, 0x9e, 0x0f, 0x0e, 0x31, 0x1d, 0x87, 0xa7, 0x75, 0x5a, 0x01, 0x7f, 0x8e, 0x2d, 0x4c, 0xdc, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x68, 0xda, 0x01, 0xb0, 0x01, 0xd0, 0x6e, 0x8e, 0x2e, 0x8c, 0xae, 0x6c, 0x0e, 0xe4, 0x0e, 0xad, 0x8c, 0x0e, 0xad, 0x4c, 0x0e, 0x24, 0xef, 0xad, 0x0e, 0x64, 0x2c, 0xcc, 0x0d, 0x24, 0x6c, 0x6c, 0xac, 0x6c, 0x6e, 0x0e, 0x24, 0xcc, 0x0d, 0x24, 0x4c, 0xae, 0x0d, 0x24, 0xcd, 0x0d, 0x24, 0x0c, 0x84, 0x2e, 0x0f, 0xae, 0xcc, 0xad, 0x04, 0xa0, 0xbb, 0xcb, 0x5d, 0x58, 0x9e, 0x0e, 0x08, 0x1d, 0x5a, 0x19, 0x48, 0xd8, 0xd8, 0x58, 0xd9, 0xdc, 0x1c, 0x08, 0x5d, 0x1e, 0x5c, 0x19, 0x08, 0x0a, 0x89, 0x5d, 0x5a, 0x18, 0x5b, 0x8a, 0x0e, 0x88, 0x5c, 0x59, 0x18, 0x19, 0x0b, 0xc8, 0x9d, 0x5c, 0x1a, 0x5d, 0x19, 0x0b, 0xc8, 0x9b, 0x1c, 0x88, 0x5c, 0x59, 0x18, 0x59, 0x4b, 0x98, 0x1b, 0x59, 0xcb, 0x9d, 0x5c, 0x1a, 0x5d, 0x99, 0x5b, 0x02, 0xe0, 0x03, 0x2a, 0xb4, 0x32, 0x10, 0xb3, 0xb7, 0x3a, 0x39, 0x3a, 0x34, 0x90, 0xb1, 0xb0, 0xb9, 0x32, 0x90, 0x37, 0x33, 0x10, 0x12, 0xbb, 0xb4, 0x30, 0x36, 0x16, 0x90, 0x12, 0x33, 0xb9, 0xb2, 0x32, 0x16, 0x90, 0xb4, 0x39, 0x10, 0xb7, 0x37, 0x3a, 0x10, 0xb8, 0x32, 0xb9, 0xb6, 0x34, 0x3a, 0xba, 0x32, 0x32, 0x10, 0xb1, 0xb2, 0xb1, 0xb0, 0xba, 0xb9, 0x32, 0x90, 0x34, 0x3a, 0x90, 0xbb, 0xb7, 0x3a, 0x36, 0x72, 0x09, 0x40, 0xe3, 0x30, 0x36, 0xb6, 0xb7, 0x3b, 0x90, 0xbc, 0xb7, 0x3a, 0x10, 0xba, 0x37, 0x10, 0xb2, 0xb4, 0xb9, 0xb1, 0x37, 0xbb, 0x32, 0x39, 0x10, 0x11, 0x38, 0xb9, 0x34, 0xbb, 0x30, 0xba, 0x32, 0x11, 0x90, 0x34, 0x37, 0xb3, 0x37, 0xb9, 0xb6, 0x30, 0xba, 0xb4, 0x37, 0x37, 0x90, 0x30, 0xb1, 0xb7, 0x3a, 0x3a, 0x90, 0x30, 0x10, 0xba, 0x3c, 0xb8, 0x32, 0xb6, 0x04, 0x40, 0x23, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x63, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x61, 0x6b, 0x65, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x69, 0x6e, 0x20, 0x28, 0x6c, 0x61, 0x77, 0x2d, 0x61, 0x62, 0x69, 0x64, 0x69, 0x6e, 0x67, 0x29, 0x20, 0x68, 0x6f, 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x79, 0x77, 0x61, 0x79, 0xae, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x83, 0xa6, 0x23, 0x00, 0x07, 0xf0, 0xa7, 0x2b, 0x9b, 0xa3, 0x03, 0x49, 0x33, 0x03, 0x19, 0x7b, 0x73, 0xa3, 0x0b, 0x4b, 0x73, 0x9b, 0xdb, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0xb4, 0x88, 0x63, 0xb5, 0x41, 0xb0, 0x99, 0x6e, 0xb0, 0xe0, 0xbd, 0x79, 0x83, 0x65, 0xf4, 0xcd, 0x1b, 0x2c, 0xce, 0x6f, 0x6e, 0x0d, 0x7f, 0x2e, 0x6d, 0xd0, 0xee, 0x31, 0xd7, 0xc1, 0x79, 0xf3, 0x74, 0x83, 0x96, 0xe4, 0xc1, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0xde, 0xed, 0x59, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x16, 0x23, 0xa5, 0x0e, 0xda, 0x5e, 0xff, 0xdb, 0xa0, 0xc1, 0x30, 0xab, 0x35, 0x38, 0xba, 0x0e, 0x6e, 0xd0, 0x64, 0x34, 0x57, 0x6d, 0x50, 0x4c, 0x62, 0xae, 0xc1, 0x52, 0x8c, 0xaa, 0x0d, 0x57, 0xd7, 0x86, 0xcf, 0x95, 0x0e, 0x1a, 0xe5, 0xf5, 0x3b, 0x7c, 0x39, 0x79, 0x38, 0xc5, 0x5a, 0x83, 0x66, 0x49, 0x99, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x9a, 0x25, 0x65, 0x6a, 0x00, 0x74, 0x82, 0x93, 0x2b, 0xa3, 0xa3, 0xcb, 0x6b, 0x81, 0x93, 0x4b, 0x73, 0xa3, 0x03, 0x09, 0x03, 0xb1, 0x0b, 0x9b, 0x2b, 0x03, 0xa1, 0x7b, 0x03, 0x09, 0x03, 0xa1, 0x0b, 0x73, 0x5b, 0x03, 0xa9, 0x9b, 0x4b, 0x73, 0x3b, 0x03, 0x59, 0x21, 0x2b, 0x0b, 0x63, 0x73, 0x6d, 0x78, 0x7c, 0x64, 0x83, 0x66, 0x49, 0x99, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0xbb, 0xd9, 0x51, 0x1b, 0xfe, 0xa2, 0xd9, 0xe0, 0x4c, 0x30, 0xba, 0xc1, 0x92, 0xfa, 0xa5, 0x35, 0xbc, 0x71, 0xb7, 0xe1, 0xe5, 0xbb, 0x83, 0x66, 0x49, 0x99, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0x65, 0xc9, 0xfb, 0x02, 0x3e, 0x59, 0x59, 0x18, 0xdb, 0x06, 0xed, 0x33, 0x90, 0x1d, 0xb4, 0xa9, 0x1e, 0xb5, 0x41, 0xf3, 0xe0, 0x51, 0x1d, 0x4e, 0xb1, 0x05, 0xfc, 0xb9, 0xb2, 0xb2, 0x76, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x3f, 0x38, 0xb9, 0xb7, 0xb6, 0x37, 0xba, 0x32, 0x10, 0xba, 0x3c, 0xb8, 0xb7, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0xcf, 0xa5, 0x01, 0x8f, 0xee, 0x2d, 0x3f, 0x58, 0xfa, 0xe2, 0xbd, 0xe1, 0x2f, 0x9a, 0x0d, 0x96, 0xcd, 0x38, 0x6f, 0x78, 0x5b, 0x67, 0x83, 0xa6, 0x60, 0x01, 0x5b, 0x0d, 0xda, 0x58, 0x86, 0xd9, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x68, 0x63, 0x19, 0xa6, 0x01, 0x68, 0x20, 0x69, 0x41, 0xd9, 0xa2, 0xcb, 0x83, 0x2b, 0x03, 0xa1, 0xcb, 0x83, 0x2b, 0xeb, 0x02, 0xf9, 0x49, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0x6d, 0xd0, 0x36, 0x10, 0xd5, 0x1a, 0xfe, 0x5c, 0x1a, 0x5c, 0x3c, 0x58, 0x36, 0xe3, 0xdc, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x2c, 0x79, 0xdf, 0xa0, 0x31, 0x5a, 0xa9, 0x0d, 0x1a, 0x47, 0x8f, 0x3a, 0x3c, 0xf4, 0xb3, 0x41, 0x91, 0xd3, 0x7a, 0x78, 0x0b, 0x6d, 0x05, 0xfc, 0x37, 0xb7, 0x30, 0x77, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x4d, 0x92, 0x16, 0x14, 0xbb, 0xb4, 0xb9, 0x32, 0x10, 0xbb, 0xb0, 0xb9, 0xb2, 0xd4, 0x86, 0xb7, 0x75, 0x06, 0xfc, 0xb9, 0xb2, 0x32, 0xb9, 0xd5, 0xa0, 0x31, 0x6a, 0xc0, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0xfc, 0xe0, 0xe4, 0xde, 0xda, 0xde, 0xe8, 0xca, 0x40, 0xec, 0xd2, 0xe6, 0xca, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x36, 0x14, 0xae, 0x0d, 0xff, 0xce, 0xaf, 0xc1, 0x0a, 0x04, 0xf2, 0xda, 0xf0, 0x17, 0xcd, 0x06, 0xcd, 0x6e, 0x47, 0x6d, 0x78, 0x5b, 0x67, 0x43, 0xe1, 0x6a, 0x05, 0xfc, 0x39, 0xb6, 0x37, 0x71, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xa0, 0x51, 0x72, 0xc0, 0x06, 0xf0, 0x9e, 0xab, 0x83, 0x2b, 0x93, 0x33, 0x4b, 0x1b, 0x4b, 0x0b, 0x63, 0x03, 0x09, 0x93, 0x6b, 0xdb, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0x3a, 0x68, 0x6e, 0x0e, 0x70, 0xc3, 0x5f, 0x34, 0x1b, 0x3e, 0x58, 0xdd, 0xe0, 0xe4, 0x20, 0xb7, 0x41, 0x63, 0xcd, 0x59, 0x1b, 0x14, 0xb0, 0xf9, 0x1b, 0xb4, 0x5f, 0xfe, 0xb7, 0x41, 0x2b, 0xee, 0x7f, 0x6b, 0xd0, 0x7c, 0xc4, 0xd4, 0x86, 0xaf, 0x70, 0x36, 0xfc, 0x45, 0xb3, 0xe1, 0x83, 0xd5, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0xda, 0xd4, 0xff, 0xdb, 0xa0, 0x80, 0xcd, 0xdf, 0xf0, 0x2b, 0xd9, 0x1a, 0xde, 0xed, 0x59, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0xa3, 0xb5, 0xc6, 0x06, 0x65, 0x53, 0xfd, 0x1a, 0xde, 0xd6, 0x19, 0x3c, 0x1e, 0x3c, 0x1e, 0xdc, 0x3d, 0x68, 0x53, 0xff, 0xaf, 0x83, 0xb6, 0xfd, 0x00, 0xd7, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0xa0, 0x4d, 0xfd, 0xbf, 0x0d, 0x6f, 0xeb, 0x0c, 0xce, 0x1e, 0xb4, 0xa9, 0xff, 0xd7, 0x1a, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0xb4, 0xa9, 0xff, 0xb7, 0xe1, 0x6d, 0x9d, 0xc1, 0xe5, 0x83, 0x36, 0xf5, 0xff, 0xaa, 0x15, 0xf0, 0xe7, 0xd8, 0xde, 0xe0, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xe6, 0x25, 0x02, 0x1b, 0xc0, 0x77, 0xec, 0xcd, 0x6d, 0x0e, 0x84, 0xee, 0xee, 0x0d, 0xc4, 0x2e, 0x6c, 0xae, 0x6c, 0x6e, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x6d, 0xb0, 0x92, 0x97, 0xf4, 0xa0, 0xd9, 0xed, 0xa8, 0x35, 0xfc, 0xb9, 0xb4, 0x41, 0x53, 0x4a, 0x5b, 0x07, 0xcd, 0x6e, 0x47, 0xb5, 0xe1, 0x2f, 0x9a, 0x0d, 0x9a, 0xdd, 0x8e, 0xda, 0xf0, 0x8b, 0xcb, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0x15, 0xc9, 0x8a, 0x83, 0xa6, 0x5d, 0xbc, 0xd6, 0xf0, 0x8b, 0xcb, 0x41, 0xe3, 0x35, 0x5e, 0xcd, 0x02, 0xfe, 0x1c, 0x5b, 0x58, 0xbb, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xd0, 0x16, 0x4b, 0x60, 0x03, 0x78, 0xcd, 0xb1, 0x85, 0xb5, 0x81, 0x84, 0x81, 0x9c, 0x85, 0xd1, 0x95, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0x0d, 0x16, 0x92, 0xff, 0x1e, 0x34, 0xbb, 0x1d, 0xb5, 0x86, 0x3f, 0x97, 0x36, 0x58, 0xa5, 0xfe, 0x7b, 0xd0, 0xec, 0x76, 0x54, 0x1b, 0xfe, 0xa2, 0xd9, 0xa0, 0xd9, 0xed, 0xa8, 0x0d, 0x9f, 0xd8, 0xac, 0x41, 0x61, 0xa8, 0xba, 0x86, 0xcf, 0x5d, 0x36, 0x68, 0x7c, 0x3e, 0x6a, 0xc3, 0x5f, 0x34, 0x1b, 0x2c, 0x9b, 0x71, 0xde, 0xf0, 0x8b, 0xcb, 0x06, 0xad, 0x48, 0x56, 0xac, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0x83, 0xf5, 0xdc, 0xc3, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0xf8, 0x60, 0x05, 0xfd, 0x70, 0x1b, 0x3e, 0x77, 0xd9, 0xa0, 0x79, 0x0a, 0xa9, 0x0d, 0x7f, 0xd1, 0x6c, 0xb0, 0xc0, 0xc2, 0xf9, 0xa0, 0x4d, 0xe7, 0xbf, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x0d, 0x5a, 0x07, 0x91, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0x34, 0x3f, 0x22, 0x75, 0xd0, 0xf6, 0xfa, 0xdf, 0x41, 0x33, 0x26, 0x52, 0x1b, 0x7e, 0x71, 0xd9, 0xa0, 0x2d, 0x15, 0xa9, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x58, 0xb7, 0xe8, 0xd3, 0x1a, 0xde, 0xd6, 0x19, 0x3c, 0x3e, 0x58, 0xcf, 0x3d, 0xbc, 0x86, 0xb7, 0x75, 0x06, 0x8f, 0x0f, 0x56, 0xd0, 0x0f, 0xd7, 0xe1, 0x14, 0x6b, 0x01, 0xdf, 0xed, 0x2d, 0x0c, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0x40, 0x93, 0xa4, 0x05, 0xc5, 0x2e, 0x6c, 0xae, 0x0c, 0x84, 0x2e, 0x0c, 0xae, 0x2c, 0xb5, 0xe1, 0x6d, 0x9d, 0x01, 0x9f, 0xae, 0x0c, 0x8f, 0x6e, 0x16, 0xf0, 0xe7, 0xd8, 0xca, 0xee, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x66, 0xd9, 0x02, 0x1b, 0xc0, 0xff, 0xac, 0x8c, 0x0e, 0x24, 0x0c, 0x2f, 0x6d, 0x0e, 0x24, 0xcd, 0x0d, 0xc4, 0x2e, 0x6c, 0xae, 0x6c, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x6d, 0xd0, 0x44, 0xd6, 0xd6, 0xe1, 0x87, 0x9a, 0x0d, 0xda, 0xcd, 0x8e, 0x6a, 0x83, 0x82, 0x34, 0x76, 0x83, 0xc6, 0xe7, 0xa3, 0xd6, 0xe0, 0x3c, 0xd8, 0xb1, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x4b, 0xde, 0x37, 0x68, 0xbd, 0x57, 0xea, 0xa0, 0x69, 0xf4, 0xa8, 0x0d, 0x5a, 0xdb, 0x14, 0x3b, 0x68, 0xa5, 0x6c, 0x6b, 0xc3, 0x57, 0x38, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0xd0, 0x2f, 0xd9, 0xa0, 0x6c, 0xc2, 0xdc, 0xa0, 0xd9, 0xed, 0xa8, 0x36, 0x7c, 0x90, 0xb3, 0x41, 0xd3, 0xe1, 0x66, 0x6b, 0x70, 0x0c, 0x37, 0xd8, 0xf0, 0x8b, 0xcb, 0x1a, 0x1e, 0x94, 0xdc, 0x20, 0x00, 0xd9, 0x0e, 0x5a, 0x64, 0xce, 0x3a, 0x68, 0xbd, 0x14, 0x70, 0x83, 0x82, 0x60, 0x76, 0x83, 0x96, 0xc3, 0xa3, 0x36, 0x28, 0x28, 0x32, 0x37, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x68, 0xc2, 0x6c, 0xeb, 0xa0, 0x39, 0x77, 0xb3, 0x35, 0x68, 0x39, 0x3c, 0x6a, 0xc3, 0x27, 0x36, 0x1b, 0xb4, 0x96, 0x6e, 0xb6, 0x41, 0x90, 0x9e, 0x6e, 0xf8, 0x72, 0x72, 0x0d, 0x82, 0xd8, 0x74, 0x83, 0x52, 0x42, 0x7c, 0xe3, 0xf9, 0x41, 0x43, 0x00, 0x52, 0x6b, 0x10, 0x32, 0xa7, 0x1b, 0x94, 0x12, 0xe2, 0x1b, 0xcf, 0x37, 0x5c, 0x52, 0x6b, 0x3c, 0x3f, 0x68, 0x39, 0x3c, 0xaa, 0x5a, 0x01, 0x7f, 0xee, 0x2e, 0x8c, 0xde, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x68, 0xe2, 0x34, 0xb0, 0x01, 0x7c, 0xc9, 0xca, 0xcc, 0xca, 0xe4, 0xe4, 0xca, 0xc8, 0x40, 0x56, 0xe6, 0xd8, 0xc2, 0xe0, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0xa5, 0xe8, 0xc0, 0x06, 0xa1, 0x5f, 0xb2, 0xc1, 0x59, 0x48, 0xe1, 0xa0, 0xb1, 0xc4, 0xc0, 0x83, 0xf6, 0x27, 0xa4, 0x36, 0xfc, 0x45, 0xb3, 0x41, 0xfb, 0xb3, 0x81, 0x1b, 0x14, 0xa4, 0xb1, 0x1b, 0xb4, 0x0e, 0x22, 0xb5, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x2c, 0x79, 0xdf, 0xa0, 0xf9, 0x11, 0xa9, 0x0d, 0x1a, 0x47, 0x8f, 0x5a, 0xc3, 0x83, 0x92, 0x1b, 0x9c, 0x2e, 0x32, 0x0e, 0x16, 0x46, 0x0c, 0x77, 0xd0, 0x8c, 0x89, 0xd4, 0x06, 0xe7, 0xc1, 0x8e, 0x0d, 0x96, 0x43, 0x32, 0xcd, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0x4b, 0x45, 0x6a, 0x0d, 0x16, 0x84, 0x2c, 0xad, 0xe1, 0x41, 0xc9, 0x0d, 0x4e, 0x47, 0x22, 0x07, 0x0b, 0x23, 0x86, 0x0f, 0x5a, 0x79, 0x91, 0x6a, 0x35, 0x68, 0x0b, 0x64, 0x65, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xa0, 0x2d, 0x90, 0x95, 0x06, 0xf0, 0x23, 0x2b, 0x4b, 0x33, 0xcb, 0x03, 0x81, 0x93, 0x4b, 0x73, 0xa3, 0x33, 0xdb, 0xa0, 0xb4, 0xb7, 0x5c, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x5f, 0x38, 0xb9, 0xb4, 0x37, 0xb9, 0x34, 0xba, 0x3c, 0x10, 0xb6, 0x32, 0xbb, 0x32, 0xb6, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x70, 0x72, 0xe9, 0xe1, 0x87, 0x9a, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xc3, 0x0d, 0xff, 0xce, 0xaf, 0xc1, 0x89, 0x32, 0xb5, 0x36, 0x7c, 0xfd, 0xb2, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0x7a, 0x2e, 0x3d, 0x20, 0x20, 0x7e, 0x26, 0x28, 0x25, 0x61, 0x20, 0x31, 0xa9, 0x0d, 0x6f, 0xeb, 0x6c, 0x70, 0x7a, 0x37, 0x6b, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x3a, 0x50, 0x50, 0xe6, 0xd8, 0xde, 0xce, 0x40, 0xfc, 0xb6, 0x7c, 0x4a, 0xc2, 0x78, 0xba, 0x52, 0x40, 0x62, 0x52, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x1e, 0xdc, 0xd9, 0xa0, 0x61, 0xf5, 0xc0, 0x0d, 0xce, 0x85, 0x0b, 0x6b, 0xd0, 0x16, 0xc8, 0xca, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0xad, 0x79, 0x07, 0x76, 0x70, 0x08, 0xf5, 0x3b, 0x28, 0xe0, 0xe3, 0x0f, 0xa7, 0xd8, 0x1a, 0x34, 0xb1, 0x16, 0xb8, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xd0, 0xc4, 0x5a, 0x60, 0x03, 0xf0, 0x40, 0x17, 0x06, 0x57, 0x06, 0x02, 0x27, 0x57, 0x46, 0x47, 0x97, 0xd7, 0x02, 0x27, 0x97, 0xe6, 0x46, 0xb7, 0xe1, 0x17, 0xa5, 0x0d, 0xda, 0xcd, 0x8e, 0xda, 0xf0, 0x17, 0xcd, 0x06, 0x27, 0x3d, 0xd1, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0xd6, 0x68, 0xa7, 0x6f, 0xb0, 0x96, 0x3b, 0x7d, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x9a, 0x25, 0x65, 0x6a, 0x0d, 0x6f, 0xeb, 0x1c, 0xb4, 0x24, 0x1e, 0x55, 0x87, 0x53, 0x6c, 0x01, 0x7f, 0x8e, 0x2d, 0xad, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x68, 0xa2, 0x42, 0xb0, 0x01, 0xe8, 0x48, 0x23, 0x2b, 0x73, 0xa3, 0x4b, 0x1b, 0x0b, 0x63, 0x03, 0xa1, 0x7b, 0x03, 0x99, 0x2b, 0x2b, 0x93, 0xfb, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x6d, 0x90, 0x8c, 0x14, 0x77, 0xd0, 0xb0, 0x37, 0xe0, 0x86, 0xbf, 0x68, 0x36, 0x68, 0x76, 0x3b, 0xea, 0x20, 0xa5, 0x28, 0xee, 0x70, 0x8a, 0x2d, 0xf0, 0x75, 0xf3, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0x65, 0xf0, 0x75, 0x73, 0x03, 0x78, 0xc2, 0xc9, 0x95, 0xd1, 0xd1, 0xe5, 0xc1, 0xc9, 0xa5, 0xb9, 0xd1, 0x95, 0xc9, 0x6d, 0x50, 0x4a, 0x88, 0xaf, 0x41, 0xc9, 0xc2, 0x3e, 0xcb, 0x2c, 0xe0, 0xdf, 0xa5, 0xb9, 0x95, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0xed, 0xc6, 0x08, 0x6e, 0xf8, 0x60, 0x7e, 0x0d, 0x82, 0xcd, 0x74, 0x83, 0xf5, 0xee, 0xcc, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xe0, 0x60, 0xfa, 0xb9, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x4e, 0x3e, 0xa8, 0x1b, 0xac, 0x17, 0x69, 0x5e, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0xa7, 0x2d, 0xd4, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xd0, 0x68, 0x74, 0xd3, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x68, 0xd0, 0xa9, 0xa9, 0x0d, 0x82, 0xf6, 0x67, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x56, 0xa5, 0x9a, 0x0e, 0x96, 0xc5, 0x3d, 0xaf, 0xe1, 0x73, 0xa5, 0x0d, 0x56, 0x23, 0x71, 0xaf, 0xe1, 0xcf, 0xa5, 0xc1, 0xe1, 0x0d, 0x42, 0xbf, 0xe4, 0x60, 0xa5, 0x17, 0xfb, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0xde, 0xf0, 0xef, 0xfc, 0x1a, 0xb4, 0x1b, 0x23, 0x58, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0x96, 0x86, 0x71, 0x6f, 0xb0, 0x30, 0xee, 0xf9, 0xa0, 0x1d, 0x29, 0xc1, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x82, 0xd1, 0xe4, 0xa0, 0xed, 0x2b, 0xc1, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0xda, 0xe6, 0x6b, 0x3a, 0x58, 0x03, 0xeb, 0xbd, 0x86, 0xcf, 0x95, 0x36, 0x58, 0x92, 0x0f, 0xbe, 0x86, 0x3f, 0x97, 0x06, 0x87, 0x37, 0x08, 0xfd, 0x92, 0x0d, 0x42, 0xca, 0x64, 0x83, 0x46, 0xa7, 0x04, 0x6b, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0xb6, 0x1d, 0x9b, 0x0e, 0x5a, 0x29, 0x13, 0x5c, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xa0, 0x81, 0xcb, 0xa6, 0x0d, 0x92, 0x0c, 0x81, 0x5b, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0x20, 0xb4, 0xda, 0x0e, 0xda, 0xbe, 0x12, 0x5c, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0x20, 0x38, 0x10, 0x0e, 0xda, 0xbe, 0x12, 0x5c, 0xc3, 0xe7, 0x4a, 0x1b, 0x2c, 0x97, 0xf9, 0xde, 0x60, 0x99, 0x14, 0xf8, 0x41, 0x3b, 0x52, 0x82, 0xad, 0x80, 0x3f, 0x16, 0x06, 0x57, 0x6e, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xb4, 0x08, 0x28, 0xb8, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0x38, 0xbc, 0x41, 0xe8, 0x97, 0x6c, 0x50, 0x22, 0xd6, 0x6f, 0x50, 0x66, 0xe9, 0x1e, 0x34, 0x87, 0x26, 0x78, 0xd0, 0x8e, 0x94, 0xe0, 0xe1, 0x14, 0xeb, 0x70, 0x8a, 0x6d, 0x50, 0x96, 0x61, 0xaf, 0xe1, 0xcf, 0xa5, 0x0d, 0x9a, 0x50, 0x97, 0x3a, 0x58, 0x36, 0xe3, 0x3c, 0xcb, 0x2c, 0xe0, 0x93, 0xbd, 0x9d, 0x95, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0x0c, 0x85, 0xc5, 0x0d, 0xff, 0xce, 0xaf, 0x41, 0x8b, 0x80, 0x82, 0xb5, 0xc1, 0xd1, 0x86, 0x6f, 0x0d, 0x4e, 0x0e, 0x72, 0x0b, 0x78, 0x77, 0x6f, 0x7a, 0x6b, 0x78, 0x5b, 0xe7, 0xa0, 0x2d, 0x4d, 0xc1, 0xd5, 0xf0, 0xb9, 0xd2, 0x06, 0xed, 0x6b, 0x09, 0x6e, 0x10, 0xa6, 0x63, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x56, 0x92, 0x04, 0xd7, 0x90, 0x01, 0x1f, 0x9c, 0x0e, 0x9e, 0x2e, 0xac, 0x0d, 0x6f, 0xdc, 0x1d, 0xb4, 0x99, 0x23, 0xb8, 0x1a, 0x3e, 0x57, 0xda, 0xa0, 0x7d, 0x2d, 0xc1, 0x0d, 0xc2, 0x74, 0x6c, 0x0d, 0x9f, 0x2b, 0x6d, 0xd0, 0x4a, 0x92, 0xe0, 0x1a, 0x32, 0xe0, 0x83, 0xd3, 0xe1, 0x74, 0x6d, 0x78, 0xe3, 0xee, 0xa0, 0xf9, 0x1f, 0xc1, 0xd5, 0xf0, 0xb9, 0xd2, 0x06, 0xed, 0x6b, 0x09, 0x6e, 0x10, 0xa6, 0x63, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x56, 0x92, 0x04, 0xd7, 0x90, 0x01, 0x1f, 0x9c, 0x0e, 0x9e, 0x8e, 0xa8, 0x0d, 0x6f, 0xdc, 0x1d, 0xb4, 0x54, 0x24, 0xb8, 0x1a, 0x3e, 0x57, 0xda, 0xa0, 0x7d, 0x2d, 0xc1, 0x0d, 0xc2, 0x74, 0xec, 0xa0, 0x3d, 0x22, 0xc1, 0x0d, 0x6f, 0xdc, 0x1d, 0x34, 0x29, 0x24, 0xd8, 0x86, 0xcf, 0x5d, 0x36, 0x68, 0x4d, 0x53, 0x70, 0xc3, 0x5f, 0x34, 0x1b, 0x34, 0x3a, 0x25, 0xb8, 0x41, 0xb1, 0xa3, 0xb9, 0x06, 0xc5, 0x24, 0xe6, 0x1a, 0x3e, 0x57, 0xda, 0xa0, 0xad, 0x37, 0xc1, 0x83, 0x43, 0x4c, 0xc7, 0xe0, 0xf1, 0xc1, 0x69, 0x26, 0x6f, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0x11, 0xd6, 0x35, 0x28, 0x26, 0x31, 0xd7, 0xf0, 0xb9, 0xd2, 0x06, 0x4b, 0xf2, 0xc1, 0xd7, 0xf0, 0xb9, 0xd2, 0x06, 0xed, 0x7d, 0x09, 0x6e, 0x70, 0xda, 0x3b, 0xd9, 0x20, 0xa4, 0x53, 0x5b, 0xc3, 0xe7, 0x4a, 0x1b, 0xb4, 0xaa, 0x26, 0xb8, 0x41, 0x23, 0xce, 0x82, 0x1b, 0xb4, 0x0c, 0x3b, 0x75, 0x70, 0x5c, 0x3c, 0x39, 0x38, 0x2e, 0x9e, 0x1c, 0xb4, 0x7b, 0x2c, 0xb8, 0x86, 0x7f, 0x73, 0x36, 0x3c, 0x26, 0xb3, 0xe1, 0xdd, 0x9e, 0x0d, 0x8a, 0xe2, 0xdf, 0x0d, 0x8a, 0x4a, 0xf1, 0x35, 0xbc, 0xad, 0x33, 0x38, 0x3c, 0x78, 0x3a, 0x38, 0x3d, 0x38, 0x3c, 0x78, 0x3a, 0x38, 0x3d, 0x38, 0x7c, 0xd0, 0xee, 0xb1, 0x60, 0xad, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0x71, 0x77, 0xd0, 0x56, 0x9e, 0xe0, 0x1a, 0x1e, 0x94, 0xdc, 0x60, 0x91, 0x22, 0xde, 0x86, 0xb7, 0x75, 0x0e, 0x5a, 0xfb, 0x16, 0x6c, 0xc3, 0xdb, 0x3a, 0x07, 0xed, 0x1e, 0x0b, 0x6e, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x6d, 0x61, 0xf9, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x2c, 0x79, 0xdf, 0xa0, 0x70, 0x13, 0xdd, 0xa0, 0x6c, 0xaa, 0x5f, 0xc3, 0xdb, 0x3a, 0x83, 0xc3, 0x07, 0xa7, 0x99, 0xbc, 0xd6, 0xf0, 0xb6, 0xce, 0x41, 0xeb, 0xe1, 0x82, 0x6d, 0x50, 0xc2, 0x63, 0xae, 0x41, 0x2b, 0xee, 0x82, 0x6d, 0xd0, 0x9c, 0xba, 0xe0, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x80, 0xe7, 0x56, 0xc7, 0x6e, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xdc, 0x1d, 0xb4, 0x03, 0x26, 0x78, 0xb0, 0x86, 0xa8, 0x75, 0x83, 0x62, 0x47, 0x73, 0x0d, 0x8f, 0xb0, 0xae, 0x41, 0x31, 0x89, 0xb9, 0x86, 0xcf, 0x95, 0x36, 0x58, 0x92, 0x0f, 0x7e, 0x70, 0x88, 0xe9, 0x18, 0xbc, 0x3e, 0x68, 0x15, 0x5f, 0x70, 0x0d, 0x8a, 0x49, 0xcc, 0x0d, 0x1a, 0x5d, 0xa7, 0x1a, 0x1c, 0x3e, 0x68, 0xf4, 0x60, 0x70, 0x0d, 0xbf, 0x92, 0xad, 0xe1, 0xdf, 0x9c, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xcb, 0xfc, 0x82, 0x6d, 0x78, 0x5b, 0x67, 0xf0, 0xf4, 0xa0, 0xb1, 0x85, 0xc1, 0x35, 0xfc, 0x9b, 0xb3, 0x41, 0xd3, 0x0e, 0x83, 0x1b, 0xde, 0xd6, 0x19, 0x3c, 0x1d, 0x9c, 0x3e, 0x68, 0x6c, 0x61, 0xb0, 0x36, 0x68, 0x4e, 0x5d, 0x70, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xc0, 0x23, 0x4b, 0x73, 0x37, 0x7c, 0x90, 0xb3, 0x41, 0xeb, 0x0d, 0x83, 0x1b, 0xb4, 0x54, 0x31, 0x78, 0xd0, 0x36, 0xc4, 0xe0, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x08, 0xeb, 0x1a, 0x14, 0x93, 0x98, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x56, 0xd5, 0x04, 0x37, 0x68, 0x19, 0x76, 0x6a, 0x0d, 0x9f, 0x2b, 0x6d, 0xb0, 0x34, 0x8c, 0x7b, 0x83, 0x30, 0x1d, 0x3b, 0x68, 0xb4, 0x58, 0xf0, 0xe0, 0xb8, 0x78, 0xb2, 0x41, 0x43, 0x1b, 0x83, 0xad, 0xe1, 0xdf, 0x9c, 0x0d, 0x1a, 0xad, 0x17, 0xdc, 0xf0, 0xb6, 0xce, 0xe0, 0xf0, 0xe0, 0xf1, 0xe0, 0xe9, 0xe0, 0xf4, 0xe0, 0xf0, 0x41, 0x6b, 0x2b, 0x83, 0x6b, 0xf8, 0x37, 0x67, 0xc3, 0x63, 0x32, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x28, 0xfe, 0xdd, 0xa0, 0xa8, 0x14, 0x5f, 0xc3, 0xdb, 0x3a, 0x83, 0xc3, 0x83, 0xa7, 0x07, 0xed, 0xc5, 0x0c, 0xb6, 0x86, 0x7f, 0x73, 0x36, 0x3c, 0x26, 0xb3, 0xe1, 0xdd, 0x9e, 0x0d, 0x8a, 0xe2, 0xdf, 0x0d, 0x8a, 0x4a, 0xf1, 0x35, 0xbc, 0xad, 0x33, 0x38, 0x7c, 0xd0, 0x1e, 0xcc, 0x60, 0xad, 0xc1, 0x39, 0x7f, 0x69, 0x0d, 0x6f, 0xdc, 0x1d, 0xb4, 0xbb, 0x25, 0xb8, 0x86, 0x77, 0x7b, 0x36, 0x28, 0xeb, 0x6d, 0x37, 0x28, 0x2a, 0xc5, 0x37, 0x68, 0xf6, 0x66, 0xf0, 0xa0, 0xa1, 0x9f, 0xc1, 0x0d, 0x6f, 0xeb, 0x0c, 0x1e, 0x1f, 0xb4, 0x90, 0x33, 0xb8, 0xe1, 0x83, 0x9c, 0x35, 0x3c, 0xc2, 0xba, 0x06, 0xc5, 0x24, 0xe6, 0x1a, 0x3e, 0x57, 0xda, 0xa0, 0x55, 0x35, 0xc1, 0x0d, 0x5a, 0x86, 0x9d, 0xda, 0xa0, 0x41, 0x93, 0xc1, 0x35, 0x7c, 0xae, 0x74, 0xd0, 0x9c, 0xc9, 0x60, 0x07, 0xad, 0xad, 0x0c, 0x6e, 0xd0, 0x2a, 0xcb, 0xe0, 0x1a, 0xfe, 0xcd, 0xd9, 0xa0, 0xd1, 0x7a, 0xc1, 0x0d, 0x6f, 0xeb, 0x0c, 0x0e, 0x0f, 0x1e, 0x0f, 0x9e, 0x0e, 0x4e, 0x1f, 0xb4, 0x0f, 0x33, 0xb8, 0x41, 0x1b, 0x33, 0x83, 0x1b, 0xb4, 0xab, 0x33, 0xb8, 0x86, 0x7f, 0x73, 0x36, 0x3c, 0x26, 0xb3, 0xe1, 0xdd, 0x9e, 0x0d, 0x8a, 0xe2, 0xdf, 0x0d, 0x8a, 0x4a, 0xf1, 0x35, 0xbc, 0xad, 0x33, 0x38, 0x7c, 0xd0, 0xe6, 0xd6, 0x60, 0xad, 0xc1, 0x39, 0x7f, 0x69, 0x0d, 0x6f, 0xdc, 0x1d, 0xb4, 0x4d, 0x27, 0xb8, 0x06, 0xab, 0x7a, 0x95, 0x36, 0x28, 0xeb, 0x6d, 0x37, 0x28, 0x2a, 0xc5, 0x37, 0x68, 0xf6, 0x66, 0x70, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0xf5, 0xb6, 0x1b, 0x14, 0x95, 0xe2, 0x1b, 0x34, 0xf5, 0x33, 0x78, 0xd0, 0x20, 0xd9, 0xe0, 0x41, 0x03, 0x4a, 0x83, 0x07, 0xcd, 0xa9, 0x0b, 0xae, 0x80, 0x4f, 0x96, 0x16, 0xc6, 0x6e, 0xf8, 0x45, 0x69, 0x83, 0x66, 0x28, 0x05, 0x37, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0xbc, 0xb3, 0x34, 0x72, 0x83, 0x42, 0x30, 0x75, 0x83, 0xd0, 0x2f, 0xd9, 0xa0, 0x44, 0x7c, 0x3f, 0x38, 0x1d, 0x12, 0x6e, 0x78, 0x50, 0x72, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0x26, 0x18, 0xdd, 0xf0, 0xa0, 0xe4, 0x86, 0x67, 0x26, 0x0f, 0x02, 0x90, 0x6d, 0x83, 0x92, 0x85, 0x7d, 0x96, 0x59, 0x83, 0x74, 0x4a, 0x9f, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0xcf, 0xa5, 0x0d, 0xce, 0x3c, 0x78, 0x07, 0x4d, 0x9a, 0x09, 0x6e, 0xf8, 0x8b, 0x66, 0x0d, 0x9f, 0x2b, 0x6d, 0x70, 0xaa, 0x17, 0xdd, 0xa0, 0x79, 0xbe, 0xc1, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x38, 0xd7, 0xe3, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0x0a, 0x8a, 0xcc, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xe3, 0x7a, 0x83, 0xb5, 0x41, 0xd1, 0x41, 0xbb, 0xc1, 0x58, 0x10, 0xdb, 0xa0, 0x35, 0xca, 0xc1, 0x35, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x38, 0xd7, 0xe3, 0x6d, 0x78, 0x5b, 0x67, 0x70, 0xfa, 0xe0, 0x5c, 0x8f, 0xd7, 0x06, 0x45, 0x07, 0xed, 0x06, 0xa3, 0xc7, 0x70, 0x83, 0xd6, 0x28, 0x07, 0xd7, 0x70, 0x49, 0x6d, 0x70, 0xd8, 0xef, 0x58, 0x83, 0x76, 0x8f, 0x05, 0x37, 0xbc, 0xad, 0x33, 0x78, 0x7a, 0x70, 0xae, 0xc7, 0x6b, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xa3, 0x77, 0xdc, 0x06, 0xa5, 0xa8, 0x66, 0x07, 0x0d, 0x4e, 0x0e, 0xce, 0xb2, 0xe1, 0x2f, 0x9a, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0x99, 0x60, 0xf4, 0xa0, 0x31, 0xc7, 0xc1, 0x0d, 0x82, 0xf4, 0x74, 0x83, 0x76, 0x8f, 0x05, 0xd7, 0x60, 0xbd, 0x3b, 0xf3, 0x06, 0x4b, 0xaa, 0x93, 0x36, 0x68, 0x72, 0x72, 0x70, 0xc3, 0x2f, 0x2e, 0x1b, 0x9e, 0xb8, 0xdb, 0x60, 0xb5, 0xea, 0xec, 0x41, 0x59, 0xe7, 0xb9, 0x06, 0x6d, 0xe3, 0x08, 0x6e, 0xb0, 0xa4, 0x3a, 0x69, 0x83, 0x26, 0x27, 0x07, 0x37, 0xfc, 0xe2, 0xb2, 0xe1, 0x89, 0xbb, 0x83, 0xf5, 0x44, 0xe9, 0x6b, 0xd0, 0xde, 0x8e, 0xe0, 0x06, 0x4b, 0xaa, 0x93, 0x36, 0x68, 0x72, 0x72, 0x70, 0xc3, 0x2f, 0x2e, 0x1b, 0x9e, 0xb8, 0xdb, 0x60, 0x59, 0x24, 0xed, 0x1a, 0x7e, 0x84, 0x39, 0x68, 0x91, 0x55, 0xf0, 0xa0, 0xac, 0xf3, 0x5c, 0x83, 0xf5, 0x22, 0xcd, 0x1b, 0x2c, 0xa9, 0x4e, 0xda, 0xa0, 0xc9, 0xc9, 0xc1, 0x0d, 0xbf, 0xb8, 0x6c, 0x78, 0xe2, 0x6e, 0x83, 0x65, 0x91, 0xb4, 0x1b, 0x2c, 0x08, 0xa4, 0x3d, 0x28, 0xeb, 0x3c, 0xd7, 0xa0, 0xe9, 0x20, 0xc1, 0x0d, 0x96, 0x54, 0x27, 0x6d, 0xd0, 0xe4, 0xe4, 0xe0, 0x86, 0x5f, 0x5c, 0x36, 0x3c, 0x71, 0xb7, 0xc1, 0x6a, 0xd5, 0xd9, 0x0d, 0x16, 0xc4, 0xcd, 0x6e, 0xb0, 0x20, 0x6e, 0xf6, 0xa0, 0xac, 0xf3, 0x5c, 0x83, 0x66, 0x7e, 0x04, 0x37, 0x58, 0x52, 0x9d, 0xb4, 0x41, 0x93, 0x93, 0x83, 0x1b, 0x7e, 0x71, 0xd9, 0xf0, 0xc4, 0xdd, 0x06, 0xab, 0x55, 0x67, 0x37, 0x58, 0x54, 0x01, 0x77, 0xb0, 0x46, 0x05, 0x6e, 0x0d, 0x5a, 0x24, 0x12, 0xdc, 0x60, 0x49, 0x75, 0xd2, 0x06, 0x4d, 0x4e, 0x0e, 0x6e, 0xf8, 0xc5, 0x65, 0xc3, 0x13, 0x77, 0x07, 0x0d, 0x58, 0x0f, 0xae, 0x86, 0xcf, 0x95, 0x36, 0x68, 0x25, 0x49, 0xf0, 0xe0, 0x10, 0xd3, 0xb1, 0xc1, 0x92, 0xea, 0xa4, 0x0d, 0x9a, 0x9c, 0x1c, 0xdc, 0xf0, 0x8b, 0xcb, 0x86, 0x27, 0xee, 0x36, 0x58, 0xfe, 0x3c, 0xbb, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x86, 0xfd, 0x76, 0xd0, 0x64, 0xbd, 0x60, 0x6b, 0xd0, 0x7c, 0xc4, 0xd4, 0x06, 0x45, 0x07, 0xed, 0x80, 0x37, 0xf6, 0x86, 0x6f, 0xd0, 0x1a, 0xe5, 0xe0, 0x1a, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0xb4, 0x7b, 0x2c, 0xb8, 0xe1, 0x6d, 0x9d, 0xc1, 0xe3, 0x83, 0x76, 0x8f, 0x05, 0xdb, 0x60, 0x49, 0x75, 0xd2, 0x06, 0x4d, 0x4e, 0x0e, 0x6e, 0x70, 0xce, 0x5f, 0xda, 0x60, 0x55, 0x83, 0xf0, 0x1a, 0x7e, 0x71, 0xd9, 0x60, 0x1d, 0x93, 0xfb, 0x1a, 0x7e, 0x71, 0xd9, 0x60, 0x51, 0x34, 0xed, 0x41, 0x59, 0xe7, 0xb9, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0xe3, 0x43, 0x7b, 0x50, 0xd6, 0x79, 0xb6, 0xe1, 0x2b, 0x9c, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0xaa, 0x17, 0xdd, 0xa0, 0x84, 0xc7, 0xdc, 0xa0, 0xf5, 0x70, 0xc1, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0xb7, 0x75, 0x36, 0x68, 0xa1, 0x7e, 0xb0, 0x83, 0xb2, 0xce, 0x73, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0xc5, 0x65, 0xc3, 0x13, 0x77, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x82, 0x68, 0x79, 0x83, 0xa2, 0x52, 0x7c, 0x0d, 0x6f, 0xeb, 0x0c, 0x9e, 0x1e, 0xb4, 0x1e, 0x2e, 0x58, 0x6b, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xd0, 0x7a, 0xb8, 0xe0, 0x86, 0xb7, 0x75, 0x0e, 0x5a, 0x0b, 0x17, 0xac, 0x35, 0x68, 0x19, 0x76, 0x6a, 0x83, 0xa2, 0x83, 0x76, 0x83, 0x16, 0xea, 0x07, 0x37, 0x68, 0x8d, 0x72, 0x70, 0x83, 0x96, 0xee, 0x07, 0x37, 0x58, 0x52, 0x9d, 0xb4, 0x41, 0x93, 0x93, 0x83, 0x1b, 0x7e, 0x71, 0xd9, 0x60, 0x41, 0xfb, 0xfa, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0x2f, 0x2e, 0x1b, 0xac, 0x3c, 0xa5, 0x3d, 0x28, 0xeb, 0x3c, 0x0f, 0x5a, 0x7c, 0xa4, 0x5a, 0xc3, 0x2f, 0x2e, 0x1b, 0x9e, 0xb8, 0x3b, 0x68, 0xf5, 0x7d, 0xf0, 0xa0, 0x35, 0x07, 0xc2, 0xd5, 0xf0, 0xb9, 0xd2, 0x06, 0xed, 0x6b, 0x09, 0x1e, 0x1c, 0x62, 0x3a, 0x36, 0x28, 0x3a, 0x68, 0x37, 0x68, 0xa1, 0x7e, 0x70, 0x83, 0xd6, 0x28, 0x07, 0x37, 0x68, 0xe9, 0x7e, 0x70, 0x83, 0x25, 0xd5, 0x49, 0x1b, 0x34, 0x39, 0x39, 0xb8, 0xe1, 0x17, 0x97, 0x0d, 0x56, 0x35, 0x08, 0xaf, 0xe1, 0x17, 0x97, 0x35, 0x3c, 0x8b, 0x77, 0xb0, 0x1a, 0x80, 0x64, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0x22, 0x68, 0xdb, 0xa0, 0xdd, 0xf7, 0xc1, 0x35, 0x3c, 0x8b, 0x77, 0xd0, 0x2c, 0xe5, 0x53, 0x6b, 0x78, 0x16, 0xef, 0xa0, 0xed, 0xcb, 0xa7, 0x0e, 0x5a, 0x73, 0x20, 0x5c, 0x83, 0x76, 0x09, 0x06, 0x37, 0x28, 0x3a, 0x68, 0x07, 0xbc, 0xb1, 0x37, 0x7d, 0x83, 0xd6, 0x28, 0x07, 0xd7, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0x9d, 0xd2, 0xa7, 0x83, 0x26, 0xeb, 0x05, 0x37, 0x58, 0x52, 0x9d, 0xb4, 0x41, 0x93, 0x93, 0x83, 0x1b, 0x7e, 0x71, 0xd9, 0x60, 0x55, 0x83, 0xf0, 0x1a, 0x7e, 0x71, 0xd9, 0x60, 0x1d, 0x93, 0xfb, 0x1a, 0x7e, 0x71, 0xd9, 0x60, 0xd9, 0x2e, 0xed, 0x06, 0xcb, 0x51, 0x68, 0x0f, 0xca, 0x3a, 0xcf, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0x3a, 0x7e, 0xd9, 0x83, 0xb2, 0xce, 0xb3, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xa3, 0x49, 0x84, 0xb5, 0x1a, 0x3e, 0x57, 0xda, 0xa0, 0x55, 0x35, 0xc1, 0x83, 0x43, 0x4c, 0xc7, 0x06, 0x45, 0x07, 0xed, 0x06, 0x8d, 0x26, 0x11, 0x6e, 0xd0, 0x1a, 0xe5, 0xe0, 0x06, 0x8d, 0x2f, 0x11, 0x6e, 0xb0, 0xa4, 0x3a, 0x69, 0x83, 0x26, 0x27, 0x07, 0x37, 0xfc, 0xe2, 0xb2, 0xc1, 0xaa, 0x06, 0xe1, 0x0d, 0x96, 0x2a, 0xb9, 0x1f, 0x34, 0xd0, 0x45, 0xb8, 0x1a, 0x3e, 0x57, 0xda, 0xa0, 0xbd, 0x2f, 0xc1, 0x83, 0x43, 0x4c, 0xc7, 0x06, 0x4b, 0xaa, 0x93, 0x36, 0x68, 0x72, 0x72, 0x70, 0xc3, 0x2f, 0x2e, 0x1b, 0x9e, 0xb8, 0xdb, 0x60, 0xbd, 0xf4, 0xdb, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0xac, 0xa1, 0xc8, 0xdb, 0x60, 0xe1, 0xe9, 0xf9, 0x1a, 0x7e, 0x71, 0xd9, 0x20, 0x29, 0x2d, 0x78, 0x83, 0x46, 0xeb, 0x05, 0x37, 0x68, 0x3d, 0x7f, 0xb0, 0x5a, 0x83, 0x96, 0x89, 0x05, 0x37, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x3c, 0xb7, 0xba, 0x76, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x35, 0x14, 0x79, 0x1b, 0x2c, 0x3c, 0x3d, 0x5f, 0xc3, 0x2f, 0x2e, 0x1b, 0x24, 0xa5, 0x05, 0x6f, 0x90, 0x08, 0x17, 0x7c, 0xd0, 0x64, 0xbd, 0x60, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbb, 0x3d, 0x6b, 0x50, 0x96, 0xbc, 0x6f, 0x70, 0xb4, 0xd6, 0xd8, 0xa0, 0x6c, 0x7a, 0x3f, 0x68, 0x70, 0x72, 0xf0, 0xa0, 0xc9, 0x7a, 0xc1, 0x35, 0x58, 0x52, 0x9d, 0xb4, 0x41, 0x93, 0x93, 0x83, 0x1b, 0x7e, 0x71, 0xd9, 0xf0, 0xc4, 0xdd, 0x06, 0xcb, 0x22, 0x69, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0x8d, 0xfe, 0x11, 0xd6, 0x06, 0x45, 0x07, 0xed, 0x06, 0x2d, 0xd4, 0x0f, 0x6e, 0xd0, 0x1a, 0xe5, 0xe0, 0x1a, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0xb4, 0x46, 0x39, 0xb8, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x4b, 0xde, 0x37, 0x28, 0x5b, 0x50, 0x0f, 0x1a, 0x5f, 0x24, 0x3c, 0x68, 0xb2, 0x5e, 0x70, 0x0d, 0xda, 0x3d, 0x16, 0xdc, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0xb4, 0xb7, 0x96, 0x75, 0xd0, 0x88, 0xbc, 0xe0, 0x41, 0x93, 0xf5, 0x82, 0x6d, 0xb0, 0xa4, 0x3a, 0x69, 0x83, 0x26, 0x27, 0x07, 0x37, 0xfc, 0xe2, 0xb2, 0xc1, 0x82, 0xf6, 0xf5, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0x4a, 0xf9, 0xf5, 0x83, 0x16, 0x1f, 0xa9, 0xd6, 0xf0, 0x8b, 0xcb, 0x86, 0x27, 0xee, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xeb, 0xcf, 0x68, 0x0f, 0xda, 0x97, 0x24, 0xec, 0xa0, 0x35, 0x07, 0xc2, 0xd5, 0xf0, 0xb9, 0xd2, 0x06, 0x6d, 0xd0, 0x09, 0x1e, 0x1c, 0x62, 0x3a, 0x0e, 0x9a, 0x9e, 0x21, 0x5c, 0x0d, 0x9f, 0x2b, 0x6d, 0xd0, 0x26, 0x9e, 0xe0, 0xc1, 0x21, 0xa6, 0xe3, 0xa0, 0xe9, 0x19, 0xc2, 0xd5, 0xf0, 0xb9, 0xd2, 0x06, 0xcb, 0x65, 0xbe, 0x0f, 0x0e, 0x31, 0x1d, 0x1b, 0x2c, 0xa9, 0x4e, 0xda, 0xa0, 0xc9, 0xc9, 0xc1, 0x0d, 0x0a, 0x82, 0xd9, 0x0d, 0x5a, 0x0f, 0x17, 0x5c, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0xf5, 0xb6, 0x1b, 0x14, 0x95, 0xe2, 0x1b, 0x2c, 0x8b, 0xa4, 0x5d, 0xc3, 0xdb, 0x3a, 0x1b, 0x9c, 0x22, 0x4f, 0x0f, 0x5a, 0x0f, 0x17, 0x6c, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x75, 0x6c, 0xdb, 0xa0, 0xa8, 0x14, 0xdf, 0x60, 0x59, 0x24, 0xed, 0x1a, 0xde, 0xd6, 0xd9, 0xe0, 0x5c, 0x7f, 0x7a, 0xd0, 0x7a, 0xb8, 0xe0, 0x06, 0x0b, 0x1d, 0xde, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0x8d, 0x7a, 0x7a, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x93, 0x0f, 0xea, 0x41, 0xeb, 0xe1, 0x82, 0x1d, 0x94, 0x75, 0x9e, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0x36, 0x0b, 0xf8, 0x64, 0x6f, 0x6c, 0xe5, 0x86, 0xbf, 0x68, 0x36, 0x68, 0xc0, 0x52, 0x70, 0xc3, 0x27, 0x36, 0x1b, 0x34, 0x87, 0x1a, 0xb6, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0xb2, 0xc1, 0xa2, 0xe3, 0xd4, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xe1, 0x0d, 0x0a, 0xc1, 0xd4, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0x12, 0xb1, 0x7e, 0x83, 0x65, 0x33, 0xce, 0x07, 0x65, 0xa4, 0xed, 0x1a, 0x3e, 0x77, 0x19, 0x3c, 0xde, 0xa0, 0x10, 0x4c, 0xdd, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0x11, 0xeb, 0x37, 0xfc, 0x50, 0x73, 0xd0, 0x1c, 0x9a, 0x60, 0x1b, 0x1e, 0x94, 0x5c, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0x5b, 0xe7, 0x60, 0x69, 0xe5, 0xe8, 0xc1, 0xa1, 0x97, 0x6f, 0xc3, 0x57, 0x38, 0x1b, 0xfe, 0xa2, 0x59, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x70, 0x78, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x70, 0xf8, 0xa0, 0xc1, 0x73, 0xc2, 0x35, 0xfc, 0xb9, 0x34, 0x78, 0x7c, 0xd0, 0x78, 0x3b, 0x61, 0x07, 0xed, 0x48, 0x09, 0x6e, 0x70, 0xb4, 0xe1, 0x5b, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0x78, 0xc0, 0xa3, 0x2b, 0xd3, 0x5b, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xf6, 0x23, 0x05, 0x5b, 0xc3, 0xdb, 0x3a, 0x83, 0xc7, 0x07, 0xcd, 0x10, 0x14, 0xae, 0xe1, 0x6d, 0x9d, 0xc1, 0xe3, 0x83, 0x66, 0x09, 0x0a, 0x6b, 0xc3, 0xe7, 0x2e, 0x1b, 0x34, 0x4c, 0x50, 0xb8, 0xe1, 0x2f, 0x9a, 0x0d, 0x9a, 0xc1, 0x27, 0xdc, 0xf0, 0x41, 0xce, 0x1a, 0xde, 0xed, 0x59, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x04, 0xf9, 0xd8, 0x0d, 0x1a, 0x47, 0x8f, 0x3a, 0x68, 0x56, 0x83, 0x6a, 0x0d, 0x0f, 0x4a, 0x6e, 0x78, 0x66, 0x72, 0x83, 0x05, 0x72, 0x4f, 0x1b, 0x14, 0x82, 0xa9, 0x07, 0xcb, 0x66, 0x9c, 0x5b, 0xc3, 0x2f, 0x2e, 0x1b, 0xac, 0xff, 0x50, 0x5d, 0xc3, 0x1b, 0x77, 0x07, 0xed, 0xf0, 0x08, 0xb6, 0x41, 0x90, 0x9e, 0x6e, 0xd0, 0xc0, 0xc8, 0xd4, 0x1a, 0xac, 0x77, 0x67, 0xde, 0xf0, 0x8b, 0xcb, 0x06, 0xeb, 0x3f, 0x54, 0x0f, 0x9a, 0xd5, 0xa0, 0x5a, 0x83, 0xf5, 0x22, 0xcd, 0x07, 0x8d, 0x90, 0x14, 0xae, 0x41, 0x03, 0x8b, 0x53, 0x1b, 0x7e, 0x71, 0xd9, 0x60, 0xfd, 0x87, 0xea, 0x1a, 0x94, 0xf0, 0x98, 0x1b, 0xb4, 0x7f, 0x39, 0xb5, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xc6, 0xdd, 0x41, 0xeb, 0x49, 0x82, 0x07, 0x8d, 0xa5, 0x4e, 0x6d, 0xf8, 0xc5, 0x65, 0x83, 0x86, 0xfd, 0x05, 0x37, 0x68, 0x6b, 0x72, 0xea, 0xa0, 0xcd, 0xe1, 0xb0, 0xd6, 0xa0, 0x0d, 0xcf, 0xa9, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x01, 0x0f, 0x2d, 0xcd, 0x3d, 0x68, 0x72, 0x39, 0x6c, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xc0, 0xcb, 0x7b, 0x73, 0x37, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x58, 0x1a, 0xa2, 0xba, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0x0d, 0x9a, 0xce, 0x29, 0xec, 0xa0, 0x21, 0x39, 0xaa, 0x0d, 0x0a, 0x43, 0xd5, 0x35, 0xbc, 0xad, 0x33, 0x38, 0xbc, 0x41, 0xc3, 0x3d, 0x85, 0x6d, 0x50, 0x18, 0xaa, 0xae, 0xe1, 0x8d, 0xbb, 0x83, 0xd6, 0xd6, 0x04, 0x37, 0x7c, 0x90, 0xb3, 0x06, 0xc5, 0x24, 0xe6, 0x06, 0x2d, 0x7d, 0x11, 0x0e, 0x1e, 0x1f, 0xb4, 0x76, 0x54, 0xb8, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf1, 0x41, 0xc3, 0x42, 0x85, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0xf8, 0xa0, 0x4d, 0xa7, 0xc2, 0x36, 0xfc, 0xe2, 0xb2, 0x41, 0x23, 0x51, 0x85, 0x6b, 0x78, 0x5b, 0xe7, 0xa0, 0x4d, 0xa7, 0xc2, 0x83, 0xb2, 0xce, 0x73, 0x0d, 0x9a, 0x8f, 0x98, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xf0, 0xf2, 0xc2, 0xc8, 0x83, 0x26, 0x97, 0xc3, 0x36, 0x28, 0x0c, 0x55, 0xd7, 0xf0, 0xb6, 0xce, 0xe0, 0xf0, 0x06, 0xcd, 0x77, 0x15, 0xb6, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xe0, 0x91, 0xbd, 0xe5, 0x1b, 0xfe, 0xa2, 0x59, 0xc3, 0xe7, 0x4a, 0x07, 0x6d, 0x3b, 0x09, 0x6e, 0xf8, 0x20, 0x67, 0x0d, 0x8a, 0x49, 0xcc, 0x0d, 0x9a, 0x8f, 0x98, 0x1a, 0x3c, 0x3e, 0x68, 0x4f, 0xac, 0x70, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0x83, 0xc6, 0xd8, 0x0a, 0xd7, 0xf0, 0xb6, 0xce, 0xe0, 0xf1, 0x41, 0x63, 0x6c, 0x85, 0x6d, 0xf8, 0xc5, 0x65, 0x83, 0x82, 0x22, 0x73, 0x0d, 0x6f, 0xeb, 0x1c, 0x34, 0xc6, 0x56, 0xd8, 0x06, 0x85, 0xa1, 0xea, 0x06, 0x2d, 0x75, 0x70, 0x6c, 0xb0, 0xa4, 0x3a, 0x69, 0x0d, 0x6f, 0xeb, 0x0c, 0x1e, 0x6f, 0xd0, 0x5e, 0x59, 0x61, 0x1b, 0x2c, 0xa9, 0x4e, 0x5a, 0xc3, 0xdb, 0x3a, 0x83, 0xc3, 0x07, 0x6d, 0xf1, 0x15, 0x6e, 0xb0, 0xaa, 0x57, 0x69, 0x83, 0xb2, 0xde, 0x76, 0x83, 0xa2, 0x52, 0x7c, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x56, 0xac, 0xe9, 0x6d, 0xb0, 0xf0, 0xf4, 0x7c, 0x0d, 0xce, 0xf9, 0x4b, 0x1b, 0x24, 0xa5, 0x05, 0x6f, 0x90, 0x08, 0x17, 0xbc, 0xc1, 0x89, 0xfd, 0x66, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x4a, 0x74, 0xe5, 0x0d, 0xca, 0xa6, 0xfa, 0x35, 0xbc, 0xdb, 0xb3, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x89, 0x1b, 0xb5, 0x1b, 0x94, 0x4d, 0xf5, 0x07, 0xad, 0xb2, 0xf7, 0xad, 0xe1, 0x17, 0xa5, 0x0d, 0xd6, 0xef, 0x41, 0x6f, 0x50, 0x96, 0xbc, 0x6f, 0xd0, 0x74, 0x7c, 0xd6, 0x06, 0x65, 0x53, 0xfd, 0x1a, 0xde, 0xd6, 0x19, 0x3c, 0x3e, 0x38, 0xc6, 0x9c, 0x55, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0xc3, 0x0f, 0x35, 0x07, 0xa7, 0x9b, 0x93, 0x35, 0xfc, 0xb9, 0x34, 0xb8, 0x78, 0x70, 0x14, 0x3a, 0xe9, 0x20, 0xed, 0x78, 0xb9, 0x0d, 0x56, 0xf5, 0x2a, 0x6d, 0x50, 0xd6, 0xdb, 0x6e, 0x50, 0x54, 0x8a, 0xaf, 0x41, 0x90, 0x9e, 0x6e, 0xd0, 0x88, 0xfc, 0xd4, 0x1a, 0xac, 0x11, 0x2d, 0x3f, 0x58, 0x84, 0x27, 0xb7, 0x06, 0xab, 0x4d, 0xcb, 0x0f, 0x96, 0x5d, 0xc2, 0xad, 0xc1, 0x1a, 0xd6, 0xf2, 0x83, 0x65, 0xbb, 0xb4, 0x6b, 0xb0, 0x2e, 0xb6, 0xfc, 0x60, 0x79, 0x24, 0x5c, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x03, 0xde, 0x59, 0x5d, 0xbb, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0x7e, 0xff, 0x83, 0x56, 0xd9, 0xfb, 0x36, 0x28, 0x3a, 0x8d, 0x37, 0x28, 0x8b, 0xa3, 0x37, 0x28, 0x2a, 0xc5, 0x37, 0x38, 0xba, 0x0e, 0xae, 0xe1, 0x17, 0x97, 0x0d, 0x8f, 0xc9, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x7f, 0x02, 0x6d, 0xb0, 0xae, 0x0b, 0x6e, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x76, 0xb7, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xb6, 0x66, 0x0b, 0x3b, 0x58, 0x59, 0xf2, 0x56, 0x6b, 0xf8, 0xc5, 0x65, 0xc3, 0x63, 0x32, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x9f, 0x40, 0x1b, 0xac, 0xeb, 0x82, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x84, 0xdd, 0xed, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x14, 0x58, 0x0f, 0x5a, 0x0e, 0x2e, 0x3c, 0x58, 0x59, 0xf2, 0x56, 0x6b, 0xf8, 0xc5, 0x65, 0xc3, 0x63, 0x32, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x9f, 0x40, 0x1b, 0xac, 0xeb, 0x82, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x84, 0xdd, 0xed, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x14, 0x58, 0x37, 0x68, 0x3b, 0xb8, 0x70, 0x0d, 0x3f, 0xc2, 0x6c, 0xa8, 0xf9, 0x41, 0x91, 0xea, 0x60, 0x65, 0xc9, 0x5b, 0xb5, 0x06, 0x6d, 0x24, 0x4f, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x6c, 0xd0, 0x7c, 0x57, 0xe1, 0x41, 0x2b, 0x84, 0x61, 0x1b, 0x14, 0x3b, 0x9a, 0x6b, 0x50, 0x4c, 0x62, 0x6e, 0xb0, 0x32, 0x64, 0x7c, 0xe3, 0xd0, 0x41, 0x9b, 0xb1, 0x54, 0x6b, 0x78, 0x5b, 0xe7, 0xa0, 0x3d, 0xb1, 0xc2, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x48, 0x58, 0xe1, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0x5d, 0xe9, 0x88, 0x35, 0xbc, 0xad, 0x33, 0x38, 0x7c, 0xd0, 0x66, 0x2c, 0xd5, 0x41, 0xb3, 0x75, 0x85, 0xad, 0x41, 0xcb, 0xb0, 0x53, 0x1b, 0x3e, 0xb1, 0xd9, 0xa0, 0x41, 0xef, 0xc2, 0x0d, 0x8a, 0x01, 0xd9, 0x0d, 0x9a, 0xa1, 0x9c, 0xda, 0xa0, 0x2d, 0xf3, 0xc2, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x48, 0x58, 0xe1, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0x51, 0x20, 0x8e, 0x0d, 0xda, 0x9a, 0x9c, 0x3a, 0x68, 0xb6, 0xae, 0xb0, 0x35, 0x68, 0xd4, 0x77, 0x6a, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0xf5, 0x9e, 0x7a, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x94, 0xef, 0x77, 0x6d, 0xd0, 0x86, 0x52, 0xd5, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0xb8, 0x79, 0xd5, 0x06, 0x47, 0x1b, 0xbe, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0xe9, 0x22, 0x63, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x60, 0xef, 0xc4, 0xc1, 0xa1, 0x97, 0xaf, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x8b, 0x66, 0x0d, 0x9f, 0x2b, 0x6d, 0xd0, 0x46, 0x3e, 0xe1, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0x3e, 0x68, 0xd2, 0x4c, 0xb0, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x56, 0x3e, 0xec, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0xd6, 0x7f, 0xa8, 0x1e, 0x94, 0x75, 0x9e, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x1b, 0x8c, 0x05, 0xb1, 0x83, 0x76, 0x77, 0xc4, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x36, 0x18, 0x3d, 0x86, 0x1b, 0x2e, 0xa9, 0x0d, 0x0e, 0xfb, 0x1d, 0x6b, 0xb0, 0x34, 0x44, 0xf5, 0xa0, 0x31, 0x02, 0xb3, 0x83, 0xb6, 0x72, 0xc4, 0x36, 0xfc, 0xe2, 0xb2, 0x86, 0xb7, 0x75, 0x06, 0x87, 0x0f, 0x4e, 0xe5, 0x71, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xf8, 0xe0, 0x54, 0x1e, 0x77, 0xd0, 0x6a, 0x83, 0xd9, 0x1a, 0x34, 0x29, 0x3d, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xe0, 0xa1, 0x95, 0xe5, 0x1b, 0xde, 0xed, 0x59, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0xc2, 0x4d, 0x74, 0x83, 0xb2, 0xa9, 0x7e, 0x0d, 0x6f, 0xeb, 0x0c, 0x0e, 0x1f, 0x2c, 0x0d, 0x51, 0xed, 0xa0, 0x59, 0x0d, 0xaa, 0x0d, 0x8a, 0x01, 0xd9, 0x35, 0x68, 0x9f, 0xc5, 0xb0, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0xfa, 0x0f, 0xd5, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0x37, 0xee, 0x0e, 0xda, 0x80, 0x13, 0x5c, 0xc3, 0xdb, 0x3a, 0x83, 0xd7, 0x07, 0x4d, 0xda, 0x18, 0xd6, 0x86, 0x0f, 0x72, 0x36, 0x68, 0xaf, 0x3b, 0x6c, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x01, 0x8f, 0x2c, 0x4f, 0xde, 0xf0, 0x71, 0xd4, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x4d, 0xc7, 0x67, 0x1d, 0x34, 0x0f, 0x63, 0xb8, 0xe1, 0x17, 0x97, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x2c, 0x79, 0xdf, 0xa0, 0x6c, 0x41, 0x3d, 0x68, 0x1e, 0xc6, 0x70, 0x83, 0x06, 0xce, 0xa6, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x4d, 0x0c, 0x19, 0xd6, 0x1a, 0xde, 0xd6, 0x19, 0x3c, 0x3e, 0x58, 0x1a, 0xa2, 0xda, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0x5d, 0x1d, 0xc3, 0x83, 0x26, 0x9e, 0x0c, 0xdb, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0xd9, 0x60, 0x55, 0x40, 0xde, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x41, 0x43, 0xe4, 0x61, 0x6b, 0xd0, 0xc0, 0xc8, 0xd4, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x8d, 0x04, 0x4b, 0x1d, 0x34, 0x5c, 0x51, 0xd8, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x80, 0x27, 0x57, 0x96, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x0a, 0x37, 0xd1, 0x0d, 0xca, 0xa6, 0xfa, 0x35, 0xbc, 0xad, 0x33, 0x38, 0x3c, 0x38, 0x7c, 0xb0, 0xe8, 0x23, 0xaf, 0x83, 0x66, 0x35, 0xa8, 0x36, 0x28, 0xe1, 0x31, 0xd7, 0xa0, 0x45, 0x31, 0xc3, 0x36, 0x58, 0xd9, 0x91, 0xb7, 0xe1, 0x17, 0x97, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x93, 0x67, 0x86, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0xca, 0x16, 0xd4, 0x0d, 0xca, 0xa6, 0xfa, 0x35, 0xbc, 0xad, 0x33, 0x78, 0x7c, 0xd0, 0x3a, 0x9a, 0x61, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xfa, 0xa0, 0x51, 0x36, 0xc3, 0x35, 0xbc, 0xad, 0x33, 0x78, 0x7c, 0xb0, 0xe8, 0x23, 0xaf, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xed, 0xea, 0x18, 0x6e, 0xd0, 0x16, 0x9e, 0x61, 0x75, 0x38, 0xc5, 0x16, 0xf0, 0xc9, 0xc2, 0xe6, 0xd0, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0xb5, 0xa5, 0xb1, 0x07, 0x27, 0x3d, 0xd1, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0x2a, 0xa2, 0xf7, 0x83, 0x05, 0xef, 0x9f, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x63, 0x0b, 0x6b, 0x0f, 0x4e, 0x7a, 0xa2, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0x93, 0x9e, 0xe8, 0x06, 0x05, 0x69, 0xec, 0x06, 0x0b, 0x8b, 0x1a, 0xd7, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0x94, 0x3b, 0xef, 0x1b, 0x94, 0x4d, 0xef, 0x6b, 0x50, 0x08, 0xa6, 0x6e, 0x10, 0xfa, 0x25, 0x1b, 0x94, 0x88, 0xef, 0x07, 0xe7, 0x40, 0xd0, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x0d, 0x2e, 0x1a, 0xd6, 0x06, 0x85, 0xa1, 0xea, 0x1a, 0xde, 0xd6, 0x39, 0x58, 0xd4, 0xf5, 0xbe, 0xe1, 0x2b, 0x9c, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0xd2, 0x13, 0xdd, 0xa0, 0x84, 0xc7, 0x5c, 0x83, 0xf6, 0x0a, 0x0d, 0x5b, 0xc3, 0x2f, 0x2e, 0x1b, 0xb4, 0xcc, 0x69, 0x78, 0x50, 0xd6, 0x79, 0x6e, 0xf8, 0x20, 0x67, 0x0d, 0xbf, 0x92, 0xad, 0xe1, 0xdf, 0x9c, 0x0d, 0x5a, 0xe6, 0x34, 0xdc, 0xf0, 0xb6, 0xce, 0xe0, 0xe9, 0x41, 0x73, 0xa2, 0x86, 0x6b, 0xf8, 0x37, 0x67, 0x83, 0x95, 0x14, 0x6d, 0x07, 0x8d, 0xa9, 0x1a, 0xae, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x4b, 0xde, 0x37, 0x38, 0x5a, 0x6b, 0x6c, 0x50, 0x36, 0xbd, 0xaf, 0xe1, 0x6d, 0x9d, 0x83, 0xd5, 0x7f, 0x8d, 0x6d, 0xd0, 0x98, 0xaa, 0x61, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0x56, 0x52, 0xb4, 0x6d, 0xd0, 0x98, 0xaa, 0xe1, 0x1a, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x34, 0x27, 0x6a, 0xb8, 0xe1, 0x6d, 0x9d, 0xc1, 0xe9, 0x83, 0xe6, 0x44, 0x0d, 0x6b, 0xc3, 0x07, 0x39, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x17, 0xbf, 0x1b, 0x2c, 0xf6, 0xb9, 0x3b, 0x68, 0xbb, 0xd6, 0x70, 0x0d, 0xbf, 0xb8, 0x1c, 0xb4, 0x91, 0x6b, 0xb8, 0xe1, 0x17, 0x97, 0x0d, 0x56, 0x52, 0xb4, 0xad, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0x0a, 0xa6, 0xd3, 0x06, 0x0b, 0x2f, 0x02, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x25, 0x3e, 0xee, 0x06, 0x01, 0xcb, 0x7a, 0xd0, 0x76, 0xad, 0x61, 0x6b, 0x50, 0x96, 0xbc, 0x6f, 0x90, 0x82, 0xe9, 0xb4, 0xc1, 0xc2, 0x8b, 0xc0, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x91, 0x89, 0x7b, 0xd0, 0x4e, 0xb3, 0x61, 0x07, 0xed, 0xe8, 0x1a, 0xce, 0x02, 0x3e, 0x59, 0xda, 0x1c, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9a, 0x75, 0x8c, 0xda, 0xf0, 0x8b, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x68, 0x85, 0x64, 0xa0, 0x85, 0x56, 0x58, 0x6e, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x2d, 0xb4, 0x42, 0x34, 0xd0, 0x42, 0x2b, 0x4c, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0x50, 0x58, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x42, 0x2b, 0xc4, 0x07, 0xad, 0x90, 0x1b, 0x1e, 0x34, 0x60, 0x29, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x16, 0x5a, 0x61, 0x33, 0xd0, 0x42, 0x2b, 0x0c, 0x37, 0xfc, 0xb9, 0x34, 0xe0, 0xb1, 0xd5, 0xb5, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x68, 0x85, 0xdd, 0x41, 0x2b, 0xf0, 0x86, 0x07, 0x61, 0x3a, 0xd6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x68, 0xb6, 0x32, 0x6a, 0xc3, 0x5f, 0x34, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xa1, 0x15, 0xf6, 0x03, 0x2d, 0xb4, 0x42, 0xc7, 0xc1, 0x99, 0x60, 0x74, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x34, 0xac, 0x19, 0xb5, 0xc1, 0x92, 0xfa, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xd0, 0x0a, 0xc9, 0x40, 0x0f, 0xad, 0x50, 0xb5, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xd0, 0x0a, 0xd1, 0x40, 0x0f, 0xad, 0xb0, 0xd8, 0xf0, 0xc6, 0xdd, 0x86, 0x97, 0xef, 0x0e, 0x9a, 0x55, 0x8d, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x0f, 0xad, 0x30, 0x19, 0xe8, 0xa1, 0x15, 0x9a, 0x36, 0x28, 0x08, 0x66, 0x37, 0x68, 0xf7, 0x58, 0x70, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x3d, 0xb4, 0xc2, 0x76, 0xa0, 0x87, 0x56, 0x28, 0x38, 0x68, 0x4e, 0x5d, 0x70, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x0f, 0xad, 0xd0, 0x30, 0xd0, 0x43, 0x2b, 0x14, 0x6d, 0xb8, 0xa4, 0xd6, 0x38, 0x74, 0xd0, 0xee, 0xb1, 0x60, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xa2, 0x15, 0x77, 0xd0, 0x36, 0x64, 0xd4, 0x06, 0x4b, 0xea, 0x97, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x44, 0x2b, 0x24, 0x03, 0x4d, 0xb4, 0xc2, 0x68, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xa2, 0x15, 0xa2, 0x81, 0x26, 0x5a, 0x21, 0xdf, 0xf0, 0xc6, 0xdd, 0x86, 0x97, 0xef, 0x02, 0x9f, 0xad, 0xae, 0x0d, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x13, 0xad, 0x30, 0x18, 0x68, 0xa2, 0x15, 0x36, 0x1b, 0xde, 0xd6, 0xd9, 0xa0, 0x1d, 0x79, 0xc3, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x45, 0x2b, 0xee, 0xa0, 0x6d, 0xc8, 0xa8, 0x0d, 0x96, 0xd4, 0x2f, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x8b, 0x56, 0x48, 0x06, 0xba, 0x68, 0x85, 0xcd, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x45, 0x2b, 0x44, 0x03, 0x5d, 0xb4, 0x42, 0xbc, 0xe1, 0x8d, 0xbb, 0x0d, 0x2f, 0xdf, 0x1d, 0x0c, 0x85, 0xc5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xd1, 0x0a, 0xf9, 0x40, 0x17, 0xad, 0x30, 0x39, 0x38, 0xb2, 0xe4, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x8d, 0x56, 0xdc, 0x41, 0xdb, 0x90, 0x51, 0x1b, 0x9c, 0xd8, 0x6f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x46, 0x2b, 0x24, 0x03, 0x6d, 0xb4, 0x42, 0x7a, 0x70, 0x36, 0x74, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x47, 0x2b, 0xee, 0xa0, 0x6d, 0xc8, 0xa8, 0x0d, 0x4a, 0x7b, 0xcb, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xd1, 0x0a, 0xc9, 0x40, 0x1f, 0xad, 0x30, 0xdd, 0xf0, 0xe7, 0xd2, 0x06, 0xed, 0x6e, 0x54, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xa3, 0x15, 0xd2, 0x83, 0x76, 0xd4, 0x0e, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xd1, 0x0a, 0xf1, 0x40, 0x1f, 0xad, 0xb0, 0x38, 0x28, 0x11, 0xdf, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x47, 0x2b, 0x4c, 0x06, 0xfa, 0x68, 0x85, 0xe5, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x47, 0x2b, 0x6c, 0x06, 0xfa, 0x68, 0x85, 0xd9, 0x41, 0x99, 0xa5, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x3e, 0x5a, 0x61, 0x37, 0xd0, 0x47, 0x2b, 0x0c, 0x0f, 0xc2, 0x74, 0xac, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xd2, 0x8a, 0x3b, 0x68, 0x1b, 0x32, 0x6a, 0xc3, 0x57, 0x38, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x1a, 0x69, 0x85, 0xe4, 0xa0, 0x6d, 0xc8, 0xa8, 0x0d, 0x7f, 0xd1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x91, 0x56, 0x48, 0x07, 0x1a, 0x69, 0x85, 0xe1, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x46, 0x5a, 0x21, 0x1e, 0x68, 0xa4, 0x15, 0x26, 0x07, 0x65, 0x13, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x1a, 0x69, 0x85, 0xcd, 0x40, 0x23, 0xad, 0xb0, 0x3b, 0x38, 0x13, 0x8c, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x93, 0x56, 0xdc, 0x41, 0xdb, 0x90, 0x51, 0x1b, 0x04, 0xe9, 0xe9, 0x06, 0xed, 0x1e, 0x0b, 0xae, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x56, 0x5a, 0x21, 0x19, 0x68, 0xa5, 0x15, 0xe2, 0x83, 0xf5, 0xee, 0xcc, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x69, 0xc5, 0x0f, 0xb4, 0xd4, 0x0a, 0xc9, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0xed, 0x1e, 0x0b, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xa6, 0x15, 0x92, 0x81, 0x8e, 0x5a, 0xa1, 0x7c, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xa6, 0x15, 0xd2, 0x81, 0x6e, 0x5a, 0x61, 0xb6, 0x41, 0x31, 0x89, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x6e, 0x5a, 0x61, 0x30, 0xd0, 0x4d, 0x2b, 0x2c, 0x0e, 0x3f, 0xd4, 0x1c, 0x34, 0xd6, 0x73, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x76, 0x5a, 0x21, 0x1b, 0x68, 0xa7, 0x15, 0x56, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x3b, 0xad, 0x10, 0x0e, 0xb4, 0xd3, 0x0a, 0x8b, 0x83, 0x46, 0x5f, 0x0a, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x4e, 0x2b, 0x4c, 0x06, 0xda, 0x69, 0x85, 0xd1, 0x41, 0x52, 0x5a, 0x70, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xfa, 0x69, 0x85, 0xe4, 0xa0, 0x81, 0xdd, 0xc3, 0x0d, 0x0a, 0x43, 0xd5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xd3, 0x0a, 0xe9, 0x40, 0x3f, 0xad, 0x30, 0x39, 0x68, 0x35, 0xa9, 0x70, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x43, 0xad, 0x90, 0x1c, 0x34, 0xb0, 0x7b, 0xb8, 0xe1, 0x2b, 0x9c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x0d, 0xb5, 0x42, 0x7a, 0xd0, 0xc0, 0xee, 0xe1, 0x86, 0xbf, 0x68, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x50, 0x2b, 0x2c, 0x06, 0x1a, 0x6a, 0x85, 0xf1, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x86, 0x5a, 0x61, 0x32, 0xd0, 0x50, 0x2b, 0xcc, 0x0e, 0x42, 0xca, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x0d, 0xb5, 0xc2, 0x6e, 0xa0, 0xa1, 0x56, 0xd8, 0x1e, 0x34, 0x3a, 0x25, 0xd8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x8e, 0x5a, 0x21, 0x39, 0x68, 0x60, 0xf7, 0x70, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xa8, 0x15, 0xa2, 0x81, 0x8e, 0x5a, 0x21, 0x3f, 0x58, 0x62, 0xbf, 0xbd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x8e, 0x5a, 0x61, 0x30, 0xd0, 0x51, 0x2b, 0x74, 0x6f, 0xf8, 0x20, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x1d, 0xb5, 0xc2, 0x66, 0xa0, 0xa3, 0x56, 0x98, 0x6f, 0x50, 0x4c, 0x62, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xa3, 0x56, 0x98, 0x0d, 0x74, 0xd4, 0x0a, 0xbb, 0xc3, 0x0f, 0x35, 0x1b, 0xcf, 0x0f, 0x1a, 0xeb, 0x39, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x47, 0xad, 0xb0, 0x1f, 0xe8, 0xa8, 0x15, 0xda, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x8e, 0x5a, 0xa1, 0x60, 0xa0, 0xa3, 0x56, 0xa8, 0xda, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x6a, 0x85, 0x86, 0x81, 0x8e, 0x5a, 0xa1, 0xe6, 0xa0, 0xd1, 0x97, 0xc2, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xd4, 0x0a, 0x3d, 0x03, 0x1d, 0xb5, 0x42, 0xd3, 0x41, 0x52, 0x5a, 0x70, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xa8, 0x15, 0xba, 0x06, 0x3a, 0x6a, 0x85, 0xb2, 0x83, 0x82, 0x22, 0xb3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x1d, 0xb5, 0x42, 0xdd, 0x40, 0x47, 0xad, 0x50, 0xbd, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0x41, 0x63, 0x3d, 0x87, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x6a, 0x85, 0xd2, 0x81, 0x8e, 0x5a, 0xa1, 0x79, 0xc3, 0x25, 0xb5, 0x41, 0x4b, 0x1c, 0x88, 0x55, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xa9, 0x56, 0x48, 0x06, 0x9a, 0x6a, 0x85, 0xf8, 0xa0, 0x6d, 0x1c, 0xc1, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x5d, 0xb5, 0xe2, 0x07, 0x9a, 0x6b, 0x85, 0xae, 0x0d, 0x0a, 0x43, 0xd5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xd5, 0x0a, 0xd9, 0x40, 0x57, 0xad, 0x10, 0x1e, 0x14, 0x14, 0x99, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xda, 0x6a, 0xc5, 0x1f, 0x34, 0x15, 0x85, 0xb8, 0xc1, 0x39, 0x7f, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x6d, 0xb5, 0x42, 0x36, 0xd0, 0x56, 0x2b, 0x0c, 0x0e, 0x56, 0x35, 0x08, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xaf, 0x56, 0x48, 0x06, 0xfa, 0x6a, 0x85, 0xf1, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x57, 0x2b, 0x44, 0x03, 0x7d, 0xb5, 0xc2, 0x62, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xab, 0x15, 0xb2, 0x81, 0xbe, 0x5a, 0x21, 0x3e, 0x58, 0x1d, 0xd6, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xbe, 0x5a, 0x21, 0x1f, 0xe8, 0xab, 0x15, 0x06, 0x07, 0x05, 0x45, 0x66, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xab, 0x15, 0x26, 0x03, 0x7d, 0xb5, 0xc2, 0x72, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xab, 0x15, 0x36, 0x03, 0x7d, 0xb5, 0xc2, 0xec, 0x60, 0x75, 0x58, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xfa, 0x6a, 0x85, 0xdd, 0x40, 0x5f, 0xad, 0x30, 0x3c, 0x28, 0x28, 0x32, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x5f, 0xad, 0x30, 0x1d, 0xe8, 0xab, 0x15, 0xb6, 0x07, 0x05, 0x45, 0x66, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x1a, 0x6b, 0xc5, 0x1f, 0x34, 0x15, 0x85, 0xb8, 0xe1, 0x2b, 0x9c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x8d, 0xb5, 0x42, 0x76, 0xd0, 0x54, 0x14, 0xe2, 0x86, 0xbf, 0x68, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x58, 0x2b, 0xe4, 0x03, 0x8d, 0xb5, 0xc2, 0x74, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x63, 0xad, 0x30, 0x18, 0x68, 0xac, 0x15, 0x46, 0x07, 0x21, 0x65, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xc6, 0x5a, 0x61, 0x35, 0xd0, 0x58, 0x2b, 0x2c, 0x0f, 0xce, 0x04, 0xa3, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xac, 0x15, 0x7f, 0xd0, 0x54, 0x14, 0xe2, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0x8d, 0xf5, 0x1c, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xb3, 0x56, 0x18, 0x0c, 0x74, 0xd6, 0x0a, 0x8b, 0x83, 0x82, 0x22, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x6b, 0xad, 0xf8, 0x83, 0xa6, 0xa2, 0x10, 0x37, 0x28, 0x08, 0x66, 0x37, 0x68, 0xac, 0xe7, 0x70, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xad, 0xb5, 0xc2, 0x60, 0xa0, 0xb5, 0x56, 0x98, 0x1c, 0x84, 0xa7, 0xea, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xde, 0x5a, 0xf1, 0x07, 0x4d, 0x45, 0x21, 0x6e, 0x50, 0xf0, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xb7, 0x56, 0xc8, 0x06, 0x7a, 0x6b, 0x85, 0xd9, 0x06, 0xc5, 0x24, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x6b, 0x85, 0x78, 0xa0, 0xb7, 0x56, 0xc8, 0x0f, 0x3f, 0xd4, 0x6c, 0x1c, 0x3a, 0x68, 0xac, 0xe7, 0x70, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x73, 0xad, 0xf8, 0x83, 0xa6, 0xa2, 0x10, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xe6, 0x5a, 0x21, 0x18, 0x68, 0xae, 0x15, 0xd6, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x73, 0xad, 0x90, 0x0c, 0x34, 0xd7, 0x0a, 0xf1, 0xe1, 0x89, 0xbb, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xd7, 0x0a, 0xf9, 0x40, 0x73, 0xad, 0x30, 0xde, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x9a, 0x6b, 0x85, 0xc1, 0x40, 0x73, 0xad, 0xb0, 0x39, 0x28, 0x88, 0x96, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x5c, 0x2b, 0x8c, 0x06, 0x9a, 0x6b, 0x85, 0xd5, 0x41, 0x51, 0x29, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xe6, 0x5a, 0x61, 0x36, 0xd0, 0x5c, 0x2b, 0x6c, 0x37, 0x5c, 0x52, 0x1b, 0xb4, 0x49, 0x8d, 0x58, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xb9, 0x56, 0x98, 0x0f, 0x34, 0xd7, 0x0a, 0x55, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x34, 0xd6, 0x73, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xb9, 0x56, 0x28, 0x19, 0x68, 0xae, 0x15, 0x9a, 0x0e, 0x9a, 0x31, 0x42, 0xac, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x5e, 0x2b, 0x24, 0x03, 0xed, 0xb5, 0x42, 0x7c, 0xd0, 0xde, 0x8e, 0xe0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xfe, 0x5a, 0xf1, 0x03, 0x4d, 0xb6, 0x42, 0xc9, 0x86, 0x4f, 0x6c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x5f, 0x2b, 0x64, 0x03, 0xfd, 0xb5, 0xc2, 0x7c, 0xc3, 0xe7, 0x2e, 0x1b, 0xb4, 0x3f, 0xe5, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xbf, 0x56, 0xc8, 0x0f, 0x5a, 0xca, 0x48, 0xdc, 0xe0, 0x3c, 0xd8, 0xb1, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xbf, 0x56, 0x98, 0x0c, 0xf4, 0xd7, 0x0a, 0xeb, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xbf, 0x56, 0xd8, 0x0c, 0xf4, 0xd7, 0x0a, 0xbb, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0x72, 0xdd, 0x60, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xaf, 0x15, 0x86, 0x03, 0xfd, 0xb5, 0xc2, 0x78, 0xc3, 0xdb, 0x3a, 0x1b, 0xb4, 0xc2, 0x4d, 0x58, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x1a, 0x6c, 0xc5, 0x1f, 0xb4, 0x3c, 0x91, 0xb8, 0xe1, 0x13, 0x9b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xd8, 0x0a, 0xd9, 0x40, 0x83, 0xad, 0xb0, 0xdd, 0xf0, 0xb9, 0xcb, 0x80, 0x67, 0xf7, 0xc6, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xb0, 0x15, 0xf2, 0x83, 0xf6, 0x7a, 0x12, 0x37, 0x5c, 0x52, 0x1b, 0xb4, 0xdb, 0xe5, 0xb7, 0x06, 0x0d, 0x8c, 0x4c, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xb0, 0x15, 0x76, 0x03, 0x0d, 0xb6, 0xc2, 0xf4, 0xa0, 0x45, 0x9e, 0xc3, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xd8, 0x8a, 0x3f, 0x68, 0x79, 0x22, 0x71, 0xc3, 0x27, 0x36, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xb0, 0x15, 0xb2, 0x81, 0x0e, 0x5b, 0xa1, 0x6b, 0xc3, 0xe7, 0x2e, 0x03, 0xde, 0x58, 0xda, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xc3, 0x56, 0xc8, 0x0f, 0x1a, 0xb4, 0x4a, 0xdc, 0x60, 0x8d, 0x54, 0xd3, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x6c, 0x85, 0xc9, 0x40, 0x87, 0xad, 0x30, 0x3b, 0x38, 0x13, 0x8c, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xb0, 0x15, 0x76, 0x03, 0x1d, 0xb6, 0x42, 0xd5, 0x06, 0x0b, 0x42, 0x96, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x61, 0x2b, 0x4c, 0x07, 0x3a, 0x6c, 0x85, 0xf5, 0x86, 0xb7, 0x75, 0x36, 0x68, 0xf1, 0x27, 0xb1, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x1d, 0xb6, 0xc2, 0x7c, 0xa0, 0xc3, 0x56, 0x68, 0xda, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x6c, 0x85, 0xfd, 0x40, 0x87, 0xad, 0xd0, 0x70, 0xb0, 0x80, 0xfe, 0x77, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x1d, 0xb6, 0x42, 0xc5, 0x40, 0x87, 0xad, 0xd0, 0x71, 0x10, 0xb0, 0xac, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xb0, 0x15, 0x4a, 0x06, 0x3a, 0x6c, 0x85, 0x9a, 0x83, 0x65, 0x01, 0xc0, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xb0, 0x15, 0x7a, 0x06, 0x3a, 0x6c, 0x85, 0xa2, 0xc3, 0x63, 0x32, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xb1, 0x15, 0x7f, 0xd0, 0xf2, 0x44, 0xe2, 0x06, 0x8b, 0xca, 0x93, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x62, 0x2b, 0x64, 0x03, 0x2d, 0xb6, 0x42, 0x78, 0x50, 0x50, 0x64, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xc5, 0x56, 0xc8, 0x07, 0x5a, 0x6c, 0x85, 0xd1, 0xc1, 0x82, 0xf6, 0xf5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xd8, 0x0a, 0xc9, 0x40, 0x8f, 0xad, 0x30, 0xd9, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x6c, 0x85, 0x68, 0xa0, 0xc7, 0x56, 0xc8, 0x0e, 0x0a, 0x8a, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xd8, 0x0a, 0xe1, 0x40, 0x8f, 0xad, 0x90, 0x1e, 0x14, 0x14, 0x99, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xb1, 0x15, 0xe2, 0x81, 0x1e, 0x5b, 0x21, 0x3f, 0x28, 0x28, 0x32, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x63, 0x2b, 0x0c, 0x06, 0x7a, 0x6c, 0x85, 0xc5, 0x41, 0x41, 0x91, 0xd9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x26, 0x5b, 0xf1, 0x07, 0x2d, 0x4f, 0x24, 0x6e, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x4d, 0xb6, 0x42, 0x30, 0xd0, 0x64, 0x2b, 0xac, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x26, 0x5b, 0x21, 0x19, 0x68, 0xb2, 0x15, 0xe2, 0xc3, 0x13, 0x77, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xb2, 0x15, 0xf2, 0x81, 0x26, 0x5b, 0x61, 0x72, 0xb0, 0x2c, 0x92, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x4d, 0xb6, 0xc2, 0x66, 0xa0, 0xc9, 0x56, 0x98, 0x1d, 0xb4, 0x4c, 0x3c, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x26, 0x5b, 0x61, 0x37, 0xd0, 0x64, 0x2b, 0x4c, 0x0f, 0x56, 0x87, 0xb5, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xc9, 0x56, 0xd8, 0x0e, 0x34, 0xd9, 0x0a, 0xe3, 0x83, 0x82, 0x22, 0xb3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xd9, 0x0a, 0xf3, 0x81, 0x26, 0x5b, 0xa1, 0x61, 0xc3, 0xdb, 0x3a, 0x1b, 0xb4, 0x89, 0x95, 0xd8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x9a, 0x6c, 0x85, 0x8a, 0x81, 0x26, 0x5b, 0xa1, 0xe3, 0xa0, 0xa0, 0xc8, 0x6c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xd9, 0x0a, 0xc9, 0x40, 0x9b, 0xad, 0x10, 0x1f, 0x34, 0xf3, 0x23, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xcf, 0x56, 0xfc, 0x40, 0xb7, 0xad, 0x50, 0xb8, 0x41, 0x61, 0xa8, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x3e, 0x5b, 0x21, 0x1b, 0xe8, 0xb3, 0x15, 0xc2, 0x83, 0x82, 0x22, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xa3, 0xad, 0xf8, 0x83, 0xf6, 0xeb, 0x13, 0x37, 0x38, 0xe7, 0x2f, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xd1, 0x56, 0xc8, 0x06, 0x1a, 0x6d, 0x85, 0xc1, 0xc1, 0xaa, 0x06, 0xe1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xda, 0x0a, 0xc9, 0x40, 0xa7, 0xad, 0x50, 0xb5, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xda, 0x0a, 0xd1, 0x40, 0xa7, 0xad, 0xb0, 0xd8, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x6d, 0x85, 0x6c, 0xa0, 0xd3, 0x56, 0x88, 0x0f, 0x16, 0xfb, 0xdc, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xd3, 0x56, 0xc8, 0x07, 0x3a, 0x6d, 0x85, 0xc1, 0x41, 0x41, 0x91, 0xd9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x6d, 0x85, 0xc9, 0x40, 0xa7, 0xad, 0xb0, 0xde, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x6d, 0x85, 0xcd, 0x40, 0xa7, 0xad, 0x30, 0x3b, 0x58, 0x14, 0x4d, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x4e, 0x5b, 0x61, 0x37, 0xd0, 0x69, 0x2b, 0x4c, 0x0f, 0x96, 0x5d, 0xc2, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xd3, 0x56, 0xd8, 0x0e, 0x74, 0xda, 0x0a, 0xe3, 0x83, 0x82, 0x22, 0xb3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xda, 0x0a, 0xf3, 0x81, 0x4e, 0x5b, 0xa1, 0x69, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xb4, 0x15, 0xf6, 0x03, 0x9d, 0xb6, 0x42, 0xc5, 0xc1, 0xb2, 0x4b, 0xb8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xda, 0x0a, 0x1d, 0x03, 0x9d, 0xb6, 0x42, 0xcd, 0xc1, 0x1a, 0x1f, 0xda, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xda, 0x0a, 0x3d, 0x03, 0x9d, 0xb6, 0x42, 0xd1, 0x41, 0x41, 0x91, 0x59, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x6d, 0xc5, 0x1f, 0xb4, 0x5f, 0x9f, 0xb8, 0xe1, 0x2b, 0x9c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xad, 0xb6, 0x42, 0x76, 0xd0, 0x7e, 0x7d, 0xe2, 0x86, 0xbf, 0x68, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x6a, 0x2b, 0xe4, 0x03, 0xad, 0xb6, 0xc2, 0x74, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xab, 0xad, 0x30, 0x18, 0x68, 0xb5, 0x15, 0x46, 0x07, 0x21, 0x65, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x56, 0x5b, 0x61, 0x35, 0xd0, 0x6a, 0x2b, 0x2c, 0x0f, 0xce, 0x04, 0xa3, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xb5, 0x15, 0x7f, 0xd0, 0x7e, 0x7d, 0xe2, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0x8d, 0xf5, 0x1c, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xd7, 0x56, 0x18, 0x0c, 0xf4, 0xda, 0x0a, 0x8b, 0x83, 0x82, 0x22, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xb3, 0xad, 0xf8, 0x83, 0xf6, 0xeb, 0x13, 0x37, 0x28, 0x08, 0x66, 0x37, 0x68, 0xac, 0xe7, 0x70, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xcd, 0xb6, 0xc2, 0x60, 0xa0, 0xd9, 0x56, 0x98, 0x1c, 0x84, 0xa7, 0xea, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x6e, 0x5b, 0xf1, 0x07, 0xed, 0xd7, 0x27, 0x6e, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xdd, 0xb6, 0x42, 0x30, 0xd0, 0x6d, 0x2b, 0x54, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xdd, 0xb6, 0x42, 0x32, 0xd0, 0x6d, 0x2b, 0xc4, 0x87, 0x27, 0xee, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x6d, 0x2b, 0xe4, 0x03, 0xdd, 0xb6, 0x42, 0xc3, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x6d, 0x2b, 0x0c, 0x06, 0xba, 0x6d, 0x85, 0xd1, 0xc1, 0x32, 0xec, 0xb7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xdb, 0x0a, 0xab, 0x81, 0x6e, 0x5b, 0xa1, 0x60, 0x83, 0x35, 0x52, 0x4d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xb6, 0x15, 0x86, 0x03, 0xdd, 0xb6, 0xc2, 0xf2, 0xf0, 0x43, 0xcd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x6e, 0x5b, 0x61, 0x3a, 0xd0, 0x6d, 0x2b, 0xec, 0x0f, 0x9a, 0xdc, 0x47, 0xac, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xdb, 0x0a, 0x1d, 0x03, 0xdd, 0xb6, 0x42, 0xdf, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0x8d, 0xf5, 0x1c, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xb6, 0x15, 0x9a, 0x06, 0xba, 0x6d, 0x85, 0xba, 0x83, 0x66, 0x8c, 0x10, 0x6b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xdb, 0x0a, 0xc9, 0x40, 0xbf, 0xad, 0x10, 0x1f, 0x34, 0x1d, 0x24, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xe1, 0x56, 0xfc, 0x40, 0xdb, 0xad, 0xd0, 0xbb, 0x41, 0x61, 0xa8, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x86, 0x5b, 0x21, 0x1b, 0x68, 0xb8, 0x15, 0xc2, 0x83, 0x82, 0x22, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xc7, 0xad, 0xf8, 0x83, 0x76, 0x84, 0x15, 0x37, 0x38, 0xe7, 0x2f, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xe3, 0x56, 0xc8, 0x06, 0x3a, 0x6e, 0x85, 0xc1, 0xc1, 0xaa, 0x06, 0xe1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xdc, 0x0a, 0xc9, 0x40, 0xcb, 0xad, 0x50, 0xb5, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xdc, 0x0a, 0xd1, 0x40, 0xcb, 0xad, 0xb0, 0xd8, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x6e, 0x85, 0x6c, 0xa0, 0xe5, 0x56, 0x88, 0x0f, 0x16, 0xfb, 0xdc, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xe5, 0x56, 0xc8, 0x07, 0x5a, 0x6e, 0x85, 0xc1, 0x41, 0x41, 0x91, 0xd9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x6e, 0x85, 0xc9, 0x40, 0xcb, 0xad, 0xb0, 0xde, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x6e, 0x85, 0xcd, 0x40, 0xcb, 0xad, 0x30, 0x3b, 0x58, 0x14, 0x4d, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x96, 0x5b, 0x61, 0x37, 0xd0, 0x72, 0x2b, 0x4c, 0x0f, 0x16, 0x45, 0xd3, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xe5, 0x56, 0xd8, 0x0e, 0xb4, 0xdc, 0x0a, 0xe3, 0x83, 0x82, 0x22, 0xb3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xdc, 0x0a, 0xf3, 0x81, 0x96, 0x5b, 0xa1, 0x69, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xb9, 0x15, 0xf6, 0x03, 0x2d, 0xb7, 0x42, 0xc5, 0xc1, 0x1a, 0x1f, 0xda, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xdc, 0x0a, 0x1d, 0x03, 0x2d, 0xb7, 0x42, 0xcd, 0xc1, 0x1a, 0x1f, 0xda, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xdc, 0x0a, 0x3d, 0x03, 0x2d, 0xb7, 0x42, 0xd1, 0x41, 0x41, 0x91, 0x59, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x6e, 0xc5, 0x1f, 0xb4, 0x23, 0xac, 0xb8, 0xe1, 0x2b, 0x9c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x3d, 0xb7, 0x42, 0x76, 0xd0, 0x8e, 0xb0, 0xe2, 0x86, 0xbf, 0x68, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x73, 0x2b, 0xe4, 0x03, 0x3d, 0xb7, 0xc2, 0x74, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xcf, 0xad, 0x30, 0x18, 0xe8, 0xb9, 0x15, 0x46, 0x07, 0x21, 0x65, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x9e, 0x5b, 0x61, 0x35, 0xd0, 0x73, 0x2b, 0x2c, 0x0f, 0xce, 0x04, 0xa3, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xba, 0x15, 0x7f, 0xd0, 0x8e, 0xb0, 0xe2, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0x8d, 0xf5, 0x1c, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xe9, 0x56, 0x18, 0x0c, 0x34, 0xdd, 0x0a, 0x8b, 0x83, 0x82, 0x22, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xd7, 0xad, 0xf8, 0x83, 0x76, 0x84, 0x15, 0x37, 0x28, 0x08, 0x66, 0x37, 0x68, 0xac, 0xe7, 0x70, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x5d, 0xb7, 0xc2, 0x60, 0xa0, 0xeb, 0x56, 0x98, 0x1c, 0x84, 0xa7, 0xea, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xb6, 0x5b, 0xf1, 0x07, 0xed, 0x08, 0x2b, 0x6e, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x6d, 0xb7, 0x42, 0x30, 0xd0, 0x76, 0x2b, 0x34, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x6d, 0xb7, 0x42, 0x32, 0xd0, 0x76, 0x2b, 0xa4, 0x07, 0x67, 0x43, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xdd, 0x0a, 0xf1, 0x40, 0xdb, 0xad, 0x50, 0xb4, 0xe1, 0x92, 0xda, 0xe0, 0xb0, 0xdf, 0xb1, 0x06, 0xed, 0x1e, 0x0b, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xbb, 0x15, 0x76, 0x03, 0x6d, 0xb7, 0xc2, 0xf8, 0xa0, 0x61, 0x5b, 0xc1, 0x35, 0x68, 0xac, 0xe7, 0x70, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xdb, 0xad, 0x50, 0x31, 0xd0, 0x76, 0x2b, 0xf4, 0x1c, 0x34, 0xb9, 0x8f, 0x58, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xbb, 0x15, 0xaa, 0x06, 0xda, 0x6e, 0x85, 0xda, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x1a, 0xeb, 0x39, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x76, 0x2b, 0x14, 0x0e, 0xb4, 0xdd, 0x0a, 0xad, 0x07, 0xcd, 0x18, 0x21, 0xd6, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xbc, 0x15, 0x92, 0x81, 0xc6, 0x5b, 0x21, 0x3e, 0x68, 0x91, 0x48, 0x70, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xe7, 0xad, 0xf8, 0x81, 0xce, 0x5b, 0xa1, 0x6b, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xbc, 0x15, 0x82, 0x81, 0xce, 0x5b, 0x21, 0x39, 0x28, 0x28, 0x32, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x79, 0x2b, 0x44, 0x03, 0x9d, 0xb7, 0x42, 0x7e, 0x78, 0xe2, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x9d, 0xb7, 0xc2, 0x60, 0xa0, 0xf3, 0x56, 0xa8, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x6f, 0x85, 0xc5, 0x40, 0xe7, 0xad, 0xb0, 0xda, 0xf0, 0xb6, 0xce, 0x06, 0xcd, 0x05, 0x1a, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xce, 0x5b, 0x61, 0x36, 0xd0, 0x79, 0x2b, 0x14, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x9d, 0xb7, 0xc2, 0x6e, 0xa0, 0xf3, 0x56, 0xd8, 0x1e, 0x24, 0xc0, 0x0e, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xf3, 0x56, 0x18, 0x0f, 0x74, 0xde, 0x0a, 0xfb, 0x83, 0x16, 0x79, 0x0e, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xe7, 0xad, 0xd0, 0x30, 0xd0, 0x79, 0x2b, 0x94, 0x1c, 0x2c, 0x88, 0x9b, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xe7, 0xad, 0xd0, 0x32, 0xd0, 0x79, 0x2b, 0x34, 0x6d, 0x78, 0x16, 0x6f, 0xf0, 0xbd, 0x5a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xbd, 0xb7, 0x42, 0x32, 0xd0, 0x7b, 0x2b, 0xc4, 0x07, 0xeb, 0x45, 0x9a, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xdf, 0x8a, 0x1f, 0x68, 0xbe, 0x15, 0x82, 0x83, 0x82, 0x22, 0x73, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xdf, 0x0a, 0xc9, 0x40, 0xfb, 0xad, 0x30, 0xd9, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xda, 0x6f, 0x85, 0x68, 0xa0, 0xfd, 0x56, 0xc8, 0x0f, 0x5a, 0x49, 0x12, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xfb, 0xad, 0x30, 0x18, 0x68, 0xbf, 0x15, 0x16, 0x07, 0x61, 0x3a, 0xd6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xfe, 0x5b, 0xf1, 0x03, 0x8d, 0xb8, 0x42, 0xb2, 0x41, 0xb1, 0xa3, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xfe, 0x5b, 0x21, 0x1b, 0xe8, 0xbf, 0x15, 0x46, 0x1b, 0x14, 0x93, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xbf, 0x15, 0xe2, 0x81, 0xfe, 0x5b, 0x21, 0x3f, 0xfc, 0x50, 0x73, 0xd0, 0x58, 0xcf, 0xe1, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x1a, 0x70, 0x85, 0x64, 0xa0, 0x01, 0x57, 0x88, 0x0e, 0x0a, 0x8a, 0xcc, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x1d, 0xb8, 0xe2, 0x0f, 0x5a, 0xe0, 0x5e, 0xdc, 0xe0, 0x9c, 0xbf, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x0e, 0x5c, 0x21, 0x1b, 0xe8, 0xc0, 0x15, 0xc2, 0x83, 0x82, 0x22, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x2d, 0xb8, 0x42, 0x32, 0xd0, 0x82, 0x2b, 0xc4, 0x87, 0x27, 0xee, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xe0, 0x8a, 0x3f, 0x68, 0x81, 0x7b, 0x71, 0xc3, 0x27, 0x36, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xc1, 0x15, 0xd2, 0x81, 0x1e, 0x5c, 0xe1, 0xc6, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x83, 0x2b, 0xc4, 0x03, 0x3d, 0xb8, 0xc2, 0xe4, 0x60, 0xc1, 0x0e, 0xfa, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x70, 0x85, 0xcd, 0x40, 0x0f, 0xae, 0x30, 0x3d, 0x68, 0xb4, 0x5e, 0x70, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x3d, 0xb8, 0xc2, 0x76, 0xa0, 0x07, 0x57, 0x78, 0xb1, 0xc1, 0x0a, 0xa1, 0xa6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xe0, 0x0a, 0xf3, 0x81, 0x1e, 0x5c, 0xa1, 0xe2, 0x60, 0x5d, 0xc1, 0xe8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x70, 0x85, 0x8e, 0x81, 0x1e, 0x5c, 0xa1, 0x79, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xc1, 0x15, 0x4a, 0x06, 0x7a, 0x70, 0x85, 0xa2, 0x83, 0x65, 0x95, 0xa0, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xc1, 0x15, 0x9a, 0x06, 0x7a, 0x70, 0x85, 0xb6, 0x83, 0xe5, 0xc8, 0xc2, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xc1, 0x15, 0xea, 0x06, 0x7a, 0x70, 0x85, 0xe2, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x07, 0x57, 0xe8, 0x1b, 0xe8, 0xc1, 0x15, 0x3a, 0x0f, 0x16, 0x2a, 0x86, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x07, 0x57, 0x28, 0x1d, 0xe8, 0xc1, 0x15, 0x7a, 0x0f, 0x16, 0x12, 0x86, 0xd6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x70, 0x85, 0xea, 0x81, 0x1e, 0x5c, 0xe1, 0xc4, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x83, 0x2b, 0x74, 0x0f, 0xf4, 0xe0, 0x0a, 0xfd, 0x07, 0x0b, 0x15, 0x43, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x83, 0x2b, 0x1c, 0x18, 0xe8, 0xc1, 0x15, 0x3e, 0x1c, 0xac, 0x7a, 0x0f, 0xad, 0x36, 0x38, 0x39, 0xc8, 0x6d, 0xf8, 0x72, 0x72, 0x0d, 0x4a, 0x09, 0xf1, 0x8d, 0xe7, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x9a, 0x70, 0x85, 0x6c, 0xa0, 0x09, 0x57, 0xa8, 0xd9, 0xa0, 0x2c, 0x79, 0xdf, 0x60, 0x0d, 0x45, 0xde, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x9a, 0x70, 0x85, 0xc9, 0x40, 0x13, 0xae, 0x30, 0x3a, 0x58, 0x78, 0x7a, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x26, 0x5c, 0x61, 0x35, 0xd0, 0x84, 0x2b, 0xb4, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x4d, 0xb8, 0xc2, 0x6c, 0xa0, 0x09, 0x57, 0x18, 0x1e, 0x24, 0xa5, 0x05, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x09, 0x57, 0x58, 0x0e, 0x34, 0xe1, 0x0a, 0x05, 0x07, 0x8d, 0xd6, 0x0b, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x09, 0x57, 0x68, 0x18, 0x68, 0xc2, 0x15, 0x4a, 0x0e, 0x5a, 0xe4, 0x39, 0xac, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x85, 0x2b, 0x24, 0x03, 0x5d, 0xb8, 0x42, 0x76, 0x90, 0x32, 0x18, 0xbc, 0x41, 0x29, 0x21, 0xbe, 0xf1, 0x7c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x17, 0xae, 0x90, 0x0f, 0x74, 0xe1, 0x0a, 0x35, 0x1b, 0x94, 0x25, 0xef, 0x1b, 0xac, 0xa1, 0xc8, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x17, 0xae, 0x30, 0x1b, 0xe8, 0xc2, 0x15, 0x86, 0x07, 0x0b, 0x4f, 0xcf, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x85, 0x2b, 0x2c, 0x07, 0xba, 0x70, 0x85, 0x96, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x0b, 0x57, 0x98, 0x0e, 0x74, 0xe1, 0x0a, 0xe3, 0x83, 0xa4, 0xb4, 0xe0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xe1, 0x0a, 0xeb, 0x81, 0x2e, 0x5c, 0xa1, 0xe0, 0x20, 0x11, 0x2e, 0x78, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x5d, 0xb8, 0x42, 0xc3, 0x40, 0x17, 0xae, 0x50, 0x72, 0xd0, 0x22, 0xcf, 0x61, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x36, 0x5c, 0x21, 0x19, 0x68, 0xc3, 0x15, 0xb2, 0x83, 0xd3, 0x8f, 0xeb, 0x06, 0xa5, 0x84, 0xf8, 0xc6, 0xf3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x6d, 0xb8, 0x42, 0x3e, 0xd0, 0x86, 0x2b, 0x14, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x6d, 0xb8, 0xc2, 0x60, 0xa0, 0x0d, 0x57, 0x18, 0x1d, 0x34, 0xde, 0xb9, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x36, 0x5c, 0x61, 0x35, 0xd0, 0x86, 0x2b, 0x14, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x6d, 0xb8, 0xc2, 0x6c, 0xa0, 0x0d, 0x57, 0x58, 0x1e, 0x14, 0x44, 0xcb, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xc3, 0x15, 0xa6, 0x03, 0x6d, 0xb8, 0xc2, 0xf6, 0xa0, 0xa8, 0x14, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x1b, 0xae, 0x30, 0x1e, 0x68, 0xc3, 0x15, 0xf6, 0x07, 0x2d, 0xf2, 0x1c, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x36, 0x5c, 0xa1, 0x61, 0xa0, 0x0d, 0x57, 0x68, 0x39, 0x58, 0x54, 0x01, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x36, 0x5c, 0xa1, 0x66, 0xa0, 0x0d, 0x57, 0xe8, 0x39, 0x28, 0x28, 0x32, 0x5b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x7d, 0xb8, 0x42, 0x32, 0xd0, 0x87, 0x2b, 0xa4, 0x07, 0xeb, 0x23, 0xd2, 0x37, 0x28, 0x25, 0xc4, 0x37, 0x9e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xc3, 0x15, 0xf2, 0x81, 0x3e, 0x5c, 0xa1, 0x75, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xc3, 0x15, 0x06, 0x03, 0x7d, 0xb8, 0xc2, 0xe6, 0x60, 0xbd, 0xf4, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xfa, 0x70, 0x85, 0xd1, 0x40, 0x1f, 0xae, 0x50, 0xba, 0x41, 0xb1, 0xa3, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x3e, 0x5c, 0x61, 0x37, 0xd0, 0x87, 0x2b, 0xec, 0x37, 0xfc, 0x9b, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x3e, 0x5c, 0x61, 0x39, 0xd0, 0x87, 0x2b, 0x4c, 0x0f, 0x0f, 0xde, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xc3, 0x15, 0xb6, 0x03, 0x7d, 0xb8, 0xc2, 0xfc, 0xa0, 0x45, 0x9e, 0xc3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xe1, 0x0a, 0x05, 0x03, 0x7d, 0xb8, 0x42, 0xd7, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x87, 0x2b, 0x34, 0x0c, 0xf4, 0xe1, 0x0a, 0x25, 0x07, 0x05, 0xd1, 0xf2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xfa, 0x70, 0x85, 0x96, 0x81, 0x3e, 0x5c, 0xa1, 0xe6, 0xa0, 0xa8, 0x14, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x1f, 0xae, 0xd0, 0x33, 0xd0, 0x87, 0x2b, 0x54, 0x1d, 0xb4, 0xc8, 0x73, 0xd8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x3e, 0x5c, 0xa1, 0x6c, 0xa0, 0x0f, 0x57, 0xe8, 0xdc, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xfa, 0x70, 0x85, 0xb6, 0x81, 0x3e, 0x5c, 0xa1, 0xf0, 0x60, 0xed, 0x39, 0xed, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xfa, 0x70, 0x85, 0xc6, 0x81, 0x3e, 0x5c, 0xa1, 0xf2, 0xa0, 0xa0, 0xc8, 0xac, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x2b, 0xae, 0x90, 0x0c, 0xb4, 0xe2, 0x0a, 0x93, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x15, 0x57, 0x88, 0x06, 0x5a, 0x71, 0x85, 0xfc, 0x60, 0x35, 0x12, 0xf7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x71, 0x85, 0xc1, 0x40, 0x2b, 0xae, 0xb0, 0x38, 0x08, 0xd3, 0xb1, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xe4, 0x8a, 0x1f, 0x68, 0xcb, 0x15, 0x56, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xd0, 0xf4, 0xe3, 0x87, 0x42, 0x56, 0xe6, 0x06, 0xe2, 0x07, 0xb2, 0xe5, 0x07, 0x52, 0xe7, 0x42, 0x56, 0xe6, 0x06, 0xe2, 0xd7, 0x95, 0xda, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xda, 0x72, 0x85, 0x60, 0xa0, 0x2d, 0x57, 0x48, 0x0e, 0x0a, 0x8a, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xe5, 0x0a, 0xd1, 0x40, 0x5b, 0xae, 0x30, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xda, 0x72, 0x85, 0x6c, 0xa0, 0x2d, 0x57, 0xc8, 0x0f, 0x1a, 0x60, 0x49, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x5b, 0xae, 0x30, 0x18, 0x68, 0xcb, 0x15, 0x36, 0x07, 0x47, 0x96, 0xbc, 0x5a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x8d, 0xb9, 0x42, 0x32, 0xd0, 0x98, 0x2b, 0x4c, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xc6, 0x5c, 0x21, 0x1a, 0x68, 0xcc, 0x15, 0xf2, 0x83, 0xa5, 0x61, 0xdc, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xcc, 0x15, 0x06, 0x03, 0x8d, 0xb9, 0xc2, 0xe2, 0x20, 0x4c, 0xc7, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x99, 0x2b, 0x7e, 0xa0, 0x39, 0x57, 0xe8, 0xdf, 0xf0, 0x89, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x73, 0x85, 0x6c, 0xa0, 0x33, 0x57, 0xd8, 0x6f, 0xf8, 0xdc, 0x65, 0x83, 0x16, 0x13, 0xfb, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xe6, 0x0a, 0xf9, 0x41, 0xb3, 0x78, 0x8d, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0xb4, 0x7b, 0x2c, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x33, 0x57, 0xd8, 0x0d, 0x74, 0xe6, 0x0a, 0xf3, 0x83, 0xd6, 0xf3, 0x07, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x9a, 0x2b, 0xfe, 0xa0, 0x99, 0xb9, 0xc6, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x9a, 0xd6, 0xec, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x6f, 0xae, 0x90, 0x0c, 0xf4, 0xe6, 0x0a, 0xd1, 0x41, 0x41, 0x91, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x39, 0x57, 0xfc, 0x41, 0x33, 0x73, 0x8d, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x73, 0xae, 0x10, 0x0c, 0x34, 0xe7, 0x0a, 0xc9, 0x41, 0x41, 0x91, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xe6, 0x5c, 0x21, 0x1a, 0x68, 0xce, 0x15, 0xf2, 0x83, 0x05, 0xed, 0xeb, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xce, 0x15, 0x06, 0x03, 0xcd, 0xb9, 0xc2, 0x7e, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xce, 0x15, 0x16, 0x03, 0xcd, 0xb9, 0xc2, 0x70, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xce, 0x15, 0x26, 0x03, 0xcd, 0xb9, 0xc2, 0xea, 0x60, 0xe5, 0x29, 0xed, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x9a, 0x73, 0x85, 0xd9, 0x40, 0x73, 0xae, 0xb0, 0x3b, 0x28, 0x28, 0x32, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x73, 0xae, 0xb0, 0x1c, 0x68, 0xce, 0x15, 0xa6, 0x07, 0x05, 0x45, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x9a, 0x73, 0x85, 0xed, 0x40, 0x73, 0xae, 0x30, 0x3e, 0x28, 0x28, 0x32, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x9c, 0x2b, 0xac, 0x07, 0x9a, 0x73, 0x85, 0xf9, 0x41, 0x41, 0x91, 0xd9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x9a, 0x73, 0x85, 0x82, 0x81, 0xe6, 0x5c, 0xa1, 0x76, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xce, 0x15, 0x1a, 0x06, 0x9a, 0x73, 0x85, 0x9a, 0xc3, 0x13, 0x77, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xce, 0x15, 0x7a, 0x06, 0x9a, 0x73, 0x85, 0xd6, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x39, 0x57, 0x28, 0x1a, 0x68, 0xce, 0x15, 0xca, 0x0e, 0x96, 0x61, 0xbf, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x39, 0x57, 0x68, 0x1b, 0x68, 0xce, 0x15, 0x4a, 0x0f, 0x1a, 0xad, 0x17, 0xac, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xe7, 0x0a, 0xbd, 0x03, 0xcd, 0xb9, 0x42, 0xf9, 0x86, 0xb7, 0x75, 0x06, 0xaf, 0x0f, 0x9a, 0xd6, 0xec, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x73, 0xae, 0xd0, 0x3e, 0xd0, 0x9c, 0x2b, 0xd4, 0x1f, 0x14, 0x14, 0x99, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xf6, 0x5c, 0x21, 0x19, 0x68, 0xcf, 0x15, 0x26, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x7b, 0xae, 0x10, 0x0d, 0xb4, 0xe7, 0x0a, 0xf9, 0x41, 0xfb, 0x5a, 0x82, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xcf, 0x15, 0x06, 0x03, 0xed, 0xb9, 0xc2, 0xe2, 0x20, 0x4c, 0xc7, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x9f, 0x2b, 0x7e, 0xa0, 0x57, 0x57, 0x98, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xfd, 0xb9, 0x42, 0x36, 0xd0, 0x9f, 0x2b, 0x6c, 0x36, 0xfc, 0x9b, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xfe, 0x5c, 0x21, 0x1d, 0xe8, 0xcf, 0x15, 0xe2, 0x83, 0x82, 0x22, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x7f, 0xae, 0x90, 0x0f, 0xf4, 0xe7, 0x0a, 0x93, 0x83, 0x16, 0x79, 0x0e, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xa0, 0x2b, 0x24, 0x03, 0x0d, 0xba, 0xc2, 0x70, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xd0, 0x15, 0xa2, 0x81, 0x06, 0x5d, 0x21, 0x3b, 0x28, 0x28, 0x32, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xa0, 0x2b, 0x84, 0x03, 0x0d, 0xba, 0xc2, 0xe2, 0xf0, 0xc4, 0xdd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x1a, 0x74, 0x85, 0xc9, 0x40, 0x83, 0xae, 0xb0, 0x3a, 0x58, 0xb7, 0x0e, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x06, 0x5d, 0x61, 0x36, 0xd0, 0xa0, 0x2b, 0xec, 0x0e, 0x0a, 0x8a, 0xcc, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xe8, 0x8a, 0x3f, 0x68, 0x2e, 0xc1, 0x71, 0x83, 0xa3, 0x0d, 0xdf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x74, 0x85, 0x6c, 0xa0, 0x47, 0x57, 0x28, 0xde, 0xa0, 0x84, 0xc7, 0xdc, 0x60, 0x15, 0x33, 0xea, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x74, 0x85, 0x74, 0xa0, 0x45, 0x57, 0x88, 0x0f, 0x0a, 0x8a, 0xcc, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x3d, 0xba, 0x42, 0x76, 0xd0, 0x2c, 0x90, 0xe3, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xa3, 0x2b, 0x84, 0x03, 0x3d, 0xba, 0x42, 0x7a, 0x50, 0x50, 0x64, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x47, 0x57, 0x88, 0x07, 0x7a, 0x74, 0x85, 0xcd, 0xc1, 0xaa, 0x06, 0xe1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xe8, 0x0a, 0xa3, 0x81, 0x1e, 0x5d, 0xa1, 0x71, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xd1, 0x15, 0x56, 0x03, 0x3d, 0xba, 0xc2, 0x78, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xd1, 0x15, 0x66, 0x03, 0x3d, 0xba, 0xc2, 0xf2, 0x60, 0xb1, 0xcf, 0xdd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x74, 0x85, 0xe9, 0x40, 0x8f, 0xae, 0xb0, 0x3d, 0x28, 0x28, 0x32, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x8f, 0xae, 0xb0, 0x1e, 0xe8, 0xd1, 0x15, 0x8a, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x1e, 0x5d, 0x61, 0x3e, 0xd0, 0xa3, 0x2b, 0x34, 0x1c, 0xac, 0x5b, 0x87, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x8f, 0xae, 0x50, 0x31, 0xd0, 0xa3, 0x2b, 0xb4, 0x1c, 0x2c, 0x9d, 0xa0, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x8f, 0xae, 0x50, 0x33, 0xd0, 0xa3, 0x2b, 0xf4, 0x1c, 0x14, 0x14, 0x99, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x47, 0x57, 0x68, 0x1a, 0xe8, 0xd1, 0x15, 0x0a, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x1e, 0x5d, 0xa1, 0x6a, 0xa0, 0x47, 0x57, 0x68, 0x3b, 0x58, 0xa4, 0x39, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x1e, 0x5d, 0xa1, 0x6e, 0xa0, 0x47, 0x57, 0xe8, 0x3b, 0x28, 0x28, 0x32, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x3d, 0xba, 0x42, 0xe5, 0x40, 0x8f, 0xae, 0xd0, 0xbb, 0xe1, 0x6d, 0x9d, 0xc1, 0xeb, 0x83, 0x55, 0xcc, 0xa8, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xd2, 0x15, 0x7f, 0xd0, 0x5c, 0x82, 0xe3, 0x86, 0xcf, 0x5d, 0x36, 0x58, 0xc7, 0x8c, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x4b, 0x57, 0xfc, 0x41, 0x73, 0x09, 0x8e, 0x1b, 0xbe, 0xc2, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xa5, 0x2b, 0x64, 0x07, 0xcd, 0x25, 0x38, 0x6e, 0xf8, 0x8b, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x5d, 0xba, 0x42, 0x3e, 0xd0, 0xa5, 0x2b, 0x34, 0x6c, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xd2, 0x15, 0x06, 0x03, 0x5d, 0xba, 0xc2, 0xe8, 0xa0, 0x6c, 0xc2, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x97, 0xae, 0xb0, 0x1a, 0xe8, 0xd2, 0x15, 0x0a, 0x36, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xe9, 0x0a, 0xb3, 0x81, 0x2e, 0x5d, 0x61, 0x7a, 0x10, 0x52, 0x26, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xd2, 0x15, 0xb6, 0x03, 0x5d, 0xba, 0xc2, 0xfe, 0xe0, 0x4c, 0x30, 0x5a, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xda, 0x74, 0xc5, 0x1f, 0x34, 0x97, 0xe0, 0xb8, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xe9, 0x0a, 0xd9, 0x40, 0x9b, 0xae, 0x30, 0xda, 0xa0, 0x98, 0xc4, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x9b, 0xae, 0x10, 0x0f, 0xb4, 0xe9, 0x0a, 0xf9, 0xe1, 0x87, 0x9a, 0x83, 0xc6, 0x7a, 0x0e, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xa7, 0x2b, 0x24, 0x03, 0x7d, 0xba, 0xc2, 0x7a, 0x83, 0x62, 0x47, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x7d, 0xba, 0x42, 0x38, 0xd0, 0xa7, 0x2b, 0x8c, 0x36, 0xfc, 0x9b, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x3e, 0x5d, 0x21, 0x1e, 0xe8, 0xd3, 0x15, 0xf2, 0x83, 0x82, 0x22, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x9f, 0xae, 0x30, 0x18, 0xe8, 0xd3, 0x15, 0x36, 0x07, 0x2d, 0xf2, 0x1c, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x4f, 0x57, 0x58, 0x0d, 0xf4, 0xe9, 0x0a, 0xb3, 0x83, 0x82, 0x22, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x9f, 0xae, 0xb0, 0x1b, 0xe8, 0xd3, 0x15, 0xc6, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x9f, 0xae, 0x30, 0x1c, 0xe8, 0xd3, 0x15, 0x96, 0x07, 0x05, 0x45, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xfa, 0x74, 0x85, 0xe9, 0x40, 0x9f, 0xae, 0xb0, 0x3d, 0x28, 0x28, 0x32, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xa8, 0x2b, 0xfe, 0xa0, 0xb9, 0x04, 0xc7, 0x0d, 0x9f, 0xd8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x51, 0x57, 0xc8, 0x06, 0x1a, 0x75, 0x85, 0xfa, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x51, 0x57, 0x08, 0x07, 0x1a, 0x75, 0x85, 0xb2, 0x0d, 0x9f, 0xbb, 0x6c, 0xb0, 0x90, 0x1b, 0x7e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xa3, 0xae, 0x30, 0x38, 0x68, 0x0a, 0xe3, 0x71, 0xc3, 0x25, 0xb5, 0xc1, 0x61, 0xbf, 0x63, 0x0d, 0xda, 0x3d, 0x16, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xa8, 0x2b, 0x2c, 0x07, 0x1a, 0x75, 0x85, 0x82, 0x83, 0xd6, 0xf3, 0x07, 0xd7, 0xa0, 0xb1, 0x9e, 0xc3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x8d, 0xba, 0x42, 0xcd, 0x40, 0xa3, 0xae, 0xd0, 0x75, 0xd0, 0xe4, 0x3e, 0x62, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xd4, 0x15, 0xda, 0x06, 0x1a, 0x75, 0x85, 0xf6, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x61, 0x66, 0xf4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x46, 0x5d, 0xa1, 0xf1, 0xa0, 0x89, 0x99, 0xc7, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x1a, 0xeb, 0x39, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xa8, 0x2b, 0xf4, 0x0e, 0x34, 0xea, 0x0a, 0xe5, 0x07, 0xcd, 0x18, 0x21, 0xd6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x4e, 0x5d, 0xf1, 0x07, 0xcd, 0x25, 0x38, 0x6e, 0x50, 0xec, 0x68, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x53, 0x57, 0xc8, 0x06, 0x3a, 0x75, 0x85, 0x86, 0x0d, 0x8f, 0xb0, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x53, 0x57, 0x48, 0x07, 0x3a, 0x75, 0x85, 0xd9, 0x06, 0xc5, 0x24, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x75, 0x85, 0xc1, 0x40, 0xa7, 0xae, 0xb0, 0x38, 0x28, 0x52, 0x31, 0x0f, 0x96, 0x71, 0xc3, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x53, 0x57, 0xd8, 0x0d, 0x74, 0xea, 0x0a, 0x05, 0x1b, 0x14, 0x93, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xd4, 0x15, 0xa6, 0x03, 0x9d, 0xba, 0xc2, 0xf6, 0xa0, 0x48, 0xc5, 0xdc, 0xa0, 0x95, 0x9a, 0xc7, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xab, 0xae, 0x90, 0x0c, 0xb4, 0xea, 0x0a, 0xd1, 0x41, 0x41, 0x91, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x57, 0x57, 0xfc, 0x41, 0x73, 0x09, 0x8e, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xaf, 0xae, 0x10, 0x0c, 0xf4, 0xea, 0x0a, 0xc9, 0x41, 0x41, 0x91, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x5e, 0x5d, 0x21, 0x1a, 0xe8, 0xd5, 0x15, 0xf2, 0x0d, 0x6f, 0xeb, 0x0c, 0x5e, 0x1f, 0x2c, 0xe3, 0x86, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xaf, 0xae, 0x30, 0x18, 0xe8, 0xd5, 0x15, 0x56, 0x1b, 0xde, 0xd6, 0x19, 0xbc, 0x3e, 0x68, 0xb4, 0xec, 0xb1, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xad, 0x2b, 0x24, 0x03, 0xdd, 0xba, 0xc2, 0x64, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xd6, 0x15, 0xa2, 0x81, 0x6e, 0x5d, 0x21, 0x3f, 0x58, 0x92, 0x0f, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x6e, 0x5d, 0x61, 0x30, 0xd0, 0xad, 0x2b, 0x2c, 0x0e, 0xc2, 0x74, 0xac, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xed, 0xba, 0xe2, 0x07, 0x9a, 0x76, 0x85, 0x68, 0xc3, 0x57, 0x38, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xda, 0x75, 0x85, 0xec, 0xa0, 0xa9, 0xcc, 0xc7, 0x0d, 0x7f, 0xd1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x5d, 0x57, 0xc8, 0x07, 0xda, 0x75, 0x85, 0xe9, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x76, 0x5d, 0x61, 0x30, 0xd0, 0xae, 0x2b, 0x8c, 0x0e, 0xca, 0x26, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xeb, 0x0a, 0xab, 0x81, 0x76, 0x5d, 0x61, 0x79, 0x70, 0x26, 0x18, 0x6d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xbf, 0xae, 0xf8, 0x83, 0xa6, 0x32, 0x1f, 0x37, 0x28, 0xe1, 0x31, 0x37, 0x68, 0x3d, 0x5c, 0x70, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x0d, 0xbb, 0x42, 0x32, 0xd0, 0xb0, 0x2b, 0x44, 0x07, 0x05, 0x45, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x8e, 0x5d, 0xf1, 0x07, 0x4d, 0x65, 0x3e, 0x6e, 0xf8, 0xc4, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x1d, 0xbb, 0x42, 0x36, 0xd0, 0xb1, 0x2b, 0x54, 0x6c, 0xf8, 0xdc, 0x65, 0x83, 0x16, 0x13, 0xfb, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xec, 0x0a, 0xf9, 0x41, 0x2b, 0xc6, 0x8f, 0x1b, 0x2e, 0xa9, 0x0d, 0x0e, 0xfb, 0x1d, 0x6b, 0xd0, 0xee, 0xb1, 0xe0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x8e, 0x5d, 0x61, 0x38, 0xd0, 0xb1, 0x2b, 0x34, 0x1c, 0x34, 0x70, 0x41, 0xd8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x96, 0x5d, 0xf1, 0x07, 0x4d, 0x65, 0x3e, 0x6e, 0x50, 0xc2, 0x63, 0x6e, 0xd0, 0xb4, 0x66, 0xdf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x76, 0x85, 0x64, 0xa0, 0x67, 0x57, 0x58, 0x6f, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xd0, 0x7a, 0xb8, 0xe0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x9e, 0x5d, 0x61, 0x33, 0xd0, 0xb3, 0x2b, 0x8c, 0x0f, 0xda, 0xe1, 0x20, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xd3, 0xae, 0xf8, 0x83, 0xa6, 0x32, 0x1f, 0x0f, 0xda, 0xcf, 0xec, 0x5b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x6d, 0xbb, 0x42, 0x32, 0xd0, 0xb6, 0x2b, 0x4c, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xb6, 0x5d, 0x21, 0x1a, 0x68, 0xdb, 0x15, 0xf2, 0x83, 0x56, 0xd5, 0x04, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xb6, 0x2b, 0x0c, 0x06, 0xda, 0x76, 0x85, 0xc5, 0x41, 0x98, 0x8e, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x6f, 0x57, 0xfc, 0x40, 0x27, 0xaf, 0x30, 0xdb, 0xe0, 0x68, 0xc3, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xbe, 0x5d, 0x21, 0x1b, 0xe8, 0xdc, 0x15, 0x4a, 0x37, 0x28, 0xe1, 0x31, 0x37, 0x58, 0xc5, 0x8c, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xc6, 0x5d, 0x21, 0x1d, 0x68, 0xdc, 0x15, 0xe2, 0x83, 0x82, 0x22, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xe7, 0xae, 0x90, 0x1d, 0x34, 0x92, 0x00, 0xb9, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xee, 0x0a, 0xe1, 0x40, 0xe7, 0xae, 0x90, 0x1e, 0x14, 0x14, 0x99, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xdc, 0x15, 0xe2, 0x81, 0xce, 0x5d, 0x61, 0x73, 0xb0, 0xaa, 0x41, 0x78, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x9d, 0xbb, 0xc2, 0x68, 0xa0, 0x73, 0x57, 0x68, 0xdb, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x77, 0x85, 0xd5, 0x40, 0xe7, 0xae, 0x30, 0xde, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x77, 0x85, 0xd9, 0x40, 0xe7, 0xae, 0xb0, 0x3c, 0x58, 0xec, 0x73, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xce, 0x5d, 0x61, 0x3a, 0xd0, 0xb9, 0x2b, 0x6c, 0x0f, 0x0a, 0x8a, 0xcc, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xb9, 0x2b, 0xac, 0x07, 0x3a, 0x77, 0x85, 0x92, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x73, 0x57, 0x98, 0x0f, 0x74, 0xee, 0x0a, 0x0d, 0x07, 0x4b, 0x27, 0x68, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xb9, 0x2b, 0x54, 0x0c, 0x74, 0xee, 0x0a, 0x1d, 0x07, 0x05, 0x45, 0x66, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xdc, 0x15, 0x5a, 0x06, 0x3a, 0x77, 0x85, 0xb2, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x73, 0x57, 0xa8, 0x19, 0xe8, 0xdc, 0x15, 0x9a, 0x0e, 0x16, 0x69, 0xce, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x73, 0x57, 0xa8, 0x1a, 0xe8, 0xdc, 0x15, 0xba, 0x0e, 0x0a, 0x8a, 0xcc, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xe7, 0xae, 0x50, 0x37, 0xd0, 0xb9, 0x2b, 0x74, 0x1e, 0xb4, 0xce, 0xe9, 0xd8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xd6, 0x5d, 0xf1, 0x07, 0xed, 0x0d, 0x40, 0x6e, 0xf8, 0xdc, 0x65, 0x83, 0x75, 0xcc, 0xa8, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x77, 0xc5, 0x1f, 0xb4, 0x37, 0x00, 0xb9, 0xe1, 0x2b, 0x9c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xbd, 0xbb, 0x42, 0x76, 0xd0, 0xde, 0x00, 0xe4, 0x86, 0xbf, 0x68, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xbb, 0x2b, 0xe4, 0x03, 0xbd, 0xbb, 0x42, 0xc3, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xde, 0x5d, 0x61, 0x30, 0xd0, 0xbb, 0x2b, 0x8c, 0x0e, 0xca, 0x26, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xee, 0x0a, 0xab, 0x81, 0xde, 0x5d, 0xa1, 0x60, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xef, 0xae, 0x30, 0x1b, 0xe8, 0xdd, 0x15, 0xa6, 0x07, 0x21, 0x65, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xde, 0x5d, 0x61, 0x3b, 0xd0, 0xbb, 0x2b, 0xec, 0x0f, 0xce, 0x04, 0xa3, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x79, 0x57, 0xfc, 0x41, 0x7b, 0x03, 0x90, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0xb4, 0x1e, 0x2e, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xee, 0x5d, 0x21, 0x19, 0xe8, 0xde, 0x15, 0xa2, 0x83, 0x82, 0x22, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xfb, 0xae, 0xf8, 0x83, 0xf6, 0x06, 0x20, 0x37, 0x7c, 0x90, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xf6, 0x5d, 0x21, 0x1b, 0x68, 0xdf, 0x15, 0xc6, 0x1b, 0x14, 0x93, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xdf, 0x15, 0xe2, 0x81, 0xf6, 0x5d, 0x61, 0xb3, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xef, 0x0a, 0xf9, 0x40, 0xfb, 0xae, 0x30, 0x38, 0x08, 0xd3, 0xb1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xef, 0x0a, 0x8b, 0x81, 0xf6, 0x5d, 0x61, 0x72, 0x10, 0x82, 0x0f, 0x1d, 0xb4, 0x1e, 0x2e, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xfe, 0x5d, 0x21, 0x19, 0x68, 0xe0, 0x15, 0x0a, 0x36, 0x7c, 0x62, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xfe, 0x5d, 0x21, 0x1d, 0xe8, 0xdf, 0x15, 0x4a, 0x36, 0x7c, 0xee, 0xb2, 0x41, 0x8b, 0x89, 0x7d, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xfa, 0x77, 0x85, 0xc5, 0x41, 0x23, 0xbf, 0x90, 0x1b, 0x2e, 0xa9, 0x0d, 0x0e, 0xfb, 0x1d, 0x6b, 0xd0, 0xee, 0xb1, 0xe0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xfe, 0x5d, 0x61, 0x3a, 0xd0, 0xbf, 0x2b, 0x74, 0x1c, 0x34, 0x70, 0x41, 0xd8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x06, 0x5e, 0x21, 0x39, 0x68, 0x34, 0x17, 0x72, 0x83, 0x12, 0x1e, 0x73, 0x83, 0xa6, 0x35, 0xfb, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xc0, 0x2b, 0x0c, 0x06, 0x1a, 0x78, 0x85, 0xc5, 0x41, 0x41, 0x91, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x81, 0x57, 0x98, 0x0c, 0x34, 0xf0, 0x0a, 0xfb, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x81, 0x57, 0xd8, 0x0c, 0x34, 0xf0, 0x0a, 0xa3, 0x83, 0x82, 0x22, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x0d, 0xbc, 0xc2, 0x6a, 0xa0, 0x81, 0x57, 0x98, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x0d, 0xbc, 0xc2, 0x6c, 0xa0, 0x81, 0x57, 0xd8, 0x1e, 0xb4, 0xd3, 0xde, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x06, 0x5e, 0x61, 0x3c, 0xd0, 0xc0, 0x2b, 0xac, 0x0f, 0x0a, 0x8a, 0xcc, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xc1, 0x2b, 0xfe, 0xa0, 0xbd, 0x01, 0xc8, 0x0d, 0x0a, 0x82, 0xd9, 0x0d, 0x1a, 0xeb, 0x39, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x0b, 0xaf, 0x90, 0x0c, 0xb4, 0xf0, 0x0a, 0xd1, 0x41, 0x41, 0x91, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x87, 0x57, 0xfc, 0x41, 0x7b, 0x03, 0x90, 0x1b, 0x3e, 0xb1, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x0f, 0xaf, 0x90, 0x0d, 0xf4, 0xf0, 0x0a, 0x6d, 0x1b, 0x3e, 0x77, 0x19, 0xf0, 0xce, 0xd2, 0xda, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x3d, 0xbc, 0x42, 0x7e, 0xd0, 0x16, 0x43, 0xe4, 0x86, 0x4b, 0x6a, 0x83, 0xc3, 0x7e, 0xc7, 0x1a, 0xb4, 0x7b, 0x2c, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x87, 0x57, 0x18, 0x0e, 0xf4, 0xf0, 0x0a, 0x0d, 0x07, 0x0d, 0x5c, 0x10, 0xae, 0x41, 0x63, 0x3d, 0x87, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x78, 0x85, 0x9e, 0x81, 0x1e, 0x5e, 0xa1, 0xec, 0xa0, 0xc9, 0x7d, 0xc4, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xf1, 0x8a, 0x3f, 0x68, 0x6f, 0x00, 0x72, 0x83, 0x12, 0x1e, 0x73, 0x0d, 0x9a, 0x73, 0x88, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x5d, 0xbc, 0x42, 0x32, 0xd0, 0xc5, 0x2b, 0x44, 0x07, 0x05, 0x45, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x36, 0x5e, 0xf1, 0x07, 0xed, 0x0d, 0x40, 0x6e, 0xf8, 0xc4, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x6d, 0xbc, 0x42, 0x36, 0xd0, 0xc6, 0x2b, 0xd4, 0x6d, 0xf8, 0xdc, 0x65, 0xc0, 0x6b, 0xcb, 0x23, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xf1, 0x0a, 0xf9, 0x41, 0x6b, 0x38, 0x91, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0xb4, 0x1e, 0x2e, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x8d, 0x57, 0x58, 0x0e, 0xb4, 0xf1, 0x0a, 0x15, 0x07, 0xed, 0x70, 0x10, 0xae, 0x41, 0x63, 0x3d, 0x87, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xda, 0x78, 0x85, 0xa2, 0x81, 0x36, 0x5e, 0xa1, 0xed, 0xa0, 0x19, 0x23, 0xc4, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xf1, 0x8a, 0x3f, 0x68, 0x6f, 0x00, 0x72, 0x83, 0x12, 0x1e, 0x73, 0x0d, 0x1a, 0xd4, 0x89, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x8d, 0xbc, 0x42, 0x32, 0xd0, 0xc8, 0x2b, 0x44, 0x07, 0x05, 0x45, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x4e, 0x5e, 0xf1, 0x07, 0xed, 0x0d, 0x40, 0x6e, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x9d, 0xbc, 0x42, 0x30, 0xd0, 0xc9, 0x2b, 0x24, 0x07, 0x05, 0x45, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x79, 0x85, 0x68, 0xa0, 0x93, 0x57, 0xc8, 0x37, 0xbc, 0xad, 0x33, 0x78, 0x7d, 0xd0, 0x40, 0x4a, 0xe4, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x79, 0x85, 0xc1, 0x40, 0x27, 0xaf, 0xb0, 0xda, 0xf0, 0xb6, 0xce, 0xe0, 0xf5, 0x41, 0xc3, 0x54, 0x91, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x5e, 0x5e, 0x21, 0x19, 0xe8, 0xe5, 0x15, 0x26, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x2f, 0xaf, 0x10, 0x0d, 0xf4, 0xf2, 0x0a, 0xf9, 0x41, 0x7b, 0x5f, 0x82, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xe5, 0x15, 0x06, 0x03, 0xbd, 0xbc, 0xc2, 0xe2, 0x20, 0x4c, 0xc7, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xcc, 0x2b, 0x7e, 0xa0, 0xa9, 0x57, 0x18, 0x6f, 0x50, 0xec, 0x68, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x99, 0x57, 0xc8, 0x06, 0x9a, 0x79, 0x85, 0xe5, 0x86, 0x7f, 0x73, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xcc, 0x2b, 0xa4, 0x03, 0xcd, 0xbc, 0xc2, 0xe0, 0xa0, 0x45, 0x9e, 0xc3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xcd, 0xbc, 0xc2, 0x62, 0xa0, 0x99, 0x57, 0x18, 0x1e, 0xb4, 0x9e, 0x3f, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x6e, 0x5e, 0x21, 0x19, 0xe8, 0xe6, 0x15, 0xa2, 0x83, 0x82, 0x22, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x3b, 0xaf, 0xf8, 0x83, 0xe6, 0x10, 0x23, 0x37, 0x28, 0xfa, 0x74, 0x37, 0x68, 0x3d, 0x5c, 0x70, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xfd, 0xbc, 0x42, 0x32, 0xd0, 0xcf, 0x2b, 0x5c, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xfa, 0x79, 0x85, 0x68, 0xa0, 0x9f, 0x57, 0x88, 0x0f, 0x16, 0xec, 0xa0, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x9f, 0x57, 0xc8, 0x07, 0xfa, 0x79, 0x85, 0xd9, 0x41, 0xa3, 0xf5, 0x82, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xe7, 0x15, 0x76, 0x03, 0xfd, 0xbc, 0xc2, 0x83, 0x0d, 0x56, 0x08, 0x35, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x9f, 0x57, 0x98, 0x0e, 0xf4, 0xf3, 0x0a, 0xf3, 0x83, 0x75, 0x05, 0xa3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xe7, 0x15, 0xf6, 0x03, 0xfd, 0xbc, 0x42, 0xeb, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xcf, 0x2b, 0x14, 0x0c, 0xf4, 0xf3, 0x0a, 0x25, 0x07, 0xcb, 0x2a, 0x41, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xcf, 0x2b, 0xb4, 0x0c, 0xf4, 0xf3, 0x0a, 0x4d, 0x07, 0xcb, 0x91, 0x85, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xcf, 0x2b, 0x54, 0x0d, 0xf4, 0xf3, 0x0a, 0xa5, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x3f, 0xaf, 0xd0, 0x35, 0xd0, 0xcf, 0x2b, 0xf4, 0x1d, 0x2c, 0x54, 0x0c, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x3f, 0xaf, 0x50, 0x38, 0xd0, 0xcf, 0x2b, 0x74, 0x1e, 0x2c, 0x24, 0x0c, 0xad, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xf3, 0x0a, 0xb5, 0x03, 0xfd, 0xbc, 0xc2, 0x81, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x9f, 0x57, 0xe8, 0x1d, 0xe8, 0xe7, 0x15, 0xba, 0x0f, 0x16, 0x2a, 0x86, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x9f, 0x57, 0x28, 0x1f, 0xe8, 0xe7, 0x15, 0xfa, 0x0f, 0x56, 0xbd, 0x87, 0x56, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x1a, 0x7a, 0xc5, 0x1f, 0x34, 0x87, 0x18, 0xb9, 0xe1, 0x13, 0x9b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xf4, 0x0a, 0xd9, 0x40, 0x43, 0xaf, 0xd0, 0xb3, 0xe1, 0x73, 0x97, 0x01, 0xcf, 0xec, 0x0d, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xd0, 0x2b, 0xe4, 0x07, 0xed, 0xff, 0x47, 0x6e, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xd0, 0xee, 0xb1, 0xe0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x86, 0x5e, 0x61, 0x37, 0xd0, 0xd0, 0x2b, 0xd4, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x0d, 0xbd, 0xc2, 0x70, 0xa0, 0xa1, 0x57, 0x58, 0x1f, 0x34, 0xfa, 0x52, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x86, 0x5e, 0x61, 0x3e, 0xd0, 0xd0, 0x2b, 0xb4, 0x1c, 0x34, 0x5a, 0x2f, 0x58, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x7a, 0xc5, 0x1f, 0x34, 0x87, 0x18, 0xb9, 0x41, 0xc1, 0x87, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x8e, 0x5e, 0x21, 0x1b, 0xe8, 0xe8, 0x15, 0xe6, 0x1b, 0x14, 0x93, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xe8, 0x15, 0xe2, 0x81, 0x8e, 0x5e, 0x61, 0xb9, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xf4, 0x0a, 0xf9, 0x40, 0x47, 0xaf, 0x30, 0x38, 0x08, 0xc1, 0x87, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xf4, 0x0a, 0x8b, 0x81, 0x8e, 0x5e, 0x61, 0x76, 0x70, 0x16, 0x13, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x47, 0xaf, 0xb0, 0x1b, 0xe8, 0xe8, 0x15, 0x86, 0x07, 0x45, 0x2a, 0x66, 0x1b, 0x34, 0x21, 0x20, 0xd9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x96, 0x5e, 0xf1, 0x07, 0xcd, 0x21, 0x46, 0x6e, 0xf8, 0x20, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x2d, 0xbd, 0x42, 0x36, 0xd0, 0xd2, 0x2b, 0x34, 0x6c, 0x50, 0x4c, 0x62, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xa5, 0x57, 0x88, 0x07, 0x5a, 0x7a, 0x85, 0xe1, 0x06, 0xc1, 0x66, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x96, 0x5e, 0x61, 0x30, 0xd0, 0xd2, 0x2b, 0x4c, 0x0e, 0x4e, 0x7b, 0x27, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xe9, 0x15, 0x36, 0x03, 0x2d, 0xbd, 0xc2, 0xee, 0x60, 0x7d, 0x44, 0x7a, 0x07, 0xad, 0x87, 0x0b, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xa7, 0x57, 0x48, 0x06, 0x7a, 0x7a, 0x85, 0x70, 0xc3, 0xdb, 0x3a, 0x07, 0x2d, 0xf2, 0x48, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xea, 0x15, 0x7f, 0xd0, 0x1c, 0x62, 0xe4, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xd4, 0x2b, 0x04, 0x03, 0x4d, 0xbd, 0x42, 0x72, 0x50, 0x50, 0x64, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xa9, 0x57, 0x88, 0x06, 0x9a, 0x7a, 0x85, 0xfc, 0xf0, 0xc4, 0xdd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x9a, 0x7a, 0x85, 0xc1, 0x40, 0x53, 0xaf, 0xb0, 0x39, 0x58, 0x2f, 0xfd, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xa6, 0x5e, 0x61, 0x34, 0xd0, 0xd4, 0x2b, 0x6c, 0x37, 0xbc, 0xad, 0x33, 0x38, 0x3c, 0x78, 0x7d, 0xd0, 0x22, 0x8f, 0x64, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xad, 0x57, 0x48, 0x06, 0xda, 0x7a, 0x85, 0xc9, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xd6, 0x2b, 0x44, 0x03, 0x6d, 0xbd, 0x42, 0x7e, 0xd0, 0xd6, 0x9b, 0xe0, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xda, 0x7a, 0x85, 0xc1, 0x40, 0x5b, 0xaf, 0xb0, 0x38, 0x08, 0xd3, 0xb1, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xf5, 0x8a, 0x1f, 0xe8, 0xed, 0x15, 0x8a, 0x37, 0x7c, 0x90, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xbe, 0x5e, 0x21, 0x1b, 0xe8, 0xeb, 0x15, 0x8a, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xbe, 0x5e, 0x21, 0x1c, 0xe8, 0xeb, 0x15, 0x96, 0x1b, 0x94, 0x25, 0xef, 0x1b, 0x1c, 0xad, 0x35, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xd7, 0x2b, 0x4c, 0x06, 0xfa, 0x7a, 0x85, 0xd1, 0x41, 0xd9, 0xf4, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xbe, 0x5e, 0x61, 0x35, 0xd0, 0xd7, 0x2b, 0x0c, 0x0f, 0x9a, 0x6b, 0xab, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x7d, 0xbd, 0xc2, 0x74, 0xa0, 0xaf, 0x57, 0xe8, 0xd9, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xfa, 0x7a, 0x85, 0xed, 0x40, 0x5f, 0xaf, 0x50, 0x71, 0xd0, 0x68, 0xbd, 0xe0, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xfa, 0x7a, 0x85, 0x8e, 0x81, 0xbe, 0x5e, 0xa1, 0xe6, 0xa0, 0x45, 0x9e, 0xc3, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x5f, 0xaf, 0x50, 0x35, 0xd0, 0xd7, 0x2b, 0x74, 0x1d, 0x14, 0x14, 0x99, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x1a, 0x7b, 0xc5, 0x1f, 0x34, 0x2a, 0x29, 0xb9, 0xe1, 0x13, 0x9b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xf6, 0x0a, 0xd9, 0x40, 0x63, 0xaf, 0x50, 0xb4, 0xe1, 0x73, 0x97, 0x01, 0x6f, 0xad, 0x0c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xd8, 0x2b, 0xe4, 0x07, 0xed, 0x2e, 0x4b, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x8d, 0xbd, 0xc2, 0x60, 0xa0, 0xb1, 0x57, 0xd8, 0x6f, 0x50, 0x96, 0xbc, 0x6f, 0x50, 0xb8, 0x89, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xb1, 0x57, 0x98, 0x0d, 0x34, 0xf6, 0x0a, 0xc3, 0x83, 0xb2, 0xa9, 0x7e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x8d, 0xbd, 0xc2, 0x72, 0xa0, 0xb1, 0x57, 0x98, 0x1f, 0x34, 0x33, 0x2f, 0xd8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x1a, 0x7b, 0x85, 0x82, 0x81, 0xc6, 0x5e, 0xa1, 0xe7, 0xa0, 0xd1, 0x7a, 0xc1, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xf6, 0x8a, 0x3f, 0x68, 0x54, 0x52, 0x72, 0x83, 0x12, 0x1e, 0x73, 0x0d, 0x9a, 0x6e, 0x96, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xad, 0xbd, 0x42, 0x32, 0xd0, 0xda, 0x2b, 0x94, 0x6c, 0xb0, 0xa4, 0x7e, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xad, 0xbd, 0x42, 0x38, 0xd0, 0xda, 0x2b, 0x14, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xad, 0xbd, 0x42, 0x3a, 0xd0, 0xda, 0x2b, 0xec, 0x36, 0xbc, 0x71, 0xb7, 0xe1, 0xe5, 0xbb, 0x00, 0x8f, 0x39, 0xba, 0x37, 0xb8, 0x16, 0xb6, 0xb7, 0xb9, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xad, 0xbd, 0xc2, 0x70, 0xa0, 0xb5, 0x57, 0xd8, 0x1f, 0x34, 0x5a, 0x2f, 0xd8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xd6, 0x5e, 0xa1, 0x61, 0xa0, 0xb5, 0x57, 0xe8, 0x38, 0x08, 0x4f, 0xd5, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xbd, 0xbd, 0xe2, 0x0f, 0x1a, 0x95, 0x94, 0xdc, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0xa0, 0x25, 0xb7, 0xaa, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xbd, 0xbd, 0x42, 0x3a, 0xd0, 0xdb, 0x2b, 0x54, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xbd, 0xbd, 0x42, 0x3c, 0xd0, 0xdb, 0x2b, 0x6c, 0x37, 0x28, 0x4b, 0xde, 0x37, 0x28, 0x5b, 0x50, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xdb, 0x2b, 0x8c, 0x06, 0x7a, 0x7b, 0x85, 0xd9, 0x41, 0xd9, 0xf4, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xde, 0x5e, 0x61, 0x37, 0xd0, 0xdb, 0x2b, 0x4c, 0x0f, 0x9a, 0x6b, 0xab, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xbd, 0xbd, 0xc2, 0x78, 0xa0, 0xb7, 0x57, 0x68, 0xda, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x7b, 0x85, 0xf5, 0x40, 0x6f, 0xaf, 0x50, 0x72, 0xd0, 0x68, 0xbd, 0xe0, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x7b, 0x85, 0x96, 0x81, 0xde, 0x5e, 0xa1, 0xe8, 0xa0, 0x45, 0x9e, 0xc3, 0x5a, 0x83, 0x76, 0x8f, 0x05, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xf6, 0x0a, 0x95, 0x03, 0xbd, 0xbd, 0x42, 0xef, 0x86, 0xb7, 0x75, 0x06, 0xaf, 0x0f, 0x1a, 0x8c, 0x97, 0x6c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xf7, 0x0a, 0xc9, 0x40, 0x77, 0xaf, 0x30, 0xd9, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0x7b, 0x85, 0x68, 0xa0, 0xbb, 0x57, 0xc8, 0x0f, 0xda, 0xa0, 0x13, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x77, 0xaf, 0x30, 0x18, 0xe8, 0xee, 0x15, 0x16, 0x07, 0x61, 0x3a, 0xd6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xf6, 0x5e, 0xf1, 0x03, 0xed, 0xbe, 0x42, 0xcd, 0x06, 0x47, 0x1b, 0xbe, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xf7, 0x0a, 0xd9, 0x40, 0x83, 0xaf, 0x50, 0xba, 0x41, 0x09, 0x8f, 0xb9, 0xc1, 0x2a, 0x66, 0xd4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xf7, 0x0a, 0xe9, 0x40, 0x7f, 0xaf, 0x10, 0x1f, 0x14, 0x14, 0x99, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x1a, 0x7c, 0x85, 0xec, 0xa0, 0xfd, 0xb1, 0xc9, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xc1, 0x57, 0x08, 0x07, 0x1a, 0x7c, 0x85, 0xf4, 0xa0, 0xa0, 0xc8, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x83, 0xaf, 0x10, 0x0f, 0x34, 0xf8, 0x0a, 0x9b, 0x83, 0x55, 0x0d, 0xc2, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xf0, 0x15, 0x46, 0x03, 0x0d, 0xbe, 0x42, 0xdb, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xe0, 0x2b, 0xac, 0x06, 0x1a, 0x7c, 0x85, 0xf1, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xe0, 0x2b, 0xcc, 0x06, 0x1a, 0x7c, 0x85, 0xe5, 0xc1, 0x62, 0x9f, 0xbb, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xf8, 0x0a, 0xd3, 0x81, 0x06, 0x5f, 0x61, 0x7b, 0x50, 0x50, 0x64, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x06, 0x5f, 0x61, 0x3d, 0xd0, 0xe0, 0x2b, 0x94, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x0d, 0xbe, 0xc2, 0x7c, 0xa0, 0xc1, 0x57, 0x68, 0x38, 0x58, 0xc0, 0x50, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x06, 0x5f, 0xa1, 0x62, 0xa0, 0xc1, 0x57, 0xe8, 0x38, 0x28, 0x28, 0x32, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x83, 0xaf, 0xd0, 0x32, 0xd0, 0xe0, 0x2b, 0x94, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x0d, 0xbe, 0x42, 0xcd, 0x40, 0x83, 0xaf, 0xd0, 0x74, 0xb0, 0x14, 0x67, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x0d, 0xbe, 0x42, 0xd5, 0x40, 0x83, 0xaf, 0xd0, 0x75, 0x50, 0x50, 0x64, 0xd6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x1a, 0x7c, 0x85, 0xba, 0x81, 0x06, 0x5f, 0xa1, 0xf3, 0xa0, 0x75, 0x4e, 0xc7, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xf8, 0x8a, 0x3f, 0x68, 0xc9, 0x6b, 0x72, 0xc3, 0xe7, 0x2e, 0x1b, 0xac, 0x63, 0x46, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xe2, 0x2b, 0xfe, 0xa0, 0x25, 0xaf, 0xc9, 0x0d, 0x9f, 0xd8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xc5, 0x57, 0xc8, 0x06, 0x5a, 0x7c, 0x85, 0xed, 0x86, 0xcf, 0x5d, 0x06, 0x3c, 0xba, 0xba, 0x75, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x8b, 0xaf, 0x90, 0x1f, 0x34, 0xa9, 0x3c, 0xb9, 0x41, 0x21, 0x98, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xc5, 0x57, 0x18, 0x1c, 0x34, 0xa9, 0x3c, 0xb9, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xc5, 0x57, 0x58, 0x0c, 0xb4, 0xf8, 0x0a, 0xab, 0x83, 0x90, 0x32, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x8b, 0xaf, 0x30, 0x1b, 0x68, 0xf1, 0x15, 0xa6, 0x07, 0x67, 0x82, 0xd1, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0xf8, 0x8a, 0x3f, 0x68, 0xc9, 0x6b, 0x72, 0xc3, 0x57, 0x38, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x7c, 0x85, 0xec, 0xa0, 0x25, 0xaf, 0xc9, 0x0d, 0x7f, 0xd1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xc7, 0x57, 0xc8, 0x07, 0x7a, 0x7c, 0x85, 0x86, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x3d, 0xbe, 0xc2, 0x60, 0xa0, 0xc7, 0x57, 0x18, 0x1d, 0x94, 0x4d, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xf1, 0x15, 0x56, 0x03, 0x3d, 0xbe, 0x42, 0xc1, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x1e, 0x5f, 0x61, 0x36, 0xd0, 0xe3, 0x2b, 0x4c, 0x0f, 0x42, 0xca, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x3d, 0xbe, 0xc2, 0x76, 0xa0, 0xc7, 0x57, 0xd8, 0x1f, 0x9c, 0x09, 0x46, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x93, 0xaf, 0xf8, 0x83, 0x96, 0xbc, 0x26, 0x37, 0x7c, 0x90, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x26, 0x5f, 0x21, 0x1b, 0x68, 0xf2, 0x15, 0x36, 0x1b, 0xfe, 0xcd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x93, 0xaf, 0x90, 0x0e, 0x34, 0xf9, 0x0a, 0xf1, 0x41, 0x41, 0x91, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xc9, 0x57, 0xc8, 0x07, 0x9a, 0x7c, 0x85, 0xc9, 0x41, 0x8b, 0x3c, 0x87, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xf2, 0x15, 0x92, 0x81, 0x2e, 0x5f, 0x61, 0xb0, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xf9, 0x0a, 0xd1, 0x40, 0x97, 0xaf, 0x90, 0x1d, 0x14, 0x14, 0x99, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xf2, 0x15, 0xc2, 0x81, 0x2e, 0x5f, 0x21, 0xdf, 0xf0, 0xb6, 0xce, 0x06, 0x8d, 0x32, 0x4f, 0xd6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x36, 0x5f, 0xf1, 0x07, 0x2d, 0x79, 0x4d, 0x6e, 0x50, 0xec, 0x68, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xcd, 0x57, 0xc8, 0x06, 0xda, 0x7c, 0x85, 0x82, 0x0d, 0x8a, 0x49, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xf9, 0x0a, 0xf1, 0x40, 0x9b, 0xaf, 0xb0, 0xdd, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xda, 0x7c, 0x85, 0x7c, 0xa0, 0xcd, 0x57, 0x98, 0x6c, 0xf8, 0x73, 0x69, 0x70, 0x77, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x9b, 0xaf, 0xb0, 0x38, 0x68, 0xbe, 0x88, 0xf2, 0x20, 0x4c, 0xc7, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xe6, 0x2b, 0x6c, 0x06, 0xda, 0x7c, 0x85, 0xd9, 0x86, 0x3f, 0x97, 0x06, 0x67, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xf9, 0x0a, 0xab, 0x83, 0xa6, 0xa2, 0x28, 0x0f, 0xc2, 0x74, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x6d, 0xbe, 0xc2, 0x6e, 0xa0, 0xcd, 0x57, 0x98, 0x6e, 0xf8, 0x73, 0x69, 0x70, 0x79, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x9b, 0xaf, 0xb0, 0x3c, 0x68, 0x96, 0x8b, 0xf2, 0x20, 0x4c, 0xc7, 0x3a, 0x68, 0xac, 0xe7, 0x70, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x7d, 0xbe, 0x42, 0x32, 0xd0, 0xe7, 0x2b, 0x44, 0x07, 0x05, 0x45, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x46, 0x5f, 0xf1, 0x07, 0x2d, 0x79, 0x4d, 0x6e, 0xf8, 0xc4, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x8d, 0xbe, 0x42, 0x36, 0xd0, 0xe8, 0x2b, 0x6c, 0x37, 0x7c, 0xee, 0xb2, 0x41, 0x51, 0xe8, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xd1, 0x57, 0xc8, 0x0f, 0x5a, 0x9f, 0xa3, 0xdc, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0xa0, 0xb1, 0x9e, 0xc3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x8d, 0xbe, 0xc2, 0x6a, 0xa0, 0xd1, 0x57, 0x98, 0x6e, 0x78, 0x5b, 0x67, 0x70, 0xf9, 0xa0, 0xb1, 0x9e, 0xc3, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xfa, 0x8a, 0x3f, 0x68, 0xc9, 0x6b, 0x72, 0x83, 0x12, 0x1e, 0x73, 0x83, 0xe3, 0xf9, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x7d, 0x85, 0x64, 0xa0, 0xd5, 0x57, 0x88, 0x0e, 0x0a, 0x8a, 0xcc, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xbd, 0xbe, 0xe2, 0x0f, 0x5a, 0xf2, 0x9a, 0xdc, 0xf0, 0x89, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x7d, 0x85, 0x6c, 0xa0, 0xd7, 0x57, 0xe8, 0xda, 0xf0, 0xb9, 0xcb, 0x80, 0x47, 0x97, 0xd6, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xf5, 0x15, 0xf2, 0x83, 0x66, 0x33, 0x29, 0x37, 0x5c, 0x52, 0x1b, 0x1c, 0xf6, 0x3b, 0xd6, 0xa0, 0xdd, 0x63, 0xc1, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xbd, 0xbe, 0xc2, 0x70, 0xa0, 0xd7, 0x57, 0xd8, 0x1f, 0xb4, 0x9e, 0x3f, 0xb8, 0x06, 0x8d, 0xf5, 0x1c, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0xf5, 0x15, 0x5a, 0x06, 0x7a, 0x7d, 0x85, 0xaa, 0x0d, 0x6f, 0xeb, 0x0c, 0xee, 0x1e, 0x34, 0xd6, 0x73, 0xd8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x66, 0x5f, 0xf1, 0x07, 0x2d, 0x79, 0x4d, 0x6e, 0x50, 0xc2, 0x63, 0xae, 0x41, 0xcb, 0x9b, 0x94, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xdb, 0x57, 0x48, 0x06, 0xba, 0x7d, 0x85, 0xe8, 0xa0, 0xa0, 0xc8, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xee, 0x2b, 0xfe, 0xa0, 0x25, 0xaf, 0xc9, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x1a, 0xeb, 0x39, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xee, 0x2b, 0xa4, 0x03, 0xed, 0xbe, 0xc2, 0x64, 0xc3, 0xdb, 0x3a, 0x83, 0xb3, 0x07, 0x8d, 0xf5, 0x1c, 0xae, 0x41, 0xbb, 0x30, 0x94, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xda, 0x7d, 0x85, 0xe1, 0x40, 0xbb, 0xaf, 0xd0, 0xb2, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xfb, 0x0a, 0xcb, 0x81, 0x76, 0x5f, 0x61, 0xbe, 0xe1, 0x6d, 0x9d, 0xc1, 0xeb, 0x83, 0x56, 0x6f, 0x29, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xee, 0x2b, 0xec, 0x07, 0xda, 0x7d, 0x85, 0x92, 0x0d, 0x6f, 0xeb, 0x0c, 0x5e, 0x1f, 0x1c, 0xcf, 0xdf, 0x6a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xfc, 0x0a, 0xc9, 0x40, 0xc3, 0xaf, 0x30, 0xd9, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x1a, 0x7e, 0x85, 0x68, 0xa0, 0xe1, 0x57, 0xc8, 0x0f, 0xda, 0xc4, 0x13, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xc3, 0xaf, 0x30, 0x18, 0x68, 0xf8, 0x15, 0x16, 0x07, 0x61, 0x3a, 0xd6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x8e, 0x5f, 0xf1, 0x03, 0x8d, 0xbf, 0xc2, 0x81, 0x0d, 0x0a, 0x82, 0xd9, 0x0d, 0x1a, 0xeb, 0x39, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xcb, 0xaf, 0x90, 0x0c, 0xb4, 0xfc, 0x0a, 0x3d, 0x1b, 0x14, 0x3b, 0x9a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xf9, 0x15, 0xc2, 0x81, 0x96, 0x5f, 0x61, 0xb4, 0xe1, 0xdf, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xfc, 0x0a, 0xf1, 0x40, 0xcb, 0xaf, 0x90, 0x1f, 0x14, 0x14, 0x99, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x7e, 0x85, 0xc1, 0x40, 0xcb, 0xaf, 0xb0, 0x39, 0x68, 0x91, 0xe7, 0x70, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x2d, 0xbf, 0xc2, 0x6a, 0xa0, 0xe5, 0x57, 0x98, 0x1d, 0x14, 0x14, 0x99, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x7e, 0x85, 0xdd, 0x40, 0xcb, 0xaf, 0x50, 0xb3, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0xfc, 0x0a, 0xc3, 0x81, 0x96, 0x5f, 0x61, 0x79, 0x50, 0x50, 0x64, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xe5, 0x57, 0x98, 0x0e, 0xb4, 0xfc, 0x0a, 0xfb, 0xc3, 0x13, 0x77, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xf9, 0x15, 0x0a, 0x06, 0x5a, 0x7e, 0x85, 0x8e, 0x83, 0x75, 0xeb, 0x70, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xf9, 0x15, 0x4a, 0x06, 0x5a, 0x7e, 0x85, 0x96, 0x83, 0x82, 0x22, 0xb3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x3d, 0xbf, 0xe2, 0x0f, 0x5a, 0xaa, 0xa7, 0xdc, 0xa0, 0xd8, 0xd1, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xcf, 0xaf, 0x90, 0x0d, 0xf4, 0xfc, 0x0a, 0xab, 0x0d, 0xff, 0xe6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xe7, 0x57, 0x48, 0x07, 0x7a, 0x7e, 0x85, 0xf8, 0xa0, 0xa0, 0xc8, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xf3, 0x2b, 0xe4, 0x03, 0x3d, 0xbf, 0xc2, 0xe8, 0xa0, 0xc9, 0x7d, 0xc4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xfd, 0x0a, 0xc9, 0x40, 0xd3, 0xaf, 0x10, 0x1d, 0x14, 0x14, 0x99, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0x7e, 0xc5, 0x1f, 0xb4, 0x54, 0x4f, 0xb9, 0xe1, 0x13, 0x9b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xfd, 0x0a, 0xd9, 0x40, 0xd7, 0xaf, 0x50, 0xb5, 0xe1, 0x73, 0x97, 0x0d, 0x5a, 0x4c, 0xec, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xf5, 0x2b, 0xe4, 0x07, 0xed, 0x52, 0x55, 0x6e, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xd0, 0xee, 0xb1, 0xe0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xae, 0x5f, 0x61, 0x37, 0xd0, 0xf5, 0x2b, 0xcc, 0x0f, 0x5a, 0xcf, 0x1f, 0x5c, 0x83, 0xc6, 0x7a, 0x0e, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0xfd, 0x0a, 0x25, 0x03, 0x5d, 0xbf, 0x42, 0xd3, 0x41, 0x33, 0x46, 0x88, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xfb, 0x15, 0x7f, 0xd0, 0x52, 0x3d, 0xe5, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0x4d, 0x6b, 0xf6, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xef, 0x57, 0x48, 0x06, 0xfa, 0x7e, 0x85, 0xe8, 0xa0, 0xa0, 0xc8, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xf8, 0x2b, 0xfe, 0xa0, 0xa5, 0x7a, 0xca, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xf1, 0x57, 0x08, 0x06, 0x1a, 0x7f, 0x85, 0xe4, 0xa0, 0xa0, 0xc8, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xe3, 0xaf, 0x10, 0x0d, 0x34, 0xfe, 0x0a, 0xf9, 0xc1, 0xaa, 0x06, 0xe1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xfe, 0x0a, 0x83, 0x81, 0xc6, 0x5f, 0xa1, 0x69, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xfc, 0x15, 0x16, 0x03, 0x8d, 0xbf, 0xc2, 0x70, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xfc, 0x15, 0x26, 0x03, 0x8d, 0xbf, 0xc2, 0xea, 0x60, 0xb1, 0xcf, 0xdd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x1a, 0x7f, 0x85, 0xd9, 0x40, 0xe3, 0xaf, 0xb0, 0x3b, 0x28, 0x28, 0x32, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xe3, 0xaf, 0xb0, 0x1c, 0x68, 0xfc, 0x15, 0x0a, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xc6, 0x5f, 0x61, 0x3a, 0xd0, 0xf8, 0x2b, 0xac, 0x0f, 0x96, 0x4e, 0xd0, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xf1, 0x57, 0x98, 0x0f, 0x34, 0xfe, 0x0a, 0xfb, 0x83, 0x82, 0x22, 0xb3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0xfe, 0x0a, 0x0d, 0x03, 0x8d, 0xbf, 0x42, 0xd1, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xf8, 0x2b, 0x54, 0x0c, 0x34, 0xfe, 0x0a, 0x2d, 0x07, 0x8b, 0x34, 0x67, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xf8, 0x2b, 0xd4, 0x0c, 0x34, 0xfe, 0x0a, 0x3d, 0x07, 0x05, 0x45, 0x66, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xf1, 0x57, 0xa8, 0x1a, 0x68, 0xfc, 0x15, 0x7a, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xc6, 0x5f, 0xa1, 0x6b, 0xa0, 0xf1, 0x57, 0x28, 0x3c, 0x3c, 0x71, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xc6, 0x5f, 0xa1, 0x71, 0xa0, 0xf1, 0x57, 0x28, 0x3d, 0x58, 0xb7, 0x0e, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xc6, 0x5f, 0xa1, 0x75, 0xa0, 0xf1, 0x57, 0xa8, 0x3d, 0x28, 0x28, 0x32, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xe3, 0xaf, 0x50, 0x3c, 0xd0, 0xf8, 0x2b, 0xb4, 0x1f, 0xb4, 0xd3, 0xde, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xc6, 0x5f, 0xa1, 0x7e, 0xa0, 0xf1, 0x57, 0xe8, 0x3f, 0x28, 0x28, 0x32, 0x5b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xad, 0xbf, 0x42, 0x32, 0xd0, 0xfa, 0x2b, 0x4c, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xd6, 0x5f, 0x21, 0x1a, 0x68, 0xfd, 0x15, 0xf2, 0x83, 0xe5, 0x32, 0xdf, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0xfd, 0x15, 0x06, 0x03, 0xad, 0xbf, 0xc2, 0xe2, 0x20, 0x4c, 0xc7, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xfb, 0x2b, 0x7e, 0xa0, 0xf7, 0x57, 0xd8, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xd0, 0xee, 0xb1, 0xe0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xde, 0x5f, 0x21, 0x1f, 0xe8, 0xfd, 0x15, 0x66, 0x07, 0xad, 0xe7, 0x0f, 0xd6, 0x6a, 0xd0, 0xc0, 0xf9, 0xd2, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x80, 0x25, 0x71, 0x83, 0x66, 0x65, 0x12, 0x5b, 0x0d, 0xda, 0x12, 0x05, 0xdc, 0xf0, 0x8b, 0xd2, 0x1a, 0xfe, 0x5c, 0xda, 0xa0, 0x1d, 0x79, 0xc3, 0x83, 0x30, 0x1d, 0xdb, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0x6d, 0x6b, 0xc3, 0x36, 0x68, 0x56, 0x26, 0x71, 0x83, 0x16, 0x79, 0x0e, 0x3b, 0x9c, 0x62, 0x75, 0x38, 0xc5, 0x56, 0xc0, 0x9f, 0x5b, 0x7b, 0x63, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x1a, 0x82, 0xb0, 0x6c, 0x00, 0x3a, 0x41, 0x48, 0x5a, 0x50, 0xe8, 0xf2, 0xe0, 0xca, 0x40, 0xe8, 0xc2, 0xdc, 0xd6, 0x52, 0x40, 0xea, 0xe6, 0xd2, 0xdc, 0xce, 0x40, 0xc8, 0xea, 0xc6, 0xd6, 0x5c, 0x1b, 0x7e, 0x51, 0xda, 0xa0, 0x25, 0x79, 0xb0, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0x26, 0x18, 0xdd, 0xa0, 0x2c, 0x79, 0xdf, 0xa0, 0x11, 0x37, 0xa9, 0x83, 0xb6, 0xd7, 0xff, 0x56, 0xc0, 0x1f, 0x0b, 0x4b, 0x73, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xd0, 0x24, 0x69, 0x41, 0xb1, 0x0b, 0x9b, 0x2b, 0x03, 0xa1, 0x0b, 0x73, 0x5b, 0x4b, 0x1d, 0xb4, 0x02, 0x21, 0xb8, 0x1a, 0xf2, 0xd8, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x87, 0x3c, 0x76, 0x03, 0xf8, 0x8f, 0xc9, 0x85, 0xcd, 0xa1, 0x81, 0xdc, 0xa5, 0xd1, 0xa1, 0x81, 0xd0, 0xc9, 0x85, 0x8d, 0x95, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0x56, 0xc2, 0x03, 0x37, 0x7c, 0xfd, 0xb2, 0x41, 0x78, 0xaa, 0x6e, 0x50, 0xc2, 0x63, 0x6e, 0x78, 0x70, 0x67, 0x83, 0xf0, 0x54, 0xdd, 0xf0, 0x96, 0xdd, 0xc1, 0x51, 0x5a, 0x71, 0x16, 0xf0, 0xe7, 0xd8, 0xde, 0xe8, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x66, 0x7a, 0x2c, 0x1b, 0xc0, 0xff, 0xec, 0x8d, 0x0e, 0x24, 0x0c, 0x2f, 0x6d, 0x0e, 0x24, 0xcd, 0x0d, 0xc4, 0x2e, 0x6c, 0xae, 0x6c, 0xc3, 0x2f, 0x4a, 0x1b, 0xb4, 0x75, 0x17, 0xb8, 0xe1, 0x2f, 0x9a, 0x0d, 0x9a, 0xdd, 0x8e, 0xda, 0xf0, 0x8b, 0xcb, 0x06, 0xad, 0xfd, 0x05, 0xae, 0xc1, 0x82, 0x90, 0xa5, 0x0d, 0x9a, 0x07, 0x8f, 0xda, 0xf0, 0x8b, 0xcb, 0x86, 0x07, 0x6f, 0x0e, 0x5a, 0x29, 0xdb, 0xea, 0x70, 0x8a, 0x2d, 0xe0, 0xcf, 0xb1, 0xe5, 0xb5, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xed, 0x4a, 0x59, 0x36, 0x00, 0x3f, 0x73, 0x6c, 0x61, 0x6d, 0x20, 0x77, 0x2b, 0x6f, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x1b, 0xb4, 0x6a, 0x13, 0x78, 0xb0, 0x0c, 0xfd, 0x77, 0xc3, 0x5f, 0x34, 0x1b, 0x34, 0xbb, 0x1d, 0xb5, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xcb, 0x0f, 0x52, 0xad, 0xe1, 0x92, 0xda, 0x60, 0x3d, 0xf7, 0xf0, 0x6a, 0x48, 0x1d, 0x1c, 0x1c, 0x71, 0x32, 0x0e, 0x96, 0xc9, 0x0f, 0xb7, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0xaf, 0xa4, 0xe0, 0x60, 0xed, 0x9e, 0x7a, 0x87, 0x53, 0xac, 0x6a, 0x16, 0xe0, 0x83, 0x0b, 0x93, 0x9b, 0x2b, 0x93, 0x97, 0x01, 0x7c, 0x6a, 0xc8, 0x74, 0x40, 0xe0, 0xc2, 0xe4, 0xe6, 0xca, 0xe4, 0x16, 0xf0, 0xed, 0xc2, 0xe6, 0xe8, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x66, 0xe9, 0x2c, 0x1b, 0x80, 0x87, 0xb6, 0xb0, 0x34, 0x37, 0x10, 0xb8, 0x30, 0xb9, 0xb9, 0x34, 0xb7, 0x33, 0x90, 0xb1, 0x37, 0xb9, 0xb2, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x17, 0x97, 0x35, 0x7c, 0xee, 0x32, 0xe0, 0x89, 0xd5, 0x9d, 0x07, 0xeb, 0x98, 0x4e, 0xd7, 0xf0, 0xb9, 0xcb, 0x80, 0x77, 0x57, 0x26, 0x6f, 0x50, 0x08, 0xa6, 0x1e, 0x9c, 0x91, 0x50, 0xd7, 0xf0, 0xb9, 0xcb, 0x80, 0x47, 0xf6, 0x36, 0x1e, 0x34, 0x59, 0x2e, 0xd5, 0x06, 0x25, 0x0b, 0xfb, 0x2c, 0xb3, 0x80, 0x2f, 0xf7, 0xf6, 0x46, 0x6e, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x1b, 0x2c, 0xb0, 0x33, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x40, 0x5b, 0xdd, 0xa0, 0x01, 0x09, 0x84, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xc3, 0xbd, 0xbd, 0xc9, 0xd5, 0x0a, 0xf8, 0x72, 0x75, 0x6d, 0xf0, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x4b, 0xec, 0x58, 0xd7, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x83, 0x87, 0x07, 0x6b, 0x47, 0x9e, 0xd7, 0xf0, 0xe7, 0xd2, 0xe0, 0xe2, 0xc1, 0x02, 0x09, 0xe7, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0x02, 0x09, 0xe7, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x9f, 0x07, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0xda, 0x48, 0x2f, 0x38, 0x3c, 0xf4, 0xb3, 0x41, 0xb1, 0xa3, 0xb9, 0x06, 0xc5, 0x24, 0xe6, 0x1a, 0x3e, 0x57, 0x3a, 0x58, 0xf9, 0xfa, 0x7e, 0x78, 0x70, 0x67, 0x83, 0x82, 0x22, 0x73, 0xc3, 0x2f, 0x2e, 0x1b, 0x14, 0x14, 0x99, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xa6, 0xb4, 0x0a, 0x36, 0x58, 0x97, 0x5d, 0x77, 0x70, 0x08, 0xf5, 0x3b, 0x38, 0x22, 0x16, 0x6c, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x97, 0x7b, 0x83, 0x2b, 0x5b, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x07, 0x06, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x40, 0x5b, 0xdd, 0xa0, 0xa0, 0xc8, 0x5c, 0xc3, 0xdb, 0x3a, 0x03, 0xfe, 0x5d, 0x19, 0x59, 0x59, 0x07, 0x4b, 0x4c, 0x4a, 0x5b, 0x01, 0x7f, 0x8e, 0xae, 0xac, 0xdd, 0xa0, 0xe8, 0x34, 0xde, 0x60, 0x75, 0x2f, 0xeb, 0x1a, 0x14, 0x82, 0xa9, 0x07, 0x0b, 0x2c, 0x9c, 0x37, 0x38, 0x0f, 0x76, 0x6c, 0xb0, 0x1c, 0x92, 0x69, 0x36, 0x28, 0x3a, 0x8d, 0x37, 0x58, 0x56, 0x09, 0xba, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0xc7, 0x78, 0xd3, 0x0d, 0x82, 0xf6, 0x67, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x34, 0x33, 0xef, 0x35, 0xfc, 0xb9, 0xb4, 0x41, 0x9a, 0x99, 0xf7, 0xc1, 0x02, 0x0b, 0xe7, 0x0e, 0x4e, 0xe9, 0xa6, 0x1b, 0x14, 0x04, 0xb3, 0x1b, 0x1c, 0xe2, 0x4d, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0x4d, 0x69, 0x15, 0x6c, 0xb0, 0x2e, 0xbb, 0xee, 0x60, 0x8d, 0x93, 0xfa, 0x86, 0x0f, 0x72, 0xd6, 0xa0, 0x98, 0xc4, 0xdc, 0xa0, 0x95, 0x68, 0xcb, 0x8d, 0x43, 0x07, 0x87, 0x78, 0xd3, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x9a, 0x99, 0xf7, 0xc1, 0x21, 0xde, 0x74, 0xc3, 0x2f, 0x2e, 0x1b, 0xb4, 0xb6, 0x7d, 0xb0, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0x4a, 0xab, 0x60, 0x83, 0x75, 0xd9, 0x75, 0x6b, 0xb8, 0xa4, 0x36, 0x68, 0x20, 0xdc, 0xb2, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x8d, 0xf6, 0x15, 0x1c, 0xac, 0x71, 0x52, 0x6f, 0x83, 0x03, 0x16, 0xdd, 0x1a, 0x9c, 0xd8, 0x6f, 0x36, 0x58, 0xd3, 0xcc, 0xba, 0xc1, 0xb1, 0xcd, 0x71, 0x83, 0x65, 0xd3, 0xac, 0x1b, 0x1c, 0xdb, 0x1c, 0x37, 0x58, 0xa2, 0xcd, 0xba, 0xc1, 0xd1, 0x75, 0x70, 0x0d, 0x0a, 0x43, 0xd5, 0x0d, 0x96, 0x8c, 0xa9, 0x6f, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xf5, 0xc0, 0xa0, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x73, 0x70, 0x69, 0x74, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x15, 0x68, 0xab, 0x1b, 0x34, 0x0b, 0x89, 0xb0, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xa8, 0x49, 0xba, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x4b, 0x32, 0x68, 0xdb, 0x60, 0x9d, 0x23, 0x66, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x35, 0xb3, 0xa1, 0x1b, 0xac, 0x71, 0x26, 0x5d, 0xc3, 0xdb, 0x3a, 0x03, 0xfe, 0x5d, 0x1a, 0x59, 0x59, 0xd5, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xc1, 0x7e, 0xcb, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x42, 0x4d, 0xd2, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0xb7, 0x75, 0x36, 0x58, 0x36, 0x40, 0xdb, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0x61, 0xe2, 0x6c, 0x1d, 0x34, 0xc2, 0x70, 0xd9, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x34, 0xd3, 0x63, 0xd9, 0xc1, 0xc2, 0x7a, 0xd6, 0xd6, 0xa0, 0x30, 0x54, 0xdd, 0x60, 0xed, 0x39, 0xed, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x82, 0x13, 0xba, 0x41, 0x52, 0x5a, 0xf0, 0xc1, 0xfa, 0x3e, 0xf5, 0x35, 0x28, 0x0c, 0x55, 0x37, 0x58, 0x47, 0xa8, 0xbe, 0xe1, 0xdd, 0x9e, 0x0d, 0x9a, 0xcf, 0xb8, 0xdc, 0x60, 0x2d, 0xa2, 0x7a, 0x6b, 0x50, 0x18, 0xaa, 0x6e, 0xb0, 0x66, 0xe3, 0x6d, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0x9f, 0x71, 0xb9, 0xc1, 0x7a, 0x49, 0xf5, 0xd6, 0xa0, 0x30, 0x54, 0xdd, 0x60, 0x11, 0x9e, 0xdc, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x3b, 0x0e, 0xba, 0xc1, 0xda, 0x17, 0xd2, 0x0d, 0xd6, 0x74, 0xaa, 0xb7, 0x06, 0x85, 0xa1, 0xea, 0x06, 0xeb, 0xd6, 0xe1, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0xf3, 0x19, 0x97, 0x1b, 0xac, 0x3b, 0x55, 0x6f, 0x83, 0x15, 0xbf, 0xea, 0x6b, 0x50, 0x18, 0xaa, 0x6e, 0xb0, 0x74, 0x82, 0x76, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x9f, 0x63, 0x4b, 0x83, 0x3b, 0x68, 0x18, 0xe2, 0x72, 0x0d, 0x0a, 0x43, 0xd5, 0x0d, 0x96, 0xa3, 0xd0, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0xb6, 0x7b, 0x2e, 0x0f, 0x5a, 0xfe, 0xb7, 0x6c, 0x99, 0x35, 0x68, 0xcd, 0xdf, 0x72, 0x83, 0x42, 0xb9, 0x73, 0x0d, 0x7f, 0x2e, 0x0d, 0x2e, 0x1f, 0x2c, 0x4d, 0x15, 0xdd, 0xa0, 0xe8, 0x34, 0xde, 0x60, 0x05, 0xda, 0xea, 0x1a, 0xde, 0xb8, 0x3b, 0x68, 0x3d, 0xda, 0x72, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x65, 0x95, 0xa0, 0x6b, 0x50, 0x28, 0x77, 0xae, 0xe1, 0x73, 0xa5, 0x0d, 0x9a, 0x53, 0x00, 0x3c, 0x28, 0xc7, 0xf1, 0x37, 0xfc, 0x45, 0xb3, 0xc1, 0x02, 0x0b, 0xe7, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0xda, 0xf6, 0xc1, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0x29, 0xad, 0x82, 0x83, 0xc5, 0xf1, 0xac, 0x87, 0xb7, 0xd0, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0xab, 0x86, 0x8b, 0x3a, 0x58, 0x04, 0x60, 0xba, 0xc1, 0xd2, 0x7a, 0xd6, 0x83, 0x43, 0x5f, 0xdf, 0x6a, 0xd0, 0x4c, 0x8f, 0xe5, 0x06, 0x85, 0x72, 0xe7, 0x06, 0x0d, 0x24, 0x5d, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x25, 0x76, 0xac, 0x1b, 0xac, 0x52, 0x52, 0x3f, 0x38, 0xf4, 0xf5, 0xcd, 0x1a, 0x34, 0xec, 0x73, 0xb9, 0x41, 0xa1, 0xdc, 0xb9, 0x41, 0x03, 0x49, 0x97, 0x1b, 0xde, 0xed, 0xd9, 0x60, 0x05, 0xda, 0xea, 0x06, 0x2d, 0x36, 0x5d, 0x1e, 0x1c, 0xfa, 0xfa, 0x0e, 0xa7, 0x58, 0x87, 0x53, 0x6c, 0x05, 0xfc, 0xb9, 0xba, 0x36, 0x78, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xd4, 0x24, 0x5d, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x45, 0xfc, 0xb4, 0xad, 0xe1, 0x6d, 0x9d, 0x0d, 0x96, 0xa1, 0xcc, 0xd6, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x05, 0xda, 0xea, 0x06, 0xcd, 0x97, 0x20, 0x1c, 0xb4, 0x90, 0x70, 0xd9, 0x0a, 0xf8, 0x6c, 0x75, 0x74, 0xe5, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0xab, 0x81, 0x97, 0x0d, 0xe0, 0x47, 0x17, 0xc6, 0xc6, 0x06, 0xb2, 0xd5, 0x05, 0xe2, 0xf6, 0x56, 0xe7, 0xb6, 0xc1, 0x72, 0x48, 0xa6, 0xd9, 0xa0, 0xe8, 0x34, 0xde, 0x60, 0x59, 0x25, 0xe8, 0x1a, 0x7e, 0x51, 0xda, 0x60, 0x81, 0x85, 0xf3, 0xc1, 0x69, 0xe5, 0x6c, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x15, 0x68, 0xab, 0x1b, 0x34, 0x5f, 0x82, 0xb0, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0x42, 0x4d, 0xd2, 0x35, 0xfc, 0xe2, 0xb2, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x51, 0x11, 0xba, 0x41, 0xbb, 0x13, 0x97, 0x1b, 0xac, 0x10, 0x29, 0x6d, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xa2, 0x22, 0x74, 0x83, 0x15, 0x22, 0xa5, 0x07, 0xed, 0x56, 0x5c, 0xb6, 0xe1, 0xdd, 0x9e, 0x0d, 0xd6, 0xcc, 0x86, 0x6e, 0xb0, 0x42, 0xa4, 0x74, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x74, 0x61, 0x6c, 0x6c, 0xad, 0x06, 0x0d, 0xe1, 0x5a, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x34, 0x84, 0x6b, 0xd9, 0x00, 0x1e, 0x77, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0xac, 0xee, 0x65, 0x5d, 0x83, 0x42, 0x30, 0xf5, 0x60, 0xed, 0xc8, 0xf3, 0x06, 0xe7, 0xc1, 0x8e, 0x0d, 0x96, 0x43, 0x32, 0xcd, 0x06, 0x45, 0xa7, 0xf1, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x2c, 0x35, 0xb1, 0x6d, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0x78, 0x78, 0xb0, 0xc2, 0x78, 0x7b, 0x0d, 0x7f, 0x2e, 0x0d, 0x2e, 0x1e, 0xac, 0x1d, 0x79, 0xee, 0xa0, 0xe4, 0x0b, 0x6e, 0x83, 0xb5, 0x2f, 0xa4, 0x1b, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x3d, 0x30, 0xe8, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x09, 0x4e, 0xe8, 0x1a, 0x7e, 0x71, 0xd9, 0x60, 0x99, 0x93, 0xec, 0xc1, 0x12, 0x19, 0xd6, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0x3a, 0xa8, 0xd9, 0x5a, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x65, 0x95, 0xa0, 0x6b, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0x6d, 0x50, 0xc2, 0xb9, 0xaf, 0xe1, 0xcf, 0xa5, 0xc1, 0xc5, 0x83, 0xf5, 0x5a, 0xcf, 0x6d, 0x50, 0xc2, 0x63, 0x6e, 0x78, 0x70, 0x67, 0xc3, 0x7b, 0x41, 0x1b, 0x7e, 0x71, 0xd9, 0x60, 0x99, 0x93, 0xec, 0x06, 0x2b, 0x25, 0x55, 0x37, 0x58, 0x04, 0x90, 0xda, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x51, 0x11, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xa8, 0x18, 0xba, 0x86, 0xb7, 0x75, 0x36, 0x58, 0xad, 0x45, 0x5b, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xf5, 0xc0, 0xa0, 0x1b, 0x2c, 0xad, 0x67, 0xdd, 0xa0, 0x9d, 0x8f, 0xcb, 0x5a, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x65, 0x95, 0xa0, 0x6b, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x1e, 0x2c, 0xe9, 0x73, 0xde, 0xf0, 0x8b, 0xcb, 0xc1, 0x52, 0xb1, 0xdb, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x1e, 0x18, 0x74, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x76, 0x1c, 0x74, 0x83, 0x65, 0x00, 0xa6, 0x07, 0xeb, 0x35, 0x56, 0xd7, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x6b, 0xc7, 0x41, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0x4b, 0x3b, 0x65, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xab, 0x04, 0x5d, 0xc3, 0x2f, 0x4a, 0x1b, 0xbe, 0x5c, 0xda, 0xf0, 0x6e, 0xcf, 0x86, 0x4f, 0x01, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x85, 0x76, 0xef, 0x06, 0x47, 0x0e, 0xc9, 0x0e, 0x82, 0x95, 0xf5, 0x60, 0xbd, 0xc6, 0x6a, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x35, 0x76, 0xb3, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0x55, 0x82, 0xae, 0xe1, 0x17, 0xa5, 0x0d, 0x5f, 0x2e, 0x6d, 0x78, 0xb7, 0x67, 0xc3, 0xa7, 0x80, 0x1b, 0x34, 0xae, 0x7f, 0x79, 0x50, 0x10, 0x8f, 0x1f, 0xac, 0xd7, 0x58, 0x6d, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0x64, 0xe4, 0xb4, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x12, 0x9c, 0xd0, 0x0d, 0x8f, 0xc9, 0x1c, 0x2c, 0x97, 0x5f, 0xad, 0xc3, 0x29, 0xb6, 0x06, 0xad, 0x8f, 0x5e, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xb4, 0x3e, 0x7a, 0xd9, 0x00, 0xbe, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x74, 0x61, 0x6c, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0xac, 0xee, 0x65, 0xdd, 0xa0, 0x05, 0x63, 0xcb, 0x0d, 0xce, 0x83, 0x1d, 0x1b, 0x2c, 0x87, 0x64, 0x9a, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0xff, 0x2e, 0x4c, 0x8e, 0x6e, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0x7f, 0x8c, 0x2d, 0x8c, 0x6c, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x1e, 0x18, 0x74, 0x0d, 0x0f, 0x4a, 0xae, 0xe1, 0x6d, 0x9d, 0x01, 0x7c, 0xca, 0xf0, 0xe0, 0xe4, 0xca, 0xe6, 0xe6, 0xd2, 0xde, 0xdc, 0x36, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0x7c, 0xb7, 0x37, 0xb9, 0xb6, 0x83, 0xf4, 0x14, 0xa8, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xb3, 0xbd, 0xb9, 0x9d, 0xad, 0xe1, 0x6d, 0x9d, 0x0d, 0x5a, 0x0d, 0xbc, 0x6c, 0x0d, 0x0f, 0x4a, 0x6e, 0xd0, 0x64, 0xf7, 0xd8, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x80, 0x3f, 0x17, 0x96, 0xc6, 0x76, 0x90, 0x9e, 0x02, 0x55, 0xad, 0x80, 0x3f, 0x37, 0x96, 0x57, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xb4, 0xec, 0x83, 0xd9, 0x00, 0xfc, 0xdc, 0xa5, 0xd1, 0xa1, 0x81, 0xc0, 0xc9, 0x95, 0x99, 0xa5, 0xe1, 0x81, 0x90, 0xbd, 0x8d, 0x8d, 0xbd, 0xc9, 0x91, 0xcd, 0x6d, 0x50, 0x28, 0x77, 0x6e, 0xb0, 0xa4, 0xc8, 0x76, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x07, 0x06, 0x5d, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0xa8, 0x08, 0x5d, 0xc3, 0x83, 0x92, 0x1b, 0x34, 0xd9, 0x3d, 0xb6, 0xe1, 0x6d, 0x9d, 0x01, 0x9f, 0xec, 0x6d, 0x6c, 0x6e, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x76, 0x1c, 0x74, 0x83, 0x15, 0x22, 0xa5, 0x07, 0x8b, 0xdf, 0x6c, 0x5b, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0xa8, 0x08, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x40, 0x29, 0x5d, 0x83, 0x42, 0x30, 0x75, 0xc3, 0xbf, 0xf3, 0x6b, 0xb0, 0x6a, 0x9b, 0xbc, 0x3a, 0x58, 0xfc, 0x66, 0xdb, 0x0a, 0xf8, 0x77, 0x79, 0x64, 0xe5, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0xab, 0x61, 0x98, 0x0d, 0xe0, 0xdb, 0xf6, 0xc6, 0x46, 0x06, 0x72, 0x97, 0x46, 0x56, 0x06, 0x62, 0xf6, 0x26, 0xd7, 0xb6, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0xea, 0x5e, 0xd6, 0x35, 0x28, 0x04, 0x53, 0x0f, 0x16, 0x58, 0x41, 0x6f, 0x70, 0x1e, 0xec, 0xd8, 0x60, 0x39, 0x24, 0xd3, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x77, 0x65, 0x72, 0x74, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xf5, 0xc0, 0xa0, 0x6b, 0x78, 0x50, 0x72, 0x0d, 0x6f, 0xeb, 0x1c, 0x2c, 0x66, 0x19, 0xdf, 0xf0, 0x6e, 0xcf, 0x06, 0xed, 0xc1, 0x60, 0x1e, 0xa4, 0xda, 0xc2, 0xad, 0xe1, 0x6d, 0x9d, 0x01, 0x7f, 0x6e, 0x2c, 0x8c, 0xac, 0x56, 0xc0, 0x9f, 0x1b, 0x0b, 0xa3, 0x37, 0x28, 0x3a, 0x8d, 0x37, 0x58, 0xdd, 0xcb, 0xba, 0x41, 0x0b, 0xc6, 0x96, 0x1b, 0x9c, 0x07, 0x3b, 0x36, 0x58, 0x0e, 0xc9, 0x34, 0x1b, 0x9c, 0xd8, 0x6f, 0x36, 0x58, 0xd3, 0xcc, 0xba, 0xc1, 0xb1, 0xcd, 0x71, 0x83, 0x65, 0xd3, 0xac, 0x1b, 0x1c, 0xdb, 0x1c, 0x37, 0x58, 0xa2, 0xcd, 0xba, 0xc1, 0xd1, 0x75, 0x70, 0x0d, 0x0a, 0x43, 0xd5, 0x0d, 0xd6, 0xf5, 0xbe, 0x6d, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xf5, 0xc0, 0xa0, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x15, 0x68, 0xab, 0x1b, 0xb4, 0x90, 0xa7, 0xb0, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x3b, 0x0e, 0xba, 0x41, 0xd3, 0xc7, 0x97, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x56, 0xc3, 0x30, 0xab, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x0a, 0xb4, 0xd5, 0x0d, 0xda, 0x48, 0x2f, 0xd8, 0xa0, 0xad, 0x5b, 0xcb, 0x5a, 0x83, 0xc2, 0x50, 0x75, 0x83, 0x05, 0x81, 0xb4, 0x1b, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x3d, 0x30, 0xe8, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x05, 0xda, 0xea, 0x06, 0x0d, 0x90, 0x3d, 0xac, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x8e, 0x83, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0xd6, 0xb4, 0xd1, 0x76, 0xd0, 0x08, 0xc3, 0x65, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x15, 0x68, 0xab, 0x1b, 0x2c, 0xb0, 0x72, 0x5e, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xc1, 0x09, 0xdd, 0xa0, 0xa0, 0xc8, 0x5c, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0xa8, 0x08, 0xdd, 0xa0, 0x55, 0x54, 0xcc, 0x0d, 0x5a, 0x45, 0xc5, 0xac, 0x5a, 0x83, 0xc2, 0x50, 0x75, 0x83, 0x25, 0x65, 0x73, 0x1b, 0xac, 0x10, 0x6a, 0xda, 0x60, 0xed, 0x38, 0xe8, 0x06, 0x0b, 0x19, 0x44, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x2b, 0xd0, 0x56, 0x37, 0x68, 0x21, 0x4f, 0x61, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x02, 0x6d, 0x75, 0x83, 0xf6, 0xaf, 0x24, 0x0e, 0x1a, 0x61, 0xb8, 0xac, 0x35, 0x28, 0x0c, 0x55, 0x37, 0x58, 0x7b, 0x4e, 0xbb, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x03, 0x83, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x8e, 0x83, 0x6e, 0xb0, 0xc2, 0x4f, 0x7d, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x1e, 0x18, 0x74, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x02, 0x6d, 0x75, 0xc3, 0x13, 0x77, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x15, 0x68, 0xab, 0x1b, 0xac, 0xcb, 0xae, 0x3b, 0x68, 0x3c, 0xfc, 0xb2, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x0a, 0xb4, 0xd5, 0x0d, 0x4f, 0xdc, 0x6d, 0xb0, 0x68, 0x58, 0xbd, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x0a, 0xb4, 0xd5, 0x0d, 0x4f, 0xdc, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0xd8, 0xb1, 0xae, 0xe1, 0x17, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0x78, 0x78, 0x90, 0x7e, 0x1c, 0xbc, 0xe1, 0x83, 0x9c, 0x35, 0x28, 0x26, 0x31, 0x37, 0x48, 0x19, 0x0c, 0x3e, 0x28, 0x9d, 0xdf, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x67, 0x29, 0xb0, 0x0d, 0x4a, 0x1d, 0xfd, 0x0e, 0x0a, 0x8a, 0xcc, 0x83, 0xc5, 0xec, 0xe7, 0xd5, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0x55, 0x4b, 0xcb, 0x5a, 0x83, 0xc2, 0x50, 0x75, 0x83, 0xf5, 0xd2, 0x6f, 0x1b, 0xac, 0x10, 0x6a, 0xda, 0x60, 0xed, 0x38, 0xe8, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0x3d, 0xa3, 0x6c, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xf5, 0xc0, 0xa0, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x15, 0x68, 0xab, 0x1b, 0x34, 0x20, 0x81, 0xb0, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x62, 0xc7, 0xba, 0x06, 0x8b, 0x0b, 0x93, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0x3c, 0x28, 0xb3, 0x74, 0xd7, 0xf0, 0xe7, 0xd2, 0xe0, 0xe2, 0x86, 0x7f, 0xe7, 0xd7, 0x60, 0x7d, 0x81, 0x73, 0xb5, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xc3, 0xbd, 0xcd, 0xa1, 0x6d, 0x50, 0x50, 0x64, 0x6e, 0x50, 0x50, 0x64, 0x1e, 0x7e, 0x3f, 0x5b, 0xc3, 0xdb, 0x3a, 0x03, 0x3e, 0xdc, 0x9b, 0xdc, 0x58, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x56, 0xa0, 0xad, 0x6e, 0xd0, 0x94, 0x56, 0xc1, 0x41, 0x4b, 0xd0, 0x98, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x15, 0x68, 0xab, 0x1b, 0x34, 0xa5, 0x55, 0xb0, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x81, 0xb6, 0xba, 0x41, 0x8a, 0x93, 0xd3, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x09, 0x4e, 0xe8, 0x06, 0x45, 0x4e, 0xeb, 0x06, 0x8d, 0xcd, 0x5f, 0x56, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x15, 0x68, 0xab, 0x1b, 0x34, 0xa5, 0x55, 0xb0, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x81, 0xb6, 0xba, 0x41, 0x8a, 0x93, 0xd3, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x09, 0x4e, 0xe8, 0x06, 0x05, 0x6c, 0xfe, 0x06, 0x6d, 0x08, 0x60, 0x56, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x15, 0x68, 0xab, 0x1b, 0x34, 0xa5, 0x55, 0x70, 0xd0, 0xd6, 0x35, 0xe6, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x59, 0x25, 0xe8, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0xbe, 0xda, 0xdb, 0xd8, 0xda, 0x41, 0x7a, 0x0a, 0xd4, 0xc1, 0x62, 0xf6, 0xf3, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x0a, 0xb4, 0xd5, 0x0d, 0x1a, 0x90, 0x40, 0x58, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xb1, 0x63, 0x5d, 0xc3, 0x2f, 0x4a, 0x1b, 0x94, 0x70, 0xee, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x49, 0x81, 0xcc, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x56, 0x4a, 0xaa, 0x1e, 0x94, 0x75, 0x9e, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x85, 0x8a, 0xa1, 0x1b, 0xb4, 0x04, 0x8f, 0x59, 0xd5, 0x1a, 0x14, 0x86, 0xaa, 0x1b, 0x2c, 0x8f, 0x84, 0xdb, 0x60, 0x85, 0x50, 0xd3, 0x06, 0xeb, 0x81, 0x41, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xcb, 0x2a, 0x41, 0xd7, 0xf0, 0x8b, 0xd2, 0x06, 0xcd, 0x6f, 0x5a, 0x6e, 0xf8, 0xc5, 0x65, 0x83, 0xe6, 0x4c, 0x12, 0x36, 0x3c, 0xad, 0x73, 0x50, 0xd6, 0x79, 0x1e, 0x34, 0xda, 0x89, 0xb9, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x81, 0xb6, 0xba, 0x41, 0xeb, 0xeb, 0x0e, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x1b, 0x34, 0x36, 0x7f, 0x79, 0xd0, 0xba, 0xc0, 0x65, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x1b, 0xb4, 0xe5, 0x90, 0x79, 0xd0, 0xb8, 0xaf, 0xe5, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x05, 0xda, 0xea, 0x06, 0x8d, 0xf6, 0x15, 0x1c, 0xb4, 0x16, 0x91, 0xd9, 0x1a, 0x14, 0x86, 0xaa, 0x1b, 0x2c, 0xaa, 0x80, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0x2b, 0xd0, 0x56, 0x37, 0x68, 0xb4, 0xaf, 0xe0, 0xa0, 0xad, 0x6b, 0xcc, 0x35, 0x28, 0x0c, 0x55, 0x37, 0x58, 0x8e, 0x42, 0x7b, 0xd0, 0xf6, 0xbf, 0xe5, 0x1a, 0x14, 0x86, 0xaa, 0x1b, 0xac, 0x56, 0x9d, 0xdd, 0x60, 0x85, 0x50, 0xd3, 0x06, 0xeb, 0x81, 0x41, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x2b, 0xd0, 0x56, 0x37, 0x68, 0x3d, 0x4c, 0x61, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x76, 0x1c, 0x74, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0xca, 0x73, 0xb6, 0x83, 0x96, 0x30, 0x31, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xc1, 0x09, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0x2c, 0xa0, 0xf2, 0x3e, 0x68, 0xcc, 0x41, 0x6a, 0x83, 0x06, 0xe0, 0x32, 0x6b, 0x0d, 0x0a, 0x43, 0xd5, 0x0d, 0x96, 0x3f, 0xcf, 0x6e, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x45, 0xc2, 0xb3, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x56, 0xa0, 0xad, 0x6e, 0xb0, 0x80, 0xca, 0x7b, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x02, 0x6d, 0x75, 0x83, 0x26, 0x35, 0x2f, 0xd6, 0xf0, 0xb6, 0xce, 0x80, 0xdf, 0xf6, 0x46, 0x17, 0x56, 0xad, 0x41, 0x61, 0xa8, 0xba, 0xc1, 0x42, 0x87, 0xb7, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x1e, 0x18, 0x74, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x02, 0x6d, 0x75, 0x83, 0x66, 0xa8, 0x12, 0xd6, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x6b, 0xc7, 0x41, 0x37, 0x58, 0x06, 0x60, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xa8, 0x49, 0xba, 0x41, 0xfb, 0x04, 0x97, 0x07, 0x8d, 0x30, 0x5c, 0xd6, 0x1a, 0x14, 0x9d, 0xc6, 0x1b, 0x2c, 0xab, 0x04, 0x5d, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0x70, 0x83, 0xd0, 0x2f, 0xd9, 0x20, 0xa4, 0x4c, 0x36, 0x58, 0xd3, 0xf3, 0xdc, 0x06, 0x85, 0xa1, 0xea, 0x06, 0x0d, 0xff, 0x30, 0x6c, 0xf8, 0xc5, 0x65, 0x83, 0xc6, 0xc5, 0x09, 0xd6, 0xf0, 0x15, 0xce, 0x86, 0xbf, 0x68, 0x36, 0x58, 0xd3, 0xf3, 0xbc, 0x41, 0x09, 0x8f, 0xb9, 0xe1, 0xc1, 0x9d, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0x22, 0x68, 0x3b, 0x38, 0x4b, 0x25, 0xb6, 0xe1, 0xdd, 0x9e, 0x0d, 0xd6, 0xcc, 0x86, 0x6e, 0xb0, 0x1e, 0x79, 0x7e, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x76, 0x1c, 0x74, 0x83, 0x65, 0x00, 0xa6, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x9f, 0x7b, 0x4b, 0x63, 0xab, 0x0d, 0x1a, 0x1d, 0xca, 0x6c, 0x0d, 0x0a, 0x43, 0xd5, 0x0d, 0xd6, 0x6c, 0xbc, 0x6d, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xf5, 0xc0, 0xa0, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x15, 0x68, 0xab, 0x1b, 0x34, 0xda, 0x57, 0x70, 0xd0, 0x2a, 0xcb, 0xe5, 0x1a, 0x14, 0x9d, 0xc6, 0x1b, 0x2c, 0xab, 0x04, 0x5d, 0xc3, 0x2f, 0x4a, 0x1b, 0xb4, 0xad, 0x99, 0xb9, 0xe1, 0x17, 0x97, 0x0d, 0x1a, 0x90, 0x40, 0x58, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x87, 0x43, 0x0b, 0xc3, 0x3b, 0x3c, 0xf4, 0xd3, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x33, 0x1b, 0xba, 0xc1, 0x7a, 0xe4, 0xf9, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0xda, 0x71, 0xd0, 0x0d, 0x16, 0x0b, 0x85, 0x1e, 0xb4, 0x24, 0x9b, 0xd9, 0x41, 0xc3, 0xb4, 0x99, 0x6b, 0x50, 0x18, 0xaa, 0x6e, 0xb0, 0x08, 0x4f, 0x6e, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x07, 0x06, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xab, 0x04, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0xa7, 0x92, 0x79, 0x90, 0x6a, 0x0b, 0xb7, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x3b, 0x0e, 0xba, 0xc1, 0xda, 0x17, 0xd2, 0x35, 0x3c, 0x28, 0xb9, 0xc1, 0x5a, 0x92, 0xd6, 0x83, 0xc5, 0xf0, 0xe7, 0x75, 0xd0, 0x30, 0x6d, 0xe6, 0x1a, 0x14, 0x86, 0xaa, 0x1b, 0x2c, 0xe0, 0x67, 0xdd, 0xa0, 0xe8, 0x34, 0xde, 0x60, 0x59, 0x25, 0xe8, 0x1a, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x1b, 0xac, 0xbf, 0x83, 0x3d, 0x68, 0xca, 0xd3, 0x72, 0x83, 0x12, 0x1e, 0x73, 0xc3, 0xe7, 0x41, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x46, 0xfb, 0x0a, 0x0e, 0x0f, 0xfd, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x94, 0x56, 0xc1, 0xe1, 0xa1, 0x9f, 0x83, 0x23, 0x62, 0xc1, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x51, 0x11, 0xba, 0xc1, 0x5a, 0x44, 0xf5, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x58, 0xe3, 0xd2, 0xdb, 0x41, 0xe3, 0xbe, 0x96, 0xad, 0x41, 0x61, 0xa8, 0xba, 0xc1, 0x8a, 0xde, 0xd9, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x76, 0x1c, 0x74, 0x83, 0x85, 0x70, 0xa4, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xf5, 0xc0, 0xa0, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x15, 0x68, 0xab, 0x1b, 0xb4, 0x8b, 0xc2, 0x70, 0xd0, 0xba, 0xc0, 0xe5, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0xed, 0x38, 0xe8, 0x06, 0x0b, 0xec, 0x4c, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x2b, 0xd0, 0x56, 0x37, 0x68, 0xf8, 0x87, 0xe1, 0xa0, 0x11, 0x86, 0xcb, 0x6a, 0x0d, 0x0a, 0x43, 0xd5, 0x0d, 0x56, 0x9e, 0xd2, 0x6e, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x1b, 0x2c, 0xe6, 0x1f, 0x5d, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x07, 0x06, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x40, 0x5b, 0xdd, 0xa0, 0x81, 0xbf, 0x84, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x42, 0x4d, 0xd2, 0x0d, 0xda, 0x27, 0xb8, 0x5c, 0x83, 0x15, 0x42, 0x4d, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x3f, 0x63, 0x0b, 0x6b, 0xdb, 0xa0, 0x19, 0x86, 0xcb, 0x83, 0x46, 0x18, 0x2e, 0x6b, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x96, 0xd8, 0xb1, 0xae, 0xe1, 0x17, 0xa5, 0x0d, 0x96, 0x19, 0x9d, 0x6f, 0xf8, 0x8b, 0x66, 0x83, 0x05, 0x12, 0xce, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x1c, 0x32, 0x08, 0xd6, 0xa0, 0x2c, 0x79, 0x5f, 0x80, 0x3f, 0xac, 0x8e, 0xee, 0xcd, 0x2d, 0xac, 0xad, 0x6c, 0x83, 0x86, 0x52, 0xbb, 0x36, 0x68, 0x15, 0xc9, 0xa0, 0x0d, 0xbf, 0x28, 0x6d, 0xb0, 0x2e, 0xd4, 0x7c, 0xc3, 0x5f, 0x34, 0x1b, 0x2c, 0xb0, 0x70, 0xde, 0xf0, 0x8b, 0xcb, 0x06, 0xad, 0xa9, 0x28, 0x6c, 0xd0, 0x2e, 0x4b, 0xc1, 0x06, 0xad, 0x87, 0x29, 0x1c, 0x34, 0xf5, 0xa2, 0x79, 0xd0, 0x16, 0x26, 0x66, 0xad, 0x41, 0x61, 0xa8, 0xba, 0xc1, 0xb2, 0x5d, 0xda, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x1e, 0x18, 0x74, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x56, 0xa0, 0xad, 0x6e, 0xd0, 0x42, 0x9e, 0xc2, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x81, 0xb6, 0xba, 0x41, 0x83, 0xbd, 0x13, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xb5, 0xab, 0xb4, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0x6a, 0x92, 0x6e, 0xd0, 0x3e, 0xc1, 0xe5, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0xcd, 0x6c, 0xe8, 0x06, 0x6b, 0x9c, 0x49, 0x0f, 0x5a, 0xc2, 0xc4, 0xac, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x4b, 0x70, 0x42, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0x0b, 0xa8, 0xbc, 0x37, 0x68, 0x1d, 0xf8, 0xa2, 0x0d, 0xda, 0x3e, 0xd2, 0xac, 0x35, 0x28, 0x0c, 0x55, 0x37, 0x58, 0x3a, 0x41, 0xbb, 0xe1, 0x6d, 0x9d, 0x01, 0x5f, 0xae, 0x0e, 0x8e, 0x6d, 0x0d, 0x0a, 0x43, 0xd5, 0x0d, 0xd6, 0x9f, 0xd1, 0x6e, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xf5, 0xc0, 0xa0, 0x1b, 0x34, 0xa9, 0x89, 0xb9, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x82, 0x13, 0xba, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0x40, 0xe5, 0xbd, 0x41, 0x2b, 0x92, 0x15, 0x1d, 0xb4, 0xc6, 0x7d, 0xd9, 0x1a, 0x14, 0x86, 0xaa, 0x1b, 0xac, 0x99, 0x9f, 0xdd, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x6b, 0xc7, 0x41, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0x2b, 0xc9, 0x67, 0x5b, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x07, 0x06, 0x5d, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x65, 0x95, 0xa0, 0x6b, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0x6d, 0xb0, 0x24, 0x70, 0x6e, 0x0d, 0x7f, 0x2e, 0x0d, 0x2e, 0x1e, 0x2c, 0xb0, 0x70, 0x6e, 0xc3, 0x2f, 0x2e, 0x1b, 0xb4, 0x4c, 0x9d, 0xb0, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0xb4, 0xaf, 0xe0, 0xa0, 0x04, 0x92, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0xb4, 0x4c, 0x9d, 0xb0, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0xb4, 0xaf, 0x60, 0x83, 0xa4, 0xb4, 0xe0, 0x83, 0xc2, 0x49, 0xf6, 0xf0, 0x16, 0x5a, 0x1b, 0xac, 0x10, 0x6a, 0xda, 0x60, 0xed, 0x38, 0xe8, 0x06, 0x6d, 0xf7, 0x65, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x56, 0x54, 0x84, 0x6e, 0xd0, 0x88, 0x61, 0xe6, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0xed, 0x38, 0xe8, 0x06, 0x8d, 0xb1, 0x69, 0x1e, 0x34, 0xc2, 0x70, 0x59, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x1b, 0x34, 0x00, 0x97, 0xb9, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x81, 0xb6, 0xba, 0x41, 0x9b, 0xeb, 0x09, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x15, 0x68, 0xab, 0x1b, 0x34, 0x53, 0x97, 0x79, 0xd0, 0xae, 0xa2, 0x66, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x56, 0xa0, 0xad, 0x6e, 0xd0, 0xe6, 0x7a, 0xc2, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x45, 0x45, 0xe8, 0x06, 0x6d, 0x61, 0x62, 0x1e, 0xb4, 0xab, 0xa8, 0xd9, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x05, 0xda, 0xea, 0x06, 0x2d, 0x53, 0x27, 0xac, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x8e, 0x83, 0x6e, 0xb0, 0x0c, 0xc0, 0x74, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xa2, 0x22, 0x74, 0x83, 0x66, 0x18, 0x2e, 0x0f, 0xda, 0x55, 0xd4, 0xac, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xb2, 0x4a, 0xd0, 0x35, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x0f, 0x0f, 0x16, 0x58, 0x38, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x94, 0x56, 0xc1, 0xc1, 0x81, 0x59, 0xf5, 0xf0, 0xd0, 0xcf, 0x41, 0x23, 0x0c, 0x97, 0xb5, 0x06, 0x85, 0xa1, 0xea, 0x06, 0x0b, 0xe2, 0x66, 0x37, 0x28, 0x3a, 0x8d, 0x37, 0x58, 0x56, 0x09, 0xba, 0x86, 0x5f, 0x94, 0x36, 0x68, 0x5b, 0x33, 0xf3, 0xa0, 0xad, 0xd0, 0xcc, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x66, 0x36, 0x74, 0x83, 0xf5, 0xc8, 0xf3, 0x07, 0x2d, 0xc9, 0x66, 0xae, 0x41, 0x61, 0xa8, 0xba, 0xc1, 0x2a, 0x71, 0xd6, 0x83, 0x96, 0xd3, 0x31, 0xd7, 0xa0, 0x30, 0x54, 0xdd, 0x60, 0xd9, 0x25, 0xdc, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x0f, 0x0c, 0xba, 0x41, 0xa3, 0x43, 0x99, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x15, 0x68, 0xab, 0x1b, 0x34, 0x5f, 0xe1, 0xb0, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x3b, 0x0e, 0xba, 0x41, 0x1b, 0x02, 0x98, 0x07, 0xad, 0x0b, 0x5c, 0xb6, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x51, 0x11, 0xba, 0x41, 0xdb, 0x18, 0x99, 0x07, 0x8d, 0xfb, 0x5a, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x56, 0xa0, 0xad, 0x6e, 0xd0, 0x68, 0x5f, 0xc1, 0x41, 0xeb, 0x1b, 0x99, 0xad, 0x41, 0x61, 0xa8, 0xba, 0xc1, 0xba, 0x75, 0xb8, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x1e, 0x18, 0x74, 0x83, 0xd6, 0xb3, 0x34, 0xd7, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x6b, 0xc7, 0x41, 0x37, 0x48, 0xa3, 0x3d, 0x5a, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x07, 0x06, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x40, 0x5b, 0xdd, 0xa0, 0x01, 0x09, 0x84, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x42, 0x4d, 0xd2, 0x0d, 0x9a, 0x96, 0xb8, 0x3c, 0x68, 0x21, 0xe1, 0xb2, 0x35, 0x28, 0x3a, 0x8d, 0x37, 0x58, 0x81, 0xb6, 0xba, 0x41, 0x83, 0x05, 0x09, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x2c, 0xd4, 0x24, 0xdd, 0xa0, 0x7d, 0x82, 0xcb, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xd0, 0x76, 0x87, 0xe6, 0x06, 0x6d, 0xdd, 0x5a, 0x6e, 0xd0, 0x0c, 0xc3, 0xe5, 0x41, 0x0b, 0x09, 0x97, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x65, 0x95, 0xa0, 0x1b, 0x34, 0x7b, 0x9d, 0xb9, 0x86, 0x07, 0x25, 0x37, 0x58, 0x84, 0xd3, 0x7a, 0xb0, 0x18, 0xfe, 0xbc, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x0a, 0xb4, 0xd5, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0xbb, 0x09, 0x04, 0x07, 0x8b, 0xaf, 0xbc, 0x0f, 0x1a, 0xf7, 0xb5, 0x5c, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x40, 0x29, 0xdd, 0xa0, 0x89, 0x81, 0xcd, 0xaa, 0x35, 0x28, 0x0c, 0x55, 0x37, 0x58, 0x1d, 0xd6, 0xb6, 0xe1, 0x6d, 0x9d, 0x0d, 0x5a, 0x62, 0xb4, 0x6c, 0x0d, 0x0a, 0x43, 0xd5, 0x0d, 0x16, 0x45, 0xd3, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x85, 0x9a, 0xa4, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x55, 0x51, 0xa2, 0x07, 0x0b, 0xb7, 0x44, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x2b, 0xd0, 0x56, 0x37, 0x68, 0x8e, 0xb2, 0xe0, 0xa0, 0x85, 0x84, 0xcb, 0xd6, 0xa0, 0x30, 0x54, 0xdd, 0x60, 0x8d, 0x0f, 0xed, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xa8, 0x49, 0xba, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0xba, 0x25, 0x7a, 0xb0, 0x26, 0x4a, 0x74, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x02, 0x6d, 0x75, 0x83, 0xd6, 0x02, 0x0c, 0x0e, 0x5a, 0x48, 0xb8, 0x6c, 0x0d, 0x0a, 0x43, 0xd5, 0x0d, 0x96, 0x45, 0xd2, 0x6e, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x1b, 0xa4, 0xf9, 0xa9, 0xae, 0xe1, 0x6d, 0x9d, 0x01, 0x5f, 0xae, 0xac, 0x8c, 0xac, 0x0e, 0xa7, 0x58, 0x0b, 0xf8, 0x67, 0x61, 0x73, 0xf0, 0x06, 0x2b, 0x84, 0x9a, 0xd6, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0x06, 0xb8, 0x30, 0xb9, 0xb9, 0x32, 0x90, 0x1e, 0xb8, 0x30, 0x3a, 0xb4, 0x1e, 0x90, 0x32, 0xba, 0x31, 0xd7, 0xc1, 0x7a, 0x60, 0xd0, 0x35, 0x28, 0x3a, 0x8d, 0x37, 0x58, 0x56, 0x09, 0xba, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0x3c, 0x68, 0xef, 0x1f, 0x73, 0x83, 0x46, 0xfc, 0x31, 0xd7, 0xf0, 0xe7, 0xd2, 0xe0, 0xe3, 0x41, 0x7b, 0xff, 0x98, 0x6d, 0x90, 0x64, 0x40, 0xb8, 0xc1, 0x89, 0xa0, 0xed, 0xe0, 0x0c, 0x6e, 0xb6, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x56, 0x54, 0x84, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0x55, 0x82, 0xae, 0xe1, 0x17, 0xa5, 0x0d, 0x4a, 0x38, 0xf7, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x22, 0x55, 0x6f, 0x78, 0x5a, 0x67, 0x0d, 0xbf, 0x28, 0x6d, 0x50, 0x80, 0x77, 0x1e, 0x14, 0x14, 0x99, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0x2a, 0x86, 0x1e, 0xac, 0x06, 0x20, 0x6d, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xac, 0x12, 0x74, 0x0d, 0xbf, 0x28, 0x6d, 0xd0, 0xee, 0xab, 0xe6, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x8b, 0xcb, 0xc1, 0xaa, 0x9f, 0xde, 0x83, 0xb2, 0xce, 0x73, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x68, 0x61, 0x73, 0x70, 0x6d, 0xd0, 0xea, 0xd1, 0x66, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x65, 0x95, 0xa0, 0x1b, 0xb4, 0x9a, 0xb4, 0xb9, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x98, 0x4c, 0x7a, 0xb0, 0x1a, 0x80, 0xb4, 0x56, 0x83, 0x26, 0xfb, 0x30, 0x37, 0x28, 0x3a, 0x8d, 0x37, 0x58, 0xdd, 0xcb, 0xba, 0x41, 0x13, 0x6d, 0x98, 0x1b, 0x9c, 0x07, 0x3b, 0x36, 0x58, 0x0e, 0xc9, 0x34, 0x1b, 0x9c, 0xd8, 0x6f, 0x36, 0x58, 0xd3, 0xcc, 0xba, 0xc1, 0xb1, 0xcd, 0x71, 0x83, 0x65, 0xd3, 0xac, 0x1b, 0x1c, 0xdb, 0x1c, 0x37, 0x58, 0xa2, 0xcd, 0xba, 0xc1, 0xd1, 0x75, 0x70, 0x0d, 0x0a, 0x43, 0xd5, 0x0d, 0x96, 0x94, 0xcd, 0x6d, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x1b, 0x2c, 0x64, 0x10, 0x3d, 0x68, 0xe6, 0x17, 0x73, 0x0d, 0x0a, 0x43, 0xd5, 0x0d, 0xd6, 0xf5, 0xbe, 0x6d, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x1b, 0x34, 0x7d, 0x7c, 0xb9, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x81, 0xb6, 0xba, 0x41, 0x9b, 0x34, 0x13, 0x07, 0x8d, 0x30, 0x5c, 0xb6, 0x06, 0x85, 0xa1, 0xea, 0x06, 0x6b, 0xcf, 0x69, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0x0a, 0xb4, 0xd5, 0x0d, 0xda, 0xad, 0x8a, 0x58, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x99, 0x0d, 0xdd, 0x60, 0x21, 0x1c, 0xe9, 0x41, 0xa3, 0x9d, 0x98, 0xad, 0x41, 0x61, 0xa8, 0xba, 0xc1, 0x7a, 0xe9, 0xb7, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x1e, 0x18, 0x74, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x76, 0x1c, 0x74, 0x83, 0x96, 0xe0, 0x31, 0xd7, 0x60, 0x85, 0x50, 0xd3, 0x06, 0xeb, 0x81, 0x41, 0x37, 0x68, 0xb0, 0x19, 0x73, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x02, 0x6d, 0x75, 0xc3, 0x13, 0x77, 0x07, 0xad, 0x45, 0x64, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x56, 0xa0, 0xad, 0x6e, 0x78, 0xe2, 0xee, 0xa0, 0xf5, 0x8d, 0xcc, 0x83, 0x06, 0xa9, 0x31, 0x6b, 0x0d, 0x0a, 0x43, 0xd5, 0x0d, 0x96, 0xa3, 0xd0, 0x6e, 0x50, 0x74, 0x1a, 0x6f, 0xb0, 0xac, 0x12, 0x74, 0x0d, 0xbf, 0x28, 0x6d, 0xb0, 0xc0, 0x0a, 0xfa, 0xe0, 0xb4, 0x72, 0xb6, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0x0a, 0xb4, 0xd5, 0x0d, 0x9a, 0x69, 0x8d, 0xd8, 0xa0, 0xe8, 0x34, 0xde, 0x60, 0xa1, 0x26, 0xe9, 0x06, 0xed, 0x13, 0x5c, 0x6e, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x1b, 0x34, 0xc3, 0x70, 0xb9, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x0f, 0x0c, 0xba, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x3b, 0x0e, 0xba, 0xc1, 0x1a, 0x67, 0xd2, 0x83, 0xf6, 0x99, 0x34, 0x0f, 0x96, 0x98, 0x94, 0xb6, 0x06, 0x85, 0xa1, 0xea, 0x06, 0x4b, 0x27, 0x68, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0x0a, 0xb4, 0xd5, 0x0d, 0x9a, 0x5e, 0x93, 0x58, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xd4, 0x24, 0xdd, 0xa0, 0x69, 0x89, 0xcb, 0x83, 0xf6, 0x99, 0x34, 0x5b, 0x83, 0xc2, 0x50, 0x75, 0x83, 0xd5, 0xaa, 0xb3, 0x07, 0xcd, 0xcc, 0x65, 0xae, 0x41, 0x61, 0xa8, 0xba, 0xc1, 0xea, 0xb0, 0xb6, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x76, 0x1c, 0x74, 0x83, 0x05, 0x76, 0xa6, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x15, 0x68, 0xab, 0x1b, 0x34, 0x25, 0x17, 0xb1, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x0f, 0x0c, 0xba, 0x41, 0x3b, 0x1f, 0x97, 0x07, 0x0b, 0xeb, 0x59, 0x6b, 0x83, 0x06, 0xf3, 0x32, 0xd7, 0xa0, 0x30, 0x54, 0xdd, 0x60, 0xd9, 0x2e, 0xed, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x0f, 0x0c, 0xba, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x2b, 0xd0, 0x56, 0x37, 0x68, 0xb0, 0x77, 0xe2, 0xa0, 0xcd, 0x22, 0xcd, 0x83, 0xa6, 0xa2, 0x34, 0xd7, 0xa0, 0x30, 0x54, 0xdd, 0x60, 0xdd, 0x3a, 0xdc, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x82, 0x13, 0xba, 0xc1, 0x1a, 0x29, 0xef, 0x83, 0xe5, 0x4f, 0xac, 0x6b, 0x50, 0x18, 0xaa, 0x6e, 0xb0, 0x20, 0x90, 0x76, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xc1, 0x09, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0x2c, 0xa0, 0xf2, 0x3e, 0x68, 0xf5, 0x10, 0xec, 0xa0, 0xf1, 0x58, 0xcc, 0x35, 0x28, 0x0c, 0x55, 0x37, 0x58, 0x7f, 0x46, 0xbb, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x03, 0x83, 0x6e, 0xd0, 0x94, 0xe1, 0xe6, 0x41, 0xab, 0x61, 0x9a, 0x6b, 0x50, 0x18, 0xaa, 0x6e, 0xb0, 0xf2, 0x94, 0x76, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x1d, 0x07, 0xdd, 0x60, 0x31, 0xff, 0xe8, 0x1a, 0x14, 0x9d, 0xc6, 0x1b, 0x2c, 0xb1, 0x63, 0x5d, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x6d, 0x10, 0x1c, 0x08, 0x07, 0xeb, 0x3b, 0xa1, 0x37, 0x58, 0x66, 0x74, 0xde, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x87, 0x0c, 0x82, 0x0d, 0x1a, 0x55, 0xd1, 0xdc, 0xf0, 0x8b, 0xd2, 0x06, 0xeb, 0x42, 0xcd, 0x37, 0x58, 0xe9, 0xe2, 0xb4, 0x86, 0xef, 0xdb, 0x5b, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x62, 0x0b, 0x73, 0x83, 0x76, 0x59, 0x0a, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x59, 0x6f, 0xbb, 0x41, 0x51, 0x29, 0xbe, 0x86, 0xb7, 0x75, 0x06, 0xaf, 0x0f, 0x8a, 0x2d, 0xcc, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x59, 0x6f, 0xbb, 0x41, 0x51, 0x29, 0xbe, 0xc1, 0x9a, 0x8d, 0xb7, 0x0d, 0xda, 0x65, 0x29, 0xa8, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0xb0, 0xe3, 0xc4, 0x1a, 0xde, 0xd6, 0x39, 0x68, 0xf7, 0x80, 0xf3, 0xa0, 0xa9, 0x17, 0xcd, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x1e, 0x18, 0x74, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xa2, 0x22, 0x74, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x02, 0x6d, 0x75, 0x83, 0x82, 0x22, 0x73, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xae, 0x60, 0x74, 0x83, 0xa5, 0xf5, 0xac, 0x07, 0xab, 0x01, 0x48, 0x3b, 0x68, 0x09, 0x13, 0x73, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x02, 0x6d, 0x75, 0x83, 0x82, 0x22, 0xf3, 0xa0, 0x25, 0x4c, 0xcc, 0x5a, 0x83, 0xc2, 0x50, 0x75, 0x83, 0x55, 0xe2, 0xac, 0x1b, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x3d, 0x30, 0xe8, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x05, 0xda, 0xea, 0x06, 0x0d, 0x3b, 0x4e, 0xac, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x56, 0x54, 0x84, 0x6e, 0xb0, 0xb4, 0x9e, 0x75, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x76, 0x1c, 0x74, 0x83, 0xc5, 0xfc, 0xa3, 0x07, 0x2d, 0x61, 0x62, 0xd6, 0x06, 0x4d, 0x19, 0x6e, 0xd6, 0xac, 0x41, 0xeb, 0x5c, 0x9b, 0x1b, 0xac, 0x10, 0x6a, 0x5a, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x3f, 0xb8, 0x30, 0x3a, 0x34, 0x90, 0x32, 0xb6, 0xb2, 0xb6, 0x32, 0x37, 0xba, 0x83, 0xf5, 0xc0, 0xa0, 0x1b, 0x34, 0x0d, 0x71, 0xb9, 0x41, 0xdb, 0xff, 0x96, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x15, 0x68, 0xab, 0x1b, 0x34, 0xda, 0x57, 0x70, 0xd0, 0x12, 0x34, 0xe6, 0x06, 0x8d, 0x7b, 0x65, 0xae, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0xb2, 0x4a, 0xd0, 0x35, 0xfc, 0xa2, 0xb4, 0x41, 0x53, 0xde, 0x98, 0x1b, 0x7e, 0x71, 0xd9, 0xa0, 0xd1, 0xbe, 0x82, 0x35, 0x7c, 0x90, 0xb3, 0x06, 0xc5, 0x24, 0xe6, 0x1a, 0x3e, 0x57, 0xda, 0x20, 0x04, 0x1f, 0x36, 0x58, 0x1f, 0x91, 0x7e, 0x70, 0x88, 0xe9, 0x38, 0x3c, 0xb8, 0xb3, 0xc1, 0xba, 0xec, 0xba, 0x83, 0xb5, 0x54, 0x76, 0x6b, 0x50, 0x96, 0xbc, 0x6f, 0xb0, 0x62, 0x4d, 0x6f, 0x83, 0x85, 0xa7, 0xe7, 0x87, 0x87, 0x7e, 0x3a, 0x58, 0xce, 0x7e, 0xde, 0x6a, 0xd0, 0xc2, 0x61, 0xe6, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0xcb, 0x2a, 0x41, 0xd7, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0xda, 0x60, 0x11, 0x41, 0xdd, 0x06, 0xeb, 0x2d, 0xe6, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x6b, 0x1d, 0xdb, 0x36, 0x28, 0x2a, 0xc5, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x27, 0x82, 0xb6, 0xc3, 0xef, 0x67, 0x6d, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x85, 0x8a, 0xa1, 0x07, 0x4b, 0xee, 0xf2, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x0b, 0x15, 0x43, 0x0f, 0xd6, 0xbc, 0x87, 0x36, 0x0b, 0xf8, 0x70, 0x6f, 0x6f, 0xe6, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x2b, 0x77, 0x9c, 0x0d, 0x40, 0x0b, 0x5c, 0x18, 0x1d, 0x1a, 0x48, 0x8b, 0x0f, 0x08, 0x0a, 0x5b, 0xda, 0x1c, 0x1d, 0x08, 0xda, 0xdb, 0x9b, 0x5b, 0x6a, 0xc3, 0x2f, 0x4a, 0x1b, 0xac, 0x91, 0x4e, 0xdf, 0xf0, 0x17, 0xcd, 0x06, 0xeb, 0x9a, 0x9f, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x89, 0x54, 0xbd, 0xc1, 0x22, 0xf2, 0xf4, 0x35, 0xfc, 0xa2, 0xb4, 0xc1, 0x92, 0xc0, 0xb9, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x68, 0x5f, 0xc1, 0x06, 0x6b, 0xa9, 0xec, 0x0e, 0x0f, 0xfd, 0x74, 0x38, 0xc5, 0x5a, 0xc0, 0x1f, 0x93, 0x0b, 0x6b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x1a, 0x7a, 0xe4, 0x6c, 0x00, 0x3f, 0xb8, 0x30, 0xb9, 0xb9, 0x32, 0x90, 0x3a, 0xb7, 0xb6, 0x30, 0xb9, 0xb5, 0x0d, 0x4a, 0x09, 0xf1, 0x35, 0x28, 0x59, 0xd8, 0x67, 0x99, 0x35, 0x08, 0x57, 0x84, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0xf8, 0xc0, 0x6b, 0x63, 0x03, 0x71, 0x7b, 0x23, 0x2b, 0x03, 0x39, 0x2b, 0x73, 0x2b, 0x93, 0x0b, 0xa3, 0x7b, 0x93, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0xa5, 0x37, 0xfd, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0x31, 0x05, 0xaa, 0x36, 0x68, 0xd0, 0x81, 0xa1, 0xd5, 0xa0, 0x31, 0x05, 0xaa, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xc6, 0x14, 0xa8, 0x3a, 0x58, 0x25, 0x90, 0xbd, 0xe1, 0xa3, 0xf6, 0x0d, 0x82, 0xcd, 0x74, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xbc, 0xde, 0xea, 0xe8, 0xca, 0xe4, 0x40, 0xca, 0xda, 0xc4, 0xca, 0xc8, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x17, 0xf8, 0x64, 0x6f, 0x77, 0xee, 0x1a, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xf8, 0xd6, 0xb9, 0xbd, 0xc9, 0x91, 0x95, 0xc9, 0x95, 0x91, 0x81, 0xb0, 0xa5, 0xcd, 0xd1, 0x6d, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0x2e, 0xf0, 0xd9, 0xea, 0xdc, 0xe8, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x60, 0x4b, 0x9b, 0xa3, 0x03, 0x49, 0xa3, 0x2b, 0x6b, 0xdb, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0x5d, 0xe0, 0xb3, 0xa5, 0xb5, 0x95, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0xf7, 0x26, 0x47, 0x56, 0x26, 0x57, 0x46, 0x06, 0xc2, 0x96, 0x36, 0x47, 0xb7, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0xc0, 0x67, 0x7b, 0x93, 0x23, 0xd7, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xe0, 0xb1, 0x2b, 0x93, 0x9b, 0x2b, 0xdb, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0x5d, 0xe0, 0xc3, 0xbd, 0x95, 0xb5, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x23, 0xc6, 0xf6, 0x36, 0xb6, 0x16, 0x57, 0xf7, 0x46, 0x57, 0xb6, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0xc0, 0x17, 0x63, 0x7b, 0x1b, 0xd7, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xe0, 0x45, 0x2b, 0x0b, 0x23, 0x4b, 0x73, 0x3b, 0xdb, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0xb0, 0x2c, 0x75, 0x38, 0xc5, 0xd6, 0xe0, 0x84, 0x47, 0xba, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x0f, 0x6e, 0x6f, 0x64, 0x65, 0x20, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x07, 0x0d, 0x3a, 0x30, 0xac, 0x00, 0x3e, 0x74, 0x72, 0x69, 0x67, 0x2d, 0x73, 0x74, 0x79, 0x6c, 0xe5, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x8b, 0xee, 0x9c, 0x0d, 0xc0, 0x0b, 0x5d, 0x1e, 0x5c, 0x19, 0xc8, 0x9b, 0x19, 0x08, 0x5c, 0x98, 0xdc, 0x5c, 0x19, 0x19, 0x08, 0x5b, 0x9a, 0x5b, 0xd9, 0x86, 0x8f, 0xda, 0x37, 0x08, 0xda, 0x9f, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x3e, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x18, 0x98, 0x1e, 0x6b, 0x10, 0x6c, 0xa6, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x57, 0xe6, 0x46, 0x06, 0xf2, 0x66, 0x06, 0x92, 0xe6, 0x06, 0x57, 0x47, 0x77, 0xb0, 0x0a, 0x25, 0x7c, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0xac, 0xa9, 0x66, 0x5d, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x3e, 0x7a, 0x7a, 0x40, 0xca, 0xdc, 0xc8, 0x40, 0xde, 0xcc, 0x40, 0xda, 0xc2, 0xe4, 0xd6, 0xc8, 0xde, 0xee, 0xdc, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x17, 0xf8, 0x64, 0x65, 0x6e, 0x74, 0xad, 0xe1, 0x73, 0xa5, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x60, 0x2b, 0x0b, 0x33, 0x03, 0x71, 0x7b, 0x23, 0x2b, 0xdb, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0x5d, 0xe0, 0xbd, 0xb9, 0x95, 0x6b, 0x10, 0x6c, 0xa6, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0x20, 0x79, 0x48, 0x78, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x3c, 0x5b, 0x5a, 0x5a, 0x40, 0xd0, 0xde, 0xe4, 0xf4, 0x40, 0xe4, 0xea, 0xd8, 0xca, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x17, 0xf8, 0x66, 0x65, 0x6e, 0xf3, 0x1a, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xf8, 0x82, 0x81, 0x81, 0x81, 0x8c, 0xbd, 0x91, 0x95, 0x81, 0x98, 0x95, 0xb9, 0x8d, 0x95, 0x6d, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0x2e, 0xf0, 0xcb, 0xf0, 0xe0, 0xe4, 0x5a, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xdf, 0x37, 0xb8, 0x32, 0x37, 0x90, 0xb1, 0x37, 0x37, 0xba, 0xb0, 0x34, 0xb7, 0x32, 0xb9, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x84, 0x0a, 0xb9, 0x35, 0xfc, 0xb9, 0x34, 0x38, 0xbc, 0xe1, 0xdf, 0xf9, 0x05, 0xf8, 0xe9, 0xe4, 0xd2, 0xce, 0x5a, 0xdc, 0xca, 0xee, 0x6a, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x3c, 0xc3, 0xdc, 0xf2, 0xe8, 0xd0, 0xd2, 0xdc, 0xce, 0x40, 0xca, 0xd8, 0xe6, 0xca, 0x36, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x92, 0x91, 0xe2, 0xd6, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0x13, 0x6b, 0x81, 0xb5, 0x02, 0xfe, 0x99, 0x5c, 0x98, 0xb9, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xd0, 0x26, 0x54, 0x67, 0x03, 0xf0, 0x00, 0x17, 0x26, 0x17, 0x76, 0x26, 0x17, 0x06, 0x87, 0x06, 0x52, 0xc6, 0x56, 0xd6, 0x56, 0xe6, 0x46, 0xb7, 0xe1, 0xa3, 0xf6, 0x0d, 0x82, 0xf6, 0x67, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x3a, 0x15, 0xb1, 0x37, 0x36, 0x32, 0xd5, 0x86, 0xcf, 0x95, 0xd6, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0x5d, 0xe0, 0x8b, 0xbd, 0xb1, 0x91, 0x6b, 0xf8, 0x73, 0x69, 0x70, 0x78, 0x83, 0xd0, 0x2f, 0xd9, 0x20, 0xa4, 0x4c, 0xd6, 0xf0, 0xef, 0xfc, 0x1a, 0xb4, 0x09, 0xd5, 0x59, 0xb5, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x1e, 0x5f, 0x69, 0x74, 0x61, 0x6c, 0x69, 0x63, 0x73, 0x5f, 0x1b, 0x3e, 0x57, 0x5a, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x81, 0x4f, 0x17, 0xc6, 0x36, 0x1e, 0xb4, 0x40, 0xd6, 0xb9, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xba, 0x22, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x20, 0x71, 0x75, 0x6f, 0x74, 0x65, 0xa2, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0xc0, 0x8f, 0xab, 0x7b, 0x23, 0x0f, 0x5a, 0x20, 0xeb, 0x5c, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xbf, 0xb1, 0x37, 0xb2, 0x32, 0x10, 0xb6, 0x34, 0xba, 0x32, 0xb9, 0x30, 0xb6, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0xc0, 0x1f, 0x7b, 0x23, 0x2b, 0x0f, 0x0e, 0x6f, 0xa2, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x45, 0x57, 0x86, 0x47, 0x07, 0x32, 0x97, 0xd7, 0x26, 0xf6, 0xc6, 0xb6, 0xe1, 0x73, 0xa5, 0x0d, 0x1a, 0x6d, 0xea, 0x3c, 0x38, 0xbc, 0x89, 0xae, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0xe0, 0x55, 0x49, 0x31, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x2c, 0x5c, 0xc3, 0xde, 0xa0, 0x0d, 0xb2, 0xce, 0x83, 0xe4, 0x7e, 0xe1, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0x78, 0xd2, 0xda, 0xc2, 0xce, 0xca, 0x36, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x02, 0xbf, 0x2d, 0xec, 0xac, 0xdc, 0xe0, 0xf8, 0x26, 0x7a, 0x90, 0xdc, 0x2f, 0xbc, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x3c, 0xa4, 0xb9, 0xd1, 0x95, 0xc9, 0xc1, 0xbd, 0xb1, 0x85, 0xd1, 0x95, 0x91, 0x81, 0xa0, 0xbd, 0xbd, 0xb9, 0x6d, 0xf8, 0x5c, 0x69, 0x83, 0x36, 0x66, 0x3a, 0xd7, 0xf0, 0xe7, 0xd2, 0xe0, 0xf0, 0x86, 0x7f, 0xe7, 0x37, 0x58, 0x5a, 0xa5, 0x7d, 0xb0, 0x94, 0x06, 0xba, 0x0e, 0xa7, 0x58, 0x0b, 0xf8, 0x63, 0x6f, 0x6c, 0xed, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0xdf, 0xd8, 0x1b, 0x5b, 0x5d, 0x9b, 0xdb, 0x41, 0x99, 0xa5, 0xbb, 0x02, 0x3e, 0x9d, 0x5c, 0xda, 0xb9, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xd0, 0x96, 0x6d, 0x67, 0x03, 0xf8, 0xb0, 0xa5, 0xb9, 0x95, 0x81, 0xcc, 0xd1, 0xe5, 0xb1, 0x95, 0x6d, 0xf8, 0xa8, 0x7d, 0xc3, 0xe7, 0x4a, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x37, 0x47, 0x17, 0x26, 0x47, 0x07, 0x32, 0xf6, 0xc6, 0x56, 0xd7, 0xe6, 0xb6, 0xe1, 0xcf, 0xa5, 0x0d, 0x56, 0xc9, 0x91, 0x1e, 0x94, 0x59, 0xba, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xf0, 0xcc, 0xd1, 0xe5, 0xb1, 0x95, 0x6d, 0xf8, 0x73, 0x69, 0xc0, 0x9b, 0xa3, 0xcb, 0x37, 0xfc, 0x3b, 0xbf, 0x06, 0x2d, 0xba, 0x73, 0x56, 0x87, 0x53, 0x6c, 0x0d, 0x1a, 0x0f, 0xea, 0xdc, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x68, 0x3c, 0xa8, 0xb3, 0x01, 0xde, 0x39, 0xba, 0x30, 0x39, 0x3a, 0x90, 0xb0, 0x0d, 0x1f, 0xb5, 0x6f, 0x10, 0x6c, 0xa6, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0x2e, 0xf0, 0xd9, 0xd2, 0xe8, 0xca, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x5a, 0x01, 0x61, 0x4b, 0x73, 0x2b, 0x03, 0x49, 0xa3, 0x2b, 0x6b, 0xdb, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0x5d, 0xe0, 0xb3, 0xa5, 0xb9, 0xd1, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0xd5, 0x02, 0xc2, 0x96, 0xe6, 0x56, 0x06, 0x92, 0x46, 0x57, 0xd6, 0xb6, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xc7, 0x08, 0x08, 0x5a, 0x59, 0x18, 0x59, 0x9a, 0xdb, 0xd9, 0x41, 0x63, 0xe2, 0x9c, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0xe9, 0x03, 0x22, 0xc6, 0xf6, 0x36, 0xb6, 0xd6, 0x12, 0x57, 0xf7, 0x46, 0x57, 0x76, 0xd0, 0xda, 0x36, 0xe7, 0x06, 0x8d, 0x4e, 0x73, 0x76, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0x86, 0x07, 0x25, 0xd7, 0xf0, 0x6e, 0xcf, 0x1a, 0x1e, 0x94, 0x5c, 0xc3, 0xdb, 0x3a, 0x03, 0x78, 0xb8, 0xbd, 0xb9, 0xb5, 0x94, 0xb5, 0xc1, 0xd1, 0xe5, 0x6d, 0x78, 0x5b, 0x67, 0x80, 0x07, 0x2e, 0x4c, 0x6e, 0xae, 0x6c, 0x0d, 0xbf, 0x28, 0x6d, 0x90, 0xd6, 0x0e, 0xbc, 0xe1, 0x2f, 0x9a, 0x35, 0x08, 0xfd, 0x92, 0x0d, 0x16, 0x75, 0x9d, 0x6e, 0x70, 0x44, 0x49, 0x6d, 0x83, 0xb2, 0xe4, 0x7d, 0xc3, 0x29, 0xb6, 0x41, 0x4b, 0x4b, 0x7e, 0x07, 0xa7, 0x2d, 0xb4, 0x36, 0x28, 0x59, 0xd8, 0x67, 0x99, 0x35, 0x68, 0x08, 0xc0, 0x73, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xa0, 0x21, 0x00, 0xcf, 0x06, 0xe0, 0x23, 0xcd, 0x8d, 0x2c, 0xcd, 0x2e, 0x8d, 0xac, 0x2e, 0x8c, 0x0d, 0x04, 0x2e, 0x4c, 0x6e, 0xae, 0x4c, 0x6e, 0x6e, 0x83, 0x92, 0x85, 0x7d, 0x96, 0x59, 0xc0, 0xbf, 0x2b, 0x93, 0x5b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x4e, 0x73, 0x23, 0x2b, 0x33, 0x4b, 0x73, 0x4b, 0xa3, 0x2b, 0x03, 0xa1, 0x0b, 0x93, 0x83, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0xcb, 0x2a, 0x41, 0x37, 0x68, 0x54, 0xfe, 0x6f, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x50, 0x31, 0x74, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x77, 0x6f, 0x72, 0x64, 0xb5, 0x02, 0x3e, 0x5d, 0xda, 0xd8, 0xbc, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x56, 0x54, 0x84, 0x6e, 0xd0, 0x18, 0x9b, 0xe6, 0x06, 0x8d, 0xb1, 0x69, 0x6e, 0xd0, 0x18, 0x9b, 0xe6, 0xc1, 0x3a, 0x6a, 0xd2, 0x15, 0xf0, 0xcb, 0xc6, 0xd0, 0xde, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x66, 0x60, 0x3c, 0x1b, 0xc0, 0x0f, 0xed, 0xed, 0xcd, 0x0d, 0x84, 0x2d, 0x8d, 0xae, 0x4c, 0x2e, 0x8c, 0x6d, 0x83, 0x42, 0xb9, 0x73, 0x83, 0x15, 0x96, 0xb1, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x63, 0x7b, 0x1b, 0x0f, 0x92, 0x94, 0x81, 0xd7, 0xf0, 0xe7, 0xd2, 0x06, 0x0b, 0x70, 0xcf, 0x0f, 0x4e, 0x7a, 0xa2, 0x6d, 0xf8, 0x8b, 0x66, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0x45, 0x5d, 0xa7, 0x07, 0xa7, 0x70, 0xd1, 0x0d, 0x0a, 0xd2, 0xd8, 0x0d, 0x96, 0x05, 0x8d, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0xa2, 0xc6, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0x1a, 0xee, 0xf1, 0xec, 0x60, 0x11, 0xf8, 0xf9, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0x4b, 0xdd, 0x46, 0x37, 0x58, 0x4e, 0x60, 0xbb, 0xc1, 0xd1, 0x86, 0x6f, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0x78, 0xf3, 0x74, 0x0d, 0x8e, 0xe1, 0x06, 0x1b, 0x7e, 0x71, 0xd9, 0xf0, 0xcc, 0xe4, 0xc1, 0xf2, 0x1a, 0xe5, 0x36, 0x7c, 0x85, 0xb3, 0xe1, 0x2f, 0x9a, 0x0d, 0x4e, 0x7a, 0xa2, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x1b, 0x2c, 0x7d, 0xeb, 0x3d, 0x58, 0x06, 0x7e, 0xbe, 0x41, 0x41, 0x91, 0xb9, 0x41, 0x09, 0x8f, 0xb9, 0xc1, 0x0a, 0xf1, 0xf3, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x6d, 0x9d, 0xc1, 0xd3, 0x83, 0x15, 0xe2, 0xe7, 0x6b, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xb0, 0x42, 0xfc, 0x7c, 0xc3, 0x25, 0xb5, 0xc6, 0xf3, 0x83, 0x15, 0xe2, 0xe7, 0xd5, 0x6a, 0xd0, 0x08, 0x07, 0xd5, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x23, 0x1c, 0x54, 0x0d, 0xf0, 0xca, 0x95, 0xc1, 0x85, 0xc9, 0xcd, 0x95, 0x6d, 0x50, 0x28, 0x77, 0xae, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0xb4, 0x41, 0xbb, 0x61, 0x5f, 0x07, 0x4b, 0x53, 0x45, 0x0f, 0xd6, 0x57, 0xc6, 0x6e, 0xf8, 0x45, 0x69, 0x83, 0xe6, 0x77, 0x3c, 0x37, 0x7c, 0xfd, 0xb2, 0x06, 0x85, 0x60, 0xea, 0x86, 0x7f, 0xe7, 0x37, 0x58, 0xa5, 0x1a, 0xdb, 0x06, 0x05, 0x69, 0xec, 0x1a, 0xbe, 0x6f, 0xdf, 0x60, 0x59, 0xd0, 0xe8, 0x06, 0x25, 0x74, 0xec, 0x06, 0x0d, 0x0f, 0x79, 0x1e, 0x84, 0xe9, 0xd8, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x19, 0xbb, 0xb1, 0x83, 0xb6, 0x95, 0x3c, 0x37, 0x28, 0xe1, 0x31, 0x37, 0x58, 0xea, 0x36, 0xba, 0xc1, 0x72, 0x02, 0xdb, 0x0d, 0x0a, 0xd2, 0xd8, 0x0d, 0xda, 0xbb, 0xcf, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x1d, 0x8d, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0xb4, 0xae, 0xe4, 0x79, 0xb0, 0x6e, 0xe6, 0xb6, 0x0d, 0x4a, 0x78, 0xcc, 0x05, 0x8f, 0x0f, 0xda, 0x55, 0xd0, 0x5a, 0xc3, 0x2f, 0x2e, 0x1b, 0xb4, 0xae, 0xe4, 0x79, 0x50, 0xd6, 0x79, 0x6e, 0x50, 0x18, 0xaa, 0x6e, 0xb0, 0x78, 0xf3, 0x74, 0x83, 0x63, 0xb8, 0xc1, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf0, 0xe0, 0xf5, 0x41, 0x13, 0x93, 0x9e, 0x07, 0xcb, 0x6b, 0x94, 0x57, 0x00, 0xdf, 0xb1, 0x37, 0x37, 0xba, 0x32, 0x37, 0xba, 0xb9, 0x16, 0xba, 0xb7, 0x96, 0x34, 0x72, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xa0, 0xe1, 0x4f, 0xcf, 0x06, 0xe0, 0x65, 0x04, 0x84, 0xae, 0x0c, 0x8f, 0x0e, 0x24, 0xcd, 0x8d, 0xee, 0x0d, 0xa4, 0x8c, 0xad, 0xac, 0x0d, 0x24, 0x8d, 0x6c, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0x70, 0x83, 0xd0, 0x2f, 0xd9, 0x20, 0xa4, 0x4c, 0x36, 0x68, 0x87, 0xb5, 0xb3, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0xd2, 0x13, 0xdd, 0x60, 0x01, 0x66, 0xd3, 0x1a, 0xbe, 0x6f, 0xdf, 0x20, 0x45, 0xb6, 0x67, 0x83, 0x12, 0x3a, 0x76, 0x83, 0x93, 0x9e, 0xe8, 0x41, 0x98, 0x8e, 0xad, 0x41, 0xd1, 0x69, 0xbc, 0x41, 0x89, 0x54, 0xbd, 0x41, 0x7a, 0x00, 0xe7, 0x86, 0x5f, 0x94, 0x36, 0x38, 0x09, 0x82, 0x6e, 0xf8, 0x8b, 0x66, 0x83, 0x93, 0x20, 0xe8, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x2b, 0xd9, 0x1a, 0x1e, 0x61, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0x61, 0x2b, 0x6d, 0x70, 0x5a, 0x39, 0x3b, 0x58, 0xd5, 0x05, 0xb7, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0xf1, 0xbb, 0xc1, 0x69, 0xe5, 0xec, 0x60, 0xb5, 0x19, 0x5c, 0x6b, 0x78, 0x84, 0x75, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x86, 0xad, 0xb4, 0xc1, 0x69, 0xe5, 0xec, 0x60, 0xdd, 0x8f, 0xdc, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0xc5, 0xef, 0x06, 0xa7, 0x95, 0xb3, 0x83, 0xf5, 0x46, 0x72, 0xb5, 0xc1, 0x69, 0xe5, 0x6c, 0xc3, 0x07, 0x39, 0x6b, 0x78, 0x84, 0x75, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x86, 0xad, 0xb4, 0xc1, 0x69, 0xe5, 0xec, 0x60, 0x1d, 0xaf, 0xdb, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0xc5, 0xef, 0x06, 0xa7, 0x95, 0xb3, 0x83, 0x75, 0xc5, 0x6e, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x7f, 0x02, 0x6d, 0x90, 0x7a, 0x1a, 0x7b, 0x70, 0xda, 0x42, 0x3b, 0x58, 0xb3, 0xf1, 0xb6, 0xe1, 0x2b, 0x9c, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0xd2, 0x13, 0xdd, 0xa0, 0x84, 0xc7, 0xdc, 0xf0, 0xe0, 0xce, 0x06, 0x05, 0x45, 0xe6, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x27, 0x82, 0xb6, 0x35, 0xfc, 0x45, 0xb3, 0xc1, 0x49, 0x4f, 0x74, 0x83, 0x20, 0x3d, 0xdd, 0xa0, 0x28, 0x8e, 0x5f, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xf8, 0xa0, 0x2b, 0xc3, 0xa3, 0x03, 0x71, 0x7b, 0x23, 0x2b, 0x03, 0x19, 0x7b, 0x73, 0xa3, 0x2b, 0x73, 0xa3, 0x9b, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0x3e, 0x57, 0xda, 0x20, 0x65, 0x30, 0x78, 0x0d, 0x9f, 0x2b, 0x6d, 0x90, 0x32, 0x18, 0x7c, 0x70, 0x88, 0xe9, 0x38, 0x38, 0x2e, 0x9e, 0x1c, 0x1c, 0x17, 0x4f, 0x36, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x28, 0xfa, 0xd8, 0x5a, 0xc3, 0xdb, 0x3a, 0x83, 0xdb, 0x83, 0xa7, 0x83, 0x87, 0x83, 0x9f, 0x07, 0x45, 0x71, 0xfc, 0x1a, 0x7e, 0x51, 0x5a, 0xc3, 0x9f, 0x4b, 0x83, 0x87, 0x1b, 0xfe, 0x9d, 0xdf, 0x60, 0x19, 0xd5, 0xf6, 0xc1, 0x52, 0x1a, 0xe8, 0x0d, 0x8a, 0x01, 0xd9, 0x0d, 0x0f, 0xee, 0x1c, 0xac, 0x1c, 0xbb, 0x6f, 0x0d, 0x96, 0x12, 0x11, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0xcf, 0xd8, 0x9b, 0xdb, 0x58, 0x18, 0x5d, 0x99, 0x5b, 0x18, 0x5d, 0x19, 0xc8, 0x18, 0x5a, 0x1a, 0x1b, 0x99, 0x5c, 0x99, 0xdb, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x86, 0x07, 0x77, 0x36, 0xbc, 0xad, 0x33, 0xf8, 0x78, 0x50, 0x14, 0xc7, 0xb7, 0x1a, 0x3e, 0x57, 0x3a, 0x38, 0x75, 0xad, 0x6c, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0x4f, 0xda, 0x99, 0xdb, 0x9b, 0x5c, 0x19, 0x48, 0x9a, 0x1b, 0x5d, 0x99, 0x1c, 0xdc, 0x1b, 0x5b, 0x18, 0x5d, 0xda, 0x9b, 0xdb, 0x41, 0x41, 0x91, 0xd9, 0x41, 0x01, 0x1f, 0x7f, 0x38, 0xc5, 0x16, 0xf0, 0xe1, 0xc2, 0xe4, 0xc2, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x66, 0x4c, 0x3e, 0x3b, 0x58, 0xe4, 0x14, 0xbe, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0xb2, 0x4a, 0xd0, 0x35, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x0f, 0x0f, 0x8e, 0x28, 0xa9, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x1e, 0xdc, 0xd9, 0xa0, 0xa0, 0xc8, 0xdc, 0xe0, 0xe8, 0x3a, 0xb8, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xcb, 0xd7, 0x5e, 0x0f, 0xca, 0x3a, 0xcf, 0xc3, 0x43, 0x3f, 0x6d, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xf6, 0xef, 0x33, 0xd7, 0xf0, 0xb6, 0xce, 0x41, 0x1b, 0x5f, 0x98, 0xad, 0xe1, 0x6d, 0x9d, 0x0d, 0x5a, 0xb1, 0xe5, 0xac, 0xc3, 0x29, 0xd6, 0x1a, 0xb4, 0x62, 0xcb, 0xb9, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xd0, 0x8a, 0x2d, 0x67, 0x03, 0xf0, 0x00, 0x17, 0x26, 0x37, 0x57, 0x06, 0x92, 0xe6, 0xc6, 0x96, 0xe6, 0x56, 0x06, 0x42, 0x17, 0x26, 0x07, 0xb7, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0xea, 0x5e, 0xd6, 0x35, 0x28, 0x04, 0x53, 0x0f, 0x8e, 0x28, 0xa9, 0x1b, 0x9c, 0x07, 0x3b, 0x36, 0x58, 0x0e, 0xc9, 0x34, 0x1b, 0x1c, 0x6d, 0xf8, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xcb, 0x2a, 0x41, 0x37, 0x3c, 0x33, 0xb9, 0x86, 0xb7, 0x75, 0x36, 0x68, 0x20, 0xc3, 0xb3, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0xb3, 0x30, 0xf3, 0xa0, 0xb9, 0xb2, 0xce, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0x44, 0x49, 0xdd, 0xf0, 0xa0, 0xe4, 0x06, 0x2d, 0x2d, 0xf9, 0x6d, 0x50, 0xb2, 0xb0, 0xcf, 0x32, 0x6b, 0x10, 0xae, 0x08, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0x9f, 0x4b, 0x03, 0x9e, 0x5b, 0x19, 0x7e, 0xd0, 0xd8, 0x59, 0xe7, 0x86, 0xbf, 0x68, 0x36, 0x38, 0xa2, 0xa4, 0x6e, 0x10, 0xa4, 0xa7, 0x6b, 0x1c, 0xda, 0xa0, 0xed, 0xb2, 0xcf, 0xd6, 0xa0, 0xd1, 0xa6, 0xce, 0x83, 0xf0, 0x54, 0x5d, 0x83, 0x36, 0x66, 0x3a, 0x37, 0x38, 0xba, 0x0e, 0xae, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0xad, 0x33, 0x38, 0x7c, 0xd0, 0xd8, 0xda, 0x67, 0xad, 0x41, 0x23, 0x61, 0x9d, 0x1b, 0x1c, 0x5d, 0x07, 0xd7, 0xf0, 0x8b, 0xcb, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0x1b, 0x77, 0x07, 0x2b, 0xc8, 0x11, 0x0f, 0xca, 0x3a, 0xcf, 0x35, 0x5c, 0x52, 0x1b, 0x1c, 0xf6, 0x3b, 0x56, 0x83, 0x46, 0xb7, 0x3e, 0x3b, 0x68, 0x3a, 0xee, 0xb3, 0x5a, 0x83, 0x66, 0xde, 0x3a, 0x37, 0x38, 0xba, 0x0e, 0xae, 0xe1, 0x17, 0x97, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x62, 0x49, 0xd5, 0x41, 0x59, 0xe7, 0x79, 0xd0, 0xd0, 0xde, 0x67, 0x6b, 0xd0, 0x0a, 0x61, 0xe7, 0x06, 0x47, 0xd7, 0xc1, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xc6, 0xdd, 0x41, 0xeb, 0x84, 0x9d, 0x07, 0x65, 0x9d, 0xe7, 0x1a, 0x2c, 0xfd, 0x68, 0x3a, 0x68, 0x3a, 0xee, 0xf3, 0xa0, 0xac, 0xf3, 0x6c, 0x0d, 0x5a, 0xcf, 0xeb, 0xdc, 0x70, 0x49, 0x6d, 0x70, 0xd8, 0xef, 0x58, 0x83, 0x66, 0xfa, 0x3e, 0x37, 0x28, 0x0c, 0x55, 0xd7, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xb8, 0x3b, 0x68, 0xcc, 0xa9, 0x73, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0xd6, 0x79, 0xd0, 0xb5, 0x86, 0x1f, 0x61, 0x06, 0x1f, 0x83, 0xe6, 0x00, 0x07, 0x65, 0x9d, 0x67, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x9c, 0x08, 0xda, 0x36, 0x68, 0x3a, 0xee, 0x73, 0xc3, 0x5f, 0x34, 0x1b, 0x34, 0x57, 0xd6, 0xb9, 0xc1, 0xd1, 0x75, 0x70, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0xc2, 0xe5, 0xe7, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xf5, 0xcc, 0xcf, 0x35, 0xfc, 0x08, 0x33, 0xf8, 0x18, 0x74, 0x07, 0x38, 0x28, 0xeb, 0x3c, 0xab, 0x35, 0x68, 0x80, 0xb2, 0x73, 0x83, 0xa3, 0xeb, 0xe0, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0x2f, 0x2e, 0x1b, 0x24, 0x39, 0x3c, 0xad, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0x71, 0xb7, 0xe1, 0xe5, 0xbb, 0xc0, 0x47, 0x93, 0x2b, 0x33, 0xd7, 0xf0, 0xb6, 0xce, 0xe0, 0xf1, 0x41, 0x63, 0x6b, 0x9f, 0x1d, 0x94, 0x75, 0x9e, 0x07, 0x0d, 0xed, 0x7d, 0xb6, 0x06, 0xed, 0x74, 0x76, 0x6e, 0x70, 0x74, 0x1d, 0x5c, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0x2e, 0xf0, 0xd2, 0xda, 0xce, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0x37, 0xee, 0x36, 0xbc, 0x7c, 0x17, 0x78, 0x73, 0x72, 0xe3, 0x41, 0x93, 0xb5, 0x9f, 0x6b, 0x50, 0xc2, 0x63, 0x6e, 0xd0, 0xaa, 0xdc, 0xe7, 0x06, 0x05, 0x45, 0xe6, 0x06, 0x47, 0xd7, 0xc1, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0x37, 0xee, 0x36, 0xbc, 0x7c, 0x17, 0x78, 0x61, 0x6c, 0xf4, 0x41, 0xc3, 0x71, 0x9f, 0x75, 0x50, 0xd6, 0x79, 0xd6, 0xac, 0x41, 0x33, 0x4c, 0x7e, 0x1b, 0xfe, 0xa2, 0xd9, 0xe0, 0x88, 0x92, 0xba, 0x41, 0x09, 0x8f, 0xb9, 0x41, 0x33, 0x7d, 0x9f, 0x1b, 0x14, 0x14, 0x99, 0x1b, 0x14, 0x3b, 0x9a, 0x6b, 0x50, 0x4c, 0x62, 0x6e, 0xd0, 0x68, 0x53, 0xe7, 0xc6, 0xa1, 0xc1, 0xd3, 0x83, 0x66, 0xfa, 0x3e, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x27, 0x82, 0xb6, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x53, 0xb8, 0x10, 0x6b, 0x78, 0x5b, 0xe7, 0xa0, 0x01, 0xed, 0xcf, 0xd6, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0xa0, 0x99, 0xbe, 0xcf, 0x0d, 0x6f, 0xeb, 0x0c, 0x4e, 0x1f, 0x34, 0xd3, 0xf7, 0x59, 0x1b, 0x14, 0xa4, 0xb1, 0x6b, 0xf8, 0xbe, 0x7d, 0xc0, 0x33, 0x4b, 0x83, 0x37, 0x28, 0xa1, 0x63, 0x37, 0x38, 0x2a, 0xa2, 0x1e, 0x84, 0xe9, 0xd8, 0x1a, 0x1c, 0x5d, 0x07, 0xd7, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xd6, 0x19, 0x1c, 0x3e, 0x68, 0x40, 0xfb, 0xb3, 0x36, 0x7c, 0x85, 0xb3, 0xe1, 0x2f, 0x9a, 0x0d, 0x8e, 0x28, 0xa9, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0xb4, 0x51, 0xfe, 0xb9, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0xe9, 0x47, 0xd3, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x54, 0xfe, 0x6f, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x58, 0x2c, 0xaf, 0xe1, 0x6d, 0x9d, 0x0d, 0x1a, 0x46, 0xff, 0xac, 0x0e, 0xca, 0x3a, 0xcf, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0x28, 0x26, 0x31, 0x37, 0x68, 0xb4, 0xa9, 0x73, 0xe3, 0xd0, 0xe0, 0xe9, 0x41, 0x1b, 0xe5, 0x9f, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x46, 0xee, 0x3f, 0xd7, 0x70, 0x49, 0x6d, 0x70, 0xd8, 0xef, 0x38, 0x68, 0x62, 0xfc, 0xb3, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x83, 0x46, 0xc6, 0x3f, 0xd7, 0xa0, 0x81, 0xfe, 0xcf, 0x0d, 0x96, 0x54, 0x27, 0x6d, 0xd0, 0x0a, 0xff, 0xe7, 0x86, 0xb7, 0x75, 0x06, 0x87, 0x0f, 0xda, 0x17, 0x00, 0xed, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0xd5, 0xa0, 0x4d, 0xfe, 0xce, 0x0d, 0x0a, 0xe5, 0xce, 0x0d, 0x16, 0x42, 0xdd, 0x6e, 0xf8, 0x45, 0x69, 0x83, 0x85, 0x53, 0xa7, 0x1b, 0xbe, 0x7e, 0x59, 0xc3, 0xbb, 0x3d, 0x87, 0x87, 0x7e, 0x36, 0x28, 0x48, 0x63, 0x37, 0x58, 0x16, 0x34, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x3c, 0xad, 0x73, 0xb0, 0x44, 0xee, 0x74, 0x83, 0xb5, 0xe8, 0x4c, 0x1b, 0x2c, 0x27, 0xb0, 0xdd, 0xa0, 0x84, 0xc7, 0xdc, 0x60, 0xa9, 0xdb, 0xe8, 0x06, 0xcb, 0x09, 0x6c, 0x37, 0x28, 0x76, 0x34, 0xd7, 0xf0, 0x6f, 0xce, 0x06, 0x8b, 0xe4, 0x4e, 0x0f, 0x96, 0x9f, 0x9e, 0x6e, 0xb0, 0x9c, 0xc0, 0xf6, 0x60, 0x65, 0x67, 0xed, 0x0a, 0xf0, 0x97, 0x85, 0xcd, 0xe5, 0xb5, 0xcc, 0xbd, 0xb1, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xad, 0xae, 0x80, 0x36, 0x00, 0x2f, 0x70, 0x61, 0x72, 0x73, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x1b, 0x14, 0xca, 0x9d, 0x1b, 0x14, 0xc0, 0xf8, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0x9f, 0x4b, 0x83, 0x8b, 0x07, 0x69, 0xed, 0xc0, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x1b, 0x1e, 0x93, 0xd9, 0xf0, 0xb6, 0xce, 0xe0, 0xf1, 0x41, 0x81, 0x2c, 0xba, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x2b, 0x50, 0x4a, 0x0f, 0x0f, 0xfd, 0x1c, 0xde, 0x42, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0xcb, 0x3e, 0x6b, 0x0f, 0x6f, 0xa1, 0xcd, 0x02, 0x3e, 0xdb, 0xdb, 0xdb, 0xba, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xd0, 0x36, 0x12, 0x68, 0x03, 0x78, 0x8e, 0xb1, 0x85, 0xcd, 0xcd, 0xa5, 0x99, 0xe5, 0x81, 0xb0, 0xa5, 0xb9, 0x95, 0x6d, 0x50, 0x74, 0x1a, 0x6f, 0xb0, 0xac, 0x12, 0x74, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xc3, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0xb2, 0x09, 0x73, 0x0d, 0xff, 0xce, 0xaf, 0x41, 0x5b, 0xb6, 0x9d, 0xd5, 0xe1, 0x69, 0x9d, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x76, 0x1c, 0x74, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x50, 0x31, 0xf4, 0x60, 0x85, 0x33, 0xe9, 0x1a, 0x14, 0x9d, 0xc6, 0x6b, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x29, 0x57, 0x06, 0xf7, 0x26, 0x47, 0x07, 0x92, 0xe6, 0x46, 0x56, 0xe6, 0x46, 0x77, 0xd0, 0x80, 0x45, 0xdf, 0x1a, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x1b, 0x2c, 0x56, 0xe1, 0x5d, 0xc3, 0x9f, 0x4b, 0x83, 0x8b, 0x1b, 0x04, 0x9b, 0xe9, 0x06, 0x21, 0xf8, 0xb0, 0x41, 0x13, 0xce, 0x9d, 0xb5, 0x41, 0x09, 0x8f, 0xb9, 0xe1, 0xf3, 0xa0, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x8e, 0xe1, 0x06, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0xdb, 0x3a, 0x83, 0xc7, 0x83, 0xc3, 0x87, 0x07, 0x77, 0x0e, 0x6f, 0xa1, 0x6d, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xf5, 0xc0, 0xa0, 0x6b, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x23, 0xc6, 0x16, 0xe6, 0xb6, 0x06, 0xc2, 0x96, 0xe6, 0x56, 0xb6, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0xe0, 0x84, 0x6e, 0x50, 0x50, 0x64, 0x1e, 0x2c, 0x2d, 0x09, 0x5d, 0xc3, 0xf3, 0x24, 0x1b, 0x34, 0x6c, 0xd0, 0xb9, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0x96, 0xc6, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x56, 0xa0, 0x94, 0xae, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0x71, 0x77, 0xd0, 0xc2, 0x40, 0xe7, 0x1a, 0xde, 0xb8, 0x3b, 0x58, 0x9d, 0x12, 0x5e, 0xad, 0xe1, 0x79, 0x92, 0x0d, 0xda, 0x7e, 0xe8, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0x4b, 0x70, 0x42, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0x4d, 0x27, 0x82, 0xae, 0xe1, 0x8d, 0xbb, 0x83, 0x06, 0x1a, 0x3a, 0xdb, 0xa0, 0xdd, 0x2b, 0xb5, 0xd6, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0x9f, 0x96, 0x96, 0x16, 0x10, 0xb4, 0x37, 0xb9, 0x34, 0xbd, 0x37, 0x37, 0xba, 0x30, 0x36, 0x10, 0xb9, 0x3a, 0xb6, 0x32, 0xb9, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x04, 0x27, 0x74, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x8d, 0xbb, 0x83, 0x46, 0x3e, 0x3a, 0xd7, 0xf0, 0xc6, 0xdd, 0x41, 0xdb, 0x22, 0x9d, 0xad, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x56, 0x54, 0x84, 0x6e, 0xb0, 0x58, 0x28, 0xf4, 0x60, 0xa9, 0x50, 0x68, 0x6b, 0x78, 0x9e, 0x64, 0x83, 0x66, 0x5c, 0x3a, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0x12, 0x9c, 0xd0, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x6b, 0xa1, 0xa0, 0x6b, 0x78, 0xe3, 0xee, 0xa0, 0x89, 0x95, 0xce, 0xd6, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x2b, 0x2a, 0x42, 0x37, 0x68, 0x8c, 0x4d, 0x73, 0x83, 0xc6, 0xd8, 0x34, 0x37, 0x68, 0x8c, 0x4d, 0xb3, 0xd6, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x7f, 0x67, 0x2e, 0x2c, 0x8d, 0x0d, 0xa4, 0x0c, 0x0f, 0x4e, 0xae, 0x6c, 0x6e, 0x2e, 0xed, 0xcd, 0x6d, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xc1, 0x09, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0xb4, 0x16, 0x0a, 0xba, 0x86, 0x37, 0xee, 0x0e, 0xda, 0x9e, 0xe9, 0x6c, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0x76, 0x62, 0xb6, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0x4d, 0xac, 0x77, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x25, 0x38, 0xa1, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xdc, 0x1d, 0xb4, 0xda, 0xd3, 0xb9, 0x86, 0x37, 0xee, 0x0e, 0x1a, 0x19, 0xe7, 0x6c, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xa2, 0x22, 0x74, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x50, 0x31, 0xf4, 0x20, 0xc5, 0x4f, 0xf5, 0x60, 0x85, 0x33, 0x69, 0x6b, 0x78, 0x9e, 0x64, 0x83, 0x06, 0xcc, 0x3b, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0x12, 0x9c, 0xd0, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x03, 0xcb, 0xa0, 0x6b, 0x78, 0xe3, 0xee, 0xa0, 0x71, 0xf1, 0xce, 0xd6, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x2b, 0x2a, 0x42, 0x37, 0x58, 0x2c, 0x14, 0x7a, 0xb0, 0xc2, 0x99, 0xb4, 0x35, 0x3c, 0x4f, 0xb2, 0x41, 0xfb, 0xdd, 0x9d, 0x1b, 0xde, 0xed, 0xd9, 0x60, 0x09, 0x4e, 0xe8, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0x81, 0x65, 0xd0, 0x35, 0xbc, 0x71, 0x77, 0xd0, 0xb6, 0x76, 0x67, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x1b, 0x2c, 0x03, 0x30, 0x3d, 0x58, 0xe1, 0x4c, 0xda, 0x1a, 0x9e, 0x27, 0xd9, 0xa0, 0x61, 0xf8, 0xce, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x04, 0x27, 0x74, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0xc0, 0x32, 0xe8, 0x1a, 0xde, 0xb8, 0x3b, 0x68, 0x85, 0x9b, 0xb3, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x8a, 0x8a, 0xd0, 0x0d, 0x96, 0x6e, 0x89, 0x1e, 0xac, 0x70, 0x26, 0x6d, 0x0d, 0xcf, 0x93, 0x6c, 0xd0, 0x5a, 0x51, 0xe7, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x81, 0x52, 0xba, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xc6, 0xdd, 0x41, 0xbb, 0x4b, 0x9d, 0x1b, 0xb4, 0x70, 0xf9, 0x59, 0x35, 0x6b, 0x10, 0x2c, 0x4b, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xc1, 0xb2, 0xd4, 0x00, 0x9e, 0x70, 0x61, 0x72, 0x73, 0x65, 0x20, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x2c, 0xab, 0x04, 0x5d, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0xf0, 0xa0, 0x85, 0xe1, 0x95, 0xcd, 0x07, 0x27, 0x3d, 0xd1, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0xaf, 0xa5, 0x91, 0xcd, 0x07, 0x47, 0x94, 0xd4, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0x11, 0x25, 0x75, 0x83, 0x82, 0x34, 0x76, 0x83, 0x55, 0x03, 0xc1, 0x6b, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xa0, 0x5d, 0xe6, 0x72, 0xe6, 0x02, 0x32, 0x32, 0x32, 0x02, 0xd2, 0xe2, 0x03, 0x52, 0x82, 0x36, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0xcb, 0x91, 0x85, 0x37, 0x58, 0xcd, 0xf7, 0xb7, 0x06, 0x2b, 0xd4, 0x90, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x0b, 0x3d, 0x27, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0xad, 0x41, 0x84, 0x56, 0x6d, 0x50, 0x90, 0xc6, 0x0e, 0x7c, 0x1a, 0xb9, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x0d, 0x7f, 0x7a, 0xb6, 0x86, 0xb7, 0x75, 0x36, 0x68, 0x7f, 0x22, 0xb4, 0x36, 0x38, 0xba, 0x0e, 0xae, 0xe1, 0x17, 0x97, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0xe2, 0x92, 0xe0, 0x35, 0x38, 0xba, 0x0e, 0xae, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0x71, 0xb7, 0xe1, 0xe5, 0xbb, 0xe0, 0xd3, 0xc8, 0x35, 0xbc, 0xad, 0x33, 0xf0, 0x69, 0x64, 0xd5, 0x41, 0xab, 0x2d, 0xa1, 0x6d, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x1b, 0x34, 0xd8, 0x05, 0xba, 0x06, 0x2b, 0x84, 0x9a, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x8d, 0x7d, 0x5d, 0x1e, 0x34, 0xe9, 0xf3, 0xb9, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x45, 0x43, 0xbf, 0x86, 0x5f, 0x5c, 0x36, 0x3c, 0x26, 0x73, 0x70, 0x58, 0x9e, 0x39, 0x48, 0xf1, 0x53, 0x3d, 0x68, 0x13, 0xe8, 0xb3, 0x15, 0xf0, 0xc7, 0xc2, 0xd8, 0xcc, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xe6, 0x93, 0x42, 0x1b, 0x80, 0x9f, 0xb1, 0xb0, 0x39, 0x34, 0x10, 0xb1, 0x3a, 0x3a, 0x10, 0xb3, 0x37, 0x39, 0x10, 0xba, 0xb4, 0x31, 0x10, 0xba, 0xb4, 0xb1, 0x0d, 0x0a, 0xe5, 0xce, 0x35, 0xfc, 0xb9, 0xb4, 0x41, 0x8a, 0x67, 0xeb, 0xc1, 0xd2, 0x54, 0xd1, 0x0d, 0x4e, 0xec, 0x37, 0x1b, 0x2c, 0x54, 0x0c, 0xdd, 0x60, 0x85, 0x50, 0xd3, 0x06, 0xeb, 0x81, 0x41, 0xd7, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x6b, 0xc7, 0x41, 0x37, 0x58, 0x8b, 0x83, 0xb9, 0x41, 0x9a, 0xc0, 0x6b, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x65, 0xc7, 0xa0, 0x1b, 0xa4, 0x09, 0xbc, 0x1e, 0xac, 0x92, 0x06, 0x6d, 0x35, 0x68, 0x7d, 0xa5, 0x73, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x55, 0x72, 0xa4, 0x07, 0x47, 0xa1, 0x93, 0x0d, 0x96, 0x43, 0x32, 0xcd, 0x06, 0x05, 0x69, 0xec, 0x06, 0x0b, 0x1e, 0x5c, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xab, 0x68, 0xe8, 0xd7, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0x9a, 0xcf, 0x06, 0x0b, 0xe1, 0x48, 0xdb, 0xa0, 0xa5, 0xb8, 0xd0, 0x0e, 0x56, 0x38, 0x93, 0x6e, 0x50, 0x90, 0xc6, 0x0e, 0xf0, 0xa7, 0xb9, 0x91, 0xb5, 0xd0, 0xa5, 0x8d, 0xcd, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x1b, 0x2c, 0x33, 0xd1, 0x5f, 0xc3, 0xdb, 0x3a, 0x1b, 0xb4, 0x81, 0xe2, 0x59, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x2c, 0xab, 0x04, 0x5d, 0xc3, 0x2f, 0x4a, 0x1b, 0x34, 0xfe, 0xe3, 0xb9, 0xe1, 0x2f, 0x9a, 0x0d, 0x8e, 0x28, 0xa9, 0x1b, 0x1c, 0x5d, 0x07, 0xd7, 0xf0, 0x8b, 0xcb, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0x1b, 0x77, 0x1b, 0x5e, 0xbe, 0x3b, 0x58, 0xd7, 0xe4, 0x7b, 0x50, 0xd6, 0x79, 0xae, 0xc1, 0xd2, 0x8f, 0xa6, 0x83, 0x65, 0xe0, 0xe7, 0x07, 0x65, 0x9d, 0x67, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x2c, 0xd4, 0x24, 0x5d, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x1b, 0x34, 0xd8, 0x05, 0x7a, 0xd0, 0x48, 0x5f, 0xe8, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0xb5, 0xbb, 0xd0, 0xda, 0x60, 0x55, 0xaf, 0xd2, 0x06, 0x8b, 0xb7, 0x6c, 0x37, 0x58, 0x10, 0x44, 0xb7, 0x86, 0x5f, 0x94, 0x36, 0x68, 0xb9, 0x8c, 0x73, 0xc3, 0xb3, 0x78, 0xcb, 0x86, 0x5f, 0x5c, 0x0e, 0x0f, 0xfd, 0x0c, 0xa2, 0xe5, 0xe0, 0x98, 0x3b, 0xd8, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x0f, 0x0c, 0xba, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x0b, 0x35, 0x49, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0xcb, 0x4c, 0xf4, 0x0f, 0xd6, 0x51, 0x93, 0x6e, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x65, 0xc7, 0xa0, 0x1b, 0x34, 0xd3, 0x17, 0xba, 0xc1, 0x72, 0x3b, 0xd2, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x4b, 0x70, 0x42, 0x37, 0x58, 0x10, 0x44, 0xb7, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x51, 0x11, 0xba, 0x41, 0x83, 0x5d, 0xa0, 0x07, 0xeb, 0xa8, 0x49, 0xeb, 0x70, 0x8a, 0x2d, 0xe0, 0x8f, 0x85, 0xcd, 0xa1, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xed, 0xd9, 0x86, 0x36, 0x80, 0x67, 0xd9, 0xdc, 0x58, 0x18, 0x5c, 0x19, 0x19, 0x88, 0x59, 0x99, 0xdb, 0x58, 0xd9, 0x06, 0x85, 0x72, 0xe7, 0x06, 0x4d, 0x57, 0x85, 0x6e, 0x70, 0x62, 0xbf, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x34, 0x03, 0xe3, 0xd9, 0x06, 0x27, 0xf6, 0x9b, 0x0d, 0x16, 0x2a, 0x86, 0x6e, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xf5, 0xc0, 0xa0, 0x1b, 0x34, 0xea, 0xf3, 0xb9, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x51, 0x11, 0x7a, 0xd0, 0xd4, 0x57, 0xe8, 0x41, 0x8b, 0x61, 0xa1, 0x87, 0x53, 0xac, 0xd6, 0x60, 0xd5, 0x36, 0xf9, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0xaa, 0x6d, 0xf2, 0x06, 0xf0, 0xb9, 0x43, 0x4b, 0xa3, 0x2b, 0x9b, 0x83, 0x0b, 0x1b, 0x2b, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0x4b, 0x70, 0x42, 0x37, 0x58, 0xec, 0x73, 0xb7, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x98, 0x4c, 0xba, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x0f, 0x0c, 0xba, 0xc1, 0x62, 0x7a, 0xda, 0x83, 0x75, 0xd4, 0xa4, 0x75, 0x38, 0xc5, 0xd6, 0xa0, 0x35, 0x13, 0xcf, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xd6, 0x4c, 0x3c, 0x1b, 0xc0, 0x8b, 0x2e, 0x4c, 0x0e, 0x0e, 0x04, 0x2e, 0x4c, 0x6e, 0xae, 0x4c, 0x6e, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0xd5, 0xbd, 0xac, 0x6b, 0x50, 0x08, 0xa6, 0x1e, 0x34, 0x57, 0xd6, 0xb9, 0xc1, 0x79, 0xb0, 0x63, 0x83, 0xe5, 0x90, 0x4c, 0xb3, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0xb2, 0x4a, 0xd0, 0x35, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x0f, 0x37, 0x08, 0xda, 0x9f, 0x0d, 0x1a, 0x3b, 0xeb, 0x5c, 0xc3, 0xe7, 0x4a, 0x1b, 0xb4, 0xaf, 0x25, 0xb8, 0x41, 0x73, 0x65, 0x9d, 0xb5, 0xe1, 0x2f, 0x9a, 0x0d, 0x9a, 0x2b, 0xeb, 0xdc, 0xf0, 0x41, 0xce, 0x1a, 0x14, 0x93, 0x98, 0x1b, 0xb4, 0xaf, 0x25, 0x78, 0x50, 0x3a, 0xbf, 0x6f, 0x50, 0xea, 0xe8, 0x6f, 0xf8, 0xc5, 0xe5, 0xa0, 0xc9, 0xa4, 0xcc, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x1e, 0x18, 0x74, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x56, 0xa0, 0xad, 0x6e, 0xd0, 0xc2, 0xe5, 0xe7, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x51, 0x11, 0xba, 0xc1, 0x52, 0xf4, 0xd0, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x42, 0xc5, 0xd0, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x7a, 0x60, 0xd0, 0x0d, 0xd6, 0x4e, 0x86, 0x6e, 0xb0, 0x90, 0x30, 0x74, 0x83, 0x55, 0xef, 0xa1, 0x07, 0xab, 0x8d, 0x42, 0x6b, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x02, 0x6d, 0x75, 0x83, 0x16, 0x2e, 0x3f, 0xd7, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x6b, 0xc7, 0x41, 0x37, 0x58, 0x8b, 0x83, 0xb9, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x56, 0x09, 0xba, 0xc1, 0x32, 0xec, 0xb7, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0xb2, 0x63, 0xd0, 0x0d, 0xd6, 0x38, 0x93, 0x1e, 0xac, 0x92, 0x06, 0xad, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x2b, 0xd0, 0x56, 0x37, 0x68, 0x3f, 0x18, 0x74, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x04, 0x27, 0x74, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0x71, 0xb7, 0xe1, 0xe5, 0xbb, 0xe0, 0xc5, 0xe4, 0x83, 0xb2, 0xce, 0xf3, 0xa0, 0xac, 0xf3, 0x5c, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0xa8, 0x08, 0xdd, 0x60, 0x2d, 0x0e, 0xe6, 0xc1, 0x3a, 0x6a, 0xd2, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x40, 0x5b, 0x5d, 0xc3, 0x1b, 0x77, 0x07, 0x8d, 0x87, 0x75, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0x6a, 0x92, 0xae, 0xe1, 0x17, 0x97, 0x0d, 0x1a, 0x80, 0xcb, 0x3c, 0x68, 0x06, 0x2f, 0x73, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0x4c, 0x67, 0xd7, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0xb4, 0x67, 0x1b, 0xda, 0x41, 0x33, 0x78, 0x99, 0x07, 0xad, 0x5e, 0x7d, 0xd6, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x05, 0xda, 0xea, 0x1a, 0xde, 0xb8, 0x3b, 0x68, 0xfe, 0xad, 0x73, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x50, 0x93, 0x74, 0x0d, 0xbf, 0xb8, 0x1c, 0xac, 0x3a, 0x5c, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0xd3, 0xd9, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x68, 0xce, 0x47, 0xf4, 0x60, 0x19, 0x83, 0xe8, 0x41, 0xab, 0x57, 0x9f, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x81, 0xb6, 0xba, 0x86, 0x37, 0xee, 0x0e, 0x5a, 0xd5, 0xeb, 0x5c, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xd4, 0x24, 0x5d, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x45, 0x60, 0xb3, 0x6d, 0xd0, 0xf6, 0x95, 0x68, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x66, 0x3a, 0xbb, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xcd, 0xf9, 0x88, 0x1e, 0xb4, 0x9d, 0x25, 0x7a, 0xd0, 0xea, 0xd5, 0x67, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x56, 0xa0, 0xad, 0x6e, 0xd0, 0xb8, 0xe2, 0xe7, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0xa1, 0x26, 0xe9, 0x1a, 0x7e, 0x71, 0x39, 0x68, 0xa6, 0x16, 0x74, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x9a, 0x4f, 0x0a, 0xed, 0xa0, 0x29, 0x5b, 0xd0, 0x5a, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x15, 0x68, 0xab, 0x1b, 0x34, 0xae, 0xf8, 0xb9, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x56, 0x54, 0x84, 0x6e, 0xb0, 0x0c, 0xc0, 0x74, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x1e, 0x18, 0x74, 0x83, 0x65, 0x00, 0xa6, 0x1b, 0xac, 0xf0, 0x53, 0x3f, 0x68, 0x06, 0x2f, 0x73, 0x83, 0x85, 0x84, 0xa1, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x85, 0x8a, 0xa1, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xf5, 0xc0, 0xa0, 0x1b, 0xac, 0x9d, 0x0c, 0xdd, 0x60, 0x21, 0x61, 0xe8, 0x06, 0x8b, 0x85, 0x42, 0x0f, 0xda, 0x97, 0x0b, 0xad, 0x35, 0x28, 0x3a, 0x8d, 0x37, 0x58, 0x81, 0xb6, 0xba, 0x86, 0x37, 0xee, 0x0e, 0x1a, 0xa6, 0xec, 0xdc, 0x60, 0x85, 0x50, 0xd3, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xb1, 0xaf, 0xcb, 0x0d, 0xda, 0xe4, 0xf9, 0x6c, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x50, 0x93, 0x74, 0x83, 0xa6, 0x25, 0x2e, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xcd, 0x74, 0x76, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x9a, 0xf3, 0x11, 0x3d, 0x68, 0xb7, 0xe2, 0xf2, 0xa0, 0xd5, 0xab, 0xcf, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x0b, 0x35, 0x49, 0x37, 0x68, 0x9f, 0xe0, 0x72, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0x9c, 0x8f, 0xe8, 0x41, 0xe3, 0x07, 0x97, 0xb5, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x2b, 0xd0, 0x56, 0xd7, 0xf0, 0xc6, 0xdd, 0x41, 0xfb, 0x9d, 0x9d, 0x1b, 0xac, 0x10, 0x6a, 0xda, 0x60, 0xed, 0x38, 0xe8, 0x06, 0xad, 0xa2, 0x62, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x5a, 0x3e, 0x14, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xd4, 0x24, 0xdd, 0xa0, 0x69, 0x89, 0xcb, 0x0d, 0x5a, 0x81, 0x14, 0xed, 0xa0, 0x29, 0x4a, 0xd1, 0xd6, 0xa0, 0xe8, 0x34, 0xde, 0x60, 0x05, 0xda, 0xea, 0x06, 0x0d, 0x0c, 0x0d, 0x6e, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x15, 0x68, 0xab, 0x1b, 0xb4, 0x70, 0xf9, 0xb9, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x0f, 0x0c, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x82, 0x13, 0xba, 0x41, 0x53, 0x3d, 0x84, 0x07, 0x4d, 0xfa, 0x7c, 0xae, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xab, 0x2b, 0xa0, 0x1d, 0x94, 0x75, 0x9e, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x81, 0xb6, 0xba, 0x41, 0xe3, 0x8a, 0x9f, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x1b, 0xa4, 0xf9, 0xa9, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x9a, 0x15, 0x0e, 0x3d, 0x68, 0x84, 0xe1, 0xb2, 0xd6, 0x60, 0x85, 0x50, 0xd3, 0x06, 0xab, 0x49, 0x46, 0x37, 0x68, 0xd4, 0xe7, 0xf3, 0x60, 0x89, 0x49, 0x69, 0x6b, 0x50, 0x74, 0x1a, 0x6f, 0xb0, 0x02, 0x6d, 0x75, 0x83, 0x06, 0x86, 0x06, 0x37, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x8a, 0x8a, 0xd0, 0x0d, 0xda, 0x7a, 0x15, 0x5d, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x15, 0x68, 0xab, 0x1b, 0x34, 0xae, 0xf8, 0xb9, 0xc1, 0x89, 0xfd, 0x66, 0x83, 0x66, 0x85, 0x43, 0x37, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x7a, 0x60, 0xd0, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x6a, 0x92, 0xd1, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x8a, 0x8a, 0xd0, 0x0d, 0xd6, 0x47, 0xb2, 0x1e, 0xac, 0x96, 0x36, 0x3d, 0x68, 0xec, 0xe4, 0x72, 0x83, 0xf5, 0x92, 0xea, 0x1b, 0xb4, 0xab, 0x9d, 0xb9, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x3b, 0x0e, 0xba, 0x41, 0x1a, 0xed, 0xd1, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x3d, 0x30, 0xe8, 0x06, 0xed, 0xf7, 0x6b, 0x1e, 0x2c, 0xe2, 0x69, 0x6d, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x76, 0x1c, 0x74, 0x83, 0x96, 0xe0, 0x31, 0xd7, 0x60, 0x85, 0x50, 0xd3, 0x06, 0xeb, 0x81, 0x41, 0x37, 0x58, 0x5a, 0xcf, 0xba, 0xc1, 0x0a, 0x3f, 0xf5, 0x0d, 0x1a, 0x9b, 0xbf, 0xdc, 0xa0, 0x0d, 0x01, 0xcc, 0x0d, 0xd6, 0x25, 0xab, 0x1f, 0x2c, 0x66, 0x3f, 0xaf, 0x83, 0x26, 0x8d, 0x45, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x2b, 0xd0, 0x56, 0x37, 0x68, 0xe1, 0xf2, 0x73, 0x83, 0x76, 0x69, 0x45, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x40, 0x5b, 0xdd, 0xa0, 0xfd, 0x60, 0xd0, 0x35, 0x3c, 0x28, 0xb9, 0x86, 0xb7, 0x75, 0x06, 0xf0, 0x4b, 0x73, 0x63, 0x4b, 0x73, 0x2b, 0x6b, 0x29, 0x6b, 0x13, 0x2b, 0x23, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0x8d, 0xec, 0x60, 0x1e, 0xa4, 0xda, 0xc2, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x81, 0xb6, 0xba, 0x41, 0x0b, 0x97, 0x9f, 0x07, 0xad, 0x6b, 0x88, 0x36, 0x6b, 0xd0, 0x2c, 0x4d, 0xe7, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0xb3, 0x34, 0x9d, 0x1d, 0x34, 0xc8, 0x82, 0xb9, 0x41, 0x29, 0x21, 0xbe, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0x1e, 0x74, 0x61, 0x6c, 0x6c, 0x2d, 0x66, 0x6f, 0x72, 0x6d, 0x07, 0xed, 0xe8, 0x60, 0x6e, 0x50, 0x74, 0x1a, 0x6f, 0xb0, 0x50, 0x93, 0x74, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0xf8, 0x60, 0x7b, 0x7b, 0x5b, 0x6b, 0x09, 0x43, 0x2b, 0x0b, 0x23, 0x03, 0x31, 0x7b, 0x93, 0x03, 0x39, 0x0b, 0x83, 0xdb, 0xf0, 0x8b, 0xcb, 0x06, 0x0d, 0x76, 0x81, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x56, 0x93, 0x8c, 0x6e, 0xb0, 0x42, 0xa4, 0x74, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x02, 0xa5, 0xb4, 0xda, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x8f, 0x2d, 0x6d, 0x8e, 0x0e, 0xe4, 0xcd, 0x0c, 0x84, 0x2e, 0xec, 0x6c, 0x6e, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xab, 0x04, 0x5d, 0xc3, 0xdb, 0x3a, 0x03, 0xfc, 0x64, 0x72, 0x6f, 0x70, 0x2d, 0x74, 0x6f, 0x70, 0x6b, 0x78, 0x5b, 0x67, 0x00, 0x0f, 0xba, 0x37, 0xb8, 0x16, 0xb6, 0x32, 0xbb, 0x32, 0xb6, 0x66, 0x01, 0x1f, 0x4d, 0xae, 0x8e, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x68, 0x12, 0x67, 0xb4, 0x01, 0x78, 0x29, 0x6b, 0x83, 0xa3, 0xcb, 0x03, 0x11, 0x2b, 0x9b, 0x4b, 0x23, 0x2b, 0x9b, 0x03, 0x31, 0x2b, 0x73, 0x1b, 0x2b, 0xdb, 0xa0, 0xe8, 0x34, 0xde, 0x60, 0x09, 0x4e, 0xe8, 0x1a, 0x1c, 0x5d, 0x07, 0xd7, 0xf0, 0x8b, 0xcb, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0x1b, 0x77, 0x1b, 0x5e, 0xbe, 0x0b, 0x1e, 0x4d, 0x3e, 0x28, 0xeb, 0x3c, 0x0f, 0xca, 0x3a, 0xcf, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x8a, 0x8a, 0xd0, 0x0d, 0x1a, 0xec, 0x02, 0xdd, 0x60, 0xb1, 0x50, 0xe8, 0x06, 0x8b, 0x85, 0x42, 0x37, 0x58, 0x2c, 0x14, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xa8, 0x18, 0x7a, 0xb0, 0xda, 0x28, 0xf4, 0x60, 0x1d, 0x35, 0xe9, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0xb3, 0x06, 0xcd, 0x30, 0xf9, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0x40, 0xe7, 0x1c, 0x5d, 0x18, 0x5d, 0x19, 0xc8, 0x9b, 0x19, 0x08, 0x1d, 0x5a, 0x19, 0x08, 0x5c, 0x98, 0xdc, 0x5c, 0x9a, 0xdb, 0x19, 0x08, 0xdb, 0xdb, 0x1b, 0x9c, 0x5b, 0x09, 0xc0, 0xdf, 0xbb, 0x32, 0x90, 0xb6, 0xb0, 0x34, 0x37, 0xba, 0xb0, 0x34, 0x37, 0x90, 0x30, 0x90, 0xb1, 0x37, 0xb7, 0x39, 0x3a, 0xb9, 0xba, 0x31, 0xba, 0xb4, 0x37, 0x37, 0x90, 0x39, 0xba, 0xb0, 0xb1, 0x35, 0x10, 0xb3, 0x37, 0x39, 0x90, 0x32, 0xb6, 0xb2, 0xb6, 0x32, 0x37, 0xba, 0x39, 0x90, 0x30, 0x37, 0x32, 0x90, 0x30, 0x10, 0xb6, 0x34, 0xb7, 0x72, 0x09, 0xc0, 0xcb, 0x39, 0xba, 0xb0, 0xb1, 0x35, 0x10, 0xb3, 0x37, 0x39, 0x10, 0xb6, 0x34, 0xb7, 0xb2, 0x39, 0x90, 0x34, 0x37, 0x10, 0x3a, 0xb4, 0x32, 0x90, 0xb1, 0x3a, 0x39, 0xb9, 0x32, 0x37, 0x3a, 0x10, 0x31, 0xb6, 0xb7, 0xb1, 0x35, 0x17, 0x10, 0x90, 0x30, 0x10, 0x31, 0xb6, 0x30, 0xb7, 0x35, 0x10, 0xb6, 0x34, 0xb7, 0x72, 0x09, 0xc0, 0xdb, 0xb1, 0xb0, 0xba, 0xb9, 0xb2, 0x39, 0x10, 0x3a, 0xb4, 0x32, 0x90, 0xb1, 0x3a, 0x39, 0xb9, 0x32, 0x37, 0x3a, 0x10, 0x31, 0xb6, 0xb7, 0xb1, 0x35, 0x10, 0xba, 0x37, 0x10, 0xb1, 0x32, 0x10, 0xb8, 0x30, 0xb9, 0xb9, 0x32, 0x32, 0x90, 0x30, 0x37, 0x32, 0x10, 0x3a, 0x34, 0xb9, 0xb7, 0x3b, 0x37, 0x90, 0x34, 0x37, 0x10, 0x3a, 0xb4, 0x72, 0x09, 0xc0, 0xd7, 0xb1, 0x3a, 0x39, 0xb9, 0x32, 0x37, 0x3a, 0x90, 0x32, 0xb6, 0xb2, 0xb6, 0x32, 0x37, 0x3a, 0x17, 0x10, 0x90, 0x3b, 0xb4, 0x32, 0x37, 0x10, 0x3a, 0xb4, 0x32, 0x90, 0x34, 0x37, 0xb2, 0x32, 0x37, 0x3a, 0x90, 0xb1, 0x37, 0xb6, 0xba, 0x36, 0x37, 0x10, 0xb9, 0x32, 0x3a, 0xb9, 0xb2, 0x30, 0xba, 0x39, 0x16, 0x10, 0x3a, 0xb4, 0x72, 0x09, 0xa0, 0xad, 0x8c, 0xad, 0xac, 0xad, 0xcc, 0x8d, 0x0e, 0x64, 0x8e, 0x2e, 0x6c, 0x6c, 0x0d, 0x44, 0xee, 0x8d, 0x8d, 0x6d, 0x0e, 0xa4, 0x0e, 0xce, 0xb5, 0x12, 0xc0, 0xbf, 0x8b, 0x5d, 0x99, 0x9c, 0xd8, 0xdb, 0x5c, 0x99, 0x0e, 0x08, 0x59, 0x99, 0x58, 0xdd, 0x19, 0x08, 0x9c, 0x5c, 0x9a, 0x1b, 0x5d, 0x9a, 0xdb, 0x19, 0x48, 0x99, 0x5b, 0x98, 0x18, 0x5b, 0x19, 0xb9, 0x04, 0xf0, 0xe3, 0x52, 0x26, 0x27, 0xa7, 0x03, 0x52, 0x26, 0x27, 0xf7, 0x26, 0x07, 0x02, 0xf7, 0x36, 0x97, 0x46, 0x97, 0xf6, 0xe6, 0x2e, 0x01, 0xf8, 0xe0, 0x92, 0xe6, 0x46, 0xa6, 0x03, 0xf2, 0x56, 0x47, 0x57, 0x26, 0x07, 0x12, 0xe6, 0x46, 0x06, 0x92, 0xe6, 0xe6, 0x56, 0x26, 0x07, 0x92, 0xe6, 0x46, 0x56, 0xe6, 0x46, 0x07, 0xc2, 0x56, 0x66, 0x57, 0xc6, 0x2e, 0x01, 0x78, 0xe3, 0x82, 0x16, 0x36, 0xa6, 0x03, 0x32, 0x47, 0x17, 0x36, 0xb6, 0x06, 0xf2, 0x66, 0x06, 0x92, 0x46, 0x57, 0xd6, 0x36, 0x07, 0x52, 0xe7, 0x46, 0x56, 0x26, 0x07, 0x32, 0xf6, 0xe6, 0x36, 0x47, 0x27, 0x57, 0x37, 0x46, 0x97, 0xf6, 0xe6, 0x2e, 0x01, 0x78, 0xe2, 0x32, 0x56, 0x27, 0xa7, 0x03, 0x32, 0x56, 0x27, 0x27, 0x57, 0xe6, 0x46, 0x07, 0x92, 0x46, 0x57, 0xd6, 0x06, 0x52, 0xe7, 0x46, 0x56, 0x26, 0x07, 0x32, 0xf6, 0xe6, 0x36, 0x47, 0x27, 0x57, 0x37, 0x46, 0x97, 0xf6, 0xe6, 0x2e, 0x01, 0x78, 0xe3, 0x02, 0x17, 0x26, 0xa7, 0x03, 0x32, 0x56, 0x27, 0x27, 0x57, 0xe6, 0x46, 0x07, 0x22, 0x02, 0x17, 0x26, 0x17, 0x76, 0x26, 0x17, 0x06, 0x87, 0x26, 0x02, 0x22, 0x56, 0x96, 0xe6, 0x76, 0x06, 0x22, 0x57, 0x16, 0x46, 0x06, 0x92, 0xe6, 0x2e, 0x01, 0x3c, 0xba, 0x6c, 0xb1, 0xbd, 0x8d, 0x81, 0xd0, 0xe1, 0xd1, 0x75, 0xe9, 0x80, 0xc0, 0x85, 0xc9, 0xcd, 0xa5, 0xb9, 0x9d, 0x81, 0xcc, 0xd1, 0x85, 0xd1, 0x95, 0xb5, 0x41, 0x41, 0x1a, 0x3b, 0xc0, 0x6b, 0x57, 0x26, 0x27, 0xf6, 0x36, 0x57, 0x6e, 0x50, 0xe4, 0xb4, 0x6e, 0x50, 0xda, 0x5b, 0xae, 0xe1, 0xcf, 0xa5, 0x01, 0xaf, 0x4c, 0x4e, 0xde, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0x9b, 0x30, 0x37, 0x48, 0x52, 0x06, 0x6e, 0x83, 0xd2, 0xde, 0x72, 0x0d, 0x7f, 0x2e, 0x6d, 0xb0, 0xe0, 0xc1, 0x65, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0xd2, 0x2c, 0xfb, 0xa0, 0xcc, 0xd2, 0x5d, 0xc3, 0x9f, 0x4b, 0x03, 0x5e, 0x9a, 0x9b, 0x7c, 0x50, 0x66, 0xe9, 0xb6, 0x41, 0x69, 0x6f, 0xb9, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb4, 0xb0, 0xf1, 0x20, 0xec, 0x4b, 0x36, 0x28, 0x48, 0x63, 0xd7, 0xf0, 0x7d, 0xfb, 0x06, 0x8b, 0xe8, 0xeb, 0x36, 0x28, 0xa1, 0x63, 0x37, 0x08, 0x6c, 0x88, 0x83, 0x30, 0x1d, 0x5b, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0xe3, 0xee, 0xa0, 0xa9, 0x5a, 0xce, 0x83, 0xb2, 0xce, 0x73, 0x83, 0xd2, 0xde, 0x72, 0x0d, 0x7f, 0x2e, 0x6d, 0xb0, 0x36, 0xe6, 0x72, 0x83, 0xd0, 0x2f, 0xd9, 0xa0, 0x6c, 0xc2, 0x5c, 0x83, 0xd0, 0x2f, 0xd9, 0xa0, 0xf4, 0xa6, 0xdf, 0x20, 0x49, 0x19, 0x78, 0x83, 0x85, 0x16, 0xf0, 0xb5, 0x41, 0x59, 0x86, 0xbd, 0x41, 0xf3, 0x3b, 0x9e, 0xb3, 0xcc, 0x02, 0xf8, 0x8c, 0xd5, 0xc9, 0xb5, 0xa4, 0xb9, 0x91, 0x95, 0xb9, 0xd1, 0x1b, 0x04, 0xe9, 0xe9, 0x82, 0xc3, 0x07, 0x2b, 0x1d, 0xec, 0xd6, 0xa0, 0x49, 0x5a, 0xce, 0x83, 0x80, 0x65, 0x5d, 0x83, 0xc6, 0xc4, 0x39, 0x0f, 0x0f, 0xde, 0xac, 0x41, 0x5b, 0xbd, 0x9c, 0x87, 0x07, 0x6f, 0xd6, 0xa0, 0x71, 0x62, 0xce, 0x83, 0x80, 0x65, 0x5d, 0x83, 0x56, 0x9a, 0x39, 0x0f, 0x0f, 0xde, 0xac, 0x41, 0xa3, 0xd3, 0x9c, 0x07, 0x87, 0x95, 0xb9, 0x35, 0x68, 0x6d, 0x9b, 0xf3, 0x20, 0x60, 0x59, 0x5b, 0x01, 0x3c, 0xe4, 0xca, 0xc2, 0xc8, 0x5a, 0xd8, 0xd2, 0xdc, 0xca, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xa6, 0x42, 0x48, 0x1b, 0xc0, 0x7f, 0x2c, 0x0c, 0x8e, 0xae, 0x4e, 0xae, 0x0c, 0x44, 0x2e, 0xec, 0x0e, 0x84, 0x2d, 0xcd, 0xad, 0x6c, 0x83, 0xd2, 0xde, 0x72, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x6c, 0x69, 0xee, 0xc1, 0x49, 0x4f, 0x74, 0xc3, 0x57, 0x38, 0x1b, 0xbe, 0x7e, 0x59, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0x9a, 0x0b, 0x69, 0x6b, 0x50, 0x08, 0xa6, 0x6e, 0x10, 0xfa, 0x25, 0x1b, 0x94, 0x4d, 0x98, 0x6b, 0x10, 0x40, 0x67, 0x1b, 0xde, 0xd6, 0xd9, 0xa0, 0x09, 0xf3, 0xd1, 0x6a, 0x0d, 0x97, 0xd4, 0x1a, 0x52, 0x07, 0x07, 0x87, 0xfd, 0x8e, 0xda, 0xa0, 0x84, 0xc7, 0xdc, 0x60, 0x85, 0xf8, 0xf9, 0x1a, 0x2c, 0xb3, 0x66, 0x9a, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xfb, 0xe0, 0xa3, 0xad, 0xe1, 0x8d, 0xbb, 0x0d, 0x2f, 0xdf, 0x05, 0xf0, 0x50, 0xe7, 0x46, 0x57, 0x26, 0xd7, 0x96, 0xe6, 0x16, 0x46, 0x57, 0x46, 0xd6, 0xc2, 0x96, 0xe6, 0x56, 0x6e, 0xf8, 0xc5, 0x65, 0x0d, 0xbf, 0xb8, 0x6c, 0x50, 0x50, 0x64, 0xae, 0xc1, 0x31, 0xdc, 0x60, 0x83, 0x63, 0xb8, 0xc1, 0x41, 0xeb, 0x4a, 0x9e, 0x1d, 0x34, 0xc3, 0x43, 0xba, 0x41, 0xb1, 0xa3, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x58, 0x0c, 0x00, 0x7a, 0xd0, 0xea, 0x98, 0xe7, 0x1a, 0x3e, 0xc8, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0xbe, 0x51, 0x5c, 0xc3, 0xdb, 0x3a, 0x1b, 0xb4, 0x1d, 0x3f, 0x7a, 0xb0, 0x02, 0x45, 0x7f, 0x0d, 0x6f, 0xeb, 0x0c, 0x1e, 0x1f, 0x34, 0xbc, 0xe4, 0xd9, 0x1a, 0x14, 0x3b, 0x9a, 0x6b, 0xf8, 0x37, 0x67, 0x83, 0xc5, 0x3e, 0x77, 0x07, 0xad, 0x8e, 0x79, 0xae, 0xc1, 0x32, 0x6b, 0xa6, 0xd9, 0xa0, 0x29, 0x21, 0xd2, 0xd5, 0xf0, 0xc6, 0xdd, 0x86, 0x97, 0xef, 0x02, 0xbc, 0xcb, 0xf0, 0xe0, 0xca, 0xc6, 0xe8, 0xca, 0xc8, 0x5a, 0xd2, 0xdc, 0xc8, 0xca, 0xdc, 0xe8, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x2c, 0x16, 0xe9, 0x41, 0xdb, 0x4a, 0x9e, 0x07, 0x6d, 0x2b, 0x91, 0x6e, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xb0, 0x42, 0xfc, 0x7c, 0xc3, 0xdb, 0x3a, 0x83, 0xd3, 0x07, 0x2b, 0xc4, 0xcf, 0xd7, 0xa0, 0x4d, 0x2e, 0xd2, 0x0d, 0x1f, 0x47, 0x1d, 0x34, 0xbc, 0x45, 0xda, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x41, 0x5b, 0x70, 0xa4, 0x1b, 0x34, 0x3e, 0x47, 0xba, 0x06, 0x6d, 0xd3, 0x90, 0x6e, 0xf8, 0xc5, 0x65, 0x83, 0x56, 0xc7, 0x3c, 0x37, 0x68, 0x80, 0x86, 0xb4, 0x36, 0x28, 0xfa, 0x74, 0x37, 0x68, 0x9b, 0x86, 0x74, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x8b, 0x66, 0x83, 0x93, 0x9e, 0xe8, 0x86, 0x0f, 0x72, 0xd6, 0xa0, 0x98, 0xc4, 0x5c, 0xc3, 0xe7, 0x4a, 0x1b, 0xac, 0x9e, 0x95, 0x3b, 0x38, 0xc4, 0x74, 0x1c, 0xb4, 0x4d, 0x43, 0xba, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0x6d, 0xd3, 0x90, 0x6e, 0x78, 0x5b, 0x67, 0x70, 0xfa, 0xa0, 0x6d, 0x1a, 0xd2, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x61, 0xb1, 0x7c, 0xd0, 0x74, 0x1f, 0xe9, 0x06, 0x05, 0x69, 0xec, 0x1a, 0xbe, 0x6f, 0x1f, 0xc0, 0xab, 0x2c, 0x8c, 0xae, 0xc5, 0xad, 0xec, 0x8e, 0x2d, 0xcd, 0xad, 0xdc, 0xa0, 0x84, 0x8e, 0xdd, 0x20, 0xad, 0x1d, 0xf8, 0x20, 0x4c, 0xc7, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0xc7, 0x51, 0x1b, 0xde, 0xd6, 0x19, 0x1c, 0x3e, 0x68, 0x78, 0xc9, 0xf3, 0xa0, 0x20, 0x1e, 0xdf, 0xa0, 0xb9, 0x38, 0xd2, 0x36, 0x28, 0x48, 0x63, 0x07, 0xbc, 0xb9, 0xb0, 0x7b, 0x0d, 0x97, 0xd4, 0x1a, 0xb4, 0x8d, 0x04, 0xda, 0x1a, 0x1a, 0x6e, 0x6e, 0x78, 0x5b, 0x67, 0x83, 0xe6, 0x27, 0x49, 0x6b, 0xc3, 0x07, 0x39, 0x6b, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0xcf, 0x1c, 0xdd, 0x1b, 0x1c, 0xc8, 0x9b, 0x1b, 0x48, 0x4f, 0x0f, 0xc8, 0x9b, 0x1c, 0x08, 0x59, 0x19, 0x59, 0x99, 0x1b, 0xdd, 0x06, 0xc5, 0x24, 0xe6, 0x1a, 0x3e, 0x57, 0xda, 0x20, 0x04, 0x1f, 0x36, 0xfc, 0x50, 0xb3, 0x41, 0x4b, 0x02, 0x9d, 0x6b, 0x10, 0x6c, 0xa6, 0x1b, 0x34, 0xc4, 0xd0, 0xb9, 0x41, 0xd3, 0x15, 0x9d, 0xb5, 0x41, 0x63, 0xa2, 0xa4, 0xad, 0xe1, 0x17, 0x97, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x03, 0x34, 0xa4, 0x1b, 0xac, 0x6b, 0x58, 0xef, 0xa0, 0x19, 0x1e, 0xd2, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x17, 0x97, 0x0d, 0x1a, 0xa0, 0x21, 0x3d, 0x28, 0xeb, 0x3c, 0x37, 0x68, 0xcb, 0x94, 0xb4, 0x15, 0xc0, 0xe3, 0x0d, 0xae, 0xcc, 0xad, 0x25, 0x8d, 0xae, 0xac, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x68, 0x8e, 0x98, 0xb4, 0x01, 0xfc, 0xcb, 0xdc, 0xe8, 0xca, 0xe4, 0x40, 0xd8, 0xd2, 0xe6, 0xe8, 0x5e, 0xe2, 0xea, 0xde, 0xe8, 0xca, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x36, 0x68, 0x4c, 0x94, 0xf4, 0xa0, 0x75, 0xa0, 0xce, 0x0d, 0x0f, 0x4a, 0xae, 0xe1, 0x41, 0xc9, 0x35, 0x5c, 0x52, 0x1b, 0xa4, 0xc7, 0xf8, 0x76, 0xd0, 0x64, 0xf7, 0xd8, 0x06, 0x25, 0x0b, 0xfb, 0x2c, 0xb3, 0x80, 0x5f, 0xe6, 0x46, 0x27, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xb4, 0x9c, 0x4d, 0xda, 0x00, 0xde, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0x34, 0x3e, 0x1f, 0xb5, 0xe1, 0xdf, 0xf9, 0x0d, 0x1a, 0x29, 0xe5, 0x6c, 0xc3, 0xd7, 0x2f, 0x1b, 0xa4, 0x11, 0x18, 0x6d, 0x50, 0xf4, 0xe9, 0x6e, 0xd0, 0x62, 0x16, 0xe9, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0x27, 0xd0, 0x06, 0x01, 0xcb, 0xba, 0x41, 0xb3, 0x58, 0xa4, 0x6d, 0x50, 0xf4, 0xe9, 0x6e, 0xb0, 0x42, 0xfc, 0x7c, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0x7a, 0x8b, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x3e, 0x05, 0x3c, 0x68, 0x14, 0x8b, 0xf4, 0x60, 0x11, 0xf8, 0xf9, 0x06, 0x45, 0x9f, 0xee, 0x06, 0x6d, 0x72, 0x91, 0x6e, 0xd0, 0x2c, 0x16, 0xe9, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x80, 0x0f, 0x57, 0x37, 0x87, 0x76, 0xd0, 0x0a, 0x3e, 0xd8, 0x6a, 0xd0, 0x42, 0x3f, 0xe9, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x0b, 0xfd, 0xa4, 0x0d, 0xe0, 0x07, 0x57, 0x37, 0x87, 0x06, 0x32, 0xf6, 0xe6, 0x46, 0x57, 0x86, 0x47, 0xb7, 0xe1, 0x17, 0xa5, 0x0d, 0x5a, 0x31, 0x27, 0xdd, 0x70, 0x49, 0x6d, 0x48, 0x2d, 0xad, 0x06, 0x8d, 0xd7, 0x8f, 0xb6, 0xe1, 0x17, 0x97, 0x0d, 0x96, 0x33, 0xd8, 0xad, 0xe1, 0x6d, 0x9d, 0x83, 0x76, 0x17, 0x4a, 0x5b, 0x83, 0x95, 0x0e, 0x76, 0x1b, 0x7e, 0x71, 0xd9, 0xe0, 0xb4, 0x72, 0x76, 0x50, 0xd6, 0x79, 0x36, 0x6b, 0x50, 0x3c, 0x70, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x06, 0x27, 0x00, 0xc0, 0x01, 0x7c, 0xd8, 0xd2, 0xe6, 0xe8, 0x40, 0xca, 0xdc, 0xe8, 0xe4, 0xf2, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x36, 0x38, 0x43, 0x12, 0x6c, 0x10, 0x6c, 0xa6, 0x1b, 0xb4, 0xd2, 0xcc, 0xb9, 0x41, 0x5b, 0xbd, 0x9c, 0x6d, 0xf8, 0xfa, 0x65, 0x83, 0x34, 0x02, 0xa3, 0x0d, 0x4a, 0x09, 0xf1, 0x35, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x87, 0xab, 0x9b, 0x43, 0x03, 0x61, 0x4b, 0x9b, 0xa3, 0x03, 0x49, 0x33, 0x03, 0x71, 0x2b, 0xbb, 0xdb, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0xe0, 0x0c, 0x57, 0xb0, 0xe1, 0x6d, 0x9d, 0x83, 0x96, 0x22, 0x48, 0x37, 0x68, 0xaa, 0x9a, 0x74, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0xc2, 0x4f, 0xba, 0xc1, 0x19, 0xae, 0xa0, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x5a, 0xce, 0x26, 0x6d, 0x0d, 0x6f, 0xdc, 0x1d, 0x34, 0x5a, 0xcc, 0xd9, 0xe1, 0x14, 0x5b, 0x83, 0xf6, 0xbc, 0xc7, 0x36, 0x7c, 0xfd, 0xb2, 0x86, 0xe7, 0x49, 0x36, 0x68, 0xe3, 0xa6, 0xf3, 0x20, 0xb1, 0xa5, 0x6a, 0x83, 0x20, 0x3d, 0xdd, 0xa0, 0x75, 0x5c, 0xd2, 0x35, 0x68, 0x74, 0x9a, 0x73, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x4f, 0xbb, 0x32, 0xb9, 0xb9, 0x32, 0x10, 0xb6, 0x34, 0xba, 0x32, 0xb9, 0x30, 0xb6, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0x08, 0x3f, 0xe9, 0x1a, 0xde, 0xb8, 0x3b, 0x68, 0x8c, 0x9a, 0xb3, 0x35, 0x68, 0x4c, 0x9c, 0x73, 0xc3, 0xf3, 0x24, 0x1b, 0xb4, 0xf4, 0xcd, 0xb9, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0xe1, 0x27, 0x3d, 0x68, 0x9d, 0x19, 0x74, 0x0d, 0x5a, 0xdb, 0xe6, 0xdc, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x5b, 0x8c, 0xed, 0x6d, 0x6c, 0x2d, 0xae, 0xee, 0x8d, 0xae, 0x0c, 0x84, 0x2d, 0xcd, 0xad, 0x6c, 0xc3, 0xbb, 0x3d, 0x1b, 0xb4, 0x4e, 0x53, 0x7a, 0xd0, 0x0e, 0x3d, 0xe8, 0x1a, 0x34, 0x22, 0xde, 0xb9, 0xe1, 0x79, 0x92, 0x0d, 0x9a, 0xc3, 0xe5, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0x0b, 0x3d, 0x27, 0xd7, 0xf0, 0xc6, 0xdd, 0x41, 0x1b, 0xbe, 0x9c, 0xad, 0x41, 0x1b, 0xda, 0x9d, 0x1b, 0x9e, 0x27, 0xd9, 0xa0, 0x61, 0x64, 0xce, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xd0, 0x73, 0x72, 0x0d, 0x6f, 0xdc, 0x1d, 0xb4, 0xde, 0xcc, 0x59, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x16, 0xf0, 0xd9, 0xd2, 0xdc, 0xca, 0x0d, 0x5f, 0xbf, 0xac, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xaf, 0xd8, 0x1b, 0x59, 0x1e, 0x08, 0x5b, 0x9a, 0x5b, 0x19, 0x08, 0xdb, 0xdb, 0x1b, 0xdc, 0x41, 0x62, 0x4b, 0xd5, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x36, 0xeb, 0x86, 0x7f, 0x73, 0x36, 0x28, 0x28, 0x32, 0x0f, 0x5a, 0xd0, 0x21, 0xdd, 0x20, 0xb1, 0xa5, 0x6a, 0x83, 0x82, 0x34, 0x76, 0x83, 0xc6, 0x44, 0x49, 0xd7, 0xf0, 0xb6, 0xce, 0x41, 0x4b, 0xa4, 0xa4, 0x1b, 0x2c, 0xb3, 0x66, 0x9a, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0xcf, 0x5d, 0x06, 0x78, 0xc8, 0xca, 0xc4, 0xea, 0xce, 0x83, 0x02, 0x36, 0xbf, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0x37, 0xee, 0x36, 0xbc, 0x7c, 0x77, 0xd0, 0x36, 0x12, 0xe8, 0x1a, 0x3e, 0x77, 0xd9, 0x60, 0xc1, 0x83, 0xcb, 0xc1, 0x32, 0x13, 0xfd, 0x35, 0x7c, 0xee, 0xb2, 0x41, 0x63, 0xa2, 0xa4, 0x1b, 0xde, 0xd6, 0x39, 0x68, 0x1d, 0x97, 0x74, 0x0d, 0x9f, 0xbb, 0x6c, 0xb0, 0x00, 0xf7, 0xfc, 0x60, 0x19, 0xf8, 0x79, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0xb4, 0x8e, 0x4b, 0xba, 0x06, 0x45, 0x07, 0xed, 0x1a, 0xbe, 0x6f, 0x1f, 0x3c, 0xdc, 0xa0, 0x84, 0x8e, 0x5d, 0xc3, 0xe7, 0x4a, 0x1b, 0x9c, 0xf4, 0x44, 0xd7, 0xf0, 0xe7, 0xd2, 0x80, 0x67, 0x96, 0xe6, 0x1e, 0xb4, 0x71, 0x43, 0xda, 0x41, 0x98, 0x8e, 0x6d, 0x68, 0xb8, 0xb9, 0x86, 0xb7, 0x75, 0x36, 0x68, 0x2a, 0x84, 0xb4, 0x0d, 0x8a, 0x01, 0xd9, 0x35, 0x68, 0x69, 0xb3, 0xf4, 0xf0, 0xe0, 0xce, 0x1a, 0x2e, 0xa9, 0x0d, 0x5a, 0xab, 0xb5, 0x5a, 0x83, 0xc6, 0x75, 0x48, 0x37, 0xbc, 0xad, 0x33, 0x78, 0x7d, 0xd0, 0x94, 0x68, 0x69, 0x1b, 0x94, 0x12, 0xe2, 0x6b, 0x78, 0x5b, 0x67, 0x00, 0x8f, 0x31, 0xb6, 0xb7, 0xb9, 0xb2, 0x16, 0xb8, 0x30, 0xb9, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0x1c, 0x5b, 0x69, 0x1b, 0x94, 0x12, 0xe2, 0x6b, 0xb8, 0xa4, 0x36, 0x28, 0x6a, 0xc4, 0xd7, 0xa0, 0x75, 0x5c, 0xd2, 0x0d, 0x6f, 0xeb, 0x0c, 0x5e, 0x1f, 0xb4, 0x8e, 0x4b, 0xda, 0x86, 0x0f, 0x72, 0xd6, 0xa0, 0x98, 0xc4, 0xdc, 0xa0, 0x25, 0x81, 0xce, 0x8d, 0x43, 0x1b, 0x34, 0xd0, 0xdc, 0x79, 0xd0, 0x3a, 0x2e, 0xe9, 0x1a, 0x2e, 0xa9, 0x0d, 0x5a, 0xab, 0xb5, 0x5a, 0x83, 0x36, 0xb9, 0x48, 0x37, 0xbc, 0xad, 0xb3, 0xc1, 0x2a, 0x39, 0xd2, 0x83, 0xd6, 0x71, 0x49, 0xdb, 0xa0, 0xe8, 0xd3, 0xdd, 0x60, 0x05, 0x8a, 0xfe, 0x1a, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xf8, 0xa5, 0xb9, 0xa5, 0xd1, 0x81, 0xa4, 0xb9, 0x91, 0x95, 0xb9, 0xd1, 0xcd, 0x6d, 0x50, 0xc2, 0x63, 0xae, 0x41, 0x69, 0x96, 0x7d, 0xb0, 0x02, 0x45, 0x7f, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0xf4, 0x6f, 0xe9, 0x06, 0x4d, 0xff, 0x96, 0x76, 0xb0, 0xcc, 0x44, 0x7f, 0xc3, 0x07, 0x39, 0x6b, 0xf8, 0x95, 0x6c, 0x0d, 0x8a, 0x49, 0xcc, 0x0d, 0x42, 0xf0, 0xe1, 0x60, 0x09, 0x24, 0xe6, 0x1a, 0x1e, 0x61, 0x5d, 0x83, 0x62, 0x12, 0x73, 0x0d, 0x82, 0xcd, 0x74, 0x83, 0x26, 0x69, 0x39, 0x37, 0x68, 0x9c, 0x98, 0x73, 0x83, 0xd6, 0xb6, 0x39, 0x3b, 0x68, 0x29, 0x82, 0x74, 0x0d, 0xbf, 0x92, 0xad, 0xe1, 0x6d, 0xd6, 0x0d, 0xff, 0xe6, 0x6c, 0xd0, 0xe8, 0x3f, 0xe8, 0x86, 0x4b, 0x6a, 0x83, 0x06, 0x74, 0x4b, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0xbe, 0x51, 0xdc, 0xa0, 0xe9, 0xdf, 0xd2, 0x83, 0xd6, 0xdd, 0x49, 0xab, 0x35, 0x28, 0x25, 0xc4, 0xd7, 0x70, 0x49, 0x6d, 0x50, 0xd4, 0x88, 0xaf, 0x41, 0x6b, 0xb5, 0x56, 0x07, 0x6d, 0xab, 0x96, 0xb6, 0x41, 0xd1, 0xa7, 0xbb, 0x41, 0x6b, 0xb5, 0x56, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x62, 0x61, 0x63, 0x6b, 0x07, 0xed, 0x3d, 0x97, 0x6e, 0x50, 0x74, 0xd0, 0x0e, 0xf0, 0x8d, 0xbd, 0xb1, 0xb5, 0xbc, 0xad, 0x1b, 0xb4, 0xa8, 0x5b, 0xba, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x4f, 0x01, 0x0f, 0x1a, 0x2b, 0x2f, 0xdd, 0xe0, 0xe4, 0x20, 0xb7, 0xe1, 0xcb, 0xc9, 0x35, 0x28, 0x25, 0xc4, 0x37, 0x9e, 0x6f, 0xf8, 0xc5, 0x65, 0x83, 0x02, 0x36, 0x7f, 0x0d, 0x6f, 0xeb, 0x1c, 0xb4, 0xa8, 0x5b, 0xda, 0x1a, 0x84, 0x74, 0xea, 0x06, 0xa5, 0x84, 0xf8, 0xc6, 0xf3, 0x0d, 0xbf, 0xb8, 0x6c, 0x50, 0xe4, 0xb4, 0x1e, 0x34, 0x07, 0x60, 0xba, 0x06, 0x4b, 0x78, 0x8c, 0x37, 0x28, 0x25, 0xc4, 0x37, 0x9e, 0x6f, 0xf8, 0xc5, 0x65, 0x83, 0x22, 0xa7, 0x75, 0x83, 0x06, 0x96, 0x41, 0x0f, 0xda, 0x4b, 0x2a, 0x6d, 0x83, 0x62, 0x47, 0x73, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0x1a, 0x7d, 0x69, 0x6b, 0xb0, 0xcc, 0x9a, 0x69, 0x36, 0x68, 0x4a, 0x88, 0x74, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x8d, 0xbb, 0x0d, 0x2f, 0xdf, 0x05, 0xf8, 0x8f, 0xbd, 0xb1, 0xd5, 0xb5, 0xb9, 0xcd, 0xb5, 0x84, 0x91, 0xd9, 0x85, 0xb9, 0x8d, 0x95, 0x91, 0x07, 0x8d, 0x95, 0x97, 0x6e, 0xb8, 0xa4, 0x36, 0x68, 0xad, 0xd6, 0x6a, 0x0d, 0x1a, 0xd7, 0x21, 0xdd, 0xe0, 0x18, 0x6e, 0xb0, 0xe1, 0x17, 0x97, 0x0d, 0x5a, 0xe6, 0x24, 0x3d, 0x68, 0xef, 0xb9, 0xb4, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0x5a, 0xcc, 0x22, 0xdd, 0xa0, 0xe9, 0xdf, 0xd2, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0x5a, 0xab, 0xb5, 0x5a, 0xc3, 0x07, 0x39, 0x6b, 0xf8, 0x95, 0x6c, 0x0d, 0x8f, 0xb0, 0xae, 0x41, 0x31, 0x89, 0xb9, 0x41, 0x5b, 0xbd, 0x9c, 0x07, 0x2d, 0x45, 0x90, 0xae, 0xe1, 0x6d, 0xd6, 0x0d, 0x8a, 0x49, 0xcc, 0x0d, 0x1a, 0x11, 0xef, 0xdc, 0x78, 0x7e, 0xd0, 0xa2, 0x6e, 0x69, 0x6b, 0x78, 0x84, 0x75, 0x0d, 0x8a, 0x49, 0xcc, 0x0d, 0x5a, 0x69, 0xe6, 0x3c, 0x68, 0x29, 0x82, 0x74, 0x0d, 0x6f, 0xb3, 0x6e, 0x50, 0x4c, 0x62, 0x6e, 0xd0, 0x86, 0x76, 0xe7, 0x41, 0xe3, 0x31, 0xa6, 0xb5, 0x86, 0xb7, 0x75, 0x06, 0xf0, 0x19, 0x63, 0x7b, 0x9b, 0x2b, 0x6b, 0x49, 0xa3, 0x2b, 0x6b, 0x3b, 0x68, 0x94, 0xd6, 0x6a, 0xc3, 0x83, 0x92, 0x6b, 0xb8, 0xa4, 0x36, 0x68, 0xeb, 0xb5, 0x74, 0x0d, 0x96, 0x40, 0x62, 0x6e, 0x70, 0x0c, 0x37, 0x38, 0x68, 0x96, 0xd2, 0xb3, 0x0d, 0x5f, 0xbf, 0xac, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x1f, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x70, 0x61, 0x72, 0x61, 0x07, 0x8d, 0xd2, 0x5a, 0x6d, 0x10, 0xa4, 0xa7, 0x1b, 0x34, 0xa0, 0x5b, 0xba, 0x06, 0x8d, 0x79, 0x74, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x07, 0x17, 0x26, 0x37, 0x57, 0x06, 0xc2, 0x56, 0x16, 0x66, 0x57, 0x36, 0xb7, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0x33, 0xc0, 0x2f, 0x57, 0x16, 0x46, 0xd6, 0xf2, 0xe6, 0x56, 0xb6, 0x86, 0x4b, 0x6a, 0x83, 0xc6, 0x63, 0x4c, 0x6b, 0x0d, 0x5a, 0xe7, 0xe9, 0xdc, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0xfb, 0x0d, 0xae, 0xcc, 0x0d, 0x64, 0xec, 0xcd, 0x8d, 0x2e, 0x2c, 0xcd, 0xad, 0x4c, 0x6e, 0x6e, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xe6, 0x88, 0x49, 0x5b, 0xc3, 0xdb, 0x3a, 0x83, 0xc3, 0x07, 0x2d, 0xea, 0x96, 0xb6, 0x06, 0xed, 0x2b, 0x75, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0xa1, 0x56, 0x37, 0x47, 0x07, 0x42, 0x57, 0x86, 0x47, 0x77, 0xd0, 0x28, 0xad, 0x55, 0x1b, 0x14, 0x3b, 0x9a, 0x6b, 0x50, 0xc2, 0x63, 0x2e, 0x78, 0x3c, 0x78, 0x7d, 0xb0, 0x04, 0x12, 0x73, 0x83, 0x22, 0xa7, 0x75, 0x83, 0x20, 0x3d, 0xdd, 0xa0, 0xa5, 0x08, 0xd2, 0x35, 0x68, 0xd3, 0xa3, 0x74, 0x83, 0x25, 0xf5, 0x4b, 0xab, 0xe1, 0x8d, 0xbb, 0x0d, 0x2f, 0xdf, 0x05, 0xf0, 0x21, 0x16, 0x46, 0xd6, 0xc2, 0x56, 0x16, 0x66, 0xd6, 0x32, 0xf6, 0xe6, 0x46, 0x17, 0x96, 0xe6, 0x56, 0x26, 0x1f, 0xb4, 0xde, 0x52, 0x7a, 0x10, 0x9e, 0xaa, 0x6b, 0xd0, 0x98, 0x38, 0xe7, 0x41, 0x01, 0x9b, 0xbf, 0x06, 0x8d, 0x4e, 0x73, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x34, 0x6c, 0xa5, 0x83, 0xc6, 0xca, 0x4b, 0x57, 0x83, 0x60, 0x33, 0xdd, 0xa0, 0x49, 0x5a, 0xce, 0x0d, 0xda, 0xea, 0xe5, 0xdc, 0xa0, 0x71, 0x62, 0xce, 0x0d, 0x5a, 0x69, 0xe6, 0x3c, 0x68, 0x76, 0xbb, 0x74, 0xc3, 0xbf, 0x39, 0x1b, 0x34, 0xfd, 0x5b, 0x7a, 0xd0, 0x2c, 0x16, 0x69, 0x6b, 0xb0, 0xcc, 0x9a, 0x69, 0x36, 0x68, 0x4a, 0x88, 0x74, 0x35, 0xbc, 0x71, 0xb7, 0xe1, 0xe5, 0xbb, 0x00, 0x5e, 0xc4, 0xc2, 0xc8, 0x5a, 0xc4, 0xd8, 0xde, 0xc6, 0xd6, 0x5a, 0xe6, 0xe8, 0xe4, 0xea, 0xc6, 0xe8, 0xea, 0xe4, 0xca, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x7a, 0x4b, 0xe9, 0x06, 0xcd, 0x62, 0x91, 0x1e, 0xb4, 0xf7, 0x5c, 0x7a, 0xd0, 0x16, 0x87, 0xe9, 0x06, 0x45, 0x07, 0xed, 0x1a, 0xbe, 0x6f, 0x1f, 0x3c, 0xdc, 0xa0, 0x84, 0x8e, 0x5d, 0xc3, 0xe7, 0x4a, 0x1b, 0x34, 0xd8, 0x42, 0x7a, 0xd0, 0x94, 0x66, 0xe9, 0x41, 0x98, 0x8e, 0x6d, 0x68, 0xb8, 0xb9, 0x41, 0x3b, 0x9f, 0xa5, 0x1b, 0x14, 0x7d, 0xba, 0x1b, 0x2c, 0x81, 0xc4, 0x5c, 0xc3, 0x25, 0xb5, 0xc1, 0x12, 0x48, 0xcc, 0x35, 0x38, 0x5b, 0xb6, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0x9a, 0x0b, 0xe9, 0xe1, 0xc1, 0x9d, 0x35, 0xbc, 0xad, 0x73, 0xd0, 0x1a, 0x9d, 0x69, 0x6d, 0x50, 0x0c, 0xc8, 0x6e, 0xd0, 0x94, 0x68, 0xe9, 0x06, 0x2d, 0x91, 0x96, 0x1e, 0x34, 0xe8, 0x5a, 0xba, 0x1a, 0xb4, 0xa3, 0x65, 0xba, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xd0, 0x8e, 0x96, 0x69, 0x03, 0xf8, 0xca, 0x95, 0x85, 0x91, 0x81, 0x94, 0xbc, 0xb9, 0x95, 0x81, 0xa4, 0xd1, 0x95, 0xb5, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x6d, 0xd0, 0x40, 0x73, 0xe7, 0x06, 0xc1, 0x66, 0xba, 0x41, 0x1b, 0x33, 0x9d, 0x1b, 0xb4, 0x21, 0xd2, 0xb9, 0x41, 0x53, 0x2a, 0x9d, 0x6d, 0xf8, 0xfa, 0x65, 0x83, 0x34, 0x02, 0xa3, 0x0d, 0x82, 0xf4, 0x74, 0x0d, 0x1a, 0x68, 0xee, 0x6c, 0x0d, 0xda, 0x98, 0xe9, 0xdc, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0x19, 0xc0, 0x0b, 0x2e, 0x4c, 0x6e, 0xae, 0xac, 0x45, 0x8c, 0xed, 0x6d, 0x6c, 0x6d, 0x0d, 0x0f, 0x4a, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0x9a, 0xa5, 0xe9, 0xec, 0xa0, 0xad, 0xff, 0xce, 0xd6, 0xa0, 0x0d, 0x91, 0xce, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0x92, 0xb4, 0xe9, 0x1a, 0x1e, 0x94, 0x5c, 0xc3, 0xdb, 0x3a, 0x1b, 0x34, 0x89, 0x33, 0xda, 0x41, 0x5b, 0xff, 0x9d, 0xad, 0x41, 0x53, 0x2a, 0x9d, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x25, 0x69, 0xd3, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0x07, 0x25, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0xad, 0xaf, 0x74, 0x76, 0xd0, 0xd6, 0x7f, 0xe7, 0x41, 0xeb, 0xee, 0xa4, 0x35, 0x6b, 0xd0, 0xcc, 0xb4, 0xe9, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x33, 0xd3, 0xa6, 0x0d, 0xe0, 0x5b, 0x86, 0x57, 0x36, 0x56, 0x47, 0x57, 0x06, 0x02, 0x17, 0x26, 0x37, 0x57, 0x26, 0xb7, 0xe1, 0x17, 0xa5, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0x7a, 0x23, 0xdb, 0x0d, 0xc2, 0x69, 0x6c, 0x83, 0xb4, 0x76, 0xe0, 0x83, 0xa6, 0x09, 0x3c, 0x37, 0x7c, 0xfd, 0xb2, 0x41, 0x1a, 0x81, 0xd1, 0x06, 0x05, 0x69, 0xec, 0x1a, 0xbe, 0x6f, 0xdf, 0x60, 0x59, 0xd0, 0xe8, 0x06, 0x25, 0x74, 0xec, 0x06, 0x4d, 0x13, 0x78, 0x1e, 0x84, 0xe9, 0xd8, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x75, 0x95, 0xed, 0x41, 0xdb, 0x4a, 0x9e, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x2c, 0x75, 0x1b, 0x5d, 0x83, 0x65, 0xd6, 0x4c, 0xb3, 0x41, 0x53, 0x42, 0xa4, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0xee, 0xa0, 0x99, 0x69, 0xd3, 0x83, 0x45, 0xe0, 0xe7, 0x1b, 0x2e, 0xa9, 0x0d, 0xd2, 0x63, 0x7c, 0xd7, 0xa0, 0x71, 0x1d, 0xd2, 0x0d, 0x8e, 0xe1, 0x06, 0x07, 0x8b, 0x37, 0x4f, 0xdb, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x59, 0xc3, 0xc4, 0x6d, 0x70, 0xcc, 0xf0, 0xdc, 0x30, 0x71, 0x1b, 0x34, 0xdc, 0xe3, 0x79, 0xb0, 0x00, 0xf7, 0x7c, 0xc3, 0xdb, 0x3a, 0x07, 0x2b, 0x55, 0x4f, 0x37, 0x58, 0x85, 0xa4, 0xb4, 0x41, 0x7a, 0x8c, 0xef, 0x1a, 0x34, 0xbc, 0xe4, 0x79, 0xd0, 0xba, 0x92, 0xe7, 0x1a, 0xac, 0x10, 0x3f, 0x3f, 0x58, 0x06, 0x7e, 0xbe, 0x82, 0xc7, 0x07, 0x2b, 0x1d, 0xec, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0x07, 0x4e, 0xae, 0x0c, 0xae, 0xcc, 0x8d, 0x0c, 0x84, 0xee, 0x0d, 0x84, 0x0e, 0xad, 0x0c, 0x64, 0x8e, 0x2e, 0x6c, 0x6c, 0x6d, 0xc3, 0xbb, 0x3d, 0x1b, 0x9c, 0x08, 0xda, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x85, 0xc5, 0xf2, 0x1a, 0xfe, 0xa2, 0xd9, 0xe0, 0x88, 0x92, 0x7a, 0x70, 0xd0, 0xf2, 0x6c, 0x0d, 0x6f, 0xeb, 0x1c, 0xb4, 0x28, 0x72, 0x5a, 0xab, 0x41, 0xdb, 0x48, 0xa0, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x41, 0xdb, 0x4b, 0xa0, 0x03, 0xf8, 0xa5, 0xb9, 0xcd, 0xc1, 0x95, 0x8d, 0xd1, 0x81, 0xb0, 0xa5, 0xb9, 0x95, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0x86, 0xac, 0x40, 0x37, 0x28, 0x3a, 0x8d, 0x37, 0x38, 0x64, 0x10, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x56, 0x63, 0xe3, 0xae, 0xe1, 0xdd, 0x9e, 0x35, 0x3c, 0x28, 0xb9, 0x41, 0x63, 0x7d, 0xa5, 0x07, 0x6d, 0xfd, 0x77, 0x1e, 0xb4, 0xad, 0xe4, 0xd9, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xe1, 0x41, 0x43, 0x58, 0xa0, 0x1b, 0xbe, 0x7e, 0xd9, 0xf0, 0xb4, 0xce, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x06, 0x4d, 0x27, 0x82, 0x6e, 0xb8, 0xa4, 0xd6, 0x38, 0xb4, 0x41, 0x03, 0xcd, 0x9d, 0x87, 0x07, 0x77, 0xda, 0xf0, 0xb4, 0xce, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x2f, 0xce, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0xab, 0xe4, 0x48, 0x0f, 0x0f, 0xee, 0xac, 0xe1, 0x6d, 0x9d, 0x83, 0xd6, 0x96, 0x4b, 0x5b, 0xc3, 0x25, 0xb5, 0xe1, 0xc1, 0x9d, 0x35, 0x68, 0xe0, 0xd9, 0x74, 0xc3, 0x2f, 0x2e, 0x1b, 0x34, 0x9d, 0x08, 0xba, 0x86, 0x37, 0xee, 0x0e, 0x9a, 0xb4, 0xe8, 0xac, 0xc3, 0xd3, 0x3a, 0x87, 0x53, 0xac, 0x05, 0xf0, 0x1a, 0xab, 0x93, 0x6b, 0xa1, 0x7b, 0x6b, 0xa1, 0x0b, 0x93, 0x83, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x1a, 0x17, 0x3b, 0x6d, 0x00, 0xbf, 0x34, 0xba, 0xb2, 0x36, 0x10, 0xba, 0x37, 0x10, 0xba, 0x30, 0x39, 0xb8, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0x44, 0x49, 0xdd, 0xf0, 0x41, 0xce, 0x1a, 0x14, 0x93, 0x98, 0x6b, 0x10, 0x6c, 0xa6, 0x1b, 0x34, 0x49, 0xcb, 0xb9, 0x41, 0x63, 0xe2, 0x9c, 0x1b, 0xb4, 0x31, 0xd3, 0xd9, 0x41, 0x4b, 0x11, 0xa4, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xc2, 0x62, 0xf9, 0xa0, 0x19, 0x99, 0xd3, 0x0d, 0x8e, 0x36, 0x7c, 0x6b, 0x70, 0x74, 0x1d, 0x5c, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0xc5, 0x65, 0xc3, 0x33, 0x93, 0x07, 0x65, 0x9d, 0xe7, 0x06, 0x6d, 0xdb, 0x9d, 0xd6, 0x06, 0x41, 0x7a, 0xba, 0x41, 0x4b, 0x11, 0xa4, 0x6b, 0xd0, 0x56, 0x2f, 0xe7, 0x86, 0x37, 0xee, 0x36, 0xbc, 0x7c, 0x17, 0x7c, 0x1d, 0xbb, 0x06, 0xad, 0x34, 0x73, 0x6e, 0x78, 0xe3, 0x6e, 0xc3, 0xcb, 0x77, 0xc1, 0xbf, 0xb1, 0x6b, 0xd0, 0x38, 0x31, 0xe7, 0x86, 0x37, 0xee, 0x36, 0xbc, 0x7c, 0x17, 0x3c, 0x5b, 0xba, 0x06, 0x8d, 0x4e, 0x73, 0x6e, 0x78, 0xe3, 0x6e, 0xc3, 0xcb, 0x77, 0x87, 0x45, 0xab, 0x35, 0x68, 0x6d, 0x9b, 0x73, 0xc3, 0x1b, 0x77, 0x1b, 0x5e, 0xbe, 0x3b, 0x68, 0x0d, 0x9b, 0xb3, 0x59, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x0d, 0xda, 0xbe, 0x94, 0x6a, 0x83, 0x25, 0x5d, 0xdd, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0xa6, 0x09, 0x3c, 0x37, 0x28, 0x25, 0xc4, 0x37, 0x68, 0xd0, 0xb5, 0x74, 0x83, 0x62, 0x47, 0x73, 0x83, 0x76, 0xee, 0x4a, 0xd7, 0x60, 0xdd, 0x2a, 0xd3, 0xac, 0x86, 0x37, 0xee, 0x36, 0xbc, 0x7c, 0x77, 0xd0, 0x84, 0xf9, 0xe8, 0x41, 0x0b, 0x3a, 0xa4, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0x25, 0xb5, 0xc6, 0xf3, 0x83, 0xc6, 0x75, 0x48, 0x3b, 0x28, 0xeb, 0x3c, 0x37, 0x38, 0xda, 0xf0, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0x5a, 0x57, 0xf2, 0x5c, 0x83, 0x63, 0xb8, 0xc1, 0x86, 0x5f, 0x5c, 0x36, 0x3c, 0x33, 0xb9, 0x86, 0x5f, 0x5c, 0x0e, 0xda, 0x56, 0xf2, 0xac, 0x0d, 0x4a, 0x09, 0xf1, 0x0d, 0xda, 0x56, 0x2d, 0xdd, 0xf0, 0x15, 0xce, 0x86, 0xbf, 0x68, 0x36, 0x38, 0xa2, 0xa4, 0x6e, 0x50, 0xc2, 0x63, 0x6e, 0xd0, 0xee, 0x42, 0xe9, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0x71, 0xb1, 0xd3, 0x36, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x58, 0xb0, 0xa5, 0x7b, 0xd0, 0xfe, 0x8e, 0x69, 0xab, 0x41, 0xeb, 0xf0, 0xa5, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xad, 0xc3, 0x97, 0x36, 0x80, 0xef, 0xd8, 0x1b, 0x5b, 0x5d, 0x9b, 0x1b, 0x88, 0x5c, 0x19, 0x9d, 0x5c, 0x59, 0x18, 0xdd, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0x80, 0xc7, 0x56, 0x37, 0x1e, 0x94, 0x59, 0xba, 0x1b, 0xbe, 0x7e, 0xd9, 0x20, 0x8d, 0xc0, 0x68, 0xc3, 0x07, 0x39, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x34, 0x6c, 0xa5, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x0b, 0xc9, 0xa7, 0x1d, 0xb4, 0xee, 0x4e, 0xba, 0x41, 0x1a, 0x81, 0xd1, 0x06, 0x05, 0x69, 0xec, 0x1a, 0xbe, 0x6f, 0xdf, 0xa0, 0xed, 0xb2, 0xcf, 0x0d, 0x4a, 0xe8, 0xd8, 0x0d, 0xca, 0x2c, 0xdd, 0x83, 0x30, 0x1d, 0x5b, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xde, 0xa5, 0x8a, 0xac, 0x92, 0x8a, 0xae, 0x40, 0xc6, 0xde, 0xc8, 0xca, 0x40, 0xc2, 0xdc, 0xc8, 0x40, 0xe0, 0xde, 0xca, 0xda, 0x40, 0xc4, 0xd8, 0xde, 0xc6, 0xd6, 0xe6, 0x40, 0xc2, 0xe4, 0xca, 0x36, 0xbc, 0xad, 0xb3, 0x41, 0x5b, 0x0d, 0xa4, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x46, 0x71, 0x0d, 0x6f, 0xeb, 0x1c, 0x34, 0xb6, 0xf6, 0xb9, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0x0a, 0xb8, 0x41, 0xb3, 0x58, 0xa4, 0x1b, 0x34, 0xfd, 0x7c, 0x5a, 0x6b, 0xb0, 0xcc, 0x9a, 0x69, 0x36, 0x68, 0x4a, 0x88, 0x74, 0x35, 0xbc, 0x71, 0xb7, 0xe1, 0xe5, 0xbb, 0x00, 0xfe, 0xd2, 0xdc, 0xc8, 0xca, 0xdc, 0xe8, 0x5a, 0xe0, 0xc2, 0xe8, 0xe8, 0xca, 0xe4, 0xdc, 0x5a, 0xec, 0xd2, 0xde, 0xd8, 0xc2, 0xe8, 0xd2, 0xde, 0xdc, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x7a, 0x4b, 0xe9, 0x06, 0x0d, 0xa3, 0x9f, 0x1e, 0xb4, 0xc6, 0x7e, 0xba, 0xe1, 0x92, 0xda, 0x60, 0xc1, 0x96, 0xee, 0x1a, 0xb4, 0x98, 0x45, 0x7a, 0xd0, 0xf4, 0xf3, 0xe9, 0x1a, 0x34, 0xae, 0x43, 0xba, 0xc1, 0x31, 0xdc, 0x60, 0xc3, 0x2f, 0x2e, 0x1b, 0xb4, 0xcc, 0x49, 0x7a, 0xd0, 0x62, 0xfb, 0x69, 0x1b, 0x14, 0x7d, 0xba, 0x1b, 0x2c, 0xd8, 0xd2, 0xdd, 0xa0, 0xfd, 0x1d, 0xd3, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x5a, 0xcc, 0x22, 0xdd, 0xf0, 0x6e, 0xcf, 0x86, 0x4f, 0x01, 0x37, 0x68, 0x16, 0x8b, 0x74, 0x83, 0x86, 0xd1, 0x4f, 0x6b, 0x35, 0x68, 0x78, 0xb5, 0x74, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xa0, 0xe1, 0xd5, 0xd2, 0x06, 0xf0, 0x69, 0x0b, 0x5b, 0x2b, 0x03, 0x11, 0x63, 0x7b, 0x1b, 0x5b, 0xdb, 0xf0, 0xf5, 0xcb, 0x06, 0x89, 0x2d, 0x55, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x2c, 0x81, 0xc4, 0xdc, 0x20, 0xb1, 0xa5, 0x6a, 0xc3, 0x07, 0x39, 0x6b, 0x50, 0x4c, 0x62, 0x6e, 0xd0, 0xe8, 0x34, 0xe7, 0x41, 0x4b, 0x11, 0xa4, 0x6b, 0x50, 0xf4, 0xe9, 0x6e, 0xd0, 0xa2, 0xc8, 0xe9, 0x1a, 0x94, 0xf0, 0x98, 0x1b, 0xb4, 0x28, 0x72, 0xba, 0x41, 0x43, 0x32, 0xa7, 0x1b, 0x7e, 0x71, 0xd9, 0xa0, 0xe1, 0x13, 0xd1, 0x83, 0x66, 0x64, 0x4e, 0x37, 0x38, 0xda, 0xf0, 0xad, 0xe1, 0x92, 0xda, 0xa0, 0x69, 0x1e, 0xd3, 0x35, 0x58, 0x02, 0x89, 0x79, 0x50, 0x50, 0x64, 0xae, 0x41, 0x8b, 0x22, 0xa7, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0x44, 0xd0, 0xb6, 0xe1, 0x99, 0xc9, 0x83, 0x66, 0x64, 0x4e, 0xd7, 0xa0, 0xc5, 0x2c, 0xd2, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x14, 0x70, 0x83, 0x66, 0xb1, 0x48, 0x0f, 0x8e, 0x2a, 0x73, 0x6d, 0x50, 0x74, 0x1a, 0x6f, 0x50, 0x22, 0x55, 0x6f, 0xd0, 0x54, 0xad, 0xe9, 0x86, 0x5f, 0x94, 0x36, 0x38, 0xe9, 0x89, 0x6e, 0xf8, 0x8b, 0x66, 0x83, 0x85, 0x0f, 0xdb, 0x1b, 0x14, 0x86, 0xaa, 0x1b, 0x34, 0x6a, 0xf3, 0xb9, 0xc1, 0x92, 0xea, 0xa4, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x96, 0x7e, 0x34, 0x6d, 0x78, 0x16, 0x6f, 0xd9, 0xf0, 0x8b, 0xcb, 0xc1, 0x69, 0x0b, 0x6d, 0x10, 0xb5, 0x41, 0x41, 0x1a, 0xbb, 0x86, 0xef, 0xdb, 0x07, 0xbc, 0xbc, 0x32, 0xfc, 0xa0, 0x99, 0x5b, 0xcf, 0x35, 0x38, 0xb1, 0xdf, 0x6c, 0xd0, 0xa8, 0xfc, 0xdf, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x25, 0x52, 0xf5, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xb0, 0x58, 0x3e, 0x68, 0xa8, 0xd6, 0x74, 0xc3, 0x2f, 0x4a, 0x1b, 0x2c, 0x22, 0xa8, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0x4b, 0x0f, 0xe5, 0xd7, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0x9a, 0xcf, 0x41, 0xeb, 0xee, 0xa4, 0x07, 0x2b, 0xb9, 0x45, 0xd7, 0xf0, 0x2c, 0xde, 0x06, 0x6d, 0x7b, 0x86, 0x1e, 0x34, 0x8f, 0x84, 0xda, 0x06, 0x05, 0x69, 0xec, 0x06, 0x2d, 0xf5, 0x9b, 0xae, 0xc1, 0xa9, 0xe1, 0x68, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0x83, 0xd6, 0xe9, 0x4c, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0x8d, 0x2d, 0xa1, 0xd6, 0x86, 0x0f, 0x72, 0xd6, 0xa0, 0x98, 0xc4, 0xdc, 0xa0, 0x31, 0x71, 0xce, 0x83, 0x96, 0x22, 0x48, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x0b, 0x4b, 0x63, 0xd7, 0xf0, 0xa0, 0xe4, 0x06, 0xab, 0xc2, 0x88, 0x0f, 0xda, 0xfa, 0xef, 0x6c, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0x2c, 0x8d, 0x5d, 0xc3, 0x83, 0x92, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x66, 0x4c, 0x3e, 0x3b, 0x68, 0xeb, 0xbf, 0xb3, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x96, 0xba, 0x8d, 0xae, 0xc1, 0x32, 0x6b, 0xa6, 0xd9, 0xa0, 0x29, 0x21, 0xd2, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0x37, 0xee, 0x36, 0xbc, 0x7c, 0x77, 0xd0, 0xf0, 0x6a, 0xe9, 0x06, 0xad, 0xb7, 0x94, 0x1e, 0x34, 0x71, 0x86, 0xba, 0xe1, 0x92, 0xda, 0xa0, 0xb5, 0x5a, 0xab, 0x83, 0xa6, 0x20, 0x4e, 0x37, 0x3c, 0x28, 0xb9, 0x86, 0x0f, 0x72, 0x36, 0x68, 0x44, 0x0d, 0xf5, 0xa0, 0xf5, 0x1d, 0xd3, 0x0d, 0x97, 0xd4, 0x06, 0xad, 0xd5, 0x5a, 0x6d, 0xd0, 0x74, 0x0b, 0xea, 0x1a, 0xb4, 0x28, 0x72, 0xba, 0xe1, 0xdd, 0x9e, 0x0d, 0x4e, 0x04, 0x6d, 0x1b, 0xac, 0x2c, 0x3e, 0x3d, 0x68, 0x46, 0xe6, 0xb4, 0xc3, 0x29, 0xb6, 0x06, 0x8d, 0xf3, 0x98, 0x6e, 0xf8, 0xfa, 0x65, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0xfc, 0xc7, 0xde, 0xda, 0xe0, 0xd8, 0xca, 0xe8, 0xca, 0x40, 0xc2, 0xdc, 0xc8, 0x40, 0xe0, 0xde, 0xe0, 0x0e, 0x12, 0x5b, 0xaa, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x68, 0x77, 0xa1, 0x74, 0x83, 0xc4, 0x96, 0xaa, 0x0d, 0x97, 0xd4, 0x06, 0x45, 0x8d, 0xf8, 0x1a, 0xb4, 0xbb, 0x50, 0xba, 0xe1, 0x6d, 0x9d, 0xc1, 0xe9, 0x83, 0x76, 0x17, 0x4a, 0xd7, 0x60, 0xa5, 0x83, 0xdd, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf0, 0xe0, 0xe9, 0x41, 0xbb, 0x0b, 0xa5, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x13, 0x41, 0xdb, 0x06, 0x2d, 0xe1, 0x9e, 0xae, 0xe1, 0x6d, 0x9d, 0xc1, 0xe3, 0x83, 0xf6, 0x4f, 0x51, 0xab, 0xc3, 0x29, 0xd6, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x2d, 0xe0, 0xb3, 0xd5, 0xb9, 0x9d, 0x1b, 0x2c, 0x87, 0x64, 0x9a, 0x0d, 0x4e, 0xec, 0x37, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x95, 0x77, 0x45, 0x6d, 0xf8, 0xae, 0x65, 0x0d, 0x0f, 0x4a, 0x6e, 0x10, 0x80, 0x6c, 0x1b, 0xde, 0xd6, 0x19, 0xf0, 0xd9, 0xc2, 0xdc, 0xce, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0x02, 0x09, 0xe7, 0x0d, 0x82, 0xf4, 0x74, 0x8d, 0x43, 0x07, 0x4d, 0xe3, 0xaa, 0xad, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x56, 0xc9, 0x91, 0x6e, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0x6c, 0xd0, 0xd8, 0x94, 0xe6, 0x86, 0xb7, 0x75, 0x06, 0x3c, 0xb9, 0xb7, 0xb9, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0xbf, 0xb8, 0x6c, 0x50, 0x50, 0x64, 0x6e, 0xd0, 0xac, 0x50, 0xc3, 0x06, 0xed, 0x1d, 0xa3, 0xae, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0x83, 0xa6, 0x71, 0xd5, 0x5a, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x9c, 0x0e, 0x26, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0x21, 0x83, 0x60, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x5a, 0xd3, 0x1d, 0xdb, 0xa0, 0xb1, 0xfb, 0xae, 0x0d, 0xda, 0x3b, 0x46, 0x6d, 0x0d, 0xbf, 0x28, 0x6d, 0xd0, 0x84, 0x08, 0xd5, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0xce, 0x24, 0x61, 0x83, 0xc6, 0x5f, 0xa8, 0x0e, 0xda, 0x74, 0x46, 0x6d, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xb0, 0x5a, 0x8b, 0x76, 0xc3, 0x2f, 0x2e, 0x1b, 0x14, 0x14, 0x99, 0x07, 0xed, 0x35, 0xa3, 0xae, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x56, 0xfa, 0x8f, 0x6e, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x6c, 0xb0, 0xb2, 0x0f, 0x6e, 0x83, 0xb2, 0xe4, 0x7d, 0x01, 0xdf, 0x8c, 0x2d, 0x2c, 0xef, 0xa0, 0xf1, 0x6b, 0xd4, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0xd6, 0xf5, 0xc1, 0x6d, 0x50, 0x50, 0x64, 0x6e, 0x70, 0x0c, 0x37, 0xd8, 0xf0, 0x8b, 0xcb, 0x06, 0xad, 0xa9, 0x28, 0xac, 0xe1, 0x6d, 0x9d, 0xc1, 0xeb, 0x83, 0x75, 0x7d, 0x70, 0x07, 0x6d, 0x3a, 0xa3, 0x76, 0x38, 0xc5, 0xd6, 0xa0, 0x05, 0x1e, 0xcc, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x16, 0x78, 0x30, 0x1b, 0xc0, 0x0f, 0xaf, 0x8d, 0x0d, 0x84, 0xae, 0xac, 0x0d, 0x8e, 0x2d, 0x8c, 0xae, 0x6c, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x00, 0xbf, 0x34, 0xb7, 0x16, 0xba, 0x30, 0x36, 0xb6, 0x16, 0xb3, 0x37, 0xb9, 0xf6, 0xf0, 0xc1, 0xea, 0x06, 0xa5, 0xbd, 0xe5, 0x1a, 0xfe, 0x5c, 0xda, 0xa0, 0x35, 0x17, 0xd2, 0xc3, 0x07, 0xab, 0x1b, 0x94, 0x2c, 0xec, 0xb3, 0xcc, 0x1a, 0x34, 0x58, 0x33, 0xba, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xd0, 0x60, 0xcd, 0x68, 0x03, 0x78, 0x95, 0xb9, 0xd1, 0xc9, 0xe5, 0xb5, 0xc0, 0xbd, 0xa5, 0xb9, 0xd1, 0x6d, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x1b, 0x34, 0x40, 0x0c, 0xba, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x0d, 0x10, 0xa4, 0xb6, 0x86, 0xb7, 0x75, 0x06, 0xf8, 0xe9, 0xc2, 0xd8, 0xd8, 0x5a, 0xe8, 0xde, 0xe0, 0x36, 0xbc, 0xad, 0x33, 0xc0, 0x7f, 0x97, 0x46, 0x56, 0xd6, 0x42, 0xf7, 0x06, 0xd7, 0x6a, 0xd0, 0x68, 0xc0, 0xe8, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0xa3, 0x01, 0xa3, 0x0d, 0xc0, 0x8b, 0x98, 0x5c, 0xd8, 0x58, 0x19, 0x48, 0x9a, 0x1b, 0x5d, 0x99, 0x1c, 0xdc, 0x1b, 0x5b, 0x18, 0x5d, 0xda, 0x9b, 0xdb, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0xcb, 0x2a, 0x41, 0xd7, 0xf0, 0x8b, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0x3c, 0x68, 0x87, 0xb5, 0xf3, 0xf0, 0xb4, 0xce, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x0f, 0x0c, 0xba, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x3b, 0x0e, 0xba, 0x41, 0x03, 0xc4, 0xa0, 0x6b, 0xb8, 0xa4, 0x16, 0xc0, 0x57, 0x4c, 0x2e, 0x6c, 0x6c, 0xad, 0x8c, 0xae, 0x8c, 0xac, 0xa5, 0x8c, 0xad, 0xac, 0x6d, 0x0d, 0xda, 0xd7, 0x48, 0x3d, 0x28, 0x60, 0xf3, 0x6b, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xa2, 0x22, 0x74, 0x0d, 0x6f, 0xeb, 0x0c, 0xe0, 0x41, 0x57, 0xe7, 0x16, 0xd6, 0xd2, 0xf6, 0x46, 0x56, 0xb6, 0x86, 0xb7, 0x75, 0x36, 0x68, 0x9c, 0xee, 0xb2, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x2b, 0xd0, 0x56, 0xd7, 0xf0, 0xc6, 0xdd, 0xc1, 0x6a, 0x8c, 0xed, 0x83, 0xd6, 0x8c, 0x52, 0x5b, 0x01, 0x3c, 0xe8, 0xc2, 0xd8, 0xd8, 0x5a, 0xca, 0xd8, 0xca, 0xda, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xa6, 0x9b, 0x52, 0x1b, 0xc0, 0x8f, 0x2e, 0x8c, 0x8d, 0x0d, 0x04, 0x4e, 0xae, 0xcc, 0x2c, 0x6c, 0xac, 0x6c, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x65, 0x95, 0xa0, 0x6b, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xc3, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xe1, 0x0d, 0xff, 0xce, 0x6f, 0xb0, 0x04, 0x53, 0xfb, 0x60, 0x29, 0x0d, 0xf4, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0xde, 0xf0, 0xef, 0xfc, 0x06, 0x8b, 0x3f, 0xb5, 0x0f, 0x96, 0xd2, 0x40, 0xb7, 0x86, 0x3f, 0x97, 0x06, 0x17, 0x0f, 0x1a, 0x1f, 0x4b, 0x5d, 0xc3, 0x9f, 0x4b, 0x83, 0x8f, 0x07, 0xcb, 0x86, 0xa9, 0xdb, 0xf0, 0x17, 0xcd, 0x06, 0x0b, 0x61, 0xa0, 0x37, 0xfc, 0xe2, 0xb2, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb6, 0xce, 0x41, 0xcb, 0x75, 0xa0, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x13, 0x41, 0xdb, 0x1a, 0xde, 0xd6, 0x19, 0x3c, 0x3e, 0x3c, 0xb8, 0x73, 0x78, 0x0b, 0xad, 0xc3, 0x2f, 0x42, 0x1b, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x45, 0x45, 0xe8, 0x1a, 0xde, 0xd6, 0x19, 0xe0, 0xa7, 0x0b, 0x3b, 0x6b, 0x41, 0x2b, 0x0b, 0x23, 0x5b, 0xc3, 0xdb, 0x3a, 0x03, 0xf8, 0xd0, 0x85, 0xb1, 0xb1, 0xb5, 0x84, 0xd1, 0xd1, 0xc9, 0xcd, 0xad, 0xe1, 0x6d, 0x9d, 0x01, 0x3c, 0xe8, 0xc2, 0xd8, 0xd8, 0x5a, 0xe8, 0xc2, 0xd2, 0xd8, 0x5a, 0x0d, 0x1a, 0xe9, 0x48, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x68, 0xa4, 0x23, 0xb5, 0x01, 0x7e, 0xba, 0x30, 0x36, 0x36, 0x10, 0xba, 0x37, 0xb8, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x56, 0xf7, 0xb2, 0xae, 0x41, 0x21, 0x98, 0xba, 0x41, 0xe8, 0x97, 0x6c, 0xb0, 0x0a, 0x32, 0x79, 0x83, 0x85, 0x30, 0xd0, 0x1b, 0x2c, 0x1b, 0xa6, 0x6e, 0x83, 0xf3, 0x60, 0xc7, 0x06, 0xcb, 0x21, 0x99, 0x66, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x07, 0x06, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x40, 0x5b, 0xdd, 0x60, 0x99, 0x93, 0xec, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0xed, 0x38, 0xe8, 0x06, 0x6b, 0x8f, 0x49, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xcb, 0x2a, 0x41, 0xd7, 0xf0, 0xb6, 0xce, 0x00, 0xbe, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x2d, 0x63, 0x68, 0x61, 0x72, 0x73, 0x6b, 0x78, 0x5b, 0x67, 0x00, 0xcf, 0xb8, 0xba, 0x37, 0xba, 0xb2, 0x96, 0x34, 0x37, 0xb7, 0x30, 0x39, 0xb2, 0xb9, 0x6a, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x02, 0x6d, 0x75, 0x83, 0x55, 0x60, 0xb2, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x6b, 0x78, 0x5b, 0x67, 0x00, 0xef, 0xb9, 0x31, 0xb9, 0x34, 0x38, 0xba, 0x96, 0x37, 0xb9, 0x96, 0x39, 0xba, 0x3c, 0xb6, 0xb2, 0x35, 0xbc, 0xad, 0x33, 0x00, 0x0f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2d, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2d, 0x74, 0x61, 0x69, 0x6c, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x81, 0xb6, 0xba, 0xc1, 0x2a, 0x30, 0xd9, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xd3, 0x4d, 0xa9, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x81, 0xb6, 0xba, 0xc1, 0x32, 0x27, 0xd9, 0x35, 0xbc, 0xad, 0x33, 0x80, 0xcf, 0x5d, 0x1a, 0x59, 0x59, 0x4b, 0x5c, 0xdd, 0x1b, 0x5d, 0x59, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x15, 0x68, 0xab, 0x1b, 0x2c, 0x73, 0x92, 0x5d, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x1d, 0x07, 0xdd, 0x60, 0x31, 0xff, 0xe8, 0x41, 0xdb, 0x80, 0xa9, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x56, 0xa0, 0xad, 0x6e, 0xb0, 0x0a, 0x4c, 0x76, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x76, 0x1c, 0x74, 0x83, 0xa5, 0x5b, 0xa2, 0x1b, 0xac, 0x10, 0x29, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x40, 0x5b, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0xb4, 0xed, 0x78, 0x7a, 0x50, 0xd6, 0x79, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0x1a, 0x7a, 0xe4, 0xac, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x40, 0x5b, 0xdd, 0x60, 0x99, 0x93, 0xec, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x45, 0x45, 0xe8, 0x1a, 0xac, 0x10, 0x6a, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0xf6, 0x75, 0x79, 0xd0, 0x92, 0xe6, 0xe5, 0x06, 0x0d, 0x0b, 0xa5, 0x1e, 0x34, 0x2f, 0x7a, 0x79, 0xb0, 0xc4, 0xa4, 0xb4, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x0a, 0x94, 0xd2, 0x0d, 0x96, 0x39, 0xc9, 0xae, 0xc1, 0xd1, 0x75, 0x70, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xd2, 0x8f, 0xa6, 0x0d, 0xcf, 0xe2, 0x1d, 0x34, 0x8f, 0x84, 0x5a, 0xb5, 0x02, 0xf8, 0xdc, 0xa5, 0x91, 0x95, 0xb5, 0x84, 0xd1, 0xd1, 0xc9, 0xcd, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0x6d, 0xcc, 0xa7, 0x36, 0x80, 0xf7, 0x5d, 0x1a, 0x59, 0x19, 0x48, 0x18, 0x1d, 0x9d, 0x5c, 0x9a, 0x58, 0x1d, 0x5d, 0xd9, 0xdc, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0xcb, 0x2a, 0x41, 0xd7, 0xf0, 0x8b, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0xdc, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0x9b, 0x30, 0x37, 0x68, 0x7c, 0x2c, 0xb5, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0x8c, 0x1d, 0x3b, 0x68, 0x32, 0x29, 0x73, 0x83, 0x13, 0xfb, 0xcd, 0x06, 0xed, 0xdf, 0x67, 0x6e, 0x50, 0x74, 0x1a, 0x6f, 0xb0, 0x50, 0x93, 0x74, 0x83, 0xf6, 0x09, 0x2e, 0x37, 0x28, 0x3a, 0x8d, 0x37, 0x58, 0xd7, 0x4a, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xf8, 0x30, 0xba, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x83, 0x66, 0x01, 0x6d, 0xb0, 0x42, 0xa8, 0x69, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xd8, 0xd7, 0xe5, 0xc1, 0x0a, 0x67, 0xd2, 0x35, 0xbc, 0xad, 0x33, 0xc0, 0x17, 0xd6, 0xd2, 0x16, 0xe6, 0x56, 0xb6, 0x86, 0xb7, 0x75, 0x06, 0xf0, 0x46, 0x7b, 0x83, 0x2b, 0x33, 0xab, 0x63, 0x63, 0xcb, 0x6b, 0x89, 0xab, 0x7b, 0xa3, 0x2b, 0xeb, 0x70, 0x8a, 0x2d, 0x80, 0xe7, 0x9d, 0x5c, 0x18, 0x1c, 0x5c, 0x19, 0x59, 0x4b, 0x19, 0x5b, 0x59, 0xdb, 0xbc, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xd0, 0x5e, 0x88, 0x6a, 0x03, 0xf8, 0xdd, 0xc9, 0x85, 0xc1, 0xc1, 0x95, 0x91, 0x81, 0xd0, 0xd5, 0xb9, 0x85, 0x6d, 0x50, 0x74, 0x1a, 0x6f, 0xb0, 0xac, 0x12, 0x74, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xc3, 0x83, 0x65, 0xc3, 0xd4, 0x87, 0xa7, 0x75, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x7a, 0x60, 0xd0, 0x35, 0xbc, 0xad, 0x33, 0x80, 0xff, 0x5d, 0x1a, 0x59, 0x59, 0x0b, 0x5c, 0x98, 0x5c, 0x99, 0x5b, 0x4b, 0x19, 0x5b, 0x59, 0xdb, 0xdc, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x59, 0x25, 0xe8, 0x1a, 0x7e, 0x51, 0xda, 0xe0, 0x3c, 0x3b, 0xba, 0xe1, 0x2f, 0x9a, 0x0d, 0x56, 0xa5, 0x6b, 0x6f, 0x70, 0x74, 0x1d, 0x5c, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0xf4, 0xa3, 0x69, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xc3, 0x7e, 0x3b, 0x38, 0x6d, 0xa1, 0xd5, 0xc1, 0xaa, 0x64, 0xf5, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xb2, 0x4a, 0xd0, 0x0d, 0x9a, 0x89, 0x19, 0xdd, 0xa0, 0xc9, 0x8f, 0xd4, 0x5a, 0x0d, 0xda, 0xcb, 0x50, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x68, 0x2f, 0x43, 0xb5, 0x01, 0xfc, 0xda, 0xc2, 0xdc, 0xca, 0x40, 0xc2, 0xe6, 0x40, 0xd0, 0xde, 0xde, 0xdc, 0x36, 0x28, 0x3a, 0x8d, 0x37, 0x58, 0x56, 0x09, 0xba, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x06, 0x0b, 0xb2, 0x53, 0xd7, 0xf0, 0xe7, 0xd2, 0xe0, 0xe2, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0xd9, 0x84, 0x79, 0xb0, 0xd6, 0xd0, 0xb7, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x9f, 0x07, 0x6d, 0x78, 0x5a, 0x67, 0xc3, 0x2f, 0x2e, 0x1b, 0x9e, 0xd6, 0x39, 0x38, 0x22, 0x16, 0x6c, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x75, 0xb6, 0xa6, 0xad, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x03, 0x83, 0xae, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0x0a, 0xb4, 0xd5, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x76, 0x1c, 0x74, 0x83, 0x85, 0x0c, 0xa2, 0x1b, 0xb4, 0x59, 0xa6, 0xda, 0xc1, 0x12, 0x93, 0xd2, 0x66, 0x0d, 0x1a, 0x34, 0x4d, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x68, 0xd0, 0x34, 0xb5, 0x01, 0x7c, 0xef, 0xd2, 0xc8, 0xca, 0x56, 0xe8, 0xc2, 0xd8, 0xd8, 0x40, 0xcc, 0xd8, 0xde, 0xee, 0x36, 0x28, 0x3a, 0x8d, 0x37, 0x58, 0x56, 0x09, 0xba, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xe1, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0x48, 0x99, 0xac, 0xe1, 0x83, 0xf9, 0x0d, 0x3f, 0xd4, 0x1c, 0xb4, 0xc3, 0xda, 0xd9, 0xe1, 0x69, 0x9d, 0x0d, 0x4e, 0xec, 0x37, 0x1b, 0x2c, 0x54, 0x0c, 0xdd, 0x60, 0x85, 0x50, 0xd3, 0x06, 0xeb, 0x81, 0x41, 0xd7, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x6b, 0xc7, 0x41, 0x37, 0x58, 0x8b, 0x83, 0xb9, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x0f, 0x0c, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x05, 0x1d, 0xba, 0x86, 0x67, 0xf1, 0x06, 0x6d, 0x83, 0xae, 0x41, 0xd5, 0xa0, 0x65, 0xd0, 0x7d, 0xd0, 0x0c, 0xef, 0x62, 0x1b, 0xac, 0xc5, 0xc1, 0xdc, 0xa0, 0xed, 0x2b, 0xd1, 0x35, 0x3c, 0x28, 0xb9, 0xc1, 0x42, 0xfc, 0xfc, 0x83, 0x35, 0xb0, 0xaa, 0xb5, 0x41, 0xbb, 0x00, 0xa3, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x65, 0xc7, 0xa0, 0x1b, 0xac, 0xc5, 0xc1, 0xdc, 0xa0, 0x8d, 0xbc, 0xcb, 0x35, 0x7c, 0x90, 0xb3, 0x41, 0x23, 0x1a, 0xa9, 0x1b, 0x2c, 0xfb, 0xac, 0x3d, 0x68, 0xfb, 0x4a, 0xf4, 0x60, 0x95, 0x34, 0xe8, 0x1a, 0x3e, 0xc8, 0xd9, 0xa0, 0x01, 0x1a, 0xd2, 0x0d, 0x96, 0x7d, 0xd6, 0x6e, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x65, 0xc7, 0xa0, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x85, 0x0f, 0xa3, 0x6b, 0xf8, 0x11, 0x66, 0x70, 0x3a, 0xd0, 0x15, 0x44, 0x44, 0x44, 0x07, 0xeb, 0xa8, 0x49, 0x3b, 0x9c, 0x62, 0x0b, 0xe0, 0x41, 0x17, 0xc6, 0xc6, 0xd6, 0xb2, 0x96, 0x46, 0x36, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xb4, 0x22, 0xab, 0xda, 0x00, 0xbe, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x20, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x2c, 0xab, 0x04, 0x5d, 0xc3, 0xdb, 0x3a, 0x03, 0x78, 0xa8, 0xbd, 0xa5, 0xb9, 0xb5, 0xd0, 0xbd, 0xc1, 0xcd, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x35, 0xb3, 0xa1, 0x1b, 0xac, 0x10, 0x29, 0x5d, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x07, 0x06, 0xdd, 0xa0, 0x4d, 0x9a, 0xd1, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x0a, 0xb4, 0xd5, 0x0d, 0x96, 0x39, 0xc9, 0x1e, 0xb4, 0xb5, 0x9d, 0x5a, 0xab, 0x41, 0xc3, 0xb0, 0xa9, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0x0d, 0xc3, 0xa6, 0x36, 0x80, 0xf7, 0xdc, 0x98, 0x5c, 0x1a, 0x1c, 0x1d, 0xc8, 0x9b, 0x1c, 0xc8, 0x1c, 0x5d, 0x1e, 0x5b, 0xd9, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0xcb, 0x2a, 0x41, 0xd7, 0xf0, 0x8b, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0xdc, 0xf0, 0xef, 0xfc, 0x06, 0x2b, 0xc8, 0xb5, 0x0f, 0x96, 0xd2, 0x40, 0x1f, 0x9e, 0xd6, 0xd9, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x2b, 0x2a, 0x42, 0xd7, 0x60, 0x85, 0x50, 0xd3, 0x06, 0xeb, 0x81, 0x41, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x0b, 0x1f, 0x46, 0xd7, 0xf0, 0xc6, 0xdd, 0x86, 0x97, 0xef, 0x02, 0xbe, 0xb9, 0x31, 0xb9, 0x34, 0x38, 0xba, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xc2, 0x87, 0xd1, 0x35, 0xbc, 0x71, 0xb7, 0xe1, 0xe5, 0xbb, 0x83, 0xd6, 0x94, 0x3b, 0x6b, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0xc6, 0x7c, 0x6a, 0xad, 0x00, 0x7f, 0x99, 0x5b, 0xcb, 0x18, 0x5b, 0xd8, 0xdc, 0xbc, 0xe1, 0x17, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0x78, 0xb8, 0x41, 0xe8, 0x97, 0x6c, 0x10, 0x52, 0x26, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x05, 0x3c, 0x63, 0x6c, 0x61, 0x73, 0xf3, 0xc1, 0xb2, 0xb8, 0xe7, 0x36, 0xfc, 0x45, 0xb3, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0xd9, 0x84, 0xb9, 0x86, 0xcf, 0x95, 0x36, 0x68, 0xf8, 0x5e, 0xf5, 0xe0, 0x14, 0x2e, 0xda, 0x06, 0x25, 0x3c, 0xe6, 0x86, 0x07, 0x77, 0x36, 0x28, 0x28, 0x32, 0x37, 0x38, 0xb1, 0xdf, 0x6c, 0x70, 0x96, 0x02, 0xdb, 0xa0, 0x30, 0x54, 0x5d, 0xc3, 0x1b, 0x77, 0x07, 0x0d, 0xe2, 0xab, 0x6e, 0xf8, 0x0a, 0x67, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x43, 0xd6, 0xe2, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x19, 0xf6, 0xdb, 0x1a, 0xde, 0xd6, 0x39, 0x58, 0xe7, 0xea, 0xda, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0xc5, 0x88, 0xfc, 0x06, 0x05, 0x45, 0xe6, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0xec, 0x73, 0x77, 0x70, 0xd6, 0x4a, 0x5c, 0x01, 0x7c, 0xef, 0xd2, 0xc8, 0xca, 0x5a, 0xd2, 0xdc, 0xdc, 0xca, 0xe4, 0x5a, 0xe8, 0xde, 0xe0, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xa6, 0x2d, 0x56, 0x1b, 0xc0, 0xf7, 0x2e, 0x8d, 0xac, 0x0c, 0x24, 0xcd, 0xcd, 0xad, 0x4c, 0x0e, 0x84, 0xee, 0x0d, 0x6e, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0xd5, 0xbd, 0xac, 0x6b, 0x50, 0x08, 0xa6, 0x6e, 0x10, 0xfa, 0x25, 0x1b, 0xac, 0x82, 0x4c, 0xde, 0xa0, 0x1d, 0xd6, 0xce, 0x83, 0x16, 0x25, 0x53, 0x37, 0x38, 0x0f, 0x76, 0x6c, 0xb0, 0x1c, 0x92, 0x69, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x7a, 0x60, 0xd0, 0x0d, 0x9a, 0xfc, 0x48, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x40, 0x5b, 0xdd, 0x60, 0x15, 0x98, 0xec, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x45, 0x45, 0xe8, 0x06, 0x0d, 0x0b, 0xa5, 0x1e, 0x34, 0xc2, 0x70, 0x59, 0x87, 0x53, 0xac, 0x35, 0x68, 0x87, 0x38, 0x75, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xa0, 0x1d, 0xe2, 0xd4, 0x06, 0xf0, 0xb9, 0x4b, 0x23, 0x2b, 0x03, 0x89, 0xab, 0x7b, 0xa3, 0x2b, 0xdb, 0xa0, 0xe8, 0x34, 0xde, 0x60, 0x59, 0x25, 0xe8, 0x06, 0x0d, 0xbb, 0xa8, 0x6e, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xf5, 0xc0, 0xa0, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x65, 0xc7, 0xa0, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x85, 0x0f, 0xa3, 0x6b, 0xf8, 0x11, 0x66, 0x70, 0x3a, 0xd0, 0x44, 0x44, 0x44, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x85, 0x9a, 0xa4, 0x1b, 0x34, 0x6f, 0x25, 0x7a, 0xd0, 0xa4, 0x67, 0x6a, 0x6b, 0x70, 0x62, 0xbf, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x2c, 0x75, 0xbb, 0x6d, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x85, 0x9a, 0xa4, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xf0, 0x61, 0x74, 0x0d, 0x3f, 0xc2, 0x0c, 0x4e, 0x07, 0xb2, 0x88, 0x88, 0x88, 0xda, 0xa0, 0xcd, 0x55, 0xd5, 0x36, 0xbc, 0xdb, 0xb3, 0xc1, 0xb2, 0x4a, 0xd0, 0x0d, 0x1a, 0x05, 0x4d, 0x5d, 0xc3, 0x25, 0xb5, 0x41, 0x73, 0xa6, 0xa9, 0x6b, 0xd0, 0x36, 0x0d, 0xe9, 0x41, 0x01, 0x9b, 0x5f, 0xcd, 0x1a, 0xb4, 0xe7, 0x3d, 0xb6, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xd0, 0x9e, 0xf7, 0x58, 0x03, 0xf8, 0xc1, 0xc9, 0xbd, 0x91, 0xd5, 0x8d, 0xd1, 0x81, 0xa0, 0xbd, 0xbd, 0xb9, 0x6d, 0x50, 0x74, 0x1a, 0x6f, 0xb0, 0xac, 0x12, 0x74, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0xcf, 0xa5, 0x01, 0x8f, 0xae, 0xae, 0x3d, 0x68, 0xed, 0x31, 0x75, 0xc3, 0x5f, 0x34, 0x1b, 0x2c, 0xb0, 0x70, 0xde, 0x20, 0x48, 0x4f, 0xd7, 0x38, 0xb4, 0x41, 0x93, 0x70, 0xab, 0xad, 0x41, 0xc0, 0x06, 0x6d, 0xf8, 0xc5, 0x65, 0x83, 0xc6, 0x2a, 0x0c, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf0, 0x41, 0x2b, 0x76, 0xab, 0xad, 0x41, 0x18, 0x01, 0x6d, 0xf8, 0xc5, 0x65, 0x83, 0x86, 0x0e, 0x18, 0x0e, 0x9a, 0xd2, 0x5b, 0xed, 0xa0, 0x4d, 0x9a, 0xd1, 0xc3, 0x29, 0xd6, 0x1a, 0x34, 0x1d, 0x98, 0xba, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xd0, 0x74, 0x60, 0x6a, 0x03, 0x78, 0xd0, 0x85, 0xb1, 0xb1, 0x81, 0xd0, 0x85, 0xa5, 0xb1, 0x6d, 0x50, 0xf0, 0x61, 0x6e, 0xd0, 0x88, 0x46, 0xea, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0xcb, 0x2a, 0x41, 0x37, 0x68, 0xd8, 0x45, 0x75, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x07, 0x06, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xc1, 0x09, 0xdd, 0xa0, 0xa0, 0xc8, 0x3c, 0x68, 0x7e, 0x18, 0x74, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x76, 0x1c, 0x74, 0x83, 0x85, 0x70, 0xa4, 0x6b, 0xb8, 0xa4, 0xd6, 0xa0, 0xbd, 0x10, 0xd5, 0x0e, 0x9a, 0xf1, 0x49, 0x6d, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x76, 0x1c, 0x74, 0x83, 0x85, 0x70, 0xa4, 0x1b, 0xac, 0x71, 0x26, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xab, 0x04, 0x5d, 0xc3, 0x25, 0xb5, 0x41, 0x7b, 0xa1, 0xa9, 0x07, 0xcd, 0xf8, 0xa4, 0x1e, 0xb4, 0x58, 0x9a, 0xda, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0xa1, 0x26, 0xe9, 0x1a, 0x7e, 0x71, 0xd9, 0x60, 0x85, 0x48, 0xe9, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x45, 0x45, 0xe8, 0x06, 0x2b, 0x44, 0x4a, 0x0f, 0x1a, 0xaf, 0x04, 0x6d, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0x8a, 0xac, 0x6a, 0xb5, 0x1a, 0xb4, 0x5f, 0xa3, 0xba, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xd0, 0x7e, 0x8d, 0x6a, 0x03, 0x78, 0xdc, 0xa5, 0x91, 0x95, 0x81, 0x98, 0xb1, 0xbd, 0xdd, 0x6d, 0x50, 0x74, 0x1a, 0x6f, 0xb0, 0xac, 0x12, 0x74, 0x83, 0x86, 0x5d, 0x54, 0x37, 0x28, 0x3a, 0x8d, 0x37, 0x58, 0x56, 0x09, 0xba, 0x41, 0xf3, 0xbe, 0xaa, 0x1b, 0xde, 0xed, 0xd9, 0x60, 0xa1, 0x26, 0xe9, 0x06, 0xed, 0x13, 0x5c, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0xd6, 0xb5, 0x92, 0x6e, 0xb0, 0xc6, 0x99, 0x74, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0xb4, 0xc5, 0x6a, 0x75, 0x38, 0xc5, 0xd6, 0xa0, 0xc5, 0xd0, 0xd4, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x16, 0x43, 0x53, 0x1b, 0x80, 0x8f, 0x33, 0xb9, 0xb7, 0x3a, 0x38, 0x90, 0xb1, 0x37, 0xb7, 0xb9, 0xb2, 0x31, 0x90, 0x31, 0xb4, 0x30, 0xb9, 0xb9, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0xcf, 0xa5, 0x01, 0x4f, 0xae, 0x4c, 0x3c, 0x68, 0x07, 0x50, 0x75, 0xc3, 0x5f, 0x34, 0x1b, 0x2c, 0x1b, 0xa6, 0xde, 0xa0, 0xb4, 0xb7, 0x5c, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x9b, 0x4b, 0x6b, 0x0f, 0xca, 0x39, 0xdb, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0xd1, 0xd5, 0xe9, 0x07, 0xcb, 0x86, 0xa9, 0xdb, 0xf0, 0x15, 0xce, 0x86, 0xbf, 0x68, 0x36, 0x58, 0x36, 0x4c, 0xbd, 0x41, 0x09, 0x8f, 0xb9, 0x06, 0x4d, 0x55, 0xaf, 0xb6, 0x06, 0x45, 0x9f, 0xee, 0x1a, 0x34, 0xc4, 0xbd, 0xda, 0x1a, 0x14, 0x3b, 0x9a, 0x1b, 0x34, 0xa2, 0x91, 0xba, 0x86, 0xb7, 0x75, 0x0e, 0x5a, 0x3c, 0x5f, 0xdd, 0xf0, 0x8b, 0xcb, 0x06, 0x29, 0xaf, 0x55, 0x6b, 0xf8, 0x0a, 0x67, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x16, 0xcf, 0x57, 0x37, 0x68, 0x5f, 0x7d, 0x75, 0xc3, 0x07, 0x39, 0x6b, 0xf8, 0x37, 0x67, 0x83, 0xd4, 0xd3, 0xd8, 0x0d, 0x6f, 0xeb, 0x0c, 0x9e, 0x1e, 0xb4, 0x78, 0xbe, 0xba, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0x2d, 0x9e, 0xaf, 0x6e, 0x78, 0x5b, 0x67, 0x70, 0xfa, 0xa0, 0xc5, 0xf3, 0xd5, 0x0e, 0xda, 0x57, 0x5f, 0x6d, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x16, 0xcf, 0x57, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0xed, 0x7c, 0xaf, 0xb6, 0xe1, 0x17, 0x97, 0x35, 0x58, 0xfa, 0xd1, 0xb4, 0xe1, 0xdd, 0x9e, 0x0d, 0x0a, 0x8b, 0xe5, 0x0d, 0xda, 0x57, 0x5f, 0x6d, 0x83, 0x46, 0x01, 0x58, 0xdb, 0xa0, 0x20, 0x98, 0x5d, 0xf0, 0xf4, 0xa0, 0x9d, 0xf2, 0xd5, 0x35, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x68, 0xa7, 0x7c, 0x75, 0xc3, 0xdb, 0x3a, 0x83, 0xd3, 0x07, 0xed, 0x94, 0xaf, 0xae, 0x41, 0x8b, 0xe7, 0xab, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0xdb, 0x3a, 0x07, 0xcd, 0x27, 0xb0, 0x1e, 0x34, 0x68, 0xc0, 0xda, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0x2d, 0x9e, 0xaf, 0xae, 0xe1, 0x17, 0x97, 0x0d, 0x9a, 0x95, 0x60, 0x5d, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0xdb, 0xa0, 0x89, 0x06, 0xd6, 0x35, 0x68, 0xf1, 0x7c, 0xf5, 0xa0, 0xa0, 0xc8, 0xac, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0xe4, 0x00, 0xeb, 0x41, 0xc3, 0x18, 0xac, 0xab, 0x41, 0xdb, 0x7d, 0xa9, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0x6d, 0xf7, 0xa5, 0x36, 0x80, 0x37, 0x5d, 0x18, 0x1b, 0x1b, 0x48, 0x18, 0x1d, 0x9d, 0x5c, 0x9a, 0x58, 0x1d, 0x5d, 0xd9, 0xdc, 0x06, 0x27, 0xf6, 0x9b, 0x0d, 0x16, 0x2a, 0x86, 0x6e, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x1b, 0xac, 0x10, 0x29, 0x3d, 0x58, 0x0d, 0x40, 0xba, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x68, 0x86, 0x3c, 0xf5, 0xa0, 0x41, 0x0c, 0xd5, 0x0e, 0xa7, 0xd8, 0x1a, 0xb4, 0xfd, 0xab, 0xba, 0xe1, 0x17, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0x78, 0xb8, 0x41, 0xe8, 0x97, 0x6c, 0x10, 0x52, 0x26, 0x1b, 0xb4, 0x5d, 0xb2, 0xda, 0x86, 0xbf, 0x68, 0x36, 0x58, 0x36, 0x4c, 0xbd, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0x95, 0xff, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0x48, 0xd5, 0x1b, 0x9e, 0xd6, 0xd9, 0xa0, 0x99, 0x98, 0xd1, 0x3a, 0x9c, 0x62, 0x6b, 0xd0, 0x7e, 0x6d, 0xea, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0xfb, 0xb5, 0xa9, 0x0d, 0xc0, 0x4b, 0x9d, 0x5b, 0xd9, 0xdc, 0x58, 0x18, 0x5c, 0x19, 0x19, 0x08, 0x5d, 0x18, 0x1b, 0x1b, 0x08, 0x5d, 0x58, 0x1a, 0xdb, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0xcb, 0x2a, 0x41, 0x37, 0x68, 0xd8, 0x45, 0x75, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x85, 0x9a, 0xa4, 0x1b, 0xb4, 0x94, 0xba, 0xba, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0x9a, 0xd9, 0xd0, 0x0d, 0x56, 0x88, 0x94, 0x6e, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x1b, 0x34, 0x40, 0x0c, 0xba, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0xcb, 0x2a, 0x41, 0xd7, 0xf0, 0x8b, 0xd2, 0x06, 0x8b, 0x08, 0xea, 0x36, 0x58, 0xfa, 0xd1, 0x74, 0x78, 0x5a, 0x67, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x07, 0x06, 0x5d, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x1d, 0x07, 0xdd, 0x60, 0x8d, 0x33, 0xe9, 0x41, 0xeb, 0xac, 0xa1, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x15, 0x28, 0xa5, 0x1b, 0x34, 0x0c, 0x9f, 0x5a, 0xcd, 0x1a, 0x34, 0xc6, 0xa1, 0xba, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0xb2, 0x4a, 0xd0, 0x35, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x0f, 0x37, 0x08, 0xfd, 0x92, 0x0d, 0x42, 0xca, 0x64, 0x83, 0x16, 0x0e, 0x3e, 0x3b, 0x3c, 0xad, 0xb3, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0xb2, 0x4a, 0xd0, 0x35, 0xfc, 0xa2, 0xb4, 0x41, 0xbb, 0xaf, 0x9a, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x62, 0x12, 0x73, 0x83, 0xa5, 0x35, 0xcf, 0x07, 0xa5, 0xf3, 0xfb, 0x06, 0x8d, 0xbe, 0xa5, 0x6e, 0x70, 0x74, 0x1d, 0xdc, 0xa0, 0x91, 0xac, 0xcd, 0x0e, 0x9a, 0x61, 0xb8, 0x5c, 0x0d, 0x9a, 0xd1, 0x49, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x68, 0x46, 0x27, 0xb5, 0x01, 0x78, 0x10, 0x93, 0x0b, 0x1b, 0x5b, 0x2b, 0xa3, 0x2b, 0x23, 0x03, 0x29, 0x63, 0x2b, 0x6b, 0x2b, 0x73, 0xa3, 0xdb, 0xa0, 0xe8, 0x34, 0xde, 0x60, 0xa1, 0x26, 0xe9, 0x06, 0xcd, 0xe0, 0x5d, 0x6e, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x1b, 0xb4, 0x98, 0x97, 0xba, 0x86, 0xb7, 0x75, 0x06, 0xf0, 0xb9, 0x4b, 0x23, 0x2b, 0x6b, 0x29, 0x63, 0x2b, 0x6b, 0x9b, 0xeb, 0x70, 0x8a, 0xb5, 0x06, 0x6d, 0xc8, 0x8c, 0x6e, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x1e, 0xb4, 0x5d, 0xb2, 0xba, 0xe1, 0x2f, 0x9a, 0x0d, 0x96, 0x0d, 0x53, 0x6f, 0x10, 0xa4, 0xa7, 0x1b, 0x94, 0xce, 0xef, 0x6b, 0x10, 0xb0, 0x41, 0x1b, 0x1c, 0x5d, 0x07, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0x8d, 0xbe, 0xa5, 0xd6, 0x1a, 0x84, 0x11, 0xd0, 0x41, 0xa3, 0x6f, 0xa9, 0xad, 0x00, 0x1e, 0x77, 0x69, 0x64, 0x65, 0x2d, 0x74, 0x61, 0x69, 0xec, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x8b, 0xa8, 0xac, 0x0d, 0xe0, 0x79, 0x97, 0x46, 0x56, 0x06, 0x52, 0xc6, 0x56, 0xd6, 0x56, 0xe6, 0x46, 0x37, 0xb7, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0xb2, 0x4a, 0xd0, 0x0d, 0x1a, 0x76, 0x51, 0xdd, 0x60, 0x85, 0x50, 0xd3, 0x06, 0xeb, 0x81, 0x41, 0xd7, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x6b, 0xc7, 0x41, 0x37, 0x58, 0x08, 0x47, 0xba, 0x86, 0xb7, 0x75, 0x0e, 0x1a, 0xd3, 0x5c, 0x6d, 0x83, 0x66, 0x24, 0x57, 0x0f, 0x96, 0x98, 0x94, 0xce, 0x1a, 0x34, 0xa7, 0x97, 0xba, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xd0, 0x9c, 0x5e, 0x6a, 0x03, 0xfc, 0x74, 0x61, 0x67, 0x20, 0x68, 0x65, 0x61, 0x64, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x2c, 0xab, 0x04, 0x5d, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x1e, 0x34, 0xf8, 0x95, 0xba, 0x41, 0xfb, 0x66, 0xa9, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0xf1, 0xa0, 0xf1, 0xb1, 0xd4, 0x36, 0xfc, 0x45, 0xb3, 0x41, 0x23, 0xdb, 0xaa, 0x1b, 0x7e, 0x71, 0xd9, 0xf0, 0xb4, 0xce, 0x1a, 0xde, 0xed, 0xd9, 0xe0, 0x44, 0xd0, 0x76, 0x78, 0x2e, 0xa8, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xa2, 0x22, 0x74, 0x83, 0x26, 0x31, 0x54, 0xd7, 0xa0, 0xe8, 0x34, 0xde, 0x60, 0x59, 0x25, 0xe8, 0x1a, 0x7e, 0x51, 0x5a, 0xc3, 0x9f, 0x4b, 0x83, 0x87, 0x1b, 0x84, 0x7e, 0xc9, 0x06, 0x21, 0x65, 0xb2, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0xd9, 0x84, 0xb9, 0x86, 0xcf, 0x95, 0x36, 0x58, 0xaf, 0xf5, 0xbc, 0x41, 0x13, 0x74, 0xac, 0xd5, 0x86, 0xbf, 0x68, 0xd6, 0x20, 0xf4, 0x4b, 0x36, 0x08, 0x29, 0x93, 0x83, 0x56, 0xc7, 0x59, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0xfb, 0xfe, 0x9e, 0x1b, 0x9e, 0xd6, 0xd9, 0xa0, 0x61, 0xf5, 0xc0, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x8a, 0x8a, 0xd0, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xfb, 0xf7, 0x99, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x25, 0x38, 0xa1, 0x1b, 0x34, 0x5d, 0x13, 0x7a, 0x90, 0xe2, 0xa7, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x56, 0x09, 0xba, 0xc1, 0x32, 0xec, 0xb7, 0x83, 0x85, 0xf5, 0xac, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x56, 0x09, 0xba, 0x86, 0xb7, 0x75, 0x36, 0x68, 0x09, 0x5e, 0xb5, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x42, 0xc5, 0xd0, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x8a, 0x8a, 0xd0, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x12, 0x9c, 0xd0, 0x0d, 0x9a, 0x3f, 0x58, 0x3d, 0x58, 0x2e, 0xbf, 0x7a, 0xb0, 0xb0, 0x9e, 0xb5, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xed, 0xdf, 0x67, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x56, 0x54, 0x84, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x03, 0x83, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0xe0, 0x84, 0x6e, 0xd0, 0xa4, 0xec, 0xe7, 0xc1, 0xf2, 0x3a, 0xd3, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x12, 0x9c, 0xd0, 0x0d, 0xda, 0x0f, 0xfe, 0xdc, 0xa0, 0xed, 0xbe, 0xcc, 0x3a, 0x68, 0x49, 0x36, 0xb3, 0x83, 0x25, 0x26, 0xa5, 0x07, 0xcd, 0xb7, 0xab, 0xae, 0x06, 0x8d, 0x57, 0xb2, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x34, 0x5e, 0xc9, 0xda, 0x41, 0x1b, 0xaf, 0xac, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x2c, 0xab, 0x04, 0xdd, 0xa0, 0x61, 0x17, 0xd5, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x96, 0x55, 0x82, 0x6e, 0xd0, 0xbc, 0xaf, 0xea, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xa8, 0x18, 0xba, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x3b, 0x0e, 0x7a, 0xd0, 0x56, 0xf1, 0x6a, 0x87, 0x53, 0xac, 0x35, 0x68, 0x0f, 0x24, 0x75, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xa0, 0x3d, 0x90, 0xd4, 0x06, 0xf0, 0xbd, 0x4b, 0x23, 0x2b, 0x03, 0x79, 0xab, 0xa3, 0x2b, 0x93, 0x03, 0xa1, 0x7b, 0x83, 0xdb, 0xa0, 0xe8, 0x34, 0xde, 0x60, 0x75, 0x2f, 0xeb, 0x06, 0xad, 0x39, 0xa6, 0x6e, 0x70, 0x1e, 0xec, 0xd8, 0x60, 0x39, 0x24, 0xd3, 0x6c, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xf5, 0xc0, 0xa0, 0x1b, 0xb4, 0x03, 0x9c, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x81, 0xb6, 0xba, 0xc1, 0x32, 0x27, 0xd9, 0x0d, 0x9a, 0xa8, 0x51, 0x6d, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x02, 0x6d, 0x75, 0x83, 0x55, 0x60, 0xb2, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x1b, 0xb4, 0x98, 0x97, 0xba, 0x86, 0xb7, 0x75, 0x36, 0x68, 0x11, 0x95, 0xb5, 0x6a, 0x35, 0x68, 0x75, 0x28, 0x75, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xa0, 0xd5, 0xa1, 0xd4, 0x06, 0xf0, 0xc7, 0x6b, 0x63, 0x03, 0x71, 0x7b, 0x23, 0x2b, 0x43, 0x99, 0x4b, 0x01, 0x59, 0x4b, 0x73, 0x23, 0xdb, 0x60, 0x85, 0x50, 0xd3, 0x06, 0xeb, 0x81, 0x41, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x4b, 0x70, 0x42, 0x37, 0x68, 0x54, 0x29, 0xf5, 0x60, 0xb5, 0x51, 0xe8, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x09, 0x4e, 0xe8, 0x1a, 0xde, 0xb8, 0x3b, 0x58, 0xe1, 0xb1, 0x7d, 0xb0, 0x08, 0xc0, 0x74, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x04, 0x27, 0x74, 0x0d, 0x6f, 0xdc, 0x1d, 0xac, 0x1b, 0xd9, 0x3e, 0x68, 0x06, 0x2f, 0x73, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x04, 0x27, 0x74, 0x0d, 0x6f, 0xdc, 0x1d, 0xac, 0x46, 0xd9, 0x3e, 0x68, 0xb9, 0x27, 0xb3, 0xc3, 0x29, 0xd6, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x0b, 0xf8, 0x67, 0x61, 0x73, 0xe8, 0x06, 0x45, 0xa7, 0xf1, 0x1a, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xf8, 0xc0, 0x85, 0xc9, 0xcd, 0x95, 0x81, 0xc0, 0x85, 0xd1, 0xa1, 0x1d, 0x2c, 0xab, 0x04, 0x5d, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0x70, 0x83, 0xd0, 0x2f, 0xd9, 0x20, 0xa4, 0x4c, 0x36, 0x68, 0xef, 0x1f, 0xb3, 0x0d, 0x7f, 0xd1, 0x6c, 0xd0, 0xde, 0x3f, 0xe6, 0x41, 0x2b, 0xa6, 0x99, 0x1b, 0xde, 0xed, 0xd9, 0x60, 0x5d, 0x2b, 0xe9, 0x06, 0x0b, 0xec, 0x4c, 0xd7, 0xf0, 0xb6, 0xce, 0x80, 0xcf, 0x96, 0xd6, 0x06, 0xd7, 0x2c, 0xe0, 0xb3, 0xbd, 0xbd, 0xb9, 0x1b, 0xde, 0xed, 0xd9, 0x60, 0xcd, 0x6c, 0xe8, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x45, 0x45, 0xe8, 0x06, 0x4d, 0x1f, 0x5f, 0x1e, 0xac, 0x70, 0x26, 0x3d, 0x68, 0x94, 0x43, 0x73, 0x16, 0xf0, 0xef, 0xd2, 0xe6, 0xca, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x1e, 0x18, 0x74, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x76, 0x1c, 0x74, 0x83, 0xc5, 0xfc, 0xa3, 0x6b, 0x50, 0x74, 0x1a, 0x6f, 0xb0, 0xc4, 0x8e, 0x75, 0x0d, 0xbf, 0x28, 0x6d, 0xb0, 0xcc, 0xe8, 0x7c, 0xc3, 0x5f, 0x34, 0x6b, 0x10, 0xfa, 0x25, 0x1b, 0x94, 0x4d, 0x98, 0x1b, 0x2c, 0xa0, 0x99, 0x6e, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x43, 0x06, 0xc1, 0x06, 0x8d, 0xaa, 0x68, 0x6e, 0xf8, 0x45, 0x69, 0x83, 0x75, 0xa1, 0xe6, 0x1b, 0x7e, 0x71, 0xd9, 0xa0, 0x5d, 0xe9, 0x88, 0x0d, 0xda, 0x65, 0x29, 0xd8, 0xa0, 0xe1, 0x1d, 0x8b, 0x0d, 0x5a, 0x45, 0x32, 0x38, 0x68, 0xc1, 0x2e, 0xf3, 0xa0, 0x2d, 0x4c, 0xcc, 0xd6, 0xa0, 0xe8, 0x34, 0xde, 0x60, 0x59, 0x25, 0xe8, 0x1a, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x1b, 0xac, 0x0b, 0x35, 0x5f, 0xc3, 0x9f, 0x4b, 0x1b, 0x04, 0x07, 0xc2, 0xc1, 0x02, 0x32, 0xeb, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0x02, 0x9a, 0xe9, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x8a, 0x2d, 0xcc, 0x0d, 0xda, 0x65, 0x29, 0xd8, 0xf0, 0x8b, 0xcb, 0x06, 0xed, 0x4a, 0x47, 0x6c, 0xd0, 0x2e, 0x4b, 0xc1, 0x06, 0x0d, 0xef, 0x58, 0x6c, 0xd0, 0xae, 0x03, 0xe7, 0x41, 0x0b, 0x76, 0x99, 0x1b, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x45, 0x45, 0xe8, 0x06, 0x4b, 0xeb, 0x59, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xed, 0xdf, 0x67, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x8e, 0x83, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x03, 0x83, 0x6e, 0xb0, 0xc0, 0xce, 0xf4, 0x60, 0x35, 0x00, 0xe9, 0x41, 0x4b, 0x98, 0x98, 0xb5, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0xcb, 0x2a, 0x41, 0xd7, 0xf0, 0x8b, 0xd2, 0x06, 0xcb, 0x8c, 0xce, 0x37, 0xfc, 0x45, 0xb3, 0xc1, 0x02, 0x9a, 0xe9, 0x0d, 0xbf, 0xb8, 0x1c, 0x34, 0x6e, 0xda, 0x7a, 0xd0, 0x16, 0x26, 0x66, 0xab, 0x41, 0x13, 0x53, 0x98, 0x1b, 0x94, 0x2c, 0xec, 0xb3, 0xcc, 0x02, 0x3e, 0x5b, 0x98, 0xdc, 0xb9, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xd0, 0xf6, 0x75, 0x6b, 0x03, 0xa0, 0x17, 0x0d, 0x48, 0xd8, 0x58, 0xd9, 0x1c, 0x08, 0x1d, 0x5a, 0x99, 0x1b, 0xc8, 0x5c, 0x5d, 0x5b, 0x5b, 0x98, 0x5c, 0x1e, 0x0b, 0x88, 0x0c, 0x48, 0xd8, 0x58, 0xd9, 0x1c, 0x08, 0x1d, 0x5a, 0x99, 0x1b, 0x08, 0x5c, 0x98, 0x5c, 0xd8, 0x99, 0x5c, 0x18, 0x1c, 0xda, 0x9c, 0x6b, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x1d, 0x07, 0xdd, 0xa0, 0x88, 0xf2, 0xdd, 0xa0, 0x88, 0xf2, 0x5d, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0xa8, 0x08, 0x5d, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x2b, 0x18, 0x5d, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0xa8, 0x08, 0x5d, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x07, 0x06, 0x5d, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x2b, 0x18, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0x4c, 0x26, 0x5d, 0xc3, 0xdb, 0x3a, 0x03, 0xbc, 0x65, 0x6e, 0x2d, 0x6c, 0x69, 0x6e, 0x6b, 0x6d, 0xb0, 0x10, 0x8e, 0xf4, 0x60, 0x85, 0x33, 0xe9, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0xd9, 0x31, 0xe8, 0x06, 0x6b, 0x9c, 0x49, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x2b, 0x50, 0x4a, 0xd7, 0xa0, 0x10, 0x4c, 0x3d, 0x58, 0xe8, 0xd7, 0x5d, 0xad, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x96, 0x1d, 0x83, 0x6e, 0xb0, 0xc6, 0x99, 0x74, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xac, 0x12, 0x74, 0x83, 0xe5, 0xc8, 0xc2, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x85, 0xc9, 0xa4, 0x07, 0xab, 0xa4, 0x41, 0xab, 0x83, 0x75, 0xd4, 0xa4, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x72, 0x61, 0x6e, 0x74, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x1b, 0x14, 0x51, 0xbe, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0xa7, 0x2b, 0xcb, 0xa3, 0xab, 0x5a, 0x01, 0x3f, 0x0c, 0x6e, 0xae, 0xdc, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x68, 0x62, 0xc3, 0xb5, 0x01, 0xf4, 0xe1, 0xde, 0xe6, 0xe8, 0xcc, 0xd2, 0xf0, 0x40, 0xc6, 0xde, 0xda, 0xda, 0xca, 0xdc, 0xe8, 0xdc, 0x4a, 0x00, 0x3c, 0x11, 0x06, 0xf2, 0xe6, 0x56, 0x06, 0xc2, 0x96, 0xe6, 0x56, 0x06, 0x32, 0xf6, 0xd6, 0xd6, 0x56, 0xe6, 0x46, 0x07, 0x12, 0x46, 0x07, 0x42, 0x87, 0x56, 0x06, 0x52, 0xe6, 0x46, 0x06, 0xf2, 0x66, 0x06, 0x12, 0x06, 0xc2, 0x96, 0xe6, 0x56, 0x06, 0x82, 0x42, 0x97, 0x07, 0x97, 0x36, 0x16, 0xc6, 0xc6, 0x96, 0x07, 0x32, 0x47, 0x17, 0x26, 0x47, 0x97, 0xe6, 0x76, 0x06, 0x12, 0x46, 0x07, 0x32, 0xf6, 0xc6, 0x56, 0xd7, 0xe6, 0x2e, 0x01, 0xf0, 0x43, 0xcd, 0x4d, 0x0a, 0x08, 0x1d, 0x5a, 0x18, 0x1d, 0x48, 0x18, 0x1d, 0x5d, 0xd8, 0x18, 0x5a, 0xd9, 0x1c, 0x08, 0xdd, 0x1b, 0x08, 0x1d, 0x5a, 0x19, 0x48, 0x19, 0x1e, 0x9c, 0x5c, 0xd9, 0xdc, 0x5c, 0xda, 0x9b, 0x1b, 0xc8, 0x1c, 0x5d, 0x98, 0x1c, 0x5d, 0x9a, 0xdb, 0x19, 0x48, 0x18, 0x1d, 0x08, 0x1d, 0x5a, 0x19, 0x88, 0x58, 0xd9, 0x59, 0x9a, 0x9b, 0x5b, 0x9a, 0xdb, 0x19, 0xc8, 0x9b, 0x19, 0x08, 0x1d, 0x5a, 0xb9, 0x04, 0xa0, 0xc5, 0x58, 0x9d, 0x9c, 0x5c, 0x99, 0x1b, 0x1d, 0x08, 0x5b, 0x9a, 0x5b, 0x99, 0x0b, 0x08, 0xd9, 0x5b, 0xd9, 0x1c, 0x88, 0xdb, 0x1b, 0x1d, 0x48, 0xdd, 0x5c, 0x19, 0x48, 0x18, 0x08, 0x09, 0x5b, 0x9a, 0xdb, 0x9a, 0xab, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x8b, 0x88, 0x96, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x56, 0xa0, 0x94, 0xae, 0x41, 0x21, 0x98, 0xba, 0xe1, 0xdf, 0xf9, 0x35, 0x58, 0x75, 0x76, 0x5e, 0x6d, 0x50, 0x74, 0x1a, 0x6f, 0xb0, 0xba, 0x97, 0x75, 0x83, 0xd6, 0xae, 0x5c, 0x37, 0x38, 0x0f, 0x76, 0x6c, 0xb0, 0x1c, 0x92, 0x69, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x7a, 0x60, 0xd0, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0xb2, 0x63, 0xd0, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x8a, 0x8a, 0xd0, 0x0d, 0xd6, 0x7d, 0x7b, 0x6e, 0x50, 0x44, 0xf9, 0x6e, 0xd0, 0x8c, 0x7e, 0xeb, 0x41, 0x5b, 0xfd, 0xad, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x1b, 0xac, 0xfb, 0xf6, 0xdc, 0xa0, 0x88, 0xf2, 0xdd, 0xa0, 0x41, 0xd7, 0xd2, 0xda, 0xa0, 0xb5, 0x2a, 0xd7, 0x56, 0xc0, 0x9f, 0x6b, 0x7b, 0x63, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x1a, 0x90, 0x73, 0x6d, 0x00, 0xf4, 0x92, 0x01, 0x09, 0x1b, 0x2b, 0x9b, 0x03, 0xa1, 0x43, 0x2b, 0x73, 0x03, 0x99, 0xab, 0x6b, 0x6b, 0x0b, 0x93, 0xcb, 0x63, 0x01, 0xa1, 0x01, 0x09, 0x1b, 0x2b, 0x9b, 0x03, 0xa1, 0x43, 0x2b, 0x73, 0x03, 0x81, 0x0b, 0x93, 0x0b, 0x3b, 0x93, 0x0b, 0x83, 0x43, 0x9b, 0x73, 0x6d, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x1b, 0x14, 0x51, 0xbe, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x1b, 0x34, 0x83, 0xdf, 0xba, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x0f, 0x0c, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xa8, 0x49, 0xba, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x2b, 0x2a, 0x42, 0x0f, 0xda, 0xea, 0x6f, 0x3d, 0x58, 0x47, 0x4d, 0x7a, 0xd0, 0x9c, 0x82, 0xeb, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0xa1, 0x26, 0xe9, 0x1a, 0x7e, 0x71, 0x39, 0x68, 0x6d, 0x36, 0x74, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x02, 0xa5, 0x74, 0x0d, 0x0a, 0xc1, 0xd4, 0x83, 0x13, 0x90, 0x68, 0xd5, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x61, 0x09, 0xd7, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0xda, 0x71, 0xd0, 0x0d, 0x8a, 0x28, 0xdf, 0x0d, 0x8a, 0x28, 0xdf, 0x0d, 0x5a, 0x51, 0x0b, 0xac, 0x3a, 0x9c, 0x62, 0x6b, 0xd0, 0xea, 0x84, 0xeb, 0x06, 0x85, 0x72, 0xe7, 0x1a, 0xfe, 0x5c, 0xda, 0x20, 0xdd, 0x73, 0xf3, 0x60, 0x69, 0xaa, 0xe8, 0x06, 0x27, 0xf6, 0x9b, 0x0d, 0x16, 0x2a, 0x86, 0x6e, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x85, 0x9a, 0xa4, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x75, 0xdf, 0x9e, 0x07, 0xeb, 0xa8, 0x49, 0x37, 0x68, 0xb0, 0x0b, 0xb4, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xc2, 0x64, 0xd2, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x42, 0x4d, 0xd2, 0x0d, 0xda, 0x92, 0x75, 0x3d, 0x48, 0x0d, 0x40, 0xad, 0xc3, 0x29, 0xb6, 0x06, 0x25, 0xa8, 0xd7, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x51, 0x11, 0xba, 0x41, 0x83, 0x5d, 0xa0, 0x1b, 0x2c, 0x84, 0x23, 0x3d, 0x68, 0x5f, 0x2e, 0x74, 0xd6, 0xa0, 0x39, 0xb6, 0xd2, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xec, 0x18, 0x74, 0x83, 0x35, 0xce, 0xa4, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x65, 0x95, 0xa0, 0x1b, 0x2c, 0x47, 0x16, 0x3e, 0x68, 0x9d, 0x35, 0xb4, 0xd5, 0xf0, 0xd6, 0xfd, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x51, 0x11, 0xba, 0xc1, 0x1a, 0x67, 0xd2, 0x83, 0x15, 0xce, 0xa4, 0x2b, 0xe0, 0xb3, 0x95, 0x85, 0xc1, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xed, 0x48, 0xbb, 0x36, 0x00, 0x2f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x77, 0x2f, 0x6f, 0x20, 0x64, 0x6f, 0x63, 0x73, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x2c, 0xc1, 0x09, 0xdd, 0xa0, 0xa0, 0xc8, 0xdc, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x2b, 0x2a, 0x42, 0xd7, 0x60, 0x85, 0x50, 0xd3, 0x06, 0xeb, 0x81, 0x41, 0x37, 0x58, 0x49, 0x4d, 0xba, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x51, 0x11, 0xba, 0xc1, 0x5a, 0x4e, 0xd1, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x7a, 0x60, 0xd0, 0x0d, 0xd6, 0x72, 0x8a, 0x6e, 0xb0, 0x9c, 0x17, 0xb8, 0x0e, 0xda, 0x60, 0x77, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0x54, 0x0c, 0x5d, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x07, 0x06, 0xdd, 0x60, 0x39, 0x2f, 0xf0, 0xc1, 0x4a, 0x4e, 0xd1, 0x3a, 0x9c, 0x62, 0x6b, 0xd0, 0x9e, 0xf7, 0xd8, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0x6d, 0xd0, 0xb6, 0xd9, 0xea, 0x00, 0x68, 0x05, 0x27, 0x57, 0x66, 0x96, 0x86, 0x07, 0x32, 0xf6, 0xd6, 0xd6, 0x56, 0xe6, 0x46, 0xe7, 0x02, 0xd2, 0x16, 0x96, 0x07, 0x32, 0xf6, 0xe6, 0x46, 0x17, 0x96, 0xe6, 0x06, 0x22, 0x16, 0x46, 0x37, 0x86, 0x06, 0x32, 0xf6, 0xd6, 0xd6, 0x56, 0xe6, 0x46, 0x37, 0xe7, 0x56, 0x02, 0xe0, 0x89, 0x3b, 0xb4, 0x32, 0x37, 0x90, 0x30, 0x10, 0x38, 0xb9, 0x32, 0xb3, 0x34, 0x3c, 0x10, 0xb2, 0xb7, 0xb1, 0xb1, 0x37, 0x39, 0x32, 0x90, 0xb4, 0x39, 0x10, 0xb8, 0x30, 0xb9, 0xb9, 0x32, 0x32, 0x16, 0x90, 0x34, 0x3a, 0x90, 0xb4, 0x39, 0x10, 0xb8, 0xb7, 0xb9, 0xb9, 0x34, 0x31, 0xb6, 0x32, 0x10, 0x3a, 0xb4, 0x30, 0x3a, 0x10, 0x3a, 0xb4, 0x32, 0xb9, 0x32, 0x90, 0xb4, 0x39, 0x10, 0xb7, 0x37, 0x90, 0x95, 0xb3, 0x30, 0x78, 0x09, 0xc0, 0xf3, 0x30, 0x33, 0xba, 0x32, 0xb9, 0xbb, 0x30, 0x39, 0x32, 0x10, 0xba, 0x37, 0x10, 0xb1, 0x32, 0x90, 0xb1, 0x37, 0xb7, 0xb9, 0xba, 0xb6, 0x32, 0x32, 0x16, 0x90, 0xb9, 0x37, 0x90, 0xbb, 0x32, 0x90, 0x30, 0x32, 0x32, 0x90, 0x30, 0x37, 0x90, 0x30, 0x32, 0xb2, 0x34, 0xba, 0xb4, 0x37, 0xb7, 0x30, 0x36, 0x10, 0xb7, 0xb2, 0x3b, 0xb6, 0x34, 0xb7, 0x32, 0x90, 0x30, 0x37, 0x72, 0x09, 0xc0, 0x53, 0xb2, 0xb2, 0x31, 0xb9, 0xb2, 0xb6, 0x32, 0x37, 0x3a, 0x10, 0x3a, 0xb4, 0x32, 0x10, 0xb6, 0x34, 0xb7, 0x32, 0x10, 0xb7, 0xba, 0x36, 0xb1, 0x32, 0x39, 0x90, 0x34, 0x37, 0x10, 0x3a, 0xb4, 0x32, 0x10, 0x30, 0xb4, 0xb0, 0x34, 0x39, 0x30, 0x90, 0x37, 0x33, 0x10, 0x3a, 0xb4, 0x32, 0x10, 0xb8, 0x30, 0xb9, 0xb9, 0x32, 0xb9, 0x95, 0x00, 0xf8, 0x81, 0x0e, 0xad, 0x0c, 0x44, 0xae, 0x2c, 0x6c, 0xee, 0xcd, 0x0d, 0xc4, 0xec, 0x4d, 0x0e, 0x84, 0x0e, 0x2d, 0x6d, 0x0e, 0x24, 0x6d, 0x0e, 0x84, 0x0e, 0x2d, 0x8c, 0x0e, 0x84, 0x0e, 0xad, 0x0c, 0xe4, 0x0e, 0x2d, 0x8d, 0xae, 0x6c, 0x0e, 0x2e, 0x6c, 0xac, 0x0c, 0x04, 0x2e, 0x4c, 0x6e, 0x2e, 0xcd, 0xed, 0x0c, 0xa4, 0xce, 0x8d, 0xac, 0x4c, 0x0e, 0x64, 0xc5, 0x2e, 0x6c, 0x8e, 0x0e, 0x64, 0xae, 0xac, 0xac, 0x6d, 0x5e, 0x02, 0xe0, 0x07, 0xba, 0x37, 0x10, 0xb3, 0xb0, 0x31, 0xba, 0x37, 0x39, 0x90, 0xb6, 0x37, 0xb9, 0x32, 0x90, 0x31, 0xb6, 0xb2, 0x30, 0x37, 0xb6, 0x3c, 0x10, 0x3a, 0xb4, 0xb4, 0x39, 0x90, 0xbb, 0xb0, 0x3c, 0x16, 0x90, 0x30, 0x3a, 0x10, 0xb6, 0xb2, 0xb0, 0x39, 0x3a, 0x90, 0xb1, 0xb7, 0x36, 0xb8, 0x30, 0xb9, 0x32, 0x32, 0x10, 0xba, 0x37, 0x10, 0x3a, 0xb4, 0x32, 0x10, 0xbb, 0x30, 0xb9, 0xb4, 0x30, 0xba, 0xb4, 0x37, 0xb7, 0x79, 0x09, 0xc0, 0x7f, 0x3a, 0xb9, 0xb4, 0x32, 0x32, 0x90, 0xbb, 0x34, 0x3a, 0xb4, 0xb7, 0x3a, 0x3a, 0x10, 0x3a, 0xb4, 0x32, 0x90, 0x32, 0x3c, 0x3a, 0xb9, 0x30, 0x10, 0xb7, 0xb2, 0x3b, 0xb6, 0x34, 0xb7, 0x32, 0x17, 0x10, 0x3a, 0xb4, 0xb4, 0x39, 0x10, 0xb2, 0xb7, 0xb2, 0x39, 0xb7, 0x13, 0x3a, 0x90, 0xb6, 0xb2, 0x30, 0x37, 0x10, 0x3a, 0xb4, 0x32, 0xb9, 0x32, 0x90, 0xb4, 0x39, 0xb7, 0x13, 0x3a, 0x90, 0x70, 0x09, 0x40, 0x1f, 0xb1, 0x32, 0x3a, 0xba, 0x32, 0x39, 0x10, 0xb3, 0xb0, 0x31, 0xba, 0x37, 0xb9, 0x34, 0xbd, 0x30, 0xba, 0xb4, 0x37, 0x37, 0x90, 0xbb, 0x34, 0x3a, 0xb4, 0xb7, 0x3a, 0x3a, 0x90, 0x34, 0x3a, 0x16, 0x10, 0x3a, 0xb4, 0xb7, 0xba, 0x33, 0x34, 0x57, 0x1b, 0x14, 0x3b, 0x9a, 0x1b, 0x34, 0x35, 0xe5, 0xba, 0x41, 0x33, 0x5b, 0x98, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0xac, 0xee, 0x65, 0xdd, 0xa0, 0x99, 0x2e, 0xcc, 0x0d, 0xce, 0x83, 0x1d, 0x1b, 0x2c, 0x87, 0x64, 0x9a, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xa2, 0x22, 0x74, 0x0d, 0xbf, 0x28, 0x6d, 0xb0, 0x70, 0xea, 0x74, 0x83, 0x82, 0x34, 0x76, 0x83, 0x65, 0x41, 0xa3, 0x6b, 0x70, 0x6a, 0x38, 0xda, 0x60, 0x91, 0xdc, 0xe9, 0x06, 0x27, 0xf6, 0x9b, 0x0d, 0x16, 0x2a, 0x86, 0x6e, 0x50, 0x74, 0x1a, 0x6f, 0xb0, 0xac, 0x12, 0x74, 0x0d, 0x0a, 0xe5, 0xce, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0x19, 0x8b, 0x7f, 0x70, 0x22, 0xb3, 0xd8, 0xf0, 0x8b, 0xcb, 0xc1, 0x19, 0xdc, 0x6c, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x1d, 0x07, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xb4, 0x7f, 0x9f, 0xb9, 0x86, 0xb7, 0x75, 0x36, 0x68, 0x47, 0xda, 0xb5, 0x36, 0x58, 0xf7, 0xed, 0xb9, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x0f, 0x0c, 0xba, 0x86, 0xb7, 0x75, 0x36, 0x68, 0xfb, 0xba, 0xb5, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x03, 0x72, 0xae, 0xd5, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0x4b, 0xdd, 0x46, 0x37, 0x58, 0x4e, 0x60, 0xbb, 0x41, 0x61, 0xa8, 0xba, 0xc1, 0x3a, 0x05, 0xdb, 0x0d, 0x4e, 0xec, 0x37, 0x1b, 0x9c, 0xa5, 0xc0, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x58, 0x74, 0x7c, 0xba, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0x3e, 0x26, 0x7b, 0xb0, 0x20, 0xc4, 0x76, 0x83, 0xc2, 0x50, 0x75, 0x0d, 0x9f, 0xbb, 0x0c, 0x0e, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0x70, 0x96, 0x84, 0xed, 0x60, 0xdd, 0xcc, 0xed, 0x86, 0xcf, 0x5d, 0x06, 0x8f, 0x37, 0xfc, 0x45, 0xb3, 0x41, 0x5a, 0x3b, 0xf0, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0x9a, 0xcf, 0x1a, 0xde, 0xd6, 0x19, 0x1c, 0x3e, 0x58, 0x45, 0xc6, 0xdb, 0x1a, 0xde, 0xd6, 0x19, 0x3c, 0x3e, 0x58, 0x45, 0xc6, 0xdb, 0x1a, 0x7e, 0x71, 0xd9, 0x60, 0x25, 0x36, 0xe9, 0x06, 0x4b, 0xdf, 0x7a, 0xab, 0xc3, 0x29, 0xb6, 0x06, 0x81, 0xfb, 0xb0, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0xe0, 0x84, 0x6e, 0x50, 0x50, 0x64, 0x1e, 0x34, 0x55, 0xeb, 0xba, 0x1a, 0xb4, 0xb1, 0xdf, 0xba, 0xe1, 0x17, 0xa5, 0x0d, 0x16, 0xcd, 0xb2, 0x6e, 0x70, 0x6a, 0x38, 0xda, 0xf0, 0xb4, 0xce, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0xab, 0x7b, 0x59, 0xd7, 0xa0, 0x10, 0x4c, 0x3d, 0x58, 0x99, 0x86, 0xbd, 0xc1, 0x79, 0xb0, 0x63, 0x83, 0xe5, 0x90, 0x4c, 0xb3, 0xc1, 0x89, 0xfd, 0x66, 0x83, 0x35, 0xcd, 0xac, 0x1b, 0x1c, 0xdb, 0x1c, 0x37, 0x58, 0x36, 0xcd, 0xba, 0xc1, 0xb1, 0xcd, 0x71, 0x83, 0x25, 0xda, 0xac, 0x1b, 0x1c, 0x5d, 0x07, 0xd7, 0xa0, 0x30, 0x54, 0xdd, 0x60, 0xd9, 0x25, 0xdc, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x3b, 0x0e, 0xba, 0x41, 0x1b, 0x02, 0x98, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x15, 0x68, 0xab, 0x6b, 0x78, 0xe3, 0xee, 0x60, 0x0d, 0x4f, 0xf9, 0xc1, 0xc2, 0x7a, 0xd6, 0xd6, 0xa0, 0x30, 0x54, 0xdd, 0x60, 0x11, 0x9e, 0xdc, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x3b, 0x0e, 0xba, 0xc1, 0xda, 0x17, 0xd2, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x0a, 0xb4, 0xd5, 0x35, 0xbc, 0x71, 0x77, 0xb0, 0xac, 0xac, 0xfc, 0x60, 0x61, 0x3d, 0x6b, 0x6b, 0x50, 0x18, 0xaa, 0x6e, 0xb0, 0xd0, 0xe1, 0x6d, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x1d, 0x07, 0xdd, 0x60, 0x19, 0x80, 0xe9, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x05, 0xda, 0xea, 0x1a, 0xde, 0xb8, 0x3b, 0x58, 0x50, 0x57, 0x7e, 0xb0, 0xb0, 0x9e, 0xb5, 0x35, 0x28, 0x0c, 0x55, 0x37, 0x58, 0x7b, 0x4e, 0xbb, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x8e, 0x83, 0x6e, 0xb0, 0xc2, 0x4f, 0x7d, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x02, 0x6d, 0x75, 0x0d, 0x6f, 0xdc, 0x1d, 0xac, 0x28, 0x2c, 0x3f, 0x58, 0x58, 0xcf, 0xda, 0x1a, 0x14, 0x86, 0xaa, 0x1b, 0xac, 0x97, 0x7e, 0xdb, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x6b, 0xc7, 0x41, 0x37, 0x68, 0x09, 0x1e, 0x73, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x02, 0x6d, 0x75, 0x0d, 0x6f, 0xdc, 0x1d, 0xac, 0x74, 0x2a, 0x3f, 0x68, 0xec, 0xe4, 0xb2, 0x56, 0x83, 0x86, 0x0b, 0x3b, 0x37, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0xda, 0x71, 0xd0, 0x0d, 0x8a, 0x28, 0xdf, 0x0d, 0x1a, 0x2a, 0x76, 0x6d, 0x35, 0x68, 0x62, 0x2d, 0x70, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0xe7, 0x60, 0xb9, 0x31, 0xf2, 0x06, 0x0d, 0xba, 0x96, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0x1a, 0x2e, 0xec, 0xac, 0xc3, 0x29, 0x56, 0x6b, 0xd0, 0x50, 0x86, 0xeb, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x83, 0x02, 0x76, 0x83, 0x06, 0x5d, 0x4b, 0xd7, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x6b, 0xc7, 0x41, 0x37, 0x28, 0xa2, 0x7c, 0x0f, 0xda, 0xb8, 0x80, 0x6d, 0x35, 0x28, 0xef, 0xe3, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x83, 0xd3, 0x1a, 0xe5, 0x00, 0xbc, 0xb8, 0xbd, 0xb9, 0xb5, 0x90, 0xbd, 0x8d, 0x8d, 0xbd, 0xc9, 0x91, 0x81, 0x8c, 0xbd, 0xb5, 0xb5, 0x95, 0xb9, 0xd1, 0x6d, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x1b, 0x2c, 0x84, 0x23, 0xdd, 0x60, 0x21, 0x1c, 0xe9, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0xd9, 0x31, 0xe8, 0x06, 0xed, 0x5b, 0xbe, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x56, 0x54, 0x84, 0x6e, 0xb0, 0xdc, 0x8e, 0xf4, 0x60, 0x1d, 0x35, 0x69, 0x1d, 0x4e, 0xb1, 0x0e, 0xa7, 0xd8, 0x6a, 0xd0, 0xf6, 0xaf, 0xe5, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0xdb, 0xbf, 0x96, 0x0d, 0xe0, 0x71, 0x97, 0x46, 0x56, 0x06, 0x22, 0x56, 0xc7, 0x26, 0xb6, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x8e, 0x83, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x03, 0x83, 0x6e, 0xb0, 0x0c, 0xc0, 0xf4, 0x60, 0x79, 0x9d, 0xe9, 0x41, 0x23, 0x0c, 0x97, 0xb3, 0x06, 0x0d, 0x1a, 0x67, 0x6e, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x72, 0x75, 0xf7, 0x41, 0x33, 0x9c, 0x99, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0xdc, 0x65, 0xc0, 0xcb, 0xab, 0x73, 0x37, 0x28, 0x04, 0x53, 0x0f, 0xd6, 0x35, 0x3f, 0xaf, 0xe1, 0x73, 0x97, 0x0d, 0x12, 0xad, 0x3f, 0x37, 0x28, 0x04, 0x53, 0x0f, 0xca, 0x39, 0xdb, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0xbc, 0xbb, 0x37, 0x72, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x45, 0x04, 0x75, 0x6b, 0xf8, 0x73, 0x69, 0x70, 0xf1, 0x60, 0x5d, 0xf3, 0x73, 0x1b, 0xbe, 0x7e, 0xd9, 0xf0, 0x5e, 0xd0, 0x06, 0x25, 0x3c, 0xe6, 0x86, 0x07, 0x77, 0x36, 0xbc, 0x17, 0xb4, 0xe1, 0x17, 0x97, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0xc3, 0x3f, 0x0c, 0x1b, 0x34, 0x2e, 0x4e, 0x70, 0xb0, 0x98, 0xa0, 0xfe, 0xf0, 0x16, 0xda, 0x86, 0xaf, 0x70, 0x36, 0x7c, 0xfd, 0xb2, 0x86, 0xb7, 0x75, 0x36, 0x68, 0x20, 0x0a, 0xb6, 0x0d, 0x4a, 0x78, 0xcc, 0x35, 0x68, 0x85, 0x09, 0xb6, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x61, 0xb1, 0xbc, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x8d, 0x67, 0xc1, 0xb6, 0x41, 0x92, 0x12, 0xe8, 0x06, 0xed, 0xb0, 0xc1, 0xd6, 0x06, 0x25, 0x3c, 0xe6, 0x82, 0xa7, 0x07, 0x4d, 0xbd, 0xc1, 0xae, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0x41, 0x53, 0x6f, 0xb0, 0x1b, 0xde, 0xd6, 0x19, 0x9c, 0x3e, 0x68, 0xea, 0x0d, 0xb6, 0x0d, 0x0a, 0x82, 0xd9, 0x05, 0x4f, 0x0f, 0x5a, 0xc6, 0x83, 0x5d, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x96, 0xf1, 0x60, 0x37, 0xbc, 0xad, 0x33, 0x38, 0x7d, 0xd0, 0x32, 0x1e, 0xec, 0x1a, 0xa4, 0xea, 0x80, 0x6e, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xeb, 0x1c, 0x34, 0x09, 0x08, 0x7b, 0x90, 0xa0, 0x04, 0xda, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x41, 0xb3, 0x83, 0xb0, 0x6b, 0x90, 0xaa, 0x03, 0x7a, 0x50, 0x50, 0x64, 0xae, 0x41, 0x13, 0x6d, 0xb0, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0xdb, 0x3a, 0x83, 0xc3, 0x07, 0x4d, 0x02, 0xc2, 0x1e, 0xb4, 0x26, 0x07, 0xdb, 0xe1, 0x14, 0x5b, 0xc0, 0x87, 0x63, 0x2b, 0xc3, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x1a, 0xba, 0x84, 0x6d, 0x00, 0x5e, 0xe4, 0xca, 0xe0, 0xc2, 0xe4, 0xe6, 0xca, 0x40, 0xe6, 0xe8, 0xc2, 0xe8, 0xd2, 0xc6, 0x40, 0xe0, 0xc2, 0xe8, 0xd0, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0x0b, 0x14, 0x52, 0x1b, 0xfe, 0xa2, 0xd9, 0x60, 0x49, 0x50, 0xf0, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0xaf, 0xce, 0xed, 0x4e, 0x2e, 0x0c, 0x0e, 0xa4, 0x84, 0x4c, 0xac, 0xee, 0xec, 0xa0, 0x15, 0x09, 0xb4, 0x0d, 0x1a, 0x2c, 0xf8, 0xda, 0xa0, 0xd8, 0xd1, 0x5c, 0x83, 0x62, 0x12, 0x73, 0x0d, 0x9f, 0x2b, 0x6d, 0xb0, 0x86, 0x30, 0xfa, 0xe0, 0x10, 0xd3, 0x71, 0xd0, 0x0c, 0x8a, 0xd4, 0x1a, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0xcb, 0x95, 0xc5, 0xd5, 0xa5, 0xc9, 0x95, 0x81, 0xe8, 0xf8, 0x81, 0xa0, 0xbd, 0xbd, 0xb9, 0x1d, 0x14, 0x14, 0x99, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x2c, 0x9c, 0xc4, 0x5d, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x7e, 0xc4, 0xea, 0xd2, 0xd8, 0xc8, 0x40, 0xea, 0xe6, 0xd2, 0xdc, 0xce, 0x40, 0xca, 0xd8, 0xca, 0xda, 0xca, 0xdc, 0xe8, 0xe6, 0x0e, 0x5a, 0x58, 0xed, 0xda, 0xf0, 0x8b, 0xd2, 0x1a, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xd0, 0x33, 0x47, 0x17, 0x26, 0x47, 0x97, 0xe6, 0x76, 0x06, 0x62, 0x26, 0xf7, 0xd6, 0x06, 0xa2, 0x56, 0x37, 0x47, 0x07, 0xf2, 0xda, 0xf0, 0xb9, 0xd2, 0x06, 0xed, 0xbe, 0x6a, 0xae, 0xe1, 0xcf, 0xa5, 0xc1, 0xc5, 0x0d, 0x02, 0xe8, 0x6c, 0xc3, 0x5f, 0x34, 0x1b, 0x2c, 0x09, 0x0a, 0xde, 0xf0, 0x8b, 0xcb, 0x06, 0x05, 0x45, 0xe6, 0x1a, 0x3e, 0x77, 0x19, 0xbc, 0x3e, 0x58, 0x59, 0xe0, 0x5d, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x3e, 0x0f, 0xda, 0xa0, 0xa0, 0xc8, 0xdc, 0xa0, 0xd8, 0xd1, 0x5c, 0x83, 0x62, 0x12, 0x73, 0x0d, 0x9f, 0x2b, 0x6d, 0xb0, 0x20, 0xf6, 0x79, 0x0d, 0x82, 0xcd, 0x74, 0x83, 0x63, 0x9e, 0xeb, 0x06, 0xeb, 0x23, 0xd2, 0x3b, 0x28, 0x23, 0x6d, 0x0f, 0x0f, 0xee, 0xac, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xef, 0x8b, 0xd9, 0xdb, 0x1b, 0xc8, 0xd8, 0x9b, 0xdb, 0x1c, 0x5d, 0x98, 0x1b, 0xdd, 0xdc, 0x41, 0x41, 0x91, 0xb9, 0xc1, 0x31, 0xdc, 0x60, 0xc3, 0x2f, 0x2e, 0x1b, 0xb4, 0x38, 0x97, 0x7a, 0x70, 0x44, 0x2c, 0x38, 0x9c, 0x62, 0x6b, 0xd0, 0xb0, 0x87, 0xe6, 0x06, 0xcb, 0x21, 0x99, 0xe6, 0xa0, 0xc1, 0x0a, 0xd5, 0xd5, 0xa0, 0xe9, 0x95, 0xcd, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x76, 0x1c, 0x74, 0x83, 0x05, 0x76, 0xa6, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x15, 0x68, 0xab, 0x1b, 0x34, 0x20, 0x81, 0xb0, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xd7, 0x4a, 0xba, 0xc1, 0x02, 0x3b, 0xd3, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x93, 0xc2, 0x96, 0x55, 0x87, 0x53, 0xac, 0x35, 0x68, 0x9f, 0xd2, 0x72, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x25, 0x76, 0xac, 0x1b, 0x34, 0x29, 0x90, 0xb9, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x56, 0x54, 0x84, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x56, 0xa0, 0xad, 0x6e, 0x50, 0x50, 0x64, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0x5a, 0x83, 0x6b, 0xad, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x7a, 0x60, 0xd0, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x0a, 0xb4, 0xd5, 0x0d, 0x0a, 0x8a, 0xcc, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0xda, 0x71, 0xd0, 0x0d, 0x5a, 0x82, 0xc7, 0x3c, 0x68, 0xf4, 0x20, 0xb3, 0x83, 0x25, 0x26, 0xa5, 0xad, 0x06, 0x6d, 0x22, 0x64, 0x6e, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x65, 0x95, 0xa0, 0x6b, 0xf8, 0x45, 0x69, 0x83, 0x12, 0xce, 0xfd, 0x60, 0xa5, 0xa4, 0xea, 0x41, 0xcb, 0x3b, 0x99, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x1b, 0x2c, 0xb0, 0x33, 0x3d, 0x68, 0x5b, 0x21, 0xb6, 0x59, 0xc0, 0x9f, 0x2b, 0x0b, 0x6b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x1a, 0x30, 0x89, 0x6d, 0x00, 0xcf, 0xbb, 0x34, 0x3a, 0x34, 0x10, 0xb2, 0xb7, 0xb1, 0xb1, 0x37, 0x39, 0xb2, 0xb9, 0x0d, 0x0a, 0xe5, 0xce, 0x0d, 0x96, 0x14, 0xd9, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0xb2, 0x0f, 0x66, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x1b, 0xac, 0xae, 0xb2, 0x5d, 0xc3, 0x83, 0x92, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x26, 0x36, 0x5c, 0x3b, 0x68, 0x45, 0x0a, 0xb3, 0x56, 0x83, 0x56, 0xe6, 0x30, 0x37, 0x28, 0x94, 0x3b, 0xd7, 0xf0, 0xe7, 0xd2, 0x80, 0xa7, 0xf7, 0x26, 0x1f, 0x2c, 0x4d, 0x15, 0xdd, 0xa0, 0xe8, 0x34, 0xde, 0xa0, 0x01, 0x8b, 0xbe, 0x35, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0x36, 0x58, 0xac, 0xc2, 0xbb, 0x86, 0x3f, 0x97, 0x06, 0x17, 0x0f, 0x16, 0x58, 0x41, 0xb7, 0xe1, 0x83, 0x9c, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x7b, 0x81, 0x96, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0x1a, 0xed, 0x20, 0x58, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x16, 0x09, 0x2d, 0x3b, 0x3c, 0xf4, 0x73, 0x78, 0x0b, 0xed, 0xf0, 0x5e, 0xd0, 0x86, 0xb7, 0x75, 0x36, 0x68, 0xd9, 0x27, 0xb6, 0x15, 0xf0, 0xe5, 0xde, 0xe0, 0xc2, 0x83, 0xe6, 0x12, 0x37, 0x0f, 0xa7, 0x58, 0xad, 0x41, 0xd3, 0x5a, 0x9a, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x2c, 0xab, 0x04, 0x5d, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x03, 0x90, 0xca, 0x06, 0x6d, 0x77, 0xc1, 0xae, 0xe1, 0xcf, 0xa5, 0xc1, 0xc7, 0xc3, 0x07, 0xab, 0x6d, 0xf8, 0x20, 0x67, 0xc3, 0xd3, 0x3a, 0x6b, 0xf8, 0x20, 0x67, 0xc3, 0xd3, 0x3b, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x06, 0x24, 0x10, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x0d, 0x48, 0x20, 0x1c, 0xde, 0x42, 0x3b, 0x28, 0xeb, 0x3c, 0x0f, 0x1a, 0x39, 0x8b, 0xdd, 0xf0, 0x41, 0xce, 0x86, 0xa7, 0x77, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x0d, 0x48, 0x20, 0xac, 0xe1, 0x17, 0x97, 0x0d, 0x9a, 0x2f, 0x41, 0x38, 0xbc, 0x85, 0x76, 0x50, 0xd6, 0x79, 0x1e, 0xb4, 0xfa, 0x16, 0xbb, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x56, 0x54, 0x84, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x03, 0x83, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0xe0, 0x84, 0x6e, 0x50, 0xc0, 0xe6, 0x6f, 0xb0, 0xf4, 0x81, 0xb6, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x12, 0x9c, 0xd0, 0x0d, 0x8a, 0x9c, 0xd6, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xc2, 0x87, 0xd1, 0x35, 0xfc, 0x08, 0x33, 0x38, 0x1d, 0xbc, 0xdf, 0x56, 0xad, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x03, 0x83, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0x6a, 0x92, 0xae, 0xe1, 0x17, 0x97, 0x0d, 0xd6, 0x38, 0x93, 0x1e, 0xb4, 0xa4, 0x79, 0xb9, 0x41, 0xeb, 0x9f, 0x97, 0x1d, 0xb4, 0x90, 0x70, 0xb9, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x0f, 0x0c, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x82, 0x13, 0xba, 0x41, 0x91, 0xd3, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xf8, 0x30, 0xba, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x83, 0xef, 0xf2, 0x6b, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x04, 0x27, 0x74, 0x83, 0x02, 0x36, 0x7f, 0x83, 0x45, 0x96, 0xb3, 0xd5, 0x6a, 0xd0, 0x46, 0xc3, 0xe5, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x1b, 0x0d, 0x97, 0x0d, 0xe0, 0x6b, 0x56, 0xc7, 0xc6, 0x06, 0x72, 0x97, 0x46, 0x56, 0x06, 0x62, 0xf6, 0x26, 0xd7, 0xb6, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0xea, 0x5e, 0xd6, 0x0d, 0x5a, 0x30, 0xb6, 0xdc, 0xe0, 0x3c, 0xd8, 0xb1, 0xc1, 0x72, 0x48, 0xa6, 0xd9, 0xf0, 0x6e, 0xcf, 0x06, 0xad, 0x8b, 0x60, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x03, 0x83, 0xae, 0xe1, 0x41, 0xc9, 0x0d, 0x5a, 0x5d, 0xc1, 0x3c, 0x68, 0x34, 0x0f, 0x73, 0x83, 0xa6, 0x67, 0x30, 0xd7, 0xf0, 0xa0, 0xe4, 0x06, 0x4d, 0x76, 0x8f, 0x1d, 0x34, 0x52, 0x30, 0x5a, 0x2b, 0xe0, 0xc3, 0xbd, 0xbd, 0xb9, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xed, 0xd8, 0xc6, 0x36, 0x00, 0x2f, 0x74, 0x72, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x20, 0x27, 0x3d, 0x27, 0x73, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x83, 0x0b, 0x3b, 0x0f, 0xd6, 0x35, 0x3f, 0xaf, 0xe1, 0xcf, 0xa5, 0x01, 0xef, 0xec, 0xed, 0x3d, 0x68, 0xef, 0x1f, 0xb3, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0x7c, 0xc9, 0xca, 0xcc, 0xc2, 0xea, 0xd8, 0xe8, 0x40, 0xe8, 0xde, 0x40, 0xe0, 0xc2, 0xce, 0x36, 0xfc, 0x45, 0xb3, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0xd9, 0x84, 0xb9, 0xc1, 0xba, 0xe6, 0xe7, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x35, 0x7b, 0x93, 0x03, 0x71, 0xab, 0x63, 0x63, 0x03, 0x39, 0x7b, 0x7b, 0x3b, 0x99, 0xdb, 0xa0, 0x84, 0xc7, 0x5c, 0x83, 0x26, 0x8d, 0x63, 0x5b, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xdf, 0xb5, 0xb2, 0x32, 0x38, 0x90, 0xb2, 0x36, 0x38, 0xba, 0x3c, 0x90, 0xb3, 0xb7, 0xb7, 0x83, 0x75, 0x0d, 0xeb, 0x1b, 0x14, 0x9d, 0xc6, 0x6b, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0xcf, 0x1b, 0x1d, 0x5a, 0x99, 0xdc, 0x5d, 0xda, 0x5c, 0x19, 0x08, 0x5a, 0x59, 0x18, 0x19, 0xc8, 0xd8, 0x5b, 0x5b, 0xd9, 0xdc, 0x86, 0xb7, 0x75, 0x36, 0x38, 0x17, 0x1d, 0xb4, 0x06, 0xc5, 0x80, 0xec, 0x82, 0xa7, 0x07, 0xcd, 0x65, 0xc7, 0xae, 0xe1, 0x6d, 0x9d, 0x83, 0x16, 0xda, 0x63, 0x37, 0x28, 0xe1, 0x31, 0xd7, 0xa0, 0xc1, 0xe1, 0xd8, 0x36, 0x28, 0x28, 0x32, 0x37, 0x38, 0x86, 0x1b, 0x6c, 0xf8, 0xdc, 0x65, 0xf0, 0x7a, 0xc3, 0xdb, 0x3a, 0x83, 0xa7, 0x07, 0x8d, 0xc6, 0xc7, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x6d, 0x26, 0xf7, 0xd6, 0x06, 0x72, 0xf6, 0xf6, 0x06, 0xf2, 0x26, 0x07, 0x02, 0x17, 0x76, 0xb6, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xbf, 0x5c, 0xd9, 0x58, 0x9d, 0xdc, 0x5c, 0x19, 0xc8, 0x9b, 0x1b, 0x08, 0x5d, 0x58, 0x1a, 0xdb, 0xdc, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0xcd, 0x65, 0xc7, 0x6e, 0x78, 0x5b, 0x67, 0x70, 0xfa, 0xa0, 0xb9, 0xec, 0xd8, 0x35, 0x68, 0x34, 0x3e, 0x76, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x46, 0xe3, 0x63, 0x37, 0x28, 0x28, 0x32, 0x37, 0xbc, 0xad, 0x33, 0x38, 0x7d, 0xd0, 0x68, 0x7c, 0x6c, 0xab, 0x41, 0x43, 0xb3, 0x99, 0x1b, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x3d, 0x30, 0xe8, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0xd9, 0x31, 0xe8, 0x06, 0x6d, 0x1f, 0xad, 0xae, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0x42, 0x4d, 0xd2, 0x0d, 0x9a, 0xb7, 0x12, 0xdd, 0xe0, 0xc4, 0x7e, 0xb3, 0xc1, 0x42, 0xc5, 0xd0, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x1e, 0x18, 0x74, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x76, 0x1c, 0x74, 0x83, 0xb5, 0x38, 0x98, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xf5, 0xc0, 0xa0, 0x1b, 0xac, 0xc5, 0xc1, 0xdc, 0xa0, 0xed, 0x2b, 0xd1, 0x0d, 0xda, 0xc8, 0xbb, 0x3c, 0x68, 0x08, 0x53, 0xb5, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0xb2, 0x63, 0xd0, 0x0d, 0xda, 0xbe, 0x12, 0xdd, 0x60, 0x2d, 0x0e, 0xe6, 0x06, 0x6d, 0xe4, 0x5d, 0x1e, 0xac, 0x92, 0x06, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x40, 0x5b, 0xdd, 0xa0, 0xa0, 0xc8, 0x3c, 0x68, 0xcd, 0x28, 0xb5, 0xd6, 0xe0, 0xc4, 0x7e, 0xb3, 0xc1, 0x32, 0x6f, 0xd2, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x16, 0x6a, 0x92, 0x6e, 0xd0, 0x76, 0xd5, 0xea, 0x06, 0x27, 0xf6, 0x9b, 0x0d, 0x16, 0x2a, 0x86, 0x6e, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xf5, 0xc0, 0xa0, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x1b, 0xac, 0xc5, 0xc1, 0x5c, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x07, 0x06, 0xdd, 0x60, 0x2d, 0x0e, 0xe6, 0x41, 0x03, 0x27, 0xb2, 0xad, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x96, 0x1d, 0x83, 0x1e, 0x34, 0xca, 0x22, 0xbb, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x76, 0x0c, 0xba, 0x41, 0x9b, 0xab, 0xaa, 0x07, 0x4b, 0x4b, 0x42, 0x0f, 0x1a, 0x7f, 0x91, 0x6d, 0x35, 0x68, 0x97, 0x06, 0x73, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0xd5, 0xbd, 0xac, 0x1b, 0xb4, 0x60, 0x6c, 0xb9, 0xc1, 0x79, 0xb0, 0x63, 0x83, 0xe5, 0x90, 0x4c, 0xb3, 0xc1, 0x0a, 0xa1, 0xa6, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xbb, 0xb2, 0xa8, 0xad, 0xe1, 0x6d, 0x9d, 0x0d, 0x1a, 0xfa, 0xc3, 0x6c, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x1e, 0x18, 0x74, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xa2, 0x22, 0x74, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x04, 0x27, 0x74, 0x0d, 0x6f, 0xdc, 0x1d, 0xb4, 0x6f, 0x8e, 0x7a, 0xb0, 0x1a, 0x80, 0xf4, 0xa0, 0x11, 0x86, 0xcb, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x8a, 0x8a, 0xd0, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x12, 0x9c, 0xd0, 0x35, 0xbc, 0x71, 0x77, 0xd0, 0xae, 0x30, 0xea, 0x41, 0xfb, 0x72, 0xa1, 0x07, 0x8d, 0x30, 0x5c, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x56, 0x54, 0x84, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0xe0, 0x84, 0xae, 0xe1, 0x8d, 0xbb, 0x83, 0xa6, 0xc2, 0x51, 0x0f, 0x5a, 0xe3, 0xbe, 0x3c, 0x68, 0x84, 0xe1, 0x72, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xa2, 0x22, 0x74, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x02, 0xa5, 0x74, 0x0d, 0x6f, 0xdc, 0x1d, 0x34, 0x20, 0x8d, 0xda, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0xa1, 0x26, 0xe9, 0x06, 0xed, 0x13, 0x5c, 0xae, 0xe1, 0x6d, 0x9d, 0x01, 0x9f, 0xed, 0x4d, 0xec, 0xad, 0x6a, 0x35, 0x68, 0x2c, 0x06, 0x73, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xa0, 0xb1, 0x18, 0xcc, 0x06, 0xe0, 0x41, 0xae, 0xce, 0xad, 0x0c, 0x44, 0xae, 0xec, 0xac, 0x8e, 0x2d, 0x4c, 0x0e, 0xc4, 0xec, 0x4d, 0xae, 0x6d, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0xa3, 0x7b, 0x63, 0x0f, 0x1f, 0xac, 0x6e, 0x50, 0xb2, 0xb0, 0xcf, 0x32, 0x0b, 0xf8, 0x65, 0x78, 0x70, 0xe3, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0x5e, 0x74, 0x68, 0x72, 0x65, 0x65, 0x20, 0x68, 0x6f, 0x6f, 0x6e, 0x73, 0x1b, 0x9c, 0x07, 0x3b, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0x86, 0xb7, 0x75, 0x06, 0xfc, 0xb3, 0xb7, 0x37, 0xb8, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xb3, 0xbd, 0x85, 0x99, 0x6d, 0xd0, 0xf4, 0xa6, 0xec, 0x06, 0x4d, 0x6f, 0xca, 0xb6, 0x02, 0x7e, 0x19, 0x1e, 0x5c, 0xbc, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x1f, 0x77, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x68, 0x6f, 0x6f, 0x6e, 0x73, 0x1b, 0x9c, 0x07, 0x3b, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0x41, 0x7b, 0x99, 0xb2, 0x1b, 0xb4, 0x75, 0x6b, 0x79, 0xd0, 0x86, 0xa7, 0xec, 0x0a, 0xf8, 0x74, 0x6b, 0x73, 0xe7, 0x06, 0xe7, 0xc1, 0x8e, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x96, 0x55, 0x82, 0xae, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x0f, 0x37, 0xfc, 0x3b, 0xbf, 0x06, 0x2b, 0xba, 0xc2, 0x6b, 0x83, 0x86, 0xeb, 0x34, 0xd7, 0xf0, 0xe7, 0xd2, 0xe0, 0xe3, 0xc1, 0x02, 0x0b, 0xe7, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0x65, 0xc9, 0xfb, 0x1a, 0x94, 0xf0, 0x98, 0xad, 0xe1, 0x6d, 0x9d, 0x81, 0x0f, 0x43, 0x3b, 0x3c, 0xf4, 0x73, 0x78, 0x2e, 0x68, 0x83, 0x15, 0x42, 0x4d, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x3f, 0xab, 0x73, 0x5b, 0x5b, 0xc3, 0xdb, 0x3a, 0x03, 0x3e, 0x5d, 0x59, 0xd8, 0xda, 0x41, 0x1b, 0x9e, 0xb2, 0x2b, 0xe0, 0x8b, 0xd5, 0xd1, 0xd1, 0x1b, 0x14, 0xca, 0x9d, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0xc7, 0x18, 0xdb, 0xdb, 0x5c, 0x9a, 0xdb, 0x19, 0x48, 0x4f, 0x0f, 0x48, 0x9a, 0x19, 0x08, 0x5d, 0x18, 0x1b, 0xdb, 0x41, 0xe3, 0x3d, 0xb1, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x34, 0xd8, 0x28, 0xdb, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x5d, 0xc1, 0xe8, 0x06, 0xed, 0x4a, 0xc5, 0x1e, 0xb4, 0xb3, 0xba, 0x7a, 0xd0, 0xae, 0x54, 0xec, 0x0a, 0xf8, 0x68, 0x69, 0x6e, 0xe8, 0x06, 0xe7, 0xc1, 0x8e, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xd0, 0x5e, 0xa6, 0xec, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x3d, 0x30, 0xe8, 0x06, 0xeb, 0x00, 0x5c, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x0b, 0x35, 0x49, 0x37, 0x68, 0x5a, 0xe2, 0x72, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xa2, 0x22, 0x74, 0x83, 0x75, 0x00, 0xae, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x1b, 0xac, 0x71, 0x26, 0xdd, 0x60, 0x1d, 0x80, 0x6b, 0xd5, 0x41, 0x3b, 0x9f, 0xb2, 0x2b, 0xe0, 0xb3, 0xbd, 0xc9, 0x95, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x07, 0xab, 0x6b, 0xa6, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0x12, 0x3b, 0xd6, 0x35, 0xfc, 0xa2, 0xb4, 0x41, 0xd3, 0xd3, 0x96, 0x1b, 0x94, 0x25, 0xef, 0x1b, 0x34, 0xcc, 0x8e, 0xba, 0x41, 0x63, 0xf7, 0x5d, 0x1b, 0x34, 0x1a, 0x3c, 0xd0, 0x41, 0x3b, 0x9f, 0xb2, 0x2b, 0xe0, 0xa3, 0xa5, 0xb9, 0x89, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0xa2, 0xa5, 0xb9, 0xd1, 0x81, 0x84, 0xb9, 0x91, 0x81, 0xa0, 0xbd, 0xbd, 0xb9, 0x6d, 0x70, 0x1e, 0xec, 0xd8, 0x60, 0x85, 0x50, 0xd3, 0x06, 0xed, 0x65, 0xca, 0xae, 0xe1, 0x6d, 0x9d, 0x01, 0x5f, 0xec, 0xcd, 0x8d, 0xee, 0xa0, 0x9d, 0x4f, 0xd9, 0x15, 0xf0, 0xc5, 0xde, 0xc4, 0xc2, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xe6, 0x17, 0x66, 0x1b, 0xe0, 0x5f, 0x21, 0x01, 0x01, 0x09, 0x93, 0x6b, 0x9b, 0xdb, 0xa0, 0xe8, 0x34, 0xde, 0x60, 0x75, 0x2f, 0xeb, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0xc7, 0x1b, 0x14, 0x82, 0xa9, 0x07, 0xeb, 0xb5, 0x9e, 0xd7, 0xf0, 0xb9, 0xcb, 0xe0, 0xf2, 0x06, 0x85, 0x60, 0xea, 0xc1, 0xc2, 0x4d, 0xef, 0x35, 0x7c, 0xee, 0x32, 0xf8, 0x7c, 0xd0, 0x82, 0xb1, 0x65, 0x1b, 0x9c, 0x07, 0x3b, 0x36, 0x58, 0x0e, 0xc9, 0x34, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x2c, 0xab, 0x04, 0x5d, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x1f, 0xac, 0xd7, 0x7a, 0x5e, 0xc3, 0x9f, 0x4b, 0x83, 0xcb, 0x07, 0xad, 0x61, 0xb9, 0xae, 0xe1, 0xcf, 0xa5, 0xc1, 0xe7, 0x83, 0x05, 0x56, 0xd0, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0x6c, 0x70, 0xfc, 0xe4, 0x3b, 0x68, 0xed, 0xca, 0x75, 0x0d, 0xbf, 0xb8, 0x6c, 0x70, 0x3a, 0x12, 0xd9, 0xa0, 0xbd, 0x8d, 0xd9, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x0b, 0x79, 0x0a, 0x1b, 0xb4, 0x2b, 0x1d, 0xb1, 0xc1, 0xe9, 0x48, 0xe4, 0xe0, 0x24, 0xcf, 0xd7, 0x86, 0x5f, 0x5c, 0x36, 0x38, 0x1d, 0x89, 0xac, 0xe1, 0x17, 0x97, 0x35, 0x38, 0xba, 0x0e, 0xae, 0xe1, 0x17, 0x97, 0x0d, 0x1a, 0xf6, 0x7f, 0x3d, 0x38, 0xf4, 0xf2, 0xb5, 0x06, 0x47, 0xd7, 0xc1, 0x35, 0xfc, 0xe2, 0x72, 0x70, 0xe8, 0xeb, 0xab, 0x83, 0x06, 0x69, 0x66, 0x37, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0xda, 0x71, 0xd0, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xc2, 0x87, 0xd1, 0x35, 0xfc, 0x08, 0x33, 0x38, 0x1d, 0xf4, 0x0a, 0x69, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xa2, 0x22, 0x74, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x76, 0x1c, 0x74, 0x83, 0x15, 0x22, 0xa5, 0x07, 0x0b, 0xeb, 0x59, 0x37, 0x68, 0xee, 0x26, 0x76, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x76, 0x1c, 0x74, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x6a, 0x75, 0x6d, 0x70, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x67, 0x7b, 0x0b, 0x73, 0xab, 0x0e, 0xa7, 0xd8, 0x1a, 0xa4, 0x95, 0xb1, 0x6c, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0xcb, 0x96, 0x36, 0x47, 0x07, 0x32, 0x57, 0x06, 0x17, 0x26, 0x17, 0x46, 0xf7, 0x26, 0xb7, 0xe1, 0x83, 0x9c, 0x0d, 0x9a, 0xa3, 0x96, 0xdd, 0x60, 0x85, 0x48, 0xe9, 0x41, 0x0b, 0x8a, 0xad, 0x2b, 0xe0, 0x8b, 0xbd, 0xb9, 0xe5, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xf8, 0x8b, 0x85, 0xcd, 0x95, 0x81, 0xc4, 0x80, 0xf4, 0x94, 0xb9, 0x81, 0x8c, 0xbd, 0xd5, 0xb9, 0xd1, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x65, 0x95, 0xa0, 0x1b, 0xb4, 0xd5, 0x11, 0x7b, 0xd0, 0xaa, 0xd8, 0xe6, 0x2c, 0xe0, 0x97, 0xe1, 0xc5, 0xcd, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xf0, 0x32, 0xc6, 0xf6, 0x36, 0x57, 0x46, 0x06, 0x72, 0x16, 0x06, 0x07, 0x57, 0x46, 0x06, 0x32, 0x07, 0x57, 0x36, 0x36, 0xb7, 0xc1, 0x79, 0xb0, 0x63, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x76, 0x92, 0x65, 0x5b, 0xc3, 0xdb, 0x3a, 0x1b, 0xac, 0x48, 0xf6, 0xa9, 0x59, 0xc0, 0x47, 0x4b, 0x73, 0x33, 0x37, 0x38, 0x0f, 0x76, 0x6c, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xf5, 0xc0, 0xa0, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xf6, 0x32, 0x65, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xcb, 0x2a, 0x41, 0x37, 0x58, 0xe8, 0x39, 0xb9, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x45, 0x43, 0xbf, 0xc1, 0xb2, 0x51, 0xfc, 0x83, 0x85, 0x5b, 0xa2, 0x1d, 0xb4, 0xe1, 0x29, 0xbb, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x81, 0xb6, 0xba, 0xe1, 0xc1, 0x9b, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0x41, 0x7b, 0x99, 0xb2, 0x07, 0x6d, 0x78, 0xca, 0xd6, 0xe1, 0x14, 0x6b, 0x01, 0xbf, 0x0c, 0x0f, 0xce, 0xdc, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0xb7, 0x84, 0xae, 0x4c, 0xae, 0x0d, 0x24, 0xcc, 0x8d, 0x0c, 0x04, 0xed, 0xed, 0xcd, 0x6d, 0x83, 0xf3, 0x60, 0xc7, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x68, 0x2f, 0x53, 0x76, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x76, 0x1c, 0x74, 0x83, 0x96, 0xe0, 0x31, 0x0f, 0x16, 0xd6, 0xb3, 0x1e, 0xb4, 0xf3, 0x29, 0xbb, 0x02, 0x7e, 0x19, 0x1e, 0xdc, 0xbd, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x3f, 0x77, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x72, 0x65, 0x65, 0x20, 0x68, 0x6f, 0x6f, 0x6e, 0x73, 0x1b, 0x9c, 0x07, 0x3b, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0x41, 0x7b, 0x99, 0xb2, 0x1b, 0xb4, 0x75, 0x6b, 0x79, 0xd0, 0xf0, 0xa6, 0xec, 0x2c, 0xe0, 0xcb, 0xa5, 0x8d, 0xad, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xf8, 0xb3, 0xa5, 0xcd, 0xd1, 0x81, 0x6c, 0xdd, 0xa5, 0xb9, 0x9d, 0x81, 0xa0, 0xbd, 0xbd, 0xb9, 0x75, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x35, 0xb3, 0xa1, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xb4, 0x32, 0x96, 0xd6, 0x60, 0x85, 0x50, 0xd3, 0x06, 0xed, 0x65, 0xca, 0x6e, 0xd0, 0xd6, 0xad, 0xe5, 0x41, 0x3b, 0x9f, 0xb2, 0x1d, 0x4e, 0xb1, 0x05, 0xfc, 0x32, 0xbc, 0xb8, 0x73, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x4f, 0xba, 0x32, 0xb9, 0x36, 0x90, 0x30, 0x37, 0x32, 0x90, 0x39, 0xb8, 0xb2, 0xb1, 0x0d, 0xce, 0x83, 0x1d, 0x1b, 0xac, 0x10, 0x6a, 0xda, 0xa0, 0xbd, 0x4c, 0xd9, 0x0d, 0x96, 0xd6, 0xb3, 0x1e, 0xb4, 0x78, 0x35, 0xbb, 0x02, 0x7e, 0x19, 0x1e, 0x9c, 0xb8, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x07, 0xdd, 0xdd, 0x1b, 0x08, 0xda, 0xdb, 0x9b, 0xdb, 0xdc, 0x06, 0xe7, 0xc1, 0x8e, 0x83, 0xa6, 0x25, 0x67, 0x0f, 0xa7, 0x58, 0x0b, 0xf8, 0x65, 0x78, 0x70, 0xe5, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0x1e, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x74, 0x61, 0x69, 0x6c, 0x1b, 0x9c, 0x07, 0x3b, 0x36, 0xbc, 0xad, 0x33, 0xe0, 0xdf, 0xa5, 0xcd, 0xc1, 0x1d, 0x4e, 0xb1, 0x05, 0xfc, 0xb6, 0xba, 0xb9, 0x79, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x7f, 0xb6, 0xb4, 0x39, 0x3a, 0x90, 0xbb, 0x17, 0x10, 0xb2, 0xb7, 0xb1, 0xb1, 0x37, 0x39, 0xb2, 0xb9, 0x0d, 0x1f, 0xe4, 0x6c, 0xd0, 0x1c, 0xb5, 0xec, 0x06, 0x0d, 0x55, 0xcd, 0x1e, 0xb4, 0xa0, 0xd8, 0xba, 0x02, 0x7e, 0x19, 0x5e, 0x5c, 0xbe, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x0f, 0x68, 0x6f, 0x6f, 0x6e, 0x2c, 0x20, 0x74, 0x68, 0x72, 0x65, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x73, 0x1b, 0x9c, 0x07, 0x3b, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0x41, 0x7b, 0x99, 0xb2, 0x1b, 0x34, 0xbd, 0x29, 0xbb, 0x41, 0x9b, 0x57, 0xb3, 0x1b, 0xb4, 0x79, 0x35, 0x7b, 0xd0, 0xe2, 0xd5, 0xec, 0x6a, 0xd0, 0x2e, 0xa7, 0xec, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x41, 0xea, 0x9a, 0xf7, 0x86, 0x0f, 0x72, 0x36, 0x68, 0x8e, 0x5a, 0x76, 0x83, 0x06, 0x46, 0x2f, 0x0f, 0x9a, 0x61, 0xb8, 0x5c, 0x0d, 0x1a, 0xf7, 0xcf, 0xda, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0xf8, 0x1e, 0xaf, 0x0d, 0xce, 0x83, 0x1d, 0x1b, 0xac, 0x10, 0x6a, 0xda, 0xa0, 0xad, 0x61, 0xd9, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xb3, 0x8f, 0xad, 0x1d, 0xb4, 0xc0, 0x2a, 0xbb, 0x02, 0xbe, 0xd8, 0x1b, 0x5b, 0xb8, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xd0, 0xf6, 0x04, 0x6d, 0x03, 0xfc, 0x2b, 0x2b, 0x20, 0x20, 0x61, 0x72, 0x6d, 0x73, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0xac, 0xee, 0x65, 0xdd, 0xa0, 0xe5, 0x8a, 0xd9, 0x0d, 0xce, 0x83, 0x1d, 0x1b, 0x2c, 0x87, 0x64, 0x9a, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x96, 0x55, 0x82, 0xae, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0x43, 0x26, 0xb3, 0x1b, 0x34, 0x8b, 0x32, 0x7b, 0xb0, 0x7a, 0x29, 0x7a, 0xc3, 0x07, 0x39, 0x1b, 0x34, 0xe8, 0x32, 0xbb, 0x86, 0x5f, 0x5c, 0x36, 0x38, 0x1d, 0x89, 0x6c, 0xd0, 0xde, 0xc6, 0xec, 0xc1, 0x49, 0x9e, 0x6f, 0xc3, 0x2f, 0x2e, 0x1b, 0x9c, 0x8e, 0x44, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0x1c, 0x5d, 0x07, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0x2d, 0xd1, 0xbf, 0x1e, 0x1c, 0x7a, 0xf9, 0x3a, 0x68, 0x15, 0x68, 0xf6, 0xe0, 0x24, 0xcf, 0xb7, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x8e, 0x83, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0x3e, 0x8c, 0xae, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0xa0, 0x57, 0x56, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x1b, 0xac, 0x10, 0x29, 0x3d, 0x68, 0xf5, 0x79, 0x73, 0x83, 0xe6, 0x6e, 0x62, 0xd7, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x6b, 0xc7, 0x41, 0x37, 0x68, 0xa8, 0x6a, 0xf6, 0xa0, 0x9d, 0x4f, 0xd9, 0x3a, 0x9c, 0x62, 0x0b, 0xf8, 0x65, 0x78, 0x70, 0xfa, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0xfc, 0xcc, 0xc1, 0x95, 0x8d, 0x81, 0x84, 0xb9, 0x91, 0x81, 0xd0, 0xa1, 0xc9, 0x95, 0x95, 0x81, 0xa0, 0xbd, 0xbd, 0xb9, 0xcd, 0x6d, 0x70, 0x1e, 0xec, 0xd8, 0x60, 0x85, 0x50, 0xd3, 0x06, 0xed, 0x65, 0xca, 0x6e, 0xd0, 0xe6, 0xd5, 0xec, 0x41, 0xc3, 0x9b, 0xb2, 0x87, 0x53, 0x6c, 0x0d, 0x5a, 0xb1, 0x9a, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0xfb, 0x2c, 0x0c, 0x0e, 0x44, 0xac, 0xcc, 0xec, 0x4d, 0xae, 0x0c, 0x84, 0xec, 0x6d, 0x6c, 0x6e, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x07, 0x06, 0x5d, 0xc3, 0x83, 0x92, 0x1b, 0xb4, 0x3b, 0xf9, 0x7a, 0xd0, 0x8a, 0x14, 0xe6, 0x41, 0x4b, 0x9a, 0x97, 0x2b, 0xe0, 0xd3, 0xe1, 0xb1, 0xcd, 0x1b, 0x9c, 0x07, 0x3b, 0x36, 0x28, 0x3a, 0x8d, 0x37, 0x58, 0x56, 0x09, 0xba, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x06, 0xed, 0xd2, 0xca, 0x6e, 0xd0, 0x70, 0x9d, 0xe6, 0x1a, 0xfe, 0x5c, 0x1a, 0x7c, 0x3c, 0x58, 0x1e, 0x6b, 0xdd, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x2c, 0x79, 0x5f, 0x83, 0x93, 0x83, 0x5c, 0x07, 0x6d, 0xfb, 0xca, 0x1e, 0x9e, 0x0b, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x6d, 0xf1, 0xcd, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xda, 0x1a, 0x96, 0xdd, 0xa0, 0xd9, 0x62, 0xd9, 0x0d, 0x9a, 0xde, 0x94, 0x5d, 0xc3, 0xdb, 0x3a, 0x03, 0xbe, 0x5c, 0xdd, 0xd8, 0x5a, 0x1d, 0x4e, 0xb1, 0x05, 0xfc, 0x3b, 0xb4, 0x30, 0x78, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x0b, 0xd3, 0xf8, 0x81, 0x0e, 0xa7, 0x61, 0xb7, 0x41, 0xd1, 0x69, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x16, 0xa6, 0x21, 0x1b, 0x68, 0x61, 0x1a, 0xf2, 0x83, 0x65, 0x95, 0xa0, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x61, 0x1a, 0x92, 0x81, 0xfe, 0xa6, 0x61, 0xb1, 0xe1, 0x17, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0x30, 0x0d, 0xe9, 0x40, 0x0f, 0xd3, 0x50, 0xb8, 0xe1, 0xcf, 0xa5, 0xc1, 0xc3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x3d, 0x4c, 0x43, 0x7e, 0xd0, 0x8e, 0x25, 0xed, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x1e, 0xa6, 0x61, 0x30, 0xd0, 0xc3, 0x34, 0x8c, 0x0e, 0x42, 0xca, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x3d, 0x4c, 0xc3, 0x6a, 0xa0, 0x87, 0x69, 0xe8, 0xdb, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xc3, 0x34, 0xcc, 0x06, 0x7a, 0x98, 0x86, 0xe9, 0xc1, 0x51, 0x57, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x3d, 0x4c, 0xc3, 0x76, 0xa0, 0x87, 0x69, 0xd8, 0x1f, 0x34, 0xe3, 0x85, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x1e, 0xa6, 0xa1, 0x60, 0xa0, 0x87, 0x69, 0x28, 0x39, 0x58, 0xaf, 0xf5, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x1e, 0xa6, 0xa1, 0x65, 0xa0, 0x87, 0x69, 0x68, 0x3a, 0x58, 0xb8, 0xe9, 0xbd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x1e, 0xa6, 0xa1, 0x6a, 0xa0, 0x87, 0x69, 0xa8, 0x3b, 0x58, 0x60, 0xe1, 0x5c, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0x98, 0x86, 0xe4, 0xa0, 0x61, 0x48, 0xda, 0x0d, 0x0a, 0xd2, 0xd8, 0x35, 0x28, 0xa1, 0x63, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xc5, 0x34, 0xa4, 0x03, 0x5d, 0x4c, 0x43, 0xf9, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xc5, 0x34, 0xc4, 0x03, 0x5d, 0x4c, 0xc3, 0x7c, 0xc3, 0x9f, 0x4b, 0x03, 0x3e, 0x59, 0x1d, 0xd9, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x8b, 0x69, 0xd8, 0x1c, 0xb4, 0x58, 0x4d, 0xbb, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x8b, 0x69, 0x18, 0x0d, 0x74, 0x31, 0x0d, 0xc3, 0x83, 0x90, 0x32, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x17, 0xd3, 0xb0, 0x1c, 0xe8, 0x62, 0x1a, 0xd6, 0x07, 0x0b, 0x37, 0xbd, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x17, 0xd3, 0xb0, 0x1f, 0xe8, 0x62, 0x1a, 0xba, 0x37, 0xfc, 0xb9, 0x34, 0xe0, 0xbb, 0xd5, 0x91, 0x95, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0x98, 0x86, 0x92, 0x83, 0x46, 0xda, 0x69, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0x31, 0x0d, 0x2d, 0x03, 0x5d, 0x4c, 0x43, 0xd3, 0x41, 0x48, 0x99, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x8b, 0x69, 0xa8, 0x1a, 0xe8, 0x62, 0x1a, 0xaa, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0x31, 0x0d, 0x5d, 0x03, 0x5d, 0x4c, 0x43, 0xdf, 0x41, 0xe9, 0x4d, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x2e, 0xa6, 0xa1, 0x70, 0xa0, 0x8b, 0x69, 0x28, 0x3d, 0x58, 0xaf, 0xf5, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x2e, 0xa6, 0xa1, 0x75, 0xa0, 0x8b, 0x69, 0x68, 0x3e, 0x58, 0x60, 0xe1, 0x5c, 0x1d, 0x84, 0xe9, 0xd8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xda, 0x98, 0x86, 0x6c, 0xa0, 0xab, 0x69, 0xd8, 0x6d, 0x50, 0x74, 0x1a, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x8d, 0x69, 0xc8, 0x07, 0xda, 0x98, 0x86, 0xcd, 0xc1, 0x52, 0x49, 0xc2, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0x31, 0x0d, 0xab, 0x81, 0x36, 0xa6, 0x61, 0x76, 0x78, 0x5a, 0x67, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x1f, 0xd3, 0x90, 0x1d, 0x34, 0x6f, 0x51, 0xbb, 0xe1, 0x17, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0x31, 0x0d, 0xf9, 0x40, 0x33, 0xd3, 0xb0, 0xd8, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xfa, 0x98, 0x86, 0xcd, 0x40, 0x23, 0xd3, 0xd0, 0xb6, 0xe1, 0xcf, 0xa5, 0x01, 0x4f, 0xec, 0xed, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xc8, 0x34, 0x6c, 0x0e, 0xda, 0x93, 0xa9, 0xdd, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xc8, 0x34, 0x8c, 0x06, 0x1a, 0x99, 0x86, 0xe1, 0xc1, 0x51, 0x57, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x8d, 0x4c, 0xc3, 0x72, 0xa0, 0x91, 0x69, 0x58, 0x1f, 0x34, 0xe3, 0x85, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x46, 0xa6, 0x61, 0x3e, 0xd0, 0xc8, 0x34, 0x54, 0x1c, 0xac, 0xd7, 0x7a, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x23, 0xd3, 0xd0, 0x31, 0xd0, 0xc8, 0x34, 0xf4, 0x1c, 0x2c, 0xdc, 0xf4, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x23, 0xd3, 0x50, 0x34, 0xd0, 0xc8, 0x34, 0x94, 0x1d, 0x2c, 0xb0, 0x70, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xad, 0x4c, 0xc3, 0x66, 0xa0, 0x97, 0x69, 0xb8, 0xb0, 0xe1, 0xcf, 0xa5, 0x0d, 0x16, 0x11, 0xdc, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x65, 0x1a, 0x36, 0x07, 0xcd, 0x6c, 0xd5, 0x6e, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xbd, 0x4c, 0xc3, 0x68, 0xa0, 0x97, 0x69, 0x28, 0xd9, 0xf0, 0xe7, 0xd2, 0x06, 0x6d, 0x5e, 0xd3, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x65, 0x1a, 0x96, 0x07, 0xcd, 0x9c, 0xd5, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x65, 0x1a, 0xa6, 0x03, 0xbd, 0x4c, 0xc3, 0xfc, 0x20, 0xa4, 0x4c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xcb, 0x34, 0xec, 0x07, 0x7a, 0x99, 0x86, 0x8e, 0x83, 0x85, 0x9b, 0xde, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x97, 0x69, 0x68, 0x19, 0xe8, 0x65, 0x1a, 0x1e, 0x6c, 0xf8, 0x73, 0x69, 0x83, 0x76, 0xde, 0x69, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0x32, 0x0d, 0x55, 0x07, 0x8d, 0xfa, 0xd5, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x65, 0x1a, 0xba, 0x06, 0x7a, 0x99, 0x86, 0xbe, 0x83, 0x90, 0x32, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x2f, 0xd3, 0x50, 0x38, 0xd0, 0xcb, 0x34, 0x1c, 0xd8, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xcb, 0x34, 0x34, 0x0e, 0xf4, 0x32, 0x0d, 0xad, 0x07, 0xa5, 0x37, 0xfd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x99, 0x86, 0xda, 0x81, 0x5e, 0xa6, 0xa1, 0xfa, 0x60, 0xbd, 0xd6, 0xf3, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x99, 0x86, 0xee, 0x81, 0x5e, 0xa6, 0xa1, 0xff, 0x60, 0x81, 0x85, 0x73, 0xd5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x6e, 0xa6, 0x21, 0x3b, 0x68, 0xde, 0xa2, 0x76, 0x83, 0x82, 0x34, 0x76, 0x0d, 0x4a, 0xe8, 0xd8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0x33, 0x0d, 0xf9, 0x40, 0x37, 0xd3, 0x50, 0xb8, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0x33, 0x0d, 0x83, 0x81, 0x6e, 0xa6, 0x61, 0xbf, 0xe1, 0xcf, 0xa5, 0x01, 0xaf, 0xce, 0x8d, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xcd, 0x34, 0x8c, 0x0e, 0x1a, 0x9c, 0xad, 0xdd, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xcd, 0x34, 0xac, 0x06, 0xba, 0x99, 0x86, 0xe5, 0x41, 0x48, 0x99, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x9b, 0x69, 0x98, 0x0e, 0x74, 0x33, 0x0d, 0xf3, 0x83, 0x85, 0x9b, 0xde, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x9b, 0x69, 0x28, 0x18, 0xe8, 0x66, 0x1a, 0xfa, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0xaa, 0x81, 0xe0, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xdd, 0x4c, 0x43, 0xc9, 0x41, 0xe3, 0xca, 0xb5, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0x99, 0x86, 0x96, 0x81, 0x6e, 0xa6, 0xa1, 0xe9, 0x20, 0xa4, 0x4c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xcd, 0x34, 0x54, 0x0d, 0x74, 0x33, 0x0d, 0x75, 0x07, 0x0b, 0x37, 0xbd, 0xeb, 0x20, 0x4c, 0xc7, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xce, 0x34, 0xa4, 0x03, 0xed, 0x4c, 0xc3, 0x89, 0x0d, 0x8a, 0x4e, 0xe3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0x33, 0x0d, 0x8b, 0x81, 0x76, 0xa6, 0x61, 0x75, 0x70, 0x4a, 0xc7, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x3b, 0xd3, 0xb0, 0x1b, 0x68, 0x67, 0x1a, 0xaa, 0x36, 0x28, 0x4b, 0xde, 0x37, 0x58, 0x04, 0x32, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x76, 0xa6, 0x61, 0x3d, 0xd0, 0xce, 0x34, 0xec, 0x0f, 0xca, 0xa6, 0xfa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0x33, 0x0d, 0x05, 0x03, 0xed, 0x4c, 0x43, 0xd3, 0x86, 0xb7, 0x75, 0x36, 0x58, 0x3c, 0x50, 0x3e, 0x38, 0xbc, 0x41, 0x93, 0x34, 0xb5, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x9d, 0x69, 0x28, 0x3b, 0x68, 0x69, 0xbc, 0x76, 0xc3, 0x2f, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x67, 0x1a, 0xfa, 0x06, 0xda, 0x99, 0x86, 0xd2, 0x0d, 0x7f, 0x2e, 0x6d, 0xb8, 0xd3, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0x33, 0x0d, 0x85, 0x07, 0x4d, 0x23, 0xd8, 0x1e, 0x2c, 0xdc, 0xf4, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xce, 0x34, 0xb4, 0x0e, 0xb4, 0x33, 0x0d, 0x1f, 0x36, 0xfc, 0x9b, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x76, 0xa6, 0xa1, 0x77, 0xa0, 0x9d, 0x69, 0x28, 0x3e, 0x28, 0x28, 0x32, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0x33, 0x0d, 0xcd, 0x03, 0xed, 0x4c, 0xc3, 0x85, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0xe8, 0x09, 0xfb, 0x60, 0x55, 0xa7, 0xf7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x7e, 0xa6, 0x21, 0x3b, 0x68, 0xde, 0xa2, 0x76, 0x83, 0xc2, 0x50, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xfd, 0x4c, 0x43, 0x3e, 0xd0, 0xd1, 0x34, 0x54, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xfd, 0x4c, 0xc3, 0x66, 0xa0, 0x9f, 0x69, 0x68, 0xd8, 0xf0, 0x6f, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xfa, 0x99, 0x86, 0xd5, 0x40, 0x3f, 0xd3, 0x30, 0xdd, 0xa0, 0x10, 0x4c, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xcf, 0x34, 0xcc, 0x0e, 0xda, 0xbf, 0xb1, 0x3d, 0x58, 0xb8, 0xe9, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x9f, 0x69, 0xd8, 0x0e, 0xf4, 0x33, 0x0d, 0x05, 0x1b, 0xde, 0xd6, 0x19, 0x5c, 0x3e, 0x68, 0xd5, 0xbf, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x0d, 0x4d, 0xc3, 0x62, 0xa0, 0xa1, 0x69, 0x28, 0xd9, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x1a, 0x9a, 0x86, 0xc9, 0x40, 0x43, 0xd3, 0x30, 0x3b, 0x38, 0x11, 0xb4, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xa1, 0x69, 0xd8, 0x0d, 0x34, 0x34, 0x0d, 0xd3, 0x83, 0xc5, 0x25, 0xc1, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x68, 0x1a, 0xb6, 0x03, 0x0d, 0x4d, 0x43, 0xc7, 0x86, 0xb7, 0x75, 0x36, 0x68, 0xf3, 0x9a, 0xf6, 0x60, 0x49, 0xcc, 0x6d, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x9a, 0x86, 0xfc, 0xa0, 0x75, 0x16, 0xdb, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xa3, 0x69, 0x18, 0x0c, 0x74, 0x34, 0x0d, 0xab, 0x83, 0x96, 0x88, 0x6c, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xd1, 0x34, 0xcc, 0x06, 0x3a, 0x9a, 0x86, 0xa6, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xa3, 0x69, 0xd8, 0x0d, 0x74, 0x34, 0x0d, 0xdb, 0x83, 0x13, 0x41, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0x9a, 0x86, 0xf1, 0x40, 0x47, 0xd3, 0xb0, 0x3f, 0x58, 0x5c, 0x12, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x8e, 0xa6, 0xa1, 0x60, 0xa0, 0xa3, 0x69, 0x28, 0x3a, 0x68, 0x87, 0xcb, 0xb6, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0x34, 0x0d, 0xd9, 0x41, 0xf3, 0x16, 0xb5, 0x1b, 0xbe, 0xc2, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xd3, 0x34, 0x64, 0x07, 0xcd, 0x5b, 0xd4, 0x6e, 0x50, 0xc2, 0x63, 0xae, 0x41, 0x93, 0xb5, 0xb5, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xa7, 0x69, 0x18, 0x0d, 0xf4, 0x34, 0x0d, 0x65, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x4f, 0xd3, 0xb0, 0x1a, 0xe8, 0x69, 0x1a, 0x2a, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x9e, 0xa6, 0x61, 0x36, 0xd0, 0xd3, 0x34, 0x6c, 0x37, 0xbc, 0xad, 0x33, 0x78, 0x7c, 0xd0, 0xaa, 0x7f, 0xed, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x9a, 0x86, 0xf1, 0x40, 0x4f, 0xd3, 0xd0, 0xb0, 0xe1, 0x6d, 0x9d, 0xc1, 0xe7, 0x83, 0x56, 0xfd, 0x6b, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x4f, 0xd3, 0xd0, 0x31, 0xd0, 0xd3, 0x34, 0x74, 0x6d, 0x78, 0x5b, 0x67, 0x83, 0x76, 0xde, 0x69, 0x0f, 0x96, 0xc4, 0xdc, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xa9, 0x69, 0xc8, 0x0e, 0x9a, 0xb7, 0xa8, 0xdd, 0xa0, 0xe8, 0xd3, 0xdd, 0xa0, 0x61, 0x52, 0xdb, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0x35, 0x0d, 0xb3, 0x81, 0xa6, 0xa6, 0xa1, 0x6e, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x6a, 0x1a, 0x76, 0x03, 0x4d, 0x4d, 0xc3, 0xf8, 0xa0, 0x75, 0x4b, 0x82, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0x35, 0x0d, 0xeb, 0x81, 0xa6, 0xa6, 0xa1, 0x67, 0x83, 0xc6, 0x16, 0x22, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0x35, 0x0d, 0x15, 0x07, 0x0d, 0x0e, 0xdb, 0x6e, 0x78, 0x5b, 0x67, 0xf0, 0xf4, 0xa0, 0xf5, 0x45, 0xdb, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0x35, 0x0d, 0x45, 0x03, 0x4d, 0x4d, 0x43, 0xdb, 0x41, 0xeb, 0xa3, 0xb6, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x6a, 0x1a, 0xb2, 0x83, 0xe6, 0x2d, 0x6a, 0x37, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x68, 0x7d, 0xd1, 0x76, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x57, 0xd3, 0xb0, 0x18, 0xe8, 0x6a, 0x1a, 0x66, 0x1b, 0xde, 0xd6, 0x19, 0x9c, 0x3e, 0x68, 0x7d, 0xd1, 0xb6, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x7d, 0x4d, 0x43, 0x72, 0xd0, 0x30, 0x24, 0xed, 0x06, 0x45, 0xa7, 0xf1, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xfa, 0x9a, 0x86, 0x74, 0xa0, 0xaf, 0x69, 0x58, 0x6c, 0x78, 0x5b, 0x67, 0xc0, 0x3f, 0x63, 0x7b, 0xbb, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x5f, 0xd3, 0xb0, 0x19, 0xe8, 0x6b, 0x1a, 0x76, 0x1b, 0xde, 0xd6, 0xd9, 0xa0, 0xcd, 0x6b, 0xda, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0x36, 0x0d, 0xc9, 0x41, 0xc3, 0x90, 0xb4, 0x1b, 0xbe, 0xc2, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xd8, 0x34, 0xa4, 0x07, 0x0d, 0x43, 0xd2, 0x6e, 0xf8, 0x8b, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x8d, 0x4d, 0xc3, 0x62, 0xa0, 0xb1, 0x69, 0x28, 0xd8, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xd8, 0x34, 0x4c, 0x06, 0x1a, 0x9b, 0x86, 0xd5, 0x41, 0x89, 0x58, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xc6, 0xa6, 0x61, 0x36, 0xd0, 0xd8, 0x34, 0x4c, 0x0f, 0xd6, 0x6b, 0x3d, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xb1, 0x69, 0xd8, 0x0e, 0x34, 0x36, 0x0d, 0xfb, 0x83, 0x05, 0x16, 0xce, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x6c, 0x1a, 0x92, 0x83, 0x86, 0x21, 0x69, 0x37, 0x28, 0xe1, 0x31, 0xd7, 0xa0, 0x9d, 0x77, 0xda, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xd9, 0x34, 0x6c, 0x06, 0x3a, 0x9b, 0x86, 0xd1, 0x41, 0x41, 0x91, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xb5, 0x69, 0x48, 0x0e, 0x1a, 0x86, 0xa4, 0xdd, 0xf0, 0x89, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0x9b, 0x86, 0x74, 0xa0, 0xb5, 0x69, 0xd8, 0x6e, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xd0, 0xa8, 0xc6, 0xed, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xd6, 0xa6, 0x61, 0x34, 0xd0, 0xda, 0x34, 0x4c, 0x37, 0xbc, 0xad, 0x33, 0x38, 0x7d, 0xd0, 0xa8, 0xc6, 0x6d, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x9b, 0x86, 0xe4, 0xa0, 0x61, 0x48, 0xda, 0x0d, 0x8a, 0x4e, 0xe3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0x36, 0x0d, 0xe9, 0x40, 0x6f, 0xd3, 0x30, 0xdc, 0xa0, 0x2c, 0x79, 0xdf, 0xa0, 0x6c, 0x41, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x6f, 0xd3, 0xb0, 0x19, 0xe8, 0x6d, 0x1a, 0x56, 0x07, 0x65, 0x53, 0xfd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0x9b, 0x86, 0xd9, 0x40, 0x6f, 0xd3, 0xb0, 0x3b, 0x3c, 0x33, 0xd9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x9a, 0x9b, 0x86, 0x6c, 0xa0, 0xb9, 0x69, 0xd8, 0x6c, 0x78, 0x5b, 0x67, 0x70, 0x78, 0xf0, 0xf4, 0xa0, 0x51, 0x8d, 0xdb, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xdd, 0x4d, 0x43, 0x72, 0xd0, 0x30, 0x24, 0xed, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xdd, 0x34, 0xa4, 0x03, 0xdd, 0x4d, 0x43, 0xc7, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xdd, 0x34, 0xc4, 0x03, 0xdd, 0x4d, 0xc3, 0x72, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0xa3, 0xb5, 0xc6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0x9b, 0x86, 0xd1, 0x40, 0x77, 0xd3, 0x30, 0x3b, 0x28, 0x9b, 0xea, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xdd, 0x34, 0xec, 0x06, 0xba, 0x9b, 0x86, 0xe1, 0xe1, 0x99, 0xc9, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xdd, 0x34, 0x4c, 0x07, 0xba, 0x9b, 0x86, 0x8a, 0x83, 0xb6, 0xa1, 0x6e, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x7b, 0xd3, 0x90, 0x0d, 0xb4, 0x37, 0x0d, 0xe5, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x7b, 0xd3, 0x10, 0x0e, 0xb4, 0x37, 0x0d, 0x8b, 0x83, 0xf6, 0x91, 0x08, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xde, 0x34, 0x4c, 0x06, 0xda, 0x9b, 0x86, 0xee, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xbd, 0x69, 0xd8, 0x0c, 0xb4, 0x37, 0x0d, 0xbb, 0x83, 0x13, 0x41, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xda, 0x9b, 0x86, 0xe1, 0x40, 0x7b, 0xd3, 0x50, 0xb5, 0xe1, 0x59, 0xbc, 0xc1, 0xc9, 0xc1, 0xeb, 0xc1, 0xe1, 0xc1, 0xd9, 0xc1, 0xd3, 0xc1, 0xc7, 0xc1, 0xc3, 0xc1, 0xe9, 0xc1, 0xcb, 0x41, 0xc1, 0xe0, 0xe1, 0xe0, 0xf2, 0xe0, 0xed, 0xa0, 0x7a, 0x50, 0x30, 0xe8, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xed, 0x4d, 0x43, 0xd7, 0x40, 0x7b, 0xd3, 0x50, 0xbd, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0x37, 0x0d, 0x65, 0x03, 0xed, 0x4d, 0x43, 0xe1, 0xc1, 0x32, 0xec, 0xb7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0x37, 0x0d, 0x8d, 0x03, 0xed, 0x4d, 0x43, 0xf3, 0x41, 0xdb, 0x50, 0xb7, 0xd5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xfe, 0xa6, 0x21, 0x39, 0x68, 0x18, 0x92, 0x76, 0xc3, 0xdb, 0x3a, 0x83, 0xc7, 0x07, 0xcd, 0x48, 0xdd, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x70, 0x1a, 0x7f, 0xd0, 0x60, 0x21, 0xed, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0xe1, 0x34, 0x04, 0x03, 0x1d, 0x4e, 0x43, 0x78, 0xb0, 0x66, 0x36, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x1d, 0x4e, 0x43, 0x3a, 0xd0, 0xe1, 0x34, 0x2c, 0x36, 0xbc, 0xad, 0x33, 0xe0, 0xb7, 0xd5, 0xcd, 0xa1, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0xc3, 0x69, 0x98, 0x0c, 0x74, 0x38, 0x0d, 0xb3, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x62, 0x6f, 0x6f, 0x67, 0x1d, 0x4e, 0xb1, 0x16, 0xf0, 0xd1, 0xc2, 0xdc, 0xd6, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0xfc, 0xce, 0xc2, 0xe0, 0xe0, 0xca, 0xc8, 0x40, 0xd0, 0xde, 0xde, 0xdc, 0xe6, 0x36, 0xbc, 0xdb, 0xb3, 0xc1, 0x9a, 0xd9, 0xd0, 0x0d, 0x9a, 0x0c, 0xbe, 0x3d, 0x68, 0xe7, 0x53, 0x76, 0x05, 0x7c, 0x3a, 0x3c, 0xba, 0x79, 0x83, 0xf3, 0x60, 0xc7, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0xcb, 0x2a, 0x41, 0xd7, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x83, 0x87, 0x07, 0x0b, 0xac, 0xa0, 0xd7, 0xf0, 0xe7, 0xd2, 0xe0, 0xe2, 0x41, 0x13, 0xb6, 0xb2, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x35, 0x28, 0x26, 0x31, 0xdb, 0xa0, 0x75, 0x5f, 0xd9, 0xc3, 0x5b, 0x68, 0x87, 0x87, 0x7e, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0x41, 0x5b, 0xc3, 0xb2, 0x1b, 0xb4, 0x79, 0x35, 0xbb, 0x41, 0xb3, 0xc5, 0xb2, 0xad, 0x80, 0x2f, 0xf6, 0xe6, 0xb6, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xb4, 0xc4, 0x7e, 0xdb, 0x00, 0x9e, 0x6a, 0x65, 0x74, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x1b, 0xac, 0x10, 0x6a, 0xda, 0x60, 0xed, 0x38, 0xe8, 0x06, 0x2d, 0xc1, 0x63, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x03, 0x83, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x56, 0x54, 0x84, 0x6e, 0xb0, 0xb4, 0x9e, 0x75, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x76, 0x1c, 0x74, 0x83, 0x85, 0x70, 0xa4, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x1b, 0x2c, 0xad, 0x67, 0x5d, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x1d, 0x07, 0xdd, 0x60, 0xed, 0x0b, 0xe9, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0xed, 0x38, 0xe8, 0x06, 0x6b, 0x5f, 0x48, 0x0f, 0x1a, 0x6f, 0x97, 0xad, 0x5a, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0xa8, 0x08, 0xdd, 0x60, 0x69, 0x3d, 0xeb, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0xed, 0x38, 0xe8, 0x06, 0x0b, 0xe1, 0x48, 0xd7, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x2b, 0x2a, 0x42, 0x37, 0x58, 0x5a, 0xcf, 0x7a, 0xd0, 0x0e, 0x02, 0x6e, 0x6d, 0xd0, 0xe8, 0x04, 0xee, 0xc1, 0xc2, 0x7a, 0xd6, 0x56, 0x83, 0xd6, 0x92, 0x6f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0x23, 0x8d, 0x1f, 0x68, 0x48, 0x1a, 0x8a, 0x36, 0x28, 0x3a, 0x8d, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x8f, 0x34, 0x64, 0x03, 0xfd, 0x48, 0x43, 0x7e, 0xb0, 0xba, 0x97, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xfd, 0x48, 0xc3, 0x62, 0xa0, 0x1f, 0x69, 0xa8, 0xdc, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xfa, 0x91, 0x86, 0xc9, 0x40, 0x3f, 0xd2, 0xb0, 0xdc, 0xf0, 0xb9, 0xcb, 0xe0, 0xf0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x7e, 0xa4, 0x61, 0x74, 0xd0, 0xee, 0x0b, 0xee, 0x06, 0x85, 0x60, 0xea, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x7e, 0xa4, 0x61, 0x75, 0xd0, 0xee, 0x0b, 0xee, 0x41, 0x33, 0x5e, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x47, 0x1a, 0xa6, 0x03, 0xfd, 0x48, 0x43, 0xc3, 0x86, 0xcf, 0x5d, 0x06, 0x8f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0x23, 0x0d, 0xe3, 0x83, 0x96, 0x81, 0x70, 0x37, 0x28, 0x04, 0x53, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0x23, 0x0d, 0xeb, 0x83, 0x96, 0x81, 0x70, 0x0f, 0xd6, 0x6b, 0x3d, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x1f, 0x69, 0xa8, 0x18, 0xe8, 0x47, 0x1a, 0x9a, 0x36, 0x7c, 0xee, 0x32, 0xb8, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x1f, 0x69, 0x28, 0x39, 0x68, 0x3c, 0x0a, 0x77, 0x83, 0x42, 0x30, 0x75, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x3f, 0xd2, 0xd0, 0x72, 0xd0, 0x78, 0x14, 0xee, 0xc1, 0xc2, 0x4d, 0xef, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0x23, 0x0d, 0x55, 0x03, 0xfd, 0x48, 0x43, 0xe3, 0x86, 0xcf, 0x5d, 0x06, 0x9f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0x23, 0x0d, 0x65, 0x07, 0x2d, 0x8c, 0xe1, 0x6e, 0x50, 0x08, 0xa6, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x47, 0x1a, 0xda, 0x0e, 0x5a, 0x18, 0xc3, 0x3d, 0x58, 0x60, 0xe1, 0xdc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x86, 0xa4, 0xf1, 0x07, 0x8d, 0x7b, 0xe0, 0x6e, 0x70, 0x1e, 0xec, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x90, 0x34, 0x44, 0x03, 0x0d, 0x49, 0x43, 0xcf, 0x06, 0xcb, 0x21, 0x99, 0x66, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x43, 0xd2, 0x90, 0x0e, 0x34, 0x24, 0x0d, 0x35, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x43, 0xd2, 0x10, 0x0f, 0x34, 0x24, 0x0d, 0x93, 0x83, 0x06, 0x64, 0x62, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x90, 0x34, 0x6c, 0x06, 0x1a, 0x92, 0x86, 0x96, 0x0d, 0x56, 0x08, 0x35, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x21, 0x69, 0x98, 0x0d, 0x34, 0x24, 0x0d, 0xd3, 0x83, 0xf5, 0xc0, 0xa0, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x48, 0x1a, 0xb6, 0x03, 0x0d, 0x49, 0xc3, 0x7e, 0xc3, 0xdb, 0x3a, 0x1b, 0xb4, 0x3d, 0x41, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x1a, 0x92, 0x86, 0x82, 0x81, 0x86, 0xa4, 0xa1, 0x64, 0xc3, 0xdb, 0x3a, 0x1b, 0x34, 0xbf, 0x30, 0x5b, 0x1d, 0x4e, 0xb1, 0x5a, 0x83, 0xf6, 0xc6, 0x67, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0x45, 0x8d, 0x1f, 0x68, 0x9d, 0x1a, 0x92, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0x45, 0x0d, 0xd9, 0x40, 0x5b, 0xd4, 0x10, 0x1f, 0x34, 0x47, 0x2d, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xb6, 0xa8, 0x61, 0x30, 0xd0, 0x16, 0x35, 0x8c, 0x0e, 0x96, 0x7d, 0xd6, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x8b, 0x1a, 0x7f, 0xd0, 0x58, 0x29, 0xee, 0x06, 0x45, 0xa7, 0xf1, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xfa, 0xa2, 0x86, 0x6c, 0xa0, 0x2f, 0x6a, 0xc8, 0x0f, 0x96, 0x55, 0x82, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x31, 0x6a, 0x48, 0x06, 0xba, 0xa5, 0x86, 0x2b, 0x1b, 0x7e, 0x51, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x63, 0xd4, 0x90, 0x0e, 0x34, 0x46, 0x0d, 0x07, 0x36, 0xfc, 0xb9, 0x34, 0x78, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x31, 0x6a, 0xc8, 0x0f, 0xda, 0x36, 0xc6, 0xdd, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x18, 0x35, 0x0c, 0x06, 0x1a, 0xa3, 0x86, 0xd1, 0x41, 0x48, 0x99, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x31, 0x6a, 0x58, 0x0d, 0x34, 0x46, 0x0d, 0xfd, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x63, 0xd4, 0x30, 0x1b, 0x68, 0x8c, 0x1a, 0xe6, 0x1b, 0xfe, 0x5c, 0x1a, 0xf0, 0xee, 0xd2, 0xe8, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x8d, 0x51, 0xc3, 0xf4, 0xa0, 0xb1, 0x6e, 0xdc, 0x83, 0x66, 0xbc, 0x30, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x18, 0x35, 0xec, 0x07, 0x1a, 0xa3, 0x86, 0xfa, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x77, 0x61, 0xf0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xc6, 0xa8, 0xa1, 0xe3, 0xa0, 0xc9, 0x74, 0xdc, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x8d, 0x51, 0x43, 0xc9, 0x40, 0x63, 0xd4, 0x50, 0x74, 0x50, 0x7a, 0xd3, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x31, 0x6a, 0x68, 0x1a, 0x68, 0x8c, 0x1a, 0xda, 0x0e, 0xd6, 0x6b, 0x3d, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x31, 0x6a, 0xa8, 0x1b, 0x68, 0x8c, 0x1a, 0xda, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0x46, 0x0d, 0x7d, 0x03, 0x8d, 0x51, 0x43, 0xe5, 0x41, 0x89, 0x58, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xc6, 0xa8, 0xa1, 0x73, 0xa0, 0x31, 0x6a, 0xe8, 0x3d, 0x58, 0xaf, 0xf5, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xc6, 0xa8, 0xa1, 0x78, 0xa0, 0x31, 0x6a, 0x28, 0x3f, 0x58, 0x60, 0xe1, 0x5c, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x33, 0x6a, 0x48, 0x0e, 0x9a, 0x0a, 0xc6, 0xdd, 0xf0, 0x17, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0xa3, 0x86, 0x74, 0xa0, 0x33, 0x6a, 0x18, 0x6f, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x8c, 0x1a, 0xe2, 0x81, 0xce, 0xa8, 0x61, 0x71, 0x50, 0x22, 0xd6, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x33, 0x6a, 0x98, 0x0c, 0x74, 0x46, 0x0d, 0xb3, 0x83, 0xf5, 0x5a, 0xcf, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x8c, 0x1a, 0x76, 0x03, 0x9d, 0x51, 0xc3, 0xf6, 0x60, 0xfd, 0x1e, 0x74, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0xa3, 0x86, 0xe4, 0xa0, 0xa9, 0x60, 0xdc, 0x0d, 0x0f, 0x4a, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x35, 0x6a, 0x48, 0x07, 0x5a, 0xa3, 0x86, 0xf8, 0xe0, 0x74, 0x91, 0xb1, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x37, 0x6a, 0x48, 0x0e, 0x9a, 0x0a, 0xc6, 0xdd, 0xf0, 0x15, 0xce, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xde, 0xa8, 0x21, 0x3d, 0x68, 0x2a, 0x18, 0x77, 0xc3, 0x5f, 0x34, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x8d, 0x1a, 0x16, 0x03, 0xbd, 0x51, 0x43, 0xef, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xde, 0xa8, 0x61, 0x32, 0xd0, 0x1b, 0x35, 0xcc, 0x0e, 0x4a, 0x6f, 0xfa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0x46, 0x0d, 0xbb, 0x81, 0xde, 0xa8, 0xa1, 0x66, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x6f, 0xd4, 0x30, 0x1c, 0xe8, 0x8d, 0x1a, 0xb6, 0x07, 0x25, 0x62, 0xfd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x7a, 0xa3, 0x86, 0xf1, 0x40, 0x6f, 0xd4, 0x50, 0x70, 0xb0, 0x5e, 0xeb, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xbd, 0x51, 0x43, 0xc3, 0x40, 0x6f, 0xd4, 0xd0, 0x72, 0xb0, 0x7e, 0x0f, 0xba, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0x46, 0x0d, 0x3d, 0x03, 0xbd, 0x51, 0x43, 0xed, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xde, 0xa8, 0xa1, 0x68, 0xa0, 0x37, 0x6a, 0xe8, 0x3a, 0x28, 0x11, 0xeb, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x1b, 0x35, 0x94, 0x0d, 0xf4, 0x46, 0x0d, 0x85, 0x07, 0xeb, 0xb5, 0x9e, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x1b, 0x35, 0x34, 0x0e, 0xf4, 0x46, 0x0d, 0xad, 0x07, 0x0b, 0x2c, 0x9c, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x73, 0xd4, 0x90, 0x1c, 0x34, 0x15, 0x8c, 0xbb, 0x41, 0x09, 0x8f, 0xb9, 0xe1, 0xc1, 0x9d, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0x47, 0x0d, 0x83, 0x81, 0xe6, 0xa8, 0x61, 0xb5, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0x47, 0x0d, 0x8b, 0x81, 0xe6, 0xa8, 0x61, 0x72, 0x50, 0x50, 0x64, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x39, 0x6a, 0xd8, 0x0c, 0x34, 0x47, 0x0d, 0xa3, 0x83, 0x82, 0x22, 0xb3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xdd, 0x51, 0x43, 0x72, 0xd0, 0x54, 0x30, 0xee, 0x06, 0x05, 0x69, 0xec, 0x06, 0x63, 0x41, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xdd, 0x51, 0xc3, 0x64, 0xa0, 0x3b, 0x6a, 0x98, 0x6e, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0x78, 0x70, 0x67, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x77, 0xd4, 0x30, 0x1b, 0xe8, 0x8e, 0x1a, 0x96, 0x07, 0x65, 0x85, 0x7c, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xda, 0xa3, 0x86, 0xe4, 0xa0, 0xa9, 0x60, 0xdc, 0x0d, 0x8a, 0x3e, 0xdd, 0x05, 0x8f, 0x37, 0x68, 0x75, 0x1d, 0xf7, 0xa0, 0x28, 0x8e, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x7f, 0xd4, 0x90, 0x0d, 0xf4, 0x48, 0x0d, 0xbd, 0x1b, 0x9c, 0xd8, 0x6f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x1f, 0x35, 0xe4, 0x03, 0xfd, 0x51, 0x43, 0xc5, 0x06, 0x65, 0xc9, 0xfb, 0x1a, 0x94, 0xd7, 0x25, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x3f, 0x6a, 0x58, 0x0d, 0xf4, 0x47, 0x0d, 0xbb, 0x83, 0xb2, 0xa9, 0x7e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xfd, 0x51, 0xc3, 0x70, 0xa0, 0x3f, 0x6a, 0x68, 0xd8, 0xf0, 0xb6, 0xce, 0x41, 0x93, 0xae, 0xb9, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x90, 0x1a, 0xb2, 0x83, 0x36, 0x69, 0x73, 0x37, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x06, 0xa9, 0x21, 0x1f, 0x68, 0x90, 0x1a, 0x1a, 0x36, 0xfc, 0xb9, 0x34, 0xb8, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x41, 0x6a, 0x58, 0x1c, 0x34, 0x2a, 0x9d, 0xbb, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x41, 0x6a, 0x98, 0x0c, 0x34, 0x48, 0x0d, 0xb3, 0x83, 0xd2, 0x9b, 0x7e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x0d, 0x52, 0xc3, 0x6e, 0xa0, 0x41, 0x6a, 0xd8, 0x1e, 0xac, 0xd7, 0x7a, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x83, 0xd4, 0x30, 0x1e, 0x68, 0x90, 0x1a, 0x0a, 0x0e, 0x16, 0x58, 0x38, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x41, 0x6a, 0xe8, 0x38, 0x68, 0x93, 0x36, 0x77, 0xc3, 0xd7, 0x2f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x90, 0x1a, 0x7a, 0x06, 0x1a, 0xa4, 0x86, 0xaa, 0x83, 0x52, 0x9c, 0x76, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x8b, 0xd4, 0x90, 0x1d, 0xb4, 0x49, 0x9b, 0xbb, 0x41, 0xb1, 0xa3, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x16, 0xa9, 0x21, 0x1f, 0x68, 0x91, 0x1a, 0x4a, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x16, 0xa9, 0x61, 0x30, 0xd0, 0x22, 0x35, 0xec, 0x37, 0x28, 0x4b, 0xde, 0x37, 0x38, 0x5a, 0x6b, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x45, 0x6a, 0x98, 0x0d, 0xb4, 0x48, 0x0d, 0xc3, 0x83, 0xb2, 0xa9, 0x7e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x2d, 0x52, 0xc3, 0x72, 0xa0, 0x45, 0x6a, 0x98, 0x1f, 0xb4, 0xdb, 0x60, 0xd6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x5a, 0xa4, 0x86, 0x82, 0x81, 0x16, 0xa9, 0xa1, 0xe3, 0xa0, 0xd4, 0x15, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x2d, 0x52, 0x43, 0xcd, 0x40, 0x8b, 0xd4, 0xd0, 0x74, 0x50, 0x8a, 0xd3, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x91, 0x1a, 0xb2, 0x83, 0x36, 0x69, 0x73, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x1e, 0xa9, 0x21, 0x1c, 0xe8, 0x91, 0x1a, 0x16, 0x07, 0xed, 0x23, 0x11, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x47, 0x6a, 0x98, 0x0c, 0xf4, 0x48, 0x0d, 0xb5, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x8f, 0xd4, 0xb0, 0x19, 0xe8, 0x91, 0x1a, 0x76, 0x07, 0x27, 0x82, 0xb6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0x48, 0x0d, 0xc3, 0x81, 0x1e, 0xa9, 0xa1, 0xea, 0xa0, 0x95, 0xc8, 0xdb, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0x48, 0x0d, 0x5d, 0x03, 0x3d, 0x52, 0x43, 0xeb, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x23, 0x35, 0x94, 0x0d, 0xf4, 0x48, 0x0d, 0x85, 0x07, 0xcb, 0xb0, 0xdf, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x23, 0x35, 0x34, 0x0e, 0xf4, 0x48, 0x0d, 0xa5, 0x07, 0xa5, 0xae, 0x68, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x49, 0x6a, 0x48, 0x0e, 0x9a, 0x0a, 0xc6, 0xdd, 0x60, 0x49, 0x75, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x9a, 0xa4, 0x86, 0x74, 0xa0, 0x49, 0x6a, 0x28, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x9a, 0xa4, 0x86, 0x78, 0xa0, 0x49, 0x6a, 0x58, 0x6f, 0x50, 0x96, 0xbc, 0x6f, 0x70, 0xec, 0xbf, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0x93, 0xd4, 0x30, 0x1a, 0x68, 0x92, 0x1a, 0x66, 0x07, 0x65, 0x53, 0xfd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x9a, 0xa4, 0x86, 0xdd, 0x40, 0x93, 0xd4, 0x30, 0x3e, 0x68, 0xb7, 0xc1, 0xac, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0x49, 0x0d, 0xf3, 0x81, 0x26, 0xa9, 0xa1, 0xe7, 0xa0, 0xf1, 0xe3, 0xdc, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0x49, 0x0d, 0xc9, 0x41, 0x53, 0xc1, 0xb8, 0x1b, 0x14, 0x9d, 0xc6, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x92, 0x1a, 0xd2, 0x81, 0x2e, 0xa9, 0x61, 0xbc, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0xd9, 0x82, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x2e, 0xa9, 0x61, 0x33, 0xd0, 0x25, 0x35, 0xac, 0x0e, 0xca, 0xa6, 0xfa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0x49, 0x0d, 0xb3, 0x81, 0x2e, 0xa9, 0x61, 0x7b, 0xd0, 0x18, 0x81, 0x59, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x93, 0x1a, 0xb2, 0x81, 0x36, 0xa9, 0x61, 0xb4, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0x83, 0x26, 0x5e, 0x73, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0x49, 0x0d, 0xc9, 0x41, 0x53, 0xc1, 0xb8, 0x1b, 0x14, 0x86, 0xaa, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x93, 0x1a, 0xd2, 0x81, 0x56, 0xa9, 0x21, 0xde, 0xe0, 0xc4, 0x7e, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x3e, 0xa9, 0x61, 0x31, 0xd0, 0x27, 0x35, 0xd4, 0x6c, 0x50, 0x96, 0xbc, 0x6f, 0x50, 0xb8, 0x89, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x4f, 0x6a, 0xd8, 0x0d, 0xf4, 0x49, 0x0d, 0xcb, 0x83, 0xb2, 0xa9, 0x7e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x7d, 0x52, 0xc3, 0x74, 0xa0, 0x4f, 0x6a, 0x68, 0xd9, 0xf0, 0xb6, 0xce, 0x06, 0x8b, 0x07, 0xca, 0x37, 0x68, 0xee, 0x1b, 0xf7, 0xa0, 0x28, 0x8e, 0x6f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xa3, 0xd4, 0x90, 0x1e, 0x34, 0x68, 0xa9, 0xbb, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0x4a, 0x0d, 0x8b, 0x81, 0x46, 0xa9, 0xa1, 0x7b, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0x68, 0x94, 0x1a, 0x26, 0x03, 0x8d, 0x52, 0x43, 0xcf, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x47, 0x6b, 0x8d, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0x4a, 0x0d, 0xc3, 0x81, 0x46, 0xa9, 0x61, 0x7a, 0x50, 0x36, 0xd5, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x51, 0x6a, 0xd8, 0x0e, 0x34, 0x4a, 0x0d, 0x35, 0x07, 0x8d, 0xa6, 0xea, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x46, 0xa9, 0xa1, 0x68, 0xa0, 0x51, 0x6a, 0xa8, 0xde, 0xe0, 0xe8, 0x3a, 0xb8, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x28, 0x35, 0x34, 0x0d, 0x34, 0x4a, 0x0d, 0x75, 0x07, 0x6d, 0x7d, 0xbf, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x51, 0x6a, 0xe8, 0x1b, 0x68, 0x94, 0x1a, 0x8a, 0x0f, 0x5a, 0x59, 0xd4, 0xad, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x29, 0x35, 0xe4, 0x03, 0x9d, 0x52, 0x43, 0xc3, 0x06, 0x47, 0xd7, 0xc1, 0x35, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x4e, 0xa9, 0x61, 0x30, 0xd0, 0x29, 0x35, 0xac, 0x0e, 0xda, 0xfa, 0x7e, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xa7, 0xd4, 0x30, 0x1b, 0xe8, 0x94, 0x1a, 0xf6, 0x07, 0xad, 0x2c, 0xea, 0xd6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x56, 0xa9, 0x21, 0x3d, 0x68, 0xd0, 0x52, 0xf7, 0xa0, 0xa0, 0xc8, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x2b, 0x35, 0x24, 0x07, 0x4d, 0x05, 0xe3, 0x6e, 0x50, 0xec, 0x68, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x57, 0x6a, 0x48, 0x07, 0x7a, 0xa5, 0x86, 0xa2, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x57, 0x6a, 0x88, 0x07, 0x7a, 0xa5, 0x86, 0xf5, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x47, 0x6b, 0x8d, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xf4, 0x4a, 0x0d, 0xa3, 0x81, 0x5e, 0xa9, 0x61, 0x76, 0x50, 0x36, 0xd5, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x57, 0x6a, 0xd8, 0x0d, 0xf4, 0x4a, 0x0d, 0xe3, 0x83, 0xc6, 0x08, 0xcc, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xaf, 0xd4, 0x30, 0x1f, 0xe8, 0x95, 0x1a, 0x7a, 0x0e, 0x5a, 0x59, 0xd4, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xcd, 0x52, 0x43, 0x36, 0xd0, 0x2c, 0x35, 0x8c, 0x0e, 0x1a, 0x3f, 0xce, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x2d, 0x35, 0x24, 0x07, 0x4d, 0x05, 0xe3, 0x6e, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0xdd, 0x52, 0x43, 0x34, 0xd0, 0x2d, 0x35, 0xbc, 0xd8, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0xa5, 0x86, 0x6c, 0xa0, 0x5b, 0x6a, 0x48, 0x0f, 0x92, 0xd2, 0x82, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x2d, 0x35, 0xc4, 0x03, 0xdd, 0x52, 0xc3, 0x89, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x5b, 0x6a, 0xc8, 0x07, 0xba, 0xa5, 0x86, 0xd1, 0x41, 0xfb, 0x48, 0x04, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x96, 0x1a, 0x56, 0x03, 0xdd, 0x52, 0xc3, 0x87, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x5b, 0x6a, 0x98, 0x0d, 0x74, 0x4b, 0x0d, 0xd3, 0x83, 0x13, 0x41, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0xa5, 0x86, 0xed, 0x40, 0xb7, 0xd4, 0xd0, 0xb8, 0xe1, 0x59, 0xbc, 0xc1, 0xc9, 0xc1, 0xeb, 0xc1, 0xe1, 0xc1, 0xd9, 0xc1, 0xd3, 0xc1, 0xc7, 0xc1, 0xc3, 0xc1, 0xe9, 0xc1, 0xcb, 0x41, 0xc1, 0xe0, 0xe3, 0xe0, 0xe8, 0xe0, 0xe1, 0xe0, 0xf0, 0xe0, 0xf4, 0xe0, 0xe5, 0xe0, 0xf2, 0xa0, 0x7a, 0x50, 0x30, 0x38, 0xdf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0xa5, 0x86, 0xca, 0x81, 0x6e, 0xa9, 0xe1, 0xc2, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x2d, 0x35, 0x74, 0x0e, 0x74, 0x4b, 0x0d, 0xbd, 0x07, 0xcb, 0xb0, 0xdf, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x2d, 0x35, 0x14, 0x0f, 0x74, 0x4b, 0x0d, 0x0f, 0x0e, 0x5a, 0x59, 0xd4, 0xad, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xb7, 0xd4, 0x70, 0x63, 0xa0, 0x5b, 0x6a, 0xf8, 0x71, 0x50, 0x50, 0x64, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x5b, 0x6a, 0x38, 0x32, 0xd0, 0x2d, 0x35, 0x3c, 0x39, 0x28, 0x28, 0x32, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x30, 0x35, 0xfe, 0xa0, 0xb1, 0x52, 0xdc, 0x0d, 0x56, 0x08, 0x35, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x61, 0x6a, 0xc8, 0x06, 0x1a, 0xa6, 0x86, 0xfc, 0x60, 0x3d, 0x30, 0xe8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x3a, 0xa6, 0x86, 0x64, 0xa0, 0x63, 0x6a, 0x08, 0x37, 0xbc, 0xad, 0xb3, 0xc1, 0x4a, 0x94, 0xd0, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x32, 0x35, 0x24, 0x03, 0x9d, 0x53, 0x43, 0xb6, 0xc1, 0x0a, 0xa1, 0xa6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0xb4, 0x4c, 0x0d, 0xe9, 0x40, 0xcb, 0xd4, 0xb0, 0x38, 0x58, 0x57, 0x30, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0x9e, 0xa9, 0x21, 0x1b, 0x68, 0x9b, 0x1a, 0xd2, 0x0d, 0x56, 0x08, 0x35, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x67, 0x6a, 0xc8, 0x07, 0x7a, 0xa6, 0x86, 0xcd, 0xc1, 0x7a, 0x60, 0xd0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x34, 0x4d, 0x0d, 0xe9, 0x40, 0xd3, 0xd4, 0xb0, 0xde, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0x9a, 0xa6, 0x86, 0x78, 0xa0, 0x69, 0x6a, 0x98, 0x1c, 0xac, 0x99, 0x0d, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xd3, 0xd4, 0xb0, 0x19, 0x68, 0x9a, 0x1a, 0x76, 0x07, 0x4d, 0x06, 0xdf, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x69, 0x6a, 0x18, 0x0e, 0x34, 0x4d, 0x0d, 0xe3, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x77, 0x68, 0x69, 0x70, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x6b, 0x6a, 0x48, 0x07, 0xba, 0xa6, 0x86, 0xea, 0x0d, 0x56, 0x08, 0x35, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x48, 0x0d, 0xf3, 0x5e, 0xa0, 0x6b, 0x6a, 0x18, 0x0c, 0x74, 0x4d, 0x0d, 0xa3, 0x83, 0x15, 0x15, 0xa1, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x9a, 0x1a, 0x56, 0x03, 0x5d, 0x53, 0x43, 0xe1, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x35, 0x35, 0xcc, 0x06, 0xba, 0xa6, 0x86, 0xe9, 0xc1, 0x0a, 0xb4, 0xd5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0x4d, 0x0d, 0xdb, 0x81, 0xae, 0xa9, 0xa1, 0x60, 0x83, 0x42, 0x30, 0x75, 0x83, 0x75, 0x71, 0x47, 0x6b, 0x90, 0x1a, 0xe6, 0xbd, 0x40, 0xd7, 0xd4, 0x30, 0x3e, 0x68, 0x58, 0x79, 0xf7, 0xa0, 0x19, 0x2f, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xa9, 0x61, 0xde, 0x0b, 0x74, 0x4d, 0x0d, 0x0d, 0x03, 0x5d, 0x53, 0x43, 0xdf, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x35, 0x35, 0x54, 0x0c, 0x74, 0x4d, 0x0d, 0x35, 0x07, 0x2b, 0xd0, 0x56, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x35, 0x35, 0xf4, 0x0c, 0x74, 0x4d, 0x0d, 0x4d, 0x07, 0x49, 0x69, 0xc1, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x52, 0xc3, 0xbc, 0x17, 0xe8, 0x9a, 0x1a, 0xaa, 0x06, 0xba, 0xa6, 0x86, 0xba, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0x38, 0x20, 0x6d, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0x20, 0x35, 0xcc, 0x7b, 0x81, 0xae, 0xa9, 0xa1, 0x71, 0xa0, 0x6b, 0x6a, 0x68, 0xde, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0xa6, 0x86, 0xca, 0x81, 0xae, 0xa9, 0xa1, 0xf6, 0x60, 0x05, 0x4a, 0xe9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd4, 0x30, 0xef, 0x05, 0xba, 0xa6, 0x86, 0xde, 0x81, 0xae, 0xa9, 0xa1, 0xf8, 0xa0, 0xa0, 0xc8, 0xac, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xa4, 0x86, 0x79, 0x2f, 0xd0, 0x37, 0x35, 0x64, 0x03, 0x7d, 0x53, 0x43, 0x7c, 0xb0, 0x42, 0xa4, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0x41, 0x6a, 0x98, 0xf7, 0x02, 0x8d, 0x53, 0x43, 0x36, 0xd0, 0x38, 0x35, 0xc4, 0x07, 0x4d, 0x00, 0xee, 0xd6, 0x0a, 0xf8, 0x65, 0x78, 0x70, 0xef, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x40, 0xf7, 0xec, 0x36, 0x38, 0x0f, 0x76, 0x6c, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xf6, 0x32, 0x65, 0x37, 0x68, 0x12, 0x82, 0xf6, 0xa0, 0x0d, 0x4f, 0xd9, 0xc3, 0x29, 0xd6, 0x02, 0x3e, 0x5a, 0x9a, 0x5b, 0xb9, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x0f, 0x6a, 0x65, 0x74, 0x2d, 0x68, 0x69, 0x6e, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x68, 0x6f, 0x6f, 0x6e, 0x1b, 0x9c, 0x07, 0x3b, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0x41, 0x7b, 0x99, 0xb2, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x96, 0xd8, 0x6f, 0x3b, 0x68, 0xe7, 0x53, 0x76, 0x05, 0xfc, 0x32, 0x3c, 0xb8, 0x7c, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x1e, 0xd0, 0xde, 0xde, 0xdc, 0x40, 0xee, 0xd2, 0xe8, 0xd0, 0x40, 0xe8, 0xe4, 0xc2, 0xc6, 0xd2, 0xdc, 0xce, 0x36, 0x38, 0x0f, 0x76, 0x6c, 0xb8, 0xa4, 0x36, 0x68, 0x95, 0x53, 0x76, 0x0d, 0x5a, 0x51, 0x8a, 0x3d, 0x28, 0x72, 0x5a, 0x5b, 0x01, 0xbf, 0x0c, 0x0f, 0x0e, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0x8f, 0xbb, 0x34, 0xb7, 0x33, 0x16, 0x90, 0xad, 0xbb, 0x34, 0xb7, 0x33, 0x10, 0xb4, 0xb7, 0x37, 0xb7, 0xae, 0xb9, 0x0d, 0xce, 0x83, 0x1d, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x2d, 0xbe, 0xd9, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0x41, 0x5b, 0xc3, 0xb2, 0x1b, 0xb4, 0x75, 0x6b, 0xb9, 0x86, 0xb7, 0x75, 0x36, 0x68, 0xaf, 0x76, 0xb6, 0x9a, 0x05, 0xfc, 0x32, 0x3c, 0xb8, 0x7a, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x1e, 0xee, 0xd2, 0xdc, 0xce, 0x58, 0x40, 0xd0, 0xde, 0xde, 0xdc, 0x58, 0x40, 0xd0, 0xde, 0xde, 0xdc, 0xe6, 0x36, 0x38, 0x0f, 0x76, 0x6c, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb6, 0x86, 0x65, 0x37, 0x68, 0xeb, 0xd6, 0x72, 0x83, 0xa6, 0x37, 0x65, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x6d, 0xf1, 0xcd, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0x9a, 0x5d, 0xbe, 0xad, 0x0e, 0xa7, 0x58, 0x6b, 0xd0, 0x54, 0xc2, 0xec, 0x06, 0x2b, 0x84, 0x9a, 0xd6, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0x17, 0xba, 0x32, 0xb9, 0x36, 0x16, 0x90, 0x37, 0x38, 0xba, 0xb4, 0x37, 0xb7, 0x30, 0x36, 0x10, 0xb4, 0xb7, 0x37, 0xb7, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0x96, 0x2d, 0x6a, 0x1b, 0x34, 0x18, 0x3a, 0xbb, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x3b, 0x0e, 0xba, 0xc1, 0xda, 0x17, 0xd2, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x7a, 0x60, 0xd0, 0x0d, 0x9a, 0x61, 0xb8, 0x5c, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x1d, 0x07, 0x5d, 0xc3, 0xdb, 0x3a, 0x03, 0x7e, 0x5b, 0xdd, 0xd8, 0xda, 0x41, 0x3b, 0x9f, 0xb2, 0xd5, 0xe1, 0x14, 0x5b, 0xc0, 0xa7, 0xc3, 0x43, 0xc3, 0x37, 0x38, 0x0f, 0x76, 0x6c, 0x50, 0x74, 0x1a, 0x6f, 0xb0, 0xac, 0x12, 0x74, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0x78, 0x78, 0xb0, 0x80, 0x66, 0xfa, 0xa0, 0xa9, 0xef, 0xdb, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x59, 0xf2, 0xbe, 0x06, 0xeb, 0x5d, 0x9e, 0x3a, 0x68, 0x9c, 0xfc, 0xf6, 0xf0, 0xd0, 0xcf, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x68, 0x6b, 0x58, 0x76, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0x1e, 0xbc, 0x6c, 0x07, 0xad, 0xab, 0xdf, 0xae, 0x80, 0x2f, 0x17, 0x36, 0xb6, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0xcf, 0x96, 0x36, 0x47, 0x07, 0xb2, 0x85, 0xf6, 0xf6, 0xe6, 0x06, 0x82, 0xf6, 0xf6, 0xe6, 0xd6, 0xb5, 0xe1, 0xdd, 0x9e, 0x0d, 0xd6, 0xcc, 0x86, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0x1a, 0x2d, 0x9f, 0xed, 0xa0, 0x61, 0xc9, 0xd9, 0x15, 0xf0, 0xcb, 0xf0, 0xe2, 0xca, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0x78, 0x63, 0x4b, 0x9b, 0xa3, 0x03, 0x79, 0x33, 0x03, 0x71, 0x0b, 0x6b, 0x2b, 0x9b, 0x03, 0xa1, 0x43, 0x2b, 0x73, 0x03, 0x99, 0x83, 0x2b, 0x1b, 0xdb, 0xe0, 0x3c, 0xd8, 0xb1, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xda, 0xcb, 0x94, 0x5d, 0xc3, 0xdb, 0x3a, 0x03, 0x3e, 0x5b, 0x9e, 0x1b, 0xde, 0x41, 0x8b, 0x57, 0xb3, 0xb3, 0x80, 0x8f, 0x96, 0xe6, 0x76, 0x6e, 0x70, 0x1e, 0xec, 0xd8, 0x60, 0x85, 0x50, 0xd3, 0x06, 0xeb, 0x81, 0x41, 0xd7, 0x60, 0x85, 0x50, 0xd3, 0x06, 0xed, 0x65, 0xca, 0x6e, 0xd0, 0xe8, 0xe1, 0xec, 0x41, 0xc3, 0x9b, 0xb2, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x15, 0x68, 0xab, 0x1b, 0x1e, 0xbc, 0xd9, 0xa0, 0x29, 0x4c, 0xd9, 0x3a, 0x9c, 0x62, 0x2d, 0xe0, 0xd3, 0xbd, 0x85, 0x91, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xed, 0xa7, 0xf2, 0x36, 0x00, 0x1f, 0x75, 0x6e, 0x74, 0x72, 0x61, 0x70, 0x20, 0x70, 0x61, 0x72, 0x73, 0x65, 0x72, 0x20, 0x65, 0x78, 0x70, 0x72, 0x1b, 0x14, 0xca, 0x9d, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x75, 0xbe, 0xa2, 0x1b, 0x04, 0xd0, 0xd9, 0x86, 0xb7, 0x75, 0x06, 0xfc, 0x32, 0x3c, 0xb8, 0xb0, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x01, 0x8f, 0xac, 0x4e, 0xde, 0xf0, 0x6e, 0xcf, 0x06, 0x0b, 0x35, 0x49, 0x37, 0x68, 0x9f, 0xe0, 0x72, 0x0d, 0x0f, 0x4a, 0x6e, 0x10, 0x80, 0x6c, 0x1b, 0x2e, 0xa9, 0x0d, 0x96, 0x68, 0x8b, 0xae, 0x41, 0x4b, 0xd5, 0xb2, 0x07, 0x05, 0x6c, 0x7e, 0x6d, 0x50, 0xec, 0x68, 0x6e, 0xd0, 0x1c, 0xb5, 0xec, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0x29, 0x5e, 0xde, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x7a, 0x60, 0xd0, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0xda, 0x71, 0xd0, 0x0d, 0x1a, 0xaa, 0x9a, 0x5d, 0xc3, 0x83, 0x92, 0x1b, 0x04, 0x20, 0xdb, 0x86, 0x4b, 0x6a, 0x83, 0x25, 0xda, 0xa2, 0x6b, 0xd0, 0x52, 0xb5, 0xec, 0x41, 0x91, 0xd3, 0x5a, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x1b, 0xac, 0x10, 0x29, 0x3d, 0x68, 0x04, 0x9a, 0x77, 0x83, 0x16, 0x91, 0x79, 0x5b, 0x01, 0xbf, 0x0c, 0x2f, 0x4e, 0xdc, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x83, 0xee, 0xee, 0x0d, 0x64, 0x0e, 0xae, 0x6c, 0x6c, 0x6e, 0x83, 0xf3, 0x60, 0xc7, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x68, 0x2f, 0x53, 0xf6, 0xa0, 0x85, 0xff, 0xd9, 0xd5, 0xa0, 0x4d, 0x63, 0xd9, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x56, 0xf7, 0xb2, 0xae, 0x41, 0x21, 0x98, 0x7a, 0xd0, 0x84, 0xad, 0xec, 0x06, 0xe7, 0xc1, 0x8e, 0x0d, 0x96, 0x43, 0x32, 0xcd, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x80, 0x77, 0x56, 0x27, 0x6e, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0x6d, 0xd0, 0x9c, 0x02, 0xe0, 0x1a, 0xfe, 0x5c, 0x1a, 0x5c, 0xdc, 0x20, 0x68, 0x7f, 0xd6, 0xf0, 0xb9, 0xd2, 0x06, 0x01, 0x1b, 0x74, 0xb0, 0x02, 0x00, 0x7a, 0x0d, 0x9f, 0x2b, 0x6d, 0x10, 0x46, 0x40, 0x07, 0x6b, 0x13, 0x9f, 0x6b, 0xc3, 0x5f, 0x34, 0x1b, 0x34, 0x61, 0x2b, 0xbb, 0x41, 0x90, 0x9e, 0x6e, 0x50, 0xf4, 0xd1, 0xae, 0x41, 0xc0, 0x06, 0x6d, 0xf8, 0xc5, 0x65, 0x83, 0x55, 0x60, 0xb2, 0x1b, 0x34, 0x92, 0xb5, 0xb9, 0x41, 0xa9, 0x2b, 0xda, 0x1a, 0x84, 0x11, 0xd0, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0xe6, 0x24, 0x7b, 0xd0, 0xa2, 0x40, 0x6f, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x03, 0xde, 0x5d, 0x1e, 0xbc, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x03, 0x83, 0xae, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0xb2, 0x4a, 0xd0, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x8b, 0xef, 0xbc, 0x6d, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x1b, 0x2c, 0xad, 0x67, 0x5d, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x1d, 0x07, 0xdd, 0x60, 0x31, 0xff, 0xe8, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x3d, 0x30, 0xe8, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x05, 0xda, 0xea, 0x06, 0xab, 0xc0, 0x64, 0x0f, 0x1a, 0xed, 0xc4, 0x5c, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x40, 0x5b, 0xdd, 0x60, 0x99, 0x93, 0xec, 0x41, 0x23, 0x0c, 0x97, 0xd5, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x05, 0xda, 0xea, 0x06, 0xab, 0xc0, 0x64, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x2b, 0xd0, 0x56, 0x37, 0x28, 0x28, 0x32, 0x0f, 0x1a, 0xed, 0xc4, 0x6c, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x02, 0x6d, 0x75, 0x83, 0x65, 0x4e, 0xb2, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x15, 0x68, 0xab, 0x1b, 0x14, 0x14, 0x99, 0x07, 0x8d, 0x30, 0x5c, 0xd6, 0x06, 0xc5, 0x8e, 0xe6, 0x06, 0xcd, 0x51, 0xcb, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0xda, 0x54, 0xe8, 0x6d, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x07, 0x06, 0xdd, 0xa0, 0x15, 0x9a, 0xde, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0xda, 0x71, 0xd0, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x8a, 0x8a, 0xd0, 0x0d, 0xda, 0xe3, 0xbe, 0xdc, 0x60, 0x31, 0xff, 0xe8, 0x41, 0x4b, 0x9a, 0x97, 0x6b, 0x50, 0x74, 0x1a, 0x6f, 0xb0, 0xac, 0x12, 0x74, 0x83, 0x26, 0x20, 0x7a, 0x37, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x8a, 0x8a, 0xd0, 0x0d, 0x96, 0xd6, 0xb3, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x8e, 0x83, 0x6e, 0xb0, 0x42, 0xa4, 0x74, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x1e, 0x18, 0x74, 0x83, 0x16, 0x36, 0x7a, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x2b, 0xd0, 0x56, 0x37, 0x58, 0xe6, 0x24, 0x7b, 0xd0, 0xbc, 0xe8, 0x65, 0xd5, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x05, 0xda, 0xea, 0x06, 0xcb, 0x9c, 0x64, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x2b, 0xd0, 0x56, 0x37, 0x28, 0x28, 0x32, 0x0f, 0x9a, 0x17, 0xbd, 0xac, 0x15, 0xf0, 0xcb, 0xf0, 0xe0, 0xe6, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0x78, 0x19, 0x63, 0x7b, 0x9b, 0x2b, 0x23, 0x03, 0x39, 0x0b, 0x83, 0x83, 0x2b, 0x23, 0x03, 0x41, 0x7b, 0x7b, 0x73, 0x9b, 0xdb, 0xe0, 0x3c, 0xd8, 0x71, 0xd0, 0xe8, 0x12, 0xef, 0xe1, 0x14, 0x5b, 0xc0, 0x2f, 0xc3, 0x8b, 0x0b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xf8, 0xdf, 0xdc, 0xca, 0x40, 0xe6, 0xe0, 0xca, 0xc6, 0x36, 0x38, 0x0f, 0x76, 0x1c, 0xb4, 0x79, 0x35, 0x7b, 0x38, 0xc5, 0xd6, 0x60, 0x45, 0xb2, 0xcf, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0x7e, 0x67, 0x61, 0x70, 0x70, 0x65, 0x64, 0x20, 0x73, 0x70, 0x65, 0x63, 0x73, 0x1b, 0xde, 0xed, 0xd9, 0x60, 0xcd, 0x6c, 0xe8, 0x06, 0x4d, 0x06, 0xdf, 0x1e, 0xb4, 0x78, 0x35, 0x7b, 0x38, 0xc5, 0x5a, 0x83, 0x86, 0xd7, 0x6d, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x1a, 0x5e, 0xb7, 0x6d, 0x00, 0xbc, 0x69, 0x7b, 0xb3, 0x2b, 0x9b, 0x03, 0x11, 0x0b, 0xa3, 0x1b, 0x43, 0x03, 0x19, 0x7b, 0x6b, 0x6b, 0x2b, 0x73, 0xa3, 0x9b, 0x03, 0xa1, 0x7b, 0x03, 0xa1, 0x43, 0x2b, 0x03, 0x19, 0x7b, 0x93, 0x93, 0x2b, 0x1b, 0xa3, 0x03, 0x09, 0x93, 0x6b, 0xdb, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0xb4, 0x79, 0x4d, 0xbb, 0x41, 0xe8, 0x97, 0x6c, 0x10, 0x52, 0x26, 0x1b, 0x2c, 0xdc, 0xf4, 0x6e, 0x0d, 0x7f, 0x2e, 0x6d, 0xd0, 0xce, 0x3b, 0xed, 0xc1, 0x5a, 0xd3, 0xee, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0x5a, 0xd3, 0xee, 0x0d, 0x5f, 0xe1, 0x6c, 0x50, 0xc2, 0x63, 0x6e, 0xd0, 0xa8, 0xbc, 0xed, 0x1a, 0xde, 0xd6, 0x39, 0x68, 0x54, 0xe3, 0x76, 0x83, 0x12, 0x1e, 0x73, 0x0d, 0x16, 0x3d, 0x61, 0x0f, 0x9e, 0x1e, 0x34, 0x2a, 0x6f, 0xbb, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0x8d, 0xca, 0xdb, 0x6e, 0x78, 0x5b, 0x67, 0x70, 0xfa, 0xa0, 0x51, 0x79, 0xdb, 0x36, 0x28, 0x48, 0x63, 0xd7, 0xf0, 0x7d, 0xfb, 0x80, 0xe7, 0xf6, 0xd6, 0x6e, 0x50, 0x42, 0xc7, 0x6e, 0xb0, 0xbe, 0x13, 0xfa, 0x20, 0x4c, 0xc7, 0xd6, 0xe0, 0xe4, 0x20, 0xb7, 0xe0, 0xe9, 0x41, 0xc3, 0x9a, 0xbd, 0x1b, 0x14, 0x14, 0x99, 0xab, 0x41, 0xb0, 0x99, 0xae, 0xe1, 0x73, 0xa5, 0x0d, 0x16, 0xce, 0x95, 0x1f, 0x1c, 0x62, 0x3a, 0xd6, 0xf0, 0xb9, 0xd2, 0x06, 0x2b, 0x07, 0xcb, 0x0f, 0x0e, 0x31, 0x1d, 0x6d, 0x70, 0x0c, 0x37, 0xd8, 0xf0, 0xb6, 0xce, 0xe0, 0xf0, 0x41, 0xbb, 0xa9, 0xbd, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x1b, 0xb4, 0xef, 0xd9, 0xbb, 0x06, 0x8d, 0x6a, 0xdc, 0x6e, 0x50, 0xc2, 0x63, 0xae, 0x41, 0x8b, 0xa4, 0xbd, 0x6d, 0xd0, 0xf2, 0x65, 0xef, 0x06, 0xc5, 0x8e, 0xe6, 0x1a, 0xde, 0xed, 0x59, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0xa3, 0xb5, 0xc6, 0x06, 0x65, 0x53, 0xfd, 0x06, 0x2d, 0x5f, 0xf6, 0xb6, 0x86, 0xb7, 0x75, 0x06, 0xaf, 0x0f, 0x5a, 0xdd, 0xed, 0x6d, 0x83, 0x96, 0x2f, 0x7b, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0x65, 0xc9, 0xfb, 0x1a, 0x14, 0x9a, 0x2a, 0x1d, 0xb4, 0x1f, 0xdc, 0xbb, 0x41, 0x3b, 0xc4, 0xbd, 0x6b, 0xf8, 0x45, 0x69, 0x83, 0x76, 0x5f, 0x35, 0x37, 0xfc, 0xe2, 0xb2, 0x41, 0xeb, 0x96, 0x04, 0x6b, 0xd0, 0xd8, 0x42, 0xc4, 0x86, 0xb7, 0x75, 0x0e, 0xda, 0xde, 0xec, 0x3d, 0x3c, 0xf4, 0x53, 0x2b, 0xe0, 0xcb, 0xd5, 0xb9, 0x95, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xed, 0x54, 0xf7, 0x36, 0x80, 0x8f, 0x58, 0x5d, 0x1a, 0x1b, 0x19, 0x88, 0x5c, 0x9d, 0x5b, 0xd9, 0x06, 0x85, 0x72, 0xe7, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0x94, 0x39, 0x01, 0x07, 0x4b, 0x53, 0x45, 0xd7, 0xf0, 0xe7, 0xd2, 0x80, 0x47, 0x57, 0x17, 0x1f, 0x84, 0xe9, 0xd8, 0x06, 0x6d, 0xd5, 0xf2, 0xb6, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x8e, 0x83, 0x6e, 0x90, 0x8e, 0x0e, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x81, 0xb6, 0xba, 0x86, 0xb7, 0x75, 0x36, 0x68, 0x69, 0xbc, 0xb7, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x68, 0x3f, 0x95, 0xb7, 0x83, 0xc6, 0xd3, 0xc9, 0x6a, 0x35, 0x68, 0x92, 0x05, 0x73, 0x83, 0x13, 0xfb, 0xcd, 0x06, 0x6b, 0x9a, 0x59, 0x37, 0x38, 0xb6, 0x39, 0x6e, 0xb0, 0x6c, 0x9a, 0x75, 0x83, 0x63, 0x9b, 0xe3, 0x06, 0x4b, 0xb4, 0x59, 0x37, 0x38, 0xba, 0x0e, 0xae, 0x41, 0x61, 0xa8, 0xba, 0xc1, 0xb2, 0x4b, 0xb8, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x76, 0x1c, 0x74, 0x83, 0x36, 0x04, 0x30, 0xd7, 0xe0, 0xc4, 0x7e, 0xb3, 0xc1, 0x9a, 0x66, 0xd6, 0x0d, 0x8e, 0x6d, 0x8e, 0x1b, 0x2c, 0x9b, 0x66, 0xdd, 0xe0, 0xd8, 0xe6, 0xb8, 0xc1, 0x12, 0x6d, 0xd6, 0x0d, 0x8e, 0xae, 0x83, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x25, 0x65, 0x73, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0x4e, 0x75, 0x6f, 0x1b, 0x2c, 0x64, 0x10, 0xdd, 0xa0, 0x35, 0x35, 0x83, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0x97, 0xe1, 0xc5, 0xc9, 0xd5, 0x1a, 0x7e, 0x71, 0xd9, 0x60, 0xbd, 0xf4, 0xdb, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0xbe, 0x5c, 0x9d, 0xdb, 0xdb, 0x06, 0x2d, 0xc1, 0x63, 0x6e, 0xd0, 0x56, 0xaf, 0xc1, 0x06, 0x05, 0x45, 0xe6, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0xd5, 0xed, 0xd9, 0x6a, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0xfc, 0x79, 0x76, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0x0c, 0x85, 0xef, 0x06, 0x6d, 0xf7, 0x65, 0x6e, 0xd0, 0x20, 0xdb, 0xc1, 0x41, 0xbb, 0x18, 0xbe, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0x56, 0xf4, 0xce, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0x54, 0xf0, 0xdd, 0x60, 0x21, 0x1c, 0xe9, 0x06, 0xad, 0x95, 0x1a, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0xda, 0x96, 0x9e, 0xad, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x8b, 0xf0, 0xe4, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x0d, 0x2a, 0xf8, 0x6e, 0xb0, 0xf6, 0x85, 0x74, 0x83, 0x76, 0xcd, 0x0d, 0x36, 0x68, 0x07, 0x97, 0xb7, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x6b, 0x36, 0xde, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x0d, 0x2a, 0xf8, 0x6e, 0xb0, 0x58, 0x28, 0x74, 0x83, 0x96, 0x25, 0x0e, 0x0e, 0x9a, 0x90, 0xf1, 0x6d, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0xfe, 0x8c, 0x76, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xa0, 0x82, 0xef, 0x06, 0xed, 0x71, 0x5f, 0x6e, 0xd0, 0xaa, 0xbe, 0xc1, 0x06, 0xad, 0x5d, 0x9b, 0xd6, 0x1a, 0x7e, 0x71, 0xd9, 0x60, 0xdd, 0x3a, 0xdc, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x41, 0x05, 0xdf, 0x0d, 0xd2, 0x68, 0x8f, 0x36, 0x68, 0xd1, 0xe4, 0x60, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x65, 0x78, 0x71, 0x63, 0xb5, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0xad, 0x3a, 0xbb, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x50, 0xc1, 0x77, 0x83, 0x06, 0xe0, 0x32, 0x37, 0x68, 0xd7, 0xe7, 0xe0, 0xa0, 0x39, 0x24, 0xdf, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x2b, 0x4f, 0x69, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x0d, 0x2a, 0xf8, 0x6e, 0xb0, 0x98, 0x7f, 0x74, 0x83, 0x66, 0xab, 0x0e, 0x0e, 0x9a, 0x43, 0xf2, 0x6d, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0x6c, 0x97, 0x76, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xa0, 0x82, 0xef, 0x06, 0x6d, 0x1f, 0x69, 0x6e, 0xd0, 0xde, 0xe0, 0xc1, 0x41, 0x13, 0x32, 0xbe, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0xd6, 0x9e, 0xd3, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0x54, 0xf0, 0xdd, 0x60, 0x85, 0x9f, 0xfa, 0x06, 0xad, 0xde, 0x18, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x9a, 0x5d, 0xe4, 0xad, 0x6a, 0x0d, 0x0a, 0x43, 0xd5, 0x0d, 0xd6, 0x9e, 0xd3, 0x6e, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x1b, 0xac, 0xf0, 0x53, 0x5f, 0x83, 0x13, 0xfb, 0xcd, 0x06, 0x6b, 0x9a, 0x59, 0x37, 0x38, 0xb6, 0x39, 0x6e, 0xb0, 0x6c, 0x9a, 0x75, 0x83, 0x63, 0x9b, 0xe3, 0x06, 0x4b, 0xb4, 0x59, 0x37, 0x38, 0xba, 0x0e, 0xae, 0xe1, 0x17, 0x97, 0x0d, 0x96, 0x3f, 0xcf, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x56, 0xa0, 0xad, 0x6e, 0xd0, 0x42, 0x9e, 0xc2, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x41, 0x05, 0xdf, 0x0d, 0xda, 0xee, 0xcb, 0xdc, 0xa0, 0x59, 0xd3, 0x89, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xd3, 0xdb, 0xbc, 0x55, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x25, 0x65, 0x73, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x15, 0x68, 0xab, 0x1b, 0xb4, 0x90, 0xa7, 0xb0, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x50, 0xc1, 0x77, 0x83, 0x85, 0x0c, 0xa2, 0x1b, 0xb4, 0x7f, 0x25, 0x71, 0xd0, 0x84, 0x8c, 0x6f, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0x56, 0xf4, 0xce, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x56, 0xa0, 0xad, 0x6e, 0xd0, 0x42, 0x9e, 0xc2, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x41, 0x05, 0xdf, 0x0d, 0x16, 0xc2, 0x91, 0x6e, 0xd0, 0xf4, 0x9a, 0xc4, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0xfd, 0xb8, 0xd9, 0xaa, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0x7a, 0xe9, 0xb7, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x0a, 0xb4, 0xd5, 0x0d, 0x5a, 0xc8, 0x53, 0x58, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0xa8, 0xe0, 0xbb, 0x41, 0x4b, 0xf0, 0x98, 0x1b, 0x34, 0x9e, 0x28, 0x71, 0xd0, 0x8e, 0xa5, 0x6f, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0x16, 0x45, 0xd3, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x56, 0xa0, 0xad, 0x6e, 0xd0, 0x42, 0x9e, 0xc2, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x41, 0x05, 0xdf, 0x0d, 0x56, 0x45, 0x89, 0x6e, 0xd0, 0x32, 0xad, 0xc4, 0x41, 0x03, 0x80, 0xbe, 0xb5, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0xe3, 0x43, 0xbb, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x81, 0xb6, 0xba, 0x41, 0x0b, 0x79, 0x0a, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x06, 0x15, 0x7c, 0x37, 0x58, 0xba, 0x25, 0xba, 0x41, 0xdb, 0x02, 0x12, 0x07, 0x0d, 0x00, 0xfa, 0xd6, 0x1a, 0x7e, 0x71, 0xd9, 0x60, 0xd9, 0x25, 0xdc, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x05, 0xda, 0xea, 0x06, 0x2d, 0xe4, 0x29, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0x54, 0xf0, 0xdd, 0xa0, 0x0d, 0x01, 0xcc, 0x0d, 0xda, 0x07, 0x92, 0x38, 0x68, 0x0e, 0xc9, 0xb7, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xcb, 0x23, 0xe1, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x2b, 0xd0, 0x56, 0x37, 0x68, 0x21, 0x4f, 0x61, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xa0, 0x82, 0xef, 0x06, 0x8d, 0xcd, 0x5f, 0x6e, 0xd0, 0x26, 0xd2, 0xc4, 0x41, 0x73, 0x48, 0xbe, 0xb5, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0x7f, 0x46, 0xbb, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x81, 0xb6, 0xba, 0x41, 0x0b, 0x79, 0x0a, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x06, 0x15, 0x7c, 0x37, 0x68, 0x8f, 0xfb, 0x72, 0x83, 0x86, 0xc5, 0x25, 0x0e, 0x1a, 0x00, 0xf4, 0xad, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0xba, 0x75, 0xb8, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x0a, 0xb4, 0xd5, 0x0d, 0x5a, 0xc8, 0x53, 0x58, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0xa8, 0xe0, 0xbb, 0x41, 0x1a, 0xed, 0xd1, 0x06, 0xad, 0x7e, 0x4d, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0xbf, 0x0c, 0x2f, 0x8e, 0xac, 0x5a, 0xc3, 0x2f, 0x2e, 0x1b, 0xac, 0xd9, 0x78, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x40, 0x5b, 0xdd, 0xa0, 0x85, 0x3c, 0x85, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x83, 0x0a, 0xbe, 0x1b, 0x2c, 0x16, 0x0a, 0xdd, 0xa0, 0xed, 0x65, 0x89, 0x83, 0x06, 0x00, 0x7d, 0x6b, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0xf2, 0x94, 0x76, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x02, 0x6d, 0x75, 0x83, 0x16, 0xf2, 0x14, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x0d, 0x2a, 0xf8, 0x6e, 0xb0, 0x98, 0x7f, 0x74, 0x83, 0x86, 0x1d, 0x27, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x8d, 0x19, 0xcf, 0x56, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0x96, 0xed, 0xd2, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x56, 0xa0, 0xad, 0x6e, 0xd0, 0x42, 0x9e, 0xc2, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x41, 0x05, 0xdf, 0x0d, 0xda, 0x3e, 0xd2, 0xdc, 0xa0, 0xc1, 0xde, 0x89, 0x83, 0x76, 0x2c, 0x7d, 0x6b, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0xd0, 0xe1, 0x6d, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x02, 0x6d, 0x75, 0x83, 0x16, 0xf2, 0x14, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x0d, 0x2a, 0xf8, 0x6e, 0xb0, 0x0c, 0xc0, 0x74, 0x83, 0xa6, 0xf3, 0x25, 0x0e, 0x9a, 0xbe, 0xf7, 0xad, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0x22, 0x3c, 0xb9, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x83, 0x0a, 0xbe, 0x1b, 0xac, 0x7d, 0x21, 0xdd, 0xa0, 0xf5, 0x30, 0x85, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xc3, 0x65, 0xbd, 0xd5, 0x1a, 0x7e, 0x71, 0xd9, 0x60, 0x5d, 0xef, 0xdb, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x41, 0x05, 0xdf, 0x0d, 0x9a, 0x3e, 0xbe, 0xdc, 0xa0, 0x85, 0x3c, 0x85, 0x83, 0x06, 0x2b, 0x7e, 0xab, 0x35, 0x28, 0x0c, 0x55, 0x37, 0x58, 0x2f, 0xfd, 0xb6, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x8e, 0x83, 0x6e, 0xd0, 0x12, 0x3c, 0xe6, 0x1a, 0x9c, 0xd8, 0x6f, 0x36, 0x58, 0xd3, 0xcc, 0xba, 0xc1, 0xb1, 0xcd, 0x71, 0x83, 0x65, 0xd3, 0xac, 0x1b, 0x1c, 0xdb, 0x1c, 0x37, 0x58, 0xa2, 0xcd, 0xba, 0xc1, 0xd1, 0x75, 0x70, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0xa4, 0x6c, 0x6e, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xa0, 0x82, 0xef, 0x06, 0x0b, 0x19, 0x44, 0x37, 0x68, 0x36, 0x07, 0x61, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0x44, 0x0b, 0x6f, 0xb5, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0x84, 0x27, 0xb7, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x50, 0xc1, 0x77, 0x83, 0xb5, 0x2f, 0xa4, 0x1b, 0x34, 0x2b, 0x86, 0x70, 0xd0, 0x66, 0x8a, 0x6f, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xf5, 0x67, 0xb4, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x06, 0x15, 0x7c, 0x37, 0x68, 0x8f, 0xfb, 0x72, 0x83, 0x96, 0x9c, 0x11, 0xd6, 0xf0, 0xb6, 0xce, 0x80, 0x5f, 0x86, 0x07, 0x47, 0x56, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x85, 0x0e, 0x6f, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x06, 0x15, 0x7c, 0x37, 0x58, 0x06, 0x60, 0xba, 0x41, 0x7b, 0xeb, 0x08, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xd6, 0x21, 0x65, 0xab, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0x9a, 0x8d, 0xb7, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x83, 0x0a, 0xbe, 0x1b, 0x2c, 0x16, 0x0a, 0xdd, 0xa0, 0xd9, 0x3c, 0x84, 0x83, 0x36, 0x53, 0x7c, 0x5b, 0xc3, 0x2f, 0x2e, 0x1b, 0xac, 0xe8, 0x9d, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0xa8, 0xe0, 0xbb, 0xc1, 0x42, 0x38, 0xd2, 0x0d, 0x9a, 0x85, 0x44, 0x58, 0xc3, 0xdb, 0x3a, 0x03, 0x7e, 0x19, 0x1e, 0x5c, 0x5a, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0xd6, 0xad, 0xc3, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0x54, 0xf0, 0xdd, 0x20, 0x8d, 0xf6, 0x68, 0x83, 0x06, 0x0b, 0x12, 0xd6, 0xf0, 0xb6, 0xce, 0x80, 0x5f, 0x86, 0x07, 0xe7, 0x56, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xd5, 0xaa, 0xb3, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x06, 0x15, 0x7c, 0x37, 0x68, 0x00, 0x2e, 0x73, 0x83, 0x96, 0x5a, 0x11, 0xd6, 0xf0, 0xb6, 0xce, 0x80, 0x5f, 0x86, 0x07, 0xd7, 0x56, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x95, 0xa7, 0xb4, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x06, 0x15, 0x7c, 0x37, 0x58, 0xcc, 0x3f, 0xba, 0x41, 0x73, 0x26, 0x09, 0x07, 0xcd, 0xc9, 0xfc, 0x56, 0x6b, 0x50, 0x18, 0xaa, 0x6e, 0xb0, 0xa2, 0x77, 0x76, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x1d, 0x07, 0xdd, 0x60, 0x21, 0x1c, 0xe9, 0x1a, 0x9c, 0xd8, 0x6f, 0x36, 0x58, 0xd3, 0xcc, 0xba, 0xc1, 0xb1, 0xcd, 0x71, 0x83, 0x65, 0xd3, 0xac, 0x1b, 0x1c, 0xdb, 0x1c, 0x37, 0x58, 0xa2, 0xcd, 0xba, 0xc1, 0xd1, 0x75, 0x70, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0xa4, 0x6c, 0x6e, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xa0, 0x82, 0xef, 0x06, 0x0b, 0x19, 0x44, 0x37, 0x68, 0xea, 0xf2, 0xe0, 0xa0, 0xcd, 0x14, 0xdf, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xeb, 0xcf, 0x68, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x0d, 0x2a, 0xf8, 0x6e, 0xd0, 0x1e, 0xf7, 0xe5, 0x06, 0x8d, 0xb9, 0x1e, 0x1c, 0x34, 0x25, 0xf4, 0xdb, 0x1a, 0x7e, 0x71, 0xd9, 0x60, 0xa1, 0xc3, 0xdb, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x41, 0x05, 0xdf, 0x0d, 0x96, 0x01, 0x98, 0x6e, 0xd0, 0x98, 0xfc, 0xc1, 0x41, 0x0b, 0x4b, 0xbf, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0xd6, 0x6c, 0xbc, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0x54, 0xf0, 0xdd, 0x60, 0xb1, 0x50, 0xe8, 0x06, 0xad, 0x6d, 0x1f, 0x1c, 0xb4, 0x99, 0xe2, 0xdb, 0x1a, 0x7e, 0x71, 0xd9, 0x60, 0xdd, 0x3a, 0xdc, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x41, 0x05, 0xdf, 0x0d, 0xd2, 0x68, 0x8f, 0x36, 0x68, 0x40, 0x02, 0x61, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0x9c, 0x56, 0x6f, 0xb5, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0xad, 0x3a, 0xbb, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x50, 0xc1, 0x77, 0x83, 0x06, 0xe0, 0x32, 0x37, 0x68, 0xbe, 0x04, 0xe1, 0xa0, 0x79, 0xd3, 0xdf, 0x6a, 0x0d, 0x0a, 0x43, 0xd5, 0x0d, 0x16, 0xe1, 0xc9, 0x6d, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x1b, 0xac, 0x7d, 0x21, 0x5d, 0x83, 0x13, 0xfb, 0xcd, 0x06, 0x6b, 0x9a, 0x59, 0x37, 0x38, 0xb6, 0x39, 0x6e, 0xb0, 0x6c, 0x9a, 0x75, 0x83, 0x63, 0x9b, 0xe3, 0x06, 0x4b, 0xb4, 0x59, 0x37, 0x38, 0xba, 0x0e, 0xae, 0xe1, 0x17, 0x97, 0x0d, 0x16, 0x3a, 0xbc, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0x54, 0xf0, 0xdd, 0x60, 0x19, 0x80, 0xe9, 0x06, 0xcd, 0x50, 0x25, 0x1c, 0x34, 0x21, 0xe3, 0xdb, 0x1a, 0x7e, 0x71, 0xd9, 0x60, 0xb5, 0xea, 0xec, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x41, 0x05, 0xdf, 0x0d, 0x1a, 0x80, 0xcb, 0xdc, 0xa0, 0xf9, 0xb3, 0x84, 0x83, 0x36, 0x53, 0x7c, 0x5b, 0xc3, 0x2f, 0x2e, 0x1b, 0xac, 0x3c, 0xa5, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0xa8, 0xe0, 0xbb, 0xc1, 0x62, 0xfe, 0xd1, 0x0d, 0x1a, 0xf8, 0x4b, 0x38, 0x68, 0x33, 0xc5, 0xb7, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0xb2, 0x5d, 0xda, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x83, 0x0a, 0xbe, 0x1b, 0xb4, 0x7d, 0xa4, 0xb9, 0x41, 0xd3, 0x95, 0x09, 0x07, 0x4d, 0xc8, 0xf8, 0xb6, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0x7f, 0x46, 0xbb, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x50, 0xc1, 0x77, 0x83, 0xf6, 0xb8, 0x2f, 0x37, 0x68, 0xa4, 0x27, 0x61, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x65, 0x78, 0x71, 0x6e, 0x55, 0x6b, 0x50, 0x18, 0xaa, 0x6e, 0xb0, 0xfe, 0x8c, 0x76, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x1d, 0x07, 0xdd, 0xa0, 0x3d, 0xee, 0xcb, 0x35, 0x38, 0xb1, 0xdf, 0x6c, 0xb0, 0xa6, 0x99, 0x75, 0x83, 0x63, 0x9b, 0xe3, 0x06, 0xcb, 0xa6, 0x59, 0x37, 0x38, 0xb6, 0x39, 0x6e, 0xb0, 0x44, 0x9b, 0x75, 0x83, 0xa3, 0xeb, 0xe0, 0x1a, 0x7e, 0x71, 0xd9, 0x60, 0xd9, 0x25, 0xdc, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x41, 0x05, 0xdf, 0x0d, 0xda, 0x10, 0xc0, 0xdc, 0xa0, 0xe9, 0xd4, 0x84, 0x83, 0x26, 0x64, 0x7c, 0x5b, 0xc3, 0x2f, 0x2e, 0x1b, 0x2c, 0xc2, 0x93, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0xa8, 0xe0, 0xbb, 0xc1, 0xda, 0x17, 0xd2, 0x0d, 0x5a, 0xee, 0x4d, 0x38, 0x68, 0x33, 0xc5, 0xb7, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0x9a, 0x8d, 0xb7, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x83, 0x0a, 0xbe, 0x1b, 0x2c, 0x16, 0x0a, 0xdd, 0xa0, 0xcd, 0xf5, 0x84, 0x83, 0xe6, 0x90, 0x7c, 0x5b, 0xc3, 0x2f, 0x2e, 0x1b, 0x2c, 0x74, 0x78, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0xa8, 0xe0, 0xbb, 0xc1, 0x32, 0x00, 0xd3, 0x0d, 0x5a, 0xa6, 0x4e, 0x38, 0x68, 0x33, 0xc5, 0xb7, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0xf2, 0x48, 0xb8, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x83, 0x0a, 0xbe, 0x1b, 0x34, 0x36, 0x7f, 0xb9, 0x41, 0x6b, 0x02, 0x0a, 0x07, 0x4d, 0xc8, 0xf8, 0xb6, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0xb7, 0x0e, 0xb7, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x50, 0xc1, 0x77, 0x83, 0x34, 0xda, 0xa3, 0x0d, 0x5a, 0xb3, 0x50, 0x38, 0x68, 0x42, 0xc6, 0xb7, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0xca, 0x53, 0xda, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x83, 0x0a, 0xbe, 0x1b, 0x2c, 0xe6, 0x1f, 0xdd, 0xa0, 0x35, 0x15, 0x85, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0x97, 0xe1, 0xc1, 0xa9, 0xd5, 0x1a, 0x7e, 0x71, 0xd9, 0x60, 0xd9, 0x2e, 0xed, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x41, 0x05, 0xdf, 0x0d, 0xda, 0x3e, 0xd2, 0xdc, 0xa0, 0xf9, 0x26, 0x85, 0x83, 0x26, 0x64, 0x7c, 0x5b, 0xc3, 0x2f, 0x2e, 0x1b, 0xac, 0x56, 0x9d, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0xa8, 0xe0, 0xbb, 0x41, 0x03, 0x70, 0x99, 0x07, 0x8d, 0x51, 0xfc, 0xb6, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0xd1, 0x3b, 0xbb, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x50, 0xc1, 0x77, 0x83, 0x85, 0x70, 0xa4, 0x07, 0x8d, 0x73, 0xfc, 0x56, 0x6b, 0x50, 0x18, 0xaa, 0x6e, 0xb0, 0x6e, 0x1d, 0x6e, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x1d, 0x07, 0xdd, 0x20, 0x8d, 0xf6, 0x68, 0x0d, 0x4e, 0xec, 0x37, 0x1b, 0xac, 0x69, 0x66, 0xdd, 0xe0, 0xd8, 0xe6, 0xb8, 0xc1, 0xb2, 0x69, 0xd6, 0x0d, 0x8e, 0x6d, 0x8e, 0x1b, 0x2c, 0xd1, 0x66, 0xdd, 0xe0, 0xe8, 0x3a, 0xb8, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0x76, 0x09, 0xb7, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x50, 0xc1, 0x77, 0x83, 0x36, 0x04, 0x30, 0x37, 0x68, 0x99, 0x51, 0xe1, 0xa0, 0xcd, 0x14, 0xdf, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x6b, 0xcf, 0x69, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x0d, 0x2a, 0xf8, 0x6e, 0xb0, 0xc2, 0x4f, 0x7d, 0x83, 0x06, 0xad, 0x16, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x4d, 0x5c, 0xce, 0x56, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x25, 0x65, 0x73, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x06, 0x15, 0x7c, 0x37, 0x58, 0xc8, 0x20, 0xba, 0x41, 0xdb, 0xa3, 0x0a, 0x07, 0x6d, 0xa6, 0xf8, 0xb6, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0x2f, 0xfd, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x50, 0xc1, 0x77, 0x83, 0x96, 0xe0, 0x31, 0x37, 0x68, 0x55, 0x57, 0x61, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x68, 0x69, 0x6e, 0x64, 0xb5, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0x1d, 0xd6, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x50, 0xc1, 0x77, 0x83, 0x05, 0x76, 0xa6, 0x1b, 0x34, 0x25, 0xaf, 0xb0, 0x86, 0xb7, 0x75, 0x36, 0x68, 0x2b, 0x82, 0xb7, 0x5a, 0xc3, 0x2f, 0x2e, 0x1b, 0x2c, 0x8a, 0xa6, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0xa8, 0xe0, 0xbb, 0xc1, 0xaa, 0x28, 0xd1, 0x0d, 0x1a, 0x52, 0x58, 0x58, 0xc3, 0xdb, 0x3a, 0x1b, 0xb4, 0xe3, 0x2f, 0x5b, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0xd6, 0xf8, 0xd0, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0x54, 0xf0, 0xdd, 0x60, 0xe9, 0x96, 0xe8, 0x06, 0x0d, 0xfe, 0x2c, 0x1c, 0x34, 0x5a, 0x07, 0xdc, 0x1a, 0x7e, 0x71, 0xd9, 0x60, 0xa1, 0xc3, 0xdb, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x41, 0x05, 0xdf, 0x0d, 0x96, 0x01, 0x98, 0x6e, 0xd0, 0xac, 0xdb, 0xc2, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xd1, 0xd2, 0xdc, 0xc6, 0x6a, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0x3c, 0x12, 0x6e, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xa0, 0x82, 0xef, 0x06, 0x8d, 0xcd, 0x5f, 0x6e, 0xd0, 0xfe, 0xe4, 0xc2, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0x61, 0xc0, 0xd9, 0x6a, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0x6c, 0x97, 0x76, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xa0, 0x82, 0xef, 0x06, 0x6d, 0x1f, 0x69, 0x6e, 0xd0, 0x78, 0xf4, 0xc2, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0x05, 0x4e, 0xde, 0x6a, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0xf2, 0x94, 0x76, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xa0, 0x82, 0xef, 0x06, 0x8b, 0xf9, 0x47, 0x37, 0x68, 0x5a, 0x77, 0xe1, 0xa0, 0xcd, 0x14, 0xdf, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x0b, 0x02, 0x69, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x0d, 0x2a, 0xf8, 0x6e, 0xd0, 0x2a, 0x2a, 0xe6, 0x06, 0xcd, 0xc0, 0x2f, 0x1c, 0xb4, 0x99, 0xe2, 0x5b, 0xad, 0x41, 0x61, 0xa8, 0xba, 0xc1, 0x7a, 0x91, 0xd9, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x76, 0x1c, 0x74, 0x83, 0x06, 0x88, 0x41, 0xd7, 0xe0, 0xc4, 0x7e, 0xb3, 0xc1, 0x9a, 0x66, 0xd6, 0x0d, 0x8e, 0x6d, 0x8e, 0x1b, 0x2c, 0x9b, 0x66, 0xdd, 0xe0, 0xd8, 0xe6, 0xb8, 0xc1, 0x12, 0x6d, 0xd6, 0x0d, 0x8e, 0xae, 0x83, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x15, 0xbd, 0xb3, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x06, 0x15, 0x7c, 0x37, 0x58, 0x08, 0x47, 0xba, 0x41, 0xbb, 0x28, 0x0c, 0x07, 0x8d, 0x6b, 0xfd, 0xb6, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0x1d, 0xd6, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x50, 0xc1, 0x77, 0x83, 0x05, 0x76, 0xa6, 0x1b, 0x34, 0xfc, 0xc3, 0x70, 0xd0, 0x84, 0x8c, 0x6f, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x45, 0xd1, 0xb4, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x06, 0x15, 0x7c, 0x37, 0x58, 0x15, 0x25, 0xba, 0x41, 0xc3, 0x53, 0x0c, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x56, 0x95, 0x68, 0xab, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0xba, 0x75, 0xb8, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x83, 0x0a, 0xbe, 0x1b, 0xa4, 0xd1, 0x1e, 0x6d, 0xd0, 0x84, 0x1c, 0xc3, 0x41, 0xe3, 0x5a, 0xbf, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0xd6, 0x8b, 0xcc, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0x54, 0xf0, 0xdd, 0xa0, 0x01, 0x62, 0xd0, 0x0d, 0x1a, 0x49, 0x64, 0x38, 0x68, 0x0e, 0xc9, 0xb7, 0x5a, 0x83, 0xc2, 0x50, 0x75, 0x83, 0x95, 0xa7, 0xb4, 0x1b, 0xac, 0x10, 0x6a, 0xda, 0x60, 0xed, 0x38, 0xe8, 0x06, 0x8b, 0xf9, 0x47, 0xd7, 0xe0, 0xc4, 0x7e, 0xb3, 0xc1, 0x9a, 0x66, 0xd6, 0x0d, 0x8e, 0x6d, 0x8e, 0x1b, 0x2c, 0x9b, 0x66, 0xdd, 0xe0, 0xd8, 0xe6, 0xb8, 0xc1, 0x12, 0x6d, 0xd6, 0x0d, 0x8e, 0xae, 0x83, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x65, 0x97, 0x70, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x06, 0x15, 0x7c, 0x37, 0x68, 0x43, 0x00, 0x73, 0x83, 0x66, 0x40, 0x19, 0x0e, 0x9a, 0x43, 0xf2, 0x6d, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0x08, 0x4f, 0x6e, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xa0, 0x82, 0xef, 0x06, 0x6b, 0x5f, 0x48, 0x37, 0x68, 0x29, 0xa1, 0x61, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0x26, 0xa8, 0x6c, 0xb5, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0xb6, 0x4b, 0xbb, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x50, 0xc1, 0x77, 0x83, 0xb6, 0x8f, 0x34, 0x37, 0x68, 0x8e, 0xa4, 0x61, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0xc6, 0xe9, 0x6c, 0xb5, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0x7f, 0x46, 0xbb, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x50, 0xc1, 0x77, 0x83, 0xf6, 0xb8, 0x2f, 0x37, 0x68, 0xef, 0xb0, 0xe1, 0xa0, 0x45, 0x0d, 0xad, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x2b, 0x7a, 0x67, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x0d, 0x2a, 0xf8, 0x6e, 0xb0, 0x10, 0x8e, 0x74, 0x83, 0x56, 0x6e, 0x19, 0xd6, 0xf0, 0xb6, 0xce, 0x80, 0x5f, 0x86, 0x07, 0x07, 0x57, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xd5, 0x61, 0x6d, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x06, 0x15, 0x7c, 0x37, 0x58, 0x60, 0x67, 0xba, 0x41, 0x03, 0xd4, 0x0c, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x56, 0x0e, 0x78, 0xab, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0x7a, 0x91, 0xd9, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x83, 0x0a, 0xbe, 0x1b, 0x34, 0x40, 0x0c, 0xba, 0x41, 0x2b, 0xef, 0x0c, 0x07, 0x2d, 0x5a, 0x04, 0xb7, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0x14, 0x4d, 0xbb, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x50, 0xc1, 0x77, 0x83, 0x55, 0x51, 0xa2, 0x1b, 0x34, 0x2b, 0xd4, 0x70, 0xd0, 0x66, 0x8a, 0x6f, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x35, 0x3e, 0xb4, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x06, 0x15, 0x7c, 0x37, 0x58, 0xba, 0x25, 0xba, 0x41, 0x83, 0x70, 0x0d, 0x07, 0x6d, 0xa6, 0xf8, 0xb6, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0xb3, 0xf1, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x50, 0xc1, 0x77, 0x83, 0xc5, 0x42, 0xa1, 0x1b, 0x34, 0x98, 0xd5, 0x70, 0xd0, 0x66, 0x8a, 0x6f, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xd5, 0xaa, 0xb3, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x06, 0x15, 0x7c, 0x37, 0x68, 0x00, 0x2e, 0x73, 0x83, 0xe6, 0xa9, 0x1b, 0xd6, 0xf0, 0xb6, 0xce, 0x80, 0x5f, 0x86, 0x07, 0x77, 0x56, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x75, 0xbd, 0x6f, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x06, 0x15, 0x7c, 0x37, 0x68, 0xfa, 0xf8, 0x72, 0x83, 0xc6, 0xfd, 0x1b, 0x0e, 0xda, 0x4c, 0xf1, 0x6d, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0xd0, 0xe1, 0x6d, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xa0, 0x82, 0xef, 0x06, 0xcb, 0x00, 0x4c, 0x37, 0x68, 0x44, 0xb5, 0xe1, 0xa0, 0xcd, 0x14, 0xdf, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xeb, 0xd6, 0xe1, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x0d, 0x2a, 0xf8, 0x6e, 0x90, 0x46, 0x7b, 0xb4, 0x41, 0xf3, 0xc0, 0x0d, 0x07, 0x8d, 0x6b, 0xfd, 0x56, 0x6b, 0x50, 0x18, 0xaa, 0x6e, 0xb0, 0x6c, 0x97, 0x76, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x1d, 0x07, 0xdd, 0xa0, 0xed, 0x23, 0xcd, 0x35, 0x38, 0xb1, 0xdf, 0x6c, 0xb0, 0xa6, 0x99, 0x75, 0x83, 0x63, 0x9b, 0xe3, 0x06, 0xcb, 0xa6, 0x59, 0x37, 0x38, 0xb6, 0x39, 0x6e, 0xb0, 0x44, 0x9b, 0x75, 0x83, 0xa3, 0xeb, 0xe0, 0x1a, 0x7e, 0x71, 0xd9, 0x60, 0xd9, 0x25, 0xdc, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x41, 0x05, 0xdf, 0x0d, 0xda, 0x10, 0xc0, 0xdc, 0xa0, 0xf9, 0x0a, 0x87, 0x83, 0xe6, 0x4d, 0x7f, 0x5b, 0xc3, 0x2f, 0x2e, 0x1b, 0xac, 0xe8, 0x9d, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0xa8, 0xe0, 0xbb, 0xc1, 0x42, 0x38, 0xd2, 0x0d, 0xda, 0x79, 0x72, 0x38, 0x68, 0x61, 0xe9, 0xb7, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0x22, 0x3c, 0xb9, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x83, 0x0a, 0xbe, 0x1b, 0xac, 0x7d, 0x21, 0xdd, 0xa0, 0x8d, 0x34, 0x87, 0x83, 0x16, 0x96, 0x7e, 0x5b, 0xc3, 0x2f, 0x2e, 0x1b, 0x2c, 0x8a, 0xa6, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0xa8, 0xe0, 0xbb, 0xc1, 0xaa, 0x28, 0xd1, 0x0d, 0x5a, 0xe9, 0x74, 0x38, 0x68, 0x33, 0xc5, 0xb7, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0x1a, 0x1f, 0xda, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x83, 0x0a, 0xbe, 0x1b, 0x2c, 0xdd, 0x12, 0xdd, 0xa0, 0xfd, 0x59, 0x87, 0x83, 0x36, 0x53, 0x7c, 0x5b, 0xc3, 0x2f, 0x2e, 0x1b, 0xac, 0xd9, 0x78, 0x5b, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x1d, 0x07, 0xdd, 0x60, 0xb1, 0x50, 0xe8, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x5d, 0xf7, 0xde, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xd3, 0xe1, 0xa1, 0xc1, 0x55, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xf5, 0x67, 0xb4, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x1b, 0xb4, 0xc7, 0x7d, 0xb9, 0x86, 0x77, 0x7b, 0x36, 0x68, 0xd7, 0xbd, 0x77, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x74, 0x6b, 0x6b, 0x74, 0xd5, 0x1a, 0x7e, 0x71, 0xd9, 0x60, 0xe5, 0x29, 0xed, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0xed, 0x38, 0xe8, 0x06, 0x8b, 0xf9, 0x47, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xed, 0xba, 0xf7, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0x1a, 0xb5, 0xbe, 0xad, 0x5a, 0xc3, 0x2f, 0x2e, 0x1b, 0x2c, 0x8b, 0xa4, 0x5d, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x1d, 0x07, 0xdd, 0x20, 0xcd, 0x4f, 0x75, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xae, 0x7b, 0xef, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0x41, 0x35, 0xde, 0xaa, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0x42, 0x87, 0xb7, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0xda, 0x71, 0xd0, 0x0d, 0x96, 0x01, 0x98, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0xda, 0x75, 0xef, 0x5d, 0xc3, 0xdb, 0x3a, 0x1b, 0xb4, 0x73, 0x46, 0x5b, 0xb5, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0x1e, 0x09, 0xb7, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x50, 0xc1, 0x77, 0x83, 0xc6, 0xe6, 0x2f, 0x37, 0x68, 0x7d, 0xdd, 0xe1, 0xa0, 0x79, 0xd3, 0xdf, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xcb, 0x9f, 0x67, 0xd7, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x6b, 0xc7, 0x41, 0x37, 0x68, 0xbb, 0x2f, 0x73, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xae, 0x7b, 0xef, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xe9, 0xd6, 0xec, 0xe8, 0xaa, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0xba, 0x75, 0xb8, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0xda, 0x71, 0xd0, 0x0d, 0xd2, 0x68, 0x8f, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xed, 0xba, 0xf7, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0x5a, 0x73, 0x95, 0xad, 0x5a, 0xc3, 0x2f, 0x2e, 0x1b, 0x2c, 0x08, 0xa4, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0xa8, 0xe0, 0xbb, 0x41, 0xab, 0xa8, 0x98, 0x1b, 0x34, 0x40, 0xf6, 0x70, 0xd0, 0x84, 0x8c, 0x6f, 0xb5, 0x06, 0x85, 0xa1, 0xea, 0x06, 0x0b, 0x02, 0x69, 0x37, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0xda, 0x71, 0xd0, 0x0d, 0x5a, 0x45, 0xc5, 0x5c, 0x83, 0x13, 0xfb, 0xcd, 0x06, 0x6b, 0x9a, 0x59, 0x37, 0x38, 0xb6, 0x39, 0x6e, 0xb0, 0x6c, 0x9a, 0x75, 0x83, 0x63, 0x9b, 0xe3, 0x06, 0x4b, 0xb4, 0x59, 0x37, 0x38, 0xba, 0x0e, 0xae, 0xe1, 0x17, 0x97, 0x0d, 0x56, 0xf4, 0xce, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x8e, 0x83, 0x6e, 0xb0, 0x10, 0x8e, 0x74, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xae, 0x7b, 0xef, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0xf1, 0x0f, 0xde, 0xaa, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0x22, 0x3c, 0xb9, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0xda, 0x71, 0xd0, 0x0d, 0xd6, 0xbe, 0x90, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0xda, 0x75, 0xef, 0x5d, 0x83, 0xf3, 0x60, 0xc7, 0x86, 0x4b, 0x6a, 0x83, 0x56, 0x39, 0x65, 0xd7, 0xa0, 0x15, 0xa5, 0xd8, 0x83, 0x02, 0x36, 0xbf, 0x6a, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0xae, 0xf7, 0x6d, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xa0, 0x82, 0xef, 0x06, 0x4d, 0x1f, 0x5f, 0x6e, 0xd0, 0xf0, 0xdd, 0xc3, 0x41, 0x9b, 0x29, 0xbe, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0xd6, 0x8b, 0xcc, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0x54, 0xf0, 0xdd, 0xa0, 0x01, 0x62, 0xd0, 0x0d, 0x1a, 0xcf, 0x7d, 0x38, 0x68, 0x33, 0xc5, 0xb7, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0x1a, 0x1f, 0xda, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x83, 0x0a, 0xbe, 0x1b, 0x2c, 0xdd, 0x12, 0xdd, 0xa0, 0x69, 0xc7, 0x87, 0x83, 0x26, 0x64, 0x7c, 0x5b, 0xc3, 0x2f, 0x2e, 0x1b, 0x2c, 0x8a, 0xa6, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0xa8, 0xe0, 0xbb, 0xc1, 0xaa, 0x28, 0xd1, 0x0d, 0x9a, 0x16, 0x7d, 0x38, 0x68, 0x0e, 0xc9, 0xb7, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0xf2, 0xe7, 0xd9, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x83, 0x0a, 0xbe, 0x1b, 0xb4, 0xdd, 0x97, 0xb9, 0x41, 0xf3, 0xe4, 0x0f, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x2f, 0xc3, 0x83, 0xc3, 0xab, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0xca, 0x53, 0xda, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x83, 0x0a, 0xbe, 0x1b, 0x2c, 0xe6, 0x1f, 0xdd, 0xa0, 0x79, 0xe8, 0x87, 0x83, 0x26, 0x64, 0x7c, 0x5b, 0xc3, 0x2f, 0x2e, 0x1b, 0x2c, 0xdb, 0xa5, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0xa8, 0xe0, 0xbb, 0x41, 0xdb, 0x47, 0x9a, 0x1b, 0x34, 0xdb, 0x00, 0xb1, 0x86, 0xb7, 0x75, 0x36, 0x68, 0x85, 0x5b, 0xb6, 0xaa, 0x56, 0xc0, 0x67, 0x7b, 0x6b, 0x83, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0xa4, 0xcb, 0x83, 0x2b, 0x0b, 0x13, 0x63, 0x2b, 0x03, 0x71, 0x0b, 0x6b, 0x2b, 0xdb, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x2b, 0x2a, 0x42, 0x37, 0x58, 0x5a, 0xcf, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x68, 0xff, 0x3e, 0xf3, 0xa0, 0x99, 0x1b, 0xce, 0x0e, 0xa7, 0xd8, 0x1a, 0xb4, 0x95, 0xc9, 0xbb, 0x41, 0x41, 0x1a, 0xbb, 0xc1, 0x59, 0xc8, 0x74, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x50, 0x93, 0x74, 0x83, 0xa6, 0x25, 0x2e, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x6b, 0x66, 0x43, 0x37, 0x58, 0xe3, 0x4c, 0x7a, 0xb0, 0xb0, 0x9e, 0xb5, 0x0d, 0x0a, 0xd2, 0xd8, 0x0d, 0x9a, 0x52, 0xda, 0x5a, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x2b, 0x18, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x99, 0x0d, 0x3d, 0x68, 0xf6, 0x69, 0xf6, 0xa0, 0x9d, 0xd5, 0xd5, 0x0d, 0x0a, 0xd2, 0xd8, 0x0d, 0xda, 0xff, 0xe8, 0x5c, 0x83, 0x13, 0xfb, 0xcd, 0x06, 0xcb, 0x2a, 0x41, 0x37, 0x58, 0x52, 0x9d, 0xb4, 0xc1, 0xd2, 0x7a, 0xd6, 0x0d, 0xbf, 0x28, 0x6d, 0xd0, 0x9c, 0x02, 0xe0, 0x86, 0xbf, 0x68, 0x36, 0x58, 0xfe, 0xef, 0xbd, 0xc1, 0xd1, 0x75, 0xf0, 0xf0, 0xd0, 0xcf, 0x06, 0x27, 0xf6, 0x9b, 0x0d, 0x96, 0x55, 0x82, 0x6e, 0xb0, 0xa4, 0x3a, 0x69, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x1e, 0x18, 0x74, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0x5f, 0xae, 0xce, 0x2d, 0x6e, 0x83, 0xd4, 0x4c, 0xd8, 0x83, 0x06, 0xc6, 0xb6, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0xed, 0x7f, 0x74, 0xd6, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xe1, 0xc1, 0xf2, 0x7f, 0xef, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x0f, 0xee, 0x6c, 0x10, 0x9e, 0xaa, 0x87, 0xa7, 0x75, 0x0e, 0xa7, 0x58, 0x6b, 0xd0, 0xca, 0xeb, 0xee, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x2b, 0xaf, 0xbb, 0x0d, 0xe0, 0x3d, 0x86, 0x16, 0x06, 0x47, 0x57, 0x26, 0x07, 0x42, 0x56, 0x36, 0xc6, 0x16, 0x26, 0x57, 0xb6, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0xb2, 0x4a, 0xd0, 0x35, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0x3c, 0x68, 0xc6, 0x0b, 0x73, 0x83, 0xd6, 0x9d, 0x2f, 0xd7, 0xf0, 0xe7, 0xd2, 0xe0, 0xe3, 0x41, 0x6b, 0x58, 0xae, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xc9, 0x83, 0xb5, 0xa6, 0xdd, 0x6d, 0xf8, 0x8b, 0x66, 0x0d, 0x9f, 0x2b, 0x6d, 0xd0, 0x8c, 0x17, 0xe6, 0x1a, 0x84, 0x7e, 0xc9, 0x06, 0xa5, 0x37, 0xfd, 0x06, 0xeb, 0xb5, 0x9e, 0x0f, 0x56, 0x9a, 0x76, 0xb7, 0x41, 0xb1, 0xa3, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x68, 0xa6, 0x0b, 0xf3, 0xf0, 0xb4, 0xce, 0x1a, 0x7e, 0x71, 0xd9, 0xf0, 0xb4, 0xce, 0x41, 0xd1, 0x2d, 0xbb, 0xe1, 0x83, 0x9c, 0x35, 0xfc, 0x9b, 0xb3, 0x41, 0x6b, 0x57, 0xae, 0x87, 0xa7, 0x77, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xcd, 0x74, 0x61, 0x1e, 0x14, 0xdd, 0xb2, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x24, 0xbc, 0xa4, 0x0d, 0x8a, 0x1a, 0xf1, 0x0d, 0x9a, 0xe9, 0xc2, 0x5c, 0x0d, 0x16, 0x0f, 0x94, 0xb7, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0x6a, 0x7d, 0x5d, 0x83, 0xa3, 0xeb, 0xe0, 0x1a, 0x7e, 0x71, 0x59, 0x83, 0xa3, 0xeb, 0xe0, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0xad, 0xef, 0xd7, 0xc3, 0x5b, 0x68, 0xad, 0xc1, 0xd1, 0x75, 0x70, 0x0d, 0xbf, 0xb8, 0x1c, 0x7e, 0x11, 0xaa, 0xea, 0xa0, 0xe8, 0x96, 0xdd, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x2b, 0x2a, 0x42, 0xd7, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0x01, 0x93, 0xd8, 0xd6, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x6b, 0xc7, 0x41, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x0b, 0x1f, 0x46, 0xd7, 0xf0, 0x23, 0xcc, 0xe0, 0x74, 0xf0, 0x2b, 0x7c, 0x1b, 0xac, 0x10, 0x29, 0x3d, 0x68, 0x76, 0x74, 0xb6, 0x0d, 0x1a, 0x42, 0xdf, 0x6d, 0x35, 0x68, 0x4d, 0xfc, 0x77, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xff, 0xb0, 0x3a, 0xba, 0xb7, 0xb1, 0x37, 0xb7, 0xb9, 0x32, 0x32, 0x10, 0xb4, 0xb7, 0x37, 0xb7, 0xb9, 0x0d, 0xce, 0x83, 0x1d, 0x1b, 0xac, 0x10, 0x6a, 0xda, 0xa0, 0xad, 0x61, 0xd9, 0x0d, 0xda, 0xbc, 0x9a, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x40, 0x5b, 0xdd, 0xa0, 0xf9, 0x12, 0x84, 0x83, 0x26, 0x97, 0x78, 0x5b, 0x0d, 0x5a, 0x24, 0xfb, 0xdd, 0xe0, 0x3c, 0xd8, 0xb1, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xda, 0x1a, 0x96, 0xdd, 0xa0, 0xad, 0x5b, 0xcb, 0x35, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xd0, 0xba, 0x4b, 0x73, 0x3b, 0x63, 0x01, 0x41, 0x7b, 0x7b, 0x73, 0x63, 0x1d, 0x34, 0xbd, 0x29, 0xbb, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0xfe, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x68, 0x6f, 0x6f, 0x6e, 0x1b, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x45, 0x45, 0xe8, 0x06, 0x4d, 0x6f, 0xca, 0x1e, 0x2c, 0x31, 0x29, 0x6d, 0xd6, 0xa0, 0x69, 0x34, 0xe1, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xa6, 0xd1, 0x84, 0x1b, 0x80, 0x97, 0xbb, 0x34, 0xb2, 0x32, 0x90, 0x37, 0x39, 0x10, 0xba, 0x30, 0x36, 0x36, 0x90, 0x34, 0x33, 0x10, 0xba, 0x37, 0xb6, 0x0d, 0x0a, 0xe5, 0xce, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x28, 0x63, 0x9b, 0x2b, 0x03, 0xb9, 0x4b, 0x23, 0x2b, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0xda, 0xe0, 0x2c, 0x64, 0x7a, 0xb0, 0x34, 0x55, 0x74, 0x0d, 0x7f, 0x2e, 0x6d, 0xd0, 0x94, 0xd2, 0xd6, 0xc1, 0xd2, 0x54, 0xd1, 0x36, 0x28, 0x76, 0x34, 0x37, 0x68, 0x8e, 0x5a, 0x76, 0x83, 0xd4, 0x4c, 0xd8, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x1e, 0x18, 0xf4, 0xa0, 0x19, 0x35, 0xe1, 0xc3, 0x29, 0xd6, 0x1a, 0xb4, 0xd8, 0x13, 0xbc, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x3f, 0x74, 0x65, 0x72, 0x6d, 0x2f, 0x73, 0x70, 0x65, 0x63, 0x2c, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x68, 0x6f, 0x6f, 0x6e, 0x73, 0x1b, 0x9c, 0x07, 0x3b, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0x41, 0x5b, 0xc3, 0xb2, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x86, 0x68, 0x84, 0x5b, 0xc3, 0xdb, 0x3a, 0x03, 0x3e, 0xdb, 0x1b, 0x1b, 0xdb, 0x41, 0x3b, 0x9f, 0xb2, 0x2b, 0xe0, 0x97, 0xe1, 0xc5, 0xe9, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0xa2, 0xbd, 0xbd, 0xb9, 0xb1, 0x80, 0xb8, 0x81, 0xcc, 0xc1, 0x95, 0x8d, 0xcd, 0x6d, 0x70, 0x1e, 0xec, 0xd8, 0x60, 0x85, 0x50, 0xd3, 0x06, 0xed, 0x65, 0xca, 0x6e, 0xd0, 0xf4, 0xa6, 0xec, 0x06, 0xcd, 0xed, 0xcd, 0xb6, 0x02, 0x7e, 0x19, 0x5e, 0x1c, 0xbe, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x37, 0xda, 0xdb, 0x9b, 0x1b, 0x0b, 0x08, 0xdd, 0xdd, 0x1b, 0xc8, 0x1c, 0x5c, 0xd9, 0xd8, 0xdc, 0x06, 0xe7, 0xc1, 0x8e, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xd0, 0x5e, 0xa6, 0xec, 0x06, 0x4d, 0x6f, 0xca, 0x1e, 0xb4, 0xf0, 0x3f, 0xbb, 0x1a, 0xb4, 0xfb, 0xe0, 0xbb, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x1f, 0x73, 0x70, 0x65, 0x63, 0x2f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x3f, 0x2f, 0x74, 0x61, 0x69, 0x6c, 0x1b, 0x9c, 0x07, 0x3b, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0x41, 0x5b, 0xc3, 0xb2, 0x1b, 0xb4, 0x79, 0x35, 0xbb, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x51, 0x11, 0xba, 0x86, 0xb7, 0x75, 0x06, 0xfc, 0xbb, 0xb0, 0x39, 0xb8, 0x0d, 0x9a, 0x14, 0x9f, 0xad, 0x59, 0x83, 0xc6, 0x34, 0x65, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0x69, 0xae, 0x0c, 0x2e, 0x4c, 0x2e, 0x8c, 0xee, 0x4d, 0x0e, 0x84, 0x2d, 0x6d, 0x8e, 0x0e, 0xc4, 0x04, 0x84, 0xec, 0x6d, 0x6c, 0x6e, 0x83, 0xe5, 0x90, 0x4c, 0xb3, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0xfb, 0xba, 0xdc, 0xa0, 0xc9, 0xe0, 0xdb, 0x0e, 0xa7, 0x58, 0x6b, 0xb0, 0x9c, 0x65, 0x7c, 0x83, 0x13, 0xfb, 0xcd, 0x06, 0x6b, 0x9a, 0x59, 0x37, 0x38, 0xb6, 0x39, 0x6e, 0xb0, 0x6c, 0x9a, 0x75, 0x83, 0x63, 0x9b, 0xe3, 0x06, 0x4b, 0xb4, 0x59, 0x37, 0x38, 0xba, 0x0e, 0xae, 0x41, 0x61, 0xa8, 0xba, 0xc1, 0xda, 0x73, 0xda, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x76, 0x1c, 0x74, 0x83, 0x15, 0x7e, 0xea, 0x6b, 0x70, 0x62, 0xbf, 0xd9, 0x60, 0x4d, 0x33, 0xeb, 0x06, 0xc7, 0x36, 0xc7, 0x0d, 0x96, 0x4d, 0xb3, 0x6e, 0x70, 0x6c, 0x73, 0xdc, 0x60, 0x89, 0x36, 0xeb, 0x06, 0x47, 0xd7, 0xc1, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0x8a, 0xde, 0xd9, 0x83, 0xf6, 0x23, 0x7d, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0xeb, 0xa5, 0xdf, 0x0e, 0x1a, 0xed, 0xf4, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0x2c, 0x8a, 0xa6, 0x3d, 0x68, 0x07, 0xd5, 0x77, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0xc6, 0x87, 0xf6, 0xa0, 0x65, 0x59, 0xdf, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0xfa, 0x33, 0xda, 0x83, 0x16, 0xa5, 0x7d, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0xeb, 0xd6, 0xe1, 0x0e, 0x1a, 0xe9, 0xf6, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0x2c, 0xbb, 0x84, 0x3b, 0x68, 0xab, 0xd7, 0x77, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0x3c, 0x12, 0xee, 0xa0, 0xf9, 0x63, 0xdf, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0xf2, 0xe7, 0xd9, 0x83, 0x76, 0xf7, 0x7c, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0x4b, 0xca, 0xe6, 0x0e, 0x5a, 0x3b, 0xf4, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0xac, 0xd9, 0x78, 0x3b, 0x68, 0x20, 0xdd, 0x77, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0xf2, 0x94, 0xf6, 0xa0, 0xc9, 0x79, 0xdf, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0xb2, 0x5d, 0xda, 0x83, 0x76, 0xfe, 0x7d, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0xeb, 0x45, 0x66, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x0d, 0x2a, 0xf8, 0x6e, 0xd0, 0x00, 0x31, 0xe8, 0x06, 0x6d, 0xd2, 0x4c, 0x1c, 0x34, 0x21, 0xe3, 0xdb, 0x1a, 0x7e, 0x71, 0xd9, 0x60, 0xa1, 0xc3, 0xdb, 0x41, 0xd3, 0x09, 0xbf, 0xb5, 0x06, 0x85, 0xa1, 0xea, 0x06, 0xeb, 0xa5, 0xdf, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0xda, 0x71, 0xd0, 0x0d, 0x5a, 0x82, 0xc7, 0x5c, 0x83, 0x13, 0xfb, 0xcd, 0x06, 0x6b, 0x9a, 0x59, 0x37, 0x38, 0xb6, 0x39, 0x6e, 0xb0, 0x6c, 0x9a, 0x75, 0x83, 0x63, 0x9b, 0xe3, 0x06, 0x4b, 0xb4, 0x59, 0x37, 0x38, 0xba, 0x0e, 0xae, 0x41, 0x61, 0xa8, 0xba, 0xc1, 0xfa, 0x33, 0xda, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x96, 0x55, 0x82, 0xae, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0x42, 0x05, 0xe9, 0x0d, 0xda, 0x7d, 0xd5, 0xdc, 0xa0, 0xfd, 0xa2, 0xd8, 0x35, 0xfc, 0xb9, 0x34, 0xf8, 0x78, 0xb0, 0xc0, 0x0a, 0x7a, 0x0d, 0x7f, 0x2e, 0x0d, 0x4e, 0x1e, 0x2c, 0xb0, 0x82, 0x6e, 0xc3, 0x2f, 0x2e, 0x1b, 0x34, 0xd3, 0x1a, 0xb1, 0xe1, 0x69, 0x9d, 0x0d, 0xef, 0x05, 0x6d, 0x78, 0x7a, 0x67, 0x83, 0x72, 0x5d, 0xf6, 0xa0, 0xac, 0xf3, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0x0d, 0x2a, 0xf8, 0x6e, 0xd0, 0x1e, 0xf7, 0xe5, 0x06, 0x2d, 0x39, 0x23, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0xda, 0x8c, 0x9f, 0xad, 0x35, 0x28, 0x0c, 0x55, 0x37, 0x58, 0xe8, 0xf0, 0xb6, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0xb2, 0x4a, 0xd0, 0x35, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0x36, 0x58, 0x8f, 0x21, 0xbd, 0x41, 0xbb, 0xaf, 0x9a, 0x1b, 0xb4, 0x5f, 0x14, 0xbb, 0x41, 0x13, 0xb0, 0xc3, 0x6d, 0xf8, 0xc5, 0x65, 0x83, 0x66, 0x5a, 0x23, 0x36, 0x3c, 0xad, 0xb3, 0xe1, 0xbd, 0xa0, 0x83, 0x65, 0xeb, 0xee, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x41, 0x05, 0xdf, 0x0d, 0x96, 0x01, 0x98, 0x6e, 0xd0, 0xde, 0x3a, 0xc2, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0x4d, 0x92, 0xe1, 0x5a, 0x83, 0xc2, 0x50, 0x75, 0x83, 0x35, 0x1b, 0x6f, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x2c, 0xab, 0x04, 0x5d, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x65, 0xd3, 0xd1, 0x1b, 0xb4, 0xfb, 0xaa, 0x79, 0xd0, 0x7a, 0x51, 0xec, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0xa6, 0x35, 0x62, 0xc3, 0xd3, 0x3a, 0x07, 0x47, 0x57, 0xac, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xa0, 0x82, 0xef, 0x06, 0x8b, 0x85, 0x42, 0x37, 0x68, 0x36, 0x0f, 0xe1, 0xa0, 0xad, 0x70, 0xdf, 0x35, 0x28, 0x0c, 0x55, 0x37, 0x58, 0x84, 0x27, 0xb7, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0xb2, 0x4a, 0xd0, 0x35, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0x36, 0x58, 0x51, 0x1c, 0xbd, 0x41, 0xf3, 0xdc, 0xb7, 0x07, 0xcd, 0xd6, 0x69, 0x6e, 0xf8, 0xc5, 0x65, 0x83, 0x66, 0x5a, 0x23, 0x36, 0xbc, 0x17, 0x74, 0xd0, 0x64, 0x52, 0xe6, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x50, 0xc1, 0x77, 0x83, 0xb5, 0x2f, 0xa4, 0x1b, 0x34, 0x2b, 0x86, 0x70, 0xd0, 0x1c, 0x92, 0xef, 0x1a, 0x14, 0x86, 0xaa, 0x1b, 0xac, 0xe8, 0x9d, 0xdd, 0xa0, 0xe8, 0x34, 0xde, 0x60, 0x59, 0x25, 0xe8, 0x1a, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x1b, 0xac, 0x0d, 0x8f, 0xde, 0xa0, 0xdd, 0x57, 0xcd, 0x35, 0xfc, 0xb9, 0x34, 0xb8, 0x78, 0xb0, 0xdc, 0xe3, 0xbb, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x4c, 0x6b, 0xc4, 0xe1, 0xf7, 0xb3, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xa0, 0x82, 0xef, 0x06, 0x0b, 0xe1, 0x48, 0x37, 0x68, 0x16, 0x12, 0x61, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0xfe, 0xc5, 0x70, 0xd5, 0x1a, 0x14, 0x86, 0xaa, 0x1b, 0x2c, 0x8b, 0xa4, 0xdd, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x6b, 0xc7, 0x41, 0x37, 0x48, 0xf3, 0x53, 0xdd, 0x60, 0x81, 0x9d, 0xe9, 0x1a, 0x14, 0x9d, 0xc6, 0x1b, 0xac, 0x40, 0x5b, 0xdd, 0xa0, 0xe9, 0x35, 0x89, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x96, 0x55, 0x82, 0xae, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0xa2, 0xe3, 0xef, 0x35, 0xfc, 0xb9, 0x34, 0x78, 0x79, 0xb0, 0xc0, 0x0a, 0xba, 0x0d, 0xbf, 0xb8, 0x6c, 0x50, 0x46, 0x9f, 0xaf, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0x29, 0x5e, 0xb0, 0x0d, 0x4e, 0x2d, 0x7d, 0x07, 0x65, 0xb6, 0x74, 0x1b, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x45, 0x45, 0xe8, 0x1a, 0x14, 0x9d, 0xc6, 0x1b, 0xac, 0x99, 0x0d, 0x5d, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0x2c, 0x3b, 0x06, 0x5d, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0xa8, 0x08, 0xdd, 0x60, 0x81, 0x9d, 0xe9, 0x41, 0x33, 0x78, 0x99, 0x07, 0xcb, 0xeb, 0x4c, 0x37, 0x38, 0xb1, 0xdf, 0x6c, 0xb0, 0xa6, 0x99, 0x75, 0x83, 0x63, 0x9b, 0xe3, 0x06, 0xcb, 0xa6, 0x59, 0x37, 0x38, 0xb6, 0x39, 0x6e, 0xb0, 0x44, 0x9b, 0x75, 0x83, 0xa3, 0xeb, 0xe0, 0x1a, 0x14, 0x86, 0xaa, 0x1b, 0xac, 0x12, 0x67, 0xdd, 0x60, 0x85, 0x50, 0xd3, 0x06, 0xeb, 0x81, 0x41, 0xd7, 0xa0, 0xe8, 0x34, 0xde, 0x60, 0x59, 0x25, 0xe8, 0x1a, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x1b, 0xac, 0x0b, 0x35, 0xdf, 0x60, 0xfd, 0xbb, 0x79, 0x1b, 0xfe, 0xa2, 0xd9, 0x60, 0x81, 0x15, 0xf4, 0x06, 0xe7, 0xfc, 0xa5, 0x0d, 0x9a, 0x5e, 0x93, 0x58, 0xc3, 0x2f, 0x2e, 0x1b, 0x9e, 0xb8, 0xdb, 0x60, 0x5d, 0x76, 0xdd, 0x06, 0xad, 0x3c, 0x57, 0xb4, 0xc1, 0x92, 0xea, 0xa4, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0xce, 0xf9, 0x4b, 0x1b, 0x34, 0xec, 0x38, 0xb1, 0x41, 0xbb, 0x2c, 0x05, 0x1b, 0x9c, 0x1c, 0xe4, 0x36, 0x58, 0x84, 0xd3, 0xbc, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0x40, 0xe5, 0xbd, 0x41, 0x93, 0x9a, 0x17, 0x07, 0xed, 0x34, 0x11, 0xaf, 0xc1, 0x51, 0xdf, 0xe4, 0xa0, 0xb1, 0x29, 0xcd, 0x35, 0x38, 0xed, 0x9d, 0x1c, 0xac, 0x91, 0xf2, 0x6e, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0xa8, 0x08, 0xdd, 0x60, 0x69, 0x3d, 0xeb, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0xed, 0x38, 0xe8, 0x06, 0x8b, 0xf9, 0x47, 0x37, 0x68, 0xbb, 0x2f, 0xf3, 0xa0, 0x09, 0xc3, 0xcc, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x2b, 0xd0, 0x56, 0x37, 0x3c, 0x71, 0xb7, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x81, 0xb6, 0xba, 0xc1, 0xba, 0xec, 0xba, 0x83, 0x16, 0xbd, 0x2f, 0x6b, 0x0d, 0x0a, 0x43, 0xd5, 0x0d, 0x96, 0x3f, 0xcf, 0x6e, 0x50, 0x74, 0x1a, 0x6f, 0xb0, 0xac, 0x12, 0x74, 0x0d, 0xbf, 0x28, 0x6d, 0xb0, 0xfe, 0xdd, 0x7c, 0xc3, 0x5f, 0x34, 0x1b, 0x2c, 0xb0, 0x82, 0xde, 0xe0, 0x9c, 0xbf, 0xb4, 0x41, 0xd3, 0x6b, 0x12, 0x1b, 0x34, 0xa7, 0x44, 0xbc, 0xc1, 0xd1, 0x75, 0x70, 0x83, 0xf6, 0xab, 0x88, 0xdb, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x6b, 0xc7, 0x41, 0x0f, 0x9a, 0x28, 0x23, 0x5e, 0x83, 0xc2, 0x50, 0x75, 0x83, 0x65, 0xbb, 0xb4, 0x1b, 0xde, 0xed, 0xd9, 0x60, 0x09, 0x4e, 0xe8, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0xe9, 0x35, 0x89, 0x35, 0xfc, 0xe2, 0xb2, 0xe1, 0x89, 0xbb, 0x0d, 0xd6, 0x65, 0xd7, 0x6d, 0x90, 0xe2, 0xe4, 0xd4, 0x06, 0x8d, 0x4d, 0x69, 0x1e, 0x94, 0x75, 0x9e, 0x07, 0x0d, 0x5a, 0x69, 0xae, 0x41, 0x61, 0xa8, 0xba, 0xc1, 0xba, 0x75, 0xb8, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x04, 0x27, 0x74, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0xf4, 0x9a, 0xc4, 0x1a, 0x7e, 0x71, 0xd9, 0xf0, 0xc4, 0xdd, 0x06, 0xeb, 0xb2, 0xeb, 0x0e, 0x16, 0x2b, 0xad, 0x6e, 0xb0, 0x46, 0xca, 0xfb, 0xa0, 0xac, 0xf3, 0x3c, 0x58, 0xfe, 0xc4, 0xda, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x3d, 0x30, 0xe8, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x09, 0x4e, 0xe8, 0x06, 0xcd, 0xd4, 0x65, 0x6e, 0xd0, 0xbc, 0x0b, 0x71, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x15, 0x28, 0xa5, 0x07, 0xcb, 0xa7, 0xbc, 0xab, 0x56, 0x83, 0x46, 0x82, 0x86, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x1a, 0x09, 0x1a, 0x6e, 0x00, 0x4f, 0x12, 0x31, 0xb9, 0x31, 0x31, 0x90, 0x30, 0xb6, 0xb4, 0xb0, 0xb9, 0xb2, 0xb9, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x1e, 0x18, 0x74, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x16, 0x6a, 0x92, 0xae, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x8a, 0x8a, 0xd0, 0x0d, 0x96, 0x01, 0x98, 0x6e, 0xd0, 0x00, 0x5c, 0xe6, 0x06, 0xcd, 0x98, 0xf1, 0x76, 0xd0, 0x8e, 0x2d, 0xf1, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x33, 0x1b, 0xba, 0x41, 0x33, 0x66, 0xbc, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb6, 0x86, 0x65, 0x37, 0x58, 0x5a, 0xcf, 0xba, 0x41, 0x73, 0x14, 0xc3, 0x75, 0xb0, 0xc4, 0xa4, 0xf4, 0x70, 0x8a, 0xad, 0x41, 0x1b, 0x67, 0xbc, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xf0, 0x70, 0x56, 0xe6, 0x56, 0x26, 0x17, 0xc6, 0x06, 0x32, 0x57, 0x06, 0x17, 0x26, 0x17, 0x46, 0xf7, 0x26, 0xb7, 0xe1, 0x83, 0x9c, 0x0d, 0x9a, 0xa3, 0x96, 0xdd, 0x60, 0x85, 0x48, 0xe9, 0xc1, 0x1a, 0x67, 0xd2, 0xc3, 0x29, 0xb6, 0x06, 0xed, 0x09, 0xdf, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0xc3, 0x5c, 0x19, 0x5c, 0x98, 0x5c, 0x18, 0xdd, 0x9b, 0x1c, 0xc8, 0xdd, 0x0b, 0x08, 0xd9, 0xdb, 0xd8, 0xdc, 0x86, 0x0f, 0x72, 0x36, 0x68, 0x8e, 0x5a, 0x76, 0x83, 0x86, 0xaa, 0x66, 0x0f, 0xd6, 0x38, 0x93, 0xae, 0x06, 0xad, 0x25, 0xf9, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x3b, 0x07, 0x57, 0x36, 0x06, 0x42, 0x87, 0x56, 0xe6, 0x06, 0x82, 0xf6, 0xf6, 0xe6, 0xb6, 0xc1, 0x79, 0xb0, 0x63, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xb4, 0x97, 0x29, 0xbb, 0x41, 0x9b, 0x57, 0xb3, 0x07, 0xed, 0x7c, 0xca, 0xae, 0x06, 0x0d, 0x11, 0xcb, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x3b, 0x57, 0x06, 0x17, 0x26, 0x17, 0x46, 0x57, 0x46, 0x06, 0xc2, 0x96, 0x36, 0x47, 0xb7, 0xc1, 0x72, 0x48, 0xa6, 0xd9, 0xf0, 0x6e, 0xcf, 0x06, 0x8d, 0x7d, 0x5d, 0x1e, 0xb4, 0x63, 0x4b, 0xbc, 0x1a, 0x34, 0x88, 0x35, 0xbb, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x73, 0xb0, 0xfa, 0x0a, 0x7a, 0xc3, 0x07, 0x39, 0x1b, 0x34, 0x47, 0x2d, 0xbb, 0x86, 0xb7, 0x75, 0x06, 0x7c, 0xba, 0x34, 0x36, 0xb6, 0x83, 0xb6, 0x30, 0x31, 0x57, 0x83, 0x96, 0xda, 0x7e, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0x67, 0xae, 0xcc, 0xae, 0x4c, 0x2e, 0x8c, 0x0d, 0x64, 0x6b, 0x0e, 0xae, 0x6c, 0x0c, 0x04, 0xed, 0xed, 0xcd, 0xad, 0x6b, 0x6e, 0x83, 0xf3, 0x60, 0xc7, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x8b, 0x6f, 0x76, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xd0, 0xd6, 0xb0, 0xec, 0x06, 0x6d, 0xdd, 0x5a, 0x6e, 0xd0, 0xf4, 0xa6, 0xec, 0x41, 0xab, 0x3b, 0xbc, 0x1d, 0x4e, 0xb1, 0x35, 0x68, 0xab, 0x62, 0x78, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x1e, 0xd0, 0xde, 0xde, 0xdc, 0x40, 0xee, 0xd2, 0xe8, 0xd0, 0xde, 0xea, 0xe8, 0x40, 0xc8, 0xde, 0xc6, 0xe6, 0x36, 0x7c, 0x90, 0xb3, 0x41, 0x73, 0xd4, 0xb2, 0x6b, 0xb8, 0xa4, 0x36, 0x68, 0x7b, 0xf4, 0x72, 0x0d, 0x5a, 0xa1, 0x72, 0x3d, 0x28, 0x60, 0xf3, 0xdb, 0x70, 0x49, 0x6d, 0xd0, 0x42, 0xc3, 0xe5, 0x41, 0x33, 0x19, 0xc5, 0x87, 0x53, 0xac, 0xd6, 0xa0, 0xbd, 0xc7, 0xe0, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0xf8, 0xa5, 0x4b, 0x5b, 0x4b, 0x03, 0x29, 0xc3, 0x83, 0x0b, 0x73, 0x9b, 0x4b, 0x7b, 0x73, 0x03, 0x31, 0x7b, 0x93, 0x03, 0x29, 0xb9, 0xa3, 0x03, 0x91, 0xab, 0x73, 0x2b, 0x9b, 0xdb, 0xe0, 0x3c, 0xd8, 0xb1, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0xb2, 0x4a, 0xd0, 0x35, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0x36, 0x68, 0x97, 0x56, 0x76, 0x0d, 0x7f, 0x2e, 0x0d, 0x2e, 0x1e, 0x2c, 0x8f, 0xb5, 0x6e, 0xc3, 0xbb, 0x3d, 0x6b, 0x50, 0x96, 0xbc, 0xaf, 0x41, 0x90, 0x9e, 0x76, 0xd0, 0xb6, 0xaf, 0xec, 0xe1, 0x2d, 0xb4, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0x16, 0xdf, 0xec, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0xa0, 0xad, 0x61, 0xd9, 0x0d, 0x9a, 0x2d, 0x96, 0x3d, 0x68, 0xb4, 0x8f, 0xb6, 0x15, 0xf0, 0xcf, 0xd8, 0xde, 0xe0, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0xf8, 0x98, 0x2b, 0x83, 0x0b, 0x93, 0x0b, 0xa3, 0x2b, 0x23, 0x03, 0x11, 0xcb, 0x03, 0x99, 0x83, 0x0b, 0x1b, 0x2b, 0xdb, 0x60, 0x39, 0x24, 0xd3, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0xc6, 0xbe, 0x2e, 0x37, 0x68, 0xe3, 0x77, 0xb6, 0xd5, 0xa0, 0x65, 0x87, 0xe0, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0xf8, 0xd8, 0xba, 0x4b, 0x73, 0x3b, 0x03, 0x41, 0x7b, 0x7b, 0x73, 0xeb, 0x9a, 0x63, 0x01, 0x41, 0x7b, 0x7b, 0x73, 0xdb, 0xe0, 0x3c, 0xd8, 0xb1, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xda, 0xcb, 0x94, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xb4, 0xc5, 0x37, 0x7b, 0xd0, 0xea, 0x0e, 0xef, 0x41, 0x3b, 0x9f, 0xb2, 0xb3, 0x06, 0x8d, 0xe4, 0xf2, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xf0, 0xbf, 0xb9, 0x95, 0x81, 0xa0, 0xbd, 0xbd, 0xb9, 0x6d, 0x70, 0x1e, 0xec, 0x38, 0x68, 0x7a, 0x53, 0xf6, 0x70, 0x8a, 0xad, 0x41, 0x1b, 0x15, 0xbe, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0x6d, 0x54, 0xf8, 0x36, 0x80, 0x87, 0x5c, 0x9d, 0x5b, 0x19, 0x08, 0x1c, 0x5b, 0xdd, 0xdc, 0x06, 0x85, 0x72, 0xe7, 0x1a, 0x3e, 0x57, 0xda, 0xa0, 0xb9, 0xef, 0xde, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0xa1, 0xa5, 0xb1, 0x07, 0x61, 0x3a, 0x76, 0xd0, 0x94, 0x78, 0xef, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x3b, 0x0e, 0xba, 0x41, 0x3a, 0x3a, 0xd4, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x05, 0xda, 0xea, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0xfd, 0xb6, 0xe2, 0x0e, 0x5a, 0x4d, 0xef, 0xed, 0x70, 0x8a, 0xad, 0x41, 0x6b, 0x99, 0xc1, 0x1b, 0x9c, 0x07, 0x3b, 0x36, 0x28, 0x3a, 0x8d, 0x37, 0x58, 0x56, 0x09, 0xba, 0x86, 0x5f, 0x94, 0x36, 0x68, 0x7a, 0x56, 0x76, 0xc3, 0xbb, 0x3d, 0x6b, 0x50, 0x96, 0xbc, 0xaf, 0x41, 0x31, 0x20, 0xdb, 0x41, 0xdb, 0xbe, 0xb2, 0x87, 0xe7, 0x82, 0x0e, 0x9a, 0x11, 0x96, 0x5d, 0x0d, 0xda, 0x23, 0x01, 0xde, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x73, 0x6e, 0x2d, 0xcd, 0x0d, 0x24, 0xcc, 0x8d, 0x0c, 0x04, 0xed, 0xed, 0xcd, 0x6d, 0x83, 0xf3, 0x60, 0xc7, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x68, 0x2f, 0x53, 0x76, 0x83, 0x06, 0xf7, 0x78, 0x0f, 0xda, 0xf9, 0x94, 0x5d, 0x0d, 0x5a, 0x1a, 0xfa, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0xc7, 0xec, 0xad, 0x4e, 0x0e, 0x04, 0xed, 0xed, 0xcd, 0x6d, 0x6e, 0x83, 0xf3, 0x60, 0xc7, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x68, 0x2f, 0x53, 0x76, 0x83, 0xa6, 0x37, 0x65, 0x0f, 0x1a, 0xde, 0x94, 0x5d, 0x0d, 0x9a, 0x33, 0x04, 0xde, 0xe0, 0x3c, 0xd8, 0xb1, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x03, 0x83, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xda, 0xcb, 0x94, 0x5d, 0xc3, 0xdb, 0x3a, 0x1b, 0xb4, 0x5f, 0x36, 0xdb, 0x41, 0x3b, 0x9f, 0xb2, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x15, 0x68, 0xab, 0x1b, 0x14, 0x14, 0x99, 0x07, 0xed, 0x7c, 0xca, 0x36, 0x0b, 0xf8, 0x62, 0x6f, 0x6e, 0xfa, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x6b, 0xac, 0xc5, 0x0d, 0xc0, 0x0b, 0x5d, 0x99, 0x5c, 0x5b, 0x0b, 0x5b, 0x98, 0x58, 0x19, 0x1b, 0x5b, 0x19, 0x19, 0x08, 0xda, 0xdb, 0x9b, 0xdb, 0xdc, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x0f, 0x0c, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x82, 0x13, 0xba, 0x41, 0x41, 0x91, 0x79, 0xb0, 0xfc, 0x89, 0x75, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x16, 0x6a, 0x92, 0xae, 0xe1, 0x83, 0x9c, 0x0d, 0x9a, 0xa3, 0x96, 0x5d, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x1b, 0xb4, 0x7b, 0xa5, 0x76, 0xd0, 0x92, 0xe6, 0xe5, 0x41, 0x3b, 0xab, 0xab, 0x07, 0xed, 0x13, 0x5c, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x75, 0xad, 0xa4, 0x1b, 0xb4, 0xf1, 0x3b, 0xbb, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x68, 0x6b, 0x58, 0xf6, 0xa0, 0xb9, 0xd0, 0xd9, 0x3a, 0x9c, 0x62, 0x6b, 0xd0, 0x5a, 0x19, 0xf0, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0xfc, 0xa8, 0x95, 0xd1, 0x81, 0xa0, 0xbd, 0xbd, 0xb9, 0x81, 0x88, 0x88, 0xbd, 0xb9, 0x89, 0xcc, 0x81, 0xa0, 0xbd, 0xbd, 0xb9, 0x6d, 0x70, 0x1e, 0xec, 0xd8, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x6d, 0x0d, 0xcb, 0x6e, 0xd0, 0x26, 0x07, 0xef, 0x06, 0x4d, 0x6f, 0xca, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xda, 0xcb, 0x94, 0x5d, 0xc3, 0xdb, 0x3a, 0x1b, 0xb4, 0xc6, 0x5a, 0xdc, 0x41, 0x3b, 0x9f, 0xb2, 0xad, 0x06, 0xcd, 0xd2, 0x74, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0x07, 0xda, 0xdb, 0x9b, 0x1b, 0x48, 0x98, 0x1b, 0x19, 0xc8, 0xd8, 0x9b, 0x5c, 0x19, 0x08, 0x5d, 0x58, 0x1a, 0xdb, 0x06, 0xe7, 0xc1, 0x8e, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xd0, 0x5e, 0xa6, 0xec, 0x06, 0x4d, 0x6f, 0xca, 0x1e, 0x34, 0x28, 0x34, 0xbc, 0x1a, 0xb4, 0xbd, 0xf5, 0xbb, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x0f, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x68, 0x6f, 0x6f, 0x6e, 0x73, 0x1b, 0x9c, 0x07, 0x3b, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x5b, 0x7c, 0xb3, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xf6, 0x32, 0x65, 0x37, 0x68, 0x7a, 0x53, 0xf6, 0xa0, 0xcd, 0x26, 0xde, 0x0e, 0xa7, 0x58, 0xb5, 0x06, 0xcd, 0x1e, 0x07, 0x6f, 0x70, 0x1e, 0xec, 0xd8, 0xa0, 0xe8, 0x34, 0xde, 0x60, 0x59, 0x25, 0xe8, 0x1a, 0x7e, 0x51, 0xda, 0xa0, 0xe9, 0x59, 0xd9, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x59, 0xf2, 0xbe, 0x06, 0x05, 0xc1, 0x6c, 0x07, 0x6d, 0xfb, 0xca, 0x1e, 0x9e, 0x0b, 0x3a, 0x68, 0x46, 0x58, 0x76, 0x16, 0xf0, 0xeb, 0xd8, 0xec, 0xc2, 0x0d, 0x0a, 0xe5, 0xce, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0x65, 0x8c, 0xed, 0x6d, 0x2e, 0xcd, 0xed, 0x0c, 0xa4, 0xa5, 0x05, 0x24, 0xcc, 0x8d, 0x0c, 0x84, 0x2e, 0x8c, 0x8d, 0xed, 0xa0, 0xf1, 0x9e, 0xd8, 0x0d, 0x8a, 0x1d, 0xcd, 0x0d, 0x9a, 0xa3, 0x96, 0xdd, 0x60, 0xd9, 0x67, 0xed, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x57, 0x30, 0xba, 0x41, 0xbb, 0x52, 0xb1, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x1b, 0xac, 0x10, 0x29, 0xdd, 0xa0, 0x09, 0xc0, 0xdd, 0x5a, 0x0d, 0x1a, 0x14, 0x11, 0xde, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0x97, 0xbb, 0x34, 0xb7, 0xb3, 0x39, 0x90, 0x30, 0x37, 0x32, 0x10, 0xba, 0xbb, 0x37, 0x10, 0xb4, 0xb7, 0x37, 0xb7, 0xb9, 0x0d, 0xce, 0x83, 0x1d, 0x1b, 0xac, 0x10, 0x6a, 0xda, 0xa0, 0xbd, 0x4c, 0xd9, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xf3, 0x54, 0xb1, 0x1d, 0xb4, 0xe1, 0x29, 0xbb, 0x1a, 0x34, 0x25, 0xee, 0xbb, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x2f, 0xda, 0xdb, 0x9b, 0x1b, 0x08, 0x1d, 0x5a, 0x99, 0x1b, 0xc8, 0x1c, 0x5c, 0xd9, 0xd8, 0x06, 0xe7, 0xc1, 0x8e, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xd0, 0x5e, 0xa6, 0xec, 0x06, 0x4d, 0x6f, 0xca, 0x1e, 0xb4, 0x78, 0x35, 0xbb, 0x1a, 0xb4, 0xe9, 0x47, 0xbb, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x3f, 0x5b, 0xda, 0x1c, 0x1d, 0xc8, 0xd6, 0x1c, 0x5c, 0xd9, 0x18, 0x08, 0xda, 0xdb, 0x9b, 0x5b, 0xd7, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x33, 0x1b, 0xba, 0x41, 0x6b, 0x88, 0xbc, 0x1b, 0x34, 0x27, 0x4e, 0xdc, 0xe1, 0x14, 0xab, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x5b, 0xc0, 0x1f, 0x7b, 0x0b, 0xa3, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x1a, 0x68, 0x32, 0x6e, 0x00, 0xcf, 0x39, 0xb8, 0xb2, 0x31, 0x10, 0xb2, 0xb7, 0xb1, 0xb1, 0x37, 0x39, 0xb2, 0xb9, 0x0d, 0x0a, 0xe5, 0xce, 0x0d, 0x96, 0x14, 0xd9, 0x6e, 0x50, 0x74, 0x1a, 0x6f, 0xb0, 0xac, 0x12, 0x74, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0x5a, 0x22, 0x14, 0xde, 0xa0, 0xfd, 0xa2, 0xd8, 0x83, 0xa6, 0x0f, 0x85, 0x37, 0x38, 0x8e, 0x4d, 0x6c, 0xf8, 0x3c, 0x68, 0x0d, 0x6f, 0xb3, 0x6e, 0xf8, 0x37, 0x67, 0xc3, 0xd3, 0x3b, 0x07, 0xad, 0x5d, 0xb9, 0xae, 0xe1, 0x17, 0x97, 0x0d, 0x5a, 0x40, 0x88, 0x58, 0x83, 0xc6, 0x16, 0x22, 0x36, 0x38, 0x86, 0x1b, 0x1c, 0xb4, 0xe6, 0x2a, 0x7c, 0x78, 0x0b, 0x6d, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0x26, 0xa6, 0x30, 0x37, 0x28, 0x4b, 0xde, 0x37, 0x58, 0x04, 0x32, 0xba, 0x41, 0xd9, 0x54, 0xbf, 0x86, 0xb7, 0x75, 0x36, 0x58, 0x3c, 0x50, 0x7e, 0x78, 0x70, 0xa7, 0x0d, 0x5f, 0xe1, 0x6c, 0x50, 0xc2, 0x63, 0x6e, 0xd0, 0xc0, 0x14, 0xe6, 0x86, 0xf7, 0x82, 0x36, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x68, 0x60, 0x0a, 0x73, 0xc3, 0xdb, 0x3a, 0x83, 0xd3, 0x07, 0x0d, 0x4c, 0x61, 0xae, 0xe1, 0xf3, 0xa0, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x02, 0x42, 0xc4, 0x1a, 0x34, 0xb6, 0x10, 0xb1, 0xe1, 0x6d, 0x9d, 0xc1, 0xd3, 0x83, 0x06, 0xa6, 0x30, 0x0f, 0x6f, 0xa1, 0xb5, 0xe1, 0xdd, 0x9e, 0x0d, 0x5a, 0xac, 0x15, 0x3e, 0x58, 0xfc, 0x66, 0x7b, 0x38, 0xc5, 0x5a, 0x83, 0x26, 0x4e, 0x30, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x9a, 0x38, 0xc1, 0x6c, 0x00, 0x4f, 0xb4, 0xb7, 0x37, 0x37, 0x10, 0xb2, 0xb7, 0xb1, 0xb1, 0x37, 0x39, 0xb2, 0xb9, 0x0d, 0x0a, 0xe5, 0xce, 0x0d, 0x96, 0x14, 0xd9, 0x6e, 0x50, 0x74, 0x1a, 0x6f, 0xb0, 0xac, 0x12, 0x74, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0x5a, 0x22, 0x14, 0xde, 0xa0, 0xe1, 0x3a, 0xcd, 0x83, 0xa6, 0x0f, 0x85, 0x37, 0x38, 0x8e, 0x4d, 0x6c, 0xf8, 0x3c, 0x68, 0x83, 0x86, 0xc2, 0x8c, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0xad, 0x5b, 0x12, 0x1c, 0x34, 0x6e, 0x66, 0xbc, 0xe1, 0x13, 0x9b, 0x0d, 0xda, 0x5e, 0x33, 0xde, 0xf0, 0x15, 0xce, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0x0d, 0x4c, 0x61, 0x6e, 0x78, 0x2f, 0x68, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0xdb, 0xa0, 0x89, 0x3c, 0xe3, 0x35, 0x7c, 0x1e, 0xb4, 0xe1, 0x17, 0x97, 0x0d, 0x5a, 0xb7, 0x24, 0x38, 0x68, 0xef, 0xcf, 0xb8, 0x83, 0xd6, 0x07, 0x8d, 0x0f, 0xa7, 0xd8, 0x1a, 0x34, 0x3d, 0x82, 0xb9, 0x41, 0xa1, 0xdc, 0xb9, 0x41, 0xe3, 0x3d, 0xb1, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x34, 0x60, 0xd1, 0xb7, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x06, 0x8b, 0x55, 0x78, 0x0f, 0x9a, 0xad, 0xd3, 0x3c, 0x68, 0x0d, 0x29, 0xf6, 0xa0, 0x5d, 0xa9, 0xd8, 0x59, 0x83, 0x16, 0x0a, 0x5b, 0x37, 0x28, 0x3a, 0x8d, 0x37, 0x58, 0x56, 0x09, 0xba, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x06, 0x25, 0x9c, 0xfb, 0x41, 0x13, 0xfe, 0x98, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x1e, 0xdc, 0xd9, 0xf0, 0x5e, 0xd0, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x41, 0x81, 0x20, 0xbf, 0x86, 0xcf, 0x83, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xc7, 0x70, 0x83, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x68, 0x5f, 0xc1, 0xc1, 0xc2, 0x3c, 0xf5, 0xc3, 0x5b, 0x68, 0x6d, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x85, 0x8a, 0xa1, 0x07, 0xcb, 0xeb, 0x4c, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0xad, 0xb8, 0x6c, 0xd6, 0x6a, 0xd0, 0xfc, 0x2e, 0xea, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0xf3, 0xbb, 0xa8, 0x0d, 0xe0, 0xc5, 0x56, 0xe7, 0x76, 0x06, 0x32, 0x17, 0xd6, 0x06, 0xc7, 0x56, 0xb6, 0xe1, 0xa3, 0xf6, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0x0d, 0x1a, 0x43, 0x46, 0x3d, 0x58, 0x60, 0xe1, 0xbc, 0x86, 0x3f, 0x97, 0x36, 0x68, 0x33, 0x4f, 0x6d, 0x83, 0xa0, 0xfd, 0x59, 0xc3, 0xe7, 0x4a, 0x1b, 0xb4, 0x63, 0x8e, 0x7a, 0xb0, 0x36, 0xf1, 0x79, 0x0d, 0x9f, 0x2b, 0x6d, 0xd0, 0x7e, 0x30, 0xea, 0xc1, 0xda, 0xc4, 0xe7, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0x93, 0xe0, 0xa8, 0x07, 0x6b, 0x13, 0x9f, 0xd7, 0xf0, 0xb9, 0xd2, 0x06, 0x0d, 0x45, 0xa3, 0x6e, 0xb0, 0x06, 0xac, 0xba, 0x5a, 0x0d, 0x1a, 0xc9, 0x27, 0xde, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x68, 0x24, 0x9f, 0xb8, 0x01, 0x7c, 0xdb, 0xde, 0xd8, 0xc8, 0x40, 0xe8, 0xc2, 0xd8, 0xd8, 0x40, 0xcc, 0xde, 0xe4, 0xda, 0x36, 0x28, 0x3a, 0x8d, 0x37, 0x58, 0xdd, 0xcb, 0xba, 0x41, 0x13, 0x6d, 0x98, 0x1b, 0x9c, 0x07, 0x3b, 0x36, 0x58, 0x0e, 0xc9, 0x34, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x21, 0x39, 0xcc, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x68, 0xa0, 0xc9, 0xb8, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x7a, 0x60, 0xd0, 0x35, 0x3c, 0x28, 0xb9, 0x41, 0xc3, 0x77, 0x98, 0x07, 0x4d, 0xbe, 0x60, 0x1e, 0xb4, 0xc9, 0x87, 0x59, 0xb3, 0x06, 0xed, 0x0d, 0x64, 0x6e, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0x0d, 0xd6, 0x35, 0xf9, 0x6e, 0x10, 0xfa, 0x25, 0x1b, 0x94, 0x4d, 0x98, 0x07, 0x4d, 0xf3, 0xb5, 0xae, 0xe1, 0xcf, 0xa5, 0x01, 0x0f, 0xee, 0xcd, 0xdc, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0x9b, 0x30, 0xd7, 0xf0, 0xb9, 0xd2, 0x06, 0x49, 0x86, 0xc0, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0xf8, 0xa0, 0xbd, 0x7f, 0xcc, 0x6a, 0xc3, 0x5f, 0x34, 0x1b, 0xb4, 0xf7, 0x1c, 0xbb, 0xc1, 0xd1, 0x86, 0x6f, 0x0d, 0x8a, 0x01, 0xd9, 0x0d, 0x5f, 0x4e, 0x6e, 0x78, 0x66, 0x72, 0x83, 0x75, 0xab, 0x4c, 0xb3, 0x86, 0x37, 0xee, 0x36, 0xbc, 0x7c, 0x17, 0xe0, 0x01, 0xf7, 0x36, 0x87, 0xd6, 0x62, 0x16, 0x96, 0xc6, 0x1e, 0x9e, 0x99, 0xdc, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xf0, 0xee, 0xde, 0xda, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x5a, 0xb9, 0xe3, 0x6c, 0x83, 0xb6, 0x9c, 0x62, 0xdb, 0xa0, 0xe8, 0x34, 0x5e, 0xc3, 0xdb, 0x3a, 0x1b, 0x9c, 0xe3, 0x04, 0x5a, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x35, 0x63, 0xbe, 0x6b, 0x70, 0x0c, 0x37, 0xd8, 0xf0, 0xb9, 0xcb, 0xe0, 0xf5, 0x86, 0xb7, 0x75, 0x36, 0x68, 0x2e, 0xe5, 0xb8, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x0e, 0x19, 0x04, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0x8e, 0x6d, 0x6c, 0x1b, 0xb4, 0x63, 0x73, 0xbc, 0x86, 0xb7, 0x75, 0x06, 0xaf, 0x0f, 0xd6, 0x8c, 0xf9, 0xb6, 0xe1, 0x17, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0xb5, 0xbd, 0xe9, 0x07, 0xeb, 0x9a, 0x9f, 0x37, 0x28, 0xe1, 0x31, 0xd7, 0xa0, 0xe9, 0x89, 0xe3, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0xed, 0x0a, 0x1d, 0xb7, 0xe1, 0xdd, 0x9e, 0x0d, 0x4e, 0x04, 0x6d, 0x1b, 0x34, 0x72, 0x74, 0xbc, 0x86, 0x77, 0x7b, 0x36, 0x38, 0xbd, 0xc5, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0x7a, 0x4e, 0x1e, 0xb4, 0xe6, 0x73, 0xbc, 0x41, 0x3b, 0x36, 0xc7, 0xb5, 0xe1, 0x17, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0xe5, 0x95, 0xe9, 0x07, 0xeb, 0x9a, 0x9f, 0x37, 0x28, 0xe1, 0x31, 0x37, 0x68, 0xbc, 0xe8, 0x78, 0x0d, 0x8e, 0xe1, 0x06, 0x1b, 0xde, 0xd6, 0xd9, 0xa0, 0x1d, 0xaa, 0xe3, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x3c, 0xbd, 0xb2, 0x7c, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0x16, 0xcb, 0x1b, 0xb4, 0x98, 0x75, 0xdc, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0x3e, 0x77, 0xd9, 0xa0, 0x5d, 0xa1, 0xe3, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0xb0, 0x10, 0x5c, 0xc3, 0xdb, 0x3a, 0x83, 0xc3, 0x83, 0xd7, 0x07, 0x8d, 0x17, 0x1d, 0xaf, 0xe1, 0x6d, 0x9d, 0x0d, 0x1a, 0xeb, 0x3a, 0xae, 0x35, 0x7c, 0xee, 0xb2, 0xc1, 0x62, 0x1c, 0xd1, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0x7a, 0x8b, 0x3b, 0x68, 0xe4, 0xec, 0xb8, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x01, 0x4f, 0xef, 0xad, 0xdd, 0xf0, 0x6e, 0xcf, 0x06, 0x0d, 0xed, 0x1c, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0x0a, 0x8b, 0xe5, 0x0d, 0x1a, 0x39, 0x3a, 0x6e, 0x0d, 0x6f, 0xeb, 0x0c, 0x1e, 0x1f, 0xb4, 0x88, 0x76, 0xdc, 0x06, 0x25, 0x3c, 0xe6, 0x1a, 0x34, 0x31, 0x77, 0xdc, 0x06, 0x05, 0x45, 0xe6, 0x06, 0xc7, 0x70, 0x83, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0x22, 0x68, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0x16, 0xcb, 0x07, 0x4b, 0xe2, 0x86, 0xd7, 0xf0, 0xb6, 0xce, 0xe0, 0xf5, 0x41, 0xcb, 0x7c, 0xc7, 0x1d, 0x4e, 0xb1, 0x35, 0x68, 0x02, 0x50, 0x76, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x99, 0x0d, 0xdd, 0xa0, 0x05, 0xc5, 0xd6, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0x41, 0xdb, 0x1d, 0x9a, 0x1b, 0xb4, 0x75, 0x6b, 0x79, 0xd0, 0x08, 0xc3, 0x65, 0x87, 0x53, 0xac, 0x3a, 0x9c, 0x62, 0xab, 0x41, 0xe8, 0x97, 0x6c, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x84, 0x7e, 0x49, 0x03, 0xf0, 0x33, 0xf6, 0xd6, 0x06, 0x97, 0xc6, 0x56, 0x06, 0x32, 0xf6, 0x26, 0x47, 0x06, 0x42, 0xf7, 0x06, 0xe2, 0xf6, 0x36, 0xb6, 0xb6, 0xe1, 0x17, 0xa5, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0x02, 0xdc, 0xf3, 0xc3, 0x0f, 0x35, 0x1b, 0x1e, 0x94, 0xdc, 0xe0, 0x74, 0x24, 0xb2, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x4b, 0xde, 0x37, 0x68, 0x7e, 0x44, 0x6a, 0x83, 0xc6, 0xd1, 0xa3, 0x0e, 0x1a, 0x73, 0x90, 0xda, 0x60, 0x89, 0xfd, 0xf6, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0xbe, 0x5c, 0x59, 0x58, 0xdb, 0xc1, 0x22, 0xf0, 0xf3, 0x56, 0xc0, 0xb7, 0x2b, 0x9b, 0xa3, 0x37, 0x3c, 0x3e, 0xb2, 0x41, 0x03, 0xad, 0xc7, 0x1b, 0x7e, 0x51, 0xda, 0x60, 0xe1, 0xd4, 0xe9, 0x86, 0xbf, 0x68, 0xd6, 0x20, 0xf4, 0x4b, 0x36, 0x58, 0xd4, 0x75, 0x7a, 0xb0, 0xbc, 0xc2, 0x79, 0x83, 0x53, 0xc3, 0xd1, 0x06, 0x8b, 0xe4, 0x4e, 0x37, 0x38, 0xb1, 0xdf, 0x6c, 0xb0, 0xb0, 0x34, 0x76, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xd4, 0x24, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0x2c, 0xb8, 0x13, 0x3d, 0x58, 0x6e, 0x27, 0xba, 0x86, 0x07, 0x25, 0x37, 0x68, 0x60, 0xf4, 0x72, 0xc3, 0xdb, 0x3a, 0x1b, 0x34, 0x4b, 0x67, 0x59, 0x87, 0x53, 0x6c, 0x01, 0xdf, 0x2e, 0xcc, 0xed, 0xdc, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x68, 0x8a, 0xf8, 0xb8, 0x01, 0xfc, 0xe7, 0xca, 0xe8, 0x40, 0x56, 0xec, 0xc2, 0xe6, 0xe8, 0x40, 0xe0, 0xc2, 0xe4, 0xc2, 0xda, 0xe6, 0x95, 0x00, 0x6f, 0xb1, 0xba, 0x33, 0x1d, 0x10, 0xb2, 0x32, 0xb1, 0xba, 0x33, 0x90, 0xb6, 0x37, 0xb2, 0x72, 0x09, 0xe0, 0x87, 0xec, 0x6d, 0x4c, 0x07, 0x84, 0xec, 0x6d, 0x6c, 0xec, 0x4d, 0x8e, 0x0c, 0x04, 0x2e, 0x4c, 0x6e, 0x2e, 0xcd, 0xed, 0x5c, 0x02, 0x78, 0xb8, 0x2b, 0x93, 0xd3, 0x01, 0xb9, 0x43, 0x2b, 0x93, 0x2b, 0x03, 0xb9, 0x2b, 0x03, 0x09, 0x93, 0x2b, 0x6b, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x6e, 0x6e, 0xf8, 0x60, 0x7e, 0xc3, 0x07, 0xab, 0x1b, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0xb4, 0x17, 0x68, 0x79, 0xf8, 0x60, 0x75, 0x0d, 0x7f, 0x2e, 0x6d, 0xd0, 0x22, 0xa2, 0xe5, 0xe1, 0x83, 0xd5, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0x2d, 0x12, 0x5a, 0x1e, 0x9c, 0x91, 0x50, 0xdb, 0x20, 0x09, 0x2f, 0x69, 0x83, 0xa2, 0x46, 0x7c, 0x83, 0xe6, 0x82, 0x8f, 0xd7, 0xa0, 0x15, 0xa5, 0xd8, 0x0d, 0x0a, 0x82, 0xd9, 0x0d, 0x02, 0x3c, 0x68, 0x83, 0x62, 0xa4, 0x76, 0xc3, 0xdb, 0x3a, 0x1b, 0xb4, 0x17, 0x68, 0x79, 0x10, 0xe0, 0x41, 0x6b, 0xd0, 0x0a, 0x95, 0xeb, 0x06, 0x05, 0xc1, 0xec, 0x06, 0x01, 0x1e, 0xb4, 0x41, 0x91, 0xd3, 0xba, 0xe1, 0x6d, 0x9d, 0x0d, 0x5a, 0x44, 0xb4, 0x3c, 0x08, 0xf0, 0xa0, 0x35, 0x68, 0xe6, 0x29, 0xf6, 0xa0, 0x2d, 0xa7, 0xd8, 0x0e, 0xa7, 0xd8, 0x02, 0xbe, 0x5c, 0x58, 0x9a, 0xbb, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xd0, 0xf6, 0xff, 0x71, 0x03, 0xf0, 0x00, 0x17, 0x26, 0x37, 0x57, 0x06, 0x72, 0x97, 0x46, 0x87, 0x06, 0x52, 0x02, 0x02, 0x17, 0x46, 0x87, 0xb6, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0xba, 0x99, 0xf4, 0x0d, 0x9a, 0xec, 0x3c, 0x6e, 0xc3, 0x5f, 0x34, 0x1b, 0x2c, 0xb0, 0x70, 0xde, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xf0, 0xec, 0xc2, 0xf4, 0x83, 0xe6, 0x82, 0x8f, 0x37, 0x58, 0x52, 0xbf, 0xb4, 0xc1, 0x72, 0xa8, 0xf4, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x3a, 0x53, 0x75, 0x83, 0x45, 0xf8, 0xe7, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x85, 0xa5, 0xb1, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x85, 0x9a, 0xa4, 0x1b, 0x34, 0xc7, 0x7b, 0xbc, 0x86, 0x07, 0x25, 0x37, 0x68, 0x60, 0xf4, 0x72, 0xc3, 0x25, 0xb5, 0x06, 0xcd, 0x46, 0x20, 0xb7, 0x06, 0xcd, 0x3c, 0xc5, 0x1e, 0x2c, 0x87, 0x4a, 0xaf, 0x9a, 0x35, 0x68, 0x4b, 0xf5, 0x78, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xa0, 0x2d, 0xd5, 0xe3, 0x06, 0xe0, 0x03, 0x2e, 0x4c, 0x6e, 0xae, 0x0c, 0x64, 0xec, 0x4d, 0x8e, 0x0c, 0x84, 0xee, 0x0d, 0x04, 0xed, 0xed, 0xcd, 0x6d, 0xc3, 0x2f, 0x4a, 0x1b, 0x34, 0xd9, 0x79, 0xbc, 0xe1, 0x2f, 0x9a, 0x0d, 0x16, 0x58, 0x38, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0x05, 0x3b, 0xe8, 0x1b, 0x2c, 0x03, 0x3f, 0x5f, 0xc3, 0xdb, 0x3a, 0x1b, 0x34, 0xd0, 0x7a, 0x5c, 0x2b, 0xe0, 0xdb, 0xa5, 0x8d, 0x95, 0x1b, 0x7e, 0x51, 0xda, 0x60, 0x8d, 0xed, 0xf9, 0x86, 0xbf, 0x68, 0x36, 0x58, 0x60, 0xe1, 0xbc, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0xec, 0xa0, 0x6f, 0xb0, 0x0c, 0xfc, 0x7c, 0x0d, 0x0f, 0x4a, 0x6e, 0xd0, 0x0c, 0xc3, 0xe5, 0x41, 0x73, 0xc1, 0xc7, 0x1d, 0x4e, 0xb1, 0x05, 0x7c, 0xb9, 0x34, 0xb2, 0x72, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xa0, 0x31, 0x22, 0xe4, 0x06, 0xe0, 0xa5, 0xcc, 0x8d, 0xac, 0x85, 0xee, 0xad, 0xa5, 0xcc, 0x8d, 0x0c, 0x64, 0xec, 0xad, 0x0d, 0x2e, 0x8d, 0xad, 0x4c, 0x6e, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x96, 0xe4, 0xc1, 0x0e, 0x1a, 0x66, 0x40, 0xde, 0xf0, 0x17, 0xcd, 0x06, 0x8b, 0xe1, 0xcb, 0x37, 0x38, 0x17, 0x2e, 0xac, 0x41, 0x5b, 0x20, 0x2b, 0x1b, 0x7e, 0x71, 0xd9, 0xf0, 0xe0, 0xcd, 0x1a, 0x9e, 0xb8, 0xdb, 0xf0, 0x2c, 0xde, 0xe0, 0xf2, 0xe0, 0xe9, 0xe0, 0xe4, 0xe0, 0xe5, 0xa0, 0x7a, 0x50, 0x30, 0x38, 0x3c, 0x78, 0x38, 0xb8, 0x3c, 0xf8, 0x3c, 0x78, 0x3a, 0xb8, 0x7b, 0x50, 0x34, 0xd5, 0xb6, 0x41, 0x41, 0x1a, 0xbb, 0x41, 0xf3, 0x14, 0x52, 0x1b, 0xb4, 0x88, 0x7a, 0xbc, 0xc1, 0xb9, 0x70, 0x61, 0x0d, 0xda, 0x02, 0x59, 0xd9, 0xf0, 0x8b, 0xcb, 0x86, 0x07, 0x6f, 0xd6, 0xf0, 0xc4, 0xdd, 0x86, 0x67, 0xf1, 0x06, 0x97, 0x07, 0x4f, 0x07, 0x27, 0x07, 0x2f, 0x07, 0xd5, 0x83, 0x82, 0xc1, 0xc7, 0xc1, 0xdf, 0xc1, 0xdb, 0xc1, 0xe1, 0xc1, 0xd3, 0xc1, 0xd9, 0x83, 0xd6, 0xbe, 0x90, 0xdb, 0x60, 0x25, 0x12, 0xd3, 0x1a, 0xb4, 0x05, 0xb2, 0xb2, 0xe1, 0x17, 0x97, 0x0d, 0x0f, 0xde, 0xac, 0xe1, 0x89, 0xbb, 0x0d, 0xcf, 0xe2, 0x0d, 0x2e, 0x0f, 0x9e, 0x0e, 0x4e, 0x0e, 0x5e, 0x0e, 0xaa, 0x07, 0x05, 0x83, 0x8f, 0x83, 0xbf, 0x83, 0xb7, 0x83, 0xc3, 0x83, 0xa7, 0x83, 0xb3, 0x83, 0x97, 0x07, 0x45, 0xbe, 0x6c, 0x07, 0x8d, 0x4d, 0x05, 0xce, 0x02, 0xbe, 0x5c, 0xd9, 0xd8, 0xba, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xd0, 0xf6, 0x1f, 0x72, 0x03, 0x78, 0xc3, 0x85, 0xc9, 0xcd, 0x95, 0x81, 0xa0, 0xbd, 0xbd, 0xb9, 0x81, 0x98, 0xa5, 0xb1, 0x95, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0x75, 0x33, 0xe9, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0xb4, 0xfd, 0x7f, 0xdc, 0x06, 0xcb, 0xa1, 0xd2, 0xd7, 0x60, 0x75, 0xc0, 0xd2, 0x06, 0xe7, 0xd9, 0xd1, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x8d, 0xbb, 0x0d, 0x2f, 0xdf, 0x05, 0x3f, 0x86, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0x4e, 0x04, 0x6d, 0x1b, 0x2c, 0x87, 0x4a, 0x5f, 0xc3, 0x5f, 0x34, 0x1b, 0x9c, 0x91, 0x50, 0x37, 0xfc, 0xe2, 0xb2, 0x41, 0x8b, 0x4d, 0x97, 0x07, 0x65, 0x9d, 0x67, 0x75, 0x38, 0xc5, 0x66, 0x01, 0xfc, 0xdb, 0xc2, 0xc6, 0xe4, 0xde, 0x5a, 0xca, 0xf0, 0xe0, 0xc2, 0xdc, 0xe6, 0xd2, 0xde, 0xdc, 0xe6, 0x65, 0x00, 0x5e, 0x6a, 0xc4, 0x74, 0x40, 0xda, 0xc2, 0xc6, 0xe4, 0xde, 0x40, 0xca, 0xf0, 0xe0, 0xc2, 0xdc, 0xe6, 0xd2, 0xde, 0xdc, 0x16, 0xf8, 0x30, 0x78, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0x32, 0xf8, 0x30, 0xb8, 0x01, 0xbc, 0xd0, 0xde, 0xde, 0xdc, 0x40, 0xca, 0xdc, 0xce, 0xd2, 0xdc, 0xca, 0x36, 0x28, 0xbb, 0x64, 0x07, 0x3e, 0x0c, 0xde, 0xa0, 0x18, 0x94, 0x5d, 0x0d, 0x96, 0x04, 0x67, 0x6f, 0x78, 0x5b, 0xe7, 0x60, 0x41, 0x70, 0xf6, 0x02, 0xbe, 0x5c, 0xd8, 0x5a, 0xb9, 0xe1, 0x6d, 0x9d, 0x0d, 0xda, 0xac, 0x45, 0xae, 0x0d, 0xca, 0x32, 0xec, 0x0d, 0x5a, 0xa0, 0x90, 0x9a, 0x65, 0xd6, 0xa0, 0x3d, 0xdd, 0xb1, 0x0d, 0x7f, 0xd1, 0xac, 0x41, 0xe8, 0x97, 0x6c, 0x50, 0x36, 0x61, 0x1e, 0xac, 0x3c, 0xc1, 0xde, 0xe0, 0xe4, 0x20, 0xb7, 0x41, 0x33, 0x28, 0x52, 0x1b, 0x14, 0x14, 0x99, 0xab, 0xe1, 0x73, 0xa5, 0x83, 0xd6, 0xc4, 0xa9, 0x36, 0x38, 0x86, 0x1b, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0x0a, 0x4c, 0xf6, 0xa0, 0x7d, 0xd5, 0xae, 0x83, 0xb2, 0xce, 0x73, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0x12, 0xb6, 0xe7, 0x83, 0x43, 0x4c, 0xc7, 0x06, 0xc7, 0x70, 0x83, 0x0d, 0xbf, 0xb8, 0x1c, 0xb4, 0x7c, 0x32, 0xb6, 0x1a, 0x3e, 0x57, 0xda, 0x60, 0xd5, 0xfe, 0xf3, 0xc1, 0x21, 0xa6, 0x63, 0x83, 0x63, 0xb8, 0xc1, 0x41, 0x0b, 0xab, 0x5d, 0xab, 0xe1, 0x73, 0xa5, 0x0d, 0x56, 0xf3, 0x48, 0x1f, 0xb4, 0xd6, 0x4e, 0x75, 0xd0, 0x2c, 0x35, 0xf2, 0x1a, 0x34, 0xb8, 0x06, 0xb6, 0xe1, 0x92, 0xda, 0xa0, 0x35, 0xdd, 0xb1, 0x83, 0xe6, 0x0d, 0xbe, 0x5a, 0x0d, 0x96, 0x04, 0x67, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x2c, 0x09, 0xce, 0x6e, 0x00, 0x0f, 0xb2, 0xb2, 0xb9, 0xba, 0xb3, 0x30, 0xb9, 0x32, 0xb9, 0x0d, 0x7f, 0xd1, 0x6c, 0xb0, 0xc0, 0xc2, 0x79, 0x83, 0x20, 0x3d, 0xdd, 0xa0, 0x19, 0x14, 0xa9, 0x35, 0x68, 0x7d, 0x18, 0x79, 0xc3, 0x2f, 0x2e, 0x1b, 0x34, 0x67, 0x92, 0xb0, 0x41, 0xdb, 0xc6, 0xc8, 0x07, 0x65, 0x9d, 0xe7, 0x6a, 0xf8, 0x5c, 0x69, 0x83, 0x55, 0x8c, 0xce, 0x07, 0x87, 0x98, 0x8e, 0x0d, 0xca, 0x92, 0xf7, 0x05, 0x78, 0xcd, 0xc2, 0xc6, 0xe8, 0xde, 0xe4, 0xf2, 0x36, 0x68, 0x28, 0xb5, 0x6b, 0x0d, 0x7f, 0xd1, 0x6c, 0xb0, 0xc0, 0x0a, 0xfa, 0xa0, 0xad, 0x13, 0xa9, 0x56, 0xc3, 0xe7, 0x4a, 0x1b, 0xac, 0x16, 0x75, 0x3e, 0x38, 0xc4, 0x74, 0x6c, 0x50, 0x96, 0xbc, 0x6f, 0xd0, 0xbc, 0x69, 0xd7, 0x06, 0x0d, 0xa5, 0x76, 0x6d, 0xb0, 0x80, 0xca, 0xfb, 0xa0, 0x7d, 0xd5, 0xae, 0xd5, 0xf0, 0xb9, 0xd2, 0x06, 0x6b, 0xdc, 0xa6, 0x0f, 0x0e, 0x31, 0x1d, 0x1b, 0x94, 0x25, 0xef, 0x1b, 0x34, 0x45, 0x8f, 0x7c, 0xd0, 0x4c, 0x6a, 0xd7, 0x1a, 0x34, 0xb8, 0x06, 0x76, 0xd0, 0x58, 0x68, 0xd7, 0x6a, 0xf8, 0x5c, 0x69, 0x83, 0xe5, 0xd3, 0xce, 0x07, 0x87, 0x98, 0x8e, 0x0d, 0x6f, 0xd9, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0x23, 0x0b, 0x1f, 0xb4, 0xaf, 0xda, 0x75, 0x10, 0x9e, 0xaa, 0xab, 0xe1, 0x73, 0xa5, 0x0d, 0x96, 0xd6, 0x3c, 0x1f, 0x1c, 0x62, 0x3a, 0x36, 0x38, 0xe7, 0x2f, 0x6d, 0xd0, 0x20, 0x5c, 0xc3, 0x1a, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xb4, 0x3d, 0x3e, 0x20, 0x20, 0x76, 0x3d, 0xae, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x9a, 0x8a, 0xc2, 0x1a, 0xde, 0xb8, 0x3b, 0x58, 0xaf, 0xa4, 0x78, 0xd0, 0xce, 0x81, 0xd4, 0x06, 0x85, 0xa1, 0xea, 0x1a, 0x9e, 0x27, 0xd9, 0x60, 0x6d, 0x32, 0xf4, 0x41, 0xcb, 0x12, 0x07, 0x1b, 0x9c, 0xf3, 0x97, 0xd6, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0x68, 0xaf, 0xd5, 0x41, 0xcb, 0xd4, 0x09, 0x6b, 0x50, 0x18, 0xaa, 0x6e, 0xd0, 0xb2, 0x48, 0xf2, 0x06, 0x8b, 0xca, 0x93, 0xd6, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0xe8, 0x1f, 0xdd, 0x41, 0x3b, 0x4f, 0x0e, 0x6b, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xfa, 0xdb, 0xf0, 0x8b, 0xcb, 0x06, 0xed, 0x26, 0x10, 0x1c, 0x34, 0x55, 0xa5, 0xb9, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x41, 0x92, 0x98, 0xf4, 0x41, 0x13, 0x03, 0x9b, 0x1b, 0x14, 0x86, 0xaa, 0x6b, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xf0, 0xeb, 0xb4, 0x80, 0x80, 0xa4, 0xf5, 0xf8, 0xf9, 0x6d, 0xf8, 0xc5, 0x65, 0x83, 0xd6, 0x54, 0x14, 0x36, 0x48, 0x2c, 0xa9, 0x5a, 0xc3, 0x2f, 0x2e, 0x1b, 0x34, 0xda, 0x57, 0xb0, 0x86, 0x1f, 0x61, 0x0e, 0x1a, 0xab, 0x15, 0xdc, 0x60, 0x91, 0x18, 0x6a, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0x68, 0x74, 0x3d, 0xa4, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x9a, 0x8a, 0xc2, 0x06, 0x6b, 0x77, 0xeb, 0x0e, 0x5a, 0x59, 0xb3, 0xdc, 0xf0, 0x15, 0xce, 0x86, 0xbf, 0x68, 0x36, 0x58, 0x60, 0xe1, 0xbc, 0x41, 0x09, 0x8f, 0xb9, 0x41, 0xe3, 0xab, 0x5d, 0x1b, 0xb4, 0x6f, 0x93, 0xbc, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0xb2, 0xc1, 0x31, 0xc3, 0x73, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0xdb, 0xa0, 0x19, 0xef, 0xae, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0x02, 0x0b, 0xe7, 0x0d, 0x0a, 0x82, 0xd9, 0x0d, 0x9a, 0x35, 0xef, 0x5a, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x5e, 0xb6, 0xfc, 0xfc, 0xf6, 0xd2, 0x5c, 0xe0, 0x5c, 0xce, 0xca, 0xdc, 0xfa, 0x40, 0xf6, 0xe4, 0xca, 0xe6, 0xfa, 0xba, 0x36, 0xfc, 0xe2, 0xb2, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0xb4, 0xaf, 0x60, 0x83, 0x76, 0x8a, 0x92, 0x37, 0x68, 0xbb, 0xbc, 0xab, 0x0d, 0x0e, 0x5a, 0x9e, 0x6d, 0x70, 0xce, 0x5f, 0xda, 0xa0, 0x11, 0xd5, 0x86, 0x35, 0x28, 0x0c, 0x55, 0xd7, 0xe0, 0x9c, 0xbf, 0xb4, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x40, 0x7b, 0xf5, 0x0e, 0x5a, 0x53, 0x51, 0x58, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0xe6, 0xf0, 0xe0, 0xce, 0x41, 0x92, 0xc3, 0xd3, 0x06, 0xe7, 0xfc, 0xa5, 0x0d, 0x1a, 0x37, 0x49, 0x5e, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0xe6, 0x60, 0x7d, 0xea, 0xd7, 0x41, 0x3b, 0x6b, 0x96, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xd0, 0xd0, 0xe3, 0x83, 0x62, 0x07, 0xb2, 0x07, 0xe7, 0x92, 0xe6, 0x02, 0xe7, 0x72, 0x56, 0xe6, 0xd6, 0x97, 0xda, 0xf0, 0x8b, 0xcb, 0x06, 0x0d, 0xc2, 0x35, 0xac, 0xe1, 0x17, 0x97, 0x0d, 0xda, 0x2b, 0x29, 0xd8, 0xa0, 0x65, 0x8f, 0xe4, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf0, 0x41, 0xb3, 0xe6, 0x5d, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xf0, 0x8a, 0xf5, 0x6c, 0xc9, 0x95, 0xcd, 0x75, 0x6d, 0xf8, 0xc5, 0x65, 0x83, 0xd6, 0x54, 0x14, 0x36, 0x68, 0x0e, 0xef, 0xf3, 0xa0, 0xa1, 0xb5, 0xe4, 0x0d, 0x7f, 0xd1, 0x6c, 0xb0, 0xc0, 0xc2, 0x79, 0x83, 0xc2, 0x50, 0x75, 0x83, 0x96, 0x45, 0x92, 0x37, 0x58, 0x54, 0x9e, 0xb4, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0xc0, 0xff, 0x00, 0x1d, 0xb4, 0xfa, 0xef, 0xb0, 0x86, 0xe7, 0x49, 0x36, 0x68, 0xab, 0x2e, 0x79, 0xc3, 0x2f, 0x2e, 0x1b, 0x24, 0x39, 0x3c, 0x1d, 0x94, 0x75, 0x9e, 0x6b, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x1c, 0x3e, 0x0f, 0xda, 0xf0, 0x8b, 0xcb, 0x06, 0xed, 0x95, 0x14, 0x6c, 0xd0, 0x1c, 0xde, 0x67, 0x1b, 0x14, 0x86, 0xaa, 0x6b, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xf0, 0xea, 0xb4, 0x80, 0x80, 0xb4, 0xb8, 0x84, 0x6d, 0xf8, 0xc5, 0x65, 0x83, 0x66, 0x85, 0x1a, 0x36, 0x68, 0x1d, 0x3d, 0x6d, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x5e, 0x49, 0xc1, 0x06, 0x49, 0x0e, 0x4f, 0xb5, 0xc1, 0x39, 0x7f, 0x69, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0xf4, 0x46, 0xfa, 0xa0, 0x39, 0x93, 0x84, 0x35, 0x3c, 0x4f, 0xb2, 0x41, 0x1b, 0x7b, 0xc9, 0x07, 0x4b, 0x18, 0xb5, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xf8, 0xc2, 0x40, 0x40, 0x56, 0x5c, 0xc2, 0x36, 0xfc, 0xe2, 0xb2, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0xee, 0x33, 0x79, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0xac, 0x50, 0xc3, 0x06, 0x0d, 0xcd, 0xa7, 0x1d, 0x34, 0x03, 0x9b, 0xdc, 0x41, 0x59, 0xe7, 0xb9, 0x1a, 0x3e, 0x57, 0xda, 0xe0, 0x2c, 0x26, 0x7a, 0x70, 0x88, 0xe9, 0x38, 0x68, 0x68, 0x1e, 0x79, 0x0d, 0x9a, 0x5e, 0x46, 0xde, 0xf0, 0x8b, 0xcb, 0x06, 0xcd, 0x99, 0x24, 0x6c, 0xd0, 0xf0, 0x33, 0xf2, 0x41, 0x59, 0xe7, 0xb9, 0x1a, 0x3e, 0x57, 0xda, 0x60, 0x59, 0xf1, 0xf3, 0xc1, 0x21, 0xa6, 0x63, 0xc3, 0x2f, 0x2e, 0x1b, 0x34, 0x0b, 0x89, 0xb0, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0xaf, 0xa4, 0x60, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0xee, 0xa0, 0xa9, 0xb1, 0xc0, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x4d, 0x3b, 0x3e, 0xac, 0xe1, 0x17, 0x97, 0x0d, 0x9a, 0x2f, 0x41, 0x38, 0x68, 0x5f, 0xb5, 0xab, 0x83, 0xb2, 0xce, 0x73, 0x0d, 0x5a, 0x8e, 0x46, 0xde, 0xf0, 0x8b, 0xcb, 0x06, 0xcd, 0x99, 0x24, 0x1c, 0xb4, 0x7c, 0x32, 0xb6, 0x1a, 0x3e, 0x57, 0xda, 0x60, 0xa9, 0x04, 0xf4, 0xc1, 0x21, 0xa6, 0x63, 0xc3, 0x2f, 0x2e, 0x1b, 0x34, 0x0b, 0x89, 0xb0, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0xaf, 0xa4, 0x60, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0xee, 0xa0, 0xe1, 0x11, 0xcb, 0x0e, 0x9a, 0xcc, 0x4e, 0x5e, 0x83, 0x76, 0xff, 0xbd, 0x0e, 0x1a, 0x0b, 0xed, 0x5a, 0x0d, 0x9f, 0x2b, 0x6d, 0xb0, 0xe0, 0x07, 0xfa, 0xe0, 0x10, 0xd3, 0xb1, 0xc1, 0xd1, 0x86, 0x6f, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x5f, 0x4e, 0x6e, 0x10, 0x9e, 0xaa, 0x1b, 0x9c, 0xf3, 0x97, 0x36, 0x68, 0xd7, 0xe7, 0x60, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0xf4, 0x9a, 0xc4, 0x41, 0x2a, 0xd0, 0xd8, 0x86, 0xaf, 0x70, 0x36, 0x28, 0x76, 0x34, 0xd7, 0xa0, 0x98, 0xc4, 0x5c, 0xc3, 0xe7, 0x4a, 0x1b, 0xac, 0x56, 0xf4, 0x3e, 0x38, 0xc4, 0x74, 0x6c, 0xb0, 0x6c, 0x0a, 0xfa, 0xa0, 0x19, 0x14, 0xa9, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x0b, 0x79, 0x0a, 0x6b, 0x78, 0x5b, 0xe7, 0xa0, 0x8d, 0x01, 0xe5, 0x36, 0xfc, 0xe2, 0xb2, 0x41, 0xeb, 0x96, 0x04, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0xf8, 0xa0, 0x8d, 0x01, 0xe5, 0x35, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x68, 0x63, 0x40, 0x79, 0xc3, 0xdb, 0x3a, 0x83, 0xc7, 0x07, 0x6d, 0x0c, 0x28, 0xd7, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x25, 0x52, 0xf5, 0x1a, 0xfe, 0xa2, 0xd9, 0x60, 0xf9, 0xbf, 0xf7, 0x86, 0xb7, 0x75, 0x36, 0x58, 0x5b, 0x04, 0x7d, 0xd0, 0x0c, 0x8a, 0xd4, 0x86, 0x5f, 0x94, 0x36, 0x58, 0x17, 0x6a, 0xbe, 0xe1, 0x2f, 0x9a, 0x0d, 0x16, 0x58, 0x41, 0x6f, 0x50, 0x90, 0xc6, 0x6e, 0xb0, 0xca, 0x73, 0x76, 0x83, 0x66, 0xea, 0x32, 0x37, 0xfc, 0xe2, 0xb2, 0x41, 0xc3, 0x8e, 0x13, 0x1b, 0xb4, 0xcb, 0x52, 0xb0, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0xf5, 0x6b, 0x62, 0x83, 0x06, 0xe0, 0x32, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0x6d, 0x2f, 0x4b, 0x1c, 0x34, 0x94, 0x23, 0x5a, 0xab, 0xe1, 0x73, 0xa5, 0x0d, 0x96, 0x85, 0x41, 0x1f, 0x1c, 0x62, 0x3a, 0x36, 0x38, 0xe7, 0x2f, 0x6d, 0xd0, 0x88, 0x6a, 0xc3, 0x06, 0xad, 0x93, 0x79, 0x6d, 0x70, 0xce, 0x5f, 0xda, 0xa0, 0xad, 0x5e, 0x83, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x4e, 0xec, 0x37, 0x6b, 0x50, 0x96, 0xbc, 0x6f, 0x90, 0xb8, 0x51, 0xbb, 0x41, 0xd9, 0x54, 0x7f, 0xd0, 0xe6, 0xef, 0xd7, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0xcb, 0xfb, 0xa0, 0x0f, 0xd6, 0xef, 0x41, 0x6f, 0x50, 0x18, 0xaa, 0xae, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0x83, 0xc5, 0x7d, 0xd0, 0x1b, 0x9c, 0xd8, 0x6f, 0xd6, 0xa0, 0x2c, 0x79, 0xdf, 0x20, 0x71, 0xa3, 0x76, 0x83, 0xb2, 0xa9, 0x7e, 0x0d, 0x6f, 0xeb, 0x0c, 0x1e, 0x1f, 0x2c, 0xee, 0x83, 0x6e, 0xc3, 0x2f, 0x4a, 0x1b, 0x34, 0x3d, 0x6d, 0xb9, 0x41, 0x09, 0x8f, 0xb9, 0x41, 0x3b, 0xa2, 0x5d, 0x1b, 0x34, 0x1a, 0x3c, 0xb0, 0xe1, 0x17, 0x97, 0x0d, 0x9a, 0xa7, 0x6e, 0x58, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0x78, 0xf0, 0xf4, 0xa0, 0x1d, 0xd1, 0xae, 0x83, 0xb2, 0xce, 0x73, 0x0d, 0x6f, 0xeb, 0x0c, 0x1e, 0x1f, 0x34, 0x0b, 0xa5, 0xbc, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0xed, 0x88, 0x76, 0x6d, 0x78, 0x5b, 0x67, 0x70, 0xfa, 0xa0, 0x1d, 0xd1, 0xae, 0x5a, 0x0d, 0x9f, 0x2b, 0x6d, 0xb0, 0x04, 0x11, 0xfa, 0xe0, 0x10, 0xd3, 0xb1, 0xe1, 0x17, 0x97, 0x0d, 0x1a, 0x51, 0x6d, 0xd8, 0xa0, 0x85, 0xd5, 0xae, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0xbb, 0xe6, 0x06, 0x07, 0x6d, 0xe6, 0x76, 0xb5, 0x1a, 0x3e, 0x57, 0xda, 0x60, 0x01, 0x2c, 0xf4, 0xc1, 0x21, 0xa6, 0x63, 0x83, 0x73, 0xfe, 0xd2, 0x06, 0x6d, 0xf5, 0x1a, 0x6c, 0x50, 0x50, 0x64, 0x6e, 0x70, 0xb4, 0xe1, 0x5b, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xa4, 0xb4, 0xe0, 0x0d, 0x0a, 0x8a, 0xcc, 0x83, 0x54, 0xa0, 0xb1, 0x83, 0xb2, 0xcc, 0x73, 0xc3, 0xbb, 0x3d, 0x6b, 0x50, 0x96, 0xbc, 0x6f, 0x50, 0xb6, 0xa0, 0x6e, 0x50, 0x36, 0xd5, 0xaf, 0x41, 0x21, 0x98, 0x7a, 0xb0, 0xd6, 0xb4, 0xbb, 0x0d, 0x92, 0xd2, 0x82, 0x0f, 0xda, 0x57, 0xed, 0x5a, 0x0d, 0x9f, 0x2b, 0x6d, 0xb0, 0xcc, 0x17, 0xfa, 0xe0, 0x10, 0xd3, 0xb1, 0xc1, 0x39, 0x7f, 0x69, 0x83, 0x66, 0x85, 0x1a, 0x36, 0x68, 0x67, 0xcd, 0x72, 0x83, 0x73, 0xfe, 0xd2, 0x06, 0x6d, 0xf5, 0x1a, 0x6c, 0x50, 0x50, 0x64, 0x6e, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x6c, 0xd0, 0x74, 0x3f, 0xd7, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x2c, 0x79, 0xdf, 0xa0, 0x70, 0x13, 0xdd, 0xa0, 0x6c, 0xaa, 0x3f, 0x68, 0x33, 0xb7, 0xeb, 0x60, 0xed, 0x9e, 0xfa, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0x0d, 0x51, 0x74, 0xad, 0x41, 0xd1, 0x69, 0xbc, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x65, 0x0b, 0xea, 0x41, 0xa3, 0x88, 0xca, 0x1b, 0x24, 0xa5, 0x05, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0x0a, 0xc1, 0xd4, 0x83, 0xc5, 0xa1, 0xdd, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0xbf, 0xb8, 0x1c, 0x34, 0x74, 0xa7, 0x7c, 0x50, 0x96, 0x79, 0xb6, 0x41, 0xd1, 0x69, 0xbc, 0x41, 0xfb, 0x8e, 0xca, 0x1b, 0x24, 0xa5, 0x05, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xeb, 0x0c, 0x0e, 0x0f, 0x5e, 0x1f, 0x34, 0x44, 0xd1, 0xb5, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x2c, 0x79, 0xdf, 0xa0, 0x6c, 0x41, 0xdd, 0xa0, 0x6c, 0xaa, 0x5f, 0xc3, 0xdb, 0x3a, 0x83, 0xc7, 0x07, 0x6d, 0x7d, 0x2a, 0x77, 0xd0, 0xd0, 0x9d, 0x72, 0xab, 0xe1, 0x73, 0xa5, 0x0d, 0x96, 0x3b, 0x43, 0x1f, 0x1c, 0x62, 0x3a, 0x36, 0xfc, 0xe2, 0xb2, 0x41, 0xb3, 0x42, 0x0d, 0x1b, 0xb4, 0xb3, 0x66, 0xb9, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0xd7, 0xdc, 0xe0, 0xa0, 0x7d, 0xd5, 0xae, 0x56, 0xc3, 0xe7, 0x4a, 0x1b, 0x2c, 0xe7, 0x86, 0x3e, 0x38, 0xc4, 0x74, 0x6c, 0xf8, 0xc5, 0x65, 0x83, 0xa6, 0x53, 0x13, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xcd, 0x56, 0x1d, 0x1c, 0xb4, 0x8c, 0xe5, 0xd5, 0x6a, 0xf8, 0x5c, 0x69, 0x83, 0x85, 0xed, 0xd0, 0x07, 0x87, 0x98, 0x8e, 0x0d, 0xce, 0xf9, 0x4b, 0x1b, 0x34, 0xa2, 0xda, 0xb0, 0x41, 0xeb, 0x64, 0x5e, 0x1b, 0x9c, 0xf3, 0x97, 0x36, 0x68, 0x90, 0xed, 0x60, 0x83, 0x82, 0x22, 0x73, 0x83, 0xa3, 0x0d, 0xdf, 0x06, 0xcd, 0xad, 0x29, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0x36, 0xe4, 0x94, 0x37, 0x48, 0x4a, 0x0b, 0x3e, 0x68, 0x33, 0xb7, 0x6b, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0xe2, 0x7d, 0xe8, 0x83, 0x43, 0x4c, 0xc7, 0x06, 0xe7, 0xfc, 0xa5, 0x0d, 0x5a, 0x53, 0x33, 0xd8, 0xa0, 0x85, 0xd5, 0xae, 0x0d, 0x8e, 0x36, 0x7c, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x82, 0x22, 0x73, 0x83, 0xe6, 0xd6, 0x94, 0x3b, 0x68, 0xb3, 0x58, 0x79, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0x02, 0x8c, 0xe8, 0x83, 0x43, 0x4c, 0xc7, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0xbe, 0x49, 0xe1, 0xa0, 0xc9, 0x57, 0xe5, 0xd5, 0xf0, 0xb9, 0xd2, 0x06, 0xab, 0x7a, 0xa2, 0x0f, 0x0e, 0x31, 0x1d, 0x1b, 0x7e, 0x71, 0xd9, 0xa0, 0x85, 0xd5, 0xae, 0x0d, 0x1a, 0x0b, 0xed, 0xda, 0xa0, 0xd5, 0xdf, 0xaf, 0x35, 0xbc, 0xad, 0x33, 0xf8, 0x7c, 0xd0, 0x0c, 0x8a, 0x54, 0xab, 0xe1, 0x73, 0xa5, 0x0d, 0xd6, 0xb7, 0x45, 0x1f, 0x1c, 0x62, 0x3a, 0x36, 0xfc, 0xe2, 0xb2, 0x41, 0x0b, 0xab, 0x5d, 0x1b, 0x34, 0x16, 0xda, 0x75, 0xd0, 0xe6, 0xef, 0xd7, 0x6a, 0xf8, 0x5c, 0x69, 0x83, 0x75, 0x29, 0xd1, 0x07, 0x87, 0x98, 0x8e, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x58, 0x68, 0xd7, 0x41, 0xfb, 0xaa, 0x5d, 0xab, 0xe1, 0x73, 0xa5, 0x0d, 0x16, 0x6d, 0x45, 0x1f, 0x1c, 0x62, 0x3a, 0x0e, 0x1a, 0x02, 0x44, 0x5b, 0x83, 0x86, 0x60, 0x61, 0x37, 0x7c, 0x85, 0xb3, 0xe1, 0x2f, 0x9a, 0x0d, 0x16, 0x58, 0x38, 0x6f, 0x50, 0xc2, 0x63, 0x6e, 0xd0, 0xf8, 0x6a, 0xd7, 0x06, 0x0d, 0xcc, 0x6a, 0x6e, 0xf8, 0xc5, 0x65, 0x83, 0xb6, 0xcb, 0xbb, 0x36, 0x68, 0x06, 0x2b, 0xb9, 0xd5, 0xf0, 0xb9, 0xd2, 0x06, 0xeb, 0x32, 0xa3, 0x0f, 0x0e, 0x31, 0x1d, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0x17, 0xcd, 0x06, 0x0b, 0x2c, 0x9c, 0x37, 0x28, 0xe1, 0x31, 0x37, 0x68, 0x7c, 0xb5, 0x6b, 0x83, 0x35, 0x54, 0xce, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0xb4, 0x02, 0xde, 0xb5, 0x41, 0xdb, 0xe5, 0x5d, 0x07, 0x6d, 0xf6, 0x2b, 0xaf, 0x86, 0xcf, 0x95, 0x36, 0x58, 0xb4, 0x35, 0x7d, 0x70, 0x88, 0xe9, 0xd8, 0xf0, 0x8b, 0xcb, 0x06, 0xad, 0x59, 0x28, 0x1c, 0x34, 0x5d, 0xda, 0xb5, 0x1a, 0x3e, 0x57, 0xda, 0x60, 0xdd, 0x69, 0xf4, 0xc1, 0x21, 0xa6, 0x63, 0xc3, 0x2f, 0x2e, 0x1b, 0xb4, 0x4c, 0x9d, 0xb0, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0x23, 0xbd, 0xe0, 0xa0, 0x7d, 0xd5, 0xae, 0x0d, 0x9a, 0x33, 0x49, 0x38, 0x68, 0x19, 0xcb, 0x6b, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0x8a, 0xe2, 0xe8, 0x83, 0x43, 0x4c, 0xc7, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0x16, 0x12, 0x61, 0x83, 0xc6, 0x42, 0xbb, 0x36, 0x68, 0xf8, 0x19, 0xb9, 0xd5, 0xf0, 0xb9, 0xd2, 0x06, 0x0b, 0x15, 0xa4, 0x0f, 0x0e, 0x31, 0x1d, 0x1b, 0x7e, 0x71, 0xd9, 0xa0, 0x59, 0x48, 0x84, 0x0d, 0x5a, 0x58, 0xed, 0xda, 0xa0, 0xb1, 0xd0, 0xae, 0x0d, 0x5a, 0xfd, 0xfd, 0xda, 0xa0, 0x49, 0x71, 0xe5, 0x83, 0xb2, 0xce, 0x73, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0x7a, 0x0c, 0xe9, 0x83, 0x43, 0x4c, 0xc7, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0x16, 0x12, 0x61, 0x83, 0x16, 0x56, 0xbb, 0x36, 0x68, 0x2c, 0xb4, 0x6b, 0x83, 0x56, 0x7f, 0xbf, 0x0e, 0xca, 0x3a, 0xcf, 0xd5, 0xf0, 0xb9, 0xd2, 0x06, 0xcb, 0xa6, 0xa3, 0x0f, 0x0e, 0x31, 0x1d, 0x1b, 0x7e, 0x71, 0xd9, 0xa0, 0x59, 0x48, 0x84, 0x0d, 0x5a, 0x58, 0xed, 0xda, 0xa0, 0xb1, 0xd0, 0xae, 0x83, 0xb2, 0xce, 0x73, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0xda, 0xf0, 0xe8, 0x83, 0x43, 0x4c, 0xc7, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0xb0, 0x20, 0x61, 0x83, 0x25, 0x8c, 0xda, 0x07, 0x2d, 0x63, 0x79, 0xad, 0x86, 0xcf, 0x95, 0x36, 0x58, 0x74, 0x22, 0x7d, 0x70, 0x88, 0xe9, 0xd8, 0x60, 0x51, 0x79, 0xd2, 0x06, 0x2d, 0xb5, 0x22, 0x6c, 0xd0, 0xc2, 0x6a, 0xd7, 0x06, 0x8d, 0x85, 0x76, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x6c, 0xd0, 0x44, 0xd6, 0xd6, 0xc1, 0x71, 0x79, 0x66, 0xc3, 0x57, 0x38, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0xd0, 0x2f, 0xd9, 0x20, 0xa4, 0x4c, 0xd6, 0xf0, 0xb9, 0xd2, 0xc1, 0xba, 0xdc, 0xe8, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x68, 0x10, 0xf8, 0x6b, 0x83, 0x82, 0x22, 0x73, 0x83, 0x12, 0x1e, 0x73, 0xc1, 0xe9, 0x83, 0x06, 0x81, 0xbf, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0x2f, 0x2e, 0x1b, 0xb4, 0x4c, 0x7c, 0xb9, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0x05, 0x26, 0x7b, 0xd0, 0x4a, 0xd9, 0xd6, 0x41, 0x59, 0xe7, 0xb9, 0x86, 0xb7, 0x75, 0x06, 0x4f, 0x0f, 0x1a, 0x04, 0xfe, 0xea, 0xa0, 0xac, 0xf3, 0xdc, 0xa0, 0x30, 0x54, 0x5d, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x96, 0x89, 0x2f, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0xab, 0xc0, 0x64, 0x37, 0x68, 0x25, 0x75, 0xab, 0x83, 0xb2, 0xce, 0xf3, 0xa0, 0xb5, 0xb3, 0xe5, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x83, 0xf6, 0x3d, 0xb7, 0xd6, 0xa0, 0x41, 0xe0, 0xaf, 0x0d, 0x6f, 0xeb, 0x1c, 0x34, 0xe0, 0xb5, 0xdc, 0x6a, 0xf8, 0x5c, 0x69, 0x83, 0xc5, 0xf4, 0xd1, 0x07, 0x87, 0x98, 0x8e, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x0d, 0x0a, 0x8a, 0xcc, 0x83, 0x56, 0x7f, 0xbf, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x0d, 0xc2, 0x35, 0x6c, 0xd0, 0x58, 0x68, 0xd7, 0x06, 0xed, 0x64, 0x2c, 0xb7, 0xc1, 0x39, 0x7f, 0x69, 0x83, 0x46, 0x54, 0x1b, 0x36, 0x68, 0x2c, 0xb4, 0x6b, 0x83, 0x73, 0xfe, 0xd2, 0x06, 0xcd, 0x99, 0x24, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x4e, 0x04, 0x6d, 0x1b, 0xb4, 0xb0, 0xda, 0xb5, 0x86, 0xbf, 0x68, 0x36, 0x58, 0x3b, 0xf2, 0xbc, 0xe1, 0x17, 0x97, 0x0d, 0x1a, 0x1b, 0x90, 0x3a, 0x28, 0xeb, 0x3c, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0x25, 0x52, 0xf5, 0x06, 0xad, 0xfe, 0x7e, 0xad, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0x1a, 0x00, 0xe8, 0x83, 0xe5, 0x65, 0xce, 0x1b, 0x7e, 0x71, 0xd9, 0xe0, 0x74, 0x91, 0xb1, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0x10, 0xae, 0x61, 0x83, 0x86, 0xe6, 0xd3, 0x0e, 0x0e, 0xbd, 0x7c, 0xb5, 0x1a, 0x3e, 0x57, 0xda, 0x60, 0x1d, 0xb1, 0xf4, 0xc1, 0x21, 0xa6, 0x63, 0xc3, 0x2f, 0x2e, 0x1b, 0xb4, 0x4c, 0x9d, 0xb0, 0x41, 0x8b, 0x3c, 0xcb, 0x07, 0x6d, 0xe6, 0x76, 0xad, 0x86, 0xcf, 0x95, 0x36, 0x58, 0x25, 0x2f, 0x7d, 0x70, 0x88, 0xe9, 0xd8, 0xf0, 0x8b, 0xcb, 0x06, 0x2d, 0x53, 0x27, 0x6c, 0xd0, 0x78, 0x69, 0xd7, 0x41, 0x9b, 0xb9, 0x5d, 0xab, 0xe1, 0x73, 0xa5, 0x0d, 0xd6, 0xb1, 0x4c, 0x1f, 0x1c, 0x62, 0x3a, 0x36, 0xbc, 0xdb, 0xb3, 0x86, 0x4b, 0x6a, 0x01, 0xff, 0x4c, 0x2e, 0x0d, 0xee, 0xa0, 0x79, 0x83, 0xaf, 0x83, 0xf6, 0x55, 0xbb, 0x56, 0xc3, 0xe7, 0x4a, 0x1b, 0xac, 0x21, 0x9c, 0x3e, 0x38, 0xc4, 0x74, 0x6c, 0x70, 0xce, 0x5f, 0xda, 0xa0, 0xc1, 0x9f, 0x85, 0x35, 0x28, 0x0c, 0x55, 0xd7, 0xf0, 0xc6, 0xdd, 0xc1, 0x42, 0xcd, 0xe0, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x01, 0xcf, 0xac, 0x6c, 0xdd, 0xa0, 0x2c, 0x79, 0x5f, 0xc0, 0x37, 0x2b, 0x1b, 0x5b, 0xdb, 0xa0, 0xb1, 0xfb, 0xae, 0x83, 0xf6, 0x55, 0xbb, 0x36, 0x28, 0x06, 0x64, 0xd7, 0xa0, 0x09, 0xe0, 0xe5, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x4d, 0x69, 0x15, 0x6c, 0xb0, 0x2e, 0xbb, 0x6e, 0x0d, 0x6f, 0xeb, 0x0c, 0x5e, 0x1f, 0x34, 0x6e, 0xbc, 0xdc, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0xd7, 0xdc, 0x60, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x2c, 0x24, 0xc2, 0x06, 0xed, 0xa3, 0x27, 0xaf, 0xe1, 0x17, 0x97, 0x0d, 0x9a, 0x76, 0x7c, 0x58, 0xc3, 0x2f, 0x2e, 0x1b, 0x34, 0x08, 0xd7, 0xb0, 0x41, 0x43, 0xf3, 0x69, 0x07, 0xed, 0xab, 0x76, 0x75, 0x50, 0xd6, 0x79, 0x76, 0xd0, 0x58, 0x68, 0xd7, 0x6a, 0xf8, 0x5c, 0x69, 0x83, 0xb5, 0x9a, 0xd3, 0x07, 0x87, 0x98, 0x8e, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0xe0, 0xcf, 0xc2, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0x31, 0xde, 0xe5, 0x83, 0x56, 0x5d, 0x95, 0x0f, 0xda, 0xcc, 0xed, 0x5a, 0x0d, 0x9f, 0x2b, 0x6d, 0xb0, 0x46, 0x76, 0xfa, 0xe0, 0x10, 0xd3, 0xb1, 0xc1, 0x39, 0x7f, 0x69, 0x83, 0x86, 0x14, 0x16, 0xd6, 0xa0, 0x30, 0x54, 0x5d, 0xc3, 0x1b, 0x77, 0x1b, 0x5e, 0xbe, 0x3b, 0xa4, 0x81, 0x36, 0x28, 0x0c, 0x55, 0x37, 0x68, 0x4c, 0xfe, 0x60, 0x83, 0x73, 0xfe, 0xd2, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0x29, 0xad, 0x82, 0x83, 0x86, 0xee, 0x94, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0xcd, 0x43, 0x3f, 0x1c, 0xb4, 0x99, 0xdb, 0xb5, 0x41, 0x61, 0xa8, 0xba, 0x41, 0x03, 0x12, 0x08, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x03, 0x9e, 0xdb, 0x9b, 0xb8, 0xe1, 0x2f, 0x9a, 0x0d, 0xd6, 0x35, 0x3f, 0x1f, 0x14, 0x14, 0x99, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0x17, 0xcd, 0x06, 0xeb, 0x9a, 0x9f, 0x37, 0x28, 0xe1, 0x31, 0x37, 0x68, 0x10, 0xf8, 0x6b, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0x96, 0xfe, 0x72, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xa6, 0xb4, 0x0a, 0x36, 0x48, 0x4a, 0x0b, 0x5e, 0xc3, 0xdb, 0x3a, 0x83, 0xc3, 0x07, 0x4d, 0xa1, 0x2d, 0xb7, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0x1e, 0xfa, 0x61, 0x0d, 0x6f, 0xeb, 0x0c, 0x1e, 0x1f, 0x34, 0x85, 0xb6, 0x5c, 0x6b, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x07, 0x4d, 0xda, 0x2d, 0x77, 0xd0, 0xa4, 0xb8, 0xf2, 0x6a, 0xf8, 0x5c, 0x69, 0x83, 0xf5, 0xda, 0xd3, 0x07, 0x87, 0x98, 0x8e, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0xaa, 0xae, 0xc2, 0x06, 0x2d, 0xac, 0x76, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0x92, 0xd2, 0x82, 0x0f, 0x4e, 0x0b, 0x34, 0x1b, 0x14, 0x14, 0x99, 0x07, 0x6d, 0xe6, 0x76, 0xad, 0x86, 0xcf, 0x95, 0x36, 0x58, 0x32, 0x3f, 0x7d, 0x70, 0x88, 0xe9, 0xd8, 0xf0, 0x8b, 0xcb, 0x06, 0xcd, 0x0a, 0x35, 0xac, 0xe1, 0x17, 0x97, 0x0d, 0x1a, 0xfc, 0x59, 0xd8, 0xa0, 0x85, 0xd5, 0xae, 0x83, 0xa6, 0x0c, 0xa4, 0x0e, 0xda, 0xcc, 0xed, 0x5a, 0x0d, 0x9f, 0x2b, 0x6d, 0xb0, 0x6c, 0x85, 0xfa, 0xe0, 0x10, 0xd3, 0xb1, 0xe1, 0x17, 0x97, 0x0d, 0x1a, 0xfc, 0x59, 0x58, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0xe3, 0x6e, 0xc3, 0xcb, 0x77, 0x81, 0xcf, 0x96, 0x66, 0x57, 0x6e, 0xd0, 0x12, 0xfc, 0x72, 0x07, 0x6d, 0xe6, 0x76, 0xad, 0x86, 0xcf, 0x95, 0x36, 0x58, 0x1e, 0x44, 0x7d, 0x70, 0x88, 0xe9, 0xd8, 0xf0, 0x8b, 0xcb, 0x06, 0x0d, 0xfe, 0x2c, 0xac, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0x71, 0xb7, 0xe1, 0xe5, 0xbb, 0x43, 0x64, 0x0e, 0x1a, 0x89, 0x5f, 0x3e, 0x68, 0x33, 0xb7, 0x6b, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0x8a, 0x2d, 0xea, 0x83, 0x43, 0x4c, 0xc7, 0x06, 0xe7, 0xfc, 0xa5, 0x0d, 0x1a, 0xfc, 0x59, 0x58, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0xe3, 0x6e, 0xc3, 0xcb, 0x77, 0x07, 0x6d, 0x81, 0xac, 0xac, 0xe1, 0x17, 0x97, 0x0d, 0x1a, 0xed, 0x2b, 0x38, 0x68, 0xe8, 0x4e, 0x79, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x2c, 0x24, 0xc2, 0x06, 0xed, 0xa3, 0x27, 0xaf, 0xe1, 0x17, 0x97, 0x0d, 0x9a, 0x76, 0x7c, 0x38, 0x68, 0x33, 0xb7, 0xeb, 0xa0, 0xac, 0xf3, 0xec, 0xa0, 0xd5, 0xdf, 0xaf, 0xd5, 0xf0, 0xb9, 0xd2, 0x06, 0x6b, 0xe9, 0xa8, 0x0f, 0x0e, 0x31, 0x1d, 0x1b, 0x7e, 0x71, 0xd9, 0xa0, 0xc1, 0x9f, 0x85, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0x37, 0xee, 0x36, 0xbc, 0x7c, 0x17, 0xf8, 0x67, 0x65, 0x72, 0xed, 0x41, 0xfb, 0xaa, 0x5d, 0x07, 0x6d, 0xe6, 0x76, 0xad, 0x86, 0xcf, 0x95, 0x36, 0x58, 0xb3, 0x48, 0x7d, 0x70, 0x88, 0xe9, 0xd8, 0xe0, 0x9c, 0xbf, 0xb4, 0x41, 0x23, 0xaa, 0x0d, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x36, 0xd2, 0x1c, 0x36, 0x68, 0x2c, 0xb4, 0x6b, 0x83, 0x26, 0x06, 0x36, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0x4d, 0x0c, 0x6c, 0x1e, 0xb4, 0xf9, 0xfb, 0xd5, 0x06, 0x8b, 0xca, 0x93, 0x36, 0x68, 0x36, 0xe3, 0x61, 0x83, 0x96, 0x04, 0xa4, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x0d, 0xc2, 0x35, 0x6c, 0xd0, 0xd0, 0x7c, 0xda, 0x41, 0x83, 0xe2, 0xca, 0x1b, 0x7e, 0x71, 0xd9, 0xa0, 0xfd, 0xc9, 0x85, 0x0d, 0x5a, 0x58, 0xed, 0x5a, 0xc3, 0x2f, 0x2e, 0x1b, 0x24, 0xa5, 0x05, 0x1f, 0x1c, 0x15, 0xd8, 0x36, 0x68, 0xec, 0x8d, 0xb9, 0xd5, 0xf0, 0xb9, 0xd2, 0x06, 0xab, 0x76, 0xa9, 0x0f, 0x0e, 0x31, 0x1d, 0x1b, 0xbe, 0xc2, 0xd9, 0xa0, 0x84, 0xc7, 0xdc, 0xa0, 0xf1, 0xd5, 0xae, 0x0d, 0x9a, 0x18, 0xd8, 0xdc, 0x20, 0x48, 0x4f, 0xd7, 0x38, 0x74, 0xd0, 0xac, 0x79, 0xd7, 0x1a, 0x14, 0xa9, 0x98, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0x2f, 0x2e, 0x1b, 0x34, 0x56, 0x61, 0x70, 0xd0, 0x84, 0x5a, 0xf2, 0x41, 0x93, 0xff, 0xca, 0x6b, 0xb0, 0x92, 0x63, 0x7b, 0xc3, 0x2f, 0x2e, 0x1b, 0x34, 0x9e, 0x98, 0x7c, 0xd0, 0xe4, 0xbf, 0xf2, 0x1a, 0xac, 0xba, 0xd8, 0xde, 0xf0, 0x8b, 0xcb, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0xe1, 0x1f, 0x86, 0x83, 0xa6, 0x13, 0x93, 0x0f, 0x9a, 0xfc, 0x57, 0x5e, 0x83, 0x55, 0x27, 0xdb, 0x1b, 0x7e, 0x71, 0xd9, 0xa0, 0x59, 0x48, 0x84, 0x0d, 0x1a, 0x4f, 0x4c, 0x5e, 0x83, 0xa3, 0xeb, 0xe0, 0x1a, 0x7e, 0x71, 0x39, 0x68, 0xf2, 0x5f, 0xb9, 0xd6, 0x60, 0x7d, 0xc8, 0xf6, 0x06, 0x47, 0x1b, 0xbe, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0xb3, 0x62, 0x08, 0x1b, 0x34, 0xbb, 0xc8, 0x7c, 0x90, 0x0a, 0x34, 0xb6, 0xe1, 0x2f, 0x9a, 0x0d, 0x16, 0x58, 0x38, 0x6f, 0x70, 0xce, 0x5f, 0xda, 0xa0, 0x19, 0x50, 0x86, 0x0d, 0xda, 0x1d, 0xd3, 0xdc, 0xe0, 0x9c, 0xbf, 0xb4, 0x41, 0x83, 0x6c, 0x07, 0x1b, 0x14, 0x14, 0x99, 0x1b, 0xfe, 0xa2, 0xd9, 0x60, 0x71, 0x1d, 0xf4, 0x06, 0x47, 0x1b, 0xbe, 0x0d, 0x9a, 0x5b, 0x53, 0xde, 0xf0, 0x17, 0xcd, 0x06, 0x6b, 0x4d, 0xbb, 0x37, 0x58, 0x52, 0x9d, 0xb4, 0xc1, 0x59, 0x56, 0x6a, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xc0, 0x9b, 0xab, 0x3b, 0x37, 0xfc, 0xe2, 0xb2, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0x05, 0x26, 0xbb, 0xc1, 0x12, 0x0e, 0xb7, 0x0e, 0xca, 0x3a, 0xcf, 0x0d, 0x0a, 0x43, 0xd5, 0x0d, 0x92, 0xd2, 0x82, 0x37, 0x58, 0x54, 0x9e, 0xb4, 0x41, 0xb3, 0x19, 0x0f, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x06, 0x6a, 0x99, 0x5b, 0xc3, 0x2f, 0x2e, 0x1b, 0x34, 0x67, 0x92, 0xb0, 0x41, 0x5b, 0xbf, 0xcc, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x17, 0x97, 0x0d, 0x5a, 0x4f, 0x02, 0x3b, 0x28, 0xeb, 0x3c, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0x49, 0x69, 0xc1, 0x07, 0xa7, 0xc5, 0xba, 0x0e, 0xca, 0x3a, 0xcf, 0x36, 0xfc, 0xe2, 0xb2, 0x41, 0x73, 0x26, 0x09, 0x1b, 0xb4, 0xf5, 0xcb, 0xbc, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0x2f, 0x2e, 0x1b, 0xac, 0x02, 0x93, 0x3d, 0x28, 0x28, 0xc5, 0x0f, 0xca, 0x3a, 0xcf, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x73, 0x26, 0x09, 0x1b, 0x2c, 0x61, 0xd4, 0x5e, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xb6, 0x7e, 0x99, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0x49, 0x69, 0xc1, 0x1b, 0x24, 0x8f, 0xf3, 0xd6, 0x41, 0x59, 0xe7, 0x59, 0x07, 0x65, 0x9d, 0x67, 0xad, 0x86, 0xcf, 0x95, 0x36, 0x58, 0x96, 0x4d, 0x7d, 0x70, 0x88, 0xe9, 0xd8, 0x20, 0x48, 0x4f, 0x37, 0x68, 0x47, 0xb4, 0x6b, 0x0d, 0x42, 0xf0, 0xe1, 0x60, 0x0d, 0x95, 0xf3, 0x6a, 0xf8, 0x5c, 0xe9, 0xa0, 0xb5, 0x76, 0xaa, 0x0d, 0x6f, 0xeb, 0x1c, 0x34, 0x0b, 0xa5, 0xbc, 0x06, 0x45, 0x2a, 0xe6, 0x06, 0xe7, 0xfc, 0xa5, 0x0d, 0x1a, 0x51, 0x6d, 0xd8, 0xa0, 0x85, 0xd5, 0xae, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x0d, 0x1a, 0x5b, 0x42, 0xdd, 0xf0, 0x17, 0xcd, 0x06, 0xeb, 0x9a, 0x9f, 0x0f, 0x1a, 0x0b, 0xed, 0xda, 0xf0, 0x15, 0xce, 0x86, 0xbf, 0x68, 0x36, 0x58, 0x60, 0xe1, 0xbc, 0x41, 0x90, 0x9e, 0x6e, 0xd0, 0xfe, 0x19, 0xea, 0x1a, 0xb4, 0x99, 0xce, 0xbc, 0xe1, 0x17, 0x97, 0x0d, 0x1a, 0x84, 0x6b, 0xd8, 0xa0, 0xa1, 0xf9, 0xb4, 0x35, 0xbc, 0xad, 0x33, 0x78, 0x7a, 0xd0, 0xfe, 0x19, 0x6a, 0x6b, 0x70, 0xca, 0xc6, 0xd8, 0xf0, 0x8b, 0xcb, 0x06, 0xcd, 0x42, 0x22, 0x6c, 0xd0, 0x3a, 0x7a, 0xda, 0x06, 0xad, 0xf6, 0x33, 0xaf, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0x41, 0xfb, 0x67, 0xa8, 0x1b, 0xde, 0xd6, 0x19, 0x9c, 0x3e, 0x68, 0xff, 0x0c, 0xb5, 0x83, 0xb2, 0xce, 0x73, 0x0d, 0x42, 0xf0, 0xe1, 0x20, 0x3c, 0x55, 0x6b, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0x6a, 0x78, 0xea, 0x83, 0x43, 0x4c, 0xc7, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x80, 0xa7, 0xf7, 0x96, 0x6f, 0xf8, 0xc5, 0x65, 0x83, 0xa6, 0xb4, 0x0a, 0x36, 0x58, 0x4b, 0x65, 0x77, 0xb0, 0x76, 0x4f, 0x7d, 0xc3, 0x2f, 0x2e, 0x1b, 0x34, 0x20, 0x81, 0xb0, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x2d, 0x56, 0x34, 0xb7, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0x40, 0x02, 0x61, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x68, 0x47, 0xf3, 0x41, 0xfb, 0xaa, 0x5d, 0x07, 0x65, 0x9d, 0x67, 0x07, 0x65, 0x9d, 0xe7, 0x6a, 0xf8, 0x5c, 0x69, 0x83, 0x95, 0x02, 0xd5, 0x07, 0x87, 0x98, 0x8e, 0x0d, 0x0f, 0x4a, 0xae, 0xe1, 0x17, 0x97, 0x0d, 0xda, 0x5b, 0x47, 0x58, 0xc3, 0x2f, 0x2e, 0x1b, 0x34, 0x9b, 0x87, 0xb0, 0xc1, 0xe9, 0x48, 0x64, 0x0d, 0x5a, 0xc8, 0x53, 0x38, 0x38, 0x5d, 0x64, 0xb4, 0xc1, 0xf1, 0x93, 0x6f, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x6c, 0xd5, 0xc1, 0x06, 0xa7, 0x8b, 0x8c, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x83, 0x70, 0x0d, 0x6b, 0x90, 0x94, 0x16, 0x7c, 0x50, 0x54, 0x8a, 0x1f, 0x9c, 0xe4, 0xf9, 0xea, 0xa0, 0xad, 0x13, 0xa9, 0xd5, 0xf0, 0xb9, 0xd2, 0x06, 0x8b, 0x36, 0xaa, 0x0f, 0x0e, 0x31, 0x1d, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0x17, 0xcd, 0x06, 0x0b, 0x2c, 0x9c, 0x37, 0x08, 0xd2, 0xd3, 0x0d, 0xda, 0x11, 0xed, 0x5a, 0x83, 0x10, 0x7c, 0xd8, 0xf0, 0x96, 0xdd, 0x1a, 0x9e, 0xb8, 0xdb, 0xf0, 0x2c, 0xde, 0xe0, 0xef, 0xe0, 0xf0, 0xe0, 0xe5, 0xe0, 0xee, 0xa0, 0x6d, 0xf0, 0x76, 0xf0, 0x71, 0xf0, 0xf9, 0xa0, 0x68, 0xaa, 0x3d, 0x08, 0x4f, 0xd5, 0x35, 0x28, 0x52, 0x31, 0x37, 0x38, 0xe7, 0x2f, 0x6d, 0xd0, 0x20, 0x5c, 0xc3, 0x06, 0x2d, 0x63, 0x24, 0x6f, 0xf8, 0x0a, 0x67, 0xc3, 0x5f, 0x34, 0x1b, 0x2c, 0xb0, 0x70, 0xde, 0xf0, 0x41, 0xce, 0x1a, 0x14, 0x93, 0x98, 0x1b, 0x84, 0xe0, 0xc3, 0x41, 0x33, 0x59, 0xca, 0x6b, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xa0, 0xdd, 0xe3, 0x83, 0x62, 0x07, 0xb2, 0x97, 0xe6, 0x12, 0xe7, 0x72, 0x56, 0xe6, 0xd6, 0x97, 0xda, 0xf0, 0x8b, 0xcb, 0x06, 0x0d, 0xc2, 0x35, 0x6c, 0xd0, 0xaa, 0x61, 0xf2, 0x06, 0x0d, 0xae, 0x33, 0xb7, 0xc1, 0x39, 0x7f, 0x69, 0x83, 0x46, 0x54, 0x1b, 0xd6, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0xa3, 0x67, 0x05, 0x04, 0xc4, 0xab, 0x07, 0x04, 0x24, 0x6c, 0xc3, 0x2f, 0x2e, 0x1b, 0xb4, 0xa6, 0xa2, 0xb0, 0x41, 0x92, 0xc3, 0xd3, 0x41, 0xab, 0x55, 0xca, 0x1b, 0x9c, 0xf3, 0x97, 0x36, 0x68, 0x44, 0xb5, 0x61, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0xf8, 0xd8, 0x23, 0x41, 0x89, 0x73, 0x39, 0x2b, 0x73, 0x03, 0xa1, 0x73, 0x89, 0x73, 0x39, 0x2b, 0x73, 0x4b, 0xe9, 0xdb, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0xa3, 0x67, 0x05, 0x04, 0xc4, 0xab, 0x07, 0x04, 0x44, 0x6c, 0xc3, 0x2f, 0x2e, 0x1b, 0xb4, 0xa6, 0xa2, 0xb0, 0x41, 0x73, 0x78, 0x9f, 0x1b, 0x34, 0xea, 0xd5, 0xdc, 0x06, 0xe7, 0xfc, 0xa5, 0x0d, 0x1a, 0x51, 0x6d, 0x58, 0xc3, 0xf3, 0x24, 0x1b, 0x34, 0x98, 0xd5, 0xbc, 0xc1, 0x39, 0x7f, 0x69, 0x83, 0xd6, 0x54, 0x14, 0xd6, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0xaf, 0x67, 0x05, 0x04, 0x64, 0xac, 0x87, 0xc5, 0x65, 0xc5, 0xc6, 0x45, 0xec, 0x60, 0x35, 0xeb, 0xeb, 0x06, 0xe7, 0xfc, 0xa5, 0x0d, 0x9a, 0x15, 0x6a, 0x58, 0xc3, 0x2f, 0x2e, 0x1b, 0xb4, 0x91, 0x5e, 0xb0, 0x41, 0xcb, 0xc4, 0x97, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x55, 0x60, 0xb2, 0x07, 0x87, 0xe5, 0x99, 0x83, 0xb2, 0xce, 0xf3, 0xa0, 0x71, 0xd2, 0xe4, 0x0d, 0x0a, 0x43, 0xd5, 0x35, 0x3c, 0x4f, 0xb2, 0xc1, 0x6a, 0x55, 0xe8, 0x83, 0x76, 0xcd, 0x0d, 0x36, 0x58, 0x54, 0x9e, 0xb4, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x3c, 0x21, 0x7d, 0xd0, 0xde, 0x3a, 0xc2, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0x41, 0xb8, 0x86, 0x0d, 0x5a, 0x35, 0x4c, 0x3e, 0x68, 0x5f, 0xb5, 0x6b, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x2c, 0x24, 0xc2, 0x06, 0x8d, 0x93, 0x26, 0xaf, 0xe1, 0x17, 0x97, 0x0d, 0xda, 0x2b, 0x29, 0xd8, 0x60, 0x35, 0xeb, 0x6b, 0x07, 0x65, 0x9d, 0xe7, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0x0d, 0x8a, 0x18, 0xc8, 0x58, 0x6a, 0x83, 0x73, 0xfe, 0xd2, 0x06, 0xcd, 0x99, 0x24, 0xac, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x46, 0x18, 0x0a, 0x8b, 0xcb, 0x8a, 0x0d, 0xc8, 0x58, 0xea, 0xa0, 0xb9, 0xcf, 0xe4, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x17, 0x97, 0x35, 0xfc, 0xe2, 0x72, 0xd0, 0x2a, 0x64, 0xf3, 0x06, 0xad, 0x99, 0x36, 0x77, 0x50, 0xd6, 0x79, 0xb6, 0x1a, 0x3e, 0x57, 0xda, 0x60, 0xe9, 0x4b, 0xf5, 0xc1, 0x21, 0xa6, 0x63, 0xc3, 0x2f, 0x2e, 0x1b, 0x34, 0x9b, 0x87, 0xb0, 0x41, 0x4b, 0x06, 0xc9, 0x07, 0x6d, 0xe6, 0x76, 0xad, 0x86, 0xcf, 0x95, 0x36, 0x58, 0x40, 0x54, 0x7d, 0x70, 0x88, 0xe9, 0xd8, 0xf0, 0x8b, 0xcb, 0x06, 0x8d, 0xa8, 0x36, 0x1c, 0xb4, 0xb9, 0xba, 0xbc, 0x1a, 0x3e, 0x57, 0xda, 0x60, 0x71, 0x95, 0xf5, 0xc1, 0x21, 0xa6, 0x63, 0x83, 0x73, 0xfe, 0xd2, 0x06, 0xcd, 0x0a, 0x35, 0x6c, 0xd0, 0xea, 0xef, 0xd7, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0xbb, 0xb6, 0x60, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x17, 0x97, 0x0d, 0x5a, 0x8b, 0x46, 0xdb, 0xa0, 0xa0, 0xc8, 0x5c, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x76, 0xb2, 0xd1, 0x36, 0x68, 0x2c, 0xb4, 0x6b, 0xc3, 0x2f, 0x2e, 0x1b, 0xb4, 0xb9, 0x9e, 0xb0, 0x86, 0xb7, 0x75, 0x06, 0xaf, 0x0f, 0xda, 0xc9, 0x46, 0x3b, 0x68, 0x33, 0xb7, 0xab, 0x83, 0xb2, 0xcc, 0xf3, 0xa0, 0xac, 0xf3, 0x5c, 0x0d, 0x9f, 0x2b, 0x6d, 0xb0, 0x5a, 0xab, 0xfa, 0xe0, 0x10, 0xd3, 0xb1, 0xe1, 0x17, 0x97, 0x0d, 0x1a, 0x84, 0x6b, 0x58, 0xc3, 0x2f, 0x2e, 0x1b, 0x34, 0x9b, 0x83, 0xb0, 0x41, 0x6b, 0xc6, 0xcc, 0x07, 0xed, 0xab, 0x76, 0x1d, 0xb4, 0x99, 0xdb, 0xb5, 0x1a, 0x3e, 0x57, 0xda, 0x60, 0xad, 0x5d, 0xf5, 0xc1, 0x21, 0xa6, 0x63, 0xc3, 0x2f, 0x2e, 0x1b, 0x34, 0xa2, 0xda, 0xb0, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0x4d, 0x45, 0xe1, 0xa0, 0x65, 0x2c, 0xaf, 0x83, 0x36, 0x7f, 0xbf, 0x56, 0xc3, 0xe7, 0x4a, 0x1b, 0x2c, 0x68, 0xac, 0x3e, 0x38, 0xc4, 0x74, 0x6c, 0xf8, 0xc5, 0x65, 0x83, 0x06, 0xa8, 0x19, 0x36, 0x68, 0x61, 0xb5, 0x6b, 0x83, 0x56, 0x7f, 0xbf, 0x0e, 0xda, 0xcc, 0xed, 0x5a, 0x0d, 0x9f, 0x2b, 0x6d, 0xb0, 0x70, 0xb4, 0xfa, 0xe0, 0x10, 0xd3, 0xb1, 0xe1, 0x17, 0x97, 0x0d, 0x1a, 0x84, 0x6b, 0x58, 0xc3, 0x2f, 0x2e, 0x1b, 0x34, 0x9b, 0x83, 0xb0, 0x41, 0x6b, 0xc6, 0xcc, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x86, 0x00, 0xd1, 0x0e, 0xca, 0x3a, 0xcf, 0x0e, 0xda, 0xfc, 0xfd, 0x5a, 0x0d, 0x9f, 0x2b, 0x6d, 0xb0, 0x8e, 0xb7, 0xfa, 0xe0, 0x10, 0xd3, 0xb1, 0xe1, 0x17, 0x97, 0x0d, 0x5a, 0x4a, 0x68, 0xd8, 0xa0, 0x85, 0xd5, 0xae, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x3b, 0x4f, 0x0e, 0x1b, 0x34, 0x16, 0xda, 0xb5, 0x41, 0xab, 0xbf, 0x5f, 0x07, 0xed, 0x0e, 0x2e, 0x1f, 0x34, 0x28, 0xae, 0xbc, 0x1a, 0x3e, 0x57, 0xda, 0x60, 0x55, 0x84, 0xf5, 0xc1, 0x21, 0xa6, 0x63, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xc0, 0xbb, 0xab, 0xcb, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0x89, 0xa0, 0x6d, 0x83, 0xc6, 0x42, 0xbb, 0xd6, 0xf0, 0x17, 0xcd, 0x06, 0x6b, 0x47, 0x9e, 0x37, 0xfc, 0xe2, 0xb2, 0x41, 0xcb, 0x1e, 0xc9, 0x07, 0x65, 0x9d, 0x67, 0x1b, 0x9c, 0xf3, 0x97, 0x36, 0x68, 0x10, 0xae, 0x61, 0x83, 0x96, 0x31, 0x92, 0x37, 0x38, 0xe7, 0x2f, 0x6d, 0xd0, 0x88, 0x6a, 0xc3, 0x1a, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xd0, 0xd1, 0xb3, 0x02, 0x02, 0x12, 0xd6, 0xd3, 0xe3, 0x83, 0x62, 0x07, 0xc2, 0x25, 0xe7, 0x72, 0x56, 0xe6, 0x96, 0xda, 0xf0, 0x8b, 0xcb, 0x06, 0xad, 0xa9, 0x28, 0x6c, 0x90, 0xe4, 0xf0, 0xb4, 0x41, 0x83, 0x70, 0x0d, 0x1b, 0xb4, 0x6a, 0x98, 0x7c, 0xd0, 0xe6, 0xef, 0xd7, 0x06, 0x8b, 0xca, 0x93, 0x36, 0x68, 0x29, 0xa1, 0x61, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0x50, 0x86, 0x73, 0x1b, 0x34, 0x14, 0x9c, 0xbc, 0xc1, 0x39, 0x7f, 0x69, 0x83, 0x06, 0xe1, 0x1a, 0xd6, 0xa0, 0x30, 0x54, 0x5d, 0x83, 0x73, 0xfe, 0xd2, 0x06, 0xad, 0xa9, 0x28, 0xac, 0xe1, 0x17, 0x97, 0x0d, 0x5a, 0x55, 0x8f, 0xd8, 0xa0, 0xa9, 0x0f, 0xe7, 0x83, 0xf6, 0x55, 0xbb, 0x0e, 0xda, 0x68, 0x4d, 0x3e, 0x68, 0xd5, 0x30, 0xf9, 0xa0, 0x49, 0x71, 0xe5, 0xd5, 0xf0, 0xb9, 0xd2, 0x06, 0xab, 0xa3, 0xab, 0x0f, 0x0e, 0x31, 0x1d, 0x1b, 0x7e, 0x71, 0xd9, 0xa0, 0x41, 0xb8, 0x86, 0x83, 0x36, 0xe0, 0x95, 0x57, 0xc3, 0xe7, 0x4a, 0x1b, 0x2c, 0x68, 0xb1, 0x3e, 0x38, 0xc4, 0x74, 0x6c, 0xf8, 0xc5, 0x65, 0x83, 0x06, 0xe1, 0x1a, 0xd6, 0xf0, 0x8b, 0xcb, 0x41, 0x23, 0x27, 0xcc, 0x07, 0x6d, 0xe6, 0x76, 0xad, 0x86, 0xcf, 0x95, 0x36, 0x58, 0x4a, 0x5e, 0x7d, 0x70, 0x88, 0xe9, 0xd8, 0xf0, 0x8b, 0xcb, 0x06, 0x8d, 0xa8, 0x36, 0x1c, 0xb4, 0x01, 0xaf, 0xbc, 0x1a, 0x3e, 0x57, 0xda, 0x60, 0x59, 0x90, 0xf5, 0xc1, 0x21, 0xa6, 0x63, 0xc3, 0x57, 0x38, 0x1b, 0xfe, 0xa2, 0xd9, 0x60, 0x81, 0x85, 0xf3, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0x8d, 0xaf, 0x76, 0x6d, 0xd0, 0x98, 0x81, 0xd4, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0xad, 0x80, 0x77, 0x6d, 0xd0, 0x76, 0x79, 0xd7, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0x10, 0xae, 0xe1, 0xa0, 0x39, 0x7f, 0xe5, 0x35, 0x68, 0xa7, 0xbd, 0x6b, 0xc3, 0x57, 0x38, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x34, 0xbe, 0xda, 0xb5, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0x4a, 0xab, 0x60, 0x83, 0x14, 0x27, 0xa7, 0x83, 0x82, 0x78, 0x7c, 0xc3, 0x2f, 0x2e, 0x1b, 0xb4, 0xf3, 0xe4, 0xb0, 0x41, 0xdb, 0xe5, 0x5d, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xa6, 0xb4, 0x0a, 0x36, 0x48, 0x71, 0x72, 0x3a, 0x28, 0x9c, 0x64, 0x0f, 0x9a, 0xfc, 0x57, 0x5e, 0x0d, 0x9f, 0x2b, 0x6d, 0xb0, 0x10, 0xdc, 0xfa, 0xe0, 0x10, 0xd3, 0xb1, 0xe1, 0x17, 0x97, 0x0d, 0xda, 0x79, 0x72, 0x38, 0x68, 0x0a, 0xbf, 0x79, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0xfa, 0x85, 0xeb, 0x83, 0x43, 0x4c, 0xc7, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0xe7, 0xc9, 0x61, 0x83, 0x16, 0x56, 0xbb, 0x36, 0x58, 0x43, 0xe5, 0x7c, 0xd0, 0x66, 0x6e, 0xd7, 0x6a, 0xf8, 0x5c, 0x69, 0x83, 0x45, 0x20, 0xd7, 0x07, 0x87, 0x98, 0x8e, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0xce, 0x93, 0xc3, 0x06, 0x2d, 0xac, 0x76, 0x6d, 0xd0, 0x58, 0x68, 0xd7, 0x06, 0x6b, 0xa8, 0x9c, 0x5b, 0x0d, 0x9f, 0x2b, 0x6d, 0xb0, 0xea, 0xde, 0xfa, 0xe0, 0x10, 0xd3, 0xb1, 0xe1, 0x17, 0x97, 0x0d, 0xda, 0x79, 0x72, 0x58, 0xc3, 0x2f, 0x2e, 0x1b, 0xb4, 0xbe, 0xf4, 0xb0, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0x40, 0xe5, 0xbd, 0x41, 0x93, 0x9a, 0x17, 0x07, 0x6b, 0xf7, 0xd4, 0x0f, 0xda, 0x57, 0xed, 0x3a, 0x68, 0x2e, 0xbf, 0x79, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0xfa, 0x53, 0xeb, 0x83, 0x43, 0x4c, 0xc7, 0x86, 0xaf, 0x70, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x68, 0x47, 0xb4, 0x6b, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x3e, 0x51, 0xc1, 0x41, 0xbb, 0x83, 0xcb, 0x1b, 0x2c, 0x2a, 0x4f, 0xda, 0xa0, 0x9d, 0x27, 0x87, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0xeb, 0x4b, 0x0f, 0x1b, 0xb4, 0xf5, 0xa4, 0x7c, 0xd0, 0xbe, 0x6a, 0xd7, 0x06, 0x0d, 0x4d, 0x29, 0x1f, 0xb4, 0x5b, 0xa5, 0xbc, 0x1a, 0x3e, 0x57, 0xda, 0x60, 0xa5, 0xcd, 0xf5, 0xc1, 0x21, 0xa6, 0x63, 0xc3, 0x2f, 0x2e, 0x1b, 0x34, 0x9b, 0xe2, 0xb0, 0x41, 0x0b, 0xab, 0x5d, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x13, 0x41, 0xdb, 0x06, 0xad, 0xfe, 0x7e, 0xad, 0xe1, 0x2f, 0x9a, 0x35, 0x08, 0xa0, 0xb3, 0x83, 0x56, 0x7f, 0xbf, 0x36, 0xfc, 0xe2, 0xb2, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0xa6, 0x2e, 0xf3, 0xa0, 0xcd, 0xdc, 0xae, 0x83, 0xb2, 0xce, 0xb3, 0xd6, 0xa0, 0x41, 0xea, 0xae, 0x0d, 0x5f, 0xe1, 0x6c, 0x50, 0xc2, 0x63, 0x6e, 0xd0, 0xf8, 0x6a, 0xd7, 0x06, 0x6d, 0xd8, 0x39, 0x6f, 0xf8, 0xc5, 0x65, 0x83, 0x76, 0x9e, 0x1c, 0x36, 0x68, 0xbb, 0xbc, 0x6b, 0x83, 0x66, 0xb0, 0x92, 0x37, 0x68, 0xdf, 0xcd, 0xb9, 0xd5, 0xf0, 0xb9, 0xd2, 0x06, 0xeb, 0x50, 0xa0, 0x0f, 0x0e, 0x31, 0x1d, 0x1b, 0x1c, 0xb0, 0xe8, 0xd6, 0xa0, 0x30, 0x54, 0x5d, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0xe0, 0xf1, 0x06, 0x57, 0xe6, 0xd6, 0xd2, 0x16, 0xe6, 0x56, 0xb6, 0x86, 0xb7, 0x75, 0x06, 0x77, 0x07, 0x3f, 0x0f, 0x1a, 0x5f, 0xed, 0x6a, 0x83, 0x06, 0x24, 0x10, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x25, 0x52, 0xf5, 0x1a, 0xde, 0xd6, 0x19, 0x3c, 0x3c, 0x68, 0x1a, 0xdb, 0x79, 0x0d, 0x6f, 0xeb, 0x0c, 0xe0, 0xf1, 0x06, 0x57, 0xe6, 0xd6, 0xd2, 0x16, 0x26, 0x47, 0x57, 0x1b, 0x7e, 0x71, 0xd9, 0xa0, 0xa1, 0x03, 0x86, 0x35, 0xbc, 0xad, 0x33, 0xf8, 0x78, 0xd0, 0xf8, 0x6a, 0x57, 0xcb, 0xac, 0x41, 0xab, 0xd4, 0xce, 0x1b, 0x7e, 0x51, 0xda, 0xa0, 0xc1, 0x65, 0xd6, 0x0d, 0x0a, 0x82, 0xd9, 0x0d, 0x0f, 0xee, 0x6c, 0xd0, 0x62, 0xd6, 0xe5, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x4d, 0x69, 0x15, 0x6c, 0xb0, 0x2e, 0xbb, 0xee, 0x60, 0x49, 0xa7, 0xef, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0x29, 0xad, 0x82, 0x0d, 0xd6, 0x65, 0xd7, 0x1d, 0x34, 0x68, 0x8e, 0xd9, 0x6a, 0xd0, 0x3a, 0xb8, 0xf3, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0xdc, 0x3d, 0x68, 0xf0, 0x2b, 0x75, 0x0d, 0x7f, 0x2e, 0x0d, 0x6e, 0x1f, 0x34, 0x41, 0xc7, 0xda, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x0d, 0x4f, 0x3b, 0x1f, 0xa4, 0xe1, 0xe5, 0x6e, 0xd0, 0xb8, 0x38, 0xc1, 0x41, 0x9a, 0x50, 0xd4, 0xe1, 0x14, 0xeb, 0x70, 0x8a, 0xad, 0x86, 0xcf, 0x95, 0x36, 0x58, 0x88, 0x76, 0x7d, 0x70, 0x88, 0xe9, 0xd8, 0xf0, 0x8b, 0xcb, 0x06, 0xed, 0x3c, 0x39, 0x6c, 0xd0, 0xbc, 0xa5, 0xf3, 0x41, 0x0b, 0xea, 0xca, 0xab, 0xe1, 0x73, 0xa5, 0x0d, 0xd6, 0xf8, 0x5d, 0x1f, 0x1c, 0x62, 0x3a, 0x36, 0xfc, 0xe2, 0xb2, 0x41, 0x3b, 0x4f, 0x0e, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xd6, 0x97, 0x1e, 0x36, 0x58, 0x23, 0xe5, 0x7d, 0xd0, 0xbe, 0x6a, 0xd7, 0x41, 0x0b, 0xea, 0xca, 0x6b, 0xd0, 0x10, 0x66, 0xd7, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0x4e, 0x97, 0xe0, 0xa0, 0xcd, 0xd5, 0xe5, 0xd5, 0xf0, 0xb9, 0xd2, 0x06, 0x2b, 0x8b, 0xaf, 0x0f, 0x0e, 0x31, 0x1d, 0x1b, 0x7e, 0x71, 0xd9, 0xa0, 0x9d, 0x27, 0x87, 0x0d, 0x5a, 0x58, 0xed, 0xda, 0xa0, 0x7d, 0x37, 0xe7, 0x0d, 0xda, 0xb0, 0x73, 0x6e, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0xfa, 0xf0, 0xeb, 0x83, 0x43, 0x4c, 0xc7, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0x16, 0x12, 0x61, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x5e, 0x49, 0xc1, 0x1a, 0xde, 0xb8, 0xdb, 0xf0, 0xf2, 0xdd, 0x41, 0xa3, 0xcc, 0x80, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0x1a, 0xcf, 0x7d, 0x58, 0xc3, 0x2f, 0x2e, 0x1b, 0xb4, 0x1e, 0xa6, 0xb0, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0x93, 0x66, 0x62, 0x83, 0xf6, 0x4a, 0x0a, 0xd6, 0xf0, 0xc6, 0xdd, 0x86, 0x97, 0xef, 0x0e, 0xd6, 0x66, 0x78, 0xd7, 0x41, 0xfb, 0xaa, 0x5d, 0x07, 0x65, 0x9d, 0xe7, 0x6a, 0xf8, 0x5c, 0x69, 0x83, 0x15, 0x33, 0xd8, 0x07, 0x87, 0x98, 0x8e, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0x83, 0x9c, 0x35, 0x28, 0x26, 0x31, 0x37, 0xfc, 0x50, 0x73, 0xd0, 0xf8, 0x6a, 0xd7, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0xc5, 0xef, 0x06, 0xed, 0x2a, 0xa1, 0x1d, 0xb4, 0xaf, 0xda, 0xb5, 0xe1, 0x11, 0xd6, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x8b, 0xdf, 0x0d, 0xda, 0x55, 0x42, 0xdb, 0xa0, 0xb5, 0x68, 0xb4, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x69, 0xd8, 0x4a, 0x1b, 0xb4, 0xab, 0x84, 0xb6, 0x41, 0x63, 0xd8, 0x68, 0xb5, 0x41, 0x63, 0xa1, 0x5d, 0x1b, 0xde, 0xb2, 0x5b, 0xc3, 0x13, 0x77, 0x1b, 0x9e, 0xc5, 0x1b, 0x1c, 0x1d, 0xfc, 0x1d, 0xfc, 0x1d, 0xdc, 0x1d, 0xb4, 0x0d, 0x6e, 0x0f, 0x5e, 0x0e, 0x2e, 0x0f, 0x3e, 0x0f, 0x9e, 0x0e, 0xfe, 0x1e, 0x0c, 0xbb, 0xdd, 0x83, 0xf0, 0x54, 0x5d, 0x83, 0x30, 0x1d, 0x3b, 0x68, 0xeb, 0x44, 0xaa, 0xc3, 0x29, 0xb6, 0x06, 0x6b, 0x1c, 0xa7, 0x36, 0x7c, 0x85, 0xb3, 0xe1, 0x2f, 0x9a, 0x35, 0x08, 0xfd, 0x92, 0x0d, 0xca, 0x26, 0xcc, 0x35, 0x08, 0xfd, 0x92, 0x0d, 0x4a, 0x6f, 0xfa, 0x0d, 0x16, 0x58, 0x38, 0x1f, 0x2c, 0xaf, 0x70, 0x6e, 0x83, 0x93, 0x83, 0xdc, 0x06, 0xcd, 0xa0, 0x48, 0x6d, 0x50, 0x50, 0x64, 0xae, 0xc1, 0x52, 0x22, 0xe2, 0x0d, 0x8e, 0xe1, 0x06, 0x07, 0x0d, 0x01, 0xa2, 0xad, 0x41, 0x83, 0x6b, 0x60, 0x07, 0x0d, 0x16, 0x7c, 0xad, 0x41, 0x5b, 0xec, 0xca, 0x1b, 0x1c, 0xc3, 0x0d, 0x0e, 0x1a, 0x7a, 0x57, 0x5e, 0x83, 0xd6, 0xe4, 0x95, 0x0f, 0x1a, 0x5c, 0x7b, 0x5e, 0x83, 0xc6, 0xb6, 0x95, 0x37, 0x38, 0x86, 0x1b, 0x6c, 0xf8, 0xc5, 0x65, 0x83, 0x16, 0x56, 0xbb, 0x36, 0x68, 0x4c, 0xfe, 0xe0, 0xa0, 0x21, 0x70, 0xe5, 0x35, 0x68, 0x08, 0x16, 0x76, 0x83, 0x12, 0x1e, 0x73, 0x83, 0xc6, 0x57, 0xbb, 0x36, 0x28, 0x28, 0x32, 0x37, 0x38, 0x86, 0x1b, 0x6c, 0xf8, 0xc5, 0x65, 0x83, 0xb6, 0xcb, 0xbb, 0x36, 0x68, 0x40, 0x02, 0x61, 0x83, 0xa6, 0xbe, 0xbb, 0x5a, 0x83, 0xc6, 0x01, 0x96, 0x37, 0x28, 0xe1, 0x31, 0x37, 0x68, 0x7c, 0xb5, 0x6b, 0x83, 0x82, 0x22, 0x73, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x56, 0xc0, 0xbb, 0xd6, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0x0e, 0x5a, 0x25, 0xef, 0xda, 0xe0, 0x18, 0x6e, 0xb0, 0xe1, 0x17, 0x97, 0x0d, 0xda, 0x2e, 0xef, 0xda, 0xa0, 0xf9, 0x12, 0x84, 0x83, 0x66, 0x08, 0x9f, 0x9b, 0x05, 0x7c, 0xb9, 0xba, 0xb9, 0x75, 0xc3, 0x5f, 0x34, 0x1b, 0xac, 0xd7, 0x7a, 0xde, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0xd9, 0x60, 0xc1, 0x5c, 0xfc, 0x41, 0xeb, 0xb6, 0xc8, 0x1b, 0x14, 0x3b, 0x9a, 0x6b, 0x50, 0x4c, 0x62, 0x6e, 0xd0, 0xa2, 0xaa, 0xe5, 0xc1, 0x72, 0xb9, 0xf8, 0x35, 0x38, 0x17, 0x2e, 0xac, 0x21, 0x8f, 0xbd, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0x00, 0x0f, 0xb9, 0xba, 0xb9, 0xb5, 0x16, 0xb4, 0xb7, 0x37, 0xf7, 0x20, 0x3c, 0x55, 0x37, 0xbc, 0xad, 0x33, 0x78, 0x7a, 0xb0, 0x5c, 0x2e, 0x7e, 0x35, 0x68, 0xb3, 0x16, 0x79, 0x83, 0x73, 0xe1, 0xc2, 0x1a, 0xf2, 0xd8, 0x1b, 0x7e, 0x84, 0x19, 0x9c, 0x0e, 0xf0, 0x90, 0x0b, 0x5b, 0x2b, 0x6b, 0x41, 0x7b, 0x7b, 0x73, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0xd9, 0xd0, 0x65, 0x0d, 0x6f, 0xeb, 0x1c, 0xb4, 0xa6, 0x3b, 0xd6, 0x6a, 0xd0, 0xa4, 0xec, 0xf2, 0x86, 0x5f, 0x94, 0x36, 0x58, 0x5f, 0x6c, 0xbe, 0x41, 0x69, 0x6f, 0xb9, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb9, 0x32, 0xf6, 0x60, 0xed, 0xc8, 0xf3, 0x86, 0xaf, 0x70, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0x02, 0x0b, 0xe7, 0x0d, 0x82, 0xf4, 0x74, 0x83, 0xd5, 0x35, 0xd3, 0x6b, 0xf8, 0xa1, 0x66, 0xc3, 0x2f, 0x2e, 0x1b, 0x34, 0x2b, 0xd4, 0xb0, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0xbb, 0xb6, 0x60, 0x83, 0x76, 0x63, 0x14, 0x3a, 0x68, 0xe9, 0x44, 0x6a, 0x0d, 0xda, 0x82, 0x47, 0xde, 0xf0, 0x41, 0xce, 0x1a, 0x14, 0x93, 0x98, 0x1b, 0xac, 0x77, 0x67, 0x3e, 0x68, 0x16, 0x7d, 0x6d, 0x83, 0xb6, 0x4e, 0xa4, 0x36, 0xfc, 0xe2, 0xb2, 0x41, 0x9b, 0xeb, 0x09, 0x1b, 0xb4, 0x1b, 0xa3, 0x70, 0xd0, 0xd2, 0x89, 0xd4, 0x1a, 0xb4, 0xe1, 0x39, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0xb2, 0xc1, 0x92, 0x53, 0xfa, 0x0d, 0xca, 0x92, 0xf7, 0x35, 0x58, 0xe3, 0x38, 0xd5, 0x41, 0x53, 0xf7, 0x5d, 0x1b, 0x14, 0x03, 0xb2, 0x1b, 0x2c, 0x38, 0xa5, 0x5f, 0x83, 0xc2, 0x50, 0x75, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x56, 0xd7, 0x4c, 0x1f, 0xb4, 0x6c, 0xe4, 0xb6, 0x06, 0xcd, 0xa0, 0x48, 0x6d, 0x78, 0x5b, 0x67, 0x70, 0x78, 0xf0, 0xfa, 0x60, 0xc1, 0x29, 0x7d, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0xac, 0xae, 0x99, 0x3e, 0x68, 0x52, 0xcd, 0x6d, 0x0d, 0x9a, 0x41, 0x91, 0xda, 0xf0, 0xb6, 0xce, 0xe0, 0xf1, 0x41, 0xf3, 0xe1, 0xcf, 0x6d, 0x70, 0xce, 0x5f, 0xda, 0xa0, 0x11, 0xd5, 0x86, 0x0d, 0xda, 0x3a, 0x91, 0xda, 0xa0, 0x30, 0x54, 0x5d, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0xdb, 0xa0, 0xa1, 0xee, 0xe7, 0x35, 0x68, 0x06, 0x45, 0x6a, 0xc3, 0x2f, 0x2e, 0x1b, 0x24, 0xa5, 0x05, 0x1f, 0x9c, 0x99, 0xdb, 0xda, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0x36, 0x68, 0xa1, 0xfc, 0x79, 0x0d, 0x9a, 0x41, 0x91, 0x3a, 0x68, 0xd6, 0x8e, 0xb9, 0x35, 0x68, 0x70, 0x0d, 0x6c, 0xc3, 0x2f, 0x2e, 0x1b, 0x34, 0xda, 0x41, 0xb0, 0x86, 0xb7, 0x75, 0x36, 0x48, 0xc4, 0x07, 0x3e, 0x58, 0x5d, 0x33, 0xbd, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x41, 0x43, 0xdd, 0xcf, 0xb5, 0x06, 0x2d, 0x1a, 0x27, 0x1f, 0x34, 0xd1, 0xfc, 0xbc, 0x1a, 0x3e, 0x57, 0xda, 0x60, 0x0d, 0xa5, 0xf7, 0xc1, 0x21, 0xa6, 0x63, 0xc3, 0x2f, 0x2e, 0x1b, 0xb4, 0x6e, 0x49, 0xb0, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0x6c, 0x21, 0x62, 0x83, 0xd6, 0x66, 0xe3, 0x3a, 0x68, 0x1d, 0x00, 0x7a, 0x0d, 0x1a, 0xe9, 0x25, 0xdc, 0xf0, 0x8b, 0xcb, 0x06, 0xcd, 0x0a, 0x35, 0xac, 0xe1, 0x17, 0x97, 0x0d, 0xda, 0xae, 0x2d, 0xd8, 0xa0, 0x61, 0xe6, 0xb8, 0x0e, 0x5a, 0x07, 0x80, 0x5e, 0x0d, 0x9f, 0x2b, 0x6d, 0xb0, 0x82, 0xe9, 0xfb, 0xe0, 0x10, 0xd3, 0xb1, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0x6d, 0xd0, 0x50, 0xf7, 0xf3, 0x6a, 0xd0, 0x28, 0xee, 0x73, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0x44, 0xd0, 0xb6, 0x41, 0xcb, 0xfa, 0x71, 0x6b, 0x78, 0x5b, 0xe7, 0xa0, 0x2d, 0x0e, 0xe8, 0x5a, 0x0d, 0x9f, 0x2b, 0x6d, 0xb0, 0x26, 0xe8, 0xfc, 0xe0, 0x10, 0xd3, 0xb1, 0xc1, 0x39, 0x7f, 0x69, 0x83, 0x36, 0xd7, 0x13, 0xd6, 0xa0, 0x84, 0xc7, 0xdc, 0xa0, 0x2d, 0x0e, 0xe8, 0x0d, 0x5a, 0xf9, 0x90, 0xdb, 0xf0, 0x8b, 0xcb, 0x06, 0xad, 0xaa, 0x47, 0x6c, 0xd0, 0x26, 0x08, 0xf4, 0x06, 0xad, 0x7c, 0xc8, 0x75, 0xd0, 0x3e, 0x00, 0xf4, 0x6a, 0xf8, 0x5c, 0x69, 0x83, 0x45, 0x5a, 0xe7, 0x07, 0x87, 0x98, 0x8e, 0x0d, 0xce, 0xf9, 0x4b, 0x1b, 0x34, 0x2b, 0xd4, 0xb0, 0x06, 0x85, 0xa1, 0xea, 0x06, 0x6d, 0xa4, 0x17, 0x6c, 0xf8, 0x0a, 0x67, 0xc3, 0x5f, 0x34, 0x1b, 0xac, 0x1d, 0x79, 0xde, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0xf0, 0xe0, 0xcd, 0x41, 0xc3, 0x8d, 0x72, 0x1b, 0x14, 0x14, 0x99, 0x1b, 0x7e, 0x71, 0xd9, 0xa0, 0x65, 0xe2, 0xcb, 0x35, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x68, 0xd3, 0x51, 0x6e, 0xc3, 0xbb, 0x3d, 0x1b, 0x5e, 0xf3, 0xd9, 0xa0, 0xe1, 0x46, 0xb9, 0xea, 0xa0, 0xad, 0x13, 0xa9, 0x66, 0x0d, 0x1a, 0x12, 0x5e, 0xde, 0xf0, 0x15, 0xce, 0x86, 0xbf, 0x68, 0x36, 0x58, 0xdf, 0x09, 0xbd, 0x41, 0x90, 0x9e, 0x6e, 0xd0, 0x0c, 0x8a, 0xd4, 0x6a, 0xf8, 0x5c, 0x69, 0x83, 0x05, 0xb1, 0xcf, 0x1b, 0xac, 0x8f, 0x48, 0x3f, 0x28, 0x23, 0x6d, 0x37, 0xfc, 0xe2, 0x72, 0xd0, 0x82, 0x07, 0xf3, 0x06, 0xad, 0xb6, 0x3d, 0xaf, 0x41, 0x98, 0x8e, 0x1d, 0x14, 0x14, 0x99, 0x1d, 0x4e, 0xb1, 0xd6, 0xf0, 0x7d, 0xfb, 0x86, 0xaf, 0x70, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0xfa, 0x4e, 0xe8, 0x0d, 0x4e, 0x0e, 0x72, 0x1b, 0x34, 0x83, 0x22, 0xb5, 0x41, 0x41, 0x91, 0xb9, 0x06, 0x2d, 0x47, 0x23, 0x6f, 0x50, 0xc2, 0x63, 0x6e, 0xd0, 0xf8, 0x6a, 0xd7, 0x06, 0x05, 0x45, 0xe6, 0x06, 0xc5, 0x80, 0xec, 0x06, 0xcd, 0x9a, 0x77, 0xad, 0xe1, 0x83, 0x9c, 0x35, 0x28, 0x26, 0x31, 0x37, 0x08, 0xd8, 0xa0, 0x83, 0xc6, 0x05, 0x99, 0x37, 0x28, 0x28, 0x32, 0x37, 0xbc, 0xad, 0x33, 0x78, 0x7c, 0xd0, 0xac, 0x79, 0xd7, 0x06, 0xc7, 0x70, 0x83, 0x83, 0xb6, 0xcb, 0xbb, 0xd6, 0xa0, 0xe9, 0x65, 0xe4, 0x83, 0x66, 0xa9, 0x91, 0xd7, 0xa0, 0xc1, 0x35, 0xb0, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x9a, 0x41, 0x91, 0x3a, 0x68, 0xa7, 0xbe, 0xab, 0x35, 0x68, 0xec, 0xc8, 0xf9, 0xa0, 0x21, 0x39, 0xe8, 0x35, 0x68, 0xe4, 0xe4, 0xeb, 0xa0, 0xc1, 0x82, 0xaf, 0x66, 0x0d, 0x9a, 0x66, 0x47, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x68, 0x9a, 0x1d, 0xb5, 0x01, 0xfc, 0xd0, 0xde, 0xde, 0xdc, 0x40, 0xe8, 0xde, 0x40, 0xe6, 0xd6, 0xd2, 0xdc, 0x36, 0x7c, 0x85, 0xb3, 0xe1, 0x2f, 0x9a, 0x0d, 0xda, 0xdc, 0x6c, 0xdd, 0xe0, 0xe4, 0x20, 0xb7, 0x41, 0x33, 0x28, 0x52, 0x6b, 0xf8, 0xc4, 0x66, 0x83, 0x36, 0x67, 0x91, 0x37, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0x36, 0x3c, 0x33, 0x79, 0xd0, 0xd6, 0x89, 0xd4, 0x06, 0x05, 0x45, 0xe6, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0xcd, 0xa0, 0x48, 0x1d, 0x9e, 0x99, 0x6c, 0x0d, 0x96, 0x12, 0x11, 0x6f, 0xf8, 0xc4, 0x66, 0x0d, 0xbf, 0xb8, 0x1c, 0x34, 0x68, 0x2d, 0xb6, 0x41, 0x09, 0x8f, 0xb9, 0x41, 0x42, 0x7a, 0xf7, 0x06, 0x05, 0x45, 0xe6, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0x89, 0xd7, 0xdd, 0x1b, 0x14, 0x14, 0x99, 0x1b, 0x1c, 0xc3, 0x0d, 0x36, 0xfc, 0xe2, 0xb2, 0x41, 0x2b, 0x92, 0x15, 0x6b, 0xb8, 0xa4, 0xd6, 0xe0, 0x6c, 0x1a, 0x5e, 0x6b, 0xb8, 0xa4, 0xd6, 0x60, 0xb0, 0xc6, 0x56, 0x6b, 0xd0, 0x16, 0x3c, 0xf2, 0x06, 0xc7, 0x70, 0x83, 0x83, 0xb6, 0x4e, 0xa4, 0xd6, 0xa0, 0xad, 0x3e, 0xaf, 0x0d, 0x0a, 0x82, 0xd9, 0x0d, 0xda, 0x11, 0xed, 0x5a, 0x83, 0x63, 0xb8, 0xc1, 0x86, 0x5f, 0x5c, 0x36, 0x3c, 0x71, 0x77, 0xd0, 0x32, 0x96, 0xd7, 0x41, 0x41, 0x91, 0xb9, 0x1a, 0x3e, 0x57, 0xda, 0x60, 0x35, 0x8f, 0xf4, 0x06, 0x2d, 0xaa, 0x5a, 0x1e, 0x1c, 0x17, 0x4f, 0x0e, 0xda, 0x65, 0x83, 0x5e, 0x83, 0x46, 0x4e, 0xbe, 0x36, 0x28, 0x3a, 0x8d, 0x37, 0x68, 0xf6, 0xe5, 0x78, 0x0d, 0x97, 0xd4, 0x06, 0xad, 0xe9, 0x8e, 0x1d, 0xb4, 0xc0, 0xea, 0xb5, 0xe1, 0x17, 0xa5, 0x0d, 0x16, 0xbf, 0x9c, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0x43, 0x06, 0xc1, 0x1a, 0x2e, 0xa9, 0x0d, 0x0e, 0xfb, 0x1d, 0x07, 0xcd, 0x1b, 0x7c, 0xad, 0xe1, 0x17, 0xa5, 0x0d, 0xd6, 0x17, 0x9b, 0x6f, 0xf8, 0xc5, 0x65, 0x83, 0x56, 0xd5, 0x23, 0x36, 0x68, 0x85, 0x98, 0xe0, 0xa0, 0x39, 0xe2, 0xe7, 0x56, 0xc3, 0xe7, 0x4a, 0x1b, 0x2c, 0x61, 0x7b, 0x3e, 0x28, 0x23, 0x6d, 0x0f, 0x9a, 0xa5, 0x46, 0x5e, 0x0d, 0x9f, 0x2b, 0x6d, 0xb0, 0xe2, 0xdf, 0x79, 0x83, 0x16, 0x0c, 0xa0, 0x0f, 0x0e, 0x31, 0x1d, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0x90, 0x41, 0xb0, 0x41, 0x83, 0x05, 0x5f, 0x6b, 0xf8, 0x45, 0x69, 0x83, 0xf5, 0xc5, 0xe6, 0x1b, 0x7e, 0x71, 0xd9, 0xa0, 0xb1, 0x85, 0x88, 0x0d, 0x5a, 0x8b, 0x46, 0x3b, 0x68, 0x8e, 0xf8, 0xb9, 0x35, 0x68, 0x39, 0x1a, 0x79, 0xc3, 0x07, 0x39, 0x6b, 0x50, 0x4c, 0x62, 0x6e, 0xd0, 0xa2, 0xaa, 0xe5, 0x41, 0xe3, 0xab, 0x5d, 0x1b, 0xb4, 0xcb, 0x06, 0xbd, 0x41, 0x41, 0x1a, 0xbb, 0xc1, 0xba, 0xb0, 0xf3, 0x0d, 0x0f, 0xde, 0x6c, 0xf8, 0x0a, 0x67, 0xc3, 0x5f, 0x34, 0x1b, 0xb4, 0xb9, 0xd9, 0xba, 0x41, 0x09, 0x8f, 0xb9, 0x41, 0xe3, 0xab, 0x5d, 0x6b, 0x70, 0x0c, 0x37, 0xd8, 0xf0, 0x8b, 0xcb, 0x06, 0x8d, 0x62, 0x59, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0xd6, 0x85, 0x9d, 0xd7, 0x06, 0xc5, 0x8e, 0xe6, 0x1a, 0xfe, 0xcd, 0xd9, 0xa0, 0x65, 0xe2, 0xcb, 0x83, 0xb6, 0xcb, 0xbb, 0x36, 0x28, 0x28, 0x32, 0x0f, 0x9a, 0xc1, 0x4a, 0x5e, 0x83, 0x76, 0x1c, 0x96, 0x37, 0x38, 0x86, 0x1b, 0x6c, 0xf8, 0xc5, 0x65, 0x83, 0x86, 0x77, 0x2c, 0x36, 0x68, 0x61, 0xb5, 0xeb, 0xa0, 0x05, 0xbb, 0xcc, 0x35, 0x68, 0xbd, 0x75, 0x79, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x66, 0x5f, 0x8e, 0x37, 0x68, 0xb0, 0xe0, 0x6b, 0xc3, 0x2f, 0x4a, 0x1b, 0xac, 0x2f, 0x36, 0xdf, 0xa0, 0x20, 0x98, 0xdd, 0xa0, 0xf1, 0xd5, 0xae, 0x35, 0x38, 0x86, 0x1b, 0x6c, 0xf8, 0xc5, 0x65, 0x83, 0x76, 0xa5, 0x23, 0x36, 0x68, 0x61, 0xb5, 0xeb, 0xa0, 0x39, 0xe2, 0xe7, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0x28, 0x26, 0x31, 0xd7, 0xf0, 0xb9, 0xd2, 0x06, 0xcb, 0x65, 0xbe, 0x37, 0xfc, 0x50, 0xb3, 0x86, 0xcf, 0x95, 0x36, 0x58, 0xc5, 0xe8, 0xbc, 0xc1, 0x7a, 0x77, 0xe6, 0x3a, 0x68, 0x7c, 0xb5, 0x6b, 0x83, 0x82, 0x22, 0x73, 0x83, 0x63, 0xb8, 0xc1, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0x57, 0x3a, 0x62, 0x0d, 0x6f, 0xeb, 0x6c, 0x70, 0x02, 0x4a, 0x3d, 0x68, 0x7c, 0xb5, 0xeb, 0xa0, 0x39, 0xe2, 0xe7, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x5b, 0x81, 0x0f, 0x43, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x83, 0x0f, 0x43, 0x1b, 0xc0, 0x8b, 0x2e, 0x6d, 0x2d, 0x0d, 0xa4, 0xcc, 0xed, 0x2c, 0xcd, 0xad, 0x6c, 0x83, 0xb2, 0x0c, 0x7b, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x74, 0x69, 0xeb, 0x41, 0x13, 0xb6, 0xb2, 0xb3, 0xcc, 0x1a, 0x14, 0x04, 0xb3, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x15, 0x7c, 0xb6, 0x07, 0x0b, 0x2c, 0x9c, 0xd7, 0xf0, 0xe7, 0xd2, 0x06, 0x2b, 0x04, 0x6d, 0x0f, 0x16, 0x58, 0x38, 0xb7, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0x9f, 0xc9, 0x85, 0xe5, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0x5a, 0xfd, 0x77, 0x58, 0xc3, 0xdb, 0x3a, 0x03, 0x3e, 0x5c, 0xdd, 0x58, 0xd9, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0xbe, 0x18, 0x5b, 0x5d, 0xd9, 0xc1, 0x6a, 0x4a, 0xdb, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xf3, 0x36, 0xd1, 0x07, 0xcb, 0x46, 0x6d, 0x6b, 0x35, 0x28, 0x26, 0x31, 0x37, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x36, 0x34, 0x3f, 0x38, 0x58, 0x60, 0x05, 0xbd, 0xe1, 0xdd, 0x9e, 0x0d, 0x9a, 0x7a, 0x89, 0x5e, 0xc3, 0x2f, 0x2e, 0x1b, 0xb4, 0xbe, 0xf4, 0xb0, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x80, 0x4f, 0x57, 0x16, 0xc6, 0xb6, 0x41, 0xd8, 0xdd, 0xb6, 0x41, 0xb3, 0x33, 0xd1, 0xb5, 0x1a, 0x94, 0xf0, 0x98, 0x1b, 0x7e, 0x51, 0xda, 0xa0, 0xb9, 0x93, 0xe8, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xd4, 0x4b, 0xf4, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0xd9, 0x8c, 0x87, 0x83, 0x46, 0x67, 0xa2, 0x3b, 0x9c, 0x62, 0xad, 0xc1, 0xc9, 0x41, 0x6e, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x16, 0x28, 0xa4, 0xd6, 0xf0, 0xe7, 0xd2, 0x80, 0xf7, 0x06, 0x47, 0x1f, 0x2c, 0x8f, 0xb5, 0x6e, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0xa6, 0x5e, 0xa2, 0x37, 0x68, 0x5e, 0xd9, 0x61, 0xc3, 0x2f, 0x2e, 0x1b, 0x34, 0x3b, 0x13, 0xbd, 0x86, 0x77, 0x7b, 0x36, 0x68, 0xde, 0x26, 0xfa, 0xa0, 0xa5, 0x13, 0xa9, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x89, 0x54, 0xbd, 0x86, 0xb7, 0x75, 0x36, 0x68, 0x31, 0x2b, 0xba, 0x35, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0x0e, 0x5a, 0x87, 0x1f, 0xde, 0xf0, 0x8b, 0xcb, 0x86, 0xa7, 0x75, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xcd, 0xdb, 0x44, 0x1f, 0xde, 0x42, 0xab, 0x56, 0x83, 0x20, 0x3d, 0xdd, 0xf0, 0x8b, 0xd2, 0x06, 0x8d, 0x62, 0x45, 0x6f, 0x50, 0x74, 0x1a, 0x6f, 0xd0, 0xd4, 0x4b, 0xf4, 0x06, 0xcd, 0xa6, 0x38, 0x6c, 0xf8, 0xc5, 0x65, 0x83, 0x66, 0x67, 0xa2, 0x0f, 0x1a, 0x20, 0x8b, 0x9e, 0x35, 0x68, 0xfb, 0x26, 0x7a, 0xc3, 0x2f, 0x4a, 0x1b, 0xb4, 0x40, 0x21, 0xb5, 0xe1, 0x2f, 0x9a, 0x0d, 0x16, 0x58, 0x38, 0x6f, 0x50, 0xec, 0x68, 0xae, 0xe1, 0x11, 0xd6, 0x35, 0x28, 0x26, 0x31, 0x37, 0x08, 0x23, 0xa0, 0x8d, 0x43, 0x1b, 0xb4, 0x2e, 0x12, 0xdd, 0x1a, 0x14, 0x93, 0x98, 0x1b, 0x84, 0xe0, 0xc3, 0xe0, 0xf0, 0x41, 0x8b, 0x82, 0xd1, 0x6d, 0xd0, 0xd6, 0x89, 0xd4, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0x10, 0xae, 0x61, 0x83, 0x86, 0xe6, 0xd3, 0x0e, 0x5a, 0x3a, 0x91, 0x5a, 0x0d, 0xda, 0xa4, 0x89, 0xde, 0xf0, 0x17, 0xcd, 0x06, 0x6b, 0x47, 0x9e, 0x37, 0x08, 0xd2, 0xd3, 0x0d, 0x1a, 0x10, 0x8c, 0x5e, 0x83, 0x80, 0x0d, 0xda, 0xa0, 0x84, 0xc7, 0xdc, 0xa0, 0xdd, 0xc2, 0xe8, 0x35, 0xbc, 0xad, 0x33, 0x78, 0x7c, 0xd0, 0xa2, 0x60, 0xf4, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf5, 0x41, 0xbb, 0x85, 0xd1, 0x07, 0x65, 0x9d, 0xe7, 0x1a, 0x84, 0x11, 0xd0, 0x41, 0x6b, 0x8f, 0xcb, 0xcd, 0x1a, 0x14, 0x03, 0xb2, 0x1b, 0x7e, 0x51, 0xda, 0xa0, 0xb9, 0x93, 0xe8, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xd4, 0x4b, 0xf4, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0x91, 0x41, 0x87, 0x83, 0x46, 0x67, 0xa2, 0x3b, 0x9c, 0x62, 0x0b, 0xf8, 0x74, 0x65, 0x6c, 0xe5, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0x29, 0x3a, 0x51, 0x07, 0x0b, 0x68, 0xa6, 0x37, 0xfc, 0x45, 0xb3, 0xc1, 0x02, 0x9a, 0xe9, 0x0d, 0x1f, 0xe4, 0xac, 0x41, 0x31, 0x89, 0xb9, 0x41, 0xc0, 0x06, 0x1d, 0x34, 0x20, 0x18, 0xbd, 0x41, 0xa2, 0x4d, 0xd4, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0x55, 0x3d, 0x62, 0x0d, 0x8e, 0xae, 0x83, 0x1b, 0x34, 0x33, 0xcd, 0xdc, 0x06, 0x89, 0x36, 0x51, 0x1d, 0x4e, 0xb1, 0x35, 0x68, 0x01, 0x29, 0x7a, 0xc3, 0x2f, 0x4a, 0x1b, 0xb4, 0xf7, 0x13, 0xbd, 0xe1, 0x2f, 0x9a, 0x0d, 0x16, 0x58, 0x41, 0x6f, 0xf8, 0x20, 0x67, 0x83, 0xd6, 0x5d, 0xa3, 0x37, 0x08, 0xbb, 0xdb, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0xaa, 0x7a, 0xc4, 0x06, 0x0d, 0xd4, 0x46, 0x1f, 0xb4, 0x96, 0x14, 0xbd, 0x1a, 0xac, 0x77, 0x79, 0xda, 0xf0, 0x8b, 0xd2, 0x06, 0x8d, 0xa4, 0x46, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0xa6, 0x5e, 0xa2, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0xed, 0xce, 0x3c, 0xac, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xeb, 0xa6, 0xd1, 0x1d, 0xb4, 0x73, 0x1b, 0x7d, 0xd0, 0x9a, 0x52, 0x74, 0x87, 0x53, 0x6c, 0x0d, 0xda, 0x81, 0x89, 0xde, 0xf0, 0x8b, 0xd2, 0x06, 0x2d, 0x50, 0x48, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0x05, 0x16, 0xce, 0x1b, 0x04, 0xe9, 0xe9, 0x06, 0x0d, 0x08, 0x46, 0xaf, 0x41, 0xc0, 0x06, 0x6d, 0x50, 0xc2, 0x63, 0x6e, 0xd0, 0x6e, 0x61, 0xf4, 0x06, 0x6d, 0x9d, 0x48, 0x6d, 0xf8, 0xc5, 0x65, 0x83, 0xe6, 0xa9, 0x1b, 0x36, 0x68, 0xef, 0x32, 0x7a, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x46, 0x7a, 0xc1, 0x06, 0x4d, 0x54, 0x46, 0x77, 0xd0, 0xd2, 0x89, 0xd4, 0x1a, 0x84, 0x11, 0xd0, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0x44, 0xb5, 0x61, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0xda, 0x2d, 0x8c, 0xde, 0xa0, 0x89, 0xca, 0xe8, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x9a, 0x8a, 0xc2, 0x06, 0x8d, 0x61, 0x46, 0x1f, 0xb4, 0x2b, 0x1e, 0x7d, 0xd0, 0xd2, 0x89, 0x54, 0x87, 0x53, 0xec, 0x70, 0x8a, 0xcd, 0x02, 0x1f, 0x86, 0x6f, 0xf8, 0xc4, 0x66, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0xc1, 0xc2, 0xcb, 0xac, 0xc0, 0x23, 0x2b, 0x33, 0x1b, 0x80, 0x0f, 0xb2, 0x32, 0xb3, 0xb0, 0x3a, 0x36, 0x3a, 0x90, 0x32, 0x3c, 0x38, 0xb9, 0xb2, 0xb9, 0xb9, 0xb4, 0x37, 0xb7, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x16, 0x5e, 0x66, 0x1d, 0xac, 0x1c, 0xd6, 0x6b, 0x00, 0xbf, 0xbb, 0x34, 0xb7, 0x33, 0x10, 0xba, 0x37, 0x10, 0xb4, 0xb7, 0xb6, 0xb2, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x16, 0x5e, 0x66, 0x1d, 0xb4, 0x40, 0x4c, 0xd5, 0x00, 0x7e, 0x61, 0x78, 0x69, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x68, 0x6f, 0x6d, 0x65, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x2c, 0xbc, 0xcc, 0x3a, 0x68, 0x2f, 0xd0, 0xb2, 0x01, 0x78, 0x20, 0x2b, 0x13, 0xab, 0x3b, 0x03, 0x09, 0x73, 0x73, 0x7b, 0xa3, 0x0b, 0xa3, 0x4b, 0x7b, 0x73, 0x9b, 0xdb, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0x60, 0xe1, 0x65, 0x56, 0xe0, 0xb9, 0xd5, 0xd1, 0x0d, 0xe0, 0x15, 0xe6, 0xe6, 0xf6, 0x46, 0x17, 0x46, 0x97, 0xf6, 0xe6, 0x36, 0xb7, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0xc1, 0xc2, 0xcb, 0xac, 0x83, 0x16, 0xea, 0x07, 0x1b, 0xc0, 0x1f, 0x2d, 0xef, 0x2c, 0xad, 0xcc, 0x2d, 0x6d, 0x0c, 0x64, 0xec, 0xcd, 0x8d, 0xae, 0x0c, 0x8f, 0x6e, 0xc3, 0xe7, 0x2e, 0x1b, 0xb4, 0x40, 0x4c, 0x75, 0xd0, 0x28, 0x39, 0xdf, 0x1a, 0x3e, 0x77, 0xd9, 0x60, 0xe5, 0xb0, 0xde, 0x41, 0x73, 0xaf, 0x97, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0x16, 0xea, 0x07, 0x37, 0x28, 0x04, 0x53, 0x0f, 0x56, 0x1a, 0x7e, 0xaf, 0xe1, 0x73, 0x97, 0x0d, 0xda, 0x0b, 0xb4, 0xdc, 0xa0, 0x10, 0x4c, 0xdd, 0x20, 0xf4, 0x4b, 0x36, 0x08, 0x29, 0x93, 0x83, 0x85, 0xef, 0xc1, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0xf6, 0x30, 0xa4, 0x37, 0x28, 0x04, 0x53, 0x37, 0x08, 0xfd, 0x92, 0x0d, 0xca, 0x26, 0xcc, 0x83, 0xe5, 0x98, 0xdc, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0x06, 0xef, 0xa3, 0x37, 0x28, 0x04, 0x53, 0x0f, 0x16, 0x48, 0x38, 0xb7, 0x41, 0x59, 0x86, 0xbd, 0x41, 0x7b, 0x3f, 0xd1, 0xb3, 0xcc, 0x02, 0xbc, 0x64, 0x65, 0x73, 0x63, 0x65, 0x6e, 0xe4, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0xf8, 0x20, 0x57, 0x36, 0xf6, 0x26, 0x47, 0x06, 0x12, 0xe6, 0x06, 0x12, 0x86, 0x97, 0x36, 0x07, 0x42, 0xf7, 0x06, 0xf2, 0x26, 0x97, 0x76, 0x96, 0xe6, 0x16, 0xc6, 0x06, 0x32, 0x57, 0x27, 0xa6, 0x56, 0x36, 0x46, 0xb7, 0xe1, 0x17, 0xa5, 0x0d, 0x1a, 0x6a, 0x0f, 0xdb, 0x70, 0x49, 0x6d, 0x48, 0x2d, 0xad, 0x41, 0xd3, 0xca, 0x54, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0x8c, 0x35, 0xb3, 0x41, 0x3b, 0x65, 0x5b, 0x07, 0xad, 0xf2, 0x62, 0xb5, 0x02, 0x3c, 0x73, 0x70, 0x6f, 0x72, 0xe5, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0xfc, 0x88, 0xd5, 0xa5, 0xb1, 0x91, 0x81, 0x90, 0x95, 0x99, 0x85, 0xd5, 0xb1, 0xd1, 0x81, 0xcc, 0x85, 0xb5, 0xc1, 0xb1, 0x95, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0x05, 0x16, 0xce, 0x1b, 0x9c, 0xf3, 0x97, 0x36, 0x68, 0x99, 0x3a, 0x61, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x6e, 0x02, 0xc1, 0x41, 0x63, 0x0e, 0x52, 0x1b, 0x9c, 0xd8, 0x6f, 0xd6, 0xf0, 0xb6, 0xce, 0x00, 0x3f, 0x59, 0xd9, 0xd8, 0x9b, 0x5c, 0x18, 0x5d, 0xd9, 0x06, 0x27, 0xf6, 0x9b, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xa3, 0xbd, 0xb5, 0x95, 0x6d, 0x50, 0x0c, 0xc8, 0xae, 0x41, 0x83, 0xf7, 0xd1, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xeb, 0x83, 0xd6, 0xe2, 0xa4, 0x37, 0x58, 0x0e, 0xc9, 0x34, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0x17, 0xcd, 0x06, 0x0b, 0x2c, 0x9c, 0x37, 0x08, 0xd2, 0xd3, 0x0d, 0x82, 0xf5, 0x76, 0x0d, 0xda, 0x82, 0x47, 0xde, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0xa0, 0xad, 0xef, 0x8b, 0x0d, 0x6f, 0xeb, 0x0c, 0x0e, 0x1f, 0x04, 0xeb, 0xed, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0x29, 0xad, 0x82, 0x83, 0x35, 0x44, 0xad, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0x3c, 0x62, 0x61, 0x73, 0x61, 0x6c, 0x1b, 0x34, 0xf0, 0x27, 0xdd, 0x6a, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0x80, 0x47, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x20, 0x68, 0x79, 0x67, 0x69, 0x65, 0x6e, 0x69, 0x63, 0x20, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x20, 0x6c, 0x65, 0x78, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x1b, 0x3e, 0x57, 0xda, 0x60, 0x15, 0xdf, 0xf7, 0xc1, 0x21, 0xa6, 0x63, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x60, 0xbd, 0x3d, 0x68, 0xe0, 0x4f, 0x7a, 0x0d, 0x9a, 0x7a, 0x20, 0xdc, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0x94, 0x2d, 0xa8, 0x1b, 0x94, 0x4d, 0xf5, 0x6b, 0xf8, 0xfa, 0x65, 0x83, 0xf6, 0x1c, 0x08, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0xc7, 0xfe, 0x9b, 0x0d, 0xca, 0xa6, 0xfa, 0x0d, 0xda, 0x73, 0x20, 0x6c, 0x0d, 0x6f, 0xeb, 0x0c, 0x1e, 0x1f, 0x04, 0xeb, 0x6d, 0x6d, 0x90, 0x94, 0x16, 0x7c, 0xd0, 0xf2, 0xa1, 0x74, 0x6b, 0xd0, 0xe0, 0x1a, 0xd8, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0xb4, 0x83, 0x60, 0x83, 0x06, 0xfe, 0xa4, 0xd7, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0x20, 0x58, 0x6f, 0x0f, 0x1a, 0x44, 0x95, 0xae, 0x35, 0x68, 0x06, 0x40, 0xf9, 0xa0, 0xb1, 0x58, 0xe9, 0x35, 0x68, 0xd1, 0x38, 0x79, 0xc3, 0x2f, 0x2e, 0x1b, 0x34, 0xa5, 0x55, 0xb0, 0x41, 0x03, 0x7f, 0xd2, 0x07, 0xcd, 0xa1, 0x4a, 0xaf, 0x86, 0xcf, 0x95, 0x36, 0x58, 0xaa, 0xed, 0x7d, 0x70, 0x88, 0xe9, 0xd8, 0x60, 0x49, 0xfd, 0xd2, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0x29, 0xb9, 0x88, 0x83, 0x96, 0x0f, 0xa5, 0x37, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x08, 0xd6, 0xdb, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0x7b, 0x6b, 0x59, 0x07, 0x0d, 0x99, 0x4a, 0x1f, 0xb4, 0x7c, 0x28, 0xdd, 0x6a, 0xf8, 0x5c, 0x69, 0x83, 0x05, 0xbf, 0xde, 0x07, 0x87, 0x98, 0x8e, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x82, 0xf5, 0x76, 0x83, 0x36, 0x69, 0x26, 0x36, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0xf8, 0xea, 0xdc, 0xe4, 0xca, 0xca, 0xd8, 0x0e, 0x5a, 0xd3, 0x95, 0x6e, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0xd2, 0x78, 0xef, 0x83, 0x43, 0x4c, 0xc7, 0x41, 0x63, 0xb1, 0xd2, 0xab, 0xe1, 0x73, 0xa5, 0x0d, 0xd6, 0x53, 0x7c, 0x1f, 0x1c, 0x62, 0x3a, 0x36, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x08, 0xd6, 0xdb, 0x0d, 0xda, 0xa4, 0x99, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0x19, 0xe0, 0xab, 0x73, 0x33, 0x7b, 0x63, 0x23, 0x3b, 0x68, 0x4d, 0x57, 0xba, 0x35, 0x68, 0xa4, 0x97, 0xf0, 0xa0, 0xb1, 0x58, 0xe9, 0x35, 0x68, 0xd8, 0x02, 0x7a, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x35, 0xa5, 0x7b, 0x07, 0x0d, 0xfc, 0x49, 0x1f, 0x34, 0x2d, 0x2b, 0xbd, 0x1a, 0x3e, 0x57, 0xda, 0x60, 0x99, 0xe6, 0xf7, 0xc1, 0x21, 0xa6, 0x63, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0xdb, 0xa0, 0x19, 0x4d, 0xe9, 0x56, 0xc3, 0xe7, 0x4a, 0x1b, 0x2c, 0x6d, 0xfd, 0x3e, 0x38, 0xc4, 0x74, 0x1c, 0xb4, 0x14, 0x28, 0xbd, 0x1a, 0x3e, 0x57, 0xda, 0x60, 0xed, 0xef, 0xf7, 0xc1, 0x21, 0xa6, 0x63, 0xc3, 0x57, 0x38, 0x1b, 0xfe, 0xa2, 0xd9, 0x60, 0x81, 0x85, 0xf3, 0x06, 0x25, 0x3c, 0xe6, 0x82, 0xd3, 0x07, 0x6d, 0xff, 0x49, 0xaf, 0xe1, 0x92, 0xda, 0xe0, 0xb0, 0xdf, 0xb1, 0x06, 0xc1, 0x7a, 0xbb, 0xe1, 0x6d, 0x9d, 0xc1, 0xd3, 0x83, 0xb6, 0xff, 0xa4, 0xdb, 0xa0, 0x30, 0x54, 0xdd, 0xa0, 0x75, 0x80, 0xe9, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x1a, 0x24, 0x98, 0xde, 0xf0, 0xb6, 0xce, 0xe0, 0xe9, 0x41, 0x4b, 0xff, 0xd2, 0x6b, 0xd0, 0xd2, 0xbf, 0xf4, 0x86, 0xb7, 0x75, 0x06, 0xa7, 0x0f, 0x5a, 0xfa, 0x97, 0x6e, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0xad, 0x9b, 0x2b, 0x03, 0x61, 0x0b, 0x9b, 0xa3, 0x03, 0x29, 0x73, 0xa3, 0x93, 0xcb, 0xdb, 0xf0, 0xb9, 0xd2, 0x06, 0x0b, 0xc0, 0xbf, 0x0f, 0x0e, 0x31, 0x1d, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0x17, 0xcd, 0x06, 0x0b, 0x2c, 0x9c, 0x37, 0x28, 0xe1, 0x31, 0x37, 0x68, 0xe9, 0x5f, 0xfa, 0xa0, 0x91, 0x83, 0xe9, 0xd5, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x7b, 0xae, 0xac, 0x0c, 0xa4, 0xce, 0x8d, 0xac, 0x4c, 0x0e, 0xa4, 0x44, 0x6c, 0x6c, 0x4c, 0x6c, 0xc3, 0xe7, 0x4a, 0x1b, 0xac, 0x29, 0x01, 0x3f, 0x38, 0xc4, 0x74, 0x1c, 0xb4, 0x14, 0x28, 0xbd, 0x1a, 0x3e, 0x57, 0xda, 0x60, 0xad, 0x03, 0xf8, 0xc1, 0x21, 0xa6, 0xe3, 0xa0, 0xb1, 0x58, 0xe9, 0xd5, 0xf0, 0xb9, 0xd2, 0x06, 0x8b, 0xcb, 0xbe, 0x0f, 0x0e, 0x31, 0x1d, 0x07, 0x8d, 0xc5, 0x4a, 0xaf, 0x86, 0xcf, 0x95, 0x36, 0x58, 0x94, 0x03, 0x7e, 0x70, 0x88, 0xe9, 0x38, 0x68, 0x2c, 0x56, 0x7a, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0x92, 0x26, 0xf0, 0x83, 0x43, 0x4c, 0xc7, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0xdd, 0x92, 0x60, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0xa8, 0x93, 0xc6, 0x41, 0xcb, 0x87, 0xd2, 0x07, 0x4d, 0xc5, 0x4a, 0xaf, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x9e, 0x62, 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x1b, 0x3e, 0x57, 0xda, 0x60, 0x95, 0x1f, 0xf8, 0xc1, 0x21, 0xa6, 0x63, 0xc3, 0x2f, 0x2e, 0x1b, 0x34, 0x2b, 0xd4, 0xb0, 0x86, 0x5f, 0x5c, 0x36, 0x48, 0x4a, 0x0b, 0x3e, 0x38, 0x2c, 0xcf, 0x1c, 0xb4, 0x7c, 0x28, 0xbd, 0x1a, 0x3e, 0x57, 0xda, 0x60, 0x4d, 0x24, 0xf8, 0xc1, 0x21, 0xa6, 0xe3, 0xa0, 0xd9, 0x78, 0xe9, 0xd5, 0xf0, 0xb9, 0xd2, 0x06, 0x2b, 0x49, 0xc1, 0x0f, 0x0e, 0x31, 0x1d, 0x1b, 0x7e, 0x71, 0xd9, 0xa0, 0xcd, 0xf5, 0x84, 0x0d, 0x1a, 0x44, 0x95, 0x3e, 0x68, 0xf9, 0x50, 0x7a, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0x9a, 0x67, 0xf0, 0x83, 0x43, 0x4c, 0xc7, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0x4d, 0x45, 0xe1, 0xa0, 0x19, 0x58, 0xe9, 0xd5, 0xf0, 0xb9, 0xd2, 0x06, 0x8b, 0xca, 0xc1, 0x0f, 0x0e, 0x31, 0x1d, 0x07, 0xcd, 0xc6, 0x4b, 0xaf, 0x86, 0x27, 0xde, 0x37, 0x68, 0x3f, 0x62, 0xfa, 0xa0, 0x5d, 0x82, 0xc1, 0x83, 0x96, 0x33, 0xa6, 0x57, 0xc3, 0xe7, 0x4a, 0x1b, 0xac, 0xb9, 0xff, 0x3e, 0x38, 0xc4, 0x74, 0x1c, 0xb4, 0x14, 0x28, 0xbd, 0x1a, 0x3e, 0x57, 0xda, 0x60, 0xdd, 0x1a, 0xf8, 0xc1, 0x21, 0xa6, 0xe3, 0xa0, 0xa5, 0x40, 0xe9, 0xd5, 0xf0, 0xb9, 0xd2, 0x06, 0xeb, 0x7a, 0xc1, 0x0f, 0x0e, 0x31, 0x1d, 0x07, 0x2d, 0x05, 0x4a, 0xaf, 0x86, 0xcf, 0x95, 0x36, 0x58, 0xe3, 0x10, 0x7e, 0x70, 0x88, 0xe9, 0x38, 0x68, 0x29, 0x50, 0xba, 0xd5, 0xa0, 0xe1, 0x15, 0xcd, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0x78, 0x22, 0x2b, 0x93, 0x4b, 0xb3, 0x2b, 0x03, 0x71, 0x0b, 0x6b, 0x2b, 0x03, 0x31, 0x93, 0x7b, 0x6b, 0x03, 0x99, 0x83, 0x2b, 0x1b, 0xdb, 0xf0, 0x15, 0xce, 0x86, 0xbf, 0x68, 0x36, 0x58, 0xdf, 0x09, 0xbd, 0x41, 0x90, 0x9e, 0xae, 0x71, 0xe8, 0x20, 0x58, 0x6f, 0xd7, 0x60, 0x15, 0xa3, 0xf3, 0x06, 0xc5, 0x8e, 0xe6, 0x1a, 0x14, 0x93, 0x98, 0x1b, 0x34, 0xb0, 0x38, 0x75, 0xd0, 0xf6, 0x9f, 0xf4, 0x06, 0x05, 0x45, 0xe6, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x06, 0x49, 0x69, 0xc1, 0x1b, 0xde, 0xd6, 0x19, 0x1c, 0x3e, 0x68, 0xfb, 0x4f, 0x7a, 0x0d, 0x8e, 0xe1, 0x06, 0x07, 0x4d, 0x6a, 0x5e, 0x6c, 0x70, 0x0c, 0x37, 0x38, 0x68, 0xe9, 0x71, 0x7a, 0x0d, 0x96, 0xe8, 0x3a, 0x1f, 0x34, 0x16, 0x2b, 0xbd, 0x06, 0xab, 0x15, 0xbd, 0x0f, 0x1a, 0x8b, 0x95, 0x5e, 0x83, 0xb3, 0x98, 0xe8, 0x06, 0xc7, 0x70, 0x83, 0x83, 0x06, 0xfe, 0xa4, 0xd7, 0x60, 0xa9, 0xb6, 0xf7, 0x41, 0x7b, 0x9b, 0xd3, 0x6b, 0xb0, 0xe0, 0xd7, 0x7b, 0x83, 0x12, 0x1e, 0x73, 0x83, 0xb6, 0xff, 0xa4, 0x37, 0x28, 0x28, 0x32, 0x37, 0x28, 0x06, 0x64, 0x37, 0x68, 0x90, 0x60, 0x7a, 0x0d, 0x1f, 0xe4, 0xac, 0x41, 0x31, 0x89, 0xb9, 0x41, 0xc0, 0x06, 0x6d, 0x1c, 0x3a, 0x68, 0x90, 0x60, 0x7a, 0x83, 0x82, 0x22, 0x73, 0xc3, 0xdb, 0x3a, 0x83, 0xc7, 0x07, 0x0d, 0x12, 0x4c, 0x6f, 0x70, 0x0c, 0x37, 0x38, 0x68, 0x75, 0x60, 0x7a, 0x0d, 0xd6, 0x53, 0x7c, 0x6f, 0x50, 0x96, 0xbc, 0x6f, 0xd0, 0xee, 0x01, 0xe7, 0x06, 0x8d, 0xdd, 0x77, 0x1d, 0xb4, 0x7c, 0x28, 0xbd, 0x06, 0x4b, 0xe3, 0xbd, 0x0f, 0x1a, 0x8b, 0x95, 0x5e, 0x83, 0x15, 0x4c, 0xdf, 0x07, 0x8d, 0xc5, 0x4a, 0xaf, 0xc1, 0x72, 0x99, 0xef, 0x83, 0xc6, 0x62, 0xa5, 0xd7, 0x60, 0x15, 0xdf, 0xf7, 0x41, 0xb3, 0xf1, 0xd2, 0x6b, 0xb0, 0x4c, 0xf3, 0xfb, 0xa0, 0xd9, 0x78, 0xe9, 0x35, 0x58, 0xda, 0xfa, 0x7d, 0xd0, 0x56, 0xec, 0xf4, 0x1a, 0xac, 0xfd, 0xfd, 0xde, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0x0e, 0x5a, 0x15, 0x98, 0x5e, 0x83, 0x05, 0xe0, 0xdf, 0x07, 0x8d, 0x10, 0x4f, 0xaf, 0xc1, 0x9a, 0xfb, 0xef, 0x83, 0x82, 0x22, 0x73, 0x0d, 0xd6, 0x3a, 0x80, 0x1f, 0x34, 0x16, 0x2b, 0xbd, 0x06, 0x8b, 0xcb, 0xbe, 0x0f, 0x1a, 0x8b, 0x95, 0x5e, 0x83, 0x35, 0x25, 0xe0, 0x07, 0xcd, 0xc6, 0x4b, 0xaf, 0xc1, 0xa2, 0x1c, 0xf0, 0x83, 0xc6, 0x62, 0xa5, 0xd7, 0x60, 0x49, 0x13, 0xf8, 0x41, 0x63, 0xb1, 0xd2, 0x6b, 0xb0, 0x6e, 0x0d, 0xfc, 0xa0, 0xa0, 0xc8, 0x5c, 0x83, 0x55, 0x7e, 0xe0, 0x07, 0x6d, 0xc5, 0x4e, 0xaf, 0xc1, 0x9a, 0x48, 0xf0, 0x83, 0x66, 0xe3, 0xa5, 0xd7, 0x60, 0x25, 0x29, 0xf8, 0x41, 0x63, 0xb1, 0xd2, 0x6b, 0xb0, 0xae, 0x17, 0xfc, 0xa0, 0xa0, 0xc8, 0x5c, 0x83, 0x35, 0xcf, 0xe0, 0x07, 0x8d, 0xc5, 0x4a, 0xaf, 0xc1, 0xa2, 0x72, 0xf0, 0x83, 0xc6, 0x62, 0xa5, 0xd7, 0x60, 0x49, 0x3e, 0xf8, 0x41, 0x23, 0xc4, 0xd3, 0x6b, 0xb0, 0xc6, 0x21, 0xfc, 0xa0, 0xa0, 0xc8, 0x6c, 0x16, 0xe0, 0x83, 0x4b, 0x2b, 0x1b, 0x2b, 0x9b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0xa9, 0xcc, 0xad, 0xae, 0xad, 0x4c, 0x2e, 0x8c, 0xae, 0x0c, 0x84, 0xae, 0x0e, 0x8e, 0xad, 0x0c, 0xe4, 0x2e, 0xcd, 0xed, 0x6c, 0x6e, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x60, 0x34, 0x39, 0x58, 0xfe, 0xef, 0xbd, 0xe1, 0x2f, 0x9a, 0x35, 0x08, 0xfd, 0x92, 0x35, 0xbc, 0xad, 0xb3, 0x38, 0xce, 0x41, 0x30, 0x9a, 0x74, 0xb0, 0xf2, 0x04, 0x7b, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0x48, 0xd5, 0x1b, 0x84, 0x94, 0xc9, 0x1a, 0x7e, 0x51, 0xda, 0x60, 0x5d, 0xa8, 0xf9, 0x86, 0xbf, 0x68, 0x36, 0x58, 0x3b, 0xf2, 0xbc, 0xe1, 0x17, 0x97, 0x0d, 0xda, 0x65, 0x29, 0x38, 0x28, 0xeb, 0x3c, 0x3b, 0x9c, 0x62, 0x6b, 0xd0, 0xc0, 0x69, 0xd7, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0xf8, 0x04, 0x27, 0xf7, 0x46, 0x56, 0x37, 0x56, 0x06, 0x12, 0x06, 0x32, 0xf6, 0x26, 0x27, 0x57, 0x36, 0x46, 0xc7, 0x96, 0x07, 0x42, 0x97, 0x07, 0x57, 0x46, 0x06, 0x42, 0x56, 0x66, 0x16, 0x56, 0xc7, 0x46, 0x07, 0x92, 0xe6, 0x36, 0x47, 0x17, 0xe6, 0x36, 0x56, 0xb6, 0xc1, 0x72, 0x48, 0xa6, 0xd9, 0xf0, 0x17, 0xcd, 0x06, 0x0b, 0x2c, 0x9c, 0x37, 0x38, 0x39, 0xc8, 0x6d, 0x10, 0xac, 0xb7, 0x6b, 0x70, 0xce, 0x5f, 0xda, 0xa0, 0x11, 0xd5, 0x86, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x5b, 0x58, 0xd2, 0x6d, 0x50, 0x96, 0xbc, 0x2f, 0xc0, 0x2f, 0x57, 0xc6, 0x16, 0x46, 0x97, 0x66, 0x57, 0xb6, 0x86, 0x07, 0x25, 0xd7, 0xf0, 0xb6, 0xce, 0x00, 0x6f, 0x98, 0x5b, 0x18, 0x5b, 0x9e, 0x5e, 0xd9, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x6d, 0x09, 0x49, 0x77, 0x50, 0x50, 0x8a, 0x1f, 0x04, 0x2b, 0xeb, 0x1a, 0xb4, 0x05, 0x8f, 0xbc, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0x4d, 0x93, 0xde, 0xa0, 0x25, 0x42, 0xe9, 0xd6, 0xa0, 0xc1, 0x35, 0xb0, 0x0d, 0x97, 0xd4, 0x06, 0xcd, 0x9b, 0x76, 0x6d, 0xd0, 0xb8, 0xac, 0xf4, 0x1a, 0xb4, 0xa2, 0x14, 0xbb, 0xe1, 0x17, 0x97, 0x0d, 0x1a, 0xf8, 0x93, 0xde, 0xa0, 0xa9, 0xa4, 0xd8, 0x5a, 0x83, 0x66, 0x00, 0x94, 0x37, 0x5c, 0x52, 0x1b, 0x34, 0x6f, 0xda, 0xb5, 0x41, 0xe3, 0xb2, 0xd2, 0xab, 0x41, 0x7b, 0x18, 0xd2, 0x1d, 0xb4, 0xb7, 0x39, 0xdd, 0x1a, 0xb4, 0x68, 0x9c, 0xbc, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0x4d, 0x93, 0xde, 0xa0, 0x39, 0x5c, 0xe9, 0xd6, 0xa0, 0xcd, 0x65, 0xe9, 0x0d, 0x97, 0xd4, 0x06, 0xcd, 0x9b, 0x76, 0x1d, 0x34, 0xff, 0x2c, 0xbd, 0x06, 0xed, 0xf2, 0x4a, 0x6f, 0xf8, 0xc5, 0x65, 0x83, 0xf6, 0x4a, 0x0a, 0x0e, 0x5a, 0x3e, 0x94, 0x5e, 0x83, 0x26, 0xae, 0xa5, 0x37, 0x5c, 0x52, 0x1b, 0x34, 0x6f, 0xda, 0xb5, 0x41, 0xe3, 0xb2, 0xd2, 0x6b, 0xd0, 0xfa, 0x0e, 0xf5, 0x06, 0xc7, 0x70, 0x83, 0x0d, 0x9a, 0x32, 0x8c, 0xd8, 0xf0, 0x8b, 0xcb, 0x06, 0x2d, 0x3d, 0x4e, 0xaf, 0xc1, 0x31, 0xdc, 0x60, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xe6, 0xd3, 0xa7, 0x5b, 0xc3, 0xdb, 0x3a, 0x83, 0xc7, 0x07, 0x6d, 0xff, 0x49, 0x57, 0x6b, 0xd0, 0xca, 0xb6, 0xf4, 0x86, 0x4b, 0x6a, 0x83, 0xe6, 0x4d, 0xbb, 0x0e, 0x1a, 0xfc, 0x96, 0x5e, 0x83, 0x46, 0x7a, 0x09, 0x37, 0x5c, 0x52, 0x1b, 0x34, 0x6f, 0xda, 0xb5, 0x41, 0xe3, 0xb2, 0xd2, 0x6b, 0xd0, 0xfa, 0x0e, 0xf5, 0x06, 0xc7, 0x70, 0x83, 0x0d, 0x9a, 0x32, 0x8c, 0xd8, 0xf0, 0x8b, 0xcb, 0x06, 0x0d, 0xfc, 0x49, 0x1f, 0x94, 0x75, 0x9e, 0xad, 0x41, 0xc3, 0x16, 0xd0, 0x1b, 0x2e, 0xa9, 0x0d, 0x9a, 0x37, 0xed, 0x3a, 0x68, 0x6c, 0x5d, 0x7a, 0x0d, 0x9a, 0xa3, 0x97, 0xde, 0xf0, 0x6e, 0xcf, 0x06, 0x8d, 0xa6, 0x49, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0x9a, 0x70, 0x93, 0x3e, 0x68, 0xf9, 0x50, 0xba, 0x35, 0x68, 0x11, 0x5f, 0x7a, 0x83, 0x13, 0xfb, 0xcd, 0x06, 0x8d, 0xa6, 0x49, 0x6f, 0xf8, 0x0a, 0x67, 0xc3, 0x5f, 0x34, 0x1b, 0x2c, 0xb0, 0x70, 0xde, 0xa0, 0x84, 0xc7, 0xdc, 0xa0, 0xa5, 0x7f, 0xe9, 0x35, 0x3c, 0x28, 0xb9, 0x86, 0xb7, 0x75, 0x0e, 0x9a, 0x37, 0xed, 0xda, 0x70, 0x49, 0x2d, 0xc0, 0x33, 0xc6, 0x56, 0x16, 0x26, 0x77, 0xd0, 0xaa, 0xc0, 0xf4, 0x06, 0x85, 0xa1, 0xea, 0x06, 0x4d, 0xf1, 0x51, 0x6f, 0x78, 0x50, 0x72, 0x83, 0x76, 0xfa, 0xa8, 0x37, 0x5c, 0x52, 0x1b, 0xb4, 0xfe, 0x47, 0x7d, 0xd0, 0x6c, 0xc2, 0xf4, 0x1a, 0x34, 0x5f, 0x32, 0xbd, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0x4d, 0x93, 0x5e, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x50, 0x72, 0x0d, 0x6f, 0xeb, 0x6c, 0x10, 0x14, 0x58, 0x6d, 0x78, 0x5b, 0xe7, 0xa0, 0xf5, 0x3f, 0xea, 0x83, 0xd6, 0x74, 0xa5, 0x5b, 0x83, 0x16, 0x8a, 0xa6, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0xa3, 0x69, 0xd2, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x26, 0xdc, 0xa4, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0xcd, 0x0a, 0x35, 0x6c, 0xd0, 0xce, 0x9a, 0xe5, 0x41, 0xcb, 0x87, 0xd2, 0xb5, 0x06, 0x8d, 0x48, 0x4d, 0x6f, 0xf8, 0xc5, 0x65, 0x83, 0x96, 0xa9, 0x13, 0xd6, 0x70, 0x49, 0x6d, 0xd0, 0xbc, 0x69, 0xd7, 0x41, 0xd3, 0xb2, 0xd2, 0x07, 0x6d, 0xc3, 0x51, 0xaf, 0x41, 0x53, 0x36, 0xd3, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xd1, 0x34, 0xe9, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0xeb, 0x96, 0x04, 0x1b, 0x34, 0xb4, 0x33, 0xbd, 0x41, 0x63, 0xa0, 0xd4, 0xb5, 0x06, 0x4d, 0x65, 0x4d, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0x46, 0xd3, 0xa4, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0xad, 0xa9, 0x28, 0x6c, 0xd0, 0xc0, 0x9f, 0xf4, 0x1a, 0x1e, 0x94, 0xdc, 0xa0, 0x9d, 0x3e, 0xea, 0x0d, 0x97, 0xd4, 0x06, 0xad, 0xff, 0x51, 0x1f, 0x34, 0x2d, 0x2b, 0x5d, 0x6b, 0xd0, 0xec, 0xd9, 0xf4, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x34, 0x4d, 0x7a, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0x84, 0x9b, 0xf4, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0x78, 0xa4, 0xb9, 0xd1, 0x95, 0xc9, 0x99, 0x85, 0x8d, 0x95, 0x6d, 0xd0, 0x82, 0xce, 0xd4, 0x41, 0x6b, 0xba, 0xd2, 0xb5, 0x06, 0x2d, 0xaf, 0x4d, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0x46, 0xd3, 0xa4, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x4d, 0xb8, 0x49, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0x9a, 0xeb, 0xa5, 0xde, 0xa0, 0x5d, 0x5a, 0xaf, 0x83, 0xd6, 0x74, 0xa5, 0x6b, 0x0d, 0xda, 0x9f, 0x9b, 0xde, 0xf0, 0x6e, 0xcf, 0x06, 0x8d, 0xa6, 0x49, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0x9a, 0x70, 0x93, 0x5e, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0xd7, 0x4b, 0xbd, 0x41, 0x83, 0xce, 0x56, 0x07, 0xad, 0xe9, 0x4a, 0xd7, 0x1a, 0x34, 0xfe, 0x36, 0xbd, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0x4d, 0x93, 0x5e, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0xe1, 0x26, 0xbd, 0x86, 0x77, 0x7b, 0x36, 0x68, 0xae, 0x97, 0x7a, 0x83, 0xd6, 0xc3, 0xbd, 0x0e, 0x5a, 0xd3, 0x95, 0xae, 0x56, 0x83, 0xf6, 0xdd, 0xa4, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xc0, 0xab, 0x32, 0x3c, 0x38, 0xb9, 0xb2, 0xb9, 0x39, 0x90, 0x30, 0x10, 0xb4, 0xb7, 0x37, 0x37, 0x90, 0xb0, 0xb3, 0xb0, 0x34, 0xb7, 0x39, 0x3a, 0x10, 0x3a, 0xb4, 0x32, 0x90, 0x37, 0xb9, 0xb4, 0xb3, 0x34, 0xb7, 0x30, 0x36, 0x90, 0xb9, 0x3a, 0x31, 0xb5, 0xb2, 0x31, 0xba, 0x0d, 0xbf, 0x28, 0x6d, 0xd0, 0x02, 0x85, 0xd4, 0x86, 0xbf, 0x68, 0x36, 0x58, 0x60, 0xe1, 0xbc, 0x41, 0x41, 0x1a, 0xbb, 0x06, 0x25, 0x74, 0xec, 0x1a, 0x2c, 0x23, 0xb0, 0x3a, 0x68, 0x85, 0x98, 0xe0, 0x20, 0x4c, 0xc7, 0xd6, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0xf0, 0x98, 0xcc, 0x41, 0xbb, 0xbc, 0x58, 0x1b, 0xac, 0x8f, 0x5f, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0x27, 0x82, 0xb6, 0x0d, 0xd6, 0xc7, 0x2f, 0xae, 0xe1, 0x2f, 0x9a, 0x0d, 0xd6, 0x8e, 0x3c, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0x0a, 0x4c, 0xf6, 0xa0, 0x55, 0x5e, 0xac, 0x83, 0xb2, 0xce, 0xb3, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x5f, 0x4e, 0x6e, 0xd0, 0xd6, 0x89, 0xd4, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0x10, 0xae, 0x61, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x46, 0x7a, 0xc1, 0x41, 0x2a, 0xd0, 0xd8, 0x41, 0x4b, 0x27, 0x52, 0xb3, 0x06, 0x2d, 0x8f, 0x50, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0x80, 0x17, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x20, 0x61, 0x20, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x1b, 0x94, 0x65, 0xd8, 0x6b, 0xf8, 0x5c, 0xe9, 0xa0, 0xe5, 0x6e, 0xb3, 0x59, 0x66, 0x0d, 0xda, 0xff, 0xa3, 0xde, 0x70, 0x49, 0x6d, 0x50, 0xd4, 0x88, 0xaf, 0xc6, 0xe3, 0x83, 0x76, 0x47, 0xa8, 0x37, 0xbc, 0xad, 0xb3, 0x38, 0xce, 0x41, 0xfb, 0x7f, 0xd4, 0xb5, 0x02, 0x3c, 0x62, 0x61, 0x73, 0x69, 0xe3, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0x2b, 0x06, 0x2e, 0x0f, 0x96, 0x4f, 0x3a, 0x6f, 0xf8, 0x8b, 0x66, 0x83, 0x05, 0x16, 0xce, 0x1b, 0x04, 0xe9, 0xe9, 0x06, 0xcb, 0x74, 0x30, 0xd7, 0xa0, 0x81, 0xc5, 0xa9, 0x0d, 0xce, 0xf9, 0x4b, 0x1b, 0xb4, 0x4c, 0x9d, 0xb0, 0x41, 0x3b, 0x7d, 0xd4, 0x1b, 0xfe, 0xa2, 0xd9, 0x60, 0x81, 0x85, 0xf3, 0x06, 0x8b, 0xca, 0x93, 0x36, 0x68, 0x9e, 0xfc, 0x61, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x17, 0x97, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0x32, 0x27, 0xd9, 0x0d, 0x0f, 0xde, 0xac, 0xc1, 0x31, 0xdc, 0x60, 0xc3, 0x1b, 0x77, 0x1b, 0x5e, 0xbe, 0x3b, 0x58, 0x90, 0x51, 0xd7, 0x41, 0x59, 0xe7, 0x79, 0x50, 0xd6, 0x79, 0xae, 0xe1, 0x17, 0x97, 0x0d, 0xda, 0x5b, 0x47, 0x58, 0xc3, 0x2f, 0x2e, 0x1b, 0xb4, 0x57, 0x52, 0xb0, 0x41, 0x73, 0x3e, 0xd5, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0x1a, 0xed, 0x2b, 0xd8, 0x60, 0x2d, 0x95, 0xdd, 0x1a, 0xde, 0xd6, 0x19, 0x1c, 0x3e, 0x58, 0xa6, 0x83, 0xd9, 0x1a, 0xde, 0xd6, 0x19, 0xe0, 0x31, 0x2b, 0xa3, 0x1b, 0x43, 0x6b, 0xc3, 0x2f, 0x2e, 0x1b, 0xb4, 0xfa, 0xef, 0xb0, 0x86, 0xb7, 0x75, 0x06, 0xf0, 0x31, 0x2b, 0xa3, 0x1b, 0x43, 0x6b, 0xb9, 0x4b, 0x73, 0x3b, 0xdb, 0xa0, 0x05, 0xa7, 0xea, 0x83, 0x76, 0x21, 0x9d, 0xd7, 0x60, 0xfd, 0x3e, 0xf3, 0x06, 0xe7, 0xfc, 0xa5, 0x0d, 0x5a, 0xa6, 0x4e, 0xd8, 0xa0, 0x9d, 0x3e, 0xea, 0x0d, 0x9f, 0xd8, 0x6c, 0xd0, 0xae, 0x54, 0xf5, 0x06, 0x85, 0xa1, 0xea, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0x8d, 0xf4, 0x82, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0x05, 0x26, 0xbb, 0x41, 0xb8, 0xa1, 0x76, 0x90, 0x0a, 0x34, 0xd6, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0x23, 0xbd, 0x60, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x17, 0x97, 0x0d, 0x56, 0x81, 0xc9, 0x6e, 0x10, 0x1c, 0xa9, 0x1d, 0xa4, 0x02, 0x8d, 0xb5, 0x06, 0xeb, 0x10, 0x9a, 0x37, 0x58, 0x54, 0x9e, 0xb4, 0x41, 0x3b, 0x4f, 0x0e, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x06, 0xfe, 0x12, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x4d, 0x69, 0x15, 0x6c, 0x90, 0x94, 0x16, 0x7c, 0x90, 0x9e, 0x02, 0xb5, 0x86, 0x5f, 0x5c, 0x36, 0x48, 0x4a, 0x0b, 0x3e, 0x68, 0xa5, 0x6c, 0xab, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x53, 0x5a, 0x05, 0x1b, 0xa4, 0x38, 0x39, 0x1d, 0xa4, 0xa7, 0x40, 0x6d, 0x70, 0xce, 0x5f, 0xda, 0xa0, 0xfd, 0x59, 0x87, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x03, 0x7f, 0x09, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xa6, 0xb4, 0x0a, 0x36, 0x48, 0x4a, 0x0b, 0x3e, 0x48, 0xb5, 0x85, 0x3b, 0x68, 0xf5, 0xae, 0x7a, 0xc3, 0x2f, 0x2e, 0x1b, 0x34, 0xa5, 0x55, 0xb0, 0x41, 0x8a, 0x93, 0xd3, 0x41, 0xaa, 0x2d, 0xdc, 0x1a, 0xac, 0x77, 0x67, 0x3e, 0x68, 0xc1, 0xa9, 0x7a, 0x0d, 0x16, 0x53, 0x34, 0x6f, 0x70, 0xce, 0x5f, 0xda, 0xa0, 0xfd, 0x59, 0x87, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x03, 0x7f, 0x09, 0x1b, 0x34, 0x58, 0x26, 0x7d, 0xd0, 0xea, 0x5d, 0xf5, 0x41, 0x03, 0xb3, 0x9a, 0x6b, 0xb0, 0x5e, 0xa4, 0xf9, 0x60, 0x0d, 0x95, 0x73, 0xb3, 0x06, 0xcd, 0x3b, 0x55, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0x03, 0xdb, 0x5b, 0x18, 0x19, 0x08, 0x1d, 0x5a, 0x19, 0x88, 0x99, 0x5c, 0xd8, 0x59, 0x5b, 0x99, 0x1b, 0xdd, 0x86, 0xbf, 0x68, 0x36, 0x58, 0x60, 0xe1, 0x7c, 0xd0, 0xee, 0x5d, 0xf5, 0xe1, 0x14, 0x5b, 0x80, 0x6f, 0xee, 0x2e, 0x8d, 0x6e, 0x0c, 0xdd, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0xb4, 0xff, 0xd1, 0x79, 0xb0, 0xc0, 0x0a, 0x7a, 0x0d, 0x7f, 0x2e, 0x6d, 0x30, 0xe6, 0x9f, 0x0e, 0x96, 0x7b, 0x7c, 0xb7, 0xe1, 0x2b, 0x9c, 0x0d, 0x7f, 0xd1, 0x6c, 0xb0, 0xc0, 0xc2, 0x79, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x12, 0x5d, 0x79, 0x0d, 0x0f, 0x4a, 0xae, 0xe1, 0x6d, 0x9d, 0x83, 0xd6, 0x3e, 0xa8, 0x37, 0x5c, 0x52, 0x1b, 0xb4, 0xfe, 0x47, 0xbd, 0x06, 0xc1, 0x7a, 0x7b, 0xd0, 0x18, 0x9b, 0x70, 0x1b, 0x14, 0xa4, 0xb1, 0x6b, 0xf8, 0xbe, 0x7d, 0x83, 0x96, 0x36, 0x4b, 0x0f, 0x1a, 0xb9, 0xca, 0x5a, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x76, 0xda, 0x84, 0x37, 0xbc, 0xad, 0x33, 0x78, 0x7a, 0x50, 0xa2, 0x2b, 0xaf, 0x41, 0x89, 0xae, 0xbc, 0xe1, 0x6d, 0x9d, 0xc1, 0xe9, 0x83, 0x12, 0x5d, 0xb9, 0x0d, 0x16, 0x95, 0x27, 0x6d, 0xd0, 0xce, 0x93, 0xc3, 0x1a, 0x9c, 0xf3, 0x97, 0x36, 0x68, 0x4e, 0x97, 0x60, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0xac, 0x50, 0xc3, 0x06, 0xad, 0xa3, 0xa7, 0xad, 0xe1, 0x41, 0xc9, 0x0d, 0xda, 0xe9, 0xa3, 0x3e, 0x68, 0xca, 0xb6, 0xba, 0x0d, 0x97, 0xd4, 0x06, 0x4d, 0x4e, 0x55, 0x1f, 0xb4, 0x7f, 0xba, 0xb5, 0x41, 0x83, 0xb3, 0xd5, 0x1b, 0xde, 0xd6, 0xd9, 0xa0, 0xa5, 0xcd, 0xd2, 0x66, 0x01, 0xbe, 0x31, 0xb4, 0xb7, 0xb4, 0xb1, 0x72, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x3c, 0x68, 0x0b, 0xa3, 0x1b, 0x43, 0x03, 0x31, 0xab, 0x63, 0x63, 0x03, 0x69, 0x7b, 0x23, 0x2b, 0x63, 0x9b, 0x63, 0x01, 0x11, 0xcb, 0x03, 0xa1, 0x93, 0xcb, 0x4b, 0x73, 0x3b, 0x03, 0xa1, 0x43, 0x2b, 0x6b, 0xdb, 0xf0, 0x8b, 0xd2, 0x06, 0x2d, 0x9f, 0x56, 0x6f, 0xf8, 0x8b, 0x66, 0x83, 0x05, 0x16, 0xce, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x94, 0xe8, 0xca, 0x1b, 0x34, 0x38, 0x5b, 0xbd, 0xc1, 0xa2, 0xf2, 0xa4, 0x0d, 0xda, 0x79, 0x72, 0x58, 0xc3, 0x2f, 0x2e, 0x1b, 0x34, 0xa7, 0x4b, 0xb0, 0x41, 0x6b, 0xce, 0xd5, 0x1b, 0xb4, 0x2b, 0x55, 0xdd, 0x06, 0x0d, 0xce, 0x56, 0x1f, 0x34, 0xe7, 0x5b, 0x3d, 0x6b, 0xd0, 0xe8, 0x54, 0xf5, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0xde, 0x6c, 0x6f, 0x61, 0x64, 0x2c, 0x20, 0x61, 0x73, 0x20, 0x61, 0x20, 0x77, 0x69, 0x6e, 0x67, 0x1b, 0xfe, 0xa2, 0xd9, 0x60, 0xed, 0xc8, 0xf3, 0x86, 0x5f, 0x5c, 0x0e, 0x5a, 0x1b, 0x5b, 0x9e, 0x35, 0x68, 0xef, 0x83, 0x7a, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x1e, 0xd8, 0xde, 0xc6, 0xc2, 0xd8, 0x40, 0xc6, 0xde, 0xdc, 0xe6, 0xe8, 0xe4, 0xea, 0xc6, 0xe8, 0xde, 0xe4, 0x36, 0x58, 0x0e, 0xc9, 0x34, 0x1b, 0xfe, 0xa2, 0xd9, 0x60, 0x81, 0x85, 0xf3, 0x06, 0x41, 0x7a, 0xba, 0x41, 0xb0, 0xde, 0xae, 0x41, 0x5b, 0xf0, 0xc8, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xd1, 0x34, 0xe9, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0x07, 0x25, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0x6d, 0x9a, 0x54, 0x77, 0xd0, 0x26, 0x24, 0xf5, 0x41, 0xcb, 0x87, 0xd2, 0xad, 0x41, 0x83, 0x6b, 0x60, 0x1b, 0x2e, 0xa9, 0x0d, 0x5a, 0xfb, 0xa0, 0x3e, 0x68, 0x43, 0x86, 0x7a, 0x0d, 0x9a, 0x01, 0x50, 0xde, 0x70, 0x49, 0x6d, 0xd0, 0xda, 0x07, 0xf5, 0x41, 0xab, 0x3a, 0xd4, 0x6b, 0xd0, 0xa2, 0x71, 0xf2, 0x06, 0x27, 0xf6, 0x9b, 0x0d, 0x1a, 0x4d, 0x93, 0xde, 0xe0, 0x9c, 0xbf, 0xb4, 0x41, 0xfb, 0xb3, 0x0e, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x06, 0xfe, 0x12, 0x36, 0x68, 0xc1, 0xa9, 0x7a, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x94, 0x56, 0xc1, 0x06, 0x49, 0x69, 0xc1, 0x07, 0xcd, 0xa1, 0x4a, 0x77, 0xd0, 0x1c, 0xae, 0xf4, 0x1a, 0xb4, 0xb2, 0x2d, 0xbd, 0xe1, 0x92, 0xda, 0xa0, 0xb5, 0x0f, 0xea, 0x83, 0x06, 0xbf, 0xa5, 0xd7, 0xa0, 0xcd, 0x65, 0xe9, 0x0d, 0x97, 0xd4, 0x06, 0xad, 0x7d, 0x50, 0x1f, 0x34, 0xff, 0x2c, 0xbd, 0x06, 0xed, 0xf2, 0x4a, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0x46, 0xd3, 0xa4, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0xcd, 0xe6, 0x21, 0x6c, 0xd0, 0xf6, 0x11, 0xf5, 0x41, 0xfb, 0x4d, 0xd5, 0xad, 0x41, 0x23, 0xbd, 0x84, 0x1b, 0x2e, 0xa9, 0x0d, 0x5a, 0xfb, 0xa0, 0x3e, 0x68, 0x45, 0x8c, 0x7a, 0x0d, 0x9a, 0xb8, 0x96, 0xde, 0x70, 0x49, 0x6d, 0xd0, 0xda, 0x07, 0xf5, 0x41, 0xeb, 0x4d, 0xd4, 0x6b, 0xd0, 0xb0, 0x05, 0xf4, 0x86, 0x4b, 0x6a, 0x83, 0xd6, 0x3e, 0xa8, 0x0f, 0x1a, 0x5b, 0x97, 0x5e, 0x83, 0x96, 0x2b, 0xa5, 0x37, 0x38, 0xe7, 0x2f, 0x6d, 0xd0, 0xaa, 0xbe, 0xc1, 0x1a, 0x2e, 0xa9, 0x0d, 0x5a, 0xfb, 0xa0, 0xde, 0xa0, 0x19, 0x4d, 0xe9, 0x35, 0x68, 0x5a, 0x99, 0x6a, 0xc3, 0xbb, 0x3d, 0x1b, 0x9c, 0xb1, 0x66, 0x36, 0x28, 0x2a, 0xc5, 0x0f, 0x5a, 0xe5, 0xc5, 0x6a, 0x83, 0xa3, 0x0d, 0xdf, 0x06, 0xcd, 0xad, 0x29, 0x6f, 0x70, 0x62, 0xbf, 0x59, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x72, 0xe7, 0xfd, 0xa0, 0x0d, 0x3a, 0xe5, 0x0d, 0x7f, 0xd1, 0x6c, 0xb0, 0xb8, 0x7f, 0x7c, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x12, 0xa9, 0x7a, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x16, 0x81, 0x8c, 0x6e, 0x50, 0x36, 0xd5, 0x1f, 0x34, 0x87, 0x2a, 0xbd, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0xba, 0x50, 0xf3, 0x83, 0xa6, 0x00, 0x38, 0x37, 0xfc, 0xe2, 0xb2, 0x41, 0xbb, 0x2c, 0x05, 0x6b, 0xb8, 0xa4, 0x36, 0x68, 0xed, 0x83, 0x7a, 0x0d, 0x82, 0xf5, 0xf6, 0xa0, 0x55, 0x24, 0x83, 0x83, 0x06, 0x9c, 0xac, 0x5b, 0x83, 0x16, 0x9c, 0xa6, 0x37, 0x38, 0xe7, 0x2f, 0x6d, 0xd0, 0x88, 0x6a, 0xc3, 0x1a, 0x2e, 0xa9, 0x0d, 0x5a, 0xfb, 0xa0, 0x3e, 0x68, 0x64, 0x5e, 0x7a, 0x83, 0x73, 0xfe, 0xd2, 0x06, 0x8d, 0xa8, 0x36, 0xac, 0xe1, 0x17, 0x97, 0x0d, 0x1a, 0x84, 0x6b, 0xd8, 0xa0, 0x0d, 0x9c, 0xe6, 0x83, 0xe6, 0x50, 0xa5, 0x37, 0x38, 0xe7, 0x2f, 0x6d, 0xd0, 0x88, 0x6a, 0xc3, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0xd9, 0x3c, 0x84, 0x35, 0x48, 0x4a, 0x0b, 0x3e, 0x08, 0x58, 0xd6, 0x35, 0x48, 0x4a, 0x0b, 0x3e, 0x38, 0x2e, 0xcf, 0xb4, 0xc1, 0x39, 0x7f, 0x69, 0x83, 0xf6, 0x67, 0x1d, 0xd6, 0xe0, 0xe8, 0x3a, 0xb8, 0x41, 0xf3, 0x15, 0x0e, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x06, 0xfe, 0x12, 0xd6, 0x20, 0x29, 0x2d, 0xf8, 0x20, 0x6d, 0x70, 0x75, 0x83, 0x26, 0xfb, 0xac, 0x5b, 0xc3, 0x2f, 0x2e, 0x1b, 0x34, 0xf0, 0x97, 0xb0, 0x41, 0x93, 0x7d, 0xd6, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x66, 0xf3, 0x10, 0x36, 0x68, 0xf2, 0xcf, 0xfa, 0xa0, 0x19, 0x45, 0xeb, 0x3a, 0x68, 0xb2, 0xcf, 0x7a, 0x0d, 0x5a, 0x76, 0x97, 0xde, 0xf0, 0x17, 0xcd, 0x06, 0x0b, 0x2c, 0x9c, 0x37, 0x38, 0xe7, 0x2f, 0x6d, 0xd0, 0x88, 0x6a, 0xc3, 0x06, 0x2d, 0xc0, 0x59, 0x6f, 0xf8, 0x8b, 0x66, 0x83, 0x05, 0x16, 0xce, 0x1b, 0x9c, 0xf3, 0x97, 0x36, 0x68, 0x7f, 0xd6, 0x61, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x6c, 0x1e, 0xc2, 0x06, 0xad, 0xd4, 0x59, 0x1f, 0x34, 0xa3, 0x68, 0x7d, 0xd0, 0x64, 0x9f, 0xf5, 0x06, 0x0d, 0xb7, 0x51, 0xaf, 0x41, 0xe3, 0x16, 0xd3, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xd1, 0x34, 0xe9, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x68, 0xa0, 0xb4, 0xba, 0x0d, 0x5a, 0x1d, 0x98, 0x5e, 0xc3, 0xdb, 0x3a, 0x07, 0x2d, 0xfd, 0x4b, 0xd7, 0x1a, 0xb4, 0x88, 0x2f, 0xbd, 0xc1, 0x89, 0xfd, 0x66, 0x83, 0x46, 0xd3, 0xa4, 0x37, 0x7c, 0x85, 0xb3, 0xe1, 0x2f, 0x9a, 0x0d, 0x16, 0x58, 0x38, 0x6f, 0x50, 0xc2, 0x63, 0x6e, 0xd0, 0xd2, 0xbf, 0xf4, 0x1a, 0x1e, 0x94, 0xdc, 0xa0, 0x35, 0xda, 0xea, 0x83, 0x46, 0xfe, 0xa8, 0x37, 0x28, 0x0c, 0x55, 0xd7, 0xf0, 0xa0, 0xe4, 0x06, 0xad, 0xd1, 0x56, 0x6f, 0xb8, 0xa4, 0x36, 0x68, 0xfd, 0x8f, 0x7a, 0x83, 0x76, 0x05, 0xa6, 0x0f, 0xda, 0x3f, 0xdd, 0xda, 0x70, 0x49, 0x6d, 0xd0, 0xda, 0x07, 0xf5, 0x06, 0x0d, 0x27, 0x4c, 0x6f, 0xd0, 0x56, 0xc3, 0xf4, 0x41, 0x73, 0x1f, 0x62, 0x6b, 0xd0, 0x82, 0xca, 0xf4, 0x06, 0xe7, 0xfc, 0xa5, 0x0d, 0x1a, 0x51, 0x6d, 0x58, 0xc3, 0x83, 0x92, 0x1b, 0xb4, 0x46, 0x5b, 0x7d, 0xd0, 0x10, 0x2d, 0xf5, 0x06, 0xe7, 0xfc, 0xa5, 0x0d, 0x5a, 0xe9, 0x74, 0x58, 0xc3, 0x2f, 0x2e, 0x1b, 0xb4, 0xbe, 0xf4, 0xb0, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0x55, 0x3d, 0x62, 0x0d, 0x8e, 0xae, 0x83, 0x6b, 0xb0, 0x0a, 0x4c, 0xf6, 0xa0, 0xa8, 0x14, 0xef, 0xa0, 0xe5, 0x43, 0xe9, 0x35, 0x38, 0xba, 0x0e, 0xae, 0xc1, 0x2a, 0x30, 0xd9, 0x83, 0x53, 0x73, 0x5b, 0x1d, 0x34, 0xd9, 0x67, 0xbd, 0x06, 0x8d, 0xb8, 0x4c, 0x6f, 0x70, 0xce, 0x5f, 0xda, 0xa0, 0x11, 0xd5, 0x86, 0x0d, 0x9a, 0x49, 0xb6, 0xde, 0xe0, 0x9c, 0xbf, 0xb4, 0x41, 0xfb, 0xb3, 0x0e, 0x07, 0x8d, 0x39, 0x5b, 0xaf, 0x41, 0xf3, 0x25, 0xd3, 0x1b, 0x9c, 0xd8, 0x6f, 0x36, 0x68, 0x34, 0x4d, 0x7a, 0x83, 0x82, 0x34, 0x76, 0x83, 0xb1, 0x2a, 0xb0, 0x41, 0xf3, 0x8c, 0xd4, 0x1b, 0x14, 0x03, 0xb2, 0x1b, 0xb4, 0x16, 0x27, 0xbd, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0x99, 0x3a, 0x61, 0x83, 0xf3, 0x78, 0xd7, 0x06, 0xad, 0xca, 0x49, 0x77, 0x70, 0x1e, 0xef, 0x5a, 0x83, 0x76, 0x64, 0xa6, 0x37, 0x38, 0xb1, 0xdf, 0x6c, 0xd0, 0x68, 0x9a, 0xf4, 0x06, 0x8b, 0xca, 0x93, 0x36, 0x68, 0xe7, 0xc9, 0x61, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x74, 0x65, 0xc2, 0x1a, 0x2e, 0xa9, 0x0d, 0x1a, 0x77, 0xaa, 0x3e, 0x68, 0xff, 0x74, 0xab, 0x35, 0x3c, 0x28, 0xb9, 0x41, 0x6b, 0xb4, 0xd5, 0x1b, 0x2e, 0xa9, 0x0d, 0x5a, 0xff, 0xa3, 0x3e, 0x68, 0x64, 0x5e, 0xfa, 0xa0, 0x99, 0x64, 0xeb, 0x35, 0x68, 0xa1, 0x68, 0x7a, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0x9a, 0x26, 0xbd, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0x16, 0x12, 0x61, 0x83, 0xd6, 0xe1, 0xa8, 0x37, 0x68, 0xc1, 0xa9, 0xfa, 0xa0, 0xac, 0xf3, 0x6c, 0x0d, 0x1a, 0x91, 0x9a, 0xde, 0x70, 0x49, 0x6d, 0xd0, 0xda, 0x07, 0xf5, 0x06, 0x8d, 0xcb, 0x4a, 0xaf, 0x41, 0x6b, 0x71, 0xd2, 0x1b, 0x1c, 0xc3, 0x0d, 0x0e, 0x5a, 0xa8, 0x9a, 0x6e, 0x0d, 0xda, 0x25, 0x18, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0x8d, 0xa6, 0x49, 0xaf, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xd3, 0xd7, 0xd5, 0x1d, 0x34, 0xb0, 0x6a, 0xdd, 0x1a, 0x34, 0x95, 0x35, 0xbd, 0xe1, 0x17, 0x97, 0x0d, 0x5a, 0x53, 0x51, 0xd8, 0xa0, 0x81, 0x3f, 0xe9, 0x35, 0x5c, 0x52, 0x1b, 0xb4, 0xf6, 0x41, 0x7d, 0xd0, 0xb4, 0xac, 0x74, 0x6b, 0xd0, 0xd8, 0xd7, 0xf4, 0x06, 0x27, 0xf6, 0x9b, 0x0d, 0x1a, 0x4d, 0x93, 0xde, 0x60, 0x51, 0x79, 0xd2, 0x06, 0xed, 0x3c, 0x39, 0xac, 0xe1, 0x17, 0x97, 0x0d, 0x9a, 0xae, 0x4c, 0x38, 0x68, 0xbf, 0xa9, 0x7a, 0x83, 0x66, 0x92, 0xad, 0x0f, 0x9a, 0xda, 0xb7, 0x5e, 0x83, 0xa6, 0x6c, 0xa6, 0x37, 0xfc, 0xe2, 0xb2, 0x41, 0xeb, 0x96, 0x04, 0x1b, 0x34, 0xb4, 0x33, 0x7d, 0xd0, 0x30, 0xc7, 0xf5, 0x41, 0x4b, 0xb7, 0xd4, 0x87, 0x53, 0xec, 0x70, 0x8a, 0xcd, 0x1a, 0x34, 0x37, 0x2e, 0xbd, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x3f, 0x97, 0x36, 0x18, 0xab, 0x02, 0x07, 0x0b, 0x2c, 0x9c, 0xd7, 0xf0, 0xe7, 0xd2, 0x06, 0x47, 0x4a, 0xcb, 0x83, 0xe5, 0x1e, 0xdf, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0x05, 0x16, 0xce, 0x1b, 0x7e, 0x71, 0xd9, 0xa0, 0x59, 0x48, 0x84, 0x0d, 0xce, 0xe3, 0x5d, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x12, 0xa9, 0x7a, 0x83, 0x93, 0xae, 0xe5, 0x1a, 0x7e, 0x51, 0xda, 0x60, 0x81, 0x15, 0xf4, 0x06, 0x2d, 0xe4, 0x29, 0x1c, 0x9c, 0x56, 0xce, 0xea, 0x70, 0x8a, 0xad, 0x41, 0xe3, 0xd3, 0xd2, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0xf6, 0x3f, 0x3a, 0x0f, 0xd6, 0x8e, 0x3c, 0xaf, 0xe1, 0xcf, 0xa5, 0x0d, 0x8e, 0x19, 0x9e, 0x07, 0xab, 0x47, 0xb0, 0xdb, 0xf0, 0x17, 0xcd, 0x06, 0x0b, 0x2c, 0x9c, 0x37, 0x28, 0xe1, 0x31, 0x37, 0x38, 0x83, 0x79, 0xae, 0xe1, 0x17, 0x97, 0x0d, 0xda, 0x48, 0x2f, 0x38, 0x68, 0x8a, 0x4d, 0x78, 0xc3, 0x2f, 0x2e, 0x1b, 0x34, 0x2b, 0xd4, 0xb0, 0x41, 0x2b, 0x55, 0xd7, 0x6b, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xd0, 0x4e, 0x9b, 0xf0, 0x86, 0xb7, 0x75, 0x06, 0x4f, 0x0f, 0xce, 0x60, 0x9e, 0x6b, 0x70, 0x06, 0xf3, 0xdc, 0xf0, 0xb6, 0xce, 0xe0, 0xf4, 0xc1, 0x19, 0xcc, 0xb3, 0x0e, 0xa7, 0xd8, 0x1a, 0xb4, 0xff, 0x47, 0xbd, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x0f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x20, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1b, 0xbe, 0x7e, 0xd9, 0x20, 0xb1, 0xa5, 0x6a, 0xc3, 0x25, 0xb5, 0x41, 0x51, 0x23, 0xbe, 0x06, 0xad, 0x28, 0xc5, 0x1e, 0x14, 0x14, 0x99, 0x6b, 0xd0, 0x5a, 0x9c, 0xf4, 0x41, 0x41, 0x91, 0xb9, 0x06, 0xad, 0xef, 0x50, 0x1f, 0x14, 0x14, 0x99, 0xad, 0x06, 0x2d, 0xaa, 0x49, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0x80, 0x07, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1b, 0x7e, 0x51, 0xda, 0xa0, 0x05, 0x0a, 0xa9, 0x0d, 0x7f, 0xd1, 0x6c, 0xb0, 0xc0, 0xc2, 0x79, 0x83, 0xa3, 0x0d, 0xdf, 0x1a, 0x94, 0xf0, 0x98, 0x1b, 0xb4, 0xbe, 0x43, 0xbd, 0xe1, 0x99, 0xc9, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0xba, 0x25, 0xc1, 0x1a, 0xde, 0xd6, 0x19, 0xbc, 0x3e, 0x68, 0x7d, 0x87, 0xfa, 0x20, 0x15, 0x68, 0x6c, 0xc3, 0x57, 0x38, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0xb4, 0xa2, 0x14, 0xbb, 0x41, 0x5b, 0x27, 0x52, 0x1b, 0x7e, 0x71, 0xd9, 0xa0, 0xd1, 0x0e, 0x82, 0x35, 0xbc, 0xad, 0x33, 0x78, 0x7a, 0xd0, 0x8a, 0x52, 0xec, 0x1a, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0xb4, 0xa2, 0x14, 0xbb, 0xe1, 0x6d, 0x9d, 0xc1, 0xe9, 0x83, 0x56, 0x94, 0x62, 0xeb, 0x70, 0x8a, 0xad, 0x41, 0x50, 0x60, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0xef, 0xd8, 0x9b, 0xdb, 0x1c, 0x9d, 0x5c, 0xdd, 0x18, 0x1d, 0x48, 0x18, 0x88, 0x59, 0x9d, 0xdb, 0x18, 0x5d, 0xda, 0x9b, 0x1b, 0x48, 0x19, 0x5e, 0x58, 0x1b, 0x1c, 0x5b, 0xd9, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0xda, 0x60, 0xac, 0x0a, 0x1c, 0x2c, 0xb0, 0x82, 0x5e, 0xc3, 0x9f, 0x4b, 0x1b, 0x1c, 0x29, 0x2d, 0x0f, 0x16, 0x58, 0x41, 0xb7, 0xe1, 0x2f, 0x9a, 0x0d, 0x16, 0x58, 0x38, 0x6f, 0x70, 0xce, 0x5f, 0xda, 0xa0, 0x41, 0xb8, 0x86, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0x07, 0x25, 0x37, 0x68, 0xa7, 0x8f, 0x7a, 0xc3, 0x25, 0xb5, 0x41, 0xeb, 0x7f, 0xd4, 0x6b, 0x10, 0xac, 0xb7, 0x07, 0xe7, 0xf1, 0xae, 0xd6, 0xf0, 0xa0, 0xe4, 0x06, 0xed, 0xf4, 0x51, 0x6f, 0xb8, 0xa4, 0x36, 0x68, 0xfd, 0x8f, 0x7a, 0x0d, 0x82, 0xf5, 0xf6, 0xe0, 0xa4, 0x6b, 0x59, 0x1b, 0x14, 0x86, 0xaa, 0x1b, 0x34, 0x9d, 0x9a, 0xb0, 0xc1, 0x39, 0x7f, 0x69, 0x83, 0xd6, 0x4a, 0x0d, 0x36, 0x68, 0x1d, 0x3d, 0x6d, 0xc3, 0x2f, 0x2e, 0x1b, 0x24, 0xa5, 0x05, 0x1f, 0x24, 0xba, 0xd6, 0xae, 0x06, 0x6d, 0xf9, 0x52, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0xdf, 0xd8, 0x9b, 0xdb, 0x1c, 0x9d, 0x5c, 0xdd, 0x18, 0x1d, 0x48, 0x18, 0xc8, 0xd8, 0x9b, 0x5c, 0x19, 0x48, 0x19, 0x5e, 0x58, 0x1b, 0x1c, 0x5b, 0xd9, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0xe0, 0xb7, 0x0b, 0x93, 0x4b, 0x0b, 0x73, 0x1b, 0x2b, 0x0f, 0x56, 0x1f, 0x62, 0xaf, 0xe1, 0xcf, 0xa5, 0x01, 0x5e, 0xb8, 0xb0, 0x3c, 0xb6, 0xb7, 0x30, 0xf2, 0x60, 0x81, 0x15, 0xf4, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xc3, 0xe4, 0xda, 0xe6, 0x83, 0x95, 0x86, 0xdf, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0x05, 0x16, 0xce, 0x1b, 0x1c, 0x6d, 0xf8, 0xd6, 0x20, 0x48, 0x4f, 0xd7, 0xa0, 0xd9, 0xea, 0xeb, 0xd6, 0x60, 0x8d, 0x68, 0xf9, 0xe1, 0x99, 0xc9, 0x35, 0x58, 0xc3, 0x5a, 0xbe, 0xe1, 0x17, 0x97, 0x0d, 0x9a, 0x6f, 0x52, 0x38, 0x48, 0x05, 0x1a, 0x5b, 0x83, 0x75, 0xb1, 0xe5, 0x1b, 0x7e, 0x71, 0xd9, 0xa0, 0x35, 0x01, 0x85, 0x83, 0x54, 0xa0, 0xb1, 0x35, 0x58, 0x6d, 0x5a, 0xbe, 0xe1, 0x17, 0x97, 0x0d, 0x9a, 0x4e, 0x4d, 0x38, 0x48, 0x05, 0x1a, 0x6b, 0xc3, 0x5f, 0x34, 0x1b, 0x2c, 0xb0, 0x70, 0xde, 0xe0, 0x9c, 0xbf, 0xb4, 0x41, 0x83, 0x70, 0x0d, 0x6b, 0x78, 0x50, 0x72, 0x83, 0x76, 0xfa, 0xa8, 0x37, 0x5c, 0x52, 0x1b, 0xb4, 0xfe, 0x47, 0xbd, 0x06, 0xc1, 0x7a, 0xbb, 0xe1, 0x6d, 0x9d, 0x0d, 0x9a, 0xd0, 0xbe, 0xae, 0x0d, 0xce, 0xf9, 0x4b, 0x1b, 0xb4, 0xd5, 0x6b, 0xb0, 0x41, 0x41, 0x91, 0xb9, 0xc1, 0xd1, 0x86, 0x6f, 0x83, 0xe6, 0xd6, 0x94, 0x37, 0x38, 0xb1, 0xdf, 0x6c, 0xd0, 0x9c, 0x95, 0xf5, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x25, 0x52, 0xf5, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0x2c, 0x02, 0x19, 0xdd, 0xa0, 0x6c, 0xaa, 0x5f, 0xc3, 0xdb, 0x3a, 0x1b, 0x34, 0xe3, 0x7d, 0x5d, 0x1b, 0x7e, 0x51, 0xda, 0xa0, 0x49, 0x31, 0xeb, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x2e, 0x4b, 0xc1, 0x1a, 0x1e, 0x94, 0xdc, 0xa0, 0x9d, 0x3e, 0xea, 0x0d, 0x97, 0xd4, 0x06, 0xad, 0xff, 0x51, 0x6f, 0xd0, 0x60, 0x9a, 0x75, 0xad, 0x06, 0x6d, 0x18, 0x4a, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0x43, 0x19, 0x5e, 0x58, 0x1b, 0x1c, 0x5b, 0x19, 0x88, 0x58, 0xd8, 0x5c, 0x19, 0xc8, 0x58, 0xd8, 0x5c, 0xd9, 0x86, 0x5f, 0x94, 0x36, 0x68, 0x24, 0xa5, 0x7a, 0x83, 0x20, 0x3d, 0xdd, 0x60, 0x99, 0x0e, 0xe6, 0x1a, 0x34, 0xb0, 0x38, 0xb5, 0xe1, 0x17, 0x97, 0x0d, 0x1a, 0xed, 0x2b, 0xd8, 0xa0, 0xc5, 0xa5, 0xea, 0x35, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0x36, 0x58, 0xe1, 0xe4, 0x7a, 0xd0, 0xe2, 0x52, 0xf5, 0x1a, 0x7e, 0x84, 0x19, 0x78, 0xb2, 0xf0, 0x20, 0x0d, 0x20, 0xe3, 0xf0, 0xe0, 0x4d, 0x6b, 0xb0, 0xde, 0x9d, 0x79, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xa6, 0xb4, 0x0a, 0x0e, 0x9a, 0x09, 0xd4, 0xdc, 0xf0, 0x8b, 0xcb, 0x06, 0x2d, 0x53, 0x27, 0xac, 0xe1, 0x17, 0x97, 0x0d, 0x9a, 0x3f, 0x4b, 0xd8, 0xf0, 0xcc, 0xe4, 0x86, 0x67, 0x26, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0x4d, 0x69, 0x15, 0x1c, 0xb4, 0x73, 0x20, 0xd5, 0x41, 0x2a, 0xd0, 0xd8, 0x1a, 0xac, 0xdf, 0x67, 0xde, 0xf0, 0x89, 0xcd, 0x1a, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x2c, 0xd3, 0xc1, 0x3c, 0x58, 0x62, 0xbf, 0xdd, 0x86, 0x5f, 0x5c, 0x36, 0x3c, 0x33, 0x79, 0x90, 0x0a, 0x34, 0xb6, 0x06, 0xeb, 0x10, 0x9a, 0x37, 0x7c, 0x62, 0xb3, 0x41, 0xdb, 0x30, 0xd8, 0x1b, 0x7e, 0x71, 0xd9, 0xa0, 0x65, 0xea, 0x84, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x03, 0x7f, 0x09, 0x07, 0x4d, 0x11, 0x61, 0x1f, 0xa4, 0x02, 0x8d, 0xad, 0xc1, 0x62, 0x8a, 0xe6, 0x83, 0x96, 0x02, 0xa5, 0x0f, 0x5a, 0xb8, 0xac, 0x3e, 0x9c, 0x62, 0x6b, 0xd0, 0x18, 0x3d, 0xf2, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0x74, 0xb7, 0x85, 0xad, 0x95, 0x81, 0x84, 0x81, 0xb8, 0xbd, 0xc9, 0xb5, 0x85, 0xb1, 0xa5, 0xe9, 0xa5, 0xb9, 0x9d, 0x81, 0x9c, 0x85, 0xd1, 0x95, 0x81, 0xa0, 0xb4, 0xbd, 0xb1, 0x91, 0xa5, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0x02, 0x0b, 0xe7, 0x0d, 0x1f, 0xe4, 0xac, 0x41, 0x31, 0x89, 0xb9, 0xc1, 0x12, 0x5d, 0xe7, 0x83, 0x56, 0x09, 0xa7, 0xd7, 0x70, 0x49, 0x6d, 0xd0, 0x14, 0x3d, 0xf2, 0x41, 0x1b, 0x32, 0xd4, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x62, 0x12, 0x73, 0x83, 0x95, 0xa4, 0xe0, 0x07, 0xad, 0x12, 0x4e, 0xaf, 0xe1, 0x92, 0xda, 0xa0, 0x29, 0x7a, 0xe4, 0x83, 0x76, 0x19, 0xae, 0x37, 0xfc, 0x45, 0xb3, 0xc1, 0x02, 0x0b, 0xe7, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0x11, 0xd6, 0x35, 0xfc, 0x9b, 0xb3, 0x41, 0x41, 0x91, 0xb9, 0xe1, 0x6d, 0x9d, 0x83, 0xd6, 0xe2, 0xa4, 0xd7, 0xa0, 0x98, 0xc4, 0x5c, 0x83, 0x60, 0x33, 0xdd, 0x60, 0x95, 0x1f, 0xf8, 0x06, 0x0b, 0x7e, 0xbd, 0x37, 0x58, 0xaa, 0xed, 0xbd, 0xc1, 0x7a, 0x8a, 0xef, 0x0e, 0x5a, 0x25, 0x9c, 0x6e, 0x0d, 0x4e, 0xec, 0x37, 0x1b, 0x34, 0x9a, 0x26, 0xbd, 0xc1, 0x89, 0xfd, 0x66, 0x83, 0x26, 0xdc, 0xa4, 0x37, 0x08, 0xd2, 0xd3, 0x0d, 0x5a, 0x25, 0x9c, 0x5e, 0x83, 0x55, 0x7e, 0xe0, 0x07, 0x0d, 0xfc, 0x49, 0xaf, 0xc1, 0x82, 0x5f, 0xef, 0x83, 0x26, 0xa4, 0xa5, 0xd7, 0x60, 0xa9, 0xb6, 0xf7, 0x41, 0xdb, 0x47, 0xd4, 0x6b, 0xb0, 0x9e, 0xe2, 0xfb, 0xa0, 0xd1, 0x70, 0xe9, 0x36, 0x38, 0xe7, 0x2f, 0x6d, 0xd0, 0x5a, 0xa9, 0xc1, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0x35, 0x0b, 0x85, 0x0d, 0x9a, 0xe2, 0xa0, 0x6e, 0x83, 0x73, 0xfe, 0xd2, 0x06, 0x8d, 0xa8, 0x36, 0xac, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0x6b, 0x1f, 0xd4, 0x6b, 0x78, 0x50, 0x72, 0x83, 0xc6, 0x45, 0xa8, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0xe3, 0x26, 0xd4, 0x07, 0xa7, 0x05, 0x9a, 0x83, 0xc3, 0xf2, 0xcc, 0x06, 0xe7, 0xfc, 0xa5, 0x0d, 0x1a, 0x51, 0x6d, 0xd8, 0xa0, 0x0d, 0x43, 0xeb, 0x83, 0x26, 0xff, 0xac, 0x0f, 0xa7, 0x58, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x35, 0x0b, 0xc0, 0xaf, 0x5b, 0xd9, 0x5d, 0x0b, 0x5c, 0x98, 0x1c, 0x5d, 0x5a, 0x18, 0x5b, 0x8b, 0xdb, 0xdb, 0xd8, 0x5a, 0x4b, 0x9a, 0x1b, 0x5d, 0x99, 0x1c, 0x9c, 0x5c, 0x19, 0x5d, 0x99, 0xbc, 0x0c, 0x80, 0x07, 0x35, 0x61, 0x61, 0x3a, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x20, 0x6e, 0x6f, 0x63, 0x6b, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x72, 0x6b, 0xd0, 0x20, 0x6c, 0xd8, 0x06, 0x25, 0x0b, 0xfb, 0x2c, 0xb3, 0x00, 0x5f, 0x5b, 0x1d, 0x5d, 0x18, 0x5d, 0xb9, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x3e, 0x8c, 0xa1, 0x85, 0xb9, 0x9d, 0x95, 0x81, 0x84, 0x81, 0xcc, 0xa5, 0xb9, 0x9d, 0xb1, 0x95, 0x81, 0x84, 0xe1, 0xa5, 0xcd, 0x81, 0xa4, 0xb9, 0x81, 0x84, 0x81, 0xcc, 0x95, 0xb5, 0xa5, 0xb9, 0xbd, 0xd5, 0xb9, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0x6d, 0xd0, 0x10, 0x5e, 0xe0, 0x1a, 0xfe, 0x5c, 0xda, 0xe0, 0x74, 0x30, 0x79, 0xb0, 0x06, 0x1b, 0x7b, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x62, 0x69, 0xe7, 0xc1, 0x1a, 0x6c, 0xec, 0x36, 0xfc, 0x45, 0xb3, 0x86, 0x7f, 0xe7, 0x37, 0x58, 0x9c, 0x5e, 0xdc, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0x4d, 0x98, 0x6d, 0x6d, 0x50, 0x50, 0x64, 0x6e, 0xf8, 0x20, 0x67, 0x83, 0xa6, 0xc3, 0xcd, 0x36, 0x58, 0x02, 0x12, 0xbf, 0xe1, 0x2b, 0x9c, 0x0d, 0x7f, 0xd1, 0x6c, 0xd0, 0x4e, 0x33, 0xf6, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x06, 0x01, 0xcb, 0x7a, 0xd0, 0x4e, 0xd9, 0xd6, 0x1a, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x1b, 0x34, 0xa5, 0xb4, 0xb5, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0x32, 0xaa, 0xee, 0x36, 0x28, 0x2a, 0xc5, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0xad, 0x28, 0x63, 0xd7, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0xad, 0x8f, 0x6d, 0x6d, 0x50, 0x50, 0x64, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x96, 0x8f, 0xc3, 0x36, 0x58, 0x02, 0x12, 0x7f, 0xd0, 0xc0, 0xd8, 0xd6, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x06, 0x45, 0xa5, 0xf8, 0x41, 0x3b, 0x65, 0x5b, 0x6b, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x6c, 0xb0, 0x92, 0x97, 0x74, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0xfd, 0x8d, 0xbd, 0x41, 0xc0, 0xb2, 0x1e, 0x34, 0x2d, 0x8e, 0xbd, 0x41, 0x09, 0x8f, 0xb9, 0xc1, 0x9a, 0x78, 0xd2, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xf2, 0x71, 0xd8, 0x06, 0x0b, 0xdf, 0x49, 0x0f, 0xd6, 0xc6, 0xc4, 0x6f, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x6c, 0x30, 0x16, 0xc4, 0x0e, 0x9a, 0x73, 0x37, 0xdb, 0xf0, 0x89, 0xcd, 0x06, 0x0d, 0xc4, 0x63, 0x6f, 0x50, 0xc2, 0x63, 0x6e, 0xb0, 0x26, 0x9e, 0x74, 0x83, 0x82, 0x22, 0x73, 0xc3, 0x27, 0x36, 0x1b, 0x34, 0xcf, 0x8d, 0xbd, 0x41, 0x09, 0x8f, 0xb9, 0x41, 0xeb, 0x63, 0x5b, 0x1b, 0x14, 0x14, 0x99, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x1b, 0x04, 0x2c, 0xeb, 0x41, 0x6b, 0xe9, 0x66, 0x6b, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x6d, 0x75, 0xf4, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0xed, 0x8e, 0x63, 0x1f, 0x2c, 0x7c, 0x27, 0x5d, 0x83, 0x26, 0xcc, 0xb6, 0x0e, 0x4a, 0x51, 0xcd, 0x36, 0x28, 0xe1, 0x31, 0xd7, 0xa0, 0xd5, 0x88, 0xec, 0x36, 0x28, 0x28, 0x32, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0xcb, 0xc7, 0x61, 0x6b, 0x78, 0x5b, 0xe7, 0xa0, 0xd1, 0x8c, 0xec, 0x83, 0x06, 0xc6, 0xb6, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x36, 0x68, 0x35, 0x22, 0x7b, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x76, 0xc7, 0xb1, 0x0f, 0x9a, 0x18, 0xdb, 0x3a, 0x68, 0xcc, 0x22, 0x7b, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x46, 0x33, 0xb2, 0x37, 0x28, 0x28, 0x32, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0xcb, 0xc7, 0x61, 0x1b, 0x2c, 0x7c, 0x27, 0xdd, 0xa0, 0xed, 0x8e, 0xec, 0x56, 0x83, 0x65, 0x54, 0xdd, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xf0, 0x3c, 0x57, 0x56, 0xb6, 0x06, 0x42, 0xf7, 0x06, 0x12, 0xe6, 0x06, 0x12, 0x86, 0x97, 0x36, 0x07, 0x92, 0xe6, 0x06, 0x12, 0x06, 0x32, 0x57, 0xd6, 0x96, 0xe6, 0xf6, 0x56, 0xe7, 0xb6, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0x43, 0xed, 0x61, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0xd5, 0x40, 0xb6, 0x07, 0x6b, 0xb0, 0xb1, 0xdb, 0xf0, 0x17, 0xcd, 0x06, 0xed, 0x34, 0x63, 0x6f, 0xf8, 0x20, 0x67, 0x83, 0xa6, 0xc3, 0xcd, 0x36, 0x58, 0xbc, 0x66, 0xbb, 0xe1, 0x13, 0x9b, 0x0d, 0xda, 0x34, 0x37, 0xdb, 0x20, 0x48, 0x4f, 0xd7, 0x38, 0xb4, 0xc1, 0x7a, 0xbb, 0x9c, 0x83, 0x75, 0x6d, 0xb6, 0xab, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x1f, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x65, 0x20, 0x6c, 0x61, 0x7a, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x07, 0x6b, 0x9a, 0xba, 0x37, 0x5c, 0x52, 0x1b, 0xac, 0x6b, 0xb3, 0x5d, 0x0d, 0x96, 0x51, 0x75, 0x1f, 0x2c, 0x90, 0x0e, 0xdd, 0xf0, 0x6e, 0xcf, 0x06, 0x67, 0xac, 0x99, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0x32, 0xaa, 0xee, 0x83, 0x56, 0x92, 0xb2, 0x0f, 0x5a, 0x29, 0xdb, 0x6a, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0x3b, 0xcd, 0x0c, 0xc4, 0xac, 0x8e, 0x8d, 0x2d, 0x0f, 0x44, 0x8c, 0xed, 0x6d, 0x6c, 0xad, 0x8c, 0x8c, 0x05, 0x04, 0x4e, 0xee, 0x8d, 0xac, 0x6e, 0xac, 0x0c, 0x64, 0xae, 0x8c, 0xcd, 0xec, 0x60, 0xad, 0x4e, 0xf7, 0x06, 0xc5, 0x80, 0xec, 0x1a, 0x1c, 0x9c, 0xdc, 0x0e, 0x5a, 0x49, 0xca, 0xde, 0x60, 0xf1, 0x9a, 0xed, 0x06, 0x05, 0xc1, 0xec, 0x1a, 0x1c, 0xe4, 0xd9, 0x0e, 0xd6, 0xb5, 0xd9, 0x6e, 0x50, 0x50, 0x64, 0x6e, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x1b, 0x34, 0x27, 0x70, 0xb6, 0x06, 0xeb, 0xda, 0x6c, 0x37, 0xfc, 0xe2, 0xb2, 0x41, 0x93, 0xc1, 0x61, 0x6b, 0xf8, 0x20, 0x67, 0x83, 0x56, 0xf9, 0xcd, 0xd6, 0x70, 0x49, 0xad, 0x71, 0xe8, 0xa0, 0xe5, 0xb6, 0xec, 0x36, 0x5c, 0x52, 0x6b, 0x3c, 0x3f, 0x68, 0xb9, 0x2d, 0xbb, 0x5a, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x78, 0x24, 0x2b, 0x9b, 0x1b, 0x2b, 0x73, 0x23, 0x03, 0x49, 0x73, 0xa3, 0x7b, 0x03, 0x81, 0x0b, 0x93, 0xa3, 0x4b, 0x0b, 0x63, 0x03, 0x19, 0x2b, 0x63, 0x63, 0x3b, 0x58, 0x48, 0xd2, 0xbd, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0x6d, 0xd0, 0x9c, 0xc0, 0xd9, 0x1a, 0xac, 0x6b, 0xb3, 0xdd, 0xf0, 0x41, 0xce, 0x06, 0xad, 0xf2, 0x9b, 0xad, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0xda, 0x95, 0xee, 0x83, 0x56, 0x92, 0xb2, 0x37, 0x68, 0x14, 0x2f, 0xbb, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x56, 0x5e, 0x1b, 0x1d, 0xb4, 0x92, 0x94, 0xbd, 0x41, 0x13, 0x7b, 0xd9, 0xd5, 0x0a, 0xf0, 0xca, 0x95, 0xc5, 0xd5, 0xa5, 0xc9, 0x95, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xe0, 0x83, 0x5c, 0x59, 0x5c, 0x5d, 0x9a, 0x5c, 0x19, 0xc8, 0xd8, 0x5b, 0x1b, 0x1c, 0x5b, 0x19, 0x5d, 0x19, 0x48, 0x9a, 0x1b, 0x5d, 0x99, 0x5c, 0x5b, 0x19, 0x59, 0x5a, 0x18, 0x5d, 0x19, 0xc8, 0x1c, 0x5d, 0x19, 0xdc, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xdc, 0xde, 0xf2, 0x83, 0x76, 0x9a, 0xb1, 0xd7, 0xf0, 0xe7, 0xd2, 0x80, 0x97, 0x57, 0xe6, 0x6e, 0x10, 0x4e, 0x63, 0x1b, 0x84, 0xe9, 0xd8, 0x41, 0x3b, 0xcd, 0xd8, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0x76, 0x9a, 0xb1, 0x37, 0x28, 0xe1, 0x31, 0xd7, 0xa0, 0xb9, 0xd3, 0xec, 0x36, 0x28, 0x28, 0x32, 0x37, 0x28, 0x48, 0x63, 0xd7, 0xf0, 0x7d, 0xfb, 0x06, 0xab, 0x81, 0x6c, 0x37, 0x28, 0xa1, 0x63, 0x37, 0x58, 0x83, 0x8d, 0x7d, 0x10, 0xa6, 0x63, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0xf0, 0x8f, 0xbd, 0xb5, 0xc1, 0xb1, 0x95, 0xd1, 0x95, 0xad, 0xe1, 0x6d, 0x9d, 0x83, 0x46, 0x63, 0xb3, 0xdb, 0xf0, 0x6e, 0xde, 0x1a, 0x14, 0x93, 0x98, 0x1b, 0xac, 0x69, 0xea, 0x3e, 0x68, 0x14, 0x29, 0x7b, 0xc3, 0x07, 0x39, 0x6b, 0x50, 0x4c, 0x62, 0x6e, 0xb0, 0x90, 0xa4, 0xfb, 0xa0, 0x51, 0xa4, 0xec, 0x35, 0xfc, 0xe2, 0xb2, 0x06, 0x6b, 0x03, 0xbc, 0x37, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0xf8, 0xe6, 0xe2, 0xea, 0xc2, 0xe6, 0xd0, 0xd6, 0xf0, 0xb6, 0xce, 0x41, 0x2b, 0x49, 0xd9, 0x1d, 0x94, 0x75, 0x9e, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x62, 0x12, 0x73, 0x83, 0x22, 0x15, 0xf3, 0xa0, 0xc5, 0xb4, 0xec, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x23, 0xce, 0xd9, 0x07, 0x65, 0x9d, 0xe7, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x2d, 0xaa, 0x66, 0xb7, 0x86, 0xb7, 0x75, 0x0e, 0x5a, 0x6e, 0xcb, 0xee, 0x70, 0x8a, 0xad, 0x41, 0x23, 0xcc, 0xd9, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xf0, 0x3b, 0xf6, 0xe6, 0x66, 0x57, 0x26, 0x47, 0x07, 0x32, 0x47, 0x57, 0xe6, 0x36, 0x96, 0xc6, 0x06, 0x42, 0xf7, 0x06, 0x22, 0xc6, 0xf6, 0x36, 0xb6, 0x06, 0x32, 0x57, 0x46, 0xb7, 0xe1, 0x17, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0xd1, 0xe5, 0xb9, 0x07, 0xab, 0x5c, 0xba, 0x37, 0xfc, 0x45, 0xb3, 0xc1, 0x8a, 0xa1, 0xee, 0x0d, 0x82, 0xf4, 0x74, 0x8d, 0x43, 0x1b, 0xb4, 0x9f, 0x9e, 0xdd, 0x1a, 0xac, 0x69, 0xea, 0xde, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0xa0, 0xc5, 0xf7, 0xec, 0x0d, 0x0f, 0x4a, 0x6e, 0x78, 0x66, 0x72, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0xac, 0x9b, 0xbd, 0x86, 0xb7, 0x75, 0x0e, 0x5a, 0x7c, 0xcf, 0x3e, 0x28, 0xeb, 0x3c, 0x5b, 0x83, 0xb5, 0x3a, 0xdd, 0x1b, 0xde, 0xd6, 0xd9, 0xe0, 0xe0, 0xe4, 0x76, 0xd0, 0xe2, 0x7b, 0xf6, 0x1a, 0x2c, 0x24, 0xe9, 0xde, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0x1c, 0xfb, 0x6f, 0x36, 0x28, 0x9b, 0xde, 0xd7, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0xa0, 0xc5, 0xf7, 0xec, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0x76, 0xa5, 0xfb, 0xa0, 0xc5, 0xf7, 0xec, 0x5a, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x16, 0xdf, 0xb3, 0x37, 0xbc, 0xad, 0xb3, 0xc1, 0xca, 0x6b, 0xa3, 0x83, 0x16, 0xdf, 0xb3, 0xab, 0xd5, 0xe0, 0x54, 0x82, 0xb0, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x00, 0xaf, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x20, 0x61, 0x20, 0x70, 0x61, 0x69, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x6d, 0x69, 0x6e, 0x6f, 0x75, 0x6e, 0x73, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x95, 0xbc, 0xa4, 0x07, 0x6b, 0xb0, 0xb1, 0xd7, 0xf0, 0xe7, 0xd2, 0x06, 0x4d, 0x29, 0x6d, 0x1d, 0xac, 0xc1, 0xc6, 0x6e, 0xc3, 0x5f, 0x34, 0x1b, 0xac, 0xc1, 0xc6, 0xde, 0xa0, 0xd8, 0xd1, 0x5c, 0xc3, 0x23, 0xac, 0x6b, 0x78, 0x84, 0x75, 0x0d, 0x8a, 0x49, 0xcc, 0x0d, 0xd6, 0xea, 0x74, 0x6f, 0x1c, 0xda, 0x60, 0xbd, 0x5d, 0xce, 0xc1, 0x9a, 0x78, 0xd2, 0x35, 0x28, 0x26, 0x31, 0x37, 0x58, 0xab, 0xd3, 0xbd, 0x71, 0x68, 0x83, 0xf5, 0x76, 0x39, 0x07, 0xad, 0x8f, 0x6d, 0xb5, 0x86, 0x7f, 0x73, 0xd6, 0xf0, 0x6f, 0xce, 0x06, 0x05, 0x45, 0xe6, 0x86, 0xb7, 0x75, 0x36, 0x38, 0x38, 0xb9, 0x1d, 0x34, 0x9a, 0xa2, 0xbd, 0xe1, 0xdf, 0x9c, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x6f, 0xeb, 0x6c, 0x70, 0x70, 0x72, 0x3b, 0x68, 0xce, 0x45, 0xbb, 0x35, 0xfc, 0xe2, 0xb2, 0x1a, 0xde, 0xb8, 0x3b, 0x58, 0x60, 0xd2, 0xbd, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0xad, 0x73, 0xd0, 0x68, 0x8a, 0xf6, 0x1a, 0xde, 0xd6, 0x39, 0x68, 0xce, 0x45, 0xbb, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0xb7, 0x75, 0x36, 0x38, 0xc8, 0xb3, 0x1d, 0xac, 0x89, 0x27, 0x5d, 0xc3, 0xdb, 0x3a, 0x1b, 0x1c, 0xe4, 0xd9, 0x0e, 0x5a, 0x1f, 0xdb, 0xaa, 0x0d, 0x1f, 0xe4, 0x6c, 0xd0, 0x68, 0x8c, 0xf6, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0xc9, 0xe0, 0xb0, 0x83, 0xd6, 0x87, 0xb4, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0x6b, 0x03, 0xbc, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0xc7, 0xfe, 0x9b, 0x0d, 0xca, 0xa6, 0xf7, 0x0d, 0xda, 0x9b, 0xd1, 0x6e, 0x83, 0x86, 0x70, 0xb4, 0x3b, 0x28, 0xeb, 0x3c, 0x67, 0x01, 0x3f, 0x4c, 0xac, 0x8c, 0xde, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0x97, 0xb9, 0xb4, 0x36, 0x38, 0xb6, 0x34, 0xb3, 0x3c, 0x10, 0xb9, 0xb0, 0x3b, 0x10, 0xb9, 0xb2, 0xb9, 0x3a, 0x36, 0xba, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0x5a, 0x34, 0xcd, 0x6e, 0xc3, 0x5f, 0x34, 0x6b, 0xf8, 0x77, 0x7e, 0x0d, 0xd6, 0x5c, 0x84, 0xd7, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0x8d, 0xc6, 0x66, 0x6f, 0x50, 0x50, 0x64, 0x6e, 0x50, 0x18, 0xaa, 0x6e, 0x50, 0x50, 0x64, 0x6e, 0x50, 0x90, 0xc6, 0x6e, 0x70, 0x70, 0x72, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0xb4, 0xb3, 0x9c, 0xbd, 0x86, 0xb7, 0x75, 0x36, 0x58, 0x6f, 0x97, 0x73, 0xd0, 0x68, 0x6c, 0x76, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x1b, 0x14, 0x14, 0x99, 0x07, 0xc7, 0xb6, 0xb7, 0x35, 0x68, 0x79, 0x11, 0x74, 0xc3, 0xdb, 0x3a, 0x1b, 0x1c, 0xe4, 0xd9, 0x0e, 0x1a, 0x8d, 0xcd, 0x5e, 0xc3, 0x1b, 0x77, 0x07, 0x0b, 0x6c, 0xc2, 0x37, 0x28, 0x4b, 0xde, 0x37, 0x58, 0x04, 0x32, 0xba, 0x41, 0xd9, 0xf4, 0x7e, 0x70, 0x68, 0x7b, 0x5b, 0x01, 0x3f, 0x4c, 0x2e, 0xec, 0xde, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0xf7, 0x32, 0xbc, 0xb2, 0xb1, 0x3a, 0xba, 0x32, 0x10, 0xb7, 0xb7, 0xb1, 0x35, 0x90, 0x37, 0x37, 0x10, 0xb8, 0x30, 0x39, 0xba, 0xb4, 0x30, 0x36, 0x90, 0xb9, 0x3a, 0x31, 0xb5, 0xb2, 0x31, 0xba, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0xda, 0xec, 0xc9, 0x5e, 0xc3, 0x9f, 0x4b, 0x1b, 0x2c, 0x6c, 0x1a, 0x3e, 0x58, 0x0e, 0x8b, 0xdd, 0x86, 0xaf, 0x70, 0x36, 0xfc, 0x45, 0xb3, 0x41, 0x3b, 0xcd, 0xd8, 0x1b, 0x14, 0x04, 0xb3, 0x1b, 0xac, 0x75, 0x1b, 0xde, 0xa0, 0xa0, 0xc8, 0xdc, 0xf0, 0x41, 0xce, 0x1a, 0x14, 0x93, 0x98, 0x1b, 0x14, 0xa9, 0x98, 0x1b, 0x87, 0x0e, 0xd6, 0xba, 0x0d, 0xaf, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0xb2, 0xc1, 0x4a, 0x5e, 0xd2, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0xd6, 0xba, 0x0d, 0x6f, 0xb8, 0xa4, 0x36, 0x68, 0x71, 0x53, 0xbb, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x58, 0x13, 0x4f, 0xba, 0x41, 0x41, 0x91, 0xb9, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0xb2, 0x41, 0x53, 0x4a, 0x5b, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0xac, 0x75, 0x1b, 0xde, 0x70, 0x49, 0xad, 0xf1, 0xfc, 0x60, 0xad, 0xdb, 0x70, 0x6d, 0x50, 0xc2, 0x63, 0x6e, 0xd0, 0xfa, 0xd8, 0xd6, 0x06, 0x05, 0x45, 0xe6, 0x86, 0x77, 0x7b, 0x36, 0x68, 0xf9, 0x38, 0x6c, 0x83, 0x85, 0xef, 0xa4, 0x07, 0x0d, 0x8c, 0x6d, 0x6d, 0x70, 0x72, 0x90, 0xdb, 0x60, 0xad, 0xdb, 0xf0, 0x06, 0x05, 0x45, 0xe6, 0x6a, 0xf8, 0x5c, 0x69, 0x83, 0x90, 0x4e, 0x3d, 0xbc, 0xce, 0xb4, 0xe1, 0x83, 0x9c, 0x35, 0xfc, 0x9b, 0xb3, 0xe1, 0xc1, 0x9b, 0x0d, 0x6f, 0xeb, 0x0c, 0x2e, 0x1e, 0xac, 0x75, 0x1b, 0xde, 0xa0, 0xa0, 0xc8, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0x4d, 0x7f, 0x63, 0x6f, 0xd0, 0xd0, 0xaf, 0xf6, 0x06, 0x8b, 0xd7, 0x6c, 0x5b, 0x0d, 0x9f, 0x2b, 0x6d, 0x10, 0x38, 0xaa, 0x07, 0xe5, 0x38, 0xfe, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0x32, 0x38, 0x6c, 0x83, 0x86, 0x7e, 0xb5, 0x5b, 0x0d, 0x9f, 0x2b, 0x6d, 0x10, 0xc4, 0xa6, 0x07, 0x27, 0x2e, 0x8b, 0x0d, 0x8a, 0x4e, 0xe3, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xab, 0x97, 0xd9, 0xad, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0xc1, 0x5a, 0xb7, 0xe1, 0x0d, 0x6f, 0xeb, 0x0c, 0x3e, 0x1e, 0xac, 0x75, 0x1b, 0x6e, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x93, 0xcb, 0x33, 0x0f, 0x96, 0xc3, 0x62, 0x6f, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x6c, 0x75, 0xe2, 0x86, 0x4b, 0x6a, 0x83, 0xc3, 0x7e, 0xc7, 0x1a, 0xac, 0x75, 0x1b, 0x3e, 0x68, 0xe8, 0x57, 0xbb, 0x0d, 0x4a, 0x78, 0xcc, 0x35, 0x68, 0xb5, 0x5b, 0xbb, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x97, 0xd4, 0x06, 0x87, 0xfd, 0x8e, 0x35, 0x58, 0xeb, 0x36, 0xbc, 0xe1, 0x6d, 0x9d, 0x0d, 0x1a, 0xce, 0xd6, 0x6e, 0x0d, 0xd6, 0xb5, 0xd9, 0x6e, 0x78, 0x5b, 0xe7, 0xa0, 0xe9, 0x71, 0xed, 0x56, 0xc3, 0xe7, 0x4a, 0x1b, 0x84, 0xcc, 0xe9, 0x41, 0x39, 0x8e, 0xbf, 0x41, 0xd1, 0x69, 0xbc, 0x41, 0xd3, 0xd0, 0xda, 0x6b, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x07, 0xed, 0x81, 0x6b, 0x6f, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x66, 0x69, 0xe7, 0xc1, 0x72, 0x58, 0xec, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x64, 0x70, 0xd8, 0x1a, 0xac, 0x01, 0x5a, 0xda, 0xf0, 0xb6, 0xce, 0x06, 0xad, 0xdd, 0x6b, 0xd7, 0x6a, 0xf8, 0x5c, 0x69, 0x83, 0x35, 0x68, 0x78, 0x07, 0xe5, 0x38, 0xfe, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x4d, 0x43, 0x6b, 0x6f, 0xd0, 0xc6, 0xbc, 0xf6, 0x86, 0x5f, 0x94, 0x36, 0x68, 0xd0, 0x5e, 0x7b, 0x83, 0x62, 0x40, 0x76, 0x83, 0xf6, 0xfa, 0xb5, 0x37, 0x28, 0x28, 0x32, 0x37, 0xfc, 0xe2, 0xb2, 0x41, 0x93, 0xc1, 0x61, 0x6b, 0xf8, 0x38, 0xea, 0xa0, 0x51, 0x7e, 0xed, 0x56, 0xc3, 0xe7, 0x4a, 0x1b, 0xac, 0xc2, 0x2b, 0x3e, 0x38, 0x71, 0x59, 0x6c, 0x50, 0x74, 0x1a, 0x6f, 0xd0, 0x34, 0xb4, 0xf6, 0x06, 0x6d, 0xcc, 0x6b, 0x6f, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x6d, 0xb0, 0x92, 0x97, 0xf4, 0x60, 0x39, 0x2c, 0xf6, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x4d, 0x43, 0x6b, 0xaf, 0xe1, 0x92, 0xda, 0xe0, 0xb0, 0xdf, 0x71, 0xd0, 0x16, 0xb5, 0xf6, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0x4d, 0x29, 0x6d, 0x1d, 0x2c, 0x87, 0xc5, 0xde, 0xf0, 0x8b, 0xcb, 0x06, 0x4d, 0x06, 0x87, 0xad, 0xe1, 0xdf, 0x9c, 0x0d, 0x16, 0xbe, 0x93, 0x1e, 0x34, 0x31, 0xb6, 0xd5, 0x6a, 0xf8, 0x5c, 0x69, 0x83, 0x65, 0xbd, 0xc5, 0x1b, 0x14, 0xe0, 0x9d, 0x1b, 0x9c, 0xc9, 0x2c, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xe4, 0x41, 0x98, 0x8e, 0xb5, 0x41, 0xd1, 0x69, 0xbc, 0x41, 0xd3, 0xd0, 0xda, 0x1b, 0xb4, 0x31, 0xaf, 0xbd, 0xe1, 0x17, 0xa5, 0x0d, 0x1a, 0xb4, 0xd7, 0xde, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0xa0, 0xc8, 0x69, 0x3d, 0x68, 0x94, 0x5f, 0x7b, 0x83, 0xd6, 0x34, 0xb6, 0x37, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0x36, 0x28, 0x60, 0xf3, 0x0f, 0x1a, 0xe5, 0xd7, 0x5e, 0xc3, 0x25, 0xb5, 0xc1, 0x61, 0xbf, 0x63, 0x0d, 0xd6, 0xba, 0x0d, 0x6f, 0x78, 0x5b, 0x67, 0x70, 0xf2, 0x60, 0xad, 0xdb, 0x70, 0x07, 0x05, 0x45, 0xe6, 0x6a, 0xf8, 0x5c, 0x69, 0x83, 0x65, 0x14, 0xc6, 0x07, 0x27, 0x2e, 0x8b, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x0d, 0xda, 0xff, 0xe8, 0x3c, 0x68, 0x63, 0x5e, 0x7b, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x76, 0xda, 0x84, 0x37, 0x28, 0x28, 0x32, 0x37, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x0d, 0x5a, 0xa3, 0xd6, 0x5e, 0x83, 0x75, 0x6d, 0xb6, 0x07, 0x8d, 0xb1, 0x09, 0xb7, 0x1a, 0x3e, 0x57, 0xda, 0x60, 0x09, 0x8f, 0xf1, 0xc1, 0x89, 0xcb, 0x62, 0xc3, 0x27, 0x36, 0x1b, 0xb4, 0x4e, 0xb4, 0xbd, 0x41, 0x09, 0x8f, 0xb9, 0x41, 0x3b, 0x6d, 0xc2, 0x1b, 0x14, 0x14, 0x99, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x06, 0xad, 0x51, 0x6b, 0xaf, 0xc1, 0xba, 0x36, 0xdb, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xf2, 0x71, 0xd8, 0x06, 0x8d, 0xb1, 0x09, 0x1f, 0xb4, 0x5b, 0xac, 0xdd, 0x6a, 0xf8, 0x5c, 0x69, 0x83, 0xa5, 0x6b, 0xc6, 0x07, 0x27, 0x2e, 0x8b, 0x0d, 0x8a, 0x01, 0xd9, 0x0d, 0xda, 0x00, 0xd6, 0xde, 0xa0, 0xa0, 0xc8, 0xdc, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0xd9, 0xa0, 0xfd, 0x8f, 0xce, 0x83, 0xd6, 0xa5, 0xb5, 0x37, 0x28, 0xe1, 0x31, 0x37, 0x68, 0xa7, 0x4d, 0x78, 0x83, 0x82, 0x22, 0x73, 0xc3, 0x07, 0x39, 0x6b, 0x50, 0x4c, 0x62, 0x6e, 0xd0, 0x6e, 0x21, 0xd5, 0x41, 0x3b, 0x6d, 0xc2, 0x6b, 0xf8, 0xc4, 0x66, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x3e, 0x35, 0x78, 0x0d, 0x6f, 0xeb, 0x6c, 0x70, 0x90, 0x67, 0x3b, 0x68, 0xa7, 0x4d, 0x78, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0x80, 0xfe, 0x77, 0x83, 0x86, 0x7e, 0xb5, 0x0f, 0x56, 0xfd, 0x00, 0xb7, 0x41, 0x09, 0x8f, 0xb9, 0xe1, 0xcb, 0xc9, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x2e, 0x2e, 0xd6, 0x1a, 0xde, 0xd6, 0x19, 0xbc, 0x3e, 0x7c, 0x39, 0xd9, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x4d, 0x43, 0x6b, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0x9a, 0xfe, 0xc6, 0xde, 0xa0, 0xa1, 0x5f, 0xed, 0x83, 0xa6, 0xd8, 0x84, 0x37, 0xfc, 0xa2, 0xb4, 0xc1, 0x72, 0x58, 0xec, 0x0d, 0x97, 0xd4, 0x06, 0x87, 0xfd, 0x8e, 0x0d, 0x9a, 0x6d, 0xda, 0x5e, 0x83, 0xb5, 0x6e, 0xc3, 0x07, 0xa7, 0x95, 0xb3, 0x56, 0xc3, 0xe7, 0x4a, 0x1b, 0xac, 0xbf, 0x35, 0x5e, 0xc3, 0xe7, 0x4a, 0x07, 0xa7, 0xf1, 0xc0, 0x83, 0xa6, 0x54, 0xb6, 0x37, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x36, 0x58, 0xe5, 0x39, 0xbb, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0x1d, 0x34, 0xc7, 0xb3, 0xbd, 0x41, 0x09, 0x8f, 0xb9, 0x41, 0xdb, 0x70, 0x99, 0x1b, 0x14, 0x14, 0x99, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x1b, 0x2c, 0x7e, 0xef, 0x3e, 0x68, 0x5d, 0x5a, 0x7b, 0x83, 0x12, 0x1e, 0x73, 0x0d, 0x16, 0xbf, 0x77, 0xb7, 0x41, 0x41, 0x91, 0xb9, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x8b, 0xb6, 0xd8, 0x6d, 0xd0, 0xd0, 0xaf, 0xf6, 0x1a, 0xde, 0xd6, 0x39, 0x68, 0x48, 0x74, 0xfb, 0xa0, 0x19, 0xbc, 0xcc, 0xd5, 0xf0, 0xb9, 0xd2, 0x06, 0xab, 0x84, 0x8e, 0x37, 0xfc, 0x50, 0x73, 0x70, 0x22, 0xb3, 0x38, 0x68, 0x5d, 0x5a, 0x7b, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0x2a, 0xa1, 0xe3, 0x0d, 0x8e, 0x55, 0x16, 0x07, 0x4d, 0xa9, 0x6c, 0x6f, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x6c, 0xd0, 0xdc, 0x69, 0xf6, 0x41, 0xeb, 0xd2, 0xda, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x34, 0x1a, 0x9b, 0xbd, 0x41, 0x41, 0x91, 0xb9, 0xe1, 0x83, 0x9c, 0x35, 0x3c, 0xc2, 0xba, 0x06, 0xc5, 0x24, 0xe6, 0x06, 0xab, 0xbc, 0x83, 0x0f, 0xda, 0x00, 0xd6, 0x5e, 0x83, 0x62, 0x12, 0x73, 0x83, 0x76, 0x0b, 0xa9, 0x0e, 0x1a, 0x8d, 0xcd, 0x6e, 0x0d, 0x6f, 0xd9, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0x59, 0xc7, 0x6e, 0xd0, 0x54, 0x1c, 0xd8, 0x1a, 0x2e, 0xa9, 0x35, 0x9e, 0x1f, 0x34, 0x1a, 0x9b, 0x5d, 0x07, 0xad, 0x5e, 0x6e, 0x1f, 0xb4, 0x7a, 0xb9, 0xdd, 0x6a, 0xd0, 0x9e, 0xf7, 0xd8, 0x86, 0xe7, 0x49, 0x36, 0x68, 0x71, 0x50, 0x7b, 0xc3, 0x2f, 0x4a, 0x1b, 0xb4, 0xda, 0xa8, 0xbd, 0xc1, 0x72, 0x48, 0xa6, 0xd9, 0xf0, 0x17, 0xcd, 0x06, 0x6d, 0x93, 0x69, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0x24, 0x96, 0x76, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0x54, 0xa0, 0x76, 0x1b, 0x2c, 0x5e, 0xb3, 0x3d, 0x58, 0xce, 0x36, 0xdc, 0xe1, 0x14, 0x5b, 0x83, 0x56, 0x77, 0xb3, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0x69, 0xec, 0xad, 0x0d, 0x8e, 0xad, 0x8c, 0xae, 0x0c, 0x24, 0xcc, 0x2d, 0x0f, 0x84, 0x2d, 0x4c, 0x2f, 0xcd, 0xad, 0x6c, 0x6e, 0x6e, 0xc3, 0x2f, 0x4a, 0x1b, 0xb4, 0xd9, 0x93, 0xbd, 0xe1, 0x2f, 0x9a, 0x0d, 0xd6, 0x60, 0x63, 0x6f, 0x10, 0xa4, 0xa7, 0x1b, 0x34, 0x8a, 0x94, 0xbd, 0x06, 0x6b, 0x75, 0xba, 0x0f, 0x16, 0xaf, 0xd9, 0xae, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x3c, 0x9b, 0xc9, 0x85, 0x9d, 0xb5, 0x95, 0xb9, 0xd1, 0x81, 0xc4, 0x80, 0xa4, 0xcd, 0x81, 0xd0, 0xa1, 0x95, 0x81, 0xdc, 0xa1, 0xbd, 0xb1, 0x95, 0x81, 0xd0, 0xa1, 0xa5, 0xb9, 0x9d, 0x1d, 0xac, 0x69, 0xea, 0xde, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0xf0, 0x98, 0xcc, 0x41, 0x53, 0x59, 0xd9, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0x36, 0xc0, 0x7b, 0x83, 0x56, 0x6e, 0xc3, 0x3a, 0x28, 0xeb, 0x3c, 0x37, 0x7c, 0x62, 0xb3, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x4b, 0xba, 0xba, 0x0f, 0x5a, 0x49, 0xca, 0xde, 0xa0, 0xa9, 0xac, 0xec, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x7c, 0x39, 0xb9, 0x41, 0x5b, 0xfd, 0xdb, 0x07, 0x0d, 0xf9, 0x6d, 0xaf, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x3c, 0xc8, 0x95, 0x8d, 0xd5, 0xc9, 0xcd, 0xa5, 0xd9, 0x95, 0x81, 0x90, 0x95, 0xcd, 0x8d, 0x95, 0xb9, 0xd1, 0x1d, 0x2c, 0x24, 0xe9, 0xde, 0xa0, 0xe8, 0x34, 0xde, 0xa0, 0xe5, 0xe3, 0xb0, 0x35, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x58, 0xd7, 0x66, 0x7b, 0xd0, 0x4a, 0x63, 0x76, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0xac, 0x6b, 0xb3, 0x3d, 0x68, 0x48, 0x32, 0xbb, 0x0e, 0xa7, 0x58, 0x75, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0x0a, 0xc0, 0x03, 0x9c, 0xdc, 0x9b, 0x59, 0x1a, 0x5b, 0x9a, 0xdb, 0x59, 0xcb, 0x5c, 0x1d, 0x1c, 0xdc, 0x9b, 0x1c, 0xbd, 0x0c, 0x40, 0x7b, 0x8d, 0x99, 0x0e, 0x08, 0x9c, 0xdc, 0x9b, 0x59, 0x1a, 0x5b, 0x9a, 0xdb, 0x19, 0xc8, 0x5c, 0x1d, 0x1c, 0xdc, 0x9b, 0x1c, 0x1d, 0x08, 0x0a, 0x16, 0x16, 0x48, 0xdb, 0x9b, 0x5d, 0x59, 0x6a, 0x01, 0x5e, 0xb8, 0xb4, 0x96, 0xb6, 0x37, 0xb8, 0x72, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xa0, 0xc9, 0x16, 0xee, 0x06, 0xf0, 0x09, 0x23, 0x23, 0x03, 0x99, 0x0b, 0x6b, 0x83, 0x63, 0x2b, 0xdb, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0x24, 0xb8, 0x7d, 0x1e, 0xac, 0xd7, 0x7a, 0xde, 0x60, 0x49, 0x71, 0x77, 0x1b, 0x9c, 0x1c, 0xe4, 0x36, 0x48, 0xa7, 0xfc, 0x5c, 0xc3, 0xdb, 0x3a, 0x1b, 0xac, 0x37, 0xee, 0x6e, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0x30, 0x56, 0x05, 0x36, 0x5c, 0x52, 0x1b, 0xb4, 0xf8, 0xc3, 0xbd, 0x06, 0x47, 0xf5, 0xae, 0x0d, 0x1f, 0x47, 0x6d, 0x78, 0x5b, 0x67, 0x83, 0xb1, 0x2a, 0x70, 0xd0, 0xe2, 0x0f, 0x77, 0xab, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x85, 0x7b, 0xe4, 0x1b, 0x2e, 0xa9, 0x0d, 0x5a, 0xfc, 0xe1, 0x5e, 0x0d, 0x16, 0xee, 0x91, 0xb7, 0xe1, 0xe3, 0xa8, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0x70, 0x8f, 0xfc, 0xa0, 0xc5, 0x1f, 0xee, 0x56, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x2b, 0x1b, 0xc9, 0x37, 0x5c, 0x52, 0x1b, 0xb4, 0xf8, 0xc3, 0xbd, 0x1a, 0xac, 0x6c, 0x24, 0x6f, 0xc3, 0xc7, 0x51, 0x1b, 0xde, 0xd6, 0xd9, 0x60, 0x65, 0x23, 0xf9, 0x41, 0x8b, 0x3f, 0xdc, 0xad, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x96, 0x80, 0x92, 0x6f, 0xb8, 0xa4, 0x36, 0x68, 0xf1, 0x87, 0x7b, 0x35, 0x58, 0x02, 0x4a, 0xde, 0x86, 0x8f, 0xa3, 0x36, 0xbc, 0xad, 0xb3, 0xc1, 0x12, 0x50, 0xf2, 0x83, 0x16, 0x7f, 0xb8, 0x5b, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0xac, 0x91, 0x25, 0xdf, 0x70, 0x49, 0x6d, 0xd0, 0xe2, 0x0f, 0xf7, 0x6a, 0xb0, 0x46, 0x96, 0xbc, 0x0d, 0x1f, 0x47, 0x6d, 0x78, 0x5b, 0x67, 0x83, 0x35, 0xb2, 0xe4, 0x07, 0x2d, 0xfe, 0x70, 0xb7, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x58, 0x44, 0x4c, 0xbe, 0xe1, 0x92, 0xda, 0xa0, 0xc5, 0x1f, 0xee, 0xd5, 0x60, 0x11, 0x31, 0x79, 0x1b, 0x3e, 0x8e, 0xda, 0xf0, 0xb6, 0xce, 0x06, 0x8b, 0x88, 0xc9, 0x0f, 0x5a, 0xfc, 0xe1, 0x6e, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xb0, 0xda, 0x9a, 0x7c, 0xc3, 0x25, 0xb5, 0x41, 0x8b, 0x3f, 0xdc, 0xab, 0xc1, 0x6a, 0x6b, 0xf2, 0x36, 0x7c, 0x1c, 0xb5, 0xe1, 0x6d, 0x9d, 0x0d, 0x56, 0x5b, 0x93, 0x1f, 0xb4, 0xf8, 0xc3, 0x5d, 0x2b, 0xc0, 0x0b, 0x97, 0xd6, 0xd2, 0xf6, 0x46, 0x87, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xb4, 0x4f, 0xc8, 0xdd, 0x00, 0x7e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x1b, 0x7e, 0x51, 0xda, 0x60, 0x49, 0x71, 0xf7, 0x86, 0xbf, 0x68, 0x36, 0x28, 0xb3, 0x74, 0x37, 0x48, 0x32, 0x20, 0xdc, 0xf0, 0x27, 0xd0, 0x06, 0x6d, 0x1c, 0x71, 0x6f, 0xd0, 0x30, 0x14, 0xf7, 0x06, 0x2d, 0x6a, 0x71, 0x6f, 0xd0, 0x14, 0x19, 0xf7, 0x06, 0x6d, 0xb8, 0x71, 0x6f, 0xd0, 0xf8, 0x1d, 0xf7, 0x06, 0xad, 0x06, 0x72, 0x77, 0x38, 0xc5, 0x16, 0xe0, 0x85, 0x4b, 0x6b, 0x69, 0xab, 0x6b, 0x6b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x9a, 0xe7, 0xe4, 0x6e, 0x00, 0x3f, 0x38, 0xb9, 0x34, 0x37, 0x3a, 0x90, 0xb9, 0xb0, 0x36, 0x38, 0xb6, 0xb2, 0x0d, 0xbf, 0x28, 0x6d, 0xb0, 0xa4, 0xb8, 0x7b, 0xc3, 0x5f, 0x34, 0x1b, 0x9c, 0xf4, 0x44, 0x37, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x3c, 0xba, 0x37, 0x7a, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xf6, 0x09, 0xb9, 0xdb, 0xa0, 0x59, 0x1f, 0xee, 0x36, 0x48, 0x32, 0x20, 0xdc, 0xe0, 0x90, 0xb5, 0xb8, 0x86, 0xbf, 0x68, 0x36, 0x38, 0xe9, 0x89, 0x6e, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0x6c, 0x78, 0xf0, 0xe6, 0xa0, 0x61, 0x28, 0xee, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0xc8, 0x5a, 0x5c, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0x66, 0x0c, 0xde, 0x20, 0x11, 0x2e, 0x78, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x0a, 0xac, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xe0, 0xa9, 0xdd, 0x20, 0xcd, 0x20, 0x74, 0x83, 0x86, 0xa1, 0xb8, 0x5b, 0xc3, 0xdb, 0x3a, 0x1b, 0x34, 0xc2, 0xca, 0x5d, 0xad, 0xe1, 0x59, 0xbc, 0xc1, 0xdd, 0x83, 0xd5, 0x00, 0x24, 0xad, 0xe1, 0x2f, 0x9a, 0x0d, 0x4e, 0x7a, 0xa2, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x1b, 0x1e, 0xbc, 0x39, 0x68, 0xe3, 0x88, 0x7b, 0x83, 0x82, 0x22, 0x73, 0xc3, 0xbb, 0x3d, 0x1b, 0x1c, 0xb2, 0x16, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x8b, 0x19, 0x83, 0x37, 0x48, 0x84, 0x0b, 0x5e, 0xc3, 0xbb, 0x3d, 0x1b, 0x84, 0x02, 0xeb, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x78, 0x6a, 0x37, 0x48, 0x33, 0x08, 0xdd, 0xa0, 0x8d, 0x23, 0xee, 0x0e, 0x1a, 0x27, 0xe6, 0x6e, 0x0d, 0xcf, 0xe2, 0x0d, 0x3e, 0x1e, 0xac, 0x06, 0x20, 0x69, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0xd2, 0x13, 0xdd, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0xf0, 0xe0, 0xcd, 0x41, 0x8b, 0x5a, 0xdc, 0x1b, 0x14, 0x14, 0x99, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0x90, 0xb5, 0xb8, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xcc, 0x18, 0xbc, 0x41, 0x22, 0x5c, 0xf0, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x14, 0x58, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xc1, 0x53, 0xbb, 0x41, 0x9a, 0x41, 0xe8, 0x06, 0x2d, 0x6a, 0x71, 0x77, 0xd0, 0x38, 0x31, 0x77, 0x6b, 0x78, 0x16, 0x6f, 0xf0, 0xf3, 0x60, 0x35, 0x00, 0x49, 0x6b, 0xf8, 0x8b, 0x66, 0x83, 0x93, 0x9e, 0xe8, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x86, 0x07, 0x6f, 0x0e, 0x9a, 0x22, 0xe3, 0xde, 0xa0, 0xa0, 0xc8, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0x87, 0xac, 0xc5, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x62, 0xc6, 0xe0, 0x0d, 0x12, 0xe1, 0x82, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xa1, 0xc0, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x08, 0x9e, 0xda, 0x0d, 0xd2, 0x0c, 0x42, 0x37, 0x68, 0x8a, 0x8c, 0xbb, 0x83, 0xc6, 0x89, 0xb9, 0x5b, 0xc3, 0xb3, 0x78, 0x83, 0xb7, 0x07, 0xab, 0x01, 0x48, 0x5a, 0xc3, 0x5f, 0x34, 0x1b, 0x9c, 0xf4, 0x44, 0x37, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0x36, 0x3c, 0x78, 0x73, 0xd0, 0x86, 0x1b, 0xf7, 0x06, 0x05, 0x45, 0xe6, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x64, 0x2d, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0x33, 0x06, 0x6f, 0x90, 0x08, 0x17, 0xbc, 0x86, 0x77, 0x7b, 0x36, 0x08, 0x05, 0xd6, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xf0, 0xd4, 0x6e, 0x90, 0x66, 0x10, 0xba, 0x41, 0x1b, 0x6e, 0xdc, 0x1d, 0x34, 0x4e, 0xcc, 0xdd, 0x1a, 0x9e, 0xc5, 0x1b, 0xdc, 0x3c, 0x58, 0x0d, 0x40, 0xd2, 0x1a, 0xfe, 0xa2, 0xd9, 0xe0, 0xa4, 0x27, 0xba, 0xe1, 0x83, 0x9c, 0x35, 0xfc, 0x9b, 0xb3, 0xe1, 0xc1, 0x9b, 0x83, 0xc6, 0xef, 0xb8, 0x37, 0x28, 0x28, 0x32, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0x21, 0x6b, 0x71, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x98, 0x31, 0x78, 0x83, 0x44, 0xb8, 0xe0, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x28, 0xb0, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x82, 0xa7, 0x76, 0x83, 0x34, 0x83, 0xd0, 0x0d, 0x1a, 0xbf, 0xe3, 0xee, 0xa0, 0x71, 0x62, 0xee, 0xd6, 0xf0, 0x2c, 0xde, 0xe0, 0xf9, 0xc1, 0x6a, 0x00, 0x92, 0xd6, 0xf0, 0x17, 0xcd, 0x06, 0x27, 0x3d, 0xd1, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x0d, 0x0f, 0xde, 0x1c, 0xb4, 0x1a, 0xc8, 0xbd, 0x41, 0x41, 0x91, 0xb9, 0xe1, 0xdd, 0x9e, 0x0d, 0x0e, 0x59, 0x8b, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xc5, 0x8c, 0xc1, 0x1b, 0x24, 0xc2, 0x05, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0x42, 0x81, 0x75, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x3c, 0xb5, 0x1b, 0xa4, 0x19, 0x84, 0x1e, 0xb4, 0xaf, 0xc9, 0x7d, 0xd0, 0x38, 0x31, 0x77, 0x6b, 0x78, 0x16, 0x6f, 0xf0, 0xf2, 0x60, 0x35, 0x00, 0x49, 0xad, 0x00, 0x2f, 0x5c, 0x5a, 0x8b, 0xdb, 0xdb, 0x9b, 0xbb, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xd0, 0x12, 0x52, 0x77, 0x03, 0xf8, 0xcd, 0x85, 0xb5, 0xc1, 0xb1, 0x95, 0x81, 0xd0, 0xc9, 0x85, 0x8d, 0x95, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0x6d, 0xd0, 0x1c, 0x0e, 0xf7, 0x1a, 0xfe, 0x5c, 0xda, 0xa0, 0xd1, 0xb3, 0xb3, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0x90, 0x32, 0x39, 0x58, 0x50, 0x14, 0xbc, 0x86, 0x3f, 0x97, 0x36, 0x48, 0x05, 0xe4, 0xdc, 0xf0, 0xef, 0xfc, 0x1a, 0x2c, 0x29, 0x15, 0xaf, 0x36, 0x28, 0xed, 0x2d, 0xd7, 0xf0, 0xe7, 0xd2, 0x80, 0xc7, 0x16, 0x86, 0x1f, 0x2c, 0x09, 0x0a, 0xde, 0xf0, 0x15, 0xce, 0x86, 0xbf, 0x68, 0x36, 0x68, 0x74, 0xab, 0x7b, 0x83, 0x12, 0x1e, 0x73, 0x83, 0xa6, 0xec, 0xce, 0xd6, 0x70, 0x49, 0x6d, 0x90, 0xb6, 0xc9, 0xb9, 0x06, 0x2d, 0xfe, 0x70, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0x64, 0x0b, 0x77, 0x1b, 0xa4, 0x81, 0x7e, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0xd6, 0x1b, 0x77, 0x1f, 0xa4, 0x6d, 0x72, 0xd6, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0x4d, 0xd9, 0x9d, 0x6d, 0x78, 0x5b, 0x67, 0x70, 0xfa, 0xa0, 0x29, 0xbb, 0xb3, 0xd5, 0xa0, 0xe5, 0xaf, 0xee, 0x36, 0x38, 0x86, 0x1b, 0x6c, 0x78, 0x5b, 0x67, 0xf0, 0xf4, 0xa0, 0x29, 0xbb, 0xb3, 0xd5, 0x60, 0x8c, 0x53, 0x1c, 0xa4, 0x6d, 0x72, 0x6e, 0x50, 0x74, 0x1a, 0xaf, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0xd9, 0x82, 0xba, 0x41, 0xd9, 0x54, 0xbf, 0x86, 0xb7, 0x75, 0x0e, 0x1a, 0xd7, 0xeb, 0x6e, 0x83, 0xb6, 0xf0, 0xba, 0x37, 0xfc, 0x45, 0xb3, 0xc1, 0x22, 0x6d, 0xf1, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x01, 0xcf, 0x2d, 0x0c, 0xdf, 0xf0, 0x17, 0xcd, 0x06, 0x4b, 0x82, 0x82, 0x37, 0x28, 0xe1, 0x31, 0x37, 0x68, 0x8e, 0xae, 0x7b, 0x83, 0x82, 0x22, 0x73, 0x83, 0x63, 0xb8, 0xc1, 0x86, 0xb7, 0x75, 0x06, 0x4f, 0x0f, 0x9a, 0xa3, 0xeb, 0xde, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0xd9, 0xa0, 0x25, 0xdc, 0xb1, 0x0d, 0x7f, 0xd1, 0x6c, 0xb0, 0x48, 0x5b, 0x7c, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0x96, 0x70, 0xc7, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x85, 0x9b, 0xe8, 0x41, 0xeb, 0x7f, 0xdd, 0x1b, 0xb4, 0x85, 0xd7, 0xdd, 0x06, 0xc5, 0x80, 0xec, 0x06, 0xed, 0xf7, 0x8e, 0x6d, 0xd0, 0xde, 0xf1, 0xd8, 0x86, 0x5f, 0x5c, 0xd6, 0xa0, 0x10, 0x4c, 0x3d, 0x58, 0x91, 0xdc, 0x7d, 0x50, 0x96, 0x79, 0x6e, 0x70, 0xce, 0x5f, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0xac, 0xd6, 0xbd, 0x41, 0x1a, 0xe8, 0xe7, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0xbd, 0x71, 0xf7, 0x41, 0xfb, 0xbd, 0x63, 0xad, 0x41, 0x09, 0x8f, 0xb9, 0x41, 0x23, 0x76, 0xdd, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xd2, 0x2c, 0xfb, 0xa0, 0xfd, 0xde, 0xb1, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x0d, 0x5a, 0x94, 0x97, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0x14, 0x6e, 0xa2, 0x1b, 0x94, 0x4d, 0xf5, 0x1b, 0xb4, 0xed, 0xda, 0xdd, 0x1a, 0xde, 0xd6, 0x19, 0xbc, 0x3e, 0x68, 0xc4, 0xae, 0xbb, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0xd9, 0x82, 0x7a, 0xd0, 0xe2, 0x6d, 0xf7, 0x06, 0x2d, 0xe7, 0x76, 0xaf, 0x41, 0x09, 0x8f, 0xb9, 0x41, 0xf3, 0x01, 0x53, 0x1b, 0x1e, 0x93, 0xd9, 0xf0, 0x71, 0xd4, 0x86, 0xb7, 0x75, 0x06, 0xaf, 0x0f, 0x9a, 0x0f, 0x98, 0x6a, 0x83, 0x12, 0x1e, 0x73, 0x0d, 0x9a, 0x3e, 0xec, 0x6e, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0xf8, 0xbd, 0xfb, 0xa0, 0xfd, 0xde, 0xb1, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x0d, 0x5a, 0x94, 0x97, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0x14, 0x6e, 0xa2, 0x1b, 0x94, 0x4d, 0xf5, 0x1b, 0x34, 0xa0, 0xdc, 0xdd, 0x1a, 0xde, 0xd6, 0x19, 0xbc, 0x3e, 0x68, 0x18, 0xb9, 0xbb, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0xd9, 0x82, 0x7a, 0xd0, 0xb2, 0x74, 0xf7, 0x06, 0x2d, 0x54, 0x77, 0x1f, 0xb4, 0x15, 0xdc, 0xdd, 0x0a, 0xf0, 0xc2, 0xa5, 0xb5, 0xd0, 0x95, 0xb1, 0xb1, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xad, 0x77, 0x77, 0x37, 0x80, 0x1f, 0x9c, 0xdc, 0x1b, 0x59, 0xdd, 0x58, 0x19, 0x08, 0x59, 0x5d, 0x1b, 0xdc, 0x86, 0x5f, 0x94, 0x36, 0x68, 0x37, 0xab, 0x7b, 0xc3, 0x5f, 0x34, 0x1b, 0x1c, 0x15, 0x51, 0x37, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0x36, 0x48, 0xc0, 0xe4, 0xdc, 0xa0, 0x10, 0x4c, 0x3d, 0x68, 0x74, 0xab, 0x7b, 0x83, 0x82, 0x22, 0x73, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0x46, 0x58, 0xb9, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x1b, 0xae, 0xdc, 0x07, 0x6d, 0xb7, 0x75, 0x6f, 0x90, 0x64, 0x40, 0xb8, 0xc1, 0x21, 0x6b, 0x71, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x0e, 0x59, 0x8b, 0x6b, 0x78, 0x16, 0x6f, 0xf0, 0x72, 0x70, 0x7b, 0xf0, 0x72, 0x70, 0x77, 0x70, 0x7a, 0xf0, 0x79, 0x50, 0x7d, 0xb0, 0x1a, 0x80, 0x64, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x9a, 0xe7, 0xe4, 0xee, 0xa0, 0xed, 0xb6, 0xee, 0x0e, 0xca, 0x3a, 0xcf, 0x35, 0x28, 0x3a, 0x8d, 0x37, 0x28, 0x91, 0xaa, 0xd7, 0xa0, 0xe8, 0x34, 0xde, 0xa0, 0xb9, 0x00, 0xc3, 0x35, 0x28, 0x4b, 0xde, 0x37, 0x58, 0x04, 0x32, 0xba, 0x41, 0xd9, 0x54, 0xbf, 0x86, 0xb7, 0x75, 0x36, 0x58, 0xde, 0x1b, 0x7a, 0x90, 0xb6, 0xc9, 0xd9, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0xdc, 0xf0, 0xb9, 0xd2, 0xc1, 0x31, 0x45, 0x64, 0x0d, 0x7f, 0x2e, 0x0d, 0x2e, 0x1e, 0x34, 0x42, 0xe1, 0xdd, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0x71, 0xb6, 0x41, 0xa9, 0xa3, 0x7f, 0x70, 0x28, 0xe3, 0xdb, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0xda, 0xa0, 0x35, 0xa2, 0xac, 0x35, 0xfc, 0xb9, 0xb4, 0x41, 0xa3, 0x7f, 0x84, 0x07, 0x65, 0x96, 0x6e, 0x1b, 0x24, 0x19, 0x10, 0x6e, 0x70, 0xc8, 0x5a, 0xdc, 0xa0, 0xa5, 0xb2, 0xac, 0x35, 0x3c, 0x8b, 0x77, 0xd0, 0xfc, 0x7f, 0xf7, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x31, 0x63, 0xf0, 0x06, 0x89, 0x70, 0xc1, 0x07, 0x4d, 0x50, 0x12, 0xb6, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0x10, 0x44, 0x77, 0x50, 0xd6, 0x79, 0xae, 0xc1, 0x89, 0xfd, 0x66, 0x83, 0x46, 0xe5, 0xff, 0x36, 0xfc, 0x45, 0xb3, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0x48, 0x99, 0x6c, 0x70, 0x54, 0x44, 0x6d, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x12, 0xa9, 0x7a, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x9a, 0x0b, 0x30, 0x5c, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x45, 0x20, 0xa3, 0x07, 0xad, 0xff, 0x75, 0x6f, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0x0d, 0xda, 0xff, 0xe8, 0xdc, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0xbd, 0xe9, 0x0f, 0x56, 0x60, 0x8b, 0xaf, 0xe1, 0xcf, 0xa5, 0x01, 0x8f, 0xee, 0xee, 0x3d, 0x68, 0xf4, 0xc7, 0xbb, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x46, 0x71, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0x86, 0x2b, 0xf7, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0xbd, 0x71, 0xf7, 0xe0, 0xf1, 0x41, 0x3b, 0x6d, 0xc2, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0xda, 0x70, 0xe5, 0x5e, 0xc3, 0xdb, 0x3a, 0x1b, 0xac, 0x37, 0xee, 0x1e, 0x3c, 0xde, 0xa0, 0xc9, 0x21, 0xef, 0x6a, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x35, 0xd2, 0xe9, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x96, 0x70, 0xc7, 0x0e, 0x16, 0x69, 0x8b, 0xb7, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xe0, 0xbd, 0xd1, 0xd1, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x0d, 0x57, 0xee, 0x83, 0xf6, 0x52, 0xbb, 0x37, 0x48, 0x32, 0x20, 0xdc, 0xe0, 0x90, 0xb5, 0xb8, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x87, 0xac, 0xc5, 0x35, 0x3c, 0x8b, 0x37, 0x38, 0x3b, 0x78, 0x38, 0xb8, 0x38, 0x78, 0x39, 0x38, 0x7b, 0xd0, 0xfc, 0x7f, 0xf7, 0xc1, 0x6a, 0x01, 0xf5, 0x83, 0xb2, 0xce, 0x73, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x0e, 0x59, 0x8b, 0x6b, 0x78, 0x16, 0x6f, 0x70, 0x78, 0x70, 0x79, 0xf0, 0x74, 0xf0, 0x71, 0xf0, 0xf2, 0xa0, 0xf9, 0xff, 0xee, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x62, 0xc6, 0xe0, 0x0d, 0x12, 0xe1, 0x82, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xa1, 0xc0, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x08, 0x9e, 0xda, 0x0d, 0xd2, 0x0c, 0x42, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0xed, 0x6a, 0x79, 0xd7, 0x41, 0xe3, 0xc4, 0xdc, 0x75, 0x50, 0xd6, 0x79, 0xae, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x21, 0x6b, 0x71, 0x0d, 0xcf, 0xe2, 0x0d, 0x3e, 0x0f, 0x8e, 0x0e, 0x1e, 0x0e, 0x0e, 0x1f, 0x34, 0xff, 0xe6, 0xbd, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x4d, 0xc0, 0xfb, 0xa0, 0xbd, 0xd4, 0xee, 0x0e, 0xca, 0x3a, 0xcf, 0x35, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0x36, 0x28, 0x28, 0x32, 0x0f, 0xda, 0x76, 0xed, 0xde, 0xa0, 0xa0, 0xc8, 0xdc, 0xa0, 0x30, 0x54, 0x5d, 0xc3, 0xb3, 0x78, 0x83, 0xa7, 0x83, 0xbb, 0x83, 0xd3, 0x83, 0xbf, 0x07, 0x2b, 0x64, 0x7f, 0x36, 0x28, 0x3a, 0x8d, 0x37, 0x28, 0x91, 0xaa, 0xd7, 0xa0, 0xe8, 0x34, 0xde, 0xa0, 0xb9, 0x00, 0xc3, 0x35, 0x28, 0x4b, 0xde, 0x37, 0x58, 0x04, 0x32, 0x7a, 0xd0, 0xe2, 0x6d, 0xf7, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0x3e, 0x57, 0xda, 0x20, 0x4c, 0xc7, 0x36, 0x68, 0x79, 0x1f, 0xb3, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0x98, 0x8e, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xc5, 0x83, 0x32, 0x4b, 0xb7, 0x0e, 0x0f, 0x27, 0x6e, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0x6d, 0xb0, 0x46, 0x3a, 0xfd, 0xa0, 0x81, 0x0f, 0xef, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0xd2, 0x13, 0xdd, 0x20, 0xc9, 0x80, 0x70, 0x83, 0x43, 0xd6, 0xe2, 0x1a, 0x9e, 0xc5, 0x1b, 0x14, 0x1c, 0xac, 0x06, 0x20, 0xd9, 0x60, 0xbd, 0x80, 0xfa, 0x41, 0x43, 0x25, 0xde, 0x6b, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0x6c, 0x50, 0x50, 0x64, 0x1e, 0x34, 0xa0, 0xdc, 0xbd, 0x41, 0x41, 0x91, 0xb9, 0x41, 0x61, 0xa8, 0xba, 0x86, 0x67, 0xf1, 0x06, 0x37, 0x07, 0x97, 0x07, 0x7f, 0x07, 0x6f, 0x0f, 0x56, 0xc8, 0xfe, 0x6c, 0x50, 0x74, 0x1a, 0x6f, 0x50, 0x22, 0x55, 0xaf, 0x41, 0xd1, 0x69, 0xbc, 0x41, 0x73, 0x01, 0x86, 0x6b, 0x50, 0x96, 0xbc, 0x6f, 0xb0, 0x08, 0x64, 0xf4, 0xa0, 0x65, 0xe9, 0xee, 0x83, 0x76, 0x33, 0xbd, 0x0f, 0xda, 0x1c, 0xf5, 0xde, 0xa0, 0xbd, 0x15, 0xef, 0x83, 0xb2, 0xce, 0xb3, 0xc3, 0x29, 0xd6, 0x02, 0xbc, 0x70, 0x69, 0x2d, 0x68, 0x65, 0x63, 0xeb, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0xda, 0xa0, 0xa9, 0xa2, 0xac, 0x83, 0xf3, 0xe6, 0xe9, 0x41, 0xab, 0x59, 0xdd, 0x1b, 0xfe, 0xa2, 0xd9, 0xa0, 0xd1, 0xad, 0xee, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x0d, 0x1a, 0x5c, 0x34, 0xdc, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0x14, 0x6e, 0xa2, 0x07, 0xad, 0x33, 0x78, 0x1f, 0xb4, 0x73, 0x96, 0xb5, 0xe1, 0x92, 0xda, 0x20, 0x6d, 0x93, 0x73, 0x0d, 0x16, 0xf7, 0x86, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0xca, 0x16, 0xd4, 0x83, 0xd6, 0x19, 0xbc, 0x37, 0x68, 0xe9, 0x2c, 0x6b, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0xda, 0xd3, 0x34, 0xdc, 0xf0, 0x98, 0xcc, 0x86, 0x8f, 0xa3, 0x36, 0xbc, 0xad, 0x33, 0x78, 0x7d, 0xd0, 0x9e, 0xa6, 0x61, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0xb6, 0x00, 0x7c, 0x8c, 0xbd, 0xb5, 0xc1, 0xa5, 0xb1, 0x95, 0xc9, 0xb5, 0xd4, 0xd1, 0xa5, 0xb1, 0xa5, 0xd1, 0xa5, 0x95, 0xcd, 0xcb, 0x00, 0x7c, 0xd5, 0x84, 0xe9, 0x80, 0x8c, 0xbd, 0xb5, 0xc1, 0xa5, 0xb1, 0x95, 0xc9, 0x81, 0xd4, 0xd1, 0xa5, 0xb1, 0xa5, 0xd1, 0xa5, 0x95, 0xcd, 0xad, 0x41, 0xd3, 0xef, 0x68, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0x4d, 0xbf, 0xa3, 0x35, 0x00, 0x3f, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x20, 0x74, 0x77, 0x6f, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x73, 0x1b, 0x1e, 0x1f, 0xd9, 0xa0, 0xe9, 0x77, 0xb4, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0x12, 0x50, 0xf2, 0x83, 0xb5, 0xef, 0xce, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0xf5, 0xc1, 0x9b, 0x07, 0x6b, 0xdf, 0x9d, 0xdb, 0xf0, 0x17, 0xcd, 0x06, 0x6b, 0xdf, 0x9d, 0x37, 0x7c, 0x90, 0xb3, 0x86, 0x47, 0x58, 0xd7, 0xa0, 0x98, 0xc4, 0x5c, 0xc3, 0xe7, 0x4a, 0x1b, 0x84, 0x74, 0xea, 0xc1, 0x21, 0xa6, 0xe3, 0xa0, 0x29, 0x31, 0xee, 0x35, 0xbc, 0xcd, 0xba, 0xe1, 0xdf, 0x9c, 0x0d, 0x0f, 0xde, 0x6c, 0x78, 0x5b, 0x67, 0x70, 0xf8, 0xa0, 0x29, 0x31, 0xee, 0xd6, 0xf0, 0x41, 0xce, 0x1a, 0x1e, 0x61, 0x5d, 0x83, 0x62, 0x12, 0x73, 0x83, 0x66, 0x19, 0xbe, 0x0f, 0xd6, 0xed, 0x72, 0xae, 0xe1, 0x6d, 0xd6, 0x0d, 0xff, 0xe6, 0x6c, 0x78, 0xf0, 0x66, 0xc3, 0xdb, 0x3a, 0x83, 0xc3, 0x07, 0xeb, 0x76, 0x39, 0x5b, 0xc3, 0x2f, 0x2e, 0x1b, 0x2c, 0x0b, 0x00, 0x5e, 0xc3, 0xbb, 0x3d, 0x1b, 0x9c, 0xb1, 0x66, 0x36, 0x68, 0x63, 0xe2, 0x7b, 0x83, 0x66, 0x3a, 0xbe, 0x6b, 0xc3, 0x07, 0x39, 0x6b, 0x50, 0x4c, 0x62, 0xae, 0xe1, 0x73, 0xa5, 0x0d, 0x82, 0xd8, 0x74, 0x83, 0x66, 0x19, 0xbe, 0x37, 0x68, 0x96, 0xe1, 0xbb, 0x83, 0x75, 0xbb, 0x9c, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x70, 0x43, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0x2c, 0x0b, 0x00, 0x5e, 0xc3, 0xbb, 0x3d, 0x1b, 0x9c, 0xb1, 0x66, 0x36, 0x68, 0x63, 0xe2, 0x7b, 0x0d, 0x6f, 0xeb, 0x0c, 0x0e, 0x1f, 0xb4, 0xe0, 0xf1, 0x5d, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x65, 0x01, 0xc0, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x33, 0xd6, 0xcc, 0x06, 0x6d, 0x4c, 0x7c, 0xaf, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0xc1, 0xe3, 0x83, 0x75, 0xbb, 0x9c, 0xd5, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0xfa, 0xad, 0x63, 0x0d, 0x6f, 0xeb, 0x1c, 0x34, 0x25, 0xc6, 0xbd, 0xc1, 0xe2, 0x5c, 0xce, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0xc5, 0x24, 0xe6, 0x1a, 0x3e, 0x57, 0xda, 0xa0, 0x48, 0xc5, 0x5c, 0xc3, 0xe7, 0x4a, 0x07, 0xe1, 0x9c, 0xda, 0x41, 0x53, 0x62, 0xdc, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xb6, 0x0c, 0x3b, 0x36, 0x68, 0x63, 0xe2, 0xfb, 0xa0, 0x55, 0xa1, 0xef, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x0d, 0x5a, 0x49, 0x45, 0x3b, 0x58, 0x9c, 0xcb, 0xb9, 0x41, 0xc3, 0x40, 0xdf, 0x07, 0xed, 0xfa, 0x7c, 0xaf, 0x06, 0x0b, 0x1a, 0xa6, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x16, 0x34, 0x4c, 0x35, 0x80, 0x77, 0x5b, 0xd8, 0x5a, 0x19, 0x48, 0x89, 0xd9, 0x9b, 0xdc, 0x1a, 0x08, 0x5d, 0x1e, 0x5c, 0xd9, 0x86, 0xc7, 0x47, 0x36, 0x58, 0xd0, 0x30, 0xb5, 0xe1, 0x17, 0xa5, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0x7a, 0x4f, 0xbd, 0x83, 0x26, 0xc3, 0xaa, 0x36, 0x28, 0xed, 0x2d, 0xd7, 0xf0, 0xe7, 0xd2, 0x80, 0xc7, 0x56, 0xa6, 0x1f, 0xac, 0xcd, 0xe3, 0xde, 0xf0, 0x15, 0xce, 0x86, 0xbf, 0x68, 0x36, 0x58, 0x36, 0xe3, 0xbc, 0x41, 0x09, 0x8f, 0xb9, 0xc1, 0xca, 0x87, 0xbd, 0x35, 0x28, 0xe1, 0x31, 0xd7, 0xa0, 0x05, 0xb3, 0xef, 0x36, 0x68, 0xeb, 0xfb, 0x62, 0xc3, 0x07, 0x39, 0x6b, 0x50, 0x4c, 0x62, 0x6e, 0xd0, 0xea, 0x36, 0xd5, 0x41, 0x23, 0x6e, 0xdf, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0xf7, 0xa0, 0x11, 0xb7, 0xef, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0xb2, 0x17, 0xc7, 0x1a, 0xde, 0xd6, 0x39, 0x68, 0xc4, 0xed, 0xbb, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x83, 0xd6, 0x1a, 0xb9, 0xd6, 0xa0, 0x11, 0xb7, 0xef, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x0d, 0xda, 0xfa, 0xbe, 0x38, 0x68, 0xa2, 0x92, 0x6b, 0x83, 0x16, 0xf2, 0xbe, 0x37, 0x7c, 0x90, 0xb3, 0x06, 0xc5, 0x24, 0xe6, 0x06, 0x8d, 0xfa, 0x4e, 0x1d, 0xb4, 0x5e, 0xc9, 0xb5, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x2c, 0x79, 0xdf, 0xe0, 0xd8, 0x7f, 0xb3, 0x41, 0xd9, 0xf4, 0x7e, 0xd0, 0x3e, 0xde, 0xf7, 0x1a, 0xde, 0xd6, 0x19, 0x1c, 0x3e, 0x68, 0xbd, 0x92, 0xab, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0xd9, 0x82, 0x7a, 0xd0, 0xba, 0xe2, 0xf7, 0x06, 0x4d, 0x54, 0x72, 0xd5, 0x6a, 0xd0, 0xd8, 0xa4, 0xd7, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x63, 0x93, 0x5e, 0x0d, 0xe0, 0xd7, 0x16, 0xb6, 0x56, 0x06, 0xc2, 0xf6, 0xf6, 0x26, 0x56, 0x16, 0xe6, 0xb6, 0xe1, 0x2f, 0x9a, 0x0d, 0x96, 0xcd, 0x38, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0x66, 0x0e, 0xa6, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x4d, 0x6a, 0x5e, 0x6c, 0x90, 0xe2, 0xe4, 0xb4, 0x06, 0xc7, 0x70, 0x83, 0x83, 0x55, 0x60, 0xb2, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0x9a, 0xd4, 0xbc, 0xd8, 0x20, 0xc5, 0xc9, 0x69, 0x0d, 0x8e, 0xe1, 0x06, 0x07, 0xcb, 0x9c, 0x64, 0x3b, 0x28, 0xeb, 0x3c, 0x57, 0xc3, 0xdc, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xe6, 0xbe, 0x01, 0xbc, 0xdb, 0xc2, 0xd6, 0xca, 0x40, 0x4a, 0xcc, 0xc2, 0xc6, 0xca, 0x40, 0xe8, 0xf2, 0xe0, 0xca, 0x36, 0x3c, 0x3e, 0xb2, 0x61, 0xee, 0x37, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0x80, 0x77, 0x96, 0xa6, 0x1f, 0x2c, 0x40, 0x7f, 0x5e, 0xc3, 0x9f, 0x4b, 0x03, 0x1e, 0x59, 0x99, 0x7c, 0xb0, 0x6c, 0xc6, 0xb9, 0x0d, 0x7f, 0xd1, 0x6c, 0xb0, 0x6c, 0xc6, 0x79, 0xc3, 0x07, 0x39, 0x6b, 0xf8, 0x37, 0x67, 0x83, 0xb6, 0xbe, 0x2f, 0x36, 0xbc, 0xad, 0xb3, 0x41, 0x9b, 0xbc, 0xdf, 0x6d, 0xd0, 0xd6, 0xf7, 0xc5, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0x14, 0x88, 0x63, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0x62, 0xee, 0x77, 0x1b, 0x34, 0x39, 0xfc, 0xdd, 0xac, 0x41, 0xd3, 0xe8, 0x7d, 0x1b, 0x1e, 0x1f, 0xd9, 0xa0, 0x69, 0xf4, 0xbe, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0x9a, 0x36, 0xe6, 0x3a, 0x68, 0x62, 0x98, 0x6a, 0xc3, 0x27, 0x36, 0x1b, 0xb4, 0xbf, 0xb8, 0xb5, 0xe1, 0x2b, 0x9c, 0x0d, 0x7f, 0xd1, 0xac, 0x41, 0xe8, 0x97, 0x6c, 0x50, 0x36, 0x61, 0xae, 0xe1, 0x73, 0xa5, 0x0d, 0xd6, 0xe9, 0x39, 0x1f, 0x2c, 0x2f, 0x73, 0x6e, 0x83, 0x20, 0x3d, 0xdd, 0xa0, 0x69, 0x65, 0xaa, 0x35, 0x08, 0xc1, 0x87, 0x83, 0x82, 0x22, 0x73, 0x0d, 0x5a, 0xdd, 0xa6, 0xda, 0xa0, 0xe8, 0x34, 0xde, 0xe0, 0x90, 0x41, 0xb0, 0x86, 0x77, 0x7b, 0x36, 0x68, 0xac, 0xaf, 0x74, 0x83, 0x26, 0xa3, 0xb9, 0x0e, 0x9a, 0xaf, 0xa6, 0xda, 0xf0, 0x8b, 0xd2, 0x1a, 0x84, 0x7e, 0xc9, 0x06, 0xa5, 0x37, 0xfd, 0x06, 0x4b, 0xfa, 0x9c, 0x0f, 0x96, 0x57, 0x38, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0xc6, 0x9a, 0xd9, 0xa0, 0x9d, 0xb2, 0xad, 0x83, 0xf4, 0xa4, 0xc1, 0x83, 0x43, 0x2f, 0xdf, 0x1a, 0x34, 0x0a, 0x4e, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0xb2, 0x41, 0x43, 0x98, 0x62, 0x07, 0xed, 0x8c, 0x7f, 0x6f, 0x50, 0x0c, 0xc8, 0x6e, 0xd0, 0x38, 0xa8, 0xd8, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0xa0, 0xc8, 0x5c, 0xc3, 0xbb, 0x3d, 0x1b, 0x9c, 0xb1, 0x66, 0x36, 0x68, 0x25, 0x75, 0x6b, 0x0d, 0x6f, 0xeb, 0x0c, 0x0e, 0x0f, 0x5e, 0x1f, 0x34, 0x0e, 0x2a, 0xd6, 0x1a, 0xde, 0xd6, 0x19, 0x3c, 0x3e, 0x68, 0xfb, 0xff, 0xbb, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x83, 0xf6, 0x3d, 0xb7, 0x0e, 0x5a, 0x3e, 0xa7, 0x5a, 0x83, 0x46, 0xd7, 0xa9, 0x36, 0x7c, 0x62, 0xb3, 0x41, 0x53, 0xf4, 0xdf, 0x1b, 0x14, 0x03, 0xb2, 0x1b, 0x34, 0x0e, 0x2a, 0xb6, 0x41, 0x8b, 0xf9, 0xdf, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x06, 0xed, 0x7b, 0x6e, 0x1d, 0xb4, 0x2c, 0x4f, 0xb5, 0x06, 0xa7, 0xb4, 0xa5, 0x0d, 0x9f, 0xd8, 0x6c, 0xd0, 0x14, 0xfd, 0xf7, 0x06, 0xc5, 0x80, 0xec, 0x06, 0x8d, 0x83, 0x8a, 0x6d, 0xd0, 0x62, 0xfe, 0xf7, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x80, 0x07, 0x57, 0x96, 0x6f, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x1b, 0xb4, 0xfa, 0xbb, 0x75, 0xd0, 0xb2, 0x3c, 0xd5, 0x06, 0xc5, 0x80, 0xec, 0x1a, 0xb4, 0x9c, 0x01, 0xde, 0x1a, 0xde, 0xd6, 0x39, 0x68, 0xf1, 0x03, 0x7c, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0xdb, 0xa0, 0x61, 0xdb, 0xad, 0x83, 0x96, 0xcf, 0xa9, 0x5a, 0x0d, 0x33, 0xb4, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x98, 0xa1, 0x06, 0xf0, 0x6e, 0x0b, 0x5b, 0x2b, 0x03, 0x29, 0x19, 0x7b, 0x93, 0x2b, 0x03, 0xa1, 0xcb, 0x83, 0x2b, 0xdb, 0xf0, 0xf8, 0xc8, 0x86, 0x19, 0xda, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x03, 0x1e, 0x5c, 0xd8, 0x78, 0xb0, 0x6c, 0xc6, 0x79, 0x0d, 0x7f, 0x2e, 0x6d, 0x30, 0x4a, 0xfa, 0x0e, 0xd6, 0x48, 0x71, 0xb7, 0xe1, 0x2f, 0x9a, 0x0d, 0x96, 0xcd, 0x38, 0x6f, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0x6c, 0xd0, 0xd6, 0xf7, 0xc5, 0x86, 0xb7, 0x75, 0x36, 0x68, 0x63, 0x06, 0xbc, 0x0d, 0xda, 0xfa, 0xbe, 0xd8, 0xf0, 0x8b, 0xcb, 0x06, 0x2d, 0x75, 0x70, 0x6c, 0xd0, 0x3e, 0x0f, 0xf8, 0x06, 0x05, 0x65, 0x77, 0x87, 0x53, 0xac, 0x35, 0x68, 0x6b, 0x25, 0x73, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x24, 0x2f, 0xdf, 0xc3, 0x07, 0xab, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0xac, 0x02, 0xc7, 0x3b, 0x48, 0x3f, 0x0e, 0xde, 0xf0, 0x17, 0xcd, 0x06, 0x0b, 0x2c, 0x9c, 0x37, 0x08, 0xd2, 0xd3, 0x0d, 0xd6, 0x1c, 0xe6, 0xad, 0x41, 0x08, 0x3e, 0x6c, 0xf8, 0x20, 0x67, 0x83, 0xa4, 0x89, 0xdf, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x53, 0x5a, 0x05, 0x1b, 0xac, 0x55, 0xce, 0x6b, 0xc3, 0x2f, 0x2e, 0x1b, 0x34, 0xda, 0x57, 0x70, 0xd0, 0xa2, 0x15, 0xf8, 0x1a, 0x24, 0x76, 0x06, 0x6f, 0xf8, 0x20, 0x67, 0x83, 0xa4, 0x89, 0xdf, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x53, 0x5a, 0x05, 0x1b, 0x24, 0xa5, 0x05, 0x1f, 0xb4, 0x68, 0x05, 0xbe, 0x41, 0x41, 0x30, 0xbb, 0xc1, 0x32, 0xe6, 0xbc, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0xa3, 0x7d, 0x05, 0x07, 0x2d, 0x7f, 0x81, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x96, 0x31, 0xe7, 0x6d, 0xb8, 0xa4, 0xd6, 0x38, 0x74, 0xb0, 0x8c, 0x39, 0xaf, 0xd6, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0x60, 0x19, 0x73, 0xde, 0x86, 0x4b, 0x6a, 0x8d, 0xe7, 0x07, 0xcb, 0x98, 0xf3, 0xaa, 0x35, 0x48, 0x81, 0x0d, 0xde, 0xf0, 0x8b, 0xcb, 0x06, 0xcd, 0x97, 0x20, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0xa4, 0xea, 0x0d, 0xd6, 0x2a, 0xe7, 0xad, 0xe1, 0x17, 0xa5, 0x0d, 0x9a, 0xf2, 0xc6, 0xdc, 0x70, 0x49, 0x6d, 0x70, 0xd8, 0xef, 0x58, 0x83, 0x45, 0x88, 0x79, 0x87, 0xa7, 0x75, 0xaa, 0x56, 0x83, 0x56, 0x31, 0xaf, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x5a, 0xc5, 0xbc, 0x6a, 0x00, 0x3e, 0xde, 0xc8, 0xde, 0xe4, 0x40, 0xc6, 0xde, 0xda, 0xe0, 0xc2, 0xe8, 0xd2, 0xc4, 0xd2, 0xd8, 0xd2, 0xe8, 0xf2, 0x36, 0x3c, 0x3e, 0xb2, 0x41, 0xab, 0x98, 0x57, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x86, 0x2a, 0xc2, 0x0e, 0xd6, 0x6b, 0x3d, 0xaf, 0xe1, 0xcf, 0xa5, 0x01, 0xef, 0x2e, 0x0d, 0x3f, 0x58, 0xaf, 0xf5, 0xdc, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x80, 0x67, 0x96, 0xa6, 0x6f, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x6d, 0x90, 0xe0, 0xf6, 0x79, 0x70, 0xd4, 0x06, 0xdd, 0xf0, 0x17, 0xcd, 0x1a, 0x3e, 0x57, 0xda, 0xf0, 0x08, 0xdd, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0x3e, 0x38, 0x6a, 0x83, 0xb6, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0xb2, 0x41, 0x59, 0x58, 0xbc, 0xe1, 0xdd, 0x9e, 0x0d, 0x8a, 0xe2, 0xdf, 0x0d, 0x8a, 0x4a, 0xf1, 0x83, 0x14, 0xd0, 0xcf, 0x0d, 0x1f, 0xe4, 0x6c, 0x90, 0xbe, 0x79, 0xb9, 0x86, 0x5f, 0x5c, 0x36, 0x3c, 0x78, 0x73, 0xb0, 0x76, 0x4f, 0x7d, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xc0, 0xa3, 0xcb, 0x63, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x89, 0x8f, 0xbb, 0x86, 0x5f, 0x5c, 0x36, 0x28, 0x2a, 0xc5, 0x37, 0x48, 0xc9, 0xbd, 0xec, 0x20, 0x05, 0xf4, 0x73, 0xc3, 0x07, 0x39, 0x6b, 0x78, 0x84, 0x75, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x86, 0xad, 0xb4, 0x86, 0xb7, 0x75, 0x36, 0x68, 0x68, 0x15, 0xbc, 0x83, 0x75, 0xbc, 0x6e, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x17, 0xbf, 0x1b, 0xb4, 0x5f, 0x0b, 0x7e, 0xb0, 0xae, 0xd8, 0xad, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0x0a, 0xb8, 0x41, 0xfb, 0xb5, 0xe0, 0x07, 0xe9, 0xda, 0xb1, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x22, 0x13, 0xf7, 0xa0, 0x15, 0x57, 0xf0, 0x36, 0xfc, 0xe2, 0xb2, 0xe1, 0xc1, 0x9b, 0x83, 0x14, 0xd0, 0xcf, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x17, 0x97, 0x35, 0x7c, 0xee, 0xb2, 0x41, 0x43, 0x30, 0x6b, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0xb4, 0x44, 0x09, 0xde, 0x1a, 0xde, 0xd6, 0x39, 0x68, 0xb9, 0x24, 0xac, 0x35, 0x7c, 0xee, 0xb2, 0x41, 0x9b, 0x9b, 0x5f, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x19, 0x66, 0xf0, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x53, 0x90, 0xe0, 0xd5, 0x86, 0x47, 0x58, 0xd7, 0xf0, 0x2b, 0xd9, 0x1a, 0xfe, 0xcd, 0xd9, 0xf0, 0xe0, 0xcd, 0x86, 0xb7, 0x75, 0x06, 0x87, 0x0f, 0x1a, 0x5d, 0x5a, 0x5b, 0xc3, 0xbf, 0x39, 0x1b, 0x1e, 0xbc, 0x39, 0x68, 0x65, 0xf5, 0x6b, 0x0d, 0x8f, 0xb0, 0xae, 0xe1, 0x6d, 0xd6, 0x83, 0xe6, 0xb8, 0xc1, 0xd7, 0xf0, 0x6e, 0xcf, 0x86, 0x2f, 0x7e, 0x37, 0x68, 0x65, 0xf5, 0x6b, 0x83, 0xf6, 0xb3, 0xc1, 0xab, 0x35, 0x7c, 0x85, 0xb3, 0xe1, 0x57, 0xb2, 0x35, 0xfc, 0x9b, 0xb3, 0x41, 0x52, 0x5a, 0xf0, 0x86, 0xb7, 0x75, 0x06, 0x8f, 0x0f, 0x1a, 0x5d, 0x5a, 0x5b, 0xc3, 0xbf, 0x39, 0x1b, 0x24, 0xa5, 0x05, 0x1f, 0x34, 0x2c, 0xfb, 0xb5, 0x86, 0x47, 0x58, 0xd7, 0xf0, 0x6f, 0xce, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xc8, 0xc4, 0xdd, 0xa0, 0xa8, 0x14, 0xdf, 0xa0, 0xfd, 0x74, 0xf0, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x91, 0x89, 0xbb, 0x41, 0x51, 0x29, 0xbe, 0x41, 0xc3, 0xb2, 0x5f, 0xad, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0x41, 0xd3, 0xea, 0xe0, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xc4, 0xc7, 0x3d, 0x68, 0x64, 0x1e, 0x7c, 0x0d, 0xda, 0x9c, 0xfd, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x25, 0x3e, 0xee, 0x41, 0x2b, 0xf7, 0xe0, 0x55, 0xab, 0x41, 0xdb, 0x48, 0xa0, 0x1b, 0x1e, 0x1f, 0xd9, 0xa0, 0x6d, 0x24, 0xd0, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0x9a, 0x36, 0xe6, 0x3a, 0x68, 0x03, 0xfc, 0x6c, 0xc3, 0x27, 0x36, 0x1b, 0xb4, 0xbf, 0xb8, 0xb5, 0xe1, 0x2b, 0x9c, 0x0d, 0x7f, 0xd1, 0x6c, 0xd0, 0xba, 0xf5, 0xf7, 0x06, 0x41, 0x7a, 0xba, 0x41, 0xcb, 0x2e, 0x57, 0x1b, 0x34, 0xe1, 0xfd, 0xbd, 0x06, 0xad, 0x6e, 0x53, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0x6c, 0xd0, 0x64, 0x34, 0xd7, 0x41, 0xa3, 0x3a, 0x57, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x82, 0x22, 0xf3, 0xa0, 0xc1, 0xe8, 0xad, 0x83, 0x82, 0x22, 0x73, 0x0d, 0x1a, 0x05, 0xa7, 0xda, 0xf0, 0x41, 0xce, 0x06, 0x0d, 0x52, 0x84, 0xaf, 0xe1, 0x17, 0x97, 0x0d, 0x0a, 0x8a, 0xcc, 0x83, 0x66, 0xb9, 0xb7, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x0e, 0xce, 0x6c, 0xd0, 0x64, 0x34, 0xd7, 0x41, 0xe3, 0x07, 0x59, 0x1b, 0x14, 0x14, 0x99, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x06, 0xed, 0x7b, 0x6e, 0x1d, 0xb4, 0xd5, 0x91, 0xb5, 0x06, 0x8d, 0xae, 0x53, 0x6d, 0xf8, 0x20, 0x67, 0x83, 0x06, 0x29, 0xc2, 0x37, 0x68, 0xd5, 0x23, 0x7c, 0xc3, 0x07, 0x39, 0x1b, 0xb4, 0x27, 0x12, 0xbe, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x41, 0xfb, 0x9e, 0x5b, 0x07, 0x0d, 0x8d, 0x64, 0x1d, 0x14, 0x14, 0x99, 0x6b, 0x70, 0x4a, 0x5b, 0xda, 0xf0, 0x41, 0xce, 0x06, 0x0d, 0x52, 0x84, 0x6f, 0xd0, 0xaa, 0x47, 0xf8, 0x86, 0x0f, 0x72, 0x36, 0x68, 0x4f, 0x24, 0x7c, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x83, 0x56, 0x7f, 0xb7, 0x0e, 0x1a, 0x1a, 0xc9, 0xda, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0x36, 0x68, 0xd8, 0x76, 0xeb, 0xa0, 0xad, 0x8e, 0xac, 0x0e, 0xa7, 0xd8, 0x1a, 0xa4, 0x85, 0xc4, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xa4, 0x85, 0xc4, 0x36, 0x80, 0x3f, 0xdb, 0xdb, 0x9b, 0x58, 0x59, 0x98, 0x1b, 0x88, 0x5b, 0xd9, 0x59, 0x18, 0x5d, 0xda, 0x9b, 0xdb, 0x86, 0xc7, 0x47, 0x36, 0x48, 0x0b, 0x89, 0xdd, 0xf0, 0x8b, 0xd2, 0x1a, 0xfe, 0x5c, 0xda, 0xa0, 0x89, 0x21, 0xc3, 0x83, 0xb5, 0xef, 0xce, 0x1b, 0xfe, 0xa2, 0xd9, 0x60, 0xed, 0xbb, 0xf3, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x06, 0xed, 0x50, 0xa4, 0x1d, 0x34, 0xf2, 0x64, 0xb8, 0x41, 0x3b, 0x0d, 0x69, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x1b, 0xb4, 0xd3, 0x90, 0x76, 0xd0, 0xc8, 0x93, 0xe1, 0x06, 0xed, 0x50, 0xa4, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0x6c, 0xd0, 0xcc, 0x41, 0xda, 0x41, 0x23, 0x4f, 0x86, 0x1b, 0x34, 0xf2, 0x64, 0xb8, 0xe1, 0x17, 0x97, 0x0d, 0x1a, 0x60, 0xea, 0xd8, 0xa0, 0x91, 0x27, 0xc3, 0x0d, 0xda, 0x69, 0x48, 0x3b, 0x68, 0xa2, 0x22, 0xed, 0x70, 0x8a, 0xad, 0x41, 0x43, 0x33, 0x68, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0x0d, 0xcd, 0xa0, 0x35, 0x00, 0x0f, 0x6d, 0x61, 0x6b, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x1b, 0x1e, 0x1f, 0xd9, 0xa0, 0xa1, 0x19, 0xb4, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0xd9, 0xd5, 0xc9, 0x07, 0x6b, 0xdf, 0x9d, 0xd7, 0xf0, 0xe7, 0xd2, 0x06, 0xab, 0x25, 0xe8, 0x0f, 0xd6, 0xbe, 0x3b, 0xb7, 0xe1, 0x2f, 0x9a, 0x0d, 0xd6, 0xbe, 0x3b, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0xc7, 0x56, 0x09, 0x0c, 0x08, 0x0a, 0x59, 0x9a, 0x1d, 0x08, 0x9c, 0x8b, 0x5d, 0x9d, 0x1c, 0x88, 0x4c, 0x4a, 0xd7, 0x86, 0x0f, 0x72, 0xd6, 0xa0, 0x98, 0xc4, 0x5c, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0xc0, 0x51, 0x3d, 0x38, 0xc4, 0x74, 0x6c, 0xd0, 0x86, 0x62, 0x78, 0x07, 0xc7, 0x98, 0xb3, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0xf2, 0x29, 0xe4, 0x35, 0xbc, 0xad, 0x33, 0x38, 0xbc, 0x41, 0x3b, 0x79, 0xe1, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0x83, 0xb5, 0x12, 0xf4, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xeb, 0x1c, 0xb4, 0x26, 0x19, 0xbe, 0xc1, 0x82, 0x08, 0xfa, 0x0e, 0xa7, 0xd8, 0x1a, 0xb4, 0x5f, 0xff, 0xb5, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xd0, 0x7e, 0xfd, 0x57, 0x03, 0xf0, 0x51, 0x86, 0x47, 0x27, 0x17, 0x36, 0x46, 0x07, 0xb2, 0x05, 0x03, 0xa2, 0xd2, 0x05, 0x12, 0x86, 0x97, 0x36, 0xb7, 0xe1, 0x17, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0xb9, 0xd5, 0x9d, 0x07, 0x6b, 0xdf, 0x9d, 0x37, 0x08, 0xd2, 0xd3, 0x35, 0x68, 0xd7, 0x34, 0xbc, 0x35, 0x68, 0x96, 0xe1, 0x7b, 0xc3, 0xdb, 0x3a, 0x83, 0xc3, 0x07, 0x4d, 0xa7, 0x86, 0xaf, 0x86, 0xcf, 0x95, 0x36, 0x58, 0x25, 0x74, 0x7c, 0x70, 0x88, 0xe9, 0xd8, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0xa0, 0xe9, 0xd4, 0xf0, 0x0d, 0x6f, 0xeb, 0x0c, 0x1e, 0x1f, 0x34, 0x9d, 0x1a, 0xde, 0x1a, 0x84, 0xe9, 0xd8, 0x86, 0xb7, 0xec, 0xd6, 0xf0, 0xc4, 0xdd, 0x86, 0x67, 0xf1, 0x06, 0x1f, 0x07, 0x7f, 0x07, 0xb7, 0x0f, 0x8a, 0x10, 0xe8, 0x83, 0xf0, 0x54, 0x6d, 0x35, 0x68, 0x58, 0xe9, 0x6f, 0xc3, 0xe3, 0x23, 0x1b, 0x34, 0xac, 0xf4, 0xb7, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0x43, 0xe6, 0x97, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x36, 0x66, 0xc0, 0x0f, 0x1a, 0x06, 0xfa, 0x6b, 0x83, 0x03, 0x16, 0xdd, 0x1a, 0x14, 0xa4, 0xb1, 0x6b, 0xf8, 0xbe, 0x7d, 0x83, 0x46, 0x71, 0x9f, 0x37, 0x28, 0xa1, 0x63, 0xd7, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0x11, 0xeb, 0x0f, 0xd6, 0xcf, 0x64, 0x1f, 0x84, 0xe9, 0xd8, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0xa9, 0x24, 0xe1, 0x06, 0xed, 0xf3, 0x80, 0xaf, 0xe1, 0x6d, 0x9d, 0x01, 0xbe, 0x34, 0xb7, 0xb9, 0x32, 0x39, 0xba, 0x36, 0x28, 0x48, 0x63, 0xd7, 0xf0, 0x7d, 0xfb, 0x06, 0x67, 0x48, 0x82, 0x0d, 0x4a, 0xe8, 0xd8, 0x35, 0x08, 0xfd, 0x92, 0x0d, 0x42, 0xca, 0xe4, 0x60, 0xa9, 0xeb, 0xf6, 0x41, 0x98, 0x8e, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x9a, 0x0b, 0x30, 0x5c, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x45, 0x20, 0xa3, 0x1b, 0x94, 0x4d, 0xef, 0x6b, 0x50, 0x96, 0xbc, 0x6f, 0x70, 0x1c, 0xf8, 0xd8, 0xa0, 0x6c, 0xaa, 0x3f, 0x68, 0x11, 0x04, 0xba, 0x0d, 0xdf, 0x28, 0xb6, 0xe1, 0x2b, 0x9c, 0x0d, 0x7f, 0xd1, 0x6c, 0xb0, 0xf6, 0xdd, 0x79, 0x83, 0x12, 0x1e, 0x73, 0x83, 0xe3, 0x5d, 0xc1, 0x1a, 0x7e, 0x71, 0xd9, 0x60, 0x59, 0x00, 0xf0, 0xe1, 0xa1, 0x9f, 0x0d, 0x0a, 0xd2, 0xd8, 0x35, 0x7c, 0xdf, 0x3e, 0xb8, 0xb8, 0x41, 0x09, 0x1d, 0xbb, 0xc1, 0x92, 0x3e, 0xe7, 0x83, 0x30, 0x1d, 0x5b, 0xc3, 0xdb, 0x3a, 0x83, 0xa7, 0x07, 0xc7, 0xbb, 0x82, 0x0d, 0x0a, 0xd2, 0xd8, 0x35, 0x7c, 0xdf, 0x3e, 0xf8, 0xb8, 0x41, 0x09, 0x1d, 0xbb, 0xc1, 0xda, 0x77, 0xe7, 0x83, 0x30, 0x1d, 0x5b, 0xc3, 0xbb, 0x3d, 0x6b, 0x50, 0x96, 0xbc, 0x6f, 0xd0, 0xde, 0x5a, 0xd6, 0x41, 0x23, 0xe5, 0xe1, 0x87, 0xb7, 0xd0, 0x36, 0x28, 0x48, 0x63, 0xd7, 0xf0, 0x7d, 0xfb, 0xe0, 0xe4, 0x41, 0xeb, 0xf9, 0xe1, 0x6b, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0x70, 0xbc, 0x2b, 0xd8, 0xf0, 0xb6, 0xce, 0xe0, 0xf4, 0xc1, 0xf1, 0xae, 0xa0, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0x36, 0xff, 0x77, 0x83, 0x53, 0xc8, 0xd3, 0x41, 0xa9, 0x2e, 0xbb, 0xcc, 0x02, 0x7c, 0x70, 0x61, 0x72, 0x65, 0x6e, 0xf4, 0x86, 0x5f, 0x94, 0x36, 0x68, 0xc8, 0xfc, 0x72, 0xc3, 0x5f, 0x34, 0x1b, 0x2c, 0xe9, 0x73, 0x3e, 0x38, 0x06, 0x38, 0xac, 0x06, 0x4d, 0x50, 0x87, 0x6f, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xcb, 0x0d, 0x9f, 0x2b, 0x6d, 0xd0, 0x50, 0x7b, 0xd8, 0x1a, 0xfe, 0x5c, 0xda, 0x60, 0x61, 0xd3, 0xf0, 0xc1, 0xda, 0x77, 0xe7, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xee, 0x41, 0x23, 0xcc, 0xe1, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0x46, 0x98, 0xc3, 0x37, 0x7c, 0x90, 0xb3, 0x06, 0x05, 0x69, 0xec, 0x1a, 0xbe, 0x6f, 0x1f, 0x3c, 0x3c, 0x68, 0x45, 0x3e, 0x7c, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0x44, 0xd6, 0xd6, 0x41, 0x11, 0x02, 0xbd, 0xe1, 0x2b, 0x9c, 0x0d, 0x7f, 0xd1, 0x6c, 0xf8, 0x60, 0x75, 0xc3, 0x07, 0x39, 0x6b, 0xf8, 0x37, 0x67, 0xc3, 0x63, 0x32, 0x87, 0xa7, 0x75, 0x36, 0x28, 0x60, 0xf3, 0x37, 0x7c, 0x90, 0xb3, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x2c, 0x79, 0xdf, 0xe0, 0x68, 0xad, 0xb1, 0x41, 0xd9, 0x54, 0x7f, 0x90, 0x86, 0x97, 0x7b, 0x78, 0xe8, 0x67, 0x83, 0x22, 0xa7, 0x75, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0xc3, 0x83, 0x3b, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0xb4, 0xe9, 0x20, 0xde, 0xe1, 0xa1, 0x9f, 0x36, 0x28, 0x86, 0x76, 0x37, 0x28, 0xfa, 0x74, 0x37, 0x18, 0x76, 0xbb, 0x6b, 0x50, 0x74, 0x1a, 0x6f, 0xb0, 0x54, 0x92, 0x70, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x16, 0x81, 0x8c, 0x1e, 0xb4, 0x56, 0x23, 0xbe, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0xc3, 0x19, 0xe2, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0x76, 0x83, 0x00, 0x3a, 0x3b, 0x28, 0x86, 0x76, 0xdb, 0xa0, 0xd8, 0xd1, 0x5c, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x80, 0x7f, 0xec, 0xcd, 0x8d, 0x2e, 0x2c, 0xcd, 0x6d, 0x6e, 0x83, 0x86, 0x4f, 0xc4, 0x0f, 0x5a, 0x29, 0xdb, 0xda, 0xe0, 0x10, 0x3a, 0xb1, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x4b, 0xde, 0x37, 0x38, 0x9c, 0x5e, 0x1c, 0x9c, 0x69, 0x45, 0x0e, 0x5a, 0x29, 0xdb, 0xda, 0xa0, 0x20, 0x8d, 0xdd, 0x60, 0xf9, 0xd3, 0xfd, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0xbc, 0x73, 0x69, 0x62, 0x6c, 0x69, 0x6e, 0x67, 0x1b, 0x34, 0x7c, 0x22, 0xde, 0x06, 0x05, 0x69, 0xec, 0xc0, 0xd7, 0xb9, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x0a, 0x37, 0xd1, 0x83, 0xd6, 0x6a, 0xc4, 0x0f, 0xd6, 0x37, 0xdd, 0x6f, 0x50, 0xc2, 0x63, 0x2e, 0xf0, 0x75, 0x6e, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0xca, 0x16, 0xd4, 0x83, 0xd6, 0x6a, 0xc4, 0x37, 0x68, 0xf8, 0x44, 0x7c, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0xb0, 0x69, 0xf8, 0xa0, 0x08, 0x81, 0x6e, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x61, 0xb7, 0xbb, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x4b, 0xde, 0x37, 0x38, 0x9c, 0x5e, 0x1c, 0xb4, 0x56, 0x23, 0x7e, 0xb0, 0xbe, 0xe9, 0x7e, 0x0d, 0x8a, 0x10, 0xe8, 0x0d, 0x0a, 0x43, 0xd5, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x73, 0x3c, 0xe2, 0x07, 0xeb, 0x9b, 0xee, 0x37, 0x7c, 0x90, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0xa3, 0xb8, 0xc1, 0x0a, 0xa7, 0xfb, 0x83, 0x16, 0xc3, 0xc4, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x6d, 0xc9, 0xa0, 0x6d, 0xd0, 0x30, 0x9c, 0xf8, 0x1a, 0xde, 0xd6, 0x19, 0xbc, 0x3e, 0x68, 0x55, 0x4d, 0xbc, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0x96, 0x0c, 0xda, 0x06, 0x2d, 0x21, 0x8a, 0x1f, 0x34, 0x0b, 0x27, 0xde, 0x6a, 0xd0, 0xd6, 0x97, 0xf8, 0x86, 0x5f, 0x94, 0x36, 0x68, 0xc8, 0xfc, 0x72, 0xc3, 0x5f, 0x34, 0x1b, 0x2c, 0xe9, 0x73, 0xde, 0xf0, 0x89, 0xcd, 0x06, 0xa1, 0x79, 0xbc, 0x41, 0x09, 0x8f, 0xb9, 0xe1, 0xcb, 0xc9, 0x35, 0x28, 0x25, 0xc4, 0x37, 0x9e, 0x1f, 0x1c, 0x39, 0x24, 0x37, 0x28, 0x25, 0xc4, 0x37, 0x9e, 0x1f, 0x9e, 0xed, 0x39, 0x9c, 0x62, 0xad, 0x41, 0xc3, 0x50, 0xe2, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x00, 0x8f, 0xb1, 0x37, 0x37, 0xba, 0xb0, 0x34, 0xb7, 0x32, 0xf9, 0x60, 0x49, 0x9f, 0xf3, 0x1a, 0xfe, 0x5c, 0x1a, 0xc0, 0x63, 0xec, 0xcd, 0x8d, 0x2e, 0x2c, 0xcd, 0xad, 0x8c, 0x3c, 0x58, 0xd2, 0xe7, 0xdc, 0x86, 0xbf, 0x68, 0x36, 0x7c, 0xb0, 0xba, 0x41, 0x41, 0x1a, 0xbb, 0x86, 0xef, 0xdb, 0x37, 0x68, 0x45, 0x19, 0x7b, 0x83, 0x12, 0x3a, 0xf6, 0xa0, 0xec, 0xa8, 0x5e, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0xc5, 0xbf, 0x1b, 0x1e, 0xbc, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x34, 0x14, 0x2a, 0x5e, 0x1b, 0x14, 0xa4, 0xb1, 0x6b, 0xf8, 0xbe, 0x7d, 0x80, 0x67, 0xae, 0x2d, 0x8c, 0x8d, 0x3d, 0x68, 0xce, 0x55, 0x7c, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x14, 0xff, 0x6e, 0x78, 0xf0, 0x66, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0x7c, 0xa9, 0x78, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0xe2, 0x77, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0xd0, 0xad, 0x78, 0x07, 0x4d, 0x8b, 0x63, 0x6f, 0x50, 0xc0, 0xe6, 0x6f, 0x50, 0x90, 0xc6, 0xae, 0xe1, 0xfb, 0xf6, 0x0d, 0xca, 0x9c, 0x80, 0x83, 0xe6, 0x5c, 0xc5, 0xd7, 0xf0, 0x6e, 0xcf, 0x86, 0x4f, 0x01, 0x0f, 0x9a, 0x0b, 0x16, 0xdf, 0xf0, 0x6f, 0xce, 0x06, 0xcd, 0xcc, 0x8a, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0x12, 0x1f, 0x77, 0x0d, 0xbf, 0xb8, 0x6c, 0x78, 0xf0, 0x66, 0x83, 0x74, 0x74, 0xa8, 0x0e, 0x9a, 0xe5, 0x15, 0x3f, 0x9c, 0x62, 0x87, 0x53, 0x6c, 0x35, 0x68, 0x0c, 0x25, 0x6d, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xa0, 0x31, 0x94, 0xb4, 0x06, 0xf0, 0xfa, 0xd1, 0x01, 0x01, 0x19, 0x7b, 0x6b, 0x83, 0x4b, 0x63, 0x2b, 0xdb, 0xf0, 0xf8, 0xc8, 0x06, 0x8d, 0xa1, 0xa4, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0x01, 0x0f, 0xae, 0x0c, 0x3f, 0x58, 0xfb, 0xee, 0xbc, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0xbc, 0xb7, 0xf6, 0x60, 0xed, 0xbb, 0xf3, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xee, 0xde, 0xe2, 0x83, 0xb5, 0xef, 0xce, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0xb5, 0xef, 0xce, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x1b, 0xb4, 0x43, 0x91, 0xb6, 0xe1, 0x6d, 0x9d, 0x0d, 0x9a, 0x14, 0x17, 0x6f, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0x68, 0xb9, 0x78, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x1b, 0xb4, 0xd3, 0x90, 0x76, 0xd0, 0xea, 0xbb, 0xf8, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0x59, 0x74, 0xf1, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0x36, 0x68, 0xe6, 0x20, 0xed, 0xa0, 0xd5, 0x77, 0xf1, 0x0d, 0x5a, 0x7d, 0x17, 0xdf, 0xf0, 0x8b, 0xcb, 0x06, 0x0d, 0x30, 0x75, 0x6c, 0xd0, 0xea, 0xbb, 0xf8, 0x06, 0x0d, 0xc7, 0x8b, 0x6f, 0xd0, 0xf2, 0xbd, 0x78, 0xab, 0x41, 0x2b, 0x36, 0x62, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xad, 0xd8, 0x88, 0x35, 0x80, 0x0f, 0xdb, 0xdb, 0x9b, 0x58, 0x59, 0x98, 0x1b, 0x08, 0x08, 0xdf, 0x86, 0xc7, 0x47, 0x36, 0x68, 0xc5, 0x46, 0x6c, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x62, 0x6f, 0xf3, 0xc1, 0xda, 0x77, 0xe7, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0xb9, 0xa5, 0x99, 0x07, 0x6b, 0xdf, 0x9d, 0xdb, 0xf0, 0x17, 0xcd, 0x06, 0x6b, 0xdf, 0x9d, 0x37, 0x7c, 0x90, 0xb3, 0x86, 0x5f, 0xc9, 0xd6, 0xf0, 0x6f, 0xce, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0x95, 0x88, 0xf1, 0x36, 0xbc, 0xad, 0xb3, 0x41, 0x3b, 0x14, 0xe3, 0xad, 0xe1, 0xdf, 0x9c, 0x0d, 0xda, 0xa1, 0x48, 0x3b, 0x68, 0x61, 0x63, 0x7c, 0x0d, 0xff, 0xe6, 0x6c, 0xd0, 0x4e, 0x43, 0xda, 0x41, 0x13, 0x1d, 0xe3, 0x6b, 0xf8, 0x37, 0x67, 0x83, 0x66, 0x0e, 0xd2, 0x0e, 0x5a, 0xd8, 0x18, 0x6f, 0x83, 0x16, 0x36, 0xc6, 0x37, 0x7c, 0x90, 0xb3, 0x86, 0x5f, 0xc9, 0xd6, 0xf0, 0x6f, 0xce, 0x06, 0xed, 0x34, 0xa4, 0x1d, 0xb4, 0xb0, 0x31, 0xbe, 0x86, 0x7f, 0x73, 0x36, 0x68, 0x87, 0x22, 0xed, 0xa0, 0x89, 0x8e, 0xf1, 0x35, 0xfc, 0x9b, 0xb3, 0x41, 0x33, 0x07, 0x69, 0x07, 0x4d, 0x74, 0x8c, 0xb7, 0x41, 0x13, 0x1d, 0xe3, 0x1b, 0x7e, 0x71, 0xd9, 0xa0, 0x01, 0xa6, 0x8e, 0x0d, 0x5a, 0xd8, 0x18, 0xdf, 0xa0, 0x1d, 0x8a, 0xb4, 0x0d, 0x9a, 0xe8, 0x18, 0xef, 0x70, 0x8a, 0x55, 0x6b, 0x28, 0xa6, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x07, 0x0b, 0x20, 0xb9, 0x37, 0xfc, 0x45, 0xb3, 0xc1, 0xb2, 0x19, 0xe7, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x0d, 0xda, 0xfa, 0xbe, 0x38, 0x38, 0x1d, 0x89, 0x6c, 0xd0, 0xd6, 0xf7, 0xc5, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x06, 0x4b, 0xec, 0xb7, 0x0f, 0x4e, 0x47, 0x22, 0x1b, 0x2c, 0xb1, 0xdf, 0xde, 0xf0, 0x8b, 0xcb, 0x06, 0x0d, 0x01, 0x72, 0x1c, 0xac, 0x5f, 0xc4, 0x5b, 0x0d, 0x13, 0xb7, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x98, 0xb8, 0x06, 0xf0, 0x6e, 0x0b, 0x5b, 0x2b, 0x03, 0x29, 0x19, 0x2b, 0x63, 0x63, 0x03, 0xa1, 0xcb, 0x83, 0x2b, 0xdb, 0xf0, 0xf8, 0xc8, 0x86, 0x89, 0xdb, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0xac, 0xe4, 0x25, 0x3d, 0x58, 0x36, 0xe3, 0xbc, 0x86, 0x3f, 0x97, 0x36, 0x68, 0x4a, 0x69, 0xeb, 0x60, 0xd9, 0x8c, 0x73, 0x1b, 0xfe, 0xa2, 0xd9, 0x60, 0xd9, 0x8c, 0xf3, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x06, 0x6d, 0x7d, 0x5f, 0x1c, 0x2c, 0x7c, 0x27, 0xdd, 0xa0, 0xad, 0xef, 0x8b, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x0d, 0xda, 0xfa, 0xbe, 0x38, 0x68, 0x62, 0x6c, 0x6b, 0x83, 0xb6, 0xbe, 0x2f, 0x36, 0xfc, 0xe2, 0xb2, 0x41, 0x2b, 0x92, 0x15, 0x07, 0xcd, 0xd2, 0x6a, 0x1f, 0x4e, 0xb1, 0x35, 0x68, 0x95, 0x42, 0x6c, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xa0, 0x55, 0x0a, 0xb1, 0x06, 0xd0, 0x61, 0x7b, 0x7b, 0x13, 0x2b, 0x0b, 0x73, 0x03, 0x01, 0x31, 0x6d, 0x78, 0x7c, 0x64, 0x83, 0x56, 0x29, 0xc4, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0x5b, 0x0f, 0xe3, 0x1b, 0xfe, 0xa2, 0xd9, 0x60, 0xed, 0xbb, 0xf3, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x2b, 0xd9, 0x06, 0x8d, 0x68, 0x8c, 0x6f, 0xd0, 0xd8, 0xca, 0xf8, 0x06, 0xed, 0xb9, 0x8c, 0x1f, 0xb4, 0x54, 0x32, 0xbe, 0x41, 0x0b, 0x1b, 0xe3, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xaf, 0x64, 0x1b, 0xb4, 0xf2, 0x31, 0xbe, 0x41, 0x43, 0x22, 0xe3, 0x07, 0x0d, 0xc6, 0x8c, 0x6f, 0xd0, 0x44, 0xc7, 0xf8, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0x80, 0xa9, 0x63, 0x83, 0x16, 0x36, 0xc6, 0x37, 0x68, 0xa2, 0x63, 0x7c, 0x83, 0x76, 0x1a, 0xd2, 0x3a, 0x9c, 0x62, 0xb3, 0x06, 0x47, 0x9b, 0xcf, 0x65, 0x00, 0x5e, 0x6b, 0xca, 0x74, 0x40, 0xda, 0xde, 0xd8, 0xc8, 0xe6, 0x40, 0xc2, 0xdc, 0xc8, 0x40, 0xda, 0xde, 0xd8, 0xc8, 0x40, 0xc4, 0xea, 0xd2, 0xd8, 0xc8, 0xca, 0xe4, 0xe6, 0xd6, 0x60, 0x15, 0x7a, 0xd4, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x2a, 0xf4, 0xa8, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x3c, 0xb1, 0x9a, 0x98, 0x40, 0xdc, 0xde, 0xc8, 0xca, 0x40, 0xd8, 0xd2, 0xe6, 0xe8, 0x36, 0x08, 0xfd, 0x92, 0x0d, 0x42, 0xca, 0x64, 0x83, 0x85, 0x0f, 0xdb, 0xad, 0x80, 0x0f, 0x17, 0x36, 0x37, 0x6f, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xb4, 0x70, 0x3a, 0xbe, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x0f, 0x5c, 0x9d, 0x18, 0x5b, 0xda, 0x18, 0xc8, 0x5a, 0x59, 0xde, 0xe1, 0x87, 0x9a, 0xd5, 0xa0, 0x31, 0x05, 0xaa, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0xc6, 0x14, 0xa8, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x68, 0x4b, 0x6b, 0x2b, 0x03, 0xa1, 0xcb, 0x83, 0x2b, 0x3b, 0x68, 0x08, 0x4a, 0xf0, 0x70, 0x8a, 0x6d, 0xb0, 0x8a, 0x54, 0x7b, 0x0d, 0xd6, 0xd6, 0x69, 0xcf, 0x02, 0x3e, 0x5d, 0x5a, 0x5b, 0xb9, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xd0, 0x66, 0xef, 0xf8, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x9e, 0x67, 0x61, 0x6c, 0x61, 0x63, 0x74, 0x69, 0x63, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x07, 0x47, 0xbe, 0xd6, 0xc3, 0x29, 0x76, 0xb0, 0x30, 0x58, 0x7b, 0x0d, 0x56, 0x37, 0xaf, 0x6f, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xac, 0x6e, 0x5e, 0xdf, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0x8f, 0x3a, 0x39, 0xb1, 0x34, 0xba, 0x17, 0x32, 0xb7, 0x39, 0x90, 0x34, 0xb2, 0x32, 0x37, 0xba, 0x34, 0xba, 0xbc, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0x55, 0x90, 0xc9, 0x6b, 0xf8, 0x77, 0x7e, 0x01, 0x7f, 0x0e, 0x2d, 0x0d, 0xae, 0x0d, 0x1a, 0x82, 0x12, 0x6c, 0x35, 0x68, 0xfa, 0x7a, 0x7c, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xa0, 0xe9, 0xeb, 0xf1, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xfc, 0xdd, 0xca, 0xe8, 0xee, 0xde, 0xe4, 0xd6, 0x40, 0xd2, 0xc8, 0xca, 0xdc, 0xe8, 0xd2, 0xe8, 0xf2, 0x0e, 0x8e, 0xad, 0xae, 0x2b, 0xe0, 0xcf, 0xc1, 0xd5, 0xc9, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0xed, 0x97, 0x8f, 0x6f, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0xcb, 0x1c, 0x5a, 0x1a, 0x1c, 0x08, 0x59, 0xd9, 0xdc, 0x1a, 0xc8, 0x58, 0xd8, 0x5c, 0x19, 0xc8, 0x1c, 0x5c, 0x9d, 0xdc, 0xc1, 0x19, 0x09, 0xf5, 0x70, 0x8a, 0xb5, 0x80, 0xdf, 0x16, 0x26, 0x37, 0x6f, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xb4, 0x30, 0x3f, 0xbe, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x07, 0x56, 0x13, 0x13, 0xc8, 0x18, 0x59, 0x18, 0x5d, 0xd8, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xf4, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xee, 0x41, 0xca, 0x60, 0xf0, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0xdc, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0xdd, 0xf0, 0xb9, 0xd2, 0x06, 0x8d, 0xfb, 0x8f, 0xaf, 0xe1, 0xcf, 0xa5, 0xc1, 0xed, 0x83, 0x93, 0x9e, 0x68, 0x6b, 0xf8, 0x73, 0x69, 0x70, 0xfa, 0x20, 0x04, 0x1f, 0x6a, 0x0d, 0x7f, 0x2e, 0x0d, 0x3e, 0x1e, 0x84, 0xe0, 0x43, 0xb3, 0x06, 0xcb, 0x3f, 0xb5, 0x37, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x96, 0x7f, 0x6a, 0x6f, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x8b, 0xd5, 0xc4, 0x04, 0x12, 0x46, 0x47, 0x27, 0x97, 0x26, 0x56, 0x47, 0x57, 0x36, 0xb7, 0x41, 0xe8, 0x97, 0x6c, 0x10, 0x52, 0x26, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0xa5, 0x93, 0xda, 0x07, 0x6d, 0x1b, 0x90, 0x37, 0x0b, 0xf8, 0x72, 0x69, 0x6e, 0xe7, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0x41, 0x2b, 0x1d, 0xe4, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0xc1, 0xc9, 0xa5, 0xd9, 0x85, 0xd1, 0x95, 0x81, 0xac, 0x95, 0xe5, 0x1d, 0x7e, 0xa8, 0x39, 0x9c, 0x62, 0x87, 0x53, 0x6c, 0xc3, 0x89, 0xb0, 0x41, 0xbb, 0xb6, 0x51, 0x6b, 0x38, 0x47, 0x0e, 0x5a, 0x6e, 0x6a, 0x3a, 0x68, 0x29, 0x46, 0x70, 0xc3, 0x89, 0xb0, 0x41, 0xb3, 0xb4, 0x51, 0x1b, 0x2c, 0x66, 0x83, 0x5a, 0x66, 0xd9, 0xf0, 0x89, 0xcd, 0x1a, 0x9e, 0x27, 0x59, 0x83, 0x85, 0xca, 0x54, 0x07, 0x2d, 0x52, 0x09, 0x6e, 0xf8, 0x20, 0x67, 0x83, 0x26, 0x64, 0x21, 0xd6, 0xf0, 0x41, 0xce, 0x1a, 0x2c, 0x80, 0x3e, 0x5a, 0xc3, 0x83, 0x92, 0x1b, 0x87, 0x36, 0x68, 0xf4, 0xa5, 0xf0, 0xa0, 0xad, 0x93, 0x82, 0x83, 0x73, 0xbd, 0xc1, 0x6a, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0xd1, 0xdc, 0xf0, 0xc6, 0xdd, 0x1c, 0xb4, 0x2a, 0xd5, 0x74, 0xd0, 0xe8, 0x4b, 0xe1, 0x41, 0x2b, 0x39, 0x05, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x05, 0xd0, 0x47, 0x6b, 0x78, 0x50, 0x72, 0xe3, 0xd0, 0x06, 0x2d, 0x75, 0x70, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xe1, 0x0d, 0x4a, 0x09, 0xf1, 0x0d, 0x56, 0x90, 0xe9, 0x6f, 0x78, 0x50, 0x72, 0x83, 0xe5, 0xc7, 0xdb, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0xa4, 0x4c, 0xd6, 0xf0, 0x51, 0xfb, 0xc1, 0x51, 0x1b, 0xb4, 0x0d, 0x9f, 0xbb, 0x0c, 0x1e, 0x6f, 0x50, 0x4a, 0x88, 0x6f, 0xb0, 0x82, 0x4c, 0x7f, 0xc3, 0x83, 0x92, 0x1b, 0x2c, 0x3f, 0xde, 0xde, 0xf0, 0xb6, 0xce, 0x41, 0x8b, 0x54, 0x82, 0x07, 0xe7, 0x7a, 0x83, 0x35, 0x68, 0x52, 0x85, 0x63, 0x0d, 0x9f, 0xbb, 0x0c, 0x0e, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0x4a, 0x09, 0xf1, 0x0d, 0x56, 0x90, 0xe9, 0x1f, 0xb4, 0xe0, 0x44, 0x7e, 0xd0, 0x1a, 0x0f, 0xc1, 0x86, 0xcf, 0x5d, 0x06, 0x8f, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xa5, 0x84, 0xf8, 0x06, 0x2b, 0xc8, 0xf4, 0x0f, 0x1a, 0xb9, 0x22, 0x3f, 0x68, 0x51, 0x88, 0x60, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x00, 0xfa, 0x68, 0x0d, 0x0f, 0x4a, 0x6e, 0x1c, 0xda, 0xa0, 0x51, 0x20, 0x8e, 0x0d, 0xda, 0x3a, 0x29, 0x38, 0x68, 0x38, 0x8a, 0xfc, 0xe0, 0x5c, 0x6f, 0xb0, 0x06, 0xed, 0x1e, 0x71, 0x6c, 0xd0, 0xea, 0x5b, 0xc1, 0x41, 0xbb, 0x61, 0xe4, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x05, 0xd0, 0x47, 0x6b, 0x78, 0x50, 0x72, 0xe3, 0xd0, 0x06, 0x0d, 0x0c, 0x0d, 0x1e, 0x34, 0xcc, 0x46, 0x7e, 0x70, 0xae, 0x37, 0x58, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x21, 0x9a, 0x1b, 0xde, 0xb8, 0x3b, 0x68, 0x4b, 0x7f, 0xfa, 0xa0, 0x81, 0xa1, 0xc1, 0x83, 0x36, 0xe2, 0xc8, 0x37, 0x7c, 0x90, 0xb3, 0x06, 0x0b, 0xa0, 0x8f, 0xd6, 0xf0, 0xa0, 0xe4, 0xc6, 0xa1, 0x0d, 0x1a, 0xf6, 0x17, 0x3c, 0x68, 0xd3, 0x26, 0xe2, 0xe0, 0x5c, 0x6f, 0xb0, 0x1a, 0x14, 0x7c, 0x98, 0x6b, 0xf8, 0x37, 0x67, 0x43, 0x34, 0x37, 0xbc, 0x71, 0x37, 0x07, 0x6d, 0xf3, 0x35, 0x1d, 0x34, 0xec, 0x2f, 0xb8, 0x41, 0xab, 0x6f, 0x05, 0x07, 0xcd, 0x0b, 0x45, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0x16, 0x40, 0x1f, 0xad, 0xe1, 0x41, 0xc9, 0x8d, 0x43, 0x1b, 0x34, 0xd8, 0x3b, 0xb1, 0xe1, 0x73, 0x97, 0xc1, 0xe1, 0x0d, 0x4a, 0x09, 0xf1, 0x0d, 0x56, 0x90, 0xe9, 0x6f, 0x78, 0x50, 0x72, 0x83, 0xe5, 0xc7, 0xdb, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0xa4, 0x4c, 0xd6, 0xf0, 0x51, 0xfb, 0x41, 0xa3, 0x53, 0x82, 0x1d, 0x9c, 0xeb, 0x0d, 0xd6, 0xa0, 0xbd, 0xe1, 0x89, 0x0d, 0x9f, 0xbb, 0x0c, 0x0e, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0x4a, 0x09, 0xf1, 0x0d, 0x56, 0x90, 0xe9, 0x1f, 0xb4, 0x90, 0x49, 0x7e, 0x70, 0x00, 0x4d, 0xda, 0xf0, 0x41, 0xce, 0x1a, 0x2c, 0x80, 0x3e, 0x5a, 0xc3, 0x83, 0x92, 0x1b, 0x87, 0x36, 0x68, 0x35, 0xa9, 0xf0, 0xa0, 0xd5, 0x49, 0xf2, 0x83, 0x73, 0xbd, 0xc1, 0x6a, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0xd1, 0xdc, 0xf0, 0xc6, 0xdd, 0x1c, 0xb4, 0xed, 0xd8, 0x74, 0xd0, 0x6a, 0x52, 0xe1, 0x41, 0x03, 0x9f, 0xe4, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x05, 0xd0, 0x47, 0x6b, 0x78, 0x50, 0x72, 0xe3, 0xd0, 0x06, 0xed, 0xea, 0x18, 0x1e, 0xb4, 0x5e, 0xb9, 0x70, 0x70, 0xae, 0x37, 0x58, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x21, 0x9a, 0x1b, 0xde, 0xb8, 0x9b, 0x83, 0x06, 0x2e, 0x9b, 0x0e, 0xda, 0xd5, 0x31, 0xdc, 0xf0, 0xb9, 0xcb, 0xe0, 0xf0, 0x41, 0x63, 0x5e, 0x16, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x05, 0xd0, 0x47, 0x6b, 0x78, 0x50, 0x72, 0xe3, 0xd0, 0x06, 0x0d, 0xa1, 0x0d, 0x1e, 0x34, 0xcc, 0x46, 0x7e, 0x70, 0xae, 0x37, 0x58, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x21, 0x9a, 0x1b, 0xde, 0xb8, 0x9b, 0x83, 0xd0, 0x6a, 0x3b, 0x68, 0x08, 0x6d, 0xf0, 0xa0, 0x8d, 0x38, 0xf2, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0x83, 0x26, 0xc9, 0x05, 0x0f, 0x1a, 0x66, 0x23, 0x3f, 0x38, 0xd7, 0x1b, 0xac, 0x06, 0x05, 0x1f, 0xe6, 0x1a, 0xfe, 0xcd, 0xd9, 0x10, 0xcd, 0x0d, 0x6f, 0xdc, 0xcd, 0x41, 0x70, 0x20, 0x1c, 0x34, 0x49, 0x2e, 0x78, 0xd0, 0x46, 0x1c, 0xf9, 0x06, 0x4d, 0x67, 0x47, 0x6c, 0xd0, 0xa8, 0xc3, 0xc4, 0x41, 0xbb, 0x61, 0xe4, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x05, 0xd0, 0x47, 0x1b, 0x2c, 0xb1, 0xdf, 0x3e, 0x38, 0xc6, 0x9c, 0x6d, 0xd0, 0xa2, 0xea, 0xc5, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x01, 0xf4, 0xd1, 0x06, 0x0d, 0x93, 0x0a, 0x1e, 0x1c, 0x63, 0xce, 0xd6, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0x52, 0x07, 0x1b, 0xde, 0xb8, 0x9b, 0x83, 0x83, 0xe9, 0xe7, 0x41, 0xc3, 0xa4, 0x82, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x05, 0xd0, 0x47, 0x1b, 0x34, 0xef, 0x51, 0x78, 0x70, 0x8c, 0x39, 0x5b, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x48, 0x1d, 0x6c, 0x78, 0xe3, 0x6e, 0x0e, 0x4e, 0x3e, 0xa8, 0x07, 0xcd, 0x7b, 0x14, 0x6e, 0xf8, 0x20, 0x67, 0x0d, 0x16, 0x40, 0x1f, 0x6d, 0xd0, 0xd6, 0xf7, 0xc5, 0xc1, 0x31, 0xe6, 0x6c, 0x83, 0x66, 0xb5, 0x2f, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0x0b, 0xa0, 0x8f, 0x36, 0x68, 0xb3, 0x55, 0xf0, 0xe0, 0x18, 0x73, 0xb6, 0x06, 0x05, 0x1f, 0xe6, 0x1a, 0xfe, 0xcd, 0xd9, 0x90, 0x3a, 0xd8, 0xf0, 0xc6, 0xdd, 0x1c, 0x9c, 0xb6, 0x50, 0x0f, 0xda, 0x6c, 0x15, 0xdc, 0xf0, 0x41, 0xce, 0x1a, 0x2c, 0x80, 0x3e, 0xda, 0xa0, 0x61, 0x5e, 0xc1, 0x83, 0x63, 0xcc, 0xd9, 0x1a, 0x14, 0x7c, 0x98, 0x6b, 0xf8, 0x37, 0x67, 0x43, 0xea, 0x60, 0xc3, 0x1b, 0x77, 0x73, 0xd0, 0x68, 0x74, 0xd3, 0x41, 0xc3, 0xbc, 0x82, 0x1b, 0x14, 0x7c, 0x98, 0x6b, 0xf8, 0x37, 0x67, 0x43, 0xea, 0x60, 0xc3, 0x1b, 0x77, 0x07, 0x8d, 0x78, 0x37, 0x1d, 0x34, 0x6c, 0x2b, 0x78, 0xb0, 0x92, 0x4e, 0xff, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x83, 0xe6, 0x64, 0xc8, 0x37, 0x58, 0xd0, 0x30, 0xb5, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x96, 0x1d, 0xca, 0x67, 0x0d, 0x75, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x8d, 0x78, 0x37, 0xad, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x46, 0xd8, 0xc9, 0x0f, 0xa7, 0xd8, 0x1a, 0xea, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x9a, 0xf1, 0xbe, 0x58, 0x0d, 0x75, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0xed, 0x13, 0x94, 0xaf, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x65, 0x9e, 0xfd, 0xab, 0xa1, 0x8e, 0x6f, 0x78, 0xf9, 0xee, 0xa0, 0xf9, 0x7a, 0xf2, 0xc3, 0x29, 0x56, 0xcd, 0x1a, 0xea, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x1a, 0x5d, 0x26, 0x3f, 0x9c, 0x62, 0x6b, 0xa8, 0xe3, 0x1b, 0x5e, 0xbe, 0x3b, 0x68, 0x55, 0x91, 0x7c, 0xd6, 0x50, 0xc7, 0x37, 0xbc, 0x7c, 0x77, 0xd0, 0xc6, 0x12, 0xc7, 0x6a, 0xa8, 0xe3, 0x1b, 0x5e, 0xbe, 0x3b, 0x68, 0xdb, 0x78, 0xe2, 0x70, 0x8a, 0xad, 0xa1, 0x8e, 0x6f, 0x78, 0xf9, 0xee, 0xa0, 0x5d, 0x20, 0xf2, 0x59, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0x7b, 0xaf, 0xe4, 0xab, 0xa1, 0x8e, 0x6f, 0x78, 0xf9, 0xee, 0xa0, 0x6d, 0x6c, 0xf2, 0x59, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0xe3, 0xbc, 0xe4, 0xab, 0xa1, 0x8e, 0x6f, 0x78, 0xf9, 0xee, 0xa0, 0x2d, 0xfd, 0xe9, 0xc3, 0x29, 0x56, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x7e, 0xc1, 0xe1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf6, 0x16, 0x0e, 0xc7, 0x83, 0x66, 0x55, 0xa3, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6d, 0x4b, 0x1c, 0x0e, 0xbb, 0x41, 0x59, 0x77, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0xd5, 0x8c, 0xc3, 0x83, 0xa1, 0xd9, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xeb, 0xe3, 0xf0, 0xd0, 0x50, 0xe7, 0x38, 0x74, 0x1c, 0x3a, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1a, 0x34, 0x39, 0x1c, 0x64, 0x6b, 0xc8, 0x63, 0x2f, 0x0e, 0x82, 0x0d, 0x5a, 0xff, 0x8c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0x04, 0x0a, 0xd4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x8b, 0x1b, 0x26, 0x6e, 0x0d, 0x75, 0x7c, 0xc3, 0xcb, 0x77, 0x73, 0xd0, 0xa4, 0xcd, 0xe1, 0x61, 0x3a, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x81, 0xe5, 0x70, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x83, 0x31, 0x87, 0xe3, 0x41, 0x93, 0x36, 0x87, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x36, 0x72, 0x0e, 0x0f, 0xe3, 0x72, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2d, 0xff, 0x1c, 0x0e, 0xb2, 0x35, 0xe4, 0xb1, 0x17, 0x07, 0xc1, 0x06, 0xad, 0x7f, 0x46, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0x02, 0x05, 0x6a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0xc5, 0x0d, 0x13, 0xb7, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x39, 0x18, 0x0a, 0x8b, 0x1b, 0xea, 0xc8, 0x1a, 0x66, 0x68, 0x83, 0x66, 0x69, 0xa3, 0x36, 0x9c, 0x08, 0x1b, 0x34, 0x4b, 0x1b, 0xb5, 0xc1, 0x62, 0x36, 0xa8, 0x65, 0x96, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x79, 0x92, 0x35, 0x58, 0xa8, 0x4c, 0x75, 0xd0, 0xba, 0xa5, 0xe0, 0x1a, 0x3e, 0x77, 0x19, 0x1c, 0xde, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x12, 0xe2, 0x1b, 0xac, 0x20, 0xd3, 0xdf, 0xf0, 0x6e, 0xcf, 0x06, 0x25, 0x62, 0xfd, 0x1a, 0x3e, 0x6a, 0x3f, 0x28, 0xb3, 0x74, 0x0f, 0x9a, 0xd6, 0x24, 0x3f, 0x38, 0xd7, 0x1b, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0xa6, 0x25, 0xcb, 0x37, 0x7c, 0xee, 0x32, 0x78, 0xbc, 0xe1, 0xdd, 0x9e, 0x0d, 0xda, 0x1f, 0x23, 0x3f, 0x38, 0x80, 0x26, 0x1d, 0xac, 0xa4, 0xd3, 0x3f, 0x9c, 0x62, 0x87, 0x53, 0xec, 0xa0, 0x81, 0xc8, 0xf2, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9a, 0x2a, 0x3a, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xb2, 0xd2, 0xe1, 0x78, 0x30, 0x14, 0x16, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xed, 0x47, 0x1d, 0x1e, 0xa2, 0x79, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4d, 0x5e, 0x1d, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2d, 0x74, 0x1d, 0x0e, 0x92, 0x81, 0xf3, 0xee, 0x60, 0x18, 0xfa, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x51, 0xec, 0x70, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xff, 0xec, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xa0, 0xdb, 0xe1, 0xf0, 0x0b, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xed, 0xcf, 0x1d, 0x1e, 0x2c, 0xbc, 0xf7, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2d, 0xe6, 0x1d, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xe1, 0xef, 0x70, 0x10, 0x2c, 0x48, 0x06, 0x84, 0xef, 0xce, 0xc1, 0x30, 0xf4, 0x39, 0x58, 0x05, 0x90, 0x35, 0xc8, 0x36, 0x68, 0x31, 0xba, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x28, 0xe1, 0xe1, 0x61, 0x5c, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc7, 0xa1, 0xe3, 0xdb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x1d, 0xc5, 0xc3, 0x41, 0xb0, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xee, 0xf1, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x64, 0xe9, 0xe1, 0xb0, 0x0b, 0xb7, 0xc1, 0x42, 0x13, 0xa3, 0x83, 0x91, 0x65, 0xb5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0xd9, 0xd8, 0xc3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x18, 0xf7, 0x70, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0d, 0xf9, 0x1e, 0x1e, 0xac, 0x0f, 0x12, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x98, 0xf2, 0xe1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb6, 0x9f, 0x0f, 0x0f, 0xda, 0x93, 0x6a, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0x58, 0x7d, 0x78, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x99, 0xed, 0xc3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xed, 0x82, 0x1f, 0x1e, 0xb4, 0xea, 0xd8, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xcb, 0xfc, 0x70, 0x10, 0x2c, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5a, 0x5d, 0x3f, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x1e, 0x80, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0xa1, 0x03, 0xc4, 0x83, 0x85, 0x26, 0x46, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc6, 0x19, 0x10, 0x87, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x9a, 0x04, 0xe2, 0x41, 0x63, 0x22, 0x28, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xda, 0xf8, 0x40, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x28, 0x09, 0xe2, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x66, 0x54, 0x10, 0x0f, 0xda, 0x93, 0x6a, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0xff, 0x82, 0x78, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0xe1, 0x1a, 0xc4, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xad, 0xed, 0x20, 0x0e, 0x92, 0x21, 0x83, 0x68, 0xc1, 0xfb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xb3, 0x42, 0x88, 0x07, 0xc1, 0xc3, 0x7d, 0x3c, 0x3e, 0xbe, 0x1d, 0x8f, 0x87, 0x5d, 0xb8, 0x0d, 0x9a, 0xc8, 0x6d, 0x3a, 0x18, 0x59, 0x56, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5a, 0x79, 0x42, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x2e, 0x15, 0xe2, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x66, 0xb4, 0x10, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0xfa, 0x85, 0x78, 0x50, 0xee, 0x03, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xaa, 0x0c, 0x71, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xcb, 0x6a, 0x88, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1a, 0x82, 0x43, 0x3c, 0x48, 0xd1, 0x64, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x5e, 0x87, 0x78, 0x88, 0xe1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x06, 0xf7, 0x10, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x10, 0x88, 0x78, 0x90, 0xa2, 0xc9, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xd6, 0x10, 0xf1, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x5b, 0x8c, 0x88, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9a, 0x8f, 0x44, 0x1c, 0x04, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x56, 0x2e, 0x11, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0d, 0xb5, 0x22, 0x0e, 0xbb, 0xc1, 0x38, 0x64, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xf4, 0x2c, 0xe2, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb6, 0x72, 0x11, 0x87, 0x5d, 0xd8, 0x0d, 0x5a, 0xd9, 0x09, 0x38, 0xac, 0x6f, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xfd, 0x17, 0xf1, 0x70, 0x8a, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1a, 0x2b, 0x46, 0x1c, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xd3, 0xca, 0x88, 0xc3, 0x2e, 0xf4, 0x20, 0xe4, 0xb3, 0x0f, 0xeb, 0x9b, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xda, 0xba, 0x46, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x28, 0x37, 0xe2, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x36, 0xc4, 0x11, 0x0f, 0xb9, 0xef, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x7b, 0xe7, 0x88, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xf3, 0xec, 0x88, 0x83, 0x64, 0x60, 0x94, 0x0e, 0x4e, 0x42, 0xc7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x51, 0x1e, 0xf1, 0xd0, 0x9f, 0x7c, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x46, 0xf0, 0x11, 0x0f, 0x42, 0x3e, 0xfb, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xda, 0x1f, 0x71, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xde, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9a, 0x30, 0x48, 0x3c, 0x08, 0x1e, 0xee, 0xe3, 0xf1, 0xe1, 0x14, 0x3b, 0xbe, 0x0d, 0xbb, 0x70, 0x1b, 0x34, 0x00, 0xdc, 0x74, 0x30, 0xb2, 0xac, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x1a, 0x91, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0x70, 0x91, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xb2, 0x23, 0x71, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xc4, 0x48, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x24, 0x4a, 0xe2, 0x20, 0x19, 0x8c, 0x0e, 0x82, 0x9c, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x43, 0x2f, 0x89, 0x83, 0x64, 0xb0, 0x3a, 0x08, 0x72, 0xfe, 0xe3, 0xd0, 0xf1, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x7c, 0x4d, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xce, 0x4e, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0xe1, 0xa0, 0xc4, 0x41, 0xb4, 0x40, 0xf8, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0d, 0x25, 0x25, 0x1e, 0x12, 0x33, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xfb, 0x4e, 0x89, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x43, 0x54, 0x89, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa6, 0xb5, 0x12, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe6, 0xc0, 0x12, 0x07, 0xc9, 0x80, 0xe0, 0xef, 0x3b, 0x38, 0x66, 0x15, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xc0, 0x2c, 0x71, 0xc8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x96, 0xd7, 0x12, 0x8f, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd6, 0xe4, 0x12, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x7f, 0x97, 0x78, 0x70, 0x6e, 0x29, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x6a, 0x5f, 0xe2, 0xa1, 0x95, 0xf8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x86, 0x06, 0x13, 0x0f, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x90, 0x98, 0x78, 0x38, 0xda, 0x8f, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x06, 0x1d, 0x13, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0x40, 0x99, 0x78, 0x88, 0xe1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x26, 0x33, 0x13, 0x0f, 0x0a, 0xa9, 0xbf, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xed, 0x7c, 0x26, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x96, 0x34, 0xf1, 0x10, 0xc3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xed, 0xa8, 0x26, 0x1e, 0x62, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0xe1, 0xd7, 0xc4, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2d, 0xd5, 0x26, 0x1e, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x5c, 0x37, 0x71, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x2b, 0xc0, 0x89, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1a, 0x2d, 0x4e, 0x3c, 0xe4, 0xbe, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0xb0, 0x9c, 0x78, 0xb0, 0xb0, 0x1e, 0x67, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xab, 0xd0, 0x89, 0x07, 0x25, 0x50, 0xe4, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc6, 0xac, 0x13, 0x0f, 0x52, 0x34, 0x99, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4d, 0x70, 0x27, 0x1e, 0x62, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0xdd, 0xf0, 0xc4, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x39, 0xf4, 0xc4, 0x43, 0x0c, 0x87, 0x5d, 0xb8, 0x0d, 0x1a, 0x54, 0x6e, 0x3a, 0x18, 0x59, 0x56, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9a, 0x9e, 0x4f, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x58, 0x7e, 0xe2, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb6, 0xfd, 0x13, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x45, 0xa0, 0x78, 0x50, 0xee, 0x03, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x3f, 0x41, 0x71, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x7b, 0x0f, 0x8a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9a, 0xa7, 0x50, 0x3c, 0x48, 0x28, 0x3b, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0xa9, 0xa1, 0x78, 0x88, 0xe1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x66, 0x40, 0x14, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x5b, 0xa2, 0x78, 0x90, 0x7e, 0x6a, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0xb1, 0x15, 0xc5, 0x83, 0xb4, 0xea, 0xe8, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x13, 0x31, 0x8a, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xda, 0xb5, 0x51, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x10, 0x8f, 0xe2, 0x41, 0x5a, 0x75, 0xf4, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf6, 0x83, 0x14, 0x0f, 0x12, 0x95, 0x9e, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xed, 0x1e, 0x29, 0x1e, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xae, 0x49, 0x71, 0x10, 0x2c, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5a, 0x95, 0x52, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x8c, 0xa6, 0x38, 0xec, 0x06, 0xe3, 0x90, 0x69, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x53, 0x6f, 0x8a, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xda, 0xa6, 0x53, 0x1c, 0x76, 0x83, 0x66, 0xe3, 0xcc, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0xb6, 0xa7, 0x78, 0x38, 0xc5, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8d, 0x03, 0x2a, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xc5, 0x50, 0x71, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xab, 0x8b, 0x8a, 0x87, 0xdc, 0xf7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x85, 0x48, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x45, 0x4b, 0xc5, 0x83, 0x15, 0x0c, 0x11, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xda, 0xe1, 0x54, 0x1c, 0x04, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1a, 0x10, 0x55, 0x1c, 0x04, 0x0b, 0x92, 0x01, 0xe1, 0xbb, 0x73, 0x70, 0x12, 0x3a, 0x3e, 0x18, 0xc7, 0x21, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8d, 0x9d, 0x2a, 0x1e, 0x84, 0x7c, 0xf6, 0x71, 0xe8, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xa7, 0x55, 0x71, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xde, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1a, 0xa4, 0x55, 0x3c, 0x08, 0x1e, 0xee, 0xe3, 0xf1, 0xf1, 0x6d, 0xd8, 0x85, 0xdb, 0xa0, 0xb9, 0xe8, 0xa6, 0x83, 0x91, 0x65, 0xb5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x09, 0x60, 0xc5, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8d, 0x16, 0x2b, 0x1e, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x63, 0x59, 0x71, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x93, 0xd0, 0x8a, 0x07, 0xe5, 0x3e, 0xe0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x76, 0xac, 0x15, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0xbb, 0xad, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x99, 0x70, 0xc5, 0x83, 0x84, 0xb2, 0x93, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xd3, 0xe6, 0x8a, 0x87, 0x18, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x8e, 0x5d, 0x71, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xf3, 0xf1, 0x8a, 0x07, 0xe9, 0xa7, 0x16, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1a, 0xbd, 0x57, 0x3c, 0x48, 0x3f, 0xb5, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0xd5, 0xaf, 0x78, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x7d, 0x81, 0xc5, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0d, 0x22, 0x2c, 0x1e, 0x24, 0x2a, 0x3d, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xc7, 0x61, 0xf1, 0x20, 0x51, 0xe9, 0x79, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xfe, 0xc4, 0xe2, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x66, 0x33, 0x16, 0x07, 0xc1, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x75, 0x8f, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x03, 0x35, 0x8b, 0xc3, 0x6e, 0x30, 0x0e, 0x99, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0xb9, 0xb3, 0x78, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x8d, 0xa0, 0xc5, 0x61, 0x37, 0x68, 0x36, 0xce, 0x7c, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xab, 0x47, 0x8b, 0x87, 0x53, 0x6c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x48, 0xd3, 0xe2, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd6, 0xa4, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd6, 0xaf, 0x16, 0x07, 0xc9, 0xc0, 0x79, 0x77, 0x70, 0x12, 0x3a, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x5e, 0xd7, 0xe2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x50, 0xb6, 0x78, 0xd0, 0x94, 0x53, 0xd3, 0x20, 0x5a, 0xd0, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x7b, 0x6d, 0xf1, 0x20, 0xe4, 0xb3, 0x8f, 0xe7, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xc3, 0x71, 0x8b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xf0, 0x7e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x42, 0xde, 0xe2, 0x41, 0xf0, 0x70, 0x1f, 0x8f, 0x8f, 0x6f, 0xc3, 0x2e, 0xdc, 0x06, 0x4d, 0x39, 0x35, 0x1d, 0x8c, 0x2c, 0xab, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6d, 0x12, 0x2e, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x40, 0x71, 0xf1, 0x10, 0xc3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2d, 0x3e, 0x2e, 0x1e, 0x72, 0xdf, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd6, 0x29, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe6, 0x34, 0x17, 0x0f, 0xda, 0x2b, 0x13, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x23, 0xa1, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xab, 0xa6, 0x8b, 0x83, 0x64, 0x40, 0xe0, 0xf7, 0x1d, 0x0c, 0x47, 0xe9, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4d, 0xb1, 0x2e, 0x1e, 0xd6, 0x7e, 0x8f, 0x43, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x86, 0xec, 0xe2, 0x41, 0x5a, 0x14, 0xcd, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6d, 0xdf, 0x2e, 0x0e, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x8e, 0x07, 0xcd, 0xf0, 0x2e, 0x1e, 0xdf, 0x8e, 0x43, 0xc3, 0x2e, 0xdc, 0x06, 0xeb, 0x1b, 0x8c, 0x0e, 0x46, 0x96, 0xd5, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x76, 0x87, 0x17, 0x0f, 0x31, 0x1c, 0x76, 0x61, 0x37, 0x58, 0x3f, 0x1e, 0xb4, 0x70, 0x1b, 0xb4, 0x27, 0xd5, 0x74, 0x90, 0x32, 0x18, 0x70, 0x38, 0xda, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x9e, 0xbd, 0x38, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc6, 0xbe, 0x17, 0x0f, 0xd6, 0x07, 0x89, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x1d, 0x7e, 0x71, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x63, 0xf6, 0x8b, 0x87, 0x18, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x7d, 0x7f, 0xf1, 0x90, 0xfb, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0x13, 0xc0, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x68, 0xc0, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0xc0, 0xc0, 0x38, 0x48, 0x06, 0x6e, 0xad, 0x83, 0x61, 0xe8, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x66, 0x23, 0x18, 0x0f, 0x52, 0x20, 0xcd, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xed, 0x82, 0x71, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9a, 0x29, 0x62, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5a, 0x56, 0x62, 0x3c, 0x58, 0x58, 0x50, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x45, 0x28, 0xc6, 0x41, 0xb2, 0xc1, 0x1a, 0x04, 0x92, 0x83, 0x61, 0xe8, 0x73, 0x1c, 0x1a, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xbc, 0x08, 0xe3, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x20, 0x0a, 0xe3, 0x20, 0xd9, 0x60, 0xb1, 0xad, 0xc8, 0xc1, 0x30, 0xf4, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x43, 0x2e, 0x8c, 0x83, 0x64, 0x40, 0xf0, 0xee, 0x1c, 0x0c, 0x43, 0x9f, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1a, 0xa0, 0x61, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9a, 0xcc, 0x61, 0x3c, 0x58, 0x58, 0x50, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0xa9, 0x1f, 0xc6, 0x41, 0xb2, 0xc1, 0x5a, 0xe1, 0x91, 0x83, 0x61, 0xe8, 0x73, 0x1c, 0x3a, 0x0e, 0x0d, 0x82, 0x0d, 0x82, 0x2c, 0x7e, 0x71, 0x10, 0x2c, 0xfc, 0x86, 0x6c, 0xc5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x9d, 0x0e, 0xc6, 0x83, 0xe5, 0x29, 0x25, 0x07, 0x2b, 0xf1, 0x45, 0x8e, 0xc7, 0xc7, 0xa1, 0x61, 0x37, 0x18, 0xf5, 0x92, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x16, 0x21, 0xe3, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xc6, 0x22, 0xe3, 0xc1, 0x32, 0x0f, 0x88, 0x41, 0x32, 0xc8, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x32, 0x24, 0xe3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa6, 0x2c, 0x19, 0x0f, 0x31, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xfe, 0x26, 0xe3, 0x41, 0x41, 0x9a, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x35, 0x94, 0xf1, 0xb0, 0xf6, 0x7b, 0x1c, 0x1a, 0x76, 0xe1, 0x36, 0x28, 0x81, 0x22, 0x8f, 0x43, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xaa, 0x2b, 0xe3, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x0a, 0x2d, 0xe3, 0x41, 0x7b, 0x65, 0x22, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x3c, 0x97, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xed, 0x97, 0x71, 0x90, 0x0c, 0x8c, 0xd2, 0xc1, 0x70, 0x94, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x03, 0xc5, 0x8c, 0x87, 0xfe, 0xe4, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0xa9, 0xcc, 0x78, 0x58, 0xfb, 0x3d, 0x0e, 0x2d, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x63, 0xd0, 0x8c, 0x07, 0x49, 0x44, 0x24, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x62, 0xcd, 0x78, 0x88, 0xe1, 0x71, 0x68, 0xd8, 0x85, 0xdb, 0x20, 0x2d, 0x34, 0xfb, 0x38, 0xb4, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0d, 0x8c, 0x33, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x10, 0x9d, 0xf1, 0x20, 0xd1, 0x0f, 0x7a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x8c, 0x3b, 0xe3, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1a, 0x9f, 0x67, 0x1c, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x63, 0xf9, 0x8c, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1a, 0xf6, 0x67, 0x3c, 0xac, 0xfd, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x64, 0xa3, 0x71, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xb3, 0x20, 0x8d, 0x07, 0x0b, 0x38, 0x72, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcd, 0x99, 0x34, 0x1e, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x8f, 0xa0, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x41, 0xa1, 0xf1, 0xa0, 0xb9, 0x73, 0xf4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0xfb, 0xd0, 0x78, 0xe8, 0x4f, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x5b, 0x15, 0x8d, 0x87, 0xb5, 0xdf, 0xe3, 0xd0, 0x20, 0xdb, 0xd0, 0x7c, 0x7d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe6, 0xb3, 0x18, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x66, 0xc1, 0x18, 0x0f, 0x96, 0x79, 0x40, 0x0c, 0x92, 0x41, 0x36, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc6, 0xcc, 0x18, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0xbe, 0xc6, 0x78, 0x88, 0xe1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x26, 0xe3, 0x18, 0x0f, 0x52, 0x20, 0xcd, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4d, 0xdd, 0x31, 0x1e, 0xd6, 0x7e, 0x8f, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe6, 0xd6, 0x17, 0x0f, 0x31, 0x1c, 0x76, 0x61, 0x37, 0x58, 0x3f, 0x1e, 0xb4, 0x70, 0x1b, 0xac, 0xe9, 0x96, 0x3a, 0x48, 0x19, 0x0c, 0x38, 0x1c, 0xed, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xda, 0xe7, 0x69, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x7c, 0x52, 0xe3, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf6, 0x9e, 0x1a, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe6, 0xa9, 0x1a, 0x0f, 0x8e, 0xde, 0xe6, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xda, 0xd4, 0x6a, 0x3c, 0xc4, 0xff, 0x38, 0x34, 0xec, 0xc2, 0x6e, 0xb0, 0x7e, 0x3c, 0x68, 0xe1, 0x36, 0x58, 0x48, 0x2f, 0x75, 0x90, 0x32, 0x18, 0x70, 0x38, 0xda, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0x10, 0xd7, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x67, 0xd7, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x9f, 0xaf, 0x71, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9a, 0x20, 0x6c, 0x3c, 0x58, 0x8e, 0x2b, 0x74, 0x3c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0x9c, 0xd8, 0x38, 0xec, 0x06, 0xa3, 0x5e, 0x72, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x5b, 0x90, 0x8d, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9a, 0xae, 0x6c, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xc6, 0x66, 0xe3, 0x21, 0x86, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1a, 0x05, 0x6d, 0x3c, 0x28, 0xa4, 0xfe, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x64, 0xda, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0xe1, 0xd5, 0xc6, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0d, 0xc5, 0x36, 0x1e, 0x24, 0x86, 0xc8, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9a, 0xb7, 0x6d, 0x3c, 0xc4, 0x70, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x9b, 0xbc, 0x8d, 0x87, 0x18, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x46, 0xb8, 0xf1, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xcb, 0xc7, 0x8d, 0x87, 0x18, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xae, 0xb9, 0x71, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x03, 0xd3, 0x8d, 0x87, 0xdc, 0xf7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x41, 0xec, 0xc6, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x09, 0xef, 0xc6, 0x83, 0x15, 0x0c, 0x11, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9a, 0x1e, 0x6f, 0x3c, 0x58, 0x54, 0x3a, 0x74, 0x1c, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x6e, 0x7a, 0xe3, 0x41, 0x08, 0x80, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xda, 0x86, 0x6f, 0x3c, 0xc4, 0x70, 0xd8, 0x85, 0xdd, 0x60, 0xfd, 0x78, 0xd0, 0xc2, 0x6d, 0xd0, 0x3c, 0x5d, 0xd3, 0x41, 0xca, 0x60, 0xc0, 0xe1, 0x68, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xd2, 0x81, 0xe3, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5a, 0x65, 0x70, 0x1c, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x23, 0x12, 0x8e, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xda, 0xbc, 0x70, 0x3c, 0xac, 0xfd, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xa9, 0xc3, 0x71, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xc3, 0x22, 0x8e, 0x87, 0x18, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x09, 0xc5, 0xf1, 0x90, 0xfb, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x6c, 0x8b, 0xe3, 0x41, 0xf2, 0x10, 0xf3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0xb1, 0x19, 0xc7, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xed, 0xe3, 0x38, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0d, 0x82, 0x3a, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9a, 0x36, 0x75, 0x1c, 0x04, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x16, 0x58, 0x1d, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcd, 0x35, 0x3b, 0x0e, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x5d, 0x69, 0xc7, 0x83, 0x66, 0xe3, 0xcc, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0xec, 0xed, 0x38, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd6, 0xc8, 0x1d, 0x87, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x78, 0xba, 0xe3, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb6, 0xde, 0x1d, 0x0f, 0x89, 0x99, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6d, 0xea, 0x3b, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x03, 0xe0, 0xf1, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xb3, 0x05, 0x8f, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9a, 0xa8, 0x77, 0x3c, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xd2, 0xc2, 0xe3, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x24, 0xc4, 0xe3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x26, 0x2c, 0x1e, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6d, 0x72, 0x3c, 0x0e, 0x92, 0x21, 0x83, 0x68, 0xc1, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x0b, 0x24, 0x8f, 0x07, 0xcb, 0x99, 0x84, 0x06, 0xd1, 0x82, 0xf6, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xeb, 0x2a, 0x8f, 0x07, 0x21, 0x9f, 0x7d, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x0c, 0xf3, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xec, 0xe6, 0x71, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xde, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5a, 0xf4, 0x79, 0x3c, 0x08, 0x1e, 0xee, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x31, 0xa2, 0xc7, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x9d, 0xf4, 0x38, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa6, 0x9e, 0x1e, 0x0f, 0x52, 0x5b, 0xad, 0x17, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x93, 0x5b, 0x8f, 0x07, 0x6b, 0x86, 0x52, 0x0e, 0xe9, 0xdc, 0xc3, 0xd1, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0xc9, 0xb6, 0xc7, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6d, 0xcb, 0x3d, 0x1e, 0x62, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x31, 0xbc, 0xc7, 0x83, 0xb3, 0x69, 0xf8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0xad, 0xbf, 0xc7, 0x83, 0xc1, 0x1a, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x03, 0xed, 0xf1, 0x10, 0xc3, 0xe3, 0xdb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x39, 0x1f, 0xc7, 0x61, 0x37, 0x18, 0xf5, 0x92, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9a, 0x29, 0x72, 0x3c, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xaa, 0x92, 0xe3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x16, 0xa0, 0x1c, 0x0f, 0x31, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x64, 0x95, 0xe3, 0x41, 0xb9, 0x0f, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x9d, 0x2d, 0xc7, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0d, 0x83, 0x39, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xc8, 0xcc, 0xf1, 0x20, 0xa1, 0xec, 0x64, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xfc, 0x9a, 0xe3, 0x21, 0x86, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xda, 0x8c, 0x73, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xc8, 0x9d, 0xe3, 0x41, 0xf2, 0x10, 0xf3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb6, 0xf9, 0x1c, 0x0f, 0x96, 0xec, 0xe2, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xda, 0x14, 0x74, 0x3c, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x14, 0xa2, 0xe3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc6, 0x1b, 0x1d, 0x0f, 0xd6, 0x00, 0xe2, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1a, 0x9d, 0x74, 0x3c, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x5a, 0xa6, 0xe3, 0x41, 0x08, 0x80, 0x0f, 0xbb, 0xb0, 0x1b, 0xac, 0x1f, 0x0f, 0x5a, 0xb8, 0x0d, 0x96, 0x98, 0x59, 0x1d, 0xa4, 0x0c, 0x06, 0x1c, 0x8e, 0xf6, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xad, 0x5c, 0x3e, 0x0e, 0x82, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x73, 0x9c, 0x8f, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x36, 0x65, 0x1f, 0x87, 0x5d, 0xb8, 0x0d, 0x31, 0x3c, 0x18, 0x41, 0x9e, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5a, 0xc9, 0x7d, 0x3c, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xa8, 0xef, 0xe3, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xfa, 0xf0, 0xe3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x3d, 0xe5, 0xc7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x3c, 0xfa, 0xf1, 0x60, 0x51, 0xe9, 0xd0, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xe8, 0xf5, 0xe3, 0xb0, 0x1b, 0x8c, 0x7a, 0xc9, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcd, 0x78, 0x3f, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x81, 0x99, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x56, 0xfe, 0x38, 0xc1, 0x9d, 0x7f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0xb1, 0xfe, 0x78, 0x1c, 0x3a, 0xbe, 0x0d, 0xbb, 0xb0, 0x1b, 0xac, 0x1f, 0x0f, 0x5a, 0xb8, 0x0d, 0x5a, 0x75, 0x6c, 0x3a, 0x48, 0x19, 0x0c, 0x38, 0x1c, 0xed, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9a, 0x0a, 0x80, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1a, 0x0f, 0x83, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x83, 0x06, 0x39, 0x08, 0x16, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xad, 0xb5, 0x41, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9a, 0x76, 0x84, 0x1c, 0x76, 0x83, 0x66, 0x30, 0xd5, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x56, 0x09, 0x79, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x6d, 0x4d, 0xc8, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x02, 0x0a, 0x39, 0xec, 0x06, 0xed, 0xce, 0xe1, 0x2c, 0xdc, 0x86, 0x18, 0x1e, 0x2c, 0x67, 0x12, 0x3a, 0x1c, 0xed, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1a, 0xbb, 0x85, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1a, 0xe7, 0x85, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x37, 0x0c, 0x39, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8d, 0x2b, 0x43, 0x1e, 0x2c, 0x2a, 0x1d, 0x3a, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1a, 0x85, 0x86, 0x1c, 0x76, 0x83, 0x51, 0x2f, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0xa5, 0x6b, 0xc8, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4d, 0x73, 0x43, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x4a, 0x1c, 0xf2, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xeb, 0xe7, 0x90, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5a, 0x6b, 0x87, 0x3c, 0x08, 0x01, 0xf0, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x23, 0xf3, 0x90, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5a, 0xc6, 0x87, 0x1c, 0x76, 0x83, 0x66, 0xe3, 0xcc, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0xf5, 0x0f, 0x79, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x69, 0x82, 0xc8, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x0d, 0x85, 0xc8, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xab, 0x10, 0x91, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xf0, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x04, 0x46, 0xe4, 0xc1, 0xa2, 0xd2, 0xa1, 0x41, 0xb4, 0xa0, 0x7d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xbc, 0x47, 0xe4, 0x41, 0xc8, 0x67, 0x1f, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xed, 0x92, 0x44, 0x0e, 0xbb, 0xc1, 0xa8, 0x97, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xda, 0x4a, 0xe4, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc6, 0x61, 0x22, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x56, 0x6c, 0x22, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xed, 0xf2, 0x44, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x81, 0x99, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x3d, 0x14, 0x79, 0xd0, 0xea, 0xad, 0xfa, 0x20, 0x5a, 0xf0, 0x7e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xac, 0x52, 0xe4, 0xc1, 0x18, 0x58, 0x38, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xda, 0x83, 0x8a, 0x1c, 0x76, 0x83, 0x51, 0x2f, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x95, 0xab, 0xc8, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8d, 0x72, 0x45, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x3d, 0x2c, 0xf2, 0x10, 0xc3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcd, 0x9d, 0x45, 0x1e, 0xc6, 0x65, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x9c, 0x5b, 0xe4, 0x41, 0x08, 0x80, 0x1f, 0xdf, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8d, 0x1b, 0x40, 0x0e, 0xbb, 0xc1, 0xa8, 0x97, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x68, 0x03, 0xe4, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x36, 0x26, 0x20, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0x87, 0x01, 0x79, 0x88, 0xe1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x06, 0x3c, 0x20, 0x0f, 0xca, 0x7d, 0xc0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xad, 0x8e, 0x40, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x26, 0x05, 0x72, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xb3, 0x2e, 0x90, 0x07, 0x09, 0x65, 0x27, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc6, 0x68, 0x20, 0x0f, 0x31, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x82, 0x0e, 0xe4, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x26, 0x7f, 0x20, 0x0f, 0x96, 0xec, 0xe2, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5a, 0x2a, 0x82, 0x3c, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xc0, 0x12, 0xe4, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x26, 0xa1, 0x20, 0x0f, 0xd6, 0x00, 0xe2, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9a, 0xb2, 0x82, 0x3c, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x06, 0x17, 0xe4, 0x41, 0x08, 0x80, 0x0f, 0xbb, 0xb0, 0x1b, 0xac, 0x1f, 0x0f, 0x5a, 0xb8, 0x0d, 0x5a, 0xe5, 0x6b, 0x3a, 0x48, 0x19, 0x0c, 0x38, 0x1c, 0xed, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5a, 0x32, 0x8c, 0x1c, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xd3, 0x8b, 0x91, 0xc3, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x29, 0x32, 0xf2, 0xb0, 0xf6, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xdd, 0x32, 0xf2, 0x60, 0x39, 0xae, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x36, 0x44, 0x23, 0x87, 0x5f, 0x10, 0x2d, 0x30, 0xe6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x56, 0x51, 0x23, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x66, 0x5c, 0x23, 0x0f, 0x5a, 0x9f, 0x43, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xd3, 0xb3, 0x91, 0x07, 0x4b, 0x86, 0x84, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x30, 0x37, 0x72, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xda, 0x39, 0x8f, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9a, 0x66, 0x8f, 0x3c, 0x58, 0x58, 0x50, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x49, 0xf9, 0xc8, 0x83, 0x06, 0x1c, 0xd1, 0x8f, 0x43, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1a, 0x28, 0x8e, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5a, 0x54, 0x8e, 0x3c, 0x68, 0x07, 0x13, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2d, 0x41, 0x47, 0x1e, 0xb4, 0xfc, 0x89, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x0b, 0xd6, 0x91, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x9b, 0xdb, 0x91, 0x07, 0x0b, 0x0b, 0x4a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0x15, 0x1e, 0x79, 0xd0, 0xc0, 0x2b, 0xfa, 0x71, 0xe8, 0x38, 0x34, 0x08, 0x36, 0x08, 0xb2, 0xf8, 0xc5, 0x41, 0xb0, 0xf0, 0x1b, 0xb2, 0x15, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa6, 0x7e, 0x23, 0x0f, 0x96, 0xa7, 0x94, 0x1c, 0xac, 0xc4, 0x17, 0x39, 0x1e, 0x1f, 0x87, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe6, 0xf0, 0x23, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x76, 0xfb, 0x23, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2d, 0x11, 0x48, 0x0e, 0x92, 0x21, 0x83, 0x68, 0xc1, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x63, 0x0b, 0x92, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5a, 0x87, 0x90, 0x3c, 0x68, 0x4f, 0xaa, 0x69, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xa8, 0x85, 0xe4, 0xc1, 0x92, 0x21, 0xa1, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x39, 0x0e, 0xc9, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x1e, 0x22, 0x39, 0xec, 0x06, 0xa3, 0x63, 0x7d, 0x61, 0x37, 0x58, 0x00, 0xeb, 0xb3, 0xb0, 0x1b, 0xac, 0x19, 0x4a, 0x59, 0xd8, 0x85, 0xdb, 0x90, 0xfb, 0x3e, 0x08, 0xb2, 0xf8, 0x0d, 0x16, 0x7c, 0x71, 0x1d, 0x8e, 0xf6, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc6, 0x7d, 0x24, 0x87, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x0a, 0x91, 0xe4, 0xb0, 0x0b, 0xb7, 0x41, 0x5a, 0x68, 0xf6, 0xc1, 0xa2, 0xd2, 0xa1, 0x0d, 0x31, 0x1c, 0x6e, 0x83, 0x21, 0xf5, 0x7b, 0xb0, 0xa8, 0x74, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xd3, 0x5b, 0x92, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x43, 0x62, 0x92, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5a, 0x3c, 0x93, 0x3c, 0xc4, 0x70, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x13, 0x6d, 0x92, 0x87, 0xdc, 0xf7, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe6, 0xe4, 0x24, 0x0f, 0x12, 0xfd, 0xa0, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8d, 0xe0, 0x49, 0x1e, 0x0c, 0xd6, 0xd8, 0xc3, 0x29, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x94, 0x33, 0xf2, 0x10, 0xc3, 0x61, 0x17, 0x76, 0x83, 0xf5, 0xe3, 0x41, 0x0b, 0xb7, 0x41, 0xd3, 0x96, 0x4d, 0x07, 0x29, 0x83, 0x01, 0x87, 0xa3, 0x7d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x7b, 0x90, 0x92, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xbc, 0x52, 0x72, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x6c, 0x53, 0x72, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x41, 0x54, 0xf2, 0x60, 0x95, 0xdd, 0xff, 0x20, 0x19, 0x98, 0xbe, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x7a, 0x2a, 0x79, 0x48, 0x1d, 0x1c, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0xd6, 0x2a, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x79, 0x59, 0xc9, 0x83, 0x14, 0x48, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xb3, 0xb8, 0x92, 0x87, 0xb5, 0xdf, 0xe3, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x36, 0x7d, 0x25, 0x0f, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x43, 0x2c, 0x39, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0x97, 0x2c, 0x39, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x01, 0x5a, 0x72, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xad, 0x5a, 0x72, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x82, 0x5b, 0xf2, 0xa0, 0xc5, 0x95, 0xa8, 0x41, 0x32, 0x50, 0xfc, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x6a, 0xb8, 0xe4, 0xc1, 0x98, 0xb0, 0x3a, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xee, 0x5c, 0xf2, 0x20, 0x05, 0xd2, 0xfc, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xa7, 0x5d, 0x72, 0xd8, 0x0d, 0x46, 0xbd, 0xe4, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd6, 0xe7, 0x25, 0x07, 0xd9, 0x1a, 0xf2, 0xd8, 0x8b, 0x83, 0x60, 0x83, 0x46, 0xae, 0x57, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x34, 0xbf, 0xbd, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xe2, 0x86, 0x89, 0x5b, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x1c, 0x34, 0x44, 0x30, 0x79, 0xd0, 0xca, 0x3f, 0xc5, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xad, 0xe6, 0x4b, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xe5, 0x5f, 0x72, 0x3c, 0x68, 0x88, 0x60, 0x72, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x0a, 0xc2, 0xe4, 0xc1, 0x08, 0xf2, 0x3c, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc6, 0x1b, 0x26, 0x0f, 0xa7, 0xd8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0xb5, 0x89, 0xc9, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x87, 0x68, 0xf2, 0x20, 0x04, 0xc0, 0x07, 0xd1, 0xc2, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5a, 0xd3, 0x98, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5a, 0xff, 0x98, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5a, 0x34, 0x99, 0x3c, 0x58, 0x50, 0xbb, 0x3f, 0x48, 0x06, 0xa7, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x08, 0xcb, 0xe4, 0x21, 0x55, 0x73, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x7a, 0xcc, 0xe4, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe6, 0x6e, 0x26, 0x0f, 0x46, 0x90, 0xe7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x99, 0x9e, 0xc9, 0x43, 0x62, 0xe6, 0x38, 0x74, 0x3c, 0x1f, 0x76, 0x61, 0x37, 0x58, 0x3f, 0x1e, 0xb4, 0x70, 0x1b, 0x34, 0x07, 0xda, 0x74, 0x90, 0x32, 0x18, 0x70, 0x38, 0xda, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0xc2, 0x35, 0x39, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0xcb, 0x3b, 0x39, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x61, 0x78, 0x72, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x0a, 0x79, 0x72, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xb6, 0xf3, 0xe4, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf6, 0xc9, 0x27, 0x07, 0xc1, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x19, 0xf5, 0xc9, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x9b, 0x0b, 0x94, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x1c, 0x82, 0x72, 0xb8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6d, 0x59, 0x50, 0x1e, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x7a, 0x83, 0xf2, 0x20, 0x44, 0xfc, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x18, 0x42, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x7d, 0x13, 0xca, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0d, 0xb2, 0x50, 0x1e, 0x52, 0x07, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x46, 0x66, 0x28, 0x87, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x24, 0x0e, 0xe5, 0xb0, 0x0b, 0x3d, 0x08, 0x11, 0xff, 0x0d, 0x56, 0xb9, 0xff, 0x1f, 0x8e, 0xf6, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8d, 0xb1, 0x51, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xad, 0xc6, 0x51, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9a, 0xc0, 0xa3, 0x1c, 0x24, 0x43, 0x06, 0xd1, 0x02, 0xd1, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0xf2, 0x47, 0x79, 0xd0, 0xb0, 0xcf, 0xc8, 0xf1, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x8e, 0x21, 0xe5, 0xb0, 0x1b, 0x8c, 0x7a, 0xc9, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcd, 0x32, 0x52, 0x1e, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x45, 0x92, 0x72, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xee, 0x92, 0x72, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x80, 0x27, 0xe5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0x56, 0x4a, 0x39, 0x41, 0x9e, 0x7f, 0x10, 0x2d, 0x68, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0xc4, 0x4a, 0x79, 0x50, 0xd2, 0x34, 0x1c, 0x56, 0x68, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8d, 0xcd, 0x52, 0x0e, 0xbb, 0xc1, 0xa8, 0x97, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x84, 0x2e, 0xe5, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x16, 0x7f, 0x29, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0x40, 0xf4, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2d, 0x1a, 0x53, 0x1e, 0xa4, 0xe3, 0x35, 0x0c, 0xa2, 0x85, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0xeb, 0x4c, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x1d, 0x6a, 0xca, 0x83, 0x10, 0x00, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0xb4, 0x4d, 0x79, 0x18, 0x97, 0x43, 0x72, 0x69, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xba, 0x19, 0xe5, 0x21, 0x86, 0xc7, 0xb7, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xbb, 0x61, 0x93, 0xc3, 0x6e, 0x30, 0xea, 0x25, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0x87, 0x36, 0x79, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0xf9, 0xb6, 0xc9, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4d, 0xcd, 0x4d, 0x1e, 0x62, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x6d, 0xbc, 0xc9, 0x83, 0x72, 0x1f, 0x70, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x83, 0x7e, 0x93, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5a, 0x20, 0x9c, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x62, 0xe2, 0xe4, 0x41, 0x42, 0xd9, 0xc9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x9d, 0xc7, 0xc9, 0x43, 0x0c, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x4e, 0x39, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x35, 0xcd, 0xc9, 0x83, 0xe5, 0x2a, 0x39, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x46, 0x40, 0x27, 0x0f, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0x5d, 0x3a, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0xb5, 0xd5, 0xc9, 0x83, 0xa5, 0x4e, 0x38, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x56, 0x62, 0x27, 0x0f, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x6f, 0x3b, 0x79, 0x10, 0x02, 0xe0, 0xc3, 0x2e, 0xec, 0x06, 0xeb, 0xc7, 0x83, 0x16, 0x6e, 0x83, 0x56, 0x50, 0x9b, 0x0e, 0x52, 0x06, 0x03, 0x0e, 0x47, 0xfb, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x46, 0xe6, 0x29, 0x87, 0xdd, 0x60, 0x7d, 0x90, 0xd8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb6, 0xf3, 0x29, 0x87, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xe0, 0x3f, 0xe5, 0x70, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xda, 0x27, 0xa8, 0x3c, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x9c, 0x42, 0xe5, 0x61, 0xed, 0x77, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xb3, 0x15, 0x95, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xda, 0xd9, 0xa8, 0x3c, 0xc4, 0x70, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xd3, 0x20, 0x95, 0x87, 0xdc, 0xf7, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x86, 0x4c, 0x2a, 0x0f, 0x92, 0x87, 0x98, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0d, 0xb0, 0x54, 0x1e, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x05, 0xa2, 0xf2, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xab, 0x31, 0x95, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xe3, 0xa6, 0x72, 0xb8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4d, 0xf2, 0x54, 0x1e, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x41, 0xa8, 0xf2, 0xd0, 0x02, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x33, 0x4d, 0x95, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x7b, 0x52, 0x95, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x16, 0xb2, 0x2a, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xe0, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x11, 0xb0, 0xca, 0x83, 0xe5, 0xb8, 0x42, 0x83, 0x68, 0x41, 0xfb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x7d, 0xb3, 0xca, 0x43, 0xc3, 0xaf, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x61, 0xb6, 0xca, 0x61, 0x37, 0x18, 0xf5, 0x92, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9a, 0x9a, 0xab, 0x3c, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x32, 0x5e, 0xe5, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x26, 0xfc, 0x2a, 0x0f, 0x31, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xe6, 0x60, 0xe5, 0x41, 0xb9, 0x0f, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x9d, 0xc4, 0xca, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0d, 0x3b, 0x56, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x88, 0xb2, 0xf2, 0x20, 0xa1, 0xec, 0x64, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x7c, 0x66, 0xe5, 0x21, 0x86, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xda, 0xfc, 0xac, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x48, 0x69, 0xe5, 0xc1, 0x92, 0x5d, 0x9c, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xd3, 0xaa, 0x95, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xda, 0x83, 0xad, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x82, 0x6d, 0xe5, 0xc1, 0x1a, 0x40, 0x9c, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xcb, 0xbb, 0x95, 0x87, 0x18, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x32, 0xb8, 0x72, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x23, 0xc7, 0x95, 0x87, 0xdc, 0xf7, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x46, 0x99, 0x2b, 0x0f, 0x92, 0x87, 0x98, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8d, 0x49, 0x57, 0x1e, 0x62, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x0d, 0xec, 0xca, 0x83, 0x10, 0x00, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0xde, 0x5d, 0x79, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0xdd, 0xa3, 0xca, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0xda, 0xaf, 0x0f, 0xbb, 0xc1, 0xfa, 0xf1, 0xa0, 0x85, 0xdb, 0x60, 0xc1, 0x41, 0xd5, 0x41, 0xca, 0x60, 0xc0, 0xe1, 0x68, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0x44, 0x5f, 0x39, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8d, 0xed, 0x57, 0x1e, 0x2c, 0xc7, 0x15, 0x3a, 0x1e, 0x1f, 0xdf, 0x8e, 0x43, 0xc7, 0xe3, 0x05, 0xc1, 0x06, 0xe7, 0x27, 0xda, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x0f, 0xd6, 0x45, 0x83, 0x1d, 0x87, 0x06, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x0d, 0x06, 0xe7, 0xe3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x1f, 0x24, 0x63, 0xd2, 0x1f, 0x52, 0x35, 0xc7, 0xa1, 0xe3, 0xf1, 0xf1, 0x78, 0x41, 0xb0, 0xc1, 0x42, 0x13, 0xa3, 0xc5, 0x41, 0xb0, 0xc1, 0x62, 0xda, 0x99, 0x41, 0x32, 0x70, 0xf4, 0x1d, 0xda, 0xb7, 0x1c, 0x8f, 0x17, 0x24, 0x03, 0xf5, 0xe5, 0x78, 0xbc, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x87, 0xdd, 0xb0, 0xbe, 0xb7, 0xe1, 0x14, 0x1b, 0x64, 0x6b, 0xc8, 0x63, 0x2f, 0x1e, 0xb2, 0x76, 0xc7, 0xe3, 0x83, 0x42, 0xe5, 0xec, 0x78, 0x3c, 0x08, 0x36, 0x68, 0x90, 0xcb, 0x65, 0x71, 0x41, 0xb0, 0x20, 0xd8, 0x60, 0x31, 0xed, 0xcc, 0x20, 0x19, 0x38, 0xfe, 0x0e, 0xad, 0x82, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x34, 0xdf, 0x92, 0x72, 0xc8, 0xda, 0x1d, 0x87, 0x86, 0x6c, 0x10, 0x94, 0xde, 0x87, 0x8c, 0xd6, 0xf1, 0x78, 0x10, 0x2c, 0x1e, 0xac, 0x94, 0xc5, 0x5e, 0x1c, 0x04, 0x1b, 0x1e, 0x3c, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb4, 0x20, 0x3e, 0x8c, 0xcb, 0x21, 0x9a, 0xc3, 0x6f, 0x3c, 0x1f, 0x0f, 0x96, 0x1f, 0x6f, 0x1f, 0x87, 0x8e, 0xc7, 0x2b, 0x08, 0x36, 0x38, 0xee, 0x77, 0x2c, 0x2e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x82, 0x64, 0x40, 0xf0, 0x76, 0x1d, 0x56, 0x68, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0xfc, 0x60, 0x5d, 0x8a, 0xd2, 0xc1, 0x62, 0xd8, 0x9a, 0xe3, 0xd0, 0xc1, 0x72, 0x9c, 0xae, 0x05, 0xc1, 0x06, 0x27, 0x36, 0xf7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0xc3, 0x6e, 0xd8, 0x35, 0x58, 0x43, 0x0c, 0x0f, 0x16, 0x71, 0x22, 0x0d, 0xbb, 0xb0, 0x1b, 0x04, 0xc3, 0xfe, 0xc2, 0x6e, 0x90, 0x5e, 0xf4, 0xb3, 0x41, 0xe9, 0x0b, 0x76, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0x1a, 0x62, 0xb8, 0x06, 0x8b, 0x8e, 0x90, 0x36, 0x48, 0x0b, 0xcd, 0x3e, 0x18, 0x3f, 0x5d, 0x07, 0x41, 0xe9, 0x7d, 0x88, 0xe1, 0xf1, 0x78, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x05, 0xc9, 0x80, 0xd0, 0xef, 0x3a, 0xac, 0xd0, 0x1e, 0xa4, 0x28, 0x3f, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0x19, 0xcb, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc0, 0x0f, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x68, 0xfa, 0x76, 0x3c, 0x3e, 0x0e, 0x1d, 0xac, 0xe2, 0x26, 0x1b, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x9c, 0x6a, 0xc7, 0xe3, 0x41, 0xb0, 0x41, 0x90, 0xc5, 0x2f, 0x0e, 0x82, 0x85, 0xdf, 0x90, 0xad, 0x18, 0x24, 0x03, 0xd5, 0xed, 0xb0, 0x42, 0x7b, 0xb0, 0x12, 0x5f, 0xe4, 0x78, 0x7c, 0x1c, 0x5a, 0x41, 0xb0, 0xc1, 0x52, 0xe5, 0x98, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x3f, 0x58, 0xd3, 0x72, 0x34, 0xfc, 0xc6, 0xf3, 0xc5, 0x41, 0xb6, 0x21, 0x2e, 0x83, 0x60, 0x83, 0x45, 0xe6, 0x31, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x18, 0x70, 0xbb, 0x8b, 0xc3, 0x6e, 0xe8, 0x9a, 0xb9, 0x06, 0x8b, 0x8e, 0x90, 0x0e, 0xd6, 0xcc, 0xc7, 0x0c, 0xbb, 0x70, 0x1b, 0xb4, 0xc5, 0x04, 0x70, 0x88, 0xe6, 0x86, 0x71, 0xd9, 0x60, 0xf5, 0x80, 0xd2, 0x1a, 0x2c, 0x3a, 0x42, 0x3a, 0x58, 0x55, 0xc3, 0xb5, 0xc1, 0x52, 0x2d, 0xa4, 0x43, 0xea, 0xe0, 0x78, 0x3c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xb8, 0x20, 0xd8, 0x60, 0xb9, 0x29, 0xc9, 0xe2, 0x20, 0x58, 0x90, 0x0c, 0x08, 0xde, 0xae, 0x83, 0xf1, 0xae, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0x6d, 0x31, 0x01, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x36, 0x58, 0x6c, 0x2b, 0x72, 0x30, 0xde, 0x75, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x6e, 0xb0, 0x7a, 0x40, 0x69, 0x83, 0x96, 0x47, 0xdd, 0x0f, 0xe3, 0x72, 0x3c, 0x1e, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x86, 0xd4, 0xc1, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0x20, 0x4d, 0x75, 0x30, 0xde, 0x75, 0x06, 0xc1, 0x06, 0x41, 0x16, 0xbf, 0x38, 0x08, 0x16, 0x7e, 0x43, 0xb6, 0x62, 0x10, 0x2c, 0x48, 0x06, 0xca, 0xdb, 0xc1, 0x78, 0xd7, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x08, 0x55, 0xae, 0x83, 0xf1, 0xae, 0x73, 0x1c, 0x3a, 0x58, 0x89, 0x2f, 0x72, 0x3c, 0x3e, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0x2b, 0x08, 0x36, 0x58, 0x6e, 0x4a, 0xb2, 0x38, 0x08, 0x16, 0x24, 0x03, 0xe9, 0xae, 0x83, 0xf1, 0xae, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x30, 0x5e, 0x07, 0xe3, 0x5d, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb2, 0x41, 0x21, 0x56, 0x78, 0x30, 0xfc, 0x63, 0x8f, 0x43, 0x87, 0x54, 0xcd, 0x71, 0xe8, 0x78, 0x3c, 0x08, 0x36, 0x58, 0x6e, 0x4a, 0xb2, 0x38, 0x08, 0x36, 0x68, 0x7e, 0xd5, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0xb3, 0xaf, 0xee, 0x87, 0x54, 0xcd, 0x71, 0xe8, 0x78, 0x3c, 0x08, 0x16, 0x24, 0x03, 0x86, 0x7a, 0xd7, 0x41, 0x90, 0xf3, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0x06, 0x2b, 0xc6, 0x63, 0x86, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0x70, 0x7e, 0xa2, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0xa4, 0xa9, 0x0e, 0x82, 0x9c, 0xff, 0x38, 0x34, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0x64, 0x68, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x36, 0x58, 0xac, 0x67, 0x72, 0x10, 0xe4, 0xfc, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0xbe, 0x20, 0x19, 0x10, 0xef, 0xbb, 0x5c, 0x07, 0x41, 0xce, 0x3f, 0x48, 0x06, 0x24, 0xee, 0x72, 0x1d, 0x04, 0x39, 0xff, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0xc0, 0xf8, 0x1d, 0x92, 0x4b, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0xd8, 0x20, 0xc8, 0xe2, 0x17, 0x07, 0xc1, 0xc2, 0x6f, 0xc8, 0x56, 0x0c, 0x92, 0x81, 0x59, 0x3b, 0x08, 0x72, 0xfe, 0x83, 0x95, 0xf8, 0x22, 0xc7, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x25, 0x43, 0xd3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x20, 0x78, 0xbb, 0x0e, 0x82, 0x9c, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x0f, 0xd6, 0x4b, 0x2a, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0xfa, 0xbe, 0xfb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x2f, 0x48, 0x06, 0x34, 0xbf, 0xcb, 0x75, 0x10, 0xe4, 0xfc, 0x83, 0x64, 0x40, 0xb0, 0x72, 0x1d, 0x04, 0x39, 0xff, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x40, 0xb0, 0x77, 0x1d, 0x04, 0x39, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x81, 0xf7, 0xb9, 0x0e, 0x82, 0x9c, 0xff, 0xa0, 0xbd, 0x82, 0xf7, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x3a, 0x68, 0x1f, 0xe1, 0x7d, 0x0d, 0x16, 0x70, 0xe4, 0x0c, 0x82, 0x05, 0xc9, 0x40, 0xd3, 0xae, 0x83, 0x20, 0xe7, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xf0, 0x43, 0x86, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0xda, 0x73, 0x1d, 0x04, 0x39, 0xff, 0x71, 0x68, 0x0d, 0x96, 0xf8, 0xc7, 0x0c, 0x82, 0x0d, 0xce, 0x4f, 0xb4, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0x20, 0x19, 0x88, 0xd5, 0x41, 0x90, 0xf3, 0x1f, 0xac, 0x94, 0xec, 0x3a, 0x0e, 0xad, 0x41, 0xfa, 0xd3, 0xf3, 0x20, 0xd8, 0xe0, 0xfc, 0x44, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0xb4, 0xeb, 0xf3, 0x7e, 0xb0, 0x58, 0xb3, 0xeb, 0x38, 0xb4, 0x06, 0x69, 0x2f, 0xd5, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0xf8, 0x0d, 0xda, 0xf5, 0x79, 0x3f, 0x58, 0xb4, 0x03, 0x33, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x68, 0xca, 0x75, 0x10, 0xe4, 0xfc, 0x83, 0x60, 0x83, 0x20, 0x8b, 0x5f, 0x1c, 0x04, 0x0b, 0xbf, 0x21, 0x5b, 0x71, 0x90, 0x40, 0x5e, 0x71, 0xb0, 0x12, 0x5f, 0xe4, 0x78, 0xbc, 0x06, 0xc9, 0x43, 0xcc, 0x83, 0x60, 0x83, 0xf3, 0x13, 0xed, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x05, 0xc9, 0x80, 0xd0, 0xef, 0x3a, 0x08, 0x72, 0xfe, 0x83, 0xe5, 0xb2, 0x5d, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0x41, 0xbb, 0x3e, 0xef, 0x07, 0x8b, 0xed, 0x62, 0x0e, 0xda, 0x47, 0x78, 0x1f, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x08, 0x54, 0xae, 0x83, 0x20, 0xe7, 0x3f, 0x68, 0x61, 0xea, 0xfd, 0x38, 0xb4, 0x06, 0x49, 0x44, 0x24, 0x83, 0x60, 0x83, 0x06, 0x2a, 0xde, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x2c, 0x0d, 0xa0, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0xb0, 0x68, 0x9f, 0xea, 0x20, 0xc8, 0xf9, 0x8f, 0x43, 0x6b, 0xb0, 0x64, 0x17, 0x67, 0x10, 0x6c, 0xb0, 0x2e, 0x1a, 0xec, 0xa0, 0x91, 0x7c, 0xf7, 0x35, 0x48, 0x71, 0x26, 0x19, 0x04, 0x1b, 0xac, 0x8b, 0x06, 0x3b, 0x68, 0x47, 0xe2, 0xfd, 0x10, 0xc3, 0xe3, 0xd0, 0xc1, 0x5a, 0x3e, 0x81, 0xe3, 0xd0, 0xf1, 0xf8, 0x38, 0xb4, 0x82, 0x60, 0x41, 0xb2, 0xc1, 0x62, 0x3d, 0x93, 0xc3, 0x0a, 0xed, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x2f, 0x48, 0x06, 0xfe, 0xe7, 0x3a, 0xac, 0xd0, 0x0e, 0x92, 0x81, 0xb6, 0x5c, 0x87, 0x15, 0xda, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x5a, 0xc6, 0x72, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x83, 0xe5, 0x38, 0x4a, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x01, 0xc1, 0xde, 0x75, 0x58, 0xa1, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0xf0, 0x3e, 0xd7, 0x61, 0x85, 0xf6, 0x60, 0x89, 0x26, 0xda, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x5a, 0x41, 0xb6, 0x21, 0x2e, 0x83, 0x60, 0x41, 0xb2, 0xc1, 0x62, 0x5b, 0x91, 0xc3, 0x0a, 0xed, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xd6, 0xb4, 0x1c, 0x1d, 0x8c, 0x5d, 0xab, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x5a, 0xc6, 0x72, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xd0, 0x0a, 0xe4, 0xfb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x0d, 0x0f, 0xbe, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x90, 0x0c, 0x28, 0xff, 0xa9, 0x0e, 0x2b, 0xb4, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x0d, 0x9a, 0x09, 0x78, 0x3f, 0xac, 0xd0, 0x1e, 0x34, 0x8c, 0xe8, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc9, 0x80, 0xc4, 0x5d, 0xae, 0xc3, 0x0a, 0xed, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x07, 0xcd, 0xc2, 0xbe, 0x1f, 0x34, 0x8c, 0xe8, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x5b, 0x93, 0xef, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x9a, 0xe1, 0x7d, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x48, 0xab, 0x1d, 0x8f, 0x8f, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0x68, 0x41, 0xb0, 0xc1, 0x52, 0xe5, 0x98, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x03, 0x3f, 0x64, 0xf8, 0x8d, 0xe7, 0x8b, 0x83, 0x6c, 0x43, 0x5c, 0x06, 0xc1, 0x82, 0x60, 0x41, 0x32, 0xd0, 0xb5, 0xeb, 0x90, 0xad, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x1e, 0xac, 0xca, 0xd7, 0x39, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x58, 0xa3, 0x22, 0x33, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x05, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0x2c, 0x32, 0x8f, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x83, 0xb1, 0xe4, 0x36, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x05, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x82, 0x64, 0xa0, 0x69, 0xd7, 0x21, 0x5b, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x6c, 0xb8, 0x1e, 0xac, 0x51, 0x91, 0x39, 0x0e, 0x0d, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0x0c, 0x7f, 0xaa, 0x43, 0xb6, 0xe2, 0x60, 0xd5, 0x95, 0xcc, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xb0, 0xc8, 0x3c, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x0d, 0x8e, 0x57, 0xd0, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x38, 0x30, 0xef, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x7e, 0x58, 0x3e, 0x39, 0x0e, 0x1d, 0x8c, 0x0d, 0xd7, 0xe3, 0xd0, 0xf1, 0x78, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x70, 0x68, 0xd2, 0x3d, 0x48, 0xf9, 0xb8, 0x38, 0x0e, 0x0d, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0x14, 0xbb, 0x5c, 0x87, 0x6c, 0xc5, 0xc1, 0xd2, 0x17, 0x99, 0x83, 0x55, 0x57, 0x32, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xc1, 0x22, 0xf3, 0x98, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x36, 0x38, 0x5e, 0x41, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x68, 0x3a, 0xff, 0xfd, 0xd0, 0x78, 0xfe, 0x38, 0x74, 0x3c, 0x3e, 0x68, 0x2e, 0x00, 0xfe, 0x38, 0x34, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x48, 0x72, 0x1d, 0xb2, 0x15, 0x07, 0x4b, 0x5f, 0x64, 0x0e, 0x56, 0x5d, 0xc9, 0x0c, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x0f, 0x5a, 0x12, 0x80, 0x1f, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x08, 0x55, 0xae, 0x43, 0xb6, 0xe2, 0x60, 0xe9, 0x8b, 0xcc, 0xc1, 0xaa, 0x2b, 0x99, 0xe3, 0xd0, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x45, 0xe6, 0x31, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x87, 0xdd, 0x90, 0xc7, 0xda, 0x30, 0x2e, 0x1b, 0x8e, 0xf6, 0x05, 0xc1, 0x06, 0x09, 0x07, 0xfb, 0x87, 0x34, 0xdc, 0x61, 0xeb, 0xe0, 0x78, 0x3c, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0x2d, 0x90, 0xbf, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xf8, 0x21, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0xed, 0xb9, 0x0e, 0xd9, 0x8a, 0xe3, 0xd0, 0x20, 0xd8, 0x60, 0xe9, 0x7d, 0xcc, 0xc1, 0xaa, 0x2b, 0x99, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x40, 0xa0, 0x77, 0x1d, 0xb2, 0x15, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x01, 0xe1, 0xcb, 0x75, 0xc8, 0x56, 0x1c, 0x87, 0x06, 0xc1, 0x06, 0x41, 0x16, 0xbf, 0x38, 0x08, 0x16, 0x7e, 0x43, 0xb6, 0xe2, 0x60, 0x55, 0x6a, 0xd1, 0xc1, 0x4a, 0x7c, 0x91, 0xe3, 0xf1, 0x71, 0xe8, 0x60, 0xd5, 0x95, 0xcc, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x16, 0xc8, 0xdf, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0xfc, 0xe0, 0xb8, 0xdf, 0x31, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0xa0, 0xd0, 0xe5, 0x3a, 0x64, 0x2b, 0x8e, 0x43, 0x07, 0xab, 0xae, 0x64, 0x8e, 0x43, 0xc7, 0xe3, 0xe3, 0xd0, 0x82, 0x60, 0x83, 0xa5, 0xca, 0x31, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x5a, 0x96, 0x74, 0x1f, 0x7e, 0xe3, 0xf9, 0xe2, 0x20, 0xdb, 0x10, 0x97, 0x41, 0xb0, 0x20, 0x19, 0x38, 0xff, 0x8e, 0xe7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x40, 0xee, 0xef, 0x78, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x87, 0x5f, 0x10, 0x6c, 0xb0, 0xb2, 0x08, 0xe6, 0x20, 0x45, 0xf9, 0x79, 0x90, 0x0c, 0x08, 0xff, 0xaa, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0xa0, 0xa8, 0x1d, 0xcf, 0x0f, 0x56, 0x5d, 0xc9, 0x0c, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0x5a, 0xfd, 0x1d, 0xcf, 0x0f, 0x56, 0x5d, 0xc9, 0x0c, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0x82, 0x60, 0x41, 0x32, 0xf0, 0xd6, 0xdf, 0xf1, 0xfc, 0x20, 0x45, 0xf9, 0xf9, 0x20, 0x99, 0xc1, 0xe2, 0x60, 0xd5, 0x95, 0xcc, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x3e, 0x0e, 0xad, 0x20, 0xd8, 0x60, 0xb9, 0x29, 0xc9, 0xe2, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0x90, 0x3a, 0x18, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0x94, 0xd8, 0xfb, 0x41, 0x8a, 0xf2, 0xf3, 0x20, 0xd8, 0x20, 0xc8, 0xe2, 0x17, 0x07, 0xc1, 0xc2, 0x6f, 0xc8, 0x56, 0x0c, 0x92, 0x81, 0xea, 0x76, 0x10, 0xe4, 0xfc, 0x07, 0x2b, 0xf1, 0x45, 0x8e, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0xa9, 0x83, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x80, 0xf2, 0x9f, 0xea, 0x20, 0xc8, 0xf9, 0x0f, 0x5a, 0x98, 0x7a, 0x1f, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x05, 0xc9, 0x40, 0xf2, 0xed, 0x90, 0x5c, 0x3a, 0x58, 0x03, 0x76, 0x76, 0xd0, 0x8e, 0x24, 0xfc, 0x41, 0xfb, 0x08, 0xef, 0xc7, 0xe3, 0x15, 0x04, 0x1b, 0x2c, 0x55, 0x8e, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x83, 0x55, 0x6b, 0x54, 0xc3, 0x6f, 0x3c, 0x5f, 0x1c, 0x64, 0x1b, 0xe2, 0x32, 0x08, 0x16, 0x24, 0x03, 0x65, 0xef, 0x78, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x24, 0x03, 0x0a, 0x77, 0xb5, 0xe3, 0xf9, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0xc3, 0x2f, 0x08, 0x36, 0x68, 0x38, 0x10, 0xfe, 0x20, 0x5d, 0x70, 0xe8, 0xa0, 0x5d, 0xfb, 0xa5, 0x83, 0x55, 0x57, 0x32, 0xc7, 0xa1, 0xe3, 0xf1, 0x71, 0x68, 0x10, 0x6c, 0xb0, 0x54, 0x39, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0xcb, 0x92, 0xee, 0xc3, 0x6f, 0x3c, 0x5f, 0x1c, 0x64, 0x1b, 0xe2, 0x32, 0x08, 0x36, 0x58, 0xa2, 0x1d, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x1a, 0x24, 0x90, 0x41, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xc1, 0x9a, 0x00, 0x99, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x3f, 0x58, 0xc6, 0x89, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x70, 0xaa, 0x1d, 0xcf, 0x8f, 0x43, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xd6, 0x04, 0xc8, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xc1, 0xda, 0xf2, 0xa5, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0x32, 0x20, 0xd0, 0xd5, 0x8e, 0xe7, 0x83, 0x60, 0x83, 0x56, 0xb6, 0xe0, 0x0f, 0x96, 0xbe, 0xc8, 0x1c, 0x87, 0x0e, 0x56, 0x5d, 0xc9, 0xac, 0xc1, 0xc2, 0x75, 0x9c, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x58, 0x13, 0x20, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0x4b, 0xeb, 0x9f, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0x81, 0xfc, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc0, 0x0f, 0x19, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x24, 0x03, 0x69, 0xae, 0x43, 0xb6, 0x62, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x83, 0xc6, 0xea, 0xe1, 0x0f, 0x9a, 0x6e, 0x82, 0x3f, 0x0e, 0x1d, 0x87, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xac, 0x09, 0x90, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x83, 0x75, 0x52, 0x4f, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x64, 0x60, 0xfc, 0x8e, 0xe7, 0x83, 0x60, 0x83, 0x56, 0xef, 0xe1, 0x0f, 0x96, 0xbe, 0xc8, 0x1c, 0x87, 0x0e, 0x56, 0x5d, 0xc9, 0xac, 0x41, 0x4a, 0x9f, 0xf5, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0xac, 0x09, 0x90, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xd0, 0xa8, 0x36, 0xfc, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x6b, 0x02, 0x64, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0xfc, 0x60, 0x01, 0x5b, 0xd5, 0xf0, 0x1b, 0xcf, 0x0f, 0x5a, 0x26, 0x88, 0x3f, 0x0e, 0x1d, 0x87, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x24, 0x1b, 0x2c, 0x2a, 0x21, 0x39, 0x64, 0x2b, 0x0e, 0x96, 0xbe, 0xc8, 0xac, 0xc1, 0x02, 0x8e, 0x9c, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x7c, 0x90, 0x3e, 0x7d, 0x32, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xc1, 0x9a, 0x00, 0x99, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x3f, 0xe4, 0xbe, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0xe9, 0xae, 0x43, 0xb6, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xe9, 0x51, 0x3e, 0x8b, 0xc3, 0x6e, 0xc8, 0x63, 0x2d, 0x08, 0x16, 0x24, 0x03, 0xeb, 0x75, 0x07, 0xc3, 0xd0, 0xe7, 0xd0, 0x41, 0xe3, 0x10, 0xc3, 0xe3, 0xf1, 0xf0, 0x1b, 0xcf, 0x87, 0x5f, 0x90, 0x0c, 0xc4, 0xea, 0x90, 0xad, 0x38, 0x38, 0x42, 0xd0, 0x1f, 0x87, 0x8e, 0x43, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xd6, 0x04, 0xc8, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x68, 0x89, 0x25, 0x7e, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x35, 0x01, 0x32, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x96, 0x06, 0xd0, 0x0c, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x58, 0xb4, 0x4f, 0x75, 0xc8, 0x56, 0x1c, 0x87, 0x8e, 0x43, 0x07, 0xab, 0xae, 0x64, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xac, 0x09, 0x90, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xd0, 0x12, 0x4b, 0xfc, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x6b, 0x02, 0x64, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x2c, 0x64, 0x8c, 0x1a, 0x7e, 0xe3, 0xf9, 0x41, 0x93, 0x3b, 0xf0, 0xc7, 0xa1, 0xe3, 0xd0, 0xc1, 0xaa, 0x2b, 0x99, 0x41, 0xb0, 0x41, 0x8b, 0x3f, 0xf0, 0x07, 0x4b, 0x5f, 0x64, 0x0e, 0x56, 0x5d, 0xc9, 0xac, 0x41, 0xa2, 0x1f, 0xf4, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x10, 0x2c, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0xac, 0x09, 0x90, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xd0, 0x16, 0x97, 0xfb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x8d, 0xbc, 0xc4, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x19, 0xf8, 0xfe, 0xef, 0xb0, 0x42, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xe0, 0x87, 0x6c, 0x30, 0xf0, 0x43, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0xe1, 0x60, 0xff, 0xd0, 0xa8, 0xe5, 0x60, 0xe0, 0x87, 0x1c, 0x87, 0x8e, 0xc7, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xb4, 0x70, 0x04, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x28, 0x5c, 0x87, 0x6c, 0xc5, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x1a, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0xc8, 0x3c, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0xe0, 0xad, 0xbe, 0xc3, 0x0a, 0xed, 0x41, 0x8a, 0xf2, 0xf3, 0x41, 0x7b, 0x3a, 0xf1, 0xc7, 0xa1, 0x83, 0x55, 0x57, 0x32, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xd6, 0x04, 0xc8, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xc1, 0xa2, 0x23, 0xa4, 0x83, 0x66, 0x89, 0xe2, 0x8f, 0x43, 0x07, 0xab, 0xae, 0x64, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xac, 0x09, 0x90, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xd0, 0x18, 0x65, 0xfc, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x6b, 0x02, 0x64, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x2c, 0x36, 0x48, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0x05, 0xf2, 0xf7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x63, 0xc3, 0xf5, 0xa0, 0xc9, 0x02, 0xf8, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0xb0, 0xea, 0x4a, 0x66, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x9a, 0x00, 0x99, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x8d, 0x51, 0xc6, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0x26, 0x40, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x62, 0x83, 0x94, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x5a, 0x20, 0x7f, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xf0, 0x43, 0x0e, 0x1a, 0xd7, 0x80, 0x3f, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0x07, 0xab, 0xae, 0x64, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xac, 0x09, 0x90, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xd0, 0x18, 0x65, 0xfc, 0x41, 0xfb, 0x53, 0xf1, 0xc7, 0xa1, 0x83, 0x55, 0x57, 0x32, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xd6, 0x04, 0xc8, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x68, 0x8b, 0xcb, 0x7d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x46, 0x5e, 0xe2, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0x0d, 0xda, 0x95, 0x8b, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xf0, 0x43, 0x36, 0x18, 0xf8, 0x21, 0x87, 0xbc, 0xec, 0x71, 0xe8, 0x78, 0x3c, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x10, 0xbc, 0xe3, 0xf9, 0x71, 0xe8, 0x38, 0x74, 0xb0, 0xea, 0x4a, 0x66, 0x10, 0x6c, 0xd0, 0x38, 0x60, 0xfc, 0xc1, 0xd2, 0x17, 0x99, 0x35, 0x48, 0x72, 0x8e, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x10, 0x2c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0x60, 0x4d, 0x80, 0xcc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x1f, 0x2c, 0xd5, 0x42, 0x3a, 0x68, 0x1b, 0x36, 0xfe, 0x38, 0x34, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x24, 0x03, 0x4d, 0xdf, 0x8e, 0xe7, 0x83, 0x60, 0x83, 0xd6, 0x57, 0xe3, 0x0f, 0x9a, 0x6e, 0x82, 0x3f, 0x58, 0x75, 0x25, 0x33, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0x4d, 0x80, 0xcc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x1f, 0x2c, 0x06, 0x78, 0x1a, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x92, 0x0d, 0x16, 0xeb, 0x99, 0x1c, 0xb2, 0x15, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0xbe, 0x20, 0x19, 0xd0, 0xfc, 0x2e, 0xd7, 0x21, 0x5b, 0x31, 0x48, 0x06, 0x04, 0x2b, 0xd7, 0x21, 0x5b, 0x31, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x10, 0xec, 0x5d, 0x87, 0x6c, 0xc5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x81, 0xf7, 0xb9, 0x0e, 0xd9, 0x8a, 0x83, 0xf6, 0x2e, 0xe2, 0x8f, 0x43, 0xc7, 0xa1, 0x83, 0xd6, 0x34, 0xe0, 0x8f, 0x43, 0x07, 0xab, 0xae, 0x64, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x2c, 0x32, 0x8f, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x1b, 0x2c, 0x95, 0x57, 0x3a, 0x28, 0x16, 0xc9, 0x8e, 0xc7, 0x07, 0xad, 0x4d, 0xc3, 0x1f, 0x87, 0x0e, 0x56, 0x5d, 0xc9, 0xac, 0x41, 0x12, 0x11, 0xc9, 0x20, 0xd8, 0x60, 0x4d, 0x80, 0xcc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x86, 0xcc, 0xe3, 0x0f, 0x9a, 0x25, 0x8a, 0x3f, 0x0e, 0xad, 0x41, 0x8a, 0x33, 0xc9, 0x20, 0xd8, 0x60, 0x4d, 0x80, 0xcc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x76, 0x31, 0xde, 0x87, 0xdf, 0x78, 0x7e, 0xd0, 0xe8, 0x7e, 0xfc, 0x71, 0x68, 0x0d, 0x86, 0x6b, 0xd5, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0xb4, 0x40, 0xfe, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xe3, 0x41, 0x98, 0x8e, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x58, 0xba, 0xcb, 0x75, 0xc8, 0x56, 0x1c, 0x87, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xac, 0x09, 0x90, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x83, 0xe5, 0xd3, 0x4b, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0xa0, 0x55, 0x6f, 0xf8, 0x41, 0xb0, 0x41, 0x1b, 0x33, 0xf2, 0x07, 0x4b, 0x5f, 0x64, 0x8e, 0x43, 0x07, 0xab, 0xae, 0x64, 0xd6, 0x20, 0x1d, 0xca, 0x63, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0xd6, 0x04, 0xc8, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xc1, 0x8a, 0xa6, 0xa3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xd6, 0x04, 0xc8, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xc1, 0xc2, 0x0b, 0xa3, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x01, 0xc9, 0xee, 0x6a, 0xc7, 0xf3, 0xe3, 0xd0, 0x71, 0x68, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x20, 0x79, 0x97, 0xeb, 0x90, 0xad, 0x38, 0x58, 0xfa, 0x22, 0xb3, 0x06, 0x29, 0x45, 0xcf, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x82, 0x85, 0xdf, 0x78, 0x7c, 0xd0, 0x98, 0x84, 0xfc, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x45, 0xe6, 0x31, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x83, 0x45, 0x1f, 0x4d, 0x1b, 0xac, 0x55, 0x3f, 0x1a, 0x04, 0x8b, 0xc3, 0x6e, 0x10, 0x7c, 0xcc, 0x1b, 0x62, 0x38, 0x08, 0x36, 0x48, 0x8c, 0x96, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x88, 0xff, 0xf0, 0x1b, 0xcf, 0x0f, 0x56, 0x2c, 0xe8, 0x1c, 0x87, 0x8e, 0x6f, 0xc7, 0xe3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xda, 0x31, 0x90, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x20, 0xf0, 0xa9, 0x0e, 0xd9, 0x8a, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0x32, 0xb0, 0xf4, 0x77, 0x3c, 0x3f, 0x68, 0x84, 0x04, 0xfe, 0x38, 0x74, 0x1c, 0x3a, 0x58, 0x75, 0x25, 0x33, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0x4d, 0x80, 0xcc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x1f, 0xac, 0x8c, 0x58, 0x1a, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0xb4, 0xc1, 0x1f, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0xe9, 0xff, 0xf8, 0x83, 0xf6, 0x2e, 0xe2, 0x8f, 0x43, 0x07, 0x8d, 0x90, 0xc0, 0x1f, 0x87, 0x0e, 0x56, 0x5d, 0xc9, 0xac, 0x41, 0xfa, 0xd3, 0xf3, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x26, 0xba, 0xe4, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x2c, 0x32, 0x8f, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x1b, 0xac, 0x4b, 0x51, 0x1a, 0x04, 0x0b, 0x92, 0x81, 0xae, 0x6f, 0x87, 0x15, 0xda, 0x43, 0xa3, 0x96, 0xe3, 0xf1, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xed, 0x18, 0xc8, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x68, 0x9d, 0x4e, 0x7e, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0xb4, 0x9e, 0x27, 0x3f, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd9, 0x60, 0xad, 0xe2, 0xc8, 0x21, 0x5b, 0x71, 0xb0, 0xf4, 0x45, 0xe6, 0x38, 0x74, 0x1c, 0x3a, 0x58, 0x75, 0x25, 0x33, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0x4d, 0x80, 0xcc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x86, 0xcc, 0xe3, 0x87, 0xdf, 0x78, 0x3e, 0xfc, 0x06, 0xcd, 0xee, 0xc4, 0x1f, 0x2c, 0xd6, 0xec, 0x3a, 0x0e, 0x1d, 0xac, 0xba, 0x92, 0x59, 0x83, 0xb4, 0x97, 0xea, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x9a, 0xe8, 0x92, 0x1f, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0xc8, 0x3c, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x2d, 0x2a, 0xc6, 0x1f, 0xa4, 0x0b, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xbf, 0x41, 0xb3, 0x3b, 0xf1, 0x07, 0xe3, 0x0e, 0xea, 0x60, 0x51, 0x8a, 0xcc, 0x71, 0xe8, 0x60, 0xd5, 0x95, 0xcc, 0x1a, 0x2c, 0xf1, 0x8f, 0x19, 0x04, 0x1b, 0x2c, 0x32, 0x8f, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x41, 0x2d, 0xb6, 0x38, 0xec, 0x86, 0x5d, 0x83, 0x0d, 0x16, 0x6a, 0x21, 0x6d, 0xb0, 0xe4, 0x08, 0xe9, 0x20, 0x28, 0xbd, 0x8f, 0xc7, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x41, 0x32, 0xa0, 0xf0, 0xef, 0x3a, 0x64, 0x2b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x3f, 0x68, 0xa4, 0x3d, 0xfe, 0x38, 0x34, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x34, 0xbb, 0x13, 0x7f, 0xb0, 0x52, 0xb2, 0xeb, 0xa0, 0xe9, 0x26, 0xf8, 0xe3, 0xd0, 0x1a, 0x24, 0xa4, 0xdc, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0x6b, 0x02, 0x64, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0xfc, 0x60, 0xd1, 0x47, 0xd3, 0x41, 0x7b, 0x17, 0xf1, 0xc7, 0xa1, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x80, 0xc0, 0xe5, 0x3a, 0x64, 0x2b, 0x0e, 0x96, 0xbe, 0xc8, 0x0c, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x58, 0x13, 0x20, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0x8b, 0x1f, 0x9a, 0x0e, 0x9a, 0x44, 0x91, 0x3f, 0x0e, 0x1d, 0xac, 0xba, 0x92, 0x19, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x58, 0xbb, 0xcb, 0x75, 0xc8, 0x56, 0x1c, 0x2c, 0x7d, 0x91, 0x59, 0x83, 0xc4, 0x10, 0x99, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0x8d, 0xbc, 0xc4, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0xd5, 0x1a, 0xd5, 0xe2, 0x20, 0x58, 0x90, 0x0c, 0xec, 0xd7, 0x1d, 0x0c, 0x43, 0x9f, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x34, 0x52, 0x4e, 0x72, 0x50, 0x30, 0x3a, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x06, 0x8b, 0x5a, 0x97, 0x36, 0xa4, 0x0e, 0x36, 0x58, 0x3e, 0xbd, 0x74, 0xd8, 0x2b, 0x3c, 0x1e, 0x1f, 0x87, 0x8e, 0xc7, 0xc3, 0x6f, 0x3c, 0x3f, 0x68, 0xf0, 0x1b, 0xfe, 0x38, 0x34, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0x4d, 0x80, 0xcc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x1f, 0x2c, 0x86, 0x59, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0x0d, 0xfe, 0xf8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x4d, 0xff, 0xc7, 0x0f, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0xe6, 0x07, 0xe2, 0x07, 0xc1, 0x06, 0xed, 0x5d, 0xc4, 0x0f, 0x82, 0x0d, 0x82, 0x2c, 0x7e, 0x71, 0x10, 0x2c, 0xfc, 0x86, 0x6c, 0xc5, 0x20, 0x19, 0x48, 0xbf, 0x1d, 0xcf, 0x0f, 0x56, 0xe2, 0x8b, 0x1c, 0x8f, 0x8f, 0x43, 0xc7, 0xa1, 0x83, 0x55, 0x57, 0x32, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x01, 0x81, 0xce, 0x75, 0xc8, 0x56, 0x1c, 0x2c, 0x7d, 0x91, 0x59, 0x83, 0xe4, 0x9f, 0xe7, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x68, 0x81, 0xfc, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0xc7, 0xc3, 0x07, 0xab, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0x42, 0x9d, 0xeb, 0x90, 0xad, 0x38, 0x0e, 0x0d, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x58, 0x13, 0x20, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x51, 0x6d, 0xf8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xd6, 0x04, 0xc8, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xc1, 0x12, 0x33, 0xab, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x41, 0x1b, 0xfc, 0xf1, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x9a, 0xfe, 0x8f, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0x1d, 0x03, 0xf9, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x0d, 0x27, 0xc8, 0x1f, 0xb4, 0xf4, 0x31, 0x7f, 0x1c, 0x3a, 0x0e, 0x0d, 0x82, 0x0d, 0x5a, 0x32, 0x9a, 0x3f, 0x58, 0xfa, 0x22, 0x73, 0x1c, 0x3a, 0x0e, 0x1d, 0xac, 0xba, 0x92, 0x59, 0x83, 0x25, 0xbb, 0x38, 0x07, 0xcb, 0x75, 0x61, 0xd6, 0x60, 0x65, 0x38, 0xce, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0xb4, 0x40, 0xfe, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xe3, 0x41, 0x91, 0x8a, 0x79, 0xd0, 0xa0, 0x12, 0xfc, 0x71, 0x68, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x83, 0x06, 0x9d, 0xe1, 0x0f, 0x56, 0x5d, 0xc9, 0xac, 0xc1, 0x92, 0x57, 0x9c, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x20, 0x58, 0x10, 0x2c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0x60, 0x91, 0x79, 0xcc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xd6, 0xb4, 0x1c, 0x2d, 0x2e, 0x1e, 0x1c, 0xc3, 0x0d, 0x0e, 0xa9, 0x83, 0xe3, 0xf1, 0x41, 0x7b, 0x17, 0xf1, 0xc7, 0xa1, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x6b, 0x02, 0x64, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0xfc, 0x60, 0xb9, 0xdb, 0xd2, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0xa0, 0xf9, 0x81, 0xf8, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x80, 0xa7, 0xef, 0x72, 0x1d, 0xb2, 0x15, 0x07, 0x4b, 0x5f, 0x64, 0x06, 0xc1, 0x06, 0xed, 0x5d, 0xc4, 0x1f, 0x34, 0xdd, 0x04, 0x7f, 0xd0, 0x08, 0x09, 0xfc, 0x71, 0xe8, 0x60, 0xd5, 0x95, 0xcc, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x35, 0x01, 0x32, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x7e, 0xb0, 0xbe, 0x6f, 0x69, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0xb4, 0x1c, 0x39, 0x3f, 0x08, 0x36, 0x68, 0xe9, 0x63, 0xfe, 0xa0, 0xe9, 0x26, 0xf8, 0xe3, 0xd0, 0xc1, 0xaa, 0x2b, 0x99, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0x60, 0x4d, 0x80, 0xcc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x26, 0x46, 0xe7, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x58, 0x13, 0x20, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x99, 0x18, 0xf9, 0xe1, 0x37, 0x9e, 0x1f, 0x34, 0x2a, 0x39, 0x7f, 0x1c, 0x3a, 0x0e, 0x1d, 0x34, 0x00, 0x24, 0x7f, 0xb0, 0xea, 0x4a, 0x66, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x22, 0xf3, 0x98, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x2c, 0xb4, 0xb6, 0x5a, 0xdc, 0x60, 0xb9, 0xdb, 0xd2, 0x1a, 0x2c, 0xd5, 0x42, 0x3a, 0xb4, 0x90, 0xdc, 0x60, 0xb9, 0xdb, 0xd2, 0xe2, 0xe1, 0x43, 0x98, 0xc3, 0xb8, 0x1c, 0x8f, 0x87, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x68, 0x39, 0x72, 0x7e, 0x10, 0x6c, 0xd0, 0x80, 0x94, 0xfc, 0x41, 0xd3, 0x4d, 0xf0, 0x07, 0xcd, 0x56, 0xc9, 0x1f, 0x87, 0x0e, 0x56, 0x5d, 0xc9, 0x1c, 0x34, 0x50, 0x39, 0xbf, 0x06, 0x69, 0x51, 0x34, 0x83, 0x60, 0x83, 0x45, 0xe6, 0x31, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0xf1, 0xa0, 0x45, 0x33, 0xf9, 0xe3, 0xf1, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xed, 0x18, 0xc8, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x68, 0x9d, 0x4e, 0x7e, 0xf8, 0x8d, 0xe7, 0x07, 0x0d, 0xeb, 0xc9, 0x1f, 0x87, 0x8e, 0x43, 0x6b, 0xb0, 0x62, 0x3c, 0xe6, 0x20, 0x7d, 0xfa, 0x64, 0x0d, 0xd2, 0xaa, 0xa3, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x58, 0x13, 0x20, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x21, 0xf3, 0xf8, 0x83, 0x76, 0x3c, 0xe3, 0x8f, 0x43, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xd0, 0x12, 0x7b, 0xfc, 0x20, 0xd8, 0xa0, 0xa5, 0xcc, 0xf8, 0x83, 0xa6, 0x9b, 0xe0, 0x0f, 0x56, 0x5d, 0xc9, 0x0c, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x58, 0x13, 0x20, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0x2b, 0xd0, 0x9c, 0x86, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x41, 0xcb, 0xfa, 0xf1, 0x07, 0x6d, 0x14, 0xc0, 0x1f, 0x87, 0x0e, 0x56, 0x5d, 0xc9, 0x1c, 0x34, 0x11, 0x21, 0xbf, 0x06, 0xc9, 0x43, 0xcc, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x58, 0x6b, 0x24, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x78, 0x50, 0x50, 0x64, 0x1e, 0x87, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xac, 0x09, 0x90, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xd0, 0x98, 0x04, 0xfd, 0x41, 0x4b, 0xde, 0xf2, 0xc7, 0xa1, 0x83, 0x55, 0x57, 0x32, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x16, 0x99, 0xc7, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x68, 0x17, 0x58, 0x7e, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0xd0, 0xec, 0x4e, 0xfc, 0xc1, 0x89, 0xd9, 0xf7, 0x38, 0x74, 0xb0, 0xea, 0x4a, 0x66, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x9a, 0x00, 0x99, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x3f, 0x58, 0xc7, 0xad, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x1b, 0xfc, 0xf1, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x9a, 0xfe, 0x8f, 0x1f, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x82, 0x60, 0xe1, 0x37, 0x1e, 0x1f, 0x34, 0x5c, 0x20, 0x7f, 0xd0, 0x04, 0xcc, 0xfc, 0x20, 0xd8, 0xa0, 0xb5, 0x69, 0xf8, 0x83, 0x36, 0x63, 0xe6, 0x8f, 0x43, 0xc7, 0xa1, 0x83, 0x55, 0x57, 0x32, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xd6, 0x04, 0xc8, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x68, 0x8b, 0xcb, 0x7d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x36, 0xf8, 0xe3, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x41, 0xb2, 0x41, 0x33, 0x01, 0xef, 0x87, 0x6c, 0xc5, 0x20, 0x19, 0x90, 0xb8, 0xcb, 0x75, 0xc8, 0x56, 0x1c, 0xb4, 0x4e, 0x20, 0x7f, 0x1c, 0x3a, 0x0e, 0x1d, 0xac, 0xba, 0x92, 0x39, 0x58, 0x40, 0x26, 0x33, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0xc1, 0x72, 0x5d, 0x98, 0x83, 0x55, 0x57, 0x32, 0x6b, 0x90, 0xa2, 0xc9, 0x7c, 0x90, 0xd8, 0x72, 0xb2, 0x06, 0xe9, 0xa7, 0x16, 0x83, 0x60, 0x83, 0x36, 0xf8, 0xe3, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x41, 0x32, 0xf0, 0x3b, 0xd7, 0x21, 0x5b, 0x31, 0x48, 0x36, 0x58, 0xec, 0x45, 0x72, 0xc8, 0x56, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0x26, 0x40, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x0f, 0xd6, 0xa6, 0x21, 0x1d, 0xb4, 0x4e, 0x20, 0x7f, 0x1c, 0x3a, 0x0e, 0xad, 0x41, 0xa2, 0xd2, 0xf3, 0x20, 0xd8, 0xa0, 0x0d, 0xfe, 0xf8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0xdf, 0xa0, 0xb5, 0x2d, 0xfa, 0x83, 0x06, 0xb3, 0xe8, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x58, 0x13, 0x20, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0xcb, 0x5b, 0x91, 0x0e, 0x5a, 0x27, 0x90, 0x3f, 0x0e, 0x1d, 0x87, 0xd6, 0x60, 0x61, 0x3d, 0xce, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x24, 0x03, 0xf9, 0xb7, 0xe3, 0xf9, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0xa0, 0x39, 0xd7, 0x21, 0x5b, 0x71, 0xb0, 0xf4, 0x45, 0xe6, 0x10, 0xc3, 0xe3, 0xd0, 0xf1, 0xf8, 0x38, 0xb4, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0x34, 0xdc, 0xf9, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x06, 0xad, 0xe6, 0x31, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xa4, 0x6a, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0xf0, 0x60, 0xc5, 0x13, 0xd1, 0x71, 0xe8, 0x78, 0x3c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0xa2, 0x51, 0x97, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x80, 0x40, 0xe7, 0x3a, 0xac, 0xd0, 0x1e, 0x87, 0x8e, 0x43, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x1a, 0xee, 0x7c, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0xc8, 0x7f, 0x58, 0x1c, 0x04, 0x1b, 0xa4, 0x00, 0xb8, 0x0f, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xf1, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x38, 0x74, 0xd0, 0x54, 0x57, 0xcb, 0x71, 0xe8, 0x78, 0x3c, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x05, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0x34, 0xdc, 0xf9, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x59, 0x42, 0xfa, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x80, 0x40, 0xef, 0x3a, 0xac, 0xd0, 0x1e, 0x34, 0x0c, 0x49, 0x7f, 0x1c, 0x1a, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0x70, 0xe7, 0xfb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xd6, 0xb4, 0x1c, 0x2d, 0x1e, 0x0c, 0x54, 0xb5, 0xe3, 0xf1, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x80, 0xa3, 0xbb, 0xda, 0xf1, 0xf8, 0x38, 0x74, 0xd0, 0x30, 0xa2, 0xfb, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x07, 0x8d, 0xa2, 0xd2, 0x1f, 0x34, 0x8c, 0xe8, 0x7e, 0x1c, 0x3a, 0x58, 0xc5, 0x4d, 0xb6, 0x82, 0x60, 0x83, 0xa5, 0xca, 0x31, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x5a, 0x69, 0x85, 0x1f, 0x7e, 0xe3, 0xf9, 0xe2, 0x20, 0xdb, 0x10, 0x97, 0x41, 0xb0, 0xc1, 0x12, 0xed, 0x98, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0xd7, 0x20, 0xa5, 0xcf, 0x7a, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x1f, 0x34, 0x29, 0x11, 0x7f, 0xd0, 0x94, 0x46, 0xfc, 0x1a, 0x24, 0x90, 0x41, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xc1, 0x9a, 0x00, 0x99, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x3f, 0x58, 0x40, 0x60, 0x75, 0xd0, 0xde, 0x45, 0xfc, 0x71, 0xe8, 0xa0, 0xa5, 0x70, 0xf8, 0x35, 0x58, 0xc0, 0x91, 0x33, 0x08, 0x36, 0x58, 0x13, 0x20, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0xab, 0x4c, 0xa9, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0xc7, 0x40, 0x7e, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x9b, 0x01, 0xf3, 0x07, 0xad, 0x4d, 0xc3, 0x1f, 0x87, 0x8e, 0x43, 0x6b, 0x90, 0xe8, 0x07, 0x3d, 0xfc, 0xc6, 0xe3, 0xe1, 0x37, 0x1e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x05, 0xc1, 0x82, 0x60, 0x83, 0xe6, 0x4f, 0xe2, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xac, 0x09, 0x90, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xd0, 0x12, 0x4b, 0xfc, 0x41, 0x3b, 0x9e, 0xf1, 0xc7, 0xa1, 0x83, 0x55, 0x57, 0x32, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xd6, 0x04, 0xc8, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x68, 0x89, 0x25, 0xfe, 0xa0, 0x6d, 0xd8, 0xf8, 0xe3, 0xd0, 0xc1, 0xaa, 0x2b, 0x99, 0x83, 0x26, 0x9d, 0xe2, 0x0f, 0x9a, 0xe3, 0x8e, 0x5f, 0x83, 0x14, 0x67, 0x92, 0x41, 0xb0, 0xc1, 0x22, 0xf3, 0x98, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xac, 0x5a, 0xa3, 0x3a, 0x18, 0xbb, 0x56, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xac, 0x09, 0x90, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x83, 0x45, 0xee, 0x54, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xb4, 0xc1, 0x1f, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0xe9, 0xff, 0xf8, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x58, 0x6b, 0x24, 0x73, 0x90, 0xa2, 0xfc, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x3e, 0x68, 0x97, 0x6b, 0x7e, 0x10, 0x6c, 0xd0, 0x70, 0x82, 0xfc, 0xc1, 0xd2, 0x17, 0x99, 0x83, 0x55, 0x57, 0x32, 0x07, 0x4d, 0x66, 0xce, 0x1f, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0x35, 0x58, 0xb2, 0x8b, 0x33, 0x08, 0x36, 0x58, 0x13, 0x20, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0x8b, 0xf6, 0xaa, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0x83, 0x3f, 0x7e, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x9b, 0x45, 0xf4, 0x07, 0x8d, 0x6f, 0xcd, 0x1f, 0x87, 0x8e, 0x43, 0x6b, 0x30, 0x5c, 0xab, 0x0e, 0x1a, 0x71, 0x91, 0x5f, 0x83, 0x14, 0x4d, 0xe6, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x58, 0x13, 0x20, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0x0b, 0x74, 0xa9, 0x86, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x0f, 0x56, 0xe5, 0xc7, 0x0c, 0x82, 0x0d, 0x1a, 0xc7, 0x8a, 0x3f, 0x58, 0x75, 0x25, 0x73, 0x1c, 0x3a, 0x68, 0x80, 0x5e, 0x7e, 0x83, 0x46, 0x88, 0xe4, 0xd7, 0x20, 0xf9, 0xe7, 0x79, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x26, 0x81, 0xe6, 0x07, 0xc1, 0x06, 0x0d, 0x3c, 0xcd, 0x1f, 0xac, 0xba, 0x92, 0x59, 0x83, 0xe4, 0x21, 0xe6, 0x41, 0xb0, 0x41, 0x0b, 0xe4, 0xef, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x5a, 0x69, 0x85, 0x3f, 0x58, 0x4f, 0x26, 0x73, 0x1c, 0x5a, 0x83, 0x85, 0xeb, 0x38, 0x83, 0x60, 0x83, 0x16, 0xc8, 0xdf, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0xdc, 0xf0, 0x45, 0xcd, 0xc1, 0x2a, 0x07, 0xa3, 0x83, 0xc6, 0xe4, 0xe1, 0x8f, 0x43, 0x6b, 0xb0, 0x32, 0x1c, 0x67, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x16, 0xd8, 0xe6, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x3f, 0x68, 0xd5, 0x9b, 0xfe, 0x60, 0xd5, 0x95, 0xcc, 0x1a, 0x24, 0x86, 0xc8, 0x0c, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x41, 0x23, 0x2f, 0xf1, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0xe7, 0x20, 0x04, 0x1f, 0x16, 0x07, 0xc1, 0x06, 0xcd, 0x44, 0xcc, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0x91, 0x72, 0x92, 0x41, 0x32, 0x38, 0x75, 0xe8, 0xab, 0x31, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x6f, 0x3c, 0xde, 0x60, 0x75, 0x91, 0xd5, 0xc2, 0x6f, 0x3c, 0x1e, 0x76, 0x43, 0x22, 0x60, 0x43, 0xea, 0x60, 0x10, 0x6c, 0xd0, 0xd2, 0x00, 0xd4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa1, 0x58, 0xb4, 0xc1, 0x58, 0xec, 0x1c, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0xa5, 0x01, 0xa8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x43, 0xb1, 0x68, 0x83, 0xa5, 0xa9, 0x27, 0x87, 0x54, 0xcd, 0x71, 0xe8, 0x38, 0x74, 0x58, 0xfb, 0x3d, 0x1e, 0x1f, 0x87, 0x8e, 0xc7, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x35, 0x01, 0x32, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x06, 0x7e, 0xc8, 0x41, 0x4b, 0x1f, 0xf3, 0xc7, 0xa1, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x68, 0xd5, 0x1b, 0x7e, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x9a, 0x00, 0x99, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x03, 0x3f, 0x64, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0xf8, 0xa0, 0x8d, 0x9d, 0xf9, 0x41, 0xb0, 0xc1, 0xd2, 0xfb, 0x98, 0x41, 0xb0, 0x41, 0x90, 0xc5, 0x2f, 0x0e, 0x82, 0x85, 0xdf, 0x90, 0xad, 0x38, 0x28, 0x9e, 0x0f, 0x0e, 0x56, 0xe2, 0x8b, 0x1c, 0x8f, 0x8f, 0x43, 0x07, 0x4d, 0x37, 0xc1, 0x1f, 0xac, 0xba, 0x92, 0x39, 0x0e, 0x1d, 0xb4, 0x9c, 0x33, 0xbf, 0x06, 0x2b, 0xc6, 0x63, 0x86, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x41, 0xab, 0xde, 0xf4, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xd6, 0x04, 0xc8, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xc1, 0xea, 0x22, 0xab, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x5a, 0xf5, 0x86, 0x3f, 0x68, 0x39, 0x67, 0x7e, 0x10, 0x6c, 0xb0, 0xf4, 0x3e, 0xe6, 0xa0, 0xe9, 0x26, 0xf8, 0xe3, 0xd0, 0xc1, 0xaa, 0x2b, 0x99, 0x43, 0x0c, 0x8f, 0x43, 0xc7, 0xe3, 0xe3, 0xd0, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x82, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x1a, 0xee, 0x7c, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x7a, 0x94, 0xcf, 0xe2, 0x06, 0x4b, 0xb5, 0x90, 0x16, 0x76, 0x61, 0x37, 0x74, 0x1c, 0x59, 0xd8, 0x0d, 0x79, 0xac, 0x85, 0xdd, 0x60, 0xf4, 0x62, 0x2d, 0xdc, 0xc1, 0x42, 0x5e, 0xfd, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0x06, 0x69, 0xa1, 0xd9, 0x07, 0xc5, 0x6b, 0xe4, 0x20, 0xd8, 0xa0, 0x9d, 0x5b, 0xf3, 0x83, 0x56, 0xee, 0x54, 0x8e, 0xc7, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0x83, 0x83, 0xfe, 0xfa, 0xc1, 0x11, 0x82, 0xfe, 0x38, 0x34, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0x65, 0x2c, 0xf7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x0d, 0x99, 0xc7, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0x32, 0x96, 0xfb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa5, 0x01, 0x34, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0x16, 0xed, 0x53, 0x1d, 0x56, 0x68, 0x8f, 0x43, 0xc7, 0xa1, 0x83, 0x55, 0xdc, 0x64, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x5a, 0xc6, 0x72, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xd0, 0x90, 0x79, 0xfc, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x2d, 0x63, 0xb9, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x58, 0xc8, 0x18, 0x35, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0xe2, 0x64, 0xb2, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x03, 0x3f, 0x64, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0xa0, 0x3d, 0xd7, 0x61, 0x85, 0xf6, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x1d, 0xac, 0xe2, 0x26, 0x1b, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0x32, 0x96, 0xfb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x76, 0x31, 0xde, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0x78, 0xf0, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x17, 0x24, 0x03, 0x9a, 0xdf, 0xe5, 0x3a, 0xac, 0xd0, 0x0e, 0x92, 0x01, 0xc1, 0xca, 0x75, 0x58, 0xa1, 0x3d, 0x68, 0x41, 0xf2, 0xfd, 0x38, 0x74, 0x1c, 0x3a, 0x58, 0xc5, 0x4d, 0x36, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0xe1, 0xc1, 0xf7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0xdf, 0xa0, 0x0d, 0xda, 0xf7, 0x83, 0x26, 0x73, 0xdf, 0x0f, 0x96, 0x68, 0xa2, 0x1d, 0x87, 0x0e, 0x56, 0x71, 0x93, 0x2d, 0x08, 0x36, 0x68, 0xb8, 0xf3, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0xd8, 0x60, 0x19, 0x97, 0xc0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa1, 0x58, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x0a, 0x80, 0xfb, 0x21, 0xd1, 0x7a, 0x1c, 0x3a, 0x1e, 0x0f, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x9a, 0x70, 0xa5, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0x6c, 0xb0, 0x06, 0x81, 0xe4, 0xb0, 0x42, 0x7b, 0x1c, 0x1a, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0x84, 0x2b, 0xfd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0x83, 0xb5, 0xc2, 0x23, 0x87, 0x15, 0xda, 0xe3, 0xd0, 0x41, 0xc3, 0x88, 0xee, 0xc7, 0xa1, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x83, 0x56, 0xf3, 0x98, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x52, 0x35, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0xb8, 0xc1, 0x52, 0x2d, 0xa4, 0x83, 0x45, 0xd1, 0x5c, 0xc7, 0xe3, 0xe3, 0xd0, 0xf1, 0x78, 0x10, 0x2c, 0x2e, 0x08, 0x16, 0x24, 0x03, 0xc3, 0x75, 0x30, 0xde, 0x75, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xac, 0x40, 0x06, 0x1a, 0x7e, 0xe3, 0xf9, 0xf0, 0x0b, 0x92, 0x01, 0xc1, 0x2e, 0x77, 0xc8, 0x56, 0x1c, 0x94, 0x0c, 0x4d, 0xc7, 0xa1, 0x05, 0xc1, 0xe2, 0x41, 0xb0, 0x2c, 0x2d, 0x0e, 0x82, 0x85, 0x5d, 0xb8, 0xc5, 0x83, 0x56, 0x6c, 0x39, 0x0f, 0xa9, 0x83, 0x85, 0x5d, 0xb8, 0x0d, 0xa9, 0x83, 0x83, 0xa6, 0xaa, 0xec, 0x37, 0x68, 0xaa, 0xca, 0xfe, 0x70, 0x8a, 0x0d, 0xbb, 0x70, 0x8b, 0x07, 0xcd, 0xfb, 0x72, 0x1e, 0x52, 0x07, 0x0b, 0xbb, 0x70, 0x1b, 0x52, 0x07, 0x07, 0x6d, 0x71, 0xd9, 0x6f, 0xd0, 0x16, 0x97, 0xfd, 0xe1, 0x14, 0x1b, 0x76, 0xe1, 0x16, 0x0f, 0xda, 0x33, 0xe6, 0x3c, 0xa4, 0x0e, 0x16, 0x76, 0xe1, 0x36, 0xa4, 0x0e, 0x0e, 0x1a, 0x1b, 0xb3, 0xdf, 0xa0, 0xb1, 0x31, 0xfb, 0xc3, 0x29, 0x36, 0xec, 0xc2, 0x2d, 0x1e, 0x34, 0xec, 0xcc, 0x79, 0x48, 0x1d, 0x2c, 0xec, 0xc2, 0x6d, 0x48, 0x1d, 0x1c, 0xb4, 0xa6, 0x66, 0xbf, 0x41, 0x6b, 0x6a, 0xf6, 0x87, 0x53, 0x6c, 0xd8, 0x85, 0x5b, 0x3c, 0x68, 0xa7, 0x9a, 0xf3, 0x90, 0x3a, 0x58, 0xd8, 0x85, 0xdb, 0x90, 0x3a, 0x38, 0x68, 0x2e, 0xce, 0x7e, 0x83, 0xe6, 0xe2, 0xec, 0x0f, 0xa7, 0xd8, 0xb0, 0x0b, 0xb7, 0x78, 0xd0, 0x40, 0x37, 0xe7, 0x21, 0x75, 0xb0, 0xb0, 0x0b, 0xb7, 0x21, 0x75, 0x70, 0xd0, 0x1e, 0x9e, 0xfd, 0x06, 0xed, 0xe1, 0xd9, 0x1f, 0x4e, 0xb1, 0x61, 0x17, 0x6e, 0x43, 0xea, 0xe0, 0xa0, 0x65, 0x29, 0xfb, 0x0d, 0x5a, 0x96, 0xb2, 0x3f, 0x9c, 0x62, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x0d, 0xda, 0x73, 0xb2, 0x5f, 0x41, 0xb0, 0xb8, 0x41, 0x32, 0x52, 0xdc, 0x41, 0x13, 0x6b, 0x81, 0x8b, 0x83, 0x60, 0x61, 0x17, 0x6e, 0xf1, 0x60, 0x60, 0x7a, 0x1c, 0xa2, 0xb9, 0xc2, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x34, 0x9c, 0x68, 0xbf, 0x41, 0xc3, 0x89, 0xf6, 0x87, 0x53, 0x6c, 0xd8, 0x85, 0xdb, 0x60, 0xb9, 0xa5, 0xd5, 0x61, 0x5c, 0x16, 0x76, 0xe1, 0x36, 0x8c, 0xcb, 0xc1, 0x72, 0x4b, 0xab, 0x83, 0xf5, 0x9f, 0x56, 0xc3, 0x2e, 0xdc, 0xe2, 0xc1, 0x9a, 0x6a, 0xd6, 0xc3, 0xb8, 0x2c, 0xec, 0xc2, 0x6d, 0x18, 0x97, 0x83, 0x96, 0x2c, 0xed, 0x37, 0x68, 0xc9, 0xd2, 0xfe, 0x70, 0x8a, 0x0d, 0xbb, 0x70, 0x1b, 0xc6, 0x65, 0x3c, 0x68, 0xed, 0xa2, 0x73, 0x83, 0x66, 0x3b, 0xed, 0x0f, 0xa7, 0xd8, 0xb0, 0x0b, 0xb7, 0x78, 0xd0, 0xfe, 0x47, 0xe7, 0x21, 0x9a, 0x2b, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0x41, 0x7b, 0xa1, 0xf6, 0x1b, 0xb4, 0x17, 0x6a, 0x7f, 0x38, 0xc5, 0x86, 0x5d, 0xb8, 0xc5, 0x83, 0xe4, 0x21, 0xe1, 0xc3, 0xb8, 0x2c, 0xec, 0xc2, 0x6d, 0x18, 0x97, 0x83, 0xa6, 0x50, 0xed, 0x37, 0x68, 0x0a, 0xd5, 0xfe, 0x70, 0x8a, 0x0d, 0xbb, 0x70, 0x8b, 0x07, 0xad, 0xaf, 0x74, 0x1e, 0xc6, 0x65, 0x61, 0x17, 0x6e, 0xc3, 0xb8, 0x1c, 0xb4, 0xf1, 0x6a, 0xbf, 0x41, 0x1b, 0xaf, 0xf6, 0x87, 0x53, 0x6c, 0xd8, 0x85, 0xdb, 0x30, 0x2e, 0xe3, 0x41, 0xb3, 0x34, 0x9d, 0x1b, 0xb4, 0x68, 0x6b, 0x7f, 0x38, 0xc5, 0x86, 0x5d, 0xb8, 0xc5, 0x83, 0x84, 0x0a, 0xb9, 0x43, 0x34, 0x57, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0xa6, 0x74, 0xed, 0x37, 0x68, 0x4a, 0xd7, 0xfe, 0x70, 0x8a, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x3a, 0x38, 0x6a, 0xe9, 0x1e, 0x3a, 0x68, 0x2c, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0x78, 0x90, 0x8c, 0x14, 0xb7, 0x41, 0xfb, 0xc4, 0xf6, 0x87, 0x53, 0x6c, 0xd8, 0x85, 0xdb, 0x30, 0x2e, 0xe3, 0x41, 0x13, 0x6b, 0x81, 0x1b, 0xb4, 0x94, 0x6c, 0x7f, 0x38, 0xc5, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x83, 0x60, 0x71, 0x83, 0x66, 0x69, 0x3a, 0x0f, 0xc6, 0x18, 0xda, 0xe2, 0x20, 0x58, 0xd8, 0x85, 0x5b, 0x3c, 0x68, 0x57, 0xac, 0xf3, 0x10, 0xcd, 0x15, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xa0, 0xd9, 0x68, 0xfb, 0x0d, 0x9a, 0x8d, 0xb6, 0x3f, 0x9c, 0x62, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x06, 0xab, 0xf8, 0x77, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x83, 0x77, 0xc7, 0xe3, 0xe3, 0xd0, 0xa1, 0x83, 0xc6, 0xb0, 0x0b, 0xb7, 0x78, 0xd0, 0x32, 0x5c, 0xe7, 0x21, 0x9a, 0x2b, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0x41, 0x7b, 0xe0, 0xf6, 0x1b, 0xb4, 0x07, 0x6e, 0x7f, 0x38, 0xc5, 0x0e, 0x5a, 0xbe, 0xb6, 0x1f, 0x76, 0xe1, 0x16, 0x0f, 0x1a, 0xdc, 0xeb, 0x3c, 0x44, 0x73, 0x85, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x68, 0x0c, 0xdd, 0x7e, 0x83, 0xc6, 0xd0, 0xed, 0x0f, 0xa7, 0xd8, 0x41, 0xcb, 0xd7, 0xf6, 0xc3, 0x2e, 0xdc, 0xe2, 0x41, 0xc3, 0x85, 0x9d, 0x87, 0x68, 0xae, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x2d, 0xc1, 0xdb, 0x6f, 0xd0, 0x12, 0xbc, 0xfd, 0xe1, 0x14, 0x1b, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x48, 0x06, 0x04, 0x7e, 0xdf, 0x41, 0xc0, 0xfb, 0x1f, 0x3a, 0x68, 0x0c, 0xbb, 0x70, 0x1b, 0xb4, 0x94, 0x6c, 0x7f, 0x88, 0xe6, 0x0a, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xd0, 0x52, 0xb2, 0xfd, 0x41, 0x8b, 0xca, 0xf6, 0x07, 0x8d, 0xd9, 0xdb, 0x0f, 0xbb, 0x70, 0x8b, 0x07, 0x0b, 0xd7, 0xb0, 0x0f, 0xd1, 0x5c, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0xda, 0x14, 0xb8, 0xdf, 0xa0, 0x4d, 0x81, 0xfb, 0xc3, 0x29, 0xb6, 0x20, 0xd8, 0xa0, 0x21, 0x6c, 0xfb, 0x43, 0x53, 0xa0, 0x41, 0xb0, 0x41, 0xdb, 0xf6, 0xf6, 0x87, 0x16, 0x60, 0xc3, 0x2e, 0xdc, 0xe2, 0x41, 0xd3, 0x9e, 0x9d, 0x87, 0x68, 0xae, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x2d, 0x38, 0xdc, 0x6f, 0xd0, 0x82, 0xc3, 0xfd, 0xe1, 0x14, 0x5b, 0x10, 0x6c, 0xd0, 0xb6, 0xbd, 0xfd, 0xa1, 0x29, 0xd0, 0x41, 0x03, 0x0b, 0xf7, 0x0b, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xd0, 0xa2, 0xad, 0xfd, 0x41, 0xcb, 0xb7, 0xf6, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x86, 0xdf, 0xa0, 0x6d, 0x27, 0xfb, 0x83, 0xd3, 0x0a, 0xee, 0xa1, 0x83, 0xc6, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x10, 0xbe, 0x3b, 0x07, 0x01, 0xef, 0x7f, 0xb0, 0x30, 0xf9, 0xe7, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x20, 0x58, 0x9c, 0x83, 0x56, 0x0c, 0xed, 0x17, 0x07, 0xc1, 0x0a, 0x82, 0x0d, 0xda, 0x19, 0xb9, 0x3f, 0x58, 0x05, 0x90, 0x35, 0x08, 0x16, 0x7e, 0x43, 0x72, 0xe9, 0xe0, 0x14, 0x86, 0x7b, 0xe8, 0xa0, 0x71, 0x68, 0xfe, 0x72, 0x3c, 0x1e, 0x04, 0x1b, 0x34, 0x17, 0x67, 0xbf, 0x38, 0x08, 0x16, 0x76, 0xe1, 0x16, 0x0f, 0x9a, 0xdd, 0xee, 0x3c, 0xa4, 0x0e, 0x16, 0x76, 0xe1, 0x36, 0xa4, 0x0e, 0x0e, 0x1a, 0xa3, 0xb9, 0xdf, 0xa0, 0x31, 0x9a, 0xfb, 0xc3, 0x29, 0x36, 0xec, 0xc2, 0x2d, 0x1e, 0xb4, 0x3b, 0xde, 0x79, 0x48, 0x1d, 0x2c, 0xec, 0xc2, 0x6d, 0x48, 0x1d, 0x1c, 0xb4, 0xb6, 0x73, 0xbf, 0x41, 0x6b, 0x3b, 0xf7, 0x87, 0x53, 0x6c, 0xd8, 0x85, 0xdb, 0xa0, 0x65, 0x29, 0xfb, 0x43, 0xea, 0x60, 0x83, 0x86, 0xfd, 0xec, 0x87, 0xdd, 0xa0, 0x0d, 0x3c, 0xfb, 0x0d, 0xda, 0xd3, 0xb3, 0x3f, 0x68, 0x6e, 0xce, 0xfe, 0xd0, 0xfc, 0xe5, 0x78, 0x3c, 0x08, 0x16, 0x57, 0x5c, 0x10, 0x2c, 0x48, 0x36, 0x58, 0x6c, 0x2b, 0x72, 0x10, 0xf0, 0xfe, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0x2c, 0x7d, 0xef, 0x3b, 0x18, 0x86, 0x3e, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x01, 0x81, 0xde, 0x75, 0x10, 0xf0, 0xfe, 0x07, 0x2b, 0x96, 0xa2, 0x8e, 0x43, 0x2b, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x20, 0x58, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x83, 0xc5, 0xd3, 0x24, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x0d, 0x5a, 0xb6, 0x9c, 0x3f, 0x08, 0x78, 0xff, 0x41, 0xb0, 0x41, 0x90, 0xc5, 0x2f, 0x0e, 0x82, 0x85, 0xdf, 0x90, 0xad, 0x18, 0x24, 0x03, 0xd5, 0xed, 0x20, 0xe0, 0xfd, 0x0f, 0x56, 0xe2, 0x8b, 0x1c, 0x8f, 0x0f, 0x5a, 0xe0, 0xba, 0x3f, 0x68, 0x81, 0xeb, 0x7e, 0x05, 0xc1, 0x06, 0xcb, 0x4d, 0x49, 0x16, 0x07, 0xc1, 0x06, 0x05, 0xb5, 0xd8, 0xe2, 0x20, 0x58, 0x10, 0x6c, 0xd8, 0x2b, 0x3c, 0x24, 0x5a, 0x87, 0xdd, 0x20, 0xb4, 0xdc, 0x37, 0x0e, 0x0d, 0x82, 0x05, 0xc1, 0xe2, 0xb0, 0x0b, 0xb7, 0xc1, 0x59, 0xfd, 0xfc, 0xb0, 0xf6, 0xbb, 0x21, 0x86, 0xc3, 0x6e, 0x30, 0x08, 0x38, 0x36, 0xc4, 0x70, 0x43, 0x0b, 0xa0, 0x83, 0xf5, 0x4a, 0x62, 0xc7, 0xb7, 0x0d, 0xd1, 0xdc, 0x10, 0xc3, 0x8d, 0x43, 0x07, 0x23, 0xb3, 0xf7, 0x78, 0x7c, 0x3c, 0x5e, 0x10, 0x6c, 0xb0, 0x62, 0x34, 0x67, 0x71, 0x10, 0x6c, 0x50, 0x50, 0x8b, 0x2d, 0x0e, 0x82, 0x05, 0xc1, 0x86, 0xf8, 0x1f, 0x12, 0xad, 0xc3, 0x6e, 0x10, 0x5a, 0xee, 0x1b, 0x87, 0x06, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x50, 0xfa, 0x77, 0x1d, 0x9c, 0x84, 0x8e, 0x0f, 0x5a, 0xcf, 0x0f, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x43, 0xd6, 0xee, 0x20, 0x70, 0xe3, 0x8f, 0x43, 0xc3, 0x6e, 0x10, 0x5a, 0xee, 0x1b, 0x94, 0xb1, 0x56, 0x1b, 0xa2, 0xb9, 0x21, 0x86, 0x1b, 0x04, 0x6e, 0xfc, 0xc1, 0xc8, 0xec, 0x3d, 0x1e, 0x1f, 0x8f, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x04, 0x8b, 0xc3, 0x6e, 0x10, 0x7c, 0xcc, 0x1b, 0x62, 0x38, 0x08, 0x36, 0x58, 0xd3, 0x0e, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc3, 0x2e, 0xec, 0x06, 0x8b, 0xb1, 0xbc, 0x16, 0x76, 0x61, 0x17, 0x7a, 0x50, 0x1c, 0x6a, 0x2c, 0xec, 0xc2, 0x6d, 0x88, 0xe1, 0x84, 0xc3, 0x0b, 0xbb, 0xd0, 0x83, 0x66, 0x36, 0x02, 0x16, 0x76, 0x61, 0x17, 0x3a, 0x41, 0x88, 0x17, 0x6e, 0x43, 0x0c, 0x27, 0x18, 0xe2, 0xc3, 0xd1, 0xbe, 0x70, 0x1b, 0x62, 0x78, 0xd0, 0x2e, 0x1e, 0xc9, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x2f, 0xdc, 0x86, 0x18, 0x1e, 0x8c, 0x0b, 0xb3, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x17, 0x04, 0x0b, 0x92, 0x01, 0x53, 0xfd, 0xbd, 0xef, 0xe0, 0x24, 0x74, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0x82, 0x2a, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x6e, 0xe8, 0x9a, 0xb9, 0x20, 0x58, 0x90, 0x0c, 0xac, 0xd7, 0x1d, 0x9c, 0xbd, 0x8c, 0x0f, 0x8d, 0x5a, 0x0e, 0x31, 0x3c, 0x1e, 0x1f, 0x87, 0x86, 0x5d, 0xd8, 0x0d, 0x16, 0x63, 0x79, 0x6d, 0xd0, 0x78, 0xe7, 0xfd, 0xe1, 0x68, 0x5f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xe2, 0x83, 0x71, 0x61, 0x76, 0x3c, 0x1e, 0x64, 0x6b, 0x68, 0xbf, 0x3e, 0xec, 0x06, 0x8b, 0xb1, 0xbc, 0x16, 0x76, 0x83, 0xc6, 0x3b, 0xef, 0x0f, 0xeb, 0x9b, 0x87, 0xa3, 0xfd, 0x10, 0xc3, 0x83, 0x76, 0xdb, 0xe4, 0x8f, 0x43, 0xc7, 0xb7, 0x41, 0xb0, 0x41, 0x3b, 0x1a, 0x2e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xa9, 0x83, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x76, 0x61, 0x17, 0x76, 0x41, 0xb0, 0x20, 0x19, 0xd4, 0x1c, 0x9c, 0xce, 0x90, 0x0f, 0xd2, 0x60, 0xa9, 0x17, 0x76, 0x41, 0xb0, 0x20, 0x19, 0x08, 0xca, 0xc1, 0xe9, 0x0c, 0xf9, 0x20, 0xd5, 0x98, 0xfa, 0x90, 0xce, 0x3d, 0x1c, 0xed, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x2e, 0x08, 0x36, 0x68, 0x4f, 0xfa, 0xfe, 0x20, 0xc5, 0x9c, 0x7a, 0x61, 0x17, 0x04, 0x1b, 0xb4, 0x63, 0x7d, 0x7f, 0x90, 0xc6, 0x4f, 0x7d, 0x48, 0xe7, 0x1e, 0x8e, 0xf6, 0x43, 0x3a, 0x77, 0x43, 0xea, 0x60, 0xd8, 0x85, 0x5d, 0x10, 0x6c, 0xd0, 0x9e, 0xf4, 0xfd, 0x41, 0xa2, 0xb2, 0xf3, 0xc2, 0x2e, 0x08, 0x36, 0x68, 0xc7, 0xfa, 0xfe, 0x20, 0x4d, 0xdc, 0xf9, 0x90, 0xce, 0x3d, 0x1c, 0xed, 0x0b, 0x82, 0x0d, 0x1a, 0x4b, 0x84, 0x3a, 0x48, 0xf1, 0x77, 0x3e, 0x48, 0x7f, 0x7a, 0x3e, 0x1e, 0x1f, 0x87, 0x8e, 0xc7, 0x83, 0x60, 0x83, 0x56, 0x97, 0xee, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0xb0, 0x1b, 0xd6, 0xf7, 0x36, 0xc4, 0x70, 0xc5, 0x83, 0x83, 0x47, 0xc6, 0x21, 0x75, 0x70, 0x88, 0xe1, 0xf1, 0x78, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0xf8, 0xd0, 0xc5, 0x64, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x50, 0xf8, 0x77, 0x1d, 0x04, 0xbc, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x07, 0x03, 0x09, 0xea, 0x38, 0x34, 0x08, 0x36, 0x08, 0xb2, 0xf8, 0xc5, 0x41, 0xb0, 0xf0, 0x1b, 0xb2, 0x15, 0x07, 0xa9, 0x31, 0x16, 0x07, 0x2b, 0xf1, 0x45, 0x8e, 0xc7, 0xc7, 0xa1, 0x05, 0xc1, 0x82, 0x64, 0xa0, 0x74, 0x1d, 0x04, 0xbc, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x81, 0x1f, 0x32, 0xfc, 0xc6, 0xf3, 0xc5, 0x41, 0xb6, 0x21, 0x2e, 0x83, 0x60, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x71, 0x41, 0xb0, 0x41, 0x03, 0xce, 0xf6, 0x8b, 0xc3, 0x6e, 0xd0, 0xce, 0xbe, 0xfd, 0x86, 0x53, 0x6c, 0xd8, 0x85, 0xdb, 0xa0, 0x45, 0x5b, 0xfb, 0x43, 0x34, 0x37, 0x18, 0xb3, 0x70, 0xc3, 0x6e, 0xd0, 0x54, 0xb4, 0xfd, 0x2a, 0x1e, 0x3e, 0x0f, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0x06, 0xc3, 0x0e, 0xf7, 0xb0, 0x42, 0x7b, 0x88, 0xe1, 0xb0, 0x1b, 0xb4, 0x01, 0x6e, 0xbf, 0x1a, 0x1c, 0x9d, 0xb9, 0x0f, 0x1a, 0xfd, 0xc0, 0x3f, 0xc4, 0x70, 0xd8, 0x0d, 0x5a, 0x7f, 0xb7, 0x5f, 0xc5, 0x83, 0x06, 0x30, 0x60, 0x57, 0x43, 0x0c, 0x37, 0x6c, 0x1d, 0x1c, 0x62, 0x78, 0x88, 0xe1, 0x21, 0x86, 0x87, 0x18, 0x0e, 0xbb, 0x41, 0x03, 0xe8, 0xf6, 0x0b, 0x92, 0x21, 0x83, 0x68, 0x61, 0xd7, 0xa0, 0xa5, 0x64, 0xfb, 0x41, 0xb0, 0x20, 0x19, 0x78, 0x76, 0xe7, 0xe0, 0x98, 0x55, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x63, 0xd0, 0x1c, 0xe0, 0x60, 0xe0, 0x87, 0x1c, 0x87, 0x06, 0xc1, 0x82, 0x64, 0x83, 0xa2, 0x3e, 0xe7, 0xe0, 0x74, 0x86, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xaf, 0x1d, 0x7e, 0xe3, 0xf9, 0x1a, 0xb4, 0x94, 0x6c, 0x3f, 0x08, 0x36, 0x68, 0x4f, 0x06, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0xc7, 0xa0, 0x3b, 0xc0, 0xc1, 0xc0, 0x0f, 0x39, 0x0e, 0x1d, 0x62, 0x78, 0x1c, 0x3a, 0xac, 0xd0, 0x0e, 0xbb, 0x41, 0x3b, 0x02, 0xf7, 0xab, 0x06, 0xe7, 0xc8, 0xdd, 0x15, 0x0f, 0x1a, 0xa2, 0xfd, 0x3c, 0x08, 0x4a, 0xef, 0x43, 0x0c, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0x41, 0xc0, 0x7c, 0x1f, 0x56, 0x68, 0x0f, 0x31, 0x1c, 0x64, 0x6b, 0x68, 0xbf, 0x7e, 0xd0, 0x6a, 0xc3, 0xfd, 0x2a, 0x1e, 0x34, 0xff, 0xfb, 0xb9, 0xe2, 0x41, 0xab, 0xc3, 0x9f, 0x07, 0x41, 0xe9, 0x3d, 0xec, 0x06, 0x41, 0xe2, 0xbd, 0x21, 0x86, 0x2b, 0x1e, 0xb4, 0xca, 0xfc, 0x79, 0x68, 0x24, 0x78, 0x88, 0xe1, 0x21, 0x86, 0x87, 0x18, 0x1e, 0x8f, 0x87, 0xdd, 0x20, 0xf8, 0x98, 0x37, 0xc4, 0x70, 0xd8, 0x85, 0xdb, 0xa0, 0xa5, 0x64, 0xfb, 0x83, 0xe2, 0x50, 0x63, 0x41, 0xb0, 0x06, 0xe3, 0xc2, 0xec, 0x10, 0xc3, 0x41, 0xb0, 0x38, 0xec, 0x06, 0xe3, 0x90, 0x69, 0xd5, 0x10, 0xc3, 0x35, 0xc4, 0x70, 0x10, 0x2c, 0x48, 0x06, 0x2c, 0x7d, 0xef, 0x3b, 0x38, 0x9d, 0x21, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x48, 0x4f, 0x48, 0x39, 0x34, 0x6a, 0x39, 0x0e, 0x1d, 0x62, 0x78, 0x88, 0xe1, 0x21, 0x86, 0xc3, 0x2e, 0xdc, 0x06, 0x2d, 0x25, 0xdb, 0x1f, 0x14, 0xa1, 0x09, 0x0b, 0x92, 0x21, 0x83, 0x68, 0x83, 0x95, 0x3c, 0x3b, 0x83, 0x68, 0x61, 0x37, 0x38, 0x1b, 0x3d, 0x1f, 0x52, 0x07, 0xc7, 0xe3, 0x0d, 0x9a, 0x30, 0xc3, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0x06, 0xad, 0x95, 0x09, 0x1c, 0x56, 0x68, 0x8f, 0x6f, 0x83, 0x60, 0x83, 0x85, 0xaf, 0x5e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x28, 0x19, 0x9a, 0x0e, 0x1b, 0xb5, 0xc3, 0x6f, 0x3c, 0x3f, 0x18, 0x5e, 0x01, 0xc7, 0xa1, 0x83, 0x72, 0x28, 0xe9, 0x78, 0x3c, 0x08, 0x16, 0x24, 0x1b, 0x2c, 0xb6, 0x15, 0x99, 0xe0, 0xfe, 0x1b, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0x1d, 0x0c, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x73, 0x10, 0x06, 0xf2, 0xc7, 0xa1, 0xe3, 0xf1, 0x71, 0x68, 0x05, 0xc1, 0x06, 0xcb, 0x4d, 0x49, 0x16, 0x07, 0xc1, 0x06, 0x05, 0xb5, 0xd8, 0xe2, 0x20, 0xd8, 0xd0, 0x6f, 0x70, 0xd8, 0x0d, 0x42, 0xcb, 0x7d, 0xe3, 0xd0, 0xb0, 0x0b, 0xb7, 0x21, 0x55, 0x73, 0x10, 0x06, 0xf2, 0x0b, 0x82, 0x05, 0xc9, 0x40, 0x7d, 0x3b, 0x38, 0x09, 0x1d, 0x1f, 0x0c, 0xb3, 0xf0, 0xe3, 0xd0, 0xf1, 0xf8, 0x78, 0xbc, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x41, 0x41, 0x2d, 0xb6, 0x38, 0xec, 0xc2, 0x1d, 0x34, 0xf0, 0x45, 0xb2, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x06, 0x84, 0x7e, 0xd7, 0xc1, 0x70, 0x94, 0x3e, 0x18, 0x1f, 0x46, 0x87, 0x46, 0x2d, 0x83, 0x60, 0x41, 0x32, 0x50, 0xdf, 0x0e, 0x86, 0xa3, 0xf4, 0xa1, 0x51, 0xcb, 0xf1, 0xf8, 0x78, 0xbc, 0x20, 0xd8, 0xa0, 0xd5, 0xa5, 0xfb, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x3f, 0x18, 0x9a, 0x56, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x41, 0x32, 0xd0, 0xbe, 0xeb, 0x20, 0xe0, 0xfd, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x6e, 0x70, 0x9a, 0xec, 0x3d, 0x68, 0xc5, 0xd0, 0x7e, 0x71, 0xd8, 0x0d, 0xbb, 0x06, 0x1b, 0x62, 0xb8, 0x21, 0x86, 0x1b, 0x2c, 0xaf, 0x09, 0x3a, 0x8c, 0xcb, 0xf1, 0x78, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0x20, 0x58, 0x10, 0x2c, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x24, 0x03, 0x42, 0xbf, 0xeb, 0x20, 0xe0, 0xfd, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x3f, 0x68, 0xbf, 0xd0, 0xfe, 0x38, 0x34, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x34, 0xed, 0x3a, 0x08, 0x78, 0xff, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x37, 0x48, 0xa8, 0x90, 0x3b, 0x68, 0xa0, 0x9b, 0x73, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x90, 0x0c, 0xbc, 0xcf, 0x75, 0x10, 0xf0, 0xfe, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x0d, 0x16, 0x7b, 0x91, 0x1c, 0x04, 0xbc, 0xff, 0x41, 0xc3, 0x5f, 0xf7, 0xc7, 0xa1, 0x41, 0xb0, 0x41, 0x90, 0xc5, 0x2f, 0x0e, 0x82, 0x85, 0xdf, 0x90, 0xad, 0x18, 0x24, 0x03, 0xb3, 0x76, 0x10, 0xf0, 0xfe, 0x07, 0x2b, 0xf1, 0x45, 0x8e, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x9a, 0x79, 0xc6, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x71, 0x83, 0x84, 0x0a, 0xb9, 0x83, 0x66, 0xb7, 0x3b, 0x87, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x41, 0x1b, 0xd8, 0xf8, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x01, 0xa1, 0xca, 0x75, 0x10, 0xf0, 0xfe, 0x07, 0x0d, 0x7f, 0xdd, 0x1f, 0x87, 0x0e, 0x1a, 0x02, 0xc7, 0x1f, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0xcc, 0x33, 0xfe, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x8f, 0x1b, 0x24, 0x54, 0xc8, 0x1d, 0xb4, 0x3b, 0xde, 0x39, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0xda, 0xc0, 0xc6, 0x1f, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0x6c, 0xb0, 0x56, 0x71, 0xe4, 0x20, 0xe0, 0xfd, 0x0f, 0x1a, 0xfe, 0xba, 0x3f, 0x0e, 0x1d, 0x34, 0x04, 0x8e, 0x3f, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0x99, 0x67, 0xfc, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x37, 0x48, 0xa8, 0x90, 0x3b, 0x08, 0x96, 0xa5, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xd0, 0x06, 0x36, 0xfe, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x36, 0xa8, 0xee, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0xcd, 0xb9, 0x0e, 0x02, 0xde, 0xff, 0x38, 0x74, 0xd0, 0xf0, 0xd7, 0xfd, 0x71, 0xe8, 0xa0, 0x21, 0x70, 0xfc, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xcd, 0x3c, 0xe3, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xb8, 0x41, 0xfb, 0x1f, 0x9d, 0x07, 0xcd, 0xd2, 0x74, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x18, 0xaf, 0x5c, 0x07, 0x01, 0xef, 0x7f, 0x1c, 0x3a, 0x68, 0x08, 0x1c, 0x7f, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x33, 0xcf, 0xf8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x6e, 0xd0, 0xfe, 0x47, 0xe7, 0x41, 0xeb, 0x2b, 0x9d, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x83, 0xb6, 0xba, 0xee, 0x0f, 0x5a, 0xe0, 0xba, 0x3f, 0x68, 0x81, 0xeb, 0xfe, 0x38, 0x74, 0xd0, 0x10, 0x38, 0xfe, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x66, 0x9e, 0xf1, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0xdc, 0xa0, 0xfd, 0x8f, 0xce, 0x83, 0xe4, 0x21, 0xe1, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x41, 0xb3, 0x03, 0xf9, 0x07, 0x8d, 0x09, 0xe4, 0x1f, 0x34, 0x26, 0x90, 0x7f, 0x1c, 0x3a, 0x68, 0x08, 0x1c, 0x7f, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x33, 0xcf, 0xf8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x6e, 0x30, 0x30, 0x3d, 0x0e, 0xd6, 0x54, 0xb3, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x18, 0xef, 0x54, 0x07, 0x01, 0xef, 0x7f, 0x1c, 0x3a, 0x68, 0x08, 0x1c, 0x7f, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x50, 0xfa, 0x77, 0x1d, 0x04, 0xbc, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xc6, 0x8e, 0xf1, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x37, 0x18, 0x98, 0x1e, 0x07, 0x8b, 0x2e, 0xad, 0x8e, 0x43, 0xc7, 0xa1, 0x83, 0x86, 0xc0, 0xf1, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x34, 0xf3, 0x8c, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xe0, 0x87, 0x0c, 0xbf, 0xf1, 0xfc, 0x60, 0xf1, 0x34, 0xc9, 0x71, 0xe8, 0xa0, 0x21, 0x70, 0xfc, 0xe3, 0xd0, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x36, 0xa8, 0xee, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x3f, 0x68, 0x1e, 0x1b, 0xff, 0x38, 0x74, 0xd0, 0x8a, 0x01, 0xfe, 0x71, 0x68, 0x41, 0xb0, 0x41, 0xab, 0x4b, 0xf7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x96, 0x3f, 0xd1, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xac, 0x12, 0xa9, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0xa4, 0x7d, 0x0e, 0xc6, 0xbb, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x10, 0x9e, 0x83, 0xf1, 0xae, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xe2, 0x86, 0x3a, 0xb2, 0x86, 0x19, 0x5a, 0xc3, 0xc4, 0xad, 0x61, 0xee, 0x07, 0x0f, 0x37, 0xd4, 0x91, 0x35, 0xcc, 0xd0, 0x1a, 0x26, 0x6e, 0xc3, 0x74, 0x6e, 0x98, 0xa1, 0x0d, 0x9a, 0xcd, 0x84, 0x38, 0x68, 0xf6, 0x12, 0x62, 0xc3, 0x89, 0xb0, 0x41, 0x4b, 0x8e, 0xf9, 0x07, 0xad, 0xba, 0x42, 0x1c, 0x34, 0x04, 0x0b, 0x71, 0x10, 0x52, 0xca, 0x1b, 0x4e, 0x84, 0x0d, 0x9a, 0x57, 0xcc, 0xdf, 0x60, 0x31, 0x1b, 0xd4, 0x32, 0xcb, 0xc1, 0xc9, 0x07, 0xf0, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x83, 0x93, 0x0f, 0xe0, 0x20, 0xd8, 0x60, 0x69, 0xf8, 0xd8, 0x21, 0x0d, 0x77, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x06, 0xc1, 0x82, 0x60, 0x83, 0x82, 0xfe, 0xe3, 0xb0, 0xc7, 0xbb, 0x1a, 0x52, 0x07, 0x2b, 0x06, 0x9f, 0x46, 0x1e, 0x87, 0x0e, 0x31, 0x3c, 0xac, 0xfd, 0x1e, 0x62, 0x78, 0x3c, 0x1e, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0xa0, 0x6d, 0xfe, 0xfb, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x40, 0xf1, 0xdf, 0x75, 0x10, 0xf0, 0xfe, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x1e, 0x8c, 0xe6, 0xf3, 0x83, 0x16, 0x2f, 0xf2, 0x8f, 0x43, 0x83, 0x60, 0x83, 0x20, 0x8b, 0x5f, 0x1c, 0x04, 0x0b, 0xbf, 0x21, 0x5b, 0x31, 0x08, 0x16, 0x24, 0x03, 0xe5, 0xed, 0x20, 0xe0, 0xfd, 0x0f, 0xda, 0x13, 0xc0, 0x3f, 0x58, 0x89, 0x2f, 0x72, 0x3c, 0x3e, 0x68, 0x97, 0x2d, 0xff, 0x38, 0xb4, 0x20, 0xd8, 0x60, 0xb9, 0x29, 0xc9, 0xe2, 0x20, 0xd8, 0x60, 0x61, 0x41, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x1f, 0xac, 0x03, 0x2a, 0x19, 0x04, 0x1b, 0x52, 0x35, 0x83, 0x60, 0x83, 0x20, 0x8b, 0x5f, 0x1c, 0x04, 0x0b, 0xbf, 0x21, 0x5b, 0x31, 0x48, 0x06, 0x8a, 0xda, 0xc1, 0x30, 0xf4, 0x39, 0x58, 0x89, 0x2f, 0x72, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x43, 0xea, 0x60, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x20, 0x78, 0xb9, 0x0e, 0x86, 0xa1, 0xcf, 0x20, 0xd8, 0x20, 0xc8, 0xe2, 0x17, 0x07, 0xc1, 0xc2, 0x6f, 0xc8, 0x56, 0x0c, 0x92, 0x81, 0xa0, 0x1d, 0x0c, 0x43, 0x9f, 0x83, 0x95, 0xf8, 0x22, 0xc7, 0xe3, 0x83, 0xb5, 0x30, 0x25, 0xc7, 0xa1, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xd9, 0x86, 0xb8, 0x0c, 0x82, 0x05, 0xc1, 0x82, 0x64, 0x40, 0xf1, 0xdf, 0x75, 0x30, 0x0c, 0x7d, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x83, 0xf4, 0xc0, 0xea, 0x83, 0xf4, 0xc0, 0xea, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x81, 0xf7, 0xb9, 0x0e, 0x86, 0xa1, 0xcf, 0x71, 0x68, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x0f, 0x8e, 0xe2, 0xe8, 0x83, 0x60, 0x43, 0xea, 0x60, 0x10, 0x6c, 0x10, 0x64, 0xf1, 0x8b, 0x83, 0x60, 0xe1, 0x37, 0x64, 0x2b, 0x06, 0xc9, 0x40, 0x75, 0x3b, 0x18, 0xfe, 0xb1, 0x07, 0x2b, 0xf1, 0x45, 0x8e, 0xc7, 0x83, 0x60, 0x41, 0xb2, 0xc1, 0x62, 0x5b, 0x91, 0x83, 0xe1, 0x28, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x57, 0x3c, 0x58, 0x33, 0xe6, 0xbb, 0x1a, 0x62, 0x78, 0x30, 0x50, 0xd5, 0x0e, 0x31, 0x3c, 0xc4, 0xf0, 0x10, 0xc3, 0xe3, 0xf1, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x83, 0xc5, 0x7a, 0x26, 0x07, 0xc3, 0x51, 0x7a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x17, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x07, 0x47, 0x6f, 0xf3, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x40, 0xa0, 0x77, 0x1d, 0x0c, 0x47, 0xe9, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0xc0, 0xfb, 0x5c, 0x07, 0xc3, 0x51, 0xfa, 0x38, 0x34, 0x08, 0x36, 0x08, 0xb2, 0xf8, 0xc5, 0x41, 0xb0, 0xf0, 0x1b, 0xb2, 0x15, 0x83, 0x64, 0xa0, 0xba, 0x1d, 0x0c, 0x47, 0xe9, 0x83, 0x95, 0xf8, 0x22, 0xc7, 0xe3, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x40, 0xb1, 0xde, 0x75, 0x30, 0x1c, 0xa5, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0xfc, 0x20, 0x45, 0xfb, 0x7a, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0xc5, 0x41, 0xb0, 0x86, 0xac, 0xdd, 0x06, 0x47, 0x9e, 0xe2, 0x41, 0xb0, 0x86, 0x7c, 0xed, 0x21, 0x86, 0x07, 0xab, 0x19, 0x80, 0x0e, 0x56, 0x33, 0x00, 0x1d, 0xdf, 0x8e, 0xc7, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x41, 0x32, 0xd0, 0xb4, 0xeb, 0x60, 0x38, 0x4a, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x68, 0xbb, 0x44, 0x7f, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x48, 0x06, 0x9c, 0xff, 0xbb, 0x0e, 0x86, 0xa3, 0xf4, 0xc1, 0xfa, 0xa7, 0x91, 0x83, 0x86, 0x21, 0xf4, 0x8f, 0x43, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x5a, 0x46, 0xd0, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x0d, 0xa9, 0x83, 0x83, 0x66, 0x7b, 0xf4, 0x87, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0x2d, 0x4a, 0xe8, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0x1c, 0xd7, 0xa9, 0x0e, 0x86, 0xa3, 0xf4, 0x71, 0x68, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x83, 0xa3, 0xb7, 0xf9, 0x20, 0xd8, 0x20, 0xc8, 0xe2, 0x17, 0x07, 0xc1, 0xc2, 0x6f, 0xc8, 0x56, 0x0c, 0x92, 0x81, 0xa2, 0x76, 0x30, 0x1c, 0xa5, 0x0f, 0x56, 0xe2, 0x8b, 0x1c, 0x8f, 0x8f, 0x43, 0x83, 0x60, 0x83, 0x20, 0x8b, 0x5f, 0x1c, 0x04, 0x0b, 0xbf, 0x21, 0x5b, 0x31, 0x48, 0x06, 0x66, 0xed, 0x60, 0x38, 0x4a, 0x1f, 0xac, 0xc4, 0x17, 0x39, 0x1e, 0x1f, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0xd8, 0x60, 0xb9, 0x29, 0xc9, 0xe2, 0x20, 0xd8, 0xe0, 0xa8, 0xf8, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0x61, 0x41, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x82, 0x0d, 0xda, 0x3e, 0xce, 0x1f, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x43, 0xea, 0x60, 0x10, 0x6c, 0xd0, 0xda, 0x75, 0xfe, 0x20, 0xd8, 0x20, 0xc8, 0xe2, 0x17, 0x07, 0xc1, 0xc2, 0x6f, 0xc8, 0x56, 0x0c, 0x92, 0x81, 0xea, 0x76, 0x30, 0x0c, 0x7d, 0x0e, 0x56, 0xe2, 0x8b, 0x1c, 0x8f, 0x0f, 0xd6, 0xc2, 0x94, 0x0c, 0x82, 0x85, 0xdf, 0x78, 0x7e, 0xb0, 0x46, 0xb4, 0xff, 0x60, 0x2d, 0x4c, 0xc9, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x1e, 0x04, 0x1b, 0x34, 0xf3, 0x8c, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0x35, 0xec, 0x64, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x20, 0xf1, 0xbf, 0xeb, 0x20, 0xe0, 0xfd, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0xa0, 0x15, 0xad, 0xfb, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x6b, 0xa9, 0x49, 0x0e, 0x92, 0xb7, 0x4e, 0x0e, 0x1a, 0x02, 0xc7, 0x3f, 0x0e, 0x1d, 0x87, 0x16, 0x04, 0x1b, 0xb4, 0xcc, 0x80, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xe0, 0x87, 0x0c, 0xbf, 0xf1, 0x7c, 0x71, 0x90, 0x6d, 0x88, 0xcb, 0x20, 0xd8, 0xa0, 0x75, 0x59, 0xf7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x8b, 0x07, 0x81, 0x68, 0xb2, 0x38, 0xec, 0x06, 0x4d, 0xd2, 0x35, 0x6d, 0x18, 0x97, 0x83, 0x62, 0x91, 0xec, 0x78, 0x3c, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x05, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0x20, 0x58, 0x10, 0x2c, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0x20, 0x58, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x41, 0xf3, 0xab, 0xee, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x7e, 0xd0, 0x52, 0xb2, 0xfd, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xad, 0xcb, 0xba, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x41, 0x8a, 0xb9, 0xf4, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0x19, 0x70, 0x5c, 0xa7, 0x3a, 0x18, 0xef, 0x3a, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x81, 0xf7, 0xb9, 0x0e, 0xc6, 0xbb, 0xce, 0x20, 0xd8, 0x20, 0xc8, 0xe2, 0x17, 0x07, 0xc1, 0xc2, 0x6f, 0xc8, 0x56, 0x0c, 0x92, 0x81, 0xa2, 0x76, 0x30, 0xde, 0x75, 0x0e, 0x56, 0xe2, 0x8b, 0x1c, 0x8f, 0x8f, 0x43, 0xc7, 0xa1, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xcd, 0xaf, 0xba, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x41, 0x8b, 0xb6, 0xf6, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0x41, 0xb0, 0xc1, 0xca, 0x2e, 0x99, 0x83, 0x74, 0xc1, 0xa1, 0x83, 0xf3, 0x13, 0xed, 0x71, 0x68, 0x10, 0x6c, 0x10, 0x64, 0xf1, 0x8b, 0x83, 0x60, 0xe1, 0x37, 0x64, 0x2b, 0x06, 0xc9, 0xc0, 0xac, 0x1d, 0x8c, 0x77, 0x9d, 0x83, 0x95, 0xf8, 0x22, 0xc7, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xcd, 0xaf, 0xba, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x68, 0x12, 0x56, 0x7f, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0xd0, 0xb4, 0xeb, 0x60, 0xbc, 0xeb, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x41, 0xfb, 0x89, 0x4f, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0xf1, 0x3a, 0x9e, 0x1f, 0x87, 0x8e, 0x43, 0x07, 0xcd, 0x4f, 0xeb, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0x7e, 0xd5, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x0f, 0x9a, 0xa7, 0x6b, 0x1a, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x82, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x20, 0x19, 0x10, 0xfa, 0x5d, 0x07, 0xe3, 0x5d, 0xe7, 0x20, 0x45, 0xf9, 0x79, 0x10, 0x6c, 0xd0, 0xb2, 0xb9, 0xfe, 0xc1, 0x3a, 0x7b, 0x92, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xcd, 0xaf, 0xba, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x41, 0x4b, 0xf0, 0xf6, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x94, 0xd4, 0x7f, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x82, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xbf, 0xc1, 0x31, 0x45, 0xfa, 0xe0, 0x08, 0x41, 0x3f, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0xb0, 0x68, 0x9f, 0xea, 0x60, 0xbc, 0xeb, 0x1c, 0x34, 0x3f, 0xad, 0x3f, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x50, 0xec, 0x72, 0x1d, 0x8c, 0x77, 0x9d, 0x83, 0xe6, 0xa7, 0xf5, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0x49, 0xae, 0x83, 0xf1, 0xae, 0x73, 0xd0, 0xfc, 0xb4, 0xfe, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0xa0, 0x3d, 0xd7, 0xc1, 0x78, 0xd7, 0x39, 0x68, 0x7e, 0x5a, 0x7f, 0x10, 0x6c, 0xd0, 0xec, 0xaf, 0xfb, 0x41, 0xf3, 0xd3, 0xfa, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x81, 0xc2, 0x75, 0x30, 0xde, 0x75, 0x06, 0xc1, 0x06, 0x41, 0x16, 0xbf, 0x38, 0x08, 0x16, 0x7e, 0x43, 0xb6, 0xe2, 0x20, 0xd9, 0xcf, 0xe2, 0x60, 0x25, 0xbe, 0xc8, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0xed, 0xdd, 0xeb, 0x1f, 0xac, 0x55, 0x92, 0x19, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x0d, 0x8e, 0x29, 0xd2, 0x07, 0x27, 0x66, 0xdf, 0x83, 0xe6, 0xa7, 0xf5, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0x02, 0x95, 0xeb, 0x60, 0xbc, 0xeb, 0x1c, 0x34, 0xc5, 0xb2, 0x7f, 0xd0, 0xfc, 0xb4, 0xfe, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0xf8, 0x0d, 0x8e, 0x29, 0xd2, 0x07, 0xe3, 0x0e, 0x6a, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0xd0, 0x94, 0xeb, 0x60, 0xbc, 0xeb, 0x1c, 0x34, 0xc5, 0xb2, 0x7f, 0xd0, 0xfc, 0xb4, 0xfe, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x70, 0x4c, 0x91, 0x3e, 0x58, 0xac, 0xd9, 0x75, 0xd0, 0xfc, 0xb4, 0xfe, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0xf8, 0x0d, 0x8e, 0x29, 0xd2, 0x07, 0x2b, 0x25, 0xbb, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x64, 0xc0, 0x71, 0x9f, 0xea, 0x60, 0xbc, 0xeb, 0x0c, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0xce, 0xff, 0x5d, 0x07, 0xe3, 0x5d, 0xe7, 0x60, 0x25, 0x6e, 0xcc, 0xc1, 0xa2, 0x74, 0x92, 0x83, 0x75, 0xf6, 0x24, 0x07, 0xcd, 0x4f, 0xeb, 0x1f, 0x87, 0x8e, 0x43, 0x07, 0x8b, 0xd2, 0x49, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x34, 0xbf, 0xea, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x49, 0x58, 0xfd, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x20, 0x19, 0x28, 0x5d, 0xc7, 0xf3, 0x83, 0x14, 0xe5, 0xe7, 0x41, 0xb0, 0x41, 0xf3, 0xdf, 0xfa, 0x07, 0xcd, 0x4f, 0xeb, 0x1f, 0x87, 0x0e, 0x16, 0xa5, 0x93, 0x1c, 0x87, 0x0e, 0x9a, 0x9f, 0xd6, 0x1f, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0xfc, 0xaa, 0xfb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xf6, 0xde, 0xf5, 0x87, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x20, 0xd8, 0xa0, 0x01, 0x7a, 0xfd, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xcd, 0xaf, 0xba, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x68, 0x34, 0x60, 0x7f, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0x50, 0x52, 0xff, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x7e, 0x90, 0x2e, 0x53, 0x74, 0x1c, 0x1a, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x34, 0xe7, 0x3a, 0x18, 0xef, 0x3a, 0x07, 0x4d, 0xb1, 0xec, 0x1f, 0x87, 0x0e, 0x16, 0xa5, 0x93, 0x1c, 0x34, 0xa5, 0xb6, 0x7f, 0x1c, 0x3a, 0x68, 0x7e, 0x5a, 0x7f, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0xf3, 0xab, 0xee, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x7e, 0xd0, 0x82, 0xc3, 0xfd, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x92, 0x0d, 0x16, 0xeb, 0x99, 0x1c, 0x8c, 0x77, 0x9d, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x5f, 0x90, 0x0c, 0x68, 0x7e, 0x97, 0xeb, 0x60, 0xbc, 0xeb, 0x0c, 0x92, 0x01, 0xc1, 0xca, 0x75, 0x30, 0xde, 0x75, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0xfd, 0xbb, 0x8e, 0xe7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x1f, 0xb4, 0xdd, 0xba, 0x7f, 0x1c, 0x3a, 0x0e, 0x0d, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0xd3, 0x74, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x17, 0x24, 0x1b, 0x34, 0x13, 0xf0, 0x7e, 0x30, 0xde, 0x75, 0x06, 0xc9, 0x80, 0xc4, 0x5d, 0xae, 0x83, 0xf1, 0xae, 0x33, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x63, 0xb1, 0xfb, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x1f, 0x34, 0xf1, 0xbb, 0x7f, 0x1c, 0x3a, 0x0e, 0x0d, 0x82, 0x0d, 0x82, 0x2c, 0x7e, 0x71, 0x10, 0x2c, 0xfc, 0x86, 0x6c, 0xc5, 0x20, 0xd8, 0xa0, 0x15, 0x63, 0xf7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x40, 0xe1, 0xdf, 0x75, 0x30, 0xde, 0x75, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x07, 0x2d, 0x9b, 0xeb, 0x1f, 0x87, 0x8e, 0x43, 0x07, 0x2b, 0xf1, 0x45, 0x8e, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x81, 0x34, 0xd7, 0xc1, 0x78, 0xd7, 0x39, 0x68, 0x8a, 0x65, 0xff, 0x38, 0x74, 0xd0, 0xfc, 0xb4, 0xfe, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xe6, 0x57, 0xdd, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0xfc, 0xa0, 0x4d, 0x81, 0xfb, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xd0, 0x52, 0xe9, 0xfe, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x36, 0x4d, 0xf7, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xb4, 0xbb, 0xbb, 0x3f, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x08, 0xd5, 0xf1, 0x7c, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x6b, 0xc1, 0xfb, 0x07, 0x29, 0x2a, 0x27, 0xc7, 0xa1, 0xe3, 0xd0, 0x41, 0x1b, 0xc8, 0xfb, 0xc7, 0xa1, 0x83, 0xe6, 0xa7, 0xf5, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x34, 0xbf, 0xea, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0xd1, 0x80, 0xfd, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x08, 0x16, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x48, 0x06, 0x04, 0x7a, 0xd7, 0xc1, 0x78, 0xd7, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x64, 0xc0, 0xda, 0x5d, 0xae, 0x83, 0xf1, 0xae, 0x33, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd9, 0x60, 0xad, 0xe2, 0xc8, 0xc1, 0x78, 0xd7, 0x39, 0x68, 0x7e, 0x5a, 0x7f, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb2, 0xc1, 0x5a, 0xe1, 0x91, 0x83, 0xf1, 0xae, 0x73, 0xd0, 0xfc, 0xb4, 0xfe, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0x60, 0x97, 0xea, 0x60, 0xbc, 0xeb, 0x1c, 0x34, 0x3f, 0xad, 0x7f, 0x1c, 0x1a, 0x04, 0x1b, 0xb4, 0xea, 0xc0, 0x7f, 0xb0, 0x28, 0x9d, 0x64, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x05, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x24, 0x03, 0x96, 0xee, 0x72, 0x1d, 0x8c, 0x77, 0x9d, 0x83, 0xf6, 0x43, 0xf6, 0x07, 0xc1, 0x06, 0x6d, 0x26, 0xbb, 0x1f, 0x34, 0x3f, 0xad, 0x7f, 0xb0, 0x28, 0x9d, 0x64, 0x10, 0x6c, 0xd0, 0x66, 0xb2, 0xfb, 0xc1, 0xa2, 0x74, 0x92, 0xe3, 0xd0, 0x41, 0xf3, 0xd3, 0xfa, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x9a, 0x5f, 0x75, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xd0, 0x68, 0xc0, 0xfe, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x6d, 0x9a, 0xee, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x82, 0x64, 0x83, 0x96, 0x2d, 0xe7, 0x0f, 0xc6, 0xbb, 0xce, 0x41, 0xcb, 0x33, 0xfc, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0xf5, 0xae, 0xe3, 0xf9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x07, 0x2d, 0xcf, 0xf0, 0x1f, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0x83, 0xe6, 0xa7, 0xf5, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x34, 0xbf, 0xea, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0x8d, 0xa1, 0xdb, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0xa6, 0xe9, 0xfe, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x2f, 0x48, 0x06, 0x94, 0xba, 0x5c, 0x07, 0xe3, 0x5d, 0xe7, 0xa0, 0x95, 0x25, 0xfe, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xda, 0x67, 0xdf, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x63, 0xb1, 0xfb, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x1f, 0xb4, 0xb2, 0xc4, 0x7f, 0x1c, 0x3a, 0x48, 0x51, 0x39, 0x39, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0x07, 0xcd, 0x4f, 0xeb, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0x7e, 0xd5, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x0f, 0xda, 0x03, 0xb7, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0x4d, 0xd3, 0xfd, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x5f, 0x90, 0x6c, 0xb0, 0xa8, 0x84, 0xe4, 0x60, 0xbc, 0xeb, 0x1c, 0x34, 0x73, 0xc6, 0x3f, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0xfb, 0xec, 0xfb, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0x2c, 0x76, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x83, 0x66, 0xce, 0xf8, 0x8f, 0x43, 0x07, 0x29, 0x2a, 0x27, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0xa0, 0xf9, 0x69, 0xfd, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xcd, 0xaf, 0xba, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x41, 0xb3, 0xd1, 0xf6, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xb4, 0x69, 0xba, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x1b, 0x34, 0xe6, 0xc1, 0x7f, 0xd0, 0x98, 0x07, 0xff, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xed, 0xb3, 0xef, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0xb1, 0xd8, 0xfd, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x0f, 0x1a, 0xf3, 0xe0, 0x3f, 0x0e, 0x1d, 0xa4, 0xa8, 0x9c, 0x1c, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0x83, 0xe6, 0xa7, 0xf5, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x34, 0xbf, 0xea, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x71, 0x66, 0xfd, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x1a, 0x0a, 0xd7, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x71, 0x81, 0x17, 0x93, 0x6b, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xd0, 0x78, 0xd8, 0xfe, 0xc1, 0xfa, 0xa7, 0x91, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x80, 0xe0, 0xe5, 0x3a, 0x18, 0xef, 0x3a, 0x07, 0x8b, 0xd2, 0x49, 0x8e, 0x43, 0xc7, 0xa1, 0x83, 0xe6, 0xa7, 0xf5, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x34, 0xbf, 0xea, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x49, 0x58, 0xfd, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x83, 0xa6, 0x66, 0xf5, 0x07, 0xc1, 0x06, 0xed, 0x91, 0xf2, 0x1f, 0x34, 0xc5, 0xb2, 0x7f, 0x1c, 0x3a, 0x68, 0x7e, 0x5a, 0x7f, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0xf3, 0xab, 0xee, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x9a, 0x84, 0xd5, 0x1f, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0xb4, 0xf6, 0xbf, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x0f, 0xda, 0x55, 0xe0, 0x1f, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0x6c, 0xb0, 0x06, 0x81, 0xe4, 0x60, 0xbc, 0xeb, 0x1c, 0x34, 0x3f, 0xad, 0x7f, 0xd0, 0x8c, 0x03, 0xff, 0x41, 0xfb, 0x12, 0xfc, 0xc7, 0xa1, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x41, 0xf3, 0xc9, 0xfc, 0x07, 0xcd, 0x38, 0xf0, 0x1f, 0x2c, 0x4a, 0x27, 0x39, 0x0e, 0x1d, 0x34, 0x3f, 0xad, 0x7f, 0x1c, 0x3a, 0x1e, 0x1f, 0x87, 0x16, 0x7e, 0x41, 0xb0, 0xc1, 0x4a, 0x71, 0xb2, 0x83, 0x14, 0xe5, 0xe7, 0x41, 0xb0, 0x41, 0x9b, 0xa6, 0xfb, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0xbe, 0x20, 0xd8, 0xa0, 0xb5, 0xff, 0xfd, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x41, 0x03, 0xbe, 0xfa, 0xc7, 0xa1, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xfc, 0x06, 0xed, 0xdd, 0xeb, 0x1f, 0xdf, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0xca, 0x7f, 0xaa, 0x83, 0xf1, 0xae, 0x73, 0xb0, 0xce, 0x9e, 0x64, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xd6, 0x65, 0xdd, 0x0f, 0x96, 0xde, 0x48, 0x1d, 0x87, 0x06, 0xc1, 0x06, 0xcd, 0x3c, 0xe3, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xb8, 0x02, 0x8f, 0x26, 0x57, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x10, 0x2c, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x0d, 0x5a, 0xd1, 0xba, 0x1f, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0x06, 0xd5, 0xfd, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0xa0, 0x6d, 0x81, 0xfc, 0xe3, 0xd0, 0x41, 0xc3, 0x5f, 0xf7, 0x07, 0x8d, 0x09, 0xe4, 0x1f, 0x34, 0x26, 0x90, 0x7f, 0xd0, 0x98, 0x40, 0xfe, 0x20, 0xd8, 0xa0, 0x99, 0xb6, 0xfc, 0x83, 0x86, 0xbf, 0xee, 0x8f, 0x43, 0xc7, 0xe3, 0x41, 0xb0, 0x21, 0x86, 0x83, 0x60, 0xe1, 0x17, 0x04, 0x0b, 0x92, 0x81, 0xa1, 0x3a, 0x18, 0xfe, 0xb1, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x1f, 0x8c, 0xa5, 0xdc, 0xe3, 0xd0, 0xf1, 0x6d, 0x10, 0x6c, 0x48, 0x4c, 0x0d, 0x82, 0x85, 0x5f, 0x10, 0x2c, 0x48, 0x06, 0xee, 0xaf, 0x83, 0x93, 0xd0, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0xe0, 0xb0, 0xef, 0x7d, 0x1c, 0x3a, 0xbe, 0x0d, 0x82, 0xc5, 0x83, 0x06, 0x83, 0x3e, 0x07, 0xc1, 0xc2, 0x2f, 0x08, 0x16, 0x24, 0x03, 0x43, 0x75, 0x70, 0xf6, 0x32, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0x86, 0xeb, 0xe0, 0xec, 0x65, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0x20, 0x78, 0x07, 0x27, 0xa1, 0xe3, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x0d, 0x16, 0xff, 0x89, 0x1d, 0x1c, 0xb3, 0x8a, 0x8f, 0x43, 0xc7, 0xa1, 0xe3, 0xdb, 0x20, 0xd8, 0xa0, 0xa0, 0x16, 0x5b, 0x5c, 0xd8, 0x85, 0xdb, 0xa0, 0xa9, 0x2a, 0xfb, 0x43, 0xfc, 0x37, 0xb4, 0x12, 0x1f, 0x76, 0xe1, 0x36, 0x68, 0x59, 0xca, 0xfe, 0x10, 0xff, 0x0d, 0x31, 0x1c, 0x76, 0xe1, 0x36, 0x68, 0x8b, 0xcb, 0xfe, 0x10, 0xff, 0x0d, 0x31, 0x1c, 0x76, 0xe1, 0x36, 0x68, 0x6c, 0xcc, 0xfe, 0x10, 0xff, 0x0d, 0xad, 0xc4, 0x87, 0x5d, 0xb8, 0x0d, 0x5a, 0x53, 0xb3, 0x3f, 0xc4, 0x7f, 0x43, 0x0c, 0x87, 0x5d, 0xb8, 0x0d, 0x9a, 0x8b, 0xb3, 0x3f, 0xc4, 0x7f, 0x83, 0x02, 0x00, 0x6a, 0x90, 0xad, 0xa1, 0xfd, 0xfa, 0x70, 0x1b, 0xb4, 0x87, 0x67, 0x7f, 0x88, 0xff, 0xa1, 0x95, 0xf8, 0x0a, 0x82, 0x85, 0x5f, 0x90, 0x0c, 0x08, 0xfc, 0xbe, 0x83, 0x73, 0xde, 0xf1, 0xf1, 0x6d, 0x10, 0x2c, 0x0e, 0xbb, 0xc1, 0x20, 0xe0, 0x58, 0x10, 0x2c, 0xec, 0x06, 0x67, 0xd9, 0xe3, 0xc5, 0x39, 0x68, 0xc3, 0x88, 0xf4, 0x10, 0xc3, 0x61, 0x37, 0x18, 0xf5, 0x92, 0x0b, 0xbf, 0xf1, 0x7c, 0x0d, 0x31, 0xdc, 0x10, 0xc3, 0x43, 0x4a, 0xe0, 0xb0, 0x57, 0x38, 0xc8, 0xd6, 0xa0, 0x2d, 0x90, 0x95, 0x0d, 0x31, 0x1c, 0x04, 0x0b, 0x92, 0x81, 0xf4, 0xcf, 0xc1, 0x39, 0xef, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x08, 0xcf, 0xc1, 0x39, 0xef, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0xc5, 0x0d, 0x75, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x0d, 0x34, 0xf5, 0x1f, 0x84, 0x00, 0xf8, 0x71, 0xe8, 0x38, 0x74, 0xd0, 0x06, 0x54, 0xff, 0xb0, 0x0b, 0xb7, 0xc1, 0x91, 0xa7, 0xf8, 0xd0, 0x02, 0x68, 0xe1, 0x17, 0x44, 0x0b, 0x3b, 0x08, 0x16, 0x87, 0x5d, 0xd8, 0x0d, 0x8a, 0xcb, 0xa6, 0x85, 0xdb, 0x20, 0xa1, 0xec, 0xe4, 0x90, 0xb5, 0x3b, 0x1c, 0xed, 0x1b, 0xac, 0x58, 0xd0, 0x19, 0x04, 0x0b, 0x92, 0x0d, 0x86, 0xf8, 0xc7, 0xc1, 0x69, 0x43, 0xf9, 0x60, 0x98, 0x85, 0x1f, 0xdf, 0x8e, 0xc7, 0x83, 0x60, 0x35, 0x48, 0x8a, 0x24, 0x38, 0x1c, 0xed, 0x87, 0x86, 0x5f, 0x83, 0x60, 0x41, 0x32, 0x10, 0xbb, 0x41, 0xb4, 0xc1, 0x58, 0x60, 0x3f, 0xac, 0xd0, 0x0e, 0xbb, 0xb0, 0x1b, 0x8c, 0x8e, 0xf5, 0x85, 0xdd, 0x60, 0x01, 0xac, 0xcf, 0xc2, 0x6e, 0xb0, 0x66, 0x28, 0x65, 0x61, 0x17, 0x76, 0x83, 0x76, 0x42, 0x9c, 0x0e, 0xeb, 0x9b, 0x0b, 0xbb, 0xc1, 0x82, 0x2f, 0xae, 0x85, 0x5d, 0xb8, 0x0d, 0x1a, 0x4e, 0xb4, 0x3f, 0x08, 0xdc, 0xf8, 0x85, 0x5d, 0xb8, 0x0d, 0x5a, 0xb2, 0xb4, 0x3f, 0x08, 0x03, 0xf9, 0x0d, 0x31, 0x1c, 0x6e, 0x83, 0x66, 0x3b, 0xed, 0x0f, 0xc2, 0x40, 0xfe, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0x5f, 0x0d, 0x7b, 0x85, 0x87, 0xc4, 0xd4, 0xc1, 0x78, 0xd3, 0xd9, 0x60, 0x89, 0xef, 0xff, 0x21, 0x75, 0x30, 0xec, 0x82, 0x60, 0x83, 0x23, 0xa7, 0xf2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x46, 0xe9, 0x58, 0x0e, 0xc6, 0x62, 0xe7, 0x71, 0x68, 0x61, 0x17, 0x6e, 0x83, 0x84, 0xb2, 0x93, 0x43, 0x0b, 0xa0, 0x05, 0xc9, 0x90, 0x41, 0xb4, 0xe0, 0xf9, 0x30, 0x07, 0x23, 0xcb, 0xea, 0x60, 0x15, 0x93, 0xd8, 0x20, 0x58, 0xd8, 0x0d, 0xce, 0xb2, 0xc7, 0x6b, 0x88, 0xe1, 0xe2, 0x41, 0x93, 0x66, 0xa4, 0x1b, 0xac, 0x53, 0x69, 0x38, 0x18, 0x50, 0x61, 0x87, 0x18, 0x0e, 0xbb, 0xc1, 0xa8, 0x97, 0xdc, 0xa0, 0x0d, 0xa8, 0xfe, 0x41, 0xb6, 0x06, 0x6d, 0x81, 0xac, 0x6c, 0x88, 0xe1, 0x20, 0xd8, 0xa0, 0x2d, 0xab, 0xfe, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xed, 0x6c, 0xf5, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0xb8, 0x61, 0xe2, 0xd6, 0x50, 0xc7, 0x37, 0xbc, 0x7c, 0x37, 0x07, 0x4d, 0x9a, 0x91, 0x6e, 0x98, 0xb8, 0x0d, 0x5a, 0xf9, 0xa7, 0xd8, 0x30, 0x71, 0x6b, 0xa8, 0x23, 0x6b, 0x98, 0xa1, 0x0d, 0x5a, 0x6a, 0xc6, 0xd8, 0x70, 0x22, 0x6c, 0xd0, 0x52, 0x33, 0xc6, 0x06, 0x8b, 0xd9, 0xa0, 0x96, 0x59, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xe7, 0x49, 0x36, 0x48, 0x80, 0x03, 0x5e, 0xc3, 0xe7, 0x2e, 0x83, 0xc3, 0x1b, 0xbe, 0x7e, 0xd9, 0xf0, 0xe0, 0xcd, 0x06, 0x0b, 0x65, 0x9f, 0x36, 0x68, 0xa6, 0x73, 0x60, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x5a, 0x00, 0x1d, 0xd8, 0xa0, 0x9d, 0xd5, 0x85, 0x43, 0x34, 0x37, 0x28, 0x08, 0x66, 0x37, 0x38, 0xd7, 0x1b, 0x6c, 0x88, 0xe6, 0x41, 0x78, 0xaa, 0x6e, 0x78, 0x9e, 0x64, 0x83, 0x04, 0x38, 0xe0, 0x0d, 0x9f, 0xbb, 0x0c, 0x1e, 0x1f, 0x34, 0xe6, 0x65, 0x71, 0xb0, 0x92, 0x4e, 0xff, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x83, 0xa6, 0x7d, 0xfb, 0x37, 0x14, 0xd3, 0x35, 0x68, 0x7a, 0x0f, 0xe4, 0xe0, 0x10, 0x04, 0xba, 0x61, 0xe2, 0xd6, 0x30, 0xf7, 0x83, 0xa7, 0x1b, 0xea, 0xc8, 0x1a, 0x66, 0x68, 0x83, 0xc6, 0x21, 0x07, 0x36, 0x9c, 0x08, 0x1b, 0x34, 0x0e, 0x39, 0xb0, 0xc1, 0x62, 0x36, 0xa8, 0x65, 0x96, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0xeb, 0x97, 0x35, 0xfc, 0x08, 0x33, 0xf0, 0x74, 0x44, 0x1b, 0x2c, 0x94, 0x7d, 0xda, 0xa0, 0x99, 0xce, 0x81, 0x35, 0x28, 0x3a, 0x8d, 0x37, 0x68, 0x01, 0x74, 0x60, 0x0d, 0x3f, 0xc2, 0x0c, 0x3c, 0x5d, 0x18, 0x3c, 0x1d, 0x71, 0x48, 0x1d, 0x1c, 0xb4, 0x55, 0x3a, 0x70, 0xb0, 0x92, 0x4e, 0xff, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x83, 0x86, 0xc1, 0xfb, 0x37, 0xcc, 0xfd, 0xe0, 0xf4, 0x86, 0x3a, 0xb2, 0x86, 0x19, 0x5a, 0xc3, 0xc4, 0x6d, 0x98, 0xce, 0x0d, 0x33, 0xb4, 0x86, 0x89, 0x5b, 0xc3, 0xdc, 0x6f, 0x10, 0xae, 0x08, 0x07, 0x2d, 0x6e, 0xf7, 0x1f, 0xce, 0xe3, 0x83, 0x66, 0x2f, 0x21, 0x36, 0x9c, 0x08, 0x1b, 0x34, 0x2f, 0xdf, 0x7f, 0xd0, 0xaa, 0x2b, 0xc4, 0x41, 0x43, 0xb0, 0x10, 0x07, 0x21, 0x00, 0x7e, 0x1c, 0x3a, 0x0e, 0x1d, 0xb4, 0x01, 0xd5, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x0d, 0xda, 0xe9, 0xec, 0x1f, 0x44, 0x1b, 0x94, 0x07, 0x71, 0x83, 0x68, 0x61, 0x0f, 0xca, 0x6a, 0xb8, 0xe3, 0xf1, 0xf1, 0x6d, 0x10, 0x6c, 0xd0, 0x5c, 0x9c, 0xfd, 0xe2, 0x20, 0x58, 0x5c, 0x10, 0x6c, 0xd0, 0xb2, 0x94, 0xfd, 0xe2, 0xf0, 0x0b, 0xa2, 0x05, 0xb6, 0xff, 0x07, 0xc1, 0x82, 0x64, 0x50, 0x32, 0x81, 0xf6, 0xff, 0xff, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x1a, 0xcf, 0x4f, 0xd0, 0xfd, 0xff, 0x38, 0x74, 0x3c, 0x1e, 0x7e, 0x41, 0xb4, 0xc0, 0xf4, 0x0f, 0x82, 0x05, 0xc9, 0x06, 0x85, 0x7f, 0xd0, 0x41, 0x5a, 0xd0, 0xc8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0xe0, 0xcf, 0x41, 0x6b, 0x0e, 0xfe, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xda, 0x8e, 0xf0, 0x3f, 0x28, 0x21, 0x25, 0x8e, 0x43, 0x07, 0xeb, 0x54, 0x1a, 0x8e, 0x43, 0xc7, 0xe3, 0xe1, 0x17, 0x44, 0x0b, 0x54, 0xfe, 0x83, 0xe4, 0x68, 0x90, 0xe3, 0xf1, 0x20, 0xd8, 0x60, 0x19, 0xbc, 0xc0, 0xa1, 0x51, 0xcb, 0xf1, 0x78, 0x05, 0xc1, 0x06, 0x2d, 0x4b, 0xd9, 0x2f, 0x0e, 0xa2, 0x05, 0xc6, 0xff, 0x20, 0xcd, 0xc7, 0x66, 0x10, 0x2d, 0x10, 0xfe, 0x83, 0x62, 0x91, 0xec, 0x90, 0x5c, 0x3a, 0x1e, 0x0f, 0x82, 0x0d, 0xda, 0xe2, 0xb2, 0x5f, 0x1c, 0x7e, 0x61, 0x17, 0x6e, 0x43, 0xea, 0xe0, 0xe0, 0xcc, 0xb8, 0xbc, 0x21, 0xb9, 0x74, 0xd0, 0x6e, 0x89, 0xff, 0x20, 0xd8, 0xa0, 0x64, 0x68, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0xfc, 0xa0, 0xb1, 0x31, 0xfb, 0xe3, 0xd0, 0xf1, 0x78, 0xd8, 0x85, 0xdb, 0xa0, 0xb9, 0x38, 0xfb, 0x43, 0xaa, 0x66, 0x41, 0xb0, 0xc1, 0xf9, 0x89, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x83, 0xe6, 0xe2, 0xec, 0x8f, 0x43, 0xc3, 0x2e, 0xdc, 0x06, 0x2d, 0x4b, 0xd9, 0x1f, 0x52, 0x35, 0x0b, 0x82, 0x0d, 0xce, 0x4f, 0xb4, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x1f, 0xb4, 0x2c, 0x65, 0x7f, 0x1c, 0x1a, 0x76, 0xe1, 0x36, 0x68, 0x0f, 0xcf, 0xfe, 0x90, 0xaa, 0x59, 0x10, 0x6c, 0x50, 0x32, 0x34, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x7e, 0xd0, 0x1e, 0x9e, 0xfd, 0x71, 0x68, 0xd8, 0x85, 0xdb, 0xa0, 0xb5, 0x9d, 0xfb, 0x43, 0xaa, 0x66, 0x41, 0xb0, 0xc1, 0xba, 0x68, 0xb0, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x0f, 0xda, 0xe2, 0xb2, 0x3f, 0x0e, 0x0d, 0xb2, 0x35, 0xb4, 0x5f, 0x1f, 0x6e, 0x83, 0xc6, 0x68, 0xee, 0x0f, 0xa9, 0x9a, 0x41, 0xb0, 0xc1, 0xba, 0x68, 0xb0, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x0f, 0x5a, 0x53, 0xb3, 0x3f, 0x0e, 0x0d, 0xbf, 0xc1, 0x5a, 0x3e, 0x81, 0xc3, 0x0a, 0xed, 0xf1, 0x78, 0x61, 0x17, 0x76, 0x83, 0x82, 0x8b, 0xe1, 0xb0, 0xbe, 0xb9, 0xf1, 0x78, 0x10, 0x6c, 0x70, 0xf2, 0xc4, 0x1d, 0x04, 0x1b, 0x62, 0x38, 0xec, 0x06, 0xa3, 0x5e, 0x72, 0xe1, 0x37, 0x9e, 0x0f, 0xbb, 0xc1, 0xa8, 0x97, 0x5c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x92, 0xc1, 0xe8, 0x78, 0x3e, 0xfc, 0x06, 0x03, 0x13, 0x60, 0xf8, 0x0d, 0x06, 0x3b, 0xc0, 0xb0, 0x1b, 0x2c, 0x1a, 0x14, 0x5a, 0xf8, 0x0d, 0x0a, 0x74, 0xca, 0x83, 0xd3, 0x0a, 0xee, 0x20, 0x5a, 0x20, 0xfc, 0x07, 0x83, 0x35, 0xf6, 0x90, 0x5c, 0x1a, 0x7e, 0x41, 0xb4, 0x90, 0x83, 0x10, 0x00, 0x3f, 0x1e, 0x0f, 0xbb, 0x70, 0x1b, 0x34, 0x9c, 0x68, 0x7f, 0x10, 0x64, 0xf1, 0x0b, 0xa2, 0x05, 0xcb, 0x83, 0x90, 0x02, 0x3f, 0x9e, 0x0f, 0xbf, 0x20, 0x5a, 0x20, 0xfc, 0xc3, 0x2e, 0xdc, 0x86, 0x18, 0x1e, 0x8c, 0x56, 0xf3, 0x35, 0x08, 0x29, 0xf0, 0x83, 0x90, 0x02, 0x3f, 0x18, 0xbc, 0x93, 0xc7, 0xe3, 0x61, 0x17, 0x76, 0x83, 0xb1, 0xc9, 0xb9, 0x21, 0x86, 0xc3, 0x2e, 0xec, 0xc2, 0x2e, 0xdc, 0x06, 0x4d, 0x55, 0xd9, 0x1f, 0x92, 0x1d, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x6d, 0xd0, 0x1e, 0x9e, 0xfd, 0x21, 0xd9, 0xb1, 0x21, 0x86, 0xc3, 0x6d, 0xd0, 0xd8, 0x98, 0xfd, 0x21, 0xd9, 0xb1, 0xb0, 0x0b, 0xbb, 0xb0, 0x0b, 0xb7, 0x41, 0xfb, 0xc4, 0xf6, 0x07, 0x41, 0x16, 0x7f, 0x58, 0xdf, 0xdc, 0x10, 0xc3, 0x61, 0x17, 0x04, 0x1b, 0x1c, 0xc0, 0x92, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xa2, 0x79, 0xb0, 0x4e, 0xa5, 0xe1, 0x38, 0x74, 0x48, 0xe7, 0x1e, 0xd2, 0xb9, 0x87, 0xa3, 0xfd, 0x90, 0xce, 0x5d, 0xf8, 0x05, 0xd1, 0x42, 0x07, 0xc9, 0x40, 0xf9, 0x3b, 0x9e, 0x1f, 0x8f, 0x87, 0x5f, 0x10, 0x2d, 0x74, 0x10, 0x6c, 0xd0, 0x32, 0x41, 0xfc, 0xc1, 0x30, 0x76, 0x38, 0x1e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x20, 0xd8, 0xe0, 0x48, 0x9b, 0x7c, 0xd0, 0x14, 0xa7, 0xff, 0xb0, 0x1b, 0x8c, 0x7a, 0xc9, 0x85, 0xdf, 0x78, 0x7e, 0x10, 0x6e, 0xee, 0xc3, 0x2e, 0xdc, 0x06, 0x05, 0x00, 0xd4, 0x71, 0x68, 0xe1, 0x37, 0x9e, 0x8f, 0xb3, 0x41, 0x42, 0x85, 0xdc, 0x41, 0x3b, 0xd5, 0x9c, 0x83, 0x6c, 0x43, 0xf3, 0xf5, 0xe1, 0x37, 0x9e, 0x1f, 0xac, 0x10, 0x09, 0x1a, 0x7e, 0x41, 0xb4, 0x20, 0x3d, 0x08, 0x01, 0xf0, 0xe3, 0xf1, 0xf0, 0x1b, 0x0c, 0x76, 0x80, 0x61, 0x37, 0x0e, 0x2d, 0xfc, 0x82, 0x68, 0x81, 0xea, 0x7f, 0x88, 0xe6, 0xf1, 0x78, 0xf8, 0x05, 0xd1, 0xc2, 0x0f, 0xbb, 0xb0, 0x0b, 0xbb, 0x70, 0x1b, 0xb4, 0xc5, 0x65, 0x7f, 0x10, 0xa4, 0xf8, 0x0b, 0xbb, 0xb0, 0x0b, 0xb7, 0x41, 0x6b, 0x3b, 0xf7, 0x07, 0x41, 0xe9, 0x7d, 0x58, 0xdf, 0x3c, 0xa4, 0x73, 0x0f, 0x47, 0xfb, 0x86, 0x18, 0x0e, 0xbb, 0xb0, 0x0b, 0xb7, 0x41, 0x6b, 0x6a, 0xf6, 0x07, 0x41, 0x8a, 0xbf, 0xb0, 0x0b, 0xbb, 0x70, 0x1b, 0x34, 0x46, 0x73, 0x7f, 0x10, 0x94, 0xde, 0x87, 0xf5, 0xcd, 0x43, 0x3a, 0xf7, 0x70, 0xb4, 0x1f, 0xd2, 0xb9, 0x1b, 0xac, 0xea, 0xe0, 0x3a, 0x24, 0x97, 0x8e, 0xc7, 0xc3, 0x2f, 0xec, 0xc2, 0x6d, 0xd0, 0x5e, 0xa8, 0xfd, 0xa1, 0x91, 0xe0, 0x82, 0x60, 0x83, 0x84, 0x18, 0x80, 0x43, 0x0b, 0xb0, 0x61, 0x17, 0x6e, 0x83, 0xa6, 0x74, 0xed, 0x0f, 0x8d, 0x04, 0x17, 0x04, 0x1b, 0x24, 0x63, 0xd2, 0x1f, 0x5a, 0x80, 0x0d, 0xb2, 0x35, 0xb4, 0x5f, 0x1f, 0x6e, 0x83, 0xf6, 0x89, 0xed, 0x0f, 0x8d, 0x04, 0x0f, 0xc9, 0xa5, 0x41, 0x32, 0x98, 0x0d, 0xa2, 0x05, 0xf1, 0x86, 0x18, 0x1e, 0x5a, 0x48, 0x1e, 0x8f, 0x07, 0xc1, 0xc2, 0x6e, 0x70, 0x96, 0x3d, 0x5e, 0x43, 0x0c, 0x17, 0x0f, 0xda, 0xb6, 0x30, 0x3d, 0x68, 0xb9, 0xd3, 0xff, 0x10, 0xc3, 0x61, 0x37, 0x18, 0xf5, 0x92, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2d, 0x10, 0xfe, 0x0d, 0x31, 0x3c, 0x58, 0xa4, 0x4b, 0x74, 0x48, 0x2e, 0x0d, 0xb2, 0x35, 0x68, 0x0b, 0x64, 0x65, 0x43, 0x0c, 0x07, 0xc1, 0x06, 0x6d, 0x59, 0xf5, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0x67, 0xab, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0xc5, 0x0d, 0x13, 0xb7, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x39, 0x68, 0xdb, 0xc2, 0x74, 0xc3, 0xc4, 0xad, 0xa1, 0x98, 0xae, 0x86, 0x19, 0x5a, 0xc3, 0xc4, 0x6d, 0x98, 0xce, 0x0d, 0x33, 0xb4, 0x86, 0x19, 0x5a, 0xc3, 0xc4, 0xad, 0x61, 0xe2, 0xd6, 0x30, 0xf7, 0x1b, 0xb4, 0x17, 0x68, 0xb9, 0xc1, 0x82, 0x86, 0xa9, 0x35, 0xd4, 0xf1, 0xc1, 0xcd, 0xe3, 0xf1, 0x6a, 0xa8, 0xe3, 0x83, 0x9b, 0x87, 0x53, 0xec, 0x70, 0x8a, 0xb5, 0x61, 0xe2, 0xd6, 0x30, 0xf7, 0x1b, 0xb4, 0x48, 0x68, 0xb9, 0xa1, 0x8e, 0xac, 0x61, 0x86, 0x36, 0x68, 0x1c, 0x72, 0x60, 0xc3, 0x89, 0xb0, 0x41, 0xe3, 0x90, 0x03, 0x1b, 0x2c, 0x66, 0x83, 0x5a, 0x66, 0xd9, 0xf0, 0x89, 0xcd, 0x1a, 0x9e, 0x27, 0xd9, 0xe0, 0xd8, 0xfc, 0xb9, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x25, 0xc4, 0x37, 0x58, 0x41, 0xa6, 0xbf, 0xe1, 0xdd, 0x9e, 0x0d, 0x42, 0xca, 0x64, 0x0d, 0x1f, 0xb5, 0x1f, 0x9c, 0x08, 0x40, 0x3b, 0x38, 0xc6, 0x9c, 0x1d, 0xac, 0xa4, 0xd3, 0x3f, 0x9c, 0x62, 0x87, 0x53, 0xec, 0xa0, 0x11, 0x8c, 0xff, 0x0d, 0x73, 0xbf, 0x41, 0x8b, 0x88, 0x96, 0x07, 0xad, 0x28, 0xfc, 0x1f, 0xb4, 0x6b, 0x1b, 0xb5, 0xe1, 0x44, 0xd8, 0xa0, 0x79, 0x83, 0xff, 0x0d, 0x16, 0xb3, 0x41, 0x1d, 0xb4, 0xbd, 0x68, 0xb9, 0xe1, 0x44, 0xd8, 0xa0, 0x1d, 0x83, 0xff, 0x35, 0x9c, 0x23, 0x07, 0x6d, 0x22, 0xd9, 0x1f, 0x34, 0xa3, 0xc9, 0xb9, 0xe1, 0x44, 0xd8, 0xa0, 0x19, 0x82, 0xff, 0x0d, 0x16, 0xb3, 0x41, 0x2d, 0xb3, 0x6c, 0xf8, 0xc4, 0x66, 0x35, 0x7c, 0xee, 0xb2, 0xc1, 0x2a, 0x39, 0xd2, 0x0d, 0xcf, 0x93, 0x6c, 0xd0, 0x50, 0x70, 0xe7, 0x41, 0x0b, 0xc3, 0xfd, 0x1b, 0x3e, 0x77, 0xd9, 0xa0, 0x81, 0xe6, 0xce, 0x0d, 0xcf, 0x93, 0x6c, 0xd0, 0x60, 0x72, 0xe7, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x94, 0x10, 0xdf, 0x60, 0x05, 0x99, 0xfe, 0x86, 0xb7, 0x75, 0x0e, 0xda, 0x77, 0xee, 0x3c, 0x38, 0x80, 0x26, 0x1d, 0xac, 0xa4, 0xd3, 0x3f, 0x9c, 0x62, 0x87, 0x53, 0xec, 0xa0, 0xa1, 0xe0, 0xce, 0x83, 0x56, 0xfe, 0x29, 0x0e, 0x5a, 0xf9, 0xa7, 0x38, 0x08, 0x01, 0xf0, 0xe3, 0xd0, 0x71, 0xe8, 0xa0, 0x0d, 0x78, 0xff, 0x61, 0x17, 0x76, 0x83, 0xa2, 0x4a, 0x61, 0x43, 0x0c, 0x87, 0x5d, 0xd8, 0x85, 0xdb, 0xa0, 0x2d, 0x2e, 0xfb, 0x43, 0xb2, 0x63, 0x43, 0x0c, 0x87, 0xdb, 0xa0, 0x35, 0x35, 0xfb, 0x43, 0xb2, 0x63, 0x41, 0xb6, 0x86, 0x3c, 0xf6, 0xe2, 0x20, 0x58, 0x90, 0x0c, 0xa4, 0x7f, 0x0e, 0x4e, 0x67, 0xc8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x40, 0x78, 0x0e, 0x4e, 0x67, 0xc8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x2f, 0x6e, 0x98, 0xb8, 0x35, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0xcd, 0x41, 0x9b, 0x7d, 0xa6, 0x1b, 0x2c, 0x68, 0x98, 0x5a, 0x43, 0x31, 0x5d, 0x0d, 0x33, 0xb4, 0x41, 0x33, 0x04, 0xff, 0x1b, 0x4e, 0x84, 0x0d, 0x9a, 0x21, 0xf8, 0xdf, 0x60, 0x31, 0x1b, 0xd4, 0x32, 0xcb, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0x41, 0xce, 0x1a, 0x2c, 0x80, 0x3e, 0x5a, 0xc3, 0xf3, 0x24, 0x1b, 0xb4, 0x06, 0xcb, 0x79, 0xd0, 0xa6, 0xff, 0xe8, 0xc1, 0x31, 0xe6, 0x6c, 0x0d, 0xcf, 0x93, 0x6c, 0xd0, 0x1a, 0x2c, 0xe7, 0x06, 0x05, 0x1f, 0xe6, 0x1a, 0xfe, 0xcd, 0xd9, 0x90, 0x3a, 0xd8, 0xf0, 0xc6, 0xdd, 0x1c, 0xb4, 0x62, 0xcb, 0x79, 0xd0, 0xa6, 0xff, 0xe8, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x01, 0xf4, 0xd1, 0x1a, 0x9e, 0x27, 0xd9, 0xa0, 0x39, 0x5c, 0xce, 0x83, 0x46, 0xc2, 0x4a, 0x0f, 0x8e, 0x31, 0x67, 0x6b, 0x78, 0x9e, 0x64, 0x83, 0xe6, 0x70, 0x39, 0x37, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x6f, 0xce, 0x86, 0xd4, 0xc1, 0x86, 0x37, 0xee, 0xe6, 0xa0, 0x79, 0x5f, 0xce, 0x83, 0x46, 0xc2, 0x4a, 0x37, 0x7c, 0x90, 0xb3, 0x06, 0x0b, 0xa0, 0x8f, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0xed, 0x04, 0x73, 0x1e, 0x34, 0x70, 0x53, 0x7a, 0x70, 0x8c, 0x39, 0x5b, 0xc3, 0xf3, 0x24, 0x1b, 0xb4, 0x13, 0xcc, 0xb9, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0xa4, 0x0e, 0x36, 0xbc, 0x71, 0x37, 0x07, 0xed, 0x19, 0x73, 0x1e, 0x34, 0x70, 0x53, 0xba, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x00, 0x7d, 0xb4, 0x86, 0xe7, 0x49, 0x36, 0x68, 0x18, 0x99, 0xf3, 0xa0, 0x21, 0xb4, 0xd2, 0x83, 0x63, 0xcc, 0xd9, 0x1a, 0x9e, 0x27, 0xd9, 0xa0, 0x61, 0x64, 0xce, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x21, 0x75, 0xb0, 0xe1, 0x8d, 0xbb, 0x39, 0x68, 0xd8, 0x99, 0xf3, 0xa0, 0x21, 0xb4, 0xd2, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x4f, 0xb2, 0x41, 0x0b, 0xd1, 0x9c, 0x07, 0x2d, 0x26, 0x95, 0x1e, 0x1c, 0x63, 0xce, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0x2d, 0x44, 0x73, 0x6e, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0xa9, 0x83, 0x0d, 0x6f, 0xdc, 0xcd, 0x41, 0x3b, 0xd5, 0x9c, 0x07, 0x2d, 0x26, 0x95, 0x6e, 0xf8, 0x20, 0x67, 0x0d, 0x16, 0x40, 0x1f, 0xad, 0xe1, 0x79, 0x92, 0x0d, 0x1a, 0xbc, 0xe6, 0x3c, 0x68, 0x89, 0x1e, 0xf4, 0xe0, 0x18, 0x73, 0xb6, 0x86, 0xe7, 0x49, 0x36, 0x68, 0xf0, 0x9a, 0x73, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x48, 0x1d, 0x6c, 0x78, 0xe3, 0x6e, 0x0e, 0x1a, 0xe8, 0xe6, 0x3c, 0x68, 0x89, 0x1e, 0x74, 0xc3, 0xf3, 0x24, 0x1b, 0xb4, 0xf4, 0xcd, 0xb9, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0xa4, 0x0e, 0x36, 0xbc, 0x71, 0x37, 0x07, 0xc1, 0xb2, 0x74, 0xd0, 0x3e, 0x33, 0xe8, 0xc1, 0x4a, 0x3a, 0xfd, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x0e, 0x9a, 0xc3, 0xe5, 0xdc, 0x50, 0xc7, 0x37, 0xbc, 0x7c, 0x77, 0xd0, 0xa4, 0xe1, 0xff, 0xac, 0xa1, 0x98, 0xae, 0x41, 0x03, 0x67, 0xff, 0x07, 0x0d, 0x23, 0x73, 0x6e, 0xa8, 0xe3, 0x1b, 0x5e, 0xbe, 0x3b, 0x68, 0x48, 0xf4, 0xff, 0x70, 0x8a, 0x0d, 0xbf, 0xf1, 0x7c, 0xf1, 0xa0, 0xcd, 0x3e, 0xd3, 0x43, 0xb2, 0xe3, 0x38, 0x74, 0x1c, 0x3a, 0x1e, 0x1f, 0x4e, 0xb1, 0x61, 0x17, 0x6e, 0x83, 0x96, 0xa5, 0xec, 0x0f, 0xc9, 0x8e, 0x0d, 0x47, 0xfb, 0xb0, 0x0b, 0xb7, 0x41, 0x73, 0x71, 0xf6, 0x87, 0x64, 0xc7, 0x82, 0x60, 0x41, 0x32, 0xa8, 0x39, 0x38, 0x50, 0x24, 0x1f, 0x34, 0xc5, 0xe9, 0x3f, 0xc8, 0xd6, 0xd0, 0x7e, 0x7d, 0xd8, 0x0d, 0x5a, 0x6d, 0xf4, 0xdf, 0x10, 0xc3, 0x61, 0x37, 0x68, 0x2a, 0xea, 0x7f, 0x43, 0x0c, 0x87, 0xdd, 0xa0, 0x65, 0x48, 0xff, 0x0d, 0x31, 0x1c, 0x76, 0x83, 0x16, 0x27, 0xfd, 0x0f, 0x9a, 0x9b, 0xfa, 0x1f, 0x6e, 0x83, 0x90, 0x02, 0x3f, 0x18, 0xc6, 0xb0, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xd0, 0x30, 0x9c, 0xff, 0xf0, 0x1b, 0x0c, 0x4c, 0x80, 0xe1, 0x37, 0x18, 0xec, 0x00, 0xc3, 0x2f, 0x88, 0x16, 0xd4, 0x0f, 0xa2, 0x85, 0xdf, 0x20, 0xa4, 0xc0, 0x0f, 0x82, 0x87, 0xfb, 0x20, 0x30, 0xb1, 0x8f, 0xc7, 0xc3, 0x6e, 0xb0, 0x68, 0x50, 0x68, 0x83, 0xf4, 0x2f, 0x85, 0x83, 0x76, 0xf2, 0xfc, 0x07, 0xc1, 0xc2, 0x6e, 0x50, 0xb8, 0x25, 0xad, 0x21, 0x86, 0x8b, 0x07, 0x0d, 0x63, 0x9a, 0x6e, 0x48, 0x76, 0x6c, 0x30, 0x8c, 0x61, 0x0f, 0x42, 0x0a, 0xfc, 0x10, 0xc3, 0x61, 0x37, 0x18, 0xf5, 0x92, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2d, 0x10, 0xfe, 0x0d, 0x31, 0xdc, 0xa0, 0x38, 0xd4, 0x38, 0x08, 0x29, 0xf0, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0xb6, 0x40, 0x56, 0x36, 0xc4, 0x70, 0x10, 0x6c, 0xd0, 0x0c, 0xd6, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x26, 0xba, 0xfe, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x5f, 0xdc, 0x30, 0x71, 0x6b, 0xa8, 0xe3, 0x1b, 0x5e, 0xbe, 0x9b, 0x83, 0x86, 0x31, 0x4d, 0x37, 0x4c, 0xdc, 0x1a, 0xea, 0xc8, 0x06, 0x0d, 0x9c, 0xfd, 0x1f, 0xb4, 0xc3, 0xf6, 0xbf, 0x61, 0xe2, 0x36, 0x68, 0xe5, 0x9f, 0xe2, 0xa0, 0x55, 0x81, 0xff, 0x83, 0x10, 0x00, 0x3f, 0x0e, 0x1d, 0x87, 0x0e, 0xde, 0x22, 0x00, 0x30, 0xc8, 0xd6, 0xa0, 0x2d, 0x90, 0x95, 0x0d, 0x31, 0x1c, 0x04, 0x1b, 0x34, 0x83, 0xf5, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0x89, 0xae, 0xff, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x17, 0x37, 0x4c, 0xdc, 0x1a, 0xea, 0xf8, 0x86, 0x97, 0xef, 0xe6, 0xa0, 0x6d, 0x24, 0xd0, 0x0d, 0x13, 0xb7, 0x86, 0xb9, 0xdf, 0x60, 0xc1, 0x83, 0xcb, 0x86, 0x89, 0x5b, 0xc3, 0xdc, 0x6f, 0x50, 0x9a, 0x65, 0x1f, 0xb4, 0xf2, 0x4f, 0xb1, 0x61, 0xee, 0x37, 0x68, 0x3b, 0x7e, 0xf4, 0xa0, 0x95, 0x7f, 0x8a, 0x0d, 0x13, 0xb7, 0x86, 0xb9, 0xdf, 0xa0, 0x31, 0x51, 0xd2, 0x0d, 0x75, 0x64, 0x0d, 0x33, 0xb4, 0x86, 0x89, 0x5b, 0xc3, 0xc4, 0xad, 0x61, 0xee, 0x37, 0x68, 0xb8, 0xc7, 0xf3, 0xa0, 0x6d, 0xdc, 0xfe, 0x0d, 0x73, 0xbf, 0xc1, 0x02, 0xdc, 0xf3, 0x83, 0x26, 0xf6, 0x40, 0x36, 0x4c, 0xdc, 0x1a, 0xe6, 0x7e, 0x83, 0xb5, 0x31, 0x97, 0x1b, 0xea, 0xc8, 0x1a, 0x66, 0x68, 0x0d, 0x13, 0xb7, 0x61, 0x3a, 0x37, 0xcc, 0xd0, 0x1a, 0x26, 0x6e, 0x0d, 0x73, 0xbf, 0x41, 0xb8, 0x22, 0x6c, 0x28, 0xa6, 0xab, 0x61, 0x86, 0xd6, 0x30, 0x71, 0x6b, 0x98, 0xb8, 0x35, 0xcc, 0xfd, 0x06, 0xc1, 0xb2, 0x74, 0xd0, 0x66, 0x6e, 0xff, 0x86, 0xb9, 0xdf, 0x20, 0x08, 0x97, 0x36, 0xcc, 0xd0, 0x06, 0x8d, 0x43, 0x0e, 0x6c, 0x38, 0x11, 0x36, 0x68, 0x1c, 0x72, 0x60, 0x83, 0xc5, 0x6c, 0x50, 0xcb, 0x2c, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xf3, 0x24, 0x1b, 0x1c, 0xd9, 0x47, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xa5, 0x84, 0xf8, 0x06, 0x2b, 0xc8, 0xf4, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x48, 0x99, 0xac, 0xe1, 0xa3, 0xf6, 0x83, 0x93, 0x9e, 0x68, 0x07, 0xc7, 0x98, 0xb3, 0x83, 0x95, 0x74, 0xfa, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x1d, 0xce, 0xe3, 0x83, 0x56, 0x38, 0x29, 0x0e, 0xc2, 0x82, 0x69, 0xc3, 0x0c, 0xad, 0x61, 0xe2, 0x36, 0x4c, 0xe7, 0xc1, 0xab, 0x4a, 0x00, 0x36, 0x9c, 0x08, 0x1b, 0xbc, 0x66, 0x06, 0xe0, 0xa0, 0x7d, 0x58, 0x8a, 0xc3, 0x79, 0x7c, 0xd0, 0x76, 0xc0, 0xc5, 0x86, 0x13, 0x61, 0x83, 0x07, 0x8b, 0x00, 0x1c, 0xb4, 0xc5, 0x70, 0x71, 0xd0, 0x7c, 0xc3, 0xc5, 0x86, 0x89, 0x5b, 0xc3, 0xdc, 0x6f, 0xb0, 0x88, 0xbe, 0x6e, 0x43, 0x1d, 0x59, 0xc3, 0x0c, 0xad, 0x61, 0xe2, 0x36, 0x4c, 0xe7, 0x86, 0x19, 0x5a, 0xc3, 0xc4, 0xad, 0x61, 0xe2, 0xd6, 0x30, 0xf7, 0x1b, 0x04, 0xcb, 0xd2, 0x86, 0x62, 0xba, 0x06, 0x0d, 0x16, 0xfc, 0x1f, 0xb4, 0x9a, 0xca, 0x79, 0xd0, 0xc0, 0xd9, 0xff, 0x86, 0xb9, 0xdf, 0x20, 0x08, 0x97, 0x0e, 0x1a, 0xd2, 0xcf, 0x38, 0x9c, 0xc7, 0x07, 0xad, 0x70, 0x52, 0x6c, 0x38, 0x11, 0x36, 0x78, 0xad, 0x0e, 0xc0, 0x41, 0xfb, 0xb0, 0x14, 0x07, 0x4d, 0xca, 0x52, 0x6c, 0x98, 0xb8, 0x35, 0xcc, 0xfd, 0x06, 0x8d, 0xd7, 0x8f, 0x6e, 0xa8, 0x23, 0x6b, 0x98, 0xa1, 0x35, 0x4c, 0xdc, 0x86, 0xe9, 0xdc, 0x30, 0x43, 0x6b, 0x98, 0xb8, 0x35, 0xcc, 0xfd, 0x06, 0xe1, 0x8a, 0xb0, 0xa1, 0x98, 0xae, 0x41, 0x83, 0x05, 0xff, 0x07, 0xad, 0x71, 0x72, 0x6e, 0xa8, 0x23, 0x1b, 0xbc, 0x6b, 0x07, 0xe0, 0xa0, 0x2d, 0x53, 0x8a, 0xc3, 0x79, 0x7c, 0xd0, 0xec, 0x25, 0xc4, 0x86, 0x13, 0x61, 0x83, 0xa7, 0x15, 0x01, 0x1c, 0xb4, 0xea, 0x0a, 0x71, 0xd0, 0x10, 0x2c, 0xc4, 0x86, 0x89, 0xdb, 0xe0, 0x3d, 0x17, 0x00, 0x1b, 0x26, 0x6e, 0x0d, 0x73, 0xbf, 0x41, 0x13, 0xe6, 0xa3, 0x1b, 0xea, 0xc8, 0x1a, 0x66, 0x68, 0x0d, 0x13, 0xb7, 0x61, 0x3a, 0x37, 0xcc, 0xd0, 0x1a, 0x26, 0x6e, 0x0d, 0x73, 0xbf, 0x41, 0xb8, 0x22, 0x1c, 0xb4, 0x99, 0xdb, 0x7f, 0x38, 0x8f, 0x0f, 0xda, 0x0e, 0xb8, 0xd8, 0x70, 0x22, 0x6c, 0xf0, 0x20, 0x28, 0x80, 0x83, 0xb6, 0x18, 0x2e, 0x0e, 0x9a, 0x6f, 0xb8, 0xd8, 0x30, 0x71, 0x6b, 0x98, 0xfb, 0x0d, 0xda, 0x07, 0x1f, 0x3d, 0x68, 0x45, 0xe1, 0x7f, 0xc3, 0x0c, 0x6d, 0xd0, 0x60, 0xc1, 0xff, 0x86, 0x13, 0x61, 0x83, 0x06, 0x0b, 0xfe, 0x37, 0x58, 0xcc, 0x06, 0x75, 0xd0, 0x3c, 0x83, 0xe7, 0x86, 0x13, 0x61, 0x83, 0xf7, 0x74, 0x00, 0x6c, 0xb0, 0x98, 0x0d, 0xea, 0xa0, 0x75, 0x06, 0xd2, 0x83, 0x16, 0x6b, 0x4e, 0x0f, 0x1e, 0xf6, 0x01, 0x70, 0x10, 0x02, 0xe0, 0xc7, 0xa1, 0xe3, 0xd0, 0x41, 0x43, 0x6d, 0xfe, 0x2b, 0x08, 0x36, 0x68, 0xe3, 0xd5, 0x7e, 0x71, 0xd8, 0x85, 0xdb, 0xa0, 0x45, 0x5b, 0xfb, 0x43, 0xea, 0x60, 0x41, 0xb0, 0x41, 0x8a, 0x2a, 0xc1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0xc3, 0x2f, 0x48, 0x86, 0x39, 0x18, 0x8e, 0xd2, 0x07, 0x23, 0x24, 0xea, 0x38, 0x34, 0xec, 0xc2, 0x6d, 0xd0, 0x14, 0xaa, 0xfd, 0x21, 0x75, 0xb0, 0x20, 0xd8, 0x20, 0x45, 0x95, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x78, 0xd5, 0x18, 0xc0, 0xc1, 0x58, 0x86, 0x3a, 0x0e, 0x0d, 0xb2, 0x35, 0xb4, 0x5f, 0x1f, 0x6e, 0x83, 0x36, 0x5e, 0xed, 0x0f, 0xa9, 0x83, 0x41, 0xb0, 0x41, 0x8a, 0x2a, 0xc1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe1, 0x37, 0x78, 0xd5, 0x18, 0xc0, 0x20, 0x19, 0x68, 0xdf, 0x75, 0x3c, 0x1e, 0x24, 0x43, 0x0e, 0xda, 0x9e, 0x63, 0x39, 0x0e, 0x1d, 0x8f, 0x17, 0x04, 0x8b, 0x1b, 0x56, 0x68, 0x37, 0x18, 0x63, 0x68, 0x1b, 0x8c, 0x31, 0xb4, 0x83, 0x31, 0x86, 0xb6, 0x38, 0x08, 0x16, 0x04, 0x1b, 0x52, 0x07, 0x87, 0xf5, 0x89, 0x61, 0x37, 0x08, 0x2d, 0xf7, 0x05, 0xc1, 0xc2, 0x6e, 0x70, 0x2a, 0x47, 0x5e, 0x43, 0x0c, 0x17, 0x0f, 0x9a, 0x99, 0x36, 0x3d, 0x24, 0x66, 0x0e, 0x31, 0x1c, 0x76, 0x83, 0x51, 0x2f, 0xb9, 0xf0, 0x1b, 0xcf, 0x07, 0xd1, 0x02, 0xe1, 0x3f, 0x58, 0x0a, 0xeb, 0x73, 0x58, 0xa1, 0x1d, 0x64, 0x6b, 0xd0, 0x16, 0xc8, 0xca, 0x86, 0x18, 0x0e, 0x82, 0x05, 0xc9, 0x40, 0xfa, 0xe7, 0xe0, 0x5c, 0x7f, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x84, 0xe7, 0xe0, 0x5c, 0x7f, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xe2, 0x86, 0x89, 0x5b, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x1c, 0x34, 0x33, 0x6d, 0x7a, 0xd0, 0xc4, 0x1e, 0xc8, 0x41, 0x08, 0x80, 0x1f, 0x87, 0x8e, 0x43, 0x07, 0xef, 0xbb, 0x03, 0x18, 0x04, 0x0b, 0x82, 0x0d, 0x06, 0x6b, 0xec, 0x06, 0x21, 0x05, 0x3e, 0x08, 0x36, 0x08, 0x01, 0xf0, 0x83, 0x91, 0xa6, 0x35, 0x88, 0x16, 0xb4, 0x0f, 0x82, 0x05, 0xc9, 0x06, 0x45, 0x7d, 0xce, 0xc1, 0x31, 0x63, 0x79, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x83, 0x21, 0xfe, 0x71, 0x70, 0xcc, 0x58, 0x3e, 0x18, 0xc6, 0x0e, 0x07, 0x8d, 0xd2, 0xb1, 0x1c, 0x87, 0x06, 0xd1, 0xc2, 0x6e, 0x10, 0x64, 0xf1, 0x07, 0x83, 0x35, 0xf6, 0x90, 0xad, 0x38, 0x1e, 0x0f, 0x82, 0x05, 0xc9, 0xc0, 0x7e, 0xdd, 0xc1, 0x39, 0xef, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x20, 0xbb, 0x77, 0x70, 0x3a, 0x43, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0xfc, 0x82, 0x64, 0x98, 0x83, 0x61, 0xe8, 0x33, 0x48, 0x06, 0xce, 0xae, 0xe3, 0xf1, 0x21, 0xd1, 0x7a, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0x19, 0x94, 0xfb, 0xc5, 0x61, 0x17, 0x6e, 0x83, 0x86, 0x13, 0xed, 0x0f, 0x8d, 0x04, 0x37, 0xa4, 0x0e, 0x86, 0x5d, 0x10, 0x2c, 0x48, 0x06, 0xf2, 0x2b, 0x07, 0xa7, 0x0d, 0xe5, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xac, 0xdd, 0xc1, 0x99, 0x71, 0xf9, 0x38, 0xb4, 0x20, 0x5a, 0xe8, 0xb8, 0xc1, 0xc0, 0xf4, 0x38, 0x68, 0xed, 0xa2, 0xf3, 0x90, 0x3a, 0x38, 0xa4, 0x0e, 0x8e, 0xc7, 0xc7, 0xa1, 0x85, 0x5d, 0xd8, 0x85, 0xdb, 0xa0, 0x45, 0x5b, 0xfb, 0x43, 0xfc, 0x37, 0xc4, 0x70, 0xd8, 0x0d, 0x9a, 0x76, 0xe9, 0xdf, 0x10, 0xc3, 0x83, 0x06, 0x64, 0xfa, 0x17, 0x04, 0x0b, 0x92, 0x0d, 0x86, 0xf8, 0xc7, 0xc1, 0x39, 0xef, 0xf8, 0xa0, 0x21, 0x32, 0x81, 0x41, 0xb0, 0xb0, 0x1b, 0x34, 0x50, 0xd3, 0xbf, 0x18, 0x7c, 0x1d, 0x3b, 0xec, 0x06, 0xcd, 0xec, 0xf4, 0x2f, 0x06, 0xff, 0xc6, 0x0e, 0xbb, 0x41, 0x03, 0x38, 0xfd, 0x8b, 0xc1, 0xb3, 0xa5, 0xc3, 0x6e, 0xd0, 0x8c, 0x4f, 0xff, 0xe2, 0x61, 0xd1, 0x6a, 0x90, 0x6d, 0xd0, 0x6a, 0x50, 0xff, 0x78, 0xd0, 0x1a, 0x36, 0xe7, 0x1a, 0x9c, 0x0b, 0xb1, 0x07, 0xc1, 0x82, 0x64, 0x83, 0x21, 0xfe, 0x71, 0x70, 0xae, 0x3f, 0x3e, 0x68, 0x3d, 0x3f, 0xe4, 0x10, 0xc3, 0x85, 0xdf, 0xe0, 0xb4, 0x82, 0x3b, 0xec, 0x06, 0x05, 0x17, 0xc3, 0x82, 0x60, 0xe1, 0x37, 0x68, 0xcd, 0x55, 0x65, 0x10, 0x2c, 0x0e, 0xbb, 0xc1, 0xc8, 0x27, 0x5f, 0x90, 0x0c, 0xee, 0x1d, 0xcf, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xd0, 0x83, 0xf5, 0x90, 0x30, 0xc7, 0xe3, 0xe3, 0xdb, 0x86, 0xac, 0xdd, 0x86, 0x18, 0x6e, 0x1c, 0x3a, 0xe4, 0x65, 0x07, 0xd9, 0x1a, 0xb4, 0x05, 0xb2, 0xb2, 0x21, 0x86, 0x83, 0x60, 0x41, 0x32, 0x90, 0xfe, 0x39, 0x38, 0x66, 0x15, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0x90, 0x6c, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0xc5, 0x0d, 0x13, 0xb7, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x39, 0x68, 0xc2, 0x7c, 0xf4, 0xe0, 0x85, 0x4f, 0x00, 0x8b, 0x07, 0x4d, 0x98, 0x8f, 0x1e, 0x0c, 0xde, 0xc9, 0xe3, 0xd0, 0x71, 0x68, 0x83, 0x61, 0x0c, 0x7b, 0x88, 0xe1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x87, 0x5d, 0x10, 0x2c, 0x48, 0x06, 0x35, 0x07, 0xa7, 0x0d, 0xe5, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x54, 0xcd, 0x41, 0xa3, 0x74, 0x2c, 0xc7, 0xa1, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0xc1, 0x39, 0xf8, 0x7b, 0xd8, 0x05, 0xc1, 0x82, 0x64, 0xf0, 0xe5, 0xe0, 0x98, 0xb1, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0x3a, 0x18, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0xf9, 0x34, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x04, 0xd9, 0xff, 0xc3, 0x5e, 0xe1, 0x71, 0xe8, 0x38, 0xb4, 0x20, 0x58, 0xd8, 0x0d, 0x4e, 0xe5, 0xc8, 0x6b, 0x88, 0xe1, 0xe2, 0x41, 0x03, 0xf3, 0xa7, 0x1b, 0x8c, 0x56, 0xf3, 0x8d, 0x43, 0x1b, 0x34, 0x4a, 0xc7, 0x72, 0x48, 0xd5, 0x1c, 0x62, 0x38, 0xec, 0x06, 0xa3, 0x5e, 0x72, 0xe1, 0x37, 0x9e, 0x0f, 0xa2, 0x05, 0xc2, 0xbf, 0x21, 0x86, 0x1b, 0x94, 0x30, 0x12, 0x87, 0x54, 0xcd, 0x20, 0x5a, 0x20, 0xfa, 0x87, 0x54, 0xcd, 0x61, 0x85, 0x76, 0x90, 0xad, 0x41, 0x5b, 0x20, 0x2b, 0x1b, 0x62, 0x38, 0x08, 0x36, 0x78, 0xaa, 0x1e, 0xc0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x67, 0xf4, 0x01, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0xb8, 0x61, 0xe2, 0xd6, 0x50, 0xc7, 0x37, 0xbc, 0x7c, 0x37, 0x07, 0x0d, 0xcc, 0x9f, 0x6e, 0x98, 0xb8, 0x0d, 0x5e, 0xbc, 0x00, 0xb0, 0x61, 0xe2, 0x36, 0x68, 0xe5, 0x9f, 0x62, 0xc3, 0xc4, 0x6d, 0xd0, 0xca, 0x3f, 0xc5, 0x41, 0x2b, 0xff, 0x14, 0x07, 0x21, 0x00, 0x7e, 0x1c, 0x3a, 0x0e, 0x1d, 0x3c, 0x90, 0x19, 0x60, 0xf8, 0x05, 0xd1, 0x82, 0xfc, 0x60, 0x3d, 0xab, 0xcb, 0xf1, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x54, 0xff, 0x41, 0xb0, 0x41, 0xf2, 0x69, 0xca, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xf7, 0x1a, 0x03, 0x1c, 0x52, 0x07, 0xc7, 0xa1, 0xe3, 0xf9, 0xf1, 0x78, 0x61, 0x37, 0x08, 0x3e, 0xe6, 0x8d, 0xc7, 0xc3, 0x6e, 0xd0, 0x8c, 0x4f, 0xff, 0xc2, 0x2f, 0x88, 0x16, 0xb4, 0x0f, 0xbb, 0xc1, 0x20, 0xe0, 0xd8, 0xb0, 0xf6, 0xbb, 0x41, 0x43, 0x9d, 0xfc, 0x87, 0xb5, 0xdf, 0xe3, 0xf1, 0x20, 0x58, 0x10, 0x6c, 0x90, 0xb0, 0x95, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xd0, 0xf0, 0x6b, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x37, 0x68, 0xfa, 0xfe, 0x7e, 0x35, 0xc4, 0x70, 0x0d, 0x31, 0x1c, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x1c, 0x04, 0x6b, 0x48, 0xd5, 0x8c, 0x07, 0xcd, 0x23, 0xa1, 0x1e, 0xac, 0x66, 0x00, 0x3a, 0xbe, 0x1d, 0x62, 0x78, 0x88, 0xe1, 0x21, 0x86, 0xc7, 0xe3, 0xe3, 0xd0, 0x20, 0x19, 0xa8, 0x7f, 0x83, 0x68, 0x81, 0xe8, 0x0f, 0x82, 0x0d, 0x8e, 0xb4, 0xc9, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xd6, 0xa9, 0x34, 0x1c, 0x1c, 0x88, 0xf8, 0x8f, 0x43, 0x83, 0x68, 0x41, 0xfb, 0x20, 0x58, 0x90, 0x6c, 0x50, 0xd4, 0xe7, 0x1c, 0x9c, 0xeb, 0x8f, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x52, 0x07, 0x07, 0x21, 0xe2, 0x7f, 0x1c, 0x1a, 0x44, 0x0b, 0xe2, 0x43, 0x0c, 0x8f, 0xe7, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0xb0, 0xf4, 0xbd, 0xef, 0xe0, 0x9c, 0x77, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x61, 0x2b, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x6f, 0x09, 0x05, 0x38, 0x58, 0x87, 0xca, 0x3f, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0x32, 0x68, 0x39, 0x38, 0xe7, 0x1d, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x82, 0x60, 0x41, 0x32, 0x90, 0x5e, 0x39, 0x38, 0x6d, 0x28, 0x1f, 0x3c, 0xda, 0x0d, 0xe0, 0x20, 0xa1, 0xec, 0x64, 0xf8, 0x8d, 0xe7, 0x07, 0x8f, 0x4d, 0x07, 0x38, 0x0e, 0x1d, 0x8f, 0x8f, 0x43, 0xc7, 0xa1, 0x41, 0xb0, 0x20, 0x58, 0xd8, 0x0d, 0x1a, 0xcb, 0xfe, 0x5f, 0x10, 0x2c, 0x48, 0x06, 0x94, 0xfe, 0x5d, 0x07, 0xa7, 0x33, 0xe4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x87, 0x5f, 0x90, 0x0c, 0x73, 0x30, 0xfc, 0x63, 0x0f, 0x96, 0xa8, 0x77, 0x1d, 0x87, 0x06, 0xc1, 0x06, 0xaf, 0x2a, 0x08, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0xf8, 0x0d, 0x9e, 0x7d, 0x10, 0x30, 0x48, 0x06, 0xe6, 0xea, 0x78, 0x7c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x43, 0x0b, 0xa0, 0xe3, 0xd0, 0x71, 0x68, 0xd8, 0x0d, 0x42, 0xcb, 0x7d, 0x41, 0xb0, 0xb0, 0x1b, 0x9c, 0x65, 0x8f, 0xd7, 0x10, 0xc3, 0xc5, 0x83, 0x86, 0x57, 0x4b, 0x37, 0x08, 0x52, 0xfc, 0x43, 0xea, 0xe0, 0x10, 0xc3, 0x61, 0x37, 0x18, 0xf5, 0x92, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6d, 0xf0, 0x12, 0x3c, 0x80, 0x43, 0x72, 0x69, 0x90, 0xad, 0x41, 0x5b, 0x20, 0x2b, 0x1b, 0x62, 0x38, 0x08, 0x36, 0x68, 0xcb, 0xaa, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x3b, 0x5b, 0xfd, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x2f, 0x6e, 0x98, 0xb8, 0x35, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0xcd, 0x41, 0xc3, 0xab, 0xa5, 0x1b, 0x26, 0x6e, 0x0d, 0x16, 0x34, 0x4c, 0x6d, 0xd0, 0x8c, 0xd9, 0xff, 0x6a, 0x28, 0xa6, 0x6b, 0xd0, 0xc0, 0xd9, 0xff, 0x41, 0x4b, 0xdf, 0x9c, 0x1b, 0xea, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x5a, 0x2d, 0xfe, 0x9f, 0x35, 0x14, 0xd3, 0x35, 0x68, 0xe0, 0xec, 0xff, 0xa0, 0x9d, 0x60, 0xce, 0x0d, 0x75, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0xad, 0x51, 0xfe, 0x1f, 0x4e, 0xb1, 0x0d, 0x5a, 0x6f, 0xfe, 0x5f, 0x0d, 0xc5, 0x74, 0x0d, 0x1a, 0x38, 0xfb, 0x3f, 0x68, 0xf0, 0x9a, 0x73, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0xf3, 0xbd, 0xff, 0x87, 0x53, 0x6c, 0x0d, 0xc5, 0x74, 0x0d, 0x1a, 0x38, 0xfb, 0x3f, 0x68, 0x0d, 0x96, 0x73, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0xbb, 0x78, 0xff, 0x87, 0x53, 0xec, 0xa0, 0x89, 0x3d, 0x90, 0x83, 0x10, 0x00, 0x3f, 0x0e, 0x1d, 0x87, 0x0e, 0xde, 0x36, 0x11, 0x30, 0xfc, 0x82, 0x68, 0x41, 0xfb, 0x20, 0x58, 0x90, 0x6c, 0x50, 0xd4, 0xe7, 0x1c, 0x1c, 0x28, 0x92, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x3a, 0xa9, 0x1d, 0x0c, 0x63, 0xd8, 0xe3, 0xd0, 0x20, 0xda, 0xe0, 0x6d, 0xf5, 0x00, 0x87, 0xe4, 0xd2, 0xb0, 0x1b, 0x34, 0x20, 0xd3, 0xbf, 0xc1, 0x02, 0x0f, 0xaf, 0xe3, 0xf1, 0xb0, 0x1b, 0x04, 0x17, 0xf6, 0xc6, 0xe3, 0x41, 0xb4, 0xc1, 0x4a, 0x9e, 0x9d, 0x41, 0xb4, 0x60, 0xbe, 0x41, 0x09, 0x23, 0x31, 0x08, 0x36, 0x58, 0xfd, 0x29, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0xab, 0x7b, 0x61, 0x0e, 0x4a, 0x4e, 0x89, 0xe3, 0xd0, 0xf1, 0xf8, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0x83, 0x92, 0xa1, 0xe9, 0x60, 0x61, 0x85, 0xd9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x82, 0x5a, 0x6c, 0x71, 0x10, 0x6c, 0xb0, 0x7a, 0x99, 0x6b, 0x90, 0x0c, 0x84, 0xef, 0xd0, 0xbe, 0xe5, 0x78, 0x7c, 0x1c, 0x1a, 0x64, 0x1b, 0xe2, 0x32, 0x08, 0x16, 0x24, 0x03, 0xc5, 0xed, 0xb0, 0x42, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0xf8, 0x05, 0xc9, 0xc0, 0xfa, 0xdf, 0xf1, 0xf8, 0xf8, 0xb6, 0x38, 0xec, 0xc2, 0x2d, 0x1e, 0xac, 0x92, 0x23, 0x3d, 0x34, 0x12, 0x5c, 0xd8, 0x85, 0xdb, 0xa0, 0xa9, 0xa2, 0xf9, 0x43, 0x34, 0x37, 0xc4, 0x70, 0x43, 0x0c, 0x37, 0x58, 0xaf, 0xdc, 0xb4, 0x21, 0x9a, 0x07, 0x41, 0xe9, 0x3d, 0xec, 0xc2, 0x2d, 0x1e, 0x9c, 0x0e, 0x26, 0x0f, 0x8d, 0x04, 0x17, 0x04, 0x0b, 0x92, 0x81, 0xfd, 0xba, 0x83, 0xf1, 0xae, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xc5, 0xcc, 0x39, 0x83, 0x64, 0x98, 0x43, 0x72, 0x6e, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x37, 0x58, 0x2a, 0xaf, 0x74, 0x30, 0x08, 0x59, 0x8e, 0xc7, 0xc7, 0xa1, 0x61, 0x17, 0x6e, 0xf1, 0x60, 0xb5, 0x16, 0xed, 0xa1, 0x91, 0xe0, 0x1a, 0x62, 0x78, 0xf0, 0x3a, 0xa3, 0x80, 0x41, 0xb6, 0x86, 0xf6, 0xeb, 0xc3, 0x2d, 0x1e, 0xac, 0xf4, 0x1f, 0x3d, 0x34, 0x12, 0x1c, 0x04, 0x0b, 0x82, 0x0d, 0x16, 0x33, 0xe7, 0x0c, 0x92, 0x81, 0xf8, 0x1d, 0x92, 0x73, 0xc3, 0x6e, 0x30, 0xea, 0x25, 0x37, 0xc4, 0x70, 0x43, 0x0c, 0x37, 0x58, 0xd4, 0xba, 0xb4, 0x41, 0x08, 0x80, 0x1f, 0x3a, 0x86, 0x1d, 0x8f, 0x8f, 0x43, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x2e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x87, 0xdd, 0xb0, 0x57, 0xb8, 0x41, 0xc2, 0xa7, 0xc0, 0xc1, 0xea, 0x5e, 0x98, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x80, 0xf1, 0xca, 0x75, 0x30, 0xde, 0x75, 0x0e, 0x9a, 0x62, 0xd9, 0x5f, 0x41, 0xb0, 0x41, 0xeb, 0xb2, 0xee, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x28, 0xa8, 0xc5, 0x0e, 0xc6, 0xae, 0xd5, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xd0, 0xfc, 0xaa, 0xfb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x1f, 0x2c, 0x66, 0x8e, 0x1a, 0x7e, 0xe3, 0xf9, 0x41, 0xca, 0x6f, 0xc5, 0x71, 0x68, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x7c, 0x90, 0xf2, 0x5b, 0x31, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0xfc, 0x3b, 0x1e, 0x1f, 0x2c, 0x4a, 0x27, 0x39, 0x68, 0x7e, 0x5a, 0x7f, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x48, 0x06, 0xe2, 0x35, 0x88, 0x16, 0xcc, 0x0f, 0x47, 0xfb, 0xf1, 0xf8, 0xe0, 0x01, 0x5c, 0x01, 0x07, 0xcd, 0x4f, 0xeb, 0x1f, 0x87, 0x56, 0x10, 0x6c, 0xd0, 0xba, 0xac, 0xfb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xce, 0x91, 0xbd, 0x8b, 0x6b, 0x30, 0x7e, 0xba, 0x06, 0xc1, 0x06, 0x6b, 0xda, 0x21, 0x0e, 0x16, 0xa4, 0xec, 0x1c, 0x04, 0xa5, 0xf7, 0xf1, 0x78, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x82, 0x85, 0xdf, 0x78, 0x7c, 0x70, 0x78, 0xa7, 0x1d, 0x04, 0x0b, 0xbf, 0xf1, 0xfc, 0xe0, 0x70, 0x5d, 0x7b, 0xb0, 0x28, 0x9d, 0x64, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x83, 0x64, 0x06, 0x8b, 0x83, 0x45, 0xe9, 0x24, 0xc7, 0xa1, 0x15, 0x04, 0x0b, 0x92, 0x81, 0xd2, 0x75, 0x30, 0xde, 0x75, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0xfc, 0x20, 0x71, 0xbf, 0x67, 0xf8, 0x8d, 0xe7, 0x8b, 0x83, 0x6c, 0x43, 0x5c, 0x86, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x41, 0x32, 0x20, 0xf4, 0xbb, 0x0e, 0x86, 0xa1, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xb1, 0xe1, 0x3a, 0xfc, 0xc6, 0xf3, 0xd5, 0x10, 0xc3, 0x35, 0xc4, 0x70, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xf1, 0xe0, 0x0d, 0xeb, 0x00, 0xc7, 0xb7, 0x43, 0x0c, 0x0f, 0x31, 0x3c, 0xc4, 0xf0, 0x38, 0x34, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x08, 0xde, 0xae, 0x83, 0x61, 0xe8, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x6c, 0xb8, 0x0e, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x1e, 0x1e, 0x18, 0x70, 0x90, 0xa2, 0xfc, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x24, 0x03, 0x69, 0xb5, 0x83, 0x20, 0xe7, 0x1f, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0xfe, 0x1d, 0xcf, 0x07, 0xc1, 0x06, 0x41, 0x16, 0xbf, 0x38, 0x08, 0x16, 0x7e, 0x43, 0xb6, 0x62, 0x10, 0x2c, 0x48, 0x06, 0xca, 0xdb, 0xc1, 0x30, 0xf4, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x28, 0xff, 0xa9, 0x0e, 0x86, 0xa1, 0xcf, 0x71, 0xe8, 0x60, 0x25, 0xbe, 0xc8, 0xf1, 0xf8, 0xa0, 0x3d, 0x3b, 0xfd, 0xe3, 0xd0, 0xc1, 0x5a, 0x98, 0x92, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xcf, 0x46, 0x0c, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xf0, 0x43, 0x86, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x67, 0x23, 0x06, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x78, 0x10, 0x40, 0xac, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0xc6, 0xbb, 0xda, 0x41, 0x90, 0xf3, 0x1f, 0x87, 0x06, 0xc1, 0x06, 0x6f, 0xac, 0x0c, 0x38, 0x68, 0x4f, 0x3b, 0x7f, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb2, 0xc1, 0x62, 0x2f, 0x92, 0x83, 0x61, 0xe8, 0x73, 0xd0, 0x9e, 0x76, 0xfe, 0x71, 0xe8, 0x60, 0x2d, 0x4c, 0xc9, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x67, 0x23, 0x06, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x1b, 0xae, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x64, 0x60, 0xac, 0x8e, 0xe7, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x01, 0x81, 0xce, 0x75, 0x30, 0x0c, 0x7d, 0x0e, 0xda, 0xd3, 0xce, 0x3f, 0x0e, 0x1d, 0xac, 0x85, 0x29, 0x19, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xf0, 0x6c, 0xc4, 0x80, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x63, 0xc3, 0x75, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0x40, 0xf0, 0x57, 0x1d, 0xcf, 0x8f, 0x43, 0x07, 0x6b, 0x61, 0x4a, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x3c, 0x1b, 0x31, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc0, 0x0f, 0x19, 0x7e, 0xe3, 0xf9, 0x41, 0x49, 0xfd, 0x77, 0x1c, 0x3a, 0x58, 0x0b, 0x53, 0x32, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0xd9, 0x88, 0x01, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x06, 0x7e, 0xc8, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0x19, 0xdc, 0x3a, 0x9e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0xda, 0x57, 0x1d, 0xcf, 0x0f, 0xda, 0xb3, 0xd3, 0x3f, 0x0e, 0x1d, 0xac, 0x85, 0x29, 0x19, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xf0, 0x6c, 0xc4, 0x80, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x63, 0xc3, 0x75, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xd0, 0x0e, 0x26, 0xfa, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x81, 0xf3, 0xea, 0x78, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0xb0, 0x5d, 0x75, 0x3c, 0x3f, 0x0e, 0x0d, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0x12, 0xff, 0xbb, 0x0e, 0x86, 0xa1, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0xa0, 0x81, 0xf6, 0xfc, 0xe3, 0xd0, 0x41, 0x7b, 0xda, 0xf9, 0xc7, 0xa1, 0x83, 0xb5, 0x30, 0x25, 0xc7, 0xe3, 0xe3, 0xd0, 0x82, 0x60, 0x83, 0xd6, 0x65, 0xdd, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0xd8, 0xa0, 0xa9, 0x47, 0x81, 0x83, 0x83, 0x56, 0xef, 0xf1, 0x78, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x16, 0x9f, 0xf7, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xb4, 0x69, 0xba, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x45, 0xd5, 0xfd, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x80, 0x72, 0xbd, 0xeb, 0x60, 0xbc, 0xeb, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x28, 0x7f, 0xbb, 0x0e, 0xc6, 0xbb, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x63, 0xd0, 0x2c, 0xe0, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x7c, 0x70, 0xf8, 0xb5, 0x1d, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x2c, 0x57, 0x1d, 0x8f, 0x07, 0xc1, 0x06, 0x41, 0x16, 0xbf, 0x38, 0x08, 0x16, 0x7e, 0x43, 0xb6, 0x62, 0x10, 0x6c, 0xd0, 0x8a, 0xb1, 0xfb, 0x41, 0x03, 0xe2, 0xfc, 0x07, 0x2b, 0xf1, 0x45, 0x8e, 0xc7, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0xb4, 0x20, 0xd8, 0xa0, 0x75, 0x59, 0xf7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x2d, 0xba, 0xe2, 0x0f, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0xad, 0xcb, 0xba, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x58, 0x33, 0x57, 0x73, 0xf0, 0x5c, 0x9b, 0x80, 0xe3, 0xd0, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xd6, 0x65, 0xdd, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x6a, 0x88, 0xe1, 0x1a, 0x62, 0x38, 0x08, 0x36, 0x58, 0xc1, 0x10, 0x71, 0x68, 0xd4, 0x72, 0x88, 0xe1, 0x21, 0x86, 0x87, 0x18, 0x1e, 0x8f, 0x0f, 0x1a, 0xa5, 0xd8, 0x3f, 0x0e, 0x1d, 0x34, 0x3f, 0xad, 0x3f, 0x08, 0x36, 0x58, 0x03, 0xab, 0x76, 0xd0, 0xfc, 0xb4, 0xfe, 0x71, 0x68, 0x05, 0xc1, 0x06, 0xad, 0xcb, 0xba, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x76, 0xc3, 0xae, 0xc1, 0x86, 0x68, 0x1e, 0xbc, 0xce, 0x28, 0xe0, 0x78, 0x3c, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x41, 0x2b, 0xf6, 0xfa, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x9a, 0x5f, 0x75, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xf0, 0x43, 0x86, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc9, 0x80, 0xf4, 0x7d, 0xaa, 0x83, 0xf1, 0xae, 0x33, 0x08, 0x36, 0x68, 0x4d, 0x8e, 0xff, 0xa0, 0x29, 0x96, 0xfd, 0xe3, 0xd0, 0x41, 0xf3, 0xd3, 0xfa, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x1f, 0x3c, 0xc9, 0x3f, 0xe0, 0x60, 0x51, 0x3a, 0xc9, 0x71, 0x68, 0x10, 0x6c, 0xd0, 0xba, 0xac, 0xfb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x16, 0x5d, 0xf1, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0xed, 0x7f, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x05, 0xc1, 0x82, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xbb, 0x21, 0x75, 0xb0, 0xc1, 0x52, 0xcf, 0x9d, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0xda, 0x04, 0xe5, 0x1f, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xf0, 0x3c, 0xec, 0x80, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0xc7, 0x83, 0xe6, 0x5d, 0x55, 0x8f, 0x43, 0x07, 0xed, 0x03, 0xeb, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x20, 0x58, 0x10, 0x6c, 0xd0, 0x98, 0xae, 0xfe, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0xc3, 0x6e, 0xd8, 0x2b, 0xdc, 0x60, 0xa9, 0xe7, 0xce, 0x41, 0x2b, 0x4b, 0xfc, 0x07, 0xed, 0x03, 0xeb, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0xfe, 0xe7, 0x3a, 0x18, 0xef, 0x3a, 0x07, 0xed, 0x03, 0xeb, 0x0f, 0x82, 0x0d, 0xda, 0x23, 0xe5, 0x3f, 0x68, 0x1f, 0x58, 0xff, 0xa0, 0xf9, 0x69, 0xfd, 0x41, 0xb0, 0xc1, 0x2a, 0x0f, 0xa9, 0x83, 0xe6, 0xa7, 0xf5, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x7e, 0x41, 0x32, 0x50, 0xff, 0x0e, 0xc6, 0xbb, 0xce, 0xc1, 0xea, 0x34, 0xb6, 0x41, 0xb0, 0x41, 0x43, 0x56, 0xfc, 0x07, 0xcd, 0x4f, 0xeb, 0x0f, 0x82, 0x0d, 0xda, 0x23, 0xe5, 0x3f, 0x68, 0x7e, 0x5a, 0x7f, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x48, 0x76, 0x1d, 0x8c, 0x77, 0x9d, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0xc7, 0x83, 0x26, 0x25, 0x55, 0x8f, 0x6f, 0xc7, 0xa1, 0x83, 0xe6, 0xa7, 0xf5, 0x0f, 0x9a, 0xa0, 0xe5, 0x3f, 0x68, 0x7e, 0x5a, 0xff, 0x38, 0x74, 0x1c, 0x5a, 0x10, 0x6c, 0xd0, 0xba, 0xac, 0xfb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x81, 0xfc, 0xd5, 0xf1, 0x78, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x20, 0xd8, 0xbb, 0x0e, 0xc6, 0xbb, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x16, 0xd3, 0xf9, 0x87, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0xcd, 0xaf, 0xba, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x1b, 0xae, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0xc6, 0xbb, 0xda, 0x21, 0x5b, 0x71, 0x1c, 0x1a, 0x04, 0x1b, 0x9c, 0x4d, 0x7a, 0x0f, 0x9a, 0x9f, 0xd6, 0x3f, 0x0e, 0x1d, 0x87, 0x16, 0x04, 0x1b, 0xb4, 0x2e, 0xeb, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x62, 0xea, 0x60, 0xec, 0x5a, 0x0d, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x1f, 0x24, 0xcb, 0x4f, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0xcf, 0xc3, 0x0e, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x3c, 0x68, 0x4d, 0xb9, 0xf3, 0x38, 0x34, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0x79, 0xd8, 0x01, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x8f, 0x07, 0x4d, 0x9c, 0xab, 0x1e, 0x87, 0x0e, 0x9a, 0x9f, 0xd6, 0x3f, 0x58, 0x94, 0x4e, 0x72, 0x1c, 0x5a, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x6e, 0x58, 0xdf, 0xdb, 0x10, 0xc3, 0x41, 0xb0, 0x20, 0x19, 0x58, 0xaf, 0x3b, 0x38, 0x09, 0x1d, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0x78, 0xd0, 0x56, 0xbe, 0xea, 0x20, 0x58, 0x1c, 0x04, 0x0b, 0x92, 0x01, 0x85, 0x7a, 0xdf, 0xc1, 0x31, 0xab, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x20, 0xbd, 0x73, 0x30, 0x1c, 0xa5, 0x0f, 0x96, 0x5b, 0x81, 0x0d, 0xbf, 0xf1, 0x7c, 0xd8, 0x0d, 0x2b, 0xa8, 0x1b, 0x62, 0xb8, 0x41, 0x42, 0xd9, 0xc9, 0xc1, 0x8a, 0x05, 0x9d, 0xe3, 0xd0, 0xf1, 0xed, 0x38, 0x74, 0x3c, 0x1e, 0x04, 0x1b, 0xbc, 0x6d, 0x2f, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x5b, 0xfa, 0x02, 0x86, 0xdf, 0x78, 0xbe, 0x38, 0xc8, 0x36, 0xc4, 0x65, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x9e, 0x8d, 0x18, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xe0, 0x87, 0x0c, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x1f, 0x24, 0x83, 0xde, 0x0f, 0x82, 0x0d, 0xde, 0x0e, 0x19, 0x70, 0xd0, 0x9e, 0x9d, 0xfe, 0x71, 0x68, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x83, 0xe7, 0xbd, 0x02, 0x1c, 0xac, 0x85, 0x29, 0x39, 0x1e, 0x1f, 0x87, 0x16, 0x04, 0x1b, 0xb4, 0x2e, 0xeb, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x45, 0x57, 0xfc, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x20, 0x19, 0x50, 0xfc, 0x76, 0x1d, 0x8c, 0x77, 0x9d, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x6d, 0x9a, 0xee, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x82, 0x60, 0x83, 0xe7, 0x61, 0x07, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x1e, 0xb4, 0xa1, 0xb5, 0x7a, 0x1c, 0x3a, 0x78, 0x16, 0x83, 0xc0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xad, 0xcb, 0xba, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xc1, 0xd1, 0xab, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0x60, 0xbb, 0x6a, 0x10, 0x2d, 0xec, 0xe1, 0x68, 0x3f, 0x1e, 0x1f, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0xa0, 0x4d, 0xd3, 0xfd, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x0d, 0x29, 0xf1, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0xba, 0xac, 0xfb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xc7, 0xa6, 0x09, 0x0c, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x6c, 0x57, 0x1d, 0x8f, 0x8f, 0x43, 0xc7, 0xa1, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xcf, 0xc3, 0x0e, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x0c, 0x34, 0x11, 0x11, 0x71, 0x1c, 0x3a, 0x68, 0x1f, 0x58, 0xff, 0xa0, 0xf9, 0x69, 0xfd, 0xe3, 0xd0, 0x20, 0xd8, 0xa0, 0x75, 0x59, 0xf7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x24, 0xee, 0xf7, 0x2c, 0x0e, 0xbb, 0x21, 0x8f, 0xb5, 0x06, 0xcb, 0x7a, 0x91, 0x0e, 0xe3, 0x32, 0xc8, 0x36, 0x68, 0xe9, 0x0c, 0x66, 0x83, 0x75, 0xf8, 0x4c, 0x87, 0x71, 0x39, 0x1e, 0x1f, 0x9c, 0x4d, 0x7a, 0x8f, 0x43, 0x0b, 0xbb, 0x61, 0xaf, 0x70, 0x41, 0xb0, 0x41, 0xeb, 0xb2, 0xee, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x5a, 0x74, 0xc5, 0x1f, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0x6d, 0x9a, 0xee, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x06, 0x8d, 0xa9, 0xf3, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0x32, 0x60, 0xbc, 0x53, 0x1d, 0x8c, 0x77, 0x9d, 0x41, 0xb0, 0x41, 0x8b, 0xe9, 0xfc, 0x07, 0x8b, 0xd2, 0x49, 0x86, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0xd6, 0xab, 0x8e, 0xc7, 0xc7, 0xa1, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xd0, 0xba, 0xac, 0xfb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x81, 0xf3, 0xea, 0xe0, 0xb5, 0x6d, 0x01, 0x07, 0x6f, 0x9c, 0x13, 0x38, 0x0e, 0x0d, 0x82, 0x0d, 0x1a, 0xf0, 0xd5, 0x3f, 0x68, 0x8a, 0x65, 0x7f, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x83, 0x16, 0x0e, 0xf8, 0x0f, 0x9a, 0x62, 0xd9, 0x3f, 0x68, 0x7e, 0x5a, 0x7f, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x48, 0x06, 0xce, 0xaa, 0x83, 0xd7, 0xb6, 0x05, 0x1c, 0x3c, 0x7f, 0x52, 0xe0, 0xa0, 0xf9, 0x69, 0xfd, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x0d, 0x85, 0xeb, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xf8, 0x21, 0x07, 0xef, 0xe1, 0x0a, 0x38, 0x0e, 0x1d, 0x34, 0x3f, 0xad, 0x7f, 0x1c, 0x3a, 0x9c, 0x62, 0x0b, 0x82, 0x0d, 0x5a, 0x97, 0x75, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xd0, 0xa2, 0x2b, 0xfe, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xad, 0xcb, 0xba, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x78, 0x90, 0x8a, 0xc0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x6d, 0x9a, 0xee, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x68, 0x51, 0x75, 0x7f, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xa7, 0x57, 0x07, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x68, 0xc0, 0x57, 0x7f, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0x40, 0xe8, 0x57, 0x1d, 0x8f, 0x8f, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0x68, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x85, 0x5f, 0x10, 0x2c, 0x48, 0x06, 0xee, 0xaf, 0x83, 0x63, 0x56, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x06, 0x8d, 0x5f, 0x9e, 0x1f, 0x9a, 0xbf, 0x1c, 0x8f, 0x8f, 0x43, 0xc7, 0xb7, 0xe1, 0x17, 0x7e, 0x41, 0x32, 0x20, 0xd8, 0xe5, 0x0e, 0x86, 0x7f, 0xec, 0x41, 0xc9, 0xd0, 0x74, 0x7c, 0x1b, 0x04, 0x8b, 0xc3, 0x6e, 0x30, 0x36, 0x39, 0x17, 0x7e, 0x41, 0xb4, 0x20, 0x1c, 0x76, 0x83, 0x81, 0x48, 0xbd, 0x06, 0x47, 0x9e, 0xe2, 0x41, 0xb0, 0x38, 0xec, 0x86, 0xb5, 0xd0, 0x0d, 0x59, 0xbb, 0x61, 0x17, 0x6e, 0x83, 0x84, 0xb2, 0x93, 0x83, 0xe2, 0x50, 0x63, 0x83, 0xb2, 0x1f, 0xeb, 0x90, 0xb5, 0x3b, 0xbe, 0x1d, 0xa2, 0x79, 0x3c, 0x1e, 0x76, 0x43, 0x1e, 0x6b, 0xc3, 0xb8, 0xac, 0x86, 0x18, 0xae, 0x21, 0x86, 0x83, 0x60, 0x41, 0xb2, 0xc1, 0x10, 0xff, 0x38, 0x38, 0x7b, 0x19, 0x1f, 0xd2, 0x70, 0x87, 0x18, 0x1e, 0x62, 0x78, 0x18, 0x97, 0x61, 0x17, 0x76, 0xa1, 0x87, 0xf8, 0x1f, 0xd6, 0x37, 0x17, 0x24, 0x43, 0x06, 0xd1, 0x06, 0xa5, 0xf2, 0xd6, 0x20, 0x5a, 0x10, 0x6e, 0x88, 0xff, 0x21, 0x9a, 0xc7, 0xe3, 0x61, 0x37, 0xe4, 0xb1, 0xd6, 0x10, 0xff, 0x41, 0x32, 0x64, 0x10, 0x6d, 0x50, 0x2a, 0x6f, 0x0d, 0xa2, 0x0d, 0xda, 0xf9, 0x0a, 0x38, 0x1e, 0x6f, 0xf0, 0x4a, 0x5d, 0x81, 0x83, 0xc7, 0x07, 0x0b, 0x1c, 0xdf, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x5a, 0xfb, 0xdf, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xf0, 0x44, 0xee, 0x80, 0x41, 0xb0, 0xc1, 0x5b, 0xbb, 0x03, 0x06, 0xc1, 0x06, 0x41, 0x16, 0xbf, 0x38, 0x08, 0x16, 0x7e, 0x43, 0xb6, 0x62, 0x10, 0x6c, 0xd0, 0x8a, 0xb1, 0xfb, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0xa0, 0xc5, 0x74, 0xfe, 0xe3, 0xd0, 0xc1, 0x4a, 0x7c, 0x91, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x90, 0x0c, 0x08, 0x74, 0xae, 0x83, 0xf1, 0xae, 0x73, 0xf0, 0x10, 0x45, 0x81, 0x83, 0xa6, 0x58, 0xf6, 0x8f, 0x43, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x64, 0xc0, 0xd2, 0xf7, 0xbe, 0x83, 0x93, 0xd0, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x76, 0x34, 0x5c, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x52, 0x35, 0x07, 0x89, 0x5c, 0x0a, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0x41, 0xb0, 0x41, 0xeb, 0xb2, 0xee, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x5a, 0x74, 0xc5, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0x4d, 0xd3, 0xfd, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x8f, 0x37, 0x14, 0x18, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0x21, 0x2c, 0x02, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x5a, 0x4c, 0xe7, 0x1f, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0xb4, 0x2e, 0xeb, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x0f, 0xda, 0x1d, 0xd0, 0x3f, 0x1e, 0x0f, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0xda, 0xbb, 0xd7, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0xfc, 0xe0, 0x59, 0x85, 0x01, 0xc7, 0xa1, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0xa0, 0xb5, 0xff, 0xfd, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x0f, 0xda, 0xd9, 0xd5, 0x3f, 0x0e, 0x1d, 0xbc, 0x55, 0x52, 0xe0, 0xa0, 0xf9, 0x69, 0xfd, 0xe3, 0xd0, 0xc1, 0x03, 0xb8, 0x02, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x82, 0x60, 0x83, 0xd6, 0x65, 0xdd, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xb4, 0xe8, 0x8a, 0x3f, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0xeb, 0xb2, 0xee, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x58, 0xd3, 0x72, 0xb4, 0x38, 0xec, 0x06, 0xeb, 0xd3, 0x8f, 0x36, 0x8c, 0xcb, 0xc1, 0x40, 0x55, 0x3b, 0x1e, 0x1f, 0x34, 0xfd, 0xb8, 0x7f, 0x1c, 0x3a, 0x0e, 0x0d, 0x82, 0x0d, 0xda, 0x34, 0xdd, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x0d, 0x5e, 0x57, 0x21, 0x30, 0x48, 0x06, 0xda, 0x72, 0x1d, 0x8c, 0x77, 0x9d, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x83, 0x93, 0x27, 0xee, 0xc1, 0x73, 0xf2, 0x02, 0x8e, 0x43, 0x0b, 0x82, 0x0d, 0x12, 0xf7, 0x7b, 0x16, 0x87, 0xdd, 0x90, 0xc7, 0xda, 0x60, 0xcc, 0xc2, 0x0d, 0xb2, 0x0d, 0x5a, 0x3a, 0x83, 0x39, 0x8c, 0xcb, 0xf1, 0x78, 0x05, 0xc1, 0x06, 0xad, 0xcb, 0xba, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x68, 0xd1, 0x15, 0x7f, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x82, 0x0d, 0x5a, 0xb1, 0xd7, 0x3f, 0x78, 0x88, 0xa6, 0xc0, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0xf8, 0x20, 0x01, 0xe8, 0xe0, 0xe0, 0xf9, 0x93, 0x02, 0x07, 0xcd, 0x4f, 0xeb, 0x1f, 0x87, 0x16, 0x04, 0x1b, 0xb4, 0x2e, 0xeb, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x91, 0xff, 0xb0, 0xb8, 0x21, 0x9a, 0x83, 0x60, 0x83, 0x35, 0xed, 0x10, 0x07, 0x89, 0x39, 0x26, 0xc7, 0xe3, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x08, 0x36, 0x78, 0x60, 0x8e, 0xc0, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xd6, 0x65, 0xdd, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0xd8, 0xa0, 0xad, 0xd7, 0xfb, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x54, 0xcd, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x80, 0xe1, 0xda, 0x77, 0x70, 0x12, 0x3a, 0x3e, 0x0e, 0x1d, 0x8f, 0x87, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x20, 0x58, 0x10, 0x6c, 0xd0, 0x8a, 0xbd, 0xfe, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x16, 0x9f, 0xf7, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x64, 0x60, 0xe9, 0xef, 0x90, 0xad, 0x18, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x1a, 0x0a, 0xd7, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x83, 0x16, 0xaa, 0xf0, 0x87, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0x24, 0xef, 0x72, 0x1d, 0x8c, 0x77, 0x9d, 0xe3, 0xd0, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x86, 0xc2, 0xf5, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0xfc, 0xa0, 0x91, 0x25, 0xfc, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x01, 0x81, 0xcb, 0x75, 0x30, 0xde, 0x75, 0x8e, 0x43, 0x07, 0xcd, 0x4f, 0xeb, 0x1f, 0x2c, 0x4a, 0x27, 0x39, 0x0e, 0x1d, 0x2c, 0x4a, 0x27, 0x19, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0xba, 0xac, 0xfb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x01, 0x81, 0x5f, 0x75, 0x3c, 0x1e, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0xb5, 0xff, 0xfd, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x41, 0x8b, 0xc0, 0xee, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x1a, 0x0a, 0xd7, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x83, 0xf7, 0x1e, 0x09, 0x1c, 0xb4, 0xaa, 0xb4, 0x7f, 0x1c, 0x3a, 0x58, 0x94, 0x4e, 0x72, 0x1c, 0x3a, 0x0e, 0x1d, 0x2c, 0x4a, 0x27, 0x19, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0xe2, 0xf3, 0xfe, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xd0, 0xba, 0xac, 0xfb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xc6, 0x6c, 0xf5, 0x0f, 0x9a, 0xfd, 0x75, 0x3f, 0x0e, 0x0d, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0x28, 0x5c, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x0f, 0x5a, 0x29, 0xcd, 0x3f, 0x68, 0x53, 0x72, 0xff, 0x38, 0x74, 0xb0, 0x28, 0x9d, 0xe4, 0x38, 0x74, 0xb0, 0x28, 0x9d, 0xe4, 0x38, 0x74, 0xb0, 0x28, 0x9d, 0x64, 0x10, 0x6c, 0xf0, 0xd6, 0xee, 0x80, 0x83, 0x45, 0xe9, 0x24, 0xc7, 0xa1, 0x41, 0xb0, 0x41, 0xeb, 0xb2, 0xee, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x5a, 0x74, 0xc5, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0x75, 0x59, 0xf7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x0f, 0x52, 0x11, 0x18, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0xb5, 0xff, 0xfd, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0xc1, 0x4b, 0x51, 0x05, 0x0e, 0xde, 0x2a, 0x29, 0x70, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x16, 0x04, 0x1b, 0xbc, 0x6d, 0x2f, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x5b, 0xfa, 0x02, 0x86, 0xdf, 0x78, 0xbe, 0x38, 0xc8, 0x36, 0xc4, 0x65, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0xcf, 0x46, 0x0c, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xf0, 0x43, 0x86, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc9, 0xe0, 0xdc, 0xf1, 0x7c, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x10, 0xba, 0xe3, 0xf9, 0x41, 0x7b, 0x76, 0xfa, 0xc7, 0xa1, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xcf, 0x46, 0x0c, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x36, 0x5c, 0x87, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0xca, 0xd5, 0xf1, 0xfc, 0x38, 0x74, 0xb0, 0x16, 0xa6, 0xe4, 0xe0, 0x71, 0xae, 0x01, 0xc7, 0xe3, 0xe3, 0xd0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0x0d, 0x85, 0xeb, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xc1, 0x82, 0xfb, 0xa8, 0x83, 0x06, 0x53, 0xf6, 0x8f, 0x43, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x1a, 0x0a, 0xd7, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x83, 0xf5, 0xe7, 0x51, 0x07, 0xed, 0x34, 0xf2, 0x1f, 0x87, 0x0e, 0x9a, 0x9f, 0xd6, 0x1f, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0x50, 0xb8, 0xfe, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x1f, 0x2c, 0xd0, 0x8e, 0x3a, 0x68, 0x33, 0xd9, 0xfd, 0x38, 0x74, 0xd0, 0xfc, 0xb4, 0xfe, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x86, 0xc2, 0xf5, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x3c, 0x98, 0x2c, 0xe0, 0xa0, 0xf1, 0x04, 0xfe, 0xe3, 0xd0, 0x41, 0xf3, 0xd3, 0xfa, 0xc7, 0xe3, 0xe3, 0xf1, 0x82, 0x60, 0x83, 0x86, 0x3b, 0xdf, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0xb0, 0x1b, 0xd6, 0xf7, 0x36, 0xc4, 0x70, 0x10, 0x6c, 0x90, 0x02, 0xe0, 0x7e, 0x50, 0x14, 0xa0, 0x1d, 0x8f, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x58, 0x73, 0xd2, 0x35, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x9d, 0x4b, 0xd7, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x40, 0xfa, 0xef, 0x78, 0x7c, 0x1c, 0x3a, 0x0e, 0x2d, 0x08, 0x36, 0x68, 0x6b, 0xf2, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x41, 0xc3, 0x97, 0xef, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x01, 0x85, 0x2e, 0xd7, 0x61, 0x85, 0xf6, 0xa0, 0x61, 0x44, 0xf7, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x83, 0xd5, 0x9b, 0x68, 0x83, 0x60, 0x83, 0x25, 0x9a, 0x68, 0x83, 0x60, 0x83, 0x20, 0x8b, 0x5f, 0x1c, 0x04, 0x0b, 0xbf, 0x21, 0x5b, 0x31, 0x48, 0x06, 0xd2, 0x6f, 0xc7, 0xe3, 0x83, 0x95, 0xf8, 0x22, 0xc7, 0xe3, 0xe3, 0xd0, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x68, 0xb8, 0xf3, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xab, 0xd6, 0xa8, 0x16, 0x37, 0x58, 0xca, 0xac, 0xb5, 0x21, 0x75, 0x70, 0xd0, 0x82, 0x8c, 0xfc, 0xf1, 0x78, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0x40, 0xa0, 0xab, 0x1d, 0x8f, 0x8f, 0x43, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x1a, 0xee, 0x7c, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0xec, 0x86, 0x5d, 0x83, 0x0d, 0xd1, 0xdc, 0x60, 0xc1, 0x41, 0xd5, 0x86, 0x68, 0x6e, 0xb0, 0x94, 0x59, 0x6b, 0x83, 0xa0, 0xf4, 0x3e, 0x68, 0x41, 0x46, 0xfe, 0x78, 0x3c, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x24, 0x03, 0x0a, 0xff, 0xae, 0xc3, 0x0a, 0xed, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0xf8, 0xe0, 0x45, 0x8e, 0x03, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x83, 0x26, 0x26, 0xe9, 0x07, 0xc1, 0x06, 0xeb, 0x5c, 0xba, 0x0e, 0x56, 0x71, 0x93, 0x1d, 0x2c, 0xdf, 0xe9, 0x3a, 0x0e, 0x0d, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0xd2, 0x54, 0x87, 0x15, 0xda, 0x83, 0x86, 0x11, 0xdd, 0x8f, 0x43, 0x07, 0xab, 0xb8, 0xc9, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x13, 0x9b, 0xfb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x56, 0xad, 0x51, 0x2d, 0x0e, 0x82, 0x0d, 0xde, 0x8c, 0x14, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0xf8, 0x76, 0xc8, 0x56, 0x1c, 0x14, 0x8c, 0x0e, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0xb8, 0xc1, 0x82, 0x83, 0xaa, 0x0d, 0xa9, 0x83, 0x0d, 0x96, 0x32, 0x6b, 0x6d, 0xd8, 0x2b, 0x3c, 0x68, 0x41, 0x46, 0xfe, 0x78, 0x7c, 0x1c, 0x3a, 0x1e, 0x1f, 0x3c, 0xbb, 0x71, 0xe0, 0x38, 0x34, 0x08, 0x36, 0x68, 0x47, 0x92, 0xfe, 0x60, 0xf9, 0x4e, 0xd7, 0xc1, 0x2a, 0x6e, 0xb2, 0x55, 0x5c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0x20, 0xf9, 0x37, 0x7a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x7c, 0xd0, 0x9a, 0xab, 0xca, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x07, 0x27, 0x66, 0xdf, 0x83, 0xa5, 0x2f, 0x32, 0xc7, 0xa1, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x90, 0x0c, 0x38, 0xff, 0x77, 0x1d, 0xb2, 0x15, 0x07, 0xeb, 0x9f, 0x46, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xb0, 0xc8, 0x3c, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x0f, 0x56, 0x98, 0x01, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0x24, 0xfe, 0x77, 0x1d, 0xb2, 0x15, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x01, 0xc7, 0x75, 0xaa, 0x43, 0xb6, 0xe2, 0x38, 0x74, 0x1c, 0x1a, 0x04, 0x1b, 0x34, 0x9c, 0x20, 0x3f, 0x08, 0x36, 0x08, 0xb2, 0xf8, 0xc5, 0x41, 0xb0, 0xf0, 0x1b, 0xb2, 0x15, 0x83, 0x64, 0xa0, 0xa8, 0x1d, 0xb2, 0x15, 0x07, 0x2b, 0xf1, 0x45, 0x8e, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x9a, 0xda, 0xa8, 0x3f, 0x78, 0xb4, 0xf1, 0xc0, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x82, 0x85, 0xdf, 0x78, 0x7c, 0xd0, 0xa6, 0x82, 0xfc, 0x20, 0xd8, 0xa0, 0xcd, 0x80, 0xf9, 0x83, 0x86, 0x45, 0xeb, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xbc, 0x62, 0x78, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x50, 0xfc, 0x8e, 0xc7, 0xc7, 0xa1, 0x83, 0x86, 0x45, 0xeb, 0x0f, 0x56, 0x5d, 0xc9, 0x1c, 0x34, 0xdd, 0x04, 0x7f, 0xd0, 0xb0, 0x68, 0xfd, 0x41, 0xd3, 0x4d, 0xf0, 0x07, 0xef, 0xbd, 0x1d, 0x38, 0x78, 0xef, 0xed, 0xc0, 0x0a, 0xbb, 0xa1, 0x63, 0xd8, 0x82, 0x60, 0x41, 0x32, 0x50, 0xba, 0x0e, 0xd9, 0x8a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x03, 0x3f, 0x64, 0xf8, 0x8d, 0xe7, 0x8b, 0x83, 0x6c, 0x43, 0x5c, 0x86, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x41, 0xb3, 0x8f, 0xf0, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x05, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x24, 0x83, 0xba, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0x15, 0xec, 0xf8, 0x83, 0x16, 0xa6, 0xde, 0x07, 0xc1, 0x06, 0xa9, 0x80, 0x27, 0x07, 0x2d, 0x4c, 0xbd, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x20, 0x58, 0x10, 0x2c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x41, 0xdb, 0x29, 0xef, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x01, 0x6b, 0x77, 0xb9, 0x0e, 0x82, 0x9c, 0xff, 0xa0, 0x1d, 0x49, 0xf8, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x40, 0xf1, 0x3b, 0x9e, 0x1f, 0xb4, 0x23, 0x09, 0x3f, 0x08, 0x36, 0x68, 0x05, 0x3b, 0xfe, 0xa0, 0x1d, 0x49, 0xf8, 0x41, 0xb0, 0x41, 0x2a, 0xe0, 0xc9, 0x41, 0x3b, 0x92, 0xf0, 0x83, 0x60, 0x83, 0x20, 0x8b, 0x5f, 0x1c, 0x04, 0x0b, 0xbf, 0x21, 0x5b, 0x31, 0x48, 0x06, 0x8a, 0xda, 0x41, 0x90, 0xf3, 0x1f, 0xac, 0xc4, 0x17, 0x39, 0x1e, 0x1f, 0xb4, 0x8f, 0xf0, 0x7e, 0x3c, 0x3e, 0x0e, 0x1d, 0xb4, 0xc2, 0x51, 0xbf, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0xe4, 0xdf, 0xe8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x90, 0x0c, 0xdc, 0x7e, 0xc7, 0xe3, 0x83, 0xf7, 0xde, 0x0e, 0x1c, 0xbc, 0xf7, 0x76, 0xe0, 0x38, 0x34, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x36, 0xf8, 0xe3, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x41, 0xb0, 0x41, 0x0b, 0x47, 0xf0, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x83, 0x86, 0x13, 0xe4, 0x8f, 0x43, 0x07, 0xef, 0xda, 0x1d, 0x18, 0x7e, 0xe3, 0xf9, 0x41, 0x2b, 0x1c, 0xf5, 0xc7, 0xa1, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x6d, 0xf0, 0xc7, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0x3c, 0xf9, 0x79, 0x60, 0x10, 0x6c, 0xd0, 0x66, 0xc0, 0xfc, 0x41, 0xd3, 0x4d, 0xf0, 0x07, 0xef, 0xda, 0x1d, 0x18, 0x7e, 0xe3, 0xf9, 0xc1, 0xf3, 0x7f, 0x07, 0x8e, 0x43, 0x07, 0xab, 0xae, 0x64, 0x06, 0xc1, 0x06, 0x2f, 0x92, 0x1e, 0x38, 0x68, 0xba, 0x09, 0xfe, 0xa0, 0xe9, 0x26, 0xf8, 0x83, 0xf7, 0xde, 0x0e, 0x0c, 0x82, 0x0d, 0x96, 0x9b, 0x92, 0x2c, 0x0e, 0x82, 0x0d, 0xda, 0xa0, 0xba, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x1a, 0x42, 0xd4, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x36, 0x58, 0xac, 0x67, 0x72, 0x10, 0xf0, 0xfe, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0xbe, 0x41, 0xfa, 0x97, 0xc2, 0xc1, 0xe2, 0x69, 0x92, 0x43, 0xaa, 0xe6, 0x38, 0x74, 0x1c, 0x1a, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xf0, 0x0a, 0x0a, 0x82, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x4f, 0xb0, 0x20, 0x38, 0x68, 0xa6, 0x2d, 0xff, 0x38, 0x74, 0xd0, 0x8a, 0x01, 0xfe, 0x71, 0xe8, 0x78, 0xbc, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x82, 0x60, 0xe1, 0x37, 0x1e, 0x1f, 0x34, 0x27, 0x30, 0x7f, 0xf0, 0x0c, 0x04, 0x82, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x0f, 0x1e, 0x04, 0x40, 0x70, 0xd0, 0x74, 0x13, 0xfc, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xb0, 0xc8, 0x3c, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xfb, 0x82, 0x07, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0xe1, 0x08, 0xfe, 0xe0, 0x25, 0xc4, 0x03, 0xc7, 0xa1, 0x83, 0x47, 0x1b, 0x0f, 0xac, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0x4f, 0x7e, 0x1e, 0x18, 0x04, 0x1b, 0x34, 0x9c, 0x20, 0x7f, 0xd0, 0x74, 0x13, 0xfc, 0x82, 0x60, 0x83, 0x16, 0xc8, 0xdf, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xfc, 0x90, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x41, 0x0b, 0x47, 0xf0, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0x32, 0x20, 0xd0, 0xa9, 0x0e, 0xd9, 0x8a, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x0f, 0x16, 0x78, 0x78, 0x1d, 0xac, 0xba, 0x92, 0x39, 0x0e, 0x0d, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x07, 0x0b, 0x3c, 0xbc, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0x3c, 0x87, 0x86, 0x60, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x83, 0x07, 0xbf, 0x10, 0x1c, 0xac, 0xba, 0x92, 0x19, 0x04, 0x1b, 0xbc, 0x0a, 0x87, 0xe0, 0xa0, 0xe9, 0x26, 0xf8, 0x83, 0x55, 0x57, 0x32, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x1f, 0xbc, 0x6b, 0x77, 0xe0, 0x60, 0xd5, 0x95, 0xcc, 0x41, 0xd3, 0x4d, 0xf0, 0xc7, 0xa1, 0x61, 0x37, 0x74, 0x0c, 0x5b, 0x10, 0x6c, 0xf0, 0x20, 0xed, 0x81, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x03, 0x3f, 0x64, 0xf8, 0x8d, 0xe7, 0x8b, 0x83, 0x6c, 0x43, 0x5c, 0x86, 0xdf, 0x78, 0x3c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x41, 0x41, 0x2d, 0xb6, 0x38, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x0d, 0x5a, 0xfb, 0xdf, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0xba, 0xac, 0xfb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x0a, 0x6a, 0xb1, 0xc5, 0x0d, 0xc6, 0x4f, 0xd7, 0x41, 0x93, 0x57, 0x51, 0xc7, 0xe3, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x3e, 0x08, 0x73, 0xf5, 0x41, 0xb0, 0xc1, 0xf9, 0xd1, 0xf7, 0xa0, 0xf9, 0x69, 0xfd, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x0f, 0x4e, 0x98, 0xe8, 0x07, 0x4d, 0xb1, 0xec, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0xf1, 0x79, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x30, 0x7a, 0x87, 0x15, 0xda, 0xe3, 0xd0, 0x41, 0x53, 0x2c, 0xfb, 0xc7, 0xa1, 0xe3, 0xd0, 0xa1, 0x51, 0xcb, 0xb0, 0x1b, 0x84, 0x96, 0xfb, 0xc6, 0xa1, 0x0d, 0x42, 0x0a, 0x7c, 0x10, 0x6c, 0xd0, 0xaa, 0x6d, 0xd2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0xc3, 0x6e, 0xd0, 0x72, 0x66, 0xd2, 0x06, 0xab, 0xf5, 0xb8, 0x16, 0x04, 0x0b, 0x92, 0x81, 0xf1, 0x3b, 0x18, 0x8e, 0xd2, 0x07, 0x87, 0x73, 0xfa, 0x15, 0x04, 0x1b, 0x24, 0x0f, 0x56, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x0f, 0x06, 0x3c, 0xf2, 0x71, 0xe8, 0xa0, 0x3d, 0x31, 0xa7, 0x0d, 0x8e, 0x3c, 0xc5, 0x07, 0x0b, 0x87, 0x13, 0x8e, 0x43, 0xc7, 0xe3, 0xe3, 0xf1, 0x71, 0xe8, 0xa0, 0x15, 0x8e, 0xfa, 0x05, 0xc1, 0x06, 0x2d, 0x90, 0xbf, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xf8, 0x21, 0x07, 0xef, 0xfb, 0x20, 0x38, 0x0e, 0xad, 0x20, 0xd8, 0xa0, 0xa0, 0x16, 0x5b, 0x1c, 0x04, 0x0b, 0x82, 0x0d, 0x5a, 0x66, 0xc0, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x83, 0x15, 0x67, 0x59, 0xc3, 0x6f, 0x3c, 0x5f, 0x1c, 0x64, 0x1b, 0xe2, 0x32, 0x08, 0x16, 0x24, 0x03, 0x86, 0x7a, 0xd7, 0xc1, 0x78, 0xd7, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x0d, 0xd2, 0xaa, 0xa3, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0xa0, 0xf9, 0x55, 0xf7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x3f, 0x58, 0xc9, 0x96, 0x75, 0xd0, 0xec, 0xaf, 0xfb, 0x71, 0x68, 0x10, 0x6c, 0xd0, 0x58, 0xc6, 0xfe, 0x41, 0x53, 0x2c, 0xfb, 0x6b, 0x90, 0xf6, 0x52, 0x3d, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0xcd, 0xaf, 0xba, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xc1, 0x92, 0xcb, 0xac, 0x83, 0x66, 0x7f, 0xdd, 0x8f, 0x43, 0x07, 0xcd, 0x28, 0xed, 0xaf, 0x41, 0x4a, 0xd1, 0xf3, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0x34, 0xbf, 0xea, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0x8b, 0x4e, 0xb3, 0x0e, 0x9a, 0xfd, 0x75, 0x3f, 0x0e, 0x0d, 0x82, 0x0d, 0xda, 0x4c, 0x76, 0x3f, 0x68, 0x8a, 0x65, 0x7f, 0x0d, 0x16, 0x70, 0xe4, 0x0c, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x41, 0xf3, 0xab, 0xee, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x7e, 0xb0, 0xfc, 0x36, 0xeb, 0xa0, 0xd9, 0x5f, 0xf7, 0xe3, 0xd0, 0x20, 0xd8, 0xa0, 0x39, 0x91, 0xfd, 0x83, 0xa6, 0x58, 0xf6, 0xd7, 0x20, 0xd1, 0x0f, 0x7a, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x9a, 0x5f, 0x75, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x83, 0xb5, 0x7c, 0x59, 0xc3, 0x6f, 0x3c, 0x3f, 0x68, 0xfe, 0x6a, 0xff, 0x38, 0x74, 0xd0, 0x42, 0xca, 0xfe, 0x21, 0x86, 0xc7, 0xa1, 0xe3, 0xf1, 0x71, 0xe8, 0xd0, 0xa8, 0xe5, 0x78, 0xbc, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x3e, 0x78, 0x41, 0x08, 0xc1, 0xc1, 0x7b, 0x6f, 0x07, 0x06, 0xc1, 0x82, 0x64, 0xc0, 0xf0, 0xed, 0x3a, 0x64, 0x2b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x2c, 0x86, 0xad, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x38, 0xfd, 0x8e, 0xc7, 0xc7, 0xa1, 0x05, 0xc1, 0x06, 0x2f, 0x63, 0x24, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xb0, 0x18, 0xb6, 0x66, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0xf8, 0xe0, 0x1d, 0x8f, 0x04, 0x07, 0xef, 0xbd, 0x1d, 0x38, 0x0e, 0x0d, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0xe0, 0xf1, 0xba, 0x03, 0x83, 0x60, 0x83, 0xa7, 0x90, 0x10, 0x1c, 0x34, 0xdd, 0x04, 0x3f, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x3e, 0x48, 0xff, 0x6d, 0x18, 0x04, 0x1b, 0x9c, 0x4d, 0x7a, 0x0f, 0x56, 0x5d, 0xc9, 0x1c, 0xbc, 0xf2, 0x78, 0xe0, 0xe0, 0x19, 0x08, 0x04, 0x07, 0xcf, 0x40, 0x20, 0x38, 0x1e, 0xaf, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0xaf, 0x17, 0x1c, 0x18, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x1f, 0x2c, 0x81, 0xe9, 0x1a, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x08, 0x55, 0xae, 0xc3, 0x0a, 0xed, 0xc1, 0x2a, 0x6e, 0xb2, 0x83, 0xe5, 0x3b, 0x5d, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x86, 0xc4, 0xd4, 0x20, 0x58, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0xbb, 0x21, 0x8f, 0xb5, 0x61, 0x5c, 0xd6, 0x60, 0xd1, 0x47, 0xd3, 0x06, 0x6b, 0xd5, 0x8f, 0x06, 0xc1, 0x82, 0x64, 0x83, 0x21, 0xfe, 0x71, 0x30, 0x1c, 0xa5, 0x0f, 0x69, 0xb8, 0xc3, 0xb8, 0x1c, 0x8f, 0x07, 0xc1, 0xe2, 0xb0, 0x1b, 0x04, 0x17, 0xf6, 0x82, 0x60, 0x83, 0x97, 0xa7, 0x12, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xa4, 0x0e, 0x0e, 0x92, 0x71, 0x87, 0x8e, 0x43, 0xc3, 0x2e, 0xdc, 0x86, 0x18, 0x1e, 0x92, 0x1d, 0x1b, 0x2c, 0xd2, 0xd9, 0x19, 0x76, 0x61, 0x17, 0x7a, 0x50, 0xc2, 0x48, 0x1c, 0xd6, 0x37, 0x17, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf3, 0x07, 0x63, 0xb1, 0x73, 0x10, 0x2d, 0x58, 0x6f, 0x50, 0xc2, 0x48, 0x1c, 0xf2, 0xb5, 0xc7, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x6d, 0xf0, 0xd2, 0x59, 0x82, 0x41, 0xb4, 0x20, 0x5e, 0x83, 0x95, 0x6e, 0x34, 0x07, 0xaf, 0x76, 0x25, 0x38, 0xc4, 0xf0, 0x78, 0x7c, 0x7c, 0x3b, 0x1e, 0x0f, 0x82, 0x0d, 0xd6, 0xb4, 0x1c, 0x2d, 0x0e, 0xbb, 0x41, 0x13, 0x39, 0x2a, 0x1b, 0x2c, 0x9d, 0xdb, 0x19, 0x76, 0x61, 0x37, 0x74, 0x1c, 0xd9, 0x60, 0x2d, 0x8a, 0xd2, 0xe1, 0x68, 0x5f, 0x10, 0x2c, 0x48, 0x36, 0x58, 0x47, 0xac, 0x73, 0x30, 0xde, 0x75, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xf2, 0xb5, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x8b, 0x1b, 0x84, 0xa7, 0xea, 0xe1, 0x14, 0x5b, 0x1c, 0x76, 0xc3, 0xae, 0xc1, 0x86, 0x18, 0x0e, 0xbb, 0xb0, 0x1b, 0x04, 0xc3, 0xfe, 0xc2, 0x2e, 0xdc, 0x06, 0x4b, 0xb5, 0x90, 0x0e, 0xc6, 0x4f, 0xd7, 0xc2, 0x6e, 0x50, 0xee, 0x1d, 0x2e, 0xec, 0xc2, 0x2e, 0xdc, 0x06, 0x69, 0xa1, 0xd9, 0x87, 0x86, 0x3a, 0x1b, 0x62, 0x38, 0xdc, 0x06, 0xc5, 0x6b, 0xe4, 0xa1, 0xa1, 0xce, 0xc2, 0x6e, 0xb0, 0xfe, 0x65, 0xff, 0xb0, 0xbe, 0x79, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x6b, 0x88, 0xe1, 0x06, 0x0b, 0x61, 0xf6, 0x0f, 0x82, 0xd2, 0xfb, 0x10, 0xc3, 0xe3, 0xf1, 0x71, 0xe8, 0x10, 0xc3, 0xe3, 0xf1, 0x82, 0x6c, 0x43, 0x5c, 0x06, 0xc1, 0x82, 0x64, 0xa0, 0xbc, 0x1d, 0x56, 0x68, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x07, 0xad, 0x5b, 0xbe, 0x1f, 0x87, 0x86, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0xa0, 0x65, 0x2c, 0xf7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x6d, 0x71, 0xb9, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0xe6, 0xa4, 0x6b, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x3a, 0x97, 0xae, 0xe1, 0x37, 0x9e, 0x1f, 0x2c, 0x31, 0x4b, 0x39, 0x0e, 0x1d, 0x87, 0x0e, 0x96, 0xe3, 0x74, 0x2d, 0x08, 0x36, 0x38, 0xb1, 0xb9, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0xf8, 0xfe, 0xef, 0x78, 0x3c, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x41, 0x43, 0x78, 0xee, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x5a, 0xc6, 0x72, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xf0, 0x43, 0x86, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x0f, 0x4e, 0xcc, 0xbe, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x81, 0xc2, 0x75, 0x58, 0xa1, 0x3d, 0x58, 0xbe, 0xd3, 0x75, 0x1c, 0x3a, 0x58, 0xc5, 0x4d, 0x36, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0x65, 0x2c, 0xf7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x03, 0x3f, 0x64, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0x20, 0x6c, 0xc7, 0xe3, 0xe3, 0xd0, 0x41, 0xc3, 0x88, 0xee, 0xc7, 0xa1, 0x15, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0xf8, 0xe0, 0xc5, 0xe7, 0x04, 0x07, 0xcb, 0x71, 0xba, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x34, 0xdc, 0xf9, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x06, 0xc9, 0x48, 0xeb, 0x87, 0x46, 0x2d, 0xc7, 0xe3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x9a, 0x70, 0xa5, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x1e, 0x3c, 0x44, 0x9c, 0xe0, 0x38, 0x74, 0x1c, 0x3a, 0x68, 0x18, 0xd1, 0x7d, 0x41, 0xb0, 0xc1, 0x72, 0x53, 0x92, 0xc5, 0x41, 0xb0, 0x20, 0x19, 0x68, 0xae, 0x76, 0x48, 0x2e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x87, 0xdf, 0xa0, 0x49, 0x52, 0xf8, 0x83, 0xf3, 0x13, 0xed, 0x20, 0xd8, 0x90, 0xaa, 0x39, 0x68, 0x47, 0x12, 0xfe, 0x38, 0x74, 0x3c, 0x5e, 0x10, 0x6c, 0xb0, 0xdc, 0x94, 0x64, 0x71, 0x10, 0x2c, 0x48, 0x06, 0xda, 0x77, 0x1d, 0x04, 0x39, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0xc5, 0x0d, 0x4e, 0x93, 0xbd, 0x07, 0x21, 0xf8, 0xb0, 0x38, 0xec, 0x06, 0x41, 0x8a, 0xbf, 0x06, 0x2b, 0xe2, 0x8e, 0xd6, 0x60, 0x8c, 0x3d, 0x1d, 0xa2, 0x79, 0x18, 0x97, 0xc3, 0xb8, 0x1c, 0x8f, 0x0f, 0xa9, 0x9a, 0xe3, 0xd0, 0xf1, 0x78, 0x10, 0x6c, 0xd0, 0xd6, 0xe4, 0xfb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x01, 0x6b, 0x77, 0xb9, 0x0e, 0x2b, 0xb4, 0x07, 0x6d, 0x19, 0xba, 0x1f, 0x87, 0x16, 0x04, 0x1b, 0x34, 0xdc, 0xf9, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x91, 0xff, 0xb0, 0x38, 0xec, 0x86, 0x68, 0x2e, 0xec, 0x06, 0x41, 0xe9, 0xbd, 0x06, 0xeb, 0x52, 0x94, 0xd6, 0x60, 0x5d, 0x8a, 0xd2, 0xa1, 0x91, 0xe0, 0x21, 0x86, 0x07, 0x8f, 0x65, 0x28, 0x18, 0x76, 0x83, 0xa0, 0xf4, 0x5e, 0x83, 0x75, 0x29, 0x4a, 0x6b, 0xb0, 0x1c, 0x47, 0xe9, 0xd0, 0x48, 0xf0, 0x10, 0xc3, 0x83, 0xb7, 0x3e, 0x14, 0x1c, 0x8f, 0x87, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xb0, 0x38, 0x99, 0x6c, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xd8, 0x70, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0x45, 0x35, 0xd9, 0xc1, 0xca, 0x3d, 0x9c, 0xe3, 0xd0, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xc5, 0xc9, 0x64, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x06, 0x7e, 0xc8, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x40, 0xf9, 0xdb, 0x75, 0x58, 0xa1, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x0c, 0xbe, 0xcb, 0x3f, 0x0e, 0x1d, 0x87, 0x0e, 0x56, 0x71, 0x93, 0x0d, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x0f, 0x1a, 0x97, 0x7c, 0x1f, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0xf0, 0xe0, 0xfb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x6f, 0xd0, 0xf0, 0xe5, 0xfb, 0x41, 0xb3, 0xb0, 0xef, 0x07, 0xad, 0xfc, 0xbe, 0x1f, 0x87, 0x0e, 0x56, 0x71, 0x93, 0x1d, 0x34, 0x8c, 0xe8, 0x3e, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0x2c, 0x4e, 0x26, 0x1b, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xf0, 0x43, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x78, 0xe9, 0x46, 0xc1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x63, 0xf0, 0x7e, 0xdb, 0x71, 0xe8, 0x38, 0x34, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0x71, 0x32, 0xd9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xb1, 0xe1, 0x3a, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x8a, 0x6a, 0xb2, 0x83, 0x85, 0xb6, 0x38, 0xc7, 0xa1, 0x83, 0x55, 0xdc, 0x64, 0x07, 0x0d, 0x23, 0xba, 0x1f, 0x87, 0x16, 0x04, 0x1b, 0x2c, 0x55, 0x8e, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xd0, 0xb2, 0xa4, 0xfb, 0xf0, 0x1b, 0xcf, 0x17, 0x07, 0xd9, 0x86, 0xb8, 0x0c, 0x82, 0x0d, 0xda, 0x3d, 0x83, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x87, 0x5f, 0x10, 0x6c, 0xb0, 0xb2, 0x08, 0xe6, 0x20, 0x5d, 0x70, 0xe8, 0xa0, 0xf9, 0x3a, 0xf8, 0x83, 0x36, 0xf7, 0xe0, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x7e, 0x83, 0x56, 0x76, 0xe1, 0x0f, 0x92, 0x19, 0x2c, 0x0e, 0x56, 0x5d, 0xc9, 0x1c, 0x87, 0x8e, 0xc7, 0xc7, 0xa1, 0x15, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0xc3, 0x6e, 0xd8, 0x35, 0xd8, 0x90, 0x98, 0x1a, 0x04, 0x0b, 0x92, 0x81, 0xb3, 0xee, 0x60, 0xbc, 0xeb, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xb0, 0x1b, 0x14, 0x21, 0x83, 0x0b, 0xbb, 0x21, 0x8f, 0xb5, 0x21, 0x86, 0x07, 0x05, 0xc7, 0xe1, 0xa1, 0x91, 0xe0, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbb, 0x21, 0x8f, 0x75, 0x50, 0x0e, 0x83, 0x1d, 0x04, 0xa5, 0xf7, 0xf1, 0xf8, 0x38, 0x74, 0x3c, 0x5e, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x24, 0x03, 0x86, 0x3b, 0xd5, 0x61, 0x85, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0xc3, 0x83, 0xef, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0xbe, 0x20, 0xd8, 0xe0, 0xa5, 0x1b, 0x05, 0x07, 0x6f, 0x29, 0x13, 0x18, 0x04, 0x1b, 0xbc, 0x74, 0xa3, 0xe0, 0xe0, 0x21, 0x0d, 0x02, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x34, 0xe1, 0x4a, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0x2d, 0x63, 0xb9, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xf8, 0x21, 0xc3, 0x6f, 0x3c, 0x3f, 0x58, 0xa6, 0x31, 0x72, 0x1c, 0x1a, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x56, 0x54, 0x93, 0x1d, 0xac, 0x7f, 0x1a, 0x19, 0x04, 0x0b, 0xbf, 0xf1, 0xfc, 0xe0, 0x91, 0x50, 0x05, 0x83, 0x60, 0x83, 0x20, 0x8b, 0x5f, 0x1c, 0x04, 0x0b, 0xbf, 0x21, 0x5b, 0x31, 0x48, 0x06, 0x8a, 0xda, 0x61, 0x85, 0xf6, 0x60, 0x25, 0xbe, 0xc8, 0xf1, 0xf8, 0x60, 0x15, 0x37, 0xd9, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x48, 0x06, 0x1c, 0xd7, 0xa9, 0x0e, 0x2b, 0xb4, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x1f, 0xb4, 0x86, 0xf8, 0x7e, 0xf0, 0x92, 0xae, 0x82, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x80, 0xe0, 0xe5, 0x3a, 0xac, 0xd0, 0x1e, 0xbc, 0xa4, 0xab, 0xe0, 0x60, 0x15, 0x37, 0xd9, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x87, 0xdf, 0x60, 0x3d, 0xab, 0xcb, 0xc1, 0xea, 0x34, 0xb6, 0x41, 0xb0, 0xc1, 0x43, 0xc8, 0x0a, 0x0e, 0x56, 0x71, 0x93, 0x0d, 0x82, 0x0d, 0xde, 0x5d, 0x56, 0x70, 0xb0, 0x8a, 0x9b, 0x6c, 0x10, 0x6c, 0xf0, 0xee, 0xb2, 0x82, 0x83, 0xe5, 0x3b, 0x5d, 0x07, 0xab, 0xb8, 0xc9, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xd0, 0xf0, 0xe0, 0xfb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x2f, 0x48, 0x06, 0x94, 0xba, 0x5c, 0x87, 0x15, 0xda, 0x83, 0xd7, 0xd5, 0x15, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0x84, 0x2b, 0xfd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x82, 0x0d, 0xde, 0x55, 0x55, 0x30, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0x8f, 0x0f, 0x2b, 0x18, 0x04, 0x0b, 0xbf, 0xf1, 0xfc, 0xe0, 0x75, 0x75, 0x05, 0x07, 0x2f, 0xe9, 0x2a, 0x38, 0x58, 0xc5, 0x4d, 0x36, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x10, 0x6c, 0xf0, 0x60, 0xb5, 0x82, 0x41, 0xb0, 0xc1, 0xdb, 0xf9, 0x0a, 0x0e, 0x56, 0x71, 0x93, 0x1d, 0xbc, 0xbd, 0xad, 0xe0, 0xe0, 0x39, 0x6f, 0x05, 0x07, 0xab, 0xb8, 0xc9, 0x8e, 0x43, 0xc7, 0xa1, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x2f, 0xdd, 0x28, 0x38, 0x78, 0xac, 0x9d, 0xc0, 0xc1, 0x4b, 0xba, 0x0a, 0x0e, 0x56, 0x71, 0x93, 0x2d, 0x08, 0x36, 0x58, 0xaa, 0x1c, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x65, 0x49, 0xf7, 0xe1, 0x37, 0x9e, 0x2f, 0x0e, 0xb2, 0x0d, 0x71, 0x19, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x36, 0xf8, 0xe3, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x34, 0xfd, 0x1f, 0x3f, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0xd0, 0xff, 0xef, 0x78, 0x7e, 0x1c, 0x1a, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0xd6, 0x48, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x83, 0x57, 0x1e, 0x05, 0x1c, 0x87, 0x0e, 0x9a, 0x6e, 0x82, 0x1f, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0xe6, 0x07, 0xe2, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xb4, 0x40, 0xfe, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0x0f, 0x7b, 0x0a, 0x38, 0x68, 0x50, 0x09, 0xfe, 0x38, 0x74, 0xd0, 0x74, 0x13, 0xfc, 0xc1, 0xaa, 0x2b, 0x99, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x68, 0x7e, 0x20, 0x7e, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x0b, 0xe4, 0xef, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x7e, 0xf0, 0x8a, 0xa1, 0x80, 0x83, 0x36, 0x03, 0xe6, 0x8f, 0x43, 0x07, 0x4d, 0x37, 0xc1, 0x1f, 0xac, 0xba, 0x92, 0x19, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0xe6, 0x07, 0xe2, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xb4, 0x40, 0xfe, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0xaf, 0x90, 0x0a, 0x38, 0x68, 0x48, 0x67, 0xfe, 0x38, 0x74, 0xd0, 0x74, 0x13, 0xfc, 0xc1, 0xaa, 0x2b, 0x99, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x80, 0x50, 0x57, 0x3b, 0x9e, 0x0f, 0x82, 0x0d, 0x82, 0x2c, 0x7e, 0x71, 0x10, 0x2c, 0xfc, 0x86, 0x6c, 0xc5, 0x20, 0x19, 0xd8, 0x57, 0x3b, 0x9e, 0x1f, 0xac, 0xc4, 0x17, 0x39, 0x1e, 0x1f, 0x8f, 0x8f, 0x43, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x5c, 0x5c, 0x71, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc9, 0x40, 0xeb, 0xaa, 0xe3, 0xf9, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x07, 0x4f, 0x95, 0x2d, 0x18, 0x04, 0x1b, 0x04, 0x59, 0xfc, 0xe2, 0x20, 0x58, 0xf8, 0x0d, 0xd9, 0x8a, 0x41, 0x32, 0xd0, 0xeb, 0xef, 0x78, 0x7e, 0xb0, 0x12, 0x5f, 0xe4, 0x78, 0x7c, 0xf0, 0xbe, 0xd9, 0x82, 0xe3, 0xf1, 0x2a, 0x0e, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xf0, 0x00, 0xd9, 0x82, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0xc0, 0xa9, 0x76, 0xc8, 0x56, 0x1c, 0x3c, 0x96, 0xb6, 0xe0, 0x78, 0xbc, 0x8a, 0x83, 0x60, 0x83, 0xd6, 0x65, 0xdd, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x6e, 0xb0, 0xd0, 0xda, 0x6a, 0x83, 0xf0, 0x54, 0x3d, 0x08, 0x4f, 0xd5, 0xc5, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0xae, 0x1d, 0x0c, 0x43, 0x9f, 0x41, 0x32, 0x58, 0x1d, 0x92, 0x73, 0x07, 0x89, 0x39, 0x26, 0xc7, 0xe3, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x08, 0x36, 0x78, 0x8f, 0x6c, 0xc1, 0x20, 0xd8, 0xe0, 0xb9, 0xb3, 0x05, 0x83, 0x60, 0x83, 0x20, 0x8b, 0x5f, 0x1c, 0x04, 0x0b, 0xbf, 0x21, 0x5b, 0x31, 0x48, 0x06, 0x5a, 0xff, 0x1d, 0xcf, 0x0f, 0x56, 0xe2, 0x8b, 0x1c, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0xc9, 0xaf, 0xe3, 0xf9, 0xc1, 0xcb, 0x8b, 0x0b, 0x8e, 0x43, 0xc7, 0xe3, 0x15, 0x04, 0x1b, 0x2c, 0x37, 0x25, 0x59, 0x1c, 0x76, 0x83, 0xc0, 0xc4, 0x5e, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0x32, 0x60, 0xbc, 0x53, 0x1d, 0x0c, 0x43, 0x9f, 0x41, 0xb0, 0xc1, 0x1b, 0x2b, 0x03, 0x0e, 0xda, 0xb3, 0xd3, 0x3f, 0x58, 0x15, 0x52, 0x72, 0x48, 0x1d, 0x1c, 0x8f, 0x57, 0x71, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0xf7, 0xc8, 0x16, 0x0c, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0x6d, 0x9a, 0xee, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x68, 0x77, 0x77, 0x7f, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x92, 0x01, 0xef, 0xde, 0xa7, 0x3a, 0x18, 0xef, 0x3a, 0x07, 0x6f, 0x95, 0x14, 0x18, 0x04, 0x0b, 0xbf, 0xf1, 0xfc, 0xe0, 0x8d, 0xda, 0x05, 0x07, 0x8b, 0xd2, 0x49, 0x8e, 0x43, 0x83, 0x60, 0x83, 0x37, 0x72, 0x17, 0x1c, 0x34, 0x3f, 0xad, 0x7f, 0xf0, 0x58, 0xda, 0x82, 0xe3, 0xf1, 0x0a, 0x82, 0x05, 0xc9, 0x40, 0xba, 0xeb, 0x20, 0xe0, 0xfd, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0xa6, 0xe5, 0x68, 0x71, 0x10, 0x2c, 0x48, 0x06, 0x65, 0x07, 0xe3, 0x5d, 0x67, 0x90, 0x0c, 0xc4, 0xef, 0xd0, 0xbe, 0xe5, 0x78, 0x3c, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0xd0, 0xba, 0xea, 0x78, 0x7c, 0x1c, 0x5a, 0xc5, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0xde, 0x23, 0x5b, 0x30, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0xa8, 0x57, 0xc7, 0xf3, 0x83, 0xc7, 0xd2, 0x16, 0x1c, 0x8f, 0x17, 0x04, 0x1b, 0xb4, 0xcc, 0x80, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xe3, 0x6c, 0x10, 0x00, 0xf7, 0x07, 0xe1, 0xa9, 0x3a, 0xfc, 0xc6, 0xf3, 0xc5, 0x41, 0xb6, 0x21, 0x2e, 0x83, 0x60, 0x83, 0xd6, 0x65, 0xdd, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0xce, 0x41, 0x13, 0x6e, 0xf5, 0x8b, 0xc3, 0x2e, 0xdc, 0x41, 0xcb, 0xad, 0x29, 0x6b, 0x88, 0xe6, 0x06, 0x23, 0xff, 0x61, 0x83, 0xb5, 0xe5, 0x4b, 0x1b, 0x2c, 0x38, 0xa8, 0x3a, 0x78, 0x9d, 0x51, 0xc0, 0x86, 0x68, 0xae, 0x1a, 0x2c, 0xbf, 0xcd, 0x3a, 0x44, 0xf3, 0x10, 0xc3, 0x83, 0x96, 0x5b, 0x53, 0x0e, 0x9e, 0x3d, 0x5f, 0x70, 0x3c, 0x1e, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x48, 0x06, 0xde, 0xfe, 0x3b, 0x9e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0x04, 0x77, 0xd5, 0xf1, 0xfc, 0xa0, 0x29, 0x96, 0xfd, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x87, 0x5f, 0x90, 0x0c, 0x24, 0xdf, 0x0e, 0xd9, 0x8a, 0x83, 0xf3, 0x13, 0xed, 0xc1, 0xa2, 0x74, 0x92, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x78, 0x94, 0xcc, 0xc0, 0x20, 0xd8, 0xa0, 0xc5, 0x74, 0xfe, 0x83, 0xa6, 0x58, 0xf6, 0x0f, 0x16, 0xa5, 0x93, 0x0c, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x78, 0x1e, 0x76, 0xc0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x63, 0xd0, 0x2b, 0xe4, 0x38, 0x74, 0xd0, 0x14, 0xcb, 0xfe, 0x71, 0xe8, 0x78, 0x7c, 0x1c, 0x5a, 0xd8, 0x0d, 0xa9, 0x9a, 0x05, 0xc9, 0x80, 0xf2, 0x9f, 0xea, 0x20, 0xe0, 0xfd, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x68, 0x03, 0x1b, 0x7f, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0xa0, 0xd0, 0xe5, 0x3a, 0x08, 0x78, 0xff, 0x83, 0x86, 0xbf, 0xee, 0x17, 0x04, 0x1b, 0xb4, 0xba, 0x74, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x0f, 0xd6, 0x82, 0x8f, 0x1d, 0x8f, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0x08, 0x51, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x20, 0xd0, 0xb9, 0x0e, 0x02, 0xde, 0xff, 0x38, 0x74, 0x1c, 0x5a, 0x71, 0x10, 0x2c, 0x48, 0x06, 0x86, 0xea, 0x78, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xc1, 0x50, 0xd3, 0x3c, 0x0e, 0x1d, 0x8f, 0x17, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0xa0, 0xf9, 0x55, 0xf7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x03, 0x3f, 0x64, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x3e, 0x78, 0x80, 0x6c, 0xc1, 0x71, 0x68, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x1e, 0x20, 0x5b, 0x30, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0x75, 0x59, 0xf7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x3f, 0x58, 0x5e, 0x2b, 0x36, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x50, 0xfc, 0x77, 0x1d, 0x8c, 0x77, 0x9d, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x6b, 0x51, 0xd5, 0x86, 0xdf, 0x78, 0x3e, 0x48, 0x36, 0x58, 0xec, 0x45, 0x72, 0x30, 0xde, 0x75, 0x8e, 0x43, 0xc7, 0xa1, 0x83, 0xc7, 0xd2, 0x16, 0x1c, 0x34, 0x3f, 0xad, 0x7f, 0x3c, 0x5e, 0x71, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0xf7, 0xc8, 0x16, 0x0c, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xc1, 0xa3, 0x64, 0x06, 0x0e, 0x5a, 0x48, 0xd9, 0x3f, 0x78, 0x2c, 0x6d, 0xc1, 0xf1, 0x78, 0x15, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x78, 0x71, 0x6c, 0xc1, 0xc1, 0x03, 0x74, 0x0b, 0x8e, 0xc7, 0x83, 0x60, 0x41, 0x32, 0x20, 0xd8, 0xbb, 0x0e, 0x02, 0xde, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x80, 0x61, 0x55, 0x75, 0x3c, 0x1e, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x3e, 0x78, 0x98, 0x79, 0xc1, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0xe0, 0x54, 0x3b, 0xac, 0xd0, 0x0e, 0x82, 0x0d, 0x82, 0x2c, 0x7e, 0x71, 0x10, 0x2c, 0xfc, 0x86, 0x6c, 0xc5, 0x20, 0x19, 0xe8, 0xf5, 0x77, 0x3c, 0x3e, 0x58, 0x89, 0x2f, 0x72, 0x3c, 0x3e, 0x0e, 0xad, 0x38, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xc1, 0x93, 0xf7, 0x0b, 0x06, 0xc1, 0x06, 0xcd, 0xfe, 0xba, 0x1f, 0x3c, 0x96, 0xb6, 0xe0, 0x78, 0xbc, 0x78, 0xf0, 0xb2, 0x0e, 0x83, 0xe3, 0xf1, 0xe2, 0x20, 0x19, 0x78, 0xbf, 0xea, 0x78, 0x7e, 0x3c, 0x5e, 0xd8, 0x0d, 0xa9, 0x9a, 0x05, 0xc9, 0x80, 0xe0, 0xae, 0x3a, 0x1e, 0x1f, 0x3c, 0x79, 0xc1, 0x60, 0x15, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x0d, 0x9e, 0xbc, 0x5f, 0x30, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0xc1, 0x6b, 0xf8, 0x0b, 0x0e, 0x1e, 0x4b, 0x5b, 0x70, 0xf0, 0x0a, 0x22, 0x83, 0x83, 0xf7, 0xcd, 0x16, 0x1c, 0x8f, 0x17, 0x76, 0x43, 0xaa, 0x66, 0x41, 0x32, 0x90, 0x56, 0x3b, 0xac, 0xd0, 0x1e, 0x1c, 0xab, 0xee, 0x57, 0x71, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0xc1, 0xab, 0x88, 0x0b, 0x06, 0xc1, 0x06, 0xef, 0xd1, 0x2d, 0x38, 0x78, 0x79, 0x71, 0xc1, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0xa0, 0xbc, 0x1d, 0xb2, 0x15, 0x07, 0x2f, 0x2f, 0x2e, 0x38, 0x1e, 0x2f, 0x08, 0x36, 0x68, 0x99, 0x01, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x33, 0xd9, 0x0b, 0x86, 0xdf, 0x78, 0xbe, 0x38, 0xc8, 0x36, 0xc4, 0x65, 0x10, 0x6c, 0xd0, 0xba, 0xac, 0xfb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0xc5, 0x39, 0x58, 0x6e, 0x6d, 0xb5, 0x38, 0xec, 0x06, 0xaf, 0x92, 0x2f, 0x58, 0x43, 0x34, 0x37, 0x18, 0xf9, 0x0f, 0x07, 0x41, 0xe9, 0xbd, 0x21, 0x9a, 0xab, 0xc1, 0x92, 0xd3, 0xac, 0x43, 0x0c, 0x0f, 0x5a, 0x6e, 0x4d, 0x39, 0x08, 0x4a, 0xef, 0xe3, 0xf1, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x82, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xf0, 0x1e, 0xd9, 0x82, 0x83, 0x37, 0xf4, 0x17, 0x1c, 0x3c, 0xe4, 0xbf, 0x60, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xc1, 0xa3, 0x64, 0x06, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x34, 0x14, 0xae, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xe0, 0x87, 0x1c, 0x34, 0x27, 0xb2, 0x7f, 0x1c, 0x3a, 0x68, 0x7e, 0x5a, 0xff, 0xe0, 0xbd, 0x03, 0x06, 0x07, 0x8b, 0xd2, 0x49, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x3c, 0x0f, 0x3b, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x31, 0xe8, 0x95, 0x75, 0x1c, 0x3a, 0x68, 0x8a, 0x65, 0xff, 0x38, 0x74, 0x3c, 0x3e, 0x0e, 0x2d, 0x0e, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xf0, 0xe2, 0xd8, 0x82, 0x83, 0x57, 0x10, 0x19, 0x1c, 0x8f, 0x17, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x07, 0x4f, 0x55, 0x30, 0x18, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x05, 0xc9, 0x40, 0xf2, 0xed, 0xb0, 0x42, 0x3b, 0x48, 0x06, 0x46, 0xef, 0x78, 0x7c, 0xd0, 0x10, 0x38, 0xfe, 0x8a, 0x83, 0x60, 0x83, 0xd6, 0x65, 0xdd, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x6e, 0xb0, 0xd0, 0xda, 0xea, 0xa0, 0xc9, 0x9e, 0x92, 0xc5, 0x41, 0xb0, 0x20, 0xd8, 0xe0, 0xd9, 0xc0, 0x05, 0x83, 0x64, 0x30, 0x3b, 0x24, 0xe7, 0x0e, 0x12, 0x73, 0x4c, 0x8e, 0xc7, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xbc, 0xde, 0xc2, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x05, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x24, 0x03, 0xd2, 0xff, 0xff, 0x8e, 0xe7, 0x07, 0xef, 0x28, 0x2e, 0x38, 0x78, 0x42, 0x72, 0xc1, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0x35, 0x48, 0x3b, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x8e, 0x48, 0x7b, 0xd0, 0xea, 0xd2, 0xfd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1a, 0x74, 0xa4, 0x1d, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xe6, 0x98, 0x76, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x96, 0xa2, 0x76, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x4a, 0xa3, 0x76, 0x90, 0x6c, 0xb0, 0x76, 0x9d, 0xe2, 0x60, 0x38, 0x4a, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0xfd, 0x8f, 0xda, 0x43, 0xea, 0x60, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb6, 0x4a, 0x6a, 0x07, 0xc1, 0xe2, 0x72, 0xf0, 0x8e, 0xf6, 0x82, 0xc3, 0x29, 0xb6, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xa4, 0xb4, 0x76, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x21, 0xbc, 0x76, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xd7, 0xbc, 0x76, 0x90, 0x6c, 0x50, 0x14, 0xd9, 0x1d, 0x1c, 0xb3, 0x8a, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x16, 0x7b, 0xed, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xc8, 0x7c, 0xed, 0x41, 0x4b, 0x05, 0x03, 0x83, 0x64, 0x20, 0x5c, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x17, 0xbf, 0xf6, 0x60, 0xfc, 0x74, 0x1d, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x22, 0xc0, 0x76, 0x10, 0x6c, 0x30, 0xf2, 0x1f, 0x16, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2d, 0x49, 0xd8, 0x0e, 0xb7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0xf1, 0x0b, 0xdb, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xed, 0x75, 0xd8, 0x1e, 0xa2, 0x79, 0x3c, 0x3e, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1a, 0x29, 0xb1, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xaa, 0x8a, 0xed, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5a, 0x81, 0xb1, 0x1d, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xb3, 0x35, 0xb6, 0x07, 0x23, 0xff, 0x61, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x34, 0x90, 0xed, 0xc1, 0x31, 0x72, 0x7a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xeb, 0x47, 0xb6, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x73, 0x4d, 0xb6, 0x83, 0x64, 0x83, 0xa2, 0x3e, 0xe7, 0xe0, 0xec, 0x65, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x26, 0xa6, 0x6c, 0x0f, 0x42, 0x00, 0x7c, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x86, 0xb1, 0x6c, 0x0f, 0x3d, 0x84, 0x8e, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe6, 0xc0, 0x6c, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x5d, 0x66, 0x7b, 0x70, 0x8c, 0x9c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0xb8, 0x66, 0x3b, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x11, 0x67, 0x7b, 0xf0, 0x02, 0x59, 0x83, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x6b, 0x67, 0x7b, 0x10, 0x02, 0xe0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0xc6, 0x67, 0x7b, 0xe8, 0x21, 0x74, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0x23, 0x68, 0x3b, 0x08, 0x16, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2d, 0x1e, 0xda, 0x0e, 0xbb, 0x21, 0x8f, 0xb5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x29, 0x47, 0xdb, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6d, 0x4f, 0xda, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x2c, 0xd3, 0xf6, 0x20, 0x65, 0x30, 0x60, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x1c, 0xa8, 0xed, 0xc1, 0x72, 0x5c, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x9b, 0xa7, 0xb6, 0x87, 0x86, 0x5f, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa6, 0x5e, 0x6d, 0x87, 0x5f, 0x10, 0x2d, 0x30, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf6, 0x6b, 0x6d, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0xb8, 0x6b, 0x7b, 0xb0, 0x04, 0xf7, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x3b, 0xc1, 0xb6, 0x1b, 0xac, 0x6e, 0xa4, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0x6f, 0x6c, 0x7b, 0x30, 0x7e, 0xba, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xed, 0x37, 0xdb, 0x1e, 0x2c, 0xc7, 0x15, 0x3a, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1a, 0x9e, 0xb6, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0x82, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xb6, 0xb6, 0xed, 0xc1, 0xd0, 0xec, 0x3a, 0x1e, 0x1f, 0xdf, 0x8e, 0xc7, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xeb, 0xe1, 0xb6, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x73, 0xe7, 0xb6, 0x07, 0x27, 0x4c, 0xf4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0xe5, 0x6e, 0x7b, 0x10, 0x52, 0xe0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0x4f, 0x6f, 0x3b, 0x08, 0x16, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2d, 0xe9, 0xdb, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1a, 0xb2, 0xb8, 0x1d, 0x76, 0xc3, 0xae, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x16, 0x3a, 0x6e, 0x0f, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x29, 0x72, 0x3b, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x7f, 0x72, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xe9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x91, 0x97, 0xdb, 0x83, 0xa0, 0xf4, 0x3e, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9a, 0xb1, 0xb9, 0x1d, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xda, 0xdd, 0xb9, 0x1d, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xda, 0x12, 0xba, 0x3d, 0x68, 0xc3, 0x56, 0x60, 0x90, 0x0c, 0x0c, 0xd5, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9a, 0x3f, 0xba, 0x3d, 0x0e, 0x1d, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x5c, 0xd3, 0xed, 0xc1, 0x20, 0x5a, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x75, 0xaa, 0xdb, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0xa4, 0x75, 0x3b, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0xfc, 0x75, 0x3b, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x67, 0x76, 0x7b, 0xd0, 0x86, 0xad, 0xc0, 0x20, 0x19, 0xc8, 0xfa, 0x0d, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x05, 0xb6, 0xdb, 0xe3, 0xd0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x8b, 0x71, 0xb7, 0x07, 0x83, 0x68, 0xe5, 0x38, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0xad, 0xbb, 0xdb, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6d, 0xf3, 0xdd, 0x1e, 0x2c, 0x5c, 0x3c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0x28, 0x78, 0x3b, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x81, 0x78, 0x7b, 0xf0, 0x02, 0x59, 0x83, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0xdb, 0x78, 0x3b, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x38, 0x1e, 0x34, 0x20, 0x79, 0x7b, 0x7c, 0x1b, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x95, 0xcd, 0xdb, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x5d, 0xd0, 0xdb, 0x41, 0x32, 0x90, 0xde, 0x39, 0x38, 0x09, 0x1d, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xcf, 0xf4, 0xf6, 0x60, 0x10, 0xad, 0x1c, 0x87, 0x8e, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc6, 0x58, 0x6f, 0x0f, 0x06, 0x7f, 0xcc, 0x71, 0xe8, 0xf8, 0x76, 0x1c, 0x3a, 0x1e, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xd0, 0xec, 0xed, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x22, 0xee, 0xed, 0xc1, 0x03, 0x62, 0x0c, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x8a, 0xef, 0xed, 0x41, 0xfb, 0xf3, 0x4b, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x51, 0x7c, 0x3b, 0x48, 0x06, 0x84, 0x7d, 0xd5, 0xf1, 0xf8, 0x38, 0x74, 0x1c, 0x5a, 0x10, 0x6c, 0xf0, 0x80, 0x18, 0x83, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x3f, 0x68, 0x7f, 0x7e, 0xe9, 0xe0, 0xf5, 0xe5, 0x05, 0xc7, 0xa1, 0x55, 0x1c, 0x04, 0x1b, 0xb4, 0x2e, 0xeb, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x71, 0x83, 0x10, 0x7c, 0x38, 0x58, 0x68, 0x6d, 0xb5, 0x38, 0x08, 0x16, 0x04, 0x1b, 0x3c, 0x1b, 0xb8, 0x60, 0x90, 0x0c, 0x46, 0x87, 0xbe, 0x1a, 0x87, 0x34, 0xdc, 0xf1, 0x78, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0xf8, 0xe0, 0xb1, 0xc9, 0x05, 0x83, 0x60, 0x83, 0x47, 0x11, 0x19, 0x1c, 0xbc, 0xbc, 0xb8, 0xe0, 0x38, 0x74, 0x3c, 0x5e, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x08, 0x16, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x90, 0x0c, 0xa4, 0xa9, 0x0e, 0x02, 0xde, 0x7f, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc9, 0x80, 0x77, 0xef, 0x53, 0x1d, 0x04, 0xbc, 0xff, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0xa0, 0x29, 0xd7, 0x41, 0xc0, 0xfb, 0x1f, 0xb4, 0x62, 0x80, 0x3f, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0xc1, 0xb3, 0x7b, 0x0e, 0x0e, 0x1a, 0xfe, 0xba, 0x3f, 0x68, 0x08, 0x1c, 0x7f, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x0f, 0x1e, 0xf8, 0x73, 0x30, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0xb0, 0x76, 0x97, 0xeb, 0x20, 0xe0, 0xfd, 0x0f, 0x5a, 0x31, 0xc0, 0x3f, 0x78, 0x45, 0xd1, 0xc1, 0x41, 0x43, 0xe0, 0xf8, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x78, 0x0a, 0xd0, 0xc1, 0xc1, 0xbb, 0x85, 0x0e, 0x0e, 0x5e, 0x51, 0x74, 0x70, 0xf0, 0x5a, 0xa5, 0x83, 0x83, 0x57, 0x14, 0x1d, 0x1c, 0x34, 0x04, 0x8e, 0x3f, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x28, 0x5c, 0x07, 0x01, 0xef, 0x7f, 0xd0, 0x8a, 0x01, 0xfe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x5d, 0x0e, 0xdc, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x25, 0x11, 0xdc, 0x83, 0x96, 0x19, 0xf0, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xfa, 0x09, 0xee, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe6, 0x5a, 0x70, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8d, 0xcd, 0xe0, 0x1e, 0x62, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x41, 0x1f, 0xdc, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x7b, 0x44, 0xb8, 0x87, 0x18, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xf2, 0x09, 0x77, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x64, 0x15, 0xee, 0xc1, 0xc8, 0x7f, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0x0b, 0x86, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xd7, 0x0c, 0xf7, 0x60, 0x4d, 0xcb, 0xd1, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8d, 0xc7, 0xe1, 0x2e, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5a, 0xba, 0xc3, 0x1d, 0x64, 0x1b, 0xe2, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xa3, 0x0f, 0x77, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x53, 0x10, 0x77, 0x90, 0x0c, 0x34, 0x57, 0x3b, 0x64, 0x2b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0x84, 0x88, 0x3b, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcd, 0x69, 0xe2, 0x0e, 0x92, 0x01, 0x41, 0x55, 0x75, 0x3c, 0x1f, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xf0, 0x24, 0xee, 0x20, 0x19, 0x30, 0xb4, 0xab, 0x8e, 0xe7, 0x83, 0x60, 0x83, 0x20, 0x8b, 0x5f, 0x1c, 0x04, 0x0b, 0xbf, 0x21, 0x5b, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xc2, 0x11, 0xf7, 0xa0, 0x89, 0x6b, 0xfd, 0x83, 0x95, 0xf8, 0x22, 0xc7, 0xe3, 0xe3, 0xd0, 0xf1, 0xf8, 0x38, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x9d, 0x51, 0xdc, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0x8b, 0x8a, 0x7b, 0x48, 0xd5, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x80, 0x16, 0x77, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x2e, 0x17, 0xf7, 0xa0, 0xd5, 0xa5, 0xfb, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0xf1, 0x8b, 0x3b, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x74, 0x45, 0xee, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0xd9, 0x98, 0xdc, 0xe1, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0xc9, 0x93, 0x3b, 0x08, 0x16, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8d, 0x07, 0xe5, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xda, 0x00, 0xcc, 0x1d, 0x76, 0x83, 0xe0, 0x63, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x9e, 0x61, 0xee, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf6, 0x17, 0x73, 0x0f, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x19, 0x99, 0x7b, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x95, 0xcb, 0xdc, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0xd5, 0xce, 0xdc, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x88, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6d, 0x92, 0xe6, 0x1e, 0xf2, 0xb5, 0xc7, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x33, 0xaa, 0xb9, 0xc3, 0x2f, 0x88, 0x16, 0x88, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x2d, 0xd9, 0xdc, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x05, 0xdc, 0xdc, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x69, 0xdf, 0xdc, 0x83, 0x96, 0x0a, 0x06, 0x06, 0xc9, 0x60, 0x36, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd6, 0x88, 0x73, 0x0f, 0x52, 0x20, 0xcd, 0x8f, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1a, 0x58, 0xce, 0x1d, 0x04, 0x1b, 0x2c, 0xb4, 0xb6, 0x5a, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0xcd, 0x9e, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xfb, 0x3e, 0x77, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8d, 0xf5, 0xe7, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8d, 0x0b, 0xe8, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4d, 0x26, 0xe8, 0x1e, 0x34, 0x85, 0x34, 0x30, 0x48, 0x06, 0xb2, 0x7e, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xe5, 0x41, 0xf7, 0x90, 0xaf, 0x3d, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x9e, 0x42, 0xf7, 0x10, 0xcd, 0xe3, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x86, 0x40, 0x74, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x5a, 0xa2, 0x7b, 0xb0, 0x70, 0xf1, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xd4, 0x8a, 0xee, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x36, 0x8c, 0xee, 0x41, 0xcb, 0x39, 0xf8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xcf, 0x46, 0xf7, 0xe0, 0x75, 0x17, 0x07, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0xc3, 0xa3, 0x3b, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0x1c, 0xa4, 0x7b, 0xb0, 0x50, 0xb5, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x8b, 0x47, 0xba, 0x87, 0x68, 0x1e, 0x87, 0x8e, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x56, 0x35, 0x74, 0x0f, 0xe3, 0x72, 0x3c, 0x3e, 0x0e, 0x1d, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4d, 0x35, 0xe9, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x07, 0x4e, 0x77, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xb8, 0x4e, 0x77, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x8c, 0x4f, 0xf7, 0xa0, 0xa5, 0x82, 0x81, 0x41, 0x32, 0x30, 0x54, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x3f, 0x50, 0xf7, 0x20, 0xa4, 0xc0, 0x8f, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xf8, 0x50, 0xf7, 0x20, 0x65, 0x30, 0x60, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x76, 0x1d, 0x75, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x44, 0xa9, 0x3b, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x9e, 0xa9, 0x3b, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x09, 0xaa, 0x7b, 0xd0, 0x52, 0xc1, 0xc0, 0x20, 0x19, 0x28, 0x7e, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0xc5, 0x54, 0xf7, 0x60, 0x4c, 0x58, 0x1d, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0xed, 0xaa, 0x3b, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x76, 0x68, 0x75, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x86, 0x73, 0x75, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf6, 0x80, 0x75, 0x0f, 0x5a, 0x2a, 0x18, 0x18, 0x24, 0x03, 0x59, 0xbf, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x61, 0xac, 0x7b, 0x30, 0x26, 0xac, 0x8e, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1a, 0x5f, 0xd6, 0x5d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x8b, 0xd2, 0xba, 0x07, 0x2b, 0xd9, 0xb2, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4d, 0x61, 0xeb, 0x1e, 0xa4, 0x0c, 0x06, 0x1c, 0x62, 0x78, 0x1c, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x92, 0xb7, 0xee, 0x0a, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1a, 0x27, 0xd7, 0x3d, 0x58, 0xc9, 0x96, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x53, 0x5d, 0xf7, 0x20, 0x65, 0x30, 0xe0, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x63, 0xf0, 0xba, 0x87, 0x18, 0x1e, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2d, 0xd7, 0xeb, 0x0e, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0xa9, 0x7d, 0xdd, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x69, 0x80, 0xdd, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0xbd, 0x83, 0xdd, 0x83, 0x96, 0x0a, 0x06, 0x06, 0xc9, 0x40, 0xd6, 0x6f, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4d, 0x34, 0xec, 0x1e, 0x84, 0x14, 0xf8, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xdb, 0x12, 0xbb, 0x07, 0x29, 0x83, 0x01, 0xc7, 0xa1, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2d, 0x79, 0xec, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x75, 0x64, 0x77, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x33, 0x29, 0xbb, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5a, 0x76, 0xd9, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x14, 0xcd, 0xee, 0xc1, 0xc2, 0xc5, 0xa3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x03, 0x3a, 0xbb, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x93, 0x3f, 0xbb, 0x07, 0x0b, 0x5f, 0xbd, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x4c, 0xd1, 0xee, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xe2, 0x78, 0xd0, 0x60, 0xd2, 0xee, 0xf1, 0x6d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x66, 0xa9, 0x76, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x96, 0xb4, 0x76, 0x0f, 0x5e, 0xb8, 0x24, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x05, 0xb0, 0xdd, 0x83, 0x94, 0xc1, 0x80, 0xe3, 0xd0, 0x71, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x1b, 0x66, 0xbb, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9a, 0x5e, 0xdb, 0x3d, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x2a, 0xc6, 0xee, 0x41, 0x0a, 0xa4, 0xf9, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xbc, 0x94, 0xee, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x1c, 0x96, 0xee, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xc6, 0x97, 0xee, 0x41, 0x4b, 0x05, 0x03, 0x83, 0x64, 0xa0, 0x5c, 0x0d, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x59, 0x32, 0xdd, 0x83, 0x10, 0x00, 0x3f, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x68, 0x4f, 0x4d, 0xf7, 0x20, 0x05, 0xd2, 0xfc, 0x38, 0x74, 0x7c, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x71, 0x93, 0x7b, 0x1c, 0x3a, 0x1e, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x62, 0xdc, 0xee, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0x34, 0xb8, 0x3b, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd6, 0x04, 0x78, 0x07, 0xc9, 0x40, 0x57, 0xaa, 0x83, 0x80, 0xf7, 0x1f, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x32, 0xff, 0xee, 0xc1, 0x53, 0x15, 0x0c, 0x06, 0xc1, 0x06, 0x41, 0x16, 0xbf, 0x38, 0x08, 0x16, 0x7e, 0x43, 0xb6, 0x62, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x3e, 0xe2, 0xee, 0xc1, 0x20, 0x31, 0x3f, 0x58, 0x89, 0x2f, 0x72, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0xa8, 0xe3, 0xee, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0x1d, 0xbb, 0x3b, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8d, 0xae, 0xef, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcd, 0xc4, 0xef, 0x1e, 0x34, 0x76, 0x8c, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x79, 0xfb, 0xdd, 0x43, 0x0c, 0x8f, 0x43, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1a, 0xea, 0xdd, 0x1d, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5a, 0x16, 0xde, 0x1d, 0x24, 0x03, 0x82, 0xb7, 0xeb, 0x20, 0xe0, 0xfd, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xd0, 0x1e, 0xf2, 0xee, 0x21, 0x86, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0x3b, 0xbd, 0x3b, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0x94, 0xbd, 0x7b, 0xf0, 0xc8, 0x2a, 0x84, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0xf0, 0xbd, 0x7b, 0x88, 0xe1, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0d, 0x93, 0xef, 0x0e, 0x92, 0x01, 0xe3, 0xbb, 0xea, 0x78, 0x7c, 0x1c, 0x3a, 0x0e, 0x0d, 0x82, 0x0d, 0x82, 0x2c, 0x7e, 0x71, 0x10, 0x2c, 0xfc, 0x86, 0x6c, 0xc5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0xc9, 0xdb, 0xdd, 0x83, 0xc6, 0xc5, 0xee, 0x0f, 0x56, 0xe2, 0x8b, 0x1c, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0x9f, 0xb9, 0x3b, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x34, 0xf7, 0xb9, 0x7b, 0xf0, 0x80, 0x18, 0x83, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xb4, 0x51, 0xba, 0x7b, 0xd0, 0xfe, 0xfc, 0xd2, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4d, 0xab, 0xee, 0x1e, 0xac, 0xee, 0x85, 0x39, 0x0e, 0x0d, 0x82, 0x0d, 0x82, 0x2c, 0x7e, 0x71, 0x10, 0x2c, 0xfc, 0x86, 0x6c, 0xc5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x29, 0xca, 0xdd, 0x83, 0xc6, 0xc6, 0xf1, 0x0f, 0x56, 0xe2, 0x8b, 0x1c, 0x8f, 0x0f, 0x9e, 0x18, 0x84, 0x30, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x59, 0xbe, 0xdd, 0x83, 0xa7, 0xf7, 0x20, 0x0c, 0x82, 0x0d, 0x82, 0x2c, 0x7e, 0x71, 0x10, 0x2c, 0xfc, 0x86, 0x6c, 0xc5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xa0, 0x89, 0xbb, 0xdd, 0x83, 0xc6, 0xc6, 0xf1, 0x0f, 0x56, 0xe2, 0x8b, 0x1c, 0x8f, 0x8f, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc6, 0x5c, 0x71, 0x0f, 0x96, 0xca, 0xe9, 0x2c, 0x0e, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xf0, 0x00, 0xd9, 0x82, 0x41, 0xb0, 0xc1, 0xb3, 0x98, 0x0c, 0x0e, 0x1e, 0x4b, 0x5b, 0x70, 0x3c, 0x5e, 0x71, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0xf7, 0xc8, 0x16, 0x0c, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0x04, 0x7d, 0xd5, 0xf1, 0xfc, 0xe0, 0xb1, 0xb4, 0x05, 0xc7, 0xe3, 0x55, 0x1c, 0x24, 0x03, 0xad, 0xab, 0x06, 0xd1, 0x82, 0xf3, 0x87, 0x18, 0x1e, 0xcf, 0x8f, 0xc7, 0x2b, 0x0e, 0x82, 0x0d, 0x5e, 0x6f, 0x61, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x24, 0x03, 0x46, 0x57, 0xd5, 0xf1, 0xfc, 0xe0, 0xc9, 0x4a, 0x06, 0xc7, 0xa1, 0xe3, 0xf1, 0xe2, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x82, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x5e, 0x6f, 0x61, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x58, 0xaf, 0x3a, 0x9e, 0x1f, 0x87, 0x0e, 0xde, 0x51, 0x5c, 0x70, 0xf0, 0x64, 0x25, 0x83, 0xe3, 0xf1, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x17, 0xd5, 0x18, 0x0c, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0xfa, 0xfd, 0x1d, 0x8f, 0x0f, 0x5a, 0x31, 0xc0, 0x1f, 0x04, 0x0b, 0xbf, 0xf1, 0xfc, 0xe0, 0x58, 0x75, 0x7f, 0xd0, 0x10, 0x38, 0xfe, 0xc1, 0xbb, 0x85, 0x0e, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0xe0, 0x6d, 0x3d, 0x07, 0x07, 0xaf, 0xaf, 0x3a, 0x18, 0x04, 0x1b, 0x04, 0x59, 0xfc, 0xe2, 0x20, 0x58, 0xf8, 0x0d, 0xd9, 0x8a, 0xe1, 0x17, 0x24, 0x03, 0xc5, 0xed, 0x20, 0xe0, 0xfd, 0x8f, 0x6f, 0x07, 0x2b, 0xf1, 0x45, 0x8e, 0xc7, 0x2b, 0x0e, 0x82, 0x0d, 0x5a, 0x97, 0x75, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x38, 0x07, 0x0b, 0xad, 0xad, 0x16, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x67, 0x03, 0x17, 0x0c, 0x92, 0x81, 0xf0, 0x1d, 0xfa, 0x6a, 0x1c, 0xd2, 0x70, 0xc7, 0xe3, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xf0, 0x36, 0x9c, 0x83, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0xc0, 0x52, 0xd5, 0xf1, 0xfc, 0xe0, 0xe5, 0xc5, 0x05, 0xc7, 0xa1, 0xe3, 0xf1, 0x0a, 0x82, 0x0d, 0x1e, 0x10, 0x63, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0x09, 0x40, 0x07, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0xe0, 0x45, 0x35, 0x06, 0x83, 0x60, 0x83, 0xd7, 0x97, 0x17, 0x1c, 0xbc, 0xf9, 0xc6, 0xe0, 0x38, 0xb4, 0xe2, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0x4f, 0xde, 0x2f, 0x18, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0xcc, 0xdd, 0xf1, 0xfc, 0xe0, 0xb1, 0xb4, 0x05, 0xc7, 0xe3, 0xc5, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x68, 0x7e, 0xd5, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc0, 0x0f, 0x19, 0x7e, 0xe3, 0xf9, 0xc1, 0xb3, 0x62, 0x0b, 0x8e, 0x43, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xf0, 0xe2, 0xd8, 0x82, 0x83, 0xd7, 0x81, 0x18, 0x1c, 0x34, 0x3f, 0xad, 0x7f, 0x3c, 0x5e, 0x10, 0x2c, 0x48, 0x06, 0x8c, 0xfa, 0xbf, 0xe3, 0xf1, 0xe2, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x36, 0x58, 0xac, 0x67, 0x72, 0x30, 0x0c, 0x7d, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x41, 0x32, 0xa0, 0xf9, 0x5d, 0xae, 0x83, 0x61, 0xe8, 0x33, 0x48, 0x06, 0x04, 0x2b, 0xd7, 0xc1, 0x30, 0xf4, 0x19, 0x7e, 0xe3, 0xf9, 0xf0, 0x0b, 0xa2, 0x0d, 0x1e, 0xdf, 0x16, 0x70, 0x48, 0x1d, 0x1c, 0xdf, 0x8e, 0x43, 0xc3, 0x6e, 0x30, 0xde, 0x74, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x10, 0x6c, 0x1c, 0x1a, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xbf, 0x20, 0x5a, 0x30, 0x3f, 0xc4, 0xf0, 0x90, 0xaa, 0x39, 0xbe, 0x0d, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0x94, 0xff, 0x54, 0x07, 0xc3, 0x3f, 0x76, 0x10, 0x6c, 0x10, 0x64, 0xf1, 0x8b, 0x83, 0x60, 0xe1, 0x37, 0x64, 0x2b, 0x06, 0xc9, 0x40, 0xd0, 0x0e, 0x86, 0x7f, 0xec, 0xc1, 0x4a, 0x7c, 0x91, 0xe3, 0xf1, 0x20, 0xd8, 0x20, 0xc8, 0xe2, 0x17, 0x07, 0xc1, 0xc2, 0x6f, 0xc8, 0x56, 0x0c, 0x92, 0x81, 0x59, 0x3b, 0x18, 0xfe, 0xb1, 0x07, 0x2b, 0xf1, 0x45, 0x8e, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xf0, 0x00, 0x64, 0x84, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x80, 0xe0, 0xae, 0x3a, 0xac, 0xd0, 0x1e, 0x3c, 0x77, 0x19, 0xe1, 0xe0, 0xfd, 0xce, 0x08, 0xc7, 0xa1, 0xe3, 0xf1, 0x8a, 0xc3, 0x6f, 0x3c, 0x3e, 0x78, 0xd3, 0x90, 0xc1, 0xf1, 0x78, 0x05, 0xc1, 0x06, 0x2d, 0x33, 0xe0, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xc1, 0x12, 0x6b, 0xab, 0xe1, 0x37, 0x9e, 0x2f, 0x0e, 0xb2, 0x0d, 0x71, 0x19, 0x04, 0x0b, 0x82, 0xc5, 0x39, 0x58, 0xd3, 0x72, 0xb4, 0x38, 0xec, 0x06, 0x41, 0xe2, 0xbd, 0x86, 0x18, 0x6e, 0xc8, 0x68, 0x1d, 0x04, 0xa5, 0xf7, 0x20, 0x5b, 0x43, 0xfb, 0xf5, 0x83, 0x61, 0xca, 0xbb, 0xe1, 0x68, 0x3f, 0x78, 0xa3, 0x37, 0xc2, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x67, 0x23, 0x06, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x1b, 0xae, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x3c, 0x1b, 0x31, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc0, 0x0f, 0x19, 0x7e, 0xe3, 0xf9, 0x41, 0x32, 0xe8, 0xfd, 0x71, 0xe8, 0x38, 0x34, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0xd9, 0x88, 0x01, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x06, 0x7e, 0xc8, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xcf, 0x46, 0x0c, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xf0, 0x43, 0x86, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0x4e, 0xb5, 0x83, 0x20, 0xe7, 0x3f, 0x0e, 0x1d, 0x87, 0x0e, 0xd6, 0xc2, 0x94, 0x0c, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0x07, 0x13, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x75, 0x30, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0xe0, 0xd9, 0x88, 0x01, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xc6, 0x86, 0xeb, 0xc1, 0x23, 0xcf, 0x11, 0x8e, 0x43, 0x83, 0x60, 0x83, 0x77, 0xae, 0x23, 0x1c, 0xac, 0x85, 0x29, 0x39, 0x78, 0xd9, 0x6a, 0xc0, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0x20, 0x4d, 0x75, 0x30, 0x0c, 0x7d, 0x0e, 0xda, 0xb3, 0xd3, 0x3f, 0x0e, 0x1d, 0xac, 0x85, 0x29, 0x19, 0x76, 0x83, 0xf1, 0xa6, 0xb3, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x82, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x05, 0xc9, 0x80, 0xe0, 0xed, 0x3a, 0x18, 0xfe, 0xb1, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xc6, 0x86, 0xeb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x4f, 0x03, 0x48, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xf0, 0x43, 0x86, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0xd2, 0x6a, 0x07, 0x01, 0xef, 0x7f, 0x1c, 0x3a, 0x0e, 0x0d, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x82, 0x64, 0x83, 0xc5, 0xb6, 0x22, 0x07, 0xc3, 0x3f, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x55, 0x33, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0xe0, 0x69, 0x00, 0x09, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xc6, 0x86, 0xeb, 0xc1, 0x53, 0x0a, 0x12, 0x8e, 0x43, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x9e, 0x06, 0x90, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xe0, 0x87, 0x0c, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x9c, 0x6a, 0x07, 0x01, 0xef, 0x7f, 0x1c, 0x3a, 0x78, 0xbf, 0x33, 0xc2, 0xc1, 0xdb, 0x93, 0x11, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0x69, 0xaa, 0x83, 0xe1, 0x1f, 0x7b, 0xd0, 0x4c, 0x7d, 0xfe, 0x71, 0x68, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x05, 0xc1, 0xc2, 0x6f, 0x3c, 0x3e, 0x78, 0xa5, 0x32, 0xc2, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0x40, 0xa0, 0x73, 0x1d, 0x0c, 0xff, 0xd8, 0x83, 0x66, 0xea, 0xf3, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0xc2, 0x97, 0xeb, 0x60, 0xf8, 0xc7, 0x1e, 0x34, 0x53, 0x9f, 0x7f, 0xf0, 0xdc, 0x65, 0x84, 0x83, 0xf7, 0x3b, 0x23, 0x0c, 0x82, 0x0d, 0xa9, 0x83, 0x83, 0xf7, 0x3b, 0x23, 0x1c, 0x87, 0x8e, 0xc7, 0xc7, 0xa1, 0x15, 0x0f, 0xde, 0xe8, 0x88, 0x70, 0x3c, 0x5e, 0x3c, 0x78, 0x0d, 0x7f, 0xc1, 0xf1, 0x78, 0x10, 0x6c, 0xf0, 0x80, 0x18, 0x83, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x2f, 0x7d, 0x39, 0x18, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x78, 0xfb, 0xef, 0x78, 0x7c, 0x1c, 0x5a, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0xc5, 0x61, 0x37, 0xac, 0x85, 0x6e, 0xc8, 0xd7, 0x0e, 0xbb, 0x41, 0x8b, 0x9f, 0xf7, 0x1b, 0x94, 0xfd, 0x58, 0x83, 0x60, 0x61, 0x17, 0x76, 0x61, 0x17, 0x3a, 0x41, 0x80, 0x17, 0x6e, 0x83, 0xe5, 0xb7, 0x59, 0x13, 0x0c, 0xf0, 0xe1, 0x68, 0xdf, 0x10, 0xc3, 0x61, 0x37, 0x78, 0x44, 0x4b, 0xc2, 0xc2, 0x6d, 0xb0, 0xe8, 0x34, 0xeb, 0xe0, 0x45, 0x2e, 0x09, 0x87, 0xa3, 0x7d, 0x0d, 0x31, 0x9c, 0x60, 0x82, 0x0f, 0xda, 0x22, 0x64, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0x82, 0x78, 0x83, 0x91, 0x65, 0x35, 0xec, 0x06, 0xa3, 0x5e, 0x72, 0xc3, 0xda, 0xef, 0xb0, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0x2d, 0x15, 0x0c, 0x0c, 0x92, 0x81, 0xac, 0xdf, 0x41, 0xf3, 0x64, 0x02, 0x07, 0x23, 0x0a, 0x77, 0x41, 0xb0, 0x20, 0xd8, 0xa0, 0xa5, 0x82, 0x81, 0x41, 0x32, 0x30, 0x7b, 0x07, 0xcd, 0x93, 0x09, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x8c, 0xcb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x6b, 0x5a, 0x8e, 0x16, 0x37, 0x58, 0x82, 0x7b, 0xb4, 0x06, 0xab, 0x1b, 0xa9, 0x0e, 0x8a, 0xb0, 0x89, 0x43, 0xea, 0xe0, 0x78, 0x7c, 0x1c, 0x3a, 0xac, 0xfd, 0x1e, 0xcf, 0x8f, 0x6f, 0xc7, 0xe3, 0x15, 0x04, 0x2b, 0xfc, 0x82, 0x64, 0x60, 0x5d, 0xef, 0x60, 0xbc, 0xeb, 0x1c, 0xdf, 0x36, 0xc4, 0xf0, 0xe0, 0x75, 0xbc, 0x08, 0x8b, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xf0, 0x6c, 0xc4, 0x80, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x1e, 0x42, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0xf1, 0x3a, 0x24, 0x97, 0x0e, 0x2d, 0xc0, 0x8e, 0x43, 0x83, 0x60, 0x43, 0xd6, 0xee, 0xa0, 0x3d, 0xed, 0xfc, 0xe3, 0xf1, 0x82, 0x60, 0x41, 0x32, 0x60, 0xa8, 0x77, 0x1d, 0x04, 0xbc, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x6b, 0x90, 0x56, 0x1d, 0x3d, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0x0f, 0x4a, 0x4a, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x0d, 0x52, 0xfa, 0xac, 0x07, 0xc1, 0x06, 0xa7, 0x30, 0xdc, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x24, 0x1b, 0x2c, 0x2a, 0x21, 0x39, 0x08, 0x78, 0xff, 0x85, 0xdf, 0x78, 0x7e, 0xb0, 0x7a, 0x1f, 0x69, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0xa0, 0xd5, 0xdf, 0xf1, 0xf8, 0x38, 0xb4, 0x06, 0x89, 0x7e, 0xd0, 0x83, 0x60, 0x41, 0x32, 0x20, 0xec, 0xff, 0x8e, 0xc7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x1e, 0x63, 0x75, 0xb0, 0xf0, 0x1b, 0xcf, 0x0f, 0x96, 0xe7, 0x24, 0x6d, 0x30, 0xf0, 0x43, 0x86, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0x72, 0x55, 0xc7, 0xe3, 0xe3, 0xd0, 0x1a, 0xa4, 0x43, 0x79, 0x0c, 0x82, 0x0d, 0x1e, 0x60, 0x95, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0x40, 0xf2, 0x2e, 0xd7, 0x41, 0xc0, 0xfb, 0x2f, 0xfc, 0xc6, 0xf3, 0x83, 0x25, 0xb6, 0x49, 0x07, 0x6f, 0xc9, 0x4a, 0x38, 0x0e, 0xad, 0x41, 0x42, 0xca, 0xfd, 0x20, 0xd8, 0xe0, 0x14, 0x86, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0xf1, 0x4a, 0x07, 0x0b, 0xbf, 0xf1, 0xfc, 0x60, 0x29, 0x4a, 0xd2, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x80, 0xf1, 0x55, 0x75, 0x3c, 0x3e, 0x0e, 0xad, 0x41, 0xda, 0x4b, 0xf5, 0x20, 0xd8, 0xe0, 0x14, 0x86, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0x19, 0x43, 0x07, 0x0b, 0xbf, 0xf1, 0xfc, 0x60, 0x51, 0x55, 0xd2, 0xf0, 0x1b, 0xcf, 0x0f, 0x5e, 0xc7, 0x8b, 0x70, 0x1c, 0x5a, 0x83, 0xf4, 0xa7, 0xe7, 0x41, 0xb0, 0xc1, 0x29, 0x0c, 0x77, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0xdb, 0x02, 0xf9, 0x0b, 0xbf, 0xf1, 0xfc, 0x60, 0x95, 0x5d, 0xd2, 0xc1, 0x7b, 0xd2, 0x12, 0x8e, 0x43, 0x6b, 0xb0, 0x32, 0x1c, 0x67, 0x10, 0x6c, 0x70, 0x0a, 0xc3, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x20, 0x7c, 0xb9, 0x0e, 0x02, 0xde, 0x7f, 0xe1, 0x37, 0x9e, 0x1f, 0xac, 0x25, 0x4b, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0xb0, 0xbc, 0xff, 0xef, 0x78, 0x7c, 0x1c, 0x5a, 0x83, 0xe4, 0x21, 0xe6, 0x41, 0xb0, 0xc1, 0x29, 0x0c, 0x77, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x80, 0x40, 0xe5, 0x3a, 0x08, 0x78, 0xff, 0x85, 0xdf, 0x78, 0x7e, 0xb0, 0xac, 0x30, 0x69, 0xf8, 0x8d, 0xe7, 0x07, 0xad, 0xf7, 0x30, 0x1d, 0x87, 0xd6, 0x60, 0xb8, 0x56, 0x0d, 0x82, 0x0d, 0x4e, 0x61, 0xb8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0x2c, 0xdd, 0xe5, 0x3a, 0x08, 0x78, 0xff, 0x85, 0xdf, 0x78, 0x7e, 0xb0, 0xf6, 0x32, 0xe9, 0xe0, 0x79, 0x79, 0x09, 0xc7, 0xa1, 0x35, 0x48, 0x0c, 0x91, 0x19, 0x04, 0x1b, 0x9c, 0xc2, 0x70, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xbc, 0x92, 0xc2, 0x60, 0xe1, 0x37, 0x9e, 0x1f, 0xac, 0x38, 0x4d, 0x3a, 0x78, 0x5e, 0x5e, 0xc2, 0x71, 0x68, 0x0d, 0x92, 0x7f, 0x9e, 0x07, 0xc1, 0x06, 0xa7, 0x30, 0xdc, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0x42, 0x9d, 0xeb, 0x20, 0xe0, 0xfd, 0x17, 0x7e, 0xe3, 0xf9, 0xc1, 0xc2, 0xe2, 0xa4, 0x83, 0xf7, 0xa4, 0x25, 0x1c, 0x87, 0xd6, 0x60, 0x01, 0x47, 0xce, 0x20, 0xd8, 0xe0, 0x14, 0x86, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0xa0, 0x3d, 0xd7, 0x41, 0xc0, 0xfb, 0x2f, 0xfc, 0xc6, 0xf3, 0x83, 0x15, 0xd7, 0x48, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0xa5, 0xeb, 0x78, 0x7c, 0x1c, 0x3a, 0xc4, 0xf0, 0x38, 0x34, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x50, 0xec, 0x72, 0x1d, 0x04, 0xbc, 0xff, 0x41, 0x2b, 0x06, 0xf8, 0x6b, 0xb0, 0x80, 0x23, 0x67, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x1e, 0x94, 0x94, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x1a, 0xa4, 0x43, 0x79, 0x0c, 0x82, 0x0d, 0x1e, 0x59, 0x85, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x51, 0x6d, 0xf8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x4e, 0x61, 0xb8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x9e, 0xd3, 0x95, 0xb0, 0xf0, 0x1b, 0xcf, 0x0f, 0x56, 0x5c, 0x59, 0x1d, 0x2c, 0x2d, 0x49, 0x3b, 0x0e, 0x1d, 0x87, 0xd6, 0x20, 0xa5, 0xcf, 0x7a, 0x10, 0x6c, 0xf0, 0xc8, 0x2a, 0x84, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x8d, 0x6a, 0xc3, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x70, 0x0a, 0xc3, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xf0, 0x92, 0xa8, 0x84, 0x0d, 0xda, 0xac, 0x88, 0x3f, 0x78, 0x4f, 0x5a, 0xc2, 0x71, 0xe8, 0x38, 0xb4, 0x06, 0x09, 0x29, 0xf7, 0x83, 0x60, 0x83, 0x47, 0x56, 0x21, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x68, 0x54, 0x1b, 0x7e, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x53, 0x18, 0xee, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xc7, 0x2b, 0x1d, 0x6c, 0xd0, 0x5c, 0x4b, 0xfd, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x80, 0xe3, 0x55, 0xd5, 0xf1, 0xf8, 0x38, 0x74, 0x1c, 0x5a, 0x83, 0x44, 0x3f, 0xe8, 0x41, 0xb0, 0xc1, 0x23, 0xab, 0x10, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x34, 0xaa, 0x0d, 0x3f, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x29, 0x0c, 0x77, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x63, 0xac, 0x0e, 0x16, 0x7e, 0xe3, 0xf9, 0xc1, 0x42, 0xc6, 0xaa, 0x83, 0x77, 0xa5, 0x26, 0x1c, 0x87, 0x8e, 0x43, 0x6b, 0x90, 0x7e, 0x6a, 0x31, 0x08, 0x36, 0x78, 0x64, 0x15, 0xc2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x46, 0xb5, 0xe1, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x38, 0x85, 0xe1, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0xf8, 0x9d, 0xeb, 0x20, 0xe0, 0xfd, 0x17, 0x7e, 0xe3, 0xf9, 0xc1, 0xf2, 0xd5, 0xaa, 0x83, 0xa5, 0x25, 0x69, 0xc7, 0xa1, 0xe3, 0xd0, 0x1a, 0x24, 0x2a, 0x3d, 0x0f, 0x82, 0x0d, 0x1e, 0x59, 0x85, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x51, 0x6d, 0xf8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x4e, 0x61, 0xb8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x1a, 0xdc, 0xc6, 0x5f, 0xf8, 0x8d, 0xe7, 0x07, 0x2b, 0x55, 0xaa, 0x0e, 0x96, 0x96, 0xa4, 0x1d, 0x87, 0x8e, 0x43, 0x6b, 0x90, 0x56, 0x1d, 0x3d, 0x08, 0x36, 0x78, 0x64, 0x15, 0xc2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x46, 0xb5, 0xe1, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x38, 0x85, 0xe1, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x78, 0x14, 0x64, 0xc2, 0xc2, 0x6f, 0x3c, 0x3f, 0x58, 0xc9, 0x55, 0x75, 0xf0, 0xbc, 0xbc, 0x84, 0xe3, 0xd0, 0x71, 0x68, 0x0d, 0x92, 0x9c, 0xa3, 0x07, 0xc1, 0x06, 0x8f, 0xac, 0x42, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xd0, 0xa8, 0x36, 0xfc, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xa7, 0x30, 0xdc, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0x49, 0xae, 0x83, 0x80, 0xf7, 0x5f, 0xf8, 0x8d, 0xe7, 0x07, 0x4b, 0x28, 0xac, 0x0e, 0x9e, 0x97, 0x97, 0x70, 0x1c, 0x3a, 0x0e, 0xad, 0xc1, 0xca, 0x70, 0x9c, 0x41, 0xb0, 0xc1, 0x23, 0xab, 0x10, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x34, 0xaa, 0x0d, 0x3f, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x29, 0x0c, 0x77, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xab, 0xe1, 0x12, 0x16, 0x7e, 0xe3, 0xf9, 0xc1, 0xa2, 0xe5, 0xaa, 0x83, 0xa5, 0x25, 0x69, 0xc7, 0xa1, 0xe3, 0xd0, 0x1a, 0x24, 0x0f, 0x31, 0x0f, 0x82, 0x0d, 0x1e, 0x59, 0x85, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x51, 0x6d, 0xf8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x4e, 0x61, 0xb8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xde, 0x6f, 0x97, 0xb0, 0xf0, 0x1b, 0xcf, 0x0f, 0x16, 0x91, 0x58, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x48, 0xfe, 0xff, 0x3b, 0x1e, 0x1f, 0x87, 0x8e, 0x43, 0x6b, 0x90, 0xfe, 0xf4, 0x3c, 0x08, 0x36, 0x78, 0x64, 0x15, 0xc2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x46, 0xb5, 0xe1, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x38, 0x85, 0xe1, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x68, 0x5b, 0x20, 0x7f, 0xe1, 0x37, 0x9e, 0x1f, 0x2c, 0xe0, 0xad, 0x3a, 0x58, 0x5a, 0x92, 0x76, 0x1c, 0x3a, 0x0e, 0xad, 0x41, 0x62, 0x88, 0xcc, 0x20, 0xd8, 0xe0, 0x91, 0x55, 0x08, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x1a, 0xd5, 0x86, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0x14, 0x86, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0x95, 0x14, 0x06, 0x1b, 0x34, 0x52, 0x5b, 0x3f, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x60, 0x78, 0x55, 0x1d, 0x8f, 0x8f, 0x43, 0xc7, 0xa1, 0x35, 0x48, 0xfe, 0x79, 0x1e, 0x04, 0x1b, 0x3c, 0xb2, 0x0a, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0xa3, 0xda, 0xf0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x9c, 0xc2, 0x70, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xbc, 0xcc, 0x30, 0x61, 0x83, 0xc6, 0xa5, 0xe6, 0x0f, 0xde, 0x95, 0x9a, 0x70, 0x1c, 0x3a, 0x0e, 0xad, 0x41, 0x4a, 0xd1, 0xf3, 0x20, 0xd8, 0xe0, 0x91, 0x55, 0x08, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x1a, 0xd5, 0x86, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0x14, 0x86, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x01, 0x79, 0xfc, 0x85, 0xdf, 0x78, 0x7e, 0xb0, 0x6c, 0xbb, 0xea, 0xe0, 0xf5, 0xeb, 0x09, 0xc7, 0xa1, 0xe3, 0xd0, 0x1a, 0xa4, 0xbd, 0x54, 0x0f, 0x82, 0x0d, 0x4e, 0x61, 0xb8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x9e, 0x31, 0x74, 0xb0, 0x41, 0xeb, 0x3a, 0xf2, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0xbb, 0x5f, 0xc7, 0xe3, 0xe3, 0xd0, 0x1a, 0x24, 0x90, 0x41, 0x0f, 0x82, 0x0d, 0x4e, 0x61, 0xb8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x5e, 0xd3, 0x60, 0xb0, 0x41, 0xa3, 0xda, 0xf0, 0x07, 0x2f, 0xf5, 0x4f, 0x38, 0x0e, 0x1d, 0x62, 0x78, 0x1c, 0x1a, 0x04, 0x1b, 0x3c, 0x77, 0x31, 0xe1, 0xa0, 0x15, 0x03, 0xfc, 0x35, 0x48, 0xf4, 0x83, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x07, 0x25, 0x25, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0x06, 0x29, 0x7d, 0xd6, 0x83, 0x60, 0x83, 0x53, 0x18, 0xee, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x97, 0x44, 0x25, 0x2c, 0xfc, 0xc6, 0xf3, 0x83, 0xf5, 0x47, 0x4a, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0xa9, 0xab, 0xe3, 0xf1, 0x71, 0x68, 0x0d, 0xd2, 0x5e, 0xaa, 0x07, 0xc1, 0x06, 0xa7, 0x30, 0xdc, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xcf, 0x18, 0x3a, 0x58, 0xf8, 0x8d, 0xe7, 0x07, 0x2b, 0xe8, 0x94, 0x0e, 0xde, 0x41, 0x96, 0x70, 0x1c, 0x5a, 0x83, 0x95, 0xe1, 0x38, 0x83, 0x60, 0x83, 0x53, 0x18, 0xee, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x57, 0xc3, 0x25, 0x2c, 0xfc, 0xc6, 0xf3, 0x83, 0xf5, 0xbc, 0x4a, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0x8a, 0xfe, 0xbf, 0xe3, 0xf1, 0x71, 0x68, 0x0d, 0x52, 0x8a, 0x9e, 0x07, 0xc1, 0x06, 0xa7, 0x30, 0xdc, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x0d, 0xc8, 0xe3, 0x2f, 0xfc, 0xc6, 0xf3, 0x83, 0x15, 0xcd, 0x4a, 0x07, 0x67, 0x93, 0xde, 0xe3, 0xd0, 0x1a, 0xa4, 0x3f, 0x3d, 0x0f, 0x82, 0x0d, 0x4e, 0x61, 0xb8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xda, 0x16, 0xc8, 0x5f, 0xf8, 0x8d, 0xe7, 0x07, 0x0b, 0x07, 0x95, 0x0e, 0xde, 0x41, 0x96, 0x70, 0x1c, 0x5a, 0x83, 0x84, 0x94, 0xfb, 0x41, 0xb0, 0xc1, 0x29, 0x0c, 0x77, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xe3, 0x95, 0x0e, 0x36, 0x68, 0x17, 0xe3, 0x7d, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0xc0, 0xfa, 0xfe, 0xbf, 0xe3, 0xf1, 0x71, 0x68, 0x0d, 0x92, 0x87, 0x98, 0x07, 0xc1, 0x06, 0xa7, 0x30, 0xdc, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xef, 0xb7, 0x4b, 0xd8, 0xa0, 0xa5, 0x15, 0xfa, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x81, 0xd2, 0x77, 0x3c, 0x3e, 0x0e, 0xad, 0xc1, 0x70, 0xad, 0x1a, 0x04, 0x1b, 0x9c, 0xc2, 0x70, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x3c, 0x95, 0x2f, 0x61, 0xe1, 0x37, 0x9e, 0x1f, 0x2c, 0x35, 0x55, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x10, 0xdc, 0x7f, 0xc7, 0xe3, 0xe3, 0xd0, 0x1a, 0x24, 0x86, 0xc8, 0x0c, 0x82, 0x0d, 0x4e, 0x61, 0xb8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x5e, 0x49, 0x61, 0xb0, 0xf0, 0x1b, 0xcf, 0x0f, 0x96, 0xca, 0x2b, 0x1d, 0xbc, 0xa0, 0x41, 0xe1, 0x38, 0x74, 0x88, 0xe1, 0x71, 0xe8, 0xe0, 0xf5, 0x55, 0x07, 0x6b, 0x90, 0x90, 0x72, 0x3f, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0x0f, 0x4a, 0x4a, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x0d, 0x52, 0xfa, 0xac, 0x07, 0xc1, 0x06, 0xa7, 0x30, 0xdc, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x2f, 0x89, 0x4a, 0x58, 0xf8, 0x8d, 0xe7, 0x07, 0x8b, 0xa9, 0x93, 0x0e, 0xde, 0x41, 0x96, 0x70, 0x1c, 0x5a, 0x83, 0x95, 0xe1, 0x38, 0x83, 0x60, 0x83, 0x53, 0x18, 0xee, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x57, 0xc3, 0x25, 0x2c, 0xfc, 0xc6, 0xf3, 0x83, 0xe5, 0xe4, 0x49, 0x07, 0x2f, 0xb3, 0x50, 0x38, 0x0e, 0xad, 0x41, 0x4a, 0xd1, 0xf3, 0x20, 0xd8, 0xe0, 0x14, 0x86, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x01, 0x79, 0xfc, 0x85, 0xdf, 0x78, 0x7e, 0xb0, 0x66, 0x42, 0xe9, 0xe0, 0x6c, 0xd2, 0x7b, 0x1c, 0x5a, 0x83, 0xf4, 0xa7, 0xe7, 0x41, 0xb0, 0xc1, 0x29, 0x0c, 0x77, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0xdb, 0x02, 0xf9, 0x0b, 0xbf, 0xf1, 0xfc, 0x60, 0xf5, 0x80, 0xd2, 0xc1, 0x3b, 0xc8, 0x12, 0x8e, 0x43, 0x6b, 0x90, 0x3c, 0xc4, 0x3c, 0x08, 0x36, 0x38, 0x85, 0xe1, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x78, 0xbf, 0x5d, 0xc2, 0x06, 0x6d, 0x71, 0xb9, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0xac, 0x7e, 0x1d, 0x8f, 0x8f, 0x43, 0x6b, 0x30, 0x5c, 0xab, 0x06, 0xc1, 0x06, 0xa7, 0x30, 0xdc, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x4f, 0xe5, 0x4b, 0xd8, 0xa0, 0x15, 0xc8, 0xf7, 0x83, 0xb7, 0x31, 0x29, 0x1c, 0x87, 0x0e, 0x31, 0x3c, 0x0e, 0x1d, 0xbc, 0x56, 0xe9, 0x60, 0x0d, 0xd2, 0x5e, 0xaa, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0xe0, 0x41, 0x49, 0x09, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0xaf, 0x41, 0x4a, 0xd1, 0xf3, 0x20, 0xd8, 0xe0, 0x14, 0x86, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x01, 0x79, 0xfc, 0x0d, 0x1a, 0x1e, 0x94, 0x3f, 0x78, 0x4f, 0x5a, 0xc2, 0x71, 0x68, 0x0d, 0x86, 0x6b, 0xd5, 0x20, 0xd8, 0xe0, 0x14, 0x86, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0xa9, 0x7c, 0x09, 0x0b, 0xbf, 0xf1, 0xfc, 0x60, 0x29, 0xc8, 0xd2, 0xc1, 0x3b, 0xc8, 0x12, 0x8e, 0x43, 0x6b, 0x90, 0x18, 0x22, 0x33, 0x08, 0x36, 0x38, 0x85, 0xe1, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x78, 0x25, 0x85, 0xc1, 0x06, 0x0d, 0x98, 0xcc, 0x1f, 0xbc, 0x83, 0x2c, 0xe1, 0x38, 0xb4, 0x06, 0xc9, 0x3f, 0xcf, 0x83, 0x60, 0x83, 0x53, 0x18, 0xee, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x97, 0x19, 0x26, 0x2c, 0xfc, 0xc6, 0xf3, 0x83, 0xd5, 0x3f, 0x4b, 0x07, 0xef, 0x49, 0x4b, 0x38, 0x0e, 0xad, 0xc1, 0xca, 0x70, 0x9c, 0x41, 0xb0, 0xc1, 0x29, 0x0c, 0x77, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xab, 0xe1, 0x12, 0x16, 0x7e, 0xe3, 0xf9, 0xc1, 0xba, 0x80, 0xa5, 0xe1, 0x37, 0x9e, 0x1f, 0xb4, 0x2f, 0xc1, 0x74, 0x1c, 0x3a, 0xc4, 0xf0, 0x38, 0x74, 0xf0, 0x6e, 0xa1, 0x83, 0x35, 0x58, 0x19, 0x8e, 0x33, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0x0f, 0x4a, 0x4a, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x0d, 0xd2, 0xaa, 0xa3, 0x07, 0xc1, 0x06, 0xa7, 0x30, 0xdc, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x8f, 0x82, 0x4c, 0x58, 0xf8, 0x8d, 0xe7, 0x07, 0xeb, 0x9f, 0x96, 0x0e, 0xde, 0x93, 0x96, 0x70, 0x1c, 0x5a, 0x83, 0xb4, 0x97, 0xea, 0x41, 0xb0, 0xc1, 0x29, 0x0c, 0x77, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x33, 0x86, 0x0e, 0x16, 0x7e, 0xe3, 0xf9, 0xc1, 0xba, 0xaf, 0xa5, 0x83, 0x77, 0x90, 0x25, 0x1c, 0x87, 0xd6, 0x20, 0xfd, 0xe9, 0x79, 0x10, 0x6c, 0x70, 0x0a, 0xc3, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xd0, 0xb6, 0x40, 0xfe, 0x06, 0x4d, 0x8c, 0xce, 0x1f, 0x3c, 0x2f, 0x2f, 0xe1, 0x38, 0xb4, 0x06, 0x29, 0x45, 0xcf, 0x83, 0x60, 0x83, 0x53, 0x18, 0xee, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x06, 0xe4, 0xf1, 0x37, 0x68, 0x73, 0x71, 0xfe, 0xe0, 0x1d, 0x64, 0x09, 0xc7, 0xa1, 0x35, 0x48, 0x72, 0x8e, 0x1e, 0x04, 0x1b, 0x9c, 0xc2, 0x70, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xbc, 0x9c, 0x39, 0x61, 0xe1, 0x37, 0x9e, 0x1f, 0x2c, 0x68, 0x5c, 0x3a, 0x78, 0x4f, 0x5a, 0xc2, 0x71, 0x68, 0x0d, 0x92, 0x87, 0x98, 0x07, 0xc1, 0x06, 0xa7, 0x30, 0xdc, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xef, 0xb7, 0x4b, 0x58, 0xf8, 0x8d, 0xe7, 0x07, 0x4b, 0x3a, 0x97, 0x0e, 0xde, 0x93, 0x96, 0x70, 0x1c, 0x5a, 0x83, 0xc4, 0x10, 0x99, 0x41, 0xb0, 0xc1, 0x29, 0x0c, 0x77, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x2b, 0x29, 0x0c, 0x16, 0x7e, 0xe3, 0xf9, 0xc1, 0xa2, 0xd6, 0xa5, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x01, 0x83, 0xff, 0xef, 0x78, 0x7c, 0x1c, 0x5a, 0x83, 0xe4, 0x9f, 0xe7, 0x41, 0xb0, 0xc1, 0x29, 0x0c, 0x77, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xcb, 0x0c, 0x13, 0x16, 0x7e, 0xe3, 0xf9, 0xc1, 0x32, 0xe2, 0xa5, 0x83, 0xf7, 0xa4, 0x25, 0x1c, 0x87, 0xd6, 0x60, 0xb8, 0x56, 0x0d, 0x82, 0x0d, 0x4e, 0x61, 0xb8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x9e, 0xca, 0x97, 0x70, 0xf0, 0x0a, 0xff, 0x84, 0xe3, 0xd0, 0x1a, 0x24, 0xa4, 0xdc, 0x0f, 0x82, 0x0d, 0x4e, 0x61, 0xb8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x1e, 0xaf, 0x74, 0x70, 0xf0, 0x5a, 0x01, 0x85, 0xe3, 0xd0, 0x21, 0x86, 0xc7, 0xa1, 0x41, 0xb0, 0xc1, 0xab, 0xe1, 0x12, 0x0e, 0x5a, 0x31, 0xc0, 0x5f, 0x83, 0xe4, 0x21, 0xe6, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x78, 0x50, 0x52, 0xc2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x6b, 0x90, 0x56, 0x1d, 0x3d, 0x08, 0x36, 0x38, 0x85, 0xe1, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x78, 0x14, 0x64, 0xc2, 0xc2, 0x6f, 0x3c, 0x3f, 0x58, 0x4c, 0xbf, 0x74, 0xf0, 0x0e, 0xb2, 0x84, 0xe3, 0xd0, 0x1a, 0x2c, 0xe0, 0xc8, 0x19, 0x04, 0x1b, 0x9c, 0xc2, 0x70, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x3c, 0x77, 0x31, 0x61, 0xe1, 0x37, 0x9e, 0x1f, 0xac, 0xf1, 0x63, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x78, 0xab, 0xea, 0x78, 0x7c, 0x1c, 0x5a, 0x83, 0x94, 0x3e, 0xeb, 0x41, 0xb0, 0xc1, 0x29, 0x0c, 0x77, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x4b, 0xa2, 0x12, 0x16, 0x7e, 0xe3, 0xf9, 0xc1, 0x72, 0x02, 0xa6, 0x83, 0x77, 0x90, 0x25, 0x1c, 0x87, 0xd6, 0x20, 0xd1, 0x0f, 0x7a, 0x10, 0x6c, 0x70, 0x0a, 0xc3, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xf0, 0x18, 0xab, 0x83, 0x85, 0xdf, 0x78, 0x7e, 0xb0, 0x7e, 0x82, 0x69, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0x40, 0x72, 0xff, 0xdf, 0xf1, 0xf8, 0x38, 0xb4, 0x06, 0x29, 0x9a, 0xcc, 0x83, 0x60, 0x83, 0x53, 0x18, 0xee, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x01, 0x81, 0xcb, 0x75, 0x10, 0xf0, 0xfe, 0x0b, 0xbf, 0xf1, 0xfc, 0x60, 0xbd, 0x0d, 0xd3, 0xf0, 0x1b, 0xcf, 0x0f, 0x0e, 0xef, 0xb4, 0xc7, 0xa1, 0x35, 0x48, 0x3f, 0xb5, 0x18, 0x04, 0x1b, 0x9c, 0xc2, 0x70, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x3c, 0xda, 0x36, 0x61, 0xe1, 0x37, 0x9e, 0x1f, 0xac, 0x41, 0x62, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x78, 0xaa, 0xea, 0x78, 0x7c, 0x1c, 0x5a, 0x83, 0x44, 0xa5, 0xe7, 0x41, 0xb0, 0xc1, 0x29, 0x0c, 0x77, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x83, 0xdb, 0xf8, 0x0b, 0xbf, 0xf1, 0xfc, 0x60, 0xb1, 0x1b, 0xd3, 0xc1, 0xa3, 0x76, 0x15, 0x8e, 0x43, 0x6b, 0x90, 0x52, 0xf4, 0x3c, 0x08, 0x36, 0x38, 0x85, 0xe1, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x68, 0x40, 0x1e, 0x7f, 0xe1, 0x37, 0x9e, 0x1f, 0x2c, 0x84, 0x64, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x90, 0xd8, 0xff, 0x77, 0x3c, 0x3e, 0x0e, 0xad, 0x41, 0x92, 0x73, 0xf4, 0x20, 0xd8, 0xe0, 0x14, 0x86, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0xe5, 0xcc, 0x09, 0x0b, 0xbf, 0xf1, 0xfc, 0x60, 0xc5, 0x2a, 0xd3, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x80, 0xf3, 0x55, 0xd5, 0xf1, 0xf8, 0x38, 0xb4, 0x06, 0xc9, 0x3f, 0xcf, 0x83, 0x60, 0x83, 0x53, 0x18, 0xee, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x97, 0x19, 0x26, 0x2c, 0xfc, 0xc6, 0xf3, 0x83, 0x05, 0xd6, 0x4c, 0xc3, 0x6f, 0x3c, 0x3f, 0x34, 0x4e, 0x39, 0x0e, 0xad, 0x41, 0x62, 0x88, 0xcc, 0x20, 0xd8, 0xe0, 0x14, 0x86, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0x95, 0x14, 0x06, 0x0b, 0xbf, 0xf1, 0xfc, 0x60, 0x79, 0x31, 0xd3, 0xc1, 0x3b, 0xc8, 0x12, 0x8e, 0x43, 0x6b, 0xb0, 0x70, 0x1d, 0x67, 0x10, 0x6c, 0x70, 0x0a, 0xc3, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x90, 0xe6, 0x3a, 0x08, 0x78, 0xff, 0x85, 0xdf, 0x78, 0x7e, 0xb0, 0x0a, 0x9d, 0xe9, 0xe0, 0x1d, 0x64, 0x09, 0xc7, 0xa1, 0x43, 0x0c, 0x8f, 0x43, 0x83, 0x60, 0x83, 0xf7, 0xdb, 0x25, 0x1c, 0xb4, 0x62, 0x80, 0xbf, 0x06, 0x29, 0xe7, 0x24, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xf0, 0xa0, 0xa4, 0x84, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0xd7, 0x20, 0x21, 0xe5, 0x7e, 0x10, 0x6c, 0x70, 0x0a, 0xc3, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xf0, 0x78, 0xa5, 0x83, 0x0d, 0x9a, 0xe5, 0x97, 0x3f, 0x78, 0xee, 0x88, 0xc2, 0x71, 0x68, 0x0d, 0x52, 0x34, 0x99, 0x07, 0xc1, 0x06, 0xa7, 0x30, 0xdc, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x0f, 0xa1, 0x55, 0xd8, 0xa0, 0x4d, 0x78, 0xf9, 0x83, 0xf7, 0xa4, 0x25, 0x1c, 0x87, 0xd6, 0x20, 0xfd, 0xd4, 0x62, 0x10, 0x6c, 0x70, 0x0a, 0xc3, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xf0, 0x68, 0xdb, 0x84, 0x85, 0xdf, 0x78, 0x7e, 0xb0, 0xec, 0xa5, 0x69, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0xc0, 0xd8, 0xae, 0x3a, 0x1e, 0x1f, 0x87, 0xd6, 0x20, 0x79, 0x88, 0x79, 0x10, 0x6c, 0x70, 0x0a, 0xc3, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xf0, 0x7e, 0xbb, 0x84, 0x85, 0xdf, 0x78, 0x7e, 0xb0, 0x36, 0xa8, 0xe9, 0xe0, 0xb9, 0x23, 0x0a, 0xc7, 0xa1, 0x35, 0x48, 0x39, 0x27, 0x19, 0x04, 0x1b, 0x9c, 0xc2, 0x70, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xb4, 0x51, 0x92, 0xbf, 0xf0, 0x1b, 0xcf, 0x0f, 0x56, 0x47, 0x35, 0x1d, 0x3c, 0x2f, 0x2f, 0xe1, 0x38, 0x74, 0x88, 0xe1, 0x71, 0x68, 0x10, 0x6c, 0xd0, 0x46, 0x49, 0xfe, 0x41, 0x2b, 0x06, 0xf8, 0x6b, 0x90, 0x18, 0x22, 0x33, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0x0f, 0x4a, 0x4a, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x0d, 0xd2, 0xaa, 0xa3, 0x07, 0xc1, 0x06, 0xa7, 0x30, 0xdc, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x8f, 0x82, 0x4c, 0x58, 0xf8, 0x8d, 0xe7, 0x07, 0xeb, 0xc3, 0x9a, 0x0e, 0x9e, 0x97, 0x97, 0x70, 0x1c, 0x5a, 0x83, 0xb4, 0x97, 0xea, 0x41, 0xb0, 0xc1, 0x29, 0x0c, 0x77, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x33, 0x86, 0x0e, 0x16, 0x7e, 0xe3, 0xf9, 0xc1, 0xe2, 0xd3, 0xa6, 0x83, 0x55, 0x1e, 0x52, 0xc7, 0xa1, 0x35, 0x48, 0xfe, 0x79, 0x1e, 0x04, 0x1b, 0x9c, 0xc2, 0x70, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xbc, 0xcc, 0x30, 0x61, 0xe1, 0x37, 0x9e, 0x1f, 0xac, 0xca, 0x6d, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x30, 0xb8, 0xaa, 0x8e, 0xc7, 0xc7, 0xa1, 0x35, 0x58, 0x19, 0x8e, 0x33, 0x08, 0x36, 0x38, 0x85, 0xe1, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x78, 0x35, 0x5c, 0xc2, 0xc2, 0x6f, 0x3c, 0x3f, 0x58, 0x8d, 0xdf, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x20, 0xb0, 0xab, 0x8e, 0xc7, 0xc7, 0xa1, 0x35, 0x48, 0x48, 0xb9, 0x1f, 0x04, 0x1b, 0x9c, 0xc2, 0x70, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x3c, 0x5e, 0xe9, 0x60, 0xe1, 0x37, 0x9e, 0x1f, 0xac, 0x8a, 0x6b, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x30, 0xe8, 0xff, 0x8e, 0xc7, 0xc7, 0xa1, 0x35, 0x48, 0xd1, 0x64, 0x1e, 0x04, 0x1b, 0x9c, 0xc2, 0x70, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x3c, 0x84, 0x56, 0x61, 0xe1, 0x37, 0x9e, 0x1f, 0xac, 0x30, 0x6c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0xf8, 0xbf, 0xea, 0x78, 0x7c, 0x1c, 0x5a, 0x83, 0x94, 0x73, 0x92, 0x41, 0xb0, 0xc1, 0x29, 0x0c, 0x77, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x1b, 0x25, 0xf9, 0x0b, 0xbf, 0xf1, 0xfc, 0x60, 0xe9, 0x65, 0xd3, 0xc1, 0x63, 0x2b, 0x16, 0x8e, 0x43, 0x6b, 0x90, 0x7e, 0x6a, 0x31, 0x08, 0x36, 0x38, 0x85, 0xe1, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x78, 0xb4, 0x6d, 0xc2, 0xc2, 0x6f, 0x3c, 0x3f, 0x58, 0xaf, 0xdc, 0x74, 0xf0, 0x0e, 0xb2, 0x84, 0xe3, 0xd0, 0x1a, 0x24, 0x2a, 0x3d, 0x0f, 0x82, 0x0d, 0x4e, 0x61, 0xb8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x1a, 0xdc, 0xc6, 0x5f, 0xf8, 0x8d, 0xe7, 0x07, 0xeb, 0xd2, 0x9b, 0x0e, 0xde, 0x41, 0x96, 0x70, 0x1c, 0x5a, 0x83, 0xf4, 0xa7, 0xe7, 0x41, 0xb0, 0xc1, 0x29, 0x0c, 0x77, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0xdb, 0x02, 0xf9, 0x0b, 0xbf, 0xf1, 0xfc, 0x60, 0x81, 0x76, 0xd3, 0xc1, 0x3b, 0xc8, 0x12, 0x8e, 0x43, 0x6b, 0x30, 0x5c, 0xab, 0x06, 0xc1, 0x06, 0xa7, 0x30, 0xdc, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x4f, 0xe5, 0x4b, 0x58, 0xf8, 0x8d, 0xe7, 0x07, 0x6b, 0x5c, 0x9c, 0x0e, 0x96, 0x68, 0xa2, 0x1d, 0x87, 0xd6, 0x20, 0x81, 0x0c, 0x7a, 0x10, 0x6c, 0x70, 0x0a, 0xc3, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xf0, 0x9a, 0x06, 0x83, 0x85, 0xdf, 0x78, 0x7e, 0xb0, 0xfe, 0xca, 0xe9, 0xe0, 0x1d, 0x64, 0x09, 0xc7, 0xa1, 0x35, 0x48, 0x29, 0x7a, 0x1e, 0x04, 0x1b, 0x9c, 0xc2, 0x70, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x34, 0x20, 0x8f, 0xbf, 0xf0, 0x1b, 0xcf, 0x0f, 0x16, 0x3c, 0x38, 0x1d, 0xbc, 0x83, 0x2c, 0xe1, 0x38, 0xb4, 0x06, 0xc9, 0x43, 0xcc, 0x83, 0x60, 0x83, 0x53, 0x18, 0xee, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xf7, 0xdb, 0x25, 0x2c, 0xfc, 0xc6, 0xf3, 0x83, 0x15, 0x1e, 0x4e, 0x07, 0xcf, 0x1d, 0x51, 0x38, 0x0e, 0x1d, 0x62, 0x78, 0x1c, 0x1a, 0x04, 0x1b, 0xbc, 0x92, 0xc2, 0xe0, 0xa0, 0x15, 0x03, 0xfc, 0x35, 0x48, 0xfe, 0x79, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x07, 0x25, 0x25, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0x06, 0x69, 0xd5, 0xd1, 0x83, 0x60, 0x83, 0x53, 0x18, 0xee, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x47, 0x41, 0x26, 0x6c, 0xd0, 0x6c, 0xff, 0xfc, 0xc1, 0xdb, 0x98, 0x14, 0x8e, 0x43, 0x6b, 0x90, 0x90, 0x72, 0x3f, 0x08, 0x36, 0x38, 0x85, 0xe1, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x78, 0xbc, 0xd2, 0xc1, 0xc2, 0x6f, 0x3c, 0x3f, 0x58, 0xe4, 0xe9, 0x74, 0x70, 0x36, 0xe9, 0x3d, 0x0e, 0xad, 0x41, 0xda, 0x4b, 0xf5, 0x20, 0xd8, 0xe0, 0x14, 0x86, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0x19, 0x43, 0x07, 0x0b, 0xbf, 0xf1, 0xfc, 0x60, 0x55, 0xab, 0xd3, 0xc1, 0xd9, 0xa4, 0xf7, 0x38, 0xb4, 0x06, 0xe9, 0xa7, 0x16, 0x83, 0x60, 0x83, 0x53, 0x18, 0xee, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x47, 0xdb, 0x26, 0x2c, 0xfc, 0xc6, 0xf3, 0x83, 0x15, 0xcc, 0x4e, 0x07, 0xef, 0x20, 0x4b, 0x38, 0x0e, 0xad, 0x41, 0xa2, 0xd2, 0xf3, 0x20, 0xd8, 0xe0, 0x14, 0x86, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0xc1, 0x6d, 0xfc, 0x85, 0xdf, 0x78, 0x7e, 0xb0, 0x64, 0xdb, 0xe9, 0xe0, 0x1d, 0x64, 0x09, 0xc7, 0xa1, 0x35, 0x48, 0x7f, 0x7a, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x03, 0xcd, 0xed, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x07, 0x4f, 0x0c, 0x0a, 0x38, 0x0e, 0x0d, 0x82, 0x0d, 0xda, 0x16, 0xc8, 0x3f, 0x68, 0xc5, 0x00, 0x7f, 0x0d, 0x56, 0x86, 0xe3, 0x0c, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xc1, 0x81, 0xe6, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0xf0, 0xfe, 0xdf, 0xf1, 0xf8, 0x38, 0x74, 0xf0, 0x20, 0x4d, 0x85, 0x35, 0x48, 0x0c, 0x91, 0x19, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x03, 0xcd, 0xed, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0xe0, 0xf9, 0xaa, 0xe3, 0xf1, 0x71, 0xe8, 0xe0, 0x51, 0x3a, 0x0b, 0x6b, 0xb0, 0xb0, 0x1e, 0x67, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x0e, 0x34, 0xb7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x1f, 0xba, 0x98, 0x1c, 0x87, 0x06, 0xc1, 0x06, 0x2d, 0x5e, 0xe4, 0x1f, 0xb4, 0x62, 0x80, 0xbf, 0x06, 0x29, 0x45, 0xcf, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0x70, 0xa0, 0xb9, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x18, 0xde, 0x55, 0xc7, 0xe3, 0xe3, 0xd0, 0x20, 0xd8, 0xa0, 0x01, 0x79, 0xfc, 0x83, 0x56, 0x0c, 0xf0, 0xd7, 0x20, 0xc9, 0x39, 0x7a, 0x10, 0x6c, 0x70, 0x0a, 0xc3, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xf0, 0x72, 0xe6, 0x84, 0x0d, 0x1a, 0xb6, 0x8f, 0x3f, 0x78, 0x1b, 0x93, 0xc2, 0x71, 0x68, 0x0d, 0xd2, 0xa1, 0x3c, 0x86, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0xe0, 0x40, 0x73, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x30, 0xfc, 0xff, 0x8e, 0xc7, 0xc7, 0xa1, 0x41, 0xb0, 0xc1, 0x73, 0xba, 0x12, 0x0e, 0x5a, 0x31, 0xc0, 0x5f, 0x83, 0xe4, 0x21, 0xe6, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x38, 0xd0, 0xdc, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x0f, 0xd6, 0x3e, 0xa5, 0x1d, 0x87, 0x0e, 0x5e, 0xa2, 0xad, 0xb0, 0x06, 0x0b, 0xd7, 0x71, 0x06, 0xc1, 0x06, 0xa7, 0x30, 0xdc, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xaf, 0xb3, 0x56, 0xd8, 0xa0, 0xf5, 0x7f, 0xf8, 0x83, 0xf7, 0xa4, 0x25, 0x1c, 0x87, 0x0e, 0x31, 0x3c, 0x0e, 0x0d, 0x82, 0x0d, 0x5e, 0x66, 0x98, 0x70, 0xd0, 0x8a, 0x01, 0xfe, 0x1a, 0x2c, 0x5c, 0xc7, 0x19, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x07, 0x25, 0x25, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0x06, 0x09, 0x29, 0xf7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0x70, 0xa0, 0xb9, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x1c, 0x57, 0xc7, 0xe3, 0xe3, 0xd0, 0xc1, 0x6b, 0x95, 0x0e, 0xd6, 0x20, 0xed, 0xa5, 0x7a, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x0e, 0x34, 0xb7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x2f, 0x0e, 0x92, 0x81, 0xd6, 0x55, 0x83, 0x68, 0xc1, 0xf9, 0xc3, 0xd1, 0x7e, 0x3c, 0x3f, 0x1e, 0x1f, 0x87, 0x0e, 0xde, 0x2d, 0x74, 0xb0, 0x06, 0x09, 0x64, 0xd0, 0x83, 0x60, 0x83, 0x53, 0x18, 0xee, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xd7, 0x34, 0x18, 0x2c, 0xfc, 0xc6, 0xf3, 0x83, 0x85, 0x61, 0x4f, 0x07, 0xef, 0x20, 0x4b, 0x38, 0x0e, 0xad, 0x41, 0xca, 0x39, 0xc9, 0x20, 0xd8, 0xe0, 0x14, 0x86, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x8d, 0x92, 0xfc, 0x85, 0xdf, 0x78, 0x7e, 0xb0, 0x3c, 0xf2, 0xe9, 0xe0, 0x1d, 0x64, 0x09, 0xc7, 0xa1, 0x35, 0x48, 0x54, 0x7a, 0x1e, 0x04, 0x1b, 0x9c, 0xc2, 0x70, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x34, 0xb8, 0x8d, 0xbf, 0xf0, 0x1b, 0xcf, 0x0f, 0x96, 0xc6, 0x3d, 0x1d, 0xbc, 0x27, 0x2d, 0xe1, 0x38, 0xb4, 0x06, 0xe9, 0xa7, 0x16, 0x83, 0x60, 0x83, 0x53, 0x18, 0xee, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x47, 0xdb, 0x26, 0x2c, 0xfc, 0xc6, 0xf3, 0x83, 0xc5, 0x81, 0x4f, 0x07, 0xcf, 0xcb, 0x4b, 0x38, 0x0e, 0xad, 0x41, 0x3a, 0x94, 0xc7, 0x20, 0xd8, 0xe0, 0x14, 0x86, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0x39, 0x5d, 0x09, 0x0b, 0xbf, 0xf1, 0xfc, 0x60, 0x89, 0xec, 0xd3, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x80, 0xe3, 0xff, 0xdf, 0xf1, 0xf8, 0x38, 0xb4, 0x06, 0x89, 0x21, 0x32, 0x83, 0x60, 0x83, 0x53, 0x18, 0xee, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x57, 0x52, 0x18, 0x2c, 0xfc, 0xc6, 0xf3, 0x83, 0x05, 0xa2, 0x4f, 0x07, 0xef, 0x49, 0x4b, 0x38, 0x0e, 0xad, 0x41, 0xf2, 0xcf, 0xf3, 0x20, 0xd8, 0xe0, 0x14, 0x86, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0x65, 0x86, 0x09, 0x0b, 0xbf, 0xf1, 0xfc, 0x60, 0xe9, 0xf3, 0xd3, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0xc0, 0x51, 0x75, 0x3c, 0x3e, 0x0e, 0x1d, 0x62, 0x78, 0x1c, 0x1a, 0x04, 0x1b, 0xbc, 0xce, 0x5a, 0xe1, 0xa0, 0x15, 0x03, 0xfc, 0x43, 0x0c, 0x8f, 0x43, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x41, 0x3b, 0x00, 0xf8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0x32, 0x20, 0xd0, 0xd5, 0x0e, 0x2b, 0xb4, 0x07, 0x8f, 0xd2, 0x59, 0x38, 0x0e, 0x1d, 0xbc, 0xa2, 0xe8, 0x60, 0x10, 0x2c, 0x08, 0x36, 0x78, 0x05, 0x05, 0xc1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x2f, 0x48, 0x36, 0x68, 0x26, 0xe0, 0xfd, 0x20, 0xe0, 0xfd, 0x07, 0xc9, 0x80, 0xc4, 0x5d, 0xae, 0x83, 0x80, 0xf7, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0x01, 0x31, 0x06, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x5a, 0x88, 0xcb, 0x3f, 0x78, 0x54, 0xd1, 0xc1, 0x71, 0xe8, 0x38, 0x34, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x07, 0x6f, 0x3f, 0x14, 0x18, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xf0, 0x10, 0x16, 0x81, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x2d, 0xa6, 0xf3, 0x1f, 0x34, 0xfb, 0xeb, 0x7e, 0x1c, 0x1a, 0x04, 0x1b, 0x04, 0x59, 0xfc, 0xe2, 0x20, 0x58, 0xf8, 0x0d, 0xd9, 0x8a, 0x83, 0x42, 0x98, 0xe1, 0x60, 0x25, 0xbe, 0xc8, 0xf1, 0x78, 0x10, 0x2c, 0x08, 0x36, 0x68, 0x07, 0x13, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x0d, 0x4a, 0x3b, 0xb2, 0x83, 0x97, 0xef, 0x23, 0x1c, 0x87, 0x06, 0xc1, 0x06, 0x2f, 0x48, 0x48, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x6e, 0x58, 0xdf, 0xdb, 0x70, 0x8a, 0x1d, 0x52, 0x07, 0xc7, 0xe3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x8d, 0x43, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x40, 0xed, 0x3b, 0xac, 0xd0, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xec, 0x15, 0x1e, 0x52, 0x35, 0xc7, 0xa1, 0x83, 0xf7, 0x3b, 0x23, 0x1c, 0x87, 0x16, 0x04, 0x1b, 0xb4, 0xba, 0x74, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xf1, 0xa0, 0xf4, 0x8d, 0x58, 0x1c, 0x76, 0x83, 0xe2, 0xe2, 0x70, 0x61, 0x17, 0x6e, 0x43, 0x0c, 0x0f, 0x16, 0xc2, 0xec, 0xaf, 0x21, 0x86, 0x1b, 0x1a, 0xea, 0x1c, 0xc6, 0x65, 0x41, 0xb0, 0x21, 0x86, 0x83, 0x68, 0x71, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xb7, 0x67, 0x11, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0x6a, 0xb0, 0x92, 0x2d, 0xeb, 0xd0, 0x50, 0xe7, 0x10, 0xc3, 0x0d, 0x16, 0xc2, 0xec, 0x1f, 0x62, 0x78, 0x88, 0xe1, 0x71, 0xe8, 0x38, 0x74, 0xf0, 0xb2, 0xee, 0x85, 0x0d, 0xc6, 0x4f, 0xd7, 0xc1, 0xcb, 0xba, 0x17, 0x8e, 0xc7, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x07, 0x6f, 0x11, 0x43, 0x18, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xf0, 0x50, 0x29, 0x82, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x1b, 0xbc, 0x93, 0x13, 0x61, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x83, 0xa7, 0x2a, 0x18, 0x1c, 0xb4, 0x62, 0x80, 0x3f, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x28, 0x7f, 0xbb, 0x0e, 0x02, 0xde, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x31, 0xf8, 0x15, 0xfe, 0x38, 0x74, 0xd0, 0x8a, 0x01, 0xfe, 0x71, 0xe8, 0xa0, 0xe1, 0xaf, 0xfb, 0xe3, 0xd0, 0x2a, 0x0e, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x41, 0xf3, 0xab, 0xee, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x5a, 0x81, 0x7c, 0x1f, 0x7e, 0xe3, 0xf9, 0xc1, 0x1b, 0x1d, 0x11, 0x8e, 0x43, 0x07, 0x2f, 0xcb, 0x39, 0x38, 0x1e, 0xaf, 0x38, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0xb4, 0x62, 0xaf, 0x3f, 0x08, 0x36, 0x78, 0xee, 0x6c, 0xc1, 0xc1, 0xa2, 0x74, 0x92, 0x83, 0x77, 0x14, 0x17, 0x1c, 0x3c, 0x59, 0xc9, 0xe0, 0x78, 0x3c, 0x08, 0x36, 0x58, 0x31, 0x9a, 0xb3, 0x38, 0xec, 0x06, 0x81, 0x89, 0xbd, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x86, 0x71, 0x19, 0x04, 0x1b, 0xb2, 0x76, 0x07, 0x6b, 0x61, 0x4a, 0x0e, 0xd1, 0x3c, 0x1e, 0xaf, 0x38, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x20, 0xd8, 0xe0, 0x3d, 0xb2, 0x05, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x01, 0xe1, 0xfd, 0x77, 0x3c, 0x3f, 0x78, 0x79, 0x71, 0xc1, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0x60, 0xec, 0x8e, 0xe7, 0x07, 0x2f, 0x2f, 0x2e, 0x38, 0x1e, 0xaf, 0xe2, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x3e, 0x78, 0xae, 0x85, 0xc1, 0xc1, 0xfb, 0x66, 0x0b, 0x8e, 0xc7, 0xab, 0x38, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xc1, 0x9b, 0x86, 0x0c, 0x0e, 0xde, 0x37, 0x5b, 0x70, 0x3c, 0x5e, 0x71, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x83, 0x77, 0xfc, 0x18, 0x0c, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0xda, 0xfd, 0x1d, 0xcf, 0x0f, 0x16, 0xa5, 0x93, 0x1c, 0xbc, 0x2c, 0xe7, 0xe0, 0x78, 0x3c, 0xc8, 0x36, 0xc4, 0x65, 0x10, 0x6c, 0xd0, 0xb8, 0x6e, 0xfe, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0xe0, 0xa5, 0x2f, 0x07, 0xc7, 0xa1, 0x05, 0xc1, 0x06, 0x0f, 0x4a, 0x4a, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x0d, 0x16, 0x70, 0xe4, 0x0c, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xc1, 0x83, 0x92, 0x12, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x5f, 0x83, 0x84, 0x94, 0xfb, 0x83, 0x17, 0x9b, 0x26, 0xac, 0x41, 0xa2, 0x1f, 0xf4, 0xc1, 0x83, 0x5c, 0x13, 0xd6, 0x20, 0xfd, 0xd4, 0xe2, 0xe0, 0x55, 0xb5, 0x09, 0x6b, 0x90, 0xa8, 0xf4, 0x7c, 0xf0, 0xa6, 0xde, 0x84, 0x35, 0x58, 0x19, 0x8e, 0x73, 0xf0, 0xb0, 0xe9, 0x84, 0x35, 0x48, 0x1e, 0x62, 0x3e, 0x78, 0x9b, 0x76, 0xc2, 0x1a, 0xa4, 0x55, 0x47, 0x1f, 0xbc, 0x8a, 0x38, 0x61, 0x0d, 0x92, 0x9c, 0xa3, 0x0f, 0x9e, 0xb6, 0x9c, 0xb0, 0x06, 0xe9, 0x50, 0x1e, 0x07, 0x6f, 0xc8, 0x4c, 0x58, 0x83, 0x94, 0x3e, 0xeb, 0x83, 0x67, 0x80, 0x26, 0xac, 0x41, 0xfa, 0xd3, 0xf3, 0xc1, 0xab, 0xc4, 0x13, 0xd6, 0x20, 0x31, 0x44, 0xe6, 0xe0, 0x5d, 0xe9, 0x09, 0x6b, 0x90, 0xfc, 0xf3, 0x7c, 0xf0, 0x68, 0xf8, 0x84, 0x35, 0x48, 0x39, 0x27, 0x19, 0x04, 0x1b, 0x9c, 0xc2, 0x70, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xb4, 0x51, 0x92, 0xbf, 0x41, 0x0b, 0xd9, 0xf4, 0x07, 0xef, 0x49, 0x4b, 0x38, 0x0e, 0xad, 0x41, 0x4a, 0xd1, 0xf3, 0xc1, 0xfb, 0xee, 0x13, 0x0e, 0x31, 0x3c, 0x0e, 0x1d, 0x3c, 0x92, 0x40, 0x61, 0x0d, 0x12, 0xfd, 0xa0, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0xe0, 0x41, 0x49, 0x09, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0xaf, 0xc1, 0xca, 0x70, 0x9c, 0x41, 0xb0, 0x41, 0xab, 0x4b, 0xf7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x37, 0x58, 0xd5, 0xab, 0xb4, 0x41, 0x78, 0xaa, 0x6e, 0x10, 0x82, 0x0f, 0x1b, 0x84, 0xe0, 0xc3, 0x41, 0x08, 0x3e, 0x2c, 0x6e, 0xb0, 0xc8, 0x9d, 0x6a, 0x43, 0x23, 0xc1, 0x0d, 0x9d, 0xd4, 0x36, 0x34, 0xe1, 0x3a, 0x38, 0xa9, 0x9f, 0x1f, 0x8f, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x38, 0x85, 0xe1, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x78, 0x35, 0x5c, 0xc2, 0x06, 0xaf, 0xab, 0x50, 0x38, 0x78, 0x6b, 0x77, 0xc0, 0x71, 0xe8, 0x38, 0xb4, 0x06, 0x29, 0x45, 0xcf, 0x83, 0x60, 0x83, 0x56, 0x97, 0xee, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x6e, 0x50, 0x74, 0x1a, 0x6f, 0x10, 0x9e, 0xaa, 0x07, 0x2f, 0xb8, 0x61, 0x58, 0xdc, 0x60, 0x91, 0x3b, 0xd5, 0x86, 0x46, 0x82, 0x1b, 0x3a, 0xa9, 0x1d, 0x1c, 0xc5, 0xe2, 0x8f, 0xc7, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x9c, 0xc2, 0x70, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x34, 0x20, 0x8f, 0xbf, 0xc1, 0x2b, 0x35, 0x14, 0x86, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0x96, 0xfe, 0x8e, 0xc7, 0xc7, 0xa1, 0xe3, 0xd0, 0x1a, 0xa4, 0x3f, 0x3d, 0x0f, 0x82, 0x0d, 0x5a, 0x5d, 0xba, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xb8, 0xc1, 0x89, 0xfd, 0x66, 0x83, 0xf0, 0x54, 0x3d, 0x08, 0xc1, 0x87, 0xc5, 0x0d, 0x16, 0xb9, 0x53, 0x6d, 0x68, 0x24, 0xb8, 0x41, 0x50, 0x7a, 0x1f, 0x62, 0x78, 0x3c, 0x1e, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0x14, 0x86, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x6d, 0x81, 0xfc, 0x0d, 0x9e, 0xed, 0xa1, 0x70, 0xf0, 0xb6, 0xee, 0x84, 0xe3, 0xd0, 0x71, 0x68, 0x0d, 0xd2, 0x5e, 0xaa, 0x07, 0xc1, 0x06, 0xad, 0x2e, 0xdd, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0xdc, 0xe0, 0xd4, 0x70, 0x74, 0xd0, 0xb0, 0x43, 0xf3, 0xe2, 0x06, 0x8b, 0xdc, 0xa9, 0x36, 0x08, 0x4a, 0xef, 0x83, 0x96, 0x5b, 0x53, 0x8e, 0xc7, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x9c, 0xc2, 0x70, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x3c, 0x63, 0xe8, 0x60, 0x83, 0x67, 0x44, 0x28, 0x1c, 0x3c, 0x2f, 0x2f, 0xe1, 0x38, 0x74, 0x1c, 0x5a, 0x83, 0x84, 0x94, 0xfb, 0x41, 0xb0, 0x41, 0xab, 0x4b, 0xf7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x37, 0xbc, 0xdb, 0x73, 0xd0, 0x64, 0x4f, 0xc9, 0xe2, 0x06, 0x8b, 0xdc, 0xa9, 0x0e, 0x46, 0x78, 0xda, 0xf1, 0x78, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x53, 0x18, 0xee, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xc7, 0x2b, 0x1d, 0x6c, 0xd0, 0x2e, 0xc6, 0xfb, 0xf0, 0x1b, 0xcf, 0x0f, 0x1a, 0x78, 0x61, 0x3a, 0x0e, 0x1d, 0x87, 0x0e, 0x31, 0x3c, 0x0e, 0x1d, 0xbc, 0xbe, 0xea, 0x60, 0x0d, 0x16, 0xd6, 0xe3, 0x0c, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0xe0, 0x91, 0x55, 0x08, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x9a, 0x6b, 0xa9, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0xd5, 0xa5, 0xfb, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x8b, 0x1b, 0x1c, 0x17, 0x4f, 0x0e, 0x42, 0xf0, 0x61, 0x71, 0x83, 0xf1, 0xd3, 0x35, 0x08, 0x16, 0x24, 0x03, 0x96, 0xaf, 0xf7, 0x1d, 0x0c, 0x47, 0xe9, 0x83, 0xf5, 0x1e, 0x3b, 0xc7, 0xe3, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x68, 0xec, 0x18, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x63, 0x4a, 0xf2, 0xc3, 0x6f, 0x3c, 0x3f, 0x58, 0xde, 0x64, 0x74, 0x1c, 0x1a, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0xcc, 0x33, 0xfe, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x66, 0x62, 0xe4, 0x87, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x0f, 0x5e, 0xd1, 0x97, 0x30, 0x08, 0x36, 0x78, 0x08, 0xad, 0xc2, 0x41, 0xc3, 0x5f, 0xf7, 0xc7, 0xa1, 0x83, 0x86, 0xc0, 0xf1, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x3c, 0x20, 0xc6, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0xc1, 0x1b, 0x69, 0x15, 0x06, 0xc1, 0x06, 0x4f, 0xdd, 0x63, 0x18, 0x04, 0x1b, 0x04, 0x59, 0xfc, 0xe2, 0x20, 0x58, 0xf8, 0x0d, 0xd9, 0x8a, 0x41, 0x32, 0x50, 0xd4, 0x0e, 0x02, 0xde, 0xff, 0x60, 0x25, 0xbe, 0xc8, 0xf1, 0x78, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x07, 0x25, 0x25, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0x06, 0x2b, 0xc6, 0x63, 0x86, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0xe0, 0x91, 0x55, 0x08, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x5a, 0x62, 0x89, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0x91, 0x55, 0x08, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x16, 0x32, 0x46, 0x0d, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x9a, 0x79, 0xc6, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xf0, 0x43, 0x0e, 0x9e, 0xbb, 0x98, 0x70, 0x1c, 0x1a, 0x04, 0x1b, 0x3c, 0xaa, 0xe8, 0xe0, 0xa0, 0x21, 0x70, 0xfc, 0xe3, 0xd0, 0x71, 0x68, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0xab, 0x4b, 0xf7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x37, 0x58, 0xb4, 0x57, 0xb5, 0x86, 0xdc, 0xf7, 0x06, 0x69, 0xa1, 0xd9, 0x87, 0x71, 0x59, 0x83, 0xd5, 0x45, 0x56, 0x1b, 0xa2, 0x39, 0xec, 0x06, 0x0b, 0xdb, 0x1c, 0x36, 0x68, 0xaa, 0x68, 0x7e, 0xd8, 0x85, 0xdb, 0x60, 0x48, 0xfd, 0x1e, 0xc6, 0x65, 0x83, 0x55, 0x6b, 0x54, 0x83, 0x6c, 0x43, 0xf3, 0xf5, 0x0d, 0x56, 0x34, 0x1d, 0x6d, 0xb0, 0xf0, 0xc2, 0xe8, 0x30, 0x2e, 0x87, 0x18, 0x1e, 0x8f, 0x87, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x90, 0x0c, 0x48, 0x76, 0x57, 0x3b, 0xac, 0xd0, 0x1e, 0x3c, 0x08, 0x6f, 0xe1, 0xe0, 0x51, 0x3a, 0x0b, 0x07, 0xaf, 0x28, 0x3a, 0x38, 0x0e, 0x1d, 0x34, 0x04, 0x8e, 0xbf, 0x06, 0xe9, 0x50, 0x1e, 0x83, 0x60, 0x83, 0x56, 0x97, 0xee, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x06, 0x8b, 0xf6, 0xaa, 0xd6, 0x90, 0xfb, 0x3e, 0x58, 0x33, 0x1f, 0xb3, 0x06, 0x2b, 0x9a, 0x8e, 0x36, 0x58, 0x78, 0x61, 0x74, 0x48, 0x1d, 0x1c, 0x62, 0x78, 0x3c, 0x1e, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x0f, 0x1e, 0x45, 0xca, 0x70, 0x1c, 0x5a, 0x83, 0xe4, 0x9f, 0xe7, 0x41, 0xb0, 0x41, 0x33, 0xcf, 0xf8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x1e, 0x1c, 0x7b, 0x5b, 0x0f, 0x5e, 0x66, 0x98, 0x70, 0x1c, 0x5a, 0x83, 0xe4, 0x21, 0xe6, 0x41, 0xb0, 0x41, 0x33, 0xcf, 0xf8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x1e, 0x1c, 0xe8, 0x4e, 0x0e, 0xde, 0x6f, 0x97, 0x70, 0x1c, 0x3a, 0xc4, 0xf0, 0x38, 0x74, 0x1c, 0x3a, 0x68, 0xf8, 0xeb, 0xfe, 0x38, 0x74, 0x1c, 0x1a, 0x04, 0x1b, 0x3c, 0x84, 0x56, 0xe1, 0xa0, 0x15, 0x03, 0xfc, 0x83, 0xa7, 0xa1, 0x2d, 0x1c, 0x62, 0x78, 0x1c, 0x5a, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x1a, 0x3b, 0xc6, 0x3f, 0x48, 0x51, 0x7e, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xf0, 0x0a, 0x0a, 0x82, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x5f, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x0f, 0x5e, 0x7f, 0x89, 0x30, 0x08, 0x36, 0x78, 0x2a, 0x5f, 0xc2, 0x41, 0xc3, 0x5f, 0xf7, 0x07, 0x2d, 0xc6, 0xe3, 0x1f, 0xbc, 0xfe, 0x12, 0x61, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x07, 0xc4, 0x18, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x78, 0xe2, 0x25, 0xc2, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0x19, 0x10, 0xde, 0x7f, 0xc7, 0xe3, 0x41, 0xb0, 0xc1, 0xa3, 0x8a, 0x0e, 0x06, 0xc1, 0x06, 0x41, 0x16, 0xbf, 0x38, 0x08, 0x16, 0x7e, 0x43, 0xb6, 0x62, 0x90, 0x0c, 0xb4, 0xfe, 0x3b, 0x1e, 0x1f, 0xac, 0xc4, 0x17, 0x39, 0x1e, 0x1f, 0x87, 0x8e, 0x43, 0x07, 0x0d, 0x81, 0xe3, 0x0f, 0xbb, 0x21, 0x55, 0xb3, 0xc1, 0x53, 0x15, 0x0c, 0x0e, 0x9a, 0xc7, 0xc6, 0x5f, 0xd8, 0x0d, 0xa9, 0x9a, 0x0d, 0x9e, 0x0c, 0x64, 0x70, 0xd0, 0x3c, 0x36, 0xfe, 0x2a, 0x0e, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xf0, 0x1e, 0xd9, 0x82, 0x83, 0x57, 0x10, 0x19, 0x1c, 0x8f, 0x17, 0x64, 0x1b, 0xe2, 0x32, 0x08, 0x36, 0x68, 0x5c, 0x37, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x7b, 0xf0, 0xc4, 0x4b, 0x84, 0xe3, 0xd0, 0xc2, 0x6e, 0x48, 0xd5, 0x2c, 0x48, 0x06, 0x9e, 0xff, 0x3b, 0xac, 0xd0, 0x1e, 0x3c, 0x20, 0x77, 0x61, 0xc5, 0x41, 0xb0, 0xc1, 0xeb, 0x2d, 0x0c, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x10, 0x6c, 0xf0, 0x62, 0x45, 0x84, 0x83, 0x77, 0x14, 0x17, 0x1c, 0x3c, 0x59, 0xc9, 0xe0, 0x38, 0x74, 0x3c, 0x1e, 0x76, 0x43, 0xaa, 0x66, 0x41, 0x32, 0x90, 0x56, 0x1b, 0x44, 0x0b, 0xb6, 0x87, 0xa3, 0xfd, 0xb0, 0x42, 0x3b, 0x48, 0x06, 0xc6, 0xef, 0xe0, 0x51, 0xe0, 0x0c, 0x2b, 0x0e, 0x82, 0x0d, 0x5a, 0x97, 0x75, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xb8, 0xc1, 0x42, 0x6b, 0xab, 0x16, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x67, 0x03, 0x17, 0x1c, 0xb4, 0x8f, 0xcb, 0x74, 0xe8, 0xa0, 0x71, 0x3c, 0x1e, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0xf5, 0x16, 0x06, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xf0, 0x62, 0x3d, 0x83, 0x83, 0x27, 0x24, 0x17, 0x1c, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0x15, 0x64, 0x1b, 0xe2, 0x32, 0x08, 0x36, 0x68, 0x5c, 0x37, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x7b, 0xf0, 0x6e, 0x19, 0x83, 0xe3, 0xd0, 0x2a, 0x0e, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xf0, 0x1e, 0xd9, 0x82, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xaf, 0xb7, 0x30, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0xfc, 0xe0, 0x31, 0x8b, 0x08, 0xc7, 0xa1, 0x83, 0xc7, 0xd2, 0x16, 0x1c, 0x8f, 0x17, 0x0f, 0x9e, 0x2a, 0x5b, 0x70, 0x3c, 0x1e, 0x04, 0x6b, 0xf0, 0x0a, 0xa0, 0x84, 0x0d, 0x31, 0x3c, 0x78, 0x62, 0x50, 0xc2, 0xe2, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0x3c, 0x1b, 0x31, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xa1, 0x87, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xcf, 0x46, 0x0c, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x68, 0x5c, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x5b, 0x8c, 0x12, 0x0e, 0xdd, 0x8f, 0x8e, 0x43, 0xc7, 0xa1, 0x83, 0x97, 0x1e, 0x25, 0x1c, 0x8f, 0x57, 0x1c, 0x04, 0x1b, 0xb4, 0x2e, 0xeb, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xd7, 0xfa, 0x16, 0x2c, 0x0e, 0x82, 0x05, 0xc1, 0x06, 0xcf, 0x06, 0x2e, 0x18, 0x24, 0x03, 0xd5, 0xee, 0x90, 0x9c, 0x3b, 0x48, 0xcc, 0x31, 0x39, 0x1e, 0x1f, 0x3c, 0x68, 0xb8, 0xe0, 0x38, 0x74, 0x3c, 0x5e, 0xc5, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0xde, 0x23, 0x5b, 0x30, 0x08, 0x36, 0x78, 0x47, 0x2a, 0xc2, 0xc1, 0x63, 0x69, 0x0b, 0x8e, 0xc7, 0x2b, 0x0e, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xf0, 0xe2, 0xd8, 0x82, 0x83, 0xf7, 0xcd, 0x16, 0x1c, 0x8f, 0x57, 0x71, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x9a, 0x5f, 0x75, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xf0, 0x43, 0x0e, 0x9e, 0x3b, 0x5b, 0x70, 0x1c, 0x1a, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0xf7, 0xc8, 0x16, 0x0c, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0x14, 0x57, 0x55, 0xc7, 0xf3, 0x83, 0xc7, 0xd2, 0x16, 0x1c, 0x34, 0x3f, 0xad, 0x7f, 0x3c, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x57, 0x50, 0x10, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xb0, 0x1b, 0x52, 0x35, 0x2b, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xc1, 0xb3, 0xda, 0x0c, 0x06, 0xc1, 0x06, 0x6d, 0x42, 0xe5, 0x1f, 0x34, 0xfc, 0x75, 0x3f, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x0f, 0x9a, 0x8b, 0xca, 0x1f, 0x04, 0x1b, 0xbc, 0x8a, 0x7d, 0xe1, 0xa0, 0xe1, 0xaf, 0xfb, 0x05, 0xc9, 0x80, 0xe6, 0x77, 0xb9, 0x0e, 0x02, 0xde, 0x7f, 0x90, 0x0c, 0x08, 0x56, 0xae, 0x83, 0x80, 0xf7, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x28, 0xd7, 0xbb, 0x0e, 0x02, 0xde, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xbb, 0x65, 0x0c, 0x86, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xc1, 0x8b, 0x6a, 0x0c, 0x06, 0xc1, 0x06, 0x2f, 0xde, 0x44, 0x38, 0x78, 0xe2, 0x32, 0xc3, 0x71, 0xe8, 0x38, 0x34, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0x99, 0x67, 0xfc, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x03, 0x3f, 0xe4, 0xe0, 0xfd, 0x76, 0x09, 0xc7, 0xa1, 0x83, 0x86, 0xc0, 0xf1, 0x57, 0x1c, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0xde, 0x23, 0x5b, 0x30, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x90, 0xda, 0xff, 0x77, 0x3c, 0x3f, 0x78, 0x2c, 0x6d, 0xc1, 0xc1, 0x3b, 0x8a, 0x0b, 0x06, 0xc1, 0x06, 0x4f, 0x1f, 0x44, 0x38, 0x78, 0x79, 0x71, 0xc1, 0xf1, 0x78, 0xc5, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x5e, 0xe7, 0xc0, 0x70, 0xf0, 0xbe, 0xd9, 0x82, 0xe3, 0xf1, 0xe2, 0x20, 0xd8, 0xe0, 0xf5, 0x16, 0x06, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x83, 0xf7, 0x41, 0x22, 0x1c, 0xbc, 0x6f, 0xb6, 0xe0, 0x38, 0x74, 0x3c, 0x5e, 0x71, 0x10, 0x6c, 0xd0, 0xba, 0xac, 0xfb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x5e, 0xeb, 0x5b, 0xb0, 0x38, 0x08, 0x16, 0x04, 0x1b, 0x3c, 0x1b, 0xb8, 0xe0, 0xe0, 0xc5, 0x4b, 0x01, 0x07, 0x89, 0x39, 0x26, 0xc7, 0xe3, 0x83, 0x07, 0x0d, 0x17, 0x1c, 0x87, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x96, 0x9b, 0x92, 0x2c, 0x0e, 0xbb, 0x41, 0x60, 0x62, 0x2f, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0x19, 0xe8, 0x4a, 0x75, 0x30, 0x0c, 0x7d, 0x0e, 0x1e, 0x06, 0x5d, 0x70, 0xb0, 0x2a, 0xa4, 0x64, 0x90, 0x0c, 0xd4, 0xb7, 0x83, 0x61, 0xe8, 0x73, 0x3c, 0x5e, 0x71, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x07, 0xc8, 0x16, 0x0c, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0xea, 0xde, 0x21, 0x5b, 0x71, 0xf0, 0x58, 0xda, 0x82, 0xe3, 0xf1, 0x8a, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0x3c, 0x79, 0xbf, 0xe0, 0xe0, 0x7d, 0xb3, 0x05, 0xc7, 0xe3, 0x41, 0xb0, 0xc1, 0x03, 0x62, 0x0c, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x3c, 0x9f, 0x15, 0x61, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0xbc, 0xa8, 0xc6, 0x60, 0x10, 0x6c, 0xf0, 0xc8, 0x93, 0x84, 0x83, 0x37, 0xdf, 0x18, 0x1c, 0x87, 0x8e, 0xc7, 0xc7, 0xe3, 0x41, 0xb0, 0xc1, 0x72, 0x53, 0x92, 0xc5, 0x41, 0xb0, 0x20, 0xd9, 0x60, 0xb1, 0xad, 0xc8, 0x41, 0x90, 0xf3, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x9c, 0x83, 0xe3, 0xe2, 0xc9, 0xe2, 0xf0, 0x0b, 0xa2, 0x05, 0xd3, 0x61, 0x17, 0x76, 0xe1, 0x0e, 0x5e, 0xf3, 0xc4, 0x70, 0x58, 0xdf, 0x5c, 0x83, 0xc5, 0x7e, 0x54, 0x6b, 0xb0, 0xba, 0x91, 0x6a, 0x43, 0x0c, 0x0f, 0x5e, 0xf3, 0xc4, 0x70, 0x68, 0x24, 0x78, 0x68, 0x24, 0x78, 0x3c, 0x1e, 0x04, 0x0b, 0x82, 0x0d, 0x06, 0xf7, 0xf4, 0x41, 0xcb, 0xe0, 0x2c, 0x83, 0x60, 0x71, 0xd8, 0x0d, 0xeb, 0x7b, 0x1b, 0x5a, 0x00, 0x0d, 0x92, 0x21, 0x83, 0x68, 0xc1, 0xf5, 0x0d, 0x16, 0xfb, 0x51, 0x6d, 0xb0, 0x34, 0x02, 0xeb, 0xd0, 0x02, 0xe8, 0xa0, 0xa8, 0x39, 0x3b, 0xbe, 0x1d, 0x8f, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0xa3, 0x77, 0x48, 0x2e, 0x1d, 0x1a, 0xb5, 0x1c, 0x87, 0x8e, 0xc7, 0x83, 0x60, 0x83, 0xe5, 0xa6, 0x24, 0x8b, 0x83, 0x60, 0x83, 0x77, 0x48, 0x35, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x9c, 0x83, 0x26, 0x7b, 0x4a, 0x16, 0x87, 0x5f, 0x10, 0x2d, 0x98, 0x0e, 0xbb, 0xc1, 0xa3, 0xac, 0x1a, 0xd6, 0x60, 0x09, 0xee, 0xd1, 0xc1, 0x4b, 0xb0, 0x1a, 0x0e, 0x8d, 0x04, 0x8f, 0xc7, 0x83, 0x60, 0x83, 0x37, 0x6b, 0x35, 0x0c, 0x82, 0xc5, 0x61, 0x37, 0xac, 0xef, 0x6d, 0x68, 0x01, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xd7, 0x37, 0x58, 0x82, 0x7b, 0x74, 0xf0, 0x56, 0xaf, 0x86, 0x83, 0xa2, 0xe6, 0xec, 0xf8, 0x76, 0x3c, 0x3e, 0x78, 0x22, 0x58, 0xc3, 0x71, 0xe8, 0x78, 0xbc, 0x20, 0xd8, 0x60, 0xb9, 0x29, 0xc9, 0xe2, 0x20, 0xd8, 0xe0, 0x15, 0xfd, 0x04, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x37, 0x38, 0x4d, 0xf6, 0x1e, 0x84, 0xa7, 0xea, 0xc1, 0x2b, 0x01, 0x0a, 0x0e, 0xa9, 0x9a, 0xe3, 0xd0, 0xf1, 0x78, 0x41, 0xb0, 0x41, 0xc3, 0x9d, 0xef, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x87, 0xdd, 0x90, 0xc7, 0xda, 0x30, 0x2e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0x66, 0xd7, 0xe2, 0x1c, 0x34, 0xa3, 0x39, 0x70, 0x18, 0x97, 0xe3, 0xf1, 0xf1, 0x78, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x90, 0x0c, 0x08, 0x76, 0xb5, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x26, 0x5c, 0xe9, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x07, 0xeb, 0x5c, 0xba, 0x8e, 0x43, 0x07, 0x0d, 0x23, 0xba, 0x1f, 0x87, 0x16, 0x04, 0x8b, 0x1b, 0x84, 0xa7, 0xea, 0xc1, 0x19, 0x6a, 0x72, 0x71, 0x10, 0xac, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0x32, 0x20, 0xd0, 0xe5, 0x0e, 0x2b, 0xb4, 0x87, 0x34, 0xdc, 0xb0, 0x1b, 0xbc, 0x3c, 0x2a, 0x60, 0x85, 0x5d, 0xb8, 0x0d, 0x8d, 0x04, 0x0f, 0x5e, 0x21, 0x15, 0xb0, 0xc1, 0x2b, 0xa4, 0x02, 0x0e, 0xa7, 0xd8, 0x20, 0xd8, 0xe0, 0x99, 0x83, 0x0d, 0x87, 0x16, 0x60, 0xc3, 0x6e, 0xf0, 0x72, 0xa1, 0x80, 0x15, 0x76, 0xe1, 0x36, 0x34, 0x12, 0x3c, 0x78, 0xc5, 0x50, 0xc0, 0x06, 0xaf, 0x18, 0x0a, 0x38, 0x9c, 0x62, 0x07, 0xef, 0x43, 0x6c, 0x18, 0x76, 0x83, 0xc7, 0x3c, 0x05, 0xac, 0xb0, 0x0b, 0xb7, 0xa1, 0x91, 0xe0, 0xc1, 0xc3, 0x9e, 0x02, 0x36, 0x78, 0xd8, 0x53, 0xc0, 0xe1, 0x14, 0x3b, 0x78, 0x1f, 0x62, 0xc3, 0xc2, 0x2e, 0xdc, 0x86, 0x46, 0x82, 0x07, 0xaf, 0x3c, 0x0a, 0xd8, 0xe0, 0x95, 0x47, 0x01, 0x87, 0x53, 0x6c, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0xd8, 0x60, 0x1d, 0x27, 0xd8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x30, 0x5c, 0x07, 0x01, 0xef, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0x40, 0xa2, 0xbb, 0xdc, 0x61, 0x85, 0x76, 0xf8, 0x8d, 0xe7, 0x07, 0x0f, 0x21, 0x6c, 0x38, 0x0e, 0x1d, 0x87, 0x0e, 0x2d, 0xc0, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x2b, 0x08, 0x36, 0x58, 0xaa, 0x1c, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x95, 0x56, 0xf8, 0xe1, 0x37, 0x9e, 0x2f, 0x0e, 0xb2, 0x0d, 0x71, 0x19, 0x04, 0x1b, 0x34, 0x1a, 0x0b, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0xfc, 0xf5, 0x77, 0x3c, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x96, 0x6d, 0xe1, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x7e, 0x83, 0x96, 0x02, 0xe1, 0x0f, 0xda, 0xb5, 0x5f, 0x3a, 0x58, 0x75, 0x25, 0x73, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x8f, 0x43, 0x83, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x2c, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x01, 0xe9, 0xee, 0x6a, 0x87, 0xe4, 0xd2, 0x41, 0x7a, 0xd1, 0xc5, 0x20, 0x58, 0x90, 0x0c, 0xce, 0x1d, 0x0c, 0x43, 0x9f, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x76, 0xc3, 0x5a, 0xe8, 0x06, 0xe3, 0x5f, 0x72, 0x10, 0x6c, 0xd0, 0x4c, 0xc4, 0xfc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0xc0, 0xf1, 0x77, 0x58, 0xa1, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0x1d, 0x1c, 0x8c, 0x2c, 0xab, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xbb, 0xc1, 0x38, 0x64, 0xda, 0x90, 0x3a, 0x18, 0x04, 0x1b, 0xac, 0x28, 0xb7, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0xd5, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x36, 0x28, 0xfc, 0x83, 0x0e, 0x86, 0xa3, 0xf4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x96, 0x86, 0x8f, 0x1d, 0x14, 0x27, 0x16, 0x87, 0xbd, 0xc2, 0xe3, 0xd0, 0x71, 0xe8, 0x78, 0x7c, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x61, 0x37, 0x18, 0x87, 0x4c, 0x1b, 0x16, 0xf9, 0x06, 0xc1, 0x82, 0x60, 0x83, 0x97, 0xa7, 0x12, 0x1c, 0x1a, 0xb5, 0x0c, 0x82, 0x15, 0x04, 0x0b, 0x92, 0x0d, 0x8a, 0xe8, 0xae, 0x83, 0x93, 0xd0, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xe2, 0xb7, 0xe0, 0x90, 0x3a, 0x38, 0x0e, 0x0d, 0x82, 0x0d, 0x96, 0x9f, 0x90, 0x1d, 0xbc, 0x27, 0xb8, 0x61, 0x10, 0x2c, 0x08, 0x16, 0x24, 0x03, 0xc7, 0xdf, 0xc1, 0x78, 0xd7, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x6a, 0xb7, 0xc7, 0xc1, 0x30, 0x76, 0x38, 0x58, 0xfc, 0x3a, 0x76, 0x1c, 0x1a, 0x76, 0x83, 0x51, 0x2f, 0xb9, 0x21, 0x86, 0x1b, 0x62, 0x38, 0x08, 0x36, 0x78, 0x81, 0xac, 0xc1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x1e, 0xb8, 0x2b, 0x70, 0xe8, 0xa0, 0x71, 0x18, 0x97, 0xe3, 0xd0, 0xf1, 0xf8, 0x38, 0x34, 0xec, 0x06, 0xad, 0xf3, 0x01, 0x2c, 0xc8, 0xd6, 0xa0, 0x2d, 0x90, 0x95, 0x0d, 0x31, 0x1c, 0x04, 0x0b, 0x92, 0x81, 0xf4, 0xcf, 0x41, 0x90, 0xf3, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0xe1, 0x39, 0x08, 0x72, 0xfe, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0xc7, 0x35, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0xcd, 0x41, 0x2b, 0x24, 0xc7, 0x07, 0xad, 0x90, 0x1c, 0x1f, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0x10, 0x6c, 0xd0, 0xd6, 0xe4, 0xfb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x77, 0xf6, 0x0d, 0x0c, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0xd7, 0x0b, 0x0e, 0x0c, 0x82, 0x0d, 0xda, 0x32, 0x74, 0x3f, 0x78, 0x29, 0xe1, 0xc0, 0x71, 0xe8, 0x78, 0xbc, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x87, 0x5f, 0x10, 0x2c, 0x08, 0x36, 0x58, 0x4c, 0x3b, 0x33, 0x48, 0x06, 0x84, 0xdd, 0xdf, 0x41, 0x9b, 0xed, 0x25, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x16, 0x99, 0xeb, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0x5c, 0x5e, 0xca, 0xa1, 0x51, 0xcb, 0x71, 0xe8, 0x78, 0x7e, 0x3c, 0x5e, 0xf8, 0x05, 0xc1, 0x06, 0x05, 0xb5, 0xd8, 0xe2, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x06, 0x94, 0xfe, 0x5d, 0x87, 0x15, 0xda, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x0d, 0x0f, 0xbe, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x82, 0x64, 0x83, 0x35, 0x7a, 0x24, 0x87, 0x15, 0xda, 0x83, 0x97, 0xa7, 0x37, 0x0c, 0xbf, 0xf1, 0x7c, 0xf8, 0x0d, 0x96, 0xc1, 0x0b, 0x1c, 0xb4, 0x4f, 0xfc, 0x7e, 0x1c, 0x3a, 0x0e, 0x1d, 0x1a, 0xb5, 0x1c, 0x8f, 0x07, 0xd9, 0x1a, 0xd2, 0x40, 0xe3, 0x06, 0x0d, 0xb4, 0x1e, 0x1f, 0x52, 0x4b, 0xc7, 0xe3, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0x08, 0x36, 0x58, 0x06, 0x2f, 0x30, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xbb, 0x41, 0xd0, 0xeb, 0x6f, 0x88, 0xe6, 0xc1, 0xf8, 0xe9, 0xda, 0x90, 0xaf, 0x1d, 0x7e, 0xe3, 0xf9, 0xb0, 0x1b, 0x04, 0xbd, 0xfe, 0x41, 0x39, 0x0c, 0x76, 0x1c, 0x3a, 0x1e, 0x2f, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0x06, 0xcb, 0xe0, 0x05, 0x06, 0xd9, 0x1a, 0xf2, 0xd8, 0x8b, 0x83, 0x60, 0x41, 0x32, 0x90, 0xfe, 0x39, 0x64, 0x2b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0xf0, 0x1c, 0xb2, 0x15, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x2f, 0x1e, 0xb4, 0x22, 0xf1, 0x7f, 0x88, 0xff, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x1e, 0x04, 0x0b, 0x92, 0x81, 0xa2, 0x75, 0xc8, 0x56, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x81, 0x4f, 0xfa, 0xb0, 0xc7, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x50, 0xfa, 0x77, 0x1d, 0xb2, 0x15, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xda, 0xe0, 0x8f, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x05, 0xc9, 0x06, 0x6b, 0xf4, 0x48, 0x0e, 0xd9, 0x8a, 0x83, 0x27, 0x1b, 0x38, 0x0c, 0xbf, 0xf1, 0x7c, 0xf8, 0x05, 0xd1, 0x82, 0xe9, 0x21, 0x6b, 0x77, 0x1c, 0x3a, 0x68, 0x9f, 0xf8, 0xfd, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x24, 0x03, 0xb7, 0xd6, 0x61, 0x85, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x55, 0x33, 0xfc, 0xc6, 0xf3, 0x83, 0xa6, 0xb6, 0x49, 0x8e, 0x43, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x0d, 0x1e, 0xc7, 0xe0, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xaa, 0x19, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x2c, 0x83, 0x17, 0x38, 0x58, 0xbd, 0x89, 0x76, 0x1c, 0x3a, 0x1e, 0x2f, 0x08, 0x36, 0x58, 0xcd, 0x71, 0xb4, 0x38, 0xc8, 0xd6, 0xa0, 0x2d, 0x90, 0x95, 0x0d, 0x31, 0xdc, 0x90, 0xfb, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x1c, 0x0f, 0xda, 0xd3, 0x42, 0x3e, 0xbe, 0x0d, 0x82, 0x05, 0xc1, 0x06, 0xcd, 0xe5, 0xa5, 0x1c, 0x3a, 0x68, 0x0c, 0xb2, 0x35, 0x68, 0x0b, 0x64, 0x65, 0x43, 0x0c, 0x37, 0xe4, 0xbe, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0xc7, 0x83, 0xa6, 0xd4, 0x90, 0x8f, 0x6f, 0xc3, 0x2f, 0x08, 0x16, 0x04, 0x1b, 0x34, 0x7d, 0xcf, 0x34, 0x48, 0x06, 0x84, 0xdd, 0xdf, 0x61, 0xcf, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x22, 0x73, 0xfd, 0x43, 0xea, 0xe0, 0x38, 0x34, 0xc8, 0xd6, 0xa0, 0x2d, 0x90, 0x95, 0x0d, 0x31, 0xdc, 0x90, 0xfb, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x1c, 0x0f, 0xda, 0xb8, 0x43, 0x3e, 0xbe, 0x1d, 0x8f, 0x8f, 0xc7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x06, 0x87, 0x54, 0xf5, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x54, 0xcd, 0xf0, 0x1b, 0xcf, 0x07, 0xe1, 0xe2, 0x40, 0x24, 0x36, 0xd4, 0xf1, 0x83, 0x03, 0x4d, 0xdf, 0x62, 0xf0, 0x63, 0xf8, 0x20, 0xd8, 0x60, 0xc9, 0xf7, 0xd7, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xaa, 0x66, 0xf8, 0x8d, 0xe7, 0xe3, 0x41, 0xea, 0x9a, 0xf7, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x5e, 0xe1, 0x17, 0x04, 0x1b, 0xac, 0x69, 0x39, 0x5a, 0x5c, 0xd8, 0x85, 0xdd, 0xd0, 0x71, 0x64, 0x43, 0x1e, 0xeb, 0x70, 0xb4, 0x6f, 0xd0, 0x8c, 0x0a, 0xfe, 0xb0, 0x0b, 0xbb, 0xa1, 0xe3, 0xc8, 0x06, 0x6b, 0x43, 0x90, 0x0e, 0x47, 0xfb, 0x06, 0xe3, 0x13, 0x6e, 0xd8, 0x85, 0xdd, 0xd0, 0x71, 0x64, 0x83, 0xa5, 0x9b, 0x48, 0x87, 0xa3, 0x7d, 0xc3, 0xd6, 0xc1, 0xb0, 0x0b, 0xbb, 0xa1, 0xe3, 0xc8, 0xc2, 0x6e, 0xb0, 0x3c, 0x5e, 0xe9, 0xa0, 0x61, 0x84, 0x91, 0xc3, 0xd1, 0xbe, 0x41, 0xe0, 0x78, 0x0f, 0xbb, 0x41, 0x13, 0x39, 0x2a, 0x0b, 0x92, 0x61, 0x0e, 0x16, 0xd4, 0xed, 0x1c, 0xb4, 0x45, 0xc8, 0xb4, 0xb0, 0x1b, 0x3c, 0xcd, 0xc5, 0x61, 0x0d, 0x96, 0xca, 0x2b, 0x6d, 0xd0, 0xb4, 0x0a, 0xfe, 0x21, 0x86, 0xc3, 0x2e, 0xec, 0x86, 0x8e, 0x23, 0x1b, 0xac, 0x62, 0x3a, 0x3a, 0x1c, 0xed, 0x0b, 0x82, 0x05, 0xc9, 0xe0, 0xdb, 0x21, 0xb9, 0x34, 0x48, 0x06, 0xe6, 0xef, 0xd0, 0xbe, 0x65, 0xd8, 0x85, 0xdd, 0xd0, 0x71, 0x64, 0x83, 0xf5, 0x60, 0x47, 0x87, 0xa3, 0x7d, 0x41, 0xb0, 0xc1, 0xd3, 0x7a, 0x1c, 0x06, 0xc9, 0xe0, 0xd6, 0x20, 0x5a, 0xd8, 0x0d, 0x1a, 0x53, 0x92, 0x3f, 0xe4, 0x6b, 0x8f, 0x43, 0xc3, 0x2e, 0xec, 0x86, 0x8e, 0x23, 0x1b, 0xac, 0x27, 0x5f, 0x3a, 0x1c, 0xed, 0x0b, 0x82, 0x0d, 0x9e, 0xd6, 0xe3, 0x30, 0x48, 0x06, 0xe6, 0xef, 0xd0, 0x57, 0x63, 0xd8, 0x0d, 0x9a, 0xc8, 0x51, 0xd9, 0x20, 0x28, 0xbd, 0x87, 0x5d, 0xd8, 0x0d, 0x1d, 0x47, 0x36, 0x58, 0xac, 0x78, 0x74, 0x38, 0xda, 0x17, 0x64, 0x6b, 0xc8, 0x63, 0x2f, 0x0e, 0x82, 0x0d, 0x56, 0x98, 0x01, 0x1d, 0xf6, 0x78, 0x8f, 0xc7, 0x87, 0x53, 0x6c, 0xd8, 0x85, 0xdd, 0xd0, 0x71, 0x64, 0x83, 0xf5, 0xe9, 0x47, 0x87, 0xa3, 0x7d, 0x0d, 0xd6, 0xa5, 0x37, 0x2d, 0x6e, 0xf8, 0xdc, 0x65, 0x70, 0xfb, 0x78, 0xbc, 0xc1, 0x2a, 0xbb, 0xa4, 0x0d, 0x96, 0xbb, 0x2d, 0x2d, 0x6e, 0xf8, 0x0a, 0x67, 0xc3, 0x07, 0x39, 0x6b, 0x50, 0x54, 0x64, 0x1e, 0x9e, 0x5b, 0xdd, 0xa0, 0xa0, 0xc8, 0x5c, 0xc3, 0xe7, 0x2e, 0x83, 0xa7, 0x07, 0x4d, 0x8a, 0xf7, 0x6f, 0xf8, 0xdc, 0x65, 0x70, 0xfa, 0x60, 0xf9, 0xf1, 0xf6, 0x20, 0x58, 0x1c, 0x76, 0xc3, 0x0a, 0xea, 0x06, 0xed, 0x4c, 0xd0, 0x0f, 0x82, 0x05, 0xc9, 0x90, 0x83, 0x46, 0x9b, 0x5e, 0x86, 0xdd, 0xa0, 0x55, 0xd9, 0xa4, 0xd5, 0x60, 0xa9, 0x16, 0xd2, 0x06, 0x0d, 0xe9, 0x3b, 0x1d, 0x5a, 0x00, 0x1d, 0x87, 0x36, 0x58, 0xf0, 0xe0, 0xb4, 0x1a, 0x2c, 0x6a, 0x5d, 0xda, 0xe0, 0x1c, 0xb9, 0xbb, 0xc1, 0x72, 0xb7, 0xa5, 0x0d, 0x1a, 0x91, 0x72, 0xdf, 0x60, 0x5d, 0x7a, 0xd3, 0xe2, 0x06, 0xab, 0x45, 0x90, 0xc2, 0xed, 0x83, 0x62, 0x0f, 0x62, 0x83, 0x45, 0xad, 0x4b, 0x1b, 0xa4, 0x2d, 0x50, 0x1f, 0x87, 0xc6, 0x0d, 0x5f, 0xe1, 0x6c, 0x50, 0x10, 0xcc, 0x6e, 0x78, 0x70, 0x67, 0x0d, 0x56, 0x8b, 0x20, 0x85, 0x8b, 0x6b, 0x78, 0x50, 0x72, 0xe3, 0xd0, 0x06, 0xab, 0x45, 0x90, 0xc2, 0xc3, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x0f, 0xee, 0x6c, 0x78, 0x50, 0x72, 0xe3, 0xf9, 0xc1, 0x7b, 0xc6, 0x1c, 0x3a, 0xbe, 0x0d, 0xbb, 0xb0, 0x1b, 0x3a, 0x8e, 0x6c, 0x50, 0xca, 0xfa, 0x1d, 0x8e, 0xf6, 0x0d, 0xde, 0xd2, 0xe3, 0x30, 0xec, 0x06, 0x6f, 0x83, 0x71, 0x58, 0x83, 0xa5, 0xf2, 0x4a, 0x1b, 0x8c, 0x59, 0xb8, 0x43, 0x0c, 0x87, 0x5d, 0xd8, 0x0d, 0x1d, 0x47, 0x36, 0x58, 0x8f, 0x86, 0x74, 0x38, 0xda, 0xd7, 0x60, 0xbd, 0xa4, 0xd2, 0xe2, 0x06, 0xab, 0x45, 0x90, 0x0e, 0x9a, 0x1a, 0x0b, 0x5c, 0x83, 0xa5, 0x71, 0x4f, 0x1b, 0x2c, 0xc7, 0x51, 0x3a, 0x8c, 0xcb, 0x21, 0x86, 0xc3, 0x6e, 0xf0, 0x44, 0x19, 0x87, 0x35, 0x58, 0x2a, 0xaf, 0x74, 0x30, 0x66, 0xe1, 0x86, 0x5d, 0xd8, 0x0d, 0x1d, 0x47, 0x36, 0x58, 0xd2, 0x8a, 0x74, 0x38, 0xda, 0xd7, 0x60, 0xbd, 0xa4, 0xd2, 0xe2, 0x06, 0xab, 0x45, 0x90, 0x0e, 0x1a, 0x1e, 0xb1, 0x3c, 0x78, 0x94, 0x9b, 0xc3, 0xb0, 0x1b, 0xb4, 0x9e, 0x9e, 0xb2, 0x41, 0x50, 0x7a, 0x0f, 0xbb, 0xb0, 0x1b, 0x3a, 0x8e, 0x6c, 0xb0, 0xca, 0x1a, 0xe9, 0x70, 0xb4, 0x2f, 0x08, 0x16, 0x04, 0x1b, 0x2c, 0x04, 0x06, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xe8, 0x21, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x83, 0x16, 0x64, 0xe4, 0x37, 0x58, 0x5d, 0x64, 0xb5, 0x21, 0x55, 0xb3, 0xc1, 0x22, 0x12, 0xab, 0x8d, 0x43, 0x1b, 0x2c, 0xe0, 0xad, 0xda, 0x38, 0x74, 0x1c, 0x3a, 0x1e, 0x1f, 0x87, 0x86, 0xdd, 0x60, 0xd4, 0x4b, 0x6e, 0x38, 0xc5, 0x36, 0x58, 0x7b, 0x99, 0xb4, 0x06, 0x8b, 0xf6, 0xaa, 0x8e, 0x43, 0x83, 0x60, 0x71, 0xd8, 0x85, 0xdd, 0x60, 0xd9, 0xfa, 0xff, 0xc2, 0x6d, 0xb0, 0xd8, 0x8f, 0xea, 0xd0, 0x74, 0xe8, 0x70, 0xb4, 0xaf, 0xc1, 0x12, 0xdc, 0xa3, 0x0d, 0x92, 0x35, 0x10, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xe0, 0xfb, 0x41, 0xa2, 0xa7, 0xc2, 0xf1, 0x78, 0x83, 0xb5, 0xe5, 0x4b, 0x87, 0x86, 0x5f, 0xc7, 0xb7, 0x61, 0x17, 0x76, 0x43, 0xc7, 0x91, 0x0d, 0x56, 0xec, 0x23, 0x1d, 0x8e, 0xf6, 0x35, 0x58, 0xf0, 0xe0, 0xb4, 0x41, 0xbb, 0x81, 0x29, 0x1b, 0x2c, 0xcf, 0x49, 0xda, 0x10, 0xc3, 0x41, 0xb0, 0x20, 0xd8, 0x60, 0x08, 0x40, 0x0e, 0x92, 0x81, 0xf2, 0x77, 0xe8, 0x89, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0xdc, 0x10, 0xcd, 0x41, 0xb0, 0x20, 0xd8, 0x60, 0xc8, 0x59, 0x0f, 0x92, 0x81, 0xf2, 0x77, 0xe8, 0xab, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0x4d, 0xcb, 0xd1, 0xe2, 0xb0, 0x1b, 0xb4, 0x16, 0xf6, 0xb4, 0x21, 0x75, 0xb0, 0xc1, 0x1a, 0x17, 0xa7, 0x95, 0x20, 0xb1, 0x7f, 0x88, 0xe1, 0x12, 0x64, 0xf6, 0x0f, 0xda, 0x53, 0x7b, 0x3a, 0x1e, 0x1f, 0x87, 0x8e, 0xc7, 0xc7, 0xa1, 0x61, 0x17, 0x76, 0x43, 0xc7, 0x91, 0x0d, 0x96, 0x9f, 0x24, 0x1d, 0x8e, 0xf6, 0x35, 0x58, 0xf0, 0xe0, 0xb4, 0xa1, 0x91, 0xe0, 0x06, 0x8b, 0xaa, 0x92, 0x0e, 0x82, 0xd2, 0x7b, 0xd8, 0x85, 0xdd, 0xd0, 0x71, 0x64, 0x83, 0x85, 0x54, 0x49, 0x87, 0xa3, 0x7d, 0x0d, 0x96, 0xe7, 0x24, 0x6d, 0x88, 0xe1, 0x20, 0x58, 0x10, 0x2c, 0x08, 0x36, 0x18, 0x02, 0x90, 0x83, 0x64, 0x60, 0xa8, 0x0e, 0x86, 0x2e, 0xd5, 0xc1, 0xa8, 0xc2, 0xde, 0xe0, 0x84, 0xb2, 0x7b, 0x48, 0x4c, 0x0d, 0xbb, 0xb0, 0x1b, 0x3a, 0x8e, 0x6c, 0xb0, 0x7e, 0x2c, 0xe9, 0x70, 0xb4, 0xaf, 0xc1, 0x7a, 0xe5, 0xa6, 0x0d, 0x1a, 0x91, 0x72, 0xdf, 0x60, 0x79, 0x4e, 0xd2, 0x86, 0x18, 0x0e, 0x82, 0x05, 0xc1, 0x82, 0x60, 0x83, 0x21, 0x00, 0x39, 0x48, 0x06, 0x8a, 0xdf, 0xa1, 0x31, 0xd8, 0x41, 0x8a, 0xf2, 0xf3, 0xb0, 0x1b, 0x8c, 0x7a, 0xc9, 0x05, 0xc1, 0x82, 0x60, 0x83, 0x21, 0x34, 0x39, 0x48, 0x06, 0x86, 0xea, 0x60, 0x75, 0x2a, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x81, 0x1f, 0x32, 0xfc, 0xc6, 0xf3, 0x0d, 0x31, 0xdc, 0x20, 0x00, 0x9f, 0x0f, 0x89, 0xa9, 0xe3, 0xd0, 0x20, 0xd8, 0xe0, 0x05, 0xa9, 0x0e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x06, 0x7e, 0xc8, 0xf0, 0x1b, 0xcf, 0x37, 0x08, 0xb2, 0xf8, 0x41, 0xb0, 0x20, 0xd8, 0x60, 0x08, 0x4d, 0x0e, 0x92, 0x81, 0xa1, 0x1a, 0x44, 0x1b, 0xac, 0xaf, 0xdb, 0x39, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xf8, 0x21, 0x87, 0x16, 0x40, 0xc7, 0xa1, 0xe3, 0xd0, 0xb0, 0x0b, 0xbb, 0xa1, 0xe3, 0xc8, 0x06, 0x2b, 0xeb, 0x92, 0x0e, 0x47, 0xfb, 0x1a, 0xac, 0x57, 0x6e, 0xda, 0xa0, 0x11, 0x29, 0xf7, 0x0d, 0x16, 0x55, 0x25, 0x1d, 0xc6, 0x65, 0xd8, 0x85, 0xdd, 0xd0, 0x71, 0x64, 0x83, 0xa5, 0x84, 0x49, 0x87, 0xa3, 0x7d, 0x0d, 0xd6, 0x3f, 0x2d, 0x6d, 0xb0, 0xe2, 0x34, 0xe9, 0x60, 0x84, 0xa7, 0x0d, 0xbb, 0xb0, 0x1b, 0x3a, 0x8e, 0x6c, 0xb0, 0xde, 0x32, 0xe9, 0x70, 0xb4, 0xaf, 0xc1, 0x82, 0x07, 0xa7, 0x0d, 0xda, 0x0d, 0x4c, 0xd9, 0x60, 0x89, 0x6d, 0xd2, 0x86, 0x18, 0x0e, 0x82, 0x05, 0xc1, 0x06, 0xaf, 0xf7, 0x74, 0x38, 0x38, 0x66, 0xf7, 0x1e, 0x3c, 0x22, 0xd4, 0x61, 0xd8, 0x85, 0xdd, 0xd0, 0x71, 0x64, 0x83, 0x55, 0xa6, 0x49, 0x87, 0xa3, 0x7d, 0x0d, 0x56, 0xef, 0x23, 0x6d, 0x68, 0x24, 0x38, 0x08, 0x36, 0x78, 0xf2, 0xaf, 0xc3, 0x86, 0x18, 0x1e, 0x3c, 0x22, 0xd4, 0x61, 0xd8, 0x85, 0xdd, 0xd0, 0x71, 0x64, 0x83, 0xc5, 0xc4, 0x49, 0x87, 0xa3, 0x7d, 0x0d, 0x96, 0x11, 0x2f, 0x1d, 0x3c, 0xfc, 0xd6, 0x61, 0xd8, 0x85, 0xdd, 0xd0, 0x71, 0x64, 0x83, 0x25, 0xe4, 0x49, 0x87, 0xa3, 0x7d, 0x83, 0x54, 0xb9, 0x8c, 0x61, 0x17, 0x76, 0x43, 0xc7, 0x91, 0x0d, 0xd6, 0x49, 0x28, 0x1d, 0x8e, 0xf6, 0x35, 0x34, 0x12, 0x3c, 0x38, 0x23, 0xc0, 0x0f, 0xbb, 0xb0, 0x1b, 0x3a, 0x8e, 0x6c, 0xb0, 0x80, 0x3a, 0xe9, 0x70, 0xb4, 0xaf, 0x41, 0x50, 0x7a, 0x1f, 0x1a, 0x09, 0x0e, 0xbb, 0xb0, 0x1b, 0x3a, 0x8e, 0x6c, 0xb0, 0x62, 0x40, 0xe9, 0x70, 0xb4, 0x6f, 0x30, 0xc2, 0xd3, 0x86, 0xdd, 0xe0, 0xe1, 0xbb, 0x04, 0x0b, 0x82, 0xc5, 0x61, 0x37, 0xac, 0xa0, 0x6e, 0xd0, 0xda, 0xe0, 0xfc, 0x86, 0x1e, 0x42, 0x07, 0x4f, 0xb7, 0x72, 0x38, 0xbe, 0x0d, 0xbb, 0xb0, 0x1b, 0x3a, 0x8e, 0x6c, 0xb0, 0x04, 0x47, 0xe9, 0x70, 0xb4, 0x2f, 0x08, 0x16, 0x87, 0xdd, 0xb0, 0x82, 0xba, 0xc1, 0x9a, 0x96, 0xa3, 0x61, 0x37, 0x08, 0x92, 0xe6, 0x0d, 0x3d, 0x84, 0x0e, 0xde, 0x41, 0xed, 0x70, 0x7c, 0x1b, 0x76, 0x61, 0x37, 0x74, 0x1c, 0xd9, 0x60, 0xc9, 0xf4, 0xd2, 0xe1, 0x68, 0x5f, 0x83, 0x25, 0x9d, 0x4b, 0x83, 0x60, 0x83, 0xa7, 0xf5, 0x38, 0x1c, 0x34, 0x1e, 0x08, 0x35, 0xec, 0xc2, 0x6e, 0xe8, 0x38, 0xb2, 0xc1, 0x9a, 0x23, 0xa5, 0xc3, 0xd1, 0xbe, 0x06, 0xcb, 0xdd, 0x96, 0xd6, 0x60, 0x19, 0x27, 0xd2, 0xa1, 0x91, 0xe0, 0x06, 0x4b, 0xe5, 0x95, 0x0e, 0x46, 0x78, 0xda, 0xb0, 0x0b, 0xbb, 0xa1, 0xe3, 0xc8, 0x06, 0xab, 0xe6, 0x94, 0x0e, 0x47, 0xfb, 0x1a, 0xac, 0x97, 0x54, 0x3a, 0x78, 0x32, 0x16, 0xc3, 0xb0, 0x0b, 0xbb, 0xa1, 0xe3, 0xc8, 0x06, 0x6b, 0x78, 0x95, 0x0e, 0x47, 0xfb, 0x1a, 0xac, 0x97, 0x54, 0x3a, 0x78, 0x26, 0x0e, 0xc3, 0xb0, 0x0b, 0xbb, 0xa1, 0xe3, 0xc8, 0x06, 0xab, 0x98, 0x95, 0x0e, 0x47, 0xfb, 0x1a, 0xac, 0x97, 0x54, 0x3a, 0x78, 0xe7, 0x10, 0xc3, 0xb0, 0x0b, 0xbb, 0xa1, 0xe3, 0xc8, 0x06, 0x8b, 0x05, 0x95, 0x0e, 0x47, 0xfb, 0x1a, 0xac, 0x97, 0x54, 0x3a, 0x78, 0xb3, 0x13, 0xc3, 0xb0, 0x0b, 0xbb, 0xa1, 0xe3, 0xc8, 0x06, 0x6b, 0x24, 0x95, 0x0e, 0x47, 0xfb, 0x1a, 0xac, 0xe3, 0x56, 0xda, 0x90, 0x98, 0x3a, 0x18, 0xe1, 0x69, 0xc3, 0x2e, 0xec, 0x86, 0x8e, 0x23, 0x1b, 0xac, 0xdd, 0x56, 0x3a, 0x1c, 0xed, 0x6b, 0xb0, 0xd4, 0x54, 0x69, 0x43, 0x23, 0xc1, 0x0d, 0x9d, 0xd4, 0x06, 0xc1, 0x06, 0xa3, 0xf9, 0x7c, 0x10, 0x2c, 0x0e, 0xbb, 0x70, 0x1b, 0x62, 0x78, 0x68, 0x74, 0xb4, 0x21, 0x86, 0xc3, 0x2e, 0xdc, 0x86, 0x18, 0x1e, 0x24, 0x7a, 0x2a, 0xac, 0x1a, 0x1c, 0xf7, 0x3b, 0x0e, 0x06, 0xaa, 0xda, 0x41, 0xb2, 0x06, 0xc2, 0x21, 0x86, 0xab, 0xc1, 0x71, 0xbf, 0x63, 0x0d, 0x31, 0x1c, 0x04, 0x1b, 0xac, 0x4e, 0x4a, 0x39, 0x74, 0x8c, 0x3f, 0xc4, 0xf0, 0x20, 0x59, 0x03, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xc4, 0xfd, 0x20, 0xd1, 0x53, 0x61, 0x10, 0x2d, 0xec, 0x20, 0xd8, 0x60, 0x75, 0x52, 0xca, 0x41, 0x5a, 0xe6, 0xc7, 0xf1, 0xf8, 0xf8, 0x36, 0xec, 0xc2, 0x6e, 0xe8, 0x38, 0xb2, 0xc1, 0xf2, 0x52, 0xa5, 0xc3, 0xd1, 0xbe, 0xb0, 0x1b, 0x1c, 0x8f, 0xd7, 0xd7, 0x60, 0x5d, 0x7a, 0xd3, 0x86, 0x4e, 0x6a, 0x07, 0x8f, 0xff, 0x76, 0xd8, 0x60, 0xc1, 0x83, 0xd3, 0x86, 0x4e, 0x6a, 0x1b, 0x2c, 0x95, 0x57, 0x5a, 0x10, 0x6c, 0xb0, 0xe4, 0xfb, 0x6b, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xa1, 0x87, 0xd0, 0xf0, 0x1b, 0xcf, 0x0f, 0x96, 0x00, 0xeb, 0x1f, 0x87, 0x06, 0xc1, 0x06, 0x0b, 0x81, 0x81, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x9a, 0x25, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0xd0, 0xda, 0x6a, 0x71, 0x43, 0x34, 0x37, 0x58, 0x97, 0xde, 0xb4, 0x41, 0x2a, 0x71, 0xc7, 0x61, 0x5c, 0x8e, 0xc7, 0xc7, 0xa1, 0x61, 0x17, 0x76, 0x43, 0xc7, 0x91, 0x0d, 0xd6, 0x7a, 0x2d, 0x1d, 0x8e, 0xf6, 0x35, 0x58, 0xee, 0xb6, 0xb4, 0xc1, 0x8b, 0xd7, 0x1d, 0x0e, 0x82, 0xd2, 0x7b, 0xd8, 0x85, 0xdd, 0xd0, 0x71, 0x64, 0x83, 0x35, 0x7d, 0x4b, 0x87, 0xa3, 0x7d, 0x0d, 0x96, 0xbb, 0x2d, 0x2d, 0x08, 0x36, 0x78, 0x5a, 0x8f, 0xc3, 0x20, 0x19, 0xdc, 0x3a, 0xb4, 0x0a, 0x3a, 0x08, 0x4a, 0xef, 0x61, 0x17, 0x76, 0x43, 0xc7, 0x91, 0x0d, 0x16, 0xb2, 0x2e, 0x1d, 0x8e, 0xf6, 0x05, 0xc1, 0x82, 0x64, 0x60, 0xf4, 0x0e, 0x16, 0xd4, 0xed, 0x1c, 0x9a, 0x02, 0x0d, 0xbb, 0xb0, 0x1b, 0x3a, 0x8e, 0x6c, 0xb0, 0x80, 0x7e, 0xe9, 0x70, 0xb4, 0xaf, 0xc1, 0x62, 0x37, 0xa6, 0x35, 0x58, 0xe5, 0xf3, 0x33, 0x08, 0x16, 0x04, 0x1b, 0x8c, 0xed, 0x99, 0x41, 0x32, 0x30, 0x7b, 0x87, 0x56, 0x41, 0xc3, 0x6e, 0xd0, 0x3a, 0x1f, 0xc0, 0x1a, 0x2c, 0xaa, 0x4a, 0xda, 0x60, 0xbd, 0xa4, 0xd2, 0x06, 0x2f, 0xa0, 0x73, 0x58, 0x83, 0xa5, 0x71, 0x4f, 0x1b, 0xac, 0x4b, 0x6f, 0xda, 0x20, 0x95, 0xb8, 0xe3, 0xd0, 0x43, 0xe8, 0x10, 0xc3, 0x0d, 0x16, 0x1d, 0x21, 0x6d, 0x90, 0x16, 0x9a, 0x7d, 0x10, 0x02, 0xe0, 0x07, 0x41, 0xe9, 0x3d, 0xec, 0xc2, 0x6e, 0xe8, 0x38, 0xb2, 0xc1, 0x12, 0x02, 0xa6, 0xc3, 0xd1, 0xbe, 0x06, 0x8b, 0xdd, 0x98, 0xd6, 0x60, 0x95, 0xcf, 0xcf, 0x06, 0x8b, 0xaa, 0x92, 0x0e, 0x8d, 0x04, 0x0f, 0x82, 0xd2, 0x7b, 0xd8, 0x85, 0xdd, 0xd0, 0x71, 0x64, 0x83, 0x35, 0x13, 0x4c, 0x87, 0xa3, 0x7d, 0x0d, 0xd6, 0x20, 0x31, 0xad, 0x78, 0x48, 0x03, 0x6d, 0xb0, 0x66, 0x42, 0x69, 0x0d, 0x16, 0x1d, 0x21, 0x1d, 0x04, 0x8e, 0xf7, 0x1a, 0x2c, 0x10, 0x7d, 0x3a, 0x74, 0x52, 0xdb, 0x60, 0x5d, 0x8a, 0xd2, 0x20, 0xd8, 0x10, 0xc3, 0x41, 0xb0, 0x38, 0xec, 0x06, 0xad, 0x75, 0x29, 0x6d, 0x48, 0x1d, 0xac, 0x06, 0x8b, 0x8e, 0x90, 0x36, 0xc4, 0x70, 0x82, 0xc3, 0x7d, 0x83, 0x05, 0xa2, 0x4f, 0x13, 0x5c, 0xee, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x60, 0xdc, 0x0f, 0x96, 0x2e, 0xdd, 0x1c, 0x8f, 0x8f, 0x6f, 0x07, 0x67, 0xf5, 0xf3, 0x61, 0x17, 0x76, 0x43, 0xc7, 0x91, 0x0d, 0xd6, 0xd8, 0x30, 0x1d, 0x8e, 0xf6, 0x35, 0x58, 0x3f, 0xc1, 0xb4, 0xa1, 0x91, 0xe0, 0x06, 0xe9, 0xb9, 0x31, 0x07, 0xa3, 0x1e, 0x6d, 0xd8, 0x85, 0xdd, 0xd0, 0x71, 0x64, 0x83, 0x75, 0x47, 0x4c, 0x87, 0xa3, 0x7d, 0x0d, 0xd6, 0x2b, 0x37, 0xad, 0xc1, 0x62, 0x37, 0xa6, 0x0d, 0x8d, 0x04, 0x0f, 0x86, 0x22, 0xd2, 0x41, 0x50, 0x7a, 0x0f, 0xbb, 0xb0, 0x1b, 0x3a, 0x8e, 0x6c, 0xb0, 0xae, 0x8f, 0xe9, 0x70, 0xb4, 0xaf, 0xc1, 0x62, 0x37, 0xa6, 0x15, 0x0f, 0x5a, 0x90, 0x61, 0x3e, 0x78, 0x78, 0xca, 0xc3, 0x41, 0x50, 0x7a, 0x0f, 0xbb, 0xb0, 0x1b, 0x3a, 0x8e, 0x6c, 0xb0, 0xf8, 0x91, 0xe9, 0x70, 0xb4, 0xaf, 0xc1, 0x62, 0x37, 0xa6, 0x15, 0x0f, 0x91, 0x39, 0x78, 0x78, 0xca, 0xc3, 0x41, 0x50, 0x7a, 0x0f, 0xbb, 0xb0, 0x1b, 0x3a, 0x8e, 0x6c, 0xb0, 0x4a, 0x95, 0xe9, 0x70, 0xb4, 0xaf, 0xc1, 0x62, 0x37, 0xa6, 0x15, 0x0f, 0xda, 0x02, 0x59, 0x59, 0x83, 0xa5, 0x5a, 0x48, 0x07, 0x81, 0xe3, 0xbd, 0xc1, 0x7a, 0x49, 0xa5, 0x0d, 0x5e, 0x40, 0xe7, 0xb0, 0x06, 0x4b, 0xe3, 0x9e, 0x0e, 0x9d, 0xd4, 0x0e, 0x31, 0x3c, 0x18, 0x99, 0xbd, 0xc3, 0x2e, 0xec, 0x86, 0x8e, 0x23, 0x1b, 0x2c, 0x29, 0x66, 0x3a, 0x1c, 0xed, 0x6b, 0xb0, 0xd8, 0x8d, 0x69, 0xc5, 0x83, 0xd6, 0xb7, 0x98, 0x0f, 0x8d, 0x04, 0x0f, 0x82, 0xd2, 0x7b, 0xd8, 0x85, 0xdd, 0xd0, 0x71, 0x64, 0x83, 0x45, 0xd5, 0x4c, 0x87, 0xa3, 0x7d, 0x0d, 0x16, 0x3c, 0x38, 0xad, 0xc1, 0xaa, 0x56, 0xa7, 0x0d, 0x9d, 0xd4, 0x36, 0x68, 0x67, 0x82, 0x7e, 0x83, 0x76, 0x26, 0xe8, 0x0f, 0x4d, 0xb8, 0x36, 0x58, 0xf3, 0xf1, 0xb4, 0xc1, 0x12, 0x60, 0xfd, 0x35, 0x58, 0x97, 0xde, 0xb4, 0x41, 0x2a, 0x71, 0xc7, 0xc1, 0x59, 0xfd, 0x7c, 0x83, 0x15, 0xab, 0x4c, 0x1b, 0x1a, 0x09, 0x2e, 0x1e, 0x84, 0x00, 0xf8, 0xc1, 0x93, 0xa4, 0x1e, 0x86, 0x5d, 0xd8, 0x0d, 0x1d, 0x47, 0x36, 0x58, 0x7b, 0xcf, 0x74, 0x38, 0xda, 0x17, 0x04, 0x8b, 0xc3, 0x6e, 0x58, 0x41, 0xdd, 0xa0, 0x9d, 0x09, 0xfa, 0x61, 0x17, 0x7a, 0x30, 0x88, 0x56, 0x56, 0x83, 0x65, 0xbd, 0x48, 0x87, 0x1e, 0x42, 0x07, 0x4f, 0xb7, 0x72, 0x18, 0x76, 0xe1, 0x36, 0x58, 0xa0, 0x1d, 0x75, 0x30, 0x88, 0x56, 0xd6, 0x60, 0xf0, 0xc7, 0x1c, 0x3c, 0xdd, 0xca, 0x61, 0xd8, 0x85, 0xdb, 0x60, 0x31, 0x73, 0xd4, 0xc1, 0x20, 0x5a, 0x59, 0x0d, 0x16, 0x7d, 0x34, 0x1d, 0x0c, 0xfe, 0x98, 0x83, 0xa7, 0x5b, 0x39, 0x0c, 0xbb, 0x70, 0x1b, 0x2c, 0xb8, 0x8f, 0x3a, 0x18, 0x44, 0x2b, 0x6b, 0xb0, 0x5e, 0x52, 0x69, 0x83, 0xc1, 0x1f, 0xb3, 0xc1, 0xd3, 0xad, 0x1c, 0x0e, 0x31, 0x1c, 0x64, 0x6b, 0x68, 0xbf, 0x3e, 0xdc, 0x06, 0xeb, 0xcf, 0xa3, 0x0e, 0x06, 0xd1, 0xca, 0x20, 0x58, 0x83, 0xf5, 0x61, 0x4d, 0x1b, 0xb4, 0x0c, 0x37, 0xbf, 0xc1, 0x12, 0xdb, 0xa4, 0x0d, 0x31, 0x1c, 0x04, 0x2b, 0x08, 0x16, 0x0f, 0xce, 0xf5, 0x06, 0x1b, 0x62, 0xb8, 0xc1, 0x9a, 0x8f, 0xa7, 0x8d, 0x43, 0x6b, 0xb0, 0x54, 0x5e, 0x69, 0xe3, 0xd0, 0xb8, 0x06, 0x45, 0x8d, 0xf8, 0x61, 0x5c, 0xda, 0x60, 0xa9, 0xbc, 0xd2, 0xc6, 0xa1, 0x15, 0x0f, 0x57, 0xd7, 0x06, 0x4b, 0xe5, 0x95, 0x36, 0x24, 0xa6, 0xd6, 0x38, 0x34, 0x1e, 0x0c, 0xcd, 0xae, 0x43, 0x0c, 0x0f, 0x31, 0x3c, 0x24, 0xa6, 0x0e, 0x1e, 0x11, 0xea, 0xb0, 0xc1, 0x0a, 0x3a, 0xa5, 0x35, 0x28, 0xf6, 0x20, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0x60, 0x7d, 0x68, 0xf8, 0x75, 0x3c, 0x3f, 0x0e, 0x1d, 0xdf, 0x86, 0x5d, 0xd8, 0x0d, 0x1d, 0x47, 0x36, 0x58, 0xf0, 0xd0, 0x74, 0x38, 0xda, 0x17, 0x76, 0x83, 0xb1, 0x8e, 0xb6, 0xc1, 0x9a, 0x96, 0xa3, 0x61, 0x17, 0x76, 0x83, 0xc4, 0xae, 0x9f, 0x0d, 0x8e, 0xc7, 0xeb, 0x87, 0xa3, 0x7d, 0x43, 0x27, 0xb5, 0x41, 0xb6, 0x86, 0xf6, 0xeb, 0x07, 0x89, 0x5d, 0x3f, 0x1b, 0x2c, 0x78, 0x70, 0xda, 0xd0, 0x48, 0x70, 0x10, 0x6c, 0x10, 0x94, 0xde, 0x83, 0x60, 0x71, 0xd8, 0x85, 0xdd, 0xd0, 0x71, 0xe4, 0x60, 0x79, 0x7e, 0xd7, 0x1a, 0xac, 0x4b, 0x6f, 0xda, 0x20, 0x95, 0xb8, 0xe3, 0x10, 0xcd, 0x61, 0x37, 0x68, 0x99, 0x64, 0x64, 0x0d, 0xd6, 0x4b, 0x2a, 0x6d, 0x30, 0xda, 0x68, 0x37, 0x78, 0x31, 0xdf, 0xc3, 0x06, 0x85, 0xca, 0xd9, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0xed, 0xd7, 0x0f, 0xeb, 0x7b, 0x87, 0x53, 0xec, 0xf8, 0x36, 0xec, 0xc2, 0x6e, 0xe8, 0x38, 0xb2, 0xc1, 0x42, 0x8f, 0xa6, 0xc3, 0xd1, 0xbe, 0x20, 0x58, 0xdc, 0xf0, 0xc6, 0xdd, 0xc1, 0xb2, 0x99, 0xbc, 0x0d, 0xd6, 0xa5, 0x28, 0xad, 0x71, 0x68, 0x83, 0x75, 0x29, 0x4a, 0x1b, 0xb4, 0x84, 0x52, 0x72, 0x88, 0xe1, 0x21, 0x86, 0xc3, 0x2e, 0xec, 0x86, 0x8e, 0x23, 0x1b, 0x2c, 0x75, 0x69, 0x3a, 0x1c, 0xed, 0x0b, 0xbf, 0x21, 0x75, 0xb0, 0xc1, 0x8a, 0x66, 0xa5, 0x35, 0x58, 0x38, 0xa8, 0xb4, 0x21, 0x55, 0xb3, 0xc1, 0xda, 0xf2, 0xa5, 0x43, 0xea, 0x60, 0xc3, 0x5e, 0xe1, 0x06, 0x2b, 0x4e, 0x93, 0x36, 0xa4, 0x0e, 0x36, 0x58, 0x97, 0xde, 0xb4, 0x41, 0x2a, 0x71, 0xc7, 0x21, 0x5b, 0x31, 0xec, 0xc2, 0x6e, 0xe8, 0x38, 0xb2, 0xc1, 0x7a, 0xa0, 0xa6, 0xc3, 0xd1, 0xbe, 0x20, 0x58, 0x1c, 0x76, 0x83, 0x20, 0x69, 0x5e, 0x90, 0xad, 0x21, 0x8f, 0xbd, 0xb8, 0x21, 0xf7, 0x3d, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x38, 0x1e, 0xb4, 0x7b, 0xd4, 0x7c, 0x7c, 0x3b, 0x1e, 0x1f, 0x4e, 0xb1, 0x41, 0xb6, 0x86, 0xf6, 0xeb, 0x07, 0xcb, 0x30, 0xfd, 0x37, 0x58, 0x97, 0xde, 0xb4, 0xc1, 0xab, 0x9c, 0x1c, 0x06, 0xc1, 0xe2, 0xb0, 0x1b, 0xbc, 0x83, 0xde, 0x61, 0x0d, 0xd6, 0xa5, 0x37, 0x6d, 0xf0, 0xd2, 0x2e, 0x87, 0x43, 0xd3, 0xa1, 0x0d, 0x16, 0x3c, 0x38, 0xad, 0xc1, 0xa2, 0xd6, 0xa5, 0x0d, 0xce, 0x91, 0xbb, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xf0, 0xfd, 0xd0, 0xe8, 0xe8, 0x78, 0xbc, 0xc1, 0x82, 0x07, 0xa7, 0x35, 0x58, 0xd4, 0xba, 0xb4, 0x41, 0xda, 0x02, 0xf5, 0xc1, 0xc3, 0x31, 0x1f, 0x36, 0x58, 0xf0, 0xe0, 0xb4, 0xb8, 0xe1, 0x73, 0x97, 0xc1, 0xc7, 0x0d, 0x0f, 0x4a, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0x89, 0xa9, 0x83, 0x63, 0xcc, 0xd9, 0xc1, 0x83, 0xc3, 0x1c, 0x36, 0x58, 0x54, 0x95, 0xb4, 0xc1, 0x8a, 0x66, 0xa5, 0x35, 0x58, 0x97, 0xde, 0xb4, 0xc1, 0x4b, 0xbb, 0x1c, 0x0e, 0x2d, 0x80, 0xc6, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x83, 0xc3, 0x1c, 0xd6, 0x60, 0xb5, 0x08, 0x52, 0xf8, 0xd8, 0x86, 0x4b, 0x6a, 0xc3, 0x83, 0x3b, 0x6b, 0xf0, 0xf0, 0xd0, 0x87, 0x83, 0x47, 0x9c, 0x3e, 0x74, 0x7c, 0x3b, 0xbe, 0x0d, 0xbb, 0xb0, 0x1b, 0x3a, 0x8e, 0x6c, 0xb0, 0x22, 0xaa, 0xe9, 0x70, 0xb4, 0xaf, 0xc1, 0xc2, 0x41, 0xa5, 0x05, 0xc1, 0x06, 0x4f, 0xeb, 0x71, 0x18, 0x24, 0x03, 0xf3, 0x77, 0x68, 0x15, 0x74, 0x10, 0x94, 0xde, 0xc3, 0x2e, 0xec, 0x86, 0x8e, 0x23, 0x1b, 0xac, 0x09, 0x6b, 0x3a, 0x1c, 0xed, 0x6b, 0xb0, 0xe0, 0xc1, 0xe9, 0xe0, 0xcd, 0x11, 0x0f, 0xc3, 0x2e, 0xec, 0x86, 0x8e, 0x23, 0x1b, 0xac, 0x6b, 0x71, 0x3a, 0x1c, 0xed, 0x6b, 0xb0, 0x5e, 0xb9, 0x69, 0x83, 0x91, 0xd9, 0xbb, 0xc1, 0x92, 0x40, 0xa4, 0xd5, 0x60, 0x78, 0x51, 0x6c, 0x88, 0xe1, 0xb0, 0x0b, 0xb7, 0x21, 0x86, 0x07, 0xc3, 0x74, 0x62, 0x43, 0x27, 0xb5, 0x0d, 0xd6, 0xf7, 0x2d, 0x6d, 0x30, 0xd6, 0x54, 0x0e, 0x9d, 0xd4, 0x0e, 0x89, 0xa9, 0x43, 0x0c, 0x87, 0x5d, 0xd8, 0x0d, 0x1d, 0x47, 0x36, 0x58, 0x09, 0xd7, 0x74, 0x38, 0xda, 0xd7, 0x60, 0x5d, 0x7a, 0xd3, 0x1a, 0xac, 0x3f, 0x52, 0x5a, 0x3c, 0x28, 0x6a, 0xc4, 0x0f, 0x8d, 0x04, 0x0f, 0x82, 0xd2, 0x7b, 0xd8, 0x85, 0xdd, 0xd0, 0x71, 0x64, 0x83, 0x55, 0x85, 0x4d, 0x87, 0xa3, 0x7d, 0x0d, 0x16, 0x3c, 0x38, 0xad, 0xc1, 0xa2, 0xd6, 0xa5, 0x0d, 0x8d, 0x04, 0x0f, 0x9d, 0xd4, 0x0e, 0x46, 0x66, 0xef, 0xb0, 0x0b, 0xbb, 0xa1, 0xe3, 0xc8, 0x06, 0xcb, 0x2d, 0x9b, 0x0e, 0x47, 0xfb, 0x1a, 0xac, 0x30, 0x6c, 0xda, 0xd0, 0x48, 0x70, 0x83, 0x91, 0xd9, 0x7b, 0xe8, 0xa4, 0x36, 0xec, 0xc2, 0x6e, 0xe8, 0x38, 0xb2, 0xc1, 0x82, 0xd3, 0xa6, 0xc3, 0xd1, 0xbe, 0x06, 0xeb, 0xd2, 0x9b, 0xd6, 0x60, 0xfd, 0x91, 0xd2, 0x06, 0xcf, 0xde, 0x7d, 0xd8, 0xe0, 0x01, 0xc0, 0x0f, 0x87, 0x18, 0x1e, 0x8c, 0xcc, 0xde, 0x61, 0x17, 0x76, 0x43, 0xc7, 0x91, 0x0d, 0x56, 0xe2, 0x36, 0x1d, 0x8e, 0xf6, 0x35, 0x58, 0x7c, 0xda, 0xb4, 0xa1, 0x91, 0xe0, 0x1a, 0x2c, 0xf2, 0x74, 0xda, 0xd0, 0x49, 0x6d, 0x43, 0x13, 0xae, 0x83, 0xc7, 0x7f, 0x3b, 0x1c, 0x9c, 0xd5, 0xcf, 0x87, 0x5d, 0xd8, 0x0d, 0x1d, 0x47, 0x36, 0x58, 0x81, 0xdf, 0x74, 0x38, 0xda, 0x17, 0x04, 0x0b, 0x82, 0x0d, 0x96, 0x7c, 0x7f, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x34, 0x2e, 0x1a, 0x7e, 0xe3, 0xf9, 0x78, 0x70, 0x68, 0x6d, 0x39, 0x0e, 0x6d, 0xb0, 0x2e, 0xbd, 0x69, 0x83, 0x57, 0x39, 0x39, 0x6c, 0xb0, 0xe0, 0xc1, 0x69, 0x0d, 0x16, 0xb5, 0x2e, 0x6d, 0x70, 0x8e, 0xdc, 0xdd, 0x60, 0x5d, 0x7a, 0xd3, 0x06, 0x2f, 0xed, 0x72, 0x38, 0x08, 0x7b, 0xea, 0x0d, 0x16, 0x9f, 0x36, 0x6d, 0x1c, 0x5a, 0x3c, 0x78, 0x4b, 0x99, 0xc3, 0x06, 0xeb, 0xd2, 0x9b, 0x56, 0x83, 0x45, 0xad, 0x4b, 0x6b, 0xb0, 0x08, 0xa3, 0x6a, 0x83, 0x77, 0x4a, 0x3f, 0x1c, 0x7a, 0x08, 0x8d, 0x07, 0x6f, 0x14, 0x73, 0x38, 0x78, 0x69, 0x97, 0xc3, 0x41, 0x89, 0x3d, 0x38, 0xec, 0xc2, 0x6e, 0xe8, 0x38, 0xb2, 0xc1, 0x1a, 0xe5, 0xa6, 0xc3, 0xd1, 0xbe, 0x06, 0xeb, 0xd2, 0x9b, 0x0e, 0x5e, 0xef, 0xec, 0x30, 0xec, 0xc2, 0x6e, 0xe8, 0x38, 0xb2, 0xc1, 0x22, 0x07, 0xa7, 0xc3, 0xd1, 0xbe, 0x06, 0xeb, 0xd2, 0x9b, 0x36, 0x78, 0x50, 0xce, 0xc3, 0x41, 0x50, 0x7a, 0x0f, 0xbb, 0xb0, 0x1b, 0x3a, 0x8e, 0x6c, 0xb0, 0x28, 0xbb, 0xe9, 0x70, 0xb4, 0xaf, 0xc1, 0x82, 0x07, 0xa7, 0x83, 0xd7, 0x3b, 0x3b, 0x0c, 0xbb, 0xb0, 0x1b, 0x3a, 0x8e, 0x6c, 0xb0, 0xaa, 0xc3, 0xe9, 0x70, 0xb4, 0x2f, 0x08, 0x16, 0x87, 0xdd, 0xb0, 0x82, 0xba, 0xc1, 0x50, 0x44, 0x1a, 0x76, 0x83, 0x20, 0x69, 0xde, 0xd0, 0x43, 0x68, 0x83, 0x75, 0xe9, 0x4d, 0x07, 0xef, 0xa0, 0x76, 0x38, 0xbe, 0x0d, 0xbb, 0xb0, 0x1b, 0x3a, 0x8e, 0x6c, 0xb0, 0xea, 0xcc, 0xe9, 0x70, 0xb4, 0x2f, 0x08, 0x16, 0x87, 0xdd, 0xb0, 0x82, 0xba, 0x78, 0xb0, 0xcc, 0x49, 0x76, 0x83, 0x45, 0x9e, 0x4e, 0x1b, 0x7a, 0x08, 0x2d, 0x1e, 0xac, 0x02, 0x93, 0x3d, 0x78, 0xba, 0x95, 0xc3, 0xf1, 0x6d, 0xd8, 0x85, 0xdd, 0xd0, 0x71, 0x64, 0x83, 0x95, 0xac, 0x4e, 0x87, 0xa3, 0x7d, 0x0d, 0x16, 0x79, 0x3a, 0x1d, 0x3c, 0x6e, 0xf8, 0x61, 0xd8, 0x85, 0xdd, 0xd0, 0x71, 0x64, 0x83, 0x55, 0xcb, 0x4e, 0x87, 0xa3, 0x7d, 0x0d, 0x16, 0x79, 0x3a, 0x6d, 0x68, 0x24, 0xb8, 0xc1, 0x9a, 0x96, 0xa3, 0x83, 0xa0, 0xf4, 0x1e, 0x76, 0x61, 0x37, 0x74, 0x1c, 0xd9, 0x60, 0x99, 0xb6, 0xd3, 0xe1, 0x68, 0x5f, 0x83, 0x45, 0x9e, 0x4e, 0x1b, 0x1a, 0x09, 0x6e, 0x10, 0x94, 0xde, 0x07, 0x6b, 0x5a, 0x8e, 0x86, 0x5d, 0xd8, 0x0d, 0x1d, 0x47, 0x36, 0x58, 0xbf, 0xeb, 0x74, 0x38, 0xda, 0xd7, 0x60, 0x91, 0xa7, 0xd3, 0x1a, 0x2c, 0x07, 0x7a, 0x5a, 0x3c, 0xfc, 0x50, 0x73, 0x68, 0x24, 0x78, 0xf0, 0xec, 0xe1, 0x87, 0x61, 0x17, 0x76, 0x43, 0xc7, 0x91, 0x0d, 0x96, 0xd9, 0x39, 0x1d, 0x8e, 0xf6, 0x05, 0xc1, 0xe2, 0xb0, 0x1b, 0x04, 0x49, 0xf3, 0x1a, 0x2c, 0xb9, 0x41, 0xda, 0x60, 0x19, 0x27, 0xd2, 0xa1, 0x87, 0xd0, 0x06, 0x8b, 0x3c, 0x9d, 0xd6, 0x60, 0x39, 0xd0, 0xd3, 0x06, 0x8b, 0xc4, 0x7f, 0x0e, 0x3d, 0x84, 0x36, 0x28, 0xce, 0xb9, 0x0e, 0x16, 0xa0, 0x92, 0x1d, 0xdf, 0x86, 0x5d, 0xd8, 0x0d, 0x1d, 0x47, 0x36, 0x58, 0x9c, 0xee, 0x74, 0x38, 0xda, 0xd7, 0x60, 0xc9, 0x9d, 0xd3, 0x86, 0x46, 0x82, 0x83, 0x60, 0x83, 0x25, 0xdf, 0x5f, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xcd, 0x92, 0x86, 0xdf, 0x78, 0xbe, 0x06, 0x2d, 0xc8, 0xc8, 0x1f, 0x3a, 0xa9, 0x1d, 0x62, 0x78, 0x1c, 0x1a, 0x76, 0x61, 0x37, 0x74, 0x1c, 0xd9, 0x60, 0x01, 0xc0, 0xd3, 0xe1, 0x68, 0x5f, 0x10, 0x2c, 0x0e, 0xbb, 0x61, 0x05, 0x75, 0x83, 0x57, 0xbf, 0x3f, 0x6c, 0xb0, 0xc8, 0xd3, 0x69, 0x43, 0x0f, 0xa1, 0x0d, 0x9e, 0x6e, 0xe5, 0x70, 0xf0, 0x1e, 0xf7, 0x87, 0xe3, 0xdb, 0xb0, 0x0b, 0xbb, 0xa1, 0xe3, 0xc8, 0x06, 0x4b, 0x79, 0x91, 0x0e, 0x47, 0xfb, 0x82, 0x60, 0x71, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x6e, 0xe8, 0x9a, 0xb9, 0x41, 0x7b, 0x9d, 0xee, 0x1b, 0xb4, 0x3c, 0xea, 0xbe, 0xc1, 0xa2, 0x23, 0xa4, 0x83, 0xf7, 0x6b, 0x32, 0x1c, 0x8f, 0x17, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x0b, 0x82, 0x0d, 0xce, 0xc1, 0xdf, 0x87, 0x34, 0xdc, 0x06, 0x6b, 0xd5, 0x8f, 0x0e, 0xe3, 0x72, 0x3c, 0x5e, 0x41, 0xb0, 0x41, 0xc9, 0xd0, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x3d, 0x08, 0x92, 0xe8, 0xe3, 0xd0, 0x06, 0xeb, 0x52, 0x94, 0x06, 0xc1, 0x06, 0xe9, 0xb2, 0xdd, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x8a, 0x3d, 0x88, 0x83, 0x15, 0xc8, 0x40, 0xc7, 0xa1, 0x0d, 0xd6, 0xe1, 0x33, 0x1d, 0x3a, 0x86, 0x1d, 0xac, 0xe5, 0x13, 0x18, 0x76, 0x61, 0x37, 0x74, 0x1c, 0xd9, 0x60, 0xc5, 0xc3, 0xd3, 0xe1, 0x68, 0x5f, 0x83, 0x45, 0x9e, 0x4e, 0x1b, 0xbc, 0xac, 0xff, 0xe1, 0xe0, 0x8c, 0x00, 0x3f, 0xec, 0xc2, 0x6e, 0xe8, 0x38, 0xb2, 0xc1, 0x3a, 0x8f, 0xa7, 0xc3, 0xd1, 0xbe, 0x06, 0x8b, 0x3c, 0x9d, 0xd6, 0x60, 0x39, 0xd0, 0xd3, 0x06, 0xab, 0xd6, 0xa8, 0x0e, 0x8d, 0x04, 0x0f, 0xce, 0x08, 0xf0, 0xc3, 0x2e, 0xec, 0x86, 0x8e, 0x23, 0x1b, 0x2c, 0x01, 0x7a, 0x3a, 0x1c, 0xed, 0x6b, 0xb0, 0xf4, 0xf9, 0xe8, 0xe0, 0xcd, 0x11, 0x0f, 0xc3, 0x2e, 0xec, 0x86, 0x8e, 0x23, 0x1b, 0xac, 0x8d, 0x7a, 0x3a, 0x1c, 0xed, 0x6b, 0xb0, 0xc8, 0xd3, 0x69, 0xc3, 0xb8, 0x8c, 0x1b, 0x2c, 0x73, 0x92, 0x3d, 0x58, 0x05, 0x26, 0x3b, 0xec, 0xc2, 0x6e, 0xe8, 0x38, 0xb2, 0xc1, 0x72, 0xb8, 0xa7, 0xc3, 0xd1, 0xbe, 0x06, 0xeb, 0x25, 0x95, 0x16, 0x37, 0x58, 0x2d, 0x82, 0x74, 0xd0, 0x28, 0x33, 0xe0, 0x1a, 0x2c, 0x8f, 0x7c, 0x5a, 0xdc, 0xa0, 0x10, 0x4c, 0xdd, 0x60, 0x19, 0x81, 0xd5, 0x06, 0xab, 0x45, 0x90, 0x0e, 0xd6, 0x66, 0x78, 0x1f, 0xc6, 0xe5, 0x10, 0xc3, 0x61, 0x17, 0x76, 0x43, 0xc7, 0x91, 0x0d, 0x96, 0x3b, 0x3f, 0x1d, 0x8e, 0xf6, 0x85, 0x5d, 0xd8, 0x0d, 0x8a, 0x90, 0xc1, 0x05, 0xc1, 0x06, 0xe9, 0x95, 0xd8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x48, 0x86, 0x1c, 0x8c, 0x77, 0x9d, 0x43, 0x0f, 0xa1, 0xe3, 0xd0, 0xb0, 0x0b, 0x82, 0x0d, 0xd2, 0x2b, 0xb1, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x3c, 0x59, 0x07, 0xe2, 0x60, 0x10, 0xad, 0x1c, 0x87, 0x16, 0x76, 0x41, 0xb0, 0x41, 0x02, 0x23, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x27, 0xeb, 0x40, 0x1c, 0x0c, 0xfe, 0x98, 0xe3, 0xd0, 0x21, 0x9d, 0x7b, 0x38, 0xda, 0x37, 0x08, 0x4a, 0xef, 0x41, 0xb6, 0x86, 0x3c, 0xf6, 0xe2, 0x86, 0xdc, 0xf7, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xe2, 0x78, 0xd0, 0x08, 0xd5, 0xf3, 0xf1, 0xed, 0x78, 0x7c, 0x38, 0xc5, 0x0e, 0x16, 0xdf, 0xf9, 0x2f, 0x08, 0x16, 0x87, 0x5d, 0xd8, 0x0d, 0x8a, 0xcb, 0xa6, 0x0d, 0x16, 0x63, 0x79, 0x1d, 0x8e, 0xf6, 0x35, 0xc4, 0xf0, 0x90, 0x97, 0x1d, 0x76, 0x61, 0x37, 0x28, 0x2e, 0x9b, 0x16, 0x6e, 0x83, 0x15, 0x71, 0x47, 0x87, 0xac, 0xdd, 0xe1, 0x68, 0xdf, 0x20, 0x84, 0x9b, 0x87, 0x5d, 0xd8, 0x0d, 0x8a, 0xcb, 0xa6, 0x85, 0xdb, 0x60, 0x31, 0x75, 0xd2, 0x21, 0x6b, 0x77, 0x38, 0xda, 0xd7, 0x10, 0xc3, 0x0d, 0x1d, 0xc3, 0x0e, 0x3d, 0x84, 0x86, 0x5d, 0xd8, 0x0d, 0x8a, 0xcb, 0xa6, 0x85, 0xdb, 0x60, 0xf5, 0x80, 0xd2, 0x21, 0x6b, 0x77, 0x38, 0xda, 0xd7, 0x10, 0xc3, 0x83, 0x33, 0x5f, 0xed, 0xb0, 0x0b, 0xbb, 0x41, 0x71, 0xd9, 0xb4, 0x70, 0x1b, 0x2c, 0x27, 0x4f, 0x3a, 0x64, 0xed, 0x0e, 0x47, 0xfb, 0x1a, 0x62, 0xb8, 0xa1, 0x87, 0xd0, 0x06, 0x6b, 0x26, 0x94, 0x0e, 0x9a, 0x84, 0x6c, 0x19, 0x76, 0x61, 0x37, 0x28, 0x2e, 0x9b, 0x16, 0x6e, 0x83, 0x75, 0x29, 0x4a, 0x87, 0xac, 0xdd, 0xe1, 0x68, 0x5f, 0xd8, 0x0d, 0x2b, 0xa8, 0x1b, 0x62, 0xb8, 0x21, 0x86, 0x1b, 0x7a, 0x08, 0x6d, 0xb0, 0x2e, 0x45, 0xe9, 0xd0, 0x31, 0x6c, 0xd8, 0x85, 0xdd, 0xa0, 0xb8, 0x6c, 0x5a, 0xb8, 0x0d, 0x96, 0xe3, 0x28, 0x1d, 0xb2, 0x76, 0x87, 0xa3, 0x7d, 0x61, 0x37, 0xac, 0xa0, 0x6e, 0x88, 0xe1, 0xb0, 0x1b, 0x04, 0x49, 0xf3, 0x06, 0x81, 0x7f, 0xbe, 0x21, 0x86, 0x1b, 0x7a, 0x08, 0x6d, 0xb0, 0x1c, 0x47, 0xe9, 0xd0, 0x31, 0xec, 0xa0, 0x2d, 0x42, 0xa6, 0xe3, 0xdb, 0x82, 0x60, 0x83, 0x13, 0xb3, 0xef, 0xb0, 0x0b, 0xbb, 0xc1, 0xe8, 0x58, 0x5f, 0xd8, 0x0d, 0x52, 0x58, 0xad, 0x37, 0x08, 0x2d, 0xf7, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x37, 0x08, 0x29, 0xf0, 0x41, 0xb6, 0x86, 0x3c, 0xf6, 0x78, 0xd0, 0xa0, 0xe8, 0xf3, 0xe1, 0x14, 0x5b, 0x41, 0xb6, 0x86, 0x3c, 0xf6, 0x78, 0xd0, 0x38, 0xeb, 0xf3, 0x20, 0x58, 0x90, 0x0c, 0x9c, 0x77, 0x07, 0x41, 0xce, 0x7f, 0x70, 0xd8, 0xe8, 0x5d, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0xf8, 0x05, 0xc9, 0x80, 0x44, 0x77, 0xb9, 0x83, 0x20, 0xe7, 0x3f, 0xbe, 0x0d, 0x82, 0xc5, 0x61, 0x17, 0x76, 0x83, 0x35, 0xe0, 0xff, 0x87, 0xf5, 0xcd, 0x35, 0x58, 0xaf, 0xdc, 0xb4, 0x06, 0x4b, 0x02, 0x91, 0x0e, 0x7b, 0x85, 0x07, 0xe3, 0x4d, 0x67, 0xd8, 0x85, 0xdd, 0x60, 0x0d, 0xf8, 0xff, 0xc2, 0x6d, 0xb0, 0xa2, 0xe9, 0xe8, 0x10, 0xff, 0xc3, 0xd1, 0xbe, 0xb0, 0x1b, 0xb4, 0xea, 0x21, 0xb0, 0xc1, 0x78, 0xd3, 0xd9, 0x60, 0x7d, 0xdf, 0xd2, 0xc1, 0x0a, 0x89, 0xff, 0x61, 0x37, 0x58, 0xdb, 0xff, 0xbf, 0x20, 0x58, 0x10, 0x6c, 0xd0, 0x5a, 0xfb, 0xc9, 0x41, 0x5b, 0x39, 0x51, 0xc3, 0x6e, 0xd0, 0x3a, 0x1f, 0xc0, 0x1a, 0x2c, 0x78, 0x70, 0xda, 0x60, 0xf0, 0x4e, 0x2e, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xf7, 0x0f, 0x56, 0x2e, 0xaf, 0x1d, 0x04, 0x3d, 0xf7, 0x20, 0x19, 0x32, 0x88, 0x16, 0xdc, 0x3f, 0x78, 0x35, 0xd5, 0xc3, 0x20, 0xda, 0x20, 0x40, 0xb8, 0x8f, 0xe7, 0x0b, 0x92, 0x21, 0x83, 0x68, 0xc1, 0xfd, 0x83, 0x20, 0x8b, 0x3f, 0x08, 0x7a, 0xee, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xb8, 0x7f, 0x30, 0x58, 0x63, 0x0f, 0xde, 0xd1, 0x07, 0x31, 0xec, 0xc2, 0x6e, 0xb0, 0x06, 0xfc, 0x7f, 0xe1, 0x36, 0x58, 0x11, 0x77, 0x74, 0x88, 0xff, 0xe1, 0x68, 0x5f, 0x83, 0x15, 0x71, 0x47, 0x1b, 0x5a, 0x00, 0x1d, 0x14, 0x47, 0x2a, 0xc3, 0x2e, 0xec, 0x06, 0x6b, 0xc0, 0xff, 0x17, 0x6e, 0x43, 0xee, 0xfb, 0x10, 0xff, 0xc3, 0xd1, 0xbe, 0xc1, 0xa3, 0xe9, 0x20, 0x86, 0x5d, 0xd8, 0x0d, 0xd6, 0x80, 0xff, 0x2f, 0xdc, 0x06, 0xab, 0x1b, 0xa9, 0x0e, 0xf1, 0x3f, 0x1c, 0xed, 0x6b, 0xb0, 0x04, 0xf7, 0x68, 0x83, 0x36, 0xca, 0x80, 0x0e, 0x8a, 0x23, 0x95, 0x61, 0x17, 0x76, 0x83, 0x35, 0xe0, 0xff, 0x0b, 0xb7, 0xc1, 0x82, 0x83, 0xaa, 0x43, 0xfc, 0x0f, 0x47, 0xfb, 0x1a, 0xac, 0x57, 0x6e, 0x5a, 0x83, 0x25, 0x81, 0x48, 0x87, 0x16, 0x40, 0x07, 0xc5, 0x91, 0xca, 0xb0, 0x0b, 0xbb, 0xc1, 0x1a, 0xf0, 0xff, 0x85, 0xdb, 0x60, 0x11, 0x46, 0xd5, 0x21, 0xfe, 0x87, 0xa3, 0x7d, 0x41, 0x32, 0x64, 0x10, 0x6d, 0x30, 0x1a, 0x3a, 0x07, 0xd1, 0xc2, 0x0e, 0x82, 0x0d, 0x12, 0xa3, 0xa5, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x84, 0x7c, 0xf6, 0x21, 0x55, 0x73, 0x1c, 0x3a, 0x1e, 0x0f, 0xbb, 0xb0, 0x1b, 0xac, 0x01, 0xff, 0x5f, 0xb8, 0x0d, 0x96, 0x32, 0x6b, 0x1d, 0xe2, 0x7f, 0x38, 0xda, 0xd7, 0x60, 0x7d, 0xdf, 0xd2, 0xc2, 0x6e, 0x58, 0xdf, 0xdb, 0xd0, 0x02, 0x68, 0x83, 0x45, 0x18, 0x55, 0x07, 0xa9, 0x4b, 0x44, 0x07, 0xc5, 0x91, 0xca, 0x20, 0x5b, 0x43, 0xfb, 0xf5, 0x61, 0x37, 0x58, 0x03, 0xfe, 0xbf, 0x70, 0x1b, 0xac, 0xfb, 0xd6, 0x3a, 0xc4, 0xff, 0x70, 0xb4, 0x6f, 0xb0, 0x5e, 0xb9, 0x69, 0x0d, 0x96, 0x71, 0x22, 0x0d, 0x82, 0xc5, 0x61, 0x37, 0x18, 0x87, 0x4c, 0x1b, 0x62, 0xb8, 0xc1, 0x71, 0xbf, 0x63, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xde, 0x0f, 0x82, 0x0d, 0x92, 0x07, 0xab, 0x0f, 0x5a, 0xcf, 0x0f, 0x39, 0x1e, 0x1f, 0xdf, 0x0e, 0xc6, 0x9b, 0xce, 0xf1, 0xed, 0x78, 0x3c, 0x08, 0x16, 0x87, 0x5d, 0xd8, 0x0d, 0x8a, 0xcb, 0xa6, 0x85, 0x5d, 0xb8, 0x0d, 0x96, 0x6a, 0x21, 0x1d, 0xb2, 0x76, 0x0b, 0xbb, 0xc1, 0xb2, 0xc1, 0xa0, 0x85, 0x5d, 0xb8, 0x0d, 0xd2, 0x42, 0xb3, 0x0f, 0x3d, 0x84, 0x36, 0x68, 0x97, 0x31, 0xe5, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x37, 0x08, 0x9c, 0xe6, 0x61, 0x37, 0x78, 0x98, 0x12, 0xc4, 0x06, 0x21, 0xdc, 0x7c, 0xd0, 0x16, 0x21, 0xd3, 0xf1, 0x6d, 0x41, 0xb0, 0x38, 0xec, 0xc2, 0x6e, 0x50, 0x5c, 0x36, 0x2d, 0xdc, 0x06, 0xcb, 0x38, 0x91, 0x0e, 0x59, 0xbb, 0xc3, 0xd1, 0xbe, 0xb0, 0x1b, 0x56, 0x50, 0x37, 0xc4, 0x70, 0xd8, 0x0d, 0xd2, 0x12, 0xad, 0x37, 0x08, 0xc0, 0xe7, 0x61, 0x17, 0x6e, 0x43, 0x0c, 0x0f, 0x06, 0xd1, 0xca, 0x86, 0x18, 0x1e, 0x04, 0xb9, 0xf5, 0xb0, 0x0b, 0xbb, 0x41, 0x71, 0xd9, 0xb4, 0x70, 0x1b, 0xac, 0x13, 0x41, 0x3a, 0x64, 0xed, 0x0e, 0x47, 0xfb, 0x86, 0x65, 0xd4, 0x61, 0x37, 0x78, 0x98, 0x12, 0xc4, 0x82, 0x64, 0xc8, 0x20, 0x5a, 0x10, 0x0f, 0x82, 0x05, 0xc9, 0xa0, 0xec, 0xb0, 0x42, 0x3b, 0x48, 0x06, 0xd1, 0xc1, 0x58, 0x5f, 0x3d, 0x1e, 0x0f, 0xbb, 0xb0, 0x1b, 0x14, 0x97, 0x4d, 0x0b, 0xb7, 0xc1, 0x7a, 0xe5, 0xa6, 0x43, 0xd6, 0xee, 0x70, 0xb4, 0x6f, 0xf0, 0xc2, 0x5b, 0x88, 0x61, 0x17, 0x76, 0x83, 0xe2, 0xb2, 0x69, 0xe1, 0x36, 0x58, 0x97, 0xde, 0x74, 0xc8, 0xda, 0x1d, 0x8e, 0xf6, 0x83, 0x77, 0xb1, 0x42, 0x1c, 0xdf, 0x06, 0xc1, 0xe2, 0xb0, 0x1b, 0x3c, 0xff, 0x08, 0x62, 0x41, 0xb0, 0x82, 0x64, 0xc8, 0x41, 0x59, 0xea, 0x74, 0xb0, 0x62, 0x41, 0x67, 0xd8, 0x0d, 0x16, 0xc0, 0xfa, 0x6c, 0x88, 0xe1, 0xb0, 0x1b, 0x84, 0x96, 0xfb, 0x86, 0x18, 0x6e, 0x88, 0xe1, 0x06, 0x0b, 0x67, 0x8c, 0x0e, 0x9a, 0xa3, 0x01, 0x18, 0x76, 0x61, 0x37, 0x28, 0x2e, 0x9b, 0x16, 0x6e, 0x83, 0x15, 0x4d, 0x47, 0x87, 0xac, 0xdd, 0xe1, 0x68, 0xdf, 0x20, 0x20, 0x99, 0x87, 0x5d, 0xd8, 0x0d, 0x8a, 0xcb, 0xa6, 0x85, 0xdb, 0x60, 0xd1, 0x11, 0xd2, 0x21, 0x6b, 0x77, 0x38, 0xda, 0x17, 0x76, 0x83, 0x76, 0x19, 0x53, 0xd6, 0x10, 0xc3, 0x0d, 0xb9, 0xef, 0x83, 0x33, 0x5f, 0xed, 0x21, 0x86, 0xc3, 0x2e, 0xec, 0x06, 0xc5, 0x65, 0xd3, 0xc2, 0x2e, 0xdc, 0x06, 0x4b, 0xe5, 0x95, 0x0e, 0x59, 0xbb, 0x85, 0xdd, 0x60, 0xd9, 0x60, 0xd0, 0xc2, 0x2e, 0xec, 0x06, 0xe9, 0x8a, 0xd6, 0x0b, 0xbb, 0xb0, 0x1b, 0x3c, 0x26, 0xeb, 0xe1, 0xb0, 0xbe, 0xb9, 0x70, 0x1b, 0x62, 0x78, 0x30, 0xf8, 0x63, 0x0e, 0x47, 0xfb, 0xe1, 0x68, 0x3f, 0x68, 0x37, 0x71, 0xe5, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0xc3, 0xd1, 0xbe, 0xc1, 0x33, 0x65, 0x21, 0x86, 0xdd, 0xe0, 0x71, 0xbd, 0x10, 0x0b, 0x82, 0x05, 0xc9, 0xe0, 0xdc, 0x41, 0xc0, 0xfb, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0xe6, 0xa0, 0x31, 0xfe, 0x94, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x1b, 0x34, 0x13, 0x31, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0x4d, 0x40, 0x8a, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x06, 0x8b, 0x30, 0xaa, 0x0e, 0xc6, 0x30, 0xfe, 0xf1, 0xf8, 0x38, 0x74, 0x3c, 0x3e, 0x0e, 0x0d, 0xbb, 0xb0, 0x1b, 0x14, 0x97, 0x4d, 0x0b, 0xbb, 0xc1, 0xfb, 0x69, 0x21, 0x0e, 0x96, 0x01, 0x80, 0x1d, 0x8e, 0xf6, 0x0d, 0xcb, 0xa8, 0xc3, 0x2e, 0xec, 0x06, 0xc5, 0x65, 0xd3, 0xc2, 0x2e, 0xdc, 0x06, 0x4b, 0x70, 0x8f, 0x0e, 0x59, 0xbb, 0x85, 0xdd, 0x60, 0xd9, 0x60, 0xd0, 0xc2, 0x6e, 0x90, 0xae, 0x68, 0xbd, 0x70, 0x1b, 0xac, 0x6e, 0xa4, 0x3a, 0x18, 0x44, 0x2b, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0xc3, 0xd1, 0xbe, 0x20, 0xd8, 0xe0, 0x18, 0xb0, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0x54, 0xd1, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x83, 0xd5, 0x8d, 0x54, 0x07, 0x4d, 0xdb, 0xe1, 0x1f, 0x8f, 0x8f, 0x43, 0xc3, 0x6e, 0xf0, 0x12, 0x57, 0x88, 0x85, 0x5d, 0xd8, 0x0d, 0x96, 0x0d, 0x06, 0x2d, 0xec, 0x06, 0x69, 0x89, 0xd6, 0x07, 0xed, 0x26, 0xae, 0x1c, 0x8e, 0xf6, 0x0d, 0x02, 0xf0, 0x79, 0x10, 0x6c, 0x88, 0xe1, 0x20, 0x58, 0x1c, 0x76, 0x83, 0x71, 0xc8, 0xb4, 0x86, 0x18, 0x6e, 0xb0, 0xee, 0x5b, 0xeb, 0x90, 0x3a, 0x18, 0x76, 0xe1, 0x36, 0x38, 0xee, 0x77, 0x1c, 0x84, 0x7c, 0xf6, 0x82, 0x64, 0xc8, 0x20, 0xda, 0x60, 0xac, 0x35, 0x1d, 0x8f, 0x0f, 0x31, 0x3c, 0xbe, 0x0d, 0xbb, 0xb0, 0x1b, 0x14, 0x97, 0x4d, 0x0b, 0xb7, 0xc1, 0xf2, 0xe9, 0xa5, 0x43, 0xd6, 0xee, 0x70, 0xb4, 0xaf, 0x21, 0x86, 0x1b, 0x2c, 0x65, 0xd6, 0xda, 0x90, 0xaf, 0x3d, 0x68, 0x41, 0x46, 0x7e, 0xd8, 0x85, 0xdd, 0xa0, 0xb8, 0x6c, 0x5a, 0xb8, 0x0d, 0x16, 0xb5, 0x2e, 0x1d, 0xb2, 0x76, 0x87, 0xa3, 0x7d, 0x41, 0xb0, 0xc1, 0x93, 0xae, 0x21, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x84, 0x2a, 0xfa, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xbb, 0x41, 0x4b, 0x7d, 0xe6, 0x6b, 0x88, 0xe1, 0x06, 0x0b, 0x0e, 0xaa, 0x0e, 0xc6, 0xcc, 0xce, 0xb0, 0x0b, 0xbb, 0x41, 0xab, 0x7d, 0xe6, 0x0b, 0xbb, 0x70, 0x1b, 0x2c, 0x38, 0xa8, 0x3a, 0x28, 0x42, 0x13, 0x16, 0x76, 0xa1, 0x07, 0x67, 0xa3, 0xe7, 0x85, 0x5d, 0xd8, 0x85, 0x4e, 0x50, 0xea, 0x0f, 0xeb, 0x9b, 0x0b, 0xbb, 0xd0, 0x09, 0x6a, 0xfd, 0xc2, 0x2e, 0xdc, 0x06, 0x2b, 0x9a, 0x8e, 0x26, 0x38, 0xeb, 0x17, 0x6e, 0x83, 0x85, 0x26, 0x46, 0x13, 0xdc, 0xf5, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0x1a, 0x62, 0xb8, 0xc1, 0x82, 0x83, 0xaa, 0x0d, 0xde, 0x6e, 0x10, 0x71, 0x48, 0x1d, 0x1c, 0x62, 0x78, 0x3c, 0x3e, 0x0e, 0x0d, 0xb2, 0x0d, 0xcd, 0xd7, 0x07, 0xc1, 0x06, 0xe9, 0xd3, 0x27, 0xc3, 0x2e, 0xdc, 0xc6, 0xa1, 0xc3, 0x5e, 0xe1, 0x86, 0x18, 0x1e, 0x0c, 0x6d, 0xe8, 0xe3, 0xdb, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0x7c, 0x18, 0xbc, 0x61, 0x85, 0x76, 0x0d, 0x96, 0x04, 0x67, 0x1f, 0x8c, 0x3b, 0xa8, 0x35, 0x68, 0xb3, 0x16, 0xf9, 0xe0, 0xc4, 0xec, 0xdb, 0xf1, 0x78, 0x41, 0xb0, 0xc1, 0x12, 0x6b, 0xab, 0xc5, 0x05, 0xc1, 0xe2, 0xc1, 0xb3, 0x7e, 0x0b, 0x16, 0x07, 0xc1, 0x82, 0x64, 0x20, 0x7e, 0x87, 0xe4, 0xd2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x1b, 0xac, 0x7e, 0x78, 0xda, 0x60, 0xad, 0x12, 0xd7, 0x82, 0x60, 0x83, 0x14, 0x55, 0x82, 0x43, 0x1a, 0x6e, 0x10, 0x6c, 0x90, 0xa2, 0x4a, 0x70, 0xe8, 0xa0, 0x71, 0x1c, 0x3a, 0x1e, 0xaf, 0x20, 0xd8, 0x60, 0xd5, 0x1a, 0xd5, 0xe2, 0x20, 0xd8, 0xe0, 0xe5, 0x18, 0x11, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x6f, 0xb0, 0x1c, 0xe8, 0x69, 0x41, 0xb0, 0x20, 0x19, 0xdc, 0x3b, 0x24, 0x97, 0x0e, 0x8d, 0x5a, 0x0e, 0xd6, 0x2a, 0x71, 0x1d, 0x87, 0x8e, 0xc7, 0x83, 0x60, 0x83, 0x97, 0x5f, 0x44, 0x2c, 0x0e, 0x82, 0x0d, 0x5e, 0x8e, 0x11, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x06, 0x6b, 0x3e, 0x9e, 0x0e, 0x1e, 0xb7, 0x11, 0x71, 0x1c, 0x3a, 0x1e, 0x2f, 0x08, 0x16, 0x0f, 0x9a, 0xec, 0x29, 0x59, 0x1c, 0x04, 0x1b, 0xbc, 0x1c, 0x23, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x0f, 0x16, 0xaa, 0x3b, 0x0d, 0xbf, 0xf1, 0x7c, 0x83, 0xb5, 0x4a, 0x5c, 0x1b, 0xbc, 0x80, 0x23, 0x62, 0x10, 0x6c, 0xd0, 0x6a, 0x1e, 0xd3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xbe, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xf1, 0xa0, 0x61, 0x87, 0xe6, 0xc5, 0x0d, 0xd1, 0x1c, 0x04, 0x1b, 0xac, 0x60, 0xe7, 0x3a, 0x74, 0xd0, 0x38, 0x1e, 0x1f, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0x15, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x36, 0x78, 0x39, 0x46, 0xc4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x1f, 0x2c, 0xb9, 0x73, 0x1a, 0x7e, 0xe3, 0xf9, 0x06, 0x6b, 0x95, 0xb8, 0x06, 0xc1, 0x06, 0xad, 0xe6, 0x31, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xa4, 0x6a, 0x0e, 0x9e, 0xfd, 0x12, 0x71, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0xac, 0x69, 0x39, 0x5a, 0x1c, 0x76, 0x61, 0x37, 0x68, 0xf6, 0xa1, 0x69, 0x61, 0x37, 0x28, 0x7a, 0x12, 0x0e, 0xe9, 0xdc, 0xc3, 0xd1, 0xbe, 0x06, 0xeb, 0xd2, 0x9b, 0x36, 0x48, 0x25, 0xee, 0x38, 0xa4, 0x0e, 0x0e, 0xa9, 0x83, 0xe3, 0xf1, 0x0a, 0xbb, 0x21, 0x8f, 0xb5, 0xb0, 0x1b, 0x04, 0x89, 0xf7, 0x06, 0x41, 0xe9, 0x7d, 0x70, 0x32, 0x9e, 0x1e, 0x64, 0x1b, 0xb4, 0x74, 0x06, 0x73, 0xb0, 0x04, 0x58, 0x7f, 0x10, 0x6c, 0xf0, 0xf2, 0x8b, 0x88, 0xc5, 0x41, 0xb0, 0xc1, 0xcb, 0x31, 0x22, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0xdf, 0x60, 0x2d, 0xaf, 0xd3, 0xc1, 0xe3, 0x36, 0x22, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x6e, 0x48, 0x04, 0x6c, 0x48, 0x1d, 0x6c, 0xb0, 0x08, 0xa3, 0x6a, 0x83, 0x47, 0xb3, 0x3d, 0x1c, 0x52, 0x07, 0xc7, 0xe3, 0x05, 0xc1, 0x06, 0xab, 0xd6, 0xa8, 0x0e, 0x5e, 0x88, 0x14, 0xb1, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0xc1, 0xcb, 0x31, 0x22, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0xdf, 0x60, 0xa5, 0xcb, 0xd3, 0x82, 0x60, 0x41, 0x32, 0x30, 0x77, 0x87, 0xe4, 0xd2, 0xa1, 0x51, 0xcb, 0xc1, 0x5a, 0x25, 0xae, 0xe3, 0xd0, 0xf1, 0x78, 0x10, 0x6c, 0xb0, 0xa6, 0xe5, 0x68, 0x71, 0xd8, 0x0d, 0x89, 0x80, 0x85, 0xdd, 0xa0, 0xe8, 0x49, 0xd8, 0x90, 0x3a, 0xd8, 0x60, 0x8d, 0x8b, 0xd3, 0x1a, 0x14, 0x7b, 0x10, 0x87, 0x18, 0xae, 0xc1, 0x32, 0x4e, 0xa4, 0x43, 0xc3, 0xaf, 0x43, 0xea, 0x60, 0x90, 0xad, 0xa1, 0xfd, 0xfa, 0x41, 0xb3, 0x0f, 0x4d, 0x1b, 0x2c, 0x78, 0x70, 0x5a, 0xd8, 0x0d, 0x8a, 0x9e, 0x84, 0x0d, 0x0d, 0xbf, 0x36, 0x58, 0xd4, 0xba, 0xb4, 0x41, 0xb1, 0x07, 0x71, 0x68, 0xf8, 0x75, 0x48, 0x1d, 0x1c, 0x8f, 0x8f, 0xc7, 0x83, 0x60, 0xf1, 0xa0, 0x80, 0x16, 0x1c, 0x04, 0x1b, 0xac, 0x5a, 0xa3, 0x5a, 0x5c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x5a, 0x30, 0x1e, 0x04, 0x1b, 0xb4, 0x8d, 0x45, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xaa, 0x39, 0x08, 0x52, 0xfc, 0xe3, 0xd0, 0x21, 0xb9, 0x74, 0x3c, 0x5e, 0x0d, 0x96, 0xbb, 0x2d, 0x2d, 0x1e, 0x34, 0xae, 0x5b, 0x30, 0x08, 0x36, 0x18, 0x21, 0x51, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x16, 0x56, 0x98, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xec, 0xc2, 0x2e, 0xf4, 0x20, 0xc1, 0x00, 0xe1, 0xb0, 0xbe, 0xb9, 0x20, 0xdb, 0x10, 0x97, 0x41, 0xb0, 0x38, 0xec, 0x06, 0x0f, 0x34, 0x86, 0x58, 0xd8, 0x85, 0xdb, 0x60, 0x7d, 0x83, 0xd1, 0x21, 0x5f, 0xbb, 0x41, 0x6b, 0x83, 0xf3, 0x83, 0x60, 0x83, 0x96, 0x09, 0xe2, 0x0f, 0x7b, 0xbc, 0xc3, 0x2e, 0xec, 0x06, 0xc5, 0x65, 0xd3, 0xc2, 0x6d, 0xb0, 0x9c, 0xa7, 0xea, 0x90, 0xb5, 0x3b, 0x1c, 0xed, 0x0b, 0x92, 0x21, 0x83, 0x68, 0x81, 0xb0, 0x0f, 0x82, 0x05, 0xc1, 0x06, 0x43, 0xce, 0x7a, 0x90, 0x0c, 0x0c, 0xd5, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc1, 0x06, 0x43, 0xce, 0x7a, 0x90, 0x0c, 0x94, 0xab, 0x83, 0x16, 0x59, 0x5f, 0x0e, 0xd6, 0xa1, 0xf2, 0x1f, 0x87, 0x0e, 0xde, 0x30, 0xeb, 0x70, 0x10, 0x24, 0xe8, 0xc3, 0x6e, 0xf0, 0x30, 0x25, 0x88, 0x35, 0x58, 0x11, 0x77, 0xb4, 0xa1, 0x87, 0xd0, 0x41, 0x08, 0x37, 0x0f, 0xbb, 0xb0, 0x1b, 0x14, 0x97, 0x4d, 0x0b, 0xb7, 0xc1, 0x62, 0x3f, 0xaa, 0x43, 0xd6, 0xee, 0x70, 0xb4, 0x6f, 0x10, 0xc2, 0xcd, 0xc3, 0x2e, 0xec, 0x06, 0xc5, 0x65, 0xd3, 0xc2, 0x6d, 0xc8, 0x7d, 0x1f, 0xb2, 0x76, 0x87, 0xa3, 0x7d, 0x0d, 0x16, 0x1d, 0x21, 0x1d, 0x9c, 0xf9, 0x6a, 0x87, 0x5d, 0xd8, 0x0d, 0x8a, 0xcb, 0xa6, 0x85, 0xdb, 0x60, 0x81, 0x2e, 0xd5, 0x21, 0x6b, 0x77, 0x38, 0xda, 0x17, 0x64, 0x6b, 0xc8, 0x63, 0x2f, 0x0e, 0x82, 0x0d, 0xde, 0x06, 0xdd, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0xd1, 0xd2, 0x0d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x2f, 0x6e, 0x98, 0xb8, 0x35, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0x1d, 0xb4, 0xba, 0x17, 0x71, 0xd0, 0xae, 0x57, 0xc5, 0xf0, 0x1b, 0xcf, 0x37, 0x58, 0xa0, 0x4b, 0x75, 0xc8, 0xd7, 0x1e, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x88, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x21, 0x67, 0x3d, 0x48, 0x06, 0xaa, 0xd7, 0x41, 0x8b, 0xac, 0x2f, 0x87, 0x3d, 0xde, 0xe3, 0xf1, 0xb0, 0x0b, 0xbb, 0x41, 0x71, 0xd9, 0xb4, 0x70, 0x1b, 0xac, 0x32, 0xa5, 0x3a, 0x64, 0xed, 0x0e, 0x47, 0xfb, 0x82, 0x64, 0xc8, 0x20, 0x5a, 0x10, 0x6f, 0xb0, 0x80, 0xc0, 0x6a, 0x10, 0x6c, 0xd0, 0xe8, 0xb9, 0xfe, 0x41, 0x53, 0x5d, 0x2d, 0xc7, 0xe3, 0x61, 0x17, 0x76, 0x83, 0xe2, 0xb2, 0x69, 0xe1, 0x36, 0x58, 0xa2, 0x4c, 0x75, 0xc8, 0xda, 0x1d, 0x8e, 0xf6, 0x0d, 0x42, 0xb8, 0x79, 0xd8, 0x85, 0xdd, 0xa0, 0xb8, 0x6c, 0x5a, 0xb8, 0x0d, 0x16, 0xb9, 0x53, 0x1d, 0xb2, 0x76, 0x87, 0xa3, 0x7d, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x88, 0x37, 0x58, 0x40, 0x60, 0x35, 0x08, 0x16, 0x24, 0x03, 0xb5, 0xeb, 0x78, 0x7e, 0xd0, 0x54, 0x57, 0xcb, 0xf1, 0x78, 0xd8, 0x85, 0xdd, 0xa0, 0xb8, 0x6c, 0x5a, 0xb8, 0x0d, 0x16, 0x1c, 0x54, 0x1d, 0xb2, 0x76, 0x87, 0xa3, 0x7d, 0x83, 0x10, 0x6e, 0x1e, 0x76, 0x61, 0x37, 0x28, 0x2e, 0x9b, 0x16, 0x6e, 0x83, 0x45, 0x18, 0x55, 0x87, 0xac, 0xdd, 0xe1, 0x68, 0x5f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xae, 0x1f, 0x7a, 0x08, 0x1d, 0x84, 0x7b, 0xf3, 0xb0, 0x0b, 0xbb, 0x41, 0x71, 0xd9, 0xb4, 0x70, 0x1b, 0xac, 0xe4, 0xaa, 0x3a, 0x64, 0xed, 0x0e, 0x47, 0xfb, 0x06, 0x81, 0x7f, 0x3e, 0xec, 0xc2, 0x6e, 0x50, 0x5c, 0x36, 0x2d, 0xdc, 0x06, 0x0b, 0xd8, 0xaa, 0x0e, 0x59, 0xbb, 0xc3, 0xd1, 0xbe, 0x41, 0x6b, 0x83, 0xf3, 0xc3, 0x2e, 0xec, 0x06, 0xc5, 0x65, 0xd3, 0xc2, 0x6d, 0xb0, 0x68, 0xaf, 0xea, 0x90, 0xb5, 0x3b, 0x1c, 0xed, 0x0b, 0x82, 0xc5, 0x61, 0x37, 0x28, 0xaa, 0x14, 0x16, 0x24, 0x43, 0x0e, 0x06, 0xe0, 0xff, 0x06, 0x8f, 0x4d, 0x8d, 0x18, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf6, 0x83, 0x16, 0xc6, 0x5d, 0x8e, 0xc7, 0xc7, 0xb7, 0x61, 0x17, 0x76, 0x83, 0xe2, 0xb2, 0x69, 0xe1, 0x36, 0x58, 0xc8, 0x58, 0x75, 0xc8, 0xda, 0x1d, 0x8e, 0xf6, 0x05, 0xc1, 0xe2, 0xb0, 0x1b, 0x14, 0x55, 0x0a, 0x07, 0xef, 0x53, 0x8d, 0x38, 0xbe, 0x0d, 0xbb, 0xb0, 0x1b, 0x14, 0x97, 0x4d, 0x0b, 0xb7, 0xc1, 0x02, 0xde, 0xaa, 0x43, 0xd6, 0xee, 0x70, 0xb4, 0x6f, 0xd0, 0xda, 0xe0, 0xfc, 0xb0, 0x0b, 0xbb, 0x41, 0x71, 0xd9, 0xb4, 0x70, 0x1b, 0x2c, 0x5f, 0xad, 0x3a, 0x64, 0xed, 0x0e, 0x47, 0xfb, 0x06, 0x21, 0xdc, 0x3c, 0xec, 0xc2, 0x6e, 0x50, 0x5c, 0x36, 0x2d, 0xdc, 0x06, 0x2b, 0x55, 0xaa, 0x0e, 0x59, 0xbb, 0xc3, 0xd1, 0xbe, 0x41, 0x08, 0x37, 0x0f, 0xbb, 0xb0, 0x1b, 0x14, 0x97, 0x4d, 0x0b, 0xb7, 0xc1, 0xa2, 0xe5, 0xaa, 0x43, 0xd6, 0xee, 0x70, 0xb4, 0x6f, 0x10, 0xc2, 0xcd, 0xc3, 0x2e, 0xec, 0x06, 0xc5, 0x65, 0xd3, 0xc2, 0x6d, 0xb0, 0x6c, 0xbb, 0xea, 0x90, 0xb5, 0x3b, 0x1c, 0xed, 0x6b, 0xb0, 0x04, 0xf7, 0x68, 0x0d, 0xd6, 0x87, 0x60, 0x1d, 0x7a, 0x08, 0x1d, 0x84, 0x70, 0xf3, 0xb0, 0x0b, 0xbb, 0x41, 0x71, 0xd9, 0xb4, 0x70, 0x1b, 0x2c, 0x20, 0xb0, 0x3a, 0x64, 0xed, 0x0e, 0x47, 0xfb, 0x1a, 0xac, 0x57, 0x6e, 0xda, 0x60, 0xf4, 0x5a, 0x1d, 0xf2, 0xb5, 0xc3, 0x2e, 0xec, 0x06, 0xc5, 0x65, 0xd3, 0xc2, 0x6d, 0xb0, 0x84, 0xc2, 0xea, 0x90, 0xb5, 0x3b, 0x1c, 0xed, 0x1b, 0x04, 0xfe, 0xf9, 0xb0, 0x0b, 0xbb, 0x41, 0x71, 0xd9, 0xb4, 0x70, 0x1b, 0x2c, 0x22, 0xb1, 0x3a, 0x64, 0xed, 0x0e, 0x47, 0xfb, 0x1a, 0xac, 0xef, 0x5b, 0x3a, 0x78, 0xe0, 0x13, 0xc4, 0xb0, 0x0b, 0xbb, 0x41, 0x71, 0xd9, 0xb4, 0x70, 0x1b, 0xac, 0x2e, 0xb2, 0x3a, 0x64, 0xed, 0x0e, 0x47, 0xfb, 0x1a, 0x2c, 0x6a, 0x5d, 0x3a, 0x78, 0xed, 0x5d, 0xc4, 0xb0, 0x0b, 0xbb, 0x41, 0x71, 0xd9, 0xb4, 0x70, 0x1b, 0xac, 0xb8, 0xb2, 0x3a, 0x64, 0xed, 0x0e, 0x47, 0xfb, 0x06, 0x81, 0x7f, 0x3e, 0xec, 0xc2, 0x6e, 0x50, 0x5c, 0x36, 0x2d, 0xdc, 0x06, 0x4b, 0xcc, 0xac, 0x0e, 0x59, 0xbb, 0xc3, 0xd1, 0xbe, 0xc1, 0x53, 0x5e, 0x23, 0x86, 0x5d, 0xd8, 0x0d, 0x8a, 0xcb, 0xa6, 0x85, 0xdb, 0x60, 0xf1, 0x66, 0xd5, 0x21, 0x6b, 0x77, 0x38, 0xda, 0x37, 0x68, 0x6d, 0x70, 0x7e, 0xd8, 0x85, 0xdd, 0xa0, 0xb8, 0x6c, 0x5a, 0xb8, 0x0d, 0x96, 0xcf, 0x57, 0x1d, 0xb2, 0x76, 0x87, 0xa3, 0x7d, 0x83, 0xd6, 0x06, 0xe7, 0x87, 0x5d, 0xd8, 0x0d, 0x8a, 0xcb, 0xa6, 0x85, 0xdb, 0x60, 0x6d, 0x8d, 0xd5, 0x21, 0x6b, 0x77, 0x38, 0xda, 0x37, 0x68, 0x6d, 0x70, 0x7e, 0x90, 0xad, 0xa1, 0xfd, 0xfa, 0xb0, 0x1b, 0x14, 0x97, 0x4d, 0x0b, 0xb7, 0xc1, 0x52, 0x3b, 0xab, 0x43, 0xd6, 0xee, 0x70, 0xb4, 0x1f, 0xb4, 0x36, 0x38, 0x7f, 0x7c, 0x3b, 0x58, 0xe1, 0x93, 0x75, 0x1c, 0x3a, 0x0e, 0xad, 0x20, 0x58, 0x1c, 0x76, 0x83, 0xc7, 0x1c, 0x43, 0x2c, 0xec, 0xc2, 0x6e, 0xb0, 0x6c, 0x30, 0x68, 0xe1, 0x36, 0x58, 0x78, 0x61, 0x74, 0xe8, 0x21, 0x74, 0x38, 0xda, 0x17, 0x76, 0x83, 0x20, 0x69, 0x5e, 0x3c, 0x68, 0x3a, 0xf3, 0xe2, 0x20, 0x70, 0x9a, 0x0f, 0x31, 0x1c, 0x76, 0x83, 0x47, 0x2c, 0x41, 0x6c, 0x10, 0xc2, 0xcd, 0xc3, 0x6e, 0xf0, 0xb6, 0xbc, 0x88, 0x0d, 0x42, 0xb8, 0x79, 0xd8, 0x0d, 0x5e, 0xc2, 0x17, 0xb1, 0x41, 0x00, 0x3e, 0x0f, 0xbb, 0xc1, 0x93, 0xfe, 0x22, 0x36, 0x2c, 0xa3, 0x0e, 0xbb, 0xc1, 0xbb, 0x1b, 0x23, 0x16, 0x76, 0x83, 0x60, 0x7b, 0xde, 0x10, 0xc3, 0x61, 0x37, 0x78, 0x5f, 0x34, 0xc4, 0x06, 0xcf, 0x94, 0x85, 0x18, 0x76, 0xe1, 0x36, 0xc4, 0x70, 0x82, 0x40, 0x6f, 0x88, 0xe1, 0x04, 0x33, 0x3d, 0xec, 0x06, 0xcf, 0xad, 0x8c, 0x58, 0x10, 0x6c, 0xb0, 0x98, 0x39, 0x67, 0x90, 0x0c, 0x84, 0xef, 0x60, 0x6d, 0x27, 0xff, 0xb0, 0x1b, 0x3c, 0x60, 0x32, 0x62, 0x83, 0x10, 0x6e, 0x1e, 0x76, 0x83, 0x47, 0x77, 0x46, 0x6c, 0x10, 0xc2, 0xcd, 0xc3, 0x6e, 0xf0, 0x8c, 0xcd, 0x88, 0x0d, 0x42, 0xb8, 0x79, 0xd8, 0x0d, 0x5e, 0xe2, 0x16, 0xb1, 0x41, 0xe0, 0x9f, 0x0f, 0xbb, 0xc1, 0x7b, 0x43, 0x23, 0x36, 0x08, 0xfc, 0xf3, 0x61, 0x37, 0x78, 0x1d, 0x69, 0xc4, 0x82, 0x60, 0x83, 0xc5, 0xcc, 0x39, 0x83, 0x64, 0x20, 0x7c, 0x87, 0xed, 0xde, 0x61, 0x37, 0x78, 0xd1, 0x69, 0xc4, 0x06, 0x81, 0x7f, 0x3e, 0xec, 0x06, 0x0f, 0x6e, 0x8d, 0xd8, 0x20, 0xf0, 0xcf, 0x87, 0xdd, 0xe0, 0xa9, 0xd3, 0x11, 0x1b, 0x62, 0x38, 0xec, 0x06, 0xef, 0xa4, 0x8d, 0xd8, 0x20, 0x84, 0x9b, 0x87, 0xdd, 0xe0, 0x55, 0xb7, 0x11, 0x1b, 0x84, 0x70, 0xf3, 0xb0, 0x1b, 0xbc, 0x39, 0x36, 0x62, 0x83, 0xc0, 0x3f, 0x1f, 0x76, 0x83, 0x37, 0xe8, 0x46, 0x6c, 0x10, 0xc2, 0xcd, 0xc3, 0x6e, 0xf0, 0x62, 0xde, 0x88, 0x0d, 0x42, 0xb8, 0x79, 0xd8, 0x0d, 0x9e, 0x67, 0x1d, 0xb1, 0x21, 0x86, 0xc3, 0x6e, 0xf0, 0x7e, 0xe0, 0x88, 0x0d, 0x5e, 0x7e, 0x1f, 0x31, 0xec, 0x06, 0x2f, 0x25, 0x8e, 0xd8, 0x20, 0xf0, 0xcf, 0x87, 0xdd, 0xe0, 0x5d, 0xc7, 0x11, 0x1b, 0x84, 0x70, 0xf3, 0xb0, 0x1b, 0x3c, 0x29, 0x3b, 0x62, 0x43, 0x0c, 0x87, 0xdd, 0xe0, 0xbd, 0xca, 0x11, 0x1b, 0x84, 0x70, 0xf3, 0xb0, 0x1b, 0xbc, 0xc3, 0x39, 0x62, 0x83, 0x10, 0x6e, 0x1e, 0x76, 0x83, 0x57, 0x43, 0x47, 0x6c, 0x10, 0xf8, 0xe7, 0x83, 0x6c, 0x0d, 0xed, 0xd7, 0x0f, 0xde, 0xc8, 0x1d, 0x71, 0x88, 0xe1, 0xf1, 0x6d, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0xd8, 0x60, 0x2d, 0xd4, 0xfe, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xaa, 0x66, 0xf8, 0x8d, 0xe7, 0x07, 0xa5, 0x1d, 0xd9, 0x71, 0xe8, 0x78, 0xbc, 0x20, 0xdb, 0x10, 0x97, 0x61, 0x37, 0x78, 0xed, 0x8e, 0xc3, 0x82, 0x60, 0x83, 0x11, 0x12, 0x35, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0xf5, 0x26, 0xda, 0xa1, 0x83, 0xc6, 0x71, 0x68, 0xd8, 0x0d, 0x9a, 0xc8, 0x51, 0x59, 0x90, 0x0c, 0x6e, 0x0d, 0xa2, 0x05, 0xc2, 0xbd, 0xa1, 0x91, 0xe0, 0x41, 0xd8, 0x53, 0x1f, 0x2c, 0xa8, 0xdb, 0x19, 0x76, 0x61, 0x37, 0x74, 0x1c, 0xd9, 0x60, 0x81, 0x1f, 0xd5, 0xe1, 0x68, 0x5f, 0x90, 0x0c, 0x6e, 0x0d, 0xa2, 0x05, 0xc6, 0xfb, 0x20, 0x70, 0xbc, 0x0f, 0x16, 0xd4, 0xed, 0x0c, 0xbb, 0xc1, 0xbb, 0xcd, 0x1c, 0x16, 0x04, 0x1b, 0x8c, 0x90, 0xa8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x37, 0x58, 0x74, 0x84, 0x74, 0x30, 0xc2, 0xd3, 0x8e, 0x43, 0xc3, 0x2e, 0xec, 0x86, 0x8e, 0x23, 0x1b, 0xac, 0x2c, 0xa5, 0x3a, 0x1c, 0xed, 0x0b, 0x92, 0xc1, 0xad, 0x41, 0xb4, 0xb0, 0x1b, 0x2c, 0x20, 0xb0, 0x1a, 0x04, 0x1b, 0x0c, 0x24, 0xa8, 0x83, 0xc4, 0x1c, 0x93, 0xe3, 0xf1, 0xb0, 0x0b, 0xbb, 0xa1, 0xe3, 0xc8, 0x06, 0x8b, 0x72, 0xa9, 0x0e, 0x47, 0xfb, 0x1a, 0xac, 0x13, 0x41, 0x3a, 0x8c, 0xcb, 0xb0, 0x0b, 0xbb, 0xa1, 0xe3, 0xc8, 0x06, 0xcb, 0x92, 0xa9, 0x0e, 0x47, 0xfb, 0x82, 0x64, 0x70, 0x6b, 0x10, 0x2d, 0x30, 0xde, 0x1b, 0x62, 0xb8, 0xc1, 0x12, 0x65, 0xaa, 0x0d, 0x86, 0x17, 0xc5, 0x86, 0x18, 0x0e, 0x82, 0x0d, 0xd2, 0xb8, 0x4f, 0x0e, 0xd6, 0x8d, 0x31, 0x1d, 0x2c, 0xa8, 0xdb, 0x19, 0x76, 0x61, 0x37, 0x74, 0x1c, 0xd9, 0x60, 0x61, 0x3b, 0xd5, 0xe1, 0x68, 0x5f, 0x90, 0x0c, 0x6e, 0x0d, 0xa2, 0x85, 0xdd, 0x60, 0x01, 0x81, 0xd5, 0x20, 0xd8, 0xd0, 0x38, 0xe5, 0x20, 0x31, 0xc7, 0xe4, 0x78, 0x3c, 0xec, 0xc2, 0x6e, 0xe8, 0x38, 0xb2, 0xc1, 0x22, 0x83, 0xaa, 0xc3, 0xd1, 0xbe, 0x20, 0x19, 0xdc, 0x1a, 0x44, 0x0b, 0x8c, 0xf7, 0x86, 0x18, 0x6e, 0xb0, 0x44, 0x99, 0xea, 0xa0, 0xe5, 0xd6, 0x94, 0x83, 0x05, 0x75, 0x3b, 0xc3, 0x2e, 0xec, 0x86, 0x8e, 0x23, 0x1b, 0x2c, 0xbc, 0xa8, 0x3a, 0x1c, 0xed, 0x0b, 0x92, 0xc1, 0xad, 0x41, 0xb4, 0xa0, 0xfa, 0xd0, 0x48, 0xf0, 0x60, 0x41, 0xdd, 0xce, 0xb0, 0x0b, 0xbb, 0xa1, 0xe3, 0xc8, 0x06, 0x8b, 0xd6, 0xaa, 0x0e, 0x47, 0xfb, 0x82, 0x60, 0x83, 0x11, 0x12, 0x35, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0x61, 0x85, 0xd9, 0xa1, 0x83, 0xc6, 0x71, 0x68, 0xd8, 0x85, 0xdd, 0xd0, 0x71, 0x64, 0x83, 0x85, 0x7a, 0x55, 0x87, 0xa3, 0x7d, 0x41, 0xb0, 0xc1, 0x08, 0x89, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x0e, 0xbb, 0x41, 0x90, 0x34, 0x2f, 0xfc, 0x82, 0x64, 0x30, 0x3b, 0x68, 0x8c, 0x3f, 0xe5, 0xd0, 0xc5, 0x64, 0x83, 0x57, 0x0f, 0x49, 0x0c, 0xbf, 0x20, 0x19, 0xcc, 0x06, 0xd1, 0x82, 0xf4, 0x20, 0x01, 0x0f, 0xe4, 0x78, 0x7e, 0xe8, 0x62, 0x72, 0x7c, 0x3b, 0x0e, 0x0d, 0xbb, 0xb0, 0x1b, 0x3a, 0x8e, 0x6c, 0xb0, 0x68, 0xb7, 0xea, 0x70, 0xb4, 0x2f, 0x08, 0x36, 0x18, 0x21, 0x51, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x85, 0xdf, 0xe0, 0xb4, 0x82, 0x7b, 0xb0, 0xba, 0x17, 0xe6, 0x20, 0x31, 0xc7, 0xe4, 0x38, 0x34, 0xec, 0xc2, 0x6e, 0xe8, 0x38, 0xb2, 0xc1, 0xa2, 0x01, 0xab, 0xc3, 0xd1, 0xbe, 0x20, 0xd8, 0x60, 0x84, 0x44, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x58, 0x58, 0x61, 0x36, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x06, 0xeb, 0x95, 0x9b, 0x36, 0x68, 0x44, 0xca, 0xfd, 0x30, 0x2e, 0xc7, 0xa1, 0xe3, 0xd0, 0xb0, 0x0b, 0xbb, 0xa1, 0xe3, 0xc8, 0x06, 0x0b, 0x47, 0xac, 0x0e, 0x47, 0xfb, 0x1a, 0x2c, 0x77, 0x5b, 0x5a, 0x90, 0x0c, 0x6e, 0x1d, 0x2c, 0xa8, 0xdb, 0x19, 0x04, 0x1b, 0x2c, 0xac, 0x30, 0x3b, 0x34, 0x05, 0x1a, 0x76, 0x61, 0x37, 0x74, 0x1c, 0xd9, 0x60, 0xa9, 0x76, 0xd5, 0xe1, 0x68, 0x5f, 0x10, 0x6c, 0x30, 0x42, 0xa2, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0xdf, 0x60, 0x09, 0xee, 0xd1, 0x1a, 0xac, 0x0f, 0xc1, 0x3a, 0x34, 0x12, 0x3c, 0x78, 0xee, 0x95, 0xc4, 0x71, 0x68, 0xd8, 0x85, 0xdd, 0xd0, 0x71, 0x64, 0x83, 0x15, 0x45, 0x56, 0x87, 0xa3, 0x7d, 0x41, 0xb0, 0xc1, 0x08, 0x89, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x83, 0x45, 0xad, 0x4b, 0x1b, 0x1a, 0x09, 0x0e, 0xbf, 0x20, 0x19, 0xcc, 0x0e, 0x16, 0xd4, 0xed, 0x1c, 0xba, 0x98, 0x1c, 0x87, 0x86, 0x5d, 0xd8, 0x0d, 0x1d, 0x47, 0x36, 0x58, 0xb0, 0x59, 0x75, 0x38, 0xda, 0x17, 0x04, 0x1b, 0x8c, 0x90, 0xa8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x0b, 0x2b, 0xcc, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x9c, 0x7f, 0xc2, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xb4, 0x53, 0x59, 0x72, 0x70, 0xe6, 0xab, 0x3d, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0xc3, 0x2e, 0xec, 0x86, 0x8e, 0x23, 0x1b, 0x2c, 0x99, 0xaf, 0x3a, 0x1c, 0xed, 0x0b, 0x82, 0x0d, 0x46, 0x48, 0xd4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x85, 0x15, 0x66, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xce, 0x3f, 0xe1, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xda, 0xbf, 0x30, 0x39, 0x38, 0xf3, 0xd5, 0x1e, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0x61, 0x17, 0x76, 0x43, 0xc7, 0x91, 0x85, 0xdb, 0x60, 0xa9, 0x9d, 0xd5, 0x21, 0x9a, 0x87, 0xa3, 0x7d, 0x41, 0xb0, 0xc1, 0x08, 0x89, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0xb0, 0xc2, 0x6c, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0xf9, 0x27, 0x7c, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x33, 0x5c, 0x26, 0x07, 0x67, 0xbe, 0xda, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x34, 0xec, 0xc2, 0x6e, 0xe8, 0x38, 0xb2, 0xc1, 0x7a, 0x1a, 0xab, 0xc3, 0xd1, 0xbe, 0x20, 0xd8, 0x60, 0x84, 0x44, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x58, 0x58, 0x61, 0x36, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0xfc, 0x13, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0xf5, 0x1e, 0x93, 0x83, 0x33, 0x5f, 0xed, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x1a, 0x64, 0x1b, 0x9a, 0xaf, 0x6f, 0xb0, 0xe0, 0xc1, 0x69, 0x83, 0xf3, 0x13, 0xed, 0x20, 0x58, 0xf8, 0x05, 0xc1, 0x06, 0x25, 0x43, 0xd3, 0x20, 0x19, 0x72, 0xb0, 0x6a, 0x3f, 0xe5, 0xe0, 0x91, 0x8e, 0x09, 0x83, 0x64, 0xf0, 0x6f, 0x10, 0x2d, 0xec, 0xa1, 0xf1, 0xfc, 0x71, 0x68, 0x05, 0xc1, 0x06, 0x6b, 0x5a, 0x8e, 0x16, 0x07, 0xc1, 0xc2, 0x2e, 0xdc, 0x86, 0xa3, 0xfd, 0x90, 0xec, 0xd8, 0x20, 0xe4, 0xb3, 0x07, 0xc1, 0x06, 0xe9, 0x20, 0xdd, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xc6, 0xd8, 0xd3, 0xf0, 0x1b, 0xcf, 0x37, 0x78, 0x1f, 0x2c, 0xc1, 0x21, 0x86, 0xc7, 0xa1, 0x61, 0x37, 0x18, 0xf5, 0x92, 0x1b, 0x52, 0x35, 0x1b, 0xac, 0x4b, 0x6f, 0x5a, 0x83, 0x65, 0x9c, 0x48, 0xc7, 0xa1, 0x43, 0xaa, 0xe6, 0x78, 0xbc, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x05, 0xd1, 0xc2, 0x1f, 0xa4, 0x7f, 0x29, 0x1c, 0x8f, 0x57, 0x10, 0x6c, 0xb0, 0xbe, 0xc1, 0x68, 0x71, 0xd8, 0x85, 0xdd, 0xd0, 0x71, 0x64, 0x83, 0x95, 0xb3, 0x52, 0x87, 0xa3, 0x7d, 0x0d, 0x96, 0xbb, 0x2d, 0x2d, 0x48, 0x06, 0xb7, 0x0e, 0xd9, 0x8a, 0x0d, 0x96, 0xc8, 0x3e, 0x2d, 0x1e, 0x34, 0xd3, 0x39, 0xb0, 0x06, 0x2b, 0x9a, 0x95, 0x16, 0x0f, 0x5a, 0x00, 0x1d, 0x58, 0x83, 0xa5, 0x5a, 0x48, 0x1b, 0x14, 0xaf, 0x91, 0x87, 0x71, 0x39, 0x48, 0xc6, 0xa4, 0xdf, 0x60, 0xf5, 0xc3, 0xd3, 0x06, 0xef, 0x12, 0x89, 0xd8, 0x20, 0x19, 0x93, 0xfe, 0x60, 0x4d, 0xcb, 0xd1, 0xb0, 0x1b, 0x2c, 0x96, 0x31, 0x5a, 0x83, 0xe5, 0x6e, 0x4b, 0x1b, 0xbc, 0x8e, 0x53, 0x62, 0x10, 0x6c, 0xf0, 0x2e, 0x91, 0x88, 0x35, 0x58, 0xc6, 0x89, 0xb4, 0xc1, 0x68, 0xa3, 0x3d, 0x0e, 0x6d, 0xb0, 0x8c, 0x13, 0x69, 0x83, 0x54, 0xe2, 0x8e, 0xe3, 0xd0, 0xb0, 0x1b, 0x2c, 0xfe, 0x31, 0x5a, 0x83, 0x45, 0x9e, 0x4e, 0x6b, 0xb0, 0x18, 0x66, 0x69, 0xf1, 0xa0, 0x91, 0xed, 0x81, 0x83, 0x51, 0xca, 0xb9, 0xc1, 0xab, 0xdf, 0x1f, 0x36, 0x58, 0xb2, 0xed, 0xb4, 0x06, 0x8b, 0x61, 0x96, 0x16, 0x0f, 0x5a, 0x17, 0x2b, 0x38, 0x18, 0xa5, 0x9c, 0x07, 0xef, 0x71, 0x7f, 0x18, 0x76, 0x83, 0xc5, 0x25, 0x46, 0x1b, 0x24, 0x63, 0xd2, 0x0f, 0xbb, 0xc1, 0x92, 0x26, 0xa3, 0x35, 0x58, 0xb2, 0xed, 0xb4, 0x06, 0x8b, 0x61, 0x96, 0x36, 0x78, 0xbd, 0x58, 0xc4, 0xc1, 0x28, 0xe5, 0x3c, 0x68, 0x6d, 0x70, 0x7e, 0x90, 0xad, 0xa1, 0xfd, 0xfa, 0x41, 0x93, 0xc6, 0x4d, 0x07, 0x6b, 0x5a, 0x8e, 0x8e, 0xc7, 0x87, 0x45, 0xbe, 0x05, 0xc1, 0xe2, 0xc1, 0x71, 0xf1, 0x64, 0x71, 0x10, 0x2c, 0x0e, 0xbb, 0x61, 0x05, 0x75, 0xe1, 0x17, 0x24, 0xc3, 0x0c, 0xa2, 0x05, 0xf3, 0x43, 0xd6, 0xee, 0xb0, 0x42, 0x7b, 0xf0, 0xde, 0xb4, 0x80, 0x41, 0xb0, 0x20, 0x19, 0x32, 0x88, 0x16, 0xc4, 0x07, 0x67, 0xbe, 0xda, 0xe3, 0xf1, 0x06, 0x8b, 0x3c, 0x9d, 0xd6, 0x60, 0xe9, 0xf3, 0xd1, 0x1a, 0xac, 0x57, 0x6e, 0xda, 0x60, 0xb4, 0xd1, 0x0e, 0xbf, 0x20, 0x19, 0x66, 0x10, 0x2d, 0x98, 0x1f, 0xe2, 0x7f, 0xc8, 0x56, 0x1c, 0x1c, 0x52, 0xd5, 0x07, 0xc9, 0xe0, 0xde, 0x20, 0x5a, 0xd8, 0x41, 0xb0, 0x41, 0x9b, 0x53, 0x23, 0x07, 0x27, 0x75, 0xe3, 0x43, 0xb6, 0x62, 0xe1, 0x37, 0x78, 0x9f, 0xaf, 0xc4, 0xc1, 0x7b, 0xd3, 0x02, 0x8e, 0x43, 0xc7, 0xb7, 0xe3, 0xf1, 0x82, 0x60, 0x83, 0x17, 0xda, 0x4a, 0x2c, 0x0e, 0xbb, 0x61, 0xd7, 0x60, 0xe1, 0x37, 0x68, 0xed, 0x86, 0xe4, 0xe0, 0xbd, 0x69, 0x01, 0x1b, 0x2c, 0xf2, 0x74, 0x5a, 0x83, 0xa5, 0xcf, 0x47, 0x0b, 0xbf, 0x41, 0x6b, 0x37, 0x24, 0x07, 0x87, 0x54, 0xf5, 0x83, 0x77, 0x89, 0x44, 0x6c, 0xf0, 0x30, 0x63, 0x89, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc1, 0x08, 0x4f, 0x3b, 0x1e, 0x1f, 0x8f, 0x37, 0x18, 0xa8, 0x6a, 0x83, 0x6c, 0x43, 0x5c, 0x86, 0xdd, 0xe0, 0x89, 0x71, 0x10, 0x0b, 0x82, 0x0d, 0x06, 0xe7, 0xe3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe1, 0x37, 0x28, 0x19, 0x9a, 0x0e, 0xce, 0x4f, 0xb4, 0x07, 0x0d, 0x91, 0x09, 0x1c, 0x87, 0x86, 0xdd, 0xe0, 0xc5, 0x81, 0x10, 0x0b, 0x92, 0xc1, 0xbf, 0x41, 0xb4, 0x40, 0xb9, 0xdf, 0xd0, 0x02, 0xe8, 0x20, 0xcd, 0x3d, 0xe3, 0xa0, 0x90, 0x52, 0x19, 0x76, 0x61, 0x37, 0x58, 0x03, 0xfe, 0xbf, 0x70, 0x1b, 0x2c, 0xf6, 0xa3, 0x3a, 0xc4, 0xff, 0x70, 0xb4, 0x2f, 0x48, 0x06, 0xff, 0x06, 0xd1, 0x02, 0xe7, 0xfd, 0x41, 0x21, 0x94, 0x70, 0x50, 0x48, 0xa9, 0x0c, 0xbb, 0xc1, 0xeb, 0x0a, 0x21, 0x16, 0x04, 0x1b, 0x0c, 0xce, 0xc7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x37, 0x58, 0xb2, 0xed, 0xb4, 0x06, 0x8b, 0x61, 0x96, 0x36, 0x58, 0x17, 0x0d, 0xb6, 0xc1, 0xa2, 0x23, 0xa4, 0x83, 0x42, 0x4b, 0x61, 0x83, 0x45, 0x47, 0x48, 0x07, 0x2d, 0x7b, 0xb5, 0x1c, 0x87, 0x86, 0x5d, 0xd8, 0x0d, 0xd6, 0x80, 0xff, 0x2f, 0xdc, 0x06, 0x8b, 0xdc, 0xa9, 0x0e, 0xf1, 0x3f, 0x1c, 0xed, 0x0b, 0x92, 0xc1, 0xbf, 0x41, 0xb4, 0x60, 0xbe, 0xc1, 0x02, 0x02, 0xab, 0x41, 0xb0, 0x20, 0x19, 0xa8, 0x5d, 0x87, 0xe4, 0xd2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x90, 0xcf, 0x3e, 0x08, 0x1e, 0xee, 0xe3, 0xd0, 0xf1, 0x78, 0xd8, 0x85, 0xdd, 0x60, 0x0d, 0xf8, 0xff, 0xc2, 0x6d, 0xb0, 0xca, 0x94, 0xea, 0x10, 0xff, 0xc3, 0xd1, 0xbe, 0x20, 0x19, 0xfc, 0x1b, 0x44, 0x0b, 0xe6, 0x1b, 0x2c, 0x20, 0xb0, 0x1a, 0x04, 0x1b, 0xac, 0x11, 0xed, 0x3f, 0x78, 0x57, 0xb9, 0xc4, 0xf1, 0x78, 0xd8, 0x85, 0xdd, 0x60, 0x0d, 0xf8, 0xff, 0xc2, 0x6d, 0xb0, 0x40, 0x97, 0xea, 0x10, 0xff, 0xc3, 0xd1, 0xbe, 0x20, 0xd8, 0x60, 0x70, 0x3e, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0xc1, 0xc2, 0x41, 0xa5, 0x35, 0x58, 0x27, 0x82, 0x74, 0x58, 0xfb, 0x3d, 0x58, 0x17, 0x0d, 0x76, 0x1c, 0x1a, 0x76, 0x83, 0xc7, 0x2f, 0x42, 0x2c, 0x48, 0x06, 0xff, 0x06, 0xd1, 0x02, 0xe7, 0xfd, 0x86, 0x18, 0x6e, 0xb0, 0x44, 0x99, 0xea, 0xa0, 0x51, 0xc6, 0xa4, 0x83, 0x42, 0x4a, 0x65, 0xd8, 0x85, 0xdd, 0x60, 0x0d, 0xf8, 0xff, 0xc2, 0x6d, 0xb0, 0x44, 0x99, 0xea, 0x10, 0xff, 0xc3, 0xd1, 0xbe, 0x20, 0x19, 0xfc, 0x1b, 0x44, 0x0b, 0x9c, 0xf7, 0x1b, 0x62, 0xb8, 0xc1, 0x12, 0x65, 0xaa, 0x0d, 0x82, 0x24, 0x7a, 0x43, 0x0c, 0x07, 0xc1, 0x82, 0x64, 0xf0, 0xea, 0x90, 0x5c, 0x3a, 0x68, 0x3b, 0x5e, 0xe5, 0xa0, 0x90, 0x52, 0x19, 0x76, 0x83, 0xb7, 0x40, 0x42, 0x2c, 0x48, 0x06, 0xff, 0x06, 0xd1, 0x02, 0xa1, 0x3f, 0xb4, 0x00, 0x3a, 0x28, 0xa4, 0x54, 0x86, 0x5d, 0xd8, 0x0d, 0xd6, 0x80, 0xff, 0x2f, 0xdc, 0x06, 0xcb, 0x79, 0xaa, 0x0e, 0xf1, 0x3f, 0x1c, 0xed, 0x6b, 0xb0, 0x96, 0x2c, 0x69, 0x41, 0x32, 0xf8, 0x37, 0x88, 0x16, 0x9c, 0x1f, 0x04, 0x1b, 0xb4, 0x8d, 0x45, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x28, 0x16, 0x1d, 0x04, 0x29, 0xfe, 0x71, 0xe8, 0xa0, 0xd0, 0x1a, 0x18, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0x4d, 0xe9, 0x37, 0x1d, 0x0c, 0xca, 0xab, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x6b, 0xa1, 0xf6, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0x94, 0x7e, 0xd3, 0x20, 0x19, 0x08, 0xd7, 0x41, 0xf3, 0x4b, 0x02, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x34, 0xde, 0x56, 0xbf, 0xb8, 0x21, 0x9a, 0x83, 0x64, 0xf0, 0x6f, 0x10, 0x2d, 0x38, 0x3f, 0x08, 0x36, 0x68, 0x7f, 0x19, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x50, 0x2c, 0x3a, 0x28, 0x09, 0x1a, 0x8e, 0x43, 0x83, 0x68, 0xc1, 0xfc, 0x30, 0x2e, 0x87, 0xe4, 0xd2, 0xf1, 0xf8, 0x38, 0x74, 0x1c, 0x3a, 0x78, 0x44, 0xa8, 0xc3, 0xb0, 0x0b, 0xbb, 0xc1, 0x1a, 0xf0, 0xff, 0x85, 0xdb, 0x60, 0x09, 0x85, 0xd5, 0x21, 0xfe, 0x87, 0xa3, 0x7d, 0x0d, 0x16, 0x3c, 0x38, 0x2d, 0x48, 0x06, 0xff, 0x0e, 0x0a, 0xad, 0x81, 0x0d, 0x16, 0x3c, 0x38, 0xad, 0xc1, 0xba, 0xf4, 0xa6, 0x0d, 0x52, 0x89, 0x3b, 0x0e, 0x0d, 0xbf, 0xc6, 0x0d, 0x9f, 0xd8, 0xac, 0xc1, 0x89, 0xfd, 0xe6, 0x60, 0x88, 0x77, 0x6e, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0x57, 0xb2, 0x0d, 0x96, 0xd9, 0xe9, 0xaf, 0xe1, 0xdf, 0x9c, 0x8d, 0x43, 0x1b, 0x9c, 0xd8, 0x6f, 0x0e, 0x86, 0x8a, 0x40, 0xc7, 0xa1, 0x61, 0x17, 0x76, 0x83, 0x35, 0xe0, 0xff, 0x0b, 0xb7, 0xc1, 0x4a, 0xae, 0xaa, 0x43, 0xfc, 0x0f, 0x47, 0xfb, 0x1a, 0x2c, 0x78, 0x70, 0xda, 0xe0, 0x35, 0x18, 0x13, 0x1b, 0x2c, 0xd9, 0x76, 0x5a, 0x83, 0x85, 0x83, 0x4a, 0x1b, 0xbc, 0x36, 0x63, 0xe2, 0x60, 0xb4, 0xd1, 0x1e, 0x8c, 0x36, 0xda, 0x61, 0x17, 0x76, 0x83, 0x35, 0xe0, 0xff, 0x0b, 0xb7, 0xc1, 0x02, 0xb6, 0xaa, 0x43, 0xfc, 0x0f, 0x47, 0xfb, 0x82, 0x60, 0x83, 0xc1, 0xf9, 0x38, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x0c, 0xd7, 0x21, 0xb9, 0x74, 0xd0, 0x10, 0x99, 0xc0, 0x71, 0x68, 0xd8, 0x85, 0xdd, 0x60, 0x0d, 0xf8, 0xff, 0xc2, 0x6d, 0xb0, 0x90, 0xb1, 0xea, 0x10, 0xff, 0xc3, 0xd1, 0xbe, 0x20, 0xd8, 0x60, 0x70, 0x3e, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x38, 0xad, 0xe0, 0x1e, 0xbc, 0xab, 0x5c, 0xe2, 0x38, 0x34, 0xec, 0xc2, 0x6e, 0xb0, 0x06, 0xfc, 0x7f, 0xe1, 0x36, 0x58, 0xb4, 0x57, 0x75, 0x88, 0xff, 0xe1, 0x68, 0x5f, 0x10, 0x6c, 0x30, 0x38, 0x1f, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x8b, 0xc3, 0x6e, 0xd0, 0x5a, 0xa1, 0xc8, 0xc2, 0x2f, 0x48, 0x86, 0x39, 0x08, 0x7a, 0xee, 0x83, 0xf7, 0xa6, 0x05, 0x2c, 0xfc, 0x82, 0x64, 0x98, 0x41, 0xb4, 0x41, 0x48, 0x74, 0x0f, 0xa2, 0x85, 0x1d, 0x04, 0x0b, 0x92, 0x41, 0xdd, 0xc1, 0x70, 0x94, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xd8, 0x2b, 0x3c, 0x34, 0x9e, 0x3f, 0x0e, 0x1d, 0xcf, 0x0f, 0xde, 0x9b, 0x16, 0x30, 0x48, 0x06, 0xff, 0x06, 0xd1, 0x82, 0xf6, 0x0d, 0x8a, 0x5c, 0x85, 0x83, 0x52, 0x66, 0x67, 0x10, 0x2d, 0xec, 0x20, 0xd8, 0xe0, 0x4d, 0x3a, 0x13, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x7b, 0x85, 0x07, 0x43, 0xb1, 0xe8, 0x38, 0x74, 0x3c, 0x3f, 0xbe, 0x1d, 0x87, 0x86, 0x5d, 0xd8, 0x0d, 0xd6, 0x80, 0xff, 0x2f, 0xdc, 0x06, 0xcb, 0x57, 0xab, 0x0e, 0xf1, 0x3f, 0x1c, 0xed, 0x6b, 0xb0, 0xe0, 0xc1, 0x69, 0xe1, 0x17, 0x24, 0xc3, 0x1c, 0x14, 0x52, 0x2a, 0x07, 0xef, 0x4d, 0x0b, 0xd8, 0x60, 0x05, 0xb3, 0xd3, 0x1a, 0x2c, 0x07, 0x7a, 0x5a, 0x83, 0x45, 0x18, 0x55, 0x1b, 0x3c, 0x9a, 0xed, 0xe1, 0xd0, 0x02, 0x68, 0x3c, 0x48, 0x48, 0xef, 0x3e, 0x18, 0x6d, 0xb4, 0xc3, 0x2e, 0xec, 0x06, 0x6b, 0xc0, 0xff, 0x17, 0x6e, 0x83, 0x95, 0x2a, 0x55, 0x87, 0xf8, 0x1f, 0x8e, 0xf6, 0x35, 0x58, 0xf0, 0xe0, 0xb4, 0xc1, 0x43, 0x8c, 0x26, 0x36, 0x58, 0xb2, 0xed, 0x74, 0xf0, 0x1e, 0xa4, 0x89, 0x61, 0x17, 0x76, 0x83, 0x35, 0xe0, 0xff, 0x0b, 0xb7, 0xc1, 0x02, 0xde, 0xaa, 0x43, 0xfc, 0x0f, 0x47, 0xfb, 0x82, 0x60, 0x83, 0xc1, 0xf9, 0x38, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x10, 0x2c, 0xfc, 0x06, 0x25, 0x43, 0xd3, 0xc1, 0xbb, 0x44, 0x22, 0x0e, 0xde, 0x55, 0x2e, 0x31, 0xec, 0xc2, 0x2e, 0xf4, 0xa0, 0xa9, 0x82, 0x93, 0xc3, 0xfa, 0xe6, 0xc6, 0xa1, 0x0d, 0x96, 0xbb, 0x2d, 0x6d, 0x1c, 0x9a, 0x60, 0x7f, 0xff, 0x38, 0x34, 0xec, 0xc2, 0x6e, 0xb0, 0x06, 0xfc, 0x7f, 0xe1, 0x36, 0x58, 0xb4, 0x5c, 0x75, 0x88, 0xff, 0xe1, 0x68, 0x5f, 0x10, 0x6c, 0x30, 0x38, 0x1f, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0xdf, 0x60, 0x91, 0xa7, 0xd3, 0x1a, 0xac, 0xfe, 0x59, 0x1a, 0x24, 0x83, 0xd5, 0x20, 0x5a, 0xd8, 0x41, 0xb0, 0x41, 0xdb, 0x58, 0x24, 0x87, 0x8e, 0xf1, 0xc7, 0xe3, 0x85, 0x5f, 0x90, 0x0c, 0x73, 0x50, 0x68, 0x0d, 0x1c, 0xbc, 0x37, 0x2d, 0xe0, 0xe0, 0x21, 0x46, 0x13, 0xc7, 0xa1, 0x61, 0x17, 0x76, 0x83, 0x35, 0xe0, 0xff, 0x0b, 0xb7, 0xc1, 0x02, 0x02, 0xab, 0x43, 0xfc, 0x0f, 0x47, 0xfb, 0x82, 0x60, 0x83, 0xc1, 0xf9, 0x38, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x06, 0xeb, 0x25, 0x95, 0x36, 0x78, 0x8f, 0xca, 0xc4, 0x06, 0xeb, 0xa2, 0xc1, 0x0e, 0x31, 0x3c, 0x0e, 0x0d, 0xbb, 0xb0, 0x1b, 0xac, 0x01, 0xff, 0x5f, 0xb8, 0x0d, 0x16, 0x91, 0x58, 0x1d, 0xe2, 0x7f, 0x38, 0xda, 0x17, 0x24, 0x83, 0x7f, 0x83, 0x68, 0x81, 0xfb, 0x7e, 0x43, 0x0c, 0x37, 0x58, 0xdf, 0xb7, 0xb4, 0xa1, 0xe1, 0xd7, 0xa1, 0x05, 0xd0, 0x41, 0x21, 0xa5, 0x32, 0xec, 0xc2, 0x6e, 0xb0, 0x06, 0xfc, 0x7f, 0xe1, 0x36, 0x58, 0x62, 0x66, 0x75, 0x88, 0xff, 0xe1, 0x68, 0x5f, 0x10, 0x6c, 0x30, 0x38, 0x1f, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x8c, 0x90, 0xa8, 0x83, 0x77, 0x95, 0x4b, 0x1c, 0x87, 0x86, 0x5d, 0xd8, 0x0d, 0xd6, 0x80, 0xff, 0x2f, 0xdc, 0x06, 0xab, 0x8b, 0xac, 0x0e, 0xf1, 0x3f, 0x1c, 0xed, 0x6b, 0xb0, 0xa8, 0x75, 0x69, 0x43, 0x0b, 0xa0, 0x41, 0x32, 0xf8, 0x77, 0x50, 0x48, 0xa9, 0x0c, 0xbb, 0xb0, 0x1b, 0xac, 0x01, 0xff, 0x5f, 0xb8, 0x0d, 0x56, 0x5c, 0x59, 0x1d, 0xe2, 0x7f, 0x38, 0xda, 0x17, 0x04, 0x1b, 0x0c, 0xce, 0xc7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x37, 0x58, 0xe4, 0xe9, 0xb4, 0x06, 0xab, 0x7f, 0x96, 0x0e, 0xd6, 0x45, 0x83, 0x6d, 0xf0, 0x10, 0xa3, 0x89, 0x83, 0x27, 0x83, 0x4d, 0x1c, 0x87, 0x86, 0x5d, 0xd8, 0x0d, 0xd6, 0x80, 0xff, 0x2f, 0xdc, 0x06, 0xcb, 0xb6, 0xab, 0x0e, 0xf1, 0x3f, 0x1c, 0xed, 0x6b, 0xb0, 0x04, 0xf7, 0x68, 0x0d, 0xd6, 0x87, 0x60, 0x1d, 0x5a, 0x00, 0x1d, 0x3c, 0xf4, 0x6e, 0x62, 0xd8, 0x85, 0xdd, 0x60, 0x0d, 0xf8, 0xff, 0xc2, 0x6d, 0xb0, 0x78, 0xb3, 0xea, 0x10, 0xff, 0xc3, 0xd1, 0xbe, 0x20, 0xd8, 0x60, 0x70, 0x3e, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x78, 0x9e, 0xca, 0xc4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x12, 0x35, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x3b, 0x95, 0x25, 0x07, 0xcf, 0x30, 0x97, 0x38, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0xc3, 0x2e, 0xec, 0x06, 0x6b, 0xc0, 0xff, 0x17, 0x6e, 0x83, 0xe5, 0xf3, 0x55, 0x87, 0xf8, 0x1f, 0x8e, 0xf6, 0x05, 0xc1, 0x06, 0x83, 0xf3, 0x71, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0xf3, 0x54, 0x26, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x94, 0xa8, 0x21, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xda, 0xbf, 0x30, 0x39, 0x78, 0x86, 0xb9, 0xc4, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x1a, 0x76, 0x61, 0x37, 0x58, 0x03, 0xfe, 0xbf, 0x70, 0x1b, 0x2c, 0xb5, 0xb3, 0x3a, 0xc4, 0xff, 0x70, 0xb4, 0x2f, 0x08, 0x36, 0x18, 0x9c, 0x8f, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x9e, 0xa7, 0x32, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0x44, 0x0d, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xd0, 0x0c, 0x97, 0xc9, 0xc1, 0x33, 0xcc, 0x25, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0x5b, 0x43, 0xfb, 0xf5, 0x61, 0x37, 0x58, 0x03, 0xfe, 0xbf, 0x70, 0x1b, 0xac, 0xad, 0xb1, 0x3a, 0xc4, 0xff, 0x70, 0xb4, 0x0f, 0x82, 0x0d, 0x06, 0xe7, 0xe3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xe7, 0xa9, 0x4c, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x28, 0x51, 0x43, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xb4, 0xde, 0x63, 0x72, 0xf0, 0x0c, 0x73, 0x89, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x1e, 0x04, 0x1b, 0x3c, 0x26, 0x25, 0x62, 0x71, 0x83, 0xf5, 0x92, 0x4a, 0x1b, 0xa2, 0x39, 0x08, 0x36, 0x58, 0x0b, 0xb5, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xaf, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0xd5, 0x1a, 0xd5, 0xe2, 0xc1, 0xeb, 0x17, 0x1f, 0x8e, 0xc7, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x76, 0xc3, 0xae, 0xc1, 0x06, 0x8b, 0x38, 0x91, 0x36, 0x58, 0xaf, 0xdc, 0xb4, 0xc1, 0x22, 0x4e, 0xa4, 0x83, 0x87, 0x2c, 0x4b, 0x1c, 0x8f, 0x17, 0x44, 0x0b, 0x7e, 0x1f, 0x8c, 0xfc, 0x87, 0xe3, 0xf1, 0x82, 0x60, 0x83, 0x35, 0x2d, 0x47, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0x38, 0xec, 0x06, 0xad, 0xff, 0x8c, 0x6c, 0x48, 0xd5, 0x6c, 0xb0, 0x22, 0xee, 0x68, 0x09, 0x92, 0xfb, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xe0, 0xdc, 0x9f, 0x20, 0xbb, 0x7f, 0x3c, 0x3e, 0xbe, 0x0d, 0xbb, 0x70, 0x1b, 0x62, 0x78, 0x90, 0x20, 0xd2, 0xb1, 0x71, 0x68, 0x83, 0x25, 0xb8, 0x47, 0x4b, 0xb0, 0xbd, 0x7f, 0x1c, 0x3a, 0x1e, 0x2f, 0x08, 0x16, 0x0f, 0x5e, 0x70, 0xc3, 0xb0, 0xb8, 0xc1, 0xba, 0xf4, 0xa6, 0x15, 0x7e, 0x41, 0x32, 0x98, 0x0d, 0xa2, 0x0d, 0x46, 0x18, 0xc0, 0x21, 0xb9, 0x74, 0xe8, 0x62, 0x32, 0xfc, 0x82, 0x64, 0x30, 0x1b, 0x44, 0x1b, 0x0c, 0x3b, 0xdc, 0x43, 0x72, 0xe9, 0xd0, 0xc5, 0x64, 0xdc, 0x20, 0x69, 0xc1, 0x68, 0xc3, 0x77, 0x2d, 0x1b, 0x87, 0x0e, 0x2b, 0xb4, 0xc7, 0xe3, 0x05, 0xc1, 0xe2, 0x06, 0x4b, 0x32, 0xa0, 0x0e, 0x8e, 0x8b, 0x27, 0x8b, 0x83, 0x60, 0x0d, 0xd6, 0xa5, 0x37, 0x2d, 0xfc, 0x82, 0x64, 0x30, 0x1b, 0x44, 0x1b, 0x04, 0xcc, 0xf7, 0x21, 0xb9, 0x74, 0xe8, 0x62, 0xb2, 0xc1, 0xf2, 0x9c, 0xa4, 0x0d, 0x31, 0x1c, 0x04, 0x0b, 0x82, 0x0d, 0x9e, 0x7a, 0x30, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0x2d, 0xd4, 0xfe, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x9a, 0xd2, 0x6f, 0x3a, 0x68, 0xf6, 0x8f, 0x69, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xc6, 0xdb, 0xea, 0x17, 0x37, 0x44, 0x73, 0xf8, 0x05, 0xc9, 0x60, 0x76, 0xd0, 0x48, 0x08, 0xc0, 0xa1, 0x8b, 0xc9, 0xf1, 0xf8, 0x38, 0x74, 0x1c, 0x3a, 0x78, 0x44, 0xa8, 0xc3, 0xb0, 0x0b, 0xb7, 0xc1, 0x52, 0xe4, 0xac, 0x43, 0xd6, 0x6e, 0xe3, 0xd0, 0xb0, 0x0b, 0xb7, 0xc1, 0x1a, 0xf2, 0xac, 0x43, 0xd6, 0x6e, 0x0d, 0x96, 0x11, 0x2f, 0x1d, 0x87, 0x86, 0x5d, 0xb8, 0x0d, 0x16, 0x0d, 0x67, 0x1d, 0xb2, 0x76, 0x6b, 0xb0, 0xa0, 0x71, 0xe9, 0x38, 0x34, 0xc8, 0xd6, 0xd0, 0x7e, 0x7d, 0xb8, 0x0d, 0x16, 0x57, 0x67, 0x1d, 0xb2, 0x76, 0x1b, 0xac, 0x7f, 0x5a, 0x3a, 0x0e, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0xac, 0x6f, 0x30, 0x5a, 0x1c, 0x76, 0x83, 0xa7, 0x69, 0x4a, 0xac, 0xc1, 0x52, 0x2d, 0xa4, 0x0d, 0xe3, 0x32, 0xec, 0xc2, 0x6d, 0x50, 0x30, 0x3c, 0x1e, 0xc6, 0x65, 0x83, 0xd4, 0x7f, 0x8c, 0x43, 0x0c, 0x87, 0xdd, 0x60, 0x71, 0x89, 0xd1, 0x82, 0x60, 0x83, 0x87, 0xab, 0x4a, 0x6c, 0xb0, 0xdc, 0x6d, 0x69, 0x0d, 0x96, 0x82, 0x2c, 0x6d, 0x1c, 0xda, 0x38, 0x74, 0xf0, 0xd8, 0x56, 0x89, 0xe3, 0xd0, 0xb0, 0x1b, 0x2c, 0x96, 0x31, 0x5a, 0x10, 0x2c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x3d, 0x58, 0x68, 0x62, 0x74, 0x3c, 0x3e, 0x78, 0xb4, 0x9f, 0xc3, 0xb0, 0x1b, 0x2c, 0xfe, 0x31, 0x5a, 0x10, 0x6c, 0xf0, 0x70, 0x55, 0x89, 0x0d, 0x96, 0xbb, 0x2d, 0xad, 0xc1, 0x62, 0x98, 0xa5, 0x83, 0x47, 0xfb, 0x39, 0x1c, 0x87, 0x86, 0xdd, 0x60, 0x49, 0x93, 0xd1, 0x06, 0xad, 0x0d, 0xce, 0x1f, 0x3c, 0x7f, 0x56, 0xe2, 0x78, 0x3c, 0xec, 0x06, 0xab, 0xe0, 0x8e, 0x16, 0x24, 0x03, 0xf3, 0x77, 0xf0, 0xd6, 0x0b, 0x89, 0x61, 0x37, 0x58, 0x38, 0x62, 0xb5, 0x20, 0x19, 0x98, 0xbf, 0x41, 0xb4, 0xc0, 0x7c, 0x6f, 0x88, 0xe1, 0x06, 0xeb, 0xfb, 0x96, 0x0e, 0x5e, 0xef, 0xec, 0x70, 0xb0, 0xa0, 0x6e, 0x67, 0xd8, 0x85, 0x5d, 0xb8, 0x0d, 0x31, 0x3c, 0x48, 0x30, 0x40, 0x58, 0xd8, 0x85, 0xdd, 0x60, 0xd1, 0x80, 0xd5, 0x86, 0x18, 0x0e, 0xbb, 0xc1, 0xc2, 0x76, 0xaa, 0x0d, 0x31, 0x1c, 0x76, 0x83, 0x95, 0xa5, 0x54, 0x1b, 0x62, 0x78, 0xb0, 0x28, 0x97, 0xea, 0x90, 0xce, 0x3d, 0x1c, 0xed, 0x0b, 0x82, 0x0d, 0x46, 0x48, 0xd4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x85, 0x15, 0x66, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xbb, 0xc1, 0xa2, 0x01, 0xab, 0x0d, 0xe3, 0x32, 0xec, 0x06, 0x2b, 0x4b, 0xa9, 0x36, 0x78, 0x04, 0x89, 0xc4, 0xb0, 0x1b, 0x2c, 0xca, 0xa5, 0xda, 0xe0, 0x25, 0x27, 0x12, 0x83, 0x6c, 0x0d, 0xed, 0xd7, 0x0f, 0x16, 0xb6, 0x53, 0x1d, 0xbc, 0x23, 0x46, 0xe2, 0x38, 0x74, 0x1c, 0xda, 0x60, 0x29, 0x4a, 0xd2, 0x1a, 0x2c, 0xe9, 0x5c, 0x3a, 0x38, 0x3f, 0xd1, 0x6e, 0xb0, 0xe0, 0xc1, 0x69, 0x41, 0xb0, 0xf0, 0x0b, 0x82, 0x0d, 0x4a, 0x86, 0xa6, 0x41, 0x32, 0xe4, 0x20, 0x95, 0xaf, 0xe5, 0xe0, 0x91, 0x8e, 0x09, 0x07, 0xe9, 0x5e, 0x1e, 0xe3, 0xc1, 0x4a, 0x3a, 0xfd, 0xe3, 0xf1, 0x8a, 0x0b, 0x82, 0xc5, 0xd9, 0x60, 0x31, 0x1b, 0xd4, 0xc1, 0x62, 0x36, 0xa8, 0xc5, 0x61, 0x37, 0xe4, 0xb1, 0x36, 0xc4, 0x70, 0xd8, 0x0d, 0x0d, 0x17, 0x37, 0x34, 0x12, 0x1c, 0x04, 0x8b, 0xc3, 0x6e, 0xd0, 0x58, 0x70, 0xcb, 0x82, 0x60, 0x41, 0xb0, 0x41, 0xfa, 0x38, 0xd1, 0x41, 0xc9, 0xa5, 0x33, 0xec, 0x06, 0xa3, 0x5e, 0x72, 0x43, 0x0c, 0x07, 0xc1, 0x06, 0xc7, 0x85, 0xf3, 0x83, 0x41, 0xb0, 0x33, 0xec, 0x06, 0x2d, 0x36, 0xb7, 0x2c, 0x08, 0x16, 0x04, 0x1b, 0xa4, 0x8f, 0x13, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x34, 0x9e, 0x3f, 0x34, 0xfc, 0x3a, 0x0e, 0x0d, 0xbb, 0xc1, 0xa8, 0x97, 0xdc, 0x10, 0xc3, 0x41, 0xb0, 0xc1, 0x71, 0xe1, 0x7c, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x75, 0x70, 0x10, 0xf2, 0xd9, 0xc7, 0xa1, 0x41, 0xb0, 0x20, 0xd8, 0xa0, 0x71, 0x90, 0xa6, 0xc3, 0x46, 0xed, 0x20, 0x58, 0x10, 0x6c, 0x90, 0x1c, 0xef, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xd0, 0x78, 0xfe, 0x20, 0x78, 0xb8, 0x8f, 0x43, 0xc3, 0x6e, 0x30, 0xea, 0x25, 0x37, 0xc4, 0x70, 0x10, 0x2c, 0x08, 0x36, 0x58, 0x47, 0xaa, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x28, 0x16, 0x1d, 0x8c, 0x81, 0x85, 0xe3, 0xd0, 0xb0, 0x1b, 0x8c, 0x7a, 0xc9, 0x0d, 0x31, 0x1c, 0x76, 0xe1, 0x36, 0xb4, 0x12, 0x1f, 0x04, 0x0b, 0x92, 0xc1, 0xec, 0xe0, 0x24, 0x74, 0x7c, 0x50, 0x7a, 0x3b, 0x2c, 0x08, 0x16, 0x24, 0x43, 0x06, 0xd1, 0x06, 0xed, 0x1c, 0xc9, 0x0c, 0xa2, 0x05, 0xe3, 0x43, 0xaa, 0xe6, 0xb0, 0x42, 0x3b, 0xec, 0x06, 0xa3, 0x5e, 0x72, 0x43, 0x0c, 0x07, 0xc1, 0x82, 0x64, 0x70, 0xef, 0x60, 0xbc, 0xeb, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x0f, 0xd2, 0x12, 0x16, 0x8e, 0x43, 0x83, 0x60, 0x41, 0x32, 0x64, 0x10, 0x6d, 0xd0, 0xea, 0x00, 0xca, 0xc1, 0x1b, 0x47, 0x28, 0x86, 0xdd, 0x60, 0xd4, 0x4b, 0x6e, 0x88, 0xe1, 0x20, 0xd8, 0xe0, 0xe5, 0x25, 0x14, 0x07, 0xc5, 0xe8, 0xcf, 0xf1, 0xed, 0x78, 0xbc, 0x20, 0x58, 0x9c, 0x83, 0xc5, 0x6c, 0x50, 0x8b, 0xc3, 0x6e, 0x68, 0xb8, 0xb8, 0x61, 0x5c, 0x06, 0xc1, 0x0a, 0x82, 0x05, 0xc9, 0x60, 0x76, 0x30, 0xde, 0x75, 0x0e, 0x69, 0xb8, 0x41, 0xb0, 0x20, 0x19, 0xf4, 0x1d, 0x8c, 0x77, 0x9d, 0x43, 0x1a, 0x6e, 0xd8, 0x85, 0xdb, 0x60, 0xc9, 0xf1, 0xd4, 0xc1, 0x20, 0x5a, 0x59, 0x10, 0x2d, 0x88, 0x06, 0xc1, 0x06, 0xab, 0x93, 0x52, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x4b, 0x30, 0xea, 0x87, 0xf8, 0x1f, 0x87, 0x0e, 0xf9, 0xda, 0x61, 0x17, 0x6e, 0x83, 0xe5, 0xa8, 0x53, 0x07, 0x83, 0x68, 0x65, 0x61, 0x17, 0x76, 0xa1, 0x07, 0x83, 0x3f, 0xe6, 0xb0, 0xbe, 0xb9, 0xb0, 0x1b, 0xb4, 0xcb, 0x98, 0xb2, 0x21, 0x86, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x42, 0x00, 0x7c, 0x83, 0x26, 0xa4, 0x45, 0x86, 0xdd, 0x60, 0xb9, 0x24, 0xd1, 0x41, 0x02, 0x1e, 0xc8, 0xf1, 0xfc, 0x90, 0xaf, 0x1d, 0x64, 0x6b, 0x68, 0xbf, 0x3e, 0xdc, 0x06, 0xab, 0x1b, 0xa7, 0x0e, 0x06, 0xd1, 0xca, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x10, 0x00, 0x1f, 0x76, 0x83, 0xe5, 0x92, 0x44, 0x6b, 0x30, 0xac, 0x56, 0x0e, 0x8d, 0x8b, 0x36, 0x08, 0x72, 0xeb, 0x43, 0xb3, 0xa4, 0xe3, 0xf9, 0xf1, 0x78, 0x41, 0xb0, 0xc1, 0x28, 0x2b, 0x5b, 0x1c, 0x76, 0x43, 0x1e, 0x6b, 0x43, 0x0c, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x55, 0x1d, 0x5c, 0x87, 0x34, 0xdc, 0xb0, 0x0b, 0xb7, 0xc1, 0x92, 0xe3, 0xa9, 0x83, 0x82, 0xa2, 0x68, 0xc3, 0x29, 0x36, 0xec, 0xc2, 0x6d, 0xb0, 0xba, 0x71, 0xea, 0xa0, 0xa0, 0x28, 0x5a, 0x0d, 0x96, 0xa3, 0x4e, 0x0d, 0x82, 0x05, 0xc9, 0xa0, 0xee, 0xb0, 0x42, 0x7b, 0x30, 0x8c, 0x1d, 0x0e, 0x31, 0x1c, 0x76, 0xa1, 0x07, 0x67, 0xd3, 0xf0, 0x0d, 0xd6, 0xa9, 0xf5, 0x0c, 0x82, 0x0d, 0xf9, 0xda, 0x83, 0x11, 0x85, 0x7b, 0x3c, 0x5e, 0x10, 0x2c, 0x6e, 0xb0, 0xde, 0x70, 0xea, 0x60, 0x78, 0xbb, 0x2c, 0x0e, 0xbb, 0x70, 0x1b, 0x2c, 0x39, 0x9e, 0x3a, 0x44, 0x73, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x0b, 0x82, 0x0d, 0x56, 0x75, 0x70, 0x1d, 0x1c, 0xb4, 0x7a, 0x8f, 0x43, 0xc7, 0xe3, 0x61, 0x37, 0x58, 0x82, 0x3a, 0xb5, 0x61, 0x5c, 0x06, 0xd9, 0x1a, 0xda, 0xaf, 0x1f, 0xac, 0x68, 0x9c, 0x1a, 0x04, 0x0b, 0x82, 0x0d, 0xc6, 0x93, 0xe8, 0x20, 0x19, 0x08, 0xd7, 0x20, 0x5a, 0xd8, 0x83, 0x46, 0xa6, 0x54, 0x8e, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x83, 0x66, 0xe5, 0x53, 0x8e, 0x43, 0xc7, 0xe3, 0x05, 0xc1, 0xe2, 0xc1, 0xa3, 0x10, 0x28, 0x16, 0x87, 0x5d, 0xd8, 0x85, 0x5d, 0xb8, 0x0d, 0x96, 0xa3, 0x4e, 0x1d, 0xb4, 0x09, 0x10, 0xb0, 0xb0, 0x0b, 0xb7, 0xc1, 0x72, 0xd4, 0xa9, 0x83, 0xe1, 0x45, 0x71, 0x48, 0xe7, 0x1e, 0x8e, 0xf6, 0x85, 0x5d, 0xb8, 0x85, 0xdb, 0x10, 0xc3, 0x83, 0xe5, 0x35, 0x41, 0x07, 0x6f, 0xad, 0x7d, 0x38, 0xa4, 0x73, 0x0f, 0x47, 0xfb, 0xc2, 0x6e, 0xf0, 0xf4, 0x2f, 0x8a, 0x35, 0x68, 0x42, 0x5a, 0xe4, 0x60, 0x60, 0x76, 0xad, 0xc1, 0x72, 0xd4, 0xa9, 0x41, 0xb0, 0x20, 0xd8, 0x60, 0x3c, 0x89, 0x0e, 0x92, 0x81, 0x70, 0x1d, 0xb4, 0xa6, 0x11, 0x70, 0xb0, 0x6e, 0x8c, 0xe9, 0x10, 0xc3, 0x35, 0x58, 0xdd, 0x38, 0x75, 0x30, 0x7a, 0xba, 0x0e, 0x06, 0x66, 0xd7, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x6e, 0x58, 0xdf, 0xdb, 0x10, 0xc3, 0x0d, 0x31, 0x1c, 0x04, 0x1b, 0x8c, 0xc6, 0xc7, 0x61, 0x37, 0x18, 0xf5, 0x92, 0x6b, 0xb0, 0xdc, 0xd2, 0xea, 0x90, 0xaf, 0xdd, 0x60, 0x11, 0xaa, 0xd5, 0x20, 0xd8, 0xa0, 0x45, 0x90, 0x93, 0x41, 0x32, 0x10, 0xba, 0x83, 0x31, 0x18, 0x79, 0x3c, 0x5e, 0x10, 0x2c, 0x1e, 0x2c, 0x65, 0x83, 0x5a, 0x1c, 0x04, 0x8b, 0xc3, 0x6e, 0xb0, 0x54, 0x30, 0x68, 0x43, 0x0c, 0x87, 0xdd, 0x20, 0x5d, 0xd1, 0x7a, 0x41, 0xb0, 0x20, 0x19, 0x32, 0x88, 0x16, 0xac, 0x0f, 0x3d, 0x84, 0x8e, 0xc7, 0xc3, 0x6e, 0x30, 0xea, 0x25, 0x37, 0xc4, 0x70, 0x10, 0x6c, 0xf0, 0xc4, 0xb8, 0x87, 0x61, 0x37, 0x18, 0xf5, 0x92, 0x1b, 0x62, 0x38, 0x08, 0x36, 0x58, 0x95, 0x87, 0x70, 0x30, 0x38, 0x7d, 0x86, 0x5d, 0xd8, 0x0d, 0x96, 0x0d, 0x06, 0x2d, 0xec, 0x06, 0xc1, 0xf6, 0x7c, 0xf0, 0xa4, 0x54, 0x88, 0xc3, 0xd1, 0xbe, 0xb0, 0x1b, 0x04, 0x49, 0xf3, 0x86, 0x18, 0x0e, 0x82, 0x0d, 0xd2, 0xc7, 0x89, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x1a, 0x7e, 0x1d, 0xe2, 0x7f, 0x1c, 0x1a, 0x76, 0x61, 0x37, 0x58, 0x36, 0x18, 0xb4, 0x70, 0x1b, 0x8e, 0xf6, 0x43, 0x0f, 0xa1, 0xc3, 0xd1, 0xbe, 0x06, 0x4d, 0x48, 0x8b, 0x1c, 0x3a, 0x86, 0x0d, 0xbb, 0xb0, 0x1b, 0x2c, 0x1b, 0x0c, 0x5a, 0xd8, 0x85, 0xdb, 0xd0, 0x4a, 0xfc, 0xd0, 0x43, 0x68, 0x83, 0x65, 0x98, 0xfe, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x2f, 0x08, 0x36, 0x38, 0x61, 0xa2, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x72, 0xd0, 0x22, 0xe6, 0xcb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xc9, 0x90, 0x41, 0xb4, 0x60, 0x7d, 0x50, 0xe4, 0x2a, 0x1c, 0x92, 0x4b, 0xc3, 0x6e, 0x30, 0xea, 0x25, 0x37, 0xc4, 0x70, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xe2, 0x83, 0x52, 0x85, 0xef, 0xb0, 0x42, 0x7b, 0x3c, 0x3e, 0x0e, 0x0d, 0xbb, 0xb0, 0x1b, 0x2c, 0x1b, 0x0c, 0x5a, 0xb8, 0x0d, 0xfd, 0xc9, 0x0f, 0x3d, 0x84, 0x0e, 0x47, 0xfb, 0x82, 0x60, 0x83, 0x13, 0x26, 0xfa, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x1f, 0x3c, 0xdd, 0xca, 0x61, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x37, 0x68, 0x42, 0x5a, 0xe4, 0xd0, 0x71, 0xe4, 0x78, 0x7c, 0x1c, 0x1a, 0x76, 0x61, 0x37, 0x58, 0x36, 0x18, 0xb4, 0x70, 0x1b, 0x94, 0x71, 0x3b, 0x87, 0x1e, 0x42, 0x87, 0xa3, 0x7d, 0x41, 0xb0, 0xc1, 0x09, 0x13, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x83, 0x21, 0x29, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0xd8, 0x0d, 0x5d, 0x33, 0xd7, 0xa0, 0x09, 0x69, 0x91, 0xc3, 0xf2, 0xc9, 0x21, 0x86, 0xc7, 0xe3, 0xe3, 0xd0, 0xb0, 0x0b, 0xbb, 0xc1, 0xb2, 0xc1, 0xa0, 0x85, 0x5d, 0xb8, 0x0d, 0x0a, 0x3b, 0x9c, 0x43, 0x0f, 0xa1, 0x83, 0x67, 0x0c, 0x52, 0x1c, 0x8e, 0xf6, 0x05, 0xc1, 0x06, 0x27, 0x4c, 0xf4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf5, 0xa1, 0x71, 0xd1, 0xf1, 0x78, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x06, 0xeb, 0x23, 0x1d, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xd6, 0x07, 0xa5, 0xcc, 0xce, 0x21, 0xb9, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x1b, 0x34, 0x21, 0x2d, 0x72, 0x30, 0x72, 0xf1, 0x8f, 0xc7, 0xc7, 0xa1, 0xe3, 0xf1, 0x71, 0x68, 0xd8, 0x85, 0xdd, 0x60, 0xd9, 0x60, 0xd0, 0xc2, 0x2e, 0xdc, 0x06, 0xa3, 0xf9, 0xfc, 0xd0, 0x43, 0x68, 0x83, 0xc5, 0xd0, 0xfe, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x2f, 0x08, 0x36, 0x38, 0x61, 0xa2, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x78, 0x19, 0x28, 0xc5, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xbb, 0x61, 0x7d, 0x6f, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x58, 0x1f, 0xa4, 0xb9, 0x67, 0x1c, 0x92, 0x4b, 0xc3, 0x6e, 0x68, 0x7a, 0xbe, 0x20, 0x19, 0x32, 0x88, 0x16, 0xac, 0x0f, 0x12, 0xbd, 0x15, 0x0e, 0xc9, 0xa5, 0x43, 0x0c, 0x8f, 0xc7, 0xc7, 0xa1, 0x61, 0x17, 0x76, 0x83, 0x65, 0x83, 0x41, 0x0b, 0xbb, 0x70, 0x1b, 0x0c, 0x79, 0xf4, 0x43, 0x0f, 0xa1, 0x83, 0x67, 0x0c, 0x52, 0x1c, 0x8e, 0xf6, 0x05, 0xc1, 0x06, 0x8f, 0x06, 0xa5, 0x18, 0x76, 0x83, 0x51, 0x2f, 0xb9, 0x21, 0x86, 0x83, 0x64, 0xc8, 0x41, 0xa3, 0x63, 0x2f, 0xc3, 0x2e, 0xec, 0x06, 0xcb, 0x06, 0x83, 0x16, 0x76, 0xe1, 0x36, 0x28, 0x00, 0xa0, 0x0e, 0x3d, 0x84, 0x0e, 0x9e, 0x31, 0x48, 0x71, 0x38, 0xda, 0x17, 0x04, 0x1b, 0x3c, 0x1a, 0x94, 0x62, 0xd8, 0x0d, 0x46, 0xbd, 0xe4, 0x86, 0x18, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x41, 0xbc, 0x20, 0xd8, 0xe0, 0xb8, 0x70, 0x7e, 0x90, 0xb2, 0x3e, 0x74, 0x68, 0x74, 0x74, 0x3c, 0x1f, 0x76, 0x61, 0x37, 0x58, 0x36, 0x18, 0xb4, 0xb0, 0x0b, 0xb7, 0xc1, 0xb9, 0xa5, 0xf8, 0xd0, 0x43, 0xe8, 0xe0, 0x19, 0x83, 0x14, 0x87, 0xa3, 0x7d, 0x61, 0x17, 0x76, 0x83, 0x26, 0xef, 0x4a, 0x0e, 0xeb, 0x9b, 0x0b, 0x82, 0x0d, 0xde, 0x63, 0x48, 0x31, 0xec, 0x06, 0xa3, 0x5e, 0x72, 0x43, 0x0c, 0x87, 0x5d, 0xd8, 0x0d, 0x46, 0xc7, 0xfa, 0xc2, 0x6e, 0x90, 0xda, 0x6a, 0xbd, 0xb0, 0x0b, 0xb7, 0xc1, 0x72, 0xd4, 0xa9, 0x83, 0x82, 0xa2, 0x68, 0xe1, 0x36, 0xc4, 0xf0, 0xe0, 0x6c, 0x1a, 0x7e, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0x5f, 0x10, 0x2c, 0x08, 0x16, 0x24, 0x03, 0xef, 0x7f, 0x1d, 0x04, 0xbc, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xc3, 0xb8, 0x0c, 0xbf, 0xf1, 0x7c, 0x83, 0x73, 0x4b, 0xf1, 0x86, 0xa6, 0x43, 0x07, 0x43, 0x11, 0xe9, 0x38, 0x34, 0xec, 0x06, 0xa3, 0x5e, 0x72, 0x43, 0x0c, 0x37, 0x68, 0x42, 0x5a, 0xe4, 0x20, 0x04, 0xc0, 0x07, 0xc1, 0x06, 0xed, 0x95, 0x89, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x39, 0xde, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x91, 0xab, 0x70, 0x48, 0x1d, 0x1c, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xe2, 0x83, 0xb1, 0xec, 0x73, 0x58, 0xa1, 0x3d, 0x1e, 0x1f, 0x87, 0x0e, 0x31, 0x1c, 0x76, 0x61, 0x37, 0x58, 0x36, 0x18, 0xb4, 0xb0, 0x0b, 0xb7, 0xc1, 0x91, 0xa7, 0xf8, 0xd0, 0x43, 0x68, 0x61, 0x37, 0x58, 0x86, 0xe9, 0xbf, 0xb0, 0x1b, 0x34, 0x79, 0x57, 0xb2, 0xb0, 0x0b, 0x3d, 0x58, 0x24, 0xfe, 0x73, 0x58, 0xdf, 0x3c, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0x05, 0xc1, 0x06, 0xef, 0x31, 0xa4, 0x18, 0x76, 0x83, 0x51, 0x2f, 0xb9, 0x21, 0x86, 0x83, 0x60, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x58, 0x1f, 0x14, 0x56, 0x6a, 0xc7, 0xf3, 0x61, 0x37, 0x18, 0xf5, 0x92, 0x1b, 0x62, 0x38, 0x08, 0x36, 0x38, 0xf9, 0x40, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x68, 0x72, 0x97, 0xe4, 0x20, 0x2d, 0x61, 0xe1, 0x38, 0x34, 0xec, 0xc2, 0x6e, 0xb0, 0x6c, 0x30, 0x68, 0x61, 0x17, 0x6e, 0x83, 0x63, 0x60, 0xfe, 0xa1, 0x87, 0xd0, 0xc2, 0x6e, 0xb0, 0x0c, 0xd3, 0x7f, 0x83, 0x47, 0x17, 0x53, 0x1c, 0x8e, 0xf6, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x37, 0x78, 0x8f, 0x21, 0xc5, 0xb0, 0x0b, 0xbb, 0xc1, 0xb2, 0xc1, 0xa0, 0x85, 0xdd, 0xe0, 0x91, 0xea, 0x14, 0x1b, 0xb4, 0x61, 0x57, 0x72, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0x82, 0x60, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x58, 0x1f, 0x14, 0xe7, 0x5c, 0xc7, 0xe3, 0x61, 0x37, 0x18, 0xf5, 0x92, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x2e, 0xdc, 0x06, 0x0b, 0x0d, 0x7f, 0x0e, 0xca, 0x68, 0x98, 0x85, 0xdd, 0xe0, 0xd9, 0xc8, 0x14, 0x87, 0x74, 0xee, 0xe1, 0x68, 0x5f, 0x90, 0xad, 0x21, 0x8f, 0xbd, 0x38, 0x08, 0x36, 0x18, 0x4b, 0xb9, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xda, 0x01, 0x3c, 0x39, 0xe4, 0x6b, 0x8f, 0x43, 0xc7, 0xe3, 0x41, 0x32, 0xe4, 0xa0, 0x41, 0xe7, 0x97, 0x83, 0x87, 0xea, 0x53, 0x1c, 0xb4, 0x45, 0xc8, 0x74, 0x7c, 0x3b, 0x1e, 0x2f, 0x08, 0x36, 0x78, 0xf5, 0x1b, 0xc5, 0xe2, 0x20, 0xdb, 0x10, 0x97, 0x41, 0xb0, 0x41, 0x89, 0x1a, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0x29, 0x83, 0xf7, 0x43, 0xa2, 0xf5, 0x38, 0x74, 0x3c, 0x1e, 0x04, 0x1b, 0xac, 0x4d, 0xa2, 0x5a, 0x1c, 0x76, 0xe1, 0x36, 0x58, 0x8e, 0x3a, 0x75, 0x30, 0x7e, 0xba, 0x36, 0xa4, 0x0e, 0x86, 0x5d, 0xb8, 0x0d, 0x96, 0x1c, 0x4f, 0x1d, 0x8c, 0x9f, 0xae, 0x85, 0xdd, 0xa0, 0xad, 0xf1, 0xa4, 0x0d, 0xd6, 0x26, 0x51, 0x0d, 0x82, 0x05, 0xc1, 0x06, 0x0b, 0x61, 0xf6, 0x0f, 0x92, 0xcb, 0x07, 0x86, 0xdd, 0x60, 0xd4, 0x4b, 0x6e, 0xb0, 0x36, 0x89, 0xea, 0xe0, 0x29, 0xd3, 0x14, 0x83, 0x6c, 0x0d, 0xed, 0xd7, 0x87, 0xdb, 0x60, 0x75, 0xe3, 0xd4, 0xc1, 0xf8, 0xe9, 0x1a, 0x04, 0x1b, 0xbc, 0x4b, 0x24, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x1a, 0xea, 0x1c, 0x1a, 0x09, 0x1e, 0x8f, 0x87, 0xdf, 0x78, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x3d, 0x78, 0xb7, 0x32, 0xc1, 0xf1, 0xf8, 0x38, 0x74, 0x3c, 0x3e, 0x1e, 0xaf, 0x20, 0x58, 0x9c, 0x83, 0xa5, 0x18, 0x54, 0x8b, 0xc3, 0x2e, 0xdc, 0xe2, 0xc1, 0x58, 0x15, 0x38, 0x44, 0x73, 0x41, 0xb4, 0x90, 0x83, 0xf2, 0x3f, 0xef, 0x30, 0x2e, 0xc3, 0x2e, 0xdc, 0xe2, 0xc1, 0xc2, 0x3d, 0xf2, 0x43, 0x34, 0x17, 0x44, 0x0b, 0x3b, 0xcc, 0xa1, 0x93, 0xda, 0x61, 0x5c, 0x86, 0x5d, 0xb8, 0xc5, 0x83, 0x95, 0x8d, 0xe4, 0x87, 0x68, 0x2e, 0x88, 0x16, 0xc4, 0xc3, 0x1c, 0x9a, 0x70, 0x1d, 0xc6, 0x65, 0xd8, 0x85, 0x5b, 0x3c, 0x58, 0x02, 0x4a, 0x7e, 0x88, 0xe6, 0x82, 0x68, 0xc1, 0x7c, 0x98, 0x43, 0x33, 0x9e, 0xc3, 0xb8, 0x0c, 0xbb, 0x70, 0x8b, 0x07, 0x6b, 0x64, 0xc9, 0x0f, 0xd1, 0x5c, 0x10, 0x2d, 0xa8, 0x1f, 0x66, 0x82, 0xf1, 0x3d, 0x8c, 0xcb, 0xb0, 0x0b, 0xb7, 0x78, 0xb0, 0x88, 0x98, 0xfc, 0x10, 0xcd, 0x05, 0xd1, 0x82, 0xfb, 0xc3, 0x4c, 0x50, 0x7e, 0x0f, 0xe3, 0x32, 0xec, 0xc2, 0x2d, 0x1e, 0xac, 0xb6, 0x26, 0x3f, 0x44, 0x73, 0x41, 0xb4, 0xe0, 0xff, 0x30, 0x13, 0xd4, 0xdf, 0xc3, 0xb8, 0x0c, 0xb2, 0x0d, 0xcd, 0xd7, 0x0f, 0xe3, 0x72, 0x3c, 0x5e, 0x10, 0x6c, 0xb0, 0x2a, 0x1f, 0x6b, 0x71, 0x10, 0x6c, 0x10, 0xb8, 0xfe, 0x83, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xfc, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xb4, 0x00, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xd0, 0x74, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x64, 0x0d, 0x84, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x12, 0x72, 0x10, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x97, 0xe0, 0x7c, 0x9f, 0xe0, 0x7e, 0x3f, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x78, 0xbc, 0x20, 0xd8, 0x60, 0x55, 0x3e, 0xd6, 0xe2, 0x20, 0xd8, 0xe0, 0xf5, 0x60, 0x0d, 0x83, 0x60, 0x41, 0x32, 0xa0, 0x50, 0xef, 0x3b, 0x08, 0x78, 0xff, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0xec, 0x06, 0xc1, 0xf6, 0xbc, 0x21, 0x86, 0x83, 0x60, 0x83, 0x07, 0xe0, 0x54, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0x09, 0x22, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x85, 0x87, 0x32, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xa4, 0x41, 0x2b, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0x9c, 0xb8, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x90, 0xac, 0x69, 0x70, 0x68, 0x01, 0x74, 0x1c, 0x3a, 0xa4, 0x0e, 0x8e, 0x43, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x8e, 0x07, 0x0d, 0x20, 0x73, 0x1f, 0xdf, 0x8e, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xe7, 0xc3, 0x6e, 0x58, 0x0b, 0xdd, 0x10, 0xc3, 0x41, 0xb0, 0xc1, 0x03, 0x70, 0x2a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0x04, 0x11, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc2, 0x43, 0x99, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xd2, 0xa0, 0x15, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x50, 0x4e, 0x5c, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x48, 0xd6, 0x34, 0x38, 0xc4, 0xff, 0x38, 0x74, 0x48, 0x1d, 0x1c, 0x87, 0x8e, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x1c, 0x0f, 0xda, 0xe8, 0xe6, 0x3e, 0xbe, 0x1d, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0xcf, 0x87, 0xdd, 0xa0, 0xf1, 0xf1, 0x98, 0x0d, 0x31, 0x1c, 0x04, 0x1b, 0x3c, 0x00, 0xa7, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x4b, 0x10, 0x81, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x2c, 0x3c, 0x94, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x0d, 0x5a, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xe5, 0xc4, 0xd5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x64, 0x4d, 0x83, 0x43, 0xd3, 0xa1, 0xe3, 0xd0, 0x21, 0x75, 0x70, 0x1c, 0x3a, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x71, 0x3c, 0x68, 0x46, 0x9e, 0xfb, 0xf8, 0x76, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x76, 0x83, 0x45, 0x9e, 0xfe, 0x1b, 0x62, 0x38, 0x08, 0x36, 0x78, 0x00, 0x4e, 0xc5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x96, 0x20, 0x02, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x58, 0x78, 0x28, 0x33, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x1a, 0xb4, 0xc2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xca, 0x89, 0xab, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xc9, 0x9a, 0x06, 0x07, 0xc9, 0x1a, 0x08, 0xc7, 0xa1, 0x43, 0xea, 0xe0, 0x38, 0x74, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xe2, 0x78, 0xd0, 0xd2, 0x41, 0xf7, 0xf1, 0xed, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0xec, 0xc2, 0x6d, 0x88, 0xe1, 0x41, 0xd2, 0x00, 0xc2, 0x86, 0x18, 0x0e, 0x82, 0x0d, 0x1e, 0x80, 0x53, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x25, 0x88, 0x40, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x16, 0x1e, 0xca, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x90, 0x06, 0xad, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x72, 0xe2, 0x6a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0xb2, 0xa6, 0xc1, 0x41, 0x42, 0x0e, 0xc2, 0x71, 0xe8, 0x90, 0x3a, 0x38, 0x0e, 0x1d, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x38, 0x1e, 0x34, 0xc6, 0xd1, 0x7d, 0x7c, 0x3b, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x9e, 0x0f, 0xbb, 0x70, 0x1b, 0x62, 0x78, 0x90, 0xb8, 0x37, 0xb3, 0x21, 0x86, 0x83, 0x60, 0x83, 0x07, 0xe0, 0x54, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0x09, 0x22, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x85, 0x87, 0x32, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xa4, 0x41, 0x2b, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0x9c, 0xb8, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x90, 0xac, 0x69, 0x70, 0xf0, 0xd8, 0x99, 0x8a, 0xe3, 0xd0, 0x21, 0x75, 0x70, 0x1c, 0x3a, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x71, 0x3c, 0x68, 0x2f, 0xa6, 0xfb, 0xf8, 0x76, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0xcf, 0x87, 0xdd, 0xa0, 0x7d, 0x6b, 0xa6, 0x0d, 0x31, 0x1c, 0x04, 0x1b, 0x3c, 0x00, 0xa7, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x4b, 0x10, 0x81, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x2c, 0x3c, 0x94, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x0d, 0x5a, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xe5, 0xc4, 0xd5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x64, 0x4d, 0x83, 0x83, 0x47, 0xd0, 0x54, 0x1c, 0x87, 0x0e, 0xa9, 0x83, 0xe3, 0xd0, 0x71, 0x68, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x8b, 0xe3, 0x41, 0x73, 0x46, 0xdd, 0xc7, 0xb7, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0x15, 0x04, 0x8b, 0x33, 0x07, 0x0b, 0x31, 0xa8, 0x16, 0x07, 0xc1, 0xc2, 0x2f, 0x08, 0x16, 0x24, 0x03, 0x43, 0x75, 0x10, 0xf0, 0xfe, 0x07, 0x2b, 0xda, 0x88, 0x8e, 0x6f, 0x83, 0x60, 0x71, 0xd8, 0x0d, 0x8a, 0x9e, 0x84, 0x05, 0xd1, 0x42, 0x06, 0xc1, 0x06, 0xc3, 0x77, 0xf8, 0xa0, 0xac, 0x54, 0x38, 0x34, 0xfc, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0x02, 0xf3, 0x3e, 0x08, 0x16, 0x04, 0x1b, 0x0c, 0x39, 0xeb, 0x41, 0x32, 0x30, 0x54, 0x83, 0x68, 0x61, 0x0f, 0x12, 0xbd, 0x15, 0x8e, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x8a, 0xd0, 0x84, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x85, 0x5d, 0xb8, 0x0d, 0x31, 0x3c, 0x28, 0xf6, 0x20, 0x36, 0xc4, 0x70, 0x43, 0x0c, 0x0f, 0xde, 0x54, 0x43, 0x31, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0x4d, 0xe9, 0x37, 0x0d, 0x92, 0x81, 0xe2, 0x37, 0x88, 0x16, 0xf6, 0xa0, 0xf1, 0x2d, 0x91, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0xe0, 0xe8, 0xc0, 0x7d, 0x1c, 0x1a, 0x76, 0x83, 0xd6, 0xf9, 0x00, 0x36, 0x58, 0x82, 0x41, 0x75, 0x10, 0x02, 0xe0, 0x0b, 0x82, 0x0d, 0x92, 0x38, 0x78, 0x0e, 0xc6, 0xe2, 0xfa, 0xc2, 0x6e, 0x30, 0x36, 0x39, 0x37, 0x08, 0xb2, 0xf8, 0x41, 0xb0, 0x20, 0x58, 0x10, 0x6c, 0x30, 0xb8, 0xa7, 0x07, 0xc9, 0x40, 0xf1, 0x3b, 0x58, 0x9f, 0xfb, 0x73, 0xd0, 0x10, 0x99, 0xc0, 0x20, 0x58, 0x10, 0x6c, 0xd0, 0xe2, 0x4a, 0xd4, 0x20, 0x19, 0x18, 0xaa, 0x43, 0xab, 0xa0, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x21, 0xe2, 0x3f, 0xfc, 0xc6, 0xf3, 0x61, 0x37, 0x18, 0xf5, 0x92, 0x1b, 0x8e, 0xf6, 0x83, 0xe5, 0x88, 0x42, 0xc7, 0xa1, 0x61, 0x37, 0xac, 0xef, 0x6d, 0x30, 0x58, 0x63, 0x07, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0xc1, 0xe0, 0x9e, 0x1e, 0x24, 0x03, 0xc5, 0xef, 0xe0, 0x11, 0xb2, 0x0e, 0x87, 0x0e, 0x1a, 0x83, 0x60, 0x41, 0xb0, 0x41, 0x8b, 0x2b, 0x51, 0x07, 0xc3, 0x83, 0x7a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x61, 0xed, 0xf7, 0xe0, 0x15, 0xc3, 0x15, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0x5a, 0x70, 0xfd, 0xa0, 0xd8, 0x83, 0x18, 0x44, 0x0b, 0xbb, 0x21, 0x86, 0x07, 0x41, 0x12, 0x7d, 0x3c, 0x3e, 0xbe, 0x1d, 0x8f, 0x07, 0xc1, 0x06, 0x4b, 0x30, 0xa8, 0x16, 0x87, 0x5d, 0xb8, 0x0d, 0xa9, 0x83, 0x83, 0x25, 0x18, 0x54, 0x1b, 0x62, 0x38, 0x08, 0x16, 0x04, 0x1b, 0x3c, 0x26, 0xac, 0xe1, 0x90, 0x86, 0x1b, 0x04, 0x1b, 0x3c, 0x00, 0xa7, 0x62, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x9e, 0x2f, 0x08, 0x36, 0x78, 0x00, 0x4e, 0xc5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x8e, 0x07, 0xcd, 0xf3, 0x77, 0x1f, 0xdf, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x48, 0x18, 0x03, 0x3a, 0x6c, 0xd4, 0x1e, 0x87, 0x0e, 0x31, 0x1c, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xa4, 0xcb, 0x76, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x6c, 0xd0, 0xfe, 0x3f, 0xd4, 0x41, 0xc0, 0xfb, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0x08, 0x4d, 0x0e, 0x92, 0x81, 0x70, 0x1d, 0xac, 0xed, 0xe4, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0x1c, 0xd9, 0xbb, 0x38, 0x08, 0x36, 0x38, 0x6e, 0x5e, 0x1f, 0x9c, 0xe4, 0x97, 0x8f, 0xc7, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb0, 0x20, 0x19, 0x50, 0xa8, 0xf7, 0x1d, 0x0c, 0x43, 0x9f, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x58, 0xbd, 0x3f, 0x70, 0x48, 0xc3, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x8e, 0x07, 0xcd, 0xff, 0x77, 0x1f, 0xdf, 0x86, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x38, 0xed, 0x0e, 0x02, 0xde, 0xff, 0x60, 0x3d, 0xba, 0xd6, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x3e, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x9e, 0x6f, 0x90, 0xa2, 0x7d, 0x7d, 0x88, 0xe1, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0x96, 0xbe, 0xf7, 0x1d, 0x04, 0xbc, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x74, 0xd9, 0xee, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x3c, 0x07, 0xbc, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x43, 0x68, 0x72, 0x90, 0x0c, 0x84, 0xeb, 0x60, 0x75, 0x2a, 0xff, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xe2, 0x06, 0xaf, 0x37, 0xad, 0x38, 0x78, 0xbd, 0x69, 0xc5, 0xe2, 0x20, 0xd8, 0xe0, 0xcc, 0x01, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x04, 0x1a, 0x88, 0x83, 0xe4, 0xf2, 0x81, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x12, 0x68, 0x20, 0x0e, 0x9d, 0x88, 0x8e, 0x43, 0xc7, 0xe3, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xe2, 0xc1, 0xeb, 0x4d, 0x2b, 0x16, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x04, 0x1a, 0x88, 0x43, 0x53, 0xa0, 0x41, 0xb0, 0xc1, 0x52, 0xa5, 0x8c, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0xbe, 0x20, 0xd8, 0x60, 0xa9, 0x52, 0xc6, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x8e, 0x07, 0xad, 0x92, 0x79, 0x1f, 0xdf, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0xc2, 0xdf, 0xee, 0x60, 0xbc, 0xeb, 0x1c, 0x36, 0x6a, 0x8f, 0x43, 0x87, 0x18, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x9e, 0x2f, 0x08, 0x36, 0x58, 0xaa, 0x94, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x8b, 0xe3, 0x41, 0xf3, 0x6d, 0xde, 0xc7, 0xb7, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0xc0, 0x69, 0x77, 0x30, 0xde, 0x75, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x2c, 0x3c, 0x94, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0x70, 0x4e, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xe4, 0x39, 0xee, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xc9, 0x9a, 0x06, 0x87, 0xd4, 0xc1, 0x71, 0xe8, 0x20, 0x30, 0xb1, 0x8f, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x21, 0x86, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xe7, 0x0b, 0x82, 0x0d, 0x96, 0x2a, 0x65, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xe2, 0x78, 0xd0, 0x56, 0xa0, 0xf7, 0xf1, 0x6d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x50, 0xf6, 0x0e, 0x02, 0xde, 0xff, 0x60, 0x15, 0x27, 0xff, 0x71, 0xe8, 0x10, 0xc3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xf3, 0x61, 0x37, 0x68, 0x7c, 0x3c, 0x66, 0x43, 0x0c, 0x17, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x1c, 0x0f, 0x5a, 0x7a, 0xf4, 0x3e, 0xbe, 0x0d, 0x82, 0x05, 0xc9, 0x06, 0x83, 0xe4, 0xe5, 0x60, 0xf8, 0xc7, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0xc1, 0x7f, 0xa8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x0c, 0xee, 0xe9, 0x41, 0x32, 0x10, 0xae, 0x83, 0x63, 0x69, 0xfa, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xe7, 0xc8, 0xde, 0xc5, 0x41, 0xb0, 0x20, 0x19, 0x7c, 0x39, 0x38, 0x66, 0x15, 0x1f, 0x9c, 0xe4, 0x97, 0x8f, 0xc7, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb0, 0x20, 0x19, 0x50, 0xa8, 0xf7, 0x1d, 0x9c, 0x84, 0x8e, 0x07, 0xc1, 0xc6, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xe2, 0x78, 0xd0, 0x18, 0xab, 0xf7, 0xf1, 0x6d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0x84, 0xbf, 0xdd, 0xc1, 0xf0, 0x8f, 0x3d, 0xa4, 0xe1, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x78, 0xa5, 0x7b, 0xc5, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0xa7, 0xdd, 0xc1, 0xf0, 0x8f, 0x3d, 0x58, 0x8f, 0xae, 0x75, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xf3, 0x61, 0x37, 0x58, 0x3a, 0x4a, 0xb6, 0x21, 0x86, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x8e, 0x07, 0x4d, 0xdb, 0x7a, 0x1f, 0xdf, 0x06, 0xc1, 0x06, 0x4f, 0x8c, 0xb1, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x83, 0xff, 0x50, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x18, 0xdc, 0xd3, 0x83, 0x64, 0x20, 0x5c, 0x83, 0x68, 0x61, 0x0f, 0x8d, 0x8e, 0x8e, 0x43, 0x07, 0xef, 0xbb, 0xb1, 0x38, 0x0e, 0x1d, 0x3c, 0x5c, 0xc7, 0xe2, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x6b, 0xec, 0x2b, 0x86, 0xdf, 0x78, 0x7e, 0x30, 0xf0, 0x43, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x3a, 0x1e, 0x1f, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x78, 0x3c, 0x08, 0x36, 0x78, 0x39, 0x82, 0xc5, 0xe2, 0x20, 0x58, 0x10, 0x2c, 0x08, 0x36, 0x18, 0x02, 0x90, 0x83, 0x64, 0xa0, 0xf8, 0x1d, 0xfa, 0x13, 0x1d, 0xd2, 0x70, 0x83, 0x68, 0x61, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x21, 0x34, 0x39, 0x48, 0x06, 0x86, 0xea, 0xe0, 0x58, 0x9a, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x10, 0xff, 0x83, 0x57, 0x0c, 0x57, 0x1c, 0x87, 0x0e, 0xf9, 0xda, 0xe3, 0xf1, 0x0a, 0xbf, 0x20, 0xd8, 0xe0, 0x1c, 0xd9, 0xbb, 0x38, 0xec, 0xc2, 0x2e, 0xec, 0x06, 0xc1, 0xb0, 0xbf, 0x41, 0x71, 0x71, 0x78, 0x38, 0xda, 0x17, 0x76, 0x61, 0x37, 0x28, 0x7d, 0xc1, 0x0e, 0xeb, 0x9b, 0x87, 0x74, 0xee, 0xe1, 0x68, 0x5f, 0xd8, 0x85, 0xdd, 0xa0, 0x91, 0x8d, 0x91, 0x85, 0x5d, 0xd8, 0x0d, 0xc6, 0x3a, 0xda, 0x61, 0x7d, 0xf3, 0x90, 0xce, 0x3d, 0x1c, 0xed, 0x6b, 0x88, 0xe1, 0x20, 0xd8, 0xa0, 0x55, 0x56, 0x95, 0x83, 0x93, 0xfc, 0xf2, 0xb0, 0x0b, 0xbb, 0xc1, 0xe8, 0xc5, 0x5a, 0xd8, 0x85, 0xdb, 0xd0, 0x4a, 0xfc, 0xd0, 0x48, 0x70, 0x61, 0x37, 0x48, 0xec, 0xfa, 0x59, 0xd8, 0x85, 0xdd, 0x60, 0x44, 0xf4, 0x2e, 0xdc, 0x86, 0x18, 0x1e, 0xb4, 0x9a, 0xe9, 0x74, 0x38, 0xda, 0x17, 0x76, 0x83, 0x01, 0xd9, 0xbb, 0x41, 0x83, 0xfb, 0x49, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0xd7, 0xd0, 0x4a, 0x7c, 0x0d, 0x31, 0x1c, 0x04, 0x1b, 0xb4, 0xca, 0xaa, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x5c, 0x98, 0x1d, 0x14, 0xe7, 0x5c, 0xc7, 0xa1, 0x0d, 0x31, 0x1c, 0x04, 0x1b, 0xb4, 0xca, 0xaa, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x5c, 0x98, 0x1d, 0x94, 0xd8, 0x83, 0xc7, 0xa1, 0x0d, 0x86, 0x3c, 0xfa, 0x21, 0xb1, 0x39, 0xec, 0xc2, 0x6e, 0x10, 0x0c, 0xfb, 0x0b, 0xbb, 0x41, 0xda, 0xd1, 0xcf, 0xc2, 0x6e, 0x50, 0xee, 0x1d, 0x2e, 0xec, 0x06, 0x0d, 0x3c, 0xab, 0x2c, 0xdc, 0x86, 0xa3, 0xfd, 0x60, 0x21, 0xcc, 0xfe, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0xaf, 0x41, 0x01, 0x00, 0xb5, 0xc1, 0xf8, 0xe9, 0x3a, 0x8c, 0xcb, 0xb0, 0x0b, 0xb7, 0xc1, 0x50, 0x44, 0x3a, 0x8c, 0xcb, 0x86, 0x68, 0x1e, 0x3c, 0xb8, 0xcf, 0xe2, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x37, 0x68, 0xfa, 0x1d, 0xed, 0x90, 0x5a, 0x3a, 0x1e, 0xaf, 0xf0, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xbf, 0x20, 0x58, 0x90, 0x0c, 0xac, 0xf4, 0x1d, 0x04, 0x39, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0xc0, 0xd9, 0x5d, 0xee, 0xb0, 0x42, 0x7b, 0x1c, 0x3a, 0xbe, 0x0d, 0x82, 0xc5, 0x61, 0x37, 0x18, 0x9b, 0x9c, 0x0b, 0xbb, 0x61, 0x7d, 0x6f, 0x83, 0xf5, 0x0d, 0x46, 0xc3, 0x6e, 0xd0, 0x76, 0xbf, 0xc8, 0x86, 0x68, 0x6e, 0xb0, 0x94, 0x61, 0xea, 0x90, 0x3a, 0x18, 0x24, 0x43, 0x06, 0xd1, 0x06, 0xa5, 0xf2, 0xd6, 0x20, 0x5a, 0xd8, 0x61, 0x17, 0x6e, 0x83, 0xf5, 0x0d, 0x46, 0x87, 0xf8, 0x6f, 0x48, 0x1d, 0x0c, 0xbb, 0xb0, 0x1b, 0x3c, 0xc8, 0x57, 0x60, 0xe1, 0x36, 0x58, 0xca, 0x30, 0x75, 0x30, 0x26, 0xac, 0x0e, 0x47, 0xfb, 0x82, 0x60, 0x41, 0xb0, 0x41, 0x8b, 0x20, 0x27, 0x83, 0x64, 0x20, 0x5c, 0x87, 0xf6, 0x2d, 0x07, 0xc5, 0x63, 0xca, 0x20, 0x58, 0x10, 0x6c, 0xd0, 0x22, 0xc8, 0xc9, 0x41, 0xc1, 0xe8, 0x70, 0xc8, 0x5e, 0x1c, 0x8f, 0x8f, 0x6f, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0xb8, 0xc1, 0x82, 0x86, 0xa9, 0x43, 0x6a, 0xe9, 0x78, 0xbc, 0x82, 0x60, 0x83, 0xa6, 0xd0, 0x97, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x3c, 0x68, 0xa3, 0xe1, 0x7f, 0xe1, 0x37, 0x9e, 0x8f, 0x07, 0x4d, 0x2d, 0xfc, 0x1f, 0x0c, 0xfc, 0x90, 0xe3, 0xd0, 0x0a, 0xbf, 0x20, 0xd8, 0xa0, 0xdd, 0x55, 0x80, 0xc5, 0x61, 0x17, 0x6e, 0x83, 0xf5, 0x0d, 0x46, 0x87, 0x71, 0xd9, 0x60, 0x7d, 0x83, 0xd1, 0x06, 0x0b, 0xe9, 0xa5, 0x0e, 0x89, 0xcd, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0xdc, 0x30, 0xf7, 0x87, 0xd4, 0xd2, 0xf1, 0x78, 0xe1, 0x17, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0xc3, 0xd1, 0x3e, 0x08, 0x16, 0x87, 0xdd, 0x60, 0x10, 0x70, 0x6c, 0x88, 0xe1, 0xb0, 0x0b, 0xbb, 0xc1, 0x5a, 0x21, 0xb1, 0x85, 0xdd, 0x60, 0xd9, 0xfa, 0xff, 0xc2, 0x2e, 0xdc, 0x86, 0x18, 0x1e, 0x9a, 0x0e, 0x6d, 0xf0, 0x0e, 0x7a, 0x87, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0x82, 0x60, 0x83, 0x37, 0x23, 0x05, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x28, 0xba, 0xfa, 0x0e, 0xd9, 0x8a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x64, 0xc7, 0xc1, 0x03, 0x10, 0x22, 0x8e, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x2c, 0xb4, 0xb6, 0x5a, 0x5c, 0x10, 0x6c, 0xf0, 0x26, 0x9d, 0x89, 0x83, 0x04, 0xb9, 0xa2, 0xc3, 0xb8, 0x1c, 0x8f, 0x8f, 0x43, 0xc3, 0x2e, 0xec, 0x06, 0x6b, 0x85, 0xc4, 0x16, 0x76, 0x83, 0x65, 0xeb, 0xff, 0x1b, 0xbc, 0xaa, 0xd5, 0xe2, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0x05, 0xc1, 0x06, 0xef, 0x8d, 0xb5, 0x18, 0x76, 0x83, 0xd6, 0xf9, 0x00, 0x16, 0x24, 0x43, 0x06, 0xd1, 0x06, 0x6d, 0x91, 0x05, 0x0c, 0xa2, 0x85, 0x1d, 0x04, 0x1b, 0xb4, 0x8d, 0x45, 0x72, 0xf0, 0x62, 0xa0, 0x89, 0xe3, 0xf9, 0x86, 0x18, 0x2e, 0x08, 0x36, 0x68, 0x1b, 0x8b, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x6d, 0x63, 0x91, 0x1c, 0x3c, 0x66, 0x67, 0xe2, 0xd0, 0x48, 0xf0, 0x38, 0x74, 0x30, 0x58, 0x63, 0x87, 0x5d, 0xd8, 0x0d, 0xd6, 0x0a, 0x89, 0x2d, 0xec, 0x06, 0xcb, 0xd6, 0xff, 0x0f, 0xde, 0xe2, 0x6a, 0x71, 0x38, 0xda, 0x17, 0x04, 0x1b, 0xbc, 0x37, 0xd6, 0x62, 0xd8, 0x0d, 0x5a, 0xe7, 0x03, 0x58, 0x90, 0x0c, 0x19, 0x44, 0x1b, 0x34, 0xbe, 0x15, 0x70, 0xf0, 0xe6, 0x5e, 0x8b, 0x83, 0xf7, 0xfe, 0x5a, 0x0c, 0xb2, 0x35, 0xb4, 0x5f, 0x1f, 0x76, 0x83, 0xb5, 0x42, 0x62, 0x1b, 0x2c, 0x5b, 0xff, 0x3f, 0x1c, 0xed, 0x83, 0x60, 0x83, 0xf7, 0xc6, 0x5a, 0x0c, 0xbb, 0x41, 0xeb, 0x7c, 0x00, 0x0b, 0x82, 0x05, 0xc9, 0x90, 0x41, 0xb4, 0x41, 0xe3, 0x5b, 0x01, 0x83, 0x68, 0x61, 0x07, 0xc1, 0x06, 0x6d, 0x63, 0x91, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xec, 0x15, 0x1e, 0x0c, 0xd9, 0xf3, 0xe3, 0xd0, 0xf1, 0x7c, 0xd8, 0x0d, 0x5a, 0xe7, 0x03, 0x58, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xda, 0x0f, 0x1a, 0xf6, 0x19, 0x19, 0x44, 0x0b, 0x3b, 0x08, 0x36, 0x78, 0x93, 0xce, 0xc4, 0x41, 0xeb, 0x34, 0x23, 0x87, 0xe4, 0xd2, 0x71, 0xe8, 0xe0, 0xbd, 0xbf, 0x16, 0xc7, 0xb7, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0xdc, 0xa0, 0x69, 0xf4, 0xbe, 0x43, 0x6a, 0xe9, 0x78, 0x3c, 0xfc, 0x82, 0x60, 0x71, 0xc3, 0x74, 0x1e, 0x2c, 0x49, 0x83, 0x5a, 0x1c, 0x76, 0xe1, 0x36, 0x58, 0xdf, 0x60, 0x74, 0x88, 0xe6, 0x06, 0xeb, 0x1b, 0x8c, 0x36, 0x58, 0xd3, 0x2d, 0x75, 0x48, 0x6c, 0x1e, 0x8f, 0x07, 0xd9, 0x1a, 0xd2, 0x40, 0xe3, 0x86, 0x19, 0x3a, 0xa4, 0x96, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x1b, 0xa4, 0x47, 0xf9, 0x2c, 0x0e, 0xbb, 0x21, 0x8f, 0xb5, 0xb0, 0x1b, 0xf6, 0x0a, 0xd7, 0x60, 0xd1, 0x11, 0xd2, 0x61, 0x5c, 0x36, 0x58, 0xaa, 0x85, 0x74, 0x18, 0x97, 0x61, 0x37, 0x48, 0x8f, 0xf3, 0x59, 0xd8, 0x0d, 0x7b, 0x85, 0x6b, 0xb0, 0xe8, 0x08, 0xe9, 0xb0, 0x75, 0x30, 0xec, 0x06, 0x23, 0x16, 0x6b, 0x0d, 0x96, 0x6a, 0x21, 0x1d, 0xb6, 0x0e, 0x16, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf4, 0xd0, 0x48, 0xf0, 0x78, 0x7c, 0x30, 0x62, 0x09, 0x06, 0xd9, 0x1a, 0xda, 0xaf, 0x1f, 0x2c, 0x4c, 0x1a, 0xd8, 0x60, 0x39, 0x8e, 0xd2, 0x20, 0xd8, 0xa0, 0xd5, 0x3c, 0xa6, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x7c, 0xed, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xe9, 0x51, 0x3e, 0x8b, 0x07, 0x29, 0x43, 0x09, 0xc7, 0xe3, 0xe3, 0xd0, 0xf1, 0xf8, 0x78, 0xbc, 0xc2, 0x2f, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x06, 0xab, 0x63, 0x55, 0x86, 0xdd, 0x60, 0xd4, 0x4b, 0x6e, 0x48, 0x4c, 0x0d, 0x82, 0x05, 0xc1, 0x06, 0xe7, 0x10, 0xee, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0xdf, 0xd0, 0x9f, 0x7c, 0x10, 0x6c, 0x70, 0x94, 0xdf, 0x3d, 0x18, 0xd8, 0xa2, 0x87, 0xbd, 0xc2, 0xe3, 0xd0, 0xb0, 0x0b, 0xbb, 0x20, 0xd8, 0x20, 0xf9, 0x3a, 0x7b, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x75, 0x70, 0x90, 0x36, 0xed, 0x7c, 0x1c, 0x5a, 0xd8, 0x05, 0xc1, 0x06, 0x67, 0xb6, 0xec, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xd4, 0xc1, 0x41, 0xd2, 0xba, 0xf3, 0x71, 0xe8, 0x90, 0xce, 0x3d, 0x1c, 0xed, 0x2b, 0x08, 0x36, 0x48, 0x75, 0xe4, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0x1d, 0x1c, 0x24, 0xdc, 0x9e, 0x1c, 0x87, 0x06, 0xc1, 0x06, 0x25, 0x5d, 0xd4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x6f, 0xe8, 0x4f, 0x3e, 0x08, 0x36, 0x38, 0x6a, 0x0f, 0x1f, 0x1a, 0xb5, 0x1c, 0x04, 0x26, 0xf6, 0x71, 0xe8, 0x60, 0x94, 0x72, 0x1e, 0x8f, 0x07, 0xc1, 0x0a, 0x82, 0x8d, 0x43, 0x87, 0x8d, 0xda, 0x41, 0xb0, 0x71, 0xe8, 0xb0, 0xc7, 0x3b, 0xec, 0xc2, 0x2e, 0xdc, 0x86, 0x18, 0x1e, 0x14, 0x14, 0x45, 0x1b, 0x62, 0x38, 0xec, 0x06, 0x0b, 0xb5, 0xb8, 0x36, 0xc4, 0x70, 0xd8, 0x85, 0x5d, 0xd8, 0x0d, 0x16, 0x6a, 0x71, 0x1d, 0xd6, 0x37, 0x17, 0x76, 0x41, 0xb0, 0x41, 0xc2, 0x3e, 0xf3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0x23, 0xc1, 0x83, 0xf1, 0xd3, 0x75, 0x1c, 0x3a, 0xa4, 0x73, 0x0f, 0x47, 0xfb, 0x21, 0x9d, 0xbb, 0xb0, 0x0b, 0x82, 0xc5, 0x61, 0x37, 0x28, 0x7d, 0xc1, 0x36, 0xc4, 0x70, 0xd8, 0x0d, 0xc6, 0x3a, 0xda, 0x86, 0x18, 0x0e, 0xbb, 0xb0, 0x0b, 0xb7, 0x20, 0xd8, 0x20, 0x8d, 0xee, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x50, 0x2c, 0x3a, 0x18, 0x17, 0x66, 0xc7, 0xa1, 0x41, 0xb0, 0x41, 0x1a, 0xdd, 0xc3, 0x41, 0xc9, 0x99, 0xb3, 0xb0, 0x0b, 0x92, 0x21, 0x83, 0x68, 0xc1, 0x76, 0x10, 0x6c, 0x70, 0x0e, 0xe1, 0x3e, 0x28, 0x39, 0x73, 0x06, 0xd1, 0x82, 0xe5, 0x20, 0xd8, 0xe0, 0x1c, 0xc2, 0x7d, 0xf0, 0xdc, 0x89, 0x8b, 0xe3, 0xf1, 0x21, 0x9d, 0x7b, 0x38, 0xda, 0x0f, 0xe9, 0xdc, 0xe3, 0xdb, 0x21, 0x9d, 0x7b, 0x38, 0xda, 0x8f, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0x83, 0x56, 0x31, 0xaf, 0x0e, 0xa9, 0xa5, 0xe3, 0xf1, 0xc2, 0x2f, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0x86, 0xa3, 0x7d, 0x10, 0x2c, 0x0e, 0xbb, 0xc1, 0x20, 0xe0, 0xd8, 0x10, 0xc3, 0x61, 0x37, 0x78, 0xeb, 0xaa, 0xc5, 0xc2, 0x6e, 0x50, 0x02, 0x27, 0xac, 0x21, 0x86, 0x1b, 0x52, 0x07, 0x07, 0xc5, 0x1e, 0xc4, 0x21, 0x86, 0xc3, 0x6e, 0xf0, 0x3a, 0x5c, 0x8b, 0x85, 0xdd, 0xa0, 0x04, 0x4e, 0x58, 0x43, 0x0c, 0x37, 0x78, 0x4c, 0xbe, 0xc3, 0x41, 0xb1, 0x07, 0x31, 0xec, 0x82, 0x60, 0x83, 0x42, 0x98, 0xe1, 0xa0, 0xec, 0x4b, 0xd8, 0x10, 0xc3, 0x41, 0x32, 0x64, 0x10, 0x6d, 0xd0, 0xca, 0x8f, 0xc0, 0xc1, 0xf3, 0xf8, 0x1d, 0x86, 0xdd, 0xe0, 0x99, 0xc4, 0x16, 0x0b, 0xbb, 0x41, 0x09, 0x9c, 0xb0, 0xc1, 0x33, 0x4c, 0x2e, 0x86, 0xdd, 0xe0, 0xa5, 0x27, 0x17, 0x0b, 0x92, 0x21, 0x83, 0x68, 0x41, 0xfb, 0xa1, 0xe9, 0xd0, 0xc1, 0xf3, 0xf8, 0x1d, 0x0e, 0x31, 0x1c, 0x64, 0x1b, 0x3c, 0x5d, 0xd9, 0x62, 0xd8, 0x0d, 0x4a, 0xe0, 0x84, 0x0d, 0x9e, 0x61, 0x72, 0x31, 0xec, 0x06, 0x2f, 0x3d, 0xb9, 0x58, 0x90, 0x0c, 0x19, 0x44, 0x1b, 0x3c, 0xc4, 0xe5, 0x62, 0x10, 0x2d, 0xec, 0x20, 0xd8, 0x60, 0x75, 0x52, 0xca, 0xc1, 0x58, 0x3b, 0x3f, 0x1e, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x83, 0x56, 0x7e, 0x04, 0x06, 0xd1, 0xc2, 0x0e, 0x82, 0x0d, 0x56, 0x27, 0xa5, 0x1c, 0x0c, 0x48, 0xf4, 0xe3, 0xf1, 0xf1, 0xed, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x37, 0x68, 0x1b, 0x09, 0xf4, 0x90, 0x5a, 0x3a, 0x1e, 0x0f, 0xbf, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x76, 0xe1, 0x36, 0x18, 0xac, 0x28, 0x87, 0xd4, 0xc1, 0x86, 0x73, 0x7d, 0xd8, 0x85, 0xdb, 0x70, 0xae, 0x1f, 0x52, 0x07, 0x1b, 0x0c, 0x56, 0x94, 0x61, 0x37, 0x68, 0xe7, 0xbb, 0x65, 0x43, 0xea, 0x60, 0x83, 0xd1, 0x7c, 0xbe, 0x21, 0x75, 0x30, 0x1e, 0xd6, 0x37, 0x8f, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0x83, 0xb4, 0x90, 0xd8, 0x43, 0x6a, 0xe9, 0x78, 0x3c, 0xfc, 0x82, 0x60, 0x83, 0x73, 0x64, 0xef, 0xe2, 0xb0, 0x0b, 0xbb, 0xa1, 0xe3, 0xc8, 0xc2, 0x2e, 0xec, 0x06, 0xc1, 0xb0, 0xbf, 0x41, 0x49, 0x74, 0x78, 0x38, 0xda, 0x17, 0x76, 0x83, 0xd1, 0x8b, 0xb5, 0xc1, 0x30, 0xe5, 0x3d, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0xaf, 0xe1, 0x68, 0x3f, 0x18, 0x98, 0x5d, 0x87, 0xc4, 0xe6, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x6e, 0xd0, 0xd0, 0x0c, 0xda, 0x21, 0xb5, 0x74, 0x3c, 0x5e, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0xbb, 0xc1, 0xd3, 0x5c, 0x1c, 0x36, 0x8c, 0xcb, 0xb0, 0x0b, 0xbb, 0xa1, 0xe3, 0xc8, 0x06, 0x6b, 0x58, 0xaf, 0x0e, 0x47, 0xfb, 0x06, 0x4b, 0xe7, 0x76, 0x06, 0xd9, 0x86, 0xe6, 0xeb, 0x83, 0x6c, 0x0d, 0x79, 0xec, 0xc5, 0x0d, 0xb9, 0xef, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0xc5, 0xf1, 0xa0, 0x29, 0xdd, 0xf0, 0xe3, 0xdb, 0xf1, 0xf8, 0x70, 0x8a, 0x1d, 0x8f, 0x17, 0x7e, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0x08, 0x16, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x36, 0x38, 0x87, 0x70, 0x1f, 0x8c, 0xe3, 0x90, 0xe3, 0xf1, 0x0a, 0x82, 0x0d, 0x1e, 0xa8, 0xbd, 0xb0, 0x38, 0xec, 0x82, 0x60, 0x83, 0xf1, 0xd3, 0x35, 0x08, 0x16, 0x87, 0xdd, 0xd0, 0xf4, 0x7c, 0xc3, 0xd1, 0x3e, 0xec, 0x82, 0x60, 0x41, 0xb0, 0x41, 0x8b, 0x2b, 0x51, 0x07, 0x6f, 0xb2, 0x49, 0x38, 0x34, 0x6a, 0xd9, 0x10, 0xc3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x20, 0xd8, 0xe0, 0x1c, 0xf0, 0x7d, 0x68, 0xd4, 0x72, 0x3c, 0x3e, 0xbe, 0x6d, 0x18, 0x97, 0xe1, 0x17, 0x44, 0x0b, 0xd2, 0x41, 0xb0, 0x20, 0xd9, 0x60, 0xed, 0x3a, 0xc5, 0xc1, 0x30, 0xf4, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x53, 0xfa, 0x4d, 0x83, 0x64, 0x20, 0x5c, 0x87, 0xbe, 0x1a, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0xab, 0xf0, 0x0b, 0x92, 0x0d, 0x96, 0x19, 0x1d, 0x1d, 0x0c, 0x43, 0x9f, 0xe3, 0xdb, 0xf0, 0x0b, 0x92, 0x01, 0xc1, 0x2f, 0x77, 0x10, 0xf0, 0xfe, 0xc7, 0xb7, 0xc3, 0xb8, 0x2c, 0x0e, 0xbb, 0x20, 0xd8, 0x60, 0x25, 0x93, 0xcb, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0xa0, 0xf4, 0xdb, 0x38, 0x0e, 0x2d, 0x08, 0x16, 0x04, 0x1b, 0xb4, 0xb8, 0x12, 0x75, 0xf0, 0xe6, 0x52, 0x84, 0x83, 0x64, 0x43, 0x83, 0xc3, 0xb8, 0x1c, 0x8f, 0x8f, 0x43, 0xc7, 0xe3, 0x41, 0xb0, 0x20, 0xd8, 0x20, 0x19, 0x93, 0xfe, 0x20, 0xd9, 0xd0, 0x60, 0x10, 0x2c, 0x08, 0x16, 0x04, 0x1b, 0x0c, 0xee, 0xe9, 0x41, 0x32, 0x50, 0xfc, 0x0e, 0xdb, 0xbd, 0x07, 0x03, 0x5b, 0x74, 0xd8, 0x0d, 0x46, 0xbd, 0xe4, 0x82, 0x60, 0x41, 0xb0, 0x41, 0x8b, 0x2b, 0x51, 0x83, 0x64, 0x60, 0xa8, 0x0e, 0x9a, 0x27, 0x13, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x50, 0xc2, 0x48, 0x1c, 0x8c, 0xc5, 0xce, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x0d, 0xde, 0xd7, 0x75, 0x31, 0xec, 0x82, 0x60, 0x41, 0x32, 0xf8, 0x72, 0x70, 0x12, 0x3a, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x1e, 0x94, 0x3a, 0x1d, 0xc7, 0xa1, 0x05, 0xc1, 0x82, 0x64, 0x40, 0x78, 0xf5, 0x1d, 0x8c, 0x77, 0x9d, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x63, 0xb1, 0xf3, 0x30, 0x2e, 0xc7, 0xa1, 0x41, 0xb0, 0xc1, 0x0b, 0xf6, 0x2e, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xc6, 0xe5, 0x60, 0x2c, 0x76, 0x1e, 0x87, 0x06, 0xc1, 0x82, 0x60, 0x83, 0x16, 0x57, 0xa2, 0x06, 0xc9, 0x40, 0xf8, 0x0e, 0x9a, 0x27, 0x13, 0x38, 0x34, 0x6a, 0x39, 0x24, 0x97, 0x8e, 0xc7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x04, 0x52, 0x86, 0x43, 0xc7, 0xf8, 0x61, 0x37, 0x18, 0xf5, 0x92, 0x1b, 0x34, 0xd9, 0xff, 0x7e, 0x70, 0xc2, 0xba, 0x3e, 0x1e, 0x2f, 0x08, 0x16, 0x04, 0x1b, 0xac, 0x80, 0xe7, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x58, 0xfb, 0x3d, 0x58, 0xe5, 0x21, 0x75, 0x1c, 0x1a, 0x04, 0x0b, 0x82, 0x05, 0xc9, 0x06, 0xed, 0xff, 0x43, 0x1d, 0x8c, 0x77, 0x9d, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xb4, 0x08, 0x72, 0x32, 0x48, 0x06, 0x42, 0x37, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x21, 0x67, 0x3d, 0x48, 0x06, 0x82, 0x77, 0x30, 0x06, 0x23, 0x8f, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x83, 0x2f, 0x07, 0xc3, 0xd0, 0xe7, 0x38, 0x34, 0x08, 0x16, 0x87, 0xdd, 0xb0, 0xbe, 0xb7, 0x41, 0x7b, 0xd9, 0x4a, 0x83, 0x60, 0x43, 0x34, 0x07, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0x41, 0x8b, 0x2b, 0x51, 0x83, 0x64, 0xa0, 0x7a, 0x1d, 0x8c, 0x1a, 0xa3, 0x83, 0x81, 0x2d, 0x3a, 0x08, 0x16, 0x24, 0x43, 0x06, 0xd1, 0x86, 0x65, 0xdf, 0x43, 0x72, 0x69, 0x83, 0x23, 0x4f, 0xf1, 0x06, 0x63, 0xd9, 0xe7, 0x38, 0x74, 0x7c, 0x1b, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0xc1, 0x81, 0x75, 0xfb, 0x20, 0xfd, 0x99, 0x68, 0x10, 0x2c, 0x08, 0x36, 0x38, 0x4b, 0x66, 0x1f, 0x9c, 0x83, 0x80, 0x87, 0x5d, 0x10, 0x6c, 0xd0, 0x2a, 0x5c, 0xd4, 0xc1, 0x9b, 0x4d, 0x28, 0x36, 0x1c, 0xed, 0x83, 0x60, 0x41, 0xb0, 0x41, 0xc2, 0xda, 0xc2, 0xc1, 0x9b, 0x4d, 0x28, 0x86, 0xdb, 0x90, 0xec, 0x18, 0x04, 0x0b, 0x92, 0x81, 0xf7, 0x9d, 0x0e, 0x4e, 0x42, 0xc7, 0x07, 0xa7, 0x74, 0xf0, 0xe3, 0xf1, 0xc1, 0x69, 0x05, 0xf7, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x37, 0x68, 0x58, 0xe9, 0xef, 0x90, 0x5a, 0x3a, 0x1e, 0x2f, 0xfc, 0x82, 0x60, 0x71, 0xc3, 0x29, 0x76, 0x70, 0x9a, 0xec, 0x5d, 0x1c, 0x76, 0xe1, 0x36, 0x18, 0xac, 0x28, 0x87, 0x68, 0x6e, 0x68, 0x24, 0x38, 0xec, 0xc2, 0x1d, 0x2c, 0xc3, 0xbb, 0xd9, 0x20, 0x28, 0xbd, 0x87, 0x5d, 0xb8, 0x0d, 0x89, 0xa9, 0x43, 0x34, 0x37, 0x44, 0x73, 0x83, 0xd1, 0x7c, 0xbe, 0x21, 0x9a, 0x07, 0x23, 0x3c, 0xed, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x37, 0x68, 0x0c, 0x25, 0xed, 0x90, 0x5a, 0x3a, 0x1e, 0x0f, 0xbf, 0x20, 0xd8, 0xe0, 0x1c, 0xd9, 0xbb, 0x38, 0xec, 0xc2, 0x6e, 0x48, 0x67, 0x6e, 0x88, 0xe1, 0xb0, 0x1b, 0x3c, 0x00, 0xf5, 0x62, 0x43, 0x0c, 0x87, 0x5d, 0xb8, 0x0d, 0xe7, 0xfa, 0x61, 0x5c, 0x36, 0xc4, 0x70, 0xd8, 0x0d, 0x9e, 0xad, 0x7a, 0x71, 0x48, 0xe7, 0x6e, 0x88, 0xe6, 0xb0, 0x0b, 0xbb, 0xc1, 0x0b, 0x53, 0x2f, 0x36, 0xc4, 0x70, 0xd8, 0x85, 0xdb, 0x60, 0xb0, 0xa2, 0x1c, 0xc6, 0x65, 0x43, 0x0c, 0x87, 0x5d, 0xb8, 0x0d, 0x89, 0xa9, 0xc3, 0xb8, 0x1c, 0xd2, 0xb9, 0x1b, 0xc6, 0x65, 0x83, 0xd1, 0x7c, 0xbe, 0x21, 0x9a, 0x07, 0x8f, 0xb5, 0xbd, 0x38, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x0d, 0x5a, 0xb1, 0x11, 0x3b, 0xa4, 0x96, 0x8e, 0xc7, 0x0b, 0x82, 0xc5, 0x35, 0x4c, 0xe7, 0xc1, 0xaa, 0x05, 0xac, 0xc3, 0x74, 0x2e, 0x0e, 0xbb, 0xc1, 0xe3, 0x48, 0x2d, 0x36, 0x58, 0xdf, 0x60, 0x34, 0xec, 0xc2, 0x6d, 0xb0, 0xd0, 0xc4, 0xe8, 0x30, 0x2e, 0x1b, 0x2c, 0x34, 0x31, 0xda, 0x60, 0x69, 0xca, 0xd4, 0x21, 0xb1, 0x79, 0x3c, 0x5e, 0xf8, 0x05, 0xc1, 0x06, 0xed, 0x59, 0x00, 0x2c, 0x0e, 0xbb, 0xc1, 0xc3, 0xb7, 0x2d, 0x36, 0x58, 0xdf, 0x60, 0x34, 0xec, 0x06, 0x8f, 0x23, 0xb5, 0xd8, 0x60, 0x7d, 0x83, 0xd1, 0x41, 0xab, 0x54, 0x4c, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0xb8, 0x61, 0xe2, 0x0e, 0xa9, 0xa5, 0xe3, 0xf1, 0xf0, 0x0b, 0x82, 0x0d, 0xce, 0x91, 0xbd, 0x8b, 0xc3, 0x2e, 0xec, 0x86, 0x74, 0xe6, 0x86, 0x18, 0x0e, 0xbb, 0xc1, 0x0b, 0x53, 0x2f, 0x36, 0xc4, 0x70, 0xd8, 0x0d, 0x9e, 0x68, 0x7b, 0x71, 0xf0, 0xb4, 0xd9, 0x8b, 0x0d, 0xd1, 0x1c, 0x76, 0x61, 0x37, 0x78, 0x00, 0xea, 0xc5, 0x86, 0x18, 0x0e, 0xbb, 0xc1, 0x33, 0x65, 0x2f, 0x0e, 0x9e, 0x77, 0x7b, 0xb1, 0x61, 0x5c, 0x36, 0x18, 0xcd, 0xe7, 0x1b, 0xa2, 0xb9, 0x61, 0x5c, 0x0e, 0xe7, 0xfa, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x6e, 0xd0, 0x2a, 0x85, 0xd8, 0x21, 0xb5, 0x74, 0x3c, 0x5e, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0xd8, 0xa0, 0x4c, 0x9d, 0x3b, 0x78, 0x9e, 0x35, 0xc3, 0xa1, 0x51, 0xcb, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xc1, 0x06, 0xcb, 0x0a, 0xa3, 0x0e, 0xc6, 0x71, 0xc8, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x83, 0x32, 0x75, 0x6e, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0xc1, 0xb2, 0xc2, 0xa8, 0x83, 0xa5, 0x7b, 0x53, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xd0, 0xa1, 0x51, 0xcb, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x83, 0x75, 0x7e, 0x51, 0x2b, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0x0a, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x3a, 0x68, 0xd7, 0x7e, 0xe9, 0x90, 0x86, 0x1b, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x48, 0x06, 0xda, 0xff, 0x1d, 0x8f, 0x0f, 0x1d, 0x34, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x83, 0x60, 0x83, 0xd4, 0x7f, 0x8c, 0xc5, 0x41, 0xb0, 0x20, 0xd8, 0x60, 0x59, 0x61, 0xd4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x1f, 0x14, 0x0c, 0x8f, 0x87, 0x54, 0xcd, 0x71, 0xe8, 0xd0, 0xfc, 0xe5, 0x78, 0x3c, 0x08, 0x36, 0x28, 0xa8, 0xc5, 0x16, 0x07, 0xc1, 0x0a, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x3a, 0x68, 0x61, 0x87, 0xe9, 0x90, 0x86, 0x1b, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x74, 0xb0, 0x7a, 0x13, 0xed, 0xd0, 0x41, 0xe3, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x04, 0x0b, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x1b, 0xac, 0xa1, 0x91, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xf0, 0xbc, 0xbc, 0x84, 0xe1, 0x37, 0x9e, 0x1f, 0xbc, 0x84, 0xfb, 0xe2, 0x38, 0x74, 0x68, 0xd4, 0x72, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0xc1, 0xb2, 0xc2, 0xa8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x87, 0x7a, 0xdb, 0x43, 0xaa, 0xe6, 0x38, 0x74, 0x68, 0xfe, 0x72, 0x3c, 0x1e, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x48, 0x06, 0xda, 0xf7, 0x1d, 0x56, 0x68, 0x0f, 0x8d, 0x5a, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x0b, 0x82, 0xc5, 0x0d, 0x92, 0xf8, 0x7b, 0x5a, 0x1c, 0x04, 0xab, 0xb0, 0x0b, 0xb7, 0xc1, 0xf8, 0xe9, 0x3a, 0xc4, 0xf0, 0xd0, 0x38, 0x6a, 0x85, 0x5d, 0xb8, 0x0d, 0xca, 0x0d, 0x9b, 0x43, 0x0c, 0x0f, 0x8d, 0xa3, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x92, 0x01, 0x81, 0xdf, 0x77, 0x58, 0xa1, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x4e, 0x10, 0xe5, 0xe3, 0xd0, 0xb0, 0x1b, 0x3c, 0x82, 0x7b, 0xe1, 0xd0, 0x38, 0xea, 0x60, 0x68, 0xfe, 0x1e, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x36, 0x28, 0x53, 0xe7, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x0d, 0xde, 0x38, 0x7e, 0x31, 0x08, 0x36, 0x78, 0xf1, 0x00, 0xc6, 0xa1, 0x83, 0xc6, 0xa1, 0xf9, 0xcb, 0xf1, 0xf8, 0x38, 0x74, 0x68, 0xd4, 0x72, 0x68, 0xfe, 0x72, 0x3c, 0x3e, 0x78, 0xf2, 0xf5, 0xc5, 0x41, 0x63, 0xbb, 0x51, 0x1b, 0x4e, 0x84, 0x0d, 0xa5, 0x68, 0x83, 0xc5, 0x6c, 0x50, 0xcb, 0x2c, 0x07, 0x8d, 0x83, 0x03, 0x1e, 0x4e, 0xb1, 0xc3, 0x29, 0x76, 0xd0, 0x38, 0x38, 0xe0, 0x86, 0x19, 0x5a, 0xc3, 0xc4, 0xad, 0x61, 0xee, 0x07, 0xf8, 0xcb, 0xe8, 0xd0, 0xca, 0xe4, 0xca, 0xea, 0xda, 0x0d, 0x33, 0xb4, 0x86, 0xb9, 0x5f, 0xd6, 0xf0, 0xb6, 0xce, 0x00, 0xbe, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x73, 0x6d, 0x98, 0xa1, 0x35, 0xcc, 0xd0, 0x1a, 0x66, 0x68, 0x0d, 0x33, 0xb4, 0xc1, 0xd2, 0x3f, 0xfd, 0x0d, 0x27, 0xc2, 0x06, 0x4b, 0xff, 0xf4, 0xd7, 0x70, 0x8e, 0xac, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0xd7, 0x20, 0x3d, 0xcc, 0x7b, 0xc0, 0x0f, 0x93, 0xb3, 0x7b, 0x0f, 0x52, 0xd7, 0xbc, 0x17, 0x88, 0x5e, 0xc8, 0x06, 0xa2, 0x17, 0x7a, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0xa2, 0x17, 0x16, 0x03, 0xd1, 0x0b, 0xab, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x20, 0x7a, 0x21, 0x3c, 0x78, 0x21, 0x09, 0xc6, 0x20, 0xd8, 0xa0, 0xa5, 0xac, 0xa6, 0x43, 0x1a, 0x6e, 0x90, 0x6d, 0xf0, 0x94, 0x0f, 0x8c, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x20, 0x7a, 0x61, 0x3b, 0x10, 0xbd, 0x50, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x44, 0x2f, 0xcc, 0x0e, 0x5e, 0xb5, 0x82, 0x31, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x44, 0x2f, 0x8c, 0x07, 0xa2, 0x17, 0x0a, 0x0e, 0x96, 0x53, 0x05, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x44, 0x2f, 0x34, 0x0c, 0x44, 0x2f, 0xb4, 0x0c, 0x92, 0x81, 0xbe, 0x77, 0xc7, 0xe3, 0xe3, 0xd0, 0xa1, 0x83, 0xc6, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x41, 0xb0, 0x78, 0xd0, 0x54, 0x96, 0xeb, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x98, 0x83, 0xe8, 0xc0, 0x30, 0xc4, 0x0d, 0xbb, 0x70, 0x8b, 0x07, 0xab, 0xad, 0xe8, 0x0e, 0xd1, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x98, 0x83, 0xf8, 0x81, 0x39, 0x08, 0xa3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0x39, 0x08, 0xc1, 0xc0, 0x1c, 0x84, 0x74, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0xb7, 0xef, 0x60, 0x6c, 0xf0, 0xf6, 0x1d, 0x8c, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x78, 0x45, 0x0f, 0xc6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x30, 0x07, 0x61, 0x30, 0x30, 0x07, 0x61, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0xcc, 0x41, 0x88, 0x0f, 0x5e, 0x69, 0x84, 0x71, 0xd0, 0x4a, 0x67, 0xd3, 0xb0, 0x0b, 0xb7, 0x78, 0xb0, 0x76, 0xb4, 0xfb, 0x10, 0xcd, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0x41, 0x88, 0x1f, 0x18, 0x84, 0x50, 0xb5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x30, 0x08, 0x21, 0x18, 0x18, 0x84, 0x90, 0x0e, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xf0, 0x3e, 0x25, 0x8c, 0x0d, 0xde, 0xa7, 0x84, 0x71, 0x38, 0xc5, 0x06, 0xd9, 0x06, 0x2f, 0x5d, 0xc2, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x06, 0x21, 0x0c, 0x06, 0x06, 0x21, 0x34, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0x83, 0x10, 0xe2, 0x83, 0xa7, 0x54, 0x61, 0x0c, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0x83, 0x10, 0x16, 0x03, 0x83, 0x10, 0x56, 0x07, 0xcb, 0xa9, 0x82, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x06, 0x21, 0xcc, 0x06, 0x06, 0x21, 0x14, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0x41, 0x08, 0xbb, 0x81, 0x41, 0x08, 0xdb, 0x83, 0x92, 0x77, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0x41, 0x08, 0xe3, 0x81, 0x41, 0x08, 0x05, 0x83, 0x64, 0xa0, 0x7d, 0xdf, 0x21, 0x5b, 0x31, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x60, 0x10, 0x42, 0xc3, 0xc0, 0x20, 0x84, 0x9e, 0xe1, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x06, 0x21, 0x54, 0x0c, 0x0c, 0x42, 0xa8, 0x19, 0x24, 0x03, 0x61, 0x3a, 0x1e, 0x1f, 0xdf, 0x8e, 0x43, 0xc7, 0xa1, 0x43, 0x07, 0x8d, 0x61, 0x17, 0x6e, 0x31, 0xf0, 0xef, 0xd0, 0xca, 0xf2, 0x43, 0x34, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x26, 0x21, 0x7e, 0x60, 0x12, 0xc2, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x60, 0x12, 0x42, 0x30, 0x30, 0x09, 0x21, 0x1d, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0x61, 0x6f, 0x18, 0x1b, 0x3c, 0xec, 0x0d, 0xe3, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0xde, 0x0a, 0x87, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x4c, 0x42, 0x88, 0x07, 0x26, 0x21, 0xe4, 0x07, 0x43, 0xf3, 0x77, 0xd8, 0x85, 0x5b, 0x0c, 0x7c, 0xbb, 0x32, 0x39, 0xf1, 0x10, 0xcd, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0x51, 0x88, 0x1f, 0x18, 0x85, 0xb0, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x18, 0x85, 0x10, 0x0c, 0x8c, 0x42, 0x48, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x78, 0xde, 0x1e, 0xc6, 0x06, 0xcf, 0xdb, 0xc3, 0x38, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x17, 0xf3, 0x61, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0xa3, 0x10, 0x06, 0x03, 0xa3, 0x10, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0xc0, 0x28, 0x84, 0xf8, 0xe0, 0x45, 0x86, 0x18, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0xc0, 0x28, 0x84, 0xc5, 0xc0, 0x28, 0x84, 0xd5, 0x20, 0x19, 0x18, 0xaa, 0x83, 0x20, 0xe7, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x18, 0x85, 0x30, 0x1b, 0x18, 0x85, 0xb0, 0x3b, 0x28, 0x36, 0x08, 0x0f, 0xcd, 0x5f, 0x8e, 0xc7, 0xc7, 0xa1, 0x43, 0x07, 0x8d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x60, 0x16, 0xe2, 0x07, 0x66, 0x21, 0x0c, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x66, 0x21, 0x04, 0x03, 0xb3, 0x10, 0xd2, 0x61, 0x17, 0x6e, 0x43, 0x34, 0xc7, 0x83, 0x55, 0x67, 0xe7, 0x1b, 0x3c, 0x2d, 0x13, 0xe3, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0xde, 0x41, 0x89, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0xcc, 0x42, 0x88, 0x07, 0x66, 0x21, 0xe4, 0x07, 0x43, 0xf3, 0xf7, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x82, 0x60, 0x83, 0x91, 0xff, 0xb0, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x06, 0x23, 0x3a, 0x30, 0x1d, 0x71, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0xa3, 0x11, 0xb2, 0x81, 0xd1, 0x08, 0x93, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x60, 0x34, 0xe2, 0x0f, 0x1e, 0x4a, 0x8a, 0x31, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x8c, 0x46, 0x08, 0x07, 0x46, 0x23, 0xe4, 0x83, 0x64, 0x60, 0xa5, 0xef, 0x90, 0xad, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0xd1, 0x08, 0x83, 0x81, 0xd1, 0x08, 0x8b, 0x43, 0x62, 0xf3, 0xd0, 0xfc, 0xe5, 0x78, 0x7c, 0x1c, 0x3a, 0xa4, 0xe1, 0x06, 0xd9, 0x06, 0x6f, 0x04, 0xc5, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x98, 0x8d, 0x90, 0x0d, 0xcc, 0x46, 0xa8, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x66, 0x23, 0xfe, 0xe0, 0xcd, 0xb4, 0x18, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0xc0, 0x6c, 0x84, 0x70, 0x60, 0x36, 0x42, 0x7e, 0xd0, 0x86, 0x78, 0xd3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0xb3, 0x11, 0x06, 0x03, 0xb3, 0x11, 0x0a, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0xc0, 0x6c, 0x84, 0xc5, 0xc0, 0x6c, 0x84, 0xd5, 0x41, 0xc9, 0x3b, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0xc0, 0x6c, 0x84, 0xd9, 0xc0, 0x6c, 0x84, 0xe9, 0x20, 0x19, 0x70, 0x76, 0x97, 0x3b, 0x24, 0x97, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0xcc, 0x46, 0xd8, 0x0e, 0xcc, 0x46, 0xd8, 0x0f, 0x92, 0x01, 0x81, 0x2e, 0x77, 0x48, 0x2e, 0x1d, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0xcc, 0x46, 0x68, 0x18, 0x98, 0x8d, 0xd0, 0x72, 0xf0, 0x1e, 0x63, 0x8c, 0xe3, 0xd0, 0xa1, 0x29, 0xd0, 0x20, 0xdb, 0xe0, 0x8d, 0xa0, 0x18, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0xc0, 0x70, 0x84, 0x6c, 0x60, 0x38, 0x42, 0xe5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x30, 0x1c, 0xf1, 0x07, 0xcf, 0x91, 0xc6, 0x18, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x86, 0x23, 0x84, 0x03, 0xc3, 0x11, 0xf2, 0x83, 0x36, 0xc4, 0x9b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x18, 0x8e, 0x30, 0x18, 0x18, 0x8e, 0x50, 0x30, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x86, 0x23, 0x2c, 0x06, 0x86, 0x23, 0xac, 0x0e, 0x4a, 0xde, 0x99, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x86, 0x23, 0xcc, 0x06, 0x86, 0x23, 0x4c, 0x0f, 0xde, 0x63, 0x8c, 0x31, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x60, 0x38, 0xc2, 0x76, 0x60, 0x38, 0xc2, 0xfe, 0xe0, 0x2d, 0xca, 0x18, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0xc3, 0x11, 0x1a, 0x06, 0x86, 0x23, 0x34, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0xe1, 0x08, 0x15, 0x03, 0xc3, 0x11, 0x6a, 0x0e, 0x4a, 0xde, 0x99, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x86, 0x23, 0xf4, 0x0c, 0x0c, 0x47, 0xe8, 0x3a, 0x78, 0x8f, 0x31, 0xc6, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0xe1, 0x08, 0x65, 0x03, 0xc3, 0x11, 0x0a, 0x07, 0xc9, 0x80, 0xe0, 0x97, 0x3b, 0x24, 0x97, 0x8e, 0x43, 0xc7, 0xa1, 0x43, 0x0b, 0xb0, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x60, 0x71, 0xc0, 0xbf, 0x43, 0x7b, 0x6b, 0x5b, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0xf3, 0x11, 0x1d, 0x18, 0x91, 0xb8, 0x61, 0x17, 0x76, 0x83, 0x27, 0xed, 0x61, 0x6c, 0x88, 0xe1, 0xc1, 0x9b, 0x94, 0x30, 0x16, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0xf3, 0x11, 0x96, 0x03, 0xf3, 0x11, 0xd6, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc9, 0x60, 0x72, 0x3c, 0x3e, 0x34, 0x6a, 0x19, 0x76, 0x61, 0x17, 0x6e, 0x83, 0xe7, 0xed, 0x61, 0x1c, 0x84, 0x14, 0xf8, 0x86, 0x18, 0x0e, 0xb7, 0xc1, 0xfb, 0x94, 0x30, 0x0e, 0x42, 0x0a, 0xfc, 0x60, 0x2c, 0x8c, 0x0e, 0xbb, 0xb0, 0x0b, 0xb7, 0x78, 0xb0, 0x26, 0x7a, 0xee, 0x10, 0xcd, 0x0d, 0x31, 0x1c, 0x6e, 0x31, 0xf0, 0xef, 0xf2, 0xe4, 0xc8, 0x43, 0x34, 0x17, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0x03, 0x12, 0x96, 0x03, 0x03, 0x12, 0xd6, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc9, 0xc0, 0xed, 0x73, 0x3c, 0x3e, 0x34, 0x6a, 0x19, 0x76, 0x61, 0x17, 0x6e, 0x83, 0xf7, 0x16, 0x64, 0x1c, 0x84, 0x14, 0xf8, 0x86, 0x18, 0x0e, 0xb7, 0xc1, 0x43, 0x0e, 0x32, 0x0e, 0x42, 0x0a, 0xfc, 0x60, 0x2c, 0x8c, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0x13, 0x12, 0x3f, 0x30, 0x21, 0x61, 0xb5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x30, 0x21, 0x21, 0x18, 0x98, 0x90, 0x90, 0x0e, 0xbb, 0x70, 0x1b, 0xa2, 0x39, 0x1e, 0x3c, 0x00, 0x1f, 0x63, 0x83, 0x57, 0x57, 0x64, 0x1c, 0x4e, 0xb1, 0x41, 0xb6, 0xc1, 0x13, 0x21, 0x32, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0x09, 0x09, 0x83, 0x81, 0x09, 0x09, 0xa3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x60, 0x42, 0x42, 0x7c, 0xf0, 0x10, 0x8d, 0x8c, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x64, 0xa0, 0xf9, 0xd2, 0xf1, 0xf8, 0xd0, 0x41, 0xe3, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x82, 0x60, 0x83, 0x82, 0x5a, 0x6c, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0xc4, 0x35, 0x64, 0x03, 0x71, 0x0d, 0x15, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0x40, 0x5c, 0x43, 0x38, 0x10, 0xd7, 0x30, 0x38, 0x28, 0x79, 0x67, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x88, 0x6b, 0x58, 0x0c, 0xc4, 0x35, 0xac, 0x06, 0xc9, 0x20, 0x38, 0x1e, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x88, 0x6b, 0x98, 0x0d, 0xc4, 0x35, 0x34, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0xb8, 0x86, 0xdd, 0x40, 0x5c, 0xc3, 0xf6, 0x60, 0x39, 0x55, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0x40, 0x5c, 0xc3, 0x78, 0x20, 0xae, 0xa1, 0xe0, 0xe0, 0xb8, 0xd7, 0x7b, 0x1c, 0x3a, 0x0e, 0x1d, 0x1a, 0xb5, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x07, 0xc1, 0x06, 0xcf, 0x96, 0xa8, 0x58, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0xf1, 0x8b, 0x0e, 0x04, 0x34, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x20, 0x90, 0x21, 0x1b, 0x08, 0x64, 0x98, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0x81, 0x8c, 0x3f, 0x78, 0x1c, 0x4f, 0xc6, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x10, 0xc8, 0x10, 0x0e, 0x04, 0x32, 0x0c, 0x0e, 0xde, 0xcb, 0x88, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x10, 0xc8, 0xb0, 0x18, 0x08, 0x64, 0x58, 0x1d, 0xbc, 0xbc, 0x23, 0xe3, 0x38, 0x74, 0x48, 0xc3, 0x0d, 0xb2, 0x0d, 0x9e, 0x86, 0x93, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x10, 0xc9, 0x90, 0x0d, 0x44, 0x32, 0x6c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0x48, 0xc6, 0x1f, 0xbc, 0x59, 0x29, 0x63, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x88, 0x64, 0x08, 0x07, 0x22, 0x19, 0x06, 0x07, 0xef, 0x65, 0xc4, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x88, 0x64, 0x58, 0x0c, 0x44, 0x32, 0x4c, 0x06, 0xc1, 0x06, 0x8b, 0xc4, 0x82, 0x0e, 0xc6, 0x71, 0xc8, 0xa1, 0xf9, 0xcb, 0xf1, 0xf8, 0x38, 0x74, 0x68, 0x0a, 0x34, 0xc8, 0x36, 0x78, 0x1a, 0x4e, 0xc6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0x40, 0x28, 0x43, 0x36, 0x10, 0xca, 0x10, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0xa1, 0x8c, 0x3f, 0x78, 0xd5, 0x56, 0xc6, 0xb0, 0x1b, 0xb4, 0x38, 0x05, 0xb3, 0x21, 0x86, 0xc3, 0x6e, 0xd0, 0xbc, 0x17, 0xcc, 0xa1, 0xcd, 0xe3, 0x20, 0xdb, 0xe0, 0x69, 0x38, 0x19, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0xb1, 0x0c, 0xd9, 0x40, 0x2c, 0xc3, 0x6c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x88, 0x65, 0xfc, 0xc1, 0x3b, 0xc6, 0x32, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0x58, 0x86, 0x70, 0x20, 0x96, 0x61, 0x70, 0xf0, 0x5e, 0x46, 0x8c, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0x58, 0x86, 0xc5, 0x40, 0x2c, 0xc3, 0x6a, 0x90, 0x0c, 0xee, 0x1c, 0x8f, 0x8f, 0x43, 0x07, 0x4b, 0xf8, 0x7f, 0x06, 0xd9, 0x06, 0x4f, 0xc3, 0xc9, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x08, 0x66, 0xc8, 0x06, 0x82, 0x19, 0xf6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0x40, 0x30, 0xe3, 0x0f, 0x9e, 0x1c, 0x97, 0x31, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x04, 0x33, 0x84, 0x03, 0xc1, 0x0c, 0x83, 0x83, 0xf7, 0x32, 0x62, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x04, 0x33, 0x2c, 0x06, 0x82, 0x19, 0xe6, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x20, 0x98, 0x61, 0x32, 0x10, 0xcc, 0x30, 0x1b, 0x24, 0x03, 0xed, 0x97, 0x8e, 0xc7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0xc1, 0x0c, 0xbb, 0x81, 0x60, 0x86, 0xf5, 0xf0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0xc1, 0x0c, 0xc3, 0x81, 0x60, 0x86, 0xf1, 0xc1, 0x63, 0xda, 0x30, 0x8e, 0x6f, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0x20, 0x69, 0x00, 0xe1, 0x38, 0x34, 0xc8, 0x36, 0x78, 0x1a, 0x4e, 0xc6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0x40, 0x34, 0x43, 0x36, 0x10, 0xcd, 0xb0, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0xa2, 0x19, 0x7f, 0xf0, 0xba, 0xc5, 0x8c, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x20, 0x9a, 0x21, 0x1c, 0x88, 0x66, 0x18, 0x1c, 0xbc, 0x97, 0x11, 0x63, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x20, 0x9a, 0x61, 0x31, 0x10, 0xcd, 0x30, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0xd1, 0x0c, 0x93, 0x81, 0x68, 0x86, 0xd9, 0xc1, 0x1a, 0x71, 0x9f, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0x68, 0x86, 0xdd, 0x40, 0x34, 0xc3, 0x76, 0x90, 0x0c, 0x34, 0x97, 0x3b, 0x24, 0x97, 0x8e, 0x43, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x41, 0xe2, 0xde, 0xcc, 0x71, 0x68, 0x90, 0x6d, 0xf0, 0x34, 0x9c, 0x8c, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0x70, 0x86, 0x6c, 0x20, 0x9c, 0x61, 0x3d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x84, 0x33, 0xfe, 0xe0, 0x59, 0xa2, 0x19, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0x40, 0x38, 0x43, 0x38, 0x10, 0xce, 0x30, 0x38, 0x78, 0x2f, 0x23, 0xc6, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0x40, 0x38, 0xc3, 0x62, 0x20, 0x9c, 0x61, 0x3c, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0xc2, 0x19, 0x26, 0x03, 0xe1, 0x0c, 0xb3, 0x83, 0x35, 0xe2, 0x3e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0xe1, 0x0c, 0xbb, 0x81, 0x70, 0x86, 0xed, 0xc1, 0x73, 0x39, 0x33, 0x8e, 0x43, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x41, 0x4a, 0xe9, 0xcc, 0x71, 0x68, 0x90, 0x6d, 0xf0, 0x34, 0x9c, 0x8c, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x20, 0x9e, 0x21, 0x1b, 0x88, 0x67, 0x68, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0xe2, 0x19, 0x7f, 0xf0, 0x68, 0xdc, 0x8c, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x20, 0x9e, 0x21, 0x1c, 0x88, 0x67, 0xc8, 0x0f, 0xda, 0x10, 0x6f, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x20, 0x9e, 0x61, 0x30, 0x10, 0xcf, 0x30, 0x3a, 0x68, 0x4b, 0xab, 0x69, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0x40, 0x3c, 0xc3, 0x6a, 0x20, 0x9e, 0xa1, 0x60, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0xc4, 0x33, 0xcc, 0x06, 0xe2, 0x19, 0xa6, 0x07, 0x6b, 0xc4, 0x7d, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0xe2, 0x19, 0xb6, 0x03, 0xf1, 0x0c, 0xfb, 0x83, 0xe7, 0x72, 0x66, 0x1c, 0x87, 0x8e, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x83, 0x64, 0xe7, 0x99, 0xe3, 0xd0, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x41, 0xb0, 0xb8, 0x61, 0x3a, 0x0f, 0x1a, 0xca, 0x89, 0x59, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0xa1, 0x8f, 0x0e, 0x84, 0x3f, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x20, 0xf4, 0x21, 0x1b, 0x08, 0x7d, 0xc8, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0xd0, 0xc7, 0x0f, 0x84, 0x3e, 0x54, 0x0c, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x3a, 0x78, 0x8f, 0x31, 0xc6, 0x21, 0x0d, 0x37, 0xc8, 0x36, 0x78, 0x9a, 0x74, 0xc6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0x40, 0xec, 0x43, 0x36, 0x10, 0xfb, 0x90, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0xb1, 0x8f, 0x1f, 0x88, 0x7d, 0xa8, 0x18, 0x04, 0x1b, 0x3c, 0x31, 0x3b, 0xe3, 0xd0, 0x14, 0x68, 0x90, 0x6d, 0xf0, 0x34, 0xe9, 0x8c, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0xe0, 0x87, 0x6c, 0x20, 0xf8, 0x21, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x82, 0x1f, 0x3f, 0x10, 0xfc, 0x50, 0x31, 0x08, 0x36, 0x78, 0x62, 0x76, 0xc6, 0xa1, 0x13, 0xd1, 0x20, 0xdb, 0xe0, 0x69, 0xd2, 0x19, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0x40, 0xf4, 0x43, 0x36, 0x10, 0xfd, 0x90, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0xd1, 0x8f, 0x1f, 0x88, 0x7e, 0x68, 0x1a, 0x04, 0x1b, 0x3c, 0x31, 0x3b, 0xe3, 0xd0, 0xfd, 0xe8, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x20, 0xd8, 0x60, 0x59, 0x18, 0xcc, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x88, 0x59, 0x74, 0x20, 0x78, 0x71, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0x81, 0x0b, 0xd9, 0x40, 0xe0, 0xc2, 0x6c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x08, 0x5c, 0xfc, 0xc1, 0x7b, 0xea, 0x33, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0xc0, 0x85, 0x70, 0x20, 0x70, 0x61, 0x70, 0xb0, 0x9c, 0x2a, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x20, 0x70, 0x61, 0x31, 0x10, 0xb8, 0xb0, 0x1a, 0x24, 0x03, 0xc5, 0xe6, 0x78, 0x7c, 0x1c, 0x3a, 0xa4, 0xe1, 0x06, 0xd9, 0x06, 0xaf, 0x89, 0xcf, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x88, 0x5c, 0xc8, 0x06, 0x22, 0x17, 0x66, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0x40, 0xe4, 0xe2, 0x0f, 0x9e, 0x3c, 0xa0, 0x31, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x44, 0x2e, 0x84, 0x03, 0x91, 0x0b, 0x83, 0x83, 0xe5, 0x54, 0x41, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0x91, 0x0b, 0x8b, 0x81, 0xc8, 0x85, 0xd5, 0x20, 0x19, 0x58, 0xbd, 0x3b, 0x1e, 0x1f, 0x87, 0x0e, 0x4d, 0x81, 0x06, 0xd9, 0x06, 0xaf, 0x89, 0xcf, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x08, 0x5d, 0xc8, 0x06, 0x42, 0x17, 0x4a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0xd0, 0xc5, 0x1f, 0x3c, 0x4d, 0x42, 0x63, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x08, 0x5d, 0x08, 0x07, 0x42, 0x17, 0x06, 0x07, 0xcb, 0xa9, 0x82, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x42, 0x17, 0x16, 0x03, 0xa1, 0x0b, 0x1d, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x20, 0x74, 0x61, 0x32, 0x10, 0xba, 0x30, 0x3b, 0x28, 0x79, 0x67, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x08, 0x5d, 0xd8, 0x0d, 0x84, 0x2e, 0x6c, 0x0f, 0x5e, 0x6a, 0x86, 0x31, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x20, 0x74, 0x61, 0x3c, 0x10, 0xba, 0x50, 0x31, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0x40, 0xe8, 0xc2, 0x7a, 0x20, 0x74, 0xa1, 0xe1, 0xe0, 0x31, 0x6d, 0x18, 0xc7, 0xb7, 0xe3, 0xd0, 0x71, 0xe8, 0xd0, 0x89, 0x68, 0x90, 0x6d, 0xf0, 0x9a, 0xf8, 0x8c, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x20, 0x76, 0x21, 0x1b, 0x88, 0x5d, 0x28, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x62, 0x17, 0x7f, 0xf0, 0x08, 0x17, 0x8d, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x20, 0x76, 0x21, 0x1c, 0x88, 0x5d, 0x18, 0x1c, 0x2c, 0xa7, 0x0a, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x88, 0x5d, 0x58, 0x0c, 0xc4, 0x2e, 0x74, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0xd8, 0x85, 0xc9, 0x40, 0xec, 0xc2, 0xec, 0xa0, 0xe4, 0x9d, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x20, 0x76, 0x61, 0x37, 0x10, 0xbb, 0xb0, 0x3d, 0x78, 0xa9, 0x19, 0xc6, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0xd8, 0x85, 0xf1, 0x40, 0xec, 0x42, 0xc5, 0xf0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0xb1, 0x0b, 0xeb, 0x81, 0xd8, 0x85, 0x86, 0x83, 0xc7, 0xb4, 0x61, 0x1c, 0xdf, 0x8e, 0x43, 0xc7, 0xa1, 0x43, 0xf7, 0xa3, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x20, 0x58, 0x5c, 0x36, 0x48, 0x03, 0xc8, 0x68, 0xd6, 0x60, 0x8c, 0xa1, 0xb5, 0xe1, 0x14, 0xdb, 0x60, 0x4d, 0xc7, 0xd1, 0xc1, 0x4a, 0x59, 0xec, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x10, 0xd9, 0xe8, 0x40, 0xd8, 0xe3, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0xc2, 0x1b, 0x3f, 0x10, 0xde, 0x90, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x24, 0x03, 0xff, 0x2f, 0x1d, 0x8f, 0x0f, 0x69, 0xb8, 0x41, 0xb6, 0xc1, 0x73, 0x96, 0x34, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x02, 0x1c, 0x3f, 0x10, 0xe3, 0x90, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0xf1, 0x8d, 0x3f, 0x78, 0x15, 0x95, 0xc6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x10, 0xe2, 0x90, 0x0f, 0x84, 0x38, 0x0c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0x10, 0x87, 0xec, 0xe0, 0x2d, 0x59, 0x1a, 0x07, 0xc3, 0x8b, 0x77, 0x90, 0x6d, 0xf0, 0x9c, 0x25, 0x8d, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0x28, 0xc7, 0x0f, 0x84, 0x3a, 0x24, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0x40, 0x90, 0xe3, 0x0f, 0xde, 0xf4, 0xa5, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x10, 0xe8, 0x90, 0x0f, 0x04, 0x3a, 0x6c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0x40, 0x87, 0xec, 0xe0, 0x2d, 0x64, 0x1a, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x0e, 0x9e, 0xd9, 0x96, 0x71, 0xb0, 0xea, 0xfb, 0x67, 0x90, 0x6d, 0xf0, 0xd2, 0x2e, 0x8d, 0x41, 0xb6, 0xc1, 0x03, 0xc0, 0x34, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0x48, 0x87, 0x7c, 0x20, 0xd2, 0x61, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x44, 0x3a, 0x64, 0x07, 0xcf, 0x63, 0xd3, 0x18, 0x7e, 0x43, 0x72, 0x69, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x88, 0x74, 0x18, 0x1c, 0x3c, 0x8f, 0x4d, 0xe3, 0x70, 0xb4, 0x0f, 0xb2, 0x0d, 0x9e, 0xb3, 0xa4, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x04, 0x3b, 0x7e, 0x20, 0xea, 0x21, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x62, 0x1d, 0x7f, 0xf0, 0xbc, 0x3a, 0x8d, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0x88, 0x87, 0x7c, 0x20, 0xe2, 0x61, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x44, 0x3c, 0x64, 0x07, 0xcf, 0xd2, 0xd3, 0x18, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x22, 0x1e, 0x06, 0x03, 0x11, 0x0f, 0xa3, 0x83, 0xc7, 0xfb, 0x65, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x44, 0x3c, 0xac, 0x06, 0x22, 0x1e, 0xb6, 0xc3, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x44, 0x3c, 0xcc, 0x06, 0x22, 0x1e, 0xa6, 0x07, 0x8f, 0x69, 0xc3, 0x38, 0xbe, 0x1d, 0x87, 0x0e, 0x96, 0xf0, 0xff, 0x0c, 0xb2, 0x0d, 0x1e, 0x3d, 0xa7, 0x31, 0xc8, 0x36, 0x78, 0x8b, 0x9d, 0xc6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0x40, 0xc8, 0x43, 0x3e, 0x10, 0xf2, 0xb0, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x42, 0x1e, 0xb2, 0x83, 0x57, 0x32, 0x6a, 0x0c, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x3a, 0x78, 0x2e, 0x67, 0xc6, 0xc1, 0x7b, 0x0e, 0x33, 0x06, 0xd9, 0x06, 0x8f, 0x9e, 0xd3, 0x18, 0x64, 0x1b, 0xbc, 0xc5, 0x4e, 0x63, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x20, 0xe6, 0x21, 0x1f, 0x88, 0x79, 0xd8, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0x31, 0x0f, 0xd9, 0xc1, 0xe3, 0x29, 0x35, 0x06, 0xc1, 0x06, 0x4f, 0x7e, 0xd4, 0x38, 0x78, 0x88, 0x67, 0xc6, 0x20, 0xdb, 0xe0, 0xd1, 0x73, 0x1a, 0x83, 0x6c, 0x83, 0xb7, 0xd8, 0x69, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0x41, 0x0f, 0xf9, 0x40, 0xd0, 0xc3, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x08, 0x7a, 0xc8, 0x0e, 0xde, 0xcb, 0xa9, 0x31, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x04, 0x3d, 0x0c, 0x06, 0x82, 0x1e, 0x36, 0x07, 0x6d, 0x88, 0x37, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x10, 0xf4, 0x30, 0x1a, 0x08, 0x7a, 0x18, 0x1e, 0xb4, 0xa5, 0xd5, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x20, 0xe8, 0x61, 0x39, 0x10, 0xf4, 0xb0, 0x3e, 0x68, 0x80, 0x97, 0xe9, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x3d, 0x58, 0xe1, 0x93, 0x75, 0x1c, 0x3a, 0x34, 0x7f, 0x39, 0x1e, 0x2f, 0x08, 0x36, 0x28, 0xa8, 0xc5, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0x40, 0xe0, 0x43, 0x36, 0x10, 0xf8, 0x50, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x10, 0xf8, 0x10, 0x0e, 0x04, 0x3e, 0xcc, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x02, 0x1f, 0x16, 0x03, 0x81, 0x0f, 0xa3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x20, 0xf0, 0x21, 0x3d, 0x78, 0x61, 0xad, 0xc6, 0x20, 0xd8, 0x60, 0x91, 0x58, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x55, 0x19, 0x34, 0x07, 0xc5, 0xa1, 0xc6, 0x71, 0x68, 0x90, 0x6d, 0xf0, 0xac, 0x58, 0x8d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x20, 0xf0, 0x61, 0x39, 0x10, 0xf8, 0xb0, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x02, 0x1f, 0x56, 0x07, 0xaf, 0xef, 0xd5, 0x18, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x74, 0xf0, 0x52, 0x33, 0x8c, 0x83, 0x81, 0x5e, 0x36, 0xc8, 0x36, 0x78, 0xb8, 0xab, 0xc6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x10, 0xf8, 0xd0, 0x31, 0x10, 0xf8, 0xd0, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x04, 0x3e, 0xec, 0x0f, 0x5e, 0x57, 0xac, 0x31, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x90, 0x0c, 0xcc, 0xcf, 0xf1, 0xf8, 0xd0, 0x41, 0xe3, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x20, 0x58, 0x1c, 0x08, 0xf6, 0x06, 0x45, 0xb5, 0xe0, 0xc1, 0xe3, 0x8f, 0x34, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0x40, 0x48, 0xa3, 0x03, 0x61, 0x8d, 0x1b, 0x76, 0xe1, 0x16, 0x03, 0xff, 0x4c, 0xae, 0x4e, 0x3c, 0x44, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x20, 0xa4, 0xf1, 0x03, 0x41, 0x0d, 0xe9, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0x40, 0x48, 0x43, 0x36, 0x10, 0xd2, 0x30, 0x18, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0xb1, 0xcf, 0x1a, 0x1b, 0x3c, 0xf6, 0x59, 0xe3, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0xde, 0x0f, 0xad, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0xc4, 0x34, 0x64, 0x03, 0x41, 0x0d, 0xc9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x10, 0xd3, 0x90, 0x0f, 0xc4, 0x34, 0x54, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0xc4, 0x34, 0x0c, 0x06, 0x62, 0x1a, 0xba, 0x86, 0x5d, 0xb8, 0x0d, 0x12, 0x3b, 0x9c, 0x0f, 0x8d, 0x04, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x62, 0x1a, 0x26, 0x03, 0x31, 0x0d, 0xb3, 0x61, 0x17, 0x6e, 0x43, 0x23, 0xc1, 0x83, 0xc4, 0x0e, 0xe7, 0x0d, 0x12, 0x3b, 0x9c, 0x0f, 0xa7, 0xd8, 0xb0, 0x0b, 0xb7, 0x41, 0x92, 0x37, 0xf6, 0xa1, 0x91, 0xe0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0x40, 0x4c, 0xc3, 0x6e, 0x20, 0xa6, 0x61, 0x3b, 0xec, 0xc2, 0x6d, 0x68, 0x24, 0x78, 0x90, 0xe4, 0x8d, 0xbd, 0x41, 0x92, 0x37, 0xf6, 0xe1, 0x14, 0x1b, 0x76, 0xe1, 0x16, 0x83, 0x70, 0x1f, 0x1a, 0x09, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0xc4, 0x34, 0x8c, 0x07, 0x62, 0x1a, 0x0a, 0x86, 0x5d, 0xb8, 0x0d, 0x8d, 0x04, 0x0f, 0x1e, 0xbd, 0xae, 0xb1, 0xc1, 0xa3, 0xd7, 0x35, 0x0e, 0xa7, 0xd8, 0xb0, 0x0b, 0xb7, 0x18, 0x44, 0xfb, 0xd0, 0x48, 0x70, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x20, 0xa6, 0xa1, 0x61, 0x20, 0xa6, 0xa1, 0x65, 0xd8, 0x85, 0xdb, 0xd0, 0x48, 0xf0, 0xe0, 0x9d, 0xf1, 0x1a, 0x1b, 0xbc, 0x33, 0x5e, 0xe3, 0x70, 0x8a, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0x31, 0x0d, 0x35, 0x03, 0x31, 0x0d, 0x55, 0xc3, 0x2e, 0xdc, 0x86, 0x46, 0x82, 0x63, 0x10, 0xec, 0x0d, 0x5e, 0xa4, 0xaf, 0x71, 0x38, 0xc5, 0x06, 0xd9, 0x06, 0xcf, 0xd8, 0xd6, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x62, 0x1a, 0xda, 0x06, 0x62, 0x1a, 0x1a, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0x98, 0x86, 0xb2, 0x83, 0x27, 0xf9, 0x6b, 0x0c, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x24, 0x03, 0xd5, 0xe6, 0x78, 0x7c, 0x68, 0x01, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x44, 0x35, 0x7e, 0x20, 0xaa, 0xa1, 0x70, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x20, 0xaa, 0x21, 0x18, 0x88, 0x6a, 0xe8, 0x18, 0x76, 0xe1, 0x36, 0x48, 0xec, 0x70, 0x3e, 0x44, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x20, 0xaa, 0x21, 0x1a, 0x88, 0x6a, 0x88, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x48, 0xec, 0x70, 0x3e, 0x78, 0x30, 0xb9, 0xc6, 0xb0, 0x0b, 0xb7, 0x41, 0x92, 0x37, 0xf6, 0x21, 0x9a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0x51, 0x0d, 0xf9, 0x40, 0x54, 0xc3, 0x66, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x24, 0x6f, 0xec, 0x83, 0x57, 0xaa, 0x6b, 0x0c, 0xbb, 0x70, 0x1b, 0x3c, 0x7a, 0x5d, 0xe3, 0x10, 0xcd, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0xa8, 0x86, 0xd1, 0x40, 0x54, 0xc3, 0x70, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x47, 0xaf, 0x6b, 0x1c, 0xbc, 0x0a, 0x5e, 0x63, 0xd8, 0x85, 0xdb, 0xe0, 0x9d, 0xf1, 0x1a, 0x87, 0x68, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x44, 0x35, 0x2c, 0x07, 0xa2, 0x1a, 0xd6, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0xbc, 0x33, 0x5e, 0xe3, 0xe0, 0x25, 0xf6, 0x1a, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0x40, 0x54, 0xc3, 0x7c, 0x20, 0xaa, 0xa1, 0x62, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x17, 0xe9, 0x6b, 0x1c, 0x3c, 0x54, 0x5f, 0x63, 0x90, 0x6d, 0xf0, 0xb8, 0x81, 0x8d, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0xa8, 0x86, 0x96, 0x81, 0xa8, 0x86, 0xa6, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x20, 0xaa, 0xa1, 0xe4, 0xe0, 0x81, 0x24, 0x1b, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc9, 0xc0, 0x79, 0x73, 0x3c, 0x3e, 0x34, 0x05, 0x1a, 0x64, 0x1b, 0x3c, 0x6e, 0x60, 0x63, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x88, 0x6a, 0xe8, 0x1a, 0x88, 0x6a, 0xe8, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0xa2, 0x1a, 0xaa, 0x0e, 0x1e, 0xc3, 0xb2, 0x31, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x90, 0x0c, 0xdc, 0x37, 0xc7, 0xe3, 0x43, 0x0b, 0xb0, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x0a, 0x82, 0xc5, 0x0d, 0xd6, 0x74, 0x1c, 0x1d, 0x04, 0xc0, 0xfd, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x88, 0x7b, 0xc8, 0x06, 0xe2, 0x1e, 0x86, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0x71, 0x0f, 0xe9, 0x40, 0xdc, 0xc3, 0x62, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x88, 0x7b, 0x08, 0x0f, 0xde, 0x7d, 0xb3, 0x31, 0x08, 0x36, 0x78, 0xf2, 0xa3, 0xc6, 0x21, 0x0d, 0x37, 0xc8, 0x36, 0x78, 0xed, 0xcc, 0xc6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x10, 0xf7, 0xb0, 0x19, 0x88, 0x7b, 0xd8, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0x71, 0x0f, 0x93, 0x83, 0xc7, 0xfa, 0x6c, 0x0c, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x24, 0x83, 0x33, 0xc7, 0xe3, 0x43, 0x07, 0x8d, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x8c, 0x45, 0xc8, 0x06, 0xc6, 0x22, 0xac, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0xc6, 0x22, 0x0c, 0x06, 0xc6, 0x22, 0x8c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0xb1, 0x08, 0xe1, 0xc1, 0x13, 0x93, 0x36, 0x06, 0xc1, 0x06, 0x8b, 0xc4, 0x82, 0x0e, 0xd6, 0x25, 0x46, 0x0d, 0xb2, 0x0d, 0x1e, 0x55, 0xb4, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x8c, 0x45, 0x58, 0x0e, 0x8c, 0x45, 0x18, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0x63, 0x11, 0x56, 0x07, 0x6f, 0x84, 0xda, 0x38, 0x68, 0xa5, 0xb3, 0xe9, 0xd0, 0xfc, 0xe5, 0x78, 0x3c, 0x08, 0x16, 0x37, 0x78, 0xce, 0x41, 0xc6, 0xc1, 0x18, 0x43, 0x5b, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0x23, 0x11, 0x1d, 0x98, 0x8a, 0xb8, 0x61, 0x17, 0x6e, 0x31, 0xf0, 0xc7, 0xe4, 0xea, 0xc8, 0x43, 0x34, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x46, 0x22, 0x7e, 0x60, 0x24, 0xc2, 0x74, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x60, 0x24, 0x42, 0x30, 0x30, 0x12, 0x21, 0x1d, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0x21, 0x59, 0x1b, 0x1b, 0x3c, 0x24, 0x6b, 0xe3, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0xde, 0xa6, 0xb5, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x30, 0x12, 0x21, 0x1f, 0x18, 0x89, 0xb0, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x46, 0x22, 0xc4, 0x07, 0x8f, 0x1f, 0xdb, 0x18, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x74, 0x90, 0xf2, 0x71, 0x71, 0x68, 0x0a, 0x34, 0xc8, 0x36, 0x78, 0x9b, 0xd6, 0xc6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x30, 0x12, 0x61, 0x35, 0x30, 0x12, 0x61, 0x39, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x8c, 0x44, 0x18, 0x1d, 0xbc, 0x6a, 0x6d, 0x63, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0xc1, 0x7b, 0x1c, 0x34, 0x0e, 0x2d, 0xc0, 0x86, 0xdd, 0xe0, 0x8d, 0x05, 0x19, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0x33, 0x11, 0x3f, 0x30, 0x13, 0x61, 0xb5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x30, 0x13, 0x21, 0x18, 0x98, 0x89, 0x90, 0x0e, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xf0, 0xde, 0x82, 0x8c, 0x0d, 0xde, 0x5b, 0x90, 0x71, 0x38, 0xc5, 0x06, 0xd9, 0x06, 0x4f, 0x88, 0xdb, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x66, 0x22, 0x0c, 0x06, 0x66, 0x22, 0x8c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0x99, 0x08, 0xf1, 0xc1, 0x13, 0xf5, 0x36, 0x06, 0xc1, 0x06, 0x8b, 0xc4, 0x82, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x0c, 0xbc, 0x3a, 0x3b, 0xe5, 0x90, 0xaf, 0x3d, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0x43, 0x11, 0x3f, 0x30, 0x14, 0x61, 0xb5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x30, 0x14, 0x21, 0x18, 0x18, 0x8a, 0x90, 0x0e, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xf0, 0x90, 0x83, 0x8c, 0x0d, 0x1e, 0x72, 0x90, 0x71, 0x38, 0xc5, 0x06, 0xd9, 0x06, 0x4f, 0x07, 0xdc, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x86, 0x22, 0x0c, 0x06, 0x86, 0x22, 0x8c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0xa1, 0x08, 0xf1, 0xc1, 0xd3, 0x14, 0x37, 0x06, 0xc1, 0x06, 0x0f, 0x3b, 0xd3, 0x38, 0x74, 0xd0, 0x38, 0x34, 0x7f, 0x39, 0x1e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0x33, 0x12, 0xb2, 0x81, 0x19, 0x09, 0xb3, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x60, 0x46, 0x42, 0x38, 0x30, 0x23, 0x61, 0x70, 0xb0, 0x9c, 0x2a, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x60, 0x46, 0xc2, 0x62, 0x60, 0x46, 0xc2, 0x6a, 0x90, 0x0c, 0x9c, 0x3e, 0xc7, 0xe3, 0xe3, 0xd0, 0xa1, 0x51, 0xcb, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x15, 0x04, 0x8b, 0x03, 0x5f, 0x67, 0xb7, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x3d, 0xd1, 0x41, 0x61, 0xdc, 0xb0, 0x1b, 0x14, 0x06, 0x8f, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x82, 0xb2, 0xf8, 0x41, 0x59, 0x98, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0xca, 0x42, 0x30, 0x28, 0x0b, 0xd9, 0x41, 0x61, 0xf2, 0x38, 0xc8, 0x36, 0x78, 0x1a, 0xe8, 0xc6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x28, 0x0b, 0xf1, 0xa0, 0x2c, 0x2c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x41, 0x59, 0x08, 0x0f, 0xde, 0x7d, 0xba, 0x31, 0x08, 0x36, 0x58, 0x24, 0x16, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0x61, 0xea, 0x17, 0x87, 0x7c, 0xed, 0x71, 0x68, 0xd8, 0x0d, 0xd6, 0xd2, 0x70, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0xda, 0xe2, 0x07, 0x6d, 0x61, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x68, 0x0b, 0xc1, 0xa0, 0x2d, 0x84, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0xa4, 0x85, 0x66, 0x6f, 0x90, 0x16, 0x9a, 0x7d, 0x38, 0xc5, 0x06, 0xd9, 0x06, 0x8f, 0x72, 0xdd, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x6d, 0x21, 0x1f, 0xb4, 0x85, 0xcd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x68, 0x0b, 0xe9, 0xc1, 0xa3, 0x6e, 0x37, 0x06, 0xc1, 0x06, 0x8b, 0xc4, 0x82, 0x0e, 0x16, 0x56, 0x46, 0x0d, 0xbb, 0x41, 0xe1, 0x99, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0xa8, 0x8b, 0x1f, 0xd4, 0x85, 0xc9, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0xa0, 0x2e, 0x04, 0x83, 0xba, 0x90, 0x1d, 0x14, 0xbc, 0x89, 0x83, 0x6c, 0x83, 0x67, 0xf1, 0x6e, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x82, 0xba, 0x10, 0x0f, 0xea, 0xc2, 0x62, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0xd4, 0x85, 0xf0, 0xe0, 0xcd, 0xc3, 0x1b, 0x07, 0xad, 0x74, 0x36, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x82, 0xbe, 0xf8, 0x41, 0x5f, 0x98, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0xfa, 0x42, 0x30, 0xe8, 0x0b, 0xd9, 0x41, 0x69, 0xb1, 0x38, 0xc8, 0x36, 0x78, 0xda, 0xf1, 0xc6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0xe8, 0x0b, 0xf1, 0xa0, 0x2f, 0x2c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x41, 0x5f, 0x08, 0x0f, 0xde, 0xed, 0xbc, 0x31, 0x08, 0x36, 0x58, 0x24, 0x16, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xb1, 0xb3, 0xcc, 0x21, 0x5f, 0x7b, 0x1c, 0x3a, 0x34, 0x7f, 0x39, 0x1e, 0xaf, 0x20, 0xd8, 0x60, 0xe4, 0x3f, 0x2c, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x41, 0x77, 0xc8, 0x06, 0xdd, 0xa1, 0x60, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x74, 0x87, 0x70, 0xd0, 0x1d, 0x06, 0x83, 0x64, 0xa0, 0x54, 0x1d, 0x04, 0x39, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x82, 0xee, 0xb0, 0x18, 0x74, 0x87, 0xd5, 0x20, 0x19, 0x30, 0xde, 0x97, 0x8e, 0xc7, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x74, 0x87, 0xd9, 0xa0, 0x3b, 0x4c, 0x0f, 0x5e, 0xde, 0x91, 0x31, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0xd0, 0x1d, 0xb6, 0x83, 0xee, 0xb0, 0x3f, 0x78, 0xa9, 0x19, 0xc6, 0x71, 0xe8, 0xd0, 0xa8, 0xe5, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x82, 0x60, 0x71, 0x99, 0x83, 0x17, 0x72, 0x6e, 0xb4, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x25, 0x21, 0x1b, 0x94, 0x84, 0xe1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0xa0, 0x24, 0x84, 0x83, 0x92, 0x30, 0x18, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x48, 0x06, 0xce, 0xa5, 0xe3, 0xf1, 0x21, 0x0d, 0x37, 0xc8, 0x36, 0x78, 0xa3, 0xfa, 0xc6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x28, 0x09, 0x9b, 0x41, 0x49, 0xd8, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x82, 0x92, 0xb0, 0x38, 0x78, 0xe0, 0xfc, 0xc6, 0x20, 0xd8, 0xe0, 0x2d, 0xc1, 0x1a, 0x87, 0x0e, 0x1a, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x14, 0x87, 0x6c, 0x50, 0x1c, 0x16, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x86, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x14, 0x87, 0x70, 0x50, 0x1c, 0x06, 0x07, 0x8f, 0x69, 0xc3, 0x38, 0xbe, 0x1d, 0x1a, 0xb5, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x07, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x6c, 0x43, 0x36, 0xd8, 0x86, 0xd9, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0xd8, 0x86, 0x70, 0xb0, 0x0d, 0x83, 0x41, 0x32, 0x90, 0x5e, 0x3a, 0x1e, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0xb6, 0x61, 0x31, 0xd8, 0x86, 0xd5, 0x20, 0xd8, 0x60, 0x91, 0x58, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x8f, 0x81, 0x57, 0x67, 0x97, 0x1c, 0x52, 0x35, 0xc7, 0xa1, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x71, 0xe8, 0xd0, 0xa8, 0xe5, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x20, 0xd8, 0xa0, 0x41, 0x2e, 0x97, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x68, 0x0c, 0xd9, 0xa0, 0x31, 0xcc, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x41, 0x63, 0x08, 0x07, 0x8d, 0x61, 0x70, 0xf0, 0x98, 0x36, 0x8c, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x41, 0x63, 0x58, 0x0c, 0x1a, 0xc3, 0xea, 0xe0, 0xb9, 0x9c, 0x19, 0xc7, 0xa1, 0x43, 0xa3, 0x96, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x60, 0xf1, 0xe0, 0x41, 0xe9, 0x1b, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0xd0, 0x11, 0xb2, 0x41, 0x47, 0x28, 0x18, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x1d, 0x21, 0x1c, 0x74, 0x84, 0xc1, 0xc1, 0x4b, 0xb7, 0x37, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x74, 0x84, 0xc5, 0xa0, 0x23, 0xac, 0x0e, 0x5e, 0xde, 0x91, 0xb1, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x41, 0x47, 0x98, 0x0d, 0x3a, 0xc2, 0x74, 0x90, 0x0c, 0xbc, 0xbf, 0x74, 0x3c, 0x1e, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0xe8, 0x08, 0xdb, 0x41, 0x47, 0xd8, 0x0f, 0x92, 0x41, 0xd1, 0xf1, 0xf8, 0x38, 0x74, 0x68, 0xd4, 0x72, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x14, 0x44, 0x07, 0x0d, 0xa1, 0x64, 0x10, 0x6c, 0x68, 0x3b, 0xb3, 0x38, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0xa0, 0x21, 0x7a, 0xf0, 0x84, 0x19, 0x8e, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x41, 0x43, 0x08, 0x06, 0x0d, 0x61, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x1a, 0x62, 0x0e, 0x9e, 0x96, 0xc3, 0x31, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x1a, 0x42, 0x32, 0x68, 0x08, 0xe9, 0x20, 0x19, 0x18, 0xaa, 0x83, 0xf1, 0xae, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x68, 0x08, 0xf1, 0xa0, 0x21, 0x4c, 0x0e, 0xa9, 0x83, 0xe3, 0xd0, 0x21, 0x0d, 0x37, 0xc8, 0x36, 0x78, 0x58, 0x0d, 0xc7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x68, 0x08, 0xc3, 0x41, 0x43, 0xe8, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x0d, 0x61, 0x74, 0xf0, 0xc0, 0x23, 0x8e, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0xd0, 0x10, 0x96, 0x83, 0x86, 0x30, 0x1e, 0x24, 0x03, 0x6d, 0xfa, 0x0e, 0x02, 0xde, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x41, 0x43, 0x58, 0x0f, 0x1a, 0x42, 0xc1, 0x20, 0xd8, 0xa0, 0x9d, 0x91, 0xfb, 0x83, 0xa5, 0x7b, 0x53, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x82, 0x86, 0xd0, 0x30, 0x68, 0x08, 0x15, 0x87, 0xfe, 0x54, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xd0, 0xa1, 0x83, 0xc6, 0xa1, 0xf9, 0xcb, 0xf1, 0xf8, 0x78, 0xbc, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0xa0, 0x3a, 0x64, 0x83, 0xea, 0x90, 0x0e, 0x82, 0x0d, 0x16, 0x89, 0x05, 0x1d, 0x3c, 0x24, 0xff, 0xe2, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0xa0, 0x36, 0x64, 0x83, 0xda, 0x90, 0x0f, 0x82, 0x0d, 0x16, 0x89, 0x05, 0x1d, 0xac, 0xff, 0x8c, 0x3a, 0x34, 0x7f, 0x39, 0x1e, 0x0f, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x28, 0x0d, 0xd9, 0xa0, 0x34, 0x2c, 0x07, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x41, 0x69, 0x08, 0x07, 0xa5, 0x61, 0x70, 0x50, 0xf2, 0xce, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x28, 0x0d, 0x8b, 0x41, 0x69, 0xd8, 0x1c, 0xbc, 0xc9, 0x8b, 0xe3, 0xd0, 0xfc, 0xe5, 0x78, 0x3c, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x50, 0x1a, 0x46, 0x83, 0xd2, 0x30, 0x3c, 0x68, 0x4b, 0xab, 0xe9, 0x38, 0x74, 0x68, 0xd4, 0x72, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x10, 0x2c, 0xce, 0xc1, 0x73, 0xd2, 0x37, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0xa0, 0x39, 0x64, 0x83, 0xe6, 0x30, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x34, 0x87, 0xc1, 0xa0, 0x39, 0x8c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x41, 0x73, 0x08, 0x0f, 0xde, 0xbd, 0xc7, 0x31, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x90, 0x0c, 0xe4, 0xef, 0x8e, 0xc7, 0x87, 0x34, 0xdc, 0x20, 0xdb, 0xe0, 0xe1, 0x77, 0x1c, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0xa0, 0x39, 0x2c, 0x07, 0xcd, 0x61, 0x3d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x9a, 0xc3, 0xea, 0xe0, 0x49, 0x83, 0x1c, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc9, 0x40, 0x51, 0x3a, 0x1e, 0x1f, 0x3a, 0x68, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0xad, 0x21, 0x1b, 0xb4, 0x86, 0xf1, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x68, 0x0d, 0xe1, 0xa0, 0x35, 0x0c, 0x0e, 0xde, 0xcb, 0x88, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x68, 0x0d, 0x8b, 0x41, 0x6b, 0xd8, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x41, 0x6b, 0x98, 0x0c, 0x5a, 0xc3, 0xea, 0xe0, 0x05, 0xab, 0x18, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x82, 0xd6, 0x30, 0x1b, 0xb4, 0x86, 0xe9, 0xc1, 0xcb, 0x3b, 0x32, 0x8e, 0x43, 0xc7, 0xa1, 0x43, 0xa3, 0x96, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x68, 0x09, 0xd9, 0xa0, 0x25, 0xc4, 0x07, 0x6d, 0xa0, 0x37, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0xeb, 0xe8, 0x60, 0x1e, 0x4a, 0x06, 0xc1, 0x86, 0xb6, 0x33, 0x8b, 0x83, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0xe6, 0xd1, 0x83, 0x77, 0x87, 0x72, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0xe6, 0x21, 0x18, 0xcc, 0xc3, 0x66, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0xcc, 0x63, 0x0e, 0x1e, 0x83, 0xca, 0x31, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0xe6, 0x21, 0x19, 0xcc, 0x43, 0x7a, 0xf0, 0xbe, 0x1f, 0x8e, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0xc1, 0x3c, 0xc4, 0x83, 0x79, 0x98, 0x1c, 0x52, 0x07, 0xc7, 0xa1, 0x43, 0x1a, 0x6e, 0x90, 0x6d, 0xf0, 0x18, 0x52, 0x8e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x30, 0x0f, 0xc3, 0xc1, 0x3c, 0x74, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x82, 0x79, 0x18, 0x1d, 0x3c, 0xb8, 0x96, 0x63, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0xcc, 0xc3, 0x72, 0x30, 0x0f, 0xe3, 0x83, 0xc7, 0x36, 0x71, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x98, 0x87, 0xf5, 0x60, 0x1e, 0x0a, 0x0e, 0xde, 0x31, 0xc5, 0x71, 0x68, 0xfe, 0x72, 0x3c, 0x1e, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x98, 0x87, 0x86, 0xc1, 0x3c, 0x54, 0x1c, 0xdf, 0x8e, 0x43, 0x87, 0x0e, 0x1a, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0xa0, 0x33, 0x64, 0x83, 0xce, 0x90, 0x1f, 0xbc, 0x6d, 0x8c, 0xe3, 0xd0, 0xfc, 0xe5, 0x78, 0x3c, 0x08, 0x16, 0x0f, 0x9e, 0x7f, 0xa4, 0xb1, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0xbd, 0x21, 0x1b, 0xf4, 0x86, 0x9a, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x41, 0x6f, 0x18, 0x0c, 0x7a, 0xc3, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0xf4, 0x86, 0xf0, 0xe0, 0x2d, 0xd0, 0x1c, 0x83, 0x60, 0x83, 0x77, 0x75, 0x64, 0x1c, 0xd2, 0x70, 0x83, 0x6c, 0x83, 0xb7, 0x30, 0x73, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x7a, 0xc3, 0x72, 0xd0, 0x1b, 0xc6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0xa0, 0x37, 0xac, 0x0e, 0x9e, 0x6d, 0xcd, 0x31, 0x08, 0x36, 0x58, 0x24, 0x16, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0x61, 0xea, 0x17, 0x87, 0x1e, 0x42, 0xc7, 0xa1, 0x41, 0xb6, 0xc1, 0x5b, 0x98, 0x39, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x41, 0x6f, 0x68, 0x18, 0xf4, 0x86, 0x96, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0xd0, 0x1b, 0xd6, 0x07, 0x8f, 0xf8, 0xe6, 0x18, 0x04, 0x1b, 0x2c, 0x12, 0x0b, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xf0, 0x86, 0xbf, 0x8d, 0x43, 0xc7, 0xb0, 0xe3, 0xd0, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x50, 0x19, 0xb2, 0x41, 0x65, 0x68, 0x18, 0x04, 0x1b, 0xda, 0xce, 0x2c, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x82, 0xca, 0x30, 0x3a, 0x78, 0xc8, 0x39, 0xc7, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x54, 0x86, 0xd5, 0xa0, 0x32, 0x2c, 0x0f, 0x1a, 0x49, 0xb2, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x50, 0x19, 0xa6, 0x83, 0xca, 0x30, 0x1f, 0x24, 0x03, 0x02, 0x7d, 0xe9, 0x90, 0x5c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0xa8, 0x0c, 0xfb, 0x41, 0x65, 0x28, 0x38, 0xa4, 0x0e, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0xd8, 0x90, 0x0d, 0x1b, 0xf2, 0x83, 0x17, 0xe9, 0x6b, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x4e, 0x44, 0x07, 0x2f, 0xc2, 0x60, 0x10, 0x6c, 0x68, 0x3b, 0xb3, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x5e, 0x44, 0x0f, 0x9e, 0xa6, 0xcf, 0x31, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x2f, 0x62, 0x06, 0x2f, 0x42, 0x70, 0xd0, 0x48, 0x92, 0xfd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x82, 0x17, 0x21, 0x19, 0xbc, 0x08, 0xe9, 0x20, 0x19, 0x70, 0x76, 0x97, 0x3b, 0x64, 0x2b, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x5e, 0x84, 0x78, 0xf0, 0x22, 0xe4, 0x87, 0xd4, 0xc1, 0x71, 0xe8, 0x78, 0xbc, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x82, 0x1b, 0x21, 0x1b, 0xdc, 0x08, 0x8b, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0xc3, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x6e, 0x84, 0x70, 0x70, 0x23, 0x0c, 0x0e, 0x4a, 0xde, 0x99, 0xe3, 0xdb, 0xa1, 0x51, 0xcb, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x10, 0x6c, 0xd0, 0x20, 0x97, 0xcb, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0xfc, 0x08, 0xd9, 0xe0, 0x47, 0xd8, 0x0e, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x82, 0x1f, 0x21, 0x1c, 0xfc, 0x08, 0x83, 0x41, 0x32, 0x30, 0x57, 0x07, 0x41, 0xce, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0xe0, 0x47, 0x58, 0x0c, 0x7e, 0x84, 0xd5, 0xc1, 0x73, 0x39, 0x33, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x7e, 0x84, 0xd9, 0xe0, 0x47, 0x98, 0x1e, 0xba, 0x98, 0x1c, 0x87, 0x0e, 0x8d, 0x5a, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x82, 0xf3, 0x21, 0x1b, 0x9c, 0x0f, 0xf3, 0xe1, 0x57, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x9c, 0x0f, 0xf1, 0xe0, 0x7c, 0xc8, 0x0f, 0x89, 0xa9, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x70, 0x3e, 0x0c, 0x06, 0xe7, 0xc3, 0x7a, 0xf8, 0x0d, 0xc9, 0xa5, 0xe1, 0x17, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x82, 0xf3, 0x61, 0x31, 0x38, 0x1f, 0x56, 0x07, 0xef, 0x65, 0xc4, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x9c, 0x0f, 0xb3, 0xc1, 0xf9, 0x30, 0x1e, 0x7e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x70, 0x3e, 0xec, 0x06, 0xe7, 0xc3, 0xf6, 0xe0, 0xbd, 0x8c, 0x18, 0xc7, 0xb7, 0xe3, 0xd0, 0xf1, 0xed, 0xd0, 0x13, 0xf5, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0xe0, 0x61, 0x74, 0xf0, 0x32, 0x6e, 0x10, 0x6c, 0x68, 0x3b, 0xb3, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x17, 0xa3, 0x07, 0xcf, 0xbf, 0xe9, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x27, 0xe3, 0x07, 0x27, 0x43, 0x70, 0x68, 0x24, 0xb8, 0x38, 0x08, 0x16, 0x64, 0x1b, 0xbc, 0x31, 0xa7, 0x63, 0xd8, 0x85, 0xdd, 0xd0, 0x71, 0x64, 0xe1, 0x16, 0x0f, 0x96, 0x0f, 0xfe, 0x1e, 0xa2, 0x79, 0x38, 0xda, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x17, 0xe3, 0x07, 0x1f, 0x43, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x2e, 0x86, 0x6c, 0x70, 0x31, 0xcc, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x17, 0x43, 0x38, 0xb8, 0x18, 0x16, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x3c, 0x0e, 0xa8, 0x63, 0x83, 0xc7, 0x01, 0x75, 0x1c, 0x4e, 0xb1, 0x41, 0xb6, 0xc1, 0x63, 0x88, 0x3a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0xc1, 0xc5, 0x30, 0x1a, 0x5c, 0x0c, 0xab, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x70, 0x31, 0x4c, 0x0e, 0x1e, 0xd7, 0xd4, 0x71, 0x18, 0x97, 0x41, 0xb6, 0xc1, 0xdb, 0x77, 0x3a, 0x0e, 0xfd, 0x06, 0x0f, 0xcd, 0x5f, 0x8e, 0xc7, 0xc7, 0xe3, 0x15, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0xc2, 0x11, 0x1d, 0x08, 0x4f, 0xdc, 0x20, 0xd8, 0xd0, 0x05, 0x67, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x44, 0x25, 0x7a, 0xf0, 0x48, 0xaa, 0x8e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x20, 0x3a, 0xf1, 0x03, 0xd1, 0x09, 0xa3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0xe8, 0x84, 0x60, 0x20, 0x3a, 0x21, 0x1d, 0x03, 0xff, 0x2c, 0xcd, 0xae, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0xa2, 0x13, 0xe2, 0x81, 0xe8, 0x84, 0xcd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x10, 0x9d, 0x90, 0x1f, 0x3c, 0xfc, 0xab, 0xe3, 0xd0, 0x49, 0x6d, 0x71, 0x10, 0x2c, 0xc8, 0x36, 0x78, 0x8c, 0x55, 0xc7, 0xb0, 0x0b, 0xb7, 0x18, 0xf8, 0x68, 0x75, 0x72, 0xec, 0x21, 0x9a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0xa1, 0x89, 0x1f, 0x08, 0x4d, 0xa8, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x08, 0x4d, 0x08, 0x06, 0x42, 0x13, 0xd2, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0xde, 0x4b, 0xd6, 0xb1, 0xc1, 0x7b, 0xc9, 0x3a, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0xe0, 0x09, 0x66, 0x1d, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0xa1, 0x09, 0xf9, 0x40, 0x68, 0xc2, 0x66, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x08, 0x4d, 0x88, 0x0f, 0xde, 0xf7, 0xd6, 0x31, 0x08, 0x16, 0x7e, 0x43, 0x72, 0xe9, 0xe0, 0xd0, 0x24, 0x7c, 0x68, 0x0a, 0x34, 0xc8, 0x36, 0x78, 0x82, 0x59, 0xc7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x10, 0x9a, 0xb0, 0x1c, 0x08, 0x4d, 0x68, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x42, 0x13, 0x46, 0x07, 0x8f, 0xb6, 0xeb, 0x18, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x84, 0x26, 0x8c, 0x07, 0x42, 0x13, 0x0a, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0x40, 0x68, 0x42, 0xdd, 0x40, 0x68, 0x42, 0xdf, 0xf0, 0x1b, 0xdf, 0x0e, 0xa9, 0x83, 0xc5, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x6d, 0xf0, 0xc0, 0xbe, 0x8e, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0xc7, 0xb7, 0x43, 0xa3, 0x96, 0x61, 0x17, 0x76, 0xe1, 0x36, 0x78, 0x4c, 0x57, 0xc7, 0x41, 0x48, 0x81, 0x6f, 0x88, 0xe1, 0x70, 0x8b, 0x07, 0x2d, 0x9c, 0x8e, 0x1f, 0x84, 0x14, 0xf8, 0xc1, 0x58, 0x18, 0x3d, 0x34, 0x7f, 0x39, 0x1e, 0x1f, 0x5a, 0x80, 0x0d, 0xbb, 0x70, 0x1b, 0xbc, 0xa9, 0xb0, 0xe3, 0x10, 0xcd, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0xd8, 0xc4, 0x0f, 0xc4, 0x26, 0x4c, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x62, 0x13, 0x82, 0x81, 0xd8, 0x84, 0x74, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x37, 0x15, 0x76, 0x6c, 0xf0, 0xa6, 0xc2, 0x8e, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x78, 0x51, 0x62, 0xc7, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0x40, 0x6c, 0x42, 0x3e, 0x10, 0x9b, 0xb0, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x62, 0x13, 0xe2, 0x83, 0xd7, 0x4a, 0x76, 0x0c, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x24, 0x03, 0xc9, 0xbb, 0x43, 0x72, 0xe9, 0xd0, 0x14, 0x68, 0x90, 0x6d, 0xf0, 0xa2, 0xc4, 0x8e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x20, 0x36, 0x61, 0x35, 0x10, 0x9b, 0xb0, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x62, 0x13, 0x46, 0x07, 0xaf, 0xd3, 0xec, 0x18, 0x04, 0x1b, 0xe2, 0x7f, 0x68, 0x01, 0x36, 0xec, 0xc2, 0x2d, 0x1e, 0x34, 0xec, 0x73, 0x79, 0x88, 0xe6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0x40, 0x70, 0xe2, 0x07, 0x82, 0x13, 0x46, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0xc1, 0x09, 0xc1, 0x40, 0x70, 0x42, 0x3a, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0x6b, 0x3d, 0x3b, 0x36, 0x78, 0xad, 0x67, 0xc7, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0x3c, 0xfc, 0xb3, 0x63, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x08, 0x4e, 0xc8, 0x07, 0x82, 0x13, 0x36, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0x40, 0x70, 0x42, 0x7c, 0xf0, 0xa4, 0xd4, 0x8e, 0x43, 0x03, 0xca, 0x41, 0xb6, 0xc1, 0x3b, 0xb1, 0x3a, 0x16, 0x64, 0x1b, 0xbc, 0x60, 0xab, 0x63, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0xc7, 0x74, 0x75, 0x6c, 0xf0, 0x98, 0xae, 0x8e, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x78, 0x27, 0x56, 0xc7, 0x20, 0xdb, 0xe0, 0x99, 0x60, 0x1d, 0x83, 0x6c, 0x83, 0xb7, 0x78, 0x75, 0x1c, 0x5a, 0xba, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x8f, 0xc7, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x82, 0xbf, 0xd1, 0xc1, 0xef, 0x90, 0x0d, 0x82, 0x0d, 0x6d, 0x67, 0x16, 0x07, 0xc1, 0xe2, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0xe0, 0x70, 0x58, 0x0c, 0x0e, 0x87, 0xc9, 0x21, 0x86, 0x87, 0x53, 0x6c, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x1e, 0x47, 0x0f, 0x1e, 0x5c, 0xdb, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x0e, 0x47, 0x0f, 0x1e, 0x5c, 0xdb, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x0e, 0xc7, 0x0f, 0x0e, 0x87, 0xd1, 0xf0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x82, 0xc3, 0x21, 0x1a, 0x1c, 0x0e, 0xd9, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0xe0, 0x70, 0x08, 0x07, 0x87, 0xc3, 0x66, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0xc1, 0x8b, 0x6e, 0x3b, 0x8e, 0xc7, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0xee, 0x85, 0x6c, 0x70, 0x2f, 0x2c, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0xb8, 0x17, 0xc2, 0xc1, 0xbd, 0x30, 0x38, 0x78, 0x4c, 0x1b, 0xc6, 0xf1, 0xed, 0xd0, 0xa8, 0xe5, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x20, 0xd8, 0x60, 0xf0, 0x1e, 0x2c, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0xc1, 0xd1, 0x90, 0x0d, 0x8e, 0x86, 0xae, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0xf0, 0x33, 0x64, 0x07, 0x6f, 0xa2, 0xee, 0x18, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x47, 0x43, 0x38, 0x38, 0x1a, 0x06, 0x07, 0x25, 0xef, 0xcc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x82, 0xa3, 0x61, 0x31, 0x38, 0x1a, 0x56, 0x83, 0x64, 0x40, 0xe1, 0xdf, 0x77, 0xc8, 0x56, 0x0c, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x1c, 0x0d, 0xb3, 0xc1, 0xd1, 0x50, 0x35, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x47, 0xc3, 0x6e, 0x70, 0x34, 0x6c, 0x0f, 0x1e, 0x82, 0xd1, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0xe0, 0x68, 0x18, 0x0f, 0x8e, 0x86, 0xf5, 0x21, 0x75, 0x70, 0x68, 0xfe, 0x72, 0x3c, 0x1e, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x38, 0x1a, 0xe6, 0x83, 0xa3, 0xa1, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x8e, 0x86, 0xfd, 0xe0, 0x68, 0xe8, 0x38, 0x58, 0x4e, 0x15, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x38, 0x1a, 0x4a, 0x06, 0x47, 0x43, 0xd1, 0x20, 0x19, 0x48, 0xd7, 0x1d, 0x8f, 0x8f, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0xa1, 0x51, 0xcb, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x10, 0x6c, 0xf0, 0x92, 0xdb, 0x8e, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x78, 0x1b, 0xb2, 0xc1, 0xdb, 0xf0, 0x65, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0xbc, 0x0d, 0xe1, 0xe0, 0x6d, 0x18, 0x0c, 0x92, 0x81, 0x52, 0x77, 0x3c, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0xbc, 0x0d, 0x8b, 0xc1, 0xdb, 0xb0, 0x3a, 0x74, 0x31, 0x39, 0x0e, 0x1d, 0x1a, 0xb5, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x70, 0x33, 0x64, 0x83, 0x9b, 0x61, 0xbc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0xb8, 0x19, 0x16, 0x83, 0x9b, 0x61, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x6e, 0x86, 0xf0, 0xe0, 0xa5, 0x08, 0x1e, 0x07, 0xef, 0x3b, 0xc1, 0x18, 0x64, 0x1b, 0xbc, 0x93, 0xc0, 0x63, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0xdc, 0x0c, 0xbb, 0xc1, 0xcd, 0xb0, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x37, 0xc3, 0xec, 0xe0, 0xc1, 0x0e, 0x1e, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc9, 0x80, 0xe9, 0xfe, 0xdf, 0x77, 0xc8, 0x56, 0x1c, 0x3a, 0x68, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x04, 0x8b, 0xb3, 0xc1, 0x93, 0xba, 0x3a, 0x0e, 0x9a, 0xe5, 0x72, 0x59, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x82, 0xa7, 0x21, 0x1b, 0x3c, 0x0d, 0xc3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0xc1, 0xd3, 0x90, 0x0e, 0x9e, 0x86, 0xc5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x78, 0x1a, 0xc2, 0x83, 0xb7, 0x6a, 0x78, 0x0c, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x3a, 0x78, 0x7b, 0x0d, 0xc6, 0x21, 0x0d, 0x37, 0xc8, 0x36, 0x78, 0xaa, 0x85, 0xc7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x78, 0x1a, 0x36, 0x83, 0xa7, 0x61, 0x37, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x9e, 0x86, 0xc9, 0xc1, 0xcb, 0x43, 0x3c, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x1d, 0xb4, 0xc3, 0xc2, 0x74, 0xe8, 0xa0, 0x71, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x20, 0x18, 0x21, 0x1b, 0x08, 0x46, 0xc8, 0x07, 0xc1, 0x06, 0x6f, 0x09, 0xd6, 0x38, 0x34, 0x6a, 0x39, 0x34, 0x7f, 0x39, 0x1e, 0x2f, 0x08, 0x36, 0x18, 0xf9, 0x0f, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x70, 0x35, 0x64, 0x83, 0xab, 0x61, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0xb8, 0x1a, 0xd2, 0xc1, 0xd5, 0xb0, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x57, 0x43, 0x78, 0xf0, 0xc0, 0x18, 0x8f, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x64, 0x20, 0x79, 0x77, 0x3c, 0x3e, 0xa4, 0xe1, 0x06, 0xd9, 0x06, 0xef, 0x6b, 0xf1, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x57, 0xc3, 0x66, 0x70, 0x35, 0xec, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0xc1, 0xd5, 0x30, 0x39, 0x78, 0x3e, 0x8e, 0xc7, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x83, 0x93, 0x3c, 0xef, 0xa1, 0x83, 0xc6, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x41, 0xb0, 0xc1, 0x4b, 0x6e, 0x3b, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0xe0, 0x6c, 0xc8, 0x06, 0x67, 0xc3, 0x8d, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x70, 0x36, 0x84, 0x83, 0xb3, 0x61, 0x70, 0xf0, 0xc6, 0xfe, 0x8e, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0xc1, 0xd9, 0xb0, 0x18, 0x9c, 0x0d, 0xab, 0x83, 0xe7, 0x72, 0x66, 0x1c, 0x87, 0x0e, 0x8d, 0x5a, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0xe0, 0x5f, 0xc8, 0x06, 0xff, 0xc2, 0x6c, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0xfc, 0x0b, 0xe1, 0xe0, 0x5f, 0x18, 0x1c, 0x2c, 0xa7, 0x0a, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0xfc, 0x0b, 0x8b, 0xc1, 0xbf, 0xb0, 0x3a, 0x78, 0x49, 0x8d, 0xc7, 0x71, 0xe8, 0xd0, 0xa8, 0xe5, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x20, 0x58, 0x3c, 0x78, 0x3d, 0x85, 0xc7, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0xbc, 0x0b, 0xd9, 0xe0, 0x5d, 0x28, 0x1b, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0xef, 0x42, 0x38, 0x78, 0x17, 0x06, 0x07, 0x6d, 0x6d, 0x30, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x9c, 0x83, 0x66, 0xb9, 0x5c, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0xe0, 0x5d, 0x58, 0x0c, 0xde, 0x85, 0x9a, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0xc1, 0xbb, 0xb0, 0x1b, 0xbc, 0x0b, 0xdb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0xf0, 0x2e, 0x4c, 0x0e, 0x1e, 0x55, 0xe6, 0x71, 0xf0, 0xbe, 0x13, 0x8c, 0x41, 0xb6, 0xc1, 0x83, 0xc2, 0x3c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0xc1, 0xbb, 0xd0, 0x30, 0x78, 0x17, 0x5a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0xc1, 0xbb, 0x30, 0x3e, 0x78, 0xdd, 0x9a, 0xc7, 0x20, 0xd8, 0x60, 0x5d, 0x71, 0xd4, 0xa1, 0x83, 0xc6, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0xe0, 0x5d, 0xe8, 0x19, 0xbc, 0x0b, 0x5d, 0x07, 0xab, 0xa2, 0x91, 0x8e, 0x43, 0x87, 0x46, 0x2d, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0xf0, 0x3e, 0x64, 0x83, 0xf7, 0xe1, 0xc8, 0xb0, 0x1b, 0x3a, 0x8e, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0xde, 0x87, 0xcd, 0xe0, 0x7d, 0xa8, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0xbc, 0x0f, 0xc3, 0xc1, 0xfb, 0x30, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0xef, 0xc3, 0xe8, 0xe0, 0xc1, 0x7c, 0x1e, 0x07, 0xef, 0x3b, 0xc1, 0x18, 0x64, 0x1b, 0x3c, 0x16, 0xcf, 0x63, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0xbc, 0x0f, 0x0d, 0x83, 0xf7, 0xa1, 0x65, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0xbc, 0x0f, 0xeb, 0x83, 0x97, 0x0b, 0x7a, 0x1c, 0x34, 0x8d, 0xd5, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0xde, 0x87, 0x78, 0xf0, 0x3e, 0x4c, 0x06, 0xc1, 0x06, 0x2d, 0x65, 0x35, 0x1d, 0x1a, 0xb5, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x02, 0x10, 0x1d, 0x88, 0x45, 0xdc, 0x20, 0xd8, 0xd0, 0x05, 0x67, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x04, 0x21, 0x7a, 0xf0, 0x28, 0x46, 0x8f, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x20, 0x14, 0xf1, 0x03, 0xa1, 0x08, 0x93, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0x50, 0x84, 0x60, 0x20, 0x14, 0x21, 0x3d, 0x78, 0x4c, 0x57, 0xc7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x10, 0x8a, 0x10, 0x0f, 0x84, 0x22, 0x2c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0x81, 0x50, 0x84, 0xc1, 0xc1, 0xdb, 0x2e, 0x3d, 0x0e, 0x9d, 0xd4, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x83, 0xc7, 0x37, 0x7a, 0x0c, 0xbb, 0xc1, 0xfb, 0x0f, 0x3b, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x02, 0x11, 0x3f, 0x10, 0x88, 0xb0, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x08, 0x44, 0x08, 0x06, 0x02, 0x11, 0xd2, 0x83, 0x67, 0x37, 0x76, 0x0c, 0xb2, 0x0d, 0xde, 0xce, 0xe9, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x10, 0x88, 0x30, 0x18, 0x08, 0x44, 0x18, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0x81, 0x08, 0xf1, 0xc1, 0xa3, 0x49, 0x3d, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x92, 0x81, 0xf6, 0x7d, 0x07, 0x01, 0xef, 0x7f, 0x68, 0x0a, 0x34, 0xc8, 0x36, 0x78, 0x3b, 0xa7, 0xc7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x10, 0x88, 0xb0, 0x1b, 0x08, 0x44, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0x81, 0x08, 0xab, 0x83, 0xc7, 0xb2, 0x7a, 0x1c, 0x3c, 0xae, 0xb3, 0x63, 0xd8, 0x0d, 0x5e, 0xe8, 0xd9, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x10, 0x89, 0xf8, 0x81, 0x48, 0x84, 0xc9, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0x40, 0x24, 0x42, 0x30, 0x10, 0x89, 0x90, 0x1e, 0xbc, 0x8e, 0xb4, 0x63, 0x90, 0x6d, 0xf0, 0x9c, 0x58, 0x8f, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x20, 0x12, 0x61, 0x30, 0x10, 0x89, 0xb0, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x22, 0x11, 0xe2, 0x83, 0x57, 0xe4, 0x7a, 0x1c, 0x1a, 0x50, 0x0e, 0xb2, 0x0d, 0xde, 0x05, 0xe9, 0xb1, 0x20, 0xdb, 0xe0, 0xc5, 0x92, 0x1e, 0x07, 0xcf, 0x71, 0xed, 0x18, 0x64, 0x1b, 0xbc, 0x0b, 0xd2, 0x63, 0x90, 0x6d, 0xf0, 0x12, 0x4c, 0x8f, 0x41, 0xb6, 0xc1, 0x73, 0x2b, 0x3d, 0x0e, 0x2d, 0xdd, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc7, 0xe3, 0x41, 0xb0, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x78, 0x1e, 0x16, 0x83, 0xe7, 0x61, 0x72, 0x88, 0xe1, 0xe1, 0x14, 0x5b, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0xf4, 0x07, 0xc6, 0x82, 0xeb, 0xd1, 0xc1, 0xf7, 0xb0, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0xcf, 0xa3, 0x07, 0x0f, 0x3d, 0xf6, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0xcf, 0xe3, 0x07, 0xcf, 0xc3, 0x68, 0xf8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x3c, 0xfa, 0x03, 0x63, 0xc1, 0xf3, 0x10, 0x0d, 0x9e, 0x87, 0xec, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0xf0, 0x3c, 0x84, 0x83, 0xe7, 0x61, 0x33, 0x08, 0x36, 0xc4, 0x70, 0xf1, 0xe0, 0x7d, 0xc2, 0x1e, 0xc7, 0xe3, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x02, 0xf8, 0xa6, 0xb5, 0xc1, 0xb1, 0x95, 0xb5, 0x95, 0xb9, 0xd1, 0x85, 0xd1, 0xa5, 0xbd, 0xb9, 0xb3, 0x06, 0xad, 0x6f, 0x31, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x70, 0x64, 0x08, 0x3d, 0x68, 0x7d, 0x8b, 0xb9, 0x01, 0x78, 0xbe, 0x7b, 0x93, 0x5b, 0x63, 0x4b, 0x9b, 0xa3, 0x03, 0x99, 0x7b, 0xab, 0x93, 0x1b, 0x2b, 0x03, 0x09, 0x73, 0x23, 0x03, 0x11, 0x0b, 0x93, 0x03, 0x99, 0xa3, 0x0b, 0x1b, 0x5b, 0xdb, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x68, 0x7d, 0x8b, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xf9, 0x03, 0x63, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0x97, 0x60, 0x6c, 0xf8, 0x73, 0x69, 0xc0, 0xb7, 0x0b, 0x73, 0x2b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xdb, 0x46, 0x30, 0x0e, 0xd6, 0x6b, 0x3d, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xcb, 0x82, 0xb1, 0xe1, 0xcf, 0xa5, 0x01, 0x5f, 0x2c, 0x4c, 0x6e, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x51, 0xc1, 0xd8, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x81, 0xc1, 0x38, 0x08, 0x29, 0x93, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xa3, 0x68, 0x30, 0x36, 0xfc, 0x3b, 0xbf, 0x80, 0x4f, 0x56, 0x37, 0x46, 0x57, 0xad, 0x80, 0x7f, 0x17, 0x96, 0x66, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x70, 0x64, 0x08, 0x3d, 0x78, 0xd1, 0xba, 0x47, 0x03, 0xf0, 0x17, 0x26, 0x67, 0xf7, 0x06, 0x42, 0x17, 0x36, 0xb7, 0xc6, 0x02, 0x62, 0x26, 0xf7, 0xd6, 0x06, 0x12, 0xe6, 0x96, 0x77, 0x87, 0x56, 0x26, 0x57, 0xb6, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0xa2, 0x75, 0x8f, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x0a, 0x1d, 0x8c, 0x0d, 0x82, 0xf6, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xda, 0x1e, 0x8c, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x02, 0x84, 0xb1, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0xd5, 0x56, 0x74, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0x1f, 0x61, 0x6c, 0xf8, 0x73, 0x69, 0x70, 0x78, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xaf, 0x08, 0xe3, 0xa0, 0xcc, 0xd2, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x22, 0x26, 0x8c, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xeb, 0x84, 0xb1, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0xb5, 0xa3, 0xdd, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0x5a, 0x61, 0x6c, 0xf8, 0x73, 0x69, 0x70, 0x78, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x81, 0x0a, 0x63, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x41, 0x0b, 0xe3, 0x20, 0xa4, 0x4c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xf1, 0xc2, 0xd8, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x07, 0xc3, 0x38, 0x28, 0xbd, 0xe9, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x28, 0xc3, 0x38, 0x38, 0x23, 0xa1, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x8d, 0x86, 0xb1, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xb8, 0x86, 0xb1, 0xe1, 0x6d, 0x9d, 0x01, 0x7f, 0x2c, 0x6c, 0x6e, 0xad, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xa6, 0x38, 0x8c, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x3b, 0x87, 0xb1, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0xe7, 0xbd, 0x61, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x91, 0x87, 0x71, 0x10, 0x82, 0x0f, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xd6, 0x87, 0xb1, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xab, 0xff, 0x30, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xf0, 0xc8, 0x3d, 0x8c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x43, 0x0f, 0x31, 0x36, 0xfc, 0xb9, 0x34, 0x38, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x52, 0x88, 0xb1, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xb2, 0x88, 0x71, 0x50, 0x36, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x09, 0x89, 0x71, 0xf8, 0x60, 0xb5, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xa5, 0xc4, 0xd8, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x2d, 0x97, 0x18, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x58, 0x75, 0x76, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x24, 0x27, 0xc6, 0x41, 0x08, 0x3e, 0xd4, 0x0a, 0xf8, 0x77, 0x6f, 0x72, 0xed, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0x47, 0x86, 0xd0, 0x83, 0xd7, 0x8f, 0x7c, 0x34, 0x80, 0xef, 0xd8, 0x5b, 0x1b, 0x5c, 0x1a, 0x5b, 0x99, 0x1c, 0xc8, 0x58, 0xd8, 0x18, 0x5a, 0xd9, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0xeb, 0x47, 0x3e, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x5b, 0x42, 0x31, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x7f, 0x29, 0xc6, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb7, 0xb2, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x71, 0x14, 0x63, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x2e, 0x15, 0xe3, 0xa0, 0x44, 0x7c, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xdc, 0x15, 0xe3, 0xa0, 0x48, 0xc5, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x16, 0x5b, 0x8c, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x70, 0x61, 0xf9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xed, 0x2c, 0xc6, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x68, 0x2e, 0xc6, 0x41, 0x89, 0x58, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x72, 0x2f, 0xc6, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x20, 0x30, 0xc6, 0x41, 0xe9, 0x4d, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x28, 0x31, 0xc6, 0xc1, 0xb2, 0x19, 0xe7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x23, 0x91, 0x31, 0x0e, 0x16, 0x58, 0x38, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x2c, 0x33, 0xc6, 0xc1, 0xb2, 0x19, 0xe7, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x9c, 0xc6, 0xd8, 0xf0, 0xe7, 0xd2, 0x06, 0x29, 0x0b, 0x9d, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x21, 0xd1, 0x18, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x0d, 0xd7, 0x18, 0x07, 0x25, 0x62, 0xfd, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x35, 0xdb, 0x18, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xed, 0xdd, 0x18, 0x07, 0xa5, 0x37, 0xfd, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x0d, 0xe2, 0x18, 0x07, 0xcb, 0x66, 0x9c, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x2b, 0xc7, 0x38, 0x58, 0x60, 0xe1, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x29, 0xe9, 0x18, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xe5, 0xeb, 0x18, 0x07, 0xa5, 0x37, 0xfd, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x0d, 0xf0, 0x18, 0x07, 0xcb, 0x66, 0x9c, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x9c, 0xc7, 0x38, 0x58, 0xfb, 0xee, 0x5c, 0xcd, 0x1a, 0xb4, 0x37, 0x3e, 0xbb, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0xc1, 0x91, 0x21, 0xf4, 0xa0, 0xbd, 0xf1, 0xd9, 0x06, 0xe0, 0x2d, 0x4c, 0xce, 0xee, 0x0d, 0x84, 0x2e, 0x6c, 0x6e, 0x8d, 0x05, 0x84, 0x2d, 0x4c, 0xce, 0x2e, 0x8c, 0x0d, 0x64, 0x8e, 0x2e, 0xec, 0xac, 0x6c, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xa0, 0xbd, 0xf1, 0xd9, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xf4, 0x7c, 0x8c, 0x0d, 0x82, 0xf6, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x98, 0x8f, 0xf8, 0x81, 0xf9, 0x08, 0xf3, 0x0d, 0xd6, 0xab, 0x54, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0xf3, 0x11, 0xa2, 0x81, 0xf9, 0x08, 0xc3, 0x0d, 0x82, 0xcd, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x98, 0x8f, 0x10, 0x0e, 0xcc, 0x47, 0x58, 0x1c, 0x3c, 0xc5, 0xe2, 0x63, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x98, 0x8f, 0x30, 0x19, 0x98, 0x8f, 0xb0, 0x3b, 0x78, 0x9d, 0xbf, 0x47, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x49, 0xfe, 0x18, 0x1b, 0xfe, 0x9d, 0x5f, 0x83, 0x17, 0xad, 0x7b, 0xd4, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x30, 0x20, 0xf1, 0x03, 0x03, 0x12, 0xe6, 0x1b, 0xac, 0x57, 0xa9, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x06, 0x24, 0x44, 0x03, 0x03, 0x12, 0x86, 0x1b, 0x04, 0x9b, 0xe9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x30, 0x20, 0x21, 0x1c, 0x18, 0x90, 0xb0, 0xd8, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0x9a, 0xe8, 0xb9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x60, 0x40, 0xc2, 0x64, 0x60, 0x40, 0xc2, 0x6e, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0xcf, 0x39, 0xc8, 0x68, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x29, 0x21, 0x63, 0xc3, 0xbf, 0xf3, 0x1b, 0x34, 0x11, 0x34, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x29, 0x11, 0x19, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x73, 0x22, 0x63, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x0f, 0xc0, 0xc7, 0x58, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x6f, 0x23, 0x63, 0xc3, 0x9f, 0x4b, 0x83, 0xc3, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x05, 0x19, 0x19, 0x07, 0x6d, 0x5b, 0x8f, 0xd7, 0x6a, 0x70, 0x64, 0x08, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xe0, 0xc8, 0x10, 0x7a, 0x70, 0x64, 0x08, 0x6d, 0x80, 0xff, 0xee, 0x4d, 0x6e, 0x8d, 0x2d, 0x6d, 0x8e, 0x6e, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0xc8, 0x10, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x1b, 0x92, 0xb1, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x52, 0x92, 0x71, 0x50, 0x7a, 0xd3, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x93, 0x92, 0xb1, 0xe1, 0xdf, 0xf9, 0x35, 0x68, 0x7d, 0x8b, 0xb9, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x65, 0xc9, 0xd8, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x7b, 0xc9, 0x38, 0x08, 0x29, 0x93, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x03, 0x67, 0x32, 0x36, 0xfc, 0x3b, 0xbf, 0x80, 0xdf, 0xf6, 0x66, 0x57, 0x56, 0xad, 0x06, 0x4f, 0x7e, 0xd6, 0xd8, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xe0, 0xc8, 0x10, 0x7a, 0xf0, 0xe4, 0x67, 0x8d, 0x06, 0xe0, 0x1b, 0xae, 0x4c, 0x6e, 0x2e, 0x6d, 0x8e, 0xae, 0xcc, 0x8d, 0x0e, 0x64, 0x8e, 0x2e, 0x8c, 0xae, 0x8c, 0x05, 0x84, 0x2d, 0x4c, 0xce, 0x2e, 0x8c, 0x0d, 0x64, 0x8e, 0x2e, 0xec, 0xac, 0x6c, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0xc9, 0xcf, 0x1a, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x09, 0x39, 0x19, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xb9, 0x27, 0x63, 0xc3, 0x9f, 0x4b, 0x03, 0xde, 0x1d, 0xda, 0xbb, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xb5, 0x93, 0xb1, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x13, 0x94, 0x71, 0x50, 0x36, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x55, 0x94, 0x71, 0xd0, 0xb6, 0xf5, 0x78, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0x30, 0x65, 0x6c, 0xf8, 0x73, 0x69, 0xc0, 0x2b, 0x73, 0xcb, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x73, 0x93, 0x32, 0x36, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x2b, 0x9f, 0x32, 0x0e, 0xca, 0x26, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x2b, 0xa9, 0x32, 0x0e, 0x3f, 0xd4, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x2a, 0x57, 0xc6, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb6, 0xb0, 0x71, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x48, 0x2b, 0xe3, 0xf0, 0xc1, 0xea, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x75, 0x64, 0x19, 0x1b, 0xfe, 0x5c, 0xda, 0x60, 0x71, 0x67, 0xf6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x82, 0x58, 0xc6, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xf9, 0x59, 0xc6, 0x41, 0xd9, 0x84, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x01, 0x5b, 0xc6, 0x86, 0x7f, 0xe7, 0x17, 0xf0, 0xed, 0xca, 0xe4, 0xca, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x90, 0xb9, 0x8c, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x66, 0x61, 0xf4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x2d, 0x5c, 0xc6, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xa4, 0x5d, 0xc6, 0x41, 0xd9, 0x84, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xac, 0x5e, 0xc6, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x57, 0x5f, 0xc6, 0x86, 0xb7, 0x75, 0x06, 0xfc, 0x30, 0xbc, 0x30, 0xb6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x93, 0x03, 0x33, 0x36, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xd3, 0x08, 0x33, 0x0e, 0x5e, 0xc7, 0xf0, 0x51, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xcc, 0x98, 0xb1, 0xe1, 0xcf, 0xa5, 0x01, 0x8f, 0xad, 0x8e, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x53, 0xcc, 0xd8, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x81, 0xcc, 0x38, 0x28, 0x9b, 0x30, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xa2, 0xcc, 0xd8, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xb8, 0xcc, 0x38, 0x38, 0x0b, 0x29, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xb2, 0x99, 0x71, 0xd0, 0xec, 0x76, 0x54, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x3b, 0x9a, 0xb1, 0xe1, 0xcf, 0xa5, 0x01, 0x4f, 0xaf, 0x6e, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x0a, 0xcd, 0xd8, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x39, 0xcd, 0x38, 0x28, 0x9b, 0x30, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x5a, 0xcd, 0xd8, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x6f, 0xcd, 0x38, 0x38, 0x0b, 0x29, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x20, 0x9b, 0x71, 0xd0, 0xec, 0x76, 0x54, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xa2, 0x9b, 0xb1, 0xe1, 0xcf, 0xa5, 0x01, 0xcf, 0x2e, 0xcc, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xbd, 0xcd, 0xd8, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xec, 0xcd, 0x38, 0x28, 0x11, 0xeb, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x0d, 0xce, 0x38, 0x58, 0xaf, 0xf5, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x48, 0x71, 0xc6, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xf4, 0x71, 0xc6, 0xc1, 0x59, 0x48, 0x61, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xf6, 0xe5, 0x8c, 0x83, 0x66, 0xb7, 0xa3, 0xaa, 0xc3, 0x29, 0xd6, 0x02, 0xbe, 0x5d, 0x1a, 0x5b, 0xb9, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0xc1, 0x91, 0x21, 0xf4, 0xe0, 0x4d, 0xe0, 0x1f, 0x0d, 0xc0, 0x8b, 0x5c, 0x99, 0x19, 0x5b, 0x19, 0x5e, 0x9a, 0x5d, 0x19, 0xc8, 0xd8, 0x9b, 0xdb, 0x1c, 0x5d, 0x98, 0x1b, 0xdd, 0xdc, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x9b, 0xc0, 0x3f, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x13, 0xa6, 0x33, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xf1, 0x75, 0xc6, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x5a, 0x2d, 0x3a, 0x21, 0x3e, 0x28, 0x2a, 0x74, 0x79, 0x70, 0x65, 0xa9, 0x0d, 0x7f, 0x2e, 0x6d, 0xd0, 0xf8, 0x7c, 0xd4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x57, 0x75, 0xc6, 0xc1, 0xb2, 0x19, 0xe7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x13, 0xbe, 0x33, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xd0, 0x6a, 0xd1, 0x09, 0xf1, 0x41, 0x51, 0x21, 0xab, 0x1b, 0xa3, 0x4b, 0x6d, 0xf8, 0x73, 0x69, 0xc0, 0x23, 0xab, 0x1b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x43, 0xb9, 0x33, 0x0e, 0x96, 0xcd, 0x38, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x5c, 0x9e, 0xb1, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x56, 0x8b, 0x4e, 0x88, 0x0f, 0x8a, 0xca, 0x5d, 0x9a, 0x5c, 0x59, 0x6a, 0xc3, 0x9f, 0x4b, 0x03, 0xde, 0x5d, 0x9a, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x36, 0x9e, 0x71, 0xb0, 0x6c, 0xc6, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x44, 0xf6, 0x8c, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xe8, 0x68, 0xd1, 0x09, 0xf1, 0x41, 0x51, 0x41, 0xa9, 0x73, 0x4b, 0xa3, 0x03, 0x39, 0x7b, 0x7b, 0x33, 0x4b, 0x49, 0x6d, 0xf8, 0x73, 0x69, 0xc0, 0x23, 0xab, 0x23, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x43, 0xd4, 0x33, 0x0e, 0x96, 0xcd, 0x38, 0xb7, 0x02, 0x3e, 0x59, 0x99, 0x18, 0xbd, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0xc1, 0x91, 0x21, 0xf4, 0xe0, 0xcd, 0x02, 0x20, 0x0d, 0xe0, 0x5d, 0x06, 0x87, 0x56, 0xd6, 0x56, 0x26, 0x17, 0xc6, 0x06, 0x32, 0x47, 0x17, 0x46, 0x57, 0xb6, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0x66, 0x01, 0x90, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xea, 0xf8, 0x8c, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x69, 0x9f, 0xb1, 0xe1, 0xcf, 0xa5, 0x0d, 0x46, 0xe6, 0xd2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x0a, 0x7d, 0xc6, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x81, 0x7e, 0xc6, 0x41, 0x48, 0x99, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xe1, 0x9f, 0xb1, 0xe1, 0xdf, 0xf9, 0x0d, 0xd6, 0x9d, 0x65, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x21, 0x05, 0x1a, 0x1b, 0xfe, 0x5c, 0xda, 0xa0, 0x34, 0xcb, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x15, 0xd0, 0xd8, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x44, 0xd0, 0x38, 0x08, 0x29, 0x93, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x53, 0x19, 0x34, 0x36, 0xfc, 0x3b, 0xbf, 0x80, 0xff, 0x66, 0x57, 0xd7, 0x56, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0x4f, 0x68, 0x6c, 0xf8, 0x73, 0x69, 0x83, 0x45, 0xfc, 0xb4, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x55, 0x11, 0x1a, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x35, 0x17, 0x1a, 0x07, 0x21, 0x65, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xd3, 0x86, 0xc6, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x7f, 0x87, 0xc6, 0x41, 0xe9, 0x4d, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x85, 0x88, 0xc6, 0xc1, 0x19, 0x09, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xbe, 0x12, 0x8d, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x10, 0x14, 0x8d, 0x83, 0xd7, 0x31, 0x7c, 0x54, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0xbd, 0x68, 0x6c, 0xf8, 0x73, 0x69, 0x83, 0x91, 0xc0, 0xb0, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xcf, 0xa2, 0xb1, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x2d, 0xa3, 0x71, 0x10, 0x52, 0x26, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0xdb, 0x68, 0x6c, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0xe6, 0x68, 0x1c, 0x94, 0xde, 0xf4, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0xf6, 0x68, 0x1c, 0x9c, 0x91, 0x50, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x09, 0xd2, 0xd8, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x1e, 0xd2, 0x38, 0x78, 0x1d, 0xc3, 0x47, 0xd5, 0xe1, 0x14, 0x5b, 0xc0, 0x9f, 0x7b, 0xab, 0x63, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x38, 0x32, 0x84, 0x1e, 0x3c, 0xa8, 0x06, 0xa4, 0x01, 0xfc, 0xe1, 0xca, 0xe4, 0xe6, 0xd2, 0xe6, 0xe8, 0xca, 0xdc, 0xe8, 0x40, 0xe6, 0xe8, 0xc2, 0xe8, 0xca, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x1e, 0x54, 0x03, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xbd, 0xa4, 0xb1, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x5b, 0x9c, 0x34, 0x36, 0xfc, 0x3b, 0xbf, 0x80, 0xdf, 0x96, 0x56, 0xe6, 0xd6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xa9, 0x55, 0x1a, 0x1b, 0xfe, 0x5c, 0xda, 0x60, 0xf9, 0xe4, 0xed, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xd3, 0x94, 0xc6, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0xd4, 0xd2, 0xd8, 0xf0, 0xe7, 0xd2, 0x80, 0xc7, 0x16, 0x36, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0x60, 0x69, 0x1c, 0x3e, 0x58, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x50, 0x30, 0x8d, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x7a, 0x65, 0xee, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x91, 0x97, 0xc6, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x2c, 0xd3, 0xd8, 0xf0, 0xe7, 0xd2, 0x06, 0x8b, 0x3b, 0xb3, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x33, 0xc6, 0x34, 0x0e, 0xde, 0x11, 0xfb, 0xb1, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x74, 0x9b, 0xc6, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb6, 0xb0, 0x73, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x6c, 0x4d, 0x63, 0x83, 0x00, 0x3a, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x86, 0xd3, 0x38, 0x28, 0x60, 0xf3, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xd9, 0x4e, 0x63, 0xc3, 0x9f, 0x4b, 0x1b, 0x9a, 0x1f, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0xd1, 0x69, 0x6c, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xd8, 0x3d, 0x8d, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x66, 0x61, 0xf4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x51, 0x9e, 0xc6, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xcb, 0x9f, 0xc6, 0xc1, 0xfb, 0x74, 0x3f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x1a, 0xd4, 0xd8, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x2f, 0xd4, 0x38, 0x78, 0x1d, 0xc3, 0x47, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xde, 0xa8, 0xb1, 0xe1, 0xcf, 0xa5, 0x01, 0x8f, 0xad, 0x8e, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x5c, 0xd4, 0x38, 0x68, 0x76, 0x3b, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x24, 0x4b, 0x8d, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x7a, 0x75, 0xf3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xf7, 0xa4, 0xc6, 0x41, 0xb3, 0xdb, 0x51, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0x78, 0x6a, 0x6c, 0xf8, 0x73, 0x69, 0xc0, 0xb3, 0x0b, 0x73, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x53, 0x37, 0x35, 0x36, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x23, 0x43, 0x35, 0x0e, 0x4a, 0xc4, 0xfa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x73, 0x4b, 0x35, 0x0e, 0xd6, 0x6b, 0x3d, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x91, 0xaa, 0xb1, 0xe1, 0xdf, 0xf9, 0x35, 0x78, 0x40, 0xb8, 0x47, 0x55, 0x87, 0x53, 0x6c, 0x0d, 0x9e, 0x19, 0xfb, 0xb1, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0xc1, 0x91, 0x21, 0xf4, 0xe0, 0x99, 0xb1, 0x1f, 0x0d, 0xe0, 0x2d, 0x57, 0xe7, 0x46, 0x97, 0xd6, 0x56, 0x06, 0x62, 0x57, 0x26, 0x37, 0x97, 0xf6, 0xe6, 0xb6, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0xcc, 0xd8, 0x8f, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xc0, 0x57, 0x8d, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x1f, 0xab, 0xb1, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xbb, 0x6d, 0x35, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0x0a, 0x41, 0xdb, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x36, 0x5a, 0x8d, 0x83, 0xa3, 0x36, 0xe8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x4d, 0xbf, 0x1a, 0x1b, 0xfe, 0x5c, 0xda, 0x60, 0x00, 0x6d, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0xf3, 0x6a, 0x1c, 0x9c, 0x91, 0x50, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xda, 0x58, 0x63, 0xc3, 0x9f, 0x4b, 0x1b, 0x2c, 0xe2, 0xa7, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x22, 0xd6, 0xd8, 0xf0, 0xef, 0xfc, 0x02, 0xfe, 0x5d, 0x9e, 0x9b, 0x5b, 0xad, 0x80, 0x8f, 0x56, 0x96, 0x26, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x70, 0x64, 0x08, 0x3d, 0x78, 0xa9, 0x21, 0x48, 0x03, 0xf0, 0x50, 0x07, 0x77, 0x26, 0x17, 0x46, 0x56, 0x16, 0x26, 0xc6, 0x56, 0x06, 0x32, 0x47, 0x17, 0x46, 0x57, 0xb6, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0x52, 0x43, 0x90, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xf0, 0x66, 0x8d, 0x0d, 0x82, 0xf6, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xce, 0x68, 0x8d, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x40, 0xad, 0xb1, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x27, 0x3f, 0x6b, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x95, 0xad, 0xb1, 0x41, 0xd0, 0xfe, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xbb, 0xad, 0xb1, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x63, 0xbc, 0x35, 0x36, 0x08, 0x36, 0xd3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xdb, 0xc3, 0x35, 0x36, 0x64, 0xc0, 0x37, 0xd4, 0xfc, 0x20, 0xe0, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0x9f, 0x6b, 0x6c, 0xc8, 0x80, 0x1f, 0xac, 0x81, 0xa7, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xae, 0x5d, 0x63, 0x43, 0x06, 0x7c, 0x43, 0xcd, 0x0f, 0xc2, 0xbd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xcf, 0xbc, 0xc6, 0x86, 0x0c, 0xf8, 0x86, 0x9a, 0x1f, 0x44, 0x7b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xf4, 0x7b, 0x8d, 0x0d, 0x19, 0xf0, 0x0d, 0x35, 0x3f, 0x08, 0x76, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0xfe, 0x6b, 0x6c, 0xf8, 0x73, 0x69, 0x83, 0x27, 0x3f, 0x6b, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0xf4, 0x6b, 0x6c, 0xf8, 0x77, 0x7e, 0x0d, 0x9e, 0xfc, 0xac, 0x51, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x11, 0x04, 0x1b, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xcf, 0x60, 0x63, 0x83, 0x60, 0x33, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x43, 0x61, 0xe3, 0xe0, 0xc9, 0x98, 0x20, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0x3d, 0x6c, 0x1c, 0xbc, 0x5d, 0x13, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x62, 0x8a, 0x8d, 0x83, 0xe7, 0x73, 0x82, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xa3, 0xb1, 0x71, 0xf0, 0x8e, 0x4f, 0x90, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xc3, 0x3c, 0x36, 0x0e, 0x1e, 0x14, 0x0a, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xdd, 0x25, 0x1b, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0xcd, 0x02, 0x20, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x65, 0x23, 0x1b, 0x1b, 0xfe, 0x9d, 0x5f, 0x83, 0x37, 0x0b, 0x80, 0xd4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x8d, 0x2d, 0x1b, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x41, 0x35, 0x20, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x15, 0x2b, 0x1b, 0x1b, 0xfe, 0x9d, 0x5f, 0x83, 0x07, 0xd5, 0x80, 0x54, 0xad, 0x06, 0x0f, 0x08, 0xf7, 0xd8, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xe0, 0xc8, 0x10, 0x7a, 0xf0, 0x80, 0x70, 0x8f, 0x06, 0xf0, 0x5c, 0x2b, 0x93, 0x73, 0x2b, 0x63, 0x03, 0x69, 0x7b, 0x23, 0xab, 0x63, 0x2b, 0xdb, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0x40, 0xb8, 0xc7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x15, 0xcd, 0xc6, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xc9, 0xd9, 0xd8, 0xf0, 0xe7, 0xd2, 0x06, 0x2b, 0x35, 0x9c, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x93, 0x6d, 0x36, 0x0e, 0x9a, 0xdd, 0x8e, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x01, 0x68, 0x63, 0xc3, 0x9f, 0x4b, 0x1b, 0xbc, 0x7e, 0xe4, 0x63, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xb3, 0x67, 0x63, 0xc3, 0xbf, 0xf3, 0x6b, 0xf0, 0xfa, 0x91, 0x8f, 0x6a, 0x16, 0xf0, 0xef, 0xca, 0xcc, 0xe8, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x8e, 0x0c, 0xa1, 0x07, 0xcf, 0x58, 0x06, 0x69, 0x00, 0xbe, 0xd7, 0xca, 0xd8, 0xec, 0xd2, 0xdc, 0x40, 0xec, 0xca, 0xe4, 0xe6, 0xd2, 0xde, 0xdc, 0x58, 0x40, 0xe8, 0xc2, 0xce, 0x40, 0xc2, 0xdc, 0xc8, 0x40, 0xdc, 0xea, 0xda, 0xc4, 0xca, 0xe4, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x9e, 0xb1, 0x0c, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x5f, 0xb4, 0xb1, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xcb, 0x95, 0x36, 0x36, 0xfc, 0xb9, 0x34, 0xe0, 0xb1, 0x85, 0xb1, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x6d, 0x48, 0x1b, 0x07, 0xe7, 0xcd, 0xd3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xd3, 0xa3, 0x36, 0x36, 0xfc, 0xb9, 0xb4, 0x41, 0xa3, 0x7f, 0x84, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x71, 0x4f, 0x1b, 0x07, 0x65, 0x96, 0x6e, 0xb3, 0x06, 0x8d, 0x04, 0x0d, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x70, 0x64, 0x08, 0x3d, 0x68, 0x24, 0x68, 0xb8, 0x01, 0x78, 0x0b, 0x93, 0xb3, 0x7b, 0x03, 0xa1, 0x0b, 0x9b, 0x5b, 0x63, 0x01, 0x31, 0x93, 0x7b, 0x6b, 0x03, 0x79, 0xaa, 0xa3, 0x9b, 0x4b, 0x23, 0x2b, 0xdb, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x68, 0x24, 0x68, 0x78, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xe9, 0x6a, 0x63, 0x83, 0xa0, 0xfd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x61, 0x6b, 0x63, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0x75, 0x6d, 0x6c, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xe0, 0x39, 0x59, 0x1b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0x95, 0x6d, 0x6c, 0xf8, 0x73, 0x69, 0xc0, 0x3f, 0x7b, 0x7b, 0x33, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xb3, 0xc5, 0x36, 0x36, 0xfc, 0x3b, 0xbf, 0x06, 0x0f, 0x56, 0x07, 0xa9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x63, 0xd9, 0x36, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0xcb, 0x31, 0x40, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x73, 0xd4, 0x36, 0x0e, 0x9e, 0x86, 0x01, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xa9, 0x71, 0x1b, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x83, 0x6e, 0xe3, 0xe0, 0x71, 0x70, 0x1f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0xef, 0x6d, 0x6c, 0xf8, 0x73, 0x69, 0x70, 0x78, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x2d, 0x6f, 0x63, 0xc3, 0x17, 0x35, 0x1b, 0xea, 0x78, 0xe0, 0xd5, 0xd9, 0x29, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x18, 0xb8, 0xb1, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xf3, 0x07, 0x37, 0x0e, 0x9e, 0x3f, 0xf7, 0xb1, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xf1, 0xe2, 0xc6, 0x86, 0x3f, 0x97, 0x06, 0x87, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x9b, 0x12, 0x37, 0x0e, 0xde, 0x11, 0xfb, 0x51, 0x87, 0x53, 0x6c, 0x0d, 0xde, 0x5c, 0x08, 0xb2, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0xc1, 0x91, 0x21, 0xf4, 0xe0, 0xcd, 0x85, 0x20, 0x0d, 0xe0, 0xb7, 0x56, 0xc6, 0x66, 0x97, 0xe6, 0x06, 0x32, 0x47, 0x17, 0x36, 0xb6, 0xb6, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0xe6, 0x42, 0x90, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x74, 0xc8, 0x8d, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x2e, 0xca, 0x8d, 0x83, 0x90, 0x32, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x0f, 0x73, 0x63, 0xc3, 0xbf, 0xf3, 0x6b, 0xf0, 0x8c, 0x65, 0x90, 0xea, 0x70, 0x8a, 0xd5, 0x0a, 0xf0, 0x9d, 0xb1, 0xbd, 0x89, 0x85, 0xb1, 0xb3, 0x80, 0x3f, 0x16, 0x36, 0x57, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x70, 0x64, 0x08, 0x3d, 0x78, 0x41, 0x43, 0x48, 0x03, 0xf8, 0x9e, 0xb1, 0xbd, 0x89, 0x85, 0xb1, 0x81, 0xd8, 0x95, 0xc9, 0xcd, 0xa5, 0xbd, 0xb9, 0x6d, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xbc, 0xa0, 0x21, 0x64, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xc5, 0x73, 0x63, 0x83, 0xa0, 0xfd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x21, 0x74, 0x63, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x47, 0x8d, 0x6e, 0x1c, 0x9c, 0xd2, 0x5a, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x49, 0xdd, 0xd8, 0xf0, 0xe7, 0xd2, 0xe0, 0xf0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xb6, 0xe9, 0xc6, 0xc1, 0x91, 0xaf, 0xb5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xe3, 0x5d, 0x37, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x4e, 0xec, 0xc6, 0xc1, 0xfa, 0x88, 0xf4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x33, 0x71, 0x37, 0x36, 0xfc, 0xb9, 0x34, 0x38, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x64, 0xbb, 0x71, 0x70, 0xde, 0x3c, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x7c, 0xde, 0x8d, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xf4, 0xbb, 0x71, 0x70, 0xe2, 0x5a, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xa2, 0x78, 0x63, 0xc3, 0x9f, 0x4b, 0x83, 0xc3, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xc9, 0xc2, 0x1b, 0x07, 0x65, 0x96, 0x6e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0x20, 0x6f, 0x6c, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x28, 0xe5, 0x8d, 0x83, 0x63, 0xf3, 0xea, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x25, 0xd0, 0x1b, 0x1b, 0xfe, 0x5c, 0x1a, 0x1c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x6e, 0xde, 0x38, 0x38, 0x83, 0xaf, 0xd6, 0x6a, 0xb0, 0x6a, 0xb0, 0x7f, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x23, 0x43, 0xe8, 0xc1, 0xaa, 0xc1, 0xfe, 0x06, 0xf0, 0x9b, 0xab, 0x13, 0x9b, 0x1b, 0x93, 0x4b, 0x83, 0xa3, 0x4b, 0x7b, 0x73, 0xdb, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x58, 0x35, 0xd8, 0xbf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x6e, 0xbd, 0xb1, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xa3, 0xbd, 0x71, 0x70, 0x2c, 0x1a, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xd5, 0x7b, 0x63, 0xc3, 0xbf, 0xf3, 0x0b, 0xf8, 0x62, 0x6f, 0x6e, 0x65, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x25, 0xbe, 0x71, 0xd0, 0xb6, 0xf5, 0xf8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x9d, 0xe5, 0x1b, 0x07, 0x67, 0x24, 0xd4, 0x56, 0xc0, 0x17, 0x2b, 0x0b, 0x6b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x38, 0x32, 0x84, 0x1e, 0x3c, 0xc8, 0x27, 0xa4, 0x01, 0xbc, 0xce, 0xd8, 0xde, 0xc4, 0xc2, 0xd8, 0x40, 0xdc, 0xc2, 0xda, 0xca, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x1e, 0xe4, 0x13, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xb2, 0xbe, 0xb1, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x03, 0xdb, 0x37, 0x36, 0xfc, 0x3b, 0xbf, 0x80, 0x2f, 0x56, 0x16, 0xb6, 0xd6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xc9, 0xf4, 0x1b, 0x1b, 0xfe, 0x5c, 0x1a, 0x7c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x93, 0xdf, 0x38, 0x38, 0x23, 0xa1, 0x36, 0x0b, 0xf8, 0x70, 0x61, 0x67, 0xe5, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0x47, 0x86, 0xd0, 0x83, 0xd7, 0x2d, 0x85, 0x34, 0x80, 0x5f, 0x9d, 0x1b, 0x5d, 0x1e, 0x5c, 0x19, 0x19, 0xc8, 0x58, 0xd8, 0x59, 0xd9, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0xeb, 0x96, 0x42, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xeb, 0xf3, 0x37, 0x36, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x6b, 0xfa, 0x37, 0x0e, 0x5e, 0xc7, 0xf0, 0xd1, 0x2c, 0xe0, 0x87, 0xc9, 0x8d, 0xa1, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x1c, 0x19, 0x42, 0x0f, 0xde, 0x4b, 0x15, 0xd2, 0x00, 0x9e, 0x6e, 0x6f, 0x64, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0xef, 0xa5, 0x0a, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x11, 0xe0, 0xd8, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x2b, 0xe0, 0xd8, 0xf0, 0xb6, 0xce, 0x80, 0x1f, 0x86, 0x97, 0xc6, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xa4, 0x02, 0xc7, 0x86, 0x2f, 0x6a, 0x36, 0xd4, 0xf1, 0xc0, 0xab, 0xb3, 0x4b, 0x3a, 0x9c, 0x62, 0x0b, 0xf8, 0x63, 0x61, 0x67, 0xe5, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0x47, 0x86, 0xd0, 0x83, 0xd7, 0x85, 0x85, 0x34, 0x80, 0x57, 0x5b, 0x98, 0xdc, 0x5a, 0x19, 0x19, 0x88, 0x5d, 0xd8, 0x5c, 0xd9, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0xeb, 0xc2, 0x42, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xf3, 0x25, 0x38, 0x36, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x8b, 0x2c, 0x38, 0x0e, 0x5e, 0xc7, 0xf0, 0xb1, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x91, 0x06, 0xc7, 0x41, 0xb3, 0xdb, 0x51, 0xad, 0x06, 0x2f, 0x39, 0x0a, 0xd9, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xe0, 0xc8, 0x10, 0x7a, 0xf0, 0x92, 0xa3, 0x90, 0x06, 0xf0, 0x3d, 0x63, 0x7b, 0x13, 0x0b, 0x63, 0x03, 0x19, 0x7b, 0x73, 0xa3, 0x2b, 0xc3, 0xa3, 0xdb, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0xc9, 0x51, 0xc8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xe7, 0x07, 0xc7, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xbb, 0x08, 0xc7, 0xc1, 0xb1, 0x68, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x7a, 0x13, 0x8e, 0x83, 0xb6, 0xad, 0xc7, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x52, 0xe1, 0xd8, 0xf0, 0xef, 0xfc, 0x02, 0x3e, 0x59, 0xd9, 0xdc, 0x5a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0xb7, 0x70, 0x6c, 0xf8, 0x77, 0x7e, 0x0d, 0x5e, 0xd0, 0x10, 0x52, 0x1d, 0x4e, 0xb1, 0x35, 0x78, 0x79, 0x57, 0xc8, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0x47, 0x86, 0xd0, 0x83, 0x97, 0x77, 0x85, 0x34, 0x80, 0xbf, 0x59, 0x9d, 0x1b, 0x59, 0x58, 0x5b, 0x99, 0x1b, 0x5d, 0x18, 0x1b, 0x88, 0xdb, 0x1b, 0x59, 0xd9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x85, 0x0c, 0xc7, 0x86, 0x87, 0xf3, 0x37, 0x08, 0x55, 0x84, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x00, 0x1b, 0x8e, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xab, 0xc3, 0xb1, 0xe1, 0xcf, 0xa5, 0x0d, 0x46, 0x02, 0xc3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x19, 0x0e, 0xc7, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x84, 0x0f, 0xc7, 0x41, 0xd9, 0x84, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x9e, 0x10, 0xc7, 0x41, 0x60, 0x43, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x33, 0x12, 0xc7, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb2, 0x34, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xcf, 0x88, 0x63, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x87, 0x89, 0xe3, 0xa0, 0x44, 0xac, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x34, 0x8a, 0xe3, 0xe0, 0xa8, 0x0d, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xca, 0x15, 0xc7, 0x41, 0x08, 0x3e, 0xd4, 0x6a, 0xd0, 0xf4, 0xf5, 0xf8, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0x47, 0x86, 0xd0, 0x83, 0xa6, 0xaf, 0xc7, 0x3b, 0x68, 0x08, 0x7c, 0x7c, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xa0, 0xe9, 0xeb, 0xf1, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x70, 0x2e, 0x8e, 0x83, 0x63, 0xab, 0xeb, 0x6a, 0x70, 0x8a, 0x3c, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xe0, 0xc8, 0x10, 0x7a, 0x70, 0x8a, 0x3c, 0x6d, 0x00, 0x9e, 0xe6, 0xf2, 0xda, 0xc4, 0xde, 0xd8, 0xd2, 0xc6, 0x40, 0xc6, 0xde, 0xdc, 0xe8, 0xca, 0xdc, 0xe8, 0x40, 0xe8, 0xf2, 0xe0, 0xca, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x4e, 0x91, 0xa7, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x01, 0x62, 0x1c, 0x07, 0xe7, 0xcd, 0xd3, 0x59, 0xc0, 0x27, 0x7b, 0x1b, 0x5b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x38, 0x32, 0x84, 0x1e, 0x3c, 0x58, 0x34, 0xa4, 0x01, 0x7c, 0xdb, 0xca, 0xe6, 0xe6, 0xc2, 0xce, 0xca, 0x40, 0xe8, 0xc2, 0xe4, 0xce, 0xca, 0xe8, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x1e, 0x2c, 0x1a, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x71, 0xc6, 0xb1, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xa6, 0xc6, 0x71, 0x50, 0x7a, 0xd3, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xf3, 0xc6, 0x71, 0x70, 0x6c, 0x75, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x63, 0x8e, 0xe3, 0x60, 0xbd, 0xd6, 0x73, 0x87, 0x53, 0x6c, 0x01, 0xff, 0xad, 0xad, 0xcc, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xe0, 0xc8, 0x10, 0x7a, 0xf0, 0xe4, 0xd7, 0x90, 0x06, 0xe0, 0xdb, 0xac, 0x8e, 0x8d, 0x2d, 0xaf, 0x25, 0xae, 0x2e, 0x8c, 0x2d, 0xcd, 0x2c, 0xad, 0x8c, 0x0c, 0xc4, 0x2d, 0xac, 0xad, 0x6c, 0x0e, 0x2e, 0x6c, 0xac, 0x0c, 0x04, 0x2e, 0x8c, 0x0e, 0x6d, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0xc9, 0xaf, 0x21, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x81, 0x78, 0x1c, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xa4, 0x8f, 0x63, 0xc3, 0x9f, 0x4b, 0x1b, 0x2c, 0x2f, 0x82, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xd6, 0xe3, 0xd8, 0xf0, 0xef, 0xfc, 0x02, 0xbe, 0x5d, 0x5a, 0xd9, 0x5d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x47, 0x12, 0x72, 0x6c, 0xf8, 0x73, 0x69, 0xc0, 0x13, 0x2b, 0x6b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x83, 0x04, 0x39, 0x36, 0xfc, 0x3b, 0xbf, 0x06, 0x0f, 0xf2, 0x09, 0xa9, 0x66, 0x01, 0xff, 0x2c, 0xcc, 0xed, 0xdc, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xe0, 0xc8, 0x10, 0x7a, 0xf0, 0x34, 0xe1, 0x90, 0x06, 0xe0, 0x29, 0xcd, 0xcd, 0x2c, 0xcd, 0x2d, 0x8d, 0xae, 0x0c, 0x64, 0xae, 0x8c, 0x0e, 0xe4, 0xcd, 0x0c, 0x04, 0xae, 0xac, 0x4c, 0x6e, 0x6e, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0x69, 0xc2, 0x21, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x6d, 0x8a, 0x1c, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb9, 0x8d, 0x1c, 0x07, 0x65, 0x13, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb9, 0x91, 0x1c, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x45, 0x94, 0x1c, 0x07, 0x25, 0xe2, 0xfb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x49, 0x98, 0x1c, 0x07, 0x6d, 0x5b, 0x8f, 0xd7, 0x6a, 0xf0, 0x0a, 0x9d, 0x90, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x8e, 0x0c, 0xa1, 0x07, 0xaf, 0xd0, 0x09, 0x69, 0x00, 0x3e, 0xde, 0xe0, 0xc2, 0xe2, 0xea, 0xca, 0x40, 0xc8, 0xea, 0xc6, 0xe8, 0x40, 0xd0, 0xc2, 0xdc, 0xc8, 0xd8, 0xca, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x5e, 0xa1, 0x13, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xd7, 0xc9, 0x71, 0x50, 0x66, 0xe9, 0x1e, 0x4e, 0xb1, 0xd6, 0xe0, 0xf1, 0xba, 0x1f, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x1c, 0x19, 0x42, 0x0f, 0x1e, 0xaf, 0xfb, 0xd1, 0x00, 0xe8, 0x60, 0x56, 0xe7, 0x46, 0x16, 0xd6, 0x56, 0xe6, 0x46, 0x17, 0xc6, 0x06, 0xe2, 0xf6, 0x46, 0x56, 0xc6, 0x02, 0x22, 0x57, 0x36, 0x56, 0x27, 0x37, 0x97, 0x66, 0x57, 0x06, 0x82, 0x42, 0x27, 0x97, 0x56, 0x96, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x07, 0xe5, 0xd8, 0xf0, 0x70, 0xfe, 0x06, 0xa1, 0x8a, 0xb0, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x4d, 0xca, 0xb1, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xeb, 0x52, 0x39, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0x48, 0x60, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x39, 0xe5, 0xd8, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x66, 0xe5, 0x38, 0x28, 0x9b, 0x30, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x86, 0xe5, 0x38, 0x08, 0x6c, 0x88, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xb8, 0xe5, 0xd8, 0xf0, 0xe7, 0xd2, 0x80, 0x47, 0x96, 0x26, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0xd2, 0x72, 0x6c, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0xe9, 0x72, 0x1c, 0x94, 0x88, 0xf5, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0xfd, 0x72, 0x1c, 0x1c, 0xb5, 0x41, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x19, 0xe6, 0xd8, 0xf0, 0xef, 0xfc, 0xc1, 0x18, 0x43, 0xab, 0xd5, 0xe0, 0xcd, 0x78, 0x21, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x1c, 0x19, 0x42, 0x0f, 0xde, 0x8c, 0x17, 0xd2, 0x00, 0xde, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0x6f, 0xc6, 0x0b, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x41, 0xe6, 0x38, 0x38, 0x6f, 0x9e, 0x1e, 0x4e, 0xb1, 0x35, 0x78, 0xb1, 0x0f, 0xc8, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0x47, 0x86, 0xd0, 0x83, 0x17, 0xfb, 0x80, 0x34, 0x80, 0xd7, 0x9b, 0x5c, 0x5a, 0x99, 0x1b, 0x5d, 0x18, 0x5d, 0xda, 0x9b, 0xdb, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x8b, 0x7d, 0x40, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x9b, 0x99, 0x39, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x5d, 0x34, 0xc7, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0xb7, 0x3a, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xe4, 0x99, 0xe3, 0xa0, 0x6d, 0xeb, 0xf1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x43, 0xb0, 0x39, 0x36, 0xfc, 0xb9, 0xb4, 0x41, 0x02, 0xe1, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x74, 0x35, 0xc7, 0xc1, 0x91, 0xaf, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x2e, 0x70, 0x8e, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x65, 0x6e, 0xf9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x81, 0x37, 0xc7, 0xc1, 0x73, 0xef, 0x41, 0x3a, 0x9c, 0x62, 0x6b, 0xf0, 0x74, 0x86, 0x8f, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xa7, 0x33, 0x7c, 0x34, 0x00, 0x2f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x1d, 0xe6, 0x1c, 0x1b, 0x1e, 0xce, 0xdf, 0xf0, 0xe0, 0xce, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x4a, 0x3a, 0xc7, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xf5, 0x3a, 0xc7, 0x41, 0xe9, 0x4d, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xf7, 0x3b, 0xc7, 0x86, 0x7f, 0xe7, 0xd7, 0xe0, 0x14, 0x79, 0x5a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0xce, 0x73, 0x1c, 0x1c, 0x3a, 0x2d, 0x5b, 0x0d, 0x1e, 0x06, 0x82, 0xb1, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x6b, 0xcf, 0xb1, 0xe1, 0x8d, 0xbb, 0x83, 0x87, 0x86, 0x82, 0x1c, 0x4e, 0xb1, 0x56, 0xc0, 0x6f, 0x2b, 0xa3, 0x0b, 0x67, 0x01, 0x1f, 0x2d, 0x0f, 0xee, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x78, 0x8a, 0x88, 0x48, 0x03, 0xf0, 0x46, 0x97, 0x07, 0x57, 0xd6, 0x12, 0x36, 0x37, 0xf7, 0x36, 0x96, 0x16, 0x46, 0x57, 0x46, 0x06, 0x22, 0x56, 0x97, 0xc6, 0x46, 0x56, 0x26, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x97, 0xcf, 0xb1, 0xe1, 0xe1, 0xfc, 0x0d, 0x0f, 0xee, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0xf1, 0x73, 0x6c, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0xfc, 0x73, 0x1c, 0x94, 0xde, 0xf4, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0x0c, 0x74, 0x1c, 0x2c, 0x9b, 0x71, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xda, 0xa0, 0xe3, 0xe0, 0xd0, 0x69, 0xd9, 0x6a, 0xf0, 0xb0, 0x10, 0x91, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x8e, 0x0c, 0xa1, 0x07, 0x0f, 0x0b, 0x11, 0x69, 0x00, 0x8f, 0xb6, 0x32, 0xba, 0xb0, 0x16, 0xbb, 0xb0, 0xb9, 0xb2, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0x87, 0x85, 0x88, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0x2b, 0x74, 0x6c, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0x38, 0x74, 0x1c, 0x94, 0xde, 0xf4, 0x1d, 0x4e, 0xb1, 0x05, 0xfc, 0xb6, 0x30, 0xbd, 0x72, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x23, 0x43, 0xe8, 0xc1, 0x23, 0x73, 0x44, 0x1a, 0x80, 0x0f, 0xbb, 0xb0, 0xb9, 0x32, 0x16, 0x90, 0x37, 0x39, 0x90, 0xb6, 0x32, 0xba, 0xb0, 0x16, 0xbb, 0xb0, 0xb9, 0xb2, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0x47, 0xe6, 0x88, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0x4d, 0x74, 0x6c, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0x5a, 0x74, 0x1c, 0xac, 0x82, 0x4c, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x64, 0xa3, 0xe3, 0xa0, 0xd9, 0xed, 0xa8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xe3, 0x3c, 0x3a, 0x36, 0xfc, 0x3b, 0xbf, 0x06, 0x0f, 0x0b, 0x11, 0xa9, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x6b, 0x0d, 0xda, 0xf2, 0xa5, 0x9e, 0x05, 0x7c, 0xb9, 0xb7, 0x37, 0x7a, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x23, 0x43, 0xe8, 0xc1, 0xa3, 0x91, 0x44, 0x1a, 0xc0, 0x53, 0x2e, 0xec, 0x0e, 0xc4, 0x2d, 0xac, 0xad, 0x6c, 0x0e, 0x2e, 0x6c, 0xac, 0x6c, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0xd1, 0x48, 0x22, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x49, 0x23, 0x1d, 0x1b, 0x84, 0xd3, 0xd8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xd5, 0x25, 0x1d, 0x07, 0x45, 0x2a, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x1f, 0x4a, 0xc7, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xf2, 0x4a, 0xc7, 0x41, 0xd9, 0x84, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xf5, 0x4b, 0xc7, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x97, 0x4c, 0xc7, 0x41, 0xd9, 0x84, 0x59, 0x2b, 0xe0, 0xa3, 0xbd, 0x89, 0xbd, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xef, 0xc4, 0x12, 0x69, 0x00, 0x3e, 0x4a, 0xe6, 0xde, 0xcc, 0xe8, 0x40, 0xe8, 0xc2, 0xe6, 0xd6, 0x40, 0xc4, 0xea, 0xd2, 0xd8, 0xc8, 0xca, 0xe4, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x03, 0x6e, 0x3a, 0x36, 0x3c, 0x9c, 0xbf, 0xe1, 0xc1, 0x9d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x16, 0x9d, 0x8e, 0x0d, 0x82, 0xcd, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x46, 0xa1, 0x8e, 0x0d, 0x82, 0xf6, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x68, 0xa2, 0x8e, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x72, 0xd4, 0xb1, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0xe5, 0x83, 0xbf, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0x3a, 0x75, 0x6c, 0xf8, 0x73, 0x69, 0x70, 0x78, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x8c, 0xa9, 0xe3, 0x20, 0x4c, 0xc7, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x46, 0x9e, 0x8e, 0x83, 0x43, 0xa7, 0x65, 0x2b, 0xe0, 0xdf, 0xa5, 0xd1, 0x95, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xef, 0x61, 0x13, 0x69, 0x00, 0x5e, 0xd7, 0xca, 0xe4, 0xdc, 0xca, 0xd8, 0x40, 0xc2, 0xc6, 0xe8, 0xd2, 0xde, 0xdc, 0x5e, 0xca, 0xe4, 0xe4, 0xde, 0xe4, 0x40, 0xc4, 0xea, 0xd2, 0xd8, 0xc8, 0xca, 0xe4, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x1b, 0xa7, 0x3a, 0x36, 0x3c, 0x9c, 0xbf, 0x86, 0xe7, 0x49, 0x06, 0xfc, 0xb3, 0x34, 0x33, 0xba, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x68, 0xab, 0x8e, 0x0d, 0x82, 0xf6, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x54, 0xb3, 0x8e, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x91, 0xd6, 0xb1, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x57, 0x93, 0x75, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x0d, 0xd7, 0xb1, 0xe1, 0xcf, 0xa5, 0x0d, 0x1e, 0xac, 0x0e, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xe6, 0xd6, 0x71, 0xf0, 0x44, 0x76, 0x90, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x5b, 0xf0, 0x3a, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0x7b, 0xd8, 0x44, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x73, 0xeb, 0x3a, 0x36, 0x58, 0x46, 0x60, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xb7, 0xd7, 0xb1, 0xe1, 0xa3, 0xf6, 0x0d, 0xd6, 0xab, 0x54, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0xf4, 0x07, 0xc6, 0x02, 0xa1, 0x09, 0xfb, 0x81, 0xd0, 0x84, 0xb6, 0x0d, 0x82, 0xcd, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x08, 0x4d, 0x68, 0x18, 0x08, 0x4d, 0xa8, 0xd9, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0x0b, 0xa7, 0xe3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0x40, 0x68, 0x42, 0xcf, 0x40, 0x68, 0x42, 0xd9, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x9e, 0xd4, 0xd5, 0xd1, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x88, 0x5f, 0xc7, 0xc1, 0xe3, 0xe7, 0x43, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x3c, 0xb1, 0x63, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0x31, 0x76, 0x1c, 0x3c, 0x32, 0x51, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x06, 0xca, 0x8e, 0x0d, 0x7f, 0x2e, 0x0d, 0xf8, 0x77, 0x69, 0x72, 0xe5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x68, 0x64, 0xc7, 0x86, 0x7f, 0xe7, 0xd7, 0xe0, 0x15, 0x95, 0x22, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xf3, 0x66, 0xc7, 0x86, 0x3f, 0x97, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x95, 0xd9, 0x71, 0xb0, 0xd4, 0xe0, 0xb9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x03, 0x41, 0x3b, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xba, 0x68, 0xc7, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x1a, 0xf6, 0xb9, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x54, 0xb5, 0x63, 0xc3, 0x9f, 0x4b, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x41, 0xed, 0x38, 0x58, 0x6a, 0xf0, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x3d, 0x59, 0x1d, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x74, 0xab, 0xe3, 0xe0, 0x1d, 0x8d, 0x22, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0x7b, 0x75, 0x6c, 0xf8, 0x73, 0x69, 0x83, 0x47, 0xd2, 0x89, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0x84, 0x75, 0x6c, 0xf8, 0x77, 0x7e, 0x83, 0x27, 0xd2, 0x89, 0x54, 0x2b, 0xe0, 0xcb, 0xbd, 0xbd, 0xb5, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xef, 0x58, 0x15, 0x69, 0x00, 0x1e, 0xce, 0xca, 0xdc, 0xca, 0xe4, 0xd2, 0xc6, 0x40, 0xdc, 0xc2, 0xda, 0xca, 0xe6, 0xe0, 0xc2, 0xc6, 0xca, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x83, 0x77, 0xb2, 0x8a, 0x0c, 0xe0, 0x5f, 0x96, 0x46, 0x87, 0x56, 0x26, 0x07, 0xe2, 0x16, 0xd6, 0x56, 0x36, 0x07, 0x17, 0x36, 0x56, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x4c, 0xdb, 0xb1, 0xe1, 0xe1, 0xfc, 0x0d, 0x0f, 0xee, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x47, 0xf7, 0x76, 0x6c, 0x10, 0x6a, 0x88, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0x00, 0x77, 0x6c, 0x50, 0x4a, 0x88, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x2a, 0xdc, 0x71, 0x50, 0x50, 0x64, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0x15, 0x77, 0x6c, 0xb0, 0xb8, 0x30, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x1c, 0x0e, 0xf9, 0xe0, 0x70, 0x18, 0x1c, 0x84, 0xe9, 0xd8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x08, 0x6e, 0xc7, 0x41, 0x41, 0x91, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xb7, 0xdb, 0xb1, 0x41, 0x38, 0x8d, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0xf4, 0x07, 0xc6, 0x82, 0xc7, 0xf1, 0x83, 0xd3, 0x21, 0xd9, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x78, 0x1c, 0xb2, 0xc1, 0xe3, 0x70, 0x62, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x80, 0x97, 0xad, 0x2c, 0x6c, 0x6d, 0xae, 0x8c, 0x6e, 0xc3, 0x9f, 0x4b, 0x03, 0x1e, 0x5b, 0xde, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0xf4, 0x07, 0xc6, 0x82, 0xc7, 0x21, 0x1f, 0x3c, 0x0e, 0x9b, 0x0d, 0xff, 0xce, 0xaf, 0xc1, 0xd3, 0x84, 0x43, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x5c, 0x0e, 0xd9, 0xe0, 0x72, 0xf8, 0xb1, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x0f, 0x9c, 0xdc, 0x9b, 0x5d, 0x99, 0x5b, 0x98, 0xdb, 0x58, 0xd9, 0x86, 0x3f, 0x97, 0x36, 0x68, 0x72, 0x01, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0x97, 0x43, 0x3e, 0xb8, 0x1c, 0x36, 0x07, 0x67, 0x24, 0xd4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0xf0, 0x39, 0x64, 0x83, 0xcf, 0xe1, 0xce, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x3c, 0xc0, 0x95, 0xc9, 0xcd, 0xc1, 0x95, 0x8d, 0xd1, 0xa5, 0xd9, 0x95, 0xb1, 0x80, 0xc0, 0x85, 0xd1, 0xa1, 0x6d, 0xf8, 0x77, 0x7e, 0x0d, 0x9e, 0xfc, 0x1a, 0x52, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0xe0, 0x75, 0xf4, 0xe0, 0xc1, 0xb5, 0x1d, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0x78, 0x1d, 0x3f, 0x78, 0x1d, 0x7e, 0x6c, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0xe3, 0xa7, 0x03, 0x52, 0xe7, 0xb6, 0xe6, 0xf6, 0x76, 0xe7, 0x76, 0x50, 0x36, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0xf4, 0x07, 0xc6, 0x82, 0xdb, 0xd1, 0x83, 0x07, 0xd7, 0x76, 0x6c, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0xe0, 0x76, 0xfc, 0xe0, 0x76, 0x78, 0xb2, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x9f, 0x1f, 0x88, 0x9f, 0x0e, 0x48, 0x9a, 0x9b, 0x5d, 0x18, 0x5b, 0x1a, 0xd9, 0x41, 0xd9, 0x84, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x7e, 0x47, 0x0f, 0x1e, 0x5c, 0xdb, 0xb1, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0xf4, 0x07, 0xc6, 0x82, 0xdf, 0x31, 0x83, 0xdf, 0x21, 0x38, 0x78, 0x1d, 0xc3, 0xc7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0xf8, 0x1d, 0x92, 0xc1, 0xef, 0x10, 0x1d, 0x1c, 0x3a, 0x2d, 0xab, 0xc3, 0x29, 0xb6, 0x80, 0x3f, 0x16, 0x26, 0x47, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x70, 0x64, 0x08, 0x3d, 0x78, 0xb1, 0xbc, 0x48, 0x03, 0xf0, 0x44, 0x17, 0x76, 0x76, 0x56, 0x46, 0xc6, 0x02, 0x52, 0xe7, 0x46, 0x97, 0x07, 0x57, 0x46, 0x06, 0x52, 0x66, 0x57, 0xe6, 0x46, 0xb7, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0x62, 0x79, 0x91, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x68, 0xe5, 0x8e, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x0c, 0xe7, 0x8e, 0x83, 0xd7, 0x31, 0x7c, 0xb4, 0x02, 0x7e, 0x5b, 0xd8, 0xdc, 0xbc, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0xc1, 0x91, 0x21, 0xf4, 0xe0, 0x2d, 0xfd, 0x22, 0x0d, 0xe0, 0xd7, 0x56, 0xd6, 0xf6, 0x26, 0x97, 0x07, 0x52, 0x37, 0x17, 0x76, 0x56, 0xb6, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0x96, 0x7e, 0x91, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xce, 0xea, 0x8e, 0x0d, 0x42, 0x0d, 0x71, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0xfc, 0x0c, 0xf9, 0xe0, 0x67, 0x18, 0x6d, 0x90, 0x94, 0x16, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0xf4, 0x07, 0xc6, 0x82, 0x9f, 0x61, 0x71, 0xf0, 0x1e, 0x83, 0x91, 0x0d, 0x96, 0x39, 0xc9, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0xe0, 0x67, 0xd8, 0x1c, 0xbc, 0xc7, 0x60, 0xe4, 0xa0, 0xa0, 0xc8, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x9a, 0xee, 0xd8, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xc8, 0xee, 0x38, 0x28, 0xbd, 0xe9, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xe8, 0xee, 0x38, 0x38, 0x01, 0x89, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x0d, 0xde, 0xb1, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x36, 0xde, 0x71, 0xb0, 0x0a, 0x32, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x30, 0xf4, 0x8e, 0x83, 0x30, 0x1d, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x83, 0xbd, 0x63, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xd6, 0xbd, 0xe3, 0x20, 0xa4, 0x4c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x95, 0xef, 0xd8, 0xf0, 0xef, 0xfc, 0x1a, 0xbc, 0xa5, 0x5f, 0xa4, 0xaa, 0xc3, 0x29, 0xb6, 0x80, 0x2f, 0xf7, 0xf6, 0xb6, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x70, 0x64, 0x08, 0x3d, 0x78, 0x11, 0xc7, 0x48, 0x03, 0xd0, 0xde, 0x56, 0x46, 0x17, 0xd6, 0xe2, 0x16, 0xd6, 0x56, 0x36, 0x07, 0x17, 0x36, 0x56, 0x06, 0x82, 0x32, 0x57, 0x07, 0x57, 0x26, 0x07, 0x12, 0x46, 0x66, 0x17, 0xe6, 0x36, 0x56, 0x46, 0x96, 0xda, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0x11, 0xc7, 0xc8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x2e, 0x7e, 0xc7, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xbe, 0x6d, 0x65, 0x74, 0x61, 0x2d, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x15, 0xfc, 0x1d, 0x1b, 0xde, 0xd6, 0xd9, 0xe0, 0x1d, 0xab, 0x22, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x05, 0xe0, 0x71, 0xf0, 0x24, 0x23, 0x91, 0x0e, 0xa7, 0xd8, 0x1a, 0x3c, 0x58, 0x1d, 0x64, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x23, 0x43, 0xe8, 0xc1, 0x83, 0xd5, 0x41, 0x1a, 0x00, 0x5f, 0xc7, 0xe4, 0xc2, 0xe6, 0xd0, 0x40, 0xd8, 0xc2, 0xc4, 0xca, 0xd8, 0x40, 0xc2, 0xdc, 0xc8, 0x40, 0xe8, 0xe4, 0xc2, 0xc6, 0xca, 0x40, 0xb0, 0xb0, 0x40, 0xcc, 0xc2, 0xd2, 0xd8, 0x5e, 0xe4, 0xea, 0xd2, 0xdc, 0x5e, 0xc6, 0xe4, 0xea, 0xc8, 0x5e, 0xcc, 0xd8, 0xc2, 0xee, 0x5e, 0xd8, 0xc2, 0xc6, 0xd6, 0x5e, 0xda, 0xd2, 0xe6, 0xe6, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x1e, 0xac, 0x0e, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x53, 0xe0, 0xb1, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xe3, 0x13, 0x3c, 0x36, 0xfc, 0xb9, 0x34, 0xe0, 0xb7, 0xbd, 0xd1, 0x95, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x99, 0x07, 0x1e, 0x07, 0xeb, 0xb5, 0x9e, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x80, 0xf0, 0xd8, 0xf0, 0xe7, 0xd2, 0x06, 0x27, 0xca, 0xd4, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xda, 0x06, 0x8f, 0x83, 0x06, 0xc5, 0x03, 0x9b, 0x35, 0x78, 0xa1, 0xe3, 0xc7, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0x47, 0x86, 0xd0, 0x83, 0x17, 0x3a, 0x7e, 0x34, 0x80, 0xff, 0x58, 0x58, 0xdd, 0x5c, 0x19, 0x48, 0x98, 0x1b, 0x19, 0x48, 0xd8, 0x18, 0x5d, 0xda, 0x9b, 0xdb, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x0b, 0x1d, 0x3f, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x93, 0x2e, 0x3c, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xfe, 0x86, 0xc7, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x99, 0xba, 0xc7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x69, 0x86, 0xc7, 0xc1, 0xd3, 0xd3, 0x3d, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x19, 0xf1, 0xd8, 0xf0, 0xe7, 0xd2, 0x80, 0x2f, 0x16, 0xc6, 0xc6, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0x83, 0x78, 0x6c, 0xf8, 0x77, 0x7e, 0x0d, 0x5e, 0xee, 0x34, 0x52, 0xad, 0x06, 0xaf, 0xa8, 0x14, 0xd9, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xe0, 0xc8, 0x10, 0x7a, 0xf0, 0x8a, 0x4a, 0x91, 0x06, 0xf0, 0x2c, 0xb3, 0x2b, 0x73, 0xa3, 0x03, 0x81, 0x93, 0x2b, 0xa3, 0x2b, 0xc3, 0xa3, 0xdb, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0x45, 0xa5, 0xc8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x37, 0x8a, 0xc7, 0xc1, 0x19, 0x09, 0x75, 0x35, 0x78, 0x39, 0x06, 0xc8, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0x47, 0x86, 0xd0, 0x83, 0x97, 0x63, 0x80, 0x34, 0x80, 0xf7, 0x58, 0x98, 0x1c, 0x19, 0xc8, 0x5d, 0x1a, 0x1d, 0x1a, 0xc8, 0x58, 0x58, 0xdd, 0x5c, 0xd9, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0xcb, 0x31, 0x40, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x3b, 0x5c, 0x3c, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xb3, 0x8c, 0xc7, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x45, 0xa5, 0xc8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x1e, 0x8c, 0xc7, 0xc1, 0xbb, 0x2d, 0x45, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0xd2, 0xf1, 0xd8, 0xf0, 0xe7, 0xd2, 0x06, 0x2f, 0x96, 0x17, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xbf, 0xf1, 0xd8, 0xf0, 0xef, 0xfc, 0x1a, 0xbc, 0x58, 0x5e, 0xa4, 0x3a, 0x9c, 0x62, 0x0b, 0xf8, 0x72, 0x6f, 0x6f, 0xe6, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0x47, 0x86, 0xd0, 0x83, 0xd7, 0xa6, 0x8d, 0x74, 0xb0, 0x46, 0x8b, 0x7b, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0xb5, 0x69, 0x23, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x21, 0x40, 0x1e, 0x1b, 0x9e, 0x78, 0xdf, 0x60, 0x21, 0x16, 0xf7, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xdf, 0x90, 0xc7, 0xc1, 0x4b, 0x54, 0x46, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x3c, 0xf2, 0x38, 0x68, 0x76, 0x3b, 0xaa, 0x59, 0x83, 0x97, 0xa9, 0x7b, 0x6c, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x70, 0x64, 0x08, 0x3d, 0x78, 0x99, 0xba, 0x47, 0x03, 0xf8, 0x8e, 0x85, 0xd5, 0xcd, 0x85, 0xb1, 0x81, 0xa0, 0xa5, 0xcd, 0xd1, 0xbd, 0xc9, 0xe5, 0x6d, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xbc, 0x4c, 0xdd, 0x63, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x90, 0xc9, 0x63, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xfa, 0xc9, 0xe3, 0x20, 0xa4, 0x4c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x9e, 0xf2, 0x38, 0x78, 0xb7, 0xa5, 0x48, 0x87, 0x53, 0x6c, 0x0d, 0x5e, 0xee, 0x34, 0xb2, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0xc1, 0x91, 0x21, 0xf4, 0xe0, 0xe5, 0x4e, 0x23, 0x0d, 0xc0, 0x13, 0x59, 0x9e, 0x5b, 0x58, 0x5b, 0xda, 0x18, 0xc8, 0x5a, 0x99, 0x9c, 0x5b, 0x19, 0x1b, 0x48, 0xd8, 0x18, 0x5d, 0xda, 0x9b, 0xdb, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0xcb, 0x9d, 0x46, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x6b, 0xb2, 0x3c, 0x36, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x1b, 0xb9, 0x3c, 0x36, 0xbc, 0xad, 0xb3, 0xc1, 0x7b, 0xd8, 0x44, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x3c, 0xcc, 0x63, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0x9a, 0x79, 0x6c, 0xf8, 0x73, 0x69, 0x83, 0x07, 0x84, 0x7b, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0x91, 0x79, 0x1c, 0xac, 0xd7, 0x7a, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x98, 0xcd, 0x63, 0xc3, 0x9f, 0x4b, 0x03, 0x3e, 0x5d, 0xd8, 0xdc, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xa6, 0xe6, 0xb1, 0xe1, 0xdf, 0xf9, 0x35, 0x78, 0x64, 0x8e, 0x48, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x58, 0x9c, 0xc7, 0xc1, 0x2b, 0x26, 0x47, 0x9a, 0x35, 0x78, 0x4b, 0x6f, 0xc8, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0x47, 0x86, 0xd0, 0x83, 0xb7, 0xf4, 0x86, 0x34, 0x00, 0x4f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x70, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0x6f, 0xe9, 0x0d, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xb2, 0xf3, 0xd8, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x0b, 0xae, 0x4c, 0x6e, 0x0e, 0xae, 0x6c, 0x8c, 0x2e, 0xcd, 0xae, 0x6c, 0xc3, 0x07, 0xf3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0x1c, 0x7a, 0x1c, 0xac, 0xd7, 0x7a, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0xca, 0xf3, 0xd8, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x0d, 0x7e, 0x1e, 0x1b, 0xfe, 0x5c, 0xda, 0xa0, 0x45, 0x1c, 0xab, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xda, 0x3d, 0x8f, 0x83, 0xf5, 0x5a, 0xcf, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0x10, 0x7a, 0x6c, 0xf8, 0x73, 0x69, 0xc0, 0x1b, 0x0b, 0x93, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xab, 0x03, 0x3d, 0x0e, 0xd6, 0x6b, 0x3d, 0x77, 0x38, 0xc5, 0x16, 0xf0, 0xef, 0xd2, 0xdc, 0xc8, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xe7, 0xb0, 0x8e, 0x34, 0x00, 0x4f, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x4d, 0x8b, 0x1e, 0x1b, 0x1e, 0xce, 0xdf, 0x20, 0x61, 0x1a, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xd2, 0xd1, 0x63, 0x83, 0xa0, 0xfd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xb1, 0xd3, 0x63, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0x7f, 0x7a, 0x1c, 0x3c, 0x32, 0x51, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x14, 0x53, 0x8f, 0x0d, 0x7f, 0x2e, 0x0d, 0x0e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0x8e, 0x7a, 0x1c, 0x9c, 0x91, 0x50, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x70, 0xf5, 0xd8, 0xf0, 0xe7, 0xd2, 0xe0, 0xf1, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xe6, 0xaa, 0xc7, 0xc1, 0xa1, 0xd3, 0xb2, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xb3, 0x63, 0x3d, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x10, 0xad, 0xc7, 0xc1, 0xbb, 0x3c, 0x45, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xd3, 0xf5, 0xd8, 0xf0, 0xe7, 0xd2, 0xe0, 0xf0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xff, 0xad, 0xc7, 0xc1, 0xa1, 0xd3, 0xb2, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xfb, 0x21, 0x3d, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xd9, 0xa4, 0xc7, 0xc1, 0x3b, 0x1a, 0x45, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0xb2, 0xf4, 0xd8, 0xf0, 0xe7, 0xd2, 0xe0, 0xf0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x31, 0xa6, 0xc7, 0x86, 0x7f, 0xe7, 0x37, 0x7c, 0x1e, 0x54, 0xcd, 0x02, 0xbe, 0xdc, 0xdb, 0x9b, 0xbb, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xf0, 0xd6, 0xe6, 0x91, 0x06, 0xe0, 0x01, 0x2e, 0x4c, 0x8e, 0x2e, 0x2d, 0x8c, 0x0d, 0xc4, 0x2d, 0xac, 0xad, 0x6c, 0x0e, 0x2e, 0x6c, 0xac, 0x6c, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x23, 0x43, 0xe8, 0xc1, 0x5b, 0x9b, 0x47, 0x3a, 0x78, 0x12, 0xf4, 0xc8, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x5b, 0x9b, 0x47, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xdb, 0x91, 0x3d, 0x36, 0x08, 0x35, 0xc4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x9b, 0x96, 0x3d, 0x36, 0x28, 0x25, 0xc4, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x6e, 0xf6, 0x38, 0x28, 0x28, 0x32, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xbb, 0xa0, 0x3d, 0x36, 0x58, 0x5c, 0x98, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0x9e, 0x87, 0x7c, 0xf0, 0x3c, 0x0c, 0x0e, 0xc2, 0x74, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x6b, 0xd8, 0xe3, 0xa0, 0xa0, 0xc8, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x35, 0xf6, 0xd8, 0x20, 0x9c, 0xc6, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0x3c, 0xfa, 0x03, 0x63, 0xc1, 0xf5, 0xf8, 0xc1, 0xf5, 0x50, 0xb6, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x70, 0x3d, 0x04, 0x83, 0xeb, 0x61, 0xb0, 0xe1, 0xcf, 0xa5, 0x01, 0x8f, 0x2d, 0x6f, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0x3c, 0xfa, 0x03, 0x63, 0xc1, 0xf5, 0x10, 0x1e, 0xbc, 0xe0, 0x7c, 0xe4, 0xe0, 0xa1, 0xcb, 0x22, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x1e, 0xfd, 0x81, 0xb1, 0xe0, 0x7a, 0x58, 0x0c, 0xae, 0x87, 0xe5, 0x86, 0x3f, 0x97, 0x36, 0x68, 0x72, 0x01, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0xd7, 0xc3, 0xea, 0xe0, 0xcd, 0xec, 0x23, 0x07, 0x67, 0x24, 0xd4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0x70, 0x3d, 0x4c, 0x07, 0xd7, 0x43, 0xc5, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0xb1, 0x30, 0x79, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xe8, 0x0f, 0x8c, 0x05, 0xd7, 0xc3, 0xfc, 0xe0, 0x89, 0xf2, 0x23, 0x07, 0xeb, 0xb5, 0x9e, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0x3c, 0xfa, 0x03, 0x63, 0xc1, 0xf5, 0xd0, 0x31, 0xb8, 0x1e, 0xba, 0x36, 0xfc, 0xb9, 0x34, 0xe0, 0x89, 0x95, 0xb5, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x47, 0x7f, 0x60, 0x2c, 0xb8, 0x1e, 0x7a, 0x0e, 0x5e, 0x85, 0x3f, 0x72, 0xf0, 0x94, 0xe0, 0x90, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0xf0, 0x3d, 0x7a, 0xf0, 0xd0, 0x63, 0x8f, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xa3, 0x3f, 0x30, 0x16, 0x7c, 0x8f, 0x19, 0x7c, 0x0f, 0xc1, 0x41, 0xd9, 0x84, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0xd1, 0x1f, 0x18, 0x0b, 0xbe, 0x87, 0x64, 0xf0, 0x3d, 0x8c, 0x36, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x8f, 0xfe, 0xc0, 0x58, 0xf0, 0x3d, 0x44, 0x83, 0xef, 0x21, 0x3e, 0x28, 0x9b, 0x30, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0x3c, 0xfa, 0x03, 0x63, 0xc1, 0xf7, 0x90, 0x0f, 0xbe, 0x87, 0xcd, 0x86, 0x7f, 0xe7, 0xd7, 0xe0, 0x75, 0x61, 0x21, 0x55, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x6d, 0x38, 0x11, 0x36, 0x78, 0xf0, 0x06, 0xc6, 0x1a, 0xce, 0x91, 0x05, 0xc1, 0xe2, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0xac, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0xc1, 0xfb, 0x7e, 0x38, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0x0a, 0xff, 0xbe, 0x83, 0x80, 0xf7, 0x3f, 0x0e, 0x1d, 0xd2, 0x70, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x0e, 0x1e, 0xff, 0x40, 0x72, 0xe8, 0xa0, 0x71, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x10, 0x6c, 0x30, 0xf2, 0x1f, 0x16, 0x07, 0xc1, 0x1a, 0xbc, 0xa7, 0x81, 0x64, 0x41, 0xb0, 0xc1, 0xf3, 0x1a, 0x48, 0x0e, 0x4d, 0x81, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x0d, 0x56, 0xf1, 0xef, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x18, 0xff, 0x03, 0x07, 0x4f, 0x76, 0x20, 0x39, 0x0e, 0x1d, 0x5a, 0x80, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x07, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0x58, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x83, 0xc7, 0x36, 0x71, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xc1, 0x1b, 0x51, 0x3d, 0x86, 0xdf, 0x78, 0x3e, 0xfc, 0x06, 0xe3, 0x7f, 0xe0, 0xf8, 0x76, 0x1c, 0x3a, 0xa4, 0xe1, 0x06, 0xc1, 0x06, 0xef, 0xe8, 0x20, 0x39, 0x74, 0xd0, 0x38, 0x34, 0x7f, 0x39, 0x1e, 0x0f, 0x82, 0xc5, 0x05, 0xc1, 0xe2, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x76, 0x61, 0x37, 0x74, 0x1c, 0x59, 0xd8, 0x0d, 0xda, 0xff, 0x74, 0x3f, 0x58, 0xbf, 0x0b, 0x75, 0x38, 0xda, 0x0f, 0x8a, 0x17, 0x86, 0xe3, 0xf1, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x5c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0xf8, 0x05, 0xc9, 0x20, 0x3b, 0x08, 0x78, 0xff, 0xe3, 0xdb, 0x20, 0x58, 0x1c, 0x76, 0x83, 0xb1, 0xc9, 0xb9, 0x21, 0x75, 0x30, 0xfc, 0xc6, 0xe3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x05, 0xc1, 0x82, 0x60, 0x41, 0x32, 0x10, 0xb6, 0x83, 0xe1, 0x1f, 0x3b, 0x48, 0x06, 0xbb, 0x83, 0x31, 0x3a, 0x79, 0x50, 0x44, 0x9d, 0x0c, 0xbf, 0x20, 0x5a, 0x10, 0x0f, 0xbb, 0xb0, 0x1b, 0x8c, 0x7a, 0xc9, 0x0d, 0x31, 0x1c, 0x76, 0x61, 0x17, 0x6e, 0x83, 0x10, 0x00, 0x3f, 0x18, 0x8b, 0x9d, 0x87, 0xf5, 0xcd, 0x43, 0x3a, 0x77, 0x61, 0x17, 0x76, 0x83, 0x47, 0xc8, 0x12, 0x2c, 0xdc, 0xe2, 0x41, 0x7a, 0x98, 0xf7, 0xc1, 0x72, 0xdb, 0x9d, 0xc3, 0xd1, 0xbe, 0x20, 0x5a, 0xc8, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x06, 0xf6, 0xfa, 0x0e, 0xce, 0x79, 0xc7, 0x83, 0x64, 0x60, 0xa8, 0x0e, 0x7b, 0xb6, 0x07, 0x05, 0x53, 0xc9, 0x21, 0x55, 0x33, 0x88, 0x16, 0x3a, 0x08, 0x16, 0x04, 0x1b, 0xbc, 0xf6, 0x86, 0x64, 0x90, 0x0c, 0x0c, 0xd5, 0x61, 0xbb, 0xf7, 0xa0, 0x60, 0x2a, 0x39, 0xa4, 0x6a, 0x0e, 0xa9, 0x9a, 0xe3, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0xcc, 0x0f, 0x89, 0x99, 0xe3, 0xf9, 0xf1, 0xed, 0x78, 0xbc, 0x20, 0xd8, 0xa0, 0xa0, 0x16, 0x5b, 0x1c, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0x20, 0xd8, 0xa0, 0xa5, 0x82, 0x81, 0x41, 0x32, 0x50, 0xfc, 0x0e, 0x12, 0x13, 0x0d, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x37, 0x48, 0x0f, 0xf3, 0x1e, 0xf0, 0xd9, 0xea, 0xd8, 0xd8, 0x8e, 0x43, 0xc3, 0x6e, 0xd0, 0x3a, 0x1f, 0xc0, 0x0a, 0xb2, 0x35, 0xe4, 0xb1, 0x17, 0x07, 0xc1, 0x82, 0x64, 0x20, 0xfd, 0x73, 0x70, 0x12, 0x3a, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0xc2, 0x73, 0x70, 0x12, 0x3a, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x71, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x04, 0x78, 0x86, 0x91, 0xbd, 0xc9, 0xb9, 0xb5, 0xb8, 0xbd, 0xb5, 0xb0, 0xd5, 0xb1, 0xb1, 0xc3, 0x6f, 0x3c, 0x1f, 0x0f, 0xde, 0xe2, 0x44, 0x72, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x87, 0xdd, 0x90, 0xaf, 0x5d, 0x43, 0x0c, 0x07, 0xc1, 0x82, 0x64, 0xc8, 0x41, 0x90, 0xf3, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0x7c, 0x6e, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0xd8, 0x60, 0x79, 0x4a, 0xc9, 0x20, 0x19, 0xec, 0x0e, 0x06, 0x19, 0xe4, 0xc1, 0x53, 0x88, 0x48, 0x8e, 0x43, 0xc7, 0xa1, 0x43, 0x0c, 0x0f, 0x02, 0x13, 0x7b, 0x0d, 0x31, 0x1c, 0x04, 0x1b, 0xbc, 0x5c, 0x8a, 0xe4, 0x60, 0x44, 0xe1, 0x0e, 0x82, 0x05, 0xc1, 0x06, 0xcb, 0x53, 0x4a, 0x06, 0xc9, 0x60, 0x74, 0x30, 0xc8, 0x20, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xbc, 0x9c, 0x88, 0xe4, 0x30, 0x2e, 0xc7, 0xa1, 0xe1, 0x37, 0x18, 0xb6, 0x01, 0xc3, 0x6f, 0x30, 0xd8, 0x01, 0x86, 0x5f, 0x10, 0x2d, 0x58, 0x0f, 0xbb, 0x21, 0x5f, 0xbb, 0x21, 0x86, 0xc3, 0x6e, 0x30, 0x3a, 0xd6, 0x0f, 0xe9, 0xdc, 0xe3, 0xf1, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0x6d, 0xd8, 0x0a, 0x0c, 0x92, 0x81, 0xe2, 0x77, 0x50, 0x6c, 0x80, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x6e, 0x90, 0x1e, 0xe6, 0x3d, 0xe0, 0xeb, 0xd5, 0xcd, 0x95, 0x1d, 0x87, 0x86, 0xdd, 0xa0, 0x75, 0x3e, 0x80, 0x15, 0x64, 0x6b, 0xc8, 0x63, 0x2f, 0x0e, 0x82, 0x0d, 0x1e, 0x48, 0x0b, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0x41, 0xb2, 0x81, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x17, 0x37, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0x4d, 0x80, 0x67, 0x18, 0xd9, 0x9b, 0x9c, 0x5b, 0x8b, 0xdb, 0x5b, 0x8b, 0x5e, 0xdd, 0x5c, 0x39, 0xfc, 0xc6, 0xf3, 0xf1, 0xe0, 0xfd, 0x6f, 0x24, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0xd8, 0x0d, 0x6b, 0xbf, 0x6b, 0x88, 0xe1, 0x20, 0x58, 0x90, 0x0c, 0x39, 0x08, 0x78, 0xff, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0xe0, 0xbc, 0x3b, 0x38, 0x9d, 0x21, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x78, 0x71, 0x0b, 0xc9, 0xc1, 0xdb, 0xcd, 0x48, 0x8e, 0x43, 0xc7, 0xa1, 0x43, 0x0c, 0x0f, 0xc6, 0x9b, 0xce, 0x1a, 0x62, 0x38, 0x08, 0x36, 0x78, 0x2e, 0x1d, 0xc9, 0xc1, 0x88, 0xc2, 0x1d, 0x04, 0x0b, 0x82, 0x0d, 0x1e, 0xe0, 0x42, 0x32, 0x48, 0x06, 0xa3, 0x83, 0x31, 0x3a, 0x39, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0xa9, 0x67, 0x24, 0x87, 0x71, 0x39, 0x0e, 0x0d, 0xbf, 0x41, 0x43, 0x1e, 0x4f, 0xc3, 0x6f, 0x30, 0xd8, 0x01, 0x86, 0x5f, 0x10, 0x2d, 0x68, 0x1f, 0x76, 0xc3, 0xda, 0xef, 0xc1, 0x2b, 0xc4, 0x48, 0x8e, 0xc7, 0x83, 0x60, 0xe1, 0x17, 0x04, 0x0b, 0x92, 0x81, 0x36, 0x7d, 0x07, 0xa7, 0x33, 0xe4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x24, 0x1b, 0xac, 0xb9, 0x40, 0x3a, 0x38, 0x9d, 0x21, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x28, 0xfc, 0xfb, 0x0e, 0x4e, 0x67, 0xc8, 0xc7, 0xa1, 0xe3, 0xdb, 0xf0, 0x0b, 0xa2, 0x85, 0x0c, 0xbb, 0x21, 0x31, 0xb3, 0x20, 0x58, 0x10, 0x6c, 0xf0, 0xda, 0x1b, 0x92, 0x41, 0x32, 0x30, 0x7a, 0x07, 0x63, 0x30, 0x72, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0xc2, 0x56, 0xca, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x5e, 0x7b, 0x43, 0x32, 0x48, 0x06, 0xc2, 0x35, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0xc3, 0x2f, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x81, 0xb0, 0x1d, 0x0c, 0x47, 0xe9, 0x41, 0x32, 0xcc, 0xc1, 0x0a, 0xd8, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0xc7, 0x0d, 0xd2, 0xc3, 0xbc, 0x0f, 0x9e, 0x04, 0x07, 0x72, 0x1c, 0x3a, 0x9e, 0x1f, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x28, 0xc2, 0x18, 0x16, 0x37, 0x44, 0x73, 0x10, 0x2c, 0x48, 0x86, 0x1c, 0x0c, 0xff, 0xd8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0xe0, 0xbc, 0x3b, 0x38, 0x50, 0x24, 0x1f, 0x9a, 0x02, 0x1d, 0x87, 0x8e, 0xc7, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x78, 0x3c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x82, 0x64, 0x83, 0x92, 0x94, 0xeb, 0xe0, 0x9c, 0x77, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0xe0, 0xec, 0xde, 0x77, 0x70, 0xce, 0x3b, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x6b, 0x6f, 0x48, 0x06, 0xc9, 0x40, 0xb8, 0x0e, 0x56, 0x70, 0xf6, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0xbb, 0x41, 0x30, 0xec, 0x2f, 0xec, 0xc2, 0x6d, 0xf0, 0xb2, 0x1a, 0x92, 0x83, 0xf1, 0xd3, 0xb5, 0xb0, 0x1b, 0x94, 0x7b, 0x87, 0x0b, 0xbb, 0x70, 0x8b, 0x07, 0x0f, 0x08, 0xf7, 0x38, 0x34, 0xd4, 0x59, 0xd8, 0x0d, 0xd6, 0xbf, 0xec, 0x2f, 0xec, 0xc2, 0x2e, 0xf4, 0xe0, 0xc4, 0x72, 0x7f, 0x58, 0xdf, 0xdc, 0xe0, 0xa0, 0x12, 0x7f, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x1f, 0x8f, 0x8f, 0x43, 0x1b, 0x0c, 0x44, 0xea, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x55, 0xf8, 0x05, 0xc9, 0x40, 0xfb, 0xbe, 0x83, 0x73, 0xde, 0xf1, 0xf1, 0x6d, 0xf8, 0x85, 0xdf, 0xa0, 0xa9, 0x25, 0xa7, 0xe3, 0xdb, 0xf1, 0xed, 0x60, 0xf0, 0x4e, 0x2e, 0x0e, 0xbb, 0xb0, 0x1b, 0xa4, 0x1d, 0xfd, 0x2c, 0xec, 0xc2, 0x6d, 0xf0, 0xb2, 0x1a, 0x92, 0x83, 0x36, 0x01, 0x02, 0x16, 0x76, 0x83, 0x55, 0x35, 0x41, 0x0b, 0xbb, 0x70, 0x1b, 0xbc, 0x6d, 0x95, 0xe4, 0xa0, 0x4d, 0x3a, 0x92, 0x85, 0x5d, 0xe8, 0x41, 0x83, 0x0a, 0x01, 0x0b, 0xbb, 0xb0, 0x0b, 0x3d, 0x68, 0x00, 0x94, 0xe4, 0xb0, 0xbe, 0xb9, 0x70, 0x1b, 0x62, 0x38, 0x41, 0x1c, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0x85, 0xdf, 0x78, 0x3c, 0xec, 0x82, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x68, 0xbf, 0x73, 0x70, 0xce, 0x3b, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x1e, 0x2c, 0x64, 0x8c, 0x3a, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x27, 0x18, 0xe3, 0xe3, 0xd0, 0x6a, 0xd0, 0x00, 0x28, 0xc9, 0x20, 0xd8, 0xe0, 0x15, 0x9a, 0x24, 0x07, 0x03, 0xbd, 0x6c, 0x10, 0x2c, 0x08, 0x16, 0x24, 0x03, 0x61, 0x3b, 0x38, 0x66, 0x15, 0x1f, 0x3c, 0xbf, 0xe6, 0xe0, 0xa0, 0xb4, 0x1e, 0x3b, 0x9c, 0x62, 0x87, 0x53, 0xec, 0x78, 0x7c, 0x1c, 0x1a, 0x7e, 0x41, 0xb4, 0xc0, 0xf8, 0x1f, 0x84, 0x00, 0xf8, 0xf1, 0x78, 0xf8, 0x0d, 0x06, 0x3b, 0xc0, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x36, 0x68, 0xff, 0x1f, 0xea, 0xe0, 0x5c, 0x7f, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0xb0, 0xd7, 0x77, 0x70, 0xae, 0x3f, 0x1e, 0x24, 0x03, 0xe1, 0x1a, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0xd8, 0xe0, 0x81, 0xcf, 0x24, 0x83, 0x64, 0x60, 0xf4, 0x0e, 0xed, 0x5b, 0x0e, 0x06, 0xb6, 0xe8, 0x71, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x73, 0x64, 0xef, 0xe2, 0x20, 0x58, 0x90, 0x0c, 0xca, 0x0e, 0x4e, 0x1b, 0xca, 0x07, 0x47, 0x15, 0xe7, 0xe3, 0xf1, 0x71, 0x68, 0x0d, 0x02, 0x13, 0x7b, 0xc3, 0x5e, 0xe1, 0x71, 0xe8, 0xa0, 0x70, 0x4b, 0x3a, 0x1e, 0x0f, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb0, 0x20, 0x58, 0x10, 0x6c, 0xd0, 0x52, 0xc1, 0xc0, 0x41, 0x63, 0xfc, 0x4d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x8f, 0x1b, 0xa4, 0x87, 0x79, 0x1f, 0xa4, 0xae, 0x79, 0x1f, 0x87, 0x06, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0x41, 0x1b, 0xb6, 0x02, 0x83, 0x64, 0xa0, 0xf8, 0x1d, 0xf6, 0x6c, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x37, 0x48, 0x0f, 0xf3, 0xde, 0xe0, 0x61, 0x20, 0x18, 0x1d, 0x87, 0x86, 0xdd, 0xb0, 0xbe, 0xb7, 0xb0, 0x1b, 0x8c, 0x7a, 0xc9, 0x0d, 0x31, 0xdc, 0x10, 0xc3, 0x0d, 0x5e, 0xba, 0x47, 0xb2, 0x06, 0x8f, 0x0f, 0x27, 0x39, 0x08, 0x01, 0xf0, 0x43, 0x0c, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x79, 0xec, 0xc5, 0x41, 0xb0, 0xc1, 0x03, 0x69, 0x01, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x34, 0x48, 0x36, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xe2, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x09, 0xe0, 0xa3, 0x6e, 0xae, 0x4e, 0x0e, 0xae, 0x05, 0xed, 0xed, 0xcd, 0xad, 0xc5, 0xed, 0xad, 0x25, 0x4c, 0xce, 0xee, 0x1d, 0x7e, 0xe3, 0xf9, 0x78, 0xf0, 0x78, 0x76, 0x92, 0xe3, 0xd0, 0x71, 0xe8, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x81, 0xb1, 0x3b, 0x38, 0x9d, 0x21, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0x38, 0x08, 0x16, 0x24, 0x03, 0xe7, 0xdd, 0xc1, 0x39, 0xef, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0xd8, 0xe0, 0x6d, 0x93, 0x24, 0x83, 0x64, 0xb0, 0x3b, 0x58, 0x01, 0x5b, 0x72, 0xf0, 0x64, 0x70, 0x92, 0xe3, 0xd0, 0xf1, 0xf8, 0x38, 0x74, 0x30, 0xb0, 0x45, 0x37, 0xc4, 0x70, 0x35, 0xc4, 0x70, 0x10, 0x6c, 0xf0, 0x9a, 0x1d, 0x88, 0xc3, 0x1e, 0xef, 0x20, 0xd8, 0xe0, 0x35, 0x3b, 0x10, 0x07, 0x03, 0x5b, 0x74, 0x0d, 0x1e, 0x1f, 0x4e, 0x72, 0x1c, 0x5a, 0x83, 0x37, 0x75, 0x93, 0x1c, 0xf2, 0xb5, 0x87, 0x18, 0x1e, 0x8f, 0x8f, 0xc7, 0x0b, 0xbf, 0x20, 0x58, 0xe1, 0x17, 0x04, 0x0b, 0x92, 0x81, 0xfb, 0xeb, 0x60, 0x18, 0xfa, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0x8a, 0xcd, 0x61, 0x85, 0xf6, 0x38, 0x74, 0x7c, 0x5b, 0xf8, 0x05, 0xc1, 0x06, 0x6f, 0x04, 0x28, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0xac, 0xde, 0x1d, 0x56, 0x68, 0x8f, 0x43, 0xc7, 0xb7, 0x85, 0xdf, 0x60, 0xb0, 0x56, 0x1c, 0xdf, 0x16, 0x7e, 0x41, 0xb0, 0x20, 0x19, 0x18, 0xaa, 0x83, 0x61, 0xe8, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x18, 0xbb, 0xc3, 0x0a, 0xed, 0x71, 0xe8, 0xf8, 0x36, 0xfc, 0x82, 0x60, 0x83, 0xf7, 0x23, 0x94, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x18, 0xf9, 0x0f, 0x8b, 0x83, 0x60, 0x85, 0x5f, 0xe1, 0x37, 0x24, 0x97, 0x86, 0xdf, 0xa0, 0x61, 0x4f, 0xa6, 0xe3, 0xdb, 0xf0, 0x1b, 0x92, 0x4b, 0xc3, 0x2f, 0x08, 0x16, 0x24, 0x03, 0xe3, 0x75, 0x30, 0x0c, 0x7d, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x43, 0x62, 0xf3, 0xd0, 0xfc, 0xe5, 0x78, 0x7c, 0x1c, 0x3a, 0xbe, 0x1d, 0x7a, 0xa2, 0x2e, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x6c, 0xf0, 0x46, 0x80, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x60, 0xb8, 0x0e, 0x86, 0xa1, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xf5, 0xe8, 0x3e, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0x83, 0x12, 0xc9, 0xe9, 0xf8, 0x76, 0x1c, 0x3a, 0x0e, 0x1d, 0x9a, 0x02, 0x0d, 0x82, 0x0d, 0x1e, 0x77, 0x51, 0x72, 0x68, 0x01, 0x76, 0x68, 0xfe, 0x72, 0x3c, 0x3e, 0x0e, 0x1d, 0xdf, 0x06, 0xc1, 0xe2, 0x1a, 0xac, 0xe9, 0x38, 0x3a, 0x78, 0x3d, 0x74, 0xc6, 0x06, 0xcf, 0x3f, 0xd2, 0x98, 0x35, 0x18, 0x63, 0x68, 0x79, 0xf0, 0x9a, 0x24, 0x8d, 0xc5, 0x85, 0xdf, 0x78, 0x3c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x6c, 0x0d, 0x79, 0xec, 0xc5, 0x41, 0xb0, 0x41, 0xc3, 0x22, 0x2b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x9a, 0x3c, 0x59, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x71, 0xc3, 0xc4, 0xad, 0xa1, 0x8e, 0x6f, 0x78, 0xf9, 0x6e, 0x02, 0xbc, 0xe0, 0xd8, 0xde, 0xee, 0x5a, 0xcc, 0xc2, 0xd2, 0xd8, 0xca, 0xc8, 0x83, 0x76, 0xbd, 0x2a, 0x86, 0xdf, 0x78, 0xbe, 0x78, 0xf0, 0xc4, 0x95, 0x92, 0x43, 0xea, 0xe0, 0x38, 0x74, 0x1c, 0x3a, 0x1e, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0xf2, 0xd8, 0x8b, 0x83, 0x60, 0x83, 0x86, 0x45, 0x56, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x34, 0x79, 0xb2, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xe2, 0x86, 0x89, 0x5b, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x04, 0xf8, 0xb5, 0xa5, 0xcd, 0xcd, 0xa5, 0xb9, 0x9d, 0xb5, 0xd8, 0x85, 0xb9, 0x95, 0x07, 0xed, 0x7a, 0x55, 0x0c, 0xbf, 0xf1, 0x7c, 0xf1, 0xe0, 0xed, 0x35, 0x25, 0x87, 0xd4, 0xc1, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x1e, 0x04, 0x0b, 0x82, 0x0d, 0x5a, 0x2a, 0x18, 0x18, 0x24, 0x03, 0xd5, 0x6b, 0x10, 0x2d, 0xec, 0x04, 0xfb, 0xf7, 0xc7, 0xa1, 0x43, 0xa3, 0x96, 0x41, 0xb0, 0x20, 0xd8, 0xa0, 0x55, 0x56, 0x95, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x37, 0x18, 0x8b, 0x9d, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x36, 0xcf, 0xa1, 0x0e, 0xde, 0xe9, 0x44, 0x70, 0x1c, 0x3a, 0x1e, 0xaf, 0xf0, 0x1b, 0x8f, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x1b, 0x34, 0x8f, 0x3f, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0xb2, 0x41, 0xfb, 0xff, 0x50, 0x07, 0xc3, 0x51, 0x7a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x2d, 0xae, 0x44, 0x0d, 0x92, 0x81, 0x70, 0x1d, 0xbc, 0xdb, 0x39, 0x63, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x73, 0x64, 0xef, 0xe2, 0x20, 0x58, 0x90, 0x0c, 0xca, 0x0e, 0x8e, 0x59, 0xc5, 0x07, 0x47, 0x15, 0xe7, 0xe3, 0xf1, 0x71, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x35, 0x18, 0x5e, 0x14, 0x1b, 0x62, 0xb8, 0x41, 0xc1, 0xf0, 0x78, 0xe8, 0xb1, 0x33, 0xce, 0x06, 0xcf, 0x7b, 0xc3, 0x68, 0x10, 0x2c, 0xce, 0xc1, 0x43, 0x64, 0x36, 0x16, 0x07, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0xc1, 0x09, 0x13, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x52, 0xb5, 0x97, 0x0d, 0x06, 0x7e, 0xc8, 0xc2, 0x6f, 0x3c, 0xdf, 0x10, 0xcd, 0x83, 0x04, 0x49, 0xe8, 0xc3, 0x5e, 0xe1, 0x71, 0x68, 0xd8, 0x0d, 0x46, 0xbd, 0xe4, 0x86, 0x18, 0x0e, 0xbb, 0x41, 0x68, 0xb9, 0x6f, 0x88, 0xe1, 0x20, 0x5b, 0x43, 0x1e, 0x7b, 0x71, 0x10, 0x6c, 0xf0, 0x40, 0x5a, 0x80, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x0d, 0x92, 0x0d, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0xb8, 0x61, 0xe2, 0xd6, 0x50, 0xc7, 0x37, 0xbc, 0x7c, 0x37, 0x07, 0x6f, 0xe9, 0x17, 0x39, 0x68, 0xd7, 0xab, 0x62, 0xf8, 0x8d, 0xe7, 0x8b, 0x07, 0x6f, 0xe9, 0x17, 0x39, 0x64, 0xed, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x06, 0xee, 0xaf, 0x83, 0x73, 0xde, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0x20, 0x5d, 0x77, 0x30, 0x1c, 0xa5, 0x8f, 0x43, 0x83, 0x64, 0xc8, 0x41, 0x83, 0xa9, 0x49, 0x1b, 0xb2, 0x76, 0x1b, 0x8e, 0xf6, 0x41, 0xb0, 0xc1, 0x0a, 0xcf, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xd4, 0xc1, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x90, 0xaf, 0x5d, 0xf1, 0x60, 0x61, 0x0c, 0xe9, 0x41, 0xb8, 0xb9, 0xaf, 0x78, 0xd0, 0xf8, 0x7c, 0xd4, 0xc1, 0x52, 0x58, 0x9f, 0x15, 0x03, 0x6f, 0x2e, 0x6c, 0xdc, 0x10, 0xc3, 0xe3, 0xf9, 0x21, 0x86, 0xc7, 0xa1, 0xe3, 0xf1, 0x71, 0x68, 0xf1, 0xe0, 0x61, 0x20, 0x18, 0x1b, 0x8e, 0xf6, 0x35, 0x68, 0x8b, 0x09, 0x60, 0xc3, 0xd1, 0xbe, 0x06, 0xed, 0x85, 0xda, 0x6f, 0x88, 0xe1, 0xc1, 0x31, 0xab, 0x78, 0xc5, 0x83, 0x26, 0x87, 0xbc, 0x37, 0xc4, 0xf0, 0xe0, 0x24, 0x74, 0xbc, 0x62, 0xe0, 0xd1, 0xc9, 0xa5, 0x1b, 0x62, 0x78, 0x30, 0x1c, 0xa5, 0x57, 0x0c, 0xbc, 0xb8, 0xba, 0x70, 0x43, 0x0c, 0x0f, 0x86, 0x7f, 0xec, 0x8a, 0x81, 0x07, 0x57, 0xe6, 0x6e, 0x88, 0xe1, 0xc1, 0x30, 0xf4, 0x39, 0xc4, 0x70, 0xc5, 0x83, 0x95, 0x9c, 0xa1, 0x1b, 0x62, 0x78, 0x10, 0xf0, 0xfe, 0x2b, 0x1e, 0x6a, 0xc4, 0xc1, 0x2a, 0x90, 0xaf, 0x15, 0x0f, 0x9e, 0x5f, 0x44, 0xb2, 0xe1, 0x68, 0x1f, 0x7e, 0x83, 0xc4, 0xbd, 0x99, 0x35, 0x78, 0x80, 0x5a, 0xc9, 0xc1, 0xe3, 0xd9, 0x4a, 0xd6, 0xe0, 0x1d, 0x6b, 0x25, 0x07, 0xe3, 0x5f, 0xf2, 0x10, 0xc3, 0x15, 0x0f, 0xde, 0x8b, 0x46, 0xb2, 0xe1, 0x68, 0x1f, 0x7e, 0x83, 0x94, 0xd2, 0x99, 0x83, 0x87, 0xf0, 0x95, 0xac, 0xc1, 0xdb, 0x56, 0x49, 0x0e, 0x8a, 0x38, 0xa4, 0x43, 0x0c, 0x57, 0xf8, 0x8d, 0xc7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x8b, 0x73, 0xf0, 0x08, 0x30, 0x8f, 0xc5, 0x61, 0x37, 0x08, 0x12, 0xef, 0x05, 0xd9, 0x1a, 0xf2, 0xd8, 0x63, 0x00, 0x5f, 0x61, 0x72, 0x76, 0x6f, 0x3a, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x3a, 0x70, 0x69, 0x74, 0x68, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0xe4, 0x20, 0x58, 0xf8, 0x0d, 0xde, 0x25, 0x12, 0x71, 0x30, 0xee, 0xa0, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0xc8, 0x63, 0x8f, 0x01, 0xbe, 0x63, 0x61, 0x6c, 0x6c, 0x3a, 0x20, 0x62, 0x61, 0x64, 0x20, 0x77, 0x61, 0x69, 0xe6, 0x20, 0x58, 0x90, 0x0c, 0x26, 0x07, 0xc3, 0xd0, 0xe7, 0xa0, 0x08, 0x1e, 0x3c, 0x0e, 0x0d, 0xbf, 0x20, 0x5a, 0x30, 0x1d, 0x04, 0x0b, 0x92, 0x81, 0x73, 0xed, 0x60, 0xbc, 0xeb, 0x1c, 0x9a, 0x02, 0x1d, 0x8f, 0x07, 0xc1, 0x06, 0x85, 0x75, 0xc8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x6f, 0x68, 0x24, 0xb8, 0x21, 0x9a, 0x07, 0x0d, 0xd7, 0x92, 0x0c, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x21, 0x8f, 0xbd, 0x38, 0x08, 0x36, 0x68, 0x58, 0x64, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x93, 0x27, 0x2b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x2f, 0x6e, 0x98, 0xfb, 0x01, 0x3c, 0xc4, 0xc2, 0xe4, 0x5a, 0xe6, 0xe8, 0xc2, 0xc6, 0xd6, 0x0d, 0x75, 0x64, 0x0d, 0x33, 0xb4, 0x86, 0x89, 0xdb, 0x30, 0x9d, 0x1b, 0x66, 0x68, 0x0d, 0x13, 0xb7, 0x86, 0xb9, 0xdf, 0x20, 0x5c, 0x11, 0x36, 0x14, 0xd3, 0x35, 0x78, 0xf0, 0x06, 0xc6, 0xc1, 0xc3, 0xea, 0x46, 0x36, 0xcc, 0xd0, 0x1a, 0x26, 0x6e, 0xc3, 0x74, 0x1e, 0x3c, 0x78, 0x03, 0x63, 0xc3, 0x89, 0xb0, 0xc1, 0xcb, 0x41, 0x4b, 0x36, 0x58, 0xcc, 0x06, 0xb5, 0xcc, 0xb2, 0xe1, 0x13, 0x9b, 0x35, 0x3c, 0x4f, 0xb2, 0x06, 0x0b, 0x95, 0xa9, 0x0e, 0xde, 0xa5, 0xee, 0xb1, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xc8, 0xe4, 0xb1, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x25, 0xc4, 0x37, 0x58, 0x41, 0xa6, 0xbf, 0xe1, 0xdd, 0x9e, 0x0d, 0x9e, 0xbf, 0x37, 0xb2, 0x86, 0x8f, 0xda, 0x0f, 0x1e, 0xd9, 0x37, 0xd2, 0xc1, 0x31, 0xe6, 0xec, 0x60, 0x25, 0x9d, 0xfe, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x87, 0xf3, 0xf8, 0xa0, 0xd9, 0x4b, 0x88, 0x0d, 0x27, 0xc2, 0x06, 0xef, 0xe6, 0x2c, 0x39, 0x68, 0xd5, 0x15, 0xe2, 0xa0, 0x21, 0x58, 0x88, 0xe1, 0x37, 0x9e, 0x1f, 0xbc, 0x8e, 0xb2, 0xe4, 0x38, 0x74, 0x1c, 0x3a, 0x1e, 0x0f, 0x82, 0x85, 0x5f, 0x10, 0x2c, 0xfc, 0x82, 0x60, 0x83, 0x73, 0xf0, 0xf7, 0xa1, 0x29, 0xd0, 0x41, 0x39, 0x94, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xb5, 0xdb, 0xe0, 0x01, 0x08, 0x11, 0x07, 0xe5, 0x91, 0xc1, 0x71, 0xe8, 0xa0, 0x64, 0x68, 0x3a, 0xb4, 0x00, 0x3b, 0x0e, 0x1d, 0x8f, 0x57, 0xf8, 0x8d, 0xc7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x8b, 0x1b, 0x4e, 0xb1, 0x0d, 0x5a, 0x61, 0x67, 0x3a, 0x08, 0x80, 0xfb, 0xc5, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x1b, 0xac, 0x8f, 0x74, 0x18, 0x24, 0x83, 0xdd, 0x20, 0x5a, 0xd8, 0x0d, 0x1d, 0xc3, 0x0e, 0xc6, 0x62, 0xe7, 0x71, 0xe8, 0x60, 0xb1, 0x16, 0xd3, 0xf0, 0x0b, 0xa2, 0x05, 0xdd, 0x07, 0x21, 0x00, 0x7e, 0x3c, 0x1e, 0x7e, 0x83, 0xc1, 0x0e, 0x30, 0xfc, 0x82, 0x68, 0x81, 0xfd, 0xfb, 0x41, 0xb0, 0x20, 0xd8, 0xa0, 0x0d, 0x5b, 0x81, 0x41, 0x32, 0x30, 0x54, 0x83, 0x68, 0x61, 0x27, 0xe8, 0xbf, 0x7f, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x26, 0xac, 0x86, 0xdf, 0x78, 0xbe, 0xc1, 0xe0, 0x8f, 0x39, 0x74, 0x0c, 0x3b, 0x0e, 0x1d, 0x8f, 0x07, 0xc1, 0x82, 0x64, 0x60, 0xaa, 0x0e, 0x2b, 0xb4, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x6f, 0xc8, 0xda, 0x1d, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0xe1, 0x37, 0x1e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0x50, 0x50, 0x8b, 0x2d, 0x0e, 0xa2, 0x05, 0xe3, 0x83, 0x84, 0xf8, 0xa1, 0x43, 0x72, 0xe9, 0x78, 0x3c, 0xfc, 0xc6, 0xe3, 0xe1, 0x37, 0x1e, 0x0f, 0xbb, 0xb0, 0x1b, 0xd6, 0x42, 0x37, 0xc4, 0x70, 0xd8, 0x85, 0x1e, 0x94, 0xd8, 0x83, 0x87, 0x74, 0xee, 0x06, 0x8d, 0x74, 0xdb, 0x0f, 0xbb, 0x70, 0x1b, 0x62, 0x78, 0xd0, 0xcc, 0x46, 0xc0, 0x82, 0x64, 0x20, 0x56, 0x07, 0x25, 0x42, 0xd6, 0xf0, 0x0b, 0xa2, 0x05, 0xc2, 0x7d, 0x88, 0xe1, 0xf1, 0x78, 0xf8, 0x05, 0xd1, 0x82, 0xdb, 0x07, 0xed, 0x81, 0xde, 0x1f, 0x8f, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x68, 0x66, 0x23, 0x60, 0xf8, 0x05, 0xd1, 0x02, 0x11, 0x3f, 0x08, 0x01, 0xf0, 0xe3, 0xf1, 0xf0, 0x1b, 0x0c, 0x76, 0x80, 0xe1, 0x17, 0x04, 0x0b, 0x92, 0xc1, 0xaf, 0xe3, 0xf9, 0xc1, 0xc0, 0x16, 0x3d, 0x58, 0x92, 0x43, 0xb3, 0xf0, 0x1b, 0x8f, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x58, 0x16, 0x06, 0xb3, 0x38, 0xfc, 0x82, 0x68, 0x81, 0xd0, 0x1f, 0x1a, 0x09, 0x0e, 0xa2, 0x05, 0xe7, 0x0f, 0xd1, 0x3c, 0x1e, 0x0f, 0xbf, 0x20, 0x5a, 0xf8, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x0d, 0xde, 0x25, 0x12, 0x71, 0xb0, 0xba, 0x17, 0x66, 0x90, 0x0c, 0xb2, 0x43, 0x4f, 0xa4, 0x43, 0x27, 0xa2, 0xe3, 0xf1, 0x20, 0x58, 0xdc, 0xe0, 0x91, 0xe2, 0x24, 0x03, 0xbe, 0x5d, 0xd9, 0x59, 0xd8, 0xf0, 0x0b, 0xa2, 0x05, 0xf9, 0x20, 0x58, 0xf8, 0x0d, 0x0e, 0xce, 0xe8, 0x07, 0xef, 0x4d, 0x0b, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x83, 0xa5, 0xb0, 0x3e, 0x87, 0x71, 0x39, 0x0e, 0x1d, 0x8f, 0x07, 0xc1, 0x06, 0x2f, 0x34, 0x2e, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xb0, 0x54, 0xed, 0x65, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe1, 0x37, 0x38, 0x38, 0xa3, 0x1f, 0x94, 0x0c, 0x4d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xd1, 0x1c, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0xc9, 0x93, 0x95, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x17, 0x37, 0x4c, 0xdc, 0x1a, 0xea, 0xf8, 0x86, 0x97, 0xef, 0xe6, 0xe0, 0x0d, 0xe3, 0x25, 0x07, 0x2d, 0xb6, 0x0d, 0x1c, 0x84, 0x00, 0xf8, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x3a, 0x1e, 0x0f, 0xbf, 0xf1, 0x78, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x37, 0x53, 0x78, 0x2c, 0x0e, 0x82, 0x85, 0x5d, 0xd8, 0x85, 0xdd, 0xd0, 0x74, 0xe8, 0xb0, 0xbe, 0xb9, 0xb0, 0x0b, 0x3d, 0x48, 0x73, 0xcf, 0x38, 0xa4, 0x73, 0x0f, 0x47, 0xfb, 0xe2, 0x1c, 0x3c, 0x58, 0x1d, 0xe4, 0x10, 0xc3, 0x61, 0x37, 0x18, 0xf5, 0x92, 0x0b, 0xbf, 0xf1, 0x7c, 0xd8, 0x85, 0xdb, 0xe0, 0x4d, 0x85, 0x1d, 0x87, 0x46, 0x82, 0x0b, 0xbf, 0xf1, 0x78, 0xf8, 0x8d, 0xc7, 0xc3, 0x6f, 0x3c, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xd8, 0x85, 0xdd, 0xe0, 0xa9, 0xf5, 0x25, 0x0b, 0xbb, 0xb0, 0x0b, 0xb7, 0x21, 0x86, 0x07, 0x45, 0x27, 0xcc, 0x61, 0x7d, 0xf3, 0x90, 0xce, 0x3d, 0x1c, 0xed, 0x6b, 0x88, 0xe1, 0x82, 0x60, 0x41, 0x32, 0x68, 0x39, 0x18, 0x8e, 0xd2, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0xbe, 0x20, 0x58, 0x90, 0x0c, 0x28, 0xd5, 0xfb, 0x0e, 0x8e, 0x59, 0xc5, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x83, 0x96, 0xd8, 0x9e, 0x8e, 0x43, 0x07, 0x69, 0xd5, 0xd1, 0x07, 0x6d, 0x97, 0xe8, 0x1f, 0x87, 0x36, 0x78, 0x53, 0x61, 0xc7, 0x1a, 0x14, 0x9d, 0x30, 0x87, 0x26, 0x5c, 0x0b, 0xbb, 0xb0, 0x0b, 0xb7, 0x78, 0xd0, 0x96, 0x28, 0xe0, 0xc1, 0x5b, 0x44, 0x2a, 0x36, 0xc4, 0x70, 0xb8, 0xc5, 0x00, 0x0f, 0xb2, 0xb2, 0x30, 0xb6, 0x96, 0xb3, 0x30, 0x36, 0xf6, 0xe0, 0x2d, 0x22, 0x15, 0xab, 0xc1, 0x5b, 0x44, 0x2a, 0x06, 0xc1, 0x82, 0x60, 0x71, 0x83, 0x00, 0xb8, 0x3f, 0x9c, 0x62, 0x8b, 0x83, 0x60, 0x15, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x48, 0x06, 0x9a, 0x2f, 0x1d, 0x0c, 0x43, 0x9f, 0x83, 0x64, 0x43, 0x83, 0x05, 0xc1, 0x06, 0x6f, 0x80, 0x30, 0x39, 0x48, 0x2e, 0x1f, 0x18, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x48, 0x06, 0xda, 0xf7, 0x1d, 0x1c, 0xb3, 0x8a, 0x0f, 0x4e, 0xd6, 0xdd, 0x0b, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x24, 0x1b, 0xac, 0xb9, 0x40, 0x3a, 0x38, 0x66, 0x15, 0x1f, 0x9a, 0x02, 0x0d, 0x82, 0x0d, 0x9e, 0x60, 0x61, 0x72, 0x68, 0x01, 0x76, 0x68, 0xfe, 0x72, 0x3c, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0xf8, 0x0d, 0xce, 0xea, 0xe7, 0x1b, 0xf6, 0x0a, 0x37, 0x08, 0x4c, 0xec, 0x83, 0xf1, 0xa6, 0x73, 0x1c, 0x3a, 0x74, 0x52, 0x5b, 0x10, 0x2c, 0x48, 0x06, 0xee, 0xb7, 0x83, 0xf1, 0xae, 0x73, 0xf0, 0x50, 0xda, 0x8c, 0x43, 0x27, 0xb5, 0x43, 0x34, 0x0f, 0x31, 0x1c, 0x76, 0x83, 0x51, 0x2f, 0xb9, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x47, 0xc5, 0xff, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x5f, 0x83, 0xa2, 0x13, 0xe6, 0xd0, 0x49, 0xed, 0x10, 0xcd, 0x83, 0xc6, 0x22, 0x5b, 0x8e, 0x43, 0x83, 0x6c, 0x0d, 0xda, 0x02, 0x59, 0xd9, 0x10, 0xc3, 0x41, 0xb0, 0x41, 0xc3, 0x22, 0x2b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x9a, 0x3c, 0x59, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x71, 0xc3, 0xc4, 0xad, 0xa1, 0x8e, 0xac, 0x61, 0x86, 0xd6, 0x30, 0x71, 0x6b, 0x98, 0xb8, 0x35, 0x4c, 0xdc, 0x1a, 0xe6, 0x7e, 0xf0, 0xf0, 0x60, 0xf5, 0xa8, 0xfe, 0x86, 0xb9, 0x1f, 0x5c, 0x3c, 0x58, 0x3d, 0xaa, 0xbf, 0x61, 0xee, 0x07, 0x1f, 0x0f, 0x9a, 0xd8, 0x03, 0x39, 0xd4, 0xcc, 0x0d, 0x27, 0xc2, 0x06, 0x8f, 0x5c, 0x31, 0xd9, 0x60, 0x31, 0x1b, 0xd4, 0x32, 0xcb, 0xc1, 0x0a, 0x42, 0xb7, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x0e, 0x56, 0x10, 0xba, 0x6d, 0x98, 0xb8, 0x35, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0xcd, 0x41, 0x0b, 0xa7, 0xe3, 0x1b, 0x26, 0x6e, 0x0d, 0x13, 0xb7, 0x41, 0xbb, 0x5e, 0x15, 0x07, 0xed, 0x7a, 0x55, 0x6c, 0x98, 0xb8, 0x35, 0x58, 0xd0, 0x30, 0xb5, 0x86, 0x89, 0x5b, 0xc3, 0xc4, 0xad, 0xc1, 0x82, 0x86, 0xa9, 0x35, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0xcd, 0x41, 0x5b, 0xa2, 0x80, 0xab, 0xa1, 0x8e, 0x6f, 0x78, 0xf9, 0x6e, 0x0e, 0x1e, 0xb8, 0x60, 0x72, 0x38, 0xc5, 0xda, 0x50, 0x47, 0xd6, 0x30, 0x43, 0x6b, 0x98, 0xb8, 0x0d, 0xd3, 0xb9, 0x61, 0xee, 0x57, 0x0d, 0xde, 0x14, 0x39, 0x32, 0x1b, 0xde, 0xd6, 0xd9, 0xe0, 0x4d, 0x91, 0x23, 0x1b, 0x9e, 0x27, 0xd9, 0xe0, 0xe5, 0x4e, 0x23, 0x07, 0xef, 0x73, 0xfc, 0x38, 0x9c, 0x62, 0x6d, 0x98, 0xfb, 0x55, 0x83, 0x07, 0x84, 0x7b, 0xcc, 0x86, 0xb7, 0x75, 0x36, 0x78, 0x40, 0xb8, 0xc7, 0xc1, 0x0b, 0x80, 0x4c, 0x0e, 0xa7, 0x58, 0x1b, 0xe6, 0x7e, 0xd5, 0xe0, 0x65, 0xea, 0x1e, 0xb3, 0xe1, 0x6d, 0x9d, 0x0d, 0x5e, 0xa6, 0xee, 0x71, 0xf0, 0x3e, 0xc7, 0x8f, 0xc3, 0x29, 0xd6, 0x86, 0xb9, 0x5f, 0x35, 0x78, 0x45, 0xa5, 0xc8, 0x6c, 0x78, 0x5b, 0x67, 0x83, 0x57, 0x54, 0x8a, 0x1c, 0x3c, 0x0e, 0xc8, 0xe4, 0x70, 0x8a, 0xb5, 0x61, 0x86, 0xd6, 0x30, 0x71, 0x6b, 0x98, 0xfb, 0x0d, 0x5e, 0xe8, 0xf8, 0xb1, 0xa1, 0x98, 0xae, 0x86, 0x19, 0xda, 0xe0, 0xe5, 0xa0, 0x25, 0x1b, 0x4e, 0x84, 0x0d, 0x5e, 0x0e, 0x5a, 0xb2, 0xc1, 0x62, 0x36, 0xa8, 0x65, 0x96, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x79, 0x92, 0x35, 0x58, 0xa8, 0x4c, 0x75, 0xf0, 0x3e, 0xc7, 0x8f, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xa4, 0x0b, 0x8f, 0x35, 0x7c, 0xee, 0xb2, 0xc1, 0xcb, 0xd4, 0x3d, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x4b, 0x33, 0x3c, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xf3, 0x37, 0x3c, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xa5, 0x84, 0xf8, 0x06, 0x2b, 0xc8, 0xf4, 0x37, 0xbc, 0xad, 0x73, 0xf0, 0x2e, 0x75, 0x8f, 0x83, 0x73, 0xbd, 0xc1, 0x86, 0xe7, 0x49, 0x36, 0x78, 0x1a, 0x94, 0xc9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xd2, 0x85, 0xc7, 0x86, 0xcf, 0x5d, 0x36, 0x78, 0xb9, 0xd3, 0xc8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x36, 0x88, 0xc7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xcc, 0x88, 0xc7, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x94, 0x10, 0xdf, 0x60, 0x05, 0x99, 0xfe, 0x86, 0xb7, 0x75, 0x0e, 0x1e, 0x12, 0x35, 0x72, 0x70, 0x00, 0x4d, 0x3a, 0x58, 0x49, 0xa7, 0x7f, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0xc1, 0xd3, 0xa0, 0x4c, 0x36, 0x4c, 0xdc, 0x1a, 0xe6, 0x7e, 0x83, 0x97, 0xa9, 0x7b, 0x6c, 0xa8, 0x23, 0x1b, 0x3c, 0x11, 0xb4, 0xe4, 0xe0, 0xd5, 0xa3, 0x25, 0x1b, 0x8a, 0xe9, 0x06, 0xaf, 0x66, 0x32, 0xd9, 0x30, 0xf7, 0x1b, 0xbc, 0xdc, 0x69, 0x64, 0x43, 0x31, 0x5d, 0x0d, 0x33, 0xb4, 0xc1, 0xcb, 0x41, 0x4b, 0x36, 0x9c, 0x08, 0x1b, 0xbc, 0x1c, 0xb4, 0x64, 0x83, 0xc5, 0x6c, 0x50, 0xcb, 0x2c, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xf3, 0x24, 0x6b, 0xb0, 0x50, 0x99, 0xea, 0xe0, 0x21, 0x51, 0x23, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x35, 0x59, 0x1e, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x52, 0x42, 0x7c, 0x83, 0x15, 0x64, 0xfa, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0x29, 0x88, 0x23, 0x6b, 0xf8, 0xa8, 0xfd, 0xe0, 0x59, 0x8a, 0x23, 0x6b, 0xf8, 0xa8, 0xfd, 0xe0, 0x3d, 0x94, 0x23, 0x1d, 0x1c, 0x63, 0xce, 0x0e, 0x56, 0xd2, 0xe9, 0x1f, 0x4e, 0xb1, 0xc3, 0x29, 0x76, 0xf0, 0xb6, 0x35, 0x93, 0x0d, 0x13, 0xb7, 0xc1, 0x13, 0x68, 0x4c, 0x36, 0x4c, 0xdc, 0x1a, 0xe6, 0x7e, 0x83, 0x57, 0x54, 0x8a, 0x6c, 0xa8, 0x23, 0x6b, 0x98, 0xa1, 0x0d, 0x5e, 0x0e, 0x5a, 0xb2, 0xe1, 0x44, 0xd8, 0xe0, 0xe5, 0xa0, 0x25, 0x1b, 0x2c, 0x66, 0x83, 0x5a, 0x66, 0xd9, 0xf0, 0x89, 0xcd, 0x1a, 0x9e, 0x27, 0x59, 0x83, 0x85, 0xca, 0x54, 0x07, 0x8f, 0xba, 0x14, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x46, 0xf1, 0xd8, 0xf0, 0x6e, 0xcf, 0x06, 0x8d, 0x60, 0x63, 0x1c, 0x1c, 0x63, 0xce, 0x0e, 0x56, 0xd2, 0xe9, 0x1f, 0x4e, 0xb1, 0xc3, 0x29, 0x76, 0xf0, 0xc8, 0x3c, 0x93, 0x0d, 0x73, 0xbf, 0xe1, 0x79, 0x92, 0x0d, 0x13, 0xb7, 0x86, 0xb9, 0xdf, 0xe0, 0x01, 0xe1, 0x1e, 0x07, 0xed, 0x7a, 0x55, 0x6c, 0x98, 0xfb, 0x0d, 0xde, 0x14, 0x39, 0xb2, 0xa1, 0x98, 0xae, 0x86, 0x19, 0xda, 0xe0, 0xe5, 0xa0, 0x25, 0x1b, 0x4e, 0x84, 0x0d, 0x5e, 0x0e, 0x5a, 0xb2, 0xc1, 0x62, 0x36, 0xa8, 0x65, 0x96, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x79, 0x92, 0x35, 0x58, 0xa8, 0x4c, 0x75, 0xf0, 0xc4, 0xc9, 0x91, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xaa, 0x89, 0x8e, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x29, 0x21, 0xbe, 0xc1, 0x0a, 0x32, 0xfd, 0x0d, 0xef, 0xf6, 0x6c, 0xf0, 0xe6, 0x20, 0x91, 0x35, 0x7c, 0xd4, 0x7e, 0xf0, 0xbc, 0x21, 0x91, 0x35, 0x7c, 0xd4, 0x7e, 0xf0, 0x94, 0x22, 0x91, 0x0e, 0x8e, 0x31, 0x67, 0x07, 0x2b, 0xe9, 0xf4, 0x0f, 0xa7, 0xd8, 0xe1, 0x14, 0x3b, 0x78, 0xd2, 0xa1, 0xc9, 0x06, 0x0b, 0x1a, 0xa6, 0xd6, 0x30, 0x71, 0x1b, 0xb4, 0xd1, 0xf0, 0xbf, 0x61, 0xee, 0x07, 0x87, 0x37, 0x14, 0xd3, 0xd5, 0x30, 0x43, 0x1b, 0x2a, 0xe1, 0x86, 0x13, 0x61, 0x43, 0x25, 0xdc, 0x60, 0x31, 0x1b, 0xd4, 0x32, 0xcb, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0x2b, 0x49, 0x9c, 0xd7, 0xf0, 0xb9, 0xcb, 0xe0, 0xf0, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x9b, 0x90, 0xe0, 0xe0, 0x5c, 0x6f, 0xb0, 0xe1, 0x79, 0x92, 0x0d, 0x56, 0x92, 0x38, 0x1f, 0xac, 0x85, 0xd3, 0x3f, 0x58, 0x49, 0xa7, 0x7f, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0xc1, 0x4a, 0x12, 0xe7, 0x0d, 0x13, 0xb7, 0x41, 0xb3, 0xd1, 0x1b, 0x1b, 0x8a, 0xe9, 0x06, 0x4f, 0x95, 0x34, 0xd9, 0x30, 0xf7, 0x83, 0xc7, 0x1b, 0x26, 0x6e, 0x83, 0x57, 0xe3, 0x98, 0x1c, 0xa6, 0x73, 0xd6, 0x30, 0x71, 0x1b, 0x34, 0xb5, 0xf0, 0xbf, 0x61, 0xee, 0x07, 0x87, 0x37, 0x14, 0xd3, 0xd5, 0x30, 0x43, 0x1b, 0xbc, 0x1c, 0xb4, 0x64, 0xc3, 0x89, 0xb0, 0xc1, 0xcb, 0x41, 0x4b, 0x36, 0x58, 0xcc, 0x06, 0xb5, 0xcc, 0xb2, 0xe1, 0x13, 0x9b, 0x35, 0x3c, 0x4f, 0xb2, 0x06, 0x0b, 0x95, 0xa9, 0x0e, 0xde, 0x6b, 0x24, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xae, 0xd0, 0xb1, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x25, 0xc4, 0x37, 0x58, 0x41, 0xa6, 0xbf, 0xe1, 0xdd, 0x9e, 0x83, 0x17, 0xde, 0x88, 0x1c, 0x1c, 0x63, 0xce, 0x0e, 0x56, 0xd2, 0xe9, 0x1f, 0x4e, 0xb1, 0xc3, 0x29, 0x76, 0xf0, 0x5e, 0x52, 0x93, 0x0d, 0x13, 0xb7, 0x86, 0xb9, 0x1f, 0x1c, 0xde, 0x50, 0x47, 0xd6, 0x30, 0x43, 0x1b, 0xb4, 0xcb, 0x09, 0xb1, 0xe1, 0x44, 0x38, 0x68, 0x20, 0x14, 0xe2, 0xb0, 0x42, 0x7b, 0xf0, 0xb8, 0x4e, 0x93, 0xc3, 0x29, 0xb6, 0x61, 0xee, 0x57, 0x01, 0x6f, 0xee, 0x8d, 0x9d, 0x83, 0x73, 0x66, 0xd2, 0xe1, 0x14, 0x6b, 0xc3, 0xdc, 0xaf, 0x1a, 0x84, 0xa5, 0xcd, 0x1c, 0x24, 0xb6, 0x54, 0x1d, 0x4e, 0xb1, 0x36, 0xcc, 0xd0, 0x1a, 0x26, 0x6e, 0x0d, 0x13, 0xb7, 0x86, 0x89, 0x5b, 0xc3, 0xdc, 0x6f, 0xa8, 0x11, 0x1b, 0xea, 0xc8, 0x06, 0x8f, 0x95, 0x34, 0x39, 0x78, 0x37, 0xa5, 0xc9, 0x86, 0xb9, 0xdf, 0xa0, 0xcd, 0x3c, 0xb5, 0x0d, 0x75, 0x64, 0x0d, 0x33, 0xb4, 0xc1, 0xcb, 0x41, 0x4b, 0x36, 0x9c, 0x08, 0x1b, 0xbc, 0x1c, 0xb4, 0x64, 0x83, 0xc5, 0x6c, 0x50, 0xcb, 0x2c, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xf3, 0x24, 0x6b, 0xb0, 0x50, 0x99, 0x6a, 0x83, 0x37, 0x81, 0x7f, 0xb4, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x30, 0x9d, 0xb1, 0x86, 0xcf, 0x5d, 0x36, 0x68, 0x7c, 0x3e, 0x6a, 0xc3, 0xf3, 0x24, 0x1b, 0x3c, 0x46, 0xfd, 0x63, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xab, 0x3a, 0x63, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xf8, 0x3a, 0xe3, 0xe0, 0xfd, 0x96, 0x26, 0x1b, 0x9e, 0x27, 0xd9, 0xe0, 0x0d, 0xbc, 0x26, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x09, 0xd3, 0x19, 0x6b, 0xf8, 0xdc, 0x65, 0xc0, 0x23, 0xab, 0x1b, 0x37, 0x3c, 0x4f, 0xb2, 0xc1, 0xfb, 0xe0, 0x3f, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x43, 0xb9, 0x33, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x13, 0xbe, 0x33, 0x0e, 0x9a, 0x1f, 0x24, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0x6f, 0xe0, 0x35, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x98, 0xce, 0x58, 0xc3, 0xe7, 0x2e, 0x03, 0xde, 0x5d, 0x9a, 0xbc, 0xe1, 0x79, 0x92, 0x0d, 0x9e, 0x6c, 0xff, 0xb1, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x36, 0x9e, 0xb1, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x5c, 0x9e, 0xb1, 0xe1, 0xdd, 0x9e, 0x0d, 0xda, 0x26, 0x24, 0x38, 0x68, 0xd7, 0xd2, 0x60, 0xc3, 0xf3, 0x24, 0x1b, 0xbc, 0x81, 0xd7, 0x64, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x61, 0x3a, 0x63, 0xc3, 0xe7, 0x2e, 0x03, 0x1e, 0x59, 0x1d, 0xb9, 0xe1, 0x79, 0x92, 0x0d, 0x5e, 0xd1, 0xff, 0xb1, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xa2, 0x9e, 0xb1, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xc8, 0x9e, 0xb1, 0xe1, 0xdd, 0x9e, 0x0d, 0xda, 0x26, 0x24, 0x38, 0x68, 0xde, 0xd3, 0xe0, 0x60, 0x25, 0x9d, 0xfe, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x07, 0x2f, 0xd9, 0x35, 0xd9, 0x50, 0x47, 0xd6, 0x30, 0x43, 0x1b, 0xbc, 0x1c, 0xb4, 0x64, 0xc3, 0x89, 0xb0, 0xc1, 0xcb, 0x41, 0x4b, 0x36, 0x58, 0xcc, 0x06, 0xb5, 0xcc, 0xb2, 0xe1, 0x13, 0x9b, 0x35, 0x3c, 0x4f, 0xb2, 0x06, 0x0b, 0x95, 0xa9, 0x0e, 0x9e, 0xa9, 0x0b, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xbd, 0xa4, 0xb1, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x8b, 0x93, 0xc6, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x94, 0x10, 0xdf, 0x60, 0x05, 0x99, 0xfe, 0x86, 0xb7, 0x75, 0x0e, 0xde, 0xeb, 0x03, 0x72, 0x70, 0xae, 0x37, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0xef, 0xfb, 0x36, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x5e, 0xd2, 0x58, 0xc3, 0xe7, 0x2e, 0x1b, 0x2c, 0x9f, 0xbc, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x9a, 0xd2, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xad, 0xd2, 0xd8, 0xf0, 0xb9, 0xcb, 0x80, 0xc7, 0x16, 0x36, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0x60, 0x69, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0x6a, 0x69, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0x6c, 0xd0, 0xc8, 0xf6, 0xc0, 0xa1, 0x91, 0xe0, 0x06, 0xab, 0xc0, 0x64, 0x37, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x6f, 0xce, 0x06, 0xad, 0x8b, 0x15, 0x1c, 0x1a, 0x09, 0x1e, 0x2c, 0x73, 0x92, 0xdd, 0xf0, 0x3c, 0xc9, 0x06, 0xef, 0xfb, 0x36, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x5e, 0xd2, 0x58, 0xc3, 0xe7, 0x2e, 0x03, 0x9e, 0x5e, 0x99, 0xbb, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xe4, 0xa5, 0xb1, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x0a, 0xa6, 0xb1, 0x86, 0xcf, 0x5d, 0x36, 0x58, 0xdc, 0x99, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x31, 0xa6, 0xb1, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x58, 0xa6, 0xb1, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x25, 0xc4, 0x37, 0x58, 0x41, 0xa6, 0xbf, 0xe1, 0x6d, 0x9d, 0x83, 0x47, 0xc6, 0x7e, 0x6c, 0xd0, 0x6a, 0xa6, 0x53, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x45, 0x5e, 0x1a, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xa1, 0x60, 0x1a, 0x1b, 0x3e, 0x77, 0x19, 0xf0, 0xd8, 0xc2, 0xce, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xb2, 0x35, 0x8d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xe8, 0x36, 0x8d, 0x0d, 0x4a, 0x09, 0xf1, 0x0d, 0x56, 0x90, 0xe9, 0x1f, 0x3c, 0x42, 0x0a, 0x64, 0xc3, 0xf3, 0x24, 0x1b, 0xbc, 0xef, 0xdb, 0x64, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x7b, 0x49, 0x63, 0xc3, 0xe7, 0x2e, 0x1b, 0x9a, 0x1f, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0xd1, 0x69, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0xdb, 0x69, 0xac, 0xe1, 0x73, 0x97, 0x01, 0xcf, 0x2c, 0x8c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0xca, 0xd3, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0xdd, 0xd3, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x12, 0xe2, 0x1b, 0xac, 0x20, 0xd3, 0xdf, 0xf0, 0x6e, 0xcf, 0x06, 0xef, 0xd7, 0x02, 0x59, 0xc3, 0x47, 0xed, 0x07, 0x8f, 0xe5, 0x02, 0xe9, 0xa0, 0x61, 0xe7, 0x83, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x38, 0x3a, 0x8d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x66, 0x3b, 0x8d, 0x35, 0x7c, 0xee, 0x32, 0xe0, 0xb1, 0xd5, 0xb1, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x81, 0x8b, 0x1a, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xed, 0x8d, 0x1a, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x52, 0x42, 0x7c, 0x83, 0x15, 0x64, 0xfa, 0x1b, 0xde, 0xd6, 0x39, 0x68, 0x93, 0x3b, 0x6a, 0x43, 0x33, 0x9e, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xe3, 0xe8, 0x34, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x9b, 0xed, 0x34, 0xd6, 0xf0, 0xb9, 0xcb, 0x80, 0xa7, 0x57, 0x37, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0x4f, 0x6a, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0x59, 0x6a, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0xe7, 0x61, 0x9c, 0x6c, 0xf0, 0xcc, 0x8f, 0x8a, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xe3, 0xe8, 0x34, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x9b, 0xed, 0x34, 0x36, 0x7c, 0xee, 0x32, 0xe0, 0xd9, 0x85, 0xb9, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xa9, 0x9b, 0x1a, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x15, 0x9e, 0x1a, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x52, 0x42, 0x7c, 0x83, 0x15, 0x64, 0xfa, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0x69, 0x6b, 0x20, 0x6b, 0xf8, 0xa8, 0xfd, 0xe0, 0x09, 0x6d, 0x20, 0x6b, 0xf8, 0xa8, 0xfd, 0xe0, 0xb5, 0x6e, 0x20, 0x2d, 0xc1, 0xfc, 0x76, 0xb0, 0x92, 0x4e, 0xff, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x83, 0x57, 0x7a, 0x9b, 0x6c, 0x98, 0xb8, 0x35, 0x4c, 0xdc, 0x1a, 0xe6, 0x7e, 0x83, 0x91, 0xb9, 0xb4, 0xa1, 0x8e, 0xac, 0x61, 0x86, 0xd6, 0x30, 0x71, 0x1b, 0xa6, 0x73, 0xc3, 0x0c, 0xad, 0x61, 0xe2, 0xd6, 0x30, 0xf7, 0x1b, 0x84, 0x2b, 0xc2, 0x86, 0x62, 0xba, 0x06, 0x0f, 0xde, 0xc0, 0x38, 0x78, 0x09, 0xe0, 0xc7, 0x86, 0x19, 0xda, 0xe0, 0xe5, 0xa0, 0x25, 0x1b, 0x4e, 0x84, 0x0d, 0x5e, 0x0e, 0x5a, 0xb2, 0xc1, 0x62, 0x36, 0xa8, 0x65, 0x96, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x79, 0x92, 0x35, 0x58, 0xa8, 0x4c, 0x75, 0xb0, 0xee, 0x2c, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x36, 0x24, 0x63, 0xc3, 0xbb, 0x3d, 0x6b, 0x50, 0x4a, 0x88, 0x6f, 0xb0, 0x82, 0x4c, 0x7f, 0xc3, 0xbb, 0x3d, 0x1b, 0xbc, 0xba, 0xf0, 0x63, 0x0d, 0x1f, 0xb5, 0x1f, 0xbc, 0xee, 0xf0, 0x63, 0x0d, 0x1f, 0xb5, 0x1f, 0x3c, 0x36, 0xf1, 0xa3, 0x83, 0x63, 0xcc, 0xd9, 0xc1, 0x4a, 0x3a, 0xfd, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x0e, 0xe7, 0xf1, 0x41, 0xb3, 0x97, 0x10, 0x1b, 0x4e, 0x84, 0x0d, 0x1e, 0x07, 0x73, 0x72, 0xd0, 0xaa, 0x2b, 0xc4, 0x41, 0x43, 0xb0, 0x10, 0x1b, 0x26, 0x6e, 0x0d, 0x73, 0xbf, 0x41, 0x69, 0x96, 0xbd, 0xa1, 0x8e, 0xac, 0x61, 0x86, 0xd6, 0x30, 0x71, 0x1b, 0xa6, 0x73, 0xc3, 0x0c, 0xad, 0x61, 0xe2, 0xd6, 0x30, 0xf7, 0x1b, 0x84, 0x2b, 0xc2, 0x86, 0x62, 0xba, 0x06, 0x0f, 0xde, 0xc0, 0x38, 0x78, 0x9c, 0xd6, 0xc8, 0x86, 0x19, 0xda, 0xe0, 0xe5, 0xa0, 0x25, 0x1b, 0x4e, 0x84, 0x0d, 0x5e, 0x0e, 0x5a, 0xb2, 0xc1, 0x62, 0x36, 0xa8, 0x65, 0x96, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x79, 0x92, 0x35, 0x58, 0xa8, 0x4c, 0x75, 0xf0, 0x6e, 0x0c, 0x90, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x0e, 0x17, 0x8f, 0x35, 0x7c, 0xee, 0xb2, 0xc1, 0x2b, 0x2a, 0x45, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xf3, 0x60, 0x3c, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x9b, 0x65, 0x3c, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xa5, 0x84, 0xf8, 0x06, 0x2b, 0xc8, 0xf4, 0x37, 0xbc, 0xad, 0x73, 0xf0, 0xa8, 0x4b, 0x91, 0x83, 0x73, 0xbd, 0xc1, 0x86, 0xe7, 0x49, 0x36, 0x78, 0x02, 0xd3, 0xc9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x87, 0x8b, 0xc7, 0x86, 0xcf, 0x5d, 0x36, 0x78, 0xb1, 0xbc, 0xc8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xfb, 0x8d, 0xc7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x91, 0x8e, 0xc7, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x94, 0x10, 0xdf, 0x60, 0x05, 0x99, 0xfe, 0x86, 0xb7, 0x75, 0x0e, 0x5e, 0x8a, 0x36, 0x72, 0x70, 0x00, 0x4d, 0x3a, 0x58, 0x49, 0xa7, 0x7f, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0xe1, 0x3c, 0x3e, 0x68, 0xf6, 0x12, 0x62, 0xc3, 0x89, 0xb0, 0xc1, 0xa3, 0x89, 0x4e, 0x0e, 0x5a, 0x75, 0x85, 0x38, 0x68, 0x08, 0x16, 0x62, 0xc3, 0xc4, 0xad, 0x61, 0xee, 0x07, 0xbc, 0xb3, 0xb2, 0x76, 0x43, 0x1d, 0x59, 0xc3, 0x0c, 0x6d, 0xf0, 0x72, 0xd0, 0x92, 0x0d, 0x27, 0xc2, 0x06, 0x2f, 0x07, 0x2d, 0xd9, 0x60, 0x31, 0x1b, 0xd4, 0x32, 0xcb, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0x3c, 0xc9, 0x1a, 0x2c, 0x54, 0xa6, 0x3a, 0x78, 0x42, 0xe2, 0xc7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xf2, 0x07, 0xc6, 0x1a, 0x3e, 0x77, 0xd9, 0xe0, 0x01, 0xe1, 0x1e, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x6d, 0x23, 0x18, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xdd, 0x25, 0x18, 0x07, 0x0d, 0x89, 0x79, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0x17, 0x98, 0x9d, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0x7f, 0x60, 0x6c, 0xf8, 0xdc, 0x65, 0x83, 0xa7, 0x93, 0x7b, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0xa8, 0x60, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0xb2, 0x60, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0x4a, 0x09, 0xf1, 0x0d, 0x56, 0x90, 0xe9, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0xc7, 0x9c, 0x7b, 0xac, 0xe1, 0xa3, 0xf6, 0x83, 0x27, 0xa3, 0x7b, 0x74, 0x70, 0x00, 0x4d, 0x3a, 0x58, 0x49, 0xa7, 0x7f, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0xc1, 0x3b, 0xca, 0x4e, 0x36, 0x4c, 0xdc, 0x1a, 0xe6, 0x7e, 0xc0, 0x23, 0xab, 0x23, 0x37, 0xd4, 0x91, 0x35, 0xcc, 0xd0, 0x1a, 0x26, 0x6e, 0xc3, 0x74, 0x6e, 0x98, 0xa1, 0x35, 0x4c, 0xdc, 0x1a, 0xe6, 0x7e, 0x83, 0x70, 0x45, 0xd8, 0x50, 0x4c, 0xd7, 0xe0, 0xc1, 0x1b, 0x18, 0x07, 0x6f, 0x72, 0x19, 0xd9, 0x30, 0x43, 0x1b, 0xbc, 0x1c, 0xb4, 0x64, 0xc3, 0x89, 0xb0, 0xc1, 0xcb, 0x41, 0x4b, 0x36, 0x58, 0xcc, 0x06, 0xb5, 0xcc, 0xb2, 0xe1, 0x13, 0x9b, 0x35, 0x3c, 0x4f, 0xb2, 0x06, 0x0b, 0x95, 0xa9, 0x0e, 0xde, 0xcf, 0x0e, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x53, 0xe0, 0xb1, 0x86, 0xcf, 0x5d, 0x36, 0x78, 0xdf, 0xce, 0xc8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xe6, 0x81, 0xc7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x7c, 0x82, 0xc7, 0x41, 0x43, 0x62, 0x1e, 0x1b, 0x9e, 0x27, 0xd9, 0xe0, 0x5d, 0x80, 0x27, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x3d, 0x05, 0x1e, 0x1b, 0x3e, 0x77, 0xd9, 0xe0, 0x44, 0x99, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xdb, 0xe0, 0xb1, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x00, 0xe1, 0xb1, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x25, 0xc4, 0x37, 0x58, 0x41, 0xa6, 0xbf, 0xe1, 0x6d, 0x9d, 0x83, 0xd6, 0xc6, 0x03, 0x0f, 0x0e, 0xa0, 0x49, 0x07, 0x2b, 0xe9, 0xf4, 0x0f, 0xa7, 0xd8, 0xe1, 0x14, 0x3b, 0x9c, 0xc7, 0x07, 0x6d, 0x07, 0x5c, 0x6c, 0x38, 0x11, 0x36, 0x78, 0x49, 0xde, 0xc9, 0x41, 0x5b, 0x0c, 0x17, 0x07, 0xcd, 0x37, 0x5c, 0x6c, 0x98, 0xfb, 0x0d, 0x16, 0x88, 0x98, 0x6e, 0xa8, 0x23, 0x6b, 0x98, 0xa1, 0x35, 0x4c, 0xdc, 0x86, 0xe9, 0xdc, 0x30, 0x43, 0x6b, 0x98, 0xb8, 0x35, 0xcc, 0xfd, 0x06, 0xe1, 0x8a, 0xb0, 0x61, 0x86, 0xd6, 0x30, 0x71, 0x1b, 0xa6, 0x73, 0xc3, 0x0c, 0xad, 0x61, 0x86, 0xd6, 0x30, 0x43, 0x1b, 0x3c, 0x78, 0x03, 0x63, 0xc3, 0x89, 0xb0, 0xc1, 0x83, 0x37, 0x30, 0x36, 0x58, 0xcc, 0x06, 0xb5, 0xcc, 0x1a, 0x2c, 0xc1, 0x24, 0xde, 0xa0, 0x94, 0x10, 0x5f, 0x83, 0x92, 0x85, 0x7d, 0x96, 0x59, 0xc0, 0x9f, 0x2b, 0x2b, 0x23, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x38, 0x32, 0x84, 0x1e, 0x3c, 0x94, 0xf3, 0xa4, 0x01, 0xf8, 0x70, 0x2b, 0xc3, 0xa3, 0x03, 0x59, 0x2b, 0x93, 0x73, 0x2b, 0x63, 0x03, 0x99, 0x7b, 0xab, 0x93, 0x1b, 0x2b, 0xdb, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0x28, 0xe7, 0xc9, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0x80, 0x87, 0x56, 0xe7, 0x6e, 0x10, 0xfa, 0x25, 0x1b, 0x94, 0x4d, 0x98, 0x07, 0x67, 0x0d, 0xd2, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0x85, 0xc9, 0xd9, 0x07, 0x27, 0x20, 0xd1, 0x66, 0x01, 0xff, 0x0d, 0xae, 0x8c, 0xdc, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xe0, 0xc8, 0x10, 0x7a, 0xf0, 0xe4, 0xd3, 0x93, 0x06, 0xf0, 0x6d, 0x7b, 0x23, 0xab, 0x63, 0x2b, 0x03, 0xa9, 0x83, 0x23, 0x0b, 0xa3, 0x2b, 0x9b, 0xdb, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0xf2, 0xe9, 0xc9, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0x80, 0xc7, 0x56, 0xc7, 0x1e, 0xbc, 0x95, 0xf4, 0x64, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x7a, 0x75, 0xf3, 0xc1, 0x5b, 0x49, 0x4f, 0xd6, 0xf0, 0xe7, 0xd2, 0x80, 0x67, 0x17, 0xe6, 0x6e, 0x10, 0xfa, 0x25, 0x1b, 0x84, 0x94, 0xc9, 0x1a, 0x84, 0x7e, 0xc9, 0x06, 0xaf, 0x63, 0xf8, 0x38, 0x38, 0x6b, 0x90, 0xd6, 0x2c, 0xe0, 0xbb, 0x95, 0xdd, 0xcd, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x1c, 0x19, 0x42, 0x0f, 0xde, 0x51, 0x7b, 0xd2, 0x00, 0xfe, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0xef, 0xa8, 0x3d, 0xd9, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0xda, 0x20, 0x3d, 0xcc, 0x7b, 0x83, 0xd0, 0x2f, 0xd9, 0xa0, 0x44, 0xac, 0xdf, 0xe0, 0x8c, 0x84, 0xba, 0x06, 0xa1, 0x5f, 0xb2, 0xc1, 0xeb, 0x18, 0x3e, 0x6a, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x75, 0x73, 0xe5, 0xc1, 0xb3, 0x79, 0x4f, 0x3a, 0x9c, 0x62, 0x87, 0x53, 0x6c, 0x83, 0xb2, 0x4b, 0x76, 0x83, 0x25, 0x98, 0xc4, 0x6b, 0xb8, 0xa4, 0xd6, 0x78, 0x7c, 0xb0, 0xa0, 0x95, 0xb8, 0xd9, 0xa0, 0x64, 0x61, 0x9f, 0x05, 0x78, 0xcb, 0xdc, 0xce, 0xd2, 0xdc, 0xca, 0xe6, 0x59, 0x80, 0x27, 0x8c, 0x2c, 0x0c, 0x8e, 0xde, 0xa0, 0x94, 0x10, 0x5f, 0x83, 0x92, 0x85, 0x7d, 0x96, 0x59, 0xc0, 0x9f, 0x7b, 0x63, 0x2b, 0x37, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x0f, 0x0f, 0xde, 0xe5, 0x7b, 0xb2, 0xe1, 0x2f, 0x9a, 0x0d, 0x4e, 0x40, 0xa2, 0x1b, 0x14, 0x7c, 0x98, 0x6b, 0x50, 0x4c, 0x62, 0xae, 0xe1, 0x73, 0xa5, 0x0d, 0x5a, 0x89, 0xb6, 0x3c, 0x38, 0x3e, 0xb9, 0x1e, 0x1e, 0xdc, 0x39, 0x68, 0x71, 0x2e, 0xf5, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x0d, 0xca, 0x32, 0xec, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0x99, 0x85, 0xd1, 0x1b, 0x84, 0x7e, 0xc9, 0x06, 0xef, 0xd3, 0xfd, 0x38, 0x78, 0x95, 0xef, 0xc9, 0x2c, 0xb3, 0x00, 0xcf, 0x99, 0xdc, 0x5b, 0x1d, 0xbc, 0xe1, 0x17, 0xa5, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0x09, 0xf4, 0x6e, 0x83, 0xd0, 0x2f, 0xd9, 0x20, 0xa4, 0x4c, 0xd6, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0xbd, 0xe9, 0x0f, 0x1e, 0xdd, 0x7b, 0xd2, 0x06, 0xa5, 0xbd, 0xe5, 0x1a, 0xfe, 0x5c, 0xda, 0xa0, 0xf0, 0x37, 0xd8, 0xf0, 0xef, 0xfc, 0x1a, 0xbc, 0xa3, 0xf6, 0xa4, 0x36, 0x7c, 0x85, 0xb3, 0xe1, 0xeb, 0x97, 0x0d, 0x0e, 0x78, 0x56, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x9c, 0x48, 0xf0, 0x36, 0x38, 0xe0, 0x59, 0x6d, 0xb0, 0xd2, 0xc5, 0x69, 0x83, 0xf5, 0xe5, 0xe9, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0x78, 0xf0, 0xf4, 0xe0, 0x44, 0x82, 0xb7, 0xc1, 0x4a, 0x17, 0xa7, 0x0d, 0xca, 0xff, 0xe2, 0x35, 0xbc, 0xad, 0x33, 0x78, 0x7c, 0xf0, 0x5c, 0xef, 0x93, 0x0d, 0x0a, 0xd2, 0xd8, 0x0d, 0xda, 0xbb, 0xcf, 0x5a, 0xc3, 0xbb, 0x3d, 0x6b, 0x50, 0x96, 0xbc, 0x6f, 0x50, 0xb8, 0x89, 0xae, 0xe1, 0x6d, 0x9d, 0x81, 0x7f, 0x33, 0x5b, 0xc3, 0xdb, 0x3a, 0x03, 0x9e, 0x59, 0x18, 0x5d, 0x07, 0x4b, 0xc8, 0xd3, 0x37, 0x38, 0x8e, 0x4d, 0x6c, 0x70, 0x38, 0xbd, 0x58, 0xc3, 0xaf, 0x64, 0x6b, 0x50, 0x4c, 0x62, 0x6e, 0x10, 0x82, 0x0f, 0x07, 0xed, 0x2a, 0x68, 0xad, 0xe1, 0x6d, 0xd6, 0x0d, 0xff, 0xe6, 0xac, 0xe1, 0x6d, 0x9d, 0xc1, 0xeb, 0x83, 0x76, 0x15, 0xb4, 0x0e, 0x4a, 0x3f, 0xe3, 0xd6, 0xf0, 0x41, 0xce, 0x1a, 0x14, 0x93, 0x98, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0xa4, 0x87, 0x79, 0x1f, 0x1c, 0x62, 0x3a, 0x0e, 0xd6, 0x97, 0xa7, 0xaf, 0xe1, 0x92, 0xda, 0xe0, 0x70, 0x7a, 0xb1, 0x1a, 0xa4, 0x87, 0x79, 0xb7, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x4b, 0xde, 0x37, 0x28, 0x5b, 0x50, 0x37, 0x28, 0x9b, 0xea, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0xe9, 0x61, 0xde, 0x07, 0x87, 0xd3, 0x8b, 0x36, 0x58, 0x44, 0x9e, 0x7e, 0x50, 0xf6, 0x19, 0xb7, 0xe1, 0x92, 0xda, 0xe0, 0x70, 0x7a, 0xb1, 0x02, 0x5e, 0xdd, 0x5c, 0xd9, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x2c, 0x79, 0xdf, 0xa0, 0x6c, 0x41, 0xdd, 0xa0, 0x6c, 0xaa, 0x5f, 0xc3, 0xdb, 0x3a, 0x03, 0x5e, 0xdd, 0x5c, 0x79, 0x70, 0x38, 0xbd, 0xe8, 0xe0, 0x29, 0xf5, 0x27, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0x70, 0x22, 0xc1, 0xdb, 0xf0, 0xb6, 0xce, 0xe0, 0xf4, 0xc1, 0x89, 0x04, 0xaf, 0x15, 0xe0, 0x09, 0x23, 0x7b, 0x93, 0x73, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x9e, 0xe5, 0x7f, 0xd2, 0x00, 0xfc, 0x84, 0xd5, 0x9d, 0xb5, 0x95, 0xb9, 0xd1, 0x81, 0x8c, 0x85, 0xc1, 0x85, 0x89, 0xa5, 0xb1, 0xa5, 0xd1, 0xa5, 0x95, 0xcd, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0x6d, 0xf0, 0x02, 0xec, 0x93, 0x35, 0xfc, 0xb9, 0xb4, 0x41, 0xa1, 0x21, 0x70, 0xf8, 0x60, 0xb5, 0x0d, 0x7f, 0xd1, 0xac, 0x41, 0xe8, 0x97, 0x6c, 0x50, 0x7a, 0xd3, 0xaf, 0xe1, 0xdf, 0xf9, 0x35, 0x78, 0xf2, 0xe9, 0x49, 0xad, 0x41, 0x00, 0x9d, 0x1d, 0x3c, 0xa7, 0xfc, 0xa4, 0x0d, 0x8a, 0x0e, 0xda, 0x01, 0x8f, 0xad, 0x8e, 0xdd, 0xe0, 0xa5, 0xe5, 0x27, 0x6b, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x6c, 0xd0, 0xde, 0x7d, 0xd6, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x2c, 0x79, 0xdf, 0xa0, 0x70, 0x13, 0x3d, 0x78, 0xca, 0xfc, 0xc9, 0x1a, 0x1c, 0x5d, 0x07, 0xd7, 0xf0, 0x23, 0xcc, 0xc1, 0x83, 0xdc, 0x4f, 0xd6, 0xf0, 0x23, 0xcc, 0x86, 0x97, 0xef, 0x0e, 0x9e, 0x5f, 0x44, 0x52, 0x1b, 0x14, 0x03, 0xb2, 0x1b, 0xbe, 0x9c, 0x5c, 0x83, 0xc2, 0x50, 0x75, 0x0d, 0x8e, 0xe1, 0x06, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x3c, 0x00, 0xf9, 0xa4, 0x0d, 0x5e, 0xab, 0x7e, 0xd2, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x2c, 0x79, 0xdf, 0xa0, 0x6c, 0x41, 0x3d, 0x78, 0x13, 0xf9, 0xc9, 0x06, 0x2f, 0x7c, 0x40, 0x39, 0x78, 0x80, 0x05, 0xca, 0x06, 0x4b, 0xaa, 0x93, 0x36, 0x78, 0x4e, 0xf9, 0xc9, 0x06, 0x4b, 0xea, 0x97, 0xd6, 0xf0, 0xc6, 0xdd, 0x86, 0x97, 0xef, 0x0e, 0xde, 0xe2, 0x44, 0xb2, 0x41, 0xb1, 0xa3, 0xb9, 0x86, 0xb7, 0x75, 0x36, 0x28, 0x34, 0x04, 0xda, 0xa0, 0xa0, 0xc8, 0xdc, 0xe0, 0x18, 0x6e, 0xb0, 0xe1, 0xdd, 0x9e, 0x0d, 0x9e, 0x4f, 0x81, 0xb2, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x1b, 0xba, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0xde, 0x34, 0x7e, 0x72, 0xf0, 0xbe, 0x07, 0x94, 0xda, 0xa0, 0xe8, 0xd3, 0xdd, 0xe0, 0xc9, 0x1d, 0x28, 0x6b, 0xf8, 0x95, 0x6c, 0x83, 0x77, 0x75, 0xa0, 0xac, 0x41, 0x31, 0x89, 0xb9, 0x41, 0x91, 0x8a, 0x39, 0xe0, 0xb1, 0xd5, 0xb1, 0xb5, 0x41, 0xd1, 0x41, 0x3b, 0xe0, 0xe9, 0xd5, 0xcd, 0x1b, 0xbc, 0xb4, 0xfc, 0x64, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x0d, 0xda, 0xbb, 0xcf, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x8f, 0x6f, 0x40, 0x59, 0x83, 0xa3, 0xeb, 0xe0, 0x06, 0x8f, 0x80, 0x40, 0x59, 0xc3, 0x8f, 0x30, 0x1b, 0x5e, 0xbe, 0x3b, 0x78, 0x2f, 0x1a, 0x49, 0x6d, 0x50, 0x0c, 0xc8, 0x6e, 0xf8, 0x72, 0x72, 0x0d, 0x0a, 0x43, 0xd5, 0x0d, 0x1e, 0x40, 0x81, 0xb2, 0xe1, 0xdd, 0x9e, 0x0d, 0x1e, 0x71, 0x81, 0xb2, 0xc1, 0xb3, 0x55, 0x50, 0x0e, 0x1e, 0x60, 0x81, 0xb2, 0xc1, 0x92, 0xea, 0xa4, 0x0d, 0x9e, 0x53, 0x7e, 0xb2, 0xc1, 0x92, 0xfa, 0xa5, 0x35, 0xbc, 0x71, 0xb7, 0xe1, 0xe5, 0xbb, 0x83, 0xf7, 0xbf, 0x91, 0x6c, 0x50, 0xec, 0x68, 0x6e, 0xf0, 0xae, 0x0e, 0x94, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x8e, 0xe1, 0x06, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0xf9, 0x14, 0x28, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xb3, 0xa1, 0xcb, 0x1a, 0xde, 0xed, 0xd9, 0xe0, 0x4d, 0xe3, 0x27, 0x07, 0x8f, 0x56, 0x41, 0xa9, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0x9e, 0xdc, 0x81, 0xb2, 0x86, 0x5f, 0xc9, 0x36, 0x78, 0x57, 0x07, 0xca, 0x1a, 0x14, 0x93, 0x98, 0x1b, 0x14, 0xa9, 0x98, 0x03, 0x9e, 0x5e, 0xdd, 0x5c, 0x1b, 0x94, 0xf6, 0x96, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x73, 0x0b, 0xb3, 0x37, 0x08, 0xfd, 0x92, 0x0d, 0x4a, 0xc4, 0xfa, 0x0d, 0xd6, 0x6b, 0x3d, 0x1f, 0x9c, 0x35, 0x48, 0x37, 0x38, 0x8e, 0x4d, 0x2c, 0xe0, 0xb9, 0x85, 0xd9, 0x6d, 0xf0, 0xae, 0x0e, 0x94, 0x35, 0x38, 0xb1, 0xdf, 0xac, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0xb9, 0xf3, 0xbe, 0x41, 0xd9, 0x54, 0xbf, 0x86, 0xb7, 0x75, 0x0e, 0x5e, 0x23, 0x84, 0xd2, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x25, 0x52, 0xf5, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0x2c, 0x02, 0x19, 0xdd, 0xa0, 0x6c, 0xaa, 0x5f, 0xc3, 0x83, 0x92, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x23, 0x4b, 0x93, 0xdb, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0x2c, 0xf5, 0x5e, 0x3d, 0x78, 0x13, 0xf9, 0xc9, 0x1a, 0x1c, 0x5d, 0x07, 0x37, 0x78, 0x04, 0x04, 0xca, 0x1a, 0x7e, 0x84, 0xd9, 0xf0, 0xf2, 0xdd, 0xc1, 0x03, 0xc2, 0x3d, 0xaa, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0xb4, 0xe1, 0xfb, 0xf6, 0x83, 0xa3, 0x36, 0xe8, 0xc1, 0x9b, 0x12, 0x50, 0x36, 0xfc, 0xe2, 0xb2, 0x86, 0xaf, 0x5f, 0x36, 0x68, 0x46, 0x73, 0x60, 0xc3, 0xd7, 0x2f, 0x1b, 0x3e, 0x84, 0x39, 0x68, 0x09, 0x83, 0x73, 0x0d, 0xef, 0xf6, 0x6c, 0xf0, 0x7c, 0x0a, 0x94, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xd9, 0xd0, 0x65, 0x83, 0xc4, 0x90, 0xac, 0x6a, 0x83, 0xa2, 0x83, 0x76, 0x83, 0x84, 0x0a, 0xb9, 0x0d, 0x5e, 0x5a, 0x7e, 0xb2, 0x06, 0xab, 0x7a, 0x95, 0x36, 0x38, 0x5b, 0x05, 0xae, 0x41, 0xd1, 0x69, 0xbc, 0x86, 0xb7, 0x75, 0x36, 0x28, 0xe6, 0xcb, 0x5a, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x45, 0x20, 0xa3, 0x07, 0x4f, 0x99, 0x3f, 0xd9, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0xda, 0x20, 0x55, 0x24, 0xf8, 0xe0, 0x10, 0xd3, 0xb1, 0x41, 0x31, 0x89, 0xb9, 0x86, 0xcf, 0x95, 0x36, 0x78, 0x78, 0xfb, 0xc9, 0x1a, 0x32, 0xe0, 0x07, 0x8f, 0x71, 0x42, 0xd9, 0xe0, 0xbc, 0x79, 0x7a, 0x70, 0x5c, 0x3c, 0x39, 0x38, 0x78, 0x64, 0x6c, 0xf0, 0x9c, 0xf2, 0x93, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0xaa, 0x48, 0xf0, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0x3e, 0x78, 0x97, 0xef, 0x49, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x86, 0x83, 0xfb, 0x0e, 0x5e, 0x95, 0x80, 0xd2, 0x86, 0xbf, 0x68, 0xd6, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0xbd, 0xe9, 0x37, 0x78, 0xd9, 0xec, 0xc9, 0xc1, 0x9b, 0x12, 0x50, 0x36, 0x28, 0xf8, 0x30, 0x37, 0x78, 0xcd, 0x17, 0xca, 0x06, 0x2b, 0x5d, 0x9c, 0x36, 0x68, 0x04, 0x2d, 0x6b, 0x0d, 0x6f, 0xeb, 0x0c, 0x9e, 0x0e, 0x4e, 0x0f, 0x4e, 0x1f, 0x1c, 0x3c, 0x32, 0x36, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x59, 0xe3, 0xdc, 0x06, 0xeb, 0xb2, 0xeb, 0x3a, 0x68, 0xe7, 0x2c, 0x6b, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0x5f, 0xbf, 0x6c, 0xd0, 0x8c, 0xe6, 0xc0, 0x86, 0xaf, 0x5f, 0x36, 0x7c, 0x08, 0x73, 0xd0, 0xd2, 0x59, 0xd6, 0x1a, 0xde, 0xed, 0xd9, 0xe0, 0xf9, 0x14, 0x28, 0x07, 0x87, 0x5e, 0xbe, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0x94, 0x2d, 0xa8, 0x1b, 0xbc, 0x8a, 0xfc, 0x64, 0x83, 0x86, 0xa6, 0xfb, 0x3a, 0x58, 0xbf, 0x88, 0xd7, 0x06, 0x0b, 0x30, 0x9b, 0x06, 0x3c, 0xbb, 0x30, 0x77, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0xad, 0x73, 0xf0, 0x0a, 0x13, 0x94, 0x35, 0xbc, 0xad, 0x73, 0xf0, 0xc2, 0x1e, 0x94, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xd9, 0x85, 0xb9, 0x75, 0xf0, 0x98, 0xf2, 0x93, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x9a, 0x0b, 0x30, 0x5c, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x45, 0x20, 0xa3, 0x1b, 0x94, 0x4d, 0xf5, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xd7, 0x0f, 0xa1, 0x6c, 0x90, 0x16, 0x21, 0x57, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x05, 0xd9, 0xa9, 0x07, 0x87, 0x98, 0x8e, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x17, 0x0f, 0xce, 0x9b, 0xa7, 0x07, 0x87, 0x98, 0x8e, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x8b, 0x04, 0x86, 0x87, 0xdf, 0xcf, 0x0e, 0xa7, 0xd8, 0x02, 0x3c, 0x75, 0x73, 0x75, 0x72, 0xf0, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0x5b, 0x14, 0x51, 0x1a, 0x80, 0xc7, 0xb1, 0x37, 0xb7, 0xb9, 0x34, 0xb2, 0x32, 0x39, 0x90, 0xb9, 0x32, 0x36, 0xb3, 0x16, 0xb9, 0x32, 0x38, 0xb6, 0xb0, 0xb1, 0xb2, 0xb6, 0x32, 0x37, 0xba, 0x0d, 0xbf, 0x28, 0x6d, 0xf0, 0x02, 0xec, 0x93, 0x0d, 0x7f, 0xd1, 0xac, 0x41, 0xe8, 0x97, 0x6c, 0x50, 0x36, 0x61, 0xae, 0x41, 0xe8, 0x97, 0x6c, 0x50, 0x7a, 0xd3, 0xaf, 0xe1, 0xdf, 0xf9, 0x35, 0x78, 0x28, 0xe7, 0x49, 0x6d, 0xf0, 0x7c, 0xea, 0x93, 0xda, 0xa0, 0x20, 0x8d, 0x1d, 0xf0, 0xd0, 0xea, 0xdc, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xe3, 0x1b, 0x50, 0xd6, 0xe0, 0xe8, 0x3a, 0xb8, 0xc1, 0x23, 0x20, 0x50, 0xd6, 0xf0, 0x23, 0xcc, 0x41, 0xeb, 0xd1, 0x96, 0xb5, 0x41, 0x41, 0x1a, 0x3b, 0xe0, 0x85, 0xc9, 0xd9, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xc7, 0x37, 0xa0, 0xac, 0xc1, 0xd1, 0x75, 0x70, 0x83, 0x47, 0x40, 0xa0, 0xac, 0xe1, 0x47, 0x98, 0x0d, 0x2f, 0xdf, 0x1d, 0x3c, 0x0c, 0x04, 0xa3, 0x36, 0x28, 0xe1, 0x31, 0x17, 0xf0, 0xd0, 0xea, 0xdc, 0xd6, 0xa0, 0x84, 0xc7, 0x5c, 0xc0, 0x0b, 0x93, 0xb3, 0xdb, 0xa0, 0xa0, 0xc8, 0xdc, 0xe0, 0x18, 0x6e, 0xb0, 0xe1, 0x17, 0x97, 0x35, 0x38, 0x86, 0x1b, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0xe7, 0x53, 0xa0, 0xac, 0xe1, 0x6d, 0x9d, 0xc1, 0xeb, 0x83, 0xe7, 0x80, 0xa2, 0xb4, 0x86, 0x5f, 0x5c, 0x36, 0x78, 0xfd, 0x26, 0xca, 0xc1, 0x9b, 0x47, 0x51, 0x0e, 0xca, 0x3a, 0xcf, 0x0d, 0x0a, 0xd2, 0xd8, 0x01, 0x4f, 0x2e, 0xcc, 0x5e, 0x83, 0x25, 0xf5, 0x4b, 0x6b, 0x78, 0xe3, 0x6e, 0xc3, 0xcb, 0x77, 0x07, 0x8f, 0x67, 0x27, 0xd9, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x9c, 0xd9, 0x13, 0x5a, 0x83, 0xf3, 0x60, 0xc7, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x1b, 0xba, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0xde, 0x34, 0x7e, 0x72, 0xf0, 0xf6, 0x4d, 0x94, 0x5a, 0xc3, 0xdb, 0x3a, 0x07, 0xcf, 0x01, 0x45, 0x69, 0x83, 0xb5, 0xe8, 0x4c, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x93, 0x0b, 0xb3, 0xdb, 0xe0, 0x9c, 0xbf, 0xb4, 0x41, 0x41, 0x91, 0xb9, 0x86, 0x5f, 0x5c, 0xd6, 0xe0, 0x18, 0x6e, 0xb0, 0xe1, 0xdd, 0x9e, 0x0d, 0x9e, 0x4f, 0x81, 0xb2, 0x86, 0xb7, 0x75, 0x06, 0xaf, 0x0f, 0x1e, 0xf1, 0x89, 0xd2, 0x1a, 0xde, 0xed, 0xd9, 0xe0, 0xf9, 0x14, 0x28, 0x1b, 0xbc, 0x19, 0x16, 0xa5, 0x36, 0xfc, 0xe2, 0xb2, 0x86, 0x5f, 0x5c, 0x36, 0x78, 0xfd, 0x26, 0xca, 0xc1, 0x4b, 0x6e, 0x51, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x8f, 0xbd, 0x44, 0x39, 0x78, 0x35, 0x2d, 0xca, 0x41, 0x59, 0xe7, 0x79, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0x0a, 0x3c, 0x5b, 0xb9, 0x41, 0xd9, 0x25, 0x3b, 0xf0, 0x6c, 0xe5, 0x1a, 0x2e, 0xa9, 0x35, 0x1e, 0x1f, 0x94, 0xff, 0xeb, 0xcd, 0x06, 0xa5, 0xbd, 0xe5, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0x8c, 0xcc, 0xa5, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0x90, 0x32, 0xd9, 0xe0, 0xf5, 0x10, 0x20, 0xad, 0xe1, 0xcf, 0xa5, 0x0d, 0x4a, 0xb3, 0xec, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0x90, 0x32, 0xd9, 0xe0, 0x69, 0x18, 0x20, 0xad, 0xe1, 0xcf, 0xa5, 0x01, 0xef, 0xac, 0xac, 0x3d, 0x78, 0x25, 0xe2, 0xc7, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xc8, 0xea, 0xc8, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0xb2, 0x09, 0x73, 0x83, 0x27, 0xb2, 0x83, 0xb4, 0x86, 0x3f, 0x97, 0x36, 0x58, 0x20, 0x62, 0xba, 0x41, 0xe8, 0x97, 0x6c, 0x50, 0x36, 0x61, 0xae, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0x42, 0xf2, 0xdf, 0x0d, 0xc2, 0x69, 0x6c, 0x0d, 0xff, 0xce, 0xaf, 0xc1, 0x4b, 0x0d, 0x41, 0x6a, 0x83, 0xd0, 0x2f, 0xd9, 0xe0, 0x2c, 0xa4, 0x70, 0x70, 0x3c, 0xc7, 0x58, 0xc3, 0x9f, 0x4b, 0x1b, 0x2c, 0xe2, 0xa7, 0x3d, 0x78, 0x3e, 0xf5, 0xc9, 0x1a, 0xfe, 0x5c, 0xda, 0x60, 0x24, 0x30, 0x1c, 0x3c, 0x9f, 0xfa, 0xa4, 0xda, 0xa0, 0x2c, 0xc3, 0x5e, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x6d, 0xa8, 0x11, 0x07, 0xcd, 0x6e, 0x47, 0xad, 0xe1, 0xcf, 0xa5, 0x0d, 0xda, 0xcc, 0x53, 0xdb, 0xf0, 0xef, 0xfc, 0x06, 0xcf, 0xe4, 0x35, 0xa9, 0x0d, 0x5e, 0xa2, 0x0b, 0xd2, 0x6a, 0x10, 0x96, 0x36, 0x07, 0x89, 0x2d, 0x55, 0x0b, 0x78, 0x73, 0x6f, 0xec, 0xc1, 0x39, 0x33, 0xa9, 0x65, 0x16, 0xf0, 0xe1, 0xd8, 0xde, 0xee, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x67, 0x6a, 0xa3, 0x34, 0x00, 0x7e, 0xbc, 0xc1, 0x95, 0xc9, 0x85, 0xd1, 0x95, 0x81, 0xbc, 0xb9, 0x81, 0x84, 0x81, 0xd8, 0x85, 0xb9, 0x95, 0xb1, 0x80, 0xa4, 0xb9, 0x81, 0xd0, 0xa5, 0xb5, 0x95, 0x81, 0x84, 0xb9, 0x91, 0x81, 0xcc, 0xc1, 0x85, 0x8d, 0x95, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x6d, 0xd0, 0x22, 0x8e, 0xd5, 0xc1, 0x7a, 0xad, 0xe7, 0x0d, 0x96, 0xd4, 0x2f, 0xad, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0x71, 0xb7, 0xe1, 0xe5, 0xbb, 0x83, 0x27, 0xae, 0x94, 0x6c, 0xd0, 0x60, 0x98, 0x55, 0x1b, 0x14, 0xa4, 0xb1, 0x6b, 0xf8, 0xbe, 0x7d, 0x83, 0x07, 0x84, 0x7b, 0x6c, 0x50, 0x42, 0xc7, 0x6e, 0xf0, 0xea, 0x37, 0x90, 0x83, 0x30, 0x1d, 0x5b, 0x83, 0x25, 0xf5, 0x4b, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0xee, 0xe0, 0xed, 0x35, 0x25, 0x07, 0x6f, 0x33, 0x47, 0xd9, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0xb4, 0xb7, 0x96, 0xb5, 0x41, 0xd9, 0x54, 0xbf, 0x86, 0xb7, 0x75, 0x06, 0x3c, 0xbb, 0x30, 0xf7, 0x20, 0x58, 0x6f, 0x3b, 0x78, 0x9b, 0x39, 0xca, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x2c, 0x79, 0x5f, 0x83, 0x67, 0x6a, 0xa3, 0xb4, 0x86, 0xb7, 0x75, 0x06, 0xde, 0x2e, 0x6c, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0xfe, 0xad, 0xda, 0x1a, 0xde, 0xd6, 0x39, 0x78, 0x12, 0x1c, 0x48, 0x6d, 0x90, 0xee, 0xba, 0xb9, 0x41, 0x13, 0xbd, 0x52, 0xad, 0x06, 0xcf, 0x7b, 0xc3, 0xd8, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x78, 0xde, 0x1b, 0x46, 0x03, 0xf0, 0xd3, 0x56, 0x16, 0x36, 0x57, 0x27, 0x57, 0x06, 0xd2, 0x56, 0xd6, 0xf6, 0x26, 0x97, 0x07, 0x52, 0x37, 0x17, 0x76, 0x56, 0xb6, 0xe1, 0x2f, 0x9a, 0x0d, 0x1e, 0xab, 0x31, 0xb2, 0xc1, 0x02, 0xcc, 0xa6, 0x35, 0x7c, 0xdf, 0xbe, 0xc1, 0x2a, 0xf5, 0xdf, 0x0d, 0x4a, 0xe8, 0xd8, 0x35, 0x08, 0xfd, 0x92, 0x0d, 0x42, 0xca, 0x64, 0x83, 0xc7, 0x6a, 0x8c, 0x74, 0x10, 0xa6, 0x63, 0x6b, 0x70, 0xce, 0x5f, 0x5a, 0xc3, 0x1b, 0x77, 0x07, 0x0f, 0xec, 0x44, 0xd9, 0x60, 0x99, 0x93, 0xec, 0x06, 0x47, 0xd7, 0xc1, 0x35, 0x38, 0xe7, 0x2f, 0x6d, 0xd0, 0x62, 0xd3, 0xe5, 0x06, 0xcb, 0x9c, 0x64, 0x37, 0x38, 0xba, 0x0e, 0xae, 0x41, 0x6b, 0xa1, 0xa0, 0x1b, 0xac, 0x02, 0x93, 0xdd, 0x70, 0x49, 0xad, 0xf1, 0xf8, 0xf0, 0x1b, 0x7d, 0xab, 0xe1, 0x8d, 0xbb, 0x0d, 0x2f, 0xdf, 0x1d, 0x34, 0x39, 0xe4, 0xbd, 0xc1, 0x2a, 0x30, 0xd9, 0x0d, 0x97, 0xd4, 0x1a, 0x8f, 0x0f, 0x0a, 0xab, 0xea, 0x56, 0xc3, 0x1b, 0x77, 0x1b, 0x5e, 0xbe, 0x0b, 0x3c, 0x3a, 0xb9, 0x74, 0x83, 0x55, 0x60, 0xb2, 0x1b, 0x2e, 0xa9, 0x35, 0x1e, 0x1f, 0xac, 0xaa, 0x72, 0x6d, 0x35, 0xbc, 0x71, 0xb7, 0xe1, 0xe5, 0xbb, 0xc0, 0x8b, 0xab, 0x0b, 0x37, 0x58, 0x05, 0x26, 0xbb, 0xe1, 0x92, 0x5a, 0xe3, 0xf1, 0xc1, 0x8a, 0xc7, 0xb9, 0x56, 0xc3, 0x1b, 0x77, 0x1b, 0x5e, 0xbe, 0x0b, 0x3c, 0xb8, 0x32, 0x77, 0x83, 0x55, 0x60, 0xb2, 0x1b, 0x2e, 0xa9, 0x35, 0x1e, 0x6f, 0xd0, 0x18, 0x11, 0x72, 0xb5, 0x1a, 0xde, 0xb8, 0xdb, 0xf0, 0xf2, 0xdd, 0xc1, 0x4a, 0xce, 0xd0, 0x0d, 0x56, 0x81, 0xc9, 0x1e, 0xbc, 0x59, 0xf8, 0x64, 0x35, 0xbc, 0x71, 0xb7, 0xe1, 0xe5, 0xbb, 0x43, 0x8d, 0xd8, 0x60, 0x15, 0x98, 0xec, 0x86, 0xb7, 0x75, 0x36, 0xd4, 0x88, 0x56, 0xc3, 0x1b, 0x77, 0x07, 0xef, 0x8b, 0x40, 0xd9, 0x60, 0x99, 0x93, 0xec, 0x86, 0x07, 0x25, 0xd7, 0xf0, 0x8b, 0xcb, 0x6a, 0x78, 0xe3, 0x6e, 0xc3, 0xcb, 0x77, 0x07, 0x0b, 0x63, 0x48, 0x37, 0x58, 0x05, 0x26, 0x7b, 0x70, 0x3a, 0x12, 0x59, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0xee, 0xa0, 0xf1, 0xf9, 0xa8, 0x0d, 0x56, 0x81, 0xc9, 0x1e, 0x9c, 0x2e, 0x32, 0x0e, 0xca, 0x3a, 0xcf, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x6c, 0x75, 0xec, 0x41, 0xb0, 0xde, 0xae, 0x86, 0x37, 0xee, 0x0e, 0x5e, 0xc6, 0x82, 0xb2, 0xc1, 0x32, 0x27, 0xd9, 0x0d, 0x0f, 0x4a, 0x6e, 0xf0, 0x18, 0x8e, 0x94, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x7a, 0x75, 0xf3, 0x41, 0xb0, 0xde, 0xae, 0x86, 0x37, 0xee, 0x0e, 0x1e, 0xe3, 0x84, 0xb2, 0xc1, 0x32, 0x27, 0xd9, 0x83, 0x65, 0xf2, 0xc3, 0x6d, 0x50, 0x74, 0x1a, 0x6f, 0x50, 0x22, 0x55, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0x9a, 0x0b, 0x30, 0x5c, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x45, 0x20, 0xa3, 0x07, 0xaf, 0x74, 0x47, 0xd9, 0xe0, 0xe5, 0x83, 0x28, 0x6d, 0x50, 0x90, 0xc6, 0xae, 0xe1, 0xfb, 0xf6, 0x01, 0x4f, 0xac, 0xac, 0xdd, 0xa0, 0x84, 0x8e, 0xdd, 0xe0, 0x29, 0xc1, 0x21, 0x07, 0x61, 0x3a, 0xb6, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xde, 0xea, 0xe4, 0x36, 0x48, 0x4a, 0x0b, 0x5e, 0x83, 0x15, 0x4e, 0xae, 0x07, 0xe9, 0xae, 0x9b, 0xad, 0xc1, 0xd1, 0x75, 0x70, 0x83, 0x66, 0x34, 0x07, 0xd6, 0xf0, 0x23, 0xcc, 0xc1, 0xab, 0x21, 0x3e, 0x6a, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0xd6, 0x88, 0xb2, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0x0f, 0x08, 0xf7, 0x38, 0x78, 0xf5, 0x1b, 0x48, 0x1b, 0x2c, 0xc0, 0x6c, 0x5a, 0xc3, 0xf7, 0xed, 0x1b, 0xbe, 0xf6, 0x38, 0x78, 0xb0, 0x3f, 0xca, 0x1a, 0xb4, 0x74, 0x96, 0xb5, 0xc1, 0x32, 0x27, 0xd9, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0xc8, 0x5a, 0xdc, 0x60, 0x41, 0x2f, 0xf2, 0x1a, 0x1e, 0x94, 0x5c, 0xc3, 0x2f, 0x2e, 0x6b, 0xf0, 0x56, 0x8e, 0x94, 0x0d, 0x56, 0x81, 0xc9, 0x6e, 0x78, 0x5b, 0x67, 0xf0, 0xf8, 0xa0, 0x4d, 0xee, 0xa8, 0x35, 0x78, 0xc8, 0x47, 0xca, 0x06, 0xab, 0xc0, 0x64, 0x37, 0xbc, 0xad, 0x33, 0x38, 0x7c, 0xd0, 0x26, 0x77, 0xd4, 0x6a, 0x78, 0xe3, 0x6e, 0xc3, 0xcb, 0x77, 0x81, 0x37, 0x17, 0x36, 0x6e, 0xb0, 0x0a, 0x4c, 0x76, 0xc3, 0xdb, 0x3a, 0x07, 0x6f, 0x52, 0x06, 0x39, 0x28, 0xeb, 0x3c, 0x0f, 0x5e, 0x4a, 0x8f, 0xd2, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x06, 0x83, 0xa9, 0x63, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0xd1, 0x2b, 0xb5, 0xc1, 0x59, 0x56, 0x6a, 0x83, 0x95, 0x05, 0xde, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x96, 0xce, 0xb2, 0xd6, 0xf0, 0xc6, 0xdd, 0xc1, 0x6a, 0xdf, 0xc4, 0xd6, 0xf0, 0xb6, 0xce, 0x80, 0x27, 0x56, 0xd6, 0xd6, 0x06, 0x25, 0x3c, 0xe6, 0x86, 0x2f, 0x27, 0x37, 0x28, 0x28, 0x32, 0x37, 0x28, 0xe1, 0x31, 0x17, 0xbc, 0x3e, 0x28, 0xa5, 0x7f, 0x37, 0x28, 0x28, 0x32, 0x37, 0x58, 0x52, 0xbf, 0xb4, 0x1a, 0xde, 0xb8, 0xdb, 0xf0, 0xf2, 0xdd, 0xc1, 0x5b, 0xfa, 0x45, 0x0e, 0x5a, 0x3a, 0xcb, 0xda, 0x60, 0x8d, 0x54, 0xd3, 0x06, 0x4f, 0xfa, 0x47, 0xd9, 0xf0, 0xb6, 0xce, 0xe0, 0xf1, 0xe0, 0xf1, 0xe0, 0xf5, 0xc1, 0xa3, 0xa0, 0x52, 0x56, 0x83, 0x65, 0xf7, 0x51, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xcb, 0xee, 0xa3, 0x1a, 0x80, 0x87, 0x30, 0x32, 0xbb, 0x30, 0xb7, 0xb1, 0x32, 0x10, 0xba, 0x37, 0x10, 0xba, 0x30, 0xb9, 0xb3, 0x32, 0xba, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0xcb, 0xd4, 0x3d, 0x0e, 0x9e, 0x9e, 0xee, 0xb1, 0xc1, 0x03, 0xc5, 0x51, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0x6f, 0x8a, 0x1c, 0x39, 0x78, 0xc5, 0xe4, 0x48, 0x1b, 0xbe, 0x7e, 0x59, 0xc3, 0xdb, 0x3a, 0x07, 0x81, 0x29, 0xb4, 0xe1, 0x83, 0x9c, 0x35, 0x28, 0x26, 0x31, 0x37, 0x48, 0x19, 0x0c, 0x3e, 0x68, 0x4b, 0xcc, 0x6a, 0x0d, 0xce, 0x85, 0x0b, 0x6b, 0xc8, 0x63, 0x6f, 0xf8, 0x11, 0x66, 0x70, 0xfa, 0xe0, 0x9d, 0x85, 0x25, 0x1b, 0x9c, 0xd8, 0x6f, 0xd6, 0xf0, 0xa0, 0xe4, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0xd9, 0x7d, 0x54, 0x07, 0x4b, 0x4e, 0xd3, 0x37, 0x38, 0x17, 0x2e, 0xac, 0x21, 0x8f, 0xbd, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0x83, 0x97, 0x2f, 0x96, 0x6c, 0xb0, 0x46, 0xaa, 0x69, 0x83, 0x17, 0x9f, 0x7d, 0x6c, 0x78, 0x5b, 0x67, 0xf0, 0x78, 0x70, 0x78, 0x83, 0x37, 0x45, 0x8e, 0xb4, 0x41, 0xd1, 0xa7, 0xbb, 0x41, 0x5b, 0x62, 0x56, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xb6, 0x7d, 0xbc, 0x0e, 0xde, 0x66, 0x8e, 0xb2, 0x41, 0xd1, 0x69, 0xbc, 0x41, 0x23, 0xfc, 0xa4, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x06, 0xc3, 0xac, 0x36, 0x78, 0xda, 0x95, 0xc9, 0x1a, 0xde, 0xd6, 0xd9, 0xe0, 0xe9, 0xe4, 0x1e, 0x03, 0xde, 0x59, 0x59, 0x5b, 0x1b, 0x2c, 0xa9, 0x5f, 0x5a, 0xc3, 0xe7, 0x2e, 0x1b, 0x3c, 0x59, 0xb3, 0x64, 0xc3, 0x5f, 0x34, 0x6b, 0x10, 0xfa, 0x25, 0x1b, 0x84, 0x94, 0xc9, 0x1a, 0xfe, 0x9d, 0x5f, 0x71, 0x9c, 0x83, 0x97, 0xa9, 0x7b, 0x54, 0x1b, 0x7e, 0x71, 0x39, 0x78, 0x82, 0x5c, 0xca, 0x06, 0xa7, 0x86, 0xa3, 0x35, 0xbc, 0xad, 0x73, 0xf0, 0x5c, 0xb6, 0x94, 0x0d, 0x0f, 0x4a, 0x6e, 0xf0, 0x82, 0xb3, 0x94, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x41, 0xc9, 0x0d, 0xce, 0x56, 0x81, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x07, 0xcf, 0x90, 0x47, 0x39, 0x78, 0x9b, 0x39, 0xca, 0x06, 0x4f, 0xbb, 0x32, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0x5e, 0x99, 0x5b, 0xde, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xc8, 0xea, 0xc8, 0x5a, 0x0d, 0x5a, 0xe8, 0x27, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x0d, 0x5a, 0x13, 0x28, 0x1d, 0x80, 0x57, 0xb3, 0x34, 0xb7, 0x30, 0xb6, 0x34, 0xbd, 0x32, 0x90, 0x30, 0x37, 0x90, 0x34, 0x37, 0xb2, 0x34, 0xbb, 0x34, 0xb2, 0xba, 0x30, 0x36, 0x90, 0x39, 0xba, 0x32, 0xb8, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0xb4, 0x41, 0x5b, 0xb3, 0x85, 0x07, 0xaf, 0x44, 0xfc, 0x58, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x26, 0xe6, 0x8e, 0x0f, 0x9a, 0xdd, 0x8e, 0x3a, 0x68, 0x60, 0x2f, 0x70, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x73, 0x61, 0xe3, 0xc1, 0xb3, 0x93, 0x41, 0xda, 0xf0, 0xf5, 0xcb, 0x06, 0xcf, 0x07, 0x4b, 0xd9, 0xa0, 0xe8, 0xa0, 0xdd, 0xa0, 0x5d, 0xa1, 0xe3, 0x05, 0xbc, 0xb9, 0xb0, 0xb1, 0x35, 0xbc, 0xdb, 0xb3, 0x06, 0x65, 0xc9, 0xfb, 0x02, 0xf8, 0xc9, 0x95, 0x99, 0xa5, 0xb9, 0x95, 0xb5, 0xb4, 0xbd, 0xd9, 0x95, 0xcd, 0x6d, 0x90, 0xd0, 0x3b, 0xb8, 0x86, 0xb7, 0x75, 0x0e, 0x9e, 0x08, 0x99, 0x72, 0xd0, 0xfa, 0xad, 0xda, 0x1a, 0xde, 0xd6, 0x39, 0x68, 0x99, 0xef, 0xb8, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0x9e, 0xf8, 0x8e, 0xb2, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x2c, 0x79, 0xdf, 0xa0, 0x6c, 0x41, 0x3d, 0x78, 0xa5, 0x3b, 0xca, 0x1a, 0xde, 0xd6, 0xd9, 0xe0, 0x01, 0xe1, 0x1e, 0x07, 0xcd, 0x0a, 0x17, 0xae, 0xe1, 0x17, 0x97, 0x0d, 0x1a, 0x92, 0x10, 0xdc, 0xe0, 0x7d, 0x94, 0x29, 0xb5, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0x97, 0xb5, 0xa5, 0xd1, 0xad, 0xe1, 0x2f, 0x9a, 0x0d, 0x5e, 0x0f, 0x01, 0xb2, 0xe1, 0x17, 0x97, 0x35, 0xfc, 0x45, 0xb3, 0xc1, 0x2b, 0x11, 0x3f, 0x0e, 0xda, 0x0e, 0x2e, 0x5c, 0xc3, 0x5f, 0x34, 0x6b, 0x10, 0xfa, 0x25, 0x1b, 0x84, 0x94, 0xc9, 0x06, 0x4f, 0x70, 0xfc, 0xe8, 0xa0, 0x91, 0xa3, 0xe3, 0x5a, 0x0d, 0xde, 0xe3, 0x99, 0xb2, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xf0, 0x1e, 0xcf, 0x94, 0x06, 0xe0, 0xbb, 0xcc, 0x2d, 0xae, 0xae, 0xac, 0xae, 0x0c, 0x24, 0x0c, 0xe4, 0xee, 0x4d, 0x6e, 0x8d, 0x2d, 0x6d, 0x8e, 0x0e, 0xe4, 0x2e, 0x8d, 0x0e, 0x0d, 0x64, 0xee, 0xad, 0x4e, 0x6e, 0xac, 0x6c, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x83, 0x0b, 0x73, 0x0f, 0x5e, 0x0f, 0x01, 0xb2, 0xe1, 0x92, 0xda, 0x20, 0x30, 0x85, 0xd6, 0x20, 0x71, 0xa3, 0x76, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x83, 0x0b, 0x73, 0xdb, 0x20, 0x05, 0xa3, 0xb6, 0x0e, 0xa7, 0x58, 0x6b, 0xb0, 0x4c, 0x97, 0x6a, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x60, 0x99, 0x2e, 0x55, 0x03, 0xf8, 0xd4, 0xb9, 0xd1, 0xa5, 0xb1, 0x81, 0x90, 0xbd, 0xb9, 0x95, 0x6d, 0xf8, 0xfa, 0x65, 0x83, 0x06, 0xac, 0xb7, 0x37, 0x7c, 0x90, 0xb3, 0x86, 0x5f, 0xc9, 0xd6, 0xa0, 0x98, 0xc4, 0xdc, 0x20, 0x04, 0x1f, 0x0e, 0x12, 0x37, 0x6a, 0xd7, 0xa0, 0x98, 0xc4, 0xdc, 0xa0, 0x48, 0xc5, 0x3c, 0x58, 0x1e, 0x62, 0xda, 0x06, 0x0d, 0x58, 0x6f, 0x6f, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0x6c, 0x50, 0x50, 0x64, 0x6e, 0x78, 0x5b, 0x67, 0xf0, 0x78, 0xf0, 0xf4, 0x20, 0x71, 0xa3, 0x76, 0x0d, 0x97, 0xd4, 0x1a, 0x2c, 0xd3, 0xa5, 0x6a, 0x0d, 0x12, 0x37, 0x6a, 0x37, 0xbc, 0xad, 0x33, 0x38, 0x7d, 0x90, 0xb8, 0x51, 0xdb, 0x06, 0x45, 0x9f, 0xee, 0x06, 0x8f, 0x0c, 0x4c, 0xd9, 0xa0, 0xa0, 0xc8, 0xdc, 0xa0, 0xe8, 0xd3, 0xdd, 0xe0, 0xa5, 0x73, 0x29, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0xf8, 0xe0, 0x99, 0xbc, 0x29, 0x1b, 0x14, 0x1d, 0xb4, 0x6b, 0xf8, 0xbe, 0x7d, 0xc0, 0x6b, 0x7b, 0xb3, 0x37, 0x28, 0xa1, 0x63, 0x37, 0x78, 0x82, 0xe3, 0xc7, 0x41, 0x98, 0x8e, 0x6d, 0xf0, 0x2c, 0xde, 0x94, 0x0d, 0xde, 0xbe, 0x9b, 0xb2, 0xe1, 0x41, 0xc9, 0x35, 0xbc, 0xad, 0x73, 0xf0, 0xe2, 0xde, 0x94, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x44, 0xf9, 0xae, 0xe1, 0x6d, 0x9d, 0x01, 0xaf, 0xed, 0xcd, 0xae, 0xc3, 0x29, 0xb6, 0x06, 0xad, 0x58, 0xcd, 0x6e, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x66, 0x01, 0x90, 0x83, 0x17, 0xd7, 0x82, 0x6c, 0xf8, 0xfa, 0x65, 0x83, 0xe7, 0x83, 0xa5, 0x6c, 0xb0, 0x36, 0xae, 0x69, 0x35, 0x48, 0xdc, 0xa8, 0xdd, 0xf0, 0xb6, 0xce, 0x06, 0x23, 0x73, 0xe9, 0xe0, 0x39, 0xb6, 0x20, 0x6b, 0x50, 0x62, 0x6d, 0x6f, 0x78, 0x5b, 0x67, 0x83, 0xd2, 0x2c, 0xfb, 0xe0, 0x39, 0xb6, 0x20, 0x6d, 0x50, 0xf4, 0xe9, 0xae, 0xf1, 0xf8, 0x20, 0x30, 0x85, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x25, 0xef, 0x0b, 0x78, 0x6c, 0x6f, 0x64, 0x6b, 0x78, 0x50, 0x72, 0x0d, 0x6f, 0xeb, 0x1c, 0xac, 0x1c, 0xed, 0x3e, 0x58, 0x72, 0x9a, 0xbe, 0x86, 0xb7, 0x75, 0x36, 0x18, 0x09, 0x0c, 0x07, 0xcf, 0xb1, 0x05, 0x69, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0x88, 0x9f, 0xf6, 0xe0, 0x39, 0xb6, 0x20, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0xac, 0x61, 0xe2, 0x06, 0xbc, 0xbb, 0x34, 0x39, 0xf0, 0xc6, 0xc2, 0xe4, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xd1, 0x75, 0xf0, 0xe0, 0x0d, 0x9d, 0x28, 0xab, 0xe1, 0x8d, 0xbb, 0x0d, 0x2f, 0xdf, 0x1d, 0xbc, 0x61, 0xbc, 0xe4, 0xa0, 0xa0, 0xc8, 0x6c, 0x83, 0xa2, 0x4f, 0x77, 0x83, 0xd7, 0x52, 0xa7, 0xac, 0xe1, 0xdd, 0x9e, 0x35, 0x3c, 0x28, 0xb9, 0x86, 0xb7, 0x75, 0x06, 0x7c, 0xbc, 0x32, 0xb7, 0xb7, 0x83, 0x25, 0xa7, 0xe9, 0x6b, 0x90, 0x94, 0x16, 0xbc, 0xe1, 0x6d, 0x9d, 0x01, 0xef, 0x2e, 0x4d, 0x6e, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x63, 0x61, 0x72, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x27, 0x77, 0xa6, 0xac, 0x41, 0x52, 0x5a, 0xf0, 0x41, 0x41, 0x91, 0xb9, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xa0, 0xe4, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xe7, 0xe0, 0xc2, 0xda, 0x0e, 0x96, 0x9c, 0xa6, 0x6f, 0xf0, 0x0a, 0xf3, 0x94, 0x35, 0x58, 0x20, 0xf7, 0x74, 0xf0, 0x90, 0xf3, 0x94, 0x9a, 0x35, 0xbc, 0x75, 0xbf, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x78, 0xeb, 0xbe, 0x01, 0xf0, 0x2a, 0x8c, 0xcc, 0x2e, 0xcc, 0x6d, 0xac, 0x0c, 0x84, 0x0e, 0xad, 0x0c, 0x84, 0xed, 0xed, 0x0d, 0x0e, 0xe4, 0xcd, 0xad, 0x0c, 0x64, 0x8e, 0xae, 0x0c, 0x0e, 0x44, 0x2c, 0x0f, 0x44, 0xee, 0xad, 0x8e, 0x2e, 0xcd, 0xed, 0x0c, 0x24, 0x0c, 0xa4, 0xed, 0xcd, 0xae, 0x6c, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x17, 0x3a, 0x7e, 0x1c, 0x3c, 0xc1, 0xf1, 0x63, 0xc3, 0xd7, 0x2f, 0x1b, 0x3c, 0x1f, 0x2c, 0x65, 0x83, 0x65, 0xd6, 0x4c, 0xb3, 0x86, 0x47, 0x58, 0xd7, 0xf0, 0x36, 0xeb, 0x86, 0xb7, 0x75, 0x06, 0x3c, 0xb6, 0xb0, 0xf1, 0x60, 0x5d, 0xf0, 0xed, 0x1a, 0x14, 0x93, 0x98, 0x1b, 0x14, 0xa9, 0x98, 0x07, 0x8f, 0x0c, 0x4c, 0x69, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0xee, 0xe0, 0xc1, 0xea, 0x20, 0x1b, 0x04, 0xe9, 0xe9, 0x1a, 0x87, 0x0e, 0x1e, 0x07, 0x64, 0xb2, 0x06, 0x8f, 0x4c, 0x14, 0xd9, 0x60, 0xa5, 0x8b, 0xd3, 0x06, 0x8f, 0xba, 0x14, 0xd9, 0xe0, 0xed, 0x48, 0x26, 0x1b, 0xac, 0x74, 0x71, 0xda, 0xe0, 0x5d, 0xea, 0x1e, 0x1b, 0xbc, 0xbe, 0xc8, 0x64, 0x83, 0x95, 0x2e, 0x4e, 0x1b, 0x3c, 0x09, 0x0e, 0x64, 0x83, 0xf7, 0x0b, 0x99, 0x6c, 0xb0, 0xd2, 0xc5, 0x69, 0x83, 0xe7, 0xb2, 0xa5, 0x6c, 0xf0, 0x82, 0x1f, 0x93, 0x0d, 0x96, 0x59, 0x33, 0xcd, 0x1a, 0x1e, 0x61, 0xdd, 0xe0, 0xb1, 0xfa, 0x29, 0x6b, 0x78, 0x9b, 0x75, 0xc3, 0xbf, 0x39, 0x1b, 0x24, 0xa5, 0x05, 0x6f, 0x78, 0x5b, 0x67, 0x83, 0x07, 0x84, 0x7b, 0x1c, 0xbc, 0x74, 0x2e, 0xa5, 0x35, 0x28, 0x0c, 0x55, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x4b, 0x0f, 0xe5, 0xd7, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0xa1, 0xe7, 0xe4, 0xc1, 0x3b, 0xe5, 0x52, 0x0e, 0x56, 0x1b, 0xce, 0x6e, 0xb0, 0x20, 0x88, 0xae, 0x0d, 0x16, 0x95, 0x27, 0xad, 0xe1, 0x8d, 0xbb, 0x83, 0xc7, 0x27, 0x8a, 0xac, 0xe1, 0x17, 0x97, 0x0d, 0xde, 0xb6, 0xa0, 0x72, 0xf0, 0x4e, 0x7a, 0x94, 0x35, 0x7c, 0x90, 0xb3, 0x06, 0xc5, 0x24, 0xe6, 0x1a, 0x04, 0x9b, 0xe9, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x68, 0x4b, 0x14, 0x70, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x3c, 0x70, 0xc1, 0xa4, 0x0d, 0xa9, 0x9a, 0x83, 0xe7, 0xb2, 0xa5, 0xac, 0x41, 0x61, 0xa8, 0xba, 0x06, 0x85, 0xa1, 0xea, 0x1a, 0x2e, 0xa9, 0x0d, 0x1e, 0x90, 0xa1, 0xd2, 0x06, 0x6b, 0xa4, 0x9a, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0x3e, 0x57, 0xda, 0xa0, 0x6d, 0xeb, 0xf1, 0x0d, 0xda, 0xb6, 0x1e, 0x3f, 0x58, 0x50, 0x14, 0xbc, 0xc1, 0x7a, 0xad, 0xe7, 0x83, 0x25, 0x4f, 0xd0, 0x1b, 0x1e, 0x94, 0x5c, 0xc3, 0x2f, 0x2e, 0x1b, 0x9c, 0x9b, 0xd0, 0xd6, 0x70, 0x49, 0xad, 0x41, 0x60, 0x62, 0xd7, 0x1a, 0x2e, 0xa9, 0x35, 0x18, 0x6f, 0x3a, 0xd5, 0xc1, 0x53, 0xf4, 0x52, 0x0e, 0x9e, 0x30, 0x75, 0xb2, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0xfc, 0xb9, 0xbc, 0x36, 0xb8, 0x0d, 0x5e, 0xb0, 0xa1, 0xd2, 0x06, 0x4f, 0x98, 0x3a, 0xe9, 0xe0, 0x69, 0x57, 0x26, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0x05, 0x67, 0x29, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0xbf, 0xb8, 0x6c, 0xf0, 0xb6, 0x05, 0x95, 0x83, 0xf7, 0x9c, 0xa8, 0x6c, 0xf0, 0xb4, 0x2b, 0x93, 0x36, 0x78, 0x29, 0x3d, 0xca, 0x06, 0x4f, 0xd1, 0x4b, 0x69, 0x0d, 0xde, 0xe5, 0x29, 0xb2, 0xc1, 0x4a, 0x17, 0xa7, 0x0d, 0xde, 0xa5, 0xee, 0xb1, 0xc1, 0xeb, 0x8b, 0x4c, 0x36, 0x58, 0xe9, 0xe2, 0xb4, 0xc1, 0x93, 0xe0, 0x40, 0x36, 0x78, 0xbf, 0x90, 0xc9, 0x06, 0x2b, 0x5d, 0x9c, 0x36, 0x78, 0x2e, 0x5b, 0xca, 0x06, 0x2f, 0xf8, 0x31, 0xd9, 0x60, 0x99, 0x35, 0xd3, 0x6c, 0xf0, 0x58, 0xfd, 0x94, 0x35, 0x28, 0x0c, 0x55, 0x37, 0x78, 0x64, 0x83, 0xca, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xc6, 0xdd, 0xc1, 0x7b, 0x3d, 0x45, 0x36, 0x78, 0xcd, 0x84, 0xca, 0x06, 0x4f, 0x28, 0x51, 0x39, 0x78, 0xdb, 0x8a, 0xca, 0x86, 0x77, 0x7b, 0x36, 0x78, 0xc1, 0x59, 0xca, 0x06, 0x4f, 0xbb, 0x32, 0x39, 0x78, 0x02, 0x8b, 0xca, 0x1a, 0xbc, 0xa3, 0x51, 0x64, 0x83, 0x62, 0x47, 0x73, 0x0d, 0x8a, 0x49, 0xcc, 0x0d, 0x8a, 0x54, 0xcc, 0x83, 0x87, 0x19, 0x99, 0xac, 0xc1, 0xb9, 0x70, 0x61, 0x0d, 0x79, 0xec, 0x0d, 0x3f, 0xc2, 0x0c, 0x4e, 0x07, 0xf8, 0x9d, 0xa5, 0xd9, 0x95, 0xb5, 0xb8, 0xbd, 0xb5, 0x90, 0xd5, 0x8d, 0xd1, 0x07, 0xe1, 0xa9, 0xba, 0x41, 0x41, 0x1a, 0xbb, 0xc1, 0x2b, 0x2a, 0x45, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xe9, 0xc1, 0xc3, 0x8c, 0x4c, 0x36, 0x28, 0x48, 0x63, 0x37, 0x78, 0x99, 0xba, 0xc7, 0x1a, 0xde, 0xd6, 0x19, 0x9c, 0x3e, 0x78, 0x98, 0x91, 0xc9, 0x06, 0x2b, 0x5d, 0x9c, 0x36, 0x78, 0x22, 0x9d, 0xc8, 0x1a, 0xde, 0xd6, 0xd9, 0xe0, 0x91, 0x74, 0x22, 0x07, 0x8f, 0x03, 0x32, 0xd9, 0xa0, 0xe8, 0xa0, 0x5d, 0xc3, 0xf7, 0xed, 0x1b, 0xb4, 0x88, 0x63, 0xb5, 0x41, 0x09, 0x1d, 0xbb, 0xc1, 0x7a, 0xad, 0xe7, 0x83, 0x30, 0x1d, 0xdb, 0xe0, 0x51, 0x97, 0x22, 0x6b, 0xb0, 0xa4, 0x7e, 0x69, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x8d, 0xbb, 0x83, 0xf7, 0x35, 0x8a, 0x6c, 0xf0, 0xfa, 0x22, 0x93, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xfb, 0x4a, 0x54, 0xd6, 0x70, 0x49, 0xad, 0x71, 0x68, 0xf0, 0x78, 0x70, 0xf8, 0xe0, 0x89, 0x74, 0x22, 0xd5, 0x06, 0x05, 0x1f, 0xe6, 0x1a, 0x14, 0x93, 0x98, 0x1b, 0x14, 0xa9, 0x98, 0x07, 0x8f, 0xba, 0x14, 0x39, 0x78, 0xc2, 0xd4, 0xc9, 0x06, 0xcb, 0xac, 0x99, 0x66, 0x0d, 0x8f, 0xb0, 0x6e, 0xf0, 0x58, 0xfd, 0x94, 0x35, 0xbc, 0xcd, 0xba, 0xe1, 0xdf, 0x9c, 0x0d, 0x92, 0xd2, 0x82, 0x0f, 0x1a, 0x0c, 0xb3, 0x5a, 0xc3, 0xaf, 0x64, 0x6b, 0x78, 0x9b, 0x75, 0xc3, 0xbf, 0x39, 0x6b, 0x78, 0xe3, 0x6e, 0xc3, 0xcb, 0x77, 0x81, 0x2f, 0xc6, 0x96, 0x46, 0x6f, 0xb8, 0xa4, 0xd6, 0x90, 0xaa, 0x39, 0x78, 0x22, 0x9d, 0x48, 0x6b, 0x78, 0x9b, 0x75, 0xc3, 0xbf, 0x39, 0x1b, 0xa4, 0x93, 0x32, 0x1d, 0xbc, 0x6d, 0x41, 0xa5, 0xd6, 0xa0, 0x30, 0x54, 0xdd, 0xe0, 0x91, 0x0d, 0x2a, 0x1b, 0x2c, 0x2a, 0x4f, 0xda, 0xe0, 0xf5, 0x4c, 0x2a, 0x1b, 0xbc, 0x6d, 0x41, 0x65, 0x0d, 0x1f, 0xe4, 0xac, 0x41, 0x31, 0x89, 0xb9, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x02, 0xbf, 0xce, 0x8d, 0xee, 0x3d, 0x78, 0xb4, 0x96, 0xca, 0x1a, 0x7e, 0x71, 0xd9, 0xe0, 0x6d, 0x5a, 0x2a, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xf7, 0x95, 0xa8, 0xac, 0xe1, 0x92, 0x5a, 0xc3, 0x5e, 0xe1, 0xc1, 0x13, 0xe9, 0x44, 0xaa, 0x0d, 0xef, 0xf6, 0x6c, 0xf0, 0xbe, 0x12, 0x95, 0x0d, 0xde, 0xa6, 0xa5, 0xd2, 0xc1, 0xeb, 0x8b, 0x4c, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0xb3, 0x3a, 0x54, 0x1b, 0x3c, 0xed, 0xca, 0x64, 0x83, 0x27, 0x4c, 0x9d, 0x6c, 0xd0, 0x60, 0x98, 0xd5, 0x1a, 0xde, 0xd6, 0x39, 0x78, 0x22, 0x9d, 0x48, 0x6b, 0xf0, 0xca, 0x3c, 0x91, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x1e, 0x19, 0x98, 0xb2, 0xc1, 0x31, 0xdc, 0x60, 0xc3, 0xdb, 0x3a, 0x1b, 0x3c, 0x58, 0x1d, 0xe4, 0xe0, 0x71, 0x40, 0x26, 0x6b, 0xf0, 0x38, 0x20, 0x93, 0x0d, 0x6f, 0xeb, 0x6c, 0xf0, 0x1e, 0x36, 0x91, 0x83, 0xc7, 0x01, 0x99, 0xd4, 0xe1, 0x14, 0x5b, 0x83, 0x56, 0x81, 0x5c, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x5a, 0x05, 0x72, 0x69, 0x00, 0xbe, 0xe5, 0xca, 0xc2, 0xc8, 0x40, 0xcc, 0xe4, 0xde, 0xda, 0x40, 0xe8, 0xd0, 0xca, 0x40, 0xca, 0xdc, 0xe8, 0xd2, 0xe4, 0xca, 0x40, 0xdc, 0xc2, 0xda, 0xca, 0xe6, 0xe0, 0xc2, 0xc6, 0xca, 0x36, 0xfc, 0x45, 0xb3, 0x86, 0x7f, 0xe7, 0xd7, 0xe0, 0x45, 0x1c, 0x23, 0xb5, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb6, 0xbc, 0xf1, 0xe0, 0xa1, 0xcb, 0x22, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x26, 0x17, 0xc0, 0x0e, 0xce, 0x48, 0xa8, 0x1b, 0xbc, 0x45, 0x5b, 0xa4, 0x0d, 0x7f, 0xd1, 0xac, 0x41, 0xe8, 0x97, 0x6c, 0x50, 0x36, 0x61, 0xae, 0x41, 0xe8, 0x97, 0x6c, 0x50, 0x36, 0x61, 0xae, 0x41, 0xe8, 0x97, 0x6c, 0xf0, 0x3a, 0x86, 0x8f, 0x0d, 0x9e, 0x64, 0x24, 0x52, 0x6d, 0x50, 0x90, 0xc6, 0xae, 0x41, 0x09, 0x1d, 0xbb, 0x86, 0xcf, 0x95, 0x36, 0x78, 0xa0, 0x38, 0xca, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xc6, 0xc2, 0xe4, 0x83, 0xf5, 0x5a, 0xcf, 0x1d, 0x84, 0xe9, 0xd8, 0x1a, 0x14, 0x03, 0xb2, 0x1b, 0xac, 0x98, 0x82, 0xdb, 0x60, 0x59, 0x14, 0xdc, 0x06, 0xc5, 0x8e, 0xe6, 0x1a, 0xfe, 0xcd, 0xd9, 0x20, 0x60, 0x59, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x51, 0xfc, 0xbb, 0x41, 0x51, 0x29, 0xbe, 0xc1, 0xb2, 0x28, 0xb8, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xcb, 0xa2, 0xe0, 0x0e, 0xd6, 0xee, 0xa9, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x64, 0xe2, 0x1e, 0xbc, 0x8e, 0x51, 0x65, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0xe2, 0xe3, 0x1e, 0xbc, 0x8e, 0x51, 0xa5, 0x0d, 0x1f, 0xe4, 0x6c, 0xf0, 0x24, 0xb1, 0x94, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0x07, 0x25, 0x37, 0x68, 0xa2, 0x57, 0xea, 0x60, 0xc9, 0x69, 0xfa, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xd8, 0xf2, 0xc6, 0xd6, 0xf0, 0xb6, 0xce, 0x41, 0xcb, 0x29, 0x60, 0x1b, 0x3c, 0xe4, 0x3c, 0xe5, 0xe0, 0x49, 0x4d, 0x29, 0x1b, 0x14, 0x7d, 0xba, 0x1b, 0xb4, 0x25, 0x66, 0xb5, 0xc1, 0xdb, 0xdc, 0x52, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x3c, 0xbb, 0x30, 0x77, 0xc3, 0xbb, 0x3d, 0x6b, 0x50, 0x96, 0xbc, 0x6f, 0x50, 0xb8, 0x89, 0x1e, 0xbc, 0xd2, 0x1d, 0xe5, 0xe0, 0x6d, 0xe6, 0x28, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0xbe, 0x9c, 0xdc, 0xa0, 0xa0, 0xc8, 0xdc, 0xe0, 0xd4, 0x70, 0xb4, 0x86, 0x5f, 0x5c, 0x0e, 0xde, 0x57, 0xa9, 0xb2, 0xe1, 0x41, 0xc9, 0x0d, 0x9a, 0xe8, 0x95, 0xda, 0xf0, 0xa0, 0xe4, 0x06, 0x67, 0xab, 0xc0, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x59, 0xf2, 0xbe, 0xc1, 0x33, 0xe4, 0x51, 0x36, 0x78, 0xaf, 0x3c, 0xca, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0xfd, 0x5b, 0xb5, 0x35, 0xbc, 0xad, 0x33, 0x78, 0x7d, 0xf0, 0x3a, 0x3f, 0x94, 0x3a, 0x78, 0x6b, 0x3d, 0xca, 0x0a, 0xf8, 0x70, 0x6f, 0x6b, 0xe5, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0x6b, 0x50, 0x55, 0x1a, 0x00, 0x5f, 0xe0, 0xe4, 0xca, 0xe0, 0xc2, 0xe4, 0xca, 0x40, 0xc2, 0x40, 0xee, 0xde, 0xe4, 0xd6, 0xd8, 0xd2, 0xe6, 0xe8, 0x5a, 0xde, 0xcc, 0x5a, 0xde, 0xdc, 0xca, 0x40, 0xcc, 0xe4, 0xde, 0xda, 0x40, 0xde, 0xea, 0xe8, 0xe6, 0xd2, 0xc8, 0xca, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x39, 0x06, 0xc8, 0xc1, 0xd3, 0x30, 0x40, 0x36, 0x7c, 0xfd, 0xb2, 0xc1, 0xf3, 0xc1, 0x52, 0x36, 0x38, 0x17, 0x2e, 0xac, 0x21, 0x8f, 0xbd, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0x00, 0x3e, 0xc2, 0xe4, 0xec, 0xde, 0x74, 0x40, 0xe0, 0xde, 0xd6, 0xca, 0x40, 0xc6, 0xe4, 0xc2, 0xe6, 0xd0, 0xca, 0xc8, 0x0d, 0x96, 0x59, 0x33, 0xcd, 0x06, 0x8f, 0xd5, 0x4f, 0x59, 0xc3, 0x2f, 0x2e, 0x1b, 0x2c, 0x08, 0xa2, 0x5b, 0xc3, 0x1b, 0x77, 0x1b, 0x5e, 0xbe, 0x0b, 0xfc, 0x3a, 0xb7, 0x34, 0x7c, 0x0d, 0x6f, 0xeb, 0x0c, 0x0e, 0x6f, 0xf0, 0x62, 0x79, 0x91, 0x83, 0x77, 0x63, 0x80, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x5e, 0x51, 0x29, 0x72, 0xf0, 0x6e, 0x0c, 0x90, 0x83, 0x54, 0xd7, 0xcd, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x41, 0xc9, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0x6b, 0x50, 0x55, 0x3a, 0x58, 0x72, 0x9a, 0xbe, 0x86, 0xb7, 0x75, 0x0e, 0xde, 0x8d, 0x01, 0xd2, 0xac, 0x41, 0x93, 0x58, 0xda, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0xd0, 0x2f, 0xd9, 0x60, 0x15, 0x64, 0xf2, 0x1a, 0x84, 0x7e, 0xc9, 0x06, 0xa5, 0x37, 0xfd, 0x06, 0x0f, 0x1c, 0x46, 0x39, 0x78, 0xe8, 0x35, 0xca, 0x06, 0xcf, 0x71, 0x46, 0x69, 0x83, 0x12, 0x1e, 0x73, 0x83, 0xe5, 0x21, 0xa6, 0x6b, 0xf8, 0x8b, 0x66, 0x0d, 0x9f, 0x2b, 0x6d, 0x10, 0xb0, 0x41, 0x1b, 0xbc, 0x88, 0x58, 0xa5, 0x0d, 0x56, 0x81, 0xc9, 0x6e, 0xf8, 0xc5, 0x65, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x58, 0x2c, 0x1f, 0x14, 0x4a, 0xdb, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x9b, 0x7b, 0x63, 0x6b, 0x83, 0x65, 0x4e, 0xb2, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x2c, 0x24, 0xff, 0x1d, 0xbc, 0x3e, 0x58, 0x1e, 0x62, 0xba, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb6, 0xce, 0xc1, 0x23, 0xc5, 0x49, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x29, 0x18, 0xb5, 0x1b, 0x14, 0x4b, 0xdb, 0x6b, 0x78, 0x50, 0x72, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x46, 0xde, 0xe5, 0xc1, 0xb3, 0xad, 0x50, 0x36, 0xbc, 0xad, 0x73, 0xf0, 0xb8, 0x67, 0x95, 0x0e, 0x5e, 0xc6, 0xac, 0xd2, 0xe1, 0x14, 0x5b, 0x83, 0xe3, 0xa1, 0xe9, 0x06, 0x25, 0x0b, 0xfb, 0x2c, 0xb3, 0x06, 0xcf, 0x5c, 0x4f, 0xd9, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0xbc, 0xa2, 0x52, 0xe4, 0xe0, 0xdd, 0x96, 0x22, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x95, 0x1a, 0xce, 0x07, 0xcd, 0x6e, 0x47, 0xb5, 0xe1, 0x2f, 0x9a, 0x0d, 0xde, 0x26, 0x9a, 0xb2, 0x41, 0xd1, 0x69, 0xbc, 0x41, 0x89, 0x54, 0xbd, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0xcd, 0x05, 0x18, 0x6e, 0xf0, 0xcc, 0x95, 0x94, 0x83, 0x97, 0x0f, 0xa2, 0x6c, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0x6d, 0xf0, 0x40, 0x71, 0x94, 0x83, 0x43, 0x4c, 0xc7, 0x86, 0xbf, 0x68, 0x36, 0x78, 0x82, 0xe3, 0xc7, 0x86, 0x5f, 0x5c, 0xd6, 0xa0, 0x10, 0x4c, 0x3d, 0x78, 0x7a, 0xba, 0xc7, 0x06, 0xaf, 0x91, 0x50, 0xd9, 0xe0, 0x09, 0x53, 0x27, 0x1b, 0x34, 0x18, 0x66, 0xb5, 0x86, 0xbf, 0x68, 0x36, 0x78, 0xc5, 0xe4, 0xc8, 0x06, 0xab, 0xc0, 0x64, 0x0f, 0x5e, 0x98, 0x71, 0xd2, 0x6a, 0xb0, 0xec, 0x3e, 0x6a, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x17, 0xad, 0x7b, 0x1c, 0xbc, 0xf8, 0xec, 0x63, 0xc3, 0xd7, 0x2f, 0x6b, 0xb8, 0xa4, 0xd6, 0x78, 0x7c, 0xb0, 0xa8, 0x2d, 0xbd, 0x0d, 0x8a, 0x01, 0xd9, 0x0d, 0x1e, 0x19, 0x98, 0xb2, 0x06, 0xe7, 0xc2, 0x85, 0x35, 0xe4, 0xb1, 0x37, 0xfc, 0x08, 0x33, 0x38, 0x1d, 0xe0, 0x03, 0x97, 0x46, 0x87, 0xa6, 0x03, 0x72, 0xf6, 0xf6, 0x66, 0x1e, 0x84, 0xa7, 0xea, 0x06, 0x41, 0x7a, 0xba, 0xc6, 0xa1, 0x83, 0xe7, 0xa0, 0x7d, 0xac, 0xc1, 0xeb, 0xed, 0x3d, 0x36, 0x38, 0x8e, 0x4d, 0x6c, 0xf0, 0xc4, 0x77, 0x94, 0x35, 0xfc, 0x9b, 0xb3, 0xe1, 0xc1, 0x9b, 0x0d, 0x6f, 0xeb, 0x0c, 0x0e, 0x1f, 0x3c, 0x07, 0xed, 0x63, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0xe2, 0x46, 0xed, 0xc1, 0x2b, 0xdd, 0x51, 0xd6, 0xf0, 0x8b, 0xd2, 0x06, 0x8f, 0xc0, 0x49, 0xd9, 0x70, 0x49, 0x6d, 0xf0, 0x24, 0x38, 0x90, 0x35, 0x78, 0x93, 0x32, 0xc8, 0x06, 0x85, 0x60, 0xea, 0xc1, 0xb3, 0x93, 0x41, 0x6a, 0xc3, 0xbb, 0x3d, 0x1b, 0x3c, 0xb9, 0x33, 0x65, 0x83, 0xd7, 0xa4, 0xa7, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x5e, 0xb2, 0x9e, 0xb2, 0xc1, 0xab, 0xbd, 0x53, 0xd6, 0x60, 0x81, 0xdc, 0xd3, 0x86, 0xb7, 0x75, 0x0e, 0x9e, 0x83, 0xf6, 0x51, 0x6b, 0xf0, 0x14, 0x8b, 0x8f, 0x0d, 0x97, 0xd4, 0x06, 0x8f, 0x67, 0x57, 0x59, 0x83, 0x27, 0xee, 0xa7, 0x6c, 0x50, 0xc2, 0x63, 0x6e, 0xf0, 0x56, 0x7b, 0x95, 0x0d, 0x1e, 0xab, 0x9f, 0xb2, 0xe1, 0x6d, 0x9d, 0xc1, 0xeb, 0x83, 0xb7, 0xda, 0xab, 0xb4, 0x06, 0xaf, 0xf3, 0xf7, 0xd8, 0xa0, 0x2c, 0x79, 0xdf, 0xa0, 0xf9, 0xbc, 0xcb, 0x0d, 0x1e, 0x78, 0x9d, 0xb2, 0xc1, 0x83, 0xec, 0x55, 0x5a, 0x83, 0xd7, 0x41, 0x7c, 0x6c, 0xb8, 0xa4, 0x36, 0x78, 0x3c, 0xbb, 0xca, 0x1a, 0x94, 0x58, 0xdb, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0x2f, 0x2e, 0x6b, 0x70, 0x74, 0x1d, 0xdc, 0xa0, 0x19, 0xcd, 0x81, 0x83, 0x37, 0x74, 0xa2, 0xac, 0xc1, 0x4b, 0xa4, 0x52, 0x36, 0xbc, 0xad, 0x73, 0xf0, 0x0e, 0xa8, 0x92, 0x0e, 0x0a, 0xa5, 0xed, 0xd6, 0xe0, 0xe5, 0x20, 0x1f, 0x1b, 0x2e, 0xa9, 0x0d, 0x1e, 0xcf, 0xae, 0xb2, 0x06, 0x4f, 0x7c, 0x47, 0xd9, 0xf0, 0x6e, 0xcf, 0x06, 0xaf, 0xbf, 0x57, 0x59, 0xc3, 0x2f, 0x4a, 0x1b, 0xbc, 0xfa, 0x0d, 0x64, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x50, 0x72, 0x0d, 0x6f, 0xeb, 0x0c, 0xf0, 0xcd, 0x95, 0xd1, 0xd1, 0xb1, 0x95, 0x6d, 0x78, 0x50, 0x72, 0x83, 0xf7, 0xca, 0xa3, 0x6c, 0x78, 0x5b, 0xe7, 0x60, 0x41, 0x2b, 0xf1, 0x06, 0x2f, 0xcc, 0x38, 0xa9, 0x3a, 0x9c, 0x62, 0x6b, 0xd0, 0x2a, 0x90, 0xcb, 0x86, 0xbf, 0x68, 0xd6, 0xf0, 0xef, 0xfc, 0x1a, 0xbc, 0xb5, 0x79, 0xa4, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0x36, 0x78, 0x27, 0x9f, 0xca, 0x06, 0x6f, 0xf1, 0x53, 0xd9, 0xe0, 0x85, 0x86, 0x2a, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x13, 0x2b, 0x6b, 0x0f, 0x9e, 0x12, 0x1c, 0xd2, 0x86, 0xbf, 0x68, 0xd6, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0x9b, 0x30, 0xd7, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0x9b, 0x30, 0x37, 0x78, 0x2f, 0x02, 0x49, 0x6d, 0x50, 0xec, 0x68, 0xae, 0xe1, 0x11, 0xd6, 0x35, 0xfc, 0x9b, 0xb3, 0xc1, 0x8b, 0x63, 0x52, 0x36, 0xbc, 0xad, 0x33, 0x38, 0x7c, 0xf0, 0xde, 0xa6, 0x94, 0x35, 0x28, 0x26, 0x31, 0x37, 0x48, 0x19, 0x0c, 0x1e, 0x3c, 0x3e, 0x78, 0x6f, 0x53, 0xca, 0x1a, 0xfe, 0xcd, 0x59, 0xc3, 0x2f, 0x2e, 0x1b, 0xac, 0x70, 0x72, 0x3d, 0x48, 0x75, 0xdd, 0xdc, 0xf0, 0xb6, 0xce, 0xe0, 0xf2, 0xc1, 0x7b, 0x9b, 0x52, 0xda, 0xa0, 0xa0, 0xc8, 0xdc, 0xe0, 0xe4, 0x20, 0xb7, 0xe0, 0xf3, 0xc1, 0x7b, 0x9b, 0x52, 0x36, 0x28, 0x28, 0x32, 0x57, 0xc3, 0xe7, 0x4a, 0x1b, 0xbc, 0x0e, 0xe2, 0xe3, 0xe0, 0xb8, 0x78, 0xb2, 0xc1, 0x31, 0xdc, 0x60, 0x83, 0x63, 0xb8, 0xc1, 0x06, 0x2f, 0x91, 0x4a, 0xd9, 0x60, 0x81, 0xdc, 0xd3, 0xc1, 0x53, 0x1e, 0x56, 0x56, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0x60, 0xf9, 0xe4, 0xed, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x0b, 0x3c, 0xb6, 0xb0, 0xf1, 0xe0, 0xb8, 0x78, 0xb2, 0xc1, 0x31, 0xdc, 0x60, 0x83, 0x63, 0xb8, 0xc1, 0x06, 0x4b, 0xec, 0xb7, 0x37, 0x58, 0x20, 0xf7, 0x74, 0xf0, 0x8e, 0xfd, 0x94, 0xd5, 0xf0, 0xb9, 0xd2, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x0b, 0x3c, 0xbd, 0x32, 0x77, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x05, 0x1e, 0x5b, 0xd8, 0x79, 0x70, 0x5c, 0x3c, 0xd9, 0xe0, 0x18, 0x6e, 0xb0, 0xc1, 0x31, 0xdc, 0x60, 0x83, 0x25, 0xf6, 0xdb, 0x1b, 0x2c, 0x90, 0x7b, 0xda, 0xf0, 0xb6, 0xce, 0x80, 0xc7, 0x16, 0x76, 0x0e, 0x78, 0x7a, 0x65, 0x6e, 0xab, 0xe1, 0x73, 0xa5, 0x0d, 0x5e, 0x94, 0xb3, 0xb2, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x16, 0x77, 0x66, 0x1f, 0x1c, 0x17, 0x4f, 0x36, 0x38, 0x86, 0x1b, 0x6c, 0x70, 0x0c, 0x37, 0xd8, 0x60, 0x89, 0xfd, 0xf6, 0x06, 0x0b, 0xe4, 0x9e, 0x36, 0xbc, 0xad, 0xb3, 0xc1, 0xe2, 0xce, 0xec, 0x83, 0x37, 0xfe, 0xac, 0xac, 0x86, 0xcf, 0x95, 0xd6, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xa1, 0xf9, 0xc1, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x0b, 0x3c, 0xb3, 0x30, 0xfa, 0xe0, 0x10, 0xd3, 0xb1, 0xc1, 0x31, 0xdc, 0x60, 0x83, 0x63, 0xb8, 0xc1, 0x06, 0x4b, 0xec, 0xb7, 0x37, 0x58, 0x20, 0xf7, 0xb4, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x4b, 0xde, 0x37, 0x58, 0xea, 0xbd, 0xba, 0xc1, 0xab, 0xc8, 0x4f, 0xd6, 0xf0, 0xb6, 0xce, 0x80, 0x67, 0x16, 0x46, 0x1f, 0x04, 0xeb, 0x6d, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0x7a, 0x70, 0xfa, 0xe0, 0xdd, 0x2c, 0x2b, 0xb5, 0x02, 0xfe, 0x59, 0xd9, 0x1c, 0xbd, 0xe1, 0x17, 0xa5, 0x0d, 0xde, 0x05, 0xab, 0xb2, 0xe1, 0x2f, 0x9a, 0x35, 0x58, 0xaf, 0x52, 0xb5, 0xc1, 0x23, 0x13, 0x45, 0x0e, 0xde, 0x0a, 0x35, 0xb2, 0x41, 0xd1, 0x41, 0xbb, 0xc1, 0xb3, 0x91, 0x54, 0x36, 0x78, 0x40, 0xaf, 0xca, 0x06, 0xaf, 0xe4, 0x55, 0xd9, 0xa0, 0x20, 0x8d, 0x5d, 0xc3, 0xf7, 0xed, 0x1b, 0xac, 0xd4, 0x70, 0xde, 0xa0, 0x84, 0x8e, 0xdd, 0xa0, 0xd9, 0xed, 0xa8, 0x83, 0x30, 0x1d, 0x5b, 0x83, 0x20, 0x3d, 0xdd, 0xa0, 0x2d, 0x31, 0xab, 0x35, 0x48, 0x19, 0x0c, 0xde, 0x60, 0x89, 0xfd, 0xf6, 0x86, 0xb7, 0x75, 0x0e, 0xde, 0xb6, 0xab, 0xb2, 0x86, 0x1f, 0x6a, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xad, 0x48, 0x56, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0x9a, 0xd4, 0xbc, 0xd8, 0x60, 0x5d, 0x76, 0xdd, 0x06, 0xc7, 0x70, 0x83, 0x0d, 0x6f, 0xdc, 0x1d, 0xbc, 0xc2, 0x4c, 0xe4, 0xa0, 0x31, 0x07, 0xa9, 0x35, 0x78, 0x50, 0xd8, 0xca, 0xc1, 0x7b, 0xb9, 0x56, 0x6a, 0xc3, 0x2f, 0x2e, 0x1b, 0xbc, 0x46, 0x42, 0x65, 0x83, 0x57, 0xf2, 0xaa, 0x6c, 0xd0, 0x60, 0x98, 0xd5, 0x06, 0xef, 0x42, 0x57, 0x69, 0x35, 0x78, 0x0d, 0xaa, 0xca, 0x86, 0x5f, 0x94, 0x36, 0x78, 0x17, 0xac, 0xca, 0x86, 0xaf, 0x5f, 0x36, 0x78, 0x23, 0xbb, 0xca, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0x0f, 0xe8, 0x55, 0x59, 0x83, 0x73, 0xe1, 0xc2, 0x1a, 0xf2, 0xd8, 0x1b, 0x7e, 0x84, 0x19, 0x9c, 0x0e, 0xf0, 0x85, 0x4b, 0xa3, 0x43, 0xd3, 0x01, 0x11, 0x0b, 0x23, 0x03, 0xb9, 0x4b, 0x93, 0x2b, 0x0f, 0xc2, 0x53, 0x75, 0x83, 0x62, 0x47, 0x73, 0x0d, 0x8a, 0x49, 0xcc, 0x35, 0x08, 0x36, 0xd3, 0x0d, 0xde, 0x7c, 0x0e, 0xb2, 0xc1, 0xe3, 0xe0, 0x3e, 0x36, 0x78, 0xfe, 0xdc, 0x47, 0x07, 0x6f, 0xd9, 0x55, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x3c, 0xb9, 0x33, 0x65, 0x83, 0xd7, 0xa4, 0xa7, 0xac, 0xe1, 0x17, 0x97, 0x0d, 0x1e, 0x49, 0xae, 0xb2, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x6f, 0x8c, 0x5a, 0xe9, 0xe0, 0x15, 0xc1, 0x2a, 0x1d, 0x94, 0x75, 0x9e, 0x1b, 0x14, 0xa4, 0xb1, 0x1b, 0xac, 0x0f, 0xde, 0x5c, 0x83, 0x73, 0xe1, 0xc2, 0x1a, 0xf2, 0xd8, 0x1b, 0x7e, 0x84, 0x19, 0x9c, 0x0e, 0xf0, 0x85, 0x4b, 0xa3, 0x43, 0xd3, 0x01, 0x11, 0x0b, 0x23, 0x03, 0xb9, 0x0b, 0x9b, 0x83, 0x37, 0x58, 0x23, 0xd5, 0xb4, 0xc1, 0xf3, 0xec, 0x3e, 0x0e, 0xde, 0xcb, 0xb5, 0xb2, 0x41, 0x90, 0x9e, 0xae, 0x71, 0xe8, 0x60, 0xdd, 0x2e, 0xe7, 0x1a, 0xbc, 0xf9, 0x1c, 0x64, 0x83, 0xe3, 0xd8, 0xc4, 0x06, 0xef, 0xf7, 0x59, 0x59, 0xc3, 0x23, 0xac, 0x6b, 0x50, 0x4c, 0x62, 0xae, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0xc0, 0x2f, 0xc3, 0x4b, 0xa3, 0x37, 0x78, 0xdf, 0xce, 0xc8, 0x06, 0x0f, 0x56, 0x07, 0x39, 0x58, 0xb7, 0xcb, 0xb9, 0x06, 0xc5, 0x24, 0xe6, 0x06, 0x45, 0x2a, 0xe6, 0x06, 0x27, 0xca, 0xd4, 0x83, 0x77, 0x0f, 0xae, 0xac, 0x41, 0x31, 0x89, 0xb9, 0x41, 0x8b, 0xc6, 0xc9, 0x83, 0xa7, 0x07, 0xef, 0x2f, 0x5c, 0x59, 0xc3, 0x27, 0x36, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xe5, 0xc8, 0xc2, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0xf8, 0xe0, 0x25, 0x88, 0x2b, 0x6d, 0x50, 0x4c, 0x62, 0xae, 0xc1, 0x52, 0x8c, 0xaa, 0x0d, 0x57, 0xd7, 0xc1, 0xf3, 0xe7, 0x3e, 0x0e, 0x5f, 0x4e, 0xb6, 0x06, 0xeb, 0x56, 0x99, 0x66, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0x2e, 0xe0, 0x65, 0x0b, 0x3b, 0x3b, 0x4b, 0x73, 0x3b, 0x0f, 0x8a, 0x9c, 0xd6, 0x0d, 0xef, 0xf6, 0x6c, 0xf0, 0xe4, 0xce, 0x94, 0x0d, 0x5e, 0x93, 0x9e, 0xb2, 0x86, 0x5f, 0x5c, 0x36, 0x78, 0x24, 0xb9, 0xca, 0x6a, 0x78, 0xe3, 0xee, 0xe0, 0xf5, 0x79, 0x22, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0xdb, 0x3a, 0x07, 0xef, 0x1e, 0x5c, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x3c, 0xae, 0x6e, 0x65, 0x0d, 0x6f, 0xeb, 0x6c, 0xf0, 0x72, 0x0c, 0x90, 0x83, 0x75, 0xbb, 0x9c, 0xd5, 0x41, 0x59, 0xe7, 0xb9, 0x06, 0x8f, 0x83, 0xfb, 0xd8, 0x70, 0x49, 0x6d, 0xf0, 0x78, 0x76, 0x95, 0x35, 0x78, 0x21, 0x60, 0xca, 0x86, 0x77, 0x7b, 0x36, 0x48, 0x4f, 0x8e, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0xf5, 0xb6, 0x1b, 0x14, 0x95, 0xe2, 0x1b, 0x3c, 0x03, 0x30, 0xe5, 0xa0, 0x59, 0x92, 0xef, 0x5a, 0x83, 0xe7, 0xcf, 0x7d, 0x6c, 0x50, 0xec, 0x68, 0xae, 0xe1, 0xdd, 0x9e, 0x35, 0x3c, 0x28, 0xb9, 0xc1, 0xb2, 0xc6, 0xb9, 0x0d, 0x6f, 0xeb, 0x6c, 0xf0, 0x9c, 0x83, 0x8c, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x8b, 0xf8, 0x69, 0x0f, 0x5a, 0xf0, 0xf8, 0x6e, 0x0d, 0xce, 0x85, 0x0b, 0x6b, 0xc8, 0x63, 0x6f, 0xf8, 0x11, 0x66, 0x70, 0x3a, 0xc0, 0xef, 0x2e, 0x4f, 0x8e, 0x4c, 0x07, 0x24, 0xcd, 0x6d, 0x2e, 0xcc, 0xad, 0x3c, 0x08, 0x4f, 0xd5, 0x0d, 0x4e, 0xec, 0x37, 0x6b, 0x50, 0x74, 0x1a, 0xaf, 0xe1, 0x41, 0xc9, 0x0d, 0xce, 0x86, 0x2e, 0x07, 0x0f, 0x0d, 0x5d, 0xd9, 0xe0, 0xb1, 0xa2, 0x2b, 0x1b, 0xfe, 0xa2, 0xd9, 0xe0, 0x51, 0x85, 0x20, 0x1b, 0x1c, 0x5d, 0x07, 0xd7, 0xa0, 0xc5, 0xa6, 0xcb, 0x83, 0x76, 0x95, 0xd0, 0xd6, 0xe0, 0xd9, 0x01, 0x29, 0x07, 0x8f, 0x85, 0x56, 0x59, 0x83, 0xe7, 0x68, 0xa4, 0x6c, 0xb0, 0x46, 0xaa, 0x69, 0x83, 0x32, 0x4b, 0x77, 0xc3, 0x83, 0x92, 0x1b, 0x9c, 0x8e, 0x44, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x53, 0x64, 0x96, 0x1b, 0x3c, 0x40, 0x24, 0x65, 0x0d, 0xda, 0x2b, 0x29, 0x38, 0x78, 0x8e, 0x46, 0x4a, 0x6b, 0xf0, 0xbe, 0x91, 0x94, 0x0d, 0xd6, 0x48, 0x35, 0x6d, 0x50, 0x66, 0xe9, 0x6e, 0x78, 0x50, 0x72, 0x83, 0xd3, 0x91, 0xc8, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x8a, 0xcc, 0x72, 0x83, 0x07, 0x98, 0xa4, 0xac, 0x41, 0x7b, 0x25, 0x05, 0x07, 0xef, 0x1b, 0x49, 0xa9, 0x0d, 0x8e, 0x63, 0x13, 0x1b, 0xbc, 0xdf, 0x67, 0x65, 0x0d, 0x6f, 0xb3, 0x6e, 0xf8, 0x37, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0x30, 0x80, 0x36, 0x0e, 0x5e, 0x59, 0xb4, 0xb2, 0xe1, 0x6d, 0x9d, 0x0d, 0x06, 0xd0, 0xc6, 0x41, 0x0b, 0x1e, 0xdf, 0x6b, 0xb0, 0x6e, 0x95, 0x69, 0xd6, 0xf0, 0xc6, 0xdd, 0x86, 0x97, 0xef, 0x02, 0x3c, 0xea, 0xdc, 0xd8, 0xc2, 0xce, 0xce, 0xd2, 0xdc, 0xce, 0x83, 0x02, 0x36, 0x7f, 0xc3, 0x25, 0xb5, 0xc1, 0xe3, 0xd9, 0x55, 0xd6, 0xe0, 0x95, 0x45, 0x2b, 0x07, 0xcd, 0x74, 0x7c, 0xd7, 0xe1, 0x14, 0x6b, 0x0d, 0xd6, 0x8e, 0x76, 0x6f, 0x50, 0x96, 0x61, 0x6f, 0xf0, 0xa2, 0x68, 0x94, 0x59, 0x66, 0x0d, 0x16, 0xf1, 0xd3, 0x6e, 0xf8, 0xfa, 0x65, 0x83, 0x37, 0xb2, 0xab, 0x6c, 0x50, 0x90, 0xc6, 0x6e, 0x50, 0xf8, 0x1b, 0xac, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x4b, 0xde, 0xd7, 0xe0, 0xc5, 0xd2, 0x27, 0xad, 0xe1, 0x6d, 0x9d, 0x0d, 0x1e, 0x5e, 0x7c, 0xd2, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xcc, 0xc2, 0xe8, 0x0d, 0xcd, 0x0f, 0x0e, 0x9e, 0xcd, 0xac, 0xd2, 0xc1, 0xb3, 0xad, 0x50, 0x36, 0x28, 0x48, 0x63, 0x37, 0x58, 0x55, 0x75, 0xba, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x2c, 0x79, 0x5f, 0x83, 0xb7, 0x28, 0xa2, 0x74, 0xf0, 0x36, 0xe5, 0x95, 0x0d, 0x0e, 0x78, 0x56, 0x6d, 0x50, 0xc2, 0x63, 0x6e, 0xb0, 0x7e, 0xee, 0x74, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x76, 0xb7, 0x1b, 0x1c, 0xf0, 0xac, 0x0e, 0x52, 0x6d, 0xe1, 0x36, 0x28, 0x48, 0x63, 0x37, 0x58, 0x48, 0xfe, 0xbb, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x80, 0x2f, 0xf6, 0xf6, 0x46, 0xb7, 0x86, 0xb7, 0x75, 0x36, 0x58, 0xc4, 0x4f, 0x7b, 0xf0, 0xca, 0xa2, 0x95, 0x35, 0x3c, 0x28, 0xb9, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb6, 0xce, 0xc1, 0x23, 0x3e, 0x51, 0x0e, 0x1e, 0xf3, 0x8a, 0xb2, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0xc1, 0xeb, 0x83, 0xf5, 0x73, 0xa7, 0x6d, 0xb8, 0xa4, 0x36, 0x78, 0x3c, 0xbb, 0xca, 0x1a, 0x2c, 0x0f, 0x31, 0xdd, 0xe0, 0x18, 0x6e, 0xb0, 0xe1, 0x17, 0x97, 0x0d, 0xda, 0xfe, 0xfd, 0x5b, 0xc3, 0xdb, 0x3a, 0x83, 0xc7, 0x07, 0x0f, 0xe1, 0x5e, 0x39, 0x78, 0xb6, 0x15, 0x4a, 0xab, 0xa1, 0xf9, 0xc1, 0x86, 0x5f, 0x94, 0x36, 0x78, 0x18, 0x01, 0xca, 0x86, 0xaf, 0x5f, 0x36, 0x78, 0x23, 0xbb, 0xca, 0x06, 0x45, 0x07, 0xed, 0x1a, 0xbe, 0x6f, 0x1f, 0xf0, 0xd4, 0xde, 0xc4, 0x0d, 0x4a, 0xe8, 0xd8, 0x0d, 0x5e, 0x83, 0x80, 0x72, 0x10, 0xa6, 0x63, 0x1b, 0x3c, 0x7e, 0x79, 0x65, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x59, 0xf2, 0xbe, 0x06, 0xcf, 0xf2, 0x3f, 0xe9, 0xe0, 0x6d, 0xca, 0x2b, 0x1b, 0x1c, 0xf0, 0xac, 0x36, 0x78, 0x57, 0x07, 0x4a, 0x1b, 0x1c, 0xc7, 0x26, 0x16, 0xf0, 0xd8, 0xea, 0xd8, 0x83, 0x07, 0x32, 0xaf, 0xac, 0x41, 0x31, 0x89, 0xb9, 0x41, 0x91, 0x8a, 0x39, 0xe0, 0xb1, 0xd5, 0xb1, 0x03, 0x9e, 0xda, 0x9b, 0xd8, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0x83, 0x92, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x9f, 0x6b, 0x4b, 0xa3, 0x3b, 0x78, 0xaf, 0x3c, 0xca, 0x1a, 0x9e, 0xc5, 0x1b, 0x9c, 0x1d, 0xbc, 0x1e, 0x9c, 0x3d, 0x18, 0xa4, 0x52, 0x1b, 0xbc, 0x2b, 0x23, 0x65, 0x0d, 0x8e, 0xae, 0x83, 0x1b, 0x3c, 0x02, 0x02, 0x65, 0x83, 0x47, 0x44, 0xa0, 0x1c, 0x3c, 0x19, 0x13, 0x65, 0x0d, 0x6f, 0xeb, 0x0c, 0x5e, 0x1f, 0xbc, 0xba, 0x7d, 0xa5, 0x0d, 0x8e, 0x63, 0x13, 0x0b, 0x78, 0x7a, 0x75, 0xf3, 0xc1, 0x03, 0x99, 0x57, 0xd6, 0xa0, 0x98, 0xc4, 0xdc, 0xa0, 0x48, 0xc5, 0x1c, 0xf0, 0xf4, 0xea, 0xe6, 0x83, 0x97, 0xb9, 0xaf, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x9e, 0xf7, 0xbe, 0xb2, 0x86, 0x67, 0xf1, 0x06, 0xd7, 0x07, 0xaf, 0x0f, 0x96, 0x7a, 0xfc, 0xac, 0xe1, 0x6d, 0x9d, 0x83, 0xc7, 0xae, 0xaf, 0xac, 0xc1, 0xd1, 0x75, 0x70, 0x83, 0x47, 0x40, 0xa0, 0x6c, 0xf0, 0xfc, 0x15, 0x94, 0x83, 0x27, 0x63, 0xa2, 0xac, 0xe1, 0x6d, 0x9d, 0xc1, 0xeb, 0x83, 0x47, 0xe8, 0xaf, 0xb4, 0xc1, 0x89, 0xfd, 0x66, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x5e, 0x91, 0xba, 0xb2, 0xc1, 0xfb, 0xae, 0x57, 0x36, 0x38, 0xba, 0x0e, 0xae, 0xc1, 0x73, 0x34, 0x52, 0x36, 0x58, 0x23, 0xd5, 0xb4, 0x41, 0x99, 0xa5, 0xbb, 0xe1, 0x41, 0xc9, 0x0d, 0x4e, 0x47, 0x22, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x29, 0x32, 0xcb, 0x0d, 0x5e, 0xdb, 0xbf, 0x72, 0xf0, 0x8c, 0xd9, 0x95, 0x35, 0x78, 0xdf, 0x48, 0xca, 0x06, 0x6b, 0xa4, 0x9a, 0x36, 0x28, 0xb3, 0x74, 0x37, 0x3c, 0x28, 0xb9, 0xc1, 0xe9, 0x48, 0x64, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0x45, 0x66, 0xb9, 0x86, 0xb7, 0x75, 0x0e, 0xde, 0x7e, 0xbf, 0x72, 0xf0, 0x36, 0xdc, 0x95, 0x36, 0x5c, 0x52, 0x1b, 0x3c, 0x9e, 0x5d, 0x65, 0x0d, 0x9e, 0xf8, 0x8e, 0xb2, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0x52, 0x49, 0xc2, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xd9, 0x85, 0xb9, 0x07, 0x2f, 0x73, 0x5f, 0xd9, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0xe7, 0x4a, 0x1b, 0xb4, 0x46, 0x94, 0xb5, 0x86, 0x3f, 0x97, 0x36, 0x58, 0x80, 0x7b, 0x7e, 0x70, 0x02, 0x12, 0x6d, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x76, 0x61, 0xee, 0x06, 0x01, 0x74, 0xb6, 0xe1, 0x6d, 0x9d, 0x01, 0xcf, 0x2e, 0xcc, 0x3d, 0x78, 0x20, 0xf3, 0x4a, 0x1b, 0xbe, 0x7e, 0xd9, 0xe0, 0x09, 0x7e, 0x28, 0x1b, 0x14, 0xa4, 0xb1, 0x1b, 0xb4, 0x5d, 0xf6, 0xb9, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xa0, 0xe4, 0x1a, 0xde, 0xd6, 0x19, 0xe0, 0x1b, 0x93, 0x2b, 0x0b, 0xa3, 0x2b, 0x3b, 0x78, 0xaf, 0x3c, 0xca, 0x06, 0x2f, 0x8e, 0x49, 0xd9, 0xe0, 0x3d, 0x0d, 0x2c, 0x1b, 0xb4, 0x74, 0x96, 0xb5, 0x06, 0x47, 0xd7, 0xc1, 0x0d, 0x1e, 0x01, 0x81, 0xb2, 0xc1, 0x8b, 0x9b, 0x50, 0x36, 0x68, 0xe9, 0x2c, 0xeb, 0xe0, 0xc9, 0x98, 0x28, 0x07, 0x8b, 0xc0, 0xcf, 0x37, 0x28, 0x48, 0x63, 0x07, 0x3c, 0xb7, 0x30, 0x7b, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0xe1, 0x26, 0xba, 0x41, 0xd9, 0x54, 0x7f, 0xf0, 0x00, 0x3f, 0x94, 0x83, 0x76, 0xce, 0xb2, 0x36, 0x38, 0x8e, 0x4d, 0x6c, 0xd0, 0xd8, 0xda, 0xe7, 0x1a, 0x14, 0x93, 0x98, 0x1b, 0x14, 0xa9, 0x98, 0x07, 0xaf, 0x11, 0x42, 0x59, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x50, 0x72, 0x0d, 0x6f, 0xeb, 0x0c, 0xf0, 0xd5, 0xc1, 0x91, 0x85, 0xd1, 0x95, 0x1d, 0xbc, 0x57, 0x1e, 0x65, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0x52, 0xc3, 0x79, 0xf0, 0xfa, 0xe0, 0x35, 0x42, 0x28, 0x07, 0xcd, 0x3e, 0xa0, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0xca, 0x16, 0xd4, 0x83, 0xd7, 0x97, 0xb0, 0x6c, 0xd0, 0xd2, 0x59, 0xd6, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0x83, 0x92, 0x1b, 0x3c, 0xb8, 0x62, 0xe5, 0xe0, 0xbd, 0xf2, 0x28, 0x07, 0xcd, 0x3e, 0xa0, 0xd6, 0x0a, 0x78, 0x6c, 0x6f, 0xe4, 0x86, 0x5f, 0x94, 0x36, 0x78, 0xee, 0x33, 0xca, 0x86, 0xaf, 0x5f, 0x36, 0x78, 0x23, 0xbb, 0xca, 0x06, 0x45, 0x9f, 0xee, 0x06, 0x8f, 0x5f, 0x5e, 0x59, 0xc3, 0xbb, 0x3d, 0x6b, 0x50, 0x96, 0xbc, 0x6f, 0x50, 0xee, 0xbc, 0x6f, 0xf0, 0x2a, 0xf2, 0x93, 0x83, 0xf7, 0x2d, 0xaf, 0x6c, 0xd0, 0x46, 0xde, 0x65, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x84, 0xdd, 0xed, 0x06, 0xaf, 0x46, 0x5e, 0xd9, 0xa0, 0xe8, 0x34, 0xde, 0x60, 0x7d, 0x6a, 0xed, 0x06, 0x6d, 0xe4, 0x5d, 0x6e, 0xf8, 0x45, 0x69, 0x83, 0x17, 0x77, 0xa1, 0x6c, 0x50, 0x4c, 0x62, 0xae, 0xe1, 0x73, 0xa5, 0x0d, 0x1e, 0xde, 0x7e, 0xb2, 0x06, 0xc1, 0x66, 0xba, 0x86, 0x0c, 0xf8, 0xc1, 0x03, 0x3b, 0x51, 0x36, 0x68, 0x25, 0xda, 0xb2, 0x83, 0x43, 0x4c, 0xc7, 0xc1, 0xc1, 0x23, 0xe3, 0x70, 0x8a, 0xd5, 0xe1, 0x14, 0x5b, 0x0d, 0x1e, 0x45, 0x9e, 0xb2, 0xe1, 0x17, 0xa5, 0x0d, 0xde, 0x05, 0xab, 0xb2, 0xe1, 0xeb, 0x97, 0x0d, 0xde, 0xc8, 0xae, 0xb2, 0xe1, 0x92, 0xda, 0xe0, 0xf1, 0xec, 0x2a, 0x6b, 0x50, 0x62, 0x6d, 0x6f, 0xf8, 0xc5, 0x65, 0x83, 0x77, 0x04, 0xab, 0x1c, 0x14, 0x4a, 0xdb, 0x1d, 0x4e, 0xb1, 0x0e, 0xa7, 0xd8, 0xac, 0x41, 0x9b, 0x3b, 0x54, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0x6d, 0xee, 0x50, 0x35, 0x00, 0x7f, 0x72, 0x65, 0x74, 0x72, 0x65, 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x2d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x1b, 0x3c, 0x99, 0x2b, 0x65, 0x83, 0x67, 0x67, 0xab, 0x6c, 0xf0, 0x40, 0x71, 0x94, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0x23, 0xe9, 0x44, 0x0e, 0x5e, 0x31, 0x39, 0xd2, 0x86, 0xaf, 0x5f, 0x36, 0x78, 0x3e, 0x58, 0xca, 0x86, 0x0f, 0x72, 0x36, 0x78, 0x92, 0x58, 0xca, 0x1a, 0x14, 0x7c, 0x98, 0x6b, 0x50, 0x4c, 0x62, 0x6e, 0x10, 0x82, 0x0f, 0x07, 0xef, 0x52, 0xf7, 0xd8, 0xf0, 0x6e, 0xcf, 0x06, 0x4f, 0x1b, 0x4f, 0xd9, 0xe0, 0x09, 0x53, 0x27, 0x6b, 0xb0, 0x46, 0xaa, 0x69, 0x83, 0xc7, 0xa0, 0x8d, 0x6c, 0x78, 0x5b, 0xe7, 0xe0, 0x39, 0x50, 0x2a, 0x6d, 0x50, 0xf4, 0xe9, 0x6e, 0xd0, 0x96, 0x98, 0xd5, 0x06, 0x6f, 0x73, 0x4b, 0xd9, 0xa0, 0xe8, 0x34, 0xde, 0xa0, 0x11, 0x7e, 0xd2, 0x0d, 0xde, 0x10, 0x97, 0xb2, 0xc1, 0x92, 0xfa, 0xa5, 0x35, 0x7c, 0xee, 0xb2, 0xc1, 0x2b, 0x2a, 0x45, 0x0e, 0x9e, 0x30, 0x75, 0xb2, 0xc1, 0x92, 0xfa, 0xa5, 0x0d, 0x9e, 0x4d, 0x97, 0xb2, 0xc1, 0xa9, 0xe1, 0x68, 0x0d, 0xbf, 0xb8, 0x6c, 0xf0, 0x84, 0xa9, 0x93, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0xdb, 0x16, 0x54, 0x0e, 0xde, 0xbf, 0xa6, 0xd2, 0x86, 0x07, 0x25, 0x37, 0x68, 0x56, 0x87, 0xea, 0xe0, 0x21, 0x7c, 0x29, 0x87, 0x53, 0xec, 0x70, 0x8a, 0xad, 0xc0, 0xb7, 0x95, 0x1b, 0x1e, 0x1f, 0x19, 0xf8, 0xb6, 0x72, 0x83, 0xb2, 0x0c, 0x7b, 0x0d, 0x9f, 0x2b, 0x6d, 0xf0, 0x70, 0xc6, 0x94, 0x83, 0x37, 0x56, 0xa3, 0xcc, 0x32, 0x0b, 0xe0, 0x25, 0x57, 0x66, 0x96, 0xe6, 0x56, 0xd6, 0xd2, 0xf6, 0x66, 0x57, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xbc, 0x96, 0x8d, 0xa5, 0x01, 0x7c, 0xdb, 0xde, 0xec, 0xca, 0x40, 0xcc, 0xe4, 0xde, 0xda, 0x40, 0xec, 0xc2, 0xe6, 0xca, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0xbb, 0xd9, 0x51, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0xd0, 0x2f, 0xd9, 0xa0, 0xf4, 0xa6, 0xdf, 0xe0, 0x09, 0x8e, 0x1f, 0x1b, 0x3c, 0x3b, 0x19, 0xa4, 0x0d, 0xce, 0x85, 0x0b, 0x6b, 0xc8, 0x63, 0x6f, 0xf8, 0x11, 0x66, 0x70, 0x3a, 0xe0, 0x17, 0x0b, 0x23, 0x6b, 0x69, 0x7b, 0xb3, 0x2b, 0x37, 0x28, 0x3a, 0x68, 0x07, 0x3c, 0xb4, 0x34, 0x78, 0x83, 0x27, 0x42, 0xa6, 0xac, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x4b, 0xde, 0x17, 0xf0, 0xdd, 0xca, 0xd8, 0xd8, 0xd6, 0xf0, 0xb6, 0xce, 0xc0, 0xdf, 0x85, 0x1d, 0x3c, 0x96, 0x33, 0xe5, 0xa0, 0x4d, 0xf5, 0xa8, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xa1, 0xa5, 0xc1, 0xad, 0xc1, 0xb9, 0x70, 0x61, 0x0d, 0x79, 0xec, 0x0d, 0x3f, 0xc2, 0x0c, 0x4e, 0x07, 0xfc, 0x6e, 0x6f, 0x74, 0x2d, 0x63, 0x65, 0x6c, 0xec, 0x41, 0x78, 0xaa, 0x6e, 0x50, 0x90, 0xc6, 0x0e, 0x78, 0x64, 0x75, 0xe3, 0x1a, 0x9c, 0x0b, 0x17, 0xd6, 0x90, 0xc7, 0xde, 0xf0, 0x23, 0xcc, 0xe0, 0x74, 0xc0, 0x2f, 0x16, 0x46, 0xd6, 0x42, 0x56, 0x37, 0x46, 0x6f, 0xb0, 0x46, 0xaa, 0x69, 0x83, 0xa7, 0xa7, 0x7b, 0x1c, 0x34, 0x04, 0x20, 0xb5, 0x41, 0xd1, 0x41, 0x3b, 0xe0, 0xe5, 0x85, 0xd1, 0x1b, 0x3c, 0x11, 0x32, 0x65, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x59, 0xf2, 0xbe, 0xc1, 0xba, 0xf8, 0xe0, 0x83, 0x27, 0xf0, 0xb1, 0x6c, 0x50, 0x54, 0x8a, 0x1f, 0x34, 0x23, 0x21, 0xb8, 0x41, 0xd1, 0x41, 0xbb, 0x41, 0xe1, 0x6f, 0xb0, 0xc1, 0x13, 0x21, 0x53, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0x19, 0xc0, 0x4b, 0xae, 0xcc, 0x2c, 0xcd, 0xad, 0xac, 0x45, 0x2c, 0x8c, 0x8d, 0x6d, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x79, 0x61, 0x74, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0x8f, 0xac, 0x6e, 0xec, 0xe0, 0x41, 0xd1, 0x2b, 0x07, 0x8f, 0xe5, 0x4c, 0x59, 0x01, 0xbc, 0xe4, 0xca, 0xcc, 0xd2, 0xdc, 0xca, 0x5a, 0xc6, 0xc2, 0xe4, 0xc8, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xa7, 0x55, 0xb2, 0x34, 0x80, 0xef, 0x58, 0x98, 0x1c, 0x19, 0x88, 0x99, 0xdc, 0x5b, 0x1b, 0x88, 0x5d, 0xd8, 0x5c, 0xd9, 0x86, 0x5f, 0x94, 0x36, 0x68, 0x37, 0x3b, 0x6a, 0xc3, 0x5f, 0x34, 0x6b, 0x10, 0xfa, 0x25, 0x1b, 0x94, 0xde, 0xf4, 0x1b, 0xbc, 0x62, 0x72, 0xe4, 0xe0, 0x45, 0x75, 0x2c, 0x1b, 0x9c, 0x0b, 0x17, 0xd6, 0x90, 0xc7, 0xde, 0xf0, 0x23, 0xcc, 0xe0, 0x74, 0xc0, 0x2f, 0x16, 0x46, 0xd6, 0x32, 0x16, 0x26, 0x47, 0x6e, 0x50, 0x74, 0xd0, 0x0e, 0x78, 0x68, 0x69, 0xf0, 0x06, 0x4f, 0x84, 0x4c, 0xd9, 0xe0, 0x55, 0x7a, 0x2c, 0x1b, 0x14, 0x7c, 0x98, 0x1b, 0x3c, 0xd1, 0x8f, 0x65, 0x83, 0x62, 0x47, 0x73, 0x0d, 0x8a, 0x49, 0xcc, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xf0, 0xb0, 0x10, 0x91, 0x83, 0xa6, 0xe2, 0xa3, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0x7e, 0x71, 0xd9, 0x60, 0x15, 0x98, 0xec, 0x41, 0x33, 0x12, 0x82, 0x07, 0x8f, 0xe5, 0x4c, 0xd9, 0xe0, 0x5c, 0xb8, 0xb0, 0x86, 0x3c, 0xf6, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x03, 0x7e, 0xb1, 0x30, 0xb2, 0x96, 0xb6, 0x32, 0xba, 0x70, 0x83, 0xa2, 0x83, 0x76, 0x83, 0x46, 0x3d, 0xfd, 0x36, 0x78, 0x22, 0x64, 0xca, 0x1a, 0xde, 0xed, 0x59, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x96, 0x35, 0x2e, 0x0f, 0x9e, 0xc0, 0xc7, 0x72, 0xf0, 0x06, 0x46, 0x96, 0x0d, 0x8a, 0x0e, 0xda, 0x01, 0x0f, 0x2d, 0x0d, 0xde, 0xe0, 0x89, 0x90, 0x29, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x27, 0xeb, 0xb1, 0x6c, 0xd0, 0x3c, 0xab, 0x5f, 0x1b, 0x14, 0x7c, 0x98, 0x1b, 0x3c, 0xd1, 0x8f, 0x65, 0x83, 0xa2, 0x83, 0x76, 0x83, 0xc6, 0xe7, 0xa3, 0x36, 0x78, 0x22, 0x64, 0xca, 0x1a, 0xde, 0xed, 0xd9, 0xe0, 0xf9, 0xae, 0x2c, 0x1b, 0x04, 0x2c, 0xeb, 0x1a, 0xde, 0xd6, 0x39, 0x68, 0xc9, 0xd5, 0xaf, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0x9e, 0x08, 0x99, 0xb2, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x2c, 0x79, 0x5f, 0xc0, 0x77, 0x2b, 0x0b, 0xa3, 0x3b, 0x78, 0x02, 0x1f, 0xcb, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0xf1, 0xf9, 0xa8, 0x83, 0xa6, 0x71, 0xd5, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xab, 0xc0, 0x64, 0x0f, 0x5a, 0xc1, 0x07, 0x6b, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0x8a, 0x49, 0xcc, 0x0d, 0x9e, 0x64, 0x24, 0x72, 0xd0, 0xf4, 0xb8, 0xdf, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xcb, 0x9c, 0x64, 0x0f, 0x5a, 0x17, 0xf7, 0x3b, 0x78, 0x2c, 0x67, 0xca, 0x6a, 0xf0, 0xcc, 0x47, 0x96, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x67, 0x3e, 0xb2, 0x34, 0x80, 0xaf, 0x58, 0x18, 0x1b, 0x1b, 0x88, 0x99, 0xdc, 0x5b, 0x1b, 0x88, 0x5d, 0xd8, 0x5c, 0xd9, 0x86, 0x5f, 0x94, 0x36, 0x68, 0x37, 0x3b, 0x6a, 0xc3, 0x5f, 0x34, 0x6b, 0x10, 0xfa, 0x25, 0x1b, 0x94, 0xde, 0xf4, 0x1b, 0xbc, 0x15, 0x6a, 0xe4, 0xe0, 0x45, 0x75, 0x2c, 0x1b, 0x9c, 0x1c, 0xe4, 0x36, 0x68, 0x39, 0x3c, 0x6a, 0x0d, 0xce, 0x85, 0x0b, 0x6b, 0xc8, 0x63, 0x6f, 0xf8, 0x11, 0x66, 0x70, 0x3a, 0xe0, 0x17, 0x0b, 0x23, 0x6b, 0x11, 0x0b, 0x63, 0x63, 0x37, 0xbc, 0x65, 0xb7, 0x41, 0x43, 0x0f, 0x82, 0x07, 0xe1, 0xa9, 0xba, 0x1a, 0x3e, 0x57, 0xda, 0xe0, 0x1d, 0x8d, 0x22, 0x1b, 0x3c, 0x06, 0x6d, 0xa4, 0x0d, 0x8a, 0x0e, 0xda, 0x0d, 0xd6, 0x7b, 0xea, 0x6d, 0xf0, 0x44, 0xc8, 0x94, 0x0d, 0x1e, 0xa0, 0xc8, 0xb2, 0x41, 0xd1, 0x41, 0xbb, 0x41, 0xfb, 0x6d, 0xc5, 0x1b, 0x3c, 0x11, 0x32, 0x65, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x9e, 0x56, 0xc9, 0xd2, 0x1a, 0xde, 0xd6, 0x39, 0x58, 0xf9, 0xb0, 0xd7, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xaf, 0x67, 0x52, 0xd9, 0xa0, 0x25, 0xbb, 0xe2, 0x0e, 0x1e, 0xcb, 0x99, 0xb2, 0x1a, 0x3e, 0x57, 0xda, 0xe0, 0x91, 0x89, 0x22, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x57, 0x54, 0x8a, 0x1c, 0x84, 0xe9, 0xd8, 0x1a, 0xfe, 0x5c, 0xda, 0xe0, 0x01, 0xe1, 0x1e, 0x07, 0xeb, 0xb5, 0x9e, 0x0f, 0x5e, 0x34, 0xcd, 0xb2, 0x41, 0x41, 0x1a, 0xbb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0x45, 0xa5, 0xc8, 0x06, 0x25, 0x74, 0xec, 0x06, 0xef, 0xb6, 0x14, 0x39, 0x08, 0xd3, 0xb1, 0x35, 0x38, 0x17, 0x2e, 0xac, 0x21, 0x8f, 0xbd, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0x80, 0x5f, 0x2c, 0x8c, 0xac, 0xe5, 0x2e, 0x4d, 0xae, 0xdc, 0x60, 0x8d, 0x54, 0xd3, 0x06, 0xef, 0xb6, 0x14, 0xd9, 0xf0, 0xb6, 0xce, 0x06, 0xaf, 0xa8, 0x14, 0x39, 0x68, 0x39, 0x3c, 0x6a, 0x83, 0x82, 0x34, 0x76, 0x83, 0x07, 0x84, 0x7b, 0xac, 0xc1, 0xb9, 0x70, 0x61, 0x0d, 0x79, 0xec, 0x0d, 0x3f, 0xc2, 0x0c, 0x4e, 0x07, 0xf8, 0x8a, 0x85, 0x91, 0xb5, 0xd8, 0x85, 0xb9, 0x95, 0xb5, 0xb0, 0x85, 0x89, 0x95, 0xb1, 0x1b, 0x14, 0x7c, 0x98, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x97, 0xbf, 0xa1, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x1e, 0x10, 0xee, 0x71, 0xd0, 0x72, 0x78, 0x54, 0x07, 0xaf, 0x81, 0x67, 0xd9, 0xa0, 0xe8, 0xa0, 0x1d, 0xf0, 0xf0, 0xc2, 0xec, 0x0d, 0x9e, 0x08, 0x99, 0xb2, 0x86, 0x77, 0x7b, 0x36, 0x78, 0x9d, 0x22, 0xcb, 0x06, 0xe7, 0x05, 0x9a, 0x83, 0x66, 0x24, 0x04, 0x37, 0x28, 0x3a, 0x68, 0x37, 0x58, 0xef, 0xa9, 0xb7, 0xc1, 0x13, 0x21, 0x53, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xaf, 0x53, 0x64, 0xd9, 0xa0, 0xa8, 0x14, 0x5f, 0xc3, 0xdb, 0x3a, 0x03, 0x1e, 0x5e, 0x98, 0x5d, 0x1b, 0x14, 0x1d, 0xb4, 0x1b, 0xb4, 0xdf, 0x56, 0xbc, 0xc1, 0x13, 0x21, 0x53, 0x36, 0x78, 0xf0, 0x35, 0xcb, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xaf, 0x91, 0x50, 0xd9, 0xe0, 0x09, 0x53, 0x27, 0x1b, 0xbc, 0x94, 0x1e, 0xe5, 0xe0, 0xb1, 0xdb, 0x2c, 0x07, 0x8f, 0xe5, 0x4c, 0x59, 0x0d, 0x9f, 0x2b, 0x6d, 0xf0, 0x2e, 0x4f, 0x91, 0x83, 0x77, 0x7d, 0xb3, 0x6c, 0x50, 0x90, 0xc6, 0x6e, 0xf0, 0x80, 0x70, 0x8f, 0x0d, 0x5e, 0xb1, 0xce, 0xb2, 0x41, 0xd1, 0x41, 0x3b, 0xe0, 0xe1, 0x85, 0xd9, 0x1b, 0x3c, 0x11, 0x32, 0x65, 0x83, 0x07, 0x28, 0xb2, 0x6c, 0x50, 0x74, 0xd0, 0x6e, 0xb0, 0xde, 0x53, 0x6f, 0x83, 0x27, 0x42, 0xa6, 0x6c, 0xf0, 0xd8, 0x7b, 0x96, 0x0d, 0x8a, 0x0e, 0xda, 0x0d, 0xda, 0x6f, 0x2b, 0xde, 0xe0, 0x89, 0x90, 0x29, 0x1b, 0x3c, 0xf8, 0x9a, 0x65, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xc7, 0xd6, 0xa8, 0x1c, 0xbc, 0xd0, 0x9f, 0xe5, 0xe0, 0xb1, 0x9c, 0x29, 0xab, 0xe1, 0x73, 0xa5, 0x0d, 0x5e, 0x99, 0x27, 0xb2, 0x86, 0x3f, 0x97, 0x36, 0x78, 0xb0, 0x3a, 0xc8, 0x41, 0x91, 0x8a, 0xb9, 0x86, 0x3f, 0x97, 0x36, 0x78, 0xb9, 0xd3, 0xc8, 0x41, 0x98, 0x8e, 0xb5, 0x41, 0x41, 0x1a, 0xbb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0xb0, 0x3a, 0xc8, 0x06, 0x25, 0x74, 0xec, 0x06, 0x4f, 0x64, 0x07, 0x39, 0x08, 0xd3, 0xb1, 0x35, 0x28, 0x48, 0x63, 0x37, 0x78, 0xdf, 0xce, 0xc8, 0x1a, 0x2e, 0xa9, 0x35, 0x0e, 0x6d, 0xf0, 0x60, 0x75, 0x90, 0x83, 0x96, 0xc3, 0xa3, 0xda, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0x23, 0xac, 0x6b, 0x50, 0x4c, 0x62, 0x6e, 0xf8, 0xa1, 0x66, 0x83, 0xf7, 0xed, 0x8c, 0xb4, 0x86, 0x77, 0x7b, 0x36, 0x78, 0xf9, 0x1b, 0xca, 0x1a, 0xde, 0xd6, 0x39, 0x78, 0x26, 0x46, 0x4b, 0x6d, 0xf8, 0xc5, 0x65, 0x83, 0x17, 0x69, 0xb4, 0xac, 0xc1, 0x1a, 0xa9, 0xa6, 0x0d, 0x1a, 0x14, 0x0f, 0xdc, 0x70, 0x49, 0xad, 0xf1, 0xfc, 0xe0, 0x8d, 0x15, 0x2d, 0xb5, 0x41, 0xd1, 0x41, 0xbb, 0x41, 0x31, 0x9d, 0xb9, 0xc1, 0x13, 0x21, 0x53, 0xd6, 0xa0, 0xe8, 0xa0, 0x1d, 0xf0, 0xd8, 0xc2, 0xc4, 0x0d, 0x9e, 0x08, 0x99, 0xb2, 0xc1, 0xfb, 0xe7, 0x59, 0x36, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x68, 0x49, 0x3c, 0x6a, 0xc3, 0xdb, 0x3a, 0x03, 0x1e, 0x5b, 0x98, 0x58, 0x1b, 0x14, 0x7c, 0x98, 0x6b, 0x50, 0x4c, 0x62, 0xae, 0x41, 0xb0, 0x99, 0x6e, 0xf0, 0xc8, 0x44, 0x91, 0x0d, 0xde, 0xd1, 0x28, 0xd2, 0xc6, 0xa1, 0xc1, 0xe1, 0x83, 0x62, 0xd2, 0x73, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x37, 0x4f, 0xae, 0xac, 0xe1, 0x6d, 0x9d, 0x83, 0xf7, 0xb3, 0x83, 0xac, 0xe1, 0x6d, 0x9d, 0x83, 0x87, 0x9f, 0xb4, 0x74, 0xf0, 0x58, 0xce, 0x94, 0x0e, 0xa7, 0xd8, 0x1a, 0xbc, 0x45, 0x32, 0x65, 0xc3, 0x2f, 0x4a, 0x1b, 0xb4, 0x9b, 0x1d, 0xb5, 0xe1, 0x2f, 0x9a, 0x35, 0x08, 0xfd, 0x92, 0x0d, 0x4a, 0x6f, 0xfa, 0x0d, 0xde, 0x26, 0x9a, 0x72, 0xf0, 0xa2, 0x3a, 0x96, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x0d, 0x0a, 0x8a, 0xcc, 0x83, 0xe6, 0xc1, 0xa3, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x05, 0x45, 0xe6, 0xc1, 0x63, 0x39, 0x53, 0x36, 0x28, 0x3a, 0x68, 0x37, 0x58, 0xc9, 0x4b, 0xba, 0xc1, 0x13, 0x21, 0x53, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xcf, 0x77, 0x65, 0xd9, 0x20, 0x60, 0x59, 0x0f, 0x9a, 0x91, 0x10, 0xdc, 0xa0, 0xe8, 0xa0, 0xdd, 0xa0, 0x29, 0xa5, 0xad, 0x0d, 0x9e, 0x08, 0x99, 0xb2, 0xc1, 0x0b, 0x5d, 0x59, 0x36, 0x28, 0x3a, 0x68, 0x07, 0xbc, 0xb6, 0x37, 0x7b, 0x83, 0x27, 0x42, 0xa6, 0xac, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0x6b, 0xd9, 0x58, 0x3a, 0x58, 0xf6, 0x4e, 0xba, 0x41, 0xd1, 0x41, 0xbb, 0x41, 0xbb, 0x42, 0xc7, 0x1b, 0x3c, 0x11, 0x32, 0x65, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x5a, 0x12, 0x8f, 0x3a, 0x68, 0x62, 0x6c, 0xab, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x17, 0x97, 0x0d, 0x5e, 0xa9, 0x9c, 0x72, 0xd0, 0x00, 0xde, 0xf1, 0xc1, 0x63, 0x39, 0x53, 0x0e, 0xa7, 0x58, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x2d, 0xf0, 0x76, 0xe1, 0x06, 0xa5, 0x84, 0xf8, 0x1a, 0x94, 0x5d, 0xb2, 0x03, 0x7c, 0x76, 0x61, 0x2d, 0x63, 0x74, 0xf8, 0x1a, 0x2e, 0xa9, 0x35, 0x1e, 0x1f, 0x3c, 0x65, 0x1e, 0xa5, 0xd9, 0xa0, 0x64, 0x61, 0x9f, 0x65, 0xd6, 0xe0, 0xd9, 0x1c, 0x2c, 0x1b, 0x1e, 0x1f, 0xd9, 0xe0, 0xd9, 0x1c, 0x2c, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x7b, 0xab, 0x93, 0x0f, 0xda, 0xb6, 0x1e, 0x5f, 0xc3, 0x9f, 0x4b, 0x03, 0x9e, 0x5e, 0xdd, 0x7c, 0xd0, 0xec, 0x76, 0xd4, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xd8, 0xc2, 0xd8, 0x83, 0xf5, 0x5a, 0xcf, 0x1b, 0xac, 0x91, 0x4e, 0x5f, 0xc3, 0x9f, 0x4b, 0x1b, 0x2c, 0xc0, 0x3d, 0x3f, 0x38, 0xcf, 0x8e, 0xb6, 0xe1, 0x2f, 0x9a, 0x0d, 0x9a, 0xdd, 0x8e, 0xda, 0xa0, 0x20, 0x8d, 0xdd, 0xd0, 0x07, 0x7f, 0x0d, 0xcf, 0xe2, 0x0d, 0x6e, 0x0f, 0x1e, 0x0e, 0xee, 0x0e, 0x5e, 0x0e, 0xaa, 0x07, 0x05, 0x83, 0x96, 0x65, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x65, 0xd8, 0x6f, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x63, 0x0b, 0x63, 0xab, 0x36, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x68, 0x57, 0xca, 0xb2, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xdb, 0xdf, 0x57, 0x36, 0x58, 0x04, 0x8b, 0xbc, 0xc1, 0x13, 0xfa, 0x50, 0x36, 0x58, 0x44, 0x9e, 0x7e, 0xb0, 0x08, 0xfc, 0x7c, 0x83, 0x17, 0xc7, 0xa4, 0xb4, 0x02, 0x78, 0xd9, 0x85, 0xb9, 0x95, 0xb5, 0xcc, 0x85, 0xb5, 0xc1, 0xb1, 0x95, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0x6f, 0xf7, 0x6a, 0xd9, 0xf0, 0xb9, 0xd2, 0x06, 0x49, 0x3c, 0xa2, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x2b, 0x73, 0xcb, 0x0f, 0x9e, 0x7b, 0x0f, 0xb2, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb9, 0x37, 0xf3, 0xe0, 0x9d, 0x7a, 0x2a, 0x1d, 0x4e, 0xb1, 0x35, 0x78, 0xe5, 0x0a, 0xcb, 0x86, 0xc7, 0x47, 0x36, 0x78, 0xe5, 0x0a, 0xcb, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xd8, 0xc2, 0xe6, 0x83, 0x66, 0xb7, 0xa3, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0x6d, 0x97, 0x7d, 0x1e, 0x34, 0xbb, 0x1d, 0xd5, 0x86, 0xbf, 0x68, 0x36, 0x68, 0x76, 0x3b, 0x6a, 0x83, 0x82, 0x34, 0x76, 0x0d, 0xdf, 0xb7, 0x6f, 0xb0, 0x4a, 0xfd, 0xf7, 0xe0, 0x11, 0x59, 0x2b, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xa6, 0xc8, 0x2c, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xef, 0xcf, 0x6a, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0x1e, 0x5b, 0xd8, 0xdc, 0x1a, 0x14, 0x82, 0xa9, 0x1b, 0xfe, 0x9d, 0x5f, 0x83, 0xb7, 0x7b, 0xb5, 0x54, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xf6, 0x4a, 0x0a, 0xd6, 0xf0, 0xc6, 0xdd, 0x86, 0x97, 0xef, 0x02, 0x7f, 0x8e, 0x2e, 0x2c, 0xaf, 0x0d, 0x0a, 0xd2, 0xd8, 0x35, 0x7c, 0xdf, 0xbe, 0xc1, 0x42, 0xf2, 0xdf, 0x83, 0x47, 0x64, 0xad, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x9a, 0x22, 0xb3, 0x5c, 0xc3, 0xbb, 0x3d, 0x1b, 0xbc, 0x3f, 0xab, 0x65, 0x83, 0x86, 0xd1, 0x4f, 0x0f, 0xde, 0x21, 0xd7, 0xb2, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0xaf, 0xa4, 0x60, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0x2e, 0xf0, 0xd9, 0xde, 0xc2, 0xc8, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0x2d, 0x96, 0xc0, 0x0e, 0x5a, 0x62, 0xfe, 0x5b, 0x0d, 0x1e, 0x06, 0xbf, 0xb2, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x3f, 0x97, 0x36, 0xf4, 0xc1, 0x3f, 0x38, 0xe9, 0x89, 0xae, 0xe1, 0xcf, 0xa5, 0x0d, 0x2d, 0x3e, 0x0e, 0x9a, 0xdd, 0x8e, 0x3a, 0x78, 0x31, 0x54, 0xcb, 0x86, 0xbf, 0x68, 0x36, 0x68, 0x76, 0x3b, 0x6a, 0x83, 0x73, 0xe1, 0xc2, 0x1a, 0xb4, 0x05, 0xb2, 0xb2, 0xe1, 0x17, 0x97, 0x0d, 0x0f, 0xde, 0xac, 0xe1, 0x89, 0xbb, 0x0d, 0xcf, 0xe2, 0x2d, 0x1b, 0x7e, 0x71, 0xd9, 0x60, 0x11, 0x2c, 0x72, 0x83, 0xea, 0x41, 0xc1, 0xb2, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x62, 0xc6, 0xe0, 0x35, 0x58, 0x68, 0xdc, 0xba, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0x7e, 0xff, 0x83, 0x45, 0xe0, 0xe7, 0x55, 0x1b, 0x9c, 0x0b, 0x17, 0x06, 0x7c, 0xb1, 0xb7, 0x3a, 0x7a, 0x83, 0x13, 0xfb, 0xcd, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0xe9, 0x18, 0xa9, 0x36, 0x38, 0x0f, 0x76, 0x6c, 0x78, 0xcb, 0x6e, 0x0d, 0x4f, 0xdc, 0x6d, 0x78, 0x16, 0x6f, 0x83, 0x57, 0x23, 0xb6, 0x0c, 0xaa, 0x07, 0x05, 0x83, 0x8b, 0x83, 0xd7, 0x83, 0xa7, 0x83, 0xb3, 0x83, 0x93, 0x83, 0x82, 0xc1, 0xcd, 0xc1, 0xc3, 0x83, 0x16, 0xf8, 0x90, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x53, 0x64, 0x96, 0x1b, 0x3e, 0x05, 0x5c, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0xc3, 0x88, 0x7c, 0xf0, 0x94, 0xae, 0x96, 0x0e, 0xa7, 0xd8, 0x1a, 0xbc, 0xc6, 0x62, 0x65, 0xc3, 0xe3, 0x23, 0x1b, 0xbc, 0xc6, 0x62, 0x65, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0xb3, 0x0b, 0x73, 0x0f, 0x9a, 0xdd, 0x8e, 0xda, 0xf0, 0x17, 0xcd, 0x1a, 0x84, 0x7e, 0xc9, 0x06, 0xa5, 0x37, 0xfd, 0x06, 0xcd, 0x6e, 0x47, 0x1d, 0xbc, 0xa8, 0x8e, 0x65, 0x83, 0xd2, 0xde, 0x72, 0x83, 0x87, 0x33, 0xa6, 0x6c, 0x50, 0x74, 0xd0, 0xae, 0xe1, 0xfb, 0xf6, 0x0d, 0x06, 0x0f, 0xca, 0xc1, 0x23, 0xb2, 0x56, 0x36, 0x78, 0x22, 0x64, 0xca, 0x1a, 0xde, 0xed, 0x59, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0xa7, 0x69, 0xb5, 0x1c, 0x3c, 0x81, 0x8f, 0x65, 0x83, 0x27, 0xf8, 0xa1, 0x1c, 0xbc, 0x43, 0xae, 0x65, 0x83, 0xa2, 0x83, 0x76, 0x83, 0xa7, 0xdb, 0xb5, 0x6c, 0xf0, 0x44, 0xc8, 0x94, 0x35, 0xbc, 0xdb, 0xb3, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0xad, 0x94, 0x59, 0x1e, 0x3c, 0x81, 0x8f, 0x65, 0x83, 0x05, 0x9c, 0xf0, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xf6, 0x4a, 0x0a, 0xd6, 0xf0, 0xc6, 0xdd, 0x86, 0x97, 0xef, 0x0e, 0x16, 0xa4, 0x10, 0xd7, 0x06, 0x45, 0x07, 0xed, 0x1a, 0xbe, 0x6f, 0xdf, 0x20, 0x45, 0xd3, 0xf8, 0xe0, 0x11, 0x59, 0x2b, 0x1b, 0x3c, 0x11, 0x32, 0x65, 0x0d, 0xef, 0xf6, 0x6c, 0xf0, 0x4e, 0xd4, 0x96, 0x0d, 0xda, 0xfe, 0xfd, 0x3b, 0x68, 0x65, 0xcd, 0x72, 0xc3, 0x2f, 0x2e, 0x1b, 0x3c, 0xc1, 0x0f, 0x65, 0x0d, 0x0f, 0x4a, 0x6e, 0xb8, 0xa3, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0xcd, 0x8f, 0x48, 0x1d, 0x3c, 0x81, 0x8f, 0x65, 0x83, 0x66, 0xdf, 0xc7, 0x36, 0x68, 0x65, 0x83, 0xb9, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0xdb, 0xa0, 0xec, 0x92, 0x1d, 0x78, 0xbb, 0x70, 0x83, 0x97, 0x1e, 0xb5, 0xcc, 0x06, 0x65, 0x19, 0xf6, 0x1a, 0x3e, 0x57, 0xda, 0xe0, 0x95, 0xd5, 0x28, 0x1b, 0xb4, 0x9b, 0x1d, 0x75, 0xf0, 0x6c, 0xc6, 0x94, 0x59, 0x66, 0x0d, 0x9e, 0xa9, 0x8d, 0xb2, 0xe1, 0xf1, 0x91, 0x0d, 0x9e, 0xa9, 0x8d, 0xb2, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0x12, 0x8f, 0xe8, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xe4, 0xde, 0xd6, 0x83, 0x77, 0xea, 0xa9, 0xb4, 0x41, 0xd9, 0x25, 0x3b, 0x80, 0x07, 0x1c, 0xdb, 0xdb, 0x5d, 0xcb, 0xd8, 0x9b, 0x5c, 0xb9, 0xe1, 0x8e, 0x9a, 0x0d, 0x4a, 0x16, 0xf6, 0x59, 0x66, 0x0d, 0x5a, 0x05, 0x72, 0xd9, 0xf0, 0xf8, 0xc8, 0x06, 0xad, 0x02, 0xb9, 0x6c, 0xf8, 0x8b, 0x66, 0x83, 0x77, 0xea, 0xa9, 0x6c, 0xf8, 0x45, 0x69, 0x83, 0xa7, 0xf0, 0xa9, 0x6c, 0xf8, 0x8b, 0x66, 0x83, 0xd7, 0x02, 0xaa, 0x6c, 0x50, 0x90, 0xc6, 0xae, 0xe1, 0xfb, 0xf6, 0x0d, 0x56, 0xa9, 0xff, 0x6e, 0x50, 0x42, 0xc7, 0x6e, 0xf0, 0x52, 0xb9, 0x96, 0x83, 0x30, 0x1d, 0x5b, 0xc3, 0x2f, 0x2e, 0x1b, 0xa4, 0xbb, 0x6e, 0xae, 0x41, 0x21, 0x98, 0x7a, 0xf0, 0xdc, 0x7b, 0x90, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xc9, 0xbd, 0xad, 0xb5, 0x41, 0xd1, 0x41, 0xbb, 0xc1, 0xe0, 0x41, 0xd9, 0xe0, 0x89, 0x90, 0x29, 0x6b, 0x70, 0x2e, 0x5c, 0x58, 0x43, 0x1e, 0x7b, 0xc3, 0x8f, 0x30, 0x83, 0xd3, 0x01, 0xbc, 0xc1, 0x95, 0x95, 0xad, 0xe9, 0x80, 0x84, 0x8d, 0xd1, 0xa5, 0xd9, 0x85, 0xd1, 0xa5, 0xbd, 0xb9, 0x81, 0x98, 0x85, 0xa5, 0xb1, 0x95, 0x91, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0xb9, 0xa3, 0x2d, 0x1b, 0x34, 0x24, 0x21, 0x78, 0xd0, 0x3c, 0xf1, 0xdf, 0x06, 0x45, 0x07, 0xed, 0x06, 0x0b, 0xc9, 0x7f, 0x37, 0x78, 0x22, 0x64, 0xca, 0x1a, 0x9c, 0x0b, 0x17, 0xd6, 0x90, 0xc7, 0xde, 0xf0, 0x23, 0xcc, 0xe0, 0x74, 0x00, 0x0f, 0x70, 0x65, 0x65, 0x6b, 0x3a, 0x20, 0x70, 0x75, 0x6c, 0x6c, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0xe4, 0xc1, 0x53, 0x50, 0x5b, 0x36, 0x28, 0x48, 0x63, 0xd7, 0xf0, 0x7d, 0xfb, 0x86, 0xaf, 0x3d, 0x36, 0x28, 0xa1, 0x63, 0xd7, 0xf0, 0xb9, 0xd2, 0x06, 0x0f, 0x5d, 0x16, 0xd9, 0xe0, 0x8c, 0x84, 0xba, 0xc1, 0x63, 0x79, 0x43, 0x36, 0x78, 0x4a, 0x70, 0x48, 0x07, 0x61, 0x3a, 0xb6, 0x86, 0x5f, 0x5c, 0x36, 0x78, 0x61, 0xa5, 0xca, 0x06, 0x8f, 0xb4, 0x54, 0xd9, 0x60, 0x59, 0x14, 0xdc, 0xc1, 0x93, 0x9a, 0x52, 0x36, 0x28, 0x3a, 0x68, 0x37, 0x48, 0xd1, 0x34, 0xde, 0xe0, 0x89, 0x90, 0x29, 0x6b, 0x70, 0x2e, 0x5c, 0x58, 0x43, 0x1e, 0x7b, 0xc3, 0x8f, 0x30, 0x83, 0xd3, 0x01, 0x3c, 0xc0, 0x95, 0x95, 0xad, 0xe9, 0x80, 0x8c, 0x85, 0xb1, 0xb1, 0x81, 0x98, 0x85, 0xa5, 0xb1, 0x95, 0x91, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0xb9, 0xa3, 0x2d, 0x1b, 0xb4, 0xfd, 0xfb, 0xb7, 0xc1, 0x82, 0x5e, 0xe4, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x68, 0x7d, 0x7c, 0x6c, 0x83, 0x82, 0x22, 0x73, 0x83, 0x12, 0x1e, 0x73, 0x8d, 0xe7, 0x07, 0xad, 0x8f, 0x8f, 0x6d, 0x70, 0x96, 0x95, 0xda, 0xa0, 0xe8, 0xa0, 0xdd, 0xa0, 0xa8, 0x2d, 0xde, 0xe0, 0x89, 0x90, 0x29, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xe7, 0xbb, 0xb2, 0x6c, 0x70, 0x5e, 0xa0, 0xd9, 0x20, 0xb1, 0xf0, 0xb8, 0x0d, 0x8e, 0xe1, 0x06, 0x1b, 0x1c, 0xc3, 0x0d, 0x36, 0xfc, 0xe2, 0xb2, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0x51, 0xfb, 0xc1, 0xfb, 0x36, 0x44, 0xd6, 0x70, 0x49, 0xad, 0x71, 0x68, 0xf0, 0xf8, 0xa0, 0xfc, 0x2f, 0xae, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0x8f, 0xda, 0x0f, 0x8a, 0x54, 0xcc, 0x35, 0x5c, 0x52, 0x6b, 0x3c, 0x3f, 0x78, 0xce, 0x7d, 0x4b, 0x35, 0x6b, 0x50, 0xb0, 0xf1, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0x01, 0x0f, 0xad, 0xcc, 0x3d, 0x78, 0x7a, 0xba, 0xc7, 0x06, 0x6f, 0x17, 0x6b, 0xd9, 0xe0, 0xa5, 0xc6, 0x28, 0x6d, 0xb0, 0xd2, 0xc5, 0x69, 0x83, 0x87, 0x4e, 0xb2, 0xac, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0x91, 0xd5, 0x8d, 0x07, 0x4d, 0xe3, 0xaa, 0xad, 0xe1, 0x6d, 0x9d, 0x01, 0x0f, 0xad, 0xcc, 0xad, 0x0d, 0x56, 0xba, 0x38, 0x6d, 0xd0, 0xb8, 0x0e, 0xe9, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0x1e, 0x59, 0x1d, 0x79, 0xd0, 0x34, 0xae, 0xda, 0xc1, 0x3b, 0x02, 0x53, 0x36, 0x28, 0x48, 0x63, 0x37, 0x78, 0x35, 0x72, 0xcb, 0x1a, 0x7e, 0x71, 0xd9, 0x20, 0xdd, 0x75, 0x73, 0x83, 0x67, 0x00, 0xa6, 0x1c, 0x3c, 0xac, 0xb9, 0x65, 0x83, 0xa2, 0x83, 0x76, 0x83, 0xc1, 0x83, 0xb2, 0xc1, 0x13, 0x21, 0x53, 0xd6, 0xe0, 0x5c, 0xb8, 0xb0, 0x86, 0x3c, 0xf6, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x03, 0x78, 0x9b, 0x83, 0x4b, 0x73, 0xd3, 0x01, 0x09, 0x1b, 0xa3, 0x4b, 0xb3, 0x0b, 0xa3, 0x4b, 0x7b, 0x73, 0x03, 0x31, 0x0b, 0x4b, 0x63, 0x2b, 0x23, 0x0f, 0x5e, 0x4c, 0xdd, 0xb2, 0x41, 0x29, 0x21, 0xbe, 0x06, 0x25, 0x0b, 0xfb, 0x2c, 0xb3, 0x80, 0x3f, 0xc7, 0x96, 0x46, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xbc, 0x44, 0xc2, 0xa5, 0x01, 0x78, 0x1b, 0x7b, 0x73, 0x9b, 0x03, 0x09, 0x03, 0xb1, 0x0b, 0x9b, 0x2b, 0x03, 0x79, 0x73, 0xa3, 0x7b, 0x03, 0x09, 0x03, 0x69, 0x0b, 0xd3, 0x2b, 0xdb, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0xda, 0xa0, 0x01, 0x8f, 0xc0, 0x35, 0xfc, 0xb9, 0xb4, 0x41, 0x53, 0x4a, 0x5b, 0x07, 0xaf, 0x98, 0x1c, 0x69, 0xc3, 0x5f, 0x34, 0x1b, 0xbc, 0x62, 0x72, 0x64, 0x83, 0x20, 0x3d, 0x5d, 0xe3, 0xd0, 0x41, 0xeb, 0x63, 0x5b, 0x6b, 0x10, 0xb0, 0x41, 0x1b, 0x7e, 0x71, 0xd9, 0x60, 0x15, 0x98, 0xec, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x34, 0x2f, 0x11, 0xd8, 0x06, 0x0b, 0xdf, 0x49, 0x0f, 0x1a, 0x8a, 0xf1, 0x6a, 0x0d, 0xc2, 0x08, 0x68, 0xc3, 0x2f, 0x2e, 0x1b, 0x2c, 0x73, 0x92, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0xb4, 0x22, 0x59, 0xb1, 0x41, 0xe3, 0x2e, 0x5e, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0xf8, 0xa0, 0x15, 0x19, 0xaf, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xcd, 0xd7, 0x78, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xe3, 0x83, 0x56, 0x64, 0xbc, 0xaa, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x36, 0x28, 0x59, 0xd8, 0x67, 0x99, 0x35, 0x58, 0x76, 0x1f, 0xb5, 0xe1, 0x17, 0xa5, 0x0d, 0x1e, 0xef, 0x95, 0xb2, 0xe1, 0x2f, 0x9a, 0x35, 0x08, 0xfd, 0x92, 0x0d, 0x4a, 0x6f, 0xfa, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0xb3, 0xdb, 0x51, 0x07, 0x8d, 0x25, 0x06, 0x1e, 0xbc, 0xa8, 0x8e, 0x65, 0x83, 0x73, 0xe1, 0xc2, 0x1a, 0xf2, 0xd8, 0x1b, 0x7e, 0x84, 0x19, 0x9c, 0x0e, 0xf0, 0x1b, 0x0b, 0x63, 0x63, 0xd3, 0x01, 0x31, 0x0b, 0x4b, 0x63, 0x2b, 0x23, 0x37, 0x28, 0x3a, 0x68, 0x37, 0x58, 0x48, 0xfe, 0xbb, 0xc1, 0x13, 0x21, 0x53, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xef, 0x44, 0x6d, 0xd9, 0x60, 0x01, 0x27, 0xfc, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0xbd, 0x92, 0x82, 0x0d, 0x1a, 0x5a, 0x6b, 0xad, 0x0d, 0x0a, 0xd2, 0xd8, 0x35, 0x7c, 0xdf, 0xbe, 0xc1, 0x2a, 0xf5, 0xdf, 0x0d, 0x4a, 0xe8, 0xd8, 0x0d, 0x5e, 0x31, 0x39, 0x72, 0x10, 0xa6, 0x63, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0xf0, 0x12, 0x09, 0x97, 0x36, 0x78, 0xcd, 0x24, 0xcb, 0x1a, 0xde, 0xed, 0xd9, 0xe0, 0x21, 0x3a, 0x2e, 0x1b, 0xb4, 0xa0, 0x43, 0x7a, 0xf0, 0x4e, 0x16, 0x95, 0x36, 0x28, 0x3a, 0x68, 0x37, 0x48, 0xd1, 0x34, 0xde, 0xe0, 0x89, 0x90, 0x29, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x05, 0xfc, 0x39, 0xb6, 0x3a, 0xb9, 0x83, 0x27, 0xf0, 0xb1, 0x1c, 0xb4, 0xc4, 0xfc, 0xb7, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0xb6, 0x95, 0x3a, 0x78, 0xc4, 0x7c, 0xcb, 0xac, 0x41, 0x9b, 0x3b, 0x54, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x1b, 0x3c, 0x3b, 0x5b, 0x65, 0x0d, 0x7f, 0x2e, 0x0d, 0xf8, 0x66, 0x72, 0x6f, 0xed, 0xc1, 0x7a, 0xad, 0xe7, 0x83, 0x07, 0x4f, 0xb1, 0x6c, 0xf8, 0x8b, 0x66, 0x83, 0xa7, 0xad, 0xb8, 0x6c, 0x70, 0x2e, 0x5c, 0x58, 0x43, 0x1e, 0x7b, 0xc3, 0x8f, 0x30, 0x83, 0xd3, 0x01, 0x7e, 0x74, 0x61, 0x6b, 0x65, 0x3a, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0xe4, 0x06, 0x45, 0x07, 0xed, 0x06, 0x0b, 0xc9, 0x7f, 0x37, 0x78, 0x22, 0x64, 0xca, 0x1a, 0xde, 0xed, 0xd9, 0xe0, 0x9d, 0xa8, 0x2d, 0x1b, 0x2c, 0xe0, 0x84, 0x5f, 0xc3, 0x2f, 0x2e, 0x1b, 0xb4, 0x57, 0x52, 0xb0, 0x86, 0x37, 0xee, 0x36, 0xbc, 0x7c, 0x77, 0xd0, 0xe6, 0x0e, 0x55, 0x6d, 0x50, 0x90, 0xc6, 0xae, 0xe1, 0xfb, 0xf6, 0x0d, 0x5a, 0x1d, 0xfe, 0x3c, 0x78, 0x44, 0xd6, 0xca, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0x2f, 0x2e, 0x1b, 0x34, 0xa9, 0x79, 0xb1, 0xc1, 0xba, 0xec, 0xba, 0x35, 0x38, 0x86, 0x1b, 0x6c, 0x78, 0x5b, 0x67, 0x83, 0xd7, 0x19, 0xb9, 0xd4, 0x06, 0x6f, 0xb6, 0x72, 0x69, 0x83, 0x82, 0x34, 0x76, 0x83, 0xa7, 0xdc, 0xb8, 0xac, 0xc1, 0x4a, 0x17, 0xa7, 0x05, 0x3c, 0xba, 0xb2, 0xb0, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0xb7, 0x75, 0x06, 0xbc, 0xbb, 0x34, 0xf9, 0xa0, 0x69, 0x5c, 0xb5, 0x83, 0xf7, 0x9c, 0xa8, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0x87, 0xe8, 0xb8, 0xac, 0xe1, 0x6d, 0x9d, 0x83, 0xa7, 0x68, 0xb9, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x1e, 0xa2, 0xe3, 0xb2, 0xc1, 0x6b, 0x26, 0x59, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x0f, 0xd1, 0x71, 0xd9, 0xa0, 0x05, 0x1d, 0xd2, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x43, 0x74, 0x5c, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0xad, 0x0e, 0x7f, 0x76, 0xf0, 0xfe, 0x35, 0x95, 0xea, 0xe0, 0xe9, 0x3d, 0x2e, 0xab, 0x41, 0x33, 0x28, 0x4c, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0xa4, 0x68, 0x1a, 0x1f, 0x34, 0xbb, 0x1d, 0xb5, 0xe1, 0x2f, 0x9a, 0x0d, 0x9e, 0xb6, 0xe2, 0xb2, 0x41, 0xd1, 0x41, 0xbb, 0x41, 0xbb, 0x42, 0xc7, 0x1b, 0x3c, 0x11, 0x32, 0x65, 0x0d, 0xef, 0xf6, 0x6c, 0xf0, 0x7c, 0x57, 0x96, 0x0d, 0x02, 0x96, 0xf5, 0xe0, 0x11, 0xf3, 0x2d, 0x1b, 0x14, 0x1d, 0xb4, 0x1b, 0xac, 0x0c, 0x5b, 0xdf, 0xe0, 0x89, 0x90, 0x29, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xe7, 0xbb, 0xb2, 0x6c, 0x50, 0x54, 0x8a, 0x1f, 0x3c, 0x62, 0xbe, 0x65, 0x83, 0xa2, 0x4f, 0x77, 0x0d, 0xa9, 0x83, 0xc1, 0xe3, 0x83, 0xe5, 0x70, 0xeb, 0x1b, 0xbc, 0x44, 0xae, 0x65, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x46, 0x8e, 0x8e, 0x0f, 0xd6, 0xfa, 0xad, 0x1f, 0x3c, 0x96, 0x33, 0xe5, 0x70, 0x8a, 0x75, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x87, 0x53, 0x6c, 0x16, 0xf0, 0xcb, 0xc8, 0xca, 0xdc, 0x0d, 0x4a, 0x16, 0xf6, 0x59, 0x66, 0x0d, 0x5e, 0x6c, 0xbd, 0xb2, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xf0, 0x62, 0xeb, 0x95, 0x06, 0xc0, 0x9b, 0x32, 0xbb, 0x32, 0x37, 0x3a, 0x10, 0x19, 0x1d, 0x10, 0xb1, 0xb7, 0x37, 0xba, 0x39, 0x3a, 0xb9, 0x30, 0x38, 0x90, 0x30, 0x90, 0xb5, 0x32, 0x39, 0xb7, 0x32, 0x36, 0x10, 0x33, 0xb9, 0xb7, 0x36, 0x90, 0xb9, 0xb7, 0x3a, 0xb9, 0xb1, 0xb2, 0x0d, 0x7f, 0xd1, 0x6c, 0x10, 0xa6, 0x63, 0x1b, 0x94, 0x12, 0xe2, 0x6b, 0x50, 0x08, 0xa6, 0x6e, 0xf8, 0x73, 0x69, 0x83, 0x65, 0xfb, 0x82, 0x1b, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x03, 0xbe, 0x59, 0x18, 0x5d, 0x79, 0x10, 0xa6, 0x63, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x34, 0x33, 0xef, 0xc3, 0x0f, 0x35, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x87, 0x81, 0x60, 0x1c, 0x7e, 0xa8, 0x59, 0xc3, 0x9f, 0x4b, 0x03, 0x7e, 0x19, 0x5c, 0xda, 0x78, 0x10, 0xa6, 0x63, 0x6d, 0xb0, 0x4c, 0xf4, 0x69, 0x83, 0x73, 0xe1, 0xc2, 0x1a, 0xb4, 0x05, 0xb2, 0xb2, 0xe1, 0x17, 0x97, 0x0d, 0x0f, 0xde, 0xac, 0xe1, 0x89, 0xbb, 0x0d, 0xcf, 0xe2, 0x0d, 0x1a, 0x07, 0x6d, 0x87, 0xcf, 0x83, 0xda, 0xa0, 0x20, 0x8d, 0x1d, 0xc0, 0x73, 0xec, 0xad, 0x0d, 0x2e, 0x8d, 0xad, 0x4c, 0xae, 0xe5, 0x2c, 0x8c, 0xae, 0x5c, 0x83, 0x05, 0x21, 0x4b, 0x1b, 0x1e, 0xbc, 0xd9, 0xf0, 0xb6, 0xce, 0x06, 0x6f, 0x24, 0x74, 0x39, 0x58, 0x1f, 0x37, 0xb8, 0xc1, 0xb9, 0x70, 0x61, 0x0d, 0xda, 0x02, 0x59, 0xd9, 0xf0, 0x8b, 0xcb, 0x86, 0x07, 0x6f, 0xd6, 0xf0, 0xc4, 0xdd, 0x86, 0x67, 0xf1, 0x06, 0x8d, 0x83, 0xb6, 0xc1, 0xc7, 0x41, 0xc1, 0xa0, 0x68, 0xf0, 0x71, 0xf0, 0x77, 0xf0, 0x76, 0x70, 0x78, 0xf0, 0x74, 0x70, 0x76, 0xf0, 0x74, 0x70, 0x77, 0xf0, 0x73, 0x50, 0x30, 0xf8, 0x38, 0xf8, 0x3b, 0x78, 0x3b, 0x38, 0x3c, 0x78, 0x3a, 0x38, 0x3b, 0x78, 0x39, 0xb8, 0x3c, 0x28, 0x1b, 0x14, 0x0c, 0x7e, 0x0f, 0x1e, 0x0e, 0x9e, 0x0e, 0x4e, 0x0f, 0x0a, 0x06, 0x0f, 0x07, 0x05, 0x83, 0x9b, 0x83, 0x97, 0x83, 0xdf, 0x83, 0x82, 0xc1, 0xdb, 0xc1, 0xd3, 0xc1, 0xdd, 0xc1, 0xeb, 0xc1, 0xe9, 0xc1, 0xcb, 0xc1, 0xe7, 0x83, 0xb6, 0x2f, 0x9f, 0xda, 0xa0, 0x20, 0x8d, 0x1d, 0xc0, 0x73, 0xec, 0xad, 0x0d, 0x2e, 0x8d, 0xad, 0x4c, 0xae, 0x85, 0xee, 0xed, 0x8d, 0x5d, 0x83, 0x73, 0xe1, 0xc2, 0x06, 0x8f, 0x74, 0x6c, 0xd9, 0x60, 0x41, 0xc8, 0xd2, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x3c, 0xdb, 0xd1, 0xa5, 0x35, 0x58, 0x62, 0xbf, 0xbd, 0xe1, 0x6d, 0x9d, 0x0d, 0xd2, 0xcc, 0xbc, 0x0f, 0xd6, 0xc7, 0x0d, 0x76, 0xb0, 0x46, 0xfe, 0x77, 0x83, 0x73, 0xe1, 0xc2, 0x1a, 0xb4, 0x05, 0xb2, 0xb2, 0xe1, 0x17, 0x97, 0x0d, 0x0f, 0xde, 0xac, 0xe1, 0x89, 0xbb, 0x0d, 0xcf, 0xe2, 0x0d, 0x1a, 0x07, 0x6d, 0x07, 0x45, 0xbe, 0x6c, 0x1b, 0x14, 0x7d, 0xba, 0x1b, 0xbc, 0xc4, 0xd4, 0x65, 0x0d, 0xce, 0x85, 0x0b, 0x1b, 0x3c, 0xd2, 0xb1, 0x65, 0x83, 0x05, 0x21, 0x4b, 0x1b, 0x1e, 0xbc, 0xd9, 0x70, 0x49, 0xad, 0xf1, 0x7c, 0x83, 0xe7, 0x86, 0xba, 0xd4, 0x06, 0xe7, 0xc2, 0x85, 0x35, 0x68, 0x0b, 0x64, 0x65, 0xc3, 0x2f, 0x2e, 0x1b, 0x1e, 0xbc, 0x59, 0xc3, 0x13, 0x77, 0x1b, 0x9e, 0xc5, 0x1b, 0x34, 0x0e, 0xda, 0x0e, 0x8a, 0x10, 0xe8, 0x36, 0x28, 0x48, 0x63, 0x07, 0xf0, 0x5a, 0x2b, 0x93, 0x73, 0x2b, 0x63, 0x6b, 0x99, 0x83, 0x0b, 0x73, 0xd7, 0xe0, 0x5c, 0xb8, 0xb0, 0xc1, 0x23, 0x1d, 0x5b, 0x36, 0x3c, 0x28, 0xb9, 0xe1, 0x99, 0xc9, 0x0d, 0x16, 0x84, 0x2c, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0x9e, 0x5b, 0xea, 0xb2, 0x86, 0x4b, 0x6a, 0x8d, 0x43, 0x07, 0xcf, 0x87, 0x75, 0x69, 0x0d, 0x3f, 0xc2, 0x0c, 0x4e, 0x07, 0xbd, 0xe2, 0x3b, 0x58, 0x23, 0xff, 0xbb, 0xc1, 0xb9, 0x70, 0x61, 0x0d, 0xda, 0x02, 0x59, 0xd9, 0xf0, 0x8b, 0xcb, 0x86, 0x07, 0x6f, 0xd6, 0xf0, 0xc4, 0xdd, 0x86, 0x67, 0xf1, 0x06, 0x8d, 0x83, 0xb6, 0x83, 0x00, 0x0f, 0x6a, 0x83, 0x82, 0x34, 0x76, 0x00, 0xaf, 0xb5, 0x32, 0x39, 0xb7, 0x32, 0xb6, 0x16, 0xba, 0xb7, 0x37, 0x76, 0x0d, 0xce, 0x85, 0x0b, 0x1b, 0x3c, 0xd2, 0xb1, 0x65, 0x83, 0x05, 0x21, 0x4b, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xe7, 0x96, 0xba, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x1e, 0x5f, 0xeb, 0xd2, 0x1a, 0xde, 0xd6, 0xd9, 0xe0, 0x61, 0x20, 0x18, 0x07, 0xeb, 0xe3, 0x06, 0x3b, 0x58, 0x23, 0xff, 0xbb, 0xc1, 0xb9, 0x70, 0x61, 0x0d, 0xda, 0x02, 0x59, 0xd9, 0xf0, 0x8b, 0xcb, 0x86, 0x07, 0x6f, 0xd6, 0xf0, 0xc4, 0xdd, 0x86, 0x67, 0xf1, 0x06, 0x8d, 0x83, 0xb6, 0x83, 0xa2, 0xa9, 0xb6, 0x0d, 0xce, 0x85, 0x0b, 0x1b, 0x3c, 0xd2, 0xb1, 0x65, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x20, 0x64, 0x69, 0x0d, 0x97, 0xd4, 0x1a, 0x92, 0x4b, 0x07, 0x2f, 0x31, 0x75, 0x69, 0xc3, 0x25, 0xb5, 0xc6, 0xf3, 0x0d, 0x1e, 0x24, 0xec, 0x52, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xb7, 0x23, 0xba, 0x1c, 0xac, 0x8f, 0x1b, 0x6c, 0x16, 0xf0, 0xc3, 0xca, 0xde, 0xdc, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xe7, 0x4f, 0xbb, 0x34, 0x00, 0x2f, 0x61, 0x72, 0x76, 0x6f, 0x20, 0x6c, 0x69, 0x66, 0x65, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x20, 0x6c, 0x6f, 0x6f, 0xf0, 0x4a, 0x00, 0xfd, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x73, 0x68, 0x69, 0x70, 0x27, 0x73, 0x20, 0x6c, 0x6f, 0x67, 0x6c, 0x09, 0xc0, 0xb7, 0xb1, 0xb7, 0x36, 0xb8, 0x3a, 0xba, 0x34, 0xb7, 0x33, 0x10, 0x3a, 0xb4, 0x32, 0x10, 0xb3, 0x34, 0xb7, 0x30, 0x36, 0x90, 0x39, 0xba, 0x30, 0xba, 0x32, 0x10, 0x33, 0xb9, 0xb7, 0x36, 0x10, 0x3a, 0xb4, 0x32, 0x10, 0xb9, 0xb2, 0x39, 0x3a, 0x90, 0x37, 0x33, 0x10, 0xb6, 0xb7, 0x73, 0x09, 0xc0, 0xdf, 0x3b, 0xb4, 0x32, 0x37, 0x90, 0x34, 0x37, 0xbb, 0xb7, 0xb5, 0x32, 0x32, 0x10, 0xbb, 0xb4, 0x30, 0x10, 0x3a, 0xb4, 0x32, 0x10, 0xb6, 0x34, 0xb3, 0xb2, 0xb1, 0xbc, 0x31, 0xb6, 0x32, 0x10, 0xb3, 0x37, 0xb9, 0xb6, 0x3a, 0xb6, 0x30, 0x1d, 0x90, 0xad, 0x12, 0x19, 0x90, 0xad, 0x12, 0x18, 0x90, 0x99, 0x2e, 0x90, 0x12, 0x18, 0x10, 0x99, 0xae, 0x95, 0x00, 0xb4, 0xa5, 0x43, 0x2b, 0x03, 0x31, 0x7b, 0x93, 0x6b, 0x0b, 0x63, 0x03, 0xa9, 0x93, 0x13, 0x4b, 0xa3, 0x03, 0x99, 0xa3, 0x0b, 0xa3, 0x2b, 0x03, 0x49, 0x9b, 0x03, 0x09, 0x63, 0xbb, 0x0b, 0xcb, 0x9b, 0x03, 0x51, 0xab, 0x9b, 0xa3, 0x03, 0x09, 0x03, 0x39, 0x0b, 0xa3, 0x2b, 0x03, 0x41, 0x31, 0xab, 0x73, 0x1b, 0xa3, 0x4b, 0x7b, 0x73, 0x4b, 0x4b, 0x00, 0xba, 0xde, 0xa1, 0xa5, 0x8d, 0xa1, 0xb1, 0x80, 0xc0, 0x85, 0xcd, 0xcd, 0x95, 0x91, 0x81, 0xd0, 0xa1, 0x95, 0x81, 0xb8, 0x95, 0xe1, 0xd1, 0x81, 0x94, 0xd9, 0x95, 0xb9, 0xd1, 0xb1, 0x80, 0xc0, 0xc9, 0xbd, 0x91, 0xd5, 0x8d, 0x95, 0xcd, 0x81, 0xd0, 0xa1, 0x95, 0x81, 0xb8, 0x95, 0xe1, 0xd1, 0x81, 0xcc, 0xd1, 0x85, 0xd1, 0x95, 0xb9, 0xda, 0xf0, 0x17, 0xcd, 0x06, 0x61, 0x3a, 0xb6, 0x41, 0x29, 0x21, 0xbe, 0x06, 0x85, 0x60, 0xea, 0x86, 0x3f, 0x97, 0x36, 0x58, 0xb6, 0x2f, 0xb8, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0x8b, 0xad, 0x57, 0x0e, 0xc2, 0x74, 0x6c, 0x0d, 0x7f, 0x2e, 0x0d, 0xf8, 0x74, 0x61, 0x6c, 0xe5, 0x41, 0x98, 0x8e, 0xb5, 0xc1, 0x32, 0xd1, 0xa7, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x35, 0x4c, 0xdc, 0x06, 0x0f, 0x03, 0xc1, 0x38, 0x78, 0x3b, 0xa2, 0xcb, 0x06, 0x0b, 0x42, 0x96, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0xaf, 0xf6, 0x77, 0x39, 0x58, 0x1f, 0x37, 0xb8, 0xe1, 0x6d, 0x9d, 0x0d, 0x5e, 0x6c, 0xbd, 0x72, 0xb0, 0x3e, 0x6e, 0x70, 0xc3, 0x57, 0x38, 0x1b, 0xfe, 0xa2, 0xd9, 0x20, 0x4c, 0xc7, 0x36, 0x28, 0x08, 0x66, 0xd7, 0xe0, 0xed, 0x88, 0x2e, 0x6d, 0xf0, 0x58, 0x68, 0x95, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x1e, 0x85, 0xf0, 0xb2, 0xe1, 0x92, 0x5a, 0xe3, 0xf9, 0xc1, 0xa3, 0x10, 0x5e, 0x5a, 0x83, 0x47, 0x8a, 0x93, 0x6c, 0xb0, 0x20, 0x64, 0x69, 0x0d, 0xbf, 0xb8, 0x6c, 0xf0, 0x58, 0x68, 0x95, 0x35, 0x5c, 0x52, 0x6b, 0x1c, 0x3a, 0x78, 0x14, 0xc2, 0x4b, 0x1d, 0xac, 0x91, 0xff, 0xed, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0xd6, 0xe1, 0x14, 0x5b, 0x01, 0xdf, 0x2e, 0xed, 0x8d, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x78, 0x62, 0xc4, 0x4b, 0x03, 0xf8, 0xd8, 0x85, 0xb9, 0x95, 0x81, 0xd0, 0xbd, 0xbd, 0xb1, 0xcd, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x6d, 0xb0, 0x40, 0xc4, 0xf4, 0x60, 0xd9, 0x8c, 0xf3, 0x86, 0xbf, 0x68, 0x36, 0x78, 0xa4, 0x35, 0xca, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x06, 0x4b, 0x32, 0x68, 0x37, 0xfc, 0xa2, 0xb4, 0xc1, 0x22, 0xed, 0xb8, 0x0d, 0x7f, 0xd1, 0x6c, 0xb0, 0x6c, 0xc6, 0x79, 0xc3, 0xbb, 0x3d, 0x6b, 0x50, 0x96, 0xbc, 0x6f, 0xd0, 0xc6, 0x7d, 0xd4, 0x06, 0x8d, 0xa3, 0x47, 0x1d, 0xac, 0x00, 0x31, 0x5d, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x76, 0x70, 0x90, 0x3b, 0x3c, 0xf4, 0xd3, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb9, 0xcb, 0x06, 0x8d, 0xcf, 0x47, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0xc6, 0x0b, 0x2e, 0xd7, 0xf0, 0x23, 0xcc, 0xe0, 0x74, 0xc0, 0x47, 0xa2, 0x43, 0x97, 0x07, 0x57, 0xb6, 0x86, 0xcf, 0x5d, 0x06, 0x3c, 0xb2, 0xba, 0x71, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0x5e, 0x70, 0xb9, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x03, 0x3e, 0x12, 0x1d, 0xb2, 0xba, 0x31, 0xba, 0x35, 0x7c, 0xee, 0x32, 0xe0, 0xdd, 0xa5, 0xc9, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xf1, 0x82, 0xcb, 0x35, 0xfc, 0x08, 0x33, 0x38, 0x1d, 0xf0, 0x91, 0xe8, 0xdc, 0xa5, 0xc9, 0x95, 0xad, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x17, 0x16, 0x16, 0x48, 0x5b, 0xda, 0x1c, 0x5c, 0x98, 0xdc, 0x5c, 0xd9, 0x86, 0xcf, 0x5d, 0x06, 0x3c, 0xb2, 0x3a, 0x72, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0x5e, 0x70, 0xb9, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x03, 0x68, 0xe8, 0xe1, 0x41, 0x21, 0x01, 0x41, 0xa9, 0x73, 0x4b, 0xa3, 0x03, 0x39, 0x7b, 0x7b, 0x33, 0x4b, 0x49, 0xb5, 0x02, 0x7f, 0x17, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x06, 0x7f, 0x17, 0x36, 0x80, 0xef, 0x58, 0xd8, 0x18, 0x5a, 0x19, 0x19, 0xc8, 0xd8, 0x5b, 0x1b, 0x5c, 0x1a, 0x5b, 0xd9, 0x06, 0x65, 0x19, 0xf6, 0x06, 0xcf, 0x4e, 0x06, 0x99, 0x65, 0xd6, 0xa0, 0x89, 0xe7, 0xa8, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0xdb, 0xa0, 0x09, 0xe9, 0xa8, 0x01, 0xbc, 0xe7, 0xe0, 0xca, 0xc6, 0xd2, 0xc2, 0xd8, 0xd2, 0xf4, 0xca, 0x40, 0xec, 0xc2, 0xe6, 0xca, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0xbb, 0xd9, 0x51, 0x1b, 0xfe, 0xa2, 0x59, 0xc3, 0xe7, 0x4a, 0x07, 0xef, 0xf3, 0x6c, 0xd9, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0xd9, 0xa0, 0x79, 0x0a, 0xa9, 0x0d, 0x7f, 0xd1, 0x6c, 0xb0, 0xc0, 0xc2, 0x79, 0x83, 0x82, 0x60, 0x76, 0x83, 0x96, 0xc3, 0xa3, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xad, 0x2f, 0x3d, 0xac, 0xe1, 0x17, 0x97, 0x0d, 0x16, 0x50, 0x79, 0xaf, 0xe1, 0x17, 0x97, 0x83, 0xd6, 0x35, 0x9d, 0x5b, 0x83, 0xa3, 0xeb, 0xe0, 0x06, 0xad, 0x27, 0x81, 0xd5, 0x06, 0x05, 0xc1, 0xec, 0x06, 0x4d, 0xc5, 0x47, 0x6d, 0xd0, 0xd8, 0x7e, 0xd4, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0x7d, 0xe9, 0x61, 0x83, 0x76, 0xc7, 0x34, 0x0f, 0x1e, 0x63, 0xf4, 0xb2, 0x41, 0xd1, 0x41, 0xbb, 0x41, 0xe3, 0xf3, 0x51, 0x6b, 0xd8, 0x2b, 0x3c, 0x9c, 0x62, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xf6, 0x73, 0xa5, 0x36, 0x68, 0x55, 0x3d, 0x6a, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0xfe, 0xac, 0xc3, 0x06, 0x6d, 0x9d, 0x48, 0x1d, 0x34, 0x65, 0x20, 0xd5, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x2d, 0x32, 0x67, 0x1d, 0xb4, 0x5e, 0x0a, 0xb8, 0x86, 0x4b, 0x6a, 0x83, 0xb7, 0x30, 0xbd, 0xd4, 0x6a, 0xd0, 0xf2, 0x83, 0xd4, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0xcb, 0x0f, 0x52, 0x0d, 0xe0, 0xbf, 0x32, 0xc7, 0x16, 0x06, 0xa7, 0x53, 0x47, 0xc7, 0x02, 0x32, 0x16, 0x36, 0x86, 0x56, 0x46, 0xb6, 0xe1, 0x17, 0xa5, 0x0d, 0x1a, 0x90, 0x90, 0xda, 0xf0, 0x17, 0xcd, 0x06, 0xcf, 0xf5, 0x79, 0xd9, 0xa0, 0xe8, 0xa0, 0xdd, 0xa0, 0x75, 0x10, 0xa9, 0x0d, 0x0e, 0x54, 0x68, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x06, 0x54, 0xa5, 0x36, 0x68, 0x55, 0x3d, 0xea, 0xa0, 0xa5, 0x13, 0xa9, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x5c, 0x8a, 0xd4, 0xc1, 0x2b, 0xa5, 0x5e, 0x56, 0xc0, 0x77, 0x2b, 0xa3, 0x9b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x1e, 0xfc, 0xf5, 0xd2, 0x00, 0x9e, 0x74, 0x79, 0x70, 0x65, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x6e, 0x65, 0x73, 0x74, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x26, 0xd4, 0xa5, 0x0e, 0xc2, 0x74, 0x6c, 0x83, 0x65, 0xf5, 0xc7, 0x6d, 0xf8, 0x8b, 0x66, 0x0d, 0x9f, 0x2b, 0x6d, 0xf8, 0x60, 0xf5, 0xe0, 0x45, 0x75, 0x2c, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbb, 0x3d, 0x6b, 0x50, 0x96, 0xbc, 0x6f, 0x70, 0xb4, 0xd6, 0xd8, 0xa0, 0x6c, 0x7a, 0x5f, 0xc3, 0xdb, 0x3a, 0x03, 0x9e, 0x5b, 0xd9, 0x5c, 0x07, 0xad, 0xbf, 0x5f, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0x8a, 0x9c, 0xd6, 0x83, 0x33, 0x9c, 0xda, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x06, 0x0b, 0xc9, 0x7f, 0x37, 0xfc, 0xa2, 0xb4, 0x41, 0x43, 0xc1, 0x80, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x51, 0x63, 0xc0, 0x0d, 0x0a, 0xd8, 0xfc, 0xc3, 0x5b, 0x68, 0x1b, 0x14, 0x3b, 0x9a, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x07, 0xab, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xf6, 0xb6, 0x02, 0x37, 0x68, 0xfb, 0xf7, 0xef, 0xa0, 0xf5, 0xf7, 0xab, 0xd6, 0x60, 0xdd, 0x2a, 0xd3, 0xac, 0xe1, 0x8d, 0xbb, 0x0d, 0x2f, 0xdf, 0x05, 0x78, 0xb9, 0x95, 0xd1, 0xcd, 0xb5, 0x98, 0x85, 0xa5, 0xb1, 0x95, 0x91, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x1b, 0xac, 0x1a, 0x08, 0xde, 0xf0, 0x17, 0xcd, 0x06, 0x61, 0x3a, 0xb6, 0xe1, 0x6d, 0x9d, 0x0d, 0x1a, 0x82, 0xb0, 0x6c, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xc0, 0x33, 0x7b, 0x7b, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0xc2, 0xe4, 0xe0, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x7b, 0x5b, 0x81, 0x1b, 0x2c, 0x2e, 0x09, 0x3e, 0x68, 0x6e, 0x82, 0xaa, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x0d, 0xd6, 0xd8, 0xcd, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x85, 0xc9, 0xc1, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xf6, 0xb6, 0x02, 0x37, 0x58, 0x5c, 0x12, 0x7c, 0xd0, 0xac, 0x06, 0x55, 0x1b, 0xac, 0x5b, 0x65, 0x9a, 0x35, 0xbc, 0x71, 0xb7, 0xe1, 0xe5, 0xbb, 0x00, 0x0f, 0xb7, 0x32, 0xba, 0xb9, 0x16, 0xb7, 0xb2, 0x32, 0x72, 0x83, 0x73, 0xe1, 0xc2, 0x1a, 0xb4, 0x05, 0xb2, 0xb2, 0xe1, 0x17, 0x97, 0x0d, 0x0f, 0xde, 0x1c, 0xb4, 0x1f, 0x92, 0xb9, 0xc1, 0xba, 0x55, 0xa6, 0x59, 0xc3, 0x1b, 0x77, 0x1b, 0x5e, 0xbe, 0x0b, 0xf0, 0x70, 0x2b, 0xa3, 0x9b, 0x6b, 0x41, 0x0b, 0xb3, 0x2b, 0x37, 0x38, 0x17, 0x2e, 0xac, 0x41, 0x5b, 0x20, 0x2b, 0x1b, 0x7e, 0x71, 0xd9, 0xf0, 0xe0, 0xcd, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xcc, 0xde, 0xde, 0xda, 0xf0, 0x8b, 0xcb, 0x06, 0x05, 0x6c, 0xfe, 0xc1, 0x2b, 0xa5, 0x5e, 0x36, 0xfc, 0xe2, 0xb2, 0x41, 0x91, 0xd3, 0xba, 0x86, 0x4b, 0x6a, 0x83, 0xb7, 0x30, 0xbd, 0xac, 0xc1, 0xcb, 0xd7, 0x5e, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x65, 0x0b, 0xea, 0xc1, 0xe3, 0xd5, 0x5e, 0x0e, 0x5a, 0x7f, 0xbf, 0xaa, 0x59, 0x83, 0x25, 0xc1, 0xd9, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x41, 0x0b, 0xe2, 0xc8, 0x03, 0x78, 0x86, 0xcd, 0xcd, 0x95, 0xb5, 0x89, 0xb1, 0x95, 0x81, 0x90, 0xbd, 0xbd, 0xc9, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0x6d, 0xd0, 0x6e, 0x76, 0xd4, 0x06, 0xad, 0x11, 0x65, 0xad, 0xe1, 0xcf, 0xa5, 0x01, 0x6f, 0xee, 0xad, 0xdd, 0x20, 0xf4, 0x4b, 0x36, 0x58, 0x05, 0x99, 0xbc, 0x41, 0xb3, 0xdb, 0x51, 0x07, 0xc7, 0x73, 0x8c, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0x73, 0x7d, 0x5e, 0x36, 0x58, 0xe9, 0xe2, 0xb4, 0xc1, 0x71, 0xe0, 0x63, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x6c, 0x0e, 0xc2, 0x06, 0xad, 0x3d, 0x2e, 0xaf, 0xe1, 0x17, 0x97, 0x35, 0xfc, 0xe2, 0x72, 0xd0, 0x72, 0x64, 0xf3, 0x41, 0x33, 0xf3, 0x69, 0x07, 0x65, 0x9d, 0xe7, 0x06, 0x45, 0x07, 0xed, 0x06, 0x63, 0xa1, 0x6c, 0x83, 0xb7, 0x30, 0xbd, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x9a, 0x22, 0xb3, 0xdc, 0xa0, 0x21, 0x09, 0xc1, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x7b, 0x25, 0x05, 0x07, 0xed, 0x9c, 0x65, 0xb5, 0x41, 0xd1, 0x41, 0xbb, 0xc1, 0x5a, 0x7a, 0xd0, 0x0d, 0xde, 0xc2, 0xf4, 0xb2, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x3e, 0xe3, 0x72, 0x83, 0xe3, 0xf2, 0xcc, 0x06, 0x45, 0xf5, 0x7f, 0x1b, 0x14, 0x1d, 0xb4, 0x03, 0x1e, 0x5a, 0x1a, 0xbc, 0xc1, 0x5b, 0x98, 0x5e, 0xd6, 0x20, 0x48, 0x4f, 0xd7, 0x38, 0x34, 0xe0, 0xcd, 0xbd, 0xb5, 0xad, 0x41, 0xc0, 0x06, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x16, 0x67, 0xa5, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf0, 0xc1, 0x4a, 0x7a, 0xd0, 0x35, 0xbc, 0xad, 0x33, 0x38, 0x3c, 0x38, 0x7c, 0xf0, 0xba, 0xd8, 0x97, 0xd6, 0x20, 0x8c, 0x80, 0x36, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x78, 0xf0, 0xd7, 0x4b, 0x1b, 0x3c, 0x72, 0xf6, 0x65, 0x0d, 0x97, 0xd4, 0x1a, 0x87, 0x0e, 0x5e, 0x57, 0xfb, 0x52, 0x6d, 0x50, 0xf0, 0x61, 0x6e, 0xf0, 0x44, 0x3f, 0x96, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0xad, 0x33, 0x38, 0x7c, 0x50, 0x8a, 0xff, 0xaf, 0xe1, 0x92, 0x5a, 0xf0, 0xf8, 0xa0, 0x14, 0xff, 0x5f, 0x83, 0x63, 0xcc, 0xd9, 0x86, 0x4b, 0x6a, 0x0d, 0xc9, 0xa5, 0x83, 0xd7, 0xc5, 0xbe, 0x54, 0x07, 0xaf, 0x94, 0x7a, 0x39, 0x9c, 0x62, 0x6b, 0xb0, 0xec, 0x3e, 0x6a, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x36, 0x78, 0x17, 0x56, 0xca, 0x00, 0x1e, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x67, 0x61, 0x74, 0x65, 0x1b, 0x7e, 0x51, 0xda, 0xe0, 0xe1, 0x9b, 0x2f, 0x1b, 0xfe, 0xa2, 0xd9, 0xe0, 0xb9, 0x3e, 0x2f, 0x1b, 0x14, 0x1d, 0xb4, 0x03, 0x1e, 0x59, 0x9d, 0xb9, 0xc1, 0x5b, 0x98, 0x5e, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x6d, 0xce, 0x22, 0x6f, 0xd0, 0x90, 0x84, 0xe0, 0x06, 0x2d, 0x9d, 0x65, 0xad, 0xe1, 0x6d, 0x9d, 0x83, 0xd7, 0xc5, 0xbe, 0xb4, 0xe1, 0xdd, 0x9e, 0x0d, 0x9a, 0x22, 0xb3, 0x5c, 0xc3, 0xdb, 0x3a, 0x03, 0x1e, 0x59, 0x9d, 0xd9, 0x41, 0x2b, 0x6b, 0x96, 0x87, 0x53, 0x6c, 0x0d, 0x1e, 0xbc, 0xcb, 0xb2, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xf0, 0xe0, 0x5d, 0x96, 0x06, 0xf0, 0xa6, 0xcb, 0x83, 0x2b, 0x03, 0x19, 0x7b, 0x6b, 0x83, 0x63, 0x4b, 0x0b, 0x73, 0x1b, 0x2b, 0xdb, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0xda, 0xa0, 0x25, 0x79, 0xb0, 0x83, 0xb7, 0x75, 0xbe, 0x6c, 0xf8, 0x8b, 0x66, 0x83, 0x67, 0x27, 0x83, 0x6c, 0x50, 0x74, 0xd0, 0x0e, 0x78, 0x68, 0x69, 0xf0, 0x06, 0x6f, 0x61, 0x7a, 0x59, 0x83, 0x20, 0x3d, 0xdd, 0xe0, 0x31, 0xb1, 0x2f, 0x6b, 0x10, 0xb0, 0x41, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xc5, 0x59, 0xa9, 0x0d, 0x5a, 0x64, 0xce, 0x3a, 0x78, 0x30, 0xed, 0xcb, 0x1a, 0x84, 0x11, 0xd0, 0x86, 0x77, 0x7b, 0x36, 0x78, 0xcf, 0xed, 0xcb, 0x06, 0x2d, 0x32, 0x67, 0x1d, 0x3c, 0x1b, 0xf7, 0xa5, 0x0d, 0x0a, 0x3e, 0xcc, 0x0d, 0x9e, 0xe8, 0xc7, 0x72, 0xf0, 0x4e, 0xa9, 0x97, 0xd5, 0xa0, 0x81, 0xcb, 0xa6, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x06, 0x2e, 0x9b, 0x1a, 0xc0, 0x77, 0x0e, 0xae, 0x8c, 0x0c, 0x84, 0x0e, 0xad, 0xcc, 0x0d, 0x64, 0x8e, 0xed, 0x8d, 0x6e, 0xc3, 0x2f, 0x4a, 0x1b, 0xb4, 0x75, 0x17, 0xb8, 0xe1, 0x2f, 0x9a, 0x0d, 0x9e, 0xeb, 0xf3, 0xb2, 0x41, 0xd1, 0x41, 0x3b, 0xe0, 0xe1, 0x85, 0xd9, 0x1b, 0x1c, 0xa8, 0xd0, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0x89, 0xe7, 0xa8, 0x0e, 0x9a, 0x91, 0x10, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0xcd, 0x67, 0x5c, 0x6e, 0xd0, 0x4e, 0xd9, 0xd6, 0xc1, 0x63, 0xf2, 0x59, 0x56, 0x83, 0x06, 0x0b, 0x05, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x1a, 0x2c, 0x14, 0x68, 0x00, 0x6f, 0xb7, 0xb2, 0x39, 0x3a, 0x9d, 0x3a, 0x3a, 0x16, 0x90, 0xb1, 0xb0, 0x31, 0xb4, 0x32, 0xb2, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0x5a, 0x73, 0x14, 0x3c, 0x68, 0xa2, 0x84, 0x6a, 0xc3, 0x5f, 0x34, 0x1b, 0x3c, 0xf4, 0xec, 0x65, 0xc3, 0x07, 0x39, 0x1b, 0x3c, 0x2f, 0xed, 0x65, 0x83, 0x57, 0xb4, 0xbd, 0x6c, 0x50, 0xec, 0x68, 0xae, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x4b, 0xde, 0x37, 0x68, 0x8c, 0x56, 0xea, 0xa0, 0xe1, 0x8a, 0xc2, 0x83, 0xe6, 0x24, 0xa8, 0xd6, 0x60, 0xdd, 0x2a, 0xd3, 0xac, 0xe1, 0x8d, 0xbb, 0x0d, 0x2f, 0xdf, 0x05, 0x78, 0xb9, 0x95, 0xcd, 0xd1, 0xb5, 0x98, 0x85, 0xa5, 0xb1, 0x95, 0x91, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x03, 0x9e, 0xd9, 0xdb, 0xbb, 0xe1, 0xdd, 0x9e, 0x0d, 0x5e, 0xbb, 0xf7, 0x72, 0xd0, 0xdc, 0x04, 0xd5, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x06, 0x6b, 0xec, 0x66, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0x6b, 0xf7, 0x5e, 0x0e, 0x9a, 0xd5, 0xa0, 0xda, 0x60, 0xdd, 0x2a, 0xd3, 0xac, 0xe1, 0x8d, 0xbb, 0x0d, 0x2f, 0xdf, 0x05, 0x78, 0xb8, 0x95, 0xcd, 0xd1, 0xb5, 0xb8, 0x95, 0x95, 0x91, 0x1b, 0x9c, 0x0b, 0x17, 0x36, 0x78, 0x49, 0xe2, 0xcb, 0x06, 0xeb, 0x56, 0x99, 0x66, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0x2e, 0xc0, 0xc3, 0xad, 0x6c, 0x8e, 0xae, 0x05, 0x2d, 0xcc, 0xae, 0x3c, 0x78, 0x7a, 0xe3, 0xcb, 0x86, 0x5f, 0x5c, 0x36, 0x28, 0x72, 0x5a, 0xd7, 0x70, 0x49, 0x6d, 0x70, 0xa0, 0x42, 0x3b, 0x78, 0x13, 0xe5, 0x4b, 0xab, 0x41, 0x22, 0x3e, 0xf0, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x22, 0x3e, 0x70, 0x03, 0xf8, 0xce, 0xb1, 0xbd, 0xd1, 0x81, 0xd0, 0xa1, 0x95, 0xb9, 0x81, 0xcc, 0xc1, 0x95, 0x91, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0xb6, 0xee, 0x02, 0x37, 0xfc, 0x45, 0xb3, 0xc1, 0x73, 0x7d, 0x5e, 0x36, 0x28, 0x3a, 0x68, 0x07, 0x3c, 0xbc, 0x30, 0x7b, 0x83, 0x03, 0x15, 0xda, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xf9, 0x8c, 0xcb, 0x0d, 0xda, 0x29, 0xdb, 0x3a, 0x68, 0x46, 0x42, 0x70, 0xc3, 0xbb, 0x3d, 0x1b, 0xbc, 0x08, 0xfd, 0xe5, 0xe0, 0x31, 0xf9, 0x2c, 0xab, 0x41, 0x5b, 0x2c, 0x81, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x41, 0x5b, 0x2f, 0x81, 0x03, 0xf8, 0xaf, 0xcc, 0xb1, 0x85, 0xb5, 0xe9, 0xd4, 0xd1, 0xb1, 0x80, 0x8c, 0x85, 0x8d, 0xa1, 0x95, 0x91, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0x86, 0x6b, 0x02, 0x37, 0x28, 0x48, 0x63, 0xd7, 0xf0, 0x7d, 0xfb, 0x06, 0x4d, 0xa8, 0x4b, 0x6d, 0x50, 0x42, 0xc7, 0x6e, 0xb0, 0x6c, 0xc6, 0xf9, 0x20, 0x4c, 0xc7, 0x36, 0x68, 0x94, 0x28, 0x70, 0x83, 0x82, 0x34, 0x76, 0x83, 0x56, 0xaa, 0xb2, 0x36, 0x68, 0xd3, 0xf9, 0x6f, 0x83, 0xa2, 0x83, 0x76, 0x0d, 0xdf, 0xb7, 0x6f, 0x90, 0x50, 0x21, 0x77, 0xf0, 0xc6, 0x0e, 0x98, 0x0d, 0xde, 0xc2, 0xf4, 0xb2, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x3f, 0x57, 0x6a, 0x83, 0x06, 0xce, 0xa6, 0x0e, 0x5a, 0x3a, 0x91, 0xda, 0xf0, 0x8b, 0xcb, 0x1a, 0x7e, 0x71, 0xd9, 0x20, 0x2d, 0x42, 0xee, 0xa0, 0x41, 0xad, 0xc0, 0x83, 0x57, 0x4a, 0xbd, 0x1c, 0x4e, 0xb1, 0x5a, 0x83, 0x47, 0x02, 0xb9, 0x6c, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x3c, 0x12, 0xc8, 0xa5, 0x01, 0x78, 0x9b, 0x63, 0x0b, 0x6b, 0x03, 0x09, 0x03, 0xb1, 0x0b, 0x9b, 0x2b, 0x03, 0xb9, 0x4b, 0xa3, 0x43, 0x03, 0x09, 0x03, 0x69, 0x0b, 0xd3, 0x2b, 0xdb, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0xda, 0xa0, 0x55, 0x9b, 0xc0, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0x2a, 0xf5, 0xdf, 0x83, 0x57, 0x4c, 0x8e, 0xb4, 0xe1, 0x2f, 0x9a, 0x0d, 0x9e, 0xeb, 0xf3, 0xb2, 0x41, 0xd1, 0x41, 0xbb, 0xc1, 0x22, 0xfa, 0xba, 0x0d, 0xde, 0xc2, 0xf4, 0xb2, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x3e, 0xe3, 0x72, 0x83, 0xe3, 0xf2, 0xcc, 0x41, 0xcb, 0xbf, 0x7f, 0x1b, 0x14, 0x7d, 0xba, 0x1b, 0xbc, 0x85, 0xe9, 0x65, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x83, 0xe7, 0xee, 0xb2, 0x6c, 0xd0, 0x7a, 0x4b, 0xe9, 0x41, 0xf3, 0xc4, 0x7f, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0xfd, 0x59, 0x2d, 0x1b, 0xb4, 0xfd, 0xfb, 0xb7, 0x86, 0xb7, 0x75, 0x06, 0x8f, 0x0f, 0x9a, 0x4f, 0x0a, 0x6c, 0xd6, 0xe0, 0x59, 0x7b, 0x2c, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xf8, 0xb9, 0x95, 0xcd, 0xd1, 0x81, 0xa4, 0xb9, 0x81, 0x8c, 0x95, 0xb1, 0xb1, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0x36, 0x19, 0xa8, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x8b, 0xb3, 0x52, 0x1b, 0x34, 0xb5, 0x20, 0x75, 0xd0, 0xdc, 0x04, 0xd5, 0x6a, 0xd0, 0xc2, 0xa2, 0xca, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x0b, 0x8b, 0x2a, 0x0d, 0xe0, 0xbf, 0x02, 0xc7, 0x16, 0x96, 0xa7, 0x53, 0x47, 0xc7, 0x02, 0x32, 0x16, 0x36, 0x86, 0x56, 0x46, 0xb6, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0x6b, 0x8e, 0x82, 0x07, 0xed, 0x4f, 0x48, 0x6d, 0xf8, 0x8b, 0x66, 0x0d, 0x9f, 0x2b, 0x6d, 0xb0, 0x6c, 0xc6, 0xf9, 0xe0, 0x45, 0x75, 0x2c, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x1b, 0x24, 0x23, 0xc5, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x0a, 0x37, 0xd1, 0x0d, 0xca, 0xa6, 0xfa, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xc1, 0x85, 0xe5, 0xb5, 0x86, 0x5f, 0x5c, 0x0e, 0x9e, 0x4d, 0x02, 0xd3, 0x06, 0xc5, 0x80, 0xec, 0x06, 0x89, 0x48, 0x71, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xeb, 0x0c, 0x5e, 0x1f, 0x24, 0x22, 0xc5, 0x1d, 0xbc, 0x52, 0xea, 0x65, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0x84, 0x0a, 0xb9, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0x1b, 0xf7, 0x51, 0x07, 0x0d, 0x57, 0x14, 0x1e, 0xb4, 0x74, 0x22, 0xb5, 0xe1, 0x17, 0x97, 0x0d, 0xd2, 0x22, 0xe4, 0xd6, 0x70, 0x49, 0x6d, 0xf0, 0x16, 0xa6, 0x97, 0x35, 0x78, 0xed, 0x13, 0xcc, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x2c, 0x79, 0xdf, 0xa0, 0x6c, 0x41, 0x3d, 0x78, 0xb0, 0x13, 0xcc, 0x06, 0xef, 0x82, 0x82, 0x39, 0x78, 0xd3, 0x20, 0x4a, 0x1d, 0x4e, 0xb1, 0xd6, 0xa0, 0x5d, 0x29, 0xcb, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0xdb, 0xa0, 0xdd, 0x2a, 0xcb, 0x01, 0xfc, 0x57, 0xe6, 0xd8, 0xf2, 0xda, 0x74, 0xea, 0xe8, 0x58, 0x40, 0xc6, 0xc2, 0xc6, 0xd0, 0xca, 0xc8, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0x73, 0x5e, 0x96, 0x1b, 0xfe, 0xa2, 0xd9, 0xe0, 0xb9, 0x3e, 0x2f, 0x07, 0xad, 0x8d, 0x59, 0xae, 0x06, 0xcd, 0xf4, 0x58, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x06, 0xcd, 0x00, 0x59, 0x0e, 0xe0, 0xbf, 0x32, 0xc7, 0xf6, 0x46, 0xa7, 0x53, 0x47, 0xc7, 0x02, 0x32, 0x16, 0x36, 0x86, 0x56, 0x46, 0xb6, 0xe1, 0x17, 0xa5, 0x0d, 0xda, 0xba, 0x0b, 0xdc, 0xf0, 0x17, 0xcd, 0x06, 0xcf, 0xf5, 0x79, 0xd9, 0xa0, 0xe8, 0xa0, 0xdd, 0xa0, 0x75, 0x10, 0xa9, 0x0d, 0x0e, 0x54, 0x68, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x06, 0x54, 0xa5, 0x36, 0x68, 0x55, 0x3d, 0xea, 0xa0, 0xd5, 0xbb, 0xea, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x17, 0x97, 0x0d, 0xda, 0x52, 0x91, 0x3a, 0x68, 0x9b, 0xc9, 0xf2, 0xe0, 0x95, 0x52, 0x2f, 0xb3, 0x06, 0xad, 0xd4, 0xc4, 0x6c, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xb4, 0x52, 0x13, 0xd3, 0x00, 0xfc, 0xad, 0xb4, 0xa5, 0xb9, 0xd1, 0xe9, 0xd4, 0xd1, 0x81, 0xd0, 0xbd, 0x81, 0xb8, 0xbd, 0xd5, 0xb9, 0xb1, 0x80, 0x8c, 0x85, 0x8d, 0xa1, 0x95, 0x91, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0xa7, 0x21, 0xc1, 0x6c, 0xf8, 0x8b, 0x66, 0x0d, 0x9f, 0x2b, 0x6d, 0xb0, 0x18, 0xbe, 0xfc, 0xe0, 0x45, 0x75, 0x2c, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x1b, 0x24, 0x23, 0xc5, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x0a, 0x37, 0xd1, 0x0d, 0xca, 0xa6, 0xfa, 0x0d, 0x52, 0x3d, 0x3a, 0x3b, 0x78, 0x15, 0x14, 0xcc, 0x06, 0xc5, 0x80, 0xec, 0x06, 0x89, 0x48, 0x71, 0x1b, 0xbc, 0x4d, 0x0a, 0x66, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0x84, 0x0a, 0xb9, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0xf3, 0x23, 0x52, 0x07, 0x0d, 0x57, 0x14, 0x1e, 0x34, 0x63, 0x22, 0xb5, 0xe1, 0x17, 0x97, 0x0d, 0xd2, 0x22, 0xe4, 0xd6, 0x70, 0x49, 0x6d, 0xf0, 0x16, 0xa6, 0x97, 0x35, 0x48, 0x10, 0xe9, 0xdc, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0x94, 0x2d, 0xa8, 0x07, 0x0f, 0xed, 0x83, 0x39, 0x78, 0x47, 0x17, 0x4c, 0x1d, 0x4e, 0xb1, 0x0e, 0xa7, 0xd8, 0x0a, 0xf0, 0x92, 0x95, 0xb5, 0x88, 0x95, 0x85, 0xb5, 0x1b, 0x1e, 0x1f, 0xd9, 0xe0, 0xb5, 0x8a, 0x30, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0x55, 0x24, 0x78, 0xc3, 0x5f, 0x34, 0x6b, 0x10, 0xfa, 0x25, 0x1b, 0x94, 0x4d, 0x98, 0x07, 0x4f, 0x08, 0x6f, 0xd9, 0xa0, 0xd8, 0xd1, 0x5c, 0x83, 0x62, 0x12, 0x73, 0x0d, 0x9f, 0x2b, 0x6d, 0xf8, 0xa1, 0x66, 0xc3, 0x0f, 0x35, 0x07, 0xa7, 0xae, 0x95, 0x83, 0x83, 0x47, 0xc6, 0x06, 0x05, 0x45, 0xe6, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x80, 0x77, 0x87, 0xf6, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x25, 0xdd, 0xea, 0x1b, 0x2c, 0x5f, 0x7b, 0x5d, 0xc3, 0xdb, 0x3a, 0x83, 0xa7, 0x07, 0x07, 0x8f, 0x8c, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x7c, 0x39, 0xb9, 0x41, 0x41, 0x91, 0xb9, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xe0, 0x91, 0x95, 0xcd, 0x1b, 0x94, 0xf0, 0x98, 0x0b, 0x9e, 0x1e, 0xbc, 0xc5, 0x0d, 0x65, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0x96, 0x02, 0x3b, 0x58, 0xbb, 0xa7, 0xbe, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0x74, 0xab, 0x6f, 0xb0, 0x2e, 0xbb, 0x6e, 0x0d, 0x6f, 0xeb, 0x1c, 0xbc, 0x61, 0x13, 0xa6, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x5f, 0x4e, 0x6e, 0x50, 0x50, 0x64, 0x6e, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x76, 0x65, 0xe4, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x00, 0x2f, 0x59, 0x59, 0xcb, 0x58, 0xd8, 0x5c, 0xd9, 0x06, 0x0f, 0x6a, 0x43, 0x69, 0x83, 0x12, 0x1e, 0x73, 0xc3, 0x97, 0x93, 0x1b, 0x14, 0x14, 0x99, 0x1b, 0x1c, 0xc3, 0x0d, 0x36, 0xfc, 0xe2, 0xb2, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x17, 0xcd, 0x06, 0x6d, 0x5b, 0x8f, 0x6f, 0x78, 0x5b, 0x67, 0xf0, 0x7a, 0xc0, 0xbb, 0x43, 0x7b, 0x5b, 0xc3, 0x5f, 0x34, 0x1b, 0x3c, 0x0a, 0x2f, 0x64, 0xc3, 0xdb, 0x3a, 0x83, 0xd7, 0x03, 0x1e, 0x59, 0xd9, 0xdc, 0x1a, 0xde, 0xd6, 0x19, 0xbc, 0x1e, 0xf0, 0xec, 0xca, 0xc8, 0x5a, 0xc3, 0xdb, 0x3a, 0x83, 0xd3, 0x07, 0x6f, 0x6f, 0x43, 0x69, 0x05, 0x78, 0xcb, 0xdc, 0x5a, 0xc4, 0xca, 0xc2, 0xda, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xc5, 0x83, 0xa7, 0x04, 0x87, 0x6c, 0xb0, 0xd2, 0xc5, 0x69, 0x83, 0x73, 0x3b, 0xdf, 0x06, 0x4b, 0x72, 0xd3, 0x37, 0xfc, 0x45, 0xb3, 0xc1, 0x19, 0x09, 0x75, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xc3, 0x39, 0xdf, 0x06, 0xcb, 0xd7, 0x5e, 0x0f, 0x5a, 0x1d, 0xe8, 0xdd, 0xa0, 0x6c, 0x17, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x1c, 0xce, 0xf9, 0x36, 0x38, 0xcd, 0xde, 0x74, 0x90, 0x4a, 0xf9, 0x76, 0x38, 0xc5, 0xd6, 0xa0, 0x6d, 0x24, 0xd0, 0x0d, 0x8f, 0x8f, 0x6c, 0xd0, 0x36, 0x12, 0xe8, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xe4, 0xde, 0xcc, 0x0d, 0xff, 0xce, 0xaf, 0xc1, 0x6b, 0xd3, 0x46, 0x6a, 0x83, 0x77, 0xf2, 0xa9, 0x6c, 0xf0, 0x16, 0x3f, 0x95, 0x36, 0xfc, 0x45, 0xb3, 0x86, 0x7f, 0xe7, 0xd7, 0xe0, 0xd1, 0x48, 0x22, 0xb5, 0xe1, 0xf1, 0x91, 0x81, 0x4f, 0x73, 0x37, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0x36, 0x58, 0x56, 0x7f, 0xbc, 0x86, 0x3f, 0x97, 0x36, 0x48, 0x91, 0xed, 0x39, 0x08, 0xd3, 0xb1, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x36, 0x58, 0x40, 0x9d, 0xbe, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0x2b, 0x05, 0x1f, 0x24, 0x4b, 0x71, 0x6e, 0x50, 0xc2, 0x63, 0x6e, 0xf8, 0x72, 0x72, 0x83, 0x82, 0x22, 0x73, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0xf5, 0xc6, 0xdd, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0xbc, 0x64, 0x65, 0x2d, 0x6f, 0x6d, 0x65, 0x6e, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xfa, 0x60, 0x7d, 0x79, 0x7a, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0xbe, 0x9c, 0xdc, 0xa0, 0xa0, 0xc8, 0xdc, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0xd9, 0xa0, 0xa8, 0x2d, 0xde, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xe4, 0xde, 0xcc, 0x36, 0x78, 0x61, 0xa5, 0xca, 0x06, 0x8f, 0xb4, 0x54, 0x59, 0xc3, 0xdb, 0x3a, 0x83, 0xd7, 0x07, 0x2d, 0xfe, 0x70, 0xb7, 0x41, 0x09, 0x8f, 0xb9, 0xe1, 0xcb, 0xc9, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x4a, 0x78, 0xcc, 0x05, 0xaf, 0x0f, 0xca, 0xff, 0xe2, 0x0d, 0xce, 0xb2, 0x52, 0x1b, 0xac, 0x74, 0x71, 0xda, 0xa0, 0x25, 0xf1, 0xa8, 0x35, 0xbc, 0xad, 0x33, 0x78, 0x3c, 0x78, 0x7d, 0xf0, 0x54, 0x6b, 0x98, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0x28, 0x25, 0xc4, 0xd7, 0xf0, 0x8b, 0xcb, 0x1a, 0x3e, 0x77, 0xd9, 0x60, 0xcd, 0xfd, 0xf1, 0xc1, 0xf2, 0x0c, 0xe4, 0x35, 0x7c, 0xee, 0xb2, 0x41, 0xa3, 0xda, 0x51, 0x1b, 0x3e, 0x77, 0x19, 0x1c, 0x3e, 0x68, 0x55, 0x3d, 0x6a, 0x0d, 0x9f, 0xbb, 0x6c, 0xb8, 0x6c, 0x0e, 0xda, 0x55, 0x42, 0x5b, 0xc3, 0xe7, 0x2e, 0x03, 0x7f, 0x17, 0x1e, 0x3c, 0x82, 0x8f, 0x65, 0x0d, 0x9f, 0xbb, 0x6c, 0xf0, 0xfa, 0x91, 0x8f, 0x83, 0x67, 0x17, 0xa5, 0xb4, 0xc1, 0xb9, 0x70, 0x61, 0x0d, 0x91, 0xd9, 0xe0, 0xe8, 0x3a, 0xb8, 0xc1, 0x2b, 0x3a, 0x51, 0xd6, 0xf0, 0x23, 0xcc, 0x41, 0xd3, 0x86, 0xa5, 0x6d, 0x78, 0x84, 0x75, 0x0d, 0x8a, 0x49, 0xcc, 0x0d, 0x8a, 0x54, 0xcc, 0x83, 0x75, 0x17, 0xc8, 0x6b, 0xf8, 0x37, 0x67, 0x83, 0x76, 0x95, 0xd0, 0x36, 0x5c, 0x52, 0x1b, 0x2c, 0xb3, 0x40, 0x6e, 0x0d, 0x0f, 0x4a, 0x6e, 0x78, 0x66, 0x72, 0xc3, 0xbb, 0x3d, 0x6b, 0x50, 0x96, 0xbc, 0x6f, 0xf0, 0xd4, 0xdb, 0x97, 0x0d, 0x1e, 0xc1, 0xc7, 0xb2, 0xc1, 0x3b, 0xf8, 0x55, 0x5a, 0xc3, 0x25, 0xb5, 0xc6, 0xf3, 0x83, 0x75, 0x17, 0xc8, 0x1d, 0xb4, 0xa9, 0x1e, 0xd5, 0x1a, 0x9c, 0x0b, 0x17, 0xd6, 0xa0, 0x2d, 0x90, 0x95, 0x0d, 0xbf, 0xb8, 0x6c, 0x78, 0xf0, 0x66, 0x0d, 0x4f, 0xdc, 0x6d, 0x78, 0x16, 0x6f, 0xf0, 0x70, 0x70, 0x79, 0x70, 0x7b, 0xf0, 0x77, 0x50, 0x3d, 0x28, 0x18, 0x7c, 0x1e, 0x7c, 0x1c, 0x5c, 0x1e, 0x3c, 0x1f, 0xb4, 0x0d, 0xce, 0x0e, 0xfe, 0x0e, 0x3e, 0x1f, 0x1c, 0x68, 0xfa, 0x3a, 0x28, 0x28, 0x32, 0x37, 0xfc, 0xe2, 0xb2, 0x41, 0x41, 0x91, 0xb9, 0x41, 0x41, 0x91, 0x79, 0xd0, 0x7a, 0x29, 0xe0, 0x6a, 0xd0, 0xf0, 0x8f, 0xd7, 0x86, 0x5f, 0x94, 0x36, 0x78, 0xa0, 0x38, 0xca, 0x06, 0x27, 0x07, 0xb9, 0x0d, 0xda, 0x12, 0xb3, 0xda, 0xa0, 0xc1, 0x30, 0xab, 0x35, 0x48, 0xd9, 0x62, 0xda, 0xf0, 0xc6, 0xdd, 0x86, 0x97, 0xef, 0x02, 0x3f, 0xac, 0xad, 0x6c, 0x5e, 0x83, 0x95, 0xe2, 0x88, 0x1b, 0xde, 0xb8, 0xdb, 0xf0, 0xf2, 0x5d, 0xe0, 0x8b, 0x95, 0xa1, 0xb9, 0x6b, 0xb0, 0x76, 0x66, 0x6f, 0xc3, 0x1b, 0x77, 0x1b, 0x5e, 0xbe, 0x0b, 0xfc, 0x31, 0xb6, 0xb0, 0x7c, 0x0d, 0xce, 0xb9, 0x29, 0x1b, 0xde, 0xb8, 0xdb, 0xf0, 0xf2, 0x5d, 0xe0, 0x93, 0xa5, 0xb1, 0xb1, 0xab, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0xf0, 0x72, 0xc3, 0x1b, 0x77, 0x1b, 0x5e, 0xbe, 0x0b, 0xfc, 0xb2, 0x3c, 0xb9, 0x72, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x17, 0x7e, 0x6e, 0x78, 0xe3, 0x6e, 0xc3, 0xcb, 0x77, 0x81, 0x7f, 0x16, 0xc6, 0xc6, 0xae, 0xc1, 0x51, 0xeb, 0x64, 0xc3, 0x1b, 0x77, 0x1b, 0x5e, 0xbe, 0x0b, 0xfc, 0x34, 0xb9, 0xb4, 0x79, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x17, 0xae, 0x6e, 0x78, 0xe3, 0x6e, 0xc3, 0xcb, 0x77, 0x81, 0xaf, 0x16, 0x56, 0xc6, 0xae, 0xc1, 0x1a, 0x1d, 0xf6, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0x2e, 0xf0, 0xd7, 0xd0, 0xc2, 0xdc, 0x35, 0x58, 0x73, 0xc7, 0xbe, 0xe1, 0x8d, 0xbb, 0x0d, 0x2f, 0xdf, 0x05, 0x3e, 0x5b, 0xda, 0xd8, 0xda, 0x6a, 0xf0, 0xd6, 0x65, 0x98, 0x0d, 0x8f, 0x8f, 0x6c, 0xf0, 0xd6, 0x65, 0x98, 0x0d, 0xbf, 0x28, 0x6d, 0xb0, 0x46, 0x3a, 0x7d, 0xc3, 0x5f, 0x34, 0x6b, 0x10, 0xfa, 0x25, 0x1b, 0x94, 0x4d, 0x98, 0x07, 0x2f, 0xfd, 0x53, 0xd9, 0xa0, 0x84, 0xc7, 0xdc, 0x60, 0x7d, 0x79, 0xfa, 0x06, 0x05, 0x45, 0xe6, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x80, 0x27, 0x56, 0xd6, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0xf0, 0x5a, 0x45, 0x98, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf4, 0xc1, 0xfa, 0xf2, 0xf4, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x7c, 0x39, 0xb9, 0x41, 0x41, 0x91, 0xb9, 0xe1, 0x83, 0x9c, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xcb, 0xdf, 0x50, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xe9, 0xc1, 0xfa, 0xf2, 0xf4, 0xd6, 0xe0, 0x18, 0x6e, 0xb0, 0xe1, 0x17, 0x97, 0x0d, 0x1e, 0x05, 0x12, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0xaf, 0x0f, 0xde, 0xdb, 0x94, 0xd2, 0x06, 0x05, 0x69, 0xec, 0x1a, 0xbe, 0x6f, 0xdf, 0x60, 0x15, 0x38, 0xde, 0x06, 0x25, 0x74, 0xec, 0x06, 0xcb, 0x7b, 0xcf, 0x0f, 0xc2, 0x74, 0x6c, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xd6, 0x00, 0x76, 0x83, 0x47, 0x81, 0xc4, 0x1c, 0xb4, 0xaa, 0x9d, 0xb9, 0x41, 0xb1, 0xa3, 0xb9, 0x86, 0x47, 0x58, 0xd7, 0xa0, 0x98, 0xc4, 0xdc, 0xa0, 0x48, 0xc5, 0x3c, 0x58, 0x84, 0x98, 0xb7, 0x06, 0xc5, 0x24, 0xe6, 0x1a, 0x3e, 0x57, 0xda, 0x20, 0x05, 0x36, 0x78, 0x0d, 0x9f, 0x2b, 0x6d, 0x90, 0x32, 0x18, 0x7c, 0xd0, 0x12, 0x14, 0xf4, 0x06, 0x0f, 0x6c, 0x89, 0x39, 0x38, 0x2e, 0x9e, 0x0c, 0x5e, 0x1f, 0x2c, 0x42, 0xcc, 0x6b, 0x83, 0x82, 0x22, 0x73, 0x83, 0x63, 0xb8, 0xc1, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xa0, 0xe4, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0xdb, 0x3a, 0x83, 0xc7, 0x83, 0xc3, 0x07, 0xc5, 0xee, 0xf9, 0x1a, 0xde, 0xd6, 0x19, 0x3c, 0x1e, 0x1c, 0x1e, 0x3c, 0x3d, 0x38, 0xd0, 0xf4, 0xb5, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0x83, 0x37, 0xc0, 0xc4, 0x1c, 0xbc, 0x62, 0x24, 0xe6, 0x70, 0x8a, 0xd5, 0x02, 0xff, 0x66, 0x6e, 0x50, 0xda, 0x5b, 0xae, 0xe1, 0xcf, 0xa5, 0x01, 0xcf, 0x2c, 0x8c, 0xde, 0x20, 0xf4, 0x4b, 0x36, 0x78, 0x9f, 0xee, 0x47, 0x1b, 0x94, 0x79, 0x97, 0xb3, 0xcc, 0x1a, 0x2c, 0xf6, 0x5e, 0xdd, 0xf0, 0x8b, 0xd2, 0x06, 0x6b, 0xa4, 0xd3, 0x37, 0x7c, 0xfd, 0xb2, 0xc1, 0x73, 0xca, 0x4f, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x58, 0x5f, 0x9e, 0xbe, 0xc1, 0x73, 0xca, 0x4f, 0x36, 0x28, 0x48, 0x63, 0x07, 0xbc, 0xb5, 0x34, 0x72, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0xe1, 0x26, 0xba, 0x41, 0xd9, 0x54, 0xbf, 0x86, 0xb7, 0x75, 0x06, 0x3c, 0xb2, 0x34, 0xf9, 0xe0, 0xa5, 0xe5, 0x27, 0x1d, 0x3c, 0x09, 0x24, 0x66, 0x83, 0x12, 0x1e, 0x73, 0x01, 0x6f, 0x2d, 0x8d, 0x6c, 0x83, 0xb3, 0xac, 0xd4, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0x2f, 0x2d, 0x3f, 0xd9, 0xf0, 0xb6, 0xce, 0xe0, 0xf5, 0xc1, 0x43, 0x8c, 0x62, 0xd6, 0x60, 0x7d, 0x79, 0xfa, 0xc1, 0x63, 0x38, 0x62, 0x5a, 0x0d, 0x46, 0x9a, 0xfb, 0x06, 0x85, 0x72, 0xe7, 0x1a, 0x3e, 0x57, 0xda, 0x60, 0x8d, 0x74, 0xfa, 0xc1, 0xb2, 0x83, 0xe0, 0x0d, 0x4a, 0x09, 0xf1, 0x35, 0x5c, 0x52, 0x1b, 0x14, 0x35, 0xe2, 0x6b, 0x50, 0xfe, 0x17, 0x6f, 0xf8, 0x8b, 0x66, 0x0d, 0x02, 0xe8, 0x6c, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0x8a, 0x49, 0xcc, 0x0d, 0x8a, 0x54, 0xcc, 0x0d, 0x46, 0x02, 0xc3, 0xc1, 0x4b, 0xcb, 0x4f, 0x36, 0xbc, 0xad, 0x33, 0x78, 0x7d, 0xf0, 0xf0, 0xa8, 0x98, 0x83, 0xd2, 0xcf, 0x78, 0x0d, 0xd6, 0x97, 0xa7, 0x6f, 0xf8, 0x8b, 0x66, 0x83, 0x33, 0x12, 0xea, 0xc1, 0x22, 0xf2, 0xf4, 0x36, 0x7c, 0x85, 0xb3, 0xe1, 0xeb, 0x97, 0x0d, 0x9e, 0x53, 0x7e, 0xb2, 0x41, 0x09, 0x8f, 0xb9, 0xc1, 0xfa, 0xf2, 0xf4, 0x35, 0x5c, 0x52, 0x1b, 0xbc, 0xb4, 0xfc, 0x64, 0x0d, 0xd2, 0x49, 0xb2, 0x36, 0x38, 0x86, 0x1b, 0x1c, 0x94, 0x7e, 0xc6, 0x6d, 0x50, 0x90, 0xc6, 0x0e, 0x78, 0x6b, 0x69, 0xe4, 0x1a, 0xde, 0xed, 0x59, 0x83, 0xb2, 0xe4, 0x7d, 0x0d, 0x4e, 0x4c, 0x63, 0x1d, 0xbc, 0x5e, 0x28, 0x66, 0x83, 0x47, 0x81, 0xc4, 0xac, 0xe1, 0xeb, 0x97, 0x0d, 0x9e, 0x53, 0x7e, 0x72, 0x70, 0x96, 0x95, 0x6a, 0xc3, 0x25, 0xb5, 0xc1, 0x4b, 0xcb, 0x4f, 0xd6, 0xe0, 0xf9, 0x49, 0x28, 0x1b, 0xde, 0xed, 0x59, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0xb2, 0x05, 0xf5, 0xe0, 0xf5, 0x42, 0x31, 0x1b, 0x3c, 0x0a, 0x24, 0x66, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x5e, 0x5a, 0x7e, 0xb2, 0xe1, 0x6d, 0x9d, 0x83, 0x87, 0x18, 0xc5, 0x1c, 0x3c, 0x39, 0x29, 0xa6, 0x56, 0x83, 0x26, 0xb9, 0xb9, 0x36, 0xfc, 0xa2, 0xb4, 0xc1, 0x1a, 0xe9, 0xf4, 0x0d, 0x5f, 0xbf, 0x6c, 0xf0, 0x9c, 0xf2, 0x93, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0xd6, 0x97, 0xa7, 0x6f, 0xf0, 0x9c, 0xf2, 0x93, 0x0d, 0x5f, 0xe1, 0x6c, 0x50, 0xc2, 0x63, 0x6e, 0xf0, 0x4e, 0x8e, 0x98, 0x35, 0x5c, 0x52, 0x1b, 0xbc, 0xb4, 0xfc, 0x64, 0x0d, 0x9e, 0x9f, 0x84, 0xb2, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x4b, 0xde, 0x37, 0x38, 0x9c, 0x5e, 0x1c, 0xbc, 0x5e, 0x28, 0xe6, 0xe0, 0x49, 0x20, 0x31, 0x6d, 0x50, 0x90, 0xc6, 0x0e, 0x78, 0x6b, 0x69, 0xe4, 0x06, 0x0f, 0x0c, 0x8a, 0xd9, 0xa0, 0x84, 0xc7, 0xdc, 0xe0, 0x21, 0x46, 0x31, 0x1b, 0x3c, 0xa7, 0xfc, 0x64, 0xc3, 0x25, 0xb5, 0xc1, 0x4b, 0xcb, 0x4f, 0xd6, 0xe0, 0xf9, 0x49, 0x28, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0xf9, 0x62, 0x31, 0x1b, 0x3c, 0x0a, 0x24, 0x66, 0x83, 0xf7, 0x1c, 0xc5, 0xd4, 0xe1, 0x14, 0x5b, 0x83, 0x22, 0x92, 0x60, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0xd3, 0xc1, 0xe4, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0x48, 0x99, 0xac, 0x41, 0xe8, 0x97, 0x6c, 0x50, 0x7a, 0xd3, 0x6f, 0x70, 0x46, 0x42, 0xdd, 0xe0, 0xe1, 0x4f, 0x31, 0xb5, 0xe1, 0xeb, 0x97, 0x0d, 0x9e, 0x53, 0x7e, 0xb2, 0x41, 0x09, 0x8f, 0xb9, 0xc1, 0x19, 0x6a, 0x72, 0x83, 0xe7, 0x94, 0x9f, 0x6c, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xf0, 0xd2, 0xf2, 0x93, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x80, 0xa0, 0xae, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0x83, 0x13, 0xd8, 0xe4, 0x1a, 0xde, 0xd6, 0x19, 0x3c, 0x3e, 0x38, 0x81, 0x4d, 0x76, 0x70, 0xe8, 0xa1, 0x5c, 0x0d, 0x4a, 0xd1, 0x81, 0x0d, 0x4a, 0x7b, 0xcb, 0x0d, 0xd6, 0x48, 0xa7, 0x6f, 0x50, 0xda, 0x5b, 0xae, 0xe1, 0xcf, 0xa5, 0x0d, 0x4a, 0xb3, 0xec, 0x83, 0xf7, 0xec, 0xc5, 0x6c, 0xf8, 0x0a, 0x67, 0xc3, 0xd7, 0x2f, 0x1b, 0x14, 0x4b, 0xdb, 0x1b, 0x1c, 0xc7, 0x26, 0x36, 0x28, 0xb1, 0xb6, 0x37, 0x78, 0x38, 0x54, 0xcc, 0x1a, 0x2c, 0xa9, 0x4e, 0xda, 0xa0, 0x58, 0xda, 0xde, 0xf0, 0x8b, 0xcb, 0x06, 0x8b, 0xc8, 0xd3, 0x37, 0x78, 0xba, 0x54, 0x4c, 0x1b, 0x14, 0xa4, 0xb1, 0x03, 0x1e, 0x59, 0x9a, 0xbc, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x8b, 0x40, 0x46, 0x0f, 0x5e, 0x2f, 0x14, 0xb3, 0xe1, 0x2b, 0x9c, 0x0d, 0x5f, 0xbf, 0x6c, 0x50, 0x2c, 0x6d, 0x6f, 0x50, 0xc2, 0x63, 0x6e, 0xf0, 0xfc, 0x24, 0x94, 0x0d, 0x8a, 0xa5, 0xed, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x9e, 0x9f, 0x84, 0xb2, 0xe1, 0x6d, 0x9d, 0xc1, 0xe9, 0x83, 0xe7, 0x27, 0xa1, 0xac, 0x41, 0x89, 0xb5, 0xbd, 0xe1, 0x92, 0xda, 0xe0, 0xb0, 0xdf, 0xb1, 0x06, 0xeb, 0xcb, 0xd3, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0x89, 0xa0, 0x6d, 0x83, 0x45, 0xe4, 0xe9, 0x6b, 0x70, 0x74, 0x1d, 0x5c, 0xc3, 0xdb, 0x3a, 0x83, 0xc3, 0x83, 0xa7, 0x07, 0xcf, 0x4f, 0x42, 0xa9, 0x35, 0x78, 0x69, 0xf9, 0xc9, 0x86, 0xb7, 0x75, 0x06, 0x8f, 0x0f, 0x5e, 0xc2, 0x19, 0x53, 0x2b, 0xe0, 0x99, 0xa5, 0xd1, 0x1b, 0x7e, 0x51, 0xda, 0x60, 0x8d, 0x74, 0xfa, 0x86, 0xaf, 0x5f, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x8b, 0xc8, 0xd3, 0xd7, 0xf0, 0xb6, 0xce, 0xc1, 0xc3, 0xa3, 0x62, 0xda, 0xa0, 0x84, 0xc7, 0xdc, 0x60, 0x7d, 0x79, 0xfa, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0xa0, 0xc8, 0x3c, 0x78, 0x7a, 0x68, 0xcc, 0x06, 0x05, 0x69, 0xec, 0x80, 0xb7, 0x96, 0x46, 0x6e, 0xf0, 0xc0, 0xa0, 0x98, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x1e, 0x62, 0x14, 0xb3, 0xc1, 0xe3, 0x41, 0x63, 0x36, 0x28, 0x48, 0x63, 0x37, 0x58, 0x65, 0x18, 0xba, 0xc1, 0x7b, 0x8e, 0x62, 0x36, 0x28, 0xe1, 0x31, 0xd7, 0x78, 0x7e, 0xb0, 0xc6, 0x30, 0x74, 0x83, 0xc7, 0x83, 0xc6, 0x1c, 0x2c, 0x24, 0x0c, 0x5d, 0x0d, 0x56, 0x79, 0xce, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0xca, 0x9d, 0xf7, 0x0d, 0xca, 0xa6, 0xfa, 0x35, 0x28, 0x04, 0x53, 0x37, 0x08, 0xfd, 0x92, 0x0d, 0x4a, 0xc4, 0xfa, 0x83, 0xb7, 0xf4, 0xc5, 0x74, 0xb0, 0xce, 0x63, 0xf4, 0x70, 0x8a, 0xd5, 0x1a, 0x94, 0xdc, 0x0d, 0x1b, 0x7e, 0x51, 0xda, 0x60, 0x8d, 0x74, 0xfa, 0x86, 0xb7, 0x59, 0x37, 0xfc, 0x9b, 0xb3, 0x41, 0x41, 0x91, 0xb9, 0xe1, 0xdd, 0x9e, 0x0d, 0xce, 0x9d, 0x16, 0x07, 0x4b, 0xc8, 0xd3, 0x0f, 0xa7, 0xd8, 0x1a, 0x14, 0xfe, 0x06, 0x1b, 0x7e, 0x51, 0xda, 0x60, 0x8d, 0x74, 0xfa, 0x86, 0xaf, 0x5f, 0x36, 0x78, 0x4e, 0xf9, 0xc9, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0xeb, 0xcb, 0xd3, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0x05, 0x45, 0xe6, 0xc1, 0xeb, 0x86, 0x62, 0x0e, 0xde, 0x1e, 0x17, 0xb3, 0x1a, 0x94, 0x08, 0x2d, 0x1b, 0x7e, 0x51, 0xda, 0x60, 0x8d, 0x74, 0xfa, 0x86, 0x07, 0x25, 0x37, 0x48, 0x0c, 0xc9, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0xeb, 0xb9, 0x57, 0x0f, 0x96, 0x90, 0xa7, 0x1f, 0x4e, 0xb1, 0x0e, 0xa7, 0xd8, 0x6a, 0xf0, 0xd2, 0x51, 0x98, 0x0d, 0x8f, 0x8f, 0x6c, 0xf0, 0xd2, 0x51, 0x98, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0xcf, 0xa5, 0x0d, 0x0e, 0x0c, 0xa0, 0x07, 0x27, 0x02, 0xd0, 0x0d, 0x7f, 0xd1, 0xac, 0x41, 0xe8, 0x97, 0x6c, 0x50, 0x36, 0x61, 0x6e, 0xf0, 0x56, 0xbd, 0x90, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x36, 0x68, 0xf4, 0x8f, 0x70, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xe9, 0x56, 0xdf, 0x20, 0x11, 0x2e, 0x78, 0x0d, 0x6f, 0xeb, 0x1c, 0x1c, 0x17, 0x40, 0xdb, 0xa0, 0x18, 0x90, 0xdd, 0xf0, 0xe5, 0xe4, 0x1a, 0x1c, 0xc3, 0x0d, 0x36, 0xfc, 0xe2, 0xb2, 0x41, 0x22, 0x5c, 0xf0, 0x1a, 0xde, 0xd6, 0x19, 0xbc, 0x3e, 0x68, 0x9f, 0x92, 0xb0, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x01, 0xef, 0xae, 0xcc, 0xdd, 0xf0, 0x6e, 0xcf, 0x06, 0x4b, 0xba, 0xd5, 0x37, 0x58, 0xe1, 0xe4, 0x7a, 0xf0, 0xdc, 0xe4, 0x98, 0x0d, 0x8a, 0x01, 0xd9, 0x0d, 0x5f, 0x4e, 0xae, 0xc1, 0x31, 0xdc, 0x60, 0xc3, 0x2f, 0x2e, 0x1b, 0xac, 0x70, 0x72, 0x5d, 0xc3, 0xdb, 0x3a, 0x83, 0xd7, 0x03, 0xde, 0x5d, 0x99, 0x5b, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x1b, 0x24, 0xb7, 0xa8, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x25, 0xdd, 0xea, 0x1b, 0x2c, 0x34, 0x6e, 0x3d, 0x78, 0x6e, 0x72, 0xcc, 0x06, 0xc5, 0x80, 0xec, 0x86, 0x2f, 0x27, 0xd7, 0xe0, 0x18, 0x6e, 0xb0, 0xe1, 0x17, 0x97, 0x0d, 0x16, 0x1a, 0xb7, 0xae, 0xe1, 0x6d, 0x9d, 0xc1, 0xeb, 0x83, 0xe4, 0x40, 0xd5, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x3c, 0xb6, 0x30, 0x71, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xe9, 0x56, 0xdf, 0x60, 0x5d, 0x76, 0xdd, 0xc1, 0x73, 0x93, 0x63, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x7c, 0x39, 0xb9, 0x41, 0x41, 0x91, 0xb9, 0xc1, 0x31, 0xdc, 0x60, 0xc3, 0x2f, 0x2e, 0x1b, 0xac, 0xcb, 0xae, 0x5b, 0xc3, 0xdb, 0x3a, 0x83, 0xd7, 0x07, 0x2f, 0x22, 0x69, 0xe9, 0x70, 0x8a, 0xad, 0xc1, 0x8b, 0xad, 0x57, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0x8b, 0xf8, 0x69, 0x0f, 0x1e, 0x55, 0x08, 0xb2, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb4, 0x3a, 0x77, 0x83, 0xd0, 0x2f, 0xd9, 0xa0, 0x6c, 0xc2, 0x3c, 0x38, 0x3e, 0xb9, 0xae, 0xe1, 0xcf, 0xa5, 0x01, 0xcf, 0x2e, 0xcc, 0x3d, 0x38, 0xcf, 0x8e, 0xb6, 0xe1, 0x2f, 0x9a, 0x0d, 0x1e, 0xca, 0x8c, 0xb2, 0xc1, 0xb9, 0x70, 0x61, 0x0d, 0x79, 0xec, 0x0d, 0x3f, 0xc2, 0x0c, 0x4e, 0x07, 0xf0, 0x13, 0x26, 0x67, 0xf7, 0xa6, 0x03, 0x52, 0x07, 0x77, 0x26, 0x17, 0x46, 0x56, 0x06, 0x62, 0x16, 0x96, 0xc6, 0x56, 0x46, 0x6e, 0x70, 0x2e, 0x5c, 0x58, 0x83, 0xb6, 0x40, 0x56, 0x36, 0xfc, 0xe2, 0xb2, 0xe1, 0xc1, 0x9b, 0x35, 0xfc, 0x08, 0x33, 0x38, 0x1d, 0xc0, 0x5b, 0x98, 0x9c, 0xdd, 0x9b, 0x0e, 0x88, 0x58, 0xd9, 0x59, 0x9a, 0x9b, 0x5b, 0x9a, 0xdb, 0x19, 0x48, 0x1d, 0xdc, 0x99, 0x5c, 0x18, 0x59, 0xd9, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0x8f, 0xf8, 0x44, 0x59, 0x83, 0x82, 0x34, 0x76, 0x83, 0x85, 0xe4, 0xbf, 0x6b, 0x70, 0x2e, 0x5c, 0x58, 0x83, 0xb6, 0x40, 0x56, 0x36, 0xfc, 0xe2, 0xb2, 0xe1, 0xc1, 0x9b, 0x35, 0xfc, 0x08, 0x33, 0x38, 0x1d, 0xc0, 0x63, 0x98, 0x9c, 0xdd, 0x9b, 0x0e, 0xc8, 0xd8, 0x5b, 0x1b, 0x5c, 0x1a, 0x5b, 0x9a, 0xdb, 0x19, 0x88, 0x5b, 0x19, 0x1e, 0x1d, 0x48, 0x98, 0x9c, 0xdd, 0xdb, 0x06, 0xe7, 0xc2, 0x85, 0x0d, 0x1e, 0xe9, 0xd8, 0xb2, 0xc1, 0x89, 0xfd, 0x66, 0x83, 0x17, 0x3f, 0xb6, 0x6c, 0x70, 0x1e, 0xec, 0xd8, 0xf0, 0x6e, 0xcf, 0x06, 0x4d, 0x91, 0x59, 0xae, 0xc1, 0x02, 0xb9, 0xa7, 0x83, 0x17, 0x4f, 0xa4, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x9a, 0x61, 0x44, 0x5e, 0x83, 0xa3, 0xeb, 0xe0, 0x06, 0x8f, 0x80, 0x40, 0xd9, 0xe0, 0x15, 0x9d, 0x28, 0x07, 0x4f, 0xc6, 0x44, 0x39, 0x78, 0x80, 0x1f, 0x4a, 0x1b, 0x14, 0xa4, 0xb1, 0x03, 0x1e, 0xdb, 0x1b, 0xb9, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x8a, 0xcc, 0x72, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0x7c, 0xc6, 0xe5, 0x06, 0xe7, 0x05, 0x9a, 0x83, 0x96, 0x7f, 0xff, 0x0e, 0x5e, 0xb9, 0xd7, 0xb2, 0xe1, 0x17, 0xa5, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0x4b, 0x0d, 0x41, 0x0e, 0x1e, 0xd2, 0x8c, 0xb2, 0xc1, 0x79, 0xb0, 0x63, 0x83, 0x73, 0xe1, 0xc2, 0x1a, 0xb4, 0x05, 0xb2, 0xb2, 0xe1, 0x17, 0x97, 0x0d, 0x0f, 0xde, 0xac, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0x00, 0xff, 0x30, 0x39, 0xbb, 0x37, 0x1d, 0x90, 0x15, 0xb6, 0xb7, 0x30, 0x32, 0x10, 0xb7, 0x32, 0x3c, 0xba, 0x0d, 0xd6, 0x48, 0x35, 0x6d, 0x50, 0xa4, 0x62, 0x6e, 0x78, 0x50, 0x72, 0x83, 0xd3, 0x91, 0xc8, 0x86, 0x77, 0x7b, 0x36, 0x78, 0xa9, 0x5f, 0xcb, 0x1a, 0xde, 0xd6, 0x39, 0x78, 0x9b, 0x75, 0xca, 0x1a, 0x2c, 0x90, 0x7b, 0xda, 0xf0, 0xb6, 0xce, 0xc1, 0x2b, 0x9b, 0x51, 0xda, 0xa0, 0x20, 0x8d, 0x5d, 0x83, 0x12, 0x3a, 0x76, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0x0d, 0xda, 0x17, 0xa1, 0x3a, 0x08, 0xd3, 0xb1, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0xa1, 0xbd, 0x8d, 0x07, 0x61, 0x3a, 0xb6, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0xb1, 0x37, 0xf8, 0x20, 0x4c, 0xc7, 0x3a, 0x08, 0xd3, 0xb1, 0x35, 0x28, 0x48, 0x63, 0x37, 0x48, 0x91, 0xed, 0x59, 0x83, 0x73, 0xe1, 0xc2, 0x1a, 0xb4, 0x05, 0xb2, 0xb2, 0xe1, 0x17, 0x97, 0x0d, 0x0f, 0xde, 0xac, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0x00, 0x7e, 0xc2, 0xe4, 0xec, 0xde, 0x74, 0x40, 0xc6, 0xde, 0xda, 0xe0, 0xd2, 0xd8, 0xd2, 0xdc, 0xce, 0x40, 0xd0, 0xde, 0xde, 0xdc, 0x36, 0x38, 0x17, 0x2e, 0x6c, 0xf0, 0x48, 0xc7, 0x96, 0x0d, 0xef, 0xf6, 0x6c, 0xf0, 0xe2, 0xc7, 0x96, 0x35, 0x38, 0x0f, 0x76, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x1c, 0xbc, 0x8d, 0x22, 0x65, 0x83, 0x25, 0xf6, 0xdb, 0x07, 0xaf, 0xa6, 0x45, 0x69, 0x83, 0x82, 0x34, 0x76, 0xc0, 0x1b, 0x7b, 0x83, 0xd7, 0x60, 0x41, 0xc8, 0xd2, 0x86, 0x07, 0x6f, 0x36, 0x5c, 0x52, 0x6b, 0x3c, 0x3f, 0x48, 0x2a, 0xe0, 0x6c, 0x83, 0x82, 0x34, 0x76, 0x83, 0xb6, 0xcb, 0x3e, 0xd7, 0x60, 0x8d, 0x54, 0xd3, 0x86, 0x1f, 0x6a, 0x36, 0x58, 0x10, 0xb2, 0xb4, 0x86, 0xb7, 0x75, 0x06, 0xbc, 0xb1, 0x37, 0xb8, 0x0d, 0x0f, 0x4a, 0x6e, 0x70, 0x3a, 0x12, 0xd9, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0x34, 0x3f, 0x22, 0xb5, 0x41, 0xe3, 0xe8, 0x51, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0xf8, 0x20, 0xa9, 0x80, 0xb3, 0x0d, 0x96, 0xd8, 0x6f, 0xaf, 0xe1, 0x17, 0x97, 0x0d, 0xda, 0x2b, 0x29, 0x58, 0xc3, 0x1b, 0x77, 0x1b, 0x5e, 0xbe, 0x3b, 0x5c, 0x36, 0xb5, 0x41, 0xb1, 0xa3, 0xb9, 0x86, 0x5f, 0xc9, 0xd6, 0xf0, 0x6f, 0xce, 0x06, 0x0d, 0xa3, 0x9f, 0x1e, 0xb4, 0xab, 0x84, 0xb6, 0x86, 0x7f, 0x73, 0xd6, 0xf0, 0x71, 0xd4, 0x41, 0xc3, 0xe8, 0xa7, 0x07, 0xed, 0x2a, 0xa1, 0xb5, 0x06, 0x2b, 0x5d, 0x9c, 0x36, 0xfc, 0x7e, 0xb3, 0x86, 0x5f, 0x94, 0x36, 0x7c, 0xb9, 0x74, 0xb0, 0xc0, 0x47, 0x78, 0xc3, 0x5b, 0x76, 0x6b, 0x78, 0xe2, 0x6e, 0xc3, 0xb3, 0x78, 0x83, 0x8f, 0x83, 0x87, 0x83, 0xbb, 0x83, 0xbb, 0x83, 0xbf, 0x83, 0xd3, 0x83, 0x82, 0xc1, 0xeb, 0xc1, 0xe1, 0xc1, 0xcf, 0xc1, 0xe5, 0xc1, 0xc3, 0xc1, 0xc9, 0xc1, 0xcb, 0x41, 0xc1, 0xe0, 0xf4, 0xe0, 0xef, 0xa0, 0x60, 0x70, 0x74, 0xf0, 0x77, 0xf0, 0x77, 0x70, 0x77, 0x50, 0x30, 0x68, 0x59, 0x36, 0xfc, 0xe2, 0xb2, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xee, 0x24, 0x7c, 0xd0, 0xec, 0x03, 0x6a, 0x83, 0x82, 0xc1, 0xcd, 0xc1, 0xe5, 0xc1, 0xdf, 0xc1, 0xdb, 0x41, 0xc1, 0xa0, 0x65, 0xd9, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0xb9, 0x93, 0xf0, 0x06, 0xed, 0x2a, 0xa1, 0x55, 0x07, 0xe1, 0xa9, 0xba, 0xc1, 0x89, 0xfd, 0x66, 0x0d, 0xef, 0xf6, 0x6c, 0xf0, 0x8a, 0xd4, 0x95, 0x0d, 0xda, 0xc8, 0xbb, 0x5c, 0xc3, 0x2f, 0x2e, 0x6b, 0xd0, 0x62, 0xd3, 0xe5, 0x41, 0xc3, 0xe8, 0xa7, 0x07, 0x65, 0x9d, 0x67, 0x1b, 0x14, 0x1d, 0xb4, 0x6b, 0xf8, 0xbe, 0x7d, 0xc0, 0x43, 0x7b, 0xa3, 0x37, 0x28, 0xa1, 0x63, 0x0f, 0x42, 0x74, 0x6c, 0x83, 0xa7, 0xc7, 0xc8, 0xac, 0xe1, 0x83, 0x9c, 0x0d, 0x1e, 0xa9, 0x23, 0xb3, 0x86, 0x5f, 0x5c, 0x36, 0x48, 0x0f, 0xe0, 0xdc, 0xe0, 0x7d, 0x31, 0x32, 0x6d, 0x50, 0x90, 0xc6, 0x0e, 0x78, 0x68, 0x6f, 0xf4, 0x1a, 0x9c, 0x0b, 0x17, 0xd6, 0xa0, 0x2d, 0x90, 0x95, 0x0d, 0xbf, 0xb8, 0x6c, 0x78, 0xf0, 0x66, 0x0d, 0x4f, 0xdc, 0x6d, 0x78, 0x16, 0x6f, 0xf0, 0x70, 0x70, 0x79, 0x70, 0x7b, 0xf0, 0x77, 0x50, 0x3d, 0x28, 0x18, 0x5c, 0x1e, 0xbc, 0x1c, 0x7c, 0x1c, 0xfc, 0x1d, 0xbc, 0x1d, 0x1c, 0x1e, 0x3c, 0x1d, 0x9c, 0x1d, 0x3c, 0x1d, 0xdc, 0x1d, 0xfc, 0x1c, 0x14, 0x0c, 0x8e, 0x0e, 0xfe, 0x0e, 0xfe, 0x0e, 0xee, 0x0e, 0x0a, 0x06, 0x2d, 0xcb, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x8b, 0x19, 0x83, 0x37, 0x48, 0x84, 0x0b, 0x3e, 0x68, 0xf6, 0x01, 0xb5, 0xda, 0xe0, 0x5c, 0xb8, 0xb0, 0xc1, 0x23, 0x1d, 0x5b, 0x36, 0xbc, 0xdb, 0xb3, 0xc1, 0x8b, 0x1f, 0x5b, 0xd6, 0xe0, 0x3c, 0xd8, 0xb1, 0xe1, 0xdd, 0x9e, 0x0d, 0xda, 0xdb, 0x0a, 0xdc, 0xe0, 0x7d, 0x31, 0x32, 0x6b, 0xf8, 0xc5, 0xe5, 0xe0, 0x79, 0x2a, 0x32, 0xb5, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xa1, 0xbd, 0xd1, 0xad, 0xc1, 0x82, 0x90, 0xa5, 0x0d, 0x0f, 0xde, 0x6c, 0xb8, 0xa4, 0xd6, 0x78, 0x7e, 0xf0, 0x4a, 0x35, 0x99, 0xda, 0xa0, 0x20, 0x8d, 0x1d, 0xf0, 0xd0, 0xde, 0xc6, 0x35, 0x58, 0x10, 0xb2, 0xb4, 0xc1, 0xfb, 0x62, 0x64, 0x36, 0xfc, 0xe2, 0xb2, 0xc1, 0xb2, 0x00, 0xe0, 0x83, 0xd3, 0x02, 0xcd, 0x06, 0x05, 0x69, 0xec, 0x06, 0xed, 0x8b, 0x50, 0xad, 0xe1, 0x41, 0xc9, 0x0d, 0xcf, 0x4c, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0xf6, 0xb6, 0x02, 0x37, 0x78, 0x5f, 0x8c, 0xcc, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0x25, 0xb5, 0xc6, 0xa1, 0x83, 0x57, 0xaa, 0xc9, 0x74, 0xf0, 0x2c, 0x5e, 0x97, 0x36, 0xfc, 0xe2, 0xb2, 0x41, 0xe3, 0x2f, 0x54, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x43, 0x7b, 0x1b, 0x3b, 0x78, 0xd4, 0x95, 0xcc, 0x06, 0x05, 0x69, 0xec, 0x80, 0x27, 0x17, 0x66, 0xaf, 0xc1, 0xb9, 0x70, 0x61, 0x83, 0xe7, 0xe6, 0xc7, 0x6c, 0x70, 0x2e, 0x5c, 0xd8, 0xe0, 0x91, 0x8e, 0x2d, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0xc5, 0x8f, 0x2d, 0x6b, 0x70, 0x1e, 0xec, 0xd8, 0xf0, 0x6e, 0xcf, 0x06, 0xed, 0x6d, 0x05, 0x6e, 0xf0, 0xbe, 0x18, 0x99, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0xe3, 0x2f, 0x54, 0x07, 0x0f, 0xf0, 0x43, 0xa9, 0x0d, 0x0a, 0xd2, 0xd8, 0x01, 0xcf, 0xee, 0x6d, 0x5c, 0x83, 0x05, 0x21, 0x4b, 0x1b, 0xbc, 0xfd, 0x4e, 0x66, 0xc3, 0x2f, 0x2e, 0x1b, 0x34, 0xfd, 0xd6, 0xb1, 0x86, 0x4b, 0x6a, 0x8d, 0xe7, 0x07, 0xcf, 0x89, 0x45, 0xe9, 0xe0, 0x15, 0x70, 0x32, 0x1b, 0x14, 0xa4, 0xb1, 0x03, 0x1e, 0xdb, 0x1b, 0xb9, 0x06, 0x05, 0x69, 0xec, 0x80, 0x67, 0x97, 0x06, 0xaf, 0xe1, 0x41, 0xc9, 0x0d, 0xcf, 0x4c, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0xf6, 0xb6, 0x02, 0x37, 0x78, 0x5f, 0x8c, 0xcc, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0x25, 0xb5, 0xc6, 0xa1, 0x83, 0xe7, 0xc4, 0xa2, 0x74, 0xf0, 0x2c, 0x5e, 0x97, 0x36, 0x28, 0x48, 0x63, 0x37, 0x58, 0xd8, 0x34, 0xbc, 0x86, 0x07, 0x25, 0x37, 0xdc, 0x51, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xbd, 0xad, 0xc0, 0x0d, 0xde, 0x17, 0x23, 0xb3, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb6, 0xce, 0x80, 0x67, 0x97, 0x06, 0xb7, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x0f, 0x9e, 0xd7, 0xd7, 0x52, 0x1b, 0x2c, 0x08, 0x59, 0x5a, 0xc3, 0xdb, 0x3a, 0x03, 0x9e, 0xdd, 0xdb, 0xd8, 0xc1, 0x82, 0xb6, 0xe1, 0x0d, 0xbf, 0x28, 0x6d, 0xf0, 0x84, 0x06, 0x99, 0x0d, 0xce, 0x83, 0x1d, 0x1b, 0x9c, 0x0b, 0x17, 0xd6, 0xa0, 0x2d, 0x90, 0x95, 0x0d, 0xbf, 0xb8, 0x6c, 0x78, 0x4c, 0xe6, 0xe0, 0x0d, 0x11, 0x32, 0x1b, 0xac, 0x91, 0x6a, 0xda, 0xa0, 0x48, 0xc5, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0xed, 0x6d, 0x05, 0x6e, 0xf0, 0x82, 0x0b, 0x99, 0x0d, 0x1e, 0x89, 0x21, 0xd3, 0x6a, 0xf0, 0x9c, 0x83, 0x8c, 0x0d, 0x4a, 0x16, 0xf6, 0x59, 0x66, 0x0d, 0x86, 0x5c, 0xdc, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0x6d, 0x70, 0xb8, 0x59, 0x18, 0xc0, 0x5b, 0xae, 0x2c, 0xae, 0x2e, 0x4d, 0xae, 0x0c, 0x64, 0xad, 0x8c, 0xcd, 0x2e, 0xcd, 0x6d, 0x6e, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x6d, 0x30, 0x32, 0x97, 0x0e, 0x1e, 0x55, 0x08, 0xb2, 0x86, 0x3f, 0x97, 0x36, 0x68, 0xef, 0x3e, 0xeb, 0xe0, 0x51, 0x85, 0x20, 0x6d, 0xb0, 0x00, 0xb3, 0x69, 0xc0, 0xbb, 0xcb, 0x93, 0xd7, 0xa0, 0x84, 0xc7, 0x5c, 0xc0, 0xbb, 0xcb, 0x93, 0xdb, 0xa0, 0x61, 0xf5, 0xc0, 0x0d, 0xd6, 0xad, 0x32, 0xcd, 0x1a, 0x3e, 0x77, 0xd9, 0xe0, 0x39, 0x07, 0x19, 0x1b, 0xde, 0xd6, 0x39, 0x78, 0xfe, 0xa9, 0xcc, 0x86, 0xb7, 0xec, 0xd6, 0xe0, 0x9c, 0xbf, 0xb4, 0xc1, 0xaa, 0x06, 0xe1, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x53, 0x3d, 0x84, 0x07, 0x65, 0x99, 0xe7, 0x06, 0x47, 0xd7, 0xc1, 0x35, 0x7c, 0x62, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0x87, 0x07, 0xaf, 0x0f, 0x9e, 0x7f, 0x2a, 0xb3, 0xe1, 0x89, 0xbb, 0x0d, 0xcf, 0xe2, 0x0d, 0x5a, 0x36, 0x78, 0xba, 0x55, 0xcb, 0xa0, 0x60, 0xd0, 0xb2, 0x6c, 0xf8, 0xc5, 0xe5, 0xa0, 0x9d, 0x13, 0xef, 0x41, 0xc1, 0xe0, 0xf2, 0xe0, 0xe5, 0xe0, 0xf1, 0xe0, 0xf5, 0xe0, 0xe9, 0xe0, 0xf2, 0xe0, 0xe5, 0xe0, 0xe4, 0xa0, 0xbb, 0x35, 0x28, 0xe1, 0x31, 0x17, 0x3c, 0x3e, 0x78, 0x1a, 0xac, 0xcc, 0x1a, 0x9e, 0xb8, 0xdb, 0xf0, 0x2c, 0xde, 0xe0, 0xf2, 0xe0, 0xf5, 0xe0, 0xee, 0xe0, 0xf4, 0xe0, 0xe9, 0xe0, 0xed, 0xe0, 0xe5, 0xa0, 0x60, 0xf0, 0x76, 0xf0, 0x74, 0xf0, 0x79, 0xf0, 0x79, 0xf0, 0x74, 0x70, 0x77, 0xf0, 0x73, 0x50, 0x30, 0xf8, 0x3c, 0x78, 0x3d, 0x38, 0x3c, 0x38, 0x3c, 0xf8, 0x3b, 0xb8, 0x7c, 0x70, 0xa0, 0xe9, 0xdb, 0xf0, 0xc4, 0xdd, 0x86, 0x67, 0xf1, 0x06, 0x97, 0x07, 0xaf, 0x07, 0x77, 0x07, 0xa7, 0x07, 0x4f, 0x07, 0x6f, 0x07, 0x2f, 0x07, 0x05, 0x83, 0xbf, 0x83, 0xbb, 0x83, 0xb3, 0x83, 0xe7, 0x83, 0x82, 0xc1, 0xe7, 0xc1, 0xeb, 0xc1, 0xe1, 0xc1, 0xe1, 0xc1, 0xdf, 0xc1, 0xe5, 0xc1, 0xe9, 0xc1, 0xe7, 0x41, 0xc1, 0xa0, 0x65, 0xd9, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x31, 0x63, 0xf0, 0x06, 0x89, 0x70, 0xc1, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xfa, 0xe0, 0x71, 0xb7, 0x32, 0x55, 0x1b, 0x9c, 0x0b, 0x17, 0xd6, 0x90, 0xc7, 0xde, 0xf0, 0x23, 0xcc, 0xe0, 0x74, 0x00, 0x4f, 0x61, 0x72, 0x76, 0x6f, 0x3a, 0x20, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0xe4, 0x06, 0xe7, 0xc2, 0x85, 0x35, 0xe4, 0xb1, 0x37, 0xfc, 0x08, 0x33, 0x38, 0x7d, 0xf0, 0x9c, 0x83, 0x8c, 0x83, 0xf0, 0x54, 0xdd, 0xf0, 0x15, 0xce, 0x86, 0xbf, 0x68, 0xd6, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0x9b, 0x30, 0xd7, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0xbd, 0xe9, 0x37, 0x78, 0x96, 0x42, 0xc8, 0x06, 0xe7, 0x3b, 0xc2, 0xda, 0xa0, 0x84, 0xc7, 0xdc, 0xa0, 0x5d, 0x05, 0xad, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x0a, 0xd2, 0xd8, 0x0d, 0xd6, 0x1b, 0xd9, 0xae, 0xe1, 0x2b, 0x9c, 0x0d, 0x7f, 0xd1, 0xac, 0x41, 0xe8, 0x97, 0x6c, 0xb0, 0x0a, 0x32, 0x79, 0x83, 0x32, 0x4b, 0x77, 0x83, 0x67, 0x29, 0x84, 0xb4, 0x41, 0x09, 0x8f, 0xb9, 0x41, 0xe2, 0x46, 0xed, 0x1a, 0x2c, 0x73, 0x92, 0xdd, 0xf0, 0xb6, 0xce, 0xe0, 0xe9, 0x41, 0xbb, 0x0a, 0x5a, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x63, 0x0b, 0x63, 0x0f, 0xde, 0xbb, 0x2d, 0xb3, 0xe1, 0x6d, 0x9d, 0x01, 0x8f, 0x2d, 0x8c, 0x3d, 0x78, 0x26, 0x6f, 0xca, 0x1a, 0xac, 0x02, 0x93, 0xdd, 0xf0, 0xb6, 0xce, 0x06, 0x8d, 0xfe, 0x11, 0x1e, 0x3c, 0x93, 0x37, 0x65, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x3b, 0x78, 0x96, 0x6f, 0xca, 0x06, 0x41, 0x7a, 0xba, 0xc1, 0xaa, 0x88, 0xdf, 0x35, 0x08, 0x23, 0xa0, 0x0d, 0x8e, 0xe1, 0x06, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0xdb, 0x3a, 0x83, 0xc3, 0x07, 0x0b, 0xaf, 0x6c, 0x0f, 0xca, 0x3a, 0xcf, 0x35, 0x08, 0xd8, 0xa0, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x8b, 0xdf, 0x0d, 0x9e, 0x65, 0x2e, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x68, 0xf4, 0x8f, 0xf0, 0xe0, 0xbd, 0xdb, 0x32, 0xad, 0xc1, 0x31, 0xdc, 0x60, 0xc3, 0x2f, 0x2e, 0x1b, 0x3c, 0x6a, 0x5b, 0x66, 0x0d, 0x8e, 0xe1, 0x06, 0x07, 0xcf, 0x32, 0x97, 0x69, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x76, 0x15, 0xb4, 0x36, 0xbc, 0xad, 0x33, 0x38, 0x7d, 0xd0, 0xae, 0x82, 0x56, 0xad, 0x06, 0x6b, 0x1e, 0xe7, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x83, 0xc5, 0xa6, 0x75, 0x03, 0xf0, 0xb8, 0x56, 0xc6, 0x66, 0x97, 0xe6, 0x06, 0x32, 0x47, 0x17, 0x36, 0xb6, 0x06, 0x62, 0xf6, 0x26, 0x07, 0x62, 0x17, 0xc6, 0x96, 0x46, 0x96, 0x46, 0x97, 0xb7, 0xe1, 0x17, 0xa5, 0x0d, 0x1e, 0x65, 0x1e, 0xb3, 0xe1, 0x2f, 0x9a, 0x0d, 0x1f, 0xac, 0x6e, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0x6c, 0x50, 0x50, 0x64, 0x1e, 0xb4, 0x91, 0x77, 0xb9, 0x41, 0x91, 0xd3, 0xba, 0x41, 0xd1, 0x41, 0xbb, 0x86, 0xef, 0xdb, 0x07, 0x3c, 0xb6, 0xb0, 0x79, 0x83, 0x12, 0x3a, 0x76, 0x83, 0x67, 0x29, 0x84, 0x1c, 0x84, 0xe9, 0xd8, 0x06, 0xcd, 0xe7, 0x5d, 0x6e, 0xd0, 0x46, 0xde, 0xe5, 0x86, 0xaf, 0x70, 0x36, 0xfc, 0x45, 0xb3, 0xe1, 0x83, 0xd5, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x9a, 0xcf, 0xbb, 0xdc, 0xa0, 0xc8, 0x69, 0xdd, 0xf0, 0x08, 0xeb, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x0d, 0x5b, 0x69, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0xe8, 0x1f, 0xe1, 0xc1, 0x0b, 0xe3, 0x5a, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x8d, 0xfe, 0x11, 0x0e, 0x9e, 0x1e, 0x34, 0x9f, 0x77, 0xd9, 0x1a, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0xbc, 0x30, 0xae, 0x65, 0xc3, 0xdb, 0x3a, 0x07, 0x6f, 0x2f, 0x98, 0x59, 0x83, 0xe6, 0xf3, 0x2e, 0x37, 0xbc, 0xad, 0x33, 0x38, 0x7d, 0xd0, 0x7c, 0xde, 0x65, 0x1d, 0x4e, 0xb1, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x5b, 0x83, 0xc7, 0x97, 0xa8, 0x6c, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x3c, 0xbe, 0x44, 0xa5, 0x01, 0xbc, 0xe7, 0xf2, 0xda, 0xc4, 0xde, 0xd8, 0x40, 0xde, 0xe4, 0x40, 0xca, 0xda, 0xe0, 0xe8, 0xf2, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0x01, 0x8c, 0xbf, 0xe1, 0x2f, 0x9a, 0x0d, 0xce, 0x9b, 0xa7, 0x1b, 0x14, 0x3b, 0x9a, 0x6b, 0x78, 0x84, 0x75, 0x83, 0x72, 0x29, 0x7f, 0x0d, 0xef, 0xf6, 0x6c, 0xf0, 0xf2, 0x37, 0x94, 0xc3, 0x43, 0x3f, 0x6d, 0x90, 0x94, 0x16, 0x7c, 0x78, 0x5a, 0xe7, 0x70, 0x8a, 0x2d, 0xc0, 0x5b, 0xe6, 0xd6, 0xf2, 0xd6, 0x56, 0xe6, 0x6e, 0xf8, 0x45, 0x69, 0x83, 0xb7, 0x68, 0x8b, 0x6c, 0xf8, 0x8b, 0x66, 0x83, 0x33, 0x12, 0xea, 0x06, 0x4b, 0xaa, 0x93, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0xe0, 0x71, 0xaf, 0x30, 0x1d, 0x3c, 0xa9, 0x29, 0x65, 0x83, 0x82, 0x60, 0x76, 0x83, 0x15, 0x53, 0x70, 0x1b, 0x2c, 0x8b, 0x82, 0xdb, 0xa0, 0x2c, 0x79, 0xdf, 0x60, 0xc5, 0x9a, 0xde, 0x06, 0x0b, 0x4f, 0xcf, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0x4b, 0xee, 0x56, 0xd7, 0x20, 0x29, 0x2d, 0x78, 0x83, 0x75, 0xd9, 0x75, 0x1b, 0xde, 0xd6, 0xd9, 0xa0, 0x45, 0x1c, 0xab, 0x83, 0x15, 0x53, 0x70, 0x6b, 0x90, 0x94, 0x16, 0xbc, 0xc1, 0xba, 0xec, 0xba, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x63, 0x61, 0xf2, 0xc1, 0x8a, 0x29, 0xb8, 0x83, 0xb2, 0xce, 0xb3, 0xc3, 0x29, 0xd6, 0xe1, 0x14, 0xdb, 0x70, 0x22, 0x6c, 0xf0, 0x18, 0xcc, 0x93, 0x35, 0x9c, 0x23, 0x07, 0xef, 0x61, 0x20, 0x39, 0x78, 0x1a, 0xe7, 0xc9, 0x86, 0x13, 0x61, 0x83, 0x57, 0x5f, 0x9e, 0x6c, 0xb0, 0x98, 0x0d, 0xea, 0xe0, 0xa1, 0xc4, 0x27, 0x1b, 0x4e, 0x84, 0x0d, 0x1e, 0x6d, 0x79, 0xb2, 0x86, 0x73, 0xe4, 0xe0, 0x65, 0x0f, 0x25, 0xcb, 0x2c, 0x1b, 0x3e, 0xb1, 0x59, 0x0d, 0x9f, 0xbb, 0x6c, 0xb0, 0x90, 0xfc, 0x77, 0x83, 0x52, 0x42, 0x7c, 0x35, 0x28, 0x25, 0xc4, 0x37, 0x58, 0x41, 0xa6, 0xbf, 0xe1, 0x41, 0xc9, 0x0d, 0x96, 0x1f, 0x6f, 0x1f, 0x3c, 0x12, 0x43, 0x66, 0x83, 0x52, 0x42, 0x7c, 0x83, 0x15, 0x64, 0xfa, 0x1b, 0x1e, 0x94, 0xdc, 0x60, 0xf9, 0xf1, 0xf6, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x0b, 0x29, 0x6c, 0xf0, 0x3e, 0xfc, 0x96, 0x0e, 0x1e, 0x2d, 0x3c, 0xb1, 0x86, 0xcf, 0x5d, 0x36, 0x58, 0xc4, 0x4f, 0xbb, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x25, 0xc4, 0x37, 0x58, 0x41, 0xa6, 0xbf, 0xe1, 0xdd, 0x9e, 0x0d, 0x42, 0xca, 0x64, 0x0d, 0x1f, 0xb5, 0x1f, 0x3c, 0xbe, 0xfa, 0xa4, 0x83, 0xd6, 0x78, 0x08, 0x36, 0x7c, 0xee, 0xb2, 0xc1, 0x48, 0x60, 0xd8, 0xf0, 0x6e, 0xcf, 0x06, 0x4f, 0xbd, 0x99, 0x39, 0x68, 0x51, 0x88, 0xe0, 0x60, 0x25, 0x9d, 0xfe, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x87, 0xf3, 0xf8, 0xa0, 0xed, 0x80, 0x8b, 0x0d, 0x27, 0xc2, 0x06, 0x4f, 0xa2, 0x3c, 0x39, 0x68, 0x8b, 0xe1, 0xe2, 0xa0, 0xf9, 0x86, 0x8b, 0x83, 0xe7, 0x5d, 0x9e, 0x6c, 0x38, 0x11, 0x36, 0x78, 0x01, 0xad, 0xc9, 0x06, 0x8b, 0xd9, 0xa0, 0x96, 0x59, 0x83, 0x67, 0x6a, 0xa3, 0x6c, 0xb0, 0xd2, 0xc5, 0x69, 0x83, 0xc0, 0x14, 0xda, 0x20, 0xb1, 0xa5, 0x6a, 0x83, 0x95, 0x2e, 0x4e, 0x1b, 0x3c, 0x9b, 0x59, 0x65, 0x83, 0x73, 0x66, 0xd2, 0xc1, 0x83, 0xb6, 0x51, 0x56, 0x83, 0xe7, 0xbd, 0x61, 0x6c, 0xb0, 0xd2, 0xc5, 0x69, 0x83, 0xc0, 0x14, 0xda, 0x20, 0xb1, 0xa5, 0x6a, 0x83, 0x95, 0x2e, 0x4e, 0x1b, 0x3c, 0x9b, 0x59, 0x65, 0x83, 0x73, 0x66, 0xd2, 0xc1, 0xe3, 0xee, 0x51, 0x56, 0x83, 0x65, 0xf7, 0x51, 0x1b, 0xac, 0x74, 0x71, 0xda, 0x20, 0x30, 0x85, 0x36, 0x48, 0x6c, 0xa9, 0xda, 0x60, 0xa5, 0x8b, 0xd3, 0x06, 0xcf, 0x66, 0x56, 0xd9, 0xe0, 0x9c, 0x99, 0x74, 0xf0, 0xc2, 0xab, 0x94, 0xd5, 0xa0, 0x85, 0x7e, 0xd2, 0x0d, 0x56, 0xba, 0x38, 0x6d, 0x10, 0x98, 0x42, 0x1b, 0x24, 0xb6, 0x54, 0x6d, 0xb0, 0xd2, 0xc5, 0x69, 0x83, 0x67, 0x33, 0xab, 0x6c, 0x70, 0xce, 0x4c, 0x3a, 0x78, 0xb4, 0x60, 0xca, 0x6a, 0xf0, 0x1e, 0xcf, 0x94, 0x0d, 0x56, 0xba, 0x38, 0x6d, 0x10, 0x98, 0x42, 0x1b, 0x24, 0xb6, 0x54, 0x6d, 0xb0, 0xd2, 0xc5, 0x69, 0x83, 0x67, 0x33, 0xab, 0x6c, 0x70, 0xce, 0x4c, 0x3a, 0x78, 0x4d, 0x69, 0xca, 0xe1, 0x14, 0x6b, 0x0d, 0x96, 0xe9, 0x52, 0x6d, 0xb0, 0xd2, 0xc5, 0x69, 0x83, 0xc0, 0x14, 0xda, 0x20, 0xb1, 0xa5, 0x6a, 0x83, 0x95, 0x2e, 0x4e, 0x1b, 0x3c, 0x9b, 0x59, 0x65, 0x83, 0x73, 0x66, 0xd2, 0xc1, 0x33, 0x63, 0x53, 0x0e, 0xa7, 0xd8, 0x1a, 0xb4, 0x62, 0x35, 0xbb, 0xc1, 0x4a, 0x17, 0xa7, 0x0d, 0x02, 0x53, 0x68, 0x83, 0xc4, 0x96, 0xaa, 0x0d, 0x56, 0xba, 0x38, 0x6d, 0xf0, 0x6c, 0x66, 0x95, 0x0d, 0xce, 0x99, 0x49, 0x07, 0x6f, 0x64, 0x4e, 0x99, 0x35, 0xbc, 0x75, 0xbf, 0xc1, 0x4a, 0x17, 0xa7, 0x0d, 0x02, 0x53, 0x68, 0x83, 0xc4, 0x96, 0xaa, 0x0d, 0x56, 0xba, 0x38, 0x6d, 0xf0, 0x6c, 0x66, 0x95, 0x0d, 0xce, 0x99, 0x49, 0x07, 0xaf, 0x78, 0x4f, 0x39, 0x9c, 0x62, 0x6b, 0xd0, 0x2a, 0x90, 0xcb, 0x06, 0x2b, 0x5d, 0x9c, 0x36, 0x08, 0x4c, 0xa1, 0x0d, 0x12, 0x5b, 0xaa, 0x36, 0x58, 0xe9, 0xe2, 0xb4, 0xc1, 0xb3, 0x99, 0x55, 0x36, 0x38, 0x67, 0x26, 0x1d, 0x3c, 0x85, 0x4e, 0x65, 0x35, 0x78, 0x0d, 0xaa, 0xca, 0x06, 0x2b, 0x5d, 0x9c, 0x36, 0x08, 0x4c, 0xa1, 0x0d, 0x12, 0x5b, 0xaa, 0x36, 0x58, 0xe9, 0xe2, 0xb4, 0xc1, 0xb3, 0x99, 0x55, 0x36, 0x38, 0x67, 0x26, 0x1d, 0xbc, 0x1b, 0x55, 0x65, 0xd6, 0xa0, 0x49, 0x2c, 0xed, 0x0d, 0x56, 0xba, 0x38, 0x6d, 0x10, 0x98, 0x42, 0x1b, 0x24, 0xb6, 0x54, 0x6d, 0xb0, 0xd2, 0xc5, 0x69, 0x83, 0x67, 0x33, 0xab, 0x6c, 0x70, 0xce, 0x4c, 0x3a, 0x78, 0xb1, 0xb0, 0xca, 0xe1, 0x14, 0x5b, 0x83, 0xe3, 0xa1, 0xe9, 0x06, 0x2b, 0x5d, 0x9c, 0x36, 0x08, 0x4c, 0xa1, 0x0d, 0x12, 0x5b, 0xaa, 0x36, 0x58, 0xe9, 0xe2, 0xb4, 0xc1, 0xb3, 0x99, 0x55, 0x36, 0x38, 0x67, 0x26, 0x1d, 0xbc, 0xf3, 0x5a, 0x65, 0xd6, 0xa0, 0xcd, 0x1d, 0xaa, 0x0d, 0x56, 0xba, 0x38, 0x6d, 0x10, 0x98, 0x42, 0x1b, 0x24, 0xb6, 0x54, 0x6d, 0xb0, 0xd2, 0xc5, 0x69, 0x83, 0x67, 0x33, 0xab, 0x6c, 0x70, 0xce, 0x4c, 0x3a, 0x78, 0xf9, 0x12, 0xcb, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x1b, 0x4e, 0x84, 0x35, 0x4c, 0xdc, 0x1a, 0xe6, 0x7e, 0x83, 0x17, 0x3a, 0x7e, 0x6c, 0xa8, 0x23, 0x1b, 0xbc, 0x9b, 0xc9, 0xe4, 0xe0, 0x81, 0x4f, 0x26, 0x07, 0xaf, 0x7f, 0x35, 0xd9, 0x60, 0x31, 0x1b, 0xd4, 0x32, 0xcb, 0xc1, 0x33, 0xf1, 0x53, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0xdb, 0x70, 0x22, 0x6c, 0xf0, 0xa6, 0x1e, 0x93, 0x35, 0x9c, 0x23, 0x07, 0x2f, 0x7c, 0x30, 0x59, 0x66, 0xd9, 0xf0, 0x89, 0xcd, 0xaa, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x25, 0xc4, 0x37, 0x58, 0x41, 0xa6, 0xbf, 0xe1, 0x6d, 0x9d, 0x83, 0x86, 0xaf, 0xc7, 0x0f, 0x0e, 0x9a, 0x87, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x27, 0x1c, 0xce, 0x6c, 0x68, 0xa8, 0xd3, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x04, 0x1b, 0x63, 0x83, 0x85, 0x30, 0xfb, 0x6d, 0xd0, 0x40, 0x5c, 0xc1, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x6d, 0xa7, 0xe0, 0xa0, 0x45, 0x21, 0x82, 0x83, 0x95, 0x74, 0xfa, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x1d, 0x3c, 0xc2, 0x70, 0xe6, 0xe0, 0x8d, 0x76, 0x26, 0xab, 0x61, 0xe2, 0xd6, 0x50, 0x47, 0xd6, 0x30, 0x43, 0x6b, 0x98, 0xb8, 0x35, 0xcc, 0xfd, 0xe0, 0xe1, 0x61, 0x3a, 0x0f, 0x1e, 0x83, 0x79, 0xb2, 0xe1, 0x44, 0xd8, 0xe0, 0x0d, 0x92, 0x33, 0x1b, 0x2c, 0x66, 0x83, 0x5a, 0x66, 0x39, 0x78, 0x65, 0xc4, 0xcc, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x07, 0xaf, 0x8c, 0x98, 0x39, 0x78, 0xa3, 0x9d, 0xc9, 0xe1, 0x14, 0xeb, 0xe0, 0x2d, 0x64, 0x26, 0x07, 0x21, 0x00, 0x7e, 0x1c, 0x3a, 0x0e, 0x1d, 0xbc, 0x23, 0xc4, 0x64, 0xd8, 0x85, 0xdb, 0xe0, 0xb5, 0x9e, 0x1d, 0x87, 0x46, 0x82, 0x0b, 0xbf, 0xf1, 0x78, 0xf8, 0x8d, 0xc7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbb, 0xc1, 0x53, 0xeb, 0x4b, 0xd6, 0x10, 0xc3, 0x0d, 0x5e, 0x12, 0x60, 0xb2, 0xc1, 0x6b, 0x3d, 0x3b, 0x36, 0x78, 0xde, 0x88, 0xc9, 0x82, 0x60, 0x83, 0xd7, 0x77, 0x98, 0x1c, 0x3c, 0xc4, 0x33, 0xe3, 0x10, 0xcd, 0x43, 0x0c, 0x87, 0xdd, 0x60, 0xd4, 0x4b, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x51, 0xf1, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x6b, 0x77, 0x90, 0x80, 0x07, 0x72, 0x1c, 0x1a, 0x64, 0x6b, 0xd0, 0x16, 0xc8, 0xca, 0x86, 0x18, 0x0e, 0x82, 0x0d, 0x1a, 0x16, 0x59, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0xe4, 0xc9, 0xca, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x8b, 0x1b, 0x26, 0x6e, 0x83, 0x57, 0xab, 0x98, 0x6c, 0x98, 0xb8, 0x35, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0xcd, 0x41, 0xc3, 0x3e, 0x97, 0x1b, 0x26, 0x6e, 0x83, 0x07, 0xd7, 0x98, 0x6c, 0x98, 0xb8, 0x0d, 0x1e, 0x15, 0x39, 0x73, 0xf0, 0x16, 0x32, 0x93, 0x83, 0x10, 0x00, 0x3f, 0x0e, 0x1d, 0x87, 0x0e, 0x5e, 0x27, 0x3a, 0x33, 0xec, 0xc2, 0x6d, 0xf0, 0x98, 0xae, 0x8e, 0x43, 0x23, 0xc1, 0x85, 0xdd, 0x20, 0x18, 0xf6, 0x17, 0x04, 0x1b, 0x8c, 0x9f, 0xae, 0x41, 0xb0, 0xc1, 0xb8, 0x30, 0x1b, 0x7e, 0xe3, 0xf1, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x64, 0x6b, 0xc8, 0x63, 0x2f, 0x0e, 0x82, 0x0d, 0x1e, 0x48, 0x0b, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0x41, 0xb2, 0x81, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x17, 0x37, 0x4c, 0xdc, 0x1a, 0xea, 0xf8, 0x86, 0x97, 0xef, 0xe6, 0xe0, 0x49, 0x5d, 0x1d, 0x1b, 0x26, 0x6e, 0x0d, 0xc5, 0x74, 0x0d, 0x9e, 0x08, 0x5a, 0x72, 0xf0, 0x5e, 0xd2, 0x92, 0x0d, 0x13, 0xb7, 0x86, 0xb9, 0x1f, 0x3c, 0x3d, 0x78, 0xa3, 0x9d, 0xc9, 0x86, 0xb9, 0x1f, 0x9c, 0xde, 0x50, 0x47, 0xd6, 0x30, 0x43, 0x6b, 0x98, 0xb8, 0x0d, 0xd3, 0xb9, 0x61, 0x86, 0xd6, 0x30, 0x71, 0x6b, 0x28, 0xa6, 0x6b, 0xf0, 0xe0, 0x0d, 0x8c, 0x83, 0x97, 0x4b, 0x8d, 0x6c, 0x98, 0xfb, 0x0d, 0xc2, 0x15, 0xe1, 0xe0, 0xed, 0x76, 0x26, 0x87, 0xf3, 0xf8, 0xa0, 0xd9, 0x4b, 0x88, 0x0d, 0x27, 0xc2, 0x06, 0x6f, 0x07, 0x9e, 0x39, 0x68, 0xd5, 0x15, 0xe2, 0xa0, 0x21, 0x58, 0x88, 0x83, 0x47, 0x45, 0xce, 0x0c, 0xbf, 0xf1, 0x7c, 0x83, 0xc7, 0x74, 0x75, 0x6c, 0x88, 0xff, 0x20, 0x58, 0x90, 0x0c, 0xdc, 0x6f, 0x07, 0xc3, 0x3f, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x1b, 0x34, 0x6e, 0x1a, 0x70, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0xc3, 0x6e, 0xe8, 0x38, 0x72, 0x68, 0xb8, 0x39, 0xfc, 0x06, 0x8d, 0x64, 0x3d, 0x0d, 0xbf, 0xc1, 0x60, 0x07, 0x18, 0x04, 0x0b, 0xbb, 0xb0, 0x0b, 0xbb, 0x41, 0xf1, 0x5b, 0x70, 0x58, 0xdf, 0x5c, 0xd8, 0x85, 0xdd, 0x60, 0xd4, 0x4b, 0x1e, 0xd6, 0x37, 0x17, 0x76, 0x61, 0x17, 0x76, 0xe1, 0x16, 0x0f, 0x5e, 0x9c, 0xa5, 0x72, 0x90, 0x18, 0x9f, 0x71, 0x58, 0xdf, 0xdc, 0x10, 0xc3, 0x61, 0x17, 0x76, 0xe1, 0x36, 0x18, 0xf8, 0xc6, 0x13, 0x2c, 0xfb, 0x1f, 0xd6, 0x37, 0x0f, 0xe9, 0xdc, 0x43, 0x3a, 0xf7, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0x35, 0xc4, 0x70, 0x41, 0xb0, 0x20, 0x19, 0xb4, 0x1c, 0x9c, 0xbd, 0x8c, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x41, 0xb0, 0x20, 0x19, 0x50, 0xaa, 0xf7, 0x1d, 0x9c, 0xf3, 0x8e, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x13, 0x74, 0xfb, 0x3f, 0x0e, 0x1d, 0xa4, 0x55, 0x47, 0x1f, 0xb4, 0x5d, 0xa2, 0x7f, 0x1c, 0xda, 0xe0, 0x31, 0x5d, 0x1d, 0x1b, 0xbc, 0xbc, 0x7a, 0x66, 0x61, 0x17, 0x6e, 0xf1, 0xe0, 0x69, 0x62, 0x2a, 0x07, 0x89, 0xf1, 0x19, 0x6b, 0x90, 0x18, 0x9f, 0x31, 0x08, 0x16, 0x24, 0x03, 0xf7, 0xdb, 0xc1, 0x70, 0x94, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x4e, 0xb0, 0xbe, 0x7f, 0x1c, 0x1a, 0x04, 0x1b, 0x3c, 0x4a, 0x7c, 0xe6, 0xa0, 0x51, 0x68, 0x93, 0x43, 0xb2, 0xe3, 0x10, 0xc3, 0x61, 0x37, 0x18, 0xf5, 0x92, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0xff, 0x0e, 0x82, 0x9c, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x55, 0xb3, 0x61, 0xaf, 0x70, 0x43, 0xea, 0xe0, 0x60, 0x0c, 0x2c, 0x1c, 0x87, 0x06, 0xd9, 0x1a, 0xb4, 0x05, 0xb2, 0xb2, 0x21, 0x86, 0x83, 0x60, 0x41, 0x32, 0x90, 0xfe, 0x39, 0x38, 0x7b, 0x19, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0xe1, 0x39, 0x38, 0x7b, 0x19, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0xb8, 0x61, 0xe2, 0x36, 0x78, 0xb5, 0x8a, 0xc9, 0x86, 0x89, 0xdb, 0xe0, 0xe5, 0xba, 0x33, 0x1b, 0x26, 0x6e, 0x83, 0x76, 0xbd, 0x2a, 0x36, 0x4c, 0xdc, 0x1a, 0x2c, 0x68, 0x98, 0xda, 0xe0, 0x51, 0x91, 0x33, 0xab, 0x61, 0xe2, 0xd6, 0x50, 0xc7, 0x37, 0xbc, 0x7c, 0x37, 0x07, 0x4f, 0x13, 0x53, 0x39, 0x78, 0x54, 0xe4, 0xcc, 0xe1, 0x14, 0xeb, 0xe0, 0xa1, 0xbc, 0x33, 0x07, 0x21, 0x00, 0x7e, 0x1c, 0x3a, 0x0e, 0x1d, 0xbc, 0xe9, 0x7c, 0x66, 0x90, 0xad, 0x21, 0x8f, 0x3d, 0x1e, 0xbc, 0xd9, 0x47, 0xe5, 0x70, 0x8a, 0x0d, 0xb2, 0x35, 0xb4, 0x5f, 0x1f, 0x6e, 0x83, 0xf7, 0x92, 0x75, 0x1c, 0x1a, 0x09, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x81, 0x72, 0x7f, 0xb0, 0xd0, 0xfe, 0x66, 0x10, 0x2d, 0x48, 0x0f, 0x46, 0x66, 0xef, 0xf1, 0x78, 0x90, 0xad, 0x41, 0x5b, 0x20, 0x2b, 0x1b, 0x62, 0x38, 0x08, 0x36, 0x68, 0x58, 0x64, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x93, 0x27, 0x2b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x2f, 0x6e, 0xa8, 0xe3, 0x1b, 0x5e, 0xbe, 0x3b, 0x78, 0x0f, 0x7e, 0xc9, 0x41, 0x08, 0x80, 0x1f, 0x87, 0x8e, 0x43, 0x07, 0x6f, 0xce, 0x2f, 0x39, 0x1e, 0x2f, 0xfc, 0xc6, 0xe3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0xc5, 0x99, 0x83, 0xb7, 0xda, 0x71, 0x2c, 0x0e, 0x82, 0x85, 0xdd, 0x60, 0x14, 0xf4, 0x2e, 0xec, 0xc2, 0x6d, 0x68, 0x25, 0x3e, 0x08, 0x16, 0x24, 0x03, 0x6d, 0x9d, 0x0e, 0x8e, 0x59, 0xc5, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0x62, 0xd1, 0xa1, 0x71, 0xd1, 0x71, 0x68, 0x05, 0xc1, 0x82, 0x64, 0xa0, 0xaf, 0xd3, 0xc1, 0x31, 0xab, 0xf8, 0xe0, 0x45, 0x0d, 0x34, 0x83, 0x60, 0x41, 0x32, 0xf0, 0xbe, 0xd3, 0xc1, 0x31, 0xab, 0xf8, 0xe0, 0x45, 0x0d, 0x34, 0x1b, 0x3a, 0xa9, 0x1d, 0x62, 0x78, 0xe8, 0xa4, 0x36, 0xec, 0x06, 0x0b, 0x60, 0x7d, 0x16, 0x04, 0x0b, 0xbf, 0xc1, 0xc1, 0x19, 0xfd, 0xe0, 0xb4, 0x82, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x10, 0xff, 0x0d, 0x2d, 0x80, 0x36, 0x8c, 0xcb, 0xa1, 0xd1, 0xd1, 0x71, 0x68, 0xf8, 0x05, 0xd1, 0xc2, 0x0c, 0x82, 0x05, 0xc9, 0xc0, 0xb9, 0x76, 0x30, 0x0c, 0x7d, 0x0e, 0x86, 0xb1, 0xc3, 0xf1, 0x78, 0x10, 0x2c, 0x08, 0x16, 0x04, 0x1b, 0xb4, 0x61, 0x2b, 0x30, 0x48, 0x06, 0x8a, 0xdf, 0xc1, 0x8b, 0x84, 0x4b, 0x0e, 0x86, 0xb1, 0xc3, 0xb0, 0x1b, 0x8c, 0x7a, 0xc9, 0x0d, 0x31, 0x1c, 0x04, 0x0b, 0xbf, 0xf0, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0x03, 0xb7, 0x7c, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x0d, 0x4a, 0x4e, 0x89, 0x83, 0x10, 0x00, 0x3f, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x58, 0x82, 0x3b, 0x36, 0xfc, 0xc6, 0xf3, 0x83, 0xf6, 0xca, 0x44, 0x8e, 0x43, 0x07, 0xe5, 0x50, 0xd2, 0xc1, 0x39, 0xf8, 0x7b, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x83, 0x47, 0x5b, 0xd0, 0x1c, 0x87, 0x8e, 0xc7, 0x2b, 0xfc, 0xc6, 0xe3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x46, 0xfe, 0xc3, 0xe2, 0x20, 0x5b, 0x43, 0x1e, 0x7b, 0x3c, 0x78, 0x20, 0xad, 0xca, 0x20, 0x58, 0xd8, 0x0d, 0x9e, 0x5a, 0x5f, 0xb2, 0x86, 0x18, 0x6e, 0x90, 0xa2, 0x7d, 0xbd, 0x78, 0xf0, 0x08, 0x5d, 0x95, 0x0d, 0x8d, 0x04, 0x37, 0x44, 0xf3, 0xe0, 0x4d, 0x35, 0x14, 0x87, 0x18, 0x0e, 0xbb, 0xc1, 0xa8, 0x97, 0x5c, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe1, 0x37, 0x78, 0x97, 0x48, 0xc4, 0x41, 0x23, 0xdd, 0xf6, 0x87, 0x46, 0x2d, 0x83, 0x6c, 0x0d, 0xda, 0x02, 0x59, 0xd9, 0x10, 0xc3, 0x41, 0xb0, 0x41, 0xc3, 0x22, 0x2b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x9a, 0x3c, 0x59, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x71, 0xc3, 0xc4, 0xad, 0xa1, 0x8e, 0xac, 0x61, 0x86, 0xd6, 0x30, 0xf7, 0x83, 0xdb, 0x1b, 0x66, 0x68, 0x0d, 0x13, 0xb7, 0x86, 0xb9, 0xdf, 0xe0, 0xe5, 0x18, 0x20, 0x1b, 0xea, 0xc8, 0x06, 0xef, 0x43, 0x3a, 0x39, 0x78, 0xc8, 0xd2, 0xc9, 0xc1, 0xeb, 0x5f, 0x4d, 0x36, 0x9c, 0x08, 0x1b, 0x3c, 0x28, 0x87, 0x66, 0x83, 0xc5, 0x6c, 0x50, 0xcb, 0x2c, 0x07, 0x4f, 0x8f, 0x55, 0x39, 0x9c, 0x62, 0x87, 0x53, 0x6c, 0xc3, 0x89, 0xb0, 0xc1, 0xa3, 0x70, 0x68, 0xd6, 0x70, 0x8e, 0x1c, 0x62, 0xb8, 0xcc, 0xb2, 0xe1, 0xeb, 0x97, 0x0d, 0xde, 0x08, 0xe5, 0x70, 0x50, 0x50, 0x64, 0x1e, 0x4e, 0xb1, 0xc3, 0x29, 0x76, 0xf0, 0xaa, 0x20, 0x9a, 0x0d, 0x13, 0xb7, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x39, 0x78, 0x84, 0xae, 0xca, 0x86, 0x89, 0x5b, 0x43, 0x1d, 0x59, 0xc3, 0x0c, 0x6d, 0xf0, 0x72, 0xd0, 0x92, 0x0d, 0x27, 0xc2, 0x06, 0x2f, 0x07, 0x2d, 0xd9, 0x60, 0x31, 0x1b, 0xd4, 0x32, 0xcb, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0x3c, 0xc9, 0x1a, 0x2c, 0x54, 0xa6, 0x3a, 0x78, 0xfc, 0x86, 0xc8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x80, 0x18, 0xc7, 0x41, 0x4b, 0x99, 0x03, 0x07, 0x2b, 0xe9, 0xf4, 0x0f, 0xa7, 0xd8, 0xe1, 0x14, 0x3b, 0x78, 0x47, 0x12, 0xcd, 0x86, 0x89, 0xdb, 0xe0, 0x8d, 0x76, 0x26, 0x1b, 0xea, 0xf8, 0xc0, 0x93, 0x85, 0x1d, 0x84, 0x00, 0xf8, 0x71, 0xe8, 0x38, 0x74, 0xf0, 0xec, 0x17, 0x9a, 0xe3, 0xf1, 0xf0, 0x1b, 0x8f, 0x87, 0xdf, 0x78, 0x3c, 0xec, 0x06, 0x0b, 0x44, 0xfd, 0xd7, 0x10, 0xc3, 0x05, 0xc1, 0x06, 0x2f, 0x4f, 0x25, 0x38, 0x58, 0xc5, 0xc9, 0x7f, 0x18, 0x97, 0x0d, 0x47, 0xfb, 0x20, 0xd8, 0x20, 0x71, 0x6f, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x05, 0xc9, 0x40, 0x9c, 0x0e, 0x02, 0xde, 0x7f, 0x0d, 0x59, 0xbb, 0x0d, 0x3d, 0x84, 0x86, 0xdf, 0x20, 0xc1, 0x00, 0xe1, 0xa0, 0x99, 0x68, 0xa7, 0xc3, 0xb8, 0x1c, 0x87, 0x16, 0x7e, 0xe3, 0xf1, 0xf0, 0x1b, 0x8f, 0x17, 0x17, 0x04, 0x1b, 0x34, 0xc8, 0xe5, 0xb2, 0x38, 0x08, 0x36, 0x48, 0x46, 0xfa, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0xd9, 0xa0, 0xfd, 0x7f, 0xa8, 0x83, 0xb3, 0x97, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xda, 0xb0, 0x15, 0x18, 0x24, 0x03, 0xe1, 0x3a, 0x78, 0x91, 0x70, 0xc9, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xe7, 0xc8, 0xde, 0xc5, 0x41, 0xb0, 0x20, 0x19, 0x94, 0x1d, 0x9c, 0xf3, 0x8e, 0x0f, 0x8e, 0x2a, 0xce, 0xc7, 0xe3, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x86, 0x18, 0x6e, 0xf0, 0xa6, 0xc2, 0x8e, 0x0d, 0xf1, 0xdf, 0x10, 0xcd, 0x83, 0xe1, 0xc0, 0x71, 0x3c, 0x3e, 0x0e, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0xbc, 0x07, 0x07, 0x63, 0x71, 0xd8, 0x85, 0x5d, 0xe8, 0x41, 0x79, 0x64, 0x70, 0x58, 0xdf, 0x5c, 0xd8, 0x0d, 0xde, 0xbb, 0x83, 0xb1, 0xf0, 0x0b, 0xa2, 0x05, 0xf6, 0xef, 0x87, 0xdd, 0xb0, 0x6b, 0xb0, 0x20, 0x58, 0x10, 0x6c, 0xd0, 0x86, 0xad, 0xc0, 0x20, 0x19, 0x28, 0x7f, 0x07, 0x2f, 0x12, 0x2e, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xf0, 0x04, 0x99, 0x8d, 0xc5, 0x41, 0xb4, 0xd0, 0x83, 0x91, 0xff, 0x70, 0x48, 0x1d, 0x1c, 0x8f, 0x8f, 0x43, 0x07, 0xef, 0xe1, 0x29, 0x39, 0x1e, 0x0f, 0x82, 0x0d, 0x5e, 0x68, 0x5c, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xa9, 0xda, 0xcb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xe7, 0xe0, 0xef, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x0f, 0x1e, 0x29, 0x4e, 0x32, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x93, 0x27, 0x2b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x2f, 0x6e, 0x28, 0xa6, 0xab, 0x61, 0x86, 0x36, 0x78, 0x39, 0x68, 0xc9, 0x86, 0x13, 0x61, 0x83, 0x97, 0x83, 0x96, 0x6c, 0xb0, 0x98, 0x0d, 0x6a, 0x99, 0x65, 0xc3, 0x27, 0x36, 0x6b, 0x78, 0x9e, 0x64, 0x0d, 0x16, 0x2a, 0x53, 0x1d, 0x3c, 0x07, 0xed, 0x63, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x42, 0x07, 0x63, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x00, 0xfa, 0x68, 0x0d, 0x0f, 0x4a, 0x6e, 0x1c, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xed, 0xc1, 0x58, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x04, 0x08, 0x63, 0xc3, 0x1b, 0x77, 0x07, 0xaf, 0xba, 0xf7, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x3f, 0xc2, 0xd8, 0xf0, 0xb9, 0xcb, 0xe0, 0xf0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x5e, 0x11, 0xc6, 0xe1, 0xc1, 0x9b, 0x83, 0x73, 0xbd, 0xc1, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb5, 0x3d, 0x18, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0x00, 0x61, 0x6c, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0xd1, 0xdc, 0xf0, 0xc6, 0xdd, 0x1c, 0xac, 0xb6, 0xa2, 0x3b, 0x78, 0xd6, 0x21, 0xcd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x6d, 0x0f, 0xc6, 0x86, 0xcf, 0x5d, 0x06, 0x87, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xf3, 0x8a, 0x30, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xe3, 0x8f, 0x30, 0x0e, 0x1a, 0xf3, 0xb2, 0xd8, 0xf0, 0x41, 0xce, 0x1a, 0x2c, 0x80, 0x3e, 0x5a, 0xc3, 0x83, 0x92, 0x1b, 0x87, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x8b, 0x98, 0x30, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x75, 0xc2, 0xd8, 0xf0, 0xc6, 0xdd, 0xc1, 0xab, 0xfd, 0x3d, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x13, 0xad, 0x30, 0x36, 0x7c, 0xee, 0x32, 0x38, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x40, 0x85, 0xb1, 0x41, 0x29, 0x21, 0xbe, 0xc1, 0x0a, 0x32, 0xfd, 0x0d, 0x0f, 0x4a, 0x6e, 0xb0, 0xfc, 0x78, 0x7b, 0xc3, 0xbb, 0x3d, 0x1b, 0x3c, 0x67, 0xe0, 0x63, 0x0d, 0x1f, 0xb5, 0x1f, 0x3c, 0x9a, 0xe0, 0xa3, 0x83, 0x73, 0xbd, 0xc1, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x45, 0x4c, 0x18, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0x3a, 0x61, 0x6c, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0xd1, 0xdc, 0xf0, 0xc6, 0xdd, 0x1c, 0xac, 0x1d, 0xed, 0x3e, 0x78, 0x74, 0x26, 0xcd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x11, 0x13, 0xc6, 0x86, 0xcf, 0x5d, 0x06, 0x87, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x1b, 0xa8, 0x30, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x13, 0xad, 0x30, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xa5, 0x84, 0xf8, 0x06, 0x2b, 0xc8, 0xf4, 0x0f, 0x9e, 0xfb, 0x49, 0x73, 0x70, 0x00, 0x4d, 0xda, 0xf0, 0x41, 0xce, 0x1a, 0x2c, 0x80, 0x3e, 0x5a, 0xc3, 0x83, 0x92, 0x1b, 0x87, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x9b, 0xe2, 0x30, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x9d, 0xc3, 0xd8, 0xf0, 0xc6, 0xdd, 0xc1, 0xab, 0x21, 0x3e, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x23, 0xf2, 0x30, 0x0e, 0x8e, 0xe1, 0x06, 0x07, 0xe7, 0x7a, 0x83, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x9b, 0xe2, 0x30, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x9d, 0xc3, 0xd8, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0xa2, 0xb9, 0xe1, 0x8d, 0xbb, 0x39, 0x78, 0xde, 0x1b, 0xc6, 0xc1, 0xe3, 0x63, 0x69, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x9b, 0xe2, 0x30, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x23, 0xf2, 0x30, 0x0e, 0x1a, 0xba, 0x83, 0xd8, 0xf0, 0x41, 0xce, 0x1a, 0x2c, 0x80, 0x3e, 0x5a, 0xc3, 0x83, 0x92, 0x1b, 0x87, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xcb, 0xfa, 0x30, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xfe, 0xc3, 0xd8, 0xf0, 0xc6, 0xdd, 0xc1, 0x13, 0x2d, 0x3e, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x43, 0x0f, 0x31, 0x36, 0x7c, 0xee, 0x32, 0x38, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x52, 0x88, 0xb1, 0x41, 0x29, 0x21, 0xbe, 0xc1, 0x0a, 0x32, 0xfd, 0x0d, 0x0f, 0x4a, 0x6e, 0xb0, 0xfc, 0x78, 0x7b, 0xc3, 0xbb, 0x3d, 0x1b, 0xbc, 0x5e, 0xe3, 0x63, 0x0d, 0x1f, 0xb5, 0x1f, 0xbc, 0x92, 0xe3, 0xa3, 0x83, 0x73, 0xbd, 0xc1, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x65, 0x7d, 0x18, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0xff, 0x61, 0x6c, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0xd1, 0xdc, 0xf0, 0xc6, 0xdd, 0x1c, 0x3c, 0x72, 0x0f, 0xe3, 0xe0, 0xf1, 0xc0, 0x34, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x65, 0x7d, 0x18, 0x1b, 0x3e, 0x77, 0x19, 0x1c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x29, 0xc4, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x3d, 0xc4, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x12, 0xe2, 0x1b, 0xac, 0x20, 0xd3, 0x3f, 0x78, 0xb6, 0x31, 0xcd, 0xc1, 0x01, 0x34, 0x69, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x97, 0x12, 0x63, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x96, 0x4b, 0x8c, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x21, 0x9a, 0x1b, 0xde, 0xb8, 0x9b, 0x83, 0x55, 0x67, 0xe7, 0x1b, 0xde, 0xb8, 0x3b, 0x78, 0x51, 0xc8, 0xc7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x2f, 0x25, 0xc6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x24, 0x27, 0xc6, 0x41, 0x43, 0x77, 0x10, 0x07, 0x2b, 0xe9, 0xf4, 0x0f, 0xa7, 0xd8, 0xe1, 0x14, 0x3b, 0x78, 0x48, 0x20, 0xcd, 0x86, 0x89, 0x5b, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0x3b, 0x20, 0x69, 0x0e, 0x1a, 0xf0, 0xa7, 0x38, 0xa4, 0x0e, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0xb0, 0x1b, 0x3c, 0x69, 0x0f, 0x63, 0x41, 0xb4, 0xa0, 0x76, 0xd8, 0x0d, 0xbb, 0x06, 0x0b, 0xbb, 0x41, 0x91, 0xab, 0x70, 0x58, 0xdf, 0x3c, 0x08, 0x4a, 0xef, 0xc3, 0x0a, 0xed, 0xb0, 0x1b, 0xbc, 0x49, 0x09, 0x63, 0x41, 0xb0, 0xc1, 0xbb, 0x44, 0x22, 0x0e, 0x96, 0xc4, 0x89, 0x0d, 0xbb, 0xc1, 0x63, 0xde, 0x30, 0x16, 0x44, 0x0b, 0xaa, 0x57, 0x9c, 0x83, 0x47, 0x8a, 0x93, 0x6c, 0xf0, 0xf6, 0xaf, 0x92, 0x83, 0xa3, 0x38, 0xfa, 0xc1, 0x18, 0x7b, 0x3a, 0xac, 0xd0, 0x0e, 0xb2, 0x35, 0xb4, 0x5f, 0x1f, 0x6e, 0x83, 0xa7, 0x65, 0x62, 0x1c, 0xa2, 0x39, 0x88, 0x16, 0xa8, 0xbf, 0x83, 0x60, 0x83, 0x67, 0xbd, 0xd1, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x78, 0x82, 0xcc, 0xc6, 0xe2, 0x20, 0x58, 0xf8, 0x0d, 0x5e, 0x32, 0x06, 0x70, 0xd0, 0x0c, 0xa3, 0xd2, 0x21, 0x0d, 0x77, 0x3c, 0x3e, 0x0e, 0x1d, 0x56, 0x68, 0x07, 0xd9, 0x1a, 0xf2, 0xd8, 0xe3, 0xc1, 0xeb, 0xe0, 0x55, 0x0e, 0xa7, 0xd8, 0xf1, 0x78, 0x41, 0xb0, 0xc1, 0xd3, 0x12, 0x68, 0x16, 0x87, 0x5d, 0xd8, 0x85, 0xdb, 0xa0, 0x08, 0x4d, 0x38, 0x18, 0xf0, 0xc8, 0x0b, 0xbb, 0x70, 0x1b, 0x62, 0x78, 0xd0, 0xf6, 0x9e, 0xd3, 0xc2, 0x2e, 0xdc, 0x1a, 0x14, 0x0c, 0x8f, 0x07, 0x6f, 0x37, 0x88, 0x38, 0x68, 0xe7, 0xd6, 0xe9, 0x90, 0xce, 0x3d, 0x1c, 0xed, 0x87, 0xa3, 0x7d, 0x61, 0x17, 0x76, 0xa1, 0x07, 0x67, 0xf5, 0xf3, 0x85, 0x5d, 0xb8, 0x0d, 0x1e, 0xf6, 0x86, 0x71, 0x68, 0xc6, 0xb3, 0x70, 0x07, 0x4d, 0xb0, 0x0b, 0x1c, 0x8e, 0xf6, 0xc3, 0xd1, 0xbe, 0x86, 0x18, 0x6e, 0x88, 0xe1, 0x06, 0x6f, 0xff, 0x2a, 0x19, 0x04, 0x1b, 0x34, 0x79, 0xb2, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xe2, 0x86, 0x3a, 0xb2, 0xc1, 0x53, 0x67, 0x4d, 0x0e, 0xde, 0x8c, 0x34, 0x73, 0x70, 0x14, 0x47, 0x3f, 0x0e, 0x0d, 0xbb, 0xb0, 0x1b, 0x3c, 0x90, 0x9f, 0x66, 0x61, 0x17, 0x6e, 0xf1, 0x60, 0xf9, 0xe4, 0xed, 0xa1, 0x19, 0xcf, 0xc2, 0x6e, 0x30, 0x3c, 0x95, 0x17, 0x76, 0xe1, 0x16, 0x03, 0x8f, 0x2d, 0x6c, 0x3c, 0x78, 0xe6, 0x47, 0xc5, 0xc2, 0x6d, 0x88, 0xe1, 0xc1, 0x2b, 0x58, 0x4e, 0x0e, 0x47, 0xfb, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x87, 0xa3, 0x7d, 0x0d, 0x31, 0xdc, 0x10, 0xc3, 0x0d, 0x16, 0x9a, 0x18, 0x0d, 0x82, 0x0d, 0x9a, 0x3c, 0x59, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0xf1, 0xa0, 0x15, 0x85, 0xff, 0x83, 0x22, 0x57, 0xe1, 0x38, 0x34, 0xec, 0xc2, 0x6e, 0xf0, 0x40, 0x7e, 0x9a, 0x85, 0x5d, 0xb8, 0xc5, 0xc0, 0xd3, 0x2b, 0x73, 0x0f, 0xcd, 0x78, 0x16, 0x76, 0x83, 0xe1, 0xa9, 0xbc, 0xb0, 0x0b, 0xb7, 0x18, 0x78, 0x6c, 0x61, 0xe7, 0xc1, 0x33, 0x3f, 0x2a, 0x0e, 0xde, 0x9d, 0x50, 0x73, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0x5f, 0x43, 0x0c, 0x37, 0xc4, 0x70, 0x83, 0x85, 0x26, 0x46, 0x83, 0x60, 0x83, 0x26, 0x4f, 0x56, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0xdf, 0xe0, 0x61, 0x0f, 0x35, 0x13, 0x5c, 0xf7, 0xc7, 0xa1, 0x61, 0x17, 0x76, 0x83, 0x07, 0xf2, 0xd3, 0x2c, 0xec, 0x06, 0xcf, 0x8e, 0xa8, 0x59, 0xd8, 0x0d, 0x86, 0xa7, 0xf2, 0xc2, 0x2e, 0xdc, 0xe2, 0xc1, 0xe2, 0xce, 0xec, 0x83, 0x67, 0x7e, 0x54, 0x1c, 0xbc, 0x3b, 0xa1, 0xe6, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0xc3, 0xd1, 0xbe, 0x86, 0x18, 0x6e, 0x88, 0xe1, 0x06, 0x0b, 0x4d, 0x8c, 0x06, 0xc1, 0x06, 0x4d, 0x9e, 0xac, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0xb8, 0xa1, 0x8e, 0xac, 0x61, 0x86, 0x36, 0x78, 0x39, 0x68, 0xc9, 0x86, 0x13, 0x61, 0x83, 0x97, 0x83, 0x96, 0x6c, 0xb0, 0x98, 0x0d, 0x6a, 0x99, 0x65, 0xc3, 0x27, 0x36, 0x6b, 0x78, 0x9e, 0x64, 0x0d, 0x16, 0x2a, 0x53, 0x1d, 0x3c, 0x32, 0xf6, 0x63, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xf0, 0x55, 0x63, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xfc, 0x58, 0x8d, 0x35, 0x7c, 0xee, 0xb2, 0xc1, 0x0a, 0x41, 0xdb, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x36, 0x5a, 0x8d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x6e, 0x5b, 0x8d, 0x0d, 0x5f, 0xbf, 0x6c, 0xb0, 0x36, 0x26, 0x6f, 0x83, 0x85, 0xb2, 0x4f, 0x1b, 0x34, 0xd3, 0x39, 0xb0, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x2d, 0x80, 0x0e, 0xac, 0xe1, 0x47, 0x98, 0x81, 0xa7, 0x0b, 0x83, 0xa7, 0x0b, 0x0f, 0xc6, 0x4f, 0xd7, 0x06, 0x05, 0xc1, 0xec, 0x06, 0x07, 0xcd, 0xc3, 0x0d, 0xc6, 0x4f, 0xd7, 0x41, 0x78, 0xaa, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0xc7, 0x6a, 0x6c, 0xf8, 0xdc, 0x65, 0x83, 0x01, 0xb4, 0xb1, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xcd, 0xab, 0xb1, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xf4, 0xab, 0xb1, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0xc1, 0xc6, 0x38, 0x38, 0x7e, 0xff, 0x6d, 0x78, 0x9e, 0x64, 0x83, 0x07, 0x9f, 0xd4, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0xbe, 0x6a, 0x6c, 0xf8, 0xdc, 0x65, 0x83, 0x45, 0xfc, 0xb4, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x59, 0xc4, 0x1a, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xd1, 0xc6, 0x1a, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x52, 0x42, 0x7c, 0x83, 0x15, 0x64, 0xfa, 0x1b, 0xde, 0xd6, 0x39, 0x78, 0x71, 0x21, 0xc8, 0xc1, 0x01, 0x34, 0xe9, 0x60, 0x25, 0x9d, 0xfe, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x07, 0xcf, 0x36, 0xa9, 0x99, 0xe0, 0xb8, 0x3f, 0x0e, 0x0d, 0xbb, 0xb0, 0x1b, 0x3c, 0x90, 0x9f, 0x66, 0x61, 0x17, 0x6e, 0xf1, 0xd0, 0xfc, 0xe0, 0xd0, 0x8c, 0x67, 0x61, 0x37, 0x18, 0x9e, 0xca, 0x0b, 0xb7, 0x18, 0x78, 0x66, 0x61, 0xf4, 0xc1, 0x33, 0x3f, 0x2a, 0x0e, 0x47, 0xfb, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x6b, 0x88, 0xe1, 0x86, 0x18, 0x6e, 0xb0, 0xd0, 0xc4, 0x68, 0x10, 0x6c, 0xd0, 0xe4, 0xc9, 0xca, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x8b, 0x1b, 0xea, 0xc8, 0x1a, 0x66, 0x68, 0x0d, 0x13, 0xb7, 0x86, 0xb9, 0xdf, 0x60, 0x01, 0x75, 0xfa, 0x41, 0x2b, 0x12, 0xff, 0x1b, 0x66, 0x68, 0x0d, 0x13, 0xb7, 0x86, 0xb9, 0x1f, 0xf0, 0xcc, 0xc2, 0xe8, 0x0d, 0x13, 0xb7, 0x06, 0x0b, 0x1a, 0xa6, 0xd6, 0x30, 0xf7, 0x1b, 0x8c, 0x04, 0x86, 0x83, 0x16, 0xdb, 0x06, 0x66, 0x0d, 0x73, 0xbf, 0xc1, 0x48, 0x60, 0xd8, 0x30, 0x71, 0x1b, 0xb4, 0xd8, 0x36, 0xb0, 0x61, 0xee, 0x07, 0xaf, 0x37, 0x4c, 0xdc, 0x1a, 0xe6, 0x7e, 0x70, 0xf8, 0xe0, 0x19, 0x46, 0x34, 0x1b, 0xe6, 0x7e, 0xf0, 0xf8, 0xe0, 0x91, 0xac, 0x26, 0x87, 0x53, 0x6c, 0x83, 0x05, 0x0d, 0x53, 0x6b, 0x98, 0xfb, 0x01, 0x8f, 0x2c, 0x4d, 0x3e, 0x68, 0xb1, 0x6d, 0x60, 0x35, 0xcc, 0xfd, 0x80, 0x47, 0x96, 0x26, 0x6f, 0x98, 0xb8, 0x35, 0xcc, 0xfd, 0xe0, 0xee, 0x86, 0x89, 0x5b, 0xc3, 0xdc, 0x0f, 0x0e, 0x6f, 0xa8, 0xe3, 0x07, 0xcb, 0x66, 0xf2, 0x36, 0xcc, 0xfd, 0xe0, 0xf1, 0x86, 0x89, 0xdb, 0xe0, 0x7d, 0x52, 0x35, 0x1b, 0x2c, 0x68, 0x98, 0x5a, 0xc3, 0xdc, 0x0f, 0x78, 0x64, 0x69, 0xf2, 0x86, 0x89, 0x5b, 0xc3, 0xdc, 0x0f, 0xee, 0x6e, 0x98, 0xb8, 0x0d, 0x9e, 0xdf, 0x55, 0xb3, 0x61, 0xee, 0x07, 0x8f, 0x37, 0x4c, 0xdc, 0x06, 0xef, 0x93, 0xaa, 0xd9, 0x60, 0x41, 0xc3, 0xd4, 0x06, 0x6f, 0xd2, 0xaa, 0x59, 0x0d, 0x73, 0x3f, 0xe0, 0x91, 0xa5, 0xc9, 0x1b, 0x26, 0x6e, 0x0d, 0x73, 0x3f, 0xb8, 0xbb, 0x61, 0xe2, 0x36, 0x78, 0x7e, 0x57, 0xcd, 0x86, 0xb9, 0x1f, 0x3c, 0xde, 0x50, 0x47, 0xd6, 0x30, 0x43, 0x6b, 0x98, 0xb8, 0x0d, 0xd3, 0xb9, 0x61, 0x86, 0xd6, 0x30, 0x71, 0x6b, 0x28, 0xa6, 0xab, 0x61, 0x86, 0xd6, 0x30, 0x71, 0x6b, 0x98, 0xb8, 0x35, 0xcc, 0xfd, 0x06, 0xc1, 0xb2, 0xb4, 0xa1, 0x98, 0xae, 0xc1, 0x83, 0x37, 0x30, 0x0e, 0x5e, 0xb4, 0x19, 0x72, 0xf0, 0x3c, 0x23, 0x9a, 0x83, 0xe6, 0x42, 0x29, 0x0e, 0xe7, 0xf1, 0x41, 0x2b, 0x9c, 0x14, 0x07, 0x61, 0xc1, 0xb4, 0x61, 0xee, 0x37, 0x08, 0x57, 0x84, 0x0d, 0x33, 0xb4, 0x86, 0x89, 0xdb, 0x30, 0x9d, 0x07, 0xaf, 0x65, 0xab, 0xd9, 0x70, 0x22, 0x6c, 0xf0, 0xce, 0xb9, 0x9a, 0x83, 0xf6, 0x61, 0x29, 0x0e, 0x1e, 0xbc, 0x81, 0xb1, 0x41, 0xc3, 0x97, 0x10, 0x6b, 0x98, 0xb8, 0x0d, 0x5a, 0xd3, 0x84, 0x38, 0x78, 0xf0, 0x06, 0xc6, 0x06, 0x8b, 0xd9, 0xa0, 0x96, 0x59, 0x36, 0x7c, 0xd4, 0x7e, 0xf0, 0xaa, 0xf1, 0x90, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x36, 0x9c, 0x08, 0x1b, 0xbc, 0x5d, 0xad, 0x66, 0x83, 0xc5, 0x6c, 0x50, 0xcb, 0x2c, 0x1b, 0x3e, 0xb1, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x9a, 0x94, 0x63, 0x0d, 0x9f, 0xbb, 0x6c, 0x30, 0x12, 0x18, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x63, 0x4e, 0x39, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xeb, 0x52, 0x39, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xa5, 0x84, 0xf8, 0x06, 0x2b, 0xc8, 0xf4, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0x23, 0xd1, 0x43, 0xd6, 0xf0, 0x51, 0xfb, 0xc1, 0x63, 0xd4, 0x43, 0x3a, 0x38, 0xd7, 0x1b, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x47, 0x93, 0x72, 0x6c, 0xf8, 0xdc, 0x65, 0xc0, 0x23, 0x4b, 0x93, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x7b, 0x69, 0x39, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x13, 0x6e, 0x39, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xa5, 0x84, 0xf8, 0x06, 0x2b, 0xc8, 0xf4, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0x1b, 0xdf, 0x43, 0xd6, 0xf0, 0x51, 0xfb, 0xc1, 0x5b, 0xe2, 0x43, 0xd6, 0xf0, 0x51, 0xfb, 0xc1, 0xa3, 0xe5, 0x43, 0x3a, 0x38, 0x80, 0x26, 0x1d, 0xac, 0xa4, 0xd3, 0x3f, 0x9c, 0x62, 0x87, 0x53, 0xec, 0xe0, 0x05, 0x7d, 0x35, 0x1b, 0x26, 0x6e, 0x0d, 0x16, 0x34, 0x4c, 0x6d, 0xd0, 0x86, 0xdd, 0xc0, 0x6a, 0x98, 0xfb, 0xc1, 0xd9, 0x0d, 0x13, 0xb7, 0xc1, 0x43, 0xd0, 0x6a, 0x36, 0x4c, 0xdc, 0x1a, 0x2c, 0x68, 0x98, 0xda, 0xa0, 0x0d, 0xbb, 0x81, 0xd5, 0x30, 0xf7, 0x83, 0xb3, 0x1b, 0x26, 0x6e, 0x83, 0x87, 0xa0, 0xd5, 0x6c, 0x98, 0xb8, 0x35, 0xcc, 0xfd, 0xe0, 0xec, 0x86, 0x3a, 0xb2, 0x86, 0x19, 0x5a, 0xc3, 0xc4, 0x6d, 0x98, 0xce, 0x0d, 0x33, 0xb4, 0x86, 0x89, 0x5b, 0xc3, 0xdc, 0x6f, 0x10, 0xec, 0x6d, 0x1b, 0x66, 0x68, 0x0d, 0x13, 0xb7, 0x61, 0x3a, 0x37, 0xcc, 0xd0, 0x1a, 0x26, 0x6e, 0x0d, 0x13, 0xb7, 0x86, 0xb9, 0xdf, 0x20, 0x58, 0x96, 0x36, 0xcc, 0xd0, 0x06, 0x6f, 0x57, 0xab, 0xd9, 0x70, 0x22, 0x6c, 0xf0, 0x76, 0xb5, 0x9a, 0x0d, 0x16, 0xb3, 0x41, 0x2d, 0xb3, 0x6c, 0xf8, 0xc4, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xac, 0x5f, 0x8e, 0x0d, 0x5f, 0xbf, 0x6c, 0xb0, 0x36, 0x26, 0x6f, 0x83, 0x85, 0xb2, 0x4f, 0x1b, 0x34, 0xd3, 0x39, 0xb0, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x2d, 0x80, 0x0e, 0x6c, 0xf0, 0xca, 0x98, 0x9a, 0x43, 0xea, 0xe0, 0xa0, 0xad, 0xd2, 0x81, 0x83, 0x95, 0x74, 0xfa, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x6d, 0x98, 0xfb, 0x0d, 0x82, 0x70, 0xe9, 0xe0, 0x91, 0x6a, 0x35, 0x87, 0xf3, 0xf8, 0xa0, 0x15, 0x4e, 0x8a, 0x0d, 0x27, 0xc2, 0x06, 0x0f, 0xd9, 0xac, 0x39, 0x68, 0x1f, 0x96, 0xe2, 0x70, 0x1e, 0x1f, 0xb4, 0xee, 0x0c, 0xb2, 0xe1, 0x44, 0xd8, 0xe0, 0x99, 0x98, 0x35, 0x07, 0x8d, 0x71, 0x83, 0x1c, 0xb4, 0xdf, 0x0d, 0xb2, 0x61, 0xee, 0x07, 0x97, 0x0f, 0xde, 0x7d, 0x59, 0x73, 0x38, 0xc5, 0xda, 0x60, 0x41, 0xc3, 0xd4, 0x06, 0x2d, 0xf8, 0x83, 0xac, 0x86, 0xb9, 0x1f, 0x5c, 0x3e, 0x78, 0x81, 0x65, 0xcd, 0xe1, 0x14, 0xeb, 0x70, 0x8a, 0xb5, 0xc1, 0x82, 0x86, 0xa9, 0x0d, 0x5a, 0xf0, 0x07, 0x99, 0x35, 0xcc, 0xfd, 0xe0, 0xf2, 0xc1, 0x03, 0x26, 0x6b, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x6b, 0xc3, 0xc4, 0xad, 0xc1, 0x82, 0x86, 0xa9, 0x0d, 0xda, 0xb0, 0x1b, 0x58, 0x0d, 0x73, 0x3f, 0x38, 0xbb, 0x61, 0xe2, 0x36, 0x78, 0xae, 0x58, 0xcd, 0x86, 0x89, 0x5b, 0x83, 0x05, 0x0d, 0x53, 0x1b, 0xb4, 0x61, 0x37, 0x30, 0x6b, 0x98, 0xfb, 0xc1, 0xd9, 0x0d, 0x13, 0xb7, 0xc1, 0x73, 0xc5, 0x6a, 0x36, 0x4c, 0xdc, 0x1a, 0xe6, 0x7e, 0x70, 0x76, 0x43, 0x1d, 0x59, 0xc3, 0x0c, 0xad, 0x61, 0xe2, 0x36, 0x4c, 0xe7, 0x86, 0x19, 0x5a, 0xc3, 0xc4, 0xad, 0x61, 0xee, 0x37, 0x08, 0xf6, 0xb6, 0x0d, 0x33, 0xb4, 0x86, 0x89, 0xdb, 0x30, 0x9d, 0x1b, 0x66, 0x68, 0x0d, 0x13, 0xb7, 0x86, 0x89, 0x5b, 0xc3, 0xdc, 0x6f, 0x10, 0x2c, 0x4b, 0x1b, 0x66, 0x68, 0x0d, 0x13, 0xb7, 0x61, 0x3a, 0x37, 0xcc, 0xd0, 0x1a, 0x26, 0x6e, 0x0d, 0x73, 0xbf, 0x41, 0xb8, 0x22, 0x6c, 0x28, 0xa6, 0x1b, 0xbc, 0x95, 0xad, 0xe6, 0xe0, 0x41, 0x73, 0x35, 0x07, 0x0f, 0xde, 0xc0, 0x38, 0x78, 0xb5, 0x5d, 0xcd, 0x86, 0x13, 0x61, 0x83, 0x87, 0x0b, 0xd7, 0x1c, 0x3c, 0xf0, 0xb3, 0xe6, 0xe0, 0xad, 0xa7, 0x35, 0x87, 0xf3, 0xf8, 0xa0, 0x15, 0x4e, 0x8a, 0x0d, 0x27, 0xc2, 0x06, 0xef, 0xff, 0xad, 0x39, 0x68, 0x1f, 0x96, 0xe2, 0x70, 0x1e, 0x1f, 0xb4, 0xee, 0x0c, 0xb2, 0xe1, 0x44, 0xd8, 0xe0, 0x75, 0xbd, 0x35, 0x07, 0x8d, 0x71, 0x83, 0x1c, 0xb4, 0xdf, 0x0d, 0xb2, 0x61, 0xee, 0x07, 0x97, 0x0f, 0x9e, 0xcb, 0x5b, 0x73, 0x38, 0xc5, 0x36, 0x58, 0xd0, 0x30, 0xb5, 0x41, 0x0b, 0xfe, 0x20, 0xb3, 0x86, 0xb9, 0x1f, 0x5c, 0x3e, 0x78, 0xb8, 0x6e, 0xcd, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x6d, 0xb0, 0xa0, 0x61, 0x6a, 0x83, 0x16, 0xfc, 0x41, 0x66, 0x0d, 0x73, 0x3f, 0xb8, 0x7c, 0xf0, 0xea, 0xdb, 0x9a, 0xc3, 0x29, 0x36, 0x1b, 0xbc, 0x49, 0xab, 0xe6, 0x70, 0x8a, 0x6d, 0x98, 0xb8, 0x35, 0x58, 0xd0, 0x30, 0xb5, 0x41, 0x1b, 0x76, 0x03, 0xb3, 0x86, 0xb9, 0x1f, 0x9c, 0xdd, 0x30, 0x71, 0x1b, 0x3c, 0xa1, 0xab, 0x66, 0xc3, 0xc4, 0xad, 0xc1, 0x82, 0x86, 0xa9, 0x0d, 0xda, 0xb0, 0x1b, 0x58, 0x0d, 0x73, 0x3f, 0x38, 0xbb, 0x61, 0xe2, 0x36, 0x78, 0x42, 0x57, 0xcd, 0x86, 0x89, 0x5b, 0xc3, 0xdc, 0x0f, 0xce, 0x6e, 0xa8, 0x23, 0x6b, 0x98, 0xa1, 0x35, 0x4c, 0xdc, 0x86, 0xe9, 0xdc, 0x30, 0x43, 0x6b, 0x98, 0xb8, 0x35, 0xcc, 0xfd, 0x06, 0xc1, 0xde, 0xb6, 0x61, 0x86, 0xd6, 0x30, 0x71, 0x1b, 0xa6, 0x73, 0xc3, 0x0c, 0xad, 0x61, 0xe2, 0xd6, 0x30, 0x71, 0x6b, 0x98, 0xfb, 0x0d, 0x82, 0x65, 0x69, 0xc3, 0x0c, 0xad, 0x61, 0xe2, 0x36, 0x4c, 0xe7, 0x86, 0x19, 0x5a, 0xc3, 0xc4, 0xad, 0x61, 0xee, 0x37, 0x08, 0x57, 0x84, 0x0d, 0x75, 0x64, 0x83, 0xd7, 0xb2, 0xd5, 0x1c, 0xb4, 0x65, 0x4a, 0x71, 0xf0, 0xe0, 0x0d, 0x8c, 0x83, 0x57, 0xdb, 0xd5, 0x6c, 0x38, 0x11, 0x36, 0x78, 0x05, 0x79, 0xcd, 0xc1, 0x03, 0x3f, 0x6b, 0x36, 0xcc, 0xfd, 0x06, 0x41, 0xb8, 0xb4, 0x61, 0x86, 0x36, 0x78, 0xb8, 0x70, 0xcd, 0x86, 0x13, 0x61, 0x83, 0x87, 0x0b, 0xd7, 0x1c, 0x3c, 0x87, 0xaf, 0xe6, 0x70, 0x1e, 0x1f, 0xb4, 0xc2, 0x49, 0xb1, 0xe1, 0x44, 0xd8, 0xe0, 0x31, 0xe1, 0x35, 0x07, 0xed, 0xc3, 0x52, 0x1c, 0xce, 0xe3, 0x83, 0xd6, 0x9d, 0x41, 0x36, 0x9c, 0x08, 0x1b, 0x3c, 0xd5, 0xbb, 0xe6, 0xa0, 0x31, 0x6e, 0x90, 0x83, 0xf6, 0xbb, 0x41, 0x36, 0xcc, 0xfd, 0xe0, 0xf2, 0xc1, 0xdb, 0xbb, 0x6b, 0x0e, 0xa7, 0x58, 0x1b, 0x2c, 0x68, 0x98, 0xda, 0xa0, 0x05, 0x7f, 0x90, 0x59, 0xc3, 0xdc, 0x0f, 0x2e, 0x1f, 0xbc, 0x82, 0xbb, 0xe6, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x0d, 0x16, 0x34, 0x4c, 0xad, 0x61, 0xee, 0x07, 0x97, 0x0f, 0x1e, 0x91, 0x5d, 0xb3, 0x06, 0x2d, 0xf8, 0x83, 0x1c, 0x4e, 0xb1, 0x0e, 0xa7, 0x58, 0x07, 0x8f, 0xc1, 0x3c, 0xd9, 0xa0, 0xe1, 0x4b, 0x88, 0x35, 0x4c, 0xdc, 0x1a, 0xe6, 0x7e, 0xc0, 0x33, 0x0b, 0xa3, 0x37, 0xd4, 0x91, 0x35, 0xcc, 0xd0, 0x1a, 0x26, 0x6e, 0xc3, 0x74, 0x6e, 0x98, 0xa1, 0x0d, 0xde, 0x76, 0x57, 0x73, 0xf0, 0x6a, 0xbb, 0x9a, 0x0d, 0x27, 0xc2, 0x06, 0x2f, 0xea, 0xaf, 0x39, 0x78, 0x0e, 0x5f, 0xcd, 0xc1, 0x0b, 0xfa, 0x6a, 0x0e, 0x1e, 0x83, 0x79, 0xb2, 0xc1, 0x62, 0x36, 0xa8, 0x83, 0x57, 0xf0, 0xc4, 0x6c, 0x38, 0x11, 0x36, 0x78, 0xb0, 0x53, 0xcd, 0x06, 0x8b, 0xd9, 0xa0, 0x96, 0x59, 0x0e, 0x9e, 0xdc, 0x13, 0x73, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0xc1, 0x93, 0x7b, 0x62, 0x06, 0xc1, 0x82, 0x60, 0x83, 0xe5, 0x29, 0x25, 0x83, 0x64, 0x98, 0x83, 0xa6, 0xa2, 0x4d, 0x0e, 0x5e, 0xb7, 0xaa, 0x71, 0x1c, 0x3a, 0x68, 0x8b, 0x90, 0xe9, 0x10, 0xc3, 0xe3, 0xf1, 0x0a, 0x82, 0x0d, 0x46, 0xfe, 0xc3, 0xe2, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x86, 0x68, 0x0e, 0xbf, 0x20, 0xda, 0xa0, 0x28, 0xbd, 0x3b, 0x1e, 0x0f, 0xbf, 0xc1, 0x60, 0x07, 0x18, 0x04, 0x0b, 0xbb, 0xc1, 0xa8, 0x97, 0x5c, 0x83, 0x85, 0x26, 0x46, 0x87, 0x7c, 0xed, 0x20, 0x5b, 0x43, 0xfb, 0xf5, 0x83, 0xd6, 0xf9, 0x00, 0x16, 0x37, 0x4c, 0xdc, 0x1a, 0xea, 0xf8, 0x86, 0x97, 0xef, 0xe6, 0x60, 0xf9, 0xe0, 0xef, 0x61, 0x3a, 0x37, 0x78, 0x1c, 0x50, 0xc7, 0x21, 0x5f, 0xbb, 0xc1, 0x9b, 0x0a, 0x3b, 0x36, 0xc4, 0x7f, 0x43, 0xea, 0xe0, 0x60, 0xfc, 0x4b, 0x1e, 0x8f, 0x07, 0xc1, 0x06, 0x23, 0xff, 0x61, 0x71, 0xd8, 0x0d, 0x79, 0xac, 0x05, 0xd9, 0x1a, 0xf2, 0xd8, 0xe3, 0xc1, 0x23, 0xd8, 0x56, 0x0e, 0xa7, 0xd8, 0xb0, 0x0b, 0xbb, 0x70, 0x1b, 0x3c, 0x24, 0x6b, 0xe3, 0xd0, 0x48, 0x70, 0x43, 0x0c, 0x87, 0x5d, 0xb8, 0x0d, 0xde, 0x5b, 0x90, 0x71, 0x68, 0x24, 0xb8, 0x21, 0x86, 0xc3, 0x6d, 0xf0, 0x90, 0x83, 0x8c, 0x43, 0x23, 0xc1, 0x05, 0xc1, 0x82, 0x6c, 0x0d, 0x79, 0xec, 0xf1, 0xe0, 0x31, 0x7a, 0x2b, 0x83, 0x60, 0x41, 0x32, 0x70, 0xfb, 0x1c, 0x0c, 0xff, 0xd8, 0x43, 0x07, 0x8d, 0x61, 0x17, 0x6e, 0x83, 0x87, 0x64, 0x6d, 0x1c, 0x84, 0x14, 0xf8, 0xc2, 0x2f, 0x88, 0x16, 0xc8, 0xee, 0x0f, 0xbb, 0xb0, 0x0b, 0xb7, 0x78, 0xf0, 0x50, 0xc1, 0x95, 0x83, 0xb6, 0x47, 0x9c, 0x16, 0x76, 0xa1, 0x13, 0x56, 0x0b, 0xbb, 0xb0, 0x0b, 0x9d, 0x50, 0xb5, 0x70, 0x1b, 0x72, 0xdf, 0x13, 0x4e, 0x1d, 0x8e, 0xf6, 0x85, 0x5d, 0x10, 0x2c, 0x08, 0x16, 0x24, 0x03, 0x82, 0x77, 0xe7, 0xe0, 0x98, 0x55, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x9d, 0x20, 0xaa, 0xc7, 0xa1, 0xe1, 0x36, 0x78, 0xc8, 0x41, 0xc6, 0x71, 0xe8, 0x90, 0xce, 0x3d, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x2f, 0xc8, 0xd6, 0xa0, 0x2d, 0x90, 0x95, 0x0d, 0x31, 0x1c, 0x04, 0x1b, 0xbc, 0x14, 0x89, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x2b, 0x96, 0x48, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0xd7, 0x50, 0xc7, 0x37, 0xbc, 0x7c, 0x37, 0x07, 0xcf, 0x7c, 0x5c, 0x39, 0x78, 0xe6, 0xe3, 0xca, 0x71, 0xe8, 0x38, 0x74, 0x88, 0xe1, 0xc1, 0xa3, 0x72, 0x27, 0x8e, 0xc7, 0x83, 0x60, 0x41, 0x32, 0x30, 0x55, 0x87, 0x6c, 0xc5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa5, 0x6a, 0x2f, 0x0b, 0xbf, 0xf1, 0x7c, 0x43, 0x0c, 0x37, 0x78, 0x2f, 0x59, 0xc7, 0x06, 0x41, 0x16, 0x3f, 0x08, 0x36, 0x38, 0x4e, 0xc7, 0x0f, 0x92, 0x21, 0x07, 0x8f, 0x90, 0x75, 0x38, 0x18, 0xf8, 0x21, 0xc7, 0xa1, 0x61, 0x37, 0x78, 0x4c, 0x43, 0xc6, 0x82, 0x68, 0xc1, 0xd7, 0x41, 0xb0, 0x20, 0x19, 0x48, 0xdf, 0x1d, 0x9c, 0xbd, 0x8c, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0x30, 0x1d, 0x9c, 0xce, 0x90, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xc5, 0xa2, 0x25, 0xc8, 0xf5, 0x1f, 0xc6, 0xe5, 0x38, 0x74, 0x1c, 0x3a, 0x64, 0x2b, 0x06, 0xd9, 0x1a, 0xda, 0xaf, 0x1f, 0xbc, 0xd5, 0x21, 0x63, 0xd8, 0x05, 0xc1, 0xc2, 0x2f, 0x48, 0x06, 0xce, 0xb7, 0x83, 0xe1, 0x1f, 0x7b, 0x50, 0x0e, 0x25, 0x1d, 0xbc, 0x39, 0xc7, 0x66, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x0d, 0x5e, 0x4d, 0x64, 0x73, 0x50, 0x32, 0x34, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x08, 0x4a, 0xef, 0xe1, 0x37, 0x9e, 0xaf, 0x41, 0x5b, 0x4c, 0x00, 0x83, 0x64, 0xc8, 0xc1, 0xb9, 0xfe, 0x78, 0x0d, 0x1e, 0xe8, 0x56, 0x32, 0x48, 0x06, 0xe2, 0x74, 0x30, 0x1c, 0xa5, 0xd7, 0xe0, 0x71, 0x7a, 0x25, 0x83, 0x60, 0x83, 0x86, 0x36, 0x57, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0x41, 0xb0, 0xc1, 0xe1, 0x4a, 0x7a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0xf2, 0x66, 0xcd, 0xf0, 0x1b, 0xcf, 0xc7, 0x0d, 0x56, 0x8b, 0x20, 0x1d, 0x3c, 0xbf, 0x88, 0xe4, 0x38, 0x74, 0x3c, 0x3f, 0x0e, 0xad, 0xc1, 0x63, 0xfd, 0x4a, 0x06, 0xc1, 0x06, 0x0d, 0x6d, 0xae, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xfc, 0x82, 0x60, 0x83, 0xc3, 0x95, 0xf4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x94, 0xe2, 0x9a, 0xe1, 0x37, 0x9e, 0x8f, 0x1b, 0xac, 0x16, 0x41, 0x3a, 0x78, 0x2f, 0x1a, 0xc9, 0x71, 0xe8, 0x78, 0x7e, 0x1c, 0x3a, 0xc4, 0xf0, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xf0, 0x0b, 0xa2, 0x05, 0xb2, 0xfb, 0xc3, 0x2e, 0xec, 0xc2, 0x2d, 0x41, 0xc7, 0xfd, 0x83, 0x97, 0x92, 0xd8, 0x1c, 0xd6, 0x37, 0x17, 0x64, 0x6b, 0xd0, 0x16, 0xc8, 0xca, 0x86, 0x18, 0x0e, 0x82, 0x0d, 0x5e, 0x8a, 0x44, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0x15, 0x4b, 0x24, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x8f, 0x6b, 0xa8, 0xe3, 0x1b, 0x5e, 0xbe, 0x9b, 0x83, 0x27, 0x00, 0xaf, 0x1c, 0x3c, 0x01, 0x78, 0xe5, 0x38, 0x74, 0x1c, 0x3a, 0x1c, 0xed, 0x07, 0x8f, 0xca, 0x9d, 0x38, 0x1e, 0x0f, 0xa2, 0x05, 0x82, 0x7b, 0x10, 0x02, 0xe0, 0x87, 0x6c, 0xc5, 0x71, 0x68, 0x90, 0xad, 0x21, 0x8f, 0x3d, 0x1e, 0x3c, 0xbb, 0x74, 0xe5, 0x70, 0x8a, 0x0d, 0x82, 0x0d, 0x5e, 0x68, 0x5c, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xa9, 0xda, 0xcb, 0xc2, 0x6f, 0x3c, 0xdf, 0x10, 0xc3, 0x41, 0xb0, 0x41, 0x42, 0x0c, 0xc0, 0xa1, 0x51, 0xcb, 0xc1, 0xc0, 0x0f, 0x39, 0x0e, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0xb8, 0x20, 0x58, 0x10, 0x2c, 0x08, 0x36, 0x18, 0xc1, 0xa7, 0x07, 0x2f, 0x3c, 0xb0, 0x39, 0x34, 0x6a, 0x19, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x82, 0x64, 0x98, 0x83, 0xf1, 0xae, 0x33, 0x48, 0x06, 0xd9, 0x41, 0x0a, 0x6f, 0xcd, 0xc1, 0xc0, 0x16, 0x1d, 0x76, 0x83, 0x51, 0x2f, 0xb9, 0x20, 0xd8, 0x60, 0x24, 0xe0, 0x1c, 0x24, 0xae, 0x49, 0x0f, 0x82, 0x05, 0xc1, 0x82, 0x64, 0xa0, 0xbc, 0x1d, 0x0c, 0x47, 0xe9, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x12, 0x7c, 0xee, 0x3f, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x08, 0xb2, 0xf8, 0x83, 0xe5, 0xb8, 0x24, 0xc7, 0xa1, 0x41, 0xb4, 0x40, 0xbc, 0x37, 0xc4, 0x70, 0xe3, 0xd0, 0x06, 0x41, 0xe9, 0x7d, 0x10, 0x98, 0xd8, 0x07, 0x01, 0xef, 0xbf, 0x20, 0xd8, 0xa0, 0xa0, 0x16, 0x5b, 0x1c, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0xc1, 0x0b, 0x25, 0x01, 0x06, 0xc9, 0x20, 0x1a, 0x44, 0x0b, 0x7b, 0x90, 0x98, 0x68, 0x73, 0x1c, 0x3a, 0x24, 0x5a, 0x87, 0x5f, 0x10, 0x2d, 0xd0, 0xde, 0xff, 0x20, 0x04, 0xc0, 0x8f, 0xc7, 0xc3, 0x6f, 0x30, 0xd8, 0x01, 0x86, 0x5f, 0x10, 0x2d, 0xf0, 0xbe, 0xff, 0xb0, 0x1b, 0xa4, 0xb6, 0x5a, 0x2f, 0x08, 0x16, 0x7e, 0x83, 0xb6, 0xb1, 0x48, 0x0e, 0x06, 0xe7, 0xe3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x8e, 0x07, 0x8f, 0x90, 0x5f, 0x39, 0xbe, 0x2d, 0x41, 0xe2, 0x7f, 0xe1, 0x37, 0x9e, 0x8f, 0x1b, 0xa4, 0x87, 0x79, 0x6f, 0xf0, 0xfc, 0x22, 0x92, 0x83, 0xd4, 0x35, 0xef, 0x83, 0xa1, 0xd9, 0x75, 0x1c, 0x3a, 0x48, 0x69, 0xb4, 0x39, 0x1e, 0x0f, 0xbf, 0x20, 0x5a, 0x40, 0xf0, 0xfb, 0x0f, 0xbb, 0x41, 0x3b, 0x21, 0x4e, 0x0b, 0x82, 0x0d, 0x1e, 0x75, 0x68, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x8b, 0xe3, 0xc1, 0x53, 0xf9, 0x57, 0x8e, 0x6f, 0x4b, 0x20, 0xf8, 0xfe, 0x17, 0x7e, 0xe3, 0xf9, 0xb8, 0x41, 0x7a, 0x98, 0xf7, 0x06, 0xef, 0x45, 0x23, 0x39, 0x48, 0x5d, 0xf3, 0x3e, 0x18, 0xa6, 0x13, 0xc7, 0xa1, 0x83, 0x54, 0x48, 0x9b, 0xe3, 0xf1, 0x20, 0x58, 0x10, 0x2c, 0xfc, 0x82, 0x64, 0xe0, 0x7c, 0x3b, 0x38, 0x09, 0x1d, 0x1f, 0x94, 0x0c, 0x4d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x25, 0x10, 0x72, 0xff, 0xc3, 0x6f, 0x3c, 0x5f, 0x83, 0xc7, 0xe9, 0x95, 0x0c, 0x82, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xc1, 0x82, 0x64, 0x40, 0xf8, 0xee, 0x1c, 0x9c, 0xeb, 0x8f, 0x0f, 0x16, 0x26, 0xff, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0x41, 0xb0, 0xc1, 0x89, 0xcf, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x1b, 0x29, 0x6d, 0x0e, 0xde, 0x1d, 0x65, 0x73, 0x1c, 0x3a, 0x9e, 0x1f, 0x87, 0xd6, 0xe0, 0xb1, 0x7e, 0x25, 0x83, 0x60, 0x83, 0x27, 0x75, 0xda, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xfc, 0x82, 0x60, 0x83, 0x13, 0x9f, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x09, 0x0c, 0xbf, 0xff, 0x83, 0x87, 0x63, 0xd9, 0x1c, 0x87, 0x8e, 0xe7, 0xc7, 0xa1, 0x43, 0x0c, 0x8f, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xa2, 0x05, 0xea, 0xef, 0x20, 0x58, 0x90, 0x6c, 0xb0, 0x76, 0x9d, 0xe2, 0xe0, 0x5c, 0x7f, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0x28, 0xbd, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x56, 0xe1, 0x17, 0x24, 0x1b, 0xac, 0xb9, 0x40, 0x3a, 0x38, 0xd7, 0x1f, 0x1f, 0xdf, 0x86, 0x5f, 0x90, 0x0c, 0x28, 0xfc, 0xfb, 0x0e, 0xce, 0xf5, 0xc7, 0xc7, 0xb7, 0x09, 0x84, 0xbf, 0xff, 0xe2, 0x20, 0x58, 0x10, 0x2c, 0xfc, 0x06, 0xed, 0x2f, 0xa3, 0x1c, 0x9c, 0x83, 0xbf, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x4b, 0xf0, 0xf4, 0xff, 0x12, 0x38, 0x7e, 0xff, 0x6f, 0x50, 0x1c, 0x6a, 0x2c, 0xfc, 0xc6, 0xf3, 0x0d, 0x5e, 0x56, 0x43, 0xb2, 0xc1, 0xdb, 0x56, 0x49, 0x36, 0x18, 0x3f, 0x5d, 0x07, 0x2f, 0x5e, 0x71, 0x38, 0x18, 0x17, 0x66, 0xc7, 0xa1, 0x41, 0xb0, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x06, 0xf6, 0xfa, 0x0e, 0x8e, 0x19, 0xcb, 0x07, 0x0f, 0x85, 0xbb, 0x38, 0x28, 0x20, 0x40, 0x86, 0x5f, 0x10, 0x2d, 0xec, 0xb0, 0x1b, 0x8c, 0x8e, 0xf5, 0x05, 0xc1, 0xc2, 0x6f, 0xd0, 0xe6, 0xd4, 0xc8, 0x41, 0xfa, 0x97, 0xc2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0x23, 0xc1, 0x43, 0xaa, 0xe6, 0x38, 0x74, 0x48, 0x1d, 0x1c, 0x8f, 0x07, 0xc1, 0x82, 0x60, 0x41, 0x32, 0xb0, 0xd7, 0x77, 0x90, 0x16, 0x34, 0x72, 0xf0, 0xd2, 0xb9, 0x8b, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x25, 0x8c, 0xc4, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc2, 0x6f, 0xd0, 0xe6, 0xd4, 0xc8, 0x41, 0x33, 0x8c, 0x4a, 0x87, 0x46, 0x2d, 0xc7, 0xa1, 0xe3, 0xf1, 0x71, 0xe8, 0x20, 0xe0, 0xfd, 0x8f, 0x43, 0xc7, 0xe3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x2f, 0x88, 0x16, 0x58, 0xef, 0x1f, 0x04, 0x0b, 0x82, 0x0d, 0xde, 0x36, 0x49, 0x32, 0x48, 0x06, 0xb7, 0x0e, 0x1e, 0x1f, 0x68, 0x73, 0x68, 0xd4, 0x72, 0x3c, 0x1e, 0x04, 0x1b, 0x8c, 0x04, 0x9c, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x82, 0x0d, 0x5e, 0x28, 0x09, 0x30, 0x48, 0x86, 0x39, 0x78, 0x7c, 0xa0, 0xcd, 0xc1, 0xf8, 0x30, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x28, 0xde, 0xfb, 0x0e, 0xce, 0x79, 0xc7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xa9, 0x9a, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x61, 0x37, 0x08, 0x86, 0xfd, 0x85, 0xdd, 0xe0, 0x25, 0xa9, 0x24, 0x0b, 0xbb, 0x41, 0xb9, 0x77, 0xb8, 0xb0, 0x0b, 0xb7, 0xc1, 0x03, 0xdd, 0x4a, 0x0e, 0x0d, 0x75, 0x36, 0xc4, 0x70, 0xb8, 0x0d, 0xda, 0x62, 0x02, 0x38, 0x34, 0xd4, 0x39, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x1f, 0x8f, 0x8f, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0xf1, 0x78, 0x10, 0x6c, 0x30, 0xf2, 0x1f, 0x16, 0x07, 0xd1, 0x82, 0xea, 0x83, 0x64, 0x81, 0x85, 0xc3, 0x0a, 0xed, 0xf1, 0xf8, 0x78, 0x3c, 0xfc, 0xc6, 0xe3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0xc5, 0x39, 0x78, 0xe1, 0x60, 0xc9, 0xe2, 0xb0, 0x1b, 0xb4, 0x38, 0x05, 0xb3, 0xb0, 0x1b, 0xf2, 0x58, 0x0b, 0x82, 0x85, 0xdf, 0xe0, 0x5d, 0x22, 0x11, 0x07, 0xef, 0x4d, 0x0b, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xe8, 0x21, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x38, 0xeb, 0x0e, 0x86, 0xa1, 0xcf, 0x41, 0xa3, 0x13, 0x4a, 0xc7, 0xa1, 0xc3, 0x29, 0x36, 0xfc, 0x82, 0x68, 0x41, 0xed, 0x20, 0xd8, 0xe0, 0x8d, 0x90, 0x25, 0x87, 0x4e, 0x44, 0xc7, 0xe3, 0x41, 0xb0, 0x41, 0x61, 0x1d, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x1b, 0x3a, 0xa9, 0x1d, 0xbc, 0x8e, 0xb2, 0x64, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x79, 0xec, 0xc5, 0x41, 0xb0, 0x41, 0xc3, 0x22, 0x2b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x9a, 0x3c, 0x59, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0xf1, 0xe0, 0xa5, 0x75, 0x26, 0x87, 0x1e, 0x42, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0x90, 0x6d, 0xf0, 0xfa, 0xca, 0x92, 0x41, 0xb0, 0xf0, 0x0b, 0x82, 0x85, 0x5f, 0x10, 0x6c, 0x70, 0x0e, 0xfe, 0x3e, 0x74, 0x22, 0x3a, 0x28, 0x87, 0x92, 0x0e, 0x5e, 0x31, 0x5b, 0x72, 0x30, 0xee, 0xa0, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0xdf, 0xd0, 0x48, 0x70, 0x83, 0xa2, 0x13, 0xe6, 0x60, 0x64, 0xf6, 0x1e, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0x1c, 0x78, 0xb6, 0xf2, 0x60, 0x34, 0x0b, 0x1c, 0x8f, 0x17, 0x7e, 0x41, 0xb0, 0xb8, 0x41, 0x00, 0xdc, 0x1f, 0xbc, 0x1e, 0x3a, 0x63, 0x71, 0x41, 0xb0, 0xc1, 0x6a, 0x8e, 0xa3, 0xc5, 0x41, 0xb6, 0x86, 0x3c, 0xf6, 0x78, 0xf0, 0xbc, 0x3b, 0x96, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x1b, 0xb4, 0xd6, 0x7e, 0x32, 0x48, 0x06, 0xca, 0xdd, 0x21, 0xa7, 0x71, 0x48, 0xc3, 0x0d, 0xbf, 0x20, 0x5a, 0x70, 0xfe, 0x20, 0x04, 0xc0, 0x8f, 0xc7, 0xc3, 0x6f, 0x30, 0xd8, 0x01, 0x86, 0xdd, 0x38, 0xb4, 0x20, 0x58, 0x90, 0xad, 0x21, 0x8f, 0x3d, 0x1e, 0xbc, 0xaf, 0x90, 0x65, 0x10, 0x2c, 0x48, 0x06, 0xfa, 0xde, 0x1d, 0x0c, 0x43, 0x9f, 0x83, 0x55, 0x9c, 0xfc, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x08, 0x36, 0x58, 0x63, 0x99, 0x30, 0x48, 0x06, 0x4a, 0xdd, 0x41, 0x99, 0xee, 0x70, 0x90, 0xcc, 0xf7, 0x30, 0xfc, 0x82, 0x68, 0x81, 0xe1, 0x3f, 0x08, 0x01, 0xf0, 0xe3, 0xf1, 0xf0, 0x1b, 0x0c, 0x76, 0x80, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x58, 0x1f, 0xe9, 0x70, 0x30, 0xb0, 0x45, 0x87, 0x5f, 0x10, 0x2d, 0x50, 0xfc, 0x0f, 0x42, 0x00, 0xfc, 0x78, 0x3c, 0xfc, 0x06, 0x83, 0x1d, 0x60, 0x43, 0x57, 0x98, 0x83, 0x92, 0xa0, 0x61, 0x90, 0xad, 0x21, 0x8f, 0x3d, 0x1e, 0xbc, 0x25, 0x90, 0xe5, 0x70, 0x8a, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0xac, 0xe6, 0x38, 0x5a, 0x1c, 0x64, 0x6b, 0xc8, 0x63, 0x8f, 0x07, 0xef, 0x00, 0x65, 0x19, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0xe0, 0x29, 0x03, 0x37, 0xc3, 0x6f, 0xf0, 0xfe, 0x82, 0x9b, 0xe1, 0x37, 0x18, 0xec, 0x00, 0xc3, 0x6e, 0x1c, 0x5a, 0xd8, 0x85, 0x5b, 0x3c, 0x78, 0x58, 0x88, 0xc8, 0xa1, 0x87, 0xd0, 0x82, 0x6c, 0x0d, 0x79, 0xec, 0xf1, 0xe0, 0xa9, 0xab, 0x2c, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x08, 0x36, 0x78, 0xfd, 0x78, 0xc1, 0x20, 0x19, 0x08, 0xdf, 0x41, 0xc8, 0xe1, 0x1f, 0xa4, 0xc3, 0x41, 0x0c, 0xbf, 0x41, 0x81, 0x3b, 0x32, 0xfc, 0x06, 0x83, 0x1d, 0x60, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x05, 0xc1, 0x06, 0x6b, 0x2c, 0x13, 0x06, 0xc9, 0x40, 0xb9, 0x3b, 0x28, 0xd3, 0x1d, 0x0e, 0x86, 0xb1, 0xc3, 0xf0, 0x1b, 0xbc, 0xe8, 0xe1, 0x66, 0xf8, 0x0d, 0x06, 0x3b, 0xc0, 0xb0, 0x1b, 0x87, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0x41, 0xc3, 0x08, 0x51, 0x83, 0x64, 0x20, 0x7c, 0x07, 0x6d, 0x69, 0xb4, 0x1c, 0x24, 0xde, 0x04, 0x0d, 0xbf, 0xc1, 0x33, 0x27, 0x6e, 0x86, 0xdf, 0x60, 0xb0, 0x03, 0x0c, 0xbf, 0x20, 0x5a, 0xa0, 0xf8, 0x0f, 0x82, 0x05, 0xc1, 0x82, 0x64, 0x50, 0x76, 0x30, 0x1c, 0xa5, 0x07, 0xc9, 0x60, 0x36, 0x88, 0x16, 0xf6, 0xe0, 0xcc, 0xb8, 0x7c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x70, 0xa2, 0x88, 0x3e, 0x38, 0x46, 0xeb, 0x1e, 0x87, 0x8e, 0xc7, 0xc3, 0x6e, 0xb0, 0x6c, 0x30, 0x68, 0x35, 0x1c, 0xed, 0x87, 0x7c, 0xed, 0x41, 0x49, 0xd0, 0x70, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0x06, 0x01, 0xc9, 0x7c, 0x48, 0x76, 0x1c, 0x4e, 0xb1, 0xe3, 0xf1, 0x82, 0x60, 0x83, 0xd5, 0x1c, 0x47, 0x8b, 0xc3, 0x2e, 0xec, 0x06, 0xa3, 0x17, 0x6b, 0x61, 0x37, 0x78, 0x49, 0xec, 0xcc, 0xc2, 0x6e, 0x90, 0xd8, 0xf5, 0xb3, 0xc1, 0x28, 0xe8, 0x3d, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x2f, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x82, 0x60, 0x83, 0xd6, 0xda, 0x4f, 0x06, 0xc9, 0x40, 0xa9, 0x3b, 0xe4, 0x34, 0x0e, 0x52, 0xfc, 0x1c, 0x86, 0xdf, 0xe0, 0xfd, 0x05, 0x37, 0xc3, 0x6f, 0x30, 0xd8, 0x01, 0x86, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0x20, 0x7d, 0x9c, 0xe8, 0x60, 0x60, 0x8b, 0x0e, 0xbf, 0x41, 0x81, 0x3b, 0x32, 0xfc, 0x06, 0x83, 0x1d, 0x60, 0x0d, 0x1e, 0xd3, 0xd5, 0x71, 0x1c, 0x3a, 0x08, 0x52, 0xfc, 0x61, 0x17, 0x76, 0x83, 0xd1, 0x8b, 0xb5, 0xb0, 0x1b, 0x3c, 0x4d, 0xbf, 0x64, 0x61, 0x37, 0x48, 0xec, 0xfa, 0x59, 0xd8, 0x0d, 0x06, 0x64, 0xef, 0xc2, 0x6e, 0x50, 0xc4, 0x0d, 0x2e, 0xec, 0x06, 0x0f, 0xe4, 0xa7, 0x59, 0xd8, 0x0d, 0xd6, 0x2a, 0xf8, 0x1f, 0xd6, 0x37, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0x05, 0xc1, 0x82, 0x6c, 0x0d, 0x79, 0xec, 0xf1, 0xe0, 0x21, 0xe6, 0x2c, 0x83, 0x60, 0x41, 0x32, 0x90, 0xbc, 0x3b, 0x18, 0xef, 0x3a, 0x87, 0x4e, 0x44, 0x83, 0x60, 0x41, 0xb6, 0x86, 0x3c, 0xf6, 0x78, 0xf0, 0x56, 0x76, 0x96, 0x61, 0x17, 0x04, 0x0b, 0x82, 0x05, 0xc9, 0x40, 0xfb, 0x9d, 0x83, 0xe1, 0x28, 0x7d, 0xf0, 0x08, 0x61, 0x92, 0x83, 0x25, 0x55, 0xfd, 0x1b, 0x84, 0x3d, 0xf5, 0xe1, 0x14, 0x1b, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x57, 0x33, 0xdc, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xd7, 0xe8, 0x07, 0x81, 0x89, 0x7d, 0x1c, 0x1a, 0x7e, 0x83, 0x17, 0x3d, 0xdc, 0x0c, 0xbf, 0xc1, 0x60, 0x07, 0x18, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0x41, 0xc3, 0x08, 0x51, 0x83, 0x64, 0xa0, 0xd4, 0x1d, 0xb4, 0xa5, 0xd1, 0x72, 0x90, 0x66, 0xbe, 0x3d, 0xfc, 0x06, 0xcf, 0x9c, 0xb8, 0x19, 0x7e, 0x83, 0xc1, 0x0e, 0x30, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x82, 0x64, 0x10, 0x1d, 0x04, 0xbc, 0xff, 0xc1, 0xc0, 0x16, 0x1d, 0x7e, 0x41, 0xb4, 0xc0, 0xf1, 0x7f, 0x10, 0x02, 0xe0, 0xc7, 0xe3, 0xe1, 0x37, 0x18, 0xec, 0x00, 0x6b, 0xf0, 0xa6, 0xc2, 0x8e, 0x83, 0x87, 0x5f, 0x93, 0x1c, 0x9c, 0x19, 0x97, 0x87, 0x5d, 0xd8, 0x0d, 0x46, 0x2f, 0xd6, 0xc2, 0x6e, 0xf0, 0x34, 0xcd, 0x99, 0x85, 0xdd, 0x20, 0xb1, 0xeb, 0x67, 0x61, 0x37, 0x18, 0x05, 0xbd, 0x0b, 0xbb, 0xc1, 0x80, 0xec, 0xdd, 0xa0, 0x88, 0x1b, 0x3c, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0xc3, 0xd1, 0xbe, 0x20, 0x58, 0x90, 0x6d, 0xf0, 0x3e, 0xa9, 0x9b, 0x61, 0x17, 0x04, 0x0b, 0x82, 0x05, 0xc9, 0x40, 0xfb, 0x9d, 0x83, 0xe1, 0x1f, 0x7b, 0xf0, 0x08, 0x61, 0x92, 0x43, 0x27, 0xa2, 0x83, 0x91, 0xd4, 0x3b, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x82, 0x60, 0x83, 0xd7, 0x8f, 0x17, 0x0c, 0x92, 0x81, 0x52, 0x77, 0x10, 0x72, 0xf8, 0x07, 0xe9, 0x70, 0x10, 0xc3, 0x6f, 0x50, 0xe0, 0x8e, 0x0c, 0xbf, 0xc1, 0x60, 0x07, 0x18, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x57, 0x33, 0xdc, 0x1c, 0xa4, 0x99, 0x6f, 0x0f, 0xbf, 0xc1, 0x8b, 0x1e, 0x6e, 0x86, 0xdf, 0x60, 0xb0, 0x03, 0x0c, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xc1, 0x3a, 0x52, 0x8d, 0x83, 0x81, 0x2d, 0x3a, 0xfc, 0x06, 0xcf, 0x9c, 0xb8, 0x19, 0x7e, 0x83, 0xc1, 0x0e, 0xb0, 0x06, 0xaf, 0xf5, 0xec, 0x38, 0x78, 0x16, 0x36, 0xc9, 0x41, 0x49, 0xd0, 0x30, 0xec, 0xc2, 0x6e, 0x30, 0x7a, 0xb1, 0x16, 0x76, 0x83, 0x47, 0xf2, 0xcf, 0x2c, 0xec, 0x06, 0x89, 0x5d, 0x3f, 0x1b, 0x8c, 0x88, 0xde, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0x82, 0x60, 0x41, 0xb0, 0x41, 0xab, 0x99, 0x4e, 0xc3, 0x2e, 0xec, 0x06, 0xad, 0xf3, 0x01, 0x2c, 0xec, 0x82, 0x60, 0x83, 0xb7, 0x4f, 0xdd, 0x1c, 0x0c, 0x6c, 0xd1, 0x43, 0x3a, 0xf7, 0x70, 0xb4, 0xaf, 0x71, 0x68, 0x10, 0x2c, 0x48, 0x36, 0x78, 0xa9, 0x84, 0xc7, 0xc1, 0x31, 0xab, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x7b, 0x50, 0x58, 0xa9, 0x1d, 0x87, 0x0e, 0xa7, 0xd8, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x17, 0xcb, 0xdd, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xd7, 0xe8, 0x87, 0xbd, 0xc2, 0xe3, 0xd0, 0xf0, 0x1b, 0x14, 0xb8, 0x23, 0xc3, 0x6f, 0x30, 0xd8, 0x01, 0x06, 0xc9, 0x90, 0x83, 0x34, 0xd2, 0x86, 0xe1, 0x37, 0x28, 0x70, 0x47, 0x86, 0xdf, 0x60, 0xb0, 0x03, 0x0c, 0xbb, 0xc1, 0xe3, 0x06, 0x3b, 0x56, 0x83, 0xf7, 0x92, 0x75, 0x1c, 0x0c, 0x15, 0x81, 0x83, 0x20, 0xc5, 0x3f, 0x9c, 0x62, 0x83, 0x6c, 0x43, 0xf3, 0xf5, 0x41, 0xb6, 0x86, 0x3c, 0xf6, 0x78, 0xf0, 0xcc, 0x67, 0x96, 0x41, 0xb6, 0x86, 0x3c, 0xf6, 0xe2, 0x20, 0x58, 0x90, 0x0c, 0xd4, 0x97, 0x83, 0xe1, 0x1f, 0x7b, 0x30, 0xcc, 0xc2, 0x8f, 0xc7, 0x87, 0x53, 0xec, 0x78, 0x3c, 0x08, 0x36, 0x58, 0xcd, 0x71, 0xb4, 0x38, 0xec, 0x86, 0x5d, 0x83, 0x0d, 0x29, 0x81, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x1b, 0xb4, 0xd6, 0x7e, 0x32, 0x48, 0x06, 0xc2, 0x77, 0xc8, 0x69, 0x1c, 0x24, 0xde, 0x04, 0x0d, 0xbf, 0xc1, 0xfb, 0x0b, 0x6e, 0x86, 0xdf, 0x60, 0xb0, 0x03, 0x0c, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xf0, 0x56, 0x90, 0x9b, 0xe1, 0x37, 0x28, 0x70, 0x47, 0x86, 0xdf, 0x60, 0xb0, 0x03, 0x0c, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x83, 0xf7, 0x75, 0x5d, 0x0c, 0xbf, 0xc1, 0x8b, 0x1e, 0x6e, 0x86, 0xdf, 0x60, 0xb0, 0x03, 0x0c, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x6d, 0x30, 0x22, 0xa8, 0x0e, 0x2b, 0xb4, 0xc3, 0x6f, 0xf0, 0xcc, 0x89, 0x9b, 0xe1, 0x37, 0x18, 0xec, 0x00, 0x1b, 0x0c, 0x15, 0x81, 0x83, 0x92, 0xa0, 0xe1, 0x78, 0x7c, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0xdf, 0x56, 0x1e, 0x52, 0x4b, 0xc7, 0xe3, 0x85, 0x5f, 0x10, 0x2c, 0x2e, 0xfc, 0x82, 0x60, 0x83, 0xd7, 0x43, 0x95, 0x2c, 0x0e, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x37, 0x48, 0xf0, 0x78, 0xde, 0xe0, 0x1c, 0xb9, 0xbb, 0xc1, 0x90, 0xfa, 0xdd, 0x60, 0xfd, 0xe3, 0xcb, 0x06, 0x09, 0x29, 0xf7, 0x1b, 0x24, 0x94, 0x9d, 0x6c, 0x90, 0xe8, 0x07, 0x3d, 0x08, 0x56, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x16, 0x9f, 0x9e, 0x0e, 0x9d, 0x88, 0x0e, 0x31, 0x3c, 0x58, 0xcd, 0x00, 0x74, 0x7c, 0x1b, 0x04, 0x0b, 0x92, 0x81, 0xfd, 0x9f, 0x83, 0x61, 0xe8, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xa7, 0x2a, 0x51, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xa4, 0x0e, 0x36, 0xb4, 0x00, 0x3a, 0x68, 0x56, 0xb6, 0xe4, 0x38, 0x74, 0x88, 0xff, 0x71, 0xe8, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x37, 0x78, 0x36, 0x07, 0xcb, 0x21, 0xb5, 0x74, 0x3c, 0x5e, 0x10, 0x2c, 0x6e, 0x90, 0x06, 0x90, 0x31, 0x07, 0xef, 0xb9, 0xed, 0x58, 0x1c, 0x04, 0x2b, 0x08, 0x36, 0x68, 0xe5, 0xba, 0x7c, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc3, 0xd4, 0x2f, 0x0e, 0x59, 0xbb, 0xe3, 0xd0, 0x82, 0x60, 0x83, 0x56, 0xae, 0xcb, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xbc, 0xe1, 0x6f, 0xe3, 0xd0, 0x43, 0xe8, 0x38, 0x34, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x90, 0x0c, 0xe4, 0xeb, 0x0e, 0xd9, 0x8a, 0x43, 0x0b, 0xb0, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0xc2, 0x2f, 0x08, 0x36, 0x68, 0x7f, 0x9d, 0x69, 0x71, 0x10, 0x2c, 0x08, 0x36, 0x18, 0x59, 0xaf, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0xfb, 0x3f, 0x07, 0xe3, 0x5d, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x6b, 0x37, 0xfc, 0xc6, 0xf3, 0x83, 0xd7, 0xfc, 0xde, 0x1c, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0x6e, 0xb0, 0x5a, 0x04, 0xe9, 0xe0, 0xa9, 0x75, 0x2d, 0xc7, 0xa1, 0x41, 0xb0, 0x20, 0xd8, 0x60, 0xc4, 0xb6, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0x0d, 0xb7, 0x37, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x6b, 0xbf, 0x07, 0xaf, 0x73, 0xbe, 0x39, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0xdc, 0x60, 0xb5, 0x08, 0xd2, 0xc1, 0xf3, 0xfa, 0x5a, 0x8e, 0x43, 0x83, 0x60, 0x41, 0x32, 0xb0, 0xeb, 0x73, 0x30, 0xfc, 0x63, 0x0f, 0xde, 0x6c, 0x42, 0x71, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x1b, 0xbc, 0x72, 0x85, 0xe5, 0x90, 0x5a, 0x3a, 0x1e, 0x2f, 0x08, 0x16, 0x67, 0x83, 0x35, 0x1d, 0x47, 0x87, 0x53, 0x6c, 0x71, 0x90, 0xad, 0x41, 0x5b, 0x20, 0x2b, 0x1b, 0x62, 0xb8, 0x21, 0xf7, 0x3d, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x38, 0x08, 0xd6, 0x90, 0xb5, 0xdb, 0x20, 0x21, 0xe5, 0x7e, 0x83, 0x84, 0xb2, 0x93, 0x41, 0xb0, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x2c, 0x2c, 0xfe, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x83, 0x92, 0x5f, 0x71, 0x10, 0x2c, 0x48, 0x06, 0x3a, 0xf7, 0x1d, 0x0c, 0x47, 0xe9, 0x43, 0xf7, 0xa3, 0xe3, 0xd0, 0x21, 0x86, 0x07, 0xab, 0x19, 0x80, 0x0e, 0x56, 0x33, 0x00, 0x1d, 0xdf, 0x06, 0xd9, 0x06, 0x8f, 0x74, 0x6c, 0x19, 0x04, 0x0b, 0x92, 0xc1, 0x95, 0x83, 0xf1, 0xae, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xe2, 0x20, 0x5b, 0x43, 0x1e, 0x7b, 0x71, 0x43, 0xee, 0x7b, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x71, 0x10, 0xac, 0x21, 0xd9, 0x31, 0x1e, 0xbc, 0x65, 0xb2, 0xe5, 0x60, 0x35, 0x03, 0xd0, 0xf1, 0xed, 0x78, 0x3c, 0x08, 0x36, 0x18, 0xb1, 0xad, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x2d, 0x80, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x83, 0x5b, 0x07, 0xc3, 0xd0, 0x67, 0x90, 0x0c, 0x39, 0x68, 0x48, 0xdc, 0xe5, 0x38, 0x74, 0x3c, 0x3e, 0x0e, 0x1d, 0x8f, 0x87, 0x5f, 0x10, 0x6c, 0xb0, 0x9a, 0xe3, 0x68, 0x71, 0x10, 0x2c, 0xfc, 0x82, 0x64, 0x70, 0xe6, 0x20, 0xe0, 0xfd, 0x8f, 0x6f, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x08, 0x36, 0x68, 0xad, 0xfd, 0xe4, 0x60, 0x60, 0x4a, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xec, 0x15, 0x1e, 0xbc, 0xce, 0xf9, 0xe6, 0x38, 0x34, 0xfc, 0x82, 0x68, 0x83, 0xd2, 0xbd, 0xe3, 0x78, 0x3c, 0xfc, 0x06, 0x83, 0x1d, 0x60, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x05, 0xc1, 0x06, 0xaf, 0x1f, 0x2f, 0x18, 0x24, 0x83, 0xd1, 0xa1, 0x7d, 0xcb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xea, 0x60, 0xf8, 0x8d, 0xe7, 0xe3, 0x06, 0xab, 0x45, 0x90, 0x0e, 0x16, 0xa4, 0x10, 0x1f, 0x87, 0x86, 0xdf, 0xa0, 0x91, 0xac, 0xa7, 0xe1, 0x37, 0x18, 0xec, 0x00, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x08, 0x36, 0x58, 0x63, 0x99, 0x30, 0x48, 0x06, 0xa3, 0x83, 0xb1, 0xbe, 0x3a, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0x3a, 0x38, 0x68, 0x29, 0xca, 0xfd, 0x38, 0x34, 0xfc, 0x06, 0x03, 0x13, 0x60, 0xf8, 0x0d, 0x06, 0x3b, 0xc0, 0x06, 0xe3, 0x4d, 0x67, 0xf8, 0x05, 0xc1, 0x82, 0x60, 0x83, 0x86, 0x11, 0xa2, 0x06, 0xc9, 0x40, 0xfc, 0x0e, 0x46, 0x8d, 0xd1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0x34, 0x0f, 0x12, 0x6d, 0x63, 0x8e, 0x43, 0xc7, 0xf3, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0xdc, 0xe0, 0x35, 0x16, 0x2b, 0x87, 0xd4, 0xd2, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x6e, 0xf0, 0x56, 0xa3, 0x96, 0xc3, 0xd5, 0x75, 0x3c, 0x1e, 0x7e, 0x41, 0xb0, 0xb8, 0xc1, 0xeb, 0xa1, 0x33, 0x0e, 0x1e, 0x22, 0xb3, 0xb1, 0x38, 0xfc, 0x82, 0x60, 0x71, 0x83, 0x34, 0x80, 0x8c, 0x83, 0xf7, 0xdc, 0x76, 0x2c, 0x0e, 0x82, 0xc5, 0x85, 0x5f, 0x10, 0x6c, 0xf0, 0xb4, 0x04, 0x9a, 0xc5, 0x41, 0xb0, 0x86, 0x64, 0xc7, 0xc1, 0x88, 0x64, 0x1a, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x6c, 0x0d, 0x79, 0xec, 0xf1, 0xe0, 0xa5, 0xd1, 0x2d, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x94, 0x1d, 0x9c, 0x84, 0x8e, 0x07, 0xc9, 0xe0, 0xde, 0x20, 0x5a, 0xd8, 0x83, 0x45, 0x1b, 0x63, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x27, 0x8a, 0xe8, 0x43, 0xea, 0xe0, 0x38, 0x34, 0xfc, 0x82, 0x68, 0x81, 0xdc, 0xff, 0x41, 0x08, 0x80, 0x1f, 0x8f, 0x87, 0xdf, 0x60, 0xb0, 0x03, 0x0c, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb6, 0x86, 0x3c, 0xf6, 0x78, 0xf0, 0x0e, 0xed, 0x96, 0x41, 0xb0, 0x20, 0xd8, 0xe0, 0xb9, 0x4b, 0x25, 0x83, 0x64, 0x30, 0x1a, 0x44, 0x1b, 0xb4, 0x77, 0xaf, 0x74, 0x1c, 0x3a, 0x78, 0x07, 0x00, 0xce, 0xf0, 0x0b, 0xa2, 0x05, 0x76, 0xff, 0x0f, 0x42, 0x00, 0xfc, 0x78, 0x3c, 0xfc, 0x06, 0x83, 0x1d, 0x60, 0x10, 0xac, 0x21, 0xd9, 0xb1, 0x41, 0xc8, 0x67, 0x1f, 0x3c, 0xd4, 0x67, 0x62, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xb2, 0x35, 0xe4, 0xb1, 0xc7, 0x83, 0x17, 0xa0, 0xb7, 0x0c, 0x82, 0x05, 0xc1, 0x82, 0x64, 0x50, 0x76, 0x70, 0x3a, 0x43, 0x1e, 0x24, 0x83, 0x7b, 0x83, 0x68, 0x61, 0x0f, 0x8a, 0x5d, 0x9e, 0xe3, 0xd0, 0xc1, 0xe0, 0xf4, 0x19, 0x7e, 0x41, 0xb4, 0xc0, 0xef, 0xff, 0x07, 0x21, 0x00, 0x7e, 0x3c, 0x1e, 0x7e, 0x83, 0xc1, 0x0e, 0x30, 0xec, 0x06, 0xa1, 0xe5, 0xbe, 0x21, 0x86, 0xc3, 0x2e, 0xdc, 0xc1, 0xb2, 0x15, 0xa2, 0x0d, 0x89, 0xa9, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x1b, 0xbc, 0x9f, 0x8c, 0x66, 0x90, 0x0c, 0x84, 0x6f, 0x10, 0x2d, 0xec, 0x41, 0x39, 0xf9, 0x73, 0x1c, 0x3a, 0x48, 0x93, 0x33, 0x19, 0x7e, 0x41, 0xb4, 0x80, 0xb0, 0xff, 0x3f, 0x08, 0x01, 0xf0, 0xe3, 0xf1, 0xf0, 0x1b, 0x0c, 0x76, 0x80, 0x0d, 0x31, 0xdc, 0x10, 0xc3, 0x05, 0xc1, 0x82, 0x64, 0x40, 0xa0, 0x2f, 0x1d, 0x1c, 0x28, 0x92, 0x0f, 0x56, 0xe2, 0xfe, 0x0c, 0x82, 0x0d, 0x1e, 0x47, 0x51, 0x72, 0xf0, 0xe6, 0x1c, 0x9b, 0xe3, 0xf1, 0x41, 0x33, 0x3f, 0x2e, 0x83, 0x60, 0x83, 0x91, 0xff, 0xb0, 0x38, 0xfc, 0xc6, 0xe3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x35, 0x24, 0x3b, 0x36, 0x34, 0x12, 0x3c, 0x24, 0x66, 0x86, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1e, 0x7b, 0x3c, 0x78, 0x4a, 0x83, 0xcb, 0xc1, 0xcb, 0x36, 0x70, 0x86, 0xdf, 0xe0, 0x65, 0x20, 0x38, 0xc3, 0x6f, 0x30, 0xd8, 0x01, 0x06, 0xc1, 0xe2, 0x20, 0x58, 0xdc, 0x60, 0x4d, 0xc7, 0xd1, 0x41, 0xb3, 0x5c, 0x2e, 0x8b, 0xc3, 0x6e, 0x10, 0x24, 0xde, 0x6b, 0x88, 0xe1, 0x20, 0x58, 0x90, 0x0c, 0xac, 0xfa, 0x1c, 0x1c, 0x28, 0x92, 0x0f, 0x46, 0x7d, 0xc6, 0x20, 0xdb, 0xe0, 0x99, 0xdf, 0x08, 0x1b, 0x8e, 0xf6, 0x35, 0x58, 0x38, 0x63, 0xb4, 0xc1, 0xf8, 0xe9, 0x3a, 0x74, 0x52, 0xdb, 0x60, 0x68, 0x76, 0x1d, 0x8c, 0xcc, 0xde, 0xe3, 0xf1, 0xe2, 0x82, 0x60, 0x83, 0x06, 0xb9, 0x5c, 0x16, 0x07, 0xd9, 0x1a, 0xf2, 0xd8, 0xe3, 0xc1, 0x23, 0x60, 0x5c, 0x86, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x06, 0x65, 0x07, 0xe7, 0xfa, 0xe3, 0x41, 0x32, 0x18, 0x0d, 0xa2, 0x85, 0x9d, 0xc0, 0xd8, 0xff, 0x3f, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x6f, 0x3a, 0xc3, 0x6f, 0x3c, 0x1f, 0x37, 0x58, 0x2d, 0x82, 0x74, 0xb0, 0xec, 0x3e, 0xea, 0x38, 0x34, 0xfc, 0x82, 0x68, 0x01, 0x63, 0xff, 0xff, 0x20, 0x04, 0xc0, 0x8f, 0xc7, 0xc3, 0x6f, 0x30, 0xd8, 0x01, 0x06, 0xc1, 0x82, 0x60, 0x41, 0x32, 0xe4, 0x90, 0xad, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x18, 0xef, 0x3a, 0x1b, 0x34, 0xc8, 0x52, 0x74, 0x88, 0xe6, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x0f, 0xe0, 0xc2, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x18, 0xef, 0x3a, 0x1b, 0xb4, 0x16, 0xd2, 0x7e, 0x10, 0x94, 0xde, 0x87, 0xbd, 0xc2, 0xe3, 0xd0, 0x71, 0x68, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x05, 0xc1, 0x06, 0xcf, 0xaf, 0x26, 0x19, 0x24, 0x03, 0x63, 0x37, 0x88, 0x16, 0xf6, 0xa0, 0xfc, 0x4d, 0x3a, 0x0e, 0x1d, 0x0c, 0x4e, 0x9f, 0xe1, 0x17, 0x44, 0x6b, 0x50, 0x06, 0x27, 0x1d, 0x84, 0x00, 0xf8, 0xf1, 0x78, 0xf8, 0x0d, 0x06, 0x3b, 0xc0, 0x20, 0x58, 0x90, 0x0c, 0xb2, 0x83, 0x20, 0xe7, 0x3f, 0x18, 0xd8, 0xa2, 0xc7, 0xe3, 0x05, 0xc1, 0x06, 0x6f, 0x1b, 0x2c, 0x59, 0x1c, 0x64, 0x6b, 0xc8, 0x63, 0x8f, 0x07, 0x2f, 0x56, 0x72, 0x19, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x67, 0x4e, 0xe1, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x6f, 0x3a, 0xc3, 0x6f, 0x3c, 0x1f, 0x37, 0x58, 0x2d, 0x82, 0x74, 0xd0, 0xe6, 0x0e, 0xd5, 0x71, 0x68, 0xf8, 0x0d, 0x5e, 0x98, 0x85, 0x33, 0xfc, 0x06, 0x83, 0x1d, 0x60, 0x10, 0xac, 0x06, 0x0b, 0x2f, 0x8c, 0x36, 0x48, 0x0b, 0xcd, 0x3e, 0x08, 0xc0, 0xe7, 0x43, 0x0f, 0xa1, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0x2f, 0x97, 0x22, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x2f, 0x81, 0x64, 0xfe, 0xff, 0x43, 0xfc, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x78, 0xb9, 0x14, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xc1, 0x30, 0xf4, 0x39, 0x78, 0xa1, 0x17, 0xce, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x2f, 0x97, 0x22, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x18, 0x86, 0x3e, 0x07, 0x2f, 0x13, 0xc3, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0xe5, 0x52, 0x24, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xa9, 0x83, 0x83, 0xe0, 0xe1, 0x3e, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x41, 0xd9, 0xc1, 0x31, 0x63, 0x79, 0x90, 0x0c, 0x8c, 0xdd, 0x20, 0x5a, 0xd8, 0x09, 0xa4, 0xfd, 0xff, 0x1f, 0x87, 0x0e, 0x8a, 0xd1, 0x9f, 0xe1, 0x17, 0x44, 0x0b, 0x48, 0xfb, 0xff, 0x3f, 0x08, 0x01, 0xf0, 0xe3, 0xf1, 0xf0, 0x1b, 0x0c, 0x76, 0x80, 0x41, 0xb0, 0xc1, 0x13, 0x54, 0x48, 0x0e, 0x06, 0xb6, 0xe8, 0xf1, 0x78, 0x10, 0x6c, 0xb0, 0x9a, 0xe3, 0x68, 0x71, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x05, 0xc1, 0x06, 0xaf, 0x9e, 0xc2, 0x19, 0x24, 0x03, 0xe1, 0x3b, 0x78, 0x4b, 0x15, 0xce, 0x41, 0xe2, 0x4d, 0xd0, 0xf0, 0x1b, 0xbc, 0x30, 0x0b, 0x67, 0xf8, 0x0d, 0x06, 0x3b, 0xc0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x82, 0x05, 0xc9, 0xa0, 0xec, 0xe0, 0x40, 0x91, 0x3c, 0x48, 0x06, 0xc2, 0x37, 0x88, 0x16, 0x76, 0x02, 0x65, 0xff, 0xff, 0x71, 0xe8, 0x20, 0x1d, 0x0e, 0x62, 0xf8, 0x05, 0xd1, 0x02, 0xca, 0xfe, 0xff, 0x83, 0x10, 0x00, 0x3f, 0x1e, 0x0f, 0xbf, 0xc1, 0x60, 0x07, 0x18, 0x7e, 0x41, 0xb4, 0x60, 0x76, 0xf0, 0x9a, 0xdf, 0x9b, 0xe3, 0xf1, 0x06, 0x43, 0x45, 0xe0, 0xe0, 0x59, 0x97, 0x38, 0xc7, 0xe3, 0xe3, 0xf1, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x6e, 0xf0, 0x9e, 0xe0, 0x96, 0xc3, 0xd5, 0x75, 0x3c, 0x3e, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x0d, 0x9e, 0xa9, 0x8d, 0x72, 0x48, 0x2d, 0x1d, 0x8f, 0x8f, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xe0, 0xed, 0xc2, 0x83, 0xd1, 0x2c, 0x70, 0x3c, 0x5e, 0x5c, 0xf8, 0x0d, 0x96, 0x85, 0xc1, 0x8c, 0x83, 0x6c, 0x0d, 0xda, 0x02, 0x59, 0xd9, 0x10, 0xc3, 0x0d, 0xb9, 0xef, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0xc5, 0xf1, 0xe0, 0x6d, 0x8d, 0x2e, 0xc7, 0xb7, 0x41, 0xb0, 0x90, 0x83, 0xf1, 0x2f, 0x39, 0xc8, 0xd6, 0xa0, 0x2d, 0x90, 0x95, 0x0d, 0x31, 0xdc, 0x90, 0xfb, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x1c, 0x0f, 0x9e, 0x60, 0xe9, 0x72, 0x7c, 0x1b, 0x04, 0x0b, 0xb2, 0x0d, 0x1e, 0xe9, 0xd8, 0x32, 0x64, 0x8d, 0x43, 0x07, 0x8b, 0xad, 0xf8, 0x0f, 0x96, 0x09, 0xfa, 0x0c, 0xb2, 0x35, 0x68, 0x0b, 0x64, 0x65, 0x43, 0x0c, 0x37, 0xe4, 0xbe, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0xc7, 0x83, 0xb7, 0xb0, 0xba, 0x1c, 0xdf, 0x86, 0x5f, 0x10, 0x2d, 0xec, 0x20, 0xdb, 0xe0, 0x91, 0x8e, 0x2d, 0x43, 0x0e, 0xc2, 0xcd, 0xfd, 0x78, 0x3c, 0xc8, 0xd6, 0xa0, 0x2d, 0x90, 0x95, 0x0d, 0x31, 0xdc, 0x90, 0xfb, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x1c, 0x0f, 0x1e, 0x47, 0xeb, 0x72, 0x7c, 0x1b, 0x04, 0x0b, 0xb2, 0x0d, 0x1e, 0xe9, 0xd8, 0x32, 0xfc, 0x42, 0xd6, 0x90, 0x3a, 0xd8, 0x20, 0xa4, 0xc0, 0xc7, 0xa0, 0x57, 0xfc, 0xc1, 0x32, 0x41, 0x9f, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0xb6, 0x40, 0x56, 0x36, 0xc4, 0x70, 0x43, 0xee, 0x7b, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x71, 0x3c, 0x78, 0x32, 0xb0, 0xcb, 0xf1, 0x6d, 0x10, 0x2c, 0xc8, 0x36, 0x78, 0xa4, 0x63, 0xcb, 0x90, 0x35, 0xa4, 0x6a, 0x36, 0x0e, 0x1d, 0x8c, 0x37, 0x9d, 0x83, 0x65, 0x82, 0x3e, 0x83, 0x6c, 0x0d, 0xda, 0x02, 0x59, 0xd9, 0x10, 0xc3, 0x0d, 0xb9, 0xef, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0xc5, 0xf1, 0xe0, 0x89, 0xcc, 0x2e, 0xc7, 0xb7, 0x41, 0xb6, 0xc1, 0x23, 0x1d, 0x5b, 0x16, 0xb2, 0xa1, 0xe1, 0xd7, 0x41, 0x08, 0x80, 0x1f, 0x8c, 0x77, 0x9d, 0xe1, 0x37, 0x24, 0xa6, 0xc6, 0x41, 0xb0, 0x20, 0x58, 0xc8, 0xc6, 0xf3, 0xe3, 0xd0, 0xc1, 0x48, 0xd3, 0x1a, 0x04, 0x8b, 0xc3, 0x6e, 0x30, 0x62, 0xb1, 0x36, 0x44, 0x73, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x90, 0x0d, 0x06, 0x0d, 0xc6, 0xc1, 0x32, 0x41, 0x9f, 0x83, 0xa0, 0xf4, 0x3e, 0x1e, 0x1f, 0xdf, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0x83, 0x25, 0x98, 0xc4, 0x87, 0xd4, 0xd2, 0xf1, 0x78, 0x41, 0xb0, 0xc1, 0x42, 0x13, 0xa3, 0xc5, 0x41, 0xb0, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0xd8, 0xa0, 0x25, 0xd1, 0x99, 0x41, 0x32, 0x90, 0xbe, 0x3b, 0x18, 0x35, 0x46, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xd6, 0x88, 0xfd, 0x1c, 0x1a, 0xb5, 0x1c, 0x87, 0x8e, 0xc7, 0x0b, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x8f, 0x07, 0xef, 0x1c, 0x79, 0x39, 0x0e, 0x2d, 0x08, 0x36, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x1e, 0x3c, 0xe9, 0xe4, 0xe5, 0x38, 0xb4, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x78, 0xf0, 0x7a, 0x95, 0x97, 0xe3, 0xd0, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x78, 0xf0, 0x94, 0x98, 0x97, 0xe3, 0xd0, 0xf1, 0x78, 0x05, 0xc1, 0x06, 0x23, 0xff, 0x61, 0x71, 0x41, 0xb0, 0xc1, 0x6a, 0x8e, 0xa3, 0xc5, 0x41, 0xb0, 0xb0, 0x1b, 0x8c, 0x58, 0xac, 0xc5, 0x0d, 0x8a, 0x49, 0xcc, 0x0d, 0x3f, 0xd4, 0x1c, 0x14, 0x35, 0xe2, 0xc3, 0x6e, 0x50, 0x84, 0x0c, 0x6e, 0xb0, 0x16, 0x57, 0x7f, 0xdc, 0xa0, 0x98, 0xc4, 0xdc, 0xa0, 0x48, 0xc5, 0x3c, 0x28, 0x6a, 0xc4, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0xe0, 0xa4, 0x66, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x10, 0xff, 0xe1, 0x37, 0x9e, 0x6f, 0xb0, 0x64, 0xdb, 0x69, 0xe3, 0xd0, 0xc1, 0x50, 0x44, 0x3a, 0x0e, 0x0d, 0xbf, 0x41, 0x43, 0x1e, 0x4f, 0xc3, 0x6f, 0x30, 0xd8, 0x01, 0x36, 0x68, 0xdd, 0x1f, 0xe6, 0x60, 0xbc, 0xe9, 0x1c, 0x8f, 0x57, 0x10, 0x6c, 0xb0, 0x9c, 0x5a, 0x7f, 0x71, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x5e, 0x8e, 0x11, 0x71, 0x50, 0xf2, 0x8c, 0x0d, 0xbf, 0xc1, 0xb0, 0x0d, 0x18, 0x7e, 0x83, 0xc1, 0x0e, 0xb0, 0xc1, 0x2a, 0x76, 0xfd, 0x83, 0xc0, 0xc4, 0x3e, 0x1e, 0xaf, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x76, 0x41, 0xb0, 0x20, 0xd8, 0xa0, 0x51, 0xf7, 0x98, 0x41, 0x32, 0x30, 0x7d, 0x87, 0x9c, 0xc6, 0x41, 0x8b, 0x1c, 0x2d, 0x1b, 0x8c, 0x52, 0xce, 0x41, 0xb0, 0x20, 0xd8, 0xa0, 0x3d, 0x0b, 0x80, 0xc5, 0x41, 0xb0, 0x20, 0xd8, 0xa0, 0xb5, 0xaa, 0xa0, 0x83, 0xf6, 0x71, 0x99, 0x0e, 0x56, 0xff, 0xe8, 0x1c, 0x8f, 0x87, 0x5d, 0x10, 0x6c, 0x50, 0xfc, 0x0f, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0xc7, 0xd7, 0xc1, 0x30, 0xf4, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0x1d, 0x1c, 0x0c, 0x99, 0xa7, 0xe3, 0xd0, 0x71, 0x68, 0x0d, 0x31, 0x1c, 0x44, 0x0b, 0x19, 0x04, 0x0b, 0x82, 0x0d, 0x56, 0xd9, 0xfd, 0x0f, 0x92, 0xc1, 0xa9, 0x83, 0x90, 0xc3, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x1e, 0x0c, 0x99, 0xa7, 0xe3, 0xd0, 0x41, 0x60, 0x62, 0x0f, 0xb2, 0x35, 0x68, 0x0b, 0x64, 0x65, 0x43, 0x0c, 0x07, 0xc1, 0x82, 0x64, 0x20, 0xfd, 0x73, 0x30, 0xde, 0x75, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x34, 0x50, 0x98, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xb8, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x39, 0x78, 0xf3, 0xdd, 0xcb, 0xc1, 0x9b, 0xef, 0x5e, 0x8e, 0x43, 0xc7, 0xa1, 0x41, 0xb0, 0x20, 0x19, 0x38, 0x7f, 0x0e, 0xc6, 0xbb, 0xce, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x06, 0x04, 0x7f, 0xdf, 0xc1, 0x49, 0xe8, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x38, 0xbe, 0x0e, 0x86, 0x7f, 0xec, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xea, 0xe0, 0x90, 0x98, 0x39, 0x0e, 0x1d, 0x87, 0x06, 0xc1, 0x82, 0x60, 0x83, 0x26, 0xb5, 0xcd, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0xe3, 0xeb, 0x60, 0x38, 0x4a, 0x1f, 0xbc, 0xfe, 0x2b, 0xe2, 0x38, 0x34, 0xc8, 0xd6, 0xa0, 0x2d, 0x90, 0x95, 0x0d, 0x31, 0x1c, 0x04, 0x1b, 0x34, 0x2c, 0xb2, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0xc9, 0x93, 0x95, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0xc7, 0x35, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0xcd, 0xc1, 0x83, 0x0e, 0x5f, 0x0e, 0x1e, 0x74, 0xf8, 0x72, 0x1c, 0x3a, 0x0e, 0x0d, 0xb2, 0x35, 0x68, 0x0b, 0x64, 0xe5, 0x60, 0xfc, 0x4b, 0x0e, 0xb2, 0x35, 0x68, 0x0b, 0x64, 0x65, 0x43, 0x0c, 0x07, 0xc1, 0x06, 0x0d, 0x8b, 0xac, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0xf2, 0x64, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x71, 0x0d, 0x75, 0x7c, 0xc3, 0xcb, 0x77, 0x73, 0xf0, 0x48, 0xc6, 0x97, 0x83, 0x47, 0x32, 0xbe, 0x1c, 0x87, 0x8e, 0x43, 0x83, 0x6c, 0x0d, 0xda, 0x02, 0x59, 0x39, 0x2c, 0xf2, 0x6d, 0x38, 0xda, 0x0f, 0x06, 0x22, 0xf5, 0xf1, 0x78, 0x10, 0x2c, 0x6e, 0xb0, 0xa6, 0xe3, 0xe8, 0xe0, 0x11, 0x60, 0x1e, 0x8b, 0xc3, 0x6f, 0x3c, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x65, 0xf0, 0x02, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x59, 0xbb, 0xe1, 0x37, 0x9e, 0x6f, 0xb0, 0x4e, 0x04, 0xe9, 0xd0, 0x48, 0xf0, 0x38, 0x34, 0xfc, 0x06, 0xc3, 0x36, 0x60, 0xf8, 0x0d, 0x06, 0x3b, 0xc0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x92, 0x81, 0xf0, 0x1d, 0x56, 0x68, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xd9, 0xf3, 0x43, 0xea, 0xe0, 0x38, 0x34, 0xfc, 0x06, 0x0d, 0x79, 0x3c, 0x0d, 0xbf, 0xc1, 0x60, 0x07, 0x18, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0xc3, 0x6e, 0xf0, 0xaa, 0x56, 0x8b, 0x05, 0xc1, 0x82, 0x64, 0x60, 0xe8, 0x0e, 0xd9, 0x8a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x68, 0x1e, 0xa4, 0xb9, 0x67, 0x1c, 0x87, 0x06, 0xd9, 0x1a, 0xda, 0xaf, 0x0f, 0x77, 0xd0, 0xce, 0x1e, 0xcc, 0x20, 0x58, 0x90, 0x0c, 0x4e, 0x1d, 0xb2, 0x15, 0x07, 0x0f, 0xcc, 0xc9, 0x19, 0x7e, 0x41, 0xb4, 0x40, 0xf8, 0x0f, 0x42, 0x00, 0xfc, 0x78, 0x3c, 0xfc, 0x06, 0x83, 0x1d, 0x60, 0xd8, 0x8d, 0x43, 0xab, 0x21, 0x6b, 0x37, 0x88, 0x36, 0x78, 0xe0, 0x6b, 0xc5, 0x21, 0x5f, 0x7b, 0x30, 0x78, 0x27, 0x0f, 0xa7, 0xd8, 0xf1, 0x78, 0x10, 0x6c, 0xf0, 0xda, 0x94, 0x9c, 0xc5, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x78, 0xf9, 0xbe, 0xc4, 0xc1, 0x61, 0xad, 0x76, 0xf8, 0x0d, 0x86, 0x6d, 0xc0, 0xf0, 0x1b, 0x0c, 0x76, 0x80, 0x41, 0xb0, 0xc1, 0x51, 0x1c, 0xfd, 0xe0, 0x55, 0x07, 0x38, 0xc7, 0xe3, 0x05, 0xc1, 0xe2, 0x86, 0xe9, 0x3c, 0x68, 0x96, 0xcb, 0x65, 0x71, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xbb, 0x41, 0x90, 0x78, 0x2f, 0x08, 0x16, 0x24, 0x03, 0x43, 0x77, 0x48, 0x2e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x64, 0xed, 0x0e, 0x8d, 0x8b, 0x8e, 0x43, 0x83, 0x6c, 0x83, 0x67, 0x7e, 0x23, 0x0c, 0x82, 0x0d, 0x8e, 0x8a, 0xff, 0x07, 0x6f, 0x6b, 0xca, 0x19, 0x7e, 0x83, 0x61, 0x1b, 0x30, 0xfc, 0x06, 0x83, 0x1d, 0x60, 0xd8, 0x8d, 0x43, 0x1b, 0x04, 0x26, 0xf6, 0xe1, 0x14, 0x3b, 0x1e, 0xaf, 0x20, 0xd8, 0xa0, 0x41, 0x2e, 0x97, 0xc5, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x38, 0x07, 0x7f, 0x1f, 0x3a, 0x68, 0x0c, 0xbf, 0xc1, 0xb0, 0x0d, 0x18, 0x7e, 0x83, 0xc1, 0x0e, 0x30, 0x08, 0x36, 0x78, 0xa3, 0x4c, 0xce, 0x20, 0x19, 0x32, 0x88, 0x36, 0x28, 0xac, 0xc4, 0x8e, 0x43, 0xc7, 0xe3, 0x15, 0x04, 0x1b, 0xb4, 0x67, 0x01, 0xb0, 0x38, 0xec, 0x06, 0x0f, 0x9e, 0xc7, 0xd9, 0x60, 0x94, 0x72, 0x0e, 0xbb, 0x20, 0x58, 0x10, 0x6c, 0xd0, 0x92, 0xe8, 0xcc, 0x41, 0xfb, 0xb8, 0x4c, 0x07, 0xab, 0x7f, 0x74, 0xd6, 0x10, 0xc3, 0x41, 0xb4, 0x90, 0x41, 0xb0, 0x20, 0xd8, 0xa0, 0x51, 0xf7, 0x98, 0x41, 0x32, 0x38, 0x75, 0xc8, 0x69, 0x1c, 0xb4, 0xc8, 0xd1, 0x72, 0xd8, 0x2b, 0x1c, 0x64, 0x6b, 0xd0, 0x16, 0xc8, 0xca, 0x86, 0x18, 0x0e, 0x82, 0x0d, 0x5a, 0xff, 0x8c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0x04, 0x0a, 0xd4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0xe3, 0x1a, 0xea, 0xf8, 0x86, 0x97, 0xef, 0xe6, 0xe0, 0xcd, 0xf9, 0x2f, 0x07, 0x6f, 0xce, 0x7f, 0x39, 0x0e, 0x1d, 0x87, 0x06, 0xc1, 0x82, 0x60, 0x41, 0x32, 0x70, 0xfe, 0x1c, 0x04, 0xbc, 0xff, 0xa1, 0x83, 0xc6, 0x20, 0x58, 0x10, 0x6c, 0xf0, 0xfe, 0x85, 0x9c, 0xc3, 0x46, 0xed, 0x20, 0x5b, 0x83, 0xb6, 0x40, 0x56, 0x36, 0xc4, 0x70, 0x10, 0x6c, 0xd0, 0xdc, 0x24, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x86, 0x30, 0x81, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0xd7, 0x50, 0xc7, 0x37, 0xbc, 0x7c, 0x37, 0x07, 0x6f, 0x16, 0x80, 0x39, 0x78, 0xb3, 0x00, 0xcc, 0x71, 0xe8, 0x38, 0x34, 0xc8, 0x36, 0x78, 0xb2, 0x47, 0xce, 0x20, 0x5b, 0x83, 0xb6, 0x40, 0x56, 0x36, 0xc4, 0x70, 0x10, 0x6c, 0xd0, 0xdc, 0x24, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x86, 0x30, 0x81, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0xd7, 0x50, 0xc7, 0x37, 0xbc, 0x7c, 0x37, 0x07, 0xcf, 0x35, 0x80, 0x39, 0x78, 0xae, 0x01, 0xcc, 0x71, 0xe8, 0x38, 0x34, 0xc8, 0x36, 0x78, 0xe0, 0x49, 0xce, 0x86, 0xa3, 0xfd, 0x60, 0xbc, 0xe9, 0x1c, 0x8f, 0x17, 0x04, 0x1b, 0x34, 0xc8, 0xe5, 0xb2, 0x38, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x0f, 0x92, 0x96, 0x84, 0x86, 0xdf, 0x60, 0xd8, 0x06, 0x0c, 0xbf, 0xc1, 0x60, 0x07, 0x18, 0x04, 0x1b, 0x0c, 0xee, 0xca, 0x83, 0x81, 0x2d, 0x7a, 0x3c, 0x1e, 0x04, 0x1b, 0xb4, 0xbf, 0xce, 0xb4, 0x38, 0x08, 0x36, 0x68, 0xd3, 0x9d, 0x69, 0x10, 0x6c, 0xd0, 0x4e, 0x16, 0xd3, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x92, 0x81, 0x7a, 0x77, 0xc8, 0x56, 0x1c, 0x0c, 0x4e, 0x9f, 0xe1, 0x37, 0x78, 0x98, 0x4f, 0xce, 0xf0, 0x1b, 0x0c, 0x76, 0x80, 0x35, 0x0e, 0x0d, 0x82, 0x0d, 0xde, 0x54, 0x91, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0xe4, 0x94, 0x38, 0x18, 0x03, 0x0b, 0xc7, 0xa1, 0x83, 0xc1, 0x3b, 0x79, 0x3c, 0x5e, 0x10, 0x6c, 0xf0, 0x1c, 0x24, 0x9c, 0xc5, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x28, 0x51, 0x43, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xd9, 0xf3, 0x43, 0xd6, 0xee, 0x38, 0x34, 0xfc, 0x06, 0xc3, 0x36, 0x60, 0xf8, 0x0d, 0x06, 0x3b, 0xc0, 0xf0, 0x0b, 0xa2, 0x05, 0xf5, 0x83, 0x60, 0x83, 0x13, 0x26, 0xfa, 0xc1, 0xd8, 0x20, 0x39, 0x1e, 0x0f, 0x82, 0x0d, 0x0e, 0xce, 0xe8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xf1, 0x3f, 0x34, 0x3a, 0x3a, 0x0e, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0x2c, 0x34, 0x31, 0x5a, 0x1c, 0x04, 0x1b, 0x3c, 0x92, 0x29, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x62, 0x65, 0xfd, 0x43, 0xaa, 0xe6, 0x38, 0x74, 0x3c, 0x1e, 0x04, 0x1b, 0xb4, 0x63, 0xaa, 0xb2, 0x38, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x0d, 0x06, 0xf7, 0xf4, 0x20, 0x19, 0x28, 0x7e, 0x07, 0xa9, 0x48, 0x17, 0x07, 0x2d, 0x72, 0xb4, 0x0c, 0xbb, 0x41, 0xeb, 0x7c, 0x00, 0x0b, 0x82, 0x05, 0xc1, 0x82, 0x60, 0x83, 0xa6, 0xd8, 0x75, 0x06, 0xc9, 0x40, 0xfa, 0xee, 0xb0, 0x67, 0x7b, 0xd8, 0xe3, 0xdd, 0x38, 0x34, 0x88, 0x16, 0x76, 0x10, 0x2c, 0x08, 0x36, 0x68, 0x12, 0x60, 0x60, 0x90, 0x0c, 0x0c, 0xd5, 0x20, 0x5a, 0xd8, 0x83, 0x92, 0xa6, 0xe1, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0x03, 0x2a, 0xec, 0x90, 0x3a, 0x38, 0x0e, 0x1d, 0x8c, 0x37, 0x9d, 0x0d, 0x42, 0x00, 0xfc, 0x20, 0x30, 0xb1, 0x8f, 0xc7, 0x0b, 0x82, 0x0d, 0x5a, 0x51, 0x72, 0x5f, 0x1c, 0x04, 0x1b, 0x2c, 0x83, 0x17, 0x38, 0x68, 0x9c, 0xc9, 0xfd, 0x78, 0xbc, 0x20, 0xd8, 0xa0, 0x41, 0x2e, 0x97, 0xc5, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x78, 0x39, 0x46, 0xc4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0x0f, 0xa1, 0x83, 0x31, 0x7f, 0x77, 0x1c, 0x1a, 0x7e, 0x83, 0x61, 0x1b, 0x30, 0xfc, 0x06, 0x83, 0x1d, 0x60, 0x0d, 0x42, 0x0a, 0x7c, 0xc8, 0x86, 0x8e, 0x61, 0x87, 0x05, 0xd1, 0x83, 0xc0, 0xc4, 0x3e, 0x1e, 0x0f, 0x82, 0x0d, 0xda, 0x31, 0x55, 0x59, 0x1c, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0x83, 0x7b, 0x7a, 0x90, 0x0c, 0x14, 0xbf, 0x83, 0xe6, 0x97, 0x04, 0x0e, 0x5a, 0xe4, 0x68, 0x19, 0x76, 0x83, 0xd6, 0xf9, 0x00, 0x16, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0x4d, 0xb1, 0xeb, 0x1c, 0xbc, 0xc6, 0xc3, 0xe1, 0xa0, 0x21, 0x4c, 0x95, 0x8d, 0x43, 0x83, 0x68, 0xe1, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x26, 0x01, 0x06, 0x06, 0xc9, 0xc0, 0x50, 0x0d, 0xa2, 0x85, 0x3d, 0x28, 0xc7, 0x1a, 0x8e, 0x43, 0x07, 0xaf, 0x32, 0xcd, 0x39, 0x18, 0x6f, 0x3a, 0x07, 0x0f, 0x48, 0xcd, 0x39, 0x1e, 0x1f, 0x8f, 0x57, 0xf8, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xbb, 0xb0, 0x1b, 0x3a, 0x8e, 0x2c, 0xec, 0x06, 0x41, 0xaf, 0xbf, 0xb0, 0x1b, 0x8c, 0x5e, 0xac, 0x85, 0xdd, 0xa0, 0x08, 0x19, 0x3c, 0x78, 0xdf, 0xce, 0xcd, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x87, 0xa3, 0x7d, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0xac, 0xdb, 0x1d, 0x04, 0x39, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x43, 0xbd, 0xed, 0x21, 0x6b, 0x77, 0x1c, 0x1a, 0x76, 0x83, 0x51, 0x2f, 0xb9, 0x21, 0x86, 0x83, 0x60, 0x61, 0x37, 0x08, 0xb6, 0xe7, 0x05, 0xc1, 0x06, 0x8d, 0xda, 0xc4, 0x1f, 0xa4, 0x28, 0x3f, 0x0f, 0x82, 0x05, 0xc9, 0xc0, 0xba, 0xdd, 0x41, 0xc0, 0xfb, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x58, 0xc8, 0x18, 0x75, 0x68, 0x01, 0x74, 0x1c, 0x1a, 0x76, 0x83, 0x51, 0x2f, 0xb9, 0x21, 0x86, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x18, 0xb7, 0x43, 0xb6, 0xe2, 0xa0, 0xed, 0xd5, 0x97, 0x61, 0x37, 0x18, 0xf5, 0x92, 0x1b, 0x62, 0xb8, 0x21, 0x86, 0x6b, 0xc8, 0xd7, 0x1e, 0x94, 0x9f, 0x24, 0x07, 0xa5, 0xcc, 0xce, 0x21, 0x86, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0xb8, 0xc1, 0x6b, 0x15, 0x61, 0x0e, 0xa9, 0xa5, 0xe3, 0xf1, 0x82, 0x60, 0x83, 0x87, 0xa4, 0x6f, 0x2c, 0x0e, 0xbf, 0xf1, 0x78, 0x41, 0xb0, 0x41, 0x52, 0x59, 0xc1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x43, 0xbd, 0xed, 0x41, 0x71, 0xa8, 0x71, 0x1c, 0xda, 0xd0, 0x50, 0x67, 0x41, 0xb0, 0x41, 0x52, 0x59, 0xc1, 0xc1, 0xc9, 0xba, 0xfb, 0x30, 0x2e, 0xc7, 0xe3, 0x85, 0x5f, 0x10, 0x2c, 0x6e, 0xf0, 0x9e, 0xdb, 0x8e, 0xc3, 0x29, 0xb6, 0x38, 0xfc, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x2c, 0x08, 0x16, 0x04, 0x1b, 0x34, 0x74, 0xed, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x68, 0xdf, 0x77, 0x30, 0xfc, 0x63, 0x8f, 0x43, 0x87, 0x0e, 0x1a, 0xc3, 0x6e, 0x30, 0xea, 0x25, 0x37, 0xc4, 0x70, 0x10, 0x2c, 0x08, 0x16, 0x24, 0x03, 0xf7, 0xda, 0x41, 0x90, 0xf3, 0x1f, 0x8c, 0x28, 0xdc, 0x61, 0x37, 0x18, 0xf5, 0x92, 0x1b, 0x62, 0x38, 0x08, 0x16, 0x04, 0x1b, 0x04, 0x29, 0xfe, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x92, 0xa6, 0x61, 0x83, 0x72, 0xac, 0xe1, 0x30, 0x2e, 0xc7, 0xa1, 0x61, 0x37, 0x18, 0xf5, 0x92, 0x1b, 0x62, 0x38, 0xec, 0x06, 0xa1, 0xe5, 0xbe, 0x21, 0x31, 0x35, 0xfc, 0xc6, 0xe3, 0x61, 0x17, 0x7e, 0x0d, 0xc9, 0x8e, 0x0d, 0xd6, 0xee, 0x20, 0x2c, 0x48, 0x86, 0x1c, 0x9c, 0xce, 0x90, 0x37, 0x78, 0xfd, 0x78, 0xc1, 0x20, 0x19, 0x9c, 0x39, 0x18, 0x86, 0x3e, 0x83, 0x6c, 0x0d, 0x91, 0x19, 0x37, 0x78, 0x18, 0x08, 0xc6, 0x41, 0x4b, 0xa4, 0xa4, 0xc3, 0x6e, 0x30, 0x3a, 0xd6, 0x17, 0x76, 0xe1, 0x36, 0xa4, 0x6a, 0x0e, 0x42, 0x0a, 0x7c, 0x61, 0x17, 0x7e, 0x41, 0xb0, 0x20, 0xd8, 0xb0, 0x57, 0x38, 0x48, 0x06, 0xa7, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0xf8, 0x0d, 0xd9, 0x8a, 0xe3, 0xdb, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x61, 0x5c, 0x0e, 0xa9, 0x9a, 0xe3, 0xd0, 0x71, 0xe8, 0x90, 0xce, 0x3d, 0x1c, 0xed, 0x87, 0xa3, 0x7d, 0x0d, 0x31, 0x3c, 0x58, 0x61, 0xd6, 0x33, 0xc8, 0xd6, 0xa0, 0x2d, 0x90, 0x95, 0x0d, 0x31, 0xdc, 0x90, 0xfb, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x1c, 0x0f, 0x9e, 0x33, 0x0f, 0x73, 0x7c, 0x3b, 0xc4, 0xf0, 0x78, 0x7c, 0x50, 0x38, 0x43, 0x1c, 0x8f, 0x0f, 0x5e, 0x8b, 0x73, 0xb1, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x61, 0x17, 0x6e, 0x83, 0x73, 0xe4, 0xee, 0x21, 0x75, 0xb0, 0x78, 0xf0, 0x24, 0x7f, 0x98, 0x61, 0x17, 0x6e, 0x83, 0xb4, 0x05, 0xea, 0x43, 0xea, 0x60, 0xf1, 0xe0, 0x5d, 0x00, 0x31, 0xc3, 0x2e, 0xdc, 0x06, 0x4b, 0x6d, 0x0a, 0x0e, 0xa9, 0x83, 0xc5, 0x83, 0xc7, 0x09, 0xc4, 0x0c, 0xbb, 0x70, 0x1b, 0x0c, 0x7c, 0xe3, 0x43, 0xea, 0x60, 0xf1, 0xe0, 0x7d, 0x04, 0x31, 0xc3, 0x2e, 0xdc, 0x06, 0xeb, 0x1f, 0x5f, 0x0e, 0xa9, 0x83, 0xc5, 0x83, 0x47, 0x1c, 0xc4, 0x0c, 0xbb, 0x70, 0x1b, 0xb4, 0xc1, 0x35, 0x70, 0x48, 0x1d, 0x2c, 0x1e, 0xbc, 0x34, 0x21, 0x66, 0xd8, 0x85, 0xdb, 0x60, 0x34, 0xf8, 0x1e, 0x52, 0x07, 0x8b, 0x07, 0x8f, 0x5d, 0x88, 0x19, 0x76, 0xe1, 0x16, 0xc3, 0xd5, 0x43, 0xea, 0x60, 0xf1, 0xe0, 0x45, 0x0e, 0x31, 0xc3, 0x2e, 0xdc, 0x06, 0x8b, 0x57, 0x80, 0x0e, 0xa9, 0x83, 0xc5, 0x83, 0x67, 0x41, 0xc4, 0x0c, 0xbb, 0x70, 0x1b, 0xac, 0x63, 0x06, 0x3b, 0xa4, 0x0e, 0x16, 0x0f, 0xde, 0x26, 0x11, 0x73, 0xb0, 0xf8, 0xce, 0xff, 0x78, 0x3c, 0xfc, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x87, 0xdd, 0xb0, 0xbe, 0xb7, 0x21, 0x86, 0x83, 0x60, 0x41, 0xb0, 0x41, 0x1a, 0xc6, 0xc5, 0xa1, 0x83, 0xc6, 0xb0, 0x1b, 0x8c, 0x7a, 0xc9, 0x0d, 0x31, 0x1c, 0x76, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0xb4, 0xdf, 0x39, 0x08, 0x78, 0xff, 0x83, 0x47, 0x08, 0x93, 0x1c, 0x36, 0x6a, 0xd7, 0x10, 0xc3, 0x0d, 0x59, 0xbb, 0x83, 0x10, 0x00, 0x1f, 0x04, 0x0b, 0x82, 0x05, 0xc9, 0xc0, 0xa9, 0x75, 0x10, 0xf0, 0xfe, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xf1, 0x1f, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x7e, 0x41, 0x32, 0x10, 0xab, 0x83, 0x80, 0xf7, 0x3f, 0x18, 0x77, 0x50, 0x07, 0xef, 0x16, 0x3a, 0x38, 0x0e, 0x0d, 0xbb, 0xb0, 0x1b, 0x8c, 0x8e, 0xf5, 0x85, 0x5d, 0xd8, 0x0d, 0xd6, 0x0c, 0xa5, 0x2c, 0xec, 0xc2, 0x6d, 0x90, 0x42, 0xe9, 0x73, 0x10, 0x64, 0xf1, 0x0b, 0xbb, 0xc1, 0x82, 0x2f, 0xae, 0x85, 0x5d, 0xd8, 0x0d, 0x16, 0x8c, 0x71, 0x2d, 0xec, 0xc2, 0x6d, 0x88, 0xe1, 0x41, 0x2b, 0x2a, 0x4e, 0x0b, 0xbb, 0x41, 0x23, 0x2b, 0x4e, 0x0b, 0xbb, 0x70, 0x1b, 0xa4, 0x85, 0x66, 0x4f, 0xb8, 0xb6, 0xb0, 0x1b, 0x34, 0xc6, 0xe2, 0x74, 0x58, 0xdf, 0x3c, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0x85, 0xdd, 0x60, 0xe9, 0x19, 0xd7, 0xc2, 0x2e, 0xec, 0x06, 0x2d, 0x78, 0x39, 0x2d, 0xec, 0xc2, 0x6d, 0x88, 0xe1, 0x41, 0x33, 0x61, 0x4e, 0x0b, 0xbb, 0x41, 0x33, 0x62, 0x4e, 0x0b, 0xbb, 0x70, 0x1b, 0xa4, 0x85, 0x66, 0x4f, 0x10, 0xba, 0x85, 0xdd, 0xa0, 0xbd, 0x31, 0xa7, 0xc3, 0xfa, 0xe6, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x1f, 0xb4, 0x93, 0xe6, 0x74, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0x90, 0xce, 0x3d, 0x1c, 0xed, 0x6b, 0x88, 0xe1, 0xc2, 0x6f, 0x30, 0x58, 0x63, 0x37, 0x18, 0xac, 0xb1, 0x07, 0x41, 0xe9, 0x7d, 0x18, 0x97, 0x43, 0x0c, 0x8f, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0x83, 0xb7, 0x2e, 0xc3, 0x1c, 0x52, 0x4b, 0xc7, 0xe3, 0x05, 0xc1, 0xc2, 0x2f, 0xfc, 0x82, 0x64, 0xa0, 0xfd, 0xd2, 0xf1, 0xfc, 0xf8, 0x76, 0x7c, 0x5b, 0x5c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0xb0, 0x1b, 0xd6, 0xf7, 0x36, 0xec, 0x15, 0x0e, 0x82, 0x05, 0xc1, 0x82, 0x60, 0x83, 0xc1, 0x3d, 0x3d, 0x48, 0x06, 0x8a, 0xdf, 0x41, 0xf3, 0x64, 0x02, 0x87, 0x34, 0xdc, 0xb0, 0x1b, 0x8c, 0x7a, 0xc9, 0x0d, 0x89, 0xa9, 0x41, 0x32, 0x64, 0x10, 0x6d, 0x30, 0x4e, 0x01, 0x0e, 0x06, 0x5d, 0xc0, 0xf1, 0x78, 0x05, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0xf0, 0x1b, 0x8c, 0xb0, 0xaa, 0x41, 0xb0, 0x38, 0xec, 0x86, 0xb5, 0xd0, 0x05, 0xd1, 0x42, 0x0e, 0xcb, 0xa8, 0x07, 0x81, 0x89, 0x3d, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x0d, 0x5a, 0x5c, 0x89, 0x1a, 0x24, 0x03, 0xb7, 0xdf, 0x41, 0x9b, 0xfa, 0x21, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xc6, 0x84, 0xd5, 0xc1, 0x52, 0xb5, 0x97, 0xe3, 0xd0, 0x20, 0x5a, 0xe8, 0x20, 0x58, 0x10, 0x6c, 0xd0, 0x24, 0xc0, 0xc0, 0x20, 0x19, 0x18, 0xaa, 0x83, 0x45, 0x9f, 0x62, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x4a, 0x18, 0x89, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x41, 0xfd, 0x71, 0xe8, 0xa0, 0xa0, 0x60, 0x3b, 0x0e, 0x1d, 0x8c, 0x37, 0x9d, 0xe3, 0xdb, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x6e, 0x58, 0xdf, 0xdb, 0xb0, 0x57, 0x38, 0x08, 0x16, 0x87, 0xdd, 0xb0, 0x82, 0xba, 0x20, 0x5a, 0xe8, 0x20, 0x58, 0x10, 0x6c, 0xd0, 0xe2, 0x4a, 0xd4, 0x20, 0x19, 0x08, 0xdf, 0x41, 0x9b, 0xfa, 0x21, 0x87, 0x8d, 0xda, 0x83, 0xc0, 0xc4, 0x1e, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0x2d, 0xae, 0x44, 0x0d, 0x92, 0x81, 0xe2, 0x77, 0xd0, 0xa6, 0x7e, 0xc8, 0x61, 0xa3, 0x76, 0xd8, 0x0d, 0x46, 0xbd, 0xe4, 0x06, 0xe3, 0x4d, 0x67, 0x10, 0x2d, 0x74, 0x10, 0x6c, 0xf0, 0x9c, 0x26, 0x9d, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x64, 0xc7, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xc1, 0x28, 0x0e, 0x38, 0x68, 0x46, 0x27, 0xe5, 0x38, 0x74, 0x30, 0xde, 0x74, 0x8e, 0x6f, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xbb, 0x61, 0x7d, 0x6f, 0xc3, 0x5e, 0xe1, 0x20, 0x19, 0x32, 0x88, 0x16, 0xcc, 0x07, 0xc1, 0x06, 0xcb, 0xe0, 0x05, 0x0e, 0x4a, 0xeb, 0xb1, 0x83, 0xa2, 0xe6, 0xec, 0x78, 0xbc, 0x82, 0x60, 0xe1, 0x37, 0x58, 0xaa, 0xee, 0x73, 0x7c, 0x1b, 0x04, 0x0b, 0xbf, 0x20, 0xd8, 0xa0, 0xd9, 0x81, 0x95, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x60, 0xb8, 0x0e, 0x86, 0x7f, 0xec, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x81, 0xf6, 0x7d, 0x07, 0xc3, 0xd0, 0x67, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0xbb, 0xc1, 0x62, 0x2c, 0xaf, 0x0d, 0xc6, 0x85, 0xd9, 0xe1, 0x14, 0x3b, 0x34, 0x7f, 0x39, 0x1e, 0x1f, 0x87, 0x8e, 0x43, 0xc7, 0xb7, 0x41, 0xb0, 0x38, 0xfc, 0x82, 0x68, 0x61, 0x87, 0xdd, 0xa0, 0x0d, 0x11, 0x9a, 0xd5, 0x90, 0xaa, 0x39, 0x18, 0x8b, 0x9d, 0x87, 0xd4, 0xc1, 0x21, 0x75, 0x70, 0x3c, 0x1e, 0x04, 0x0b, 0x82, 0x0d, 0x5a, 0x5c, 0x89, 0x1a, 0x24, 0x03, 0xe1, 0x3a, 0x68, 0x53, 0x3f, 0x64, 0x10, 0x2c, 0x0e, 0xbb, 0x61, 0x7d, 0x6f, 0xc3, 0x5e, 0xe1, 0x20, 0x19, 0x32, 0x88, 0x16, 0xcc, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xa0, 0xfe, 0x60, 0x68, 0x76, 0x0d, 0xa2, 0x05, 0xf1, 0x20, 0xd8, 0x60, 0xe1, 0xab, 0xd7, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xf1, 0xa6, 0x33, 0xfc, 0xc6, 0xf3, 0x83, 0x57, 0x03, 0x60, 0x1c, 0x87, 0x0e, 0xc9, 0xa5, 0x83, 0xa2, 0xe6, 0xec, 0xf8, 0x76, 0x7c, 0x5b, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0xb0, 0x1b, 0xd6, 0xf7, 0x36, 0xa4, 0x04, 0x06, 0xc1, 0x06, 0x4f, 0xfe, 0xd1, 0x19, 0x76, 0x83, 0x51, 0x2f, 0xb9, 0xc1, 0x30, 0x4f, 0x1f, 0x04, 0x1b, 0x3c, 0x64, 0x48, 0x67, 0xd8, 0x0d, 0x42, 0xcb, 0x7d, 0x83, 0xe1, 0x55, 0x7e, 0x1c, 0x3a, 0x1e, 0x0f, 0x82, 0x05, 0xc1, 0x06, 0x43, 0xce, 0xfa, 0x60, 0x50, 0x5e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x7e, 0xb0, 0xb0, 0xc2, 0xec, 0x38, 0x34, 0x08, 0x36, 0xc4, 0x70, 0x71, 0xd8, 0x85, 0xdb, 0x10, 0xc3, 0x83, 0x84, 0xf6, 0x9d, 0xc3, 0xfa, 0xe6, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x6e, 0x58, 0xdf, 0xdb, 0x60, 0x38, 0x70, 0x0c, 0x82, 0x0d, 0x9e, 0xfc, 0xa3, 0x33, 0xec, 0x06, 0xa3, 0x5e, 0x72, 0x83, 0xc0, 0xc4, 0x1e, 0x44, 0x0b, 0x1d, 0x04, 0x0b, 0x82, 0x0d, 0x5a, 0x5c, 0x89, 0x1a, 0x24, 0x03, 0x43, 0x75, 0xd0, 0xa6, 0x7e, 0xc8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xfc, 0x87, 0xdf, 0x78, 0x7e, 0xf0, 0x90, 0x21, 0x9d, 0xe3, 0xd0, 0x41, 0x60, 0x62, 0x1f, 0x8f, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xbf, 0x20, 0xd8, 0xe0, 0x1c, 0xfc, 0x7d, 0x68, 0xd4, 0x72, 0x1c, 0x3a, 0x1e, 0x1f, 0x8f, 0x17, 0x7e, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0xc1, 0x73, 0x8c, 0x73, 0x0e, 0x16, 0x26, 0xff, 0x0c, 0xbb, 0x41, 0xeb, 0x7c, 0x00, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0x4f, 0x63, 0xce, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xf0, 0x30, 0xf5, 0x8b, 0xc3, 0x5e, 0xe1, 0x71, 0x68, 0xd8, 0x0d, 0x5a, 0xe7, 0x03, 0x58, 0x10, 0x2c, 0x08, 0x16, 0x24, 0x03, 0xeb, 0x76, 0x07, 0xe3, 0x5d, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x62, 0x67, 0x99, 0x83, 0xc0, 0xc4, 0x3e, 0x0e, 0x0d, 0xbb, 0x41, 0xeb, 0x7c, 0x00, 0x0b, 0x82, 0x05, 0xc1, 0x82, 0x64, 0x60, 0xdd, 0xee, 0x60, 0x18, 0xfa, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x58, 0xc8, 0x18, 0x75, 0x30, 0xde, 0x74, 0x8e, 0x43, 0xc3, 0x6e, 0x30, 0xea, 0x25, 0x37, 0xc4, 0x70, 0x43, 0x0c, 0x0f, 0xde, 0x10, 0xf2, 0xb0, 0x21, 0x86, 0x1b, 0x94, 0xfc, 0x8a, 0x07, 0x21, 0x00, 0xbe, 0x21, 0x86, 0x1b, 0x14, 0x0c, 0x8f, 0x07, 0x21, 0x00, 0xbe, 0x21, 0x86, 0x1b, 0x14, 0xa4, 0x89, 0x07, 0x21, 0x00, 0x7e, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x1b, 0xbc, 0x74, 0x14, 0xe6, 0x90, 0x5a, 0x3a, 0x1e, 0x2f, 0x08, 0x36, 0x18, 0xf9, 0x0f, 0x8b, 0x83, 0x6c, 0x0d, 0x79, 0xec, 0xf1, 0xe0, 0x6d, 0xee, 0x31, 0x83, 0x6c, 0x0d, 0xda, 0x02, 0x59, 0x19, 0xe7, 0xe0, 0xd5, 0xf3, 0x31, 0xc3, 0x6e, 0x10, 0x24, 0xde, 0x0b, 0x82, 0x05, 0xd9, 0x1a, 0xb4, 0x05, 0xb2, 0x32, 0xce, 0xc1, 0xab, 0xf7, 0x63, 0x06, 0xd9, 0x06, 0x8f, 0x74, 0x6c, 0x19, 0x04, 0x0b, 0x92, 0xc1, 0x95, 0x43, 0xb6, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0xc5, 0x41, 0xb0, 0xc1, 0x30, 0xa3, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0xa3, 0xa5, 0x1b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x5f, 0x3c, 0x58, 0xfa, 0xa7, 0x7f, 0x10, 0xe4, 0xfc, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xce, 0xbd, 0xd6, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x1e, 0x3c, 0xfa, 0x03, 0xe3, 0xd0, 0xf0, 0xeb, 0x38, 0x74, 0x1c, 0x3a, 0x1e, 0x1f, 0x87, 0x06, 0xc1, 0x82, 0x60, 0x83, 0x61, 0x46, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0xd0, 0xfd, 0xe7, 0x20, 0xc8, 0xf9, 0x0f, 0xd2, 0xe4, 0x4c, 0x0e, 0xde, 0x64, 0x7d, 0x73, 0x1c, 0x1a, 0x04, 0x8b, 0x03, 0xc1, 0xde, 0xa0, 0xa8, 0x16, 0x3c, 0x78, 0x8f, 0x48, 0xc9, 0xe2, 0xe2, 0x20, 0x5b, 0x83, 0xb6, 0x40, 0x56, 0xc6, 0x39, 0x78, 0x70, 0x84, 0xcc, 0x20, 0xd8, 0xe0, 0x71, 0x14, 0x25, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0x20, 0xd8, 0xe0, 0x61, 0xd8, 0x37, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x02, 0x13, 0x7b, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xe6, 0xb7, 0x57, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x5f, 0xdc, 0x50, 0x47, 0xd6, 0x30, 0x43, 0x1b, 0xbc, 0x1c, 0xb4, 0x64, 0xc3, 0x89, 0xb0, 0xc1, 0xcb, 0x41, 0x4b, 0x36, 0x58, 0xcc, 0x06, 0xb5, 0xcc, 0xb2, 0xe1, 0x13, 0x9b, 0x35, 0x3c, 0x4f, 0xb2, 0x06, 0x0b, 0x95, 0xa9, 0x0e, 0x5e, 0xd9, 0x8c, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xde, 0xac, 0xb1, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x00, 0x7d, 0xb4, 0x86, 0x07, 0x25, 0x37, 0x0e, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0x46, 0x6b, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x40, 0xad, 0xb1, 0xe1, 0x8d, 0xbb, 0x83, 0x57, 0x47, 0x82, 0x6c, 0xf8, 0xc4, 0x66, 0x0d, 0x5f, 0xbf, 0x6c, 0xd0, 0xb8, 0x6e, 0xc1, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x54, 0xb6, 0xc6, 0x06, 0xa5, 0x84, 0xf8, 0x06, 0x2b, 0xc8, 0xf4, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x73, 0xb7, 0x35, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0xf1, 0xd6, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xbf, 0xd7, 0x38, 0x78, 0xfd, 0x87, 0xc8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xe9, 0xbf, 0xc6, 0x86, 0xcf, 0x5d, 0x36, 0x78, 0xf2, 0xb3, 0xc6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x4b, 0xbf, 0xc6, 0x86, 0x07, 0x25, 0x37, 0xa4, 0x0e, 0x36, 0xbc, 0xad, 0x73, 0xf0, 0x00, 0x53, 0x90, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xa8, 0x6c, 0x8d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xdc, 0x6d, 0x8d, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x63, 0xbc, 0x35, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0x0b, 0xa0, 0x8f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x0f, 0xd7, 0xd8, 0xf0, 0xc6, 0xdd, 0xc1, 0x53, 0x32, 0x41, 0x0e, 0x12, 0xd2, 0xbb, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x0f, 0xd7, 0xd8, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0x84, 0x14, 0xf8, 0x86, 0x37, 0xee, 0x0e, 0xd6, 0x85, 0xd1, 0x1c, 0x3c, 0x72, 0x5d, 0x67, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x00, 0xfa, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xe0, 0x73, 0x8d, 0x0d, 0x6f, 0xdc, 0x1d, 0xac, 0x81, 0xa7, 0x3b, 0x48, 0x48, 0xef, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xf8, 0x5c, 0x63, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x10, 0x52, 0xe0, 0x1b, 0xde, 0xb8, 0x3b, 0x28, 0xb1, 0x07, 0x0f, 0x1e, 0x34, 0xaf, 0xb3, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x00, 0x7d, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x5c, 0xbb, 0xc6, 0x86, 0x37, 0xee, 0x0e, 0x9e, 0xd5, 0x09, 0x72, 0x90, 0x90, 0xde, 0xbd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x5c, 0xbb, 0xc6, 0x06, 0x05, 0x1f, 0xe6, 0x1a, 0xfe, 0xcd, 0xd9, 0x20, 0xa4, 0xc0, 0x37, 0xbc, 0x71, 0x77, 0x10, 0xf6, 0xd4, 0x07, 0xef, 0xd6, 0xd7, 0xd9, 0xf0, 0x41, 0xce, 0x1a, 0x2c, 0x80, 0x3e, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x67, 0x5e, 0x63, 0xc3, 0x1b, 0x77, 0x07, 0xef, 0xfb, 0x04, 0x39, 0x48, 0x48, 0xef, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x67, 0x5e, 0x63, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x10, 0x52, 0xe0, 0x1b, 0xde, 0xb8, 0x3b, 0x28, 0xce, 0xb9, 0x0e, 0x9e, 0x27, 0xb0, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x7e, 0xaf, 0xb1, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x08, 0x29, 0xf0, 0x0d, 0x6f, 0xdc, 0x1d, 0x2c, 0x12, 0xff, 0x39, 0x78, 0xfd, 0x87, 0xc8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xee, 0xb6, 0xc6, 0x86, 0xcf, 0x5d, 0x36, 0x78, 0xf2, 0xb3, 0xc6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x4b, 0xbf, 0xc6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xe9, 0xbf, 0xc6, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x94, 0x10, 0xdf, 0xa0, 0xdd, 0xe2, 0x82, 0x83, 0x27, 0x94, 0xeb, 0x1c, 0x24, 0x5e, 0x77, 0x1f, 0x9c, 0xeb, 0x0d, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x8c, 0xd6, 0x58, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x80, 0x5a, 0x63, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x88, 0xe6, 0x86, 0x37, 0xee, 0xe6, 0xe0, 0xc9, 0xcf, 0x1a, 0x07, 0xaf, 0xc3, 0xd6, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x8c, 0xd6, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0xca, 0xd6, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0xdd, 0xd6, 0x58, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xc6, 0x5b, 0x63, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x00, 0xfa, 0x68, 0x83, 0xc7, 0xa9, 0xeb, 0x1c, 0xb4, 0xc6, 0x43, 0xb0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x7b, 0xb8, 0xc6, 0x06, 0x05, 0x1f, 0xe6, 0x1a, 0xfe, 0xcd, 0xd9, 0xd0, 0x48, 0xf0, 0xe0, 0x9d, 0xef, 0x3a, 0x07, 0x8f, 0x5c, 0xd7, 0xd9, 0xf0, 0x41, 0xce, 0x1a, 0x2c, 0x80, 0x3e, 0xda, 0xe0, 0x21, 0xf2, 0x3a, 0x07, 0xad, 0xf1, 0x10, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x7c, 0xae, 0xb1, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x34, 0x12, 0x3c, 0x78, 0xd1, 0xbd, 0xce, 0xc1, 0x83, 0xe6, 0x75, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0x0b, 0xa0, 0x8f, 0x36, 0x78, 0x6f, 0xbe, 0xce, 0x41, 0x6b, 0x3c, 0x04, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0xb5, 0x6b, 0x6c, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0x8d, 0x04, 0x0f, 0x9e, 0xee, 0xaf, 0x73, 0xf0, 0x6e, 0x7d, 0x9d, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x0d, 0x9e, 0x15, 0xb0, 0x73, 0xd0, 0x1a, 0x0f, 0xc1, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x3d, 0xf3, 0x1a, 0x1b, 0x14, 0x7c, 0x98, 0x6b, 0xf8, 0x37, 0x67, 0x43, 0x23, 0xc1, 0x83, 0x17, 0x1a, 0xec, 0x1c, 0x3c, 0x4f, 0x60, 0x67, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xfd, 0x5e, 0x63, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x68, 0x24, 0x78, 0xf0, 0x40, 0x85, 0x9d, 0x83, 0xd7, 0x7f, 0x88, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0x6e, 0x6b, 0x6c, 0xf8, 0xdc, 0x65, 0x83, 0x27, 0x3f, 0x6b, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0xf4, 0x6b, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0xfe, 0x6b, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0x4a, 0x09, 0xf1, 0x0d, 0x56, 0x90, 0xe9, 0x1f, 0x3c, 0xa1, 0x5c, 0xe7, 0xa0, 0x45, 0x21, 0x82, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x08, 0x82, 0x8d, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xfb, 0x0c, 0x36, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0x0b, 0xa0, 0x8f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x50, 0xd8, 0x38, 0x78, 0xe4, 0xba, 0xce, 0xc1, 0xb9, 0xde, 0x60, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x0e, 0x85, 0x8d, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x21, 0x9a, 0x07, 0xef, 0x7c, 0xd7, 0x39, 0x78, 0xe4, 0xba, 0xce, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x01, 0xf4, 0xd1, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x69, 0x0f, 0x1b, 0x07, 0x0f, 0x9a, 0xd7, 0x39, 0x38, 0xd7, 0x1b, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xf6, 0xb0, 0xb1, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x44, 0xf3, 0xe0, 0x45, 0xf7, 0x3a, 0x07, 0x0f, 0x9a, 0xd7, 0xd9, 0xf0, 0x41, 0xce, 0x1a, 0x2c, 0x80, 0x3e, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x98, 0x62, 0xe3, 0xe0, 0xdd, 0xfa, 0x3a, 0x07, 0xe7, 0x7a, 0x83, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x8b, 0x29, 0x36, 0x36, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x6f, 0xce, 0x86, 0x68, 0x1e, 0x3c, 0xdd, 0x5f, 0xe7, 0xe0, 0xdd, 0xfa, 0x3a, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x05, 0xd0, 0x47, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0x68, 0x6c, 0x1c, 0x3c, 0x4f, 0x60, 0xe7, 0xe0, 0x5c, 0x6f, 0xb0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x8c, 0xc6, 0xc6, 0x06, 0x05, 0x1f, 0xe6, 0x1a, 0xfe, 0xcd, 0xd9, 0x10, 0xcd, 0x83, 0x17, 0x1a, 0xec, 0x1c, 0x3c, 0x4f, 0x60, 0x67, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xcc, 0x63, 0x63, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x88, 0xe6, 0xc1, 0x03, 0x15, 0x76, 0x0e, 0x5e, 0xff, 0x21, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x41, 0xb0, 0xb1, 0x86, 0xcf, 0x5d, 0x36, 0x78, 0xb3, 0x00, 0xc8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xd9, 0xc8, 0xc6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x77, 0xc9, 0xc6, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x94, 0x10, 0xdf, 0x60, 0x05, 0x99, 0xfe, 0x86, 0xb7, 0x75, 0x0e, 0x9e, 0x63, 0x0b, 0x72, 0xd0, 0x1a, 0x0f, 0xc1, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x04, 0xc1, 0xc6, 0x86, 0xcf, 0x5d, 0x36, 0x78, 0x50, 0x0d, 0xc8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc5, 0xca, 0xc6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x63, 0xcb, 0xc6, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x94, 0x10, 0xdf, 0x60, 0x05, 0x99, 0xfe, 0x86, 0xb7, 0x75, 0x0e, 0x9e, 0xa9, 0x0b, 0x72, 0xd0, 0xa2, 0x10, 0xc1, 0xc1, 0x4a, 0x3a, 0xfd, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x0e, 0x5e, 0x15, 0xad, 0x73, 0x48, 0xd5, 0x1c, 0x87, 0x8e, 0x43, 0xc7, 0xf3, 0xe3, 0xd0, 0xf1, 0xf8, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x0b, 0xb2, 0x35, 0x68, 0x0b, 0x64, 0x65, 0x9c, 0x83, 0x87, 0x8e, 0xc8, 0x0c, 0xb2, 0x0d, 0x1e, 0xe9, 0xd8, 0x32, 0x08, 0x36, 0x78, 0x0b, 0xad, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x8b, 0x83, 0x60, 0x41, 0x32, 0x50, 0xbe, 0x0e, 0x82, 0x9c, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x22, 0x73, 0xfd, 0x83, 0x62, 0x0f, 0xe2, 0x38, 0x74, 0x3c, 0x3e, 0x0e, 0x0d, 0x82, 0x0d, 0x5e, 0x2e, 0x8b, 0x33, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0x82, 0x0d, 0x1a, 0x7b, 0x17, 0x39, 0x18, 0xc7, 0x21, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x87, 0x6c, 0x1c, 0x1a, 0x7e, 0x41, 0xb0, 0x20, 0xd8, 0xa0, 0x25, 0xd1, 0x99, 0x41, 0x32, 0x20, 0xec, 0xfe, 0x0e, 0xc9, 0xb9, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x8b, 0xcc, 0xf5, 0x87, 0xdf, 0x78, 0x3e, 0x6e, 0xb0, 0x5a, 0x04, 0xe9, 0x70, 0xd9, 0x1c, 0x87, 0x8e, 0xe7, 0xc7, 0xa1, 0x61, 0x17, 0x76, 0xe1, 0x36, 0x0e, 0x1d, 0xb4, 0x1c, 0xef, 0xb2, 0x21, 0x86, 0xc3, 0x2e, 0xdc, 0x06, 0xa3, 0xfc, 0xe4, 0xa0, 0xe5, 0x78, 0x97, 0x43, 0x3a, 0x77, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x05, 0xc9, 0xc0, 0xf9, 0x76, 0x10, 0xe4, 0xfc, 0x07, 0x25, 0x43, 0xd3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x20, 0xc5, 0x1f, 0x7e, 0xe3, 0xf9, 0x1a, 0xb4, 0xc5, 0x04, 0x70, 0x1c, 0x3a, 0xc4, 0xf0, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x76, 0x83, 0x07, 0x15, 0xee, 0x6c, 0x30, 0x96, 0x7d, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0xda, 0x02, 0x59, 0xd9, 0x10, 0xc3, 0x0d, 0xb9, 0xef, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0xc5, 0x0d, 0xce, 0x91, 0xbb, 0x1b, 0xac, 0x49, 0x4b, 0xd8, 0x20, 0xc1, 0xe3, 0x79, 0x83, 0x35, 0x28, 0x40, 0x1b, 0x24, 0xa4, 0xdc, 0x6f, 0x90, 0x50, 0x76, 0xb2, 0xc1, 0x9a, 0xb4, 0x84, 0x0d, 0xd6, 0x3f, 0xbe, 0x6c, 0xb0, 0xd4, 0xa6, 0x60, 0x83, 0x35, 0x28, 0x40, 0x1b, 0xac, 0xea, 0x5e, 0xd8, 0xa0, 0x14, 0x91, 0xdc, 0x60, 0x34, 0xf8, 0x6e, 0xb0, 0x8e, 0x19, 0x6c, 0x83, 0xd1, 0xe0, 0xbb, 0xc1, 0x90, 0xfa, 0xdd, 0xa0, 0x0d, 0xae, 0x81, 0x0d, 0x12, 0xca, 0x4e, 0x36, 0x58, 0x80, 0xc6, 0xb0, 0xc1, 0x1a, 0x14, 0xa0, 0x0d, 0xd6, 0xa0, 0x00, 0x6d, 0x30, 0xa4, 0x7e, 0x37, 0x48, 0x28, 0x3b, 0xd9, 0x20, 0xd1, 0x0f, 0x7a, 0x10, 0xac, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x0b, 0x8b, 0x7f, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x2c, 0x3c, 0x94, 0x39, 0xa4, 0x0e, 0x8e, 0x43, 0x87, 0x18, 0x1e, 0xac, 0x66, 0x00, 0x3a, 0xbe, 0x0d, 0xb2, 0x0d, 0x1e, 0xe9, 0xd8, 0x32, 0x08, 0x36, 0x78, 0x3b, 0xfa, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x8b, 0x83, 0x60, 0x83, 0xf7, 0x3f, 0xe4, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xec, 0x15, 0x0e, 0xbf, 0xf1, 0x7c, 0x83, 0x85, 0x26, 0x46, 0x07, 0x67, 0x80, 0xec, 0xe3, 0xd0, 0xf1, 0xf8, 0x38, 0xb4, 0x71, 0xe8, 0xe0, 0xe5, 0xb2, 0x38, 0xc3, 0x6f, 0xd0, 0x48, 0xd6, 0xd3, 0xf0, 0x1b, 0x0c, 0x76, 0x80, 0x41, 0xb0, 0x90, 0x0d, 0xa9, 0x9a, 0x83, 0xf4, 0xdc, 0x98, 0x41, 0xb0, 0xf0, 0x0b, 0x82, 0x0d, 0xde, 0x54, 0x91, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0x30, 0xb1, 0x87, 0xdf, 0x78, 0xbe, 0x21, 0x9a, 0x07, 0x4f, 0xc8, 0xc5, 0x39, 0x0e, 0x1d, 0x87, 0x36, 0x0e, 0x1d, 0x24, 0xc2, 0x35, 0x1c, 0x87, 0x86, 0xdf, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0xc7, 0x5e, 0xdc, 0x90, 0xfb, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xdc, 0x60, 0xa9, 0x4d, 0xc1, 0x06, 0xe7, 0xc8, 0xdd, 0x0d, 0x86, 0xd4, 0xef, 0x06, 0x43, 0xea, 0x77, 0x83, 0x35, 0x28, 0x40, 0x1b, 0x94, 0x40, 0x91, 0x1b, 0x24, 0x94, 0x9d, 0x6c, 0x70, 0xd2, 0xdb, 0xdd, 0xa0, 0x14, 0x91, 0xdc, 0xa0, 0x0d, 0xae, 0x81, 0x0d, 0xd6, 0xa4, 0x25, 0x6c, 0x70, 0x8e, 0xdc, 0xdd, 0x60, 0xe0, 0x1b, 0x6f, 0xb0, 0xfe, 0xf1, 0x65, 0x83, 0x84, 0xb2, 0x93, 0x0d, 0x4a, 0xa0, 0xc8, 0x0d, 0xd6, 0xa0, 0x00, 0x6d, 0x90, 0x50, 0x76, 0xb2, 0xc1, 0x02, 0x34, 0x86, 0x0d, 0xd6, 0xa0, 0x00, 0x6d, 0xb0, 0x06, 0x05, 0x68, 0x83, 0x21, 0xf5, 0xbb, 0x41, 0x42, 0xd9, 0xc9, 0x06, 0x89, 0x7e, 0xd0, 0x83, 0x60, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x19, 0x38, 0xed, 0x0e, 0x86, 0xa3, 0xf4, 0xc1, 0xc2, 0xe4, 0x9f, 0xe3, 0xf1, 0xa1, 0x51, 0xcb, 0x06, 0x09, 0x65, 0x27, 0x1b, 0x8c, 0xdb, 0xdd, 0x0d, 0xd6, 0xa4, 0x25, 0x6c, 0xb0, 0x06, 0x05, 0x68, 0x83, 0x55, 0xdd, 0x0b, 0x1b, 0x24, 0x94, 0x9d, 0x6c, 0x90, 0xe8, 0x07, 0x3d, 0x08, 0x56, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x47, 0x0e, 0xef, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x48, 0x86, 0x1c, 0x9c, 0xbd, 0x8c, 0x8f, 0x43, 0x87, 0x18, 0x1e, 0xac, 0x66, 0x00, 0x3a, 0x58, 0xcd, 0x00, 0x74, 0x7c, 0x3b, 0x1e, 0x1f, 0x4e, 0xb1, 0x41, 0xb0, 0x20, 0xdb, 0xe0, 0xe5, 0xb1, 0x3a, 0x83, 0x6c, 0x83, 0x47, 0x3a, 0xb6, 0x0c, 0x82, 0x05, 0xc9, 0xe0, 0xca, 0x41, 0x90, 0xf3, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0x38, 0x08, 0x16, 0x24, 0x03, 0xc7, 0xd7, 0xc1, 0x78, 0xd7, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xe8, 0x18, 0x36, 0xfc, 0xc6, 0xf3, 0x0d, 0xd1, 0x3c, 0x34, 0xfc, 0x3a, 0x0e, 0x1d, 0x8f, 0x8f, 0x43, 0x83, 0x60, 0x21, 0x1b, 0x1a, 0x09, 0x6e, 0x30, 0xe4, 0xd1, 0x37, 0x08, 0x01, 0xf0, 0x83, 0xf4, 0xdc, 0x98, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x05, 0xc1, 0x06, 0x8f, 0xe2, 0xc7, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x68, 0xf8, 0x75, 0xf0, 0x84, 0xd8, 0x9d, 0xe3, 0xd0, 0x71, 0x68, 0x10, 0x2c, 0xfc, 0x82, 0x60, 0x83, 0xf7, 0x3f, 0xe4, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x08, 0x1e, 0xee, 0xe1, 0x37, 0x9e, 0x6f, 0x1c, 0x1a, 0x0f, 0x9e, 0xd7, 0xd7, 0x72, 0x1c, 0x3a, 0x9e, 0x0f, 0x39, 0x74, 0x85, 0x19, 0x04, 0x1b, 0xbc, 0x91, 0x58, 0x67, 0x71, 0x71, 0x90, 0xad, 0x41, 0x5b, 0x20, 0x2b, 0xe3, 0x78, 0xf0, 0xe0, 0x08, 0x99, 0x41, 0xb0, 0xc1, 0xe3, 0x28, 0x4a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0xe3, 0xeb, 0xe0, 0x98, 0x55, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x0d, 0x0a, 0x7e, 0xba, 0xe3, 0xd0, 0x71, 0xe8, 0x78, 0x7c, 0x3c, 0x3e, 0x1e, 0xaf, 0xb8, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x04, 0x0b, 0x82, 0xc5, 0x61, 0x37, 0xac, 0xa0, 0x6e, 0x88, 0xe1, 0x20, 0x58, 0x10, 0x2c, 0x0e, 0xbb, 0x21, 0x11, 0xb0, 0x86, 0xa3, 0xfd, 0xd0, 0x02, 0x68, 0xd8, 0x85, 0xdb, 0x20, 0x48, 0xa2, 0x0f, 0xd6, 0x85, 0xd1, 0xac, 0x21, 0x86, 0x13, 0x44, 0xfc, 0x60, 0x94, 0x58, 0x1d, 0xdf, 0x86, 0xdd, 0x60, 0x91, 0x47, 0xd0, 0x1a, 0x62, 0x78, 0xd0, 0xae, 0x15, 0xd4, 0x20, 0xdb, 0x60, 0x1d, 0x6d, 0xff, 0xb0, 0x0b, 0x82, 0x0d, 0x5a, 0x85, 0x8b, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x18, 0x97, 0x83, 0xb3, 0xd1, 0xf3, 0x71, 0x68, 0x83, 0x27, 0xc6, 0x3d, 0x6c, 0x88, 0xe1, 0x86, 0x16, 0x40, 0x07, 0xe1, 0xe6, 0x7e, 0x7c, 0x1b, 0x76, 0x83, 0x51, 0x2f, 0xb9, 0x20, 0x19, 0x30, 0x5c, 0xfb, 0x0e, 0x86, 0x7f, 0xec, 0x20, 0x5b, 0x83, 0xb6, 0x40, 0x56, 0x36, 0xc4, 0x70, 0x10, 0x6c, 0xd0, 0xfa, 0x67, 0xd4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x26, 0x50, 0xa0, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x5f, 0xdc, 0x30, 0xf7, 0x1b, 0x3c, 0xe7, 0x20, 0x63, 0xc3, 0xc4, 0x6d, 0xd0, 0x62, 0xdb, 0xc0, 0x86, 0xb9, 0x1f, 0xbc, 0xde, 0x50, 0x47, 0xd6, 0x30, 0x43, 0x6b, 0x98, 0xb8, 0x0d, 0xd3, 0xb9, 0x61, 0x86, 0xd6, 0x30, 0x71, 0x6b, 0x98, 0xb8, 0x35, 0xcc, 0xfd, 0x06, 0xc1, 0xb2, 0xb4, 0xa1, 0x98, 0xae, 0xc1, 0x83, 0x37, 0x30, 0x0e, 0x5e, 0xc3, 0x0c, 0xb2, 0x61, 0x86, 0x36, 0x78, 0x39, 0x68, 0xc9, 0x86, 0x13, 0x61, 0x83, 0x97, 0x83, 0x96, 0x6c, 0xb0, 0x98, 0x0d, 0x6a, 0x99, 0x65, 0xc3, 0x27, 0x36, 0x6b, 0x78, 0x9e, 0x64, 0x0d, 0x16, 0x2a, 0x53, 0x1d, 0xbc, 0x59, 0x21, 0x64, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xbe, 0x68, 0x63, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x6c, 0x61, 0xec, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x1b, 0xd2, 0xc6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xb9, 0xd2, 0xc6, 0x86, 0xaf, 0x5f, 0x36, 0x68, 0x46, 0x73, 0x60, 0x83, 0x85, 0xb2, 0x4f, 0x1b, 0x34, 0xd3, 0x39, 0xb0, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x2d, 0x80, 0x0e, 0x6c, 0xd0, 0x8e, 0xe8, 0xc0, 0x21, 0x9a, 0x07, 0x4d, 0x2b, 0xf7, 0x6f, 0x78, 0x9e, 0x64, 0x83, 0x87, 0x2b, 0xf0, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0x17, 0x6d, 0x6c, 0xf8, 0xdc, 0x65, 0x83, 0x46, 0xff, 0x08, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xe3, 0x9e, 0x36, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xd3, 0xa3, 0x36, 0x0e, 0x1a, 0xf3, 0xb2, 0x38, 0x58, 0x49, 0xa7, 0x7f, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0x86, 0xb9, 0xdf, 0x20, 0x08, 0x97, 0x36, 0x14, 0xd3, 0xd5, 0x30, 0x43, 0x6b, 0x98, 0xb8, 0x35, 0xcc, 0xfd, 0x06, 0xe1, 0x8a, 0xb0, 0x61, 0x86, 0xd6, 0x30, 0x71, 0x1b, 0xa6, 0x73, 0xc3, 0x0c, 0xad, 0x61, 0x86, 0xd6, 0x30, 0x71, 0x6b, 0x98, 0xb8, 0x35, 0xcc, 0xfd, 0x06, 0x23, 0x73, 0x69, 0x43, 0x1d, 0x59, 0xc3, 0x0c, 0x6d, 0xf0, 0x72, 0xd0, 0x92, 0x0d, 0x27, 0xc2, 0x06, 0x2f, 0x07, 0x2d, 0xd9, 0x60, 0x31, 0x1b, 0xd4, 0x32, 0xcb, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0x3c, 0xc9, 0x1a, 0x2c, 0x54, 0xa6, 0x3a, 0x78, 0x71, 0x21, 0xc8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x3a, 0xe4, 0xc6, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x94, 0x10, 0xdf, 0x60, 0x05, 0x99, 0xfe, 0x86, 0x77, 0x7b, 0x36, 0x78, 0xe8, 0x41, 0xc8, 0x1a, 0x3e, 0x6a, 0x3f, 0x78, 0x4e, 0x42, 0x48, 0x07, 0xc7, 0x98, 0xb3, 0x83, 0x95, 0x74, 0xfa, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x1d, 0xbc, 0x9f, 0x84, 0x67, 0xc3, 0xdc, 0x6f, 0xd0, 0xde, 0x7d, 0xd6, 0xc1, 0xf3, 0x43, 0x78, 0x36, 0xcc, 0xd0, 0x06, 0x8f, 0xc1, 0x3c, 0xd9, 0x70, 0x22, 0x6c, 0xf0, 0x18, 0xcc, 0x93, 0x0d, 0x16, 0xb3, 0x41, 0x1d, 0x3c, 0xc6, 0x53, 0x66, 0xc3, 0x89, 0xb0, 0xc1, 0xe3, 0x40, 0x78, 0x36, 0x58, 0xcc, 0x06, 0xb5, 0xcc, 0x72, 0xf0, 0x26, 0x53, 0x99, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x36, 0x9c, 0x08, 0x1b, 0xbc, 0x02, 0x84, 0x67, 0x0d, 0xe7, 0xc8, 0xc1, 0xc3, 0xd9, 0x77, 0x96, 0x59, 0x0e, 0xde, 0x07, 0x2d, 0x73, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0x86, 0x13, 0x61, 0x83, 0x47, 0x7c, 0xf0, 0x6c, 0xb0, 0x98, 0x0d, 0x6a, 0x99, 0x65, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xfa, 0x65, 0xc3, 0x83, 0x37, 0x1b, 0x2c, 0x94, 0x7d, 0xda, 0xa0, 0x99, 0xce, 0x81, 0x35, 0x28, 0x3a, 0x8d, 0x37, 0x68, 0x01, 0x74, 0x60, 0x83, 0x76, 0x56, 0x17, 0x0e, 0xa9, 0x83, 0x83, 0xb6, 0x4a, 0x07, 0x0e, 0x56, 0xd2, 0xe9, 0x1f, 0x4e, 0xb1, 0xc3, 0x29, 0x76, 0x38, 0x8f, 0x0f, 0xda, 0x0e, 0xb8, 0x38, 0x08, 0xa0, 0x84, 0x0d, 0x33, 0xb4, 0x86, 0x89, 0xdb, 0x30, 0x9d, 0x07, 0x8f, 0xe9, 0xe0, 0xd9, 0x70, 0x22, 0x6c, 0xf0, 0xfe, 0x20, 0x9e, 0x83, 0xb6, 0x18, 0x2e, 0x0e, 0xe7, 0xf1, 0x41, 0x2b, 0x9c, 0x14, 0x1b, 0x4e, 0x84, 0x0d, 0xde, 0x34, 0xc0, 0x73, 0xd0, 0x3e, 0x2c, 0xc5, 0x41, 0x93, 0xb2, 0x14, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0x68, 0x90, 0xad, 0x21, 0x8f, 0xbd, 0xb8, 0x41, 0xb9, 0x0f, 0xb8, 0x06, 0xed, 0x27, 0x3e, 0x1d, 0x12, 0x53, 0x0b, 0x82, 0x0d, 0x8d, 0x04, 0x37, 0xe4, 0xbe, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x37, 0x48, 0xf4, 0x83, 0x1e, 0x04, 0x2b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x0a, 0x86, 0x88, 0x83, 0x61, 0xec, 0xb0, 0x41, 0x42, 0xd9, 0xc9, 0x06, 0x89, 0x7e, 0xd0, 0x83, 0x60, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x78, 0x24, 0x92, 0xc5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x85, 0x87, 0x32, 0x87, 0x71, 0x39, 0x0e, 0x8d, 0x07, 0x0f, 0xa3, 0x95, 0x39, 0x58, 0xcd, 0x00, 0x74, 0xb0, 0x9a, 0x01, 0xe8, 0xf8, 0xb6, 0xb0, 0x1b, 0x8c, 0x75, 0xb4, 0x35, 0xe4, 0xbe, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0xc7, 0x83, 0x77, 0xe4, 0xca, 0x1c, 0xdf, 0x36, 0xe4, 0xbe, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x37, 0x58, 0x93, 0x96, 0xb0, 0xc1, 0x49, 0x6f, 0x77, 0x83, 0x21, 0xf5, 0xbb, 0x41, 0x09, 0x14, 0xb9, 0xc1, 0x68, 0xf0, 0xdd, 0x60, 0x55, 0xf7, 0xc2, 0x06, 0xeb, 0x1f, 0x5f, 0x36, 0x48, 0x28, 0x3b, 0xd9, 0x60, 0x0d, 0x0a, 0xd0, 0x06, 0x43, 0xea, 0x77, 0x83, 0x75, 0xcc, 0x60, 0x1b, 0xac, 0x45, 0x6d, 0xd8, 0x20, 0xa1, 0xec, 0x64, 0x83, 0x35, 0xda, 0x0a, 0x1b, 0x9c, 0xf4, 0x76, 0x37, 0x28, 0x45, 0x24, 0x37, 0x28, 0x45, 0x24, 0x37, 0x58, 0x83, 0x02, 0xb4, 0xc1, 0x9a, 0xb4, 0x84, 0x0d, 0x4a, 0xa0, 0xc8, 0x0d, 0xd6, 0x68, 0x2b, 0x6c, 0x90, 0x50, 0x76, 0xb2, 0x41, 0xa2, 0x1f, 0xf4, 0x20, 0x58, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x16, 0x16, 0xff, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x58, 0x78, 0x28, 0x73, 0x68, 0x96, 0x74, 0x1c, 0x3a, 0xc4, 0xf0, 0x60, 0x35, 0x03, 0xd0, 0xf1, 0xed, 0x10, 0xc3, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1e, 0x7b, 0x3c, 0x78, 0xa7, 0xb2, 0xcc, 0x20, 0x5b, 0x43, 0x1e, 0xfb, 0xe0, 0x21, 0x07, 0x19, 0x87, 0x53, 0xec, 0x78, 0x3c, 0x08, 0x36, 0xc4, 0x70, 0x71, 0xd8, 0x0d, 0xeb, 0x7b, 0x1b, 0x62, 0x38, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x21, 0x75, 0x30, 0xfc, 0x06, 0x8d, 0x64, 0x3d, 0x0d, 0xbf, 0xc1, 0x60, 0x07, 0x18, 0x04, 0x8b, 0xc3, 0x6e, 0x30, 0x36, 0x39, 0x37, 0xc4, 0x70, 0xd8, 0x05, 0xc1, 0x06, 0x2b, 0xf2, 0xbc, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x07, 0x85, 0x01, 0xc6, 0x71, 0x68, 0x61, 0x17, 0x24, 0x43, 0x06, 0xd1, 0x06, 0xa5, 0xf2, 0xd6, 0x20, 0xda, 0xb0, 0x76, 0x7b, 0x3c, 0x3e, 0xa4, 0x73, 0x0f, 0x47, 0xfb, 0xf1, 0xed, 0x78, 0x7c, 0x3c, 0x1e, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xec, 0xc2, 0x6e, 0xe8, 0x9a, 0xb9, 0xb0, 0x0b, 0x82, 0x05, 0xc1, 0x82, 0x64, 0xa0, 0xfd, 0xce, 0x41, 0x90, 0xf3, 0x1f, 0x3c, 0x42, 0x98, 0xe4, 0xd0, 0xa8, 0xe5, 0x90, 0xce, 0x3d, 0x1c, 0xed, 0x07, 0xc5, 0x22, 0xd9, 0xf1, 0x78, 0x10, 0x6c, 0xf0, 0x4a, 0x3b, 0x8e, 0xc5, 0x85, 0xdd, 0x20, 0xe8, 0xf5, 0x37, 0x44, 0x73, 0x10, 0x6c, 0xd0, 0xce, 0xad, 0xf9, 0x20, 0x19, 0x44, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0x41, 0x0a, 0xa5, 0xcf, 0x1a, 0x62, 0x78, 0xd0, 0x04, 0x9c, 0xfb, 0x1a, 0x62, 0xb8, 0x41, 0x5a, 0x68, 0xf6, 0xc1, 0xd0, 0xec, 0x3a, 0xc4, 0xf0, 0x38, 0x34, 0x08, 0x16, 0x24, 0x03, 0xa3, 0x76, 0x48, 0x2e, 0x1d, 0x3a, 0x68, 0x1c, 0x8f, 0x0f, 0x5e, 0xa9, 0x79, 0xb2, 0xe1, 0x44, 0xd8, 0xe0, 0x65, 0x1b, 0x18, 0x6b, 0x38, 0x47, 0x16, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0a, 0x40, 0xc8, 0x06, 0x0a, 0x40, 0x38, 0x73, 0xd0, 0xb0, 0xc8, 0xfd, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x2a, 0x10, 0xb2, 0x81, 0x2a, 0x10, 0xbe, 0x0c, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x55, 0x20, 0x84, 0x03, 0x55, 0x20, 0x0c, 0x0e, 0x56, 0xf1, 0xef, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0x81, 0xb0, 0x18, 0xa8, 0x02, 0xa1, 0x66, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0x81, 0x30, 0x19, 0xa8, 0x02, 0x61, 0x76, 0xd0, 0x48, 0x92, 0xfd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x55, 0x20, 0xec, 0x06, 0xaa, 0x40, 0xd8, 0x0e, 0x92, 0x01, 0xe3, 0xbf, 0xef, 0x78, 0x3c, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x0a, 0x84, 0xf1, 0x40, 0x15, 0x08, 0x2d, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x0a, 0x84, 0xf5, 0x40, 0x15, 0x08, 0x0d, 0x07, 0xab, 0xf8, 0x77, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xaa, 0x40, 0xa8, 0x18, 0xa8, 0x02, 0xa1, 0x64, 0x10, 0x6c, 0xd0, 0xce, 0xc8, 0xfd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x65, 0x5a, 0x33, 0x87, 0x54, 0xcd, 0x71, 0xe8, 0xd0, 0xfc, 0xe5, 0x78, 0x7c, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x0e, 0x8d, 0x5a, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x0b, 0x82, 0xc5, 0xc1, 0xc5, 0x01, 0xff, 0x2e, 0x6c, 0xad, 0x6c, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x2c, 0x5a, 0x44, 0x07, 0x96, 0x2e, 0xe2, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x3d, 0x8b, 0xe8, 0xc1, 0x13, 0x65, 0x79, 0x86, 0x5d, 0xb8, 0x0d, 0xce, 0x91, 0xbb, 0x87, 0x68, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x2c, 0x5a, 0xc4, 0x0f, 0x2c, 0x5a, 0x84, 0xd5, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xa2, 0x45, 0x08, 0x06, 0x16, 0x2d, 0x42, 0x34, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0x39, 0x72, 0x77, 0x83, 0x73, 0xe4, 0xee, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0x3c, 0xde, 0x96, 0x67, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0xb4, 0x08, 0xd9, 0xc0, 0xa2, 0x45, 0x18, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x7e, 0x83, 0xf6, 0x25, 0x98, 0x06, 0xc9, 0x80, 0xe2, 0xef, 0xeb, 0x78, 0x7c, 0xe8, 0xa0, 0x31, 0xec, 0xc2, 0x6d, 0x90, 0xb6, 0x40, 0x7d, 0x88, 0xe6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xa6, 0x45, 0xfc, 0xc0, 0xa6, 0x45, 0x58, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x6c, 0x5a, 0x84, 0x60, 0x60, 0xd3, 0x22, 0x44, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0xa4, 0x2d, 0x50, 0x6f, 0x90, 0xb6, 0x40, 0x7d, 0x38, 0xc5, 0x06, 0xd9, 0x06, 0x0f, 0x2b, 0xe6, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x36, 0x2d, 0x42, 0x36, 0xb0, 0x69, 0x11, 0x46, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x86, 0xdf, 0x60, 0xf5, 0x26, 0xda, 0x41, 0x39, 0x94, 0x74, 0xe8, 0xa0, 0x31, 0xec, 0x06, 0xcb, 0x6b, 0x0a, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x56, 0x2d, 0xe2, 0x07, 0x56, 0x2d, 0xc2, 0x6a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xd5, 0x22, 0x04, 0x03, 0xab, 0x16, 0x21, 0x1a, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x60, 0xa9, 0x4d, 0xc1, 0x06, 0x4b, 0x6d, 0x0a, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0xe0, 0xed, 0xd2, 0x3c, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xaa, 0x45, 0xc8, 0x06, 0x56, 0x2d, 0xc2, 0x68, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0xf0, 0x1b, 0x1c, 0xf7, 0x7a, 0x07, 0xc9, 0x80, 0xe4, 0xbd, 0xbe, 0xe3, 0xf1, 0xa1, 0x83, 0xc6, 0xb0, 0x1b, 0x0c, 0x76, 0xe3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5d, 0x8b, 0xf8, 0x81, 0x5d, 0x8b, 0xb0, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xd8, 0xb5, 0x08, 0xc1, 0xc0, 0xae, 0x45, 0x88, 0x0e, 0x86, 0xc8, 0xf1, 0x20, 0xdb, 0xe0, 0xe5, 0xe0, 0x3c, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xae, 0x45, 0xc8, 0x06, 0x76, 0x2d, 0xc2, 0x68, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0xf0, 0x0b, 0x92, 0x81, 0xf6, 0x77, 0xc7, 0xe3, 0x83, 0x11, 0x12, 0x75, 0xe8, 0xa0, 0x31, 0xec, 0xc2, 0x6d, 0xb0, 0xfe, 0xf1, 0xe5, 0x10, 0xcd, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x65, 0x8b, 0xf8, 0x81, 0x65, 0x8b, 0xb0, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0xb6, 0x08, 0xc1, 0xc0, 0xb2, 0x45, 0x88, 0x86, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x58, 0xff, 0xf8, 0xb2, 0xc1, 0xfa, 0xc7, 0x97, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x78, 0x69, 0x3b, 0xcf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x6c, 0x11, 0xb2, 0x81, 0x65, 0x8b, 0x30, 0x1a, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0xfc, 0x06, 0x2d, 0xe7, 0x2f, 0x1d, 0x34, 0x46, 0xc0, 0x74, 0xe8, 0xa0, 0x31, 0xec, 0xc2, 0x6d, 0xd0, 0x06, 0xd7, 0xc0, 0x21, 0x9a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xdb, 0x16, 0xf1, 0x03, 0xdb, 0x16, 0x61, 0xb5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x6d, 0x11, 0x82, 0x81, 0x6d, 0x8b, 0x10, 0x0d, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xd0, 0x06, 0xd7, 0xc0, 0x06, 0x6d, 0x70, 0x0d, 0x1c, 0x4e, 0xb1, 0x41, 0xb6, 0xc1, 0x93, 0xf7, 0x79, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x6d, 0x8b, 0x90, 0x0d, 0x6c, 0x5b, 0x84, 0xd1, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0xe1, 0x17, 0x24, 0x03, 0x67, 0xdf, 0xf1, 0xf8, 0xa0, 0x29, 0xee, 0xa5, 0x43, 0x07, 0x8d, 0x61, 0x37, 0x18, 0x01, 0xbe, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xeb, 0x16, 0xf1, 0x03, 0xeb, 0x16, 0x61, 0xb5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x6e, 0x11, 0x82, 0x81, 0x75, 0x8b, 0x10, 0x1d, 0x8c, 0x1b, 0xdf, 0x41, 0xb6, 0xc1, 0x53, 0x13, 0x7a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x75, 0x8b, 0x90, 0x0d, 0xac, 0x5b, 0x84, 0xd1, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0xe1, 0x37, 0x74, 0x31, 0x39, 0x58, 0xdd, 0x0b, 0x73, 0xe8, 0xa0, 0x31, 0xec, 0xc2, 0x6d, 0xf0, 0x68, 0x07, 0x9d, 0x43, 0x34, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf6, 0x2d, 0xe2, 0x07, 0xf6, 0x2d, 0xc2, 0x6a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xdf, 0x22, 0x04, 0x03, 0xfb, 0x16, 0x21, 0x1a, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0xd1, 0x0e, 0x3a, 0x1b, 0x3c, 0xda, 0x41, 0xe7, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0xde, 0x60, 0xd1, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xec, 0x5b, 0x84, 0x6c, 0x60, 0xdf, 0x22, 0x8c, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0xbf, 0xc1, 0x93, 0xf5, 0x06, 0x0e, 0x4e, 0x61, 0xb8, 0x87, 0x0e, 0x1a, 0xc3, 0x2e, 0xdc, 0x06, 0x8b, 0x57, 0x80, 0x0e, 0xd1, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0xb8, 0x88, 0x1f, 0x58, 0xb8, 0x08, 0xab, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x85, 0x8b, 0x10, 0x0c, 0x2c, 0x5c, 0x84, 0x68, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0xc5, 0x2b, 0x40, 0x1b, 0x2c, 0x5e, 0x01, 0x3a, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0xd7, 0x90, 0xf4, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x0b, 0x17, 0x21, 0x1b, 0x58, 0xb8, 0x08, 0xa3, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0xc3, 0x2f, 0x48, 0x06, 0xae, 0xbf, 0xe3, 0xf1, 0xc1, 0x51, 0x4b, 0xf7, 0xd0, 0x41, 0x63, 0xd8, 0x85, 0xdb, 0x60, 0x1d, 0x33, 0xd8, 0x21, 0x9a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x1b, 0x17, 0xf1, 0x03, 0x1b, 0x17, 0x61, 0xb5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x71, 0x11, 0x82, 0x81, 0x8d, 0x8b, 0x10, 0x0d, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xb0, 0x8e, 0x19, 0x6c, 0x83, 0x75, 0xcc, 0x60, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0xf0, 0x44, 0x99, 0x9e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xe3, 0x22, 0x64, 0x03, 0x1b, 0x17, 0x61, 0x34, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0xf8, 0x0d, 0x1a, 0x78, 0x61, 0x3a, 0x58, 0xcb, 0x27, 0x70, 0xe8, 0xa0, 0x31, 0xec, 0x86, 0x3c, 0xd6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xca, 0x45, 0xfc, 0xc0, 0xca, 0x45, 0xd8, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xac, 0x5c, 0x84, 0x60, 0x60, 0xe5, 0x22, 0x44, 0x87, 0x66, 0x91, 0x83, 0x6c, 0x83, 0x07, 0x00, 0xf5, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xac, 0x5c, 0x84, 0x6c, 0x60, 0xe5, 0x22, 0x0c, 0x86, 0x5d, 0xb8, 0x0d, 0x8d, 0x04, 0x0f, 0x9e, 0x96, 0x89, 0x71, 0xf0, 0x02, 0x4d, 0x8c, 0x41, 0xb6, 0xc1, 0x03, 0x80, 0x7a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x95, 0x8b, 0xb0, 0x18, 0x58, 0xb9, 0x08, 0x93, 0x61, 0x37, 0x18, 0xeb, 0x68, 0x87, 0xc6, 0x51, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xce, 0x45, 0xfc, 0xc0, 0xce, 0x45, 0x18, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xec, 0x5c, 0x84, 0x60, 0x60, 0xe7, 0x22, 0x84, 0x83, 0x60, 0x83, 0x76, 0x46, 0xee, 0x0f, 0xd6, 0x25, 0x46, 0x0d, 0xb2, 0x0d, 0x1e, 0xf2, 0xd4, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x73, 0x11, 0xd2, 0x81, 0x9d, 0x8b, 0x30, 0x19, 0x76, 0xe1, 0x36, 0x34, 0x12, 0x3c, 0x78, 0x6e, 0xc7, 0xcd, 0x06, 0xcf, 0xed, 0xb8, 0x39, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x87, 0x3c, 0xf5, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x3b, 0x17, 0x61, 0x33, 0xb0, 0x73, 0x11, 0x76, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc9, 0x40, 0x73, 0xb9, 0x43, 0xb6, 0xe2, 0xd0, 0x02, 0xec, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x06, 0x0f, 0xd9, 0x40, 0xae, 0x3d, 0x6e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x83, 0x47, 0x0f, 0xde, 0x2f, 0xd6, 0xb3, 0xb8, 0x20, 0x58, 0x1c, 0xc0, 0x13, 0x8d, 0x8e, 0x0e, 0xae, 0x45, 0xae, 0x6c, 0x0e, 0xee, 0xcd, 0x6d, 0xae, 0x1c, 0xe0, 0x1b, 0x0b, 0x73, 0x1b, 0x2b, 0x63, 0x5b, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0xf0, 0xb8, 0x81, 0xbc, 0x78, 0xfc, 0xb0, 0x0b, 0xb7, 0x18, 0xf0, 0xca, 0x95, 0xc5, 0xd5, 0x95, 0xcd, 0xd1, 0x87, 0x68, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xc3, 0x43, 0x32, 0x90, 0x10, 0x0f, 0x7d, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0xf1, 0x10, 0x0d, 0x24, 0xc4, 0xc3, 0x64, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0xf7, 0xb1, 0xf5, 0x6c, 0xf0, 0x3e, 0xb6, 0x9e, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x78, 0x8c, 0x5b, 0xcf, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x42, 0x3c, 0xcc, 0x06, 0x12, 0xe2, 0x61, 0x39, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xc4, 0xc3, 0xe6, 0xe0, 0x09, 0x78, 0x3d, 0x83, 0x60, 0x41, 0x32, 0x20, 0x7c, 0x77, 0x0e, 0xc6, 0xbb, 0xce, 0xc1, 0x62, 0x5d, 0xa6, 0x41, 0xb6, 0xc1, 0x63, 0xdc, 0x7a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x84, 0x78, 0xa8, 0x18, 0x48, 0x88, 0x87, 0xba, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x21, 0x1e, 0xa6, 0x07, 0x8f, 0xfe, 0xeb, 0x19, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0xfc, 0x82, 0x64, 0x40, 0xb1, 0x7f, 0x77, 0x3c, 0x1f, 0x24, 0x03, 0xe3, 0x76, 0x3c, 0x3e, 0xb4, 0x00, 0x1b, 0x76, 0xe1, 0x16, 0x03, 0x7c, 0xc7, 0xc2, 0xdc, 0xc6, 0xca, 0xd8, 0x5a, 0xe4, 0xca, 0xe2, 0xea, 0xca, 0xe6, 0xe8, 0x43, 0x34, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0xe2, 0x21, 0x19, 0xc8, 0x89, 0x87, 0x86, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9c, 0x78, 0x88, 0x06, 0x72, 0xe2, 0x61, 0x39, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0xa3, 0x0c, 0x7b, 0x36, 0x78, 0x94, 0x61, 0xcf, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0xbc, 0x1d, 0xb1, 0x67, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x89, 0x87, 0xf5, 0x40, 0x4e, 0x3c, 0x14, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0xf1, 0x30, 0x3d, 0x78, 0xaf, 0x64, 0xcf, 0x20, 0xd8, 0xe0, 0x61, 0x7b, 0x3d, 0x07, 0xeb, 0xd1, 0xb5, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb4, 0x78, 0x48, 0x06, 0xd2, 0xe2, 0xa1, 0x6a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x2d, 0x1e, 0xa2, 0x81, 0xb4, 0x78, 0x18, 0x0e, 0xbb, 0x70, 0x1b, 0xa2, 0x39, 0x1e, 0x3c, 0xcf, 0xac, 0x67, 0x83, 0xd7, 0x73, 0xf6, 0x1c, 0x4e, 0xb1, 0x41, 0xb6, 0xc1, 0xcb, 0x2e, 0x7b, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb4, 0x78, 0x98, 0x0e, 0xa4, 0xc5, 0x43, 0xd3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x16, 0x0f, 0xcb, 0x83, 0x37, 0x85, 0xf6, 0x1c, 0x2c, 0xac, 0x8b, 0x3a, 0x34, 0x7f, 0x39, 0x1e, 0x2f, 0x08, 0x36, 0x18, 0xf9, 0x0f, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x9d, 0x1e, 0x37, 0x90, 0x4e, 0x0f, 0xc3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x74, 0x7a, 0xc8, 0x06, 0xd2, 0xe9, 0x21, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0xe9, 0xb1, 0x07, 0x4f, 0x59, 0xed, 0x19, 0x04, 0x1b, 0x3c, 0x6c, 0xaf, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xd2, 0x00, 0x9a, 0x43, 0xd6, 0xee, 0x38, 0x34, 0xc8, 0x36, 0x78, 0xb7, 0x69, 0xcf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x4e, 0x0f, 0x9b, 0x81, 0x74, 0x7a, 0xd8, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0xf4, 0x10, 0x1f, 0x3c, 0x74, 0xb6, 0x67, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x19, 0x58, 0xbf, 0x3b, 0x9e, 0x1f, 0x3a, 0x68, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xa5, 0x1e, 0x37, 0x90, 0x60, 0x8f, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xac, 0x87, 0xcd, 0x40, 0x62, 0x3d, 0xac, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa4, 0x7a, 0x48, 0x0e, 0xde, 0xeb, 0xdb, 0x33, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x58, 0x0f, 0xa3, 0x83, 0xf7, 0xfa, 0xf6, 0x1c, 0x14, 0x76, 0x38, 0x83, 0x6c, 0x83, 0xf7, 0xe9, 0xf6, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0xf5, 0xb0, 0x18, 0xc8, 0xaf, 0x87, 0xcd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x5b, 0x0f, 0xc9, 0xc1, 0x63, 0x90, 0x7b, 0x86, 0xdf, 0x90, 0x5c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xeb, 0x61, 0x72, 0xf0, 0x18, 0xe4, 0x9e, 0x43, 0x7f, 0xf2, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x60, 0xf1, 0xe0, 0x51, 0x68, 0x3d, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x63, 0x1e, 0x37, 0x90, 0x4a, 0x8f, 0x1f, 0x76, 0xe1, 0x16, 0x03, 0x7e, 0x38, 0xb9, 0xb7, 0x33, 0xb9, 0xb2, 0xb9, 0xf9, 0x10, 0xcd, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9c, 0x79, 0x48, 0x06, 0x72, 0xe8, 0x21, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x99, 0x87, 0x74, 0x20, 0x67, 0x1e, 0x66, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x3c, 0x6e, 0xba, 0x67, 0x83, 0xc7, 0x4d, 0xf7, 0x1c, 0x4e, 0xb1, 0x41, 0xb6, 0xc1, 0x8b, 0xaa, 0x7b, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0xe7, 0x21, 0x1e, 0xc8, 0x9c, 0x87, 0x8a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x6d, 0x1e, 0xd2, 0x83, 0x47, 0x7c, 0xf7, 0x0c, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x7e, 0x83, 0x97, 0x0f, 0xf6, 0x1c, 0x8c, 0x90, 0xa8, 0x43, 0x53, 0xa0, 0x41, 0xb6, 0xc1, 0x8b, 0xaa, 0x7b, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xe7, 0x61, 0x38, 0x90, 0x3c, 0x0f, 0xdb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x79, 0x1e, 0xd2, 0x83, 0x57, 0x9d, 0xf7, 0x0c, 0x82, 0x0d, 0x1e, 0xb6, 0xd7, 0x73, 0xb0, 0xa2, 0x21, 0x6b, 0x90, 0x6d, 0xf0, 0xa2, 0xea, 0x9e, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfc, 0x79, 0xd8, 0x0e, 0xe4, 0xcf, 0x43, 0xcb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x3f, 0x0f, 0xe9, 0xc1, 0x1b, 0xdd, 0x7b, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfc, 0x79, 0x18, 0x0f, 0xe4, 0xcf, 0x43, 0xc1, 0xc1, 0xfb, 0x11, 0x4a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xe7, 0xa1, 0x61, 0x20, 0x7f, 0x1e, 0x4a, 0x06, 0xc1, 0x06, 0x0f, 0xdb, 0xeb, 0x39, 0x58, 0x98, 0xfc, 0x73, 0x68, 0xfe, 0x72, 0x3c, 0x3e, 0x0e, 0x1d, 0x2c, 0xe1, 0xff, 0x19, 0x64, 0x1b, 0xbc, 0xa8, 0xba, 0x67, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xa1, 0x87, 0xe5, 0x40, 0x0a, 0x3d, 0x94, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x29, 0xf4, 0x90, 0x1e, 0xbc, 0xfb, 0xbf, 0x67, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xa1, 0x87, 0xe9, 0x40, 0x0a, 0x3d, 0xcc, 0x0f, 0xde, 0x8f, 0x50, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x42, 0x0f, 0xfb, 0x81, 0x14, 0x7a, 0xe8, 0x38, 0x78, 0xdf, 0x6d, 0xcf, 0x71, 0xe8, 0xa0, 0x08, 0x1e, 0x1c, 0x76, 0xe1, 0x16, 0x03, 0x7e, 0xb3, 0x34, 0xb7, 0xb4, 0x39, 0xb4, 0x32, 0xf2, 0x10, 0xcd, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x34, 0x7a, 0x48, 0x06, 0xd2, 0xe8, 0xe1, 0xc5, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x1a, 0x3d, 0x44, 0x03, 0x69, 0xf4, 0xb0, 0x19, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0x71, 0x0c, 0x3e, 0x1b, 0x3c, 0x8e, 0xc1, 0xe7, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0x5e, 0xe4, 0xe0, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x46, 0x0f, 0xab, 0x81, 0x34, 0x7a, 0x68, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0xe8, 0x61, 0x74, 0xf0, 0x10, 0x0c, 0x9f, 0x83, 0xb7, 0x88, 0xf7, 0x0c, 0xb2, 0x0d, 0x5e, 0xe4, 0xe0, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xd1, 0x43, 0xe9, 0x40, 0x1a, 0x3d, 0x9c, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0xe8, 0xa1, 0xea, 0xe0, 0x9d, 0x1e, 0x3e, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x1a, 0x3d, 0xb4, 0x0e, 0xa4, 0xd1, 0x43, 0xf3, 0xc1, 0xfb, 0x11, 0x4a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0xe8, 0xa1, 0x7a, 0x20, 0x8d, 0x1e, 0x3e, 0x1c, 0x8c, 0x3b, 0xa8, 0xe3, 0xd0, 0xa1, 0x05, 0xd8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x49, 0x0f, 0xc9, 0x40, 0x26, 0x3d, 0x8c, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0xe9, 0x21, 0x1a, 0xc8, 0xa4, 0x87, 0xc5, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0xe3, 0xc1, 0xb3, 0xd0, 0x7a, 0x36, 0x78, 0x21, 0x8c, 0xcf, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0x3c, 0x5f, 0xc5, 0x67, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xa4, 0x87, 0xc9, 0x40, 0x26, 0x3d, 0x6c, 0x0e, 0x86, 0xe6, 0xef, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x41, 0xb0, 0x78, 0xf0, 0x82, 0xf1, 0x92, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x1b, 0x8f, 0x1b, 0xc8, 0x96, 0xc7, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xf1, 0xb8, 0x83, 0xc7, 0xe6, 0xf8, 0x0c, 0xbb, 0x70, 0x8b, 0x81, 0x2f, 0xf6, 0x26, 0xe7, 0x1e, 0xa2, 0xb9, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x8e, 0x87, 0xc9, 0x40, 0x76, 0x3c, 0x6c, 0x07, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x92, 0x01, 0x43, 0xbd, 0xef, 0x78, 0x7e, 0x68, 0xd4, 0x32, 0xec, 0xc2, 0x6d, 0xf0, 0x86, 0x1e, 0x9f, 0x83, 0x90, 0x02, 0x3f, 0x18, 0x0b, 0xa3, 0xc3, 0x6e, 0xf0, 0xde, 0x1d, 0x8c, 0x05, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x82, 0x3c, 0x4c, 0x06, 0x12, 0xe4, 0x61, 0x7b, 0xf0, 0x74, 0x20, 0x9f, 0x61, 0x17, 0x6e, 0x83, 0xb7, 0xef, 0x60, 0x1c, 0x84, 0x14, 0xf8, 0xc1, 0x58, 0x18, 0x1d, 0x76, 0xe1, 0x16, 0x0f, 0xde, 0x30, 0x5e, 0x72, 0x88, 0xe6, 0x82, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x47, 0x1e, 0x26, 0x03, 0x39, 0xf2, 0xb0, 0x3d, 0x78, 0x3a, 0x90, 0xcf, 0xb0, 0x0b, 0xb7, 0xc1, 0x23, 0x96, 0x7c, 0x0e, 0x42, 0x0a, 0xfc, 0x60, 0x2c, 0x8c, 0x0e, 0xbb, 0xc1, 0x9b, 0xd8, 0x7a, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0xe4, 0x21, 0x19, 0x48, 0x93, 0x87, 0xca, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x34, 0x79, 0x88, 0x06, 0xd2, 0xe4, 0x61, 0x72, 0xf0, 0x8c, 0xb9, 0x9e, 0x41, 0xb6, 0xc1, 0x5b, 0xa4, 0x7c, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0xe4, 0x61, 0x34, 0x90, 0x26, 0x0f, 0x05, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x9a, 0x3c, 0x6c, 0x0e, 0x5e, 0xa7, 0xe5, 0x33, 0x08, 0x36, 0x78, 0xcb, 0x60, 0xcf, 0xa1, 0x29, 0xd0, 0x20, 0xdb, 0xe0, 0x2d, 0x52, 0x3e, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x9a, 0x3c, 0x54, 0x0c, 0xa4, 0xc9, 0x43, 0xe3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x26, 0x0f, 0x0d, 0x07, 0x6f, 0x0c, 0xf3, 0x19, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x74, 0x70, 0x5a, 0xc1, 0x3d, 0xb4, 0x00, 0x1b, 0x76, 0x83, 0x87, 0x18, 0xf6, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xca, 0x43, 0x32, 0x90, 0x29, 0x0f, 0xe3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4c, 0x79, 0x88, 0x06, 0x32, 0xe5, 0x61, 0x79, 0xf0, 0xea, 0xc6, 0x9e, 0x41, 0xb6, 0xc1, 0xa3, 0xce, 0x7c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4c, 0x79, 0x98, 0x0e, 0x64, 0xca, 0xc3, 0xf6, 0x60, 0x68, 0xfe, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xf2, 0x90, 0x0c, 0x24, 0xcb, 0x43, 0xd7, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xb2, 0x3c, 0x44, 0x03, 0xc9, 0xf2, 0x30, 0x19, 0x76, 0xe1, 0x36, 0x44, 0x73, 0x0c, 0x78, 0xe5, 0xca, 0xc6, 0xca, 0xd2, 0xec, 0xca, 0x0d, 0x9e, 0x65, 0xe7, 0x73, 0x38, 0xc5, 0x06, 0xd9, 0x06, 0x4f, 0x86, 0xf3, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x96, 0x87, 0xd9, 0x40, 0xb2, 0x3c, 0x2c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x64, 0x79, 0xd8, 0x1c, 0xbc, 0x67, 0xcf, 0xe7, 0xe0, 0x25, 0x7b, 0x3d, 0x83, 0x6c, 0x83, 0x27, 0xc3, 0xf9, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xf2, 0xb0, 0x1d, 0x48, 0x96, 0x87, 0xaa, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x59, 0x1e, 0xa6, 0x07, 0x8f, 0x0d, 0xf4, 0x19, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0xfc, 0x06, 0x2f, 0x1f, 0xec, 0x39, 0x78, 0x6f, 0x5a, 0xc0, 0xa1, 0x05, 0xd8, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xb2, 0xc7, 0x0d, 0xa4, 0xda, 0x43, 0xdb, 0x20, 0xd8, 0xa0, 0xa0, 0x16, 0x5b, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0xec, 0x71, 0x07, 0x6f, 0x4e, 0xf4, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xec, 0x71, 0x07, 0x6f, 0x4e, 0xf4, 0x19, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0xf6, 0xf8, 0x81, 0x44, 0x7b, 0x28, 0x1a, 0x76, 0xc3, 0xae, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xa2, 0x3d, 0x8c, 0x06, 0x12, 0xed, 0x61, 0x75, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x68, 0x0f, 0xb3, 0x81, 0x44, 0x7b, 0xe8, 0xd9, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xd1, 0x1e, 0x76, 0x07, 0x0f, 0xc3, 0xf4, 0x39, 0x18, 0x99, 0xbd, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xaa, 0x3d, 0xee, 0xe0, 0xcd, 0x89, 0x3e, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xf6, 0xd8, 0x81, 0x54, 0x7b, 0x18, 0x1e, 0x14, 0x87, 0x1a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xf6, 0xb0, 0x1c, 0x48, 0xb5, 0x87, 0x9e, 0x83, 0x71, 0x61, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xda, 0x43, 0xd1, 0x40, 0xaa, 0x3d, 0x94, 0x1d, 0x87, 0x8e, 0xc7, 0xc7, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0xd9, 0x20, 0xf9, 0xc6, 0x79, 0x30, 0x8b, 0x1b, 0x04, 0x1b, 0xda, 0xce, 0x2c, 0x0e, 0x82, 0x0d, 0x46, 0xfe, 0xc3, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x6c, 0xa2, 0x07, 0xcf, 0x50, 0xf5, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x6c, 0x42, 0x3a, 0xd8, 0x84, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xd8, 0xc4, 0x1f, 0xbc, 0x0e, 0xd6, 0x67, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x6c, 0x42, 0x3c, 0xd8, 0x84, 0xc5, 0x20, 0x19, 0x78, 0xa7, 0xef, 0x60, 0x18, 0xfa, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x36, 0x61, 0x32, 0xd8, 0x84, 0xed, 0x21, 0x75, 0x70, 0x1c, 0x3a, 0xa4, 0xe1, 0x06, 0xd9, 0x06, 0xaf, 0x63, 0xf5, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x8c, 0x42, 0x38, 0x18, 0x85, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x8c, 0xe2, 0x0f, 0x5e, 0xe9, 0xeb, 0x33, 0x08, 0x36, 0x68, 0xe5, 0xba, 0xfc, 0x60, 0xb1, 0x2e, 0xd3, 0x20, 0xdb, 0xe0, 0x75, 0xac, 0x3e, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x60, 0x15, 0x06, 0x83, 0x55, 0xd8, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x82, 0x55, 0xfc, 0xc1, 0x8b, 0x8a, 0x7d, 0x86, 0xdf, 0x90, 0x5c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xab, 0xb0, 0x38, 0x78, 0x51, 0xb1, 0xcf, 0x41, 0x3a, 0x94, 0xc7, 0xa1, 0xf9, 0xcb, 0xf1, 0xf8, 0x78, 0xbc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xe8, 0x8a, 0x0e, 0x7e, 0xc5, 0x0d, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xe8, 0x8a, 0x1f, 0x74, 0x86, 0x64, 0x71, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb4, 0x85, 0x64, 0x50, 0x19, 0xfa, 0x87, 0xdd, 0xd0, 0x71, 0x64, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x50, 0x17, 0x92, 0x83, 0x67, 0x4f, 0xfb, 0x0c, 0xbb, 0x41, 0x30, 0xec, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xea, 0x42, 0x3a, 0x68, 0x0c, 0xf9, 0xb0, 0x0b, 0xbb, 0x41, 0x30, 0xec, 0x2f, 0xec, 0xc2, 0x6d, 0xb0, 0xd4, 0xa6, 0xe0, 0x60, 0xfc, 0x74, 0x1d, 0xb4, 0xbe, 0xe6, 0x7e, 0x38, 0xda, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x0d, 0xde, 0x3c, 0xbc, 0x31, 0xa8, 0x0b, 0x17, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x0d, 0x1e, 0xdf, 0xbb, 0x31, 0xa8, 0x0b, 0xc3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x41, 0x5d, 0xd8, 0x0c, 0xea, 0xc2, 0x6a, 0xd8, 0x85, 0xdb, 0x60, 0xfc, 0x74, 0x1d, 0x2c, 0xb5, 0x29, 0x38, 0x78, 0x3f, 0x36, 0xcf, 0x20, 0xdb, 0xe0, 0x0d, 0xe0, 0x3e, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xa0, 0x2e, 0xcc, 0x06, 0x75, 0x61, 0x37, 0xec, 0x06, 0xa5, 0x2f, 0xd8, 0xa1, 0x71, 0xd4, 0x20, 0xdb, 0xe0, 0x8d, 0xdd, 0x3e, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xa0, 0x2e, 0x2c, 0x07, 0x75, 0xa1, 0x72, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xd4, 0x85, 0xe9, 0xa0, 0x2e, 0xcc, 0x0f, 0x5e, 0xa2, 0x51, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xa0, 0x2e, 0xec, 0x07, 0x75, 0xa1, 0x6f, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xea, 0x42, 0xc1, 0xa0, 0x2e, 0x94, 0x1c, 0xbc, 0x44, 0xa3, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x41, 0x5d, 0x68, 0x19, 0xd4, 0x85, 0xa6, 0x41, 0x32, 0x50, 0xbb, 0x0e, 0x86, 0xa1, 0xcf, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x41, 0x5d, 0xa8, 0x1a, 0xd4, 0x85, 0xba, 0x83, 0x07, 0xef, 0xfb, 0x1c, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xea, 0x42, 0xe1, 0xa0, 0x2e, 0x34, 0x0e, 0x82, 0x0d, 0x1e, 0xb6, 0xd7, 0x73, 0x30, 0x8e, 0x43, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc7, 0xa1, 0x43, 0x07, 0x8d, 0x61, 0x17, 0x76, 0x83, 0x60, 0xd8, 0x5f, 0xd8, 0x85, 0xdb, 0x60, 0x55, 0xf7, 0xc2, 0xc1, 0xf8, 0xe9, 0x3a, 0x68, 0x7d, 0xcd, 0xfd, 0x70, 0xb4, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x1b, 0xbc, 0xdb, 0x79, 0x63, 0xd0, 0x17, 0x6e, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x1b, 0x3c, 0x20, 0x79, 0x63, 0xd0, 0x17, 0x86, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x82, 0xbe, 0xb0, 0x19, 0xf4, 0x85, 0xd5, 0xb0, 0x0b, 0xb7, 0xc1, 0xf8, 0xe9, 0x3a, 0x58, 0xd5, 0xbd, 0xb0, 0xc1, 0xaa, 0xee, 0x85, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x78, 0x0c, 0xc3, 0xcf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xe8, 0x0b, 0xb3, 0x41, 0x5f, 0xd8, 0x1d, 0xbc, 0x32, 0xdd, 0x67, 0x90, 0x6d, 0xf0, 0xd8, 0x84, 0x9f, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xd0, 0x17, 0x96, 0x83, 0xbe, 0x50, 0x39, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xfa, 0xc2, 0x74, 0xd0, 0x17, 0xe6, 0x07, 0x2f, 0xd1, 0x28, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xd0, 0x17, 0xf6, 0x83, 0xbe, 0xd0, 0x37, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x7d, 0xa1, 0x60, 0xd0, 0x17, 0x4a, 0x0e, 0x5e, 0xa2, 0x51, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xa0, 0x2f, 0xb4, 0x0c, 0xfa, 0x42, 0xd3, 0xc1, 0x83, 0xf7, 0x7d, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xfa, 0x42, 0xd5, 0xa0, 0x2f, 0xd4, 0x1d, 0x3c, 0x78, 0xdf, 0xe7, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xd0, 0x17, 0x0a, 0x07, 0x7d, 0xa1, 0xf1, 0xe0, 0xed, 0x03, 0x3f, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xd0, 0xa1, 0x83, 0xc6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x28, 0x0c, 0x8b, 0x41, 0x61, 0x78, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x28, 0x0c, 0x93, 0x41, 0x61, 0x18, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x0a, 0xc3, 0x66, 0x50, 0x18, 0x56, 0xc3, 0x2e, 0xdc, 0x06, 0xe3, 0xa7, 0xeb, 0x60, 0x8d, 0xb6, 0xc2, 0x06, 0x6b, 0xb4, 0x15, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0xe0, 0xd9, 0x33, 0x3f, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xa0, 0x30, 0xcc, 0x06, 0x85, 0x61, 0x77, 0xf0, 0xca, 0x74, 0x9f, 0x41, 0xb6, 0xc1, 0xf3, 0x62, 0x7e, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x41, 0x61, 0xd8, 0x0e, 0x0a, 0xc3, 0x7e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x14, 0x86, 0xe5, 0xc1, 0x9b, 0x81, 0x7e, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x1d, 0x24, 0x10, 0x9e, 0x1c, 0x3a, 0x68, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x82, 0xca, 0x90, 0x1c, 0x3c, 0x7b, 0xda, 0x67, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x54, 0x86, 0x68, 0x50, 0x19, 0xe2, 0x83, 0x97, 0x68, 0x94, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xa8, 0x0c, 0xf9, 0xa0, 0x32, 0x6c, 0x0e, 0x1e, 0xbc, 0xef, 0x33, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0xd9, 0xe0, 0xc5, 0xe9, 0x1c, 0x07, 0x8f, 0x63, 0xe7, 0x38, 0x78, 0xfb, 0xc0, 0xcf, 0xa1, 0xf9, 0xcb, 0xf1, 0xf8, 0x38, 0x74, 0x68, 0xd4, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x1b, 0xbc, 0x26, 0x77, 0x63, 0xd0, 0x16, 0x5e, 0x1c, 0xbc, 0x7d, 0xe0, 0xe7, 0xd0, 0xfc, 0xe5, 0x78, 0x7c, 0x3c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xa5, 0xd1, 0x83, 0xb7, 0x38, 0xfb, 0x0c, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x68, 0x8d, 0x1e, 0xbc, 0xc5, 0xd9, 0x67, 0xf8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x41, 0x6d, 0xf4, 0xe0, 0x2d, 0xce, 0x3e, 0x8b, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x82, 0xe2, 0xb8, 0x41, 0x73, 0xb8, 0x30, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0xc2, 0x6e, 0x10, 0x0c, 0xfb, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x82, 0xe2, 0x90, 0x0c, 0x8a, 0xc3, 0x89, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x83, 0x47, 0xf7, 0x6f, 0x0c, 0x8a, 0x43, 0x3a, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x8a, 0x43, 0x74, 0xf0, 0x76, 0xb4, 0x9f, 0x41, 0xb0, 0xc1, 0xca, 0xda, 0xa8, 0x43, 0x1a, 0x6e, 0x90, 0x6d, 0xf0, 0x64, 0xb2, 0x9f, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0xd9, 0xe0, 0x39, 0xfe, 0x1b, 0x07, 0xcf, 0xd7, 0xdf, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xc5, 0x21, 0x3e, 0x78, 0xbe, 0xfe, 0xc6, 0xc1, 0x52, 0xda, 0xa8, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xd0, 0x1c, 0x77, 0xf0, 0x40, 0xb1, 0x9f, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x41, 0x73, 0x08, 0x0e, 0x1e, 0xdc, 0xc7, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9a, 0x63, 0x0f, 0x1e, 0xdc, 0xc7, 0x31, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x90, 0x0c, 0x6e, 0x1d, 0x0c, 0xff, 0xd8, 0x43, 0x1a, 0x6e, 0x90, 0x6d, 0xf0, 0xae, 0xb9, 0x9f, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xd0, 0x1c, 0xf2, 0x41, 0x73, 0x98, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x82, 0xe6, 0x90, 0x1e, 0x3c, 0xe0, 0xef, 0x67, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x0e, 0x9e, 0xb6, 0xc7, 0x71, 0xd0, 0xec, 0xc0, 0xca, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc1, 0x5b, 0x0a, 0x39, 0x0e, 0xde, 0x2d, 0xc8, 0x71, 0xb0, 0x8c, 0xcb, 0xeb, 0x38, 0x74, 0xe8, 0xa0, 0x71, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xbc, 0x8a, 0x1b, 0xdc, 0x0a, 0x45, 0xc3, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x6e, 0xc5, 0x1d, 0x3c, 0x96, 0xf1, 0x67, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x82, 0x5b, 0x21, 0x1c, 0xdc, 0x0a, 0x3d, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xe0, 0x56, 0x98, 0x1f, 0x3c, 0x4a, 0xf2, 0x67, 0xf8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0xc1, 0xad, 0x50, 0x70, 0xf0, 0x28, 0xc9, 0x9f, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb8, 0x15, 0x1a, 0x06, 0xb7, 0x42, 0xc9, 0xc1, 0xba, 0xb6, 0xb1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0xc1, 0xad, 0xd0, 0x32, 0xb8, 0x15, 0x6a, 0x0e, 0xa9, 0x83, 0xe3, 0xd0, 0xf1, 0xfc, 0x78, 0x7c, 0x30, 0x3a, 0x3a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x41, 0x79, 0xdc, 0xe0, 0x52, 0xfc, 0xf0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x82, 0xf6, 0xb8, 0x83, 0x77, 0x87, 0xfe, 0x0c, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x50, 0x1f, 0x77, 0xf0, 0xee, 0xd0, 0x9f, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xd0, 0x1f, 0x77, 0xf0, 0xee, 0xd0, 0x9f, 0x61, 0x37, 0x08, 0x7a, 0xfd, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0xc1, 0x8b, 0xb8, 0x83, 0x77, 0x87, 0xfe, 0x0c, 0xbb, 0x61, 0xd7, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0xd9, 0xe0, 0x6d, 0x07, 0x1d, 0x83, 0x17, 0x61, 0xb7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x6c, 0xf0, 0xec, 0x83, 0x8e, 0x83, 0xa7, 0xe9, 0x73, 0x1c, 0x62, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x78, 0x11, 0x16, 0x83, 0x17, 0x61, 0x74, 0x88, 0xe6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x78, 0x11, 0x56, 0x83, 0x17, 0x61, 0x76, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb8, 0x11, 0x77, 0xf0, 0xee, 0xd0, 0x9f, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb8, 0x12, 0x77, 0xf0, 0xee, 0xd0, 0x9f, 0x61, 0x37, 0x28, 0x42, 0x06, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x5f, 0xe2, 0x07, 0x5f, 0xc2, 0x7e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xf0, 0x25, 0x04, 0x83, 0x2f, 0x21, 0x3d, 0x34, 0x12, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x5f, 0x42, 0x3c, 0xf8, 0x12, 0xe6, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xf0, 0x25, 0xe4, 0x83, 0x2f, 0x61, 0x73, 0xb0, 0xea, 0x0b, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0xc1, 0x97, 0x30, 0x1a, 0x7c, 0x09, 0xbb, 0x43, 0x34, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xbe, 0x84, 0xe1, 0xe0, 0x4b, 0x58, 0x1f, 0x1a, 0x09, 0x1e, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0xc1, 0x99, 0xb8, 0x83, 0x77, 0x87, 0xfe, 0x0c, 0xbb, 0xb0, 0x0b, 0x3d, 0x18, 0x5e, 0x14, 0x87, 0xf5, 0xcd, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0xc1, 0x9b, 0x90, 0x0f, 0xde, 0x84, 0xd2, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0xc1, 0x9b, 0x30, 0x18, 0xbc, 0x09, 0x5d, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xf0, 0x26, 0x2c, 0x06, 0x6f, 0xc2, 0xe8, 0xa0, 0xb9, 0xc3, 0xa8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6f, 0xc2, 0x6a, 0xf0, 0x26, 0x54, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xde, 0x84, 0xd9, 0xe0, 0x4d, 0x58, 0x1e, 0xa2, 0x39, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xde, 0x84, 0xe9, 0xe0, 0x4d, 0x68, 0x38, 0x18, 0x5e, 0x14, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6f, 0x42, 0xc7, 0xe0, 0x4d, 0xa8, 0x3a, 0x18, 0xa6, 0x13, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xf0, 0x26, 0x94, 0x0d, 0xde, 0x84, 0xce, 0x83, 0xe1, 0x45, 0x31, 0xec, 0xc2, 0x6e, 0xf0, 0x46, 0xe9, 0x9f, 0x85, 0x5d, 0xb8, 0x0d, 0x96, 0xda, 0x14, 0x4c, 0x38, 0xba, 0x70, 0x1b, 0x62, 0x38, 0xe1, 0xe9, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x82, 0x3b, 0x21, 0x1f, 0xdc, 0x09, 0x85, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x82, 0x3b, 0x61, 0x30, 0xb8, 0x13, 0x5a, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xe0, 0x4e, 0x58, 0x0c, 0xee, 0x84, 0xd1, 0xc1, 0x5a, 0x43, 0xaf, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x77, 0xc2, 0x6a, 0x70, 0x27, 0x0c, 0x0f, 0xd1, 0x1c, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb8, 0x13, 0x96, 0x83, 0x3b, 0xa1, 0x64, 0xf8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0xc1, 0x9d, 0xb0, 0x3f, 0x78, 0x11, 0xff, 0xcf, 0xa1, 0x91, 0xe0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xe0, 0x4e, 0x98, 0x0e, 0xee, 0x84, 0xed, 0x21, 0x75, 0x30, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xee, 0x84, 0xf1, 0xe0, 0x4e, 0x58, 0x1f, 0x92, 0x4b, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x70, 0x27, 0xd4, 0x0c, 0xee, 0x84, 0xbe, 0x83, 0xc7, 0xa5, 0xd8, 0x0c, 0xbb, 0xb0, 0x1b, 0xbc, 0x51, 0xfa, 0x67, 0x61, 0x17, 0x6e, 0x83, 0x55, 0xdd, 0x0b, 0x07, 0x6f, 0x64, 0xff, 0x39, 0x78, 0x35, 0xfb, 0xcf, 0xe1, 0x68, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xfc, 0x09, 0xf9, 0xe0, 0x4f, 0x68, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x82, 0x3f, 0x61, 0x32, 0xf8, 0x13, 0x7a, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xe0, 0x4f, 0xd8, 0x0c, 0xfe, 0x84, 0xd9, 0xc1, 0x5a, 0x43, 0xaf, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x7f, 0xc2, 0x6e, 0xf0, 0x27, 0x4c, 0x0f, 0xd1, 0x1c, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xf8, 0x13, 0xb6, 0x83, 0x3f, 0xa1, 0x66, 0xf8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0xc1, 0x9f, 0xd0, 0x70, 0xf0, 0xe2, 0x0c, 0xa0, 0x43, 0x23, 0xc1, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0xc1, 0x9f, 0x30, 0x1e, 0xfc, 0x09, 0xeb, 0x43, 0xea, 0x60, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xfc, 0x09, 0xf3, 0xc1, 0x9f, 0xb0, 0x3f, 0x24, 0x97, 0x8e, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xe0, 0x4f, 0x28, 0x1a, 0xfc, 0x09, 0xc5, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x82, 0x3f, 0xa1, 0x69, 0xf0, 0x27, 0x54, 0x1d, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0xc1, 0x9f, 0xd0, 0x35, 0xf8, 0x13, 0x7a, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xe0, 0x4f, 0x28, 0x1b, 0xfc, 0x09, 0x85, 0x07, 0xab, 0x0b, 0x23, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xfc, 0x09, 0x8d, 0x83, 0x3f, 0xa1, 0xf4, 0x90, 0xb5, 0x1b, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xf8, 0x13, 0x5a, 0x07, 0x7f, 0x42, 0xed, 0x71, 0xe8, 0x38, 0x34, 0xc8, 0xd6, 0xd0, 0x7e, 0x7d, 0xd8, 0x0d, 0xde, 0x28, 0xfd, 0xb3, 0xb0, 0x0b, 0xb7, 0xc1, 0x1a, 0x6d, 0x85, 0x83, 0x37, 0xb2, 0xff, 0x1c, 0xbc, 0x9a, 0xfd, 0xe7, 0x70, 0xb4, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x82, 0x43, 0x21, 0x1f, 0x3c, 0x0a, 0x15, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x70, 0x28, 0xcc, 0x06, 0x87, 0x42, 0xc5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x1c, 0x0a, 0xd3, 0xc1, 0xa1, 0xd0, 0x70, 0x30, 0x4c, 0x27, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xe0, 0x51, 0xc8, 0x0f, 0x1e, 0xa3, 0x03, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x78, 0x14, 0x06, 0x83, 0x47, 0x61, 0x73, 0x10, 0x52, 0xe0, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xe0, 0x51, 0x18, 0x0d, 0x1e, 0x85, 0x86, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x78, 0x14, 0x56, 0x83, 0x47, 0x61, 0x38, 0x48, 0x06, 0xba, 0x3b, 0x1d, 0x9c, 0x84, 0x8e, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x3c, 0x0a, 0xcb, 0xc1, 0xa3, 0x30, 0x3e, 0x08, 0x01, 0xf0, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x82, 0x47, 0x61, 0x3d, 0x78, 0x14, 0x0a, 0x0e, 0x59, 0xbb, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xf8, 0x11, 0x3f, 0x38, 0x12, 0x8a, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xe0, 0x47, 0x88, 0x0f, 0xde, 0xf7, 0xd1, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xe9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xf8, 0x11, 0x46, 0x83, 0x1f, 0x61, 0x79, 0xe8, 0x18, 0x76, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x47, 0xe2, 0x0f, 0x5e, 0x57, 0x05, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x38, 0x12, 0x82, 0xc1, 0x91, 0xd0, 0x32, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x47, 0x42, 0x32, 0x38, 0x12, 0xc2, 0x83, 0x13, 0x9f, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x82, 0x23, 0x21, 0x1d, 0x1c, 0x09, 0x83, 0x43, 0x34, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x8e, 0x84, 0xc5, 0xe0, 0x48, 0x28, 0x19, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x82, 0x23, 0x61, 0x32, 0x38, 0x12, 0x56, 0x83, 0x64, 0xa0, 0x2e, 0x1d, 0x1c, 0xb3, 0x8a, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x1c, 0x09, 0xb3, 0xc1, 0x91, 0xb0, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x1c, 0x09, 0xbb, 0xc1, 0x91, 0x30, 0x3d, 0xc4, 0x7f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x1c, 0x09, 0xdb, 0xc1, 0x91, 0x30, 0x3f, 0x8c, 0xcb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0xc1, 0x91, 0x50, 0x30, 0x38, 0x12, 0x3a, 0x0e, 0x42, 0x0a, 0xfc, 0x38, 0x74, 0x1c, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x1c, 0x09, 0x35, 0x83, 0x23, 0xa1, 0xe9, 0x10, 0xff, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x70, 0x24, 0x54, 0x0d, 0x8e, 0x84, 0xde, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x38, 0x12, 0xba, 0x06, 0x47, 0x42, 0xdd, 0xc1, 0x89, 0xcf, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0xc1, 0x91, 0xd0, 0x37, 0x38, 0x12, 0x2a, 0x0f, 0xe3, 0x32, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x70, 0x24, 0x74, 0x0e, 0x8e, 0x84, 0xda, 0x83, 0xc1, 0x1a, 0x7b, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x07, 0xe2, 0x07, 0x1f, 0x42, 0xe9, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x1c, 0x08, 0xf1, 0xe0, 0x40, 0x98, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0xc1, 0x81, 0x30, 0x19, 0x1c, 0x08, 0xab, 0x43, 0x34, 0x8f, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xe0, 0x41, 0xfc, 0xc1, 0x53, 0x18, 0x81, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xe0, 0x41, 0x88, 0x07, 0x0f, 0xc2, 0x6c, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1e, 0x84, 0xc9, 0xe0, 0x41, 0x58, 0x1d, 0xf2, 0xb5, 0xc7, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x70, 0x21, 0xfe, 0xe0, 0x29, 0x8c, 0x40, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x70, 0x21, 0xc4, 0x83, 0x0b, 0x61, 0x3b, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x17, 0x42, 0x3e, 0xb8, 0x10, 0x26, 0x83, 0x64, 0xa0, 0xbb, 0xd3, 0xc1, 0x31, 0xab, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0xc1, 0x85, 0xb0, 0x19, 0x5c, 0x08, 0xb3, 0xc3, 0xb8, 0x0c, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x5c, 0x08, 0xbb, 0xc1, 0x85, 0x30, 0x3d, 0x08, 0xb2, 0xf8, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xf8, 0x10, 0x7f, 0xf0, 0x14, 0x46, 0xa0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0xc1, 0x87, 0x10, 0x0c, 0x3e, 0x84, 0x8e, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xf8, 0x10, 0x92, 0xc1, 0x87, 0x10, 0x1e, 0x34, 0x96, 0x08, 0x35, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xe0, 0x43, 0x48, 0x07, 0x1f, 0xc2, 0xe0, 0x90, 0xb5, 0x1b, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xf8, 0x10, 0x16, 0x83, 0x0f, 0xa1, 0x62, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x3e, 0x84, 0xc9, 0xe0, 0x43, 0x58, 0x0d, 0x92, 0x81, 0xba, 0x74, 0x70, 0xf6, 0x32, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xf0, 0x21, 0xcc, 0x06, 0x1f, 0xc2, 0x7a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xf0, 0x21, 0xec, 0x06, 0x1f, 0xc2, 0xf4, 0xd0, 0x48, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x7c, 0x08, 0xdb, 0xc1, 0x87, 0x30, 0x3e, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x7c, 0x08, 0xf3, 0xc1, 0x87, 0xd0, 0x70, 0x88, 0xe6, 0x71, 0xe8, 0x38, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xf8, 0x10, 0x4a, 0x06, 0x1f, 0x42, 0xcf, 0xa1, 0x91, 0xe0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xf8, 0x10, 0x8a, 0x06, 0x1f, 0x42, 0xe7, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x7c, 0x08, 0x4d, 0x83, 0x0f, 0xa1, 0xec, 0xa0, 0xb1, 0x44, 0xa8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x1f, 0x42, 0xdb, 0xe0, 0x43, 0x28, 0x3c, 0x08, 0x4a, 0xef, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x82, 0x0f, 0xa1, 0x71, 0xf0, 0x21, 0x54, 0x1e, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0x38, 0xe0, 0x99, 0x85, 0xe1, 0x87, 0xd4, 0xd2, 0xf1, 0xf8, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x37, 0x68, 0xdb, 0xb1, 0x69, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xd0, 0x1a, 0xe2, 0x41, 0x6b, 0x18, 0x1d, 0x92, 0x4b, 0x1d, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x41, 0x69, 0xfc, 0xa0, 0x34, 0x04, 0x07, 0x25, 0x43, 0xd3, 0x0a, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x82, 0x97, 0x61, 0x32, 0x78, 0x19, 0x46, 0x83, 0x64, 0xe0, 0xfd, 0xbe, 0xe3, 0xf1, 0x82, 0x60, 0x83, 0xf7, 0xda, 0xf8, 0x2c, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xdd, 0x8a, 0xe8, 0xc0, 0x96, 0x45, 0xdc, 0xb0, 0x0b, 0xbb, 0x70, 0x8b, 0x81, 0x0f, 0xc7, 0x56, 0x16, 0x1e, 0xa2, 0xb9, 0x21, 0x86, 0xc3, 0x2e, 0xdc, 0x62, 0xe0, 0xa3, 0x95, 0x95, 0xc9, 0x87, 0x68, 0x6e, 0x88, 0xe1, 0xb0, 0x1b, 0xbc, 0x77, 0x07, 0x63, 0x43, 0x0c, 0x87, 0x5d, 0xb8, 0x0d, 0x1e, 0x1d, 0xbe, 0x73, 0x88, 0xe6, 0x86, 0x18, 0x0e, 0xbb, 0x70, 0x8b, 0x07, 0xab, 0xb6, 0xc9, 0x0f, 0xd1, 0xdc, 0x10, 0xc3, 0x61, 0x17, 0x6e, 0xf1, 0x60, 0xf9, 0x6e, 0xcf, 0x21, 0x9a, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x2d, 0x06, 0xfe, 0x9c, 0x5b, 0x9d, 0x78, 0x88, 0xe6, 0x86, 0x18, 0x0e, 0xbb, 0xc1, 0xc3, 0x95, 0x7c, 0x36, 0xc4, 0x70, 0xd8, 0x85, 0x5b, 0x0c, 0xfc, 0xb6, 0xb7, 0xb5, 0xf2, 0x10, 0xcd, 0x0d, 0x31, 0x1c, 0x76, 0xe1, 0x16, 0x03, 0x3f, 0xcd, 0x2d, 0x8d, 0x3e, 0x44, 0x73, 0x43, 0x0c, 0x87, 0xdd, 0xa0, 0xd5, 0x86, 0xfb, 0x0d, 0x31, 0x1c, 0x76, 0xe1, 0x16, 0x0f, 0x4e, 0x57, 0x65, 0x87, 0x68, 0x6e, 0x88, 0xe1, 0xb0, 0x0b, 0xb7, 0x18, 0xf8, 0x6d, 0x65, 0x65, 0xeb, 0x21, 0x9a, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x2d, 0x06, 0x3e, 0x9c, 0xdc, 0x1b, 0x79, 0x88, 0xe6, 0x86, 0x18, 0x0e, 0xbb, 0x70, 0x8b, 0x81, 0x3f, 0xf6, 0xe6, 0x76, 0x1e, 0xa2, 0xb9, 0x21, 0x86, 0xc3, 0x2e, 0xdc, 0xe2, 0x41, 0x33, 0xf8, 0x56, 0x87, 0x68, 0x6e, 0x88, 0xe1, 0xb0, 0x0b, 0xb7, 0x18, 0xf8, 0x77, 0x68, 0x61, 0xed, 0x21, 0x9a, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x2d, 0x1e, 0xac, 0xd6, 0x2c, 0x3a, 0x44, 0x73, 0x43, 0x0c, 0x87, 0x5d, 0xb8, 0x0d, 0xc6, 0xd3, 0xdc, 0x21, 0x9a, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x2d, 0x06, 0xfe, 0x5a, 0x59, 0x99, 0x7b, 0x88, 0xe6, 0x86, 0x18, 0x0e, 0xbb, 0x70, 0x8b, 0x07, 0xad, 0xc3, 0x97, 0x1e, 0xa2, 0xb9, 0x21, 0x86, 0xc3, 0x2e, 0xdc, 0xe2, 0x41, 0x32, 0xcc, 0xe7, 0x21, 0x9a, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x2d, 0x06, 0xfe, 0x5c, 0x9a, 0x19, 0x7d, 0x88, 0xe6, 0x86, 0x18, 0x0e, 0xbb, 0x70, 0x8b, 0x81, 0xdf, 0x56, 0x36, 0x37, 0x1f, 0xa2, 0xb9, 0x21, 0x86, 0xc3, 0x6e, 0xf0, 0x6e, 0x1e, 0x9f, 0x0d, 0x31, 0x1c, 0x76, 0xe1, 0x16, 0x03, 0x7f, 0x4d, 0xee, 0x6d, 0x3c, 0x44, 0x73, 0x43, 0x0c, 0x87, 0x5d, 0xb8, 0xc5, 0x83, 0x05, 0xbc, 0xd3, 0x87, 0x68, 0x6e, 0x88, 0xe1, 0xb0, 0x0b, 0xb7, 0x78, 0xd0, 0x70, 0x26, 0xd9, 0x21, 0x9a, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x2d, 0x06, 0x3e, 0x5a, 0x59, 0x98, 0x7c, 0x88, 0xe6, 0x86, 0x18, 0x0e, 0xbb, 0x70, 0x8b, 0x81, 0x4f, 0x17, 0xd6, 0x56, 0x1e, 0xa2, 0xb9, 0x21, 0x86, 0xc3, 0x2e, 0xdc, 0xe2, 0xc1, 0x9a, 0x2c, 0x9e, 0x43, 0x34, 0x37, 0xc4, 0x70, 0xb8, 0xc5, 0xc0, 0x9f, 0x83, 0x2b, 0xbb, 0x0f, 0xd1, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xd8, 0xad, 0x88, 0x1f, 0xd8, 0xad, 0x08, 0x83, 0x41, 0xb0, 0xc1, 0xd3, 0x82, 0x79, 0x0e, 0x8d, 0x5a, 0x86, 0x5d, 0xd8, 0x0d, 0xde, 0x9b, 0x0e, 0xb4, 0x21, 0x86, 0xc3, 0x6e, 0xf0, 0xde, 0x1d, 0x8c, 0x0d, 0x31, 0x1c, 0x76, 0xe1, 0x16, 0x03, 0x9f, 0x2c, 0x4d, 0x6e, 0x3d, 0x44, 0x73, 0x43, 0x0c, 0x87, 0x5d, 0xb8, 0xc5, 0xc0, 0x87, 0x2b, 0x93, 0x6b, 0x0f, 0xd1, 0xdc, 0x10, 0xc3, 0x61, 0x17, 0x6e, 0x31, 0xf0, 0xe9, 0xd2, 0xe4, 0xca, 0x43, 0x34, 0x37, 0xc4, 0x70, 0xd8, 0x85, 0x5b, 0x0c, 0xfc, 0xbb, 0x30, 0x39, 0xf8, 0x10, 0xcd, 0x0d, 0x31, 0x1c, 0x76, 0xe1, 0x16, 0x03, 0x7f, 0x4c, 0xae, 0xec, 0x3e, 0x44, 0x73, 0x43, 0x0c, 0x87, 0x5d, 0xb8, 0xc5, 0xc0, 0x17, 0x7b, 0x0b, 0xa3, 0x0f, 0xd1, 0xdc, 0x10, 0xc3, 0x61, 0x17, 0x6e, 0x31, 0xf0, 0xf5, 0xca, 0xc2, 0xd8, 0x43, 0x34, 0x37, 0xc4, 0x70, 0xd8, 0x85, 0x5b, 0x0c, 0xfc, 0xb6, 0x32, 0xb9, 0xf3, 0x10, 0xcd, 0x0d, 0x31, 0x1c, 0x76, 0x83, 0x87, 0x2b, 0xf9, 0x6c, 0x88, 0xe1, 0xb0, 0x0b, 0xb7, 0x78, 0xb0, 0xe6, 0x59, 0xee, 0x10, 0xcd, 0x0d, 0x31, 0x1c, 0x76, 0x83, 0x87, 0xdd, 0x03, 0x6d, 0x88, 0xe1, 0xb0, 0x0b, 0xb7, 0x78, 0xd0, 0x0c, 0x1b, 0xca, 0x21, 0x9a, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x2d, 0x06, 0x3e, 0x9c, 0x5c, 0x19, 0x7c, 0x88, 0xe6, 0x86, 0x18, 0x0e, 0xbb, 0x70, 0x8b, 0x81, 0x3f, 0x26, 0x57, 0x46, 0x1e, 0xa2, 0xb9, 0x21, 0x86, 0xc3, 0x2e, 0xdc, 0xe2, 0xc1, 0xe9, 0x51, 0xe1, 0x10, 0xcd, 0x0d, 0x31, 0x1c, 0x76, 0xe1, 0x16, 0x03, 0xbf, 0xed, 0xcd, 0x8d, 0x3e, 0x44, 0x73, 0x43, 0x0c, 0x87, 0x5d, 0xb8, 0xc5, 0xc0, 0x87, 0x7b, 0x93, 0x5b, 0x0f, 0xd1, 0xdc, 0x10, 0xc3, 0x61, 0x17, 0x6e, 0x31, 0xf0, 0xe9, 0xde, 0xda, 0xc4, 0x43, 0x34, 0x37, 0xc4, 0x70, 0xd8, 0x85, 0x5b, 0x0c, 0xfc, 0x34, 0x37, 0xb3, 0xf7, 0x10, 0xcd, 0x0d, 0x31, 0x1c, 0x76, 0xe1, 0x16, 0x03, 0x1f, 0x2e, 0x4c, 0x6e, 0x3d, 0x44, 0x73, 0x43, 0x0c, 0x87, 0x5d, 0xb8, 0xc5, 0xc0, 0xbf, 0x2b, 0x93, 0x83, 0x0f, 0xd1, 0xdc, 0x10, 0xc3, 0x61, 0x17, 0x6e, 0x31, 0xf0, 0xdf, 0xce, 0xe4, 0xca, 0x43, 0x34, 0x37, 0xc4, 0x70, 0xd8, 0x85, 0x5b, 0x0c, 0x7c, 0xb9, 0xb2, 0x34, 0xf7, 0x10, 0xcd, 0x0d, 0x31, 0x1c, 0x76, 0xe1, 0x16, 0x03, 0x5f, 0xaf, 0x6c, 0x8e, 0x3e, 0x44, 0x73, 0x43, 0x0c, 0x87, 0x5d, 0xb8, 0xc5, 0x83, 0x12, 0xd4, 0xeb, 0x10, 0xcd, 0x0d, 0x31, 0x1c, 0x76, 0xe1, 0x16, 0x03, 0x7f, 0x4c, 0xee, 0xed, 0x3e, 0x44, 0x73, 0x43, 0x0c, 0x0f, 0x5e, 0x8d, 0x11, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x5c, 0x11, 0x3f, 0xb0, 0x5c, 0x11, 0x06, 0x83, 0x60, 0x83, 0xd7, 0x75, 0xf3, 0x1c, 0x1a, 0xb5, 0x0c, 0xbb, 0xb0, 0x1b, 0xbc, 0x77, 0x07, 0x63, 0x43, 0x0c, 0x87, 0xdd, 0xe0, 0xe1, 0x4a, 0x3e, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x2d, 0x1e, 0x3c, 0xf1, 0x95, 0xe7, 0x10, 0xcd, 0x0d, 0x31, 0x1c, 0x76, 0xe1, 0x16, 0x03, 0x9f, 0x4c, 0x2e, 0x0d, 0x3e, 0x44, 0x73, 0x43, 0x0c, 0x87, 0xdd, 0xe0, 0xdd, 0x3c, 0x3e, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x2d, 0x06, 0x3e, 0x5a, 0xdd, 0xd8, 0x7a, 0x88, 0xe6, 0x86, 0x18, 0x0e, 0xbb, 0x70, 0x1b, 0x2c, 0x42, 0xb5, 0x3a, 0x44, 0x73, 0x43, 0x0c, 0x87, 0x5b, 0x3c, 0x68, 0xfc, 0xa8, 0xe5, 0x10, 0xcd, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xed, 0x8a, 0xf8, 0x81, 0xed, 0x8a, 0x30, 0x18, 0x04, 0x1b, 0x3c, 0xfc, 0x99, 0xe7, 0xd0, 0xa8, 0x65, 0xd8, 0x85, 0xdd, 0xe0, 0xbd, 0x3b, 0x18, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x2d, 0x1e, 0x2c, 0x09, 0xce, 0x3e, 0x44, 0x73, 0x43, 0x0c, 0x87, 0x5d, 0xb8, 0xc5, 0xc0, 0x9f, 0x43, 0xab, 0xa3, 0x0f, 0xd1, 0xdc, 0x10, 0xc3, 0x61, 0x17, 0x6e, 0xf1, 0xe0, 0xd8, 0x1b, 0x72, 0x88, 0xe6, 0x86, 0x18, 0x0e, 0xbb, 0x70, 0x8b, 0x81, 0x6f, 0xc6, 0xf6, 0x76, 0x1e, 0xa2, 0xb9, 0x21, 0x86, 0xc3, 0x6e, 0xf0, 0xa4, 0x3d, 0x8c, 0x0d, 0x31, 0x1c, 0x76, 0x83, 0xc7, 0x63, 0x6d, 0x6c, 0x88, 0xe1, 0xb0, 0x0b, 0xb7, 0x18, 0xf8, 0x73, 0x65, 0x61, 0xf4, 0x21, 0x9a, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x2d, 0x06, 0x7e, 0x5b, 0x19, 0x1b, 0x79, 0x88, 0xe6, 0x86, 0x18, 0x0e, 0xbb, 0x70, 0x8b, 0x81, 0x1f, 0x57, 0x17, 0x36, 0x1e, 0xa2, 0xb9, 0x21, 0x86, 0xc3, 0x6e, 0xf0, 0x70, 0x25, 0x9f, 0x0d, 0x31, 0x1c, 0x76, 0xe1, 0x36, 0x78, 0xfb, 0x57, 0xc9, 0x21, 0x9a, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x2d, 0x06, 0x3e, 0xdb, 0xdb, 0xd9, 0x7c, 0x88, 0xe6, 0x86, 0x18, 0x0e, 0xbb, 0x70, 0x8b, 0x81, 0x2f, 0xc6, 0x56, 0x76, 0x1f, 0xa2, 0xb9, 0x21, 0x86, 0xc3, 0x2e, 0xdc, 0x62, 0xe0, 0x9b, 0xb1, 0x95, 0x95, 0x87, 0x68, 0x6e, 0x88, 0xe1, 0xb0, 0x0b, 0xb7, 0x18, 0xf8, 0x68, 0x65, 0x66, 0xf4, 0x21, 0x9a, 0x1b, 0x62, 0x38, 0xec, 0x06, 0xed, 0xec, 0xdb, 0x6f, 0x88, 0xe1, 0xb0, 0x0b, 0xb7, 0x18, 0xf8, 0x74, 0x61, 0x6c, 0xeb, 0x21, 0x9a, 0x1b, 0x62, 0x38, 0xec, 0x06, 0x0f, 0xbb, 0x07, 0xda, 0x10, 0xc3, 0x61, 0x17, 0x6e, 0x31, 0xf0, 0xe7, 0xd0, 0xde, 0xe8, 0x43, 0x34, 0x37, 0xc4, 0x70, 0xd8, 0x85, 0x5b, 0x3c, 0x78, 0xb1, 0xf5, 0xca, 0x21, 0x9a, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x2d, 0x1e, 0x34, 0xac, 0x44, 0x72, 0x88, 0xe6, 0x86, 0x18, 0x0e, 0xbb, 0xc1, 0xbb, 0x79, 0x7c, 0x36, 0xc4, 0x70, 0xd8, 0x85, 0x5b, 0x0c, 0xfc, 0x35, 0xb7, 0x37, 0xf1, 0x10, 0xcd, 0x0d, 0x31, 0x1c, 0x76, 0xe1, 0x16, 0x03, 0x1f, 0x2d, 0x2c, 0x8d, 0x3d, 0x44, 0x73, 0x43, 0x0c, 0x87, 0x5d, 0xb8, 0xc5, 0x83, 0xb7, 0xf4, 0x86, 0x1c, 0xa2, 0xb9, 0x21, 0x86, 0xc3, 0x2d, 0x06, 0xbe, 0x58, 0x19, 0x1b, 0x7d, 0x88, 0xe6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x7a, 0x45, 0xfc, 0xc0, 0x7a, 0x45, 0x18, 0x0c, 0x82, 0x0d, 0x5e, 0x9d, 0xce, 0x73, 0x68, 0xd4, 0x32, 0xec, 0xc2, 0x6e, 0xf0, 0xde, 0x74, 0xa0, 0x0d, 0x31, 0x1c, 0x76, 0x83, 0xf7, 0xee, 0x60, 0x6c, 0x88, 0xe1, 0xb0, 0x1b, 0xbc, 0x89, 0xad, 0x67, 0x43, 0x0c, 0x87, 0x5d, 0xb8, 0xc5, 0x00, 0x4f, 0xb9, 0x32, 0xb5, 0xb2, 0x31, 0xba, 0x96, 0x37, 0xb9, 0xb4, 0xb3, 0x34, 0xf7, 0x10, 0xcd, 0x0d, 0x31, 0x1c, 0x76, 0xe1, 0x16, 0x03, 0x7c, 0xca, 0xc2, 0xea, 0xe8, 0xd0, 0x5a, 0xd0, 0xde, 0xe6, 0xe8, 0x43, 0x34, 0x37, 0xc4, 0x70, 0xd8, 0x85, 0x5b, 0x0c, 0x78, 0xe6, 0xca, 0xe4, 0xec, 0xca, 0x43, 0x34, 0x37, 0xc4, 0x70, 0xd8, 0x0d, 0x1e, 0xae, 0xe4, 0xb3, 0x21, 0x86, 0xc3, 0x6e, 0xf0, 0x10, 0xc3, 0x9e, 0x0d, 0x31, 0x1c, 0x76, 0xe1, 0x16, 0x03, 0x3c, 0xe5, 0xca, 0xe2, 0xea, 0xca, 0xe6, 0xe8, 0x5a, 0xd8, 0xde, 0xc6, 0xc2, 0xd8, 0x43, 0x34, 0x37, 0xc4, 0x70, 0xd8, 0x0d, 0x1e, 0x76, 0x0f, 0xb4, 0x21, 0x86, 0xc3, 0x2e, 0xdc, 0x62, 0x80, 0x6f, 0x18, 0x1c, 0x9c, 0xdc, 0x9b, 0x5d, 0x59, 0xcb, 0x9b, 0x5c, 0xda, 0x59, 0x9a, 0x7b, 0x88, 0xe6, 0x86, 0x18, 0x0e, 0xbb, 0x70, 0x8b, 0x01, 0x7e, 0x73, 0x65, 0x74, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0xe5, 0x21, 0x9a, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x2d, 0x06, 0xf8, 0x90, 0xa5, 0xcd, 0x8d, 0xbd, 0xb9, 0xb9, 0x95, 0x8d, 0xd1, 0x87, 0x68, 0x6e, 0x88, 0xe1, 0xb0, 0x1b, 0xbc, 0x9b, 0xc7, 0x67, 0x43, 0x0c, 0x87, 0x5d, 0xb8, 0xc5, 0x80, 0x77, 0xec, 0xcd, 0xcd, 0xad, 0x6c, 0x8c, 0x3e, 0x44, 0x73, 0x43, 0x0c, 0x87, 0x5d, 0xb8, 0x0d, 0x1e, 0xcd, 0xf3, 0x70, 0x88, 0xe6, 0x86, 0x18, 0x0e, 0xbb, 0x70, 0x1b, 0x34, 0x85, 0x6a, 0x7f, 0x88, 0xe6, 0x86, 0x18, 0x0e, 0xbb, 0x70, 0x8b, 0x01, 0x7e, 0x63, 0x6f, 0x64, 0x65, 0x2d, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0xe4, 0x21, 0x9a, 0x07, 0x4f, 0xcf, 0x08, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xd8, 0xaf, 0x88, 0x1f, 0xd8, 0xaf, 0x08, 0x83, 0x41, 0xb0, 0xc1, 0x5b, 0xf0, 0x79, 0x0e, 0x8d, 0x5a, 0x86, 0x5d, 0xd8, 0x0d, 0xde, 0x9b, 0x0e, 0xb4, 0x21, 0x86, 0xc3, 0x6e, 0xf0, 0xde, 0x1d, 0x8c, 0x0d, 0x31, 0x1c, 0x76, 0xe1, 0x16, 0x03, 0x5f, 0xed, 0x8d, 0x8d, 0x3e, 0x44, 0x73, 0x43, 0x0c, 0x87, 0xdd, 0xe0, 0x39, 0xee, 0x40, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x2d, 0x1e, 0xac, 0xbf, 0x63, 0x3d, 0x44, 0x73, 0x43, 0x0c, 0x87, 0xdd, 0xe0, 0xe1, 0x4a, 0x3e, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x6d, 0xf0, 0xde, 0x04, 0x93, 0x43, 0x34, 0x37, 0xc4, 0x70, 0xd8, 0x0d, 0x1e, 0x76, 0x0f, 0xb4, 0x21, 0x86, 0xc3, 0x2e, 0xdc, 0x62, 0xe0, 0xa7, 0x91, 0xb1, 0x95, 0x87, 0x68, 0x6e, 0x88, 0xe1, 0xb0, 0x0b, 0xb7, 0x78, 0xd0, 0x66, 0x2d, 0xf2, 0x21, 0x9a, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x2d, 0x06, 0xfe, 0x18, 0xdb, 0xdb, 0x79, 0x88, 0xe6, 0x86, 0x18, 0x0e, 0xbb, 0xc1, 0x0b, 0x18, 0x82, 0x36, 0xc4, 0x70, 0xd8, 0x85, 0x5b, 0x0c, 0x7c, 0xb2, 0x37, 0x33, 0xf3, 0x10, 0xcd, 0x0d, 0x31, 0x1c, 0x76, 0xe1, 0x16, 0x03, 0xdf, 0xad, 0x6e, 0xad, 0x3c, 0x44, 0xf3, 0xe0, 0xe9, 0x19, 0x41, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x0b, 0x16, 0xf1, 0x03, 0x0b, 0x16, 0x61, 0x30, 0x08, 0x36, 0x78, 0x96, 0x41, 0xcf, 0xa1, 0x51, 0xcb, 0xb0, 0x0b, 0xbb, 0xc1, 0x7b, 0x77, 0x30, 0x36, 0xc4, 0x70, 0xd8, 0x0d, 0xde, 0xc4, 0xd6, 0xb3, 0x21, 0x86, 0xc3, 0x6e, 0xf0, 0x70, 0x25, 0x9f, 0x0d, 0x31, 0x1c, 0x76, 0x83, 0x87, 0x18, 0xf6, 0x6c, 0x88, 0xe1, 0xb0, 0x0b, 0xb7, 0xc1, 0xb3, 0xec, 0x7c, 0x0e, 0xd1, 0xdc, 0x10, 0xc3, 0x83, 0x77, 0xf3, 0xf8, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x6c, 0x58, 0xc4, 0x0f, 0x6c, 0x58, 0x84, 0xc1, 0x20, 0xd8, 0xe0, 0x99, 0x12, 0x3d, 0x87, 0x46, 0x2d, 0xc3, 0x2e, 0xec, 0xc2, 0x2d, 0x06, 0xf8, 0xc1, 0xc9, 0xa5, 0xd9, 0x85, 0xd1, 0x95, 0xb5, 0xac, 0x95, 0xe5, 0xcd, 0x87, 0x68, 0x6e, 0x88, 0xe1, 0xb0, 0x1b, 0xbc, 0x37, 0x1d, 0x68, 0x43, 0x0c, 0x87, 0xdd, 0xe0, 0xbd, 0x3b, 0x18, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x2d, 0x1e, 0x24, 0xe7, 0xc2, 0x1e, 0xa2, 0xb9, 0x21, 0x86, 0xc3, 0x2e, 0xdc, 0x62, 0xc0, 0x23, 0x57, 0xb6, 0x56, 0x96, 0x1f, 0xa2, 0xb9, 0x21, 0x86, 0xc3, 0x6e, 0xf0, 0x70, 0x25, 0x9f, 0x0d, 0x31, 0x1c, 0x76, 0xe1, 0x16, 0x03, 0x9f, 0x2c, 0xec, 0xce, 0x3d, 0x44, 0x73, 0x43, 0x0c, 0x87, 0x5d, 0xb8, 0xc5, 0x00, 0x2f, 0xb8, 0x3a, 0x31, 0xb6, 0xb4, 0xb1, 0x96, 0xb5, 0xb2, 0xbc, 0xf9, 0x10, 0xcd, 0x0d, 0x31, 0x1c, 0x76, 0xe1, 0x16, 0x0f, 0x6f, 0xdd, 0x1f, 0xa2, 0xb9, 0x21, 0x86, 0xc3, 0x2e, 0xdc, 0x62, 0xe0, 0x9b, 0x85, 0xad, 0x95, 0x87, 0x68, 0x6e, 0x88, 0xe1, 0xb0, 0x0b, 0xb7, 0x18, 0xf0, 0xb1, 0xa5, 0xcd, 0xd1, 0x95, 0xb9, 0x87, 0x68, 0x6e, 0x88, 0xe1, 0xb0, 0x0b, 0xb7, 0x18, 0xf8, 0x6d, 0x6f, 0x6f, 0xee, 0x21, 0x9a, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x2d, 0x06, 0x7c, 0x72, 0x65, 0x73, 0x65, 0x6e, 0xe4, 0x21, 0x9a, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x2d, 0x06, 0xbe, 0x5c, 0x5d, 0x9a, 0x7b, 0x88, 0xe6, 0x86, 0x18, 0x0e, 0xbb, 0x70, 0x8b, 0x81, 0x4f, 0x57, 0x27, 0x67, 0x1e, 0xa2, 0xb9, 0x21, 0x86, 0x07, 0x0f, 0x1c, 0x0e, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0xb1, 0x88, 0x1f, 0x58, 0xb1, 0x08, 0x83, 0x41, 0xb0, 0xc1, 0x4b, 0x41, 0x7a, 0x0e, 0x8d, 0x5a, 0x86, 0x5d, 0xd8, 0x0d, 0xde, 0xbb, 0x83, 0xb1, 0x21, 0x86, 0xc3, 0x6e, 0xb0, 0xc4, 0xd2, 0x6a, 0x43, 0x0c, 0x87, 0x5d, 0xb8, 0xc5, 0xc0, 0x67, 0x0b, 0x93, 0x23, 0x0f, 0xd1, 0xdc, 0x10, 0xc3, 0x61, 0x37, 0x78, 0xb8, 0x92, 0xcf, 0x86, 0x18, 0x0e, 0xbb, 0x70, 0x8b, 0x81, 0x6f, 0x16, 0x26, 0x47, 0x1e, 0xa2, 0xb9, 0x21, 0x86, 0xc3, 0x2e, 0xdc, 0x62, 0xe0, 0x9b, 0xe5, 0xc9, 0x91, 0x87, 0x68, 0x1e, 0x3c, 0xd2, 0x39, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xc7, 0x22, 0x7e, 0x60, 0xc7, 0x22, 0x0c, 0x06, 0xc1, 0x06, 0xef, 0x75, 0xe9, 0x39, 0x34, 0x6a, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x96, 0x2c, 0xe2, 0x07, 0x96, 0x2c, 0xc2, 0x60, 0x10, 0x6c, 0xf0, 0x88, 0x9e, 0x9e, 0x43, 0xa3, 0x96, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xf0, 0x21, 0x1b, 0x3e, 0xe4, 0x63, 0x30, 0x42, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0x94, 0x90, 0x0d, 0x24, 0xce, 0xe2, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4c, 0x4a, 0xf4, 0xe0, 0xed, 0x06, 0x42, 0x8b, 0x0b, 0x82, 0xc5, 0xc1, 0xf5, 0x0d, 0x5e, 0xc8, 0xb9, 0x71, 0x38, 0xc5, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4e, 0x28, 0xa4, 0x03, 0x39, 0xa1, 0x70, 0x65, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x27, 0x14, 0x06, 0x03, 0x39, 0xa1, 0x30, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x42, 0x21, 0x3e, 0x78, 0x21, 0x84, 0xd0, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0x32, 0xb0, 0x76, 0x75, 0x3c, 0x3e, 0xa4, 0xe1, 0x06, 0xd9, 0x06, 0x0f, 0x61, 0x10, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x09, 0x85, 0xdd, 0x40, 0x4e, 0x28, 0x6c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9c, 0x50, 0x58, 0x1d, 0xbc, 0x0b, 0x43, 0x68, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x19, 0x14, 0x1d, 0x56, 0x68, 0x0f, 0x4d, 0x81, 0x06, 0xd9, 0x06, 0x0f, 0x61, 0x10, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x09, 0x85, 0xf9, 0x40, 0x4e, 0x28, 0x54, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0xa1, 0x30, 0x3e, 0x78, 0x0f, 0x88, 0xd0, 0x20, 0xd8, 0xe0, 0x61, 0x7b, 0x3d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x16, 0x32, 0x46, 0x1d, 0x1a, 0x17, 0x1d, 0x87, 0x06, 0xd9, 0x06, 0x0f, 0x61, 0x10, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x42, 0xa1, 0x65, 0x20, 0x27, 0x14, 0x9a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9c, 0x50, 0xe8, 0x38, 0x78, 0x36, 0x8a, 0xd0, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x83, 0xa5, 0xea, 0x3e, 0x87, 0xee, 0x47, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x15, 0x04, 0x8b, 0x83, 0xeb, 0x1b, 0xbc, 0x90, 0x73, 0xa3, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xda, 0x09, 0xe9, 0x40, 0x6a, 0x27, 0x9c, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xed, 0x84, 0x7c, 0x20, 0xb5, 0x13, 0x36, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x6a, 0x27, 0xc4, 0x07, 0xcf, 0xa3, 0x11, 0x3a, 0x78, 0xe7, 0x84, 0xd0, 0x20, 0xdb, 0xe0, 0x19, 0x30, 0x42, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0x9d, 0xb0, 0x1a, 0x48, 0xed, 0x84, 0xe5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xda, 0x09, 0xa3, 0x83, 0xc7, 0xeb, 0x08, 0x1d, 0x3c, 0x6f, 0x43, 0x68, 0x90, 0x6d, 0xf0, 0x0c, 0x18, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xb5, 0x13, 0xb6, 0x03, 0xa9, 0x9d, 0xb0, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x3b, 0x61, 0x7a, 0xf0, 0xb2, 0x20, 0xa1, 0x41, 0xb0, 0xc1, 0x73, 0x58, 0x84, 0x0e, 0x2d, 0xc0, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x2b, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x81, 0x42, 0x3a, 0x90, 0x06, 0x0a, 0x67, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x34, 0x50, 0x88, 0x07, 0xd2, 0x40, 0x61, 0x31, 0x48, 0x06, 0xda, 0xf4, 0x1d, 0x8c, 0x77, 0x9d, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x40, 0x61, 0x32, 0x90, 0x06, 0x0a, 0xb3, 0x83, 0xa5, 0xea, 0x3e, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x40, 0x61, 0x37, 0x90, 0x06, 0x0a, 0xdb, 0x41, 0x32, 0xd0, 0xea, 0xea, 0x78, 0x7c, 0x1c, 0x3a, 0x34, 0x6a, 0x39, 0x34, 0x7f, 0x39, 0x1e, 0xaf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xf6, 0x8a, 0x1b, 0x48, 0x81, 0xc5, 0x0f, 0x82, 0x0d, 0x5d, 0x70, 0x16, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbc, 0x57, 0xdc, 0xc1, 0x63, 0xb3, 0x84, 0x86, 0xdf, 0x90, 0x5c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x5f, 0x71, 0x07, 0x8f, 0xcd, 0x12, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x5f, 0x71, 0x07, 0x8f, 0xcd, 0x12, 0x5a, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x7d, 0x85, 0x7c, 0x20, 0xf5, 0x15, 0x9a, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xea, 0x2b, 0x4c, 0x06, 0x52, 0x5f, 0xa1, 0x63, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xf5, 0x15, 0x36, 0x03, 0xa9, 0xaf, 0x30, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x5f, 0x61, 0x77, 0xf0, 0xb2, 0x35, 0xa1, 0xe1, 0x37, 0x64, 0xed, 0x8e, 0x6f, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xea, 0x2b, 0x6c, 0x07, 0x52, 0x5f, 0xa1, 0x62, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x7d, 0x85, 0xfd, 0xc1, 0x93, 0xe2, 0x84, 0x0e, 0x1e, 0xe8, 0x26, 0xb4, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xbe, 0x42, 0xc9, 0x40, 0xea, 0x2b, 0x14, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xaf, 0xd0, 0x72, 0xf0, 0x8e, 0x3b, 0xa1, 0x83, 0x92, 0xeb, 0xe6, 0x78, 0xbc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xfa, 0x2b, 0x7e, 0x20, 0xff, 0x15, 0x26, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xfd, 0x15, 0xb2, 0x81, 0xf4, 0x57, 0x28, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x7f, 0x85, 0x70, 0x20, 0xfd, 0x15, 0xd6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xfa, 0x2b, 0xc4, 0x07, 0xcf, 0x12, 0x14, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x7f, 0x85, 0x7c, 0x20, 0xfd, 0x15, 0x36, 0xc3, 0x2f, 0x48, 0x06, 0x9a, 0x2f, 0x1d, 0x04, 0xbc, 0xff, 0xf1, 0x6d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xfd, 0x15, 0x46, 0x03, 0xe9, 0xaf, 0x30, 0x1c, 0x7e, 0x41, 0x32, 0xf0, 0xfe, 0xd2, 0x41, 0xc0, 0xfb, 0x1f, 0xdf, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf4, 0x57, 0x58, 0x0e, 0xa4, 0xbf, 0xc2, 0x78, 0xf8, 0x0d, 0xf9, 0xda, 0xe3, 0xdb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xfe, 0x0a, 0xf3, 0x81, 0xf4, 0x57, 0xe8, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x5f, 0xa1, 0xe0, 0xe0, 0xe1, 0x92, 0x42, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0xaf, 0xd0, 0x30, 0x90, 0xfe, 0x0a, 0x2d, 0x07, 0x2f, 0x40, 0x14, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x7f, 0x85, 0x9a, 0x81, 0xf4, 0x57, 0xa8, 0x3a, 0x78, 0x04, 0xa3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xfe, 0x0a, 0x5d, 0x03, 0xe9, 0xaf, 0x50, 0x77, 0xf0, 0x0c, 0x48, 0xa1, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xff, 0x15, 0x7f, 0xf0, 0x7c, 0x3e, 0xa1, 0x43, 0x0c, 0x8f, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xee, 0x2b, 0xe4, 0x03, 0xb9, 0xaf, 0x30, 0x3a, 0xc4, 0x70, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x01, 0x16, 0xf2, 0x81, 0x04, 0x58, 0x68, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0xb0, 0x30, 0x19, 0x48, 0x80, 0x85, 0xed, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x02, 0x2c, 0x6c, 0x06, 0x12, 0x60, 0x61, 0x76, 0xf0, 0x40, 0x37, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x01, 0x16, 0x76, 0x03, 0x09, 0xb0, 0x30, 0x3d, 0x78, 0x06, 0xa4, 0xd0, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x00, 0x0b, 0xe3, 0x81, 0x04, 0x58, 0x28, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x60, 0x61, 0x7d, 0xf0, 0xa0, 0x59, 0xa1, 0xe1, 0x37, 0x24, 0x3b, 0x8e, 0x6f, 0xc7, 0xe3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x0c, 0x58, 0xc8, 0x07, 0x32, 0x60, 0x61, 0x3c, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x80, 0x85, 0xdd, 0x40, 0x06, 0x2c, 0x6c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x0c, 0x58, 0x18, 0x1e, 0xbc, 0x93, 0x57, 0xe8, 0xe0, 0x61, 0xb6, 0x42, 0xc7, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xf9, 0x15, 0xf2, 0x81, 0xe4, 0x57, 0xe8, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xaf, 0x30, 0x19, 0x48, 0x7e, 0x85, 0xfd, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xf2, 0x2b, 0x6c, 0x06, 0x92, 0x5f, 0x61, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xbf, 0xc2, 0xea, 0xe0, 0xe9, 0xc7, 0x42, 0x07, 0xcf, 0x80, 0x14, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x5f, 0x61, 0x39, 0x90, 0xfc, 0x0a, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xf9, 0x15, 0xb6, 0x07, 0xaf, 0x6c, 0x16, 0x3a, 0x78, 0x06, 0xa4, 0xd0, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xfc, 0x0a, 0x05, 0x03, 0xc9, 0xaf, 0x50, 0x79, 0x88, 0xe1, 0xf1, 0xf8, 0x78, 0x7c, 0x68, 0xfe, 0x72, 0x3c, 0x3e, 0x1e, 0xaf, 0x20, 0xd8, 0xe0, 0x21, 0xe9, 0x1b, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x0b, 0x13, 0xd2, 0x81, 0x2c, 0x4c, 0x38, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x85, 0x09, 0xf1, 0x40, 0x16, 0x26, 0x94, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x61, 0xc2, 0x62, 0x20, 0x0b, 0x13, 0x56, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x16, 0x26, 0xe4, 0x07, 0xcf, 0xef, 0x16, 0x1a, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x48, 0x06, 0x9a, 0x2f, 0x1d, 0x56, 0x68, 0x0f, 0x92, 0x0d, 0x0d, 0x06, 0xd9, 0x06, 0xcf, 0xcc, 0x16, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xc2, 0x84, 0xe1, 0x40, 0x16, 0x26, 0x8c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x2c, 0x4c, 0x98, 0x1d, 0xbc, 0xc3, 0x5c, 0x68, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x19, 0x78, 0x7f, 0xe9, 0xb0, 0x42, 0x7b, 0x90, 0x5c, 0x3e, 0x30, 0xc8, 0x36, 0x78, 0x66, 0xb6, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x85, 0x09, 0xfb, 0x81, 0x2c, 0x4c, 0xe8, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x30, 0x61, 0x7d, 0xf0, 0x20, 0x77, 0xa1, 0x41, 0xb0, 0xc1, 0x6b, 0x37, 0x84, 0x0e, 0x4e, 0xd6, 0xdd, 0x83, 0x6c, 0x83, 0xf7, 0x5b, 0x0b, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0x98, 0xd0, 0x33, 0x90, 0x85, 0x09, 0x5d, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x16, 0x26, 0xb4, 0x1c, 0xbc, 0xae, 0x5e, 0x68, 0x10, 0x6c, 0xf0, 0x1c, 0x16, 0xa1, 0x43, 0x07, 0x8d, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x60, 0x71, 0x66, 0xc3, 0x29, 0x36, 0x33, 0xb3, 0xe1, 0x14, 0x9b, 0x0d, 0xa7, 0xd8, 0x0c, 0xf8, 0x64, 0x65, 0x61, 0x64, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x29, 0x14, 0xd2, 0x81, 0xa4, 0x50, 0x38, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x14, 0x0a, 0x83, 0x81, 0xa4, 0x50, 0x18, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0xa1, 0x10, 0x1f, 0x3c, 0x40, 0x60, 0x68, 0x10, 0x6c, 0xf0, 0xa6, 0x70, 0xa1, 0x43, 0x1a, 0x6e, 0x90, 0x6d, 0xf0, 0xce, 0x7e, 0xa1, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa4, 0x50, 0xd8, 0x0d, 0x24, 0x85, 0xc2, 0x76, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x0a, 0x85, 0xd5, 0xc1, 0x1b, 0x12, 0x86, 0x06, 0xc1, 0x06, 0x0f, 0xdb, 0xeb, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xb0, 0x90, 0x31, 0xea, 0xd0, 0x43, 0xe8, 0x38, 0x34, 0xc8, 0x36, 0x78, 0x67, 0xbf, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x52, 0x28, 0xcc, 0x07, 0x92, 0x42, 0xa1, 0x62, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x0a, 0x85, 0xf1, 0xc1, 0x53, 0x23, 0x86, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x92, 0x81, 0xff, 0xfa, 0x8e, 0xc7, 0x87, 0x4e, 0x44, 0x83, 0x6c, 0x83, 0x77, 0xf6, 0x0b, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0xa1, 0xd0, 0x32, 0x90, 0x14, 0x0a, 0x4d, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x52, 0x28, 0x74, 0x1c, 0xbc, 0x32, 0x63, 0x68, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x19, 0x48, 0xf5, 0x1d, 0x8f, 0x0f, 0xdd, 0x8f, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x96, 0x27, 0xa4, 0x03, 0x59, 0x9e, 0x70, 0x64, 0xf8, 0x15, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x3c, 0x61, 0x30, 0x90, 0xe5, 0x09, 0xa3, 0xe1, 0x37, 0x24, 0x97, 0x0e, 0x1e, 0x6e, 0xa6, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x79, 0xc2, 0x6a, 0x20, 0xcb, 0x13, 0x96, 0xc3, 0x6f, 0x48, 0x2e, 0x0d, 0xbf, 0x20, 0x19, 0x68, 0x2e, 0x77, 0x10, 0xe4, 0xfc, 0xc7, 0xb7, 0x43, 0x4f, 0xd4, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x46, 0x28, 0xa4, 0x03, 0x19, 0xa1, 0x70, 0x67, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x08, 0x85, 0x78, 0x20, 0x23, 0x14, 0x26, 0x07, 0xef, 0x47, 0x28, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x08, 0x85, 0xcd, 0x40, 0x46, 0x28, 0xec, 0x06, 0xc9, 0x80, 0xe0, 0xba, 0x3a, 0x1e, 0x1f, 0x87, 0x0e, 0x8d, 0x5a, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x2b, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x9a, 0x27, 0xa4, 0x03, 0x69, 0x9e, 0x70, 0x67, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x19, 0x38, 0x95, 0x0e, 0x2b, 0xb4, 0x87, 0x46, 0x2d, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x31, 0x15, 0x37, 0x90, 0x9c, 0x0a, 0xf1, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x53, 0x71, 0x07, 0xaf, 0x0d, 0x1a, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x53, 0x71, 0x07, 0xaf, 0x0d, 0x1a, 0x1a, 0x76, 0x83, 0xa0, 0xd7, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x4e, 0xc5, 0x1d, 0xbc, 0x36, 0x68, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x39, 0x15, 0x3b, 0x90, 0x9c, 0x0a, 0xc9, 0x21, 0x75, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x9c, 0x0a, 0xd1, 0x40, 0x72, 0x2a, 0x64, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xa9, 0x10, 0x0e, 0x24, 0xa7, 0x42, 0x7a, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x9b, 0x8a, 0x1f, 0xc8, 0x4d, 0x85, 0xf0, 0x30, 0x2e, 0xc7, 0xe3, 0x05, 0xc1, 0xe2, 0x80, 0x7f, 0x27, 0x97, 0x36, 0x6f, 0xd0, 0x08, 0x0b, 0x76, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x97, 0x12, 0x37, 0x90, 0x58, 0x89, 0x1f, 0x76, 0xe1, 0x16, 0x03, 0x5f, 0xec, 0xed, 0xcd, 0x3d, 0x44, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x97, 0x12, 0x92, 0x81, 0x5c, 0x4a, 0xb8, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x4b, 0x09, 0xd1, 0x40, 0x2e, 0x25, 0xe4, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x3c, 0x6e, 0x6b, 0x68, 0x83, 0xc7, 0x6d, 0x0d, 0x1d, 0x4e, 0xb1, 0x41, 0xb6, 0xc1, 0x7b, 0xb9, 0x86, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5c, 0x4a, 0x18, 0x0e, 0xe4, 0x52, 0xc2, 0x72, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xa5, 0x84, 0xc1, 0xc1, 0x1b, 0xcd, 0x86, 0x0e, 0xe3, 0x32, 0xec, 0xc2, 0x2d, 0x06, 0xfe, 0x98, 0xdc, 0x9b, 0x7e, 0x88, 0xe6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x32, 0x25, 0x24, 0x03, 0xc9, 0x94, 0x70, 0x66, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x99, 0x12, 0xa2, 0x81, 0x64, 0x4a, 0xc8, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x78, 0x95, 0xda, 0xd0, 0x06, 0xaf, 0x52, 0x1b, 0x3a, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x87, 0xae, 0x0d, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0x94, 0x30, 0x1a, 0x48, 0xa6, 0x84, 0xba, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x99, 0x12, 0x06, 0x07, 0x8f, 0xab, 0x1b, 0x1a, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x29, 0x61, 0x35, 0x90, 0x4c, 0x09, 0xc3, 0x83, 0x57, 0x35, 0x09, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x4c, 0x09, 0xcb, 0x81, 0x64, 0x4a, 0x58, 0x1f, 0xbc, 0x3f, 0x5d, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x53, 0xc2, 0x7c, 0x20, 0x99, 0x12, 0xda, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x29, 0xa1, 0x61, 0x20, 0x99, 0x12, 0x5a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x64, 0x4a, 0xd8, 0x1f, 0x3c, 0xdf, 0x70, 0x68, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0xc1, 0xb9, 0x8f, 0xf6, 0x90, 0x86, 0x1b, 0x64, 0x1b, 0x3c, 0x52, 0x70, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xa6, 0x84, 0xa2, 0x81, 0x64, 0x4a, 0x28, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x29, 0xa1, 0xe6, 0xe0, 0x81, 0x8e, 0x43, 0x83, 0x60, 0x83, 0x57, 0x29, 0x0e, 0x1d, 0x3a, 0x68, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x8f, 0x43, 0x87, 0x0e, 0x1a, 0xc3, 0x2e, 0xdc, 0x62, 0xe0, 0x8f, 0xc9, 0xd5, 0xe9, 0x87, 0x68, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x53, 0x42, 0x32, 0x90, 0x4d, 0x09, 0x77, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x29, 0x21, 0x1a, 0xc8, 0xa6, 0x84, 0x7c, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x97, 0x51, 0x0e, 0x6d, 0xf0, 0x32, 0xca, 0xa1, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x78, 0x6c, 0xe5, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x4d, 0x09, 0xa3, 0x81, 0x6c, 0x4a, 0xa8, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x29, 0x61, 0x70, 0xf0, 0xc0, 0xcf, 0xa1, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x9b, 0x12, 0x56, 0x03, 0xd9, 0x94, 0x30, 0x3c, 0x78, 0x55, 0x93, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0x94, 0xb0, 0x1c, 0xc8, 0xa6, 0x84, 0xf1, 0x20, 0xd8, 0xe0, 0x61, 0x7b, 0x3d, 0x07, 0x4b, 0xf7, 0xa6, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x29, 0x61, 0x3d, 0x90, 0x4d, 0x09, 0x0d, 0x07, 0x4d, 0xa1, 0x2f, 0x1d, 0x87, 0x0e, 0x1d, 0x34, 0x86, 0xdd, 0xe0, 0xa1, 0x21, 0x41, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0x94, 0x90, 0x0c, 0xa4, 0x53, 0xc2, 0x9b, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x74, 0x4a, 0x88, 0x06, 0xd2, 0x29, 0x21, 0x1f, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0xd1, 0x21, 0x41, 0x1b, 0x3c, 0x3a, 0x24, 0xe8, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0x9e, 0x26, 0x3b, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x53, 0xc2, 0x64, 0x20, 0x9d, 0x12, 0x66, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x3a, 0x25, 0x0c, 0x0e, 0x9e, 0xc3, 0x3b, 0x34, 0x08, 0x36, 0x78, 0xd8, 0x5e, 0xcf, 0xc1, 0xc2, 0xca, 0xa8, 0x61, 0x17, 0x6e, 0xf1, 0xa0, 0x41, 0x17, 0xab, 0x43, 0x34, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x29, 0x21, 0x19, 0xc8, 0xa7, 0x84, 0x2f, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0x94, 0x10, 0x0d, 0xe4, 0x53, 0x42, 0x3e, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0x03, 0x82, 0x87, 0x36, 0x78, 0x40, 0xf0, 0xd0, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0xbc, 0x45, 0x78, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x9f, 0x12, 0x26, 0x03, 0xf9, 0x94, 0x30, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x29, 0x61, 0x70, 0xf0, 0x02, 0xe6, 0xa1, 0x83, 0xa7, 0x30, 0x0c, 0x0d, 0xb2, 0x0d, 0xde, 0x22, 0x3c, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x53, 0xc2, 0x72, 0x20, 0x9f, 0x12, 0xd6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x3e, 0x25, 0xec, 0x0e, 0x9e, 0x27, 0x3d, 0x34, 0x08, 0x16, 0x7e, 0x43, 0x72, 0xe9, 0xe0, 0xc0, 0x60, 0x7b, 0x68, 0x01, 0x36, 0xec, 0xc2, 0x2d, 0x06, 0x3e, 0x5a, 0x1a, 0x1b, 0x7b, 0x88, 0xe6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x42, 0x25, 0x24, 0x03, 0x09, 0x95, 0xf0, 0x64, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xa1, 0x12, 0xa2, 0x81, 0x84, 0x4a, 0xc8, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x78, 0xe5, 0xf5, 0xd0, 0x06, 0xaf, 0xbc, 0x1e, 0x3a, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x87, 0x63, 0x0f, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0x95, 0x30, 0x19, 0x48, 0xa8, 0x84, 0xf5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x50, 0x09, 0x83, 0x83, 0xc7, 0x8a, 0x0f, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0x95, 0xb0, 0x19, 0x48, 0xa8, 0x84, 0xdd, 0xc1, 0x1b, 0x01, 0x4a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x2a, 0x61, 0x38, 0x90, 0x50, 0x09, 0xe3, 0x41, 0xb0, 0xc1, 0xc3, 0xf6, 0x7a, 0x0e, 0xd6, 0x7f, 0x46, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x8f, 0x43, 0x87, 0x0e, 0x1a, 0xc3, 0x6e, 0xb0, 0xc4, 0xd2, 0x6a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xa3, 0x12, 0x92, 0x81, 0x8c, 0x4a, 0x38, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x51, 0x09, 0xd1, 0x40, 0x46, 0x25, 0xe4, 0x07, 0x8b, 0x36, 0xad, 0x06, 0xd9, 0x06, 0xef, 0x8f, 0x1f, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x2a, 0x61, 0x36, 0x90, 0x51, 0x09, 0x3d, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x46, 0x25, 0x0c, 0x0e, 0x5e, 0xa3, 0x3f, 0x34, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x54, 0xc2, 0x6e, 0x20, 0xa3, 0x12, 0xb6, 0x07, 0xef, 0x47, 0x28, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xa8, 0x84, 0xf1, 0x40, 0x46, 0x25, 0xd4, 0x0c, 0xbf, 0x20, 0x19, 0x18, 0xbe, 0xe3, 0xf9, 0x20, 0x19, 0x78, 0xea, 0xeb, 0x78, 0x7c, 0x1c, 0x3a, 0x74, 0xd0, 0x18, 0x76, 0xe1, 0x16, 0x03, 0xbf, 0xad, 0x4c, 0xae, 0x3c, 0x44, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xa5, 0x12, 0x92, 0x81, 0x94, 0x4a, 0x78, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x52, 0x09, 0xd1, 0x40, 0x4a, 0x25, 0xe4, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x3c, 0xfe, 0x80, 0x68, 0x83, 0xc7, 0x1f, 0x10, 0x1d, 0x4e, 0xb1, 0x41, 0xb6, 0xc1, 0x7b, 0x12, 0x88, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x94, 0x4a, 0x98, 0x0c, 0xa4, 0x54, 0x42, 0xe9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x52, 0x09, 0x83, 0x83, 0x37, 0x4c, 0x10, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x29, 0x95, 0xb0, 0x19, 0x48, 0xa9, 0x84, 0xdd, 0x20, 0x19, 0x98, 0xab, 0x83, 0x61, 0xe8, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4a, 0x25, 0x0c, 0x07, 0x52, 0x2a, 0xa1, 0x62, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x54, 0xc2, 0x72, 0x20, 0xa5, 0x12, 0xc6, 0x83, 0x64, 0x60, 0xa5, 0xef, 0x60, 0xbc, 0xeb, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x54, 0xc2, 0x7a, 0x20, 0xa5, 0x12, 0x1a, 0x0e, 0x96, 0xaa, 0xfb, 0x1c, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x54, 0x42, 0xc7, 0x40, 0x4a, 0x25, 0x74, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x94, 0x4a, 0x28, 0x19, 0x48, 0xa9, 0x84, 0xa2, 0x83, 0x97, 0x68, 0x94, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x52, 0x09, 0x4d, 0x03, 0x29, 0x95, 0xd0, 0x36, 0x48, 0x36, 0x58, 0x73, 0x81, 0x74, 0x30, 0xde, 0x75, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x54, 0x42, 0xdd, 0x40, 0x4a, 0x25, 0x54, 0x0e, 0x92, 0x0d, 0x5e, 0x2a, 0xe1, 0x71, 0x30, 0xde, 0x75, 0x8e, 0x43, 0xc7, 0xa1, 0x43, 0x07, 0x8d, 0x61, 0x37, 0x78, 0xfc, 0x50, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4e, 0x25, 0x24, 0x03, 0x39, 0x95, 0xf0, 0x67, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xa7, 0x12, 0xa2, 0x81, 0x9c, 0x4a, 0xc8, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x78, 0x08, 0x51, 0xd0, 0x06, 0x0f, 0x21, 0x0a, 0x3a, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x07, 0xe1, 0x10, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0x95, 0x30, 0x19, 0xc8, 0xa9, 0x84, 0xd9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x53, 0x09, 0x83, 0x83, 0x47, 0x08, 0x11, 0x1d, 0xbc, 0xea, 0x77, 0x68, 0xd8, 0x0d, 0xde, 0x93, 0x1a, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x54, 0x09, 0xc9, 0x40, 0x52, 0x25, 0x3c, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xaa, 0x84, 0x68, 0x20, 0xa9, 0x12, 0xf2, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x9a, 0x42, 0xb5, 0x3f, 0x68, 0x92, 0xd5, 0x7e, 0x90, 0x6d, 0xf0, 0x5c, 0x23, 0xa2, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa4, 0x4a, 0x18, 0x0d, 0x24, 0x55, 0xc2, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xaa, 0x84, 0xc1, 0xc1, 0x5b, 0xa0, 0x88, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x92, 0x81, 0x7c, 0xdf, 0xf1, 0xf8, 0xd0, 0x14, 0x68, 0x90, 0x6d, 0xf0, 0x5c, 0x23, 0xa2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xa9, 0x12, 0xd6, 0x03, 0x49, 0x95, 0xd0, 0x30, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x55, 0xc2, 0xf2, 0xe0, 0x05, 0x58, 0x44, 0x83, 0x60, 0x83, 0x17, 0x4e, 0x11, 0x1d, 0x5a, 0x80, 0x0d, 0xbb, 0xc1, 0x23, 0x4a, 0x82, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x2a, 0x21, 0x19, 0xc8, 0xaa, 0x84, 0x1b, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0x95, 0x10, 0x0d, 0x64, 0x55, 0x42, 0x3e, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0x83, 0x4a, 0x82, 0x36, 0x78, 0x50, 0x49, 0xd0, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0xbc, 0xa9, 0x8b, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xaa, 0x84, 0xc9, 0x40, 0x56, 0x25, 0x94, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0x95, 0x30, 0x38, 0x78, 0xc7, 0x19, 0xd1, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x55, 0x09, 0x9b, 0x81, 0xac, 0x4a, 0xd8, 0x1d, 0xbc, 0x37, 0x83, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xac, 0x4a, 0x18, 0x0e, 0x64, 0x55, 0x42, 0xc3, 0xf0, 0x1b, 0x1c, 0xb5, 0x74, 0x0f, 0x4a, 0x86, 0xa6, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0x95, 0x50, 0x31, 0x90, 0x55, 0x09, 0x5d, 0xc3, 0x6f, 0x70, 0xd4, 0xd2, 0x3d, 0x18, 0x77, 0x50, 0xc7, 0xa1, 0x43, 0x07, 0x8d, 0x61, 0x17, 0x6e, 0x31, 0xf0, 0xef, 0xe4, 0xd2, 0xe8, 0x43, 0x34, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x2a, 0x21, 0x19, 0x48, 0xab, 0x84, 0x17, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0x95, 0x10, 0x0d, 0xa4, 0x55, 0x42, 0x3e, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0xc3, 0xf0, 0x88, 0x36, 0x78, 0x18, 0x1e, 0xd1, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0xbc, 0x35, 0x8f, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xab, 0x84, 0xc9, 0x40, 0x5a, 0x25, 0xcc, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb4, 0x4a, 0x18, 0x1c, 0xbc, 0x6f, 0x90, 0x68, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x41, 0x02, 0xd0, 0xc1, 0xa1, 0x83, 0xc6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x57, 0x09, 0xc9, 0x40, 0x5e, 0x25, 0x3c, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xab, 0x84, 0x68, 0x20, 0xaf, 0x12, 0xf2, 0x61, 0x17, 0x6e, 0x43, 0x34, 0xc7, 0x83, 0x17, 0x5c, 0x0d, 0x6d, 0xf0, 0x04, 0x47, 0xa2, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x78, 0x1e, 0x22, 0xd1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x5e, 0x25, 0x4c, 0x06, 0xf2, 0x2a, 0x61, 0x3d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x55, 0xc2, 0xe0, 0xe0, 0x69, 0x92, 0x44, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0x95, 0xb0, 0x19, 0xc8, 0xab, 0x84, 0xd9, 0xb0, 0x0b, 0xb7, 0xc1, 0xf0, 0xa2, 0x38, 0x28, 0x18, 0x1e, 0x0f, 0x0a, 0xa5, 0xc7, 0x41, 0xb6, 0xc1, 0x43, 0x21, 0x89, 0x06, 0xd9, 0x06, 0x8f, 0x99, 0x24, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x2a, 0x61, 0x39, 0x90, 0x57, 0x09, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xaf, 0x12, 0x76, 0x07, 0xaf, 0xeb, 0x24, 0x1a, 0x04, 0x1b, 0x3c, 0x6c, 0xaf, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc3, 0xd4, 0x2f, 0x0e, 0x06, 0x7f, 0xcc, 0x71, 0x68, 0x90, 0x6d, 0xf0, 0x3c, 0x44, 0xa2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xaf, 0x12, 0x0a, 0x06, 0xf2, 0x2a, 0xa1, 0x76, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xab, 0x84, 0xf9, 0xc1, 0x53, 0x4c, 0x89, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbc, 0x4a, 0x68, 0x18, 0xc8, 0xab, 0x84, 0x92, 0x83, 0x17, 0x85, 0x10, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x55, 0x42, 0xcb, 0x40, 0x5e, 0x25, 0xb4, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbc, 0x4a, 0xa8, 0x19, 0xc8, 0xab, 0x84, 0xaa, 0x83, 0x97, 0x68, 0x94, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x57, 0x09, 0x5d, 0x03, 0x79, 0x95, 0xd0, 0x77, 0xf0, 0x30, 0x0a, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0x95, 0x50, 0x38, 0x90, 0x57, 0x09, 0xa5, 0x07, 0x4b, 0xd5, 0x7d, 0x8e, 0x43, 0xc7, 0xa1, 0x43, 0x0b, 0xb0, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x86, 0x28, 0x6e, 0x20, 0x49, 0x14, 0x3f, 0x08, 0x36, 0x18, 0x59, 0x66, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x8a, 0x28, 0xee, 0xe0, 0xd9, 0xbf, 0x44, 0x83, 0x60, 0x83, 0xe3, 0x7e, 0xc7, 0xe2, 0x20, 0x58, 0xd8, 0x0d, 0x79, 0xac, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x14, 0x51, 0x48, 0x06, 0x52, 0x44, 0xe1, 0xc7, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x8a, 0x28, 0x44, 0x03, 0x29, 0xa2, 0x10, 0x1e, 0x9a, 0x45, 0x0e, 0xb2, 0x0d, 0x5e, 0x58, 0x4c, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x88, 0x42, 0x3e, 0x90, 0x22, 0x0a, 0x93, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x45, 0x14, 0xd2, 0x83, 0x57, 0x36, 0x13, 0x0d, 0x82, 0x0d, 0x1a, 0x7b, 0x17, 0x39, 0x58, 0x8f, 0xae, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x88, 0x42, 0x32, 0x90, 0x23, 0x0a, 0x57, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x44, 0x21, 0x1a, 0xc8, 0x11, 0x85, 0xf0, 0xd0, 0xa7, 0x71, 0x90, 0x6d, 0xf0, 0x18, 0x69, 0xa2, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1c, 0x51, 0xc8, 0x07, 0x72, 0x44, 0x61, 0x37, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x88, 0x42, 0x7a, 0xf0, 0x24, 0x6d, 0xa2, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x47, 0x14, 0x06, 0x03, 0x39, 0xa2, 0x30, 0x3a, 0x68, 0x82, 0x5c, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x47, 0x14, 0x56, 0x03, 0x39, 0xa2, 0x30, 0x3b, 0xa4, 0x0e, 0x8e, 0x43, 0x87, 0xa6, 0x40, 0x83, 0x6c, 0x83, 0xc7, 0x48, 0x13, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0xa2, 0x30, 0x1d, 0xc8, 0x11, 0x85, 0x8a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x47, 0x14, 0x86, 0x07, 0x8f, 0x47, 0x27, 0x1a, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x44, 0x61, 0x3b, 0x90, 0x23, 0x0a, 0xfb, 0x83, 0x26, 0xc8, 0x45, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x44, 0xa1, 0x60, 0x20, 0x47, 0x14, 0x1a, 0x0e, 0xa9, 0x83, 0xe3, 0xd0, 0xa1, 0x05, 0xd8, 0xa1, 0xf9, 0xcb, 0xf1, 0xf8, 0x78, 0xbc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x25, 0x0a, 0xe9, 0x40, 0x96, 0x28, 0x1c, 0x19, 0x04, 0x1b, 0x8c, 0x2c, 0xb3, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x4b, 0x14, 0x76, 0x03, 0x59, 0xa2, 0x50, 0x33, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x44, 0x61, 0x38, 0x90, 0x25, 0x0a, 0xe3, 0x83, 0x26, 0xc8, 0x45, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x44, 0x61, 0x3d, 0x90, 0x25, 0x0a, 0x2d, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x4b, 0x14, 0xe6, 0x03, 0x59, 0xa2, 0x50, 0x31, 0x48, 0x06, 0xda, 0x57, 0x1d, 0x92, 0x4b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0xa2, 0xd0, 0x31, 0x90, 0x25, 0x0a, 0x25, 0x87, 0xd4, 0xc1, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x5e, 0x10, 0x6c, 0x70, 0xdc, 0xef, 0x58, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0x9d, 0xb8, 0x81, 0xfc, 0x4e, 0xfc, 0xb0, 0x1b, 0xf2, 0x58, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0x9d, 0x90, 0x0c, 0x64, 0x77, 0xc2, 0x85, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xec, 0x4e, 0x88, 0x06, 0xb2, 0x3b, 0x21, 0x3c, 0x34, 0x8b, 0x1c, 0x64, 0x1b, 0x3c, 0xf5, 0xa1, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xee, 0x84, 0x7c, 0x20, 0xbb, 0x13, 0x36, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x76, 0x27, 0xa4, 0x07, 0xcf, 0xbd, 0x28, 0x1a, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x74, 0x70, 0xb8, 0xae, 0x3d, 0x74, 0xd0, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x3b, 0x21, 0x19, 0x48, 0xef, 0x84, 0x0b, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0x9d, 0x10, 0x0d, 0xa4, 0x77, 0x42, 0x78, 0xe8, 0xd3, 0x38, 0xc8, 0x36, 0x78, 0x2b, 0x47, 0xd1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x7a, 0x27, 0xe4, 0x03, 0xe9, 0x9d, 0xb0, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x3b, 0x21, 0x3d, 0x78, 0x31, 0x49, 0xd1, 0xc1, 0x53, 0x18, 0x86, 0x06, 0xd9, 0x06, 0x6f, 0xe5, 0x28, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x3b, 0x61, 0x36, 0x90, 0xde, 0x09, 0x0d, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x7a, 0x27, 0x8c, 0x0e, 0x5e, 0xb3, 0x52, 0x34, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x77, 0xc2, 0x6e, 0x20, 0xbd, 0x13, 0xb6, 0x07, 0xef, 0x47, 0x28, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xef, 0x84, 0xf1, 0x40, 0x7a, 0x27, 0x14, 0x0c, 0x92, 0x01, 0xe5, 0x5a, 0xdf, 0xf1, 0xf8, 0x38, 0x74, 0x68, 0x01, 0x76, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x10, 0x6c, 0xf0, 0xe0, 0x0e, 0x8e, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x86, 0x09, 0xe9, 0x40, 0x1a, 0x26, 0x1c, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xc3, 0x84, 0xc1, 0x40, 0x1a, 0x26, 0x8c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x34, 0x4c, 0x88, 0x0f, 0xde, 0xe1, 0x53, 0x74, 0xf0, 0x8c, 0x82, 0xa1, 0x41, 0xb6, 0xc1, 0x73, 0x73, 0x8a, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x30, 0x61, 0x37, 0x90, 0x86, 0x09, 0xdb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x0d, 0x13, 0x56, 0x07, 0xaf, 0x24, 0x2a, 0x1a, 0x04, 0x1b, 0xbc, 0x2e, 0x5d, 0xe8, 0xd0, 0x14, 0x68, 0x90, 0x6d, 0xf0, 0xdc, 0x9c, 0xa2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x0d, 0x13, 0xe6, 0x03, 0x69, 0x98, 0x50, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x61, 0xc2, 0xf8, 0xe0, 0xa5, 0x4b, 0x45, 0x83, 0x60, 0x83, 0xd7, 0x6e, 0x08, 0x1d, 0x5a, 0x80, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x60, 0x71, 0x03, 0x09, 0xb1, 0xf8, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x34, 0x58, 0x48, 0x0e, 0x5e, 0x36, 0x55, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xc1, 0xe2, 0x0e, 0x5e, 0x36, 0x55, 0x34, 0x08, 0x36, 0x58, 0xcd, 0x71, 0xb4, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x08, 0x0b, 0xf9, 0x40, 0x22, 0x2c, 0x34, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x44, 0x58, 0x98, 0x0c, 0x24, 0xc2, 0xc2, 0x74, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x84, 0x85, 0xd9, 0xc1, 0x5b, 0xbe, 0x8a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x44, 0x58, 0xd8, 0x1d, 0xbc, 0xe5, 0xab, 0xe8, 0x90, 0x3a, 0x58, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x61, 0x61, 0x3b, 0x90, 0x08, 0x0b, 0x05, 0x07, 0xab, 0x39, 0x8e, 0x8e, 0xc7, 0x2b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xc3, 0xe2, 0x07, 0xb2, 0x61, 0x61, 0x33, 0x08, 0x16, 0x37, 0x78, 0x04, 0x98, 0xc7, 0xc1, 0x23, 0xc0, 0x3c, 0x16, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x6c, 0x58, 0xfc, 0xc1, 0x53, 0xd5, 0x8a, 0x0e, 0x31, 0x3c, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0xb0, 0x90, 0x0f, 0x64, 0xc2, 0xc2, 0xe8, 0x10, 0xc3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x74, 0x58, 0xc8, 0x07, 0xd2, 0x61, 0xa1, 0x60, 0x10, 0x6c, 0xb0, 0x9a, 0xe3, 0x68, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x87, 0x85, 0xf1, 0x40, 0x3a, 0x2c, 0xec, 0x0f, 0x7b, 0x85, 0xc7, 0xe3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x7c, 0x58, 0xc8, 0x07, 0xf2, 0x61, 0x61, 0x3b, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x87, 0x85, 0xdd, 0x40, 0x3e, 0x2c, 0x4c, 0x0f, 0x7b, 0x85, 0xc7, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x15, 0x16, 0xf2, 0x81, 0x54, 0x58, 0xa8, 0x1d, 0x04, 0x1b, 0xb4, 0xbf, 0xce, 0xb4, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xc2, 0x42, 0xc5, 0x40, 0x2a, 0x2c, 0xb4, 0x1e, 0x62, 0x78, 0x3c, 0x3e, 0x1e, 0x1f, 0x9a, 0xbf, 0x1c, 0x8f, 0x07, 0xc1, 0xe2, 0x00, 0xcf, 0x1d, 0x5a, 0x1a, 0x5d, 0x79, 0x38, 0xc5, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x0e, 0x28, 0x6e, 0x20, 0x0b, 0x14, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x03, 0x0a, 0xe9, 0x40, 0x0e, 0x28, 0xac, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1c, 0x50, 0x48, 0x0e, 0xde, 0xd5, 0x58, 0x34, 0xec, 0xc2, 0x2d, 0x06, 0x3c, 0x62, 0x6c, 0x61, 0x63, 0xeb, 0x21, 0x9a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0xa0, 0x90, 0x0f, 0xe4, 0x80, 0xc2, 0x6a, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x57, 0x43, 0x16, 0x6d, 0xf0, 0x6a, 0xc8, 0xa2, 0xc3, 0x29, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x80, 0xc2, 0x6c, 0x20, 0x07, 0x14, 0xc6, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x8e, 0x07, 0x2f, 0x3b, 0x2c, 0xda, 0xe0, 0xed, 0x99, 0x45, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0xf0, 0x90, 0xc4, 0xa2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x09, 0x14, 0xd2, 0x81, 0x24, 0x50, 0x68, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x40, 0x21, 0x39, 0x78, 0x90, 0x67, 0xd1, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x04, 0x0a, 0xf1, 0x40, 0x12, 0x28, 0x4c, 0x0e, 0x5e, 0xa2, 0x51, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x12, 0x28, 0x6c, 0x06, 0x92, 0x40, 0x61, 0x3d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x40, 0x61, 0x34, 0x90, 0x04, 0x0a, 0xbb, 0x83, 0x17, 0x85, 0x10, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x81, 0xc2, 0x70, 0x20, 0x09, 0x14, 0xc6, 0x07, 0xaf, 0x0e, 0x17, 0x3a, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x02, 0x85, 0xf9, 0x40, 0x12, 0x28, 0x94, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x24, 0x50, 0xd8, 0x0f, 0x24, 0x81, 0x42, 0xc5, 0xc1, 0xab, 0x9a, 0x84, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x02, 0x85, 0x8e, 0x81, 0x24, 0x50, 0xa8, 0x39, 0x78, 0xd7, 0xea, 0xd0, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x12, 0x28, 0xf4, 0x0c, 0x24, 0x81, 0x42, 0xd7, 0x41, 0x53, 0xe8, 0x4b, 0xc7, 0xa1, 0xe3, 0xd0, 0xa1, 0x83, 0xc6, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x41, 0xb0, 0xc1, 0xc8, 0x7f, 0x58, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0x9b, 0xb8, 0x81, 0xe4, 0x4d, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xe6, 0x26, 0xa4, 0x03, 0x99, 0x9b, 0x30, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x37, 0x21, 0x19, 0xc8, 0xdc, 0x84, 0x0f, 0x83, 0x60, 0x83, 0x87, 0xed, 0xf5, 0x1c, 0xac, 0x02, 0xc8, 0x1a, 0x64, 0x1b, 0x3c, 0x71, 0xb8, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x75, 0x13, 0xd2, 0x81, 0xd4, 0x4d, 0xd8, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0x9b, 0x90, 0x0c, 0xa4, 0x6e, 0xc2, 0x95, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x75, 0x13, 0xe2, 0x81, 0xd4, 0x4d, 0x58, 0x1c, 0xbc, 0xaa, 0x49, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd4, 0x4d, 0x98, 0x0c, 0xa4, 0x6e, 0xc2, 0xea, 0xe0, 0x69, 0xfa, 0x3d, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0x9b, 0x30, 0x1b, 0x48, 0xdd, 0x84, 0xe9, 0x20, 0x19, 0xd8, 0xbb, 0x3a, 0x1e, 0x1f, 0x87, 0x0e, 0x4d, 0x81, 0x06, 0xd9, 0x06, 0x4f, 0x1c, 0x2e, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x37, 0x21, 0x1d, 0xc8, 0xdd, 0x84, 0xed, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xbb, 0x09, 0xc9, 0x40, 0xee, 0x26, 0x7c, 0x18, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x37, 0x21, 0x1e, 0xc8, 0xdd, 0x84, 0xc5, 0xc1, 0xab, 0x9a, 0x84, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xdd, 0x84, 0xc9, 0x40, 0xee, 0x26, 0xcc, 0x0e, 0x1e, 0xe8, 0x3e, 0x74, 0x68, 0xfe, 0x72, 0x3c, 0x1e, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xbb, 0x09, 0xbb, 0x81, 0xdc, 0x4d, 0x98, 0x1e, 0x3c, 0x4d, 0xbf, 0xe7, 0xd0, 0xfc, 0xe5, 0x78, 0x7c, 0x1c, 0x3a, 0xb4, 0x00, 0x3b, 0x34, 0x7f, 0x39, 0x1e, 0xaf, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0xa0, 0x90, 0x0e, 0x24, 0x82, 0xc2, 0x97, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x44, 0x50, 0x18, 0x0c, 0x24, 0x82, 0xc2, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x04, 0x85, 0xf8, 0xe0, 0x0d, 0xfc, 0x45, 0x83, 0x60, 0x83, 0xd7, 0xa5, 0x0b, 0x1d, 0xd2, 0x70, 0x83, 0x6c, 0x83, 0xa7, 0xde, 0x17, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0xa0, 0xb0, 0x1b, 0x48, 0x04, 0x85, 0x8a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x11, 0x14, 0x56, 0x07, 0x8f, 0x18, 0x30, 0x1a, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x41, 0x61, 0x38, 0x90, 0x08, 0x0a, 0xe3, 0x83, 0xf7, 0x23, 0x94, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x82, 0xc2, 0x7a, 0x20, 0x11, 0x14, 0x1a, 0x06, 0xc9, 0xc0, 0x7a, 0xdd, 0xf1, 0xf8, 0x38, 0x74, 0xe8, 0xa0, 0x71, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x41, 0xb0, 0x38, 0xe0, 0xd3, 0xd5, 0x89, 0x95, 0x2d, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb4, 0x50, 0xdc, 0x40, 0x6e, 0x28, 0x7e, 0xd8, 0x85, 0x5b, 0x3c, 0x78, 0x5d, 0x58, 0xc8, 0x21, 0x9a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0xa1, 0x90, 0x0c, 0xa4, 0x85, 0xc2, 0x6c, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x2d, 0x14, 0xa2, 0x81, 0xb4, 0x50, 0xc8, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x78, 0x16, 0x85, 0xd1, 0x06, 0xcf, 0xa2, 0x30, 0x3a, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x27, 0x56, 0x18, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0xa1, 0xb0, 0x18, 0x48, 0x0b, 0x85, 0xd5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x16, 0x0a, 0x83, 0x83, 0x47, 0x7d, 0x18, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x3a, 0x38, 0xb5, 0x36, 0x1f, 0x3a, 0x68, 0x0c, 0xbb, 0x70, 0x8b, 0x07, 0x2b, 0x35, 0x9c, 0x0f, 0xd1, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x0b, 0x85, 0x64, 0x20, 0x2f, 0x14, 0x66, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0xa1, 0x10, 0x0d, 0xe4, 0x85, 0x42, 0x3e, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0xdb, 0x48, 0x8c, 0x36, 0x78, 0x1b, 0x89, 0xd1, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0xbc, 0xb2, 0xc4, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x0b, 0x85, 0xc5, 0x40, 0x5e, 0x28, 0xac, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbc, 0x50, 0x18, 0x1c, 0xbc, 0xeb, 0xc5, 0x68, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0xc1, 0xbb, 0x53, 0x86, 0x0e, 0x1d, 0x34, 0x86, 0x5d, 0xb8, 0xc5, 0x83, 0xf7, 0x52, 0x85, 0x1c, 0xa2, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x18, 0x0a, 0xc9, 0x40, 0x62, 0x28, 0x74, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x86, 0x42, 0x34, 0x90, 0x18, 0x0a, 0xf9, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x4f, 0xa4, 0x31, 0xda, 0xe0, 0x89, 0x34, 0x46, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0xf0, 0xdc, 0x1a, 0xa3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x31, 0x14, 0x46, 0x03, 0x89, 0xa1, 0x50, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x86, 0xc2, 0xe0, 0xe0, 0x85, 0x3f, 0x46, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x62, 0x28, 0xac, 0x06, 0x12, 0x43, 0x61, 0x78, 0xf0, 0xaa, 0x26, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x43, 0x61, 0x39, 0x90, 0x18, 0x0a, 0xe3, 0x83, 0x77, 0xad, 0x0e, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x86, 0xc2, 0x7a, 0x20, 0x31, 0x14, 0x1a, 0x0e, 0xde, 0x9d, 0x32, 0x74, 0x1c, 0x3a, 0x74, 0xd0, 0x18, 0x76, 0xe1, 0x16, 0x03, 0x9f, 0x2c, 0x2c, 0x6d, 0x3e, 0x44, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x33, 0x14, 0x92, 0x81, 0xcc, 0x50, 0x98, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x86, 0x42, 0x34, 0x90, 0x19, 0x0a, 0xf9, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x8f, 0x88, 0x32, 0xda, 0xe0, 0x11, 0x51, 0x46, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0xf0, 0x2e, 0x29, 0xa3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x33, 0x14, 0x16, 0x03, 0x99, 0xa1, 0xb0, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x43, 0x61, 0x70, 0xf0, 0x12, 0x2e, 0xa3, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x64, 0x40, 0xf1, 0x5f, 0x75, 0x3c, 0x3e, 0x74, 0xd0, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x43, 0x21, 0x19, 0x48, 0x0d, 0x85, 0xd9, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x6a, 0x28, 0x44, 0x03, 0xa9, 0xa1, 0x90, 0x0f, 0xbb, 0x70, 0x1b, 0xa2, 0x39, 0x1e, 0xbc, 0x0f, 0xc2, 0x68, 0x83, 0x57, 0x9c, 0x19, 0x1d, 0x4e, 0xb1, 0x41, 0xb6, 0xc1, 0x1b, 0xc3, 0x8c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd4, 0x50, 0x58, 0x0c, 0xa4, 0x86, 0xc2, 0x6a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x0d, 0x85, 0xc1, 0xc1, 0xdb, 0xd6, 0x8c, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x92, 0x81, 0xbb, 0xeb, 0x78, 0x7c, 0xe8, 0xa0, 0x71, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x10, 0x2c, 0x6e, 0xf0, 0xb2, 0xc3, 0xa2, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4a, 0x28, 0xa4, 0x03, 0x29, 0xa1, 0x70, 0x66, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x25, 0x14, 0x26, 0x03, 0x29, 0xa1, 0x50, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x84, 0x42, 0x7c, 0xf0, 0x82, 0x3b, 0xa3, 0x61, 0x37, 0x78, 0x29, 0x64, 0xd1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4a, 0x28, 0x8c, 0x06, 0x52, 0x42, 0x61, 0x7a, 0xf0, 0x4c, 0xca, 0xa2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x25, 0x14, 0xb6, 0x03, 0x29, 0xa1, 0xd0, 0x70, 0xf0, 0xa2, 0xcc, 0xa2, 0x41, 0xb6, 0xc1, 0x43, 0xe5, 0x8c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x94, 0x50, 0xe8, 0x19, 0x48, 0x09, 0x85, 0xc6, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x25, 0x14, 0x3a, 0x0e, 0x1e, 0x3f, 0x68, 0x34, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x84, 0x42, 0xd1, 0x40, 0x4a, 0x28, 0x74, 0x1d, 0xbc, 0x28, 0x84, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x25, 0x14, 0xca, 0x06, 0x52, 0x42, 0xa1, 0xf0, 0xe0, 0xe8, 0x55, 0x7b, 0x1c, 0x3a, 0x74, 0xd0, 0x38, 0x34, 0x7f, 0x39, 0x1e, 0x2f, 0x08, 0x16, 0x07, 0xfc, 0xb9, 0xb2, 0xb2, 0xf5, 0xe0, 0x41, 0xe9, 0x1b, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x2d, 0x13, 0x37, 0x90, 0x9c, 0x89, 0x1f, 0x76, 0xe1, 0x16, 0x03, 0x9f, 0xed, 0x4d, 0xac, 0x3c, 0x44, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x2d, 0x13, 0x92, 0x81, 0xb4, 0x4c, 0xb8, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x96, 0x09, 0xd1, 0x40, 0x5a, 0x26, 0xe4, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x3c, 0xae, 0xd2, 0x68, 0x83, 0xc7, 0x55, 0x1a, 0x1d, 0x4e, 0xb1, 0x41, 0xb6, 0xc1, 0x7b, 0x2d, 0x8d, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb4, 0x4c, 0x58, 0x0c, 0xa4, 0x65, 0xc2, 0x6a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xcb, 0x84, 0xc1, 0xc1, 0x1b, 0x41, 0x8d, 0x06, 0xc1, 0x06, 0x6f, 0x39, 0xdb, 0x38, 0x74, 0xd0, 0x18, 0x76, 0xe1, 0x16, 0x0f, 0x0a, 0x0d, 0x81, 0x43, 0x34, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x32, 0x21, 0x19, 0xc8, 0xcb, 0x84, 0x37, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0x99, 0x10, 0x0d, 0xe4, 0x65, 0x42, 0x3c, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0x63, 0x4a, 0x8d, 0x36, 0x78, 0x4c, 0xa9, 0xd1, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0xbc, 0xc9, 0xd4, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xcb, 0x84, 0x7c, 0x20, 0x2f, 0x13, 0x06, 0x07, 0x43, 0xf3, 0x77, 0xd8, 0x85, 0x5b, 0x3c, 0x58, 0x9a, 0x73, 0x7b, 0x88, 0xe6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x62, 0x26, 0x24, 0x03, 0x89, 0x99, 0x70, 0x66, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x31, 0x13, 0xa2, 0x81, 0xc4, 0x4c, 0xc8, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x78, 0x5e, 0xac, 0xd1, 0x06, 0xcf, 0x8b, 0x35, 0x3a, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x87, 0xca, 0x1a, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0x99, 0x30, 0x18, 0x48, 0xcc, 0x84, 0xc5, 0xc1, 0xd0, 0xfc, 0x1d, 0x76, 0xe1, 0x16, 0x0f, 0x1a, 0x8b, 0xc1, 0x3c, 0x44, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x33, 0x13, 0x92, 0x81, 0xcc, 0x4c, 0x78, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x99, 0x09, 0xd1, 0x40, 0x66, 0x26, 0xe4, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x3c, 0xba, 0xd7, 0x68, 0x83, 0x47, 0xf7, 0x1a, 0x1d, 0x4e, 0xb1, 0x41, 0xb6, 0xc1, 0xfb, 0x7d, 0x8d, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x33, 0x61, 0x31, 0x90, 0x99, 0x09, 0xab, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x33, 0x13, 0x06, 0x07, 0xaf, 0x46, 0x36, 0x1a, 0x04, 0x1b, 0xbc, 0x29, 0x5c, 0xe8, 0xd0, 0x14, 0x68, 0x90, 0x6d, 0xf0, 0x7e, 0x5f, 0xa3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xcc, 0x4c, 0xd8, 0x0d, 0x64, 0x66, 0xc2, 0x76, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xcc, 0x84, 0xd9, 0xc1, 0xdb, 0x9f, 0x8d, 0x06, 0xc1, 0x06, 0xaf, 0x4b, 0x17, 0x3a, 0x74, 0x22, 0x1a, 0x64, 0x1b, 0xbc, 0xdf, 0xd7, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xcc, 0x84, 0xf5, 0x40, 0x66, 0x26, 0x34, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0x99, 0x30, 0x3e, 0x78, 0xbf, 0xb5, 0xd1, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0x32, 0x20, 0xdc, 0xfa, 0x8e, 0xc7, 0x87, 0xee, 0x47, 0xc3, 0x2e, 0xdc, 0x62, 0xe0, 0xdf, 0xbd, 0xc9, 0xb9, 0x87, 0x68, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x66, 0x42, 0x32, 0x90, 0x9a, 0x09, 0x67, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x33, 0x21, 0x1a, 0x48, 0xcd, 0x84, 0x7c, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x17, 0x72, 0x1b, 0x6d, 0xf0, 0x42, 0x6e, 0xa3, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x78, 0x74, 0xb7, 0xd1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x6a, 0x26, 0x2c, 0x06, 0x52, 0x33, 0x61, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x66, 0xc2, 0xe0, 0xe0, 0xa9, 0xe7, 0x46, 0x07, 0x8f, 0x5f, 0x36, 0x1a, 0x64, 0x1b, 0x3c, 0xba, 0xdb, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x35, 0x13, 0x76, 0x03, 0xa9, 0x99, 0xb0, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x33, 0x61, 0x76, 0xf0, 0x12, 0x77, 0xa3, 0x83, 0x27, 0x4c, 0x1b, 0x0d, 0xb2, 0x0d, 0x1e, 0xdd, 0x6d, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x9a, 0x09, 0xeb, 0x81, 0xd4, 0x4c, 0x68, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x33, 0x61, 0x7c, 0xf0, 0x50, 0x7a, 0xa3, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x07, 0xef, 0xf7, 0x2e, 0x3a, 0x58, 0xc2, 0xff, 0x33, 0xc8, 0x36, 0x78, 0x74, 0xb7, 0xd1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x9a, 0x09, 0x1d, 0x03, 0xa9, 0x99, 0xd0, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x66, 0x42, 0xc5, 0xc1, 0xcb, 0xf8, 0x8d, 0x06, 0xc1, 0x06, 0xcf, 0xd2, 0x36, 0x3a, 0x28, 0x82, 0x07, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xdc, 0x4c, 0x48, 0x06, 0x72, 0x33, 0xe1, 0xcf, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x6e, 0x26, 0x44, 0x03, 0xb9, 0x99, 0x90, 0x0f, 0xbb, 0x70, 0x1b, 0xa2, 0x39, 0x1e, 0x3c, 0x22, 0xd2, 0x68, 0x83, 0x57, 0x1a, 0x1c, 0x1d, 0x4e, 0xb1, 0x41, 0xb6, 0xc1, 0x0b, 0x02, 0x8e, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x33, 0x61, 0x31, 0x90, 0x9b, 0x09, 0xab, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x37, 0x13, 0x06, 0x07, 0xaf, 0x57, 0x38, 0x3a, 0x78, 0xfc, 0xb2, 0xd1, 0x20, 0xdb, 0xe0, 0x05, 0x01, 0x47, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0x99, 0xb0, 0x1b, 0xc8, 0xcd, 0x84, 0xed, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x9b, 0x09, 0xb3, 0x83, 0xc7, 0x45, 0x1c, 0x1d, 0x3c, 0x61, 0xda, 0x68, 0x90, 0x6d, 0xf0, 0x82, 0x80, 0xa3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x37, 0x13, 0xd6, 0x03, 0xb9, 0x99, 0xd0, 0x30, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x66, 0xc2, 0xf8, 0xe0, 0xe5, 0x17, 0x47, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x0e, 0x96, 0x6c, 0xcb, 0x1c, 0xba, 0x1f, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x04, 0x8b, 0x1b, 0xbc, 0xd4, 0x45, 0xe8, 0xe0, 0x11, 0x60, 0x1e, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xf1, 0x13, 0x37, 0x90, 0xfb, 0x89, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xfc, 0x84, 0x6c, 0x20, 0xf1, 0x13, 0x1a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc4, 0x4f, 0x48, 0x06, 0x12, 0x3f, 0xe1, 0xcf, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xe2, 0x27, 0xc4, 0x03, 0x89, 0x9f, 0x30, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x3f, 0x21, 0x3c, 0x78, 0x31, 0xca, 0xd1, 0x20, 0xd8, 0xe0, 0xd9, 0x13, 0x42, 0x07, 0xc9, 0x86, 0x06, 0x83, 0x6c, 0x83, 0x57, 0x87, 0x1c, 0x0d, 0xb2, 0x0d, 0x5e, 0x46, 0x72, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xf8, 0x09, 0xab, 0x81, 0xc4, 0x4f, 0x58, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0x9f, 0xb0, 0x39, 0x78, 0x30, 0xcc, 0xd1, 0x20, 0xd8, 0xe0, 0xb5, 0x1b, 0x42, 0x07, 0xc9, 0xe5, 0x03, 0x83, 0x6c, 0x83, 0x57, 0x87, 0x1c, 0x0d, 0xb2, 0x0d, 0x5e, 0x46, 0x72, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x7e, 0xc2, 0x78, 0x20, 0xf1, 0x13, 0x0a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc4, 0x4f, 0x98, 0x1e, 0x3c, 0x17, 0xe7, 0x68, 0x10, 0x6c, 0xf0, 0xba, 0x74, 0xa1, 0x83, 0x93, 0x75, 0xf7, 0x20, 0xdb, 0xe0, 0x5d, 0x1f, 0x47, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0x9f, 0x90, 0x0d, 0x64, 0x7e, 0x42, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x7e, 0x42, 0x32, 0x90, 0xf9, 0x09, 0x0f, 0x06, 0xc1, 0x06, 0xcf, 0x61, 0x11, 0x3a, 0x34, 0x05, 0x1a, 0x64, 0x1b, 0xbc, 0xeb, 0xe3, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xfd, 0x84, 0x6c, 0x20, 0xf5, 0x13, 0xf2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xf5, 0x13, 0x92, 0x81, 0xd4, 0x4f, 0x78, 0x30, 0x08, 0x36, 0x78, 0xaa, 0x88, 0xd1, 0xa1, 0x05, 0xd8, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x41, 0xb0, 0x38, 0x33, 0x07, 0x69, 0x00, 0x19, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x61, 0x14, 0x37, 0x90, 0x34, 0x8a, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x18, 0x85, 0x6c, 0x20, 0x61, 0x14, 0x66, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc2, 0x28, 0x24, 0x03, 0x09, 0xa3, 0x70, 0x62, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x18, 0x85, 0x70, 0x20, 0x61, 0x14, 0x06, 0x07, 0x6f, 0x04, 0x28, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x18, 0x85, 0xc5, 0x40, 0xc2, 0x28, 0xac, 0x0e, 0xde, 0xef, 0x5d, 0x74, 0x1c, 0x3a, 0xa4, 0xe1, 0x06, 0xd9, 0x06, 0xef, 0x6b, 0x3a, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x18, 0x85, 0x6c, 0x20, 0x63, 0x14, 0xa6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc6, 0x28, 0x24, 0x03, 0x19, 0xa3, 0x70, 0x63, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x18, 0x85, 0x70, 0x20, 0x63, 0x14, 0xf2, 0x83, 0x57, 0x35, 0x09, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x31, 0x0a, 0x83, 0x81, 0x8c, 0x51, 0x18, 0x1d, 0x2c, 0x55, 0xf7, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x31, 0x0a, 0xab, 0x81, 0x8c, 0x51, 0x58, 0x1e, 0xa4, 0x7c, 0x5c, 0x1c, 0x87, 0x0e, 0x4d, 0x81, 0x06, 0xd9, 0x06, 0xef, 0x6b, 0x3a, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x19, 0x85, 0x6c, 0x20, 0x65, 0x14, 0xf2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x65, 0x14, 0x92, 0x81, 0x94, 0x51, 0xf8, 0x32, 0x08, 0x36, 0x78, 0xff, 0xbd, 0xd1, 0xa1, 0x13, 0xd1, 0x20, 0xdb, 0xe0, 0x7d, 0x4d, 0x47, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xce, 0x28, 0x64, 0x03, 0x39, 0xa3, 0x10, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0xa3, 0x90, 0x0c, 0xe4, 0x8c, 0xc2, 0x83, 0x41, 0xb0, 0xc1, 0xc3, 0xf6, 0x7a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x3c, 0x4c, 0xfd, 0xe2, 0xd0, 0x2c, 0xe9, 0x38, 0x74, 0x68, 0xfe, 0x72, 0x3c, 0x1e, 0x04, 0x1b, 0x8c, 0xfc, 0x87, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x2a, 0x0a, 0xe9, 0x40, 0xaa, 0x28, 0x7c, 0x18, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x45, 0x21, 0x1e, 0x48, 0x15, 0x85, 0xc9, 0xc1, 0x7b, 0x33, 0x88, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x15, 0x85, 0xcd, 0x40, 0xaa, 0x28, 0xec, 0x06, 0xc9, 0x80, 0xc3, 0x5e, 0xdf, 0xf1, 0x78, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xaa, 0x28, 0x0c, 0x07, 0x52, 0x45, 0x61, 0x3c, 0x48, 0x06, 0x0c, 0xaf, 0xab, 0xe3, 0xf1, 0x71, 0xe8, 0xd0, 0xa8, 0xe5, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x20, 0xd8, 0xe0, 0xcc, 0x3b, 0xbb, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x31, 0x71, 0x03, 0xf9, 0x98, 0xf8, 0x61, 0x37, 0x78, 0x5c, 0x80, 0xce, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x32, 0x26, 0x24, 0x03, 0xc9, 0x98, 0x90, 0x0d, 0xbb, 0x70, 0x1b, 0x52, 0x07, 0x07, 0xe7, 0xc8, 0xdd, 0x83, 0xe7, 0xf3, 0xf2, 0x0c, 0xbb, 0xc1, 0xa3, 0x06, 0x74, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x31, 0x21, 0x1d, 0x48, 0xc6, 0x84, 0x7c, 0xd8, 0x85, 0xdb, 0x90, 0x3a, 0x38, 0x48, 0x5b, 0xa0, 0x3e, 0x78, 0xdb, 0x32, 0xcf, 0xb0, 0x1b, 0xbc, 0xa6, 0x40, 0x67, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x19, 0x13, 0x16, 0x03, 0xc9, 0x98, 0xb0, 0x19, 0x76, 0xe1, 0x36, 0xa4, 0x0e, 0x0e, 0x96, 0xda, 0x14, 0x1c, 0xbc, 0x1f, 0x9b, 0x67, 0xd8, 0x0d, 0xde, 0x71, 0xa0, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x8c, 0x09, 0xab, 0x81, 0x64, 0x4c, 0xd8, 0x0d, 0xbb, 0x70, 0x1b, 0x52, 0x07, 0x07, 0x03, 0xdf, 0xf8, 0x60, 0xa4, 0x1d, 0x0f, 0xbb, 0xc1, 0xeb, 0x11, 0x74, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x31, 0x61, 0x39, 0x90, 0x8c, 0x09, 0xdb, 0x61, 0x17, 0x6e, 0x43, 0xea, 0xe0, 0x60, 0xfd, 0xe3, 0xcb, 0xc1, 0x6b, 0xe7, 0x79, 0x86, 0x5d, 0xb8, 0x0d, 0xc6, 0xed, 0xee, 0x21, 0x75, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x8c, 0x09, 0xeb, 0x81, 0x64, 0x4c, 0xd8, 0x0f, 0xbb, 0x70, 0x1b, 0x52, 0x07, 0x07, 0xe3, 0x76, 0xf7, 0x60, 0xa0, 0xf0, 0x0e, 0xbb, 0x70, 0x1b, 0x94, 0x22, 0x92, 0x87, 0xd4, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x36, 0x26, 0x24, 0x03, 0xd9, 0x98, 0x90, 0x0d, 0xbb, 0x70, 0x1b, 0x52, 0x07, 0x07, 0xa5, 0x88, 0xe4, 0x41, 0xb9, 0x25, 0x39, 0xec, 0xc2, 0x6d, 0x50, 0x44, 0x4a, 0x1e, 0x52, 0x07, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0x98, 0x90, 0x0e, 0x64, 0x63, 0x42, 0x3e, 0xec, 0xc2, 0x6d, 0x48, 0x1d, 0x1c, 0x14, 0x91, 0x92, 0x07, 0x85, 0xb2, 0xe4, 0xb0, 0x0b, 0xb7, 0xc1, 0x9a, 0xb4, 0x84, 0x43, 0xea, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x1b, 0x13, 0x16, 0x03, 0xd9, 0x98, 0xb0, 0x19, 0x76, 0xe1, 0x36, 0xa4, 0x0e, 0x0e, 0xd6, 0xa4, 0x25, 0x6c, 0xb0, 0x26, 0x2d, 0xe1, 0x70, 0x8a, 0x0d, 0xbb, 0x70, 0x1b, 0xac, 0xd1, 0x56, 0x38, 0xa4, 0x0e, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x31, 0x61, 0x35, 0x90, 0x8d, 0x09, 0xbb, 0x61, 0x17, 0x6e, 0x43, 0xea, 0xe0, 0x60, 0x8d, 0xb6, 0xc2, 0xc1, 0x3b, 0x73, 0x7e, 0x86, 0x5d, 0xb8, 0x0d, 0x4a, 0xa0, 0xc8, 0x43, 0xea, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x1b, 0x13, 0x96, 0x03, 0xd9, 0x98, 0xb0, 0x1d, 0x76, 0xe1, 0x36, 0xa4, 0x0e, 0x0e, 0x4a, 0xa0, 0xc8, 0x83, 0x32, 0x2f, 0x72, 0xd8, 0x85, 0xdb, 0xe0, 0xa4, 0xb7, 0x7b, 0x48, 0x1d, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x63, 0xc2, 0x7a, 0x20, 0x1b, 0x13, 0xf6, 0xc3, 0x2e, 0xdc, 0x86, 0xd4, 0xc1, 0xc1, 0x49, 0x6f, 0x77, 0x83, 0x93, 0xde, 0xee, 0xe1, 0x14, 0x1b, 0x76, 0xe1, 0x36, 0x48, 0xf0, 0x78, 0x3e, 0xa4, 0x0e, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x31, 0x21, 0x19, 0x48, 0xc7, 0x84, 0x6c, 0xd8, 0x85, 0xdb, 0x90, 0x3a, 0x38, 0x48, 0xf0, 0x78, 0xde, 0x20, 0xc1, 0xe3, 0xf9, 0x70, 0x8a, 0x0d, 0xbb, 0x70, 0x1b, 0xac, 0x11, 0xea, 0x38, 0xa4, 0x0e, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x31, 0x21, 0x1d, 0x48, 0xc7, 0x84, 0x7c, 0xd8, 0x85, 0xdb, 0x90, 0x3a, 0x38, 0x58, 0x23, 0xd4, 0xb1, 0xc1, 0x1a, 0xa1, 0x8e, 0xc3, 0x29, 0x36, 0xec, 0xc2, 0x6d, 0x90, 0x20, 0x09, 0x7d, 0x48, 0x1d, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x63, 0xc2, 0x62, 0x20, 0x1d, 0x13, 0x36, 0xc3, 0x2e, 0xdc, 0x86, 0xd4, 0xc1, 0x41, 0x82, 0x24, 0xf4, 0x06, 0x09, 0x92, 0xd0, 0x87, 0x53, 0x6c, 0xd8, 0x85, 0xdb, 0x60, 0x2d, 0x6a, 0xc3, 0x21, 0x75, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x8e, 0x09, 0xab, 0x81, 0x74, 0x4c, 0xd8, 0x0d, 0xbb, 0x70, 0x1b, 0x52, 0x07, 0x07, 0x6b, 0x51, 0x1b, 0x36, 0x58, 0x8b, 0xda, 0x70, 0x38, 0xc5, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x74, 0x4c, 0x58, 0x0e, 0xa4, 0x63, 0xc2, 0x76, 0xd8, 0x85, 0xdb, 0x90, 0x3a, 0x38, 0x38, 0xf3, 0xce, 0x6e, 0x70, 0xe6, 0x9d, 0x3d, 0x9c, 0x62, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x3d, 0x14, 0xd2, 0x81, 0xf4, 0x50, 0x78, 0x31, 0x08, 0x36, 0x78, 0xd8, 0x5e, 0xcf, 0xc1, 0x7b, 0x19, 0x38, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x29, 0x0a, 0xe9, 0x40, 0xa6, 0x28, 0xfc, 0x19, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x45, 0x21, 0x1e, 0xc8, 0x14, 0x85, 0xc9, 0xc1, 0x7b, 0x33, 0x88, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x14, 0x85, 0xcd, 0x40, 0xa6, 0x28, 0xec, 0x0e, 0x5e, 0x1d, 0x2e, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x53, 0x14, 0x86, 0x03, 0x99, 0xa2, 0xb0, 0x3d, 0x78, 0xd7, 0xea, 0xd0, 0xa1, 0xf9, 0xcb, 0xf1, 0xf8, 0x38, 0x74, 0x68, 0xd4, 0x72, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x0e, 0x85, 0x74, 0x20, 0x39, 0x14, 0x2e, 0x0c, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xa1, 0x10, 0x0f, 0x24, 0x87, 0xc2, 0xe4, 0xe0, 0x8d, 0x00, 0x25, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0xc5, 0xd9, 0xa0, 0xd5, 0x88, 0xec, 0x83, 0x66, 0xb9, 0x5c, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x72, 0x28, 0x6c, 0x06, 0x92, 0x43, 0xa1, 0x62, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x39, 0x14, 0x66, 0x03, 0xc9, 0xa1, 0x30, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x43, 0x61, 0x74, 0xf0, 0xb2, 0x0c, 0xa4, 0x41, 0xb0, 0xc1, 0x73, 0x58, 0x84, 0x0e, 0x69, 0xb8, 0x41, 0xb6, 0xc1, 0x03, 0x2a, 0x90, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe4, 0x50, 0x58, 0x0f, 0x24, 0x87, 0x42, 0xc3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x1c, 0x0a, 0xdb, 0x83, 0xb7, 0x81, 0x20, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x3a, 0x18, 0x48, 0x50, 0x87, 0x0e, 0x1a, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xd0, 0xa1, 0x51, 0xcb, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xcc, 0x4e, 0x48, 0x07, 0x32, 0x3b, 0xe1, 0xcb, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xd9, 0x09, 0xf1, 0x40, 0x66, 0x27, 0x4c, 0x0e, 0xde, 0x08, 0x50, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0x9d, 0xb0, 0x19, 0xc8, 0xec, 0x84, 0x96, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xcc, 0x4e, 0x18, 0x0d, 0x64, 0x76, 0xc2, 0xf0, 0xe0, 0x81, 0x1c, 0x48, 0x83, 0x6c, 0x83, 0xa7, 0xc3, 0x20, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0x9d, 0xb0, 0x1c, 0xc8, 0xec, 0x84, 0x92, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xb3, 0x13, 0xa6, 0x03, 0x99, 0x9d, 0x30, 0x3f, 0x78, 0x3f, 0x42, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x66, 0x27, 0xec, 0x07, 0x32, 0x3b, 0xa1, 0x63, 0x90, 0x0c, 0xe4, 0xff, 0x8e, 0xe7, 0xc7, 0xa1, 0x43, 0x07, 0x8d, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x71, 0xe8, 0xd0, 0xa8, 0xe5, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xbe, 0x0a, 0xe9, 0x40, 0xfa, 0x2a, 0x14, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0xab, 0x10, 0x0f, 0xa4, 0xaf, 0xc2, 0xe2, 0xe0, 0x55, 0x4d, 0x42, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xaf, 0xc2, 0x64, 0x20, 0x7d, 0x15, 0x66, 0x83, 0x64, 0x60, 0xff, 0xea, 0x78, 0x3c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x38, 0x07, 0xaf, 0x83, 0x30, 0x5a, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0xab, 0xb0, 0x1b, 0x48, 0x5f, 0x85, 0x9e, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf4, 0x55, 0x58, 0x0f, 0xa4, 0xaf, 0x42, 0xc1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xbe, 0x0a, 0xc3, 0x83, 0x37, 0x5d, 0x21, 0x1d, 0xbc, 0x5c, 0xb9, 0x68, 0x90, 0x6d, 0xf0, 0x74, 0x29, 0xa4, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x7d, 0x15, 0x2a, 0x06, 0xd2, 0x57, 0xa1, 0x66, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x5f, 0x85, 0x86, 0x83, 0x27, 0x77, 0x21, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x24, 0x03, 0x4b, 0x57, 0xc7, 0xe3, 0x43, 0x07, 0x8d, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x71, 0xe8, 0xd0, 0xa8, 0xe5, 0xd0, 0xfc, 0xe5, 0x78, 0x3c, 0x08, 0x16, 0x0f, 0x5e, 0xee, 0x22, 0xb4, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x3b, 0x21, 0x1d, 0xc8, 0xed, 0x84, 0x37, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0x9d, 0x90, 0x0f, 0xe4, 0x76, 0xc2, 0x66, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xed, 0x84, 0xf8, 0xe0, 0x8d, 0x6a, 0x48, 0x83, 0x60, 0x83, 0xd7, 0x6e, 0x08, 0x1d, 0xd2, 0x70, 0x83, 0x6c, 0x83, 0xb7, 0x98, 0x21, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0x9d, 0x30, 0x1d, 0xc8, 0xed, 0x84, 0xc2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xb7, 0x13, 0x46, 0x07, 0x8f, 0x8c, 0x43, 0x1a, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x3b, 0x61, 0x3b, 0x90, 0xdb, 0x09, 0xf3, 0x83, 0x17, 0x85, 0x10, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x76, 0xc2, 0x7e, 0x20, 0xb7, 0x13, 0xfa, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x6e, 0x27, 0x14, 0x0c, 0xe4, 0x76, 0x42, 0xc9, 0xc1, 0x4b, 0x34, 0x4a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xed, 0x84, 0x96, 0x81, 0xdc, 0x4e, 0x68, 0x3a, 0x78, 0x18, 0x85, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xdc, 0x4e, 0xa8, 0x1a, 0xc8, 0xed, 0x84, 0xba, 0x83, 0xa5, 0xea, 0x3e, 0xc7, 0xa1, 0xe3, 0xd0, 0xa1, 0x83, 0xc6, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x10, 0x2c, 0xae, 0xc1, 0x7b, 0xa9, 0x42, 0x0e, 0xa7, 0x58, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x5f, 0x15, 0x37, 0x90, 0xb1, 0x8a, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x55, 0x71, 0x07, 0xaf, 0x66, 0x44, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x57, 0x85, 0x68, 0x20, 0x5f, 0x15, 0xe2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x5f, 0x15, 0x92, 0x83, 0x67, 0x47, 0x22, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x3a, 0x78, 0x63, 0x7f, 0xc7, 0x21, 0x0d, 0x37, 0xc8, 0x36, 0x78, 0xc7, 0x22, 0xd2, 0x20, 0xdb, 0xe0, 0x8d, 0x8d, 0x48, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc2, 0x2a, 0xc4, 0x03, 0x09, 0xab, 0x30, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x56, 0x21, 0x39, 0x78, 0x89, 0x26, 0xd2, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xb0, 0x0a, 0xf9, 0x40, 0xc2, 0x2a, 0x4c, 0x0e, 0x5e, 0x14, 0x42, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xb0, 0x0a, 0x9b, 0x81, 0x84, 0x55, 0xd8, 0x1d, 0xbc, 0x04, 0x0a, 0xe9, 0x38, 0x74, 0xe8, 0xa0, 0x71, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9c, 0x57, 0x48, 0x07, 0x72, 0x5e, 0x61, 0xbc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xf3, 0x0a, 0x83, 0x81, 0x9c, 0x57, 0x18, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0xaf, 0x10, 0x1f, 0x3c, 0x8c, 0x15, 0x69, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x19, 0x10, 0xe8, 0x4b, 0x87, 0x15, 0xda, 0x43, 0x1a, 0x6e, 0x90, 0x6d, 0xf0, 0x02, 0x54, 0xa4, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe7, 0x15, 0x76, 0x03, 0x39, 0xaf, 0xb0, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x5e, 0x61, 0x75, 0xf0, 0x32, 0x5a, 0xa4, 0x41, 0xb0, 0xc1, 0x6b, 0x5f, 0x91, 0x0e, 0x1d, 0x34, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x2b, 0x08, 0x36, 0x58, 0x0e, 0x67, 0xb4, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x43, 0x21, 0x1d, 0xc8, 0x0f, 0x85, 0x2f, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0xa1, 0x30, 0x18, 0xc8, 0x0f, 0x85, 0xcd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x1f, 0x0a, 0xf1, 0xc1, 0x23, 0x7e, 0x91, 0x06, 0xc1, 0x06, 0x0f, 0xdb, 0xeb, 0x39, 0x58, 0x64, 0x16, 0x34, 0xc8, 0x36, 0x78, 0xab, 0x2e, 0xd2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x1f, 0x0a, 0xb3, 0x81, 0xfc, 0x50, 0x98, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0xa1, 0x30, 0x3a, 0x78, 0x90, 0x31, 0xd2, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0x32, 0x20, 0xf8, 0xab, 0x8e, 0xc7, 0x87, 0x0e, 0x1a, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xec, 0x50, 0x48, 0x07, 0xb2, 0x43, 0xe1, 0xc2, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x1d, 0x0a, 0xf1, 0x40, 0x76, 0x28, 0x4c, 0x0e, 0xde, 0x08, 0x50, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x9c, 0x0d, 0xca, 0x9c, 0x80, 0x83, 0x47, 0x80, 0x79, 0x2c, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xec, 0x50, 0xd8, 0x0c, 0x64, 0x87, 0x42, 0xc5, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x76, 0x28, 0xcc, 0x06, 0xb2, 0x43, 0x61, 0x3a, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x87, 0xc2, 0xe8, 0xe0, 0x29, 0xdb, 0x48, 0x07, 0x0f, 0xe4, 0x40, 0x1a, 0x64, 0x1b, 0xbc, 0xd8, 0x1a, 0x69, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x0e, 0x85, 0xf5, 0x40, 0x76, 0x28, 0x34, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0xa1, 0xb0, 0x3d, 0x78, 0x67, 0x38, 0xd2, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0x32, 0xe0, 0xb4, 0xd7, 0x77, 0x3c, 0x3e, 0x74, 0xd0, 0x38, 0x34, 0x7f, 0x39, 0x1e, 0x1f, 0x87, 0x0e, 0x8d, 0x5a, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x96, 0x85, 0xc1, 0x2c, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb4, 0x4e, 0x48, 0x07, 0xd2, 0x3a, 0xe1, 0xc6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x5a, 0x27, 0x0c, 0x06, 0xd2, 0x3a, 0x61, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x75, 0x42, 0x7c, 0xf0, 0x34, 0x77, 0xa4, 0x41, 0xb0, 0xc1, 0xc3, 0xf6, 0x7a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0xfc, 0xe0, 0xa4, 0xb7, 0x7b, 0xc8, 0xda, 0x1d, 0x87, 0x06, 0xd9, 0x06, 0x2f, 0x50, 0x47, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xeb, 0x84, 0xd5, 0x40, 0x5a, 0x27, 0x74, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0x9d, 0xb0, 0x39, 0x78, 0xd7, 0x3d, 0xd2, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xd6, 0x09, 0xb3, 0x81, 0xb4, 0x4e, 0x58, 0x1e, 0xbc, 0xaa, 0x49, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb4, 0x4e, 0x98, 0x0e, 0xa4, 0x75, 0xc2, 0xfa, 0xe0, 0x69, 0xfa, 0x3d, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0x9d, 0x30, 0x1f, 0x48, 0xeb, 0x84, 0x8a, 0x83, 0xf7, 0x7b, 0x17, 0x1d, 0x87, 0x0e, 0x4d, 0x81, 0x06, 0xd9, 0x06, 0x2f, 0x50, 0x47, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x3a, 0xa1, 0x66, 0x20, 0xad, 0x13, 0xaa, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb4, 0x4e, 0x28, 0x39, 0x78, 0xd6, 0x42, 0xd2, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x83, 0xb6, 0x36, 0x98, 0x0e, 0x2d, 0xc0, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xd2, 0x2b, 0xa4, 0x03, 0x49, 0xaf, 0x30, 0x1d, 0x7e, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa4, 0x57, 0x18, 0x0c, 0x24, 0xbd, 0xc2, 0xe8, 0xe0, 0x25, 0x29, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xd2, 0x2b, 0xac, 0x06, 0x92, 0x5e, 0x61, 0x79, 0xf0, 0x92, 0x94, 0xa1, 0x43, 0x4f, 0xd4, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x20, 0x58, 0x3c, 0x78, 0xd4, 0x04, 0xd2, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xe6, 0xc4, 0x0d, 0x24, 0x74, 0xe2, 0x87, 0x5d, 0xb8, 0xc5, 0x83, 0xc2, 0xdf, 0xe0, 0x10, 0xcd, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x64, 0x4e, 0x48, 0x06, 0x92, 0x39, 0xe1, 0xc3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x32, 0x27, 0x44, 0x03, 0xc9, 0x9c, 0x10, 0x0f, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xf0, 0xd4, 0x8f, 0xa4, 0x0d, 0x9e, 0xfa, 0x91, 0x74, 0x38, 0xc5, 0x06, 0xd9, 0x06, 0x2f, 0x06, 0x49, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x39, 0x21, 0x1f, 0x48, 0xe6, 0x84, 0xc1, 0xc1, 0xd0, 0xfc, 0x1d, 0x76, 0xe1, 0x16, 0x0f, 0x16, 0x60, 0xb9, 0x1c, 0xa2, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xcd, 0x09, 0xc9, 0x40, 0x36, 0x27, 0x7c, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xe6, 0x84, 0x68, 0x20, 0x9b, 0x13, 0xe2, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x1e, 0xbf, 0x92, 0xb4, 0xc1, 0xe3, 0x57, 0x92, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0xe0, 0x19, 0x2d, 0x49, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x36, 0x27, 0x2c, 0x06, 0xb2, 0x39, 0x61, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x73, 0x42, 0x7e, 0xf0, 0x74, 0x9b, 0xa4, 0x83, 0xb7, 0x89, 0x18, 0x0d, 0xbb, 0x70, 0x8b, 0x07, 0x65, 0x4e, 0xc0, 0x21, 0x9a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0x9c, 0x90, 0x0c, 0xa4, 0x73, 0xc2, 0x9b, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x74, 0x4e, 0x88, 0x06, 0xd2, 0x39, 0x21, 0x1e, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0xed, 0x3a, 0x49, 0x1b, 0xbc, 0x5d, 0x27, 0xe9, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0x9e, 0xc0, 0x93, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x73, 0xc2, 0x62, 0x20, 0x9d, 0x13, 0x56, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x3a, 0x27, 0xe4, 0x07, 0xcf, 0x2e, 0x4a, 0x3a, 0x78, 0x9b, 0x88, 0xd1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xcf, 0x09, 0xc9, 0x40, 0x3e, 0x27, 0x9c, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xe7, 0x84, 0x68, 0x20, 0x9f, 0x13, 0xe2, 0x61, 0x17, 0x6e, 0x43, 0x34, 0xc7, 0x83, 0x56, 0x23, 0xb2, 0x37, 0x78, 0xd2, 0x53, 0xd2, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0x3c, 0x37, 0x29, 0x69, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xe7, 0x84, 0xc5, 0x40, 0x3e, 0x27, 0xac, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x7c, 0x4e, 0xc8, 0x0f, 0xde, 0x39, 0x95, 0x74, 0xf0, 0x36, 0x11, 0xa3, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xb2, 0x42, 0x3a, 0x90, 0xca, 0x0a, 0xf5, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xac, 0x30, 0x1a, 0x48, 0x65, 0x85, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xca, 0x0a, 0xf1, 0xc1, 0xe3, 0xba, 0x92, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x54, 0x56, 0x58, 0x0d, 0xa4, 0xb2, 0xc2, 0xf0, 0xe0, 0x45, 0x21, 0x44, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xac, 0xb0, 0x1c, 0x48, 0x65, 0x85, 0xf5, 0xc1, 0x4b, 0xa0, 0x90, 0x8e, 0x43, 0x87, 0x34, 0xdc, 0x20, 0xdb, 0xe0, 0x11, 0x59, 0x49, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x2a, 0x2b, 0xb4, 0x0c, 0xa4, 0xb2, 0x42, 0xfb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xca, 0x0a, 0xfb, 0x83, 0x37, 0xb1, 0x25, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xac, 0x50, 0x33, 0x90, 0xca, 0x0a, 0x4d, 0x07, 0xaf, 0x6a, 0x12, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x95, 0x15, 0xaa, 0x06, 0x52, 0x59, 0xa1, 0x6e, 0x90, 0x0c, 0x18, 0x6a, 0x7d, 0xc7, 0xe3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0xc5, 0x0d, 0xde, 0x98, 0x88, 0x74, 0xf0, 0x3a, 0x08, 0xa3, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xca, 0x0a, 0x7d, 0x03, 0xa9, 0xac, 0x50, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xca, 0x0a, 0x8d, 0x03, 0xa9, 0xac, 0xd0, 0x3a, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xb2, 0x42, 0xe1, 0xc1, 0x4b, 0xfe, 0x92, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x1d, 0xbc, 0x04, 0x0a, 0xe9, 0x90, 0x86, 0x1b, 0x64, 0x1b, 0x3c, 0x57, 0x2f, 0x69, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x65, 0x85, 0xde, 0x81, 0x54, 0x56, 0xe8, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x59, 0xa1, 0xf6, 0xe0, 0xc1, 0x86, 0x49, 0x07, 0x6f, 0x07, 0x43, 0x3a, 0x34, 0x7f, 0x39, 0x1e, 0x1f, 0x87, 0x0e, 0x1d, 0x34, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x2b, 0x08, 0x16, 0x07, 0x5e, 0xee, 0x3e, 0x9c, 0x62, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x1b, 0x14, 0x37, 0x90, 0x10, 0x8a, 0x1f, 0x76, 0x83, 0xc5, 0x09, 0x17, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0xa0, 0x90, 0x0c, 0x64, 0x83, 0xc2, 0x8b, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x6c, 0x50, 0x88, 0x06, 0xb2, 0x41, 0x21, 0x1c, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x60, 0x4d, 0x5a, 0xc2, 0xc1, 0x1b, 0x88, 0x8f, 0x06, 0xd9, 0x06, 0x4f, 0x89, 0x4c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x41, 0x61, 0x31, 0x90, 0x0d, 0x0a, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x1b, 0x14, 0xd2, 0x83, 0x57, 0x6a, 0x26, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0xa0, 0x30, 0x19, 0xc8, 0x06, 0x85, 0xd9, 0xc1, 0xfb, 0x11, 0x4a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x41, 0x61, 0x37, 0x90, 0x0d, 0x0a, 0xdb, 0x83, 0x87, 0x56, 0x09, 0x1d, 0x87, 0x0e, 0x1d, 0x34, 0x86, 0x5d, 0xb8, 0x0d, 0xd6, 0x08, 0x75, 0x1c, 0xa2, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x0e, 0x0a, 0xc9, 0x40, 0x3a, 0x28, 0xdc, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x07, 0x85, 0x68, 0x20, 0x1d, 0x14, 0xc2, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0xd6, 0x08, 0x75, 0x1c, 0xbc, 0x16, 0xfc, 0x68, 0x90, 0x6d, 0xf0, 0x0c, 0xd4, 0xa4, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x1d, 0x14, 0x16, 0x03, 0xe9, 0xa0, 0x30, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x41, 0x21, 0x3d, 0x78, 0x61, 0x6c, 0xd2, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x0e, 0x0a, 0x93, 0x81, 0x74, 0x50, 0x98, 0x1d, 0xbc, 0x1f, 0xa1, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x1d, 0x14, 0x76, 0x03, 0xe9, 0xa0, 0xb0, 0x3d, 0x78, 0x68, 0x95, 0xd0, 0x71, 0xe8, 0xd0, 0x41, 0x63, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x07, 0x85, 0x64, 0x20, 0x1f, 0x14, 0xfe, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x83, 0x42, 0x34, 0x90, 0x0f, 0x0a, 0xe9, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x63, 0xf0, 0x72, 0xf7, 0x06, 0x2f, 0x1b, 0x4e, 0x3a, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x57, 0xf7, 0x26, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x83, 0xc2, 0x64, 0x20, 0x1f, 0x14, 0xd6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x3e, 0x28, 0xc4, 0x07, 0xcf, 0x3c, 0x4e, 0x1a, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x41, 0x61, 0x33, 0x90, 0x0f, 0x0a, 0xbb, 0x83, 0xf7, 0x23, 0x94, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x83, 0xc2, 0x70, 0x20, 0x1f, 0x14, 0xc6, 0x07, 0x0f, 0xad, 0x12, 0x3a, 0x0e, 0x1d, 0x9a, 0x02, 0x0d, 0xb2, 0x0d, 0x5e, 0xdd, 0x9b, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x83, 0x42, 0xc5, 0x40, 0x3e, 0x28, 0xb4, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0xa0, 0x30, 0x3f, 0x78, 0x9f, 0x75, 0xd2, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x0f, 0x0a, 0x1d, 0x03, 0xf9, 0xa0, 0xd0, 0x73, 0xf0, 0x7e, 0x84, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x7c, 0x50, 0x28, 0x1a, 0xc8, 0x07, 0x85, 0xb2, 0x83, 0x87, 0x56, 0x09, 0x1d, 0x87, 0x0e, 0x2d, 0xc0, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x2b, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xd2, 0x27, 0x6e, 0x20, 0xed, 0x13, 0x3f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x7c, 0xe2, 0x0e, 0x9e, 0x63, 0x9e, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xf4, 0x09, 0xe9, 0x40, 0xd2, 0x27, 0x8c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa4, 0x4f, 0x48, 0x06, 0x92, 0x3e, 0xe1, 0xc4, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xf4, 0x09, 0xf1, 0x40, 0xd2, 0x27, 0x2c, 0x0e, 0x5e, 0xd5, 0x24, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xd2, 0x27, 0x4c, 0x06, 0x92, 0x3e, 0x61, 0x76, 0xf0, 0x7e, 0xef, 0xa2, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0x9f, 0xb0, 0x1b, 0x48, 0xfa, 0x84, 0xed, 0xc1, 0xab, 0x1f, 0x8f, 0x8e, 0x43, 0x87, 0x34, 0xdc, 0x20, 0xdb, 0xe0, 0x81, 0xe4, 0x49, 0x83, 0x6c, 0x83, 0xc7, 0x9b, 0x27, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0x9f, 0x90, 0x0e, 0x64, 0x7d, 0xc2, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xfa, 0x84, 0x64, 0x20, 0xeb, 0x13, 0x1e, 0x0c, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0x9f, 0x10, 0x0f, 0x64, 0x7d, 0xc2, 0xe2, 0xe0, 0x55, 0x4d, 0x42, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x7d, 0xc2, 0x64, 0x20, 0xeb, 0x13, 0x66, 0x07, 0x29, 0x1f, 0x17, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x3e, 0x61, 0x37, 0x90, 0xf5, 0x09, 0xdb, 0x83, 0x67, 0x78, 0x07, 0x1c, 0x87, 0x0e, 0x1d, 0x34, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x0b, 0x82, 0xc5, 0x83, 0x57, 0x26, 0x22, 0x2d, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x44, 0x4f, 0xdc, 0x40, 0xc6, 0x27, 0x7e, 0xd8, 0x85, 0x5b, 0x0c, 0x7c, 0xb3, 0x34, 0xb6, 0xf2, 0x10, 0xcd, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x44, 0x4f, 0x48, 0x06, 0x12, 0x3d, 0x61, 0xb6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xe8, 0x09, 0xd1, 0x40, 0xa2, 0x27, 0xe4, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x3c, 0x57, 0x42, 0x69, 0x83, 0xe7, 0x4a, 0x28, 0x1d, 0x4e, 0xb1, 0x41, 0xb6, 0xc1, 0x0b, 0x28, 0x94, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x44, 0x4f, 0x58, 0x0c, 0x24, 0x7a, 0xc2, 0x6a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xf4, 0x84, 0xc1, 0xc1, 0x9b, 0x3b, 0x94, 0x0e, 0x9e, 0x89, 0x2f, 0x34, 0xec, 0xc2, 0x2d, 0x06, 0xbe, 0x5b, 0x98, 0x5d, 0x79, 0x88, 0xe6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xa6, 0x27, 0x24, 0x03, 0x99, 0x9e, 0x30, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xf4, 0x84, 0x68, 0x20, 0xd3, 0x13, 0xf2, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x5e, 0x1d, 0xa2, 0xb4, 0xc1, 0xab, 0x43, 0x94, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0xe0, 0x21, 0x23, 0x4a, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xa6, 0x27, 0x2c, 0x06, 0x32, 0x3d, 0x61, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x7a, 0xc2, 0xe0, 0xe0, 0xe9, 0x2c, 0x4a, 0x07, 0x0f, 0xbc, 0x45, 0x1a, 0x76, 0x83, 0x87, 0x43, 0x19, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x7a, 0x42, 0x32, 0x90, 0xea, 0x09, 0xb3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x54, 0x4f, 0x88, 0x06, 0x52, 0x3d, 0x21, 0x3f, 0x78, 0xcf, 0x95, 0xd1, 0x20, 0xdb, 0xe0, 0x91, 0x31, 0x4a, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xaa, 0x27, 0x2c, 0x06, 0x52, 0x3d, 0x61, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x7a, 0xc2, 0xe0, 0xe0, 0xc9, 0x39, 0x4a, 0x07, 0x0f, 0xbc, 0x45, 0x1a, 0x76, 0xe1, 0x16, 0x03, 0x7f, 0x2c, 0x6c, 0x8e, 0x3e, 0x44, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xd7, 0x13, 0x92, 0x81, 0x5c, 0x4f, 0x98, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x7a, 0x42, 0x34, 0x90, 0xeb, 0x09, 0xf9, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x8f, 0xee, 0x51, 0xda, 0xe0, 0xd1, 0x3d, 0x4a, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0xf0, 0x8e, 0x1f, 0xa5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xd7, 0x13, 0x16, 0x03, 0xb9, 0x9e, 0xb0, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x3d, 0x61, 0x70, 0xf0, 0x72, 0x24, 0xa5, 0x41, 0xb0, 0xa1, 0x47, 0xc9, 0xa1, 0x83, 0xc6, 0xb0, 0x0b, 0xb7, 0xc1, 0x2b, 0xce, 0x8c, 0x0e, 0xd1, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xf6, 0x84, 0x64, 0x20, 0xd9, 0x13, 0x66, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0x9e, 0x10, 0x0d, 0x24, 0x7b, 0x42, 0x7e, 0xf0, 0x36, 0x33, 0xa3, 0x41, 0xb6, 0xc1, 0xeb, 0x9c, 0x94, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x64, 0x4f, 0x58, 0x0c, 0x24, 0x7b, 0xc2, 0x6a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xf6, 0x84, 0xc1, 0xc1, 0x5b, 0xad, 0x94, 0x0e, 0x1e, 0xc0, 0xa4, 0x34, 0xec, 0xc2, 0x2d, 0x06, 0xbe, 0x5d, 0x18, 0x5b, 0x79, 0x88, 0xe6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xbe, 0x27, 0x24, 0x03, 0xf9, 0x9e, 0x30, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xf7, 0x84, 0x68, 0x20, 0xdf, 0x13, 0xf2, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x5e, 0xab, 0xa5, 0xb4, 0xc1, 0x6b, 0xb5, 0x94, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0xe0, 0x01, 0x5c, 0x4a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0x9e, 0xb0, 0x18, 0xc8, 0xf7, 0x84, 0xd5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xef, 0x09, 0x83, 0x83, 0x47, 0x97, 0x29, 0x1d, 0x3c, 0x61, 0xe8, 0x68, 0x90, 0x6d, 0xf0, 0x00, 0x2e, 0xa5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xdf, 0x13, 0x76, 0x03, 0xf9, 0x9e, 0xb0, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x3d, 0x61, 0x76, 0xf0, 0x22, 0x36, 0xa5, 0x41, 0xb0, 0xc1, 0x5b, 0xce, 0x36, 0x0e, 0x2d, 0xc0, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x84, 0x4f, 0x48, 0x06, 0x12, 0x3e, 0xa1, 0x67, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe1, 0x13, 0xa2, 0x81, 0x84, 0x4f, 0xc8, 0x0f, 0xde, 0xa9, 0x63, 0x34, 0xc8, 0x36, 0x78, 0x31, 0x9c, 0xd2, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc2, 0x27, 0x2c, 0x06, 0x12, 0x3e, 0x61, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x7c, 0xc2, 0xe0, 0xe0, 0x09, 0x79, 0x4a, 0x07, 0x4f, 0x18, 0x3a, 0x1a, 0x64, 0x1b, 0xbc, 0x18, 0x4e, 0x69, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xf8, 0x84, 0xdd, 0x40, 0xc2, 0x27, 0xd4, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0x9f, 0x30, 0x3b, 0x78, 0xdf, 0x9f, 0xd2, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xf0, 0x09, 0xc3, 0x81, 0x84, 0x4f, 0xd8, 0x1e, 0xbc, 0xaa, 0x49, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x84, 0x4f, 0x18, 0x0f, 0x24, 0x7c, 0x42, 0xc1, 0xc1, 0x52, 0x75, 0x9f, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0x9f, 0xd0, 0x30, 0x90, 0xf0, 0x09, 0x2d, 0x07, 0x29, 0x1f, 0x17, 0xc7, 0xa1, 0x43, 0x0b, 0xb0, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x62, 0xe2, 0x06, 0x52, 0x31, 0xf1, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0x98, 0x10, 0x0f, 0x24, 0x62, 0xc2, 0x72, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xc4, 0x84, 0xe4, 0xe0, 0x2d, 0x95, 0x4a, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x22, 0x26, 0xe4, 0x03, 0x89, 0x98, 0xb0, 0x39, 0x78, 0x3f, 0x42, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x22, 0x26, 0x8c, 0x06, 0x12, 0x31, 0x61, 0x78, 0xf0, 0x7a, 0x18, 0xa2, 0xe3, 0xd0, 0x21, 0x0d, 0x37, 0xc8, 0x36, 0x78, 0x3c, 0xa4, 0xd2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x89, 0x09, 0x9b, 0x81, 0x4c, 0x4c, 0xd8, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0x98, 0x90, 0x1c, 0x3c, 0x80, 0x54, 0x69, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0xc1, 0xeb, 0x61, 0x88, 0x0e, 0x1d, 0x34, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x0b, 0x82, 0xc5, 0x0d, 0x5e, 0xc8, 0xb9, 0x71, 0xf0, 0x72, 0x17, 0xa1, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xd8, 0x09, 0xe9, 0x40, 0x62, 0x27, 0x3c, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xec, 0x84, 0xcd, 0x40, 0x62, 0x27, 0xec, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc4, 0x4e, 0x88, 0x0f, 0xde, 0xfd, 0xaa, 0x74, 0xf0, 0xd2, 0x36, 0xa4, 0x41, 0xb6, 0xc1, 0xf3, 0x56, 0x95, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x3b, 0x61, 0x3b, 0x90, 0xd8, 0x09, 0xfb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xb1, 0x13, 0x86, 0x07, 0xaf, 0xb2, 0x55, 0x3a, 0x78, 0xde, 0x86, 0xd0, 0x20, 0xdb, 0xe0, 0x79, 0xab, 0x4a, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x62, 0x27, 0x34, 0x0c, 0x24, 0x76, 0x42, 0xcb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xd8, 0x09, 0x05, 0x07, 0x6f, 0xe6, 0x55, 0x3a, 0x78, 0x20, 0x91, 0xd0, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x41, 0xb0, 0xb8, 0x41, 0x3a, 0xa5, 0xcf, 0x1c, 0x3c, 0x38, 0x55, 0x69, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x7f, 0xe2, 0x06, 0x32, 0x40, 0xf1, 0xc3, 0x2e, 0xdc, 0x62, 0xe0, 0xcf, 0xa5, 0xb9, 0x9d, 0x87, 0x68, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x7f, 0x42, 0x32, 0x90, 0xfd, 0x09, 0x5f, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x3f, 0x21, 0x1a, 0xc8, 0xfe, 0x84, 0x7c, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x17, 0x17, 0x2b, 0x6d, 0xf0, 0xe2, 0x62, 0xa5, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x78, 0xc4, 0xb1, 0xd2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xfd, 0x09, 0x8b, 0x81, 0xec, 0x4f, 0x58, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0x9f, 0x30, 0x38, 0x78, 0x38, 0xb4, 0xd2, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x83, 0xf3, 0x13, 0xed, 0xa1, 0x83, 0xc6, 0xb0, 0x0b, 0xb7, 0x78, 0xb0, 0x7e, 0xb8, 0xf6, 0x10, 0xcd, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf4, 0x4f, 0x48, 0x06, 0xd2, 0x3f, 0xe1, 0xcf, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xfa, 0x27, 0x44, 0x03, 0xe9, 0x9f, 0x90, 0x0f, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xf0, 0xfe, 0x6a, 0xa5, 0x0d, 0xde, 0x5f, 0xad, 0x74, 0x38, 0xc5, 0x06, 0xd9, 0x06, 0x2f, 0xb9, 0x56, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x3f, 0x61, 0x31, 0x90, 0xfe, 0x09, 0xab, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xfd, 0x13, 0x06, 0x07, 0xaf, 0x07, 0x57, 0x3a, 0x78, 0xff, 0xb4, 0xd2, 0xb0, 0x0b, 0xb7, 0x18, 0xf8, 0x6d, 0x75, 0x6c, 0xf4, 0x21, 0x9a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0x9f, 0x90, 0x0c, 0xe4, 0x7f, 0xc2, 0xa1, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfc, 0x4f, 0x88, 0x06, 0xf2, 0x3f, 0x21, 0x1f, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0xfd, 0xe4, 0x4a, 0x1b, 0xbc, 0x9f, 0x5c, 0xe9, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0x9e, 0x64, 0xae, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x7f, 0xc2, 0x62, 0x20, 0xff, 0x13, 0x56, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xfe, 0x27, 0x0c, 0x0e, 0x9e, 0x01, 0xaf, 0x34, 0x08, 0x16, 0x7e, 0x43, 0x72, 0xe9, 0x20, 0x1d, 0xcd, 0xe0, 0xd0, 0x41, 0x63, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x00, 0x85, 0x64, 0x20, 0x01, 0x14, 0x8e, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x80, 0x42, 0x34, 0x90, 0x00, 0x0a, 0xf9, 0x41, 0xba, 0xa3, 0xcf, 0x20, 0xdb, 0xe0, 0x15, 0xf5, 0x4a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0xa0, 0x30, 0x1b, 0x48, 0x00, 0x85, 0xdd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x00, 0x0a, 0x83, 0x83, 0x47, 0xf5, 0x2b, 0x1d, 0x0c, 0x2f, 0xde, 0x41, 0xb6, 0xc1, 0x2b, 0xea, 0x95, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x04, 0x50, 0x58, 0x0e, 0x24, 0x80, 0xc2, 0x7a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x00, 0x85, 0xe1, 0xc1, 0x5b, 0x07, 0x96, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x1d, 0xbc, 0x87, 0xbe, 0xe3, 0xd0, 0x02, 0xec, 0xd0, 0xfc, 0xe5, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xa8, 0xe2, 0x06, 0xd2, 0x54, 0x61, 0x30, 0x08, 0x16, 0x0f, 0x5e, 0xc4, 0x74, 0xb4, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xa8, 0xe2, 0x0e, 0x9e, 0xb0, 0xb0, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xa8, 0xe2, 0x0e, 0x9e, 0xb0, 0xb0, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x54, 0x21, 0x19, 0xc8, 0x52, 0x85, 0xa2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x49, 0x15, 0x92, 0x83, 0x47, 0x4f, 0x2c, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x24, 0x55, 0x48, 0x07, 0x92, 0x54, 0x61, 0x30, 0x48, 0x06, 0xc2, 0x74, 0x30, 0xfc, 0x63, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x52, 0x85, 0xc9, 0x40, 0x92, 0x2a, 0x6c, 0x0e, 0x86, 0x3c, 0xfa, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x54, 0x61, 0x35, 0x90, 0xa4, 0x0a, 0xa5, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x49, 0x15, 0x66, 0x03, 0x49, 0xaa, 0x30, 0x3d, 0x68, 0x70, 0x02, 0x6a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x49, 0x15, 0xb6, 0x03, 0x49, 0xaa, 0xd0, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xa4, 0x0a, 0xe3, 0x81, 0x24, 0x55, 0x68, 0x18, 0x03, 0x3f, 0x2f, 0x6c, 0x2d, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x52, 0x85, 0x8a, 0x81, 0x24, 0x55, 0xa8, 0x1b, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0xaa, 0xd0, 0x31, 0x90, 0xa4, 0x0a, 0x3d, 0x07, 0x8b, 0xd5, 0x29, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x52, 0x85, 0xa2, 0x81, 0x24, 0x55, 0x68, 0x3a, 0x44, 0x73, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x92, 0x2a, 0x54, 0x0d, 0x24, 0xa9, 0x42, 0xdb, 0xc1, 0x90, 0x93, 0x3e, 0x0e, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xa9, 0x42, 0xdf, 0x40, 0x92, 0x2a, 0x14, 0x1e, 0x1a, 0x09, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0xaa, 0xd0, 0x38, 0x90, 0xa4, 0x0a, 0x95, 0x07, 0x41, 0xe9, 0x7d, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xa5, 0x0a, 0xc9, 0xc1, 0xa3, 0x27, 0x96, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x96, 0x2a, 0x44, 0x03, 0x59, 0xaa, 0x10, 0x1f, 0x34, 0x38, 0x01, 0x35, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xa5, 0x0a, 0xf9, 0x40, 0x96, 0x2a, 0xf4, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xa9, 0xc2, 0x60, 0x20, 0x4b, 0x15, 0x56, 0x63, 0xe0, 0xd3, 0x85, 0xad, 0xbd, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0xaa, 0x30, 0x1b, 0xc8, 0x52, 0x85, 0x8a, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xa5, 0x0a, 0xbb, 0x81, 0x2c, 0x55, 0xd8, 0x1e, 0x2c, 0x56, 0xa7, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x4b, 0x15, 0xc6, 0x03, 0x59, 0xaa, 0xb0, 0x3e, 0x44, 0x73, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x96, 0x2a, 0xcc, 0x07, 0xb2, 0x54, 0xa1, 0xe1, 0x60, 0xc8, 0x49, 0x1f, 0x87, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x54, 0xa1, 0x63, 0x20, 0x4b, 0x15, 0x4a, 0x0e, 0x8d, 0x04, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x2c, 0x55, 0x68, 0x19, 0xc8, 0x52, 0x85, 0x9a, 0x83, 0xa0, 0xf4, 0x3e, 0x0e, 0x1d, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x34, 0x55, 0xdc, 0xc1, 0x13, 0x16, 0x96, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x54, 0xb1, 0x03, 0x69, 0xaa, 0xf8, 0x43, 0xd6, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x4d, 0x15, 0x82, 0x81, 0x34, 0x55, 0x48, 0x0e, 0x3d, 0x84, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x54, 0x21, 0x1a, 0x48, 0x53, 0x85, 0xf4, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xa9, 0x42, 0x3c, 0x90, 0xa6, 0x0a, 0xf9, 0xa1, 0x63, 0xd8, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x95, 0x13, 0xd2, 0x81, 0x54, 0x4e, 0x78, 0x71, 0xf0, 0x0a, 0xfb, 0xa3, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x76, 0x26, 0xa4, 0x03, 0xd9, 0x99, 0x70, 0x61, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xce, 0x84, 0x78, 0x20, 0x3b, 0x13, 0x16, 0x07, 0xaf, 0x6a, 0x12, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x33, 0x61, 0x32, 0x90, 0x9d, 0x09, 0xeb, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xec, 0x4c, 0xd8, 0x0c, 0x64, 0x67, 0xc2, 0xee, 0xe0, 0x19, 0x05, 0x43, 0x83, 0x6c, 0x83, 0x37, 0xfa, 0x2d, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0x99, 0x30, 0x1c, 0xc8, 0xce, 0x84, 0xf1, 0x20, 0xd8, 0xe0, 0x75, 0xe9, 0x42, 0x87, 0x0e, 0x1a, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0x99, 0x30, 0x1f, 0xc8, 0xce, 0x84, 0x8a, 0x83, 0xf7, 0x75, 0x0c, 0x1d, 0x87, 0x0e, 0x8d, 0x5a, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x83, 0x60, 0x83, 0xb7, 0x71, 0x6e, 0x2c, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x8c, 0x4c, 0xdc, 0x40, 0x4e, 0x26, 0x7e, 0xd8, 0x85, 0xdb, 0xe0, 0xe5, 0x4c, 0x4b, 0x87, 0x68, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x64, 0x42, 0x32, 0x90, 0x91, 0x09, 0xbb, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x8c, 0x4c, 0x88, 0x06, 0x32, 0x32, 0x21, 0x1f, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0xe5, 0x4c, 0x4b, 0x1b, 0xbc, 0x9c, 0x69, 0xe9, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0x1e, 0x2f, 0xb9, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x64, 0xc2, 0x64, 0x20, 0x23, 0x13, 0x66, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x46, 0x26, 0x0c, 0x0e, 0x9e, 0xcb, 0xb9, 0x34, 0x08, 0x36, 0x78, 0xff, 0xbd, 0xd1, 0xa1, 0x83, 0xc6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x92, 0x09, 0xc9, 0x40, 0x4a, 0x26, 0xa4, 0x83, 0x60, 0x83, 0xd7, 0x6e, 0x08, 0x1d, 0x1a, 0xb5, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x04, 0x8b, 0x01, 0x1e, 0x6d, 0x65, 0x65, 0x74, 0x2d, 0x74, 0x68, 0x61, 0xf4, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xdf, 0xc4, 0x0d, 0x64, 0x72, 0xe2, 0x87, 0x5d, 0xb8, 0x0d, 0x1e, 0x79, 0x0f, 0x74, 0x48, 0x1d, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x6f, 0x42, 0x32, 0x90, 0xbe, 0x09, 0x2f, 0x86, 0x5d, 0xb8, 0x0d, 0xa9, 0x83, 0x83, 0x47, 0xde, 0x03, 0x6d, 0xf0, 0xc8, 0x7b, 0xa0, 0xc3, 0x29, 0x36, 0xec, 0xc2, 0x2d, 0x1e, 0xb4, 0x93, 0x1f, 0x73, 0x48, 0x1d, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x6f, 0x42, 0x32, 0x90, 0xbf, 0x09, 0x4f, 0x86, 0x5d, 0xb8, 0x0d, 0xa9, 0x83, 0x83, 0xd7, 0xc0, 0x2e, 0x6d, 0xf0, 0x1a, 0xd8, 0xa5, 0xc3, 0x29, 0x36, 0xec, 0xc2, 0x6d, 0xf0, 0x4a, 0xec, 0xa0, 0x43, 0xea, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x81, 0x13, 0x92, 0x81, 0x04, 0x4e, 0x78, 0x33, 0xec, 0xc2, 0x6d, 0x48, 0x1d, 0x1c, 0xbc, 0x12, 0x3b, 0x68, 0x83, 0x57, 0x62, 0x07, 0x1d, 0x4e, 0xb1, 0x61, 0x17, 0x6e, 0x83, 0xf1, 0x34, 0x77, 0x48, 0x1d, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x70, 0x42, 0x32, 0x90, 0xc1, 0x09, 0x7f, 0x86, 0x5d, 0xb8, 0x0d, 0xa9, 0x83, 0x83, 0xf1, 0x34, 0xb7, 0xc1, 0x78, 0x9a, 0x3b, 0x9c, 0x62, 0xc3, 0x2e, 0xdc, 0x06, 0xaf, 0x58, 0x0b, 0x3a, 0xa4, 0x0e, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x38, 0x21, 0x19, 0x48, 0xe1, 0x84, 0x23, 0xc3, 0x2e, 0xdc, 0x86, 0xd4, 0xc1, 0xc1, 0x2b, 0xd6, 0x82, 0x36, 0x78, 0xc5, 0x5a, 0xd0, 0xe1, 0x14, 0x1b, 0x76, 0xe1, 0x16, 0x03, 0x3c, 0xde, 0xdc, 0xd8, 0xf2, 0x5a, 0xe8, 0xd0, 0xd2, 0xe6, 0x43, 0xea, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x87, 0x13, 0x92, 0x81, 0x1c, 0x4e, 0xb8, 0x33, 0xec, 0xc2, 0x6d, 0x48, 0x1d, 0x1c, 0x3c, 0x06, 0x79, 0x69, 0x83, 0xc7, 0x20, 0x2f, 0x1d, 0x4e, 0xb1, 0x61, 0x17, 0x6e, 0x31, 0xc0, 0xe3, 0xcd, 0x8d, 0x2d, 0xaf, 0x85, 0x0e, 0x2d, 0x8c, 0x3e, 0xa4, 0x0e, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x38, 0x21, 0x19, 0x48, 0xe2, 0x84, 0x3b, 0xc3, 0x2e, 0xdc, 0x86, 0xd4, 0xc1, 0xc1, 0x43, 0x9e, 0x97, 0x36, 0x78, 0xc8, 0xf3, 0xd2, 0xe1, 0x14, 0x1b, 0x76, 0xe1, 0x16, 0x03, 0x3c, 0xe8, 0xc2, 0xd6, 0xca, 0x5a, 0xe8, 0xd0, 0xd2, 0xe6, 0x43, 0xea, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x8b, 0x13, 0x92, 0x81, 0x2c, 0x4e, 0xf8, 0x33, 0xec, 0xc2, 0x6d, 0x48, 0x1d, 0x1c, 0x3c, 0xc2, 0x7a, 0x69, 0x83, 0x47, 0x58, 0x2f, 0x1d, 0x4e, 0xb1, 0x61, 0x17, 0x6e, 0x31, 0xc0, 0x83, 0x2e, 0x6c, 0xad, 0xac, 0x85, 0x0e, 0x2d, 0x8c, 0x3e, 0xa4, 0x0e, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x38, 0x21, 0x19, 0x48, 0xe3, 0x84, 0x3f, 0xc3, 0x2e, 0xdc, 0x86, 0xd4, 0xc1, 0xc1, 0x03, 0xba, 0x97, 0x36, 0x78, 0x40, 0xf7, 0xd2, 0xe1, 0x14, 0x1b, 0x76, 0xe1, 0x16, 0x03, 0x3c, 0xda, 0xca, 0xca, 0xe8, 0x5a, 0xe8, 0xd0, 0xd2, 0xe6, 0x43, 0xea, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x8f, 0x13, 0x92, 0x81, 0x3c, 0x4e, 0x78, 0x33, 0xec, 0xc2, 0x6d, 0x48, 0x1d, 0x1c, 0x3c, 0x7e, 0x7c, 0x69, 0x83, 0xc7, 0x8f, 0x2f, 0x1d, 0x4e, 0xb1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x91, 0x13, 0x92, 0x81, 0x44, 0x4e, 0x78, 0x33, 0xec, 0xc2, 0x6d, 0x48, 0x1d, 0x1c, 0xbc, 0xb1, 0x74, 0x69, 0x83, 0x37, 0x96, 0x2e, 0x1d, 0x4e, 0xb1, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x0a, 0x82, 0xc5, 0x83, 0x57, 0x31, 0x1d, 0x2d, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa4, 0x4c, 0x48, 0x07, 0x92, 0x32, 0xe1, 0xcf, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x52, 0x26, 0x2c, 0x06, 0x92, 0x32, 0x61, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x65, 0x42, 0x7c, 0xf0, 0xe4, 0xfa, 0xa5, 0x83, 0x97, 0x2b, 0x17, 0x0d, 0xb2, 0x0d, 0x5e, 0x16, 0xbf, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x65, 0xc2, 0x70, 0x20, 0x29, 0x13, 0xb6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x52, 0x26, 0xac, 0x0e, 0x9e, 0xc3, 0xbf, 0x34, 0x08, 0x36, 0x78, 0xd8, 0x5e, 0xcf, 0xc1, 0xeb, 0x56, 0x37, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x2b, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x6d, 0x42, 0x3a, 0x90, 0xb6, 0x09, 0x77, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb4, 0x4d, 0x88, 0x07, 0xd2, 0x36, 0x61, 0x71, 0xf0, 0xa2, 0x10, 0xa2, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb4, 0x4d, 0x98, 0x0c, 0xa4, 0x6d, 0xc2, 0xec, 0xe0, 0xd5, 0xe1, 0x42, 0xc7, 0xa1, 0x43, 0xa3, 0x96, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x60, 0xf1, 0xe0, 0x35, 0xfb, 0x42, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x57, 0x13, 0x37, 0x90, 0xb5, 0x89, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xd5, 0x84, 0x74, 0x20, 0x57, 0x13, 0x16, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xae, 0x26, 0x24, 0x03, 0xb9, 0x9a, 0xf0, 0x61, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0xc1, 0x5b, 0x6c, 0x8a, 0x0e, 0x69, 0xb8, 0x41, 0xb6, 0xc1, 0xbb, 0x1f, 0x98, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x35, 0x21, 0x1d, 0x48, 0xd6, 0x84, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xac, 0x09, 0xc9, 0x40, 0xb2, 0x26, 0x7c, 0x19, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x35, 0x21, 0x1e, 0x48, 0xd6, 0x84, 0xc5, 0xc1, 0xab, 0x9a, 0x84, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xd6, 0x84, 0xc9, 0x40, 0xb2, 0x26, 0xcc, 0x0e, 0xde, 0x62, 0x53, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x59, 0x13, 0x76, 0x03, 0xc9, 0x9a, 0xb0, 0x3d, 0x78, 0xbf, 0x77, 0xd1, 0x71, 0xe8, 0xd0, 0x14, 0x68, 0x90, 0x6d, 0xf0, 0xee, 0x07, 0xa6, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x6c, 0x4d, 0x48, 0x07, 0xb2, 0x35, 0x61, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x6b, 0x42, 0x32, 0x90, 0xad, 0x09, 0x1f, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x6c, 0x4d, 0x88, 0x07, 0xb2, 0x35, 0x61, 0x71, 0xf0, 0xaa, 0x26, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x35, 0x61, 0x32, 0x90, 0xad, 0x09, 0xb3, 0x83, 0x07, 0xba, 0x0f, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x6b, 0xc2, 0x6e, 0x20, 0x5b, 0x13, 0xb6, 0x07, 0x6f, 0xb1, 0x29, 0x3a, 0x0e, 0x1d, 0x3a, 0x11, 0x0d, 0xb2, 0x0d, 0xde, 0xfd, 0xc0, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xae, 0x09, 0xe9, 0x40, 0xba, 0x26, 0x8c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x74, 0x4d, 0x48, 0x06, 0xd2, 0x35, 0xe1, 0xca, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xae, 0x09, 0xf1, 0x40, 0xba, 0x26, 0x2c, 0x0e, 0x5e, 0xd5, 0x24, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xba, 0x26, 0x4c, 0x06, 0xd2, 0x35, 0x61, 0x76, 0xf0, 0x7e, 0xef, 0xa2, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0x9a, 0xb0, 0x1b, 0x48, 0xd7, 0x84, 0xed, 0xc1, 0xc3, 0xb5, 0x8d, 0x8e, 0x43, 0x07, 0x4b, 0xf8, 0x7f, 0x06, 0xd9, 0x06, 0xef, 0x7e, 0x60, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xd7, 0x84, 0x74, 0x20, 0x5f, 0x13, 0x16, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xbe, 0x26, 0x24, 0x03, 0xf9, 0x9a, 0xf0, 0x65, 0x10, 0x6c, 0xf0, 0x2c, 0x6d, 0xa3, 0x83, 0xf7, 0x1c, 0x66, 0x0c, 0xb2, 0x0d, 0xde, 0xfd, 0xc0, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xb0, 0x09, 0xe9, 0x40, 0xc2, 0x26, 0x8c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x84, 0x4d, 0x48, 0x06, 0x12, 0x36, 0xe1, 0xc7, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xb0, 0x09, 0xf1, 0x40, 0xc2, 0x26, 0x2c, 0x0e, 0x5e, 0xd5, 0x24, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc2, 0x26, 0x4c, 0x06, 0x12, 0x36, 0x61, 0x76, 0xb0, 0x54, 0xdd, 0x67, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc2, 0x26, 0xec, 0x06, 0x12, 0x36, 0x61, 0x7b, 0xf0, 0xcc, 0x20, 0xa4, 0xe3, 0xd0, 0xc1, 0x43, 0x3c, 0x33, 0x06, 0xd9, 0x06, 0xef, 0x7e, 0x60, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xd8, 0x84, 0x74, 0x20, 0x63, 0x13, 0x16, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc6, 0x26, 0x24, 0x03, 0x19, 0x9b, 0xf0, 0x63, 0x10, 0x6c, 0xf0, 0x76, 0x32, 0x9f, 0x83, 0x87, 0xd2, 0x66, 0x0c, 0xb2, 0x0d, 0xde, 0xfd, 0xc0, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xb2, 0x09, 0xe9, 0x40, 0xca, 0x26, 0x8c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x94, 0x4d, 0x48, 0x06, 0x52, 0x36, 0xe1, 0xce, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xb2, 0x09, 0xf1, 0x40, 0xca, 0x26, 0x2c, 0x0e, 0x5e, 0xd5, 0x24, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xca, 0x26, 0x4c, 0x06, 0x52, 0x36, 0x61, 0x36, 0x48, 0x06, 0x4e, 0x9f, 0xc3, 0x0a, 0xed, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x94, 0x4d, 0xd8, 0x0d, 0xa4, 0x6c, 0xc2, 0x76, 0x90, 0x0c, 0x18, 0x5f, 0x57, 0xc7, 0xe3, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0xa0, 0x51, 0x71, 0xa6, 0xe3, 0xd0, 0x20, 0xdb, 0xe0, 0xdd, 0x0f, 0x4c, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0x9b, 0x90, 0x0e, 0xe4, 0x6c, 0xc2, 0x62, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xd9, 0x84, 0x64, 0x20, 0x67, 0x13, 0xbe, 0x0c, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x24, 0x03, 0xcd, 0xfa, 0x8e, 0xc7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x09, 0xd6, 0xbf, 0x8f, 0x43, 0x83, 0x6c, 0x83, 0x77, 0x3f, 0x30, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0x9b, 0x90, 0x0e, 0x24, 0x6d, 0xc2, 0x62, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xda, 0x84, 0x64, 0x20, 0x69, 0x13, 0x0e, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x24, 0x03, 0x02, 0xad, 0xef, 0x78, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x9d, 0x60, 0xff, 0xfb, 0x38, 0x74, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x41, 0xb0, 0x78, 0xf0, 0x2a, 0x7e, 0xa1, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x35, 0x0a, 0xb3, 0x81, 0xac, 0x51, 0xa8, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x46, 0x21, 0x1d, 0xc8, 0x1a, 0x85, 0x17, 0xc3, 0x2e, 0xdc, 0x06, 0xef, 0xd0, 0x64, 0x3a, 0xa4, 0x0e, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x46, 0x61, 0x38, 0x90, 0x35, 0x0a, 0xeb, 0x61, 0x17, 0x6e, 0x43, 0xea, 0xe0, 0xe0, 0x1d, 0x9a, 0x4c, 0x1b, 0xbc, 0x43, 0x93, 0xe9, 0x70, 0x8a, 0x0d, 0xbb, 0x70, 0x1b, 0x3c, 0x9a, 0xe7, 0xe1, 0x90, 0x3a, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x1a, 0x85, 0xf9, 0x40, 0xd6, 0x28, 0x74, 0x0c, 0xbb, 0x70, 0x1b, 0x52, 0x07, 0x07, 0x8f, 0xe6, 0x79, 0xd8, 0xe0, 0xd1, 0x3c, 0x0f, 0x87, 0x53, 0x6c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x1a, 0x85, 0x92, 0x81, 0xac, 0x51, 0x68, 0x1a, 0x76, 0xe1, 0x36, 0xa4, 0x0e, 0xc6, 0xc0, 0x47, 0x2b, 0x63, 0x23, 0x37, 0x78, 0xea, 0x2b, 0xd3, 0xe1, 0x14, 0x3b, 0x34, 0x7f, 0x39, 0x1e, 0xaf, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x07, 0x0a, 0xe9, 0x40, 0x1e, 0x28, 0xfc, 0x18, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x40, 0x21, 0x1e, 0xc8, 0x03, 0x85, 0xc5, 0xc1, 0xab, 0x9a, 0x84, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x03, 0x85, 0xc9, 0x40, 0x1e, 0x28, 0x6c, 0x87, 0x5f, 0x90, 0x0c, 0x9c, 0x7d, 0xc7, 0xf3, 0x83, 0x81, 0x04, 0x35, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x0f, 0x14, 0xc6, 0x03, 0x79, 0xa0, 0xb0, 0x3e, 0x28, 0x36, 0x08, 0x0f, 0xcd, 0x5f, 0x8e, 0xc7, 0xc7, 0xa1, 0x43, 0xa3, 0x96, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x60, 0x71, 0x83, 0xf7, 0x52, 0x85, 0xb4, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x59, 0x71, 0x03, 0x69, 0xad, 0xf8, 0x61, 0x37, 0x78, 0xa2, 0x84, 0xd2, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x3e, 0x2b, 0x24, 0x03, 0xf9, 0xac, 0x30, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x67, 0x85, 0x68, 0x20, 0x9f, 0x15, 0xf2, 0x83, 0x97, 0x63, 0x28, 0x0d, 0xb2, 0x0d, 0x1e, 0x9a, 0xcc, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xb3, 0xc2, 0x62, 0x20, 0x9f, 0x15, 0x56, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x3e, 0x2b, 0x0c, 0x0e, 0x9e, 0x1d, 0xcd, 0x74, 0xf0, 0x4c, 0x7c, 0xa1, 0x61, 0x37, 0x78, 0x69, 0x88, 0xd2, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x42, 0x2b, 0x24, 0x03, 0x09, 0xad, 0x30, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x68, 0x85, 0x68, 0x20, 0xa1, 0x15, 0xf2, 0x83, 0x07, 0xa0, 0x28, 0x0d, 0xb2, 0x0d, 0x1e, 0x68, 0xcd, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xb4, 0xc2, 0x62, 0x20, 0xa1, 0x15, 0x56, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x42, 0x2b, 0x0c, 0x0e, 0x9e, 0xeb, 0xcd, 0x74, 0xf0, 0xc0, 0x5b, 0xa4, 0x61, 0x37, 0x78, 0x38, 0x94, 0xd1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x46, 0x2b, 0x24, 0x03, 0x19, 0xad, 0x30, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x68, 0x85, 0x68, 0x20, 0xa3, 0x15, 0xf2, 0x83, 0xf7, 0x5c, 0x19, 0x0d, 0xb2, 0x0d, 0x1e, 0x36, 0xce, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xb4, 0xc2, 0x62, 0x20, 0xa3, 0x15, 0x56, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x46, 0x2b, 0x0c, 0x0e, 0x9e, 0xb9, 0xce, 0x74, 0xf0, 0xc0, 0x5b, 0xa4, 0x61, 0x37, 0x78, 0x68, 0x8f, 0xd2, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4a, 0x2b, 0x24, 0x03, 0x29, 0xad, 0x30, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x69, 0x85, 0x68, 0x20, 0xa5, 0x15, 0xf2, 0x83, 0xf7, 0x0f, 0x29, 0x0d, 0xb2, 0x0d, 0x1e, 0x04, 0xcf, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xb4, 0xc2, 0x62, 0x20, 0xa5, 0x15, 0x56, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4a, 0x2b, 0x0c, 0x0e, 0x9e, 0x87, 0xcf, 0x74, 0xf0, 0x00, 0x26, 0xa5, 0x61, 0x37, 0x78, 0x4b, 0x93, 0xd2, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4e, 0x2b, 0x24, 0x03, 0x39, 0xad, 0x30, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x69, 0x85, 0x68, 0x20, 0xa7, 0x15, 0xf2, 0x83, 0xb7, 0x99, 0x19, 0x0d, 0xb2, 0x0d, 0x1e, 0xd2, 0xcf, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xb4, 0xc2, 0x62, 0x20, 0xa7, 0x15, 0x56, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4e, 0x2b, 0x0c, 0x0e, 0x9e, 0x55, 0xd0, 0x74, 0xf0, 0x00, 0x26, 0xa5, 0x61, 0x37, 0x78, 0xa1, 0x96, 0xd2, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x52, 0x2b, 0x24, 0x03, 0x49, 0xad, 0x30, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x6a, 0x85, 0x68, 0x20, 0xa9, 0x15, 0xf2, 0x83, 0x87, 0x83, 0x29, 0x0d, 0xb2, 0x0d, 0x1e, 0xa0, 0xd0, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xb5, 0xc2, 0x62, 0x20, 0xa9, 0x15, 0x56, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x52, 0x2b, 0x0c, 0x0e, 0x9e, 0x23, 0xd1, 0x74, 0xf0, 0x4c, 0x7c, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xab, 0x15, 0x92, 0x81, 0xac, 0x56, 0x98, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xb5, 0x42, 0x34, 0x90, 0xd5, 0x0a, 0xf9, 0xc1, 0x3b, 0x75, 0x8c, 0x06, 0xd9, 0x06, 0xef, 0xb0, 0x68, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x5a, 0x61, 0x31, 0x90, 0xd5, 0x0a, 0xab, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xab, 0x15, 0x06, 0x07, 0xaf, 0xf2, 0x68, 0x3a, 0x78, 0x26, 0xbe, 0xd0, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x15, 0x15, 0x56, 0x03, 0xa9, 0xa8, 0xd0, 0x36, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x54, 0x54, 0x58, 0x0f, 0xa4, 0xa2, 0x42, 0xd9, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x45, 0x85, 0xf9, 0x40, 0x2a, 0x2a, 0x54, 0x0c, 0x92, 0x81, 0xf6, 0x77, 0x07, 0xc3, 0xd0, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x15, 0x15, 0x3a, 0x06, 0x52, 0x51, 0xa1, 0x6b, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xa2, 0x42, 0xc9, 0x40, 0x2a, 0x2a, 0xf4, 0x1c, 0x34, 0x9b, 0x74, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x8a, 0x0a, 0x45, 0x03, 0xa9, 0xa8, 0x50, 0x75, 0x48, 0x1d, 0x1c, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x09, 0x13, 0xd2, 0x81, 0x24, 0x4c, 0xf8, 0x72, 0xf0, 0x34, 0xfd, 0x9e, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xa2, 0x2c, 0x6e, 0x20, 0x6f, 0x16, 0xea, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0xb2, 0xb8, 0x83, 0x67, 0xfb, 0x34, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xb2, 0xb8, 0x83, 0x67, 0xfb, 0x34, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5c, 0x59, 0xfc, 0x40, 0xae, 0x2c, 0xfc, 0x19, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0xb2, 0x10, 0x0c, 0xe4, 0xca, 0x42, 0x78, 0xf0, 0x10, 0x16, 0x81, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x65, 0x21, 0x1d, 0xc8, 0x95, 0x85, 0xc1, 0x41, 0xbb, 0x0a, 0xfc, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x65, 0x61, 0x31, 0x90, 0x2b, 0x0b, 0x77, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xae, 0x2c, 0x4c, 0x06, 0x72, 0x65, 0x61, 0x76, 0xd0, 0xba, 0xac, 0xfb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0xb2, 0xb0, 0x1b, 0xc8, 0x95, 0x85, 0xed, 0x20, 0x19, 0x10, 0xbc, 0x3b, 0x07, 0xe3, 0x5d, 0x67, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xae, 0x2c, 0x8c, 0x07, 0x72, 0x65, 0xe1, 0xcd, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x65, 0xa1, 0x75, 0x20, 0x57, 0x16, 0xce, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5c, 0x59, 0xa8, 0x1d, 0xc8, 0x95, 0x85, 0xea, 0x83, 0xd6, 0xfe, 0xf7, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x65, 0xa1, 0x7b, 0x20, 0x57, 0x16, 0xbe, 0x0c, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x57, 0x16, 0x7e, 0x0c, 0xe4, 0xca, 0xc2, 0x95, 0x83, 0x96, 0x28, 0xf8, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x65, 0xe1, 0xc3, 0x40, 0xae, 0x2c, 0xdc, 0x38, 0x68, 0xf0, 0x81, 0x7f, 0x10, 0x6c, 0x10, 0x64, 0xf1, 0x8b, 0x83, 0x60, 0xe1, 0x37, 0x64, 0x2b, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5c, 0x59, 0xa8, 0x1f, 0xc8, 0x95, 0x85, 0x0b, 0x07, 0x4d, 0x5c, 0xeb, 0x1f, 0xac, 0xc4, 0x17, 0x39, 0x1e, 0x1f, 0x87, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x65, 0xa1, 0x64, 0x20, 0x57, 0x16, 0x4a, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x2b, 0x0b, 0x85, 0x03, 0xb9, 0xb2, 0xd0, 0x79, 0xd0, 0x12, 0x05, 0xff, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xae, 0x2c, 0x94, 0x0d, 0xe4, 0xca, 0x42, 0xdf, 0x41, 0x83, 0x0f, 0xfc, 0x83, 0x60, 0x83, 0x20, 0x8b, 0x5f, 0x1c, 0x04, 0x0b, 0xbf, 0x21, 0x5b, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xca, 0x42, 0xcf, 0x40, 0xae, 0x2c, 0x74, 0x1d, 0x34, 0x71, 0xad, 0x7f, 0xb0, 0x12, 0x5f, 0xe4, 0x78, 0x3c, 0x08, 0x36, 0x08, 0xb2, 0xf8, 0xc5, 0x41, 0xb0, 0xf0, 0x1b, 0xb2, 0x15, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xae, 0x2c, 0xec, 0x07, 0x72, 0x65, 0xa1, 0xe3, 0x60, 0xe1, 0x3b, 0xc9, 0xc1, 0x4a, 0x7c, 0x91, 0xe3, 0xf1, 0x71, 0xe8, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xcb, 0xe2, 0x0e, 0x9e, 0xed, 0xd3, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x65, 0x61, 0x3b, 0x90, 0x2c, 0x0b, 0x07, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xb2, 0x2c, 0x8c, 0x07, 0x92, 0x65, 0xa1, 0x60, 0x90, 0x0c, 0xe4, 0xef, 0x0e, 0x86, 0xa3, 0xf4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xb2, 0xd0, 0x30, 0x90, 0x2c, 0x0b, 0xad, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x59, 0x16, 0x2a, 0x06, 0x92, 0x65, 0xa1, 0x66, 0x90, 0x0c, 0x9c, 0x5a, 0x07, 0xc3, 0xd0, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x64, 0x59, 0xe8, 0x19, 0x48, 0x96, 0x85, 0xb6, 0x43, 0xaa, 0x66, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xb2, 0x2c, 0xd4, 0x0d, 0x24, 0xcb, 0x42, 0xe9, 0x71, 0xe8, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x59, 0x16, 0x6a, 0x07, 0x92, 0x65, 0xa1, 0x7f, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x59, 0x16, 0x8a, 0x07, 0x92, 0x65, 0xa1, 0xfe, 0x90, 0xaa, 0x39, 0xc4, 0xf0, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xcb, 0xe2, 0x0e, 0x9e, 0xed, 0xd3, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x65, 0x21, 0x19, 0xc8, 0x96, 0x85, 0x74, 0x90, 0x6c, 0x30, 0xc4, 0x3f, 0x0e, 0x4e, 0x42, 0xc7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0xb2, 0xb8, 0x83, 0x67, 0xfb, 0x34, 0x0d, 0x82, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x5d, 0x16, 0x92, 0x83, 0x67, 0xfb, 0x34, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0xb2, 0xb8, 0x83, 0x67, 0xfb, 0x34, 0x0d, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x2f, 0x0b, 0xc9, 0x40, 0xbe, 0x2c, 0x6c, 0x0e, 0xeb, 0x7b, 0x1b, 0x4e, 0xb1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x61, 0x16, 0x77, 0xf0, 0x6c, 0x9f, 0xa6, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x66, 0x21, 0x19, 0x48, 0x98, 0x85, 0xdd, 0xb0, 0x1b, 0x3a, 0x8e, 0x2c, 0xec, 0x06, 0x41, 0xaf, 0x7f, 0xb0, 0x3c, 0xbf, 0xeb, 0x70, 0xb4, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xcc, 0xe2, 0x07, 0x32, 0x66, 0x21, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x98, 0x85, 0x64, 0x20, 0x63, 0x16, 0xd2, 0x43, 0xea, 0xe0, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x65, 0x16, 0x77, 0xf0, 0x6c, 0x9f, 0xa6, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x32, 0x0b, 0xc9, 0x40, 0xca, 0x2c, 0xa4, 0x83, 0x64, 0xc0, 0xd2, 0xf7, 0xbe, 0x83, 0x63, 0x56, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xce, 0x2c, 0xee, 0xe0, 0xd9, 0x3e, 0x4d, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x67, 0x16, 0x92, 0x81, 0x9c, 0x59, 0x48, 0x0f, 0xda, 0x64, 0x63, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x67, 0x16, 0xf2, 0x81, 0x9c, 0x59, 0x58, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9c, 0x59, 0x98, 0x0d, 0xe4, 0xcc, 0xc2, 0xf8, 0x30, 0x2e, 0xc7, 0xe3, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0xb3, 0xb8, 0x83, 0x67, 0xfb, 0x34, 0x0d, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x66, 0x71, 0x07, 0xcf, 0xf6, 0x69, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x66, 0x71, 0x07, 0xcf, 0xf6, 0x69, 0x1a, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x6d, 0x16, 0x92, 0x81, 0xb4, 0x59, 0x18, 0x1c, 0x3a, 0x8e, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xcd, 0xe2, 0x0e, 0x9e, 0xed, 0xd3, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x37, 0x8b, 0x1f, 0xc8, 0x9b, 0x85, 0xc5, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xde, 0x2c, 0x04, 0x03, 0x79, 0xb3, 0x10, 0x1f, 0xe2, 0x3f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xcd, 0x42, 0x3e, 0x90, 0x37, 0x0b, 0x83, 0x43, 0xea, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x6f, 0x16, 0x26, 0x03, 0x79, 0xb3, 0xd0, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x37, 0x0b, 0x9b, 0x81, 0xbc, 0x59, 0x28, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0xb3, 0x30, 0x1a, 0xc8, 0x9b, 0x85, 0xe1, 0xc1, 0x23, 0x4f, 0x6c, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x66, 0x61, 0x39, 0x90, 0x37, 0x0b, 0xbd, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x8b, 0x83, 0x60, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xcd, 0xc2, 0x76, 0x20, 0x6f, 0x16, 0x8a, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xde, 0x2c, 0x8c, 0x07, 0xf2, 0x66, 0xa1, 0xe0, 0x60, 0xa1, 0x6a, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xde, 0x2c, 0x34, 0x0c, 0xe4, 0xcd, 0x42, 0xcf, 0x21, 0xfe, 0xc7, 0xa1, 0x0d, 0xd2, 0x9f, 0x9e, 0x07, 0xc1, 0x0a, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x9b, 0x85, 0xae, 0x81, 0xbc, 0x59, 0x68, 0x1d, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0xb3, 0x50, 0x36, 0x90, 0x37, 0x0b, 0x85, 0x07, 0x0b, 0x55, 0x4b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x66, 0xa1, 0x71, 0x20, 0x6f, 0x16, 0x4a, 0x0f, 0xd1, 0x3c, 0x0e, 0x1d, 0x62, 0x78, 0xb0, 0x9a, 0x01, 0xe8, 0x60, 0x35, 0x03, 0xd0, 0xf1, 0xed, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xcd, 0x42, 0xf3, 0x40, 0xde, 0x2c, 0x94, 0x1f, 0xc6, 0xe5, 0x10, 0xc3, 0xc3, 0x29, 0x76, 0x3c, 0x3e, 0x0e, 0x1d, 0x87, 0x8e, 0x6f, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0x9e, 0x90, 0x0e, 0x24, 0x79, 0xc2, 0x9b, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xc9, 0x13, 0xe2, 0x81, 0x24, 0x4f, 0x98, 0x0c, 0x92, 0x81, 0xf6, 0x4b, 0x87, 0x15, 0xda, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x24, 0x4f, 0xd8, 0x0c, 0x24, 0x79, 0xc2, 0xe8, 0xa0, 0xd8, 0x20, 0x3c, 0x34, 0x7f, 0x39, 0x1e, 0x1f, 0x87, 0x0e, 0x8d, 0x5a, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x27, 0x8a, 0x1b, 0x48, 0x14, 0x85, 0x64, 0xd8, 0x0d, 0x82, 0x61, 0x7f, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x4f, 0x14, 0x92, 0x81, 0x3c, 0x51, 0x98, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x89, 0x42, 0x34, 0x90, 0x27, 0x0a, 0x83, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x3c, 0x51, 0xc8, 0x06, 0xf2, 0x44, 0x21, 0x1d, 0x76, 0xe1, 0x36, 0x18, 0x3f, 0x5d, 0x87, 0xa3, 0xfd, 0xd0, 0xe6, 0x71, 0x90, 0x6d, 0xf0, 0x68, 0x1b, 0xa7, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x4f, 0x14, 0xe2, 0x81, 0x3c, 0x51, 0xc8, 0x0f, 0x5e, 0x99, 0xee, 0x33, 0xc8, 0x36, 0x78, 0x0f, 0x8d, 0xd3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x27, 0x0a, 0x9b, 0x81, 0x3c, 0x51, 0x58, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0xa2, 0xb0, 0x38, 0x78, 0xf8, 0x90, 0xd3, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x27, 0x0a, 0xa3, 0x81, 0x3c, 0x51, 0xd8, 0x1d, 0xbc, 0x28, 0x84, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x4f, 0x14, 0x86, 0x03, 0x79, 0xa2, 0x30, 0x3e, 0x78, 0x35, 0x20, 0xd3, 0x71, 0xe8, 0xd0, 0x41, 0x63, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x14, 0xc5, 0x1d, 0x3c, 0x5a, 0xc6, 0x69, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0xc1, 0xab, 0x01, 0x99, 0x0e, 0x8d, 0x5a, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x2b, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xba, 0x2b, 0xa4, 0x03, 0xe9, 0xae, 0x50, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xee, 0x0a, 0x9b, 0x81, 0x74, 0x57, 0x98, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0xae, 0x10, 0x1f, 0x3c, 0x4c, 0xcb, 0x69, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x77, 0x85, 0xd1, 0x40, 0xba, 0x2b, 0x0c, 0x0f, 0xde, 0x8f, 0x50, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xee, 0x0a, 0xcb, 0x81, 0x74, 0x57, 0x58, 0x1f, 0xbc, 0x1e, 0x86, 0xe8, 0x38, 0x74, 0x48, 0xc3, 0x0d, 0xb2, 0x0d, 0x1e, 0x60, 0xe5, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xbb, 0x42, 0xc7, 0x40, 0xba, 0x2b, 0xf4, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0xae, 0xb0, 0x3f, 0x78, 0x4f, 0x9a, 0xd3, 0xc1, 0x33, 0x4e, 0x95, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x0b, 0x82, 0xc5, 0x99, 0x99, 0x39, 0x78, 0xf8, 0x94, 0xc1, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x71, 0xc5, 0x0d, 0xe4, 0xba, 0xe2, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x5c, 0x21, 0x1d, 0xc8, 0x71, 0x85, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xe3, 0x0a, 0xc9, 0xc1, 0x23, 0xe7, 0x9c, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1c, 0x57, 0x88, 0x07, 0x72, 0x5c, 0x61, 0x72, 0xf0, 0x46, 0x80, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1c, 0x57, 0xd8, 0x0c, 0xe4, 0xb8, 0xc2, 0x6e, 0x90, 0x0c, 0x08, 0xbc, 0xbe, 0xe3, 0xf1, 0x71, 0xe8, 0x90, 0x86, 0x1b, 0x64, 0x1b, 0xbc, 0xea, 0xcd, 0x69, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xc9, 0x15, 0xd2, 0x81, 0x24, 0x57, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0xae, 0x90, 0x1c, 0x3c, 0x58, 0xd0, 0x69, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x72, 0x85, 0x78, 0x20, 0xc9, 0x15, 0x26, 0x07, 0x6f, 0x04, 0x28, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x72, 0x85, 0xcd, 0x40, 0x92, 0x2b, 0xec, 0x0e, 0x9e, 0xe7, 0xe7, 0x74, 0x1c, 0x3a, 0x34, 0x05, 0x1a, 0x64, 0x1b, 0xbc, 0xea, 0xcd, 0x69, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xcb, 0x15, 0xd2, 0x81, 0x2c, 0x57, 0x68, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x5c, 0x21, 0x39, 0x78, 0x68, 0xa4, 0xd3, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xe5, 0x0a, 0xf1, 0x40, 0x96, 0x2b, 0x4c, 0x0e, 0xde, 0x08, 0x50, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0xae, 0xb0, 0x19, 0xc8, 0x72, 0x85, 0x92, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x2c, 0x57, 0x58, 0x0e, 0x64, 0xb9, 0xc2, 0x7a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x72, 0x85, 0xd1, 0xc1, 0x1b, 0x3f, 0x9d, 0x06, 0xc1, 0x06, 0xaf, 0x3a, 0x55, 0x3a, 0xa4, 0xe1, 0x06, 0xd9, 0x06, 0x4f, 0xd9, 0x74, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x5c, 0x61, 0x3f, 0x90, 0xe5, 0x0a, 0x1d, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x96, 0x2b, 0xcc, 0x0f, 0x5e, 0x69, 0xea, 0x74, 0xf0, 0x4c, 0x7c, 0xa1, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x71, 0xe8, 0xd0, 0x89, 0x68, 0x90, 0x6d, 0xf0, 0xaa, 0x37, 0xa7, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x34, 0x57, 0x48, 0x07, 0xd2, 0x5c, 0xa1, 0x6b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x73, 0x85, 0xe4, 0xe0, 0x49, 0xae, 0x4e, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x9a, 0x2b, 0xc4, 0x03, 0x69, 0xae, 0x30, 0x39, 0x78, 0x23, 0x40, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xe7, 0x52, 0x35, 0x2c, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x34, 0x57, 0xd8, 0x0c, 0xa4, 0xb9, 0x42, 0xd5, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x9a, 0x2b, 0x2c, 0x07, 0xd2, 0x5c, 0x61, 0x3d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xb9, 0xc2, 0xe8, 0xe0, 0x69, 0xbc, 0x4e, 0x07, 0x4f, 0x15, 0x75, 0x1a, 0x64, 0x1b, 0xbc, 0x00, 0xd7, 0x69, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xcd, 0x15, 0xf6, 0x03, 0x69, 0xae, 0xd0, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xb9, 0xc2, 0xfc, 0xe0, 0xe5, 0xc2, 0x4e, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc9, 0x06, 0x8b, 0xeb, 0x91, 0x0e, 0x82, 0x9c, 0xff, 0xd0, 0x14, 0x68, 0x90, 0x6d, 0xf0, 0x02, 0x5c, 0xa7, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xcd, 0x15, 0x5a, 0x06, 0xd2, 0x5c, 0xa1, 0x69, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x73, 0x85, 0x92, 0x83, 0xa7, 0x2c, 0x3b, 0x1d, 0x3c, 0x90, 0x48, 0xe8, 0xd0, 0xfc, 0xe5, 0x78, 0x7c, 0x1c, 0x3a, 0x58, 0xc2, 0xff, 0x33, 0xc8, 0x36, 0x78, 0xd5, 0x9b, 0xd3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x9e, 0x2b, 0xa4, 0x03, 0x79, 0xae, 0xd0, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xb9, 0x42, 0x72, 0xf0, 0x82, 0x69, 0xa7, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xcf, 0x15, 0xe2, 0x81, 0x3c, 0x57, 0x98, 0x1c, 0xbc, 0x11, 0xa0, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x5c, 0x61, 0x33, 0x90, 0xe7, 0x0a, 0x25, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0xae, 0xb0, 0x1c, 0xc8, 0x73, 0x85, 0xf5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xe7, 0x0a, 0xa3, 0x83, 0xc7, 0x83, 0x3b, 0x1d, 0x3c, 0x55, 0xd4, 0x69, 0x90, 0x6d, 0xf0, 0x46, 0x6e, 0xa7, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xcf, 0x15, 0xf6, 0x03, 0x79, 0xae, 0xd0, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xb9, 0xc2, 0xfc, 0xe0, 0x65, 0xe7, 0x4e, 0x07, 0x0f, 0xbc, 0x45, 0x3a, 0x34, 0x7f, 0x39, 0x1e, 0x1f, 0x87, 0x0e, 0xde, 0x73, 0x98, 0x31, 0xc8, 0x36, 0x78, 0xd5, 0x9b, 0xd3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xa2, 0x2b, 0xa4, 0x03, 0x89, 0xae, 0xd0, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xba, 0x42, 0x72, 0xf0, 0xa2, 0x77, 0xa7, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xd1, 0x15, 0xe2, 0x81, 0x44, 0x57, 0x98, 0x1c, 0xbc, 0x11, 0xa0, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0xc8, 0x7f, 0x58, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0xae, 0xb0, 0x19, 0x48, 0x74, 0x85, 0x92, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x44, 0x57, 0x58, 0x0e, 0x24, 0xba, 0xc2, 0x7a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x74, 0x85, 0xd1, 0xc1, 0x9b, 0xfa, 0x9d, 0x0e, 0x9e, 0x2a, 0xea, 0x34, 0xc8, 0x36, 0x78, 0x3a, 0xbe, 0xd3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xe8, 0x0a, 0xfb, 0x81, 0x44, 0x57, 0xe8, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x5d, 0x61, 0x7e, 0xf0, 0xe0, 0x81, 0xa7, 0x83, 0x07, 0x30, 0x29, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x8f, 0x43, 0x07, 0x0f, 0xf1, 0xcc, 0x18, 0x64, 0x1b, 0xbc, 0xea, 0xcd, 0x69, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xd3, 0x15, 0xd2, 0x81, 0x4c, 0x57, 0xe8, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x5d, 0x21, 0x39, 0x78, 0xe8, 0xc2, 0xd3, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xe9, 0x0a, 0xf1, 0x40, 0xa6, 0x2b, 0x4c, 0x0e, 0xde, 0x08, 0x50, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0xe4, 0x3f, 0x2c, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4c, 0x57, 0xd8, 0x0c, 0x64, 0xba, 0x42, 0xd5, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xa6, 0x2b, 0x2c, 0x07, 0x32, 0x5d, 0x61, 0x3d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xba, 0xc2, 0xe8, 0xe0, 0xa9, 0x19, 0x4f, 0x07, 0x4f, 0x15, 0x75, 0x1a, 0x64, 0x1b, 0xbc, 0xa8, 0xe2, 0x69, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xd3, 0x15, 0xf6, 0x03, 0x99, 0xae, 0xd0, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xba, 0xc2, 0xfc, 0xe0, 0x25, 0x20, 0x4f, 0x83, 0x60, 0x83, 0xd7, 0xbe, 0x22, 0x1d, 0x9a, 0x02, 0x0d, 0xb2, 0x0d, 0x5e, 0x54, 0xf1, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xba, 0x42, 0xcb, 0x40, 0xa6, 0x2b, 0x34, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0xae, 0x50, 0x72, 0xf0, 0x9e, 0x93, 0xa7, 0x83, 0x07, 0x12, 0x09, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x8f, 0x43, 0x07, 0x0f, 0xa5, 0xcd, 0x18, 0x64, 0x1b, 0xbc, 0xea, 0xcd, 0x69, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x75, 0x85, 0x68, 0x20, 0xd5, 0x15, 0xe2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xd5, 0x15, 0x92, 0x83, 0x67, 0xbc, 0x3c, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x24, 0x03, 0x02, 0x5d, 0xee, 0x20, 0xc8, 0xf9, 0x0f, 0x5e, 0xe8, 0x9c, 0x71, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x45, 0x71, 0x03, 0xe9, 0xa2, 0xf8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x64, 0x51, 0xc8, 0x06, 0x92, 0x45, 0x61, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x8b, 0x42, 0x32, 0x90, 0x2c, 0x0a, 0x27, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x64, 0x51, 0x08, 0x07, 0x92, 0x45, 0x61, 0x70, 0xf0, 0x46, 0x80, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x64, 0x51, 0x58, 0x0c, 0x24, 0x8b, 0xc2, 0xea, 0xe0, 0xfd, 0xde, 0x45, 0xc7, 0xa1, 0x43, 0x1a, 0x6e, 0x90, 0x6d, 0xf0, 0x36, 0x9b, 0xa7, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x5b, 0x14, 0xb2, 0x81, 0x6c, 0x51, 0xa8, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x45, 0x21, 0x19, 0xc8, 0x16, 0x85, 0x1b, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xb6, 0x28, 0x84, 0x03, 0xd9, 0xa2, 0x90, 0x1f, 0xbc, 0xaa, 0x49, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x6c, 0x51, 0x18, 0x0c, 0x64, 0x8b, 0xc2, 0xe8, 0x60, 0xa9, 0xba, 0xcf, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x6c, 0x51, 0x58, 0x0d, 0x64, 0x8b, 0x42, 0xcb, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x16, 0x85, 0xd9, 0x40, 0xb6, 0x28, 0x4c, 0x0f, 0xde, 0x9b, 0x41, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xb6, 0x28, 0x6c, 0x07, 0xb2, 0x45, 0x61, 0x7f, 0xf0, 0x0c, 0xef, 0x80, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0xa2, 0x50, 0x30, 0x90, 0x2d, 0x0a, 0x25, 0x07, 0x29, 0x1f, 0x17, 0xc7, 0xa1, 0xe3, 0xd0, 0xa1, 0x83, 0xc6, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x10, 0x2c, 0x1e, 0x3c, 0xa4, 0x1a, 0x69, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x74, 0xe2, 0x06, 0xb2, 0x3a, 0xf1, 0xc3, 0x6e, 0xf0, 0xbc, 0x8f, 0xa4, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x94, 0x4e, 0x48, 0x06, 0x52, 0x3a, 0xe1, 0xc3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4a, 0x27, 0x44, 0x03, 0x29, 0x9d, 0x10, 0x1f, 0xbc, 0xb5, 0x24, 0x69, 0x90, 0x6d, 0xf0, 0xa2, 0xb4, 0xa7, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xa5, 0x13, 0xf2, 0x81, 0x94, 0x4e, 0x18, 0x1c, 0x0c, 0xcd, 0xdf, 0x61, 0x37, 0x78, 0xf0, 0x4a, 0xd2, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4e, 0x27, 0x24, 0x03, 0x39, 0x9d, 0xf0, 0x61, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xa7, 0x13, 0xa2, 0x81, 0x9c, 0x4e, 0x88, 0x0f, 0x1e, 0x20, 0x93, 0x34, 0xc8, 0x36, 0x78, 0xe0, 0xdc, 0xd3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xd3, 0x09, 0x8b, 0x81, 0x9c, 0x4e, 0x58, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0x9d, 0x90, 0x1f, 0x3c, 0x78, 0xef, 0xe9, 0xe0, 0x6d, 0x22, 0x46, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x52, 0x27, 0x24, 0x03, 0x49, 0x9d, 0xf0, 0x66, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xa9, 0x13, 0xa2, 0x81, 0xa4, 0x4e, 0x88, 0x0f, 0x1e, 0x0f, 0x94, 0x34, 0xc8, 0x36, 0x78, 0xe8, 0xdf, 0xd3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x52, 0x27, 0x2c, 0x06, 0x92, 0x3a, 0x61, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x75, 0x42, 0x7e, 0xf0, 0xf4, 0xc3, 0xa7, 0x83, 0xc7, 0x9b, 0x6d, 0x0c, 0xb2, 0x0d, 0x1e, 0xfa, 0xf7, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x75, 0xc2, 0x70, 0x20, 0xa9, 0x13, 0xc6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x52, 0x27, 0xcc, 0x0e, 0x9e, 0xe5, 0xf8, 0x74, 0xf0, 0x0a, 0xa5, 0xa3, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x36, 0x2a, 0x6e, 0x20, 0x2b, 0x15, 0x86, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x74, 0x54, 0xdc, 0xc1, 0x33, 0x29, 0x9f, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x7c, 0x54, 0xdc, 0xc1, 0x33, 0x29, 0x9f, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x42, 0x2a, 0x7e, 0x20, 0x25, 0x15, 0x1a, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x42, 0x2a, 0x64, 0x03, 0x09, 0xa9, 0x90, 0x1f, 0x3c, 0x31, 0xc6, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x84, 0x54, 0x58, 0x0c, 0x24, 0xa4, 0x42, 0xfd, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x48, 0x85, 0xc9, 0x40, 0x42, 0x2a, 0xcc, 0x06, 0xc9, 0xc0, 0xad, 0x75, 0x30, 0xde, 0x75, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x48, 0x85, 0xdd, 0x40, 0x42, 0x2a, 0x6c, 0x0f, 0xa9, 0x83, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0xa9, 0x30, 0x1e, 0x48, 0x48, 0x85, 0xf6, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x90, 0x0a, 0xeb, 0x81, 0x84, 0x54, 0x68, 0x38, 0x68, 0xed, 0x7f, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x21, 0x15, 0x2a, 0x06, 0x12, 0x52, 0xa1, 0x7c, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xa4, 0x42, 0xc7, 0x40, 0x42, 0x2a, 0xf4, 0x1c, 0xb4, 0x69, 0xba, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x42, 0x2a, 0x14, 0x0d, 0x24, 0xa4, 0x42, 0xe3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x42, 0x2a, 0x34, 0x0d, 0x24, 0xa4, 0x42, 0xd9, 0x20, 0xd9, 0x60, 0x8d, 0x1e, 0xc9, 0xc1, 0x78, 0xd7, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x52, 0xa1, 0x6d, 0x20, 0x21, 0x15, 0x0a, 0x0f, 0xde, 0x05, 0xfc, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x21, 0x15, 0x2a, 0x07, 0x12, 0x52, 0xa1, 0x7b, 0xf8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x84, 0x54, 0xe8, 0x3d, 0x78, 0xca, 0xf1, 0xd3, 0x20, 0x19, 0x8c, 0x0e, 0x02, 0xde, 0xff, 0xa0, 0x7d, 0xe2, 0xf7, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x23, 0x15, 0x7f, 0xf0, 0x7c, 0xce, 0xa7, 0x41, 0xb0, 0xc1, 0x9a, 0x96, 0xa3, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x25, 0x15, 0x7f, 0xf0, 0x7c, 0xce, 0xa7, 0x61, 0x17, 0x04, 0x0b, 0x92, 0xc1, 0x9d, 0x83, 0x61, 0xe8, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc3, 0x2f, 0x08, 0x36, 0x68, 0x08, 0x13, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x71, 0x0d, 0x75, 0x64, 0x83, 0x57, 0x1d, 0xf0, 0x1c, 0x3c, 0x3f, 0x81, 0xe7, 0x70, 0x8a, 0x1d, 0x87, 0x8e, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x25, 0x15, 0xf2, 0x81, 0x94, 0x54, 0x28, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x29, 0xa9, 0x30, 0x18, 0x48, 0x49, 0x85, 0xd1, 0xc1, 0x88, 0x6d, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x25, 0x15, 0x56, 0x03, 0x29, 0xa9, 0x30, 0x1d, 0x04, 0x1b, 0x34, 0x84, 0x09, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xe2, 0x41, 0x8b, 0x6d, 0x03, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4a, 0x2a, 0x0c, 0x07, 0x52, 0x52, 0x61, 0x79, 0x88, 0xe1, 0x71, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4a, 0x2a, 0x6c, 0x07, 0x52, 0x52, 0x61, 0x7f, 0x48, 0x1d, 0x1c, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0x85, 0xdf, 0xe0, 0x81, 0xda, 0x4f, 0xc7, 0xf3, 0xc3, 0x29, 0x76, 0x3c, 0x3e, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0xa9, 0xb8, 0x83, 0x67, 0x52, 0x3e, 0x0d, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x93, 0x0a, 0xc9, 0x40, 0x4e, 0x2a, 0x0c, 0x87, 0xdd, 0x60, 0x74, 0xac, 0x1f, 0x3c, 0xa5, 0x0c, 0x62, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x29, 0x15, 0x3f, 0x90, 0x94, 0x0a, 0xf1, 0x41, 0x48, 0x81, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0xa9, 0xb8, 0x83, 0x67, 0x52, 0x3e, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xa5, 0x62, 0x07, 0xb2, 0x52, 0x21, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x4a, 0xc5, 0x0f, 0x64, 0xa5, 0x42, 0x72, 0x38, 0xda, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xac, 0x54, 0x88, 0x06, 0xb2, 0x52, 0x21, 0x3b, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x4a, 0x85, 0x74, 0x20, 0x2b, 0x15, 0x76, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x2b, 0x15, 0xe2, 0x81, 0xac, 0x54, 0x18, 0x0c, 0x92, 0x41, 0xd5, 0xc1, 0x70, 0x94, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x4a, 0x85, 0xc5, 0x40, 0x56, 0x2a, 0xcc, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0x82, 0x60, 0x83, 0xf7, 0xda, 0xf8, 0x2c, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xdc, 0x4a, 0xdc, 0x40, 0x02, 0x26, 0x7e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xad, 0xc4, 0x1d, 0xbc, 0x2b, 0x02, 0x6a, 0xd8, 0x0d, 0x9e, 0xa3, 0x12, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x5b, 0x09, 0xc9, 0x40, 0x6e, 0x25, 0x5c, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xad, 0x84, 0x68, 0x20, 0xb7, 0x12, 0xf2, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x9e, 0xa6, 0x12, 0xb4, 0xc1, 0xd3, 0x54, 0x82, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0xe0, 0x59, 0x15, 0x50, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x6e, 0x25, 0x0c, 0x06, 0x72, 0x2b, 0x61, 0x71, 0x30, 0x34, 0x7f, 0x87, 0xdd, 0xe0, 0x5d, 0x36, 0x41, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0x95, 0x90, 0x0c, 0x24, 0x57, 0xc2, 0xa3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe4, 0x4a, 0x88, 0x06, 0x92, 0x2b, 0x21, 0x1f, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0x8d, 0x36, 0x41, 0x1b, 0xbc, 0xd1, 0x26, 0xe8, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0x9e, 0x12, 0x02, 0xb5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x5c, 0x09, 0xa3, 0x81, 0xe4, 0x4a, 0xd8, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0x95, 0x30, 0x38, 0x78, 0xc0, 0x0a, 0xd4, 0x20, 0xd8, 0xe0, 0x61, 0x7b, 0x3d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x56, 0x65, 0xd0, 0x1c, 0x7a, 0x08, 0x1d, 0x87, 0x06, 0xd9, 0x06, 0x4f, 0x09, 0x81, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x2b, 0x61, 0x3c, 0x90, 0x5c, 0x09, 0x05, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x72, 0x25, 0x0c, 0x0f, 0x5e, 0x39, 0x03, 0x35, 0x08, 0x16, 0x7e, 0x43, 0x72, 0xe9, 0xa0, 0x29, 0xf4, 0xa5, 0x43, 0x0b, 0xb0, 0x61, 0x37, 0x78, 0x20, 0x4a, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x76, 0x25, 0x24, 0x03, 0xd9, 0x95, 0x70, 0x67, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xbb, 0x12, 0xa2, 0x81, 0xec, 0x4a, 0xc8, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x78, 0x2c, 0x4a, 0xd0, 0x06, 0x8f, 0x45, 0x09, 0x3a, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x87, 0xe5, 0x40, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0x95, 0x30, 0x18, 0xc8, 0xae, 0x84, 0xc5, 0xc1, 0xd0, 0xfc, 0x1d, 0x76, 0x83, 0x87, 0x2a, 0x05, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x57, 0x42, 0x32, 0x90, 0x5e, 0x09, 0x47, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x2b, 0x21, 0x1a, 0x48, 0xaf, 0x84, 0x7c, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x47, 0x2b, 0x05, 0x6d, 0xf0, 0x68, 0xa5, 0xa0, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x78, 0x4c, 0x11, 0xd4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x5e, 0x09, 0xa3, 0x81, 0xf4, 0x4a, 0xd8, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0x95, 0x30, 0x38, 0x78, 0xc0, 0x13, 0xd4, 0x20, 0xd8, 0xe0, 0x61, 0x7b, 0x3d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x56, 0x65, 0xd0, 0x1c, 0xf2, 0xb5, 0xc7, 0xa1, 0x61, 0x37, 0x78, 0x05, 0x4e, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x7e, 0x25, 0x24, 0x03, 0xf9, 0x95, 0xf0, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xbf, 0x12, 0xa2, 0x81, 0xfc, 0x4a, 0xc8, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x78, 0x11, 0x4e, 0xd0, 0x06, 0x2f, 0xc2, 0x09, 0x3a, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x07, 0x57, 0x41, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0x95, 0x30, 0x1a, 0xc8, 0xaf, 0x84, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x5f, 0x09, 0x83, 0x83, 0x47, 0x7e, 0x41, 0x1d, 0xbc, 0xeb, 0x70, 0x69, 0xd8, 0x0d, 0x9e, 0xec, 0x13, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x60, 0x09, 0xc9, 0x40, 0x82, 0x25, 0x5c, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xb0, 0x84, 0x68, 0x20, 0xc1, 0x12, 0xf2, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x9e, 0xef, 0x13, 0xb4, 0xc1, 0xf3, 0x7d, 0x82, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0xe0, 0x39, 0x64, 0x50, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0x96, 0x30, 0x1a, 0x48, 0xb0, 0x84, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x60, 0x09, 0x83, 0x83, 0x47, 0xb8, 0x41, 0x1d, 0x3c, 0xf6, 0xa8, 0x68, 0x90, 0x6d, 0xf0, 0x1c, 0x32, 0xa8, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xc1, 0x12, 0xd6, 0x03, 0x09, 0x96, 0xd0, 0x30, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x58, 0xc2, 0xf2, 0xe0, 0x85, 0x74, 0x50, 0x83, 0x60, 0x83, 0x67, 0x26, 0x23, 0x1d, 0x5a, 0x80, 0x0d, 0xbb, 0xc1, 0xc3, 0xee, 0x81, 0x16, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0x96, 0x30, 0x19, 0xc8, 0xb0, 0x84, 0xed, 0xc1, 0xd3, 0x81, 0x7c, 0x86, 0x5d, 0xb8, 0x0d, 0x1e, 0x79, 0x0f, 0x74, 0x10, 0x52, 0xe0, 0x07, 0x63, 0x61, 0x74, 0xd8, 0x0d, 0x9e, 0x91, 0x14, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x62, 0x09, 0xc9, 0x40, 0x8a, 0x25, 0x5c, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xb1, 0x84, 0x68, 0x20, 0xc5, 0x12, 0xf2, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x9e, 0x94, 0x14, 0xb4, 0xc1, 0x93, 0x92, 0x82, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0xe0, 0xb9, 0x7f, 0x50, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x29, 0x96, 0x30, 0x1a, 0x48, 0xb1, 0x84, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x62, 0x09, 0x83, 0x83, 0x47, 0x26, 0x42, 0x1d, 0x3c, 0xf6, 0xa8, 0x68, 0x90, 0x6d, 0xf0, 0xdc, 0x3f, 0xa8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x14, 0x4b, 0x58, 0x0f, 0xa4, 0x58, 0xc2, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xb1, 0x84, 0xe5, 0xc1, 0x1b, 0x20, 0xa1, 0x0e, 0xde, 0xe3, 0x95, 0x31, 0xc8, 0x36, 0x78, 0xee, 0x1f, 0xd4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x62, 0x09, 0x1d, 0x03, 0x29, 0x96, 0xd0, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x58, 0xc2, 0xfe, 0xe0, 0x85, 0x96, 0x50, 0x83, 0x60, 0x83, 0x47, 0x57, 0x0f, 0x1d, 0xba, 0x1f, 0x0d, 0xbb, 0xc1, 0x53, 0x5b, 0x82, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x2c, 0x21, 0x19, 0xc8, 0xb3, 0x84, 0x6c, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xc7, 0x12, 0xd2, 0x81, 0x1c, 0x4b, 0x38, 0x32, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0xb3, 0x5b, 0x82, 0x36, 0x78, 0x76, 0x4b, 0xd0, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0xbc, 0x79, 0x13, 0x6a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xc9, 0x12, 0x16, 0x03, 0x49, 0x96, 0xb0, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x2c, 0x21, 0x1d, 0x48, 0xb2, 0x84, 0x0f, 0x07, 0x8f, 0x3d, 0x2a, 0x1a, 0x64, 0x1b, 0xbc, 0x79, 0x13, 0x6a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xcb, 0x12, 0x16, 0x03, 0x59, 0x96, 0xb0, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x2c, 0x21, 0x3d, 0x78, 0x09, 0x2b, 0xd4, 0x20, 0xd8, 0xe0, 0x61, 0x7b, 0x3d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x0e, 0xf5, 0xb6, 0x87, 0xc6, 0x45, 0xc7, 0xa1, 0x41, 0xb6, 0xc1, 0x9b, 0x37, 0xa1, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x2c, 0x61, 0x39, 0x90, 0x65, 0x09, 0xeb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xcb, 0x12, 0x56, 0x07, 0xaf, 0xa5, 0x85, 0x1a, 0x04, 0x1b, 0xbc, 0x2e, 0x5d, 0xe8, 0x60, 0x09, 0xff, 0xcf, 0x20, 0xdb, 0xe0, 0xcd, 0x9b, 0x50, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0x96, 0xd0, 0x31, 0x90, 0x65, 0x09, 0x3d, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x96, 0x25, 0xec, 0x07, 0xb2, 0x2c, 0xe1, 0xc3, 0x20, 0xd8, 0xe0, 0xb5, 0x1b, 0x42, 0x07, 0xef, 0x39, 0xcc, 0x18, 0x64, 0x1b, 0xbc, 0x79, 0x13, 0x6a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xb3, 0x84, 0xc5, 0x40, 0x9a, 0x25, 0xac, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x34, 0x4b, 0x48, 0x07, 0xd2, 0x2c, 0xe1, 0xc3, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x83, 0xd5, 0xbd, 0x30, 0x07, 0x8d, 0x4e, 0x28, 0x0d, 0xbb, 0xc1, 0x1b, 0x66, 0x82, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x2d, 0x21, 0x19, 0x48, 0xb6, 0x84, 0x6c, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xd1, 0x12, 0xd2, 0x81, 0x44, 0x4b, 0xf8, 0x31, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0x7b, 0x66, 0x82, 0x36, 0x78, 0xcf, 0x4c, 0xd0, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0xbc, 0x25, 0x19, 0x6a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xd3, 0x12, 0x16, 0x03, 0x99, 0x96, 0xb0, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x2d, 0x21, 0x1d, 0xc8, 0xb4, 0x84, 0x23, 0x07, 0x8f, 0x3d, 0x2a, 0x1a, 0x64, 0x1b, 0xbc, 0x25, 0x19, 0x6a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xd5, 0x12, 0x16, 0x03, 0xa9, 0x96, 0xb0, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x2d, 0x21, 0x1d, 0x48, 0xb5, 0x84, 0x1b, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc9, 0x80, 0xe1, 0x5f, 0x75, 0x3c, 0x3e, 0x74, 0x22, 0x1a, 0x64, 0x1b, 0xbc, 0x25, 0x19, 0x6a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xb5, 0x84, 0xc5, 0x40, 0xae, 0x25, 0x74, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0x96, 0x90, 0x0e, 0xe4, 0x5a, 0xc2, 0x87, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xd7, 0x12, 0x26, 0x03, 0xb9, 0x96, 0x30, 0x3b, 0x78, 0x23, 0x40, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x71, 0x83, 0x07, 0xa5, 0x6f, 0x1c, 0xbc, 0xb4, 0x74, 0x69, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x5a, 0xc2, 0x6e, 0x20, 0xd7, 0x12, 0x2a, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x2d, 0x61, 0x38, 0x90, 0x6b, 0x09, 0xe3, 0x41, 0xb0, 0xc1, 0xc3, 0xb9, 0xa1, 0x0e, 0x69, 0xb8, 0x41, 0xb6, 0xc1, 0xe3, 0xd7, 0xa1, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5c, 0x4b, 0x58, 0x0f, 0xe4, 0x5a, 0x42, 0xc3, 0x20, 0xd8, 0xe0, 0x99, 0xc6, 0x50, 0x87, 0x0e, 0x1a, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xd0, 0xa1, 0xfb, 0xd1, 0xb0, 0x1b, 0x3c, 0x34, 0x27, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xdb, 0x12, 0x92, 0x81, 0x6c, 0x4b, 0xb8, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x6d, 0x09, 0xd1, 0x40, 0xb6, 0x25, 0xe4, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x3c, 0x3a, 0x27, 0x68, 0x83, 0x47, 0xe7, 0x04, 0x1d, 0x4e, 0xb1, 0x41, 0xb6, 0xc1, 0x7b, 0xf1, 0xa1, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x2d, 0x61, 0x34, 0x90, 0x6d, 0x09, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xdb, 0x12, 0x06, 0x07, 0xaf, 0x14, 0x88, 0x1a, 0x04, 0x1b, 0xbc, 0xea, 0x54, 0xe9, 0xd0, 0x14, 0x68, 0x90, 0x6d, 0xf0, 0x5e, 0x7c, 0xa8, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xdb, 0x12, 0xd6, 0x03, 0xd9, 0x96, 0xd0, 0x30, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x5b, 0xc2, 0xf2, 0xe0, 0xa5, 0x09, 0x51, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x0e, 0x9e, 0x18, 0xbb, 0x70, 0x68, 0x01, 0x36, 0xec, 0x06, 0x0f, 0x0d, 0x09, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xb7, 0x84, 0x64, 0x20, 0xdd, 0x12, 0xde, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x5b, 0x42, 0x34, 0x90, 0x6e, 0x09, 0xf9, 0xc1, 0xa3, 0x6e, 0x87, 0x06, 0xd9, 0x06, 0xaf, 0x7b, 0x88, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x2d, 0x61, 0x34, 0x90, 0x6e, 0x09, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xdd, 0x12, 0x06, 0x07, 0xaf, 0xbd, 0x88, 0x3a, 0x78, 0xc6, 0xa9, 0xd2, 0xb0, 0x1b, 0x3c, 0x7e, 0x28, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xdf, 0x12, 0x92, 0x81, 0x7c, 0x4b, 0xf8, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x6f, 0x09, 0xd1, 0x40, 0xbe, 0x25, 0xe4, 0x07, 0x4f, 0xe9, 0x21, 0x1a, 0x64, 0x1b, 0xbc, 0x8b, 0x23, 0x6a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xb7, 0x84, 0xd1, 0x40, 0xbe, 0x25, 0x34, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0x96, 0x30, 0x38, 0x78, 0x27, 0x49, 0xd4, 0xb0, 0x1b, 0x8c, 0x5e, 0xac, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x7c, 0x4b, 0x18, 0x0f, 0xe4, 0x5b, 0x42, 0xc1, 0x20, 0xd8, 0xe0, 0x01, 0x0d, 0x51, 0x87, 0x0e, 0x1a, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xbe, 0x25, 0xec, 0x06, 0xf2, 0x2d, 0x61, 0x7b, 0xf0, 0x8c, 0x53, 0xa5, 0x61, 0x37, 0x78, 0x20, 0x50, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc2, 0x25, 0x24, 0x03, 0x09, 0x97, 0xf0, 0x67, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe1, 0x12, 0xa2, 0x81, 0x84, 0x4b, 0xc8, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x78, 0x2c, 0x50, 0xd0, 0x06, 0x8f, 0x05, 0x0a, 0x3a, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x07, 0xc1, 0x44, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x5c, 0xc2, 0x68, 0x20, 0xe1, 0x12, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc2, 0x25, 0x0c, 0x0e, 0x9e, 0xa1, 0x13, 0x75, 0xf0, 0xd8, 0xa3, 0xa2, 0x41, 0xb6, 0xc1, 0x83, 0x60, 0xa2, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x2e, 0x61, 0x3d, 0x90, 0x70, 0x09, 0x0d, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc2, 0x25, 0x2c, 0x0f, 0x5e, 0x09, 0x14, 0x35, 0x08, 0x16, 0x7e, 0x43, 0x72, 0xe9, 0xe0, 0xb9, 0x84, 0x4c, 0x87, 0x4e, 0x44, 0x83, 0x6c, 0x83, 0x07, 0xc1, 0x44, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0x97, 0x50, 0x33, 0x90, 0x70, 0x09, 0x55, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc2, 0x25, 0x54, 0x1c, 0xbc, 0x06, 0x29, 0x6a, 0x10, 0x6c, 0xf0, 0x5c, 0x87, 0xa4, 0x43, 0xf7, 0xa3, 0x61, 0x37, 0x78, 0xd6, 0x48, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc6, 0x25, 0x24, 0x03, 0x19, 0x97, 0xf0, 0x67, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe3, 0x12, 0xa2, 0x81, 0x8c, 0x4b, 0xc8, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x78, 0xe2, 0x48, 0xd0, 0x06, 0x4f, 0x1c, 0x09, 0x3a, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x07, 0x36, 0x45, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x5c, 0xc2, 0x68, 0x20, 0xe3, 0x12, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc6, 0x25, 0x0c, 0x0e, 0x9e, 0x75, 0x15, 0x75, 0xf0, 0xd8, 0xa3, 0xa2, 0x41, 0xb6, 0xc1, 0x03, 0x9b, 0xa2, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x2e, 0x61, 0x3d, 0x90, 0x71, 0x09, 0x0d, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc6, 0x25, 0x2c, 0x0f, 0x5e, 0xdd, 0x15, 0x35, 0x08, 0x36, 0x78, 0x0e, 0x8b, 0xd0, 0xa1, 0x13, 0xd1, 0x20, 0xdb, 0xe0, 0x81, 0x4d, 0x51, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc6, 0x25, 0xd4, 0x0c, 0x64, 0x5c, 0x42, 0xd5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x71, 0x09, 0x15, 0x07, 0x6f, 0x27, 0x8b, 0x1a, 0x04, 0x1b, 0x34, 0xd6, 0x72, 0x7f, 0xe8, 0x7e, 0x34, 0xec, 0x06, 0xcf, 0xda, 0x09, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xb9, 0x84, 0x64, 0x20, 0xe5, 0x12, 0xae, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x5c, 0x42, 0x34, 0x90, 0x72, 0x09, 0xf9, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x4f, 0xdc, 0x09, 0xda, 0xe0, 0x89, 0x3b, 0x41, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0xf0, 0x1a, 0xb5, 0xa8, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe5, 0x12, 0x06, 0x03, 0x29, 0x97, 0xb0, 0x38, 0x18, 0x9a, 0xbf, 0xc3, 0x6e, 0xf0, 0x52, 0x9a, 0xa0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9c, 0x4b, 0x48, 0x06, 0x72, 0x2e, 0xe1, 0xcd, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xce, 0x25, 0x44, 0x03, 0x39, 0x97, 0x90, 0x0f, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xf0, 0x6a, 0x9a, 0xa0, 0x0d, 0x5e, 0x4d, 0x13, 0x74, 0x38, 0xc5, 0x06, 0xd9, 0x06, 0x2f, 0xb0, 0x8b, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x2e, 0x61, 0x34, 0x90, 0x73, 0x09, 0x1d, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xce, 0x25, 0x0c, 0x0e, 0x5e, 0xfd, 0x17, 0x35, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x5c, 0xc2, 0x6a, 0x20, 0xe7, 0x12, 0x86, 0x07, 0xaf, 0x6a, 0x12, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe7, 0x12, 0x96, 0x03, 0x39, 0x97, 0xb0, 0x3e, 0x48, 0xf9, 0xb8, 0x18, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x73, 0x09, 0xf3, 0x81, 0x9c, 0x4b, 0xa8, 0x38, 0x78, 0x86, 0x77, 0xc0, 0x71, 0xe8, 0xd0, 0x41, 0x63, 0xd8, 0x0d, 0x9e, 0x5a, 0x14, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x74, 0x09, 0xc9, 0x40, 0xd2, 0x25, 0xfc, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xba, 0x84, 0x68, 0x20, 0xe9, 0x12, 0xf2, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x9e, 0x5d, 0x14, 0xb4, 0xc1, 0xb3, 0x8b, 0x82, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0xe0, 0x79, 0x90, 0x51, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0x97, 0x30, 0x1a, 0x48, 0xba, 0x84, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x74, 0x09, 0x83, 0x83, 0x47, 0x69, 0x46, 0x1d, 0x3c, 0xf6, 0xa8, 0x68, 0x90, 0x6d, 0xf0, 0x3c, 0xc8, 0xa8, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe9, 0x12, 0xd6, 0x03, 0x49, 0x97, 0xd0, 0x30, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x5d, 0xc2, 0xf2, 0xe0, 0xc5, 0xa0, 0x51, 0x83, 0x60, 0x83, 0xa7, 0x59, 0x32, 0x1d, 0x5a, 0x80, 0x0d, 0xbb, 0xc1, 0xab, 0x31, 0x82, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x2e, 0x21, 0x19, 0xc8, 0xba, 0x84, 0x0b, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0x97, 0x10, 0x0d, 0x64, 0x5d, 0x42, 0x3e, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0x0b, 0x32, 0x82, 0x36, 0x78, 0x41, 0x46, 0xd0, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0xbc, 0xc1, 0x34, 0x6a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xba, 0x84, 0xd1, 0x40, 0xd6, 0x25, 0xac, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xac, 0x4b, 0x18, 0x1c, 0xbc, 0xfb, 0x35, 0xea, 0x30, 0x2e, 0xc3, 0x6e, 0xf0, 0x88, 0x92, 0xa0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb4, 0x4b, 0x48, 0x06, 0xd2, 0x2e, 0xe1, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xda, 0x25, 0x44, 0x03, 0x69, 0x97, 0x90, 0x1f, 0xbc, 0x46, 0x8c, 0x68, 0x90, 0x6d, 0xf0, 0x22, 0xda, 0xa8, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xed, 0x12, 0x26, 0x03, 0x69, 0x97, 0x30, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x2e, 0x61, 0x70, 0xf0, 0x42, 0xde, 0xa8, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xed, 0x12, 0x36, 0x03, 0x69, 0x97, 0xb0, 0x3b, 0x78, 0x3f, 0x42, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xda, 0x25, 0x0c, 0x07, 0xd2, 0x2e, 0x61, 0x79, 0xe8, 0x4f, 0x75, 0x68, 0xfe, 0x72, 0x3c, 0x3e, 0x0e, 0x1d, 0x3a, 0x68, 0x0c, 0xbb, 0xc1, 0x23, 0x7a, 0x82, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x2e, 0x21, 0x19, 0xc8, 0xbb, 0x84, 0x3f, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0x97, 0x10, 0x0d, 0xe4, 0x5d, 0x42, 0x3e, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0x83, 0x7a, 0x82, 0x36, 0x78, 0x50, 0x4f, 0xd0, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0xbc, 0x5d, 0x39, 0x6a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xbb, 0x84, 0xc5, 0x40, 0xde, 0x25, 0xac, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbc, 0x4b, 0x18, 0x1c, 0xbc, 0x97, 0x3a, 0x6a, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x19, 0x78, 0xeb, 0xea, 0x78, 0x7c, 0xe8, 0xa0, 0x31, 0xec, 0x06, 0xef, 0xdd, 0xc1, 0x58, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x5e, 0xc2, 0x64, 0x20, 0xf1, 0x12, 0xb6, 0x07, 0x4f, 0x07, 0xf2, 0x39, 0x78, 0x38, 0x92, 0xcf, 0xb0, 0x1b, 0x3c, 0x5c, 0xc9, 0x67, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x79, 0x09, 0x93, 0x81, 0xcc, 0x4b, 0xd8, 0x1e, 0x3c, 0x1d, 0xc8, 0xe7, 0xe0, 0x5d, 0x4f, 0x3e, 0xc3, 0x6e, 0xf0, 0x64, 0x93, 0xa0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd4, 0x4b, 0x48, 0x06, 0x52, 0x2f, 0xe1, 0xce, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xea, 0x25, 0x44, 0x03, 0xa9, 0x97, 0x90, 0x0f, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xf0, 0x7c, 0x93, 0xa0, 0x0d, 0x9e, 0x6f, 0x12, 0x74, 0x38, 0xc5, 0x06, 0xd9, 0x06, 0x2f, 0x21, 0x8f, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xbd, 0x84, 0xd1, 0x40, 0xea, 0x25, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd4, 0x4b, 0x18, 0x1c, 0xbc, 0xbf, 0x3d, 0xea, 0xe0, 0xf1, 0xcb, 0x46, 0x83, 0x6c, 0x83, 0x97, 0x90, 0x47, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0x97, 0xb0, 0x1e, 0x48, 0xbd, 0x84, 0x86, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xf5, 0x12, 0x96, 0x07, 0x8f, 0xa3, 0x8f, 0x1a, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x74, 0xf0, 0x6c, 0xc5, 0x85, 0x43, 0x0b, 0xb0, 0x61, 0x37, 0x78, 0x8e, 0x50, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xee, 0x25, 0x24, 0x03, 0xb9, 0x97, 0x70, 0x67, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xf7, 0x12, 0xa2, 0x81, 0xdc, 0x4b, 0xc8, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x78, 0x9a, 0x50, 0xd0, 0x06, 0x4f, 0x13, 0x0a, 0x3a, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x07, 0xe9, 0x47, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x5e, 0xc2, 0x68, 0x20, 0xf7, 0x12, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xee, 0x25, 0x0c, 0x0e, 0x9e, 0x41, 0x20, 0x75, 0xf0, 0xf8, 0x65, 0xa3, 0x41, 0xb6, 0xc1, 0x83, 0xf4, 0xa3, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x2f, 0x61, 0x3d, 0x90, 0x7b, 0x09, 0x0d, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xee, 0x25, 0x2c, 0x0f, 0x5e, 0xa9, 0x20, 0x35, 0x08, 0x36, 0x78, 0x53, 0xb8, 0xd0, 0xa1, 0x13, 0xd1, 0x20, 0xdb, 0xe0, 0x41, 0xfa, 0x51, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xee, 0x25, 0xd4, 0x0c, 0xe4, 0x5e, 0x42, 0xdd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x7b, 0x09, 0x15, 0x07, 0x6f, 0x8d, 0x90, 0x1a, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x48, 0x06, 0xd2, 0x7d, 0xc7, 0xe3, 0x43, 0xf7, 0xa3, 0x61, 0x37, 0x78, 0x1b, 0x4c, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xf2, 0x25, 0x24, 0x03, 0xc9, 0x97, 0x70, 0x64, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xf9, 0x12, 0xa2, 0x81, 0xe4, 0x4b, 0xc8, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x78, 0x27, 0x4c, 0xd0, 0x06, 0xef, 0x84, 0x09, 0x3a, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x07, 0x5f, 0x48, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0x97, 0x30, 0x18, 0x48, 0xbe, 0x84, 0xc5, 0xc1, 0xd0, 0xfc, 0x1d, 0x76, 0x83, 0xc7, 0xaf, 0x04, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x5f, 0x42, 0x32, 0x90, 0x7d, 0x09, 0x3f, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x2f, 0x21, 0x1a, 0xc8, 0xbe, 0x84, 0x7c, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x87, 0xb0, 0x04, 0x6d, 0xf0, 0x10, 0x96, 0xa0, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x78, 0xe4, 0x88, 0xd4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x7d, 0x09, 0xa3, 0x81, 0xec, 0x4b, 0x28, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x2f, 0x61, 0x70, 0xf0, 0xb0, 0x16, 0xa9, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xfb, 0x12, 0x56, 0x03, 0xd9, 0x97, 0xb0, 0x3c, 0x78, 0x23, 0x40, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x71, 0x0e, 0x5e, 0xc5, 0x2f, 0xb4, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x2f, 0x61, 0x3a, 0x90, 0x7d, 0x09, 0x3d, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0x97, 0x30, 0x1e, 0xc8, 0xbe, 0x84, 0x82, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xfb, 0x12, 0xb6, 0x07, 0x8f, 0xdd, 0x91, 0x3a, 0x78, 0xc9, 0x7f, 0xd1, 0x20, 0xdb, 0xe0, 0x4d, 0x37, 0x52, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xf6, 0x25, 0x54, 0x0c, 0x64, 0x5f, 0x42, 0xcd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x7d, 0x09, 0x0d, 0x07, 0x6f, 0x11, 0x92, 0x1a, 0x04, 0x1b, 0x3c, 0xb1, 0x91, 0xe9, 0xd0, 0x41, 0xe3, 0xd0, 0xfc, 0xe5, 0x78, 0x7c, 0x1c, 0x3a, 0x74, 0xd0, 0x18, 0x76, 0x83, 0x87, 0x1d, 0x05, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x5f, 0x42, 0x32, 0x90, 0x7e, 0x09, 0x0f, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x2f, 0x21, 0x1a, 0x48, 0xbf, 0x84, 0x7c, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x47, 0x1e, 0x05, 0x6d, 0xf0, 0xc8, 0xa3, 0xa0, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x78, 0x2c, 0x92, 0xd4, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xfa, 0x25, 0x8c, 0x06, 0xd2, 0x2f, 0x61, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x5f, 0xc2, 0xe0, 0xe0, 0x89, 0x52, 0x52, 0x07, 0x8f, 0x3d, 0x2a, 0x1a, 0x64, 0x1b, 0x3c, 0x16, 0x49, 0x6a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xbf, 0x84, 0xf5, 0x40, 0xfa, 0x25, 0x34, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0x97, 0xb0, 0x3c, 0x78, 0x3f, 0x96, 0xd4, 0x20, 0xd8, 0xe0, 0x89, 0x8d, 0x4c, 0x87, 0x16, 0x60, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xff, 0x12, 0x26, 0x03, 0xf9, 0x97, 0xb0, 0x3d, 0x78, 0x3a, 0x90, 0xcf, 0xb0, 0x0b, 0xb7, 0xc1, 0xdb, 0xd3, 0x81, 0x0e, 0x42, 0x0a, 0xfc, 0x60, 0x2c, 0x8c, 0x1e, 0x9a, 0xbf, 0x1c, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9c, 0x58, 0xdc, 0x40, 0x76, 0x2c, 0x2c, 0x06, 0xc1, 0xe2, 0x06, 0x0f, 0x4a, 0xdf, 0x38, 0x9c, 0x62, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x52, 0x2c, 0xee, 0xe0, 0xfd, 0x64, 0x52, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x56, 0x2c, 0xee, 0xe0, 0xfd, 0x64, 0x52, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x2b, 0x16, 0xe2, 0x81, 0xac, 0x58, 0x18, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xac, 0x58, 0xc8, 0x07, 0xb2, 0x62, 0x61, 0x37, 0x48, 0x06, 0x04, 0x5b, 0xdf, 0x21, 0xb9, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x15, 0x0b, 0xc3, 0x81, 0xac, 0x58, 0xd8, 0x1e, 0x04, 0xa5, 0xf7, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x8b, 0xc5, 0x1d, 0xbc, 0x9f, 0x4c, 0x6a, 0x10, 0x2c, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0xb1, 0x90, 0x1c, 0xbc, 0x9f, 0x4c, 0x6a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x8b, 0xc5, 0x1d, 0xbc, 0x9f, 0x4c, 0x6a, 0xd8, 0x0d, 0xeb, 0x7b, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0xb1, 0xf8, 0x81, 0xc4, 0x58, 0x08, 0x0e, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x63, 0x71, 0x07, 0xef, 0x27, 0x93, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0xb1, 0xb0, 0x19, 0xc8, 0x8c, 0x85, 0xc6, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x19, 0x0b, 0xa3, 0x81, 0xcc, 0x58, 0x18, 0x0e, 0x92, 0x01, 0xcb, 0xd7, 0xfb, 0x0e, 0x4e, 0x42, 0xc7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xc6, 0xc2, 0x72, 0x20, 0x33, 0x16, 0xaa, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xcc, 0x58, 0xd8, 0x1f, 0x3c, 0xd3, 0x51, 0x6a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x33, 0x16, 0x0a, 0x06, 0x32, 0x63, 0xa1, 0xe3, 0xd0, 0x02, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x8c, 0x85, 0x92, 0x81, 0xcc, 0x58, 0x68, 0x3a, 0x44, 0x73, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x66, 0x2c, 0x74, 0x0d, 0x64, 0xc6, 0x42, 0xe1, 0x41, 0x5b, 0x4c, 0x00, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x35, 0x16, 0x77, 0xf0, 0x7e, 0x32, 0xa9, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x1a, 0x0b, 0xc9, 0x40, 0x6a, 0x2c, 0xd4, 0x0f, 0xc2, 0xc5, 0x81, 0x48, 0x6c, 0x98, 0xfb, 0x0d, 0xde, 0x4b, 0x15, 0xb2, 0xa1, 0x8e, 0xac, 0x61, 0x86, 0x36, 0x78, 0x39, 0x68, 0xc9, 0x86, 0x13, 0x61, 0x83, 0x97, 0x83, 0x96, 0x6c, 0xb0, 0x98, 0x0d, 0x6a, 0x99, 0x65, 0xc3, 0x27, 0x36, 0x6b, 0x78, 0x9e, 0x64, 0x0d, 0x16, 0x2a, 0x53, 0x1d, 0x3c, 0xa7, 0x98, 0x69, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x46, 0x80, 0x63, 0xc3, 0xbb, 0x3d, 0x6b, 0x50, 0x4a, 0x88, 0x6f, 0xb0, 0x82, 0x4c, 0x7f, 0xc3, 0xbb, 0x3d, 0x1b, 0x3c, 0x8a, 0x2b, 0x64, 0x0d, 0x1f, 0xb5, 0x1f, 0xbc, 0xd3, 0x2b, 0xa4, 0x83, 0x63, 0xcc, 0xd9, 0xc1, 0x4a, 0x3a, 0xfd, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x0e, 0x9e, 0x53, 0x2a, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xc6, 0xc2, 0x64, 0x20, 0x35, 0x16, 0xda, 0x17, 0x83, 0x1f, 0xcb, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd4, 0x58, 0x58, 0x1d, 0x3c, 0x03, 0x56, 0x6a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x35, 0x16, 0x66, 0x03, 0xa9, 0xb1, 0xd0, 0x32, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x63, 0x61, 0x37, 0x90, 0x1a, 0x0b, 0xdb, 0x41, 0x32, 0x10, 0xba, 0x83, 0xe1, 0x28, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x6a, 0x2c, 0x8c, 0x07, 0x52, 0x63, 0x61, 0x7e, 0x50, 0x8a, 0x48, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x8d, 0x85, 0xfd, 0x40, 0x6a, 0x2c, 0x94, 0x1c, 0x94, 0x30, 0x12, 0xc7, 0xa1, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd4, 0x58, 0xa8, 0x19, 0x48, 0x8d, 0x85, 0xae, 0x83, 0x04, 0x6c, 0x81, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd4, 0x58, 0x28, 0x1b, 0x48, 0x8d, 0x85, 0xe2, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x1a, 0x0b, 0x6d, 0x03, 0xa9, 0xb1, 0xd0, 0x78, 0xf0, 0x90, 0x5c, 0xa9, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd4, 0x58, 0xa8, 0x1c, 0x48, 0x8d, 0x85, 0xde, 0x83, 0x11, 0xe4, 0x79, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x63, 0xa1, 0x79, 0x20, 0x35, 0x16, 0xca, 0x8f, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x6e, 0x2c, 0xee, 0xe0, 0xfd, 0x64, 0x52, 0xc3, 0x6e, 0x90, 0xc2, 0x6a, 0xbd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x1d, 0x8b, 0x3b, 0x78, 0x3f, 0x99, 0xd4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x8e, 0x85, 0x6c, 0x20, 0x3b, 0x16, 0x06, 0x87, 0xb5, 0xdf, 0x43, 0x72, 0x69, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x8e, 0xc5, 0x0f, 0x24, 0xc7, 0x42, 0xb6, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x72, 0x2c, 0x04, 0x07, 0x6f, 0xf0, 0x96, 0x3a, 0xa4, 0x0e, 0x8e, 0x6f, 0xc7, 0xe3, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x3a, 0x21, 0x1d, 0xc8, 0xeb, 0x84, 0x43, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0x9d, 0x30, 0x18, 0xc8, 0xeb, 0x84, 0xcd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xd7, 0x09, 0xf1, 0xc1, 0xa3, 0xcf, 0xa5, 0x0e, 0x5e, 0xae, 0x5c, 0x34, 0xc8, 0x36, 0x78, 0xdb, 0xb8, 0xd4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xd7, 0x09, 0xb3, 0x81, 0xbc, 0x4e, 0x58, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0x9d, 0x30, 0x3a, 0x78, 0x90, 0xbb, 0xd4, 0xc1, 0xbb, 0x2b, 0x7b, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x06, 0x2b, 0xca, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xf0, 0xc4, 0x0d, 0xe4, 0x78, 0xe2, 0x87, 0xdd, 0x90, 0xc7, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xf0, 0x84, 0x64, 0x20, 0xc3, 0x13, 0x2e, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x78, 0x42, 0x34, 0x90, 0xe1, 0x09, 0xe1, 0xa1, 0x59, 0xe4, 0x20, 0xdb, 0xe0, 0xd5, 0xf6, 0x52, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x86, 0x27, 0xe4, 0x03, 0x19, 0x9e, 0xb0, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x3c, 0x21, 0x3d, 0x78, 0xb9, 0xbf, 0xd4, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x83, 0x47, 0x3a, 0x26, 0x1c, 0x3a, 0x68, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x29, 0x9e, 0x90, 0x0c, 0xa4, 0x78, 0xc2, 0x85, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x14, 0x4f, 0x88, 0x06, 0x52, 0x3c, 0x21, 0x3c, 0xf4, 0x69, 0x1c, 0x64, 0x1b, 0x3c, 0x7d, 0x60, 0x6a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xf1, 0x84, 0x7c, 0x20, 0xc5, 0x13, 0x36, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x8a, 0x27, 0xa4, 0x07, 0xcf, 0x5f, 0x98, 0x3a, 0x78, 0xd5, 0xef, 0xd0, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x41, 0xb0, 0xc1, 0x71, 0xbf, 0x63, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x82, 0xe2, 0x06, 0x72, 0x41, 0xf1, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x2a, 0x28, 0x24, 0x03, 0xa9, 0xa0, 0xb0, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x05, 0x85, 0x68, 0x20, 0x15, 0x14, 0xc2, 0x43, 0x9f, 0xc6, 0x41, 0xb6, 0xc1, 0x03, 0x28, 0xa6, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x54, 0x50, 0x88, 0x07, 0x52, 0x41, 0x61, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x82, 0x42, 0x7a, 0xf0, 0x04, 0x8e, 0xa9, 0x41, 0xb0, 0xc1, 0x9b, 0xef, 0xa3, 0x0e, 0x1d, 0x34, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x83, 0x60, 0x71, 0x0e, 0xde, 0x75, 0x58, 0xb4, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x36, 0x21, 0x1d, 0xc8, 0xdb, 0x84, 0x47, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0x9b, 0x30, 0x19, 0xc8, 0xdb, 0x84, 0xd9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xb7, 0x09, 0xf1, 0xc1, 0xa3, 0x4d, 0xa6, 0x0e, 0x1e, 0xc8, 0x81, 0x34, 0xc8, 0x36, 0x78, 0x9b, 0xc8, 0xd4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xb7, 0x09, 0xdb, 0x81, 0xbc, 0x4d, 0xd8, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0x9b, 0xb0, 0x3b, 0x78, 0x50, 0xcb, 0xd4, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0x32, 0xa0, 0xfc, 0xaf, 0x3a, 0x1e, 0x1f, 0x3a, 0x68, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc4, 0x51, 0xdc, 0x40, 0x1a, 0x2a, 0x7e, 0x71, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x73, 0x14, 0xf2, 0x81, 0xcc, 0x51, 0x28, 0x1c, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x47, 0x61, 0x30, 0x90, 0x39, 0x0a, 0x9b, 0x41, 0x32, 0xd0, 0xa6, 0xef, 0x60, 0x18, 0xfa, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x39, 0x0a, 0xa3, 0x81, 0xcc, 0x51, 0x18, 0x0e, 0x92, 0x81, 0xf7, 0x97, 0x0e, 0xd9, 0x8a, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0xc5, 0x83, 0x37, 0xf1, 0x0b, 0x2d, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xcc, 0x51, 0x58, 0x0e, 0x64, 0x8e, 0x42, 0xdf, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xe6, 0x28, 0x6c, 0x07, 0x32, 0x47, 0x61, 0x3f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x8e, 0xc2, 0xf4, 0xe0, 0xa9, 0x48, 0x53, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc9, 0x40, 0xb3, 0xbe, 0xe3, 0xf9, 0x21, 0x0d, 0x37, 0xc8, 0x36, 0x78, 0x11, 0xd1, 0xd4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x39, 0x0a, 0x25, 0x03, 0x99, 0xa3, 0x50, 0x37, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x8e, 0x42, 0xc1, 0xc1, 0x0b, 0xa1, 0xa6, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xcc, 0x51, 0x68, 0x19, 0xc8, 0x1c, 0x85, 0xa2, 0x83, 0x85, 0xf7, 0xfe, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0xa3, 0xd0, 0x34, 0x90, 0x39, 0x0a, 0x6d, 0x83, 0x64, 0xe0, 0xf4, 0x39, 0x64, 0x2b, 0x8e, 0x43, 0x87, 0x0e, 0x1a, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xd0, 0xa1, 0x51, 0xcb, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x41, 0xb0, 0xb8, 0xc1, 0x53, 0x8f, 0x82, 0x0e, 0x9e, 0x61, 0x23, 0xb5, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x47, 0xf1, 0x03, 0xe9, 0xa3, 0x90, 0x0c, 0xbb, 0xc1, 0xfb, 0xb1, 0x82, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x47, 0x21, 0x1b, 0xc8, 0x1d, 0x85, 0x13, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0xa3, 0x10, 0x0e, 0xe4, 0x8e, 0xc2, 0xe2, 0x60, 0x69, 0xa9, 0xd5, 0x20, 0xdb, 0xe0, 0x2d, 0x64, 0x53, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0xa3, 0xb0, 0x19, 0xc8, 0x1d, 0x85, 0xdd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x3b, 0x0a, 0x93, 0x83, 0xc7, 0xb1, 0x4d, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x3a, 0x78, 0x5b, 0xd0, 0xd4, 0xa1, 0x29, 0xd0, 0x20, 0xdb, 0xe0, 0x2d, 0x64, 0x53, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xee, 0x28, 0x2c, 0x07, 0x72, 0x47, 0x61, 0x3d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x8e, 0xc2, 0xf0, 0xe0, 0x09, 0x74, 0x53, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x0e, 0x5e, 0xb8, 0x35, 0x75, 0x68, 0x01, 0x36, 0xec, 0x06, 0x4f, 0x36, 0x09, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x1e, 0x85, 0x6c, 0x20, 0x79, 0x14, 0x6e, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x8f, 0x42, 0x38, 0x90, 0x3c, 0x0a, 0x8b, 0x83, 0x37, 0xa4, 0x47, 0x0d, 0xb2, 0x0d, 0x5e, 0x9d, 0x37, 0xb5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x3c, 0x0a, 0x9b, 0x81, 0xe4, 0x51, 0xd8, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xa3, 0x30, 0x39, 0x78, 0x88, 0xe0, 0xd4, 0xc1, 0x1b, 0xdf, 0xa6, 0x06, 0xd9, 0x06, 0xaf, 0xce, 0x9b, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x47, 0x61, 0x39, 0x90, 0x3c, 0x0a, 0xeb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x79, 0x14, 0x86, 0x07, 0xaf, 0x44, 0x9c, 0x3a, 0x78, 0xc9, 0xdd, 0xd4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x3d, 0x0a, 0xd9, 0x40, 0xf6, 0x28, 0x9c, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x1e, 0x85, 0x70, 0x20, 0x7b, 0x14, 0x16, 0x07, 0xcf, 0x6c, 0x92, 0x1a, 0x64, 0x1b, 0x3c, 0x8f, 0x71, 0x6a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x7b, 0x14, 0x36, 0x03, 0xd9, 0xa3, 0xb0, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x47, 0x61, 0x72, 0xf0, 0x62, 0xca, 0xa9, 0x83, 0x37, 0xbe, 0x4d, 0x0d, 0xb2, 0x0d, 0x9e, 0xc7, 0x38, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x8f, 0xc2, 0x72, 0x20, 0x7b, 0x14, 0xd6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xf6, 0x28, 0x0c, 0x0f, 0x9e, 0xb3, 0x39, 0x35, 0x08, 0x36, 0x78, 0x00, 0xd3, 0xd4, 0xa1, 0x05, 0xd8, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xaf, 0x14, 0x3f, 0x90, 0x85, 0x0a, 0xc9, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x4b, 0xf1, 0x07, 0xaf, 0x10, 0x9d, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x4b, 0xf1, 0x07, 0xaf, 0x10, 0x9d, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0xa5, 0xb0, 0x18, 0xc8, 0x2c, 0x85, 0x82, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x59, 0x0a, 0x93, 0x81, 0xcc, 0x52, 0x58, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xcc, 0x52, 0x18, 0x0e, 0x64, 0x96, 0xc2, 0xf4, 0xa0, 0xc5, 0x95, 0xa8, 0x41, 0x32, 0x50, 0xaf, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x2c, 0x85, 0xed, 0x40, 0x66, 0x29, 0x8c, 0x0f, 0xe3, 0x72, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x2c, 0x85, 0xf9, 0x40, 0x66, 0x29, 0xec, 0x0f, 0xd1, 0x3c, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xa5, 0xf8, 0x83, 0x57, 0x88, 0x4e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd4, 0x52, 0x58, 0x0c, 0xa4, 0x96, 0x42, 0xc1, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x2d, 0x85, 0xc9, 0x40, 0x6a, 0x29, 0xac, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x6a, 0x29, 0x0c, 0x07, 0x52, 0x4b, 0x61, 0x7a, 0xd0, 0x24, 0xc0, 0xc0, 0x20, 0x19, 0xa8, 0x57, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x96, 0xc2, 0x76, 0x20, 0xb5, 0x14, 0xc6, 0x87, 0xac, 0xdd, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xb5, 0x14, 0xe6, 0x03, 0xa9, 0xa5, 0xb0, 0x3f, 0xe4, 0x6b, 0x8f, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x6e, 0x29, 0xfe, 0xe0, 0x15, 0xa2, 0x53, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xb7, 0x14, 0x16, 0x03, 0xb9, 0xa5, 0x50, 0x30, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x4b, 0x61, 0x32, 0x90, 0x5b, 0x0a, 0xeb, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x5b, 0x0a, 0xc3, 0x81, 0xdc, 0x52, 0x98, 0x1e, 0xb4, 0x54, 0x30, 0x30, 0x48, 0x06, 0xa6, 0x6a, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xdc, 0x52, 0xd8, 0x0e, 0xe4, 0x96, 0xc2, 0xf8, 0x10, 0xff, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x6e, 0x29, 0xcc, 0x07, 0x72, 0x4b, 0x61, 0x7f, 0x58, 0xfb, 0x3d, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xa5, 0xf8, 0x83, 0x57, 0x88, 0x4e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe4, 0x52, 0xc8, 0x06, 0x92, 0x4b, 0x21, 0x1f, 0x24, 0x03, 0x0a, 0xf5, 0xbe, 0x83, 0xb3, 0x97, 0xf1, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x4b, 0x21, 0x19, 0xc8, 0x32, 0x85, 0xe9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x5e, 0x0a, 0xc9, 0xc1, 0xa3, 0xd9, 0xa7, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x7a, 0x29, 0xa4, 0x03, 0xe9, 0xa5, 0xb0, 0x18, 0x24, 0x03, 0x96, 0xbe, 0xf7, 0x1d, 0x9c, 0xbd, 0x8c, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x4b, 0x21, 0x39, 0x78, 0x34, 0xfb, 0xd4, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x2f, 0x85, 0x74, 0x20, 0xbf, 0x14, 0x16, 0x07, 0xc9, 0x48, 0x1f, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x97, 0xc2, 0x66, 0x20, 0xbf, 0x14, 0x1a, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x7e, 0x29, 0x2c, 0x07, 0xf2, 0x4b, 0x61, 0x7b, 0xd0, 0x86, 0xad, 0xc0, 0x20, 0x19, 0x08, 0xd7, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0xa5, 0x30, 0x1e, 0xc8, 0x2f, 0x85, 0x82, 0x43, 0xaa, 0xe6, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xc1, 0x14, 0x92, 0x83, 0x47, 0xb3, 0x4f, 0x0d, 0x82, 0xc5, 0x83, 0xf7, 0xf0, 0x0b, 0x2d, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0xa6, 0x90, 0x1c, 0x3c, 0x9a, 0x7d, 0x6a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x31, 0x85, 0xe4, 0xe0, 0xd1, 0xec, 0x53, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x29, 0xa6, 0x90, 0x0e, 0xa4, 0x98, 0xc2, 0x7c, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xc5, 0x14, 0xe2, 0x81, 0x14, 0x53, 0xd8, 0x1c, 0x3c, 0xf2, 0x28, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xc5, 0x14, 0x46, 0x03, 0x29, 0xa6, 0x30, 0x3c, 0x44, 0x73, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x31, 0x85, 0xe5, 0x40, 0x8a, 0x29, 0xac, 0x0f, 0x8d, 0x04, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1c, 0x53, 0x48, 0x0e, 0x1e, 0xcd, 0x3e, 0x35, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x4c, 0x21, 0x1d, 0xc8, 0x31, 0x85, 0xc5, 0x41, 0xc2, 0x56, 0xca, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0xa6, 0xb0, 0x19, 0xc8, 0x31, 0x85, 0x82, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x63, 0x0a, 0xcb, 0x81, 0x1c, 0x53, 0xd8, 0x1e, 0x34, 0xce, 0xca, 0x32, 0x48, 0x06, 0x42, 0x37, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x8e, 0x29, 0x8c, 0x07, 0x72, 0x4c, 0x61, 0x7f, 0x10, 0x94, 0xde, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0xa6, 0x90, 0x1c, 0x3c, 0x9a, 0x7d, 0x6a, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0xa6, 0x90, 0x1c, 0x3c, 0x9a, 0x7d, 0x6a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xcb, 0x14, 0xa2, 0x81, 0x2c, 0x53, 0xc8, 0x0f, 0x16, 0xa1, 0x5a, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x99, 0xc2, 0x60, 0x20, 0xcb, 0x14, 0x46, 0x87, 0xf8, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0xa6, 0xb0, 0x1a, 0xc8, 0x32, 0x85, 0xe5, 0x21, 0x75, 0x70, 0x3c, 0x3e, 0x0e, 0x1d, 0x8f, 0x8f, 0x43, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xcf, 0x14, 0x92, 0x81, 0x5c, 0x53, 0xd8, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0xa6, 0x90, 0x1c, 0x3c, 0x28, 0x88, 0x6a, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x9a, 0x42, 0x3a, 0x90, 0x68, 0x0a, 0x8b, 0x83, 0x64, 0xa4, 0x8f, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x4d, 0x61, 0x33, 0x90, 0x68, 0x0a, 0x0d, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xd1, 0x14, 0x96, 0x03, 0x89, 0xa6, 0xb0, 0x3d, 0x68, 0xc3, 0x56, 0x60, 0x90, 0x0c, 0x84, 0x6b, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x44, 0x53, 0x18, 0x0f, 0x24, 0x9a, 0x42, 0xc1, 0x21, 0x75, 0x70, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x69, 0x0a, 0xc9, 0xc1, 0x83, 0x82, 0xa8, 0x06, 0xc1, 0x06, 0x4f, 0x4d, 0xa0, 0x5a, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x4d, 0x21, 0x39, 0x78, 0x50, 0x10, 0xd5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x6b, 0x0a, 0xc9, 0xc1, 0x83, 0x82, 0xa8, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x4d, 0x21, 0x1a, 0xc8, 0x35, 0x85, 0xfc, 0xe0, 0x91, 0x47, 0x41, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0xa6, 0x30, 0x18, 0xc8, 0x35, 0x85, 0xd1, 0x21, 0x9a, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xae, 0x29, 0xac, 0x06, 0x72, 0x4d, 0x61, 0x7a, 0xf0, 0x0e, 0x4d, 0xa6, 0xe3, 0xf1, 0x71, 0x68, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x4d, 0x21, 0x19, 0x48, 0x42, 0x85, 0x6c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x37, 0x85, 0xe4, 0xe0, 0x91, 0x68, 0x54, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xdd, 0x14, 0xd2, 0x81, 0x74, 0x53, 0x58, 0x1c, 0x3c, 0x56, 0x7e, 0x6a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xdf, 0x14, 0x92, 0x83, 0x47, 0xa2, 0x51, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x7c, 0x53, 0x48, 0x07, 0xf2, 0x4d, 0x61, 0x71, 0x90, 0x8c, 0xf4, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xbe, 0x29, 0x6c, 0x06, 0xf2, 0x4d, 0xa1, 0x61, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x9b, 0xc2, 0x72, 0x20, 0xdf, 0x14, 0xb6, 0x07, 0x6d, 0xd8, 0x0a, 0x0c, 0x92, 0x81, 0x70, 0x0d, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x6f, 0x0a, 0xe3, 0x81, 0x7c, 0x53, 0x28, 0x38, 0x0e, 0x1d, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x9c, 0x42, 0x72, 0xf0, 0x48, 0x34, 0xaa, 0x41, 0xb0, 0xc1, 0xc8, 0x7f, 0x58, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x4e, 0x21, 0x39, 0x78, 0x24, 0x1a, 0xd5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x72, 0x0a, 0xc9, 0xc1, 0x23, 0xd1, 0xa8, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xca, 0x29, 0x2c, 0x06, 0x52, 0x4e, 0xa1, 0x63, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x9c, 0xc2, 0x64, 0x20, 0xe5, 0x14, 0xd6, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe5, 0x14, 0x86, 0x03, 0x29, 0xa7, 0x30, 0x3d, 0x78, 0xed, 0x0d, 0xc9, 0x20, 0x19, 0xa8, 0x5e, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x9c, 0xc2, 0x76, 0x20, 0xe5, 0x14, 0xc6, 0x07, 0xa3, 0xd5, 0xfc, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x72, 0x0a, 0xf3, 0x81, 0x94, 0x53, 0xa8, 0x38, 0x44, 0xf3, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x9c, 0x42, 0x72, 0xf0, 0x48, 0x34, 0xaa, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x73, 0x0a, 0x8b, 0x81, 0x9c, 0x53, 0xe8, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0xa7, 0x30, 0x19, 0xc8, 0x39, 0x85, 0xf5, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x39, 0x85, 0xe1, 0x40, 0xce, 0x29, 0x4c, 0x0f, 0x1e, 0xf8, 0x4c, 0x32, 0x48, 0x06, 0xaa, 0xd7, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0xa7, 0xb0, 0x1d, 0xc8, 0x39, 0x85, 0xf1, 0xc1, 0x3a, 0x95, 0x86, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xce, 0x29, 0xcc, 0x07, 0x72, 0x4e, 0xa1, 0xe2, 0x90, 0xb5, 0x3b, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0xa7, 0x90, 0x1c, 0x3c, 0x12, 0x8d, 0x6a, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x9d, 0xc2, 0x68, 0x20, 0xe9, 0x14, 0xda, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xd2, 0x29, 0xac, 0x06, 0x92, 0x4e, 0xa1, 0x65, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x9d, 0xc2, 0x76, 0x20, 0xe9, 0x14, 0xd6, 0x83, 0x64, 0x60, 0xad, 0xef, 0xe0, 0x40, 0x91, 0x3c, 0x48, 0x06, 0xe2, 0x35, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xd2, 0x29, 0xcc, 0x07, 0x92, 0x4e, 0xa1, 0xe4, 0x20, 0x04, 0xc0, 0x8f, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0xa7, 0x50, 0x33, 0x90, 0x74, 0x0a, 0x65, 0x87, 0x71, 0x39, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0xa7, 0x90, 0x1c, 0x3c, 0x12, 0x8d, 0x6a, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x9d, 0xc2, 0x68, 0x20, 0xeb, 0x14, 0xda, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xd6, 0x29, 0xac, 0x06, 0xb2, 0x4e, 0xa1, 0x65, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x9d, 0xc2, 0x76, 0x20, 0xeb, 0x14, 0xd6, 0x07, 0xad, 0x7a, 0xb3, 0x0c, 0x92, 0x81, 0x78, 0x0d, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x75, 0x0a, 0xf3, 0x81, 0xac, 0x53, 0x28, 0x39, 0xe4, 0x6b, 0x8f, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0xa7, 0x50, 0x33, 0x90, 0x75, 0x0a, 0x65, 0x87, 0x71, 0x39, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0xa7, 0x90, 0x1c, 0x3c, 0x12, 0x8d, 0x6a, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x9d, 0x42, 0x3a, 0x90, 0x76, 0x0a, 0x8b, 0x41, 0x32, 0xa0, 0x50, 0xef, 0x3b, 0x38, 0x66, 0x2c, 0x0f, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xef, 0x14, 0xb2, 0x81, 0xcc, 0x53, 0x28, 0x18, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xef, 0x14, 0xf2, 0x81, 0xbc, 0x53, 0x68, 0x18, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xef, 0x14, 0x16, 0x03, 0x79, 0xa7, 0x30, 0x3c, 0xc4, 0x7f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x3b, 0x85, 0xe5, 0x40, 0xde, 0x29, 0x14, 0x1c, 0xb2, 0x76, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0xa7, 0x90, 0x0e, 0x24, 0x9e, 0x42, 0x7c, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x79, 0x0a, 0xd9, 0xc1, 0x83, 0xc8, 0xa9, 0x56, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x3c, 0x85, 0x70, 0x20, 0xf3, 0x14, 0x16, 0x07, 0x8f, 0x3c, 0x0a, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x3c, 0x85, 0xc9, 0x40, 0xe6, 0x29, 0xcc, 0x0e, 0x82, 0x14, 0x7f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x3c, 0x85, 0xdd, 0x40, 0xe6, 0x29, 0xcc, 0x0f, 0x59, 0xbb, 0x43, 0x0c, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xdc, 0x53, 0xc8, 0x06, 0xd2, 0x4f, 0x61, 0x3c, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x4f, 0x21, 0x1f, 0xc8, 0x3d, 0x85, 0xcd, 0x20, 0xd9, 0x60, 0x90, 0xbc, 0x1c, 0x1c, 0x33, 0x96, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x3d, 0x85, 0xd5, 0x40, 0xee, 0x29, 0x94, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xdc, 0x53, 0xd8, 0x0e, 0xe4, 0x9e, 0xc2, 0xfa, 0xe0, 0xb5, 0xbc, 0x36, 0x83, 0x64, 0x20, 0x5c, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x9e, 0xc2, 0x7c, 0x20, 0xf7, 0x14, 0x3a, 0x0e, 0xa9, 0x83, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe4, 0x53, 0xc8, 0x0e, 0x9e, 0x0c, 0x50, 0x35, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xec, 0x53, 0xc8, 0x0e, 0x9e, 0x0c, 0x50, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x9f, 0x42, 0x76, 0xf0, 0x64, 0x80, 0xaa, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf4, 0x53, 0x08, 0x07, 0xd2, 0x4f, 0x61, 0x71, 0xb0, 0x08, 0xd5, 0x6a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xfd, 0x14, 0x26, 0x03, 0xe9, 0xa7, 0x30, 0x3b, 0x28, 0x09, 0x1a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf4, 0x53, 0xd8, 0x0d, 0xa4, 0x9f, 0xc2, 0xf6, 0x90, 0x3a, 0x38, 0x1e, 0x1f, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x01, 0x15, 0xb2, 0x81, 0x1c, 0x54, 0x18, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x04, 0x54, 0xc8, 0x07, 0x12, 0x50, 0x61, 0x73, 0xf0, 0x0e, 0x82, 0xaa, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x50, 0x61, 0x35, 0x90, 0x80, 0x0a, 0x25, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x01, 0x15, 0xb6, 0x03, 0x09, 0xa8, 0xb0, 0x3e, 0x78, 0x2d, 0xaf, 0xcd, 0x20, 0x19, 0x08, 0xd7, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0xa8, 0x30, 0x1f, 0x48, 0x40, 0x85, 0x8e, 0xe3, 0xd0, 0x71, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x06, 0x2a, 0x64, 0x07, 0x0f, 0x30, 0xa9, 0x1a, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x0a, 0x2a, 0x64, 0x07, 0x0f, 0x30, 0xa9, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x50, 0x21, 0x3b, 0x78, 0x80, 0x49, 0xd5, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x0e, 0x2a, 0x84, 0x03, 0x39, 0xa8, 0xb0, 0x38, 0x78, 0xbe, 0x49, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x0e, 0x2a, 0x4c, 0x06, 0x72, 0x50, 0x61, 0x76, 0x50, 0x12, 0x34, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0xa8, 0xb0, 0x1b, 0xc8, 0x41, 0x85, 0xed, 0x21, 0x75, 0x70, 0x3c, 0x3e, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x3a, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0xa4, 0xf8, 0x81, 0xa4, 0x52, 0x48, 0x06, 0xc1, 0xe2, 0x1c, 0xbc, 0xe6, 0x6b, 0x6a, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x21, 0xc5, 0x1f, 0x3c, 0x70, 0xa9, 0x6a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x21, 0xc5, 0x1f, 0x3c, 0x70, 0xa9, 0x6a, 0xd8, 0x85, 0xdb, 0x60, 0x11, 0xaa, 0xd5, 0xa1, 0x91, 0xe0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x16, 0x29, 0x24, 0x03, 0x79, 0xa4, 0x70, 0x65, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x91, 0x42, 0x36, 0x90, 0x46, 0x0a, 0x6d, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x8d, 0x14, 0xc2, 0x81, 0x34, 0x52, 0x98, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x34, 0x52, 0x98, 0x0c, 0xa4, 0x91, 0xc2, 0xe8, 0xa0, 0xc5, 0x95, 0xa8, 0x41, 0x32, 0x70, 0xfb, 0x0d, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x46, 0x0a, 0xab, 0x81, 0x34, 0x52, 0x58, 0x1e, 0xa2, 0x79, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x8d, 0x14, 0xb6, 0x03, 0x69, 0xa4, 0x50, 0x72, 0xe8, 0xa4, 0xb6, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x34, 0x52, 0x68, 0x19, 0x48, 0x23, 0x85, 0xaa, 0x83, 0x77, 0x68, 0x32, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x23, 0x85, 0xae, 0x81, 0x34, 0x52, 0x28, 0x3b, 0xc4, 0xf0, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x91, 0x42, 0x72, 0xf0, 0xb2, 0xaa, 0xaa, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x47, 0x0a, 0xd1, 0x40, 0x1e, 0x29, 0x0c, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x1e, 0x29, 0x0c, 0x06, 0xf2, 0x48, 0x61, 0x72, 0xd0, 0x24, 0xc0, 0xc0, 0x20, 0x19, 0x18, 0xaa, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x48, 0x61, 0x33, 0x90, 0x47, 0x0a, 0xbb, 0x43, 0xd6, 0xee, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x1e, 0x29, 0x2c, 0x07, 0xf2, 0x48, 0xa1, 0xe2, 0xd0, 0xb8, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x1e, 0x29, 0x74, 0x0c, 0xe4, 0x91, 0xc2, 0x93, 0x41, 0xb4, 0xd0, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x8f, 0x14, 0xba, 0x06, 0xf2, 0x48, 0xe1, 0xc8, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x23, 0x85, 0xb2, 0x81, 0x3c, 0x52, 0x68, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0xa4, 0x50, 0x39, 0x90, 0x47, 0x0a, 0xa5, 0x07, 0x0b, 0x6a, 0xf7, 0x07, 0xc9, 0xe0, 0xd4, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0xa4, 0xd0, 0x3a, 0x90, 0x47, 0x0a, 0xe5, 0x07, 0x21, 0x00, 0x7e, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x23, 0x85, 0xfa, 0x81, 0x3c, 0x52, 0xf8, 0x71, 0x68, 0x96, 0x74, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x86, 0x5d, 0xb8, 0x0d, 0x9e, 0x6f, 0x12, 0x74, 0x68, 0x24, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x4a, 0x0a, 0xc9, 0x40, 0x32, 0x29, 0x34, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x54, 0x52, 0x48, 0x07, 0x52, 0x49, 0x61, 0x3b, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x49, 0x61, 0x33, 0x90, 0x4a, 0x0a, 0xab, 0x83, 0x16, 0x57, 0xa2, 0x06, 0xc9, 0x40, 0xf9, 0x1b, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x95, 0x14, 0x66, 0x03, 0xa9, 0xa4, 0x30, 0x3d, 0x44, 0xf3, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x4b, 0x0a, 0xc9, 0xc1, 0x7b, 0x31, 0xab, 0x06, 0xc1, 0x06, 0x4f, 0x18, 0x9a, 0x5a, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x49, 0x21, 0x39, 0x78, 0x2f, 0x66, 0xd5, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x32, 0x29, 0x44, 0x03, 0xc9, 0xa4, 0x10, 0x1f, 0xa2, 0x39, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x93, 0x42, 0x3e, 0x90, 0x4c, 0x0a, 0x45, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x99, 0x14, 0x06, 0x03, 0xc9, 0xa4, 0xb0, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xa4, 0x30, 0x1b, 0x48, 0x26, 0x85, 0xe1, 0x41, 0xa3, 0xcb, 0x21, 0x83, 0x64, 0x70, 0x6f, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x64, 0x52, 0x58, 0x0e, 0x24, 0x93, 0xc2, 0xf8, 0x30, 0x2e, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x64, 0x52, 0x98, 0x0f, 0x24, 0x93, 0x42, 0xcf, 0xa1, 0xd1, 0xd1, 0x71, 0xe8, 0x78, 0x7c, 0x1c, 0x1a, 0x64, 0x6b, 0x68, 0xbf, 0x3e, 0xdc, 0x06, 0x8f, 0x3c, 0x0a, 0x3a, 0x34, 0x12, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x49, 0x21, 0x19, 0xc8, 0x29, 0x85, 0xde, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x49, 0x21, 0x1d, 0xc8, 0x27, 0x85, 0x82, 0xe1, 0x36, 0x78, 0x87, 0x26, 0xd3, 0xc1, 0xc8, 0xec, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x28, 0x85, 0x6c, 0x20, 0xa1, 0x14, 0x5a, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x42, 0x29, 0x84, 0x03, 0x09, 0xa5, 0x30, 0x1d, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0xa5, 0x30, 0x19, 0x48, 0x28, 0x85, 0xd1, 0x41, 0x8b, 0x2b, 0x51, 0x83, 0x64, 0x20, 0x7c, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x94, 0xc2, 0x6a, 0x20, 0xa1, 0x14, 0x96, 0x87, 0x68, 0x1e, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x4a, 0x61, 0x3b, 0x90, 0x50, 0x0a, 0x25, 0x87, 0x4e, 0x6a, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xa3, 0x14, 0x92, 0x83, 0xc7, 0x0d, 0x57, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x94, 0x52, 0xc8, 0x06, 0x52, 0x4a, 0xa1, 0x6d, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x94, 0x42, 0x38, 0x90, 0x52, 0x0a, 0xd3, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x52, 0x0a, 0x93, 0x81, 0x94, 0x52, 0x18, 0x1d, 0xb4, 0xb8, 0x12, 0x35, 0x48, 0x06, 0x6e, 0xbf, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x4a, 0x61, 0x35, 0x90, 0x52, 0x0a, 0xcb, 0x43, 0x34, 0x8f, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x94, 0xc2, 0x76, 0x20, 0xa5, 0x14, 0x4a, 0x0e, 0x9d, 0xd4, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x52, 0x0a, 0x2d, 0x03, 0x29, 0xa5, 0x50, 0x75, 0xf0, 0x0e, 0x4d, 0xa6, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x29, 0xa5, 0xd0, 0x35, 0x90, 0x52, 0x0a, 0x65, 0x87, 0x18, 0x1e, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9c, 0x52, 0x48, 0x0e, 0x1e, 0x37, 0x5c, 0x35, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x4a, 0x21, 0x1a, 0xc8, 0x29, 0x85, 0xe1, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x29, 0x85, 0xc1, 0x40, 0x4e, 0x29, 0x4c, 0x0e, 0x9a, 0x04, 0x18, 0x18, 0x24, 0x03, 0x43, 0x35, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4e, 0x29, 0x6c, 0x06, 0x72, 0x4a, 0x61, 0x77, 0xc8, 0xda, 0x1d, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x29, 0x85, 0xe5, 0x40, 0x4e, 0x29, 0x54, 0x1c, 0x1a, 0x17, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x29, 0x85, 0x8e, 0x81, 0x9c, 0x52, 0xa8, 0x1d, 0x44, 0x0b, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x4a, 0xa1, 0x6c, 0x20, 0xa7, 0x14, 0x5a, 0x0f, 0xcd, 0x92, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0xf1, 0xf8, 0x78, 0xbc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xad, 0x0b, 0xd9, 0x40, 0x9e, 0x38, 0x6e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xd7, 0x45, 0x0f, 0xde, 0xf5, 0x60, 0xb5, 0xb8, 0x20, 0x58, 0x1c, 0xd0, 0xd3, 0xe0, 0xec, 0x6c, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xc3, 0x1a, 0x37, 0x90, 0x64, 0x8d, 0x1f, 0x76, 0xe1, 0x16, 0x03, 0x3d, 0x0d, 0xce, 0x8e, 0x1e, 0xa2, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x61, 0x0d, 0xc9, 0x40, 0x86, 0x35, 0x8c, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0xac, 0x21, 0x1a, 0xc8, 0xb0, 0x86, 0x7c, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0xc7, 0x5a, 0x58, 0x6d, 0xf0, 0x58, 0x0b, 0xab, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x78, 0xfe, 0x85, 0xd5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x61, 0x0d, 0x83, 0x81, 0x0c, 0x6b, 0xd8, 0x0c, 0x82, 0x0d, 0x1e, 0xb6, 0xd7, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x5d, 0xb8, 0xcd, 0x21, 0x5f, 0x7b, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0xac, 0x21, 0x19, 0x48, 0xb1, 0x86, 0xd1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x8a, 0x35, 0x44, 0x03, 0x29, 0xd6, 0x90, 0x0f, 0xbb, 0x70, 0x1b, 0xa2, 0x39, 0x1e, 0x3c, 0x5b, 0xc2, 0x6a, 0x83, 0xd7, 0xaa, 0x58, 0x1d, 0x4e, 0xb1, 0x41, 0xb6, 0xc1, 0x5b, 0x4a, 0xac, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x14, 0x6b, 0x18, 0x0c, 0xa4, 0x58, 0xc3, 0x66, 0x10, 0x6c, 0xf0, 0xb0, 0xbd, 0x9e, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x6b, 0xee, 0x6d, 0x0e, 0xf9, 0xda, 0xe3, 0xd0, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x05, 0xc1, 0x62, 0xe0, 0xd3, 0xc9, 0x85, 0x8d, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x29, 0x1b, 0x37, 0x90, 0x9c, 0x8d, 0x1f, 0x76, 0xe1, 0x16, 0x03, 0x7f, 0xec, 0xcd, 0xcd, 0x3d, 0xa4, 0x0e, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xb2, 0x21, 0x19, 0x48, 0xca, 0x86, 0x13, 0xc3, 0x2e, 0xdc, 0x86, 0xd4, 0xc1, 0xc1, 0x23, 0x6e, 0xac, 0x36, 0x78, 0xc4, 0x8d, 0xd5, 0xe1, 0x14, 0x1b, 0x76, 0xe1, 0x16, 0x03, 0x9f, 0xac, 0x8c, 0x8d, 0x3e, 0xa4, 0x0e, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0xb2, 0x21, 0x19, 0xc8, 0xca, 0x86, 0x0f, 0xc3, 0x2e, 0xdc, 0x86, 0xd4, 0xc1, 0xc1, 0xa3, 0x7a, 0xac, 0x36, 0x78, 0x54, 0x8f, 0xd5, 0xe1, 0x14, 0x1b, 0x76, 0xe1, 0x16, 0x0f, 0x4a, 0x84, 0x96, 0x43, 0xea, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x2d, 0x1b, 0x92, 0x81, 0xb4, 0x6c, 0x38, 0x30, 0xec, 0xc2, 0x6d, 0x48, 0x1d, 0x1c, 0x3c, 0x72, 0xc8, 0x6a, 0x83, 0x47, 0x0e, 0x59, 0x1d, 0x4e, 0xb1, 0x61, 0x37, 0x68, 0x42, 0xe8, 0x7e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x2f, 0x1b, 0x92, 0x81, 0xbc, 0x6c, 0x78, 0x70, 0xd0, 0xb0, 0x9f, 0xfd, 0xb0, 0x0b, 0xb7, 0x18, 0xf8, 0x6f, 0x70, 0x74, 0xf3, 0x21, 0x75, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x98, 0x0d, 0xc9, 0x40, 0x62, 0x36, 0x9c, 0x18, 0x76, 0xe1, 0x36, 0xa4, 0x0e, 0x0e, 0xde, 0xd7, 0x64, 0xb5, 0xc1, 0xfb, 0x9a, 0xac, 0x0e, 0xa7, 0xd8, 0xb0, 0x0b, 0xb7, 0x18, 0xf8, 0x70, 0x6f, 0x73, 0xf4, 0x21, 0x75, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x99, 0x0d, 0xc9, 0x40, 0x66, 0x36, 0x3c, 0x18, 0x76, 0xe1, 0x36, 0xa4, 0x0e, 0x0e, 0xde, 0x3b, 0x65, 0xb5, 0xc1, 0x7b, 0xa7, 0xac, 0x0e, 0xa7, 0xd8, 0xb0, 0x0b, 0xb7, 0x78, 0x30, 0xd2, 0xdc, 0x0f, 0xa9, 0x83, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd4, 0x6c, 0x48, 0x06, 0x52, 0xb3, 0xe1, 0xc0, 0xb0, 0x0b, 0xb7, 0x21, 0x75, 0x70, 0xf0, 0xfe, 0x2c, 0xab, 0x0d, 0xde, 0x9f, 0x65, 0x75, 0x38, 0xc5, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xdc, 0x6c, 0x48, 0x06, 0x72, 0xb3, 0xe1, 0xc2, 0xb0, 0x0b, 0xb7, 0x21, 0x75, 0x70, 0xf0, 0x92, 0x19, 0xab, 0x0d, 0x5e, 0x32, 0x63, 0x75, 0x38, 0xc5, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x2b, 0x08, 0x36, 0x18, 0xf9, 0x0f, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x2d, 0x18, 0x37, 0x90, 0x19, 0x8c, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x0b, 0x86, 0xc9, 0x40, 0x5a, 0x30, 0xcc, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb4, 0x60, 0x48, 0x0e, 0xde, 0xa9, 0x66, 0x35, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x05, 0xc3, 0x66, 0x20, 0x2d, 0x18, 0x66, 0x07, 0x2f, 0x0a, 0x21, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x0b, 0x86, 0xdd, 0x40, 0x5a, 0x30, 0xac, 0x0f, 0x5e, 0x35, 0x09, 0x70, 0x1c, 0x3a, 0xa4, 0xe1, 0x06, 0xd9, 0x06, 0xef, 0x32, 0xb3, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x0b, 0x86, 0xc9, 0x40, 0x5e, 0x30, 0xcc, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbc, 0x60, 0x48, 0x0e, 0xde, 0x97, 0x67, 0x35, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x05, 0xc3, 0x66, 0x20, 0x2f, 0x18, 0x66, 0x07, 0x2f, 0x0a, 0x21, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x0b, 0x86, 0xdd, 0x40, 0x5e, 0x30, 0xac, 0x0f, 0x5e, 0x35, 0x09, 0x70, 0x1c, 0x3a, 0x34, 0x05, 0x1a, 0x64, 0x1b, 0xbc, 0xcb, 0xcc, 0x6a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x0c, 0x86, 0xc9, 0x40, 0x62, 0x30, 0xcc, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc4, 0x60, 0x48, 0x0e, 0xde, 0x85, 0x68, 0x35, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x06, 0xc3, 0x66, 0x20, 0x31, 0x18, 0x66, 0x07, 0x2f, 0x0a, 0x21, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x0c, 0x86, 0xdd, 0x40, 0x62, 0x30, 0xac, 0x0f, 0x5e, 0x35, 0x09, 0x70, 0x1c, 0x3a, 0xb4, 0x00, 0x3b, 0x34, 0x7f, 0x39, 0x1e, 0x2f, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xaa, 0x31, 0x6e, 0x20, 0xe3, 0x18, 0xb2, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x54, 0x63, 0x88, 0x07, 0x52, 0x8d, 0x61, 0x39, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x1a, 0x43, 0x72, 0xf0, 0x44, 0x4d, 0xab, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xd5, 0x18, 0xf2, 0x81, 0x54, 0x63, 0xd8, 0x1c, 0xbc, 0x1f, 0xa1, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xd5, 0x18, 0x46, 0x03, 0xa9, 0xc6, 0x30, 0x1c, 0x24, 0x03, 0x7d, 0xef, 0x0e, 0x2b, 0xb4, 0xc7, 0xa1, 0x43, 0x1a, 0x6e, 0x90, 0x6d, 0xf0, 0x20, 0x4b, 0xab, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xd7, 0x18, 0x37, 0x90, 0x71, 0x8c, 0x1f, 0x76, 0x83, 0xd1, 0x8b, 0xb5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x6c, 0x8c, 0x3b, 0x78, 0x6d, 0xaa, 0xd5, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xb2, 0x31, 0xc4, 0x03, 0xc9, 0xc6, 0x50, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x1b, 0x43, 0x72, 0xf0, 0xb2, 0x57, 0xab, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xd9, 0x18, 0xf2, 0x81, 0x64, 0x63, 0xd8, 0x1c, 0xbc, 0x1f, 0xa1, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x53, 0xe0, 0x97, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xb2, 0x31, 0x8c, 0x06, 0x92, 0x8d, 0xa1, 0x69, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xd9, 0x18, 0xa6, 0x03, 0xc9, 0xc6, 0x30, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x8d, 0x61, 0x75, 0xf0, 0xc2, 0x5e, 0xab, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x07, 0x8f, 0x2b, 0xb5, 0x3a, 0xa4, 0xe1, 0x06, 0xd9, 0x06, 0x0f, 0xc9, 0xb5, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x8d, 0xa1, 0x64, 0x20, 0xd9, 0x18, 0x8a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x64, 0x63, 0xd8, 0x1f, 0x3c, 0xa3, 0xd8, 0x6a, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x19, 0xf8, 0xee, 0xef, 0x90, 0xad, 0x38, 0x74, 0xd0, 0x38, 0x34, 0x7f, 0x39, 0x1e, 0x1f, 0x87, 0x0e, 0x4d, 0x81, 0x06, 0xd9, 0x06, 0xcf, 0x58, 0xb5, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x36, 0x86, 0x78, 0x20, 0xdb, 0x18, 0x26, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xb6, 0x31, 0x24, 0x07, 0xcf, 0x72, 0xb6, 0x3a, 0x78, 0x6d, 0x83, 0xd4, 0x20, 0xdb, 0xe0, 0x19, 0xab, 0x56, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0xc6, 0x10, 0x0f, 0xa4, 0x1b, 0xc3, 0x6e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x37, 0x86, 0xe4, 0xe0, 0xcd, 0xd4, 0x56, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xba, 0x31, 0xe4, 0x03, 0xe9, 0xc6, 0xb0, 0x39, 0x78, 0x3f, 0x42, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xba, 0x31, 0x8c, 0x06, 0xd2, 0x8d, 0x61, 0x36, 0x08, 0x36, 0x78, 0xd8, 0x5e, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa5, 0x01, 0x34, 0x87, 0x54, 0xcd, 0x71, 0xe8, 0xd0, 0xfc, 0xe5, 0x78, 0x7c, 0x1c, 0x3a, 0x58, 0xc2, 0xff, 0x33, 0xc8, 0x36, 0x78, 0xc6, 0xaa, 0xd5, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xbe, 0x31, 0xc4, 0x03, 0xf9, 0xc6, 0x30, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x8d, 0x21, 0x39, 0x78, 0xd9, 0xb9, 0xd5, 0x20, 0xd8, 0xe0, 0x61, 0x7b, 0x3d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x96, 0x06, 0xd0, 0x1c, 0x24, 0x0d, 0x20, 0x1c, 0x87, 0x06, 0xd9, 0x06, 0xcf, 0x58, 0xb5, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x8e, 0x21, 0x1e, 0x48, 0x38, 0x86, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x70, 0x0c, 0xc9, 0xc1, 0x23, 0xe0, 0xad, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x84, 0x63, 0xc8, 0x07, 0x12, 0x8e, 0x61, 0x73, 0xf0, 0x7e, 0x84, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x84, 0x63, 0x18, 0x0d, 0x24, 0x1c, 0xc3, 0x6e, 0x10, 0x6c, 0xf0, 0xb0, 0xbd, 0x9e, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x8b, 0x9d, 0x65, 0x0e, 0xa9, 0x9a, 0xe3, 0xd0, 0xa1, 0xf9, 0xcb, 0xf1, 0xf8, 0x38, 0x74, 0xd0, 0xe8, 0x84, 0xd2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x6b, 0x0c, 0xf1, 0x40, 0xae, 0x31, 0x2c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5c, 0x63, 0x48, 0x0e, 0xde, 0x1d, 0x70, 0x35, 0x08, 0x36, 0x78, 0xd8, 0x5e, 0xcf, 0xc1, 0xeb, 0xa4, 0x37, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x2b, 0x08, 0x16, 0x07, 0x7c, 0xb3, 0xb0, 0x31, 0xfa, 0x20, 0x00, 0xee, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xde, 0x32, 0x6e, 0x20, 0x77, 0x19, 0x3f, 0xec, 0xc2, 0x2d, 0x06, 0xfc, 0x70, 0x6f, 0x6b, 0x65, 0x2d, 0x61, 0x63, 0xeb, 0x21, 0x9a, 0x0b, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbc, 0x65, 0x98, 0x0d, 0xe4, 0x2d, 0x43, 0xcb, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0xe1, 0x17, 0x7e, 0x83, 0xe7, 0xf5, 0x32, 0x1d, 0xbc, 0x42, 0x2b, 0xe1, 0x60, 0x24, 0xe0, 0x1c, 0x1a, 0xb5, 0x0c, 0xbb, 0x70, 0x1b, 0xbc, 0x72, 0xe1, 0xea, 0x20, 0xa4, 0xc0, 0x0f, 0xc6, 0xc2, 0xe8, 0xb0, 0x0b, 0xb7, 0x18, 0xe0, 0x71, 0x17, 0x46, 0x37, 0x86, 0xd6, 0x12, 0x36, 0xb6, 0x1e, 0xa2, 0xb9, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x5c, 0x86, 0xdd, 0x40, 0xe2, 0x32, 0xd4, 0x1c, 0xbc, 0xff, 0xe1, 0x6a, 0xd8, 0x85, 0xdb, 0xe0, 0x3d, 0x15, 0x57, 0x07, 0x21, 0x05, 0x7e, 0x30, 0x16, 0x46, 0x87, 0x5d, 0xb8, 0xc5, 0xc0, 0x5f, 0x4b, 0x1b, 0x5b, 0x0f, 0xd1, 0x5c, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x2e, 0xc3, 0x64, 0x20, 0x73, 0x19, 0x1a, 0x0e, 0xde, 0xff, 0x70, 0x35, 0xec, 0xc2, 0x6d, 0xf0, 0x44, 0x8e, 0xab, 0x83, 0x90, 0x02, 0x3f, 0x18, 0x0b, 0xa3, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xea, 0x32, 0x24, 0x03, 0xa9, 0xcb, 0x50, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xba, 0x0c, 0xd1, 0x40, 0xea, 0x32, 0xe4, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x8e, 0x07, 0x8f, 0x3a, 0xb8, 0xda, 0xe0, 0x8d, 0x28, 0x57, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0xf0, 0x80, 0x91, 0xab, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd4, 0x65, 0x58, 0x0c, 0xa4, 0x2e, 0xc3, 0x6a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x5d, 0x86, 0xc1, 0xc1, 0xdb, 0x59, 0xae, 0x0e, 0x1e, 0x7b, 0x54, 0x34, 0xc8, 0x36, 0x78, 0xc0, 0xc8, 0xd5, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xea, 0x32, 0xec, 0x06, 0x52, 0x97, 0x61, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x2e, 0xc3, 0xec, 0xe0, 0x69, 0x33, 0x57, 0x83, 0x60, 0x83, 0xd7, 0xbe, 0x22, 0x1d, 0x3a, 0x11, 0x0d, 0xb2, 0x0d, 0x1e, 0x30, 0x72, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x2e, 0xc3, 0x7a, 0x20, 0x75, 0x19, 0x1a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd4, 0x65, 0x18, 0x1f, 0x3c, 0x4f, 0xe7, 0x6a, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0xd9, 0x60, 0xf1, 0x12, 0xd4, 0xc1, 0x78, 0xd7, 0x39, 0x74, 0x3f, 0x3a, 0x34, 0x7f, 0x39, 0x1e, 0x0f, 0x82, 0x0d, 0x52, 0xff, 0x31, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x02, 0x32, 0x6e, 0x20, 0x07, 0x19, 0x3f, 0xec, 0x86, 0x8e, 0x23, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0xc8, 0xb8, 0x83, 0x67, 0x0e, 0x5d, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x20, 0x43, 0x3c, 0x90, 0x81, 0x0c, 0xcb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x03, 0x19, 0x92, 0x81, 0x0c, 0x64, 0x68, 0x1b, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x90, 0x21, 0x1f, 0xc8, 0x40, 0x86, 0xcd, 0xc1, 0xfb, 0x11, 0x4a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x90, 0x61, 0x34, 0x90, 0x81, 0x0c, 0xc3, 0x83, 0xc7, 0x95, 0x5a, 0x1d, 0x87, 0x0e, 0x69, 0xb8, 0x41, 0xb6, 0xc1, 0xd3, 0x89, 0xae, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x14, 0x64, 0x88, 0x07, 0x52, 0x90, 0x61, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x20, 0x43, 0x32, 0x90, 0x82, 0x0c, 0x55, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x0a, 0x32, 0xe4, 0x03, 0x29, 0xc8, 0xb0, 0x39, 0x78, 0x3f, 0x42, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x0a, 0x32, 0x8c, 0x06, 0x52, 0x90, 0x61, 0x77, 0xf0, 0xec, 0x7d, 0xab, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x71, 0xe8, 0xd0, 0x41, 0x63, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x40, 0x86, 0x78, 0x20, 0x01, 0x19, 0x16, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x02, 0x32, 0x24, 0x03, 0x09, 0xc8, 0xd0, 0x34, 0x08, 0x36, 0x78, 0xd8, 0x5e, 0xcf, 0xc1, 0x3b, 0xd3, 0x2f, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4a, 0x36, 0xa4, 0x03, 0x29, 0xd9, 0xf0, 0x66, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xc9, 0x86, 0x78, 0x20, 0x25, 0x1b, 0x26, 0x07, 0x6f, 0x04, 0x28, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x94, 0x6c, 0xd8, 0x0c, 0xa4, 0x64, 0xc3, 0x7c, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x25, 0x1b, 0x66, 0x03, 0x29, 0xd9, 0x30, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0xb2, 0x61, 0x74, 0xf0, 0x72, 0xbd, 0xab, 0x83, 0xc7, 0xb8, 0xf6, 0x0c, 0xb2, 0x0d, 0x5e, 0x68, 0x77, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x64, 0xc3, 0x76, 0x20, 0x25, 0x1b, 0xd6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4a, 0x36, 0x2c, 0x0f, 0x9e, 0x15, 0x78, 0x35, 0x08, 0x36, 0x78, 0xd8, 0x5e, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa5, 0x01, 0x34, 0x87, 0x7c, 0xed, 0x71, 0xe8, 0xd0, 0xfc, 0xe5, 0x78, 0x7c, 0x1c, 0x3a, 0x34, 0x6a, 0x39, 0x34, 0x7f, 0x39, 0x1e, 0x2f, 0x08, 0x16, 0xd7, 0xa0, 0xa8, 0x16, 0x3c, 0x18, 0x63, 0x68, 0x2d, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x84, 0x6d, 0x48, 0x07, 0x12, 0xb6, 0xe1, 0xce, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xb0, 0x0d, 0xf1, 0x40, 0xc2, 0x36, 0x4c, 0x0e, 0x5e, 0xa2, 0x51, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc2, 0x36, 0x6c, 0x06, 0x12, 0xb6, 0x61, 0x77, 0xd0, 0x14, 0xf7, 0xd2, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x84, 0x6d, 0x18, 0x0e, 0x24, 0x6c, 0x43, 0xc3, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xd8, 0x86, 0xe5, 0x40, 0xc2, 0x36, 0xac, 0x0f, 0xde, 0x8f, 0x50, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xb0, 0x0d, 0xf3, 0x81, 0x84, 0x6d, 0x28, 0x38, 0x78, 0x25, 0xb8, 0xd5, 0xa1, 0xf9, 0xcb, 0xf1, 0xf8, 0x38, 0x74, 0x1c, 0x3a, 0x34, 0x6a, 0x39, 0x34, 0x7f, 0x39, 0x1e, 0xaf, 0x20, 0x58, 0x9c, 0x0d, 0x1e, 0x26, 0x16, 0xd4, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x43, 0xc6, 0x0d, 0x64, 0x23, 0x43, 0xb6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x87, 0x0c, 0xc9, 0x40, 0x1e, 0x32, 0x64, 0x87, 0x66, 0x91, 0x83, 0x6c, 0x83, 0x57, 0x93, 0x5e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0xc8, 0xb8, 0x81, 0x6c, 0x64, 0xfc, 0xb0, 0x0b, 0xb7, 0xc1, 0x6b, 0xc1, 0x82, 0x0e, 0x8d, 0x04, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x91, 0x21, 0x19, 0xc8, 0x45, 0x86, 0xae, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5c, 0x64, 0x88, 0x06, 0x72, 0x91, 0x21, 0x1f, 0x76, 0xe1, 0x36, 0x34, 0x12, 0x3c, 0x78, 0x2d, 0x58, 0xd0, 0x06, 0xaf, 0x05, 0x0b, 0x3a, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x37, 0xbb, 0x5e, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x22, 0xc3, 0x6c, 0x20, 0x17, 0x19, 0x96, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x2e, 0x32, 0x0c, 0x0e, 0x9e, 0x8b, 0x7b, 0x35, 0x08, 0x36, 0x78, 0xd8, 0x5e, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xc5, 0xce, 0x32, 0x87, 0xc6, 0x45, 0xc7, 0xa1, 0x41, 0xb6, 0xc1, 0x9b, 0x5d, 0xaf, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5c, 0x64, 0x28, 0x18, 0xc8, 0x45, 0x86, 0xaa, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x17, 0x19, 0xa6, 0x07, 0x8f, 0x0a, 0xbe, 0x1a, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x91, 0xa1, 0x61, 0x20, 0x17, 0x19, 0x5a, 0x0e, 0xde, 0x8f, 0x50, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x8b, 0x0c, 0x35, 0x03, 0xb9, 0xc8, 0xd0, 0x74, 0xf0, 0xec, 0x7d, 0xab, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x71, 0xe8, 0xd0, 0xfd, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x46, 0x86, 0x64, 0x20, 0x19, 0x19, 0xa6, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xc8, 0x10, 0x0d, 0x24, 0x23, 0x43, 0x3e, 0xec, 0xc2, 0x6d, 0x68, 0x24, 0x78, 0xf0, 0x24, 0xb1, 0xa0, 0x0d, 0x9e, 0x24, 0x16, 0x74, 0x38, 0xc5, 0x06, 0xd9, 0x06, 0xaf, 0x79, 0xbe, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x91, 0x61, 0x36, 0x90, 0x8c, 0x0c, 0xcb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x19, 0x19, 0x06, 0x07, 0xaf, 0xc8, 0xbe, 0x1a, 0x04, 0x1b, 0x3c, 0x6c, 0xaf, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x62, 0x67, 0x99, 0x43, 0xc7, 0xb0, 0xe3, 0xd0, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x05, 0xc1, 0xe2, 0x41, 0xb3, 0x3f, 0x5e, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x6b, 0x17, 0x37, 0x90, 0xcd, 0x8b, 0x1f, 0x76, 0x61, 0x37, 0x58, 0x62, 0x69, 0xb5, 0x21, 0x86, 0x07, 0x0f, 0xda, 0x1a, 0x5a, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xed, 0xc2, 0x76, 0x20, 0x6f, 0x17, 0x4a, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0xbf, 0xc1, 0xbb, 0x0a, 0x88, 0x06, 0xc9, 0xc0, 0xd3, 0x55, 0xc7, 0xe3, 0x43, 0xa3, 0x96, 0x61, 0x17, 0x76, 0xe1, 0x36, 0x58, 0x6e, 0x69, 0x75, 0x10, 0x52, 0xe0, 0x1b, 0x62, 0x38, 0xdc, 0x06, 0x8f, 0xdb, 0x1a, 0x3a, 0x08, 0x29, 0xf0, 0x83, 0xb1, 0x30, 0x3a, 0xec, 0xc2, 0x2d, 0x06, 0xf8, 0xcc, 0x95, 0xd1, 0xb5, 0x8c, 0xbd, 0xb9, 0x99, 0xa5, 0x9d, 0x87, 0x68, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xee, 0x42, 0x32, 0x90, 0xbd, 0x0b, 0x1d, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0xbb, 0x10, 0x0d, 0x64, 0xef, 0xc2, 0x6a, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x57, 0xb9, 0x5f, 0x6d, 0xf0, 0x2a, 0xf7, 0xab, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x78, 0x1c, 0xfc, 0xd5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xbd, 0x0b, 0xbb, 0x81, 0xec, 0x5d, 0xa8, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x77, 0x61, 0x76, 0xf0, 0x20, 0xfd, 0xab, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x64, 0x60, 0xab, 0xeb, 0x78, 0x7c, 0xe8, 0xa0, 0x31, 0xec, 0xc2, 0x2d, 0x06, 0xfc, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0xf3, 0x21, 0x9a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0xbc, 0x90, 0x0c, 0x24, 0xf0, 0x42, 0xc3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x02, 0x2f, 0x44, 0x03, 0x09, 0xbc, 0xb0, 0x19, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0xb5, 0xff, 0x57, 0x1b, 0xbc, 0xf6, 0xff, 0xea, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0x9e, 0x18, 0x80, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xf0, 0xc2, 0x70, 0x20, 0x81, 0x17, 0x0a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x04, 0x5e, 0x18, 0x1d, 0x3c, 0x6b, 0x01, 0x6b, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xe0, 0x85, 0xe5, 0x40, 0x02, 0x2f, 0x8c, 0x0f, 0x5e, 0x14, 0x42, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xc0, 0x0b, 0xeb, 0x81, 0x04, 0x5e, 0xd8, 0x1f, 0xbc, 0x12, 0xdc, 0xea, 0xd0, 0xfc, 0xe5, 0x78, 0x7c, 0x1c, 0x3a, 0x74, 0xd0, 0x18, 0x76, 0xe1, 0x16, 0x03, 0x7e, 0xb9, 0xb2, 0x39, 0xb8, 0x37, 0xb7, 0xb9, 0xf2, 0x10, 0xcd, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1c, 0x5e, 0x48, 0x06, 0x72, 0x78, 0xa1, 0x65, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x87, 0x17, 0xa2, 0x81, 0x1c, 0x5e, 0xd8, 0x0c, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xf0, 0xa8, 0x0c, 0xac, 0x0d, 0x1e, 0x95, 0x81, 0x75, 0x38, 0xc5, 0x06, 0xd9, 0x06, 0x2f, 0xd9, 0xc0, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x78, 0x61, 0x35, 0x90, 0xc3, 0x0b, 0x25, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x0e, 0x2f, 0x8c, 0x0e, 0x5e, 0x4f, 0x82, 0x35, 0x08, 0x36, 0x78, 0x43, 0xa1, 0xcf, 0xa1, 0x83, 0xc6, 0xb0, 0x0b, 0xb7, 0x18, 0xf0, 0x88, 0xbd, 0xd5, 0xb9, 0x91, 0x87, 0x68, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xf1, 0x42, 0x32, 0x90, 0xc9, 0x0b, 0x2d, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0xbc, 0x10, 0x0d, 0x64, 0xf2, 0xc2, 0x60, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x77, 0xa6, 0x60, 0x6d, 0xf0, 0xce, 0x14, 0xac, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x78, 0xc4, 0x0a, 0xd6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x26, 0x2f, 0x4c, 0x07, 0x32, 0x79, 0x61, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xf2, 0xc2, 0xe2, 0xe0, 0xe9, 0x34, 0x58, 0x07, 0xc3, 0x8b, 0x77, 0x90, 0x6d, 0xf0, 0x88, 0x15, 0xac, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x93, 0x17, 0xd6, 0x03, 0x99, 0xbc, 0x50, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xf2, 0xc2, 0xf8, 0xe0, 0x45, 0x3b, 0x58, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x0e, 0x96, 0xa8, 0x77, 0x1d, 0x5a, 0x80, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xbc, 0x90, 0x0c, 0x24, 0xf3, 0xc2, 0x6c, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x99, 0x17, 0xa2, 0x81, 0x64, 0x5e, 0xc8, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x1c, 0x0f, 0x1a, 0xfe, 0xf1, 0xda, 0xe0, 0xd1, 0x45, 0x58, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0xf0, 0x24, 0x20, 0xac, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x99, 0x17, 0x16, 0x03, 0xc9, 0xbc, 0xb0, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x79, 0x61, 0x70, 0xf0, 0x12, 0x25, 0xac, 0x83, 0x67, 0xe2, 0x0b, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x57, 0x10, 0x2c, 0xce, 0x1c, 0xbc, 0x86, 0xe9, 0x68, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x0e, 0xe3, 0x06, 0x12, 0x89, 0xf1, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0xc3, 0x30, 0x19, 0xc8, 0x1d, 0x86, 0x8e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x77, 0x18, 0x92, 0x83, 0x47, 0x51, 0x61, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0xc3, 0xb0, 0x19, 0xc8, 0x1d, 0x86, 0xd9, 0xc1, 0xab, 0x9a, 0x84, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x1d, 0x86, 0xdd, 0x40, 0xee, 0x30, 0x4c, 0x0f, 0x9e, 0xbd, 0x6f, 0x75, 0x68, 0xfe, 0x72, 0x3c, 0x1e, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x3b, 0x0c, 0xdb, 0x81, 0xdc, 0x61, 0xa8, 0x18, 0x24, 0x03, 0x4b, 0x77, 0xc7, 0xe3, 0xe3, 0xd0, 0x21, 0x0d, 0x37, 0xc8, 0x36, 0x78, 0x04, 0x14, 0xd6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xfa, 0x30, 0x4c, 0x06, 0xd2, 0x87, 0xa1, 0x63, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x1f, 0x86, 0xe4, 0xe0, 0x89, 0x68, 0x58, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xfa, 0x30, 0x6c, 0x06, 0xd2, 0x87, 0x61, 0x76, 0xf0, 0xaa, 0x26, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x87, 0x61, 0x37, 0x90, 0x3e, 0x0c, 0xd3, 0x83, 0x67, 0xef, 0x5b, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x0f, 0xc3, 0x76, 0x20, 0x7d, 0x18, 0x2a, 0x0e, 0x4e, 0xbb, 0xb4, 0xc7, 0xa1, 0x43, 0x53, 0xa0, 0x41, 0xb6, 0xc1, 0x23, 0xa0, 0xb0, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x88, 0x61, 0x32, 0x90, 0x41, 0x0c, 0x25, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x06, 0x31, 0x24, 0x07, 0xaf, 0xe3, 0xc3, 0x1a, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x88, 0x61, 0x33, 0x90, 0x41, 0x0c, 0xb3, 0x83, 0x57, 0x35, 0x09, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x41, 0x0c, 0xbb, 0x81, 0x0c, 0x62, 0xd8, 0x1e, 0xbc, 0x3a, 0x5c, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x06, 0x31, 0x8c, 0x07, 0x32, 0x88, 0xa1, 0x63, 0x90, 0x0c, 0x08, 0xba, 0xae, 0xe3, 0xf1, 0x71, 0xe8, 0xd0, 0x89, 0x68, 0x90, 0x6d, 0xf0, 0x08, 0x28, 0xac, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x8f, 0x18, 0x26, 0x03, 0x79, 0xc4, 0xd0, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x11, 0x43, 0x72, 0xf0, 0xa2, 0x47, 0xac, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x3c, 0x62, 0x18, 0x0e, 0xe4, 0x11, 0x43, 0xc3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x47, 0x0c, 0x9b, 0x83, 0xb7, 0x51, 0x62, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0xc4, 0xb0, 0x1c, 0xc8, 0x23, 0x86, 0xf5, 0xc1, 0xfb, 0x11, 0x4a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x88, 0x61, 0x3e, 0x90, 0x47, 0x0c, 0x05, 0x07, 0xaf, 0x04, 0xb7, 0x3a, 0x34, 0x7f, 0x39, 0x1e, 0x1f, 0x87, 0x0e, 0x96, 0xf0, 0xff, 0x0c, 0xb2, 0x0d, 0xde, 0xd7, 0x88, 0x35, 0xc8, 0x36, 0x78, 0x04, 0x24, 0xd6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x1e, 0x31, 0xf4, 0x0c, 0xe4, 0x11, 0x43, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x47, 0x0c, 0x15, 0x07, 0x6f, 0x2e, 0xc5, 0x1a, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x88, 0xa1, 0x68, 0x20, 0x8f, 0x18, 0xca, 0x0e, 0xde, 0x8f, 0x50, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x47, 0x0c, 0x6d, 0x03, 0x79, 0xc4, 0xd0, 0x77, 0xf0, 0x4a, 0x70, 0xab, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x71, 0xe8, 0xe0, 0x3d, 0x87, 0x19, 0x83, 0x6c, 0x83, 0xf7, 0x35, 0x62, 0x0d, 0xb2, 0x0d, 0x1e, 0x01, 0x89, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x11, 0x43, 0xe5, 0x40, 0x1e, 0x31, 0xd4, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0xc4, 0xd0, 0x78, 0xf0, 0x9e, 0x5b, 0xac, 0x41, 0xb0, 0xc1, 0xeb, 0x90, 0xad, 0x0e, 0x1a, 0x9d, 0x50, 0x3a, 0x34, 0x7f, 0x39, 0x1e, 0x0f, 0x82, 0x0d, 0x96, 0x85, 0xc1, 0x2c, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x2c, 0x6a, 0xdc, 0x40, 0x4e, 0x35, 0x7e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x8f, 0x1a, 0x06, 0x03, 0x79, 0xd4, 0xd0, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x51, 0x43, 0x72, 0xf0, 0xf2, 0x60, 0xac, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x8f, 0x1a, 0x16, 0x03, 0x79, 0xd4, 0xb0, 0x3a, 0x78, 0x3f, 0x42, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x51, 0xc3, 0x6c, 0x20, 0x8f, 0x1a, 0xaa, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xa8, 0x61, 0x3b, 0x90, 0x47, 0x0d, 0xfb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x8f, 0x1a, 0x76, 0x07, 0xaf, 0x7e, 0xc6, 0x1a, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x48, 0x06, 0x94, 0xfe, 0x7d, 0x07, 0xe3, 0x5d, 0xe7, 0x90, 0x86, 0x1b, 0x64, 0x1b, 0x3c, 0x6e, 0x19, 0x6b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xa3, 0x86, 0x96, 0x81, 0x3c, 0x6a, 0x68, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xa8, 0xa1, 0xe0, 0xe0, 0x01, 0xd8, 0x58, 0x83, 0x60, 0x83, 0xb7, 0x4c, 0x63, 0x1d, 0x3a, 0x68, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x8f, 0x43, 0x87, 0x34, 0xdc, 0x20, 0xdb, 0xe0, 0xa5, 0xbd, 0x58, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xd4, 0x90, 0x0f, 0xa4, 0x52, 0xc3, 0x62, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xa5, 0x86, 0xe4, 0xe0, 0x4d, 0xe0, 0x58, 0xc3, 0x6f, 0x48, 0x2e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xd4, 0x30, 0x38, 0x78, 0x13, 0x38, 0xd6, 0xe1, 0x68, 0x1f, 0x64, 0x1b, 0xbc, 0xb4, 0x17, 0x6b, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x9b, 0x1a, 0xd2, 0x81, 0x6c, 0x6a, 0x88, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x6c, 0x6a, 0x48, 0x0e, 0x1e, 0x9a, 0x8e, 0x75, 0xf0, 0x1e, 0xaf, 0x8c, 0x41, 0xb6, 0xc1, 0x4b, 0x7b, 0xb1, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x94, 0x6a, 0x98, 0x0c, 0xa4, 0x54, 0xc3, 0x66, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xa9, 0x86, 0xe4, 0xe0, 0x0d, 0xf0, 0x58, 0xc3, 0x6e, 0x70, 0x3c, 0x5e, 0xdf, 0x10, 0xc3, 0x61, 0x17, 0x6e, 0xc3, 0xd1, 0x7e, 0x30, 0x32, 0x7b, 0x0f, 0x6d, 0x1e, 0x0f, 0xcd, 0x5f, 0x8e, 0xc7, 0x0b, 0x82, 0xc5, 0xd9, 0xa0, 0x09, 0xed, 0xeb, 0x83, 0x31, 0x86, 0xb6, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x76, 0x71, 0x03, 0x39, 0xbb, 0x90, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xec, 0x42, 0x3c, 0x90, 0xb0, 0x0b, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xb0, 0x0b, 0xc9, 0xc1, 0x2b, 0xf9, 0xb1, 0x86, 0xdd, 0x90, 0xc7, 0xda, 0x10, 0xc3, 0x61, 0x37, 0x34, 0x5c, 0x3c, 0xb4, 0x79, 0x1c, 0x64, 0x1b, 0xbc, 0x09, 0x1f, 0x6b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xd9, 0xc5, 0x0d, 0xe4, 0xec, 0xe2, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x8c, 0x5d, 0xdc, 0xc1, 0x5b, 0x08, 0xb2, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x94, 0x5d, 0x48, 0x06, 0x52, 0x76, 0xa1, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x65, 0x17, 0xa2, 0x81, 0x94, 0x5d, 0x98, 0x0c, 0xbb, 0x70, 0x1b, 0x1a, 0x09, 0x8e, 0x07, 0x4d, 0x68, 0x5f, 0x6f, 0xf0, 0x86, 0x86, 0xac, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x78, 0xd9, 0x41, 0xd6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xb2, 0x0b, 0xa3, 0x81, 0x94, 0x5d, 0xe8, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x76, 0x61, 0x73, 0xf0, 0xb0, 0x88, 0xac, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0xc3, 0x6f, 0xf0, 0xf2, 0xc1, 0x9e, 0x83, 0x25, 0x66, 0x29, 0x87, 0x16, 0x60, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x15, 0x04, 0x8b, 0x07, 0x05, 0xb5, 0xd8, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xda, 0xc6, 0x0d, 0xe4, 0x6d, 0xe3, 0x87, 0xdd, 0x90, 0xc7, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xda, 0x86, 0x64, 0x20, 0x6b, 0x1b, 0x5e, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x6d, 0x43, 0x34, 0x90, 0xb5, 0x0d, 0xe1, 0xa1, 0x59, 0xe4, 0x20, 0xdb, 0xe0, 0xf5, 0x1b, 0x59, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xd6, 0x36, 0xe4, 0x03, 0x59, 0xdb, 0xb0, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0xb6, 0x21, 0x3d, 0x78, 0x01, 0x49, 0xd6, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x83, 0xa6, 0xb8, 0x97, 0x0e, 0x1d, 0x34, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb4, 0x6d, 0x48, 0x06, 0xd2, 0xb6, 0xe1, 0xc5, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xda, 0x36, 0x44, 0x03, 0x69, 0xdb, 0x10, 0x1e, 0xfa, 0x34, 0x0e, 0xb2, 0x0d, 0x5e, 0x90, 0x92, 0xb5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xb6, 0x0d, 0xf9, 0x40, 0xda, 0x36, 0x6c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb4, 0x6d, 0x48, 0x0f, 0xde, 0x11, 0x93, 0x35, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x90, 0x0c, 0x08, 0xbe, 0xae, 0xe3, 0xf1, 0xa1, 0x29, 0xd0, 0x20, 0xdb, 0xe0, 0x05, 0x29, 0x59, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xda, 0x36, 0xcc, 0x06, 0xd2, 0xb6, 0x61, 0x3a, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x6d, 0xc3, 0xe8, 0xe0, 0x09, 0x39, 0x59, 0x83, 0x60, 0x83, 0x17, 0x94, 0x78, 0x1c, 0x5a, 0x80, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xef, 0x18, 0x06, 0x03, 0x79, 0xc7, 0xd0, 0xb7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x77, 0x0c, 0x93, 0x81, 0xbc, 0x63, 0xd8, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0xc7, 0xb0, 0x38, 0x78, 0xe0, 0x50, 0xd6, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x77, 0x0c, 0x9b, 0x81, 0xbc, 0x63, 0x98, 0x0d, 0x92, 0x81, 0x77, 0xfa, 0x0e, 0xc6, 0xbb, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xde, 0x31, 0xec, 0x06, 0xf2, 0x8e, 0x61, 0x7a, 0xf0, 0xec, 0x7d, 0xab, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x71, 0xe8, 0x90, 0x86, 0x1b, 0x64, 0x1b, 0xbc, 0xe3, 0x27, 0x6b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x3b, 0x86, 0xf5, 0x40, 0xde, 0x31, 0xd4, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0xc7, 0x30, 0x3e, 0x78, 0x17, 0x55, 0xd6, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x77, 0x0c, 0xf3, 0x81, 0xbc, 0x63, 0x68, 0x38, 0x78, 0x55, 0x93, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0xc7, 0x50, 0x31, 0x90, 0x77, 0x0c, 0x2d, 0x07, 0xcf, 0xde, 0xb7, 0x3a, 0x34, 0x7f, 0x39, 0x1e, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x3b, 0x86, 0x9a, 0x81, 0xbc, 0x63, 0x68, 0x1b, 0x24, 0x03, 0xd5, 0xea, 0x78, 0x7c, 0x1c, 0x3a, 0x74, 0xd0, 0x38, 0x34, 0x7f, 0x39, 0x1e, 0x2f, 0x08, 0x16, 0x37, 0x78, 0xcf, 0x8c, 0xd5, 0xe1, 0x14, 0x5b, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0xd9, 0x90, 0x0e, 0x64, 0x67, 0xc3, 0x97, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xec, 0x6c, 0x18, 0x0c, 0x64, 0x67, 0xc3, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xce, 0x86, 0xf8, 0xe0, 0xad, 0x6c, 0x59, 0x83, 0x60, 0x83, 0xe7, 0x50, 0x2b, 0x1d, 0xd2, 0x70, 0x83, 0x6c, 0x83, 0x27, 0xa1, 0x65, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x67, 0xc3, 0x6e, 0x20, 0x3b, 0x1b, 0xb6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x76, 0x36, 0xac, 0x0e, 0x9e, 0x3b, 0x97, 0x35, 0x08, 0x36, 0x78, 0xa6, 0x31, 0xd4, 0xa1, 0x29, 0xd0, 0x20, 0xdb, 0xe0, 0x49, 0x68, 0x59, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x76, 0x36, 0xcc, 0x07, 0xb2, 0xb3, 0xa1, 0x69, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xce, 0x86, 0xf1, 0xc1, 0x93, 0xf5, 0xb2, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xec, 0x6c, 0xd8, 0x0f, 0x64, 0x67, 0x43, 0xc7, 0xc1, 0xfb, 0x11, 0x4a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0xb3, 0xa1, 0x64, 0x20, 0x3b, 0x1b, 0x8a, 0x0e, 0xde, 0x77, 0xdb, 0x73, 0x1c, 0x3a, 0xb4, 0x00, 0x3b, 0x34, 0x7f, 0x39, 0x1e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0xe1, 0x90, 0x0e, 0xe4, 0x86, 0xc3, 0x8b, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x64, 0x40, 0xe8, 0xf7, 0x1d, 0x8c, 0x77, 0x9d, 0x43, 0xa3, 0x96, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x60, 0x71, 0xc0, 0x7f, 0xab, 0x93, 0x9b, 0x5b, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xc9, 0xb8, 0x81, 0xfc, 0x64, 0xfc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x9b, 0x8c, 0x3b, 0x78, 0x50, 0x64, 0xd6, 0xb0, 0x0b, 0xb7, 0x78, 0xf0, 0x20, 0xc7, 0xac, 0x43, 0x34, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x93, 0x21, 0x19, 0x48, 0x4e, 0x86, 0x23, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xc9, 0x10, 0x0d, 0x24, 0x27, 0x43, 0x3e, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0x3b, 0x29, 0xb3, 0x36, 0x78, 0x27, 0x65, 0xd6, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0xbc, 0xb9, 0x32, 0x6b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x4e, 0x86, 0xc1, 0x40, 0x72, 0x32, 0x2c, 0x0e, 0x86, 0xe6, 0xef, 0xb0, 0x1b, 0xbc, 0x56, 0x3c, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x3b, 0x19, 0x92, 0x81, 0xec, 0x64, 0x78, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x9d, 0x0c, 0xd1, 0x40, 0x76, 0x32, 0xe4, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0xbc, 0x5c, 0x3c, 0x68, 0x83, 0x97, 0x8b, 0x07, 0x1d, 0x4e, 0xb1, 0x41, 0xb6, 0xc1, 0x3b, 0x43, 0xb3, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xec, 0x64, 0x18, 0x0d, 0x64, 0x27, 0xc3, 0x6c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x4e, 0x86, 0xc1, 0xc1, 0xdb, 0x56, 0xb3, 0x06, 0xc1, 0x06, 0x0f, 0xdb, 0xeb, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x70, 0xa8, 0xb7, 0x3d, 0xe4, 0x6b, 0x8f, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x7a, 0x32, 0x24, 0x03, 0xe9, 0xc9, 0x70, 0x67, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x3d, 0x19, 0xa2, 0x81, 0xf4, 0x64, 0xc8, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x1c, 0x03, 0x5f, 0xae, 0x2c, 0x8c, 0xdd, 0xe0, 0xf1, 0xb6, 0x59, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0xf0, 0xb0, 0xd8, 0xac, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x3d, 0x19, 0x46, 0x03, 0xe9, 0xc9, 0x30, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x93, 0x61, 0x70, 0xf0, 0xb2, 0xdd, 0xac, 0x83, 0x27, 0xba, 0x66, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x3f, 0x1b, 0xd2, 0x81, 0xfc, 0x6c, 0x78, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x9f, 0x0d, 0x83, 0x81, 0xfc, 0x6c, 0x98, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0xd9, 0x10, 0x1f, 0x3c, 0xa8, 0x38, 0x6b, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xcf, 0x86, 0xc5, 0x40, 0x7e, 0x36, 0xac, 0x0e, 0xde, 0x8f, 0x50, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x9f, 0x0d, 0xb3, 0x81, 0xfc, 0x6c, 0x58, 0x1e, 0xbc, 0x6b, 0x75, 0xe8, 0xd0, 0xfc, 0xe5, 0x78, 0x7c, 0x1c, 0x3a, 0xa4, 0xe1, 0x06, 0xd9, 0x06, 0xef, 0x06, 0xce, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xb3, 0x61, 0x3d, 0x90, 0x9f, 0x0d, 0x35, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x7e, 0x36, 0x6c, 0x0f, 0x5e, 0x59, 0x9d, 0x35, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x67, 0xc3, 0x7c, 0x20, 0x3f, 0x1b, 0x2a, 0x0e, 0xde, 0x08, 0x50, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x9f, 0x0d, 0x1d, 0x03, 0xf9, 0xd9, 0xd0, 0x72, 0xf0, 0x4a, 0x70, 0xab, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x71, 0xe8, 0xd0, 0x41, 0xe3, 0xd0, 0xfc, 0xe5, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x7b, 0xe3, 0x06, 0xd2, 0xbd, 0xa1, 0x6f, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0xde, 0x30, 0x1f, 0x48, 0xf7, 0x86, 0xba, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xee, 0x0d, 0xfb, 0x81, 0x74, 0x6f, 0xe8, 0x38, 0x68, 0xa0, 0xe2, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x74, 0x6f, 0x28, 0x19, 0x48, 0xf7, 0x86, 0xa6, 0x83, 0xd7, 0xaa, 0x58, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xf7, 0x86, 0xaa, 0x81, 0x74, 0x6f, 0x68, 0x3b, 0x38, 0xff, 0x84, 0x1f, 0x87, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0xbd, 0x21, 0x1d, 0x48, 0xf7, 0x86, 0xf5, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xf7, 0x86, 0x78, 0x20, 0xdd, 0x1b, 0x26, 0x07, 0x0d, 0x54, 0xbc, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xee, 0x0d, 0x9b, 0x81, 0x74, 0x6f, 0x18, 0x1e, 0x3c, 0xd6, 0xc2, 0x6a, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xba, 0x37, 0x2c, 0x07, 0xd2, 0xbd, 0x61, 0x7c, 0xb0, 0x7a, 0x13, 0xed, 0x38, 0x34, 0x08, 0x36, 0x08, 0xb2, 0xf8, 0xc5, 0x41, 0xb0, 0xf0, 0x1b, 0xb2, 0x15, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xba, 0x37, 0x04, 0x03, 0xe9, 0xde, 0x10, 0x1e, 0xb4, 0xc1, 0xf0, 0x7e, 0xb0, 0x12, 0x5f, 0xe4, 0x78, 0xbc, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x12, 0x0c, 0xf9, 0x40, 0x4a, 0x30, 0xec, 0x06, 0xc1, 0x06, 0x0f, 0xdb, 0xeb, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x31, 0xe0, 0xa5, 0x7b, 0x93, 0x4b, 0x3b, 0x4b, 0x73, 0x0f, 0xa9, 0x9a, 0xe3, 0xd0, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x9f, 0x71, 0x03, 0x79, 0xd0, 0xf8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x0c, 0x68, 0x88, 0x07, 0x32, 0xa0, 0x61, 0x37, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x3f, 0x43, 0x72, 0xf0, 0x44, 0x0b, 0xad, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x03, 0x1a, 0xf2, 0x81, 0x0c, 0x68, 0xd8, 0x1c, 0xbc, 0x1f, 0xa1, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x03, 0x1a, 0x46, 0x03, 0x19, 0xd0, 0x30, 0x3b, 0x78, 0x25, 0xb8, 0xd5, 0xa1, 0xf9, 0xcb, 0xf1, 0xf8, 0x38, 0x74, 0x48, 0xc3, 0x0d, 0xb2, 0x0d, 0xde, 0x24, 0xa1, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x41, 0x43, 0x3c, 0x90, 0x06, 0x0d, 0xbb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x09, 0x1a, 0x92, 0x83, 0x57, 0x9b, 0x68, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0xd0, 0x90, 0x0f, 0xa4, 0x41, 0xc3, 0xe6, 0xe0, 0x8d, 0x00, 0x25, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0xd0, 0x30, 0x1a, 0x48, 0x83, 0x86, 0xd9, 0xc1, 0x2b, 0xc1, 0xad, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc7, 0xa1, 0x43, 0x07, 0x8d, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x60, 0x71, 0x83, 0x47, 0x25, 0x5e, 0xcd, 0xc1, 0x93, 0xcd, 0xb2, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x16, 0x36, 0xa4, 0x03, 0x59, 0xd8, 0x70, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x0b, 0x1b, 0x06, 0x03, 0x59, 0xd8, 0x30, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0xb0, 0x21, 0x3e, 0x78, 0xe1, 0x8e, 0xd6, 0x20, 0xd8, 0xe0, 0x59, 0x27, 0x59, 0x87, 0x34, 0xdc, 0x20, 0xdb, 0xe0, 0x21, 0x37, 0x5a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0xd8, 0xb0, 0x1b, 0xc8, 0xc2, 0x86, 0xe5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x85, 0x0d, 0xab, 0x83, 0x47, 0x0a, 0x69, 0x0d, 0x82, 0x0d, 0x1e, 0xb6, 0xd7, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0x50, 0x6f, 0x7b, 0xe8, 0x21, 0x74, 0x1c, 0x1a, 0x64, 0x1b, 0x3c, 0xe4, 0x46, 0x6b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xc2, 0x86, 0xf1, 0x40, 0x16, 0x36, 0x14, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0xd8, 0x30, 0x3d, 0x78, 0xc7, 0x92, 0xd6, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0x32, 0x60, 0xd8, 0x75, 0x1d, 0x8f, 0x0f, 0x2d, 0xc0, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x2b, 0x08, 0x36, 0x58, 0x16, 0x06, 0xb3, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0xc3, 0x21, 0x1d, 0x48, 0x0d, 0x87, 0x37, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xe1, 0x30, 0x18, 0x48, 0x0d, 0x87, 0xed, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x1a, 0x0e, 0xf1, 0xc1, 0x63, 0xad, 0xb4, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd4, 0x70, 0x58, 0x0c, 0xa4, 0x86, 0xc3, 0xea, 0xe0, 0x8d, 0x00, 0x25, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xe1, 0x30, 0x1b, 0x48, 0x0d, 0x87, 0xe9, 0xc1, 0x40, 0x82, 0x3a, 0x0e, 0x1d, 0xd2, 0x70, 0x83, 0x6c, 0x83, 0x37, 0x49, 0x69, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x86, 0xc3, 0x7c, 0x20, 0x35, 0x1c, 0x2a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd4, 0x70, 0x18, 0x1f, 0x3c, 0xaf, 0x4c, 0xeb, 0xe0, 0x09, 0x43, 0x47, 0x83, 0x6c, 0x83, 0x37, 0x49, 0x69, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x86, 0x43, 0xcb, 0x40, 0x6a, 0x38, 0x34, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xe1, 0xd0, 0x71, 0xf0, 0xfe, 0x35, 0xad, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x64, 0xa0, 0x7f, 0xd7, 0xf1, 0xf8, 0xd0, 0x89, 0x68, 0x90, 0x6d, 0xf0, 0x26, 0x29, 0xad, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x35, 0x1c, 0xca, 0x06, 0x52, 0xc3, 0xa1, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x0d, 0x87, 0xaa, 0x83, 0xa7, 0xcf, 0x69, 0x1d, 0xbc, 0x7f, 0x45, 0xe8, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x20, 0x58, 0xdc, 0xe0, 0x25, 0xec, 0x41, 0x07, 0x87, 0xd3, 0x8b, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x57, 0x8d, 0x1b, 0xc8, 0xae, 0xc6, 0x0f, 0xbb, 0x70, 0x8b, 0x81, 0x3f, 0x56, 0x26, 0x47, 0x1f, 0xa2, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x59, 0x0d, 0xc9, 0x40, 0x66, 0x35, 0x34, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x56, 0x43, 0x34, 0x90, 0x59, 0x0d, 0xf9, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x6f, 0xe6, 0xd3, 0xda, 0xe0, 0xcd, 0x7c, 0x5a, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0xf0, 0x0c, 0x3f, 0xad, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xb3, 0x1a, 0x56, 0x03, 0x99, 0xd5, 0x50, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x56, 0xc3, 0xe0, 0xe0, 0xe5, 0x87, 0x5a, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x66, 0x35, 0xcc, 0x06, 0x32, 0xab, 0x61, 0x7a, 0xf0, 0x7e, 0x84, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xac, 0x86, 0xed, 0x40, 0x66, 0x35, 0xf4, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x56, 0x43, 0xc1, 0x40, 0x66, 0x35, 0x94, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0xd5, 0x30, 0x3e, 0x78, 0x77, 0xa5, 0xd6, 0xc1, 0xe3, 0xa5, 0xb1, 0x06, 0xd9, 0x06, 0xaf, 0x8b, 0xd4, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0xab, 0xa1, 0x6a, 0x20, 0xb3, 0x1a, 0xea, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xcc, 0x6a, 0x68, 0x39, 0x78, 0x16, 0xa7, 0xd6, 0xc1, 0x4b, 0xb6, 0xb1, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc7, 0xa1, 0x43, 0x07, 0x8d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xb9, 0x1a, 0x92, 0x81, 0xe4, 0x6a, 0xa8, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xae, 0x86, 0x68, 0x20, 0xb9, 0x1a, 0xf2, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0xde, 0xc0, 0x1e, 0xb4, 0xc1, 0x1b, 0xd8, 0x83, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0xe0, 0x7d, 0xa1, 0x5a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xd5, 0xb0, 0x1b, 0x48, 0xae, 0x86, 0x8e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xb9, 0x1a, 0x06, 0x07, 0x8f, 0x5a, 0xd5, 0x1a, 0x76, 0xe1, 0x36, 0x78, 0x7f, 0x96, 0xd5, 0xa1, 0x91, 0xe0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x72, 0x35, 0x2c, 0x07, 0x92, 0xab, 0x61, 0x3d, 0xec, 0xc2, 0x6d, 0x68, 0x24, 0x78, 0xf0, 0xfe, 0x2c, 0xab, 0x83, 0x07, 0x7b, 0x59, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xd5, 0x30, 0x1f, 0x48, 0xae, 0x86, 0x8a, 0x61, 0x17, 0x6e, 0x43, 0x23, 0xc1, 0x83, 0xa7, 0x7e, 0x24, 0x1d, 0x3c, 0xdc, 0x24, 0x69, 0x90, 0x6d, 0xf0, 0xbe, 0x50, 0xad, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xb9, 0x1a, 0x5a, 0x06, 0x92, 0xab, 0xa1, 0x69, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xae, 0x86, 0x92, 0x83, 0xa7, 0xed, 0x6a, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x24, 0x03, 0xa5, 0xef, 0x78, 0x7e, 0x68, 0x01, 0x76, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x10, 0x2c, 0xce, 0x00, 0x1e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x68, 0x6f, 0x73, 0x74, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x11, 0x1b, 0xd2, 0x81, 0x4c, 0x6c, 0x68, 0x19, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0xb1, 0x61, 0x31, 0x90, 0x88, 0x0d, 0xab, 0x83, 0xf7, 0x66, 0x10, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x3c, 0x78, 0x5f, 0xb0, 0xd6, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xc4, 0x86, 0xdd, 0x40, 0x22, 0x36, 0xfc, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xc4, 0x86, 0xe1, 0x40, 0x22, 0x36, 0x54, 0x0c, 0xbb, 0x70, 0x1b, 0xa2, 0x39, 0x1e, 0xbc, 0x30, 0x58, 0x6b, 0x83, 0xd7, 0x48, 0x6b, 0x1d, 0x4e, 0xb1, 0x41, 0xb6, 0xc1, 0x2b, 0x99, 0xb5, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x44, 0x6c, 0xe8, 0x18, 0x48, 0xc4, 0x86, 0x92, 0x83, 0xa1, 0xf9, 0x7b, 0x68, 0xfe, 0x72, 0x3c, 0x1e, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x0c, 0xfc, 0x00, 0x00, 0x80, 0x7f, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x62, 0x43, 0x7a, 0xf0, 0xa0, 0x62, 0xad, 0x61, 0x37, 0xac, 0xef, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x62, 0x43, 0x3e, 0x90, 0x89, 0x0d, 0xc3, 0x83, 0xa5, 0xa7, 0x46, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x26, 0x36, 0x2c, 0x07, 0x32, 0xb1, 0xa1, 0x64, 0xd8, 0x85, 0xdb, 0x90, 0x3a, 0x38, 0x78, 0x36, 0xb6, 0xd6, 0x06, 0xcf, 0xc6, 0xd6, 0x3a, 0x9c, 0x62, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xd0, 0xa1, 0x51, 0xcb, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x10, 0x6c, 0x30, 0xf2, 0x1f, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x9a, 0x36, 0x6e, 0x20, 0x5f, 0x1b, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xa8, 0x0d, 0xe9, 0x40, 0xa2, 0x36, 0x0c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x44, 0x6d, 0x48, 0x0e, 0xde, 0xc3, 0xae, 0x75, 0xf0, 0x72, 0xe5, 0xa2, 0x41, 0xb6, 0xc1, 0x03, 0xd0, 0xb5, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0xb5, 0x21, 0x1d, 0xc8, 0xd5, 0x86, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xd5, 0x86, 0xe4, 0xe0, 0xb1, 0xf2, 0x5a, 0x07, 0xc3, 0x8b, 0x77, 0x90, 0x6d, 0xf0, 0x00, 0x74, 0xad, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x5d, 0x1b, 0xd2, 0x81, 0x74, 0x6d, 0x58, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0xda, 0x90, 0x1c, 0x3c, 0x20, 0x5f, 0x6b, 0x10, 0x6c, 0xf0, 0xb0, 0xbd, 0x9e, 0x83, 0xc7, 0x8a, 0x73, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf4, 0x6c, 0x48, 0x07, 0xd2, 0xb3, 0xe1, 0xc8, 0xc1, 0x2b, 0xc1, 0xad, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x83, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x61, 0x43, 0x3a, 0x90, 0x87, 0x0d, 0x37, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x3c, 0x6c, 0x88, 0x07, 0xf2, 0xb0, 0x61, 0x72, 0xf0, 0xde, 0x0c, 0xa2, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xb0, 0x61, 0x33, 0x90, 0x87, 0x0d, 0xbb, 0x83, 0x47, 0xfd, 0x6a, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xc3, 0x86, 0xe1, 0x40, 0x1e, 0x36, 0x6c, 0x07, 0xc1, 0x06, 0x0f, 0xdb, 0xeb, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xb0, 0x2e, 0xdc, 0xe6, 0x90, 0xaa, 0x39, 0x0e, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x8f, 0x43, 0x87, 0x46, 0x2d, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x05, 0xc1, 0x06, 0xcf, 0x1b, 0xbd, 0x5a, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0xc9, 0xb8, 0x81, 0xbc, 0x64, 0xc8, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x92, 0x21, 0x19, 0xc8, 0x48, 0x86, 0xec, 0xd0, 0x2c, 0x72, 0x90, 0x6d, 0xf0, 0x24, 0x8c, 0xad, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x25, 0x19, 0x37, 0x90, 0x97, 0x8c, 0x1f, 0x76, 0xe1, 0x16, 0x03, 0xff, 0x6d, 0x2d, 0x2c, 0x3f, 0x34, 0x12, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x4a, 0x86, 0x64, 0x20, 0x2b, 0x19, 0x1a, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x92, 0x21, 0x1a, 0xc8, 0x4a, 0x86, 0x7c, 0xd8, 0x85, 0xdb, 0xd0, 0x48, 0xf0, 0xe0, 0x11, 0x21, 0x5b, 0x1b, 0x3c, 0x22, 0x64, 0xeb, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0x5e, 0x27, 0xb2, 0xb5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x95, 0x0c, 0xb3, 0x81, 0xac, 0x64, 0x58, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0xc9, 0x30, 0x38, 0x78, 0x18, 0xcb, 0xd6, 0xc1, 0xab, 0x77, 0xaf, 0x06, 0xd9, 0x06, 0xaf, 0x13, 0xd9, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x92, 0x61, 0x3e, 0x90, 0x95, 0x0c, 0x05, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x56, 0x32, 0x4c, 0x0f, 0x5e, 0x2d, 0xb3, 0x35, 0x08, 0x36, 0x78, 0xd8, 0x5e, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa5, 0x01, 0x34, 0x87, 0x66, 0x49, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x2d, 0x19, 0x92, 0x81, 0xb4, 0x64, 0x98, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x25, 0x43, 0x34, 0x90, 0x96, 0x0c, 0xf9, 0xc1, 0x2b, 0xa8, 0xaf, 0x06, 0xd9, 0x06, 0xef, 0xc6, 0xd9, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x92, 0x61, 0x36, 0x90, 0x96, 0x0c, 0xcb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x2d, 0x19, 0x06, 0x07, 0xaf, 0x08, 0xda, 0x3a, 0x78, 0x0c, 0xf7, 0xd5, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x05, 0xc1, 0xe2, 0xac, 0x41, 0x51, 0x2d, 0x38, 0x73, 0x90, 0xc4, 0xdf, 0x73, 0xf0, 0x9c, 0xf4, 0x8d, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x7f, 0x8d, 0x1b, 0x48, 0xc1, 0xc6, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x5f, 0x43, 0x3a, 0x90, 0x7f, 0x0d, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xff, 0x1a, 0x92, 0x81, 0xfc, 0x6b, 0xb8, 0x30, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x5f, 0x43, 0x3c, 0x90, 0x7f, 0x0d, 0x8b, 0x83, 0x57, 0x35, 0x09, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x7f, 0x0d, 0x93, 0x81, 0xfc, 0x6b, 0x18, 0x1d, 0xbc, 0x12, 0xdc, 0xea, 0xd0, 0xfc, 0xe5, 0x78, 0x3c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xff, 0x1a, 0x56, 0x03, 0xf9, 0xd7, 0xb0, 0x3b, 0x78, 0x25, 0xb8, 0xd5, 0xa1, 0xf9, 0xcb, 0xf1, 0xf8, 0x38, 0x74, 0x48, 0xc3, 0x0d, 0xb2, 0x0d, 0x9e, 0x81, 0xb4, 0xb5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x80, 0x0d, 0xe9, 0x40, 0x02, 0x36, 0x2c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x04, 0x6c, 0x48, 0x06, 0x12, 0xb0, 0xe1, 0xcf, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x83, 0xa5, 0x46, 0x65, 0x87, 0xa6, 0x40, 0x83, 0x6c, 0x83, 0x67, 0x20, 0x6d, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0xd8, 0x90, 0x0e, 0x64, 0x60, 0xc3, 0x62, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xc0, 0x86, 0x64, 0x20, 0x03, 0x1b, 0xae, 0x0c, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x24, 0x03, 0x45, 0xe9, 0xb0, 0x42, 0x7b, 0x68, 0x01, 0x76, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x41, 0xb0, 0x78, 0xf0, 0x04, 0x24, 0x8d, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xad, 0x8c, 0x1b, 0xc8, 0x59, 0xc6, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x2b, 0x43, 0x3c, 0x90, 0xaf, 0x0c, 0x8b, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x5f, 0x19, 0x92, 0x83, 0x57, 0xd3, 0x6d, 0x0d, 0x82, 0x0d, 0x1e, 0xb6, 0xd7, 0x73, 0xf0, 0xcc, 0xe0, 0x9b, 0x41, 0xb6, 0xc1, 0x33, 0xe1, 0xb6, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x94, 0x65, 0x88, 0x06, 0x52, 0x96, 0x21, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x96, 0x21, 0x39, 0x78, 0x02, 0xdf, 0xd6, 0x20, 0xd8, 0xe0, 0xdd, 0xc0, 0x56, 0x87, 0x0e, 0x1a, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x15, 0x04, 0x1b, 0x8c, 0xfc, 0x87, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x90, 0x0d, 0xe9, 0x40, 0x42, 0x36, 0xdc, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xc8, 0x86, 0xc1, 0x40, 0x42, 0x36, 0x6c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x84, 0x6c, 0x88, 0x0f, 0xde, 0x69, 0xb8, 0x75, 0xf0, 0x72, 0xe5, 0xa2, 0x41, 0xb6, 0xc1, 0x73, 0x04, 0xb7, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0xb2, 0x61, 0x36, 0x90, 0x90, 0x0d, 0xd3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x21, 0x1b, 0x46, 0x07, 0xaf, 0x68, 0xdc, 0x1a, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x74, 0xf0, 0x0a, 0x86, 0x80, 0x43, 0x53, 0xa0, 0x41, 0xb6, 0xc1, 0x73, 0x04, 0xb7, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x84, 0x6c, 0x58, 0x0f, 0x24, 0x64, 0x43, 0xd1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x90, 0x0d, 0xdb, 0x83, 0xb7, 0x52, 0x6e, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0xd9, 0x30, 0x1f, 0x48, 0xc8, 0x86, 0x8a, 0x83, 0xf7, 0x23, 0x94, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x64, 0x43, 0xc7, 0x40, 0x42, 0x36, 0xf4, 0x1c, 0xbc, 0xef, 0xb6, 0xe7, 0x38, 0x74, 0x68, 0x01, 0x76, 0x68, 0xfe, 0x72, 0x3c, 0x1e, 0x04, 0x1b, 0x8c, 0xfc, 0x87, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x38, 0x8d, 0x1b, 0xc8, 0xa0, 0xc6, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x4e, 0x43, 0x34, 0x90, 0x3a, 0x0d, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x3a, 0x0d, 0xc9, 0xc1, 0xeb, 0x4d, 0xb7, 0x0e, 0x5e, 0xf2, 0x5f, 0x34, 0xc8, 0x36, 0x78, 0xae, 0xe8, 0xd6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xf6, 0x34, 0xc4, 0x03, 0xd9, 0xd3, 0xb0, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0xa7, 0x21, 0x39, 0x78, 0x59, 0xeb, 0xd6, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x3d, 0x0d, 0xf9, 0x40, 0xf6, 0x34, 0x6c, 0x0e, 0xde, 0x08, 0x50, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x3d, 0x0d, 0xa3, 0x81, 0xec, 0x69, 0x98, 0x1d, 0xbc, 0x12, 0xdc, 0xea, 0xd0, 0xfc, 0xe5, 0x78, 0x7c, 0x1c, 0x3a, 0x34, 0x05, 0x1a, 0x64, 0x1b, 0x3c, 0x57, 0x74, 0x6b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xa0, 0x86, 0x78, 0x20, 0x81, 0x1a, 0xf2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x81, 0x1a, 0x92, 0x83, 0xe7, 0xf6, 0x6e, 0x1d, 0x04, 0xa5, 0xf7, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x94, 0x71, 0x03, 0x99, 0xca, 0xf8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x2c, 0x65, 0x58, 0x0c, 0x64, 0x29, 0x43, 0xc3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xa5, 0x0c, 0xc9, 0xc1, 0x9b, 0x8e, 0xb7, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x2c, 0x65, 0x98, 0x0c, 0x64, 0x29, 0xc3, 0xea, 0xe0, 0x55, 0x4d, 0x42, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x29, 0xc3, 0x6c, 0x20, 0x4b, 0x19, 0x86, 0x07, 0xaf, 0x04, 0xb7, 0x3a, 0x34, 0x7f, 0x39, 0x1e, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x52, 0x86, 0xe5, 0x40, 0x96, 0x32, 0x14, 0x0c, 0x92, 0x01, 0xe1, 0x7e, 0x77, 0x3c, 0x3e, 0x0e, 0x1d, 0xd2, 0x70, 0x83, 0x6c, 0x83, 0x37, 0x0c, 0x6f, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0xca, 0xb0, 0x1a, 0x48, 0x54, 0x86, 0x8a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x51, 0x19, 0x92, 0x83, 0x47, 0x6e, 0x6f, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0xca, 0x30, 0x1b, 0x48, 0x54, 0x86, 0xe5, 0xc1, 0xab, 0x9a, 0x84, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x54, 0x86, 0xe9, 0x40, 0xa2, 0x32, 0xcc, 0x0f, 0x1e, 0x57, 0x6a, 0x35, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x51, 0x19, 0xf6, 0x03, 0x89, 0xca, 0xd0, 0x70, 0xf0, 0x4a, 0x70, 0xab, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x71, 0xe8, 0xd0, 0x41, 0xe3, 0xd0, 0xfc, 0xe5, 0x78, 0x3c, 0x08, 0x16, 0x07, 0xf0, 0x33, 0x7b, 0xab, 0x93, 0x6b, 0x79, 0x43, 0x6b, 0x31, 0x7b, 0xab, 0x93, 0x5b, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0xd0, 0xb8, 0x81, 0x84, 0x69, 0xfc, 0xb0, 0x0b, 0xb7, 0x78, 0xd0, 0x3c, 0x85, 0xd4, 0x21, 0x9a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0xd0, 0x90, 0x0c, 0x64, 0x43, 0xc3, 0x74, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x1b, 0x1a, 0xa2, 0x81, 0x6c, 0x68, 0x88, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x78, 0xa7, 0xfc, 0xd6, 0x06, 0xef, 0x94, 0xdf, 0x3a, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x27, 0xcf, 0x6f, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0xd0, 0x30, 0x18, 0xc8, 0x86, 0x86, 0xe5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x0d, 0x0d, 0xf9, 0xc1, 0x23, 0xfb, 0xb7, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x92, 0x81, 0xab, 0xee, 0x78, 0x7c, 0xe8, 0xa0, 0x31, 0xec, 0xc2, 0x2d, 0x06, 0x5e, 0x18, 0x1c, 0x7c, 0x88, 0xe6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x42, 0x34, 0x24, 0x03, 0x09, 0xd1, 0x30, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x88, 0x86, 0x68, 0x20, 0x21, 0x1a, 0xe2, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x5e, 0x2f, 0xc0, 0xb5, 0xc1, 0xeb, 0x05, 0xb8, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0xe0, 0x21, 0x04, 0x5c, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x42, 0x34, 0x6c, 0x06, 0x12, 0xa2, 0x61, 0x37, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x44, 0x43, 0x7e, 0xf0, 0xf4, 0x06, 0xae, 0x83, 0x67, 0x9c, 0x2a, 0x0d, 0xbb, 0x70, 0x8b, 0x01, 0xbe, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0xee, 0x21, 0x9a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0xd1, 0x90, 0x0c, 0xe4, 0x44, 0xc3, 0x78, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x27, 0x1a, 0xa2, 0x81, 0x9c, 0x68, 0x58, 0x0e, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xf0, 0xf6, 0x08, 0xae, 0x0d, 0xde, 0x1e, 0xc1, 0x75, 0x38, 0xc5, 0x06, 0xd9, 0x06, 0x4f, 0xa4, 0xe0, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0xa2, 0x61, 0x3a, 0x90, 0x13, 0x0d, 0xdb, 0x83, 0xa1, 0xf9, 0x3b, 0xec, 0xc2, 0x2d, 0x06, 0x3c, 0x65, 0x61, 0x75, 0x74, 0xe8, 0x21, 0x9a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0xd1, 0x90, 0x0c, 0xa4, 0x45, 0xc3, 0x66, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x2d, 0x1a, 0xa2, 0x81, 0xb4, 0x68, 0x18, 0x0c, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xf0, 0xda, 0x0f, 0xae, 0x0d, 0x5e, 0xfb, 0xc1, 0x75, 0x38, 0xc5, 0x06, 0xd9, 0x06, 0x4f, 0x09, 0xe1, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0xa2, 0x61, 0x31, 0x90, 0x16, 0x0d, 0x93, 0x83, 0xa1, 0xf9, 0x3b, 0xec, 0xc2, 0x2d, 0x06, 0x7c, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0xf4, 0x21, 0x9a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0xd1, 0x90, 0x0c, 0x64, 0x46, 0xc3, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x33, 0x1a, 0xa2, 0x81, 0xcc, 0x68, 0x58, 0x0c, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xf0, 0x2a, 0x16, 0xae, 0x0d, 0x5e, 0xc5, 0xc2, 0x75, 0x38, 0xc5, 0x06, 0xd9, 0x06, 0x4f, 0x6f, 0xe1, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0xa3, 0x61, 0x32, 0x90, 0x19, 0x0d, 0x9b, 0x83, 0xa1, 0xf9, 0x3b, 0xec, 0xc2, 0x2d, 0x06, 0xbc, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0xec, 0x21, 0x9a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xd1, 0x90, 0x0c, 0x24, 0x47, 0xc3, 0x6a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x39, 0x1a, 0xa2, 0x81, 0xe4, 0x68, 0x98, 0x0c, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xf0, 0x8a, 0x1c, 0xae, 0x0d, 0x5e, 0x91, 0xc3, 0x75, 0x38, 0xc5, 0x06, 0xd9, 0x06, 0x4f, 0xd6, 0xe1, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xa3, 0x61, 0x33, 0x90, 0x1c, 0x0d, 0xa3, 0x83, 0xa1, 0xf9, 0x3b, 0xec, 0xc2, 0x2d, 0x1e, 0x2c, 0x48, 0x21, 0x3e, 0x44, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x3f, 0x1a, 0x92, 0x81, 0xfc, 0x68, 0x98, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x47, 0x43, 0x34, 0x90, 0x1f, 0x0d, 0xf9, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0xaf, 0x2f, 0xe2, 0xda, 0xe0, 0xf5, 0x45, 0x5c, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0xf0, 0x8e, 0x23, 0xae, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x3f, 0x1a, 0x06, 0x03, 0xf9, 0xd1, 0xb0, 0x38, 0x18, 0x9a, 0xbf, 0xc3, 0x6e, 0xb0, 0xc8, 0xa0, 0x6a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x45, 0x1a, 0x92, 0x81, 0x14, 0x69, 0x98, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x48, 0x43, 0x34, 0x90, 0x22, 0x0d, 0xf9, 0xc1, 0x2a, 0x85, 0xaa, 0x41, 0xb6, 0xc1, 0xbb, 0xa5, 0xb8, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x14, 0x69, 0x18, 0x0c, 0xa4, 0x48, 0xc3, 0xe2, 0x60, 0x68, 0xfe, 0x0e, 0xbb, 0x70, 0x8b, 0x81, 0x8f, 0xf6, 0x36, 0x47, 0x1f, 0xa2, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x25, 0x0d, 0xc9, 0x40, 0x96, 0x34, 0x4c, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0xa4, 0x21, 0x1a, 0xc8, 0x92, 0x86, 0x7c, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0xb7, 0x71, 0x71, 0x6d, 0xf0, 0x36, 0x2e, 0xae, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x78, 0x6e, 0x17, 0xd7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x25, 0x0d, 0x83, 0x81, 0x2c, 0x69, 0x58, 0x1c, 0x0c, 0xcd, 0xdf, 0x61, 0x37, 0x78, 0x52, 0x5f, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xa6, 0x34, 0x24, 0x03, 0x99, 0xd2, 0x30, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x94, 0x86, 0x68, 0x20, 0x53, 0x1a, 0xf2, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x9e, 0xd7, 0x17, 0xb4, 0xc1, 0xf3, 0xfa, 0x82, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0xe0, 0x81, 0x69, 0x5c, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xa6, 0x34, 0x0c, 0x06, 0x32, 0xa5, 0x61, 0x71, 0x30, 0x34, 0x7f, 0x87, 0x5d, 0xb8, 0xc5, 0x80, 0x77, 0x0e, 0xee, 0xcd, 0x6d, 0xee, 0x4d, 0x3e, 0x44, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x59, 0x1a, 0x92, 0x81, 0x64, 0x69, 0x58, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x4b, 0x43, 0x34, 0x90, 0x2c, 0x0d, 0x93, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x9e, 0x4a, 0xc7, 0xb5, 0xc1, 0x53, 0xe9, 0xb8, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0xe0, 0x5d, 0x76, 0x5c, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xb2, 0x34, 0x6c, 0x06, 0x92, 0xa5, 0x61, 0x74, 0x30, 0x34, 0x7f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x7c, 0x69, 0x48, 0x06, 0xf2, 0xa5, 0x61, 0xba, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x2f, 0x0d, 0xd1, 0x40, 0xbe, 0x34, 0xec, 0x86, 0x5d, 0xb8, 0x0d, 0xd1, 0x1c, 0x0f, 0x1e, 0xdb, 0xbe, 0xb5, 0xc1, 0xe3, 0x0d, 0xb9, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0xe0, 0x65, 0x81, 0x5c, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xbe, 0x34, 0x0c, 0x07, 0xf2, 0xa5, 0x61, 0x79, 0x30, 0x34, 0x7f, 0x0f, 0xcd, 0x5f, 0x8e, 0xc7, 0x0b, 0x82, 0xc5, 0x0d, 0x9e, 0xda, 0xbe, 0xb5, 0xcc, 0x06, 0x8f, 0x96, 0xb0, 0x1a, 0xe0, 0xa1, 0x92, 0x0a, 0x1a, 0x2a, 0x0e, 0x02, 0xe0, 0x7e, 0x39, 0x78, 0x8e, 0x63, 0xd6, 0xe1, 0x14, 0x5b, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0xc2, 0xb8, 0x81, 0xac, 0x61, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x8e, 0x30, 0x44, 0x03, 0x39, 0xc2, 0x30, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x84, 0x21, 0x39, 0x78, 0x69, 0x25, 0xd7, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0x32, 0x70, 0xd7, 0x1d, 0x8f, 0x0f, 0x69, 0xb8, 0x41, 0xb6, 0xc1, 0xd3, 0x22, 0xb9, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x84, 0x21, 0x1a, 0x48, 0x13, 0x86, 0xe5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x26, 0x0c, 0xc9, 0xc1, 0xe3, 0x3a, 0xb9, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x92, 0x81, 0xad, 0xbb, 0xe3, 0xf1, 0xa1, 0x29, 0xd0, 0x20, 0xdb, 0xe0, 0x69, 0x91, 0x5c, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0xc2, 0x90, 0x0c, 0xa4, 0x0b, 0x43, 0xc7, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xba, 0x30, 0xac, 0x06, 0xd2, 0x85, 0x61, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x0b, 0x43, 0x74, 0xf0, 0xf4, 0x53, 0xae, 0x41, 0xb0, 0xc1, 0xc3, 0xf6, 0x7a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x2c, 0x76, 0x96, 0x39, 0x58, 0x24, 0xfe, 0x73, 0x1c, 0x1a, 0x64, 0x1b, 0x3c, 0x71, 0x94, 0x6b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x17, 0x86, 0xe9, 0x40, 0xba, 0x30, 0x54, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0xc2, 0xb0, 0x3c, 0x78, 0x27, 0x2c, 0xd7, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0x32, 0xf0, 0x5e, 0xd7, 0xf1, 0xf8, 0x60, 0xd1, 0xfa, 0xcf, 0x20, 0xdb, 0xe0, 0x69, 0x91, 0x5c, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0xc3, 0xb0, 0x1c, 0xc8, 0x18, 0x86, 0xd2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x63, 0x18, 0x92, 0x83, 0xc7, 0xe2, 0x72, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0xc3, 0x30, 0x1d, 0xc8, 0x18, 0x86, 0xf9, 0xc1, 0xfb, 0x11, 0x4a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x86, 0x61, 0x3f, 0x90, 0x31, 0x0c, 0x9d, 0x07, 0x8f, 0x17, 0xef, 0x39, 0x0e, 0x1d, 0x2c, 0xe1, 0xff, 0x19, 0x64, 0x1b, 0x3c, 0x2d, 0x92, 0x6b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x1a, 0x86, 0xd1, 0x40, 0xd2, 0x30, 0xec, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa4, 0x61, 0x48, 0x0e, 0xde, 0x7b, 0xcc, 0x35, 0x08, 0x36, 0x78, 0xd8, 0x5e, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x85, 0x87, 0x32, 0x07, 0x25, 0xf6, 0xe0, 0x71, 0xe8, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x82, 0x60, 0x83, 0x87, 0x72, 0x45, 0x2c, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x04, 0x71, 0xdc, 0x40, 0x9a, 0x38, 0x7e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x41, 0x1c, 0x92, 0x81, 0x04, 0x71, 0xc8, 0x0e, 0x7d, 0x1a, 0x07, 0xd9, 0x06, 0x2f, 0x7d, 0xe6, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x10, 0x87, 0xc5, 0x40, 0x86, 0x38, 0xac, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x0c, 0x71, 0x48, 0x0e, 0xde, 0x79, 0xcd, 0x75, 0xf0, 0xf8, 0x65, 0xa3, 0x41, 0xb6, 0xc1, 0x4b, 0x9f, 0xb9, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0xc4, 0x21, 0x1a, 0x48, 0x11, 0x87, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x11, 0x87, 0xe4, 0xe0, 0x11, 0xde, 0x5c, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x0e, 0x12, 0x5b, 0x4e, 0x0e, 0x9d, 0x88, 0x06, 0xd9, 0x06, 0x2f, 0x7d, 0xe6, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x11, 0x87, 0x68, 0x20, 0x47, 0x1c, 0xe2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x47, 0x1c, 0x92, 0x83, 0x67, 0x96, 0x73, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x24, 0x03, 0xc2, 0xff, 0xee, 0x78, 0x7e, 0xb0, 0x84, 0xff, 0x67, 0x90, 0x6d, 0xf0, 0xd2, 0x67, 0xae, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x24, 0x71, 0x88, 0x07, 0x92, 0xc4, 0x61, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x89, 0x43, 0x72, 0xf0, 0xd4, 0x76, 0xae, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x49, 0x1c, 0xf2, 0x81, 0x24, 0x71, 0xd8, 0x1c, 0xbc, 0x1f, 0xa1, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x49, 0x1c, 0x46, 0x03, 0x49, 0xe2, 0xb0, 0x1d, 0x04, 0x1b, 0x3c, 0x6c, 0xaf, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0xc7, 0x80, 0xaf, 0x8e, 0x4c, 0xec, 0xcd, 0xad, 0x3c, 0xa4, 0x6a, 0x8e, 0x43, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xd0, 0xc1, 0x7b, 0x0e, 0x33, 0x06, 0xd9, 0x06, 0x2f, 0x7d, 0xe6, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0xc4, 0x61, 0x34, 0x90, 0x25, 0x0e, 0x45, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x96, 0x38, 0x24, 0x07, 0xaf, 0x09, 0xe8, 0x1a, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0xc4, 0x61, 0x35, 0x90, 0x25, 0x0e, 0xcb, 0x83, 0xf7, 0x23, 0x94, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x89, 0xc3, 0x74, 0x20, 0x4b, 0x1c, 0x7a, 0x06, 0xc1, 0x06, 0x0f, 0xdb, 0xeb, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x31, 0xc0, 0xaf, 0x8e, 0xac, 0xad, 0x6c, 0x6e, 0x2e, 0xec, 0xac, 0xcc, 0xad, 0xae, 0x3d, 0xa4, 0x6a, 0x8e, 0x43, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xd0, 0x41, 0xa3, 0x13, 0x4a, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x15, 0x04, 0x8b, 0x1b, 0x3c, 0xc7, 0x31, 0xeb, 0xe0, 0x09, 0x48, 0x1a, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x99, 0x18, 0x37, 0x90, 0x5c, 0x8c, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x27, 0x86, 0x68, 0x20, 0x9d, 0x18, 0x26, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x3a, 0x31, 0x24, 0x07, 0xcf, 0xcd, 0xe8, 0x1a, 0x04, 0x1b, 0x3c, 0x7f, 0x96, 0xeb, 0x90, 0x86, 0x1b, 0x64, 0x1b, 0xbc, 0xaf, 0xa2, 0x6b, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xa9, 0x18, 0x56, 0x03, 0x49, 0xc5, 0x30, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x8a, 0x21, 0x39, 0x78, 0x31, 0x48, 0xd7, 0x20, 0xd8, 0xe0, 0x61, 0x7b, 0x3d, 0x07, 0xaf, 0xd3, 0xe6, 0x18, 0x64, 0x1b, 0xbc, 0xaf, 0xa2, 0x6b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x2b, 0x86, 0xc9, 0x40, 0x5e, 0x31, 0x4c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbc, 0x62, 0x48, 0x0e, 0xde, 0x7f, 0xd2, 0x35, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x15, 0xc3, 0x66, 0x20, 0xaf, 0x18, 0x66, 0x07, 0x2f, 0x0a, 0x21, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x2b, 0x86, 0xdd, 0x40, 0x5e, 0x31, 0x2c, 0x0f, 0x5e, 0x09, 0x6e, 0x75, 0x68, 0xfe, 0x72, 0x3c, 0x3e, 0x0e, 0x1d, 0x5a, 0x80, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x07, 0xc1, 0xe2, 0xc1, 0xbb, 0x1b, 0xb9, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xa2, 0x35, 0x6e, 0x20, 0xe9, 0x1a, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x6a, 0x0d, 0xbb, 0x81, 0x54, 0x6b, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xd6, 0x90, 0x1c, 0x3c, 0x7c, 0xa7, 0xeb, 0xe0, 0xa9, 0xff, 0x58, 0x83, 0x6c, 0x83, 0x87, 0xde, 0x74, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x5b, 0xc3, 0x60, 0x20, 0xdb, 0x1a, 0x16, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xb6, 0x35, 0x24, 0x07, 0xcf, 0x12, 0xea, 0x3a, 0x18, 0x5e, 0xbc, 0x83, 0x6c, 0x83, 0x87, 0xde, 0x74, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x5c, 0x43, 0x34, 0x90, 0x70, 0x0d, 0x8b, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe1, 0x1a, 0x92, 0x83, 0xd7, 0x22, 0x75, 0x0d, 0x82, 0x0d, 0x56, 0xd6, 0x46, 0x1d, 0x3a, 0x11, 0x0d, 0xb2, 0x0d, 0x1e, 0x7a, 0xd3, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x5c, 0x43, 0x34, 0x90, 0x73, 0x0d, 0xb3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe7, 0x1a, 0x92, 0x83, 0xd7, 0x3e, 0x75, 0x0d, 0x82, 0x0d, 0xde, 0x32, 0xd8, 0x73, 0xe8, 0x7e, 0x74, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x10, 0x6c, 0xf0, 0x5e, 0x1b, 0x9f, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xd1, 0x8b, 0x1b, 0xc8, 0x07, 0xc6, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0xbd, 0xb8, 0x83, 0xc7, 0x5e, 0x75, 0x0d, 0xbb, 0xc1, 0xc3, 0xee, 0x81, 0x16, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0xbd, 0x30, 0x19, 0xc8, 0xe9, 0x85, 0xed, 0xc1, 0xd3, 0x81, 0x7c, 0x0e, 0x9e, 0xce, 0x07, 0x35, 0xec, 0x06, 0xef, 0xe6, 0xf1, 0x59, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xf5, 0xc2, 0x64, 0x20, 0xad, 0x17, 0xb6, 0x07, 0x4f, 0x07, 0xf2, 0x39, 0x78, 0xbd, 0x90, 0xcf, 0xb0, 0x1b, 0xbc, 0x37, 0x1d, 0x68, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xd9, 0x0b, 0x93, 0x81, 0xcc, 0x5e, 0xd8, 0x1e, 0x3c, 0x1d, 0xc8, 0xe7, 0xe0, 0x9d, 0x60, 0x52, 0xc3, 0x6e, 0xf0, 0xde, 0x1d, 0x8c, 0x05, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x72, 0x2f, 0x4c, 0x06, 0x92, 0x7b, 0x61, 0x7b, 0xf0, 0x74, 0x20, 0x9f, 0x83, 0x87, 0x23, 0xf9, 0x0c, 0xbb, 0xc1, 0xc3, 0x95, 0x7c, 0x16, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0xbd, 0x30, 0x19, 0xc8, 0xef, 0x85, 0xed, 0xc1, 0xd3, 0x81, 0x7c, 0x0e, 0xde, 0xf5, 0xe4, 0x33, 0xec, 0x06, 0xcf, 0x3d, 0x0d, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xf1, 0x85, 0x64, 0x20, 0xc5, 0x17, 0xfa, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x7c, 0x21, 0x1a, 0x48, 0xf1, 0x85, 0x7c, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x47, 0xf3, 0x3c, 0x1c, 0x3c, 0x6e, 0x95, 0x69, 0x90, 0x6d, 0xf0, 0x7a, 0xb9, 0xae, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x14, 0x5f, 0x58, 0x0e, 0xa4, 0xf8, 0xc2, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xf1, 0x85, 0xc1, 0xc1, 0xdb, 0xf8, 0xba, 0x0e, 0x5e, 0xb2, 0xd7, 0x33, 0xc8, 0x36, 0x78, 0xbd, 0x5c, 0xd7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xe2, 0x0b, 0x25, 0x03, 0x29, 0xbe, 0x50, 0x37, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xf8, 0xc2, 0xfa, 0xe0, 0xe5, 0x82, 0x5d, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x8a, 0x2f, 0xb4, 0x0c, 0xa4, 0xf8, 0x42, 0xd3, 0xc1, 0xfb, 0x11, 0x4a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x7c, 0xa1, 0x6a, 0x20, 0xc5, 0x17, 0xda, 0x0e, 0x9e, 0xa6, 0xdf, 0x73, 0x68, 0xfe, 0x72, 0x3c, 0x3e, 0x0e, 0x1d, 0x5a, 0x80, 0x0d, 0xbb, 0xc1, 0x7b, 0x52, 0x83, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x7c, 0x21, 0x19, 0xc8, 0xf2, 0x85, 0xed, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x96, 0x2f, 0x44, 0x03, 0x59, 0xbe, 0x90, 0x1f, 0x3c, 0x74, 0x89, 0x68, 0x90, 0x6d, 0xf0, 0xc6, 0xc8, 0xae, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xcb, 0x17, 0x16, 0x03, 0x59, 0xbe, 0x30, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x7c, 0x61, 0x70, 0xf0, 0xe2, 0xcc, 0xae, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x64, 0x40, 0xd0, 0x77, 0x1d, 0x8f, 0x0f, 0x1d, 0x34, 0x86, 0xdd, 0xe0, 0xc1, 0x91, 0x41, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0xbe, 0x90, 0x0c, 0xa4, 0xfa, 0x42, 0xcb, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xaa, 0x2f, 0x44, 0x03, 0xa9, 0xbe, 0xb0, 0x1a, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0xf1, 0x91, 0x41, 0x1b, 0x3c, 0x3e, 0x32, 0xe8, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0x9e, 0xfe, 0xd9, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xfa, 0xc2, 0x76, 0x20, 0xd5, 0x17, 0x4a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x54, 0x5f, 0x98, 0x1d, 0x3c, 0x37, 0xb5, 0x6b, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xf5, 0x85, 0xf1, 0x40, 0xaa, 0x2f, 0x14, 0x1c, 0xbc, 0x1f, 0xa1, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xd5, 0x17, 0x1a, 0x06, 0x52, 0x7d, 0xa1, 0xe3, 0xe0, 0x95, 0xe0, 0x56, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xd0, 0xa1, 0x83, 0xc6, 0xb0, 0x1b, 0xbc, 0x89, 0xad, 0x67, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xdb, 0x17, 0x92, 0x81, 0x6c, 0x5f, 0xe8, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xf6, 0x85, 0x68, 0x20, 0xdb, 0x17, 0x26, 0x07, 0xcf, 0x98, 0xeb, 0x19, 0x64, 0x1b, 0xbc, 0x0b, 0xb7, 0x6b, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xdb, 0x17, 0xa6, 0x03, 0xd9, 0xbe, 0xb0, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x7d, 0x61, 0x73, 0xf0, 0x52, 0xe0, 0xae, 0x83, 0xe1, 0xc5, 0x3b, 0xc8, 0x36, 0x78, 0x17, 0x6e, 0xd7, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xb6, 0x2f, 0xac, 0x07, 0xb2, 0x7d, 0xa1, 0x64, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xf6, 0x85, 0xf1, 0xc1, 0x13, 0x8e, 0xbb, 0x0e, 0xde, 0xbc, 0xd4, 0x35, 0xc8, 0x36, 0x78, 0x17, 0x6e, 0xd7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xed, 0x0b, 0x35, 0x03, 0xd9, 0xbe, 0x50, 0x39, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xfb, 0x42, 0xcb, 0xc1, 0x0b, 0x9b, 0xbb, 0x0e, 0xde, 0x2c, 0xd5, 0x35, 0xec, 0x06, 0x0f, 0xc2, 0x0c, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xf8, 0x85, 0x64, 0x20, 0xe1, 0x17, 0x9a, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x7e, 0x21, 0x1a, 0x48, 0xf8, 0x85, 0xe1, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x8f, 0xc3, 0x0c, 0xda, 0xe0, 0x71, 0x98, 0x41, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0xf0, 0x1a, 0xe9, 0xae, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x84, 0x5f, 0x28, 0x18, 0x48, 0xf8, 0x85, 0x86, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe1, 0x17, 0x96, 0x07, 0x8f, 0xe0, 0xee, 0x3a, 0x18, 0x5e, 0xbc, 0x83, 0x6c, 0x83, 0xd7, 0x48, 0x77, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xfc, 0x42, 0xc7, 0x40, 0xc2, 0x2f, 0x54, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0xbf, 0x50, 0x71, 0xf0, 0x3e, 0xf1, 0xae, 0x83, 0x37, 0x2f, 0x75, 0x0d, 0xb2, 0x0d, 0x5e, 0x23, 0xdd, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xfc, 0x42, 0xd9, 0x40, 0xc2, 0x2f, 0x14, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0xbf, 0xd0, 0x75, 0xf0, 0x7e, 0xf4, 0xae, 0x83, 0x37, 0x4b, 0x75, 0x0d, 0xbb, 0xc1, 0x43, 0x0c, 0x7b, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x7e, 0x21, 0x19, 0xc8, 0xf9, 0x85, 0xf1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xce, 0x2f, 0x44, 0x03, 0x39, 0xbf, 0xb0, 0x3c, 0x78, 0x75, 0x63, 0xcf, 0x20, 0xdb, 0xe0, 0xad, 0xed, 0x5d, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xce, 0x2f, 0x4c, 0x07, 0x72, 0x7e, 0x61, 0x7b, 0x30, 0x34, 0x7f, 0x87, 0xdd, 0xe0, 0x99, 0xa5, 0x41, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0xbf, 0x90, 0x0c, 0xa4, 0xfd, 0x42, 0xcb, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xda, 0x2f, 0x44, 0x03, 0x69, 0xbf, 0x30, 0x19, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0xc9, 0xa5, 0x41, 0x1b, 0x3c, 0xb9, 0x34, 0xe8, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0x9e, 0x7e, 0xdf, 0xb5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xf6, 0x0b, 0xa3, 0x81, 0xb4, 0x5f, 0xd8, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0xbf, 0xb0, 0x39, 0x78, 0x70, 0x80, 0xd7, 0x20, 0xd8, 0xe0, 0xa1, 0x3e, 0x58, 0x87, 0xa6, 0x40, 0x83, 0x6c, 0x83, 0xa7, 0xdf, 0x77, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0xbf, 0x50, 0x30, 0x90, 0xf6, 0x0b, 0x25, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xda, 0x2f, 0x8c, 0x0f, 0x5e, 0x8d, 0xe0, 0x35, 0x08, 0x36, 0x78, 0xd5, 0xa9, 0xd2, 0xa1, 0x05, 0xd8, 0xb0, 0x1b, 0x3c, 0x89, 0x32, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xf3, 0x17, 0x92, 0x81, 0xcc, 0x5f, 0x68, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xfc, 0x85, 0x68, 0x20, 0xf3, 0x17, 0x06, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x3c, 0x8f, 0x32, 0x68, 0x83, 0xe7, 0x51, 0x06, 0x1d, 0x4e, 0xb1, 0x41, 0xb6, 0xc1, 0x3b, 0x1c, 0xbc, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x7f, 0x61, 0x32, 0x90, 0xf9, 0x0b, 0xcb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xf3, 0x17, 0x16, 0x07, 0xaf, 0xbf, 0xf0, 0x3a, 0x78, 0x37, 0x81, 0xd7, 0x20, 0xdb, 0xe0, 0x1d, 0x0e, 0x5e, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xe6, 0x2f, 0x6c, 0x07, 0x32, 0x7f, 0xa1, 0x64, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xfc, 0x85, 0xe9, 0xc1, 0xd3, 0x3c, 0xbc, 0x06, 0xc1, 0x06, 0x2f, 0x07, 0xe0, 0x3a, 0xb4, 0x00, 0x1b, 0x76, 0x83, 0x17, 0x88, 0x06, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xff, 0x42, 0x32, 0x90, 0xff, 0x0b, 0xfb, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfc, 0x5f, 0x88, 0x06, 0xf2, 0x7f, 0x61, 0x35, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0x6b, 0x44, 0x83, 0x36, 0x78, 0x8d, 0x68, 0xd0, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0x3c, 0x76, 0xc4, 0x6b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xff, 0x85, 0xdd, 0x40, 0xfe, 0x2f, 0xcc, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfc, 0x5f, 0x98, 0x1d, 0xbc, 0xaf, 0xc5, 0x6b, 0x10, 0x6c, 0xf0, 0x50, 0x1f, 0xac, 0x43, 0x07, 0x8d, 0x61, 0x37, 0x78, 0xaf, 0x6a, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x0a, 0x30, 0x24, 0x03, 0x29, 0xc0, 0x30, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x01, 0x86, 0x68, 0x20, 0x05, 0x18, 0x76, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0xbc, 0x5d, 0x35, 0x68, 0x83, 0xb7, 0xab, 0x06, 0x1d, 0x4e, 0xb1, 0x41, 0xb6, 0xc1, 0x83, 0x65, 0xbc, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x14, 0x60, 0x18, 0x0e, 0xa4, 0x00, 0xc3, 0xf2, 0x60, 0x68, 0xfe, 0x0e, 0xbb, 0xc1, 0x6b, 0x38, 0x83, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x80, 0x21, 0x19, 0xc8, 0x02, 0x86, 0x8a, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x2c, 0x60, 0x88, 0x06, 0xb2, 0x80, 0x61, 0x39, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0xcb, 0x38, 0x83, 0x36, 0x78, 0x19, 0x67, 0xd0, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0xbc, 0xd1, 0xc7, 0x6b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x02, 0x86, 0xed, 0x40, 0x16, 0x30, 0x34, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0xc0, 0x30, 0x3d, 0x78, 0x17, 0x92, 0xd7, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x83, 0x57, 0x4d, 0x02, 0x1c, 0x3a, 0x68, 0x0c, 0xbb, 0xc1, 0xb3, 0x1d, 0x83, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x81, 0x21, 0x19, 0x48, 0x04, 0x86, 0x86, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x44, 0x60, 0x88, 0x06, 0x12, 0x81, 0x61, 0x38, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0x13, 0x1e, 0x83, 0x36, 0x78, 0xc2, 0x63, 0xd0, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0xbc, 0xc5, 0xc9, 0x6b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x04, 0x86, 0xe9, 0x40, 0x22, 0x30, 0x14, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0xc0, 0xb0, 0x3c, 0x78, 0xff, 0x95, 0xd7, 0xc1, 0xfb, 0x96, 0xbc, 0x86, 0xdd, 0xe0, 0x39, 0x1a, 0x41, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0xc0, 0x90, 0x0c, 0xe4, 0x02, 0xc3, 0x6c, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x17, 0x18, 0xa2, 0x81, 0x5c, 0x60, 0xc8, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x78, 0x9a, 0x46, 0xd0, 0x06, 0x4f, 0xd3, 0x08, 0x3a, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0xa7, 0x72, 0x79, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0xc0, 0x30, 0x1a, 0xc8, 0x05, 0x86, 0xd5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x0b, 0x0c, 0x83, 0x83, 0xc7, 0x99, 0x79, 0x0d, 0x82, 0x0d, 0x1e, 0xb6, 0xd7, 0x73, 0x30, 0xaa, 0xb0, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x74, 0x60, 0x48, 0x06, 0xd2, 0x81, 0xa1, 0x78, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x1d, 0x18, 0xa2, 0x81, 0x74, 0x60, 0xd8, 0x0d, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xf0, 0xb6, 0xcf, 0xa0, 0x0d, 0xde, 0xf6, 0x19, 0x74, 0x38, 0xc5, 0x06, 0xd9, 0x06, 0x2f, 0x58, 0xf3, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x07, 0x86, 0xf1, 0x40, 0x3a, 0x30, 0xcc, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x74, 0x60, 0x18, 0x1e, 0xbc, 0x9b, 0xce, 0x6b, 0x10, 0x6c, 0xf0, 0xb0, 0xbd, 0x9e, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x4b, 0x03, 0x68, 0x0e, 0x3d, 0x84, 0x8e, 0x43, 0x83, 0x6c, 0x83, 0x17, 0xac, 0x79, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0xc0, 0xd0, 0x32, 0x90, 0x0e, 0x0c, 0xbd, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x3a, 0x30, 0xec, 0x0f, 0x5e, 0xd7, 0xe7, 0x35, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x03, 0x43, 0xcd, 0x40, 0x3a, 0x30, 0x54, 0x1d, 0xbc, 0x1f, 0xa1, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x1d, 0x18, 0xba, 0x06, 0xd2, 0x81, 0xa1, 0x76, 0x90, 0x0c, 0xac, 0x75, 0x1d, 0x8f, 0x8f, 0x43, 0x87, 0x16, 0x60, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x77, 0x1b, 0x37, 0x90, 0xea, 0x8d, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x6f, 0xe3, 0x0e, 0x5e, 0xc7, 0xe8, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x6f, 0xe3, 0x0e, 0x5e, 0xc7, 0xe8, 0x35, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0xb7, 0x21, 0x1c, 0xc8, 0xde, 0x86, 0xf1, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xde, 0x86, 0x74, 0x20, 0x7b, 0x1b, 0x16, 0x83, 0x64, 0x83, 0x21, 0xfe, 0x71, 0x30, 0xfc, 0x63, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0xb7, 0x61, 0x32, 0x90, 0xbd, 0x0d, 0xdb, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xbd, 0x0d, 0x9b, 0x81, 0xec, 0x6d, 0x98, 0x1d, 0x2c, 0x6f, 0x2c, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x7b, 0x1b, 0x76, 0x03, 0xd9, 0xdb, 0x30, 0x3c, 0xf4, 0x27, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xbd, 0x0d, 0xcb, 0x81, 0xec, 0x6d, 0x98, 0x1e, 0x52, 0x07, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xc0, 0x8d, 0x3b, 0x78, 0x1d, 0xa3, 0xd7, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0xdc, 0x90, 0x0c, 0x24, 0x70, 0xc3, 0x74, 0xd8, 0x0d, 0x46, 0xc7, 0xfa, 0xc2, 0x6e, 0x90, 0xc2, 0x6a, 0xbd, 0xb0, 0x1b, 0xac, 0x19, 0x4a, 0x59, 0xd8, 0x0d, 0x1a, 0xfb, 0xeb, 0x5f, 0xd8, 0x0d, 0x16, 0x7c, 0x71, 0x2d, 0xec, 0x06, 0x8b, 0xc4, 0xb8, 0x16, 0x76, 0x83, 0xa5, 0x67, 0x5c, 0x0b, 0xbb, 0xb0, 0x1b, 0xb4, 0xe0, 0xe5, 0x74, 0x58, 0xdf, 0x3c, 0x68, 0x27, 0xcd, 0xe9, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0xdc, 0xb8, 0x83, 0xd7, 0x31, 0x7a, 0x0d, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xc3, 0x0d, 0xc9, 0x40, 0x0e, 0x37, 0x4c, 0x86, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xe1, 0x86, 0x6c, 0x20, 0x87, 0x1b, 0xd2, 0x83, 0x23, 0x4f, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xc3, 0x0d, 0xf1, 0x40, 0x0e, 0x37, 0x2c, 0x0e, 0x42, 0x0a, 0x7c, 0x43, 0x0c, 0x87, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xe3, 0x86, 0x64, 0x20, 0x8d, 0x1b, 0x5a, 0x87, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xe3, 0x86, 0x6c, 0x20, 0x8d, 0x1b, 0x56, 0xc3, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x71, 0x43, 0x3a, 0x90, 0xc6, 0x0d, 0x83, 0x83, 0x81, 0x6f, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x71, 0xc3, 0x62, 0x20, 0x8d, 0x1b, 0x46, 0x07, 0x21, 0x05, 0xbe, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0xdc, 0x30, 0x1b, 0x48, 0xe3, 0x86, 0x92, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xc6, 0x0d, 0xbb, 0x81, 0x34, 0x6e, 0x98, 0x1e, 0xac, 0xc8, 0xf3, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x8d, 0x1b, 0xb6, 0x03, 0x69, 0xdc, 0x50, 0x70, 0x10, 0x64, 0xf1, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0xb8, 0xa1, 0x61, 0x20, 0x8d, 0x1b, 0x3a, 0x0e, 0xd2, 0xa1, 0x3c, 0x8e, 0x43, 0x0b, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xc6, 0x0d, 0x2d, 0x03, 0x69, 0xdc, 0x50, 0x3a, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0xb8, 0xa1, 0x66, 0x20, 0x8d, 0x1b, 0x9a, 0x0e, 0x5a, 0x85, 0x8b, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x8d, 0x1b, 0xaa, 0x06, 0xd2, 0xb8, 0xa1, 0xef, 0x20, 0xc8, 0xe2, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x71, 0x43, 0xe1, 0x40, 0x1a, 0x37, 0x74, 0x1e, 0xa4, 0x3b, 0x34, 0x1f, 0x87, 0x0e, 0xe9, 0xdc, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x37, 0xc4, 0x70, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4c, 0x6e, 0x48, 0x06, 0x32, 0xb9, 0x61, 0x33, 0xdc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x26, 0x37, 0x64, 0x03, 0x99, 0xdc, 0x10, 0x1f, 0xa4, 0x3b, 0x34, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0xdc, 0x90, 0x0f, 0x64, 0x72, 0xc3, 0xe4, 0x20, 0xa4, 0xc0, 0x37, 0xc4, 0x70, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x64, 0x6e, 0x48, 0x06, 0x92, 0xb9, 0xa1, 0x63, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x64, 0x6e, 0xc8, 0x06, 0x92, 0xb9, 0x61, 0x35, 0xdc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x32, 0x37, 0xa4, 0x03, 0xc9, 0xdc, 0x30, 0x18, 0x83, 0x48, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xdc, 0xb0, 0x18, 0x48, 0xe6, 0x86, 0xd1, 0x41, 0x48, 0x81, 0x2f, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x32, 0x37, 0xcc, 0x06, 0x92, 0xb9, 0xa1, 0x62, 0xb8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x64, 0x6e, 0x18, 0x0e, 0x24, 0x73, 0xc3, 0xf6, 0xe0, 0x4c, 0xc6, 0x3f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x73, 0xc3, 0x78, 0x20, 0x99, 0x1b, 0x1a, 0x0e, 0x82, 0x2c, 0xfe, 0x90, 0xce, 0x3d, 0x1c, 0xed, 0x1b, 0x62, 0x38, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x3e, 0x37, 0x24, 0x03, 0xf9, 0xdc, 0x50, 0x3a, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x3e, 0x37, 0x64, 0x03, 0xf9, 0xdc, 0xb0, 0x1a, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x9f, 0x1b, 0xd2, 0x81, 0x7c, 0x6e, 0x18, 0x8c, 0x41, 0xb0, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x7c, 0x6e, 0x58, 0x0c, 0xe4, 0x73, 0xc3, 0xe8, 0x20, 0xa4, 0xc0, 0x17, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x9f, 0x1b, 0x66, 0x03, 0xf9, 0xdc, 0x50, 0x32, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xb9, 0x61, 0x37, 0x90, 0xcf, 0x0d, 0xd3, 0x83, 0x15, 0x79, 0x5e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x73, 0xc3, 0x76, 0x20, 0x9f, 0x1b, 0x0a, 0x0e, 0x82, 0x2c, 0x7e, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x3e, 0x37, 0x34, 0x0c, 0xe4, 0x73, 0x43, 0xc7, 0x41, 0xa2, 0xdc, 0xc7, 0x71, 0x68, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xb9, 0xa1, 0x65, 0x20, 0x9f, 0x1b, 0x3a, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x3e, 0x37, 0xd4, 0x0c, 0xe4, 0x73, 0x43, 0xd3, 0x41, 0xab, 0x70, 0x51, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x73, 0x43, 0xd5, 0x40, 0x3e, 0x37, 0xf4, 0x1d, 0x04, 0x59, 0xfc, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x7c, 0x6e, 0x28, 0x1c, 0xc8, 0xe7, 0x86, 0xca, 0x31, 0xec, 0x8f, 0x43, 0x87, 0x74, 0xee, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x1b, 0x62, 0x38, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4a, 0x37, 0x24, 0x03, 0x29, 0xdd, 0x50, 0x37, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4a, 0x37, 0x64, 0x03, 0x29, 0xdd, 0xb0, 0x1a, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xa5, 0x1b, 0xd2, 0x81, 0x94, 0x6e, 0x18, 0x1c, 0xa4, 0xfd, 0x34, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x29, 0xdd, 0xb0, 0x18, 0x48, 0xe9, 0x86, 0xd1, 0x41, 0x48, 0x81, 0x2f, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4a, 0x37, 0xcc, 0x06, 0x52, 0xba, 0xa1, 0x60, 0xb8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x94, 0x6e, 0x18, 0x0e, 0xa4, 0x74, 0xc3, 0xf2, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xa5, 0x1b, 0xa6, 0x03, 0x29, 0xdd, 0xb0, 0x3f, 0x08, 0xb2, 0xf8, 0x85, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xe9, 0x86, 0x86, 0x81, 0x94, 0x6e, 0x68, 0x1b, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xa5, 0x1b, 0x3a, 0x06, 0x52, 0xba, 0xa1, 0xe4, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xa5, 0x1b, 0x5a, 0x06, 0x52, 0xba, 0xa1, 0xec, 0x20, 0x70, 0xe3, 0x0f, 0xe9, 0xdc, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x37, 0xc4, 0x70, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xac, 0x6e, 0x48, 0x06, 0xb2, 0xba, 0xa1, 0x6e, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xac, 0x6e, 0xc8, 0x06, 0xb2, 0xba, 0x61, 0x35, 0xdc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x56, 0x37, 0xa4, 0x03, 0x59, 0xdd, 0x30, 0x38, 0x48, 0xfb, 0x69, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0xba, 0x61, 0x31, 0x90, 0xd5, 0x0d, 0xa3, 0x83, 0x90, 0x02, 0x5f, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xac, 0x6e, 0x98, 0x0d, 0x64, 0x75, 0x43, 0xc1, 0x70, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0xdd, 0x30, 0x1c, 0xc8, 0xea, 0x86, 0xe5, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x56, 0x37, 0x4c, 0x07, 0xb2, 0xba, 0x61, 0x7f, 0x10, 0x64, 0xf1, 0x0b, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xd5, 0x0d, 0x0d, 0x03, 0x59, 0xdd, 0xd0, 0x36, 0xdc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x56, 0x37, 0x74, 0x0c, 0x64, 0x75, 0x43, 0xc9, 0xa1, 0x95, 0xf8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xd5, 0x0d, 0x2d, 0x03, 0x59, 0xdd, 0x50, 0x76, 0x10, 0xb8, 0xf1, 0x87, 0x74, 0xee, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x1b, 0x62, 0x38, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x62, 0x37, 0x24, 0x03, 0x89, 0xdd, 0xd0, 0x38, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x62, 0x37, 0x64, 0x03, 0x89, 0xdd, 0xb0, 0x1a, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xb1, 0x1b, 0xd2, 0x81, 0xc4, 0x6e, 0x18, 0x1c, 0xa4, 0xfd, 0x34, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0xdd, 0xb0, 0x18, 0x48, 0xec, 0x86, 0xd1, 0x41, 0x48, 0x81, 0x2f, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x62, 0x37, 0xcc, 0x06, 0x12, 0xbb, 0xa1, 0x70, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc4, 0x6e, 0x18, 0x0e, 0x24, 0x76, 0x43, 0xc7, 0x70, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0xdd, 0x30, 0x1d, 0x48, 0xec, 0x86, 0xf1, 0x41, 0x4a, 0x52, 0xcd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xd8, 0x0d, 0xeb, 0x81, 0xc4, 0x6e, 0xa8, 0x38, 0x08, 0xb2, 0xf8, 0x0d, 0x31, 0x1c, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xb1, 0x1b, 0x4a, 0x06, 0x12, 0xbb, 0xa1, 0x6f, 0xb8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc4, 0x6e, 0xa8, 0x19, 0x48, 0xec, 0x86, 0xa2, 0x83, 0xf4, 0xb6, 0x91, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xb1, 0x1b, 0x9a, 0x06, 0x12, 0xbb, 0xa1, 0xee, 0x20, 0xc8, 0xe2, 0x0f, 0xe9, 0xdc, 0x43, 0x3a, 0xf7, 0x70, 0xb4, 0x6f, 0x88, 0xe1, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0xdd, 0x90, 0x0c, 0xe4, 0x76, 0x43, 0xe3, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0xdd, 0x90, 0x0d, 0xe4, 0x76, 0xc3, 0x6a, 0xb8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xdc, 0x6e, 0x48, 0x07, 0x72, 0xbb, 0x61, 0x70, 0x90, 0xf6, 0xd3, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x76, 0xc3, 0x62, 0x20, 0xb7, 0x1b, 0x46, 0x07, 0x21, 0x05, 0xbe, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0xdd, 0x30, 0x1b, 0xc8, 0xed, 0x86, 0x86, 0xe1, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0xbb, 0x61, 0x38, 0x90, 0xdb, 0x0d, 0xd3, 0x31, 0x74, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0xdd, 0xb0, 0x1d, 0xc8, 0xed, 0x86, 0x82, 0x83, 0x20, 0x8b, 0x5f, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xdc, 0x6e, 0xa8, 0x18, 0xc8, 0xed, 0x86, 0xc2, 0xe1, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0xbb, 0xa1, 0x64, 0x20, 0xb7, 0x1b, 0x7a, 0x0e, 0x06, 0xbe, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xdb, 0x0d, 0x45, 0x03, 0xb9, 0xdd, 0xd0, 0x77, 0x10, 0xb8, 0xf1, 0x87, 0x74, 0xee, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x1b, 0x62, 0x38, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x7a, 0x37, 0x24, 0x03, 0xe9, 0xdd, 0x50, 0x38, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x7a, 0x37, 0x64, 0x03, 0xe9, 0xdd, 0xb0, 0x1a, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xbd, 0x1b, 0xd2, 0x81, 0xf4, 0x6e, 0x18, 0x1c, 0xa4, 0xfd, 0x34, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0xdd, 0xb0, 0x18, 0x48, 0xef, 0x86, 0xd1, 0x41, 0x48, 0x81, 0x2f, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x7a, 0x37, 0xcc, 0x06, 0xd2, 0xbb, 0xa1, 0x61, 0xb8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf4, 0x6e, 0x18, 0x0e, 0xa4, 0x77, 0xc3, 0x74, 0x0c, 0xc7, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf4, 0x6e, 0xd8, 0x0e, 0xa4, 0x77, 0x43, 0xc1, 0x41, 0x90, 0xc5, 0x2f, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x7a, 0x37, 0x54, 0x0c, 0xa4, 0x77, 0x43, 0xdf, 0x70, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0xdd, 0x50, 0x32, 0x90, 0xde, 0x0d, 0x35, 0x07, 0x4b, 0x6d, 0x0a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf4, 0x6e, 0xe8, 0x19, 0x48, 0xef, 0x86, 0xba, 0x83, 0xc0, 0x8d, 0x3f, 0xa4, 0x73, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0xdf, 0x10, 0xc3, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0xbc, 0x21, 0x19, 0xc8, 0xf0, 0x86, 0x8e, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0xbc, 0x21, 0x1b, 0xc8, 0xf0, 0x86, 0xd5, 0x70, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0xde, 0x90, 0x0e, 0x64, 0x78, 0xc3, 0xe0, 0x20, 0xed, 0xa7, 0x79, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xf0, 0x86, 0xc5, 0x40, 0x86, 0x37, 0x8c, 0x0e, 0x42, 0x0a, 0x7c, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0xbc, 0x61, 0x36, 0x90, 0xe1, 0x0d, 0x15, 0xc3, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x78, 0xc3, 0x70, 0x20, 0xc3, 0x1b, 0xb6, 0x63, 0x10, 0xa8, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xc3, 0x1b, 0xc6, 0x03, 0x19, 0xde, 0xd0, 0x70, 0x10, 0x64, 0xf1, 0x87, 0x74, 0xee, 0xe1, 0x68, 0xdf, 0x10, 0xc3, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xbc, 0x21, 0x19, 0x48, 0xf2, 0x86, 0xc2, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xbc, 0x21, 0x1b, 0x48, 0xf2, 0x86, 0xd5, 0x70, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0xde, 0x90, 0x0e, 0x24, 0x79, 0xc3, 0x60, 0x0c, 0x62, 0x39, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x79, 0xc3, 0x62, 0x20, 0xc9, 0x1b, 0x46, 0x07, 0x21, 0x05, 0xbe, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0xde, 0x30, 0x1b, 0x48, 0xf2, 0x86, 0x82, 0xe1, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xbc, 0x61, 0x38, 0x90, 0xe4, 0x0d, 0xcb, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x24, 0x6f, 0x98, 0x0e, 0x24, 0x79, 0xc3, 0xfe, 0x20, 0xc8, 0xe2, 0x17, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xc9, 0x1b, 0x1a, 0x06, 0x92, 0xbc, 0xa1, 0x6f, 0xb8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x24, 0x6f, 0xe8, 0x18, 0x48, 0xf2, 0x86, 0x9a, 0x83, 0x22, 0x52, 0x72, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xf2, 0x86, 0x9e, 0x81, 0x24, 0x6f, 0xa8, 0x3b, 0x08, 0xdc, 0xf8, 0x43, 0x3a, 0xf7, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0x0d, 0x31, 0x1c, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xd3, 0x1b, 0x92, 0x81, 0x4c, 0x6f, 0x98, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4c, 0x6f, 0x88, 0x06, 0x32, 0xbd, 0x21, 0x3d, 0x58, 0x91, 0xe7, 0x35, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xa6, 0x37, 0xc4, 0x03, 0x99, 0xde, 0xb0, 0x38, 0x08, 0x29, 0xf0, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0xde, 0x30, 0x19, 0xc8, 0xf4, 0x86, 0xd5, 0x41, 0xba, 0x6d, 0xf3, 0x71, 0xe8, 0x90, 0xce, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0xb8, 0x61, 0x3c, 0x90, 0xc0, 0x0d, 0xeb, 0x43, 0x0c, 0x8f, 0xc7, 0x0b, 0x82, 0xc5, 0x0d, 0x1e, 0x95, 0x78, 0x75, 0xf0, 0x64, 0xb3, 0xac, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x86, 0x0d, 0xe9, 0x40, 0x1a, 0x36, 0xbc, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xc3, 0x86, 0xc1, 0x40, 0x1a, 0x36, 0x8c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x34, 0x6c, 0x88, 0x0f, 0xde, 0xd7, 0x01, 0x76, 0xf0, 0x4e, 0x1f, 0xad, 0x41, 0xb6, 0xc1, 0x33, 0x32, 0xc0, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x34, 0x6c, 0xd8, 0x0d, 0xa4, 0x61, 0xc3, 0x76, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xc3, 0x86, 0xd5, 0xc1, 0xdb, 0x47, 0xc0, 0x06, 0xc1, 0x06, 0xcf, 0x73, 0xd2, 0x3a, 0x74, 0xd0, 0x38, 0x34, 0x7f, 0x39, 0x1e, 0x2f, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x6c, 0x43, 0x3a, 0x90, 0xb2, 0x0d, 0x6f, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x94, 0x6d, 0x88, 0x07, 0x52, 0xb6, 0x61, 0x72, 0xf0, 0x46, 0x80, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xd9, 0x86, 0xcd, 0x40, 0xca, 0x36, 0xcc, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0xb6, 0x61, 0x36, 0x90, 0xb2, 0x0d, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x65, 0x1b, 0x46, 0x07, 0xaf, 0xb8, 0x01, 0x3b, 0x78, 0x8c, 0x6b, 0xcf, 0x20, 0xdb, 0xe0, 0xb5, 0x32, 0x60, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xca, 0x36, 0x6c, 0x07, 0x52, 0xb6, 0x61, 0x3d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x6c, 0xc3, 0xf2, 0xe0, 0x89, 0x3d, 0x60, 0x07, 0xaf, 0x23, 0xbc, 0x3a, 0x34, 0x7f, 0x39, 0x1e, 0x1f, 0x87, 0x0e, 0x8d, 0x5a, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x2b, 0x08, 0x16, 0x37, 0x78, 0xcf, 0x8c, 0xd5, 0x41, 0x00, 0xdc, 0x2f, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5c, 0x6c, 0xdc, 0x40, 0x3e, 0x36, 0x7e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x17, 0x1b, 0xb2, 0x81, 0x5c, 0x6c, 0xc8, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5c, 0x6c, 0x48, 0x06, 0x72, 0xb1, 0xe1, 0xc3, 0xc1, 0x8b, 0xdf, 0xb2, 0x06, 0xd9, 0x06, 0x2f, 0x28, 0x02, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xc6, 0x86, 0x6c, 0x20, 0x19, 0x1b, 0xd2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x19, 0x1b, 0x92, 0x81, 0x64, 0x6c, 0x78, 0x72, 0xf0, 0xfc, 0x3b, 0xaf, 0x41, 0xb6, 0xc1, 0x0b, 0x8a, 0xc0, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0xb1, 0x21, 0x1b, 0xc8, 0xc6, 0x86, 0xf5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x8d, 0x0d, 0xc9, 0x40, 0x36, 0x36, 0x9c, 0x18, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0xb1, 0x21, 0x1c, 0xc8, 0xc6, 0x86, 0xc1, 0xc1, 0x1b, 0x01, 0x4a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x1b, 0x1b, 0x16, 0x03, 0xd9, 0xd8, 0x30, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xc6, 0x86, 0xd1, 0x40, 0x36, 0x36, 0xcc, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x6c, 0x6c, 0x98, 0x1c, 0xbc, 0x83, 0x0c, 0xec, 0xe0, 0x31, 0xae, 0x3d, 0x83, 0x6c, 0x83, 0xf7, 0x7e, 0x81, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0xd8, 0xb0, 0x1c, 0xc8, 0xc6, 0x86, 0xed, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x8d, 0x0d, 0xbb, 0x83, 0x47, 0xaa, 0x81, 0x1d, 0xbc, 0x8e, 0xf0, 0xea, 0xd0, 0xfc, 0xe5, 0x78, 0x7c, 0x1c, 0x3a, 0x74, 0x22, 0x1a, 0x64, 0x1b, 0xbc, 0xa0, 0x08, 0x6c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xc7, 0x86, 0x6c, 0x20, 0x1d, 0x1b, 0x66, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x3a, 0x36, 0x24, 0x03, 0xe9, 0xd8, 0xf0, 0x60, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xc7, 0x86, 0x70, 0x20, 0x1d, 0x1b, 0x06, 0x07, 0xef, 0x47, 0x28, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xc7, 0x86, 0xc5, 0x40, 0x3a, 0x36, 0xac, 0x0e, 0xde, 0x77, 0xdb, 0x73, 0x1c, 0x3a, 0x74, 0x3f, 0x3a, 0x34, 0x7f, 0x39, 0x1e, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x6c, 0x43, 0x3a, 0x90, 0xb3, 0x0d, 0x3f, 0x06, 0xc1, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xb3, 0x0d, 0x83, 0x81, 0x9c, 0x6d, 0x68, 0x19, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x76, 0x43, 0xc7, 0x91, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9c, 0x6d, 0x58, 0x0d, 0xe4, 0x6c, 0x43, 0xc9, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xce, 0x36, 0x0c, 0x07, 0x72, 0xb6, 0x61, 0x3a, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x6c, 0xc3, 0xec, 0xe0, 0x89, 0x8a, 0x60, 0x83, 0x60, 0x83, 0x56, 0xae, 0xcb, 0x0f, 0x9e, 0xef, 0xda, 0x33, 0xc8, 0x36, 0x78, 0x89, 0x21, 0xd8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xce, 0x36, 0xac, 0x07, 0x72, 0xb6, 0x61, 0x3f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x6c, 0xc3, 0xf6, 0xe0, 0xc9, 0x91, 0x60, 0x83, 0x60, 0x83, 0x56, 0xae, 0xcb, 0x0f, 0x1e, 0x8c, 0xe7, 0x35, 0xc8, 0x36, 0x78, 0x89, 0x21, 0xd8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xb3, 0x0d, 0x15, 0x03, 0x39, 0xdb, 0xd0, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x6c, 0x43, 0xc1, 0xc1, 0x0b, 0x32, 0xc1, 0x06, 0xc1, 0x06, 0xef, 0x10, 0xec, 0x38, 0xb4, 0x00, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0xb6, 0x61, 0x33, 0x90, 0xb3, 0x0d, 0xa3, 0x43, 0x7f, 0xaa, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0xf1, 0x6d, 0x41, 0xb0, 0xc1, 0xb2, 0x30, 0x98, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x84, 0x0d, 0xe9, 0x40, 0x12, 0x36, 0xfc, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xc2, 0x86, 0xc1, 0x40, 0x12, 0x36, 0x2c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x24, 0x6c, 0x88, 0x0f, 0xde, 0x6d, 0x0a, 0x76, 0xf0, 0xd4, 0x7f, 0xac, 0x41, 0xb6, 0xc1, 0xf3, 0x44, 0xc1, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xb0, 0x61, 0x34, 0x90, 0x84, 0x0d, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x09, 0x1b, 0x26, 0x07, 0xaf, 0x6a, 0x05, 0x1b, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xb0, 0x61, 0x35, 0x90, 0x84, 0x0d, 0xcb, 0x83, 0xf7, 0x23, 0x94, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x61, 0xc3, 0x74, 0x20, 0x09, 0x1b, 0xd6, 0x07, 0x4f, 0xd3, 0xef, 0x39, 0x34, 0x7f, 0x39, 0x1e, 0x1f, 0x87, 0x0e, 0x4d, 0x81, 0x06, 0xd9, 0x06, 0xcf, 0x13, 0x05, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xb0, 0xa1, 0x61, 0x20, 0x09, 0x1b, 0x5a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x24, 0x6c, 0xd8, 0x1f, 0x3c, 0xb7, 0x17, 0x6c, 0x10, 0x6c, 0xf0, 0xe4, 0x11, 0xa4, 0x43, 0x0b, 0xb0, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x20, 0x58, 0xdc, 0x60, 0x58, 0xec, 0x6e, 0xf0, 0x1c, 0xc7, 0xac, 0x0d, 0x9e, 0x7f, 0xa4, 0x31, 0x1b, 0xa4, 0x01, 0x64, 0x1c, 0x14, 0xd5, 0x82, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x95, 0x19, 0x37, 0x90, 0xf4, 0x8c, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x65, 0x86, 0x78, 0x20, 0x95, 0x19, 0xb6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x2a, 0x33, 0x24, 0x07, 0xcf, 0x53, 0x06, 0x1b, 0x76, 0xe1, 0x16, 0x03, 0x5f, 0x6d, 0xee, 0xcd, 0x3d, 0x44, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x95, 0x19, 0x06, 0x03, 0xa9, 0xcc, 0xb0, 0x1a, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0xf1, 0xcd, 0x60, 0x1b, 0x3c, 0xbe, 0x19, 0xec, 0x70, 0x8a, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xcc, 0x30, 0x1b, 0x48, 0x65, 0x86, 0xe9, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0xe3, 0xc1, 0xb0, 0xd8, 0xdd, 0xe0, 0xe5, 0xd6, 0x60, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0xf0, 0x1e, 0x63, 0xb0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5c, 0x66, 0x88, 0x06, 0x72, 0x99, 0x61, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x32, 0x43, 0x72, 0xf0, 0x94, 0x6d, 0xb0, 0x41, 0xb0, 0xc1, 0xf3, 0x67, 0xb9, 0x0e, 0x4d, 0x81, 0x06, 0xd9, 0x06, 0xef, 0x31, 0x06, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x6a, 0x86, 0x7c, 0x20, 0xa9, 0x19, 0x0a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x74, 0x66, 0x48, 0x0e, 0x9e, 0x23, 0x0e, 0x36, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x35, 0xc3, 0x60, 0x20, 0xa9, 0x19, 0x46, 0x07, 0xef, 0xcd, 0x20, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xa9, 0x19, 0x56, 0x03, 0x49, 0xcd, 0x30, 0x3d, 0x68, 0x6b, 0x83, 0x69, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x52, 0x33, 0x6c, 0x07, 0x92, 0x9a, 0x61, 0x7f, 0xf0, 0xb8, 0x52, 0xab, 0xe3, 0xd0, 0xa1, 0x13, 0xd1, 0x20, 0xdb, 0xe0, 0x3d, 0xc6, 0x60, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0xcd, 0xb0, 0x18, 0xc8, 0x6b, 0x86, 0xd1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xd7, 0x0c, 0xc9, 0xc1, 0x63, 0xe9, 0xc1, 0x06, 0xc1, 0x06, 0x0f, 0xdb, 0xeb, 0x39, 0x58, 0x7c, 0x91, 0x35, 0xc8, 0x36, 0x78, 0x8f, 0x31, 0xd8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x72, 0x33, 0x4c, 0x06, 0x92, 0x9b, 0x61, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x36, 0x43, 0x72, 0xf0, 0xf4, 0x7d, 0xb0, 0x41, 0xb0, 0xc1, 0xc3, 0xf6, 0x7a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x3c, 0x4c, 0xfd, 0xe2, 0x20, 0x69, 0x00, 0xe1, 0x38, 0x34, 0xc8, 0x36, 0x78, 0x8f, 0x31, 0xd8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x96, 0x33, 0x0c, 0x06, 0xb2, 0x9c, 0xa1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x6f, 0x86, 0xe4, 0xe0, 0xa9, 0x04, 0x61, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x96, 0x33, 0x2c, 0x06, 0xb2, 0x9c, 0x61, 0x74, 0xf0, 0x16, 0xa5, 0xac, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xe2, 0xcc, 0xc1, 0x93, 0x0e, 0xae, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x96, 0x33, 0xac, 0x06, 0xb2, 0x9c, 0xa1, 0x7b, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xcb, 0x19, 0x96, 0x03, 0x59, 0xce, 0x30, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x9c, 0x61, 0x76, 0xf0, 0x82, 0x89, 0xb0, 0x83, 0x97, 0x2b, 0x17, 0x0d, 0xb2, 0x0d, 0x1e, 0xea, 0x10, 0xb6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xe5, 0x0c, 0x45, 0x03, 0x59, 0xce, 0xd0, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x39, 0xc3, 0xfa, 0xe0, 0x85, 0x19, 0x61, 0x07, 0x2f, 0xd9, 0xeb, 0x19, 0x64, 0x1b, 0x3c, 0xd4, 0x21, 0x6c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x72, 0x86, 0xb6, 0x81, 0x2c, 0x67, 0xa8, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x9c, 0xa1, 0xec, 0xe0, 0x01, 0x20, 0x61, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc9, 0x40, 0xb1, 0x3a, 0x1e, 0x1f, 0x5a, 0x80, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x8f, 0x43, 0x07, 0x0f, 0xf1, 0xcc, 0x18, 0x64, 0x1b, 0xbc, 0xc7, 0x18, 0x6c, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xd5, 0x19, 0x16, 0x03, 0xa9, 0xce, 0x30, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x9d, 0x21, 0x39, 0x78, 0x51, 0x4a, 0xd8, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xea, 0x0c, 0x93, 0x81, 0x54, 0x67, 0x58, 0x1d, 0xbc, 0xaa, 0x49, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x54, 0x67, 0x98, 0x0d, 0xa4, 0x3a, 0xc3, 0xf2, 0xe0, 0x69, 0xfa, 0x3d, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xce, 0x30, 0x1d, 0x48, 0x75, 0x86, 0xf5, 0xc1, 0xd3, 0xf4, 0x7b, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc7, 0xa1, 0x83, 0x87, 0xd2, 0x66, 0x0c, 0xb2, 0x0d, 0xde, 0x63, 0x0c, 0xb6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xf0, 0x0c, 0xbb, 0x81, 0x84, 0x67, 0xb8, 0x30, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x3b, 0x43, 0x72, 0xf0, 0x70, 0x9f, 0xb0, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe1, 0x19, 0x86, 0x03, 0x09, 0xcf, 0xb0, 0x3d, 0x78, 0x55, 0x93, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0xcf, 0x30, 0x1e, 0x48, 0x78, 0x86, 0xfd, 0xc1, 0xd3, 0xf4, 0x7b, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x2c, 0x0b, 0x83, 0x59, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0xcf, 0x50, 0x30, 0x90, 0xf0, 0x0c, 0x0f, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x9e, 0xa1, 0x66, 0x20, 0xe1, 0x19, 0x8a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x84, 0x67, 0x68, 0x38, 0x78, 0x86, 0x54, 0xd8, 0x20, 0xd8, 0xe0, 0x61, 0x7b, 0x3d, 0x07, 0xef, 0x39, 0xce, 0x19, 0x64, 0x1b, 0x3c, 0xb5, 0x29, 0x6c, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe1, 0x19, 0xda, 0x06, 0x12, 0x9e, 0xa1, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x78, 0x86, 0xa6, 0x83, 0xa7, 0x65, 0x85, 0x1d, 0x3c, 0xb6, 0x20, 0x6a, 0x90, 0x6d, 0xf0, 0xd4, 0xa6, 0xb0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x84, 0x67, 0xe8, 0x1c, 0x48, 0x78, 0x86, 0xde, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe1, 0x19, 0x2a, 0x0f, 0x1e, 0xff, 0x15, 0x76, 0xf0, 0x7a, 0xb0, 0xa8, 0x41, 0xb6, 0xc1, 0x53, 0x9b, 0xc2, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x84, 0x67, 0x28, 0x1f, 0x48, 0x78, 0x86, 0x03, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc2, 0x33, 0x14, 0x1f, 0x3c, 0xce, 0x2c, 0x6c, 0x10, 0x6c, 0xf0, 0x6e, 0x60, 0xab, 0x43, 0xf7, 0xa3, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x71, 0xe8, 0xe0, 0xdd, 0x85, 0x4c, 0x83, 0x6c, 0x83, 0xf7, 0x18, 0x83, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0xcf, 0xb0, 0x19, 0xc8, 0x79, 0x86, 0xfd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xf3, 0x0c, 0xc9, 0xc1, 0xe3, 0xdd, 0xc2, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9c, 0x67, 0x18, 0x0d, 0xe4, 0x3c, 0xc3, 0xf0, 0xe0, 0xfd, 0x08, 0x25, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0xcf, 0xb0, 0x1c, 0xc8, 0x79, 0x86, 0xf9, 0x41, 0x5b, 0x1b, 0x4c, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x41, 0xb3, 0xe6, 0x4c, 0xc7, 0xa1, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x20, 0x58, 0x3c, 0x78, 0x54, 0xe2, 0xd5, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xd8, 0x86, 0x74, 0x20, 0x63, 0x1b, 0x7e, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x6c, 0xc3, 0x60, 0x20, 0x63, 0x1b, 0x46, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc6, 0x36, 0xc4, 0x07, 0xcf, 0x14, 0x0c, 0x1b, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x48, 0x06, 0x04, 0xfb, 0xdd, 0xf1, 0xf8, 0x90, 0x86, 0x1b, 0x64, 0x1b, 0xbc, 0xc6, 0x2f, 0x6c, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x63, 0x1b, 0x76, 0x03, 0x19, 0xdb, 0xb0, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0xb6, 0x61, 0x75, 0xf0, 0x42, 0xc5, 0xb0, 0x83, 0xd7, 0xd0, 0x64, 0x0d, 0xb2, 0x0d, 0x5e, 0xe3, 0x17, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x6c, 0xc3, 0x7c, 0x20, 0x63, 0x1b, 0x2a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x8c, 0x6d, 0x18, 0x1f, 0x3c, 0x1f, 0x32, 0xec, 0xe0, 0x25, 0x3c, 0x59, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x8c, 0x6c, 0x48, 0x07, 0x32, 0xb2, 0xe1, 0xcf, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x91, 0x0d, 0xf1, 0x40, 0x46, 0x36, 0x2c, 0x0e, 0x5e, 0xd5, 0x24, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x46, 0x36, 0x4c, 0x06, 0x32, 0xb2, 0x61, 0x74, 0xf0, 0x4a, 0x70, 0xab, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x8c, 0x6c, 0x58, 0x0d, 0x64, 0x64, 0xc3, 0x7c, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x64, 0xc3, 0x6c, 0x20, 0x23, 0x1b, 0xa6, 0x07, 0x6f, 0x04, 0x28, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xc8, 0x86, 0xed, 0x40, 0x46, 0x36, 0xac, 0x0f, 0x5e, 0x09, 0x6e, 0x75, 0x68, 0xfe, 0x72, 0x3c, 0x3e, 0x0e, 0x1d, 0x87, 0x0e, 0x8d, 0x5a, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0xdf, 0xb8, 0x81, 0xc4, 0x70, 0xfc, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xfb, 0x86, 0x64, 0x20, 0xef, 0x1b, 0xd2, 0x41, 0x32, 0x20, 0xf0, 0xbb, 0x0e, 0x82, 0x9c, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbc, 0x6f, 0xc8, 0x07, 0xf2, 0xbe, 0x61, 0x77, 0x90, 0x1a, 0x86, 0x30, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xf1, 0x1b, 0x77, 0xf0, 0x10, 0xd9, 0xb0, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xf8, 0x0d, 0xc9, 0x40, 0xe2, 0x37, 0xa4, 0x83, 0x64, 0x20, 0xdd, 0x75, 0x10, 0xe4, 0xfc, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x7e, 0xe3, 0x07, 0x72, 0xc1, 0xa1, 0x64, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xfa, 0x8d, 0x3f, 0x78, 0x22, 0x71, 0xd8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xfd, 0x8d, 0x3f, 0x78, 0x22, 0x71, 0xd8, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xff, 0x86, 0x64, 0x20, 0x05, 0x1c, 0xb2, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xfe, 0x0d, 0xe9, 0x40, 0xfa, 0x37, 0x6c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf4, 0x6f, 0xc8, 0x0f, 0xde, 0xfb, 0x1c, 0x36, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0xbf, 0x61, 0x30, 0x90, 0xfe, 0x0d, 0xa3, 0x83, 0xe5, 0xb5, 0x62, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0xdf, 0xb0, 0x1a, 0x48, 0xff, 0x86, 0xe9, 0x21, 0x75, 0x70, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xbf, 0x21, 0x39, 0x78, 0x3e, 0x73, 0xd8, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xff, 0x86, 0x74, 0x20, 0xff, 0x1b, 0x7a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfc, 0x6f, 0xc8, 0x0f, 0x9e, 0xf3, 0x1d, 0x36, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xff, 0x86, 0xd9, 0x40, 0xfe, 0x37, 0xd4, 0x0c, 0xbb, 0xa1, 0xe3, 0xc8, 0xc2, 0x6e, 0xc8, 0x63, 0x2d, 0xdc, 0x62, 0xc0, 0xa3, 0x57, 0x26, 0xf7, 0x36, 0x1f, 0xc6, 0xe5, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x00, 0x0e, 0xc9, 0xc1, 0xf3, 0x99, 0xc3, 0x86, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x00, 0x87, 0x74, 0x20, 0x01, 0x1c, 0x2a, 0x87, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x00, 0x87, 0x7c, 0x20, 0x01, 0x1c, 0x86, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x01, 0x1c, 0x06, 0x03, 0x09, 0xe0, 0xb0, 0x39, 0x38, 0x42, 0x15, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x00, 0x0e, 0xa3, 0x81, 0x04, 0x70, 0x58, 0x1d, 0x52, 0x07, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0xc0, 0x61, 0x36, 0x90, 0x00, 0x0e, 0xbb, 0x83, 0x02, 0x00, 0xea, 0x38, 0xb4, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0xe0, 0xb0, 0x1c, 0x48, 0x00, 0x87, 0xc6, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x00, 0x0e, 0x15, 0x03, 0x09, 0xe0, 0x50, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0xc0, 0xa1, 0x63, 0x20, 0x01, 0x1c, 0x7a, 0x06, 0xc9, 0x80, 0xb3, 0x7b, 0xdf, 0xc1, 0x49, 0xe8, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x04, 0x70, 0x28, 0x1a, 0x48, 0x00, 0x87, 0xb6, 0xc3, 0x5e, 0xe1, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x04, 0x70, 0xa8, 0x1b, 0x48, 0x00, 0x87, 0xbe, 0xe3, 0xd0, 0x71, 0xe8, 0xe0, 0xc9, 0xf4, 0x4f, 0x87, 0x74, 0xee, 0xe1, 0x68, 0xdf, 0x10, 0xc3, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0xc0, 0x21, 0x1d, 0xc8, 0x00, 0x87, 0x9a, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0xc0, 0x21, 0x1f, 0xc8, 0x00, 0x87, 0xd5, 0x70, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0xe0, 0xb0, 0x18, 0xc8, 0x00, 0x87, 0xc9, 0x41, 0x01, 0x00, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x80, 0xc3, 0x66, 0x20, 0x03, 0x1c, 0x46, 0x87, 0xd4, 0xc1, 0xc2, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x80, 0xc3, 0x6c, 0x20, 0x03, 0x1c, 0x5a, 0x86, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x00, 0x87, 0xdd, 0xc1, 0x73, 0x39, 0xc4, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x06, 0x38, 0x0c, 0x07, 0x32, 0xc0, 0x61, 0x7c, 0xd0, 0x80, 0x73, 0xc0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0xe0, 0xb0, 0x1e, 0xc8, 0x00, 0x87, 0x8a, 0xc3, 0x5e, 0xe1, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x0c, 0x70, 0xe8, 0x18, 0xc8, 0x00, 0x87, 0x92, 0xe3, 0xd0, 0x71, 0xe8, 0xb0, 0xbe, 0x79, 0x48, 0xe7, 0x1e, 0x8e, 0xf6, 0x43, 0x3a, 0x77, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x01, 0xc7, 0x1f, 0x3c, 0x91, 0x38, 0x6c, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1c, 0x70, 0xc8, 0x06, 0x72, 0xc0, 0x61, 0x70, 0x1c, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x02, 0xc7, 0x1f, 0x3c, 0x91, 0x38, 0x6c, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x81, 0x43, 0x36, 0x90, 0x04, 0x0e, 0xf9, 0x41, 0xab, 0xb6, 0x49, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0xe0, 0xf8, 0x83, 0x27, 0x12, 0x87, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x3c, 0x70, 0xc8, 0x06, 0xf2, 0xc0, 0x21, 0x1f, 0x24, 0x03, 0x96, 0xbe, 0xf7, 0x1d, 0x0c, 0x47, 0xe9, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x44, 0x70, 0xfc, 0xc1, 0x13, 0x89, 0xc3, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x22, 0x38, 0x64, 0x03, 0x89, 0xe0, 0x90, 0x1f, 0x34, 0x8f, 0x3f, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x22, 0x38, 0x2c, 0x06, 0x12, 0xc1, 0x61, 0x76, 0x48, 0xd5, 0x0c, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x04, 0xc7, 0x1f, 0x3c, 0x91, 0x38, 0x6c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x0a, 0x8e, 0x3f, 0x78, 0x22, 0x71, 0xd8, 0xb0, 0x1b, 0xba, 0x66, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x82, 0xc3, 0x62, 0x20, 0x15, 0x1c, 0x86, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xe0, 0x30, 0x19, 0x48, 0x05, 0x87, 0xd9, 0x21, 0x75, 0x70, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x0b, 0x8e, 0x3f, 0x78, 0x22, 0x71, 0xd8, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x05, 0x87, 0x60, 0x20, 0x17, 0x1c, 0xc2, 0x41, 0xb2, 0x41, 0x39, 0xab, 0x73, 0x70, 0xcc, 0x2a, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x17, 0x1c, 0xd2, 0x81, 0x5c, 0x70, 0x68, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0xe0, 0x10, 0x0f, 0xe4, 0x82, 0xc3, 0xe2, 0xe0, 0xfc, 0x5d, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x2e, 0x38, 0x4c, 0x06, 0x72, 0xc1, 0x61, 0x73, 0x70, 0x6e, 0x29, 0x1e, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x0b, 0x0e, 0xa3, 0x81, 0x5c, 0x70, 0x28, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0xe0, 0xb0, 0x1a, 0xc8, 0x05, 0x87, 0xe5, 0xc1, 0x73, 0x07, 0x4c, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0xc1, 0x61, 0x3a, 0x90, 0x0b, 0x0e, 0xfb, 0x83, 0xc0, 0xc4, 0x3e, 0x0e, 0x1d, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x82, 0x43, 0xc5, 0x40, 0x2e, 0x38, 0x74, 0x1c, 0x62, 0x78, 0x1c, 0x3a, 0x1e, 0x1f, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x07, 0x1c, 0x26, 0x03, 0x39, 0xe0, 0xb0, 0x39, 0xc4, 0xf0, 0x78, 0x3c, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x1d, 0x1c, 0x77, 0xf0, 0x10, 0xd9, 0xb0, 0x41, 0xb0, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x17, 0x0e, 0xf1, 0x40, 0x5e, 0x38, 0x74, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbc, 0x70, 0xc8, 0x07, 0xf2, 0xc2, 0x61, 0x33, 0x48, 0x06, 0x04, 0x7e, 0xd7, 0x41, 0xc0, 0xfb, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x17, 0x0e, 0xa3, 0x81, 0xbc, 0x70, 0x98, 0x1d, 0x24, 0xca, 0x7d, 0x0c, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x0b, 0x87, 0xdd, 0x40, 0x5e, 0x38, 0x54, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbc, 0x70, 0x18, 0x0e, 0xe4, 0x85, 0xc3, 0xf8, 0xa0, 0x05, 0xd8, 0xfc, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xc2, 0x61, 0x3d, 0x90, 0x17, 0x0e, 0x15, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0xe1, 0x30, 0x1f, 0xc8, 0x0b, 0x87, 0xfd, 0xe1, 0x68, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xc2, 0xa1, 0x60, 0x20, 0x2f, 0x1c, 0x1a, 0x0e, 0xca, 0xb8, 0x9d, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0xe1, 0xd0, 0x31, 0x90, 0x17, 0x0e, 0x4d, 0xc3, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x85, 0x43, 0xcf, 0xc1, 0xeb, 0x36, 0xc5, 0x06, 0xc9, 0x40, 0xfd, 0x3b, 0x08, 0x78, 0xff, 0x83, 0xd5, 0x9b, 0x68, 0xc7, 0xa1, 0xe3, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x5a, 0x38, 0xc4, 0x03, 0x69, 0xe1, 0xd0, 0x36, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0xc2, 0x21, 0x1f, 0x48, 0x0b, 0x87, 0xcd, 0x41, 0x33, 0xcf, 0xf8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x85, 0xc3, 0x68, 0x20, 0x2d, 0x1c, 0xb6, 0x1b, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x85, 0xc3, 0xea, 0xe0, 0xd9, 0xa9, 0x62, 0x07, 0x2f, 0x37, 0x0f, 0x1b, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x16, 0x0e, 0xe3, 0x81, 0xb4, 0x70, 0x28, 0x1b, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x5a, 0x38, 0x14, 0x0d, 0xa4, 0x85, 0x43, 0xd7, 0xc1, 0xbb, 0x96, 0x0e, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0xc2, 0xa1, 0x64, 0x20, 0x2d, 0x1c, 0x7a, 0x0e, 0xde, 0xb5, 0x74, 0x30, 0x08, 0x36, 0x08, 0xb2, 0xf8, 0xc5, 0x41, 0xb0, 0xf0, 0x1b, 0xb2, 0x15, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x5a, 0x38, 0xec, 0x07, 0xd2, 0xc2, 0xa1, 0xe3, 0xa0, 0x71, 0xb1, 0xfb, 0x83, 0x95, 0xf8, 0x22, 0xc7, 0xe3, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x0e, 0x0e, 0xc9, 0x40, 0x56, 0x38, 0x64, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x1d, 0x1c, 0xd2, 0x81, 0x74, 0x70, 0x58, 0x1c, 0xb4, 0xba, 0x74, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x3e, 0x38, 0x64, 0x03, 0x09, 0xe1, 0x30, 0x1c, 0x04, 0x1b, 0x8c, 0xfc, 0x87, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x21, 0x1c, 0xb2, 0x83, 0x17, 0x1e, 0x8b, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x84, 0x70, 0x48, 0x07, 0x12, 0xc2, 0x61, 0x31, 0x48, 0x06, 0x14, 0xea, 0x7d, 0x07, 0xc3, 0x51, 0x7a, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0xe1, 0x30, 0x19, 0x48, 0x08, 0x87, 0xcd, 0x21, 0x9a, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x42, 0x38, 0x8c, 0x06, 0x12, 0xc2, 0x61, 0x75, 0x68, 0x24, 0x38, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0xe1, 0x30, 0x1b, 0x48, 0x08, 0x87, 0xdd, 0x41, 0x50, 0x7a, 0x1f, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0xe1, 0x90, 0x1c, 0xbc, 0x0f, 0x58, 0x6c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa4, 0x70, 0xc8, 0x06, 0x92, 0xc2, 0x61, 0x39, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xc2, 0x21, 0x1c, 0x48, 0x0a, 0x87, 0xc1, 0xc1, 0xf3, 0x40, 0x1a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x0a, 0x87, 0xc5, 0x40, 0x52, 0x38, 0x8c, 0x0e, 0xde, 0xb5, 0x74, 0x30, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x29, 0x1c, 0x56, 0x03, 0x49, 0xe1, 0x30, 0x3c, 0x28, 0x19, 0x9a, 0x8e, 0x43, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0xe1, 0x90, 0x0d, 0xe4, 0x84, 0xc3, 0x76, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x84, 0x43, 0x38, 0x90, 0x13, 0x0e, 0x83, 0x83, 0x16, 0x60, 0xf3, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x09, 0x87, 0xc5, 0x40, 0x4e, 0x38, 0xcc, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0xc2, 0x61, 0x32, 0x90, 0x13, 0x0e, 0x9b, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9c, 0x70, 0x18, 0x0d, 0xe4, 0x84, 0xc3, 0xea, 0x70, 0xb4, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x09, 0x87, 0xdd, 0x40, 0x4e, 0x38, 0x4c, 0x0f, 0xc6, 0x1d, 0xd4, 0x71, 0x68, 0x10, 0x6c, 0x10, 0x64, 0xf1, 0x8b, 0x83, 0x60, 0xe1, 0x37, 0x64, 0x2b, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x8c, 0x70, 0x48, 0x07, 0x32, 0xc2, 0x61, 0x71, 0xd0, 0xb8, 0xd8, 0xfd, 0xc1, 0x4a, 0x7c, 0x91, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4a, 0x38, 0x64, 0x03, 0x29, 0xe1, 0xb0, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x29, 0xe1, 0x10, 0x0e, 0xa4, 0x84, 0xc3, 0xe0, 0xe0, 0x79, 0x20, 0x0d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x84, 0xc3, 0x62, 0x20, 0x25, 0x1c, 0x46, 0x07, 0xef, 0x5a, 0x3a, 0x18, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x12, 0x0e, 0xab, 0x81, 0x94, 0x70, 0x18, 0x1e, 0x94, 0x0c, 0x4d, 0xc7, 0xa1, 0x83, 0x67, 0x10, 0x8c, 0x1d, 0x87, 0x0e, 0xd6, 0xf2, 0x09, 0x1c, 0x87, 0x8e, 0x43, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x29, 0xdf, 0xb8, 0x81, 0x9c, 0x6f, 0xa8, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x29, 0xdf, 0x90, 0x0c, 0xa4, 0x7c, 0xc3, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xf9, 0x86, 0xf4, 0xe0, 0x8d, 0x1e, 0x63, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe5, 0x1b, 0xe2, 0x81, 0x94, 0x6f, 0x18, 0x0d, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xf2, 0x0d, 0x93, 0x83, 0x87, 0x8f, 0x8c, 0x1d, 0x9c, 0x02, 0x7c, 0x0f, 0x4a, 0x86, 0xa6, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x94, 0x6f, 0x58, 0x0d, 0xa4, 0x7c, 0xc3, 0x76, 0xf8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x94, 0x6f, 0x58, 0x1e, 0xbc, 0x69, 0x65, 0x6c, 0x90, 0x0c, 0xd4, 0xbf, 0x83, 0x20, 0xe7, 0x3f, 0x58, 0x50, 0x6d, 0x76, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0xbe, 0x71, 0x07, 0x0f, 0xde, 0x18, 0x1b, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0xdf, 0xd8, 0x81, 0x9c, 0x6f, 0x88, 0x0e, 0x5e, 0x39, 0x28, 0x36, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xce, 0x37, 0x64, 0x03, 0x39, 0xdf, 0x10, 0x1f, 0x24, 0xa5, 0xf5, 0x0c, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xf9, 0x86, 0x7c, 0x20, 0xe7, 0x1b, 0x9a, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xf3, 0x0d, 0xdb, 0x81, 0x9c, 0x6f, 0x28, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0xdf, 0x30, 0x1e, 0xc8, 0xf9, 0x86, 0x82, 0x83, 0x16, 0x60, 0xf3, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xf9, 0x86, 0x86, 0x81, 0x9c, 0x6f, 0xa8, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xf9, 0x86, 0x8a, 0x81, 0x9c, 0x6f, 0xe8, 0x38, 0xf4, 0x27, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0xbe, 0xa1, 0x64, 0x20, 0xe7, 0x1b, 0x5a, 0x0e, 0xfd, 0xc9, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x7c, 0x43, 0xcf, 0x40, 0xce, 0x37, 0xf4, 0x0e, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe7, 0x1b, 0x3a, 0x07, 0x72, 0xbe, 0xa1, 0xf6, 0x38, 0x34, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xf3, 0x0d, 0x7d, 0x03, 0x39, 0xdf, 0x50, 0x79, 0xf0, 0xc2, 0xa1, 0x83, 0x41, 0xb0, 0x41, 0x90, 0xc5, 0x2f, 0x0e, 0x82, 0x85, 0xdf, 0x90, 0xad, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0xbe, 0xa1, 0x6a, 0x20, 0xe7, 0x1b, 0xea, 0x0e, 0x52, 0x63, 0x2c, 0x0e, 0x56, 0xe2, 0x8b, 0x1c, 0x8f, 0x8f, 0x43, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0xdf, 0xb0, 0x1b, 0xc8, 0xf9, 0x86, 0xe9, 0x71, 0x68, 0x10, 0x6c, 0x10, 0x64, 0xf1, 0x8b, 0x83, 0x60, 0xe1, 0x37, 0x64, 0x2b, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9c, 0x6f, 0x98, 0x0c, 0xe4, 0x7c, 0xc3, 0xec, 0xa0, 0x71, 0xb1, 0xfb, 0x83, 0x95, 0xf8, 0x22, 0xc7, 0xe3, 0xe3, 0xd0, 0x20, 0x58, 0x3c, 0x78, 0x75, 0xd1, 0xd6, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xbb, 0xc6, 0x0d, 0x64, 0x5f, 0xe3, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xae, 0x21, 0x1d, 0xc8, 0xbb, 0x86, 0xc5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x77, 0x0d, 0xc9, 0x40, 0xde, 0x35, 0x1c, 0x39, 0x78, 0x6c, 0x61, 0xd8, 0x20, 0xdb, 0xe0, 0xf5, 0x68, 0x63, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0xd7, 0x90, 0x0e, 0x24, 0x5e, 0xc3, 0x74, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xbc, 0x86, 0x64, 0x20, 0xf1, 0x1a, 0xee, 0x0c, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0xd7, 0x10, 0x0f, 0x24, 0x5e, 0xc3, 0x62, 0x90, 0x0c, 0xfc, 0xd3, 0x77, 0x30, 0xde, 0x75, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xbc, 0x86, 0xc9, 0x40, 0xe2, 0x35, 0xcc, 0x0e, 0x1e, 0xe8, 0x3e, 0x74, 0x68, 0xfe, 0x72, 0x3c, 0x1e, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x78, 0x0d, 0xbb, 0x81, 0xc4, 0x6b, 0x58, 0x1e, 0xbc, 0x12, 0xdc, 0xea, 0xd0, 0xfc, 0xe5, 0x78, 0x7c, 0x1c, 0x3a, 0x34, 0x05, 0x1a, 0x64, 0x1b, 0xbc, 0x1e, 0x6d, 0x6c, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xf3, 0x1a, 0xd2, 0x81, 0xcc, 0x6b, 0x58, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0xd7, 0x90, 0x0c, 0x64, 0x5e, 0xc3, 0x91, 0x83, 0x87, 0xbc, 0x69, 0x0d, 0xb2, 0x0d, 0x5e, 0x8f, 0x36, 0xb6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x7a, 0x0d, 0xe9, 0x40, 0xea, 0x35, 0xcc, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd4, 0x6b, 0x48, 0x06, 0x52, 0xaf, 0xe1, 0xcc, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x7a, 0x0d, 0xf1, 0x40, 0xea, 0x35, 0x4c, 0x0e, 0xde, 0x8f, 0x50, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x7a, 0x0d, 0x9b, 0x81, 0xd4, 0x6b, 0x58, 0x1d, 0xbc, 0x12, 0xdc, 0xea, 0xd0, 0xfc, 0xe5, 0x78, 0x7c, 0x1c, 0x3a, 0x58, 0xc2, 0xff, 0x33, 0xc8, 0x36, 0x78, 0x3d, 0xda, 0xd8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xee, 0x35, 0xa4, 0x03, 0xb9, 0xd7, 0xb0, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0xaf, 0x21, 0x19, 0xc8, 0xbd, 0x86, 0x1b, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xee, 0x35, 0xc4, 0x03, 0xb9, 0xd7, 0x30, 0x39, 0x78, 0x6f, 0x06, 0xd1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0xd7, 0xb0, 0x19, 0xc8, 0xbd, 0x86, 0xd9, 0xc1, 0xd3, 0x24, 0xb6, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0xaf, 0x61, 0x37, 0x90, 0x7b, 0x0d, 0xd3, 0x41, 0xb0, 0xc1, 0xc3, 0xf6, 0x7a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xac, 0xb9, 0xb7, 0x39, 0xa4, 0x6a, 0x8e, 0x43, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xd0, 0xc1, 0x7b, 0x0e, 0x33, 0x06, 0xd9, 0x06, 0xaf, 0x47, 0x1b, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xaf, 0x21, 0x1d, 0x48, 0xbe, 0x86, 0xe5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x7c, 0x0d, 0xc9, 0x40, 0xf2, 0x35, 0x1c, 0x19, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xaf, 0x21, 0x1e, 0x48, 0xbe, 0x86, 0xc5, 0xc1, 0xab, 0x9a, 0x84, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xbe, 0x86, 0xc9, 0x40, 0xf2, 0x35, 0xcc, 0x0e, 0x1e, 0xe8, 0x3e, 0x74, 0x68, 0xfe, 0x72, 0x3c, 0x1e, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x7c, 0x0d, 0xbb, 0x81, 0xe4, 0x6b, 0x18, 0x1e, 0x52, 0x07, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xd0, 0x41, 0xa3, 0x13, 0x4a, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x29, 0x08, 0xd9, 0x40, 0x2d, 0x08, 0x6f, 0x86, 0xdd, 0xd0, 0x71, 0x64, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x16, 0x84, 0xec, 0xe0, 0x9d, 0xce, 0x63, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb5, 0x20, 0xc4, 0x03, 0xb5, 0x20, 0x4c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5a, 0x10, 0xc2, 0x83, 0x17, 0x51, 0x8f, 0x0d, 0x82, 0x0d, 0xda, 0x19, 0xb9, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x31, 0xf0, 0xea, 0xf0, 0x88, 0x43, 0xd6, 0xee, 0x38, 0x34, 0xc8, 0x36, 0x78, 0xff, 0xf3, 0xd8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x2d, 0x08, 0xab, 0x81, 0x5a, 0x10, 0x96, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x2d, 0x08, 0x9b, 0x83, 0x07, 0x75, 0x8f, 0x0d, 0x82, 0x0d, 0xda, 0x19, 0xb9, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xf0, 0x6a, 0xec, 0xb1, 0x43, 0x0f, 0xa1, 0xe3, 0xd0, 0x20, 0xdb, 0xe0, 0xfd, 0xcf, 0x63, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x2d, 0x08, 0xe3, 0x81, 0x5a, 0x10, 0x0a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5a, 0x10, 0xa6, 0x07, 0x0f, 0x2e, 0x1f, 0x1b, 0x04, 0x1b, 0xb4, 0x33, 0x72, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0xd5, 0xd8, 0x63, 0x87, 0x8e, 0x61, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x14, 0x84, 0x7c, 0xa0, 0x14, 0x84, 0x1f, 0xc3, 0x6e, 0xf0, 0x96, 0xdf, 0xa3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x52, 0x10, 0x16, 0x03, 0xa5, 0x20, 0x6c, 0x0e, 0x1e, 0x2d, 0x7c, 0x34, 0xec, 0x06, 0xef, 0x56, 0xd0, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0x05, 0x61, 0x34, 0x50, 0x0a, 0xc2, 0x6c, 0xd8, 0x85, 0xdb, 0x90, 0x3a, 0x38, 0x68, 0x83, 0x6b, 0xe0, 0xe0, 0xdd, 0x01, 0x3d, 0xc3, 0x6e, 0xf0, 0xa8, 0x01, 0x9d, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x52, 0x10, 0x76, 0x03, 0xa5, 0x20, 0x2c, 0x0f, 0x9e, 0xdd, 0x79, 0x34, 0xec, 0x06, 0xaf, 0x29, 0xd0, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0x05, 0x61, 0x3a, 0x50, 0x0a, 0xc2, 0xf8, 0xe0, 0xf1, 0xa2, 0x47, 0xc3, 0x2e, 0xdc, 0x06, 0xab, 0xba, 0x17, 0x0e, 0xa9, 0x83, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x52, 0x10, 0xd6, 0x03, 0xa5, 0x20, 0xec, 0x87, 0x5d, 0xb8, 0x0d, 0xa9, 0x83, 0x83, 0x55, 0xdd, 0x0b, 0x07, 0xaf, 0x90, 0xf8, 0x19, 0x76, 0x83, 0xa7, 0x9e, 0x1f, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0x82, 0x50, 0x30, 0x50, 0x0a, 0x42, 0xc5, 0xc1, 0x9b, 0xd6, 0x8f, 0x86, 0xdd, 0xe0, 0x55, 0x10, 0x3a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa5, 0x20, 0x74, 0x0c, 0x94, 0x82, 0xd0, 0x32, 0xec, 0xc2, 0x6d, 0x48, 0x1d, 0x1c, 0x2c, 0x5e, 0x01, 0x3a, 0x78, 0x91, 0x4a, 0xcf, 0xb0, 0x1b, 0xbc, 0x7b, 0xfb, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x14, 0x84, 0x9a, 0x81, 0x52, 0x10, 0x8a, 0x0e, 0x9e, 0xf7, 0x7d, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0x82, 0xd0, 0x34, 0x50, 0x0a, 0x42, 0xd7, 0xc1, 0xd2, 0x53, 0xa3, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0x80, 0x90, 0x0d, 0x94, 0x80, 0xf0, 0x64, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0x01, 0x21, 0x1c, 0x28, 0x01, 0x61, 0x70, 0xd0, 0x48, 0x92, 0xfd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x25, 0x20, 0x2c, 0x06, 0x4a, 0x40, 0x18, 0x1d, 0x34, 0x2c, 0x72, 0x7f, 0x68, 0xfe, 0x72, 0x3c, 0x1e, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x02, 0xc2, 0x6a, 0xa0, 0x04, 0x84, 0xd9, 0x20, 0xd8, 0xa0, 0x9d, 0x91, 0xfb, 0x83, 0x71, 0x1c, 0x72, 0x68, 0xfe, 0x72, 0x3c, 0x3e, 0x0e, 0x1d, 0x1a, 0xb5, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x67, 0x21, 0x1b, 0xc8, 0xd4, 0xc5, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0xb3, 0xe8, 0xc1, 0x23, 0x55, 0xc8, 0x16, 0x17, 0x04, 0x8b, 0x1b, 0x3c, 0x72, 0x0f, 0xa3, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x99, 0x8b, 0x1b, 0x48, 0xd0, 0xc5, 0x0f, 0xbb, 0xc1, 0xcb, 0xfd, 0x82, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x73, 0x21, 0x19, 0xc8, 0xcc, 0x85, 0x3b, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0xb9, 0x10, 0x0d, 0x64, 0xe6, 0x42, 0x3e, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0x2b, 0xfe, 0x82, 0x36, 0x78, 0xc5, 0x5f, 0xd0, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0xbc, 0x4d, 0x86, 0x6c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xcc, 0x85, 0xc9, 0x40, 0x66, 0x2e, 0xac, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xcc, 0x5c, 0x18, 0x1c, 0xbc, 0x87, 0x87, 0xec, 0xe0, 0xdd, 0x95, 0x3d, 0xc3, 0x6e, 0xf0, 0x78, 0xac, 0x8d, 0x05, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x6a, 0x2e, 0x4c, 0x06, 0x52, 0x73, 0x61, 0x36, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x90, 0x0c, 0xa4, 0xd7, 0x8e, 0xc7, 0x87, 0x46, 0x2d, 0xc3, 0x6e, 0xf0, 0x48, 0x10, 0x9b, 0x83, 0xb1, 0x30, 0x3a, 0xec, 0x06, 0x6f, 0xb0, 0x0b, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xcd, 0x85, 0x64, 0x20, 0x37, 0x17, 0x26, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0xb9, 0x10, 0x0d, 0xe4, 0xe6, 0x42, 0x3e, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0x7b, 0xec, 0x82, 0x36, 0x78, 0x8f, 0x5d, 0xd0, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0xbc, 0xf2, 0x88, 0x6c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xcd, 0x85, 0xc1, 0x40, 0x6e, 0x2e, 0x2c, 0x0e, 0x86, 0xe6, 0xef, 0xb0, 0x1b, 0xbc, 0x5c, 0x2d, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x39, 0x17, 0x92, 0x81, 0xe4, 0x5c, 0x78, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x9c, 0x0b, 0xd1, 0x40, 0x72, 0x2e, 0xe4, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0xbc, 0x62, 0x2d, 0xe8, 0xe0, 0xe9, 0xc6, 0x4b, 0x83, 0x6c, 0x83, 0x77, 0x4d, 0x91, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xb9, 0x30, 0x18, 0x48, 0xce, 0x85, 0xc5, 0xc1, 0xd0, 0xfc, 0x1d, 0x76, 0x83, 0x47, 0x8f, 0x05, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xe7, 0x42, 0x32, 0x90, 0x9d, 0x0b, 0x5f, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x73, 0x21, 0x1a, 0xc8, 0xce, 0x85, 0x7c, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x07, 0x90, 0x05, 0x6d, 0xf0, 0x00, 0xb2, 0xa0, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x78, 0xb4, 0x17, 0xd9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x9d, 0x0b, 0x83, 0x81, 0xec, 0x5c, 0x58, 0x1c, 0x0c, 0xcd, 0xdf, 0x61, 0x37, 0x68, 0x67, 0xdf, 0x7e, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x9e, 0x0b, 0x93, 0x81, 0xf4, 0x5c, 0x98, 0x1d, 0xbc, 0x6e, 0x88, 0x6c, 0xd8, 0x85, 0xdb, 0xa0, 0xa5, 0x64, 0xfb, 0x83, 0x90, 0x02, 0x3f, 0x18, 0x0b, 0xa3, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x7e, 0x2e, 0x24, 0x03, 0xf9, 0xb9, 0xf0, 0x64, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x3f, 0x17, 0xa2, 0x81, 0xfc, 0x5c, 0xc8, 0x0f, 0x9e, 0x16, 0x88, 0x31, 0xc8, 0x36, 0x78, 0xf0, 0x1b, 0xd9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x9f, 0x0b, 0x83, 0x81, 0xfc, 0x5c, 0x58, 0x1c, 0x0c, 0xcd, 0xdf, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x60, 0xf1, 0x60, 0x81, 0x2d, 0xe9, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xca, 0xc5, 0x0d, 0xe4, 0xe5, 0xe2, 0x87, 0x5d, 0xd8, 0x85, 0x5b, 0x0c, 0xbc, 0x31, 0x36, 0xf9, 0x10, 0xcd, 0x0d, 0x31, 0x1c, 0x76, 0xe1, 0x16, 0x03, 0x6f, 0x2e, 0xec, 0x3c, 0x44, 0x73, 0x43, 0x0c, 0x87, 0x5d, 0xb8, 0xc5, 0x83, 0xb1, 0x20, 0x76, 0x88, 0xe6, 0x86, 0x18, 0x0e, 0xbb, 0x70, 0x8b, 0x81, 0x27, 0x56, 0xc6, 0x1e, 0xa2, 0xb9, 0x21, 0x86, 0xc3, 0x2e, 0xdc, 0x62, 0xe0, 0xcd, 0x85, 0xd9, 0x87, 0x68, 0x6e, 0x88, 0xe1, 0xb0, 0x0b, 0xb7, 0x18, 0x78, 0x6e, 0x65, 0xec, 0x21, 0x9a, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x6d, 0xf0, 0xfe, 0x2c, 0xab, 0x43, 0x34, 0x37, 0xc4, 0x70, 0xd8, 0x85, 0x5b, 0x0c, 0xbc, 0x3a, 0x39, 0xf6, 0x10, 0xcd, 0x0d, 0x31, 0x1c, 0x76, 0xe1, 0x16, 0x03, 0x0f, 0xed, 0x0d, 0x3e, 0x44, 0x73, 0x43, 0x0c, 0x87, 0x5d, 0xb8, 0xc5, 0xc0, 0x5b, 0x63, 0x93, 0x0f, 0xd1, 0xdc, 0x10, 0xc3, 0xe1, 0x16, 0x0f, 0xda, 0x54, 0xe8, 0x3d, 0x44, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x2b, 0x17, 0x92, 0x81, 0xac, 0x5c, 0xb8, 0x32, 0x08, 0x16, 0x7e, 0x43, 0x72, 0xe9, 0x60, 0x89, 0x59, 0xca, 0xa1, 0x51, 0xcb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x96, 0x0b, 0xc9, 0x40, 0x5a, 0x2e, 0x5c, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xcb, 0x85, 0x68, 0x20, 0x2d, 0x17, 0xe2, 0x61, 0x17, 0x6e, 0x43, 0x34, 0xc7, 0x83, 0x65, 0xb0, 0xa0, 0x1b, 0x3c, 0x0d, 0x93, 0xec, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0x9e, 0x2d, 0x49, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xe5, 0x42, 0x3e, 0x90, 0x96, 0x0b, 0x83, 0x83, 0xa1, 0xf9, 0x7b, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x41, 0xb0, 0x78, 0xd0, 0x40, 0x4d, 0xef, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xc0, 0xc5, 0x0d, 0x24, 0xe3, 0xe2, 0x87, 0xdd, 0xe0, 0x5d, 0x82, 0x64, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0xb8, 0x90, 0x0c, 0x64, 0xe0, 0xc2, 0x93, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x0c, 0x5c, 0x88, 0x06, 0x32, 0x70, 0x21, 0x1e, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0x8d, 0x82, 0x64, 0x1b, 0xbc, 0x51, 0x90, 0xec, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0x9e, 0x30, 0x4a, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xe0, 0x42, 0x3e, 0x90, 0x81, 0x0b, 0x83, 0x83, 0xa1, 0xf9, 0x3b, 0xec, 0x06, 0x4f, 0xed, 0x23, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xc1, 0x85, 0x64, 0x20, 0x05, 0x17, 0xde, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xe0, 0x42, 0x34, 0x90, 0x82, 0x0b, 0xf1, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0xcf, 0xee, 0x23, 0xdb, 0xe0, 0xd9, 0x7d, 0x64, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0xf0, 0x6a, 0x57, 0xb2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x05, 0x17, 0xf2, 0x81, 0x14, 0x5c, 0x18, 0x1c, 0x0c, 0xcd, 0xdf, 0x61, 0x37, 0x78, 0x90, 0x22, 0xd9, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x0e, 0x2e, 0x24, 0x03, 0x39, 0xb8, 0xf0, 0x67, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x07, 0x17, 0xa2, 0x81, 0x1c, 0x5c, 0x88, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x78, 0x9c, 0x22, 0xd9, 0x06, 0x8f, 0x53, 0x24, 0x3b, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x87, 0xea, 0x92, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0xb8, 0xb0, 0x18, 0xc8, 0xc1, 0x85, 0x9a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x07, 0x17, 0xf2, 0x83, 0xc7, 0x11, 0x93, 0x0d, 0xbb, 0xc1, 0xe8, 0xc5, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xc1, 0x85, 0xe1, 0x40, 0x0e, 0x2e, 0xb4, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xe0, 0xc2, 0x76, 0x20, 0x07, 0x17, 0xe6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x0e, 0x2e, 0x2c, 0x0f, 0x9e, 0xcd, 0x4c, 0x76, 0xf0, 0x92, 0xbd, 0x9e, 0x41, 0xb6, 0xc1, 0xeb, 0x90, 0xc9, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1c, 0x5c, 0x68, 0x18, 0xc8, 0xc1, 0x85, 0x92, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x07, 0x17, 0xf6, 0x07, 0x8f, 0x9a, 0x26, 0x1b, 0x04, 0x1b, 0x3c, 0x6c, 0xaf, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc2, 0x43, 0x99, 0x43, 0xc7, 0xb0, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x83, 0x0b, 0xa3, 0x81, 0x1c, 0x5c, 0xd8, 0x1d, 0xbc, 0xbb, 0xb2, 0x67, 0xd8, 0x0d, 0x9e, 0xbd, 0x48, 0xb6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x84, 0x0b, 0xc9, 0x40, 0x12, 0x2e, 0xfc, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xc2, 0x85, 0x68, 0x20, 0x09, 0x17, 0xe2, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x9e, 0xc0, 0x48, 0xb6, 0xc1, 0x13, 0x18, 0xc9, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0xe0, 0x39, 0xdd, 0x64, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x12, 0x2e, 0x2c, 0x06, 0x92, 0x70, 0x61, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xe1, 0x42, 0x7e, 0xf0, 0x84, 0x73, 0xb2, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x07, 0x6d, 0xc6, 0xf9, 0x1f, 0x3a, 0x68, 0x0c, 0xbb, 0xc1, 0xb3, 0x01, 0xc9, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x70, 0x21, 0x19, 0xc8, 0xc2, 0x85, 0x2f, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0xb8, 0x10, 0x0d, 0x64, 0xe1, 0x42, 0x3c, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0x13, 0x02, 0xc9, 0x36, 0x78, 0x42, 0x20, 0xd9, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0xbc, 0x99, 0x9d, 0x6c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xc2, 0x85, 0xc5, 0x40, 0x16, 0x2e, 0x8c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x2c, 0x5c, 0xc8, 0x0f, 0xde, 0x69, 0x4f, 0x36, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xe1, 0xc2, 0x64, 0x20, 0x0b, 0x17, 0x66, 0x07, 0x6f, 0x04, 0x28, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xc2, 0x85, 0xdd, 0x40, 0x16, 0x2e, 0x6c, 0x0f, 0x96, 0x98, 0xa5, 0x1c, 0x87, 0x0e, 0x1d, 0x34, 0x86, 0xdd, 0xe0, 0x8d, 0x85, 0x64, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0xb8, 0x90, 0x0c, 0xa4, 0xe1, 0xc2, 0x89, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x34, 0x5c, 0x88, 0x06, 0xd2, 0x70, 0x21, 0x1e, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0xbd, 0x85, 0x64, 0x1b, 0xbc, 0xb7, 0x90, 0xec, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0x9e, 0x3a, 0x50, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xe1, 0x42, 0x3e, 0x90, 0x86, 0x0b, 0x83, 0x83, 0xa1, 0xf9, 0x3b, 0xec, 0x06, 0x2f, 0x39, 0x24, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xc3, 0x85, 0x64, 0x20, 0x0f, 0x17, 0xfe, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xe1, 0x42, 0x34, 0x90, 0x87, 0x0b, 0xf1, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0xef, 0xcf, 0xb2, 0x3a, 0x78, 0xb0, 0x97, 0xd5, 0x20, 0xdb, 0xe0, 0x75, 0x0f, 0x65, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x1e, 0x2e, 0x2c, 0x06, 0xf2, 0x70, 0x61, 0x3a, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xe1, 0x42, 0x7e, 0xf0, 0x74, 0x8c, 0xb2, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x0f, 0x17, 0x26, 0x03, 0x79, 0xb8, 0x30, 0x3b, 0x78, 0x23, 0x40, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x1e, 0x2e, 0xec, 0x06, 0xf2, 0x70, 0x61, 0x39, 0x08, 0x36, 0x78, 0xd8, 0x5e, 0xcf, 0xc1, 0x7b, 0x55, 0x79, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc7, 0xa1, 0x43, 0x07, 0x8d, 0x61, 0x37, 0x78, 0xd0, 0x1f, 0xd9, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x22, 0x2e, 0x24, 0x03, 0x89, 0xb8, 0x70, 0x66, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x11, 0x17, 0xa2, 0x81, 0x44, 0x5c, 0x88, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x78, 0xdc, 0x1f, 0xd9, 0x06, 0x8f, 0xfb, 0x23, 0x3b, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x07, 0xa1, 0x94, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xe2, 0xc2, 0x62, 0x20, 0x11, 0x17, 0x56, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x22, 0x2e, 0xe4, 0x07, 0xcf, 0x90, 0x29, 0x3b, 0x78, 0xc2, 0xd0, 0xd1, 0x20, 0xdb, 0xe0, 0x41, 0x28, 0x65, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x22, 0x2e, 0x0c, 0x07, 0x12, 0x71, 0x61, 0x39, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xe2, 0xc2, 0xec, 0xe0, 0x89, 0x38, 0x65, 0x07, 0x41, 0xe9, 0x3d, 0xec, 0x06, 0xaf, 0x1f, 0x24, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xc4, 0x85, 0x64, 0x20, 0x13, 0x17, 0x9e, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xe2, 0x42, 0x34, 0x90, 0x89, 0x0b, 0xf1, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x2f, 0x21, 0x24, 0xdb, 0xe0, 0x25, 0x84, 0x64, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0xf0, 0x8a, 0x9e, 0xb2, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4c, 0x5c, 0x58, 0x0c, 0x64, 0xe2, 0xc2, 0x6a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xc4, 0x85, 0xfc, 0xe0, 0xed, 0x46, 0x65, 0x07, 0x4f, 0x18, 0x3a, 0x1a, 0x64, 0x1b, 0xbc, 0xa2, 0xa7, 0x6c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xc4, 0x85, 0xe1, 0x40, 0x26, 0x2e, 0x2c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4c, 0x5c, 0x98, 0x1d, 0xbc, 0xab, 0xa9, 0x6c, 0x10, 0x6c, 0xf0, 0xb0, 0xbd, 0x9e, 0x83, 0x63, 0x76, 0xef, 0xb0, 0x1b, 0x3c, 0x15, 0x91, 0x6c, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x15, 0x17, 0x92, 0x81, 0x54, 0x5c, 0x78, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x8a, 0x0b, 0xd1, 0x40, 0x2a, 0x2e, 0xc4, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x3c, 0x1b, 0x91, 0x6c, 0x83, 0x67, 0x23, 0x92, 0x1d, 0x4e, 0xb1, 0x41, 0xb6, 0xc1, 0x7b, 0xa5, 0xca, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x54, 0x5c, 0x58, 0x0c, 0xa4, 0xe2, 0xc2, 0x66, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xc5, 0x85, 0xfc, 0xe0, 0x8d, 0x5c, 0x65, 0x07, 0xaf, 0x23, 0xbc, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x71, 0x21, 0x19, 0xc8, 0xc5, 0x85, 0x37, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0xb8, 0x10, 0x0d, 0xe4, 0xe2, 0x42, 0x3c, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0xe3, 0x1a, 0xc9, 0x36, 0x78, 0x5c, 0x23, 0xd9, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0xbc, 0x0d, 0xac, 0x6c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xc5, 0x85, 0x7c, 0x20, 0x17, 0x17, 0x06, 0x07, 0x43, 0xf3, 0xf7, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xdc, 0x42, 0x3a, 0x90, 0x71, 0x0b, 0x4f, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x6e, 0x61, 0x30, 0x90, 0x71, 0x0b, 0x9b, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe3, 0x16, 0xe2, 0x83, 0xd7, 0xc5, 0x95, 0x1d, 0xbc, 0x5c, 0xb9, 0x68, 0x90, 0x6d, 0xf0, 0x88, 0xb6, 0xb2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe3, 0x16, 0x66, 0x03, 0x19, 0xb7, 0xb0, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x6e, 0x61, 0x74, 0xf0, 0xf2, 0xbb, 0xb2, 0x83, 0x77, 0x57, 0xf6, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x6f, 0x71, 0x03, 0xf9, 0xb7, 0xf8, 0x61, 0x37, 0x74, 0x1c, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xbd, 0xc5, 0x1d, 0xbc, 0xe0, 0xaf, 0x6c, 0xd8, 0x85, 0x5b, 0x0c, 0xbc, 0x30, 0xb9, 0xf7, 0x10, 0xcd, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd4, 0x5b, 0x48, 0x06, 0x52, 0x6f, 0xe1, 0xc6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xea, 0x2d, 0x44, 0x03, 0xa9, 0xb7, 0x10, 0x0f, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xf0, 0x7c, 0xc1, 0xb2, 0x0d, 0x9e, 0x2f, 0x58, 0x76, 0x38, 0xc5, 0x06, 0xd9, 0x06, 0x2f, 0x21, 0x2c, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x6f, 0x61, 0x31, 0x90, 0x7a, 0x0b, 0xfb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xf5, 0x16, 0xf2, 0x83, 0xd7, 0x37, 0x96, 0x0d, 0xbb, 0xc1, 0x52, 0x8c, 0x8b, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd4, 0x5b, 0xd8, 0x0c, 0xa4, 0xde, 0xc2, 0x6a, 0xd8, 0x85, 0xdb, 0x30, 0x2e, 0x07, 0x03, 0xdf, 0xf8, 0x60, 0xa4, 0x1d, 0x0f, 0xbb, 0x70, 0x1b, 0xac, 0x63, 0x06, 0x3b, 0x8c, 0xcb, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xea, 0x2d, 0xcc, 0x06, 0x52, 0x6f, 0x61, 0x38, 0xec, 0xc2, 0x6d, 0x18, 0x97, 0x83, 0x75, 0xcc, 0x60, 0x07, 0xcf, 0xc4, 0xe9, 0x19, 0x76, 0x83, 0x75, 0x68, 0x09, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xb7, 0xb0, 0x1c, 0x48, 0xbd, 0x85, 0xed, 0xb0, 0x0b, 0xb7, 0x61, 0x5c, 0x0e, 0xd6, 0xa4, 0x25, 0x1c, 0xbc, 0x81, 0xf8, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xbd, 0x85, 0xf1, 0x40, 0xea, 0x2d, 0xcc, 0x87, 0x5d, 0xb8, 0x0d, 0xe3, 0x72, 0x70, 0xd2, 0xdb, 0x3d, 0x78, 0x3e, 0xf5, 0xd1, 0xb0, 0x0b, 0xb7, 0x18, 0x78, 0x62, 0x61, 0xe3, 0x21, 0x9a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0xb7, 0x90, 0x0c, 0xe4, 0xde, 0xc2, 0x97, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xdc, 0x5b, 0x88, 0x06, 0x72, 0x6f, 0x21, 0x1e, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0x1d, 0xa5, 0x65, 0x1b, 0xbc, 0xa3, 0xb4, 0xec, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0x9e, 0x64, 0x5a, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xde, 0x42, 0x3e, 0x90, 0x7b, 0x0b, 0x83, 0x83, 0xa1, 0xf9, 0x3b, 0xec, 0x06, 0xcf, 0xfb, 0x48, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xbe, 0x85, 0x64, 0x20, 0xf9, 0x16, 0x8e, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xdf, 0x42, 0x34, 0x90, 0x7c, 0x0b, 0xf1, 0xc1, 0x5b, 0x4b, 0x92, 0x06, 0xd9, 0x06, 0xaf, 0x90, 0x2d, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x6f, 0x21, 0x1f, 0x48, 0xbe, 0x85, 0xc1, 0xc1, 0xd0, 0xfc, 0x1d, 0x76, 0xe1, 0x16, 0x0f, 0x96, 0xf7, 0x86, 0x1e, 0xa2, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x7d, 0x0b, 0xc9, 0x40, 0xf6, 0x2d, 0x1c, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xbe, 0x85, 0x68, 0x20, 0xfb, 0x16, 0xe2, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x1e, 0xbb, 0x5b, 0xb6, 0xc1, 0x63, 0x77, 0xcb, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0xe0, 0xd9, 0xbc, 0x65, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0xb7, 0xb0, 0x18, 0xc8, 0xbe, 0x85, 0xd1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x7d, 0x0b, 0xf9, 0xc1, 0x63, 0x8d, 0xcb, 0x0e, 0x5e, 0xb2, 0xd7, 0x33, 0xc8, 0x36, 0x78, 0x36, 0x6f, 0xd9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x7d, 0x0b, 0xbb, 0x81, 0xec, 0x5b, 0x98, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0xb7, 0xb0, 0x3a, 0x78, 0x48, 0x73, 0xd9, 0xc1, 0xe3, 0xac, 0xc9, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf4, 0x5b, 0x48, 0x06, 0xd2, 0x6f, 0xe1, 0xc3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xfa, 0x2d, 0x44, 0x03, 0xe9, 0xb7, 0x10, 0x0f, 0xbb, 0x70, 0x1b, 0xa2, 0x39, 0x06, 0x9e, 0x5c, 0x19, 0xbd, 0xc1, 0x2b, 0xad, 0xcb, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0xe0, 0x05, 0xd1, 0x65, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xfa, 0x2d, 0xe4, 0x03, 0xe9, 0xb7, 0x30, 0x38, 0x18, 0x9a, 0xbf, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xe6, 0x2d, 0x24, 0x03, 0x99, 0xb7, 0xf0, 0xe6, 0xe0, 0xb5, 0x24, 0x65, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x05, 0xc1, 0xe2, 0x06, 0x2f, 0x67, 0x0b, 0x6a, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xcf, 0xe2, 0x06, 0xf2, 0x68, 0xf1, 0xc3, 0x2e, 0xdc, 0x06, 0x8f, 0x98, 0x9e, 0x39, 0x44, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x7f, 0x16, 0x92, 0x81, 0xfc, 0x59, 0x38, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x3f, 0x0b, 0xd1, 0x40, 0xfe, 0x2c, 0xe4, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x3c, 0x62, 0x7a, 0x66, 0x83, 0x47, 0x4c, 0xcf, 0x1c, 0x4e, 0xb1, 0x41, 0xb6, 0xc1, 0xbb, 0xc9, 0xcb, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfc, 0x59, 0x98, 0x0c, 0xe4, 0xcf, 0xc2, 0x7a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x9f, 0x85, 0xc1, 0xc1, 0x5b, 0xdd, 0xcb, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfc, 0x59, 0xd8, 0x0c, 0xe4, 0xcf, 0xc2, 0xee, 0xe0, 0x8d, 0x00, 0x25, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0xb3, 0x30, 0x1c, 0xc8, 0x9f, 0x85, 0xf1, 0xc1, 0x12, 0xb3, 0x94, 0xe3, 0xd0, 0xa1, 0x83, 0xc6, 0xb0, 0x0b, 0xb7, 0x18, 0xf8, 0x6c, 0x6f, 0x67, 0xef, 0x21, 0x9a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0xb4, 0x90, 0x0c, 0x24, 0xd0, 0xc2, 0x87, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x04, 0x5a, 0x88, 0x06, 0x12, 0x68, 0x21, 0x1f, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0x1d, 0xfb, 0x65, 0x1b, 0xbc, 0x63, 0xbf, 0xec, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0x9e, 0xc6, 0x5f, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xd0, 0xc2, 0x60, 0x20, 0x81, 0x16, 0x16, 0x07, 0x43, 0xf3, 0x77, 0xd8, 0x0d, 0x5e, 0xae, 0x16, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x41, 0x0b, 0xc9, 0x40, 0x06, 0x2d, 0x3c, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xa0, 0x85, 0x68, 0x20, 0x83, 0x16, 0xf2, 0x83, 0x17, 0x61, 0x91, 0x0d, 0xb2, 0x0d, 0x9e, 0x83, 0x60, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xd0, 0xc2, 0x60, 0x20, 0x83, 0x16, 0x16, 0x07, 0x43, 0xf3, 0x77, 0xd8, 0x0d, 0x1e, 0x3d, 0x16, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x42, 0x0b, 0xc9, 0x40, 0x0a, 0x2d, 0x7c, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xa1, 0x85, 0x68, 0x20, 0x85, 0x16, 0xf2, 0x83, 0xe7, 0x8e, 0x91, 0x0d, 0xb2, 0x0d, 0x9e, 0x27, 0x61, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xd0, 0xc2, 0x60, 0x20, 0x85, 0x16, 0x16, 0x07, 0x43, 0xf3, 0x77, 0xd8, 0x0d, 0xde, 0xbb, 0x83, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x43, 0x0b, 0xc9, 0x40, 0x0e, 0x2d, 0xdc, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xa1, 0x85, 0x68, 0x20, 0x87, 0x16, 0xf2, 0x83, 0xe7, 0x06, 0x61, 0x0c, 0xb2, 0x0d, 0x9e, 0xcb, 0x61, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xd0, 0xc2, 0x64, 0x20, 0x87, 0x16, 0x56, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x0e, 0x2d, 0x0c, 0x0e, 0x9e, 0x4f, 0x62, 0x76, 0xf0, 0xee, 0xca, 0x9e, 0x61, 0x37, 0x78, 0x39, 0x5c, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x12, 0x2d, 0x24, 0x03, 0x49, 0xb4, 0x70, 0x65, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x89, 0x16, 0xa2, 0x81, 0x24, 0x5a, 0xc8, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x78, 0x45, 0x5c, 0xd0, 0x06, 0xaf, 0x88, 0x0b, 0x3a, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x87, 0xa6, 0x98, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0xb4, 0xb0, 0x18, 0x48, 0xa2, 0x85, 0xd5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x44, 0x0b, 0x83, 0x83, 0xc7, 0xcd, 0x98, 0x0d, 0x82, 0x0d, 0x1e, 0x3b, 0x44, 0x76, 0xe8, 0xa0, 0x31, 0xec, 0xc2, 0x2d, 0x06, 0x7e, 0x5b, 0x59, 0x5b, 0x79, 0x88, 0xe6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x16, 0x2d, 0x24, 0x03, 0x59, 0xb4, 0x70, 0x65, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x8b, 0x16, 0xa2, 0x81, 0x2c, 0x5a, 0xc8, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x78, 0x05, 0x8e, 0xd9, 0x06, 0xaf, 0xc0, 0x31, 0x3b, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x87, 0xe5, 0x98, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0xb4, 0x30, 0x19, 0xc8, 0xa2, 0x85, 0xf5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x45, 0x0b, 0x83, 0x83, 0xc7, 0x0c, 0x99, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0xb4, 0xb0, 0x19, 0xc8, 0xa2, 0x85, 0xdd, 0xc1, 0x1b, 0x01, 0x4a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x68, 0x61, 0x38, 0x90, 0x45, 0x0b, 0xe3, 0x41, 0x32, 0x90, 0x5f, 0x3b, 0x1e, 0x1f, 0x87, 0x0e, 0x1d, 0x34, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x34, 0x5a, 0x48, 0x06, 0xd2, 0x68, 0xe1, 0xcb, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x1a, 0x2d, 0x44, 0x03, 0x69, 0xb4, 0x90, 0x0f, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xf0, 0x66, 0xb6, 0xa0, 0x0d, 0xde, 0xcc, 0x16, 0x74, 0x38, 0xc5, 0x06, 0xd9, 0x06, 0x2f, 0x7e, 0x32, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x68, 0x61, 0x30, 0x90, 0x46, 0x0b, 0x8b, 0x83, 0xa1, 0xf9, 0x7b, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x10, 0x2c, 0x0e, 0x78, 0x79, 0x6f, 0xf7, 0xe1, 0x14, 0x5b, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0xb8, 0xb8, 0x81, 0x9c, 0x5c, 0xfc, 0xb0, 0x0b, 0xbb, 0xc1, 0x93, 0x05, 0xcb, 0x36, 0xc4, 0x70, 0xd8, 0x0d, 0xde, 0x4e, 0x5a, 0xb6, 0x21, 0x86, 0xc3, 0x6e, 0xf0, 0xc0, 0xdd, 0xb2, 0x0d, 0x31, 0x1c, 0x76, 0xe1, 0x36, 0x78, 0xa5, 0x75, 0xd9, 0x21, 0x9a, 0x1b, 0x62, 0x38, 0xec, 0x06, 0xcf, 0xfb, 0x48, 0xda, 0x10, 0xc3, 0x61, 0x17, 0x6e, 0x83, 0x87, 0x1b, 0xd5, 0x1c, 0xa2, 0xb9, 0x21, 0x86, 0xc3, 0x2d, 0x1e, 0x2c, 0xc0, 0x3d, 0x3f, 0x44, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x1d, 0x17, 0x92, 0x81, 0x74, 0x5c, 0x78, 0x32, 0x08, 0x16, 0x7e, 0x43, 0x72, 0xe9, 0x60, 0x2c, 0x43, 0x1d, 0x1a, 0xb5, 0x0c, 0xbb, 0x70, 0x8b, 0x81, 0x37, 0x26, 0x57, 0x1f, 0xa2, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x8f, 0x0b, 0xc9, 0x40, 0x3e, 0x2e, 0x1c, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xc7, 0x85, 0x68, 0x20, 0x1f, 0x17, 0xe2, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0xde, 0xc4, 0x66, 0xb6, 0xc1, 0x9b, 0xd8, 0xcc, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0xe0, 0x79, 0x6d, 0x66, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0xb8, 0xb0, 0x18, 0xc8, 0xc7, 0x85, 0xd5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x8f, 0x0b, 0xf9, 0xc1, 0xa3, 0xee, 0xcc, 0x0e, 0x9e, 0xc2, 0x30, 0x34, 0xc8, 0x36, 0x78, 0x5e, 0x9b, 0xd9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x8f, 0x0b, 0xc3, 0x81, 0x7c, 0x5c, 0xe8, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x71, 0x61, 0x76, 0xf0, 0xe0, 0x3e, 0xb3, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x1f, 0x17, 0x96, 0x03, 0xf9, 0xb8, 0xb0, 0x3e, 0x78, 0x23, 0x40, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x3e, 0x2e, 0xcc, 0x07, 0xf2, 0x71, 0xa1, 0x62, 0x90, 0x0c, 0x08, 0xfe, 0xbe, 0x83, 0xf1, 0xae, 0x73, 0x1c, 0x3a, 0xb4, 0x00, 0x1b, 0x76, 0xe1, 0x16, 0x0f, 0xda, 0x67, 0x31, 0x3c, 0x44, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x21, 0x17, 0x92, 0x81, 0x84, 0x5c, 0x38, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x90, 0x0b, 0xd1, 0x40, 0x42, 0x2e, 0xc4, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x3c, 0x5a, 0xd1, 0x6c, 0x83, 0x47, 0x2b, 0x9a, 0x1d, 0x4e, 0xb1, 0x41, 0xb6, 0xc1, 0xfb, 0x17, 0xcd, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x84, 0x5c, 0xc8, 0x07, 0x12, 0x72, 0x61, 0x70, 0x30, 0x34, 0x7f, 0x87, 0x5d, 0xb8, 0xc5, 0xc0, 0x93, 0x2b, 0xd3, 0x0f, 0xd1, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xc8, 0x85, 0x64, 0x20, 0x23, 0x17, 0xfe, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xe4, 0x42, 0x34, 0x90, 0x91, 0x0b, 0xf1, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x4f, 0xb9, 0x34, 0xdb, 0xe0, 0x29, 0x97, 0x66, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0xf0, 0x2a, 0x4c, 0xb3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x8c, 0x5c, 0x58, 0x0c, 0x64, 0xe4, 0xc2, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xc8, 0x85, 0xfc, 0xe0, 0x2d, 0xa2, 0x66, 0x07, 0x2f, 0xd9, 0xeb, 0x19, 0x64, 0x1b, 0xbc, 0x0a, 0xd3, 0x6c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xc8, 0x85, 0xdd, 0x40, 0x46, 0x2e, 0x4c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x8c, 0x5c, 0x58, 0x1d, 0xbc, 0x13, 0xd5, 0xec, 0xe0, 0x71, 0xd6, 0x64, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4a, 0x2e, 0x24, 0x03, 0x29, 0xb9, 0xf0, 0x65, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x25, 0x17, 0xa2, 0x81, 0x94, 0x5c, 0x88, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x1c, 0x03, 0x2f, 0xef, 0xed, 0xde, 0xe0, 0x11, 0xb2, 0x66, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0xf0, 0x40, 0x56, 0xb3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x25, 0x17, 0x16, 0x03, 0x29, 0xb9, 0x30, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x72, 0x21, 0x3f, 0x78, 0x99, 0xad, 0xd9, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0xe1, 0x37, 0x78, 0x5e, 0x2f, 0xd3, 0xc1, 0x4b, 0x6a, 0x3c, 0x0e, 0x1d, 0x34, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x0b, 0x82, 0xc5, 0x83, 0x06, 0xd6, 0x02, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xaa, 0x2d, 0x6e, 0x20, 0xdb, 0x16, 0x3f, 0xec, 0x06, 0x8f, 0xc7, 0xda, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xb5, 0x85, 0x64, 0x20, 0xd5, 0x16, 0x2e, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xda, 0x42, 0x34, 0x90, 0x6a, 0x0b, 0xf9, 0xc1, 0x23, 0xbe, 0x36, 0x06, 0xd9, 0x06, 0xaf, 0x09, 0x36, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xb5, 0x85, 0xc9, 0x40, 0xaa, 0x2d, 0xcc, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x54, 0x5b, 0x18, 0x1c, 0xbc, 0x2f, 0xd9, 0xec, 0xe0, 0x29, 0x0c, 0x43, 0x83, 0x6c, 0x83, 0xd7, 0x04, 0x9b, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xb6, 0xb0, 0x1c, 0x48, 0xb5, 0x85, 0xf5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x6a, 0x0b, 0xbb, 0x83, 0xc7, 0x3f, 0x9b, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x3a, 0x78, 0x4b, 0x0d, 0xd1, 0xa1, 0x05, 0xd8, 0xb0, 0x1b, 0xbc, 0x19, 0x2f, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xd7, 0x16, 0x92, 0x81, 0x5c, 0x5b, 0x78, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x6b, 0x0b, 0xd1, 0x40, 0xae, 0x2d, 0xe4, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0xbc, 0x1f, 0x2f, 0x68, 0x83, 0xf7, 0xe3, 0x05, 0x1d, 0x4e, 0xb1, 0x41, 0xb6, 0xc1, 0x7b, 0xab, 0xcd, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5c, 0x5b, 0x98, 0x0c, 0xe4, 0xda, 0xc2, 0x7a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xb5, 0x85, 0xc1, 0xc1, 0x1b, 0xbf, 0xcd, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5c, 0x5b, 0xd8, 0x0c, 0xe4, 0xda, 0xc2, 0xee, 0xe0, 0x8d, 0x00, 0x25, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0xb6, 0x30, 0x1c, 0xc8, 0xb5, 0x85, 0xf1, 0xc1, 0x73, 0x11, 0xcd, 0x8e, 0x43, 0x87, 0x0e, 0x1a, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xb2, 0x2d, 0x24, 0x03, 0xc9, 0xb6, 0xf0, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xd9, 0x16, 0xa2, 0x81, 0x64, 0x5b, 0xc8, 0x0f, 0xda, 0xea, 0xb7, 0x1f, 0x64, 0x1b, 0x3c, 0x7c, 0xdd, 0x6c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xb6, 0x85, 0xc9, 0x40, 0xb2, 0x2d, 0xcc, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x64, 0x5b, 0x18, 0x1c, 0xbc, 0x83, 0xde, 0x6c, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x19, 0x10, 0xf8, 0x7d, 0x07, 0xe3, 0x5d, 0xe7, 0xd0, 0x41, 0xe3, 0xd0, 0xfc, 0xe5, 0x78, 0x3c, 0x08, 0x36, 0x18, 0xf9, 0x0f, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x51, 0x17, 0x37, 0x90, 0xa8, 0x0b, 0x4d, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x9e, 0x2e, 0xee, 0xe0, 0x15, 0xfd, 0x66, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0xba, 0x90, 0x0d, 0x24, 0xea, 0x42, 0x3a, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xea, 0x62, 0x0f, 0xde, 0x22, 0x70, 0x76, 0xf0, 0x18, 0xd7, 0x9e, 0x41, 0xb6, 0xc1, 0xbb, 0xf6, 0xcd, 0x06, 0xd9, 0x06, 0x0f, 0xef, 0x37, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xd4, 0x85, 0xcd, 0x40, 0xa2, 0x2e, 0xcc, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x44, 0x5d, 0x88, 0x0f, 0xde, 0x95, 0x70, 0x76, 0xf0, 0x92, 0xbd, 0x9e, 0x41, 0xb6, 0xc1, 0xbb, 0xf6, 0xcd, 0x06, 0xd9, 0x06, 0x0f, 0xef, 0x37, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x75, 0x61, 0x3d, 0x90, 0xa8, 0x0b, 0x45, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xa2, 0x2e, 0xec, 0x0e, 0x5e, 0x09, 0x71, 0x36, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xea, 0xc2, 0x7c, 0x20, 0x51, 0x17, 0x2a, 0x0e, 0xde, 0x08, 0x50, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xa8, 0x0b, 0x1d, 0x03, 0x89, 0xba, 0xd0, 0x73, 0xf0, 0x10, 0x27, 0xb3, 0xe3, 0xd0, 0xa1, 0x05, 0xd8, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x41, 0xb0, 0x38, 0x07, 0x6f, 0xdc, 0x32, 0x5b, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0xba, 0xb8, 0x81, 0x2c, 0x5d, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x8e, 0x2e, 0xa4, 0x03, 0x39, 0xba, 0xb0, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x74, 0x21, 0x19, 0xc8, 0xd1, 0x85, 0x2f, 0x83, 0x60, 0x83, 0x87, 0xed, 0xf5, 0x1c, 0xac, 0x4b, 0x8c, 0x1a, 0x64, 0x1b, 0x3c, 0xdd, 0xe3, 0x6c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xd2, 0x85, 0x64, 0x20, 0x49, 0x17, 0x2e, 0x0c, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x24, 0x03, 0xe7, 0xda, 0xf1, 0xf8, 0xd0, 0x41, 0xe3, 0xd0, 0xfc, 0xe5, 0x78, 0x3c, 0x08, 0x16, 0x0f, 0x5e, 0xd2, 0x1b, 0xb2, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x6c, 0x71, 0x03, 0x79, 0xb6, 0xf8, 0x61, 0x37, 0x78, 0x99, 0x61, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x82, 0x2d, 0x24, 0x03, 0x09, 0xb6, 0xf0, 0x65, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xc1, 0x16, 0xa2, 0x81, 0x04, 0x5b, 0xc8, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x78, 0xa5, 0x61, 0xd0, 0x06, 0xaf, 0x34, 0x0c, 0x3a, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x87, 0xc8, 0x9c, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0xb6, 0x30, 0x19, 0x48, 0xb0, 0x85, 0xd9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x60, 0x0b, 0x83, 0x83, 0xc7, 0xef, 0x9c, 0x0d, 0x82, 0x0d, 0x1e, 0xa9, 0x66, 0x76, 0xe8, 0xa0, 0x31, 0xec, 0x06, 0xef, 0x94, 0x0b, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xb0, 0x85, 0x64, 0x20, 0xc3, 0x16, 0xce, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xd8, 0x42, 0x34, 0x90, 0x61, 0x0b, 0xf9, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x6f, 0x96, 0x0b, 0xda, 0xe0, 0xcd, 0x72, 0x41, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0xf0, 0x9a, 0xa0, 0xb3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xc3, 0x16, 0x26, 0x03, 0x19, 0xb6, 0x30, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x6c, 0x61, 0x70, 0xf0, 0x82, 0xa5, 0xb3, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x07, 0xcb, 0x34, 0x46, 0x0e, 0x1d, 0x34, 0x86, 0xdd, 0xe0, 0x55, 0x74, 0x41, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x29, 0xb6, 0x90, 0x0c, 0xa4, 0xd8, 0xc2, 0x99, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x14, 0x5b, 0x88, 0x06, 0x52, 0x6c, 0x21, 0x1f, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0x85, 0x74, 0x41, 0x1b, 0xbc, 0x90, 0x2e, 0xe8, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0x9e, 0x0c, 0x75, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xd8, 0xc2, 0x60, 0x20, 0xc5, 0x16, 0x16, 0x07, 0x43, 0xf3, 0x77, 0xd8, 0x0d, 0x1e, 0x34, 0x18, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x63, 0x0b, 0xc9, 0x40, 0x8e, 0x2d, 0xbc, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xb1, 0x85, 0x68, 0x20, 0xc7, 0x16, 0xf2, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x1e, 0x37, 0x18, 0xb4, 0xc1, 0xe3, 0x06, 0x83, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0xe0, 0x99, 0x5c, 0x67, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x8e, 0x2d, 0x0c, 0x06, 0x72, 0x6c, 0x61, 0x71, 0x30, 0x34, 0x7f, 0x87, 0xdd, 0xe0, 0x85, 0x60, 0x41, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0xb6, 0x90, 0x0c, 0x24, 0xd9, 0xc2, 0x95, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x24, 0x5b, 0x88, 0x06, 0x92, 0x6c, 0x21, 0x1f, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0xb5, 0x60, 0x41, 0x07, 0xef, 0xa7, 0xbd, 0x1a, 0x64, 0x1b, 0x3c, 0x0d, 0xed, 0x6c, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xc9, 0x16, 0x26, 0x03, 0x49, 0xb6, 0xb0, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x6c, 0x61, 0x70, 0xf0, 0xf2, 0xb8, 0xb3, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x07, 0x4f, 0xea, 0x65, 0x3a, 0x34, 0x05, 0x1a, 0x64, 0x1b, 0x3c, 0x0d, 0xed, 0x6c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xb2, 0x85, 0xf9, 0x40, 0x92, 0x2d, 0xd4, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0xb6, 0x30, 0x3e, 0x78, 0x5f, 0xde, 0xd9, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x64, 0x0b, 0xfb, 0x81, 0x24, 0x5b, 0xe8, 0x38, 0x78, 0x23, 0x40, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x92, 0x2d, 0x94, 0x0c, 0x24, 0xd9, 0x42, 0xdb, 0xc1, 0x83, 0x74, 0xcd, 0x8e, 0x43, 0x87, 0x16, 0x60, 0xc3, 0x6e, 0xf0, 0x0c, 0xb1, 0xa0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x2c, 0x5b, 0x48, 0x06, 0xb2, 0x6c, 0xe1, 0xca, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x96, 0x2d, 0x44, 0x03, 0x59, 0xb6, 0x90, 0x0f, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xf0, 0x24, 0xb1, 0xa0, 0x83, 0x87, 0x55, 0x5f, 0x0d, 0xb2, 0x0d, 0x5e, 0x6a, 0x78, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xd9, 0xc2, 0x60, 0x20, 0xcb, 0x16, 0x16, 0x07, 0x43, 0xf3, 0x77, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xb3, 0x85, 0x64, 0x20, 0xcd, 0x16, 0x0e, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xd9, 0x42, 0x34, 0x90, 0x66, 0x0b, 0xf9, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x4f, 0x29, 0x0c, 0xda, 0xe0, 0x29, 0x85, 0x41, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0xf0, 0xaa, 0xc8, 0xb3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xcd, 0x16, 0x06, 0x03, 0x69, 0xb6, 0xb0, 0x38, 0x18, 0x9a, 0xbf, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x05, 0xc1, 0x06, 0xef, 0xb5, 0xf1, 0x59, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xb4, 0xb8, 0x81, 0xec, 0x5a, 0xfc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x49, 0x8b, 0x3b, 0x78, 0xf8, 0xe7, 0xd9, 0xb0, 0x1b, 0xbc, 0x9b, 0xc7, 0x67, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x4a, 0x0b, 0x93, 0x81, 0x54, 0x5a, 0xd8, 0x1e, 0x3c, 0x1d, 0xc8, 0xe7, 0xe0, 0xf5, 0x42, 0x3e, 0xc3, 0x6e, 0xf0, 0xa4, 0xbe, 0xa0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5c, 0x5a, 0x48, 0x06, 0x72, 0x69, 0xe1, 0xcd, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x2e, 0x2d, 0x44, 0x03, 0xb9, 0xb4, 0x90, 0x1f, 0x3c, 0xcc, 0x8d, 0x6b, 0x90, 0x6d, 0xf0, 0x42, 0xd4, 0xb3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5c, 0x5a, 0x18, 0x0d, 0xe4, 0xd2, 0xc2, 0x6a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xa5, 0x85, 0xc1, 0xc1, 0x9b, 0x61, 0xcf, 0x0e, 0x86, 0x17, 0xef, 0x20, 0xdb, 0xe0, 0x85, 0xa8, 0x67, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x2e, 0x2d, 0x0c, 0x07, 0x72, 0x69, 0x61, 0x39, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xd2, 0xc2, 0xec, 0xe0, 0x29, 0xb7, 0x67, 0x07, 0x41, 0xe9, 0x3d, 0xec, 0x06, 0x2f, 0xf7, 0x0b, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xa6, 0x85, 0x64, 0x20, 0x99, 0x16, 0xee, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xd3, 0x42, 0x34, 0x90, 0x4c, 0x0b, 0xf9, 0xc1, 0xab, 0x6e, 0xc8, 0x06, 0xd9, 0x06, 0xaf, 0xdd, 0x3d, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x69, 0x61, 0x32, 0x90, 0x4c, 0x0b, 0xab, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x99, 0x16, 0x06, 0x07, 0xaf, 0x1f, 0x3e, 0x3b, 0x78, 0x77, 0x65, 0xcf, 0xb0, 0x1b, 0xbc, 0xab, 0x2c, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x9b, 0x16, 0x92, 0x81, 0x6c, 0x5a, 0xb8, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x4d, 0x0b, 0xd1, 0x40, 0x36, 0x2d, 0xe4, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0xbc, 0xb1, 0x2c, 0x68, 0x83, 0x37, 0x96, 0x05, 0x1d, 0x4e, 0xb1, 0x41, 0xb6, 0xc1, 0x3b, 0x91, 0xcf, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x6c, 0x5a, 0x98, 0x0c, 0x64, 0xd3, 0xc2, 0x6c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xa6, 0x85, 0xc1, 0xc1, 0xdb, 0xa4, 0xcf, 0x0e, 0x96, 0xd2, 0x46, 0x0d, 0xbb, 0xc1, 0x1b, 0xec, 0x82, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x69, 0x21, 0x19, 0x48, 0xa7, 0x85, 0x2b, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0xb4, 0x10, 0x0d, 0xa4, 0xd3, 0x42, 0x7e, 0xf0, 0x3a, 0x26, 0xb2, 0x41, 0xb6, 0xc1, 0x1b, 0xae, 0xcf, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x74, 0x5a, 0x18, 0x0c, 0xa4, 0xd3, 0xc2, 0xe2, 0x60, 0x68, 0xfe, 0x0e, 0xbb, 0xc1, 0xc3, 0xee, 0x81, 0x16, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0xb4, 0x30, 0x19, 0xc8, 0xa7, 0x85, 0xed, 0xc1, 0xd3, 0x81, 0x7c, 0x0e, 0x9e, 0xce, 0x07, 0x35, 0xec, 0x06, 0x2f, 0x87, 0x0b, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xa8, 0x85, 0x64, 0x20, 0xa1, 0x16, 0x0e, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xd4, 0x42, 0x34, 0x90, 0x50, 0x0b, 0xf9, 0xc1, 0x13, 0x5d, 0xcc, 0x06, 0xd9, 0x06, 0xaf, 0x2f, 0x3f, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x6a, 0x61, 0x32, 0x90, 0x50, 0x0b, 0xd3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xa1, 0x16, 0x06, 0x07, 0xaf, 0x71, 0x3f, 0x1b, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x6a, 0x61, 0x33, 0x90, 0x50, 0x0b, 0xbb, 0x83, 0xf7, 0x23, 0x94, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xd4, 0xc2, 0x70, 0x20, 0xa1, 0x16, 0x96, 0x87, 0xfe, 0x54, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xd0, 0xa1, 0x83, 0xc6, 0xb0, 0x1b, 0x3c, 0xec, 0x2d, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xa3, 0x16, 0x92, 0x81, 0x8c, 0x5a, 0xb8, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x51, 0x0b, 0xd1, 0x40, 0x46, 0x2d, 0xe4, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0xbc, 0xfd, 0xab, 0x64, 0x83, 0xb7, 0x7f, 0x95, 0x1c, 0x4e, 0xb1, 0x41, 0xb6, 0xc1, 0x3b, 0xf9, 0xcf, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x8c, 0x5a, 0x18, 0x0c, 0x64, 0xd4, 0xc2, 0xe2, 0x60, 0x68, 0xfe, 0x0e, 0xbb, 0xc1, 0x3b, 0xd9, 0x82, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x6a, 0x21, 0x19, 0x48, 0xa9, 0x85, 0x2f, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x29, 0xb5, 0x10, 0x0d, 0xa4, 0xd4, 0x42, 0x7e, 0xf0, 0x56, 0x2a, 0xb3, 0x41, 0xb6, 0xc1, 0xdb, 0x10, 0xd0, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x94, 0x5a, 0x98, 0x0c, 0xa4, 0xd4, 0xc2, 0x7a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xa9, 0x85, 0xc1, 0xc1, 0x5b, 0x21, 0xd0, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x94, 0x5a, 0xd8, 0x0c, 0xa4, 0xd4, 0xc2, 0xee, 0xe0, 0x8d, 0x00, 0x25, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x29, 0xb5, 0x30, 0x1c, 0x48, 0xa9, 0x85, 0xf1, 0xc1, 0x43, 0x9c, 0xcc, 0x8e, 0x43, 0x87, 0x0e, 0x1a, 0xc3, 0x6e, 0xf0, 0x72, 0xb5, 0xa0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9c, 0x5a, 0x48, 0x06, 0x72, 0x6a, 0xe1, 0xc9, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4e, 0x2d, 0x44, 0x03, 0x39, 0xb5, 0x90, 0x1f, 0xbc, 0x08, 0x8b, 0x6c, 0x90, 0x6d, 0xf0, 0xe2, 0x0e, 0xb4, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xa7, 0x16, 0x06, 0x03, 0x39, 0xb5, 0xb0, 0x38, 0x18, 0x9a, 0xbf, 0xc3, 0x6e, 0xf0, 0xe8, 0xb1, 0xa0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa4, 0x5a, 0x48, 0x06, 0x92, 0x6a, 0xe1, 0xcb, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x52, 0x2d, 0x44, 0x03, 0x49, 0xb5, 0x90, 0x1f, 0x3c, 0x77, 0x8c, 0x6c, 0x90, 0x6d, 0xf0, 0x02, 0x14, 0xb4, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xa9, 0x16, 0x06, 0x03, 0x49, 0xb5, 0xb0, 0x38, 0x18, 0x9a, 0xbf, 0xc3, 0x6e, 0xf0, 0x96, 0xb4, 0xa0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xac, 0x5a, 0x48, 0x06, 0xb2, 0x6a, 0xe1, 0xc9, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x56, 0x2d, 0x44, 0x03, 0x59, 0xb5, 0x90, 0x0f, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xf0, 0xae, 0xb4, 0xa0, 0x0d, 0xde, 0x95, 0x16, 0x74, 0x38, 0xc5, 0x06, 0xd9, 0x06, 0x2f, 0x92, 0x41, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x6a, 0x61, 0x31, 0x90, 0x55, 0x0b, 0xab, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xab, 0x16, 0x06, 0x07, 0xaf, 0xe0, 0x41, 0x3b, 0x78, 0xd7, 0xe1, 0xd2, 0xb0, 0x1b, 0x3c, 0x72, 0x2f, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xad, 0x16, 0x92, 0x81, 0xb4, 0x5a, 0x78, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x56, 0x0b, 0xd1, 0x40, 0x5a, 0x2d, 0xe4, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x3c, 0x78, 0x2f, 0x68, 0x83, 0x07, 0xef, 0x05, 0x1d, 0x4e, 0xb1, 0x41, 0xb6, 0xc1, 0x7b, 0x81, 0xd0, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x6a, 0x61, 0x34, 0x90, 0x56, 0x0b, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xad, 0x16, 0x06, 0x07, 0xaf, 0x54, 0x42, 0x3b, 0x78, 0x0a, 0xc3, 0xd0, 0x20, 0xdb, 0xe0, 0xbd, 0x40, 0x68, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x5a, 0x2d, 0xcc, 0x07, 0xd2, 0x6a, 0xa1, 0x6a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xab, 0x85, 0xe5, 0xc1, 0x13, 0xa2, 0xd0, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x92, 0x81, 0xb8, 0x1d, 0x8f, 0x0f, 0x2d, 0xc0, 0x86, 0xdd, 0xe0, 0xbd, 0x3b, 0x18, 0x0b, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbc, 0x5a, 0x98, 0x0c, 0xe4, 0xd5, 0xc2, 0xf6, 0xe0, 0xe9, 0x40, 0x3e, 0x07, 0x0f, 0x47, 0xf2, 0x19, 0x76, 0x83, 0x87, 0x2b, 0xf9, 0x2c, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x6b, 0x61, 0x32, 0x90, 0x58, 0x0b, 0xdb, 0x83, 0xa7, 0x03, 0xf9, 0x1c, 0xbc, 0xeb, 0xc9, 0x67, 0xd8, 0x0d, 0x9e, 0xb4, 0x87, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x59, 0x0b, 0xc9, 0x40, 0x66, 0x2d, 0x3c, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xac, 0x85, 0x68, 0x20, 0xb3, 0x16, 0xf2, 0x83, 0xa7, 0x05, 0x62, 0x0c, 0xb2, 0x0d, 0x9e, 0x05, 0x86, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xd6, 0xc2, 0x60, 0x20, 0xb3, 0x16, 0x16, 0x07, 0x43, 0xf3, 0x77, 0xd8, 0x0d, 0x9e, 0x18, 0x18, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x5a, 0x0b, 0xc9, 0x40, 0x6a, 0x2d, 0x1c, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xad, 0x85, 0x68, 0x20, 0xb5, 0x16, 0xf2, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x9e, 0x1b, 0x18, 0xb4, 0xc1, 0x73, 0x03, 0x83, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0xe0, 0x99, 0x6a, 0x68, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xb5, 0x30, 0x1a, 0x48, 0xad, 0x85, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x5a, 0x0b, 0x83, 0x83, 0xc7, 0xd1, 0xa1, 0x1d, 0x3c, 0xb6, 0x20, 0x6a, 0x90, 0x6d, 0xf0, 0x4c, 0x35, 0xb4, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xb5, 0x16, 0xf6, 0x03, 0xa9, 0xb5, 0xd0, 0x39, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xd6, 0xc2, 0xf2, 0xe0, 0xe5, 0x7a, 0x68, 0xc3, 0x2e, 0xdc, 0x62, 0xe0, 0xa3, 0xd5, 0xcd, 0xa1, 0x07, 0x41, 0xe9, 0xbd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x5a, 0x0b, 0x0d, 0x03, 0xa9, 0xb5, 0x50, 0x33, 0xec, 0xc2, 0x6d, 0x10, 0x94, 0xde, 0x07, 0x2f, 0xf3, 0x43, 0xdb, 0xe0, 0x65, 0x7e, 0x68, 0x87, 0x53, 0x6c, 0xd8, 0x85, 0xdb, 0xe0, 0x71, 0x40, 0x1d, 0x07, 0x41, 0xe9, 0xbd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x5a, 0x0b, 0x3d, 0x03, 0xa9, 0xb5, 0x50, 0x36, 0xec, 0xc2, 0x6d, 0x10, 0x94, 0xde, 0x07, 0x8f, 0x03, 0xea, 0x38, 0x78, 0x76, 0x52, 0xc7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x5a, 0x0b, 0x6d, 0x03, 0xa9, 0xb5, 0x50, 0x39, 0xec, 0xc2, 0x6d, 0x10, 0x94, 0xde, 0x63, 0xe0, 0xb3, 0xbd, 0xd5, 0x91, 0x1b, 0xbc, 0xb8, 0x11, 0xed, 0x70, 0x8a, 0x0d, 0xbb, 0xb0, 0x1b, 0xbc, 0x10, 0x2c, 0x68, 0x43, 0x0c, 0x87, 0xdd, 0xe0, 0x19, 0x62, 0x41, 0x1b, 0x62, 0x38, 0xec, 0x06, 0xef, 0x94, 0x0b, 0xda, 0x10, 0xc3, 0x61, 0x37, 0x78, 0x15, 0x5d, 0xd0, 0xc1, 0x83, 0x05, 0x83, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x6b, 0x21, 0x19, 0xc8, 0xad, 0x85, 0x43, 0x83, 0x60, 0x83, 0x97, 0x51, 0xa1, 0x1d, 0x1a, 0xb5, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xb5, 0x90, 0x0c, 0x24, 0xd7, 0xc2, 0x95, 0x83, 0xd7, 0x0d, 0x91, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x07, 0xc1, 0xe2, 0xc1, 0x0a, 0xf1, 0xf3, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x73, 0x8b, 0x1b, 0xc8, 0xbb, 0xc5, 0x0f, 0xbb, 0xb0, 0x0b, 0xbb, 0xa1, 0xe3, 0xc8, 0xc2, 0x6e, 0xf0, 0xc0, 0xdd, 0xb2, 0x83, 0x95, 0xcf, 0x50, 0x87, 0xa3, 0x7d, 0x43, 0x0c, 0x87, 0xdd, 0xd0, 0x35, 0x73, 0x43, 0x0c, 0x87, 0x5d, 0xd8, 0x0d, 0x1d, 0x47, 0x16, 0x76, 0x83, 0x07, 0x8b, 0x99, 0x1d, 0x2c, 0xcf, 0xef, 0x3a, 0x1c, 0xed, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x6e, 0xe8, 0x38, 0xb2, 0xb0, 0x1b, 0xbc, 0x9d, 0xb4, 0xec, 0x60, 0x79, 0x7e, 0xd7, 0xe1, 0x68, 0xdf, 0x10, 0xc3, 0x61, 0x17, 0x76, 0x43, 0xc7, 0x91, 0x85, 0xdd, 0xe0, 0xc9, 0x82, 0x65, 0x0b, 0xbb, 0xc1, 0x52, 0x8c, 0x8b, 0x0d, 0x31, 0x1c, 0x76, 0x83, 0x75, 0x68, 0x09, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x6d, 0x70, 0xd2, 0xdb, 0x3d, 0x8c, 0xcb, 0x86, 0x18, 0x1e, 0xbc, 0xc3, 0xb2, 0xec, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0x0d, 0x31, 0x1c, 0x76, 0x43, 0xc7, 0x91, 0x85, 0xdd, 0xe0, 0x79, 0x1f, 0x49, 0x07, 0xcb, 0xf3, 0xbb, 0x0e, 0x47, 0xfb, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xce, 0x2d, 0x24, 0x03, 0x39, 0xb7, 0xf0, 0x64, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x19, 0x18, 0xb5, 0xe3, 0xf1, 0xa1, 0x51, 0xcb, 0xb0, 0x0b, 0xbb, 0xa1, 0xe3, 0xc8, 0xc2, 0x6e, 0xf0, 0xa8, 0x32, 0xb3, 0x85, 0xdd, 0x60, 0xf4, 0x62, 0x2d, 0xec, 0xc2, 0x2e, 0xdc, 0xe2, 0xc1, 0x60, 0xea, 0x38, 0x34, 0x12, 0xdc, 0x10, 0xc3, 0x61, 0x17, 0x6e, 0xf1, 0xa0, 0x7d, 0x11, 0xaa, 0x43, 0x23, 0xc1, 0x0d, 0x31, 0x1c, 0x6e, 0x31, 0xf0, 0xc6, 0xe8, 0xd8, 0x43, 0x23, 0xc1, 0x85, 0x5d, 0xd8, 0x0d, 0x12, 0xbb, 0x7e, 0x16, 0x76, 0xe1, 0x36, 0x78, 0xec, 0x6e, 0xd9, 0xa1, 0x93, 0xda, 0xc2, 0x6e, 0x30, 0x20, 0x7b, 0x17, 0x76, 0x83, 0x22, 0x6e, 0x70, 0x61, 0x37, 0x78, 0x20, 0x3f, 0xcd, 0x61, 0x7d, 0xf3, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x37, 0xc4, 0x70, 0xd8, 0x0d, 0x12, 0xb8, 0x7e, 0x36, 0xc4, 0x70, 0xd8, 0x85, 0xdd, 0x20, 0xb1, 0xeb, 0x67, 0x61, 0x17, 0x6e, 0x83, 0x57, 0x5a, 0x97, 0x1d, 0x3a, 0xa9, 0x1d, 0x3c, 0xe4, 0xee, 0xe1, 0x70, 0xb4, 0x6f, 0x88, 0xe1, 0xb0, 0x0b, 0xbb, 0x41, 0x62, 0xd7, 0xcf, 0xc2, 0x2e, 0xdc, 0x06, 0xef, 0x28, 0x2d, 0x3b, 0x74, 0x52, 0x3b, 0x78, 0xc8, 0xdd, 0xc3, 0xe1, 0x68, 0xdf, 0x10, 0xc3, 0x61, 0x17, 0x76, 0x83, 0xc4, 0xae, 0x9f, 0x85, 0x5d, 0xb8, 0x0d, 0x9e, 0x2f, 0x58, 0x76, 0xe8, 0xa4, 0xb6, 0xb0, 0x0b, 0xb7, 0xc1, 0xc0, 0x37, 0x3e, 0x18, 0x99, 0xbd, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x6d, 0xb0, 0x26, 0x2d, 0xe1, 0x60, 0x64, 0xf6, 0x6e, 0x88, 0xe1, 0xb0, 0x0b, 0xb7, 0xc1, 0x49, 0x6f, 0xf7, 0x60, 0x64, 0xf6, 0x6e, 0x88, 0xe1, 0x70, 0x1b, 0xac, 0x63, 0x06, 0x3b, 0x18, 0x99, 0xbd, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x6f, 0x88, 0xe1, 0xb0, 0x1b, 0x24, 0x76, 0xfd, 0x2c, 0xec, 0xc2, 0x6d, 0xf0, 0xd4, 0x8f, 0xa4, 0x43, 0x27, 0xb5, 0x83, 0x87, 0xdc, 0x3d, 0x1c, 0x8e, 0xf6, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xba, 0x85, 0x64, 0x20, 0xe9, 0x16, 0x8e, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xdd, 0x42, 0x34, 0x90, 0x74, 0x0b, 0xf1, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x0f, 0x37, 0xaa, 0xd9, 0xe0, 0xe1, 0x46, 0x35, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0xf0, 0x1a, 0x6c, 0xb4, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa4, 0x5b, 0xd8, 0x0c, 0x24, 0xdd, 0x42, 0xc9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x74, 0x0b, 0xf9, 0xc1, 0x1b, 0xc4, 0xd1, 0x86, 0xdd, 0xe0, 0x31, 0xbb, 0x68, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0xb7, 0xb0, 0x1a, 0x48, 0xba, 0x85, 0xe5, 0xb0, 0x0b, 0xb7, 0xa1, 0x91, 0xe0, 0xc1, 0xc3, 0x76, 0xd1, 0x36, 0x78, 0xd8, 0x2e, 0xda, 0xe1, 0x14, 0x1b, 0x76, 0x83, 0x57, 0xe0, 0xa2, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xdd, 0xc2, 0x74, 0x20, 0xe9, 0x16, 0xe6, 0xc3, 0x2e, 0xdc, 0x86, 0x46, 0x82, 0x07, 0x2f, 0xc2, 0x45, 0xdb, 0xe0, 0x45, 0xb8, 0x68, 0x87, 0x53, 0x6c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xba, 0x85, 0xfd, 0x40, 0xd2, 0x2d, 0x74, 0x0c, 0xbb, 0x70, 0x1b, 0x1a, 0x09, 0x1e, 0x3c, 0x3c, 0x17, 0x6d, 0x83, 0x87, 0xe7, 0xa2, 0x1d, 0x4e, 0xb1, 0x41, 0xb6, 0xc1, 0x6b, 0xb0, 0xd1, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa4, 0x5b, 0x68, 0x1a, 0x48, 0xba, 0x85, 0xb6, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe9, 0x16, 0x5a, 0x0e, 0x1e, 0x7d, 0x8f, 0x36, 0x08, 0x36, 0x78, 0xf5, 0x2c, 0xda, 0xa1, 0x05, 0xd8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x75, 0x0b, 0xc9, 0x40, 0xd6, 0x2d, 0xfc, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xba, 0x85, 0x68, 0x20, 0xeb, 0x16, 0xe2, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x5e, 0x6d, 0x66, 0xb6, 0xc1, 0xab, 0xcd, 0xcc, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0xe0, 0x59, 0xfc, 0x68, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xd6, 0x2d, 0x2c, 0x06, 0xb2, 0x6e, 0x61, 0x3a, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xdd, 0x42, 0x7e, 0xf0, 0x14, 0x83, 0xb4, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xeb, 0x16, 0x26, 0x03, 0x59, 0xb7, 0x30, 0x3b, 0x78, 0x23, 0x40, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xd6, 0x2d, 0xec, 0x06, 0xb2, 0x6e, 0x61, 0x79, 0xf0, 0x5a, 0x92, 0xb2, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x71, 0xe8, 0xd0, 0x41, 0xe3, 0xd0, 0xfc, 0xe5, 0x78, 0x7c, 0x3c, 0x5e, 0x41, 0xb0, 0x18, 0x7c, 0x9d, 0xbb, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xc6, 0x3e, 0x64, 0x03, 0x63, 0x1f, 0xce, 0x0c, 0xbb, 0x61, 0x7d, 0x6f, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xec, 0x43, 0x3a, 0x30, 0xf6, 0x21, 0x3e, 0xf4, 0xa7, 0x1a, 0x76, 0xe1, 0x16, 0x83, 0x17, 0x63, 0x0f, 0xa9, 0x83, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb1, 0x0f, 0xf9, 0xc0, 0xd8, 0x87, 0xc9, 0xb0, 0x0b, 0xb7, 0x21, 0x75, 0x70, 0xf0, 0xf8, 0x8d, 0xb4, 0x0d, 0x1e, 0xbf, 0x91, 0x76, 0x38, 0xc5, 0x86, 0x5d, 0xb8, 0xc5, 0xe0, 0xc5, 0xe4, 0x43, 0xea, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xec, 0xc3, 0x66, 0x60, 0xec, 0xc3, 0x6c, 0xd8, 0x85, 0xdb, 0x90, 0x3a, 0x38, 0x78, 0x72, 0x48, 0xda, 0x06, 0x4f, 0x0e, 0x49, 0x3b, 0x9c, 0x62, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xd8, 0x87, 0xdd, 0xc0, 0xd8, 0x87, 0xe9, 0xb0, 0x0b, 0xb7, 0x21, 0x75, 0x70, 0xf0, 0x6e, 0x8a, 0xb4, 0x0d, 0xde, 0x4d, 0x91, 0x76, 0x38, 0xc5, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf5, 0x21, 0x3a, 0x50, 0x54, 0xe2, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x02, 0x11, 0x3d, 0x78, 0x9d, 0x4b, 0xda, 0xe2, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x89, 0x88, 0x1b, 0xa8, 0x1e, 0xf1, 0x83, 0x60, 0x71, 0x83, 0xa2, 0x5a, 0xf0, 0x70, 0x8a, 0x2d, 0x0e, 0x82, 0x15, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xaa, 0x44, 0x48, 0x06, 0x2a, 0x45, 0xc8, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x22, 0x11, 0x92, 0x83, 0xa7, 0xdd, 0xa4, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0x89, 0xb0, 0x19, 0xa8, 0x12, 0x61, 0x3a, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0x89, 0x90, 0x1e, 0x3c, 0x8e, 0x27, 0x6d, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0xf0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x0f, 0xf1, 0x03, 0xf5, 0x21, 0xac, 0x06, 0xc9, 0xc0, 0xef, 0x7d, 0xc7, 0xe3, 0x83, 0x92, 0xa1, 0xe9, 0x20, 0xd9, 0xd0, 0x60, 0x90, 0x6d, 0xf0, 0xd6, 0x9a, 0xb4, 0x41, 0xb6, 0xc1, 0x4b, 0x70, 0xd2, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xca, 0x44, 0x98, 0x0f, 0x94, 0x89, 0xd0, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0x89, 0x90, 0x1e, 0xbc, 0x15, 0x29, 0x6d, 0x10, 0x6c, 0xf0, 0xda, 0x9f, 0xb4, 0x83, 0xe4, 0xf2, 0x81, 0x41, 0xb6, 0xc1, 0x5b, 0x6b, 0xd2, 0x06, 0xd9, 0x06, 0x2f, 0xc1, 0x49, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x13, 0x61, 0x3a, 0x50, 0x27, 0x42, 0xc3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x27, 0x42, 0x7a, 0xf0, 0x4a, 0xa8, 0xb4, 0x41, 0xb0, 0xc1, 0x6b, 0x7f, 0xd2, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x07, 0xc7, 0xc8, 0xe9, 0xe3, 0xd0, 0x20, 0xdb, 0xe0, 0xad, 0x35, 0x69, 0x83, 0x6c, 0x83, 0x97, 0xe0, 0xa4, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x85, 0x22, 0x8c, 0x07, 0x0a, 0x45, 0xe8, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0a, 0x45, 0x48, 0x0f, 0x9e, 0x96, 0x95, 0x36, 0x08, 0x36, 0x78, 0xed, 0x4f, 0xda, 0xc1, 0xf2, 0x55, 0xa2, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x72, 0x11, 0x92, 0x81, 0xa2, 0x11, 0xb2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x5a, 0x84, 0xe4, 0xe0, 0xc1, 0x5f, 0x69, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xb9, 0x08, 0xe9, 0x40, 0xb9, 0x08, 0x8b, 0xe1, 0x37, 0x78, 0x1b, 0x50, 0xda, 0xc1, 0xfb, 0x11, 0x4a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x8b, 0x07, 0xaf, 0x32, 0xda, 0x5a, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf5, 0x22, 0x24, 0x07, 0x0f, 0xfe, 0x4a, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x17, 0x21, 0x1e, 0xa8, 0x17, 0x61, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xd4, 0x8b, 0x90, 0x1e, 0x3c, 0xce, 0x2d, 0x6d, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0xf0, 0x1b, 0xbc, 0x0d, 0x28, 0xed, 0xe0, 0x71, 0xe9, 0x5c, 0x87, 0x34, 0xdc, 0x20, 0xdb, 0xe0, 0x29, 0x6a, 0x69, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x05, 0x23, 0xc4, 0x03, 0x05, 0x23, 0x4c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x82, 0x11, 0xd2, 0x83, 0x97, 0xda, 0xa5, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x7e, 0x83, 0xb7, 0x01, 0xa5, 0x1d, 0x34, 0x03, 0x9c, 0x74, 0x68, 0x0a, 0x34, 0xc8, 0x36, 0x78, 0x8a, 0x5a, 0xda, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc5, 0x08, 0xfb, 0x81, 0x8a, 0x11, 0x2a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x8a, 0x11, 0xd2, 0x83, 0x87, 0xfb, 0xa5, 0x0d, 0x82, 0x85, 0x5f, 0xf8, 0x0d, 0x2b, 0xb4, 0x07, 0xcf, 0x06, 0x4a, 0x3b, 0x58, 0x97, 0x0a, 0x76, 0xb0, 0xa2, 0x21, 0x6b, 0x90, 0x6d, 0xf0, 0x14, 0xb5, 0xb4, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x92, 0x11, 0x56, 0x03, 0x25, 0x23, 0x74, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x25, 0x23, 0xa4, 0x07, 0x2f, 0x3a, 0x4c, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0x19, 0x61, 0x3a, 0x50, 0x32, 0xc2, 0x76, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0x19, 0x61, 0x76, 0xf0, 0x2a, 0xc6, 0xb4, 0x61, 0x17, 0x6e, 0x43, 0x0c, 0x0f, 0x06, 0x3c, 0xf2, 0x86, 0x18, 0x0e, 0xbb, 0x70, 0x1b, 0x8e, 0xf6, 0x83, 0x01, 0x8f, 0x7c, 0x68, 0xf3, 0x38, 0xc8, 0x36, 0x78, 0x61, 0x61, 0xda, 0x20, 0xdb, 0xe0, 0x09, 0x88, 0x69, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc9, 0x08, 0x05, 0x03, 0x25, 0x23, 0x54, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x25, 0x23, 0x8c, 0x0f, 0x5e, 0x5e, 0x99, 0x36, 0x08, 0x36, 0x78, 0x8a, 0x60, 0xda, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x43, 0xbd, 0xed, 0xc1, 0xf2, 0xc6, 0x92, 0xe3, 0xd0, 0x20, 0xdb, 0xe0, 0x29, 0x6a, 0x69, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xcd, 0x08, 0xa3, 0x81, 0x9a, 0x11, 0xd6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xcd, 0x08, 0xe9, 0xc1, 0x03, 0x3d, 0xd3, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9a, 0x11, 0x56, 0x03, 0x35, 0x23, 0x2c, 0x0f, 0x1e, 0x64, 0x96, 0x36, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x33, 0xc2, 0x74, 0xa0, 0x66, 0x84, 0xf1, 0x20, 0xd8, 0xe0, 0x29, 0x82, 0x69, 0x07, 0x0f, 0xc9, 0xbf, 0x38, 0x34, 0x7f, 0x39, 0x1e, 0x1f, 0x87, 0x0e, 0x8a, 0xe0, 0xc1, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x71, 0xe8, 0xd0, 0x14, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x1c, 0x21, 0x19, 0x28, 0x1e, 0x21, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0a, 0x47, 0x48, 0x0e, 0x1e, 0xff, 0x9a, 0x36, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0x8e, 0x90, 0x0e, 0x54, 0x8e, 0xb0, 0x38, 0x78, 0x90, 0x59, 0xda, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0x8e, 0x90, 0x1c, 0x3c, 0xfe, 0x35, 0x6d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x74, 0x84, 0xe5, 0x40, 0xe9, 0x08, 0x05, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xe9, 0x08, 0xe9, 0xc1, 0x3b, 0x7b, 0xd3, 0x06, 0xc1, 0x06, 0xaf, 0xfd, 0x49, 0x3b, 0xa4, 0xe1, 0x06, 0xd9, 0x06, 0x8f, 0xca, 0x4d, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6a, 0x47, 0x58, 0x0d, 0xd4, 0x8e, 0xb0, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6a, 0x47, 0x48, 0x0f, 0xde, 0x48, 0x9c, 0x36, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xd4, 0x8e, 0x30, 0x1b, 0xa8, 0x1d, 0x61, 0x39, 0xfc, 0x06, 0x6f, 0x03, 0x4a, 0x3b, 0x78, 0x51, 0x08, 0xd1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xed, 0x08, 0xd3, 0x81, 0xda, 0x11, 0xc6, 0x07, 0xef, 0x50, 0x4d, 0x3b, 0x34, 0x7f, 0x39, 0x1e, 0x1f, 0x87, 0x0e, 0x1d, 0x34, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc7, 0xa1, 0x43, 0x0b, 0xb0, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x09, 0x89, 0x1b, 0x28, 0x22, 0xf1, 0x83, 0x60, 0x71, 0xc0, 0x23, 0x73, 0x9b, 0x0f, 0x02, 0xe0, 0x7e, 0x71, 0x10, 0x2c, 0xec, 0xc2, 0x2d, 0x06, 0x3c, 0x70, 0x6f, 0x69, 0x6e, 0xf4, 0x21, 0x9a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x25, 0x24, 0x24, 0x03, 0x25, 0x24, 0xf4, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0x90, 0x10, 0x0d, 0x94, 0x90, 0x30, 0x18, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0xf5, 0xd8, 0x69, 0x1b, 0xbc, 0x1e, 0x3b, 0xed, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0x9e, 0xa6, 0x9d, 0xb6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x42, 0xc2, 0x6a, 0xa0, 0x84, 0x84, 0xdd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x42, 0xc2, 0xe2, 0xe0, 0x19, 0xe4, 0x69, 0x83, 0x60, 0x83, 0xa7, 0x08, 0xa6, 0x1d, 0xbc, 0xce, 0x48, 0x6b, 0x90, 0x6d, 0xf0, 0x34, 0xed, 0xb4, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x84, 0x84, 0xf1, 0x40, 0x09, 0x09, 0x35, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x09, 0x09, 0xc3, 0x83, 0xf7, 0xac, 0xa7, 0x1d, 0x3c, 0x96, 0xcc, 0x67, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x21, 0x21, 0x19, 0xa8, 0x21, 0x61, 0xb5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x43, 0x42, 0x34, 0x50, 0x43, 0x42, 0x3c, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0x18, 0x78, 0x64, 0x6e, 0xf3, 0x06, 0xef, 0xa3, 0x4f, 0x3b, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x57, 0xbc, 0xa7, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x35, 0x24, 0xe4, 0x03, 0x35, 0x24, 0x8c, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x1d, 0xa4, 0x5b, 0x4a, 0x1f, 0x3a, 0x68, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xea, 0x48, 0xdc, 0x40, 0x4d, 0x89, 0x1f, 0x04, 0x8b, 0x03, 0xf8, 0xd2, 0xc9, 0x85, 0xb9, 0xcd, 0x99, 0x95, 0xc9, 0xb5, 0xc0, 0xc9, 0xbd, 0xe1, 0xe5, 0x2d, 0x0e, 0x82, 0x85, 0xdd, 0x60, 0x09, 0xea, 0xd4, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x1d, 0x09, 0xc9, 0x40, 0x1d, 0x09, 0xd3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x3a, 0x12, 0xa2, 0x81, 0x3a, 0x12, 0xf2, 0x83, 0xf5, 0xab, 0x53, 0x83, 0x6c, 0x83, 0x87, 0x06, 0xa8, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x75, 0x24, 0x8c, 0x06, 0xea, 0x48, 0x58, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x75, 0x24, 0x0c, 0x0e, 0x9e, 0x9a, 0xa0, 0x76, 0xb0, 0x94, 0x36, 0x6a, 0xd8, 0x85, 0x5b, 0x0c, 0x78, 0xde, 0xee, 0xdc, 0xca, 0xe4, 0x43, 0x34, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0a, 0x49, 0x48, 0x06, 0x0a, 0x49, 0x78, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x48, 0x42, 0x34, 0x50, 0x48, 0xc2, 0x60, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x67, 0x36, 0xa8, 0x6d, 0xf0, 0xcc, 0x06, 0xb5, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x78, 0xc3, 0x83, 0xda, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x48, 0xc2, 0x6a, 0xa0, 0x90, 0x84, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x48, 0xc2, 0xe2, 0xe0, 0xb9, 0x18, 0x6a, 0x83, 0x60, 0x83, 0xd7, 0xfe, 0xa4, 0x1d, 0x3a, 0x68, 0x0c, 0xbb, 0x70, 0x8b, 0x01, 0x1e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0xe4, 0x21, 0x9a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x95, 0x24, 0x24, 0x03, 0x95, 0x24, 0x5c, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x24, 0x21, 0x1a, 0xa8, 0x24, 0x61, 0x34, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0x9b, 0x3a, 0xd4, 0x36, 0x78, 0x53, 0x87, 0xda, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0x3c, 0xe9, 0x43, 0x6d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x24, 0x61, 0x39, 0x50, 0x49, 0xc2, 0x76, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x24, 0x61, 0x75, 0xf0, 0x7a, 0x14, 0xb5, 0x41, 0xb0, 0xc1, 0x53, 0x04, 0xd3, 0x0e, 0x1e, 0xf5, 0x9a, 0x35, 0xec, 0xc2, 0x2d, 0x06, 0xbc, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x65, 0xe4, 0x21, 0x9a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa5, 0x24, 0x24, 0x03, 0xa5, 0x24, 0x1c, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0x25, 0x21, 0x1a, 0x28, 0x25, 0x61, 0x32, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0x6b, 0x5b, 0xd4, 0x36, 0x78, 0x6d, 0x8b, 0xda, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0x3c, 0xed, 0x45, 0x6d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0x25, 0x61, 0x37, 0x50, 0x4a, 0xc2, 0x72, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0x25, 0x61, 0x73, 0xf0, 0x8a, 0x1c, 0xb5, 0x83, 0x07, 0xb0, 0xa8, 0x0d, 0xbb, 0x70, 0x8b, 0x81, 0xbf, 0x56, 0x96, 0x37, 0x1f, 0xa2, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x4b, 0x42, 0x32, 0x50, 0x4b, 0xc2, 0x89, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5a, 0x12, 0xa2, 0x81, 0x5a, 0x12, 0xf2, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0xde, 0xd0, 0xa3, 0xb6, 0xc1, 0x1b, 0x7a, 0xd4, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0xe0, 0x59, 0x3e, 0x6a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb5, 0x24, 0x2c, 0x06, 0x6a, 0x49, 0x58, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb5, 0x24, 0x0c, 0x0e, 0x9e, 0x80, 0xa4, 0x36, 0x08, 0x36, 0x78, 0x6d, 0x5c, 0xda, 0xa1, 0x29, 0xd0, 0x20, 0xdb, 0xe0, 0x59, 0x3e, 0x6a, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x2d, 0x09, 0xbb, 0x81, 0x5a, 0x12, 0xb6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x2d, 0x09, 0xb3, 0x83, 0x07, 0x3c, 0xa9, 0x0d, 0x82, 0x0d, 0x9e, 0x9e, 0x97, 0x76, 0x68, 0x01, 0x36, 0xec, 0xc2, 0x2d, 0x06, 0xf8, 0x8c, 0xbd, 0xb9, 0xd1, 0xa5, 0xb9, 0xd5, 0xa5, 0xd1, 0xe5, 0x87, 0x68, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x14, 0x93, 0x90, 0x0c, 0x14, 0x93, 0x70, 0x64, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x98, 0x84, 0x68, 0xa0, 0x98, 0x84, 0xd5, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0xaf, 0x9c, 0x52, 0xdb, 0xe0, 0x95, 0x53, 0x6a, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0xf0, 0xd8, 0x2a, 0xb5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x98, 0x84, 0xe9, 0x40, 0x31, 0x09, 0xeb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x98, 0x84, 0xd9, 0xc1, 0xbb, 0xbe, 0xd4, 0x06, 0xc1, 0x06, 0x4f, 0x11, 0x4c, 0x3b, 0x58, 0x8f, 0xae, 0x35, 0xec, 0x06, 0xcf, 0xa3, 0xe3, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x26, 0x21, 0x19, 0xa8, 0x26, 0xe1, 0xcc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x35, 0x09, 0xd1, 0x40, 0x35, 0x09, 0x93, 0x83, 0x07, 0xed, 0x71, 0x0d, 0xb2, 0x0d, 0x5e, 0x4b, 0xa6, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0x93, 0xb0, 0x1b, 0xa8, 0x26, 0xa1, 0x65, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x26, 0x61, 0x73, 0xf0, 0x68, 0x36, 0xb5, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x6a, 0x12, 0xc6, 0x03, 0xd5, 0x24, 0xac, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x6a, 0x12, 0x86, 0x07, 0x2f, 0x8f, 0x53, 0x3b, 0x18, 0x5e, 0xbc, 0x83, 0x6c, 0x83, 0x47, 0xac, 0xa9, 0x0d, 0xb2, 0x0d, 0x5e, 0xd9, 0xa6, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0x93, 0x50, 0x31, 0x50, 0x4d, 0x42, 0xc9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x4d, 0xc2, 0xfc, 0xe0, 0xf5, 0x78, 0x6a, 0x83, 0x60, 0x83, 0xa7, 0x08, 0xa6, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x38, 0xd4, 0xdb, 0x1e, 0x3a, 0x86, 0x1d, 0x87, 0x86, 0x5d, 0xb8, 0xc5, 0x80, 0xaf, 0x6c, 0x6e, 0x2c, 0x0c, 0xae, 0x3c, 0x44, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x9c, 0x84, 0x64, 0xa0, 0x9c, 0x84, 0x1b, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe5, 0x24, 0x44, 0x03, 0xe5, 0x24, 0x2c, 0x86, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x78, 0xc2, 0x9f, 0xda, 0x06, 0x4f, 0xf8, 0x53, 0x3b, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x77, 0x02, 0xaa, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe5, 0x24, 0xcc, 0x06, 0xca, 0x49, 0xd8, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe5, 0x24, 0x4c, 0x0e, 0x9e, 0xa4, 0xa8, 0x36, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0x93, 0xb0, 0x1b, 0x28, 0x27, 0x61, 0x7b, 0xf0, 0x20, 0xb3, 0xb4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x72, 0x12, 0xc6, 0x03, 0xe5, 0x24, 0xcc, 0x0f, 0xde, 0xa1, 0x9a, 0x76, 0x68, 0xfe, 0x72, 0x3c, 0x3e, 0x0e, 0x1d, 0x3a, 0x68, 0x0c, 0xbb, 0x70, 0x8b, 0x01, 0xfe, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2d, 0x70, 0x72, 0x6f, 0x78, 0xf9, 0x21, 0x9a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf5, 0x24, 0x24, 0x03, 0xf5, 0x24, 0xbc, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x27, 0x21, 0x1a, 0xa8, 0x27, 0x61, 0x3b, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0x1b, 0x30, 0xd5, 0x36, 0x78, 0x03, 0xa6, 0xda, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0x3c, 0x5d, 0x53, 0x6d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x27, 0xa1, 0x60, 0xa0, 0x9e, 0x84, 0x9e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x9e, 0x84, 0xf1, 0xc1, 0x33, 0x49, 0xd5, 0x0e, 0x5e, 0xbc, 0xa1, 0x36, 0xec, 0xc2, 0x2d, 0x06, 0xf8, 0xd9, 0xbd, 0xd1, 0xa5, 0xb9, 0x9d, 0xb5, 0xc0, 0xc9, 0xbd, 0xe1, 0xe5, 0x87, 0x68, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x14, 0x94, 0x90, 0x0c, 0x14, 0x94, 0xf0, 0x65, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xa0, 0x84, 0x68, 0xa0, 0xa0, 0x84, 0xdd, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0xaf, 0x44, 0x55, 0xdb, 0xe0, 0x95, 0xa8, 0x6a, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0xf0, 0x78, 0x55, 0xb5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xa0, 0x84, 0xf1, 0x40, 0x41, 0x09, 0x1d, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x41, 0x09, 0xc3, 0x83, 0x77, 0xd2, 0xaa, 0x1d, 0xbc, 0x78, 0x43, 0x6d, 0xd8, 0x85, 0x5b, 0x0c, 0xf0, 0x9a, 0x83, 0x0b, 0xbb, 0x73, 0x6b, 0x81, 0x93, 0x7b, 0xc3, 0xcb, 0x0f, 0xd1, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x28, 0x21, 0x19, 0xa8, 0x28, 0xe1, 0xca, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x45, 0x09, 0xd1, 0x40, 0x45, 0x09, 0xb3, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x9e, 0x89, 0xab, 0xb6, 0xc1, 0x33, 0x71, 0xd5, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0xe0, 0xd5, 0xba, 0x6a, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x45, 0x09, 0xdb, 0x81, 0x8a, 0x12, 0x2a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x8a, 0x12, 0x76, 0x07, 0x0f, 0x24, 0x56, 0x3b, 0x78, 0xf1, 0x86, 0xda, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x52, 0x42, 0x32, 0x50, 0x52, 0xc2, 0x9b, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x92, 0x12, 0xa2, 0x81, 0x92, 0x12, 0x96, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x8e, 0x07, 0x6f, 0xf2, 0x4f, 0xdb, 0xe0, 0xcd, 0xcd, 0x6a, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0xf0, 0x2c, 0x64, 0xb5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xa4, 0x84, 0xf9, 0x40, 0x49, 0x09, 0x2d, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x49, 0x09, 0xd3, 0x83, 0x77, 0x48, 0xab, 0x1d, 0xbc, 0x78, 0x43, 0xed, 0xd0, 0xfc, 0xe5, 0x78, 0x3c, 0x08, 0x36, 0x18, 0xf9, 0x0f, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x7e, 0x84, 0x78, 0xa0, 0x7e, 0x84, 0x92, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfa, 0x11, 0x36, 0x03, 0xf5, 0x23, 0xac, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfa, 0x11, 0xf2, 0x83, 0x97, 0x6f, 0xab, 0x0d, 0x82, 0x0d, 0x9e, 0x22, 0x98, 0x76, 0xf0, 0x7c, 0xd7, 0x9e, 0x41, 0xb6, 0xc1, 0x3b, 0xaf, 0xd5, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xea, 0x47, 0x98, 0x0e, 0xd4, 0x8f, 0x30, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xea, 0x47, 0x98, 0x1d, 0xbc, 0x61, 0x5c, 0x6d, 0x10, 0x6c, 0xf0, 0x14, 0xc1, 0xb4, 0x83, 0x07, 0xe3, 0x79, 0x0d, 0xb2, 0x0d, 0xde, 0x79, 0xad, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xd4, 0x8f, 0xd0, 0x30, 0x50, 0x3f, 0x42, 0xc7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x3f, 0xc2, 0xfa, 0xe0, 0x35, 0xea, 0x6a, 0x83, 0x60, 0x83, 0xa7, 0x08, 0xa6, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x58, 0x1a, 0x40, 0x73, 0xe8, 0x18, 0x76, 0x1c, 0x3a, 0x34, 0x7f, 0x39, 0x1e, 0x1f, 0x8f, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0a, 0x4e, 0xc8, 0x06, 0xca, 0x64, 0xdc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x71, 0xa2, 0x07, 0x4f, 0x96, 0x57, 0x5b, 0x5c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x3a, 0x71, 0x03, 0x55, 0x27, 0xac, 0x07, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xaa, 0x13, 0x3b, 0x50, 0x75, 0x42, 0x74, 0xf0, 0x46, 0x80, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x3a, 0x21, 0x1b, 0xa8, 0x3a, 0x61, 0xbc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x75, 0xc2, 0x60, 0xa0, 0xea, 0x84, 0xc9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x75, 0x42, 0x78, 0xf0, 0xdc, 0x81, 0xb5, 0x83, 0xc7, 0xb8, 0xf6, 0x0c, 0xb2, 0x0d, 0x5e, 0xf7, 0xaf, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0x9d, 0xb0, 0x1c, 0xa8, 0x3a, 0x61, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0x9d, 0xb0, 0x39, 0x78, 0x84, 0xc2, 0xda, 0xc1, 0xeb, 0x08, 0xaf, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc7, 0xa1, 0x43, 0xa3, 0x96, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xe1, 0x8b, 0x1b, 0xa8, 0x8d, 0xf1, 0x83, 0x60, 0x71, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x10, 0xc6, 0x0f, 0x14, 0xc2, 0xd0, 0x31, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x42, 0x18, 0x56, 0x03, 0x85, 0x30, 0x54, 0x1c, 0x8c, 0x3b, 0xa8, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x42, 0x18, 0xf2, 0x81, 0x42, 0x18, 0x46, 0x07, 0xab, 0x7b, 0x61, 0x06, 0xc1, 0x06, 0x41, 0x16, 0xbf, 0x38, 0x08, 0x16, 0x7e, 0x43, 0xb6, 0x62, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0x84, 0x21, 0x1a, 0x28, 0x84, 0x21, 0x3e, 0x68, 0x6c, 0x1c, 0xff, 0x60, 0x25, 0xbe, 0xc8, 0xf1, 0x78, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x28, 0xc6, 0x0f, 0x94, 0xc6, 0x90, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa2, 0x18, 0xb2, 0x81, 0xa2, 0x18, 0xf2, 0x83, 0x56, 0x97, 0xee, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0x8a, 0x61, 0x31, 0x50, 0x14, 0xc3, 0x6a, 0x90, 0x0c, 0x08, 0xde, 0x9d, 0x83, 0x80, 0xf7, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x15, 0xe3, 0x0f, 0xde, 0x3a, 0xb2, 0x36, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xaa, 0x62, 0xc8, 0x06, 0xaa, 0x62, 0xc8, 0x0f, 0x5e, 0x41, 0x41, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x55, 0x0c, 0x8b, 0x81, 0xaa, 0x18, 0x0a, 0x87, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x8a, 0x61, 0x77, 0xf0, 0xc0, 0x9a, 0xb5, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0xc5, 0x50, 0x36, 0x50, 0x15, 0x43, 0xdf, 0x20, 0x19, 0x50, 0xea, 0x72, 0x1d, 0x04, 0xbc, 0xff, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x55, 0x0c, 0xfb, 0x81, 0xaa, 0x18, 0xba, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x55, 0x0c, 0x05, 0x03, 0x55, 0x31, 0x94, 0x1c, 0x3c, 0xd7, 0x7d, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x2a, 0x86, 0x96, 0x81, 0xaa, 0x18, 0xaa, 0xc6, 0xa0, 0xb9, 0xc4, 0x71, 0x68, 0x10, 0x6c, 0x10, 0x64, 0xf1, 0x8b, 0x83, 0x60, 0xe1, 0x37, 0x64, 0x2b, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xaa, 0x18, 0xa6, 0x03, 0x55, 0x31, 0xcc, 0x0f, 0x1e, 0x66, 0xc8, 0x70, 0xb0, 0x12, 0x5f, 0xe4, 0x78, 0xbc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x15, 0xc3, 0x64, 0xa0, 0x2a, 0x86, 0xcd, 0xf1, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x8a, 0x61, 0x34, 0x50, 0x15, 0xc3, 0xea, 0x78, 0x3c, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x2c, 0xc6, 0x1f, 0xbc, 0x75, 0x64, 0x6d, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0xc5, 0x90, 0x0d, 0x94, 0xc5, 0x90, 0x1f, 0xb4, 0x41, 0x75, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x17, 0xe3, 0x0f, 0xde, 0x3a, 0xb2, 0x36, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xca, 0x18, 0x92, 0x81, 0xca, 0x18, 0xbe, 0x0c, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x32, 0x86, 0xf9, 0x40, 0x65, 0x0c, 0x57, 0x86, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x19, 0x43, 0xf3, 0x40, 0x65, 0x0c, 0x4f, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x65, 0x0c, 0xd5, 0x03, 0x95, 0x31, 0xd4, 0x0f, 0x92, 0x01, 0xc1, 0xdf, 0x75, 0x10, 0xf0, 0xfe, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0xc6, 0xd0, 0x3f, 0x50, 0x19, 0xc3, 0x87, 0x83, 0x84, 0xb2, 0x93, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x95, 0x31, 0x9c, 0x18, 0xa8, 0x8c, 0xe1, 0xc8, 0x41, 0x92, 0x82, 0xc3, 0x71, 0x68, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x32, 0x86, 0x9a, 0x81, 0xca, 0x18, 0x8a, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x65, 0x0c, 0x3d, 0x03, 0x95, 0x31, 0x74, 0x0d, 0x92, 0x81, 0x64, 0xd7, 0x41, 0xc0, 0xfb, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0xc6, 0x50, 0x36, 0x50, 0x19, 0x43, 0xef, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xe2, 0x38, 0xa8, 0x18, 0x9c, 0x1b, 0xfc, 0xef, 0xf8, 0x76, 0x1c, 0x1a, 0x04, 0x1b, 0x04, 0x59, 0xfc, 0xe2, 0x20, 0x58, 0xf8, 0x0d, 0xd9, 0x8a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x32, 0x86, 0x86, 0x81, 0xca, 0x18, 0x5a, 0x0e, 0x1e, 0x66, 0xc8, 0x70, 0xb0, 0x12, 0x5f, 0xe4, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x19, 0xc3, 0x62, 0xa0, 0x32, 0x86, 0xf5, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x8c, 0x61, 0x32, 0x50, 0x19, 0xc3, 0xec, 0x60, 0x2d, 0x35, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x65, 0x0c, 0xbb, 0x81, 0xca, 0x18, 0xc6, 0x07, 0xe7, 0x96, 0xe2, 0xe3, 0xd0, 0x20, 0xd8, 0x20, 0xc8, 0xe2, 0x17, 0x07, 0xc1, 0xc2, 0x6f, 0xc8, 0x56, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x95, 0x31, 0x84, 0x03, 0x95, 0x31, 0x0c, 0x0e, 0x1a, 0x1b, 0xc7, 0x3f, 0x58, 0x89, 0x2f, 0x72, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0x8c, 0x21, 0x19, 0x28, 0x8c, 0xa1, 0x73, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x85, 0x31, 0xac, 0x06, 0x0a, 0x63, 0xa8, 0x1c, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x30, 0x86, 0xba, 0x81, 0xc2, 0x18, 0x1a, 0x07, 0xc9, 0x80, 0xe3, 0x3a, 0xd5, 0x41, 0xc0, 0xfb, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x14, 0xc6, 0x50, 0x35, 0x50, 0x18, 0x43, 0xdb, 0x41, 0xf3, 0xd8, 0xf8, 0x83, 0x60, 0x83, 0x20, 0x8b, 0x5f, 0x1c, 0x04, 0x0b, 0xbf, 0x21, 0x5b, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x14, 0xc6, 0x30, 0x1c, 0x28, 0x8c, 0x61, 0x7c, 0xd0, 0xd8, 0x38, 0xfe, 0xc1, 0x4a, 0x7c, 0x91, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x61, 0x0c, 0xeb, 0x81, 0xc2, 0x18, 0x9a, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x61, 0x0c, 0xf3, 0x81, 0xc2, 0x18, 0x2a, 0x0e, 0xd6, 0x52, 0x93, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x14, 0xc6, 0xd0, 0x31, 0x50, 0x18, 0x43, 0xd1, 0xc1, 0xb9, 0xa5, 0xf8, 0x38, 0x74, 0xf0, 0xa2, 0xd2, 0xb5, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc2, 0x18, 0x16, 0x03, 0x85, 0x31, 0x8c, 0x06, 0xc9, 0x80, 0xe0, 0xe5, 0x3a, 0x08, 0x78, 0xff, 0x41, 0xb0, 0x41, 0x90, 0xc5, 0x2f, 0x0e, 0x82, 0x85, 0xdf, 0x90, 0xad, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0a, 0x63, 0x08, 0x07, 0x0a, 0x63, 0x18, 0x1c, 0xa4, 0xc6, 0x58, 0x1c, 0xac, 0xc4, 0x17, 0x39, 0x1e, 0x0f, 0x82, 0x0d, 0x82, 0x2c, 0x7e, 0x71, 0x10, 0x2c, 0xfc, 0x86, 0x6c, 0xc5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x17, 0x43, 0x36, 0x50, 0x17, 0x43, 0x7e, 0xd0, 0xd8, 0x38, 0xfe, 0xc1, 0x4a, 0x7c, 0x91, 0xe3, 0xf1, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0x81, 0xf1, 0x03, 0x55, 0x30, 0x74, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x12, 0x18, 0xb2, 0x81, 0x12, 0x18, 0xf2, 0x83, 0x56, 0x97, 0xee, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x81, 0x21, 0x19, 0xa8, 0x81, 0x61, 0x3f, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6a, 0x60, 0xc8, 0x07, 0x6a, 0x60, 0x58, 0x1c, 0x34, 0xa5, 0xdf, 0x34, 0x48, 0x06, 0x46, 0x6f, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1a, 0x18, 0x26, 0x03, 0x35, 0x30, 0xcc, 0x0f, 0x31, 0x3c, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0x82, 0xf1, 0x07, 0x2f, 0x3c, 0x5e, 0x1b, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x45, 0x30, 0x64, 0x03, 0x45, 0x30, 0xe4, 0x07, 0x0f, 0x88, 0x31, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x08, 0x86, 0xc5, 0x40, 0x11, 0x0c, 0x65, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x08, 0x86, 0xc9, 0x40, 0x11, 0x0c, 0xb3, 0x83, 0x57, 0x50, 0x10, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x04, 0xc3, 0x6e, 0xa0, 0x08, 0x86, 0x9e, 0xe1, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8a, 0x60, 0x58, 0x1f, 0x3c, 0xdb, 0x7c, 0x6d, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x14, 0xc1, 0x30, 0x1f, 0x28, 0x82, 0xa1, 0xe2, 0xa0, 0x0d, 0xaa, 0xfb, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x22, 0x18, 0x3a, 0x06, 0x8a, 0x60, 0xa8, 0x39, 0x68, 0x1e, 0x1b, 0xff, 0x38, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x04, 0xc3, 0x70, 0xa0, 0x08, 0x86, 0xe5, 0xf1, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0x82, 0x61, 0x3a, 0x50, 0x04, 0xc3, 0xf6, 0x78, 0x3c, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x08, 0x86, 0xa2, 0x81, 0x22, 0x18, 0xba, 0x0e, 0x9a, 0x2f, 0xc9, 0x3f, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x82, 0xf1, 0x07, 0x2f, 0x3c, 0x5e, 0x1b, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x15, 0x0c, 0xab, 0x81, 0x2a, 0x18, 0xaa, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x05, 0x43, 0xe1, 0x40, 0x15, 0x0c, 0xcd, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x0a, 0x86, 0xc6, 0x81, 0x2a, 0x18, 0x5a, 0x0f, 0x1a, 0x3b, 0xc6, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x82, 0xa1, 0x76, 0xa0, 0x0a, 0x86, 0xe2, 0x43, 0x0c, 0x8f, 0x43, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x55, 0x30, 0xac, 0x07, 0xaa, 0x60, 0xe8, 0x1b, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x15, 0x0c, 0x4d, 0x03, 0x55, 0x30, 0xd4, 0x1d, 0x94, 0x0c, 0x4d, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x55, 0x30, 0xb4, 0x0c, 0x54, 0xc1, 0x50, 0x74, 0xf0, 0x80, 0x0a, 0x83, 0x41, 0xb0, 0x41, 0x90, 0xc5, 0x2f, 0x0e, 0x82, 0x85, 0xdf, 0x90, 0xad, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xaa, 0x60, 0x28, 0x18, 0xa8, 0x82, 0xa1, 0xe4, 0x20, 0x35, 0xc6, 0xe2, 0x60, 0x25, 0xbe, 0xc8, 0xf1, 0x78, 0x10, 0x6c, 0x10, 0x64, 0xf1, 0x8b, 0x83, 0x60, 0xe1, 0x37, 0x64, 0x2b, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x2a, 0x18, 0x86, 0x03, 0x55, 0x30, 0x8c, 0x0f, 0x1a, 0x1b, 0xc7, 0x3f, 0x58, 0x89, 0x2f, 0x72, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x82, 0x21, 0x1f, 0xa8, 0x82, 0x61, 0x74, 0xb0, 0xba, 0x17, 0x66, 0x10, 0x6c, 0x10, 0x64, 0xf1, 0x8b, 0x83, 0x60, 0xe1, 0x37, 0x64, 0x2b, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x2a, 0x18, 0xa2, 0x81, 0x2a, 0x18, 0xe2, 0x83, 0xc6, 0xc5, 0xee, 0x0f, 0x56, 0xe2, 0x8b, 0x1c, 0x8f, 0x8f, 0x43, 0xc7, 0xa1, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc2, 0x17, 0x92, 0x81, 0xd2, 0x17, 0xaa, 0x06, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x95, 0x2f, 0x24, 0x07, 0x0f, 0x6e, 0x61, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4a, 0x5f, 0x48, 0x0e, 0x1e, 0xdc, 0xc2, 0x36, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4a, 0x5f, 0x88, 0x06, 0x4a, 0x5f, 0x88, 0x07, 0xc9, 0x40, 0xb0, 0x0e, 0x86, 0xa1, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa5, 0x2f, 0xe4, 0x03, 0xa5, 0x2f, 0x54, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd2, 0x17, 0x06, 0x03, 0xa5, 0x2f, 0x8c, 0x06, 0xc9, 0xa0, 0xe6, 0x60, 0x18, 0xfa, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0xbe, 0xb0, 0x1a, 0x28, 0x7d, 0xa1, 0x61, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0xbe, 0x30, 0x1b, 0x28, 0x7d, 0x61, 0x7a, 0xd0, 0xe2, 0xd3, 0xd3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xe9, 0x0b, 0xdb, 0x81, 0xd2, 0x17, 0x0a, 0x0e, 0xa9, 0x83, 0xe3, 0xd0, 0x71, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xe9, 0x0b, 0x1d, 0x03, 0xa5, 0x2f, 0x34, 0x1d, 0x24, 0xb5, 0x1f, 0x1c, 0x87, 0x8e, 0xc7, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb5, 0x30, 0x7e, 0xa0, 0x22, 0x86, 0x64, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xd4, 0xc2, 0x90, 0x0d, 0xd4, 0xc2, 0x90, 0x1f, 0xb4, 0xba, 0x74, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x2d, 0x0c, 0x8b, 0x81, 0x5a, 0x18, 0x56, 0x07, 0xcf, 0x58, 0x59, 0x1b, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x0d, 0xe3, 0x0f, 0x9e, 0x03, 0xc5, 0x36, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xaa, 0x61, 0xc8, 0x06, 0xaa, 0x61, 0xc8, 0x0f, 0x1a, 0x42, 0xd4, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0x87, 0xf1, 0x07, 0xcf, 0x81, 0x62, 0x1b, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x10, 0x2c, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0x20, 0x58, 0x10, 0x2c, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x82, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x05, 0x31, 0xf4, 0x0c, 0x14, 0xc4, 0x50, 0x75, 0xf0, 0xb4, 0xbb, 0x84, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x82, 0x18, 0x2a, 0x06, 0x0a, 0x62, 0x68, 0x39, 0x78, 0x2f, 0x64, 0xc2, 0x20, 0xd8, 0x20, 0xc8, 0xe2, 0x17, 0x07, 0xc1, 0xc2, 0x6f, 0xc8, 0x56, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe5, 0x30, 0x64, 0x03, 0xe5, 0x30, 0xe4, 0x07, 0x8d, 0x8d, 0xe3, 0x1f, 0xac, 0xc4, 0x17, 0x39, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x14, 0xc4, 0xb0, 0x1e, 0x28, 0x88, 0xa1, 0xe0, 0xa0, 0xad, 0xae, 0xfb, 0x83, 0x77, 0xb4, 0xb1, 0x0d, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x14, 0xc4, 0x30, 0x1c, 0x28, 0x88, 0x61, 0x7b, 0xf0, 0xc8, 0xa8, 0x84, 0x83, 0x77, 0xb4, 0xb1, 0x0d, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x14, 0xc4, 0xb0, 0x19, 0x28, 0x88, 0x61, 0x76, 0xf0, 0xa0, 0xb8, 0x84, 0x83, 0x77, 0xb4, 0xb1, 0x0d, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x14, 0xc4, 0x10, 0x0f, 0x14, 0xc4, 0xb0, 0x38, 0x78, 0xe1, 0xd0, 0xc1, 0xc1, 0x3b, 0xda, 0xd8, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0a, 0x62, 0x48, 0x06, 0x0a, 0x62, 0x08, 0x0f, 0x9a, 0x1d, 0xc8, 0x3f, 0x78, 0x47, 0x1b, 0xdb, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x3d, 0x0c, 0x8d, 0x03, 0xf5, 0x30, 0x94, 0x1e, 0xb4, 0x2d, 0x8f, 0x7f, 0xf0, 0x8e, 0x36, 0xb6, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x7a, 0x18, 0xca, 0x06, 0xea, 0x61, 0xe8, 0x3b, 0x78, 0x45, 0x5f, 0xc2, 0xc1, 0x3b, 0xda, 0xd8, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xea, 0x61, 0xe8, 0x19, 0xa8, 0x87, 0xa1, 0x6a, 0x90, 0x0c, 0x18, 0xae, 0x5c, 0x07, 0x01, 0xef, 0x7f, 0xf0, 0x8e, 0x36, 0xb6, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x7a, 0x18, 0x2a, 0x06, 0xea, 0x61, 0x68, 0x39, 0x78, 0x54, 0x73, 0xc2, 0xc1, 0x3b, 0xda, 0xd8, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xea, 0x61, 0x58, 0x0f, 0xd4, 0xc3, 0x50, 0x70, 0xf0, 0x4e, 0xab, 0x83, 0x83, 0x77, 0xb4, 0xb1, 0x0d, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xd4, 0xc3, 0x30, 0x1c, 0xa8, 0x87, 0x61, 0x7b, 0xf0, 0x12, 0xc6, 0x84, 0x83, 0x77, 0xb4, 0xb1, 0x0d, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xd4, 0xc3, 0xb0, 0x19, 0xa8, 0x87, 0x61, 0x76, 0xd0, 0x18, 0x46, 0xfe, 0xc1, 0x3b, 0xda, 0xd8, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xea, 0x61, 0x88, 0x07, 0xea, 0x61, 0x58, 0x1c, 0x3c, 0xdc, 0x5a, 0xe1, 0xe0, 0x1d, 0x6d, 0x6c, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf5, 0x30, 0x24, 0x03, 0xf5, 0x30, 0x84, 0x83, 0x64, 0x83, 0xd5, 0x2b, 0x24, 0x07, 0x01, 0xef, 0x7f, 0xf0, 0x8e, 0x36, 0xb6, 0xe3, 0xd0, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x7e, 0xf1, 0x03, 0xf5, 0x2f, 0x84, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xfa, 0x85, 0x6c, 0xa0, 0xfa, 0x85, 0xfc, 0xe0, 0x79, 0x20, 0x0d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0xbf, 0x90, 0x0c, 0x94, 0xbf, 0x50, 0x3d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xca, 0x5f, 0x88, 0x06, 0xca, 0x5f, 0x88, 0x0f, 0x5e, 0x41, 0x41, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xf9, 0x0b, 0xf9, 0x40, 0xf9, 0x0b, 0xad, 0xc3, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0xbf, 0xb0, 0x3a, 0x78, 0xd7, 0x2f, 0xdb, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0x7f, 0x61, 0x36, 0x50, 0xfe, 0xc2, 0xf4, 0xa0, 0x0d, 0xaa, 0xfb, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf2, 0x17, 0xb6, 0x03, 0xe5, 0x2f, 0x94, 0x0e, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xfc, 0x85, 0x9e, 0x81, 0xf2, 0x17, 0x3a, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xf9, 0x0b, 0x45, 0x03, 0xe5, 0x2f, 0x94, 0x1d, 0xac, 0xa5, 0x26, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0x7f, 0xa1, 0x6d, 0xa0, 0xfc, 0x85, 0xca, 0x83, 0x73, 0x4b, 0xf1, 0x71, 0x68, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xfc, 0x85, 0x8e, 0x81, 0xf2, 0x17, 0x6a, 0x0e, 0x9a, 0xc7, 0xc6, 0x1f, 0x04, 0x1b, 0x04, 0x59, 0xfc, 0xe2, 0x20, 0x58, 0xf8, 0x0d, 0xd9, 0x8a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xfc, 0x85, 0xf9, 0x40, 0xf9, 0x0b, 0x15, 0x07, 0x8d, 0x8d, 0xe3, 0x1f, 0xac, 0xc4, 0x17, 0x39, 0x1e, 0x1f, 0x87, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xca, 0x5f, 0x18, 0x0c, 0x94, 0xbf, 0xb0, 0x38, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe5, 0x2f, 0x4c, 0x06, 0xca, 0x5f, 0xd8, 0x1c, 0x8f, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0xbf, 0x50, 0x3b, 0x50, 0xfe, 0x42, 0xf3, 0xc1, 0x43, 0x1b, 0x0c, 0x8e, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xea, 0x5f, 0xfc, 0xc1, 0x0b, 0x63, 0xd9, 0x0e, 0x4e, 0x2b, 0xb8, 0xc7, 0xa1, 0x83, 0x11, 0x12, 0xb5, 0x82, 0x60, 0x83, 0x82, 0x5a, 0x6c, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xd4, 0xc7, 0xb8, 0x81, 0x2a, 0x19, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x21, 0x43, 0x34, 0x50, 0x21, 0xc3, 0x72, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x90, 0x21, 0x39, 0x78, 0x3d, 0x3c, 0xdb, 0x20, 0xd8, 0x60, 0x9d, 0x5d, 0xd4, 0x21, 0x0d, 0x37, 0xc8, 0x36, 0x78, 0x34, 0x3b, 0xdb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x24, 0x43, 0x3c, 0x50, 0x24, 0xc3, 0x72, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0x92, 0x21, 0x39, 0x78, 0xf5, 0x3d, 0xdb, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x24, 0x43, 0x3e, 0x50, 0x24, 0xc3, 0xe6, 0xe0, 0xfd, 0x08, 0x25, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x45, 0x32, 0x8c, 0x06, 0x8a, 0x64, 0x18, 0x1e, 0xbc, 0xef, 0xb6, 0xe7, 0x38, 0x74, 0xe8, 0xa0, 0x71, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x10, 0x2c, 0x1e, 0x3c, 0xd3, 0x91, 0x6b, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0x9e, 0xb8, 0x81, 0x12, 0x14, 0x3f, 0xec, 0xc2, 0x2d, 0x06, 0xbc, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0xd4, 0x21, 0x75, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x79, 0x42, 0x32, 0x50, 0x79, 0xc2, 0x66, 0xd8, 0x85, 0xdb, 0x90, 0x3a, 0x38, 0x78, 0x15, 0x42, 0xdb, 0x06, 0xaf, 0x42, 0x68, 0x3b, 0x9c, 0x62, 0xc3, 0x2e, 0xdc, 0x62, 0xc0, 0x47, 0x54, 0xc4, 0x54, 0x44, 0x55, 0x1c, 0x52, 0x07, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa5, 0x27, 0x24, 0x03, 0xa5, 0x27, 0x4c, 0x86, 0x5d, 0xb8, 0x0d, 0xa9, 0x83, 0x83, 0x97, 0x3b, 0xb4, 0x6d, 0xf0, 0x72, 0x87, 0xb6, 0xc3, 0x29, 0x36, 0xec, 0xc2, 0x2d, 0x06, 0xde, 0x51, 0x11, 0x75, 0x48, 0x1d, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xd4, 0x9e, 0x90, 0x0c, 0xd4, 0x9e, 0x90, 0x0f, 0xbb, 0x70, 0x1b, 0x52, 0x07, 0x07, 0xaf, 0xaa, 0x68, 0xdb, 0xe0, 0x55, 0x15, 0x6d, 0x87, 0x53, 0x6c, 0xd8, 0x85, 0x5b, 0x0c, 0x7c, 0xa4, 0xa2, 0x20, 0xe2, 0x90, 0x3a, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0x3e, 0x21, 0x19, 0x28, 0x3e, 0x61, 0x30, 0xec, 0xc2, 0x6d, 0x48, 0x1d, 0x1c, 0x3c, 0x6b, 0xa3, 0x6d, 0x83, 0x67, 0x6d, 0xb4, 0x1d, 0x4e, 0xb1, 0x61, 0x17, 0x6e, 0x31, 0xe0, 0x7d, 0x82, 0xa2, 0x4a, 0x7a, 0x72, 0x9a, 0x0e, 0xa9, 0x83, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xea, 0x13, 0x92, 0x81, 0xea, 0x13, 0x36, 0xc3, 0x2e, 0xdc, 0x86, 0xd4, 0xc1, 0xc1, 0x03, 0x43, 0xda, 0x36, 0x78, 0x60, 0x48, 0xdb, 0xe1, 0x14, 0x1b, 0x76, 0xe1, 0x16, 0x03, 0x1e, 0xa8, 0x20, 0xaa, 0x21, 0xe4, 0x90, 0x3a, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0x3f, 0x21, 0x19, 0x28, 0x3f, 0x61, 0x31, 0xec, 0xc2, 0x6d, 0x48, 0x1d, 0x1c, 0x3c, 0x02, 0xa5, 0x6d, 0x83, 0x47, 0xa0, 0xb4, 0x1d, 0x4e, 0xb1, 0x61, 0x17, 0x6e, 0x31, 0xf0, 0xa1, 0x9e, 0xa6, 0xa8, 0x43, 0xea, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xfe, 0x84, 0x64, 0xa0, 0xfe, 0x84, 0xc1, 0xb0, 0x0b, 0xb7, 0x21, 0x75, 0x70, 0xf0, 0x30, 0x97, 0xb6, 0x0d, 0x1e, 0xe6, 0xd2, 0x76, 0x38, 0xc5, 0x86, 0x5d, 0xb8, 0xc5, 0xc0, 0x83, 0xaa, 0xa2, 0x0e, 0xa9, 0x83, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x02, 0x14, 0x92, 0x81, 0x02, 0x14, 0xf2, 0x61, 0x17, 0x6e, 0x43, 0xea, 0xe0, 0xe0, 0x89, 0x34, 0x6d, 0x1b, 0x3c, 0x91, 0xa6, 0xed, 0x70, 0x8a, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x15, 0x28, 0x24, 0x03, 0x15, 0x28, 0x2c, 0x86, 0x5d, 0xb8, 0x0d, 0xa9, 0x83, 0x83, 0x57, 0x12, 0xb4, 0x6d, 0xf0, 0x4a, 0x82, 0xb6, 0xc3, 0x29, 0x76, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x6d, 0x71, 0x03, 0x65, 0x2e, 0x34, 0x0e, 0x82, 0x0d, 0x46, 0xfe, 0xc3, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xdc, 0xe2, 0x0e, 0x5e, 0x16, 0xd4, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0xb7, 0xb8, 0x83, 0x97, 0x05, 0xb5, 0x0d, 0xbb, 0xc1, 0x58, 0x47, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x70, 0xf1, 0x03, 0x15, 0x2e, 0x2c, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2a, 0x5c, 0x08, 0x06, 0x2a, 0x5c, 0x98, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0xb8, 0x90, 0x0c, 0x54, 0xb8, 0x90, 0x1f, 0xa2, 0x39, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0xb8, 0x30, 0x18, 0xa8, 0x70, 0x61, 0x75, 0x68, 0x24, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0xb8, 0xb0, 0x1b, 0xa8, 0x70, 0x61, 0x78, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xe3, 0xe2, 0x0e, 0x5e, 0x16, 0xd4, 0x36, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x8d, 0x0b, 0xc9, 0x40, 0x8d, 0x0b, 0x25, 0xc3, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xd4, 0xb8, 0x90, 0x0d, 0xd4, 0xb8, 0x30, 0x3e, 0x68, 0x35, 0xd3, 0x69, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x71, 0x61, 0x3d, 0x50, 0xe3, 0x42, 0xc7, 0x21, 0x9a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x45, 0x2e, 0x7e, 0xa0, 0xc8, 0x85, 0x96, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x22, 0x17, 0x82, 0x81, 0x22, 0x17, 0x66, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x45, 0x2e, 0x24, 0x03, 0x45, 0x2e, 0xe4, 0x87, 0x68, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x45, 0x2e, 0x0c, 0x06, 0x8a, 0x5c, 0x58, 0x1d, 0x1a, 0x09, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x45, 0x2e, 0xec, 0x06, 0x8a, 0x5c, 0x28, 0x39, 0x18, 0x99, 0xbd, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x99, 0x8b, 0x3b, 0x78, 0x59, 0x50, 0xdb, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x99, 0x8b, 0x1d, 0x28, 0x73, 0x61, 0x73, 0xe8, 0xa4, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0xb9, 0x30, 0x1a, 0x28, 0x73, 0xa1, 0x70, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xb6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x99, 0x0b, 0x15, 0x03, 0x65, 0x2e, 0xf4, 0x1d, 0x8c, 0xcc, 0xde, 0xe3, 0xf1, 0xf1, 0x78, 0x41, 0xb0, 0x78, 0xf0, 0x48, 0x47, 0xae, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x86, 0xe2, 0x06, 0x8a, 0x52, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x21, 0x0a, 0x83, 0x81, 0x42, 0x14, 0x66, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x21, 0x0a, 0xc9, 0xc1, 0x83, 0x00, 0xdb, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x92, 0xc1, 0xb5, 0xe3, 0xf1, 0x21, 0x0d, 0x37, 0xc8, 0x36, 0x78, 0x06, 0x5f, 0xdb, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x35, 0x0a, 0xe9, 0x40, 0x35, 0x0a, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x8b, 0x42, 0x72, 0xf0, 0xee, 0xc3, 0xb6, 0x83, 0xe7, 0xdf, 0x79, 0x0d, 0xb2, 0x0d, 0x9e, 0xc1, 0xd7, 0xb6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x90, 0x42, 0x34, 0x50, 0x90, 0xc2, 0x6a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0x48, 0x21, 0x39, 0x78, 0x8d, 0x63, 0xdb, 0xc1, 0x9b, 0x97, 0xba, 0x06, 0xd9, 0x06, 0xcf, 0xe0, 0x6b, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6a, 0x52, 0x88, 0x07, 0x6a, 0x52, 0x58, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x35, 0x29, 0x24, 0x07, 0x4f, 0xa4, 0x6c, 0x1b, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6a, 0x52, 0xc8, 0x07, 0x6a, 0x52, 0xd8, 0x1c, 0xbc, 0x1f, 0xa1, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x26, 0x85, 0xd1, 0x40, 0x4d, 0x0a, 0xc3, 0x83, 0xf7, 0xdd, 0xf6, 0x1c, 0x87, 0x0e, 0xdd, 0x8f, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xa9, 0x8b, 0x1b, 0x28, 0x7a, 0xa1, 0x71, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb5, 0x2e, 0xee, 0xe0, 0xf1, 0xa2, 0x6d, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xb5, 0x8b, 0x3b, 0x78, 0xbc, 0x68, 0xdb, 0xb0, 0x1b, 0x76, 0x0d, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xca, 0x5d, 0xfc, 0x40, 0xb9, 0x0b, 0xc1, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc5, 0x8b, 0x3b, 0x78, 0xbc, 0x68, 0xdb, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x15, 0x2f, 0x24, 0x03, 0x15, 0x2f, 0x94, 0x0c, 0xb7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xf1, 0x42, 0x36, 0x50, 0xf1, 0xc2, 0xf8, 0x60, 0x78, 0x51, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x15, 0x2f, 0xac, 0x07, 0x2a, 0x5e, 0xe8, 0x38, 0x44, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xe4, 0xc5, 0x0f, 0x94, 0xbc, 0x30, 0x3a, 0x08, 0x4a, 0xef, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xe8, 0xc5, 0x1d, 0x3c, 0x5e, 0xb4, 0x6d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xe8, 0xc5, 0x0e, 0x14, 0xbd, 0xb0, 0x39, 0x34, 0x12, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8a, 0x5e, 0x18, 0x0d, 0x14, 0xbd, 0x50, 0x38, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xe9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xf4, 0x42, 0xc5, 0x40, 0xd1, 0x0b, 0x7d, 0x07, 0x41, 0xe9, 0x7d, 0x3c, 0x3e, 0x1e, 0x2f, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x6d, 0x8a, 0x1b, 0xa8, 0x50, 0xf1, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd5, 0x29, 0xac, 0x06, 0xaa, 0x53, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd5, 0x29, 0x24, 0x07, 0x4f, 0x5e, 0x6e, 0x3b, 0x78, 0xb9, 0x72, 0xd1, 0x20, 0xdb, 0xe0, 0xa1, 0xc7, 0x6d, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x81, 0x0a, 0x8b, 0x81, 0x02, 0x15, 0xc6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x81, 0x0a, 0xc9, 0xc1, 0x43, 0xa4, 0xdb, 0x0e, 0x96, 0xd2, 0x46, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8a, 0x59, 0xdc, 0x40, 0x55, 0x0b, 0x0d, 0x83, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x66, 0x71, 0x07, 0xef, 0xc1, 0x6e, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xea, 0x59, 0xdc, 0xc1, 0x7b, 0xb0, 0xdb, 0x86, 0xdd, 0xb0, 0x6b, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xd0, 0xe2, 0x07, 0x0a, 0x5a, 0x08, 0x0e, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4a, 0x5a, 0xdc, 0xc1, 0x7b, 0xb0, 0xdb, 0x86, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0x69, 0x21, 0x19, 0x28, 0x69, 0xa1, 0x64, 0xb8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x92, 0x16, 0xb2, 0x81, 0x92, 0x16, 0xc6, 0x07, 0xc3, 0x8b, 0x62, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0x69, 0x61, 0x3d, 0x50, 0xd2, 0x42, 0xc7, 0x21, 0x9a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x35, 0x2d, 0x7e, 0xa0, 0xa6, 0x85, 0xed, 0x86, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x35, 0x2d, 0x04, 0x07, 0xcf, 0x75, 0x6f, 0x3b, 0x18, 0xa6, 0x13, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x55, 0x8b, 0x3b, 0x78, 0x0f, 0x76, 0xdb, 0x20, 0x19, 0x32, 0x88, 0x16, 0xa4, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x55, 0x0b, 0x9b, 0x81, 0xaa, 0x16, 0x0a, 0x0e, 0x82, 0xd2, 0xfb, 0x78, 0x7c, 0x3c, 0x1e, 0x04, 0x1b, 0x3c, 0xf4, 0xb9, 0x67, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0xab, 0xb8, 0x81, 0x42, 0x16, 0x3f, 0xec, 0xc2, 0x2d, 0x06, 0x3c, 0x73, 0x74, 0x61, 0x72, 0xf4, 0x21, 0x9a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x05, 0x2b, 0x24, 0x03, 0xa5, 0x2b, 0x64, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x05, 0x2b, 0xa4, 0x03, 0x05, 0x2b, 0x6c, 0x86, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x78, 0x45, 0x7f, 0xdb, 0x06, 0xaf, 0xe8, 0x6f, 0x3b, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x27, 0xfa, 0xb7, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xd4, 0xac, 0x10, 0x0f, 0xd4, 0xac, 0xb0, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6a, 0x56, 0x48, 0x0f, 0xde, 0x82, 0xe0, 0x36, 0x08, 0x36, 0x58, 0x67, 0x17, 0x75, 0x68, 0x0a, 0x34, 0xc8, 0x36, 0x78, 0xa2, 0x7f, 0xdb, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xd9, 0x0a, 0x93, 0x81, 0xb2, 0x15, 0xd6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xd9, 0x0a, 0xe9, 0xc1, 0x43, 0x1e, 0xdc, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb2, 0x15, 0x36, 0x03, 0x65, 0x2b, 0xec, 0x0e, 0xde, 0x8f, 0x50, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xb6, 0xc2, 0x70, 0xa0, 0x6c, 0x85, 0xf1, 0xc1, 0xfb, 0x6e, 0x7b, 0x8e, 0x43, 0x87, 0x4e, 0x44, 0x83, 0x6c, 0x83, 0x27, 0xfa, 0xb7, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x95, 0x2b, 0xcc, 0x06, 0x2a, 0x57, 0xd8, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x95, 0x2b, 0xa4, 0x07, 0x4f, 0xee, 0x70, 0x3b, 0x78, 0xc9, 0x3c, 0xd6, 0xb0, 0x0b, 0xb7, 0x18, 0xf0, 0x8f, 0xbd, 0xb9, 0xd1, 0xa5, 0xb9, 0xd5, 0x95, 0x87, 0x68, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0xaf, 0x90, 0x0c, 0x14, 0xb1, 0x90, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0xaf, 0x90, 0x0e, 0x54, 0xaf, 0x30, 0x1b, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0xbd, 0x21, 0x6e, 0x1b, 0xbc, 0x37, 0xc4, 0xed, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0x1e, 0x39, 0xe2, 0xb6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xc0, 0xc2, 0x64, 0xa0, 0x80, 0x85, 0xf5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xc0, 0x42, 0x7a, 0xf0, 0x9c, 0x16, 0xb7, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x80, 0x85, 0xcd, 0x40, 0x01, 0x0b, 0xbb, 0x83, 0xf7, 0x23, 0x94, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x14, 0xb0, 0x30, 0x1c, 0x28, 0x60, 0x61, 0x7c, 0xf0, 0xbe, 0xdb, 0x9e, 0xe3, 0xd0, 0xa1, 0x29, 0xd0, 0x20, 0xdb, 0xe0, 0x91, 0x23, 0x6e, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x0d, 0x0b, 0xb3, 0x81, 0x1a, 0x16, 0x76, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x0d, 0x0b, 0xe9, 0xc1, 0xc3, 0x77, 0xdc, 0x86, 0xdd, 0x60, 0xac, 0xa3, 0x6d, 0x88, 0xe1, 0xb0, 0x0b, 0xb7, 0xe1, 0x68, 0x3f, 0x08, 0x4a, 0xef, 0x43, 0x9b, 0xc7, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x8e, 0x85, 0x64, 0xa0, 0x8e, 0x85, 0xd1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x1d, 0x0b, 0xd1, 0x40, 0x1d, 0x0b, 0x8b, 0x83, 0x77, 0xbf, 0xf8, 0x0c, 0xb2, 0x0d, 0xde, 0x19, 0xe4, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xd4, 0xb1, 0x30, 0x19, 0xa8, 0x63, 0x61, 0x73, 0x30, 0x34, 0x7f, 0x0f, 0xcd, 0x5f, 0x8e, 0xc7, 0xc7, 0xe3, 0x41, 0xb0, 0xb8, 0xc1, 0xdb, 0x24, 0x62, 0x06, 0xfc, 0xb9, 0xb7, 0xb0, 0xf5, 0x20, 0x00, 0xee, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xe2, 0x45, 0x74, 0x60, 0x13, 0x23, 0x6e, 0xd8, 0x85, 0xdb, 0xe0, 0x7d, 0x02, 0x3a, 0x87, 0x68, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x2c, 0x5e, 0xc4, 0x0f, 0x2c, 0x5e, 0x84, 0xe1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xe2, 0x45, 0x08, 0x06, 0x16, 0x2f, 0x42, 0x3a, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0xfb, 0x04, 0x74, 0x36, 0x78, 0x9f, 0x80, 0xce, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0x3c, 0x3a, 0xca, 0x6d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0xbc, 0x08, 0xf1, 0xc0, 0xe2, 0x45, 0xd8, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x7e, 0x83, 0xf6, 0x25, 0x98, 0x0e, 0x9e, 0x94, 0x7e, 0x75, 0xe8, 0xa0, 0x31, 0xec, 0xc2, 0x6d, 0xf0, 0x30, 0x02, 0x9d, 0x43, 0x34, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x36, 0x2f, 0xe2, 0x07, 0x16, 0x30, 0x42, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x79, 0x11, 0xb2, 0x81, 0xcd, 0x8b, 0x30, 0x18, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0x61, 0x04, 0x3a, 0x1b, 0x3c, 0x8c, 0x40, 0xe7, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0xde, 0x00, 0xe6, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xac, 0x5e, 0x84, 0x6c, 0x60, 0xff, 0x22, 0xa4, 0xc3, 0x2e, 0xec, 0xc2, 0x6d, 0xf0, 0x8a, 0xa9, 0xa0, 0x43, 0x23, 0xc1, 0x0d, 0x31, 0x1c, 0x76, 0xe1, 0x36, 0x78, 0x6e, 0xc7, 0xcd, 0xa1, 0x91, 0xe0, 0x86, 0x18, 0x0e, 0xbb, 0x70, 0x8b, 0x81, 0x8f, 0x56, 0x36, 0xb6, 0x1e, 0x1a, 0x09, 0x6e, 0x88, 0xe1, 0x70, 0x8b, 0x81, 0x4f, 0xf6, 0xa6, 0x57, 0x1e, 0x1a, 0x09, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xac, 0x5e, 0x84, 0x7c, 0x60, 0xf5, 0x22, 0x0c, 0x07, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0xbf, 0xc1, 0xea, 0x4d, 0xb4, 0x83, 0x92, 0xa1, 0xe9, 0xd0, 0x41, 0x63, 0xd8, 0x85, 0xdb, 0xe0, 0x09, 0x8e, 0x44, 0x87, 0x46, 0x82, 0x0b, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xdd, 0x8b, 0x30, 0x1c, 0xd8, 0xbd, 0x08, 0x0d, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x86, 0xdf, 0xe0, 0xb8, 0xd7, 0x7b, 0xf0, 0xea, 0x45, 0x81, 0x43, 0x07, 0x8d, 0x61, 0x17, 0x6e, 0x83, 0x27, 0x38, 0x12, 0x1d, 0x84, 0x14, 0xf8, 0xc1, 0x58, 0x18, 0x1d, 0x76, 0xe1, 0x36, 0x78, 0x18, 0x1e, 0xd1, 0xa1, 0x91, 0xe0, 0x82, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xf9, 0x22, 0x0c, 0x07, 0x96, 0x2f, 0x42, 0xc3, 0xc1, 0x0b, 0xf4, 0xdc, 0x86, 0x5d, 0xb8, 0x0d, 0x1e, 0x86, 0x47, 0x74, 0x10, 0x52, 0xe0, 0x07, 0x63, 0x61, 0x74, 0xd8, 0x85, 0xdb, 0xe0, 0xf1, 0x07, 0x44, 0x87, 0x46, 0x82, 0x0b, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xed, 0x8b, 0x30, 0x1c, 0xd8, 0xbe, 0x08, 0x0d, 0x07, 0x2f, 0xd0, 0x73, 0x1b, 0x76, 0xe1, 0x36, 0x78, 0xfc, 0x01, 0xd1, 0x41, 0x48, 0x81, 0x1f, 0x8c, 0x85, 0xd1, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x7e, 0x11, 0x86, 0x03, 0xeb, 0x17, 0xa1, 0x61, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0xf0, 0x1b, 0x3c, 0xe2, 0xa0, 0xe7, 0xe0, 0x89, 0xb1, 0x0b, 0x87, 0x0e, 0x1a, 0xc3, 0x2e, 0xdc, 0x06, 0x0f, 0x03, 0x9f, 0x39, 0x08, 0x29, 0xf0, 0x83, 0xb1, 0x30, 0x3a, 0xec, 0xc2, 0x6d, 0xf0, 0x24, 0x03, 0x9d, 0x43, 0x34, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x36, 0x30, 0xe2, 0x07, 0x36, 0x30, 0xc2, 0x70, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x03, 0x23, 0x04, 0x03, 0x1b, 0x18, 0x21, 0x1d, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0x49, 0x06, 0x3a, 0x1b, 0x3c, 0xc9, 0x40, 0xe7, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0xde, 0x3c, 0xe9, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x6c, 0x60, 0x84, 0x78, 0x60, 0x03, 0x23, 0xec, 0x0e, 0x5e, 0xa0, 0xe7, 0x36, 0xec, 0xc2, 0x6d, 0xf0, 0x10, 0x04, 0x9d, 0x43, 0x34, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x56, 0x30, 0xe2, 0x07, 0x56, 0x30, 0xc2, 0x70, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x05, 0x23, 0x04, 0x03, 0x2b, 0x18, 0x21, 0x1d, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0x21, 0x08, 0x3a, 0x1b, 0x3c, 0x04, 0x41, 0xe7, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0xde, 0x02, 0xea, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xac, 0x60, 0x84, 0x78, 0x60, 0x05, 0x23, 0xec, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0xbf, 0xc1, 0x1b, 0xd5, 0x79, 0x06, 0xc9, 0x40, 0x59, 0x3b, 0x1e, 0x1f, 0x3a, 0x68, 0x0c, 0xbb, 0x70, 0x1b, 0x3c, 0x41, 0x41, 0xe7, 0x10, 0xcd, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1d, 0x8c, 0xf8, 0x81, 0x1d, 0x8c, 0x30, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xd8, 0xc1, 0x08, 0xc1, 0xc0, 0x0e, 0x46, 0x48, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x78, 0x82, 0x82, 0xce, 0x06, 0x4f, 0x50, 0xd0, 0x39, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x97, 0xba, 0xba, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x3b, 0x18, 0x21, 0x1e, 0xd8, 0xc1, 0x08, 0xbb, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0xc3, 0x6f, 0xd0, 0x72, 0xfe, 0xd2, 0x20, 0x19, 0x38, 0xba, 0x8e, 0xc7, 0x87, 0x0e, 0x1a, 0xc3, 0x2e, 0xdc, 0x06, 0xaf, 0x5f, 0xd0, 0x39, 0x44, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x09, 0x23, 0x7e, 0x60, 0x09, 0x23, 0x0c, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x96, 0x30, 0x42, 0x30, 0xb0, 0x84, 0x11, 0xd2, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x5e, 0xbf, 0xa0, 0xb3, 0xc1, 0xeb, 0x17, 0x74, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0xe0, 0x1d, 0xbd, 0x6e, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x12, 0x46, 0x88, 0x07, 0x96, 0x30, 0xc2, 0xee, 0xe0, 0x19, 0x8e, 0x6e, 0xc3, 0x2e, 0xdc, 0x06, 0x6f, 0x6e, 0xd0, 0x39, 0x44, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x0b, 0x23, 0x7e, 0x60, 0x0b, 0x23, 0x0c, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb6, 0x30, 0x42, 0x30, 0xb0, 0x85, 0x11, 0xd2, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0xde, 0xdc, 0xa0, 0xb3, 0xc1, 0x9b, 0x1b, 0x74, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0xe0, 0x7d, 0xc9, 0x6e, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x16, 0x46, 0x88, 0x07, 0xb6, 0x30, 0xc2, 0x6e, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0xf0, 0x1b, 0xba, 0x98, 0x1c, 0x94, 0x0c, 0x4d, 0x87, 0x0e, 0x1a, 0xc3, 0x2e, 0xdc, 0x06, 0x0f, 0x7c, 0xd0, 0x39, 0x44, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x0d, 0x23, 0x7e, 0x60, 0x0d, 0x23, 0x0c, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd6, 0x30, 0x42, 0x30, 0xb0, 0x86, 0x11, 0xd2, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x1e, 0xf8, 0xa0, 0xb3, 0xc1, 0x03, 0x1f, 0x74, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0xe0, 0x7d, 0xd7, 0x6e, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x1a, 0x46, 0x88, 0x07, 0xd6, 0x30, 0xc2, 0x6e, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0xf0, 0x1b, 0x3c, 0x59, 0x6f, 0xe0, 0xe0, 0xfc, 0x44, 0x7b, 0xe8, 0xa0, 0x31, 0xec, 0xc2, 0x6d, 0xf0, 0xb4, 0x08, 0x9d, 0x43, 0x34, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf6, 0x30, 0xe2, 0x07, 0xf6, 0x30, 0xc2, 0x70, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x0f, 0x23, 0x04, 0x03, 0x7b, 0x18, 0x21, 0x1d, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0x69, 0x11, 0x3a, 0x1b, 0x3c, 0x2d, 0x42, 0xe7, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0xde, 0x5a, 0xee, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xec, 0x61, 0x84, 0x78, 0x60, 0x0f, 0x23, 0xec, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0xbf, 0xc1, 0xeb, 0x5e, 0x7a, 0x0e, 0x4a, 0x86, 0xa6, 0x43, 0x07, 0x8d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x11, 0x23, 0x7e, 0x60, 0x11, 0x23, 0x0c, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x16, 0x31, 0x42, 0x30, 0xb0, 0x88, 0x11, 0xd2, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x1e, 0x35, 0xa1, 0xb3, 0xc1, 0xa3, 0x26, 0x74, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0xe0, 0x9d, 0xf2, 0x6e, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x22, 0x46, 0x88, 0x07, 0x16, 0x31, 0xc2, 0x6e, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0xf0, 0x1b, 0x34, 0xf0, 0xc2, 0x74, 0x50, 0x32, 0x34, 0x1d, 0x3a, 0x68, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x04, 0x8b, 0x1b, 0xbc, 0xfc, 0xcd, 0xad, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x4f, 0x11, 0x1d, 0xd8, 0xac, 0x88, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd6, 0x29, 0xa2, 0x07, 0x8f, 0x19, 0x78, 0x1b, 0x76, 0x61, 0x17, 0x6e, 0x31, 0xf0, 0xe7, 0xc2, 0xf0, 0xde, 0x43, 0x34, 0x37, 0xc4, 0x70, 0xd8, 0x0d, 0x96, 0x58, 0x5a, 0x6d, 0x88, 0xe1, 0xb0, 0x0b, 0xb7, 0x18, 0xf8, 0x6e, 0x65, 0x61, 0xf2, 0x21, 0x9a, 0x1b, 0x62, 0x38, 0xec, 0x06, 0x0f, 0xda, 0x1a, 0xda, 0x10, 0xc3, 0x61, 0x37, 0x78, 0x48, 0x06, 0xd6, 0x86, 0x18, 0x0e, 0xbb, 0x70, 0x8b, 0x01, 0x9e, 0x6d, 0x65, 0x73, 0x73, 0x2d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0xe5, 0x21, 0x9a, 0x1b, 0x62, 0x38, 0xec, 0x06, 0xcb, 0x6c, 0x90, 0x36, 0xc4, 0x70, 0xd8, 0x0d, 0x96, 0x01, 0x22, 0x6d, 0x88, 0xe1, 0xb0, 0x0b, 0xb7, 0x18, 0xf8, 0x73, 0x74, 0x75, 0xe2, 0x21, 0x9a, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x2d, 0x1e, 0x24, 0xc5, 0x03, 0x1f, 0xa2, 0xb9, 0x21, 0x86, 0xc3, 0x2e, 0xdc, 0xe2, 0x41, 0x0b, 0xfd, 0xa4, 0x87, 0x68, 0x6e, 0x88, 0xe1, 0xb0, 0x0b, 0xb7, 0x18, 0xf8, 0x6e, 0x6f, 0x6f, 0xee, 0x21, 0x9a, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x2d, 0x06, 0xfe, 0x5c, 0x99, 0x1b, 0x79, 0x88, 0xe6, 0x86, 0x18, 0x1e, 0xbc, 0x7b, 0x3d, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x9f, 0x22, 0x7e, 0x60, 0x9f, 0x22, 0x0c, 0x06, 0xc1, 0x06, 0x4f, 0xe3, 0x72, 0x3b, 0x34, 0x6a, 0x19, 0x76, 0x61, 0x37, 0x78, 0xb9, 0x54, 0xd0, 0x86, 0x18, 0x0e, 0xbb, 0x70, 0x1b, 0x3c, 0xb7, 0xe3, 0xe6, 0x10, 0xcd, 0x0d, 0x31, 0x1c, 0x76, 0xe1, 0x36, 0x78, 0x8b, 0x9b, 0xdb, 0x21, 0x9a, 0x1b, 0x62, 0x38, 0xdc, 0x06, 0x6f, 0x7e, 0x73, 0x3b, 0x44, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xa1, 0x22, 0x7e, 0x60, 0xa1, 0x22, 0x0c, 0x06, 0xc1, 0x06, 0x2f, 0x9e, 0x73, 0x3b, 0x34, 0x6a, 0x19, 0x76, 0x61, 0x37, 0x78, 0x89, 0xda, 0xd0, 0x86, 0x18, 0x0e, 0xbb, 0xc1, 0x43, 0x43, 0x82, 0x36, 0xc4, 0x70, 0xd8, 0x0d, 0x1e, 0x51, 0x12, 0xb4, 0x21, 0x86, 0xc3, 0x6e, 0xf0, 0x1a, 0xca, 0xa1, 0x0d, 0x31, 0x1c, 0x76, 0x83, 0x25, 0x96, 0x56, 0x1b, 0x62, 0x38, 0xec, 0x06, 0x0f, 0xda, 0x1a, 0xda, 0x10, 0xc3, 0x61, 0x37, 0x78, 0xd9, 0xf5, 0xd0, 0x86, 0x18, 0x0e, 0xbb, 0xc1, 0xa3, 0x81, 0x87, 0x36, 0xc4, 0x70, 0xd8, 0x0d, 0x1e, 0x83, 0x47, 0xb4, 0x21, 0x86, 0xc3, 0x6e, 0xf0, 0xf8, 0xa1, 0xa0, 0x0d, 0x31, 0x1c, 0x76, 0x83, 0xf7, 0xa4, 0x06, 0x6d, 0x88, 0xe1, 0xb0, 0x1b, 0x3c, 0xf8, 0x80, 0x68, 0x43, 0x0c, 0x87, 0xdb, 0xe0, 0x09, 0x8e, 0x44, 0x87, 0x68, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x6c, 0x54, 0xc4, 0x0f, 0x6c, 0x54, 0x84, 0xc1, 0x20, 0xd8, 0xe0, 0x41, 0x7a, 0x6e, 0x87, 0x46, 0x2d, 0xc3, 0x2e, 0xec, 0x06, 0xef, 0xdd, 0xc1, 0xd8, 0x10, 0xc3, 0x61, 0x37, 0x78, 0xf4, 0x58, 0xd0, 0x86, 0x18, 0x0e, 0xbb, 0xc1, 0xcb, 0xd5, 0x82, 0x36, 0xc4, 0x70, 0xd8, 0x0d, 0xde, 0xc9, 0x16, 0xb4, 0x21, 0x86, 0xc3, 0x6e, 0xf0, 0x72, 0xb8, 0xa0, 0x0d, 0x31, 0x1c, 0x76, 0x83, 0xb7, 0xeb, 0x97, 0x6d, 0x88, 0xe1, 0xb0, 0x1b, 0xbc, 0xfc, 0xc6, 0x6c, 0x43, 0x0c, 0x0f, 0x5e, 0x39, 0x5e, 0xb6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x52, 0x11, 0x3f, 0xb0, 0x52, 0x11, 0x06, 0x83, 0x60, 0x83, 0x17, 0xab, 0xba, 0x1d, 0x1a, 0xb5, 0x0c, 0xbb, 0xb0, 0x1b, 0x2c, 0xb1, 0xb4, 0xda, 0x10, 0xc3, 0x61, 0x37, 0x78, 0xd0, 0xd6, 0xd0, 0x86, 0x18, 0x0e, 0xbb, 0xc1, 0x43, 0x32, 0xb0, 0x36, 0xc4, 0x70, 0xd8, 0x85, 0xdb, 0xe0, 0xd1, 0x45, 0x58, 0x87, 0x68, 0x6e, 0x88, 0xe1, 0xb0, 0x1b, 0xbc, 0x2d, 0x05, 0x6b, 0x43, 0x0c, 0x87, 0xdd, 0xe0, 0x85, 0xff, 0x57, 0x1b, 0x62, 0x78, 0xf0, 0x12, 0xf7, 0xab, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9d, 0x8a, 0xf8, 0x81, 0x9d, 0x8a, 0x30, 0x18, 0x04, 0x1b, 0xbc, 0x27, 0xd7, 0xed, 0xd0, 0xa8, 0x65, 0xd8, 0x85, 0xdd, 0x60, 0x89, 0xa5, 0xd5, 0x86, 0x18, 0x0e, 0xbb, 0x70, 0x1b, 0x3c, 0x0c, 0x7c, 0xe6, 0x10, 0xcd, 0x0d, 0x31, 0x1c, 0x76, 0x83, 0x07, 0x6d, 0x0d, 0x6d, 0x88, 0xe1, 0xb0, 0x0b, 0xb7, 0x18, 0xf8, 0x66, 0x6c, 0x75, 0xe2, 0x21, 0x9a, 0x1b, 0x62, 0x78, 0xf0, 0x76, 0x8b, 0xb7, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa5, 0x8a, 0xf8, 0x81, 0xa5, 0x8a, 0x30, 0x18, 0x04, 0x1b, 0xbc, 0xca, 0xd1, 0xed, 0xd0, 0xa8, 0x65, 0xd8, 0x85, 0xdd, 0xe0, 0x4d, 0x6c, 0x3d, 0x1b, 0x62, 0x38, 0xec, 0x06, 0x0f, 0x31, 0xec, 0xd9, 0x10, 0xc3, 0xe1, 0x36, 0x78, 0x3d, 0x67, 0xcf, 0x21, 0x9a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x5b, 0x15, 0xf1, 0x03, 0x5b, 0x15, 0x61, 0x30, 0x08, 0x36, 0x78, 0x05, 0xb5, 0xdb, 0xa1, 0x51, 0xcb, 0xb0, 0x0b, 0xbb, 0xc1, 0x0b, 0xa7, 0x83, 0x36, 0xc4, 0x70, 0xd8, 0x0d, 0x96, 0x58, 0x5a, 0x6d, 0x88, 0xe1, 0xb0, 0x1b, 0x3c, 0x68, 0x6b, 0x68, 0x43, 0x0c, 0x87, 0xdd, 0xe0, 0x99, 0xde, 0x41, 0x07, 0xef, 0xce, 0x78, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0xab, 0x88, 0x1f, 0x58, 0xab, 0x08, 0x83, 0x41, 0xb0, 0xc1, 0x2b, 0xc4, 0xdd, 0x0e, 0x8d, 0x5a, 0x86, 0x5d, 0xd8, 0x85, 0x5b, 0x0c, 0xfc, 0x30, 0xb9, 0xb7, 0xfb, 0x10, 0xcd, 0x0d, 0x31, 0x1c, 0x6e, 0x31, 0xf0, 0xc3, 0xec, 0xde, 0xee, 0x43, 0x34, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf6, 0x2a, 0xe2, 0x07, 0xf6, 0x2a, 0xc2, 0x60, 0x10, 0x6c, 0xf0, 0x22, 0x78, 0xb7, 0x43, 0xa3, 0x96, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xb1, 0x22, 0x7e, 0x60, 0xb1, 0x22, 0x0c, 0x06, 0xc1, 0x06, 0xaf, 0xe9, 0x77, 0x3b, 0x34, 0x6a, 0x39, 0x34, 0x7f, 0x39, 0x1e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf3, 0x1f, 0xb2, 0x81, 0xf9, 0x0f, 0x77, 0x0e, 0x1a, 0x16, 0xb9, 0x3f, 0x34, 0x7f, 0x39, 0x1e, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x2c, 0x22, 0x44, 0x07, 0x76, 0x29, 0xe2, 0x16, 0x17, 0x04, 0x8b, 0x33, 0x33, 0x33, 0xb3, 0x41, 0x1a, 0x40, 0xc6, 0xc1, 0x83, 0xd2, 0x37, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x62, 0x42, 0xdc, 0xc0, 0x86, 0x42, 0xfc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x97, 0x10, 0x77, 0xf0, 0xae, 0xbf, 0xb7, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc5, 0x84, 0x90, 0x0e, 0x2c, 0x26, 0x84, 0xc5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x98, 0x10, 0x92, 0x83, 0xb7, 0x11, 0xbe, 0x1d, 0x3c, 0xa3, 0x60, 0x68, 0x90, 0x6d, 0xf0, 0xd0, 0xbe, 0xb7, 0x41, 0xb6, 0xc1, 0x33, 0x00, 0xdf, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x36, 0x13, 0x42, 0x3a, 0xb0, 0x99, 0x10, 0x16, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x66, 0x42, 0x48, 0x0e, 0x5e, 0xbb, 0xf8, 0x76, 0xf0, 0xf8, 0x65, 0xa3, 0x41, 0xb6, 0xc1, 0x43, 0xfb, 0xde, 0x06, 0xd9, 0x06, 0xcf, 0x00, 0x7c, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x4d, 0x08, 0xe9, 0xc0, 0x6a, 0x42, 0x18, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xab, 0x09, 0x21, 0x39, 0x78, 0xbf, 0xe4, 0xdb, 0x20, 0xd8, 0xe0, 0x39, 0xd4, 0x4a, 0x87, 0x4e, 0x44, 0x83, 0x6c, 0x83, 0x87, 0xf6, 0xbd, 0x0d, 0xb2, 0x0d, 0x9e, 0x01, 0xf8, 0xb6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x9b, 0x10, 0xd2, 0x81, 0xdd, 0x84, 0xb0, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x76, 0x13, 0x42, 0x72, 0xf0, 0x70, 0xcd, 0xb7, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x37, 0x21, 0xc4, 0x03, 0xbb, 0x09, 0x61, 0x72, 0xf0, 0x7e, 0x84, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xdd, 0x84, 0xb0, 0x19, 0xd8, 0x4d, 0x08, 0xb3, 0x83, 0xf3, 0x13, 0xed, 0x71, 0xe8, 0x60, 0x09, 0xff, 0xcf, 0x20, 0xdb, 0xe0, 0xa1, 0x7d, 0x6f, 0x83, 0x6c, 0x83, 0x67, 0x00, 0xbe, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x2c, 0x27, 0x84, 0x74, 0x60, 0x39, 0x21, 0xcc, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe5, 0x84, 0x90, 0x1c, 0x3c, 0x57, 0xf5, 0x6d, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0xf0, 0x1b, 0x3c, 0xaf, 0x97, 0xe9, 0x60, 0x2c, 0x43, 0x1d, 0xbc, 0xe7, 0x30, 0x63, 0x90, 0x6d, 0xf0, 0xd0, 0xbe, 0xb7, 0x41, 0xb6, 0xc1, 0x33, 0x00, 0xdf, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb6, 0x13, 0x42, 0x3a, 0xb0, 0x9d, 0x10, 0x66, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x76, 0x42, 0x48, 0x0e, 0x5e, 0x3f, 0xfb, 0x36, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0xf8, 0x0d, 0x9e, 0xd7, 0xcb, 0x74, 0xb0, 0x24, 0x87, 0xe6, 0xe0, 0x21, 0x9e, 0x19, 0x83, 0x6c, 0x83, 0x87, 0xf6, 0xbd, 0x0d, 0xb2, 0x0d, 0x9e, 0x01, 0xf8, 0xb6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x9e, 0x10, 0xd2, 0x81, 0xf5, 0x84, 0xb0, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd6, 0x13, 0x42, 0x72, 0xf0, 0xa0, 0xde, 0xb7, 0x41, 0xb0, 0xc1, 0xc3, 0xf6, 0x7a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xbc, 0xe1, 0x6f, 0xe3, 0x20, 0xa5, 0x74, 0xe6, 0x38, 0x34, 0xc8, 0x36, 0x78, 0x68, 0xdf, 0xdb, 0x20, 0xdb, 0xe0, 0x19, 0x80, 0x6f, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xfb, 0x09, 0x21, 0x1d, 0xd8, 0x4f, 0x08, 0x83, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x3f, 0x21, 0x24, 0x07, 0x8f, 0x36, 0x7e, 0x1b, 0x04, 0x1b, 0x3c, 0x6c, 0xaf, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc3, 0xd4, 0x2f, 0x0e, 0x1a, 0x15, 0x67, 0x3a, 0x0e, 0x0d, 0xb2, 0x0d, 0x1e, 0xda, 0xf7, 0x36, 0xc8, 0x36, 0x78, 0x06, 0xe0, 0xdb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0xa0, 0x10, 0xd2, 0x81, 0x05, 0x85, 0xb0, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x16, 0x14, 0x42, 0x72, 0xf0, 0x30, 0xe8, 0xb7, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x64, 0xe0, 0x5c, 0x3a, 0xac, 0xd0, 0x1e, 0x3c, 0x54, 0x2f, 0xec, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x56, 0x42, 0x48, 0x07, 0xb6, 0x12, 0xc2, 0x66, 0x10, 0x6c, 0xf0, 0xb0, 0xbd, 0x9e, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x03, 0x1e, 0xba, 0x30, 0xba, 0x34, 0xf2, 0x90, 0xaa, 0x39, 0x0e, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x04, 0x8b, 0x1b, 0x3c, 0xa9, 0xab, 0x63, 0x83, 0xb7, 0x2e, 0x5c, 0xb5, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x36, 0x11, 0x42, 0x3a, 0xb0, 0x89, 0x10, 0xc6, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x86, 0xdf, 0xe0, 0xf1, 0x10, 0x57, 0x07, 0xe9, 0x5f, 0x0a, 0x87, 0x46, 0x2d, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x8f, 0x21, 0x6e, 0x60, 0x93, 0x21, 0x8c, 0x06, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0xc8, 0x10, 0x77, 0xf0, 0xac, 0xf3, 0xb7, 0x41, 0xb0, 0xb8, 0xc1, 0x0b, 0xf7, 0xde, 0x5a, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x36, 0x19, 0xe2, 0x0e, 0x9e, 0x75, 0xfe, 0xb6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0xc9, 0x10, 0x3b, 0xb0, 0xc9, 0x10, 0x7f, 0x88, 0xe1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x26, 0x43, 0x08, 0x06, 0x36, 0x19, 0x42, 0x3a, 0x1e, 0xac, 0x09, 0xad, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x36, 0x19, 0x42, 0x3c, 0xb0, 0xc9, 0x10, 0x36, 0x87, 0xbd, 0xc2, 0xe3, 0xf1, 0xf1, 0x78, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x81, 0x21, 0x6e, 0x60, 0x85, 0x21, 0x74, 0x0d, 0x82, 0x0d, 0x46, 0x96, 0xd9, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0xc1, 0x10, 0x77, 0xf0, 0x0c, 0xfd, 0xb7, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x85, 0x21, 0xee, 0xe0, 0x19, 0xfa, 0x6f, 0xc3, 0xaf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0xc2, 0x10, 0x82, 0x81, 0x15, 0x86, 0x30, 0x1a, 0x7e, 0x43, 0x72, 0x69, 0xf8, 0x0d, 0x52, 0x54, 0x09, 0x8e, 0x6f, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x0a, 0x43, 0x58, 0x0d, 0xac, 0x30, 0x84, 0xaa, 0xe1, 0x37, 0x24, 0x97, 0x86, 0x5f, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xac, 0x30, 0x84, 0xd9, 0xc0, 0x0a, 0x43, 0xe8, 0x19, 0x24, 0x03, 0xb1, 0x3b, 0x24, 0x97, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x56, 0x18, 0x42, 0xd1, 0xc0, 0x0a, 0x43, 0x68, 0x3a, 0xa4, 0x0e, 0x8e, 0x43, 0xc7, 0xb7, 0x43, 0x4f, 0xd4, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0xf1, 0x78, 0x05, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xd8, 0x48, 0x08, 0xf1, 0xc0, 0x46, 0x42, 0xe8, 0x19, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x36, 0x12, 0x42, 0x3e, 0xb0, 0x91, 0x10, 0x36, 0x07, 0x2f, 0xd1, 0x28, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x23, 0x21, 0x8c, 0x06, 0x36, 0x12, 0xc2, 0xf0, 0xe0, 0xf5, 0x30, 0x44, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x36, 0x12, 0x42, 0xc3, 0xc0, 0x46, 0x42, 0x68, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x36, 0x12, 0xc2, 0x72, 0x60, 0x23, 0x21, 0xd4, 0x0c, 0x82, 0x0d, 0x9e, 0x34, 0x6d, 0x76, 0x68, 0xd4, 0x72, 0x68, 0xfe, 0x72, 0x3c, 0x3e, 0x0e, 0x1d, 0x1a, 0xb5, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x04, 0x1b, 0xbc, 0x6b, 0xfd, 0x6d, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x2c, 0x25, 0xc4, 0x0d, 0x2c, 0x25, 0x84, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x93, 0x10, 0x77, 0xf0, 0x96, 0x15, 0xb8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa5, 0x84, 0xf8, 0x81, 0xa5, 0x84, 0x90, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x4b, 0x09, 0xb1, 0x07, 0x0f, 0x82, 0x81, 0x3b, 0x78, 0xf0, 0xda, 0xcf, 0x20, 0xdb, 0xe0, 0x71, 0x29, 0x70, 0x83, 0x6c, 0x83, 0xe7, 0xaf, 0xc0, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x4b, 0x09, 0x21, 0x1f, 0x58, 0x4a, 0x08, 0xdb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x29, 0x21, 0x84, 0x07, 0x8f, 0xbb, 0x81, 0x1b, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x96, 0x12, 0xc2, 0x60, 0x60, 0x29, 0x21, 0x8c, 0x0e, 0xde, 0x8f, 0x50, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x94, 0x10, 0x56, 0x03, 0x4b, 0x09, 0x61, 0x7a, 0xf0, 0xde, 0xb4, 0x80, 0xe3, 0xd0, 0xa1, 0x83, 0xc6, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x59, 0x88, 0x1b, 0xd8, 0x5e, 0x88, 0x1f, 0x04, 0x1b, 0x8c, 0x2c, 0xb3, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x67, 0x21, 0xee, 0xe0, 0x31, 0x46, 0x70, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x69, 0x21, 0xee, 0xe0, 0x31, 0x46, 0x70, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xd2, 0x42, 0x48, 0x06, 0x96, 0x16, 0xc2, 0x6a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x69, 0x21, 0x44, 0x03, 0x4b, 0x0b, 0x21, 0x3b, 0xc4, 0x70, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x69, 0x21, 0x84, 0x03, 0x4b, 0x0b, 0x61, 0x71, 0xb0, 0xdc, 0xd2, 0x6a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x5a, 0x08, 0x93, 0x81, 0xa5, 0x85, 0x30, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x96, 0x16, 0xc2, 0xe6, 0xe0, 0x61, 0x57, 0x70, 0x07, 0x2d, 0x48, 0x34, 0x2d, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xad, 0x85, 0xb8, 0x83, 0xc7, 0x18, 0xc1, 0x0d, 0xb2, 0x0d, 0xde, 0xa7, 0x04, 0xb7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0xb5, 0x10, 0xf2, 0x81, 0xad, 0x85, 0x30, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb6, 0x16, 0x42, 0x72, 0xf0, 0x60, 0x30, 0xb8, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x6b, 0x21, 0x0c, 0x06, 0xb6, 0x16, 0xc2, 0xe8, 0xa0, 0x09, 0x72, 0x91, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xad, 0x85, 0xb0, 0x1a, 0xd8, 0x5a, 0x08, 0xcb, 0x41, 0x32, 0xa8, 0x3a, 0x24, 0x97, 0x8e, 0x43, 0x87, 0x34, 0xdc, 0x20, 0xdb, 0xe0, 0xa5, 0x5b, 0x70, 0x83, 0x6c, 0x83, 0xf7, 0x29, 0xc1, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x7b, 0x0b, 0x21, 0x19, 0x58, 0x5e, 0x08, 0xd9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0xb6, 0x10, 0x92, 0x83, 0xc7, 0xc2, 0xc1, 0x0d, 0xbb, 0xc1, 0x93, 0xa4, 0xaa, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf6, 0x16, 0x42, 0x3a, 0xb0, 0xb7, 0x10, 0x66, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x7b, 0x0b, 0x21, 0x1e, 0xd8, 0x5b, 0x08, 0x9b, 0x61, 0x17, 0x6e, 0x43, 0x23, 0xc1, 0x83, 0x45, 0xa8, 0x56, 0x07, 0x6b, 0x55, 0xad, 0x06, 0xd9, 0x06, 0x6f, 0xa6, 0x83, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf6, 0x16, 0xc2, 0x68, 0x60, 0x6f, 0x21, 0xac, 0x0e, 0x1e, 0xde, 0xd4, 0x33, 0xec, 0xc2, 0x2d, 0x1e, 0x94, 0xf7, 0x71, 0x87, 0x46, 0x82, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x8b, 0x0b, 0x21, 0x1d, 0x58, 0x5c, 0x08, 0xb3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc5, 0x85, 0x10, 0x0f, 0x2c, 0x2e, 0x84, 0xcd, 0xb0, 0x0b, 0xb7, 0xa1, 0x91, 0xe0, 0xc1, 0xab, 0xff, 0xe0, 0x36, 0x78, 0xf5, 0x1f, 0xdc, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0x3c, 0x21, 0x10, 0x6e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x5c, 0x08, 0xa3, 0x81, 0xc5, 0x85, 0xb0, 0x3a, 0x78, 0x78, 0x53, 0xcf, 0xb0, 0x0b, 0xb7, 0x18, 0xf8, 0x63, 0x6f, 0x6e, 0xf4, 0xa1, 0x91, 0xe0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xe6, 0x42, 0x48, 0x07, 0x36, 0x17, 0x42, 0xdb, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xe6, 0x42, 0x88, 0x07, 0x36, 0x17, 0xc2, 0x66, 0xd8, 0x85, 0xdb, 0xd0, 0x48, 0xf0, 0xe0, 0x7d, 0x8c, 0x70, 0x1b, 0xbc, 0x8f, 0x11, 0xee, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0x1e, 0xde, 0x08, 0x37, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x6c, 0x2e, 0x84, 0xe5, 0xc0, 0xe6, 0x42, 0x28, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x36, 0x17, 0xc2, 0xe8, 0xe0, 0xdd, 0x97, 0x70, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xe6, 0x42, 0x98, 0x0e, 0x6c, 0x2e, 0x84, 0xa6, 0x83, 0xf4, 0x2f, 0x85, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xcd, 0x85, 0x50, 0x35, 0xb0, 0xb9, 0x10, 0xba, 0x0e, 0xa9, 0x83, 0xe3, 0xd0, 0xa1, 0x05, 0xd8, 0xb0, 0x0b, 0xb7, 0xc1, 0x2b, 0xe8, 0xdf, 0x0e, 0x8d, 0x04, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x56, 0x17, 0x42, 0x3a, 0xb0, 0xba, 0x10, 0xe6, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xab, 0x0b, 0x21, 0x1e, 0x58, 0x5d, 0x08, 0x9b, 0x61, 0x17, 0x6e, 0x43, 0x23, 0xc1, 0x83, 0x57, 0xd0, 0xbf, 0x6d, 0xf0, 0x0a, 0xfa, 0xb7, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x78, 0x5b, 0x29, 0xdc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0xba, 0x10, 0x86, 0x03, 0xab, 0x0b, 0x61, 0x3d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xac, 0x2e, 0x84, 0xd1, 0xc1, 0xcb, 0x5e, 0xe1, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x1d, 0x24, 0xc4, 0x00, 0x1c, 0x5a, 0x80, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xbb, 0x0b, 0x21, 0x1d, 0xd8, 0x5d, 0x08, 0xe3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xdd, 0x85, 0x10, 0x0f, 0xec, 0x2e, 0x84, 0xcd, 0xb0, 0x0b, 0xb7, 0xa1, 0x91, 0xe0, 0xc1, 0x72, 0x4b, 0xab, 0x83, 0xf5, 0x9f, 0x56, 0x83, 0x6c, 0x83, 0xa7, 0xd1, 0xc2, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xbb, 0x0b, 0x61, 0x3a, 0xb0, 0xbb, 0x10, 0xb6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xee, 0x42, 0x18, 0x1d, 0xbc, 0xbe, 0x17, 0x6e, 0x10, 0x6c, 0xd8, 0x2b, 0x3c, 0xb4, 0x00, 0x3b, 0x34, 0x7f, 0x39, 0x1e, 0x1f, 0x8f, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x96, 0x1a, 0xe2, 0x06, 0x56, 0x29, 0xe2, 0x07, 0xc1, 0x06, 0x23, 0xcb, 0x6c, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xd8, 0x6a, 0x88, 0x3b, 0x78, 0x3a, 0x31, 0xdc, 0xe2, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x5a, 0x43, 0x58, 0x0c, 0xac, 0x35, 0x84, 0xc6, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0xd6, 0x10, 0xb6, 0x03, 0x6b, 0x0d, 0xa1, 0x70, 0xf8, 0x05, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x5a, 0x43, 0x18, 0x0f, 0xac, 0x35, 0x84, 0xb6, 0x41, 0x32, 0x10, 0xbb, 0xc3, 0x0a, 0xed, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x5a, 0x43, 0xa8, 0x1b, 0x58, 0x6b, 0x08, 0x7d, 0x87, 0x54, 0xcd, 0x71, 0xe8, 0x90, 0x3a, 0x58, 0x1c, 0x04, 0x0b, 0xb2, 0x0d, 0x9e, 0xbf, 0x0c, 0x37, 0x08, 0x16, 0x7e, 0x43, 0x72, 0xe9, 0xe0, 0x89, 0xce, 0x70, 0x87, 0x46, 0x2d, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x15, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x56, 0x1b, 0x42, 0x3e, 0xb0, 0xda, 0x10, 0xba, 0x06, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd5, 0x86, 0xb0, 0x1b, 0x58, 0x6d, 0x08, 0x55, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x6a, 0x43, 0x18, 0x0e, 0xac, 0x36, 0x84, 0x9e, 0x83, 0x13, 0x26, 0xfa, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x6a, 0x43, 0x28, 0x1a, 0x58, 0x6d, 0x08, 0x4d, 0x87, 0x54, 0xcd, 0x71, 0xe8, 0xd0, 0xa8, 0xe5, 0xd0, 0xfc, 0xe5, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xec, 0x37, 0xc4, 0x0f, 0xac, 0x38, 0x84, 0xd1, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xd8, 0x6f, 0x08, 0xd9, 0xc0, 0x7e, 0x43, 0x18, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xfb, 0x0d, 0x21, 0x3f, 0x78, 0xaf, 0x3b, 0xdc, 0xa1, 0x5f, 0xed, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0xe0, 0x10, 0x7f, 0xf0, 0xf6, 0x75, 0xb8, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xc3, 0x21, 0xfe, 0xe0, 0xed, 0xeb, 0x70, 0x83, 0x60, 0x83, 0x77, 0xad, 0xbf, 0x2d, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x2b, 0x0e, 0xf1, 0x07, 0x6f, 0x5f, 0x87, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x71, 0x08, 0xc1, 0xc0, 0x8a, 0x43, 0x48, 0x0e, 0x31, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x71, 0x08, 0xd1, 0xc0, 0x8a, 0x43, 0xc8, 0x0f, 0x96, 0x5b, 0x5a, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x2b, 0x0e, 0x61, 0x30, 0xb0, 0xe2, 0x10, 0x36, 0x87, 0xbd, 0xc2, 0xe3, 0xf1, 0xf1, 0x78, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xcf, 0x21, 0x7e, 0x60, 0xeb, 0x21, 0x24, 0x83, 0x60, 0x83, 0x91, 0x65, 0xb6, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x2c, 0x3a, 0xc4, 0x1f, 0x3c, 0xc7, 0x20, 0x6e, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x2c, 0x3a, 0x84, 0x6c, 0x60, 0xd1, 0x21, 0x74, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x2c, 0x3a, 0x84, 0x70, 0x60, 0xd1, 0x21, 0x74, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x8b, 0x0e, 0x61, 0x70, 0xf0, 0x7c, 0x87, 0xb8, 0xe1, 0x17, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x8b, 0x0e, 0x61, 0x31, 0xb0, 0xe8, 0x10, 0x0a, 0x0e, 0xd6, 0x47, 0x3a, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x2c, 0x3a, 0x84, 0x86, 0x81, 0x45, 0x87, 0x50, 0x71, 0x48, 0x1d, 0x1c, 0x87, 0x8e, 0x6f, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xa2, 0x43, 0x28, 0x19, 0x58, 0x74, 0x08, 0x95, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xa2, 0x43, 0x28, 0x3a, 0x78, 0x14, 0x47, 0xdc, 0xf0, 0x2b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x2c, 0x3a, 0x84, 0xae, 0x81, 0x45, 0x87, 0x50, 0x76, 0xd0, 0x82, 0x44, 0xd3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0xe8, 0x10, 0xda, 0x06, 0x16, 0x1d, 0x42, 0xe3, 0xf0, 0x1b, 0x2c, 0x83, 0x17, 0x38, 0xbe, 0x1d, 0x7a, 0xa2, 0x2e, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x9b, 0x0e, 0xf1, 0x07, 0xcf, 0x31, 0x88, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x56, 0x1d, 0xe2, 0x0f, 0x9e, 0x63, 0x10, 0x37, 0x08, 0x36, 0x78, 0xd7, 0xfa, 0xdb, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0xeb, 0x10, 0x7f, 0xf0, 0x1c, 0x83, 0xb8, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0xec, 0x10, 0x92, 0x81, 0x65, 0x87, 0x30, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xcb, 0x0e, 0x21, 0x1a, 0x58, 0x76, 0x08, 0xe9, 0x21, 0xfe, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xcb, 0x0e, 0x21, 0x1e, 0x58, 0x76, 0x08, 0x9b, 0x43, 0xea, 0xe0, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x6c, 0x3b, 0xc4, 0x1f, 0x3c, 0xc7, 0x20, 0x6e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x77, 0x88, 0x3f, 0x78, 0x8e, 0x41, 0xdc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xba, 0x43, 0xc8, 0x06, 0xd6, 0x1d, 0xc2, 0xec, 0x20, 0xa4, 0xc0, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x7d, 0x87, 0xf8, 0x83, 0xe7, 0x18, 0xc4, 0x0d, 0xbb, 0x41, 0xf3, 0xb7, 0x2a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x0b, 0x0f, 0x61, 0x30, 0xb0, 0xf0, 0x10, 0x96, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x0b, 0x0f, 0x61, 0x31, 0xb0, 0xf0, 0x10, 0x66, 0x07, 0x8b, 0x50, 0xad, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x85, 0x87, 0xb0, 0x1b, 0x58, 0x78, 0x08, 0xc3, 0x43, 0x0c, 0x87, 0x5d, 0xb8, 0x0d, 0x5e, 0xfd, 0x07, 0x77, 0x10, 0x64, 0xf1, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x1b, 0x0f, 0x61, 0x30, 0xb0, 0xf1, 0x10, 0x96, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x1b, 0x0f, 0x61, 0x31, 0xb0, 0xf1, 0x10, 0x66, 0x07, 0xaf, 0xfe, 0x83, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x36, 0x1e, 0xc2, 0x6e, 0x60, 0xe3, 0x21, 0x0c, 0x0f, 0x31, 0x1c, 0x76, 0xe1, 0x36, 0x78, 0x1f, 0x23, 0xdc, 0x41, 0x90, 0xc5, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xac, 0x3c, 0x84, 0xc1, 0xc0, 0xca, 0x43, 0x28, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x79, 0x08, 0x8b, 0x81, 0x95, 0x87, 0x30, 0x3b, 0x78, 0x1f, 0x23, 0xdc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0xf2, 0x10, 0x76, 0x03, 0x2b, 0x0f, 0xa1, 0x6f, 0x10, 0x2d, 0x28, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x56, 0x1e, 0xc2, 0x7e, 0x60, 0xe5, 0x21, 0xd4, 0x1d, 0x0c, 0xd6, 0xd8, 0xe3, 0xf9, 0xb0, 0x0b, 0xb7, 0xc1, 0x2b, 0xe8, 0xdf, 0x0e, 0x82, 0x2c, 0x7e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xe7, 0x21, 0x0c, 0x06, 0x76, 0x1e, 0x42, 0xcd, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xce, 0x43, 0x58, 0x0c, 0xec, 0x3c, 0x84, 0xd9, 0xc1, 0x2b, 0xe8, 0xdf, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9d, 0x87, 0xb0, 0x1b, 0xd8, 0x79, 0x08, 0x2d, 0x07, 0x83, 0x35, 0x76, 0x90, 0xad, 0xa1, 0xfd, 0xfa, 0x70, 0x1b, 0x2c, 0xb7, 0xb4, 0x3a, 0x08, 0xb2, 0xf8, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xe9, 0x21, 0x0c, 0x06, 0x96, 0x1e, 0x42, 0xdd, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xd2, 0x43, 0x58, 0x0c, 0x2c, 0x3d, 0x84, 0xd9, 0xc1, 0xfb, 0x18, 0xe1, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa5, 0x87, 0xb0, 0x1b, 0x58, 0x7a, 0x08, 0x6d, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xe9, 0x21, 0x0c, 0x07, 0x96, 0x1e, 0xc2, 0xf6, 0x90, 0x98, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x7a, 0x08, 0xe3, 0x81, 0xa5, 0x87, 0x50, 0x76, 0x30, 0x58, 0x63, 0x8f, 0x43, 0xc7, 0xe3, 0xe3, 0xf1, 0xf1, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xd8, 0x7d, 0x88, 0x1f, 0xd8, 0xa4, 0x08, 0xc9, 0xe2, 0x82, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x19, 0x22, 0x24, 0x03, 0xfb, 0x10, 0x21, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd6, 0x21, 0x42, 0x3a, 0xb0, 0x0e, 0x11, 0xc6, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xeb, 0x10, 0x21, 0x1e, 0x58, 0x87, 0x08, 0x9b, 0x83, 0xe5, 0x96, 0x56, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x3a, 0x44, 0x18, 0x0d, 0xac, 0x43, 0x84, 0xed, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x0e, 0x11, 0xa6, 0x07, 0x6f, 0x78, 0x8c, 0x3b, 0xb4, 0x00, 0x5a, 0x1c, 0x04, 0x0b, 0xb2, 0x0d, 0xde, 0x4f, 0x18, 0x37, 0xec, 0x06, 0x6f, 0xae, 0x56, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x86, 0x08, 0xe9, 0xc0, 0x32, 0x44, 0x98, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x2c, 0x43, 0x84, 0x78, 0x60, 0x19, 0x22, 0x6c, 0x0e, 0xde, 0xc0, 0xad, 0x34, 0xc8, 0x36, 0x78, 0x2d, 0x65, 0xdc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x0c, 0x11, 0x46, 0x03, 0xcb, 0x10, 0x61, 0x75, 0x30, 0x34, 0x7f, 0x87, 0x5d, 0xb8, 0x0d, 0x5e, 0x41, 0xff, 0x76, 0x88, 0xe6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x36, 0x44, 0x48, 0x07, 0xb6, 0x21, 0x42, 0xd3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x36, 0x44, 0x88, 0x07, 0xb6, 0x21, 0xc2, 0x66, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x57, 0xd0, 0xbf, 0x1d, 0xbc, 0x75, 0x15, 0x6e, 0x90, 0x6d, 0xf0, 0xc0, 0xcf, 0xb8, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x1b, 0x22, 0x0c, 0x07, 0xb6, 0x21, 0x42, 0xd1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x0d, 0x11, 0x46, 0x07, 0x4f, 0x48, 0x8d, 0x1b, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb6, 0x21, 0xc2, 0x72, 0x60, 0x1b, 0x22, 0xac, 0x07, 0xc9, 0xc0, 0x70, 0x1d, 0x1c, 0xb3, 0x8a, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xd8, 0x86, 0x08, 0xf3, 0x81, 0x6d, 0x88, 0x50, 0x31, 0x48, 0x36, 0x58, 0x73, 0x81, 0x74, 0x70, 0x12, 0x3a, 0x1e, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x0d, 0x11, 0x3a, 0x06, 0xb6, 0x21, 0x42, 0xcf, 0x20, 0xd9, 0xe0, 0xa5, 0x12, 0x1e, 0x07, 0x27, 0xa1, 0xe3, 0xe3, 0xd0, 0xa1, 0x83, 0xc6, 0x20, 0xdb, 0xe0, 0x8d, 0x87, 0x71, 0x0b, 0xb2, 0x0d, 0x9e, 0xa2, 0x18, 0x77, 0xb0, 0x68, 0xd3, 0x6a, 0x90, 0x6d, 0xf0, 0xc6, 0xc3, 0xb8, 0x41, 0xb6, 0xc1, 0xb3, 0x1f, 0xe3, 0x06, 0xd9, 0x06, 0x0f, 0x6a, 0x8c, 0x1b, 0x04, 0x1b, 0x8c, 0x37, 0x9d, 0x43, 0x07, 0x8d, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xfe, 0x43, 0x48, 0x06, 0x16, 0x20, 0x42, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xec, 0x3f, 0x84, 0x78, 0x60, 0xff, 0x21, 0x4c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfd, 0x87, 0x90, 0x1e, 0x3c, 0xcb, 0x38, 0x6e, 0x10, 0x6c, 0xf0, 0x2e, 0x75, 0xb2, 0x43, 0xa3, 0x96, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x8a, 0x44, 0x48, 0x06, 0x16, 0x29, 0x42, 0x36, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x56, 0x24, 0x42, 0x3a, 0xb0, 0x22, 0x11, 0xe6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x8a, 0x44, 0xd8, 0x1c, 0xbc, 0x02, 0x3a, 0x6e, 0xf8, 0x05, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x8a, 0x44, 0x18, 0x0d, 0xac, 0x48, 0x84, 0xe1, 0xc1, 0xab, 0x57, 0x05, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x56, 0x24, 0xc2, 0x72, 0x60, 0x45, 0x22, 0xac, 0x07, 0xc9, 0xa0, 0xea, 0x90, 0xad, 0x38, 0x0e, 0x1d, 0xdf, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1d, 0x89, 0x90, 0x1c, 0x3c, 0xa9, 0x39, 0x6e, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xec, 0x48, 0x84, 0x74, 0x60, 0x47, 0x22, 0xf4, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xec, 0x48, 0x84, 0x78, 0x60, 0x47, 0x22, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1d, 0x89, 0x90, 0x1f, 0x3c, 0x67, 0x3c, 0x6e, 0xf8, 0x0d, 0xd2, 0xa7, 0x4f, 0x8e, 0x6f, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x8e, 0x44, 0x58, 0x0e, 0xec, 0x48, 0x84, 0x9a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x47, 0x22, 0x4c, 0x0f, 0xde, 0x94, 0x1e, 0x37, 0xfc, 0x06, 0x49, 0x65, 0x05, 0xc7, 0xb7, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x49, 0x22, 0x24, 0x07, 0x4f, 0x6a, 0x8e, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb6, 0x24, 0x42, 0x72, 0xf0, 0xa4, 0xe6, 0xb8, 0xe1, 0x37, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x6b, 0x12, 0x21, 0x39, 0x78, 0x52, 0x73, 0xdc, 0xf0, 0x0b, 0xa2, 0x05, 0xdb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x4f, 0x22, 0x64, 0x03, 0xfb, 0x12, 0xe1, 0xcc, 0xb0, 0x1b, 0x8c, 0x75, 0xb4, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x3d, 0x89, 0x50, 0x30, 0xb0, 0x27, 0x11, 0x1a, 0x0e, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x16, 0x25, 0x42, 0x76, 0xf0, 0x22, 0xfc, 0xb8, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x28, 0x11, 0x36, 0x03, 0x8b, 0x12, 0xa1, 0xe4, 0x60, 0x64, 0xf6, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x9b, 0x12, 0x21, 0x3b, 0x78, 0x11, 0x7e, 0xdc, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x9b, 0x12, 0x21, 0x1f, 0xd8, 0x94, 0x08, 0xf3, 0xe1, 0x16, 0x03, 0x9e, 0xb0, 0xb3, 0x32, 0x37, 0xfa, 0x20, 0xa4, 0xc0, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x56, 0x25, 0x42, 0x76, 0xf0, 0x22, 0xfc, 0xb8, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x56, 0x25, 0x42, 0x3e, 0xb0, 0x2a, 0x11, 0x2a, 0x86, 0xdb, 0xe0, 0x8d, 0x28, 0x57, 0x07, 0x81, 0x1b, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x2b, 0x11, 0xb2, 0x83, 0x17, 0xe1, 0xc7, 0x0d, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x2b, 0x11, 0xf2, 0x81, 0x5d, 0x89, 0x50, 0x37, 0xdc, 0x62, 0x80, 0x17, 0x1d, 0x9a, 0x5c, 0x59, 0x18, 0x59, 0x0b, 0xd9, 0x9b, 0x5b, 0x79, 0xb0, 0x76, 0x07, 0x61, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x57, 0x22, 0x14, 0x0e, 0xec, 0x4a, 0x84, 0xce, 0x0d, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x76, 0x25, 0x42, 0xe3, 0xc1, 0x1b, 0x33, 0xe4, 0x8e, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb6, 0x44, 0xc8, 0x0e, 0x5e, 0x84, 0x1f, 0xb7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x2d, 0x11, 0xf2, 0x81, 0x6d, 0x89, 0x30, 0x38, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x97, 0x08, 0xd9, 0xc1, 0x8b, 0xf0, 0xe3, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd6, 0x25, 0x42, 0x3e, 0xb0, 0x2e, 0x11, 0x56, 0x07, 0x8f, 0x3e, 0x90, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x97, 0x08, 0xbb, 0x81, 0x75, 0x89, 0x30, 0x3f, 0x08, 0xb2, 0xf8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x75, 0x89, 0x50, 0x30, 0xb0, 0x2e, 0x11, 0x5a, 0x0e, 0xde, 0x88, 0x72, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xec, 0x4b, 0x84, 0xec, 0xe0, 0x45, 0xf8, 0x71, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x5f, 0x22, 0x84, 0x03, 0xfb, 0x12, 0x61, 0x39, 0x48, 0x06, 0x75, 0x87, 0x6c, 0xc5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xfb, 0x12, 0x61, 0x3a, 0xb0, 0x2f, 0x11, 0xaa, 0x0e, 0x96, 0x22, 0xa8, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x5f, 0x22, 0x74, 0x0d, 0xec, 0x4b, 0x84, 0xe6, 0x83, 0xb5, 0x3b, 0x08, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf6, 0x25, 0x42, 0xf5, 0xc0, 0xbe, 0x44, 0xf8, 0x72, 0xe8, 0x21, 0x74, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x56, 0x25, 0x42, 0xe1, 0xc0, 0xaa, 0x44, 0xe8, 0xdc, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x55, 0x22, 0x34, 0x1e, 0xbc, 0x4f, 0x48, 0xee, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x6c, 0x4a, 0x84, 0xc2, 0x81, 0x4d, 0x89, 0xd0, 0xb9, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xa6, 0x44, 0x68, 0x3c, 0x78, 0x10, 0x92, 0xdc, 0x71, 0xe8, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xac, 0x4c, 0x84, 0xe4, 0xe0, 0x49, 0xcd, 0x71, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x65, 0x22, 0xcc, 0x06, 0x56, 0x26, 0x42, 0xe7, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x99, 0x08, 0xbb, 0x81, 0x95, 0x89, 0xd0, 0x72, 0x88, 0xe6, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xca, 0x44, 0xa8, 0x19, 0x58, 0x99, 0x08, 0x95, 0x87, 0x71, 0x39, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x5b, 0x13, 0x21, 0x39, 0x78, 0x52, 0x73, 0xdc, 0xf0, 0x0b, 0xa2, 0x05, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x6d, 0x22, 0x64, 0x03, 0x9b, 0x13, 0x61, 0x37, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd6, 0x26, 0x42, 0x3e, 0xb0, 0x36, 0x11, 0x36, 0x83, 0x64, 0x40, 0xa1, 0xde, 0x77, 0x70, 0xce, 0x3b, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x6f, 0x22, 0xa4, 0x03, 0x7b, 0x13, 0x61, 0x72, 0xd8, 0x2b, 0x1c, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x39, 0x11, 0xb2, 0x83, 0x17, 0x79, 0xc9, 0x1d, 0x84, 0x14, 0xf8, 0x71, 0xe8, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x2c, 0x4f, 0x84, 0xe4, 0xe0, 0x49, 0xcd, 0x71, 0xc3, 0x6e, 0xd0, 0xfc, 0xad, 0xca, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xf6, 0x44, 0x18, 0x0d, 0x6c, 0x4f, 0x84, 0xbe, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xed, 0x89, 0xb0, 0x1a, 0xd8, 0x9e, 0x08, 0x25, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xdb, 0x13, 0x61, 0x36, 0xb0, 0x3d, 0x11, 0xb6, 0x87, 0xbd, 0xc2, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xed, 0x89, 0x30, 0x1e, 0xd8, 0x9e, 0x08, 0x0d, 0x07, 0xef, 0xaf, 0x56, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb6, 0x27, 0x42, 0xc5, 0xc0, 0xf6, 0x44, 0xe8, 0x38, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xd8, 0x9e, 0x08, 0x2d, 0x03, 0xdb, 0x13, 0xa1, 0xee, 0x90, 0xb5, 0x1b, 0x76, 0x83, 0xe7, 0x36, 0xc5, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xac, 0x4f, 0x84, 0xd1, 0xc0, 0xfa, 0x44, 0xe8, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x9f, 0x08, 0xab, 0x81, 0xf5, 0x89, 0x50, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x3e, 0x11, 0x66, 0x03, 0xeb, 0x13, 0x61, 0x7b, 0xd8, 0x2b, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x9f, 0x08, 0xe3, 0x81, 0xf5, 0x89, 0xd0, 0x70, 0xf0, 0xfe, 0x6a, 0xa5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x7d, 0x22, 0x54, 0x0c, 0xac, 0x4f, 0x84, 0x8e, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf5, 0x89, 0xd0, 0x32, 0xb0, 0x3e, 0x11, 0xea, 0x0e, 0x59, 0xbb, 0x61, 0x37, 0x78, 0x53, 0x59, 0xdc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xfe, 0x44, 0x18, 0x0d, 0xec, 0x4f, 0x84, 0xf6, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfd, 0x89, 0xb0, 0x1a, 0xd8, 0x9f, 0x08, 0x95, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xfb, 0x13, 0x61, 0x36, 0xb0, 0x3f, 0x11, 0xb6, 0x87, 0xbd, 0xc2, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfd, 0x89, 0x30, 0x1e, 0xd8, 0x9f, 0x08, 0x0d, 0x07, 0xaf, 0xa0, 0x7f, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf6, 0x27, 0x42, 0xc5, 0xc0, 0xfe, 0x44, 0x68, 0x3c, 0x18, 0xac, 0xb1, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xfe, 0x44, 0xe8, 0x1c, 0xd8, 0x9f, 0x08, 0xe5, 0x87, 0xac, 0xdd, 0xb0, 0x1b, 0xbc, 0xff, 0x2d, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x81, 0x22, 0x8c, 0x06, 0x16, 0x28, 0x42, 0xff, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x02, 0x45, 0x58, 0x0d, 0x2c, 0x50, 0x84, 0xd2, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x05, 0x8a, 0x30, 0x1b, 0x58, 0xa0, 0x08, 0xdb, 0xc3, 0x5e, 0xe1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x02, 0x45, 0x18, 0x0f, 0x2c, 0x50, 0x84, 0x86, 0x83, 0xe5, 0x96, 0x56, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x02, 0x45, 0xa8, 0x18, 0x58, 0xa0, 0x08, 0x9d, 0x07, 0x83, 0x35, 0x76, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0xa0, 0x08, 0xad, 0x03, 0x0b, 0x14, 0xa1, 0xfe, 0x90, 0xb5, 0x1b, 0x64, 0x6b, 0x68, 0xbf, 0x7e, 0xf0, 0xe0, 0xab, 0xb8, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x89, 0x22, 0x64, 0x03, 0x7b, 0x14, 0x21, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x6c, 0x51, 0x84, 0xf5, 0xc0, 0x16, 0x45, 0x68, 0x3b, 0x18, 0xac, 0xb1, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x1a, 0x45, 0x58, 0x0f, 0xac, 0x51, 0x84, 0xca, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x35, 0x8a, 0x30, 0x1f, 0x58, 0xa3, 0x08, 0x7d, 0x87, 0x1e, 0x42, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x1a, 0x45, 0x28, 0x1c, 0x58, 0xa3, 0x08, 0x8d, 0x87, 0x18, 0x1e, 0xcf, 0x8f, 0xc7, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x2b, 0x11, 0x21, 0x19, 0xd8, 0x8d, 0x08, 0xab, 0x41, 0xb0, 0x38, 0x73, 0xf0, 0xc2, 0xbd, 0xb7, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x27, 0x22, 0x24, 0x07, 0x8f, 0x44, 0x96, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x96, 0x22, 0x42, 0x72, 0xf0, 0x48, 0x64, 0xb9, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x14, 0x11, 0xd2, 0x81, 0xb5, 0x88, 0x90, 0x0f, 0xc2, 0xc5, 0x81, 0x48, 0x6c, 0x98, 0xfb, 0x0d, 0x9e, 0x12, 0x65, 0xb4, 0xa1, 0x8e, 0xac, 0x61, 0x86, 0xd6, 0x30, 0x71, 0x1b, 0xa6, 0x73, 0xc3, 0x0c, 0xad, 0x61, 0x86, 0x36, 0x78, 0xd9, 0x06, 0xc6, 0x86, 0x13, 0x61, 0x83, 0x97, 0x6d, 0x60, 0xac, 0x06, 0xeb, 0x0d, 0xa7, 0xc6, 0x0d, 0x5a, 0xe3, 0x1b, 0x99, 0x15, 0xb8, 0xff, 0x37, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x01, 0xbf, 0x2d, 0xad, 0xad, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x0a, 0x10, 0xb2, 0x81, 0x0a, 0x10, 0xbe, 0x6c, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0xdb, 0x96, 0xd6, 0x56, 0x46, 0x97, 0x07, 0x57, 0x46, 0x06, 0x42, 0x16, 0x46, 0x17, 0xb6, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x15, 0x20, 0x84, 0x03, 0x15, 0x20, 0x0c, 0x0e, 0x4a, 0x6f, 0xfa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x02, 0x84, 0xc5, 0x40, 0x05, 0x08, 0xab, 0x83, 0x56, 0xcc, 0x49, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x0a, 0x10, 0x66, 0x03, 0x15, 0x20, 0x4c, 0x37, 0xfc, 0x3b, 0xbf, 0x80, 0xff, 0x36, 0x46, 0x37, 0x57, 0x2b, 0x60, 0xd8, 0xbf, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0xc6, 0xab, 0x6d, 0x90, 0x7a, 0x51, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x41, 0xaf, 0xb6, 0x41, 0xc9, 0xc2, 0x3e, 0xcb, 0x2c, 0x80, 0x17, 0x5a, 0x59, 0x18, 0x59, 0x99, 0x5c, 0x0b, 0x5b, 0xda, 0x1c, 0xbd, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xf0, 0x9e, 0x76, 0xb9, 0x06, 0xe0, 0x3d, 0xcc, 0x0d, 0xe4, 0x4d, 0x8e, 0xac, 0x4c, 0xae, 0x8c, 0x0c, 0x84, 0x2d, 0x6d, 0x8e, 0x0e, 0xe4, 0xcd, 0x0c, 0x04, 0x8d, 0x8e, 0x0e, 0x0e, 0x04, 0xad, 0x2c, 0x8c, 0xac, 0x4c, 0x6e, 0x6e, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0x3d, 0xed, 0x72, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x95, 0xf7, 0x6a, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x05, 0xfb, 0x6a, 0x07, 0x21, 0x65, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x05, 0xc0, 0xda, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x28, 0x58, 0xdb, 0xf0, 0xe7, 0xd2, 0x06, 0x45, 0xeb, 0xc9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xa6, 0xc0, 0xda, 0xc1, 0x79, 0x76, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xb8, 0x85, 0xb5, 0x0d, 0x7f, 0x2e, 0x6d, 0x70, 0xa2, 0xf5, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x47, 0x58, 0x3b, 0x38, 0xcf, 0x8e, 0xd6, 0x0a, 0xe0, 0x59, 0xe7, 0x06, 0x17, 0x36, 0xb6, 0xd6, 0x82, 0x56, 0x16, 0x46, 0x56, 0x26, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xbc, 0x56, 0x60, 0xae, 0x01, 0x78, 0x84, 0x0b, 0x93, 0x9b, 0x2b, 0x03, 0x41, 0x2b, 0x0b, 0x23, 0x2b, 0x93, 0x03, 0x31, 0x4b, 0x2b, 0x63, 0x23, 0x03, 0xb1, 0x0b, 0x63, 0xab, 0x2b, 0x9b, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x83, 0x58, 0xdb, 0xe0, 0x80, 0x45, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x29, 0x0b, 0xdb, 0x86, 0x5f, 0x94, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc2, 0x17, 0xd2, 0x81, 0xc2, 0x17, 0x56, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x44, 0xeb, 0xb1, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x85, 0x2f, 0x6c, 0x0e, 0x1e, 0xee, 0x30, 0x77, 0x70, 0x9e, 0x1d, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x7e, 0x61, 0xdb, 0xf0, 0x17, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xf9, 0x42, 0x3a, 0x50, 0xf9, 0x42, 0xcd, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0xbe, 0x10, 0x0f, 0x54, 0xbe, 0x30, 0x39, 0x28, 0x9b, 0x30, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xca, 0x17, 0x36, 0x03, 0x95, 0x2f, 0xb4, 0x6c, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xe5, 0x0b, 0xa3, 0x81, 0xca, 0x17, 0x86, 0x07, 0x21, 0x65, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0xbe, 0xb0, 0x1c, 0xa8, 0x7c, 0xa1, 0x64, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2a, 0x5f, 0x98, 0x0e, 0x54, 0xbe, 0xb0, 0x3e, 0x28, 0x11, 0xeb, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xca, 0x17, 0xe6, 0x03, 0x95, 0x2f, 0x14, 0x1c, 0x9c, 0x67, 0x47, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xca, 0x17, 0x1a, 0x06, 0x2a, 0x5f, 0xe8, 0x38, 0x38, 0xcf, 0x8e, 0x56, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x4d, 0x32, 0x6c, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xa1, 0x86, 0xed, 0x60, 0xe5, 0x81, 0xec, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xa9, 0x39, 0x6c, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x8c, 0x87, 0x6d, 0xc3, 0xdb, 0x3a, 0x1b, 0x2c, 0x83, 0x74, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x78, 0x20, 0xb6, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x3b, 0xc4, 0x76, 0xb0, 0x0c, 0xfb, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xf0, 0x23, 0xb6, 0x83, 0x75, 0x0b, 0xc7, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xe8, 0x12, 0xdb, 0x86, 0xb7, 0x75, 0x06, 0xf8, 0xec, 0xc2, 0xd8, 0xea, 0xca, 0xe6, 0x5a, 0x66, 0x0d, 0x4e, 0xb4, 0x1e, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x1d, 0x13, 0x6b, 0x1b, 0xac, 0x10, 0x6a, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xda, 0x63, 0xed, 0x60, 0x3d, 0x30, 0xe8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x45, 0x1a, 0x6b, 0x1b, 0xde, 0xd6, 0x19, 0xe0, 0xa1, 0x7b, 0x5b, 0x2b, 0x73, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xd4, 0x62, 0x6d, 0xc3, 0xdb, 0x3a, 0x03, 0x78, 0xc6, 0xd5, 0xbd, 0xd1, 0x95, 0x91, 0xb5, 0xcc, 0xd1, 0xc9, 0xa5, 0xb9, 0x9d, 0xb5, 0x1a, 0xbc, 0x25, 0x68, 0x6e, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xe0, 0x2d, 0x41, 0x73, 0x0d, 0xc0, 0xc7, 0x8d, 0xcc, 0x0c, 0x0c, 0x48, 0x5c, 0xdd, 0x1b, 0x5d, 0x19, 0x19, 0xc8, 0x1c, 0x9d, 0x5c, 0x9a, 0xdb, 0xd9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xa7, 0xc8, 0xda, 0x06, 0x45, 0xa7, 0xf1, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x45, 0x25, 0x6b, 0x07, 0xcb, 0x2a, 0x41, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x4b, 0x59, 0x3b, 0x58, 0x8e, 0x2c, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xd7, 0xb2, 0xb6, 0x41, 0xd1, 0x69, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x0b, 0xcc, 0xda, 0xc1, 0x42, 0x4d, 0xd2, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xc3, 0x68, 0xd6, 0x36, 0x3c, 0x28, 0xb9, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x74, 0x5a, 0x3b, 0x48, 0x6c, 0xa9, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x2a, 0x6a, 0xed, 0x20, 0xb1, 0xa5, 0xaa, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x8a, 0x9b, 0xb5, 0x0d, 0x56, 0x08, 0x35, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xac, 0xb4, 0x76, 0xb0, 0xec, 0x18, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x80, 0x9f, 0xb5, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x1c, 0xb4, 0x76, 0xb0, 0xf0, 0x61, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xfe, 0xa2, 0xb5, 0x0d, 0x3f, 0xc2, 0x0c, 0x4e, 0x07, 0xcd, 0x25, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x56, 0x67, 0xed, 0xa0, 0xed, 0x2b, 0xd1, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xfb, 0xa8, 0xd6, 0x36, 0x38, 0xb1, 0xdf, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x73, 0xb5, 0x76, 0xb0, 0x50, 0x31, 0x74, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x6b, 0x6b, 0x6d, 0x83, 0x15, 0x42, 0x4d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0x07, 0xaf, 0x1d, 0xac, 0x07, 0x06, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xea, 0x72, 0x6d, 0x83, 0x15, 0x42, 0x4d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0xf2, 0xae, 0x1d, 0xac, 0x1d, 0x07, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xf0, 0x76, 0xed, 0x60, 0x2d, 0x0e, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xe9, 0x9a, 0x6b, 0x1b, 0xac, 0x10, 0x6a, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xf6, 0x74, 0xed, 0x60, 0x3d, 0x30, 0xe8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x21, 0xac, 0x6b, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xdc, 0x75, 0xed, 0x60, 0xc1, 0x46, 0xe8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x11, 0xb3, 0x6b, 0x1b, 0x7e, 0x84, 0x39, 0x78, 0xe9, 0xb0, 0x48, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x47, 0x8c, 0xae, 0x1d, 0xac, 0x71, 0x26, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xd7, 0x73, 0xed, 0x60, 0x9d, 0x34, 0x68, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xee, 0xb5, 0xb6, 0xc1, 0x0a, 0xa1, 0xa6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xd3, 0x25, 0xd7, 0x0e, 0xd6, 0x03, 0x83, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x73, 0xb8, 0xb6, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xeb, 0x13, 0xd7, 0x0e, 0x16, 0x6c, 0x84, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xe2, 0xb8, 0x76, 0xf0, 0xf2, 0xb9, 0xb9, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x13, 0x5b, 0xdb, 0x60, 0x85, 0x50, 0xd3, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xbd, 0x82, 0x6b, 0x07, 0xcb, 0x8e, 0x41, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xa8, 0x5b, 0xdb, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xe1, 0x77, 0x6b, 0x07, 0xab, 0xa0, 0x43, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0xe4, 0x5b, 0xdb, 0xf0, 0x2c, 0xde, 0xc1, 0x2b, 0xfe, 0xd6, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xc3, 0x6c, 0x6d, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0xa3, 0xad, 0x1d, 0xac, 0x2f, 0x05, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xb6, 0x6d, 0x6d, 0xc3, 0x8f, 0x30, 0x03, 0x5f, 0x87, 0x87, 0x82, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x53, 0xe2, 0xd6, 0x0e, 0x16, 0xea, 0xa1, 0x56, 0x1d, 0x4e, 0xb1, 0x05, 0x78, 0xe0, 0xc2, 0xd2, 0xe4, 0xe6, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x3a, 0xe3, 0xb5, 0x0d, 0x8a, 0x4e, 0xe3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x4b, 0x92, 0xd7, 0x0e, 0x96, 0x55, 0x82, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xd5, 0xbc, 0xb6, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0xb9, 0xf3, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x03, 0xf4, 0xda, 0x41, 0xd9, 0x54, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x19, 0xf5, 0xda, 0x06, 0x85, 0x60, 0xea, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xd4, 0xc0, 0xb0, 0x39, 0x78, 0x61, 0xf5, 0xda, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xd4, 0xc0, 0x30, 0x1a, 0xa8, 0x81, 0x61, 0x77, 0x50, 0x22, 0xd6, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x35, 0x30, 0x0c, 0x07, 0x6a, 0x60, 0x98, 0x1e, 0x9c, 0x67, 0x47, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1a, 0x18, 0xb6, 0x03, 0x35, 0x30, 0xac, 0x0f, 0xce, 0xb3, 0xa3, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x7d, 0xbd, 0xb6, 0x41, 0xd1, 0x69, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xa2, 0xf6, 0xda, 0xc1, 0x9a, 0xd9, 0xd0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x7b, 0xbd, 0xd7, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x5f, 0xf8, 0xda, 0xc1, 0x42, 0x4d, 0xd2, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x73, 0xcb, 0xd7, 0x36, 0x3c, 0x28, 0xb9, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x95, 0x5f, 0x3b, 0x48, 0x6c, 0xa9, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xae, 0x7e, 0xed, 0x20, 0xb1, 0xa5, 0xaa, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x36, 0xf4, 0xb5, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xb3, 0xbe, 0x76, 0xb0, 0x50, 0x31, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xb2, 0xf7, 0xb5, 0x83, 0x35, 0xce, 0xa4, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x89, 0xbf, 0x76, 0xd0, 0x00, 0x31, 0x68, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x55, 0xfc, 0x6b, 0x1b, 0xac, 0x10, 0x6a, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x0c, 0x85, 0xed, 0x60, 0x45, 0x45, 0xe8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xd5, 0x23, 0x6c, 0x07, 0x2f, 0xf2, 0x99, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xfc, 0x7f, 0x6d, 0x83, 0x15, 0x42, 0x4d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0x7d, 0xb0, 0x1d, 0xac, 0x07, 0x06, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xc5, 0x81, 0x6d, 0x83, 0x15, 0x42, 0x4d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0x68, 0xb0, 0x1d, 0xac, 0x1d, 0x07, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xad, 0x82, 0xed, 0x60, 0x31, 0xff, 0xe8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xc1, 0x11, 0x6c, 0x07, 0xeb, 0x16, 0x8e, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x6f, 0x80, 0x6d, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0x18, 0xb0, 0x1d, 0xac, 0x40, 0x29, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x4e, 0x81, 0xed, 0x60, 0xad, 0x42, 0x5d, 0x35, 0x6b, 0xf0, 0x5c, 0x9f, 0xb9, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xe7, 0xfa, 0xcc, 0x35, 0x80, 0xcf, 0x8d, 0xcc, 0x0c, 0x0c, 0x08, 0xdd, 0xdb, 0x5a, 0x99, 0xdb, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xca, 0x13, 0xdb, 0x06, 0x45, 0xa7, 0xf1, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xd1, 0x51, 0x6c, 0x07, 0xcb, 0x2a, 0x41, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0xb0, 0x62, 0x3b, 0x58, 0x8e, 0x2c, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x97, 0xc5, 0xb6, 0xc1, 0x89, 0xfd, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x16, 0x2e, 0xb6, 0x83, 0x85, 0xc9, 0xa4, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x55, 0x60, 0x6c, 0x1b, 0xac, 0x10, 0x6a, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xf1, 0x8d, 0xed, 0x60, 0x3d, 0x30, 0xe8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xc9, 0xab, 0x6c, 0x07, 0xab, 0x10, 0x44, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x3c, 0x65, 0x3b, 0x68, 0x15, 0x15, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xa8, 0x51, 0xb6, 0x83, 0x34, 0x3f, 0xd5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x23, 0x3e, 0xd9, 0x0e, 0x56, 0xf8, 0xa9, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xac, 0xc9, 0x76, 0xd0, 0x12, 0x3c, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x85, 0x96, 0x6c, 0x07, 0x8d, 0xcd, 0x5f, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x1a, 0xc9, 0x76, 0xb0, 0xc8, 0x19, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xb2, 0x46, 0xb6, 0x83, 0x06, 0xe0, 0x32, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x49, 0x64, 0x3b, 0x58, 0x06, 0x60, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x3b, 0x21, 0xdb, 0xc1, 0x62, 0xa1, 0xd0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x63, 0x01, 0xd9, 0x0e, 0xd6, 0xbe, 0x90, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xc7, 0xc7, 0x76, 0xd0, 0x1e, 0xf7, 0xe5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x31, 0x78, 0x6c, 0x07, 0x0b, 0x19, 0x44, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x9f, 0x63, 0x3b, 0x68, 0x8c, 0x4d, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x72, 0x35, 0xb6, 0x83, 0x36, 0x04, 0x30, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x39, 0x63, 0x3b, 0x48, 0xa3, 0x3d, 0x6a, 0xd6, 0xe0, 0x11, 0x38, 0x73, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x75, 0xb0, 0x6c, 0x1b, 0x14, 0x9d, 0xc6, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0xcc, 0xb2, 0x1d, 0xac, 0x6b, 0x25, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xea, 0x96, 0x6d, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0xe8, 0xb2, 0x1d, 0x2c, 0xd4, 0x24, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xc8, 0x97, 0x6d, 0xc3, 0x83, 0x92, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x86, 0x6f, 0xb6, 0x83, 0xc4, 0x96, 0xaa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x93, 0xc3, 0xd9, 0x0e, 0x12, 0x5b, 0xaa, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x07, 0x66, 0xdb, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb5, 0xc3, 0x6c, 0x07, 0x0b, 0x15, 0x43, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x3f, 0x66, 0xdb, 0x60, 0x85, 0x50, 0xd3, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xfd, 0xda, 0x6c, 0x07, 0xeb, 0x81, 0x41, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xb2, 0x66, 0x3b, 0x58, 0xe3, 0x4c, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xdf, 0x32, 0xdb, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x72, 0x66, 0x3b, 0x58, 0xb0, 0x11, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x9d, 0x34, 0xdb, 0xc1, 0xcb, 0xe7, 0xe6, 0xaa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xe3, 0xc9, 0xd9, 0x0e, 0x9a, 0x3e, 0xbe, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x15, 0x9d, 0x6d, 0xc3, 0xdb, 0x3a, 0x1b, 0x3c, 0x22, 0x72, 0xae, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x56, 0x00, 0xdf, 0xb9, 0xb4, 0x36, 0x38, 0xb6, 0xb2, 0x16, 0xb8, 0xb0, 0x3c, 0xb6, 0xb7, 0x30, 0x72, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xe0, 0x81, 0x15, 0x74, 0x0d, 0x80, 0x7f, 0x61, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x2c, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0x0f, 0xac, 0xa0, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x6b, 0x67, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x55, 0xf2, 0x6c, 0x1b, 0xfe, 0x5c, 0x1a, 0xc0, 0x5b, 0xae, 0x6c, 0x0e, 0xee, 0xcd, 0x6d, 0xae, 0xac, 0x05, 0xad, 0x2c, 0x8c, 0xac, 0x4c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x7e, 0x67, 0xdb, 0xf0, 0xef, 0xfc, 0x1a, 0x3c, 0x8b, 0x84, 0xae, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xc9, 0x67, 0xdb, 0xf0, 0xe7, 0xd2, 0x06, 0x07, 0x79, 0xb6, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x5c, 0x7b, 0xb6, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x5c, 0x7e, 0xb6, 0x83, 0xb2, 0x09, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x74, 0x80, 0xb6, 0x83, 0xa7, 0x9f, 0xcb, 0xd5, 0x0a, 0xf0, 0xb5, 0x95, 0xd1, 0xa1, 0xbd, 0x91, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xaf, 0x7e, 0xa1, 0x6b, 0x00, 0x9e, 0xcb, 0xf0, 0xd0, 0xc2, 0xea, 0xe6, 0xe8, 0xd2, 0xec, 0xca, 0x40, 0xd8, 0xd2, 0xe6, 0xe8, 0x40, 0xde, 0xcc, 0x40, 0xd0, 0xe8, 0xe8, 0xe0, 0x40, 0xec, 0xca, 0xe4, 0xc4, 0xe6, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x5e, 0xfd, 0x42, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x67, 0xd0, 0xb6, 0x41, 0xb0, 0x99, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xab, 0xd0, 0xb6, 0x21, 0x03, 0x3e, 0x38, 0x7d, 0xf0, 0x36, 0x84, 0xb6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x53, 0x22, 0xda, 0x36, 0x64, 0xc0, 0x07, 0xa7, 0x0f, 0xde, 0xef, 0xd0, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xcc, 0x45, 0xdb, 0x86, 0x0c, 0xf8, 0xe0, 0x74, 0xe0, 0x1d, 0x15, 0x51, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0x75, 0xb4, 0x6d, 0xc8, 0x80, 0x0f, 0x4e, 0x1f, 0x3c, 0x6e, 0xa3, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xf2, 0x91, 0xb6, 0x0d, 0x19, 0xf0, 0xc1, 0xe9, 0x83, 0x67, 0x86, 0xb4, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xa3, 0xd2, 0xb6, 0x21, 0x03, 0x3e, 0x38, 0x7d, 0xf0, 0x14, 0x94, 0xb6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xbb, 0x60, 0xda, 0x36, 0x64, 0xc0, 0x07, 0xa7, 0x0f, 0x9e, 0xe7, 0xd2, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x99, 0x4d, 0xdb, 0x86, 0x0c, 0xf8, 0xe0, 0x74, 0xe0, 0x41, 0x55, 0x51, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0xec, 0xb4, 0x6d, 0xc8, 0x80, 0x0f, 0x4e, 0x1f, 0x3c, 0xd3, 0x91, 0xab, 0x15, 0xc0, 0x67, 0xae, 0x8c, 0xae, 0x05, 0xad, 0x2c, 0x8c, 0xac, 0x4c, 0xde, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x78, 0xae, 0x13, 0x5d, 0x03, 0xe0, 0xd7, 0x5c, 0x19, 0xdd, 0x1c, 0x08, 0x1d, 0x5a, 0x19, 0x88, 0x5d, 0x18, 0x5b, 0x5d, 0x19, 0xc8, 0x9b, 0x19, 0x48, 0x98, 0x1b, 0x48, 0x1a, 0x5d, 0x59, 0x1b, 0x48, 0x9a, 0x1b, 0x08, 0x1d, 0x5a, 0x19, 0x08, 0x5a, 0x59, 0x18, 0x59, 0x99, 0x1c, 0x08, 0x5b, 0xda, 0x1c, 0xbd, 0x12, 0x80, 0x46, 0x54, 0x68, 0x69, 0x73, 0x20, 0x61, 0x64, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x69, 0x66, 0x20, 0x69, 0x74, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x6e, 0x27, 0x74, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0xae, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xab, 0x80, 0xda, 0x36, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xd4, 0xb6, 0x90, 0x0c, 0xd4, 0xb6, 0x50, 0xb5, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xb6, 0x85, 0x68, 0xa0, 0xb6, 0x85, 0xcd, 0x86, 0x3f, 0x97, 0x06, 0xf8, 0xd0, 0xca, 0xc2, 0xc8, 0xca, 0xe4, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x6d, 0x61, 0x71, 0xf0, 0xbc, 0x31, 0xba, 0x83, 0xf3, 0xec, 0xe8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xdb, 0xc2, 0x68, 0xa0, 0xb6, 0x85, 0xf1, 0x86, 0x3f, 0x97, 0x36, 0x38, 0xd1, 0x7a, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x6d, 0x0b, 0xd3, 0x83, 0x67, 0xa7, 0xd1, 0x1d, 0x9c, 0x67, 0x47, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xda, 0x16, 0xd6, 0x03, 0xb5, 0x2d, 0x34, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0xf7, 0xb4, 0xcb, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x6d, 0x0b, 0xf3, 0x83, 0x17, 0xbf, 0xd1, 0x6d, 0xf8, 0x77, 0x7e, 0x0d, 0xde, 0xd3, 0x2e, 0x57, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0x0e, 0xb5, 0x6d, 0xf8, 0x8b, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0x6e, 0x21, 0x19, 0x28, 0x6e, 0x61, 0xb5, 0xe1, 0xdf, 0xf9, 0x15, 0xc7, 0x39, 0x78, 0x4f, 0xbb, 0x5c, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x47, 0x18, 0xb5, 0x6d, 0x50, 0xc2, 0x63, 0x6e, 0xf0, 0x00, 0x3a, 0xba, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x6b, 0x92, 0xda, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xeb, 0x52, 0xdb, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x71, 0x6a, 0xdb, 0xf0, 0xb6, 0xce, 0x06, 0x8f, 0x23, 0xa3, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x78, 0xa8, 0xb6, 0x83, 0x75, 0x0b, 0xc7, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x3d, 0xd5, 0x76, 0x50, 0x50, 0x64, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x69, 0xd5, 0xb6, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x83, 0xb2, 0xda, 0x36, 0xfc, 0x9b, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xfc, 0x56, 0xdb, 0x86, 0xb7, 0x75, 0x36, 0x28, 0x5a, 0x4f, 0x06, 0x4f, 0x0f, 0x1e, 0x40, 0x47, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xef, 0xd5, 0x76, 0xf0, 0x28, 0x40, 0xba, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x93, 0xc3, 0xda, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x11, 0x59, 0xdb, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x36, 0x6b, 0x3b, 0x78, 0x14, 0x20, 0xdd, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x89, 0x69, 0x6d, 0x07, 0xeb, 0x16, 0x8e, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x8d, 0xad, 0x6d, 0xc3, 0xdb, 0x3a, 0x83, 0xd3, 0x07, 0x0f, 0xa0, 0xa3, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xec, 0xad, 0x6d, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0xc7, 0xb5, 0x6d, 0x78, 0x5b, 0xe7, 0xe0, 0xe9, 0x89, 0x74, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0xd2, 0xb5, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xf0, 0x00, 0x3a, 0xba, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x00, 0xbc, 0xb6, 0x83, 0x67, 0x50, 0xd2, 0xd5, 0xe1, 0x14, 0x5b, 0x83, 0x57, 0xb2, 0xf5, 0x6c, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xbc, 0x92, 0xad, 0xa7, 0x01, 0x78, 0x0a, 0x03, 0x99, 0x4b, 0x73, 0x3b, 0x63, 0x2b, 0x03, 0x41, 0xa3, 0xa3, 0x83, 0x03, 0x91, 0x2b, 0x8b, 0xab, 0x2b, 0x9b, 0xa3, 0xdb, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0x25, 0x5b, 0xcf, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x2e, 0x5f, 0xdb, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x0d, 0x6c, 0xdb, 0xf0, 0xe7, 0xd2, 0x06, 0xaf, 0x7e, 0xa1, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0xf9, 0x6b, 0xdb, 0xf0, 0xef, 0xfc, 0x1a, 0xbc, 0xfa, 0x85, 0xae, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x49, 0x6c, 0xdb, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0x00, 0xad, 0xa8, 0xd0, 0xca, 0x40, 0xea, 0xe4, 0xd8, 0x40, 0xd2, 0xe6, 0x40, 0xdc, 0xde, 0xe8, 0x40, 0xca, 0xe6, 0xc6, 0xc2, 0xe0, 0xca, 0xc8, 0x5c, 0x40, 0xa8, 0xd0, 0xca, 0xe4, 0xca, 0x40, 0xd2, 0xe6, 0x40, 0xdc, 0xde, 0x40, 0xca, 0xe6, 0xc6, 0xc2, 0xe0, 0xca, 0x5c, 0x1b, 0xfe, 0x5c, 0x1a, 0xf0, 0xea, 0xe4, 0xd8, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x60, 0xc3, 0xb6, 0x83, 0xf3, 0xec, 0xe8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x95, 0x8f, 0x6d, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x3d, 0xed, 0x72, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x19, 0x8d, 0x6d, 0x07, 0x6f, 0x9c, 0xa3, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xbd, 0xb2, 0x6d, 0xc3, 0x9f, 0x4b, 0x1b, 0x2c, 0x9b, 0x82, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x9b, 0x6c, 0xdb, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xcb, 0x6c, 0x3b, 0x28, 0x9b, 0x30, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xec, 0x6c, 0x3b, 0x78, 0xfa, 0xb9, 0x5c, 0xad, 0x00, 0x9e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x2d, 0x68, 0x65, 0x61, 0x64, 0x65, 0xf2, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0x8b, 0x7f, 0xe9, 0x1a, 0x00, 0x3f, 0xe5, 0xca, 0xda, 0xde, 0xec, 0xca, 0xe6, 0x40, 0xe8, 0xd0, 0xca, 0x40, 0xcc, 0xd2, 0xe4, 0xe6, 0xe8, 0x40, 0xd2, 0xdc, 0xe6, 0xe8, 0xc2, 0xdc, 0xc6, 0xca, 0x40, 0xde, 0xcc, 0x40, 0xc2, 0x40, 0xd0, 0xca, 0xc2, 0xc8, 0xca, 0xe4, 0x40, 0xcc, 0xe4, 0xde, 0xda, 0x40, 0xe8, 0xd0, 0xca, 0x40, 0xd8, 0xd2, 0xe6, 0xe8, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xc3, 0x43, 0xdb, 0x36, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0xba, 0x90, 0x0c, 0x94, 0xba, 0xd0, 0xb0, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xd4, 0x85, 0x68, 0xa0, 0xd4, 0x85, 0xcd, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x1c, 0x19, 0xdd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0xba, 0xb0, 0x38, 0x78, 0x16, 0x34, 0xdd, 0xc1, 0x79, 0x76, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0x75, 0x61, 0x34, 0x50, 0xea, 0x42, 0xc1, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x4f, 0xbb, 0xdc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0xba, 0xb0, 0x3a, 0x78, 0x95, 0x35, 0xdd, 0xc1, 0x1b, 0xe7, 0xe8, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x28, 0x6d, 0xdb, 0xf0, 0x17, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xeb, 0x42, 0x32, 0x50, 0xeb, 0xc2, 0xea, 0xe0, 0x75, 0x78, 0x74, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x81, 0xa7, 0x6d, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x3c, 0x80, 0x8e, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x46, 0xd5, 0xb6, 0x83, 0x82, 0x22, 0x73, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xa8, 0xb5, 0x6d, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0xbf, 0xb6, 0x6d, 0xf8, 0x37, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x4c, 0xd9, 0xb6, 0x83, 0xf7, 0x23, 0xd2, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0xd6, 0xb6, 0x1d, 0x3c, 0x0a, 0x90, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x2e, 0xdc, 0xb6, 0x83, 0x67, 0x50, 0xd2, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0xec, 0xb6, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xde, 0xde, 0xb6, 0x83, 0x37, 0x60, 0xd2, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x08, 0xdc, 0xb6, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0xc1, 0x03, 0xe8, 0xe8, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xb3, 0x87, 0xdb, 0x0e, 0x9e, 0x41, 0x49, 0x57, 0x87, 0x53, 0xac, 0xd6, 0xe0, 0x59, 0x24, 0x74, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xcf, 0x22, 0xa1, 0x6b, 0x00, 0x7c, 0xa4, 0x43, 0x2b, 0x03, 0x99, 0xa3, 0x0b, 0xa3, 0xab, 0x9b, 0x03, 0x19, 0x7b, 0x23, 0x2b, 0x03, 0x09, 0x73, 0x23, 0x03, 0x41, 0x2b, 0x0b, 0x23, 0x2b, 0x93, 0x03, 0x61, 0x4b, 0x9b, 0xa3, 0x03, 0x79, 0x73, 0x03, 0x09, 0x73, 0x03, 0x41, 0xa3, 0xa3, 0x83, 0x03, 0x91, 0x2b, 0x8b, 0xab, 0x2b, 0x9b, 0xa3, 0x57, 0x02, 0xe0, 0x89, 0xab, 0x32, 0x90, 0xb9, 0x32, 0xb8, 0x30, 0xb9, 0x30, 0xba, 0x32, 0x10, 0x3a, 0xb4, 0xb2, 0xb9, 0x32, 0x90, 0xb0, 0xbb, 0xb0, 0x3c, 0x10, 0x33, 0xb9, 0xb7, 0x36, 0x10, 0x3a, 0xb4, 0x32, 0x10, 0xb1, 0x37, 0xb2, 0x3c, 0x10, 0xb2, 0x30, 0xba, 0x30, 0x10, 0xb1, 0xb2, 0xb1, 0xb0, 0xba, 0xb9, 0x32, 0x90, 0xbb, 0x32, 0x90, 0xb6, 0xb0, 0x3c, 0x10, 0xb7, 0x37, 0x3a, 0x90, 0xbb, 0xb0, 0x34, 0x3a, 0x10, 0xb3, 0x37, 0x79, 0x09, 0x40, 0x63, 0x3a, 0xb4, 0x32, 0x90, 0x32, 0x37, 0xba, 0x34, 0xb9, 0x32, 0x10, 0xb1, 0x37, 0xb2, 0x3c, 0x10, 0xb1, 0x32, 0xb3, 0x37, 0xb9, 0x32, 0x90, 0xbb, 0x32, 0x90, 0xb9, 0x32, 0x37, 0x32, 0x90, 0x30, 0x90, 0x12, 0x38, 0xb9, 0xb7, 0x33, 0xb9, 0xb2, 0xb9, 0x39, 0x10, 0xba, 0x37, 0x10, 0x3a, 0xb4, 0x32, 0x90, 0xb1, 0x30, 0x36, 0xb6, 0x32, 0x39, 0x57, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0xcf, 0x22, 0xa1, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x42, 0x6e, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x29, 0xcd, 0x6d, 0x1b, 0xfe, 0x5c, 0x1a, 0xc0, 0x6b, 0x8e, 0x2e, 0x8c, 0xae, 0x6e, 0xae, 0x65, 0xec, 0x8d, 0xac, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x55, 0x6e, 0x3b, 0x28, 0xb3, 0x74, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x9c, 0x6e, 0xdb, 0xf0, 0xe7, 0xd2, 0x00, 0x2f, 0x5a, 0x59, 0x18, 0x59, 0x99, 0xdc, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x10, 0xdd, 0x76, 0xf0, 0xc6, 0x39, 0xba, 0x66, 0x01, 0x7c, 0xce, 0xca, 0xe8, 0x5a, 0xd0, 0xca, 0xc2, 0xc8, 0xca, 0xe4, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xa7, 0x63, 0xd4, 0x35, 0x00, 0x5e, 0xcb, 0x95, 0xd1, 0xd5, 0xc9, 0xb9, 0xcd, 0x81, 0xd0, 0xa1, 0x95, 0x81, 0xd8, 0x85, 0xb1, 0xd5, 0x95, 0x81, 0x98, 0xbd, 0xc9, 0x81, 0xe8, 0xa0, 0x95, 0x85, 0x91, 0x95, 0xc9, 0xb1, 0x80, 0xa4, 0x99, 0x81, 0xa4, 0xd1, 0x81, 0x94, 0xe1, 0xa5, 0xcd, 0xd1, 0xcd, 0x81, 0xa4, 0xb9, 0x81, 0xe8, 0xa0, 0x95, 0x85, 0x91, 0x95, 0xc9, 0xb5, 0xb0, 0xa5, 0xcd, 0xd1, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0x5c, 0xb7, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0x66, 0x21, 0x19, 0x28, 0x66, 0xa1, 0x61, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x31, 0x0b, 0xd1, 0x40, 0x31, 0x0b, 0x9b, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x38, 0x32, 0xba, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0x66, 0x61, 0x71, 0xf0, 0xfe, 0x94, 0xba, 0x83, 0xf3, 0xec, 0xe8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xcc, 0xc2, 0x68, 0xa0, 0x98, 0x85, 0x82, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x9e, 0x76, 0xb9, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0x66, 0x61, 0x75, 0xf0, 0xfc, 0x97, 0xba, 0x83, 0x37, 0xce, 0xd1, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xa5, 0xdd, 0xb6, 0xe1, 0x2f, 0x9a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x9a, 0x85, 0x64, 0xa0, 0x9a, 0x85, 0xc9, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0xb3, 0x10, 0x0d, 0x54, 0xb3, 0x10, 0x1f, 0x94, 0x4d, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x35, 0x0b, 0xf9, 0x40, 0x35, 0x0b, 0x8b, 0x83, 0xf3, 0xec, 0x68, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xcd, 0xdc, 0x6d, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x3c, 0x80, 0x8e, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xec, 0xef, 0xb6, 0x83, 0x82, 0x22, 0x73, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x51, 0xbc, 0x6d, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0x94, 0xb7, 0x6d, 0xf8, 0x37, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xf2, 0xf3, 0xb6, 0x83, 0xf7, 0x23, 0xd2, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0xab, 0xb7, 0x1d, 0x3c, 0x0a, 0x90, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xd4, 0xf6, 0xb6, 0x0d, 0x8e, 0xe1, 0x06, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x69, 0xf0, 0x6d, 0x1b, 0xde, 0xd6, 0xd9, 0xe0, 0x44, 0xeb, 0x71, 0xf0, 0xf4, 0x44, 0xba, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xb0, 0xf9, 0xb6, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x1e, 0x40, 0x47, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x6a, 0xdf, 0x76, 0xf0, 0x0c, 0x4a, 0xba, 0x66, 0x01, 0x7c, 0xd0, 0xe8, 0xe8, 0xe0, 0x5a, 0xca, 0xec, 0xca, 0xdc, 0xe8, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xa7, 0x43, 0xd5, 0x35, 0x80, 0x37, 0x5c, 0xd8, 0xd8, 0x5a, 0x19, 0x5d, 0x9a, 0x5e, 0x19, 0x19, 0x08, 0x1a, 0x1d, 0x1d, 0xbc, 0x12, 0x80, 0xff, 0x55, 0x72, 0x62, 0x69, 0x74, 0x20, 0x74, 0x72, 0x65, 0x61, 0x74, 0x73, 0x20, 0x45, 0x61, 0x72, 0x74, 0x68, 0x27, 0x73, 0x20, 0x48, 0x54, 0x54, 0x50, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x20, 0x61, 0x73, 0x20, 0x70, 0x69, 0x70, 0x65, 0x73, 0x2c, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x55, 0x72, 0x62, 0x69, 0x74, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x6f, 0xf2, 0x12, 0x00, 0x5f, 0xc8, 0x95, 0x8d, 0x95, 0xa5, 0xd9, 0x95, 0xcd, 0x81, 0xbc, 0xb9, 0x95, 0x81, 0xbc, 0xc9, 0x81, 0xb4, 0xbd, 0xc9, 0x95, 0x81, 0x94, 0xa0, 0xd1, 0xd1, 0xc1, 0xb5, 0x94, 0xd9, 0x95, 0xb9, 0xd1, 0xcd, 0xb9, 0x80, 0x50, 0xa1, 0x95, 0x81, 0x98, 0xa5, 0xc9, 0xcd, 0xd1, 0x81, 0xbc, 0x99, 0x81, 0xd0, 0xa1, 0x95, 0xcd, 0x95, 0x81, 0xdc, 0xa5, 0xb1, 0xb1, 0x81, 0x84, 0xb1, 0xdd, 0x85, 0xe5, 0xcd, 0x81, 0x88, 0x95, 0x81, 0x84, 0x4b, 0x00, 0x3c, 0x51, 0x32, 0x47, 0x17, 0x26, 0x47, 0x07, 0xf2, 0x26, 0x07, 0x12, 0xe6, 0x06, 0x52, 0x52, 0x26, 0x27, 0xf7, 0x26, 0xc7, 0x02, 0x12, 0xe6, 0x46, 0x06, 0x42, 0x87, 0x56, 0x06, 0xc2, 0x16, 0x36, 0x47, 0x07, 0x72, 0x97, 0xc6, 0xc6, 0x06, 0x12, 0xc6, 0x76, 0x17, 0x96, 0x37, 0x07, 0x22, 0x56, 0x06, 0x52, 0x32, 0x16, 0xe6, 0x36, 0x56, 0xc6, 0x06, 0xf2, 0x26, 0x07, 0x72, 0x97, 0xc6, 0xc6, 0x06, 0x82, 0x16, 0x66, 0x57, 0x2e, 0x01, 0xe8, 0xa6, 0x33, 0xf6, 0xd6, 0x06, 0xc7, 0x56, 0x46, 0x57, 0x06, 0x32, 0x57, 0x46, 0x07, 0x42, 0xf7, 0x06, 0x52, 0xe2, 0x92, 0x07, 0x42, 0xf7, 0x06, 0x62, 0x96, 0xe6, 0x96, 0x36, 0x87, 0x06, 0x42, 0x87, 0x56, 0x06, 0x32, 0xf6, 0xe6, 0xe6, 0x56, 0x36, 0x46, 0x97, 0xf6, 0xe6, 0xe6, 0x5a, 0x09, 0xc0, 0xe7, 0xa1, 0x30, 0xb6, 0xb1, 0x3a, 0xb6, 0x30, 0xba, 0xb4, 0x37, 0x37, 0x90, 0x37, 0x33, 0x90, 0xb1, 0x37, 0x37, 0x3a, 0xb9, 0x37, 0x36, 0x10, 0xb4, 0xb2, 0x30, 0xb2, 0x32, 0xb9, 0x39, 0x90, 0xb9, 0xba, 0x31, 0x34, 0x90, 0xb0, 0x39, 0x90, 0x93, 0xa1, 0x37, 0x37, 0xba, 0x32, 0x37, 0xba, 0x16, 0xa6, 0x32, 0xb7, 0x33, 0x3a, 0xb4, 0x13, 0x90, 0x37, 0x79, 0x09, 0x80, 0x47, 0x4e, 0xa8, 0xe4, 0xc2, 0xdc, 0xe6, 0xcc, 0xca, 0xe4, 0x5a, 0x8a, 0xdc, 0xc6, 0xde, 0xc8, 0xd2, 0xdc, 0xce, 0x4e, 0x40, 0xe6, 0xd0, 0xde, 0xea, 0xd8, 0xc8, 0x40, 0xc4, 0xca, 0x40, 0xe0, 0xca, 0xe4, 0xcc, 0xde, 0xe4, 0xda, 0xca, 0xc8, 0x40, 0xc2, 0xe8, 0x40, 0xc2, 0x40, 0xd0, 0xd2, 0xce, 0xd0, 0xca, 0xe4, 0x40, 0xd8, 0xca, 0xec, 0xca, 0xd8, 0x76, 0x40, 0xe8, 0xd0, 0xd2, 0xe6, 0x40, 0xe6, 0xe8, 0xe4, 0xea, 0xc6, 0xe8, 0xea, 0xe4, 0xca, 0x25, 0x00, 0x6d, 0xd3, 0xe6, 0x40, 0xda, 0xca, 0xe4, 0xca, 0xd8, 0xf2, 0x40, 0xcc, 0xde, 0xe4, 0x40, 0xee, 0xd0, 0xc2, 0xe8, 0x40, 0xce, 0xca, 0xe8, 0xe6, 0x40, 0xe6, 0xca, 0xdc, 0xe8, 0x40, 0xe8, 0xde, 0x40, 0xde, 0xe4, 0x40, 0xe4, 0xca, 0xc6, 0xca, 0xd2, 0xec, 0xca, 0xc8, 0x40, 0xcc, 0xe4, 0xde, 0xda, 0x40, 0x8a, 0xc2, 0xe4, 0xe8, 0xd0, 0x5c, 0x6d, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0x3c, 0x1d, 0xaa, 0x6e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x66, 0xbf, 0x6d, 0x83, 0xa0, 0xfd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xe5, 0xbf, 0x6d, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0x06, 0xb8, 0x6d, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xe0, 0x2d, 0xfd, 0x6d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0x26, 0xb8, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0x67, 0x91, 0xd0, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x47, 0x1c, 0xb8, 0x1d, 0x3c, 0xf2, 0x84, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x40, 0x08, 0xb7, 0x0d, 0x7f, 0x2e, 0x6d, 0x70, 0x90, 0x67, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x70, 0x70, 0xdb, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0xa0, 0x70, 0x3b, 0x28, 0x9b, 0x30, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0xc1, 0x70, 0x3b, 0x78, 0xfa, 0xb9, 0x5c, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0x7c, 0xb8, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0x56, 0x77, 0xb3, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x53, 0x39, 0xdc, 0x0e, 0x1f, 0xac, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x0c, 0x89, 0xdb, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x35, 0x71, 0xdb, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0xab, 0x43, 0xdc, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x74, 0x71, 0xdb, 0xf0, 0xe7, 0xd2, 0x06, 0x07, 0x79, 0xb6, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x0c, 0x16, 0xb7, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x0e, 0x19, 0xb7, 0x83, 0xb2, 0x09, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x28, 0x1b, 0xb7, 0x83, 0xa7, 0x9f, 0xcb, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x50, 0x8f, 0xdb, 0x86, 0x3f, 0x97, 0x36, 0x68, 0x75, 0x37, 0x7b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x58, 0xc7, 0xed, 0xf0, 0xc1, 0x6a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0x08, 0xb9, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x60, 0x22, 0xb7, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x3c, 0x0b, 0xad, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x48, 0x24, 0xb7, 0x83, 0x10, 0x7c, 0xa8, 0xc3, 0x29, 0xd6, 0xe1, 0x14, 0x9b, 0x05, 0x8c, 0xfb, 0xf7, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x8e, 0x0c, 0xa1, 0x01, 0x1e, 0x73, 0x69, 0x67, 0x6e, 0x2d, 0x61, 0x72, 0x76, 0x6f, 0x03, 0x68, 0xa6, 0xb9, 0x81, 0xc8, 0x95, 0xcd, 0xd5, 0xb1, 0xd1, 0x81, 0x90, 0xf0, 0xb4, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x5e, 0xc8, 0x5b, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xec, 0xe4, 0xb6, 0x41, 0xd0, 0xfe, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x27, 0xe5, 0xb6, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x03, 0xaa, 0xdc, 0x36, 0x64, 0xc0, 0x0f, 0xde, 0xdd, 0x0f, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x9d, 0x96, 0xdb, 0x86, 0x7f, 0xe7, 0x37, 0x78, 0x22, 0x9d, 0xc8, 0x1a, 0x3c, 0xc9, 0x1f, 0xa6, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x15, 0xcc, 0x6d, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0x8c, 0xb9, 0x6d, 0xc8, 0x80, 0x1f, 0x3c, 0xfe, 0x1f, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x58, 0x34, 0xb7, 0x0d, 0x82, 0xf6, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xe8, 0x38, 0xb7, 0x0d, 0xff, 0xce, 0x6f, 0xf0, 0x44, 0x3a, 0x91, 0x35, 0x78, 0x17, 0x40, 0x4c, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xbb, 0x17, 0x21, 0x1f, 0xd8, 0xbd, 0x08, 0x15, 0x1b, 0xac, 0x57, 0xa9, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x76, 0x2f, 0xc2, 0x64, 0x60, 0xf7, 0x22, 0xec, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xf0, 0x82, 0xab, 0xa1, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x22, 0x3c, 0xb7, 0x0d, 0xff, 0xce, 0x6f, 0xf0, 0x44, 0x3a, 0x91, 0x35, 0x78, 0x9c, 0x40, 0x4c, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xcb, 0x17, 0x21, 0x1f, 0x58, 0xbe, 0x08, 0x15, 0x1b, 0xac, 0x57, 0xa9, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x96, 0x2f, 0xc2, 0x64, 0x60, 0xf9, 0x22, 0xec, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xf0, 0x3c, 0x3c, 0xa2, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x4e, 0x40, 0xb7, 0x83, 0x87, 0x64, 0xd7, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xdb, 0x17, 0x21, 0x1f, 0xd8, 0xbe, 0x08, 0x15, 0x1b, 0xac, 0x57, 0xa9, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb6, 0x2f, 0xc2, 0x64, 0x60, 0xfb, 0x22, 0xec, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xf0, 0x04, 0x04, 0xa2, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x92, 0x43, 0xb7, 0x83, 0x87, 0x64, 0xd7, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xeb, 0x17, 0x21, 0x1f, 0x58, 0xbf, 0x08, 0x15, 0x1b, 0xac, 0x57, 0xa9, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd6, 0x2f, 0xc2, 0x64, 0x60, 0xfd, 0x22, 0xec, 0x0e, 0xde, 0x19, 0xa6, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xc5, 0xe8, 0xb6, 0xe1, 0xdf, 0xf9, 0x0d, 0x9e, 0x48, 0x27, 0xb2, 0x06, 0x2f, 0x4d, 0x88, 0xa9, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x8d, 0xd2, 0x6d, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0x5b, 0xba, 0x6d, 0xc8, 0x80, 0x1f, 0xbc, 0x40, 0x20, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x38, 0x4e, 0xb7, 0x83, 0x87, 0x64, 0xd7, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x33, 0xa8, 0xdb, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x1a, 0x75, 0xdb, 0x90, 0x01, 0x3f, 0x78, 0x04, 0x41, 0xcc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xd1, 0xa8, 0x6e, 0x1b, 0xfe, 0x9d, 0xdf, 0xe0, 0x89, 0x74, 0x22, 0x6b, 0xf0, 0x3e, 0x82, 0x98, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xa2, 0x57, 0xb7, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x1d, 0xeb, 0xb6, 0x21, 0x03, 0x7e, 0xf0, 0x52, 0x83, 0x98, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x93, 0x6e, 0xdd, 0x36, 0xfc, 0x3b, 0xbf, 0xc1, 0x13, 0xe9, 0x44, 0xd6, 0xe0, 0x11, 0x07, 0x31, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xbd, 0xbd, 0x6e, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x09, 0xd8, 0x6d, 0x43, 0x06, 0xfc, 0xe0, 0x39, 0x09, 0x31, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0x17, 0xbb, 0x1d, 0xbc, 0x46, 0xbe, 0xae, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x3b, 0x94, 0xdd, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x2b, 0xb3, 0xdb, 0x86, 0x0c, 0xf8, 0xc1, 0x8b, 0x16, 0x62, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x91, 0x76, 0xdb, 0xf0, 0xef, 0xfc, 0x06, 0x4f, 0xa4, 0x13, 0x59, 0x83, 0xc7, 0x2e, 0xc4, 0x54, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0x60, 0xbb, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x56, 0x6d, 0xb7, 0x0d, 0x19, 0xf0, 0x83, 0x67, 0x37, 0xc4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x02, 0xee, 0xb6, 0xe1, 0xdf, 0xf9, 0x0d, 0x9e, 0x48, 0x27, 0xb2, 0x06, 0x2f, 0x72, 0x88, 0xa9, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x32, 0x77, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xdd, 0xe8, 0x6e, 0x1b, 0x32, 0xe0, 0x07, 0x6f, 0x7f, 0x88, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xca, 0xdd, 0x6d, 0xc3, 0xbf, 0xf3, 0x1b, 0x3c, 0x91, 0x4e, 0x64, 0x0d, 0x9e, 0x05, 0x11, 0x53, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x33, 0xef, 0xb6, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x9b, 0xeb, 0xdd, 0x36, 0x64, 0xc0, 0x0f, 0x1e, 0x20, 0x11, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xd0, 0xbe, 0xdb, 0x86, 0x7f, 0xe7, 0x37, 0x78, 0x22, 0x9d, 0xc8, 0x1a, 0xbc, 0x4d, 0x22, 0xa6, 0x6a, 0x05, 0x9e, 0x7f, 0xdf, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x07, 0x7c, 0xb2, 0xb2, 0xb1, 0x77, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xd1, 0x22, 0x6d, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x6f, 0xba, 0x32, 0x3c, 0x3a, 0x10, 0xb2, 0xb2, 0xb1, 0x37, 0xb9, 0x30, 0xba, 0xb4, 0x37, 0xb7, 0x0d, 0x82, 0xcd, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xce, 0x8c, 0xb4, 0x83, 0x10, 0x7c, 0x58, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xb4, 0x23, 0x6d, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0xc1, 0x8b, 0xb1, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0x8d, 0xa4, 0x6d, 0xc8, 0x80, 0x1f, 0xb4, 0xa6, 0x22, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x08, 0x4a, 0xda, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x82, 0xaf, 0x73, 0x9b, 0x05, 0xfe, 0x7f, 0xdf, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x07, 0x7c, 0xb6, 0x34, 0xb3, 0x72, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xb9, 0xee, 0x6d, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x1e, 0xe6, 0xd0, 0xd2, 0xe0, 0x40, 0xd6, 0xca, 0xf2, 0x40, 0xe4, 0xca, 0xec, 0xd2, 0xe6, 0xd2, 0xde, 0xdc, 0x0e, 0xca, 0x2c, 0xdd, 0x15, 0xa8, 0xfe, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x54, 0x10, 0xb2, 0x81, 0x6d, 0x83, 0xb8, 0x0d, 0x52, 0x2f, 0x8a, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xab, 0x20, 0x7a, 0xf0, 0xf0, 0x1e, 0xbb, 0x0d, 0x4a, 0x16, 0xf6, 0x59, 0x66, 0x0d, 0x1e, 0x49, 0x27, 0xb2, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0xc1, 0x91, 0x21, 0xf4, 0xe0, 0x91, 0x74, 0x22, 0x0d, 0xa0, 0xfb, 0x56, 0x47, 0x07, 0x22, 0x57, 0x36, 0x57, 0xc7, 0x46, 0x07, 0xc2, 0xd3, 0x42, 0xda, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0x24, 0x9d, 0xc8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xec, 0x15, 0xc4, 0x0d, 0x6c, 0x16, 0xc4, 0x6f, 0x10, 0xb4, 0x3f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x5e, 0x41, 0x48, 0x06, 0xf6, 0x0a, 0xc2, 0x97, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x7c, 0xd3, 0xdc, 0x5a, 0xc2, 0xe4, 0xec, 0xde, 0x40, 0xe4, 0xca, 0xe6, 0xea, 0xd8, 0xe8, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xec, 0x15, 0x84, 0x68, 0x60, 0xaf, 0x20, 0xe4, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x78, 0x64, 0xda, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x57, 0x10, 0x06, 0x03, 0x7b, 0x05, 0x61, 0xbd, 0xe1, 0xcf, 0xa5, 0xc1, 0xe1, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xd8, 0x2b, 0x08, 0x93, 0x83, 0x97, 0x56, 0xd9, 0x6d, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x5e, 0x41, 0xd8, 0x0c, 0xec, 0x15, 0x84, 0xdd, 0x86, 0xb7, 0x75, 0x36, 0x78, 0xc6, 0xda, 0x5b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x5e, 0x41, 0x18, 0x0e, 0xec, 0x15, 0x84, 0xf1, 0xc1, 0x7b, 0x11, 0x48, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x2c, 0x08, 0xc9, 0xc0, 0x62, 0x41, 0x38, 0xb3, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x77, 0x19, 0x1e, 0x5d, 0x99, 0x9c, 0x5b, 0x18, 0x1b, 0x88, 0x5c, 0xd9, 0x5c, 0x1d, 0x1b, 0xdd, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc5, 0x82, 0x10, 0x0d, 0x2c, 0x16, 0x84, 0x7c, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0xcf, 0x58, 0x7b, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x16, 0x0b, 0xc2, 0x60, 0x60, 0xb1, 0x20, 0xac, 0x37, 0xfc, 0xb9, 0x34, 0x38, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x8b, 0x05, 0x61, 0x72, 0xf0, 0x9c, 0x35, 0xbb, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x2c, 0x08, 0x9b, 0x81, 0xc5, 0x82, 0xb0, 0x3b, 0x78, 0xff, 0x96, 0xdd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x58, 0x10, 0x86, 0x03, 0x8b, 0x05, 0x61, 0xbc, 0xe1, 0xdf, 0xf9, 0x35, 0x78, 0xdd, 0x52, 0x48, 0x55, 0x2b, 0xe0, 0x8b, 0x95, 0x85, 0xc9, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0xef, 0xad, 0xb3, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x45, 0x83, 0x90, 0x0e, 0x2c, 0x1a, 0x84, 0x2b, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0xc2, 0x85, 0xc9, 0xd1, 0xa5, 0x85, 0xb1, 0x81, 0x90, 0x88, 0x95, 0x85, 0xad, 0x6d, 0xf8, 0x60, 0x7e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x34, 0x08, 0x83, 0x81, 0x45, 0x83, 0x30, 0x3a, 0x78, 0x14, 0x5e, 0xc8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x2c, 0x1a, 0x84, 0xd5, 0xc0, 0xa2, 0x41, 0x58, 0x1e, 0x3c, 0xd5, 0x28, 0xe4, 0x70, 0x8a, 0xad, 0xc1, 0xbb, 0xf1, 0x83, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xd5, 0x20, 0xa4, 0x03, 0xab, 0x06, 0xe1, 0xcf, 0x86, 0x87, 0xf3, 0x37, 0x3c, 0xb8, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xab, 0x06, 0x61, 0x76, 0xf0, 0xe2, 0x42, 0xbb, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xf8, 0xa0, 0x43, 0x93, 0x2b, 0x0b, 0x23, 0x03, 0x91, 0xab, 0x73, 0x03, 0x91, 0x2b, 0x8b, 0xab, 0x2b, 0x9b, 0xa3, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x6a, 0x10, 0x76, 0x03, 0xab, 0x06, 0x61, 0xbc, 0xe1, 0xcf, 0xa5, 0x0d, 0xde, 0x5b, 0x67, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xab, 0x06, 0x61, 0x78, 0xf0, 0x92, 0x47, 0xbb, 0x0d, 0xff, 0xce, 0xaf, 0xc1, 0x7b, 0xeb, 0xec, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x35, 0x08, 0xeb, 0x81, 0x55, 0x83, 0x50, 0xb3, 0xe1, 0xcf, 0xa5, 0x0d, 0xdf, 0xb7, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xaa, 0x41, 0xa8, 0x38, 0x78, 0x78, 0xa5, 0xdd, 0xc1, 0x7a, 0xad, 0xe7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xd5, 0x20, 0xf4, 0x0c, 0xac, 0x1a, 0x84, 0xb6, 0x0d, 0x7f, 0x2e, 0x0d, 0xf8, 0x61, 0x72, 0x67, 0xf3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xac, 0x1a, 0x84, 0xb2, 0x83, 0xb7, 0x6f, 0xda, 0x1d, 0x1c, 0x3a, 0x2d, 0x9b, 0x35, 0x78, 0x7a, 0x8f, 0xd2, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0xd3, 0x7b, 0x94, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xd3, 0x20, 0xa4, 0x03, 0x9b, 0x06, 0xe1, 0xd0, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xbc, 0xbc, 0xd5, 0xd1, 0xc1, 0xd5, 0xd1, 0x81, 0xb4, 0x85, 0xc9, 0xad, 0x81, 0xac, 0x80, 0xa4, 0xb9, 0xc1, 0xd5, 0xd1, 0x6d, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xa6, 0x41, 0x88, 0x07, 0x36, 0x0d, 0xc2, 0xe4, 0xa0, 0xf4, 0xa6, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x36, 0x0d, 0xc2, 0x66, 0x60, 0xd3, 0x20, 0xec, 0x0e, 0xde, 0xb7, 0x21, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x6c, 0x1a, 0x84, 0xe1, 0xc0, 0xa6, 0x41, 0x18, 0x1f, 0xbc, 0x8e, 0xce, 0xae, 0x15, 0xf0, 0xe7, 0xd0, 0xca, 0xc8, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0x67, 0xc6, 0xda, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb2, 0x41, 0x48, 0x07, 0x96, 0x0d, 0xc2, 0x93, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xfc, 0xc6, 0xde, 0xda, 0xe0, 0xea, 0xe8, 0xca, 0x40, 0xec, 0xc2, 0xe6, 0xca, 0x36, 0x08, 0xa0, 0xb3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x36, 0x08, 0xf1, 0xc0, 0xb2, 0x41, 0xe8, 0xd9, 0xf0, 0xa0, 0xe4, 0x1a, 0x14, 0x82, 0xa9, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x6c, 0x10, 0xf2, 0x81, 0x65, 0x83, 0xb0, 0xd9, 0xf0, 0xef, 0xfc, 0x02, 0xbe, 0xd9, 0x9b, 0x5c, 0x5b, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x6c, 0x10, 0x46, 0x07, 0xef, 0xd6, 0xb5, 0xdb, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x6c, 0x10, 0x56, 0x03, 0xcb, 0x06, 0xa1, 0x60, 0xc3, 0x83, 0x92, 0x6b, 0x78, 0x5b, 0x67, 0x80, 0x6f, 0x8e, 0x4e, 0x2e, 0xcc, 0x8d, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x96, 0x0d, 0xc2, 0xf8, 0xe0, 0x65, 0xc4, 0x76, 0x1b, 0xde, 0xd6, 0x19, 0xf0, 0xe5, 0xc2, 0xdc, 0xc8, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x65, 0x83, 0xd0, 0x30, 0xb0, 0x6c, 0x10, 0x6a, 0x36, 0x7c, 0xd4, 0xbe, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xcb, 0x06, 0xa1, 0xe2, 0xe0, 0x15, 0xcc, 0x76, 0x07, 0xcd, 0x6e, 0x47, 0x75, 0x38, 0xc5, 0xd6, 0xe0, 0x19, 0x6b, 0x6f, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x67, 0x10, 0xd2, 0x81, 0x3d, 0x83, 0xf0, 0x64, 0xc3, 0xc3, 0xf9, 0x1b, 0x1e, 0xdc, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x3d, 0x83, 0x30, 0x3b, 0x78, 0xa8, 0xb4, 0xdd, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x7e, 0x24, 0x66, 0x79, 0x72, 0x64, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x67, 0x10, 0x76, 0x03, 0x7b, 0x06, 0x61, 0x7b, 0xb0, 0x0a, 0x32, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xd8, 0x33, 0x08, 0xe3, 0x81, 0x3d, 0x83, 0xb0, 0x3e, 0x38, 0x74, 0x5a, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x7b, 0x06, 0x61, 0x3e, 0xb0, 0x67, 0x10, 0x2a, 0x0e, 0x9e, 0xc8, 0x0e, 0xd2, 0x6a, 0xf0, 0xa6, 0xc8, 0x91, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x8e, 0x0c, 0xa1, 0x07, 0x6f, 0x8a, 0x1c, 0x69, 0x00, 0xdd, 0x34, 0x37, 0x10, 0xb9, 0xb2, 0xb8, 0xba, 0xb2, 0x39, 0x3a, 0x90, 0x16, 0x1f, 0xd2, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x9b, 0x22, 0x47, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xb7, 0x20, 0x6e, 0x60, 0xcb, 0x20, 0x7e, 0x83, 0x50, 0x43, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x76, 0x0b, 0x42, 0x32, 0xb0, 0x5b, 0x10, 0x26, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x76, 0x0b, 0x42, 0x34, 0xb0, 0x5b, 0x10, 0xf2, 0x83, 0xd7, 0x7f, 0xa7, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xbb, 0x05, 0x61, 0x30, 0xb0, 0x5b, 0x10, 0x16, 0x07, 0x05, 0x45, 0x66, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x5c, 0x10, 0x77, 0xf0, 0xec, 0x74, 0xbb, 0x0d, 0x82, 0xf6, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x2e, 0x08, 0xc9, 0xc0, 0x72, 0x41, 0x78, 0xb3, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xbf, 0x5b, 0xd9, 0x1d, 0x48, 0x9d, 0x5b, 0x1a, 0x1e, 0x08, 0x9c, 0xdc, 0xdb, 0x58, 0xd9, 0xdc, 0xdc, 0x06, 0xeb, 0x55, 0xaa, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe5, 0x82, 0x10, 0x0e, 0x2c, 0x17, 0x84, 0xc5, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x5e, 0xd2, 0xe3, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xcb, 0x05, 0x61, 0x32, 0xb0, 0x5c, 0x10, 0xb6, 0x1b, 0xfe, 0x9d, 0x5f, 0x00, 0x0f, 0xbb, 0x30, 0xb7, 0xb2, 0x16, 0xba, 0xb0, 0xb9, 0xb5, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xed, 0x82, 0x90, 0x0c, 0x6c, 0x17, 0x84, 0x2b, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0xce, 0xbd, 0x8d, 0xad, 0x95, 0xd1, 0x81, 0x8c, 0xb1, 0xbd, 0xcd, 0x95, 0x91, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xd8, 0x2e, 0x08, 0xd1, 0xc0, 0x76, 0x41, 0xc8, 0x0f, 0x56, 0xa1, 0x84, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xdb, 0x05, 0x61, 0x30, 0xb0, 0x5d, 0x10, 0x16, 0x07, 0x21, 0xf8, 0xd0, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x60, 0x10, 0x92, 0x81, 0x05, 0x83, 0xf0, 0x65, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xdf, 0x34, 0xb7, 0x96, 0x30, 0x39, 0xbb, 0x37, 0x10, 0x3a, 0x34, 0xb9, 0xb2, 0x30, 0xb2, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x0b, 0x06, 0x21, 0x1a, 0x58, 0x30, 0x08, 0xf9, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x5e, 0x72, 0x1f, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x2c, 0x18, 0x84, 0xc1, 0xc0, 0x82, 0x41, 0x58, 0x6f, 0xf8, 0x73, 0x69, 0x70, 0x78, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x16, 0x0c, 0xc2, 0xe4, 0xe0, 0x3d, 0x1a, 0x77, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x60, 0x10, 0x36, 0x03, 0x0b, 0x06, 0x61, 0xb7, 0xe1, 0x6d, 0x9d, 0x0d, 0xde, 0x8d, 0x1f, 0xd4, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x60, 0x10, 0x86, 0x03, 0x0b, 0x06, 0x61, 0x7c, 0xf0, 0x5e, 0x04, 0x92, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x36, 0x0c, 0x42, 0x32, 0xb0, 0x61, 0x10, 0xce, 0x6c, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x5d, 0x86, 0x47, 0x57, 0x26, 0xe7, 0x16, 0xc6, 0x06, 0x42, 0x87, 0x26, 0x57, 0x16, 0x46, 0xb6, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xc3, 0x20, 0x44, 0x03, 0x1b, 0x06, 0x21, 0xdf, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0xbb, 0xf1, 0x83, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x0d, 0x83, 0x30, 0x18, 0xd8, 0x30, 0x08, 0xeb, 0x0d, 0x7f, 0x2e, 0x0d, 0x0e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x86, 0x41, 0x98, 0x1c, 0x3c, 0xfa, 0xe5, 0x6e, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x36, 0x0c, 0xc2, 0x66, 0x60, 0xc3, 0x20, 0xec, 0x0e, 0x5e, 0x09, 0x72, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x6c, 0x18, 0x84, 0xe1, 0xc0, 0x86, 0x41, 0x18, 0x6f, 0xf8, 0x77, 0x7e, 0x0d, 0x9e, 0xde, 0xa3, 0x54, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xac, 0x18, 0x84, 0x64, 0x60, 0xc5, 0x20, 0x5c, 0xd9, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x33, 0xcd, 0x8d, 0x2d, 0xcd, 0xad, 0x0c, 0x84, 0x0e, 0x4d, 0xae, 0x2c, 0x8c, 0x6c, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x8a, 0x41, 0x88, 0x06, 0x56, 0x0c, 0x42, 0xbe, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x87, 0xd1, 0x07, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x2b, 0x06, 0x61, 0x30, 0xb0, 0x62, 0x10, 0x56, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0xbd, 0x75, 0x76, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x62, 0x10, 0x16, 0x07, 0xaf, 0x29, 0xba, 0x3b, 0x78, 0xc0, 0xa4, 0xdd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x62, 0x10, 0x66, 0x03, 0x2b, 0x06, 0x61, 0xbb, 0xe1, 0xcf, 0xa5, 0x0d, 0x9e, 0x19, 0x6b, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x2b, 0x06, 0x61, 0x77, 0xf0, 0xb2, 0xa5, 0xbb, 0x0d, 0xff, 0xce, 0xaf, 0xc1, 0x33, 0x63, 0xed, 0xaa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xc7, 0x20, 0x24, 0x03, 0x3b, 0x06, 0xe1, 0xc7, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x3e, 0x74, 0x72, 0x69, 0x6d, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1b, 0xac, 0x57, 0xa9, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x76, 0x0c, 0x42, 0x38, 0xb0, 0x63, 0x10, 0x16, 0x07, 0xaf, 0xb7, 0xf7, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1d, 0x83, 0x30, 0x19, 0xd8, 0x31, 0x08, 0xdb, 0x83, 0x17, 0x08, 0xdc, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x4b, 0x06, 0x21, 0x19, 0x58, 0x32, 0x08, 0x5f, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x95, 0x2b, 0x83, 0x7b, 0x93, 0xa3, 0x03, 0xa9, 0x83, 0x3b, 0x93, 0x0b, 0x23, 0x2b, 0xdb, 0x60, 0xbd, 0x4a, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x64, 0x10, 0xc2, 0x81, 0x25, 0x83, 0xb0, 0xd8, 0x90, 0x01, 0x3f, 0x78, 0x18, 0x78, 0xca, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x2c, 0x19, 0x84, 0xc9, 0xc0, 0x92, 0x41, 0xd8, 0x1e, 0xbc, 0x40, 0xe0, 0xae, 0xc3, 0x29, 0xd6, 0xe1, 0x14, 0x5b, 0x01, 0xe1, 0xbf, 0xbf, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x0f, 0xf8, 0x73, 0x74, 0x79, 0xe5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0x81, 0x90, 0x0d, 0x94, 0x81, 0x70, 0x64, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x2f, 0xb2, 0xb2, 0xb1, 0xb7, 0xb9, 0x17, 0xb1, 0xb3, 0x17, 0xb3, 0xb3, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0x03, 0x21, 0x1c, 0x28, 0x03, 0x61, 0x70, 0x50, 0x7a, 0xd3, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x65, 0x20, 0x2c, 0x06, 0xca, 0x40, 0xd8, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x19, 0x08, 0x93, 0x81, 0x32, 0x10, 0x56, 0x07, 0x25, 0xe2, 0xfb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x06, 0xc2, 0x6c, 0xa0, 0x0c, 0x84, 0xe9, 0x86, 0x7f, 0xe7, 0xd7, 0xe0, 0x31, 0x27, 0x76, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x06, 0xc2, 0x78, 0xa0, 0x0c, 0x84, 0xb2, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0x03, 0x61, 0x3d, 0x50, 0x06, 0x42, 0xc3, 0x41, 0xe9, 0x4d, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0x81, 0x50, 0x31, 0x50, 0x06, 0x42, 0xcd, 0x86, 0x7f, 0xe7, 0x17, 0xf0, 0xe9, 0xd2, 0xdc, 0xe8, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xca, 0x40, 0xe8, 0x19, 0x28, 0x03, 0xa1, 0xeb, 0xe0, 0x9d, 0x82, 0x77, 0x75, 0x38, 0xc5, 0x6a, 0x81, 0x71, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x2e, 0x10, 0xda, 0x20, 0xf5, 0xa2, 0x78, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x08, 0x41, 0x68, 0x83, 0x92, 0x85, 0x7d, 0x96, 0x59, 0x83, 0x56, 0x2d, 0x2d, 0x37, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x5a, 0xb5, 0xb4, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x66, 0x10, 0xda, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x53, 0xae, 0x8c, 0x2d, 0x8c, 0x2e, 0xcd, 0xae, 0x0c, 0x04, 0x2e, 0x8c, 0x0e, 0x6d, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0x47, 0x08, 0x6d, 0xf8, 0x73, 0x69, 0x70, 0x78, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xeb, 0x41, 0x68, 0xc3, 0xbf, 0xf3, 0x0b, 0xf8, 0x63, 0x61, 0x72, 0x65, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x9c, 0x21, 0xb4, 0xe1, 0xcf, 0xa5, 0xc1, 0xe3, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x9a, 0x0b, 0xa1, 0x83, 0xb7, 0xea, 0x85, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x1a, 0x22, 0xb4, 0xe1, 0xcf, 0xa5, 0xc1, 0xe5, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x8a, 0x0f, 0xa1, 0x83, 0xf3, 0xe6, 0xe9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x45, 0x2a, 0x42, 0x1b, 0xfe, 0x5c, 0x1a, 0x7c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x3d, 0x11, 0x3a, 0x38, 0x23, 0xa1, 0xb6, 0x02, 0x7e, 0xdb, 0xdb, 0x1b, 0xb9, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0xf6, 0xcf, 0xbb, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x5c, 0x18, 0xa1, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xbc, 0xe5, 0xca, 0xe2, 0xea, 0xca, 0xe6, 0xe8, 0x40, 0xd2, 0xdc, 0x40, 0xc8, 0xca, 0xe6, 0xd6, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x78, 0x8d, 0xd0, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x2d, 0xe5, 0xdd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xd5, 0x8c, 0xd0, 0xc1, 0x73, 0x28, 0xef, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0xe2, 0x11, 0xda, 0xf0, 0xe7, 0xd2, 0x06, 0x2f, 0x68, 0x08, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xce, 0x11, 0x3a, 0x78, 0xab, 0x5e, 0xc8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xcd, 0x42, 0x42, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x60, 0xfa, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x03, 0x24, 0x74, 0x70, 0x46, 0x42, 0x6d, 0x05, 0x7c, 0xb9, 0xb2, 0xb3, 0x79, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0x11, 0xb2, 0x77, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x11, 0x48, 0x42, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0xcb, 0xd5, 0xb1, 0x95, 0xcd, 0x81, 0x98, 0xbd, 0xc9, 0x81, 0xc0, 0x85, 0xd1, 0xa1, 0xcd, 0x6d, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0x2e, 0x09, 0x1d, 0x94, 0x88, 0xf5, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0x41, 0x09, 0x1d, 0x9c, 0x91, 0x50, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x9f, 0x12, 0x3a, 0x58, 0x9a, 0x2a, 0xda, 0x6a, 0xf0, 0xf6, 0x10, 0xa5, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x8e, 0x0c, 0xa1, 0x07, 0x6f, 0x0f, 0x51, 0x6a, 0x00, 0x6f, 0xba, 0x3c, 0xb8, 0x32, 0x32, 0x90, 0xb6, 0x30, 0xb9, 0x35, 0x90, 0xb1, 0x37, 0xb9, 0xb2, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x4c, 0x2c, 0xa1, 0x0d, 0x0f, 0xe7, 0xaf, 0x41, 0xe3, 0xf3, 0x51, 0x07, 0x49, 0xec, 0x50, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xa5, 0x5c, 0x42, 0x1b, 0x04, 0xd0, 0xd9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xeb, 0x97, 0xd0, 0x06, 0xa9, 0x17, 0xc5, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x2d, 0x62, 0x42, 0x1b, 0x94, 0x2c, 0xec, 0xb3, 0xcc, 0x02, 0x3e, 0x59, 0x9a, 0x99, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x4d, 0x26, 0xb4, 0xc1, 0xe2, 0xc2, 0xa4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x43, 0xcf, 0x84, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x8f, 0x9a, 0xd0, 0x86, 0x3f, 0x97, 0x36, 0x48, 0x46, 0x8a, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x66, 0x13, 0xda, 0xf0, 0xef, 0xfc, 0x06, 0x8d, 0x35, 0x67, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x08, 0x9c, 0xd0, 0x86, 0x3f, 0x97, 0x36, 0x48, 0xa8, 0x90, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x95, 0x13, 0x3a, 0x78, 0x5c, 0xf4, 0x5d, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xf1, 0x75, 0x42, 0x1b, 0x14, 0x82, 0xa9, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x89, 0x78, 0x42, 0x1b, 0xfe, 0x9d, 0xdf, 0x20, 0x89, 0x1d, 0xaa, 0xd5, 0x20, 0xad, 0x8c, 0x65, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x7c, 0x4f, 0x68, 0x83, 0xc5, 0x85, 0x49, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0xfa, 0x09, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x9a, 0x40, 0xa1, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0x0f, 0x0a, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x2a, 0x43, 0xa1, 0x83, 0xb6, 0xad, 0xc7, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x52, 0x14, 0x3a, 0x78, 0x14, 0x5e, 0xc8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x65, 0x8e, 0x42, 0x07, 0x2f, 0xc8, 0xbe, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xdc, 0x48, 0xa1, 0x0d, 0x7f, 0x2e, 0x0d, 0x2e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0x51, 0x0a, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x74, 0x4b, 0xa1, 0x83, 0xb6, 0xad, 0xc7, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xd0, 0x14, 0x3a, 0x78, 0x14, 0x5e, 0xc8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x39, 0x9d, 0x42, 0x07, 0x2f, 0xc8, 0xbe, 0xab, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x3e, 0x50, 0xa1, 0x0d, 0x0a, 0xc1, 0xd4, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x7f, 0x85, 0xe0, 0xe0, 0xf9, 0x7c, 0x42, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xff, 0x0a, 0xc9, 0x40, 0xfe, 0x2b, 0xa4, 0x07, 0x65, 0x13, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xff, 0x0a, 0xf1, 0x40, 0xfe, 0x2b, 0x2c, 0x0e, 0x5e, 0x90, 0x7d, 0xd7, 0xac, 0xc1, 0x5b, 0x7e, 0xed, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x03, 0x47, 0x85, 0x36, 0x28, 0x04, 0x53, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xf7, 0x15, 0x06, 0x07, 0x2f, 0x25, 0x15, 0x3a, 0x78, 0xdf, 0x86, 0xc8, 0xe1, 0x14, 0x5b, 0xc0, 0x87, 0x0b, 0x1b, 0xa3, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xbb, 0x4c, 0x85, 0x36, 0x58, 0x5c, 0x98, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x4a, 0xaa, 0xd0, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x5e, 0x15, 0x3a, 0x78, 0x5c, 0xf4, 0xdd, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xdd, 0xae, 0x42, 0x07, 0x2f, 0xc8, 0xbe, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x43, 0x56, 0x68, 0x83, 0x42, 0x30, 0x75, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x95, 0x56, 0xe8, 0xe0, 0x71, 0xd1, 0x77, 0xab, 0xc1, 0x9b, 0xb5, 0x94, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x8b, 0x70, 0x85, 0x36, 0x58, 0x5c, 0x98, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xc0, 0xc2, 0x64, 0x20, 0x03, 0x16, 0x66, 0x07, 0xcb, 0x61, 0xb1, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xeb, 0x76, 0x85, 0x36, 0x28, 0x04, 0x53, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x0b, 0x7c, 0x85, 0x0e, 0x1e, 0x17, 0x7d, 0x37, 0x6b, 0x70, 0x86, 0x91, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x0a, 0x16, 0xda, 0x60, 0x71, 0x61, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x29, 0xc4, 0x42, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xd8, 0x58, 0x68, 0xc3, 0x9f, 0x4b, 0x83, 0x87, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x51, 0xc9, 0x42, 0x07, 0x2f, 0xc8, 0xbe, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x8d, 0x59, 0x68, 0xc3, 0x9f, 0x4b, 0x83, 0x8b, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xfd, 0xce, 0x42, 0x07, 0x2f, 0xc8, 0xbe, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x47, 0x5a, 0x68, 0x83, 0x42, 0x30, 0x75, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x5f, 0xa1, 0xe1, 0xe0, 0x65, 0xd3, 0x42, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xfc, 0x0a, 0x15, 0x03, 0xc9, 0xaf, 0x50, 0x73, 0x50, 0x36, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xaf, 0xd0, 0x33, 0x90, 0xfc, 0x0a, 0x8d, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xfc, 0x0a, 0x45, 0x03, 0xc9, 0xaf, 0x50, 0x76, 0x50, 0x36, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xaf, 0xd0, 0x36, 0x90, 0xfc, 0x0a, 0x85, 0x07, 0x2f, 0xc8, 0xbe, 0xab, 0xc3, 0x29, 0xd6, 0xe1, 0x14, 0x5b, 0x0d, 0x1e, 0xe4, 0x13, 0xb2, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0x20, 0x9f, 0x90, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xce, 0x6b, 0xa1, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x83, 0x87, 0x03, 0x85, 0x6c, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x1c, 0x6d, 0xa1, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xf6, 0x2d, 0xb4, 0xe1, 0xcf, 0xa5, 0xc1, 0xe1, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x68, 0x6e, 0xa1, 0x83, 0xb6, 0xad, 0xc7, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x3c, 0x17, 0xda, 0xf0, 0xe7, 0xd2, 0xe0, 0xf1, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x3d, 0xb9, 0xd0, 0xc1, 0xa3, 0xf0, 0x42, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x7d, 0x17, 0xda, 0xf0, 0xe7, 0xd2, 0xe0, 0xf2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x46, 0xbb, 0xd0, 0xc1, 0x5b, 0xf5, 0x42, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xdc, 0x5e, 0x68, 0xc3, 0x9f, 0x4b, 0x83, 0xcf, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x49, 0xf4, 0x42, 0x07, 0x67, 0x24, 0xd4, 0x66, 0x01, 0x7f, 0x2e, 0x4c, 0x2c, 0xdc, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0x62, 0x10, 0xde, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x8f, 0xbf, 0xd0, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x5e, 0x70, 0x61, 0x74, 0x63, 0x68, 0x2b, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x6d, 0x60, 0x68, 0xc3, 0x9f, 0x4b, 0x83, 0xc3, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xd9, 0x00, 0x43, 0x07, 0x6d, 0x5b, 0x8f, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xa7, 0x30, 0xb4, 0xe1, 0xcf, 0xa5, 0xc1, 0xe3, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xf2, 0x83, 0xa1, 0x83, 0xf3, 0xe6, 0xe9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x15, 0x13, 0x43, 0x1b, 0xfe, 0x5c, 0x1a, 0x5c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x84, 0x18, 0xda, 0xf0, 0xef, 0xfc, 0x02, 0x7e, 0xdb, 0x5b, 0x98, 0x5c, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0x6c, 0x0c, 0x6d, 0xf8, 0x73, 0x69, 0xf0, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x0d, 0x63, 0x68, 0xc3, 0xbf, 0xf3, 0x0b, 0xf8, 0x64, 0x6f, 0x6d, 0x65, 0x35, 0x6b, 0xb0, 0x24, 0x38, 0x7b, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0x60, 0x49, 0x70, 0xf6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x40, 0xc8, 0xd0, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x5e, 0x67, 0x65, 0x74, 0x20, 0x70, 0x72, 0x65, 0x6c, 0x75, 0x64, 0x65, 0x1b, 0x84, 0xd3, 0xd8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xcd, 0x23, 0x43, 0x07, 0x67, 0x24, 0xd4, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xb8, 0x93, 0xa1, 0x83, 0x66, 0xb7, 0xa3, 0x0e, 0xa7, 0xd8, 0x02, 0xbe, 0x5c, 0xda, 0x1b, 0xbd, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0x66, 0x30, 0xbc, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xf0, 0x96, 0xa1, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x78, 0x90, 0x2b, 0x9b, 0x83, 0x7b, 0x73, 0x9b, 0x2b, 0x5b, 0x19, 0x7b, 0x6b, 0x83, 0x63, 0x2b, 0xa3, 0x2b, 0xdb, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x8b, 0x19, 0x3a, 0x28, 0x9b, 0x30, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xad, 0x19, 0xda, 0xf0, 0xef, 0xfc, 0x06, 0x6d, 0x4e, 0xb8, 0xd6, 0x6a, 0xf0, 0xba, 0xa5, 0x90, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0xd7, 0x2d, 0x85, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0xed, 0x0c, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0x43, 0x19, 0x1e, 0xdc, 0x9b, 0x1c, 0x1d, 0x88, 0xd9, 0x9b, 0x1c, 0xc8, 0xd8, 0x5b, 0x1b, 0x5c, 0x18, 0xdd, 0x86, 0x7f, 0xe7, 0x57, 0x1c, 0xe7, 0xe0, 0x75, 0x4b, 0x21, 0x35, 0x0b, 0xe0, 0x79, 0x17, 0x66, 0x46, 0xd7, 0x42, 0xf7, 0xd6, 0x72, 0x57, 0x66, 0x46, 0x37, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0x02, 0x0d, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x4c, 0x85, 0x64, 0x20, 0x31, 0x15, 0x16, 0x1b, 0xfe, 0x5c, 0x1a, 0xf0, 0xd6, 0xc2, 0xd8, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x4c, 0x85, 0xf4, 0xe0, 0xb9, 0x78, 0x78, 0x1b, 0xfe, 0x9d, 0x5f, 0xc0, 0xbf, 0x0b, 0x33, 0xa3, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x79, 0x68, 0x68, 0xc3, 0x5f, 0x34, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x66, 0x2a, 0x24, 0x03, 0x99, 0xa9, 0xb0, 0xd9, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xcc, 0x54, 0x88, 0x06, 0x32, 0x53, 0x21, 0x3d, 0x28, 0x11, 0xdf, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xcc, 0x54, 0x88, 0x07, 0x32, 0x53, 0x61, 0x72, 0xf0, 0x2c, 0x85, 0x90, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x9b, 0x8c, 0x86, 0x36, 0x28, 0x06, 0x64, 0xd7, 0x38, 0x34, 0xe0, 0xad, 0x85, 0xb1, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x47, 0x35, 0xb4, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0x83, 0x57, 0x26, 0xe2, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0x25, 0x0d, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xfe, 0xa5, 0xa1, 0x0d, 0x6f, 0xeb, 0x1c, 0xbc, 0x32, 0x11, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x6c, 0xa7, 0xa1, 0x83, 0x82, 0x22, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xd4, 0xa8, 0xa1, 0x83, 0x82, 0x22, 0xb3, 0xc3, 0x29, 0xb6, 0x06, 0x8f, 0xa4, 0x13, 0xd9, 0xf0, 0x3c, 0xc9, 0x06, 0x4f, 0x17, 0xb2, 0xdb, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0x24, 0x9d, 0xc8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x5f, 0xd6, 0xd0, 0x06, 0x41, 0xfb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x57, 0xd7, 0xd0, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x9e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xff, 0x6b, 0x68, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x4f, 0xdc, 0x1a, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xfe, 0x6c, 0x68, 0xc3, 0x9f, 0x4b, 0x1b, 0x34, 0xa1, 0x7d, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x56, 0x36, 0x74, 0x10, 0xa6, 0x63, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xc4, 0x36, 0xb4, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xb7, 0x5c, 0x1d, 0x5b, 0xd9, 0x1c, 0x88, 0xd9, 0x9b, 0x1c, 0xc8, 0x99, 0xdc, 0x5b, 0x1d, 0xdc, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x76, 0x1b, 0xda, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0xdb, 0xd4, 0x86, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xb6, 0x1b, 0xda, 0xf0, 0xe7, 0xd2, 0x80, 0x27, 0x57, 0x37, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0xd1, 0x0d, 0x6d, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0xe9, 0x0d, 0x1d, 0x94, 0x88, 0xf5, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0xfa, 0x0d, 0x1d, 0x3c, 0x0a, 0x2f, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x98, 0xc1, 0xa1, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x86, 0x38, 0xb4, 0xe1, 0xcf, 0xa5, 0xc1, 0xe5, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xe6, 0xc2, 0xa1, 0x0d, 0xff, 0xce, 0xaf, 0xc1, 0x23, 0x64, 0xef, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xf6, 0xc7, 0xa1, 0x0d, 0x7f, 0x2e, 0x0d, 0x7e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0x35, 0x0e, 0x1d, 0x3c, 0xb8, 0x16, 0xaf, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xca, 0x72, 0x68, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x1e, 0xe0, 0xca, 0xe4, 0xda, 0xd2, 0xe6, 0xe6, 0xd2, 0xde, 0xdc, 0x40, 0xce, 0xe4, 0xde, 0xea, 0xe0, 0xe6, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x3b, 0xe6, 0xd0, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0xde, 0x47, 0x39, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x3b, 0xe8, 0xd0, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0xb1, 0x32, 0x7d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xcb, 0x73, 0x68, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x8f, 0x74, 0xe8, 0xa0, 0x44, 0xac, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x35, 0x75, 0xe8, 0xe0, 0xa8, 0x0d, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xa3, 0xeb, 0xd0, 0x86, 0x7f, 0xe7, 0xd7, 0xe0, 0xc9, 0x28, 0x41, 0x55, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0xcc, 0x0e, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0xdf, 0x16, 0x26, 0xb7, 0x06, 0xd2, 0xf6, 0x56, 0xe7, 0x46, 0x07, 0x42, 0x96, 0x26, 0x47, 0x97, 0xb7, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x4b, 0x6b, 0x87, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xf0, 0xf4, 0x90, 0xa0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x43, 0x7b, 0x87, 0x36, 0xfc, 0xb9, 0x34, 0x38, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xb1, 0x3b, 0x74, 0x70, 0xde, 0x3c, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x66, 0xe1, 0xa1, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x7c, 0xed, 0xca, 0xe4, 0xe6, 0xd2, 0xde, 0xdc, 0x40, 0xea, 0xe0, 0xc8, 0xc2, 0xe8, 0xca, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x5a, 0xf1, 0xd0, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x1a, 0x74, 0xb1, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xad, 0x79, 0x68, 0xc3, 0x9f, 0x4b, 0x83, 0xc3, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xdd, 0xca, 0x43, 0x07, 0xe7, 0xcd, 0xd3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xc3, 0xa7, 0x87, 0x36, 0xfc, 0xb9, 0x34, 0x78, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x15, 0x3d, 0xb4, 0xe1, 0xdf, 0xf9, 0x05, 0xfc, 0xb6, 0x37, 0xb2, 0xb2, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x30, 0x7b, 0x68, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xbf, 0xb6, 0xb7, 0x3a, 0x37, 0x3a, 0x10, 0xb8, 0xb7, 0x34, 0x37, 0xba, 0xb9, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xc1, 0x3d, 0xb4, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0xb7, 0x5e, 0x0f, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x41, 0x3e, 0xb4, 0xe1, 0xcf, 0xa5, 0xc1, 0xe1, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xc4, 0xf0, 0xa1, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xd4, 0xf3, 0xa1, 0x83, 0x90, 0x32, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x99, 0x7d, 0xe8, 0xe0, 0xbc, 0x79, 0x5a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0xca, 0x0f, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0x4b, 0x58, 0x5b, 0xd9, 0x1c, 0x48, 0x5b, 0xd9, 0xdc, 0x5c, 0xd8, 0x59, 0x19, 0x08, 0x8a, 0x5b, 0x4a, 0xd8, 0xd8, 0xda, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0xa9, 0x1f, 0x3a, 0x58, 0x85, 0x12, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xe8, 0xfe, 0xd0, 0x86, 0x3f, 0x97, 0x06, 0x78, 0xca, 0xe4, 0xe4, 0xde, 0xe4, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x86, 0xfc, 0xa1, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x98, 0xff, 0xa1, 0x83, 0xb2, 0x09, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xba, 0x01, 0xa2, 0x0d, 0xff, 0xce, 0xaf, 0xc1, 0xa3, 0xf4, 0xf1, 0x3a, 0x78, 0x27, 0x72, 0x5d, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x9d, 0x40, 0xb4, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x5f, 0x5b, 0x99, 0xdc, 0x59, 0x19, 0x88, 0x5c, 0xd9, 0x5c, 0x1d, 0x1b, 0xdd, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x63, 0x20, 0x3a, 0x78, 0x12, 0x7a, 0xdd, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x79, 0x14, 0x44, 0x1b, 0xfe, 0x5c, 0x1a, 0x1c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x8f, 0x20, 0xda, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xc0, 0x20, 0x3a, 0x58, 0x05, 0x99, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x30, 0x07, 0xd1, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xe4, 0x07, 0xd1, 0x41, 0x89, 0xf8, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x14, 0x09, 0xd1, 0xc1, 0x19, 0x09, 0xb5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x23, 0x50, 0x88, 0x36, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xcb, 0x55, 0x88, 0x0e, 0x4a, 0x6f, 0xfa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x73, 0x5e, 0x88, 0x0e, 0xd6, 0x6b, 0x3d, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x37, 0x43, 0x74, 0xd0, 0xa0, 0x78, 0x60, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x38, 0x0e, 0xd1, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x7c, 0x90, 0x95, 0xb1, 0x95, 0xd1, 0x95, 0x81, 0xb4, 0xbd, 0xd5, 0xb9, 0xd1, 0x81, 0xc0, 0xbd, 0xa5, 0xb9, 0xd1, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xbe, 0x1d, 0xa2, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x3c, 0x87, 0x28, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xbc, 0x21, 0xa2, 0x0d, 0x7f, 0x2e, 0x0d, 0x0e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0x03, 0x11, 0x1d, 0x9c, 0x37, 0x4f, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xeb, 0x88, 0x68, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x7e, 0xdc, 0xde, 0xc8, 0xca, 0x40, 0xe4, 0x56, 0xee, 0x40, 0xe0, 0xca, 0xe4, 0xda, 0xd2, 0xe6, 0xe6, 0xd2, 0xde, 0xdc, 0xe6, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x7d, 0x12, 0xd1, 0x41, 0x1b, 0x22, 0x9d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0x46, 0x11, 0x6d, 0xf8, 0x73, 0x69, 0xc0, 0x93, 0x2b, 0x23, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x0b, 0x9e, 0x88, 0x36, 0xfc, 0x3b, 0xbf, 0x80, 0x4f, 0x96, 0x36, 0x46, 0xd7, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x71, 0x59, 0x44, 0x1b, 0xfe, 0x5c, 0xda, 0xa0, 0xb9, 0x6f, 0xdc, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x6e, 0x2b, 0xa2, 0x83, 0x27, 0xb4, 0xe4, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x7b, 0x17, 0xd1, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x1e, 0x61, 0x70, 0x70, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x11, 0x8c, 0x68, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0xcf, 0x2a, 0x09, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x11, 0x8d, 0x68, 0xc3, 0x9f, 0x4b, 0x83, 0xc3, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xf5, 0x65, 0x44, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x19, 0x6c, 0x44, 0x07, 0xab, 0x20, 0x93, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x83, 0x23, 0xda, 0xf0, 0xef, 0xfc, 0x1a, 0xde, 0xb8, 0x6b, 0x0d, 0x9e, 0x55, 0x12, 0x54, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0xd2, 0x11, 0x6d, 0xf8, 0x77, 0x7e, 0x01, 0xff, 0x2e, 0xcc, 0xae, 0xec, 0xe0, 0x99, 0x3f, 0x79, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x93, 0x1e, 0xd1, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x06, 0x4f, 0xcb, 0xc0, 0x6a, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0xf3, 0x11, 0x1d, 0x3c, 0x01, 0xbc, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x72, 0x42, 0xa2, 0x0d, 0x7f, 0x2e, 0x0d, 0x0e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0x09, 0x12, 0x6d, 0xf8, 0x77, 0x7e, 0x0d, 0xde, 0x0c, 0x86, 0x57, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x91, 0x48, 0xb4, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x5f, 0x5b, 0x98, 0x5b, 0x1e, 0xc8, 0x18, 0x5a, 0x98, 0xdb, 0x59, 0xd9, 0xdc, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x5d, 0x24, 0x3a, 0x78, 0xaa, 0x75, 0xdd, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xd1, 0x93, 0x44, 0x1b, 0xfe, 0x5c, 0x1a, 0x1c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x8a, 0x24, 0xda, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x69, 0x96, 0x44, 0x07, 0xa7, 0xb4, 0xd6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xbb, 0x3d, 0x89, 0x36, 0xfc, 0xb9, 0x34, 0x38, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xc4, 0x49, 0x74, 0x70, 0xe4, 0x6b, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xca, 0x53, 0xa2, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0x93, 0x12, 0x6d, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0xac, 0x12, 0x1d, 0x94, 0x88, 0xef, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0xbd, 0x12, 0x6d, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0xc9, 0x12, 0x1d, 0x94, 0xde, 0xf4, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0xda, 0x12, 0x1d, 0x3c, 0x87, 0xf2, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x14, 0x5d, 0xa2, 0x83, 0x33, 0x12, 0x6a, 0xd5, 0x0a, 0xf8, 0x75, 0x6e, 0x63, 0xe5, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0xab, 0xcc, 0xf2, 0x1a, 0xc0, 0x6b, 0x0c, 0x2d, 0xcc, 0xed, 0xac, 0x0c, 0x04, 0x2e, 0x4c, 0x8e, 0x6e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xd8, 0x97, 0x68, 0x83, 0x42, 0xb9, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x10, 0x85, 0x64, 0x20, 0x43, 0x14, 0xf2, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x86, 0x28, 0x64, 0x07, 0xcf, 0x6f, 0xcb, 0x3b, 0x38, 0xb6, 0x0e, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0x08, 0x13, 0x6d, 0xf8, 0xa8, 0x7d, 0x83, 0xa0, 0xfd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xc4, 0x98, 0x68, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x9f, 0xb9, 0xb5, 0x34, 0xb8, 0xad, 0xb1, 0x37, 0xb8, 0xbc, 0xae, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x8c, 0x4c, 0x74, 0x10, 0xb0, 0x41, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0x3b, 0x13, 0x6d, 0xf8, 0x73, 0x69, 0x70, 0x78, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x8e, 0x99, 0xe8, 0xa0, 0xcc, 0xd2, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x68, 0x69, 0xa2, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x3c, 0xe1, 0x40, 0x5a, 0x7c, 0x40, 0xe2, 0xb6, 0xc6, 0xd0, 0xea, 0xdc, 0xd6, 0xba, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x5b, 0x35, 0xd1, 0x41, 0x18, 0x01, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xbb, 0x4d, 0xb4, 0xe1, 0xcf, 0xa5, 0xc1, 0xe1, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x92, 0x6c, 0xa2, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x9e, 0x6f, 0xa2, 0x83, 0x90, 0x32, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x6f, 0x9c, 0xe8, 0xe0, 0xd0, 0x69, 0xd9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x5d, 0xea, 0x44, 0x1b, 0xfe, 0x5c, 0x1a, 0x3c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x3e, 0x27, 0xda, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x6f, 0x27, 0x3a, 0x08, 0x29, 0x93, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x5b, 0xe4, 0x89, 0x0e, 0x0e, 0x9d, 0x96, 0xd5, 0xe1, 0x14, 0x5b, 0xc0, 0xaf, 0x93, 0x3b, 0x2b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x33, 0xed, 0x89, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x62, 0x4b, 0x9b, 0xa3, 0x03, 0x19, 0x43, 0x0b, 0x73, 0x3b, 0x2b, 0xdb, 0xa0, 0x50, 0xee, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x44, 0x61, 0x30, 0x90, 0x25, 0x0a, 0xb3, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x96, 0x28, 0x4c, 0x0e, 0x5e, 0x75, 0x99, 0x77, 0x70, 0x6c, 0x1d, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xcf, 0x27, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xcd, 0xfc, 0x44, 0x07, 0x21, 0x65, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x43, 0x40, 0xd1, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x1e, 0x28, 0xda, 0xf0, 0xb6, 0xce, 0x06, 0xaf, 0x32, 0xcb, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x44, 0x84, 0xa2, 0xc3, 0xd3, 0x3a, 0x35, 0x0b, 0xf8, 0x6e, 0x6f, 0x72, 0xe9, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0x47, 0x86, 0xd0, 0x83, 0xd7, 0x8f, 0xe6, 0x35, 0x00, 0x0f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0xaf, 0x1f, 0xcd, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x6a, 0x28, 0xda, 0x20, 0x68, 0x7f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x82, 0x28, 0xda, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xe0, 0x21, 0x2b, 0x63, 0xa3, 0x0b, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xe5, 0x12, 0x45, 0x07, 0x01, 0x1b, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x48, 0x46, 0xd1, 0x86, 0x3f, 0x97, 0x06, 0x87, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x2b, 0x2d, 0x8a, 0x36, 0xfc, 0x3b, 0xbf, 0x80, 0x3f, 0xf7, 0x26, 0x16, 0x56, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0x75, 0x14, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xf0, 0xb0, 0x85, 0x89, 0x95, 0xb1, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xf4, 0x8f, 0xa2, 0x83, 0x30, 0x02, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xc5, 0xa4, 0x68, 0xc3, 0x9f, 0x4b, 0x83, 0xc3, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xa1, 0x23, 0x45, 0x07, 0xe7, 0xcd, 0xd3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x43, 0x59, 0x8a, 0x36, 0xfc, 0xb9, 0x34, 0x78, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xa0, 0x52, 0xb4, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x03, 0x53, 0x74, 0x50, 0x36, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x47, 0x53, 0xb4, 0xe1, 0xdf, 0xf9, 0x35, 0x78, 0xfe, 0xb4, 0x4b, 0x55, 0xab, 0xc1, 0x4b, 0x8e, 0x42, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x5e, 0x72, 0x14, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xa5, 0x53, 0xb4, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x17, 0x5c, 0x18, 0x1d, 0x1a, 0x08, 0x9c, 0x5c, 0x99, 0x59, 0x1a, 0xde, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0xfc, 0x29, 0xda, 0xf0, 0xe7, 0xd2, 0xe0, 0xf0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x3d, 0x4f, 0xd1, 0x41, 0xdb, 0xd6, 0xe3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0x17, 0x15, 0x6d, 0xf8, 0x73, 0x69, 0xf0, 0x78, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x6d, 0xa8, 0xe8, 0xe0, 0x51, 0x78, 0x21, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x47, 0x34, 0x15, 0x6d, 0xf8, 0x73, 0x69, 0x70, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x4f, 0xa9, 0xe8, 0xe0, 0xad, 0x7a, 0x21, 0xcd, 0x1a, 0x3c, 0x25, 0xca, 0x68, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x23, 0x43, 0xe8, 0xc1, 0x53, 0xa2, 0x8c, 0x1a, 0x80, 0x17, 0x38, 0xb9, 0xb7, 0xb1, 0xb2, 0xb9, 0xb9, 0x32, 0x32, 0x90, 0xb6, 0x30, 0xb9, 0x35, 0x90, 0xb1, 0x37, 0xb9, 0xb2, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0xa7, 0x44, 0x19, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0x49, 0x15, 0x6d, 0x10, 0x40, 0x67, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x45, 0x55, 0x45, 0x1b, 0x24, 0x2d, 0x18, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x47, 0x5f, 0x15, 0x6d, 0x50, 0x96, 0x61, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0xb0, 0x90, 0x0c, 0xe4, 0xc1, 0xc2, 0x62, 0xc3, 0x9f, 0x4b, 0x1b, 0xac, 0x52, 0xff, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x3c, 0x58, 0x48, 0x0f, 0xde, 0x2e, 0x9e, 0x77, 0xd0, 0xec, 0x76, 0xd4, 0x2c, 0xb3, 0x06, 0x6f, 0x52, 0xbe, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0xd9, 0x2a, 0xda, 0x60, 0x71, 0x61, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x05, 0x5e, 0x45, 0x1b, 0xfe, 0x5c, 0xda, 0x20, 0xa1, 0x42, 0x6e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x12, 0xac, 0x68, 0x83, 0x00, 0x3a, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x19, 0x2b, 0x3a, 0x58, 0x26, 0x3f, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x62, 0x56, 0xb4, 0x41, 0x21, 0x98, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0xb0, 0x30, 0x3e, 0x78, 0xd5, 0x59, 0xd1, 0x41, 0xb3, 0xdb, 0x51, 0xab, 0x41, 0x5a, 0x19, 0xcb, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x64, 0x5a, 0xd1, 0x06, 0x8b, 0x0b, 0x93, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x64, 0x58, 0xc8, 0x06, 0x92, 0x61, 0xa1, 0x7c, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x32, 0x2c, 0x84, 0x03, 0xc9, 0xb0, 0xd0, 0xb1, 0xe1, 0xcf, 0xa5, 0xc1, 0xc3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x86, 0x85, 0xf8, 0xe0, 0x45, 0xfa, 0x79, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x61, 0x21, 0x1f, 0x48, 0x86, 0x85, 0xcd, 0x41, 0xdb, 0xd6, 0xe3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x32, 0x2c, 0x8c, 0x06, 0x92, 0x61, 0x61, 0x78, 0xf0, 0x28, 0xbc, 0x90, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x19, 0x16, 0x96, 0x03, 0xc9, 0xb0, 0x50, 0xb1, 0xe1, 0xcf, 0xa5, 0x0d, 0xde, 0xa4, 0x7c, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xb0, 0x30, 0x3f, 0x78, 0x69, 0x81, 0xde, 0x41, 0xb3, 0xdb, 0x51, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xb0, 0x50, 0x32, 0x90, 0x0c, 0x0b, 0xdd, 0x1b, 0xfe, 0x5c, 0x1a, 0x5c, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x64, 0x58, 0xa8, 0x39, 0x78, 0xf5, 0x82, 0xde, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x64, 0x58, 0xe8, 0x19, 0x48, 0x86, 0x85, 0xae, 0x83, 0xb6, 0xad, 0xc7, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x64, 0x58, 0x28, 0x1b, 0x48, 0x86, 0x85, 0xc2, 0x83, 0x47, 0xe1, 0x85, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xb0, 0xd0, 0x38, 0x90, 0x0c, 0x0b, 0xd5, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x4d, 0xca, 0x77, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x0c, 0x0b, 0xb5, 0x07, 0xaf, 0xba, 0xd0, 0x3b, 0x68, 0x76, 0x3b, 0xaa, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x4b, 0xdb, 0x8a, 0x36, 0x28, 0x04, 0x53, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x1b, 0x16, 0x82, 0x83, 0xa7, 0xaa, 0x15, 0x6d, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x36, 0x2c, 0x24, 0x03, 0xd9, 0xb0, 0x90, 0x1e, 0x94, 0x4d, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x36, 0x2c, 0xc4, 0x03, 0xd9, 0xb0, 0x30, 0x39, 0x68, 0x76, 0x3b, 0xaa, 0x59, 0x83, 0xb7, 0xfc, 0xda, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0xc2, 0x15, 0x6d, 0x50, 0x08, 0xa6, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x26, 0x2c, 0x0c, 0x0e, 0xde, 0x1c, 0x57, 0x74, 0xf0, 0xbe, 0x0d, 0x91, 0xc3, 0x29, 0xb6, 0x06, 0x0f, 0xf3, 0xbf, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x9c, 0x2b, 0xda, 0x60, 0x71, 0x61, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x0e, 0x0b, 0x93, 0x81, 0x74, 0x58, 0xd8, 0x6e, 0xf8, 0x73, 0x69, 0x83, 0x37, 0x29, 0xdf, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x3a, 0x2c, 0xec, 0x0e, 0x1e, 0xf4, 0xa2, 0x77, 0xd0, 0xec, 0x76, 0xd4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xbd, 0x5d, 0xd1, 0xc1, 0x32, 0xf9, 0xe1, 0xd5, 0xe0, 0xcd, 0x5a, 0x4a, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x25, 0x7a, 0x45, 0x1b, 0x2c, 0x2e, 0x4c, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x61, 0x61, 0x32, 0x90, 0x0f, 0x0b, 0xb3, 0x83, 0xe5, 0xb0, 0xd8, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x55, 0x7d, 0x45, 0x07, 0xcb, 0xe4, 0x87, 0x67, 0x0d, 0xce, 0x30, 0x92, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x7d, 0x80, 0x45, 0x1b, 0x2c, 0x2e, 0x4c, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x61, 0x61, 0x32, 0x90, 0x0a, 0x0b, 0x0d, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x61, 0x61, 0x33, 0x90, 0x0a, 0x0b, 0xcb, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x2a, 0x2c, 0xac, 0x0e, 0x5e, 0x2d, 0xa4, 0x77, 0xd0, 0xec, 0x76, 0xd4, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x0a, 0x0b, 0xd3, 0x81, 0x54, 0x58, 0x28, 0xd8, 0xf0, 0xe7, 0xd2, 0xe0, 0xe2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xc2, 0xc2, 0xf8, 0xe0, 0xa1, 0x48, 0x7a, 0x07, 0xcd, 0x6e, 0x47, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x3f, 0x58, 0xb4, 0x41, 0x21, 0x98, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xb0, 0xd0, 0x71, 0xf0, 0x8e, 0xc2, 0xa2, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x85, 0x85, 0x92, 0x81, 0x54, 0x58, 0x28, 0x3a, 0x28, 0x9b, 0x30, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x54, 0x58, 0x68, 0x1a, 0x48, 0x85, 0x85, 0xd2, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x85, 0x85, 0xaa, 0x81, 0x54, 0x58, 0xa8, 0x3b, 0x28, 0x9b, 0x30, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x54, 0x58, 0xe8, 0x1b, 0x48, 0x85, 0x85, 0xce, 0x83, 0x66, 0xb7, 0xa3, 0xea, 0x70, 0x8a, 0x75, 0x38, 0xc5, 0x66, 0x0d, 0x9e, 0x70, 0x9b, 0xb5, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0xc1, 0x91, 0x21, 0xf4, 0xe0, 0x09, 0xb7, 0x59, 0x0d, 0xc0, 0x8f, 0x5c, 0xd9, 0xdc, 0x1b, 0x9b, 0x5d, 0x19, 0x19, 0x08, 0x5c, 0x99, 0x5c, 0x5b, 0xda, 0xdc, 0x5c, 0xda, 0x9b, 0xdb, 0xdc, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x13, 0x6e, 0xb3, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x83, 0x13, 0x8b, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xb1, 0x63, 0xd1, 0x86, 0x3f, 0x97, 0x36, 0x34, 0x3f, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x61, 0x2c, 0xda, 0x20, 0xd8, 0x4c, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x97, 0x2c, 0xda, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0xdb, 0x21, 0x8b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0xbc, 0x2c, 0xda, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0xcb, 0x0e, 0x8b, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xf5, 0xb3, 0x68, 0xc3, 0x9f, 0x4b, 0x03, 0xde, 0x1d, 0xda, 0xbb, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xd1, 0x59, 0xb4, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x33, 0x5a, 0x74, 0x50, 0x7a, 0xd3, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x78, 0x5a, 0xb4, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xa4, 0x5a, 0x74, 0x50, 0x22, 0xbe, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xe9, 0x5a, 0x74, 0xd0, 0xb6, 0xf5, 0x78, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0xc9, 0x16, 0x6d, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0xd4, 0x16, 0x1d, 0x94, 0x88, 0xf5, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0xe9, 0x16, 0x1d, 0x1c, 0xb5, 0x41, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0xf4, 0x2d, 0x3a, 0x78, 0x7f, 0x32, 0x5e, 0x75, 0x38, 0xc5, 0x5a, 0xc0, 0x27, 0x7b, 0x6b, 0x7b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x38, 0x32, 0x84, 0x1e, 0x3c, 0xf4, 0x4f, 0xaf, 0x01, 0x3c, 0xe1, 0xe4, 0xde, 0xd4, 0xca, 0xc6, 0xe8, 0x40, 0xe6, 0xe8, 0xc2, 0xe8, 0xca, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x1e, 0xfa, 0xa7, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x42, 0x5c, 0xb4, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x5b, 0x92, 0x8b, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf8, 0xe8, 0xde, 0xe0, 0x40, 0xd2, 0xc8, 0x36, 0xfc, 0xb9, 0x34, 0xe0, 0xb1, 0x95, 0xd1, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xa1, 0xc6, 0x45, 0x07, 0x65, 0x96, 0xee, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x69, 0xd0, 0x45, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0x8e, 0xa1, 0x85, 0xb9, 0x9d, 0x95, 0xcd, 0x81, 0x88, 0xe5, 0x81, 0xa4, 0x91, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0xe5, 0xbd, 0xa1, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xdd, 0xcd, 0x45, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xfd, 0xd3, 0x45, 0x07, 0x25, 0x62, 0xfd, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x25, 0xd9, 0x45, 0x07, 0x65, 0x96, 0xee, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x49, 0xdd, 0x45, 0x1b, 0xfe, 0x9d, 0x5f, 0x83, 0xf7, 0x33, 0x2d, 0x55, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0x92, 0x17, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xf0, 0xb1, 0x85, 0x89, 0x95, 0xb1, 0xcd, 0x6d, 0xf8, 0x73, 0x69, 0xc0, 0x63, 0x0b, 0x13, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x1b, 0xc4, 0x8b, 0x36, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x5b, 0xd0, 0x8b, 0x0e, 0x4a, 0xc4, 0xfa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xab, 0xda, 0x8b, 0x0e, 0xce, 0x9b, 0xa7, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0xc9, 0x17, 0x1d, 0x94, 0x59, 0xba, 0xb5, 0x02, 0xbe, 0x5c, 0x9a, 0x99, 0xb9, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0xb6, 0x51, 0xbd, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x24, 0xfc, 0xa2, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x7c, 0xe5, 0xca, 0xe2, 0xea, 0xca, 0xe6, 0xe8, 0x56, 0xc8, 0xca, 0xe6, 0xd2, 0xe6, 0xe8, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x5d, 0x7f, 0xd1, 0x86, 0x3f, 0x97, 0x06, 0x87, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xcb, 0xf5, 0x8b, 0x0e, 0x1e, 0x85, 0x17, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x1f, 0x81, 0xd1, 0x86, 0x3f, 0x97, 0x06, 0x8f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xd3, 0x03, 0x8c, 0x36, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x1b, 0x10, 0x8c, 0x0e, 0xca, 0x26, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xa3, 0x18, 0x8c, 0x36, 0xfc, 0x3b, 0xbf, 0x80, 0x2f, 0x17, 0x66, 0x57, 0x56, 0xad, 0x06, 0x8f, 0x63, 0x72, 0xdb, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xe0, 0xc8, 0x10, 0x7a, 0xf0, 0x38, 0x26, 0xb7, 0x06, 0xf0, 0x32, 0x7b, 0x93, 0x23, 0x03, 0x91, 0x2b, 0x9b, 0xab, 0x63, 0xa3, 0xdb, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0x1c, 0x93, 0xdb, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x99, 0x84, 0xd1, 0x06, 0x41, 0xfb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x8a, 0x85, 0xd1, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xc5, 0x30, 0xda, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0xeb, 0xc2, 0x42, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x05, 0x31, 0xda, 0xf0, 0xe7, 0xd2, 0x06, 0xaf, 0x0b, 0x0b, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xf1, 0x30, 0x3a, 0x78, 0x2f, 0x02, 0x49, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0x98, 0x18, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x64, 0x14, 0xa3, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0xac, 0xd4, 0x70, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x18, 0xc6, 0x68, 0xc3, 0x9f, 0x4b, 0x1b, 0xac, 0xd4, 0x70, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x71, 0x31, 0x3a, 0x68, 0x76, 0x3b, 0xaa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xb3, 0x6c, 0x8c, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x3c, 0x8e, 0xd1, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0xde, 0x4b, 0x15, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x3c, 0x90, 0xd1, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb2, 0x34, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xcb, 0xc7, 0x68, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x90, 0xc8, 0xe8, 0xa0, 0x44, 0xac, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x35, 0xc9, 0xe8, 0xe0, 0xa8, 0x0d, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x74, 0x93, 0xd1, 0x41, 0xb3, 0xdb, 0x51, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xbf, 0x94, 0xd1, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0xac, 0x32, 0xda, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0x53, 0xa2, 0x8c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xec, 0x32, 0xda, 0xf0, 0xe7, 0xd2, 0x06, 0x4f, 0x89, 0x32, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xd7, 0x32, 0xda, 0xf0, 0xef, 0xfc, 0x1a, 0x3c, 0x25, 0xca, 0xa8, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x45, 0xcc, 0x68, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0x93, 0x19, 0x6d, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xe0, 0x7d, 0x10, 0x46, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0xb3, 0x19, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0xf7, 0x41, 0x18, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0xa9, 0x19, 0x6d, 0xf8, 0x77, 0x7e, 0x83, 0xd7, 0x41, 0x18, 0x55, 0xb3, 0x06, 0xc9, 0x43, 0xc2, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0xc9, 0x43, 0xc2, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x41, 0x73, 0x46, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0xbb, 0xbd, 0x91, 0x95, 0x81, 0xc0, 0x95, 0xc9, 0xb5, 0xa5, 0xcd, 0xcd, 0xa5, 0xbd, 0xb9, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x38, 0x3c, 0xa3, 0x0d, 0x7f, 0x2e, 0x6d, 0x68, 0x7e, 0xb0, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x5d, 0x67, 0xb4, 0x41, 0xb0, 0x99, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xbc, 0x67, 0x74, 0xf0, 0x28, 0x35, 0xbd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xbb, 0xfd, 0x8c, 0x0e, 0x1e, 0xcd, 0xa6, 0xd7, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x5d, 0x85, 0x46, 0x1b, 0xfe, 0x5c, 0x1a, 0xf0, 0xee, 0xd0, 0xde, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x62, 0x41, 0xa3, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x78, 0x44, 0xa3, 0x83, 0x12, 0xf1, 0x7d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x9e, 0x46, 0xa3, 0x0d, 0xff, 0xce, 0x6f, 0xf0, 0xfc, 0x7b, 0x8c, 0x6a, 0x35, 0x58, 0x61, 0x78, 0xbc, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0xc1, 0x91, 0x21, 0xf4, 0x60, 0x85, 0xe1, 0x71, 0x03, 0x78, 0xb6, 0xd5, 0xc9, 0x91, 0x95, 0xc9, 0x81, 0xdc, 0x95, 0x85, 0xc1, 0xbd, 0xb9, 0x6d, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xac, 0x30, 0x3c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x9b, 0x34, 0xda, 0x20, 0x68, 0x7f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xba, 0x34, 0xda, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x73, 0x0e, 0xae, 0x6c, 0x2c, 0xcd, 0x2c, 0x6d, 0x0c, 0x84, 0xed, 0x4d, 0xac, 0x6c, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0x67, 0x1a, 0x6d, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xe0, 0x89, 0x95, 0x46, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0x87, 0x1a, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0x27, 0x56, 0x1a, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0x7d, 0x1a, 0x6d, 0xf8, 0x77, 0x7e, 0x0d, 0x9e, 0x58, 0x69, 0x54, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x6e, 0x6a, 0xb4, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x7f, 0x18, 0x1b, 0x1b, 0xc8, 0x5c, 0x98, 0x59, 0x19, 0x08, 0x5d, 0x98, 0xdc, 0x59, 0x19, 0xdd, 0xdc, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x4c, 0x35, 0xda, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0xa1, 0x21, 0xb0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xbd, 0xab, 0xd1, 0x41, 0x08, 0x3e, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xd0, 0xac, 0xd1, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xde, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x67, 0x61, 0x72, 0x62, 0x61, 0x67, 0x65, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xbb, 0xd6, 0x68, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x4b, 0x73, 0x6e, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xda, 0x35, 0x3a, 0x08, 0xc1, 0x87, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xfc, 0x35, 0xda, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x7f, 0xae, 0x8c, 0x0e, 0x84, 0xac, 0xcc, 0x2c, 0xac, 0x8e, 0x8d, 0x0e, 0xc4, 0xed, 0x4d, 0xae, 0x6d, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0x08, 0x1b, 0x6d, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xa0, 0xb1, 0x18, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x7b, 0x94, 0x8d, 0x36, 0xfc, 0xb9, 0xb4, 0x41, 0xd3, 0xd7, 0xe3, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xad, 0xc7, 0x46, 0x07, 0x6d, 0x5b, 0x8f, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x15, 0x6d, 0xb4, 0xe1, 0xcf, 0xa5, 0x0d, 0xde, 0x8c, 0x17, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xec, 0x6c, 0x74, 0xf0, 0x28, 0xbc, 0x90, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xd3, 0xb0, 0x8d, 0x36, 0xfc, 0xb9, 0xb4, 0x41, 0x63, 0x31, 0x98, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xd5, 0xd5, 0x46, 0x1b, 0xfe, 0x9d, 0xdf, 0xa0, 0xa9, 0x18, 0xcc, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xce, 0xdb, 0x68, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xef, 0xb9, 0x32, 0x3a, 0x90, 0xb1, 0xb7, 0xb6, 0xb6, 0x34, 0x3a, 0x10, 0xb7, 0x37, 0xb9, 0xb6, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x10, 0x6e, 0xb4, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x77, 0x72, 0x1b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x91, 0x6e, 0xb4, 0xe1, 0xcf, 0xa5, 0x0d, 0x9a, 0xbe, 0x1e, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x34, 0x37, 0x3a, 0x68, 0xdb, 0x7a, 0x7c, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xc6, 0x77, 0xa3, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x66, 0xbc, 0x90, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x7e, 0x76, 0xa3, 0x83, 0x47, 0xe1, 0x85, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x60, 0x6f, 0xb4, 0xe1, 0xcf, 0xa5, 0x0d, 0xde, 0xcf, 0xb4, 0xb4, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x37, 0x6f, 0x74, 0xf0, 0xd2, 0x4b, 0xbd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xa3, 0xfb, 0x8d, 0x36, 0xfc, 0xb9, 0xb4, 0x41, 0x63, 0x31, 0x98, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x39, 0xfb, 0x46, 0x07, 0x2f, 0xaa, 0xd9, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xd2, 0x80, 0xa3, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xf8, 0x30, 0x2b, 0xa3, 0x1b, 0x43, 0x03, 0x99, 0x7b, 0xab, 0x93, 0x1b, 0x2b, 0x03, 0x11, 0x63, 0x7b, 0x13, 0x9b, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x41, 0x04, 0x47, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x78, 0x44, 0xa4, 0xd1, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x5d, 0x0c, 0x47, 0x1b, 0xfe, 0x5c, 0xda, 0xa0, 0xe9, 0xeb, 0xf1, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xe6, 0x84, 0xa3, 0x83, 0xb6, 0xad, 0xc7, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x96, 0x38, 0xda, 0xf0, 0xe7, 0xd2, 0x06, 0x6f, 0xc6, 0x0b, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x82, 0x38, 0x3a, 0x78, 0x14, 0x5e, 0xc8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x51, 0x19, 0x47, 0x1b, 0xfe, 0x5c, 0xda, 0xa0, 0x3d, 0xdb, 0xd0, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x5e, 0x8b, 0xa3, 0x0d, 0xff, 0xce, 0x6f, 0xd0, 0xd2, 0x8f, 0x68, 0xb5, 0x1a, 0xb4, 0x3a, 0xe1, 0xba, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0xc1, 0x91, 0x21, 0xf4, 0xa0, 0xd5, 0x09, 0xd7, 0x06, 0xe0, 0x45, 0xae, 0x6c, 0x0e, 0xee, 0xcd, 0x6d, 0xae, 0x0c, 0x84, 0xee, 0x0d, 0x44, 0xae, 0x2c, 0xae, 0xae, 0x6c, 0x8e, 0x6e, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xa0, 0xd5, 0x09, 0xd7, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xfe, 0x8f, 0xa3, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x50, 0x72, 0xb4, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x1f, 0x63, 0x6c, 0x61, 0x64, 0x65, 0x20, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x62, 0x6f, 0x6f, 0x6b, 0x1b, 0xfe, 0x5c, 0x1a, 0x1c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x13, 0x39, 0xda, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x2d, 0x2a, 0x47, 0x1b, 0xfe, 0x5c, 0x1a, 0x1c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x3d, 0x39, 0x3a, 0x78, 0x0e, 0xe5, 0xdd, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x29, 0x32, 0x47, 0x1b, 0xfe, 0x5c, 0x1a, 0x3c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x7c, 0x39, 0x3a, 0x78, 0xab, 0x5e, 0xc8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x25, 0x3a, 0x47, 0x1b, 0xfe, 0x5c, 0x1a, 0x5c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0xbc, 0x39, 0x3a, 0x78, 0x14, 0x5e, 0x48, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x47, 0x05, 0x1d, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x6c, 0xd0, 0x7e, 0xf9, 0x78, 0x1b, 0xfe, 0x5c, 0x1a, 0x3c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xf6, 0x39, 0x3a, 0x38, 0x23, 0xa1, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x85, 0x74, 0xb4, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x73, 0x70, 0x2c, 0x8d, 0xdb, 0xf0, 0xe7, 0xd2, 0xe0, 0xf2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x75, 0xd1, 0xd1, 0xc1, 0x7b, 0x11, 0x48, 0x9a, 0x35, 0x78, 0xea, 0xca, 0xd2, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0x47, 0x86, 0xd0, 0x83, 0xa7, 0xae, 0x2c, 0x35, 0xc0, 0x37, 0xf6, 0xd6, 0xd6, 0x96, 0x46, 0xb7, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0xd4, 0x95, 0xa5, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x0e, 0xa7, 0xa3, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x32, 0x75, 0xb4, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0xc0, 0x0b, 0x17, 0x26, 0x57, 0xe6, 0x46, 0x37, 0xb7, 0xe1, 0xcf, 0xa5, 0xc1, 0xe1, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x4a, 0xa8, 0xa3, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x5a, 0xab, 0xa3, 0x83, 0x90, 0x32, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x5e, 0xeb, 0xe8, 0xe0, 0xa5, 0x97, 0x7a, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x20, 0x76, 0xb4, 0xe1, 0x89, 0xf7, 0x0d, 0x16, 0x62, 0x71, 0x6f, 0xf8, 0x73, 0x69, 0xf0, 0x78, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xee, 0xeb, 0x68, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xb2, 0xec, 0xe8, 0xa0, 0x44, 0xac, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x3b, 0xed, 0xe8, 0xe0, 0x8c, 0x84, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x56, 0xdb, 0xd1, 0xc1, 0x1b, 0x21, 0xf6, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x8b, 0xee, 0x68, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xdf, 0xb9, 0x32, 0x36, 0xb3, 0x16, 0xb9, 0x32, 0xb3, 0x32, 0xb9, 0x32, 0xb7, 0xb1, 0xb2, 0x0d, 0x7f, 0x2e, 0x0d, 0x2e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0xc7, 0x1d, 0x1d, 0xbc, 0xf4, 0x52, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xb4, 0xbd, 0xa3, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x83, 0x84, 0x27, 0xd1, 0x0d, 0x7f, 0x2e, 0x0d, 0x4e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0xe3, 0x1d, 0x1d, 0x1c, 0xf9, 0x5a, 0x5b, 0x01, 0x3f, 0xef, 0x6d, 0x2d, 0xdd, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0xea, 0xe9, 0xde, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x96, 0xe0, 0xd1, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0xc1, 0x6b, 0x0c, 0xf7, 0x36, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xdb, 0x0b, 0x8f, 0x0e, 0x56, 0x41, 0x26, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xa3, 0x78, 0xb4, 0xe1, 0xdf, 0xf9, 0x05, 0xfc, 0xbc, 0xba, 0xb5, 0xb4, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x71, 0x3c, 0xda, 0xf0, 0xef, 0xfc, 0x1a, 0x3c, 0x75, 0x65, 0xa9, 0x3a, 0x9c, 0x62, 0xd5, 0x1a, 0xbc, 0x96, 0xf2, 0x6e, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x23, 0x43, 0xe8, 0xc1, 0x6b, 0x29, 0xef, 0x1a, 0xc0, 0x6f, 0x8c, 0x2d, 0x2c, 0x0f, 0x64, 0xae, 0x4e, 0xac, 0xed, 0x8d, 0xac, 0x6c, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0xb5, 0x94, 0x77, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xed, 0x93, 0x47, 0x1b, 0x04, 0x9b, 0xe9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x21, 0x97, 0x47, 0x07, 0x29, 0x5b, 0x4c, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0x70, 0x1e, 0x1d, 0xac, 0x14, 0x47, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x27, 0xf4, 0xe8, 0x60, 0xed, 0xcc, 0xde, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x59, 0xa6, 0x47, 0x07, 0xe7, 0xdc, 0x94, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x9b, 0x56, 0x8f, 0x0e, 0x5e, 0x53, 0x10, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x36, 0xec, 0xd1, 0xc1, 0x51, 0xdf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x20, 0xdb, 0xa3, 0x83, 0x33, 0xa7, 0xeb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xa9, 0xbb, 0x47, 0x07, 0xc7, 0x62, 0xd7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x3b, 0x82, 0x8f, 0x0e, 0x16, 0x26, 0xf7, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x70, 0x7c, 0x74, 0xb0, 0x24, 0x26, 0x70, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x4e, 0xe6, 0xa3, 0x83, 0xd3, 0x8f, 0xeb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x11, 0xd2, 0x47, 0x07, 0x09, 0x61, 0x46, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0x5f, 0x1f, 0x1d, 0xac, 0x4b, 0x52, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xb9, 0xfb, 0xe8, 0x60, 0x69, 0xb5, 0xe2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb1, 0xe3, 0x47, 0x07, 0xab, 0x7a, 0x13, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x4c, 0x3f, 0xda, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0x5d, 0x78, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x91, 0xfb, 0xd1, 0x41, 0x62, 0x9b, 0x51, 0xb3, 0x06, 0xef, 0x67, 0x5a, 0xda, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0x3f, 0xd3, 0xd2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x17, 0xfd, 0xd1, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x7f, 0x5e, 0xd8, 0x5a, 0x1a, 0x88, 0x5c, 0x99, 0xd9, 0xc1, 0x7b, 0xbf, 0x42, 0x0e, 0xa7, 0xd8, 0x1a, 0x3c, 0x00, 0x1f, 0x63, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0x01, 0xf8, 0x18, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xd9, 0xf9, 0x47, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xf0, 0x31, 0x87, 0x96, 0x06, 0x07, 0xf2, 0x26, 0x07, 0xe2, 0x16, 0xd6, 0x56, 0x46, 0x06, 0x32, 0x26, 0x57, 0x76, 0xb7, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xd6, 0x7f, 0x74, 0xb0, 0x0a, 0x32, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xda, 0x00, 0xa4, 0x83, 0xb6, 0xad, 0xc7, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x30, 0x40, 0x3a, 0x38, 0x6a, 0x83, 0x36, 0x6b, 0xf0, 0x32, 0xda, 0xbc, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0x97, 0xd1, 0xe6, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0x2f, 0x20, 0x6d, 0x78, 0xe2, 0x7d, 0x83, 0x97, 0xb6, 0xe6, 0x6d, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0x3e, 0x20, 0x1d, 0x84, 0x94, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xa1, 0x15, 0x48, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x59, 0x03, 0x69, 0xc3, 0x9f, 0x4b, 0x83, 0xc3, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x3d, 0x18, 0x48, 0x07, 0x67, 0x24, 0xd4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xb3, 0x43, 0x90, 0x36, 0xfc, 0xb9, 0x34, 0x78, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xf4, 0x81, 0xb4, 0xe1, 0xdf, 0xf9, 0x05, 0xfc, 0xb6, 0xb4, 0xb9, 0xb7, 0x6a, 0x35, 0x78, 0xec, 0x38, 0xde, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x63, 0xc7, 0xf1, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x8b, 0x51, 0x90, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x2d, 0xc3, 0xa3, 0x2b, 0x93, 0x73, 0x0b, 0x63, 0x03, 0x31, 0x4b, 0x63, 0x2b, 0x9b, 0xdb, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x62, 0x41, 0x3a, 0x08, 0x29, 0x93, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x13, 0x63, 0x90, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x09, 0x0d, 0xd2, 0xc1, 0x19, 0x09, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x04, 0x1c, 0xa4, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xce, 0x1d, 0xa4, 0x83, 0xb2, 0x09, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xf0, 0x1f, 0xa4, 0x0d, 0xff, 0xce, 0xaf, 0xc1, 0xd3, 0xb3, 0xe5, 0xaa, 0x9a, 0x05, 0x7c, 0x33, 0xb6, 0xb7, 0x7b, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x23, 0x43, 0xe8, 0xc1, 0x23, 0x15, 0xf8, 0x1a, 0x80, 0x87, 0x33, 0xb6, 0x37, 0xb1, 0x30, 0x36, 0x10, 0xb3, 0x37, 0x39, 0x32, 0x90, 0xb1, 0xb0, 0x31, 0xb4, 0x72, 0x25, 0x00, 0xef, 0xa5, 0xca, 0xcc, 0xc6, 0xde, 0xea, 0xdc, 0xe8, 0x40, 0xd2, 0xdc, 0xc6, 0xd8, 0xea, 0xc8, 0xca, 0xe6, 0x40, 0xe4, 0xca, 0xcc, 0xca, 0xe4, 0xca, 0xdc, 0xc6, 0xca, 0xe6, 0x40, 0xcc, 0xe4, 0xde, 0xda, 0x40, 0xde, 0xe8, 0xd0, 0xca, 0xe4, 0x40, 0xd2, 0xe8, 0xca, 0xda, 0xe6, 0x40, 0xd2, 0xdc, 0x40, 0xe8, 0xd0, 0xca, 0x40, 0xc6, 0xc2, 0xc6, 0xd0, 0xca, 0x58, 0x40, 0xc2, 0xdc, 0xc8, 0x25, 0x80, 0x3f, 0x33, 0xb9, 0xb7, 0x36, 0x90, 0x39, 0xb8, 0x34, 0x36, 0xb6, 0x39, 0x90, 0x34, 0x37, 0x90, 0xb2, 0xb0, 0x31, 0x34, 0x10, 0xb2, 0xb2, 0xb9, 0xb5, 0x95, 0x00, 0xf8, 0x80, 0x0a, 0x2d, 0x6d, 0x0e, 0x24, 0x6d, 0x0e, 0xe4, 0x0d, 0x8e, 0x2e, 0xad, 0x2d, 0x4d, 0xaf, 0x8c, 0x0c, 0xc4, 0xec, 0x4d, 0x0e, 0xa4, 0x2d, 0xcd, 0x2d, 0xad, 0x2d, 0x4d, 0x2f, 0xcd, 0xed, 0x0c, 0x84, 0x0e, 0xad, 0x0c, 0xc4, 0xad, 0xae, 0x4d, 0xac, 0x4c, 0x0e, 0xe4, 0xcd, 0x0c, 0x44, 0xae, 0x4c, 0xac, 0x2e, 0x8d, 0x8d, 0x6c, 0x8e, 0x05, 0x24, 0xcc, 0x8d, 0x0c, 0xe4, 0x2c, 0xcd, 0xae, 0xcc, 0x5d, 0x02, 0xe0, 0x03, 0x3a, 0xb4, 0x30, 0x3a, 0x16, 0x90, 0xb6, 0x34, 0xb7, 0xb4, 0xb6, 0x34, 0xbd, 0x34, 0xb7, 0x33, 0x10, 0x3a, 0xb4, 0x32, 0x90, 0xb0, 0xb6, 0xb7, 0x3a, 0x37, 0x3a, 0x90, 0x37, 0x33, 0x90, 0xb6, 0xb2, 0xb6, 0x37, 0xb9, 0x3c, 0x90, 0xba, 0xb9, 0x32, 0x32, 0x17, 0x10, 0x90, 0x24, 0x3a, 0x90, 0xb4, 0x39, 0x10, 0xb9, 0x32, 0xb6, 0x30, 0xba, 0x34, 0xbb, 0x32, 0xb6, 0x3c, 0x90, 0x39, 0xb6, 0xb7, 0x7b, 0x09, 0x80, 0x07, 0xe8, 0xde, 0x40, 0xd8, 0xde, 0xde, 0xd6, 0xea, 0xe0, 0x58, 0x40, 0xc4, 0xca, 0xc6, 0xc2, 0xea, 0xe6, 0xca, 0x40, 0xce, 0xca, 0xdc, 0xca, 0xe4, 0xc2, 0xe8, 0xd2, 0xdc, 0xce, 0x40, 0xc2, 0x40, 0xc6, 0xc2, 0xc6, 0xd0, 0xca, 0x40, 0xd6, 0xca, 0xf2, 0x40, 0xc6, 0xc2, 0xdc, 0x40, 0xc4, 0xca, 0x40, 0xcc, 0xc2, 0xd2, 0xe4, 0xd8, 0xf2, 0x40, 0xe6, 0xd8, 0xde, 0xee, 0x40, 0x50, 0xcc, 0xde, 0xe4, 0x25, 0x00, 0xff, 0xcd, 0xd2, 0xd8, 0xca, 0xe6, 0x58, 0x40, 0xd2, 0xe8, 0x40, 0xe4, 0xca, 0xe2, 0xea, 0xd2, 0xe4, 0xca, 0xe6, 0x40, 0xe0, 0xc2, 0xe4, 0xe6, 0xd2, 0xdc, 0xce, 0x76, 0x40, 0xcc, 0xde, 0xe4, 0x40, 0xe8, 0xea, 0xc4, 0xca, 0xe6, 0x58, 0x40, 0xd2, 0xe8, 0x40, 0xca, 0xec, 0xca, 0xdc, 0x40, 0xe4, 0xca, 0xe2, 0xea, 0xd2, 0xe4, 0xca, 0xe6, 0x40, 0xc4, 0xea, 0xd2, 0xd8, 0xc8, 0xd2, 0xdc, 0xce, 0x25, 0x40, 0x8b, 0x0e, 0xad, 0x0c, 0xa4, 0x2d, 0x4c, 0x6e, 0x6d, 0x2e, 0xc5, 0xd5, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x23, 0x15, 0xf8, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x33, 0x8d, 0x90, 0x36, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x53, 0x94, 0x90, 0x0e, 0x4a, 0xc4, 0xfa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xe3, 0x9c, 0x90, 0x36, 0xfc, 0x3b, 0xbf, 0x80, 0xcf, 0x56, 0x16, 0xb6, 0xd6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x89, 0x53, 0x48, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x17, 0x0b, 0x69, 0xc3, 0x9f, 0x4b, 0x03, 0xbe, 0x5c, 0x99, 0xd9, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x62, 0x85, 0x74, 0x50, 0x66, 0xe9, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xf3, 0x85, 0xb4, 0xe1, 0xcf, 0xa5, 0x0d, 0x1e, 0xc7, 0xe4, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xc9, 0x85, 0xb4, 0xe1, 0xdf, 0xf9, 0x35, 0x78, 0x1c, 0x93, 0x5b, 0xd5, 0x2c, 0xe0, 0xb7, 0xbd, 0xbd, 0xb1, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0xef, 0x81, 0xe2, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x36, 0x43, 0xda, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x5f, 0xae, 0x2c, 0xae, 0xae, 0x6c, 0x8e, 0x6e, 0x0e, 0x24, 0xcd, 0x0d, 0x84, 0xac, 0x6c, 0x6e, 0x6d, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0xaf, 0x21, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0x17, 0x34, 0x84, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0xa5, 0x21, 0x1d, 0xbc, 0x55, 0x2f, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x7e, 0x39, 0xa4, 0x0d, 0x7f, 0x2e, 0x0d, 0xf0, 0xc0, 0x85, 0xd1, 0xa1, 0xcd, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x69, 0x70, 0x48, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x8d, 0x76, 0x48, 0x07, 0x25, 0xe2, 0xfb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xd1, 0x7a, 0x48, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xa1, 0x7d, 0x48, 0x07, 0xa5, 0x37, 0xfd, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xf5, 0x81, 0x48, 0x07, 0xcf, 0xa1, 0xbc, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xb0, 0x10, 0xe9, 0xe0, 0x8c, 0x84, 0x5a, 0x1d, 0x4e, 0xb1, 0x35, 0x78, 0x61, 0x11, 0xdf, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0x47, 0x86, 0xd0, 0x83, 0x17, 0x16, 0xf1, 0x35, 0x80, 0xaf, 0xd9, 0x9b, 0x1c, 0x19, 0xc8, 0x58, 0xd8, 0x18, 0x5a, 0x19, 0xc8, 0x5a, 0x59, 0xbe, 0x12, 0x00, 0x1d, 0x50, 0xa1, 0xa5, 0xcd, 0x81, 0xa4, 0xb9, 0x8d, 0xb1, 0xd5, 0x91, 0x95, 0xcd, 0x81, 0x84, 0xb1, 0xb1, 0x81, 0x88, 0xd5, 0xa5, 0xb1, 0x91, 0x81, 0xa4, 0xb9, 0xc1, 0xd5, 0xd1, 0xcd, 0xb1, 0x80, 0xa4, 0xb9, 0x8d, 0xb1, 0xd5, 0x91, 0xa5, 0xb9, 0x9d, 0x81, 0xd0, 0xc9, 0x85, 0xb9, 0xcd, 0xa5, 0xd1, 0xa5, 0xd9, 0x95, 0x81, 0x90, 0x95, 0xc1, 0x95, 0xb9, 0x91, 0x95, 0xb9, 0x8d, 0xa5, 0x95, 0xcd, 0xb1, 0x25, 0x40, 0x4f, 0xae, 0x6c, 0xac, 0x4e, 0x6e, 0x2e, 0xcd, 0xae, 0x8c, 0x2d, 0xcf, 0xd5, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x0b, 0x8b, 0xf8, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x5b, 0x1c, 0x91, 0x36, 0x08, 0x35, 0xc4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x5d, 0x15, 0x92, 0x81, 0x74, 0x55, 0x98, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x57, 0x85, 0x68, 0x20, 0x5d, 0x15, 0xf2, 0x0d, 0x0a, 0xc1, 0xd4, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x57, 0x85, 0xec, 0xe0, 0x19, 0x7e, 0x7c, 0x1b, 0xfe, 0x9d, 0x5f, 0xc0, 0x87, 0x7b, 0xab, 0x93, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x57, 0x85, 0xc1, 0x40, 0xba, 0x2a, 0x2c, 0x0e, 0x0a, 0x8a, 0xcc, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x7b, 0x17, 0x91, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xcf, 0x24, 0xd2, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x78, 0x20, 0xdf, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x2d, 0x24, 0xd2, 0xc1, 0xcb, 0x02, 0xf9, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xdc, 0x44, 0xda, 0xf0, 0xe7, 0xd2, 0x80, 0x4f, 0x56, 0x06, 0x37, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0x64, 0x22, 0x6d, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0x7c, 0x22, 0x1d, 0x94, 0x88, 0xef, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0x8d, 0x22, 0x1d, 0x3c, 0xa1, 0x88, 0xaf, 0x0e, 0xa7, 0xd8, 0x1a, 0xb4, 0x30, 0x3f, 0xbe, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0xc1, 0x91, 0x21, 0xf4, 0xa0, 0x85, 0xf9, 0xf1, 0x06, 0xe0, 0xad, 0x2d, 0x4c, 0x6e, 0x0d, 0x64, 0xec, 0xcd, 0xcd, 0xae, 0x4c, 0x6e, 0x2e, 0xed, 0xcd, 0x0d, 0x44, 0xae, 0x2c, 0xae, 0xae, 0x6c, 0x8e, 0x6e, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xa0, 0x85, 0xf9, 0xf1, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x52, 0x54, 0xa4, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xdc, 0x8a, 0xb4, 0xe1, 0xcf, 0xa5, 0xc1, 0xc3, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x9c, 0x55, 0xa4, 0x83, 0xf7, 0x6d, 0x88, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x5c, 0x8b, 0xb4, 0xe1, 0xcf, 0xa5, 0xc1, 0xc5, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x9e, 0x59, 0xa4, 0x83, 0xf7, 0x6d, 0x88, 0xb4, 0x02, 0x3e, 0xdd, 0x9b, 0xdc, 0xbb, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0x16, 0x51, 0xbe, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xa6, 0x5d, 0xa4, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x7c, 0xcf, 0xca, 0xdc, 0xca, 0xe4, 0xc2, 0xd8, 0x40, 0xc6, 0xd0, 0xc2, 0xdc, 0xce, 0xca, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x1e, 0x30, 0xd2, 0x86, 0x3f, 0x97, 0x06, 0x87, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xd3, 0x7b, 0x91, 0x0e, 0x8e, 0xda, 0xa0, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0x1e, 0x23, 0x6d, 0xf8, 0x73, 0x69, 0xf0, 0x78, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xa3, 0x18, 0x69, 0xc3, 0xbf, 0xf3, 0x6b, 0xf0, 0xfa, 0xd1, 0xbc, 0x6a, 0x05, 0xfc, 0xb9, 0x3a, 0xb1, 0x70, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0x51, 0xb0, 0x7c, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xc5, 0xcd, 0x48, 0x1b, 0x9e, 0x78, 0xdf, 0xe0, 0xa5, 0xad, 0x79, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x59, 0xd1, 0x48, 0x07, 0x21, 0x65, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xd9, 0x35, 0xd2, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0xe4, 0x46, 0xda, 0xf0, 0xe7, 0xd2, 0xe0, 0xf0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x80, 0x36, 0xd2, 0xc1, 0x19, 0x09, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x84, 0x71, 0xa4, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0x81, 0x23, 0x6d, 0xf8, 0x77, 0x7e, 0x01, 0xbf, 0x2d, 0x6d, 0xae, 0xae, 0x3a, 0x9c, 0x62, 0x0b, 0xf8, 0x6d, 0x69, 0x7a, 0xf5, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x6b, 0x80, 0xf9, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x4b, 0xd5, 0x91, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x70, 0x2b, 0xbb, 0x03, 0x99, 0xa3, 0x0b, 0xa3, 0x2b, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xd1, 0xef, 0x48, 0x1b, 0xfe, 0x5c, 0x1a, 0x1c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x6a, 0x47, 0x3a, 0x38, 0x0a, 0x9d, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x8c, 0x8f, 0xb4, 0xe1, 0xcf, 0xa5, 0xc1, 0xe3, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x1a, 0x7b, 0xa4, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x2c, 0x7e, 0xa4, 0x83, 0x12, 0xb1, 0x7e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xc2, 0x80, 0xa4, 0x83, 0x32, 0x4b, 0x77, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xd4, 0x82, 0xa4, 0x83, 0x97, 0x5e, 0xea, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x31, 0x43, 0xd2, 0x86, 0x3f, 0x97, 0x06, 0x97, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x5b, 0x14, 0x92, 0x36, 0xfc, 0x3b, 0xbf, 0x80, 0x2f, 0x17, 0xe6, 0x76, 0x56, 0xb3, 0x06, 0xef, 0x83, 0x30, 0xda, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xe0, 0xc8, 0x10, 0x7a, 0xf0, 0x3e, 0x08, 0xa3, 0x06, 0xe0, 0xa7, 0x2d, 0x4c, 0x6e, 0x0d, 0x64, 0xec, 0xcd, 0xcd, 0xae, 0x4c, 0x6e, 0x2e, 0xed, 0xcd, 0x0d, 0xe4, 0x2c, 0x8c, 0xae, 0x6c, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0x7d, 0x10, 0x46, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x81, 0x12, 0x49, 0x1b, 0x84, 0xd3, 0xd8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x45, 0x15, 0x49, 0x07, 0xcd, 0x6e, 0x47, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0x61, 0x24, 0x1d, 0x34, 0xbb, 0x1d, 0x75, 0x38, 0xc5, 0xd6, 0xe0, 0xb1, 0xf8, 0x7b, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x1c, 0x19, 0x42, 0x0f, 0x1e, 0x8b, 0xbf, 0xd7, 0x00, 0x3e, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0x8f, 0xc5, 0xdf, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xed, 0x48, 0xda, 0x20, 0x68, 0x7f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x0b, 0x49, 0xda, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xe0, 0x23, 0x2b, 0x63, 0x2b, 0xa3, 0x2b, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x01, 0x24, 0x49, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x28, 0xfc, 0x0d, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x4b, 0x49, 0x3a, 0x08, 0xc1, 0x87, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x6d, 0x49, 0xda, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x39, 0x68, 0x80, 0x3a, 0x7c, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0xc1, 0x24, 0x6d, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0x60, 0x01, 0x96, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x51, 0x38, 0x49, 0x1b, 0xfe, 0x5c, 0x1a, 0x1c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0xae, 0x49, 0x3a, 0x78, 0x2f, 0x02, 0x49, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0xf2, 0x24, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0xdf, 0x56, 0x47, 0x17, 0x46, 0x57, 0x06, 0x62, 0x26, 0xf7, 0xd6, 0x06, 0x42, 0x96, 0x66, 0x66, 0xb6, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x8b, 0x7e, 0x92, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0x50, 0xe6, 0x04, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x74, 0x94, 0xb4, 0xe1, 0xcf, 0xa5, 0xc1, 0xe1, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x58, 0xa2, 0xa4, 0x83, 0xf7, 0x22, 0x90, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x96, 0x52, 0xd2, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xde, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x72, 0x61, 0x77, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x9e, 0x29, 0x69, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0xad, 0x46, 0x64, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x50, 0x95, 0xb4, 0xe1, 0xcf, 0xa5, 0xc1, 0xe1, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x3a, 0xa9, 0xa4, 0x83, 0xf7, 0x22, 0x90, 0xd4, 0xe1, 0x14, 0x5b, 0xc0, 0x37, 0x63, 0xab, 0x2b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xa0, 0xff, 0xec, 0x2d, 0x8c, 0x0d, 0x24, 0x6d, 0x0e, 0x84, 0xee, 0x0d, 0xa4, 0x2d, 0x6c, 0xad, 0x0c, 0x64, 0x2c, 0x6c, 0x0c, 0xad, 0x0c, 0x04, 0x2d, 0x8d, 0x6e, 0x0e, 0xc4, 0x2c, 0x6c, 0x8e, 0xce, 0xb5, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0xd0, 0x87, 0xbe, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xd8, 0xac, 0xa4, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xed, 0x95, 0xb4, 0xe1, 0xcf, 0xa5, 0x01, 0x9e, 0x39, 0xb8, 0x34, 0x36, 0x76, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x89, 0x2b, 0x69, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x4c, 0x2c, 0xe9, 0xa0, 0x44, 0x7c, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xd5, 0x2c, 0xe9, 0xe0, 0x09, 0x45, 0x7c, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xdb, 0x96, 0xb4, 0xe1, 0xcf, 0xa5, 0x01, 0x9e, 0x39, 0x38, 0xb9, 0xb4, 0x73, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x64, 0x2d, 0x69, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x29, 0x2e, 0xe9, 0xa0, 0x44, 0xac, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xb3, 0x2e, 0x69, 0xc3, 0xbf, 0xf3, 0x0b, 0xf8, 0x6d, 0x69, 0x73, 0x74, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xb5, 0x97, 0xb4, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x23, 0x01, 0x93, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0x0b, 0x8b, 0xf8, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xf3, 0xfb, 0x92, 0x0e, 0x9e, 0x50, 0xc4, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x0b, 0x62, 0xd2, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x1c, 0x93, 0xdb, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x65, 0x61, 0xd2, 0xc1, 0xeb, 0x9d, 0xf8, 0xaa, 0xd5, 0x60, 0xe5, 0xb5, 0xd1, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0x47, 0x86, 0xd0, 0x83, 0x95, 0xd7, 0x46, 0x0d, 0xe0, 0xed, 0x56, 0x76, 0x07, 0x02, 0x57, 0x26, 0xd7, 0x96, 0x36, 0x37, 0x97, 0xf6, 0xe6, 0x36, 0xb7, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xb0, 0xf2, 0xda, 0x68, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xd3, 0x31, 0x69, 0x83, 0xa0, 0xfd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x39, 0x32, 0x69, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x80, 0xdf, 0xec, 0x4d, 0x0e, 0x44, 0xae, 0x2c, 0x8c, 0x6c, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0x51, 0x26, 0x1d, 0x2c, 0x4c, 0xee, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x7f, 0x33, 0x69, 0xc3, 0x9f, 0x4b, 0x03, 0x9e, 0x5c, 0x19, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x96, 0x99, 0xb4, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xf8, 0x99, 0x74, 0x50, 0x36, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x3c, 0x9a, 0x74, 0xb0, 0x34, 0x55, 0xb4, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x45, 0x4d, 0xda, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0xc3, 0xec, 0x4d, 0x0e, 0xe4, 0x4e, 0x2e, 0x8d, 0xae, 0x6c, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0xad, 0x26, 0x1d, 0x2c, 0xad, 0x56, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x5d, 0x36, 0x69, 0xc3, 0x9f, 0x4b, 0x1b, 0x34, 0xf7, 0x8d, 0xbb, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x05, 0x9b, 0xb4, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x67, 0x9b, 0x74, 0x50, 0x36, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xab, 0x9b, 0x74, 0xb0, 0x34, 0x55, 0xb4, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xf3, 0x4d, 0xda, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0x0f, 0xb3, 0x37, 0x39, 0x10, 0xb9, 0xb2, 0x30, 0x32, 0x90, 0x30, 0x37, 0x32, 0x90, 0x3b, 0xb9, 0x34, 0xba, 0xb2, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x11, 0x9c, 0xb4, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0xe0, 0xe5, 0xee, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x03, 0x92, 0x93, 0x36, 0xfc, 0xb9, 0x34, 0xe0, 0xc9, 0x95, 0x91, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x71, 0xc6, 0x49, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x8d, 0xcc, 0x49, 0x07, 0x65, 0x13, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xd1, 0xd0, 0x49, 0x07, 0x4b, 0x53, 0x45, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xfd, 0x3a, 0x69, 0xc3, 0x9f, 0x4b, 0x1b, 0x34, 0xf7, 0x8d, 0xbb, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x55, 0x9d, 0xb4, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xb7, 0x9d, 0x74, 0x50, 0x36, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xfc, 0x9d, 0x74, 0xb0, 0x34, 0x55, 0xb4, 0x5a, 0x0d, 0x5e, 0x56, 0xcd, 0xb7, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0xc1, 0x91, 0x21, 0xf4, 0xe0, 0x65, 0xd5, 0x7c, 0x0d, 0xe0, 0x23, 0x57, 0x06, 0xf7, 0x36, 0x97, 0x46, 0xf7, 0x26, 0x97, 0xb7, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0xb2, 0x6a, 0xbe, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xc8, 0xf3, 0xa4, 0x0d, 0x0e, 0x10, 0xa2, 0x1b, 0xbc, 0xac, 0x9a, 0x6f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xa4, 0x3c, 0x69, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0xb2, 0x27, 0x6d, 0x78, 0xe2, 0x7d, 0x83, 0xe5, 0x29, 0xd9, 0x1b, 0xfe, 0x5c, 0x1a, 0xf0, 0xd0, 0xea, 0xe8, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x0c, 0xf5, 0xa4, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x1c, 0xf8, 0xa4, 0x83, 0x12, 0xb1, 0x7e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x40, 0xfa, 0xa4, 0x83, 0x97, 0x5e, 0xea, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x80, 0x9f, 0x74, 0xf0, 0xf8, 0xd8, 0xbd, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xfe, 0x4f, 0xda, 0xf0, 0xc4, 0xfb, 0x06, 0x4f, 0x02, 0xdc, 0xdb, 0xf0, 0xe7, 0xd2, 0x06, 0x8d, 0xb5, 0x9b, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0xf5, 0x27, 0x6d, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0x0d, 0x28, 0x1d, 0x94, 0x88, 0xf5, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0x1e, 0x28, 0x1d, 0xbc, 0x11, 0x62, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x96, 0x05, 0xa5, 0x83, 0xd7, 0xd1, 0xd9, 0xd5, 0xac, 0xc1, 0xc3, 0x03, 0xf9, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x38, 0x32, 0x84, 0x1e, 0x3c, 0x3c, 0x90, 0xaf, 0x01, 0xf8, 0x31, 0x7b, 0x93, 0x23, 0x03, 0x11, 0xab, 0x4b, 0x63, 0x23, 0x03, 0xb9, 0x7b, 0x19, 0x7b, 0x73, 0xa3, 0x2b, 0x73, 0xa3, 0xdb, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0x78, 0x20, 0xdf, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x31, 0x84, 0xd2, 0x06, 0x41, 0xfb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x29, 0x85, 0xd2, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0xb9, 0x50, 0xda, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0xa3, 0x25, 0x94, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xf9, 0x50, 0xda, 0xf0, 0xe7, 0xd2, 0x06, 0x07, 0xd3, 0xcf, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x52, 0x0e, 0xa5, 0x83, 0x33, 0x12, 0x6a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0x8f, 0x28, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x2a, 0x13, 0xa5, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0xbc, 0x3d, 0x44, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x28, 0x17, 0xa5, 0x0d, 0x7f, 0x2e, 0x6d, 0x70, 0x8a, 0x3c, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x5e, 0x51, 0x3a, 0x78, 0xdf, 0x86, 0x48, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0xc8, 0x28, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x62, 0x1a, 0xa5, 0x83, 0x47, 0x6e, 0xeb, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xb3, 0xa3, 0xb4, 0xe1, 0xcf, 0xa5, 0x0d, 0x4e, 0x91, 0xa7, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xa1, 0x38, 0x4a, 0x07, 0xef, 0xdb, 0x10, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xde, 0x1f, 0xa5, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x25, 0xa4, 0xb4, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0xa7, 0xf7, 0x28, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xa4, 0xa4, 0xb4, 0xe1, 0xcf, 0xa5, 0x0d, 0x5a, 0x98, 0x1f, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x3d, 0x52, 0xda, 0xf0, 0xef, 0xfc, 0x1a, 0xb4, 0x30, 0x3f, 0x5e, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xf1, 0xa4, 0xb4, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x53, 0xa3, 0x94, 0x0e, 0xde, 0x40, 0xae, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x05, 0x96, 0xd2, 0x86, 0x3f, 0x97, 0x36, 0x68, 0x61, 0x7e, 0x7c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xb0, 0x4a, 0xe9, 0xe0, 0xf1, 0xaa, 0x7d, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xca, 0xa5, 0xb4, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x6b, 0xbe, 0x94, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xf0, 0x66, 0x2d, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x73, 0xce, 0x94, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0xc1, 0xf4, 0x73, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x95, 0x4c, 0xe9, 0xe0, 0x8c, 0x84, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x6b, 0x9b, 0xd2, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x62, 0xa5, 0xd1, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc7, 0x9a, 0xd2, 0xc1, 0x1b, 0x21, 0xf6, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x2c, 0x4e, 0x69, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0xcf, 0x29, 0x1d, 0xbc, 0xd7, 0x59, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x38, 0x3d, 0xa5, 0x0d, 0x7f, 0x2e, 0x6d, 0x70, 0x30, 0xfd, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0xbf, 0x53, 0x3a, 0x38, 0x23, 0xa1, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x0e, 0xa8, 0xb4, 0xe1, 0xcf, 0xa5, 0x0d, 0x8a, 0xcb, 0xfa, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x2a, 0x3f, 0xa5, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x3c, 0x42, 0xa5, 0x83, 0x12, 0xb1, 0x7e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x62, 0x44, 0xa5, 0x83, 0x33, 0x12, 0xea, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x49, 0x8c, 0x4a, 0x07, 0x6f, 0x84, 0xd8, 0xab, 0x56, 0x80, 0x67, 0x2c, 0x4c, 0x8c, 0xad, 0xdc, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xe0, 0xc8, 0x10, 0x7a, 0xf0, 0x50, 0xe7, 0xbe, 0x06, 0xf0, 0x67, 0x4b, 0x13, 0x7b, 0x99, 0xab, 0x93, 0x7b, 0x69, 0x0b, 0x93, 0x5b, 0x03, 0x91, 0x2b, 0x33, 0xdb, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0xa8, 0x73, 0xdf, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x64, 0xa4, 0xd2, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xb4, 0x54, 0xda, 0xf0, 0xe7, 0xd2, 0x86, 0xb9, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xa0, 0x54, 0xda, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0xd1, 0x54, 0x3a, 0x28, 0x9b, 0x30, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0xf3, 0x54, 0x3a, 0x58, 0xaf, 0xf5, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x69, 0xa5, 0x4a, 0x1b, 0xfe, 0x5c, 0x1a, 0xc0, 0xc3, 0x2c, 0x8d, 0xad, 0xac, 0x05, 0x2e, 0x8c, 0x0e, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x16, 0x55, 0x3a, 0x58, 0xaf, 0xf5, 0xdc, 0xe1, 0x14, 0x5b, 0xc0, 0x6f, 0x7b, 0x0b, 0xa3, 0x37, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x1e, 0x28, 0xde, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xc1, 0xaa, 0xb4, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xdf, 0x18, 0x5a, 0x98, 0xdb, 0x59, 0x19, 0x88, 0x5c, 0x98, 0xdb, 0x59, 0xd9, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x8a, 0x55, 0xda, 0xf0, 0xe7, 0xd2, 0x06, 0xaf, 0x33, 0x72, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x75, 0x55, 0x3a, 0x78, 0xab, 0x5e, 0xc8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xbd, 0xb7, 0x4a, 0x1b, 0xfe, 0x5c, 0x1a, 0x78, 0xba, 0x77, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xa5, 0x56, 0xe9, 0xe0, 0xad, 0x7a, 0x21, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0xf8, 0x2a, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0x83, 0xe9, 0xe7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xe8, 0xae, 0xd2, 0xc1, 0x19, 0x09, 0xb5, 0xd5, 0xe0, 0x25, 0xb4, 0x7a, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x1c, 0x19, 0x42, 0x0f, 0x5e, 0x42, 0xab, 0xd7, 0x00, 0xde, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0x2f, 0xa1, 0xd5, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x1e, 0x56, 0xda, 0x20, 0x68, 0x7f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x3d, 0x56, 0xda, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x77, 0x2e, 0xcd, 0xed, 0x8c, 0xad, 0x0c, 0x44, 0xae, 0x2c, 0xae, 0xae, 0x6c, 0x8e, 0x6e, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0x29, 0x2b, 0x6d, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xe0, 0xdd, 0xc5, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0x49, 0x2b, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0xb7, 0x7f, 0xde, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0x3e, 0x2b, 0x6d, 0xf8, 0x77, 0x7e, 0x0d, 0xde, 0xfe, 0x79, 0x57, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x7c, 0xad, 0xb4, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x1f, 0x61, 0x77, 0x61, 0x69, 0x74, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x4c, 0x5b, 0x69, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0xeb, 0x87, 0x6b, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x12, 0x57, 0xda, 0xf0, 0xe7, 0xd2, 0x06, 0x6f, 0xff, 0xbc, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xfe, 0x56, 0x3a, 0x78, 0x83, 0x81, 0x5f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0x9b, 0x2b, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0x8b, 0x5b, 0x19, 0x1e, 0x1d, 0x88, 0x5d, 0x99, 0xdc, 0x5c, 0xda, 0x9b, 0x1b, 0xc8, 0x9b, 0x19, 0x48, 0x98, 0x5b, 0xde, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x4c, 0x57, 0xda, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0x2b, 0xca, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x8c, 0x57, 0xda, 0xf0, 0xe7, 0xd2, 0x06, 0xef, 0x81, 0xe2, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x77, 0x57, 0xda, 0xf0, 0xef, 0xfc, 0x1a, 0xbc, 0x07, 0x8a, 0xaf, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xb6, 0x5e, 0x69, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x2f, 0x3a, 0xb9, 0xb0, 0xb1, 0x35, 0x10, 0xb9, 0x30, 0xb7, 0xb3, 0xb2, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x85, 0xaf, 0x74, 0x90, 0x02, 0x1b, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xae, 0xbf, 0xd2, 0x86, 0x3f, 0x97, 0x06, 0x78, 0xe8, 0xe4, 0xc2, 0xc6, 0xd6, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x14, 0x7e, 0xa5, 0xc3, 0x07, 0xab, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0x14, 0x2c, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0x07, 0x8a, 0xf7, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0x0a, 0x2c, 0x6d, 0xf8, 0x77, 0x7e, 0x0d, 0x1e, 0x28, 0xde, 0x57, 0xb5, 0x02, 0x78, 0xb4, 0x85, 0xad, 0x95, 0xb5, 0xe4, 0x85, 0xad, 0xa5, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0x6f, 0x66, 0xf1, 0x6b, 0x00, 0xf4, 0x6d, 0x0b, 0x5b, 0x2b, 0x03, 0x19, 0x7b, 0x6b, 0x6b, 0x4b, 0xa3, 0x03, 0x79, 0xab, 0xa3, 0x03, 0x79, 0x33, 0x03, 0x09, 0x03, 0x61, 0x4b, 0x9b, 0xa3, 0x03, 0x79, 0x33, 0x03, 0x81, 0x0b, 0x93, 0x2b, 0x73, 0xa3, 0x9b, 0x63, 0x01, 0x19, 0x7b, 0x73, 0xa3, 0x2b, 0x73, 0xa3, 0x63, 0x01, 0x09, 0x73, 0x23, 0x03, 0x21, 0x0b, 0xa3, 0x2b, 0x73, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0x27, 0x2c, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x50, 0x85, 0x64, 0x20, 0x43, 0x15, 0x0a, 0x37, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xa8, 0x42, 0x34, 0x90, 0xa1, 0x0a, 0xbb, 0x0d, 0x7f, 0x2e, 0x0d, 0x0e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x86, 0x2a, 0x84, 0x07, 0xaf, 0xeb, 0xf1, 0xdb, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x0c, 0x55, 0x48, 0x07, 0x32, 0x54, 0x61, 0x71, 0x10, 0x52, 0x26, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x86, 0x2a, 0x4c, 0x06, 0x32, 0x54, 0x61, 0x76, 0xf0, 0xd2, 0x4b, 0xbd, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x0c, 0x55, 0x18, 0x0e, 0x64, 0xa8, 0x42, 0xd3, 0x86, 0x3f, 0x97, 0x06, 0x8f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x43, 0x15, 0xa6, 0x07, 0x6f, 0x46, 0xf2, 0xdb, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x0c, 0x55, 0xd8, 0x0e, 0x64, 0xa8, 0xc2, 0xfc, 0xa0, 0x44, 0xac, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x54, 0x61, 0x3f, 0x90, 0xa1, 0x0a, 0x1d, 0x07, 0x67, 0x24, 0xd4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x43, 0x15, 0x4a, 0x06, 0x32, 0x54, 0xa1, 0xe8, 0xe0, 0x8d, 0x10, 0x7b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0xaa, 0x50, 0x35, 0x90, 0xa1, 0x0a, 0x7d, 0x1b, 0xfe, 0x5c, 0x1a, 0x9c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x0c, 0x55, 0x28, 0x3b, 0x78, 0xc5, 0x95, 0xdf, 0xc1, 0x91, 0xaf, 0xb5, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xb8, 0x86, 0xa5, 0x0d, 0x7f, 0xd1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x29, 0xaa, 0x90, 0x0c, 0xa4, 0xa8, 0x42, 0x7a, 0xf0, 0xf8, 0xd8, 0xbd, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xf8, 0x87, 0xa5, 0x0d, 0x9f, 0xd8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x2a, 0xb1, 0xb4, 0xe1, 0x73, 0x97, 0x0d, 0x4a, 0xee, 0x86, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x9e, 0x8a, 0xa5, 0x0d, 0x56, 0xf5, 0x2a, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x80, 0xb1, 0x74, 0x50, 0xd6, 0xdb, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xcb, 0xb1, 0x74, 0x70, 0x5e, 0xa0, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x05, 0x64, 0x69, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0x8b, 0x2c, 0x6d, 0x78, 0x5b, 0x67, 0x83, 0xb4, 0x3f, 0x96, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x39, 0x59, 0xda, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xd9, 0x29, 0x4b, 0x1b, 0xde, 0xb8, 0xdb, 0xf0, 0xf2, 0xdd, 0xc1, 0x53, 0x57, 0x96, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x69, 0x59, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x09, 0x30, 0x4b, 0x07, 0x4b, 0x25, 0x09, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xa2, 0x59, 0x3a, 0x38, 0x5d, 0x64, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x7a, 0xb3, 0x74, 0xf8, 0x13, 0xa8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xe3, 0x75, 0x96, 0x0e, 0x4e, 0x47, 0x22, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0xf7, 0x2c, 0x1d, 0x9c, 0x5a, 0xfa, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x33, 0x68, 0x69, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0x11, 0x2d, 0x1d, 0xbc, 0x59, 0xcd, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x4c, 0xa4, 0xa5, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xb3, 0xb4, 0xb4, 0xe1, 0x8d, 0xbb, 0x0d, 0x2f, 0xdf, 0x1d, 0xbc, 0x9f, 0x69, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x44, 0xa7, 0xa5, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x15, 0xb5, 0x74, 0xb0, 0x54, 0x92, 0x70, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xce, 0xaa, 0xa5, 0x83, 0xd3, 0x45, 0xc6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xe1, 0x58, 0x4b, 0x87, 0x3f, 0x81, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x85, 0x6b, 0xe9, 0xe0, 0x74, 0x24, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc9, 0xd7, 0xd2, 0xc1, 0xa9, 0xa5, 0xaf, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x4b, 0xc5, 0x96, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x4b, 0xd9, 0xd2, 0xc1, 0xe9, 0x22, 0x63, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xfe, 0xb3, 0xa5, 0x83, 0xd3, 0x91, 0xc8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xed, 0x6a, 0x4b, 0x1b, 0xde, 0xd6, 0x39, 0x38, 0x5a, 0x6b, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xdb, 0xb6, 0x74, 0x70, 0x6a, 0xe9, 0xeb, 0x70, 0x8a, 0xd5, 0x1a, 0x3c, 0xb1, 0xd2, 0x68, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0x89, 0x95, 0x46, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xbd, 0x71, 0x4b, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xfc, 0x62, 0x6c, 0x6f, 0x62, 0x20, 0x72, 0x65, 0x66, 0x07, 0xef, 0xfd, 0x0a, 0x59, 0x0d, 0x56, 0xf4, 0x65, 0x6d, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xac, 0xe8, 0xcb, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0xb3, 0x5b, 0xda, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xe0, 0x21, 0x7b, 0x6b, 0x2b, 0x9b, 0xdb, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xcf, 0x5b, 0x3a, 0x28, 0x11, 0xeb, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xf9, 0x5b, 0xda, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xc5, 0x81, 0x4b, 0x07, 0x6d, 0x5b, 0x8f, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x5a, 0xb8, 0x74, 0xf0, 0x28, 0xbc, 0x90, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x53, 0x5c, 0x3a, 0x78, 0x6e, 0x15, 0x5e, 0xab, 0x41, 0x7b, 0xb6, 0xa1, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x1c, 0x19, 0x42, 0x0f, 0xda, 0xb3, 0x0d, 0x6d, 0x00, 0xbf, 0xb1, 0xb0, 0xb9, 0x32, 0x90, 0x37, 0x39, 0x10, 0xba, 0xb0, 0xb5, 0xb7, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0xf6, 0x6c, 0x43, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xcb, 0x1f, 0x97, 0x36, 0x08, 0xda, 0x9f, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x23, 0x27, 0x97, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x89, 0xe5, 0xd2, 0x86, 0x0c, 0xf8, 0xc1, 0x43, 0x00, 0xfd, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0xf1, 0x5c, 0xda, 0xf0, 0xe7, 0xd2, 0xe0, 0xf0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xe4, 0xe6, 0xd2, 0xc1, 0x4b, 0x2f, 0xf5, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x3b, 0x74, 0xe9, 0xe0, 0xad, 0x7a, 0x21, 0x1d, 0x4e, 0xb1, 0x5a, 0x83, 0xd6, 0xb7, 0x98, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x83, 0x97, 0x5d, 0x7b, 0x0c, 0xe0, 0xd5, 0x56, 0x26, 0x77, 0x56, 0x06, 0x32, 0x47, 0x97, 0xc7, 0x56, 0xb6, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xd0, 0xfa, 0x16, 0xf3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x0d, 0xea, 0xd2, 0x06, 0xc1, 0x66, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xfc, 0xea, 0xd2, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xbf, 0x5b, 0xd9, 0x1d, 0x08, 0x59, 0xd9, 0xdc, 0xda, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x9e, 0x7a, 0x0f, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x84, 0xec, 0xd2, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x7e, 0x66, 0x61, 0x73, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x68, 0x27, 0x3f, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x0e, 0xdc, 0xa5, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xfc, 0xdf, 0xe4, 0xe8, 0xd0, 0xde, 0xce, 0xde, 0xdc, 0xc2, 0xd8, 0x40, 0xcc, 0xd2, 0xd8, 0xca, 0xe6, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0x90, 0x9c, 0x0b, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x84, 0xef, 0xd2, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x7c, 0xbc, 0xc9, 0xd1, 0xa1, 0xbd, 0x9d, 0xbd, 0xb9, 0x85, 0xb1, 0x81, 0x8c, 0xa1, 0x85, 0xb9, 0x9d, 0x95, 0xcd, 0x6d, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0x60, 0x54, 0xcd, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x3e, 0xbc, 0xb4, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x97, 0xd9, 0x9b, 0xdc, 0x58, 0x19, 0x48, 0x5b, 0x99, 0xdc, 0x59, 0xd9, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0xde, 0xb2, 0x16, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xb7, 0xf2, 0xd2, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x3c, 0xbc, 0xd5, 0xc9, 0xcd, 0x81, 0xdc, 0xa5, 0xd1, 0xa1, 0x81, 0xc0, 0x85, 0xc9, 0x95, 0xb9, 0xd1, 0xcd, 0x6d, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xe0, 0x49, 0xc8, 0x4b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0x47, 0x2f, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0x03, 0x5a, 0x99, 0xdc, 0x1c, 0xc8, 0x5d, 0x1a, 0x1d, 0x1a, 0x08, 0x5c, 0x98, 0x5c, 0x99, 0x1b, 0xdd, 0xdc, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x9e, 0xf3, 0xbc, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x2f, 0xf6, 0xd2, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x7c, 0xbc, 0xd5, 0xc9, 0xcd, 0x81, 0xd4, 0xb9, 0xb1, 0x95, 0xcd, 0xcd, 0x81, 0x84, 0x89, 0xcd, 0x95, 0xb9, 0xd1, 0x6d, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xe0, 0x29, 0xd6, 0x4b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0x7e, 0x2f, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0x07, 0x5a, 0x99, 0xdc, 0x1c, 0x48, 0x9d, 0x1b, 0x5b, 0xd9, 0xdc, 0x1c, 0x48, 0x98, 0xd8, 0x5c, 0x99, 0x1b, 0xdd, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x9e, 0xd1, 0xbd, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xa7, 0xf9, 0xd2, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xfe, 0x6f, 0x75, 0x72, 0x73, 0x20, 0x69, 0x66, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x78, 0x02, 0xf9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x5d, 0xeb, 0x4b, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xf8, 0xa3, 0x95, 0xc9, 0xcd, 0x81, 0xa4, 0x99, 0x81, 0x8c, 0xbd, 0xb9, 0x99, 0xb1, 0xa5, 0x8d, 0xd1, 0x6d, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xe0, 0xa5, 0xa5, 0x4b, 0xad, 0x06, 0xcb, 0x20, 0xdd, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x96, 0x41, 0xba, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0xc8, 0x2f, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0xc7, 0x58, 0xd8, 0x5c, 0xd9, 0x1c, 0x88, 0xd9, 0x9b, 0x1c, 0x88, 0x5c, 0x99, 0x5d, 0xda, 0x5c, 0xda, 0x9b, 0xdb, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0xb9, 0x5f, 0xda, 0xf0, 0xe7, 0xd2, 0x86, 0x9a, 0xbf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x4a, 0xbf, 0x74, 0x50, 0x66, 0xe9, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xda, 0xbf, 0xb4, 0xe1, 0xcf, 0xa5, 0x81, 0x27, 0x0b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x23, 0xf6, 0x97, 0x0e, 0x8e, 0x7c, 0xad, 0xad, 0x06, 0x4f, 0x46, 0x09, 0xda, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0x32, 0x4a, 0xd0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc4, 0x00, 0xd3, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x3c, 0xc0, 0x95, 0xc9, 0xb5, 0xa5, 0xcd, 0xcd, 0xa5, 0xbd, 0xb9, 0xcd, 0x81, 0x9c, 0xc9, 0xbd, 0xd5, 0xc1, 0x6d, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0x1a, 0x30, 0x1d, 0x94, 0x88, 0xef, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0x2b, 0x30, 0x1d, 0xb4, 0x6d, 0x3d, 0xde, 0x6a, 0xf0, 0x1a, 0x2b, 0xbc, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0xd7, 0x58, 0xe1, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0x41, 0x30, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xc0, 0x0a, 0xa6, 0x0d, 0x4f, 0xbc, 0x6f, 0xf0, 0x5e, 0x44, 0xbd, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x6c, 0x65, 0xf4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xbd, 0x04, 0xd3, 0xc1, 0x6b, 0x87, 0xf3, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0xe8, 0x60, 0xda, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0xd7, 0xae, 0x4c, 0x6e, 0x2e, 0xed, 0xcd, 0x6d, 0x0e, 0x44, 0x2c, 0x0f, 0x24, 0x8d, 0x6c, 0xc3, 0x9f, 0x4b, 0x1b, 0x2c, 0xef, 0x0d, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xd4, 0x60, 0xda, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x05, 0x61, 0x3a, 0x28, 0x11, 0xeb, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x27, 0x61, 0x3a, 0x78, 0xed, 0x70, 0xde, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x7d, 0x28, 0x4c, 0x07, 0x2f, 0xbd, 0xd4, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xc8, 0x17, 0xa6, 0x0d, 0x4f, 0xbc, 0x6f, 0xf0, 0x30, 0x4d, 0xbd, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x6c, 0x61, 0xe2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x41, 0x0b, 0xd3, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc9, 0x0c, 0xd3, 0x41, 0x89, 0x58, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x13, 0x0e, 0xd3, 0xc1, 0x79, 0xf3, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x38, 0x1e, 0xa6, 0x83, 0xd7, 0x0e, 0xe7, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xe1, 0x10, 0xd3, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x9e, 0x74, 0x6f, 0x6d, 0x62, 0x20, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x1b, 0xfe, 0x5c, 0x1a, 0xf0, 0xe8, 0xde, 0xda, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x7c, 0x20, 0xa6, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x8c, 0x23, 0xa6, 0x83, 0x12, 0xb1, 0x7e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xb0, 0x25, 0xa6, 0x83, 0x97, 0x5e, 0xea, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xee, 0xc4, 0x74, 0xf0, 0xa2, 0x9a, 0xbd, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0xb1, 0x62, 0xda, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x97, 0xac, 0xcc, 0x2c, 0xac, 0x8e, 0x8d, 0x0e, 0x04, 0xee, 0x8d, 0x2d, 0x6d, 0x2c, 0x6f, 0xc3, 0x9f, 0x4b, 0x1b, 0x34, 0x52, 0xf5, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x39, 0xc5, 0x74, 0xf0, 0xa2, 0x9a, 0xbd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xcb, 0xba, 0x98, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x69, 0x4b, 0x6b, 0x2b, 0x03, 0x19, 0x0b, 0x1b, 0x43, 0x2b, 0xdb, 0xf0, 0xe7, 0xd2, 0x80, 0xd7, 0x96, 0xd6, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0x6b, 0x31, 0x6d, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0x83, 0x31, 0x1d, 0x94, 0x88, 0xf5, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0x95, 0x31, 0x1d, 0x9c, 0x91, 0x50, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x46, 0x63, 0x3a, 0x78, 0x50, 0x02, 0x5f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0xc0, 0x31, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x63, 0xf6, 0x26, 0x47, 0x06, 0x32, 0x16, 0x36, 0x86, 0x56, 0xb6, 0xe1, 0xcf, 0xa5, 0x01, 0xcf, 0xec, 0x8d, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x6b, 0x63, 0xda, 0xf0, 0xef, 0xfc, 0x1a, 0x3c, 0xf4, 0xa1, 0xaf, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0xba, 0x63, 0xda, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0x87, 0xb1, 0xb7, 0xb6, 0xb6, 0x34, 0xba, 0x96, 0x34, 0xb7, 0x96, 0xbb, 0xb0, 0x34, 0xba, 0x34, 0xb7, 0xb3, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x77, 0x69, 0xe3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x2e, 0x1d, 0xd3, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xb6, 0x1e, 0xd3, 0x41, 0x89, 0x58, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc8, 0x1f, 0xd3, 0xc1, 0xb3, 0x14, 0x42, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x18, 0x64, 0xda, 0xf0, 0xef, 0xfc, 0x1a, 0x3c, 0xf5, 0x74, 0xaf, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x72, 0x91, 0x69, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x5f, 0xb9, 0x3a, 0x37, 0xb7, 0x34, 0xb7, 0x33, 0x90, 0xb0, 0xb3, 0x32, 0x37, 0xba, 0xb9, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x6c, 0x69, 0xf6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x42, 0x22, 0xd3, 0x86, 0x7f, 0xe7, 0xd7, 0xe0, 0xa9, 0x47, 0x41, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x1d, 0x25, 0xd3, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xbc, 0x98, 0xbd, 0xc9, 0x8d, 0x95, 0x81, 0x84, 0x9d, 0x95, 0xb9, 0xd1, 0xcd, 0x81, 0xbc, 0xb9, 0xbd, 0xbc, 0x99, 0x99, 0x6d, 0xf8, 0x73, 0x69, 0xc0, 0x93, 0x2b, 0x73, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xd3, 0x23, 0x99, 0x36, 0xfc, 0x3b, 0xbf, 0x06, 0x8f, 0x2f, 0x0a, 0xaa, 0x56, 0x83, 0xa7, 0x1e, 0x05, 0x6d, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0x3c, 0xf5, 0x28, 0x68, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xd1, 0x93, 0x69, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x80, 0x1f, 0xed, 0xed, 0x0e, 0x84, 0x2d, 0xcd, 0xae, 0x6c, 0x83, 0x50, 0x43, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x46, 0x61, 0x30, 0x90, 0x35, 0x0a, 0xab, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0xee, 0xe0, 0x55, 0xfc, 0x42, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xf9, 0x9b, 0x4c, 0x1b, 0x04, 0x9b, 0xe9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x6d, 0xa2, 0x4c, 0x1b, 0x32, 0xe0, 0x07, 0x6f, 0xd5, 0xfb, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x0e, 0x95, 0x69, 0x43, 0x06, 0xfc, 0xa0, 0x99, 0x18, 0xe6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x6b, 0x5a, 0x99, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xf0, 0xe0, 0x57, 0xa6, 0x56, 0x83, 0xc7, 0x17, 0x05, 0x6d, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0x3c, 0xbe, 0x28, 0x68, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x77, 0x96, 0x69, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x9f, 0x32, 0x3c, 0x3a, 0xb9, 0x30, 0x90, 0x30, 0x38, 0xb8, 0xb9, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xa6, 0x5b, 0xa6, 0x83, 0x12, 0xb1, 0x7e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xca, 0x5d, 0xa6, 0x0d, 0xff, 0xce, 0x2f, 0xe0, 0x93, 0xd5, 0x91, 0x95, 0x1d, 0xbc, 0x66, 0xbe, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x6e, 0x60, 0xa6, 0xc3, 0x07, 0xab, 0xad, 0x06, 0xaf, 0x38, 0xe9, 0xdb, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0xc5, 0x49, 0xdf, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc3, 0x31, 0xd3, 0x06, 0x41, 0xfb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x90, 0x32, 0xd3, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x66, 0x66, 0x3a, 0x78, 0xe4, 0x63, 0xdf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x41, 0xd3, 0x4c, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x60, 0xfa, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x0b, 0xcd, 0x74, 0x70, 0x46, 0x42, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x90, 0x6b, 0xa6, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x9b, 0xcd, 0x74, 0xf0, 0xb0, 0xcb, 0xbe, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x43, 0xc0, 0x99, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0x29, 0xf2, 0x74, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xb2, 0x9b, 0xe9, 0xe0, 0x7d, 0x1b, 0x22, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x40, 0xce, 0xb4, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x2b, 0xcd, 0x99, 0x0e, 0x1e, 0xb9, 0xad, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x40, 0x3b, 0xd3, 0x86, 0x3f, 0x97, 0x36, 0x38, 0x45, 0x9e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0xa9, 0x33, 0x1d, 0xbc, 0x6f, 0x43, 0xa4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xc3, 0xe1, 0x99, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xdd, 0x3c, 0xd3, 0xc1, 0xab, 0x4c, 0xfb, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0xcf, 0x67, 0xda, 0xf0, 0xe7, 0xd2, 0x06, 0x2d, 0xcc, 0x8f, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x47, 0xdd, 0x33, 0x1d, 0x3c, 0x5e, 0xb5, 0xaf, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x83, 0xfb, 0x99, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x15, 0x40, 0xd3, 0xc1, 0x1b, 0xc8, 0xf5, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x36, 0x68, 0xda, 0xf0, 0xe7, 0xd2, 0x06, 0x2d, 0xcc, 0x8f, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0x10, 0x34, 0x1d, 0x3c, 0x5e, 0xb5, 0xaf, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x43, 0x15, 0x9a, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x4d, 0x43, 0xd3, 0xc1, 0xd3, 0x6b, 0xfb, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x9d, 0x68, 0xda, 0xf0, 0xe7, 0xd2, 0x06, 0x07, 0xd3, 0xcf, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x88, 0x88, 0xa6, 0x83, 0x33, 0x12, 0x6a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0x5a, 0x34, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xa8, 0x8c, 0xa6, 0x83, 0xf7, 0x3a, 0xeb, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xfb, 0xd1, 0xb4, 0xe1, 0xcf, 0xa5, 0x0d, 0x0e, 0xa6, 0x9f, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x2d, 0x1d, 0x4d, 0x07, 0x67, 0x24, 0xd4, 0x5a, 0x01, 0xfc, 0xe0, 0xc2, 0xce, 0xca, 0x5a, 0xe8, 0xde, 0x5a, 0xd8, 0xde, 0xc4, 0xca, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x27, 0x15, 0xff, 0x35, 0x00, 0x9d, 0x68, 0x61, 0x73, 0x68, 0x20, 0x61, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x67, 0x65, 0x74, 0x20, 0x61, 0x20, 0x6c, 0x6f, 0x62, 0x65, 0xae, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xbe, 0x91, 0xa6, 0x0d, 0xbf, 0x28, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xa8, 0x30, 0x1c, 0x48, 0x45, 0x85, 0xf1, 0xc1, 0xeb, 0xe8, 0xec, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x8b, 0x4d, 0x9a, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x65, 0x4a, 0xd3, 0x41, 0x2a, 0xad, 0xec, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x5d, 0x2e, 0x4d, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x26, 0xa6, 0xe9, 0x20, 0xbd, 0x69, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xbc, 0x9a, 0xa6, 0x83, 0xd3, 0xca, 0x59, 0x1d, 0x4e, 0xb1, 0x35, 0x78, 0xfe, 0xb4, 0xcb, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0xf3, 0xa7, 0x5d, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xfb, 0x73, 0x9a, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0xb5, 0x2b, 0x93, 0x9b, 0x4b, 0x7b, 0x73, 0x03, 0x71, 0xab, 0x6b, 0x13, 0x2b, 0x93, 0x3b, 0x28, 0xb3, 0x74, 0x0f, 0xa7, 0x58, 0x0b, 0xf0, 0xcf, 0x95, 0x9d, 0xb5, 0x95, 0xb9, 0xd1, 0xcd, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xaf, 0x02, 0xff, 0x6b, 0x00, 0xfc, 0x1f, 0x7b, 0x6b, 0x83, 0xab, 0xa3, 0x2b, 0x03, 0x09, 0x63, 0x63, 0x03, 0x81, 0x0b, 0xa3, 0x43, 0x9b, 0x03, 0x31, 0x93, 0x7b, 0x6b, 0x03, 0xd1, 0x81, 0x0b, 0xa3, 0x43, 0x6b, 0x81, 0x0b, 0x93, 0xa3, 0x63, 0x01, 0x91, 0x2b, 0x83, 0x63, 0x0b, 0x1b, 0x4b, 0x73, 0x3b, 0x03, 0x99, 0x7b, 0x6b, 0x2b, 0x03, 0x01, 0x7b, 0x01, 0x9b, 0x03, 0xb9, 0x4b, 0xa3, 0x43, 0x03, 0x01, 0x6b, 0x01, 0x9b, 0x57, 0x02, 0xd0, 0xd6, 0xe8, 0x4d, 0x0e, 0xa4, 0x0c, 0x2f, 0xac, 0x0d, 0x8e, 0xad, 0x8c, 0x05, 0xe4, 0x0e, 0xad, 0xcc, 0x0d, 0x04, 0x2e, 0x6c, 0x6e, 0xae, 0x8c, 0x0c, 0x24, 0x0c, 0x44, 0x07, 0x2e, 0x8c, 0x0e, 0xad, 0x05, 0x2e, 0x4c, 0x8e, 0x0e, 0xe4, 0xcd, 0x0c, 0xe4, 0xc4, 0xec, 0xed, 0xad, 0x45, 0x2c, 0x4c, 0xae, 0x45, 0x2c, 0x4c, 0xef, 0x84, 0x2d, 0x01, 0x34, 0xd2, 0xa1, 0x95, 0x81, 0xc0, 0xc9, 0xbd, 0x91, 0xd5, 0x8d, 0xd1, 0x81, 0xdc, 0xa5, 0xb1, 0xb1, 0x81, 0x8c, 0xbd, 0xb9, 0xd1, 0x85, 0xa5, 0xb9, 0xe9, 0x25, 0xf0, 0xc0, 0xc0, 0xc0, 0x25, 0x80, 0x6e, 0xb2, 0x37, 0xb5, 0x37, 0x1f, 0x10, 0x94, 0xb9, 0xb2, 0xb3, 0xb6, 0x32, 0x37, 0xba, 0x39, 0x90, 0x13, 0xb3, 0xb7, 0xb7, 0x16, 0xb1, 0x30, 0xb9, 0x16, 0xb1, 0x30, 0xbd, 0x93, 0xb4, 0x04, 0xe0, 0xab, 0xdf, 0xd6, 0x8b, 0xd9, 0xdb, 0x5b, 0x8b, 0x58, 0x98, 0x5c, 0x8b, 0x58, 0x98, 0x1e, 0xc8, 0x8b, 0xd9, 0xdb, 0x5b, 0x8b, 0x58, 0x98, 0xdc, 0x8b, 0x58, 0x98, 0x1e, 0xc8, 0x8b, 0xd9, 0xdb, 0xdb, 0x8b, 0x58, 0x98, 0x5c, 0x8b, 0x58, 0x98, 0x1e, 0xc8, 0x8b, 0xd9, 0xdb, 0xdb, 0x8b, 0x58, 0x98, 0xdc, 0x8b, 0x58, 0x98, 0x5e, 0xb7, 0xc1, 0x13, 0xed, 0xff, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xb8, 0xa7, 0x69, 0xc3, 0x2f, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xa2, 0x2c, 0x24, 0x03, 0x89, 0xb2, 0x30, 0xda, 0xf0, 0xe7, 0xd2, 0x06, 0x27, 0x3d, 0xc1, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x94, 0x85, 0xc1, 0xc1, 0x8b, 0x0c, 0x00, 0x0f, 0xce, 0x9b, 0xa7, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xe9, 0x40, 0x4d, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x65, 0x21, 0x19, 0xc8, 0x94, 0x85, 0xd1, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xca, 0x42, 0x34, 0x90, 0x29, 0x0b, 0xf1, 0x41, 0x48, 0x99, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0xb2, 0x90, 0x0f, 0x64, 0xca, 0xc2, 0xe6, 0xe0, 0x8c, 0x84, 0xda, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xda, 0x50, 0xd3, 0x06, 0x05, 0x69, 0xec, 0x06, 0xcd, 0xbd, 0x59, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x62, 0xd4, 0xb4, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xd3, 0x91, 0x9a, 0x0e, 0xd6, 0xcc, 0x86, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xd2, 0xd4, 0x74, 0xb0, 0x58, 0x28, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x56, 0xa8, 0xa6, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x38, 0xd5, 0x74, 0xb0, 0xac, 0x12, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xe4, 0xab, 0xa6, 0x83, 0xe5, 0xc8, 0xc2, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0x6f, 0x35, 0x6d, 0xb0, 0x42, 0xa8, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xa0, 0xc4, 0xa6, 0x83, 0x15, 0x15, 0xa1, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0xde, 0x35, 0x6d, 0xb0, 0x42, 0xa8, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xe8, 0xc1, 0xa6, 0x83, 0xf5, 0xc0, 0xa0, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0xfc, 0x35, 0x1d, 0x2c, 0x24, 0x0c, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x6b, 0xaf, 0xe9, 0x60, 0xed, 0x64, 0x68, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0x7e, 0x35, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x32, 0xb1, 0xa6, 0x83, 0x85, 0x8a, 0xa1, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0x9a, 0x35, 0x6d, 0xb0, 0x42, 0xa8, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x72, 0xb9, 0xa6, 0x83, 0xf5, 0xc0, 0xa0, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0xb8, 0x35, 0x1d, 0x2c, 0x24, 0x0c, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x4b, 0xad, 0xe9, 0x60, 0xed, 0x64, 0x68, 0x55, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x91, 0x8d, 0x4d, 0x1b, 0x14, 0xa4, 0xb1, 0x6b, 0xf8, 0xbe, 0x7d, 0xc0, 0xa7, 0x7b, 0x93, 0x73, 0x37, 0x28, 0xa1, 0x63, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x64, 0x59, 0x88, 0x07, 0x92, 0x65, 0x61, 0xb9, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xb2, 0x90, 0x0f, 0x24, 0xcb, 0xc2, 0xe6, 0x20, 0xa4, 0x4c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x64, 0x59, 0x18, 0x0d, 0x24, 0xcb, 0xc2, 0xf0, 0xe0, 0xbc, 0x79, 0xda, 0x41, 0x98, 0x8e, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x04, 0xd9, 0xb4, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x43, 0x26, 0x9b, 0x0e, 0x8e, 0xb1, 0x63, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0x5f, 0x36, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x5e, 0xcd, 0xa6, 0x83, 0xb5, 0x06, 0xb0, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0x7e, 0x36, 0x6d, 0x78, 0x5b, 0xe7, 0xe0, 0x9c, 0x27, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xb8, 0x68, 0xd3, 0x86, 0xb7, 0x75, 0x36, 0x68, 0xee, 0xcd, 0xb2, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x32, 0x6d, 0xda, 0xe0, 0xe8, 0x3a, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x3f, 0x6a, 0xd3, 0xc1, 0x9b, 0x90, 0x00, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x8e, 0xb5, 0x69, 0x83, 0x13, 0xfb, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x2d, 0xaf, 0x4d, 0x07, 0x85, 0xc5, 0xf2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x02, 0x6d, 0xd3, 0x86, 0xaf, 0x70, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xbb, 0x6d, 0x9b, 0x36, 0xfc, 0x45, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xcb, 0x42, 0x3a, 0x90, 0x2e, 0x0b, 0xfb, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x97, 0x85, 0x78, 0x20, 0x5d, 0x16, 0x26, 0x07, 0x21, 0x65, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xcb, 0xc2, 0x66, 0x20, 0x5d, 0x16, 0xe6, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x2e, 0x0b, 0xa3, 0x81, 0x74, 0x59, 0x18, 0x1e, 0x84, 0x94, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x2e, 0x0b, 0xcb, 0x81, 0x74, 0x59, 0x58, 0x1f, 0x9c, 0x37, 0x4f, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x2d, 0xb7, 0x69, 0xc3, 0xbb, 0x79, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0xf0, 0x36, 0x6d, 0x50, 0x4c, 0x62, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0xb2, 0x10, 0x0e, 0xe4, 0xcb, 0x42, 0x7a, 0x10, 0x82, 0x0f, 0x1b, 0x3c, 0xd8, 0x06, 0xb0, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xae, 0xdf, 0xa6, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x20, 0xdc, 0xb4, 0x41, 0x31, 0x89, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xcc, 0x42, 0x38, 0x90, 0x30, 0x0b, 0x8b, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0xb3, 0x90, 0x0e, 0x24, 0xcc, 0x42, 0x7c, 0xf8, 0xa1, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x98, 0x85, 0x7c, 0x20, 0x61, 0x16, 0x06, 0x07, 0x21, 0xf8, 0xd0, 0xc1, 0x0b, 0xd2, 0x00, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x35, 0x6e, 0xda, 0xe0, 0xe8, 0x3a, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x4d, 0x72, 0xd3, 0x86, 0xb7, 0x75, 0x0e, 0x5e, 0x90, 0x06, 0xd8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x17, 0x73, 0xd3, 0x06, 0x27, 0xf6, 0x9b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x33, 0x9e, 0x9b, 0x0e, 0x1a, 0x95, 0xff, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0xa0, 0x6e, 0xda, 0xa0, 0xe8, 0x34, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xd7, 0xba, 0xe9, 0xa0, 0x44, 0xaa, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x5f, 0xbb, 0x69, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x17, 0xa4, 0x01, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0x79, 0x37, 0x6d, 0x78, 0x5b, 0x67, 0x70, 0xfa, 0xe0, 0x05, 0x69, 0x80, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0x87, 0x37, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x9a, 0x85, 0x64, 0x20, 0x69, 0x16, 0x66, 0x1b, 0xfe, 0x5c, 0x1a, 0x7c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa4, 0x59, 0xc8, 0x0e, 0x9e, 0x81, 0x08, 0xb8, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0xb3, 0x10, 0x0e, 0x24, 0xcd, 0xc2, 0xe0, 0x20, 0xa4, 0x4c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa4, 0x59, 0x58, 0x0c, 0x24, 0xcd, 0xc2, 0xea, 0xe0, 0xbc, 0x79, 0xda, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x3b, 0x79, 0xd3, 0x86, 0xbf, 0x68, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xac, 0x59, 0x48, 0x06, 0xb2, 0x66, 0x61, 0xbb, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0xb3, 0x10, 0x0d, 0x64, 0xcd, 0x42, 0x7c, 0x10, 0x52, 0x26, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xd6, 0x2c, 0xe4, 0x03, 0x59, 0xb3, 0x30, 0xdd, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xac, 0x59, 0x18, 0x0c, 0x64, 0xcd, 0xc2, 0xe8, 0x20, 0xa4, 0x4c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xac, 0x59, 0x58, 0x0d, 0x64, 0xcd, 0xc2, 0xf2, 0xe0, 0xbc, 0x79, 0x5a, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x6d, 0xe7, 0x4d, 0x1b, 0x14, 0x7c, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0xa8, 0x37, 0x6d, 0x50, 0x4c, 0x62, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0xb3, 0x10, 0x0e, 0xa4, 0xcd, 0x42, 0x7a, 0x50, 0xa4, 0x62, 0x1e, 0x9c, 0xdb, 0xf9, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x23, 0xda, 0x9b, 0x36, 0x38, 0xba, 0x0e, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xf9, 0xde, 0xb4, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x43, 0xe4, 0x9b, 0x36, 0xbc, 0xad, 0x33, 0x78, 0x7a, 0xf0, 0x82, 0x34, 0xc0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xe3, 0xe9, 0x9b, 0x0e, 0x0e, 0xe7, 0x7c, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x7d, 0xdf, 0xb4, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xf3, 0xf4, 0x9b, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x52, 0x7f, 0xd3, 0xc1, 0x72, 0x64, 0xe1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x1b, 0x03, 0x9c, 0x36, 0x3c, 0x8b, 0xb7, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xc8, 0x02, 0xa7, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x86, 0xe0, 0x74, 0xb0, 0x0c, 0xfb, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x50, 0x06, 0xa7, 0x83, 0xa7, 0xaf, 0x02, 0xd6, 0xa0, 0x6d, 0xd9, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xf5, 0x10, 0x4e, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x79, 0xc2, 0xe9, 0x60, 0x19, 0xf6, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x0d, 0x18, 0x4e, 0x1b, 0xde, 0xd6, 0x19, 0x3c, 0x3d, 0x38, 0xb7, 0xf3, 0x55, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xcf, 0xe1, 0xb4, 0xe1, 0x6d, 0x9d, 0xc1, 0xe9, 0x83, 0x73, 0x3b, 0x5f, 0xcd, 0x1a, 0x34, 0x16, 0x83, 0xb9, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xd0, 0x58, 0x0c, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xb2, 0x88, 0xd3, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xfe, 0x74, 0x6f, 0x6d, 0x62, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x20, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x5d, 0x26, 0x4e, 0x07, 0xef, 0xd3, 0xfd, 0x58, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x7c, 0xc5, 0xe9, 0xf0, 0xc1, 0x6a, 0x87, 0x53, 0x6c, 0x0d, 0x1e, 0xd0, 0x87, 0xb7, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0xc1, 0x91, 0x21, 0xf4, 0xe0, 0x01, 0x7d, 0x78, 0x0d, 0xe0, 0xb7, 0x56, 0xc6, 0x66, 0x97, 0xe6, 0x06, 0x22, 0x17, 0xe6, 0x76, 0x56, 0xb6, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0x80, 0x3e, 0xbc, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xdc, 0x18, 0xa7, 0x0d, 0x96, 0x2e, 0x57, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x4d, 0xe3, 0xb4, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xe3, 0x6e, 0x9c, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x81, 0x8e, 0xd3, 0x41, 0xe0, 0xa8, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xed, 0xe3, 0x74, 0x10, 0x82, 0x0f, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x54, 0xe4, 0xb4, 0xe1, 0xcf, 0xa5, 0xc1, 0xe1, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x5c, 0x21, 0xa7, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x6c, 0x24, 0xa7, 0x83, 0x12, 0xf1, 0x7d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x8e, 0x26, 0xa7, 0x83, 0x67, 0x29, 0x84, 0xd4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x35, 0x94, 0xd3, 0xc1, 0xb3, 0x14, 0x42, 0x56, 0xc0, 0xa7, 0x0b, 0xab, 0xa3, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x38, 0x32, 0x84, 0x1e, 0x3c, 0x8c, 0x1c, 0xb0, 0x01, 0x78, 0x36, 0x4b, 0x63, 0x2b, 0x03, 0x49, 0x6b, 0x83, 0x7b, 0x93, 0xa3, 0x03, 0x31, 0x93, 0x7b, 0x6b, 0x03, 0x79, 0x61, 0x4b, 0x13, 0x03, 0x79, 0x93, 0x03, 0x79, 0x99, 0xab, 0x93, 0xdb, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0x18, 0x39, 0xe0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xa8, 0x95, 0xd3, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xde, 0x72, 0xda, 0xf0, 0xe7, 0xd2, 0x86, 0xb9, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0xc9, 0x72, 0xda, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xfa, 0x72, 0x3a, 0x28, 0x9b, 0x30, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x1c, 0x73, 0x3a, 0x58, 0xaf, 0xf5, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xa9, 0x6a, 0x4e, 0x1b, 0xfe, 0x5c, 0xda, 0x60, 0x01, 0x75, 0xfa, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x04, 0x9a, 0xd3, 0xc1, 0x7a, 0xad, 0xe7, 0x56, 0xc0, 0x87, 0x4b, 0x63, 0x2b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x38, 0x32, 0x84, 0x1e, 0x3c, 0x14, 0x1f, 0xb0, 0x01, 0x78, 0x86, 0x93, 0x2b, 0x83, 0x93, 0x7b, 0x1b, 0x2b, 0x9b, 0x9b, 0x2b, 0x23, 0x03, 0x41, 0x7b, 0x7b, 0x73, 0x03, 0x99, 0x7b, 0xab, 0x93, 0x1b, 0x2b, 0x03, 0x31, 0x4b, 0x63, 0x2b, 0x57, 0x02, 0xf0, 0xf4, 0xa5, 0x05, 0x04, 0x64, 0xae, 0x4e, 0xae, 0xc5, 0x2c, 0x8d, 0xad, 0x0c, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x44, 0x47, 0x07, 0x04, 0x64, 0xae, 0x4e, 0xce, 0x2c, 0x6c, 0xac, 0x0c, 0x24, 0xad, 0x0d, 0xee, 0x4d, 0x8e, 0x6e, 0x0e, 0xc4, 0x4c, 0xee, 0xad, 0x0d, 0xe4, 0x65, 0xae, 0x4e, 0x5e, 0x02, 0xf0, 0xf4, 0x65, 0x05, 0x04, 0x84, 0x2d, 0x4d, 0xac, 0xc5, 0x2c, 0x8d, 0xad, 0x0c, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x44, 0x47, 0x07, 0x04, 0x84, 0x2d, 0x4d, 0x4c, 0x2e, 0x4c, 0x2e, 0x0f, 0x24, 0xad, 0x0d, 0xee, 0x4d, 0x8e, 0x6e, 0x0e, 0xc4, 0x4c, 0xee, 0xad, 0x0d, 0xe4, 0x85, 0x2d, 0x4d, 0x5c, 0x02, 0xf0, 0xfa, 0xa5, 0x07, 0x04, 0xc4, 0x2c, 0x6c, 0xac, 0x0c, 0x04, 0xe4, 0x05, 0x2e, 0x8c, 0x0e, 0x0d, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x44, 0x47, 0x07, 0x04, 0x24, 0xad, 0x0d, 0xee, 0x4d, 0x8e, 0x6e, 0x0e, 0x44, 0xac, 0x2e, 0x8d, 0x8d, 0x0e, 0x04, 0xed, 0xed, 0xcd, 0x0d, 0xc4, 0x2c, 0x8d, 0xad, 0x0c, 0x24, 0x8c, 0x0e, 0x04, 0x2e, 0x8c, 0x0e, 0x5d, 0x02, 0xe0, 0x85, 0x17, 0x3f, 0x10, 0x10, 0xb3, 0xb0, 0xb1, 0x32, 0x10, 0x10, 0xba, 0x3c, 0xb8, 0x32, 0x10, 0x10, 0x90, 0x17, 0xb8, 0x30, 0x3a, 0x34, 0x10, 0x10, 0x1d, 0x1d, 0x10, 0x90, 0xb4, 0x36, 0xb8, 0x37, 0x39, 0xba, 0x39, 0x10, 0xb1, 0xba, 0x34, 0x36, 0x3a, 0x10, 0xb4, 0xb7, 0x37, 0x37, 0x10, 0xb3, 0x34, 0xb6, 0xb2, 0x39, 0x10, 0x33, 0xb9, 0xb7, 0x36, 0x10, 0xb2, 0x34, 0xb9, 0xb2, 0x31, 0xba, 0x37, 0xb9, 0x7c, 0x09, 0xc0, 0xf3, 0x97, 0x12, 0x10, 0x10, 0xb3, 0xb0, 0xb1, 0x32, 0x10, 0x90, 0x92, 0xb6, 0x30, 0xb9, 0x35, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1d, 0x1d, 0x10, 0x90, 0xb4, 0x36, 0xb8, 0x37, 0x39, 0xba, 0x39, 0x90, 0xb6, 0x30, 0xb9, 0x35, 0x10, 0xb2, 0x32, 0xb3, 0x34, 0xb7, 0x34, 0xba, 0xb4, 0x37, 0x37, 0x10, 0x33, 0xb9, 0xb7, 0x36, 0x90, 0x97, 0xb6, 0x30, 0x79, 0x09, 0xc0, 0xef, 0x17, 0x12, 0x10, 0x10, 0xb3, 0xb0, 0xb1, 0x32, 0x10, 0x90, 0x12, 0x33, 0xb9, 0xb7, 0x36, 0x10, 0x90, 0x12, 0xba, 0x37, 0x10, 0x10, 0x10, 0x10, 0x1d, 0x1d, 0x10, 0x90, 0xb4, 0x36, 0xb8, 0x37, 0x39, 0xba, 0x39, 0x90, 0xb6, 0x30, 0xb9, 0x35, 0x90, 0xb1, 0x37, 0x37, 0xbb, 0x32, 0x39, 0xba, 0x32, 0x39, 0x10, 0x33, 0xb9, 0xb7, 0x36, 0x90, 0x97, 0xb6, 0x30, 0x79, 0x09, 0xc0, 0xe3, 0x17, 0x15, 0x10, 0x10, 0xb3, 0xb0, 0xb1, 0x32, 0x10, 0x90, 0x92, 0xb6, 0x30, 0xb9, 0x35, 0x10, 0x90, 0x17, 0xb8, 0x30, 0x3a, 0x34, 0x10, 0x10, 0x1d, 0x1d, 0x10, 0x90, 0x3a, 0x37, 0xb1, 0xba, 0x34, 0x36, 0x3a, 0x10, 0xb3, 0x34, 0xb6, 0x32, 0x90, 0xb4, 0x36, 0xb8, 0x37, 0x39, 0xba, 0x39, 0x16, 0x90, 0xb0, 0x39, 0x90, 0xb6, 0x30, 0xb9, 0xb5, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x1e, 0x8a, 0x0f, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xff, 0xe6, 0xb4, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xf3, 0xe9, 0x9c, 0x36, 0xfc, 0xb9, 0x34, 0xe0, 0xcd, 0xd5, 0xc9, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x6d, 0x72, 0x4e, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x85, 0x78, 0x4e, 0x07, 0x21, 0x65, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x31, 0x9f, 0xd3, 0x86, 0x7f, 0xe7, 0xd7, 0xe0, 0x61, 0xe4, 0x80, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x29, 0x84, 0x4e, 0x1b, 0xfe, 0x5c, 0x1a, 0xf0, 0xd8, 0xd2, 0xc4, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xce, 0x40, 0xa7, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xda, 0x43, 0xa7, 0x83, 0x90, 0x32, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x7e, 0xd1, 0xe9, 0xe0, 0x9d, 0x3e, 0x81, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x30, 0xe9, 0xb4, 0xe1, 0xcf, 0xa5, 0x0d, 0x52, 0x64, 0x7b, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xfb, 0x20, 0x9d, 0x36, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x33, 0x2d, 0x9d, 0x0e, 0x42, 0xca, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xe4, 0x4d, 0xa7, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x0f, 0xea, 0xb4, 0xe1, 0xcf, 0xa5, 0x0d, 0x73, 0xbf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xe6, 0xe9, 0x74, 0xb0, 0x5e, 0xeb, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x00, 0x54, 0xa7, 0x0d, 0x7f, 0x2e, 0x6d, 0x70, 0x30, 0xfd, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x2b, 0x75, 0x3a, 0x38, 0x23, 0xa1, 0xd6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb5, 0xaf, 0x4e, 0x1b, 0xfe, 0x5c, 0x1a, 0xf0, 0xe4, 0xc2, 0xf4, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x92, 0x56, 0xa7, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xa0, 0x59, 0xa7, 0x83, 0x90, 0x32, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x14, 0xd7, 0x69, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x47, 0xf7, 0x3a, 0x6d, 0xf8, 0x73, 0x69, 0xc3, 0xdc, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0xed, 0x3a, 0x1d, 0xac, 0xd7, 0x7a, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x8a, 0xd8, 0x69, 0xc3, 0x9f, 0x4b, 0x1b, 0x94, 0xd0, 0xb1, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xbd, 0xc1, 0x4e, 0x07, 0x0b, 0xac, 0xa0, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x64, 0x76, 0xda, 0xf0, 0xe7, 0xd2, 0x06, 0x07, 0xd3, 0xcf, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xfe, 0x64, 0xa7, 0x83, 0x33, 0x12, 0x6a, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x47, 0xed, 0xb4, 0xe1, 0xcf, 0xa5, 0x01, 0xaf, 0x2d, 0x4c, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x8f, 0x76, 0xda, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xbf, 0x76, 0x3a, 0x08, 0x29, 0x93, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x5b, 0xba, 0x9d, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x96, 0xb8, 0xd3, 0x86, 0x3f, 0x97, 0x36, 0xcc, 0xfd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xf2, 0xb7, 0xd3, 0xc1, 0x7a, 0xad, 0xe7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xa3, 0xd1, 0x9d, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0x29, 0xf2, 0x74, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xc7, 0xdc, 0xe9, 0xe0, 0x7d, 0x1b, 0x22, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x2c, 0xbc, 0xd3, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0xb1, 0x30, 0x7d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xc4, 0xdd, 0x69, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x87, 0xde, 0xe9, 0x20, 0xa4, 0x4c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xcc, 0x77, 0xda, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb5, 0xfe, 0x4e, 0x1b, 0xfe, 0x5c, 0xda, 0x30, 0xf7, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x25, 0xfc, 0x4e, 0x07, 0xeb, 0xb5, 0x9e, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x29, 0x78, 0xda, 0xf0, 0xe7, 0xd2, 0x06, 0x2d, 0xcc, 0x8f, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0x0a, 0x3c, 0x1d, 0x3c, 0x5e, 0xb5, 0xaf, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x68, 0x78, 0xda, 0xf0, 0xe7, 0xd2, 0x06, 0x6b, 0xec, 0x66, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xfb, 0x14, 0x9e, 0x36, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x33, 0x21, 0x9e, 0x0e, 0x42, 0xca, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xf2, 0x8a, 0xa7, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xb1, 0xf1, 0xb4, 0xe1, 0xcf, 0xa5, 0x0d, 0x73, 0xbf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x88, 0xf1, 0x74, 0xb0, 0x5e, 0xeb, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xc8, 0x90, 0xa7, 0x0d, 0x7f, 0x2e, 0x6d, 0x70, 0x8a, 0x3c, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xf7, 0x78, 0x3a, 0x78, 0xdf, 0x86, 0xc8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xa9, 0x28, 0x4f, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x60, 0xfa, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x61, 0xf2, 0x74, 0x70, 0x46, 0x42, 0xad, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xfb, 0x60, 0x9e, 0x36, 0xfc, 0xb9, 0xb4, 0x41, 0x9a, 0x99, 0xf7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x7d, 0xcb, 0xd3, 0xc1, 0x02, 0x0b, 0xe7, 0x56, 0x83, 0x47, 0xc0, 0xee, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x70, 0x64, 0x08, 0x3d, 0x78, 0x04, 0xec, 0x5e, 0x03, 0xf8, 0xc1, 0xc9, 0xbd, 0xd1, 0xbd, 0xb5, 0x8c, 0xbd, 0xb5, 0xb5, 0xa5, 0xd1, 0x6d, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0x3c, 0x02, 0x76, 0x6f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xe1, 0xe6, 0x69, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x47, 0xf0, 0x3c, 0x6d, 0x78, 0xe2, 0x7d, 0x83, 0x27, 0x2f, 0xee, 0x6d, 0xf8, 0x73, 0x69, 0x70, 0x78, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x30, 0xe7, 0x69, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xf4, 0xe7, 0xe9, 0x20, 0xa4, 0x4c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x1f, 0x7a, 0x3a, 0x78, 0xe9, 0xa5, 0x5e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0x2b, 0x3d, 0x6d, 0x78, 0xe2, 0x7d, 0x83, 0x85, 0x58, 0xdc, 0x1b, 0xfe, 0x5c, 0x1a, 0x3c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x42, 0x7a, 0xda, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x74, 0x7a, 0x3a, 0x28, 0x11, 0xeb, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x96, 0x7a, 0x3a, 0x38, 0x23, 0xa1, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x64, 0xf5, 0xb4, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x91, 0xf5, 0x74, 0xb0, 0x0a, 0x32, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xb0, 0xae, 0xa7, 0x83, 0xd7, 0xd1, 0xd9, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x0e, 0xf6, 0x74, 0xf0, 0x46, 0x88, 0xbd, 0x6a, 0x35, 0x78, 0xc2, 0x2f, 0xdf, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0x47, 0x86, 0xd0, 0x83, 0x27, 0xfc, 0xf2, 0x35, 0x80, 0xef, 0xd8, 0x5b, 0x1b, 0x5c, 0x1d, 0x5d, 0x19, 0x19, 0x08, 0x59, 0x19, 0x1b, 0x5d, 0xd8, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x13, 0x7e, 0xf9, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x63, 0xcd, 0x9e, 0x36, 0x08, 0xda, 0x9f, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xcb, 0xd3, 0x9e, 0x36, 0x3c, 0xf1, 0xbe, 0xc1, 0x0b, 0xd6, 0xf9, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x20, 0xdb, 0xd3, 0xc1, 0x0b, 0xdc, 0xf9, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x82, 0x7b, 0x3a, 0x08, 0xc1, 0x87, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0xa1, 0x7b, 0xda, 0xf0, 0xc4, 0xfb, 0x06, 0x2f, 0x94, 0xe7, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xbd, 0x76, 0x4f, 0x07, 0x6f, 0xa8, 0xe7, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xa5, 0xef, 0x69, 0xc3, 0x9f, 0x4b, 0x83, 0xc3, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x99, 0x7a, 0x4f, 0x07, 0xef, 0x45, 0x20, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x20, 0xc0, 0xa7, 0x0d, 0x4f, 0xbc, 0x6f, 0xf0, 0xc0, 0x7d, 0xbe, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x2d, 0xf8, 0x74, 0xf0, 0xe4, 0x7f, 0xbe, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xa3, 0x12, 0x9f, 0x36, 0xfc, 0xb9, 0x34, 0x38, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x6c, 0xf8, 0x74, 0xf0, 0x46, 0x88, 0xbd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x83, 0x1f, 0x9f, 0x36, 0xfc, 0xb9, 0x34, 0x78, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xd3, 0xf8, 0x74, 0xf0, 0x5e, 0x04, 0x92, 0x3a, 0x9c, 0x62, 0x2d, 0x80, 0xdf, 0xd8, 0x9b, 0x1c, 0x59, 0x0b, 0xdd, 0x5b, 0xcb, 0x5d, 0x98, 0x19, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x38, 0xf9, 0xb4, 0xe1, 0x17, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x1b, 0x15, 0x92, 0x81, 0x6c, 0x54, 0x88, 0x37, 0xfc, 0xb9, 0xb4, 0xc1, 0x01, 0x49, 0x74, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x51, 0x21, 0x3a, 0x78, 0x40, 0x77, 0xe0, 0xc1, 0x09, 0x48, 0x74, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xd4, 0xf2, 0x69, 0xc3, 0x5f, 0x34, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x3a, 0x2a, 0x24, 0x03, 0xe9, 0xa8, 0x90, 0x1e, 0xbc, 0x90, 0x0f, 0x6f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x24, 0xf3, 0x69, 0x83, 0x82, 0x34, 0x76, 0x0d, 0xdf, 0xb7, 0x0f, 0xf0, 0xdc, 0x95, 0x99, 0xd1, 0xcd, 0x1b, 0x94, 0xd0, 0xb1, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x3e, 0x2a, 0xe4, 0x03, 0xf9, 0xa8, 0x30, 0xdd, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x7c, 0x54, 0x18, 0x0c, 0xe4, 0xa3, 0xc2, 0xe8, 0x20, 0xa4, 0x4c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x7c, 0x54, 0x58, 0x0d, 0xe4, 0xa3, 0xc2, 0xf2, 0xe0, 0x59, 0x0a, 0x21, 0x1d, 0x84, 0xe9, 0xd8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xe1, 0x9b, 0x4f, 0x1b, 0x14, 0x9d, 0xc6, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0x7a, 0x3e, 0x1d, 0x94, 0x48, 0xd5, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0x8b, 0x3e, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xda, 0xd2, 0xa7, 0x83, 0x05, 0x3b, 0xe8, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0xa9, 0x3e, 0x6d, 0x78, 0x5b, 0xe7, 0xe0, 0x78, 0x24, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x72, 0xeb, 0xd3, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x84, 0x7d, 0x3a, 0x58, 0xa8, 0x18, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x37, 0xed, 0xd3, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0xbd, 0x7d, 0x3a, 0x58, 0xa8, 0x49, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x00, 0xef, 0xd3, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0xf5, 0x7d, 0x3a, 0x58, 0x70, 0x27, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x9b, 0xf0, 0xd3, 0xc1, 0x82, 0x3b, 0xd1, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x2f, 0x7e, 0xda, 0xf0, 0xa0, 0xe4, 0x06, 0x0d, 0x8c, 0x5e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0x23, 0x3f, 0x1d, 0x34, 0x17, 0x7c, 0x5c, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0x37, 0x3f, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x48, 0x85, 0x6c, 0x20, 0x23, 0x15, 0x06, 0x1b, 0xfe, 0x5c, 0xda, 0x20, 0xcd, 0xcc, 0x7b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x52, 0x21, 0x3c, 0x78, 0x46, 0x83, 0xe0, 0xc1, 0x02, 0x0b, 0xe7, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x9e, 0xe8, 0xa7, 0x0d, 0x96, 0x08, 0x3e, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x29, 0xa9, 0x10, 0x0d, 0xa4, 0xa4, 0x42, 0x7c, 0xf0, 0x2c, 0x85, 0x90, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xae, 0xed, 0xa7, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xe2, 0xfd, 0x74, 0xd0, 0x14, 0x99, 0xe5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x5d, 0xe2, 0x4f, 0x1b, 0x2c, 0x90, 0x7b, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x3c, 0x7f, 0x3a, 0x28, 0x28, 0x32, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x58, 0x7f, 0x3a, 0x68, 0x34, 0x78, 0xa0, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x34, 0xf8, 0xa7, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x31, 0xff, 0xb4, 0x41, 0x31, 0x89, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xa4, 0x42, 0x38, 0x90, 0x93, 0x0a, 0x8b, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0xa9, 0x90, 0x0e, 0xe4, 0xa4, 0x42, 0x7c, 0x10, 0xa6, 0x63, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4e, 0x2a, 0xe4, 0x03, 0x39, 0xa9, 0x30, 0x38, 0x08, 0xc1, 0x87, 0x36, 0x78, 0xed, 0x79, 0x60, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0xdb, 0x3f, 0x6d, 0x78, 0x5b, 0x67, 0xf0, 0xf4, 0xe0, 0x89, 0x29, 0x82, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xc9, 0xf9, 0x4f, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x8a, 0xff, 0x69, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0xfb, 0x3f, 0x1d, 0x2c, 0x9f, 0x42, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x34, 0x00, 0xea, 0xa0, 0xa0, 0xc8, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x3a, 0x02, 0xa8, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x73, 0x00, 0xb5, 0xe1, 0x6d, 0x9d, 0x81, 0x9f, 0xcb, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x7a, 0x01, 0x6a, 0xc3, 0xdb, 0x3a, 0x07, 0x4f, 0x4c, 0x11, 0xac, 0xd5, 0xe0, 0x4d, 0x91, 0x23, 0x1b, 0x9e, 0x27, 0xd9, 0xe0, 0x35, 0xe3, 0x76, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0x6f, 0x8a, 0x1c, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x95, 0x80, 0xda, 0x20, 0xd4, 0x10, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd4, 0x4a, 0x48, 0x06, 0x52, 0x2b, 0x61, 0xb2, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xb5, 0x12, 0xa2, 0x81, 0xd4, 0x4a, 0xc8, 0x0f, 0x5e, 0xff, 0x9d, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x56, 0xc2, 0x60, 0x20, 0xb5, 0x12, 0x16, 0x07, 0x05, 0x45, 0x66, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x45, 0x10, 0x50, 0x1b, 0x04, 0xed, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xf9, 0x15, 0x50, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0xc2, 0xa5, 0x95, 0xc9, 0x81, 0xc8, 0x95, 0x89, 0xbd, 0xbd, 0xd1, 0x95, 0x91, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x4a, 0x0c, 0xa8, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x3c, 0x50, 0x25, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x00, 0x0f, 0xa8, 0x83, 0x10, 0x7c, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xe4, 0x10, 0xa8, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xf8, 0x99, 0x2b, 0xa3, 0x03, 0x81, 0x2b, 0x93, 0x6b, 0x4b, 0x9b, 0x9b, 0x4b, 0x7b, 0x73, 0x03, 0x39, 0x93, 0x7b, 0xab, 0x83, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x65, 0x24, 0x50, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x78, 0xa9, 0x4d, 0xd0, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x69, 0x2c, 0x50, 0x1b, 0xfe, 0x5c, 0xda, 0xa0, 0x45, 0xd2, 0xde, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xec, 0x14, 0xa8, 0x83, 0xa3, 0x36, 0xe8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x01, 0x35, 0x50, 0x1b, 0xfe, 0x5c, 0x1a, 0xf0, 0xc6, 0xca, 0xee, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x36, 0x19, 0xa8, 0x83, 0xf7, 0x27, 0xe3, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x80, 0x0e, 0xd4, 0x86, 0x27, 0xde, 0x37, 0x78, 0x03, 0x2f, 0xde, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xe4, 0x81, 0xda, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0x93, 0x51, 0x82, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x10, 0x82, 0x3a, 0x08, 0xc1, 0x87, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x2e, 0x82, 0xda, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0xeb, 0x4c, 0xee, 0xad, 0x0e, 0x0e, 0xa4, 0x6e, 0x2e, 0xec, 0xac, 0x6c, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0x21, 0x41, 0x6d, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xe0, 0xe9, 0x4a, 0x41, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0x41, 0x41, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0x16, 0x49, 0x7b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xb3, 0x9b, 0xa0, 0x0e, 0x8e, 0xda, 0xa0, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x66, 0x05, 0xb5, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x3f, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x20, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x1f, 0x0b, 0x6a, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0xa7, 0x47, 0x85, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xf3, 0xc1, 0xa0, 0x36, 0xfc, 0xb9, 0x34, 0xe0, 0x91, 0x95, 0xcd, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x69, 0x5e, 0x50, 0x07, 0x8f, 0xc2, 0x0b, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x6c, 0x32, 0xa8, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x3c, 0xd3, 0xdc, 0xe8, 0xca, 0xe4, 0xdc, 0xc2, 0xd8, 0x40, 0xca, 0xc8, 0xd2, 0xe8, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xdd, 0x19, 0xd4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x1e, 0xf1, 0x13, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xde, 0x1b, 0xd4, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb2, 0xb2, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x9d, 0x0d, 0xea, 0xe0, 0x51, 0x78, 0x21, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0xd7, 0x41, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0xd5, 0x04, 0xa4, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x5d, 0x73, 0x50, 0x07, 0xcf, 0x78, 0xe5, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xb0, 0x84, 0x64, 0x20, 0xc3, 0x12, 0xbe, 0x6c, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x2b, 0x57, 0x06, 0xf7, 0x26, 0x47, 0x07, 0x92, 0xe6, 0x36, 0x47, 0x17, 0xc6, 0xc6, 0xb6, 0xc1, 0x7a, 0x95, 0xaa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xc3, 0x12, 0xc2, 0x81, 0x0c, 0x4b, 0x58, 0x1c, 0xbc, 0x3f, 0xd8, 0x6f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x55, 0x0f, 0xea, 0xe0, 0x05, 0x02, 0x77, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0x01, 0x42, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x59, 0x86, 0x47, 0x57, 0x26, 0xe7, 0x16, 0xc6, 0x06, 0x52, 0x46, 0x96, 0x46, 0xb7, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xeb, 0x05, 0xa1, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0x50, 0x82, 0x7a, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xaf, 0x08, 0xb5, 0xe1, 0xcf, 0xa5, 0x01, 0x8f, 0xac, 0x6c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x43, 0x84, 0x3a, 0x78, 0x14, 0x5e, 0xc8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x75, 0x91, 0x50, 0x1b, 0xfe, 0x5c, 0xda, 0xa0, 0xd0, 0x10, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x77, 0x84, 0x3a, 0x7c, 0xb0, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xfc, 0x25, 0xd4, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb3, 0xb4, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xab, 0x12, 0xea, 0xe0, 0x35, 0xe3, 0x78, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xc6, 0x09, 0xb5, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xfb, 0x3d, 0xa1, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x6a, 0x2b, 0x93, 0x3b, 0x2b, 0x03, 0x21, 0x2b, 0x9b, 0x5b, 0x9b, 0xdb, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0xe3, 0x5b, 0x82, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x38, 0x85, 0xda, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x39, 0x58, 0xcd, 0x6e, 0xbc, 0xe1, 0xcf, 0xa5, 0x01, 0x8f, 0xac, 0x6c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x23, 0x85, 0x3a, 0x78, 0x14, 0x5e, 0xc8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x8d, 0xad, 0x50, 0x1b, 0xfe, 0x5c, 0x1a, 0xf0, 0xd0, 0xca, 0xe4, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x7e, 0x55, 0xa8, 0x83, 0x63, 0xab, 0xeb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x1d, 0xb6, 0x50, 0x1b, 0xfe, 0x5c, 0xda, 0x60, 0x85, 0xa5, 0xe9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xe3, 0x2c, 0xd4, 0xc1, 0xa3, 0xf0, 0x42, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0xeb, 0x85, 0xda, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xe0, 0x9b, 0x7b, 0xab, 0x93, 0x1b, 0x2b, 0xdb, 0xf0, 0xe7, 0xd2, 0x80, 0x37, 0x16, 0x36, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0xeb, 0x42, 0x1d, 0xbc, 0x55, 0x2f, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x52, 0x62, 0xa8, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x83, 0x17, 0xa7, 0xd2, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0xe6, 0x22, 0xbb, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x2b, 0x84, 0xa1, 0x0e, 0x5e, 0x89, 0xf8, 0xd1, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xcd, 0xc9, 0x50, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x8b, 0x19, 0x6a, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x9f, 0xb6, 0x32, 0xb9, 0xb3, 0x32, 0x90, 0xb6, 0x30, 0xb7, 0xbc, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x34, 0xc3, 0x86, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x1b, 0x35, 0xd4, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x5e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x20, 0x64, 0x65, 0x73, 0x6b, 0x1b, 0xfe, 0x5c, 0x1a, 0xf0, 0xc8, 0xca, 0xe6, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xee, 0x68, 0xa8, 0x83, 0x47, 0xe1, 0x85, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xae, 0x0d, 0xb5, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x87, 0x58, 0xd8, 0x5c, 0x19, 0x08, 0x59, 0xd9, 0xdc, 0xda, 0x86, 0x3f, 0x97, 0x36, 0x58, 0x31, 0x70, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x85, 0x0d, 0x75, 0xf0, 0x54, 0xa3, 0x90, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xd3, 0xc5, 0xa1, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf8, 0xda, 0xca, 0xe4, 0xce, 0xca, 0xe6, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0x28, 0xe9, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x02, 0x87, 0xda, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x33, 0x87, 0x3a, 0x08, 0x29, 0x93, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x23, 0xd9, 0xa1, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xcb, 0x3b, 0xd4, 0xc1, 0x53, 0x8d, 0x42, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x9d, 0x87, 0x3a, 0x78, 0x25, 0xe2, 0x47, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x57, 0x3e, 0xd4, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x9e, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x6e, 0x69, 0x78, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x7f, 0x1f, 0x6a, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x4f, 0xcf, 0x09, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x7f, 0x20, 0x6a, 0xc3, 0x9f, 0x4b, 0x03, 0x1e, 0xdc, 0x1b, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x16, 0x10, 0x75, 0xb0, 0x5e, 0xeb, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x88, 0x85, 0xa8, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x62, 0x65, 0xed, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x1f, 0x42, 0xd4, 0xc1, 0x53, 0x82, 0x43, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x02, 0x22, 0x6a, 0xc3, 0x13, 0xef, 0x1b, 0x3c, 0x98, 0x19, 0x6f, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0x4a, 0x44, 0x1d, 0x3c, 0x21, 0x1a, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x8e, 0x8c, 0xa8, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x70, 0x6f, 0xf4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xa3, 0x45, 0xd4, 0xc1, 0x7a, 0xad, 0xe7, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xe7, 0x88, 0xda, 0xf0, 0xc4, 0xfb, 0x06, 0x8f, 0xcb, 0xc8, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x99, 0x1f, 0x51, 0x07, 0x0f, 0xf0, 0xc8, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xc1, 0x24, 0x6a, 0xc3, 0x9f, 0x4b, 0x03, 0x1e, 0xdc, 0x1b, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x37, 0x12, 0xb5, 0xe1, 0x83, 0xf9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x03, 0x5a, 0xa2, 0x0e, 0xd6, 0x6b, 0x3d, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0xa5, 0x44, 0x1d, 0x3c, 0x25, 0x38, 0xa4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xc3, 0x61, 0xa2, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0x63, 0x2e, 0xcf, 0x6d, 0x0c, 0x4d, 0xee, 0xcd, 0xed, 0xad, 0x6e, 0x0e, 0x64, 0xec, 0xad, 0xad, 0x2d, 0x8d, 0x6e, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0xcd, 0x44, 0x6d, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xe0, 0xc9, 0x40, 0x41, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0xee, 0x44, 0x6d, 0xf8, 0x73, 0x69, 0xc0, 0x23, 0x2b, 0x9b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xe3, 0x71, 0xa2, 0x0e, 0x1e, 0x85, 0x17, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x80, 0x50, 0xd4, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0xbc, 0xb7, 0x75, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xed, 0x27, 0xea, 0xe0, 0xd1, 0x61, 0x7f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0x26, 0x45, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0x86, 0x2d, 0xbf, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x13, 0x8e, 0xa2, 0x0e, 0x9e, 0x4e, 0xcd, 0xd7, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x21, 0x4e, 0x51, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xf0, 0x31, 0x86, 0x16, 0xe6, 0x76, 0x56, 0x06, 0x02, 0x57, 0x26, 0xd7, 0x96, 0x36, 0x37, 0x97, 0xf6, 0xe6, 0x36, 0xb7, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x7b, 0xa1, 0xa2, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xf0, 0xd0, 0x91, 0xa0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x83, 0xb1, 0xa2, 0x36, 0xfc, 0xb9, 0x34, 0xe0, 0x91, 0x95, 0xcd, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x31, 0x56, 0x51, 0x07, 0x8f, 0xc2, 0x0b, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xe8, 0x2b, 0x6a, 0xc3, 0x9f, 0x4b, 0x1b, 0x2c, 0xa0, 0x4e, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xe5, 0x8a, 0x3a, 0x38, 0x23, 0xa1, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x65, 0x16, 0xb5, 0xe1, 0xcf, 0xa5, 0x01, 0x4f, 0x2e, 0x8d, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x1e, 0x8b, 0xda, 0xf0, 0xef, 0xfc, 0x1a, 0xac, 0xbc, 0x36, 0xaa, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x56, 0x8b, 0xda, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x53, 0xae, 0x6c, 0xae, 0xae, 0xad, 0x0c, 0x64, 0xec, 0xad, 0xad, 0x2d, 0x8d, 0x6e, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0xb5, 0x45, 0x6d, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xe0, 0xa1, 0x3b, 0x41, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0xcb, 0x45, 0x1d, 0x84, 0xe0, 0x43, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0xda, 0x45, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x0f, 0x27, 0x97, 0xd6, 0x56, 0x06, 0x32, 0xc6, 0x16, 0x96, 0x07, 0x32, 0x47, 0xf7, 0x26, 0x57, 0xb6, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x83, 0xf2, 0xa2, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xf0, 0x76, 0x9a, 0xa0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x83, 0x02, 0xa3, 0x36, 0xfc, 0xb9, 0xb4, 0x41, 0x63, 0xed, 0x66, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xad, 0x7e, 0x51, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xd1, 0x84, 0x51, 0x07, 0x25, 0x62, 0xfd, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x1d, 0x89, 0x51, 0x07, 0x6f, 0x84, 0xd8, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x93, 0x31, 0xea, 0xe0, 0x75, 0x74, 0x76, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x46, 0x64, 0xd4, 0x86, 0x27, 0xde, 0x37, 0x78, 0xe3, 0xe1, 0xdf, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x9d, 0x8c, 0xda, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0xe3, 0x8b, 0x82, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0xdd, 0x8c, 0xda, 0xf0, 0xe7, 0xd2, 0x80, 0x47, 0x56, 0x36, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0x64, 0x46, 0x1d, 0x3c, 0x0a, 0x2f, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x18, 0xd1, 0xa8, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x72, 0x65, 0xee, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xe7, 0x67, 0xd4, 0xc1, 0x13, 0xe2, 0xfe, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xd5, 0x34, 0x6a, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x83, 0xc6, 0x04, 0x4b, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x49, 0xa9, 0x51, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x58, 0x93, 0xc5, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x51, 0x6c, 0xd4, 0x86, 0x3f, 0x97, 0x36, 0x38, 0x52, 0x5a, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0xba, 0x46, 0x1d, 0x84, 0xe9, 0x58, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0xd3, 0x46, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0x4b, 0x18, 0x1c, 0x1c, 0xc8, 0x1c, 0x5d, 0x18, 0x5d, 0x19, 0xc8, 0x5c, 0x9d, 0xd8, 0xdc, 0x98, 0x5c, 0x9a, 0x58, 0xd9, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0xbc, 0x8d, 0x3a, 0x78, 0xc6, 0x4d, 0xde, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xed, 0xbd, 0x51, 0x1b, 0xfe, 0x5c, 0x1a, 0x1c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xda, 0x8d, 0xda, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x0b, 0x8e, 0x3a, 0x28, 0x9b, 0x30, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x35, 0x8e, 0x3a, 0x08, 0xc1, 0x87, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x71, 0x39, 0x6a, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x3e, 0xe8, 0xde, 0xda, 0xc4, 0xe6, 0xe8, 0xde, 0xdc, 0xca, 0x40, 0xe6, 0xe0, 0xca, 0xc6, 0xd2, 0xcc, 0xd2, 0xc6, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x8a, 0x73, 0xd4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x9e, 0xd5, 0x13, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x89, 0x75, 0xd4, 0x86, 0x3f, 0x97, 0x36, 0x58, 0x61, 0x78, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x39, 0x1d, 0xb5, 0xe1, 0xdf, 0xf9, 0x0d, 0x16, 0x8d, 0x1e, 0xd7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x78, 0x09, 0xc9, 0x40, 0xe2, 0x25, 0xfc, 0xd8, 0xf0, 0xc4, 0xfb, 0x06, 0x8f, 0x99, 0xba, 0xdb, 0x60, 0xbd, 0x4a, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x78, 0x09, 0xe1, 0x40, 0xe2, 0x25, 0x2c, 0x0e, 0x5e, 0x6f, 0xef, 0xb1, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xbb, 0x1d, 0x75, 0xf0, 0x02, 0x81, 0xbb, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xf3, 0x12, 0x92, 0x81, 0xcc, 0x4b, 0xf8, 0xb2, 0xe1, 0x89, 0xf7, 0x0d, 0xde, 0xe3, 0x75, 0xb7, 0xc1, 0x7a, 0x95, 0xaa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xf3, 0x12, 0xc2, 0x81, 0xcc, 0x4b, 0x58, 0x1c, 0x3c, 0x72, 0xec, 0x6e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x0b, 0x3c, 0xea, 0xe0, 0x05, 0x02, 0x77, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0x93, 0x47, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0x43, 0x9a, 0x1b, 0x5d, 0x99, 0x9c, 0x5b, 0x18, 0x1b, 0x88, 0x59, 0x1a, 0x5b, 0x19, 0x88, 0x5c, 0x59, 0xdc, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x3b, 0x8f, 0xda, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0x23, 0x4e, 0x82, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x7b, 0x8f, 0xda, 0xf0, 0xe7, 0xd2, 0x06, 0x2d, 0x12, 0x5a, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0xb3, 0x47, 0x1d, 0xb4, 0x6d, 0x3d, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x77, 0x7d, 0xd4, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb9, 0x34, 0x73, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x69, 0x3e, 0x6a, 0xc3, 0xbf, 0xf3, 0x6b, 0xf0, 0xb6, 0x51, 0xbd, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x70, 0xfd, 0xa8, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x78, 0x28, 0xc3, 0xa3, 0x2b, 0x93, 0x73, 0x0b, 0x63, 0x03, 0x31, 0x4b, 0x63, 0x2b, 0x03, 0x91, 0x2b, 0x8b, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x7d, 0xfd, 0x51, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x78, 0xa0, 0x50, 0xd0, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x81, 0x05, 0x52, 0x1b, 0xfe, 0x5c, 0x1a, 0xf0, 0xee, 0xd0, 0xde, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x78, 0x01, 0xa9, 0x83, 0xb6, 0xad, 0xc7, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x60, 0x90, 0xda, 0xf0, 0xe7, 0xd2, 0x06, 0x2d, 0x12, 0x5a, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0x25, 0x48, 0x1d, 0xb4, 0x6d, 0x3d, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc6, 0x84, 0xd4, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb9, 0x34, 0x73, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x10, 0x42, 0x6a, 0xc3, 0xbf, 0xf3, 0x0b, 0xf0, 0xcb, 0xa5, 0x99, 0x99, 0xb5, 0x84, 0xb9, 0xe5, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x61, 0x18, 0x52, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0xd1, 0xc9, 0xe5, 0x81, 0xd4, 0xc1, 0x9d, 0xc9, 0x85, 0x91, 0x95, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x7e, 0x0d, 0xa9, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0xac, 0x79, 0x96, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x0d, 0x44, 0xea, 0x20, 0x04, 0x1f, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x86, 0x44, 0x6a, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x1f, 0xb1, 0x30, 0xba, 0x31, 0x34, 0x10, 0xbd, 0xb2, 0x39, 0xba, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x6c, 0x22, 0xb5, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0xe7, 0xb0, 0x04, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xec, 0x22, 0xb5, 0xe1, 0xcf, 0xa5, 0x0d, 0x4e, 0x07, 0x93, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x39, 0x2c, 0x52, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x5d, 0x32, 0x52, 0x07, 0x21, 0x65, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xfb, 0x8d, 0xd4, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xe8, 0x91, 0xda, 0xf0, 0xe7, 0xd2, 0x06, 0x6f, 0xc6, 0x0b, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xd4, 0x91, 0x3a, 0x78, 0x14, 0x5e, 0xc8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x99, 0x43, 0x52, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0xa9, 0x47, 0x41, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x01, 0x41, 0x52, 0x07, 0xef, 0x48, 0xfb, 0xab, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x4a, 0x92, 0xda, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0xd9, 0xa0, 0x05, 0x19, 0xe6, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xfb, 0x92, 0xd4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x9e, 0x7a, 0x14, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xfc, 0x94, 0xd4, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb2, 0xb2, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x2c, 0x4a, 0xea, 0xe0, 0x51, 0x78, 0x21, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0x69, 0x49, 0x6d, 0xf8, 0x73, 0x69, 0xc0, 0x63, 0x4b, 0xb3, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xab, 0xaf, 0xa4, 0x0e, 0xde, 0x91, 0xf6, 0xd7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x7f, 0x09, 0xc9, 0x40, 0xfe, 0x25, 0x3c, 0xd9, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x2f, 0xac, 0xad, 0x6c, 0x0e, 0x44, 0xae, 0x2c, 0xae, 0xae, 0x6c, 0x8e, 0x6e, 0x83, 0xf5, 0x2a, 0x55, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xfe, 0x25, 0x84, 0x03, 0xf9, 0x97, 0xb0, 0xd8, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0x0b, 0xd4, 0x81, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xbb, 0xbc, 0xa4, 0x0e, 0x5e, 0x20, 0x70, 0xd7, 0x0a, 0xf0, 0x9e, 0x95, 0xd1, 0xb5, 0x98, 0xa5, 0xd1, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xe5, 0x63, 0x52, 0x1b, 0x7e, 0x51, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x62, 0x21, 0x19, 0xc8, 0x89, 0x85, 0x96, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0xb1, 0x10, 0x0d, 0xe4, 0xc4, 0xc2, 0x64, 0xc3, 0x9f, 0x4b, 0x03, 0x9e, 0x58, 0xd9, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0xb1, 0x10, 0x1f, 0xbc, 0xa5, 0x7c, 0xf0, 0xe0, 0xa9, 0x46, 0x21, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4e, 0x2c, 0x6c, 0x06, 0x72, 0x62, 0x61, 0xbb, 0xe1, 0xcf, 0xa5, 0x0d, 0xd6, 0x35, 0xf9, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4e, 0x2c, 0xec, 0x0e, 0x9e, 0xb4, 0x3e, 0x78, 0x70, 0xde, 0x3c, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x62, 0x61, 0x3c, 0x90, 0x13, 0x0b, 0x25, 0x1b, 0xfe, 0x5c, 0xda, 0x60, 0x01, 0x75, 0xfa, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xc4, 0x42, 0xc1, 0xc1, 0xab, 0xe2, 0x07, 0x0f, 0xce, 0x9b, 0xa7, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0x9f, 0x49, 0x6d, 0xf8, 0x8b, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x8a, 0x85, 0x64, 0x20, 0x29, 0x16, 0x46, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x14, 0x0b, 0xd1, 0x40, 0x52, 0x2c, 0xc4, 0x07, 0x65, 0x13, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x14, 0x0b, 0xf9, 0x40, 0x52, 0x2c, 0x6c, 0x0e, 0xce, 0x48, 0xa8, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0xa9, 0x49, 0x6d, 0x50, 0x90, 0xc6, 0x6e, 0xd0, 0xe8, 0xd9, 0xd9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xfd, 0x6c, 0x52, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xf8, 0x4d, 0x6a, 0xc3, 0xdb, 0x3a, 0x1b, 0xbc, 0x0a, 0xfc, 0xaf, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xf3, 0xe8, 0xa4, 0x0e, 0x16, 0x91, 0xa7, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x7b, 0x27, 0xb5, 0xe1, 0x2b, 0x9c, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x44, 0x3d, 0xa9, 0x0d, 0x7f, 0xd1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0xb1, 0x90, 0x0e, 0xa4, 0xc5, 0xc2, 0x70, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x62, 0x21, 0x1e, 0x48, 0x8b, 0x85, 0xc9, 0x41, 0xd9, 0x84, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xc5, 0xc2, 0x66, 0x20, 0x2d, 0x16, 0x76, 0x07, 0x67, 0x24, 0xd4, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x2b, 0xfa, 0xa4, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x68, 0xca, 0xee, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x14, 0x40, 0xa9, 0x83, 0x82, 0x22, 0x73, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x5d, 0x50, 0x6a, 0x83, 0x82, 0x34, 0x76, 0x0d, 0xdf, 0xb7, 0x0f, 0x78, 0x70, 0x75, 0xfa, 0x06, 0x25, 0x74, 0xec, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x19, 0x0b, 0xe9, 0x40, 0x66, 0x2c, 0x2c, 0x0e, 0xce, 0x48, 0xa8, 0x07, 0x61, 0x3a, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x6a, 0xa1, 0xd4, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x43, 0x94, 0x3a, 0x68, 0x8a, 0x84, 0x78, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xb8, 0x46, 0xa9, 0x0d, 0x7f, 0xd1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0xb1, 0x30, 0x1d, 0xc8, 0x8c, 0x85, 0xf9, 0xc1, 0x19, 0x09, 0x75, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x00, 0x52, 0x6a, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0x4a, 0x4a, 0x1d, 0x2c, 0x0c, 0xf3, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xb2, 0x52, 0xea, 0xa0, 0x2d, 0xbc, 0xee, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0xc7, 0x94, 0x3a, 0x68, 0xb1, 0xe9, 0xb2, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x1e, 0x4e, 0xa9, 0x0d, 0x9f, 0xd8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xef, 0x29, 0xb5, 0xc1, 0xea, 0x80, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x35, 0x16, 0xc2, 0x81, 0xd4, 0x58, 0x58, 0x6c, 0xf8, 0x73, 0x69, 0x83, 0xf7, 0x52, 0x85, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x6a, 0x2c, 0xa4, 0x07, 0x0f, 0x81, 0x21, 0xdc, 0xf0, 0xef, 0xfc, 0x06, 0xcf, 0x29, 0x66, 0x6a, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0xbb, 0x4a, 0xad, 0xe1, 0x8d, 0xbb, 0x0d, 0x2f, 0xdf, 0x05, 0x3f, 0x96, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0xc8, 0x4a, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x4e, 0x5a, 0xa9, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x76, 0x2b, 0x75, 0xb0, 0x24, 0x37, 0x7d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x10, 0x5e, 0xa9, 0x83, 0xe5, 0x6b, 0xaf, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0xfe, 0x4a, 0x6d, 0x78, 0x5b, 0x67, 0x70, 0x78, 0xc0, 0x13, 0x2b, 0x5b, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x72, 0x61, 0xa9, 0x0d, 0x6f, 0xeb, 0x0c, 0x1e, 0x1f, 0x3c, 0x03, 0x88, 0x70, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x02, 0x63, 0xa9, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x8d, 0x2c, 0x75, 0xb0, 0x24, 0x37, 0x7d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x92, 0x66, 0xa9, 0x0d, 0x6f, 0xeb, 0x0c, 0x2e, 0x1f, 0x3c, 0x03, 0x88, 0xb0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xdb, 0xa0, 0xa5, 0x36, 0xbc, 0xad, 0x33, 0xe0, 0xc1, 0xd5, 0xe9, 0xd5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xd0, 0xb4, 0xd4, 0x06, 0xc5, 0x80, 0xec, 0x1a, 0x8c, 0x04, 0x86, 0x83, 0xe7, 0x14, 0x33, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xcf, 0x2d, 0xb5, 0xc1, 0x31, 0xdc, 0x60, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xf8, 0x5b, 0xea, 0xe0, 0xe9, 0x49, 0x84, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x79, 0xd6, 0x52, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x34, 0x65, 0x77, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x9b, 0x2d, 0x75, 0xd0, 0xe6, 0x5c, 0x77, 0x87, 0x53, 0xac, 0x5a, 0x83, 0x37, 0x48, 0xe1, 0x6d, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xbc, 0x41, 0x0a, 0x6f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x81, 0x5c, 0x6a, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x5e, 0xdc, 0xde, 0xe4, 0xda, 0xc2, 0xd8, 0x40, 0xc6, 0xd0, 0xc2, 0xdc, 0xce, 0xca, 0x40, 0xe4, 0xc2, 0xdc, 0xce, 0xca, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x4e, 0xba, 0xd4, 0x86, 0x3f, 0x97, 0x06, 0x87, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x53, 0xcd, 0xa5, 0x0e, 0xca, 0x2c, 0xdd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x53, 0xdf, 0xa5, 0x36, 0xfc, 0xb9, 0x34, 0x78, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xd1, 0x2e, 0x75, 0x50, 0x66, 0xe9, 0x76, 0x38, 0xc5, 0x5a, 0xc0, 0x77, 0xab, 0x93, 0x4b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x38, 0x32, 0x84, 0x1e, 0x3c, 0x80, 0x8c, 0xb0, 0x83, 0x57, 0x9a, 0xe6, 0x6d, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0x3c, 0x80, 0x8c, 0x70, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x8e, 0x5e, 0x6a, 0x83, 0xa0, 0xfd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xee, 0x5e, 0x6a, 0xc3, 0x13, 0xef, 0x1b, 0xbc, 0xb4, 0x35, 0x6f, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x47, 0xe8, 0x4b, 0x1d, 0x04, 0x6c, 0xd0, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x4d, 0x00, 0x53, 0x1b, 0xfe, 0x5c, 0x1a, 0x1c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0xee, 0x97, 0xda, 0xf0, 0xef, 0xfc, 0x1a, 0x3c, 0x0a, 0x96, 0xaf, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x91, 0x60, 0x6a, 0xc3, 0x13, 0xef, 0x1b, 0x3c, 0xd8, 0x36, 0x6f, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0x1c, 0x4c, 0x1d, 0x84, 0x11, 0xd0, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x61, 0x0d, 0x53, 0x1b, 0xfe, 0x5c, 0x1a, 0x1c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x56, 0x98, 0x3a, 0x38, 0x6f, 0x9e, 0xd6, 0x6a, 0xf0, 0xaa, 0xd3, 0xc1, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0x57, 0x9d, 0x0e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0x48, 0x4c, 0x6d, 0x10, 0xb4, 0x3f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0x52, 0x4c, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x9a, 0x8b, 0xa9, 0x83, 0xc0, 0x51, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xae, 0x63, 0x6a, 0xc3, 0x9f, 0x4b, 0x1b, 0xbc, 0x6d, 0x54, 0x6f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x5c, 0x63, 0xea, 0xe0, 0x79, 0x93, 0x83, 0x35, 0x6b, 0xf0, 0xc2, 0x96, 0xbc, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0x17, 0xb6, 0xe4, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0x8c, 0x4c, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0x4f, 0x99, 0x99, 0x59, 0xd9, 0x18, 0x5d, 0x9a, 0x5d, 0x19, 0x08, 0x5c, 0x99, 0x5c, 0x5b, 0xda, 0xdc, 0x5c, 0xda, 0x9b, 0xdb, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x41, 0x99, 0xda, 0xf0, 0xe7, 0xd2, 0x06, 0xad, 0x0e, 0x7f, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0x96, 0x4c, 0x1d, 0x9c, 0x91, 0x50, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x75, 0x99, 0xda, 0xf0, 0xe7, 0xd2, 0x80, 0x27, 0x57, 0xc7, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0xb0, 0x4c, 0x6d, 0xf8, 0x77, 0x7e, 0x0d, 0x9e, 0x70, 0x9b, 0x55, 0x1d, 0x4e, 0xb1, 0xd6, 0xe0, 0x59, 0x25, 0x41, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xcf, 0x2a, 0x09, 0xea, 0xe0, 0x1d, 0x34, 0x79, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xe5, 0x33, 0x53, 0x1b, 0x94, 0x2c, 0xec, 0xb3, 0xcc, 0x1a, 0xde, 0xb8, 0xdb, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0xbc, 0x71, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x75, 0x33, 0xb5, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xae, 0x33, 0x75, 0x50, 0x22, 0xd6, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xfb, 0x33, 0x75, 0xf0, 0x28, 0xbc, 0x90, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xcb, 0x89, 0xa6, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x84, 0xd2, 0xd4, 0x86, 0x3f, 0x97, 0x36, 0x78, 0xea, 0x51, 0xd0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xe0, 0xd1, 0xd4, 0xc1, 0x3b, 0xd2, 0xfe, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x8f, 0x9a, 0xda, 0xf0, 0xe7, 0xd2, 0x80, 0x77, 0x97, 0x36, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0x3d, 0x4d, 0x6d, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0x56, 0x4d, 0x1d, 0x94, 0x88, 0xef, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0x67, 0x4d, 0x1d, 0x3c, 0x4b, 0x21, 0xa4, 0x5a, 0x0d, 0x9e, 0x1e, 0x94, 0xb7, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0xf4, 0xa0, 0xbc, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xc6, 0xb0, 0xa9, 0x0d, 0x82, 0xf6, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x66, 0xb2, 0xa9, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x5e, 0x31, 0xb6, 0xb7, 0xb1, 0xb5, 0x32, 0xb2, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x76, 0x36, 0x75, 0xb0, 0x90, 0x26, 0x7c, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xec, 0xb6, 0xa9, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x66, 0xbc, 0x90, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xa4, 0xb5, 0xa9, 0x83, 0x47, 0xe1, 0x85, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x57, 0x37, 0xb5, 0xe1, 0xcf, 0xa5, 0x0d, 0x9e, 0xb1, 0x0c, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x2e, 0x37, 0x75, 0xf0, 0x2c, 0x85, 0x90, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xd3, 0x9b, 0xda, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0xa3, 0xce, 0x4d, 0x8c, 0xed, 0x6d, 0x6c, 0xad, 0x8c, 0x6c, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x47, 0xf4, 0x4d, 0x1d, 0x3c, 0x62, 0x71, 0x70, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xc4, 0xc1, 0xa9, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x66, 0xbc, 0x90, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x7c, 0xc0, 0xa9, 0x83, 0x47, 0xe1, 0x85, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x9f, 0x38, 0xb5, 0xe1, 0xcf, 0xa5, 0x0d, 0x9e, 0xb1, 0x0c, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x76, 0x38, 0x75, 0xf0, 0x2c, 0x85, 0x90, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x68, 0x9c, 0xda, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xe0, 0x95, 0xab, 0x73, 0x73, 0x4b, 0x73, 0x3b, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb5, 0x8f, 0x53, 0x07, 0xef, 0x50, 0x1e, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xc5, 0x72, 0x6a, 0xc3, 0x9f, 0x4b, 0x1b, 0xbc, 0x19, 0x2f, 0x64, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x73, 0x72, 0xea, 0xe0, 0x51, 0x78, 0x21, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0x72, 0x4e, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0xa7, 0x1e, 0x05, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x47, 0x68, 0x4e, 0x1d, 0xbc, 0x23, 0xed, 0xaf, 0x0e, 0xa7, 0xd8, 0x02, 0xfe, 0x5d, 0x18, 0xdb, 0xba, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xf0, 0x06, 0x6c, 0xc2, 0x36, 0x78, 0x93, 0xf2, 0x5d, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xfd, 0xa0, 0x53, 0x1b, 0x7e, 0x51, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x4a, 0x21, 0x1b, 0xc8, 0x2b, 0x85, 0xe9, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbc, 0x52, 0x08, 0x07, 0xf2, 0x4a, 0x61, 0xb2, 0xe1, 0xcf, 0xa5, 0xc1, 0xc3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x2b, 0x85, 0xf8, 0xe0, 0x49, 0xe1, 0x84, 0x1b, 0xfe, 0x9d, 0xdf, 0xe0, 0x25, 0x3f, 0x79, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0xa5, 0xb0, 0x19, 0xc8, 0x2b, 0x85, 0xe5, 0x86, 0x3f, 0x97, 0x06, 0x17, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xaf, 0x14, 0x56, 0x07, 0x8f, 0x3c, 0x27, 0x3c, 0x78, 0x31, 0x39, 0x61, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x2d, 0xa4, 0x53, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x4b, 0x21, 0x1b, 0x48, 0x2c, 0x85, 0xd9, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x96, 0x42, 0x38, 0x90, 0x58, 0x0a, 0x83, 0x83, 0x90, 0x32, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x4b, 0x61, 0x31, 0x90, 0x58, 0x0a, 0xab, 0x0d, 0xff, 0xce, 0x6f, 0xf0, 0xf0, 0xa0, 0xbc, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x35, 0x9d, 0xda, 0xa0, 0x20, 0x8d, 0x1d, 0xf0, 0xc3, 0xc8, 0xc8, 0xe6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xd3, 0x52, 0xa7, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x0e, 0xeb, 0xd4, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x49, 0xec, 0x50, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0xbc, 0x4e, 0x1d, 0x94, 0x4d, 0xf5, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0xcd, 0x4e, 0x1d, 0xde, 0x0b, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xda, 0xdb, 0xa9, 0xc3, 0xd3, 0x3a, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0xeb, 0x4e, 0x6d, 0x50, 0x90, 0xc6, 0x0e, 0xf8, 0x64, 0x65, 0x6c, 0xf3, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x85, 0xbd, 0x53, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x0a, 0x78, 0x6a, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x24, 0x76, 0xa8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x43, 0x86, 0xa7, 0x0e, 0xca, 0xa6, 0xfa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x23, 0x8f, 0xa7, 0x0e, 0x4f, 0xeb, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xf7, 0xf2, 0xd4, 0xe1, 0xbd, 0xa0, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x03, 0x9e, 0xa7, 0x36, 0x28, 0x48, 0x63, 0x07, 0x7c, 0xb1, 0x37, 0xba, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xde, 0xe8, 0xa9, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x48, 0x3d, 0xb5, 0x41, 0x59, 0xf2, 0xbe, 0xc1, 0xaa, 0x8b, 0xcf, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xb3, 0xae, 0xa7, 0x0e, 0xca, 0xa6, 0xfa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x8b, 0xb7, 0xa7, 0x0e, 0x4f, 0xeb, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x00, 0xf8, 0xd4, 0xe1, 0xbd, 0xa0, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x53, 0xc6, 0xa7, 0x36, 0x48, 0x32, 0x20, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xbc, 0x7c, 0xea, 0xe0, 0x90, 0xb5, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xeb, 0xfa, 0xd4, 0x86, 0xbf, 0x68, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xec, 0x52, 0x48, 0x07, 0xb2, 0x4b, 0x61, 0xb8, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0xa5, 0x10, 0x0f, 0x64, 0x97, 0xc2, 0xe4, 0x20, 0xa4, 0x4c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xec, 0x52, 0xd8, 0x0c, 0x64, 0x97, 0xc2, 0xee, 0xe0, 0x01, 0xf5, 0x84, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0xb8, 0x4f, 0x6d, 0x70, 0x62, 0xbf, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x20, 0x7e, 0xea, 0xa0, 0x51, 0xf9, 0xbf, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xf6, 0xfa, 0xa9, 0x0d, 0x8a, 0x4e, 0xe3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x6b, 0xf1, 0xa7, 0x0e, 0x4a, 0xa4, 0xea, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xe3, 0xf9, 0xa7, 0x36, 0x28, 0x4b, 0xde, 0x37, 0x58, 0x04, 0x32, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xf0, 0xff, 0xd4, 0x41, 0xd9, 0x54, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x0a, 0x01, 0xd5, 0x86, 0xb7, 0x75, 0x36, 0x78, 0xee, 0x3d, 0x61, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0x1e, 0x50, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x30, 0x85, 0x74, 0x20, 0xc1, 0x14, 0x9a, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x98, 0x42, 0x3c, 0x90, 0x60, 0x0a, 0x9b, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x66, 0xbc, 0x90, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x30, 0x85, 0xfc, 0xe0, 0x95, 0x36, 0x85, 0x07, 0x8f, 0xc2, 0x0b, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x4c, 0x61, 0x34, 0x90, 0x60, 0x0a, 0xcb, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0xd4, 0xa3, 0xa0, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x30, 0x85, 0xd5, 0xc1, 0x6b, 0x79, 0x0a, 0x0f, 0xde, 0x91, 0xf6, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x98, 0xc2, 0x74, 0x20, 0xc1, 0x14, 0x8a, 0x36, 0xfc, 0xb9, 0x34, 0xe0, 0xdd, 0xa5, 0x8d, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x60, 0x0a, 0xf3, 0x83, 0x67, 0x0b, 0x15, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x82, 0x29, 0xec, 0x07, 0x12, 0x4c, 0xa1, 0xe2, 0xa0, 0x44, 0x7c, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x4c, 0xa1, 0x63, 0x20, 0xc1, 0x14, 0x7a, 0x0e, 0x9e, 0xa5, 0x10, 0x52, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x49, 0x0b, 0x54, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x4c, 0x21, 0x1d, 0xc8, 0x30, 0x85, 0xe1, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x98, 0x42, 0x3c, 0x90, 0x61, 0x0a, 0x93, 0x83, 0x90, 0x32, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x4c, 0x61, 0x33, 0x90, 0x61, 0x0a, 0xbb, 0x83, 0x07, 0xd4, 0x13, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xdd, 0x40, 0xb5, 0x41, 0x61, 0xa8, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x1a, 0x04, 0xd5, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x97, 0xa0, 0xda, 0xf0, 0xc6, 0xdd, 0xc1, 0xfb, 0x94, 0x07, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xb0, 0xa0, 0xda, 0xf0, 0xb6, 0xce, 0xc1, 0x8b, 0xf1, 0x42, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xc7, 0xa0, 0xda, 0xf0, 0xb6, 0xce, 0xc1, 0x23, 0xd3, 0xfe, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0xdf, 0xa0, 0xda, 0xa0, 0xe8, 0x34, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xd5, 0x83, 0xea, 0xa0, 0x44, 0xaa, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x5d, 0x84, 0x6a, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x45, 0x20, 0xa3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0x96, 0x50, 0x1d, 0x94, 0x4d, 0xef, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0xa8, 0x50, 0x6d, 0x78, 0x5b, 0x67, 0xc0, 0xbb, 0x4b, 0x1b, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xb9, 0x85, 0x6a, 0xc3, 0x2f, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x92, 0x29, 0xa4, 0x03, 0x49, 0xa6, 0x30, 0xd9, 0xf0, 0xe7, 0xd2, 0x06, 0xcf, 0x58, 0x06, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x24, 0x53, 0x88, 0x0f, 0x5e, 0xd0, 0x56, 0x78, 0xf0, 0x2c, 0x85, 0x90, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x84, 0x18, 0xaa, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x39, 0x43, 0x75, 0xd0, 0xcc, 0x9e, 0xf6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb1, 0x36, 0x54, 0x07, 0x8f, 0xea, 0x2a, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x31, 0x87, 0x6a, 0xc3, 0xdb, 0x3a, 0x07, 0x6f, 0x56, 0x08, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x0e, 0x20, 0xaa, 0x0d, 0x7f, 0xd1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0xa6, 0x90, 0x0e, 0xe4, 0x99, 0xc2, 0x70, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x4c, 0x21, 0x1e, 0xc8, 0x33, 0x85, 0xc9, 0x41, 0x48, 0x99, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0xa6, 0xb0, 0x19, 0xc8, 0x33, 0x85, 0xdd, 0xc1, 0x03, 0xea, 0x09, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x15, 0xa2, 0xda, 0xa0, 0xe8, 0x34, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xae, 0x88, 0xea, 0xa0, 0x44, 0xaa, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x35, 0x89, 0x6a, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x45, 0x20, 0xa3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0x31, 0x51, 0x1d, 0x94, 0x4d, 0xf5, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0x43, 0x51, 0x6d, 0x78, 0x5b, 0x67, 0x83, 0x57, 0x0a, 0x14, 0xd6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x1e, 0x15, 0xd5, 0x86, 0x5f, 0x94, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4c, 0x53, 0x48, 0x07, 0x32, 0x4d, 0xa1, 0x69, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xa6, 0x29, 0xc4, 0x03, 0x99, 0xa6, 0xb0, 0xd9, 0xf0, 0xe7, 0xd2, 0x06, 0x6f, 0xc6, 0x0b, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4c, 0x53, 0xc8, 0x0f, 0x5e, 0x1c, 0x59, 0x78, 0xf0, 0x28, 0xbc, 0x90, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xd3, 0x14, 0x46, 0x03, 0x99, 0xa6, 0xb0, 0xdc, 0xf0, 0xe7, 0xd2, 0x06, 0x4f, 0x3d, 0x0a, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4c, 0x53, 0x58, 0x1d, 0xbc, 0xfc, 0xb2, 0xf0, 0xe0, 0x1d, 0x69, 0x7f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xa6, 0x29, 0x4c, 0x07, 0x32, 0x4d, 0xa1, 0x68, 0xc3, 0x9f, 0x4b, 0x03, 0xde, 0x5d, 0xda, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0xa6, 0x30, 0x3f, 0x78, 0x82, 0x67, 0xe1, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x9a, 0xc2, 0x7e, 0x20, 0xd3, 0x14, 0x2a, 0x0e, 0x4a, 0xc4, 0xf7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xd3, 0x14, 0x3a, 0x06, 0x32, 0x4d, 0xa1, 0xe7, 0xe0, 0x59, 0x0a, 0x21, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x7e, 0x45, 0xb5, 0xe1, 0x2f, 0x9a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xd5, 0x14, 0xd2, 0x81, 0x54, 0x53, 0x58, 0x1c, 0x3c, 0xa0, 0x9e, 0x70, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x4f, 0x8b, 0x6a, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0x74, 0x51, 0x1d, 0x3c, 0x66, 0xab, 0x70, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x14, 0x30, 0xaa, 0x83, 0x47, 0x75, 0x15, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x30, 0x46, 0x75, 0xf0, 0x20, 0xbd, 0xbf, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x3b, 0xa3, 0xda, 0xf0, 0x17, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x6d, 0x0a, 0xe9, 0x40, 0xb6, 0x29, 0x0c, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xdb, 0x14, 0xe2, 0x81, 0x6c, 0x53, 0x98, 0x1c, 0x84, 0x94, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x6d, 0x0a, 0x9b, 0x81, 0x6c, 0x53, 0xd8, 0x1d, 0x3c, 0xa0, 0x9e, 0xb0, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xfa, 0x34, 0xaa, 0x0d, 0x4e, 0xec, 0x37, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0xb2, 0x51, 0x1d, 0x34, 0x2a, 0xff, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x0f, 0x47, 0xb5, 0x41, 0xd1, 0x69, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xf1, 0x1c, 0xd5, 0x41, 0x89, 0x54, 0xbd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x00, 0x1e, 0xd5, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x8b, 0x40, 0x46, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0xd6, 0xa3, 0x3a, 0x28, 0x9b, 0xea, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0xf9, 0xa3, 0xda, 0xf0, 0xb6, 0xce, 0x06, 0x8f, 0x6b, 0x28, 0xac, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x58, 0x41, 0xaa, 0x0d, 0xbf, 0x28, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0xa7, 0x90, 0x0e, 0x24, 0x9c, 0xc2, 0x70, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc2, 0x29, 0xc4, 0x03, 0x09, 0xa7, 0xb0, 0xd9, 0xf0, 0xe7, 0xd2, 0x06, 0x6f, 0xc6, 0x0b, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x84, 0x53, 0xc8, 0x0f, 0x5e, 0xfc, 0x5c, 0x78, 0xf0, 0x28, 0xbc, 0x90, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe1, 0x14, 0x46, 0x03, 0x09, 0xa7, 0xb0, 0x3a, 0x08, 0xd3, 0xb1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe1, 0x14, 0x66, 0x03, 0x09, 0xa7, 0xb0, 0x3b, 0x08, 0xd3, 0xb1, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x1b, 0x0c, 0xa9, 0x36, 0xfc, 0x45, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x9c, 0x42, 0x3a, 0x90, 0x71, 0x0a, 0xc3, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x38, 0x85, 0x78, 0x20, 0xe3, 0x14, 0x26, 0x07, 0x21, 0x65, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x9c, 0xc2, 0x66, 0x20, 0xe3, 0x14, 0x76, 0x07, 0x0f, 0xa8, 0x27, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x13, 0x91, 0x6a, 0x83, 0x82, 0x34, 0x76, 0xe0, 0xc3, 0xc2, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xc3, 0x16, 0xa9, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x8c, 0x23, 0xd5, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0xed, 0xad, 0x65, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x0f, 0x49, 0x75, 0x50, 0x36, 0xd5, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x57, 0x49, 0x75, 0x78, 0x5a, 0xa7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xb3, 0x33, 0xa9, 0x0e, 0x1e, 0xd5, 0x55, 0xd8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x3c, 0x27, 0xd5, 0x06, 0x05, 0x69, 0xec, 0xc0, 0x8b, 0x89, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0x7e, 0x52, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x44, 0x51, 0xaa, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0xda, 0x5b, 0xcb, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xaa, 0x94, 0xea, 0xa0, 0x6c, 0xaa, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x39, 0x95, 0xea, 0xf0, 0x5e, 0x50, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0xb9, 0x52, 0x1d, 0x3c, 0xaa, 0xab, 0xb0, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xb4, 0x58, 0xaa, 0x0d, 0x0a, 0xd2, 0xd8, 0x01, 0x9e, 0xbb, 0x30, 0x32, 0xb2, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x18, 0x5a, 0xaa, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x70, 0x4b, 0xb5, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0x12, 0x3b, 0xd4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xd1, 0xb9, 0x54, 0x07, 0x65, 0xd3, 0xfb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xc1, 0xbe, 0x54, 0x1b, 0xde, 0xd6, 0x19, 0xf0, 0xee, 0xd2, 0xc6, 0x81, 0x17, 0x13, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x94, 0x61, 0xaa, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x77, 0x69, 0xe3, 0xc0, 0x87, 0x85, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x64, 0x4c, 0xb5, 0x41, 0x41, 0x1a, 0x3b, 0xc0, 0x73, 0x47, 0x56, 0xc6, 0x36, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x91, 0x4c, 0xb5, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xc3, 0x97, 0xa9, 0x36, 0x28, 0x4b, 0xde, 0x37, 0x48, 0x62, 0x87, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xd6, 0x99, 0xea, 0xa0, 0x6c, 0x7a, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x63, 0x9a, 0xea, 0xe0, 0xc1, 0x04, 0x86, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x76, 0x4d, 0x75, 0xf0, 0x12, 0x01, 0xc3, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x13, 0xb5, 0xa9, 0x36, 0x48, 0x32, 0x20, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xaa, 0x9b, 0xea, 0xe0, 0x90, 0xb5, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc7, 0x38, 0xd5, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x2e, 0xa7, 0xda, 0xf0, 0x6f, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x9d, 0xe8, 0x54, 0x1b, 0xde, 0xd6, 0xd9, 0xe0, 0xa9, 0x47, 0x41, 0x07, 0xef, 0x2d, 0x30, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x5b, 0xa7, 0xda, 0xf0, 0xb6, 0xce, 0x06, 0x4f, 0x3d, 0x0a, 0x3a, 0x78, 0xc8, 0x80, 0xe1, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x69, 0xee, 0x54, 0x07, 0x05, 0x45, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x4e, 0x3c, 0xd5, 0x06, 0x47, 0xd7, 0xc1, 0x35, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xf5, 0x3c, 0xd5, 0xc1, 0x63, 0xb6, 0x0a, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xb7, 0xa7, 0x3a, 0x78, 0x54, 0x57, 0xe1, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xf5, 0xf9, 0x54, 0x07, 0x8f, 0xde, 0x30, 0xac, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x4b, 0xff, 0xa9, 0x36, 0x28, 0x3a, 0x8d, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x13, 0xa8, 0x3a, 0x28, 0x91, 0xaa, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x3a, 0xa8, 0xda, 0xa0, 0x2c, 0x79, 0xdf, 0x60, 0x11, 0xc8, 0xe8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x25, 0x0a, 0x55, 0x07, 0x65, 0x53, 0xfd, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x91, 0x0e, 0x55, 0x1b, 0xde, 0xd6, 0xd9, 0xe0, 0xc9, 0xfa, 0x85, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x22, 0x51, 0xb5, 0xe1, 0x17, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xf9, 0x14, 0xf2, 0x81, 0xe4, 0x53, 0x18, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0x67, 0x2c, 0x83, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xf2, 0x29, 0x0c, 0x0e, 0x1e, 0x2e, 0x63, 0x78, 0xf0, 0x2c, 0x85, 0x90, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xb2, 0x8a, 0xaa, 0x0d, 0x7f, 0xd1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0xa7, 0x90, 0x0f, 0x64, 0x9f, 0xc2, 0xe6, 0xe0, 0x01, 0xf5, 0x84, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xf1, 0x17, 0x55, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x50, 0xa3, 0xea, 0xa0, 0x99, 0x3d, 0xed, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x3b, 0x3b, 0xaa, 0x0e, 0x1e, 0xd5, 0x55, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x29, 0x48, 0xd5, 0xc1, 0xf3, 0xee, 0x0a, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x9b, 0xa4, 0x6a, 0x83, 0xa2, 0xd3, 0x78, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xd2, 0x93, 0xaa, 0x83, 0x12, 0xa9, 0x7a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xf6, 0x95, 0xaa, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x16, 0x81, 0x8c, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xeb, 0x52, 0x75, 0x50, 0x36, 0xd5, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x32, 0x53, 0xb5, 0xe1, 0x6d, 0x9d, 0x0d, 0xde, 0x7d, 0x60, 0x58, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xa1, 0x36, 0x55, 0x1b, 0x7e, 0x51, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x50, 0x21, 0x1f, 0xc8, 0x40, 0x85, 0xd1, 0x86, 0x3f, 0x97, 0x36, 0x78, 0xc6, 0x32, 0xc8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xa0, 0xc2, 0xe0, 0xe0, 0xf1, 0x4e, 0x86, 0x07, 0xcf, 0x52, 0x08, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0xcf, 0xa9, 0xda, 0xf0, 0x17, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x82, 0x0a, 0xf9, 0x40, 0x0a, 0x2a, 0x6c, 0x0e, 0x1e, 0x50, 0x4f, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xc6, 0x53, 0xb5, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x03, 0x7e, 0xaa, 0x36, 0xbc, 0x71, 0x77, 0xf0, 0xb8, 0xc5, 0xc1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x43, 0x84, 0xaa, 0x0e, 0x1e, 0xd5, 0x55, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x4a, 0x51, 0xd5, 0xc1, 0xf3, 0xee, 0x0a, 0xab, 0x59, 0x83, 0xd5, 0xdf, 0x5a, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0xc1, 0x2a, 0xf7, 0xf7, 0x01, 0x1e, 0xb8, 0x30, 0xba, 0x31, 0xb4, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x34, 0xa5, 0xaa, 0x0d, 0xbf, 0x28, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0xa4, 0x90, 0x0d, 0x64, 0x90, 0xc2, 0x70, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x06, 0x29, 0x84, 0x03, 0x19, 0xa4, 0xb0, 0xd8, 0xf0, 0xe7, 0xd2, 0x86, 0x37, 0xee, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x83, 0x14, 0xd2, 0x83, 0x17, 0x9f, 0x19, 0x1e, 0xbc, 0x98, 0x9c, 0x70, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x20, 0x85, 0xc9, 0x40, 0x06, 0x29, 0xec, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0xd3, 0x83, 0xf2, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x83, 0x14, 0x36, 0x07, 0xef, 0x6d, 0x33, 0x3c, 0x78, 0x40, 0x3d, 0x61, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xf5, 0x4d, 0x55, 0x1b, 0xbe, 0x7e, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x48, 0x21, 0x1b, 0x48, 0x21, 0x85, 0x7c, 0xc3, 0xdb, 0x3a, 0x07, 0x2f, 0xf9, 0xc9, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x83, 0xaa, 0xda, 0x20, 0x48, 0x4f, 0xd7, 0x38, 0x74, 0xf0, 0xf0, 0xa0, 0xbc, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x24, 0x52, 0xc8, 0x06, 0x92, 0x48, 0x61, 0x70, 0xb0, 0x90, 0x26, 0x7c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x88, 0xaa, 0x6a, 0x83, 0x82, 0x34, 0x76, 0x0d, 0xdf, 0xb7, 0x6f, 0x70, 0x5c, 0xb5, 0xda, 0xa0, 0x84, 0x8e, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x48, 0x61, 0x31, 0x90, 0x45, 0x0a, 0x3d, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x48, 0x61, 0x32, 0x90, 0x45, 0x0a, 0xbb, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0xd4, 0xa3, 0xa0, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x22, 0x85, 0xcd, 0xc1, 0xab, 0x07, 0x0d, 0x0f, 0xde, 0x91, 0xf6, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x91, 0xc2, 0x70, 0x20, 0x8b, 0x14, 0x6a, 0x36, 0xfc, 0xb9, 0x34, 0xe0, 0xdd, 0xa5, 0x8d, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x45, 0x0a, 0xe3, 0x83, 0xe7, 0x27, 0x1a, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x16, 0x29, 0xac, 0x07, 0xb2, 0x48, 0xa1, 0xe0, 0xa0, 0x44, 0x7c, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x48, 0xa1, 0x61, 0x20, 0x8b, 0x14, 0x5a, 0x0e, 0x9e, 0xa5, 0x10, 0x52, 0x07, 0x61, 0x3a, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc4, 0x55, 0xd5, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xce, 0xaa, 0xda, 0xa0, 0x2c, 0x79, 0xdf, 0xe0, 0xc1, 0x5d, 0x31, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0x72, 0x55, 0x1d, 0x94, 0x4d, 0xf5, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0x84, 0x55, 0x1d, 0x3c, 0xbf, 0xce, 0xb0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xbb, 0xca, 0xaa, 0x36, 0xbc, 0xad, 0xb3, 0xc1, 0x9b, 0xf1, 0x42, 0x0e, 0x1e, 0x1e, 0x94, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x31, 0x5a, 0xd5, 0x06, 0x85, 0x60, 0xea, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x91, 0x42, 0xcd, 0xc1, 0xe3, 0xd3, 0xaa, 0x0e, 0xde, 0x91, 0xf6, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x15, 0x5b, 0xd5, 0x41, 0x41, 0x91, 0xd9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xdc, 0x5b, 0xd5, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x91, 0xab, 0xda, 0xa0, 0x2c, 0x79, 0xdf, 0xa0, 0x6c, 0x41, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xa0, 0xae, 0xea, 0xa0, 0x6c, 0xaa, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x2d, 0xaf, 0xea, 0xe0, 0xf9, 0x75, 0x86, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xdc, 0x57, 0x75, 0xf0, 0x64, 0x4e, 0xc3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x43, 0x02, 0xab, 0x36, 0x5c, 0x52, 0x1b, 0xb4, 0xb7, 0x96, 0xb5, 0x06, 0xcf, 0x48, 0x2b, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x20, 0xac, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xf5, 0x86, 0x55, 0x1b, 0x94, 0x25, 0xef, 0x1b, 0x94, 0x2d, 0xa8, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0x27, 0x56, 0x1d, 0x94, 0x4d, 0xef, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0x38, 0x56, 0x6d, 0x78, 0x5b, 0x67, 0xc0, 0xbb, 0x4b, 0x1b, 0x0f, 0xda, 0x5b, 0xcb, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x4a, 0xc9, 0xaa, 0x0d, 0x6f, 0xeb, 0x6c, 0xf0, 0x8c, 0x65, 0x90, 0x83, 0x87, 0x07, 0xe5, 0x55, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0xa4, 0x90, 0x0d, 0x64, 0x92, 0xc2, 0xe0, 0xe0, 0x11, 0x8b, 0x83, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x99, 0x97, 0x55, 0x1b, 0x9c, 0xd8, 0x6f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0xd3, 0xac, 0xda, 0xa0, 0x2c, 0x79, 0xdf, 0x20, 0x71, 0xa3, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x96, 0xce, 0xaa, 0x83, 0xb2, 0xa9, 0x7e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xce, 0xd0, 0xaa, 0x83, 0xe7, 0xd7, 0x19, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x5d, 0x5a, 0xb5, 0xe1, 0x17, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x97, 0x14, 0xd2, 0x81, 0x5c, 0x52, 0xe8, 0xd8, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x4b, 0x0a, 0xf1, 0x40, 0x2e, 0x29, 0x6c, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0x53, 0x8f, 0x82, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x97, 0x14, 0xf2, 0x83, 0x77, 0x2b, 0x1b, 0x1e, 0xbc, 0x23, 0xed, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x25, 0x85, 0xd1, 0x40, 0x2e, 0x29, 0x54, 0x6c, 0xf8, 0x73, 0x69, 0xc0, 0xbb, 0x4b, 0x1b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x97, 0x14, 0x86, 0x07, 0xef, 0x87, 0x36, 0xdc, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5c, 0x52, 0x58, 0x0e, 0xe4, 0x92, 0xc2, 0xf8, 0xa0, 0x44, 0x7c, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x49, 0x61, 0x3d, 0x90, 0x4b, 0x0a, 0x0d, 0x07, 0xcf, 0x52, 0x08, 0xa9, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xa6, 0xd4, 0xaa, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xbe, 0x5a, 0x75, 0xf0, 0xb8, 0xaf, 0xc2, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x63, 0x5d, 0xab, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x5f, 0x6c, 0xd5, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x87, 0xd3, 0x8b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x93, 0x68, 0xab, 0x0e, 0xca, 0xa6, 0xf7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x4b, 0x71, 0xab, 0x0e, 0xde, 0x8a, 0x56, 0xd8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xe5, 0xbc, 0x55, 0x07, 0x0f, 0xc9, 0x35, 0xac, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x74, 0x52, 0xc8, 0x06, 0xd2, 0x49, 0x61, 0x70, 0xf0, 0x0e, 0xe5, 0xc1, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x26, 0xe1, 0xaa, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x50, 0x5c, 0xb5, 0x41, 0x31, 0x89, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x93, 0xc2, 0x60, 0x20, 0x9f, 0x14, 0x56, 0x07, 0x2f, 0xf3, 0xfb, 0xdb, 0xe0, 0xa9, 0x47, 0x41, 0x07, 0x0f, 0x0f, 0xca, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x1a, 0xb9, 0x6a, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0x2e, 0x57, 0x6d, 0x50, 0x96, 0xbc, 0x6f, 0x70, 0x38, 0xbd, 0x58, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xcd, 0xb9, 0xea, 0xa0, 0x6c, 0xaa, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x5a, 0xba, 0xea, 0xe0, 0xf9, 0x75, 0x86, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x70, 0x5d, 0x75, 0xf0, 0x64, 0x4e, 0xc3, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x7b, 0xb4, 0xab, 0x36, 0x28, 0x48, 0x63, 0xd7, 0xf0, 0x7d, 0xfb, 0x06, 0xc7, 0x55, 0xab, 0x0d, 0x4a, 0xe8, 0xd8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xa3, 0x14, 0x16, 0x03, 0x19, 0xa5, 0xd0, 0xb3, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xa3, 0x14, 0x26, 0x03, 0x19, 0xa5, 0xb0, 0xdb, 0xf0, 0xe7, 0xd2, 0x06, 0x4f, 0x3d, 0x0a, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x8c, 0x52, 0xd8, 0x1c, 0xbc, 0x34, 0xe0, 0xf0, 0xe0, 0x1d, 0x69, 0x7f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x46, 0x29, 0x0c, 0x07, 0x32, 0x4a, 0xa1, 0x66, 0xc3, 0x9f, 0x4b, 0x03, 0xde, 0x5d, 0xda, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0xa5, 0x30, 0x3e, 0x78, 0xf2, 0xc1, 0xe1, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x94, 0xc2, 0x7a, 0x20, 0xa3, 0x14, 0x0a, 0x0e, 0x4a, 0xc4, 0xf7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xa3, 0x14, 0x1a, 0x06, 0x32, 0x4a, 0xa1, 0xe5, 0xe0, 0x59, 0x0a, 0x21, 0x75, 0x10, 0xa6, 0x63, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0x74, 0x57, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xe8, 0xef, 0xaa, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x1e, 0xdc, 0x15, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xa6, 0x78, 0xd5, 0x41, 0xd9, 0x54, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc3, 0x79, 0xd5, 0xc1, 0xf3, 0xeb, 0x0c, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x6a, 0xbd, 0xea, 0xe0, 0xc9, 0x9c, 0x86, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0xba, 0x57, 0x6d, 0x50, 0x08, 0xa6, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4a, 0x29, 0xd4, 0x1c, 0xbc, 0xfc, 0xbd, 0xea, 0xe0, 0x1d, 0x69, 0x7f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0xc9, 0x57, 0x1d, 0x14, 0x14, 0x99, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0xd5, 0x57, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x16, 0xfc, 0xaa, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0xca, 0x16, 0xd4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xeb, 0xf5, 0xab, 0x0e, 0xca, 0xa6, 0xfa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xc3, 0xfe, 0xab, 0x0e, 0x9e, 0x5f, 0x67, 0xd8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb5, 0x03, 0x56, 0x07, 0x4f, 0xe6, 0x34, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xe2, 0xc0, 0x6a, 0xc3, 0x25, 0xb5, 0x41, 0x7b, 0x6b, 0x59, 0x6b, 0xf0, 0xc8, 0xb4, 0xbf, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x06, 0x05, 0xab, 0x0d, 0x6f, 0xeb, 0x1c, 0x3c, 0x02, 0xde, 0xb0, 0x3a, 0x9c, 0x62, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0xb6, 0x80, 0xb0, 0xde, 0xdf, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x07, 0xfc, 0xb9, 0xb7, 0xb1, 0x75, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6a, 0x40, 0xc8, 0x06, 0x6a, 0x40, 0x38, 0xb4, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x2f, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x20, 0x5b, 0x73, 0x72, 0x63, 0x20, 0x64, 0x65, 0x73, 0x74, 0x5d, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x03, 0x42, 0x38, 0x50, 0x03, 0xc2, 0xe0, 0xa0, 0xf4, 0xa6, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6a, 0x40, 0x58, 0x0c, 0xd4, 0x80, 0xb0, 0x3a, 0x68, 0xdb, 0x7a, 0x7c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x01, 0x61, 0x36, 0x50, 0x03, 0xc2, 0xf4, 0xa0, 0x6d, 0xeb, 0xf1, 0x56, 0x20, 0xfc, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x31, 0x09, 0xd9, 0x40, 0x12, 0x25, 0x6e, 0x83, 0xd4, 0x8b, 0xe2, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x99, 0x44, 0x0f, 0xde, 0x33, 0x74, 0xb8, 0x41, 0xc9, 0xc2, 0x3e, 0xcb, 0xac, 0xc1, 0x23, 0xe9, 0x44, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0xd3, 0x85, 0xec, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x1e, 0x49, 0x27, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0x93, 0xb8, 0x81, 0xc4, 0x49, 0xfc, 0x06, 0x41, 0xfb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x4d, 0x42, 0x32, 0x90, 0x34, 0x09, 0x3f, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x71, 0x2b, 0xc3, 0xa3, 0x03, 0x09, 0x63, 0x0b, 0x93, 0x6b, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x34, 0x09, 0xd1, 0x40, 0xd2, 0x24, 0xe4, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x78, 0xf9, 0x9b, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x34, 0x09, 0x83, 0x81, 0xa4, 0x49, 0x18, 0x6f, 0xf8, 0x73, 0x69, 0x70, 0x78, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x26, 0x61, 0x72, 0xf0, 0xb0, 0xab, 0xc3, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x9a, 0x84, 0xcd, 0x40, 0xd2, 0x24, 0xec, 0x0e, 0xca, 0x26, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x69, 0x12, 0x86, 0x03, 0x49, 0x93, 0xb0, 0x3d, 0x38, 0xf2, 0xb5, 0xd6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x35, 0x09, 0xc9, 0x40, 0xd6, 0x24, 0xbc, 0xd9, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0xff, 0x2e, 0x6c, 0xad, 0xac, 0x0e, 0x0e, 0xe4, 0x4d, 0x0e, 0xc4, 0x2c, 0x2c, 0x8d, 0xad, 0x8c, 0x6c, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xd6, 0x24, 0x44, 0x03, 0x59, 0x93, 0x90, 0x6f, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xe0, 0x89, 0xaf, 0x3c, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xd6, 0x24, 0x0c, 0x06, 0xb2, 0x26, 0xa1, 0x61, 0xc3, 0x9f, 0x4b, 0x1b, 0x3c, 0x4a, 0x1f, 0x6f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x26, 0x61, 0x76, 0xf0, 0x24, 0xb6, 0xc3, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x9a, 0x84, 0xdd, 0x40, 0xd6, 0x24, 0x6c, 0x0f, 0xca, 0x26, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x6b, 0x12, 0xc6, 0x03, 0x59, 0x93, 0x50, 0x70, 0xd0, 0xa0, 0x78, 0x60, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0x93, 0x90, 0x0c, 0xa4, 0x4d, 0xc2, 0x6e, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xda, 0x24, 0x44, 0x03, 0x69, 0x93, 0x90, 0x1f, 0x3c, 0xb5, 0x94, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x9b, 0x84, 0xc1, 0x40, 0xda, 0x24, 0xcc, 0x36, 0xfc, 0xb9, 0x34, 0x38, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0x93, 0x30, 0x39, 0x78, 0x67, 0xdf, 0xe1, 0x41, 0xb3, 0xdb, 0x51, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0x93, 0x90, 0x0c, 0xe4, 0x4d, 0xc2, 0x9d, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x78, 0x90, 0x2b, 0x9b, 0x83, 0x7b, 0x73, 0x9b, 0x2b, 0x03, 0xa1, 0x7b, 0x03, 0x29, 0x41, 0xab, 0x1b, 0x5b, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x37, 0x09, 0xd1, 0x40, 0xde, 0x24, 0xe4, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x78, 0x91, 0x9b, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x37, 0x09, 0x83, 0x81, 0xbc, 0x49, 0x58, 0x6f, 0xf8, 0x73, 0x69, 0x83, 0x14, 0x9d, 0xa8, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x9b, 0x84, 0xd1, 0xc1, 0x43, 0x1a, 0x0f, 0x37, 0xfc, 0x3b, 0xbf, 0x06, 0x2f, 0xe4, 0xad, 0xab, 0x9a, 0x35, 0x78, 0x53, 0xe4, 0xc8, 0x86, 0xe7, 0x49, 0x36, 0x78, 0xcd, 0xb8, 0xdd, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x9b, 0x22, 0x47, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x75, 0x12, 0x37, 0x90, 0x43, 0x89, 0xdf, 0x20, 0xd4, 0x10, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd4, 0x49, 0x48, 0x06, 0x52, 0x27, 0x61, 0xb2, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x75, 0x12, 0xa2, 0x81, 0xd4, 0x49, 0xc8, 0x0f, 0x5e, 0xff, 0x9d, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x4e, 0xc2, 0x60, 0x20, 0x75, 0x12, 0x16, 0x07, 0x05, 0x45, 0x66, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x3b, 0x89, 0x3b, 0x78, 0xb5, 0xe5, 0xe1, 0x06, 0x41, 0xfb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x4e, 0x42, 0x32, 0x90, 0x3b, 0x09, 0x6f, 0x36, 0x3c, 0xf1, 0xbe, 0xc1, 0x93, 0xf1, 0xed, 0x36, 0x58, 0xaf, 0x52, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x4e, 0x42, 0x38, 0x90, 0x3b, 0x09, 0x8b, 0x83, 0x77, 0xf9, 0xdb, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xee, 0x24, 0x4c, 0x06, 0x72, 0x27, 0x61, 0x7b, 0xf0, 0x02, 0x81, 0xbb, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x79, 0x12, 0x92, 0x81, 0xe4, 0x49, 0x78, 0xb2, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xdf, 0x58, 0x98, 0xdb, 0x58, 0x19, 0x1b, 0x48, 0x18, 0x5b, 0x98, 0x5c, 0xdb, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe4, 0x49, 0x88, 0x06, 0x92, 0x27, 0x21, 0xdf, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0xe3, 0x47, 0x2d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xf2, 0x24, 0x0c, 0x06, 0x92, 0x27, 0x61, 0xb5, 0xe1, 0xcf, 0xa5, 0xc1, 0xe1, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x9e, 0x84, 0xc9, 0xc1, 0x53, 0x6e, 0x0f, 0x0f, 0x8e, 0x7c, 0xad, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0x93, 0x90, 0x0c, 0x64, 0x4f, 0xc2, 0x9f, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xf8, 0x38, 0x4b, 0xb3, 0x2b, 0x03, 0x49, 0x73, 0x03, 0x71, 0x2b, 0xc3, 0xa3, 0x03, 0x29, 0xb3, 0x2b, 0x73, 0xa3, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x3d, 0x09, 0xd1, 0x40, 0xf6, 0x24, 0xe4, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x78, 0x32, 0x55, 0xd0, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x3d, 0x09, 0x83, 0x81, 0xec, 0x49, 0x98, 0x6d, 0xf8, 0x73, 0x69, 0x70, 0x78, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x27, 0x61, 0x72, 0xf0, 0x60, 0xe3, 0xc3, 0x83, 0x66, 0xb7, 0xa3, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x27, 0x21, 0x19, 0x48, 0x9f, 0x84, 0x1b, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0x9c, 0xa5, 0xd9, 0x95, 0x81, 0x88, 0x85, 0x8d, 0xad, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x9f, 0x84, 0x68, 0x20, 0x7d, 0x12, 0xf2, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0xbc, 0xf1, 0x2a, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x9f, 0x84, 0xc1, 0x40, 0xfa, 0x24, 0xac, 0x37, 0xfc, 0xb9, 0xb4, 0x41, 0x8a, 0x4e, 0xd4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x4f, 0xc2, 0xe8, 0xe0, 0x3d, 0xd5, 0x87, 0x07, 0x4f, 0x87, 0x3c, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x9f, 0x84, 0x64, 0x20, 0x7f, 0x12, 0x7e, 0x6c, 0x78, 0xe2, 0x7d, 0x83, 0xc7, 0x4c, 0xdd, 0x6d, 0xb0, 0x5e, 0xa5, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x9f, 0x84, 0x70, 0x20, 0x7f, 0x12, 0x16, 0x07, 0xaf, 0xb7, 0xf7, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfc, 0x49, 0x98, 0x0c, 0xe4, 0x4f, 0xc2, 0xf6, 0xe0, 0x05, 0x02, 0x77, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x02, 0x25, 0x24, 0x03, 0x09, 0x94, 0xf0, 0x65, 0xc3, 0x13, 0xef, 0x1b, 0xbc, 0xc7, 0xeb, 0x6e, 0x83, 0xf5, 0x2a, 0x55, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x02, 0x25, 0x84, 0x03, 0x09, 0x94, 0xb0, 0x38, 0x78, 0xe4, 0xd8, 0xdd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x50, 0xc2, 0x64, 0x20, 0x81, 0x12, 0xb6, 0x07, 0x2f, 0x10, 0xb8, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x28, 0x21, 0x19, 0xc8, 0xa0, 0x84, 0x1b, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0xcc, 0x95, 0xd1, 0x81, 0x84, 0xb1, 0x85, 0xc9, 0xb5, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xa0, 0x84, 0x68, 0x20, 0x83, 0x12, 0xf2, 0x83, 0x85, 0x34, 0xe1, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x06, 0x25, 0x0c, 0x06, 0x32, 0x28, 0x61, 0xb5, 0xe1, 0xcf, 0xa5, 0xc1, 0xe1, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xa0, 0x84, 0xc9, 0xc1, 0x93, 0xec, 0x0f, 0x0f, 0x8e, 0x7c, 0xad, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x29, 0x94, 0x90, 0x0c, 0xa4, 0x50, 0xc2, 0x97, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x7c, 0xe9, 0xd2, 0xda, 0xca, 0xe4, 0x40, 0xc2, 0xc6, 0xe8, 0xd2, 0xec, 0xc2, 0xe8, 0xca, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x50, 0x42, 0x34, 0x90, 0x42, 0x09, 0xf9, 0xc1, 0x5b, 0xd2, 0x0e, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x14, 0x4a, 0x18, 0x0c, 0xa4, 0x50, 0xc2, 0xe2, 0x20, 0x04, 0x1f, 0xea, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x59, 0x30, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xe0, 0xc8, 0x10, 0x1a, 0xe0, 0xe1, 0xf6, 0x46, 0x57, 0xd6, 0x12, 0x26, 0x67, 0xf7, 0x36, 0x80, 0xf6, 0x5b, 0x1d, 0x1d, 0x88, 0x5c, 0x59, 0x5c, 0x5d, 0xd9, 0x1c, 0x1d, 0x08, 0x49, 0x8b, 0x6f, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0xf5, 0x07, 0x88, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xe5, 0xb3, 0x3c, 0x1b, 0x84, 0x1a, 0xe2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x67, 0x11, 0x3f, 0xb0, 0x67, 0x11, 0x36, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf6, 0x2c, 0x42, 0x30, 0xb0, 0x67, 0x11, 0xa2, 0x83, 0xe6, 0xf0, 0x3e, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x3d, 0x8b, 0x90, 0x0d, 0xec, 0x59, 0x84, 0xc1, 0x86, 0x37, 0xee, 0x0e, 0xde, 0x98, 0x76, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xec, 0x59, 0x84, 0xc5, 0xc0, 0x9e, 0x45, 0x98, 0x1c, 0x14, 0x14, 0x99, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0xc5, 0xf2, 0x6c, 0x10, 0xb4, 0x3f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x47, 0xde, 0xf2, 0x6c, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x10, 0x5d, 0x9e, 0x83, 0x94, 0x2d, 0xa6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xeb, 0x7e, 0x79, 0x36, 0xfc, 0x3b, 0xbf, 0xc1, 0x73, 0xd9, 0x52, 0x0e, 0xde, 0x89, 0x5c, 0xd7, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x01, 0xc6, 0x3c, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x12, 0x99, 0xe7, 0x60, 0xa5, 0x38, 0xe2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xed, 0xcd, 0x3c, 0x1b, 0xfe, 0x9d, 0xdf, 0xe0, 0xb9, 0x6c, 0x29, 0x07, 0x0f, 0x86, 0xae, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xc6, 0x69, 0x9e, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x61, 0xcd, 0x73, 0xb0, 0x76, 0x66, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xc0, 0x6d, 0x9e, 0x0d, 0xff, 0xce, 0x6f, 0xf0, 0x5c, 0xb6, 0x94, 0x83, 0x87, 0x68, 0xd7, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x61, 0x38, 0xcf, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x20, 0xe7, 0x39, 0x38, 0xe7, 0xa6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x7e, 0xce, 0xb3, 0xe1, 0xdf, 0xf9, 0x0d, 0x9e, 0xcb, 0x96, 0x72, 0xf0, 0x92, 0xff, 0xba, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x72, 0xe7, 0xd9, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xd5, 0xf0, 0x3c, 0x07, 0xaf, 0x29, 0x88, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xc7, 0x9e, 0x67, 0xc3, 0xbf, 0xf3, 0x1b, 0x3c, 0x97, 0x2d, 0xe5, 0xe0, 0xa9, 0x05, 0x76, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xc6, 0xcf, 0xb3, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xf3, 0xfd, 0x79, 0x0e, 0x9e, 0x7c, 0x10, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x19, 0x41, 0xcf, 0x86, 0x7f, 0xe7, 0x37, 0x78, 0x2e, 0x5b, 0xca, 0xc1, 0x6b, 0xe6, 0xeb, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x49, 0xa1, 0x67, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0x33, 0xf4, 0x1c, 0x1c, 0xb5, 0x4e, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x85, 0xe8, 0xd9, 0xf0, 0xef, 0xfc, 0x06, 0xcf, 0x65, 0x4b, 0x39, 0x78, 0x64, 0x84, 0x5d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0x5a, 0xf4, 0x6c, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x9e, 0x8c, 0x9e, 0x83, 0xa7, 0x31, 0xc4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xeb, 0xd1, 0xb3, 0xe1, 0xdf, 0xf9, 0x0d, 0x9e, 0xcb, 0x96, 0x72, 0xf0, 0x0a, 0x0c, 0xbb, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x26, 0xe9, 0xd9, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x65, 0x27, 0x3d, 0x07, 0x6b, 0x74, 0xd8, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x66, 0xe9, 0xd9, 0xf0, 0xef, 0xfc, 0x06, 0xcf, 0x65, 0x4b, 0x39, 0x78, 0xa6, 0x87, 0x5d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0xcc, 0xf4, 0x6c, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xdc, 0x9a, 0x9e, 0x83, 0x35, 0x77, 0xec, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0xec, 0xf4, 0x6c, 0xf8, 0x77, 0x7e, 0x83, 0xe7, 0xb2, 0xa5, 0x1c, 0xbc, 0xa3, 0xc4, 0xae, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x43, 0x81, 0x7a, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xcc, 0x50, 0xcf, 0x41, 0xca, 0x60, 0xf0, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xf1, 0x46, 0x3d, 0x07, 0x2f, 0x07, 0xf9, 0x58, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x84, 0xa9, 0xe7, 0x20, 0x04, 0x1f, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xf8, 0xa9, 0x67, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x47, 0x49, 0xf5, 0x1c, 0x9c, 0x37, 0x4f, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0xb7, 0xea, 0x39, 0x78, 0x6a, 0x29, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x89, 0x5c, 0x3d, 0x07, 0xcd, 0x6e, 0x47, 0xd5, 0x2c, 0xa8, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x0e, 0xeb, 0xd9, 0x20, 0xf5, 0xa2, 0x78, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x8a, 0xac, 0x67, 0x83, 0x92, 0x85, 0x7d, 0x96, 0x59, 0x83, 0x47, 0xd2, 0x89, 0x6c, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x3c, 0x92, 0x4e, 0xa4, 0x01, 0x78, 0x2d, 0x33, 0x33, 0x2b, 0x1b, 0xa3, 0x9b, 0x03, 0xa1, 0x43, 0x2b, 0x03, 0x19, 0x63, 0x4b, 0x2b, 0x73, 0xa3, 0x03, 0x19, 0x0b, 0x73, 0x03, 0x29, 0x6b, 0x4b, 0xa3, 0xdb, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0x24, 0x9d, 0xc8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xa2, 0x5a, 0xcf, 0x06, 0x41, 0xfb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xb4, 0x5b, 0xcf, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xe8, 0x2b, 0x56, 0x06, 0x52, 0xe6, 0xf6, 0x56, 0x77, 0x86, 0x06, 0x42, 0xf7, 0x06, 0x92, 0x46, 0x56, 0xe6, 0x46, 0x97, 0x66, 0x96, 0x07, 0x72, 0x87, 0x96, 0x36, 0x86, 0x06, 0x22, 0x57, 0x16, 0x57, 0x57, 0x36, 0x47, 0x07, 0x72, 0x57, 0x76, 0x22, 0x57, 0x06, 0x42, 0x17, 0xc6, 0xb6, 0x96, 0xe6, 0x76, 0x06, 0x12, 0x26, 0xf6, 0x56, 0x47, 0xf7, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x69, 0x71, 0x3d, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x78, 0x25, 0x5b, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x71, 0x79, 0x3d, 0x1b, 0xfe, 0x5c, 0x1a, 0xf8, 0x34, 0x72, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xdc, 0xae, 0xe7, 0xa0, 0xcc, 0xd2, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x27, 0xb0, 0x67, 0xc3, 0x9f, 0x4b, 0x1b, 0xbc, 0x92, 0xad, 0x67, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xd4, 0xaf, 0x67, 0xc3, 0xbf, 0xf3, 0x6b, 0xf0, 0x4a, 0xb6, 0x9e, 0x16, 0xf0, 0xd1, 0xe8, 0xe8, 0xe0, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xc6, 0xc4, 0x9e, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xc2, 0xd8, 0xb3, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0xa7, 0x19, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x42, 0xd9, 0xb3, 0xe1, 0xcf, 0xa5, 0x81, 0x4f, 0x23, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x2b, 0x23, 0x7b, 0x0e, 0xca, 0x2c, 0xdd, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0xc0, 0xec, 0xd9, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x9d, 0x9a, 0x3d, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x78, 0x9e, 0x59, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb9, 0xa2, 0x3d, 0x1b, 0xfe, 0x5c, 0x1a, 0xc0, 0x7b, 0x8c, 0x2d, 0xad, 0xcc, 0x8d, 0xae, 0x45, 0xae, 0x6c, 0x0e, 0xee, 0xcd, 0x6d, 0xae, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x01, 0xed, 0xd9, 0xf0, 0xef, 0xfc, 0x1a, 0x3c, 0x8b, 0x12, 0xb1, 0x6a, 0x05, 0xf0, 0x68, 0x4b, 0x6b, 0x2b, 0x6b, 0x21, 0x0b, 0xa3, 0x0b, 0x37, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x1e, 0x8d, 0x89, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x77, 0xda, 0xb3, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x1b, 0x59, 0x7b, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0xc9, 0x07, 0x75, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x40, 0xb5, 0xe7, 0xe0, 0x3c, 0x3b, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x42, 0x6d, 0xcf, 0x86, 0x3f, 0x97, 0x36, 0x38, 0xc8, 0xb3, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0xc9, 0xf6, 0x1c, 0x3c, 0xfd, 0x5c, 0xae, 0xc3, 0x29, 0xb6, 0x00, 0xde, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0xe7, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0x0b, 0x4a, 0x11, 0x1b, 0x00, 0x7f, 0xc6, 0xde, 0xdc, 0xcc, 0xd2, 0xce, 0xea, 0xe4, 0xc2, 0xe8, 0xd2, 0xde, 0xdc, 0x40, 0xcc, 0xde, 0xe4, 0x40, 0xde, 0xea, 0xe8, 0xc4, 0xde, 0xea, 0xdc, 0xc8, 0x40, 0xd0, 0xe8, 0xe8, 0xe0, 0x40, 0xe4, 0xca, 0xe2, 0xea, 0xca, 0xe6, 0xe8, 0xe6, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x5e, 0x50, 0x8a, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xb1, 0xdb, 0xb3, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x4b, 0x80, 0x7b, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0x40, 0x0b, 0xb9, 0xb2, 0xb8, 0xba, 0xb2, 0x39, 0xba, 0x32, 0x39, 0x10, 0xb2, 0xb2, 0x30, 0x36, 0x90, 0xbb, 0x34, 0x3a, 0x34, 0x90, 0x19, 0x18, 0x18, 0x10, 0xb9, 0x32, 0xb2, 0x34, 0xb9, 0xb2, 0x31, 0xba, 0xb9, 0x14, 0xd7, 0x86, 0x3f, 0x97, 0x06, 0xf0, 0x90, 0x2b, 0x23, 0x4b, 0x93, 0x2b, 0x1b, 0xa3, 0x9b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x2b, 0x7b, 0x7b, 0x36, 0x08, 0xa0, 0xb3, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x9c, 0xe1, 0x9e, 0x83, 0xc3, 0x02, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x99, 0xc9, 0x3d, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xa0, 0xdd, 0x49, 0xd0, 0xd8, 0x58, 0x19, 0x1c, 0x5d, 0x8b, 0x54, 0x98, 0xdb, 0x59, 0x99, 0x0e, 0x88, 0x58, 0x1e, 0x5d, 0xd9, 0xdc, 0x09, 0x48, 0x9a, 0x1b, 0x08, 0x1d, 0x5a, 0x19, 0xc8, 0x9b, 0x5c, 0xda, 0x59, 0x9a, 0x5b, 0x18, 0x1b, 0x88, 0x5c, 0xd9, 0x1c, 0xdc, 0x9b, 0xdb, 0x5c, 0x99, 0x6b, 0xc3, 0x9f, 0x4b, 0x03, 0xbc, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0xf3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc2, 0x71, 0xcf, 0x06, 0x01, 0x74, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xca, 0xdc, 0x73, 0x50, 0x54, 0x8a, 0xb7, 0x1a, 0x3c, 0x8b, 0x12, 0x71, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xe0, 0x59, 0x94, 0x88, 0x0d, 0x80, 0x7f, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0xcf, 0xa2, 0x44, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x8b, 0xee, 0xd9, 0x20, 0x68, 0x7f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0xaf, 0xee, 0xd9, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x75, 0xd8, 0x3d, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x78, 0xe2, 0x74, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x7d, 0xe0, 0x3d, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0x68, 0x9b, 0xa5, 0xb9, 0x85, 0xb1, 0x81, 0xc8, 0x95, 0x91, 0xa5, 0xc9, 0x95, 0x8d, 0xd1, 0xb9, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0xb3, 0x48, 0xe8, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xdb, 0xbb, 0x7b, 0x36, 0xfc, 0x3b, 0xbf, 0xc1, 0x0b, 0x50, 0xe8, 0x0e, 0x9e, 0x62, 0x88, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x2f, 0x7a, 0xcf, 0x86, 0x3f, 0x97, 0x06, 0xf0, 0x11, 0xcb, 0xa3, 0x2b, 0x9b, 0x6b, 0x91, 0x2b, 0x0b, 0x23, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x5b, 0xcc, 0x7b, 0x0e, 0xca, 0x2c, 0xdd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xf3, 0xdf, 0x7b, 0x36, 0xfc, 0xb9, 0x34, 0x80, 0x67, 0x19, 0x1e, 0x5c, 0xd9, 0x18, 0x5d, 0x19, 0x59, 0xcb, 0x5c, 0x9a, 0x5e, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xd6, 0xde, 0xb3, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x38, 0xdf, 0x73, 0x50, 0x36, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x8a, 0xdf, 0x73, 0x50, 0x66, 0xe9, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x52, 0x80, 0xcf, 0x86, 0x3f, 0x97, 0x06, 0xf0, 0x4a, 0x73, 0x1b, 0x93, 0x2b, 0x6b, 0x2b, 0x73, 0xa3, 0x0b, 0x63, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x6b, 0xfd, 0x7b, 0x36, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xab, 0x09, 0x7c, 0x0e, 0xca, 0x26, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x33, 0x12, 0x7c, 0x0e, 0x9e, 0x7e, 0x2e, 0x57, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0x3b, 0xf8, 0x6c, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xc0, 0x08, 0x9f, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x3c, 0x91, 0xc1, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xc6, 0x0c, 0x9f, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x2c, 0x12, 0xba, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x7c, 0x0b, 0x9f, 0x83, 0xa7, 0x81, 0x23, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x00, 0xe2, 0xb3, 0xe1, 0xcf, 0xa5, 0x01, 0x3c, 0xcc, 0xea, 0xd8, 0xd8, 0x5a, 0xcc, 0xd2, 0xd8, 0xca, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xb8, 0x0e, 0x9f, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xd0, 0x11, 0x9f, 0x83, 0xb2, 0x09, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xf6, 0x13, 0x9f, 0x0d, 0xff, 0xce, 0xaf, 0xc1, 0xa3, 0x31, 0x11, 0xab, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x5c, 0xf1, 0xd9, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x2d, 0x2e, 0x3e, 0x07, 0x0f, 0xb7, 0xad, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x76, 0xc6, 0xe7, 0x20, 0x04, 0x1f, 0xea, 0x70, 0x8a, 0xad, 0xc1, 0x9b, 0x22, 0x47, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0xde, 0x14, 0x39, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xb0, 0xe3, 0xb3, 0x41, 0xa8, 0x21, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xf1, 0x90, 0x0c, 0xa4, 0xc6, 0xc3, 0x64, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x6a, 0x3c, 0x44, 0x03, 0xa9, 0xf1, 0x90, 0x1f, 0xbc, 0xfe, 0x3b, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x8d, 0x87, 0xc1, 0x40, 0x6a, 0x3c, 0x2c, 0x0e, 0x0a, 0x8a, 0xcc, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x33, 0x71, 0x7c, 0x36, 0x08, 0xda, 0x9f, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x3b, 0x1e, 0x92, 0x81, 0xec, 0x78, 0x18, 0x6f, 0xb0, 0x5e, 0xa5, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x8e, 0x87, 0x70, 0x20, 0x3b, 0x1e, 0x16, 0x07, 0xef, 0xf2, 0xb7, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xf9, 0xf1, 0x39, 0x78, 0x81, 0xc0, 0xdd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x20, 0x0f, 0xc9, 0x40, 0x82, 0x3c, 0x8c, 0x37, 0x58, 0xaf, 0x52, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xc8, 0x43, 0x38, 0x90, 0x20, 0x0f, 0x8b, 0x83, 0xd7, 0xdb, 0x7b, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0x1a, 0xf9, 0x1c, 0xbc, 0x40, 0xe0, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x91, 0x87, 0x64, 0x20, 0x47, 0x1e, 0xc6, 0x1b, 0xac, 0x57, 0xa9, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0xe4, 0x21, 0x1c, 0xc8, 0x91, 0x87, 0xc5, 0xc1, 0x23, 0xc7, 0xee, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x3b, 0x9a, 0x7c, 0x0e, 0x5e, 0x20, 0x70, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xb3, 0x94, 0xcf, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0xab, 0xf2, 0x39, 0x78, 0x39, 0x1f, 0xe2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xe1, 0x5b, 0x3e, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x95, 0x6c, 0x3d, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x4d, 0x59, 0x3e, 0x07, 0xcf, 0x28, 0x44, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x5f, 0xcc, 0x67, 0xc3, 0x9f, 0x4b, 0x1b, 0xbc, 0xa0, 0x14, 0x71, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x0c, 0xcc, 0x67, 0xc3, 0xbf, 0xf3, 0x6b, 0xf0, 0x82, 0x52, 0xc4, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xf8, 0x33, 0x9f, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xa8, 0xe6, 0x73, 0xf0, 0xda, 0x44, 0xc4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xcb, 0xdc, 0x7c, 0x0e, 0x42, 0xf0, 0xa1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xd3, 0xe2, 0x7c, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x00, 0x9d, 0xcf, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x1e, 0x67, 0xe7, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x29, 0x9f, 0xcf, 0x86, 0x3f, 0x97, 0x06, 0x3e, 0x8d, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xd0, 0xf3, 0x39, 0x28, 0xb3, 0x74, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x18, 0xf4, 0xd9, 0xf0, 0xe7, 0xd2, 0x06, 0x4f, 0x87, 0xaa, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x04, 0xf4, 0xd9, 0xf0, 0xef, 0xfc, 0x1a, 0x3c, 0x1d, 0xaa, 0xae, 0x83, 0xa7, 0x18, 0x22, 0xd6, 0x0a, 0xf0, 0xd2, 0xbd, 0xb5, 0xa0, 0xd1, 0xd1, 0xc9, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xaf, 0x6c, 0x4a, 0x6c, 0x00, 0x7e, 0xc3, 0xc8, 0xc2, 0xe0, 0xe8, 0xe6, 0x40, 0xe8, 0xde, 0x40, 0xde, 0xd8, 0xc8, 0x40, 0xca, 0xf2, 0xe4, 0xca, 0x40, 0xd2, 0xdc, 0xe8, 0xca, 0xe4, 0xcc, 0xc2, 0xc6, 0xca, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x6b, 0x11, 0x7d, 0x36, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xd9, 0x43, 0x32, 0x90, 0x64, 0x0f, 0x0f, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xd9, 0x43, 0x34, 0x90, 0x64, 0x0f, 0x2d, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x71, 0x64, 0x74, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x64, 0x0f, 0x8b, 0x83, 0xd7, 0x69, 0x25, 0x1e, 0x3c, 0x0d, 0x1c, 0x71, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xb2, 0x87, 0x9a, 0x81, 0x24, 0x7b, 0x38, 0xb0, 0xe1, 0xcf, 0xa5, 0x0d, 0x9e, 0x0a, 0x90, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0xf6, 0x50, 0x78, 0xf0, 0x50, 0xb0, 0xc4, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xb2, 0x87, 0xc6, 0x81, 0x24, 0x7b, 0x68, 0x3d, 0x28, 0x9b, 0x30, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x24, 0x7b, 0xa8, 0x1d, 0x48, 0xb2, 0x87, 0xfe, 0x83, 0x87, 0x19, 0x24, 0xd6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x03, 0xa3, 0xcf, 0x86, 0xbf, 0x68, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x2c, 0x7b, 0x48, 0x06, 0xb2, 0xec, 0x61, 0xb2, 0xe1, 0xdf, 0xf9, 0x05, 0x7c, 0x34, 0x3a, 0x3a, 0xb9, 0x83, 0xa7, 0x16, 0xd8, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0x3a, 0xfa, 0x6c, 0x50, 0x90, 0xc6, 0xae, 0xe1, 0xfb, 0xf6, 0x0d, 0x0e, 0xf2, 0x6c, 0x1b, 0x94, 0xd0, 0xb1, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x9e, 0x3d, 0xc4, 0x03, 0x79, 0xf6, 0xb0, 0xdc, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x3c, 0x7b, 0xc8, 0x07, 0xf2, 0xec, 0x61, 0x73, 0x50, 0x36, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0xf6, 0x30, 0x1a, 0xc8, 0xb3, 0x87, 0xe1, 0xc1, 0xd3, 0xcf, 0xe5, 0x3a, 0x08, 0xd3, 0xb1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x93, 0x22, 0x7d, 0x36, 0x28, 0xe1, 0x31, 0xd7, 0xe0, 0xa9, 0x00, 0x89, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x46, 0xe9, 0x73, 0x50, 0x50, 0x64, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0x5c, 0xfa, 0x6c, 0x70, 0x0c, 0x37, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xd0, 0xf4, 0xd9, 0xf0, 0xb6, 0xce, 0x06, 0x07, 0x79, 0xb6, 0xc1, 0xeb, 0x83, 0xc7, 0xf7, 0x25, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0x74, 0xfa, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xd4, 0x4f, 0x9f, 0x0d, 0x6f, 0xeb, 0x6c, 0xf0, 0x9c, 0x88, 0xba, 0x83, 0xf7, 0x02, 0xd2, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x2a, 0xea, 0xb3, 0xe1, 0x6d, 0x9d, 0x0d, 0x5e, 0x60, 0x51, 0x77, 0xf0, 0x5e, 0x40, 0xba, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x63, 0x4b, 0x7d, 0x0e, 0xce, 0x9e, 0x71, 0x1d, 0x4e, 0xb1, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x5b, 0xa0, 0xbc, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0x38, 0x58, 0x6d, 0x90, 0x7a, 0x51, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x0b, 0x61, 0xb5, 0x41, 0xc9, 0xc2, 0x3e, 0xcb, 0x2c, 0xc0, 0x1b, 0x46, 0x46, 0x26, 0x57, 0x36, 0x37, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xbc, 0x47, 0x32, 0xb1, 0x01, 0x78, 0x18, 0x63, 0x4b, 0x2b, 0x73, 0xa3, 0x03, 0x49, 0x82, 0x02, 0x09, 0x23, 0x23, 0x93, 0x2b, 0x9b, 0x9b, 0xdb, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0x8f, 0x64, 0xe2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x2f, 0x85, 0xd5, 0x06, 0x41, 0xfb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x26, 0x86, 0xd5, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xd9, 0xb0, 0xda, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0x93, 0x2d, 0xac, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x04, 0xb1, 0x3a, 0x38, 0xdc, 0xb7, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x73, 0x89, 0xd5, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x43, 0xb1, 0xda, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0xb3, 0x25, 0xac, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x6f, 0xb1, 0x3a, 0x38, 0x93, 0xb8, 0xd6, 0x0a, 0xf8, 0x6d, 0x65, 0x74, 0xe8, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0x47, 0x86, 0xd0, 0x83, 0x57, 0x99, 0x26, 0x36, 0x80, 0x1f, 0x1a, 0x1d, 0x1d, 0x1c, 0x48, 0x5b, 0x19, 0x1d, 0xda, 0x1b, 0xd9, 0xdc, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0xab, 0x4c, 0x13, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x3b, 0x6a, 0xac, 0x36, 0x08, 0x36, 0xd3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x1b, 0x72, 0xac, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x36, 0x78, 0x1b, 0x42, 0x5b, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x78, 0xca, 0x8d, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x4d, 0x3f, 0x56, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x1b, 0xbc, 0xdf, 0xa1, 0xad, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x3c, 0xad, 0xc7, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xae, 0x22, 0xab, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xef, 0xa8, 0x88, 0x6a, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x25, 0x42, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xdd, 0x4a, 0x56, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x1b, 0x3c, 0x6e, 0xa3, 0xad, 0x83, 0xc6, 0xc4, 0x39, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x7b, 0xb2, 0xda, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0xd9, 0xe0, 0x99, 0x21, 0x6d, 0x6d, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xe0, 0x95, 0x4d, 0x56, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0x56, 0x59, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x6c, 0xf0, 0x3c, 0x97, 0xb6, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xf0, 0xea, 0x29, 0xab, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x8b, 0xb7, 0xac, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0x3c, 0xa8, 0x2a, 0xaa, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x8c, 0x34, 0xf7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x0b, 0xc1, 0xac, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x36, 0x78, 0xa6, 0x23, 0x57, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x78, 0xcf, 0x8c, 0x55, 0x2b, 0x80, 0xe7, 0xd8, 0x9b, 0xdc, 0x5c, 0x8b, 0x5c, 0xd9, 0x59, 0xda, 0x1c, 0x9d, 0x5c, 0xbe, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xf0, 0x5e, 0xe6, 0xc4, 0x06, 0xc0, 0x97, 0x37, 0xb9, 0xb4, 0xb3, 0x34, 0xb7, 0x39, 0x90, 0xb1, 0x30, 0xba, 0xb2, 0xb3, 0x37, 0xb9, 0x34, 0xbd, 0x32, 0x32, 0x10, 0xb1, 0x3c, 0x90, 0x30, 0x38, 0x38, 0xb9, 0x37, 0xbb, 0x30, 0x36, 0x90, 0x39, 0xba, 0x30, 0xba, 0xba, 0xb9, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0xf7, 0x32, 0x27, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0x9b, 0x59, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x02, 0x36, 0xab, 0x0d, 0x7f, 0x2e, 0x0d, 0xf0, 0xcb, 0x95, 0xc5, 0xd5, 0x95, 0xcd, 0xd1, 0xcd, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x75, 0x69, 0x56, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x91, 0x6f, 0x56, 0x07, 0x25, 0xe2, 0xfb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xd5, 0x73, 0x56, 0x1b, 0xfe, 0x9d, 0x5f, 0x80, 0xef, 0x4d, 0x2e, 0xed, 0x2c, 0xcd, 0xad, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0xd7, 0xb3, 0xda, 0xf0, 0xe7, 0xd2, 0x00, 0x7f, 0x18, 0x1c, 0x9c, 0xdc, 0x9b, 0x5d, 0x19, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x85, 0x67, 0xb5, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xe7, 0x67, 0x75, 0x50, 0x22, 0xbe, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x2b, 0x68, 0x75, 0xf0, 0xe2, 0xef, 0xc4, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x4e, 0xb4, 0xda, 0xf0, 0xe7, 0xd2, 0x00, 0xbf, 0x5c, 0x99, 0x5a, 0xd9, 0x18, 0x5d, 0x19, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x73, 0x68, 0xb5, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xd5, 0x68, 0x75, 0x50, 0x22, 0xbe, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x19, 0x69, 0x75, 0xf0, 0xe2, 0xef, 0xc4, 0x5a, 0x01, 0x5e, 0xbb, 0xb4, 0xb9, 0x34, 0xba, 0x37, 0x79, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xe0, 0xe9, 0xf0, 0x89, 0x0d, 0x80, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x20, 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x2d, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x20, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x20, 0x65, 0x61, 0x75, 0x74, 0x68, 0x20, 0x66, 0x6c, 0x6f, 0xf7, 0x4a, 0x80, 0x37, 0x59, 0xdd, 0x18, 0x9d, 0x0e, 0x88, 0xd8, 0xdb, 0x9b, 0x1b, 0x08, 0x59, 0xdd, 0x18, 0xbd, 0x18, 0x78, 0x61, 0x6e, 0xe4, 0x12, 0x80, 0x27, 0x73, 0x65, 0x73, 0x68, 0x3a, 0x20, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x2c, 0x20, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0xf3, 0x62, 0xf0, 0x6f, 0xf2, 0x12, 0x00, 0x6f, 0xc0, 0x95, 0xb9, 0x91, 0xe9, 0x80, 0x84, 0xdd, 0x85, 0xa5, 0xd1, 0xa5, 0xb9, 0x9d, 0x81, 0x94, 0xd0, 0xd5, 0xb9, 0x95, 0x81, 0x98, 0xbd, 0xc9, 0x81, 0x94, 0xac, 0x95, 0x95, 0xb9, 0x81, 0xcc, 0x95, 0xb9, 0xd1, 0x81, 0x84, 0xd1, 0x81, 0xd0, 0xa5, 0xb5, 0x95, 0xb1, 0x80, 0x98, 0xbd, 0xc9, 0x81, 0xa4, 0xb9, 0xa5, 0xd1, 0xa5, 0x85, 0xb1, 0x81, 0x94, 0x85, 0xd5, 0xd1, 0xa1, 0x81, 0xa0, 0xd1, 0xd1, 0xc1, 0x81, 0xc8, 0x95, 0xc5, 0x4b, 0x00, 0x1e, 0xcc, 0xa1, 0xa5, 0xc1, 0xe9, 0x80, 0xd0, 0xa1, 0x95, 0x81, 0x00, 0xc1, 0x81, 0x84, 0xd1, 0xd1, 0x95, 0xb5, 0xc1, 0xd1, 0xa5, 0xb9, 0x9d, 0x81, 0xd0, 0xbd, 0x81, 0xb0, 0xbd, 0x9d, 0x81, 0xa4, 0xb9, 0x4b, 0x00, 0x7e, 0x8b, 0x85, 0xcd, 0x95, 0xe9, 0x80, 0xb0, 0xbd, 0x8d, 0x85, 0xb1, 0x81, 0xc0, 0xc9, 0xbd, 0xd1, 0xbd, 0x8d, 0xbd, 0xb1, 0xad, 0xa0, 0xbd, 0xcd, 0xd1, 0xb9, 0x85, 0xb5, 0x95, 0x81, 0xd0, 0xa1, 0x95, 0x81, 0x84, 0xd1, 0xd1, 0x95, 0xb5, 0xc1, 0xd1, 0x81, 0xcc, 0xd1, 0x85, 0xc9, 0xd1, 0x95, 0x91, 0x81, 0xbc, 0xb9, 0xb1, 0x80, 0xa4, 0x99, 0x81, 0x84, 0xb9, 0xe5, 0x4b, 0x00, 0x1e, 0xb1, 0x85, 0xcd, 0xd1, 0xe9, 0x80, 0xd0, 0xa1, 0x95, 0x81, 0xd4, 0xc9, 0xb1, 0x81, 0xd0, 0xbd, 0x81, 0xc8, 0x95, 0x91, 0xa5, 0xc9, 0x95, 0x8d, 0xd1, 0x81, 0xd0, 0xbd, 0x81, 0x84, 0x99, 0xd1, 0x95, 0xc9, 0x81, 0xb0, 0xbd, 0x9d, 0xb5, 0xa4, 0xb9, 0x4b, 0x00, 0xfc, 0x40, 0xf7, 0xb6, 0x56, 0xa6, 0x03, 0x12, 0x56, 0x47, 0x87, 0x56, 0xe6, 0x46, 0x97, 0x36, 0x16, 0x46, 0x97, 0xf6, 0xe6, 0x06, 0x32, 0x57, 0x36, 0x26, 0x57, 0x46, 0x07, 0x22, 0x57, 0x36, 0x56, 0x96, 0x66, 0x57, 0x46, 0x06, 0xf2, 0x66, 0x57, 0x26, 0x07, 0x12, 0xd6, 0x56, 0x36, 0x07, 0xf2, 0x26, 0x07, 0xf2, 0x66, 0x66, 0x56, 0x26, 0x57, 0x46, 0x06, 0x22, 0x96, 0x07, 0x62, 0x97, 0x36, 0x97, 0x46, 0xf7, 0x26, 0xd7, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0xd3, 0xe1, 0x13, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xc3, 0x2d, 0xad, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xfc, 0xa6, 0xd5, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x99, 0xba, 0xc7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x59, 0xa6, 0xd5, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xdf, 0xa7, 0xd5, 0x41, 0xd9, 0x84, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xef, 0xa8, 0xd5, 0xc1, 0xd3, 0xd3, 0x3d, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x13, 0xd5, 0x6a, 0xc3, 0x07, 0xf3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0x0d, 0x5c, 0x6d, 0xf8, 0x73, 0x69, 0xc0, 0x9f, 0x2b, 0x9b, 0x43, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x73, 0x01, 0xae, 0x0e, 0xce, 0xe0, 0xab, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb9, 0xab, 0x56, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x1a, 0xd6, 0x6a, 0xc3, 0x9f, 0x4b, 0x03, 0x3e, 0x5c, 0x99, 0x1b, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xe4, 0x6a, 0xb5, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x45, 0x6b, 0x75, 0x50, 0x36, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x9c, 0x6b, 0xb5, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xdb, 0x7d, 0xad, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0x73, 0x0c, 0x11, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xbb, 0x78, 0xad, 0x0e, 0x9e, 0x9e, 0xee, 0xb1, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xa1, 0xb1, 0xd5, 0x86, 0x3f, 0x97, 0x36, 0x78, 0xdb, 0x41, 0xd0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xfb, 0xb0, 0xd5, 0x86, 0x7f, 0xe7, 0xd7, 0xa0, 0xcd, 0xde, 0xf1, 0xaa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x83, 0x9f, 0xad, 0x36, 0xfc, 0xb9, 0xb4, 0x41, 0xd3, 0xd7, 0xe3, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x35, 0xcd, 0x56, 0x07, 0x6d, 0x5b, 0x8f, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x63, 0x6d, 0xb5, 0xe1, 0xcf, 0xa5, 0x0d, 0x5f, 0xd4, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0x4e, 0x5b, 0x6d, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0x67, 0x5b, 0x1d, 0x94, 0x4d, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0x7b, 0x5b, 0x1d, 0x9c, 0x67, 0x47, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x19, 0xdd, 0x6a, 0xc3, 0x9f, 0x4b, 0x1b, 0xac, 0x17, 0x01, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x32, 0xb7, 0x3a, 0x38, 0xcf, 0x8e, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x17, 0x6f, 0xb5, 0xe1, 0xcf, 0xa5, 0x01, 0x9f, 0xee, 0x6d, 0xad, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x77, 0xb7, 0xda, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0xa8, 0xb7, 0x3a, 0x28, 0x9b, 0x30, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0xd1, 0xb7, 0x3a, 0x38, 0x83, 0xaf, 0x56, 0x2b, 0x80, 0xe7, 0x18, 0x5a, 0x98, 0x9b, 0x5b, 0x19, 0x5b, 0x4b, 0x99, 0x5d, 0x99, 0x1b, 0xbd, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0x2e, 0x2e, 0xc5, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xd0, 0x84, 0xab, 0x0d, 0x82, 0xf6, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x5b, 0x86, 0x64, 0x20, 0x6f, 0x19, 0x6a, 0x36, 0x58, 0xaf, 0x52, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x2d, 0x43, 0x38, 0x90, 0xb7, 0x0c, 0xab, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0xbc, 0x75, 0xe1, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xc8, 0xe1, 0x6a, 0xc3, 0xbf, 0xf3, 0x0b, 0xf8, 0x73, 0x69, 0x67, 0x6e, 0x6b, 0xf0, 0xf4, 0x03, 0xb9, 0x0e, 0x5e, 0x33, 0x5f, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x2e, 0x43, 0x32, 0x90, 0xb8, 0x0c, 0x3d, 0x1b, 0xac, 0x57, 0xa9, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x97, 0x21, 0x1c, 0x48, 0x5c, 0x86, 0xd9, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x5e, 0x55, 0x71, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x81, 0x71, 0x75, 0xf0, 0x6c, 0x34, 0xc5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x73, 0x19, 0x92, 0x81, 0xcc, 0x65, 0xa8, 0xd8, 0x60, 0xbd, 0x4a, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xb9, 0x0c, 0xe1, 0x40, 0xe6, 0x32, 0x2c, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xf0, 0x50, 0x8e, 0xab, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x58, 0x8f, 0xab, 0x83, 0x67, 0xa3, 0x29, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x3a, 0x72, 0xb5, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x73, 0x4c, 0xae, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xf0, 0xa8, 0x83, 0xab, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xab, 0x5c, 0xae, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0x9b, 0xf1, 0x42, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x8b, 0x57, 0xae, 0x0e, 0x1e, 0x85, 0x17, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x34, 0xcd, 0xd5, 0x86, 0x3f, 0x97, 0x36, 0x38, 0x45, 0x9e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0xc9, 0x5c, 0x1d, 0xbc, 0x6f, 0x43, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xf2, 0x9d, 0xab, 0x0d, 0x7f, 0x2e, 0x6d, 0x98, 0xce, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xa8, 0x9c, 0xab, 0x83, 0xe5, 0xb0, 0xd8, 0xb5, 0x02, 0xbc, 0x70, 0x6f, 0x72, 0x74, 0x6b, 0x65, 0xf9, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0xdb, 0x15, 0x15, 0x1b, 0x00, 0xbf, 0xc6, 0xde, 0xda, 0xe0, 0xd8, 0xca, 0xe8, 0xca, 0xc8, 0x40, 0xde, 0xe4, 0x40, 0xd2, 0xdc, 0x5a, 0xe0, 0xe4, 0xde, 0xce, 0xe4, 0xca, 0xe6, 0xe6, 0x40, 0xde, 0xea, 0xe8, 0xce, 0xde, 0xd2, 0xdc, 0xce, 0x40, 0xca, 0xc2, 0xea, 0xe8, 0xd0, 0x40, 0xcc, 0xd8, 0xde, 0xee, 0x95, 0x00, 0xff, 0xb6, 0x30, 0xb2, 0x32, 0x1d, 0x10, 0xb6, 0x34, 0xbb, 0x32, 0x90, 0xb9, 0x34, 0xb7, 0xb1, 0x72, 0x83, 0x97, 0x06, 0x28, 0x2e, 0x01, 0x78, 0x43, 0x56, 0x37, 0x46, 0xa7, 0x03, 0x32, 0xf6, 0xe6, 0x66, 0x96, 0x26, 0xd7, 0x06, 0x22, 0x57, 0x16, 0x57, 0x57, 0x36, 0x47, 0x07, 0x12, 0x76, 0x17, 0x96, 0x46, 0x97, 0xe6, 0x76, 0x06, 0x22, 0x57, 0x46, 0x96, 0x26, 0x57, 0x36, 0x46, 0x2f, 0x01, 0xf8, 0x49, 0xf7, 0xb6, 0x56, 0xa6, 0x03, 0x32, 0x57, 0x36, 0x26, 0x57, 0x46, 0x07, 0x42, 0xf7, 0x06, 0x92, 0xe6, 0x36, 0xc6, 0x56, 0x47, 0x56, 0x06, 0x92, 0xe6, 0x06, 0x22, 0x57, 0x46, 0x96, 0x26, 0x57, 0x36, 0x46, 0xc7, 0x02, 0x52, 0xe7, 0xc6, 0x56, 0x36, 0x37, 0x07, 0x12, 0x26, 0xf6, 0x26, 0x47, 0x97, 0xe6, 0x76, 0xd6, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0xdb, 0x15, 0x15, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x03, 0x85, 0xae, 0x36, 0x7c, 0x30, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x40, 0xda, 0xd5, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x3e, 0x6c, 0x69, 0x76, 0x65, 0x20, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x1b, 0xfe, 0x5c, 0xda, 0x60, 0xa1, 0x32, 0xd5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x9d, 0xd9, 0xd5, 0xc1, 0x91, 0xaf, 0x75, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xb1, 0xe8, 0x6a, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0x2a, 0x5d, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0xfb, 0x26, 0x07, 0x12, 0x76, 0x17, 0x96, 0x46, 0x07, 0x22, 0x57, 0x46, 0x96, 0x26, 0xb7, 0xe1, 0xcf, 0xa5, 0x0d, 0xde, 0x8e, 0xa3, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x81, 0x74, 0xb5, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xe2, 0x74, 0x75, 0x50, 0x36, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x26, 0x75, 0x75, 0xf0, 0xf4, 0x74, 0x8f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0xcb, 0xba, 0xda, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0xeb, 0x2e, 0x8d, 0x0e, 0x0d, 0x64, 0xae, 0x6c, 0x4c, 0xae, 0x8c, 0x6e, 0xc3, 0x9f, 0x4b, 0x1b, 0x3c, 0xd5, 0x4a, 0x71, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xdc, 0xea, 0x6a, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xa0, 0xeb, 0xea, 0xa0, 0x6c, 0xc2, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x44, 0xec, 0xea, 0xe0, 0x0c, 0xbe, 0x5a, 0x87, 0x53, 0xac, 0x35, 0x78, 0x81, 0x43, 0xd0, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x0b, 0x1c, 0x82, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xc3, 0xdc, 0xae, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x97, 0x0b, 0xbb, 0x03, 0x41, 0xa3, 0xa3, 0x83, 0x03, 0x41, 0x2b, 0x0b, 0x23, 0x2b, 0x93, 0x9b, 0xdb, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x8f, 0xbb, 0x3a, 0x08, 0x29, 0x93, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x4b, 0xee, 0xae, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x13, 0xdf, 0xd5, 0x86, 0x3f, 0x97, 0x06, 0x87, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x7b, 0xf3, 0xae, 0x0e, 0xce, 0xb3, 0xa3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0x0b, 0x5e, 0x6d, 0xf8, 0x73, 0x69, 0xf0, 0x78, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x06, 0xf0, 0xea, 0xe0, 0x3c, 0x3b, 0x5a, 0x87, 0x53, 0xac, 0x05, 0x7c, 0xb8, 0x3a, 0x39, 0x73, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0xd1, 0xd2, 0x8a, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x85, 0x8b, 0x57, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xf0, 0x50, 0x27, 0xc7, 0x06, 0x72, 0x97, 0x46, 0x87, 0x06, 0x62, 0x26, 0x17, 0x76, 0xd6, 0x56, 0xe6, 0x46, 0xb7, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xf1, 0x78, 0x75, 0x50, 0x7a, 0xd3, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x36, 0x79, 0xb5, 0xe1, 0xdf, 0xf9, 0x05, 0x7c, 0xb8, 0x3a, 0x39, 0xb6, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0xb7, 0xbc, 0xda, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xcd, 0xbc, 0x3a, 0x28, 0x9b, 0x30, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0xf6, 0xbc, 0x3a, 0x38, 0xcf, 0x8e, 0xd6, 0x0a, 0xe0, 0x53, 0x16, 0x56, 0x47, 0x87, 0xd6, 0x02, 0xc7, 0x56, 0x16, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xbc, 0x5a, 0x5c, 0xb1, 0x01, 0xf8, 0x1a, 0x63, 0x4b, 0x2b, 0x73, 0xa3, 0x03, 0xa1, 0x0b, 0x63, 0x5b, 0x4b, 0x73, 0x3b, 0x03, 0xa1, 0x7b, 0x03, 0x41, 0x7b, 0x9b, 0xa3, 0xdb, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0xb5, 0xb8, 0xe2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x5d, 0xe9, 0xd5, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x3f, 0xbd, 0x3a, 0x08, 0xe9, 0xd4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x53, 0x57, 0xaf, 0x36, 0x08, 0xda, 0x9f, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xdb, 0x5e, 0xaf, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x81, 0xec, 0xd5, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x96, 0x04, 0x67, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xa2, 0x7b, 0xb5, 0xe1, 0xcf, 0xa5, 0x01, 0x1e, 0xb7, 0x37, 0xb7, 0xb1, 0x72, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xf2, 0xf6, 0xea, 0xe0, 0x0c, 0xbe, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xaf, 0xf0, 0xd5, 0x86, 0x3f, 0x97, 0x36, 0x78, 0xae, 0xcf, 0xdc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x09, 0xf0, 0xd5, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x93, 0xf1, 0xd5, 0x41, 0xd9, 0x84, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xde, 0xf2, 0xd5, 0xc1, 0x19, 0x7c, 0xb5, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x7e, 0xbe, 0xda, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x69, 0xd2, 0x57, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x78, 0x98, 0x58, 0xd0, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x7d, 0xda, 0x57, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x29, 0xf5, 0x8a, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xed, 0xd7, 0x57, 0x07, 0x67, 0xf0, 0xd5, 0x6a, 0x35, 0x78, 0x24, 0x9d, 0xc8, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x23, 0xe9, 0x44, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x3b, 0xc3, 0xaf, 0x36, 0x08, 0xda, 0x9f, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x6f, 0x17, 0x92, 0x81, 0xbc, 0x5d, 0x68, 0xd9, 0x60, 0xbd, 0x4a, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xb7, 0x0b, 0xe1, 0x40, 0xde, 0x2e, 0x4c, 0x37, 0x08, 0x36, 0xd3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x6f, 0x17, 0xe2, 0x81, 0xbc, 0x5d, 0xd8, 0x1c, 0x3c, 0xbf, 0x13, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xdb, 0x85, 0xd1, 0x40, 0xde, 0x2e, 0x2c, 0x0f, 0x56, 0xa1, 0x84, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x61, 0x7e, 0x75, 0xf0, 0xce, 0xe3, 0xba, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x23, 0xe2, 0xaf, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xc0, 0xc7, 0xb9, 0x37, 0x90, 0xbb, 0x32, 0x90, 0xb1, 0x30, 0x37, 0x90, 0x30, 0x38, 0x38, 0xb6, 0x3c, 0x90, 0xb1, 0x37, 0x37, 0xb3, 0xb4, 0xb3, 0x3a, 0xb9, 0x30, 0xba, 0xb4, 0x37, 0xb7, 0x39, 0x90, 0x37, 0x37, 0x90, 0x30, 0x10, 0xb8, 0x32, 0xb9, 0x96, 0xb9, 0x34, 0xba, 0x32, 0x10, 0xb1, 0xb0, 0xb9, 0xb4, 0xb9, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x3a, 0x7f, 0xb5, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0xb7, 0xb9, 0x5f, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xba, 0x7f, 0xb5, 0xe1, 0xcf, 0xa5, 0x01, 0xbc, 0xd0, 0xe8, 0xe8, 0xe0, 0x5a, 0xc6, 0xde, 0xdc, 0xcc, 0xd2, 0xce, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x8c, 0xfc, 0xab, 0x0d, 0xff, 0xce, 0xaf, 0xc1, 0xd3, 0x48, 0x16, 0xab, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x53, 0x04, 0xb0, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x30, 0x01, 0xd6, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0xde, 0xfc, 0x7f, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x31, 0x03, 0xd6, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0xb9, 0xb2, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x46, 0x01, 0x6b, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x0a, 0x02, 0xeb, 0xa0, 0x44, 0x7c, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xaf, 0x02, 0xeb, 0xe0, 0x3c, 0x3b, 0x5a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0x6f, 0x60, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x2e, 0x0f, 0xac, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x3c, 0x2d, 0x03, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x30, 0x13, 0xac, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x74, 0xa8, 0xba, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xe6, 0x11, 0xac, 0x83, 0x47, 0x2f, 0x25, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xec, 0x0a, 0xd6, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x7a, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0xae, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xe4, 0x82, 0xb5, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0xd7, 0xa6, 0x60, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x65, 0x83, 0xb5, 0xe1, 0xcf, 0xa5, 0x01, 0xfe, 0xb0, 0xb1, 0xb1, 0x32, 0x38, 0xba, 0x32, 0x72, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x78, 0x06, 0xeb, 0xf0, 0xc1, 0xea, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb1, 0x3c, 0x58, 0x1b, 0xfe, 0x5c, 0x1a, 0xe0, 0x15, 0x4b, 0x73, 0x23, 0x4b, 0x73, 0x3b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x3b, 0x74, 0xb0, 0x36, 0xfc, 0x3b, 0xbf, 0x06, 0xcf, 0x3f, 0x5a, 0xac, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x07, 0xc2, 0xda, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x7d, 0x43, 0x58, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x68, 0xf8, 0xc7, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xc6, 0x25, 0xac, 0x0d, 0x7f, 0x2e, 0x6d, 0x70, 0x30, 0xfd, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x47, 0xc2, 0x3a, 0x38, 0x23, 0xa1, 0xd6, 0x0a, 0xc0, 0x4f, 0x58, 0x1d, 0x1d, 0x5a, 0x99, 0x1b, 0x5d, 0xda, 0x58, 0x18, 0x5d, 0xda, 0x9b, 0x5b, 0xcb, 0x1c, 0x5d, 0x18, 0x5d, 0xb9, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xf0, 0x9a, 0xa9, 0xc5, 0x06, 0xe0, 0x7b, 0x8e, 0x2e, 0x8c, 0xae, 0x0c, 0xa4, 0x6e, 0xae, 0x8c, 0x0c, 0x24, 0xcd, 0x0d, 0x84, 0x0e, 0xad, 0x0c, 0x84, 0xed, 0xed, 0x2c, 0xcd, 0x0d, 0x64, 0x2e, 0x6f, 0x8e, 0xae, 0xac, 0x6d, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0x35, 0x53, 0x8b, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb1, 0x50, 0x58, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xb7, 0x0a, 0x6b, 0xc3, 0x9f, 0x4b, 0x1b, 0xbc, 0xf9, 0xff, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x65, 0x0a, 0x6b, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x29, 0x0b, 0xeb, 0xa0, 0x44, 0xac, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xce, 0x0b, 0xeb, 0xe0, 0x0c, 0xbe, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xa6, 0x18, 0xd6, 0x86, 0x7f, 0xe7, 0x17, 0xe0, 0x9d, 0x2b, 0x9b, 0x9b, 0x4b, 0x7b, 0x73, 0xab, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xeb, 0xd3, 0xb0, 0x36, 0xfc, 0xb9, 0x34, 0xc0, 0x6f, 0x97, 0x36, 0x97, 0x46, 0xf7, 0x26, 0x37, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0x9d, 0x61, 0x6d, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0xb6, 0x61, 0x1d, 0x94, 0x88, 0xf5, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0xca, 0x61, 0x1d, 0x9c, 0xc1, 0x57, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0xb6, 0xc3, 0xda, 0xf0, 0xef, 0xfc, 0x1a, 0x3c, 0x1d, 0x3e, 0xb1, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xbc, 0x0f, 0x6b, 0xc3, 0x9f, 0x4b, 0x03, 0xfc, 0x76, 0x69, 0x73, 0x69, 0x74, 0x69, 0x6e, 0xe7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xd3, 0x1e, 0xd6, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x5b, 0x20, 0xd6, 0x41, 0x89, 0x58, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x6e, 0x21, 0xd6, 0x41, 0xdb, 0xd6, 0xe3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0x25, 0x62, 0x6d, 0xf8, 0x77, 0x7e, 0x01, 0x5e, 0xb6, 0xb7, 0x33, 0xb1, 0xb7, 0xb7, 0xb5, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x16, 0x12, 0x6b, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xba, 0xc5, 0xde, 0xe8, 0xd0, 0x40, 0xe6, 0xd0, 0xc2, 0xe0, 0xca, 0xc8, 0x40, 0xd8, 0xd2, 0xd6, 0xca, 0x40, 0x4e, 0xe0, 0xe4, 0xde, 0xe8, 0x74, 0x5e, 0x5e, 0xd0, 0xde, 0xe6, 0xe8, 0x4e, 0x1b, 0xfe, 0x5c, 0x1a, 0xe0, 0x2f, 0x73, 0x23, 0x83, 0x7b, 0x4b, 0x73, 0xa3, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x3b, 0x1c, 0xb1, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x76, 0x25, 0xd6, 0x86, 0x3f, 0x97, 0x06, 0xfc, 0xba, 0xb9, 0x32, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x68, 0x12, 0x6b, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x2d, 0x13, 0xeb, 0xa0, 0x6c, 0xc2, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xd1, 0x13, 0xeb, 0xe0, 0x3c, 0x3b, 0xda, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x39, 0xa7, 0x58, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x5c, 0x7f, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x4a, 0x8a, 0xb5, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xac, 0x8a, 0x75, 0x50, 0x36, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xff, 0x8a, 0x75, 0x70, 0x9e, 0x1d, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x54, 0x5c, 0xac, 0x0d, 0x7f, 0x2e, 0x6d, 0xd0, 0x66, 0xef, 0xf8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x84, 0x2d, 0xd6, 0xc1, 0xfb, 0x8a, 0x14, 0x6b, 0xd6, 0xe0, 0x69, 0x24, 0x8b, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0x4f, 0x23, 0x59, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0xf2, 0xc5, 0xda, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x51, 0xc3, 0x58, 0x1b, 0xfe, 0x5c, 0x1a, 0xe0, 0x9b, 0x2b, 0x1b, 0xab, 0x93, 0x2b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x7b, 0x81, 0xb1, 0x36, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xbb, 0x8d, 0xb1, 0x0e, 0xca, 0x26, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x23, 0x98, 0xb1, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x4f, 0x34, 0xd6, 0x86, 0x3f, 0x97, 0x36, 0x28, 0x5a, 0x4f, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x5b, 0x9d, 0xb1, 0x36, 0xfc, 0x3b, 0xbf, 0x06, 0x87, 0xe2, 0xd1, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x2d, 0x1b, 0x6b, 0xc3, 0x9f, 0x4b, 0x1b, 0xbc, 0x9c, 0x4f, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xda, 0x1a, 0xeb, 0xe0, 0xa9, 0xa6, 0x8b, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x6d, 0x38, 0xd6, 0x86, 0x3f, 0x97, 0x06, 0x78, 0xe0, 0xe4, 0xde, 0xf0, 0xf2, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x94, 0x6f, 0xac, 0x0d, 0x02, 0xe8, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x99, 0x1c, 0xeb, 0xa0, 0x80, 0xcd, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x60, 0x1d, 0x6b, 0xc3, 0x9f, 0x4b, 0x1b, 0x2c, 0xdb, 0x17, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x43, 0xc7, 0x3a, 0x7c, 0xb0, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x5d, 0x3c, 0xd6, 0x86, 0x3f, 0x97, 0x06, 0xf8, 0xe5, 0xca, 0xc8, 0xd2, 0xe4, 0xca, 0xc6, 0xe8, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x72, 0x77, 0xac, 0xc3, 0x07, 0xab, 0x1d, 0x4e, 0xb1, 0x05, 0xf0, 0x1a, 0x0b, 0x1b, 0x43, 0x2b, 0x6b, 0x29, 0x73, 0xa3, 0x93, 0xcb, 0x37, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x1e, 0x99, 0xbb, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x8e, 0x8f, 0xb5, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xf3, 0xfb, 0xb1, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0xb9, 0xfe, 0x74, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x6e, 0x1f, 0xeb, 0xf0, 0xc1, 0xea, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x85, 0x05, 0x59, 0x1b, 0xfe, 0x5c, 0xda, 0x60, 0xd9, 0x14, 0xf4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc5, 0x40, 0xd6, 0x06, 0x41, 0xfb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x01, 0x42, 0xd6, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x54, 0xc8, 0xda, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0x13, 0xda, 0xd7, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0x4b, 0x64, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0x07, 0x56, 0xd0, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0x40, 0x64, 0x6d, 0xf8, 0x77, 0x7e, 0x0d, 0x1e, 0x58, 0x41, 0xd7, 0xc1, 0x53, 0x0c, 0x11, 0xab, 0x15, 0xf0, 0xe3, 0xea, 0xe4, 0xd2, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x8e, 0x0c, 0xa1, 0x07, 0xcf, 0x74, 0x5e, 0x6c, 0x00, 0x2f, 0xb9, 0xb2, 0xb8, 0xba, 0xb2, 0x39, 0xba, 0x96, 0x3a, 0xb9, 0xb4, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0x67, 0x3a, 0x2f, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0x66, 0x64, 0x6d, 0x10, 0xb4, 0x3f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0x72, 0x64, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xf0, 0x87, 0x89, 0xcd, 0xbd, 0xb1, 0xd5, 0xd1, 0x95, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x98, 0x8f, 0xac, 0x83, 0x80, 0x0d, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xad, 0x24, 0x6b, 0xc3, 0x9f, 0x4b, 0x83, 0xc3, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xe1, 0x22, 0x59, 0x07, 0xaf, 0xe4, 0x56, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xd2, 0x94, 0xac, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x83, 0xd6, 0x3e, 0xa8, 0x37, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x10, 0x4b, 0xd6, 0x41, 0x18, 0x01, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x28, 0x93, 0xb5, 0xe1, 0xcf, 0xa5, 0xc1, 0xe1, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xfc, 0x97, 0xac, 0x0d, 0xff, 0xce, 0xaf, 0xc1, 0x43, 0x77, 0x82, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x38, 0x9d, 0xac, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0xdf, 0x64, 0x6d, 0xf8, 0x77, 0x7e, 0x01, 0x3f, 0xae, 0x2e, 0x2c, 0xaf, 0x5a, 0x0d, 0x9e, 0xc0, 0xb7, 0xb8, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xf0, 0x04, 0xbe, 0xc5, 0x06, 0xc0, 0x17, 0xb9, 0xb2, 0xb1, 0x37, 0x39, 0x32, 0x90, 0x37, 0x33, 0x90, 0xb7, 0x3a, 0xba, 0xb3, 0xb7, 0x34, 0xb7, 0x33, 0x90, 0xb2, 0xb0, 0x3a, 0x3a, 0x34, 0x90, 0xb1, 0xb7, 0xb6, 0xb6, 0x39, 0x10, 0x13, 0x90, 0x39, 0xba, 0x30, 0xba, 0x72, 0x25, 0x00, 0xdf, 0xe2, 0xca, 0xea, 0x74, 0x40, 0xc2, 0x40, 0xe2, 0xea, 0xca, 0xea, 0xca, 0x40, 0xde, 0xcc, 0x40, 0xdc, 0xde, 0xdc, 0xc6, 0xca, 0xe6, 0x40, 0xcc, 0xde, 0xe4, 0x40, 0xe8, 0xde, 0x5a, 0xc4, 0xca, 0x5a, 0xdc, 0x5e, 0xc2, 0xc6, 0xd6, 0xca, 0xc8, 0x40, 0xe0, 0xd8, 0xca, 0xc2, 0xe6, 0x25, 0x00, 0x1f, 0xdb, 0xc2, 0xe0, 0x74, 0x40, 0xe0, 0xca, 0xe4, 0x40, 0xdc, 0xde, 0xdc, 0xc6, 0xca, 0x58, 0x40, 0xc6, 0xde, 0xda, 0xe0, 0xd8, 0xca, 0xe8, 0xca, 0xc8, 0x40, 0xde, 0xe4, 0x40, 0xe0, 0xca, 0xdc, 0xc8, 0xd2, 0xdc, 0xce, 0x40, 0xca, 0xc2, 0xea, 0xe8, 0xd0, 0x40, 0xe6, 0xca, 0xe6, 0xe6, 0xd2, 0xde, 0xdc, 0xda, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0x02, 0xdf, 0xe2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xef, 0x4f, 0xd6, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x27, 0xca, 0xda, 0xf0, 0xe7, 0xd2, 0x06, 0x07, 0x33, 0x90, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x2c, 0xa1, 0xac, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x3c, 0xa4, 0xac, 0x0d, 0x6f, 0xeb, 0x6c, 0x70, 0x30, 0x03, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x10, 0xa7, 0xac, 0x83, 0x33, 0xf8, 0x6a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0x57, 0x65, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0xe2, 0xb2, 0x7e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x66, 0x2a, 0x6b, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x2b, 0x2b, 0xeb, 0xa0, 0x44, 0xac, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xd1, 0x2b, 0xeb, 0xe0, 0x0c, 0xbe, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xad, 0x58, 0xd6, 0x86, 0x7f, 0xe7, 0xd7, 0xe0, 0xed, 0x8a, 0x8a, 0x55, 0x2b, 0xe0, 0xb7, 0xbd, 0xd1, 0xa1, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0xef, 0x9e, 0x60, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x47, 0xcb, 0xda, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x17, 0x8d, 0x8e, 0x0e, 0x0e, 0xe4, 0x0d, 0xae, 0x4c, 0x2e, 0x8c, 0x2e, 0xed, 0xcd, 0x6d, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0xb8, 0x65, 0x6d, 0xf8, 0x73, 0x69, 0x70, 0x78, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x70, 0x2d, 0x6b, 0xc3, 0xbf, 0xf3, 0x6b, 0xf0, 0x2a, 0xd3, 0xc4, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xa4, 0x2e, 0x6b, 0xc3, 0x9f, 0x4b, 0x83, 0xc7, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x91, 0x72, 0x59, 0x1b, 0xfe, 0x9d, 0x5f, 0xc3, 0x03, 0x20, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x0d, 0x5f, 0xd6, 0x86, 0x3f, 0x97, 0x06, 0x97, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x43, 0xf3, 0xb2, 0x36, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x8b, 0xff, 0xb2, 0x0e, 0xca, 0x26, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x1b, 0x08, 0xb3, 0x0e, 0x9e, 0x7e, 0x2e, 0x57, 0xab, 0xc1, 0x23, 0x10, 0x17, 0x37, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x1e, 0x81, 0xb8, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x94, 0x98, 0xb5, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0xc0, 0x5f, 0x37, 0x57, 0x26, 0xe7, 0x16, 0xd6, 0x56, 0x76, 0x70, 0x22, 0x00, 0x3d, 0x9c, 0x62, 0xd5, 0x1a, 0x9c, 0x10, 0xce, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x38, 0x32, 0x84, 0x1e, 0x9c, 0x10, 0xce, 0x1a, 0x80, 0xcf, 0xb0, 0x3a, 0x3a, 0xb4, 0x32, 0x37, 0xba, 0xb4, 0xb1, 0x30, 0xba, 0xb4, 0x37, 0x37, 0x90, 0xb6, 0x32, 0x3a, 0xb4, 0x37, 0x32, 0x10, 0x13, 0x10, 0x20, 0xb8, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0x13, 0xc2, 0xd9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xa6, 0x64, 0xd6, 0x06, 0xa1, 0x86, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x26, 0x43, 0x32, 0x90, 0x9b, 0x0c, 0x93, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0xc9, 0x10, 0x0d, 0xe4, 0x26, 0x43, 0xbe, 0xe1, 0x8d, 0xbb, 0x0d, 0x2f, 0xdf, 0x1d, 0x3c, 0xc8, 0x31, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x4d, 0x86, 0xc1, 0x40, 0x6e, 0x32, 0x2c, 0x0e, 0x0a, 0x8a, 0xcc, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x53, 0x20, 0xb3, 0x36, 0x08, 0xda, 0x9f, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xdb, 0x2c, 0xb3, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x62, 0x7b, 0x1b, 0x0b, 0x63, 0x63, 0x01, 0x91, 0x7b, 0x7b, 0xa3, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x09, 0x99, 0x59, 0x1b, 0x32, 0xe0, 0x07, 0x0f, 0xee, 0x61, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xce, 0x33, 0xeb, 0x20, 0x04, 0x1f, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x47, 0x34, 0x6b, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x80, 0xff, 0xac, 0xae, 0x6c, 0x8e, 0x0e, 0x24, 0x8d, 0x6c, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0x93, 0x66, 0x6d, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xe0, 0xfd, 0xe2, 0x41, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0xb3, 0x66, 0x6d, 0xf8, 0x73, 0x69, 0xc0, 0xbb, 0x43, 0x7b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x8b, 0x54, 0xb3, 0x0e, 0x8e, 0xad, 0xae, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x20, 0x9b, 0xb5, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x0f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x64, 0x20, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x2d, 0x73, 0x68, 0x69, 0x70, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x93, 0x36, 0x6b, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x4f, 0xb8, 0xcd, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x99, 0x37, 0x6b, 0xc3, 0x9f, 0x4b, 0x03, 0xde, 0x1d, 0xda, 0xbb, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xa3, 0x9b, 0x75, 0x70, 0x6c, 0x75, 0xad, 0xd5, 0xe0, 0xa1, 0x3b, 0x41, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0x0f, 0xdd, 0x09, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x0b, 0xce, 0xda, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0xdf, 0xac, 0x8e, 0x8d, 0x2d, 0x0f, 0x04, 0x2e, 0x4c, 0x6e, 0xae, 0x8c, 0x0c, 0xa4, 0x4e, 0x8e, 0x6d, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0x1a, 0x67, 0x6d, 0xf8, 0x73, 0x69, 0x70, 0x78, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x83, 0x38, 0x6b, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x46, 0x39, 0xeb, 0xa0, 0x6c, 0xc2, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xeb, 0x39, 0xeb, 0xe0, 0xa8, 0x0d, 0xda, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x01, 0xd7, 0x59, 0x1b, 0xfe, 0x5c, 0x1a, 0x3c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xa3, 0xce, 0xda, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0xd4, 0xce, 0x3a, 0x08, 0x29, 0x93, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x73, 0xbf, 0xb3, 0x0e, 0xce, 0xb3, 0xa3, 0x75, 0x38, 0xc5, 0x16, 0xf0, 0xd2, 0xe0, 0xc2, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0xc0, 0x4b, 0x83, 0x0b, 0x1b, 0xc0, 0x1f, 0x2e, 0x4c, 0x6e, 0xae, 0x0c, 0x24, 0x0d, 0x0e, 0x24, 0x8c, 0x8c, 0x4c, 0xae, 0x6c, 0x6e, 0x6e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x96, 0x3c, 0x6b, 0x83, 0x15, 0x42, 0x4d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0x19, 0x68, 0x1d, 0xac, 0x07, 0x06, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xdd, 0x3e, 0x6b, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0xe6, 0x67, 0x1d, 0xac, 0x40, 0x5b, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xbf, 0x3f, 0x6b, 0xc3, 0x1b, 0x77, 0x07, 0x8f, 0xee, 0x4c, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x30, 0x40, 0x6b, 0xc3, 0xdb, 0x3a, 0x03, 0x5a, 0x1a, 0x1c, 0xad, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x93, 0xd0, 0xb3, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc6, 0x7a, 0xd6, 0xc1, 0x0a, 0xb4, 0xd5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xcb, 0xde, 0xb3, 0x36, 0xbc, 0x71, 0x77, 0xf0, 0xc8, 0xd1, 0xc4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xeb, 0xe5, 0xb3, 0x36, 0xbc, 0xad, 0x33, 0xa0, 0xa5, 0xc1, 0xd9, 0xea, 0x70, 0x8a, 0xad, 0xc1, 0x83, 0xc0, 0x13, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x1e, 0x04, 0x9e, 0xd8, 0x00, 0x78, 0x27, 0x57, 0x16, 0x57, 0x57, 0x36, 0x47, 0x07, 0xf2, 0x26, 0x97, 0x76, 0x96, 0xe6, 0x06, 0x12, 0x36, 0x07, 0x32, 0x07, 0x57, 0x36, 0x96, 0x66, 0x96, 0x56, 0x46, 0x06, 0x92, 0xe6, 0x06, 0x12, 0xe6, 0x06, 0xf2, 0x24, 0x97, 0x76, 0x96, 0xe6, 0x06, 0x82, 0x56, 0x16, 0x46, 0x56, 0x26, 0xb7, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0x20, 0xf0, 0xc4, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x8c, 0x05, 0xad, 0x0d, 0x5f, 0xd4, 0x6c, 0xa8, 0xe3, 0x07, 0xcf, 0x76, 0xd0, 0x5a, 0x0d, 0x9e, 0x7f, 0xb4, 0xb8, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xf0, 0xfc, 0xa3, 0xc5, 0x06, 0xa0, 0x2d, 0x08, 0x44, 0xae, 0x8e, 0xad, 0x0c, 0x84, 0xee, 0x0d, 0xa4, 0x2d, 0x8c, 0x6e, 0x0c, 0x0d, 0x24, 0x0c, 0x04, 0x2e, 0x8c, 0x0e, 0xcd, 0xad, 0x04, 0xc0, 0x13, 0x41, 0x20, 0x2b, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x20, 0x41, 0x20, 0x2b, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0xe7, 0x12, 0x00, 0x3d, 0xb4, 0xd5, 0xcd, 0xd1, 0x81, 0x88, 0x95, 0x81, 0xcc, 0xe5, 0xcd, 0xd1, 0x95, 0xb5, 0x81, 0xd4, 0xb9, 0xa5, 0xc5, 0xd5, 0x95, 0x81, 0x88, 0x95, 0x8d, 0x85, 0xd5, 0xcd, 0x95, 0x81, 0xdc, 0x95, 0x81, 0x90, 0xbd, 0xb9, 0x9d, 0xd0, 0x81, 0xdc, 0x85, 0xb9, 0xd1, 0x81, 0xd0, 0xdd, 0xbd, 0x81, 0xa0, 0x85, 0xb9, 0x91, 0xb1, 0x95, 0xc9, 0xcd, 0x81, 0x98, 0xbd, 0xc9, 0x81, 0x84, 0x81, 0xc0, 0x85, 0xd1, 0xa1, 0xed, 0x25, 0x00, 0x9d, 0xef, 0xd0, 0xc2, 0xe8, 0x40, 0xd0, 0xc2, 0xe0, 0xe0, 0xca, 0xdc, 0xe6, 0x40, 0xd2, 0xcc, 0x40, 0xe8, 0xd0, 0xca, 0xe4, 0xca, 0x40, 0xc2, 0xe4, 0xca, 0x40, 0xe8, 0xee, 0xde, 0x40, 0xc8, 0xd2, 0xcc, 0xcc, 0xca, 0xe4, 0xca, 0xdc, 0xe8, 0x40, 0xc2, 0xc6, 0xe8, 0xd2, 0xde, 0xdc, 0xe6, 0x40, 0xcc, 0xde, 0xe4, 0x40, 0xb6, 0xfc, 0x40, 0x5e, 0xba, 0x7e, 0x6d, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0x3c, 0xff, 0x68, 0x71, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x5d, 0x42, 0x6b, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0x5f, 0x68, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0x80, 0x3e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x20, 0x61, 0x20, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0xae, 0x0d, 0x7f, 0x2e, 0x0d, 0xf8, 0x73, 0x69, 0x74, 0xe5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x59, 0x85, 0xd6, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xdf, 0x86, 0xd6, 0x41, 0xd9, 0x84, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x27, 0x88, 0xd6, 0xc1, 0x79, 0x76, 0xb4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x7b, 0x50, 0xb4, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xc0, 0xc3, 0x17, 0xbf, 0xb6, 0xbc, 0x30, 0x38, 0x38, 0x90, 0xbb, 0x34, 0x36, 0x36, 0x90, 0xb6, 0x30, 0xba, 0x31, 0x34, 0x90, 0x17, 0xbf, 0xb6, 0xbc, 0x30, 0x38, 0x38, 0x90, 0x37, 0x39, 0x90, 0x17, 0xbf, 0xb6, 0xbc, 0x30, 0x38, 0xb8, 0x17, 0xb6, 0x37, 0xb7, 0xb3, 0x32, 0xb9, 0x17, 0xb8, 0x30, 0x3a, 0xb4, 0x0d, 0x7f, 0x2e, 0x6d, 0x70, 0x30, 0xfd, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x2d, 0xd1, 0xda, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x5e, 0xd1, 0x3a, 0x08, 0x29, 0x93, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xd3, 0x61, 0xb4, 0x0e, 0xce, 0xb3, 0xa3, 0x75, 0x38, 0xc5, 0x16, 0xf0, 0xd1, 0xc2, 0xe8, 0xca, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0x67, 0x5d, 0x33, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0xdf, 0x68, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0xcb, 0x5c, 0x59, 0x5b, 0x5a, 0xcb, 0xd8, 0xdb, 0xdb, 0x5a, 0x19, 0x19, 0x88, 0x5c, 0x59, 0x5c, 0x5d, 0xd9, 0x1c, 0xdd, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xe7, 0xd1, 0xda, 0xf0, 0xe7, 0xd2, 0xe0, 0xf0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x97, 0x8e, 0xd6, 0xc1, 0x2b, 0xb9, 0x15, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x1f, 0xd2, 0xda, 0xf0, 0xe7, 0xd2, 0xe0, 0xf1, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x5a, 0x90, 0xd6, 0xc1, 0xb1, 0xd5, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x44, 0x26, 0xad, 0x0d, 0x7f, 0x2e, 0x0d, 0x2e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0x27, 0x69, 0x6d, 0xf8, 0x77, 0x7e, 0x0d, 0xde, 0x3d, 0xc1, 0x58, 0xad, 0x80, 0x2f, 0xf7, 0x56, 0x47, 0x6f, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xbc, 0x34, 0x9d, 0x71, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x5d, 0x4a, 0x6b, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x7d, 0x34, 0x3a, 0x3a, 0x38, 0x10, 0xb9, 0xb7, 0x3a, 0xba, 0x32, 0x10, 0x14, 0xb7, 0xb2, 0xbb, 0xd4, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0xc0, 0xd2, 0xda, 0xf0, 0xe7, 0xd2, 0xe0, 0xf0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x62, 0x95, 0xd6, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xe9, 0x96, 0xd6, 0x41, 0x48, 0x99, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xfe, 0xa5, 0xb5, 0xe1, 0xdf, 0xf9, 0x35, 0x78, 0x21, 0x17, 0x57, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xb9, 0x99, 0xd6, 0x86, 0x3f, 0x97, 0x06, 0x8f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xa3, 0xc8, 0xb4, 0x0e, 0xce, 0x48, 0xa8, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0xb5, 0x69, 0x6d, 0xf8, 0x73, 0x69, 0x70, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x5a, 0x4d, 0x6b, 0xc3, 0xbf, 0xf3, 0x0b, 0xf8, 0x6f, 0x72, 0x79, 0x78, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x55, 0xa7, 0xb5, 0xe1, 0xcf, 0xa5, 0xc1, 0xe7, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x5e, 0x39, 0xad, 0x83, 0x33, 0x12, 0x6a, 0xb3, 0x00, 0x1e, 0x68, 0x74, 0x74, 0x70, 0x2d, 0x72, 0x75, 0x6c, 0xe5, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0xcb, 0x05, 0x1a, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xb3, 0xf5, 0xb4, 0x36, 0x08, 0xda, 0x9f, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x73, 0xfd, 0xb4, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x54, 0xa0, 0xd6, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x5e, 0xce, 0xa7, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x54, 0xa2, 0xd6, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x39, 0x9f, 0xd6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xaf, 0xa1, 0xd6, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x38, 0xa3, 0xd6, 0x41, 0xd9, 0x84, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x85, 0xa4, 0xd6, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xba, 0xd4, 0xda, 0xf0, 0xe7, 0xd2, 0x06, 0x45, 0xeb, 0xc9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x2c, 0xa5, 0xd6, 0xc1, 0x53, 0x4d, 0x17, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0xee, 0xd4, 0xda, 0xf0, 0xe7, 0xd2, 0x06, 0x2f, 0xe7, 0xd3, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xd9, 0xd4, 0x3a, 0x78, 0xaa, 0xe9, 0x62, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x87, 0xa8, 0xd6, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x25, 0xd5, 0xda, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0x4b, 0xd8, 0x83, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x65, 0xd5, 0xda, 0xf0, 0xe7, 0xd2, 0x00, 0x5f, 0xd8, 0x18, 0x5d, 0xda, 0x9b, 0xbb, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xa2, 0xaa, 0xb5, 0x41, 0xb0, 0x99, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x0a, 0xab, 0x75, 0xf0, 0xb0, 0xe3, 0xc4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x13, 0x6a, 0xb5, 0x0e, 0x5e, 0xe0, 0xce, 0xd7, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xd5, 0xbc, 0x5a, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x25, 0xec, 0x41, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x3d, 0xba, 0x5a, 0x1b, 0xfe, 0x9d, 0x5f, 0x83, 0x97, 0xb0, 0x07, 0x55, 0xad, 0x80, 0x8f, 0xf6, 0xb6, 0x56, 0x6e, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xbc, 0x44, 0xa5, 0x71, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x83, 0x58, 0x6b, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xf5, 0x58, 0xeb, 0x60, 0x15, 0x64, 0xf2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x35, 0xcd, 0x5a, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xf8, 0xb0, 0xbd, 0x8d, 0x85, 0xb1, 0x81, 0xa0, 0xbd, 0xcd, 0xd1, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xea, 0x67, 0xad, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0xbc, 0x30, 0x58, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xb2, 0x6a, 0xad, 0x83, 0x10, 0x7c, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x68, 0x6d, 0xad, 0x0d, 0x82, 0xcd, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xf8, 0x6e, 0xad, 0x0d, 0x19, 0xf0, 0x81, 0x4f, 0x33, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x20, 0x5c, 0x6b, 0x43, 0x06, 0x7c, 0xe0, 0xd3, 0xcc, 0x83, 0xc7, 0x63, 0x6b, 0xd5, 0x2c, 0xe0, 0xc3, 0xc9, 0xbd, 0xe1, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0xef, 0xee, 0x69, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x45, 0xd7, 0xda, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xa5, 0xed, 0x5a, 0x1b, 0xfe, 0x5c, 0x1a, 0xf0, 0xe0, 0xde, 0xe4, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x8c, 0x75, 0xad, 0x83, 0x32, 0x4b, 0x77, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x0a, 0x7a, 0xad, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x73, 0x65, 0xeb, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x63, 0xbc, 0xd6, 0xe1, 0x83, 0xd5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xd3, 0xf4, 0xb5, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0x0a, 0x41, 0xdb, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xee, 0x7b, 0xad, 0x83, 0xe7, 0xde, 0x83, 0x74, 0x38, 0xc5, 0x5a, 0x83, 0x57, 0xfa, 0x33, 0x6e, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xbc, 0xd2, 0x9f, 0x71, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xf8, 0x5f, 0x6b, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xaf, 0xa1, 0x29, 0x29, 0x23, 0x90, 0xb9, 0xb2, 0x31, 0xb9, 0x32, 0xba, 0x83, 0xf3, 0xec, 0xe8, 0xe1, 0x14, 0x5b, 0x83, 0x17, 0x72, 0x71, 0x6d, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xbc, 0x90, 0x8b, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x8e, 0x60, 0x6b, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x0f, 0x34, 0x3a, 0x3a, 0x38, 0x10, 0xb4, 0xb7, 0x39, 0xba, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x02, 0x84, 0xad, 0x83, 0x55, 0x90, 0xc9, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0x31, 0x6c, 0x1d, 0xbc, 0x1c, 0xa5, 0x71, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x5a, 0x88, 0xad, 0x83, 0xc3, 0x7d, 0x6b, 0x87, 0x53, 0x6c, 0x01, 0x7c, 0xca, 0xc2, 0xea, 0xe8, 0xd0, 0x5a, 0xc4, 0xde, 0xde, 0xdc, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xa7, 0x7b, 0x35, 0x36, 0x00, 0x8f, 0x68, 0x6f, 0x73, 0x74, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0x4f, 0xf7, 0x6a, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xc7, 0xd8, 0xda, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x6d, 0x1b, 0x5b, 0x07, 0x21, 0x9d, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc7, 0xc7, 0xd6, 0x06, 0x41, 0xfb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc5, 0xc8, 0xd6, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x2d, 0xd9, 0xda, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0x53, 0x42, 0xb6, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x6e, 0xd9, 0xda, 0xf0, 0xe7, 0xd2, 0x06, 0x4f, 0xa9, 0x57, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x59, 0xd9, 0x3a, 0x38, 0x83, 0xaf, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x44, 0xb3, 0xb5, 0xe1, 0xcf, 0xa5, 0x01, 0xaf, 0x4e, 0x8e, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x8d, 0xd9, 0x3a, 0x38, 0xcf, 0x8e, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x5f, 0xce, 0xd6, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0xe0, 0xd9, 0x3a, 0x78, 0x59, 0xc0, 0xe2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x7d, 0x42, 0x5b, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x29, 0xf5, 0x8a, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xed, 0x3f, 0x5b, 0x07, 0x67, 0xf0, 0xd5, 0x6a, 0x35, 0x78, 0x3b, 0xa2, 0xcb, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0x47, 0x86, 0xd0, 0x83, 0xb7, 0x23, 0xba, 0x34, 0x80, 0xb7, 0xd1, 0xd0, 0x51, 0x12, 0x08, 0x5c, 0x98, 0x5c, 0x58, 0x5b, 0x19, 0x5d, 0x99, 0xdc, 0xdc, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0xdb, 0x11, 0x5d, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x73, 0x91, 0xb6, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x6f, 0xd3, 0xd6, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x4f, 0x5c, 0x5d, 0x99, 0x5c, 0xde, 0x86, 0x3f, 0x97, 0x36, 0x58, 0x21, 0xc2, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xb3, 0xb4, 0xb5, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x15, 0xb5, 0x75, 0x50, 0x22, 0xd6, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x67, 0xb5, 0x75, 0x70, 0x9e, 0x1d, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x6f, 0x6b, 0xeb, 0xe0, 0x3c, 0x3b, 0xda, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x25, 0x63, 0x5b, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xf0, 0x31, 0xc6, 0x96, 0x56, 0xe6, 0x46, 0x07, 0x32, 0x26, 0x57, 0x46, 0x56, 0xe6, 0x46, 0x97, 0x16, 0xc6, 0x36, 0xb7, 0xe1, 0xcf, 0xa5, 0x01, 0x6f, 0xac, 0x8c, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x04, 0xdb, 0xda, 0xf0, 0xef, 0xfc, 0x1a, 0xbc, 0xd4, 0x26, 0xa8, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x55, 0xdb, 0xda, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0xf3, 0x4d, 0x2e, 0xed, 0x2c, 0xcd, 0x2d, 0x8c, 0x0d, 0x04, 0x2e, 0x8c, 0x0e, 0x6d, 0xc3, 0x9f, 0x4b, 0x03, 0x9e, 0x58, 0x59, 0xbb, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x82, 0xb6, 0x75, 0xf0, 0x94, 0xe0, 0x90, 0x56, 0x80, 0x87, 0x2e, 0xad, 0xad, 0x4c, 0xde, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x78, 0xd8, 0x67, 0x63, 0x03, 0xa0, 0x69, 0x18, 0x88, 0x5c, 0x99, 0x59, 0x99, 0x5c, 0x99, 0xdb, 0x58, 0x19, 0x08, 0xdd, 0x1b, 0x48, 0x18, 0x08, 0x5d, 0x5a, 0x5b, 0x99, 0x1c, 0xc8, 0xdc, 0x1b, 0xc8, 0x5d, 0x19, 0xc8, 0x58, 0x98, 0x1b, 0xc8, 0x58, 0x98, 0xdb, 0x58, 0x19, 0x1b, 0xc8, 0x9b, 0x1c, 0x48, 0x1d, 0x1c, 0x59, 0x18, 0x5d, 0x19, 0x48, 0x1a, 0x9d, 0x6b, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0x61, 0x9f, 0x8d, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x39, 0x71, 0x5b, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xc7, 0x6e, 0x6b, 0xc3, 0x9f, 0x4b, 0x1b, 0x9c, 0x45, 0x51, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x63, 0xe7, 0xb6, 0x0e, 0x8e, 0x7c, 0xad, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0xf5, 0x6d, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0x97, 0xa9, 0x7b, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0xeb, 0x6d, 0x1d, 0x3c, 0x3d, 0xdd, 0xa3, 0xd5, 0xe0, 0x11, 0x6f, 0x89, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0x8f, 0x78, 0x4b, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x16, 0xdc, 0xda, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0x07, 0xb9, 0xb0, 0x3b, 0x10, 0x34, 0x3a, 0x3a, 0x38, 0x10, 0xb9, 0xb2, 0x39, 0xb8, 0x37, 0xb7, 0xb9, 0xb2, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x80, 0xb8, 0xb5, 0xe1, 0xcf, 0xa5, 0xc1, 0xe1, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xba, 0xc2, 0xad, 0x83, 0x32, 0x4b, 0x77, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x3e, 0xc7, 0xad, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0x2f, 0x6e, 0x6d, 0xf8, 0x77, 0x7e, 0x0d, 0x5e, 0xe0, 0x10, 0x54, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0x58, 0x6e, 0x6d, 0xf8, 0x73, 0x69, 0x70, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x70, 0x72, 0x6b, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x35, 0x73, 0xeb, 0xa0, 0x6c, 0xc2, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xbe, 0x73, 0xeb, 0xe0, 0xe9, 0xe7, 0x72, 0x35, 0x0b, 0xe0, 0x71, 0x56, 0xe6, 0x56, 0x26, 0x17, 0x46, 0xf7, 0x26, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xbc, 0x1e, 0xb9, 0xb1, 0x01, 0xf0, 0x32, 0x0c, 0xe4, 0xac, 0xcc, 0xad, 0x4c, 0x2e, 0x8c, 0xee, 0x4d, 0x0e, 0xe4, 0xcd, 0x0d, 0x84, 0x0e, 0xad, 0x0c, 0x84, 0xed, 0x6d, 0x2c, 0x8c, 0x0d, 0x64, 0x0e, 0x2d, 0x0d, 0x0e, 0x84, 0x0e, 0x2d, 0x8c, 0x0e, 0x04, 0x2d, 0xcc, 0x8d, 0x8c, 0xad, 0x6c, 0x0e, 0x44, 0xae, 0x2c, 0xae, 0xae, 0x6c, 0x8e, 0x6e, 0x5e, 0x09, 0xc0, 0x7b, 0x2a, 0xb4, 0xb4, 0x39, 0x10, 0xb9, 0x32, 0xb3, 0x32, 0xb9, 0x39, 0x10, 0xba, 0x37, 0x90, 0x30, 0x90, 0xb3, 0x32, 0xb7, 0x32, 0xb9, 0x30, 0xba, 0x37, 0x39, 0x90, 0x37, 0x37, 0x10, 0x3a, 0xb4, 0x32, 0x10, 0xb6, 0xb7, 0xb1, 0x30, 0x36, 0x90, 0x39, 0xb4, 0x34, 0x38, 0x16, 0x10, 0xb9, 0x3a, 0x37, 0x90, 0xbb, 0x34, 0x3a, 0x34, 0x90, 0x30, 0x90, 0xb9, 0x32, 0x3a, 0x90, 0x37, 0x73, 0x09, 0x80, 0x2f, 0xc2, 0xe4, 0xce, 0xea, 0xda, 0xca, 0xdc, 0xe8, 0xe6, 0x5c, 0x40, 0xa6, 0xd2, 0xdc, 0xc6, 0xca, 0x40, 0xd0, 0xe8, 0xe8, 0xe0, 0x40, 0xe4, 0xca, 0xe2, 0xea, 0xca, 0xe6, 0xe8, 0xe6, 0x40, 0xc2, 0xe4, 0xca, 0x40, 0xe8, 0xd2, 0xda, 0xca, 0x40, 0xe6, 0xca, 0xdc, 0xe6, 0xd2, 0xe8, 0xd2, 0xec, 0xca, 0x58, 0x40, 0xee, 0xca, 0x40, 0xe4, 0xca, 0xe2, 0xea, 0xd2, 0xe4, 0xca, 0x40, 0xe8, 0xd0, 0xc2, 0xe8, 0x40, 0xe8, 0xd0, 0xca, 0x25, 0x00, 0x0d, 0xce, 0xca, 0xdc, 0xca, 0xe4, 0xc2, 0xe8, 0xde, 0xe4, 0x40, 0xc4, 0xca, 0x40, 0xde, 0xdc, 0x40, 0xe8, 0xd0, 0xca, 0x40, 0xc6, 0xea, 0xe4, 0xe4, 0xca, 0xdc, 0xe8, 0x40, 0xe6, 0xd0, 0xd2, 0xe0, 0x5c, 0x6d, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xbc, 0x1e, 0xb9, 0x71, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x6b, 0x74, 0x6b, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0xa1, 0x6e, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0x37, 0xe3, 0x85, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x47, 0x97, 0x6e, 0x1d, 0x3c, 0x0a, 0x2f, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x66, 0xd7, 0xad, 0x0d, 0x7f, 0x2e, 0x6d, 0x70, 0x30, 0xfd, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x62, 0xdd, 0xda, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x92, 0xdd, 0x3a, 0x08, 0x29, 0x93, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xf3, 0x6e, 0xb7, 0x0e, 0xce, 0xb3, 0xa3, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xf1, 0xbb, 0xb5, 0xe1, 0xcf, 0xa5, 0x0d, 0x5e, 0xcf, 0x69, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xc9, 0xbb, 0x75, 0x10, 0xa6, 0x63, 0x1d, 0x4e, 0xb1, 0x05, 0xf0, 0x1c, 0x43, 0x0b, 0x73, 0x73, 0x2b, 0x63, 0x6b, 0x99, 0xa3, 0x0b, 0xa3, 0x2b, 0x37, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x1e, 0xad, 0xdf, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x3a, 0xbc, 0xb5, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x73, 0x91, 0xb7, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0x33, 0xcf, 0x16, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x4b, 0x8c, 0xb7, 0x36, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x8b, 0x98, 0xb7, 0x0e, 0x4a, 0xc4, 0xfa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xe3, 0xa2, 0xb7, 0x0e, 0xce, 0xb3, 0xa3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0x56, 0x6f, 0x6d, 0xf8, 0x77, 0x7e, 0x0d, 0xde, 0x92, 0xc3, 0x55, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xcf, 0xbd, 0xb5, 0xe1, 0xcf, 0xa5, 0x01, 0xbc, 0xc8, 0xea, 0xc6, 0xe8, 0x5a, 0xe8, 0xde, 0x5a, 0xd6, 0xca, 0xf2, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x34, 0xed, 0xad, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x44, 0xf0, 0xad, 0x83, 0x12, 0xb1, 0x7e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x6a, 0xf2, 0xad, 0x83, 0xa7, 0xa7, 0x7b, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x93, 0xbe, 0x75, 0x70, 0x9e, 0x1d, 0xad, 0xd5, 0xe0, 0xa5, 0x1f, 0x8d, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0x2f, 0xfd, 0x68, 0x6c, 0x00, 0x3c, 0xa7, 0x43, 0x2b, 0x03, 0x09, 0x1b, 0xa3, 0x4b, 0x7b, 0x73, 0x03, 0xa1, 0x7b, 0x03, 0xa1, 0x0b, 0x5b, 0x2b, 0x03, 0xb9, 0x43, 0x2b, 0x73, 0x03, 0x09, 0x03, 0x11, 0x4b, 0x73, 0x23, 0x4b, 0x73, 0x3b, 0x03, 0x69, 0x0b, 0xa3, 0x1b, 0x43, 0x2b, 0x9b, 0x03, 0x09, 0x73, 0x03, 0x49, 0x73, 0x1b, 0x7b, 0x6b, 0x4b, 0x73, 0x3b, 0x03, 0x91, 0x2b, 0x8b, 0xab, 0x2b, 0x9b, 0xa3, 0xdb, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0xe9, 0x47, 0xe3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x2a, 0xfc, 0xd6, 0x06, 0x41, 0xfb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x1a, 0xfd, 0xd6, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xb7, 0xdf, 0xda, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0xf3, 0x14, 0x52, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0xfb, 0x6f, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0xd7, 0x23, 0x37, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0xf1, 0x6f, 0x6d, 0xf8, 0x77, 0x7e, 0x0d, 0x5e, 0x8f, 0xdc, 0x58, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x4c, 0xc0, 0xb5, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xab, 0x0e, 0xb8, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x17, 0x78, 0x61, 0x70, 0xf0, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x51, 0x0f, 0x5c, 0x1b, 0xfe, 0x5c, 0x1a, 0xf0, 0xc2, 0xe0, 0xe0, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x60, 0x06, 0xae, 0x83, 0xf5, 0x5a, 0xcf, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x52, 0xc1, 0xb5, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x7b, 0x2f, 0xb8, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xf0, 0x02, 0x09, 0xae, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x5b, 0x3a, 0xb8, 0x0e, 0x42, 0xf0, 0xa1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x93, 0x43, 0xb8, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x17, 0x09, 0xd7, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0xde, 0xfc, 0xc1, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x73, 0x0a, 0xd7, 0x41, 0x08, 0x3e, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xa2, 0x0b, 0xd7, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x88, 0xe1, 0xda, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0xdb, 0x58, 0xb8, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xb4, 0xe1, 0x3a, 0x08, 0xc1, 0x87, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xdb, 0xe1, 0xda, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xfd, 0x3d, 0x5c, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x78, 0x4b, 0x0e, 0xd7, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x6d, 0x43, 0x5c, 0x07, 0x21, 0xf8, 0xd0, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xbd, 0x47, 0x5c, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x4a, 0x89, 0x6b, 0x43, 0x06, 0xfc, 0xe0, 0x3d, 0xac, 0x2d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0x3e, 0x71, 0x1d, 0x84, 0xe0, 0x43, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0x4d, 0x71, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x08, 0x2b, 0xae, 0x83, 0xe5, 0x32, 0xdf, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0x67, 0x71, 0x1d, 0x84, 0xe0, 0x43, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0x79, 0x71, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x76, 0x30, 0xae, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0xbc, 0x90, 0x8b, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x2c, 0x33, 0xae, 0x83, 0x10, 0x7c, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x10, 0x35, 0xae, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xcb, 0xc6, 0xb5, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x17, 0x5b, 0xaf, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x22, 0xc7, 0x75, 0x10, 0x82, 0x0f, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x6f, 0xc7, 0xb5, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x23, 0xf3, 0xb8, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xf0, 0x60, 0x3a, 0xae, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x03, 0xfe, 0xb8, 0x0e, 0x42, 0xf0, 0xa1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x0b, 0x04, 0xb9, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x26, 0x21, 0xd7, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x1e, 0xdb, 0xbe, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x88, 0x22, 0xd7, 0x41, 0x08, 0x3e, 0xd4, 0xe1, 0x14, 0x6b, 0x01, 0xf8, 0x7a, 0xab, 0xa3, 0x9b, 0xa3, 0x0b, 0x73, 0x23, 0x4b, 0x73, 0x3b, 0x6b, 0x19, 0x7b, 0x73, 0x73, 0x2b, 0x1b, 0xa3, 0x4b, 0x7b, 0x73, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x9e, 0x8e, 0xe6, 0xd8, 0x00, 0x68, 0xf4, 0x06, 0x57, 0xe6, 0x06, 0x82, 0x46, 0x47, 0x07, 0x07, 0x32, 0xf6, 0xe6, 0xe6, 0x56, 0x36, 0x46, 0x97, 0xf6, 0xe6, 0x36, 0x07, 0xe2, 0xf6, 0x46, 0x07, 0x62, 0x56, 0xc7, 0xc6, 0x96, 0x07, 0x32, 0xf6, 0xd6, 0x06, 0xc7, 0x56, 0x46, 0x57, 0xa6, 0x57, 0x02, 0xf0, 0x9d, 0x0a, 0x2d, 0x6d, 0x0e, 0x44, 0xae, 0xcc, 0xac, 0x4c, 0x6e, 0x0e, 0x84, 0xee, 0x0d, 0xe4, 0xad, 0x8e, 0x6e, 0x8e, 0x2e, 0xcc, 0x8d, 0x2c, 0xcd, 0xed, 0x0c, 0x64, 0xec, 0xcd, 0xcd, 0xad, 0x6c, 0x8c, 0x2e, 0xed, 0xcd, 0x6d, 0x0e, 0xe4, 0x0e, 0xad, 0x4c, 0xae, 0x0c, 0x84, 0x0e, 0xad, 0x0c, 0x64, 0xec, 0xcd, 0xcd, 0xad, 0x6c, 0x8c, 0x2e, 0xed, 0xcd, 0x0d, 0x84, 0xee, 0x5d, 0x02, 0xf0, 0xfa, 0xad, 0x8e, 0x6e, 0x2e, 0x8d, 0xac, 0x0c, 0x24, 0x6d, 0x0e, 0xe4, 0x0d, 0xae, 0xcc, 0xad, 0x8c, 0x0c, 0x24, 0xcc, 0x8d, 0x0c, 0xe4, 0xae, 0x0c, 0x24, 0x4c, 0xae, 0x0c, 0x64, 0xac, 0x4e, 0x4e, 0xae, 0xcc, 0x8d, 0x8e, 0x2d, 0x0f, 0xe4, 0x2e, 0x2c, 0x8d, 0x2e, 0xcd, 0xed, 0x0c, 0xe4, 0xcd, 0x0d, 0x24, 0xcc, 0x0d, 0x24, 0x0c, 0x0e, 0x0e, 0x84, 0xee, 0x5d, 0x02, 0xe8, 0x81, 0x93, 0x7b, 0x23, 0xab, 0x1b, 0x2b, 0x03, 0xa1, 0x43, 0x2b, 0x03, 0x91, 0x2b, 0x9b, 0xab, 0x63, 0xa3, 0x9b, 0x73, 0xb5, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0x74, 0x34, 0xc7, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x04, 0x49, 0xae, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x70, 0xc9, 0xb5, 0xe1, 0xcf, 0xa5, 0x0d, 0x5e, 0xfa, 0xd1, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x48, 0xc9, 0xb5, 0xe1, 0xdf, 0xf9, 0x35, 0x78, 0xe9, 0x47, 0x63, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xed, 0xc9, 0xb5, 0xe1, 0xcf, 0xa5, 0x01, 0xbc, 0xd3, 0xdc, 0xc4, 0xde, 0xea, 0xdc, 0xc8, 0x5a, 0xe4, 0xca, 0xe2, 0xea, 0xca, 0xe6, 0xe8, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x26, 0x4e, 0xae, 0x0d, 0xff, 0xce, 0xaf, 0xc1, 0x13, 0x1e, 0x1d, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x14, 0x52, 0xae, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x95, 0xca, 0xb5, 0xe1, 0xcf, 0xa5, 0x01, 0x7c, 0xe6, 0xca, 0xe6, 0xe6, 0xd2, 0xde, 0xdc, 0x5a, 0xd2, 0xc8, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x60, 0x53, 0xae, 0x83, 0x33, 0xf8, 0xea, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x09, 0xb2, 0x5c, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x84, 0x70, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xf7, 0xca, 0xb5, 0xe1, 0xdf, 0xf9, 0x0d, 0xce, 0x07, 0x67, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x87, 0x2e, 0xd7, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x16, 0x09, 0xdd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xe2, 0x2d, 0xd7, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x6a, 0x2f, 0xd7, 0x41, 0xd9, 0x84, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x7b, 0x30, 0xd7, 0xc1, 0xd3, 0xc0, 0x11, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x24, 0x99, 0x6b, 0xc3, 0x9f, 0x4b, 0x03, 0xf8, 0x88, 0xe5, 0xd1, 0x95, 0xcd, 0xb5, 0xcc, 0x95, 0xb9, 0xd1, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x95, 0xc6, 0x5c, 0x07, 0x65, 0x96, 0x6e, 0xab, 0xc1, 0x8b, 0xad, 0x57, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x5e, 0x6c, 0xbd, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x04, 0xcd, 0xb5, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x7b, 0xa5, 0xb9, 0x0e, 0x02, 0x47, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x82, 0x6c, 0xae, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x60, 0x3a, 0xae, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x3a, 0x6b, 0xae, 0x83, 0xb6, 0xad, 0xc7, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xfb, 0xe6, 0xda, 0xf0, 0xe7, 0xd2, 0x80, 0x2f, 0x97, 0x66, 0x46, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0x73, 0x73, 0x6d, 0xf8, 0x77, 0x7e, 0x0d, 0x5e, 0x44, 0xeb, 0x58, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0x9b, 0x73, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0xc7, 0xd8, 0xd8, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0x91, 0x73, 0x6d, 0xf8, 0x77, 0x7e, 0x0d, 0x1e, 0x63, 0x63, 0x57, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x47, 0xbc, 0x73, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0x57, 0xe8, 0x84, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0xb2, 0x73, 0x6d, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0xca, 0x73, 0x1d, 0x94, 0x4d, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0xde, 0x73, 0x6d, 0xf8, 0xa2, 0x66, 0x43, 0x1d, 0x3f, 0x78, 0xe0, 0x3e, 0x57, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0x0a, 0x74, 0x6d, 0xf8, 0x73, 0x69, 0x00, 0x1f, 0xb6, 0xb0, 0x39, 0xba, 0x96, 0xb0, 0xb1, 0xb5, 0x32, 0x72, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x01, 0xa0, 0x6b, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xc5, 0xa0, 0xeb, 0xa0, 0x6c, 0xc2, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x6a, 0xa1, 0x6b, 0xc3, 0x17, 0x35, 0x1b, 0xea, 0xf8, 0xc1, 0x33, 0x1e, 0xba, 0x6a, 0x35, 0x78, 0xe6, 0xd9, 0xe2, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0x33, 0xcf, 0x16, 0x1b, 0x80, 0xff, 0xb9, 0x32, 0x39, 0xbb, 0x32, 0x39, 0x90, 0xb9, 0x34, 0xb2, 0x32, 0x10, 0xb2, 0x30, 0xba, 0x30, 0x90, 0x30, 0xb1, 0xb7, 0x3a, 0x3a, 0x90, 0x30, 0x90, 0xb9, 0xb2, 0xb9, 0xb9, 0xb4, 0x37, 0xb7, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0x67, 0x9e, 0x2d, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0x58, 0x74, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x90, 0x8d, 0xae, 0x0d, 0x7f, 0x2e, 0x6d, 0x70, 0x42, 0x38, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xc4, 0xe8, 0x3a, 0x78, 0x35, 0xa7, 0xe3, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x2d, 0x22, 0x5d, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xa0, 0x39, 0xdd, 0x1b, 0x08, 0x9c, 0xdc, 0x1b, 0x5c, 0x99, 0x1c, 0x5b, 0x1e, 0x08, 0x5a, 0x98, 0x1b, 0x19, 0x5b, 0x19, 0xc8, 0xd8, 0xdb, 0xdb, 0x5a, 0x5a, 0x19, 0x48, 0x19, 0x1e, 0x5c, 0x9a, 0x5c, 0x18, 0x5d, 0xda, 0x9b, 0x1b, 0x48, 0xd8, 0x1c, 0x48, 0x18, 0xc8, 0x5c, 0xd9, 0x58, 0x9d, 0x5c, 0x1a, 0x5d, 0x1e, 0x48, 0x5b, 0xd9, 0x18, 0x5a, 0x98, 0x5b, 0xda, 0x5c, 0x9b, 0x6b, 0xc3, 0x9f, 0x4b, 0x03, 0x78, 0x95, 0xe1, 0xc1, 0xa5, 0xc9, 0xe5, 0xb5, 0xd0, 0xa5, 0xb5, 0x95, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x9d, 0x1f, 0x5d, 0x07, 0x47, 0xbe, 0xd6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xcb, 0x52, 0xba, 0x36, 0xfc, 0xb9, 0x34, 0xc0, 0x3f, 0x86, 0x16, 0xe6, 0xe6, 0x56, 0xc6, 0x36, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0x9b, 0x74, 0x6d, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0xb3, 0x74, 0x1d, 0x94, 0x88, 0xef, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0xc8, 0x74, 0x1d, 0x9c, 0x67, 0x47, 0x6b, 0x35, 0x78, 0xc2, 0xa3, 0xe3, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0x13, 0x1e, 0x1d, 0x1b, 0x80, 0xcf, 0x15, 0x34, 0x3a, 0x3a, 0xb8, 0x16, 0xb9, 0xb2, 0xb8, 0xba, 0xb2, 0x39, 0x3a, 0x90, 0x30, 0x37, 0x32, 0x90, 0xb6, 0x32, 0xba, 0x30, 0xb2, 0x30, 0xba, 0xb0, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0x27, 0x3c, 0x3a, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0xe1, 0x74, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xa4, 0x9e, 0xae, 0x0d, 0x7f, 0x2e, 0x0d, 0xe0, 0x19, 0x56, 0x47, 0x87, 0x56, 0xe6, 0x46, 0x97, 0x36, 0x16, 0x46, 0x57, 0x46, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0xea, 0x74, 0x1d, 0x3e, 0x58, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x78, 0xa8, 0x6b, 0xc3, 0x9f, 0x4b, 0x1b, 0x3c, 0xb7, 0x73, 0x71, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x26, 0xa8, 0xeb, 0xf0, 0xc1, 0xea, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x1d, 0x4a, 0x5d, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x3d, 0x92, 0x89, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x91, 0x47, 0x5d, 0x1b, 0xfe, 0x9d, 0x5f, 0x83, 0xf7, 0x48, 0x26, 0xd6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x1d, 0x51, 0x5d, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x95, 0x6c, 0x3d, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x91, 0x4e, 0x5d, 0x07, 0xcf, 0x28, 0x44, 0xec, 0x70, 0x8a, 0xb5, 0x06, 0x6f, 0x8a, 0x1c, 0xd9, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0x53, 0xe4, 0xc8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x42, 0x56, 0xd7, 0x06, 0xa1, 0x86, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xf4, 0x42, 0x32, 0x90, 0xd0, 0x0b, 0x93, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0xbd, 0x10, 0x0d, 0x24, 0xf4, 0x42, 0x7e, 0xf0, 0xfa, 0xef, 0x94, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xa1, 0x17, 0x06, 0x03, 0x09, 0xbd, 0xb0, 0x38, 0x28, 0x28, 0x32, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0xb4, 0xea, 0xda, 0x20, 0x68, 0x7f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9c, 0x5e, 0x48, 0x06, 0x72, 0x7a, 0x61, 0xbc, 0xc1, 0x7a, 0x95, 0xaa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xa7, 0x17, 0xc2, 0x81, 0x9c, 0x5e, 0x58, 0x1c, 0xbc, 0x3f, 0xd8, 0x6f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x91, 0xab, 0xeb, 0xe0, 0x05, 0x02, 0x77, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x5a, 0x2f, 0x24, 0x03, 0x69, 0xbd, 0x30, 0xde, 0x60, 0xbd, 0x4a, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xd6, 0x0b, 0xe1, 0x40, 0x5a, 0x2f, 0x2c, 0x0e, 0xde, 0xe5, 0x6f, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x13, 0xd6, 0x75, 0xf0, 0x02, 0x81, 0xbb, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xb3, 0x17, 0x92, 0x81, 0xcc, 0x5e, 0x18, 0x6f, 0xb0, 0x5e, 0xa5, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xec, 0x85, 0x70, 0x20, 0xb3, 0x17, 0x16, 0x07, 0x8f, 0xd7, 0x1e, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x2e, 0xeb, 0x3a, 0x78, 0x81, 0xc0, 0xdd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xdc, 0x0b, 0xc9, 0x40, 0x72, 0x2f, 0x8c, 0x37, 0x58, 0xaf, 0x52, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xf7, 0x42, 0x38, 0x90, 0xdc, 0x0b, 0x8b, 0x83, 0xd7, 0xdb, 0x7b, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0xaa, 0x75, 0x1d, 0xbc, 0x40, 0xe0, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xef, 0x85, 0x64, 0x20, 0xbf, 0x17, 0xc6, 0x1b, 0xac, 0x57, 0xa9, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x7b, 0x21, 0x1c, 0xc8, 0xef, 0x85, 0xc5, 0xc1, 0x23, 0xc7, 0xee, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x53, 0xde, 0xba, 0x0e, 0x5e, 0x20, 0x70, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xe5, 0x5c, 0xd7, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xb1, 0xeb, 0x3a, 0x78, 0x1e, 0xe0, 0xdf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xd5, 0x7d, 0x5d, 0x1b, 0xfe, 0x5c, 0x1a, 0xe0, 0x4f, 0x73, 0x9b, 0x2b, 0x1b, 0xab, 0x93, 0x2b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x8b, 0xf6, 0xba, 0x0e, 0xca, 0x2c, 0xdd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xa3, 0x08, 0xbb, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0x73, 0x3b, 0x17, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x73, 0x03, 0xbb, 0x36, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xc3, 0x0f, 0xbb, 0x0e, 0xca, 0x26, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x1b, 0x1a, 0xbb, 0x0e, 0xca, 0x2c, 0xdd, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x45, 0xb2, 0x6b, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0x53, 0x76, 0x1d, 0xb4, 0x21, 0xd2, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xcb, 0x66, 0xd7, 0x86, 0x3f, 0x97, 0x36, 0x78, 0xb9, 0x40, 0xe3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x27, 0x66, 0xd7, 0x86, 0x7f, 0xe7, 0xd7, 0xe0, 0xe5, 0x02, 0x8d, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x89, 0xa0, 0x5d, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xc0, 0x03, 0x65, 0x79, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x20, 0x2f, 0x7e, 0x2f, 0x65, 0x61, 0x75, 0x74, 0x68, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x65, 0x61, 0x75, 0x74, 0x68, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x64, 0xb4, 0x6b, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x4f, 0x90, 0x0c, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x64, 0xb5, 0x6b, 0xc3, 0x9f, 0x4b, 0x1b, 0xbc, 0x90, 0x8b, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x12, 0xb5, 0x6b, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xd6, 0xb5, 0xeb, 0xa0, 0x6c, 0xc2, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x7b, 0xb6, 0xeb, 0xe0, 0x3c, 0x3b, 0x5a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0xe3, 0x76, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xca, 0xdd, 0xae, 0x83, 0x97, 0xf3, 0x21, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x20, 0xdc, 0xb5, 0xe1, 0xcf, 0xa5, 0x0d, 0x9e, 0xdb, 0xb9, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xf7, 0xdb, 0x75, 0xf8, 0x60, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x3a, 0xe4, 0xae, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x1e, 0xc9, 0xc4, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xf0, 0xe2, 0xae, 0x83, 0x17, 0x11, 0x3c, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xef, 0xdc, 0xb5, 0xe1, 0xcf, 0xa5, 0x0d, 0x5e, 0xc9, 0xd6, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xc5, 0xdc, 0x75, 0xf0, 0x8c, 0x42, 0xc4, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x96, 0xee, 0xda, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x6d, 0xd5, 0x5d, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x78, 0x22, 0x66, 0xd0, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x7d, 0xdd, 0x5d, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0xb9, 0x9d, 0x8b, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xe5, 0xda, 0x5d, 0x87, 0x0f, 0x56, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x1f, 0xef, 0xda, 0xf0, 0xe7, 0xd2, 0x06, 0xef, 0x91, 0x4c, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x0a, 0xef, 0x3a, 0x78, 0x11, 0xc1, 0xe3, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x69, 0xea, 0x5d, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x95, 0x6c, 0x3d, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xd1, 0xe7, 0x5d, 0x07, 0xcf, 0x28, 0x44, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x26, 0xf7, 0xae, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x0e, 0xdf, 0x75, 0xf0, 0xda, 0x44, 0xc4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x83, 0xe9, 0xbb, 0x0e, 0x42, 0xf0, 0xa1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x13, 0xf1, 0xbb, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc8, 0x7e, 0xd7, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x1e, 0x5e, 0x1a, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xca, 0x80, 0xd7, 0x86, 0x3f, 0x97, 0x36, 0x78, 0xfe, 0xd1, 0xe2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x26, 0x80, 0xd7, 0xc1, 0x53, 0x94, 0x16, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x52, 0xf0, 0xda, 0xf0, 0xe7, 0xd2, 0x80, 0x17, 0x06, 0x07, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0x1e, 0x78, 0x1d, 0xac, 0xd7, 0x7a, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x5e, 0x07, 0xaf, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x15, 0xe1, 0xb5, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x47, 0x52, 0x06, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x95, 0xe1, 0xb5, 0xe1, 0xcf, 0xa5, 0x0d, 0x9e, 0x7f, 0xb4, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x6c, 0xe1, 0x75, 0xf0, 0x14, 0xa5, 0xc5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xab, 0x3f, 0xbc, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0xeb, 0x91, 0x1b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x83, 0x3a, 0xbc, 0x0e, 0xde, 0x7a, 0xe2, 0xd8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x51, 0x24, 0x5e, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xe8, 0xd3, 0xa1, 0x95, 0x81, 0x98, 0xa5, 0xc9, 0xcd, 0xd1, 0x81, 0xc0, 0xb1, 0x85, 0x8d, 0x95, 0xb9, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xb9, 0x89, 0xd7, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0xde, 0x24, 0x1a, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xb9, 0x8b, 0xd7, 0x86, 0x3f, 0x97, 0x36, 0x78, 0xfe, 0xd1, 0xe2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x15, 0x8b, 0xd7, 0xc1, 0x53, 0x94, 0x16, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x6c, 0xc6, 0x6b, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0xd7, 0x78, 0x6d, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xe0, 0x05, 0xab, 0x41, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0xed, 0x78, 0x1d, 0x84, 0xe0, 0x43, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0xfc, 0x78, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xe2, 0x20, 0xaf, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0xbc, 0x8f, 0x33, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xe4, 0x24, 0xaf, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x20, 0xf0, 0xc4, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x9a, 0x23, 0xaf, 0x83, 0x17, 0x7f, 0x27, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xb3, 0x93, 0xd7, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x8b, 0xf2, 0xda, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0x43, 0x1e, 0x83, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xcb, 0xf2, 0xda, 0xf0, 0xe7, 0xd2, 0x06, 0x0f, 0x02, 0x4f, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xb6, 0xf2, 0x3a, 0x78, 0xf1, 0x77, 0x62, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0x75, 0x79, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xee, 0x2f, 0xaf, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x3c, 0x50, 0x23, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xec, 0x33, 0xaf, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x76, 0x65, 0xe2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x52, 0x99, 0xd7, 0xe1, 0x87, 0x9a, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x5d, 0xf3, 0xda, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x3d, 0x6e, 0x5e, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x78, 0xe1, 0x67, 0xd0, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x45, 0x76, 0x5e, 0x1b, 0xfe, 0x5c, 0x1a, 0xf0, 0xea, 0xe4, 0xd8, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xda, 0x39, 0xaf, 0x83, 0xf3, 0xec, 0xe8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xe1, 0x7e, 0x5e, 0x1b, 0xfe, 0x5c, 0x1a, 0xe0, 0x29, 0x73, 0xa3, 0x93, 0xcb, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x93, 0xf8, 0xbc, 0x36, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xe3, 0x04, 0xbd, 0x0e, 0xca, 0x26, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x7b, 0x0d, 0xbd, 0x36, 0xfc, 0x3b, 0xbf, 0x06, 0x8f, 0xcc, 0x5d, 0xac, 0x6a, 0x05, 0xf8, 0xe5, 0xca, 0xe6, 0xca, 0xe4, 0xec, 0xca, 0xc8, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xc7, 0x66, 0x3f, 0x36, 0x00, 0xde, 0x8d, 0xa1, 0x95, 0x8d, 0xad, 0x81, 0xa4, 0x99, 0x81, 0x84, 0xb9, 0x81, 0xa4, 0xc1, 0xd9, 0xd1, 0x80, 0x84, 0x91, 0x91, 0xc9, 0x95, 0xcd, 0xcd, 0x81, 0xa4, 0xcd, 0x81, 0xa4, 0xb9, 0x81, 0x84, 0x81, 0xc8, 0x95, 0xcd, 0x95, 0xc9, 0xd9, 0x95, 0x91, 0x81, 0xc8, 0x85, 0xb9, 0x9d, 0x95, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0x2d, 0x7a, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xdd, 0x86, 0x64, 0x20, 0x77, 0x1b, 0xe2, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xee, 0x36, 0x64, 0x07, 0xcf, 0x32, 0x7f, 0x3c, 0x38, 0xdc, 0xb7, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0x39, 0x7a, 0x6d, 0xf8, 0x8b, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xde, 0x86, 0x64, 0x20, 0x79, 0x1b, 0xa2, 0xc3, 0x07, 0xab, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xf1, 0x90, 0x5e, 0x1b, 0x14, 0xa4, 0xb1, 0x83, 0x8b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0x4e, 0x7a, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x3a, 0x4b, 0xaf, 0x83, 0xc2, 0x62, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xa6, 0x4d, 0xaf, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xe1, 0xe9, 0x75, 0x50, 0x10, 0x2d, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x25, 0xea, 0x75, 0x50, 0x54, 0x8a, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x5b, 0xea, 0x75, 0x78, 0x5a, 0xa7, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x33, 0x52, 0xbd, 0x36, 0x28, 0x76, 0x34, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x5e, 0xf5, 0xda, 0xa0, 0x98, 0xc4, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0xb8, 0x21, 0x1c, 0x48, 0xe0, 0x86, 0xdd, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x04, 0x6e, 0x48, 0x07, 0x12, 0xb8, 0x21, 0x3e, 0xfc, 0x50, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x70, 0x43, 0x3e, 0x90, 0xc0, 0x0d, 0x83, 0xc3, 0x0f, 0x35, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x02, 0x37, 0x2c, 0x06, 0x12, 0xb8, 0x61, 0x72, 0xf8, 0xa1, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xe0, 0x86, 0xcd, 0x40, 0x02, 0x37, 0x8c, 0x0e, 0x3f, 0xd4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0xdc, 0xb0, 0x1a, 0x48, 0xe0, 0x86, 0xd9, 0x41, 0x08, 0x3e, 0x74, 0xf8, 0x3c, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x66, 0x0a, 0xb0, 0x83, 0x22, 0xa7, 0x75, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xf1, 0xd6, 0x6b, 0xc3, 0xaf, 0x64, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0xe8, 0x7a, 0x6d, 0xf8, 0x37, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x7a, 0x5e, 0xaf, 0x83, 0x94, 0xd7, 0xaa, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xfc, 0x5f, 0xaf, 0x83, 0xe2, 0x07, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xba, 0x61, 0xaf, 0x0d, 0x8f, 0xb0, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x63, 0xec, 0xb5, 0xe1, 0xdf, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xe3, 0x91, 0xbd, 0x0e, 0xd2, 0x0c, 0x42, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xe3, 0x97, 0xbd, 0x0e, 0x8a, 0x1f, 0xd4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x53, 0x9e, 0xbd, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x7e, 0xb4, 0xd7, 0x41, 0x1a, 0xb6, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x3d, 0xd6, 0x5e, 0x1b, 0xde, 0xd6, 0x39, 0x58, 0x2d, 0x34, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x6b, 0xb6, 0xd7, 0x41, 0x0a, 0x74, 0x6a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0x74, 0x7b, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x06, 0x70, 0xaf, 0xc3, 0x17, 0xbf, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0x91, 0x7b, 0x1d, 0xbc, 0x18, 0x04, 0x72, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xe8, 0x73, 0xaf, 0x83, 0xa5, 0xd4, 0x74, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x29, 0xbb, 0xd7, 0x86, 0x7f, 0x73, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x7b, 0xf7, 0x3a, 0x58, 0x4a, 0x4d, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x26, 0xef, 0x75, 0x50, 0xfc, 0xa0, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x5e, 0xef, 0xb5, 0xe1, 0x11, 0xd6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x4b, 0xf1, 0xbd, 0x36, 0xfc, 0x9b, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xd8, 0xbe, 0xd7, 0x86, 0x1f, 0x61, 0x36, 0xd4, 0xfc, 0x20, 0x52, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x49, 0xfe, 0x5e, 0x07, 0xc5, 0x0f, 0xea, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x81, 0x01, 0x5f, 0x1b, 0xfe, 0xcd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x88, 0xe0, 0x6b, 0xc3, 0x8f, 0x30, 0x1b, 0x6a, 0x7e, 0x10, 0xfe, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xa8, 0x83, 0xaf, 0x83, 0x17, 0x83, 0x40, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xe0, 0xc2, 0xd7, 0x86, 0x47, 0x58, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x72, 0xf8, 0xda, 0xf0, 0x6f, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xfd, 0x10, 0x5f, 0x1b, 0x7e, 0x84, 0xd9, 0x50, 0xf3, 0x83, 0x60, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0x4f, 0x7c, 0x1d, 0x14, 0x3f, 0xa8, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0x5c, 0x7c, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xf6, 0x8c, 0xaf, 0x83, 0x34, 0x6c, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x63, 0x3c, 0xbe, 0x0e, 0x5e, 0x0c, 0x02, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x68, 0xc8, 0xd7, 0xc1, 0xe1, 0x55, 0xae, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x5b, 0x4a, 0xbe, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x00, 0xca, 0xd7, 0xe1, 0x8b, 0xdf, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xa3, 0x58, 0xbe, 0x0e, 0x5e, 0x0c, 0x02, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xf1, 0xcb, 0xd7, 0xc1, 0xd9, 0x1b, 0xaf, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0xa3, 0xf9, 0xda, 0xf0, 0x08, 0xeb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x21, 0x37, 0x5f, 0x1b, 0xfe, 0xcd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x3b, 0xe7, 0x6b, 0xc3, 0x8f, 0x30, 0x1b, 0x6a, 0x7e, 0x10, 0xc0, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x74, 0x9e, 0xaf, 0x83, 0xe2, 0x07, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x10, 0xa0, 0xaf, 0x0d, 0xff, 0xe6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x2e, 0xf4, 0x75, 0x78, 0xf0, 0x66, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xb7, 0xe8, 0xeb, 0xe0, 0xc5, 0x20, 0x90, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0x23, 0x7d, 0x6d, 0xf8, 0x37, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xde, 0xa5, 0xaf, 0xc3, 0x83, 0x37, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x9d, 0x4e, 0x5f, 0x1b, 0xde, 0xd6, 0x19, 0x3c, 0x3d, 0x58, 0xe6, 0x34, 0xd7, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x25, 0x53, 0x5f, 0x1b, 0x1e, 0x61, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xbc, 0xea, 0x6b, 0xc3, 0xbf, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0x62, 0x7d, 0x1d, 0x3c, 0x73, 0x0a, 0x72, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x75, 0xeb, 0xeb, 0xa0, 0xf8, 0x41, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xdc, 0xeb, 0x6b, 0xc3, 0xbf, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0x86, 0x7d, 0x1d, 0x1e, 0xbc, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x24, 0xfb, 0x3a, 0x78, 0x31, 0x08, 0xe4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb9, 0x67, 0x5f, 0x1b, 0xfe, 0xcd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x50, 0xed, 0xeb, 0x20, 0x60, 0x59, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xf3, 0xda, 0xbe, 0x0e, 0x5e, 0xf4, 0x05, 0xd9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x01, 0x72, 0x5f, 0x1b, 0x1e, 0x61, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x98, 0xee, 0x6b, 0xc3, 0xbf, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0xdd, 0x7d, 0x1d, 0x3c, 0x73, 0x0a, 0x72, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x51, 0xef, 0xeb, 0xa0, 0xf8, 0x41, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xb8, 0xef, 0x6b, 0xc3, 0xaf, 0x64, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0x02, 0x7e, 0x6d, 0xf8, 0x37, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xa4, 0xc1, 0xaf, 0x83, 0x54, 0x5d, 0xdc, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x2c, 0xc3, 0xaf, 0x83, 0x17, 0x83, 0x40, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x9d, 0xf8, 0xb5, 0xe1, 0xdf, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x4b, 0x19, 0xbf, 0x0e, 0x92, 0x89, 0x5b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x7b, 0x1f, 0xbf, 0x0e, 0x5e, 0x0c, 0x02, 0x59, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0x51, 0x7e, 0x6d, 0x78, 0x84, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x84, 0xcb, 0xaf, 0x0d, 0xff, 0xe6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x9c, 0xf9, 0x75, 0xf0, 0xcc, 0x29, 0xc8, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x68, 0xce, 0xaf, 0x83, 0xe2, 0x07, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x04, 0xd0, 0xaf, 0x0d, 0xff, 0xe6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x2c, 0xfa, 0xb5, 0xe1, 0x47, 0x98, 0x0d, 0x35, 0x3f, 0x74, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0x96, 0x7e, 0x1d, 0xbc, 0x18, 0x04, 0x72, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x72, 0xd4, 0xaf, 0x0d, 0xff, 0xe6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xba, 0xfa, 0x75, 0x90, 0x66, 0x10, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xeb, 0xfa, 0x75, 0xf0, 0xa2, 0x2f, 0xc8, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x9a, 0xfd, 0xda, 0xf0, 0x08, 0xeb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x01, 0xb6, 0x5f, 0x1b, 0xfe, 0xcd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x17, 0xf7, 0xeb, 0xe0, 0x99, 0x53, 0x90, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xc9, 0xbb, 0x5f, 0x07, 0xc5, 0x0f, 0xea, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x01, 0xbf, 0x5f, 0x1b, 0xfe, 0xcd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x38, 0xf8, 0x6b, 0xc3, 0x8f, 0x30, 0x1b, 0x6a, 0x7e, 0x38, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x4a, 0xfc, 0x75, 0xf0, 0x62, 0x10, 0xc8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xc3, 0x8f, 0xbf, 0x36, 0xfc, 0x9b, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xaa, 0xf2, 0xd7, 0x86, 0x1f, 0x61, 0x36, 0xd4, 0xfc, 0xf0, 0x71, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xb8, 0xf9, 0xeb, 0xe0, 0x45, 0x5f, 0x90, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x24, 0xfd, 0xb5, 0xe1, 0x11, 0xd6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x1b, 0xaa, 0xbf, 0x36, 0xfc, 0x9b, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xf2, 0xf5, 0xd7, 0xc1, 0x33, 0xa7, 0x20, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xab, 0xb5, 0xbf, 0x0e, 0x8a, 0x1f, 0xd4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x1b, 0xbc, 0xbf, 0x36, 0xfc, 0x9b, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x34, 0xf8, 0xd7, 0x86, 0x1f, 0x61, 0x36, 0xd4, 0xfc, 0x20, 0x50, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xbd, 0xe3, 0x5f, 0x07, 0x2f, 0x06, 0x81, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xf6, 0xf3, 0xaf, 0x0d, 0x8f, 0xb0, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xaa, 0xfe, 0xb5, 0xe1, 0xdf, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xd3, 0xda, 0xbf, 0x36, 0xfc, 0x08, 0xb3, 0xa1, 0xe6, 0x07, 0xb1, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x82, 0xff, 0x3a, 0x28, 0x7e, 0x50, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x9c, 0xff, 0xda, 0xf0, 0x6f, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x4d, 0xf6, 0x5f, 0x87, 0x07, 0x6f, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x4b, 0xf2, 0xbf, 0x0e, 0x5e, 0x0c, 0x02, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x17, 0xff, 0xd7, 0x86, 0x7f, 0x73, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0xf9, 0xff, 0x3a, 0x48, 0x26, 0x64, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x11, 0x00, 0x3b, 0x78, 0xd1, 0x17, 0x64, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0x1a, 0x80, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xc2, 0x04, 0xb0, 0x83, 0x34, 0x6c, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x83, 0x1b, 0xc0, 0x0e, 0x8a, 0x1f, 0xd4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x53, 0x22, 0xc0, 0x36, 0xfc, 0x08, 0xb3, 0xa1, 0xe6, 0x07, 0x01, 0xae, 0xc3, 0x29, 0xd6, 0x02, 0x3e, 0x5a, 0xda, 0xdc, 0xbc, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0x56, 0x64, 0xc8, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xdc, 0x0c, 0xb0, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xfc, 0xdf, 0xea, 0xe8, 0xc4, 0xde, 0xea, 0xdc, 0xc8, 0x40, 0xe4, 0xca, 0xe2, 0xea, 0xca, 0xe6, 0xe8, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xb9, 0x07, 0xd8, 0x86, 0x3f, 0x97, 0x06, 0x87, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xab, 0x38, 0xc0, 0x0e, 0x5e, 0xc9, 0xad, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x55, 0x09, 0xd8, 0x86, 0x3f, 0x97, 0x06, 0x8f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x8b, 0x45, 0xc0, 0x0e, 0xde, 0x86, 0xce, 0xd8, 0xac, 0xc1, 0x93, 0xd5, 0x17, 0x37, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x9e, 0xac, 0xbe, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xa9, 0x02, 0xb6, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x3f, 0x5c, 0x98, 0xdc, 0x5c, 0x19, 0x19, 0x48, 0x9d, 0x1c, 0x1b, 0x48, 0x5c, 0x5d, 0x99, 0x5c, 0xde, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x89, 0x0b, 0xd8, 0x41, 0x48, 0x99, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x35, 0x03, 0xb6, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xfb, 0x70, 0xc0, 0x36, 0xfc, 0xb9, 0x34, 0x38, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x5e, 0x03, 0x76, 0x70, 0x9e, 0x1d, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xde, 0x07, 0x6c, 0xc3, 0x9f, 0x4b, 0x83, 0xc7, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x61, 0x3c, 0x60, 0x07, 0xe7, 0xd9, 0xd1, 0x5a, 0x01, 0x1f, 0x8d, 0x8e, 0x2e, 0xde, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xe0, 0xc8, 0x10, 0x7a, 0xf0, 0xc4, 0x73, 0xc8, 0x06, 0xf0, 0x97, 0x0b, 0xbb, 0x03, 0x41, 0xa3, 0xa3, 0x83, 0x03, 0x91, 0x2b, 0x8b, 0xab, 0x2b, 0x9b, 0xa3, 0xdb, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0xe2, 0x39, 0xe4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x69, 0x11, 0xd8, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x55, 0x02, 0xdb, 0xf0, 0xc4, 0xfb, 0x06, 0xaf, 0x0a, 0x16, 0xdc, 0xf0, 0xe7, 0xd2, 0xe0, 0xf0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x07, 0x12, 0xd8, 0xc1, 0xb3, 0x3a, 0x18, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x88, 0x02, 0xdb, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0xaf, 0xce, 0x0d, 0x2e, 0x4c, 0x6e, 0xae, 0x8c, 0x0c, 0xa4, 0x4e, 0x8e, 0x6d, 0xc3, 0x9f, 0x4b, 0x83, 0xc7, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x95, 0x4e, 0x60, 0x07, 0xe7, 0xd9, 0xd1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x33, 0xaf, 0xc0, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x36, 0x78, 0x81, 0x45, 0x5d, 0x1b, 0xfe, 0x5c, 0x1a, 0x5c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xa8, 0x02, 0xdb, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xd9, 0x02, 0x3b, 0x08, 0x29, 0x93, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xbb, 0xc0, 0xc0, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x61, 0x19, 0xd8, 0x86, 0x3f, 0x97, 0x06, 0x87, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xeb, 0xc5, 0xc0, 0x0e, 0xce, 0xb3, 0xa3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0xaf, 0x81, 0x6d, 0xf8, 0x73, 0x69, 0xf0, 0x78, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x2d, 0x0d, 0xec, 0xe0, 0x3c, 0x3b, 0x5a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0xce, 0x81, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x6c, 0xb0, 0x6c, 0x0a, 0xba, 0x0d, 0x7f, 0x2e, 0x0d, 0x3e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0xc4, 0x81, 0x6d, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0xdc, 0x81, 0x1d, 0x94, 0x4d, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0xed, 0x81, 0x1d, 0x3c, 0xfd, 0x5c, 0xae, 0x56, 0xc0, 0x8f, 0xab, 0x2b, 0x93, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xa3, 0xff, 0xc0, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x89, 0xab, 0x2b, 0x93, 0xcb, 0x03, 0xa1, 0x93, 0x2b, 0x2b, 0xdb, 0xf0, 0x15, 0xce, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xae, 0x20, 0xd8, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0x30, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x8b, 0x27, 0xd8, 0x41, 0x08, 0x3e, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0x1b, 0x82, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xf8, 0x45, 0xb0, 0x0d, 0x7f, 0x2e, 0x0d, 0x0e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0x25, 0x82, 0x1d, 0x9c, 0x67, 0x47, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x99, 0x04, 0xdb, 0xf0, 0xe7, 0xd2, 0xe0, 0xf1, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x28, 0x24, 0xd8, 0xc1, 0x79, 0x76, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x38, 0x4d, 0xb0, 0x0d, 0x7f, 0x2e, 0x0d, 0x4e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0x5f, 0x82, 0x1d, 0x3c, 0x7e, 0x3e, 0xa4, 0xc3, 0x29, 0xb6, 0x80, 0x8f, 0x16, 0x26, 0x47, 0x6f, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xbc, 0xbc, 0x24, 0x72, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x63, 0x14, 0x6c, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x3e, 0xd0, 0xe8, 0xe8, 0xe0, 0x40, 0xe6, 0xca, 0xc6, 0x56, 0xe0, 0xde, 0xe4, 0xe8, 0x56, 0xd0, 0xde, 0xe6, 0xe8, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x11, 0x2a, 0xd8, 0x86, 0x3f, 0x97, 0x06, 0x87, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x6b, 0x4b, 0xc1, 0x0e, 0x1f, 0xac, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xeb, 0x0a, 0xb6, 0xe1, 0xcf, 0xa5, 0xc1, 0xe3, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x16, 0x56, 0xb0, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x26, 0x59, 0xb0, 0x83, 0xb2, 0x09, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xb8, 0x5b, 0xb0, 0x83, 0x32, 0x4b, 0xb7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x4b, 0x7e, 0xc1, 0x36, 0xfc, 0xb9, 0x34, 0xb8, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xc8, 0x0b, 0x76, 0xf0, 0x4a, 0x7b, 0xc6, 0x56, 0x83, 0xb7, 0xe4, 0x70, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0x40, 0x47, 0x99, 0x5d, 0x99, 0x1b, 0xdd, 0x1c, 0xc8, 0x5c, 0x9a, 0xdb, 0x58, 0x19, 0x08, 0x1d, 0x5a, 0x99, 0x9b, 0x6b, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0x2d, 0x39, 0x5c, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xdd, 0xc6, 0x60, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x7c, 0x19, 0x6c, 0xc3, 0x9f, 0x4b, 0x1b, 0x3c, 0x76, 0x1c, 0x6f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x2a, 0x19, 0x6c, 0x83, 0x60, 0x33, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xfb, 0x19, 0x6c, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x4f, 0x70, 0x06, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x91, 0x1a, 0x6c, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0xc3, 0x62, 0xb7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x23, 0xb9, 0xc1, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0x09, 0xe1, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x40, 0x1b, 0xec, 0xe0, 0xd5, 0x9c, 0x8e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0x8e, 0x83, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x25, 0x56, 0x36, 0x16, 0x56, 0x37, 0x57, 0x06, 0x42, 0x87, 0x56, 0xb6, 0xe1, 0xcf, 0xa5, 0x0d, 0xc2, 0x38, 0x63, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x22, 0x1c, 0x6c, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xe6, 0x1c, 0xec, 0x60, 0x15, 0x64, 0xf2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x7d, 0xeb, 0x60, 0x1b, 0xfe, 0x9d, 0x5f, 0x83, 0x87, 0x7d, 0x36, 0xd6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x01, 0xef, 0x60, 0x07, 0x4f, 0x4f, 0xf7, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x0c, 0x7b, 0xb0, 0x0d, 0x7f, 0x2e, 0x0d, 0xf0, 0xba, 0x95, 0xe1, 0xd1, 0xb5, 0xa4, 0x91, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x89, 0xf3, 0x60, 0x07, 0x65, 0x96, 0xee, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x51, 0xfd, 0x60, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xe0, 0x6f, 0xdd, 0x5c, 0x19, 0x19, 0x88, 0xd9, 0x9b, 0x1c, 0xc8, 0x18, 0xdb, 0xdb, 0x19, 0xc8, 0x58, 0x18, 0xdb, 0x58, 0x1d, 0x5b, 0x18, 0x5d, 0xda, 0x9b, 0xdb, 0x1c, 0x0b, 0x48, 0x9a, 0x1b, 0xc8, 0xd8, 0x5b, 0x9b, 0x58, 0x9a, 0x5b, 0x18, 0x5d, 0xda, 0x9b, 0x1b, 0xc8, 0x5d, 0x1a, 0x1d, 0x1a, 0x88, 0x4e, 0x9d, 0x5b, 0xd8, 0xd8, 0x5a, 0x19, 0xd9, 0x86, 0x3f, 0x97, 0x06, 0xf8, 0xd9, 0xc2, 0xe6, 0xe8, 0x5a, 0xc2, 0xc6, 0xd6, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x60, 0x7d, 0xb0, 0x83, 0x23, 0x5f, 0xeb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x15, 0x06, 0x61, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xa0, 0xf7, 0x58, 0x98, 0xdb, 0x09, 0x1d, 0x48, 0xd8, 0xdc, 0x5c, 0x5d, 0x5b, 0x19, 0x48, 0x1a, 0x1d, 0xc8, 0xd9, 0x1b, 0x1d, 0x88, 0x5c, 0xd9, 0x58, 0x59, 0x9a, 0x5d, 0x19, 0x19, 0x48, 0x9d, 0x1b, 0x5d, 0x1a, 0x1b, 0xc8, 0x5d, 0x19, 0xc8, 0x59, 0x19, 0x1d, 0x48, 0x98, 0x1b, 0x48, 0xd8, 0xd8, 0x9a, 0xdb, 0xdb, 0x1d, 0x5b, 0x19, 0xd9, 0x59, 0x5b, 0x99, 0x1b, 0x9d, 0x6b, 0xc3, 0x9f, 0x4b, 0x03, 0x7c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0xf3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xe0, 0x40, 0xd8, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x68, 0x42, 0xd8, 0xc1, 0xc3, 0x0f, 0x18, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x7a, 0x08, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x6d, 0x14, 0x61, 0x1b, 0xfe, 0x5c, 0x1a, 0xf8, 0x34, 0x72, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x3b, 0x22, 0xec, 0xa0, 0xcc, 0xd2, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x5e, 0x23, 0x6c, 0xc3, 0x9f, 0x4b, 0x03, 0xf8, 0xc8, 0x95, 0xc5, 0xd5, 0x95, 0xcd, 0xd1, 0xb5, 0xa4, 0x91, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x59, 0x18, 0x61, 0x07, 0x65, 0x96, 0xee, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x6d, 0x21, 0x61, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x5d, 0x5c, 0x8a, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xd5, 0x1e, 0x61, 0x1b, 0xfe, 0x9d, 0x5f, 0x83, 0x77, 0x71, 0x29, 0x56, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xaa, 0x12, 0xb6, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x1e, 0xd7, 0xcd, 0x95, 0x91, 0x81, 0x98, 0xbd, 0xc9, 0x81, 0x8c, 0xb1, 0xbd, 0x9d, 0x81, 0x8c, 0x85, 0xb1, 0x8d, 0xd5, 0xb1, 0x85, 0xd1, 0xa5, 0xbd, 0xb9, 0xcd, 0xb1, 0x80, 0xa4, 0xb9, 0x81, 0x8c, 0xbd, 0xb5, 0x89, 0xa5, 0xb9, 0x85, 0xd1, 0xa5, 0xbd, 0xb9, 0x81, 0xdc, 0xa5, 0xd1, 0xa1, 0x81, 0xe8, 0xb0, 0x85, 0xcd, 0xd1, 0xb5, 0x84, 0x8d, 0xad, 0x6d, 0xf8, 0x73, 0x69, 0x80, 0xb7, 0xce, 0x2d, 0x6c, 0x6c, 0xad, 0x8c, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x40, 0x09, 0xdb, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x71, 0x09, 0x3b, 0x28, 0x11, 0xeb, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x9b, 0x09, 0x3b, 0x28, 0xb3, 0x74, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xc3, 0x09, 0x3b, 0x28, 0xb3, 0x74, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x0a, 0x28, 0x6c, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xf4, 0x1a, 0x0b, 0x73, 0x03, 0x19, 0x0b, 0x73, 0x1b, 0x2b, 0x63, 0x03, 0x09, 0x63, 0x63, 0x03, 0xa1, 0x43, 0x2b, 0x03, 0x99, 0xab, 0x13, 0x9b, 0x1b, 0x93, 0x4b, 0x83, 0xa3, 0x4b, 0x7b, 0x73, 0x9b, 0x03, 0xb9, 0x2b, 0x3b, 0xb1, 0x2b, 0x03, 0x69, 0x0b, 0x23, 0x2b, 0x73, 0x6d, 0xf8, 0x73, 0x69, 0x00, 0xcf, 0xb9, 0x3a, 0xb1, 0xb9, 0x31, 0xb9, 0x34, 0x38, 0xba, 0xb4, 0x37, 0xb7, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xb7, 0x27, 0x6c, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x7b, 0x28, 0xec, 0xa0, 0x44, 0xac, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x21, 0x29, 0xec, 0xa0, 0xcc, 0xd2, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xc9, 0x29, 0x6c, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0x4e, 0x85, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0xa6, 0xaf, 0xc7, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xdb, 0xa1, 0xc2, 0x0e, 0x8e, 0xad, 0xae, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0x6b, 0x85, 0x6d, 0xf8, 0x73, 0x69, 0xc0, 0x0b, 0x83, 0x83, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x7b, 0xb0, 0xc2, 0x0e, 0xd6, 0x6b, 0x3d, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x15, 0x16, 0xb6, 0xe1, 0xcf, 0xa5, 0x0d, 0x0e, 0xa6, 0x9f, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xc5, 0x5e, 0x61, 0x07, 0x67, 0x24, 0xd4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xc3, 0xcf, 0xc2, 0x36, 0xfc, 0xb9, 0x34, 0xe0, 0x91, 0xd5, 0x8d, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x45, 0x65, 0x61, 0x07, 0x4f, 0x4f, 0xf7, 0xa8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xb3, 0xe0, 0xc2, 0x36, 0xfc, 0xb9, 0x34, 0x80, 0x07, 0x5a, 0x59, 0x98, 0x1c, 0x9d, 0x58, 0x59, 0x18, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xdc, 0x16, 0xb6, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x3e, 0x17, 0x76, 0x50, 0x36, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x82, 0x17, 0x76, 0xf0, 0x82, 0xab, 0xc8, 0x3a, 0x9c, 0x62, 0xad, 0xc1, 0x23, 0xba, 0x15, 0x37, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x1e, 0xd1, 0xad, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xed, 0x17, 0xb6, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x0f, 0x5c, 0x98, 0xdc, 0x5c, 0x19, 0x19, 0x48, 0x9d, 0x1c, 0xdb, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x20, 0x0c, 0xdb, 0xf0, 0xe7, 0xd2, 0xe0, 0xf0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x5c, 0x60, 0xd8, 0x86, 0x7f, 0xe7, 0xd7, 0xe0, 0xe5, 0x25, 0x91, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xfb, 0x62, 0xd8, 0x86, 0x3f, 0x97, 0x06, 0x8f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xbb, 0x12, 0xc3, 0x0e, 0x1e, 0x64, 0xbe, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x99, 0x64, 0xd8, 0x86, 0x3f, 0x97, 0x06, 0x97, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xa3, 0x1f, 0xc3, 0x0e, 0xde, 0xa4, 0xbe, 0xd8, 0xe1, 0x14, 0x5b, 0xc3, 0x03, 0x20, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x86, 0x07, 0x40, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x0b, 0x2e, 0xc3, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0x63, 0xae, 0xac, 0x2d, 0x0d, 0x2e, 0x4c, 0x6e, 0xae, 0x8c, 0x0c, 0x04, 0xad, 0x2c, 0x8c, 0xac, 0x4c, 0x6e, 0x6e, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x53, 0x33, 0xec, 0xa0, 0x44, 0xac, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xf8, 0x33, 0xec, 0xe0, 0x3c, 0x3b, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xf9, 0x68, 0xd8, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xac, 0x69, 0xd8, 0x41, 0x48, 0x99, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xbd, 0x1a, 0x76, 0x70, 0x9e, 0x1d, 0xad, 0x15, 0xd0, 0xd2, 0xe0, 0xec, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0x65, 0xa0, 0xa5, 0xc1, 0xd9, 0x06, 0xe0, 0x03, 0x2e, 0x4c, 0x6e, 0xae, 0x0c, 0x24, 0x0d, 0xce, 0xce, 0x06, 0x24, 0x8c, 0x8c, 0x4c, 0xae, 0x6c, 0x6e, 0x6e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x21, 0x36, 0x6c, 0x83, 0xa2, 0xd3, 0x78, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xda, 0xd9, 0xb0, 0x83, 0xa5, 0xaa, 0xa1, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0xe2, 0x86, 0x1d, 0x24, 0xe3, 0x37, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0xef, 0x86, 0x6d, 0x50, 0x74, 0x1a, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xeb, 0x1b, 0x76, 0xb0, 0xc4, 0x8e, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xb8, 0xe1, 0xb0, 0x0d, 0xbf, 0x28, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0xdf, 0x90, 0x0d, 0x64, 0x7e, 0x43, 0xd1, 0x86, 0x3f, 0x97, 0x06, 0x78, 0xd0, 0xca, 0xf0, 0xe8, 0xe6, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xfc, 0x86, 0xc5, 0xc1, 0x1b, 0xe4, 0x23, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xf3, 0x1b, 0x26, 0x03, 0x99, 0xdf, 0x30, 0x3b, 0x08, 0x29, 0x93, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xf3, 0x1b, 0x76, 0x03, 0x99, 0xdf, 0xd0, 0xb3, 0xe1, 0x83, 0xf9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xf3, 0x1b, 0xa6, 0x03, 0x99, 0xdf, 0xb0, 0x3d, 0xfc, 0x50, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0xdf, 0x30, 0x1e, 0xc8, 0xfc, 0x86, 0x9a, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0xdf, 0xb0, 0x1e, 0xc8, 0xfc, 0x86, 0xf9, 0x41, 0x08, 0x3e, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0xdf, 0xb0, 0x1f, 0xc8, 0xfc, 0x86, 0x96, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0xbc, 0xdf, 0x3c, 0xac, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x33, 0x8d, 0xc3, 0x36, 0xfc, 0x45, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x7e, 0x43, 0x36, 0x90, 0xfa, 0x0d, 0xd3, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xfd, 0x86, 0x70, 0x20, 0xf5, 0x1b, 0x06, 0x07, 0x65, 0x13, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xfa, 0x0d, 0x8b, 0x81, 0xd4, 0x6f, 0x58, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xea, 0x37, 0x4c, 0x06, 0x52, 0xbf, 0x61, 0x76, 0x10, 0x52, 0x26, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xea, 0x37, 0xec, 0x06, 0x52, 0xbf, 0x61, 0x78, 0xf8, 0xa1, 0xa6, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x33, 0x92, 0xc3, 0x36, 0x28, 0x48, 0x63, 0xd7, 0xf0, 0x7d, 0xfb, 0x00, 0x0f, 0x5b, 0xd9, 0x59, 0x1a, 0xbd, 0x41, 0x09, 0x1d, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x7f, 0xc3, 0x62, 0x20, 0xfb, 0x1b, 0x26, 0x87, 0x0f, 0x56, 0x0f, 0xc2, 0x74, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xea, 0xe5, 0xb0, 0x0d, 0x9f, 0xd8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xe9, 0x1c, 0xb6, 0xe1, 0x73, 0x97, 0xc1, 0xd9, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x92, 0xe8, 0xb0, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x3e, 0x1d, 0x76, 0xb0, 0xd0, 0x73, 0x72, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x14, 0xec, 0xb0, 0x0d, 0x6f, 0xeb, 0x6c, 0xf0, 0x88, 0xf9, 0xc8, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xda, 0x0e, 0xdb, 0xf0, 0x89, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x15, 0xde, 0x61, 0x1b, 0x3e, 0x77, 0x19, 0x7c, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x05, 0x0f, 0xdb, 0xf0, 0x8b, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xff, 0x0d, 0x93, 0x81, 0xfc, 0x6f, 0x58, 0x6d, 0xf8, 0x73, 0x69, 0xf0, 0x70, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xbf, 0x61, 0x74, 0xf0, 0xc0, 0x16, 0xc9, 0x83, 0x30, 0x1d, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x1e, 0x0f, 0xdb, 0xa0, 0x98, 0xc4, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xbf, 0x61, 0x39, 0x90, 0xff, 0x0d, 0x1d, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xbf, 0x61, 0x3a, 0x90, 0xff, 0x0d, 0xdb, 0x83, 0x10, 0x7c, 0x58, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xbf, 0x61, 0x3c, 0x90, 0xff, 0x0d, 0x15, 0x07, 0x0f, 0x35, 0x90, 0xec, 0xf0, 0xe0, 0xce, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x76, 0x7a, 0xd8, 0x86, 0x5f, 0xc9, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x64, 0x0f, 0xdb, 0xf0, 0x08, 0xeb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x55, 0xef, 0x61, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x43, 0x3e, 0xec, 0xf0, 0xc5, 0xd9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x59, 0xf6, 0x61, 0x07, 0x29, 0x6f, 0x57, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0xe6, 0x87, 0x1d, 0x1c, 0x56, 0xe6, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xa5, 0x3f, 0x6c, 0xc3, 0x27, 0x36, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0xff, 0x87, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x66, 0x01, 0xb1, 0x83, 0xf7, 0x6a, 0xa1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x7c, 0x20, 0x76, 0xf0, 0xe0, 0x12, 0xc9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x4b, 0x16, 0xc4, 0x0e, 0x4f, 0xef, 0xb4, 0x41, 0x31, 0x89, 0xb9, 0x06, 0x4b, 0x31, 0xaa, 0x36, 0x5c, 0x5d, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x00, 0x0e, 0xe3, 0x81, 0x04, 0x70, 0x68, 0xd8, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x00, 0x0e, 0xeb, 0x81, 0x04, 0x70, 0x98, 0x1f, 0x84, 0xe9, 0xd8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x00, 0x0e, 0xfb, 0x81, 0x04, 0x70, 0x28, 0x38, 0x08, 0xc1, 0x87, 0x0e, 0x5f, 0x4e, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xfb, 0x83, 0xd8, 0x86, 0x47, 0x58, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x95, 0x10, 0xdb, 0xf0, 0x6f, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x69, 0x15, 0x62, 0x07, 0x87, 0x95, 0xb9, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x38, 0x0c, 0xb1, 0x83, 0x94, 0xb7, 0xab, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x23, 0x37, 0xc4, 0x36, 0xbc, 0xcd, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xe5, 0x21, 0xb6, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x43, 0x42, 0xc4, 0x0e, 0xd6, 0xa7, 0xd6, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x56, 0x22, 0x76, 0xf0, 0xe0, 0x12, 0xc9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x8b, 0x51, 0xc4, 0x0e, 0x4f, 0xef, 0x54, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x35, 0x2d, 0x62, 0x1b, 0x14, 0x3b, 0x9a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0xbf, 0x88, 0x6d, 0x78, 0x5b, 0x67, 0x83, 0x17, 0x66, 0x48, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x2f, 0x9e, 0xd8, 0x41, 0x41, 0x91, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x2b, 0x23, 0xb6, 0xc1, 0x89, 0xfd, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xb8, 0x1a, 0xb1, 0x83, 0xb3, 0x14, 0xd8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x6a, 0x8e, 0xd8, 0x06, 0x27, 0xf6, 0x9b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xcb, 0x78, 0xc4, 0x0e, 0x1a, 0x95, 0xff, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x0a, 0x12, 0xdb, 0xa0, 0xe8, 0x34, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x80, 0x48, 0xec, 0xa0, 0x44, 0xaa, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x08, 0x49, 0xec, 0xe0, 0xc1, 0x25, 0x92, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x95, 0x4b, 0x62, 0x1b, 0x7e, 0x51, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0xc1, 0x21, 0x1b, 0xc8, 0x04, 0x87, 0x82, 0x0d, 0x7f, 0x2e, 0x0d, 0xf8, 0x68, 0x65, 0x78, 0xf4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x82, 0xc3, 0xe0, 0xe0, 0x91, 0x7a, 0x92, 0x1b, 0x3e, 0x98, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0xc1, 0x61, 0x33, 0x90, 0x09, 0x0e, 0xa3, 0xc3, 0x0f, 0x35, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x09, 0x0e, 0xab, 0x81, 0x4c, 0x70, 0xd8, 0x6f, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x04, 0x87, 0xd9, 0x40, 0x26, 0x38, 0xec, 0x0e, 0x42, 0xf0, 0x61, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x04, 0x87, 0xe1, 0x40, 0x26, 0x38, 0xcc, 0x0f, 0x1e, 0x6a, 0x20, 0xd9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xae, 0x93, 0xd8, 0x06, 0x05, 0xc1, 0xec, 0x1a, 0xbc, 0x72, 0x4f, 0xb2, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xa3, 0xa3, 0xc4, 0x36, 0x38, 0xba, 0x0e, 0xae, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xd3, 0xa8, 0xc4, 0x36, 0xbc, 0xad, 0x73, 0xf0, 0xd2, 0x45, 0xc9, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0xbc, 0x12, 0xdb, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x55, 0x5a, 0x62, 0x07, 0x27, 0x99, 0xb6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x7b, 0xbe, 0xc4, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x82, 0x98, 0xd8, 0xe1, 0x53, 0xc0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x83, 0xcc, 0xc4, 0x0e, 0x52, 0x4e, 0xab, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x4d, 0x13, 0xdb, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x89, 0x6c, 0x62, 0x07, 0x0b, 0x3d, 0x27, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x86, 0x13, 0x3b, 0x78, 0x70, 0x89, 0x64, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x4b, 0x27, 0x76, 0x78, 0xf0, 0xa6, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x1e, 0x3e, 0xb1, 0x0d, 0x0e, 0x58, 0x74, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0xfd, 0x8a, 0x6d, 0x50, 0x74, 0x1a, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x21, 0x2c, 0x76, 0xb0, 0xac, 0x12, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x30, 0x63, 0xb1, 0x0d, 0xbf, 0x28, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0xe0, 0x90, 0x0f, 0xe4, 0x83, 0x43, 0xf5, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x7c, 0x70, 0x18, 0x0c, 0xe4, 0x83, 0xc3, 0x74, 0xc3, 0x9f, 0x4b, 0x83, 0x87, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x0f, 0x0e, 0x93, 0x83, 0xb7, 0xa8, 0x4a, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x3e, 0x38, 0x6c, 0x06, 0xf2, 0xc1, 0x61, 0x77, 0x10, 0x52, 0x26, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x3e, 0x38, 0x0c, 0x07, 0xf2, 0xc1, 0x61, 0x79, 0xf8, 0xa1, 0xa6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x1f, 0x1c, 0xb6, 0x03, 0xf9, 0xe0, 0x50, 0xb7, 0xe1, 0xcf, 0xa5, 0xc1, 0xc5, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x07, 0x87, 0xf5, 0xc1, 0xcb, 0x6a, 0x25, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x1f, 0x1c, 0xe6, 0x03, 0xf9, 0xe0, 0x50, 0x71, 0x10, 0x52, 0x26, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x3e, 0x38, 0x74, 0x0c, 0xe4, 0x83, 0x43, 0xdb, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x7c, 0x70, 0x28, 0x19, 0xc8, 0x07, 0x87, 0x96, 0x83, 0x10, 0x7c, 0x58, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xc1, 0xa1, 0x66, 0x20, 0x1f, 0x1c, 0xca, 0x0e, 0x1e, 0x6a, 0x20, 0x59, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x3e, 0x38, 0xf4, 0x0d, 0xe4, 0x83, 0x43, 0xf3, 0x86, 0x3f, 0x97, 0x06, 0x1f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x1f, 0x1c, 0x1a, 0x0f, 0xde, 0x66, 0x2c, 0xb9, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0xe0, 0x50, 0x39, 0x90, 0x0f, 0x0e, 0xb5, 0x07, 0x21, 0x65, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x83, 0x43, 0xef, 0x40, 0x3e, 0x38, 0x14, 0x1f, 0x7e, 0xa8, 0xa9, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xde, 0x64, 0xb1, 0x0d, 0x92, 0x0c, 0x08, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x64, 0x16, 0x3b, 0x38, 0x64, 0x2d, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x24, 0x2d, 0x76, 0x78, 0x5a, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xd0, 0x6b, 0xb1, 0xc3, 0x7b, 0x41, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0x6d, 0x8b, 0x1d, 0x9e, 0xde, 0x69, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xf1, 0x5b, 0x6c, 0x83, 0x15, 0x42, 0x4d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0x1a, 0x8c, 0x1d, 0xac, 0xa8, 0x08, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x60, 0x61, 0x6c, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0x37, 0x8c, 0x1d, 0xac, 0x6b, 0x25, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x42, 0x62, 0xec, 0x60, 0x21, 0x1c, 0xe9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x99, 0x15, 0x63, 0x1b, 0xde, 0xd6, 0x19, 0xf0, 0xd0, 0xca, 0xe8, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x3d, 0x5e, 0x6c, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0xd2, 0x8b, 0x1d, 0xac, 0xa2, 0xa1, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x1e, 0x5f, 0x6c, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0xee, 0x8b, 0x1d, 0x1e, 0xbc, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xcc, 0x5f, 0xec, 0xf0, 0x98, 0x4c, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0x06, 0x8c, 0x6d, 0x78, 0x5b, 0x67, 0xc0, 0x1b, 0x2b, 0x63, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xb2, 0x71, 0xb1, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x62, 0x2e, 0x76, 0xb0, 0xae, 0x95, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x3a, 0x75, 0xb1, 0x83, 0x85, 0x70, 0xa4, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0xb7, 0x8b, 0x1d, 0xbc, 0x2c, 0x5c, 0xb2, 0x96, 0x59, 0xc0, 0x43, 0x2b, 0xa3, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x33, 0xfe, 0xc4, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x79, 0xa0, 0xd8, 0xc1, 0x52, 0xd5, 0xd0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x73, 0x0d, 0xc5, 0x0e, 0x0e, 0xaf, 0x72, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0x28, 0x8a, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x82, 0x46, 0xb1, 0x83, 0x55, 0x34, 0xf4, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0x45, 0x8a, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xf4, 0x49, 0xb1, 0xc3, 0x63, 0x32, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0x5b, 0x8a, 0x1d, 0x9c, 0x9a, 0xdb, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x49, 0x53, 0x6c, 0xc3, 0x83, 0x92, 0x1b, 0x2c, 0x75, 0xb8, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0xe8, 0x14, 0x3b, 0x58, 0x03, 0xab, 0x5a, 0x2b, 0xe0, 0x8d, 0x95, 0xb1, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xa1, 0xa1, 0x62, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x8d, 0x54, 0xec, 0x60, 0x09, 0x4e, 0xe8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb1, 0xa8, 0x62, 0x1b, 0x1c, 0xc3, 0x0d, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x23, 0x57, 0xc5, 0x36, 0xbc, 0x71, 0x77, 0xf0, 0x80, 0x03, 0xc9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x33, 0x5e, 0xc5, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xd0, 0xae, 0xd8, 0xc1, 0x8a, 0x8a, 0xd0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x1b, 0x6d, 0xc5, 0x0e, 0x16, 0xc2, 0x91, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x2c, 0x2b, 0x76, 0xb0, 0x10, 0x8e, 0xb4, 0x0e, 0xa7, 0x58, 0x87, 0x53, 0x6c, 0x16, 0xd0, 0xd2, 0xe0, 0xe8, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0x65, 0xa0, 0xa5, 0xc1, 0xd1, 0x06, 0xe0, 0x03, 0x2e, 0x4c, 0x6e, 0xae, 0x0c, 0x24, 0x0d, 0xce, 0x8e, 0x06, 0x24, 0x8c, 0x8c, 0x4c, 0xae, 0x6c, 0x6e, 0x6e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x55, 0x63, 0x6c, 0xc3, 0x27, 0x36, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0x75, 0x8c, 0x6d, 0xf8, 0xdc, 0x65, 0xc0, 0x13, 0xcb, 0xa3, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xeb, 0x3f, 0xc6, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xaf, 0xc8, 0xd8, 0x86, 0x07, 0x25, 0x37, 0x58, 0x9a, 0x3a, 0xbf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x57, 0x32, 0x76, 0xb0, 0x02, 0x5c, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x12, 0x95, 0xb1, 0x0d, 0x0f, 0x4a, 0x6e, 0xb0, 0x58, 0xa7, 0x7e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x9c, 0x65, 0xec, 0x60, 0x0d, 0xac, 0x6a, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x2d, 0x31, 0x63, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x7d, 0x66, 0xec, 0x60, 0xa9, 0x6a, 0xe8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x21, 0x38, 0x63, 0x07, 0xa9, 0xd8, 0xbf, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0xee, 0x8c, 0x6d, 0xb0, 0x42, 0xa8, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x22, 0xb2, 0xb1, 0x83, 0x15, 0x15, 0xa1, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0x7f, 0x8d, 0x6d, 0x78, 0x5b, 0x67, 0xc0, 0x13, 0xcb, 0xa3, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xe7, 0x67, 0x6c, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0x08, 0x8d, 0x1d, 0xac, 0xa2, 0xa1, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xca, 0x68, 0x6c, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0x23, 0x8d, 0x1d, 0x14, 0x95, 0xe2, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0x2f, 0x8d, 0x1d, 0x14, 0x95, 0xe2, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xf5, 0x34, 0xb6, 0xc1, 0x0a, 0xa1, 0xa6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x5b, 0xb6, 0xc6, 0x0e, 0xd6, 0x8e, 0x83, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x67, 0x35, 0x76, 0xb0, 0xf6, 0x85, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x7e, 0xa9, 0xb1, 0x83, 0xb7, 0xbc, 0x4c, 0x56, 0xcd, 0x1a, 0xbc, 0xd4, 0x26, 0x68, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x23, 0x43, 0xe8, 0xc1, 0x4b, 0x6d, 0x82, 0x1a, 0xc0, 0x67, 0x4c, 0xae, 0x8c, 0xac, 0xcc, 0x8d, 0x2e, 0x2d, 0x8c, 0x6d, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0xa5, 0x36, 0x41, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x95, 0x69, 0x63, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xd3, 0x6d, 0x6c, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xaf, 0x31, 0xb6, 0xb4, 0x32, 0x37, 0x3a, 0x10, 0xb4, 0xb7, 0x39, 0xba, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x68, 0x75, 0xf4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x03, 0xdb, 0xd8, 0xc1, 0xfb, 0x93, 0x23, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xa8, 0x1b, 0xdb, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0x87, 0x31, 0xb6, 0xb4, 0x32, 0x37, 0x3a, 0x90, 0x34, 0xb2, 0x32, 0x37, 0xba, 0x34, 0xba, 0xb4, 0xb2, 0xb9, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x61, 0x75, 0xf4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xa2, 0xdc, 0xd8, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x2a, 0xde, 0xd8, 0x86, 0xb7, 0x75, 0x36, 0x38, 0x65, 0x83, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x95, 0xdf, 0xd8, 0xc1, 0x79, 0xf3, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xac, 0xc1, 0xb1, 0x83, 0xf3, 0xec, 0x68, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0x2c, 0x8e, 0x6d, 0x78, 0xe2, 0x7d, 0x83, 0xb7, 0x42, 0x35, 0x6e, 0xf8, 0x73, 0x69, 0xc0, 0x7b, 0x93, 0xc3, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xfb, 0x10, 0xc7, 0x0e, 0x9e, 0xe1, 0xcf, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x61, 0xe4, 0xd8, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xde, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x2d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x1b, 0xfe, 0x5c, 0x1a, 0xf0, 0xc2, 0xc6, 0xd8, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x7c, 0xc7, 0xb1, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x8c, 0xca, 0xb1, 0x83, 0xb2, 0x09, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x1c, 0xcd, 0xb1, 0x83, 0xf3, 0xec, 0x68, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0x88, 0x8e, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x31, 0xc6, 0x96, 0x56, 0xe6, 0x46, 0x07, 0x92, 0x04, 0xb5, 0xe1, 0xcf, 0xa5, 0x01, 0x6f, 0x2c, 0x0d, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0xfc, 0x1c, 0xdb, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x2d, 0x1d, 0x3b, 0x58, 0x05, 0x99, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xb2, 0xea, 0xd8, 0xc1, 0xe1, 0xbe, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xe6, 0xd7, 0xb1, 0x83, 0x33, 0x89, 0x6b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0xe6, 0x8e, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x35, 0x56, 0x37, 0x47, 0xf7, 0xd6, 0x06, 0x42, 0x96, 0x26, 0x47, 0xb7, 0xe1, 0xcf, 0xa5, 0x01, 0x6f, 0xac, 0xae, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xb9, 0x1d, 0xdb, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xea, 0x1d, 0x3b, 0x28, 0x11, 0xeb, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x13, 0x1e, 0x3b, 0x38, 0x6f, 0x9e, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x77, 0x3c, 0x76, 0x10, 0xa6, 0x63, 0x75, 0x38, 0xc5, 0x3a, 0x9c, 0x62, 0x2b, 0x28, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x1b, 0x07, 0xda, 0xf0, 0xb6, 0xce, 0xc0, 0xbf, 0xb9, 0xad, 0xc0, 0xfa, 0xfe, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0x65, 0xe0, 0xb5, 0xbd, 0xc1, 0x0d, 0x80, 0xce, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x70, 0x20, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x6b, 0x65, 0x79, 0xac, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xbc, 0x8b, 0x0e, 0x2e, 0xc6, 0x6c, 0x50, 0x28, 0x77, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x82, 0x77, 0xf1, 0x07, 0x0f, 0x6b, 0xf3, 0xd8, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x78, 0x17, 0x82, 0x83, 0x57, 0x76, 0x79, 0x6c, 0xf8, 0x73, 0x69, 0x83, 0xa2, 0xf5, 0x64, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x83, 0x87, 0x74, 0x79, 0x1c, 0x1c, 0x5b, 0x07, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x83, 0xf7, 0x89, 0x79, 0x1c, 0x3c, 0xaa, 0xcc, 0x63, 0xc3, 0x9f, 0x4b, 0x1b, 0x9c, 0x68, 0x3d, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x39, 0x78, 0x36, 0x99, 0xc7, 0xc1, 0xb1, 0x75, 0xa0, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xdc, 0x8b, 0x1e, 0xbc, 0x95, 0x71, 0x72, 0xc3, 0x2f, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xe0, 0x5e, 0xfc, 0xe0, 0x5e, 0x98, 0x6e, 0xf8, 0x73, 0x69, 0x83, 0x33, 0x24, 0xc1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x1b, 0xbc, 0x6d, 0xb9, 0xe3, 0xe0, 0xfd, 0x9e, 0x93, 0x1b, 0x84, 0xd3, 0xd8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb8, 0x17, 0xe2, 0xc1, 0xbd, 0xb0, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb8, 0x17, 0xf2, 0xc1, 0xbd, 0x30, 0x39, 0x38, 0xf1, 0x7b, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x82, 0x7b, 0x61, 0x33, 0xb8, 0x17, 0x66, 0x07, 0x27, 0x7e, 0x8f, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x70, 0x2f, 0x0c, 0x07, 0xf7, 0xc2, 0xf2, 0xf0, 0xc1, 0xea, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xfe, 0x45, 0x0f, 0xde, 0xca, 0x38, 0xb9, 0xe1, 0x17, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xf0, 0x2f, 0x7e, 0xf0, 0x2f, 0x44, 0x1b, 0xfe, 0x5c, 0x1a, 0x3c, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0xc1, 0xbf, 0x90, 0x1c, 0x3c, 0x2b, 0x76, 0xf2, 0x20, 0x4c, 0xc7, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x70, 0x30, 0x7a, 0xf0, 0x56, 0xc6, 0xc9, 0x0d, 0x0a, 0xd2, 0xd8, 0xc1, 0xc5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x70, 0x30, 0x44, 0x83, 0x83, 0xa1, 0x6a, 0x83, 0x35, 0x52, 0x4d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xe0, 0x60, 0x48, 0x07, 0x07, 0x43, 0xcf, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x0e, 0x86, 0x78, 0x70, 0x30, 0x4c, 0x0e, 0x02, 0x47, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x1c, 0x0c, 0x9b, 0xc1, 0xc1, 0x50, 0xb3, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x70, 0x30, 0x8c, 0x06, 0x07, 0xc3, 0x76, 0xc3, 0x9f, 0x4b, 0x1b, 0x14, 0xad, 0x27, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x38, 0x18, 0x86, 0x07, 0x4f, 0x1e, 0x9e, 0x3c, 0x38, 0xf1, 0x7b, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x82, 0x83, 0x61, 0x3c, 0x38, 0x18, 0x5a, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0xd9, 0xe4, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x07, 0x43, 0xc1, 0xc1, 0xeb, 0x92, 0x27, 0x0f, 0x8e, 0x1c, 0x1f, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x82, 0x83, 0xa1, 0x68, 0x70, 0x30, 0x34, 0x1d, 0x9e, 0xd6, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x83, 0x77, 0xde, 0x74, 0x1c, 0xbc, 0x95, 0x71, 0x72, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x3c, 0x8c, 0x1f, 0x3c, 0x0c, 0x1d, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0f, 0x43, 0x30, 0x78, 0x18, 0x0a, 0x36, 0x3c, 0x28, 0xb9, 0x86, 0xb7, 0x75, 0x0e, 0x4e, 0xa1, 0x1f, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x78, 0x18, 0xc2, 0x83, 0xd7, 0x5b, 0x4f, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x3c, 0x0c, 0xe9, 0xe0, 0x61, 0xd8, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x3c, 0x0c, 0xf1, 0xe0, 0x61, 0x18, 0x1c, 0x3c, 0x0a, 0x70, 0x72, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x3c, 0x0c, 0x8b, 0xc1, 0xc3, 0x30, 0x3a, 0x38, 0xb4, 0x76, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x82, 0x87, 0x61, 0x35, 0x78, 0x18, 0xa6, 0x07, 0xeb, 0x16, 0x8e, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0f, 0xc3, 0x78, 0xf0, 0x30, 0xec, 0x0f, 0xce, 0x70, 0x05, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x82, 0x87, 0xa1, 0x61, 0xf0, 0x30, 0x54, 0x1c, 0xde, 0x0b, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x0d, 0x9e, 0xac, 0xd3, 0x71, 0xf0, 0x56, 0xc6, 0xc9, 0xc3, 0x7b, 0x41, 0x2b, 0xf0, 0xfe, 0xfb, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0x47, 0x86, 0xd0, 0x00, 0x8f, 0xb3, 0x34, 0x33, 0xba, 0x96, 0x30, 0x39, 0xbb, 0xb7, 0x83, 0xb7, 0x11, 0xd9, 0x6d, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0x3c, 0xec, 0x7d, 0x72, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x91, 0xe0, 0x6d, 0x83, 0x50, 0x43, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd6, 0x29, 0xe2, 0x07, 0xd6, 0x29, 0xc2, 0x60, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x3a, 0x45, 0x08, 0x06, 0xd6, 0x29, 0x42, 0xba, 0xe1, 0x8d, 0xbb, 0x83, 0x97, 0x52, 0x1d, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xeb, 0x14, 0x21, 0x1e, 0x58, 0xa7, 0x08, 0xf9, 0x41, 0x41, 0x91, 0xd9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x86, 0xc0, 0xdb, 0x06, 0x41, 0xfb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xe7, 0xc6, 0xdb, 0xc1, 0x3b, 0x8f, 0xeb, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x24, 0x79, 0x3b, 0x78, 0xf0, 0x73, 0xdd, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x11, 0x36, 0x6f, 0x07, 0x0f, 0xc9, 0xae, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x3b, 0xe8, 0xed, 0xe0, 0x25, 0xfe, 0x75, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0x34, 0xbd, 0x1d, 0x3c, 0x95, 0xc0, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x62, 0xab, 0xb7, 0x83, 0xd7, 0xc8, 0xd7, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xdc, 0xf5, 0x76, 0xf0, 0x48, 0x08, 0xbb, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x2b, 0xcc, 0xde, 0x0e, 0x5e, 0x71, 0x61, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x3b, 0xdb, 0xdb, 0xc1, 0x33, 0x3b, 0xec, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x84, 0x7b, 0x3b, 0x78, 0x07, 0x89, 0x5d, 0x2b, 0x50, 0xfc, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xe3, 0x20, 0x64, 0x03, 0x5b, 0x08, 0x71, 0x1b, 0xa4, 0x5e, 0x14, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xca, 0x41, 0xf4, 0xe0, 0xe5, 0x11, 0x94, 0x1b, 0x94, 0x2c, 0xec, 0xb3, 0xcc, 0x1a, 0x3c, 0x92, 0x4e, 0x64, 0xc3, 0xf3, 0x24, 0x1b, 0x3c, 0x5d, 0xc8, 0x6e, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0x91, 0x74, 0x22, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x74, 0x10, 0x37, 0xb0, 0x78, 0x10, 0xbf, 0x41, 0xd0, 0xfe, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x4b, 0x07, 0x21, 0x19, 0x58, 0x3a, 0x08, 0x6f, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x7f, 0x83, 0x2b, 0x73, 0x03, 0x09, 0x73, 0x03, 0x49, 0x82, 0x1a, 0x02, 0x81, 0x7b, 0x93, 0xa3, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x74, 0x10, 0xa2, 0x81, 0xa5, 0x83, 0x90, 0x6f, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xa0, 0x60, 0xe3, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x96, 0x0e, 0xc2, 0x60, 0x60, 0xe9, 0x20, 0xac, 0x36, 0xfc, 0xb9, 0xb4, 0xe1, 0xfb, 0xf6, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x3a, 0x08, 0x8b, 0x83, 0x67, 0x9b, 0x50, 0x6e, 0xf8, 0x77, 0x7e, 0x83, 0x76, 0x0f, 0x38, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xd8, 0x3a, 0x08, 0xc9, 0xc0, 0xd6, 0x41, 0xb8, 0xb3, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x0f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x20, 0x61, 0x6e, 0x20, 0x49, 0x50, 0x43, 0x20, 0x70, 0x6f, 0x72, 0x74, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb6, 0x0e, 0x42, 0x34, 0xb0, 0x75, 0x10, 0xf2, 0x83, 0x97, 0x05, 0x2c, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x5b, 0x07, 0x61, 0x30, 0xb0, 0x75, 0x10, 0x56, 0x1b, 0xfe, 0x5c, 0xda, 0xf0, 0x7d, 0xfb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x6c, 0x1d, 0x84, 0xc5, 0xc1, 0xab, 0x6c, 0x28, 0x0f, 0xde, 0xa8, 0x42, 0xd9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x76, 0x10, 0x92, 0x81, 0xb5, 0x83, 0x70, 0x6c, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x5e, 0xe7, 0xe0, 0xd2, 0xe8, 0x40, 0xc2, 0x40, 0xdc, 0xde, 0xea, 0xdc, 0x40, 0xe8, 0xde, 0x40, 0xe8, 0xd0, 0xca, 0x40, 0x92, 0xa0, 0x86, 0x40, 0xe0, 0xde, 0xe4, 0xe8, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xac, 0x1d, 0x84, 0x68, 0x60, 0xed, 0x20, 0xe4, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x68, 0xcd, 0xdf, 0x72, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x3b, 0x08, 0x83, 0x81, 0xb5, 0x83, 0xb0, 0xda, 0xf0, 0xe7, 0xd2, 0x86, 0xef, 0xdb, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xed, 0x20, 0x2c, 0x0e, 0x1e, 0x76, 0x44, 0x79, 0xf0, 0x46, 0x15, 0xca, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xed, 0x20, 0xcc, 0x06, 0xd6, 0x0e, 0xc2, 0x76, 0xc3, 0x9f, 0x4b, 0x1b, 0x9c, 0x22, 0x4f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xed, 0x20, 0xec, 0x0e, 0x9e, 0xd6, 0x44, 0x79, 0xf0, 0xbe, 0x0d, 0x91, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xed, 0x20, 0x8c, 0x07, 0xd6, 0x0e, 0x42, 0xc3, 0x86, 0x3f, 0x97, 0x36, 0x4c, 0xe7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xac, 0x1d, 0x84, 0xf5, 0xc1, 0x13, 0xa7, 0x28, 0x0f, 0x96, 0xc3, 0x62, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xec, 0x1d, 0x84, 0x64, 0x60, 0xef, 0x20, 0x5c, 0xdb, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0xe7, 0xb9, 0xb7, 0xb0, 0x35, 0x90, 0x30, 0x10, 0xb7, 0xb7, 0x3a, 0x37, 0x10, 0x33, 0xb9, 0xb7, 0x36, 0x10, 0x3a, 0xb4, 0x32, 0x90, 0x24, 0xa8, 0x21, 0x10, 0xb8, 0x37, 0x39, 0xba, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x7b, 0x07, 0x21, 0x1a, 0xd8, 0x3b, 0x08, 0xf9, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x1e, 0xc7, 0xe4, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xec, 0x1d, 0x84, 0xc1, 0xc0, 0xde, 0x41, 0x58, 0x6d, 0xf8, 0x73, 0x69, 0xc3, 0xf7, 0xed, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x77, 0x10, 0x16, 0x07, 0xef, 0x25, 0xa3, 0x3c, 0x78, 0xa3, 0x0a, 0xe5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x77, 0x10, 0x66, 0x03, 0x7b, 0x07, 0x61, 0xbb, 0xe1, 0xcf, 0xa5, 0x0d, 0x4e, 0x91, 0xa7, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x77, 0x10, 0x76, 0x07, 0x2f, 0x56, 0xa3, 0x3c, 0x78, 0xdf, 0x86, 0xc8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x77, 0x10, 0xc6, 0x03, 0x7b, 0x07, 0xa1, 0x61, 0xc3, 0x9f, 0x4b, 0x1b, 0xa6, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf6, 0x0e, 0xc2, 0xfa, 0xe0, 0xe5, 0x70, 0x94, 0x07, 0xcb, 0x61, 0xb1, 0x6b, 0xd6, 0xf0, 0x7d, 0xfb, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x42, 0x08, 0xe9, 0xc0, 0x12, 0x42, 0x58, 0x1c, 0x9c, 0x91, 0x50, 0x57, 0x83, 0x37, 0x45, 0x8e, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0xd7, 0x8c, 0xdb, 0x6d, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xbc, 0x29, 0x72, 0x64, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x56, 0x0f, 0xe2, 0x06, 0x56, 0x10, 0xe2, 0x37, 0x08, 0x35, 0xc4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xf5, 0x20, 0x24, 0x03, 0xab, 0x07, 0x61, 0xb2, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xf5, 0x20, 0x44, 0x03, 0xab, 0x07, 0x21, 0x3f, 0x78, 0xfd, 0x77, 0xca, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x7a, 0x10, 0x06, 0x03, 0xab, 0x07, 0x61, 0x71, 0x50, 0x50, 0x64, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xbb, 0x07, 0x71, 0x07, 0x4f, 0xf3, 0xa3, 0xdc, 0x20, 0x68, 0x7f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xdd, 0x83, 0x90, 0x0c, 0xec, 0x1e, 0x84, 0x37, 0x1b, 0x9e, 0x78, 0xdf, 0xe0, 0xc9, 0xf8, 0x76, 0x1b, 0xac, 0x57, 0xa9, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x76, 0x0f, 0x42, 0x38, 0xb0, 0x7b, 0x10, 0x16, 0x07, 0xef, 0xf2, 0xb7, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xdd, 0x83, 0x30, 0x19, 0xd8, 0x3d, 0x08, 0xdb, 0x83, 0x17, 0x08, 0xdc, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xcb, 0x07, 0x21, 0x19, 0x58, 0x3e, 0x08, 0x3f, 0x36, 0x3c, 0xf1, 0xbe, 0xc1, 0x63, 0xa6, 0xee, 0x36, 0x58, 0xaf, 0x52, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x2c, 0x1f, 0x84, 0x70, 0x60, 0xf9, 0x20, 0x2c, 0x0e, 0x5e, 0x6f, 0xef, 0xb1, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xcb, 0x07, 0x61, 0x32, 0xb0, 0x7c, 0x10, 0xb6, 0x07, 0x2f, 0x10, 0xb8, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb6, 0x0f, 0x42, 0x32, 0xb0, 0x7d, 0x10, 0xbe, 0x6c, 0x78, 0xe2, 0x7d, 0x83, 0xf7, 0x78, 0xdd, 0x6d, 0xb0, 0x5e, 0xa5, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xd8, 0x3e, 0x08, 0xe1, 0xc0, 0xf6, 0x41, 0x58, 0x1c, 0x3c, 0x72, 0xec, 0x6e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb6, 0x0f, 0xc2, 0x64, 0x60, 0xfb, 0x20, 0x6c, 0x0f, 0x5e, 0x20, 0x70, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xac, 0x1f, 0x84, 0x64, 0x60, 0xfd, 0x20, 0xbc, 0xd9, 0xf0, 0xc4, 0xfb, 0x06, 0xef, 0xf2, 0xa0, 0xdc, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x7e, 0x10, 0xa2, 0x81, 0xf5, 0x83, 0x90, 0x1f, 0xbc, 0x79, 0x84, 0x72, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x3f, 0x08, 0x83, 0x81, 0xf5, 0x83, 0xb0, 0xda, 0xf0, 0xe7, 0xd2, 0x86, 0xef, 0xdb, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xfd, 0x20, 0x2c, 0x0e, 0x1e, 0xfe, 0x4a, 0x79, 0xf0, 0x46, 0x15, 0xca, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfd, 0x83, 0x90, 0x0c, 0xec, 0x1f, 0x84, 0x3b, 0x1b, 0x9e, 0x78, 0xdf, 0xe0, 0x69, 0x2e, 0x94, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf6, 0x0f, 0x42, 0x34, 0xb0, 0x7f, 0x10, 0xf2, 0x83, 0x97, 0x05, 0x2c, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xfb, 0x07, 0x61, 0x30, 0xb0, 0x7f, 0x10, 0x56, 0x1b, 0xfe, 0x5c, 0xda, 0xf0, 0x7d, 0xfb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xec, 0x1f, 0x84, 0xc5, 0xc1, 0x2b, 0x79, 0x29, 0x0f, 0xde, 0xa8, 0x42, 0xd9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x80, 0x10, 0x92, 0x81, 0x05, 0x84, 0x70, 0x6c, 0xc3, 0x13, 0xef, 0x1b, 0xbc, 0xad, 0x87, 0x72, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x02, 0x42, 0x88, 0x06, 0x16, 0x10, 0x42, 0x7e, 0xf0, 0x22, 0x22, 0xca, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x01, 0x21, 0x0c, 0x06, 0x16, 0x10, 0xc2, 0x6a, 0xc3, 0x9f, 0x4b, 0x1b, 0xbe, 0x6f, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x05, 0x84, 0xb0, 0x38, 0x78, 0x52, 0x32, 0xe5, 0xc1, 0x1b, 0x55, 0x28, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x05, 0x84, 0x30, 0x1b, 0x58, 0x40, 0x08, 0xdb, 0x0d, 0x7f, 0x2e, 0x6d, 0x70, 0x8a, 0x3c, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x05, 0x84, 0xb0, 0x3b, 0x78, 0xd4, 0x33, 0xe5, 0xc1, 0xfb, 0x36, 0x44, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x05, 0x84, 0x30, 0x1e, 0x58, 0x40, 0x08, 0x0d, 0x1b, 0xfe, 0x5c, 0xda, 0x30, 0x9d, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x80, 0x10, 0xd6, 0x07, 0x8f, 0xab, 0xa6, 0x3c, 0x58, 0x0e, 0x8b, 0xdd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x81, 0x10, 0x92, 0x81, 0x0d, 0x84, 0x70, 0x6d, 0xc3, 0x13, 0xef, 0x1b, 0xbc, 0x50, 0x8b, 0x72, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x06, 0x42, 0x88, 0x06, 0x36, 0x10, 0x42, 0x7e, 0xf0, 0xce, 0x30, 0xca, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x03, 0x21, 0x0c, 0x06, 0x36, 0x10, 0xc2, 0x6a, 0xc3, 0x9f, 0x4b, 0x1b, 0xbe, 0x6f, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x0d, 0x84, 0xb0, 0x38, 0x78, 0x82, 0x38, 0xe5, 0xc1, 0x1b, 0x55, 0x28, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x0d, 0x84, 0x30, 0x1b, 0xd8, 0x40, 0x08, 0xdb, 0x0d, 0x7f, 0x2e, 0x6d, 0x70, 0x8a, 0x3c, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x0d, 0x84, 0xb0, 0x3b, 0x78, 0x04, 0x3a, 0xe5, 0xc1, 0xfb, 0x36, 0x44, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x0d, 0x84, 0x30, 0x1e, 0xd8, 0x40, 0x08, 0x0d, 0x1b, 0xfe, 0x5c, 0xda, 0x30, 0x9d, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x81, 0x10, 0xd6, 0x07, 0x8f, 0x71, 0xa7, 0x3c, 0x58, 0x0e, 0x8b, 0x5d, 0x87, 0x53, 0xac, 0xc3, 0x29, 0x36, 0x0b, 0x9c, 0xfb, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x01, 0xcf, 0x18, 0xdb, 0xdb, 0xd8, 0xda, 0x00, 0xf0, 0x02, 0xdc, 0x1b, 0x5b, 0x5e, 0xdb, 0x9b, 0x1c, 0x1c, 0x5a, 0xda, 0x18, 0xc8, 0x58, 0xd8, 0x18, 0x5a, 0x19, 0x08, 0x5d, 0x1e, 0x5c, 0x19, 0x88, 0xd9, 0x9b, 0x1c, 0x48, 0xdd, 0x5c, 0x19, 0xc8, 0x5d, 0x1a, 0x1d, 0x1a, 0x08, 0x1d, 0x5a, 0x19, 0xc8, 0x18, 0xdb, 0xdb, 0xd8, 0x1a, 0x88, 0x5c, 0x19, 0x1c, 0x5b, 0xd8, 0x58, 0x59, 0x5b, 0x99, 0x1b, 0x1d, 0x48, 0x18, 0xdb, 0xd9, 0x9b, 0x5c, 0x1a, 0x1d, 0x5a, 0xdb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x1b, 0x3c, 0x31, 0x94, 0x63, 0x50, 0x13, 0xb7, 0xe1, 0xe1, 0xfc, 0x05, 0xf8, 0xd7, 0xca, 0xf2, 0x5a, 0xe8, 0xf2, 0xe0, 0xca, 0x01, 0x7e, 0xbb, 0x30, 0xb6, 0x16, 0xba, 0x3c, 0xb8, 0xb2, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x36, 0x78, 0xa7, 0x0d, 0xc7, 0xc1, 0x73, 0x00, 0x2a, 0x37, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1a, 0xe2, 0x07, 0x0d, 0xa1, 0x75, 0xc3, 0x9f, 0x4b, 0x03, 0x7c, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0xf0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x1b, 0xbc, 0x62, 0x88, 0xe3, 0xe0, 0xc9, 0x07, 0x95, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x68, 0x08, 0xf9, 0xc1, 0xfb, 0x86, 0x38, 0x0e, 0x4a, 0xc4, 0xfa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0xd9, 0xe0, 0x69, 0x39, 0x1c, 0x83, 0x86, 0xb0, 0xdd, 0xf0, 0xef, 0xfc, 0x1a, 0x3c, 0x22, 0xa0, 0xb2, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x83, 0x17, 0x35, 0x71, 0x0c, 0x1a, 0x42, 0xe9, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x83, 0x07, 0x49, 0x71, 0x0c, 0x1a, 0x42, 0xd3, 0x86, 0x3f, 0x97, 0x36, 0x38, 0x9b, 0x5c, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc1, 0x8b, 0xaf, 0x38, 0x0e, 0xde, 0x6a, 0x51, 0xb9, 0xe1, 0xdf, 0xf9, 0x0d, 0x1e, 0x24, 0x50, 0xd9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x68, 0x08, 0x55, 0x83, 0x86, 0xd0, 0xb9, 0xe1, 0xcf, 0xa5, 0x01, 0x1e, 0x33, 0xb9, 0xb2, 0x39, 0x74, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0d, 0xa1, 0xf0, 0xe0, 0x05, 0x1d, 0x95, 0x07, 0x65, 0x96, 0x6e, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x82, 0x8a, 0xf8, 0x41, 0x45, 0xd8, 0x6e, 0xf8, 0x73, 0x69, 0x80, 0x27, 0xae, 0xae, 0xac, 0xae, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x41, 0x45, 0x48, 0x0f, 0x1e, 0x30, 0x52, 0xb9, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x82, 0x8a, 0x10, 0x0f, 0x2a, 0xc2, 0xe2, 0xe0, 0xe1, 0x07, 0x8c, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xa0, 0x22, 0x4c, 0x06, 0x15, 0x61, 0x7a, 0xf0, 0x98, 0x88, 0xca, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x41, 0x47, 0xfc, 0xa0, 0x23, 0xe4, 0x1b, 0xfe, 0x5c, 0x1a, 0xf0, 0xe7, 0xd2, 0xf4, 0xca, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x36, 0x78, 0xe2, 0x08, 0xc7, 0xc1, 0x3b, 0x5c, 0x2a, 0x0f, 0xca, 0x2c, 0xdd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x50, 0x12, 0x3f, 0x28, 0x09, 0xb3, 0x0d, 0x7f, 0x2e, 0x0d, 0xf0, 0xb7, 0x85, 0xe1, 0xb5, 0xcc, 0xa5, 0xe9, 0x95, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x6c, 0xf0, 0x42, 0xf7, 0x8d, 0x83, 0xd7, 0xcf, 0x54, 0x6e, 0x10, 0x40, 0x67, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x6c, 0xf0, 0xb2, 0xfa, 0x8d, 0x83, 0xd7, 0xcf, 0x54, 0x6e, 0xf8, 0x11, 0x66, 0x43, 0xcd, 0x0f, 0x12, 0x00, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xa0, 0x25, 0x7e, 0xd0, 0x12, 0xf2, 0x0d, 0x7f, 0x2e, 0x6d, 0xb0, 0x2e, 0xec, 0x7c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2d, 0x21, 0x3d, 0x78, 0x6e, 0x4f, 0xe5, 0x06, 0x01, 0x74, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x06, 0xef, 0xf3, 0xe4, 0x38, 0x78, 0x6e, 0x4f, 0xe5, 0xe1, 0x31, 0x99, 0x56, 0xa0, 0xfc, 0x6f, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x03, 0xfe, 0x1c, 0x5d, 0x1e, 0xbe, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x95, 0x20, 0x64, 0x03, 0x95, 0x20, 0x1c, 0xd9, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x6b, 0x8e, 0x2e, 0x8f, 0xad, 0x8c, 0x0c, 0x84, 0xae, 0x0c, 0x8f, 0x6e, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2a, 0x41, 0x08, 0x07, 0x2a, 0x41, 0x18, 0x1c, 0x84, 0x94, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x09, 0xc2, 0x62, 0xa0, 0x12, 0x84, 0xa2, 0x0d, 0x1f, 0xcc, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x95, 0x20, 0x8c, 0x06, 0x2a, 0x41, 0x98, 0x1d, 0x9c, 0x67, 0x47, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x12, 0x84, 0xdd, 0x40, 0x25, 0x08, 0x3d, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x09, 0xc2, 0x70, 0xa0, 0x12, 0x84, 0xf1, 0x41, 0xe9, 0x4d, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0x82, 0xb0, 0x1e, 0xa8, 0x04, 0xa1, 0x61, 0xc3, 0xbf, 0xf3, 0x0b, 0xf8, 0x73, 0x74, 0x79, 0x6c, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x95, 0x20, 0x54, 0x0c, 0x54, 0x82, 0x50, 0xb3, 0xe1, 0xdf, 0xf9, 0x35, 0x78, 0x6b, 0x51, 0x65, 0xd5, 0x2c, 0xb8, 0xbe, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0xc1, 0x91, 0x21, 0x34, 0xc0, 0x83, 0x2e, 0x6c, 0x6e, 0xad, 0x25, 0x4c, 0xce, 0xee, 0xed, 0xe0, 0xb9, 0xe4, 0x76, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0xcf, 0x0d, 0xab, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x3e, 0x07, 0xda, 0x20, 0x68, 0x7f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xe2, 0x08, 0x3a, 0x78, 0x0a, 0x08, 0xe2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x99, 0x4d, 0x41, 0x07, 0x0f, 0x61, 0x41, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x88, 0x2b, 0xe8, 0xe0, 0x25, 0x26, 0x88, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0x22, 0x06, 0x1d, 0xbc, 0x42, 0x06, 0x71, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x3a, 0xd7, 0xa0, 0x83, 0x67, 0xe0, 0x20, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x62, 0x1c, 0x74, 0xf0, 0x0e, 0x1f, 0xc4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xa3, 0xa0, 0x83, 0x0e, 0x1e, 0x41, 0x84, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xb5, 0x7b, 0xd0, 0xc1, 0x2b, 0x94, 0x10, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xd9, 0x0f, 0x3a, 0x78, 0x04, 0x14, 0xe2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xed, 0xfe, 0x41, 0x07, 0x6f, 0xb0, 0x42, 0xec, 0x70, 0x8a, 0x2d, 0x70, 0xbe, 0x6f, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0x3c, 0x63, 0xf0, 0x6e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xb0, 0x79, 0x6c, 0xc3, 0x07, 0xf3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0xb1, 0x8f, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x43, 0x57, 0x86, 0x47, 0x07, 0x32, 0xf6, 0xc6, 0xf6, 0x26, 0xb7, 0x41, 0xb0, 0x99, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xfa, 0x3e, 0x76, 0xb0, 0x30, 0xb9, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xba, 0xf9, 0xb1, 0x83, 0x27, 0x1f, 0xc4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x88, 0x3f, 0x76, 0xb0, 0x52, 0x1c, 0x71, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x2a, 0xfe, 0xb1, 0x83, 0xb5, 0x33, 0x7b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0x02, 0x90, 0x1d, 0x2c, 0xca, 0x73, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xb6, 0x80, 0xec, 0xe0, 0xf1, 0xd4, 0x7b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0x26, 0x90, 0x1d, 0xac, 0xd1, 0x61, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xd3, 0x81, 0xec, 0x60, 0x69, 0xb5, 0xe2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb1, 0x11, 0x64, 0x1b, 0x32, 0xe0, 0x07, 0xc3, 0x6e, 0xb7, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x4e, 0xe8, 0xb1, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xfc, 0x65, 0x68, 0xc4, 0xd2, 0xe8, 0x40, 0xe8, 0xe4, 0xea, 0xca, 0x40, 0xc6, 0xde, 0xd8, 0xde, 0xe4, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x69, 0xf5, 0xd8, 0x86, 0x3f, 0x97, 0x06, 0x97, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x53, 0xa6, 0xc7, 0x36, 0x7c, 0x51, 0xb3, 0xa1, 0x8e, 0x07, 0x5e, 0x1d, 0x1e, 0xb1, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xa8, 0xf7, 0xd8, 0x86, 0x3f, 0x97, 0x06, 0x3f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x43, 0xb8, 0xc7, 0x0e, 0x9e, 0x68, 0x59, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc9, 0xf9, 0xd8, 0x86, 0x3f, 0x97, 0x06, 0x17, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x43, 0xc9, 0xc7, 0x0e, 0x9e, 0x68, 0x59, 0xd9, 0x0a, 0xea, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x9e, 0x99, 0x6c, 0xd7, 0x00, 0x5e, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x71, 0x79, 0x6f, 0x1b, 0x94, 0x2c, 0xec, 0xb3, 0xcc, 0x02, 0xbe, 0xd8, 0xdb, 0x1d, 0xbb, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0x56, 0xd2, 0xca, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x5c, 0xc0, 0xb7, 0x0d, 0x0e, 0x10, 0xa2, 0x03, 0x78, 0xcd, 0xd1, 0xc9, 0x85, 0xb9, 0x91, 0xb5, 0x88, 0xbd, 0xdd, 0xb1, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x41, 0x7e, 0x6f, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xbb, 0xf0, 0x6d, 0xc3, 0x9f, 0x4b, 0x03, 0xde, 0x5b, 0x9d, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x34, 0xf8, 0x76, 0xd0, 0xb6, 0xf5, 0xf8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x21, 0x8d, 0x6f, 0x1b, 0xfe, 0x5c, 0xda, 0xa0, 0xd5, 0xe1, 0xcf, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x46, 0xc5, 0xb7, 0x83, 0xb6, 0xad, 0xc7, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xa3, 0x7c, 0xdb, 0xf0, 0xe7, 0xd2, 0x06, 0x4b, 0x0c, 0xeb, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xab, 0x23, 0xdf, 0x36, 0xfc, 0x3b, 0xbf, 0xc1, 0x02, 0xc3, 0xfa, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xe2, 0x7c, 0xdb, 0xf0, 0xe7, 0xd2, 0x80, 0xd7, 0xf6, 0xd6, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0x66, 0xbe, 0x6d, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0x7f, 0xbe, 0x1d, 0x94, 0x4d, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0x90, 0xbe, 0x1d, 0x3c, 0xcd, 0xb6, 0xb2, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x4b, 0x58, 0xdf, 0x36, 0xfc, 0xb9, 0x34, 0xe0, 0xdd, 0x95, 0xe1, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x91, 0xa9, 0x6f, 0x1b, 0xfe, 0x9d, 0x5f, 0x83, 0x07, 0xaa, 0x04, 0x75, 0xf0, 0x9a, 0xf9, 0xba, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xc3, 0x6a, 0xdf, 0x36, 0xfc, 0xb9, 0x34, 0xe0, 0xcd, 0xd5, 0xc1, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xcd, 0xb2, 0x6f, 0x1b, 0xfe, 0x9d, 0x5f, 0xc0, 0x17, 0x4b, 0xa3, 0xa3, 0x3b, 0x78, 0xcd, 0x7c, 0xdd, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xad, 0xbe, 0x6f, 0x1b, 0xfe, 0x5c, 0x1a, 0xf0, 0xca, 0xdc, 0xf2, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x0c, 0xde, 0xb7, 0x83, 0xe7, 0xde, 0x83, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x83, 0xfc, 0xb6, 0xe1, 0xcf, 0xa5, 0x0d, 0x12, 0x08, 0x37, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x53, 0x8b, 0xdf, 0x0e, 0x8e, 0x7c, 0xad, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0x47, 0xbf, 0x6d, 0xf8, 0x73, 0x69, 0xc0, 0x13, 0xcb, 0x5b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x73, 0x9e, 0xdf, 0x0e, 0x9e, 0x6a, 0x14, 0xd2, 0x6a, 0xb0, 0xc4, 0xb0, 0x7e, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0x60, 0x89, 0x61, 0xfd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x08, 0xf6, 0xdb, 0x86, 0x2f, 0x6a, 0x36, 0xd4, 0xf1, 0x83, 0xa7, 0x6f, 0xbf, 0xad, 0x06, 0x2f, 0x96, 0x17, 0xd9, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0xb1, 0xbc, 0xc8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x2b, 0xf8, 0xdb, 0x86, 0x7f, 0xe7, 0x37, 0x78, 0x29, 0xda, 0xc8, 0xc1, 0x0b, 0xd4, 0x14, 0x67, 0x01, 0xbc, 0xe6, 0xe8, 0xe4, 0xc2, 0xdc, 0xc8, 0x5a, 0xcc, 0xc2, 0xd2, 0xd8, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x1e, 0xf3, 0xb7, 0x0d, 0xbf, 0x28, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x7b, 0x0c, 0x21, 0x19, 0xd8, 0x63, 0x08, 0xf9, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x94, 0x3e, 0xde, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xec, 0x31, 0x84, 0xe8, 0xe0, 0xf1, 0xe1, 0x95, 0x1b, 0xfe, 0x9d, 0xdf, 0xe0, 0xf5, 0xff, 0x78, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0xa5, 0xbf, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x64, 0x08, 0xc9, 0xc0, 0x22, 0x43, 0x58, 0x6d, 0xf8, 0x77, 0x7e, 0x01, 0xfc, 0xe6, 0xe8, 0xe4, 0xc2, 0xdc, 0xc8, 0x5a, 0xd2, 0xdc, 0xe0, 0xea, 0xe8, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x68, 0x7f, 0xdb, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x99, 0xef, 0x6f, 0x07, 0x05, 0x45, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x61, 0xf2, 0x6f, 0x1b, 0xde, 0xb8, 0xdb, 0xf0, 0xf2, 0xdd, 0xc1, 0x9a, 0xd0, 0xda, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x1b, 0xeb, 0xdf, 0x36, 0xbc, 0xad, 0x73, 0xf0, 0xfa, 0x7f, 0xbc, 0x0e, 0xa7, 0x58, 0x0b, 0xe0, 0x3d, 0x47, 0x27, 0x17, 0xe6, 0x46, 0xd6, 0x62, 0xf6, 0x26, 0xd7, 0xd6, 0x22, 0x17, 0x76, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0xe3, 0xbf, 0x6d, 0x50, 0x28, 0x77, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x0b, 0x0c, 0x21, 0x19, 0x58, 0x60, 0x08, 0xf9, 0x86, 0x3f, 0x97, 0x06, 0x0f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x81, 0x21, 0x64, 0x07, 0x8f, 0xd5, 0xaf, 0x3c, 0x38, 0xb6, 0x0e, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0xf1, 0xbf, 0x6d, 0xf8, 0xa8, 0x7d, 0x83, 0x03, 0x84, 0xe8, 0x06, 0xaf, 0xa9, 0xaf, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xfd, 0x7f, 0xdb, 0x20, 0x9c, 0xc6, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x13, 0x80, 0x3b, 0x78, 0xab, 0x7a, 0xe5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xa0, 0x01, 0xdc, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x84, 0x02, 0xdc, 0x86, 0xb7, 0x75, 0x06, 0xe0, 0x61, 0x8e, 0x4e, 0x2e, 0xcc, 0x8d, 0xac, 0xe5, 0xad, 0x8e, 0x0e, 0xae, 0x8e, 0xae, 0x45, 0x2e, 0xec, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x56, 0x07, 0xb8, 0x83, 0x43, 0xa7, 0x65, 0xab, 0xc1, 0xa3, 0xf4, 0xf1, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x1e, 0xa5, 0x8f, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x45, 0x01, 0xb7, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x7e, 0x01, 0x77, 0x50, 0x7a, 0xd3, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xc3, 0x01, 0x77, 0xb0, 0x5e, 0xeb, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xa6, 0x11, 0xb8, 0x0d, 0x0e, 0x10, 0xa2, 0x1b, 0x9c, 0x28, 0x53, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x5b, 0x41, 0xe0, 0x0e, 0x1a, 0x14, 0x0f, 0x6c, 0x35, 0x78, 0xca, 0x7a, 0xe5, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x53, 0xd6, 0x2b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x33, 0x59, 0xe0, 0x36, 0x38, 0x40, 0x88, 0x6e, 0xf0, 0x94, 0xf5, 0xca, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x08, 0x15, 0xb8, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x1a, 0x03, 0xb7, 0xe1, 0xcf, 0xa5, 0x0d, 0xde, 0x4a, 0x5a, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xf2, 0x02, 0xb7, 0xe1, 0xdf, 0xf9, 0x35, 0x78, 0x2b, 0x69, 0x65, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x8d, 0x03, 0xb7, 0xe1, 0xcf, 0xa5, 0x81, 0x4f, 0x73, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x93, 0x6c, 0xe0, 0x36, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xdb, 0x78, 0xe0, 0x0e, 0xca, 0x26, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x73, 0x81, 0xe0, 0x36, 0xfc, 0x3b, 0xbf, 0x00, 0x4f, 0x9a, 0x1b, 0x5c, 0x1d, 0x5d, 0x75, 0x38, 0xc5, 0xd6, 0xe0, 0xd1, 0x07, 0x96, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x15, 0x45, 0x70, 0x1b, 0x14, 0xca, 0x9d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xca, 0x42, 0x48, 0x06, 0x56, 0x16, 0x42, 0xbe, 0xe1, 0xcf, 0xa5, 0xc1, 0xc3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x59, 0x08, 0xd9, 0xc1, 0x13, 0x5a, 0x2c, 0x0f, 0x8e, 0xad, 0x03, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x5d, 0x48, 0x70, 0x1b, 0x3e, 0x6a, 0xdf, 0xe0, 0x00, 0x21, 0xba, 0xc1, 0xa3, 0x0f, 0x2c, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x3b, 0x96, 0xe0, 0x36, 0x08, 0x35, 0xc4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x43, 0x9b, 0xe0, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x0f, 0x14, 0xdc, 0x41, 0x41, 0x91, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc7, 0x14, 0xdc, 0x41, 0xcb, 0x8b, 0xa0, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0x58, 0xc1, 0x6d, 0x50, 0x08, 0xa6, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0x63, 0xc1, 0x1d, 0x1c, 0x3a, 0x2d, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0xe2, 0x82, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x2d, 0x62, 0x70, 0x1b, 0xfe, 0x5c, 0x1a, 0xe0, 0x19, 0x0b, 0x93, 0x23, 0x9b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x33, 0xbf, 0xe0, 0x36, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x7b, 0xcb, 0xe0, 0x0e, 0x42, 0xca, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x02, 0x35, 0xb8, 0x83, 0xc7, 0xa0, 0x8d, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x86, 0x1c, 0xdc, 0x86, 0x3f, 0x97, 0x36, 0x58, 0x3f, 0x5c, 0xbb, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xf8, 0x06, 0xb7, 0x41, 0xd0, 0xfe, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x56, 0x07, 0xb7, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x13, 0xf0, 0xe0, 0x0e, 0x16, 0xd2, 0x84, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xd2, 0x07, 0x77, 0x10, 0x82, 0x0f, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x1a, 0x08, 0xb7, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x8b, 0x08, 0xe1, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0x50, 0xde, 0xc7, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x9d, 0x08, 0x77, 0x10, 0x82, 0x0f, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xe8, 0x08, 0xb7, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x43, 0x22, 0xe1, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xf0, 0x4a, 0x46, 0xb8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x9b, 0x32, 0xe1, 0x36, 0xfc, 0xb9, 0x34, 0xe0, 0xcf, 0x95, 0xb1, 0x99, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb1, 0x96, 0x70, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xe1, 0x9c, 0x70, 0x1b, 0xde, 0xd6, 0xd9, 0xe0, 0x35, 0xf5, 0x95, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x12, 0x0a, 0x77, 0x70, 0xe8, 0xb4, 0xac, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x1b, 0x4c, 0xe1, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x2a, 0x2a, 0xdc, 0x86, 0x0c, 0xf8, 0xc1, 0x63, 0xe3, 0x2b, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x86, 0x85, 0xdb, 0xf0, 0xe7, 0xd2, 0x06, 0x4d, 0x98, 0x8f, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0xb8, 0xc2, 0x1d, 0xbc, 0xb8, 0xbc, 0xb2, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x13, 0x6a, 0xe1, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xe9, 0x2d, 0xdc, 0xc1, 0x2a, 0x94, 0xf0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xc3, 0x7e, 0xe1, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0x89, 0xd6, 0x63, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x99, 0x17, 0xee, 0xe0, 0xd0, 0x69, 0x59, 0x1d, 0x4e, 0xb1, 0x35, 0x78, 0x78, 0xb1, 0xdd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xf3, 0x30, 0xdc, 0x06, 0x85, 0x72, 0xe7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0xd4, 0x10, 0x92, 0x81, 0xa5, 0x86, 0x90, 0x6f, 0xf8, 0x73, 0x69, 0xf0, 0x70, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x96, 0x1a, 0x42, 0x76, 0xf0, 0xa0, 0x39, 0xcb, 0x83, 0x63, 0xeb, 0xc0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc5, 0x31, 0xdc, 0x06, 0x25, 0x0b, 0xfb, 0x2c, 0xb3, 0x06, 0x6b, 0x2e, 0xc2, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x83, 0x93, 0xe1, 0x36, 0x7c, 0xd4, 0xbe, 0xc1, 0x01, 0x42, 0x74, 0x83, 0x35, 0x17, 0xe1, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x99, 0xcc, 0x70, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xa1, 0xcf, 0x70, 0x07, 0xef, 0x3a, 0xb0, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x88, 0x1a, 0xee, 0xe0, 0xd0, 0x69, 0xd9, 0x6a, 0xf0, 0x96, 0x5f, 0xbb, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xa6, 0x6d, 0xb8, 0x0d, 0x1f, 0xb5, 0x6f, 0x70, 0x80, 0x10, 0xdd, 0xe0, 0x2d, 0xbf, 0x76, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xc5, 0xde, 0x70, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x61, 0xe2, 0x70, 0x07, 0x2f, 0xed, 0xb2, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xd4, 0x1c, 0xee, 0xe0, 0xd0, 0x69, 0xd9, 0x0a, 0xf8, 0x70, 0x75, 0x72, 0xe5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xb4, 0x3a, 0xdc, 0x86, 0x5f, 0x94, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x6c, 0x87, 0xdb, 0xf0, 0xe7, 0xd2, 0x06, 0x47, 0x4a, 0xcb, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x14, 0x78, 0xb8, 0x83, 0x43, 0xa7, 0xe5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xce, 0x3c, 0xdc, 0x86, 0xbf, 0x68, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x05, 0x87, 0x90, 0x0d, 0x2c, 0x38, 0x84, 0xfc, 0xe0, 0xb1, 0xbe, 0x76, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xbd, 0xf5, 0x70, 0x1b, 0x7e, 0x51, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x36, 0x1c, 0x42, 0x36, 0xb0, 0xe1, 0x10, 0x76, 0x07, 0x6f, 0x55, 0xaf, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xc9, 0x87, 0xdb, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb5, 0xfb, 0x70, 0x07, 0x05, 0x45, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x95, 0xfe, 0x70, 0x07, 0x2d, 0x2f, 0x82, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x1a, 0x10, 0x77, 0x70, 0xd2, 0xb5, 0xec, 0x70, 0x8a, 0xb5, 0x06, 0x67, 0x03, 0x82, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x8e, 0x82, 0xb8, 0x0d, 0x0a, 0xe5, 0xce, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xcf, 0x21, 0x64, 0x03, 0x7b, 0x0e, 0x61, 0xb1, 0xe1, 0xcf, 0xa5, 0xc1, 0xc5, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xd8, 0x73, 0x08, 0xe9, 0xc1, 0x4b, 0x46, 0x2d, 0x0f, 0x8e, 0xad, 0x03, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x71, 0x08, 0x71, 0x1b, 0x7e, 0x51, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x66, 0x21, 0x6e, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x47, 0x37, 0xc4, 0x6d, 0xf8, 0x73, 0x69, 0xc0, 0x6b, 0x6b, 0x11, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xd3, 0x20, 0xe2, 0x36, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xd3, 0x26, 0xe2, 0x0e, 0x5e, 0xda, 0x65, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xec, 0x45, 0xdc, 0xc1, 0x3b, 0x99, 0x47, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x64, 0x23, 0x6e, 0xc3, 0x9f, 0x4b, 0x1b, 0x8c, 0x55, 0x81, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xe0, 0x8e, 0xb8, 0x0d, 0xc2, 0x69, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x48, 0x90, 0xb8, 0x83, 0x77, 0x32, 0x8f, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0x8e, 0xc4, 0x1d, 0x3c, 0xd6, 0xd7, 0xae, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xe4, 0x93, 0xb8, 0x0d, 0x7f, 0xd1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x9b, 0x0e, 0x21, 0x1b, 0xd8, 0x74, 0x08, 0xf9, 0xc1, 0x63, 0x7d, 0xed, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x9b, 0x54, 0xe2, 0x36, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xac, 0x3a, 0x84, 0x6c, 0x60, 0xd5, 0x21, 0xac, 0x37, 0xfc, 0xb9, 0xb4, 0xc1, 0x8b, 0x4f, 0x2c, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xd5, 0x21, 0x2c, 0x0e, 0x9e, 0x03, 0x6c, 0x79, 0xf0, 0x56, 0xf5, 0xca, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xdc, 0x96, 0xb8, 0x0d, 0x0a, 0xd2, 0xd8, 0x35, 0x7c, 0xdf, 0x3e, 0xc0, 0x23, 0xd6, 0x22, 0x57, 0x36, 0x6f, 0x50, 0x42, 0xc7, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xbb, 0x0e, 0x61, 0x31, 0xb0, 0xeb, 0x10, 0x6a, 0x36, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xd7, 0x21, 0x4c, 0x06, 0x76, 0x1d, 0x42, 0xc7, 0xc1, 0xbb, 0x0e, 0x2c, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5d, 0x87, 0x50, 0x32, 0xb0, 0xeb, 0x10, 0x5a, 0x0e, 0xde, 0xc9, 0x3c, 0xd2, 0x41, 0x98, 0x8e, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x07, 0x13, 0xb7, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x93, 0x66, 0xe2, 0x36, 0xbc, 0xad, 0x33, 0xe0, 0xb5, 0xb5, 0x88, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x74, 0x13, 0xb7, 0xe1, 0x6d, 0x9d, 0x83, 0xf7, 0x9e, 0x58, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xa7, 0x13, 0xb7, 0xe1, 0x2f, 0x9a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xdb, 0x21, 0x64, 0x03, 0xdb, 0x0e, 0x61, 0x71, 0xd0, 0x36, 0x99, 0xf6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x3d, 0x4f, 0xdc, 0x06, 0x85, 0xa1, 0xea, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x81, 0x3f, 0x71, 0x1b, 0xde, 0xd6, 0xd9, 0xe0, 0x99, 0x40, 0x96, 0x1b, 0xbc, 0xd7, 0xd8, 0xb2, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x42, 0xa1, 0xb8, 0x0d, 0x82, 0xf4, 0x74, 0x8d, 0x43, 0x1b, 0xac, 0x1f, 0xae, 0x3d, 0x78, 0xd1, 0xb7, 0xe5, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xc2, 0x43, 0x48, 0x06, 0x16, 0x1e, 0x42, 0x7c, 0xb0, 0x90, 0x26, 0x7c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xb9, 0x28, 0x6e, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0x21, 0xc5, 0x1d, 0x34, 0xb3, 0xa7, 0xbd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xe1, 0x52, 0xdc, 0x41, 0x41, 0x91, 0xd9, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xc6, 0x43, 0x48, 0x06, 0x36, 0x1e, 0x42, 0x7c, 0xf0, 0xd4, 0x28, 0xcb, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xe4, 0xa7, 0xb8, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x26, 0x15, 0xb7, 0xe1, 0x8d, 0xbb, 0x83, 0x27, 0x48, 0x59, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x58, 0x15, 0x77, 0x50, 0x50, 0x64, 0xb6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0xf2, 0x10, 0x92, 0x81, 0x95, 0x87, 0x10, 0x1f, 0x3c, 0xe9, 0xca, 0x72, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x3a, 0x2b, 0x6e, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0x71, 0xc5, 0x6d, 0x78, 0xe3, 0xee, 0xe0, 0xa9, 0x57, 0x96, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0x7e, 0xc5, 0x6d, 0xb8, 0xa4, 0x36, 0x68, 0xad, 0xd6, 0x6a, 0x0d, 0x5e, 0x45, 0x6d, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x2a, 0x16, 0xb7, 0xe1, 0x6d, 0x9d, 0x0d, 0xde, 0xa3, 0x65, 0x79, 0xf0, 0xe2, 0x70, 0xcb, 0x5a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xd8, 0x79, 0x08, 0xc9, 0xc0, 0xce, 0x43, 0x88, 0x0f, 0xde, 0x31, 0x66, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x75, 0x16, 0xb7, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x03, 0xd4, 0xe2, 0x0e, 0x5e, 0x14, 0x5f, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x49, 0x5b, 0xdc, 0x86, 0xb7, 0x75, 0x36, 0x68, 0xc2, 0x7c, 0xf4, 0xe0, 0xc5, 0xe1, 0x96, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x2c, 0x3d, 0x84, 0x64, 0x60, 0xe9, 0x21, 0xc4, 0x07, 0xab, 0x50, 0xc2, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xfb, 0xe3, 0xe2, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x28, 0x5d, 0xdc, 0xc1, 0xdb, 0xf0, 0x2d, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0xbe, 0x8b, 0xdb, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x9d, 0x7a, 0x71, 0x07, 0xe7, 0xf1, 0xae, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x6b, 0xfd, 0xe2, 0x36, 0xbc, 0xad, 0xb3, 0xc1, 0x89, 0xd6, 0xe3, 0xe0, 0xc5, 0xe1, 0x96, 0xd5, 0x2c, 0xe0, 0x97, 0xd9, 0x85, 0xb1, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb5, 0x82, 0x71, 0x1b, 0x94, 0x2c, 0xec, 0xb3, 0xcc, 0x02, 0x78, 0x95, 0xd9, 0x85, 0xb1, 0xb5, 0xc8, 0x95, 0xcd, 0xd5, 0xb1, 0xd1, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0x6f, 0xb3, 0xb8, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x2c, 0x8c, 0xdb, 0x20, 0x68, 0x7f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xaa, 0x8c, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xf1, 0x97, 0x71, 0x07, 0xcf, 0x6a, 0xf0, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x7b, 0x33, 0xee, 0x20, 0x04, 0x1f, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x04, 0x34, 0x6e, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0x8b, 0xc6, 0x1d, 0xbc, 0x63, 0xcc, 0x72, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x3c, 0xd5, 0xb8, 0x0d, 0x7f, 0x2e, 0x6d, 0xd0, 0x84, 0xf9, 0xe8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xf7, 0x69, 0xdc, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x83, 0x6b, 0xdc, 0x41, 0xe9, 0x4d, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xb5, 0x6c, 0xdc, 0xc1, 0x7a, 0xad, 0xe7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x33, 0x6e, 0xe3, 0x0e, 0x1a, 0x14, 0x0f, 0xac, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x5b, 0x10, 0xe3, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xb2, 0x62, 0xdc, 0xc1, 0x2a, 0x94, 0xf0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xc3, 0x1b, 0xe3, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0x89, 0xd6, 0x63, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x0f, 0x32, 0xee, 0xe0, 0xd0, 0x69, 0x59, 0x2b, 0x80, 0x47, 0x99, 0x5d, 0x18, 0x5b, 0x8b, 0xd9, 0x9b, 0x5c, 0xbb, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0x8e, 0x99, 0xcb, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x50, 0xe1, 0xb8, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x7c, 0x1c, 0xb7, 0xe1, 0xcf, 0xa5, 0x0d, 0xde, 0xf2, 0x6b, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x53, 0x1c, 0x77, 0xf0, 0x58, 0x5f, 0xbb, 0x0e, 0xa7, 0xd8, 0x1a, 0xb4, 0xb9, 0x43, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xc2, 0x1c, 0xb7, 0x41, 0x69, 0x6f, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xbb, 0x73, 0xdc, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x26, 0x90, 0xe5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x60, 0x74, 0xdc, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x20, 0x75, 0xdc, 0x41, 0x48, 0x99, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x8c, 0x1d, 0x77, 0xf0, 0x18, 0xb4, 0x91, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x4b, 0xb9, 0xe3, 0x36, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xdc, 0x77, 0xdc, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x10, 0x8f, 0xdb, 0xf0, 0xe7, 0xd2, 0x06, 0xef, 0x98, 0xb9, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x25, 0x8f, 0xdb, 0xf0, 0xef, 0xfc, 0x1a, 0xbc, 0x63, 0xe6, 0xb2, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x41, 0x8f, 0xdb, 0xf0, 0xe7, 0xd2, 0x06, 0x4f, 0x59, 0xaf, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x55, 0x8f, 0x3b, 0x78, 0xab, 0x7a, 0x65, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x5d, 0xee, 0x71, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x96, 0x24, 0x42, 0x3a, 0xb0, 0x24, 0x11, 0x4a, 0x37, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x2c, 0x49, 0x84, 0x78, 0x60, 0x49, 0x22, 0x14, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x92, 0x08, 0xf9, 0xc0, 0x92, 0x44, 0x98, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x92, 0x44, 0x18, 0x0c, 0x2c, 0x49, 0x84, 0xd1, 0x41, 0x48, 0x99, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x4b, 0x12, 0x61, 0x35, 0xb0, 0x24, 0x11, 0x96, 0x07, 0x8f, 0x41, 0x1b, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x92, 0x08, 0xdb, 0x81, 0x25, 0x89, 0xd0, 0xb3, 0xe1, 0xcf, 0xa5, 0x0d, 0xde, 0x66, 0x71, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x4b, 0x12, 0x61, 0x7c, 0xf0, 0xd0, 0xb0, 0xcb, 0x0d, 0xff, 0xce, 0xaf, 0xc1, 0xdb, 0x2c, 0x2e, 0xab, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x49, 0x22, 0x34, 0x0d, 0x2c, 0x49, 0x84, 0xce, 0x0d, 0x02, 0xe8, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x96, 0x24, 0x42, 0xd5, 0xc1, 0xdb, 0xd0, 0x2e, 0x37, 0xbc, 0xad, 0x73, 0xf0, 0xe2, 0xa5, 0xcb, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xdb, 0xe1, 0xe3, 0x36, 0x58, 0xe9, 0xe2, 0xb4, 0x00, 0x1e, 0x74, 0x61, 0x6b, 0x65, 0x2d, 0x6c, 0x6f, 0x6f, 0x70, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x96, 0x44, 0x18, 0x0e, 0x6c, 0x49, 0x84, 0xe5, 0x41, 0x00, 0xb2, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0xcf, 0xc7, 0x6d, 0x50, 0xf4, 0xe9, 0x2e, 0xf0, 0x69, 0xee, 0xc1, 0x43, 0xd6, 0x2b, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xb8, 0x8f, 0xdb, 0xa0, 0x84, 0xc7, 0xdc, 0xe0, 0x55, 0x74, 0x97, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0xe9, 0xc7, 0x1d, 0x14, 0x14, 0x99, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x4d, 0xfd, 0x71, 0x1b, 0x14, 0xa4, 0xb1, 0x03, 0x9f, 0xe6, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x01, 0x20, 0xb7, 0xe1, 0x6d, 0x9d, 0xc1, 0xeb, 0x83, 0x57, 0xd1, 0x5d, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0x0c, 0xc8, 0x6d, 0x50, 0xec, 0x68, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x5e, 0x20, 0xb7, 0x41, 0x31, 0x89, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x6c, 0x4a, 0x84, 0xc9, 0xc0, 0xa6, 0x44, 0x18, 0x6e, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xe0, 0xe9, 0x07, 0x72, 0x1b, 0x87, 0x0e, 0x8a, 0xad, 0xf7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x23, 0x8e, 0xe4, 0x36, 0x38, 0x86, 0x1b, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0x28, 0xc9, 0x1d, 0x94, 0x4d, 0xef, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x0d, 0x0a, 0x72, 0x1b, 0x14, 0x3b, 0x9a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0x33, 0xc8, 0x6d, 0x50, 0x4c, 0x62, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xab, 0x12, 0x61, 0x32, 0xb0, 0x2a, 0x11, 0x76, 0x07, 0x4f, 0xf2, 0x53, 0xdc, 0x38, 0xb4, 0xc1, 0xab, 0xd2, 0x14, 0x0f, 0x8a, 0xad, 0xf7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x9b, 0x82, 0xe4, 0x36, 0x38, 0x86, 0x1b, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0x10, 0xc9, 0x1d, 0x94, 0x4d, 0xef, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x99, 0x10, 0x72, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x6b, 0x42, 0x6e, 0x83, 0x62, 0x12, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xd8, 0x95, 0x08, 0x93, 0x81, 0x5d, 0x89, 0x30, 0xdf, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0xbb, 0x2a, 0xe4, 0x06, 0x87, 0x37, 0x78, 0x5d, 0x58, 0xc8, 0xc1, 0xeb, 0x1d, 0x2f, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xc2, 0x90, 0xdb, 0xe0, 0x18, 0x6e, 0xb0, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xb4, 0x21, 0x77, 0x50, 0x36, 0xbd, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0x78, 0xc8, 0x6d, 0x50, 0x18, 0xaa, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x0b, 0x22, 0x77, 0x50, 0x50, 0x64, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0x8e, 0xc8, 0x6d, 0xb0, 0xa8, 0x3c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x16, 0x13, 0xb9, 0x0d, 0x6f, 0xdc, 0x1d, 0xbc, 0x71, 0xf0, 0x72, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xaa, 0x14, 0xb9, 0x0d, 0x6f, 0xeb, 0x6c, 0xf0, 0x8a, 0x4a, 0x91, 0x83, 0x62, 0xeb, 0x7d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x32, 0x16, 0xb9, 0x0d, 0x6f, 0xdc, 0x1d, 0x3c, 0xd5, 0x4f, 0x71, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xf2, 0x45, 0x6e, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0xc9, 0xc8, 0x6d, 0x78, 0x5b, 0x67, 0x00, 0x4f, 0xbb, 0x30, 0xb6, 0x34, 0xb2, 0x30, 0xba, 0xb2, 0x96, 0xb6, 0x30, 0xb9, 0xb5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xd3, 0x6d, 0xe4, 0x36, 0xbc, 0xad, 0x33, 0x78, 0x3c, 0x78, 0x7c, 0xf0, 0x34, 0xcd, 0xcb, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xfb, 0x74, 0xe4, 0x36, 0xbc, 0xad, 0x73, 0xf0, 0x14, 0xcd, 0xcb, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x1b, 0x7c, 0xe4, 0x36, 0xbc, 0xad, 0xb3, 0xc1, 0x5b, 0x49, 0x2b, 0x0f, 0x1e, 0xb2, 0x5e, 0xd9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x44, 0x93, 0xdc, 0x06, 0x05, 0x69, 0xec, 0x1a, 0xbe, 0x6f, 0xdf, 0x60, 0xcd, 0x45, 0xf8, 0x06, 0x25, 0x74, 0xec, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x32, 0x11, 0xe2, 0x81, 0x95, 0x89, 0x30, 0x3a, 0x68, 0x9b, 0x4c, 0xfb, 0x20, 0x4c, 0xc7, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x7e, 0x92, 0xdb, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb5, 0x52, 0x72, 0x1b, 0xde, 0xd6, 0xd9, 0xe0, 0x2d, 0xbf, 0x76, 0x07, 0x2f, 0x5e, 0xba, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xd8, 0x4a, 0x6e, 0xc3, 0xdb, 0x3a, 0x07, 0x0f, 0x59, 0xaf, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x3d, 0x4b, 0x6e, 0x83, 0xa2, 0x4f, 0x77, 0x0d, 0x9e, 0x09, 0x64, 0xd9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x1d, 0x5d, 0x72, 0x1b, 0x14, 0x9d, 0xc6, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0x7f, 0xc9, 0x1d, 0x1c, 0xb2, 0x16, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x26, 0x93, 0xdb, 0xf0, 0xb6, 0xce, 0xc1, 0x43, 0x8b, 0x2f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x73, 0xd0, 0xe4, 0x36, 0xbc, 0xad, 0xb3, 0xc1, 0x33, 0x81, 0x2c, 0x0f, 0x1a, 0x2e, 0xd3, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x5d, 0x93, 0xdb, 0x20, 0x48, 0x4f, 0xd7, 0x38, 0xb4, 0xc1, 0xfa, 0xe1, 0xda, 0x83, 0x86, 0xcb, 0xb4, 0x57, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb6, 0x27, 0x42, 0x3a, 0xb0, 0x3d, 0x11, 0x26, 0x07, 0x0b, 0x69, 0xc2, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x03, 0xde, 0xe4, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x69, 0x9c, 0xdc, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xa2, 0x93, 0x3b, 0x78, 0xac, 0xf2, 0xe5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x45, 0x77, 0x72, 0x1b, 0xde, 0xb8, 0x3b, 0x78, 0x6e, 0x83, 0xdf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x6d, 0x7a, 0x72, 0x07, 0x05, 0x45, 0x66, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0xf5, 0xc9, 0x1d, 0x3c, 0x79, 0xed, 0xb2, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf5, 0x89, 0x90, 0x0e, 0xac, 0x4f, 0x84, 0xc9, 0xc1, 0x53, 0xa3, 0x2c, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x23, 0x02, 0xe5, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xed, 0xa0, 0xdc, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x32, 0x94, 0x3b, 0x78, 0xac, 0xf2, 0xe5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x55, 0x89, 0x72, 0x07, 0x2f, 0xd1, 0xbe, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x8f, 0x51, 0xee, 0xa0, 0xa0, 0xc8, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xb2, 0x47, 0xb9, 0x83, 0x27, 0xaf, 0x5d, 0xb6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x3f, 0x11, 0xd2, 0x81, 0xfd, 0x89, 0x30, 0x39, 0x78, 0xc7, 0x98, 0xe5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc8, 0xa4, 0xdc, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0xae, 0x94, 0xdb, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x69, 0x98, 0x72, 0x07, 0x8f, 0x55, 0xbe, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x6c, 0x53, 0xee, 0xe0, 0x45, 0xf1, 0x95, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0x7a, 0xca, 0x6d, 0x78, 0x5b, 0x67, 0x83, 0x26, 0xcc, 0x47, 0x0f, 0x5e, 0x03, 0x7d, 0xd9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xa1, 0xa1, 0x72, 0x07, 0x4f, 0x5e, 0xbb, 0x6c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x81, 0x22, 0xa4, 0x03, 0x0b, 0x14, 0x61, 0x72, 0xb0, 0x0a, 0x25, 0x7c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xab, 0x54, 0x6e, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0xa0, 0xca, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x52, 0x55, 0xb9, 0x83, 0xc7, 0x2a, 0x5f, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xda, 0x2a, 0x77, 0xd0, 0xf2, 0x22, 0xe8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xc1, 0xb0, 0x72, 0x1b, 0xde, 0xd6, 0xd9, 0xe0, 0x44, 0xeb, 0x71, 0xf0, 0x1a, 0xe8, 0xcb, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x9e, 0x95, 0x3b, 0x78, 0xf2, 0xda, 0x65, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x1b, 0x14, 0x21, 0x1d, 0xd8, 0xa0, 0x08, 0x93, 0x83, 0x27, 0x5d, 0x59, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0xdf, 0xca, 0x6d, 0xb0, 0x0a, 0x49, 0x69, 0x83, 0xf7, 0xb9, 0x5d, 0xae, 0xc1, 0x63, 0x81, 0x2f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xa3, 0x76, 0xe5, 0x36, 0xbc, 0xad, 0xb3, 0xc1, 0x7b, 0xb4, 0x2c, 0x0f, 0x5e, 0x03, 0x7d, 0xb9, 0x06, 0x0f, 0x59, 0xaf, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0xf3, 0x95, 0xdb, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x05, 0xc1, 0x72, 0x07, 0x4f, 0xac, 0xbd, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x80, 0x58, 0xee, 0xa0, 0xa0, 0xc8, 0xac, 0x66, 0x0d, 0x1e, 0xdc, 0x7a, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x76, 0x2c, 0xb7, 0xe1, 0x17, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x25, 0x22, 0xa4, 0x03, 0x2b, 0x11, 0x61, 0xbf, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x25, 0x22, 0xc4, 0x03, 0x2b, 0x11, 0x61, 0xb2, 0xe1, 0xcf, 0xa5, 0x81, 0x4f, 0x73, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x25, 0x22, 0x2c, 0x0e, 0x5e, 0xbc, 0x81, 0x79, 0x10, 0xa6, 0x63, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x4a, 0x44, 0xd8, 0x0c, 0xac, 0x44, 0x84, 0xe1, 0x86, 0x3f, 0x97, 0x36, 0x38, 0x45, 0x9e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x4a, 0x44, 0x18, 0x1d, 0xbc, 0x35, 0x04, 0xf3, 0xe0, 0x7d, 0x1b, 0x22, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x4a, 0x44, 0x58, 0x0e, 0xac, 0x44, 0x84, 0xf9, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x2b, 0x69, 0xe5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xac, 0x44, 0x84, 0xe9, 0xc1, 0x9b, 0x4f, 0x30, 0x0f, 0x5e, 0xfd, 0x61, 0xd9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc7, 0xb2, 0xdc, 0x86, 0xbf, 0x68, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9d, 0x88, 0x90, 0x0e, 0xec, 0x44, 0x84, 0xc5, 0xc1, 0x7b, 0x11, 0x48, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x5b, 0x9b, 0xe5, 0x36, 0x7c, 0x62, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x1e, 0xb4, 0xdc, 0x06, 0xab, 0x03, 0x96, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa5, 0x88, 0xb0, 0x18, 0x58, 0x8a, 0x08, 0xdb, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x94, 0x28, 0xa3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x8a, 0x08, 0x93, 0x83, 0xc7, 0xd6, 0x60, 0x6e, 0xf8, 0x77, 0x7e, 0x83, 0x97, 0x82, 0xeb, 0x1d, 0x3c, 0x44, 0xbb, 0x6e, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x52, 0x44, 0x58, 0x0f, 0x2c, 0x45, 0x84, 0x82, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0x2e, 0xf8, 0x31, 0x71, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xd8, 0x8a, 0x08, 0x8b, 0x81, 0xad, 0x88, 0x70, 0x66, 0x83, 0xa3, 0xeb, 0xe0, 0x1a, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb6, 0x22, 0xc2, 0x66, 0x60, 0x2b, 0x22, 0xec, 0x0e, 0x96, 0xe4, 0xa6, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x5b, 0x11, 0x61, 0x38, 0xb0, 0x15, 0x11, 0xa6, 0x07, 0xcb, 0xd7, 0x5e, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xad, 0x88, 0xb0, 0x1d, 0xd8, 0x8a, 0x08, 0x1d, 0x1b, 0xde, 0xd6, 0x19, 0xf0, 0xde, 0xea, 0xe4, 0x83, 0x27, 0x81, 0x58, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x6c, 0x45, 0x84, 0x9a, 0x81, 0xad, 0x88, 0x50, 0xb8, 0xe1, 0x6d, 0x9d, 0xc1, 0xe3, 0x01, 0x4f, 0x2c, 0x6f, 0x3d, 0x78, 0x12, 0x88, 0xe5, 0x1a, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb6, 0x22, 0x42, 0xe7, 0xc0, 0x56, 0x44, 0xe8, 0x3d, 0x58, 0x92, 0x9b, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x6c, 0x45, 0x84, 0xe2, 0x81, 0xad, 0x88, 0xd0, 0x7d, 0xb0, 0xc2, 0xc9, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xd8, 0x8a, 0x08, 0xe5, 0x03, 0x5b, 0x11, 0xe1, 0xc4, 0x86, 0xb7, 0x75, 0x36, 0x48, 0x20, 0xdc, 0x3c, 0x78, 0x12, 0x88, 0x65, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x56, 0x44, 0xf8, 0x31, 0xb0, 0x15, 0x11, 0xbe, 0x6c, 0x78, 0x5b, 0xe7, 0xe0, 0xf1, 0x1b, 0x22, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x7b, 0x11, 0x21, 0x39, 0x78, 0x24, 0xb2, 0xdc, 0x06, 0x05, 0x69, 0xec, 0x06, 0xc7, 0x0c, 0xcf, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x2f, 0x22, 0x4c, 0x06, 0xf6, 0x22, 0x42, 0xd7, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbd, 0x88, 0xb0, 0x19, 0xd8, 0x8b, 0x08, 0xbb, 0x83, 0x26, 0x7f, 0xa4, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbd, 0x88, 0x30, 0x1c, 0xd8, 0x8b, 0x08, 0x55, 0x1b, 0x9c, 0x07, 0x3b, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x2f, 0x22, 0x6c, 0x07, 0xf6, 0x22, 0x42, 0xd3, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbd, 0x88, 0x30, 0x1e, 0xd8, 0x8b, 0x08, 0x2d, 0x1b, 0xde, 0xd6, 0xd9, 0xe0, 0xcd, 0x5a, 0x4a, 0x07, 0x2f, 0x05, 0xd7, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf6, 0x22, 0x42, 0xcd, 0xc0, 0x5e, 0x44, 0x28, 0x3a, 0x28, 0x9b, 0xde, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x16, 0x23, 0x42, 0x72, 0xf0, 0x48, 0x64, 0xb9, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x8b, 0x11, 0x21, 0x1d, 0x58, 0x8c, 0x08, 0xcb, 0x0d, 0x8a, 0x49, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x31, 0x22, 0x0c, 0x06, 0x16, 0x23, 0xc2, 0xe4, 0x20, 0x8c, 0x80, 0x0e, 0xd6, 0x06, 0x8f, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x9b, 0x11, 0x21, 0x1b, 0x58, 0x8d, 0x08, 0xf5, 0x1b, 0x2c, 0xa9, 0x5f, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x36, 0x23, 0x42, 0x3e, 0xb0, 0x19, 0x11, 0x0a, 0x36, 0xbc, 0x71, 0xb7, 0xe1, 0xe5, 0xbb, 0x00, 0xff, 0x39, 0xb8, 0x34, 0xb2, 0x32, 0xb9, 0x96, 0xb6, 0x30, 0xb9, 0xb5, 0x16, 0xb3, 0xb0, 0x34, 0x76, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x56, 0x23, 0x42, 0x76, 0xf0, 0xe8, 0x3e, 0xcc, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xab, 0x11, 0x21, 0x1c, 0x58, 0x8d, 0x08, 0x83, 0x83, 0x96, 0x93, 0xa4, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd5, 0x88, 0xb0, 0x18, 0x58, 0x8d, 0x08, 0xbd, 0x1b, 0x9e, 0xb8, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd5, 0x88, 0x30, 0x3b, 0x78, 0xec, 0x22, 0xe6, 0x86, 0x67, 0xf1, 0x06, 0x9f, 0x07, 0x87, 0x07, 0x4f, 0x07, 0x27, 0x07, 0x2f, 0x07, 0x97, 0x07, 0xd5, 0x83, 0x82, 0xc1, 0xc3, 0xc1, 0xdb, 0xc1, 0xcb, 0xc1, 0xe7, 0x41, 0xc1, 0xe0, 0xf6, 0xe0, 0xe1, 0xe0, 0xec, 0xe0, 0xe5, 0xa0, 0x60, 0x70, 0x73, 0xf0, 0x70, 0xf0, 0x74, 0x70, 0x76, 0x50, 0xb0, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x8d, 0x08, 0x7d, 0x03, 0xab, 0x11, 0xa1, 0x75, 0x83, 0x15, 0x6a, 0x48, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x6a, 0x44, 0x28, 0x1c, 0x58, 0x8d, 0x08, 0xa5, 0x07, 0x6f, 0xe6, 0xc2, 0xac, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd5, 0x88, 0x50, 0x3c, 0xb0, 0x1a, 0x11, 0xda, 0x0f, 0x9a, 0x2c, 0x92, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x76, 0x23, 0x42, 0x72, 0xf0, 0x48, 0x64, 0xb9, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xbb, 0x11, 0x21, 0x1a, 0xd8, 0x8d, 0x08, 0xf1, 0xc1, 0x9b, 0xb9, 0x30, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xdd, 0x88, 0x90, 0x0f, 0xec, 0x46, 0x84, 0xd1, 0x41, 0x93, 0x45, 0x52, 0xad, 0x00, 0x1e, 0x66, 0x72, 0x6f, 0x6d, 0x2d, 0x66, 0x6f, 0x72, 0xed, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x6c, 0x41, 0x84, 0x64, 0x60, 0x0f, 0x22, 0xa4, 0x1b, 0x7e, 0x51, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb6, 0x20, 0x42, 0x3a, 0xb0, 0x05, 0x11, 0x26, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x2d, 0xbf, 0x76, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x05, 0x11, 0xe2, 0x83, 0x57, 0xb3, 0x62, 0x1e, 0x3c, 0xd6, 0xd7, 0x6e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd6, 0x20, 0x42, 0x72, 0xf0, 0x0c, 0x55, 0xcc, 0x0d, 0x7f, 0xd1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x6b, 0x10, 0x21, 0x1d, 0x58, 0x83, 0x08, 0xb3, 0x83, 0x47, 0x2d, 0x5d, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x1e, 0x44, 0x48, 0x0e, 0x9e, 0xa1, 0x8a, 0xb9, 0xe1, 0x6d, 0x9d, 0x83, 0x97, 0xfc, 0xda, 0x1d, 0x4e, 0xb1, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0xb3, 0x06, 0x2f, 0x3e, 0xb1, 0xdc, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0xf1, 0x89, 0xe5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xec, 0x22, 0xc4, 0x0d, 0x2c, 0x24, 0xc4, 0x6f, 0x70, 0x80, 0x10, 0xdd, 0xe0, 0xc5, 0x27, 0x96, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x8c, 0x10, 0x77, 0xf0, 0x96, 0x5f, 0xcc, 0x0d, 0x82, 0xf6, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x46, 0x08, 0xc9, 0xc0, 0x32, 0x42, 0x98, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x46, 0x08, 0xd1, 0xc0, 0x32, 0x42, 0xc8, 0x37, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xf0, 0x1a, 0x54, 0x95, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x19, 0x21, 0x0c, 0x06, 0x96, 0x11, 0xc2, 0x6a, 0xc3, 0x9f, 0x4b, 0x1b, 0xbc, 0x2e, 0x2c, 0x64, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x96, 0x11, 0xc2, 0xe2, 0xe0, 0xa9, 0xcb, 0x98, 0x07, 0xef, 0x45, 0x20, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xd8, 0x46, 0x08, 0xc9, 0xc0, 0x36, 0x42, 0x68, 0xd8, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x8d, 0x10, 0xa2, 0x81, 0x6d, 0x84, 0x90, 0x6f, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xe0, 0x55, 0x69, 0x8a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x36, 0x42, 0x18, 0x0c, 0x6c, 0x23, 0x84, 0xd5, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x45, 0xa5, 0xc8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x6c, 0x23, 0x84, 0xc5, 0xc1, 0x9b, 0xb0, 0x31, 0x0f, 0xde, 0x6d, 0x29, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x6c, 0x23, 0x84, 0xd9, 0xc0, 0x36, 0x42, 0x28, 0xd8, 0xf0, 0xe7, 0xd2, 0x06, 0x2f, 0xe4, 0xad, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x6d, 0x84, 0xb0, 0x3b, 0x78, 0x9f, 0x37, 0xe6, 0xc1, 0xd3, 0x21, 0x0f, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd6, 0x11, 0x42, 0x32, 0xb0, 0x8e, 0x10, 0x8a, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xac, 0x23, 0x84, 0x68, 0x60, 0x1d, 0x21, 0x0c, 0x0e, 0xde, 0x32, 0x78, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xac, 0x23, 0x84, 0xc5, 0xc0, 0x3a, 0x42, 0x98, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0x57, 0x54, 0x8a, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x3a, 0x42, 0x98, 0x1c, 0xbc, 0x4b, 0x1d, 0xf3, 0xe0, 0xdd, 0x96, 0x22, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x3a, 0x42, 0xd8, 0x0d, 0xac, 0x23, 0x84, 0x9e, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0xaa, 0x34, 0xc5, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x47, 0x08, 0xc3, 0x83, 0x37, 0xc2, 0x63, 0x1e, 0x3c, 0x1b, 0x4d, 0xb1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x1f, 0x21, 0x24, 0x03, 0xfb, 0x08, 0x61, 0xb7, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x1f, 0x21, 0x44, 0x03, 0xfb, 0x08, 0x61, 0xb0, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x80, 0xe7, 0x2e, 0x8c, 0x6e, 0x0c, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf6, 0x11, 0xc2, 0x62, 0x60, 0x1f, 0x21, 0xcc, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0xc1, 0xf4, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf6, 0x11, 0xc2, 0xe4, 0xe0, 0x79, 0xfd, 0x98, 0x07, 0x67, 0x24, 0xd4, 0x3a, 0x9c, 0x62, 0x87, 0x53, 0x6c, 0x05, 0xd2, 0xef, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0x2f, 0x43, 0x97, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0xb2, 0x20, 0xdb, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0xef, 0x6d, 0x8c, 0xae, 0x8c, 0xae, 0x65, 0x8e, 0x4e, 0xae, 0x2c, 0xac, 0x6d, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x3a, 0x83, 0xec, 0xa0, 0xf4, 0xa6, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xdd, 0x83, 0xec, 0xa0, 0xcc, 0xd2, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x7b, 0x84, 0xec, 0xf0, 0x43, 0x4d, 0x87, 0x53, 0x6c, 0x01, 0x41, 0xff, 0xbe, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xd6, 0x92, 0xb6, 0xc1, 0x2a, 0x2c, 0xa7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x6b, 0x83, 0xd2, 0x0e, 0x1e, 0x83, 0x81, 0xb1, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xfc, 0x92, 0xb6, 0x41, 0xc9, 0xc2, 0x3e, 0xcb, 0xac, 0xc1, 0x1b, 0xb2, 0xd3, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xc3, 0x64, 0xd2, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x8b, 0x71, 0xd2, 0x36, 0xfc, 0xb9, 0x34, 0xe0, 0xbd, 0xdd, 0xb9, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x4d, 0x36, 0x69, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xba, 0x27, 0x6d, 0xc3, 0x9f, 0x4b, 0x1b, 0x3c, 0xb6, 0x41, 0x6d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x6a, 0x27, 0xed, 0xe0, 0x45, 0x04, 0x8f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x47, 0x28, 0xa5, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0x97, 0x60, 0xaa, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0x1e, 0xa5, 0x1d, 0xbc, 0x88, 0xe0, 0x71, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xfc, 0xa8, 0xb4, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x56, 0x54, 0xb5, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xba, 0xa7, 0xb4, 0x83, 0x17, 0x11, 0x3c, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xac, 0x95, 0xb6, 0xe1, 0xcf, 0xa5, 0x0d, 0xde, 0xe4, 0x9f, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x84, 0x95, 0x76, 0xf0, 0x22, 0x82, 0xc7, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x08, 0x4b, 0xdb, 0xf0, 0xe7, 0xd2, 0x06, 0x25, 0x55, 0xf8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xa9, 0x57, 0xda, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x28, 0x59, 0xda, 0x41, 0xd9, 0x84, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xb2, 0x5a, 0xda, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x7e, 0x4b, 0xdb, 0xf0, 0xe7, 0xd2, 0x06, 0x8f, 0xb1, 0xb1, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x6a, 0x4b, 0x3b, 0x78, 0x9b, 0xae, 0xe3, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x05, 0x78, 0x69, 0x1b, 0xfe, 0x5c, 0xda, 0xa0, 0x85, 0xd3, 0xf1, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xc4, 0xba, 0xb4, 0x0d, 0xff, 0xce, 0xaf, 0x41, 0x0b, 0xa7, 0xe3, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x11, 0x60, 0xda, 0x86, 0x3f, 0x97, 0x06, 0xe0, 0x61, 0xec, 0xcd, 0x8d, 0x2e, 0xcd, 0xad, 0x2e, 0x8d, 0x2e, 0xaf, 0xc5, 0xad, 0xae, 0x4d, 0xac, 0x4c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0xee, 0x4b, 0x3b, 0x28, 0xb3, 0x74, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x45, 0x4c, 0xdb, 0xf0, 0xe7, 0xd2, 0x06, 0x0f, 0xa6, 0xe3, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x31, 0x4c, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb5, 0x8d, 0x69, 0x1b, 0xfe, 0x5c, 0xda, 0xa0, 0xe4, 0x6e, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x59, 0x4c, 0x3b, 0x7c, 0xb0, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xd2, 0x65, 0xda, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0x3b, 0xb4, 0x77, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x98, 0x32, 0xed, 0xe0, 0xd8, 0xea, 0xda, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xe1, 0x9f, 0x69, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x21, 0x7f, 0x6a, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x61, 0x9d, 0x69, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x65, 0xa3, 0x69, 0x07, 0x65, 0x13, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x79, 0xa8, 0x69, 0x07, 0xc7, 0x56, 0xd7, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xa6, 0xd8, 0xb4, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x6b, 0x69, 0xe4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xb5, 0x6b, 0xda, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x34, 0x6d, 0xda, 0x41, 0xd9, 0x84, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x7c, 0x6e, 0xda, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0xf8, 0x4d, 0xdb, 0xf0, 0xe7, 0xd2, 0x06, 0x8f, 0xc5, 0x55, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xe3, 0x4d, 0x3b, 0x78, 0x11, 0xc1, 0xe3, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xed, 0xc5, 0x69, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0xcd, 0x2d, 0x6a, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x6d, 0xc3, 0x69, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x71, 0xc9, 0x69, 0x07, 0x25, 0xe2, 0xfb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x41, 0xcf, 0x69, 0x07, 0xc7, 0x56, 0xd7, 0xaa, 0x15, 0xc0, 0x8f, 0x2c, 0xcd, 0xcc, 0xac, 0x25, 0x4c, 0x2f, 0xad, 0xad, 0x8e, 0x0e, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0xab, 0x4e, 0xdb, 0xf0, 0x51, 0xfb, 0x06, 0x41, 0xfb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc2, 0x76, 0xda, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0xec, 0x4e, 0xdb, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0x1b, 0xb2, 0xd3, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x2b, 0x4f, 0xdb, 0xf0, 0xe7, 0xd2, 0x80, 0x77, 0x87, 0xf6, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0x8b, 0xa7, 0x1d, 0x1c, 0x5b, 0x5d, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x65, 0x4f, 0xdb, 0xf0, 0xe7, 0xd2, 0x06, 0x65, 0x4e, 0xc0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x87, 0x7a, 0xda, 0x86, 0x7f, 0xe7, 0x17, 0xc0, 0x87, 0x2c, 0xcd, 0xcc, 0xac, 0x05, 0xee, 0x2d, 0xcd, 0x8d, 0xae, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x7d, 0x4f, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x39, 0xf2, 0x69, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x0b, 0x3c, 0x32, 0xb7, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xd4, 0xfb, 0xb4, 0x0d, 0xff, 0xce, 0x2f, 0xc0, 0x43, 0xe6, 0x36, 0x57, 0x36, 0x57, 0xad, 0x06, 0xcf, 0x88, 0xcb, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xe3, 0x4f, 0xdb, 0xf0, 0x51, 0xfb, 0x06, 0x41, 0xfb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x90, 0x80, 0xda, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x26, 0x50, 0x3b, 0x58, 0xab, 0xd3, 0xbd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc2, 0x82, 0xda, 0x86, 0x3f, 0x97, 0x36, 0x48, 0xa8, 0x90, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x44, 0x50, 0xdb, 0xf0, 0xef, 0xfc, 0x1a, 0xbc, 0x21, 0x3b, 0xad, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xf5, 0x41, 0x6d, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xbf, 0xa7, 0x3b, 0xb7, 0x32, 0xb9, 0x21, 0xb4, 0x30, 0xb7, 0xb3, 0x32, 0xb2, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x23, 0xa1, 0xb6, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0xc7, 0x36, 0xa8, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xa1, 0xa1, 0xb6, 0xe1, 0xcf, 0xa5, 0x0d, 0x12, 0x2a, 0xe4, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x33, 0x2f, 0xd4, 0x0e, 0x5e, 0x44, 0xf0, 0xd8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xe9, 0x1f, 0x6a, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0x04, 0x8d, 0xd1, 0xa5, 0xd9, 0x85, 0xd1, 0x95, 0x91, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x3a, 0x11, 0xb5, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0xbc, 0xac, 0x43, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x2a, 0x15, 0xb5, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x77, 0x68, 0xef, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xf5, 0x89, 0xda, 0xc1, 0xb1, 0xd5, 0xb5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x13, 0x60, 0xd4, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0x78, 0xa7, 0xe0, 0xc2, 0xee, 0xdc, 0xca, 0xc8, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xa5, 0x8c, 0xda, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0xde, 0xdc, 0xa2, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x9d, 0x8e, 0xda, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0x3b, 0xb4, 0x77, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xfe, 0x46, 0xed, 0xe0, 0xd8, 0xea, 0xda, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xf9, 0x3e, 0x6a, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0x0d, 0xa1, 0x85, 0xb9, 0x9d, 0x95, 0x91, 0x2d, 0x95, 0xe5, 0xcd, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xc2, 0x20, 0xb5, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0xbc, 0xa4, 0x47, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xb4, 0x24, 0xb5, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x18, 0x1b, 0xbb, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x74, 0x23, 0xb5, 0x83, 0xb7, 0xe9, 0x3a, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x06, 0xa5, 0xb6, 0xe1, 0xcf, 0xa5, 0x0d, 0x5a, 0x38, 0x1d, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x6f, 0x52, 0x3b, 0x78, 0xc0, 0x4d, 0x66, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x47, 0x59, 0xa9, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x2d, 0x24, 0xf7, 0xb6, 0x56, 0x36, 0xf4, 0xe6, 0x46, 0x97, 0xe6, 0x56, 0x97, 0x46, 0x97, 0xb7, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xbb, 0xb1, 0xd4, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xf0, 0xd6, 0x29, 0xb5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x7b, 0xc1, 0xd4, 0x36, 0xfc, 0xb9, 0xb4, 0x41, 0x42, 0x85, 0xdc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x8f, 0x97, 0xda, 0x41, 0x99, 0xa5, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x55, 0x65, 0x6a, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xf0, 0x52, 0x34, 0x37, 0x16, 0x06, 0x57, 0x16, 0x34, 0x36, 0xf6, 0xc2, 0xf4, 0x36, 0x47, 0x37, 0x05, 0xf7, 0xe6, 0x36, 0xb7, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xc3, 0xcf, 0xd4, 0x0e, 0x9e, 0xfc, 0xe5, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x8d, 0x9b, 0xda, 0x86, 0x3f, 0x97, 0x36, 0x48, 0xa8, 0x90, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x5d, 0x53, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x45, 0x73, 0x6a, 0x1b, 0xfe, 0x5c, 0xda, 0xa0, 0xe4, 0x6e, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x86, 0x53, 0x3b, 0x7c, 0xb0, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x96, 0x9e, 0xda, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0x3b, 0xb4, 0x77, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xfa, 0x4e, 0xed, 0xe0, 0xd8, 0xea, 0x5a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0x04, 0xaa, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x59, 0x34, 0x37, 0x16, 0x06, 0x57, 0x26, 0x55, 0x16, 0xf7, 0x32, 0x14, 0xe6, 0xb6, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x93, 0x07, 0xd5, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xf0, 0x90, 0x3f, 0xb5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x53, 0x17, 0xd5, 0x36, 0xfc, 0xb9, 0xb4, 0x41, 0x42, 0x85, 0xdc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x4a, 0xa2, 0xda, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xcc, 0xa3, 0xda, 0x41, 0xd9, 0x84, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x11, 0xa5, 0xda, 0xc1, 0xb1, 0xd5, 0xb5, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xdc, 0x54, 0xdb, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0x9f, 0x21, 0xb4, 0x30, 0xb7, 0xb3, 0x32, 0xb2, 0xa6, 0x30, 0xb7, 0xb0, 0xb3, 0xb2, 0xb6, 0x32, 0x37, 0x3a, 0x28, 0xb9, 0xb7, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xe1, 0xa9, 0xb6, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x97, 0x60, 0xaa, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x5f, 0xaa, 0xb6, 0xe1, 0xcf, 0xa5, 0x0d, 0x12, 0x2a, 0xe4, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xeb, 0x46, 0xd5, 0x0e, 0x5e, 0x44, 0xf0, 0xd8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x91, 0xab, 0x6a, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xf0, 0x31, 0x84, 0x16, 0xe6, 0x76, 0x56, 0x46, 0x66, 0xf5, 0x46, 0x97, 0xe6, 0x76, 0x06, 0x25, 0xf7, 0x86, 0x97, 0xb7, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x3b, 0x5c, 0xd5, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xf0, 0x56, 0x54, 0xb5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x03, 0x6c, 0xd5, 0x36, 0xfc, 0xb9, 0xb4, 0x41, 0x42, 0x85, 0xdc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xdf, 0xac, 0xda, 0xc1, 0x8b, 0x08, 0x1e, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x6e, 0x57, 0x6d, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x1e, 0x86, 0xd0, 0xc2, 0xdc, 0xce, 0xca, 0xc8, 0xa6, 0xe0, 0xc2, 0xee, 0xdc, 0xa0, 0xe4, 0xde, 0xf0, 0xf2, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x80, 0xaf, 0xda, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x1e, 0x8b, 0xab, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x79, 0xb1, 0xda, 0x86, 0x3f, 0x97, 0x36, 0x48, 0xa8, 0x90, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x1b, 0x56, 0x3b, 0x78, 0x11, 0xc1, 0x63, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0x23, 0xab, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0xcf, 0x10, 0x5a, 0x98, 0xdb, 0x59, 0x19, 0x19, 0x95, 0x5c, 0x98, 0xdb, 0x9c, 0x59, 0x99, 0x1c, 0x94, 0xdc, 0x1b, 0x5e, 0xde, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x5c, 0x56, 0xdb, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0x9b, 0xfc, 0xd3, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x9c, 0x56, 0xdb, 0xf0, 0xe7, 0xd2, 0x06, 0x09, 0x15, 0x72, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xfd, 0xd0, 0x6a, 0x07, 0x2f, 0x22, 0x78, 0xac, 0xc3, 0x29, 0xb6, 0x06, 0xef, 0xc2, 0xcb, 0xdc, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0x17, 0x5e, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x0f, 0xb6, 0xda, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0xea, 0x56, 0xdb, 0xf0, 0xe7, 0xd2, 0x06, 0xad, 0x79, 0x07, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0x6b, 0xab, 0x1d, 0x9c, 0x67, 0x47, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x23, 0x57, 0xdb, 0xf0, 0xe7, 0xd2, 0x06, 0xe9, 0x9e, 0x9b, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xed, 0xe1, 0x6a, 0x07, 0xe7, 0xd9, 0xd1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x33, 0xd7, 0xd5, 0x36, 0xfc, 0xb9, 0x34, 0xe0, 0xd1, 0x95, 0xc9, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x11, 0xe9, 0x6a, 0x07, 0xe7, 0xd9, 0xd1, 0x0e, 0xa7, 0x58, 0x87, 0x53, 0xec, 0x70, 0x8a, 0xb5, 0xa0, 0x77, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0x32, 0xc0, 0x6f, 0x2c, 0x0c, 0x0e, 0xae, 0x8c, 0xac, 0x25, 0xae, 0xae, 0xac, 0xae, 0x6c, 0x00, 0xbc, 0x09, 0x03, 0x59, 0x89, 0x2b, 0xab, 0x03, 0xb9, 0x4b, 0xa3, 0x43, 0x03, 0x09, 0x03, 0x69, 0x0b, 0xc3, 0x4b, 0x6b, 0xab, 0x6b, 0x03, 0x71, 0xab, 0x6b, 0x13, 0x2b, 0x93, 0x03, 0x79, 0x33, 0x03, 0x29, 0x73, 0xa3, 0x93, 0x4b, 0x2b, 0x9b, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x47, 0xf5, 0xd9, 0xf0, 0x70, 0xfe, 0x02, 0x78, 0xa4, 0xd1, 0x95, 0xb5, 0xb5, 0xd0, 0xe5, 0xc1, 0x95, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0xb4, 0xfa, 0x6c, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xdc, 0x58, 0x9f, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0xf0, 0x91, 0xca, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xba, 0x57, 0x9f, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x8a, 0x5a, 0x9f, 0x83, 0x87, 0x1f, 0x30, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x99, 0xeb, 0xb3, 0xe1, 0xdf, 0xf9, 0x0d, 0x5e, 0x32, 0xa2, 0x59, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0xff, 0xfa, 0x6c, 0xf8, 0x73, 0x69, 0x83, 0xe7, 0xbb, 0x54, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0xf6, 0xfa, 0x1c, 0x94, 0x59, 0xba, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0x1a, 0xfb, 0x6c, 0xf8, 0x73, 0x69, 0x83, 0x57, 0xd3, 0x54, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0x11, 0xfb, 0x6c, 0x10, 0x40, 0x67, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x6d, 0xc9, 0x3e, 0x07, 0x29, 0xd0, 0xa9, 0xad, 0xc0, 0xd3, 0xfb, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x1c, 0x19, 0x42, 0x03, 0x3c, 0xea, 0xdc, 0xd2, 0xf0, 0x5a, 0xe8, 0xc2, 0xe6, 0xd6, 0x06, 0xf0, 0x4e, 0x73, 0x83, 0xab, 0xa3, 0x03, 0x31, 0x93, 0x7b, 0x6b, 0x03, 0xa9, 0x73, 0x4b, 0xc3, 0xdb, 0xf0, 0x3c, 0xc9, 0x06, 0xcf, 0xbe, 0xd1, 0xdc, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0x32, 0x8e, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x6c, 0x63, 0x44, 0x07, 0x16, 0x38, 0xe2, 0x36, 0x08, 0x35, 0xc4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x1b, 0x23, 0x7e, 0x60, 0x1b, 0x23, 0x0c, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x6c, 0x63, 0x84, 0x60, 0x60, 0x1b, 0x23, 0xa4, 0x07, 0xef, 0xb2, 0x40, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb6, 0x31, 0x42, 0x3c, 0xb0, 0x8d, 0x11, 0xf2, 0x83, 0x82, 0x22, 0xb3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0xc7, 0x88, 0x1e, 0x3c, 0x0d, 0x48, 0x73, 0x83, 0xa0, 0xfd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x16, 0x32, 0xe2, 0x07, 0x16, 0x32, 0xc2, 0x74, 0x83, 0xf5, 0x2a, 0x55, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x42, 0x46, 0x88, 0x06, 0x16, 0x32, 0x42, 0xbe, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0xb7, 0x1a, 0x06, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x42, 0x46, 0x18, 0x0c, 0x2c, 0x64, 0x84, 0xe5, 0xc1, 0x2b, 0x64, 0x10, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9d, 0x8c, 0xf8, 0x81, 0x9d, 0x8c, 0x30, 0xdd, 0x60, 0xbd, 0x4a, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x93, 0x11, 0xa2, 0x81, 0x9d, 0x8c, 0x90, 0x6f, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xe0, 0xe5, 0x72, 0x41, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x93, 0x11, 0x06, 0x03, 0x3b, 0x19, 0x61, 0x79, 0xf0, 0x0a, 0x19, 0xc4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x2d, 0x23, 0x7e, 0x60, 0x2d, 0x23, 0x4c, 0x37, 0x58, 0xaf, 0x52, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xac, 0x65, 0x84, 0x68, 0x60, 0x2d, 0x23, 0xe4, 0x07, 0x0f, 0x67, 0x12, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb5, 0x8c, 0x30, 0x18, 0x58, 0xcb, 0x08, 0xcb, 0x83, 0x87, 0xb0, 0x20, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x9b, 0x19, 0xf1, 0x03, 0x9b, 0x19, 0x61, 0xba, 0xc1, 0x7a, 0x95, 0xaa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x33, 0x23, 0x44, 0x03, 0x9b, 0x19, 0x21, 0x3f, 0x78, 0x97, 0xbf, 0xdd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x6c, 0x66, 0x84, 0xc1, 0xc0, 0x66, 0x46, 0x58, 0x1e, 0xbc, 0x40, 0xe0, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0xce, 0x88, 0x1f, 0x58, 0xce, 0x08, 0xd3, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xcb, 0x19, 0x21, 0x18, 0x58, 0xce, 0x08, 0xbb, 0x83, 0xd7, 0x26, 0x22, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xcb, 0x19, 0x61, 0x38, 0xb0, 0x9c, 0x11, 0x96, 0x07, 0x21, 0xf8, 0xd0, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x9f, 0x11, 0x3f, 0xb0, 0x9f, 0x11, 0xa6, 0x1b, 0xac, 0x57, 0xa9, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf6, 0x33, 0x42, 0x34, 0xb0, 0x9f, 0x11, 0xf2, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x3c, 0x71, 0x30, 0x68, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf6, 0x33, 0xc2, 0x60, 0x60, 0x3f, 0x23, 0x2c, 0x0f, 0x5e, 0x21, 0x83, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xac, 0x68, 0xc4, 0x0f, 0xac, 0x68, 0x84, 0xe9, 0x06, 0xeb, 0x55, 0xaa, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x15, 0x8d, 0x10, 0x0d, 0xac, 0x68, 0x84, 0x7c, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x6f, 0xad, 0x08, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x15, 0x8d, 0x30, 0x18, 0x58, 0xd1, 0x08, 0xcb, 0x83, 0xa7, 0x80, 0x20, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x5b, 0x1a, 0xf1, 0x03, 0x5b, 0x1a, 0x61, 0xba, 0xc1, 0x7a, 0x95, 0xaa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x4b, 0x23, 0x44, 0x03, 0x5b, 0x1a, 0x21, 0x3f, 0x78, 0x8a, 0xa6, 0xe0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x6c, 0x69, 0x84, 0xc1, 0xc0, 0x96, 0x46, 0x58, 0x1e, 0x3c, 0x84, 0x05, 0x71, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0xd4, 0x88, 0x1f, 0x58, 0xd5, 0x08, 0xd3, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xd0, 0x84, 0xea, 0x89, 0xe8, 0x49, 0x07, 0xa4, 0x2d, 0x6c, 0xad, 0x0c, 0x84, 0x24, 0xaf, 0x6e, 0x2d, 0x0d, 0x24, 0xcc, 0x0d, 0xe4, 0x0d, 0x8e, 0x2e, 0xed, 0xcd, 0x0d, 0xc4, 0xec, 0x4d, 0x0e, 0xa4, 0x24, 0xcd, 0x8d, 0xee, 0xed, 0xb7, 0xc1, 0x7a, 0x95, 0xaa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x55, 0x23, 0x44, 0x03, 0xab, 0x1a, 0x21, 0x3f, 0x78, 0x0b, 0xc3, 0xe0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xac, 0x6a, 0x84, 0xc1, 0xc0, 0xaa, 0x46, 0x58, 0x1e, 0x3c, 0x84, 0x05, 0x71, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xd8, 0xd6, 0x88, 0x1f, 0xd8, 0xd6, 0x08, 0xd3, 0x0d, 0xd6, 0xab, 0x54, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xdb, 0x1a, 0x21, 0x1a, 0xd8, 0xd6, 0x08, 0xf9, 0xc1, 0x93, 0x75, 0x06, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x5b, 0x23, 0x0c, 0x06, 0xb6, 0x35, 0xc2, 0xf2, 0xe0, 0x21, 0x2c, 0x88, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xc2, 0x46, 0xfc, 0xc0, 0xc2, 0x46, 0x98, 0x6e, 0xb0, 0x5e, 0xa5, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0xd8, 0x08, 0xd1, 0xc0, 0xc2, 0x46, 0xc8, 0x0f, 0x9e, 0x07, 0xf8, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x0b, 0x1b, 0x61, 0x30, 0xb0, 0xb0, 0x11, 0x96, 0x07, 0xcf, 0xc0, 0x41, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x76, 0x36, 0xe2, 0x07, 0x76, 0x36, 0xc2, 0x7a, 0x83, 0xf5, 0x2a, 0x55, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xce, 0x46, 0x88, 0x06, 0x76, 0x36, 0xc2, 0xe4, 0xe0, 0x9d, 0x43, 0x89, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0xb3, 0x11, 0x36, 0x03, 0x3b, 0x1b, 0x61, 0x7c, 0xf0, 0x08, 0x22, 0xc4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x6d, 0x23, 0x7e, 0x60, 0x6d, 0x23, 0xac, 0x37, 0x58, 0xaf, 0x52, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xac, 0x6d, 0x84, 0x68, 0x60, 0x6d, 0x23, 0x4c, 0x0e, 0x5e, 0xce, 0x87, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x6b, 0x1b, 0x61, 0x33, 0xb0, 0xb6, 0x11, 0xc6, 0x07, 0xcf, 0xc0, 0x41, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x36, 0x37, 0xe2, 0x07, 0x36, 0x37, 0x42, 0xc7, 0x06, 0xeb, 0x55, 0xaa, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xcd, 0x8d, 0x10, 0x0d, 0x6c, 0x6e, 0x84, 0xe1, 0xc1, 0x8b, 0xf0, 0x1e, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x73, 0x23, 0x2c, 0x07, 0x36, 0x37, 0x42, 0xc5, 0xc1, 0x33, 0x70, 0x10, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe5, 0x8d, 0xf8, 0x81, 0xe5, 0x8d, 0x30, 0xdd, 0x60, 0xbd, 0x4a, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0xbc, 0x11, 0xa2, 0x81, 0xe5, 0x8d, 0x90, 0x1f, 0xbc, 0x2c, 0x60, 0x71, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x96, 0x37, 0xc2, 0x60, 0x60, 0x79, 0x23, 0x2c, 0x0f, 0x5e, 0x21, 0x83, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xec, 0x6f, 0xc4, 0x0f, 0xec, 0x6f, 0x84, 0xe9, 0x06, 0xeb, 0x55, 0xaa, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfd, 0x8d, 0x10, 0x0d, 0xec, 0x6f, 0x84, 0xfc, 0xe0, 0x2d, 0x69, 0x87, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0xbf, 0x11, 0x06, 0x03, 0xfb, 0x1b, 0x61, 0x79, 0xf0, 0x12, 0x13, 0xc4, 0x56, 0xe0, 0xfd, 0xfd, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x8e, 0x0c, 0xa1, 0x07, 0x4f, 0x70, 0x06, 0x6b, 0x00, 0x1e, 0xdc, 0xde, 0xe4, 0xda, 0xc2, 0xd8, 0x40, 0xd4, 0xe6, 0xde, 0xdc, 0x40, 0xec, 0xc2, 0xd8, 0xea, 0xca, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x9e, 0xe0, 0x0c, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x83, 0x1f, 0x1d, 0x18, 0xff, 0xb8, 0x0d, 0x1f, 0xcc, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x83, 0x1f, 0x3f, 0x30, 0xf8, 0xe1, 0xc1, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x06, 0x81, 0xfb, 0xd0, 0x41, 0x08, 0x3e, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xe4, 0x47, 0x0f, 0x1e, 0x61, 0xae, 0xb9, 0x41, 0xd0, 0xfe, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x93, 0x1f, 0x3f, 0x30, 0xf9, 0xe1, 0xc2, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x4f, 0x98, 0x9c, 0x5c, 0x58, 0xde, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc9, 0x0f, 0xc1, 0xc0, 0xe4, 0x87, 0xe8, 0x20, 0x65, 0x8b, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0xfc, 0x90, 0x0d, 0x4c, 0x7e, 0x18, 0x6e, 0xf8, 0x73, 0x69, 0x70, 0x78, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x26, 0x3f, 0xa4, 0x07, 0x6f, 0xb2, 0xd7, 0xdc, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc9, 0x0f, 0xf1, 0xc0, 0xe4, 0x87, 0xc9, 0x41, 0x48, 0x99, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x93, 0x1f, 0x36, 0x03, 0x93, 0x1f, 0x76, 0x1b, 0xfe, 0x9d, 0x5f, 0x83, 0x27, 0x38, 0x83, 0x55, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa3, 0x1f, 0x3f, 0x30, 0xfa, 0xe1, 0xc4, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xaf, 0xd8, 0xdb, 0x1b, 0x5b, 0x59, 0x98, 0xdb, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd1, 0x0f, 0xc1, 0xc0, 0xe8, 0x87, 0xe8, 0x60, 0xa5, 0x38, 0xe2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xfa, 0x21, 0x1b, 0x18, 0xfd, 0x10, 0x6f, 0xf8, 0x73, 0x69, 0x70, 0x78, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x46, 0x3f, 0xa4, 0x07, 0x8f, 0x49, 0xd8, 0x3c, 0x7c, 0xb0, 0xda, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xfb, 0xf1, 0x03, 0xb3, 0x1f, 0x3e, 0x6c, 0x78, 0xe2, 0x7d, 0x83, 0x55, 0x41, 0xdc, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x66, 0x3f, 0x04, 0x03, 0xb3, 0x1f, 0xa2, 0x83, 0x65, 0x8a, 0xec, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xec, 0x87, 0x6c, 0x60, 0xf6, 0xc3, 0x74, 0xc3, 0x9f, 0x4b, 0x83, 0xc3, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xfb, 0x21, 0x3d, 0x78, 0x3e, 0xc5, 0xe6, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xcc, 0x7e, 0x88, 0x07, 0x66, 0x3f, 0x2c, 0x0e, 0x4a, 0xc4, 0xfa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xf6, 0xc3, 0x64, 0x60, 0xf6, 0xc3, 0xe8, 0xe0, 0x3c, 0x3b, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xcc, 0x7e, 0x58, 0x0d, 0xcc, 0x7e, 0x58, 0x1e, 0xbc, 0xe0, 0x5f, 0xb3, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe1, 0x8f, 0x1f, 0x18, 0xfe, 0xf0, 0x61, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x80, 0xcf, 0xad, 0xae, 0x4d, 0xac, 0x4c, 0x6e, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xf0, 0x87, 0x60, 0x60, 0xf8, 0x43, 0x74, 0x70, 0xda, 0x3b, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x86, 0x3f, 0x64, 0x03, 0xc3, 0x1f, 0x06, 0x1b, 0xfe, 0x5c, 0x1a, 0x1c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe1, 0x0f, 0xe9, 0xc1, 0xcb, 0x53, 0x36, 0x0f, 0x8e, 0xda, 0xa0, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd3, 0x1f, 0x3f, 0x30, 0xfd, 0xe1, 0xc3, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xdf, 0x1c, 0x9d, 0x5c, 0x9a, 0xdb, 0xd9, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe9, 0x0f, 0xc1, 0xc0, 0xf4, 0x87, 0xe8, 0x60, 0x49, 0x4c, 0xe0, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xfd, 0x21, 0x1b, 0x98, 0xfe, 0x90, 0x6f, 0xf8, 0x73, 0x69, 0x70, 0x78, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xa6, 0x3f, 0xa4, 0x07, 0x8f, 0xb5, 0xd9, 0x3c, 0x38, 0xcf, 0x8e, 0xd6, 0x2c, 0x70, 0xfe, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xbe, 0x3d, 0x64, 0x03, 0x0b, 0x05, 0x21, 0xdf, 0x20, 0xf5, 0xa2, 0x78, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0xee, 0xd1, 0x83, 0x17, 0xf3, 0x6c, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x1c, 0xbc, 0x03, 0xc3, 0x6e, 0x83, 0x92, 0x85, 0x7d, 0x96, 0x59, 0x83, 0x37, 0x64, 0xa7, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x12, 0x3f, 0x6e, 0x60, 0x47, 0x20, 0x7e, 0xc3, 0x83, 0x92, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x12, 0x3f, 0x24, 0x03, 0x49, 0xfc, 0x10, 0x6f, 0x78, 0x5b, 0xe7, 0xe0, 0xe5, 0x82, 0x99, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xc5, 0x8f, 0x3b, 0x78, 0x1e, 0xd1, 0xe6, 0x06, 0x25, 0x0b, 0xfb, 0x2c, 0xb3, 0x06, 0x6f, 0x52, 0xbe, 0xdb, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0x93, 0xf2, 0xdd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xf4, 0xe3, 0x07, 0xd2, 0xfa, 0x21, 0xd9, 0x20, 0x68, 0x7f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9c, 0x7e, 0xc8, 0x06, 0x72, 0xfa, 0xa1, 0x64, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4e, 0x3f, 0x84, 0x03, 0x39, 0xfd, 0xb0, 0xd8, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0x8b, 0x68, 0x1d, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9c, 0x7e, 0x98, 0x0c, 0xe4, 0xf4, 0xc3, 0x76, 0xc3, 0x9f, 0x4b, 0x1b, 0xbc, 0xce, 0xc8, 0x65, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0xfa, 0x61, 0x77, 0xf0, 0x36, 0xac, 0xcd, 0x83, 0x37, 0xd8, 0x3a, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0xfd, 0x30, 0x1e, 0xc8, 0xe9, 0x87, 0x8e, 0x0d, 0x7f, 0x2e, 0x0d, 0x3c, 0xdd, 0xbb, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0xfd, 0xb0, 0x3f, 0x78, 0xa4, 0xd7, 0xe6, 0xc1, 0x1b, 0x6c, 0x1d, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xfa, 0x21, 0x1b, 0x48, 0xea, 0x87, 0xc2, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0xfd, 0x10, 0x0e, 0x24, 0xf5, 0xc3, 0xe2, 0xe0, 0x61, 0xa7, 0x99, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x52, 0x3f, 0x4c, 0x06, 0x92, 0xfa, 0xa1, 0x61, 0xc3, 0x9f, 0x4b, 0x1b, 0xbc, 0xce, 0xc8, 0x65, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xfa, 0x61, 0x77, 0xf0, 0x14, 0xb5, 0xcd, 0x0d, 0xff, 0xce, 0x2f, 0x80, 0xcf, 0x5a, 0x59, 0x5e, 0x4b, 0x1d, 0x1c, 0x59, 0x18, 0x5d, 0x59, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x52, 0x3f, 0x54, 0x0c, 0x24, 0xf5, 0x43, 0xdf, 0x86, 0x3f, 0x97, 0x06, 0x9e, 0xee, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa4, 0x7e, 0x68, 0x39, 0x78, 0x73, 0xdc, 0xe6, 0xc1, 0x03, 0xdc, 0x36, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0xfa, 0x21, 0x1b, 0xc8, 0xea, 0x87, 0xba, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0xfd, 0x10, 0x0e, 0x64, 0xf5, 0xc3, 0x62, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x81, 0x3f, 0x07, 0xf7, 0xe6, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0xfd, 0x30, 0x19, 0xc8, 0xea, 0x87, 0x82, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x3a, 0x23, 0x97, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xea, 0x87, 0xdd, 0xc1, 0xa3, 0xfc, 0x36, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xab, 0x1f, 0x86, 0x03, 0x59, 0xfd, 0x30, 0x3e, 0x28, 0x9b, 0x30, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xac, 0x7e, 0x58, 0x0f, 0x64, 0xf5, 0xc3, 0xfe, 0xe0, 0xd8, 0xea, 0xda, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xd5, 0x0f, 0x0d, 0x03, 0x59, 0xfd, 0xd0, 0xb6, 0xe1, 0xcf, 0xa5, 0x81, 0xa7, 0x7b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xab, 0x1f, 0x4a, 0x0e, 0x5e, 0xa0, 0xb8, 0xb9, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0xfd, 0xd0, 0x32, 0x90, 0xd5, 0x0f, 0x4d, 0x07, 0x65, 0x13, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xd5, 0x0f, 0x55, 0x03, 0x59, 0xfd, 0x50, 0x76, 0x70, 0x6c, 0x75, 0xad, 0x56, 0x80, 0x87, 0x2c, 0xcd, 0xcc, 0x6c, 0xde, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0x00, 0xe5, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xf4, 0xc3, 0x60, 0x20, 0xa3, 0x1f, 0xb6, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xd1, 0x0f, 0x8b, 0x81, 0x8c, 0x7e, 0x58, 0x1d, 0x84, 0x94, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xd1, 0x0f, 0xb3, 0x81, 0x8c, 0x7e, 0x98, 0x6e, 0xf8, 0x77, 0x7e, 0x83, 0xa7, 0x6a, 0x13, 0xd6, 0xe1, 0x14, 0x5b, 0x83, 0x37, 0x64, 0xa7, 0x6d, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xbc, 0x21, 0x3b, 0x6d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xf8, 0xf1, 0x03, 0xb9, 0xfc, 0x90, 0x6c, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xe3, 0x87, 0x6c, 0x20, 0x8f, 0x1f, 0x06, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x45, 0xb4, 0x8e, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xc7, 0x0f, 0xe1, 0xc1, 0xb3, 0x4b, 0x37, 0x0f, 0xde, 0x60, 0xeb, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xf2, 0x43, 0x36, 0x90, 0xc8, 0x0f, 0x83, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x18, 0x1b, 0xbb, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xe4, 0x87, 0xf0, 0xe0, 0xf5, 0xab, 0x9b, 0x07, 0x6f, 0xd3, 0x75, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0xf9, 0x21, 0x1b, 0xc8, 0xe4, 0x87, 0xce, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x92, 0x1e, 0xb5, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xe4, 0x87, 0xc1, 0xc1, 0x23, 0x64, 0x37, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x93, 0x1f, 0x16, 0x03, 0x99, 0xfc, 0x30, 0x3a, 0x28, 0x11, 0xeb, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4c, 0x7e, 0x58, 0x0d, 0x64, 0xf2, 0xc3, 0xf2, 0xe0, 0x6d, 0xba, 0x8e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x26, 0x3f, 0x4c, 0x07, 0x32, 0xf9, 0xa1, 0x72, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x26, 0x3f, 0x6c, 0x07, 0x32, 0xf9, 0xa1, 0x6b, 0xc3, 0x9f, 0x4b, 0x03, 0xf8, 0x8d, 0xc9, 0xe5, 0xc1, 0xd1, 0xbd, 0xb5, 0xcc, 0xd5, 0xa5, 0xd1, 0x95, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xc9, 0x0f, 0x45, 0x07, 0x4f, 0x04, 0xde, 0x3c, 0x28, 0xb3, 0x74, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4c, 0x7e, 0x28, 0x1b, 0xc8, 0xe4, 0x87, 0xc6, 0x0d, 0x7f, 0x2e, 0x6d, 0xd0, 0xc2, 0xe9, 0xf8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xf2, 0x43, 0xdb, 0xc1, 0xa3, 0x8f, 0x37, 0x0f, 0x1e, 0x70, 0x93, 0x59, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x2a, 0x3f, 0x64, 0x03, 0xa9, 0xfc, 0x30, 0xde, 0xf0, 0xe7, 0xd2, 0x06, 0x0f, 0xa6, 0xe3, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x54, 0x7e, 0xd8, 0x1c, 0xbc, 0xc0, 0x79, 0x73, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0xf9, 0x61, 0x34, 0x90, 0xca, 0x0f, 0xc3, 0x83, 0xb2, 0x09, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xe5, 0x87, 0xe5, 0x40, 0x2a, 0x3f, 0x6c, 0x0f, 0x8e, 0xad, 0xae, 0xb5, 0x02, 0x3c, 0x75, 0x64, 0x69, 0x66, 0xe6, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x1b, 0xb0, 0x37, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xb9, 0x1f, 0x3f, 0x90, 0xe1, 0x0f, 0xe9, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe4, 0x7e, 0xc8, 0x06, 0x92, 0xfb, 0x61, 0xb4, 0xe1, 0xcf, 0xa5, 0x81, 0x4f, 0x23, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xb9, 0x1f, 0xc2, 0x83, 0xa7, 0x7a, 0x6f, 0x6e, 0xf8, 0x77, 0x7e, 0x83, 0x56, 0x72, 0x42, 0x0f, 0x16, 0x23, 0x75, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0xfd, 0xf8, 0x81, 0x0c, 0x7f, 0x48, 0x36, 0x08, 0xda, 0x9f, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xbb, 0x1f, 0xb2, 0x81, 0xec, 0x7e, 0xd8, 0x6f, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xee, 0x87, 0x70, 0x20, 0xbb, 0x1f, 0x16, 0x07, 0x8f, 0xaa, 0xda, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0xfb, 0x61, 0x32, 0x90, 0xdd, 0x0f, 0xbb, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x22, 0x5a, 0xc7, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xee, 0x87, 0xcd, 0xc1, 0xab, 0xdb, 0x37, 0x0f, 0xde, 0x60, 0xeb, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xf7, 0xc3, 0x70, 0x20, 0xbb, 0x1f, 0xe6, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0xc5, 0xd6, 0x2b, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xdd, 0x0f, 0xeb, 0x83, 0xe7, 0xcf, 0x6f, 0x1e, 0x3e, 0x58, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xef, 0x87, 0x6c, 0x20, 0xbd, 0x1f, 0x4a, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xf7, 0x43, 0x38, 0x90, 0xde, 0x0f, 0x8b, 0x83, 0x87, 0x9d, 0x66, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0xfd, 0x30, 0x19, 0x48, 0xef, 0x87, 0xf1, 0xc1, 0x03, 0xdc, 0x36, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf4, 0x7e, 0x58, 0x0f, 0xa4, 0xf7, 0x43, 0xc7, 0x86, 0x3f, 0x97, 0x36, 0x78, 0xb1, 0xf5, 0xca, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xf7, 0x43, 0xc5, 0xc1, 0xdb, 0x04, 0x38, 0x0f, 0x1f, 0xac, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xf7, 0x43, 0x36, 0x90, 0xdf, 0x0f, 0x25, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xfb, 0x21, 0x1c, 0xc8, 0xef, 0x87, 0xc5, 0xc1, 0x33, 0xf6, 0x36, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfc, 0x7e, 0x98, 0x0c, 0xe4, 0xf7, 0x43, 0xc7, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x30, 0x1d, 0xd7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xf7, 0xc3, 0xf4, 0xe0, 0x0d, 0x0e, 0x9c, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xdf, 0x0f, 0xdb, 0x81, 0xfc, 0x7e, 0xd8, 0x1f, 0x94, 0x4d, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x7e, 0x3f, 0x14, 0x0c, 0xe4, 0xf7, 0x43, 0xc5, 0xc1, 0xb1, 0xd5, 0xb5, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x04, 0x7f, 0xc8, 0x06, 0x12, 0xfc, 0x61, 0xb7, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xc1, 0x1f, 0xc2, 0x81, 0x04, 0x7f, 0x18, 0x6d, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0x2e, 0xe0, 0x25, 0x4b, 0x9b, 0x0b, 0xb3, 0x7b, 0xbb, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x04, 0x7f, 0x58, 0x0d, 0x24, 0xf8, 0xc3, 0xec, 0x20, 0x04, 0x1f, 0xaa, 0xd5, 0xe0, 0x7d, 0x6e, 0x9b, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0xef, 0x73, 0xdb, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x6c, 0x7e, 0x58, 0x0d, 0x64, 0xf3, 0x43, 0xe7, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x6c, 0x7e, 0x98, 0x0d, 0x64, 0xf3, 0xc3, 0x76, 0xc3, 0x9f, 0x4b, 0x1b, 0x3c, 0xc6, 0xc6, 0x6e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0xf9, 0x61, 0x77, 0xf0, 0x26, 0x14, 0xce, 0x83, 0xb7, 0xe9, 0x3a, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0xfc, 0x30, 0x1e, 0xc8, 0xe6, 0x87, 0xb2, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0xc6, 0xe0, 0xcd, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xe6, 0x87, 0xa6, 0x83, 0xc7, 0xb9, 0x70, 0x1e, 0x94, 0x59, 0xba, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x36, 0x3f, 0xb4, 0x0d, 0x64, 0xf3, 0x43, 0xe5, 0x86, 0x3f, 0x97, 0x36, 0x68, 0xe1, 0x74, 0x7c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0xf9, 0xa1, 0xee, 0xe0, 0x8d, 0x34, 0x9c, 0x07, 0x0f, 0xb8, 0xc9, 0xec, 0x70, 0x8a, 0x2d, 0x80, 0x4f, 0x18, 0x1c, 0x1c, 0x5b, 0x5e, 0x0b, 0x59, 0x9a, 0x99, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xfb, 0x00, 0xf1, 0x03, 0x2b, 0x02, 0x21, 0xd9, 0xf0, 0x8b, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x0f, 0x10, 0xb2, 0x81, 0x7d, 0x80, 0x30, 0xd9, 0xf0, 0xe7, 0xd2, 0xe0, 0xe1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xec, 0x03, 0x84, 0xf4, 0xe0, 0x41, 0x3f, 0x9c, 0x07, 0x8f, 0x13, 0xcc, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x85, 0x80, 0xf8, 0x83, 0x17, 0xf2, 0x70, 0x6e, 0xf8, 0xae, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x08, 0x08, 0xd9, 0xc0, 0x42, 0x40, 0x58, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x08, 0x08, 0xe1, 0xc0, 0x42, 0x40, 0x98, 0x6c, 0x50, 0x08, 0xa6, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x42, 0x40, 0x48, 0x0f, 0xde, 0xa7, 0xc4, 0xb9, 0xe1, 0xcf, 0xa5, 0x0d, 0xde, 0xa4, 0x7c, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x0b, 0x01, 0x21, 0x3e, 0x78, 0x9f, 0x12, 0xe7, 0xc1, 0x1b, 0x3c, 0x37, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x85, 0x80, 0xb0, 0x19, 0x58, 0x08, 0x08, 0xe3, 0x0d, 0x9f, 0xbb, 0x0c, 0xf0, 0x86, 0xb5, 0xc0, 0xbd, 0xa5, 0xb9, 0xd1, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x10, 0x10, 0xb6, 0x07, 0x8f, 0x9b, 0xe2, 0x3c, 0x3c, 0xad, 0xd3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x6c, 0x04, 0xc4, 0x1f, 0xbc, 0x90, 0x87, 0x73, 0xc3, 0x5f, 0x34, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x46, 0x40, 0xc8, 0x06, 0x36, 0x02, 0xc2, 0xe0, 0xe0, 0x71, 0x82, 0x99, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x12, 0x10, 0x7f, 0xf0, 0x42, 0x1e, 0xce, 0x0d, 0x82, 0xf4, 0x74, 0x8d, 0x43, 0x07, 0x4f, 0xd5, 0x26, 0x5c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xd8, 0x09, 0x08, 0xd9, 0xc0, 0x4e, 0x40, 0x18, 0x1c, 0x3c, 0xaa, 0x6a, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x96, 0x02, 0x42, 0x32, 0xb0, 0x15, 0x10, 0xe6, 0x1b, 0x14, 0x7c, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x52, 0x40, 0x48, 0x07, 0x96, 0x02, 0x42, 0xcd, 0x86, 0x7f, 0x73, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa5, 0x80, 0x90, 0x0f, 0x2c, 0x05, 0x84, 0xed, 0x86, 0xb7, 0x75, 0x36, 0x78, 0x11, 0xad, 0xe3, 0x06, 0xaf, 0xa3, 0xe2, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x96, 0x02, 0xc2, 0x78, 0x60, 0x29, 0x20, 0xb4, 0x6c, 0x78, 0x5b, 0x67, 0x83, 0xd7, 0x19, 0xb9, 0x1c, 0x3c, 0x55, 0x9b, 0x70, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb6, 0x02, 0x42, 0x72, 0xf0, 0xfa, 0x32, 0xce, 0x0d, 0x97, 0xd4, 0x06, 0xef, 0x68, 0xe3, 0x5c, 0x83, 0x07, 0xda, 0x3a, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x56, 0x40, 0x98, 0x0d, 0x6c, 0x05, 0x84, 0xf5, 0x86, 0xb7, 0x75, 0x06, 0x9e, 0xee, 0x3d, 0x78, 0xaa, 0x36, 0x61, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x7b, 0x01, 0x21, 0x1b, 0xd8, 0x0b, 0x08, 0x83, 0x83, 0x87, 0x9d, 0x66, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x62, 0x40, 0x48, 0x06, 0xb6, 0x03, 0x42, 0xb6, 0x41, 0xc1, 0x87, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x2c, 0x06, 0x84, 0x74, 0x60, 0x31, 0x20, 0x74, 0x6d, 0xf8, 0x37, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x0c, 0x08, 0xf9, 0xc0, 0x62, 0x40, 0xd8, 0x6e, 0x78, 0x5b, 0x67, 0x83, 0xc7, 0xd8, 0xd8, 0x1d, 0xbc, 0xa3, 0x8d, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x16, 0x03, 0xc2, 0x78, 0x60, 0x31, 0x20, 0x54, 0x6d, 0x78, 0x5b, 0x67, 0x83, 0xc7, 0xd8, 0xd8, 0x1d, 0x3c, 0x0f, 0x8e, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x36, 0x03, 0x42, 0x72, 0xf0, 0xe4, 0x3e, 0xce, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x33, 0x20, 0xa4, 0x03, 0x9b, 0x01, 0xe1, 0xc2, 0x86, 0x7f, 0x73, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xcd, 0x80, 0x90, 0x0f, 0x6c, 0x06, 0x84, 0xd2, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x9b, 0x01, 0x61, 0x30, 0xb0, 0x19, 0x10, 0x6a, 0x36, 0x28, 0x4b, 0xde, 0x37, 0x28, 0xdc, 0x44, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xcd, 0x80, 0x30, 0x1b, 0xd8, 0x0c, 0x08, 0xc3, 0x83, 0xb2, 0xa9, 0x7e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xd8, 0x0c, 0x08, 0xcb, 0x81, 0xcd, 0x80, 0xd0, 0xb2, 0xe1, 0x6d, 0x9d, 0x0d, 0x5e, 0xd2, 0xa3, 0x76, 0xf0, 0x8e, 0x36, 0xce, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xcd, 0x80, 0xd0, 0x33, 0xb0, 0x19, 0x10, 0x3a, 0x0f, 0xde, 0x3e, 0xc8, 0xd9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x6c, 0x06, 0x84, 0xd6, 0x81, 0xcd, 0x80, 0xf0, 0x60, 0x83, 0x63, 0xb8, 0xc1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x6c, 0x06, 0x84, 0xda, 0x83, 0x07, 0x82, 0x72, 0x6e, 0xb8, 0xa4, 0xd6, 0x78, 0x7e, 0xf0, 0x3c, 0x38, 0xce, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x35, 0x20, 0x24, 0x07, 0x4f, 0xee, 0xe3, 0xdc, 0x60, 0x15, 0x92, 0xd2, 0x06, 0xef, 0x68, 0xe3, 0x5c, 0x83, 0x87, 0xeb, 0x3a, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x6e, 0x40, 0x58, 0x0c, 0xec, 0x06, 0x84, 0xf5, 0x86, 0xb7, 0x75, 0x36, 0x78, 0x8c, 0x8d, 0xdd, 0xc1, 0x53, 0xf0, 0x38, 0x57, 0x83, 0x97, 0xf4, 0xa8, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xcb, 0x01, 0x61, 0x31, 0xb0, 0x1c, 0x10, 0x0e, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x0e, 0x08, 0x93, 0x81, 0xe5, 0x80, 0x50, 0xb4, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0xd9, 0x82, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x2c, 0x07, 0x84, 0xe1, 0xc0, 0x72, 0x40, 0x98, 0x1e, 0x94, 0x4d, 0xf5, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x72, 0x40, 0xd8, 0x0e, 0x2c, 0x07, 0x84, 0x9e, 0x83, 0xd7, 0x68, 0x72, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x2c, 0x07, 0x84, 0xa6, 0x81, 0xe5, 0x80, 0xd0, 0x7a, 0xf0, 0xbe, 0x55, 0xce, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x39, 0x20, 0xd4, 0x0e, 0x2c, 0x07, 0x84, 0xfe, 0x0d, 0x97, 0xd4, 0x1a, 0xcf, 0x0f, 0x9e, 0x82, 0xc7, 0x59, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xec, 0x07, 0x84, 0x6c, 0x60, 0x3f, 0x20, 0x0c, 0x0e, 0x9e, 0xb1, 0xb7, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x0b, 0x02, 0x21, 0x19, 0xd8, 0x10, 0x08, 0x0d, 0x1b, 0x14, 0x7c, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x82, 0x40, 0x48, 0x07, 0x16, 0x04, 0x42, 0xd3, 0x86, 0x7f, 0x73, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x05, 0x81, 0x90, 0x0f, 0x2c, 0x08, 0x84, 0xf9, 0x86, 0xb7, 0x75, 0x36, 0x78, 0x30, 0x1d, 0xd7, 0xc1, 0x3b, 0xda, 0x38, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x41, 0x20, 0xec, 0x07, 0x16, 0x04, 0x42, 0xd1, 0xc1, 0x1b, 0xe0, 0x38, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x43, 0x20, 0x24, 0x07, 0x8f, 0x26, 0xe6, 0xdc, 0x70, 0x49, 0x6d, 0xf0, 0x8e, 0x36, 0xce, 0xd5, 0xe0, 0xc1, 0x74, 0x5c, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x86, 0x40, 0x58, 0x0e, 0x6c, 0x08, 0x84, 0x82, 0x83, 0xf7, 0xde, 0x71, 0xd6, 0x6a, 0x50, 0x54, 0x6b, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xee, 0x3f, 0x7e, 0x60, 0x0b, 0x20, 0x24, 0x1b, 0x7e, 0x51, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0xff, 0x21, 0x1b, 0xc8, 0xfd, 0x87, 0xf1, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x00, 0xe5, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xfe, 0xc3, 0xe2, 0xe0, 0x31, 0xdb, 0x9c, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xfb, 0x0f, 0x93, 0x81, 0xdc, 0x7f, 0x98, 0x1d, 0x84, 0x94, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xfb, 0x0f, 0xbb, 0x81, 0xdc, 0x7f, 0xd8, 0x1e, 0xbc, 0xc1, 0x73, 0xb3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xfe, 0xc7, 0x1f, 0x3c, 0x0f, 0x9b, 0x73, 0xc3, 0x5f, 0x34, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xf2, 0x3f, 0x64, 0x03, 0xc9, 0xff, 0x30, 0xdb, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe4, 0x7f, 0x08, 0x07, 0x92, 0xff, 0x61, 0x70, 0x10, 0x52, 0x26, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xf2, 0x3f, 0x2c, 0x06, 0x92, 0xff, 0x61, 0x75, 0xf0, 0x06, 0xcf, 0xcd, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xfb, 0x1f, 0x7f, 0xf0, 0x3c, 0x6c, 0xce, 0x0d, 0x4e, 0xec, 0x37, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xf6, 0x3f, 0x64, 0x03, 0xd9, 0xff, 0x90, 0x1f, 0x14, 0x16, 0xcb, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xfe, 0x8f, 0x3f, 0x78, 0x1e, 0x36, 0xe7, 0x06, 0x45, 0xa7, 0xf1, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xfe, 0x0f, 0xd9, 0x40, 0xfa, 0x3f, 0xe4, 0x07, 0x25, 0x52, 0xf5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xfe, 0x0f, 0x8b, 0x81, 0xf4, 0x7f, 0x98, 0x6d, 0x78, 0x5b, 0x67, 0x83, 0x07, 0x50, 0x6e, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0xff, 0xf8, 0x83, 0xe7, 0x61, 0x73, 0x6e, 0xf8, 0x45, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xff, 0x87, 0x6c, 0x20, 0xff, 0x1f, 0x06, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x4d, 0xca, 0x77, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xff, 0x0f, 0xe1, 0xc1, 0xb3, 0x05, 0x3a, 0x0f, 0xde, 0xe0, 0xb9, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x0b, 0x00, 0xf1, 0x07, 0xcf, 0xc3, 0xe6, 0xdc, 0xf0, 0x17, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x00, 0x10, 0xb2, 0x81, 0x05, 0x80, 0x30, 0xd8, 0xf0, 0xef, 0xfc, 0x8a, 0xe3, 0x1c, 0xbc, 0x49, 0xf9, 0xae, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x03, 0x20, 0xfe, 0xe0, 0x79, 0xd8, 0x9c, 0x1b, 0x04, 0xe9, 0xe9, 0x06, 0x0f, 0x04, 0xe3, 0x5c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x01, 0x08, 0xc9, 0xc0, 0x0a, 0x40, 0x88, 0x0f, 0x1e, 0x55, 0xb5, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x2b, 0x00, 0x61, 0x30, 0xb0, 0x02, 0x10, 0x4a, 0x36, 0x3c, 0x28, 0xb9, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x15, 0x80, 0xb0, 0x18, 0x58, 0x01, 0x08, 0xb3, 0x0d, 0x6f, 0xdc, 0x1d, 0x3c, 0xb6, 0x6a, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x01, 0x08, 0xbb, 0x81, 0x15, 0x80, 0xb0, 0x3c, 0x38, 0x0f, 0x83, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x2b, 0x00, 0x61, 0x3a, 0xb0, 0x02, 0x10, 0xe6, 0x07, 0x6f, 0xb6, 0x72, 0x69, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x56, 0x00, 0x42, 0xc1, 0xc1, 0xeb, 0x2a, 0x3a, 0x37, 0xbc, 0xad, 0x73, 0xf0, 0x54, 0x6d, 0xc2, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1d, 0x80, 0x90, 0x0c, 0xec, 0x00, 0x84, 0xf8, 0xe0, 0x61, 0xa7, 0x99, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x03, 0x10, 0x06, 0x03, 0x3b, 0x00, 0xa1, 0x64, 0xc3, 0x83, 0x92, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xd8, 0x01, 0x08, 0x8b, 0x81, 0x1d, 0x80, 0x30, 0xdb, 0xf0, 0xc6, 0xdd, 0xc1, 0x83, 0x4f, 0x33, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1d, 0x80, 0xb0, 0x1b, 0xd8, 0x01, 0x08, 0xcb, 0x83, 0xf3, 0x30, 0xc8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x03, 0x10, 0xa6, 0x03, 0x3b, 0x00, 0x61, 0x7e, 0xf0, 0x66, 0x2b, 0x97, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x07, 0x20, 0x14, 0x1c, 0xbc, 0xfc, 0xa4, 0xf3, 0xe0, 0x49, 0x22, 0x9d, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x4b, 0x00, 0x21, 0x19, 0x58, 0x02, 0x08, 0xf1, 0xc1, 0x33, 0xf6, 0x36, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x09, 0x20, 0x0c, 0x06, 0x96, 0x00, 0x42, 0xc9, 0x86, 0x07, 0x25, 0xd7, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x04, 0x10, 0x16, 0x03, 0x4b, 0x00, 0x61, 0xb6, 0xe1, 0x8d, 0xbb, 0x83, 0xe7, 0xed, 0x6d, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x4b, 0x00, 0x61, 0x37, 0xb0, 0x04, 0x10, 0x96, 0x07, 0xe7, 0x61, 0x90, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x09, 0x20, 0x4c, 0x07, 0x96, 0x00, 0xc2, 0xfc, 0xe0, 0xcd, 0x56, 0x2e, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x12, 0x40, 0x28, 0x38, 0x78, 0x7a, 0x4e, 0xe7, 0xc1, 0x93, 0x44, 0x3a, 0x3b, 0x9c, 0x62, 0xad, 0xc1, 0x61, 0x53, 0x60, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x76, 0x01, 0xe2, 0x07, 0x96, 0x01, 0x42, 0xd1, 0x86, 0x5f, 0x94, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5d, 0x80, 0x90, 0x0d, 0xec, 0x02, 0x84, 0x9e, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xbb, 0x00, 0x21, 0x1c, 0xd8, 0x05, 0x08, 0xeb, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x00, 0xca, 0xcd, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xd8, 0x05, 0x08, 0x93, 0x83, 0xc7, 0x3d, 0x75, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x2e, 0x40, 0xd8, 0x0c, 0xec, 0x02, 0x84, 0xdd, 0x41, 0x48, 0x99, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xbb, 0x00, 0x61, 0x38, 0xb0, 0x0b, 0x10, 0xc6, 0x07, 0x6f, 0xf0, 0xdc, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xd8, 0x05, 0x08, 0xf3, 0x81, 0x5d, 0x80, 0x50, 0xb3, 0xe1, 0xcf, 0xa5, 0x0d, 0x5e, 0x47, 0xc5, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xbb, 0x00, 0xa1, 0xe1, 0xe0, 0x41, 0x5b, 0x9d, 0x07, 0x8f, 0x13, 0xcc, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x96, 0x01, 0xe2, 0x0f, 0x9e, 0x9e, 0xd4, 0xb9, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x19, 0x20, 0x04, 0x03, 0xcb, 0x00, 0x21, 0x3c, 0x58, 0x2a, 0x49, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x2c, 0x03, 0x84, 0x74, 0x60, 0x19, 0x20, 0x4c, 0x0e, 0xde, 0xd6, 0xcf, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x2c, 0x03, 0x84, 0xcd, 0xc0, 0x32, 0x40, 0xe8, 0xd9, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x0c, 0x10, 0x46, 0x03, 0xcb, 0x00, 0x61, 0xbe, 0xe1, 0x6d, 0x9d, 0x0d, 0xde, 0x95, 0xc3, 0xd9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x0c, 0x10, 0xf6, 0x03, 0xcb, 0x00, 0xa1, 0x66, 0xc3, 0xdb, 0x3a, 0x07, 0xef, 0x68, 0xe3, 0xac, 0x15, 0xe0, 0xab, 0x23, 0x4b, 0x33, 0x33, 0x9b, 0x37, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x9e, 0x1b, 0xd7, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xfd, 0xb0, 0x18, 0x48, 0xed, 0x87, 0x9a, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xed, 0x87, 0xc9, 0x40, 0x6a, 0x3f, 0xcc, 0x0e, 0x42, 0xca, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xed, 0x87, 0xdd, 0x40, 0x6a, 0x3f, 0xb4, 0x6c, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xed, 0x87, 0xe1, 0x40, 0x6a, 0x3f, 0xac, 0x37, 0xfc, 0xb9, 0xb4, 0x41, 0xd3, 0xd7, 0xe3, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xda, 0x0f, 0xcb, 0x83, 0x77, 0xf8, 0x75, 0x1e, 0xb4, 0x6d, 0x3d, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xf6, 0xc3, 0x7c, 0x20, 0xb5, 0x1f, 0x4a, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0x1b, 0xb0, 0x37, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xb5, 0x1f, 0xf6, 0x07, 0xcf, 0x21, 0xec, 0xdc, 0xf0, 0xef, 0xfc, 0x1a, 0xbc, 0x01, 0x7b, 0xb3, 0x6a, 0xd6, 0xe0, 0xe4, 0x67, 0xb0, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x8b, 0x00, 0xf1, 0x03, 0x8b, 0x00, 0xa1, 0x6d, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x22, 0x40, 0x08, 0x06, 0x16, 0x01, 0x42, 0x78, 0xd0, 0x32, 0x34, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x08, 0x10, 0xd2, 0x81, 0x45, 0x80, 0xb0, 0x38, 0x38, 0x11, 0xb4, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x8b, 0x00, 0x61, 0x32, 0xb0, 0x08, 0x10, 0xca, 0x36, 0x7c, 0xd4, 0xbe, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x8b, 0x00, 0x61, 0x73, 0xf0, 0xfa, 0xc9, 0xce, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x8b, 0x00, 0x61, 0x34, 0xb0, 0x08, 0x10, 0xf6, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x08, 0x10, 0x56, 0x03, 0x8b, 0x00, 0x61, 0x79, 0x10, 0x52, 0x26, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x22, 0x40, 0x98, 0x0e, 0x2c, 0x02, 0x84, 0xf9, 0xc1, 0x1b, 0x3c, 0x37, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x16, 0x01, 0x42, 0xc1, 0xc0, 0x22, 0x40, 0xe8, 0xda, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x45, 0x80, 0xd0, 0x30, 0xb0, 0x08, 0x10, 0x5a, 0x0e, 0x42, 0xca, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x04, 0x08, 0x35, 0x03, 0x8b, 0x00, 0xa1, 0xea, 0xe0, 0x0d, 0x9e, 0x9b, 0xd5, 0xe1, 0x14, 0x5b, 0x00, 0xcf, 0x3a, 0xb2, 0x34, 0x33, 0xb3, 0x16, 0xba, 0xb7, 0x16, 0xb2, 0x34, 0x33, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xfc, 0xf1, 0x03, 0x89, 0xff, 0x90, 0x6c, 0xf8, 0x45, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xf2, 0x87, 0x6c, 0x20, 0xc9, 0x1f, 0xe6, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xfc, 0x21, 0x1c, 0x48, 0xf2, 0x87, 0xd1, 0x86, 0x3f, 0x97, 0x06, 0x78, 0xc3, 0x5a, 0xea, 0xc8, 0xd2, 0xcc, 0xcc, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xf2, 0x87, 0xfc, 0xe0, 0x31, 0xb2, 0x9d, 0x07, 0x8f, 0x40, 0xec, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xfc, 0x61, 0x35, 0x90, 0xe4, 0x0f, 0xeb, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x3a, 0x2a, 0xce, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xf2, 0x87, 0xe1, 0xc1, 0xab, 0x71, 0x3b, 0x0f, 0x1e, 0x27, 0x98, 0xd9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xf9, 0xe3, 0x0f, 0x5e, 0xcc, 0xda, 0xb9, 0xe1, 0x2f, 0x9a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xcb, 0x1f, 0xb2, 0x81, 0x2c, 0x7f, 0x98, 0x6d, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x96, 0x3f, 0x84, 0x03, 0x59, 0xfe, 0x30, 0x38, 0x28, 0x9b, 0x30, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x2c, 0x7f, 0x58, 0x0c, 0x64, 0xf9, 0xc3, 0xea, 0xe0, 0x0d, 0x9e, 0x9b, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x9a, 0x3f, 0xfe, 0xe0, 0xc5, 0xac, 0x9d, 0x1b, 0x04, 0xe9, 0xe9, 0x1a, 0x52, 0x07, 0x1b, 0x3c, 0x66, 0xb6, 0xb3, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x3c, 0x7f, 0xc8, 0x06, 0xf2, 0xfc, 0x61, 0x73, 0xf0, 0x86, 0x0e, 0xce, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xf3, 0x87, 0xd5, 0x40, 0x9e, 0x3f, 0x54, 0x6e, 0xb0, 0xa4, 0x7e, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xf3, 0x87, 0xe1, 0x40, 0x9e, 0x3f, 0xd4, 0x6d, 0x78, 0xe3, 0x6e, 0xc3, 0xcb, 0x77, 0x01, 0x3c, 0xd5, 0x91, 0xa5, 0x99, 0x99, 0xb5, 0xd0, 0xbd, 0xb5, 0x90, 0xa5, 0x99, 0x99, 0xb5, 0x90, 0xa5, 0xcd, 0x85, 0xd9, 0xbd, 0xdd, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xe7, 0x0f, 0x7d, 0x03, 0x79, 0xfe, 0xd0, 0x78, 0x10, 0x9e, 0xaa, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0xfe, 0x90, 0x0d, 0x24, 0xfa, 0xc3, 0xe0, 0xe0, 0x19, 0x7b, 0x9b, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xe8, 0x0f, 0xab, 0x81, 0x44, 0x7f, 0x68, 0xdf, 0xe0, 0x18, 0x6e, 0xb0, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0xfe, 0x30, 0x3b, 0x78, 0xc8, 0x77, 0xe7, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x44, 0x7f, 0xd8, 0x0d, 0x24, 0xfa, 0xc3, 0xf8, 0xe0, 0xb5, 0x3d, 0x9d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xa2, 0x3f, 0xac, 0x07, 0x12, 0xfd, 0xa1, 0xec, 0xe0, 0xfd, 0xca, 0x9c, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xa2, 0x3f, 0xb4, 0x0d, 0x24, 0xfa, 0x43, 0xf9, 0x86, 0xb7, 0x75, 0x36, 0x78, 0x30, 0x1d, 0xd7, 0xc1, 0xcb, 0x96, 0x3b, 0x5b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xf4, 0x87, 0x6c, 0x20, 0xd3, 0x1f, 0x06, 0x07, 0x8f, 0xaa, 0xda, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x54, 0x7f, 0x48, 0x06, 0xd2, 0xfd, 0xa1, 0x6b, 0x83, 0x62, 0x47, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xf5, 0x87, 0x74, 0x20, 0xd5, 0x1f, 0xca, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xfa, 0x43, 0x3c, 0x90, 0xea, 0x0f, 0x8b, 0xc3, 0x37, 0x8a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xaa, 0x3f, 0x4c, 0x06, 0x52, 0xfd, 0x61, 0xbe, 0xe1, 0x6d, 0x9d, 0x0d, 0x5e, 0x44, 0xeb, 0x78, 0xf0, 0xb2, 0xe5, 0xce, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xd5, 0x1f, 0xf6, 0x03, 0xa9, 0xfe, 0xd0, 0x75, 0xf0, 0x0e, 0x36, 0xce, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5c, 0x7f, 0xc8, 0x06, 0x72, 0xfd, 0x21, 0x3c, 0x28, 0x28, 0x32, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xd9, 0x1f, 0x92, 0x83, 0xa7, 0xc4, 0x77, 0x6e, 0xb0, 0xcc, 0x9a, 0x69, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x64, 0x7f, 0x48, 0x07, 0x92, 0xfd, 0xa1, 0x7e, 0xc3, 0x23, 0xac, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xb2, 0x3f, 0xe4, 0x03, 0xc9, 0xfe, 0xd0, 0xb7, 0xe1, 0x6d, 0xd6, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xf6, 0x87, 0xc1, 0xc1, 0x0b, 0x11, 0x3c, 0x37, 0xfc, 0x9b, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xfb, 0xc3, 0x64, 0x20, 0xd9, 0x1f, 0xe6, 0x07, 0xaf, 0xcf, 0xef, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x64, 0x7f, 0xd8, 0x0f, 0x24, 0xfb, 0x43, 0xdd, 0x86, 0x8f, 0xa3, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xd9, 0x1f, 0x1a, 0x06, 0x92, 0xfd, 0xa1, 0xed, 0xe0, 0x1d, 0x6c, 0x9c, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xb2, 0x3f, 0x14, 0x0e, 0x24, 0xfb, 0x43, 0xfb, 0x86, 0xb7, 0x59, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xd9, 0x1f, 0x1a, 0x0f, 0xde, 0x66, 0xe1, 0xb9, 0xe1, 0x6d, 0x9d, 0x0d, 0x5e, 0x6c, 0xbd, 0x72, 0xf0, 0xb2, 0xe5, 0xce, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x6c, 0x7f, 0xc8, 0x06, 0xb2, 0xfd, 0xa1, 0x78, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xb6, 0x3f, 0x84, 0x03, 0xd9, 0xfe, 0xd0, 0xb3, 0xe1, 0x8d, 0xbb, 0x0d, 0x2f, 0xdf, 0x05, 0xf0, 0x59, 0x47, 0x96, 0x66, 0x66, 0xd6, 0x42, 0xf7, 0xd6, 0x42, 0x96, 0x66, 0x66, 0xd6, 0x32, 0xb7, 0x96, 0x06, 0x07, 0x57, 0x46, 0xd6, 0x22, 0x97, 0x66, 0x46, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0xfe, 0x50, 0x34, 0x90, 0xed, 0x0f, 0x7d, 0x1b, 0xde, 0xd6, 0x39, 0x78, 0xd9, 0x72, 0xe7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xed, 0x0f, 0x85, 0x03, 0xd9, 0xfe, 0xd0, 0x7b, 0xf0, 0x4c, 0xb8, 0xce, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xdd, 0x1f, 0x92, 0x83, 0xa7, 0xc4, 0x77, 0x6e, 0x70, 0x0c, 0x37, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x74, 0x7f, 0x88, 0x0e, 0x9e, 0x12, 0xdf, 0xb9, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xdd, 0x1f, 0xb2, 0x81, 0x74, 0x7f, 0x18, 0x1c, 0x3c, 0x28, 0xa3, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xf7, 0x87, 0xc5, 0x40, 0xba, 0x3f, 0xac, 0x0f, 0xde, 0xc1, 0xc6, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xfb, 0xc3, 0x7c, 0x20, 0xdd, 0x1f, 0xaa, 0x0e, 0x5e, 0x9f, 0xdf, 0xd9, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc2, 0x3f, 0x64, 0x03, 0x09, 0xff, 0x30, 0x38, 0x78, 0xd8, 0x69, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xfc, 0x43, 0x32, 0x90, 0xf7, 0x0f, 0x4d, 0x1b, 0x14, 0x3b, 0x9a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc6, 0x3f, 0xa4, 0x03, 0x19, 0xff, 0x50, 0xb6, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe3, 0x1f, 0xe2, 0x81, 0x8c, 0x7f, 0x58, 0x1c, 0xbe, 0x51, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0xfe, 0x61, 0x32, 0x90, 0xf1, 0x0f, 0xf3, 0x0d, 0x6f, 0xeb, 0x6c, 0xf0, 0x18, 0x1b, 0xbb, 0x83, 0x97, 0x2d, 0x77, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0xff, 0xb0, 0x1f, 0xc8, 0xf8, 0x87, 0xae, 0x83, 0xb7, 0x0f, 0x72, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xfc, 0x43, 0x36, 0x90, 0xf2, 0x0f, 0xe1, 0x41, 0x41, 0x91, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0xff, 0x90, 0x1c, 0xbc, 0xb2, 0xc7, 0x73, 0x83, 0x65, 0xd6, 0x4c, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xfc, 0x43, 0x3a, 0x90, 0xf3, 0x0f, 0xf5, 0x1b, 0x1e, 0x61, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0xfe, 0x21, 0x1f, 0xc8, 0xf9, 0x87, 0xbe, 0x0d, 0x6f, 0xb3, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xce, 0x3f, 0x0c, 0x0e, 0x1e, 0x4f, 0xe5, 0xb9, 0xe1, 0xdf, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe7, 0x1f, 0x26, 0x03, 0x39, 0xff, 0x30, 0x3f, 0x78, 0x98, 0x91, 0xe7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xfc, 0xc3, 0x7e, 0x20, 0xe7, 0x1f, 0xea, 0x36, 0x7c, 0x1c, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0xff, 0xd0, 0x30, 0x90, 0xf3, 0x0f, 0x6d, 0x07, 0x6f, 0x1f, 0xe4, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0xfe, 0xa1, 0x70, 0x20, 0xe7, 0x1f, 0xda, 0x37, 0xbc, 0xcd, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0xff, 0xd0, 0x78, 0xf0, 0x6c, 0x31, 0xcf, 0x83, 0xd7, 0x66, 0x78, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xfd, 0x43, 0x36, 0x90, 0xf4, 0x0f, 0xc5, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xfe, 0x21, 0x1c, 0x48, 0xfa, 0x87, 0x9e, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0x2e, 0x80, 0xcf, 0x3a, 0xb2, 0x34, 0x33, 0xb3, 0x16, 0xba, 0xb7, 0x16, 0xb2, 0x34, 0x33, 0xb3, 0x96, 0xb9, 0xb5, 0x34, 0x38, 0xb8, 0x32, 0xb2, 0x16, 0xb6, 0x34, 0xb3, 0x72, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xfa, 0x87, 0xa2, 0x81, 0xa4, 0x7f, 0xe8, 0x3b, 0x78, 0xc1, 0x89, 0xe7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xf4, 0x0f, 0x85, 0x03, 0x49, 0xff, 0xd0, 0x7b, 0xf0, 0x4c, 0xb8, 0xce, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xeb, 0x1f, 0x92, 0x83, 0x57, 0xf6, 0x78, 0x6e, 0xb0, 0xa8, 0x3c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xfa, 0x87, 0x74, 0x20, 0xeb, 0x1f, 0xe2, 0x83, 0x82, 0x22, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xfa, 0x87, 0xc1, 0x40, 0xd6, 0x3f, 0xac, 0x0e, 0x1e, 0xbb, 0xd2, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xfd, 0x43, 0x36, 0x90, 0xf6, 0x0f, 0x5f, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xfd, 0x43, 0x38, 0x90, 0xf6, 0x0f, 0xc3, 0x83, 0xb7, 0x0f, 0x72, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0xff, 0xb0, 0x1c, 0x48, 0xfb, 0x87, 0x2b, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0xfe, 0x61, 0x3a, 0x90, 0xf6, 0x0f, 0x85, 0x1b, 0x94, 0x25, 0xef, 0x1b, 0x3c, 0xb8, 0x2b, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xfb, 0x87, 0x82, 0x81, 0xb4, 0x7f, 0xa8, 0x38, 0x28, 0x9b, 0xea, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb4, 0x7f, 0xe8, 0x18, 0x48, 0xfb, 0x87, 0xbe, 0x83, 0xd7, 0x68, 0x72, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xfd, 0x43, 0xe3, 0x40, 0xda, 0x3f, 0xb4, 0x1f, 0xbc, 0x7d, 0x90, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xfb, 0x87, 0xfa, 0x81, 0xb4, 0x7f, 0x78, 0xb2, 0x41, 0x21, 0x98, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0xff, 0xd0, 0x7f, 0xf0, 0x40, 0x4a, 0xcf, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0xff, 0x70, 0x60, 0x20, 0xed, 0x1f, 0x3e, 0x1c, 0x94, 0x59, 0xba, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xda, 0x3f, 0x9c, 0x18, 0x48, 0xfb, 0x87, 0x23, 0x07, 0x0f, 0xb8, 0xc9, 0xac, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xef, 0x1f, 0x92, 0x83, 0x57, 0xf6, 0x78, 0x6e, 0x78, 0x50, 0x72, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0xff, 0x10, 0x0d, 0xe4, 0xfd, 0x43, 0xbc, 0xe1, 0x6d, 0x9d, 0x83, 0x87, 0xeb, 0x3a, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0xff, 0x90, 0x0f, 0xe4, 0xfd, 0xc3, 0x76, 0xc3, 0xdb, 0x3a, 0x1b, 0xbc, 0x31, 0x78, 0xb3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xef, 0x1f, 0xc6, 0x03, 0x79, 0xff, 0x50, 0xb0, 0xe1, 0x6d, 0x9d, 0x83, 0xd7, 0xdd, 0x64, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0xff, 0x50, 0x71, 0xf0, 0xca, 0x1e, 0xcf, 0x83, 0x17, 0x9c, 0x78, 0x76, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0x6a, 0xf0, 0x48, 0x3a, 0x91, 0x0d, 0xcf, 0x93, 0x6c, 0xf0, 0x74, 0x21, 0xbb, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0x47, 0xd2, 0x89, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xe2, 0x3d, 0x6e, 0x20, 0xfb, 0x1e, 0xbf, 0x41, 0xd0, 0xfe, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0xf7, 0x90, 0x0c, 0x24, 0xde, 0xc3, 0x9d, 0x0d, 0x4f, 0xbc, 0x6f, 0xf0, 0xc0, 0x79, 0xbc, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0xf7, 0x10, 0x0d, 0x24, 0xde, 0x43, 0x7e, 0xb0, 0x0a, 0x25, 0x7c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xbc, 0x87, 0xc1, 0x40, 0xe2, 0x3d, 0xf4, 0x6c, 0xf8, 0x73, 0x69, 0x83, 0x47, 0xe9, 0xe3, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xe2, 0x3d, 0xcc, 0x0e, 0xde, 0xcb, 0xeb, 0xb9, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0xf7, 0xb0, 0x1b, 0x48, 0xbc, 0x87, 0xed, 0x41, 0xd9, 0x84, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xde, 0xc3, 0x78, 0x20, 0xf1, 0x1e, 0x6a, 0x0e, 0x1e, 0xf8, 0x8f, 0x57, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xe6, 0x3d, 0x24, 0x03, 0x99, 0xf7, 0x70, 0x64, 0xc3, 0x13, 0xef, 0x1b, 0x3c, 0x42, 0x13, 0x6f, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xe6, 0x3d, 0x44, 0x03, 0x99, 0xf7, 0x90, 0x1f, 0x3c, 0xbf, 0x13, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xbc, 0x87, 0xc1, 0x40, 0xe6, 0x3d, 0x2c, 0x37, 0xfc, 0xb9, 0xb4, 0x41, 0x13, 0xda, 0xd7, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x79, 0x0f, 0xc3, 0x83, 0x77, 0x3c, 0x7b, 0x1e, 0x84, 0xe9, 0x58, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xea, 0x3d, 0x24, 0x03, 0xa9, 0xf7, 0xf0, 0x63, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x3f, 0x38, 0xb9, 0x34, 0xbb, 0x30, 0xba, 0x32, 0x90, 0xb5, 0xb2, 0xbc, 0xb9, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xf7, 0x10, 0x0d, 0xa4, 0xde, 0xc3, 0x6e, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x6f, 0x9e, 0x0e, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0xef, 0x61, 0x38, 0x90, 0x7a, 0x0f, 0xeb, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x18, 0x1b, 0xbb, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xbd, 0x87, 0xe5, 0xc1, 0x6b, 0xbc, 0x3d, 0x0f, 0xde, 0xa6, 0xeb, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xde, 0xc3, 0x7c, 0x20, 0xf5, 0x1e, 0x2a, 0x37, 0xfc, 0xb9, 0xb4, 0xc1, 0xda, 0xb4, 0xe6, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xbd, 0x87, 0x8e, 0x83, 0x67, 0x91, 0x7b, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xea, 0x3d, 0x94, 0x0c, 0xa4, 0xde, 0x43, 0xcf, 0x41, 0x89, 0x58, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xde, 0x43, 0xd1, 0x40, 0xea, 0x3d, 0x94, 0x1d, 0xbc, 0x4d, 0xd7, 0x71, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xbd, 0x87, 0xb6, 0x81, 0xd4, 0x7b, 0x68, 0xdc, 0xf0, 0xef, 0xfc, 0x1a, 0xb4, 0xd2, 0x41, 0x5e, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xde, 0x43, 0x32, 0x90, 0x7b, 0x0f, 0x5f, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x2f, 0xa3, 0x43, 0x2b, 0x93, 0x2b, 0xab, 0x6b, 0x03, 0x19, 0x43, 0x0b, 0x73, 0x3b, 0x2b, 0x9b, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x7b, 0x0f, 0xd1, 0x40, 0xee, 0x3d, 0xcc, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xf0, 0x70, 0xef, 0xa0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xf7, 0x1e, 0x76, 0x03, 0xb9, 0xf7, 0x50, 0xb5, 0xe1, 0xcf, 0xa5, 0x01, 0xf8, 0x80, 0xab, 0x13, 0x63, 0x4b, 0x1b, 0x6b, 0x59, 0x2b, 0xcb, 0x9b, 0x6b, 0x91, 0x2b, 0x9b, 0xab, 0x63, 0xa3, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xf7, 0x1e, 0x86, 0x07, 0x2f, 0xe9, 0xf7, 0xdc, 0xf0, 0xef, 0xfc, 0x1a, 0x3c, 0xc5, 0xdf, 0xb3, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xef, 0x21, 0x19, 0x48, 0xbe, 0x87, 0x0b, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xbc, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xef, 0x21, 0x1a, 0x48, 0xbe, 0x87, 0xfc, 0xe0, 0xb1, 0x1c, 0x8d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xf2, 0x3d, 0x0c, 0x06, 0x92, 0xef, 0xa1, 0x60, 0xc3, 0x9f, 0x4b, 0x1b, 0xbc, 0x84, 0x3d, 0x68, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xef, 0x61, 0x75, 0xf0, 0xb4, 0x86, 0xcf, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xbe, 0x87, 0xd9, 0x40, 0xf2, 0x3d, 0x4c, 0x0f, 0x42, 0xca, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xbe, 0x87, 0xed, 0x40, 0xf2, 0x3d, 0xec, 0x0f, 0x5e, 0x8e, 0xd2, 0x58, 0xad, 0x06, 0x49, 0x0b, 0xc2, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xa5, 0x8f, 0x1b, 0xc8, 0xd5, 0xc7, 0x6f, 0x78, 0x50, 0x72, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xd2, 0x87, 0x64, 0x20, 0x4b, 0x1f, 0xe2, 0x0d, 0x6f, 0xeb, 0x1c, 0x24, 0x2c, 0x08, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x9a, 0x3e, 0xee, 0xe0, 0xb1, 0x19, 0x9f, 0x1b, 0x94, 0x2c, 0xec, 0xb3, 0xcc, 0x02, 0x3e, 0x5a, 0xd8, 0x1c, 0xba, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0x66, 0x90, 0xcf, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xd3, 0x87, 0xc5, 0x40, 0x9e, 0x3e, 0xac, 0x37, 0x7c, 0x51, 0xb3, 0xa1, 0x8e, 0x07, 0x78, 0xd5, 0xe1, 0x89, 0xb1, 0xbd, 0x8d, 0xad, 0xa1, 0x85, 0xcd, 0xa1, 0xab, 0x41, 0xd2, 0x82, 0xf0, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0x41, 0xd2, 0x82, 0xf0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xea, 0xc3, 0x62, 0x20, 0x55, 0x1f, 0x3a, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xea, 0xc3, 0x64, 0x20, 0x55, 0x1f, 0x56, 0x1b, 0xfe, 0x5c, 0x1a, 0xf8, 0x34, 0x72, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0xf5, 0x61, 0x73, 0xf0, 0xfc, 0x96, 0xcf, 0x0d, 0xff, 0xce, 0x6f, 0xd0, 0x4a, 0x4e, 0x68, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xaa, 0x3e, 0xcc, 0x06, 0x52, 0xf5, 0xa1, 0x62, 0xc3, 0x9f, 0x4b, 0x03, 0x78, 0xc1, 0x85, 0xc9, 0x95, 0xb9, 0xd1, 0xb5, 0xa0, 0x85, 0xcd, 0xa1, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xaa, 0x0f, 0xf3, 0x83, 0xa7, 0xd1, 0x7c, 0x6e, 0xf8, 0x77, 0x7e, 0x0d, 0xde, 0x0c, 0xf2, 0x59, 0x1d, 0x4e, 0xb1, 0x35, 0x78, 0x08, 0xc9, 0xe6, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x43, 0x48, 0x36, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x51, 0x1f, 0x16, 0x03, 0x89, 0xfa, 0xb0, 0xdf, 0xf0, 0x45, 0xcd, 0x86, 0x3a, 0x1e, 0xe0, 0x59, 0x47, 0x26, 0xc6, 0xf6, 0x36, 0xb6, 0xe6, 0x56, 0xd7, 0x26, 0x56, 0x26, 0xaf, 0xc0, 0xa7, 0x91, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0xc0, 0xa7, 0x91, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xa9, 0x0f, 0x8b, 0x81, 0x4c, 0x7d, 0x28, 0xd8, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xa9, 0x0f, 0x93, 0x81, 0x4c, 0x7d, 0xd8, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0x37, 0x83, 0x7c, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xa6, 0x3e, 0x6c, 0x0e, 0x1e, 0x7e, 0xf4, 0x79, 0xf0, 0xa6, 0x9c, 0xcf, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x53, 0x1f, 0x86, 0x03, 0x99, 0xfa, 0xb0, 0xdf, 0xf0, 0xe7, 0xd2, 0x06, 0x0f, 0x21, 0xd9, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4c, 0x7d, 0x58, 0x1e, 0xbc, 0xc0, 0xe9, 0x73, 0xc3, 0xbf, 0xf3, 0x1b, 0x3c, 0x83, 0x64, 0xb3, 0x0e, 0xa7, 0x58, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x2d, 0x80, 0xc7, 0xdc, 0x5b, 0x9d, 0xdc, 0x58, 0x59, 0x4b, 0x1a, 0xb9, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0xfe, 0xa9, 0xcf, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x14, 0x08, 0x93, 0x81, 0x45, 0x81, 0xb0, 0xde, 0xf0, 0x45, 0xcd, 0x86, 0x3a, 0x1e, 0xe0, 0x53, 0x47, 0x36, 0xf7, 0x56, 0x27, 0x37, 0x56, 0x96, 0x46, 0xce, 0x02, 0x1e, 0xdc, 0x5a, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x7b, 0x03, 0x21, 0x1c, 0xd8, 0x27, 0x08, 0x83, 0x0d, 0x52, 0x2f, 0x8a, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x71, 0x20, 0xee, 0xe0, 0xb1, 0x5d, 0x9f, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0x1e, 0xdc, 0x5a, 0xda, 0x06, 0x25, 0x0b, 0xfb, 0x2c, 0xb3, 0x80, 0xdf, 0x96, 0xe6, 0x46, 0x6e, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xbc, 0x68, 0xec, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf6, 0x08, 0x42, 0x3e, 0xb0, 0x47, 0x10, 0xbe, 0x6c, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0xbb, 0x56, 0x96, 0x07, 0x92, 0x46, 0x56, 0xe6, 0x46, 0x97, 0x66, 0x96, 0x56, 0x26, 0xb7, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x8f, 0x20, 0x0c, 0x06, 0xf6, 0x08, 0xc2, 0x70, 0xc3, 0x9f, 0x4b, 0x03, 0xde, 0x1d, 0xda, 0xbb, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x7b, 0x04, 0x61, 0x74, 0xf0, 0x64, 0xb6, 0xcf, 0x83, 0xb6, 0xad, 0xc7, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x3d, 0x82, 0xb0, 0x1c, 0xd8, 0x23, 0x08, 0x0d, 0x1b, 0xfe, 0x5c, 0x1a, 0xf0, 0xd8, 0xf2, 0xcc, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xd8, 0x23, 0x08, 0xeb, 0x83, 0xc7, 0xcb, 0x7d, 0x1e, 0xbc, 0x4d, 0xd7, 0xb1, 0x15, 0xf0, 0xdf, 0xc2, 0xe8, 0xd0, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0xe7, 0xdd, 0x7d, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x26, 0x41, 0xc8, 0x07, 0x36, 0x09, 0xc2, 0x8d, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x3c, 0xe6, 0xd2, 0xce, 0xdc, 0xc2, 0xe8, 0xea, 0xe4, 0xca, 0x0e, 0x3f, 0xd4, 0xcc, 0x1a, 0xac, 0x22, 0xf9, 0xd9, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x58, 0x45, 0xf2, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x6b, 0x04, 0x21, 0x1f, 0x58, 0x23, 0x08, 0x4f, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x8b, 0x91, 0xc1, 0x69, 0x11, 0x4b, 0xa3, 0x03, 0x41, 0x0b, 0x9b, 0x43, 0x3b, 0x48, 0xf7, 0x97, 0x9d, 0x35, 0x78, 0xb5, 0xbf, 0xcb, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0xab, 0xfd, 0x5d, 0x1a, 0x40, 0xb7, 0x4e, 0x4e, 0x2c, 0x8d, 0xae, 0x65, 0x2e, 0xed, 0xcc, 0xad, 0x8c, 0x0c, 0x44, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xbb, 0x04, 0xf1, 0x03, 0xeb, 0x04, 0x21, 0xd9, 0xf0, 0x70, 0xfe, 0x06, 0x8d, 0x35, 0x67, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x32, 0x41, 0xfc, 0xc1, 0xcb, 0x18, 0x3f, 0x37, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x2c, 0x13, 0x84, 0x6c, 0x60, 0x99, 0x20, 0x3c, 0xd8, 0xf0, 0xc4, 0xfb, 0x06, 0x4f, 0x02, 0xdc, 0xdb, 0xf0, 0xe7, 0xd2, 0x06, 0x45, 0x6d, 0xf1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x2c, 0x13, 0x84, 0x7c, 0x60, 0x99, 0x20, 0x4c, 0x0e, 0x1e, 0x17, 0x7d, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x6c, 0x13, 0x84, 0x6c, 0x60, 0x9b, 0x20, 0xfc, 0xd8, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x67, 0x2e, 0xed, 0xcc, 0x2d, 0x8c, 0xae, 0x4e, 0xae, 0x6c, 0x6e, 0xc3, 0x9f, 0x4b, 0x03, 0xde, 0x5c, 0xde, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xdb, 0x04, 0x21, 0x1f, 0xd8, 0x26, 0x08, 0x55, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x4d, 0x10, 0x06, 0x03, 0xdb, 0x04, 0x61, 0x73, 0x50, 0x22, 0xd6, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xdb, 0x04, 0x61, 0x34, 0xb0, 0x4d, 0x10, 0x86, 0x07, 0x6d, 0x5b, 0x8f, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xdb, 0x04, 0x61, 0x39, 0xb0, 0x4d, 0x10, 0x9a, 0x36, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x9b, 0x20, 0x4c, 0x07, 0xb6, 0x09, 0xc2, 0xfc, 0xa0, 0xf4, 0xa6, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb6, 0x09, 0xc2, 0x7e, 0x60, 0x9b, 0x20, 0x74, 0x1c, 0xbc, 0x4d, 0xd7, 0x71, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xd8, 0x26, 0x08, 0x25, 0x03, 0xdb, 0x04, 0xa1, 0x68, 0xc3, 0xbf, 0xf3, 0x6b, 0xf0, 0xbc, 0xbb, 0xcf, 0xaa, 0x0e, 0xa7, 0xd8, 0x1a, 0xbe, 0x6f, 0xdf, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x8b, 0x04, 0x21, 0x1f, 0x58, 0x24, 0x08, 0x67, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x0e, 0x9b, 0x1b, 0x4b, 0x4b, 0x03, 0x79, 0x01, 0xa9, 0x73, 0x4b, 0x1b, 0x7b, 0x23, 0x2b, 0xdb, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x45, 0x82, 0x30, 0x18, 0x58, 0x24, 0x08, 0xa3, 0x83, 0xd2, 0x9b, 0x7e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x58, 0x24, 0x08, 0xab, 0x81, 0x45, 0x82, 0x30, 0x3c, 0x38, 0x6a, 0x83, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x8b, 0x04, 0x61, 0x39, 0xb0, 0x48, 0x10, 0xb6, 0x07, 0xe7, 0xd9, 0xd1, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x9b, 0x05, 0x7c, 0xb3, 0xb2, 0x32, 0x72, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xe0, 0x31, 0xc3, 0x9f, 0x0d, 0xc0, 0x23, 0xdc, 0x1b, 0x5d, 0x99, 0x1b, 0x5d, 0x5a, 0x18, 0x1b, 0x88, 0xd8, 0xdb, 0x1b, 0x1d, 0x08, 0x5c, 0x98, 0x5c, 0x58, 0x5b, 0x19, 0x5d, 0x99, 0xdc, 0xdc, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x63, 0x86, 0x3f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x03, 0x1f, 0x37, 0x90, 0x84, 0x0f, 0xad, 0x1b, 0x2c, 0x5d, 0xae, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0xf0, 0x21, 0x19, 0xc8, 0xc1, 0x87, 0x6c, 0x83, 0xa0, 0xfd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0xf0, 0x21, 0x1d, 0xc8, 0xc0, 0x87, 0xf6, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0xf8, 0x10, 0x0f, 0x64, 0xe0, 0xc3, 0x68, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x06, 0x3e, 0xe4, 0x03, 0x19, 0xf8, 0xb0, 0x38, 0x08, 0x1c, 0xd5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x03, 0x1f, 0x26, 0x03, 0x19, 0xf8, 0xb0, 0x39, 0x08, 0xc1, 0x87, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x0c, 0x7c, 0x58, 0x0d, 0x64, 0xe0, 0xc3, 0x7a, 0xc3, 0x9f, 0x4b, 0x03, 0xde, 0x1d, 0xda, 0xbb, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0xf8, 0xb0, 0x3c, 0x78, 0x3b, 0xf7, 0xe7, 0x41, 0xdb, 0xd6, 0xe3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x06, 0x3e, 0xcc, 0x07, 0x32, 0xf0, 0xa1, 0x7c, 0xc3, 0x9f, 0x4b, 0x03, 0xde, 0x5a, 0x9e, 0xbe, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0xf8, 0x50, 0x71, 0xf0, 0x84, 0xf1, 0xcf, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xc0, 0x87, 0x8e, 0x81, 0x0c, 0x7c, 0xe8, 0x39, 0x08, 0x29, 0x93, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x03, 0x1f, 0x8a, 0x06, 0x32, 0xf0, 0xa1, 0x7b, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x06, 0x3e, 0x34, 0x0d, 0x64, 0xe0, 0x43, 0xe3, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb6, 0x3c, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0xf0, 0xa1, 0xed, 0xe0, 0xad, 0xee, 0x9f, 0x07, 0x6f, 0xd3, 0x75, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0xf0, 0xa1, 0x72, 0x20, 0x03, 0x1f, 0xaa, 0x37, 0xfc, 0xb9, 0xb4, 0x41, 0xd1, 0x7a, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0xf8, 0x50, 0x7b, 0xf0, 0x6c, 0xfa, 0xcf, 0x83, 0xc7, 0xc2, 0x7b, 0x56, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x0a, 0x3e, 0xa4, 0x03, 0x29, 0xf8, 0x70, 0x63, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x0a, 0x3e, 0xc4, 0x03, 0x29, 0xf8, 0x30, 0xda, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x82, 0x0f, 0xf9, 0x40, 0x0a, 0x3e, 0x2c, 0x0e, 0x82, 0xd8, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xc1, 0x87, 0xc9, 0x40, 0x0a, 0x3e, 0x6c, 0x0e, 0x42, 0xf0, 0xa1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x05, 0x1f, 0x56, 0x03, 0x29, 0xf8, 0xb0, 0xde, 0xf0, 0xe7, 0xd2, 0x80, 0x77, 0x87, 0xf6, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x0a, 0x3e, 0x2c, 0x0f, 0x5e, 0x60, 0x00, 0x7a, 0xd0, 0xb6, 0xf5, 0xf8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x82, 0x0f, 0xf3, 0x81, 0x14, 0x7c, 0xa8, 0xd9, 0xf0, 0xe7, 0xd2, 0x06, 0x0d, 0x67, 0x6b, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x0a, 0x3e, 0x54, 0x1c, 0x3c, 0x84, 0x01, 0xf4, 0xe0, 0x0d, 0xb6, 0x8e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x0a, 0x3e, 0xf4, 0x0c, 0xa4, 0xe0, 0xc3, 0x8b, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x6b, 0x79, 0xfa, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xe0, 0x43, 0xd7, 0xc1, 0x9b, 0x24, 0x40, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x05, 0x1f, 0xca, 0x06, 0x52, 0xf0, 0xa1, 0xf0, 0x20, 0xa4, 0x4c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x14, 0x7c, 0x68, 0x1c, 0x48, 0xc1, 0x87, 0x13, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0xf0, 0xa1, 0x72, 0x20, 0x05, 0x1f, 0xaa, 0x37, 0xfc, 0xb9, 0x34, 0xe0, 0xb1, 0xe5, 0x99, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x82, 0x0f, 0xb5, 0x07, 0xcf, 0xef, 0x00, 0x3d, 0x78, 0x9b, 0xae, 0xe3, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x82, 0x0f, 0xdd, 0x03, 0x29, 0xf8, 0xf0, 0x61, 0xc3, 0x9f, 0x4b, 0x1b, 0x14, 0xad, 0x27, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x82, 0x0f, 0xfd, 0x07, 0x2f, 0x21, 0x01, 0x3d, 0x78, 0x2c, 0xbc, 0x67, 0xd5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xe1, 0xe3, 0x0e, 0x5e, 0xc5, 0xfc, 0xb9, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x09, 0x1f, 0x3b, 0x90, 0x84, 0x0f, 0xf1, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0x3b, 0xb4, 0x77, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xf0, 0x21, 0x3a, 0x78, 0x3d, 0x0b, 0xe8, 0x41, 0xdb, 0xd6, 0xe3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x12, 0x3e, 0xe4, 0x03, 0x49, 0xf8, 0xb0, 0xdb, 0xf0, 0xe7, 0xd2, 0x80, 0xc7, 0x96, 0x67, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x12, 0x3e, 0x6c, 0x0e, 0x5e, 0x30, 0x03, 0x7a, 0xf0, 0x36, 0x5d, 0xc7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x09, 0x1f, 0x86, 0x03, 0x49, 0xf8, 0x50, 0xb0, 0xe1, 0xcf, 0xa5, 0x0d, 0x8a, 0xd6, 0x93, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xc2, 0x87, 0xf1, 0xc1, 0x4b, 0x72, 0x40, 0x0f, 0x1e, 0x0b, 0xef, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xe1, 0x43, 0xc3, 0x40, 0x12, 0x3e, 0x94, 0x6e, 0xf8, 0x73, 0x69, 0x83, 0xc4, 0xc4, 0xa3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xc2, 0x87, 0x96, 0x83, 0xf7, 0xfc, 0x80, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x12, 0x3e, 0xd4, 0x0c, 0x24, 0xe1, 0x43, 0xd5, 0x41, 0xd9, 0x84, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xe1, 0x43, 0xd7, 0x40, 0x12, 0x3e, 0x74, 0x6e, 0xf8, 0x77, 0x7e, 0x83, 0x37, 0xc5, 0x7e, 0x6e, 0xf0, 0xf2, 0xb0, 0xcf, 0xea, 0x70, 0x8a, 0x2d, 0x80, 0x0f, 0x59, 0xd8, 0x9d, 0x5b, 0x4b, 0x99, 0x5d, 0x99, 0x1b, 0xbd, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0x5e, 0x25, 0xd0, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xce, 0xc7, 0x0d, 0xa4, 0xe8, 0xe3, 0x37, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xe7, 0x43, 0x32, 0x90, 0x9c, 0x0f, 0xf1, 0x86, 0x3f, 0x97, 0x36, 0x78, 0xcc, 0xf0, 0xe7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xe7, 0x43, 0x74, 0xf0, 0xfa, 0x28, 0xd0, 0x0d, 0xff, 0xce, 0xaf, 0xc1, 0x63, 0x86, 0x3f, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xce, 0x87, 0x64, 0x20, 0x3b, 0x1f, 0x0a, 0x37, 0xfc, 0xb9, 0xb4, 0xc1, 0xcb, 0xf7, 0x36, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x3b, 0x1f, 0xe2, 0x83, 0x67, 0x62, 0x81, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x76, 0x3e, 0xe4, 0x03, 0xd9, 0xf9, 0xb0, 0x39, 0x08, 0x29, 0x93, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x3b, 0x1f, 0x46, 0x03, 0xd9, 0xf9, 0xd0, 0xb7, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x3b, 0x1f, 0x56, 0x03, 0xd9, 0xf9, 0x30, 0xdd, 0xf0, 0xe7, 0xd2, 0x06, 0x4d, 0x5f, 0x8f, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x76, 0x3e, 0xcc, 0x0e, 0x5e, 0x42, 0x06, 0x7a, 0xd0, 0xb6, 0xf5, 0xf8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x9d, 0x0f, 0xdb, 0x81, 0xec, 0x7c, 0xa8, 0xdb, 0xf0, 0xef, 0xfc, 0x06, 0x2f, 0x17, 0xcc, 0x5c, 0x00, 0xcf, 0x30, 0xbd, 0xb4, 0xb6, 0x3a, 0x3a, 0xb4, 0x16, 0xba, 0x3c, 0xb8, 0xb2, 0xb9, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xcf, 0x87, 0x64, 0x20, 0x3d, 0x1f, 0xca, 0x36, 0xfc, 0xb9, 0x34, 0xe0, 0x8f, 0xe9, 0x85, 0xc9, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x9e, 0x0f, 0xf1, 0xc1, 0x33, 0xdf, 0x40, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x3d, 0x1f, 0xf2, 0x81, 0xf4, 0x7c, 0x98, 0x1c, 0x94, 0x88, 0xf5, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x7a, 0x3e, 0x6c, 0x06, 0xd2, 0xf3, 0x61, 0x77, 0xd0, 0xb6, 0xf5, 0xf8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x9e, 0x0f, 0xc3, 0x81, 0xf4, 0x7c, 0xe8, 0xda, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x9e, 0x0f, 0xcb, 0x81, 0xf4, 0x7c, 0x98, 0x6f, 0xf8, 0x73, 0x69, 0x83, 0x17, 0xd1, 0x3a, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x7a, 0x3e, 0x4c, 0x0f, 0x1e, 0xe2, 0x07, 0x7a, 0xf0, 0x06, 0x5b, 0xc7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x3d, 0x1f, 0xf6, 0x03, 0xe9, 0xf9, 0x50, 0xb2, 0xe1, 0xcf, 0xa5, 0x0d, 0x1e, 0x63, 0x63, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0xf9, 0x50, 0x70, 0xf0, 0x22, 0x42, 0xd0, 0x83, 0xb7, 0xe9, 0x3a, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0xf9, 0xd0, 0x32, 0x90, 0x9e, 0x0f, 0x55, 0x1b, 0xfe, 0x5c, 0xda, 0xa0, 0x85, 0xd3, 0xf1, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xcf, 0x87, 0x9a, 0x83, 0xd7, 0x29, 0x82, 0x1e, 0x3c, 0xe0, 0x26, 0xb3, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfc, 0x7c, 0x48, 0x06, 0xf2, 0xf3, 0x61, 0xb9, 0xe1, 0xcf, 0xa5, 0x0d, 0x5e, 0xc2, 0x1e, 0xb4, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0xf9, 0x10, 0x1f, 0x3c, 0x15, 0x12, 0x74, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xf3, 0x21, 0x1f, 0xc8, 0xcf, 0x87, 0xcd, 0x41, 0x48, 0x99, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0xf9, 0x30, 0x1a, 0xc8, 0xcf, 0x87, 0xe1, 0xc1, 0xcb, 0x51, 0x1a, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0xf4, 0x21, 0x19, 0x48, 0xd0, 0x87, 0xc5, 0x86, 0x3f, 0x97, 0x36, 0x7c, 0x47, 0xbf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0xfa, 0x10, 0x1f, 0x3c, 0x8a, 0x13, 0xf4, 0xa0, 0xcc, 0xd2, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0xf4, 0x21, 0x19, 0xc8, 0xd0, 0x87, 0xf9, 0x86, 0x3f, 0x97, 0x36, 0x08, 0xf6, 0xb6, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xd0, 0x87, 0xf8, 0xe0, 0x31, 0xa2, 0xa0, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xa1, 0x0f, 0xf9, 0x40, 0x86, 0x3e, 0x6c, 0x0e, 0xca, 0x26, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x43, 0x1f, 0x46, 0x03, 0x19, 0xfa, 0xb0, 0xde, 0xf0, 0xef, 0xfc, 0x06, 0x4f, 0xe8, 0x56, 0x3c, 0x78, 0x6a, 0x81, 0x5d, 0xad, 0x06, 0x6f, 0x8a, 0x1c, 0xd9, 0xf0, 0x3c, 0xc9, 0x06, 0xaf, 0x19, 0xb7, 0xdb, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0x53, 0xe4, 0xc8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xe1, 0xe3, 0x06, 0x32, 0xf3, 0xf1, 0x1b, 0x84, 0x1a, 0xe2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x87, 0x0f, 0xc9, 0x40, 0x1e, 0x3e, 0x4c, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xe1, 0x43, 0x34, 0x90, 0x87, 0x0f, 0xf9, 0xc1, 0xeb, 0xbf, 0x53, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x3c, 0x7c, 0x18, 0x0c, 0xe4, 0xe1, 0xc3, 0xe2, 0xa0, 0xa0, 0xc8, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0xf1, 0x71, 0x07, 0x4f, 0x8e, 0x05, 0xdd, 0x20, 0x68, 0x7f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x44, 0x7c, 0x48, 0x06, 0x12, 0xf1, 0xe1, 0xc9, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xbe, 0x62, 0x6f, 0x6f, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6b, 0x65, 0x79, 0x73, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0xf1, 0x21, 0x1a, 0x48, 0xc4, 0x87, 0x7c, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x4f, 0xe9, 0x0e, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0xf1, 0x61, 0x30, 0x90, 0x88, 0x0f, 0xd3, 0x0d, 0xff, 0xce, 0xaf, 0xc1, 0x7b, 0x95, 0x40, 0xab, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x13, 0x1f, 0x92, 0x81, 0x4c, 0x7c, 0x38, 0xb1, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x87, 0x59, 0xd8, 0x5a, 0x19, 0x88, 0xd8, 0xdb, 0x1b, 0xdd, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4c, 0x7c, 0x88, 0x06, 0x32, 0xf1, 0x21, 0x3f, 0x78, 0xf3, 0x13, 0xe3, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x89, 0x0f, 0x83, 0x81, 0x4c, 0x7c, 0x58, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0xa6, 0xaf, 0xc7, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x13, 0x1f, 0x16, 0x07, 0x0f, 0xa1, 0x06, 0x3d, 0x68, 0xdb, 0x7a, 0xbc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x15, 0x1f, 0x92, 0x81, 0x54, 0x7c, 0xb8, 0xb3, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x2f, 0x73, 0x65, 0x74, 0x20, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0xf1, 0x21, 0x1a, 0x48, 0xc5, 0x87, 0xc5, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x5e, 0x4b, 0x1e, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xe2, 0xc3, 0x64, 0x20, 0x15, 0x1f, 0x1a, 0x36, 0xfc, 0xb9, 0x34, 0xe0, 0xdf, 0xa1, 0xbd, 0xcd, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x8a, 0x0f, 0xbb, 0x83, 0xe7, 0x90, 0x83, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x2a, 0x3e, 0x0c, 0x07, 0x52, 0xf1, 0x61, 0x7b, 0x50, 0x22, 0xbe, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xf8, 0x30, 0x1e, 0x48, 0xc5, 0x87, 0x82, 0x83, 0xb6, 0xad, 0xc7, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0xf1, 0xa1, 0x62, 0x20, 0x15, 0x1f, 0x9a, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0x33, 0x78, 0x05, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x15, 0x1f, 0x3a, 0x0e, 0x9e, 0x01, 0x0f, 0xba, 0xe1, 0xdf, 0xf9, 0x0d, 0x1e, 0xc1, 0x2b, 0x58, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x32, 0x3e, 0x24, 0x03, 0xc9, 0xf8, 0xf0, 0x65, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xff, 0xb6, 0x32, 0x3a, 0x90, 0x30, 0x33, 0xba, 0x32, 0x39, 0x10, 0x31, 0xb9, 0xb2, 0xb0, 0x31, 0xb4, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xf8, 0x10, 0x0d, 0x24, 0xe3, 0x43, 0x7e, 0xf0, 0x64, 0x66, 0xbf, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x19, 0x1f, 0x06, 0x03, 0xc9, 0xf8, 0xb0, 0xda, 0xf0, 0xe7, 0xd2, 0x06, 0x4d, 0x5f, 0x8f, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x32, 0x3e, 0x2c, 0x0e, 0x5e, 0xf8, 0x0f, 0x7a, 0xd0, 0xb6, 0xf5, 0xf8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x8c, 0x0f, 0xb3, 0x81, 0x64, 0x7c, 0xd8, 0x6e, 0xf8, 0x73, 0x69, 0x83, 0xc7, 0xd8, 0xd8, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x32, 0x3e, 0xec, 0x0e, 0x1e, 0x5a, 0x10, 0x7a, 0xf0, 0x36, 0x5d, 0xc7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x19, 0x1f, 0xc6, 0x03, 0xc9, 0xf8, 0xd0, 0xb0, 0xe1, 0xcf, 0xa5, 0x0d, 0x5a, 0x38, 0x1d, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x64, 0x7c, 0x58, 0x1f, 0xbc, 0x78, 0x21, 0xf4, 0xe0, 0x01, 0x37, 0x99, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0xf8, 0x90, 0x0c, 0x64, 0xe3, 0xc3, 0x9b, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xf8, 0x90, 0x2b, 0x3b, 0x4b, 0x9b, 0xa3, 0x2b, 0x93, 0x03, 0x69, 0x7b, 0x7b, 0x73, 0x03, 0x59, 0x2b, 0xcb, 0x9b, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x8d, 0x0f, 0xd1, 0x40, 0x36, 0x3e, 0xe4, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x78, 0xad, 0x79, 0xd0, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x8d, 0x0f, 0x83, 0x81, 0x6c, 0x7c, 0x58, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0xa6, 0xaf, 0xc7, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x1b, 0x1f, 0x16, 0x07, 0x0f, 0xde, 0x08, 0x3d, 0x68, 0xdb, 0x7a, 0x7c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xc6, 0x87, 0xd9, 0x40, 0x36, 0x3e, 0x54, 0x6c, 0xf8, 0x73, 0x69, 0x83, 0x37, 0x60, 0x6f, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x36, 0x3e, 0xec, 0x0e, 0xde, 0x1d, 0x12, 0xba, 0xe1, 0xdf, 0xf9, 0x0d, 0x5e, 0x88, 0xd8, 0x79, 0xf0, 0x6e, 0xc1, 0xcc, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x74, 0x7c, 0x48, 0x06, 0xd2, 0xf1, 0xe1, 0xce, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xbc, 0x8c, 0x85, 0xb9, 0x8d, 0x95, 0xb1, 0x81, 0xd0, 0xc9, 0x85, 0x8d, 0xad, 0x95, 0xc9, 0x81, 0x98, 0xc9, 0xbd, 0xb5, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xc7, 0x87, 0x68, 0x20, 0x1d, 0x1f, 0xf2, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x3c, 0x79, 0x38, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xc7, 0x87, 0xc1, 0x40, 0x3a, 0x3e, 0xec, 0x37, 0xfc, 0xb9, 0xb4, 0xc1, 0x7b, 0xca, 0x41, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x1d, 0x1f, 0x56, 0x07, 0xef, 0x97, 0x09, 0xdd, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x74, 0x7c, 0x98, 0x0d, 0xa4, 0xe3, 0xc3, 0xf2, 0xa0, 0x44, 0x7c, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0xf1, 0x61, 0x3a, 0x90, 0x8e, 0x0f, 0xf3, 0x83, 0xb6, 0xad, 0xc7, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xc7, 0x87, 0x64, 0x20, 0x1f, 0x1f, 0xae, 0x6c, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x3d, 0x57, 0x27, 0x06, 0x42, 0xf7, 0x06, 0x02, 0x27, 0x97, 0x66, 0x17, 0x46, 0x57, 0x36, 0xb7, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x1f, 0x1f, 0xa2, 0x81, 0x7c, 0x7c, 0xd8, 0x1d, 0x3c, 0x63, 0xdb, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xc7, 0x87, 0xe1, 0x40, 0x3e, 0x3e, 0x2c, 0x0f, 0x42, 0xf0, 0xa1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x21, 0x1f, 0x92, 0x81, 0x84, 0x7c, 0x78, 0xb2, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xef, 0x5c, 0x9d, 0x18, 0x08, 0xdd, 0x1b, 0x08, 0x5c, 0x9d, 0x18, 0x5b, 0xda, 0xd8, 0xdc, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x84, 0x7c, 0x88, 0x06, 0x12, 0xf2, 0x61, 0x76, 0xf0, 0x04, 0x7d, 0xcf, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x21, 0x1f, 0x76, 0x03, 0x09, 0xf9, 0xd0, 0xb3, 0xe1, 0xcf, 0xa5, 0x01, 0x9e, 0x39, 0xb4, 0x34, 0xb8, 0x79, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0xf2, 0x61, 0x7d, 0xf0, 0x52, 0xa9, 0xd0, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xc8, 0x87, 0xf9, 0x40, 0x42, 0x3e, 0x34, 0x1c, 0x94, 0x88, 0xef, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x42, 0x3e, 0x54, 0x0c, 0x24, 0xe4, 0x43, 0xcd, 0x41, 0xdb, 0xd6, 0xe3, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xe4, 0x43, 0x32, 0x90, 0x91, 0x0f, 0x77, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0xa5, 0x0e, 0x8e, 0x2c, 0x8c, 0xae, 0x0c, 0x04, 0x4e, 0x2e, 0xcd, 0x2e, 0x8c, 0xae, 0x0c, 0x64, 0xad, 0x2c, 0x6f, 0x6e, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x46, 0x3e, 0x44, 0x03, 0x19, 0xf9, 0x30, 0xd8, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0x7b, 0xb4, 0x83, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x8c, 0x7c, 0x58, 0x0c, 0x64, 0xe4, 0xc3, 0x6c, 0xc3, 0x9f, 0x4b, 0x1b, 0x3c, 0xc6, 0xc6, 0x6e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0xf2, 0x61, 0x72, 0xf0, 0x56, 0xb4, 0xd0, 0x83, 0xb7, 0xe9, 0x3a, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0xf9, 0xb0, 0x1b, 0xc8, 0xc8, 0x87, 0xf1, 0x86, 0x3f, 0x97, 0x36, 0x68, 0xa5, 0x83, 0x7c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0xf2, 0x61, 0x78, 0xf0, 0x68, 0xb7, 0xd0, 0x83, 0xc7, 0xc2, 0x7b, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xe4, 0x43, 0x32, 0x90, 0x92, 0x0f, 0x6f, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0x43, 0xae, 0x6c, 0xae, 0xcc, 0x8d, 0x0c, 0x04, 0x4e, 0x2e, 0xcd, 0x2e, 0x8c, 0xae, 0x0c, 0x64, 0xad, 0x2c, 0x6f, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4a, 0x3e, 0x44, 0x03, 0x29, 0xf9, 0xb0, 0xd8, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0xdb, 0xd0, 0x83, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x94, 0x7c, 0x98, 0x0c, 0xa4, 0xe4, 0xc3, 0xe6, 0x20, 0x04, 0x1f, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0xf2, 0x21, 0x19, 0xc8, 0xc9, 0x87, 0x27, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xf8, 0xc2, 0xc9, 0x95, 0xd1, 0x95, 0xb9, 0x91, 0x81, 0x88, 0xc9, 0x95, 0x85, 0x8d, 0xa1, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xc9, 0x87, 0x68, 0x20, 0x27, 0x1f, 0xf2, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0xbc, 0x4d, 0x3d, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xc9, 0x87, 0xc1, 0x40, 0x4e, 0x3e, 0x14, 0x6c, 0xf8, 0x73, 0x69, 0x83, 0xa7, 0x4e, 0x85, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4e, 0x3e, 0xcc, 0x0e, 0xde, 0xad, 0x18, 0xba, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0xf9, 0xb0, 0x1b, 0xc8, 0xc9, 0x87, 0xe9, 0x41, 0x89, 0xf8, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xe4, 0xc3, 0x76, 0x20, 0x27, 0x1f, 0xf6, 0x07, 0x6d, 0x5b, 0x8f, 0xd7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x94, 0x0f, 0xc9, 0x40, 0x52, 0x3e, 0xbc, 0xd8, 0xf0, 0xc4, 0xfb, 0x06, 0x8f, 0x99, 0xba, 0xdb, 0x60, 0xbd, 0x4a, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x94, 0x0f, 0xe1, 0x40, 0x52, 0x3e, 0x2c, 0x0e, 0x5e, 0x6f, 0xef, 0xb1, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0xf9, 0x30, 0x19, 0x48, 0xca, 0x87, 0xed, 0xc1, 0x0b, 0x04, 0xee, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xac, 0x7c, 0x48, 0x06, 0xb2, 0xf2, 0xe1, 0xc7, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x7e, 0x76, 0x69, 0x65, 0x77, 0x20, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0xf2, 0x21, 0x1a, 0xc8, 0xca, 0x87, 0xfc, 0xe0, 0xb1, 0x1c, 0x8d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x56, 0x3e, 0x0c, 0x06, 0xb2, 0xf2, 0x61, 0x71, 0x10, 0x82, 0x0f, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0xf9, 0x90, 0x0c, 0xa4, 0xe5, 0xc3, 0x93, 0x0d, 0x4f, 0xbc, 0x6f, 0xf0, 0x1e, 0xaf, 0xbb, 0x0d, 0xd6, 0xab, 0x54, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0xf9, 0x10, 0x0e, 0xa4, 0xe5, 0xc3, 0xe2, 0xe0, 0x91, 0x63, 0x77, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x96, 0x0f, 0x93, 0x81, 0xb4, 0x7c, 0xd8, 0x1e, 0xbc, 0x40, 0xe0, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xcb, 0x87, 0x64, 0x20, 0x2f, 0x1f, 0x7e, 0x6c, 0x78, 0xe2, 0x7d, 0x83, 0x97, 0x57, 0x0f, 0x6e, 0xb0, 0x5e, 0xa5, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xcb, 0x87, 0x70, 0x20, 0x2f, 0x1f, 0x16, 0x07, 0x8f, 0xd7, 0x1e, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbc, 0x7c, 0x98, 0x0c, 0xe4, 0xe5, 0xc3, 0xf6, 0xe0, 0x05, 0x02, 0x77, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x62, 0x3e, 0x24, 0x03, 0x89, 0xf9, 0xf0, 0x67, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x7e, 0xe4, 0xca, 0xe6, 0xca, 0xe8, 0x40, 0xee, 0xca, 0xc4, 0x40, 0xd8, 0xde, 0xce, 0xd2, 0xdc, 0x40, 0xc6, 0xde, 0xc8, 0xca, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xe6, 0x43, 0x34, 0x90, 0x98, 0x0f, 0xf9, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x6f, 0xdd, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0xf9, 0x30, 0x18, 0x48, 0xcc, 0x87, 0xc5, 0x41, 0x08, 0x3e, 0xd4, 0xac, 0xc1, 0x33, 0x78, 0x05, 0x37, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x9e, 0xc1, 0x2b, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x7b, 0x02, 0x21, 0x1f, 0xd8, 0x13, 0x08, 0xfb, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xd8, 0x13, 0x08, 0x83, 0x81, 0x3d, 0x81, 0x30, 0x3a, 0x58, 0x05, 0x99, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xec, 0x09, 0x84, 0xd5, 0xc0, 0x9e, 0x40, 0x58, 0x1e, 0xb4, 0x6d, 0x3d, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xec, 0x09, 0x84, 0xe9, 0xc0, 0x9e, 0x40, 0x98, 0x1f, 0xac, 0xd7, 0x7a, 0x6e, 0x05, 0xf0, 0x9d, 0xa3, 0x0b, 0xa3, 0x2b, 0x6b, 0x29, 0xa3, 0x43, 0x6b, 0x71, 0x7b, 0x23, 0x2b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x1e, 0x6d, 0x1d, 0xda, 0x00, 0x78, 0x34, 0x47, 0x17, 0x46, 0x57, 0x06, 0xf2, 0x66, 0x06, 0x12, 0x06, 0x32, 0xf6, 0xe6, 0xe6, 0x56, 0x36, 0x46, 0x97, 0xf6, 0xe6, 0x06, 0x42, 0xf7, 0x06, 0x12, 0xe6, 0x06, 0x52, 0x46, 0x87, 0x56, 0x26, 0x57, 0x56, 0xd7, 0x06, 0xe2, 0xf6, 0x46, 0x56, 0xb6, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0xc1, 0x91, 0x21, 0xf4, 0xe0, 0xd1, 0xd6, 0xa1, 0x0d, 0xc0, 0x87, 0xdb, 0x1b, 0x59, 0x19, 0xc8, 0xd8, 0x9b, 0x9b, 0x59, 0xda, 0x19, 0xc8, 0x0a, 0x48, 0x5b, 0x19, 0x5d, 0xd8, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0xa3, 0xad, 0x43, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x5b, 0x20, 0x6e, 0x60, 0x67, 0x20, 0x7e, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb6, 0x40, 0x48, 0x06, 0xb6, 0x05, 0x42, 0xc1, 0x86, 0x3f, 0x97, 0x06, 0xf0, 0xa4, 0x7b, 0x83, 0x6b, 0x99, 0x7b, 0xab, 0x93, 0x1b, 0x2b, 0x6b, 0x49, 0x23, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x5b, 0x20, 0xec, 0x0e, 0x9e, 0xa8, 0x1e, 0xba, 0xe1, 0xdf, 0xf9, 0x35, 0x78, 0xff, 0xd4, 0x67, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xeb, 0x02, 0x21, 0x19, 0x58, 0x17, 0x08, 0x3d, 0x1b, 0xfe, 0x5c, 0x1a, 0xe0, 0x9d, 0x7b, 0xab, 0x93, 0x1b, 0x2b, 0x9b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x5d, 0x20, 0x2c, 0x0e, 0x1e, 0x29, 0x1f, 0xba, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xeb, 0x02, 0x61, 0x32, 0xb0, 0x2e, 0x10, 0x56, 0x07, 0x25, 0x62, 0xfd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x2e, 0x10, 0x66, 0x03, 0xeb, 0x02, 0x61, 0x7f, 0xf0, 0xda, 0xf7, 0xd0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x5d, 0x20, 0x14, 0x0c, 0xac, 0x0b, 0x84, 0x9a, 0x83, 0xd7, 0xcf, 0x83, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xec, 0x0b, 0x84, 0x64, 0x60, 0x5f, 0x20, 0xf4, 0x6d, 0xf8, 0x73, 0x69, 0x00, 0xef, 0xb9, 0xb7, 0x3a, 0xb9, 0xb1, 0xb2, 0xb9, 0x16, 0xb9, 0x32, 0xbb, 0x32, 0xb9, 0xb9, 0x72, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf6, 0x05, 0xc2, 0xf2, 0xe0, 0xd9, 0x01, 0xa2, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x2f, 0x10, 0xa6, 0x03, 0xfb, 0x02, 0x61, 0x7d, 0x50, 0x22, 0xd6, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xfb, 0x02, 0x61, 0x3e, 0xb0, 0x2f, 0x10, 0x4a, 0x0e, 0x5e, 0x3f, 0x0f, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xec, 0x0b, 0x84, 0x96, 0x81, 0x7d, 0x81, 0x50, 0x77, 0xf0, 0xda, 0xf7, 0xd0, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x85, 0x81, 0x90, 0x0c, 0x2c, 0x0c, 0x84, 0x86, 0x0d, 0x7f, 0x2e, 0x0d, 0xe0, 0x4b, 0x56, 0x66, 0x16, 0x56, 0xc7, 0x46, 0xd7, 0x32, 0xf7, 0x56, 0x27, 0x37, 0x56, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xc2, 0x40, 0x18, 0x1e, 0xbc, 0x45, 0x42, 0xf4, 0xe0, 0xb5, 0xef, 0xa1, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xc6, 0x40, 0x48, 0x06, 0x36, 0x06, 0x42, 0xd5, 0x86, 0x3f, 0x97, 0x06, 0xf0, 0x9b, 0x43, 0x4b, 0x83, 0x6b, 0x99, 0x7b, 0xab, 0x93, 0x1b, 0x2b, 0x9b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x63, 0x20, 0xcc, 0x0e, 0x9e, 0x9c, 0x21, 0xba, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x1b, 0x03, 0x61, 0x37, 0xb0, 0x31, 0x10, 0xa6, 0x07, 0x25, 0x62, 0xfd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x31, 0x10, 0xb6, 0x03, 0x1b, 0x03, 0x61, 0x7f, 0xd0, 0xb6, 0xf5, 0xf8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb0, 0x31, 0x10, 0x0a, 0x06, 0x36, 0x06, 0x42, 0xd3, 0xc1, 0x6b, 0xdf, 0x43, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x56, 0x06, 0x42, 0x32, 0xb0, 0x32, 0x10, 0x2a, 0x37, 0xfc, 0xb9, 0x34, 0x00, 0x3f, 0x73, 0x68, 0x69, 0x70, 0x2d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2d, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0xe5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xac, 0x0c, 0x84, 0xf9, 0xc1, 0x6b, 0x53, 0x44, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x65, 0x20, 0xec, 0x07, 0x56, 0x06, 0x42, 0xc5, 0xc1, 0xbb, 0xa9, 0x26, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x95, 0x81, 0xd0, 0x31, 0xb0, 0x32, 0x10, 0xca, 0x0e, 0x5e, 0xfb, 0x1e, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xac, 0x0c, 0x84, 0xb6, 0x81, 0x95, 0x81, 0xd0, 0x78, 0xd0, 0xb6, 0xf5, 0x78, 0x1d, 0x4e, 0xb1, 0xd6, 0xe0, 0x29, 0xfe, 0x9e, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0x4f, 0xf1, 0xf7, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x94, 0x7b, 0xdc, 0x40, 0xd6, 0x3d, 0x7e, 0x83, 0xa0, 0xfd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0xee, 0x21, 0x19, 0x48, 0xb9, 0x87, 0xa2, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x29, 0xf7, 0x10, 0x0d, 0xa4, 0xdc, 0x43, 0x7e, 0xb0, 0x56, 0xa7, 0x7b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xb9, 0x87, 0xc1, 0x40, 0xca, 0x3d, 0xf4, 0x6c, 0xf8, 0x73, 0x69, 0x80, 0x0f, 0xee, 0x2d, 0xcd, 0x8d, 0x6e, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x94, 0x7b, 0xd8, 0x1d, 0xbc, 0xab, 0x48, 0x74, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0xee, 0x61, 0x38, 0x90, 0x72, 0x0f, 0xdb, 0x83, 0x12, 0xb1, 0x7e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0xb9, 0x87, 0xf1, 0x40, 0xca, 0x3d, 0x14, 0x1c, 0xb4, 0x6d, 0x3d, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xdc, 0x43, 0xc3, 0x40, 0xca, 0x3d, 0xd4, 0x1c, 0x3c, 0x4e, 0x30, 0xb3, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9c, 0x7b, 0x48, 0x06, 0x72, 0xee, 0xa1, 0x65, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xce, 0x3d, 0x44, 0x03, 0x39, 0xf7, 0x90, 0x6f, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xe0, 0x4d, 0xca, 0x77, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xce, 0x3d, 0x0c, 0x06, 0x72, 0xee, 0x61, 0xb8, 0xe1, 0xcf, 0xa5, 0x01, 0xef, 0x0e, 0xed, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9c, 0x7b, 0x18, 0x1d, 0x3c, 0x59, 0x4b, 0xf4, 0xa0, 0x6d, 0xeb, 0xf1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe7, 0x1e, 0x96, 0x03, 0x39, 0xf7, 0x50, 0xb2, 0xe1, 0xcf, 0xa5, 0x0d, 0xde, 0xa4, 0x7c, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0xf7, 0x30, 0x3d, 0x78, 0x39, 0x98, 0xe8, 0x86, 0x7f, 0xe7, 0x37, 0x78, 0xaa, 0x36, 0xe1, 0xc1, 0xbb, 0x05, 0x33, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xee, 0x21, 0x19, 0x48, 0xba, 0x87, 0xed, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa4, 0x7b, 0x88, 0x06, 0x92, 0xee, 0x61, 0xb1, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x80, 0x4f, 0x4c, 0xae, 0x2c, 0x6c, 0x0c, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xee, 0x61, 0x32, 0x90, 0x74, 0x0f, 0xd3, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x77, 0x68, 0xef, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xdd, 0xc3, 0xec, 0xe0, 0xd5, 0x6e, 0xa2, 0x07, 0x6d, 0x5b, 0x8f, 0xd7, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x87, 0x53, 0x6c, 0x01, 0xc1, 0xbf, 0xbf, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x0f, 0xf8, 0x73, 0x61, 0x63, 0xeb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x14, 0x81, 0x90, 0x0d, 0x14, 0x81, 0x70, 0x68, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x5e, 0x48, 0xe6, 0xde, 0xc6, 0xd6, 0x40, 0x5e, 0xee, 0x40, 0xe0, 0xe4, 0xde, 0xec, 0xca, 0xdc, 0xc2, 0xdc, 0xc6, 0xca, 0x36, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x08, 0x84, 0x70, 0xa0, 0x08, 0x84, 0xc1, 0xc1, 0xb1, 0x68, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0x02, 0x61, 0x31, 0x50, 0x04, 0xc2, 0xea, 0xa0, 0x6d, 0xeb, 0xf1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x08, 0x84, 0xd9, 0x40, 0x11, 0x08, 0xd3, 0x83, 0xb6, 0xad, 0xc7, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x22, 0x10, 0xb6, 0x03, 0x45, 0x20, 0xec, 0x0f, 0xce, 0x48, 0xa8, 0xad, 0x80, 0xa0, 0xde, 0xdf, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x78, 0xa0, 0xc0, 0x5d, 0x03, 0xe0, 0xc1, 0x59, 0x99, 0x5b, 0x99, 0x5c, 0x18, 0x1b, 0x08, 0x5d, 0xd8, 0xdc, 0xda, 0x1c, 0xc8, 0x1c, 0x5a, 0x98, 0x5c, 0x19, 0x19, 0x48, 0xd8, 0x98, 0xdc, 0xdb, 0xdc, 0x1c, 0x88, 0x5d, 0x98, 0x5b, 0xd9, 0xdc, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x03, 0x05, 0xee, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xb0, 0x44, 0x07, 0x4a, 0x4d, 0xdc, 0x06, 0xa1, 0x86, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x14, 0x96, 0xf8, 0x81, 0xc2, 0x12, 0x06, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0a, 0x4b, 0x08, 0x06, 0x0a, 0x4b, 0x48, 0x37, 0xbc, 0x71, 0x77, 0xf0, 0x5e, 0x7f, 0xbb, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xb0, 0x84, 0x78, 0xa0, 0xb0, 0x84, 0xfc, 0xa0, 0xa0, 0xc8, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2a, 0x4b, 0xf4, 0xe0, 0x89, 0x91, 0xa2, 0x1b, 0x04, 0xed, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x5b, 0xe2, 0x07, 0x6a, 0x4b, 0x18, 0x6c, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x2d, 0x21, 0x18, 0xa8, 0x2d, 0x21, 0x3d, 0x78, 0x97, 0xbf, 0xdd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x5b, 0x42, 0x3c, 0x50, 0x5b, 0x42, 0x7e, 0x10, 0x82, 0x0f, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe5, 0x25, 0x7e, 0xa0, 0xbc, 0x84, 0xc1, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf2, 0x12, 0x82, 0x81, 0xf2, 0x12, 0xd2, 0x83, 0xf7, 0x07, 0xfb, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe5, 0x25, 0xc4, 0x03, 0xe5, 0x25, 0xe4, 0x07, 0x21, 0xf8, 0xd0, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x61, 0xe2, 0x07, 0x2a, 0x4c, 0x18, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x30, 0x21, 0x18, 0xa8, 0x30, 0x21, 0x3d, 0x78, 0xbd, 0xbd, 0xc7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x61, 0x42, 0x3c, 0x50, 0x61, 0xc2, 0x66, 0xc3, 0x9f, 0x4b, 0x83, 0xc3, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x61, 0xc2, 0xe0, 0xe0, 0xd5, 0xb4, 0xa2, 0x07, 0x65, 0x96, 0x6e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x91, 0x89, 0x1f, 0x28, 0x32, 0x61, 0xb0, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xc8, 0x84, 0x60, 0xa0, 0xc8, 0x84, 0xf4, 0xe0, 0x91, 0x63, 0x77, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x91, 0x09, 0xf1, 0x40, 0x91, 0x09, 0xf9, 0x41, 0x08, 0x3e, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xd4, 0x99, 0xf8, 0x81, 0x4a, 0x13, 0xf6, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xe0, 0x05, 0xd5, 0x13, 0xd1, 0x93, 0x0e, 0x48, 0xdb, 0x9b, 0x5d, 0x19, 0x88, 0x8b, 0x5d, 0x98, 0x5b, 0x19, 0x88, 0x99, 0xdc, 0x5b, 0x1b, 0x08, 0x09, 0x1c, 0x5b, 0x59, 0x18, 0x08, 0xdd, 0x1b, 0x08, 0x5a, 0x99, 0x5c, 0xd9, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4a, 0x13, 0x82, 0x81, 0x4a, 0x13, 0xd2, 0x83, 0xc7, 0x6b, 0x0f, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x95, 0x26, 0xc4, 0x03, 0x95, 0x26, 0x6c, 0x36, 0xfc, 0xb9, 0xb4, 0x41, 0xd3, 0xd7, 0xe3, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x69, 0x42, 0x7e, 0xf0, 0xc2, 0x66, 0xd1, 0x83, 0xb6, 0xad, 0xc7, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4a, 0x13, 0x46, 0x03, 0x95, 0x26, 0xcc, 0x37, 0xfc, 0xb9, 0xb4, 0xc1, 0x0b, 0xd4, 0x81, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xd2, 0x84, 0xd5, 0xc1, 0x0b, 0xa7, 0x45, 0x37, 0xfc, 0x3b, 0xbf, 0x06, 0x2f, 0x50, 0x07, 0xea, 0xe0, 0x9d, 0xc8, 0x75, 0x75, 0x38, 0xc5, 0xaa, 0x05, 0x46, 0x7f, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0x25, 0xec, 0x41, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x0c, 0x42, 0x36, 0x50, 0x0c, 0xc2, 0x9d, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x78, 0x20, 0x7b, 0x6b, 0x0b, 0x4b, 0x73, 0x63, 0x01, 0xa1, 0x63, 0x23, 0x03, 0x31, 0x4b, 0x93, 0x9b, 0xa3, 0xdb, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x62, 0x10, 0xc2, 0x81, 0x62, 0x10, 0x06, 0x07, 0x21, 0x65, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x14, 0x83, 0xb0, 0x18, 0x28, 0x06, 0x61, 0x73, 0x70, 0x9e, 0x1d, 0x6d, 0x16, 0x08, 0xfb, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xd0, 0x80, 0xd0, 0x86, 0x37, 0xee, 0x36, 0xd4, 0xfc, 0x60, 0x84, 0x66, 0x41, 0xbc, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0xc1, 0x91, 0x21, 0xf4, 0xa0, 0x6d, 0xc7, 0xa6, 0x06, 0xe0, 0x6f, 0xec, 0xad, 0x0d, 0xee, 0x6d, 0x2e, 0x4c, 0x8c, 0xad, 0x0c, 0x64, 0xae, 0x4c, 0x2e, 0x2d, 0x8c, 0x2d, 0x4d, 0x2f, 0x8c, 0x2e, 0xed, 0xcd, 0x6d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xa7, 0xd9, 0x67, 0x83, 0x52, 0x42, 0x7c, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xcc, 0x67, 0x9f, 0x0d, 0x4a, 0x16, 0xf6, 0x59, 0x66, 0x01, 0x1f, 0x8e, 0x2d, 0x8c, 0xde, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0x92, 0xbc, 0xe8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xb5, 0xb4, 0xcf, 0x86, 0x0f, 0xe6, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0xb0, 0xfa, 0xd9, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0xaf, 0xad, 0x2c, 0x6c, 0xae, 0x4e, 0xae, 0x0c, 0x24, 0x8c, 0xee, 0xad, 0xed, 0xf0, 0x43, 0xcd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x6f, 0xb5, 0xcf, 0x06, 0x4b, 0x97, 0xab, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0xc6, 0xf6, 0xd9, 0x20, 0x68, 0x7f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xf1, 0xf6, 0xd9, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x63, 0xac, 0x8e, 0x0e, 0x64, 0x8e, 0x2d, 0x6d, 0xac, 0x6c, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0x82, 0xfb, 0x6c, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x92, 0x71, 0x9f, 0x83, 0xb5, 0x33, 0x7b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0xa0, 0xfb, 0x1c, 0x84, 0xe0, 0x43, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0xb1, 0xfb, 0x6c, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0xbe, 0xfb, 0x1c, 0x94, 0xde, 0xf4, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0xce, 0xfb, 0x6c, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0xd8, 0xfb, 0x1c, 0x94, 0xde, 0xf4, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0xe9, 0xfb, 0x1c, 0x1e, 0xc0, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xc0, 0xdf, 0xe7, 0xf0, 0x00, 0x7e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0x09, 0xfc, 0x1c, 0x7e, 0xa8, 0xa9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xa3, 0x14, 0x7e, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x6c, 0x2b, 0x0b, 0x9b, 0xab, 0x93, 0x2b, 0x03, 0x99, 0x63, 0x4b, 0x1b, 0x2b, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xd1, 0x0c, 0x3f, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xe9, 0xe1, 0xe7, 0x60, 0x51, 0x9e, 0xeb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x99, 0x14, 0x3f, 0x07, 0x21, 0xf8, 0xd0, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x3d, 0x18, 0x3f, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x91, 0x1b, 0x3f, 0x07, 0xa5, 0x37, 0xfd, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x9d, 0x1f, 0x3f, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x2d, 0x22, 0x3f, 0x07, 0xa5, 0x37, 0xfd, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x41, 0x26, 0x3f, 0x87, 0x07, 0xf0, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x4c, 0xf9, 0x39, 0x3c, 0x80, 0xdf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xfd, 0x2d, 0x3f, 0x87, 0x1f, 0x6a, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x0c, 0x99, 0x9f, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xfe, 0xb9, 0x3a, 0xb1, 0x39, 0xb6, 0xb4, 0xb1, 0xb2, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x47, 0xf3, 0xb3, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xa3, 0x6d, 0x7e, 0x0e, 0x96, 0xc4, 0x04, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xc2, 0xf3, 0x73, 0x10, 0x82, 0x0f, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x21, 0xf4, 0xb3, 0xe1, 0xcf, 0xa5, 0xc1, 0xe1, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xe2, 0x9f, 0x9f, 0x0d, 0xff, 0xce, 0xaf, 0x41, 0xdb, 0x8e, 0x4d, 0x55, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x29, 0x46, 0x3f, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x07, 0x87, 0x1c, 0xc8, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xca, 0xa4, 0x9f, 0x83, 0xd2, 0x9b, 0x7e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xcc, 0xa6, 0x9f, 0xc3, 0x03, 0xf8, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0x46, 0xfd, 0x1c, 0x7e, 0xa8, 0xe9, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xf6, 0xac, 0x9f, 0x0d, 0x0f, 0x4a, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x0a, 0x0e, 0x74, 0x10, 0x80, 0x6c, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x79, 0x5c, 0x3f, 0x1b, 0x94, 0x5d, 0xb2, 0x1b, 0xb4, 0xed, 0xd8, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x6f, 0x37, 0xd0, 0x86, 0x4b, 0x6a, 0x8d, 0xc7, 0x07, 0xaf, 0x8e, 0x19, 0x6d, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x0b, 0xbe, 0x7e, 0x36, 0x28, 0x59, 0xd8, 0x67, 0x99, 0x65, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x31, 0xec, 0x67, 0xc3, 0x47, 0xed, 0x1b, 0x2c, 0x5d, 0xae, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xad, 0xec, 0x67, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0xe6, 0xa0, 0x2c, 0xf6, 0xdd, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x31, 0x6a, 0x3f, 0x1b, 0xfe, 0x5c, 0x1a, 0x9c, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x3e, 0xfb, 0x39, 0x78, 0xfc, 0x7c, 0xc8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x0d, 0x71, 0x3f, 0x1b, 0xfe, 0x5c, 0x1a, 0x5c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x73, 0xfb, 0x39, 0x78, 0xfc, 0x7c, 0x48, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xfd, 0x73, 0x3f, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0xcc, 0x95, 0xc9, 0xa5, 0x85, 0xb1, 0xa5, 0xe9, 0x95, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x68, 0xbc, 0x9f, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0xd9, 0xfd, 0x1c, 0xbe, 0x9d, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x09, 0xf0, 0x67, 0xc3, 0x9f, 0x4b, 0x83, 0x8b, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xfd, 0x7d, 0x3f, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb5, 0x83, 0x3f, 0x07, 0x21, 0x65, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xd8, 0xe1, 0xcf, 0x86, 0x7f, 0xe7, 0xd7, 0xe0, 0x49, 0xf2, 0xa2, 0x55, 0xab, 0xc1, 0x60, 0xea, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0xe5, 0xe9, 0xf1, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xed, 0xe2, 0xcf, 0x86, 0xc7, 0x47, 0x36, 0x18, 0x4c, 0x1d, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x31, 0x8e, 0x3f, 0x1b, 0x7e, 0x51, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb7, 0x42, 0x30, 0xb8, 0x15, 0xb2, 0x0d, 0x7f, 0x2e, 0x0d, 0x0e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xe0, 0x56, 0x88, 0x0e, 0x5e, 0x5d, 0x36, 0x7a, 0xf0, 0xf8, 0xf9, 0x90, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xa4, 0xc8, 0x9f, 0x0d, 0x7f, 0xd1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x82, 0x5b, 0x21, 0x1d, 0xdc, 0x0a, 0xeb, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xdc, 0x0a, 0xf1, 0xe0, 0x56, 0x98, 0x1c, 0x94, 0xde, 0xf4, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xe0, 0x56, 0xd8, 0x0c, 0x6e, 0x85, 0xdd, 0xe1, 0xdb, 0xf9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x70, 0x2b, 0x0c, 0x07, 0xb7, 0xc2, 0xf8, 0xf0, 0x00, 0x7e, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xa1, 0x93, 0x3f, 0x1b, 0x1e, 0x94, 0xdc, 0x70, 0x47, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0x59, 0xfe, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x7c, 0xcc, 0x9f, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x66, 0x61, 0x78, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0x74, 0xfe, 0x1c, 0x9c, 0x2e, 0x32, 0x9a, 0x05, 0x3c, 0xb3, 0x30, 0x7c, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0x32, 0xf0, 0xcc, 0xc2, 0xf0, 0x06, 0xf8, 0xca, 0xdc, 0xc6, 0xde, 0xc8, 0xca, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xcb, 0x41, 0x7f, 0x36, 0x3c, 0x3e, 0x32, 0xe0, 0x99, 0x85, 0xe1, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x49, 0xa3, 0x3f, 0x1b, 0x7e, 0x51, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xed, 0x21, 0x19, 0xb4, 0x87, 0x70, 0xc3, 0x9f, 0x4b, 0x83, 0xc3, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x68, 0x0f, 0xd9, 0xc1, 0xe3, 0x0a, 0x47, 0x0f, 0x1e, 0x3f, 0x1f, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x65, 0xfa, 0xb3, 0xe1, 0x2f, 0x9a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x50, 0x1f, 0x92, 0x41, 0x7d, 0xd8, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xa0, 0x3e, 0x44, 0x83, 0xfa, 0x10, 0x1f, 0x1c, 0x8b, 0x46, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x41, 0x7d, 0xc8, 0x07, 0xf5, 0x61, 0x70, 0xf8, 0xa1, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xd4, 0x87, 0xc5, 0xa0, 0x3e, 0xac, 0x0e, 0xdf, 0xce, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x82, 0xfa, 0x30, 0x1b, 0xd4, 0x87, 0xe9, 0xe1, 0x01, 0xfc, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x7b, 0x51, 0x7f, 0x36, 0x28, 0x06, 0x64, 0xd7, 0x38, 0x74, 0x70, 0xf0, 0xc8, 0x58, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x65, 0x11, 0x68, 0x83, 0x82, 0x34, 0x76, 0x70, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xda, 0x46, 0xa0, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x0e, 0x1e, 0x19, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xc5, 0x90, 0x40, 0x1b, 0xde, 0xd6, 0x19, 0x9c, 0x3d, 0x38, 0x78, 0x64, 0xb4, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x3a, 0x09, 0xb4, 0x41, 0x41, 0x1a, 0x3b, 0xb8, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x90, 0x25, 0xd0, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0x07, 0x8f, 0x8c, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xa8, 0x4c, 0xa0, 0x0d, 0x6f, 0xeb, 0x1c, 0x34, 0x89, 0x33, 0xd5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x0f, 0x27, 0xd0, 0x06, 0x05, 0x69, 0xec, 0xe0, 0xf3, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xdd, 0x9e, 0x40, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x2d, 0x14, 0xe8, 0x60, 0x01, 0x27, 0xfc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x05, 0xa6, 0x40, 0x1b, 0x2e, 0xa9, 0x35, 0x9e, 0x1f, 0x0c, 0x52, 0xa9, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x48, 0x05, 0x3a, 0x58, 0x7f, 0x27, 0xdc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x06, 0x2b, 0xd0, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x74, 0x05, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x19, 0xb1, 0x40, 0x87, 0x3f, 0x81, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0xa9, 0x05, 0x3a, 0x58, 0x24, 0x25, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x0e, 0x2e, 0xd0, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0xd6, 0x05, 0x3a, 0x28, 0x0d, 0x78, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xfa, 0x05, 0xda, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xbd, 0xc1, 0x40, 0x07, 0xeb, 0xef, 0x84, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x23, 0x06, 0x3a, 0x38, 0x9c, 0xf3, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xdd, 0x31, 0xd0, 0xc1, 0x02, 0x36, 0xe1, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x53, 0x19, 0xe8, 0x60, 0xfd, 0x9d, 0xf0, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x59, 0xcd, 0x40, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xfe, 0x19, 0xe8, 0xf0, 0x27, 0xd0, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x0d, 0xd4, 0x40, 0x1b, 0xde, 0xd6, 0x19, 0x5c, 0x3e, 0x28, 0x78, 0x36, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xba, 0x06, 0x3a, 0x38, 0x9c, 0xf3, 0xd5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xf1, 0xea, 0xcf, 0x06, 0x25, 0x3c, 0xe6, 0x82, 0x8b, 0x07, 0x07, 0x8f, 0x8c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x7b, 0x5d, 0x7f, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x4e, 0xec, 0xcf, 0xe1, 0xc1, 0x9b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x33, 0x68, 0x7f, 0x36, 0xbc, 0xad, 0x73, 0xd0, 0x48, 0x8e, 0xcc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb9, 0xb6, 0x3f, 0x87, 0x07, 0x6f, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0xca, 0xfd, 0xd9, 0x60, 0x01, 0x66, 0xd3, 0x1a, 0xbe, 0x6f, 0x1f, 0x7c, 0xdc, 0xa0, 0x84, 0x8e, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x0d, 0x5e, 0xb8, 0xd0, 0x31, 0xb8, 0x11, 0x86, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x1c, 0xbc, 0xd8, 0xa1, 0xe3, 0xa0, 0xf4, 0xa6, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x0d, 0x1e, 0xbf, 0xd0, 0x31, 0xb8, 0x11, 0x26, 0x87, 0x1f, 0x6a, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0xc1, 0x8d, 0xb0, 0x19, 0xdc, 0x08, 0xbb, 0xc3, 0x03, 0xf8, 0x1d, 0x84, 0xe9, 0xd8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x79, 0x54, 0x40, 0x1b, 0x14, 0xa4, 0xb1, 0x83, 0x93, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0x5c, 0x01, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xf0, 0x32, 0xe5, 0xd1, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x1c, 0x2d, 0xa0, 0x0d, 0x6f, 0xeb, 0x0c, 0x4e, 0x1f, 0xbc, 0x4c, 0x79, 0xb4, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x96, 0x2e, 0xa0, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xf9, 0x05, 0xb4, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x5b, 0xc4, 0x80, 0x0e, 0x7f, 0x02, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x62, 0x06, 0x74, 0x70, 0x1a, 0x62, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x26, 0x0d, 0x68, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0xaf, 0x01, 0x1d, 0x94, 0x06, 0xbc, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0xc1, 0x01, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x5a, 0x39, 0xa0, 0x83, 0xa7, 0x3d, 0x8f, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x55, 0x07, 0x74, 0x70, 0xa6, 0x62, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x32, 0x3c, 0xa0, 0x83, 0x23, 0xde, 0x48, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xbb, 0x07, 0x74, 0xf0, 0xb4, 0xe7, 0xd1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xbb, 0xfc, 0x80, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x3e, 0x20, 0xd0, 0xe1, 0x4f, 0xa0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x0b, 0x0a, 0x81, 0x0e, 0xce, 0x54, 0x2c, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0x20, 0x02, 0x1d, 0x1c, 0xda, 0x48, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x7f, 0xf7, 0x67, 0x83, 0x82, 0x60, 0x76, 0xc1, 0xd3, 0x83, 0x97, 0x29, 0x8f, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xf0, 0xfb, 0xb3, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xbb, 0x82, 0x7f, 0x36, 0xbc, 0xad, 0x73, 0xf0, 0x00, 0x00, 0xd2, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x1b, 0x88, 0x7f, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xa7, 0xf1, 0xcf, 0x86, 0xb7, 0x75, 0x16, 0xc7, 0x39, 0x18, 0x4c, 0x1d, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xaa, 0xfc, 0x73, 0xf0, 0xb4, 0xe7, 0xd1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x63, 0x9b, 0x7f, 0x0e, 0x9e, 0x38, 0x40, 0x5a, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xa5, 0xd0, 0x3f, 0x1b, 0x04, 0xe9, 0xe9, 0x1a, 0x87, 0x0e, 0x1e, 0x00, 0x40, 0xba, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x78, 0x13, 0x3f, 0x78, 0x13, 0x82, 0xc3, 0x0f, 0x35, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x65, 0xd4, 0x3f, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xd8, 0xfa, 0x67, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0x65, 0xff, 0x1c, 0x14, 0x99, 0xb8, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0x75, 0xff, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xe8, 0xef, 0x9f, 0x83, 0xa7, 0x3d, 0x8f, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x27, 0xfe, 0xb3, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0x83, 0x07, 0x00, 0x90, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x6b, 0xf9, 0xcf, 0x86, 0xb7, 0x75, 0x06, 0x8f, 0x0f, 0x1e, 0x00, 0x40, 0xda, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xbd, 0xe8, 0x3f, 0x07, 0xaf, 0xcf, 0x20, 0x6d, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x70, 0x27, 0x7e, 0x70, 0x27, 0xa4, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x77, 0x42, 0x30, 0xb8, 0x13, 0xa2, 0x83, 0xb5, 0x33, 0x7b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xe0, 0x4e, 0xc8, 0x06, 0x77, 0x42, 0x78, 0x10, 0x82, 0x0f, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0xbc, 0xff, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xc4, 0xf8, 0x9f, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x42, 0xff, 0x73, 0x50, 0x12, 0xcd, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x82, 0xff, 0x73, 0xf0, 0xb4, 0xe7, 0xd1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x73, 0xf6, 0x7f, 0x36, 0x3c, 0x28, 0xb9, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x05, 0x00, 0x3a, 0x38, 0x5d, 0x64, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x35, 0x00, 0x74, 0x70, 0x3a, 0x12, 0x69, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xb8, 0xff, 0xe7, 0xe0, 0x89, 0x03, 0xa4, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x63, 0x00, 0xb4, 0xe1, 0x6d, 0x9d, 0xc1, 0xe3, 0x83, 0x87, 0x69, 0x90, 0xb6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xf8, 0x13, 0x3f, 0xf8, 0x13, 0xd2, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x82, 0x3f, 0x21, 0x18, 0xfc, 0x09, 0xd1, 0xc1, 0xa2, 0x3c, 0xd7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xf0, 0x27, 0x64, 0x83, 0x3f, 0x21, 0x3c, 0x08, 0xc1, 0x87, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xeb, 0x18, 0x80, 0x36, 0x7c, 0x62, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc2, 0x03, 0xd0, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x8d, 0x00, 0x3a, 0x28, 0x89, 0x66, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xad, 0x00, 0x3a, 0x78, 0xda, 0xf3, 0xe8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb9, 0x18, 0x40, 0x1b, 0x1e, 0x94, 0x5c, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0x78, 0x00, 0x1d, 0x9c, 0x2e, 0x32, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x06, 0x01, 0x3a, 0x38, 0x1d, 0x89, 0xb4, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xb4, 0x01, 0x74, 0xf0, 0xc4, 0x01, 0xd2, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x83, 0x47, 0x80, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x8a, 0x09, 0xd0, 0xe1, 0x99, 0xc9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x8b, 0x51, 0x80, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xd8, 0x0a, 0xd0, 0xc1, 0x7b, 0x0e, 0x48, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x7b, 0x01, 0x3a, 0x78, 0xda, 0xf3, 0xe8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x99, 0x32, 0x40, 0x87, 0x67, 0x26, 0x6b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x70, 0x28, 0x7e, 0x70, 0x28, 0xa4, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x87, 0x42, 0x30, 0x38, 0x14, 0xa2, 0x83, 0x25, 0x31, 0x81, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xe0, 0x50, 0xc8, 0x06, 0x87, 0x42, 0x78, 0x10, 0x82, 0x0f, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0xe4, 0x00, 0x6d, 0x50, 0x90, 0xc6, 0x0e, 0x5e, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xbb, 0x03, 0xb4, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0xc1, 0xc1, 0x23, 0x63, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xda, 0x07, 0xe8, 0xe0, 0xf5, 0x19, 0xa4, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0x07, 0x01, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x2c, 0x22, 0xa0, 0x83, 0xb3, 0x2c, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x21, 0x47, 0x40, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x37, 0x09, 0xe8, 0x60, 0x01, 0x27, 0xfc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x55, 0x4e, 0x40, 0x07, 0xc7, 0xdd, 0xac, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x13, 0xa3, 0x80, 0x0e, 0x9e, 0xf6, 0x3c, 0x5a, 0x1d, 0x4e, 0xb1, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x5b, 0xa0, 0xfd, 0xfe, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0x65, 0xf0, 0x6f, 0x6e, 0x03, 0xe0, 0x2d, 0x9d, 0x5c, 0x59, 0x18, 0x1c, 0xc8, 0x5d, 0x1a, 0x1d, 0x1a, 0x48, 0xdd, 0x5c, 0x99, 0x5c, 0xcb, 0x1c, 0x5c, 0xd9, 0x58, 0x9a, 0x59, 0x5a, 0x19, 0x19, 0x08, 0xda, 0x9b, 0x5c, 0x9a, 0xde, 0x9b, 0x1b, 0x5d, 0x18, 0x1b, 0xc8, 0x9b, 0x1c, 0x59, 0x99, 0x1c, 0x0b, 0xc8, 0x9b, 0x1c, 0x59, 0x99, 0x5c, 0x19, 0x59, 0x4b, 0x5b, 0x18, 0xdc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xce, 0x46, 0x07, 0x86, 0x3e, 0x6e, 0x83, 0xb2, 0x4b, 0x76, 0xe0, 0xdf, 0xdc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0xd9, 0xe0, 0x19, 0x44, 0x1e, 0x83, 0xb3, 0x61, 0x72, 0xf0, 0x66, 0xe1, 0x93, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0xc1, 0xdb, 0xe8, 0xc1, 0x13, 0xf2, 0x48, 0x37, 0x28, 0x94, 0x3b, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0xc1, 0xdb, 0xf8, 0xc1, 0xdb, 0x30, 0xdd, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x78, 0x1b, 0x82, 0x83, 0x77, 0xf4, 0x77, 0x6c, 0xf8, 0x73, 0x69, 0x83, 0xa2, 0xf5, 0x64, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x83, 0xa7, 0xf2, 0x77, 0x1c, 0x1c, 0x5b, 0x07, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x83, 0xc7, 0x03, 0x78, 0x0c, 0xde, 0x86, 0xe5, 0x86, 0x3f, 0x97, 0x36, 0x38, 0x9b, 0x5c, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc1, 0xc3, 0x02, 0x3c, 0x0e, 0xde, 0x94, 0x48, 0x7a, 0x70, 0x6c, 0x1d, 0x68, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x77, 0xa3, 0x07, 0x4f, 0xc8, 0x23, 0xdd, 0xa0, 0x94, 0x10, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x77, 0xe3, 0x07, 0x87, 0x43, 0xb2, 0x41, 0xc9, 0xc2, 0x3e, 0xcb, 0xac, 0x41, 0xb8, 0x22, 0x6c, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0x84, 0x2b, 0xc2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xfe, 0x86, 0xc5, 0xe0, 0x6f, 0xa8, 0xd8, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xf8, 0x1b, 0x26, 0x83, 0xbf, 0x61, 0xb9, 0xe1, 0xcf, 0xa5, 0x0d, 0x8a, 0xd6, 0x93, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xfc, 0x0d, 0xb3, 0x83, 0x17, 0x63, 0x92, 0x1e, 0x9c, 0xf8, 0x3d, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0xc1, 0xdf, 0x30, 0x1d, 0xfc, 0x0d, 0x0d, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x6c, 0x72, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x82, 0xbf, 0x61, 0x7e, 0xf0, 0x38, 0x4f, 0xd2, 0x0d, 0xff, 0xce, 0x6f, 0xb0, 0xa8, 0x93, 0xb0, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x83, 0x37, 0xf0, 0x76, 0x1c, 0x3c, 0x21, 0x8f, 0x74, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x20, 0xc5, 0x16, 0xb9, 0x01, 0xf0, 0x23, 0x8d, 0xae, 0xac, 0x0d, 0x64, 0xec, 0xad, 0x0d, 0x2e, 0x4c, 0x2e, 0x8c, 0xee, 0x4d, 0x0e, 0xc4, 0xec, 0x4d, 0x0e, 0x04, 0xed, 0x4d, 0x2e, 0x4d, 0xef, 0xcd, 0x8d, 0x2e, 0x8c, 0x0d, 0xe4, 0x4d, 0x8e, 0xac, 0x4c, 0x6e, 0x83, 0xb2, 0x4b, 0x76, 0x83, 0x45, 0xd8, 0x44, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xe0, 0x73, 0x88, 0x07, 0x9f, 0xc3, 0xe2, 0xa0, 0x18, 0x94, 0x9d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x9c, 0x8e, 0x1e, 0x3c, 0x21, 0x8f, 0x74, 0xc3, 0x2f, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xe0, 0x74, 0xfc, 0xe0, 0x74, 0x98, 0x6f, 0xf8, 0x73, 0x69, 0x83, 0x14, 0x5b, 0xe4, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x9c, 0x0e, 0xf9, 0xc1, 0xfb, 0x68, 0x49, 0x37, 0x08, 0xa7, 0xb1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x70, 0x3a, 0x4c, 0x06, 0xa7, 0xc3, 0x76, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xe0, 0x74, 0xd8, 0x0c, 0x4e, 0x87, 0xd9, 0xc1, 0x89, 0xdf, 0x63, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x9c, 0x0e, 0xbb, 0xc1, 0xe9, 0x30, 0x3d, 0x38, 0xf1, 0x7b, 0xb4, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x82, 0xd3, 0x61, 0x3c, 0x38, 0x1d, 0xd6, 0x87, 0x0f, 0x56, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0xd9, 0xe0, 0x7d, 0xdc, 0x22, 0x07, 0x4f, 0xc8, 0x23, 0xdd, 0xa0, 0xec, 0x92, 0xdd, 0x30, 0x43, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xe0, 0x75, 0x18, 0x0c, 0x5e, 0x87, 0xc5, 0xe1, 0x8e, 0x9a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x36, 0x78, 0x01, 0xb9, 0xc8, 0xc1, 0x13, 0xf2, 0x48, 0x37, 0x28, 0x59, 0xd8, 0x67, 0x99, 0x35, 0x58, 0xec, 0xbd, 0xba, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xb0, 0xd8, 0x7b, 0xb5, 0x01, 0xf0, 0x61, 0x8e, 0x2e, 0x8c, 0xae, 0xcc, 0xac, 0x8e, 0x0d, 0x04, 0x2e, 0x4c, 0x8e, 0x2e, 0x2d, 0x8c, 0x0d, 0x24, 0xcd, 0xed, 0x4d, 0x8e, 0xac, 0x4c, 0x0e, 0x84, 0x4e, 0x2e, 0xcc, 0xae, 0x4c, 0x6e, 0x2e, 0x8c, 0x5d, 0x09, 0xc0, 0xf7, 0xa6, 0x3a, 0xba, 0x30, 0xba, 0xb2, 0x39, 0x10, 0x97, 0x39, 0xba, 0x30, 0xba, 0x32, 0x90, 0x37, 0x37, 0x90, 0xb2, 0xb0, 0x31, 0x34, 0x10, 0xb9, 0x3a, 0x37, 0x90, 0x37, 0x33, 0x10, 0x17, 0x33, 0x17, 0x10, 0x90, 0x29, 0xba, 0x30, 0x39, 0xba, 0x39, 0x90, 0x30, 0x3a, 0x10, 0x97, 0x39, 0xba, 0x30, 0x39, 0x3a, 0x90, 0xb5, 0xb2, 0x3c, 0x16, 0x90, 0x37, 0x39, 0x90, 0x34, 0x73, 0x09, 0x80, 0x16, 0x5c, 0xe6, 0xe8, 0xc2, 0xe4, 0xe8, 0x40, 0xd2, 0xe6, 0x40, 0xfc, 0x58, 0x40, 0xe6, 0xe8, 0xc2, 0xe4, 0xe8, 0xe6, 0x40, 0xc2, 0xe8, 0x40, 0xe8, 0xd0, 0xca, 0x40, 0xd0, 0xca, 0xc2, 0xc8, 0x5c, 0x40, 0x40, 0xa6, 0xe8, 0xde, 0xe0, 0xe6, 0x40, 0xee, 0xd0, 0xca, 0xdc, 0x40, 0x5c, 0xcc, 0x40, 0xe0, 0xe4, 0xde, 0xc8, 0xea, 0xc6, 0xca, 0xe6, 0x40, 0x5c, 0xe6, 0xe8, 0xde, 0xe0, 0x7a, 0x4a, 0x5c, 0xf2, 0xdc, 0x12, 0x80, 0x0e, 0x54, 0x72, 0x61, 0x76, 0x65, 0x72, 0x73, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x6b, 0x65, 0x79, 0x73, 0x6e, 0x09, 0x40, 0xf7, 0xa2, 0xb0, 0x31, 0x34, 0x10, 0xb9, 0x3a, 0x37, 0x90, 0x37, 0x33, 0x10, 0x17, 0x33, 0x90, 0xb1, 0x30, 0x37, 0x10, 0xb9, 0x32, 0x38, 0xb6, 0xb0, 0xb1, 0x32, 0x90, 0x30, 0x37, 0x90, 0x34, 0xba, 0xb2, 0xb6, 0x93, 0x39, 0x10, 0xbb, 0x30, 0xb6, 0xba, 0x32, 0x90, 0x37, 0x39, 0x10, 0xb2, 0x32, 0xb6, 0x32, 0xba, 0x32, 0x10, 0x3a, 0xb4, 0x32, 0x90, 0x34, 0xba, 0xb2, 0x36, 0x57, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x10, 0xcb, 0xb8, 0x81, 0x29, 0x88, 0xdf, 0xf0, 0xf8, 0xc8, 0x06, 0x8b, 0xbd, 0x57, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x98, 0x71, 0x07, 0x0f, 0x8d, 0x27, 0xdd, 0xa0, 0x50, 0xee, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x82, 0x19, 0x92, 0x81, 0x60, 0x86, 0xcd, 0x86, 0x3f, 0x97, 0x36, 0x08, 0xe3, 0x8c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x08, 0x66, 0xc8, 0x0f, 0x1e, 0x76, 0x4f, 0x7a, 0x70, 0x6c, 0x1d, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x68, 0xc6, 0x1d, 0x3c, 0x34, 0x9e, 0x74, 0xc3, 0x2f, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x34, 0x43, 0x32, 0x10, 0xd0, 0x90, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x88, 0x66, 0x48, 0x07, 0xa2, 0x19, 0xa6, 0x1b, 0xfe, 0x5c, 0x1a, 0x3c, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x68, 0x86, 0xfc, 0xe0, 0x49, 0x02, 0xa5, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x6c, 0xf0, 0xa8, 0xc8, 0x8c, 0x81, 0x68, 0x86, 0xd1, 0x41, 0xe0, 0xe8, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd1, 0x0c, 0xab, 0x81, 0x68, 0x86, 0xe5, 0x41, 0x60, 0x43, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x84, 0x33, 0xa4, 0x03, 0xe1, 0x0c, 0x9b, 0x0d, 0x7f, 0x2e, 0x6d, 0x10, 0xc6, 0x19, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x10, 0xce, 0x10, 0x1f, 0xbc, 0xa4, 0xa1, 0xf4, 0x20, 0x50, 0x4e, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x78, 0x86, 0x74, 0x20, 0x9e, 0xa1, 0x74, 0xc3, 0x9f, 0x4b, 0x83, 0x9b, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x6c, 0xf0, 0x58, 0xdf, 0x8c, 0x83, 0x67, 0x4b, 0x94, 0x6e, 0x10, 0x4e, 0x63, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x3c, 0xc3, 0x64, 0x20, 0x9e, 0x61, 0xbe, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x9e, 0x61, 0x33, 0x10, 0xcf, 0x30, 0x3c, 0x08, 0x94, 0x93, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x9e, 0x61, 0x39, 0x10, 0xcf, 0xb0, 0x3e, 0x08, 0x6c, 0x88, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0xd9, 0xe0, 0x05, 0xcd, 0x19, 0x03, 0xf1, 0x0c, 0x9d, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x0d, 0x9e, 0x63, 0x9c, 0x31, 0x10, 0xcf, 0x50, 0xb5, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x06, 0x8f, 0xc6, 0xcd, 0x18, 0x88, 0x67, 0x68, 0x39, 0x28, 0x9b, 0x30, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x78, 0x86, 0x9a, 0x81, 0x78, 0x86, 0xa6, 0x83, 0x07, 0x88, 0x92, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xc4, 0x33, 0x74, 0x0d, 0xc4, 0x33, 0x94, 0x1d, 0x3e, 0x58, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xe2, 0x19, 0xda, 0x06, 0xe2, 0x19, 0x2a, 0x0f, 0x02, 0xe5, 0xa4, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xa2, 0x71, 0x07, 0x0f, 0x8d, 0x27, 0xdd, 0xf0, 0xf5, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x10, 0xd1, 0x90, 0x0c, 0x44, 0x34, 0x4c, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x44, 0x34, 0x44, 0x03, 0x11, 0x0d, 0xf9, 0x86, 0xb7, 0x75, 0x0e, 0x42, 0x38, 0x63, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x88, 0x68, 0x18, 0x0c, 0x44, 0x34, 0x2c, 0x0e, 0x4f, 0xeb, 0xb4, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x41, 0x8d, 0x3b, 0x78, 0x68, 0x3c, 0xe9, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0x0b, 0x2f, 0xb3, 0x0e, 0xc2, 0x38, 0xa3, 0x01, 0xf0, 0x94, 0x0e, 0x4d, 0xae, 0x2c, 0x8c, 0xac, 0x8c, 0x0c, 0x84, 0x0e, 0x4d, 0xee, 0xad, 0xee, 0x0c, 0x0d, 0xa4, 0x2c, 0x6c, 0x0c, 0x0d, 0x44, 0xae, 0xce, 0x0d, 0xe4, 0xcd, 0x0c, 0xc4, 0xc5, 0x0c, 0x24, 0xcc, 0x8d, 0x0c, 0x04, 0x4e, 0xee, 0x8d, 0xac, 0x6e, 0xac, 0x8c, 0x0c, 0x44, 0x2c, 0x0f, 0x64, 0x25, 0x4c, 0xac, 0x8c, 0x6e, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x85, 0x97, 0x59, 0x07, 0x0d, 0x5c, 0x36, 0x35, 0x00, 0x9e, 0xcc, 0x95, 0xd1, 0x81, 0xd0, 0xbd, 0x81, 0x94, 0xb8, 0xe4, 0x81, 0x88, 0xe5, 0x81, 0xb8, 0x98, 0x81, 0xdc, 0xa1, 0x95, 0xb9, 0x81, 0x90, 0xbd, 0xb9, 0x95, 0x81, 0xd0, 0xc9, 0x85, 0xd9, 0x95, 0xc9, 0xcd, 0xa5, 0xb9, 0x9d, 0x6d, 0x50, 0x90, 0xc6, 0x6e, 0x70, 0x42, 0xeb, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xe2, 0x1a, 0xe2, 0x81, 0xb8, 0x86, 0x9e, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x71, 0x0d, 0xf9, 0x40, 0x5c, 0xc3, 0x74, 0xc3, 0xe7, 0x2e, 0x1b, 0x34, 0x70, 0xd9, 0xb4, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x71, 0x0d, 0xa3, 0x83, 0xf7, 0x43, 0x95, 0x6e, 0xf8, 0x8b, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x36, 0x78, 0x93, 0x4a, 0xc6, 0xc1, 0xa3, 0x5a, 0x32, 0x0e, 0x1f, 0xac, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc1, 0x03, 0x60, 0x32, 0x0e, 0xde, 0x0f, 0x55, 0x7a, 0xb0, 0xcc, 0x49, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x36, 0x78, 0x1f, 0x4c, 0xc6, 0x40, 0x5c, 0x43, 0xcd, 0x86, 0xcf, 0x5d, 0x36, 0x08, 0xe3, 0x8c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x36, 0x78, 0x73, 0x4b, 0xc6, 0xc1, 0xbb, 0xb8, 0x4a, 0x0f, 0xde, 0x63, 0x53, 0xda, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x04, 0x36, 0xee, 0xe0, 0xa1, 0xf1, 0xa4, 0x1b, 0x1e, 0x94, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x02, 0x1b, 0x92, 0x81, 0xc0, 0x86, 0xf4, 0xa0, 0x01, 0xeb, 0xed, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x08, 0x6c, 0xc8, 0x0f, 0x1e, 0x1a, 0x4f, 0xba, 0xe1, 0x41, 0xc9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xb0, 0x61, 0x33, 0x10, 0xd8, 0xb0, 0x3b, 0x68, 0x69, 0xc9, 0x6f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x22, 0x1b, 0x77, 0xf0, 0xd0, 0x78, 0xd2, 0x0d, 0x4a, 0x16, 0xf6, 0x59, 0x66, 0x0d, 0x9a, 0x61, 0xf2, 0xdb, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x68, 0x86, 0xc9, 0xaf, 0x01, 0xf0, 0xb8, 0x2d, 0x2c, 0xcd, 0x0d, 0x44, 0xae, 0x6c, 0xac, 0x4e, 0x6e, 0x2e, 0xcd, 0xae, 0x0c, 0x84, 0xed, 0xed, 0x0d, 0x6e, 0x07, 0x04, 0xae, 0x4c, 0xce, 0xec, 0x4d, 0xae, 0x6d, 0x0e, 0x24, 0x0c, 0x04, 0x2e, 0x4c, 0x8e, 0x2e, 0x2d, 0x8c, 0x0d, 0x24, 0xcd, 0xed, 0x4d, 0x8e, 0xac, 0x4c, 0x0e, 0x84, 0x4e, 0x2e, 0xcc, 0xae, 0x4c, 0x6e, 0x2e, 0x8c, 0x6d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x0d, 0x5e, 0x64, 0xa5, 0x31, 0x10, 0xeb, 0x90, 0x6d, 0xf8, 0xfa, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x88, 0x6f, 0xc8, 0x06, 0xe2, 0x1b, 0xf2, 0x83, 0xe7, 0x83, 0xa5, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x88, 0xe3, 0x0f, 0x5e, 0x9d, 0x57, 0xba, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0xd9, 0xe0, 0x21, 0x5b, 0x1a, 0x03, 0x21, 0x0e, 0x8b, 0x0d, 0xff, 0xe6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x21, 0x0e, 0xe9, 0x40, 0x88, 0x43, 0x7c, 0x50, 0x50, 0x64, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0x73, 0xf0, 0x56, 0x2c, 0x8d, 0xc3, 0xd3, 0x3a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x88, 0xc3, 0x66, 0x20, 0xc4, 0x61, 0x77, 0xf0, 0x7c, 0xb0, 0x94, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x88, 0x71, 0xfc, 0xc1, 0xab, 0xf3, 0x4a, 0x37, 0x7c, 0x90, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xc4, 0x38, 0x64, 0x03, 0x31, 0x0e, 0x9b, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0xc0, 0x65, 0xd3, 0xc1, 0x89, 0xb9, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x88, 0x71, 0x58, 0x0d, 0xc4, 0x38, 0x2c, 0x0f, 0x9e, 0x0f, 0x96, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x61, 0x8e, 0x3f, 0x78, 0x75, 0x5e, 0xe9, 0x06, 0x45, 0x9f, 0xee, 0x06, 0x81, 0x29, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x84, 0x39, 0x2c, 0x06, 0xc2, 0x1c, 0x56, 0x1b, 0xde, 0xd6, 0xd9, 0x60, 0xed, 0x4a, 0x77, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x10, 0xe7, 0xf8, 0x83, 0x57, 0xe7, 0x95, 0x6e, 0xf8, 0x20, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x88, 0x73, 0xc8, 0x06, 0xe2, 0x1c, 0x36, 0x07, 0x0f, 0x77, 0x2c, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xe2, 0x1c, 0x56, 0x03, 0x71, 0x0e, 0xcb, 0x83, 0xe7, 0x83, 0xa5, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xa0, 0xe3, 0x0f, 0x5e, 0x9d, 0x57, 0xba, 0x41, 0xd1, 0x41, 0xbb, 0x41, 0xe1, 0x6f, 0xb0, 0x41, 0x60, 0x0a, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x81, 0x0e, 0xb3, 0x81, 0x40, 0x87, 0xe9, 0x41, 0x53, 0xe5, 0x20, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x10, 0xe9, 0xf8, 0x83, 0x57, 0xe7, 0x95, 0x6e, 0x70, 0x1c, 0x9b, 0xd8, 0x20, 0x30, 0x85, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x83, 0xe7, 0xb1, 0x69, 0x0c, 0x44, 0x3a, 0x4c, 0x37, 0xbc, 0xcd, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x91, 0x0e, 0x93, 0x83, 0xb7, 0xb2, 0x96, 0x1e, 0x3c, 0xdc, 0xb1, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x88, 0x74, 0x18, 0x0f, 0x44, 0x3a, 0x34, 0x6c, 0x78, 0x5b, 0x67, 0x80, 0x47, 0x2e, 0xed, 0x0c, 0x8d, 0x6e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x42, 0x1d, 0x7f, 0xf0, 0xea, 0xbc, 0xd2, 0x0d, 0x8e, 0x63, 0x13, 0x1b, 0x1e, 0xdc, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x42, 0x1d, 0xe2, 0x81, 0x50, 0x87, 0xc5, 0xc1, 0x01, 0xcf, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x08, 0x75, 0xd8, 0x0c, 0x84, 0x3a, 0x4c, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x84, 0x3a, 0x8c, 0x06, 0x42, 0x1d, 0x76, 0x1b, 0xde, 0xd6, 0xd9, 0xa0, 0xf0, 0x18, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x08, 0x75, 0x18, 0x0e, 0x84, 0x3a, 0x2c, 0x0f, 0x4f, 0xeb, 0xb4, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x06, 0x4f, 0xbb, 0xd3, 0x38, 0x78, 0x75, 0x5e, 0xe9, 0xc1, 0xf3, 0xc1, 0x52, 0x56, 0x83, 0xb5, 0x2b, 0xdd, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0x6b, 0x57, 0xba, 0x1b, 0x00, 0x5f, 0xe5, 0xca, 0xc6, 0xea, 0xe4, 0xe6, 0xca, 0x40, 0xde, 0xdc, 0x40, 0xd8, 0xca, 0xcc, 0xe8, 0x40, 0xe6, 0xea, 0xc4, 0xe8, 0xe4, 0xca, 0xca, 0x58, 0x40, 0xc6, 0xde, 0xe0, 0xf2, 0xd2, 0xdc, 0xce, 0x40, 0xda, 0xea, 0xe8, 0xc2, 0xdc, 0xe8, 0x40, 0xc4, 0xc2, 0xc6, 0xd6, 0x40, 0xd2, 0xdc, 0xe8, 0xde, 0x40, 0x5c, 0xd8, 0x5c, 0xc2, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0xd9, 0xe0, 0x61, 0xd8, 0x19, 0x03, 0xd1, 0x0f, 0xc3, 0x0d, 0x5f, 0xbf, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0xc1, 0xe3, 0xab, 0x33, 0x0e, 0x9e, 0x0f, 0x96, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x06, 0x2f, 0xfd, 0xce, 0x38, 0x78, 0x09, 0x74, 0xe9, 0x06, 0x25, 0x3c, 0xe6, 0x86, 0x07, 0x77, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd8, 0x87, 0x78, 0x20, 0xf6, 0x61, 0x72, 0xf0, 0x7c, 0xb0, 0x94, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x36, 0x78, 0x9a, 0x79, 0xc6, 0xc1, 0x4b, 0xa0, 0x4b, 0x37, 0x28, 0x48, 0x63, 0x37, 0x58, 0xb5, 0xae, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x04, 0x3f, 0x0c, 0x06, 0x82, 0x1f, 0xb6, 0x1b, 0x2e, 0xa9, 0x0d, 0x1a, 0x61, 0xf2, 0x5b, 0xc3, 0x83, 0x3b, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x10, 0xfc, 0xb0, 0x1b, 0x08, 0x7e, 0x98, 0x1e, 0x94, 0xda, 0x9e, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc1, 0x4b, 0xda, 0x33, 0x0e, 0x5e, 0x02, 0x5d, 0xba, 0xe1, 0x92, 0xda, 0x60, 0x8d, 0xc2, 0xee, 0x1a, 0x1e, 0xdc, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe8, 0x87, 0x74, 0x20, 0xfa, 0x61, 0xb7, 0xe1, 0x92, 0xda, 0xf0, 0xe0, 0xce, 0x1a, 0x0c, 0x52, 0xa9, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x88, 0x7e, 0x58, 0x0c, 0x44, 0x3f, 0xcc, 0x36, 0xbc, 0xad, 0x33, 0x78, 0x78, 0xb0, 0x46, 0x61, 0xb7, 0x56, 0x83, 0x07, 0xcc, 0x96, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x3c, 0x60, 0xb6, 0xb4, 0x01, 0xf0, 0x56, 0xae, 0x6c, 0xac, 0x4e, 0x6e, 0xae, 0x0c, 0xe4, 0xcd, 0x0d, 0x44, 0x2e, 0xed, 0x0c, 0x8d, 0x0e, 0x64, 0xae, 0x4e, 0x8c, 0x4e, 0xae, 0xac, 0x8c, 0x05, 0x64, 0xec, 0x0d, 0x2e, 0x2f, 0xcd, 0xed, 0x0c, 0xa4, 0xad, 0x8e, 0x2e, 0xcc, 0x8d, 0x0e, 0x44, 0x2c, 0x6c, 0x6c, 0x0d, 0x24, 0xcd, 0x8d, 0xee, 0x0d, 0xc4, 0x45, 0xce, 0x25, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x26, 0x20, 0x7e, 0x60, 0x08, 0xc2, 0x70, 0xc3, 0xd7, 0x2f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x04, 0x84, 0x6c, 0x60, 0x02, 0x42, 0x7e, 0xf0, 0x7c, 0xb0, 0x94, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0x81, 0xf8, 0x83, 0xe7, 0xe2, 0x97, 0x6e, 0x50, 0xc2, 0x63, 0x6e, 0x78, 0x70, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0x81, 0x10, 0x0f, 0x8c, 0x40, 0x98, 0x1c, 0x3c, 0x1f, 0x2c, 0x65, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x66, 0x20, 0xfe, 0xe0, 0xb9, 0xf8, 0xa5, 0x1b, 0x14, 0xa4, 0xb1, 0x1b, 0x0c, 0x1e, 0x94, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x06, 0xc2, 0x60, 0x60, 0x06, 0xc2, 0x76, 0xc3, 0x25, 0xb5, 0x41, 0x23, 0x4c, 0x7e, 0x6b, 0x78, 0x70, 0x67, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x66, 0x20, 0xec, 0x06, 0x66, 0x20, 0x4c, 0x0f, 0x4a, 0xd9, 0xcc, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x08, 0xe2, 0x0f, 0x9e, 0x8b, 0x5f, 0xba, 0xe1, 0x92, 0xda, 0x60, 0x6d, 0x27, 0xfc, 0x1a, 0x1e, 0xdc, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x21, 0x08, 0xe9, 0xc0, 0x10, 0x84, 0xdd, 0x86, 0x4b, 0x6a, 0xc3, 0x83, 0x3b, 0x6b, 0x50, 0xf0, 0x6c, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x10, 0x84, 0xc5, 0xc0, 0x10, 0x84, 0xd9, 0x86, 0xb7, 0x75, 0x06, 0x0f, 0x0f, 0xd6, 0x76, 0xc2, 0xd7, 0xe1, 0x14, 0x6b, 0x0d, 0x9a, 0xc4, 0xd2, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd8, 0x86, 0x7c, 0x20, 0xb6, 0x61, 0xbc, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xb6, 0x61, 0x30, 0x10, 0xdb, 0xb0, 0xdc, 0xf0, 0xb6, 0xce, 0x06, 0x61, 0x9c, 0x71, 0x70, 0x62, 0xee, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x62, 0x1b, 0xa6, 0x03, 0xb1, 0x0d, 0xdb, 0xc3, 0xd3, 0x3a, 0xcd, 0x1a, 0x84, 0xa5, 0xcd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x84, 0x36, 0xe4, 0x03, 0xa1, 0x0d, 0x83, 0x83, 0xc4, 0x96, 0xaa, 0x59, 0x83, 0x60, 0x6f, 0xdb, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x08, 0xf6, 0xb6, 0x06, 0xc0, 0x37, 0xb9, 0x3a, 0x37, 0x10, 0x17, 0x33, 0x90, 0x37, 0x37, 0x10, 0x17, 0x37, 0x97, 0x30, 0x16, 0x90, 0x3a, 0x38, 0xb2, 0x30, 0xba, 0x34, 0xb7, 0x33, 0x10, 0x97, 0x30, 0x16, 0x10, 0x97, 0x39, 0xba, 0x30, 0xba, 0x32, 0x16, 0x90, 0x30, 0x37, 0x32, 0x10, 0x97, 0x39, 0xba, 0x37, 0xb8, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x88, 0x77, 0xfc, 0x40, 0xd8, 0x43, 0xc5, 0x86, 0xaf, 0x5f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x78, 0x87, 0x6c, 0x20, 0xde, 0x61, 0xb8, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xde, 0x21, 0x1c, 0x88, 0x77, 0x98, 0x6c, 0xf8, 0xdc, 0x65, 0x83, 0xc2, 0xdf, 0x60, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xe2, 0x1d, 0x06, 0x07, 0x8f, 0x92, 0x31, 0xdd, 0xa0, 0x10, 0x4c, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x78, 0x87, 0xc5, 0xc1, 0xa3, 0x64, 0x4c, 0x0f, 0x1f, 0xac, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf1, 0x0e, 0x9b, 0x81, 0x78, 0x87, 0xdd, 0xc1, 0xf3, 0xc1, 0x52, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x90, 0xc7, 0x1f, 0xbc, 0xa3, 0xc5, 0x74, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x36, 0x78, 0xa2, 0xa3, 0xc6, 0x40, 0xc8, 0xc3, 0x64, 0x83, 0x62, 0x12, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x08, 0x79, 0x88, 0x0f, 0xde, 0xc1, 0xa8, 0x71, 0x50, 0xa4, 0x62, 0x1e, 0x1e, 0xdc, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x98, 0xc7, 0x1f, 0xbc, 0xa3, 0xc5, 0x74, 0x83, 0xa2, 0x83, 0x76, 0x83, 0x63, 0x86, 0xe7, 0x06, 0x27, 0xe6, 0xce, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe6, 0x61, 0x35, 0x10, 0xf3, 0x50, 0xb3, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe6, 0x61, 0x36, 0x10, 0xf3, 0xb0, 0x3b, 0x28, 0x46, 0x6a, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x98, 0x87, 0xe1, 0x40, 0xcc, 0x43, 0xc3, 0xc1, 0xa3, 0x37, 0x4c, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x98, 0x87, 0x8a, 0x81, 0x98, 0x87, 0x96, 0x83, 0x92, 0x19, 0xb3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x08, 0x7a, 0xfc, 0xc1, 0x3b, 0x5a, 0x4c, 0x37, 0x28, 0xe1, 0x31, 0x37, 0x38, 0x83, 0x79, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x06, 0xcf, 0xab, 0xd3, 0x18, 0x88, 0x7a, 0x58, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x88, 0x7a, 0x88, 0x06, 0xa2, 0x1e, 0xf2, 0x0d, 0x9f, 0xbb, 0x6c, 0x50, 0xf8, 0x1b, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xd4, 0x43, 0x7c, 0xf0, 0x24, 0x2d, 0xd3, 0x83, 0x22, 0xa7, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x88, 0x7a, 0x18, 0x0c, 0x44, 0x3d, 0x8c, 0x0e, 0x9e, 0x0f, 0x96, 0xd2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x84, 0x3d, 0xfe, 0xe0, 0x1d, 0x2d, 0xa6, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xc2, 0x1e, 0x82, 0x81, 0xb0, 0x87, 0x74, 0xc3, 0xe7, 0x2e, 0x1b, 0x14, 0xfe, 0x06, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x10, 0xf6, 0x10, 0x1e, 0x3c, 0xac, 0xcc, 0xf4, 0xa0, 0x80, 0xcd, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xc2, 0x1e, 0xe2, 0x81, 0xb0, 0x87, 0x86, 0x0d, 0x97, 0xd4, 0x06, 0x81, 0x29, 0xb4, 0x1a, 0x9c, 0x4d, 0xae, 0x0e, 0x0a, 0x6d, 0xcc, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x08, 0x7b, 0xd8, 0x0e, 0x84, 0x3d, 0x14, 0x6c, 0x78, 0x5b, 0x67, 0xf0, 0xfa, 0xe0, 0x0c, 0xe6, 0x59, 0x87, 0x53, 0xec, 0x70, 0x8a, 0xad, 0x06, 0x03, 0x88, 0x7c, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x36, 0x38, 0x6f, 0xc7, 0x0c, 0x80, 0x57, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x4f, 0x52, 0x20, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x10, 0x84, 0xb8, 0x81, 0x48, 0x84, 0x8a, 0x0d, 0x8f, 0x8f, 0x6c, 0x30, 0x80, 0xc8, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x0a, 0x71, 0x07, 0x0f, 0xd6, 0x33, 0xdd, 0xf0, 0x8b, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x10, 0x85, 0x90, 0x0c, 0x44, 0x21, 0xb4, 0x6c, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x88, 0x42, 0x88, 0x06, 0xa2, 0x10, 0x76, 0x1b, 0xfe, 0x5c, 0x1a, 0x3c, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x28, 0x84, 0xf0, 0xe0, 0x09, 0x83, 0xa6, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x10, 0x85, 0x90, 0x0e, 0x44, 0x21, 0x2c, 0x0e, 0x02, 0x47, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x88, 0x42, 0x98, 0x0c, 0x44, 0x21, 0xcc, 0x0e, 0x02, 0x1b, 0xa2, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x0a, 0x61, 0x38, 0x10, 0x85, 0x50, 0xb2, 0xe1, 0xcf, 0xa5, 0xc1, 0xc5, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x88, 0x42, 0x98, 0x1e, 0xbc, 0xba, 0xd1, 0x74, 0x83, 0x70, 0x1a, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xa2, 0x10, 0xd6, 0x03, 0x51, 0x08, 0x0d, 0x07, 0x81, 0x0d, 0xb1, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x51, 0x08, 0x15, 0x03, 0x51, 0x08, 0x1d, 0x87, 0x0f, 0x56, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x30, 0xc4, 0x1d, 0x3c, 0x58, 0xcf, 0x74, 0xc3, 0x57, 0x38, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x10, 0x86, 0x90, 0x1c, 0x3c, 0x58, 0xcf, 0x74, 0xc3, 0x5f, 0x34, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x18, 0x42, 0x3a, 0x10, 0x86, 0x10, 0x1f, 0x3e, 0x58, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x38, 0xc4, 0x1d, 0x3c, 0x58, 0xcf, 0x74, 0x83, 0x12, 0x1e, 0x73, 0xc3, 0x83, 0x3b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc1, 0x53, 0x3c, 0x3d, 0x0e, 0x1e, 0x09, 0xea, 0x71, 0x50, 0xc0, 0xe6, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x24, 0xe2, 0x0e, 0x1e, 0xac, 0x67, 0xba, 0xe1, 0x57, 0xb2, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0xd9, 0xe0, 0xdd, 0xb4, 0x1e, 0x03, 0x91, 0x08, 0xf9, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x48, 0x84, 0x64, 0x20, 0x12, 0x21, 0x3a, 0xbc, 0x17, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x44, 0x22, 0x64, 0x07, 0x4f, 0xd8, 0xf5, 0x38, 0x28, 0x99, 0x31, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x0d, 0x9e, 0x89, 0xeb, 0x31, 0x10, 0x89, 0x30, 0xdc, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0xf0, 0xe0, 0xce, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x44, 0x22, 0x8c, 0x06, 0x22, 0x11, 0x76, 0x07, 0xa5, 0xb6, 0x67, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x24, 0xc2, 0x72, 0x20, 0x12, 0xa1, 0x61, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0xc3, 0x83, 0x3b, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x10, 0x89, 0xb0, 0x1e, 0x88, 0x44, 0x28, 0x38, 0x28, 0x65, 0x33, 0x6b, 0x05, 0x3c, 0xb8, 0x37, 0x78, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0x32, 0xf0, 0xe0, 0xde, 0xe0, 0x06, 0xc0, 0x63, 0x38, 0xb9, 0x37, 0xb2, 0xba, 0xb1, 0x32, 0x10, 0x17, 0xb4, 0xb2, 0x30, 0x32, 0x10, 0x14, 0xb6, 0x32, 0x33, 0xba, 0xb6, 0xb7, 0x39, 0x3a, 0x90, 0x34, 0xba, 0xb2, 0xb6, 0x14, 0x90, 0x30, 0x37, 0x32, 0x10, 0x17, 0xb9, 0xb2, 0x39, 0x3a, 0x90, 0x37, 0x39, 0x90, 0x31, 0xb9, 0xb0, 0x39, 0x34, 0x90, 0x34, 0x33, 0x90, 0xb2, 0x36, 0x38, 0xba, 0xbc, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0xb6, 0xb8, 0x81, 0xb9, 0x0b, 0xe3, 0x0d, 0x8f, 0x8f, 0x0c, 0x78, 0x70, 0x6f, 0xf0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x4c, 0x5b, 0xdc, 0xc1, 0xc3, 0x8d, 0x4d, 0x37, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x4c, 0x5b, 0x48, 0x06, 0xa6, 0x2d, 0xcc, 0x36, 0xfc, 0xb9, 0x34, 0x78, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd3, 0x16, 0xb2, 0x83, 0xa7, 0x32, 0x9b, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb4, 0x85, 0x70, 0x60, 0xda, 0xc2, 0xe0, 0x20, 0x70, 0xf4, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x69, 0x0b, 0x8b, 0x81, 0x69, 0x0b, 0xab, 0x83, 0xc0, 0x86, 0x68, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xc6, 0x2d, 0xee, 0xe0, 0xe1, 0xc6, 0xa6, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xc6, 0x2d, 0x24, 0x03, 0xe3, 0x16, 0x5a, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x8c, 0x5b, 0x88, 0x06, 0xc6, 0x2d, 0x6c, 0x36, 0xfc, 0xb9, 0xb4, 0x41, 0xb0, 0x2c, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb8, 0x85, 0xfc, 0xe0, 0xc9, 0xdc, 0xa6, 0x07, 0x81, 0x0d, 0xb1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x8c, 0x5b, 0x18, 0x0d, 0x8c, 0x5b, 0x28, 0xd9, 0xf0, 0xe7, 0xd2, 0x06, 0x8d, 0x1f, 0xb5, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb8, 0x85, 0xe5, 0xc1, 0x1b, 0xc5, 0x4d, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xdc, 0xc2, 0x74, 0x60, 0xdc, 0xc2, 0xfc, 0x20, 0x70, 0xf4, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x71, 0x0b, 0xfb, 0x81, 0x71, 0x0b, 0x1d, 0x07, 0x81, 0x0d, 0x51, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x6f, 0x71, 0x07, 0x0f, 0x37, 0x36, 0xdd, 0xa0, 0x84, 0xc7, 0xdc, 0xf0, 0xe0, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x6f, 0x21, 0x1e, 0x98, 0xb7, 0x30, 0x38, 0x08, 0x4f, 0xd5, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0xb8, 0xb8, 0x83, 0x87, 0x1b, 0x9b, 0x6e, 0x50, 0xc2, 0x63, 0x6e, 0x50, 0xfa, 0x69, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x03, 0x17, 0xe2, 0x81, 0x81, 0x0b, 0xbb, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x03, 0x17, 0xf2, 0x81, 0x81, 0x0b, 0x93, 0x83, 0x92, 0x19, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0xb8, 0xb0, 0x19, 0x18, 0xb8, 0x30, 0x3b, 0x28, 0x65, 0x33, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x89, 0x8b, 0x3b, 0x78, 0xb8, 0xb1, 0xe9, 0x06, 0x05, 0x69, 0xec, 0xe0, 0xec, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x71, 0x21, 0x1c, 0x98, 0xb8, 0x30, 0xda, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0xf0, 0xe0, 0xce, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x4c, 0x5c, 0x18, 0x0c, 0x4c, 0x5c, 0xd8, 0x1c, 0x94, 0xda, 0x9e, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xc8, 0xc5, 0x1d, 0x3c, 0xdc, 0xd8, 0x74, 0x83, 0xc2, 0x50, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0xb9, 0x90, 0x0c, 0x8c, 0x5c, 0xc8, 0x37, 0xbc, 0xad, 0xb3, 0x41, 0xb0, 0x2c, 0x1d, 0x0c, 0x52, 0xa9, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0xba, 0xb8, 0x83, 0x87, 0x1b, 0x9b, 0x6e, 0xf8, 0x20, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0xba, 0x90, 0x0c, 0x4c, 0x5d, 0xe8, 0xdc, 0xf0, 0x2b, 0xd9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x75, 0x21, 0x1b, 0x98, 0xba, 0xb0, 0xdb, 0xa0, 0x98, 0xc4, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xa6, 0x2e, 0xc4, 0x03, 0x53, 0x17, 0xf2, 0x83, 0x10, 0x7c, 0xd8, 0xa0, 0xf1, 0xa3, 0x96, 0x83, 0x41, 0x2a, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x4c, 0x5d, 0x18, 0x0e, 0x4c, 0x5d, 0xa8, 0xdc, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x75, 0x61, 0x39, 0x30, 0x75, 0x61, 0x7c, 0x50, 0x8a, 0x6a, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x53, 0x17, 0xd6, 0x03, 0x53, 0x17, 0x4a, 0x36, 0xbc, 0xad, 0xb3, 0x41, 0xd1, 0x7a, 0x72, 0x50, 0x68, 0x63, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x53, 0x17, 0x5a, 0x06, 0xa6, 0x2e, 0x34, 0x6e, 0x78, 0x5b, 0x67, 0x83, 0xa2, 0xf5, 0x64, 0x70, 0xf7, 0xe0, 0xd1, 0x16, 0xa7, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x8c, 0x5d, 0xfc, 0xc0, 0xd8, 0x85, 0xc9, 0x86, 0x4b, 0x6a, 0xc3, 0x83, 0x3b, 0x6b, 0x30, 0x48, 0xa5, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xec, 0x42, 0x36, 0x30, 0x76, 0x61, 0xb1, 0xe1, 0x6d, 0x9d, 0x83, 0x47, 0x5b, 0x9c, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x73, 0x17, 0x77, 0xf0, 0x70, 0x63, 0xd3, 0x0d, 0x97, 0xd4, 0x06, 0x8f, 0xb6, 0x38, 0x5d, 0x83, 0x82, 0x67, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xe6, 0x2e, 0xc4, 0x03, 0x73, 0x17, 0xb6, 0x1b, 0x2e, 0xa9, 0x0d, 0x0f, 0xee, 0xac, 0x41, 0xc1, 0xb3, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x73, 0x17, 0x26, 0x03, 0x73, 0x17, 0xa6, 0x1b, 0xde, 0xd6, 0x19, 0x5c, 0x3e, 0x78, 0xb4, 0xc5, 0x69, 0xad, 0x06, 0x23, 0xcd, 0x7d, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x36, 0x28, 0xc7, 0x3a, 0x07, 0xe0, 0xe5, 0x4d, 0x8e, 0xac, 0x4c, 0xae, 0x8c, 0x0c, 0x24, 0x8d, 0xae, 0xac, 0x0d, 0x24, 0xcd, 0x6d, 0xae, 0x4c, 0x8e, 0x6e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xa6, 0x30, 0x6e, 0x60, 0x38, 0xc3, 0x64, 0xc3, 0xe3, 0x23, 0x1b, 0x8c, 0x34, 0xf7, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0xc3, 0xb8, 0x83, 0xe7, 0xf0, 0x9c, 0x6e, 0xf8, 0x45, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0xc3, 0x90, 0x0c, 0x8c, 0x61, 0xa8, 0xd8, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x86, 0x21, 0x1a, 0x18, 0xc3, 0xb0, 0xdb, 0xf0, 0xe7, 0xd2, 0xe0, 0xe1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x8c, 0x61, 0x08, 0x0f, 0x1e, 0x49, 0x74, 0xba, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x63, 0x18, 0xd2, 0x81, 0x31, 0x0c, 0x8b, 0x83, 0xc0, 0xd1, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xc6, 0x30, 0x4c, 0x06, 0xc6, 0x30, 0xcc, 0x0e, 0x02, 0x1b, 0xa2, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x0c, 0xc3, 0x70, 0x60, 0x0c, 0xc3, 0x78, 0xc3, 0x9f, 0x4b, 0x1b, 0x14, 0xad, 0x27, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x86, 0x61, 0x79, 0xf0, 0xbc, 0xa7, 0xd3, 0x83, 0x13, 0xbf, 0xc7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x86, 0x61, 0x3d, 0x30, 0x86, 0xa1, 0x61, 0xc3, 0x9f, 0x4b, 0x1b, 0x9c, 0x4d, 0xae, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x0c, 0xc3, 0xfc, 0xe0, 0x55, 0x55, 0xa7, 0x07, 0x0f, 0x10, 0x25, 0x6d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xe6, 0x30, 0xee, 0xe0, 0x39, 0x3c, 0xa7, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xe6, 0x30, 0x24, 0x03, 0x73, 0x18, 0x46, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x87, 0x21, 0x1a, 0x98, 0xc3, 0x10, 0x1f, 0x04, 0x8e, 0xde, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x87, 0x21, 0x1f, 0x98, 0xc3, 0xb0, 0x39, 0x08, 0x6c, 0x88, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x14, 0xe3, 0x0e, 0x9e, 0xc3, 0x73, 0xba, 0x41, 0x09, 0x8f, 0xb9, 0xe1, 0xc1, 0x9d, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x14, 0x43, 0x38, 0x30, 0x8a, 0xa1, 0x61, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x28, 0x86, 0x74, 0x60, 0x14, 0xc3, 0x70, 0xc3, 0xe7, 0x2e, 0x83, 0xbb, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x8a, 0x21, 0x3f, 0x78, 0xe6, 0xda, 0xe9, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x51, 0x0c, 0x83, 0x81, 0x51, 0x0c, 0x9b, 0x83, 0x43, 0x6b, 0xd7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x8a, 0x61, 0x34, 0x30, 0x8a, 0x61, 0x77, 0xb0, 0x2c, 0x98, 0xb0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x14, 0xc3, 0x72, 0x60, 0x14, 0xc3, 0x78, 0xc3, 0xe7, 0x2e, 0x83, 0xb3, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x8a, 0x61, 0x7b, 0xf0, 0x4c, 0xbb, 0xd3, 0x83, 0x82, 0x22, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0xc5, 0xb0, 0x1e, 0x18, 0xc5, 0x50, 0xb0, 0xe1, 0x73, 0x97, 0xc1, 0xe5, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0xc5, 0xb0, 0x3f, 0x78, 0x0c, 0xdf, 0xe9, 0x41, 0x41, 0x91, 0xd9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x4c, 0x63, 0xdc, 0xc1, 0x73, 0x78, 0x4e, 0x37, 0x7c, 0x90, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x4c, 0x63, 0x48, 0x06, 0xa6, 0x31, 0xec, 0x36, 0xfc, 0x9b, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x4c, 0x63, 0xc8, 0x06, 0xa6, 0x31, 0x4c, 0x0e, 0x9e, 0xf6, 0x71, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd3, 0x18, 0x36, 0x03, 0xd3, 0x18, 0x66, 0x07, 0x87, 0xd6, 0xae, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x1a, 0xc3, 0x72, 0x60, 0x1a, 0x43, 0xcb, 0x86, 0x4b, 0x6a, 0xc3, 0x83, 0x3b, 0xab, 0xc1, 0xd9, 0xe4, 0xea, 0x60, 0xd8, 0xed, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x34, 0x86, 0x86, 0x81, 0x69, 0x0c, 0x25, 0x07, 0xcb, 0x82, 0x09, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x81, 0x8c, 0x3b, 0x78, 0x0e, 0xcf, 0xe9, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x81, 0x0c, 0xc9, 0xc0, 0x40, 0x86, 0xf9, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x81, 0x0c, 0xd1, 0xc0, 0x40, 0x86, 0xc5, 0x86, 0xb7, 0x75, 0x0e, 0xd2, 0x6b, 0x91, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x81, 0x0c, 0x93, 0x81, 0x81, 0x0c, 0xab, 0x83, 0x43, 0x6b, 0xd7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x90, 0x61, 0x36, 0x30, 0x90, 0x61, 0x7d, 0xf0, 0xb4, 0x8f, 0xd3, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x89, 0x8c, 0x1f, 0x98, 0xca, 0x30, 0xda, 0xa0, 0x20, 0x8d, 0x1d, 0x9c, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x26, 0x32, 0xc4, 0x03, 0x13, 0x19, 0x66, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x1e, 0xdc, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x89, 0x0c, 0x93, 0x81, 0x89, 0x0c, 0xab, 0x83, 0x52, 0xdb, 0xb3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0xc9, 0xf8, 0x83, 0x47, 0x84, 0x9e, 0x6e, 0x50, 0xf0, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x23, 0x19, 0xb2, 0x81, 0x91, 0x0c, 0x93, 0x0d, 0x8a, 0x49, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x24, 0x43, 0x3c, 0x30, 0x92, 0x21, 0x3f, 0x28, 0x52, 0x31, 0x0f, 0x06, 0xa9, 0xd4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xcc, 0x64, 0xfc, 0xc1, 0x23, 0x42, 0x4f, 0x37, 0x7c, 0x90, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xcc, 0x64, 0xc8, 0x06, 0x66, 0x32, 0x14, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0xc9, 0x10, 0x0e, 0xcc, 0x64, 0xc8, 0x0f, 0x4a, 0x51, 0xcd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x26, 0xc3, 0x60, 0x60, 0x26, 0xc3, 0xee, 0xe0, 0x69, 0x1f, 0xa7, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x4c, 0x86, 0xe1, 0xc0, 0x4c, 0x86, 0xfd, 0x86, 0xb7, 0x75, 0x36, 0x28, 0x5a, 0x4f, 0x06, 0x77, 0x0f, 0x06, 0xa9, 0x54, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x50, 0x86, 0x64, 0x60, 0x28, 0x43, 0xbe, 0xe1, 0x92, 0xda, 0xf0, 0xe0, 0xce, 0x1a, 0x0c, 0x52, 0xa9, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0xca, 0x90, 0x0e, 0x0c, 0x65, 0x88, 0x0f, 0x52, 0xde, 0xae, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa9, 0x8c, 0x3f, 0x78, 0x44, 0xe8, 0xe9, 0x86, 0x4b, 0x6a, 0x83, 0x41, 0x2a, 0xb5, 0x06, 0x05, 0xcf, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x4c, 0x65, 0xc8, 0x06, 0xa6, 0x32, 0x6c, 0x36, 0x5c, 0x52, 0x1b, 0x1e, 0xdc, 0x59, 0x83, 0x41, 0x2a, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x53, 0x19, 0xf2, 0x81, 0xa9, 0x0c, 0x93, 0x0d, 0x6f, 0xeb, 0x0c, 0x2e, 0x1f, 0x0c, 0x52, 0xa9, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc1, 0x8c, 0x3b, 0x78, 0x0e, 0xcf, 0xe9, 0x06, 0x05, 0x69, 0xec, 0xe0, 0xf2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x98, 0x21, 0x1c, 0x18, 0xcc, 0x30, 0xda, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0xf0, 0xe0, 0xce, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x0c, 0x66, 0x18, 0x0c, 0x0c, 0x66, 0xd8, 0x1c, 0x94, 0xb2, 0x99, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x64, 0xc6, 0x1d, 0x3c, 0x87, 0xe7, 0x74, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0xcc, 0x90, 0x0c, 0x4c, 0x66, 0x18, 0x6c, 0x50, 0x4c, 0x62, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x93, 0x19, 0xc2, 0x81, 0xc9, 0x0c, 0xe9, 0x41, 0x91, 0x8a, 0x79, 0x50, 0xf0, 0x6c, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x68, 0xc6, 0x1d, 0x3c, 0x87, 0xe7, 0x74, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x68, 0x86, 0x64, 0x60, 0x34, 0xc3, 0x7c, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x68, 0x86, 0x68, 0x60, 0x34, 0x43, 0x7a, 0x50, 0x8a, 0x6a, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa3, 0x19, 0xe2, 0x81, 0xd1, 0x0c, 0xab, 0x83, 0xa7, 0x7d, 0x9c, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa3, 0x19, 0x66, 0x03, 0xa3, 0x19, 0xd6, 0x1b, 0xde, 0xd6, 0xd9, 0xa0, 0x68, 0x3d, 0x19, 0xdc, 0x3d, 0x28, 0x78, 0x36, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x66, 0x33, 0x7e, 0x60, 0x36, 0x43, 0xba, 0xe1, 0x92, 0xda, 0xf0, 0xe0, 0xce, 0x1a, 0x14, 0x3c, 0x9b, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x9b, 0x21, 0x1b, 0x98, 0xcd, 0x10, 0x1e, 0x1c, 0x3f, 0xf9, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe1, 0x8c, 0x3b, 0x78, 0x0e, 0xcf, 0xe9, 0x86, 0x4b, 0x6a, 0x83, 0x82, 0x67, 0x73, 0x0d, 0x06, 0xa9, 0xd4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x0c, 0x67, 0x48, 0x06, 0x86, 0x33, 0x2c, 0x36, 0x5c, 0x52, 0x1b, 0x1e, 0xdc, 0x59, 0x83, 0x82, 0x67, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x86, 0x33, 0xa4, 0x03, 0xc3, 0x19, 0x06, 0x1b, 0xde, 0xd6, 0x19, 0x9c, 0x3d, 0x28, 0x78, 0x36, 0x6b, 0xd6, 0x60, 0x5c, 0xf6, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x06, 0xe7, 0xfa, 0x9c, 0x01, 0xf8, 0xaa, 0x73, 0x4b, 0x33, 0xcb, 0x03, 0xa1, 0xbb, 0x7b, 0x03, 0x79, 0x93, 0x23, 0x2b, 0x93, 0x2b, 0x23, 0x03, 0x69, 0x0b, 0x83, 0x9b, 0x57, 0x02, 0xd0, 0xcb, 0x45, 0x0c, 0x84, 0x2e, 0x6c, 0xad, 0x6c, 0x0e, 0x04, 0x4e, 0xae, 0x6c, 0xac, 0x8c, 0xac, 0xcc, 0x6d, 0xac, 0x0c, 0xe4, 0xcd, 0xae, 0x4c, 0x0e, 0xc4, 0x25, 0x0c, 0x24, 0xcd, 0x0c, 0x64, 0xad, 0x2c, 0x6f, 0x0e, 0xe4, 0xcd, 0xae, 0x4c, 0x8e, 0x2d, 0x0c, 0xce, 0xd5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xcc, 0x77, 0xdc, 0xc0, 0xb0, 0x87, 0x8a, 0x0d, 0x8f, 0x8f, 0x6c, 0x30, 0x2e, 0xfb, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xc0, 0xe3, 0x0e, 0xde, 0xcf, 0x80, 0xba, 0xe1, 0x17, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xc0, 0x43, 0x32, 0x30, 0xe0, 0xa1, 0x66, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x80, 0x87, 0x68, 0x60, 0xc0, 0xc3, 0x6e, 0xc3, 0x9f, 0x4b, 0x83, 0x87, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xe0, 0x21, 0x3c, 0x78, 0x56, 0x05, 0xea, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x0c, 0x78, 0x48, 0x07, 0x06, 0x3c, 0x2c, 0x0e, 0x02, 0x47, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0xf0, 0x30, 0x19, 0x18, 0xf0, 0x30, 0x3b, 0x08, 0x6c, 0x88, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x01, 0x0f, 0xc3, 0x81, 0x01, 0x0f, 0x2d, 0x1b, 0xfe, 0x5c, 0x1a, 0x5c, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x01, 0x0f, 0xd3, 0x83, 0x07, 0x81, 0xa0, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x80, 0x87, 0xed, 0xc0, 0x80, 0x87, 0xfd, 0x41, 0xe0, 0xe8, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x03, 0x1e, 0x0a, 0x06, 0x06, 0x3c, 0x94, 0x1c, 0x04, 0x36, 0x44, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x84, 0xc7, 0x1d, 0xbc, 0x9f, 0x01, 0x75, 0xc3, 0x5f, 0x34, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x84, 0x87, 0x64, 0x60, 0xc2, 0xc3, 0x68, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x26, 0x3c, 0x44, 0x03, 0x13, 0x1e, 0xe2, 0x83, 0xc0, 0xd1, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x26, 0x3c, 0xe4, 0x03, 0x13, 0x1e, 0x36, 0x07, 0x81, 0x0d, 0xd1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x8c, 0x78, 0xdc, 0xc1, 0xfb, 0x19, 0x50, 0x37, 0x28, 0xe1, 0x31, 0x37, 0x7c, 0x1e, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x8c, 0x78, 0x08, 0x07, 0x46, 0x3c, 0xa4, 0x87, 0xa7, 0x75, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xc6, 0xe3, 0x0e, 0xde, 0xcf, 0x80, 0xba, 0x41, 0x09, 0x8f, 0xb9, 0xe1, 0xc1, 0x9d, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xc6, 0x43, 0x38, 0x30, 0xe3, 0x21, 0x3d, 0xbc, 0x17, 0xb4, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x43, 0x1e, 0x77, 0xf0, 0x7e, 0x06, 0xd4, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x43, 0x1e, 0x92, 0x81, 0x21, 0x0f, 0xdb, 0x0d, 0xff, 0xe6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x43, 0x1e, 0xb2, 0x81, 0x21, 0x0f, 0x93, 0x83, 0xa7, 0x7d, 0x9c, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x90, 0x87, 0xcd, 0xc0, 0x90, 0x87, 0xe9, 0x86, 0xb7, 0x75, 0x36, 0x28, 0x5a, 0x4f, 0x0e, 0x8e, 0xfe, 0x36, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x94, 0xc7, 0x0f, 0x4c, 0x79, 0xa8, 0xdc, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xe5, 0x21, 0x18, 0x98, 0xf2, 0x90, 0x6e, 0xf8, 0xdc, 0x65, 0x70, 0x77, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xa6, 0x3c, 0x44, 0x07, 0x8f, 0x7a, 0x42, 0x3d, 0x38, 0xdf, 0xdb, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x53, 0x1e, 0xe2, 0x81, 0x29, 0x0f, 0xfb, 0x0d, 0x9f, 0xbb, 0x0c, 0xce, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x94, 0x87, 0xc1, 0xc1, 0xc3, 0xa9, 0x50, 0x37, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x3c, 0xb8, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x53, 0x1e, 0x46, 0x03, 0x53, 0x1e, 0x76, 0x07, 0xa5, 0xb6, 0xe7, 0x1a, 0x3e, 0x0f, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x29, 0x0f, 0xdb, 0x81, 0x29, 0x0f, 0xf3, 0x83, 0xa3, 0xdf, 0x4d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x94, 0x87, 0x82, 0x81, 0x29, 0x0f, 0x8d, 0x1b, 0x3e, 0x77, 0x19, 0x5c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x29, 0x0f, 0x15, 0x07, 0x0f, 0x08, 0x43, 0xdd, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0xf0, 0xe0, 0xce, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x4c, 0x79, 0xa8, 0x19, 0x98, 0xf2, 0xd0, 0x74, 0x50, 0xca, 0x66, 0xae, 0xe1, 0xf3, 0xa0, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0xf2, 0xd0, 0x36, 0x30, 0xe5, 0xa1, 0xf0, 0xe0, 0x34, 0x7b, 0x53, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xe6, 0x71, 0x07, 0xef, 0x67, 0x40, 0xdd, 0xf0, 0x41, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xe6, 0x21, 0x19, 0x18, 0xf3, 0x30, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xe6, 0x21, 0x1a, 0x18, 0xf3, 0x90, 0x1e, 0x94, 0xa2, 0x9a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x98, 0x87, 0x78, 0x60, 0xcc, 0xc3, 0xea, 0xe0, 0x69, 0x1f, 0xa7, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x98, 0x87, 0xd9, 0xc0, 0x98, 0x87, 0xf5, 0xc1, 0x3b, 0x93, 0x50, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xe6, 0x3c, 0x7e, 0x60, 0xd2, 0x43, 0xc9, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x39, 0x0f, 0xd9, 0xc0, 0x9c, 0x87, 0x92, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x73, 0x1e, 0xc2, 0x81, 0x39, 0x0f, 0x9b, 0x83, 0xf7, 0x63, 0x9e, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x73, 0x1e, 0x46, 0x03, 0x73, 0x1e, 0xb6, 0x07, 0xef, 0x4c, 0x42, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xe6, 0x3c, 0x8c, 0x07, 0xe6, 0x3c, 0x74, 0x1c, 0x3c, 0xed, 0xe3, 0xb4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xd0, 0x43, 0x32, 0x30, 0xe8, 0xa1, 0x66, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0xd2, 0x4f, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x06, 0x3d, 0xe4, 0x03, 0x83, 0x1e, 0xe6, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x1e, 0xdc, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x41, 0x0f, 0x9b, 0x81, 0x41, 0x0f, 0xb3, 0x83, 0x52, 0xdb, 0x73, 0x0d, 0x0e, 0xba, 0x37, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xe8, 0x61, 0x3c, 0x30, 0xe8, 0x61, 0x7d, 0x50, 0x50, 0x64, 0xb6, 0x86, 0xcf, 0x83, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xd0, 0x43, 0xc5, 0xc0, 0xa0, 0x87, 0x96, 0x83, 0xd3, 0xec, 0x4d, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xe9, 0xf1, 0x07, 0xcf, 0xd4, 0x43, 0xdd, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0xa0, 0x48, 0xca, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x49, 0x0f, 0xe9, 0xc0, 0xa4, 0x87, 0xf1, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x86, 0x07, 0x77, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xd2, 0xc3, 0x62, 0x60, 0xd2, 0xc3, 0xe8, 0xa0, 0x94, 0xcd, 0x5c, 0x83, 0x53, 0xe1, 0xcd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x4c, 0x7a, 0x98, 0x0e, 0x4c, 0x7a, 0xd8, 0x1e, 0x14, 0x14, 0x99, 0xad, 0xe1, 0xf3, 0xa0, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0xf4, 0x50, 0x30, 0x30, 0xe9, 0xa1, 0xe3, 0xe0, 0xe8, 0x77, 0xd3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x8c, 0x7a, 0xdc, 0xc1, 0xfb, 0x19, 0x50, 0x37, 0x7c, 0x90, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x8c, 0x7a, 0x48, 0x06, 0x46, 0x3d, 0x54, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0xf5, 0x10, 0x0d, 0x8c, 0x7a, 0x58, 0x1c, 0xbc, 0x1f, 0xf3, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0xf5, 0x30, 0x19, 0x18, 0xf5, 0xb0, 0x3c, 0x78, 0xda, 0xc7, 0xe9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xea, 0x61, 0x3a, 0x30, 0xea, 0xa1, 0xe1, 0xe0, 0x9d, 0x49, 0xa8, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb3, 0x1e, 0x3f, 0x30, 0xeb, 0xa1, 0x64, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x53, 0xe1, 0xcd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xcc, 0x7a, 0x48, 0x07, 0x66, 0x3d, 0x8c, 0x37, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x7c, 0x1e, 0xb4, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb3, 0x1e, 0x16, 0x03, 0xb3, 0x1e, 0x46, 0x07, 0x47, 0xbf, 0x9b, 0x35, 0x28, 0x92, 0x32, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xd6, 0xc3, 0x74, 0x60, 0xd6, 0xc3, 0xf6, 0xa0, 0xa0, 0xc8, 0x6c, 0x0d, 0x0f, 0xee, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xac, 0x87, 0x82, 0x81, 0x59, 0x0f, 0x1d, 0x07, 0xa5, 0x6c, 0x66, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xec, 0x71, 0x07, 0xef, 0x67, 0x40, 0xdd, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0xe0, 0xa0, 0x7b, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc3, 0x1e, 0xb2, 0x81, 0x61, 0x0f, 0xd3, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x9f, 0x07, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb0, 0x87, 0x7c, 0x60, 0xd8, 0xc3, 0xe4, 0xe0, 0x34, 0x7b, 0xb3, 0x06, 0xa5, 0x9f, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x0c, 0x7b, 0x18, 0x0e, 0x0c, 0x7b, 0x58, 0x1e, 0x14, 0x14, 0x99, 0xad, 0xe1, 0xc1, 0x9d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0xf6, 0x30, 0x1f, 0x18, 0xf6, 0xd0, 0x70, 0x50, 0x6a, 0x7b, 0x76, 0x38, 0xc5, 0x5a, 0x83, 0x42, 0x43, 0x60, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x36, 0x38, 0x88, 0xf7, 0x0c, 0x80, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x20, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x41, 0x4e, 0x44, 0x20, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0xb8, 0x1e, 0x37, 0x10, 0x80, 0x50, 0xb1, 0xe1, 0xf1, 0x91, 0x0d, 0x0a, 0x0d, 0x81, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x7c, 0x8f, 0x3b, 0x78, 0x45, 0x37, 0xea, 0x86, 0x5f, 0x94, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x83, 0x37, 0x0b, 0x90, 0x0c, 0xbe, 0x87, 0x96, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x06, 0xcf, 0x2a, 0x20, 0x19, 0x7c, 0x0f, 0xbb, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xe0, 0x7b, 0x08, 0x0f, 0x1e, 0x57, 0x8e, 0xba, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x82, 0xef, 0x21, 0x1d, 0x7c, 0x0f, 0x8b, 0x83, 0xc0, 0xd1, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xdf, 0xc3, 0x64, 0xf0, 0x3d, 0xcc, 0x0e, 0x02, 0x1b, 0xa2, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xf0, 0x3d, 0x0c, 0x07, 0xdf, 0x43, 0xc9, 0x86, 0x3f, 0x97, 0x06, 0x17, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xf0, 0x3d, 0x4c, 0x0f, 0x9e, 0xfe, 0x8e, 0xba, 0x41, 0x38, 0x8d, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x82, 0xef, 0x61, 0x3d, 0xf8, 0x1e, 0x1a, 0x0e, 0x02, 0x1b, 0x62, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xdf, 0x43, 0xc5, 0xe0, 0x7b, 0xe8, 0x38, 0x7c, 0xb0, 0xda, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xce, 0xc7, 0x1d, 0xbc, 0xa2, 0x1b, 0x75, 0xc3, 0x5f, 0x34, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xe0, 0x7c, 0x48, 0x06, 0xe7, 0x43, 0x74, 0xf8, 0x60, 0x75, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xef, 0xe3, 0x0e, 0x5e, 0xd1, 0x8d, 0xba, 0xe1, 0x2b, 0x9c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xdc, 0x8f, 0x3b, 0x78, 0x45, 0x37, 0xea, 0x06, 0x25, 0x3c, 0xe6, 0x86, 0x07, 0x77, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0xc1, 0xff, 0xf8, 0xc1, 0xff, 0x10, 0x1c, 0x14, 0x39, 0xad, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x10, 0x80, 0xb8, 0x83, 0x57, 0x74, 0xa3, 0x6e, 0x78, 0x84, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x08, 0x40, 0x08, 0x06, 0x02, 0x10, 0xf2, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x01, 0x08, 0xc9, 0x40, 0x00, 0x42, 0x74, 0x78, 0x2f, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x08, 0x40, 0xc8, 0x06, 0x02, 0x10, 0xe2, 0x83, 0x92, 0x19, 0xb3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x00, 0x61, 0x30, 0x10, 0x80, 0x30, 0xdc, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0xf0, 0xe0, 0xce, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x04, 0x20, 0x8c, 0x06, 0x02, 0x10, 0x76, 0x07, 0xa5, 0xb6, 0x67, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x00, 0xc2, 0x72, 0x20, 0x00, 0xa1, 0x61, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0xc3, 0x83, 0x3b, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x10, 0x80, 0xb0, 0x1e, 0x08, 0x40, 0x28, 0x38, 0x28, 0x65, 0x33, 0x6b, 0x05, 0x3c, 0x38, 0xb9, 0x7c, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0x32, 0xf0, 0xe0, 0xe4, 0xf2, 0x06, 0xc0, 0x0f, 0x38, 0xb9, 0x37, 0xb2, 0xba, 0xb1, 0x32, 0x10, 0xb4, 0xb2, 0x30, 0x32, 0x10, 0x14, 0xb6, 0x32, 0x33, 0xba, 0xb6, 0xb7, 0x39, 0x3a, 0x90, 0x34, 0xba, 0xb2, 0xb6, 0x14, 0x90, 0x37, 0x39, 0x10, 0xb7, 0x3a, 0x36, 0xb6, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0xbd, 0xb8, 0x81, 0x09, 0x0c, 0xe9, 0x86, 0xc7, 0x47, 0x06, 0x3c, 0x38, 0xb9, 0x7c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x86, 0x2f, 0xee, 0xe0, 0x41, 0x25, 0xa9, 0x1b, 0x7e, 0x51, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x86, 0x2f, 0x24, 0x03, 0xc3, 0x17, 0x66, 0x1b, 0xfe, 0x5c, 0x1a, 0x3c, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe1, 0x0b, 0xd9, 0xc1, 0x0b, 0x56, 0x52, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xf8, 0x42, 0x38, 0x30, 0x7c, 0x61, 0x70, 0x10, 0x38, 0x7a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xf0, 0x85, 0xc5, 0xc0, 0xf0, 0x85, 0xd5, 0x41, 0x60, 0x43, 0xb4, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd3, 0x17, 0x77, 0xf0, 0xa0, 0x92, 0xd4, 0x0d, 0x7f, 0xd1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd3, 0x17, 0x92, 0x81, 0xe9, 0x0b, 0xa3, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0xbe, 0x10, 0x0d, 0x4c, 0x5f, 0x88, 0x0f, 0xca, 0x26, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xfa, 0x42, 0x3e, 0x30, 0x7d, 0x61, 0x73, 0x10, 0xd8, 0x10, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xf8, 0xc5, 0x1d, 0x3c, 0xa8, 0x24, 0x75, 0x83, 0x12, 0x1e, 0x73, 0xc3, 0x83, 0x3b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xf8, 0x85, 0x78, 0x60, 0xfc, 0x42, 0x7e, 0x50, 0x50, 0x64, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xfc, 0xc5, 0x1d, 0x3c, 0xa8, 0x24, 0x75, 0xc3, 0x57, 0x38, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x80, 0x71, 0x07, 0x0f, 0x2a, 0x49, 0xdd, 0xa0, 0x84, 0xc7, 0xdc, 0xa0, 0xf4, 0xd3, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x06, 0x30, 0xc4, 0x03, 0x03, 0x18, 0x26, 0x1b, 0x1c, 0xc3, 0x0d, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x00, 0x43, 0x7e, 0xf0, 0x02, 0xa6, 0xd4, 0x83, 0x92, 0x19, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x26, 0x30, 0xee, 0xe0, 0x41, 0x25, 0xa9, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x1e, 0xdc, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x09, 0x0c, 0xc9, 0xc0, 0x04, 0x86, 0xf0, 0xa0, 0xd4, 0xf6, 0x6c, 0x35, 0x28, 0x3c, 0x46, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x83, 0x42, 0x69, 0x74, 0x00, 0x9e, 0xe5, 0xca, 0xda, 0xde, 0xec, 0xca, 0x40, 0xe4, 0xde, 0xde, 0xe8, 0x76, 0x40, 0xcc, 0xde, 0xe4, 0x40, 0xd2, 0xdc, 0xe8, 0xca, 0xe4, 0xdc, 0xc2, 0xd8, 0x40, 0xea, 0xe6, 0xca, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xb8, 0xe2, 0x06, 0xe6, 0x2c, 0x0c, 0x37, 0x3c, 0x3e, 0xb2, 0x41, 0xe1, 0x31, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd3, 0x15, 0x77, 0xf0, 0x94, 0xae, 0xd4, 0x0d, 0xbf, 0x28, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd3, 0x15, 0x92, 0x81, 0xe9, 0x0a, 0xb3, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x74, 0x85, 0xec, 0xe0, 0xe1, 0x62, 0xa9, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x5d, 0x21, 0x1c, 0x98, 0xae, 0x30, 0x38, 0x08, 0x1c, 0xbd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xba, 0xc2, 0x62, 0x60, 0xba, 0xc2, 0xea, 0x20, 0xb0, 0x21, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf1, 0x8a, 0x3b, 0x78, 0x4a, 0x57, 0xea, 0x86, 0xbf, 0x68, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf1, 0x0a, 0xc9, 0xc0, 0x78, 0x85, 0xd1, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x8c, 0x57, 0x88, 0x06, 0xc6, 0x2b, 0xc4, 0x07, 0x81, 0xa3, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x8c, 0x57, 0xc8, 0x07, 0xc6, 0x2b, 0x6c, 0x0e, 0x02, 0x1b, 0xa2, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0xaf, 0xb8, 0x83, 0xa7, 0x74, 0xa5, 0x6e, 0x50, 0xf0, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf3, 0x15, 0x92, 0x81, 0xf9, 0x0a, 0x83, 0x0d, 0x8a, 0x49, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xbe, 0x42, 0x38, 0x30, 0x5f, 0x21, 0x3d, 0x28, 0x52, 0x31, 0x0f, 0x0f, 0xee, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x88, 0xc5, 0x1d, 0x3c, 0xa5, 0x2b, 0x75, 0xc3, 0x57, 0x38, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x62, 0x21, 0x39, 0x78, 0x4a, 0x57, 0xea, 0x86, 0xbf, 0x68, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x11, 0x0b, 0xe9, 0xc0, 0x88, 0x85, 0xe1, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x8c, 0x58, 0x88, 0x07, 0x46, 0x2c, 0x4c, 0x0e, 0x02, 0x47, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0xb1, 0xb0, 0x19, 0x18, 0xb1, 0xb0, 0x3b, 0x08, 0x6c, 0x88, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xc6, 0xe2, 0x0e, 0x9e, 0xd2, 0x95, 0xba, 0x41, 0x09, 0x8f, 0xb9, 0x41, 0xe9, 0xa7, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xcc, 0x58, 0x88, 0x07, 0x66, 0x2c, 0x2c, 0x0e, 0x4a, 0xd9, 0xcc, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0xb2, 0xb8, 0x83, 0xa7, 0x74, 0xa5, 0x6e, 0x50, 0xc2, 0x63, 0x6e, 0x50, 0x24, 0x65, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x43, 0x16, 0xe2, 0x81, 0x21, 0x0b, 0x8b, 0x83, 0x52, 0xdb, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xa6, 0x2c, 0xee, 0xe0, 0x29, 0x5d, 0xa9, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xa6, 0x2c, 0x24, 0x03, 0x53, 0x16, 0x2a, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x4c, 0x59, 0x88, 0x06, 0xa6, 0x2c, 0xa4, 0x07, 0xa5, 0xa8, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x65, 0x21, 0x1e, 0x98, 0xb2, 0xb0, 0xdb, 0xf0, 0xb6, 0xce, 0x06, 0x45, 0xeb, 0xc9, 0x41, 0xf1, 0xad, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x4c, 0x59, 0x18, 0x0e, 0x4c, 0x59, 0x68, 0xd8, 0xf0, 0xb6, 0xce, 0x06, 0x45, 0xeb, 0xc9, 0x41, 0x71, 0xc4, 0xd9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x66, 0xf1, 0x03, 0x63, 0x16, 0xa6, 0x1b, 0x2e, 0xa9, 0x0d, 0x4a, 0x3f, 0xcd, 0x35, 0x28, 0x78, 0x36, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xcc, 0x42, 0x3a, 0x30, 0x66, 0x61, 0xb9, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0x41, 0xe9, 0xa7, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x63, 0x16, 0x36, 0x03, 0x63, 0x16, 0x86, 0x07, 0x05, 0xe5, 0x66, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x9c, 0xc5, 0x1d, 0x3c, 0xa5, 0x2b, 0x75, 0xc3, 0x25, 0xb5, 0x41, 0x91, 0x94, 0xb9, 0x06, 0x83, 0x54, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xe6, 0x2c, 0x64, 0x03, 0x73, 0x16, 0x76, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x14, 0x49, 0x99, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x67, 0x61, 0x31, 0x30, 0x67, 0x61, 0x76, 0x50, 0x08, 0x74, 0xd6, 0x6a, 0xb0, 0xa4, 0x00, 0x7e, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x60, 0x49, 0x01, 0x7c, 0x03, 0xe0, 0x33, 0x5d, 0x98, 0x58, 0x1d, 0x5b, 0x18, 0x5d, 0x19, 0x48, 0x18, 0xc8, 0x5c, 0x9d, 0xd8, 0x5c, 0x19, 0x1d, 0x48, 0x19, 0xde, 0x18, 0x5b, 0x1d, 0x59, 0x9a, 0xdb, 0x19, 0xc8, 0x1c, 0x5d, 0x98, 0x1c, 0x1d, 0x48, 0x19, 0x5b, 0x59, 0x5b, 0x99, 0x1b, 0x1d, 0xc8, 0x5d, 0x1a, 0x1d, 0x1a, 0x48, 0x18, 0x48, 0x5b, 0x18, 0x1e, 0xc8, 0xd8, 0x5b, 0x9d, 0x1b, 0xdd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x8c, 0x6c, 0xdc, 0xc0, 0x3c, 0xc7, 0x6f, 0x78, 0x7c, 0x64, 0x83, 0x25, 0x05, 0xf0, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xb3, 0x71, 0x07, 0xef, 0x31, 0x4e, 0xdd, 0xf0, 0x8b, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xb3, 0x21, 0x19, 0x98, 0xd9, 0xd0, 0xb4, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x66, 0x43, 0x34, 0x30, 0xb3, 0x61, 0xb7, 0xe1, 0xcf, 0xa5, 0xc1, 0xc3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0xd9, 0x10, 0x1e, 0xbc, 0xd2, 0x39, 0x75, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x66, 0x36, 0xa4, 0x03, 0x33, 0x1b, 0x16, 0x07, 0x81, 0xa3, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xcc, 0x6c, 0x98, 0x0c, 0xcc, 0x6c, 0x98, 0x1d, 0x04, 0x36, 0x44, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xcc, 0x86, 0xe1, 0xc0, 0xcc, 0x86, 0x92, 0x0d, 0x7f, 0x2e, 0x0d, 0x2e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xcc, 0x86, 0xe9, 0xc1, 0xfb, 0xb2, 0x53, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x66, 0xc3, 0x76, 0x60, 0x66, 0xc3, 0xfe, 0xa0, 0x6c, 0xc2, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x66, 0x36, 0x14, 0x0c, 0xcc, 0x6c, 0xe8, 0x38, 0x38, 0xf1, 0x7b, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xcc, 0x6c, 0x68, 0x19, 0x98, 0xd9, 0x50, 0xb4, 0xe1, 0xcf, 0xa5, 0xc1, 0xc7, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0xd9, 0xd0, 0x73, 0xf0, 0x48, 0xf2, 0xd4, 0xc3, 0x0f, 0x35, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xd0, 0xc6, 0x1d, 0xbc, 0xc7, 0x38, 0x75, 0xc3, 0x5f, 0x34, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xd0, 0x86, 0x64, 0x60, 0x68, 0xc3, 0x68, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x86, 0x36, 0x44, 0x03, 0x43, 0x1b, 0xe2, 0x83, 0x90, 0x32, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x86, 0x36, 0xe4, 0x03, 0x43, 0x1b, 0x36, 0x07, 0x81, 0x0d, 0xd1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x4c, 0x6d, 0xdc, 0xc1, 0x7b, 0x8c, 0x53, 0x37, 0x38, 0x60, 0xd1, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x63, 0x1b, 0x37, 0x30, 0xb6, 0xa1, 0x6b, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xd8, 0xc6, 0x0e, 0x8c, 0x6d, 0x88, 0x0e, 0x0a, 0x8b, 0xe5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x6c, 0x43, 0x36, 0x30, 0xb6, 0xa1, 0x6a, 0xc3, 0x83, 0x92, 0x1b, 0x94, 0x13, 0xd0, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xb6, 0x21, 0x3d, 0x78, 0x25, 0x7f, 0xea, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb1, 0x0d, 0xf1, 0xc0, 0xd8, 0x86, 0xd9, 0x86, 0xb7, 0x75, 0x06, 0xf8, 0xe9, 0xc2, 0xc4, 0xea, 0xd8, 0xc2, 0xe8, 0xca, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb1, 0x0d, 0xbb, 0x81, 0xb1, 0x0d, 0x2d, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xc6, 0x36, 0x0c, 0x07, 0xc6, 0x36, 0x14, 0x6c, 0x78, 0x5b, 0x67, 0x80, 0x9f, 0xac, 0x8c, 0xad, 0x65, 0x0e, 0x2e, 0xcc, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0xdb, 0xd0, 0x30, 0x30, 0xb6, 0xa1, 0xe2, 0xf0, 0xb4, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xb6, 0xa1, 0x63, 0x60, 0x6c, 0x43, 0xc9, 0xe1, 0xbd, 0xa0, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb1, 0x0d, 0x35, 0x03, 0x63, 0x1b, 0x7a, 0x0e, 0xef, 0x05, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x63, 0x1b, 0x8a, 0x06, 0xc6, 0x36, 0x34, 0x1d, 0x9e, 0xde, 0xa9, 0x65, 0xd6, 0xe0, 0xe1, 0x09, 0xaa, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xc6, 0xf1, 0x03, 0xe3, 0x1c, 0x46, 0x1b, 0x7e, 0x51, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xc6, 0x38, 0x64, 0x03, 0x63, 0x1c, 0x7a, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x8c, 0x71, 0x08, 0x07, 0xc6, 0x38, 0x2c, 0x37, 0xfc, 0xb9, 0x34, 0x78, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x63, 0x1c, 0xe2, 0x83, 0xa7, 0x75, 0xa8, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x18, 0x87, 0x7c, 0x60, 0x8c, 0xc3, 0xe6, 0x20, 0x70, 0xf4, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x31, 0x0e, 0xa3, 0x81, 0x31, 0x0e, 0xc3, 0x83, 0xc0, 0x86, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0xe3, 0x30, 0x1d, 0x18, 0xe3, 0x50, 0xb3, 0xe1, 0xcf, 0xa5, 0xc1, 0xc5, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0xe3, 0x30, 0x3e, 0x78, 0x14, 0x8a, 0xea, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x8c, 0x71, 0x58, 0x0f, 0x8c, 0x71, 0x68, 0x38, 0x28, 0x9b, 0x30, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x31, 0x0e, 0x15, 0x03, 0x63, 0x1c, 0x5a, 0x0e, 0x4e, 0xfc, 0x1e, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x73, 0x1c, 0x7f, 0xf0, 0x12, 0x0c, 0xd5, 0x0d, 0x7f, 0xd1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x73, 0x1c, 0xb2, 0x81, 0x39, 0x0e, 0xb3, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0xe3, 0x10, 0x0e, 0xcc, 0x71, 0x18, 0x1c, 0x04, 0x8e, 0xde, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xc7, 0x61, 0x31, 0x30, 0xc7, 0x61, 0x75, 0x10, 0xd8, 0x10, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x20, 0xc7, 0x1f, 0xbc, 0x04, 0x43, 0x75, 0x83, 0x12, 0x1e, 0x73, 0xc3, 0x83, 0x3b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x20, 0x87, 0x78, 0x60, 0x90, 0x43, 0x7e, 0x78, 0x5a, 0x67, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x26, 0x39, 0xfe, 0xe0, 0x25, 0x18, 0xaa, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x3e, 0x0f, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x26, 0x39, 0xc4, 0x03, 0x93, 0x1c, 0xf2, 0xc3, 0xd3, 0x3a, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xca, 0xf1, 0x07, 0x2f, 0xc1, 0x50, 0xdd, 0xf0, 0x41, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xca, 0x21, 0x1b, 0x18, 0xe5, 0xb0, 0xdc, 0xf0, 0x6f, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xca, 0x21, 0x1d, 0x18, 0xe5, 0x30, 0x3a, 0x78, 0xda, 0xc7, 0xe9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x8c, 0x72, 0x58, 0x0d, 0x8c, 0x72, 0x18, 0x1e, 0x9c, 0x4a, 0x0a, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x59, 0x0e, 0xc9, 0xc0, 0x2c, 0x87, 0xf0, 0xa0, 0x94, 0xcd, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x61, 0x8e, 0x3f, 0x78, 0x09, 0x86, 0xea, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x61, 0x0e, 0xd9, 0xc0, 0x30, 0x87, 0x82, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc3, 0x1c, 0xc2, 0x81, 0x61, 0x0e, 0x9b, 0x83, 0xf7, 0x63, 0x9e, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc3, 0x1c, 0x46, 0x03, 0xc3, 0x1c, 0xb6, 0x07, 0x4f, 0xfb, 0x38, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x86, 0x39, 0x8c, 0x07, 0x86, 0x39, 0xec, 0x0f, 0x4e, 0x25, 0x05, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd3, 0x1c, 0x92, 0x81, 0x69, 0x0e, 0x8b, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x0f, 0xee, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x34, 0x87, 0x74, 0x60, 0x9a, 0xc3, 0xe0, 0xa0, 0x94, 0xcd, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xc6, 0x39, 0xfe, 0xe0, 0x25, 0x18, 0xaa, 0x1b, 0x2e, 0xa9, 0x0d, 0x0f, 0xee, 0xac, 0xc1, 0x20, 0x95, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x71, 0x0e, 0xd9, 0xc0, 0x38, 0x87, 0xcd, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x86, 0x07, 0x77, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x9c, 0x43, 0x3e, 0x30, 0xce, 0x61, 0x72, 0x50, 0x6a, 0x7b, 0xd6, 0x6a, 0xf0, 0xa8, 0x01, 0xd5, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0xdc, 0xf8, 0x81, 0x19, 0x0e, 0xf3, 0x0d, 0xbf, 0x28, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x93, 0x1b, 0xb2, 0x81, 0xc9, 0x0d, 0x5d, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x26, 0x37, 0x84, 0x03, 0x93, 0x1b, 0x96, 0x1b, 0xfe, 0x5c, 0x1a, 0x3c, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc9, 0x0d, 0xf1, 0xc1, 0x0b, 0xf3, 0x54, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x72, 0x43, 0x3e, 0x30, 0xb9, 0x61, 0x73, 0x10, 0x38, 0x7a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xe4, 0x86, 0xd1, 0xc0, 0xe4, 0x86, 0xe1, 0x41, 0x60, 0x43, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x4c, 0x6e, 0x98, 0x0e, 0x4c, 0x6e, 0xa8, 0xd9, 0xf0, 0xe7, 0xd2, 0xe0, 0xe2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x4c, 0x6e, 0x18, 0x1f, 0xbc, 0x8d, 0x50, 0x75, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x26, 0x37, 0xac, 0x07, 0x26, 0x37, 0x34, 0x1c, 0x94, 0x4d, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xe4, 0x86, 0x8a, 0x81, 0xc9, 0x0d, 0x2d, 0x07, 0x27, 0x7e, 0x8f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc9, 0x0d, 0x3d, 0x03, 0x93, 0x1b, 0xaa, 0x36, 0xfc, 0xb9, 0x34, 0xf8, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x93, 0x1b, 0x9a, 0x0e, 0x5e, 0xf8, 0xa8, 0x7a, 0xf8, 0xa1, 0xa6, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0xdd, 0xf8, 0x83, 0x07, 0xd1, 0xa9, 0x6e, 0xf8, 0x8b, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0xdd, 0x90, 0x0d, 0x8c, 0x6e, 0x98, 0x6f, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0xdd, 0x10, 0x0e, 0x8c, 0x6e, 0xc8, 0x37, 0xfc, 0xb9, 0x34, 0x38, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa3, 0x1b, 0xe2, 0x83, 0x37, 0x69, 0xaa, 0x1e, 0x7e, 0xa8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x46, 0x37, 0x0c, 0x06, 0x46, 0x37, 0xac, 0x37, 0xfc, 0xb9, 0x34, 0x78, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa3, 0x1b, 0x26, 0x07, 0x4f, 0xfe, 0x54, 0xdd, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd1, 0x0d, 0x9b, 0x81, 0xd1, 0x0d, 0xbb, 0x83, 0x90, 0x32, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x46, 0x37, 0x0c, 0x07, 0x46, 0x37, 0x8c, 0x0f, 0x02, 0x1b, 0xa2, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x76, 0xe3, 0x0f, 0x1e, 0x44, 0xa7, 0xba, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x76, 0x43, 0x36, 0x30, 0xbb, 0x61, 0xbd, 0xe1, 0x11, 0xd6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x76, 0x43, 0x3c, 0x30, 0xbb, 0x61, 0xb5, 0x41, 0x31, 0x89, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xcc, 0x6e, 0x58, 0x0c, 0xcc, 0x6e, 0x98, 0x1c, 0x84, 0xe0, 0xc3, 0xe1, 0xf3, 0xa0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x76, 0xc3, 0x6c, 0x60, 0x76, 0xc3, 0x78, 0xc3, 0xbf, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xec, 0x86, 0xe1, 0xc0, 0xec, 0x86, 0xe5, 0xe1, 0xe9, 0x9d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0xdd, 0x30, 0x1d, 0x98, 0xdd, 0xb0, 0x3d, 0x3c, 0x78, 0xd3, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xbc, 0x21, 0x19, 0x18, 0xde, 0x10, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0xde, 0x10, 0x0d, 0x0c, 0x6f, 0xc8, 0x0e, 0x0f, 0xde, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc3, 0x1b, 0xc2, 0x81, 0xe1, 0x0d, 0xe9, 0x41, 0x41, 0x91, 0xd9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x4c, 0x6f, 0xfc, 0xc1, 0x83, 0xe8, 0x54, 0x37, 0x28, 0xed, 0x2d, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe9, 0x0d, 0xd9, 0xc0, 0xf4, 0x86, 0x82, 0x0d, 0x7f, 0x2e, 0x0d, 0x6e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xf4, 0x86, 0xf4, 0xe0, 0x1d, 0xc8, 0xaa, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xa6, 0x37, 0xc4, 0x03, 0xd3, 0x1b, 0x16, 0x1b, 0xfe, 0x5c, 0x1a, 0x9c, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe9, 0x0d, 0x83, 0x83, 0x97, 0x36, 0xab, 0x1e, 0x7e, 0xa8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xa6, 0x37, 0x4c, 0x06, 0xa6, 0x37, 0xec, 0x37, 0xfc, 0xb9, 0x34, 0x78, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd3, 0x1b, 0x46, 0x07, 0x4f, 0x99, 0x56, 0xdd, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe9, 0x0d, 0xab, 0x81, 0xe9, 0x0d, 0xcb, 0x83, 0x90, 0x32, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xa6, 0x37, 0x4c, 0x07, 0xa6, 0x37, 0xcc, 0x0f, 0x02, 0x1b, 0xa2, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x7c, 0xe3, 0x0f, 0x1e, 0x44, 0xa7, 0xba, 0xe1, 0x2b, 0x9c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0xdf, 0x90, 0x1d, 0x3c, 0x88, 0x4e, 0x75, 0xc3, 0xd7, 0x2f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xf8, 0x86, 0x7c, 0x60, 0x7c, 0xc3, 0xe0, 0xa0, 0x18, 0xa9, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf9, 0x8d, 0x3f, 0x78, 0x10, 0x9d, 0xea, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf9, 0x0d, 0xd9, 0xc0, 0xfc, 0x86, 0xfd, 0x86, 0x5f, 0xc9, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf9, 0x0d, 0xf1, 0xc0, 0xfc, 0x86, 0xd5, 0x06, 0xc5, 0x24, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xbf, 0x61, 0x31, 0x30, 0xbf, 0x61, 0x72, 0x10, 0x82, 0x0f, 0x87, 0x07, 0x77, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf9, 0x0d, 0xb3, 0x81, 0xf9, 0x0d, 0xf3, 0x0d, 0xff, 0xe6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf3, 0x1b, 0x86, 0x03, 0xf3, 0x1b, 0xb6, 0x1b, 0xde, 0xd6, 0x19, 0x9c, 0x3c, 0x08, 0xf0, 0xa0, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0xdf, 0x30, 0x1e, 0x98, 0xdf, 0xb0, 0x3e, 0x3c, 0xbd, 0xd3, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xbf, 0xa1, 0x61, 0x60, 0x7e, 0x43, 0xc5, 0x41, 0x31, 0x52, 0xbb, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x03, 0x1c, 0x7f, 0xf0, 0x20, 0x3a, 0xd5, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0x02, 0x3c, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0xe0, 0x10, 0x0f, 0x0c, 0x70, 0x98, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0x78, 0x70, 0x67, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x06, 0x38, 0x4c, 0x06, 0x06, 0x38, 0xac, 0x0e, 0x4a, 0x6d, 0xcf, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x82, 0xe3, 0x0f, 0x1e, 0x44, 0xa7, 0xba, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x82, 0x43, 0x36, 0x30, 0xc1, 0x61, 0xb3, 0xe1, 0xdf, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x82, 0x43, 0x3a, 0x30, 0xc1, 0x61, 0x70, 0xf0, 0x12, 0x7a, 0xd5, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0xe0, 0xb0, 0x18, 0x98, 0xe0, 0x30, 0x39, 0x3c, 0xbd, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x4c, 0x70, 0x58, 0x0d, 0x4c, 0x70, 0x98, 0x1d, 0x14, 0x23, 0xb5, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xc2, 0xf1, 0x07, 0x0f, 0xa2, 0x53, 0xdd, 0xa0, 0xe8, 0xd3, 0xdd, 0x20, 0xc0, 0x83, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x11, 0x0e, 0xf1, 0xc0, 0x08, 0x87, 0x82, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x23, 0x1c, 0xf2, 0x81, 0x11, 0x0e, 0xab, 0x0d, 0x1f, 0x47, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x08, 0x87, 0xc5, 0xc0, 0x08, 0x87, 0xd1, 0xc1, 0x4b, 0xe8, 0x55, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x11, 0x0e, 0xb3, 0x81, 0x11, 0x0e, 0xfb, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x23, 0x1c, 0x76, 0x03, 0x23, 0x1c, 0xa6, 0x07, 0x25, 0x33, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xc2, 0x61, 0x3b, 0x30, 0xc2, 0x61, 0xbe, 0xe1, 0x6d, 0x9d, 0xc1, 0xcb, 0x83, 0x00, 0x0f, 0xaa, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0xe1, 0xf8, 0x83, 0x07, 0xd1, 0xa9, 0x6e, 0xf8, 0x20, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0xe1, 0x10, 0x0d, 0xcc, 0x70, 0x98, 0x6c, 0xf8, 0x37, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0xe1, 0x10, 0x0e, 0xcc, 0x70, 0xc8, 0x0f, 0x5e, 0x42, 0xaf, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x33, 0x1c, 0x06, 0x03, 0x33, 0x1c, 0x16, 0x87, 0xa7, 0x77, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x19, 0x0e, 0x9b, 0x81, 0x19, 0x0e, 0xa3, 0x83, 0x62, 0xa4, 0x76, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x66, 0x38, 0xac, 0x06, 0x66, 0x38, 0xac, 0x37, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x3c, 0xb8, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x33, 0x1c, 0x96, 0x03, 0x33, 0x1c, 0xc6, 0x07, 0xa5, 0x6c, 0x66, 0x87, 0x53, 0xac, 0xc3, 0x29, 0xb6, 0x1a, 0x94, 0xa2, 0x03, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x41, 0xf9, 0xf2, 0x39, 0x00, 0xdf, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x2c, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xd3, 0x71, 0x03, 0x93, 0x1d, 0xf6, 0x1b, 0x1e, 0x1f, 0xd9, 0xa0, 0x14, 0x1d, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa1, 0x8e, 0x3b, 0x78, 0x19, 0xd0, 0xea, 0x86, 0x5f, 0x94, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa1, 0x0e, 0xc9, 0xc0, 0x50, 0x87, 0xd9, 0x86, 0x3f, 0x97, 0x06, 0x0f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xa8, 0x43, 0x76, 0xf0, 0x0e, 0xa3, 0xd5, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0xea, 0x10, 0x0e, 0x0c, 0x75, 0x18, 0x1c, 0x04, 0x8e, 0xde, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xd4, 0x61, 0x31, 0x30, 0xd4, 0x61, 0x75, 0x10, 0xd8, 0x10, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x54, 0xc7, 0x1d, 0xbc, 0x0c, 0x68, 0x75, 0xc3, 0x5f, 0x34, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x54, 0x87, 0x64, 0x60, 0xaa, 0xc3, 0x68, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xa6, 0x3a, 0x44, 0x03, 0x53, 0x1d, 0xe2, 0x83, 0x90, 0x32, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xa6, 0x3a, 0xe4, 0x03, 0x53, 0x1d, 0x36, 0x07, 0x81, 0x0d, 0xd1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x8c, 0x75, 0xdc, 0xc1, 0xcb, 0x80, 0x56, 0x37, 0x28, 0xed, 0x2d, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb1, 0x0e, 0xc9, 0xc0, 0x58, 0x87, 0xd9, 0x86, 0x3f, 0x97, 0x06, 0x17, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xac, 0x43, 0x76, 0xf0, 0x1e, 0xaf, 0xd5, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0xeb, 0x10, 0x0e, 0x8c, 0x75, 0x18, 0x1c, 0x84, 0x94, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xd6, 0x61, 0x31, 0x30, 0xd6, 0x61, 0x75, 0x10, 0xd8, 0x10, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x5c, 0xc7, 0x1d, 0xbc, 0x0c, 0x68, 0x75, 0xc3, 0x57, 0x38, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xd7, 0x21, 0x39, 0x78, 0x19, 0xd0, 0xea, 0x86, 0xaf, 0x5f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb9, 0x0e, 0xe9, 0xc0, 0x5c, 0x87, 0xf8, 0xf0, 0x5e, 0xd0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x0c, 0x76, 0xdc, 0xc1, 0xcb, 0x80, 0x56, 0x37, 0x28, 0xe1, 0x31, 0x37, 0x3c, 0xb8, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x0c, 0x76, 0x08, 0x07, 0x06, 0x3b, 0xa4, 0x87, 0xf7, 0x82, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xb2, 0xe3, 0x0e, 0x5e, 0x06, 0xb4, 0xba, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0xe1, 0xc1, 0x9d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0xec, 0x90, 0x0c, 0x4c, 0x76, 0x08, 0x0f, 0x4a, 0x6d, 0xcf, 0x35, 0x7c, 0x1e, 0xb4, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x93, 0x1d, 0x06, 0x03, 0x93, 0x1d, 0xe6, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x26, 0x3b, 0x2c, 0x06, 0x26, 0x3b, 0x8c, 0x0e, 0x4a, 0x66, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xb2, 0xc3, 0x6a, 0x60, 0xb2, 0xc3, 0x7a, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0xc3, 0x83, 0x3b, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xd9, 0x61, 0x39, 0x30, 0xd9, 0x61, 0x7c, 0x50, 0xca, 0x66, 0x56, 0x2b, 0xe0, 0x89, 0x85, 0xc1, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x81, 0x27, 0x16, 0x06, 0x37, 0x00, 0xdf, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x2c, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x10, 0xaa, 0xb8, 0x81, 0x80, 0x85, 0xfd, 0x86, 0xc7, 0x47, 0x06, 0x3c, 0xb1, 0x30, 0x78, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x62, 0x15, 0x77, 0xf0, 0x80, 0xc7, 0xd5, 0x0d, 0xbf, 0x28, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb1, 0x0a, 0xc9, 0x40, 0xac, 0xc2, 0x6c, 0xc3, 0x9f, 0x4b, 0x83, 0x87, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x10, 0xab, 0x90, 0x1d, 0xbc, 0x97, 0x72, 0x75, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x62, 0x15, 0xc2, 0x81, 0x58, 0x85, 0xc1, 0x41, 0xe0, 0xe8, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb1, 0x0a, 0x8b, 0x81, 0x58, 0x85, 0xd5, 0x41, 0x60, 0x43, 0xb4, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc1, 0x8a, 0x3b, 0x78, 0xc0, 0xe3, 0xea, 0x86, 0xbf, 0x68, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x60, 0x85, 0x64, 0x20, 0x58, 0x61, 0xb4, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc1, 0x0a, 0xd1, 0x40, 0xb0, 0x42, 0x7c, 0x10, 0x52, 0x26, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xb0, 0x42, 0x3e, 0x10, 0xac, 0xb0, 0x39, 0x08, 0x6c, 0x88, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x5a, 0x71, 0x07, 0x0f, 0x78, 0x5c, 0xdd, 0xa0, 0xb4, 0xb7, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xa2, 0x15, 0x92, 0x81, 0x68, 0x85, 0xd9, 0x86, 0x3f, 0x97, 0x06, 0x17, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x5a, 0x21, 0x3b, 0x78, 0x28, 0xeb, 0xea, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x44, 0x2b, 0x84, 0x03, 0xd1, 0x0a, 0x83, 0x83, 0x90, 0x32, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xa2, 0x15, 0x16, 0x03, 0xd1, 0x0a, 0xab, 0x83, 0xc0, 0x86, 0x68, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xc2, 0x15, 0x77, 0xf0, 0x80, 0xc7, 0xd5, 0x0d, 0x5f, 0xe1, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xb8, 0x42, 0x72, 0xf0, 0x80, 0xc7, 0xd5, 0x0d, 0x5f, 0xbf, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe1, 0x0a, 0xe9, 0x40, 0xb8, 0x42, 0x7c, 0x78, 0x2f, 0x68, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xe2, 0x15, 0x77, 0xf0, 0x80, 0xc7, 0xd5, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x0f, 0xee, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf1, 0x0a, 0xe1, 0x40, 0xbc, 0x42, 0x7a, 0x78, 0x2f, 0x68, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x02, 0x16, 0x77, 0xf0, 0x80, 0xc7, 0xd5, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x0f, 0xee, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc0, 0x42, 0x32, 0x10, 0xb0, 0x10, 0x1e, 0x94, 0xb2, 0x99, 0x6b, 0xf8, 0x3c, 0x68, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x02, 0x16, 0x06, 0x03, 0x01, 0x0b, 0xf3, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x01, 0x0b, 0x8b, 0x81, 0x80, 0x85, 0xd1, 0x41, 0xc9, 0x8c, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x04, 0x2c, 0xac, 0x06, 0x02, 0x16, 0xd6, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x1e, 0xdc, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x80, 0x85, 0xe5, 0x40, 0xc0, 0xc2, 0xf8, 0xa0, 0xd4, 0xf6, 0xac, 0x56, 0x83, 0x55, 0xda, 0xe9, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xab, 0xb4, 0xd3, 0x1b, 0x00, 0x4f, 0xe0, 0xe4, 0xde, 0xc8, 0xea, 0xc6, 0xca, 0x40, 0xe8, 0xc2, 0xd2, 0xd8, 0x40, 0x50, 0xe4, 0xd2, 0xce, 0xd0, 0xe8, 0xda, 0xde, 0xe6, 0xe8, 0x40, 0xd2, 0xe8, 0xca, 0xda, 0x52, 0x40, 0xde, 0xe4, 0x40, 0xdc, 0xea, 0xd8, 0xd8, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x40, 0xe3, 0x06, 0xc6, 0x34, 0xa4, 0x1b, 0x1e, 0x1f, 0xd9, 0x60, 0x95, 0x76, 0xfa, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x4c, 0x68, 0xdc, 0xc1, 0xd3, 0xbb, 0x57, 0x37, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x4c, 0x68, 0x48, 0x06, 0x26, 0x34, 0xcc, 0x36, 0xfc, 0xb9, 0x34, 0x78, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x13, 0x1a, 0xb2, 0x83, 0xa7, 0x8e, 0xaf, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x84, 0x86, 0x70, 0x60, 0x42, 0xc3, 0xe0, 0x20, 0x70, 0xf4, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x09, 0x0d, 0x8b, 0x81, 0x09, 0x0d, 0xab, 0x83, 0xc0, 0x86, 0x68, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x46, 0x34, 0xee, 0xe0, 0xe9, 0xdd, 0xab, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x46, 0x34, 0x24, 0x03, 0x23, 0x1a, 0x46, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xa2, 0x21, 0x1a, 0x18, 0xd1, 0x10, 0x1f, 0x94, 0x4d, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x88, 0x86, 0x7c, 0x60, 0x44, 0xc3, 0xe6, 0x20, 0xb0, 0x21, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x19, 0x8d, 0x3b, 0x78, 0x7a, 0xf7, 0xea, 0x06, 0x25, 0x3c, 0xe6, 0x86, 0x07, 0x77, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x19, 0x0d, 0xf1, 0xc0, 0x8c, 0x86, 0xfc, 0xa0, 0xa0, 0xc8, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x21, 0x8d, 0x3b, 0x78, 0x7a, 0xf7, 0xea, 0x86, 0xaf, 0x70, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x4a, 0xe3, 0x0e, 0x9e, 0xde, 0xbd, 0xba, 0x41, 0x09, 0x8f, 0xb9, 0x41, 0x91, 0x94, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x4c, 0x69, 0x88, 0x07, 0xa6, 0x34, 0x4c, 0x36, 0x38, 0x86, 0x1b, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x94, 0x86, 0xfc, 0xe0, 0xa9, 0x04, 0xac, 0x07, 0x25, 0x33, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x8c, 0x69, 0xdc, 0xc1, 0xd3, 0xbb, 0x57, 0x37, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x3c, 0xb8, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x63, 0x1a, 0x92, 0x81, 0x31, 0x0d, 0xe1, 0x41, 0x29, 0x9b, 0xd9, 0x6a, 0x70, 0x5c, 0xb5, 0xda, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x0d, 0x8e, 0xc1, 0x56, 0x03, 0xf0, 0xe0, 0x56, 0x56, 0x46, 0x06, 0x62, 0x17, 0xc6, 0x56, 0x57, 0x06, 0x12, 0x46, 0x07, 0xb2, 0x56, 0x96, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x06, 0xaf, 0x11, 0xc5, 0x18, 0x98, 0x8f, 0xb0, 0xda, 0xf0, 0x8b, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x1d, 0x21, 0x19, 0x98, 0x8e, 0x30, 0xdf, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x1d, 0x21, 0x1a, 0x98, 0x8e, 0xb0, 0xdb, 0xf0, 0xe7, 0xd2, 0xe0, 0xe1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x4c, 0x47, 0x08, 0x0f, 0x1e, 0x9b, 0xc1, 0xba, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd3, 0x11, 0xd2, 0x81, 0xe9, 0x08, 0x8b, 0x83, 0xc0, 0xd1, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xa6, 0x23, 0x4c, 0x06, 0xa6, 0x23, 0xcc, 0x0e, 0x02, 0x1b, 0xa2, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x3a, 0xc2, 0x70, 0x60, 0x3a, 0xc2, 0x7a, 0xc3, 0x9f, 0x4b, 0x83, 0x8b, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x1d, 0x61, 0x7a, 0xf0, 0x4c, 0x12, 0xd6, 0x83, 0x13, 0xbf, 0x47, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x1e, 0x71, 0x07, 0x8f, 0xa3, 0x60, 0xdd, 0xf0, 0x17, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x1e, 0x21, 0x19, 0x18, 0x8f, 0x10, 0x1e, 0x3c, 0x40, 0x94, 0x74, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xe6, 0x23, 0xee, 0xe0, 0x71, 0x14, 0xac, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xe6, 0x23, 0xf6, 0xe0, 0xa5, 0x5f, 0x1f, 0x07, 0x67, 0x43, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x3e, 0x42, 0x36, 0x30, 0x1f, 0x61, 0xb4, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0xd9, 0xe0, 0x51, 0x62, 0x1f, 0x03, 0xf3, 0x11, 0xf2, 0x83, 0x73, 0xa7, 0xc5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x1f, 0x61, 0x70, 0xf0, 0x66, 0xb1, 0x8f, 0xc3, 0xd3, 0x3a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc1, 0x23, 0xca, 0x3e, 0x06, 0xe6, 0x23, 0x6c, 0x0e, 0xef, 0x05, 0xd5, 0xe1, 0x14, 0xab, 0xd6, 0xa0, 0x58, 0x15, 0xd8, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x0d, 0x0e, 0x7c, 0x3e, 0x03, 0xf8, 0xb5, 0x95, 0x85, 0xcd, 0xd5, 0xc9, 0x95, 0x81, 0xcc, 0xa5, 0xe9, 0x95, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xc0, 0xc7, 0x0d, 0xcc, 0x7c, 0xe8, 0xd9, 0xf0, 0xf8, 0xc8, 0x06, 0xc5, 0xaa, 0xc0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x4c, 0x7c, 0xdc, 0xc1, 0x1b, 0x87, 0x58, 0x37, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x4c, 0x7c, 0x48, 0x06, 0x26, 0x3e, 0xcc, 0x36, 0xfc, 0xb9, 0x34, 0x78, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x13, 0x1f, 0xb2, 0x83, 0x27, 0x25, 0xb1, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xc4, 0x87, 0x70, 0x60, 0xe2, 0xc3, 0xe0, 0x20, 0x70, 0xf4, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x89, 0x0f, 0x8b, 0x81, 0x89, 0x0f, 0xab, 0x83, 0xc0, 0x86, 0x68, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x46, 0x3e, 0xee, 0xe0, 0x8d, 0x43, 0xac, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x46, 0x3e, 0x24, 0x03, 0x23, 0x1f, 0xc2, 0x83, 0x32, 0x4b, 0x77, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x66, 0x3e, 0xee, 0xe0, 0x8d, 0x43, 0xac, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x1e, 0xdc, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x66, 0x3e, 0x44, 0x03, 0x33, 0x1f, 0xb2, 0xc3, 0x83, 0x37, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xf3, 0x21, 0x1c, 0x98, 0xf9, 0x50, 0xb3, 0xe1, 0xe3, 0xa8, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0xf9, 0x10, 0x0f, 0xcc, 0x7c, 0x68, 0xd9, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xf3, 0x21, 0x1f, 0x98, 0xf9, 0x30, 0x39, 0xfc, 0x09, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xcc, 0x7c, 0xd8, 0x0c, 0xcc, 0x7c, 0xd8, 0x6e, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0x78, 0x70, 0x67, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x66, 0x3e, 0xec, 0x06, 0x66, 0x3e, 0x4c, 0x0f, 0x4a, 0x6d, 0xcf, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x99, 0x0f, 0xe3, 0x81, 0x99, 0x0f, 0x25, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x1e, 0xdc, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x99, 0x0f, 0x05, 0x03, 0x33, 0x1f, 0x3a, 0x0e, 0x4a, 0xd9, 0xcc, 0x9a, 0x35, 0x58, 0x05, 0x8e, 0xb7, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xb0, 0x0a, 0x1c, 0xaf, 0x01, 0xf0, 0x9e, 0x2e, 0x6c, 0xad, 0x0c, 0x24, 0x0c, 0x64, 0xae, 0x4e, 0x6c, 0xae, 0x8c, 0x0e, 0x44, 0x2e, 0xcc, 0xed, 0xac, 0x0c, 0xa4, 0x0c, 0x6f, 0x8c, 0xad, 0x8e, 0x2c, 0xcd, 0xed, 0x0c, 0x64, 0x8e, 0x2e, 0x4c, 0x8e, 0x0e, 0x24, 0xcc, 0x8d, 0xec, 0xe5, 0x4d, 0x0e, 0xa4, 0xcc, 0x8d, 0x0c, 0x24, 0xcc, 0x8d, 0x0c, 0x24, 0x8c, 0x8d, 0x0d, 0xa4, 0x8c, 0xad, 0xac, 0xad, 0xcc, 0x8d, 0x6e, 0x6e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x66, 0x25, 0x6e, 0x60, 0xb0, 0xe2, 0x37, 0x3c, 0x3e, 0xb2, 0xc1, 0x2a, 0x70, 0xbc, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0x96, 0xb8, 0x83, 0x67, 0xf7, 0xb1, 0x6e, 0xf8, 0x45, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0x96, 0x90, 0x0c, 0xcc, 0x4b, 0xc8, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x0c, 0x4b, 0x48, 0x07, 0x86, 0x25, 0x8c, 0x37, 0xfc, 0xb9, 0x34, 0xe0, 0xd1, 0xc9, 0x95, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x2c, 0x61, 0x71, 0xf0, 0x14, 0x43, 0xd6, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0x96, 0x30, 0x19, 0x18, 0x96, 0x30, 0x3b, 0x08, 0x1c, 0xbd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x58, 0xc2, 0x6e, 0x60, 0x58, 0xc2, 0xf6, 0x20, 0xb0, 0x21, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xa6, 0x25, 0xa4, 0x03, 0xd3, 0x12, 0xd6, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x2d, 0xfd, 0x6d, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x2d, 0x61, 0x73, 0xf0, 0xb2, 0x48, 0xd6, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0x96, 0x30, 0x1a, 0x98, 0x96, 0x30, 0x3c, 0x28, 0x9b, 0x30, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x69, 0x09, 0xcb, 0x81, 0x69, 0x09, 0xe3, 0x83, 0x13, 0xbf, 0x47, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb8, 0x84, 0x74, 0x60, 0x5c, 0xc2, 0x76, 0xc3, 0x9f, 0x4b, 0x1b, 0x0c, 0x4c, 0x8f, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0x97, 0xb0, 0x38, 0x78, 0x2e, 0x27, 0xeb, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x8c, 0x4b, 0x98, 0x0c, 0x8c, 0x4b, 0x98, 0x1d, 0x94, 0x4d, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb8, 0x84, 0xdd, 0xc0, 0xb8, 0x84, 0xe9, 0xc1, 0x89, 0xdf, 0xa3, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x60, 0xe2, 0x0e, 0x9e, 0xdd, 0xc7, 0xba, 0xe1, 0x2f, 0x9a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x60, 0x42, 0x32, 0x30, 0x30, 0x61, 0xb4, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x03, 0x13, 0xa2, 0x81, 0x81, 0x09, 0xf1, 0x41, 0xe0, 0xe8, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x03, 0x13, 0xf2, 0x81, 0x81, 0x09, 0x9b, 0x83, 0xc0, 0x86, 0x68, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x26, 0x26, 0xee, 0xe0, 0xd9, 0x7d, 0xac, 0x1b, 0x1c, 0xb0, 0xe8, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x91, 0x89, 0x1b, 0x18, 0x9d, 0x30, 0xde, 0xf0, 0x41, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x32, 0x21, 0x19, 0x18, 0x99, 0x50, 0xb1, 0xe1, 0x11, 0xd6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x64, 0x42, 0x38, 0x30, 0x32, 0x61, 0xb7, 0x41, 0x31, 0x89, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x8c, 0x4c, 0xc8, 0x07, 0x46, 0x26, 0x0c, 0x0e, 0x42, 0xf0, 0x61, 0x83, 0xb7, 0xf4, 0xb7, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x8c, 0x4c, 0x18, 0x0e, 0x8c, 0x4c, 0x68, 0xd8, 0xa0, 0x98, 0xc4, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x46, 0x26, 0x6c, 0x07, 0x46, 0x26, 0x8c, 0x0f, 0x42, 0xf0, 0xe1, 0xa0, 0x34, 0xc5, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0x99, 0xf8, 0x81, 0x99, 0x09, 0xd1, 0x86, 0xb7, 0x75, 0x06, 0x3c, 0x3a, 0xb9, 0xb2, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0x9a, 0xb8, 0x83, 0xc7, 0xd4, 0xb2, 0x6e, 0x50, 0xc2, 0x63, 0x6e, 0xf0, 0x0c, 0x5f, 0xd6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x6a, 0xe2, 0x07, 0xa6, 0x26, 0xcc, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x4c, 0x4d, 0x08, 0x06, 0xa6, 0x26, 0x0c, 0x0e, 0xde, 0x96, 0xa0, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x4c, 0x4d, 0x58, 0x0c, 0x4c, 0x4d, 0x18, 0x1d, 0xbc, 0xd7, 0x98, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0x9a, 0xb0, 0x1a, 0x98, 0x9a, 0xb0, 0x3c, 0x68, 0x3a, 0x11, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0x9a, 0x30, 0x1d, 0x98, 0x9a, 0xb0, 0x3e, 0x28, 0x32, 0x71, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb1, 0x89, 0x3b, 0x78, 0x4c, 0x2d, 0xeb, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0xa5, 0x29, 0xee, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x37, 0xf1, 0x03, 0x73, 0x13, 0x2a, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xcc, 0x4d, 0x08, 0x06, 0xe6, 0x26, 0x0c, 0x0e, 0xde, 0x96, 0xa0, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xcc, 0x4d, 0x58, 0x0c, 0xcc, 0x4d, 0x18, 0x1d, 0xbc, 0xd7, 0x98, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0x9b, 0xb0, 0x1a, 0x98, 0x9b, 0xb0, 0xdd, 0xf0, 0xc6, 0xdd, 0xc1, 0x9b, 0x2b, 0xeb, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb9, 0x09, 0xe3, 0x81, 0xb9, 0x09, 0x0d, 0x1b, 0xde, 0xd6, 0x39, 0x78, 0x86, 0x2f, 0x6b, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x38, 0x71, 0x07, 0x8f, 0xa9, 0x65, 0xdd, 0xa0, 0xe0, 0xc3, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x06, 0x27, 0x24, 0x03, 0x83, 0x13, 0x0a, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x0c, 0x4e, 0x88, 0x06, 0x06, 0x27, 0x2c, 0x0e, 0xde, 0x8f, 0x79, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x0c, 0x4e, 0x98, 0x0c, 0x0c, 0x4e, 0x58, 0x6e, 0x78, 0x5b, 0x67, 0xf0, 0xfa, 0xe0, 0x19, 0xbe, 0xac, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xe0, 0x84, 0xe9, 0xc0, 0xe0, 0x84, 0xfd, 0x86, 0xb7, 0x75, 0x06, 0xaf, 0x0f, 0x4a, 0x53, 0xdc, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x72, 0xe2, 0x0e, 0x1e, 0x53, 0xcb, 0xba, 0x41, 0xd1, 0xa7, 0xbb, 0xc1, 0x53, 0x8e, 0x59, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc9, 0x09, 0xf1, 0xc0, 0xe4, 0x84, 0xa6, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x93, 0x13, 0xf2, 0x81, 0xc9, 0x09, 0xbb, 0x83, 0xb7, 0x25, 0xa8, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x93, 0x13, 0x86, 0x03, 0x93, 0x13, 0xb6, 0x07, 0xef, 0x35, 0x66, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x26, 0x27, 0x8c, 0x07, 0x26, 0x27, 0x54, 0x1c, 0x3c, 0xc2, 0x9c, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0x9c, 0xd0, 0x31, 0x30, 0x39, 0xa1, 0xe8, 0xe0, 0x45, 0xe9, 0xac, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xe8, 0xc4, 0x1d, 0x3c, 0xa6, 0x96, 0x75, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xe8, 0xc4, 0x0e, 0x8c, 0x4e, 0x88, 0x0f, 0xde, 0x96, 0xa0, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x8c, 0x4e, 0xc8, 0x07, 0x46, 0x27, 0x4c, 0x0e, 0xde, 0x6b, 0xcc, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x8c, 0x4e, 0xd8, 0x0c, 0x8c, 0x4e, 0xd8, 0x1d, 0x34, 0x9d, 0x08, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x8c, 0x4e, 0x18, 0x0e, 0x8c, 0x4e, 0xd8, 0x1e, 0x14, 0x99, 0xb8, 0x2d, 0xb3, 0x06, 0x0f, 0x4f, 0x50, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe9, 0x89, 0x1f, 0x98, 0xab, 0x90, 0x6c, 0xf8, 0x45, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0x9e, 0x90, 0x0d, 0x4c, 0x4f, 0x28, 0xde, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x3d, 0x21, 0x1c, 0x98, 0x9e, 0xb0, 0xdc, 0xf0, 0xe7, 0xd2, 0xe0, 0xe1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x4c, 0x4f, 0x88, 0x0f, 0x1e, 0xf5, 0xd1, 0xba, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd3, 0x13, 0xf2, 0x81, 0xe9, 0x09, 0x9b, 0x83, 0xc0, 0xd1, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xa6, 0x27, 0x8c, 0x06, 0xa6, 0x27, 0x0c, 0x0f, 0x02, 0x1b, 0xa2, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x7a, 0xc2, 0x74, 0x60, 0x7a, 0x42, 0xd5, 0x86, 0x3f, 0x97, 0x06, 0x17, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x7a, 0xc2, 0xf8, 0xe0, 0x39, 0x2a, 0xad, 0x1b, 0x04, 0x9b, 0xe9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x3d, 0x61, 0x3e, 0x30, 0x3d, 0xa1, 0xe4, 0xe0, 0x6d, 0x95, 0x75, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xf4, 0x84, 0x96, 0x81, 0xe9, 0x09, 0x4d, 0x07, 0x2d, 0x09, 0x74, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x4c, 0x4f, 0xe8, 0x1a, 0x98, 0x9e, 0xd0, 0xbb, 0xe1, 0xcf, 0xa5, 0xc1, 0xc7, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0x9e, 0xd0, 0x76, 0xf0, 0xb8, 0x9a, 0xd6, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0x9e, 0x50, 0x37, 0x30, 0x3d, 0xa1, 0xf2, 0xa0, 0x6c, 0xc2, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xa6, 0x27, 0x74, 0x0e, 0x4c, 0x4f, 0xa8, 0x3d, 0x38, 0xf1, 0x7b, 0xd4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x8c, 0x4f, 0xfc, 0xc1, 0x23, 0x34, 0x5a, 0x37, 0xfc, 0x45, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x8c, 0x4f, 0xc8, 0x06, 0xc6, 0x27, 0xcc, 0x36, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x7c, 0x42, 0x38, 0x30, 0x3e, 0x61, 0x70, 0x10, 0x38, 0x7a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xf8, 0x84, 0xc5, 0xc0, 0xf8, 0x84, 0xd5, 0x41, 0x60, 0x43, 0xb4, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf3, 0x13, 0x7f, 0xf0, 0x08, 0x8d, 0xd6, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x0f, 0xee, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf3, 0x13, 0xe2, 0x81, 0xf9, 0x09, 0xf9, 0xe1, 0x69, 0x9d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0xa0, 0xf8, 0x83, 0x47, 0x68, 0xb4, 0x6e, 0x50, 0xc2, 0x63, 0x6e, 0xf8, 0x87, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0xa0, 0x10, 0x0f, 0x0c, 0x50, 0xc8, 0x0f, 0x4f, 0xeb, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x04, 0xc5, 0x1f, 0x3c, 0x42, 0xa3, 0x75, 0x83, 0x20, 0x3d, 0xdd, 0xf0, 0x79, 0xd0, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x08, 0x85, 0x6c, 0x60, 0x84, 0xc2, 0xe2, 0xe0, 0x6d, 0x95, 0x75, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x44, 0x21, 0x19, 0x98, 0xa5, 0x30, 0xdb, 0xf0, 0x41, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x44, 0x21, 0x1d, 0x18, 0xa2, 0xb0, 0xdd, 0xf0, 0x6f, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x44, 0x21, 0x1f, 0x18, 0xa2, 0x30, 0x3b, 0x78, 0xda, 0xc7, 0xe9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x0c, 0x51, 0xd8, 0x0d, 0x0c, 0x51, 0x98, 0x1e, 0x1c, 0x9d, 0x34, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x29, 0x0a, 0xd9, 0xc0, 0x14, 0x85, 0xdd, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x29, 0x0a, 0xe1, 0xc0, 0x14, 0x85, 0xfc, 0xe0, 0x65, 0xbe, 0xa5, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x14, 0x85, 0xc1, 0xc0, 0x14, 0x85, 0xd9, 0x86, 0x4b, 0x6a, 0xc3, 0x83, 0x3b, 0x6b, 0x30, 0x48, 0xa5, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x8a, 0xc2, 0x68, 0x60, 0x8a, 0xc2, 0xea, 0xa0, 0xa0, 0xc8, 0xac, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0xa3, 0x90, 0x1c, 0x3c, 0x8a, 0xab, 0x75, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x1c, 0x85, 0x74, 0x60, 0x8e, 0x42, 0xc5, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x39, 0x0a, 0xf1, 0xc0, 0x1c, 0x85, 0xd5, 0xc1, 0xfb, 0x31, 0x4f, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x39, 0x0a, 0xb3, 0x81, 0x39, 0x0a, 0xeb, 0x83, 0xa7, 0x7d, 0x9c, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x73, 0x14, 0xe6, 0x03, 0x73, 0x14, 0x1a, 0x0e, 0x8e, 0x4e, 0x1a, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x93, 0x14, 0xb2, 0x81, 0x49, 0x0a, 0xe3, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x0f, 0xee, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x24, 0x85, 0x7c, 0x60, 0x92, 0xc2, 0x76, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x24, 0x85, 0xc1, 0xc0, 0x24, 0x85, 0xcd, 0xc1, 0xcb, 0x7c, 0x4b, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x49, 0x0a, 0xa3, 0x81, 0x49, 0x0a, 0xd3, 0x0d, 0x97, 0xd4, 0x86, 0x07, 0x77, 0xd6, 0x60, 0x90, 0x4a, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x24, 0x85, 0xe1, 0xc0, 0x24, 0x85, 0xe5, 0x41, 0x41, 0x91, 0x59, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x2c, 0x85, 0xe4, 0xe0, 0x51, 0x5c, 0xad, 0x1b, 0x2e, 0xa9, 0x0d, 0x0f, 0xee, 0xac, 0xc1, 0x20, 0x95, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x59, 0x0a, 0xe9, 0xc0, 0x2c, 0x85, 0xd5, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x86, 0x07, 0x77, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x96, 0xc2, 0x62, 0x60, 0x96, 0xc2, 0xe8, 0xa0, 0xd4, 0xf6, 0xac, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x69, 0x0a, 0xd9, 0xc0, 0x34, 0x85, 0xfc, 0xa0, 0x25, 0x81, 0xce, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0xa7, 0x90, 0x0c, 0x8c, 0x55, 0x98, 0x6e, 0xf8, 0x20, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0xa7, 0x90, 0x0e, 0xcc, 0x53, 0xd8, 0x6e, 0xf8, 0x37, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0xa7, 0x90, 0x0f, 0xcc, 0x53, 0x98, 0x1c, 0x1c, 0x9d, 0x34, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x9e, 0xc2, 0x66, 0x60, 0x9e, 0xc2, 0xf4, 0xe0, 0x69, 0x1f, 0xa7, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x40, 0x85, 0x6c, 0x60, 0xa0, 0xc2, 0x6e, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x40, 0x85, 0x70, 0x60, 0xa0, 0x42, 0x7e, 0xf0, 0x32, 0xdf, 0xd2, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xa0, 0xc2, 0x60, 0x60, 0xa0, 0xc2, 0x6c, 0xc3, 0x25, 0xb5, 0xe1, 0xc1, 0x9d, 0x35, 0x28, 0x78, 0x36, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xa0, 0xc2, 0x68, 0x60, 0xa0, 0xc2, 0xea, 0xa0, 0xa0, 0xc8, 0xac, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0xa9, 0x90, 0x1c, 0xbc, 0x6d, 0xb3, 0x75, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x48, 0x85, 0x74, 0x60, 0xa4, 0x42, 0xc5, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x91, 0x0a, 0xf1, 0xc0, 0x48, 0x85, 0xd5, 0xc1, 0xfb, 0x31, 0x4f, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x91, 0x0a, 0xb3, 0x81, 0x91, 0x0a, 0xeb, 0x83, 0xa7, 0x7d, 0x9c, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x23, 0x15, 0xe6, 0x03, 0x23, 0x15, 0x1a, 0x0e, 0x8e, 0x4e, 0x1a, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x43, 0x15, 0xb2, 0x81, 0xa1, 0x0a, 0xc3, 0x0d, 0x97, 0xd4, 0x86, 0x07, 0x77, 0xd6, 0xa0, 0xe0, 0xd9, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa1, 0x0a, 0xf9, 0xc0, 0x50, 0x85, 0xdd, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x86, 0x07, 0x77, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0xa8, 0xc2, 0x66, 0x60, 0xa8, 0xc2, 0xec, 0xa0, 0x94, 0xcd, 0xac, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0xab, 0x90, 0x1c, 0xbc, 0x6d, 0xb3, 0x75, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0xc3, 0x83, 0x3b, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x56, 0x21, 0x1d, 0x18, 0xab, 0xb0, 0xdc, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x56, 0x21, 0x1e, 0x18, 0xab, 0xb0, 0x38, 0x78, 0x99, 0x6f, 0xe9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x56, 0x61, 0x32, 0x30, 0x56, 0x61, 0xb8, 0xe1, 0x92, 0xda, 0xf0, 0xe0, 0xce, 0x1a, 0x14, 0x3c, 0x9b, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x56, 0x61, 0x36, 0x30, 0x56, 0x61, 0x77, 0x50, 0x50, 0x64, 0x56, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x5a, 0x83, 0x22, 0x92, 0x60, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x36, 0x28, 0x84, 0x4d, 0x07, 0xe0, 0x05, 0xae, 0x8e, 0x0e, 0x24, 0x0c, 0x84, 0x2d, 0x6d, 0x8e, 0x0e, 0xe4, 0xcd, 0x0c, 0x24, 0x8d, 0xae, 0xac, 0x6d, 0x6e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x26, 0x21, 0x6e, 0x60, 0x1a, 0xc2, 0x78, 0xc3, 0xe3, 0x23, 0x1b, 0x14, 0x91, 0x04, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x0a, 0x71, 0x07, 0xcf, 0xea, 0x6e, 0xdd, 0xf0, 0x8b, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x0a, 0x21, 0x19, 0x18, 0x85, 0x50, 0xb3, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x14, 0x42, 0x74, 0xf0, 0xd8, 0x48, 0x8c, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x28, 0x84, 0xf0, 0xe0, 0xb1, 0x91, 0x18, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x6c, 0xf0, 0x76, 0x40, 0x8c, 0x83, 0xf7, 0x2e, 0x62, 0x1c, 0x04, 0x8e, 0xde, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x0a, 0x61, 0x72, 0xf0, 0x98, 0x48, 0x8c, 0x83, 0xc0, 0x86, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x36, 0x78, 0x91, 0x21, 0xc6, 0xc0, 0x28, 0x84, 0x96, 0x0d, 0x7f, 0x2e, 0x0d, 0x2e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x28, 0x84, 0xe9, 0xc1, 0xbb, 0xe1, 0x5b, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x14, 0xc2, 0x76, 0x60, 0x14, 0xc2, 0xfe, 0x20, 0xa4, 0x4c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x51, 0x08, 0x05, 0x03, 0xa3, 0x10, 0x4a, 0x0e, 0x02, 0x1b, 0xa2, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x16, 0xe2, 0x0e, 0x9e, 0xd5, 0xdd, 0xba, 0xe1, 0x2f, 0x9a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x16, 0x42, 0x32, 0x30, 0x0b, 0x61, 0xb4, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb3, 0x10, 0xa2, 0x83, 0xb7, 0x74, 0x62, 0x1c, 0x04, 0x8e, 0xde, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x6c, 0xf0, 0xd4, 0x4e, 0x8c, 0x81, 0x59, 0x08, 0x9b, 0x83, 0xc0, 0x86, 0x68, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x0d, 0xde, 0xb1, 0x83, 0x71, 0xf0, 0xac, 0xee, 0xd6, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x9f, 0x07, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc3, 0x10, 0xc2, 0x81, 0x61, 0x08, 0xe9, 0xe1, 0x69, 0x9d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0x86, 0xb8, 0x83, 0x67, 0x75, 0xb7, 0x6e, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xf8, 0x3c, 0x68, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xa6, 0x21, 0x24, 0x03, 0xd3, 0x10, 0xc2, 0x83, 0x22, 0xfc, 0x74, 0x0d, 0x0f, 0xee, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x34, 0x84, 0xc1, 0xc0, 0x34, 0x84, 0xed, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x69, 0x08, 0x8b, 0x81, 0x69, 0x08, 0xa3, 0x83, 0x02, 0x04, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0x86, 0xb0, 0x1a, 0x98, 0x86, 0x30, 0x3b, 0x3c, 0xad, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x4c, 0x43, 0xd8, 0x0d, 0x4c, 0x43, 0x98, 0x1e, 0x14, 0x3f, 0xa8, 0x75, 0x38, 0xc5, 0xd6, 0xa0, 0xe4, 0x6e, 0xd8, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x0d, 0x0e, 0x76, 0x1a, 0x03, 0xf0, 0x36, 0x86, 0x56, 0x36, 0xb6, 0x06, 0x62, 0xf6, 0x26, 0x07, 0xb2, 0x56, 0x96, 0x07, 0x52, 0x86, 0x97, 0x36, 0x47, 0x57, 0xe6, 0x36, 0x56, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x33, 0x12, 0x37, 0x30, 0x26, 0x61, 0xb4, 0xe1, 0xf1, 0x91, 0x0d, 0x4a, 0xee, 0x86, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0x92, 0xb8, 0x83, 0xd7, 0x8a, 0xb8, 0x6e, 0xf8, 0x45, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0x92, 0x90, 0x0c, 0x0c, 0x49, 0x98, 0x6f, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0x92, 0x10, 0x0d, 0x0c, 0x49, 0xd8, 0x6d, 0xf8, 0x73, 0x69, 0xf0, 0x70, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x86, 0x24, 0x84, 0x07, 0x6f, 0x58, 0x71, 0xdd, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x21, 0x09, 0xe9, 0xc0, 0x90, 0x84, 0xc5, 0x41, 0xe0, 0xe8, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x43, 0x12, 0x26, 0x03, 0x43, 0x12, 0x66, 0x07, 0x81, 0x0d, 0xd1, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x24, 0x61, 0x38, 0x30, 0x24, 0x61, 0xbd, 0xe1, 0xcf, 0xa5, 0xc1, 0xc5, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0x92, 0x30, 0x3d, 0x78, 0x7d, 0x8d, 0xeb, 0xc1, 0x89, 0xdf, 0xa3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0x92, 0xb8, 0x83, 0xd7, 0x8a, 0xb8, 0x6e, 0xf8, 0x8b, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0x92, 0x90, 0x0c, 0x4c, 0x49, 0x88, 0x0e, 0x1f, 0xac, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x98, 0xc4, 0x1d, 0xbc, 0x56, 0xc4, 0x75, 0xc3, 0xdb, 0xac, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x26, 0xb1, 0x07, 0xaf, 0x15, 0x71, 0xdd, 0xf0, 0x6f, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x26, 0x21, 0x18, 0x18, 0x93, 0x90, 0x1c, 0x14, 0x14, 0x99, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x26, 0x21, 0x1a, 0x18, 0x93, 0xb0, 0xd9, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x26, 0x21, 0x1b, 0x18, 0x93, 0x10, 0x1f, 0x9c, 0x3b, 0x2d, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x31, 0x09, 0xf9, 0xc0, 0x98, 0x84, 0xc1, 0xe1, 0x69, 0x9d, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x4c, 0xc2, 0x62, 0x60, 0x4c, 0xc2, 0xe4, 0xf0, 0x5e, 0x50, 0x87, 0x53, 0x6c, 0x0d, 0x0a, 0x7f, 0x83, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0xdb, 0xe0, 0x38, 0x72, 0x31, 0x00, 0x9e, 0x93, 0x95, 0xb1, 0x95, 0xd1, 0x95, 0x81, 0xb8, 0xac, 0x95, 0xe5, 0x81, 0x98, 0xc9, 0xbd, 0xb5, 0x81, 0xb8, 0x84, 0x81, 0xa4, 0x99, 0x81, 0xa4, 0xd1, 0x81, 0x94, 0xe1, 0xa5, 0xcd, 0xd1, 0xcd, 0xb1, 0x80, 0xc0, 0xc9, 0xbd, 0x91, 0xd5, 0x8d, 0xa5, 0xb9, 0x9d, 0x81, 0xd8, 0x85, 0xb1, 0xd5, 0x95, 0x81, 0xa4, 0x99, 0x99, 0x81, 0x90, 0x95, 0xb1, 0x95, 0xd1, 0x95, 0x91, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xd0, 0xe2, 0x06, 0x42, 0x18, 0x56, 0x1b, 0x1e, 0x1f, 0xd9, 0xa0, 0xf0, 0x37, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa8, 0xc5, 0x1d, 0x3c, 0xa5, 0xcb, 0x75, 0xc3, 0x2f, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xd4, 0x42, 0x32, 0x10, 0xb5, 0xb0, 0xde, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x10, 0xb5, 0x10, 0x0d, 0x44, 0x2d, 0xec, 0x36, 0xfc, 0xb9, 0x34, 0x78, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x51, 0x0b, 0xe1, 0xc1, 0xdb, 0xca, 0x5c, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x6a, 0x21, 0x1d, 0x88, 0x5a, 0x58, 0x1c, 0x04, 0x8e, 0xde, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x10, 0xb5, 0x30, 0x19, 0x88, 0x5a, 0x98, 0x1d, 0x04, 0x36, 0x44, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xd4, 0xc2, 0x70, 0x20, 0x6a, 0x61, 0xbc, 0xe1, 0xcf, 0xa5, 0x0d, 0x8a, 0xd6, 0x93, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x88, 0x5a, 0x58, 0x1e, 0x3c, 0x07, 0xce, 0xf5, 0xe0, 0xc4, 0xef, 0xd1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x84, 0x2d, 0xee, 0xe0, 0x29, 0x5d, 0xae, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xc2, 0x16, 0x92, 0x81, 0xb0, 0x85, 0x86, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x61, 0x0b, 0xd1, 0x40, 0xd8, 0xc2, 0x68, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xc2, 0x16, 0xb2, 0x81, 0xb0, 0x85, 0xfc, 0xa0, 0x6c, 0xc2, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xc2, 0x16, 0x06, 0x03, 0x61, 0x0b, 0x9b, 0x83, 0x07, 0x88, 0x92, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x84, 0x2d, 0xac, 0x06, 0xc2, 0x16, 0x0a, 0x36, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x6c, 0x61, 0x36, 0x10, 0xb6, 0x30, 0x3d, 0x08, 0x1c, 0xbd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x6c, 0x61, 0x3b, 0x10, 0xb6, 0xb0, 0x3f, 0x08, 0x6c, 0x88, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb8, 0xc5, 0x1d, 0x3c, 0xa5, 0xcb, 0x75, 0x83, 0x12, 0x1e, 0x73, 0xc3, 0x83, 0x3b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xdc, 0x42, 0x38, 0x10, 0xb7, 0xb0, 0xd8, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x10, 0xb7, 0x90, 0x0e, 0xc4, 0x2d, 0xc4, 0x07, 0x05, 0x45, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x10, 0xb7, 0x90, 0x0f, 0xc4, 0x2d, 0x0c, 0x0e, 0x0a, 0x8a, 0xcc, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x74, 0x71, 0x07, 0x4f, 0xe9, 0x72, 0xdd, 0xf0, 0x41, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x10, 0xba, 0x90, 0x1c, 0x3c, 0x56, 0x44, 0x63, 0xc3, 0xbf, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc1, 0xe3, 0x23, 0x34, 0x06, 0x42, 0x17, 0xe2, 0x83, 0x43, 0x6b, 0xd7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x84, 0x2e, 0xe4, 0x07, 0xaf, 0xf8, 0xd0, 0x38, 0x78, 0xda, 0xc7, 0xe9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x6c, 0xf0, 0x04, 0x18, 0x8d, 0x81, 0xd8, 0x85, 0xe5, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd8, 0x85, 0xe0, 0xe0, 0xf1, 0x33, 0x1a, 0x1b, 0x1c, 0xc3, 0x0d, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x76, 0x21, 0x39, 0x78, 0xfc, 0x8c, 0xc6, 0x86, 0xb7, 0x75, 0x0e, 0x5e, 0xc8, 0x66, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x1b, 0x3c, 0xf2, 0x46, 0x63, 0x20, 0x76, 0x61, 0xb8, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0xd9, 0xe0, 0x41, 0x3a, 0x1a, 0x03, 0xb1, 0x0b, 0xab, 0x83, 0x97, 0xf9, 0x96, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x06, 0xef, 0xd5, 0xd1, 0x38, 0x78, 0x96, 0x8f, 0xc6, 0xe1, 0x69, 0x9d, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf0, 0xc5, 0x1d, 0x3c, 0xa5, 0xcb, 0x75, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xf8, 0x42, 0x32, 0x10, 0xbe, 0x30, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x10, 0xbe, 0x10, 0x0d, 0x84, 0x2f, 0x2c, 0x0e, 0xde, 0x8f, 0x79, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x84, 0x2f, 0x4c, 0x06, 0xc2, 0x17, 0x56, 0x07, 0x87, 0xd6, 0xae, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x7c, 0x61, 0x36, 0x10, 0xbe, 0xb0, 0x3e, 0x78, 0xda, 0xc7, 0x69, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xfc, 0xe2, 0x07, 0x02, 0x18, 0x76, 0x1b, 0x3e, 0xb1, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xe2, 0x17, 0xb2, 0x81, 0xf8, 0x85, 0xfd, 0x86, 0xcf, 0x5d, 0xd6, 0x30, 0x71, 0x03, 0x3c, 0x66, 0x6f, 0x75, 0x6e, 0xe4, 0xc1, 0xaa, 0x75, 0xdd, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x88, 0x5f, 0xd8, 0x1d, 0x3c, 0x34, 0xd8, 0x75, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0xc3, 0x83, 0x3b, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x10, 0xbf, 0xb0, 0x1d, 0x88, 0x5f, 0x98, 0x1f, 0x94, 0xda, 0x9e, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x00, 0xe3, 0x0f, 0x9e, 0xf0, 0xeb, 0xba, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x80, 0x21, 0x18, 0x08, 0x60, 0x48, 0x37, 0xbc, 0xad, 0xb3, 0xc1, 0xdb, 0x85, 0x5d, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x02, 0x18, 0xe2, 0x81, 0x00, 0x86, 0xd9, 0x86, 0x4b, 0x6a, 0xc3, 0x83, 0x3b, 0x6b, 0x30, 0x48, 0xa5, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x80, 0x61, 0x32, 0x10, 0xc0, 0xb0, 0x3a, 0x58, 0x88, 0xb0, 0x5b, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x10, 0xc1, 0xb8, 0x83, 0xa7, 0x74, 0xb9, 0x6e, 0xf8, 0xc4, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x88, 0x60, 0x48, 0x06, 0x22, 0x18, 0xd6, 0x1b, 0x3e, 0x77, 0x59, 0xc3, 0xc4, 0x6d, 0xf0, 0x76, 0x61, 0xd7, 0x83, 0xc1, 0x83, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x11, 0x0c, 0xab, 0x83, 0x27, 0x6a, 0xbb, 0x6e, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0x78, 0x70, 0x67, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x22, 0x18, 0x96, 0x03, 0x11, 0x0c, 0xe3, 0x83, 0x52, 0x36, 0xb3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x08, 0x61, 0xdc, 0xc1, 0x53, 0xba, 0x5c, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x84, 0x30, 0x76, 0x20, 0x84, 0x21, 0x3b, 0x78, 0xc2, 0xb3, 0xeb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x10, 0xc2, 0x10, 0x0e, 0x84, 0x30, 0x8c, 0x36, 0x5c, 0x52, 0x1b, 0x1e, 0xdc, 0x59, 0x83, 0x82, 0x67, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x42, 0x18, 0x06, 0x03, 0x21, 0x0c, 0x9b, 0x83, 0x05, 0x9c, 0xf0, 0xb5, 0x1a, 0x94, 0x08, 0x2d, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x41, 0x99, 0x89, 0x3a, 0x00, 0x9f, 0x67, 0x65, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x20, 0x61, 0x74, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x6f, 0x72, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x7e, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x11, 0x71, 0x03, 0x93, 0x11, 0xd2, 0x0d, 0x8f, 0x8f, 0x6c, 0x50, 0x22, 0xb4, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x48, 0xc4, 0x1d, 0xbc, 0xac, 0xde, 0x75, 0xc3, 0x2f, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x48, 0x84, 0x64, 0x60, 0x24, 0xc2, 0x7c, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x48, 0x84, 0x68, 0x60, 0x24, 0xc2, 0x6e, 0xc3, 0x9f, 0x4b, 0x83, 0x87, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x12, 0x21, 0x3c, 0x78, 0x6e, 0xbf, 0xeb, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x1b, 0xbc, 0xd2, 0x6b, 0x63, 0x60, 0x24, 0xc2, 0xe2, 0x20, 0x70, 0xf4, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x91, 0x08, 0x93, 0x81, 0x91, 0x08, 0xb3, 0x83, 0xc0, 0x86, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0x89, 0x30, 0x1c, 0x18, 0x89, 0xb0, 0xde, 0xf0, 0xe7, 0xd2, 0xe0, 0xe2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x1b, 0x3c, 0x83, 0x6b, 0xe3, 0xe0, 0xb1, 0x08, 0xaf, 0x07, 0x27, 0x7e, 0x8f, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x26, 0xe2, 0x0e, 0x5e, 0x56, 0xef, 0xba, 0xe1, 0x2f, 0x9a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x26, 0x42, 0x32, 0x30, 0x13, 0x61, 0xb3, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x33, 0x11, 0xa2, 0x83, 0x07, 0xf2, 0x6d, 0x1c, 0x94, 0x4d, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x4c, 0x84, 0x7c, 0x60, 0x26, 0xc2, 0xe4, 0xe0, 0x01, 0xa2, 0xa4, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x50, 0xc4, 0x1d, 0xbc, 0xac, 0xde, 0x75, 0x83, 0x12, 0x1e, 0x73, 0xc3, 0x83, 0x3b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x50, 0x84, 0xf0, 0xe0, 0x11, 0x85, 0x1b, 0x07, 0x05, 0x45, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x1b, 0x3c, 0x0a, 0x6b, 0xe3, 0xe0, 0x65, 0xf5, 0xae, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xa6, 0x22, 0x24, 0x03, 0x53, 0x11, 0x56, 0x1b, 0xfe, 0xcd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xa6, 0x22, 0x64, 0x03, 0x53, 0x11, 0xc2, 0xc3, 0x7b, 0x41, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x15, 0x21, 0x1d, 0x98, 0x8a, 0x30, 0x3a, 0x78, 0xda, 0xc7, 0xe9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x16, 0xf1, 0x03, 0x63, 0x11, 0xf2, 0x0d, 0x8e, 0xe1, 0x06, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x16, 0x21, 0x38, 0x78, 0x61, 0xca, 0xeb, 0xc1, 0xbb, 0x4d, 0x5d, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x2e, 0xe2, 0x0e, 0x5e, 0x56, 0xef, 0xba, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x2e, 0x42, 0x32, 0x30, 0x17, 0x61, 0xbc, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x2e, 0x42, 0x34, 0x30, 0x17, 0x61, 0x71, 0xf0, 0x7e, 0xcc, 0xd3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x2e, 0xc2, 0x64, 0x60, 0x2e, 0xc2, 0xe6, 0xf0, 0x5e, 0xd0, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0x17, 0x61, 0x34, 0x30, 0x17, 0x61, 0x7b, 0xf0, 0xb4, 0x8f, 0xd3, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc1, 0x88, 0x1f, 0x18, 0x8c, 0x90, 0x6f, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0x78, 0x70, 0x67, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x06, 0x23, 0x64, 0x03, 0x83, 0x11, 0xe2, 0x83, 0x52, 0xdb, 0xb3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0x8c, 0xb8, 0x83, 0x97, 0xd5, 0xbb, 0x6e, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0x78, 0x70, 0x67, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x26, 0x23, 0x24, 0x03, 0x93, 0x11, 0xc2, 0x83, 0x52, 0x36, 0xb3, 0xd5, 0xa0, 0x48, 0x5d, 0xd8, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x0d, 0x8a, 0x41, 0xd6, 0x01, 0xf0, 0xc7, 0xae, 0x4c, 0x2e, 0xcd, 0x2c, 0x0f, 0x04, 0xed, 0x4d, 0x2e, 0x4d, 0xef, 0xcd, 0x8d, 0x2e, 0x8c, 0x0d, 0x24, 0xcc, 0x8d, 0x0c, 0xc4, 0xae, 0x4c, 0x8e, 0x2e, 0x6d, 0x2c, 0x8c, 0x0d, 0xe4, 0x4d, 0x8e, 0xac, 0x4c, 0x2e, 0xcd, 0xed, 0x6c, 0x6e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xa2, 0x11, 0x37, 0x10, 0xa6, 0xf8, 0x0d, 0x8f, 0x8f, 0x6c, 0x50, 0xa4, 0x2e, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x38, 0xe2, 0x0e, 0x5e, 0xf7, 0xf4, 0xba, 0xe1, 0x17, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x1c, 0x21, 0x19, 0x08, 0x47, 0x98, 0x6d, 0xf8, 0x73, 0x69, 0xf0, 0x70, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xc2, 0x11, 0xb2, 0x83, 0x47, 0x54, 0xbd, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x38, 0x42, 0x38, 0x10, 0x8e, 0x30, 0x38, 0x08, 0x1c, 0xbd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x1c, 0x61, 0x31, 0x10, 0x8e, 0xb0, 0x3a, 0x08, 0x6c, 0x88, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x1e, 0x71, 0x07, 0xaf, 0x7b, 0x7a, 0xdd, 0xa0, 0xb4, 0xb7, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xe2, 0x11, 0x92, 0x81, 0x78, 0x84, 0x92, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf1, 0x08, 0xd1, 0x40, 0x3c, 0xc2, 0x6c, 0xc3, 0x9f, 0x4b, 0x83, 0xb3, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x10, 0x8f, 0x10, 0x1e, 0xbc, 0xa3, 0xec, 0x75, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xe2, 0x11, 0xd2, 0x81, 0x78, 0x84, 0xc5, 0x41, 0xd9, 0x84, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xc4, 0x23, 0x4c, 0x06, 0xe2, 0x11, 0x56, 0x07, 0x27, 0x7e, 0x8f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x78, 0x84, 0xdd, 0x40, 0x3c, 0x42, 0xc7, 0x86, 0x3f, 0x97, 0x06, 0x97, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x1e, 0x61, 0x79, 0xf0, 0xfe, 0xb7, 0xd7, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x88, 0x47, 0x98, 0x0e, 0xc4, 0x23, 0xcc, 0x0f, 0xca, 0x26, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x1e, 0x61, 0x3f, 0x10, 0x8f, 0x50, 0x71, 0x70, 0xe2, 0xf7, 0xa8, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x08, 0x48, 0xdc, 0xc1, 0xeb, 0x9e, 0x5e, 0x37, 0x7c, 0x85, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x01, 0x09, 0xc9, 0xc1, 0xeb, 0x9e, 0x5e, 0x37, 0xfc, 0x45, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x04, 0x24, 0xa4, 0x03, 0x01, 0x09, 0xf1, 0xe1, 0x83, 0xd5, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x88, 0x49, 0xdc, 0xc1, 0xeb, 0x9e, 0x5e, 0x37, 0x28, 0xe1, 0x31, 0x37, 0x3c, 0xb8, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xc4, 0x24, 0x84, 0x03, 0x31, 0x09, 0xf9, 0xc1, 0x2a, 0x30, 0xd9, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x08, 0x4b, 0xdc, 0xc1, 0xeb, 0x9e, 0x5e, 0x37, 0x3c, 0xc2, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x04, 0x26, 0x24, 0x03, 0x81, 0x09, 0x45, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x0c, 0x52, 0xa9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x30, 0x21, 0x1e, 0x08, 0x4c, 0x58, 0x1c, 0xac, 0x02, 0x93, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc0, 0x84, 0xc9, 0x40, 0x60, 0x42, 0xcf, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc0, 0x84, 0xcd, 0x40, 0x60, 0xc2, 0xf4, 0xe0, 0xfd, 0x98, 0xa7, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x60, 0xc2, 0x76, 0x20, 0x30, 0xa1, 0xe2, 0xe0, 0x69, 0x1f, 0xa7, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x60, 0x42, 0xc7, 0x40, 0x60, 0x42, 0xcd, 0xc1, 0x59, 0x35, 0xa8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x36, 0x21, 0x19, 0x88, 0x4d, 0x28, 0xda, 0xa0, 0x84, 0xc7, 0xdc, 0xa0, 0xe0, 0xd9, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x0d, 0x9e, 0x4a, 0xd9, 0x31, 0x10, 0x9b, 0xb0, 0x38, 0x58, 0x05, 0x26, 0xbb, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb1, 0x09, 0x93, 0x81, 0xd8, 0x84, 0x9e, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x06, 0xaf, 0x95, 0xec, 0x38, 0x78, 0xbb, 0x62, 0xc7, 0xc1, 0xfb, 0x31, 0x4f, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd8, 0x84, 0xed, 0x40, 0x6c, 0xc2, 0xfc, 0xe0, 0xac, 0x20, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xc4, 0x26, 0xec, 0x07, 0x62, 0x13, 0x6a, 0x0e, 0x9e, 0xf6, 0x71, 0xda, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x10, 0xa0, 0x90, 0x0c, 0x04, 0x28, 0x9c, 0xd8, 0xa0, 0x84, 0xc7, 0xdc, 0xa0, 0xf4, 0xd3, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x02, 0x14, 0x06, 0x03, 0x01, 0x0a, 0x9b, 0x83, 0x55, 0x60, 0xb2, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x10, 0xa0, 0x30, 0x1a, 0x08, 0x50, 0xf8, 0xb0, 0xe1, 0x11, 0xd6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x40, 0x61, 0x36, 0x10, 0xa0, 0xd0, 0xb6, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x40, 0x61, 0x37, 0x10, 0xa0, 0x30, 0x3d, 0x28, 0x45, 0x35, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x00, 0x85, 0xed, 0x40, 0x80, 0x42, 0xc5, 0xc1, 0xd3, 0x3e, 0x4e, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x00, 0x85, 0x8e, 0x81, 0x00, 0x85, 0xb2, 0x83, 0x47, 0x88, 0xa6, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x04, 0x28, 0xd4, 0x0d, 0x04, 0x28, 0x5c, 0xd8, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0xf0, 0xe0, 0xce, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x04, 0x28, 0x54, 0x0e, 0x04, 0x28, 0xb4, 0x1e, 0x94, 0xda, 0x9e, 0x6b, 0x30, 0x48, 0xa5, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x40, 0xa1, 0x79, 0x20, 0x40, 0xe1, 0xc1, 0x06, 0xc7, 0x70, 0x83, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x08, 0x50, 0xa8, 0x3e, 0x78, 0x9e, 0xf1, 0xeb, 0xc1, 0xd3, 0x3e, 0x4e, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x88, 0x52, 0x48, 0x06, 0xa2, 0x14, 0x4e, 0x6c, 0x50, 0xc2, 0x63, 0x6e, 0x50, 0x24, 0x65, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x51, 0x0a, 0x83, 0x81, 0x28, 0x85, 0xcd, 0xc1, 0x2a, 0x30, 0xd9, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x88, 0x52, 0x18, 0x0d, 0x44, 0x29, 0x7c, 0xd8, 0xf0, 0x08, 0xeb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x10, 0xa5, 0x30, 0x1b, 0x88, 0x52, 0x68, 0xdb, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x10, 0xa5, 0xb0, 0x1b, 0x88, 0x52, 0x98, 0x1e, 0x94, 0xa2, 0x9a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x94, 0xc2, 0x76, 0x20, 0x4a, 0xa1, 0xe2, 0xe0, 0x69, 0x1f, 0xa7, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x94, 0x42, 0xc7, 0x40, 0x94, 0x42, 0xd9, 0xc1, 0x63, 0x4b, 0x53, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xa2, 0x14, 0xea, 0x06, 0xa2, 0x14, 0x2e, 0x6c, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0x78, 0x70, 0x67, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xa2, 0x14, 0x2a, 0x07, 0xa2, 0x14, 0x5a, 0x0f, 0x4a, 0xd9, 0xcc, 0x35, 0x28, 0x78, 0x36, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x4a, 0xa1, 0x79, 0x20, 0x4a, 0xe1, 0xc1, 0x06, 0xc7, 0x70, 0x83, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x88, 0x52, 0xa8, 0x3e, 0x78, 0x7e, 0xf9, 0xeb, 0xc1, 0xd3, 0x3e, 0x4e, 0xab, 0xc3, 0x29, 0xd6, 0x1a, 0x8c, 0xcc, 0xa5, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0xdb, 0xa0, 0xa0, 0x72, 0x1d, 0x00, 0xaf, 0xc2, 0xe0, 0xe0, 0xd8, 0xf2, 0x40, 0xce, 0xc2, 0xe8, 0xca, 0x40, 0xe8, 0xde, 0x40, 0xe8, 0xe4, 0xc2, 0xdc, 0xe6, 0xcc, 0xde, 0xe4, 0xda, 0x40, 0xc2, 0xd8, 0xd8, 0x40, 0xec, 0xc2, 0xd8, 0xea, 0xca, 0xe6, 0x40, 0xd2, 0xdc, 0x40, 0xe0, 0xd8, 0xc2, 0xc6, 0xca, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x54, 0xe3, 0x06, 0xc6, 0x35, 0x94, 0x6e, 0x78, 0x7c, 0x64, 0x83, 0x91, 0xb9, 0xb4, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb3, 0x1a, 0x77, 0xf0, 0xb4, 0xf9, 0xd7, 0x0d, 0x0a, 0xe5, 0xce, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x56, 0x43, 0x32, 0x30, 0xab, 0xa1, 0x64, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xac, 0x86, 0x68, 0x60, 0x56, 0xc3, 0x6e, 0xc3, 0x9f, 0x4b, 0x83, 0x87, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x30, 0xab, 0x21, 0x3c, 0x78, 0xf6, 0xfe, 0xeb, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xcc, 0x6a, 0x48, 0x07, 0x66, 0x35, 0x2c, 0x0e, 0x02, 0x47, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x98, 0xd5, 0x30, 0x19, 0x98, 0xd5, 0x30, 0x3b, 0x08, 0x6c, 0x88, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x59, 0x0d, 0xc3, 0x81, 0x59, 0x0d, 0x1d, 0x1b, 0xfe, 0x5c, 0x1a, 0x5c, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x59, 0x0d, 0xd3, 0x83, 0x07, 0x1b, 0xc0, 0x6e, 0x10, 0x4e, 0x63, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xac, 0x86, 0xf5, 0xc0, 0xac, 0x86, 0x82, 0x83, 0x07, 0x88, 0x92, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xac, 0x86, 0x86, 0x81, 0x59, 0x0d, 0x15, 0x07, 0x61, 0x3a, 0xd6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x0c, 0x6b, 0xdc, 0xc1, 0xd3, 0xe6, 0x5f, 0x37, 0x7c, 0x85, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd3, 0x1a, 0x77, 0xf0, 0xb4, 0xf9, 0xd7, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x0f, 0xee, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd3, 0x1a, 0xc2, 0x81, 0x69, 0x0d, 0xe9, 0xe1, 0x69, 0x9d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0xd7, 0xb8, 0x83, 0xa7, 0xcd, 0xbf, 0x6e, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x18, 0xd7, 0xd8, 0x81, 0x71, 0x0d, 0xeb, 0x0d, 0x9f, 0xbb, 0x0c, 0xee, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb8, 0x86, 0xe0, 0xe0, 0xa1, 0x1c, 0xb0, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xc6, 0x35, 0x24, 0x03, 0xe3, 0x1a, 0x06, 0x07, 0x4f, 0xfb, 0x38, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xc6, 0x35, 0x2c, 0x06, 0xc6, 0x35, 0x8c, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x8c, 0x6b, 0x98, 0x0c, 0x8c, 0x6b, 0xd8, 0x1c, 0xde, 0x0b, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xc6, 0x35, 0x8c, 0x06, 0xc6, 0x35, 0x6c, 0x0f, 0xde, 0x6d, 0xea, 0x5a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb8, 0x86, 0xf9, 0xc0, 0xb8, 0x86, 0xa2, 0x0d, 0x9f, 0xbb, 0x0c, 0xce, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb8, 0x86, 0x82, 0x83, 0xf7, 0xb3, 0xc0, 0x6e, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0x78, 0x70, 0x67, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xc6, 0x35, 0x94, 0x0c, 0x8c, 0x6b, 0xe8, 0x39, 0x28, 0xb5, 0x3d, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xc6, 0x35, 0x34, 0x0d, 0x8c, 0x6b, 0xe8, 0xdc, 0xf0, 0xb9, 0xcb, 0xe0, 0xf2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x8c, 0x6b, 0xe8, 0x3a, 0x78, 0x83, 0x0d, 0xec, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x86, 0x07, 0x77, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x60, 0x5c, 0x43, 0xdf, 0xc0, 0xb8, 0x86, 0xca, 0x83, 0x52, 0x36, 0xb3, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x5b, 0x41, 0xb8, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0x2a, 0x89, 0xb7, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x02, 0x47, 0x9e, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x7c, 0xe7, 0xe8, 0xf2, 0xd8, 0xca, 0xc8, 0x40, 0xea, 0xdc, 0xd2, 0xc6, 0xde, 0xc8, 0xca, 0x36, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x13, 0x23, 0x79, 0x0e, 0x42, 0xca, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xd8, 0x4a, 0x9e, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x38, 0x4c, 0x9e, 0x83, 0xd2, 0x9b, 0x7e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x54, 0x4e, 0x9e, 0x0d, 0xff, 0xce, 0xaf, 0xc1, 0xeb, 0xd2, 0xee, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x3e, 0x50, 0x9e, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x9e, 0x51, 0x9e, 0x83, 0x90, 0x32, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x09, 0x95, 0xe7, 0xe0, 0x38, 0x00, 0x5b, 0xad, 0x40, 0xd9, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5c, 0x71, 0xc8, 0x06, 0x72, 0xe0, 0x71, 0x1b, 0xa4, 0x5e, 0x14, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xb2, 0x38, 0x7a, 0xf0, 0x34, 0x29, 0xd8, 0x0d, 0x4a, 0x16, 0xf6, 0x59, 0x66, 0x0d, 0xda, 0x76, 0x6c, 0xda, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x68, 0xdb, 0xb1, 0x69, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xc9, 0x71, 0x03, 0xe9, 0xe4, 0xf8, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xe4, 0x90, 0x0c, 0x24, 0x93, 0xc3, 0x6e, 0xc3, 0x9f, 0x4b, 0x03, 0x9e, 0xd8, 0x9b, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xe4, 0x90, 0x1e, 0xbc, 0x95, 0x0b, 0x76, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xc9, 0x21, 0x1e, 0x48, 0x26, 0x87, 0xc9, 0x41, 0xd9, 0x84, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x93, 0xc3, 0x66, 0x20, 0x99, 0x1c, 0x66, 0x07, 0x65, 0x96, 0x6e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x36, 0x39, 0x24, 0x03, 0xd9, 0xe4, 0xb0, 0xd8, 0xf0, 0xe7, 0xd2, 0x06, 0x49, 0xbe, 0x9b, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x4d, 0x0e, 0xe9, 0xc1, 0x8b, 0xd0, 0x60, 0x37, 0xfc, 0x3b, 0xbf, 0x80, 0x6f, 0x16, 0xe6, 0x36, 0x57, 0xab, 0xc1, 0x5b, 0x49, 0x2b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x38, 0x32, 0x84, 0x1e, 0xbc, 0x95, 0xb4, 0xb2, 0x01, 0xf8, 0x98, 0xa3, 0x0b, 0x73, 0x23, 0x0b, 0x93, 0x23, 0x03, 0x09, 0x83, 0x83, 0x03, 0x99, 0xa3, 0x0b, 0xa3, 0x2b, 0xdb, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0x2b, 0x69, 0xe5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xa1, 0xe3, 0x06, 0x52, 0xd2, 0x21, 0xdb, 0xe0, 0x00, 0x21, 0x3a, 0x80, 0xf7, 0x59, 0x18, 0x1b, 0x5b, 0x4b, 0xd8, 0x59, 0x99, 0x1b, 0x5d, 0x8b, 0xd8, 0xdb, 0x1d, 0xbb, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0xe8, 0xb8, 0x83, 0x27, 0xd6, 0xc1, 0x6e, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x42, 0x87, 0x64, 0x20, 0x13, 0x1d, 0xb2, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0xe8, 0x90, 0x0e, 0x64, 0xa1, 0xc3, 0x83, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x83, 0x27, 0xdc, 0x33, 0x6e, 0xf8, 0x73, 0x69, 0xc0, 0x7b, 0xab, 0x93, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x0b, 0x1d, 0x16, 0x03, 0x59, 0xe8, 0xb0, 0x3a, 0x68, 0xdb, 0x7a, 0x7c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x43, 0x87, 0x74, 0x20, 0x0d, 0x1d, 0x2e, 0x6c, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xf0, 0x9c, 0xd5, 0x95, 0xcd, 0xd1, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0x56, 0x87, 0x3f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x0d, 0x1d, 0x16, 0x03, 0x69, 0xe8, 0xb0, 0x3a, 0x68, 0xdb, 0x7a, 0x7c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x43, 0x87, 0x74, 0x20, 0x0f, 0x1d, 0x2e, 0x6c, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x1c, 0xbc, 0x41, 0x4d, 0x71, 0xc3, 0x9f, 0x4b, 0x03, 0x1e, 0x59, 0x18, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0xe8, 0xb0, 0x18, 0xc8, 0x43, 0x87, 0xd5, 0xc1, 0x7a, 0xad, 0xe7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x11, 0x1d, 0xd2, 0x81, 0x44, 0x74, 0xf8, 0xb1, 0xe1, 0x89, 0xf7, 0x0d, 0x9e, 0xf4, 0x2c, 0xb2, 0xe1, 0xcf, 0xa5, 0x01, 0x6f, 0x2e, 0x0c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x44, 0x74, 0x58, 0x0c, 0x24, 0xa2, 0xc3, 0xea, 0xe0, 0x8c, 0x84, 0xda, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x8a, 0x0e, 0xc9, 0x40, 0x36, 0x3a, 0x64, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0xd1, 0x21, 0x1d, 0x48, 0x45, 0x87, 0x2b, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0xbe, 0xd5, 0xd1, 0x9d, 0xbd, 0xa5, 0xb9, 0x9d, 0x81, 0xcc, 0xd5, 0x89, 0xcd, 0x6d, 0xf8, 0x73, 0x69, 0xc0, 0xbb, 0x2b, 0xc3, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x15, 0x1d, 0x16, 0x03, 0xa9, 0xe8, 0xb0, 0xda, 0xf0, 0xef, 0xfc, 0x06, 0xcf, 0x11, 0xae, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x45, 0x87, 0x74, 0x20, 0x17, 0x1d, 0xae, 0x6c, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x99, 0xe6, 0x36, 0xf6, 0xd6, 0x96, 0xe6, 0x76, 0x06, 0x32, 0x57, 0x27, 0x36, 0xb7, 0xe1, 0xcf, 0xa5, 0x01, 0x6f, 0xae, 0x0e, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5c, 0x74, 0x58, 0x0c, 0xe4, 0xa2, 0xc3, 0x6a, 0xc3, 0xbf, 0xf3, 0x1b, 0x3c, 0xe3, 0xb8, 0xb2, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x19, 0x1d, 0xd2, 0x81, 0x64, 0x74, 0xb8, 0xb2, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xe7, 0xdc, 0x98, 0x5c, 0x1e, 0x88, 0x58, 0x9a, 0x1b, 0x59, 0x9a, 0xdb, 0xd9, 0xdc, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0xb9, 0xb5, 0x7c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xd1, 0x61, 0x31, 0x90, 0x8c, 0x0e, 0x05, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x8c, 0x0e, 0x93, 0x81, 0x64, 0x74, 0x58, 0x1d, 0x94, 0x88, 0xf5, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x32, 0x3a, 0xcc, 0x06, 0x92, 0xd1, 0x61, 0x7a, 0x70, 0x46, 0x42, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xd1, 0x61, 0x3b, 0x90, 0x8c, 0x0e, 0xfb, 0x83, 0x27, 0xb0, 0xc1, 0xd6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x8e, 0x0e, 0xc9, 0x40, 0x4a, 0x3a, 0x7e, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x3a, 0x3a, 0xa4, 0x03, 0xe9, 0xe8, 0x70, 0x65, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xcf, 0x31, 0xb4, 0x30, 0xb7, 0xb3, 0x32, 0x10, 0xb7, 0xba, 0x36, 0xb1, 0x32, 0xb9, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x61, 0x63, 0xf4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xa3, 0xc3, 0x62, 0x20, 0x1d, 0x1d, 0x46, 0x07, 0x65, 0x96, 0xee, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x8f, 0x0e, 0xe9, 0x40, 0x3e, 0x3a, 0x9c, 0xd8, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xe0, 0x2d, 0x73, 0xa3, 0x93, 0x7b, 0x83, 0xcb, 0xdb, 0xf0, 0xe7, 0xd2, 0x80, 0x57, 0xe6, 0x96, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x3e, 0x3a, 0x2c, 0x06, 0xf2, 0xd1, 0x61, 0x75, 0xf0, 0xdc, 0x7b, 0x90, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x21, 0x1d, 0xd2, 0x81, 0x84, 0x74, 0x78, 0xb2, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xdf, 0x58, 0x9d, 0x9c, 0x5c, 0x99, 0x1b, 0x1d, 0x08, 0x5d, 0x5a, 0x5b, 0xd9, 0x86, 0x3f, 0x97, 0x36, 0x48, 0x20, 0xdc, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x84, 0x74, 0x58, 0x0c, 0x24, 0xa4, 0xc3, 0xe8, 0xe0, 0xc8, 0xd7, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xa4, 0x43, 0x3a, 0x90, 0x91, 0x0e, 0x47, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x62, 0x7b, 0x0b, 0x23, 0x03, 0x99, 0x7b, 0xab, 0x93, 0x1b, 0x2b, 0xdb, 0xf0, 0xe7, 0xd2, 0x80, 0x27, 0x96, 0xb7, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x46, 0x3a, 0x2c, 0x06, 0x32, 0xd2, 0x61, 0x75, 0xf0, 0x54, 0xa3, 0x90, 0x5a, 0x01, 0xdf, 0x2c, 0x4c, 0xae, 0xdd, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0x0a, 0x3a, 0xec, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x95, 0xe3, 0x06, 0x72, 0xcb, 0xf1, 0x1b, 0x1c, 0x20, 0x44, 0x37, 0x78, 0x0a, 0x3a, 0xec, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x96, 0xe3, 0x0e, 0x9e, 0xbe, 0x0e, 0xbb, 0x41, 0xa8, 0x21, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0xe5, 0x90, 0x0c, 0x24, 0x96, 0xc3, 0x68, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x62, 0x39, 0x44, 0x03, 0x89, 0xe5, 0x90, 0x1f, 0xb4, 0x9a, 0x54, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x96, 0xc3, 0x60, 0x20, 0xb1, 0x1c, 0x16, 0x07, 0x05, 0x45, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x58, 0x0e, 0x93, 0x81, 0xc4, 0x72, 0xd8, 0x1c, 0x14, 0x14, 0x99, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x66, 0x39, 0xee, 0xe0, 0xe9, 0xeb, 0xb0, 0x1b, 0x04, 0xed, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x59, 0x0e, 0xc9, 0x40, 0x66, 0x39, 0x54, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x2c, 0x87, 0x68, 0x20, 0xb3, 0x1c, 0xf2, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x05, 0xfe, 0xd8, 0xdb, 0x1b, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x96, 0xc3, 0x60, 0x20, 0xb3, 0x1c, 0x76, 0x1b, 0xfe, 0x5c, 0x1a, 0x1c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xcc, 0x72, 0x98, 0x1c, 0x3c, 0xc7, 0x20, 0x76, 0xc3, 0xbf, 0xf3, 0x0b, 0xf0, 0xa0, 0xd5, 0xd1, 0x8d, 0xa1, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x96, 0xc3, 0x70, 0x20, 0xb3, 0x1c, 0x9a, 0x36, 0xfc, 0xb9, 0x34, 0x78, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0xe5, 0x30, 0x3d, 0x78, 0x36, 0x43, 0xec, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x96, 0xc3, 0x76, 0x20, 0xb3, 0x1c, 0xe6, 0x07, 0x25, 0x62, 0xfd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x59, 0x0e, 0xfb, 0x81, 0xcc, 0x72, 0xe8, 0x38, 0x38, 0x23, 0xa1, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0xe5, 0x50, 0x32, 0x90, 0x59, 0x0e, 0x45, 0x07, 0x0f, 0x8b, 0x19, 0xad, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xb5, 0x1c, 0x92, 0x81, 0xd4, 0x72, 0xe8, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x5a, 0x0e, 0xd1, 0x40, 0x6a, 0x39, 0xe4, 0x07, 0xad, 0xaa, 0x09, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xe5, 0x30, 0x18, 0x48, 0x2d, 0x87, 0xf5, 0x86, 0x3f, 0x97, 0x06, 0x87, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xb5, 0x1c, 0x26, 0x07, 0x8f, 0x05, 0x89, 0xdd, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd4, 0x72, 0xd8, 0x0c, 0xa4, 0x96, 0xc3, 0xee, 0xa0, 0x6c, 0xc2, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0xcb, 0x61, 0x38, 0x90, 0x5a, 0x0e, 0xe3, 0x83, 0x87, 0xc5, 0x8c, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x96, 0xc3, 0x7c, 0x20, 0xb5, 0x1c, 0xea, 0x36, 0xfc, 0xb9, 0x34, 0x78, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xe5, 0x50, 0x70, 0xf0, 0x0c, 0x96, 0xd8, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x2d, 0x87, 0x86, 0x81, 0xd4, 0x72, 0x28, 0x39, 0x28, 0x11, 0xeb, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd4, 0x72, 0x68, 0x19, 0x48, 0x2d, 0x87, 0xa2, 0x83, 0xa3, 0x36, 0xe8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x5a, 0x0e, 0x4d, 0x03, 0xa9, 0xe5, 0xd0, 0xb6, 0xe1, 0xdf, 0xf9, 0x35, 0x78, 0x0a, 0x3a, 0x6c, 0x55, 0x2b, 0xe0, 0xdf, 0x95, 0xb1, 0xb1, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0xef, 0xca, 0x89, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe4, 0x74, 0x48, 0x07, 0x92, 0xd3, 0x61, 0xbd, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xe9, 0x10, 0x0f, 0x24, 0xa7, 0xc3, 0xe4, 0xa0, 0xf4, 0xa6, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xd3, 0x61, 0x33, 0x90, 0x9c, 0x0e, 0xbb, 0x83, 0x47, 0xe1, 0x85, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xe9, 0x30, 0x1c, 0x48, 0x4e, 0x87, 0xf1, 0xc1, 0x7a, 0xad, 0xe7, 0x56, 0x83, 0x47, 0xd2, 0x89, 0x6c, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x06, 0x6f, 0x1a, 0xb2, 0x1b, 0xc0, 0xfb, 0xad, 0x8e, 0xee, 0xec, 0x2d, 0xcd, 0xed, 0x0c, 0x44, 0xae, 0x6c, 0xae, 0x8e, 0x8d, 0x6e, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0x91, 0x74, 0x22, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x2e, 0x8e, 0x1b, 0xc8, 0x19, 0xc7, 0x6f, 0x10, 0xb4, 0x3f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xba, 0x38, 0x24, 0x03, 0xe9, 0xe2, 0x70, 0x65, 0xc3, 0x13, 0xef, 0x1b, 0x3c, 0x42, 0x13, 0x6f, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xba, 0x38, 0x44, 0x03, 0xe9, 0xe2, 0x90, 0x1f, 0x3c, 0xbf, 0x13, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x17, 0x87, 0xc1, 0x40, 0xba, 0x38, 0x2c, 0x37, 0xfc, 0xb9, 0xb4, 0x41, 0x13, 0xda, 0xd7, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x2e, 0x0e, 0xc3, 0x83, 0xf7, 0x5c, 0xc5, 0x1e, 0x84, 0xe9, 0x58, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xbe, 0x38, 0x24, 0x03, 0xf9, 0xe2, 0xb0, 0xdf, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x2f, 0x0e, 0xd1, 0x40, 0xbe, 0x38, 0xe4, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x78, 0xcd, 0xc5, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x2f, 0x0e, 0x83, 0x81, 0x7c, 0x71, 0x18, 0x6d, 0xf8, 0x73, 0x69, 0xe0, 0xd3, 0xc8, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x17, 0x87, 0xcd, 0xc1, 0x43, 0xc7, 0x62, 0x0f, 0xc2, 0x74, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x17, 0x87, 0xd5, 0x40, 0xbe, 0x38, 0xcc, 0x37, 0xfc, 0xb9, 0xb4, 0x41, 0x13, 0xda, 0xd7, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x2f, 0x0e, 0xeb, 0x83, 0xf7, 0xa5, 0xc5, 0x1e, 0x84, 0xe9, 0x58, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc2, 0x38, 0x24, 0x03, 0x09, 0xe3, 0x70, 0x68, 0xc3, 0x13, 0xef, 0x1b, 0x3c, 0x70, 0x1e, 0x6f, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc2, 0x38, 0x44, 0x03, 0x09, 0xe3, 0x90, 0x1f, 0xac, 0x42, 0x09, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0xc6, 0x61, 0x30, 0x90, 0x30, 0x0e, 0x3d, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x51, 0xfa, 0x78, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x30, 0x0e, 0xb3, 0x83, 0x57, 0xd8, 0xc5, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc2, 0x38, 0xec, 0x06, 0x12, 0xc6, 0x61, 0x7b, 0x50, 0x36, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0xe3, 0x30, 0x1e, 0x48, 0x18, 0x87, 0x9a, 0x83, 0x07, 0xfe, 0xe3, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x31, 0x0e, 0xc9, 0x40, 0xc6, 0x38, 0xbc, 0xda, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0x3f, 0xb7, 0x37, 0x3a, 0x10, 0xb9, 0xb2, 0x30, 0xb2, 0x3c, 0x10, 0xba, 0x37, 0x10, 0xb4, 0x30, 0x37, 0x32, 0xb6, 0x32, 0x10, 0x38, 0xb6, 0xb2, 0xb0, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0xe3, 0x10, 0x0d, 0x64, 0x8c, 0x43, 0xbe, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x57, 0x50, 0xbd, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0xe3, 0x30, 0x18, 0xc8, 0x18, 0x87, 0xc5, 0x41, 0x08, 0x3e, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x8c, 0x43, 0x32, 0x90, 0x32, 0x0e, 0xbb, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x29, 0xe3, 0x10, 0x0d, 0xa4, 0x8c, 0x43, 0x7e, 0xf0, 0xce, 0x30, 0x95, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x65, 0x1c, 0x06, 0x03, 0x29, 0xe3, 0x30, 0xdb, 0xf0, 0xe7, 0xd2, 0xe0, 0xf0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x8c, 0xc3, 0xe4, 0xe0, 0xc5, 0x94, 0xb1, 0x1b, 0xfe, 0x9d, 0x5f, 0x83, 0xa7, 0x89, 0xa9, 0x54, 0xad, 0x00, 0x6f, 0xd9, 0xd9, 0x59, 0x4b, 0x98, 0x5b, 0xbe, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0xc2, 0xcc, 0xd8, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x38, 0x87, 0xc1, 0x40, 0xc2, 0x39, 0x54, 0x6d, 0x10, 0xb4, 0x3f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc2, 0x39, 0x6c, 0x06, 0x12, 0xce, 0x61, 0xbf, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe1, 0x1c, 0x46, 0x03, 0x09, 0xe7, 0xb0, 0xdb, 0x90, 0x01, 0x3f, 0x38, 0xf8, 0xbf, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0xe7, 0x30, 0x1c, 0x48, 0x38, 0x87, 0xf9, 0x86, 0x7f, 0xe7, 0x17, 0xa0, 0x2b, 0x3b, 0x3b, 0x6b, 0x89, 0xa9, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x70, 0x0e, 0x05, 0x03, 0x09, 0xe7, 0xd0, 0xb4, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe1, 0x1c, 0x1a, 0x06, 0x12, 0xce, 0xa1, 0x64, 0x43, 0x06, 0xfc, 0xe0, 0x5c, 0x2b, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x9c, 0x43, 0xcb, 0x40, 0xc2, 0x39, 0x14, 0x6d, 0xf8, 0x77, 0x7e, 0x01, 0xaf, 0xec, 0xec, 0xac, 0x3a, 0x9c, 0x62, 0x6b, 0xf0, 0xf4, 0x03, 0xb9, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xa7, 0x1f, 0xc8, 0x35, 0xc0, 0x1f, 0x06, 0x07, 0x07, 0x32, 0xf6, 0x26, 0x57, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0xea, 0xb8, 0x81, 0x14, 0x78, 0xfc, 0x86, 0x07, 0x25, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x6c, 0x75, 0x48, 0x06, 0xb2, 0xd5, 0x21, 0x3d, 0x78, 0x45, 0x2e, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xab, 0xe3, 0x0e, 0x1e, 0x7c, 0x1b, 0xbb, 0x41, 0xc9, 0xc2, 0x3e, 0xcb, 0xac, 0xc1, 0x23, 0xe9, 0x44, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x1e, 0x49, 0x27, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xec, 0xf8, 0x81, 0x8c, 0x76, 0x48, 0x36, 0x38, 0x40, 0x88, 0x0e, 0xe0, 0x7d, 0x16, 0xc6, 0xc6, 0xd6, 0x12, 0x76, 0x56, 0xe6, 0x46, 0xd7, 0x72, 0x96, 0x66, 0x46, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x36, 0x3b, 0xfe, 0xe0, 0x21, 0xc2, 0xb1, 0x1b, 0x04, 0xed, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xcd, 0x0e, 0xd9, 0x40, 0x36, 0x3b, 0x54, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x66, 0x87, 0x70, 0x20, 0x9b, 0x1d, 0x16, 0x07, 0x4f, 0xf2, 0x53, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0xd9, 0x61, 0x32, 0x90, 0xcd, 0x0e, 0x1d, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x75, 0x5c, 0x7c, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xcd, 0x0e, 0xc3, 0x83, 0x57, 0x3d, 0xc7, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x36, 0x3b, 0x2c, 0x07, 0xb2, 0xd9, 0x61, 0x7d, 0x10, 0x52, 0x26, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x36, 0x3b, 0xcc, 0x07, 0xb2, 0xd9, 0xa1, 0xe2, 0xe0, 0x8c, 0x84, 0xda, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xcd, 0x0e, 0x25, 0x03, 0xd9, 0xec, 0xd0, 0xb4, 0xe1, 0xcf, 0xa5, 0x0d, 0x5e, 0x17, 0x16, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0xec, 0xd0, 0x72, 0xf0, 0x82, 0xed, 0xd8, 0x83, 0xf7, 0x22, 0x90, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xb3, 0x43, 0x36, 0x90, 0xce, 0x0e, 0xad, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0xd9, 0x21, 0x1c, 0x48, 0x67, 0x87, 0xc5, 0xc1, 0x13, 0xf1, 0x14, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x74, 0x76, 0x98, 0x0c, 0xa4, 0xb3, 0x43, 0xc7, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x1d, 0x17, 0xdf, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xb3, 0xc3, 0xf0, 0xe0, 0xcd, 0xe6, 0xb1, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xce, 0x0e, 0xcb, 0x81, 0x74, 0x76, 0x58, 0x1f, 0x84, 0x94, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xce, 0x0e, 0xf3, 0x81, 0x74, 0x76, 0xa8, 0x38, 0x38, 0x23, 0xa1, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xb3, 0x43, 0xc9, 0x40, 0x3a, 0x3b, 0x94, 0x6e, 0xf8, 0x73, 0x69, 0x83, 0xa6, 0xaf, 0xc7, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x9d, 0x1d, 0x9a, 0x0e, 0xde, 0x27, 0x1f, 0xbb, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0xec, 0x50, 0x35, 0x90, 0xce, 0x0e, 0x75, 0x07, 0x65, 0x13, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xce, 0x0e, 0x7d, 0x03, 0xe9, 0xec, 0xd0, 0x79, 0xd0, 0xb6, 0xf5, 0x78, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0xec, 0x90, 0x0d, 0xe4, 0xb3, 0x43, 0xcb, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x7c, 0x76, 0x08, 0x07, 0xf2, 0xd9, 0x61, 0x76, 0xf0, 0x2e, 0x38, 0xc5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x9f, 0x1d, 0x76, 0x03, 0xf9, 0xec, 0x50, 0xb2, 0xe1, 0xcf, 0xa5, 0xc1, 0xe1, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x67, 0x87, 0xe5, 0xc1, 0xcb, 0x07, 0x64, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x9f, 0x1d, 0xa6, 0x03, 0xf9, 0xec, 0x30, 0x3f, 0x28, 0x9b, 0x30, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x7c, 0x76, 0xd8, 0x0f, 0xe4, 0xb3, 0x43, 0xc7, 0x41, 0x83, 0xe2, 0x81, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xb4, 0x43, 0x36, 0x90, 0xd0, 0x0e, 0x25, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0xda, 0x21, 0x1c, 0x48, 0x68, 0x87, 0xd5, 0xc1, 0xc3, 0xcc, 0x14, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x84, 0x76, 0x98, 0x0d, 0x24, 0xb4, 0x43, 0xc7, 0x86, 0x3f, 0x97, 0x06, 0x87, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xa1, 0x1d, 0x86, 0x07, 0x6f, 0xa7, 0x90, 0xdd, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x84, 0x76, 0x58, 0x0e, 0x24, 0xb4, 0xc3, 0xfa, 0xa0, 0x6c, 0xc2, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0xda, 0x61, 0x3e, 0x90, 0xd0, 0x0e, 0x15, 0x07, 0x0d, 0x8a, 0x07, 0x56, 0xab, 0xc1, 0xab, 0xd2, 0x14, 0x37, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x5e, 0x95, 0xa6, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0xed, 0xf8, 0x81, 0xc4, 0x76, 0x48, 0x36, 0x38, 0x40, 0x88, 0x0e, 0xe0, 0x7d, 0x16, 0xc6, 0xc6, 0xd6, 0x12, 0x76, 0x56, 0xe6, 0x46, 0xd7, 0x32, 0x97, 0x76, 0xe6, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x52, 0x3b, 0xfe, 0xe0, 0x61, 0x22, 0xb2, 0x1b, 0x04, 0xed, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xd4, 0x0e, 0xd9, 0x40, 0x52, 0x3b, 0x94, 0x6c, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x6a, 0x87, 0x70, 0x20, 0xa9, 0x1d, 0x56, 0x07, 0x0f, 0x33, 0x53, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xda, 0x61, 0x36, 0x90, 0xd4, 0x0e, 0x1d, 0x1b, 0xfe, 0x5c, 0x1a, 0x1c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa4, 0x76, 0x18, 0x1e, 0xbc, 0xf2, 0x45, 0x76, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xda, 0x61, 0x39, 0x90, 0xd4, 0x0e, 0xeb, 0x83, 0xb2, 0x09, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x6a, 0x87, 0xf9, 0x40, 0x52, 0x3b, 0x54, 0x1c, 0x34, 0x28, 0x1e, 0x58, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x56, 0x3b, 0x64, 0x03, 0x59, 0xed, 0xd0, 0xb2, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xab, 0x1d, 0xc2, 0x81, 0xac, 0x76, 0x98, 0x1d, 0xbc, 0x0b, 0x4e, 0x71, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x6a, 0x87, 0xdd, 0x40, 0x56, 0x3b, 0x94, 0x6c, 0xf8, 0x73, 0x69, 0x70, 0x78, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0xda, 0x61, 0x79, 0xf0, 0x4e, 0x20, 0xd9, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x6a, 0x87, 0xe9, 0x40, 0x56, 0x3b, 0xcc, 0x0f, 0xca, 0x26, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xab, 0x1d, 0xf6, 0x03, 0x59, 0xed, 0xd0, 0x71, 0xd0, 0xa0, 0x78, 0x60, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0xed, 0x90, 0x0d, 0xa4, 0xb5, 0xc3, 0x70, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x5a, 0x3b, 0x84, 0x03, 0x69, 0xed, 0xb0, 0x38, 0x78, 0x92, 0x9f, 0xe2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xd6, 0x0e, 0x93, 0x81, 0xb4, 0x76, 0xd8, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0xd7, 0x85, 0x85, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x5a, 0x3b, 0x6c, 0x0e, 0x1e, 0x1a, 0x25, 0x7b, 0xf0, 0x5e, 0x04, 0x92, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbc, 0x76, 0xc8, 0x06, 0xf2, 0xda, 0x61, 0xb4, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xaf, 0x1d, 0xc2, 0x81, 0xbc, 0x76, 0x58, 0x1c, 0x3c, 0x11, 0x4f, 0x71, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x6b, 0x87, 0xc9, 0x40, 0x5e, 0x3b, 0x6c, 0x0e, 0x42, 0xf0, 0xa1, 0x0e, 0xa7, 0xd8, 0x1a, 0xbc, 0x58, 0x5e, 0x64, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0xc5, 0xf2, 0x22, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xb1, 0x8e, 0x1f, 0x48, 0x59, 0x87, 0xdd, 0x06, 0x07, 0x08, 0xd1, 0x01, 0xbc, 0xcf, 0xc2, 0xd8, 0xd8, 0x5a, 0xc2, 0xce, 0xca, 0xdc, 0xe8, 0x5a, 0xc6, 0xc2, 0xe4, 0xc8, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x59, 0xc7, 0x1f, 0x3c, 0x4e, 0x4c, 0x76, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0xd6, 0x21, 0x18, 0x48, 0x59, 0x87, 0x70, 0xc3, 0xdb, 0x3a, 0x1b, 0x3c, 0x87, 0x75, 0xa4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x65, 0x1d, 0xd2, 0x81, 0x94, 0x75, 0x58, 0x1c, 0x2c, 0x35, 0x78, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0xd6, 0x61, 0x32, 0x90, 0xb2, 0x0e, 0xb3, 0x83, 0xb7, 0xa7, 0x8a, 0x34, 0x6b, 0x78, 0x9e, 0x64, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xf0, 0x3c, 0xc9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xad, 0xe3, 0x07, 0x52, 0xd8, 0x21, 0xd9, 0xe0, 0x00, 0x21, 0x3a, 0x80, 0xf7, 0x59, 0x18, 0x1b, 0x5b, 0x4b, 0xd8, 0x59, 0x99, 0x1b, 0x5d, 0x8b, 0xdb, 0x1b, 0x5d, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0xeb, 0xf8, 0x83, 0x27, 0xd3, 0xc9, 0x6e, 0x10, 0xb4, 0x3f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xd6, 0x3a, 0x64, 0x03, 0x59, 0xeb, 0xd0, 0xb5, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x6b, 0x1d, 0xc2, 0x81, 0xac, 0x75, 0x98, 0x1c, 0xbc, 0x65, 0xf0, 0x72, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x5a, 0x87, 0xcd, 0x40, 0xd6, 0x3a, 0x94, 0x6c, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x5a, 0x87, 0xd1, 0x40, 0xd6, 0x3a, 0x2c, 0x37, 0xfc, 0xb9, 0xb4, 0x41, 0xd3, 0xd7, 0xe3, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xb5, 0x0e, 0xab, 0x83, 0xf7, 0x12, 0xca, 0x1e, 0xb4, 0x6d, 0x3d, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xad, 0xc3, 0x74, 0x20, 0x6b, 0x1d, 0x3a, 0x36, 0xfc, 0xb9, 0xb4, 0xe1, 0xfb, 0xf6, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x5a, 0x87, 0xfd, 0xc1, 0xb3, 0x15, 0x65, 0x0f, 0xd6, 0x6b, 0x3d, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xad, 0x43, 0xcb, 0x40, 0xd6, 0x3a, 0x54, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0x37, 0x45, 0x8e, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xd6, 0x3a, 0xd4, 0x1c, 0xbc, 0x1b, 0x52, 0x76, 0xc3, 0xbf, 0xf3, 0x1b, 0x3c, 0x97, 0x2d, 0xa5, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb4, 0x75, 0xc8, 0x06, 0xd2, 0xd6, 0x61, 0xbc, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x6d, 0x1d, 0xc2, 0x81, 0xb4, 0x75, 0x58, 0x1c, 0xbc, 0x37, 0x88, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x5b, 0x87, 0xc9, 0x40, 0xda, 0x3a, 0x6c, 0x37, 0xfc, 0x3b, 0xbf, 0x06, 0xaf, 0x3f, 0x40, 0xac, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbc, 0x75, 0xc8, 0x06, 0xf2, 0xd6, 0x61, 0xb8, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x6f, 0x1d, 0xc2, 0x81, 0xbc, 0x75, 0x58, 0x6c, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0x2e, 0xf0, 0xe1, 0xf2, 0xe4, 0xca, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x6f, 0x1d, 0x26, 0x03, 0x79, 0xeb, 0xb0, 0xdb, 0xf0, 0xe7, 0xd2, 0x06, 0x27, 0xca, 0xd4, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x5b, 0x87, 0xcd, 0xc1, 0x0b, 0x4e, 0x65, 0x0f, 0x1a, 0x14, 0x0f, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x5c, 0x87, 0x6c, 0x20, 0x73, 0x1d, 0xe6, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0xd7, 0x21, 0x1c, 0xc8, 0x5c, 0x87, 0xc5, 0xc1, 0x0b, 0x9c, 0x16, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xcc, 0x75, 0x98, 0x0c, 0x64, 0xae, 0xc3, 0x6e, 0xc3, 0x9f, 0x4b, 0x1b, 0xb4, 0x5f, 0x3e, 0xbe, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0xeb, 0xb0, 0x39, 0x78, 0xab, 0xac, 0xec, 0x86, 0x7f, 0xe7, 0x37, 0x78, 0xf3, 0xde, 0x5e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xe6, 0x3a, 0x0c, 0x07, 0x32, 0xd7, 0x61, 0xbd, 0xe1, 0xcf, 0xa5, 0x0d, 0x5e, 0xb7, 0x14, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0xeb, 0xb0, 0x3c, 0x78, 0x52, 0xae, 0xec, 0xc1, 0xeb, 0xe8, 0xec, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0xd7, 0x21, 0x1b, 0x48, 0x5d, 0x87, 0xf9, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd4, 0x75, 0x08, 0x07, 0x52, 0xd7, 0x61, 0x71, 0xf0, 0x4e, 0xb7, 0xc1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x75, 0x1d, 0x26, 0x03, 0xa9, 0xeb, 0xb0, 0xdb, 0xf0, 0xe7, 0xd2, 0x06, 0x2f, 0x68, 0x08, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd4, 0x75, 0xd8, 0x1c, 0xbc, 0xa0, 0x58, 0xf6, 0xe0, 0xad, 0x7a, 0x21, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xea, 0x3a, 0x0c, 0x07, 0x52, 0xd7, 0x61, 0xbd, 0xe1, 0xcf, 0xa5, 0x0d, 0xda, 0x2f, 0x1f, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd4, 0x75, 0x58, 0x1e, 0x3c, 0x65, 0x59, 0xf6, 0xe0, 0x7d, 0xb6, 0xb2, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0xeb, 0x90, 0x0d, 0xe4, 0xae, 0xc3, 0x7c, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xee, 0x3a, 0x84, 0x03, 0xb9, 0xeb, 0xb0, 0xd8, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0x5d, 0xe0, 0x8f, 0xd5, 0xb1, 0xb1, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xee, 0x3a, 0x4c, 0x06, 0x72, 0xd7, 0x61, 0xb7, 0xe1, 0xcf, 0xa5, 0x0d, 0x5e, 0xd0, 0x10, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0xeb, 0xb0, 0x39, 0x78, 0xf2, 0xb5, 0xec, 0xc1, 0x5b, 0xf5, 0x42, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xdc, 0x75, 0x18, 0x0e, 0xe4, 0xae, 0xc3, 0x7a, 0xc3, 0x9f, 0x4b, 0x1b, 0xb4, 0x5f, 0x3e, 0xbe, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0xeb, 0xb0, 0x3c, 0x78, 0x7b, 0xb7, 0xec, 0xc1, 0xfb, 0x6c, 0x65, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0xd7, 0x21, 0x1b, 0xc8, 0x5e, 0x87, 0x92, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0xeb, 0x10, 0x0e, 0x64, 0xaf, 0xc3, 0x62, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x2d, 0x98, 0x72, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0xeb, 0x30, 0x19, 0xc8, 0x5e, 0x87, 0xdd, 0x86, 0x3f, 0x97, 0x36, 0x78, 0xf3, 0x40, 0xec, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xaf, 0xc3, 0xe6, 0xe0, 0x71, 0xea, 0xb2, 0x1b, 0xfe, 0x9d, 0x5f, 0x83, 0x37, 0x0f, 0xc4, 0xd6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xbd, 0x0e, 0xc3, 0x81, 0xec, 0x75, 0x58, 0x6f, 0xf8, 0x73, 0x69, 0x83, 0x83, 0xe9, 0xe7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xaf, 0xc3, 0xf2, 0xe0, 0x21, 0xf1, 0xb2, 0x07, 0x67, 0x24, 0xd4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x7b, 0x1d, 0xe6, 0x03, 0xd9, 0xeb, 0xd0, 0xb1, 0xe1, 0xcf, 0xa5, 0x0d, 0x5e, 0xb7, 0x14, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0xeb, 0xb0, 0x3f, 0x78, 0xc9, 0xbd, 0xec, 0xc1, 0xeb, 0xe8, 0xec, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0xd7, 0x21, 0x1b, 0x48, 0x5f, 0x87, 0xe1, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf4, 0x75, 0x08, 0x07, 0xd2, 0xd7, 0x61, 0xb1, 0x21, 0x03, 0x7e, 0xd0, 0xc4, 0x16, 0xf3, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xbe, 0x0e, 0x93, 0x81, 0xf4, 0x75, 0xd8, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0x37, 0x0f, 0xc4, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xfa, 0x3a, 0x6c, 0x0e, 0x1e, 0x34, 0x30, 0x7b, 0xf0, 0x22, 0x77, 0xd9, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfc, 0x75, 0xc8, 0x06, 0xf2, 0xd7, 0x61, 0xb8, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x7f, 0x1d, 0xc2, 0x81, 0xfc, 0x75, 0x58, 0x6c, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xa0, 0x98, 0xe8, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xd7, 0x61, 0x32, 0x90, 0xbf, 0x0e, 0xbb, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0xe6, 0x81, 0xd8, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x5f, 0x87, 0xcd, 0xc1, 0x6b, 0x1f, 0x66, 0x0f, 0x5e, 0xe4, 0x2e, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xc1, 0x0e, 0xd9, 0x40, 0x06, 0x3b, 0xb4, 0x6c, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x60, 0x87, 0x70, 0x20, 0x83, 0x1d, 0x16, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x78, 0xdb, 0x41, 0xd0, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xc1, 0x0e, 0x93, 0x81, 0x0c, 0x76, 0x98, 0x6e, 0xf8, 0x73, 0x69, 0x80, 0x6f, 0xae, 0x6c, 0x4c, 0xae, 0x8c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x0c, 0x76, 0x58, 0x1e, 0x3c, 0x88, 0x63, 0xf6, 0xf0, 0xc1, 0xea, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xc1, 0x0e, 0xdb, 0x81, 0x0c, 0x76, 0x28, 0xd9, 0xf0, 0xef, 0xfc, 0x02, 0xfe, 0x1c, 0x5c, 0x98, 0xdc, 0xc1, 0x3b, 0x91, 0xeb, 0x6a, 0x35, 0x78, 0xcb, 0xaf, 0xdd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xb6, 0xe3, 0x07, 0x32, 0xe0, 0x21, 0xd9, 0xf0, 0x51, 0xfb, 0x06, 0x01, 0x74, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xed, 0x90, 0x1d, 0x3c, 0xe9, 0x64, 0x76, 0x83, 0xa4, 0x05, 0xa3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x6d, 0xc7, 0x1f, 0x3c, 0xe9, 0x64, 0x76, 0x83, 0xb2, 0x0c, 0x7b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x6d, 0x87, 0x6c, 0x20, 0xb7, 0x1d, 0xf2, 0x83, 0x57, 0x7f, 0x58, 0xce, 0x32, 0x0b, 0xf0, 0xbf, 0xb9, 0xb5, 0xb0, 0x95, 0x85, 0xd9, 0x95, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xef, 0x0e, 0xc9, 0x40, 0xc2, 0x3b, 0x94, 0x6c, 0xb0, 0xb8, 0x30, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x77, 0x87, 0x74, 0x20, 0xdf, 0x1d, 0x16, 0x07, 0x67, 0x24, 0xd4, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x78, 0x87, 0xe4, 0xe0, 0x3d, 0x34, 0xb3, 0x1b, 0x14, 0x82, 0xa9, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xf0, 0x0e, 0xd1, 0xc1, 0x7b, 0x68, 0x66, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe1, 0x1d, 0xb2, 0x81, 0x84, 0x77, 0xc8, 0x37, 0xbc, 0xad, 0xb3, 0x41, 0xe0, 0x63, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xbc, 0xc3, 0x60, 0x20, 0xe1, 0x1d, 0x46, 0x07, 0x8f, 0x41, 0x1b, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0xde, 0x61, 0x35, 0x90, 0xf0, 0x0e, 0x1d, 0x1b, 0x04, 0xd0, 0xd9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xbc, 0xc3, 0xec, 0xe0, 0x75, 0x45, 0xb3, 0x1b, 0x24, 0x2d, 0x18, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc2, 0x3b, 0x2c, 0x07, 0x12, 0xde, 0xa1, 0x62, 0xc3, 0x25, 0xb5, 0xc6, 0xe3, 0x01, 0xde, 0x37, 0xb7, 0x96, 0x34, 0xb7, 0x34, 0xba, 0x5a, 0x01, 0xde, 0x37, 0xb7, 0x16, 0xb3, 0xb0, 0x34, 0x76, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xdf, 0x21, 0x19, 0x48, 0x80, 0x87, 0x92, 0x0d, 0x16, 0x17, 0x26, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0xef, 0x90, 0x0e, 0xe4, 0xbf, 0xc3, 0x70, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xfe, 0x3b, 0xc4, 0x03, 0xf9, 0xef, 0x30, 0x39, 0x58, 0xaf, 0xf5, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xbf, 0xc3, 0x66, 0x20, 0xff, 0x1d, 0x76, 0x07, 0x0d, 0x8a, 0x07, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0xf0, 0x90, 0x1c, 0x3c, 0x0a, 0x6a, 0x76, 0x83, 0x42, 0x30, 0x75, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0xe0, 0x21, 0x3a, 0x78, 0x14, 0xd4, 0xec, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xc0, 0x43, 0x36, 0x90, 0x00, 0x0f, 0xf9, 0xc1, 0xd3, 0x7f, 0x66, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x04, 0x78, 0x18, 0x0c, 0x24, 0xc0, 0xc3, 0xe8, 0xe0, 0x31, 0x68, 0x23, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x02, 0x3c, 0xac, 0x06, 0x12, 0xe0, 0xa1, 0x63, 0x83, 0x00, 0x3a, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x04, 0x78, 0x98, 0x1d, 0x3c, 0xd9, 0x6c, 0x76, 0x83, 0xa4, 0x05, 0xa3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x80, 0x87, 0xe5, 0x40, 0x02, 0x3c, 0x54, 0x1c, 0x3c, 0x73, 0x69, 0xb6, 0x15, 0xe0, 0x7d, 0x73, 0x6b, 0x09, 0x93, 0xb3, 0x7b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xf7, 0x1d, 0x92, 0x81, 0xe4, 0x77, 0x28, 0xd9, 0x60, 0x71, 0x61, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xfb, 0x0e, 0xe9, 0x40, 0xee, 0x3b, 0xac, 0x37, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xbe, 0x43, 0x3c, 0x90, 0xfb, 0x0e, 0x93, 0x83, 0x77, 0x5b, 0x8a, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0xef, 0xb0, 0x19, 0xc8, 0x7d, 0x87, 0xf1, 0xc1, 0xd3, 0x21, 0x0f, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe4, 0x77, 0x48, 0x0e, 0x1e, 0x06, 0x37, 0xbb, 0x41, 0x21, 0x98, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xef, 0x10, 0x1d, 0x3c, 0x0c, 0x6e, 0x76, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xdf, 0x21, 0x1b, 0x48, 0x7e, 0x87, 0xfc, 0xe0, 0xe9, 0x3f, 0xb3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xf2, 0x3b, 0x0c, 0x06, 0x92, 0xdf, 0x61, 0x74, 0xf0, 0x18, 0xb4, 0x91, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xf9, 0x1d, 0x56, 0x03, 0xc9, 0xef, 0xd0, 0xb1, 0x41, 0x00, 0x9d, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xf2, 0x3b, 0xcc, 0x0e, 0x5e, 0x6e, 0x38, 0xbb, 0x41, 0xd2, 0x82, 0xd1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xbf, 0xc3, 0x72, 0x20, 0xf9, 0x1d, 0x2a, 0x0e, 0x9e, 0xb9, 0x34, 0xdb, 0xe1, 0x14, 0x5b, 0x83, 0x27, 0x31, 0xcd, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x76, 0x3b, 0x24, 0x03, 0xd9, 0xed, 0x50, 0xb2, 0x41, 0x21, 0x98, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0xed, 0x10, 0x1d, 0xbc, 0x08, 0x72, 0x76, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0xdb, 0x21, 0x1b, 0xc8, 0x6e, 0x87, 0xfc, 0xe0, 0xe9, 0x3f, 0xb3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x76, 0x3b, 0x0c, 0x06, 0xb2, 0xdb, 0x61, 0x74, 0xf0, 0x18, 0xb4, 0x91, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xbb, 0x1d, 0x56, 0x03, 0xd9, 0xed, 0xd0, 0xb1, 0x41, 0x00, 0x9d, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x76, 0x3b, 0xcc, 0x0e, 0x5e, 0xb8, 0x39, 0xbb, 0x41, 0xd2, 0x82, 0xd1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xb7, 0xc3, 0x72, 0x20, 0xbb, 0x1d, 0x2a, 0x0e, 0x9e, 0xb9, 0x34, 0xdb, 0xe1, 0x14, 0x5b, 0x80, 0xf7, 0xcd, 0xad, 0x05, 0xae, 0xac, 0x6c, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9c, 0x77, 0x48, 0x06, 0x92, 0xde, 0x61, 0xbc, 0xc1, 0xe2, 0xc2, 0xa4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe7, 0x1d, 0xd2, 0x81, 0x9c, 0x77, 0x58, 0x1c, 0x9c, 0x91, 0x50, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe9, 0x1d, 0x92, 0x83, 0xa7, 0x95, 0xce, 0x6e, 0x50, 0x08, 0xa6, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xd2, 0x3b, 0x44, 0x07, 0x4f, 0x2b, 0x9d, 0xdd, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa4, 0x77, 0xc8, 0x06, 0x92, 0xde, 0x21, 0x3f, 0x28, 0x9b, 0x30, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa4, 0x77, 0x18, 0x0c, 0x24, 0xbd, 0xc3, 0x76, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xde, 0x61, 0x31, 0x90, 0xf4, 0x0e, 0xab, 0x83, 0xb2, 0x09, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x7a, 0x87, 0xd9, 0x40, 0xd2, 0x3b, 0x4c, 0x0f, 0xde, 0x8b, 0x40, 0x52, 0x2b, 0xc0, 0xff, 0xe6, 0xd6, 0x12, 0x76, 0x56, 0xe6, 0x46, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xde, 0x3b, 0x24, 0x03, 0x89, 0xef, 0x50, 0xb2, 0xc1, 0xe2, 0xc2, 0xa4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xef, 0x1d, 0xd2, 0x81, 0xbc, 0x77, 0x18, 0x6e, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x7b, 0x87, 0x78, 0x20, 0xef, 0x1d, 0x26, 0x07, 0xef, 0xb6, 0x14, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xde, 0x61, 0x33, 0x90, 0xf7, 0x0e, 0xbb, 0x0d, 0xff, 0xce, 0x6f, 0xf0, 0xa6, 0x34, 0xc5, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc4, 0x77, 0x48, 0x0e, 0x5e, 0xd0, 0x3b, 0xbb, 0x41, 0x21, 0x98, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0xef, 0x10, 0x1d, 0xbc, 0xa0, 0x77, 0x76, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0xdf, 0x21, 0x1b, 0x48, 0x7c, 0x87, 0xfc, 0xe0, 0xe9, 0x3f, 0xb3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xe2, 0x3b, 0x0c, 0x06, 0x12, 0xdf, 0x61, 0x74, 0xf0, 0x18, 0xb4, 0x91, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xf1, 0x1d, 0x56, 0x03, 0x89, 0xef, 0xd0, 0xb1, 0x41, 0x00, 0x9d, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xe2, 0x3b, 0xcc, 0x0e, 0x5e, 0x40, 0x3d, 0xbb, 0x41, 0xd2, 0x82, 0xd1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xbe, 0xc3, 0x72, 0x20, 0xf1, 0x1d, 0x2a, 0x0e, 0x9e, 0xb9, 0x34, 0xdb, 0x0a, 0xf0, 0xbe, 0xb9, 0xb5, 0xc0, 0xbd, 0xad, 0x95, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xe7, 0x0e, 0xc9, 0x40, 0xa2, 0x3b, 0x94, 0x6c, 0xb0, 0xb8, 0x30, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x73, 0x87, 0x74, 0x20, 0xcf, 0x1d, 0x86, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xdc, 0x21, 0x1e, 0xc8, 0x73, 0x87, 0xc9, 0xc1, 0xfb, 0x36, 0x44, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x3c, 0x77, 0xd8, 0x0c, 0xe4, 0xb9, 0xc3, 0xee, 0xa0, 0xd9, 0xed, 0xa8, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xd1, 0x1d, 0x92, 0x83, 0x77, 0x76, 0xcf, 0x6e, 0x50, 0x08, 0xa6, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xa2, 0x3b, 0x44, 0x07, 0xef, 0xec, 0x9e, 0xdd, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x44, 0x77, 0xc8, 0x06, 0x12, 0xdd, 0x21, 0x3f, 0x78, 0xfa, 0xcf, 0xec, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xe8, 0x0e, 0x83, 0x81, 0x44, 0x77, 0x18, 0x1d, 0x3c, 0x06, 0x6d, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x74, 0x87, 0xd5, 0x40, 0xa2, 0x3b, 0x74, 0x6c, 0x10, 0x40, 0x67, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xe8, 0x0e, 0xb3, 0x83, 0x77, 0xd0, 0xcf, 0x6e, 0x90, 0xb4, 0x60, 0xb4, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0xee, 0xb0, 0x1c, 0x48, 0x74, 0x87, 0x8a, 0x83, 0x67, 0x2e, 0xcd, 0x76, 0x38, 0xc5, 0x16, 0xe0, 0x7d, 0x73, 0x6b, 0x61, 0x7b, 0x0b, 0x23, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xc7, 0x1d, 0x92, 0x81, 0x24, 0x77, 0x28, 0xd9, 0x60, 0x71, 0x61, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xe3, 0x0e, 0xe9, 0x40, 0x8e, 0x3b, 0x6c, 0x37, 0xfc, 0xb9, 0x34, 0x80, 0xc7, 0x1b, 0x1b, 0x59, 0xcb, 0x1c, 0x5d, 0x18, 0x5d, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0xee, 0xb0, 0x3b, 0x78, 0x37, 0x00, 0xed, 0x41, 0xb3, 0xdb, 0x51, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xe4, 0x0e, 0xc9, 0xc1, 0x03, 0xfc, 0x67, 0x37, 0x28, 0x04, 0x53, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xc9, 0x1d, 0xa2, 0x83, 0x07, 0xf8, 0xcf, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x92, 0x3b, 0x64, 0x03, 0x49, 0xee, 0x90, 0x1f, 0x3c, 0xfd, 0x67, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x72, 0x87, 0xc1, 0x40, 0x92, 0x3b, 0x8c, 0x0e, 0x1e, 0x83, 0x36, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xb9, 0xc3, 0x6a, 0x20, 0xc9, 0x1d, 0x3a, 0x36, 0x08, 0xa0, 0xb3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x72, 0x87, 0xd9, 0xc1, 0xf3, 0x25, 0x68, 0x37, 0x48, 0x5a, 0x30, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x24, 0x77, 0x58, 0x0e, 0x24, 0xb9, 0x43, 0xc5, 0xc1, 0x33, 0x97, 0x66, 0x5b, 0x01, 0xfe, 0x37, 0xb7, 0x96, 0xbb, 0x30, 0xba, 0x31, 0x74, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0xdd, 0x21, 0x19, 0x48, 0x76, 0x87, 0x92, 0x0d, 0x16, 0x17, 0x26, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0xee, 0x90, 0x0e, 0xe4, 0xba, 0xc3, 0xe2, 0xe0, 0x8c, 0x84, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xee, 0x90, 0x1c, 0x3c, 0x96, 0x83, 0x76, 0x83, 0x42, 0x30, 0x75, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xdd, 0x21, 0x3a, 0x78, 0x2c, 0x07, 0xed, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xbb, 0x43, 0x36, 0x90, 0xec, 0x0e, 0xf9, 0xc1, 0xd3, 0x7f, 0x66, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x64, 0x77, 0x18, 0x0c, 0x24, 0xbb, 0xc3, 0xe8, 0xe0, 0x31, 0x68, 0x23, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xb2, 0x3b, 0xac, 0x06, 0x92, 0xdd, 0xa1, 0x63, 0x83, 0x00, 0x3a, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x64, 0x77, 0x98, 0x1d, 0x3c, 0xb1, 0x85, 0x76, 0x83, 0xa4, 0x05, 0xa3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x76, 0x87, 0xe5, 0x40, 0xb2, 0x3b, 0x54, 0x1c, 0x3c, 0x73, 0x69, 0xb6, 0xc3, 0x29, 0xb6, 0x00, 0xef, 0x9b, 0x5b, 0xcb, 0x5c, 0x98, 0x5d, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0xee, 0x90, 0x0c, 0x24, 0xb8, 0x43, 0xbc, 0x41, 0x21, 0x98, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0xee, 0x10, 0x1d, 0xbc, 0xed, 0x86, 0xf6, 0xa0, 0xd9, 0xed, 0xa8, 0xc3, 0x29, 0xd6, 0xe1, 0x14, 0x9b, 0x35, 0xbc, 0x75, 0xbf, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0x78, 0xeb, 0x7e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xd5, 0x21, 0x1f, 0xc8, 0x57, 0x87, 0xfd, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xab, 0xc3, 0x60, 0x20, 0x5f, 0x1d, 0x46, 0x07, 0x4f, 0xff, 0x99, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xd5, 0x61, 0x35, 0x90, 0xaf, 0x0e, 0xcb, 0x83, 0xc7, 0xa0, 0x8d, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0xea, 0x30, 0x1d, 0xc8, 0x57, 0x87, 0xf9, 0xc1, 0x63, 0x7d, 0xed, 0x3a, 0x9c, 0x62, 0x6b, 0xf0, 0xa6, 0xc8, 0x91, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0x37, 0x45, 0x8e, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x12, 0x3b, 0x7e, 0x20, 0x95, 0x1d, 0x92, 0x0d, 0x0e, 0x10, 0xa2, 0x03, 0x78, 0x9f, 0x85, 0xb1, 0xb1, 0xb5, 0x84, 0x9d, 0x95, 0xb9, 0xd1, 0xb5, 0xd0, 0x85, 0xcd, 0xad, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xc5, 0x8e, 0x3f, 0x78, 0x46, 0x13, 0xed, 0x06, 0x41, 0xfb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xb1, 0x43, 0x36, 0x90, 0xc5, 0x0e, 0xcb, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0xec, 0x10, 0x0e, 0x64, 0xb1, 0xc3, 0xe4, 0xe0, 0x15, 0xfa, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x16, 0x3b, 0x6c, 0x06, 0xb2, 0xd8, 0x61, 0xb8, 0xe1, 0xcf, 0xa5, 0x0d, 0x0e, 0xa6, 0x9f, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xc5, 0x0e, 0xa3, 0x83, 0x27, 0x69, 0xd1, 0x1e, 0x9c, 0x91, 0x50, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0xd8, 0x21, 0x1b, 0x48, 0x63, 0x87, 0x8a, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0xec, 0x10, 0x0e, 0xa4, 0xb1, 0xc3, 0x6a, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x01, 0xff, 0x5d, 0x18, 0xdd, 0x18, 0x5a, 0x4b, 0xd8, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xb1, 0xc3, 0x6c, 0x20, 0x8d, 0x1d, 0xb6, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x14, 0x79, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0xec, 0xb0, 0x3b, 0x78, 0xd6, 0x19, 0xed, 0xc1, 0xfb, 0x36, 0x44, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x34, 0x76, 0x18, 0x0f, 0xa4, 0xb1, 0x43, 0xc3, 0x86, 0x3f, 0x97, 0x36, 0x38, 0x98, 0x7e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x1a, 0x3b, 0xac, 0x0f, 0xde, 0xd6, 0x46, 0x7b, 0x70, 0x46, 0x42, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x63, 0x87, 0x6c, 0x20, 0x8f, 0x1d, 0x56, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xd8, 0x21, 0x1c, 0xc8, 0x63, 0x87, 0xc9, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x02, 0x1e, 0xb6, 0xb2, 0x30, 0xbb, 0x72, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x63, 0x87, 0xcd, 0x40, 0x1e, 0x3b, 0x8c, 0x0e, 0x42, 0xf0, 0xa1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x91, 0x1d, 0xb2, 0x81, 0x44, 0x76, 0x18, 0x6e, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x64, 0x87, 0x70, 0x20, 0x91, 0x1d, 0x16, 0x07, 0x4f, 0x44, 0xc6, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0xd9, 0x61, 0x32, 0x90, 0xc8, 0x0e, 0xbb, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0xba, 0xb0, 0x90, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x64, 0x87, 0xcd, 0xc1, 0xeb, 0x04, 0x69, 0x0f, 0xde, 0x8b, 0x40, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xc9, 0x0e, 0xd9, 0x40, 0x26, 0x3b, 0x34, 0x6c, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x64, 0x87, 0x70, 0x20, 0x93, 0x1d, 0x46, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x0b, 0x78, 0xe1, 0xde, 0xd6, 0xca, 0x5a, 0xc2, 0xe6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x93, 0x1d, 0x56, 0x03, 0x99, 0xec, 0x30, 0xdd, 0xf0, 0xe7, 0xd2, 0x06, 0xa7, 0xc8, 0xd3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x64, 0x87, 0xd9, 0xc1, 0x0b, 0x1f, 0x69, 0x0f, 0xde, 0xb7, 0x21, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xb2, 0xc3, 0x76, 0x20, 0x93, 0x1d, 0x0a, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0xeb, 0xc2, 0x42, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x93, 0x1d, 0xc6, 0x07, 0xcf, 0xac, 0xa4, 0x3d, 0x78, 0x2f, 0x02, 0x49, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0xd6, 0xe0, 0xcd, 0x03, 0xb1, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0x6f, 0x1e, 0x88, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x44, 0x75, 0x48, 0x07, 0x12, 0xd5, 0x61, 0x71, 0xf0, 0x3e, 0x5b, 0xd9, 0xc3, 0x29, 0xb6, 0x06, 0x0f, 0x39, 0xae, 0xdc, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0xc8, 0x71, 0xe5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x91, 0x43, 0x3a, 0x90, 0x46, 0x0e, 0x57, 0x36, 0x3c, 0xf1, 0xbe, 0xc1, 0x03, 0x56, 0x61, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x8d, 0x1c, 0xe2, 0x81, 0x34, 0x72, 0x58, 0x1c, 0x94, 0x88, 0xf5, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x1a, 0x39, 0x4c, 0x06, 0xd2, 0xc8, 0x61, 0x76, 0xf0, 0xf4, 0x74, 0x8f, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x8d, 0x1c, 0x76, 0x03, 0x69, 0xe4, 0xd0, 0xb3, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0xe4, 0x30, 0x1c, 0x48, 0x23, 0x87, 0xf1, 0x41, 0xe9, 0x4d, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x91, 0xc3, 0x7a, 0x20, 0x8d, 0x1c, 0x1a, 0x0e, 0xda, 0xb6, 0x1e, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0xc8, 0xa1, 0x62, 0x20, 0x8d, 0x1c, 0x6a, 0x0e, 0xce, 0x48, 0xa8, 0x75, 0x38, 0xc5, 0xd6, 0xe0, 0x79, 0x7d, 0x2d, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0xcf, 0xeb, 0x6b, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xac, 0x74, 0x48, 0x07, 0xb2, 0xd2, 0xe1, 0xc4, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x2f, 0xdb, 0x5b, 0x18, 0xd9, 0x5b, 0x1d, 0xdd, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xa5, 0x43, 0x3c, 0x90, 0x95, 0x0e, 0x93, 0x83, 0x90, 0x32, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0xd2, 0x61, 0x33, 0x90, 0x95, 0x0e, 0x3d, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0xd2, 0x61, 0x34, 0x90, 0x95, 0x0e, 0xcb, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x9e, 0xc6, 0xbf, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x4a, 0x87, 0xd5, 0xc1, 0xab, 0x8a, 0x69, 0x37, 0xfc, 0x3b, 0xbf, 0xc1, 0x6b, 0x1a, 0xff, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0xd2, 0x61, 0x3a, 0x90, 0x95, 0x0e, 0xfb, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x92, 0xa3, 0x90, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x4a, 0x87, 0xed, 0xc1, 0xeb, 0x97, 0x69, 0x0f, 0x9e, 0x6a, 0x14, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xa5, 0x43, 0xc1, 0x40, 0x56, 0x3a, 0xd4, 0x6c, 0xf8, 0x73, 0x69, 0x83, 0xa7, 0x1f, 0xc8, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x56, 0x3a, 0x34, 0x1c, 0xbc, 0x43, 0x9a, 0x76, 0xc3, 0xbf, 0xf3, 0x1b, 0xbc, 0x41, 0x4d, 0xb1, 0x5a, 0x0d, 0x1e, 0xb9, 0x87, 0xb1, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0xc8, 0x3d, 0x8c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x53, 0x87, 0x74, 0x20, 0x4f, 0x1d, 0x46, 0x1b, 0x04, 0x9b, 0xe9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xa7, 0x0e, 0xf9, 0x40, 0x9e, 0x3a, 0x6c, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x17, 0x78, 0x6f, 0x64, 0x64, 0x2b, 0xe0, 0xcf, 0x8d, 0x85, 0xc9, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x1c, 0x19, 0x42, 0x0f, 0xde, 0xf9, 0x4d, 0xdb, 0x00, 0x5e, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x20, 0x64, 0x75, 0x63, 0x74, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0xef, 0xfc, 0xa6, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbc, 0x74, 0xdc, 0x40, 0x6a, 0x3a, 0x7e, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x5e, 0x3a, 0x24, 0x03, 0x79, 0xe9, 0x70, 0x65, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x4f, 0xb1, 0x37, 0xb7, 0x32, 0x90, 0xb9, 0xb2, 0xb8, 0xba, 0x32, 0xb7, 0xb1, 0xb2, 0x0d, 0x7f, 0x2e, 0x0d, 0x0e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x5e, 0x3a, 0x64, 0x03, 0x79, 0xe9, 0x10, 0x1f, 0x94, 0x59, 0xba, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x62, 0x3a, 0x24, 0x03, 0x89, 0xe9, 0x70, 0x62, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x80, 0x57, 0x2c, 0x0f, 0x84, 0xac, 0x6e, 0x8c, 0x6e, 0xc3, 0x9f, 0x4b, 0x83, 0xc7, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x98, 0x0e, 0xd9, 0x40, 0x62, 0x3a, 0x4c, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x31, 0x1d, 0xc2, 0x81, 0xc4, 0x74, 0xc8, 0x0f, 0x4a, 0xc4, 0xfa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x31, 0x1d, 0x06, 0x03, 0x89, 0xe9, 0x30, 0x3a, 0x78, 0x7a, 0xba, 0xc7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x98, 0x0e, 0xab, 0x81, 0xc4, 0x74, 0x58, 0x1e, 0x3c, 0x33, 0x27, 0xa4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x33, 0x1d, 0x92, 0x81, 0xcc, 0x74, 0x38, 0xb1, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0xc0, 0x2b, 0x96, 0x07, 0x22, 0xf6, 0xe6, 0x56, 0xb6, 0xe1, 0xcf, 0xa5, 0xc1, 0xe5, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x4c, 0x87, 0x6c, 0x20, 0x33, 0x1d, 0xa6, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x99, 0x0e, 0xe1, 0x40, 0x66, 0x3a, 0xe4, 0x07, 0x25, 0x62, 0xfd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x99, 0x0e, 0x83, 0x81, 0xcc, 0x74, 0x18, 0x1d, 0x3c, 0x33, 0x27, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x4c, 0x87, 0xd5, 0x40, 0x66, 0x3a, 0x2c, 0x0f, 0x9e, 0x9e, 0xee, 0x51, 0x87, 0x53, 0xac, 0x35, 0x78, 0x4f, 0xe3, 0xdf, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x7b, 0x1a, 0xff, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x27, 0x1d, 0xd2, 0x81, 0x9c, 0x74, 0x38, 0xb3, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xf7, 0x5c, 0x99, 0x9c, 0x5d, 0x99, 0x1c, 0x48, 0x1a, 0x59, 0x99, 0x1b, 0x5d, 0x1a, 0x5d, 0xde, 0xc1, 0x7a, 0xad, 0xe7, 0xc3, 0x29, 0xb6, 0x06, 0x4f, 0x13, 0x53, 0xd9, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0x9a, 0x98, 0xca, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xa8, 0xe3, 0x06, 0x92, 0xd4, 0xf1, 0x1b, 0x04, 0xed, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xa2, 0x0e, 0xc9, 0x40, 0x8a, 0x3a, 0x14, 0x6c, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x51, 0x87, 0x68, 0x20, 0x45, 0x1d, 0x36, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x0b, 0xf8, 0xe5, 0xc2, 0xee, 0x5a, 0xcc, 0xc2, 0xc6, 0xe8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x45, 0x1d, 0x46, 0x03, 0x29, 0xea, 0xb0, 0xdc, 0xf0, 0xe7, 0xd2, 0x06, 0xa7, 0xc8, 0xd3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x51, 0x87, 0xd5, 0xc1, 0xcb, 0x4d, 0x6a, 0x0f, 0xde, 0xb7, 0x21, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xa8, 0xc3, 0x74, 0x20, 0x45, 0x1d, 0xf6, 0x1b, 0xfe, 0x5c, 0xda, 0x30, 0x9d, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xa2, 0x0e, 0xdb, 0x83, 0xe7, 0xb3, 0xd4, 0x1e, 0x2c, 0x87, 0xc5, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x51, 0x87, 0x64, 0x20, 0x47, 0x1d, 0x36, 0x1b, 0xfe, 0x9d, 0xdf, 0xe0, 0x4d, 0x69, 0x8a, 0x07, 0x2f, 0xb3, 0xa6, 0x6d, 0x35, 0x78, 0x8d, 0x42, 0xec, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x6b, 0x14, 0x62, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xa9, 0x1c, 0xe2, 0x81, 0xa4, 0x72, 0x68, 0xd9, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x54, 0x0e, 0xf9, 0x40, 0x52, 0x39, 0xcc, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0x00, 0xda, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa4, 0x72, 0xd8, 0x1c, 0xbc, 0x6f, 0xa7, 0xf6, 0xa0, 0xcc, 0xd2, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xca, 0x61, 0x37, 0x90, 0x54, 0x0e, 0xf3, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x69, 0x64, 0xf8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x95, 0xc3, 0xf6, 0xe0, 0x75, 0x41, 0xb5, 0x07, 0x65, 0x96, 0xee, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x54, 0x0e, 0xfb, 0x81, 0xa4, 0x72, 0x28, 0xd9, 0xf0, 0xe7, 0xd2, 0x06, 0x45, 0xeb, 0xc9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x95, 0x43, 0xc7, 0xc1, 0x03, 0x8f, 0x6a, 0x0f, 0x3f, 0xd4, 0xb4, 0x02, 0xfe, 0x5c, 0xdd, 0xdc, 0xbc, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0xe6, 0xa5, 0xda, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x4d, 0x87, 0x74, 0x20, 0x37, 0x1d, 0xae, 0x6c, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x39, 0xf6, 0xe6, 0x66, 0x96, 0x76, 0x06, 0x22, 0x57, 0x06, 0xf7, 0x26, 0x47, 0xb7, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0xe9, 0x10, 0x0f, 0xe4, 0xa6, 0xc3, 0xe4, 0xe0, 0x58, 0x34, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0xa6, 0xc3, 0x66, 0x20, 0x37, 0x1d, 0x76, 0x07, 0x4f, 0x49, 0xa6, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0xd3, 0x61, 0x38, 0x90, 0x9b, 0x0e, 0xe3, 0x83, 0xf3, 0xe6, 0xe9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x9b, 0x0e, 0xeb, 0x81, 0xdc, 0x74, 0x28, 0x38, 0x38, 0xf2, 0xb5, 0x76, 0x38, 0xc5, 0x16, 0xf0, 0xc5, 0xde, 0xc2, 0xe4, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0x67, 0x7c, 0xd5, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x22, 0x39, 0xa4, 0x03, 0x89, 0xe4, 0xf0, 0x66, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xff, 0x30, 0x37, 0x32, 0x10, 0x3a, 0xb4, 0xb2, 0x34, 0x39, 0x10, 0xb7, 0x37, 0xb7, 0xb1, 0xb2, 0xb9, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x24, 0x87, 0x78, 0x20, 0x91, 0x1c, 0x16, 0x07, 0x25, 0x62, 0xfd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x48, 0x0e, 0x93, 0x81, 0x44, 0x72, 0x68, 0xd9, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x48, 0x0e, 0x9b, 0x81, 0x44, 0x72, 0x18, 0x6e, 0xf8, 0x73, 0x69, 0x83, 0x57, 0x54, 0x8a, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x22, 0x39, 0x8c, 0x0e, 0x1e, 0xe6, 0x56, 0x7b, 0xf0, 0x6e, 0x4b, 0x91, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x91, 0x1c, 0x96, 0x03, 0x89, 0xe4, 0x30, 0xdf, 0xf0, 0xe7, 0xd2, 0x06, 0x4d, 0x5f, 0x8f, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x22, 0x39, 0x4c, 0x0f, 0x5e, 0x48, 0x57, 0x7b, 0xd0, 0xb6, 0xf5, 0xf8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x48, 0x0e, 0xfb, 0x81, 0x44, 0x72, 0x28, 0xd9, 0xf0, 0xe7, 0xd2, 0x06, 0x27, 0xa0, 0xd4, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x24, 0x87, 0x82, 0x83, 0x87, 0xea, 0xd5, 0x1e, 0xac, 0xd7, 0x7a, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x24, 0x87, 0x9a, 0x81, 0x44, 0x72, 0x68, 0xdb, 0xf0, 0xe7, 0xd2, 0x06, 0x4f, 0xa9, 0x57, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x44, 0x72, 0x28, 0x3b, 0x78, 0x30, 0x60, 0xed, 0xe1, 0x87, 0x9a, 0x56, 0x83, 0xe7, 0x9d, 0xc6, 0x6e, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0x3c, 0xef, 0x34, 0x76, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0xce, 0x71, 0x03, 0x19, 0xe8, 0x90, 0x6d, 0x10, 0xb4, 0x3f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xca, 0x39, 0x24, 0x03, 0x29, 0xe7, 0xd0, 0xb1, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe5, 0x1c, 0xa2, 0x81, 0x94, 0x73, 0xc8, 0x0f, 0x1e, 0xfe, 0x12, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x9c, 0xc3, 0x60, 0x20, 0xe5, 0x1c, 0x2a, 0x36, 0xfc, 0xb9, 0x34, 0xe0, 0xcd, 0xad, 0xe5, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x72, 0x0e, 0xa3, 0x83, 0x67, 0x44, 0xd6, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xca, 0x39, 0xac, 0x06, 0x52, 0xce, 0x61, 0x78, 0x50, 0x22, 0xd6, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x29, 0xe7, 0xb0, 0x1c, 0x48, 0x39, 0x87, 0xf5, 0xc1, 0xfb, 0x6c, 0x65, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x94, 0x73, 0x98, 0x0f, 0xa4, 0x9c, 0x43, 0xc3, 0x41, 0x99, 0xa5, 0x5b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xce, 0x39, 0x6e, 0x20, 0x03, 0x1d, 0xbf, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe7, 0x1c, 0x92, 0x81, 0x9c, 0x73, 0x88, 0x0f, 0x9e, 0x07, 0xf8, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x9d, 0x43, 0x32, 0x90, 0x74, 0x0e, 0xd3, 0x0d, 0x7f, 0x2e, 0x0d, 0xe0, 0x37, 0xf6, 0xe6, 0x46, 0x27, 0xf7, 0xc6, 0xd6, 0x42, 0x56, 0x37, 0x46, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xd2, 0x39, 0xcc, 0x0e, 0x5e, 0x51, 0x5a, 0x7b, 0xf0, 0xf4, 0x74, 0x8f, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xeb, 0x1c, 0x92, 0x81, 0xac, 0x73, 0x58, 0x6d, 0xf8, 0x73, 0x69, 0x00, 0x0f, 0xb9, 0x3a, 0xb7, 0x16, 0xb7, 0x37, 0xb7, 0xb1, 0x72, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0xce, 0x61, 0x73, 0xf0, 0x30, 0xd6, 0xda, 0x83, 0xf3, 0xec, 0xe8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x76, 0x0e, 0xc9, 0x40, 0xda, 0x39, 0x8c, 0x36, 0xfc, 0xb9, 0x34, 0x80, 0xc7, 0x5c, 0x9d, 0x58, 0x8b, 0xdb, 0x9b, 0xdb, 0x58, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0xe7, 0xb0, 0x39, 0x78, 0xcf, 0x6c, 0xed, 0xe1, 0x87, 0x9a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xef, 0x1c, 0x92, 0x81, 0xbc, 0x73, 0xc8, 0x37, 0xfc, 0xb9, 0x34, 0xc0, 0x33, 0x47, 0x17, 0x46, 0x37, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xde, 0x39, 0x44, 0x07, 0x0f, 0xd0, 0xad, 0xdd, 0xf0, 0xef, 0xfc, 0x1a, 0xbc, 0x5f, 0xb7, 0xb6, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc4, 0x73, 0x48, 0x06, 0x12, 0xcf, 0x21, 0xde, 0xf0, 0xe7, 0xd2, 0x06, 0x0f, 0x39, 0xae, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc4, 0x73, 0x88, 0x0e, 0x9e, 0x0e, 0x5c, 0x7b, 0xf0, 0x4c, 0x58, 0xd8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xf3, 0x1c, 0x92, 0x81, 0xcc, 0x73, 0x88, 0x37, 0xfc, 0xb9, 0xb4, 0xc1, 0x03, 0x55, 0x82, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xf3, 0x1c, 0xa2, 0x83, 0x07, 0x1c, 0xd7, 0x1e, 0x3c, 0xe6, 0x14, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x3d, 0x87, 0x64, 0x20, 0xf5, 0x1c, 0xe2, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x8c, 0xaf, 0xda, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x3d, 0x87, 0xe8, 0xe0, 0x19, 0xcd, 0xb5, 0x1b, 0xfe, 0x9d, 0x5f, 0x83, 0x67, 0x7c, 0xd5, 0xd6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x7b, 0x0e, 0xc9, 0x40, 0xee, 0x39, 0xe4, 0x1b, 0xfe, 0x5c, 0xda, 0xa0, 0xe1, 0xc2, 0xce, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x3d, 0x87, 0xf8, 0xe0, 0xbd, 0xd3, 0xb5, 0x07, 0x21, 0xf8, 0xb0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x9f, 0x43, 0x32, 0x90, 0x7c, 0x0e, 0xe3, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0xee, 0x00, 0xda, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x3e, 0x87, 0xcd, 0xc1, 0x6b, 0xb3, 0x6b, 0x37, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x9f, 0xc3, 0x68, 0x20, 0xf9, 0x1c, 0x66, 0x07, 0x61, 0x04, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x9f, 0xc3, 0x6e, 0x20, 0xf9, 0x1c, 0xb6, 0x07, 0xcd, 0x6e, 0x47, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x9f, 0x43, 0x32, 0x90, 0x7d, 0x0e, 0xf1, 0x86, 0x3f, 0x97, 0x36, 0x78, 0xc9, 0x51, 0xc8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x9f, 0x43, 0x74, 0xf0, 0xaa, 0xf2, 0xda, 0x83, 0xa7, 0x1a, 0x85, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0xe7, 0x90, 0x0c, 0xa4, 0x9f, 0xc3, 0x7c, 0xc3, 0x9f, 0x4b, 0x03, 0x3c, 0x6d, 0x61, 0x72, 0x6b, 0xf3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x9f, 0x43, 0x7e, 0xf0, 0xb6, 0xf5, 0xda, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x3f, 0x87, 0xc1, 0x40, 0xfa, 0x39, 0x6c, 0x0e, 0x4a, 0xc4, 0xfa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xfd, 0x1c, 0x46, 0x03, 0xe9, 0xe7, 0x30, 0x3c, 0x78, 0x7a, 0xba, 0xc7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x7e, 0x0e, 0xcb, 0x81, 0xf4, 0x73, 0x58, 0x1f, 0xbc, 0x6f, 0x43, 0xa4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xff, 0x1c, 0x92, 0x81, 0xfc, 0x73, 0x18, 0x6f, 0xf8, 0x73, 0x69, 0xc0, 0x9b, 0x5b, 0xcb, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xff, 0x1c, 0xd2, 0x83, 0x07, 0xe9, 0xd7, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xfe, 0x39, 0xc4, 0x03, 0xf9, 0xe7, 0xb0, 0x38, 0x28, 0x11, 0xeb, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfc, 0x73, 0x98, 0x0c, 0xe4, 0x9f, 0xc3, 0xec, 0xe0, 0x7d, 0xb6, 0xb2, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xfe, 0x39, 0xec, 0x06, 0xf2, 0xcf, 0x61, 0x7b, 0xf0, 0xb0, 0x98, 0xd1, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x04, 0x74, 0x48, 0x06, 0x12, 0xd0, 0xa1, 0x61, 0xc3, 0x9f, 0x4b, 0x03, 0xde, 0x5a, 0x99, 0xbb, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0xe8, 0x90, 0x1e, 0x3c, 0x19, 0xc1, 0x76, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0xd0, 0x21, 0x1e, 0x48, 0x40, 0x87, 0xc5, 0xc1, 0xbb, 0xa9, 0x26, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x04, 0x74, 0x98, 0x0c, 0x24, 0xa0, 0xc3, 0xf6, 0xe0, 0x31, 0x23, 0xb3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x02, 0x3a, 0x8c, 0x07, 0x12, 0xd0, 0xa1, 0xe0, 0xe0, 0xdd, 0x96, 0x22, 0xd5, 0x0a, 0xf8, 0x67, 0x69, 0x6c, 0xec, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0xab, 0x2b, 0x6c, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x29, 0x1d, 0xd2, 0x81, 0xa4, 0x74, 0x38, 0xb3, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xf7, 0x59, 0x99, 0x5b, 0x99, 0x5c, 0x18, 0x1b, 0xc8, 0xd8, 0x9b, 0x1b, 0x5d, 0xd8, 0x18, 0xdd, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0xa5, 0x43, 0x3c, 0x90, 0x94, 0x0e, 0x93, 0x83, 0xd2, 0x9b, 0x7e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x4a, 0x87, 0xcd, 0x40, 0x52, 0x3a, 0xec, 0x0e, 0xda, 0xb6, 0x1e, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xd2, 0x61, 0x38, 0x90, 0x94, 0x0e, 0xe3, 0x83, 0xf5, 0x5a, 0xcf, 0xad, 0x06, 0x6d, 0x89, 0x02, 0x6e, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xb4, 0x25, 0x0a, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0xe9, 0xb8, 0x81, 0x04, 0x75, 0xfc, 0x06, 0x41, 0xfb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xa7, 0x43, 0x32, 0x90, 0x9e, 0x0e, 0x05, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0xd3, 0x21, 0x1a, 0x48, 0x4f, 0x87, 0xcd, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x02, 0x7e, 0xb9, 0xb0, 0xbb, 0x16, 0xb8, 0xb7, 0xb5, 0x72, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x4f, 0x87, 0xd1, 0x40, 0x7a, 0x3a, 0x2c, 0x37, 0xfc, 0xb9, 0xb4, 0xc1, 0x29, 0xf2, 0x74, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0xd3, 0x61, 0x75, 0xf0, 0xce, 0x19, 0xdb, 0x83, 0xf7, 0x6d, 0x88, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0xe9, 0x30, 0x1d, 0x48, 0x4f, 0x87, 0xfd, 0x86, 0x3f, 0x97, 0x36, 0x4c, 0xe7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xa7, 0xc3, 0xf6, 0xe0, 0xb1, 0x39, 0xb6, 0x07, 0xcb, 0x61, 0xb1, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xd3, 0x21, 0x19, 0xc8, 0x4f, 0x87, 0xcd, 0x86, 0x7f, 0xe7, 0x37, 0x78, 0x2e, 0x5b, 0xca, 0xc1, 0xcb, 0xac, 0x69, 0x5b, 0x0d, 0xde, 0xaf, 0x5b, 0xbb, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0xc1, 0x91, 0x21, 0xf4, 0xe0, 0xfd, 0xba, 0xb5, 0x0d, 0xe0, 0x33, 0x47, 0x17, 0x46, 0x97, 0x36, 0x47, 0x97, 0x36, 0x36, 0xb7, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0x7e, 0xdd, 0xda, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x28, 0xc7, 0x0d, 0xe4, 0x94, 0xe3, 0x37, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x94, 0x43, 0x32, 0x90, 0x50, 0x0e, 0x8f, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0x07, 0x4e, 0xee, 0x6d, 0xac, 0x6c, 0x6e, 0xae, 0x8c, 0x0c, 0xa4, 0xed, 0xcd, 0xae, 0x0c, 0x64, 0xec, 0xad, 0xce, 0x8d, 0x6e, 0xc3, 0x9f, 0x4b, 0x03, 0x7c, 0x63, 0x68, 0x61, 0x6e, 0x67, 0xe5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x94, 0xc3, 0x60, 0x20, 0xa1, 0x1c, 0x36, 0x07, 0x65, 0x96, 0xee, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x51, 0x0e, 0xc9, 0x40, 0x46, 0x39, 0x9c, 0xd8, 0xf0, 0xc4, 0xfb, 0x06, 0x2f, 0x8a, 0x86, 0xdd, 0xf0, 0xe7, 0xd2, 0x80, 0x57, 0xe6, 0x96, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x46, 0x39, 0xa4, 0x03, 0x19, 0xe5, 0xb0, 0x38, 0x78, 0xee, 0x3d, 0xc8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x52, 0x0e, 0xc9, 0x40, 0x4a, 0x39, 0xfc, 0xd9, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0x8f, 0xb1, 0x3a, 0x39, 0xb9, 0x32, 0x37, 0x3a, 0x90, 0x32, 0xbb, 0x32, 0x37, 0x3a, 0x10, 0xba, 0xb4, 0xb6, 0xb2, 0x0d, 0x7f, 0x2e, 0x6d, 0xd0, 0x66, 0xef, 0xf8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x94, 0x43, 0x3c, 0x90, 0x52, 0x0e, 0x8b, 0x83, 0x23, 0x5f, 0x6b, 0x87, 0x53, 0xac, 0xd6, 0xe0, 0x85, 0x6c, 0xb0, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0x2f, 0x64, 0x83, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x54, 0x72, 0x48, 0x07, 0x52, 0xc9, 0xa1, 0x78, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0xc9, 0x21, 0x1e, 0x48, 0x25, 0x87, 0xce, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xe4, 0x90, 0x0f, 0xa4, 0x92, 0xc3, 0x64, 0xc3, 0xdb, 0x3a, 0x03, 0x5e, 0xdb, 0x1b, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x4a, 0x0e, 0x9b, 0x81, 0x54, 0x72, 0x98, 0x1d, 0x94, 0x59, 0xba, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x2a, 0x39, 0xec, 0x06, 0x52, 0xc9, 0xa1, 0x72, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x2a, 0x39, 0x0c, 0x07, 0x52, 0xc9, 0x61, 0x7c, 0x50, 0x7a, 0xd3, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xe4, 0xb0, 0x1e, 0x48, 0x25, 0x87, 0x82, 0x83, 0x23, 0x5f, 0xeb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x4a, 0x0e, 0x0d, 0x03, 0xa9, 0xe4, 0xd0, 0xb8, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x95, 0x1c, 0x2a, 0x06, 0x52, 0xc9, 0xa1, 0xe6, 0x60, 0x15, 0x64, 0xf2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x4a, 0x0e, 0x3d, 0x03, 0xa9, 0xe4, 0xd0, 0xb5, 0xe1, 0x6d, 0x9d, 0x83, 0xa7, 0xd3, 0xd9, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xe4, 0x50, 0x36, 0x90, 0x4a, 0x0e, 0x85, 0x07, 0xef, 0xfd, 0x0a, 0xa9, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x54, 0x72, 0x28, 0x1d, 0x48, 0x25, 0x87, 0xde, 0x0d, 0xff, 0xce, 0x6f, 0x78, 0xf0, 0xb7, 0x66, 0x01, 0xaf, 0xec, 0xec, 0xdc, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xe0, 0xc8, 0x10, 0x1a, 0x78, 0x65, 0x67, 0x67, 0x03, 0xf0, 0xd4, 0x96, 0x76, 0x26, 0x17, 0x46, 0xf7, 0x26, 0x97, 0x07, 0x12, 0x76, 0x56, 0xe6, 0x46, 0x07, 0x32, 0x47, 0x17, 0x46, 0x57, 0xb6, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x0f, 0x78, 0x65, 0x67, 0xe7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x97, 0xe3, 0x06, 0xf2, 0xcd, 0x21, 0xdb, 0x20, 0x68, 0x7f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf4, 0x72, 0x48, 0x06, 0xd2, 0xcb, 0xe1, 0xd0, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xbc, 0xcc, 0x95, 0x95, 0x81, 0xbc, 0xcc, 0xe5, 0xcd, 0xbd, 0x9c, 0x85, 0xb1, 0xb1, 0x81, 0x90, 0xe4, 0xbd, 0xad, 0x95, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x2f, 0x87, 0x68, 0x20, 0xbd, 0x1c, 0xf2, 0x83, 0x87, 0xbf, 0x84, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0xe5, 0x30, 0x18, 0x48, 0x2f, 0x87, 0x8a, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x73, 0x6b, 0xf9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x97, 0xc3, 0xe8, 0xe0, 0xb1, 0x9e, 0xb6, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x5e, 0x0e, 0xab, 0x81, 0xf4, 0x72, 0x18, 0x1e, 0x94, 0x88, 0xf5, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x7a, 0x39, 0x2c, 0x07, 0xd2, 0xcb, 0x61, 0x7d, 0xf0, 0x3e, 0x5b, 0xd9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xbd, 0x1c, 0xe6, 0x03, 0xe9, 0xe5, 0xd0, 0x70, 0x50, 0x66, 0xe9, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x97, 0x43, 0xc7, 0x40, 0x7a, 0x39, 0xf4, 0x6e, 0xf8, 0x73, 0x69, 0xc0, 0x1b, 0x7b, 0x83, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xbd, 0x1c, 0x7a, 0x0e, 0xde, 0xd3, 0x6a, 0xbb, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0xe5, 0x50, 0x34, 0x90, 0x5e, 0x0e, 0x5d, 0x07, 0x25, 0x62, 0xfd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x5e, 0x0e, 0x65, 0x03, 0xe9, 0xe5, 0x50, 0x78, 0xf0, 0x22, 0x77, 0xd9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xbd, 0x1c, 0x1a, 0x07, 0xd2, 0xcb, 0xa1, 0xf6, 0xe0, 0xb9, 0x09, 0xb1, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x97, 0x43, 0x32, 0x90, 0x6f, 0x8e, 0xdf, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x5f, 0x0e, 0xe9, 0x40, 0x7e, 0x39, 0x4c, 0x0e, 0x9e, 0x07, 0xf8, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x98, 0x43, 0x3a, 0x90, 0x60, 0x0e, 0xf3, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x0a, 0xd3, 0xda, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x30, 0x87, 0xe9, 0xc1, 0xeb, 0x82, 0x6d, 0x0f, 0x9e, 0x9e, 0xee, 0xb1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x98, 0x43, 0x3a, 0x90, 0x61, 0x0e, 0xcb, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0xb0, 0xd6, 0xda, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x30, 0x87, 0xdd, 0xc1, 0x2b, 0x8f, 0x6d, 0x0f, 0xce, 0xb3, 0xa3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x8a, 0x39, 0xa4, 0x03, 0x29, 0xe6, 0x30, 0xdc, 0xf0, 0xe7, 0xd2, 0x06, 0xef, 0xa1, 0xad, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x14, 0x73, 0xd8, 0x1d, 0xbc, 0xb4, 0xd9, 0xf6, 0xf0, 0x43, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x63, 0x0e, 0xe9, 0x40, 0x8e, 0x39, 0x6c, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0xfb, 0x75, 0x6b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xc7, 0x1c, 0xe2, 0x83, 0x77, 0x4e, 0xdb, 0x1e, 0x3c, 0xc2, 0xb7, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x32, 0x87, 0x74, 0x20, 0xc9, 0x1c, 0x26, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x21, 0xc7, 0x95, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x64, 0x0e, 0xf1, 0xc1, 0x73, 0xb3, 0x6d, 0x0f, 0x9e, 0x09, 0x0b, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x99, 0x43, 0x3a, 0x90, 0x65, 0x0e, 0x93, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x40, 0x95, 0xa0, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x32, 0x87, 0xf8, 0xe0, 0xd5, 0xdf, 0xb6, 0x07, 0x8f, 0x39, 0x85, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0xcc, 0x21, 0x1d, 0x48, 0x33, 0x87, 0xc9, 0x86, 0x3f, 0x97, 0x36, 0x78, 0xc6, 0x57, 0xed, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x99, 0x43, 0x7c, 0xf0, 0xf8, 0x72, 0xdb, 0x83, 0x97, 0x43, 0xd7, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0xe6, 0x90, 0x0e, 0xe4, 0x99, 0xc3, 0x66, 0xc3, 0x9f, 0x4b, 0x1b, 0x34, 0x5c, 0xd8, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0xe6, 0x30, 0x39, 0x78, 0x03, 0xbb, 0xed, 0x41, 0x08, 0x3e, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0xe6, 0x90, 0x0e, 0x24, 0x9a, 0x43, 0xc1, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x77, 0x00, 0xed, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x9a, 0xc3, 0xee, 0xe0, 0x0d, 0xf2, 0xb6, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0xcd, 0x61, 0x38, 0x90, 0x68, 0x0e, 0xd3, 0x83, 0x30, 0x02, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0xcd, 0x61, 0x3b, 0x90, 0x68, 0x0e, 0xfb, 0x83, 0x66, 0xb7, 0xa3, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0xcd, 0x21, 0x1d, 0xc8, 0x34, 0x87, 0xc9, 0x86, 0x3f, 0x97, 0x36, 0x78, 0xc9, 0x51, 0xc8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x9a, 0x43, 0x7c, 0xf0, 0xd8, 0x7e, 0xdb, 0x83, 0xa7, 0x1a, 0x85, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xe6, 0x90, 0x0e, 0xa4, 0x9a, 0x43, 0xc5, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x1b, 0x7b, 0xed, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x9a, 0xc3, 0xe6, 0xe0, 0xcd, 0x03, 0xb7, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x6a, 0x0e, 0xa3, 0x81, 0x54, 0x73, 0xd8, 0x1d, 0x94, 0x88, 0xf5, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xaa, 0x39, 0x0c, 0x07, 0x52, 0xcd, 0x61, 0x7c, 0xf0, 0xf4, 0x74, 0x8f, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xd5, 0x1c, 0xd6, 0x03, 0xa9, 0xe6, 0xd0, 0x70, 0xf0, 0xbe, 0x0d, 0x91, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5c, 0x73, 0x48, 0x07, 0x72, 0xcd, 0x61, 0xb5, 0xe1, 0xcf, 0xa5, 0x01, 0x6f, 0x6e, 0x2d, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5c, 0x73, 0x58, 0x1c, 0x3c, 0x4d, 0xe2, 0xf6, 0xe0, 0x15, 0x38, 0xb1, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xb2, 0x39, 0xa4, 0x03, 0xc9, 0xe6, 0xd0, 0xb2, 0xe1, 0xcf, 0xa5, 0x01, 0x6f, 0xad, 0xcc, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x64, 0x73, 0x58, 0x1c, 0xbc, 0x10, 0xe3, 0x76, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0xcd, 0x61, 0x32, 0x90, 0x6c, 0x0e, 0xab, 0x83, 0x77, 0x53, 0x4d, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xe6, 0x30, 0x1b, 0x48, 0x36, 0x87, 0xfd, 0xc1, 0x63, 0x46, 0x66, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x64, 0x73, 0x28, 0x18, 0x48, 0x36, 0x87, 0x92, 0x83, 0x77, 0x5b, 0x8a, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x9b, 0x43, 0x3a, 0x90, 0x6d, 0x0e, 0x2d, 0x1b, 0xfe, 0x5c, 0x1a, 0xf0, 0xe0, 0xca, 0xdc, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x36, 0x87, 0xc5, 0xc1, 0x6b, 0x4e, 0x6e, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xdb, 0x1c, 0x26, 0x03, 0xd9, 0xe6, 0xb0, 0x3a, 0x78, 0x37, 0xd5, 0xe4, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x6d, 0x0e, 0xb3, 0x81, 0x6c, 0x73, 0xd8, 0x1f, 0x3c, 0x66, 0x64, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x36, 0x87, 0x82, 0x81, 0x6c, 0x73, 0x28, 0x39, 0x78, 0xb7, 0xa5, 0x48, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xba, 0x39, 0xa4, 0x03, 0xe9, 0xe6, 0xd0, 0xb3, 0xe1, 0xcf, 0xa5, 0x01, 0xef, 0xac, 0xac, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x74, 0x73, 0x58, 0x1c, 0xbc, 0xbc, 0xe6, 0x76, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0xcd, 0x61, 0x32, 0x90, 0x6e, 0x0e, 0xab, 0x83, 0x77, 0x53, 0x4d, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0xe6, 0x30, 0x1b, 0x48, 0x37, 0x87, 0xe9, 0xc1, 0x8b, 0xdc, 0x65, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x74, 0x73, 0xd8, 0x0e, 0xa4, 0x9b, 0x43, 0xcd, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x74, 0x73, 0x18, 0x0f, 0xa4, 0x9b, 0x43, 0xc1, 0xc1, 0x19, 0x09, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x37, 0x87, 0x86, 0x81, 0x74, 0x73, 0x68, 0x39, 0x78, 0x1d, 0x9d, 0x5d, 0xd5, 0x6a, 0xf0, 0xa6, 0xc8, 0x91, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0xdb, 0xe0, 0x99, 0xe3, 0x76, 0x03, 0xf8, 0xa7, 0xb9, 0x8d, 0xbd, 0xb5, 0xa5, 0xb9, 0x9d, 0x81, 0xc8, 0x95, 0xc5, 0xd5, 0x95, 0xcd, 0xd1, 0x6d, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xbc, 0x29, 0x72, 0x64, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0xc6, 0x71, 0x03, 0x59, 0xe4, 0xf8, 0x0d, 0x42, 0x0d, 0x71, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x1a, 0x87, 0x64, 0x20, 0x6b, 0x1c, 0x26, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0xc6, 0x21, 0x1a, 0xc8, 0x1a, 0x87, 0xfc, 0xe0, 0xf5, 0xdf, 0x29, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xd6, 0x38, 0x0c, 0x06, 0xb2, 0xc6, 0x61, 0x71, 0x50, 0x50, 0x64, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0xe3, 0xb8, 0x83, 0x97, 0x3f, 0xdd, 0x6e, 0x10, 0xb4, 0x3f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xda, 0x38, 0x24, 0x03, 0x69, 0xe3, 0x70, 0x67, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x1e, 0xc6, 0xd8, 0xde, 0xce, 0x40, 0xdc, 0xde, 0xe8, 0xd2, 0xcc, 0xd2, 0xc6, 0xc2, 0xe8, 0xd2, 0xde, 0xdc, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x8d, 0x43, 0x34, 0x90, 0x36, 0x0e, 0xf9, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0xde, 0xf4, 0x1b, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x8d, 0xc3, 0x60, 0x20, 0x6d, 0x1c, 0x46, 0x1b, 0xfe, 0x5c, 0x1a, 0xf8, 0x34, 0x72, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0xc6, 0x61, 0x73, 0xf0, 0xac, 0xb3, 0xdb, 0x83, 0x30, 0x1d, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x1b, 0x87, 0x64, 0x20, 0x6f, 0x1c, 0xee, 0x6c, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0x83, 0x59, 0x1d, 0x1b, 0x1b, 0x08, 0x9d, 0x5c, 0x98, 0xdb, 0x5c, 0x5b, 0xda, 0xdc, 0x5c, 0xda, 0x9b, 0xdb, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbc, 0x71, 0x88, 0x06, 0xf2, 0xc6, 0x21, 0x3f, 0x78, 0x91, 0x85, 0xca, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x37, 0x0e, 0x83, 0x81, 0xbc, 0x71, 0x98, 0x6d, 0xf8, 0x73, 0x69, 0x70, 0x78, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xc6, 0x61, 0x72, 0xf0, 0x10, 0xbb, 0xdb, 0x0d, 0xff, 0xce, 0xaf, 0xc1, 0x2b, 0xeb, 0x44, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x1b, 0x87, 0xdd, 0x40, 0xde, 0x38, 0xac, 0x37, 0xfc, 0xb9, 0x34, 0x78, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0xe3, 0xb0, 0x3c, 0x78, 0x1f, 0xdf, 0xed, 0xc1, 0x7a, 0xad, 0xe7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x6f, 0x1c, 0xe6, 0x03, 0x79, 0xe3, 0x50, 0xb2, 0xe1, 0xcf, 0xa5, 0xc1, 0xe5, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x1b, 0x87, 0x82, 0x83, 0x17, 0x09, 0xde, 0x6e, 0xf8, 0x77, 0x7e, 0x83, 0x96, 0x44, 0x01, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x1c, 0x87, 0x64, 0x20, 0x71, 0x1c, 0x1e, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0xcf, 0x18, 0x5b, 0x59, 0x98, 0x1c, 0x08, 0x5c, 0x99, 0x1b, 0x59, 0x9a, 0xdb, 0x19, 0x48, 0x5c, 0x5d, 0x59, 0x5d, 0xd9, 0xdc, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc4, 0x71, 0x88, 0x06, 0x12, 0xc7, 0x21, 0xdf, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0xfa, 0x3b, 0xd6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x71, 0x1c, 0x06, 0x03, 0x89, 0xe3, 0xb0, 0xda, 0xf0, 0xe7, 0xd2, 0x06, 0x4d, 0x5f, 0x8f, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xe2, 0x38, 0x2c, 0x0e, 0x5e, 0x2a, 0x79, 0x7b, 0xd0, 0xb6, 0xf5, 0x78, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xe6, 0x38, 0x24, 0x03, 0x99, 0xe3, 0x70, 0x66, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x6f, 0x14, 0xb9, 0xb2, 0x94, 0x39, 0xba, 0x30, 0x39, 0x3a, 0x90, 0xb0, 0xb3, 0x32, 0x37, 0xba, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0xe3, 0x10, 0x0d, 0x64, 0x8e, 0x43, 0xbe, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x27, 0xd0, 0x06, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0xe3, 0x30, 0x18, 0xc8, 0x1c, 0x87, 0xd5, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x33, 0x5e, 0xc8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x8e, 0xc3, 0xe2, 0xe0, 0x31, 0xa2, 0xb7, 0x07, 0x8f, 0xc2, 0x0b, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0xc7, 0x61, 0x36, 0x90, 0x39, 0x0e, 0xdb, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x9e, 0xc6, 0xbf, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x1c, 0x87, 0xdd, 0xc1, 0xab, 0x50, 0x6f, 0x0f, 0x9e, 0x92, 0x4c, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x3a, 0x0e, 0xc9, 0x40, 0xea, 0x38, 0x5c, 0xd9, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x73, 0xae, 0x6e, 0x0e, 0xae, 0xcc, 0x8d, 0x0c, 0x24, 0xec, 0xac, 0xcc, 0x8d, 0x6e, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xea, 0x38, 0x44, 0x03, 0xa9, 0xe3, 0x90, 0x6f, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xe0, 0xfd, 0xbb, 0x41, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xea, 0x38, 0x0c, 0x06, 0x52, 0xc7, 0x61, 0xb5, 0xe1, 0xcf, 0xa5, 0x0d, 0xde, 0xd3, 0xf8, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0xe3, 0xb0, 0x38, 0x78, 0xea, 0xed, 0xed, 0xc1, 0x53, 0x92, 0x69, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0xc7, 0x21, 0x19, 0xc8, 0x1d, 0x87, 0x1f, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xf8, 0xb0, 0xbd, 0x85, 0x91, 0x81, 0x84, 0x9d, 0x95, 0xb9, 0xd1, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x1d, 0x87, 0x68, 0x20, 0x77, 0x1c, 0xf2, 0x0d, 0x19, 0xf0, 0x83, 0x37, 0xf4, 0xb5, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0xe3, 0x30, 0x18, 0xc8, 0x1d, 0x87, 0xd5, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x5e, 0x5f, 0xcb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x8e, 0xc3, 0xe2, 0xe0, 0x31, 0xc6, 0xb7, 0x1b, 0xfe, 0x9d, 0x5f, 0x83, 0xe7, 0xf5, 0xb5, 0x54, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xf2, 0x38, 0x24, 0x03, 0xc9, 0xe3, 0xf0, 0x64, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x3f, 0xb2, 0x32, 0xb6, 0x32, 0xba, 0x32, 0x90, 0xb0, 0xb3, 0x32, 0x37, 0xba, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0xe3, 0x10, 0x0d, 0x24, 0x8f, 0x43, 0x7e, 0xf0, 0xf0, 0x97, 0xd0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x79, 0x1c, 0x06, 0x03, 0xc9, 0xe3, 0xb0, 0xda, 0xf0, 0xe7, 0xd2, 0x06, 0xef, 0x69, 0xfc, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe4, 0x71, 0x58, 0x1c, 0xbc, 0xa4, 0xfa, 0xf6, 0xe0, 0x29, 0xc9, 0xb4, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0xe3, 0x90, 0x0c, 0x64, 0x8f, 0xc3, 0x9f, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xf8, 0x58, 0x4b, 0x63, 0x63, 0x03, 0x99, 0xab, 0x13, 0x9b, 0x1b, 0x93, 0x4b, 0x83, 0xa3, 0x4b, 0x7b, 0x73, 0x9b, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x3d, 0x0e, 0xd1, 0x40, 0xf6, 0x38, 0xe4, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x78, 0x84, 0x70, 0xd0, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x3d, 0x0e, 0x83, 0x81, 0xec, 0x71, 0x28, 0xd8, 0xf0, 0xe7, 0xd2, 0x06, 0xef, 0x69, 0xfc, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xec, 0x71, 0x58, 0x1d, 0x3c, 0xa4, 0xfc, 0x76, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0xc7, 0x61, 0x36, 0x90, 0x3d, 0x0e, 0xd3, 0x83, 0xb2, 0x09, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x1e, 0x87, 0xed, 0x40, 0xf6, 0x38, 0xec, 0x0f, 0x9e, 0x92, 0x4c, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x3d, 0x0e, 0x0d, 0x03, 0xd9, 0xe3, 0xd0, 0xb8, 0xe1, 0xcf, 0xa5, 0x0d, 0x9a, 0xbe, 0x1e, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xec, 0x71, 0xa8, 0x39, 0x78, 0x39, 0xfc, 0xed, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x8f, 0x43, 0xcf, 0x40, 0xf6, 0x38, 0x74, 0x1d, 0x94, 0x4d, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xf6, 0x38, 0x94, 0x0d, 0x64, 0x8f, 0x43, 0xe1, 0x41, 0xdb, 0xd6, 0xe3, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x8f, 0x43, 0x32, 0x90, 0x3e, 0x0e, 0x6f, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x97, 0x2b, 0x1b, 0x63, 0x0b, 0x4b, 0x6b, 0x03, 0x79, 0x63, 0x23, 0x03, 0x99, 0xab, 0x13, 0x9b, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x3e, 0x0e, 0xd1, 0x40, 0xfa, 0x38, 0xe4, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x68, 0xb3, 0x16, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x1f, 0x87, 0xc1, 0x40, 0xfa, 0x38, 0x14, 0x6c, 0xf8, 0x73, 0x69, 0x83, 0xf7, 0x34, 0xfe, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xfa, 0x38, 0xac, 0x0e, 0xde, 0x63, 0x80, 0xbb, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0xe3, 0x30, 0x1b, 0x48, 0x1f, 0x87, 0xe9, 0x41, 0xd9, 0x84, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x8f, 0xc3, 0x76, 0x20, 0x7d, 0x1c, 0xf6, 0x07, 0x4f, 0x49, 0xa6, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x1f, 0x87, 0x86, 0x81, 0xf4, 0x71, 0xa8, 0xd9, 0xf0, 0xe7, 0xd2, 0x06, 0x85, 0x86, 0xc0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x8f, 0x43, 0xcb, 0xc1, 0x03, 0x24, 0x70, 0x0f, 0x1f, 0xac, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x8f, 0x43, 0x32, 0x90, 0x3f, 0x0e, 0x37, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x98, 0x2b, 0xa3, 0x03, 0x79, 0xbb, 0x73, 0x2b, 0x93, 0xdb, 0x60, 0xbd, 0x4a, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x3f, 0x0e, 0xe1, 0x40, 0xfe, 0x38, 0x2c, 0x0e, 0xde, 0x1f, 0xec, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0xe3, 0x30, 0x19, 0xc8, 0x1f, 0x87, 0xed, 0xc1, 0x0b, 0x04, 0xee, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x04, 0x72, 0x48, 0x06, 0x12, 0xc8, 0xe1, 0xc7, 0x86, 0x27, 0xde, 0x37, 0x78, 0xcc, 0xd4, 0xdd, 0x06, 0xeb, 0x55, 0xaa, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x04, 0x72, 0x08, 0x07, 0x12, 0xc8, 0x61, 0x71, 0xf0, 0x7a, 0x7b, 0x8f, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x20, 0x87, 0xc9, 0x40, 0x02, 0x39, 0x6c, 0x0f, 0x5e, 0x20, 0x70, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x90, 0x43, 0x32, 0x90, 0x41, 0x0e, 0x5f, 0x36, 0x3c, 0xf1, 0xbe, 0xc1, 0x7b, 0xbc, 0xee, 0x36, 0x58, 0xaf, 0x52, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x90, 0x43, 0x38, 0x90, 0x41, 0x0e, 0x8b, 0x83, 0x47, 0x8e, 0xdd, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x06, 0x39, 0x4c, 0x06, 0x32, 0xc8, 0x61, 0x7b, 0xf0, 0x02, 0x81, 0xbb, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x85, 0x1c, 0x92, 0x81, 0x14, 0x72, 0x38, 0xb3, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xb7, 0x5b, 0x19, 0xdd, 0xdd, 0x9b, 0xdc, 0x1a, 0x88, 0x5c, 0x59, 0x5c, 0x5d, 0xd9, 0x1c, 0xdd, 0x06, 0xeb, 0x55, 0xaa, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x14, 0x72, 0x08, 0x07, 0x52, 0xc8, 0x61, 0x71, 0xf0, 0x78, 0xed, 0xc1, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x21, 0x87, 0xc9, 0x40, 0x0a, 0x39, 0x6c, 0x0f, 0x5e, 0x20, 0x70, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x90, 0x43, 0x32, 0x90, 0x43, 0x0e, 0x57, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x9c, 0x2b, 0xa3, 0x03, 0xb1, 0x2b, 0x93, 0x13, 0x7b, 0x9b, 0x4b, 0xa3, 0xcb, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x43, 0x0e, 0xd1, 0x40, 0x0e, 0x39, 0xe4, 0x07, 0x0f, 0x26, 0x7e, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0xc8, 0x61, 0x30, 0x90, 0x43, 0x0e, 0xfb, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x76, 0x65, 0xe2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x90, 0xc3, 0xe8, 0xe0, 0xd5, 0x49, 0xb8, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x43, 0x0e, 0xab, 0x81, 0x1c, 0x72, 0x58, 0x1e, 0x84, 0x94, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x43, 0x0e, 0xd3, 0x81, 0x1c, 0x72, 0x98, 0x6f, 0xf8, 0x77, 0x7e, 0x83, 0x17, 0xb8, 0x90, 0x55, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x12, 0x39, 0x24, 0x03, 0x49, 0xe4, 0x70, 0x63, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x0f, 0xb8, 0x32, 0x39, 0x90, 0xb0, 0xb3, 0x32, 0x37, 0xba, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0xe4, 0x10, 0x0d, 0x24, 0x91, 0x43, 0xbe, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x37, 0x31, 0x04, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0xe4, 0x30, 0x18, 0x48, 0x22, 0x87, 0x86, 0x0d, 0x7f, 0x2e, 0x0d, 0xf0, 0x90, 0xd5, 0x91, 0x95, 0xcd, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x44, 0x0e, 0xb3, 0x83, 0xc7, 0x7a, 0xe1, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x12, 0x39, 0xec, 0x06, 0x92, 0xc8, 0x61, 0x7b, 0x10, 0x52, 0x26, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x12, 0x39, 0x8c, 0x07, 0x92, 0xc8, 0xa1, 0xe0, 0xe0, 0x29, 0xc9, 0xb4, 0xd5, 0xe1, 0x14, 0xab, 0x35, 0x78, 0xa0, 0x4a, 0xd0, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x03, 0x55, 0x82, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x8f, 0x1c, 0xd2, 0x81, 0x3c, 0x72, 0xb8, 0xb2, 0xe1, 0x89, 0xf7, 0x0d, 0x9e, 0x19, 0x0a, 0xbb, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0xe4, 0x10, 0x0f, 0xe4, 0x91, 0xc3, 0xe2, 0xa0, 0x44, 0xac, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xc8, 0x61, 0x32, 0x90, 0x47, 0x0e, 0x2d, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xc8, 0x61, 0x33, 0x90, 0x47, 0x0e, 0xc3, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x8a, 0x4a, 0x91, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x23, 0x87, 0xd1, 0xc1, 0xeb, 0xec, 0x70, 0x0f, 0xde, 0x6d, 0x29, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x91, 0xc3, 0x72, 0x20, 0x8f, 0x1c, 0xe6, 0x1b, 0xfe, 0x5c, 0xda, 0xa0, 0xe9, 0xeb, 0xf1, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x23, 0x87, 0xe9, 0xc1, 0x33, 0xf9, 0x70, 0x0f, 0xda, 0xb6, 0x1e, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xc8, 0x61, 0x3f, 0x90, 0x47, 0x0e, 0x25, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x04, 0x94, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0xe4, 0x50, 0x70, 0xf0, 0x5a, 0x41, 0xdc, 0x83, 0xf5, 0x5a, 0xcf, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0xe4, 0x50, 0x33, 0x90, 0x47, 0x0e, 0xad, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0xc8, 0xa1, 0x67, 0x20, 0x8f, 0x1c, 0xea, 0x36, 0xfc, 0xb9, 0x34, 0xc0, 0x13, 0x36, 0xb6, 0x56, 0x46, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x1e, 0x39, 0xb4, 0x1d, 0x3c, 0x73, 0x11, 0xf7, 0xf0, 0xc1, 0xea, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x47, 0x0e, 0x7d, 0x03, 0x79, 0xe4, 0x50, 0xba, 0xe1, 0xcf, 0xa5, 0x0d, 0x0e, 0xa6, 0x9f, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x47, 0x0e, 0x85, 0x07, 0x2f, 0x8f, 0xc4, 0x3d, 0x38, 0x23, 0xa1, 0xd6, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x2b, 0xb0, 0xfe, 0xbe, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x96, 0x42, 0xb6, 0x41, 0xea, 0x45, 0xf1, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xfa, 0x0a, 0xd9, 0x06, 0x25, 0x0b, 0xfb, 0x2c, 0xb3, 0x06, 0x2f, 0x2d, 0x0b, 0xda, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xe0, 0xc8, 0x10, 0x7a, 0xf0, 0xd2, 0xb2, 0xa0, 0x06, 0xf0, 0x9c, 0x2b, 0x73, 0xa3, 0x03, 0xa1, 0x7b, 0x03, 0x29, 0x21, 0x4b, 0x63, 0x63, 0xdb, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0x69, 0x59, 0xd0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xf6, 0x0b, 0xd9, 0x06, 0x41, 0xfb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc3, 0x0c, 0xd9, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x3c, 0xd0, 0xc9, 0xa5, 0xb5, 0x81, 0xac, 0x95, 0xc9, 0xb9, 0x95, 0xb1, 0x81, 0xcc, 0xd1, 0x85, 0xd1, 0x95, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xd4, 0x1a, 0xb2, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x34, 0xac, 0x44, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x69, 0x0f, 0xd9, 0x86, 0x3f, 0x97, 0x06, 0x87, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x2b, 0x76, 0xc8, 0x0e, 0xca, 0x2c, 0xdd, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd4, 0x5c, 0x48, 0x06, 0x52, 0x73, 0x61, 0xb7, 0xc1, 0x7a, 0x95, 0xaa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x35, 0x17, 0xc2, 0x81, 0xd4, 0x5c, 0x58, 0x1c, 0xbc, 0xf9, 0x1c, 0x64, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x38, 0x88, 0x6c, 0xc3, 0xbf, 0xf3, 0x0b, 0xf8, 0x74, 0x6f, 0x6c, 0x64, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x83, 0x44, 0xb6, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x93, 0x95, 0xc8, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xf0, 0x2a, 0xbb, 0xa0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x6b, 0xa0, 0xc8, 0x0e, 0x42, 0xf0, 0xa1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xfb, 0xa7, 0xc8, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0xab, 0x73, 0x4b, 0x33, 0xcb, 0x03, 0x69, 0x2b, 0x6b, 0x7b, 0x93, 0xcb, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x99, 0x56, 0x64, 0x07, 0xef, 0xbc, 0xf6, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x75, 0x8b, 0xec, 0x20, 0x04, 0x1f, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xee, 0x8b, 0x6c, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xdf, 0xb1, 0xb7, 0x36, 0xb8, 0xb0, 0x31, 0x3a, 0x90, 0xb6, 0xb2, 0xb6, 0x37, 0xb9, 0xbc, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x20, 0x46, 0xb6, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x63, 0x6f, 0xc8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x79, 0x67, 0x64, 0x07, 0x21, 0xf8, 0xd0, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x9e, 0x0b, 0xc9, 0x40, 0x7a, 0x2e, 0xec, 0x36, 0x58, 0xaf, 0x52, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0xe7, 0x42, 0x38, 0x90, 0x9e, 0x0b, 0x8b, 0x83, 0x46, 0x9b, 0x3a, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xf3, 0xd6, 0xc8, 0x0e, 0x9e, 0x3f, 0x8b, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x18, 0x1c, 0xd9, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x7e, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x65, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x5f, 0x8e, 0xec, 0xe0, 0x29, 0x16, 0x1f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0xdb, 0x91, 0x1d, 0x84, 0xe0, 0x43, 0xad, 0x00, 0x1e, 0x64, 0x69, 0x6c, 0x6c, 0x2d, 0x62, 0x6c, 0x69, 0xf4, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0x47, 0x86, 0xd0, 0x83, 0x17, 0x68, 0xe3, 0x36, 0x80, 0x57, 0x98, 0x9c, 0xdd, 0x1b, 0xc8, 0x5b, 0x1d, 0x1d, 0x5c, 0x1d, 0xdd, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x0b, 0xb4, 0x71, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x6b, 0xf7, 0xc8, 0x36, 0x08, 0xda, 0x9f, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x7b, 0x1e, 0xc9, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x1c, 0x63, 0x4b, 0x2b, 0x73, 0xa3, 0x03, 0x79, 0xab, 0xa3, 0x83, 0xab, 0xa3, 0xdb, 0xf0, 0xef, 0xfc, 0x1a, 0xbc, 0x38, 0x4b, 0xa5, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x9b, 0x24, 0xdb, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x73, 0x8c, 0xed, 0x6d, 0xae, 0x0c, 0x64, 0xec, 0xcd, 0x6d, 0xee, 0x8d, 0xad, 0x6c, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0x58, 0x92, 0x6d, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0x60, 0x19, 0x2c, 0xe8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x91, 0x9b, 0x64, 0x07, 0x21, 0xf8, 0x50, 0xab, 0xc1, 0x8b, 0xb3, 0x54, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x38, 0x32, 0x84, 0x1e, 0xbc, 0x38, 0x4b, 0xa5, 0x83, 0x27, 0x90, 0xe3, 0x6e, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xbc, 0x38, 0x4b, 0x65, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x0e, 0x94, 0x6c, 0x83, 0xa0, 0xfd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x75, 0x94, 0x6c, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xbf, 0xb6, 0xb0, 0xb5, 0x32, 0x90, 0x30, 0x10, 0xb7, 0xb7, 0xb4, 0xb9, 0xb2, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x64, 0x4a, 0xb6, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0xc0, 0x13, 0x2b, 0x63, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x5d, 0x25, 0x3b, 0x08, 0xc1, 0x87, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x7b, 0x25, 0xdb, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x7f, 0x8c, 0xad, 0x2c, 0x4c, 0x0e, 0x84, 0x0e, 0xad, 0x0c, 0x64, 0x6e, 0x4c, 0xae, 0xac, 0xcc, 0x6d, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x47, 0xc8, 0x92, 0x6d, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0x2e, 0xf0, 0xc6, 0xd8, 0xe4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xfb, 0x6e, 0xc9, 0x0e, 0x42, 0xf0, 0xa1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x83, 0x76, 0xc9, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0x63, 0xae, 0x8c, 0x0e, 0x64, 0xac, 0x4e, 0x6e, 0xee, 0x4d, 0x0e, 0x64, 0xec, 0x8d, 0xed, 0x05, 0xee, 0x6d, 0x6e, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0xf7, 0x92, 0x6d, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0x2e, 0xf0, 0xd0, 0xde, 0xe0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xbb, 0x8b, 0xc9, 0x36, 0xfc, 0xb9, 0x34, 0x38, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x34, 0x4c, 0xb6, 0xe1, 0x83, 0xf9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xf3, 0xb3, 0xc9, 0x0e, 0xca, 0x2c, 0xdd, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x8a, 0x64, 0xb2, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xe4, 0x4c, 0xb6, 0xe1, 0xcf, 0xa5, 0xc1, 0xf1, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xd8, 0x65, 0xb2, 0x83, 0x32, 0x4b, 0x77, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x5e, 0x6a, 0xb2, 0x0d, 0x7f, 0x2e, 0x0d, 0x9e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0x48, 0x93, 0x1d, 0x94, 0x59, 0xba, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x76, 0x37, 0xd9, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x3e, 0x70, 0x75, 0x74, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x64, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x0e, 0x9c, 0x6c, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x81, 0xb7, 0xc6, 0x26, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x87, 0x4e, 0xb6, 0xe1, 0xcf, 0xa5, 0xc1, 0xe1, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xf0, 0x72, 0xb2, 0x0d, 0xff, 0xce, 0xaf, 0xc1, 0xab, 0x24, 0xde, 0xaa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xdb, 0xda, 0xc9, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x6d, 0xab, 0x63, 0xa3, 0x4b, 0x83, 0x63, 0x2b, 0x03, 0x11, 0x63, 0x4b, 0xa3, 0x9b, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x09, 0xf0, 0x64, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x18, 0x0b, 0x62, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0xe0, 0x93, 0x6d, 0xf8, 0x73, 0x69, 0x70, 0x78, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xae, 0x9e, 0x6c, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x72, 0x9f, 0xec, 0x20, 0xa4, 0x4c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xfe, 0x27, 0x3b, 0x78, 0x7c, 0x39, 0x6e, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x44, 0x50, 0xb6, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0xc0, 0xeb, 0x56, 0x76, 0xc7, 0x96, 0xe6, 0x56, 0xb6, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xcb, 0x0d, 0xca, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x17, 0x78, 0x6e, 0x65, 0xec, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x51, 0x0c, 0x65, 0x07, 0x21, 0xf8, 0xd0, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x15, 0x10, 0x65, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xf0, 0x01, 0x57, 0x47, 0x07, 0x42, 0x57, 0x86, 0x47, 0x07, 0x12, 0x46, 0x07, 0x32, 0x56, 0x27, 0x37, 0xf7, 0x26, 0xb7, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x63, 0x25, 0xca, 0x0e, 0x1e, 0x76, 0x9c, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x94, 0x46, 0xd9, 0x86, 0x3f, 0x97, 0x06, 0x87, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x83, 0x2f, 0xca, 0x36, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xbb, 0x3b, 0xca, 0x0e, 0x42, 0xca, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x80, 0x91, 0xb2, 0x83, 0xe3, 0x00, 0x6c, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x8e, 0x52, 0xb6, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xf7, 0x5c, 0x98, 0x5d, 0x19, 0x08, 0xdd, 0x1b, 0x88, 0x5a, 0x58, 0x9b, 0x59, 0x1a, 0x5b, 0xd9, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x5b, 0x29, 0xdb, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0x5d, 0xe0, 0xcd, 0x85, 0x9d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0xce, 0x94, 0x6d, 0xf8, 0x73, 0x69, 0x70, 0x78, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x1e, 0xa6, 0xec, 0xe0, 0x8c, 0x84, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x7c, 0x4e, 0xd9, 0x86, 0x3f, 0x97, 0x06, 0x8f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xc3, 0x6e, 0xca, 0x0e, 0xc2, 0x74, 0xac, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x6b, 0x7b, 0xca, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x9b, 0x0b, 0xb3, 0x2b, 0x03, 0xa1, 0x7b, 0x03, 0x31, 0x4b, 0x63, 0x2b, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x51, 0x40, 0x65, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x0b, 0xbc, 0xb9, 0x30, 0x7b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x2a, 0xa4, 0xb2, 0x0d, 0x7f, 0x2e, 0x0d, 0x0e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0x17, 0x95, 0x1d, 0x9c, 0x91, 0x50, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x76, 0x2a, 0xdb, 0xf0, 0xe7, 0xd2, 0xe0, 0xf1, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x0d, 0x53, 0xd9, 0xe1, 0x87, 0x9a, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x9a, 0x2a, 0xdb, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x2f, 0x6c, 0x8c, 0x2e, 0xcd, 0x2e, 0x8c, 0xae, 0x0c, 0xa4, 0x4e, 0x8e, 0x6d, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0x57, 0x95, 0x6d, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0x2e, 0xf0, 0xea, 0xe4, 0xd8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xeb, 0xbb, 0xca, 0x36, 0xfc, 0xb9, 0x34, 0x38, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xb6, 0x55, 0x76, 0x70, 0x9e, 0x1d, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x86, 0xb0, 0xb2, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xfc, 0xef, 0xd2, 0xe0, 0xca, 0x40, 0xc6, 0xea, 0xe4, 0xe6, 0xde, 0xe4, 0x40, 0xd8, 0xd2, 0xdc, 0xca, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xea, 0x58, 0xd9, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0xda, 0x54, 0xe8, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x22, 0xad, 0xec, 0x20, 0x04, 0x1f, 0x6a, 0x35, 0x78, 0xb9, 0x5c, 0xd0, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0xcb, 0xe5, 0x82, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x63, 0xdb, 0xca, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x1b, 0x7b, 0x63, 0xab, 0x6b, 0x73, 0x9b, 0x03, 0x91, 0x7b, 0xbb, 0x9b, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xdd, 0x72, 0x65, 0x1b, 0xfe, 0x5c, 0x1a, 0x1c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x82, 0x2b, 0x3b, 0x28, 0xb3, 0x74, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xca, 0x2b, 0xdb, 0xf0, 0xe7, 0xd2, 0xe0, 0xf1, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xaf, 0x5d, 0xd9, 0x41, 0x99, 0xa5, 0xdb, 0x0a, 0xf8, 0x62, 0x6f, 0x6c, 0xf4, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0x47, 0x86, 0xd0, 0x83, 0xd7, 0x13, 0xe6, 0x36, 0x80, 0xdf, 0x5c, 0x5a, 0x1b, 0x1c, 0x5b, 0x19, 0x48, 0x9a, 0x1b, 0x5c, 0x1d, 0xdd, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0xeb, 0x09, 0x73, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xdb, 0xfb, 0xca, 0x36, 0x7c, 0x30, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x30, 0x77, 0xd9, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xfe, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x6b, 0x65, 0x79, 0x73, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x07, 0xc7, 0x01, 0xd8, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x7a, 0xc0, 0xb2, 0x0d, 0x82, 0xf6, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x62, 0xc2, 0xb2, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x3c, 0xc2, 0xe4, 0xe4, 0xde, 0xee, 0x40, 0xd6, 0xca, 0xf2, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xd8, 0x61, 0xd9, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x02, 0x2f, 0x4c, 0xee, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xeb, 0xb1, 0x6c, 0xc3, 0x9f, 0x4b, 0x83, 0xc3, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xcd, 0x8c, 0x65, 0x1b, 0x04, 0x9b, 0xe9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xa5, 0x92, 0x65, 0x07, 0xe7, 0xdc, 0x94, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x03, 0x30, 0xcb, 0x0e, 0xd6, 0xdc, 0xb1, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xd0, 0x59, 0x76, 0xb0, 0x30, 0xb9, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xaa, 0xd0, 0xb2, 0x83, 0x84, 0x30, 0xa3, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xdd, 0xb4, 0x6c, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x5f, 0x3a, 0xb9, 0xba, 0x32, 0x10, 0xb1, 0xb0, 0xb1, 0xb5, 0x39, 0xb8, 0xb0, 0xb1, 0xb2, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x98, 0x5a, 0xb6, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0xc0, 0x13, 0x0b, 0x1b, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x77, 0x2d, 0x3b, 0x08, 0xc1, 0x87, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x95, 0x2d, 0xdb, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x8b, 0x4e, 0xae, 0xae, 0x0c, 0x84, 0xac, 0x8c, 0xad, 0x8c, 0xae, 0x6c, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x47, 0xd5, 0x96, 0x1d, 0xbc, 0xc0, 0x9d, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x96, 0xdc, 0xb2, 0x83, 0x10, 0x7c, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xbc, 0xde, 0xb2, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xbc, 0xda, 0xde, 0xea, 0xe6, 0xca, 0x40, 0xc6, 0xd8, 0xd2, 0xc6, 0xd6, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x05, 0x70, 0xd9, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x96, 0xf7, 0x86, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x81, 0x5c, 0xb6, 0xe1, 0xcf, 0xa5, 0xc1, 0xf1, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xc4, 0xe2, 0xb2, 0x83, 0x32, 0x4b, 0x77, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x44, 0xe7, 0xb2, 0x0d, 0x7f, 0x2e, 0x0d, 0x9e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0x2f, 0x97, 0x1d, 0x94, 0x59, 0xba, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x1a, 0x5d, 0xb6, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0xc0, 0x27, 0x57, 0x46, 0x57, 0x27, 0xe7, 0xb6, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x83, 0xa8, 0xcb, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x17, 0x78, 0x72, 0x65, 0xf4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xc1, 0xd9, 0x65, 0x07, 0x21, 0xf8, 0x50, 0x87, 0x53, 0x6c, 0x0d, 0x1e, 0x49, 0x27, 0xb2, 0xe1, 0x79, 0x92, 0x0d, 0x9e, 0x2e, 0x64, 0xb7, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0x48, 0x3a, 0x91, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xe8, 0xf0, 0xb2, 0x0d, 0x82, 0xf6, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xbe, 0xf2, 0xb2, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xbc, 0xe9, 0xca, 0xe4, 0xda, 0xd2, 0xdc, 0xc2, 0xd8, 0x40, 0xde, 0xea, 0xe8, 0xe0, 0xea, 0xe8, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x06, 0x7a, 0xd9, 0x86, 0x0c, 0xf8, 0xc1, 0xb3, 0xb2, 0x54, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x80, 0x2f, 0xdb, 0xf0, 0xe7, 0xd2, 0xe0, 0xf0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x61, 0x7b, 0xd9, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xe9, 0x7c, 0xd9, 0x41, 0x48, 0x99, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x7e, 0x5f, 0x76, 0xf0, 0xf8, 0x72, 0xdc, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xa1, 0xbf, 0x6c, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x83, 0xb7, 0xb1, 0x70, 0xb5, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x4b, 0xff, 0xcb, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xf0, 0x9a, 0xfd, 0xb2, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x23, 0x0a, 0xcc, 0x0e, 0x42, 0xf0, 0xa1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xb3, 0x11, 0xcc, 0x36, 0x3c, 0xf1, 0xbe, 0xc1, 0xfb, 0x78, 0x71, 0x37, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xdd, 0x82, 0xd9, 0xc1, 0x3b, 0xaf, 0xfd, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x7a, 0x30, 0x3b, 0x08, 0xc1, 0x87, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x98, 0x30, 0xdb, 0xf0, 0xc4, 0xfb, 0x06, 0x6f, 0x20, 0xc6, 0xdd, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb5, 0x15, 0x66, 0x07, 0xaf, 0x40, 0xc6, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x32, 0xc3, 0xec, 0x20, 0x04, 0x1f, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xab, 0xc3, 0x6c, 0xc3, 0x13, 0xef, 0x1b, 0x3c, 0x7e, 0x14, 0x77, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0x7f, 0x98, 0x1d, 0xbc, 0xde, 0xde, 0x63, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x30, 0x13, 0xb3, 0x0d, 0x7f, 0x2e, 0x0d, 0x0e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x47, 0x8f, 0x98, 0x1d, 0x94, 0x59, 0xba, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xa4, 0x62, 0xb6, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xe7, 0x5c, 0xde, 0x1c, 0x5d, 0x59, 0x1b, 0xc8, 0x5b, 0x1d, 0x1d, 0x5c, 0x1d, 0xdd, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x66, 0x31, 0xdb, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0x5b, 0xe2, 0x82, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0xa6, 0x31, 0xdb, 0xf0, 0xe7, 0xd2, 0x06, 0xaf, 0xa3, 0xc5, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x92, 0x31, 0x3b, 0x78, 0xfe, 0x2c, 0x6e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0xe8, 0x98, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0xd9, 0x56, 0xd6, 0xf6, 0x26, 0x97, 0x07, 0x22, 0x57, 0x06, 0xf7, 0x26, 0x47, 0xb7, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x3b, 0x79, 0xcc, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xf0, 0x16, 0x1c, 0xb3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x33, 0x89, 0xcc, 0x36, 0xfc, 0xb9, 0x34, 0x38, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x20, 0x64, 0xb6, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x82, 0x64, 0x76, 0x10, 0x52, 0x26, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0x31, 0x99, 0x6d, 0xf8, 0x77, 0x7e, 0x83, 0xf7, 0x7f, 0x97, 0x55, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0x41, 0x99, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0xdb, 0x56, 0xd6, 0xf6, 0x26, 0x97, 0x07, 0x22, 0x57, 0xe7, 0x46, 0x97, 0xd6, 0x56, 0xb6, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x03, 0xa6, 0xcc, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xf0, 0x72, 0xb6, 0xa0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xdb, 0xb0, 0xcc, 0x0e, 0x42, 0xf0, 0xa1, 0x66, 0x01, 0x3c, 0xc8, 0xd2, 0xd8, 0xd8, 0x5a, 0xc4, 0xca, 0xd8, 0xe8, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x8e, 0x0c, 0xa1, 0x07, 0x4f, 0xb8, 0xd0, 0x6d, 0x00, 0x9f, 0x30, 0x39, 0xbb, 0x37, 0x90, 0x34, 0x37, 0xb8, 0x3a, 0xba, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0x27, 0x5c, 0xe8, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0x76, 0x99, 0x6d, 0x10, 0xb4, 0x3f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0xa2, 0x99, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x37, 0xc6, 0x96, 0x56, 0xe6, 0x46, 0x07, 0x92, 0xe6, 0x06, 0x57, 0x47, 0xb7, 0xe1, 0xdf, 0xf9, 0x35, 0x78, 0xab, 0x61, 0x50, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xe1, 0x66, 0xb6, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x2d, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x20, 0x28, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0xa9, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x0b, 0x67, 0xb6, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0xc0, 0x1b, 0x93, 0xab, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0xc5, 0x33, 0xdb, 0xf0, 0xe7, 0xd2, 0xe0, 0xf0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x8a, 0x9d, 0xd9, 0xc1, 0x79, 0xf3, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x96, 0x3f, 0xb3, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0xf2, 0x99, 0x6d, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0x0a, 0x9a, 0x1d, 0x84, 0x94, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x01, 0x87, 0x66, 0x07, 0x67, 0x82, 0xd1, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x93, 0xd1, 0x6c, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x80, 0x57, 0xae, 0xcc, 0x4c, 0xae, 0x6c, 0x0e, 0x6d, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0x3c, 0x9a, 0x6d, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xa0, 0x7d, 0x16, 0xc3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x4b, 0x29, 0xcd, 0x0e, 0x42, 0xf0, 0xa1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xeb, 0x31, 0xcd, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0x43, 0xae, 0x6c, 0x2e, 0x4d, 0xaf, 0x8c, 0x05, 0x64, 0xec, 0x8d, 0x6d, 0x8e, 0x05, 0x44, 0xee, 0xed, 0x6e, 0x6e, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x47, 0x6e, 0x9a, 0x6d, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0x2e, 0xf0, 0xe4, 0xca, 0xf4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x2b, 0x47, 0xcd, 0x36, 0xfc, 0xb9, 0x34, 0x38, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x10, 0x6a, 0x76, 0x50, 0x66, 0xe9, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xa0, 0x6a, 0xb6, 0xe1, 0xcf, 0xa5, 0xc1, 0xe3, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xba, 0x53, 0xb3, 0x83, 0x32, 0x4b, 0xb7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x43, 0x5a, 0xcd, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x1d, 0x7b, 0x73, 0x73, 0x2b, 0x1b, 0xa3, 0x03, 0xa1, 0x7b, 0x03, 0x09, 0x83, 0x83, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xbd, 0xaf, 0x66, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x0b, 0xbc, 0xbc, 0xb7, 0x7b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xe6, 0x5b, 0xb3, 0x0d, 0x7f, 0x2e, 0x0d, 0x0e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0xd4, 0x9a, 0x6d, 0xf8, 0x77, 0x7e, 0x0d, 0x5e, 0x5d, 0x61, 0xdb, 0xc1, 0x6b, 0xe6, 0xeb, 0x6a, 0x35, 0x78, 0x1d, 0x2d, 0xee, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0x47, 0x86, 0xd0, 0x83, 0xd7, 0xd1, 0xe2, 0x76, 0xf0, 0xba, 0xfb, 0xdc, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0xd7, 0xd1, 0xe2, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0xfa, 0x9a, 0x6d, 0x10, 0xb4, 0x3f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0x07, 0x9b, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x1c, 0xbc, 0xfe, 0x1f, 0x6f, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0x11, 0x9b, 0x1d, 0xbc, 0xf9, 0x1c, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x72, 0x65, 0xb3, 0x0d, 0x7f, 0x2e, 0x0d, 0x0e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0x21, 0x9b, 0x1d, 0x9c, 0x37, 0x4f, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x8a, 0x36, 0xdb, 0xf0, 0xe7, 0xd2, 0xe0, 0xf1, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xb2, 0xb3, 0xd9, 0x41, 0x83, 0xe2, 0x81, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x65, 0x6d, 0xb6, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x3e, 0x5d, 0x98, 0xdb, 0xda, 0x1c, 0x08, 0x4a, 0x9a, 0x1b, 0xc8, 0x9b, 0x1c, 0x59, 0x99, 0x5c, 0x6a, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0x63, 0x9b, 0x6d, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xe0, 0x15, 0x79, 0x41, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0x83, 0x9b, 0x6d, 0xf8, 0x73, 0x69, 0x70, 0x78, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xcc, 0xdb, 0x6c, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x90, 0xdc, 0xec, 0x20, 0xa4, 0x4c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x46, 0x37, 0x3b, 0x38, 0x13, 0x8c, 0xd6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x81, 0xec, 0x66, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x07, 0xc7, 0x40, 0xd1, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xf1, 0x6e, 0x76, 0xd0, 0x68, 0x53, 0xe7, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x85, 0xf5, 0x66, 0x1b, 0xfe, 0x5c, 0x1a, 0x1c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x97, 0x37, 0x3b, 0x38, 0xe9, 0x89, 0xd6, 0x6a, 0xf0, 0x72, 0xb6, 0xa0, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x8e, 0x0c, 0xa1, 0x07, 0x2f, 0x67, 0x0b, 0xea, 0xe0, 0x2d, 0x02, 0xba, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0x2f, 0x67, 0x0b, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0xf4, 0x37, 0xdb, 0x20, 0xd4, 0x10, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x3c, 0x5d, 0x48, 0x06, 0xf2, 0x74, 0x61, 0xb1, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x4f, 0x17, 0xa2, 0x81, 0x3c, 0x5d, 0x08, 0x0f, 0xd6, 0x2a, 0xd4, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0xba, 0x90, 0x0e, 0xe4, 0xe9, 0x42, 0x7c, 0x78, 0xf0, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xd3, 0x85, 0x7c, 0x20, 0x4f, 0x17, 0x06, 0x07, 0x05, 0x45, 0x66, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xfd, 0xfb, 0x66, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x72, 0xe0, 0x6c, 0xc3, 0x9f, 0x4b, 0x1b, 0xbe, 0x6f, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x08, 0x38, 0x3b, 0x38, 0xcf, 0x8e, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xac, 0x70, 0xb6, 0xe1, 0xcf, 0xa5, 0x0d, 0x9e, 0xef, 0x52, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x83, 0x70, 0x76, 0x50, 0x66, 0xe9, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x20, 0x71, 0xb6, 0xe1, 0xcf, 0xa5, 0x01, 0x9e, 0xb8, 0xba, 0xb0, 0xb1, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xed, 0xe1, 0x6c, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xb2, 0xe2, 0xec, 0x20, 0xa4, 0x4c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0xce, 0x38, 0x3b, 0x78, 0x4b, 0x83, 0x6e, 0x1d, 0x4e, 0xb1, 0x5a, 0x83, 0xd7, 0xa0, 0xaa, 0x6c, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x70, 0x64, 0x08, 0x3d, 0x78, 0x0d, 0xaa, 0x4a, 0x03, 0xf0, 0x40, 0x96, 0xc6, 0xc6, 0x06, 0x42, 0xf7, 0x06, 0x52, 0x37, 0x57, 0x26, 0x37, 0x07, 0x17, 0x36, 0x56, 0xb6, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0x1a, 0x54, 0x95, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xc4, 0x8f, 0xb3, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x48, 0x72, 0xb6, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x2f, 0x5d, 0x98, 0xdc, 0x59, 0x19, 0x1d, 0xc8, 0x5c, 0xd9, 0xdc, 0x5c, 0xda, 0x9b, 0xdb, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0xb9, 0xb2, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x40, 0xe4, 0xec, 0xe0, 0xbc, 0x79, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x4d, 0xca, 0xd9, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0xc1, 0x7b, 0x4f, 0x2c, 0x37, 0xfc, 0x3b, 0xbf, 0x06, 0x4f, 0xb8, 0xd0, 0xad, 0x66, 0x01, 0xfc, 0xe6, 0xca, 0xe6, 0xe6, 0xd2, 0xde, 0xdc, 0x5a, 0xe8, 0xc2, 0xe6, 0xd6, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x8e, 0x0c, 0xa1, 0x07, 0x4f, 0x9b, 0xd5, 0x6d, 0x00, 0xef, 0xb9, 0xb2, 0xb9, 0xb9, 0xb4, 0x37, 0x37, 0x10, 0xb9, 0xb2, 0xb8, 0xba, 0xb2, 0x39, 0xba, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0xa7, 0xcd, 0xea, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0xbe, 0x9c, 0x6d, 0x10, 0xb4, 0x3f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0xcb, 0x9c, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x4b, 0x57, 0x26, 0xd7, 0x96, 0xe6, 0x16, 0xc6, 0x06, 0x92, 0xe6, 0x06, 0x57, 0x47, 0xb7, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xbb, 0x6a, 0xce, 0x0e, 0x5e, 0x19, 0xa5, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x56, 0xcf, 0xd9, 0x86, 0x3f, 0x97, 0x06, 0x87, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x93, 0x75, 0xce, 0x0e, 0x5e, 0x2b, 0xa2, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xd5, 0x41, 0x67, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0xd3, 0x95, 0xc9, 0xb5, 0xa5, 0xb9, 0x85, 0xb1, 0x81, 0x8c, 0xbd, 0xb9, 0x99, 0xa5, 0x9d, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x38, 0xa2, 0xb3, 0x83, 0xb7, 0x6b, 0x69, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xc6, 0x74, 0xb6, 0xe1, 0xcf, 0xa5, 0xc1, 0xe1, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xee, 0xa4, 0xb3, 0x0d, 0xff, 0xce, 0xaf, 0xc1, 0xcb, 0xe5, 0x82, 0xaa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xd3, 0xa2, 0xce, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0xae, 0x73, 0xbb, 0x0b, 0xa3, 0x1b, 0x43, 0x03, 0x99, 0x2b, 0x9b, 0x9b, 0x4b, 0x7b, 0x73, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x05, 0x54, 0x67, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x78, 0x27, 0x5d, 0xd0, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x71, 0x59, 0x67, 0x07, 0x21, 0xf8, 0xd0, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x39, 0x5d, 0x67, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xf8, 0xd3, 0x95, 0xc9, 0xb5, 0xa5, 0xb9, 0x85, 0xb1, 0x81, 0xc8, 0x95, 0x99, 0xc9, 0x95, 0xcd, 0xa1, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xea, 0xaf, 0xb3, 0x83, 0x07, 0xf7, 0x69, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x54, 0x76, 0x76, 0x10, 0x82, 0x0f, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x90, 0x76, 0xb6, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xe7, 0x5c, 0x19, 0x5d, 0x1d, 0x1c, 0xc8, 0x5c, 0xd9, 0xdc, 0x5c, 0xda, 0x9b, 0xdb, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x5d, 0x3b, 0x3b, 0x78, 0x8f, 0xbc, 0xe2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x4d, 0x73, 0x67, 0x1b, 0xfe, 0x5c, 0x1a, 0x1c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x85, 0x3b, 0x3b, 0x78, 0x30, 0xe3, 0xdf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xe9, 0x7a, 0x67, 0x1b, 0xfe, 0x5c, 0x1a, 0x3c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xc2, 0x3b, 0xdb, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0xf3, 0x3b, 0x3b, 0x08, 0x29, 0x93, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x83, 0x05, 0xcf, 0x0e, 0xde, 0x58, 0xa5, 0x5b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0x1d, 0x9e, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x39, 0xc6, 0xf6, 0x36, 0x57, 0x06, 0x32, 0x57, 0x36, 0x37, 0x97, 0xf6, 0xe6, 0xb6, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xc3, 0x13, 0xcf, 0x0e, 0x5e, 0x16, 0xb0, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xbc, 0xe3, 0xd9, 0x41, 0x08, 0x3e, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x7d, 0xe4, 0xd9, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xbc, 0xdc, 0x85, 0xd1, 0x8d, 0xa1, 0x81, 0xcc, 0x95, 0xcd, 0xcd, 0xa5, 0xbd, 0xb9, 0x81, 0x88, 0xb1, 0xa5, 0xd1, 0xcd, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x48, 0xca, 0xb3, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0xbc, 0xa5, 0x37, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xfe, 0xcc, 0xb3, 0x83, 0x10, 0x7c, 0xa8, 0xc3, 0x29, 0xb6, 0x06, 0x6f, 0x8a, 0x1c, 0xd9, 0xf0, 0x3c, 0xc9, 0x06, 0xaf, 0x19, 0xb7, 0xdb, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0x53, 0xe4, 0xc8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x4e, 0xe8, 0xd9, 0x06, 0xa1, 0x86, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0xd2, 0x42, 0x32, 0x90, 0x49, 0x0b, 0x93, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0xb4, 0x10, 0x0d, 0x64, 0xd2, 0x42, 0x7e, 0xf0, 0xfa, 0xef, 0x94, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x93, 0x16, 0x06, 0x03, 0x99, 0xb4, 0xb0, 0x38, 0x28, 0x28, 0x32, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xf6, 0x3c, 0xdb, 0x20, 0x68, 0x7f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x54, 0x5a, 0x48, 0x06, 0x52, 0x69, 0xe1, 0xcd, 0x86, 0x27, 0xde, 0x37, 0x78, 0x32, 0xbe, 0xdd, 0x06, 0xeb, 0x55, 0xaa, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x54, 0x5a, 0x08, 0x07, 0x52, 0x69, 0x61, 0x71, 0xf0, 0x2e, 0x7f, 0xbb, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x5c, 0xd2, 0xb3, 0x83, 0x17, 0x08, 0xdc, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x92, 0x7a, 0xb6, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xff, 0x5d, 0x59, 0x9a, 0x1c, 0x19, 0x48, 0x09, 0x59, 0x1a, 0x1b, 0x1b, 0x88, 0xd8, 0xdb, 0x1b, 0xdd, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x5e, 0x3d, 0x3b, 0x78, 0x85, 0x96, 0xe3, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x35, 0xb2, 0x67, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x74, 0x30, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xfa, 0x7a, 0x76, 0xf8, 0x60, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x48, 0xdc, 0xb3, 0x0d, 0x7f, 0x2e, 0x0d, 0x0e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0xd8, 0x9e, 0x1d, 0x84, 0xe9, 0x58, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0xf1, 0x9e, 0x6d, 0x78, 0xe2, 0x7d, 0x83, 0xc7, 0x8f, 0xe2, 0x6e, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x78, 0xdf, 0xb3, 0x83, 0x87, 0xa1, 0xe2, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x55, 0x7c, 0xb6, 0xe1, 0xcf, 0xa5, 0xc1, 0xe1, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x66, 0xe1, 0xb3, 0x83, 0x32, 0x4b, 0xb7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x7b, 0x92, 0xcf, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0xbc, 0x93, 0x0b, 0x83, 0x83, 0x2b, 0x23, 0x03, 0x29, 0x93, 0x93, 0x7b, 0x93, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xd9, 0xcb, 0x67, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x78, 0x69, 0x59, 0xd0, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xd5, 0xd3, 0x67, 0x1b, 0xfe, 0x5c, 0x1a, 0x1c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x8a, 0x3e, 0xdb, 0xf0, 0xef, 0xfc, 0x1a, 0xbc, 0xb4, 0x2c, 0xa8, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xf5, 0xfa, 0x6c, 0xc3, 0x13, 0xef, 0x1b, 0x3c, 0x38, 0x40, 0x77, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0x69, 0x9f, 0x1d, 0x3c, 0xfd, 0x16, 0x77, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x12, 0xef, 0xb3, 0x83, 0x10, 0x7c, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0xa7, 0x85, 0x64, 0x20, 0x9f, 0x16, 0xde, 0x6c, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x1f, 0x66, 0x46, 0x57, 0x26, 0x07, 0x72, 0x16, 0xc6, 0xc6, 0x06, 0x22, 0x57, 0x16, 0x46, 0x96, 0xb7, 0xc1, 0x7a, 0x95, 0xaa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x9f, 0x16, 0xc2, 0x81, 0x7c, 0x5a, 0x58, 0x1c, 0xbc, 0x3f, 0xd8, 0x6f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x45, 0xfc, 0xec, 0xe0, 0x05, 0x02, 0x77, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0x9a, 0x9f, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0xcb, 0x5d, 0x18, 0xdd, 0x18, 0x1a, 0xc8, 0x5c, 0xde, 0x1c, 0x5d, 0x59, 0x1b, 0xc8, 0x5b, 0x1d, 0x1d, 0x5c, 0x1d, 0xdd, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x49, 0x3f, 0x3b, 0x78, 0xbc, 0x7e, 0xee, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x9d, 0xef, 0x67, 0x1b, 0xfe, 0x5c, 0x1a, 0x1c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x68, 0x3f, 0xdb, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x99, 0x3f, 0x3b, 0x28, 0x9b, 0x30, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0xc2, 0x3f, 0x3b, 0x08, 0xc1, 0x87, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xa7, 0xff, 0x6c, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x1e, 0xe4, 0xea, 0xdc, 0x40, 0xda, 0xca, 0xda, 0xde, 0xe4, 0xf2, 0x40, 0xe4, 0xca, 0xe0, 0xde, 0xe4, 0xe8, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xf6, 0xff, 0xd9, 0x86, 0x0c, 0xf8, 0xc1, 0x23, 0xa5, 0x52, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x2a, 0x40, 0x3b, 0x08, 0xc1, 0x87, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x48, 0x40, 0xdb, 0xf0, 0xc4, 0xfb, 0x06, 0x0f, 0x7f, 0xd0, 0xdd, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xa9, 0x0b, 0x68, 0x07, 0x4f, 0x9f, 0xd0, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x42, 0x02, 0x6d, 0xc3, 0x9f, 0x4b, 0x83, 0xc3, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x85, 0x0f, 0x68, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xa5, 0x15, 0x68, 0x07, 0x21, 0x65, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x7a, 0x06, 0xda, 0xc1, 0x5b, 0x1a, 0x74, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x32, 0x0f, 0xb4, 0x0d, 0x4f, 0xbc, 0x6f, 0xf0, 0x3e, 0x5e, 0xdc, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x10, 0x82, 0x76, 0xf0, 0xce, 0x6b, 0xbf, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xbb, 0x49, 0xd0, 0x0e, 0x42, 0xf0, 0xa1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x4b, 0x51, 0xd0, 0x36, 0x3c, 0xf1, 0xbe, 0xc1, 0x1b, 0x88, 0x71, 0x37, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xd0, 0x0a, 0xda, 0xc1, 0x2b, 0x90, 0x71, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x78, 0x41, 0x3b, 0x08, 0xc1, 0x87, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x97, 0x41, 0xdb, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x2f, 0xcd, 0x6d, 0x8e, 0x2e, 0x8c, 0x8d, 0x0d, 0x84, 0xac, 0x6c, 0x6e, 0x6d, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0xd6, 0xa0, 0x6d, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xe0, 0x75, 0x69, 0x41, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0xf5, 0xa0, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0x37, 0xe3, 0x85, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0xeb, 0xa0, 0x1d, 0x3c, 0x0a, 0x2f, 0xa4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xbb, 0x82, 0xd0, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0xa7, 0x0b, 0x9b, 0x5b, 0x03, 0x31, 0x7b, 0x93, 0x03, 0x99, 0x2b, 0x9b, 0x9b, 0x4b, 0x7b, 0x73, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xf9, 0x43, 0x68, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x78, 0xf6, 0x5e, 0xd0, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xfd, 0x4b, 0x68, 0x1b, 0xfe, 0x5c, 0x1a, 0xf0, 0xe6, 0xca, 0xe6, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xb6, 0x24, 0xb4, 0x83, 0xf3, 0xe6, 0xe9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x75, 0x52, 0x68, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x4d, 0x91, 0x23, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xe1, 0x4f, 0x68, 0x1b, 0xfe, 0x9d, 0x5f, 0x83, 0xa7, 0xcd, 0xea, 0x56, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x5e, 0x2d, 0x24, 0x03, 0x79, 0xb5, 0xf0, 0x63, 0xc3, 0x13, 0xef, 0x1b, 0x3c, 0x66, 0xea, 0x6e, 0x83, 0xf5, 0x2a, 0x55, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x5e, 0x2d, 0x84, 0x03, 0x79, 0xb5, 0xb0, 0x38, 0x78, 0xbd, 0xbd, 0xc7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xf9, 0x15, 0xda, 0xc1, 0x0b, 0x04, 0xee, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc4, 0x5a, 0x48, 0x06, 0x12, 0x6b, 0xe1, 0xcb, 0x86, 0x27, 0xde, 0x37, 0x78, 0x8f, 0xd7, 0xdd, 0x06, 0xeb, 0x55, 0xaa, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc4, 0x5a, 0x08, 0x07, 0x12, 0x6b, 0x61, 0x71, 0xf0, 0xc8, 0xb1, 0xbb, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x46, 0x2e, 0xb4, 0x83, 0x17, 0x08, 0xdc, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x0f, 0x86, 0xb6, 0xe1, 0x89, 0xf7, 0x0d, 0x1e, 0x3f, 0x8d, 0xbb, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x2b, 0xc7, 0xd0, 0x0e, 0x9e, 0x62, 0xf1, 0xb1, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xdc, 0x19, 0xda, 0x41, 0x08, 0x3e, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xce, 0x1a, 0xda, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xbc, 0x90, 0x95, 0xc1, 0xc9, 0x95, 0x8d, 0x85, 0xd1, 0x95, 0x91, 0x81, 0xc8, 0x95, 0xb5, 0xbd, 0xd9, 0x95, 0xb5, 0x95, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xea, 0x36, 0xb4, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x3c, 0x3a, 0x30, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xec, 0x3a, 0xb4, 0x0d, 0x7f, 0x2e, 0x6d, 0xb0, 0x6a, 0x20, 0x78, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x69, 0x0e, 0xed, 0x60, 0xbd, 0xd6, 0xf3, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x51, 0x7c, 0x68, 0x1b, 0xfe, 0x5c, 0x1a, 0xe0, 0x61, 0x2b, 0xb3, 0x2b, 0x63, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x7b, 0xf3, 0xd0, 0x36, 0x08, 0x36, 0xd3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xf3, 0x00, 0xd1, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xf0, 0x3e, 0x3f, 0xb4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x73, 0x0d, 0xd1, 0x0e, 0x5e, 0x5b, 0x26, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xce, 0x22, 0xda, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0xde, 0xdd, 0x88, 0x56, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0x53, 0xa2, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0x8b, 0xd9, 0x9b, 0x1c, 0x08, 0x59, 0x99, 0x59, 0x58, 0x1d, 0x1b, 0x1d, 0xc8, 0x5c, 0xd9, 0xdc, 0x5c, 0xda, 0x9b, 0xdb, 0xc1, 0x8b, 0x20, 0x77, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xc5, 0x44, 0xdb, 0xf0, 0xc4, 0xfb, 0x06, 0x4f, 0xb8, 0xcf, 0x3d, 0x78, 0xfe, 0x2c, 0x6e, 0xb3, 0x06, 0x6f, 0x35, 0x0c, 0xda, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xe0, 0xc8, 0x10, 0x7a, 0xf0, 0x56, 0xc3, 0xa0, 0x0e, 0xde, 0x0e, 0xa2, 0xbb, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0x56, 0xc3, 0xa0, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xcc, 0x4e, 0xb4, 0x0d, 0x82, 0xcd, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xf0, 0x58, 0xb4, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x83, 0x57, 0x1e, 0xe6, 0x6e, 0xf8, 0x77, 0x7e, 0x0d, 0x5e, 0x4f, 0x98, 0x5b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0x63, 0xa3, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x75, 0xf7, 0x02, 0xd2, 0xf6, 0x46, 0x96, 0x66, 0x96, 0x56, 0x26, 0xb7, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xe3, 0xb6, 0xd1, 0x0e, 0x1e, 0x73, 0xb4, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xde, 0x38, 0xda, 0x86, 0x3f, 0x97, 0x36, 0x34, 0x3f, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x07, 0x47, 0xdb, 0x20, 0xd8, 0x4c, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x36, 0x47, 0xdb, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0x5d, 0xe0, 0x8d, 0xd1, 0xb1, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x47, 0xb1, 0xa3, 0x6d, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0x60, 0x30, 0x75, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x11, 0x8f, 0xb6, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0xf6, 0x45, 0xa8, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x27, 0x1f, 0x6d, 0xc3, 0x9f, 0x4b, 0x1b, 0x14, 0xad, 0x27, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xa5, 0xf6, 0x68, 0x07, 0x6f, 0x78, 0xde, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x7c, 0x7e, 0xb4, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x7c, 0xea, 0xe8, 0xcc, 0x66, 0x64, 0x40, 0xe8, 0xca, 0xf0, 0xe8, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xe5, 0x3f, 0xda, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x16, 0xe0, 0x9e, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x79, 0x90, 0xb6, 0xe1, 0xcf, 0xa5, 0xc1, 0xe1, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x80, 0x82, 0xb4, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x8e, 0x85, 0xb4, 0x83, 0x90, 0x32, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x08, 0x22, 0xed, 0xe0, 0x38, 0x00, 0x5b, 0x1d, 0x4e, 0xb1, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x5b, 0xa0, 0xf7, 0xfe, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0x84, 0xe8, 0x40, 0x69, 0x88, 0xdb, 0xa0, 0x64, 0x61, 0x9f, 0x65, 0xd6, 0xe0, 0x3d, 0x92, 0x89, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x14, 0xc2, 0x60, 0xa0, 0x28, 0x84, 0xcd, 0xc1, 0xb1, 0xa5, 0x74, 0x05, 0xf8, 0xcb, 0xec, 0xca, 0xdc, 0xe8, 0x5a, 0xd2, 0xc8, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0x47, 0xe6, 0xef, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x5d, 0x08, 0x8b, 0x81, 0xba, 0x10, 0x4a, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xd4, 0x85, 0x30, 0x19, 0xa8, 0x0b, 0x61, 0xbb, 0xe1, 0xcf, 0xa5, 0x0d, 0x92, 0x16, 0x84, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x2e, 0x84, 0xe1, 0xc1, 0x23, 0x01, 0x78, 0x0f, 0xca, 0x2c, 0xdd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x2e, 0x84, 0xf1, 0x40, 0x5d, 0x08, 0x1d, 0x1b, 0xfe, 0x5c, 0xda, 0x60, 0xd9, 0xbe, 0xe0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xd4, 0x85, 0x50, 0x70, 0xf0, 0x3e, 0x03, 0xde, 0x83, 0x32, 0x4b, 0xb7, 0xc3, 0x29, 0xb6, 0x06, 0x6f, 0xa8, 0x8b, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xca, 0x10, 0xf2, 0x81, 0xca, 0x10, 0xd6, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2a, 0x43, 0x18, 0x0c, 0x54, 0x86, 0xb0, 0x39, 0x28, 0x11, 0xdf, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xca, 0x10, 0x46, 0x03, 0x95, 0x21, 0x8c, 0x37, 0xbc, 0xad, 0xb3, 0xc1, 0x23, 0xf3, 0x77, 0xeb, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x59, 0x20, 0xf8, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x2a, 0x43, 0x36, 0x90, 0x2d, 0x89, 0xdb, 0x20, 0xf5, 0xa2, 0x78, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6a, 0x65, 0xf4, 0xe0, 0x15, 0x17, 0xbc, 0x1b, 0x94, 0x2c, 0xec, 0xb3, 0xcc, 0x02, 0x3c, 0x73, 0x70, 0x61, 0x63, 0xe5, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x1b, 0x36, 0x78, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x84, 0x8c, 0x1b, 0xb8, 0x22, 0xe3, 0x37, 0x08, 0xda, 0x9f, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x84, 0x0c, 0xc9, 0xc0, 0x09, 0x19, 0x66, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xc8, 0x10, 0x0d, 0x9c, 0x90, 0x21, 0xdf, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0x5d, 0xe0, 0xc3, 0xd5, 0x89, 0xb1, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x09, 0x19, 0x06, 0x03, 0x27, 0x64, 0x58, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0xc7, 0xd8, 0xd8, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x09, 0x19, 0x16, 0x07, 0x2f, 0x40, 0xe1, 0x3d, 0x78, 0x9b, 0xae, 0x63, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x0d, 0x19, 0x92, 0x81, 0x1b, 0x32, 0x74, 0x6e, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x21, 0x43, 0x34, 0x70, 0x43, 0x86, 0x7c, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x0b, 0x78, 0xa7, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1b, 0x32, 0x0c, 0x06, 0x6e, 0xc8, 0xb0, 0xdc, 0xf0, 0xe7, 0xd2, 0x00, 0xff, 0x5b, 0x9d, 0x5c, 0x0b, 0x5b, 0x9a, 0x59, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x37, 0x64, 0x58, 0x1d, 0x3c, 0x8d, 0x86, 0xf7, 0xe0, 0x6d, 0xba, 0x8e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x0d, 0x19, 0xa6, 0x03, 0x37, 0x64, 0xa8, 0xd8, 0xf0, 0xe7, 0xd2, 0x80, 0x87, 0x56, 0x26, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x0d, 0x19, 0xe6, 0x07, 0x2f, 0xd9, 0xe1, 0x3d, 0x68, 0xdb, 0x7a, 0x7c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x21, 0x43, 0xc7, 0xc0, 0x0d, 0x19, 0xca, 0x36, 0xfc, 0xb9, 0x34, 0xc0, 0x8f, 0x56, 0x26, 0xd7, 0xc2, 0x96, 0x66, 0x56, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x0d, 0x19, 0x8a, 0x0e, 0xde, 0x13, 0xc4, 0x7b, 0xf0, 0x36, 0x5d, 0xc7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x86, 0x0c, 0x6d, 0x03, 0x37, 0x64, 0xa8, 0xdc, 0xf0, 0xe7, 0xd2, 0x06, 0x45, 0xeb, 0xc9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x90, 0xa1, 0xf1, 0xe0, 0x05, 0x48, 0xbc, 0x87, 0x1f, 0x6a, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0xc8, 0x90, 0x0c, 0x1c, 0x91, 0x61, 0xbf, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x88, 0x0c, 0xd1, 0xc0, 0x11, 0x19, 0xf2, 0x83, 0x97, 0x05, 0x2c, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x47, 0x64, 0x18, 0x0c, 0x1c, 0x91, 0x61, 0xb5, 0xe1, 0xcf, 0xa5, 0x01, 0x6f, 0x2d, 0x8d, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x23, 0x32, 0x8c, 0x0e, 0xde, 0x36, 0xc5, 0x7b, 0xf8, 0xa1, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x22, 0xc3, 0x6c, 0xe0, 0x88, 0x0c, 0xf3, 0x0d, 0x7f, 0x2e, 0x6d, 0x50, 0xb4, 0x9e, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x11, 0x19, 0xa6, 0x07, 0xcf, 0xca, 0xe2, 0xdd, 0xf0, 0x45, 0xcd, 0x86, 0x3a, 0x1e, 0x78, 0x75, 0x78, 0x49, 0xad, 0x00, 0x1e, 0x73, 0x69, 0x66, 0x74, 0x2d, 0x73, 0x68, 0x6f, 0xf4, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0x0b, 0xbd, 0x78, 0x1b, 0x00, 0xaf, 0xc8, 0xca, 0xe6, 0xca, 0xe4, 0xd2, 0xc2, 0xd8, 0xd2, 0xf4, 0xca, 0x40, 0xe0, 0xc2, 0xc6, 0xd6, 0xca, 0xe8, 0x40, 0xcc, 0xe4, 0xde, 0xda, 0x40, 0xc4, 0xf2, 0xe8, 0xca, 0xe6, 0xe8, 0xe4, 0xca, 0xc2, 0xda, 0x40, 0xde, 0xe4, 0x40, 0xc6, 0xe4, 0xc2, 0xe6, 0xd0, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x3e, 0x8b, 0x1b, 0xb8, 0xeb, 0x42, 0xfb, 0x86, 0x5f, 0x94, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfb, 0x2c, 0x24, 0x03, 0xf7, 0x59, 0x88, 0x37, 0xfc, 0xb9, 0xb4, 0x41, 0x0a, 0x9d, 0xcf, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x67, 0x21, 0x3a, 0x78, 0xf9, 0x1a, 0xef, 0x86, 0x7f, 0xe7, 0xd7, 0x20, 0x85, 0xce, 0xa7, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x40, 0x8b, 0x3b, 0x78, 0x4c, 0x1a, 0xef, 0x86, 0xbf, 0x68, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x03, 0x2d, 0x24, 0x03, 0x07, 0x5a, 0x48, 0x37, 0xfc, 0x3b, 0xbf, 0x06, 0xcf, 0xde, 0x0b, 0xaa, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xd0, 0xe2, 0x0e, 0x1e, 0x93, 0xc6, 0xbb, 0xc1, 0x92, 0xfa, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x42, 0x0b, 0xc9, 0xc0, 0x85, 0x16, 0x86, 0x1b, 0xde, 0xb8, 0xdb, 0xf0, 0xf2, 0x5d, 0x80, 0xef, 0x5c, 0x9a, 0x19, 0x5d, 0xcb, 0x1c, 0xda, 0x1b, 0x5d, 0x8b, 0x59, 0x58, 0x1a, 0xbb, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x47, 0x5a, 0xdc, 0xc1, 0x63, 0xd2, 0x78, 0x37, 0x28, 0x48, 0x63, 0x37, 0x78, 0x1c, 0x19, 0xdd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xa4, 0x85, 0xc5, 0xc0, 0x91, 0x16, 0xd6, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0xb4, 0x30, 0x19, 0x38, 0xd2, 0xc2, 0xea, 0xa0, 0xc8, 0xc4, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0xb4, 0x30, 0x1b, 0x38, 0xd2, 0xc2, 0xee, 0xe0, 0xb0, 0xc0, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x69, 0x61, 0x38, 0x70, 0xa4, 0x85, 0xf1, 0x86, 0xb7, 0x75, 0x0e, 0x1e, 0x01, 0xc7, 0xdb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x69, 0x71, 0x07, 0x8f, 0x49, 0xe3, 0xdd, 0xa0, 0x20, 0x8d, 0xdd, 0x60, 0xd9, 0x14, 0xf4, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xa5, 0x85, 0xc5, 0xc0, 0x95, 0x16, 0xd6, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xae, 0xb4, 0x30, 0x19, 0xb8, 0xd2, 0xc2, 0xea, 0xa0, 0xc4, 0xc7, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xae, 0xb4, 0x30, 0x1b, 0xb8, 0xd2, 0xc2, 0xee, 0xe0, 0xb0, 0xc0, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x69, 0x61, 0x38, 0x70, 0xa5, 0x85, 0xf1, 0xc1, 0x7b, 0x18, 0x79, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x43, 0x2d, 0xee, 0xe0, 0x31, 0x69, 0xbc, 0x1b, 0x14, 0xa4, 0xb1, 0x03, 0x9e, 0x5c, 0x59, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x6a, 0x21, 0x1e, 0x38, 0xd4, 0x42, 0xcf, 0x86, 0x7f, 0x73, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x43, 0x2d, 0x0c, 0x06, 0x0e, 0xb5, 0xb0, 0x38, 0x28, 0x72, 0x5a, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x50, 0x0b, 0x93, 0x81, 0x43, 0x2d, 0xd4, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xd4, 0xc2, 0x66, 0xe0, 0x50, 0x0b, 0xb3, 0x83, 0x92, 0x68, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xd4, 0xc2, 0x6e, 0xe0, 0x50, 0x0b, 0xc3, 0xc3, 0x83, 0x37, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xa1, 0x16, 0x96, 0x03, 0x87, 0x5a, 0x98, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xd4, 0xc2, 0x74, 0xe0, 0x50, 0x0b, 0xdb, 0x83, 0x80, 0x65, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0xb5, 0x30, 0x1e, 0x38, 0xd4, 0xc2, 0xfa, 0xf0, 0x98, 0x4c, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xa1, 0x16, 0xf6, 0x03, 0x87, 0x5a, 0x68, 0x39, 0x78, 0x14, 0x20, 0x5d, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xa9, 0xc5, 0x1d, 0x3c, 0x26, 0x8d, 0x77, 0x83, 0x82, 0x34, 0x76, 0x83, 0x55, 0xea, 0xbf, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xa5, 0x16, 0xe2, 0x81, 0x4b, 0x2d, 0xf4, 0x6c, 0xf8, 0x37, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xd4, 0xc2, 0x60, 0xe0, 0x52, 0x0b, 0x8b, 0x83, 0x22, 0xa7, 0x75, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2e, 0xb5, 0x30, 0x19, 0xb8, 0xd4, 0x42, 0xcd, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4b, 0x2d, 0x6c, 0x06, 0x2e, 0xb5, 0x30, 0x3b, 0x28, 0x89, 0x66, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4b, 0x2d, 0xec, 0x06, 0x2e, 0xb5, 0x30, 0x3c, 0x3c, 0x78, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x6a, 0x61, 0x39, 0x70, 0xa9, 0x85, 0xf9, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4b, 0x2d, 0x4c, 0x07, 0x2e, 0xb5, 0xb0, 0x3d, 0x28, 0x2a, 0xc5, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4b, 0x2d, 0x8c, 0x07, 0x2e, 0xb5, 0xb0, 0x3e, 0x3c, 0x26, 0xd3, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xa9, 0x85, 0xfd, 0xc0, 0xa5, 0x16, 0x5a, 0x0e, 0x1e, 0x05, 0x48, 0xd7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x6a, 0x71, 0x07, 0x8f, 0x49, 0xe3, 0xdd, 0xa0, 0x20, 0x8d, 0x1d, 0xe0, 0xb5, 0x2b, 0x93, 0x9b, 0x4b, 0x7b, 0x73, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5b, 0x2d, 0x4c, 0x06, 0x6e, 0xb5, 0x50, 0xb3, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x56, 0x0b, 0x9b, 0x81, 0x5b, 0x2d, 0xcc, 0x0e, 0x4a, 0xa2, 0xd9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x56, 0x0b, 0xbb, 0x81, 0x5b, 0x2d, 0x0c, 0x0f, 0x0f, 0xde, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb7, 0x5a, 0x58, 0x0e, 0xdc, 0x6a, 0x61, 0xbe, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x56, 0x0b, 0xd3, 0x81, 0x5b, 0x2d, 0x6c, 0x0f, 0x4e, 0xcd, 0x6d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xad, 0x16, 0xc6, 0x03, 0xb7, 0x5a, 0x58, 0x1f, 0x14, 0x95, 0xe2, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb7, 0x5a, 0xd8, 0x0f, 0xdc, 0x6a, 0xa1, 0xe5, 0xe0, 0x51, 0x80, 0x74, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb1, 0x16, 0x77, 0xf0, 0x98, 0x34, 0xde, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x58, 0x0b, 0xc9, 0xc0, 0xb1, 0x16, 0x4a, 0x36, 0xfc, 0x9b, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x6b, 0x21, 0x1b, 0x38, 0xd6, 0xc2, 0x76, 0xc3, 0xdb, 0x3a, 0x03, 0xf8, 0xc3, 0xc9, 0xbd, 0xd1, 0xbd, 0x8d, 0xbd, 0xb1, 0xb5, 0xd8, 0x95, 0xc9, 0xcd, 0xa5, 0xbd, 0xb9, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb1, 0x16, 0xc6, 0x03, 0xc7, 0x5a, 0xe8, 0xd8, 0xf0, 0xb6, 0xce, 0x06, 0xcf, 0xaf, 0xe6, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xd6, 0xe2, 0x07, 0xce, 0xb5, 0x50, 0xb6, 0xc1, 0xba, 0x55, 0xa6, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xae, 0xb5, 0x90, 0x0d, 0x5c, 0x6b, 0xa1, 0x7c, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb5, 0x16, 0xc2, 0x81, 0x6b, 0x2d, 0x54, 0x6c, 0x78, 0xe3, 0x6e, 0xc3, 0xcb, 0x77, 0x01, 0x3c, 0x85, 0xb5, 0x95, 0xcd, 0xb5, 0xc0, 0xc9, 0xbd, 0xd1, 0xbd, 0x8d, 0xbd, 0xb1, 0xb5, 0xd8, 0x95, 0xc9, 0xcd, 0xa5, 0xbd, 0xb9, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb5, 0x16, 0x3a, 0x06, 0xae, 0xb5, 0xd0, 0x79, 0xf0, 0xfc, 0x78, 0xde, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x5a, 0x0b, 0xa5, 0x03, 0xd7, 0x5a, 0xe8, 0x3e, 0x78, 0xbc, 0x3d, 0x6f, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xae, 0xc5, 0x1f, 0x3c, 0x35, 0x9f, 0x77, 0x83, 0x25, 0xf5, 0x4b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb9, 0x16, 0xb2, 0x81, 0x73, 0x2d, 0x14, 0x6d, 0xf0, 0xe6, 0x7f, 0xde, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xd7, 0x42, 0xc3, 0xc1, 0x83, 0x1b, 0x7a, 0x0f, 0x1e, 0x6f, 0xcf, 0xbb, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe7, 0x5a, 0xa8, 0x3a, 0x78, 0x6a, 0x3e, 0xef, 0x41, 0x78, 0xaa, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xc1, 0x16, 0x77, 0xf0, 0x98, 0x34, 0xde, 0x0d, 0x0a, 0xd2, 0xd8, 0x01, 0x3c, 0xe6, 0xdc, 0xc8, 0xe4, 0x5a, 0xe6, 0xd2, 0xf4, 0xca, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x60, 0x0b, 0xa3, 0x81, 0x83, 0x2d, 0x34, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xd8, 0xc2, 0x6a, 0xe0, 0x60, 0x0b, 0x1d, 0x1b, 0xde, 0xd6, 0x19, 0xc0, 0x77, 0x2e, 0xcd, 0x8c, 0xae, 0x65, 0x0e, 0x2d, 0x0d, 0xae, 0x65, 0x2e, 0x4d, 0xaf, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xd8, 0x42, 0xc9, 0xc0, 0xc1, 0x16, 0x8a, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x6c, 0xa1, 0x65, 0xe0, 0x60, 0x0b, 0x45, 0x07, 0x25, 0xd1, 0xec, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xb0, 0x85, 0xa6, 0x81, 0x83, 0x2d, 0x54, 0x1d, 0x1e, 0xbc, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0xb6, 0xd0, 0x35, 0x70, 0xb0, 0x85, 0xc2, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x07, 0x5b, 0x28, 0x1b, 0x38, 0xd8, 0x42, 0xdb, 0xc1, 0x79, 0x81, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xd8, 0x42, 0xdd, 0xc0, 0xc1, 0x16, 0xfa, 0x0e, 0x02, 0x96, 0xb5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x60, 0x0b, 0x8d, 0x03, 0x07, 0x5b, 0xe8, 0x3d, 0x78, 0x14, 0x20, 0x5d, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xc5, 0x16, 0x77, 0xf0, 0x98, 0x34, 0xde, 0x0d, 0x0a, 0xd2, 0xd8, 0x01, 0x3c, 0xe4, 0xc6, 0xec, 0xe4, 0x5a, 0xe6, 0xd2, 0xf4, 0xca, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x62, 0x0b, 0xa3, 0x81, 0x8b, 0x2d, 0x34, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xd8, 0xc2, 0x6a, 0xe0, 0x62, 0x0b, 0x1d, 0x07, 0x2f, 0xec, 0xe8, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2e, 0xb6, 0x50, 0x32, 0x70, 0xb1, 0x85, 0xe2, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x17, 0x5b, 0x68, 0x19, 0xb8, 0xd8, 0x42, 0xd1, 0x41, 0x49, 0x34, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x6c, 0xa1, 0x69, 0xe0, 0x62, 0x0b, 0x55, 0x87, 0x07, 0x6f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x8b, 0x2d, 0x74, 0x0d, 0x5c, 0x6c, 0xa1, 0x70, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xc5, 0x16, 0xca, 0x06, 0x2e, 0xb6, 0xd0, 0x76, 0x90, 0x72, 0x5a, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x6c, 0xa1, 0x6e, 0xe0, 0x62, 0x0b, 0x7d, 0x07, 0x01, 0xcb, 0xda, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xb1, 0x85, 0xc6, 0x81, 0x8b, 0x2d, 0xf4, 0x1e, 0x3c, 0x0a, 0x90, 0xae, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x64, 0x8b, 0x3b, 0x78, 0x4c, 0x1a, 0xef, 0x06, 0x05, 0x69, 0xec, 0x00, 0xff, 0x18, 0x5a, 0xd9, 0xd8, 0xda, 0x5c, 0x5d, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x6c, 0x61, 0x34, 0x70, 0xb2, 0x85, 0xaa, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x27, 0x5b, 0x58, 0x0d, 0x9c, 0x6c, 0x61, 0x78, 0x50, 0x12, 0xcd, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x27, 0x5b, 0x58, 0x0e, 0x9c, 0x6c, 0x61, 0x7a, 0x78, 0xf0, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xd9, 0xc2, 0x76, 0xe0, 0x64, 0x0b, 0x15, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xb6, 0x30, 0x1e, 0x38, 0xd9, 0xc2, 0xfc, 0x20, 0x9d, 0xd9, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xd9, 0xc2, 0x7e, 0xe0, 0x64, 0x0b, 0x0d, 0x07, 0x69, 0x2a, 0xae, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x27, 0x5b, 0xe8, 0x18, 0x38, 0xd9, 0x42, 0xd3, 0xc1, 0xa3, 0x00, 0xe9, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9b, 0x2d, 0xee, 0xe0, 0x31, 0x69, 0xbc, 0x1b, 0x14, 0xa4, 0xb1, 0x03, 0xbc, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x65, 0xe4, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xb3, 0x85, 0xd1, 0xc0, 0xcd, 0x16, 0x9a, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x6c, 0x61, 0x35, 0x70, 0xb3, 0x85, 0xe1, 0x41, 0x49, 0x34, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x6c, 0x61, 0x39, 0x70, 0xb3, 0x85, 0xe9, 0xe1, 0xc1, 0x9b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x66, 0x0b, 0xdb, 0x81, 0x9b, 0x2d, 0x34, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xd9, 0xc2, 0x78, 0xe0, 0x66, 0x0b, 0xf3, 0x83, 0xb3, 0x37, 0xde, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xb3, 0x85, 0xfd, 0xc0, 0xcd, 0x16, 0x0a, 0x0e, 0x8f, 0xc9, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x6c, 0xa1, 0x62, 0xe0, 0x66, 0x0b, 0x45, 0x07, 0x8f, 0x02, 0xa4, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0xb6, 0xb8, 0x83, 0xc7, 0xa4, 0xf1, 0x6e, 0x50, 0x74, 0xd0, 0xae, 0xe1, 0xfb, 0xf6, 0x0d, 0x1e, 0x04, 0x9e, 0xb8, 0x41, 0x09, 0x1d, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x6d, 0x61, 0x30, 0x70, 0xb6, 0x85, 0xe1, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x6d, 0x61, 0x31, 0x70, 0xb6, 0x85, 0xd5, 0x41, 0xd9, 0x84, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x6d, 0x61, 0x36, 0x70, 0xb6, 0x85, 0xdd, 0xe1, 0x87, 0x9a, 0x0e, 0xc2, 0x74, 0x6c, 0x83, 0x37, 0x2c, 0x44, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x77, 0x5b, 0xfc, 0xc0, 0xe9, 0x16, 0xba, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x6d, 0x21, 0x1b, 0xb8, 0xdb, 0xc2, 0x6e, 0xc3, 0xbf, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xdd, 0x16, 0xd2, 0x81, 0xbb, 0x2d, 0xc4, 0x07, 0x05, 0x6c, 0xfe, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x6d, 0x21, 0x1f, 0xb8, 0xdb, 0xc2, 0x6c, 0xc3, 0xdb, 0x3a, 0x1b, 0xbc, 0x51, 0xad, 0xb7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x70, 0x0b, 0xc9, 0xc0, 0xe1, 0x16, 0x16, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0xb7, 0x10, 0x0d, 0x1c, 0x6e, 0x21, 0x3b, 0x28, 0x28, 0x32, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc3, 0x2d, 0x84, 0x03, 0x87, 0x5b, 0x18, 0x6c, 0x78, 0x5b, 0xe7, 0xe0, 0x0d, 0x0b, 0x91, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xe5, 0x16, 0x7f, 0xf0, 0xfe, 0xc6, 0xde, 0x0d, 0x0a, 0xd2, 0xd8, 0x0d, 0xca, 0xc2, 0xe2, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x72, 0x0b, 0x83, 0x81, 0xcb, 0x2d, 0x94, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xdc, 0xc2, 0x62, 0xe0, 0x72, 0x0b, 0xa3, 0xc3, 0xa7, 0x80, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xe5, 0x16, 0x56, 0x03, 0x97, 0x5b, 0x68, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xb9, 0x85, 0xd9, 0xc0, 0xe5, 0x16, 0x96, 0x07, 0x45, 0xf1, 0xef, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xb9, 0x85, 0xe9, 0xc0, 0xe5, 0x16, 0xb6, 0x07, 0x45, 0xa5, 0xf8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xb9, 0x85, 0xf1, 0xc0, 0xe5, 0x16, 0x0a, 0x0e, 0xde, 0xf4, 0xd9, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xb9, 0x85, 0x8a, 0x81, 0xcb, 0x2d, 0x74, 0x1c, 0x1c, 0x97, 0x67, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd3, 0x2d, 0xfe, 0xe0, 0xfd, 0x8d, 0xbd, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xb7, 0x10, 0x0c, 0x9c, 0x6e, 0x61, 0xb9, 0xc1, 0x31, 0xdc, 0x60, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xb7, 0x90, 0x1c, 0xbc, 0x65, 0xb7, 0x77, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xe9, 0x16, 0xa2, 0x81, 0xd3, 0x2d, 0xa4, 0x07, 0x45, 0x26, 0xee, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xba, 0x85, 0x78, 0xe0, 0x74, 0x0b, 0x9b, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa7, 0x5b, 0xc8, 0x07, 0x4e, 0xb7, 0x30, 0x38, 0x28, 0x2a, 0xc5, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd3, 0x2d, 0x2c, 0x06, 0x4e, 0xb7, 0x30, 0x39, 0x38, 0x2e, 0xcf, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x6e, 0x61, 0x34, 0x70, 0xba, 0x85, 0xe1, 0xc1, 0x9b, 0x3e, 0x7b, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xb7, 0x30, 0x1d, 0x38, 0xdd, 0x42, 0xd5, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd3, 0x2d, 0x6c, 0x07, 0x4e, 0xb7, 0x30, 0x3f, 0x28, 0xf1, 0x71, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd3, 0x2d, 0xec, 0x07, 0x4e, 0xb7, 0x50, 0xb2, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x74, 0x0b, 0x05, 0x03, 0xa7, 0x5b, 0x68, 0x38, 0x28, 0x2a, 0xc5, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd3, 0x2d, 0x54, 0x0c, 0x9c, 0x6e, 0xa1, 0xe3, 0xe0, 0xb8, 0x3c, 0xd3, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xba, 0x85, 0x96, 0x81, 0xd3, 0x2d, 0x34, 0x1d, 0xbc, 0xe9, 0xb3, 0xb7, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x7a, 0x8b, 0x3b, 0x78, 0x4c, 0x1a, 0xef, 0x06, 0xc5, 0x8e, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xbd, 0x85, 0x64, 0xe0, 0x7a, 0x0b, 0x65, 0x1b, 0xfe, 0xcd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xae, 0xb7, 0x90, 0x0d, 0x5c, 0x6f, 0x61, 0xb3, 0xe1, 0x6d, 0x9d, 0x0d, 0x5e, 0x34, 0xd5, 0xdb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x6f, 0x61, 0x34, 0x70, 0xbd, 0x85, 0xae, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd7, 0x5b, 0x58, 0x0d, 0x5c, 0x6f, 0x61, 0x78, 0x50, 0x64, 0xe2, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd7, 0x5b, 0x58, 0x0e, 0x5c, 0x6f, 0x61, 0xbf, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x7a, 0x0b, 0xd3, 0x81, 0xeb, 0x2d, 0x6c, 0x0f, 0x0f, 0xde, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd7, 0x5b, 0x18, 0x0f, 0x5c, 0x6f, 0x61, 0x7e, 0x90, 0xa6, 0xe2, 0xda, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xbd, 0x85, 0x82, 0x81, 0xeb, 0x2d, 0x54, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xde, 0x42, 0xc3, 0xc0, 0xf5, 0x16, 0x4a, 0x0e, 0x4a, 0x7e, 0xff, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x7a, 0x0b, 0x2d, 0x03, 0xd7, 0x5b, 0x68, 0x3a, 0x78, 0xd3, 0x67, 0x6f, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe7, 0x5b, 0xfc, 0xc0, 0xfd, 0x16, 0xd6, 0x1b, 0xac, 0x5b, 0x65, 0x1a, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x6f, 0x61, 0x30, 0x70, 0xbe, 0x85, 0xf9, 0x86, 0x37, 0xee, 0x36, 0xbc, 0x7c, 0x17, 0xe0, 0x19, 0xd6, 0x56, 0x36, 0xd7, 0x32, 0x86, 0x56, 0x36, 0xb6, 0x36, 0x57, 0xd7, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xfd, 0x16, 0x7f, 0xf0, 0xee, 0xfe, 0xde, 0x0d, 0x96, 0xd4, 0x2f, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf7, 0x5b, 0xc8, 0x06, 0xee, 0xb7, 0xb0, 0x3c, 0x78, 0x57, 0x80, 0xef, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x6f, 0x61, 0x7b, 0xf0, 0xee, 0xfe, 0xde, 0x83, 0xf0, 0x54, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x13, 0x2e, 0xee, 0xe0, 0x31, 0x69, 0xbc, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0xd0, 0xf6, 0x26, 0x07, 0x62, 0x26, 0xf7, 0xd6, 0x06, 0x42, 0x87, 0x56, 0x06, 0x72, 0x27, 0xf7, 0xe6, 0x76, 0x06, 0xc2, 0x96, 0x66, 0x56, 0xe6, 0xda, 0xa0, 0x20, 0x8d, 0x1d, 0xc0, 0x63, 0xce, 0x8d, 0x4c, 0xae, 0x85, 0x2e, 0x6d, 0x6c, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0xb8, 0x30, 0x1a, 0x38, 0xe3, 0x42, 0xcd, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x33, 0x2e, 0xac, 0x06, 0xce, 0xb8, 0x30, 0x3c, 0x28, 0x89, 0x66, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x33, 0x2e, 0x2c, 0x07, 0xce, 0xb8, 0x30, 0x3d, 0x3c, 0x78, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x71, 0x61, 0x3b, 0x70, 0xc6, 0x85, 0x82, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x67, 0x5c, 0x18, 0x0f, 0x9c, 0x71, 0x61, 0x7d, 0x78, 0xf0, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xe3, 0xc2, 0x7c, 0xe0, 0x8c, 0x0b, 0xfb, 0x83, 0x53, 0x73, 0x5b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x19, 0x17, 0x1a, 0x06, 0xce, 0xb8, 0xd0, 0x72, 0xf0, 0xa6, 0xcf, 0xde, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x8e, 0x8b, 0x3b, 0x78, 0x4c, 0x1a, 0xef, 0x06, 0x05, 0x69, 0xec, 0x00, 0x1e, 0x72, 0x63, 0x76, 0x72, 0x2d, 0x74, 0x69, 0x63, 0xeb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xc7, 0x85, 0xd1, 0xc0, 0x1d, 0x17, 0x6a, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x71, 0x61, 0x35, 0x70, 0xc7, 0x85, 0xe1, 0x41, 0x49, 0x34, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x71, 0x61, 0x39, 0x70, 0xc7, 0x85, 0xe9, 0xe1, 0xc1, 0x9b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x8e, 0x0b, 0xdb, 0x81, 0x3b, 0x2e, 0x14, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xe3, 0xc2, 0x78, 0xe0, 0x8e, 0x0b, 0xeb, 0x83, 0x53, 0x73, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xc7, 0x85, 0xf9, 0xc0, 0x1d, 0x17, 0xf6, 0x07, 0xa7, 0xe6, 0xb6, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x3b, 0x2e, 0x34, 0x0c, 0xdc, 0x71, 0xa1, 0xe5, 0xe0, 0x4d, 0x9f, 0xbd, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x29, 0x17, 0x77, 0xf0, 0x98, 0x34, 0xde, 0x0d, 0x0a, 0xd2, 0xd8, 0x01, 0xef, 0xcd, 0xcc, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xb9, 0x90, 0x0f, 0x9c, 0x72, 0x61, 0x70, 0x78, 0x4c, 0x66, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xb9, 0xb8, 0x83, 0xc7, 0xa4, 0xf1, 0x6e, 0x50, 0x74, 0xd0, 0x0e, 0xf8, 0x73, 0x6e, 0x64, 0xf2, 0x02, 0xde, 0x9b, 0x99, 0xd9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xcb, 0x85, 0xd1, 0xc0, 0x2d, 0x17, 0x6e, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xe5, 0xc2, 0x6a, 0xe0, 0x96, 0x0b, 0x8d, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xb9, 0x30, 0x1b, 0xb8, 0xe5, 0xc2, 0xf2, 0xa0, 0x24, 0x9a, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xb9, 0x30, 0x1d, 0xb8, 0xe5, 0xc2, 0xf6, 0xa0, 0xa8, 0x14, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xb9, 0x30, 0x1e, 0xb8, 0xe5, 0x42, 0xd7, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5b, 0x2e, 0xac, 0x07, 0x6e, 0xb9, 0x50, 0xb0, 0xe1, 0x6d, 0x9d, 0x83, 0x97, 0x21, 0xf9, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb7, 0x5c, 0x68, 0x18, 0xb8, 0xe5, 0x42, 0xd5, 0x86, 0xb7, 0x75, 0x36, 0x78, 0xca, 0x45, 0x6f, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb7, 0x5c, 0x28, 0x1b, 0xb8, 0xe5, 0x42, 0xe1, 0xc1, 0x9b, 0x3e, 0x7b, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xb9, 0x50, 0x39, 0x70, 0xcb, 0x85, 0x17, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xb9, 0xd0, 0x39, 0x70, 0xcb, 0x85, 0xda, 0xc3, 0x9f, 0x40, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x2d, 0x17, 0x7a, 0x07, 0x6e, 0xb9, 0x50, 0x7d, 0xf0, 0x7a, 0x2c, 0xdf, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x96, 0x0b, 0xdd, 0x03, 0xb7, 0x5c, 0x38, 0x71, 0xf0, 0x1e, 0x2e, 0xdf, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x63, 0x2e, 0xee, 0xe0, 0x31, 0x69, 0xbc, 0x1b, 0x14, 0x3b, 0x9a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x31, 0x17, 0x92, 0x81, 0x63, 0x2e, 0xf4, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xe6, 0x42, 0x34, 0x70, 0xcc, 0x85, 0xdd, 0x86, 0xb7, 0x75, 0x06, 0xf0, 0x4c, 0x9b, 0x6b, 0xb1, 0x0b, 0x63, 0x4b, 0x23, 0x6b, 0x91, 0x0b, 0x73, 0x5b, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0xb9, 0x30, 0x1c, 0x38, 0xe6, 0xc2, 0x78, 0xc3, 0xdb, 0x3a, 0x1b, 0xbc, 0xf6, 0xc8, 0xb7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x98, 0x0b, 0xeb, 0x81, 0x63, 0x2e, 0xd4, 0x1c, 0xbc, 0x87, 0xcb, 0xb7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x9a, 0x8b, 0x1f, 0x38, 0xe7, 0x42, 0xe9, 0x06, 0xeb, 0x56, 0x99, 0x86, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd7, 0x5c, 0x18, 0x0c, 0x5c, 0x73, 0xa1, 0x76, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x35, 0x17, 0x16, 0x03, 0xd7, 0x5c, 0xa8, 0xd9, 0xf0, 0xc6, 0xdd, 0x86, 0x97, 0xef, 0x02, 0xf8, 0x09, 0x6b, 0x2b, 0x9b, 0x6b, 0x99, 0x2b, 0x73, 0x23, 0x2b, 0x93, 0x6b, 0x49, 0x6b, 0x83, 0x7b, 0x9b, 0xa3, 0x2b, 0x93, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x6b, 0x2e, 0xf4, 0x0c, 0x5c, 0x73, 0xa1, 0xeb, 0xe0, 0xb9, 0x77, 0xbe, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x35, 0x17, 0xca, 0x06, 0xae, 0xb9, 0xd0, 0x7a, 0xf0, 0x1e, 0x2e, 0xdf, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x9c, 0x8b, 0x3f, 0x78, 0x54, 0x9f, 0xef, 0x06, 0x4b, 0xea, 0x97, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x73, 0x2e, 0x64, 0x03, 0xe7, 0x5c, 0x28, 0x5c, 0xc3, 0x1b, 0x77, 0x1b, 0x5e, 0xbe, 0x0b, 0xe0, 0x27, 0xac, 0xad, 0x6c, 0xae, 0x65, 0xae, 0xcc, 0x8d, 0xac, 0x4c, 0xae, 0x25, 0xad, 0x0d, 0xee, 0x6d, 0x8e, 0xee, 0x4d, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x73, 0x2e, 0x14, 0x1c, 0xbc, 0x2c, 0xd2, 0x77, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x39, 0x17, 0x1a, 0x06, 0xce, 0xb9, 0xd0, 0x72, 0xf0, 0xdc, 0x3b, 0xdf, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x9c, 0x0b, 0x35, 0x03, 0xe7, 0x5c, 0xe8, 0x3b, 0x78, 0x0f, 0x97, 0x6f, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xce, 0x85, 0xca, 0x83, 0x47, 0xf5, 0xf9, 0x1e, 0x84, 0xa7, 0xea, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x74, 0x71, 0x07, 0x8f, 0x49, 0xe3, 0xdd, 0xa0, 0xe8, 0xa0, 0x1d, 0xf0, 0xe5, 0xc6, 0xec, 0xe4, 0x0d, 0x5e, 0x86, 0xe4, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x74, 0x61, 0x34, 0x70, 0xd0, 0x85, 0x1b, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0xba, 0xb0, 0x1a, 0x38, 0xe8, 0x42, 0xe3, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x83, 0x2e, 0xcc, 0x06, 0x0e, 0xba, 0xb0, 0x3c, 0x28, 0x89, 0x66, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x83, 0x2e, 0x4c, 0x07, 0x0e, 0xba, 0xb0, 0x3d, 0x28, 0x2a, 0xc5, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x83, 0x2e, 0x8c, 0x07, 0x0e, 0xba, 0xd0, 0xb5, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xa0, 0x0b, 0xeb, 0x81, 0x83, 0x2e, 0x14, 0x1c, 0xbc, 0x1e, 0xcb, 0x77, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xe8, 0x42, 0xc3, 0xc0, 0x41, 0x17, 0xaa, 0x36, 0xbc, 0xad, 0xb3, 0xc1, 0x53, 0x6c, 0x7a, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xe8, 0x42, 0xd9, 0xc0, 0x41, 0x17, 0x0a, 0x0f, 0xde, 0xf4, 0xd9, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xd0, 0x85, 0xca, 0x81, 0x83, 0x2e, 0xbc, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xd0, 0x85, 0xce, 0x81, 0x83, 0x2e, 0xd4, 0x1e, 0xfe, 0x04, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0xba, 0xd0, 0x3b, 0x70, 0xd0, 0x85, 0xea, 0x83, 0xd7, 0x63, 0xf9, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x07, 0x5d, 0xe8, 0x1e, 0x38, 0xe8, 0xc2, 0x89, 0x83, 0x27, 0xde, 0xfa, 0xd6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x74, 0x71, 0x07, 0x8f, 0x49, 0xe3, 0xdd, 0xa0, 0xd8, 0xd1, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2e, 0xba, 0x90, 0x0c, 0x5c, 0x74, 0xa1, 0x67, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x45, 0x17, 0xa2, 0x81, 0x8b, 0x2e, 0xec, 0x0e, 0xde, 0x31, 0xe7, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x74, 0x61, 0x38, 0x70, 0xd1, 0x85, 0xf1, 0x86, 0xb7, 0x75, 0x36, 0x78, 0xde, 0xa8, 0x6f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x45, 0x17, 0xd6, 0x03, 0x17, 0x5d, 0xa8, 0x39, 0x78, 0xe2, 0xad, 0x6f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x49, 0x17, 0x3f, 0x70, 0xd3, 0x85, 0xda, 0x0d, 0xd6, 0xad, 0x32, 0x0d, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xba, 0x30, 0x18, 0x38, 0xe9, 0x42, 0xf1, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x93, 0x2e, 0x2c, 0x06, 0x4e, 0xba, 0x50, 0xb4, 0xe1, 0x8d, 0xbb, 0x0d, 0x2f, 0xdf, 0x05, 0xf0, 0x15, 0xd6, 0x56, 0x36, 0xd7, 0x22, 0x57, 0x36, 0x56, 0x96, 0x66, 0x57, 0x26, 0xd7, 0x92, 0xd6, 0x06, 0xf7, 0x36, 0x47, 0x57, 0x26, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x27, 0x5d, 0x68, 0x1a, 0x38, 0xe9, 0x42, 0xdb, 0xc1, 0x7b, 0xa2, 0x7d, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x93, 0x2e, 0xd4, 0x0d, 0x9c, 0x74, 0xa1, 0xf7, 0xe0, 0x89, 0xb7, 0xbe, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x4d, 0x17, 0x7f, 0xf0, 0x6a, 0x6b, 0xdf, 0x0d, 0x96, 0xd4, 0x2f, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x37, 0x5d, 0xc8, 0x06, 0x6e, 0xba, 0x50, 0xb9, 0x86, 0x37, 0xee, 0x36, 0xbc, 0x7c, 0x17, 0xc0, 0x57, 0x58, 0x5b, 0xd9, 0x5c, 0x8b, 0x5c, 0xd9, 0x58, 0x59, 0x9a, 0x5d, 0x99, 0x5c, 0x4b, 0x5a, 0x1b, 0xdc, 0xdb, 0x1c, 0xdd, 0x9b, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x37, 0x5d, 0xa8, 0x38, 0x78, 0xca, 0xba, 0xef, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9b, 0x2e, 0x74, 0x0c, 0xdc, 0x74, 0xa1, 0xe7, 0xe0, 0x3d, 0xd1, 0xbe, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x4d, 0x17, 0x8a, 0x06, 0x6e, 0xba, 0xd0, 0x78, 0xf0, 0xc4, 0x5b, 0xdf, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xa6, 0x0b, 0xa5, 0x07, 0xaf, 0xb6, 0xf6, 0x3d, 0x08, 0x4f, 0xd5, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xeb, 0xe2, 0x0e, 0x1e, 0x93, 0xc6, 0xbb, 0x41, 0x41, 0x1a, 0x3b, 0xc0, 0x3b, 0xf6, 0xe6, 0x46, 0x57, 0xe6, 0x46, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x67, 0x5d, 0x98, 0x0c, 0x9c, 0x75, 0xa1, 0x7b, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x59, 0x17, 0x36, 0x03, 0x67, 0x5d, 0x98, 0x1d, 0x94, 0x44, 0xb3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x59, 0x17, 0x76, 0x03, 0x67, 0x5d, 0x18, 0x1e, 0x14, 0x95, 0xe2, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x59, 0x17, 0x96, 0x03, 0x67, 0x5d, 0x68, 0xdd, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xd6, 0x85, 0xe9, 0xc0, 0x59, 0x17, 0xd6, 0x07, 0xaf, 0xc7, 0xf2, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0xba, 0x30, 0x1f, 0x38, 0xeb, 0x42, 0xe9, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb3, 0x2e, 0xec, 0x07, 0xce, 0xba, 0x50, 0x71, 0xf8, 0x14, 0x70, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xeb, 0x42, 0xc7, 0xc0, 0x59, 0x17, 0xfa, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x75, 0xa1, 0x64, 0xe0, 0xac, 0x0b, 0x3d, 0x07, 0x45, 0xf1, 0xef, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xd6, 0x85, 0xa2, 0x81, 0xb3, 0x2e, 0x34, 0x1d, 0x14, 0x95, 0xe2, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x59, 0x17, 0xaa, 0x06, 0xce, 0xba, 0x50, 0x77, 0xf0, 0xa6, 0xcf, 0xde, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb3, 0x2e, 0x14, 0x0e, 0x9c, 0x75, 0xa1, 0xf3, 0xe0, 0xf5, 0x58, 0xbe, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x75, 0xa1, 0x76, 0xe0, 0xac, 0x0b, 0xd5, 0x07, 0x6f, 0xfa, 0xec, 0x6d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xba, 0xb8, 0x83, 0xc7, 0xa4, 0xf1, 0x6e, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xeb, 0x62, 0x07, 0xee, 0xba, 0xb0, 0xd8, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xd7, 0xc5, 0x0f, 0xdc, 0x75, 0x21, 0x3b, 0x78, 0xee, 0x9d, 0xef, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xd7, 0x85, 0x70, 0xe0, 0xae, 0x0b, 0x83, 0x83, 0xf7, 0x44, 0xfb, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x75, 0x61, 0x32, 0x70, 0xd7, 0x85, 0xd5, 0x86, 0xb7, 0x75, 0x06, 0x3c, 0xb9, 0xb2, 0xb8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xae, 0x0b, 0xb3, 0x81, 0xbb, 0x2e, 0x2c, 0x0f, 0x96, 0xc9, 0x0f, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x77, 0x5d, 0x98, 0x0e, 0xdc, 0x75, 0xa1, 0x63, 0xc3, 0xdb, 0x3a, 0x1b, 0x3c, 0x63, 0xc2, 0xb7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xae, 0x0b, 0x25, 0x03, 0x77, 0x5d, 0x68, 0xdb, 0xf0, 0xb6, 0xce, 0x06, 0x2f, 0x53, 0xf1, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xeb, 0x42, 0xdd, 0xc0, 0x5d, 0x17, 0x4a, 0x37, 0xbc, 0xad, 0x73, 0xf0, 0x1c, 0xf0, 0xc4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xae, 0x0b, 0xad, 0x03, 0x77, 0x5d, 0x28, 0xdf, 0xf0, 0xb6, 0xce, 0x06, 0xef, 0xeb, 0xf7, 0xad, 0xd5, 0xe0, 0x3d, 0x92, 0x89, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x1c, 0x19, 0x42, 0x0f, 0xde, 0x23, 0x99, 0xd8, 0x00, 0x78, 0xf7, 0x06, 0x17, 0x16, 0x57, 0x57, 0x06, 0x12, 0x46, 0xf7, 0xd6, 0x96, 0x36, 0x06, 0x42, 0x27, 0x17, 0xe6, 0x36, 0x07, 0xf7, 0x26, 0x47, 0x07, 0x12, 0x46, 0x46, 0x26, 0x57, 0x36, 0x37, 0x07, 0x42, 0xf7, 0x06, 0xf2, 0x26, 0x07, 0x62, 0x26, 0xf7, 0xd6, 0x06, 0x52, 0xe7, 0x96, 0x86, 0xb7, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0x1e, 0xc9, 0xc4, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0xe4, 0x61, 0x30, 0x50, 0xc8, 0xc3, 0x74, 0xc3, 0x17, 0x35, 0x1b, 0xea, 0x78, 0x80, 0x47, 0x1d, 0x5e, 0x18, 0x19, 0x99, 0x5c, 0xd9, 0xdc, 0xbc, 0x1a, 0x3c, 0xbf, 0xa3, 0x77, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xe0, 0xf9, 0x1d, 0xbd, 0x0d, 0x80, 0x9f, 0x64, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x61, 0x20, 0x32, 0x2d, 0x62, 0x69, 0x74, 0x20, 0x73, 0x68, 0x69, 0x70, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x62, 0x79, 0x74, 0x65, 0x20, 0x77, 0x69, 0x64, 0x74, 0xe8, 0x4a, 0x00, 0x1e, 0x50, 0xe5, 0xc1, 0x95, 0x81, 0xc0, 0xe8, 0x80, 0x9c, 0x85, 0xb1, 0x85, 0xe1, 0xe5, 0x81, 0xbc, 0xc9, 0x81, 0xcc, 0xd1, 0x85, 0xc9, 0x81, 0xb4, 0xb4, 0x80, 0xc8, 0x80, 0x88, 0xe5, 0xd1, 0x95, 0xcd, 0x4b, 0x00, 0x1e, 0x50, 0xe5, 0xc1, 0x95, 0x81, 0xc4, 0xe8, 0x80, 0xc0, 0xb1, 0x85, 0xb9, 0x95, 0xd1, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xb4, 0xb4, 0x80, 0xd0, 0x80, 0x88, 0xe5, 0xd1, 0x95, 0xcd, 0x4b, 0x00, 0x1e, 0x50, 0xe5, 0xc1, 0x95, 0x81, 0xc8, 0xe8, 0x80, 0xb4, 0xbd, 0xbd, 0xb9, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xb4, 0xb4, 0x80, 0xe0, 0x80, 0x88, 0xe5, 0xd1, 0x95, 0xcd, 0x4b, 0x00, 0x3e, 0x50, 0xe5, 0xc1, 0x95, 0x81, 0xcc, 0xe8, 0x80, 0x8c, 0xbd, 0xb5, 0x95, 0xd1, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xb4, 0xb4, 0x80, 0xc4, 0xd8, 0x80, 0x88, 0xe5, 0xd1, 0x95, 0xcd, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x77, 0x58, 0xdc, 0xc0, 0x3d, 0x16, 0xbf, 0xe1, 0x17, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x0e, 0x0b, 0xc9, 0xc0, 0x1d, 0x16, 0x26, 0x1b, 0xfe, 0x5c, 0x1a, 0xf0, 0xe5, 0xc2, 0xdc, 0xd6, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xc3, 0x42, 0x7c, 0xf0, 0xbe, 0xb7, 0xdf, 0x0d, 0x5f, 0xd4, 0x6c, 0xa8, 0xe3, 0x81, 0x57, 0x27, 0x36, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x21, 0x16, 0x77, 0xf0, 0x6e, 0xb6, 0xdf, 0x0d, 0x7f, 0xd1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x87, 0x58, 0x48, 0x06, 0x0e, 0xb1, 0x10, 0x1d, 0x7e, 0xa8, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x53, 0x2c, 0xee, 0xe0, 0xdd, 0x6c, 0xbf, 0x1b, 0x9c, 0x1c, 0xe4, 0xd6, 0xe0, 0x79, 0x70, 0xbf, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa7, 0x58, 0xc8, 0x07, 0x4e, 0xb1, 0xb0, 0x38, 0x08, 0x4f, 0xd5, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5b, 0x2c, 0x7e, 0xe0, 0x16, 0x0b, 0xd9, 0x86, 0x0c, 0xf8, 0xc0, 0xd7, 0x89, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x2d, 0x16, 0xe2, 0x81, 0x5b, 0x2c, 0xe4, 0x07, 0x01, 0xcb, 0xba, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x8c, 0xc5, 0x0f, 0x1c, 0x63, 0x21, 0xdb, 0x90, 0x01, 0x1f, 0xf8, 0x3a, 0x31, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x18, 0x0b, 0xf1, 0xc0, 0x31, 0x16, 0xf2, 0x83, 0x53, 0x73, 0xdb, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x35, 0x16, 0x3f, 0x70, 0x8d, 0x85, 0x70, 0x43, 0x06, 0x7c, 0xe0, 0xeb, 0xc4, 0xc8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x63, 0x21, 0x1e, 0xb8, 0xc6, 0x42, 0x7e, 0x70, 0x58, 0x99, 0x5b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xc7, 0xe2, 0x07, 0xce, 0xb1, 0x10, 0x6e, 0xc8, 0x80, 0x0f, 0x7c, 0x9d, 0x18, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x73, 0x2c, 0xc4, 0x03, 0xe7, 0x58, 0x18, 0x1c, 0x1c, 0x5e, 0xe5, 0x5a, 0x0d, 0x1e, 0x39, 0xe7, 0xbb, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xf0, 0xc8, 0x39, 0xdf, 0x06, 0x40, 0x07, 0xb2, 0xb7, 0xb2, 0x39, 0x10, 0x97, 0x39, 0xb4, 0x34, 0x38, 0x90, 0xb6, 0x30, 0xba, 0x31, 0x34, 0x90, 0x34, 0xba, 0x39, 0x90, 0x39, 0xba, 0x30, 0xba, 0x32, 0x32, 0x10, 0x97, 0xb9, 0x34, 0xbd, 0xb2, 0xdf, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x64, 0x71, 0x03, 0xb7, 0x59, 0x58, 0x6e, 0xf8, 0x45, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xc9, 0x42, 0x32, 0x70, 0x93, 0x85, 0xe9, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9b, 0x2c, 0x44, 0x03, 0x37, 0x59, 0xc8, 0x37, 0xfc, 0xb9, 0xb4, 0x41, 0xd3, 0xd7, 0xe3, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x93, 0x85, 0xec, 0xe0, 0x65, 0xa5, 0xbf, 0x07, 0x6d, 0x5b, 0x8f, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x37, 0x59, 0x18, 0x0c, 0xdc, 0x64, 0x61, 0xb9, 0xe1, 0xcf, 0xa5, 0x0d, 0x9e, 0xef, 0x52, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x37, 0x59, 0x58, 0x1d, 0xbc, 0x6d, 0xf5, 0xf7, 0xe0, 0x61, 0x73, 0xbf, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x51, 0x16, 0x77, 0xf0, 0x02, 0xd0, 0xdf, 0x0d, 0x7f, 0xd1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x47, 0x59, 0x48, 0x06, 0x8e, 0xb2, 0x10, 0x1d, 0x3e, 0x58, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xab, 0x2c, 0xee, 0xe0, 0x05, 0xa0, 0xbf, 0x1b, 0xfe, 0xcd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xae, 0xb2, 0x90, 0x0c, 0x5c, 0x65, 0x21, 0xdd, 0xf0, 0xb6, 0xce, 0x06, 0xcf, 0x77, 0xa9, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0xb2, 0xb8, 0x83, 0x17, 0x80, 0xfe, 0x6e, 0x50, 0x90, 0xc6, 0x6e, 0x70, 0x16, 0x32, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0xb2, 0x10, 0x0f, 0x9c, 0x65, 0x61, 0xba, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x2c, 0x0b, 0xf9, 0xc0, 0x59, 0x16, 0x26, 0x07, 0x45, 0xf1, 0xef, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x96, 0x85, 0xcd, 0xc0, 0x59, 0x16, 0x46, 0x07, 0x45, 0xa5, 0xf8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x96, 0x85, 0xd5, 0xc0, 0x59, 0x16, 0x96, 0x07, 0xaf, 0x40, 0x9c, 0x69, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xb2, 0xb8, 0x83, 0x17, 0x80, 0xfe, 0x6e, 0xf8, 0x20, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xcb, 0x42, 0x32, 0x70, 0x97, 0x85, 0xd1, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbb, 0x2c, 0x44, 0x03, 0x77, 0x59, 0x48, 0x0f, 0x5f, 0xfc, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x77, 0x59, 0x88, 0x07, 0xee, 0xb2, 0xb0, 0x38, 0x48, 0xcd, 0x84, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xb2, 0x30, 0x19, 0xb8, 0xcb, 0xc2, 0xe6, 0xf0, 0x98, 0x4c, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x5d, 0x16, 0x76, 0x03, 0x77, 0x59, 0x18, 0x1e, 0x04, 0x2c, 0xeb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x66, 0x71, 0x07, 0x2f, 0x00, 0xfd, 0xdd, 0xf0, 0x41, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x98, 0x85, 0x64, 0xe0, 0x30, 0x0b, 0x8b, 0x0d, 0xff, 0xe6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x87, 0x59, 0xc8, 0x06, 0x0e, 0xb3, 0x10, 0x1e, 0x04, 0x2c, 0xeb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x66, 0x21, 0x1d, 0x38, 0xcc, 0xc2, 0xe0, 0x20, 0x35, 0x13, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xcc, 0xc2, 0x6e, 0xe0, 0x30, 0x0b, 0xc3, 0x83, 0x80, 0x65, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xcb, 0x2c, 0xee, 0xe0, 0x05, 0xa0, 0xbf, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2e, 0xb3, 0x90, 0x0c, 0x5c, 0x66, 0x61, 0xb4, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x32, 0x0b, 0xd1, 0xc0, 0x65, 0x16, 0xd2, 0xc3, 0x17, 0xbf, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x65, 0x16, 0xe2, 0x81, 0xcb, 0x2c, 0x2c, 0x0e, 0x52, 0x33, 0x61, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xcb, 0x2c, 0x4c, 0x06, 0x2e, 0xb3, 0xb0, 0x39, 0x38, 0x35, 0xb7, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x66, 0x61, 0x37, 0x70, 0x99, 0x85, 0xe1, 0xc1, 0xa9, 0xb9, 0x6d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xb3, 0xb8, 0x83, 0x17, 0x80, 0xfe, 0x6e, 0xf8, 0x20, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xcd, 0x42, 0x32, 0x70, 0x9a, 0x85, 0xd1, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd3, 0x2c, 0x44, 0x03, 0xa7, 0x59, 0x48, 0x0f, 0x5f, 0xfc, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa7, 0x59, 0x88, 0x07, 0x4e, 0xb3, 0xb0, 0x38, 0x48, 0xcd, 0x84, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xb3, 0x30, 0x19, 0x38, 0xcd, 0xc2, 0xe6, 0xe0, 0xb0, 0x32, 0xd7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x9a, 0x85, 0xdd, 0xc0, 0x69, 0x16, 0x86, 0x07, 0x87, 0x95, 0xb9, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xcd, 0xe2, 0x0e, 0x5e, 0x00, 0xfa, 0xbb, 0x41, 0xc1, 0x87, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x66, 0x21, 0x19, 0xb8, 0xcd, 0xc2, 0x6a, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x6d, 0x16, 0xa2, 0x81, 0xdb, 0x2c, 0xa4, 0x87, 0x2f, 0x7e, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xdb, 0x2c, 0xc4, 0x03, 0xb7, 0x59, 0x58, 0x1c, 0xa4, 0x66, 0xc2, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb7, 0x59, 0x98, 0x0c, 0xdc, 0x66, 0x61, 0x74, 0x70, 0x78, 0x95, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xb3, 0xb0, 0x3b, 0x78, 0x01, 0xe8, 0xef, 0xc1, 0xe1, 0x55, 0x6e, 0x05, 0x7c, 0xb6, 0xb7, 0xb1, 0x75, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x23, 0x43, 0xe8, 0xc1, 0xa3, 0x2f, 0x80, 0x1b, 0x80, 0x9f, 0xb5, 0xb2, 0xbc, 0x39, 0x10, 0xb3, 0x37, 0x39, 0x10, 0xb9, 0xb2, 0xb6, 0x37, 0xba, 0x32, 0x90, 0xb9, 0x31, 0xb9, 0xbc, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0x47, 0x5f, 0x00, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xa5, 0x10, 0x66, 0x03, 0x97, 0x42, 0xe8, 0xd8, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x29, 0x84, 0xdd, 0xc0, 0xa5, 0x10, 0xc6, 0x1b, 0xfe, 0x5c, 0x1a, 0xf0, 0xd2, 0xc8, 0xf0, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x14, 0xc2, 0xf6, 0xe0, 0x1d, 0x23, 0xc0, 0x87, 0x1f, 0x6a, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4b, 0x21, 0xac, 0x07, 0x2e, 0x85, 0x50, 0xb1, 0xe1, 0xcf, 0xa5, 0x0d, 0x8a, 0xd6, 0x93, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x14, 0x42, 0xc3, 0xc1, 0x13, 0x52, 0x80, 0x0f, 0x3f, 0xd4, 0x74, 0x38, 0xc5, 0x16, 0xc0, 0x0f, 0x2e, 0x6c, 0x6c, 0xad, 0x8c, 0xae, 0x65, 0x8e, 0x2e, 0x8c, 0xae, 0xdc, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0x66, 0x0b, 0xf0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x55, 0x71, 0x03, 0xa7, 0x55, 0xfc, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbb, 0x2a, 0x24, 0x03, 0x77, 0x55, 0x98, 0x6d, 0xf8, 0x73, 0x69, 0x00, 0x0f, 0xb6, 0xb0, 0x39, 0xba, 0x96, 0xb9, 0x32, 0x37, 0x7a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xaa, 0xb0, 0x39, 0x78, 0x41, 0x0d, 0xf0, 0xc1, 0x91, 0xaf, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xac, 0x42, 0x32, 0x70, 0x58, 0x85, 0xc5, 0x86, 0x3f, 0x97, 0x06, 0x78, 0xe8, 0xe4, 0xd2, 0xca, 0xe6, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xac, 0x42, 0x7e, 0xf0, 0xea, 0x1d, 0xe0, 0x0d, 0x02, 0xe8, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0xab, 0x30, 0x38, 0x78, 0xf5, 0x0e, 0xf0, 0xe1, 0x31, 0x99, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xb2, 0x0a, 0xc9, 0xc0, 0x65, 0x15, 0x26, 0x1b, 0xfe, 0x5c, 0x1a, 0xe0, 0x99, 0x5b, 0x4b, 0x83, 0x9b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xb2, 0x0a, 0xf9, 0xc1, 0x7b, 0x89, 0x80, 0x0f, 0xca, 0x2c, 0xdd, 0x56, 0x80, 0x67, 0x0c, 0x2d, 0x2c, 0xcd, 0xdd, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0x58, 0x12, 0xf0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x18, 0x21, 0x1e, 0xb8, 0x31, 0x42, 0xd7, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x18, 0x21, 0x1f, 0xb8, 0x31, 0x42, 0xcd, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1b, 0x23, 0x0c, 0x06, 0x6e, 0x8c, 0xb0, 0x39, 0x78, 0xb6, 0x9b, 0xed, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x63, 0x84, 0xd1, 0xc0, 0x8d, 0x11, 0x66, 0x1b, 0x3e, 0x6a, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1b, 0x23, 0xac, 0x0e, 0xde, 0x59, 0x05, 0x7c, 0xf8, 0xa1, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x31, 0xc2, 0x6e, 0xe0, 0xc6, 0x08, 0x2d, 0x1b, 0x3e, 0x6a, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1b, 0x23, 0x0c, 0x0f, 0x9e, 0xaf, 0x05, 0xbc, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xc6, 0x08, 0xcb, 0x81, 0x1b, 0x23, 0xcc, 0x37, 0xfc, 0xb9, 0xb4, 0x41, 0xd1, 0x7a, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x37, 0x46, 0x58, 0x1f, 0x3c, 0x0c, 0x0c, 0xf8, 0xf0, 0x43, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x63, 0x84, 0xfd, 0xc0, 0x8d, 0x11, 0x4a, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0xc1, 0xf4, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0x8c, 0x50, 0x70, 0xf0, 0x1e, 0x33, 0xe0, 0x83, 0x33, 0x12, 0x6a, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x37, 0x46, 0xe8, 0x19, 0xb8, 0x31, 0x42, 0xd5, 0xc1, 0x83, 0x12, 0x6d, 0x9b, 0x05, 0xf0, 0x9c, 0xcb, 0x6b, 0x6b, 0x2b, 0xa3, 0x93, 0x4b, 0x1b, 0x6b, 0x59, 0x2b, 0xcb, 0x37, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x1e, 0xd9, 0x06, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf7, 0x41, 0x98, 0x0d, 0xdc, 0x07, 0xa1, 0x65, 0xc3, 0x17, 0x35, 0x1b, 0xea, 0x78, 0x80, 0x6f, 0xdd, 0xdd, 0x5c, 0x5e, 0x5b, 0x5b, 0x19, 0x9d, 0x5c, 0xda, 0xd8, 0x5a, 0x59, 0x7e, 0x38, 0xc5, 0xd6, 0xe0, 0x05, 0x0e, 0x41, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x09, 0xc7, 0x0d, 0x5c, 0xc4, 0xf1, 0x1b, 0x94, 0x12, 0xe2, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x25, 0x1c, 0x92, 0x81, 0x6b, 0x38, 0x64, 0x1b, 0x94, 0x2c, 0xec, 0xb3, 0xcc, 0x02, 0xfe, 0x5c, 0xd8, 0x59, 0xb9, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0x36, 0x3e, 0xe0, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x86, 0xc3, 0x66, 0xe0, 0x18, 0x0e, 0x65, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x0c, 0x87, 0xd1, 0xc0, 0x31, 0x1c, 0x86, 0x07, 0xa5, 0x37, 0xfd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x0c, 0x87, 0xe5, 0xc0, 0x31, 0x1c, 0x6a, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xc3, 0x61, 0x3a, 0x70, 0x0c, 0x87, 0xfd, 0x86, 0x3f, 0x97, 0x36, 0x68, 0xfa, 0x7a, 0x7c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0xe1, 0xb0, 0x3d, 0x78, 0x1d, 0x22, 0xf0, 0x41, 0xdb, 0xd6, 0xe3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x31, 0x1c, 0x0a, 0x06, 0x8e, 0xe1, 0xd0, 0xb2, 0xe1, 0xcf, 0xa5, 0x0d, 0x0e, 0xa6, 0x9f, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x0c, 0x87, 0x86, 0x83, 0x27, 0x3a, 0x02, 0x1f, 0x9c, 0x91, 0x50, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0xe1, 0xd0, 0x33, 0x70, 0x0c, 0x87, 0xae, 0x0d, 0xff, 0xce, 0x2f, 0xe0, 0x9f, 0x85, 0x9d, 0x95, 0xd5, 0xac, 0xc1, 0xb9, 0xfe, 0x74, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0x5c, 0x7f, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa7, 0x70, 0xd8, 0x0c, 0x9c, 0xc2, 0xa1, 0x63, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xe1, 0x30, 0x1a, 0x38, 0x85, 0xc3, 0xf0, 0x60, 0x15, 0x64, 0xf2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x0a, 0x87, 0xe5, 0xc0, 0x29, 0x1c, 0xd6, 0x1b, 0xbe, 0xa8, 0xd9, 0x50, 0xc7, 0x03, 0xaf, 0x0e, 0x4f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xe1, 0x30, 0x1f, 0x38, 0x85, 0x43, 0xc5, 0x86, 0x2f, 0x6a, 0x36, 0xd4, 0xf1, 0xc0, 0xab, 0xc3, 0x43, 0x9a, 0x35, 0x78, 0x67, 0x25, 0xf0, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x3b, 0x2b, 0x81, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x16, 0x0e, 0x9b, 0x81, 0x5b, 0x38, 0xac, 0x37, 0x7c, 0x30, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xc2, 0x61, 0x36, 0x70, 0x0b, 0x87, 0xdd, 0x41, 0x08, 0x3e, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x2d, 0x1c, 0x86, 0x03, 0xb7, 0x70, 0x18, 0x1f, 0xbc, 0x8e, 0xce, 0xee, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x87, 0xe3, 0x0e, 0xde, 0x86, 0x07, 0xbc, 0xe1, 0xa3, 0xf6, 0x0d, 0x82, 0xf6, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x87, 0x43, 0x32, 0x70, 0x0e, 0x87, 0xb2, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe7, 0x70, 0x88, 0x06, 0xce, 0xe1, 0x90, 0x6f, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xe0, 0x75, 0x4b, 0x21, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x39, 0x1c, 0x06, 0x03, 0xe7, 0x70, 0xe8, 0xda, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x73, 0x38, 0x2c, 0x06, 0xce, 0xe1, 0xb0, 0x3a, 0x38, 0x16, 0x8d, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe7, 0x70, 0x98, 0x0d, 0x9c, 0xc3, 0xa1, 0x63, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x39, 0x1c, 0x76, 0x03, 0xe7, 0x70, 0x18, 0x6f, 0xf8, 0x73, 0x69, 0x83, 0xa6, 0xaf, 0xc7, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x1c, 0x0e, 0xc3, 0x83, 0x97, 0x0d, 0x03, 0x1f, 0xb4, 0x6d, 0x3d, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0xc3, 0x61, 0x3d, 0x70, 0x0e, 0x87, 0x8a, 0x0d, 0x7f, 0x2e, 0x6d, 0x70, 0x30, 0xfd, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x73, 0x38, 0xcc, 0x0f, 0x5e, 0x97, 0x0c, 0x7c, 0x70, 0x46, 0x42, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x87, 0x43, 0xc9, 0xc0, 0x39, 0x1c, 0x8a, 0x36, 0xfc, 0x3b, 0xbf, 0x06, 0xe7, 0xfa, 0xd3, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0xe1, 0xd0, 0x34, 0x70, 0x0e, 0x87, 0xaa, 0xc3, 0x0f, 0x35, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xc3, 0x21, 0x19, 0xb8, 0x87, 0x43, 0xc1, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x7b, 0x38, 0x44, 0x03, 0xf7, 0x70, 0xc8, 0x37, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xd0, 0x2a, 0x90, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x0f, 0x87, 0xc1, 0xc0, 0x3d, 0x1c, 0xf6, 0x1b, 0xfe, 0x5c, 0x1a, 0x1c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x7b, 0x38, 0x4c, 0x0e, 0xde, 0xbd, 0x0d, 0xbc, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x1e, 0x0e, 0x9b, 0x81, 0x7b, 0x38, 0x0c, 0x37, 0xfc, 0xb9, 0xb4, 0x41, 0xd3, 0xd7, 0xe3, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x0f, 0x87, 0xd1, 0xc1, 0x03, 0xc3, 0x81, 0x0f, 0xda, 0xb6, 0x1e, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xe1, 0xb0, 0x1c, 0xb8, 0x87, 0xc3, 0x7c, 0xc3, 0x9f, 0x4b, 0x1b, 0x1c, 0x4c, 0x3f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x1e, 0x0e, 0xd3, 0x83, 0x47, 0x9e, 0x03, 0x1f, 0x9c, 0x91, 0x50, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x88, 0x43, 0x32, 0x70, 0x10, 0x87, 0x9e, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x07, 0x71, 0x88, 0x06, 0x0e, 0xe2, 0x90, 0x1f, 0x3c, 0x11, 0x19, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x88, 0xc3, 0x60, 0xe0, 0x20, 0x0e, 0xfb, 0x0d, 0x7f, 0x2e, 0x0d, 0x0e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x41, 0x1c, 0x26, 0x07, 0xcf, 0x98, 0x07, 0xde, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x10, 0x87, 0xcd, 0xc0, 0x41, 0x1c, 0x86, 0x1b, 0xfe, 0x5c, 0xda, 0xa0, 0xe9, 0xeb, 0xf1, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x88, 0xc3, 0xe8, 0xe0, 0xbd, 0xf8, 0xc0, 0x07, 0x6d, 0x5b, 0x8f, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x07, 0x71, 0x58, 0x0e, 0x1c, 0xc4, 0x61, 0xbe, 0xe1, 0xcf, 0xa5, 0x0d, 0x0e, 0xa6, 0x9f, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x10, 0x87, 0xe9, 0xc1, 0x9b, 0xfd, 0x81, 0x0f, 0xce, 0x48, 0xa8, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x07, 0x71, 0x28, 0x18, 0x38, 0x88, 0x43, 0xcd, 0x86, 0x3f, 0x97, 0x06, 0x8f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x20, 0x0e, 0x15, 0x07, 0x8f, 0x26, 0x08, 0xde, 0xf0, 0xef, 0xfc, 0x1a, 0xbc, 0x8d, 0x0f, 0xb8, 0x6a, 0x05, 0xf0, 0x98, 0x43, 0x4b, 0x83, 0x6b, 0x69, 0x2b, 0xa3, 0x0b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x1e, 0x99, 0x10, 0xdc, 0x00, 0xf8, 0x08, 0x27, 0xf7, 0x46, 0x56, 0x37, 0x56, 0x06, 0x32, 0x97, 0xa6, 0x57, 0x06, 0x82, 0x92, 0xe6, 0x06, 0x22, 0x96, 0x47, 0x57, 0x36, 0x97, 0x02, 0x12, 0xe6, 0x46, 0x06, 0x12, 0x46, 0x46, 0x26, 0x57, 0x36, 0x37, 0x07, 0x22, 0x17, 0xe6, 0xb6, 0x06, 0x62, 0xf6, 0x26, 0x07, 0xe2, 0x32, 0x87, 0x96, 0x06, 0xaf, 0x04, 0xf0, 0x00, 0xa3, 0x03, 0x72, 0x16, 0xc6, 0x16, 0x86, 0x97, 0x07, 0xf2, 0x26, 0x07, 0x32, 0x47, 0x17, 0x26, 0x2f, 0x01, 0x1e, 0x31, 0x3a, 0x20, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0xf4, 0x12, 0xf0, 0xca, 0xe8, 0x80, 0xb4, 0xbd, 0xbd, 0xb9, 0x4b, 0xc0, 0x3f, 0xa3, 0x03, 0x32, 0xf6, 0xd6, 0x56, 0x46, 0xd7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x87, 0x71, 0x03, 0x77, 0x62, 0xc8, 0x37, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x87, 0x21, 0x19, 0xb8, 0x0f, 0x43, 0xbc, 0xe1, 0xcf, 0xa5, 0x0d, 0x9a, 0xbe, 0x1e, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfb, 0x30, 0x44, 0x07, 0x8f, 0xf1, 0x08, 0x3e, 0x68, 0xdb, 0x7a, 0x7c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0xc4, 0xb8, 0x83, 0x17, 0x6e, 0x04, 0x6f, 0xf8, 0x8b, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x10, 0x43, 0x32, 0x70, 0x20, 0x86, 0xdd, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x03, 0x31, 0x44, 0x03, 0x07, 0x62, 0x18, 0x6c, 0xf8, 0x73, 0x69, 0x83, 0xe7, 0xbb, 0x54, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x81, 0x18, 0xf2, 0x83, 0x17, 0xa6, 0x04, 0x1f, 0x7e, 0xa8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0xc4, 0xb0, 0x18, 0x38, 0x10, 0xc3, 0x6c, 0xc3, 0x9f, 0x4b, 0x1b, 0x3c, 0x0f, 0xee, 0x77, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0xc4, 0x30, 0x39, 0x78, 0xdc, 0x4b, 0xf0, 0x86, 0x7f, 0xe7, 0x37, 0x78, 0x2c, 0xdf, 0x6f, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x89, 0x18, 0x77, 0xf0, 0xc2, 0x8d, 0xe0, 0x0d, 0x0a, 0xd2, 0xd8, 0x35, 0x7c, 0xdf, 0xbe, 0xc1, 0xf3, 0x5d, 0x2a, 0x37, 0x28, 0xa1, 0x63, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x13, 0x31, 0xc4, 0x03, 0x27, 0x62, 0xc8, 0x0f, 0x3f, 0xd4, 0x1c, 0x84, 0xe9, 0xd8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x22, 0x86, 0xc5, 0xc0, 0x89, 0x18, 0xd6, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xc4, 0x30, 0x19, 0x38, 0x11, 0xc3, 0xea, 0xa0, 0x28, 0xfe, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xc4, 0x30, 0x1b, 0x38, 0x11, 0xc3, 0xee, 0xa0, 0xa8, 0x14, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xc4, 0x30, 0x1c, 0x38, 0x11, 0xc3, 0xf8, 0xe0, 0x15, 0x88, 0x33, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x91, 0x18, 0x77, 0xf0, 0xc2, 0x8d, 0xe0, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x47, 0x62, 0x48, 0x06, 0x8e, 0xc4, 0xb0, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x24, 0x86, 0x68, 0xe0, 0x48, 0x0c, 0xe9, 0xe1, 0x8b, 0xdf, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x48, 0x0c, 0xf1, 0xc0, 0x91, 0x18, 0x26, 0x07, 0x8f, 0xcf, 0xfd, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0xc4, 0xb0, 0x19, 0x38, 0x12, 0xc3, 0xe8, 0x20, 0x60, 0x59, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0xc4, 0xb0, 0x1b, 0x38, 0x12, 0xc3, 0x7e, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x91, 0x18, 0x86, 0x03, 0x47, 0x62, 0x58, 0x1e, 0x04, 0x2c, 0xeb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x24, 0x86, 0xe9, 0xc0, 0x91, 0x18, 0xe6, 0x1b, 0xde, 0xb8, 0x3b, 0x78, 0xa7, 0xe0, 0x6f, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x25, 0xc6, 0x1d, 0xbc, 0x70, 0x23, 0x78, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x95, 0x18, 0x92, 0x81, 0x2b, 0x31, 0xac, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x89, 0x21, 0x1a, 0xb8, 0x12, 0x43, 0x7a, 0xf8, 0xe2, 0x77, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x12, 0x43, 0x3c, 0x70, 0x25, 0x86, 0xc9, 0xc1, 0xe3, 0x73, 0x7f, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x2b, 0x31, 0x6c, 0x06, 0xae, 0xc4, 0x30, 0x3a, 0x38, 0x35, 0xb7, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x89, 0x61, 0x37, 0x70, 0x25, 0x86, 0xfd, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x2b, 0x31, 0x0c, 0x07, 0xae, 0xc4, 0xb0, 0x3c, 0x38, 0x35, 0xb7, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x57, 0x62, 0x98, 0x0e, 0x5c, 0x89, 0x61, 0xbe, 0xe1, 0x8d, 0xbb, 0x83, 0x47, 0x21, 0xfe, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x67, 0x62, 0xdc, 0xc1, 0x0b, 0x37, 0x82, 0x37, 0x7c, 0x90, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x89, 0x21, 0x19, 0x38, 0x13, 0xc3, 0x6a, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x99, 0x18, 0xa2, 0x81, 0x33, 0x31, 0xa4, 0x87, 0x2f, 0x7e, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x33, 0x31, 0xc4, 0x03, 0x67, 0x62, 0x98, 0x1c, 0x3c, 0x3e, 0xf7, 0x77, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x13, 0xc3, 0x66, 0xe0, 0x4c, 0x0c, 0xa3, 0x83, 0xc3, 0xca, 0x5c, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x99, 0x18, 0x76, 0x03, 0x67, 0x62, 0x28, 0xd8, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x26, 0x86, 0xe1, 0xc0, 0x99, 0x18, 0x96, 0x07, 0x87, 0x95, 0xb9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x4c, 0x0c, 0xd3, 0x81, 0x33, 0x31, 0xec, 0x37, 0xbc, 0x71, 0x77, 0xf0, 0x0c, 0xc7, 0xdf, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x4e, 0x8c, 0x3b, 0x78, 0xe1, 0x46, 0xf0, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x3b, 0x31, 0x76, 0xe0, 0x4e, 0x0c, 0xc1, 0xc1, 0xe1, 0x55, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x13, 0x43, 0x32, 0x70, 0x27, 0x86, 0x78, 0xc3, 0x1b, 0x77, 0x07, 0x6f, 0x9f, 0xfc, 0x6d, 0xd6, 0xe0, 0x50, 0x5d, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0x90, 0xb8, 0x81, 0x5c, 0x49, 0xfc, 0x06, 0x65, 0x19, 0xf6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x0d, 0x09, 0xc9, 0x40, 0x36, 0x24, 0x6c, 0x37, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x43, 0x42, 0x34, 0x90, 0x0d, 0x09, 0x93, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x65, 0x6e, 0xf9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x43, 0x42, 0x7c, 0xf0, 0xea, 0xcc, 0xe0, 0x83, 0xe7, 0xde, 0x83, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0x90, 0xb0, 0x19, 0xc8, 0x86, 0x84, 0xe9, 0x86, 0x3f, 0x97, 0x36, 0x28, 0x0b, 0x8b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x1b, 0x12, 0x76, 0x07, 0x8f, 0xff, 0x0c, 0x3e, 0x28, 0xb3, 0x74, 0x9b, 0x65, 0xd6, 0xa0, 0xd0, 0x10, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1c, 0x49, 0xfc, 0x40, 0xaa, 0x24, 0x0c, 0x36, 0x28, 0xed, 0x2d, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1c, 0x49, 0xc8, 0x06, 0x72, 0x24, 0x61, 0xb0, 0xe1, 0xcf, 0xa5, 0xc1, 0xd3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x91, 0x84, 0xf4, 0xe0, 0x69, 0xa9, 0xc1, 0x07, 0x65, 0x96, 0xee, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x49, 0xe2, 0x0f, 0xde, 0x69, 0x1a, 0xbc, 0xe1, 0x2b, 0x9c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x92, 0x84, 0xec, 0xe0, 0x9d, 0xa6, 0xc1, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x24, 0x21, 0x1f, 0x48, 0x92, 0x84, 0xc1, 0xe1, 0x83, 0xd5, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x92, 0xc4, 0x1f, 0xbc, 0xd3, 0x34, 0x78, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x96, 0x24, 0x64, 0x03, 0x59, 0x92, 0xb0, 0xd9, 0xf0, 0x6f, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x25, 0x09, 0xe9, 0x40, 0x96, 0x24, 0xc4, 0x07, 0x65, 0xf4, 0xf9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x49, 0x42, 0x3e, 0x90, 0x25, 0x09, 0x93, 0x83, 0xc2, 0xcb, 0x78, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x92, 0x84, 0xd5, 0x40, 0x96, 0x24, 0xcc, 0x0e, 0x8a, 0x9c, 0xd6, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x93, 0xc4, 0x1f, 0xbc, 0xd3, 0x34, 0x78, 0x83, 0x82, 0x34, 0x76, 0x83, 0x64, 0xa4, 0xb8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x4d, 0x12, 0x06, 0x03, 0x69, 0x92, 0xb0, 0x39, 0x78, 0x06, 0x60, 0xca, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x49, 0xe2, 0x0f, 0xde, 0x69, 0x1a, 0xbc, 0x41, 0xd1, 0x41, 0xbb, 0x41, 0x1b, 0x33, 0xe0, 0x1b, 0xbc, 0x10, 0x30, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x93, 0x84, 0xd5, 0x40, 0x9e, 0x24, 0x54, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x93, 0x84, 0xd9, 0x40, 0x9e, 0x24, 0xb4, 0x6c, 0x78, 0x50, 0x72, 0x0d, 0x6f, 0xeb, 0x0c, 0xf0, 0xc0, 0x85, 0x8d, 0xd1, 0xd1, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x9e, 0x24, 0x8c, 0x0f, 0xde, 0x17, 0x1d, 0xbc, 0xe1, 0x6d, 0x9d, 0x83, 0x87, 0xa0, 0x38, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0x92, 0x50, 0x33, 0x90, 0x27, 0x09, 0x4d, 0x07, 0xcf, 0x00, 0x4c, 0x69, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x25, 0xf1, 0x07, 0xef, 0x34, 0x0d, 0xde, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xf0, 0xe4, 0xde, 0xdc, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x94, 0x84, 0x7c, 0x20, 0x51, 0x12, 0x0a, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x4a, 0xc2, 0x60, 0x20, 0x51, 0x12, 0x96, 0x1b, 0xde, 0xd6, 0x19, 0xc0, 0x43, 0xee, 0xad, 0xce, 0x8d, 0x8c, 0x4e, 0x2e, 0x0d, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x94, 0x84, 0xe9, 0x40, 0xa2, 0x24, 0xac, 0x0f, 0xda, 0xe7, 0x01, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x25, 0x61, 0x3e, 0x90, 0x28, 0x09, 0x2d, 0x1b, 0x1e, 0x94, 0x5c, 0xc3, 0xdb, 0x3a, 0x03, 0x5f, 0xe6, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0x92, 0xd0, 0x70, 0xf0, 0x8a, 0xf4, 0xe0, 0x0d, 0x6f, 0xeb, 0x6c, 0xf0, 0x30, 0xff, 0xbb, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x44, 0x49, 0xa8, 0x19, 0x48, 0x94, 0x84, 0xbe, 0x0d, 0x0f, 0x4a, 0x6e, 0x10, 0x80, 0x6c, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x28, 0x09, 0x45, 0x07, 0x8f, 0x80, 0x0f, 0xde, 0xf0, 0xa0, 0xe4, 0x1a, 0xde, 0xd6, 0x19, 0x78, 0xb2, 0xb2, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x94, 0x84, 0xae, 0x83, 0x47, 0xc0, 0x07, 0x1f, 0x3c, 0xa8, 0x3d, 0xb8, 0x0d, 0x8a, 0x01, 0xd9, 0x0d, 0x5f, 0x4e, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0x92, 0x90, 0x0c, 0x64, 0x4a, 0x42, 0xcd, 0x06, 0xeb, 0x56, 0x99, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x94, 0x84, 0x70, 0x20, 0x53, 0x12, 0x3a, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x4a, 0x42, 0x3a, 0x90, 0x29, 0x09, 0x83, 0x0d, 0x9f, 0xbb, 0x0c, 0x9e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xa6, 0x24, 0xe4, 0x07, 0xaf, 0x02, 0x10, 0x3e, 0x28, 0xa3, 0xcf, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4c, 0x49, 0x58, 0x0c, 0x64, 0x4a, 0xc2, 0x70, 0xc3, 0xe7, 0x2e, 0x03, 0x5e, 0x99, 0x5b, 0xbe, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0x92, 0xb0, 0x3a, 0x78, 0x83, 0x81, 0xf0, 0x41, 0x4a, 0x51, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x29, 0x09, 0xcb, 0x81, 0x4c, 0x49, 0x18, 0x1f, 0xb4, 0xcf, 0x03, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x4a, 0xc2, 0x7a, 0x20, 0x53, 0x12, 0x2a, 0x36, 0xbc, 0xad, 0x33, 0x78, 0x3d, 0xe0, 0xc9, 0xbd, 0xb9, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0x92, 0x50, 0x32, 0x90, 0x29, 0x09, 0x2d, 0x07, 0x05, 0x6c, 0xfe, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x4a, 0xe2, 0x0f, 0xde, 0x69, 0x1a, 0xbc, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0x41, 0xb1, 0x7b, 0xbe, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0x92, 0x90, 0x0d, 0xa4, 0x4a, 0x42, 0xbe, 0xe1, 0xe3, 0xa8, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x95, 0x84, 0x74, 0x20, 0x55, 0x12, 0xe2, 0x83, 0x32, 0xfa, 0xbc, 0xd5, 0xe0, 0x20, 0xcf, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0x91, 0xf8, 0x81, 0x04, 0x49, 0x18, 0x6c, 0x50, 0xda, 0x5b, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0x91, 0x90, 0x0d, 0x64, 0x46, 0xc2, 0x60, 0xc3, 0x9f, 0x4b, 0x83, 0xa7, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x19, 0x09, 0xe9, 0xc1, 0x1b, 0x43, 0x84, 0x0f, 0xca, 0x2c, 0xdd, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x8d, 0xc4, 0x1f, 0x3c, 0xd8, 0x43, 0x78, 0xc3, 0x57, 0x38, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x1a, 0x09, 0xd9, 0xc1, 0x83, 0x3d, 0x84, 0x37, 0xfc, 0x45, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x46, 0x42, 0x3e, 0x90, 0x1a, 0x09, 0x83, 0xc3, 0x07, 0xab, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x1b, 0x89, 0x3f, 0x78, 0xb0, 0x87, 0xf0, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xdc, 0x48, 0xc8, 0x06, 0x72, 0x23, 0x61, 0xb3, 0xe1, 0xdf, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x37, 0x12, 0xd2, 0x81, 0xdc, 0x48, 0x88, 0x0f, 0xca, 0xe8, 0xf3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x8d, 0x84, 0x7c, 0x20, 0x37, 0x12, 0x26, 0x07, 0x85, 0x97, 0xf1, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x1b, 0x09, 0xab, 0x81, 0xdc, 0x48, 0x98, 0x1d, 0x14, 0x39, 0xad, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x1c, 0x89, 0x3f, 0x78, 0xb0, 0x87, 0xf0, 0x06, 0x05, 0x69, 0xec, 0x06, 0xc9, 0x48, 0x71, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x72, 0x24, 0x0c, 0x06, 0x92, 0x23, 0x61, 0x73, 0xf0, 0x0c, 0xc0, 0x94, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x8e, 0xc4, 0x1f, 0x3c, 0xd8, 0x43, 0x78, 0x83, 0xa2, 0x83, 0x76, 0x83, 0xa2, 0xb6, 0x78, 0x83, 0x17, 0x02, 0xa6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0x91, 0xb0, 0x1a, 0xc8, 0x8e, 0x84, 0xa6, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0x91, 0x30, 0x1b, 0xc8, 0x8e, 0x84, 0x92, 0x0d, 0x0f, 0x4a, 0x6e, 0x70, 0xf6, 0x8c, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xec, 0x48, 0xd8, 0x1e, 0x3c, 0x32, 0x49, 0xf8, 0xe0, 0x15, 0xd6, 0xc1, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x76, 0x24, 0xb4, 0x0c, 0x64, 0x47, 0x42, 0xd1, 0xc1, 0x33, 0x00, 0x53, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf4, 0x48, 0xfc, 0xc1, 0x83, 0x3d, 0x84, 0x37, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x3c, 0xb9, 0x37, 0x77, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x23, 0x21, 0x1f, 0x48, 0x8f, 0x84, 0xca, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0x91, 0x30, 0x18, 0x48, 0x8f, 0x84, 0xe5, 0xc1, 0x4b, 0xc5, 0x83, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf4, 0x48, 0x98, 0x0e, 0xa4, 0x47, 0xc2, 0xfa, 0xa0, 0xf4, 0x33, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x23, 0x61, 0x3e, 0x90, 0x1e, 0x09, 0x35, 0x1b, 0x1e, 0x94, 0xdc, 0xe0, 0x19, 0xea, 0xc1, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x1e, 0x09, 0x0d, 0x07, 0xaf, 0xf4, 0x12, 0xde, 0xf0, 0xb6, 0xce, 0xe2, 0x38, 0x07, 0x07, 0x79, 0xb6, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf4, 0x48, 0xe8, 0x19, 0x48, 0x8f, 0x84, 0xc6, 0x0d, 0x0f, 0x4a, 0x6e, 0x10, 0x80, 0x6c, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x1e, 0x09, 0x4d, 0x07, 0x8f, 0x2b, 0x13, 0xde, 0xf0, 0xa0, 0xe4, 0x06, 0x2f, 0xa2, 0x0f, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf4, 0x48, 0x28, 0x3b, 0x78, 0x5c, 0x99, 0xf0, 0xc1, 0xe3, 0xc4, 0x84, 0xdb, 0xa0, 0x18, 0x90, 0xdd, 0xf0, 0xe5, 0xe4, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x1f, 0x09, 0xc9, 0x40, 0x7e, 0x24, 0xd4, 0x6c, 0xb0, 0x6e, 0x95, 0x69, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfc, 0x48, 0x08, 0x07, 0xf2, 0x23, 0xa1, 0x63, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x7e, 0x24, 0xa4, 0x03, 0xf9, 0x91, 0x30, 0xd8, 0xf0, 0xb9, 0xcb, 0xe0, 0xe9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x47, 0x42, 0x7e, 0xf0, 0xb2, 0x3a, 0xe1, 0x83, 0x32, 0xfa, 0x7c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x8f, 0x84, 0xc5, 0x40, 0x7e, 0x24, 0x0c, 0x37, 0x7c, 0xee, 0x32, 0xe0, 0x95, 0xb9, 0xe5, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x1f, 0x09, 0xab, 0x83, 0x77, 0xec, 0x09, 0x1f, 0xa4, 0x14, 0xc5, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0x91, 0xb0, 0x1c, 0xc8, 0x8f, 0x84, 0xf1, 0x41, 0xe9, 0x67, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x47, 0xc2, 0x7a, 0x20, 0x3f, 0x12, 0x2a, 0x0e, 0x9e, 0xf8, 0x20, 0xdc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x47, 0x42, 0xc9, 0x40, 0x7e, 0x24, 0xb4, 0x1c, 0x14, 0xb0, 0xf9, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x20, 0x89, 0x3f, 0x78, 0xb0, 0x87, 0xf0, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0xc5, 0xee, 0xf9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x48, 0x42, 0x36, 0x90, 0x20, 0x09, 0xf9, 0x86, 0x8f, 0xa3, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x41, 0x12, 0xd2, 0x81, 0x04, 0x49, 0x88, 0x0f, 0xca, 0xe8, 0xf3, 0x66, 0x0d, 0xdf, 0xb7, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x3e, 0x24, 0x7e, 0x20, 0x2d, 0x12, 0x06, 0x1b, 0x94, 0xf6, 0x96, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x3e, 0x24, 0x64, 0x03, 0xf9, 0x90, 0x30, 0xd8, 0xf0, 0xe7, 0xd2, 0xe0, 0xe9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x43, 0x42, 0x7a, 0xf0, 0xe2, 0x4a, 0xe1, 0x83, 0x32, 0x4b, 0x77, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x22, 0xf1, 0x07, 0xcf, 0x97, 0x14, 0xde, 0xf0, 0x15, 0xce, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x44, 0x42, 0x76, 0xf0, 0x7c, 0x49, 0xe1, 0x0d, 0x7f, 0xd1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0x91, 0x90, 0x0f, 0x24, 0x44, 0xc2, 0xe0, 0xf0, 0xc1, 0xea, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x44, 0xe2, 0x0f, 0x9e, 0x2f, 0x29, 0xbc, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x23, 0x12, 0xb2, 0x81, 0x8c, 0x48, 0xd8, 0x6c, 0xf8, 0x37, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x88, 0x84, 0x74, 0x20, 0x23, 0x12, 0xe2, 0x83, 0x32, 0xfa, 0x7c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x22, 0x21, 0x1f, 0xc8, 0x88, 0x84, 0xc9, 0x41, 0xe1, 0x65, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x44, 0xc2, 0x6a, 0x20, 0x23, 0x12, 0x66, 0x07, 0x45, 0x4e, 0xeb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x44, 0xe2, 0x0f, 0x9e, 0x2f, 0x29, 0xbc, 0x41, 0x41, 0x1a, 0xbb, 0x41, 0x32, 0x52, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x12, 0x09, 0x83, 0x81, 0x94, 0x48, 0xd8, 0x1c, 0x3c, 0x03, 0x30, 0x65, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x22, 0xf1, 0x07, 0xcf, 0x97, 0x14, 0xde, 0xa0, 0xe8, 0xa0, 0xdd, 0xa0, 0xa9, 0xa2, 0xac, 0x0d, 0x5e, 0x08, 0x98, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x44, 0xc2, 0x6a, 0x20, 0x27, 0x12, 0x9a, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x44, 0xc2, 0x6c, 0x20, 0x27, 0x12, 0x4a, 0x36, 0x3c, 0x28, 0xb9, 0x41, 0x4b, 0x18, 0x9c, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x13, 0x09, 0xdb, 0x83, 0x67, 0xf7, 0x0a, 0x1f, 0xbc, 0xc2, 0x3a, 0x78, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x89, 0x84, 0x96, 0x81, 0x9c, 0x48, 0x28, 0x3a, 0x78, 0x06, 0x60, 0x4a, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x14, 0x89, 0x3f, 0x78, 0xbe, 0xa4, 0xf0, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x80, 0x27, 0xf7, 0xe6, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x52, 0x24, 0xe4, 0x03, 0x49, 0x91, 0x50, 0xb9, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x29, 0x12, 0x06, 0x03, 0x49, 0x91, 0xb0, 0x3c, 0x78, 0xa9, 0x78, 0xf0, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x14, 0x09, 0xd3, 0x81, 0xa4, 0x48, 0x58, 0x1f, 0xb4, 0x74, 0x96, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x45, 0xc2, 0x7c, 0x20, 0x29, 0x12, 0x6a, 0x36, 0x3c, 0x28, 0xb9, 0xc1, 0x33, 0xd4, 0x83, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x29, 0x12, 0x1a, 0x0e, 0x9e, 0x2f, 0x2d, 0xbc, 0xe1, 0x6d, 0x9d, 0xc5, 0xf1, 0xa0, 0x99, 0xee, 0x88, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa4, 0x48, 0xe8, 0x19, 0x48, 0x8a, 0x84, 0xc6, 0x0d, 0x0f, 0x4a, 0x6e, 0x10, 0x80, 0x6c, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x14, 0x09, 0x4d, 0x07, 0x8f, 0xce, 0x16, 0xde, 0xf0, 0xa0, 0xe4, 0x06, 0x2f, 0xa2, 0x0f, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa4, 0x48, 0x28, 0x3b, 0x78, 0x74, 0xb6, 0xf0, 0xc1, 0xab, 0xad, 0x85, 0xdb, 0xa0, 0x18, 0x90, 0xdd, 0xf0, 0xe5, 0xe4, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x15, 0x09, 0xc9, 0x40, 0x56, 0x24, 0xd4, 0x6c, 0xb0, 0x6e, 0x95, 0x69, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xac, 0x48, 0x08, 0x07, 0xb2, 0x22, 0xa1, 0x63, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x56, 0x24, 0xa4, 0x03, 0x59, 0x91, 0x30, 0xd8, 0xf0, 0xb9, 0xcb, 0xe0, 0xe9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x45, 0x42, 0x7e, 0xf0, 0xe2, 0x74, 0xe1, 0x83, 0x32, 0xfa, 0x7c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x8a, 0x84, 0xc5, 0x40, 0x56, 0x24, 0x0c, 0x37, 0x7c, 0xee, 0x32, 0xe0, 0x95, 0xb9, 0xe5, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x15, 0x09, 0xab, 0x83, 0xf7, 0xbd, 0x0b, 0x1f, 0xa4, 0x14, 0xc5, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0x91, 0xb0, 0x1c, 0xc8, 0x8a, 0x84, 0xf1, 0x41, 0x4b, 0x67, 0x59, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x56, 0x24, 0xac, 0x07, 0xb2, 0x22, 0xa1, 0xe2, 0xe0, 0x89, 0x0f, 0xc2, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x56, 0x24, 0x94, 0x0c, 0x64, 0x45, 0x42, 0xcb, 0x41, 0x01, 0x9b, 0xbf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0x91, 0xf8, 0x83, 0xe7, 0x4b, 0x0a, 0x6f, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0x50, 0xec, 0x9e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x5a, 0x24, 0x64, 0x03, 0x69, 0x91, 0x90, 0x6f, 0xf8, 0x38, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x22, 0x21, 0x1d, 0x48, 0x8b, 0x84, 0xf8, 0xa0, 0x8c, 0x3e, 0xef, 0x70, 0x8a, 0x75, 0x38, 0xc5, 0x56, 0x00, 0x1f, 0xb8, 0xb2, 0x32, 0xb9, 0x96, 0x39, 0xba, 0x30, 0xba, 0x72, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x23, 0x43, 0xe8, 0xc1, 0x03, 0x0c, 0x86, 0x1b, 0x00, 0x8f, 0xe6, 0xe8, 0xc2, 0xe8, 0xca, 0x40, 0xcc, 0xde, 0xe4, 0x40, 0xc2, 0x40, 0xe0, 0xca, 0xca, 0xe4, 0x40, 0xee, 0xd2, 0xe8, 0xd0, 0x40, 0xd6, 0xdc, 0xde, 0xee, 0xdc, 0x40, 0xd8, 0xd2, 0xcc, 0xca, 0x40, 0xc2, 0xdc, 0xc8, 0x40, 0xd6, 0xca, 0xf2, 0xe6, 0x95, 0x00, 0x7c, 0x95, 0x7b, 0xab, 0xa3, 0x2b, 0xd3, 0x01, 0xa1, 0x93, 0x0b, 0x73, 0x9b, 0x83, 0x7b, 0x93, 0xa3, 0x6b, 0x61, 0x0b, 0xcb, 0x2b, 0x93, 0x03, 0x21, 0x2b, 0x9b, 0xa3, 0x4b, 0x73, 0x0b, 0xa3, 0x4b, 0x7b, 0x73, 0x03, 0x31, 0x7b, 0x93, 0x03, 0x81, 0x0b, 0x1b, 0x5b, 0x2b, 0xa3, 0x9b, 0x03, 0xa1, 0x7b, 0x03, 0x81, 0x2b, 0x2b, 0x93, 0x97, 0x00, 0x7c, 0x8c, 0x7b, 0x9b, 0xd3, 0x01, 0x89, 0xab, 0x0b, 0x63, 0x4b, 0xa3, 0xcb, 0x03, 0x79, 0x33, 0x03, 0x99, 0x2b, 0x93, 0xb3, 0x4b, 0x1b, 0x2b, 0xdb, 0x01, 0x19, 0x7b, 0x73, 0x73, 0x2b, 0x1b, 0xa3, 0x4b, 0x7b, 0x73, 0x03, 0x99, 0xa3, 0x0b, 0xa3, 0xab, 0x9b, 0x03, 0xa1, 0x7b, 0x03, 0x81, 0x2b, 0x2b, 0x93, 0x97, 0x00, 0x5e, 0xdf, 0xe6, 0xe6, 0xea, 0xc2, 0xe4, 0xf2, 0x74, 0x40, 0xc4, 0xde, 0xdc, 0xca, 0x78, 0x5a, 0x7c, 0xc8, 0xea, 0xc6, 0xe8, 0x40, 0xda, 0xc2, 0xe0, 0xe0, 0xca, 0xe4, 0x25, 0x00, 0x8f, 0xe7, 0xdc, 0xc8, 0x74, 0x40, 0xe0, 0xca, 0xe4, 0x5a, 0xc4, 0xde, 0xdc, 0xca, 0x40, 0xda, 0xca, 0xe6, 0xe6, 0xc2, 0xce, 0xca, 0x40, 0xe0, 0xea, 0xda, 0xe0, 0xe6, 0x40, 0xe8, 0xde, 0x40, 0xe6, 0xca, 0xdc, 0xc8, 0x40, 0xda, 0xca, 0xe6, 0xe6, 0xc2, 0xce, 0xca, 0xe6, 0x40, 0xc2, 0xe6, 0x40, 0xcc, 0xe4, 0xc2, 0xce, 0xda, 0xca, 0xdc, 0xe8, 0xe6, 0x25, 0x00, 0xef, 0xe5, 0xc6, 0xec, 0x74, 0x40, 0xe0, 0xca, 0xe4, 0x5a, 0xc4, 0xde, 0xdc, 0xca, 0x40, 0xda, 0xca, 0xe6, 0xe6, 0xc2, 0xce, 0xca, 0x40, 0xe6, 0xd2, 0xdc, 0xd6, 0xe6, 0x40, 0xe8, 0xde, 0x40, 0xc2, 0xe6, 0xe6, 0xca, 0xda, 0xc4, 0xd8, 0xca, 0x40, 0xda, 0xca, 0xe6, 0xe6, 0xc2, 0xce, 0xca, 0xe6, 0x40, 0xcc, 0xe4, 0xde, 0xda, 0x40, 0xcc, 0xe4, 0xc2, 0xce, 0xda, 0xca, 0xdc, 0xe8, 0xe6, 0x25, 0x00, 0x0d, 0xdd, 0xc2, 0xf0, 0x74, 0x40, 0xea, 0xdc, 0xe0, 0xe4, 0xde, 0xc6, 0xca, 0xe6, 0xe6, 0xca, 0xc8, 0x40, 0xdc, 0xc2, 0xc6, 0xd6, 0xe6, 0x40, 0x50, 0xdc, 0xca, 0xce, 0xc2, 0xe8, 0xd2, 0xec, 0xca, 0x40, 0xc2, 0xc6, 0xd6, 0xdc, 0xde, 0xee, 0xd8, 0xca, 0xc8, 0xce, 0xda, 0xca, 0xdc, 0xe8, 0xe6, 0x52, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0x80, 0x87, 0x63, 0x6f, 0x72, 0x6b, 0x65, 0x64, 0x3a, 0x20, 0x20, 0x62, 0x6f, 0x6e, 0x65, 0x73, 0x20, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x6f, 0x74, 0x68, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0x0f, 0x30, 0x18, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xcb, 0x23, 0x6e, 0xe0, 0x14, 0x89, 0xdf, 0xe0, 0x00, 0x21, 0xba, 0xc1, 0x03, 0x0c, 0x86, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xf4, 0x88, 0x3b, 0x78, 0x46, 0xd0, 0xf0, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd3, 0x23, 0x24, 0x03, 0xf7, 0x47, 0xc8, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x1e, 0x21, 0x1d, 0x38, 0x3d, 0xc2, 0x76, 0xc3, 0x9f, 0x4b, 0x1b, 0x3c, 0xb2, 0x0d, 0x78, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0x8f, 0x10, 0x1f, 0x3c, 0x36, 0x69, 0x78, 0xc3, 0xbf, 0xf3, 0x6b, 0xf0, 0xc8, 0x36, 0xe0, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0x8f, 0x90, 0x0e, 0xdc, 0x1e, 0x61, 0xb2, 0xe1, 0xcf, 0xa5, 0x0d, 0x1e, 0x63, 0x63, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb7, 0x47, 0x88, 0x0f, 0xde, 0x04, 0x35, 0x7c, 0xf0, 0x36, 0x5d, 0xc7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xf8, 0x08, 0xe9, 0xc0, 0xf1, 0x11, 0x26, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x45, 0xb4, 0x8e, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x7c, 0x84, 0xf8, 0xe0, 0x5d, 0x56, 0xc3, 0x07, 0x6f, 0xb0, 0x75, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xae, 0x8f, 0x90, 0x0e, 0x5c, 0x1f, 0x61, 0xb8, 0xe1, 0xcf, 0xa5, 0x01, 0x7c, 0xe0, 0xea, 0xc4, 0xd8, 0xd2, 0xc6, 0x5a, 0xd6, 0xca, 0xf2, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x3e, 0x42, 0x7c, 0xf0, 0x36, 0xae, 0xe1, 0x0d, 0xff, 0xce, 0xaf, 0xc1, 0xd3, 0xba, 0x86, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x3f, 0x42, 0x3a, 0x70, 0x7e, 0x84, 0xe5, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x30, 0x1d, 0xd7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x1f, 0x61, 0x75, 0xf0, 0xfa, 0xb1, 0xe1, 0x83, 0xb6, 0xad, 0xc7, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0x90, 0x90, 0x0c, 0x1c, 0x20, 0xa1, 0x75, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x0d, 0x2c, 0x2c, 0x10, 0x14, 0xb6, 0xb4, 0x39, 0xba, 0xd4, 0x86, 0x3f, 0x97, 0x06, 0x78, 0xe4, 0xde, 0xea, 0xe8, 0xca, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x40, 0x42, 0x3e, 0x70, 0x80, 0x84, 0x9a, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x40, 0xc2, 0x60, 0xe0, 0x00, 0x09, 0xa3, 0x83, 0xb2, 0x09, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x40, 0xc2, 0x6a, 0xe0, 0x00, 0x09, 0x2d, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0x90, 0x30, 0x1b, 0x38, 0x40, 0xc2, 0x7c, 0xc3, 0x9f, 0x4b, 0x03, 0x7c, 0x64, 0x69, 0x72, 0x65, 0x63, 0xf4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x20, 0x61, 0x7d, 0xf0, 0x08, 0xbc, 0xe1, 0xc3, 0x07, 0xab, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x01, 0x12, 0xf6, 0x03, 0x07, 0x48, 0x28, 0xd9, 0xf0, 0xe7, 0xd2, 0x80, 0xcf, 0x16, 0xe6, 0x56, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x01, 0x12, 0x0a, 0x0e, 0x5e, 0xe6, 0x37, 0xbc, 0xe1, 0xdf, 0xf9, 0x35, 0x78, 0xd9, 0xdf, 0x70, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x81, 0x84, 0x64, 0xe0, 0x02, 0x09, 0xe9, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0xb8, 0xb7, 0x79, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2e, 0x90, 0x10, 0x1d, 0x3c, 0xa7, 0x70, 0x78, 0xc3, 0xbf, 0xf3, 0x0b, 0x78, 0x71, 0x6f, 0x73, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x27, 0x48, 0x48, 0x06, 0x4e, 0x90, 0xb0, 0xd8, 0xf0, 0xe7, 0xd2, 0x00, 0xef, 0xdb, 0xdc, 0x5c, 0x5d, 0x98, 0x5c, 0xbe, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x27, 0x48, 0x88, 0x0e, 0x9e, 0xbc, 0x38, 0xbc, 0xe1, 0xdf, 0xf9, 0x35, 0x78, 0x31, 0xe3, 0x70, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x37, 0x48, 0x48, 0x06, 0x6e, 0x90, 0x50, 0xb5, 0xe1, 0xcf, 0xa5, 0x01, 0x6f, 0xce, 0x8d, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1b, 0x24, 0xa4, 0x07, 0x4f, 0x97, 0x1c, 0xde, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1b, 0x24, 0xc4, 0x03, 0x37, 0x48, 0x58, 0x1c, 0x94, 0x88, 0xf5, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x0d, 0x12, 0x26, 0x03, 0x37, 0x48, 0x98, 0x1d, 0x3c, 0x33, 0x27, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x41, 0xc2, 0x6e, 0xe0, 0x06, 0x09, 0x4d, 0x1b, 0xfe, 0x9d, 0x5f, 0x00, 0x3e, 0xda, 0xca, 0xe6, 0xe6, 0xc2, 0xce, 0xca, 0x5a, 0xe0, 0xea, 0xda, 0xe0, 0x5a, 0xe6, 0xe8, 0xc2, 0xe8, 0xca, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x42, 0x42, 0x32, 0x70, 0x84, 0x84, 0xaa, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x72, 0x63, 0xf6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x21, 0x21, 0x3d, 0x78, 0xf5, 0xe8, 0xf0, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x21, 0x21, 0x1e, 0x38, 0x42, 0xc2, 0xe2, 0xa0, 0x44, 0xac, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0x90, 0x30, 0x19, 0x38, 0x42, 0xc2, 0xec, 0xe0, 0x99, 0x39, 0x21, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x11, 0x12, 0x76, 0x03, 0x47, 0x48, 0x68, 0xda, 0xf0, 0xef, 0xfc, 0x02, 0xf0, 0xd1, 0x56, 0x36, 0x37, 0x17, 0x76, 0x56, 0xd6, 0x32, 0x97, 0xe6, 0xb6, 0xd6, 0x32, 0x47, 0x17, 0x46, 0x57, 0x56, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x15, 0x12, 0x92, 0x81, 0x2b, 0x24, 0xf4, 0x6c, 0xf8, 0x73, 0x69, 0x83, 0xa6, 0x0f, 0xbb, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x0a, 0x09, 0xe9, 0xc1, 0x83, 0x69, 0x87, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x0a, 0x09, 0xf1, 0xc0, 0x15, 0x12, 0x16, 0x07, 0x25, 0xe2, 0xfb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x85, 0x84, 0xc9, 0xc0, 0x15, 0x12, 0x6a, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x21, 0x61, 0x33, 0x70, 0x85, 0x84, 0xe1, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x85, 0x4e, 0xc8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x21, 0x61, 0x74, 0xf0, 0x1a, 0xe0, 0xe1, 0x83, 0x67, 0xe6, 0x84, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x57, 0x48, 0x58, 0x0e, 0x5c, 0x21, 0xa1, 0x65, 0xc3, 0x9f, 0x4b, 0x03, 0x78, 0xb5, 0x95, 0xcd, 0xcd, 0x85, 0x9d, 0x95, 0xb5, 0xb8, 0xd5, 0xb5, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x85, 0x84, 0xe9, 0xc1, 0x9b, 0x8c, 0x87, 0x37, 0xfc, 0x3b, 0xbf, 0x06, 0x6f, 0x3a, 0x1e, 0xae, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0x90, 0x90, 0x0c, 0x9c, 0x21, 0x61, 0xbb, 0xe1, 0xcf, 0xa5, 0x01, 0xde, 0x31, 0xb6, 0xb7, 0xb9, 0x34, 0xb7, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0x90, 0xb0, 0x38, 0x78, 0x83, 0xf3, 0xf0, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x21, 0x61, 0x32, 0x70, 0x86, 0x84, 0xd5, 0x41, 0x89, 0xf8, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x21, 0x61, 0x36, 0x70, 0x86, 0x84, 0xe9, 0xc1, 0x33, 0x73, 0x42, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0x90, 0x90, 0x0c, 0xdc, 0x21, 0x61, 0xba, 0xe1, 0xcf, 0xa5, 0x01, 0xbe, 0xb1, 0x37, 0xb9, 0xb5, 0x32, 0x72, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0x90, 0x30, 0x38, 0x78, 0x8b, 0xf6, 0xf0, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x21, 0x61, 0x31, 0x70, 0x87, 0x84, 0xd1, 0x41, 0x89, 0xf8, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x21, 0x61, 0x35, 0x70, 0x87, 0x84, 0xe5, 0xc1, 0x33, 0x73, 0x42, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0x91, 0x90, 0x0c, 0x1c, 0x22, 0xa1, 0x64, 0xc3, 0x9f, 0x4b, 0x03, 0x3c, 0x6b, 0x65, 0x65, 0x6e, 0xf3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x22, 0x21, 0x3f, 0x78, 0x8b, 0xf9, 0xf0, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x22, 0x61, 0x30, 0x70, 0x88, 0x84, 0xcd, 0x41, 0x89, 0x58, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x22, 0x61, 0x34, 0x70, 0x88, 0x84, 0xe1, 0xc1, 0x19, 0x09, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x44, 0xc2, 0x72, 0xe0, 0x10, 0x09, 0x1d, 0x1b, 0xfe, 0x9d, 0x5f, 0x00, 0x9f, 0xb5, 0xb2, 0x32, 0xb7, 0x96, 0x39, 0xba, 0x30, 0xba, 0xb2, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2e, 0x91, 0x90, 0x0c, 0x5c, 0x22, 0x21, 0xdf, 0xf0, 0xe7, 0xd2, 0x06, 0x0f, 0x4b, 0x02, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4b, 0x24, 0x44, 0x07, 0x6f, 0xb2, 0x1f, 0xde, 0xf0, 0xef, 0xfc, 0x1a, 0x3c, 0x2c, 0x09, 0xb8, 0x3a, 0x9c, 0x62, 0xb5, 0x06, 0xcb, 0x69, 0xa0, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x38, 0x32, 0x84, 0x1e, 0x2c, 0xa7, 0x81, 0x6e, 0x00, 0xbe, 0xe4, 0xca, 0xe2, 0xea, 0xca, 0xe6, 0xe8, 0x40, 0xe0, 0xc2, 0xc6, 0xd6, 0xca, 0xe8, 0x40, 0xe0, 0xc2, 0xf2, 0xd8, 0xde, 0xc2, 0xc8, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x96, 0xd3, 0x40, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x99, 0x10, 0x66, 0x03, 0x67, 0x42, 0x58, 0x6f, 0xf8, 0xa2, 0x66, 0x43, 0x1d, 0x0f, 0xf8, 0xea, 0xf0, 0xd0, 0xde, 0xde, 0xe8, 0x15, 0xf0, 0xe1, 0xca, 0xca, 0xe0, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x8e, 0x0c, 0xa1, 0x07, 0xcf, 0x34, 0x20, 0x6e, 0x00, 0x7f, 0x33, 0xb9, 0xb0, 0xb3, 0xb6, 0x32, 0x37, 0x3a, 0x10, 0xb9, 0xb2, 0xb8, 0xba, 0xb2, 0x39, 0xba, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0x67, 0x1a, 0x10, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x9d, 0x12, 0x37, 0x70, 0xa9, 0xc4, 0x6f, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x53, 0x42, 0x32, 0x70, 0xa7, 0x84, 0x78, 0xc3, 0x9f, 0x4b, 0x1b, 0x1c, 0x4c, 0x3f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x4e, 0x09, 0xd1, 0xc1, 0x6b, 0x22, 0x88, 0x0f, 0xce, 0x48, 0xa8, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xa1, 0x12, 0x92, 0x81, 0x43, 0x25, 0x0c, 0x36, 0xfc, 0xb9, 0xb4, 0x41, 0xa3, 0x7f, 0x84, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xa8, 0x84, 0xf4, 0xe0, 0x21, 0x17, 0xc4, 0x07, 0x65, 0x96, 0x6e, 0xab, 0xc1, 0x23, 0xe9, 0x44, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x83, 0x37, 0x0d, 0xd9, 0x0d, 0xe0, 0x5f, 0x66, 0x66, 0x56, 0x36, 0x46, 0x07, 0x62, 0x26, 0xf7, 0xd6, 0x06, 0x12, 0xd6, 0x56, 0x36, 0xaf, 0x04, 0x78, 0x37, 0x95, 0xcd, 0xcd, 0x85, 0x9d, 0xa5, 0xb9, 0x9d, 0x81, 0x1c, 0xa5, 0x99, 0xd1, 0xcd, 0xad, 0x04, 0xe0, 0x4f, 0x89, 0xd8, 0xdb, 0x9b, 0x9b, 0x0e, 0x88, 0x5c, 0xd9, 0x1c, 0xdc, 0x9b, 0xdb, 0x5c, 0x19, 0x48, 0x5b, 0xd9, 0xdc, 0x5c, 0xd8, 0x59, 0x19, 0x88, 0x99, 0xdc, 0x5b, 0x1b, 0x88, 0x5c, 0x59, 0xdb, 0x1b, 0x5d, 0x19, 0xc8, 0x1c, 0x5a, 0x1a, 0xbc, 0x04, 0xe0, 0x4d, 0x89, 0xdb, 0xdb, 0x9b, 0x9b, 0x0e, 0x88, 0xd8, 0xdb, 0x9b, 0x1b, 0xc8, 0x5d, 0x1a, 0x1d, 0x1a, 0x08, 0x59, 0xdd, 0x18, 0x1d, 0x88, 0xd9, 0x9b, 0x1c, 0xc8, 0x18, 0xdb, 0xdb, 0x19, 0x08, 0x9d, 0x5c, 0xd8, 0xd8, 0x5a, 0x9a, 0xdb, 0xb9, 0x04, 0xe0, 0x7b, 0xc9, 0x18, 0xdb, 0xdb, 0x99, 0x0e, 0x88, 0xdb, 0x1b, 0x5d, 0x9a, 0x59, 0x1e, 0x88, 0x5d, 0x98, 0x5b, 0x19, 0x08, 0x1d, 0x5a, 0x18, 0x1d, 0x48, 0x89, 0xd8, 0xdb, 0x9b, 0xdb, 0xc9, 0x1c, 0x08, 0xdd, 0x1b, 0x08, 0x5c, 0x59, 0x99, 0x1c, 0x48, 0x98, 0x5c, 0x19, 0x88, 0x58, 0xd8, 0xd8, 0x5a, 0x9a, 0xdb, 0x19, 0x48, 0x1d, 0x1c, 0x08, 0xdb, 0xdb, 0x58, 0x18, 0x1b, 0x5b, 0xbe, 0x04, 0xe0, 0x61, 0x09, 0xd9, 0x9b, 0x5b, 0x99, 0x0e, 0x88, 0xdb, 0x1b, 0x5d, 0x9a, 0x59, 0x1e, 0x88, 0x5d, 0x98, 0x5b, 0x19, 0x08, 0x1d, 0x5a, 0x18, 0x1d, 0x08, 0x5c, 0x59, 0x99, 0x1c, 0x08, 0x8a, 0x5b, 0x4a, 0xd8, 0xd8, 0x5a, 0x19, 0x19, 0xc8, 0x5b, 0x9d, 0x1c, 0x48, 0x5b, 0xd9, 0xdc, 0x5c, 0xd8, 0x59, 0xb9, 0x04, 0xe0, 0x55, 0x09, 0xdb, 0xdb, 0x1c, 0x9d, 0x0e, 0x88, 0xdb, 0x1b, 0x5d, 0x9a, 0x59, 0x1e, 0x88, 0x5d, 0x98, 0x5b, 0x19, 0x08, 0x1d, 0x5a, 0x18, 0x1d, 0xc8, 0x5d, 0x19, 0xc8, 0x98, 0x5c, 0xd8, 0x1c, 0x5a, 0x19, 0x19, 0xc8, 0x9b, 0x1b, 0x48, 0x89, 0xd8, 0xdb, 0x9b, 0xbb, 0x04, 0xf0, 0x54, 0x32, 0x57, 0xe6, 0x46, 0xa6, 0x03, 0x02, 0x17, 0x36, 0xb6, 0x56, 0x46, 0x07, 0x42, 0xf7, 0x06, 0x52, 0xe7, 0x96, 0x86, 0x2f, 0x01, 0xfc, 0x94, 0xb8, 0x85, 0xa5, 0xb1, 0xe9, 0x80, 0xb0, 0x85, 0xb9, 0x95, 0xcd, 0x81, 0xd0, 0xbd, 0x81, 0xd4, 0xb9, 0xa5, 0xe1, 0xad, 0x04, 0xf0, 0x20, 0x55, 0xd6, 0xf6, 0x46, 0x57, 0x06, 0x32, 0x35, 0x26, 0x97, 0x07, 0x72, 0x94, 0x66, 0x46, 0x37, 0xb7, 0x12, 0xc0, 0x47, 0x09, 0x5d, 0x9d, 0x5b, 0x99, 0x0e, 0x08, 0x5c, 0x59, 0xd9, 0x1a, 0x88, 0x5c, 0xd9, 0x5c, 0x1d, 0x1b, 0xdd, 0x4a, 0x00, 0x9f, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x4c, 0x69, 0x66, 0x65, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x20, 0x47, 0x69, 0x66, 0x74, 0x73, 0x2b, 0x01, 0x78, 0x53, 0x42, 0x57, 0x27, 0x67, 0xa6, 0x03, 0x42, 0xf6, 0xd6, 0x16, 0x96, 0xe6, 0x06, 0x22, 0x57, 0x06, 0xf7, 0x26, 0x47, 0xc7, 0x02, 0x22, 0x57, 0xc6, 0x16, 0x96, 0x57, 0x46, 0x06, 0x62, 0x26, 0xf7, 0xd6, 0x06, 0xa2, 0x16, 0x56, 0xc6, 0x2e, 0x01, 0x7c, 0x97, 0xcc, 0x85, 0xe1, 0xbd, 0xe9, 0x80, 0xbc, 0xd5, 0xc9, 0x81, 0xcc, 0xc1, 0xbd, 0xb9, 0xcd, 0xbd, 0xc9, 0x81, 0xb0, 0xa5, 0xcd, 0xd1, 0x81, 0xc8, 0x95, 0xc1, 0xbd, 0xc9, 0xd1, 0xb5, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0x48, 0x3a, 0x91, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0xca, 0x71, 0x03, 0x65, 0x3a, 0x7e, 0x83, 0x50, 0x43, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8a, 0x72, 0x48, 0x06, 0x8a, 0x72, 0xc8, 0x37, 0x68, 0x9f, 0xa8, 0x60, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8a, 0x72, 0x88, 0x0f, 0x9e, 0xec, 0x45, 0x7c, 0x50, 0x50, 0x64, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x55, 0x8e, 0x3b, 0x78, 0x09, 0x17, 0xf1, 0x06, 0x41, 0xfb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0xe5, 0x90, 0x0c, 0x54, 0xe5, 0x30, 0xdd, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x95, 0x43, 0x34, 0x50, 0x95, 0x43, 0x7e, 0xf0, 0xfc, 0x4e, 0xbc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x2a, 0x87, 0xc1, 0x40, 0x55, 0x0e, 0xcb, 0x0d, 0x7f, 0x2e, 0x6d, 0xd0, 0x84, 0xf6, 0xf5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0xe5, 0x30, 0x3c, 0x78, 0x17, 0x1b, 0xf1, 0x41, 0x98, 0x8e, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0xe5, 0x90, 0x0c, 0x94, 0xe5, 0xb0, 0xdf, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x96, 0x43, 0x34, 0x50, 0x96, 0x43, 0x7e, 0xf0, 0x42, 0xb0, 0xd8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x2c, 0x87, 0xc1, 0x40, 0x59, 0x0e, 0xa3, 0x0d, 0x7f, 0x2e, 0x0d, 0x7c, 0x1a, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x65, 0x39, 0x6c, 0x0e, 0xde, 0x7b, 0x47, 0x7c, 0x10, 0xa6, 0x63, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x59, 0x0e, 0xab, 0x81, 0xb2, 0x1c, 0xe6, 0x1b, 0xfe, 0x5c, 0xda, 0xa0, 0x09, 0xed, 0xeb, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0xcb, 0x61, 0x7d, 0xf0, 0xc0, 0x3e, 0xe2, 0x83, 0x30, 0x1d, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xcb, 0x21, 0x19, 0xa8, 0xcb, 0xa1, 0x63, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x5d, 0x0e, 0xd1, 0x40, 0x5d, 0x0e, 0xf9, 0xc1, 0x2a, 0x94, 0xf0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x2e, 0x87, 0xc1, 0x40, 0x5d, 0x0e, 0x15, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x51, 0xfa, 0x78, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x97, 0xc3, 0xec, 0xe0, 0xdd, 0x88, 0xc4, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x97, 0xc3, 0x6e, 0xa0, 0x2e, 0x87, 0xed, 0x41, 0xd9, 0x84, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xd4, 0xe5, 0x30, 0x1e, 0xa8, 0xcb, 0xa1, 0xe1, 0xe0, 0xc5, 0xe5, 0x95, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x14, 0xe6, 0x90, 0x0c, 0x14, 0xe6, 0x30, 0xd9, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x98, 0x43, 0x34, 0x50, 0x98, 0x43, 0x7e, 0xb0, 0x8e, 0xf0, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0xcc, 0x61, 0x30, 0x50, 0x98, 0xc3, 0xe2, 0x20, 0x04, 0x1f, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2a, 0x73, 0x48, 0x06, 0x2a, 0x73, 0x18, 0x6f, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xcc, 0x21, 0x1a, 0xa8, 0xcc, 0x21, 0xdf, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0xdb, 0x31, 0xde, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xca, 0x1c, 0x06, 0x03, 0x95, 0x39, 0xac, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0xcb, 0xfe, 0x86, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x32, 0x87, 0xc5, 0xc1, 0x8b, 0x45, 0x89, 0x0f, 0x5e, 0x25, 0x38, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0xe6, 0x30, 0x1b, 0xa8, 0xcc, 0x61, 0xbb, 0xe1, 0xcf, 0xa5, 0x0d, 0x52, 0xe8, 0x7c, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x32, 0x87, 0xdd, 0xc1, 0xa3, 0x51, 0x89, 0x0f, 0xde, 0xf9, 0xc6, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x9a, 0x43, 0x32, 0x50, 0x9a, 0x43, 0xd1, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd2, 0x1c, 0xa2, 0x81, 0xd2, 0x1c, 0xf2, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x24, 0xc5, 0x03, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa5, 0x39, 0x0c, 0x06, 0x4a, 0x73, 0x58, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0xa6, 0xaf, 0xc7, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x34, 0x87, 0xc5, 0xc1, 0x13, 0x6a, 0x89, 0x0f, 0xda, 0xb6, 0x1e, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4a, 0x73, 0x98, 0x0d, 0x94, 0xe6, 0xd0, 0xb3, 0xe1, 0xcf, 0xa5, 0x01, 0x1e, 0xb6, 0x30, 0xb7, 0xb2, 0x79, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4a, 0x73, 0x18, 0x1f, 0xbc, 0x61, 0x97, 0x78, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4a, 0x73, 0x58, 0x0f, 0x94, 0xe6, 0xd0, 0x70, 0x10, 0x52, 0x26, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x69, 0x0e, 0x15, 0x03, 0xa5, 0x39, 0xd4, 0x1c, 0xbc, 0x4a, 0x70, 0xb8, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe2, 0x1c, 0x92, 0x81, 0xe2, 0x1c, 0xe6, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8a, 0x73, 0x88, 0x06, 0x8a, 0x73, 0xc8, 0x37, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xf0, 0x2a, 0x89, 0xb7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x38, 0x87, 0xc1, 0x40, 0x71, 0x0e, 0xbb, 0x0d, 0x7f, 0x2e, 0x6d, 0xd0, 0xe8, 0x1f, 0xe1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x14, 0xe7, 0x30, 0x3a, 0x78, 0x47, 0x33, 0xf1, 0x41, 0x99, 0xa5, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x14, 0xe7, 0x30, 0x1c, 0x28, 0xce, 0x61, 0xbd, 0xe1, 0xcf, 0xa5, 0x0d, 0x8a, 0xd6, 0x93, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0xce, 0x61, 0x7c, 0xf0, 0x88, 0x69, 0xe2, 0xc3, 0x0f, 0x35, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd5, 0x39, 0x24, 0x03, 0xd5, 0x39, 0x94, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xce, 0x21, 0x1a, 0xa8, 0xce, 0x21, 0xdf, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0x2b, 0x13, 0xde, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xea, 0x1c, 0x06, 0x03, 0xd5, 0x39, 0x8c, 0x36, 0xfc, 0x3b, 0xbf, 0xc1, 0x4b, 0x47, 0x66, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xaa, 0x73, 0x58, 0x0d, 0x54, 0xe7, 0xd0, 0xb5, 0xe1, 0xcf, 0xa5, 0x0d, 0x8a, 0xda, 0xe2, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xce, 0x61, 0x79, 0xf0, 0x36, 0x71, 0xe2, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xce, 0x61, 0x3a, 0x50, 0x9d, 0xc3, 0xfc, 0xa0, 0x6c, 0xc2, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xaa, 0x73, 0xd8, 0x0f, 0x54, 0xe7, 0x50, 0xb5, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd5, 0x39, 0x14, 0x0c, 0x54, 0xe7, 0x50, 0x72, 0x50, 0x36, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd5, 0x39, 0xb4, 0x0c, 0x54, 0xe7, 0xd0, 0x74, 0xf0, 0x3a, 0x3a, 0xbb, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0xcf, 0x21, 0x19, 0x28, 0xcf, 0xa1, 0x66, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x79, 0x0e, 0xd1, 0x40, 0x79, 0x0e, 0xf9, 0xc1, 0xfa, 0xef, 0xe7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x3c, 0x87, 0xc1, 0x40, 0x79, 0x0e, 0xa3, 0x83, 0xa7, 0x7e, 0x13, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe5, 0x39, 0xac, 0x06, 0xca, 0x73, 0x68, 0xd9, 0xf0, 0xe7, 0xd2, 0x80, 0x2f, 0xf7, 0x16, 0x26, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x79, 0x0e, 0xd3, 0x83, 0xa7, 0xee, 0x13, 0x6f, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x79, 0x0e, 0xdb, 0x81, 0xf2, 0x1c, 0xf6, 0x07, 0x65, 0x13, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x9e, 0x43, 0xc1, 0x40, 0x79, 0x0e, 0x25, 0x1b, 0xfe, 0x9d, 0x5f, 0x83, 0x97, 0xf2, 0x13, 0x57, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x05, 0x3a, 0x24, 0x03, 0x05, 0x3a, 0x54, 0x6c, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0xd0, 0x21, 0x1a, 0x28, 0xd0, 0x21, 0x3f, 0x78, 0x2c, 0x47, 0xe3, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xa0, 0xc3, 0x60, 0xa0, 0x40, 0x87, 0x86, 0x0d, 0x7f, 0x2e, 0x0d, 0xf0, 0xd0, 0xd5, 0xc9, 0x99, 0xcd, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xa0, 0xc3, 0xec, 0xe0, 0x59, 0x0d, 0xc5, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xa0, 0xc3, 0x6e, 0xa0, 0x40, 0x87, 0xed, 0x41, 0x48, 0x99, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x05, 0x3a, 0x8c, 0x07, 0x0a, 0x74, 0x28, 0x38, 0x78, 0x39, 0x4a, 0x63, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x15, 0x3a, 0x24, 0x03, 0x15, 0x3a, 0xb4, 0x6c, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xd0, 0x21, 0x1a, 0xa8, 0xd0, 0x21, 0xdf, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0xb3, 0x0d, 0xde, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x0a, 0x1d, 0x06, 0x03, 0x15, 0x3a, 0x94, 0x6c, 0xf8, 0x73, 0x69, 0x80, 0x7f, 0x0e, 0xee, 0xcd, 0x6d, 0xee, 0x4d, 0x6e, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x0a, 0x1d, 0x96, 0x07, 0x2f, 0xfb, 0x28, 0xde, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x0a, 0x1d, 0xa6, 0x03, 0x15, 0x3a, 0xcc, 0x0f, 0x42, 0xca, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xd0, 0x61, 0x3f, 0x50, 0xa1, 0x43, 0xc7, 0x41, 0xdb, 0xd6, 0xe3, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xd4, 0xe8, 0x90, 0x0c, 0xd4, 0xe8, 0xd0, 0xb3, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x46, 0x87, 0x68, 0xa0, 0x46, 0x87, 0x7c, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x2d, 0xf4, 0x93, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x35, 0x3a, 0x0c, 0x06, 0x6a, 0x74, 0xa8, 0xd8, 0xf0, 0xe7, 0xd2, 0xe0, 0xf0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xd4, 0xe8, 0x30, 0x39, 0x78, 0x72, 0x4c, 0xf1, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xd4, 0xe8, 0xb0, 0x19, 0xa8, 0xd1, 0x61, 0x77, 0x10, 0x52, 0x26, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x8d, 0x0e, 0xc3, 0x81, 0x1a, 0x1d, 0x1a, 0x36, 0xfc, 0x3b, 0xbf, 0xc1, 0x93, 0x05, 0x87, 0x37, 0x78, 0x6b, 0x7b, 0x70, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x35, 0x3a, 0x74, 0x0c, 0xd4, 0xe8, 0x50, 0xb3, 0xe1, 0xcf, 0xa5, 0xc1, 0xe3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xd1, 0xa1, 0xe5, 0xe0, 0x0d, 0x3e, 0xc5, 0x87, 0x1f, 0x6a, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8a, 0x74, 0x48, 0x06, 0x8a, 0x74, 0x28, 0xd9, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xa4, 0x43, 0x34, 0x50, 0xa4, 0xc3, 0x70, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x2f, 0x6b, 0x78, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8a, 0x74, 0x58, 0x0e, 0x14, 0xe9, 0xd0, 0xb1, 0xe1, 0xcf, 0xa5, 0x0d, 0xde, 0xc6, 0x07, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x45, 0x3a, 0x4c, 0x0f, 0xde, 0x9e, 0x54, 0xbc, 0xe1, 0xdf, 0xf9, 0x0d, 0x5e, 0x8c, 0x10, 0x7c, 0xf0, 0xac, 0xe0, 0xc6, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x2a, 0x1d, 0x92, 0x81, 0x2a, 0x1d, 0x8a, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0xe9, 0x10, 0x0d, 0x54, 0xe9, 0xb0, 0x39, 0x78, 0x88, 0xcd, 0xe2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xa5, 0xc3, 0x68, 0xa0, 0x4a, 0x87, 0x9e, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0xbc, 0xbe, 0x96, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xd2, 0x61, 0x79, 0xf0, 0x3c, 0xab, 0xe2, 0x0d, 0xd6, 0xab, 0x54, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x55, 0x3a, 0x8c, 0x07, 0xaa, 0x74, 0x68, 0x38, 0x78, 0x03, 0x2e, 0xf0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0xe9, 0x50, 0x31, 0x50, 0xa5, 0x43, 0xcd, 0xc1, 0xdb, 0x81, 0x1b, 0x6b, 0x05, 0xf8, 0xea, 0xdc, 0xe4, 0xde, 0xd8, 0xd8, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x7e, 0xe3, 0x06, 0x8e, 0xe0, 0xd0, 0xb8, 0xe1, 0x17, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xf8, 0x0d, 0xc9, 0xc0, 0xf1, 0x1b, 0xc2, 0x0d, 0x7f, 0x2e, 0x0d, 0x4e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xf1, 0x1b, 0xb2, 0x83, 0x77, 0x97, 0x15, 0x1f, 0x84, 0xe9, 0xd8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xbf, 0x71, 0x07, 0x4f, 0x19, 0x2b, 0xde, 0xa0, 0xb4, 0xb7, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xae, 0xdf, 0x90, 0x0c, 0x5c, 0xbf, 0x61, 0xbd, 0xe1, 0xcf, 0xa5, 0xc1, 0xe7, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x7e, 0x43, 0x76, 0xf0, 0x16, 0xb7, 0xe2, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x7e, 0x43, 0x38, 0x70, 0xfd, 0x86, 0xc1, 0x41, 0x48, 0x99, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd7, 0x6f, 0x58, 0x0c, 0x5c, 0xbf, 0x61, 0xbc, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xfa, 0x0d, 0x93, 0x81, 0xeb, 0x37, 0xec, 0x36, 0xfc, 0xb9, 0xb4, 0x41, 0x13, 0x59, 0x5b, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xfd, 0x86, 0xd9, 0xc1, 0x83, 0xf2, 0x8a, 0x0f, 0x3f, 0xd4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd7, 0x6f, 0x18, 0x0e, 0x5c, 0xbf, 0x61, 0xbb, 0xe1, 0xcf, 0xa5, 0xc1, 0xc9, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x7e, 0xc3, 0xf4, 0xe0, 0x2d, 0x7f, 0xc5, 0x07, 0x61, 0x3a, 0x56, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xfe, 0xc6, 0x1d, 0x3c, 0x65, 0xac, 0x78, 0x83, 0x82, 0x34, 0x76, 0xf0, 0x70, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x7f, 0x43, 0x38, 0x70, 0xfe, 0x86, 0xf4, 0xf0, 0x98, 0xcc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xbf, 0x71, 0x07, 0x4f, 0x19, 0x2b, 0xde, 0xf0, 0x15, 0xce, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xbf, 0x21, 0x39, 0x78, 0xca, 0x58, 0xf1, 0x86, 0xaf, 0x5f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfb, 0x37, 0xa4, 0x03, 0xf7, 0x6f, 0x88, 0x0f, 0x0e, 0xe7, 0x7c, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x00, 0xc7, 0x1d, 0x3c, 0x65, 0xac, 0x78, 0x83, 0x82, 0x60, 0x76, 0x83, 0x22, 0x5f, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x80, 0xe3, 0x07, 0x4e, 0xe0, 0xd0, 0xb1, 0x41, 0x09, 0x8f, 0xb9, 0xc1, 0xb9, 0x9d, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x80, 0x43, 0x3c, 0x70, 0x01, 0x87, 0xfc, 0xa0, 0xa0, 0xc8, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x13, 0x38, 0xfe, 0xe0, 0xa9, 0x95, 0xc5, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x14, 0xf9, 0xb2, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x02, 0x87, 0x6c, 0xe0, 0x04, 0x0e, 0x83, 0x0d, 0x6f, 0xeb, 0x0c, 0x4e, 0x1e, 0x3c, 0x0a, 0x18, 0x70, 0x0d, 0x0f, 0xee, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x09, 0x1c, 0x46, 0x03, 0x27, 0x70, 0xd8, 0x6e, 0x78, 0x5b, 0x67, 0x83, 0x26, 0xb2, 0xb6, 0x0e, 0x1e, 0x05, 0x0c, 0xb8, 0x06, 0xe7, 0x76, 0xbe, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x81, 0xc3, 0x7e, 0xe0, 0x04, 0x0e, 0x15, 0x07, 0xaf, 0x12, 0x06, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xe0, 0xb8, 0x83, 0xa7, 0x8c, 0x15, 0x6f, 0x50, 0x18, 0xaa, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x37, 0x70, 0x48, 0x06, 0x6e, 0xe0, 0x10, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x81, 0x43, 0x34, 0x70, 0x03, 0x87, 0xec, 0xf0, 0xb4, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x03, 0x87, 0x70, 0xe0, 0x06, 0x0e, 0xe9, 0x41, 0xb9, 0x2e, 0xdb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xc1, 0x71, 0x07, 0x4f, 0x19, 0x2b, 0xde, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0xa0, 0xc8, 0x97, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x23, 0x38, 0x24, 0x03, 0x47, 0x70, 0x08, 0x0f, 0x4e, 0x3a, 0x59, 0x6b, 0x78, 0x70, 0x67, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0xe0, 0x30, 0x18, 0x38, 0x82, 0xc3, 0x72, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x11, 0x1c, 0x16, 0x03, 0x47, 0x70, 0x18, 0x1d, 0x9c, 0xb1, 0x66, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x23, 0x38, 0xac, 0x06, 0x8e, 0xe0, 0x30, 0x3b, 0x3c, 0xad, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xc1, 0x61, 0x37, 0x70, 0x04, 0x87, 0xe1, 0x41, 0xc0, 0xb2, 0xb6, 0x06, 0xe7, 0x76, 0xbe, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x82, 0xc3, 0x7a, 0xe0, 0x08, 0x0e, 0x85, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0xe0, 0x30, 0x1f, 0x38, 0x82, 0x43, 0xdb, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x23, 0x38, 0xec, 0x07, 0x8e, 0xe0, 0x50, 0xb4, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x08, 0x0e, 0x05, 0x03, 0x47, 0x70, 0xe8, 0x38, 0x38, 0x63, 0xcd, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x47, 0x70, 0x28, 0x19, 0x38, 0x82, 0x43, 0xcb, 0xe1, 0x69, 0x9d, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x08, 0x0e, 0x35, 0x03, 0x47, 0x70, 0xe8, 0x39, 0x28, 0x2a, 0xc5, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0xe0, 0xd0, 0x34, 0x70, 0x04, 0x87, 0xb2, 0x83, 0xc3, 0x3e, 0x56, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x11, 0x1c, 0xea, 0x06, 0x8e, 0xe0, 0xd0, 0x77, 0x70, 0x38, 0xe7, 0xab, 0x59, 0x00, 0x9f, 0x39, 0xb4, 0x34, 0xb8, 0x96, 0x39, 0xba, 0x30, 0xba, 0x72, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x23, 0x43, 0xe8, 0xc1, 0x03, 0xb7, 0x8b, 0x1b, 0x80, 0xbf, 0x30, 0x36, 0x36, 0x90, 0xbb, 0x32, 0x90, 0x35, 0xb7, 0xb7, 0x3b, 0x90, 0x30, 0xb1, 0xb7, 0x3a, 0x3a, 0x90, 0x30, 0x10, 0xb8, 0xb2, 0x32, 0x79, 0x25, 0x00, 0x5e, 0x28, 0x09, 0x63, 0x4b, 0x2b, 0x73, 0xd3, 0x01, 0x71, 0x7b, 0x03, 0x81, 0x5a, 0x4a, 0x02, 0x21, 0x0b, 0xa3, 0x0b, 0x63, 0x01, 0x99, 0x7b, 0x03, 0x29, 0x73, 0x8b, 0xab, 0x2b, 0xab, 0x2b, 0x03, 0x09, 0x1b, 0xa3, 0x4b, 0x7b, 0x73, 0x9b, 0x03, 0xa1, 0x7b, 0x03, 0x81, 0x2b, 0x93, 0x33, 0x7b, 0x93, 0x6b, 0x03, 0x79, 0x73, 0x1b, 0x2b, 0x03, 0xb9, 0x2b, 0x03, 0x61, 0x2b, 0x0b, 0x93, 0x73, 0x03, 0x49, 0xa3, 0x97, 0x00, 0xfc, 0x2f, 0x59, 0x73, 0x7b, 0xbb, 0x73, 0xd3, 0x01, 0xb9, 0x2b, 0x03, 0x59, 0x73, 0x7b, 0xbb, 0x03, 0xa1, 0x43, 0x2b, 0x4b, 0x93, 0x03, 0x61, 0x4b, 0x33, 0x2b, 0x03, 0x09, 0x73, 0x23, 0x03, 0x81, 0xab, 0x13, 0x63, 0x4b, 0x1b, 0x03, 0x59, 0x2b, 0xcb, 0x9b, 0x63, 0x01, 0x99, 0x7b, 0x03, 0xb9, 0x2b, 0x03, 0x41, 0x0b, 0xb3, 0x2b, 0x03, 0x09, 0x03, 0x19, 0x43, 0x0b, 0x73, 0x73, 0x2b, 0x63, 0x6b, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0x81, 0xdb, 0xc5, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x53, 0xc4, 0x0d, 0x9c, 0x15, 0xf1, 0x1b, 0x1c, 0x20, 0x44, 0x37, 0x78, 0xe0, 0x76, 0xf1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x15, 0x71, 0x07, 0x6f, 0xb4, 0x2f, 0xde, 0x20, 0x68, 0x7f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa3, 0x22, 0x24, 0x03, 0x47, 0x45, 0x98, 0x6f, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x2a, 0x42, 0x34, 0x70, 0x54, 0x84, 0xc1, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x02, 0x9e, 0x30, 0xb6, 0xb4, 0x32, 0x77, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x2a, 0xc2, 0x62, 0xe0, 0xa8, 0x08, 0xeb, 0x0d, 0xff, 0xce, 0x2f, 0x80, 0x5f, 0x18, 0x5b, 0x5a, 0x99, 0x5b, 0x4b, 0xd8, 0x59, 0x99, 0x1b, 0x59, 0x58, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x57, 0x45, 0x48, 0x06, 0xae, 0x8a, 0x30, 0xde, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x55, 0x84, 0x68, 0xe0, 0xaa, 0x08, 0x83, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x05, 0x3c, 0x6b, 0x6e, 0x6f, 0x77, 0xee, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x55, 0x84, 0xc5, 0xc0, 0x55, 0x11, 0xb6, 0x1b, 0xfe, 0x9d, 0x5f, 0x83, 0x07, 0x18, 0x0c, 0x57, 0xcd, 0x1a, 0x3c, 0xf0, 0x73, 0x78, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x23, 0x43, 0xe8, 0xc1, 0x03, 0x3f, 0x87, 0x1b, 0x00, 0x1f, 0xe0, 0xca, 0xe4, 0xe6, 0xd2, 0xe6, 0xe8, 0xca, 0xdc, 0xe8, 0x40, 0xe6, 0xe8, 0xc2, 0xe8, 0xca, 0x40, 0xcc, 0xde, 0xe4, 0x40, 0xf8, 0xda, 0xca, 0xe6, 0xe6, 0xc2, 0xce, 0xca, 0x5a, 0xe0, 0xea, 0xda, 0xe0, 0x95, 0x00, 0xfc, 0x6f, 0x2a, 0x9b, 0x9b, 0x0b, 0x3b, 0x2b, 0x9b, 0x03, 0x89, 0xab, 0x2b, 0xab, 0x2b, 0x03, 0xa9, 0x83, 0x03, 0x49, 0x73, 0x03, 0xe1, 0x6b, 0x2b, 0x9b, 0x9b, 0x0b, 0x3b, 0x2b, 0x6b, 0x81, 0xab, 0x6b, 0x83, 0x3b, 0x99, 0x03, 0x71, 0xa9, 0x73, 0x9b, 0x2b, 0x73, 0xa3, 0x6b, 0x69, 0x2b, 0x9b, 0x9b, 0x0b, 0x3b, 0x2b, 0x9b, 0x03, 0xa9, 0x73, 0xa3, 0x4b, 0x63, 0x03, 0xa1, 0x43, 0x2b, 0xcb, 0x97, 0x00, 0x78, 0x60, 0x2c, 0xcc, 0x0d, 0x44, 0xac, 0x0c, 0x04, 0x2e, 0x6c, 0x6c, 0xad, 0x8c, 0x2e, 0x4d, 0xaf, 0x8c, 0x0c, 0x24, 0xcc, 0x8d, 0x0c, 0xc4, 0xac, 0x8c, 0x0c, 0x24, 0xcd, 0x8d, 0xee, 0x0d, 0x84, 0x0f, 0x2e, 0x6c, 0x6c, 0xad, 0x8c, 0xae, 0x05, 0xae, 0xae, 0x0d, 0x0e, 0xc4, 0xec, 0x4d, 0x0e, 0x64, 0xae, 0xcc, 0x8d, 0x2c, 0xcd, 0xed, 0xcc, 0x05, 0x04, 0xe4, 0x0a, 0xad, 0xcc, 0x0d, 0xe4, 0xae, 0x5c, 0x02, 0xf0, 0x1f, 0xee, 0x0d, 0x0e, 0x24, 0x0c, 0xa4, 0xad, 0x6c, 0x6e, 0x2e, 0xec, 0xac, 0x0c, 0xe4, 0xcd, 0xcc, 0x0c, 0xc4, 0xa5, 0xce, 0x6d, 0xae, 0xcc, 0x8d, 0xae, 0xa5, 0xad, 0x6c, 0x6e, 0x2e, 0xec, 0xac, 0x6c, 0x8e, 0x05, 0xe4, 0xae, 0x0c, 0x04, 0xae, 0x6e, 0x0e, 0x0d, 0x24, 0x6c, 0x0e, 0xa4, 0x2d, 0xcc, 0x2d, 0x0f, 0xc4, 0x4c, 0x2e, 0xec, 0xac, 0xad, 0xcc, 0x8d, 0x6e, 0x0e, 0x24, 0x6c, 0x5e, 0x02, 0xd0, 0xfa, 0xae, 0x0c, 0x64, 0x2c, 0xcc, 0x0d, 0x24, 0xcd, 0x8d, 0xee, 0x0d, 0x84, 0x0f, 0x2e, 0x6c, 0x6c, 0xad, 0x8c, 0xae, 0x05, 0xae, 0xae, 0x0d, 0x8e, 0x05, 0xe4, 0x0e, 0x2d, 0x6d, 0x0c, 0x0d, 0x64, 0xae, 0xcc, 0x8d, 0x6c, 0x0e, 0xa4, 0xcc, 0xae, 0x4c, 0x2e, 0x0f, 0x04, 0x2e, 0x6c, 0x6c, 0xad, 0x8c, 0x0e, 0x24, 0x8d, 0x0e, 0xa4, 0x2c, 0x8c, 0x6e, 0xce, 0x2d, 0x01, 0xd0, 0x00, 0x54, 0xd8, 0xd8, 0x5a, 0x19, 0xdd, 0x1c, 0x88, 0x5c, 0x99, 0x5a, 0xd9, 0x18, 0x5d, 0x19, 0x19, 0x88, 0x58, 0x1e, 0x08, 0x1f, 0x5c, 0xd8, 0xd8, 0x5a, 0x19, 0x5d, 0x0b, 0x5c, 0x5d, 0x1b, 0x1c, 0x48, 0x98, 0x5c, 0x19, 0x08, 0x1c, 0x5b, 0xd8, 0x58, 0x19, 0x19, 0x48, 0x9a, 0x1b, 0x88, 0x4b, 0x9d, 0xdb, 0x5c, 0x99, 0x1b, 0x5d, 0x8b, 0x99, 0x5c, 0xd8, 0x59, 0x5b, 0x99, 0x1b, 0xdd, 0x9c, 0x6b, 0x25, 0x00, 0xaf, 0xaf, 0xd0, 0xca, 0xdc, 0x40, 0xee, 0xca, 0x40, 0xd0, 0xca, 0xc2, 0xe4, 0x40, 0xc2, 0x40, 0xe0, 0xc2, 0xc6, 0xd6, 0xca, 0xe8, 0x40, 0xc2, 0xc6, 0xd6, 0x58, 0x40, 0xee, 0xca, 0x40, 0xe6, 0xca, 0xdc, 0xc8, 0x40, 0xd2, 0xe8, 0x40, 0xe8, 0xde, 0x40, 0xf8, 0xe0, 0xc2, 0xc6, 0xd6, 0xca, 0xe8, 0x5a, 0xe0, 0xea, 0xda, 0xe0, 0x40, 0xe8, 0xde, 0x40, 0xc4, 0xca, 0x25, 0x00, 0x9d, 0xe4, 0xca, 0xda, 0xde, 0xec, 0xca, 0xc8, 0x40, 0xcc, 0xe4, 0xde, 0xda, 0x40, 0xd2, 0xe8, 0xe6, 0x40, 0xe2, 0xea, 0xca, 0xea, 0xca, 0x40, 0xde, 0xcc, 0x40, 0xea, 0xdc, 0xc2, 0xc6, 0xd6, 0xca, 0xc8, 0x40, 0xe0, 0xc2, 0xc6, 0xd6, 0xca, 0xe8, 0xe6, 0x5c, 0x2b, 0x01, 0xf8, 0x7f, 0x85, 0x56, 0xe6, 0x06, 0x72, 0x57, 0x06, 0x82, 0x56, 0x16, 0x26, 0x07, 0x12, 0x06, 0xd2, 0x56, 0x36, 0x37, 0x17, 0x76, 0x56, 0x06, 0x12, 0x36, 0xb6, 0x06, 0x82, 0x02, 0xf7, 0x36, 0x97, 0x46, 0x97, 0x66, 0x57, 0x06, 0xf2, 0x26, 0x07, 0xe2, 0x56, 0x76, 0x16, 0x46, 0x97, 0x66, 0x57, 0x96, 0xc2, 0x02, 0x72, 0x57, 0x06, 0x42, 0x27, 0x57, 0x16, 0x46, 0x07, 0x42, 0x87, 0x16, 0x46, 0x2f, 0x01, 0xf8, 0x1f, 0x36, 0x07, 0x42, 0x87, 0xf6, 0x56, 0x77, 0x86, 0x06, 0x12, 0xc6, 0xc6, 0x06, 0x62, 0x26, 0x17, 0x76, 0xd6, 0x56, 0xe6, 0x46, 0x37, 0x07, 0x82, 0x16, 0x66, 0x57, 0x06, 0x22, 0x56, 0x56, 0xe6, 0x06, 0x12, 0x36, 0xb6, 0x56, 0x46, 0xe6, 0x02, 0x02, 0x92, 0x64, 0x06, 0x42, 0x87, 0x96, 0x36, 0x07, 0xd2, 0x56, 0x36, 0x37, 0x17, 0x76, 0x56, 0x06, 0x92, 0x36, 0x07, 0xe2, 0xf6, 0x46, 0x2f, 0x01, 0xf8, 0xef, 0x32, 0x56, 0x27, 0x27, 0x57, 0xe6, 0x46, 0xc7, 0x02, 0x42, 0x87, 0x56, 0xe6, 0x06, 0x42, 0x87, 0x96, 0x36, 0x07, 0x12, 0x36, 0xb6, 0x06, 0x92, 0x36, 0x07, 0x62, 0xf6, 0x26, 0x07, 0x12, 0x06, 0x62, 0x56, 0x47, 0x57, 0x27, 0x57, 0x06, 0xd2, 0x56, 0x36, 0x37, 0x17, 0x76, 0x56, 0x06, 0x12, 0xe6, 0x46, 0x06, 0xe2, 0x32, 0x56, 0x27, 0x27, 0x57, 0xe6, 0x46, 0x07, 0x82, 0x16, 0x36, 0x2f, 0x01, 0xe8, 0xef, 0xf6, 0x46, 0x07, 0x92, 0x57, 0x46, 0x07, 0x22, 0x56, 0x56, 0xe6, 0x06, 0x12, 0x36, 0xb6, 0x56, 0x46, 0xc6, 0x02, 0x32, 0xf7, 0x06, 0x72, 0x57, 0x06, 0x02, 0xc7, 0x16, 0x36, 0x56, 0x06, 0x42, 0x87, 0x56, 0x06, 0x12, 0x36, 0xb6, 0x06, 0x92, 0xe6, 0x06, 0xe2, 0x12, 0x57, 0x57, 0x56, 0x57, 0x46, 0xd6, 0xd2, 0x56, 0x36, 0x37, 0x17, 0x76, 0x56, 0xd6, 0x12, 0x36, 0xb6, 0x36, 0xe7, 0x5a, 0x09, 0xc0, 0xff, 0x24, 0x33, 0x90, 0xbb, 0x32, 0x10, 0xb4, 0xb2, 0x30, 0x39, 0x90, 0x30, 0x90, 0xb6, 0xb2, 0xb9, 0xb9, 0xb0, 0xb3, 0x32, 0x90, 0xb0, 0xb1, 0x35, 0x10, 0xb1, 0x32, 0xb3, 0x37, 0xb9, 0x32, 0x90, 0xbb, 0xb2, 0x13, 0xbb, 0x32, 0x90, 0xb9, 0x32, 0x37, 0x3a, 0x90, 0x30, 0x36, 0x36, 0x10, 0x3a, 0xb4, 0x32, 0x10, 0x33, 0xb9, 0xb0, 0xb3, 0xb6, 0x32, 0x37, 0xba, 0x39, 0x10, 0xb3, 0x37, 0x79, 0x09, 0x80, 0x0f, 0xe8, 0xd0, 0xc2, 0xe8, 0x40, 0xda, 0xca, 0xe6, 0xe6, 0xc2, 0xce, 0xca, 0x58, 0x40, 0xc6, 0xd8, 0xca, 0xc2, 0xe4, 0x40, 0x5c, 0xea, 0xdc, 0xe6, 0xca, 0xdc, 0xe8, 0x5a, 0xcc, 0xe4, 0xc2, 0xce, 0xda, 0xca, 0xdc, 0xe8, 0xe6, 0x40, 0xc2, 0xdc, 0xc8, 0x40, 0xd0, 0xc2, 0xec, 0xca, 0x40, 0xf8, 0xe0, 0xc2, 0xc6, 0xd6, 0xca, 0xe8, 0x5a, 0xe0, 0xea, 0xda, 0xe0, 0x40, 0xc8, 0xca, 0xd8, 0xca, 0xe8, 0xca, 0x25, 0x00, 0x3e, 0x08, 0x63, 0x63, 0x03, 0x99, 0x2b, 0x73, 0xa3, 0x03, 0x31, 0x93, 0x0b, 0x3b, 0x6b, 0x2b, 0x73, 0xa3, 0x9b, 0x03, 0x31, 0x93, 0x7b, 0x6b, 0x03, 0xa1, 0x43, 0x2b, 0x03, 0x69, 0x2b, 0x9b, 0x9b, 0x0b, 0x3b, 0x2b, 0x73, 0x01, 0x49, 0x32, 0x03, 0xa1, 0x43, 0x4b, 0x9b, 0x03, 0x29, 0x0b, 0x93, 0x63, 0xcb, 0x03, 0x69, 0x2b, 0x9b, 0x9b, 0x0b, 0x3b, 0x2b, 0x03, 0x09, 0x1b, 0x5b, 0x03, 0xb9, 0x0b, 0x9b, 0x97, 0x00, 0xbc, 0x86, 0x7b, 0x9b, 0x4b, 0xa3, 0x4b, 0xb3, 0x2b, 0x63, 0x01, 0x81, 0x93, 0x4b, 0x73, 0xa3, 0x03, 0x49, 0xa3, 0x03, 0x79, 0xab, 0xa3, 0x03, 0x11, 0x2b, 0x1b, 0x0b, 0xab, 0x9b, 0x2b, 0x03, 0x49, 0xa3, 0x03, 0x49, 0x73, 0x23, 0x4b, 0x1b, 0x0b, 0xa3, 0x2b, 0x9b, 0x03, 0xa1, 0x43, 0x2b, 0x03, 0x81, 0x2b, 0x2b, 0x93, 0x03, 0x49, 0x9b, 0x03, 0x71, 0x7b, 0xa3, 0x97, 0x00, 0x3a, 0xc4, 0xca, 0xd0, 0xc2, 0xec, 0xd2, 0xdc, 0xce, 0x40, 0xe0, 0xe4, 0xde, 0xe0, 0xca, 0xe4, 0xd8, 0xf2, 0x5c, 0x2b, 0x01, 0x78, 0x9f, 0x64, 0x06, 0x42, 0x87, 0x56, 0x06, 0x12, 0x36, 0xb6, 0x06, 0x92, 0x36, 0x07, 0x62, 0xf6, 0x26, 0x07, 0x42, 0x87, 0x56, 0x06, 0x32, 0x56, 0x27, 0x27, 0x57, 0xe6, 0x46, 0x07, 0xd2, 0x56, 0x36, 0x37, 0x17, 0x76, 0x56, 0xc6, 0x02, 0x82, 0x16, 0x66, 0x57, 0x06, 0xc2, 0x07, 0x17, 0x36, 0xb6, 0x56, 0x46, 0xd7, 0x02, 0x57, 0xd7, 0x06, 0x07, 0x42, 0x56, 0xc6, 0x56, 0x46, 0x57, 0x2e, 0x01, 0x78, 0x1b, 0xc6, 0xc6, 0x06, 0x02, 0x17, 0x36, 0xb6, 0x56, 0x46, 0x37, 0x07, 0x62, 0x26, 0xf7, 0xd6, 0x06, 0x42, 0x87, 0x56, 0x06, 0xd2, 0x56, 0x36, 0x37, 0x17, 0x76, 0x56, 0xc6, 0x02, 0x72, 0x96, 0x66, 0x57, 0x06, 0x42, 0x87, 0x56, 0x06, 0xd2, 0x56, 0x36, 0x37, 0x17, 0x76, 0x56, 0x06, 0x12, 0x36, 0xb6, 0x06, 0x22, 0x16, 0x36, 0xb6, 0x2e, 0x01, 0xf8, 0x4e, 0xf7, 0x06, 0x42, 0x87, 0x56, 0x06, 0x32, 0xc6, 0x96, 0x56, 0xe6, 0x46, 0x07, 0x62, 0x17, 0xe6, 0x56, 0xc6, 0x02, 0x92, 0xe6, 0x36, 0x26, 0x57, 0xd6, 0x56, 0xe6, 0x46, 0x07, 0xe2, 0x32, 0x56, 0x27, 0x27, 0x57, 0xe6, 0x46, 0xc7, 0x02, 0x12, 0xe6, 0x46, 0x06, 0x32, 0x86, 0x56, 0x36, 0xb6, 0x06, 0x92, 0x66, 0x06, 0x42, 0x87, 0x96, 0x36, 0x07, 0xe2, 0x56, 0x86, 0x47, 0x2f, 0x01, 0x78, 0xdf, 0x56, 0x36, 0x37, 0x17, 0x76, 0x56, 0x06, 0x92, 0x36, 0x07, 0x92, 0xe6, 0x06, 0xe2, 0x12, 0x57, 0x57, 0x56, 0x57, 0x46, 0xd6, 0xd2, 0x56, 0x36, 0x37, 0x17, 0x76, 0x56, 0xd6, 0x12, 0x36, 0xb6, 0x36, 0xe7, 0x02, 0x02, 0x92, 0x64, 0x06, 0x92, 0x46, 0x07, 0x92, 0x36, 0xc7, 0x02, 0x52, 0xd6, 0x96, 0x46, 0x07, 0x42, 0x87, 0x56, 0x06, 0xd2, 0x56, 0x36, 0x37, 0x17, 0x76, 0x56, 0x2e, 0x01, 0x78, 0x8f, 0xe2, 0x96, 0x12, 0x36, 0xb6, 0xc6, 0x02, 0x92, 0xe6, 0x36, 0x26, 0x57, 0xd6, 0x56, 0xe6, 0x46, 0x07, 0xe2, 0x32, 0x56, 0x27, 0x27, 0x57, 0xe6, 0x46, 0xc7, 0x02, 0x12, 0xe6, 0x46, 0x06, 0x32, 0x86, 0x56, 0x36, 0xb6, 0x06, 0x42, 0x87, 0x56, 0x06, 0xe2, 0x56, 0x86, 0x47, 0x07, 0xd2, 0x56, 0x36, 0x37, 0x17, 0x76, 0x56, 0xe6, 0x02, 0x02, 0x22, 0x55, 0x06, 0x57, 0x16, 0x46, 0x2f, 0x01, 0xe8, 0x50, 0xe7, 0x46, 0x97, 0xc6, 0x06, 0xe2, 0x32, 0x56, 0x27, 0x27, 0x57, 0xe6, 0x46, 0x07, 0x92, 0x36, 0x07, 0xe2, 0xf6, 0x46, 0x07, 0x62, 0x56, 0xc7, 0xc6, 0x96, 0x07, 0x12, 0x36, 0xb6, 0x56, 0x46, 0xe6, 0x5a, 0x09, 0x40, 0x17, 0x2a, 0xb4, 0x32, 0x10, 0xb3, 0x37, 0x36, 0xb6, 0xb7, 0xbb, 0x34, 0xb7, 0x33, 0x90, 0xb2, 0xb8, 0xba, 0x30, 0xba, 0xb4, 0x37, 0x37, 0x90, 0xb4, 0x39, 0x90, 0x30, 0xb6, 0xbb, 0xb0, 0xbc, 0x39, 0x10, 0x3a, 0xb9, 0xba, 0x32, 0xbd, 0x04, 0xe0, 0x9f, 0x8b, 0x5b, 0x19, 0x1e, 0x1d, 0x48, 0x0b, 0x88, 0xcb, 0x58, 0x9d, 0x9c, 0x5c, 0x99, 0x1b, 0x1d, 0x48, 0x4f, 0x0f, 0x88, 0x5b, 0x5d, 0x9b, 0x58, 0x99, 0x1c, 0xc8, 0x9b, 0x19, 0x48, 0x5b, 0xd9, 0xdc, 0x5c, 0xd8, 0x59, 0xd9, 0x1c, 0x48, 0x9a, 0x1b, 0x88, 0x19, 0x5b, 0xda, 0x19, 0x1a, 0xdd, 0x4a, 0x00, 0x1e, 0x07, 0xd1, 0x81, 0xd0, 0xa1, 0x95, 0x81, 0x94, 0xb9, 0x91, 0x81, 0xbc, 0x99, 0x81, 0x84, 0x81, 0xd0, 0x85, 0xcd, 0xad, 0xb1, 0x80, 0xf0, 0xb5, 0x95, 0xcd, 0xcd, 0x85, 0x9d, 0x95, 0xb5, 0xc0, 0xd5, 0xb5, 0xc1, 0x81, 0xcc, 0x95, 0xb9, 0x91, 0xcd, 0x81, 0x84, 0x81, 0x94, 0xa0, 0x85, 0xb1, 0xd1, 0x81, 0xd0, 0x85, 0xcd, 0xad, 0x81, 0xd0, 0xbd, 0x4b, 0x00, 0x7c, 0xc0, 0x07, 0x17, 0x36, 0xb6, 0x56, 0x46, 0xd7, 0x02, 0x57, 0xd7, 0x06, 0xc7, 0x02, 0x72, 0x87, 0x96, 0x36, 0x86, 0x06, 0x32, 0x16, 0xe6, 0x06, 0x42, 0x27, 0x97, 0x76, 0x76, 0x56, 0x26, 0x07, 0x12, 0x06, 0x42, 0x97, 0xd6, 0x56, 0x26, 0x07, 0x42, 0xf7, 0x06, 0x22, 0x56, 0x06, 0x32, 0x57, 0x46, 0x07, 0xf2, 0x26, 0x07, 0x32, 0xc6, 0x56, 0x16, 0x26, 0x57, 0x46, 0x06, 0x22, 0x16, 0x36, 0x57, 0x46, 0x2e, 0x01, 0xf0, 0xc0, 0x9b, 0x1b, 0xc8, 0xd8, 0x9b, 0xdb, 0x59, 0xd9, 0x1c, 0x5d, 0xda, 0x9b, 0x1b, 0xc8, 0xd8, 0x9b, 0x1b, 0x9d, 0xdc, 0x1b, 0x1b, 0xc8, 0x58, 0x18, 0xdb, 0x58, 0x1d, 0x5b, 0x18, 0x5d, 0xda, 0x9b, 0xdb, 0x9c, 0x0b, 0xc8, 0x15, 0x5a, 0x99, 0x1b, 0x08, 0x1d, 0x5a, 0x19, 0x08, 0x5d, 0x5a, 0x5b, 0x99, 0x1c, 0x88, 0x59, 0x9a, 0x5c, 0xd9, 0x1c, 0x0b, 0x48, 0x1a, 0x1d, 0xc8, 0x5d, 0x1a, 0x1b, 0xbb, 0x04, 0xa0, 0xcd, 0x59, 0x99, 0x5b, 0x99, 0x5c, 0x18, 0x1b, 0x5b, 0x1e, 0xc8, 0x58, 0x58, 0xdd, 0x5c, 0x19, 0x48, 0x18, 0x08, 0x5c, 0xd8, 0xd8, 0x5a, 0x19, 0x1d, 0x08, 0xdd, 0x1b, 0x88, 0x58, 0x19, 0x88, 0x5c, 0x59, 0xcb, 0x5c, 0x99, 0x1b, 0x9d, 0x6b, 0x25, 0x00, 0x3e, 0x68, 0x2a, 0x9b, 0x9b, 0x0b, 0x3b, 0x2b, 0x03, 0x99, 0x2b, 0x8b, 0xab, 0x2b, 0x73, 0x1b, 0x2b, 0x03, 0x71, 0xab, 0x6b, 0x13, 0x2b, 0x93, 0x9b, 0x03, 0x99, 0xa3, 0x0b, 0x93, 0xa3, 0x03, 0x09, 0xa3, 0x03, 0x89, 0x01, 0x99, 0x7b, 0x03, 0xa1, 0x43, 0x0b, 0xa3, 0x03, 0xa1, 0x43, 0x2b, 0x03, 0x31, 0x4b, 0x93, 0x9b, 0xa3, 0x03, 0x69, 0x2b, 0x9b, 0x9b, 0x0b, 0x3b, 0x2b, 0x03, 0xb9, 0x4b, 0x63, 0x63, 0x97, 0x00, 0xb4, 0x17, 0x2b, 0x03, 0x39, 0x93, 0x2b, 0x0b, 0xa3, 0x2b, 0x93, 0x03, 0xa1, 0x43, 0x0b, 0x73, 0x03, 0x71, 0x61, 0x0b, 0x9b, 0xa3, 0x6b, 0x09, 0x1b, 0x5b, 0x2b, 0x23, 0x73, 0x69, 0x2b, 0x9b, 0x9b, 0x0b, 0x3b, 0x2b, 0x6b, 0x99, 0x4b, 0x73, 0x5b, 0x6b, 0x99, 0xa3, 0x0b, 0xa3, 0x2b, 0x03, 0x79, 0x73, 0x03, 0xa1, 0x43, 0x2b, 0x03, 0x91, 0x2b, 0x1b, 0x2b, 0x4b, 0xb3, 0x2b, 0x93, 0x73, 0xad, 0x04, 0xe0, 0xfd, 0x58, 0x9d, 0x9c, 0x5c, 0x99, 0x1b, 0x9d, 0x0e, 0xc8, 0x5c, 0x59, 0x5c, 0x5d, 0x99, 0xdb, 0x58, 0x19, 0x88, 0x5b, 0x5d, 0x9b, 0x58, 0x99, 0x1c, 0xc8, 0x9b, 0x19, 0x48, 0x59, 0x98, 0x1c, 0x5b, 0x5a, 0xd9, 0x1c, 0x1d, 0x48, 0x5b, 0xd9, 0xdc, 0x5c, 0xd8, 0x59, 0x19, 0xc8, 0x5c, 0x99, 0x1b, 0x1d, 0xc8, 0x9b, 0x1c, 0x88, 0x58, 0x59, 0x9a, 0xdb, 0x19, 0xc8, 0x5c, 0x99, 0x1b, 0xbd, 0x04, 0xe0, 0x99, 0x5b, 0x19, 0x1e, 0x9d, 0x0e, 0xc8, 0x5c, 0x59, 0x5c, 0x5d, 0x99, 0xdb, 0x58, 0x19, 0x88, 0x5b, 0x5d, 0x9b, 0x58, 0x99, 0x1c, 0xc8, 0x9b, 0x19, 0x88, 0x5b, 0x19, 0x1e, 0x1d, 0x48, 0x5b, 0xd9, 0xdc, 0x5c, 0xd8, 0x59, 0x19, 0x08, 0xdd, 0x1b, 0xc8, 0x5c, 0x99, 0x1b, 0xb9, 0x04, 0xe0, 0x73, 0x9d, 0xdb, 0x5c, 0x99, 0x1b, 0x5d, 0x4b, 0x5b, 0xd9, 0xdc, 0x5c, 0xd8, 0x59, 0xd9, 0x9c, 0x0e, 0x48, 0x5b, 0xd9, 0xdc, 0x5c, 0xd8, 0x59, 0xd9, 0x1c, 0x08, 0xdd, 0x1b, 0x88, 0x58, 0x19, 0xc8, 0x5c, 0x99, 0x1b, 0x1d, 0x48, 0x98, 0x19, 0x5d, 0x99, 0x1c, 0xc8, 0x58, 0x9d, 0x9c, 0x5c, 0x99, 0x1b, 0x1d, 0x48, 0x5b, 0xd9, 0xdc, 0x5c, 0xd8, 0x59, 0xb9, 0x04, 0xc0, 0x07, 0x75, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x2d, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x20, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x20, 0x77, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0xe7, 0x12, 0x00, 0x3f, 0xc4, 0xd5, 0x95, 0xd5, 0x95, 0x91, 0xb5, 0xb4, 0x95, 0xcd, 0xcd, 0x85, 0x9d, 0x95, 0xb5, 0x84, 0x8d, 0xad, 0xcd, 0xe9, 0x80, 0x98, 0xd5, 0xd1, 0xd5, 0xc9, 0x95, 0x81, 0xb4, 0x95, 0xcd, 0xcd, 0x85, 0x9d, 0x95, 0x81, 0x84, 0x8d, 0xad, 0xcd, 0x81, 0xd0, 0xbd, 0x81, 0x88, 0x95, 0x81, 0x84, 0xc1, 0xc1, 0xb1, 0xa5, 0x95, 0x91, 0x81, 0x84, 0x99, 0xd1, 0x95, 0xc9, 0x81, 0x8c, 0xd5, 0xc9, 0xc9, 0x95, 0xb9, 0xd1, 0x4b, 0x00, 0xbe, 0xc2, 0x85, 0x8d, 0xad, 0x95, 0xd1, 0xb5, 0xc0, 0xd5, 0xb5, 0xc1, 0xb5, 0xcc, 0xd1, 0x85, 0xd1, 0x95, 0xe9, 0x80, 0xcc, 0xd1, 0x85, 0xd1, 0x95, 0x81, 0xbc, 0x99, 0x81, 0x8c, 0xbd, 0xc9, 0xc9, 0x95, 0xcd, 0xc1, 0xbd, 0xb9, 0x91, 0xa5, 0xb9, 0x9d, 0x81, 0xf0, 0xc1, 0x85, 0x8d, 0xad, 0x95, 0xd1, 0xb5, 0xc0, 0xd5, 0xb5, 0xc1, 0xb5, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0xc0, 0xcf, 0xe1, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x81, 0xe2, 0x06, 0x4e, 0xa1, 0xf8, 0x0d, 0x0e, 0x10, 0xa2, 0x1b, 0x3c, 0xf0, 0x73, 0x78, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0xa0, 0xb8, 0x83, 0x27, 0xb3, 0x1c, 0x6f, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x82, 0x42, 0x32, 0x70, 0x04, 0x85, 0x82, 0x0d, 0x7f, 0x2e, 0x0d, 0xf0, 0x8e, 0xd5, 0xc9, 0xc9, 0x95, 0xb9, 0xd1, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x04, 0x85, 0xc5, 0xc1, 0x6b, 0x65, 0x8e, 0x37, 0x08, 0xa0, 0xb3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x82, 0xc2, 0xe4, 0xe0, 0xb5, 0x32, 0xc7, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0xa0, 0xb0, 0x19, 0x38, 0x82, 0xc2, 0xfc, 0xe0, 0x29, 0xcb, 0xc3, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x04, 0x85, 0xfd, 0xc1, 0x6b, 0x65, 0x8e, 0x0f, 0x8f, 0xc9, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x57, 0x50, 0x48, 0x06, 0xae, 0xa0, 0xb0, 0xde, 0xf0, 0xe7, 0xd2, 0x06, 0xeb, 0x87, 0x6b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x0a, 0x0a, 0xf1, 0xc1, 0xd3, 0x82, 0x8e, 0x37, 0x08, 0xa0, 0xb3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x82, 0x42, 0x7e, 0xf0, 0xb4, 0xa0, 0xe3, 0x0d, 0x7f, 0xd1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x57, 0x50, 0x18, 0x0c, 0x5c, 0x41, 0x61, 0x7b, 0xf0, 0x94, 0xe5, 0xe1, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x82, 0xc2, 0xf8, 0xe0, 0x69, 0x41, 0xc7, 0x87, 0xc7, 0x64, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x33, 0x28, 0x24, 0x03, 0x67, 0x50, 0xa8, 0xd9, 0xf0, 0xe7, 0xd2, 0x00, 0xde, 0x75, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x2d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0xf3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x41, 0x61, 0x79, 0xf0, 0xc2, 0xa7, 0xe3, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x83, 0xc2, 0x74, 0xe0, 0x0c, 0x0a, 0xeb, 0x83, 0x87, 0x1f, 0x30, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x67, 0x50, 0x98, 0x0f, 0x9c, 0x41, 0xa1, 0x65, 0xc3, 0xbf, 0xf3, 0x0b, 0xf0, 0xb6, 0x95, 0xcd, 0xcd, 0x85, 0x9d, 0x95, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x07, 0x85, 0x64, 0xe0, 0x0e, 0x0a, 0x85, 0x1b, 0xfe, 0x5c, 0x1a, 0xc0, 0xbf, 0xce, 0x6d, 0xae, 0xcc, 0x8d, 0xae, 0xc5, 0x4c, 0x2e, 0xec, 0xac, 0xad, 0xcc, 0x8d, 0x6e, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x3b, 0x28, 0x4c, 0x0f, 0x9e, 0xdd, 0x75, 0xbc, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x77, 0x50, 0xd8, 0x0e, 0xdc, 0x41, 0x61, 0x7f, 0x10, 0x52, 0x26, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x1d, 0x14, 0x0a, 0x06, 0xee, 0xa0, 0xd0, 0xb7, 0xe1, 0xdf, 0xf9, 0x05, 0xf0, 0x9e, 0xa3, 0x0b, 0xa3, 0x4b, 0x1b, 0x6b, 0x31, 0x93, 0x0b, 0x3b, 0x6b, 0x2b, 0x73, 0xa3, 0xab, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x10, 0x0a, 0xc9, 0xc0, 0x21, 0x14, 0x2a, 0x37, 0xfc, 0xb9, 0x34, 0x00, 0x2f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x2d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2d, 0x61, 0x63, 0x6b, 0xf3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x42, 0x61, 0x7d, 0xf0, 0x9e, 0xb6, 0xe3, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x84, 0xc2, 0x7c, 0xe0, 0x10, 0x0a, 0x0d, 0x07, 0x25, 0x62, 0xfd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x08, 0x85, 0x8a, 0x81, 0x43, 0x28, 0xb4, 0x1d, 0x3c, 0x65, 0x79, 0x78, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x84, 0x42, 0xdd, 0xc0, 0x21, 0x14, 0x1a, 0x37, 0xfc, 0x3b, 0xbf, 0x80, 0x17, 0x36, 0xb6, 0x56, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x25, 0x14, 0x92, 0x81, 0x4b, 0x28, 0x6c, 0x37, 0xfc, 0xb9, 0x34, 0x00, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x2d, 0x70, 0x75, 0x6d, 0x70, 0x2d, 0x73, 0x74, 0x61, 0x74, 0xe5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x42, 0x21, 0x3a, 0x78, 0x98, 0xdf, 0xf1, 0x86, 0x7f, 0xe7, 0xd7, 0xe0, 0x5d, 0x7f, 0xc7, 0xd5, 0xe1, 0x14, 0x5b, 0x00, 0x9f, 0x31, 0xb4, 0xba, 0xb6, 0x96, 0x39, 0xba, 0x30, 0xba, 0x72, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0x81, 0x85, 0xc7, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x52, 0xc6, 0x0d, 0x5c, 0x95, 0xf1, 0x1b, 0x1c, 0x20, 0x44, 0x37, 0x78, 0x60, 0xe1, 0xf1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x94, 0x71, 0x07, 0x6f, 0x50, 0x3c, 0xde, 0x20, 0x68, 0x7f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9b, 0x32, 0x24, 0x03, 0x37, 0x65, 0x18, 0x6f, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x29, 0x43, 0x34, 0x70, 0x53, 0x86, 0xc1, 0xc1, 0xc3, 0x15, 0x8c, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9b, 0x32, 0x2c, 0x06, 0x6e, 0xca, 0xb0, 0xdd, 0xf0, 0xef, 0xfc, 0x02, 0xf8, 0x98, 0xc9, 0x95, 0xb9, 0xb5, 0xcc, 0xd1, 0x85, 0xd1, 0x95, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x54, 0x86, 0x64, 0xe0, 0xa8, 0x0c, 0xe3, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x47, 0x65, 0x88, 0x06, 0x8e, 0xca, 0x30, 0x38, 0x78, 0xef, 0x7f, 0xf1, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x54, 0x86, 0xc5, 0xc0, 0x51, 0x19, 0xb6, 0x1b, 0xfe, 0x9d, 0x5f, 0x00, 0x9f, 0x37, 0x3b, 0xb7, 0xb4, 0x96, 0x39, 0xba, 0x30, 0xba, 0xb2, 0x6a, 0x05, 0xfc, 0xbb, 0xb0, 0x34, 0x76, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x23, 0x43, 0xe8, 0xc1, 0x23, 0x44, 0x8f, 0x1b, 0x80, 0x37, 0xba, 0xb0, 0xb3, 0xb3, 0x32, 0x32, 0x10, 0xb9, 0xb2, 0xb8, 0xba, 0xb2, 0x39, 0x3a, 0x10, 0x33, 0xb9, 0xb0, 0xb3, 0xb6, 0x32, 0x37, 0xba, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0x47, 0x88, 0x1e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb1, 0x12, 0x37, 0x70, 0xad, 0xc4, 0x6f, 0x10, 0xb4, 0x3f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb1, 0x12, 0x92, 0x81, 0x63, 0x25, 0x4c, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x2b, 0x21, 0x1a, 0x38, 0x56, 0x42, 0x78, 0x10, 0xd2, 0xa9, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb1, 0x12, 0xd2, 0x81, 0x63, 0x25, 0x2c, 0x36, 0xfc, 0x3b, 0xbf, 0x06, 0xcf, 0x34, 0x20, 0xae, 0x3a, 0x9c, 0x62, 0x6b, 0x90, 0x42, 0xe7, 0xb3, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0xc1, 0x91, 0x21, 0xf4, 0x20, 0x85, 0xce, 0xa7, 0x01, 0xf0, 0x4e, 0x2e, 0xec, 0x0e, 0x24, 0x8c, 0xee, 0xad, 0x0d, 0x84, 0xee, 0x0d, 0xe4, 0x4d, 0x0e, 0xc4, 0x4c, 0xee, 0xad, 0x0d, 0xa4, 0xce, 0x2d, 0x0d, 0x8f, 0x05, 0x44, 0xae, 0x0c, 0x4e, 0xae, 0x6c, 0xae, 0xcc, 0x8d, 0x2e, 0xcd, 0xed, 0x0c, 0x24, 0x0c, 0x04, 0x2e, 0x6c, 0x6c, 0xad, 0x8c, 0x6e, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0x20, 0x85, 0xce, 0x67, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xca, 0x7c, 0x48, 0x07, 0xca, 0x7c, 0x18, 0x6d, 0xf8, 0xa2, 0x66, 0x43, 0x1d, 0x0f, 0xf8, 0xea, 0xf0, 0xc4, 0xd8, 0xde, 0xc4, 0xc3, 0x29, 0xb6, 0x00, 0x3e, 0x64, 0x65, 0x61, 0x64, 0x2d, 0x74, 0x69, 0x6d, 0x65, 0xf2, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0xcb, 0x86, 0x8f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x7e, 0x0c, 0x9b, 0x81, 0xfb, 0x31, 0x34, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x1f, 0xc3, 0x68, 0xe0, 0x7e, 0x0c, 0xcb, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x32, 0x75, 0x8f, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x1f, 0xc3, 0xea, 0xe0, 0xb9, 0xca, 0xc7, 0x07, 0x4f, 0x4f, 0xf7, 0x58, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xc7, 0x30, 0x1d, 0xb8, 0x1f, 0xc3, 0x7e, 0xc3, 0x9f, 0x4b, 0x1b, 0xbc, 0xa2, 0x52, 0x64, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xc7, 0xb0, 0x3d, 0x78, 0x34, 0xf4, 0xf1, 0xc1, 0xbb, 0x2d, 0x45, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfb, 0x31, 0x14, 0x0c, 0xdc, 0x8f, 0xa1, 0x68, 0xc3, 0x9f, 0x4b, 0x1b, 0x9c, 0x45, 0x51, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x7e, 0x0c, 0x2d, 0x07, 0x6f, 0xb7, 0x3e, 0x3e, 0x38, 0xf2, 0xb5, 0x76, 0x38, 0xc5, 0xd6, 0x60, 0x19, 0x55, 0xf7, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x32, 0xaa, 0xee, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x0c, 0xc2, 0x6c, 0xe0, 0x32, 0x08, 0x0d, 0x1b, 0xbe, 0xa8, 0xd9, 0x50, 0xc7, 0x03, 0x7c, 0xea, 0xee, 0xcc, 0xe4, 0xc2, 0xce, 0xda, 0xca, 0xdc, 0xe8, 0xd5, 0xe0, 0xf5, 0x5a, 0xc7, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0xaf, 0xd7, 0x3a, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xca, 0x1f, 0x37, 0x50, 0xfc, 0xe3, 0x37, 0x08, 0xda, 0x9f, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xf2, 0x87, 0x64, 0xa0, 0xf2, 0x87, 0xd5, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xca, 0x1f, 0xa2, 0x81, 0xca, 0x1f, 0xf2, 0x83, 0xc7, 0x6b, 0x0f, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x95, 0x3f, 0x0c, 0x06, 0x2a, 0x7f, 0x18, 0x6d, 0xf8, 0x77, 0x7e, 0x83, 0xf7, 0x5e, 0x8b, 0xd6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xfa, 0x43, 0x32, 0x50, 0xfa, 0xc3, 0x74, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xe9, 0x0f, 0xd1, 0x40, 0xe9, 0x0f, 0xf9, 0xc1, 0xf3, 0x3b, 0xf1, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd2, 0x1f, 0x06, 0x03, 0xa5, 0x3f, 0x2c, 0x37, 0xfc, 0xb9, 0xb4, 0x41, 0x13, 0xda, 0xd7, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xfa, 0xc3, 0xf0, 0xe0, 0x85, 0xf6, 0xc7, 0x07, 0x61, 0x3a, 0xd6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xfb, 0x43, 0x32, 0x50, 0xfb, 0x43, 0xd9, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xda, 0x1f, 0xa2, 0x81, 0xda, 0x1f, 0x76, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x0b, 0xf0, 0x73, 0x0b, 0xc3, 0x83, 0x63, 0x0b, 0x73, 0x0b, 0xa3, 0x4b, 0x7b, 0x73, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xda, 0x1f, 0x86, 0x03, 0xb5, 0x3f, 0x94, 0x6c, 0xf8, 0x73, 0x69, 0x83, 0x37, 0x1d, 0x0f, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xed, 0x0f, 0xcb, 0x83, 0x97, 0x0f, 0x20, 0x1f, 0x3c, 0x65, 0x79, 0x78, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xfd, 0xa1, 0x65, 0xa0, 0xf6, 0x87, 0xae, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x28, 0x7d, 0xbc, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xfd, 0xa1, 0xe6, 0xe0, 0xf9, 0x09, 0xc8, 0x07, 0x2f, 0x2e, 0xaf, 0xac, 0xd5, 0xe0, 0x5d, 0x7f, 0xc7, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x1c, 0x19, 0x42, 0x0f, 0xde, 0xf5, 0x77, 0xdc, 0x00, 0x78, 0x00, 0x57, 0x26, 0x37, 0x97, 0x36, 0x47, 0x57, 0xe6, 0x46, 0x07, 0x32, 0x47, 0x17, 0x46, 0x57, 0x06, 0x62, 0xf6, 0x26, 0x07, 0xc2, 0x07, 0x17, 0x36, 0xb6, 0x56, 0x46, 0xd7, 0x02, 0x57, 0xd7, 0x06, 0xaf, 0x04, 0xe0, 0x8f, 0x5b, 0x19, 0x1e, 0x5d, 0xcb, 0x5d, 0xd8, 0x5a, 0x99, 0x0e, 0x08, 0x5b, 0xd8, 0x1c, 0x1d, 0x08, 0x5d, 0x5a, 0x5b, 0x99, 0x1c, 0xc8, 0x5d, 0xd9, 0x89, 0x5d, 0x19, 0xc8, 0x5c, 0x19, 0x1d, 0x0b, 0xc8, 0x9b, 0x1c, 0x88, 0x5b, 0x1d, 0x1b, 0xbb, 0x04, 0xe0, 0x1d, 0x5b, 0x9a, 0x5d, 0x99, 0x0e, 0x08, 0x5c, 0xd8, 0xd8, 0x5a, 0x19, 0xdd, 0x1c, 0x48, 0x9a, 0x1b, 0x88, 0x19, 0x5b, 0xda, 0x19, 0x1a, 0xdd, 0x0e, 0xc8, 0x5c, 0x99, 0x1b, 0x1d, 0x88, 0x58, 0x1d, 0x1d, 0x88, 0xdb, 0x1b, 0x1d, 0x48, 0x5e, 0x19, 0x1d, 0x48, 0xd8, 0xd8, 0x5a, 0x19, 0xb9, 0x04, 0xe0, 0x4d, 0x5b, 0x19, 0x9d, 0x5c, 0xda, 0xd8, 0x9c, 0x0e, 0xc8, 0xd8, 0x9b, 0xdb, 0x59, 0xd9, 0x1c, 0x5d, 0xda, 0x9b, 0x1b, 0xc8, 0xd8, 0x9b, 0x1b, 0x9d, 0xdc, 0x1b, 0x1b, 0x48, 0x9a, 0x9b, 0xd9, 0x9b, 0x5c, 0x5b, 0x18, 0x5d, 0xda, 0x9b, 0x5b, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0xef, 0xfa, 0x3b, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc3, 0x28, 0x6e, 0xe0, 0x38, 0x8a, 0xdf, 0xe0, 0x00, 0x21, 0xba, 0xc1, 0xbb, 0xfe, 0x8e, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x32, 0x8a, 0x3b, 0x78, 0x5e, 0x0a, 0xf2, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xcb, 0x28, 0x24, 0x03, 0x97, 0x51, 0x58, 0x6f, 0xf8, 0x73, 0x69, 0x00, 0x0f, 0xb7, 0x32, 0x3c, 0xba, 0x96, 0xbb, 0xb0, 0xb5, 0x72, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2e, 0xa3, 0xb0, 0x39, 0x78, 0xd9, 0x0b, 0xf2, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x46, 0x61, 0x34, 0x70, 0x19, 0x85, 0xe1, 0x41, 0xd9, 0x84, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x46, 0x61, 0x39, 0x70, 0x19, 0x85, 0xf1, 0xc1, 0x91, 0xaf, 0xb5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x34, 0x0a, 0xc9, 0xc0, 0x69, 0x14, 0x1e, 0x6c, 0xf8, 0x73, 0x69, 0x83, 0x16, 0x64, 0x98, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x34, 0x0a, 0xf1, 0xc1, 0x7b, 0x77, 0x90, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x34, 0x0a, 0xf9, 0xc0, 0x69, 0x14, 0x4a, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x46, 0x61, 0x30, 0x70, 0x1a, 0x85, 0xcd, 0xc1, 0xb3, 0xdd, 0x6c, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd3, 0x28, 0x8c, 0x06, 0x4e, 0xa3, 0xd0, 0xb1, 0xe1, 0x6d, 0x9d, 0x01, 0xbc, 0xd9, 0xd2, 0xec, 0xca, 0x5a, 0xe0, 0xc2, 0xc6, 0xd6, 0xca, 0xe8, 0x5a, 0xd6, 0xca, 0xf2, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd3, 0x28, 0x94, 0x0c, 0x9c, 0x46, 0xa1, 0x73, 0xc3, 0xdb, 0x3a, 0x03, 0x78, 0xb3, 0xa5, 0xd9, 0x95, 0xb5, 0xc0, 0x85, 0x8d, 0xad, 0x95, 0xd1, 0xb5, 0xd8, 0x85, 0xb1, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x46, 0xa1, 0x75, 0xe0, 0x34, 0x0a, 0x07, 0x36, 0xfc, 0x3b, 0xbf, 0x00, 0x5e, 0x6c, 0x74, 0x65, 0x2d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x46, 0x21, 0x19, 0xb8, 0x8d, 0xc2, 0x7a, 0xc3, 0x9f, 0x4b, 0x03, 0xbc, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0xf3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x46, 0x61, 0x71, 0xf0, 0xc8, 0x2a, 0xe4, 0x0d, 0xff, 0xce, 0x2f, 0x80, 0x1f, 0x5c, 0x5d, 0x1b, 0x5c, 0x4b, 0x5b, 0x19, 0x9d, 0x5c, 0xda, 0xd8, 0x5c, 0x1d, 0x4e, 0xb1, 0x05, 0x3c, 0xb1, 0xb0, 0x77, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xdd, 0xb8, 0x81, 0xcb, 0x37, 0x4c, 0x37, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0xba, 0x21, 0x19, 0x38, 0x75, 0x43, 0xbc, 0xe1, 0xcf, 0xa5, 0xc1, 0xdd, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x75, 0x43, 0x76, 0xf0, 0xb8, 0x30, 0xe4, 0x83, 0x32, 0x4b, 0x77, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xdd, 0xb8, 0x83, 0x07, 0x7b, 0x21, 0x6f, 0x50, 0xda, 0x5b, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb7, 0x6e, 0x48, 0x06, 0x6e, 0xdd, 0x10, 0x6f, 0xf8, 0x73, 0x69, 0xf0, 0x74, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xdd, 0x90, 0x1d, 0x3c, 0x39, 0x0d, 0xf9, 0xa0, 0xcc, 0xd2, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x63, 0x37, 0xee, 0xe0, 0xc1, 0x5e, 0xc8, 0x1b, 0x94, 0xf6, 0x96, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb1, 0x1b, 0x92, 0x81, 0x63, 0x37, 0x2c, 0x36, 0xfc, 0xb9, 0x34, 0xf8, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc7, 0x6e, 0xc8, 0x0e, 0x1e, 0x22, 0x87, 0xbc, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc7, 0x6e, 0x08, 0x07, 0x8e, 0xdd, 0x30, 0x38, 0x08, 0x29, 0x93, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xda, 0x8d, 0x3b, 0x78, 0xb0, 0x17, 0xf2, 0x86, 0xaf, 0x70, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xda, 0x0d, 0xc9, 0xc1, 0x83, 0xbd, 0x90, 0x37, 0xfc, 0x45, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xbb, 0x21, 0x1d, 0xb8, 0x76, 0x43, 0x7c, 0x10, 0xa6, 0x63, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xee, 0xc6, 0x1d, 0x3c, 0xd8, 0x0b, 0x79, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb9, 0x1b, 0x92, 0x81, 0x73, 0x37, 0xe4, 0x1b, 0xfe, 0xcd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0xdd, 0x90, 0x0d, 0x9c, 0xbb, 0x21, 0x3c, 0x28, 0xa3, 0xcf, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xdc, 0x0d, 0xe9, 0xc0, 0xb9, 0x1b, 0xe2, 0x83, 0x62, 0x68, 0x77, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x77, 0xe3, 0x07, 0x0e, 0xde, 0x50, 0xb3, 0x41, 0xd1, 0x41, 0x3b, 0x38, 0xb9, 0xc1, 0xb9, 0x9d, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x77, 0xc3, 0x62, 0xe0, 0xde, 0x0d, 0x93, 0x83, 0xc3, 0x39, 0xdf, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xbc, 0xf1, 0x07, 0x4f, 0x69, 0x44, 0xde, 0xf0, 0x15, 0xce, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xbc, 0x21, 0x1a, 0x38, 0x78, 0x43, 0xcb, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0xe7, 0x76, 0xbe, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xe0, 0x0d, 0xf9, 0xc0, 0xc1, 0x1b, 0x06, 0x07, 0xe5, 0xba, 0xec, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xbc, 0x61, 0x31, 0x70, 0xf0, 0x86, 0x92, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x8a, 0x7c, 0xd9, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x78, 0xc3, 0x6a, 0xe0, 0xe0, 0x0d, 0xe3, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x07, 0x6f, 0x98, 0x0d, 0x1c, 0xbc, 0x61, 0x79, 0xf0, 0xf2, 0x5f, 0xc0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xe0, 0x0d, 0xd3, 0x81, 0x83, 0x37, 0x6c, 0x0f, 0xca, 0x75, 0xd9, 0xd6, 0xe0, 0xdc, 0xce, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x07, 0x6f, 0x28, 0x18, 0x38, 0x78, 0x43, 0xc7, 0xc1, 0xab, 0x84, 0x01, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x93, 0x37, 0xee, 0xe0, 0xc1, 0x5e, 0xc8, 0x1b, 0x14, 0xa4, 0xb1, 0x6b, 0xf8, 0xbe, 0x7d, 0x70, 0x72, 0x83, 0x12, 0x3a, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x79, 0x43, 0x36, 0x70, 0xf2, 0x86, 0xf0, 0x20, 0x4c, 0xc7, 0x0e, 0xc2, 0x74, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x79, 0x43, 0x3c, 0x70, 0xf2, 0x86, 0xfc, 0xa0, 0x8c, 0x3e, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9b, 0x37, 0xee, 0xe0, 0xc1, 0x5e, 0xc8, 0x1b, 0x14, 0x7d, 0xba, 0x1b, 0x14, 0xbb, 0xe7, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xcd, 0x1b, 0xc2, 0x81, 0x9b, 0x37, 0x0c, 0x36, 0x7c, 0x1c, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x37, 0x6f, 0x88, 0x07, 0x6e, 0xde, 0x90, 0x1f, 0x94, 0xd1, 0xe7, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xf4, 0xc6, 0x1d, 0x3c, 0xd8, 0x0b, 0x79, 0x83, 0x82, 0x34, 0x76, 0x70, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x7a, 0x43, 0x38, 0x70, 0xf4, 0x86, 0xcd, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa3, 0x37, 0xa4, 0x03, 0x47, 0x6f, 0x18, 0x6c, 0x78, 0x5b, 0x67, 0x83, 0x31, 0xd6, 0xd8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xf4, 0x86, 0xc5, 0xc0, 0xd1, 0x1b, 0x26, 0x07, 0x65, 0xf4, 0x79, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xf5, 0xc6, 0x1d, 0x3c, 0xd8, 0x0b, 0x79, 0xc3, 0x57, 0x38, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xf5, 0x86, 0xe4, 0xe0, 0xc1, 0x5e, 0xc8, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xae, 0xde, 0x90, 0x0e, 0x5c, 0xbd, 0x21, 0x3e, 0x08, 0xd3, 0xb1, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x7b, 0xe3, 0x0e, 0x1e, 0xec, 0x85, 0xbc, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xec, 0x0d, 0xc9, 0xc0, 0xd9, 0x1b, 0xf2, 0x0d, 0xff, 0xe6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x67, 0x6f, 0xc8, 0x06, 0xce, 0xde, 0x10, 0x1e, 0x1e, 0xbc, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb3, 0x37, 0xa4, 0x03, 0x67, 0x6f, 0x88, 0x0f, 0x52, 0x98, 0xa3, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbb, 0x37, 0x7e, 0xe0, 0xee, 0x0d, 0x93, 0x0d, 0x97, 0xd4, 0x06, 0x87, 0xfd, 0x8e, 0x35, 0x38, 0xb7, 0xf3, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xdd, 0x1b, 0xc2, 0x81, 0xbb, 0x37, 0x2c, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xbd, 0x21, 0x1d, 0xb8, 0x7b, 0x43, 0x7c, 0x50, 0xae, 0xcb, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x77, 0x6f, 0xc8, 0x07, 0xee, 0xde, 0x30, 0x38, 0x38, 0x9c, 0xf3, 0xd5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xbe, 0x71, 0x07, 0x0f, 0xf6, 0x42, 0xde, 0xa0, 0xe8, 0xa0, 0x1d, 0xbc, 0xdc, 0xe0, 0xdc, 0xce, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xbe, 0x21, 0x1f, 0x38, 0x7c, 0xc3, 0xe0, 0xe0, 0x70, 0xce, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x97, 0x6f, 0xdc, 0xc1, 0x83, 0xbd, 0x90, 0x37, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x28, 0xf2, 0x65, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xf2, 0x0d, 0xc9, 0xc0, 0xe5, 0x1b, 0xe2, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x97, 0x6f, 0x88, 0x06, 0x2e, 0xdf, 0x90, 0x1d, 0x94, 0x13, 0xd0, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xe5, 0x1b, 0xc2, 0x81, 0xcb, 0x37, 0xa4, 0x07, 0xe5, 0xba, 0x6c, 0x6b, 0x90, 0xf8, 0x1c, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x97, 0x6f, 0x98, 0x0c, 0x5c, 0xbe, 0x61, 0xb9, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xf2, 0x0d, 0x9b, 0x81, 0xcb, 0x37, 0xcc, 0x0e, 0xaf, 0xf9, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x97, 0x6f, 0xd8, 0x0d, 0x5c, 0xbe, 0x61, 0x78, 0x90, 0xc2, 0x1c, 0x55, 0xb3, 0x80, 0x1f, 0x86, 0xc7, 0x56, 0x6e, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xbc, 0x14, 0x20, 0x79, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xc5, 0xb8, 0x81, 0xeb, 0x31, 0x7e, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xa9, 0x18, 0x92, 0x81, 0x53, 0x31, 0x94, 0x6c, 0xf8, 0x73, 0x69, 0x80, 0x07, 0xae, 0xac, 0x4c, 0x6e, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x53, 0x31, 0xe4, 0x07, 0x0f, 0x38, 0x48, 0xde, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x53, 0x31, 0x0c, 0x06, 0x4e, 0xc5, 0xb0, 0x39, 0x28, 0x11, 0xeb, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x53, 0x31, 0x8c, 0x06, 0x4e, 0xc5, 0x30, 0x3c, 0x68, 0xdb, 0x7a, 0x7c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x15, 0xc3, 0x72, 0xe0, 0x54, 0x0c, 0x1d, 0x1b, 0xfe, 0x9d, 0x5f, 0x83, 0x07, 0x6e, 0x17, 0x57, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xad, 0x18, 0x92, 0x81, 0x5b, 0x31, 0xf4, 0x6c, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0xbb, 0xf5, 0xf2, 0x12, 0xd6, 0x56, 0x36, 0xf7, 0x02, 0x63, 0x07, 0x03, 0xe2, 0xd7, 0xb5, 0xe1, 0xcf, 0xa5, 0x01, 0x3c, 0xea, 0xdc, 0xd2, 0xf0, 0x5a, 0xc8, 0xea, 0xc6, 0xe8, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x15, 0x43, 0x3e, 0x70, 0x2b, 0x86, 0xcd, 0xc1, 0xd3, 0xd3, 0x3d, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x63, 0x31, 0x24, 0x03, 0xc7, 0x62, 0x88, 0x37, 0xfc, 0xb9, 0xb4, 0xc1, 0x63, 0x6c, 0xec, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x58, 0x0c, 0xd1, 0xc1, 0x0b, 0x40, 0x92, 0x0f, 0xde, 0xa6, 0xeb, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x8b, 0x21, 0x19, 0xb8, 0x16, 0x43, 0xbc, 0xe1, 0xcf, 0xa5, 0x0d, 0x5e, 0x44, 0xeb, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd7, 0x62, 0x88, 0x0e, 0x1e, 0x61, 0x92, 0x7c, 0xf0, 0x06, 0x5b, 0xc7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x5c, 0x0c, 0xc9, 0xc0, 0xb9, 0x18, 0xd2, 0x0d, 0x7f, 0x2e, 0x6d, 0xd0, 0x5e, 0xa0, 0xe5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x8b, 0x21, 0x3a, 0x78, 0x07, 0x4b, 0xf2, 0x86, 0x7f, 0xe7, 0x37, 0x68, 0x45, 0x29, 0xb6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x5e, 0x0c, 0xc9, 0xc0, 0xbd, 0x18, 0x5a, 0x37, 0xfc, 0xb9, 0xb4, 0xc1, 0x5b, 0xe6, 0x81, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x5e, 0x0c, 0xf1, 0xc1, 0x3b, 0x65, 0x92, 0x37, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x8b, 0x21, 0x1f, 0xb8, 0x17, 0x43, 0xc7, 0x86, 0x3f, 0x97, 0x36, 0x78, 0xcb, 0xaf, 0xdd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x8b, 0x61, 0x74, 0xf0, 0x48, 0x9c, 0xe4, 0x0d, 0x82, 0xcd, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x17, 0xc3, 0x6c, 0xe0, 0x5e, 0x0c, 0xe3, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x05, 0x3c, 0x61, 0x6c, 0x6c, 0x6f, 0xf7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x2f, 0x86, 0xf5, 0xc0, 0xbd, 0x18, 0x2a, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x17, 0xf8, 0x64, 0x65, 0x6e, 0x79, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xbd, 0x18, 0x4a, 0x06, 0xee, 0xc5, 0x50, 0xba, 0xe1, 0xcf, 0xa5, 0x0d, 0x9e, 0x3a, 0x15, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf7, 0x62, 0xa8, 0x3a, 0x78, 0x92, 0x51, 0xf2, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x8b, 0xa1, 0x6b, 0xe0, 0x5e, 0x0c, 0x75, 0x07, 0x25, 0xe2, 0xfb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x2f, 0x86, 0xbe, 0x81, 0x7b, 0x31, 0x74, 0x1e, 0xb4, 0x6d, 0x3d, 0x5e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xc1, 0x18, 0x92, 0x81, 0x83, 0x31, 0x74, 0x6c, 0xf8, 0x73, 0x69, 0x83, 0x97, 0xfd, 0x03, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xc1, 0x18, 0xe2, 0x83, 0x07, 0x48, 0x25, 0x6f, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x18, 0x43, 0x3e, 0x70, 0x30, 0x86, 0xd5, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0xb6, 0xb9, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0xc6, 0xb0, 0x39, 0x78, 0xfd, 0x55, 0xf2, 0x06, 0x01, 0x74, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x07, 0x63, 0x18, 0x1d, 0xbc, 0xfe, 0x2a, 0xf9, 0xe0, 0xb0, 0xc0, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x8c, 0x61, 0x36, 0x70, 0x30, 0x86, 0x8a, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x6d, 0x65, 0xed, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x8c, 0x61, 0x7a, 0xf0, 0x5a, 0xb0, 0xe4, 0x0d, 0x02, 0xe8, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0xc6, 0xb0, 0x3d, 0x78, 0x2d, 0x58, 0xf2, 0x86, 0x1f, 0x61, 0x36, 0xd4, 0xfc, 0xc0, 0x00, 0x35, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x18, 0x43, 0x32, 0x70, 0x35, 0x86, 0x6c, 0xc3, 0x9f, 0x4b, 0x1b, 0xbc, 0x8a, 0x5f, 0x68, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xc6, 0x90, 0x1c, 0xbc, 0x46, 0x2d, 0x79, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xc9, 0x18, 0xd2, 0x81, 0x93, 0x31, 0xd4, 0x6f, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0xe9, 0xe2, 0xe2, 0x02, 0x62, 0xf6, 0x26, 0x07, 0xc2, 0x17, 0xd6, 0x56, 0x36, 0xb7, 0xe1, 0xcf, 0xa5, 0x0d, 0x1e, 0xa9, 0xc0, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x27, 0x63, 0x98, 0x0c, 0x9c, 0x8c, 0xa1, 0x6b, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xc9, 0x18, 0x36, 0x03, 0x27, 0x63, 0x18, 0x6e, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xe0, 0x91, 0x0a, 0x7c, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xc9, 0x18, 0x96, 0x03, 0x27, 0x63, 0xa8, 0xda, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x93, 0x31, 0x4c, 0x07, 0x4e, 0xc6, 0x30, 0x3f, 0x28, 0x9b, 0x30, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x93, 0x31, 0xec, 0x07, 0x4e, 0xc6, 0xd0, 0xb4, 0xe1, 0xdf, 0xf9, 0x35, 0x78, 0xd9, 0xf0, 0x71, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x33, 0x86, 0x74, 0xe0, 0x66, 0x0c, 0xf5, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0xba, 0xb8, 0xb8, 0x80, 0x98, 0xbd, 0xc9, 0x81, 0xf0, 0xb5, 0x95, 0xcd, 0x85, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0x05, 0xbc, 0xd3, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x33, 0x86, 0xc9, 0xc0, 0xcd, 0x18, 0xba, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x8c, 0x61, 0x33, 0x70, 0x33, 0x86, 0xe1, 0xc1, 0xb3, 0x62, 0x78, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9b, 0x31, 0x2c, 0x07, 0x6e, 0xc6, 0x50, 0xb5, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x37, 0x63, 0x98, 0x0e, 0xdc, 0x8c, 0x61, 0x7e, 0x50, 0x36, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x37, 0x63, 0xd8, 0x0f, 0xdc, 0x8c, 0xa1, 0xe9, 0xe0, 0x95, 0x82, 0xc9, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x8d, 0x21, 0x1d, 0x38, 0x1a, 0xc3, 0x8d, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0x78, 0x72, 0x71, 0x71, 0x01, 0x31, 0x7b, 0x93, 0x03, 0x29, 0x71, 0x0b, 0x1b, 0x5b, 0x2b, 0x23, 0x03, 0x19, 0x7b, 0x93, 0x5b, 0x9b, 0xdb, 0xf0, 0xe7, 0xd2, 0x06, 0xa7, 0xab, 0xb2, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x1a, 0xc3, 0x64, 0xe0, 0x68, 0x0c, 0x5d, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0xc6, 0xb0, 0x19, 0x38, 0x1a, 0xc3, 0x70, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0xa7, 0xab, 0xb2, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x68, 0x0c, 0xcb, 0x81, 0xa3, 0x31, 0x54, 0x6d, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xd1, 0x18, 0xa6, 0x03, 0x47, 0x63, 0x98, 0x1f, 0x94, 0x4d, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xd1, 0x18, 0xf6, 0x03, 0x47, 0x63, 0x68, 0x3a, 0x78, 0xa5, 0x60, 0x72, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x8d, 0x21, 0x19, 0xb8, 0x1b, 0xc3, 0x97, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xf8, 0x34, 0x7b, 0x93, 0x03, 0x99, 0x2b, 0x93, 0xb3, 0x4b, 0x73, 0x3b, 0x03, 0x29, 0x99, 0x43, 0xab, 0xa3, 0x03, 0x91, 0x2b, 0x8b, 0xab, 0x2b, 0x9b, 0xa3, 0x9b, 0xdb, 0xf0, 0xe7, 0xd2, 0x00, 0x7e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2d, 0x63, 0x68, 0x61, 0x69, 0xee, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x8d, 0x61, 0x31, 0x70, 0x37, 0x86, 0xd9, 0xc1, 0x23, 0xf4, 0x87, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc3, 0x31, 0x24, 0x03, 0x87, 0x63, 0x58, 0x6e, 0xf8, 0x73, 0x69, 0xc0, 0x87, 0x93, 0x4b, 0xb3, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x70, 0x0c, 0xf1, 0xc1, 0xcb, 0x75, 0x93, 0x37, 0xfc, 0x3b, 0xbf, 0x00, 0x5e, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x2d, 0x6b, 0x65, 0x79, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x97, 0x63, 0x48, 0x06, 0x2e, 0xc7, 0x70, 0x61, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x1e, 0xb0, 0xb0, 0x40, 0xda, 0xd2, 0xce, 0xe4, 0xc2, 0xe8, 0xca, 0xc8, 0x40, 0xe0, 0xca, 0xca, 0xe4, 0xe6, 0x36, 0xfc, 0xb9, 0x34, 0xc0, 0x33, 0x86, 0x56, 0xd7, 0x36, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xe5, 0x18, 0xf2, 0x81, 0xcb, 0x31, 0x94, 0x6c, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xe5, 0x18, 0x06, 0x03, 0x97, 0x63, 0xd8, 0x1c, 0x94, 0x88, 0xf5, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xe5, 0x18, 0x46, 0x03, 0x97, 0x63, 0x18, 0x1e, 0xb4, 0x6d, 0x3d, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x8e, 0x61, 0x39, 0x70, 0x39, 0x86, 0x8e, 0x0d, 0xff, 0xce, 0xaf, 0xc1, 0x03, 0x0b, 0x8f, 0xab, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x74, 0x0c, 0xc9, 0xc0, 0xe9, 0x18, 0x0e, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0x3b, 0x16, 0x16, 0x48, 0xdd, 0x5c, 0x19, 0x48, 0x5b, 0xda, 0x99, 0x5c, 0x18, 0x5d, 0x19, 0x19, 0xc8, 0xd8, 0x9b, 0x5c, 0x19, 0x88, 0x58, 0x1e, 0x08, 0x59, 0x99, 0x59, 0x58, 0x1d, 0x1b, 0xdd, 0x86, 0x3f, 0x97, 0x36, 0xcc, 0xd0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x8e, 0x21, 0x1e, 0x38, 0x1d, 0x43, 0xc9, 0x06, 0x01, 0x74, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa7, 0x63, 0xc8, 0x0f, 0x1e, 0xd5, 0x9d, 0xbc, 0xe1, 0x2f, 0x9a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x74, 0x0c, 0x83, 0x81, 0xd3, 0x31, 0xcc, 0x37, 0x08, 0x36, 0xd3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x74, 0x0c, 0x93, 0x81, 0xd3, 0x31, 0xec, 0x0e, 0x9e, 0x58, 0x5c, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x8e, 0x61, 0x38, 0x70, 0x3a, 0x86, 0xf5, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x02, 0xbf, 0xad, 0x6c, 0x2e, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xc7, 0xb0, 0x3f, 0x78, 0x54, 0x77, 0xf2, 0xc1, 0xe3, 0xfa, 0x61, 0x5a, 0x01, 0x78, 0x81, 0x0b, 0x93, 0xa3, 0x4b, 0x0b, 0x63, 0x6b, 0x91, 0x1b, 0xb3, 0x6b, 0x69, 0x2b, 0x9b, 0x9b, 0x0b, 0x3b, 0x2b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x38, 0x32, 0x84, 0x1e, 0x3c, 0xa9, 0x3d, 0xb9, 0x01, 0xf0, 0xae, 0xad, 0x6c, 0x6e, 0x2e, 0xec, 0xac, 0x0c, 0xc4, 0xec, 0x4d, 0x0e, 0xe4, 0x0e, 0x2d, 0x6d, 0x0c, 0x0d, 0xe4, 0xae, 0xec, 0xc4, 0xae, 0x0c, 0x44, 0xae, 0x6c, 0xac, 0x2c, 0xcd, 0xae, 0x8c, 0x0c, 0x64, 0xee, 0xad, 0xad, 0x0c, 0xc4, 0x4c, 0x2e, 0xec, 0xac, 0xad, 0xcc, 0x8d, 0x6e, 0x5e, 0x09, 0xc0, 0x5f, 0xb7, 0xba, 0xb6, 0x16, 0x33, 0xb9, 0xb0, 0xb3, 0xb6, 0x32, 0x37, 0xba, 0x39, 0x1d, 0x10, 0xba, 0x37, 0xba, 0x30, 0x36, 0x10, 0xb7, 0xba, 0x36, 0xb1, 0x32, 0x39, 0x90, 0x37, 0x33, 0x10, 0x33, 0xb9, 0xb0, 0xb3, 0xb6, 0x32, 0x37, 0xba, 0x39, 0x90, 0x34, 0x37, 0x10, 0x3a, 0xb4, 0xb4, 0x39, 0x90, 0xb6, 0xb2, 0xb9, 0xb9, 0xb0, 0xb3, 0x72, 0x09, 0xc0, 0x57, 0xb7, 0xba, 0xb6, 0x16, 0xb9, 0xb2, 0xb1, 0xb2, 0x34, 0xbb, 0x32, 0x32, 0x1d, 0x10, 0xb4, 0xb7, 0x3b, 0x90, 0xb6, 0x30, 0xb7, 0x3c, 0x10, 0x33, 0xb9, 0xb0, 0xb3, 0xb6, 0x32, 0x37, 0xba, 0x39, 0x90, 0xbb, 0xb2, 0x13, 0xbb, 0x32, 0x10, 0xb9, 0xb2, 0xb1, 0xb2, 0x34, 0xbb, 0x32, 0x32, 0x90, 0xb9, 0x37, 0x10, 0xb3, 0x30, 0x79, 0x09, 0x80, 0x1f, 0xcc, 0xe4, 0xc2, 0xce, 0xda, 0xca, 0xdc, 0xe8, 0xe6, 0x74, 0x40, 0xcc, 0xe4, 0xc2, 0xce, 0xda, 0xca, 0xdc, 0xe8, 0xe6, 0x40, 0xee, 0xca, 0x4e, 0xec, 0xca, 0x40, 0xe4, 0xca, 0xc6, 0xca, 0xd2, 0xec, 0xca, 0xc8, 0x58, 0x40, 0xca, 0xec, 0xca, 0xdc, 0xe8, 0xea, 0xc2, 0xd8, 0xd8, 0xf2, 0x40, 0xe0, 0xe4, 0xde, 0xc8, 0xea, 0xc6, 0xd2, 0xdc, 0xce, 0x40, 0xc2, 0x40, 0x48, 0xda, 0xca, 0xe6, 0xe6, 0xc2, 0xce, 0xca, 0xda, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0x52, 0x7b, 0xf2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x5c, 0x71, 0x03, 0x47, 0x57, 0xfc, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x8b, 0x2b, 0x24, 0x03, 0x17, 0x57, 0xe8, 0xd8, 0xf0, 0xe7, 0xd2, 0x00, 0x9e, 0x6e, 0x75, 0x6d, 0x2d, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0xf3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x5c, 0x61, 0x77, 0xf0, 0xa2, 0x0a, 0xe5, 0x0d, 0xff, 0xce, 0x2f, 0x80, 0x9f, 0x99, 0x5c, 0xd8, 0x59, 0x5b, 0x99, 0x1b, 0x5d, 0x8b, 0x5b, 0x5d, 0x5b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xc9, 0x15, 0x92, 0x81, 0x93, 0x2b, 0x54, 0x6c, 0xf8, 0x73, 0x69, 0x00, 0x3f, 0xb7, 0xba, 0xb6, 0x16, 0xb9, 0xb2, 0xb1, 0xb2, 0x34, 0xbb, 0x32, 0x72, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xae, 0x30, 0x3b, 0x78, 0x98, 0x87, 0xf2, 0xc1, 0xc3, 0x34, 0x94, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9b, 0x2b, 0x24, 0x03, 0x37, 0x57, 0xa8, 0xdb, 0xf0, 0xe7, 0xd2, 0x00, 0x1e, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0xf3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x5c, 0x61, 0x73, 0xf0, 0xd2, 0x12, 0xe5, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xb9, 0xc2, 0x68, 0xe0, 0xe6, 0x0a, 0xbb, 0x83, 0x12, 0xb1, 0x7e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xb9, 0xc2, 0x70, 0xe0, 0xe6, 0x0a, 0x25, 0x07, 0x0f, 0xd3, 0x50, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xae, 0xd0, 0x32, 0x70, 0x73, 0x85, 0xb6, 0x0d, 0xff, 0xce, 0x6f, 0xd0, 0x2a, 0x38, 0x76, 0x35, 0x0b, 0xf8, 0x61, 0x63, 0x72, 0xf5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0xea, 0x90, 0x0e, 0x94, 0xf0, 0xf8, 0x0d, 0x1f, 0xb5, 0x6f, 0x10, 0x40, 0x67, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xaa, 0xc3, 0xe2, 0xe0, 0x2d, 0x36, 0xca, 0x1b, 0xa4, 0x5e, 0x14, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xad, 0x8e, 0x3b, 0x78, 0x8b, 0x8d, 0xf2, 0x06, 0x25, 0x0b, 0xfb, 0x2c, 0xb3, 0xc0, 0x97, 0xe1, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xb7, 0x43, 0x3a, 0x50, 0xbc, 0x43, 0xb2, 0x41, 0xea, 0x45, 0xf1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x14, 0xee, 0xf8, 0x83, 0x57, 0xfd, 0x28, 0x6f, 0x50, 0xb2, 0xb0, 0xcf, 0x32, 0x6b, 0x90, 0xee, 0xb9, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb5, 0x3b, 0x8c, 0x06, 0x6a, 0x77, 0x38, 0xb2, 0xe1, 0x79, 0x92, 0x0d, 0x9a, 0x11, 0x21, 0xdf, 0xa0, 0x10, 0x4c, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xda, 0x1d, 0x56, 0x03, 0xb5, 0x3b, 0x2c, 0x0f, 0x1e, 0x0b, 0xef, 0xb9, 0x02, 0x1e, 0x5c, 0x9d, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa5, 0x3b, 0x8c, 0x06, 0x4a, 0x77, 0xf8, 0xb1, 0xe1, 0x79, 0x92, 0x0d, 0x9a, 0x60, 0x1d, 0xdf, 0xa0, 0x10, 0x4c, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd2, 0x1d, 0x56, 0x03, 0xa5, 0x3b, 0x2c, 0x0f, 0x1e, 0x70, 0x93, 0x39, 0x6b, 0xd0, 0xc6, 0x0c, 0xf8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0xee, 0x30, 0x1a, 0xa8, 0xdc, 0xe1, 0xcd, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0xfe, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x70, 0x61, 0x73, 0x73, 0x63, 0x6f, 0x64, 0x65, 0x1b, 0x14, 0x82, 0xa9, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xb9, 0xc3, 0x6a, 0xa0, 0x72, 0x87, 0xe5, 0x86, 0x2f, 0x6a, 0x36, 0xd4, 0xf1, 0xc0, 0xab, 0xb3, 0x3b, 0x56, 0x83, 0xd6, 0xee, 0xb5, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x70, 0x87, 0xd1, 0x40, 0xe1, 0x0e, 0x47, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x32, 0x4b, 0x73, 0x3b, 0x2b, 0x93, 0x83, 0x93, 0x4b, 0x73, 0xa3, 0xdb, 0xa0, 0x10, 0x4c, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc2, 0x1d, 0x56, 0x03, 0x85, 0x3b, 0x2c, 0x0f, 0xd2, 0xfd, 0x65, 0x0f, 0xa7, 0x58, 0x1d, 0x4e, 0xb1, 0x15, 0x78, 0xb7, 0x7a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xaa, 0x77, 0x48, 0x07, 0x2a, 0x78, 0x48, 0x36, 0x48, 0xbd, 0x28, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf2, 0x1d, 0x7f, 0xf0, 0x84, 0x33, 0xe5, 0x0d, 0x4a, 0x16, 0xf6, 0x59, 0x66, 0x0d, 0xd6, 0x41, 0xcd, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x01, 0x0f, 0xa3, 0x81, 0x02, 0x1e, 0x6e, 0x6c, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x61, 0x26, 0xf7, 0xd6, 0x06, 0x02, 0x17, 0x36, 0x37, 0xb7, 0xc1, 0xe2, 0xc2, 0xa4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x80, 0x87, 0xdd, 0x40, 0x01, 0x0f, 0xeb, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x01, 0x0f, 0xcb, 0x83, 0x77, 0xc9, 0x29, 0x1f, 0x3c, 0xe0, 0x26, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0a, 0x78, 0x98, 0x0f, 0x14, 0xf0, 0x50, 0xb3, 0x41, 0xea, 0x45, 0xf1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x14, 0xf0, 0xd0, 0x30, 0x50, 0xc0, 0x43, 0xcb, 0x86, 0x4b, 0x6a, 0x8d, 0xc7, 0x03, 0xef, 0x56, 0xd7, 0x0a, 0x78, 0x6e, 0x6f, 0xec, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xd4, 0xef, 0x30, 0x1a, 0xa8, 0xdf, 0xe1, 0xc6, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0x1e, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x72, 0x69, 0x6e, 0x67, 0x1b, 0x2c, 0x2e, 0x4c, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xea, 0x77, 0xd8, 0x0d, 0xd4, 0xef, 0xb0, 0xde, 0xf0, 0xe7, 0xd2, 0xe0, 0xe1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xd4, 0xef, 0xb0, 0x3c, 0x78, 0xfb, 0xa0, 0xf2, 0xc1, 0x63, 0xe1, 0x3d, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x7e, 0x87, 0xf9, 0x40, 0xfd, 0x0e, 0x35, 0x1b, 0xa4, 0x5e, 0x14, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xfd, 0x0e, 0x0d, 0x03, 0xf5, 0x3b, 0xb4, 0x1c, 0xbc, 0x6b, 0x4f, 0xf9, 0x70, 0x8a, 0xad, 0xa1, 0x46, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xf9, 0x0e, 0xa3, 0x81, 0xf2, 0x1d, 0xee, 0x6c, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0x83, 0x99, 0xdc, 0x5b, 0x1b, 0xc8, 0xd6, 0x5d, 0x1a, 0x19, 0x1d, 0x1a, 0xc8, 0x5c, 0x59, 0x19, 0x59, 0xd7, 0x06, 0x8b, 0x0b, 0x93, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf2, 0x1d, 0x76, 0x03, 0xe5, 0x3b, 0x14, 0x6c, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0xdf, 0x61, 0x38, 0x50, 0xbe, 0xc3, 0x76, 0xc3, 0x9f, 0x4b, 0x83, 0x87, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xbe, 0xc3, 0xf4, 0xe0, 0xb5, 0x98, 0xca, 0x87, 0x1f, 0x6a, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf2, 0x1d, 0xc6, 0x03, 0xe5, 0x3b, 0xec, 0x37, 0xfc, 0xb9, 0x34, 0xb8, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe5, 0x3b, 0xcc, 0x0f, 0x5e, 0xe4, 0xa9, 0x7c, 0xf8, 0xa1, 0xa6, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0xdf, 0xa1, 0x61, 0xa0, 0x7c, 0x87, 0xa6, 0x0d, 0x52, 0x2f, 0x8a, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x7c, 0x87, 0x92, 0x81, 0xf2, 0x1d, 0x8a, 0x0e, 0xde, 0xb5, 0xa7, 0x7c, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0x0a, 0x3c, 0x59, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x45, 0x3b, 0xa4, 0x03, 0x45, 0x3b, 0xfc, 0xd9, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0x8f, 0xb9, 0xbc, 0xb6, 0xb6, 0x32, 0x3a, 0xb9, 0xb4, 0x31, 0x10, 0xb2, 0x32, 0x16, 0x90, 0xb9, 0x37, 0x33, 0xba, 0x0d, 0x16, 0x17, 0x26, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x45, 0x3b, 0x0c, 0x06, 0x8a, 0x76, 0x58, 0x6e, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0xda, 0x61, 0x31, 0x50, 0xb4, 0xc3, 0x68, 0xc3, 0x9f, 0x4b, 0x83, 0x87, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xb4, 0xc3, 0xe6, 0xe0, 0x75, 0xb3, 0xca, 0x87, 0x1f, 0x6a, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa2, 0x1d, 0x56, 0x03, 0x45, 0x3b, 0x0c, 0x37, 0xfc, 0xb9, 0x34, 0xb8, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x45, 0x3b, 0xec, 0x0e, 0x5e, 0x90, 0xab, 0x7c, 0xf8, 0xa1, 0xa6, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0xda, 0x61, 0x3a, 0x50, 0xb4, 0x43, 0xc7, 0x06, 0x85, 0x60, 0xea, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x14, 0xed, 0xb0, 0x3d, 0x78, 0xa5, 0xaf, 0xf2, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x14, 0xed, 0x30, 0x1e, 0x28, 0xda, 0xa1, 0xe0, 0xa0, 0x6c, 0xc2, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8a, 0x76, 0x68, 0x18, 0x28, 0xda, 0xa1, 0xe2, 0xf0, 0x43, 0x4d, 0xb3, 0xc0, 0x97, 0xb9, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xb6, 0x43, 0x3a, 0x50, 0xb6, 0xc3, 0x93, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0xfc, 0xe6, 0xf2, 0xda, 0xda, 0xca, 0xe8, 0xe4, 0xd2, 0xc6, 0x40, 0xca, 0xdc, 0x36, 0x58, 0x5c, 0x98, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0xed, 0x30, 0x18, 0x28, 0xdb, 0x61, 0xb9, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x6c, 0x87, 0xc5, 0x40, 0xd9, 0x0e, 0xa3, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xd9, 0x0e, 0x9b, 0x83, 0x77, 0x48, 0x2b, 0x1f, 0x7e, 0xa8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xca, 0x76, 0x58, 0x0d, 0x94, 0xed, 0x30, 0xdc, 0xf0, 0xe7, 0xd2, 0xe0, 0xe2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0xed, 0xb0, 0x3b, 0x78, 0xeb, 0xb5, 0xf2, 0xe1, 0x87, 0x9a, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x6c, 0x87, 0xe9, 0x40, 0xd9, 0x0e, 0xe3, 0x0d, 0x0a, 0xc1, 0xd4, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0xdb, 0x61, 0x7b, 0xf0, 0x9e, 0x6e, 0xe5, 0xc3, 0x0f, 0x35, 0x87, 0x53, 0xac, 0x05, 0x3e, 0x6c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x62, 0x1d, 0xd2, 0x81, 0x9a, 0x1d, 0x92, 0x0d, 0x52, 0x2f, 0x8a, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x5a, 0xc7, 0x1f, 0x3c, 0x6c, 0x5c, 0x79, 0x83, 0x92, 0x85, 0x7d, 0x96, 0x59, 0xc0, 0x9f, 0xab, 0x93, 0x2b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x60, 0x87, 0xd5, 0x40, 0xc1, 0x0e, 0x8f, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0x27, 0xac, 0x8e, 0x0e, 0xad, 0xcc, 0x8d, 0x2e, 0x6d, 0x2c, 0x8c, 0xae, 0x0c, 0xc4, 0x4c, 0xee, 0xad, 0x0d, 0xa4, 0x6e, 0x6e, 0x83, 0xc5, 0x85, 0x49, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc1, 0x0e, 0xc3, 0x81, 0x82, 0x1d, 0xb6, 0x1b, 0xfe, 0x5c, 0x1a, 0x3c, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x82, 0x1d, 0xa6, 0x07, 0x0f, 0x82, 0x57, 0x3e, 0xfc, 0x50, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x05, 0x3b, 0x8c, 0x07, 0x0a, 0x76, 0x68, 0xd9, 0xa0, 0x10, 0x4c, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x82, 0x1d, 0xd6, 0x07, 0x4f, 0xae, 0x57, 0xde, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x82, 0x1d, 0xe6, 0x03, 0x05, 0x3b, 0x54, 0x1c, 0x94, 0x4d, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc1, 0x0e, 0x1d, 0x03, 0x05, 0x3b, 0x94, 0x1c, 0x7e, 0xa8, 0x69, 0x05, 0xfc, 0xb9, 0xb2, 0x30, 0x76, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xaa, 0x75, 0x58, 0x0d, 0x54, 0xeb, 0xf0, 0x64, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xbf, 0x32, 0xb7, 0x31, 0xb9, 0x3c, 0x38, 0x3a, 0x10, 0xba, 0x37, 0x90, 0xb0, 0x0d, 0x16, 0x17, 0x26, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd5, 0x3a, 0x0c, 0x07, 0xaa, 0x75, 0x28, 0xd9, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xad, 0xc3, 0x72, 0xa0, 0x5a, 0x87, 0xfd, 0x86, 0x3f, 0x97, 0x06, 0x0f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x5a, 0x87, 0xed, 0xc1, 0x33, 0x13, 0x96, 0x0f, 0x1e, 0x70, 0x93, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0xeb, 0x50, 0x30, 0x50, 0xad, 0x43, 0xc7, 0x86, 0x3f, 0x97, 0x06, 0x17, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x5a, 0x87, 0x8a, 0x83, 0x57, 0x3d, 0x2c, 0x1f, 0x7e, 0xa8, 0x69, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xaa, 0x75, 0x68, 0x19, 0xa8, 0xd6, 0xa1, 0x67, 0x83, 0x42, 0x30, 0x75, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xaa, 0x75, 0xa8, 0x39, 0x78, 0x3c, 0xc5, 0xf2, 0xe1, 0x87, 0x9a, 0xd5, 0xe0, 0x55, 0x69, 0x8a, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xae, 0xc3, 0x6a, 0xa0, 0x5c, 0x87, 0x2b, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0x8e, 0x95, 0xc9, 0xd1, 0xa5, 0x99, 0xe5, 0x81, 0x84, 0xcd, 0x81, 0xd4, 0xcd, 0x6d, 0xb0, 0xb8, 0x30, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0xd7, 0x61, 0x38, 0x50, 0xae, 0xc3, 0x76, 0xc3, 0x9f, 0x4b, 0x83, 0x87, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xae, 0xc3, 0xf4, 0xe0, 0x95, 0x20, 0xcb, 0x87, 0x1f, 0x6a, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x5c, 0x87, 0xf1, 0x40, 0xb9, 0x0e, 0xf3, 0x0d, 0x0a, 0xc1, 0xd4, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0xd7, 0x61, 0x7d, 0xf0, 0x0e, 0x93, 0xe5, 0xc3, 0x0f, 0x35, 0xb3, 0x80, 0x4f, 0x57, 0x16, 0x26, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc9, 0x0e, 0xab, 0x81, 0x92, 0x1d, 0xae, 0x6c, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x19, 0x36, 0x36, 0x56, 0x06, 0x47, 0x07, 0x62, 0x26, 0xf7, 0xd6, 0x06, 0x12, 0xb6, 0xc1, 0xe2, 0xc2, 0xa4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x64, 0x87, 0xe1, 0x40, 0xc9, 0x0e, 0x25, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4a, 0x76, 0x58, 0x0e, 0x94, 0xec, 0xb0, 0xdf, 0xf0, 0xe7, 0xd2, 0xe0, 0xe1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0xec, 0xb0, 0x3d, 0x78, 0x23, 0xcd, 0xf2, 0xc1, 0x03, 0x6e, 0x32, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x92, 0x1d, 0x0a, 0x06, 0x4a, 0x76, 0xe8, 0xd8, 0xf0, 0xe7, 0xd2, 0xe0, 0xe2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0xec, 0x50, 0x71, 0xf0, 0x24, 0x9d, 0xe5, 0xc3, 0x0f, 0x35, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc9, 0x0e, 0x2d, 0x03, 0x25, 0x3b, 0xd4, 0x6d, 0x50, 0x08, 0xa6, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc9, 0x0e, 0x35, 0x07, 0x2f, 0xff, 0x59, 0xde, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x92, 0x1d, 0x7a, 0x06, 0x4a, 0x76, 0xe8, 0x3a, 0x28, 0x9b, 0x30, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x92, 0x1d, 0xca, 0x06, 0x4a, 0x76, 0x68, 0x3b, 0xfc, 0x50, 0xd3, 0x0a, 0xf8, 0x73, 0x69, 0x67, 0xe8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xd4, 0xeb, 0xb0, 0x1a, 0xa8, 0xd7, 0xe1, 0xcf, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0x7c, 0x8c, 0x95, 0xc9, 0xd1, 0xa5, 0x99, 0xa5, 0x8d, 0x85, 0xd1, 0xa5, 0xbd, 0xb9, 0x81, 0xbc, 0xb9, 0xb1, 0xe5, 0x6d, 0xb0, 0xb8, 0x30, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xd7, 0x61, 0x38, 0x50, 0xaf, 0xc3, 0x76, 0xc3, 0x9f, 0x4b, 0x83, 0x87, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xaf, 0xc3, 0xf4, 0xe0, 0xd5, 0x51, 0xcb, 0x87, 0x1f, 0x6a, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x5e, 0x87, 0xf1, 0x40, 0xbd, 0x0e, 0xf3, 0x0d, 0x0a, 0xc1, 0xd4, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xd7, 0x61, 0x7d, 0xf0, 0xae, 0xab, 0xe5, 0xc3, 0x0f, 0x35, 0x87, 0x53, 0xac, 0x16, 0xf0, 0xe7, 0xc2, 0xcc, 0xca, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xd8, 0x61, 0x35, 0x50, 0xb1, 0xc3, 0xa1, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0x78, 0x09, 0xab, 0xa3, 0x43, 0x2b, 0x73, 0xa3, 0x4b, 0x1b, 0x0b, 0xa3, 0x4b, 0x7b, 0x73, 0x03, 0x79, 0x73, 0x63, 0xcb, 0xdb, 0x60, 0x71, 0x61, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xb1, 0xc3, 0x70, 0xa0, 0x62, 0x87, 0x86, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x15, 0x3b, 0x2c, 0x07, 0x2a, 0x76, 0x18, 0x6f, 0xf8, 0x73, 0x69, 0xf0, 0x70, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2a, 0x76, 0xd8, 0x1e, 0x3c, 0xdd, 0x6c, 0xf9, 0xf0, 0x43, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xb1, 0xc3, 0x7a, 0xa0, 0x62, 0x87, 0x82, 0x0d, 0x7f, 0x2e, 0x0d, 0x2e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc5, 0x0e, 0xfb, 0x83, 0xe7, 0xb1, 0x2d, 0x1f, 0x7e, 0xa8, 0x69, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2a, 0x76, 0xa8, 0x18, 0xa8, 0xd8, 0xa1, 0x64, 0x83, 0x42, 0x30, 0x75, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2a, 0x76, 0xe8, 0x38, 0x78, 0x84, 0xdc, 0xf2, 0xe1, 0x83, 0xd5, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x56, 0xe0, 0xc9, 0xf2, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xda, 0x21, 0x1d, 0xa8, 0xda, 0xe1, 0xcf, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0x7c, 0xcc, 0xe5, 0xb5, 0xb5, 0x95, 0xd1, 0xc9, 0xa5, 0x8d, 0x81, 0x90, 0x95, 0xb1, 0x80, 0xa0, 0x85, 0xc9, 0x91, 0x6d, 0xb0, 0xb8, 0x30, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xda, 0x61, 0x30, 0x50, 0xb5, 0xc3, 0x72, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xd5, 0x0e, 0x8b, 0x81, 0xaa, 0x1d, 0x46, 0x1b, 0xfe, 0x5c, 0x1a, 0x3c, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xaa, 0x1d, 0x36, 0x07, 0x0f, 0x0c, 0x5c, 0x3e, 0xfc, 0x50, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0xed, 0xb0, 0x1a, 0xa8, 0xda, 0x61, 0xb8, 0xe1, 0xcf, 0xa5, 0xc1, 0xc5, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xda, 0x61, 0x77, 0xf0, 0x88, 0xc3, 0xe5, 0xc3, 0x0f, 0x35, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xd5, 0x0e, 0xd3, 0x81, 0xaa, 0x1d, 0xc6, 0x1b, 0x14, 0x82, 0xa9, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xb5, 0xc3, 0xf6, 0xe0, 0xa1, 0x8c, 0xcb, 0x87, 0x1f, 0x6a, 0x0e, 0xa7, 0x58, 0x87, 0x53, 0x6c, 0x35, 0x78, 0x29, 0x3f, 0xf1, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0x47, 0x86, 0xd0, 0x83, 0x97, 0xf2, 0x13, 0x37, 0x80, 0xbf, 0x5c, 0xd9, 0x1c, 0xdc, 0x9b, 0xdb, 0x5c, 0x19, 0x48, 0x5b, 0xd9, 0xdc, 0x5c, 0xd8, 0x59, 0xd9, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x4b, 0xf9, 0x89, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x60, 0x89, 0x1b, 0x38, 0x58, 0x42, 0xdd, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x2c, 0xb1, 0x03, 0x07, 0x4b, 0xd8, 0x6c, 0x78, 0x50, 0x72, 0x0d, 0x6f, 0xeb, 0x6c, 0xf0, 0x6a, 0x7f, 0x97, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x60, 0x09, 0xd9, 0xc1, 0x4b, 0x37, 0x97, 0x37, 0x3c, 0x28, 0xb9, 0x86, 0xb7, 0x75, 0x0e, 0x5e, 0x1e, 0xf6, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x07, 0x4b, 0xc8, 0x0f, 0x5e, 0xba, 0xb9, 0xbc, 0xe1, 0x6d, 0x9d, 0x83, 0x77, 0x60, 0xd8, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x07, 0x4b, 0x18, 0x0d, 0x1c, 0x2c, 0xa1, 0x6d, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0x96, 0xb0, 0x1a, 0x38, 0x58, 0xc2, 0xf2, 0xa0, 0xf4, 0xa6, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0x96, 0x30, 0x1d, 0x38, 0x58, 0xc2, 0xfc, 0xe0, 0x8c, 0x84, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x2c, 0x61, 0x3f, 0x70, 0xb0, 0x84, 0xb2, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x58, 0x42, 0xc1, 0xc0, 0xc1, 0x12, 0x4a, 0x0e, 0xca, 0x26, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x60, 0x09, 0x2d, 0x03, 0x07, 0x4b, 0xe8, 0xda, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x83, 0x25, 0xd4, 0x0c, 0x1c, 0x2c, 0xa1, 0xea, 0xe0, 0x75, 0x0c, 0x1f, 0x55, 0x87, 0x53, 0x6c, 0x0d, 0xde, 0x06, 0x3b, 0xbc, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0xc1, 0x91, 0x21, 0xf4, 0xe0, 0x6d, 0xb0, 0xc3, 0x0d, 0x80, 0x57, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x7c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2d, 0x73, 0x69, 0x6e, 0x6b, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0xf3, 0x4a, 0x00, 0x1e, 0xb3, 0x85, 0xcd, 0xd1, 0xb5, 0x84, 0x8d, 0xad, 0x95, 0x91, 0xe9, 0x80, 0xa0, 0xa5, 0x9d, 0xa1, 0x95, 0xcd, 0xd1, 0x81, 0x90, 0xb4, 0x95, 0xcd, 0xcd, 0x85, 0x9d, 0x95, 0xb5, 0xb8, 0xd5, 0xb5, 0x81, 0xdc, 0x95, 0x9d, 0xd8, 0x95, 0x81, 0x98, 0xd5, 0xb1, 0xb1, 0xe5, 0x81, 0x84, 0x8d, 0xad, 0xb9, 0xbd, 0xdd, 0xb1, 0x95, 0x91, 0x9d, 0x95, 0x91, 0x4b, 0x00, 0x9e, 0xb3, 0x85, 0xcd, 0xd1, 0xb5, 0xa0, 0x95, 0x85, 0xc9, 0x91, 0xe9, 0x80, 0xa0, 0xa5, 0x9d, 0xa1, 0x95, 0xcd, 0xd1, 0x81, 0x90, 0xb4, 0x95, 0xcd, 0xcd, 0x85, 0x9d, 0x95, 0xb5, 0xb8, 0xd5, 0xb5, 0x81, 0xdc, 0x95, 0x9d, 0xd8, 0x95, 0x81, 0xa0, 0x95, 0x85, 0xc9, 0x91, 0x81, 0x84, 0xb1, 0xb1, 0x81, 0x98, 0xc9, 0x85, 0x9d, 0xb5, 0x95, 0xb9, 0xd1, 0xcd, 0x81, 0xbc, 0xb9, 0x4b, 0x00, 0xde, 0xc2, 0x95, 0xb9, 0x91, 0xa5, 0xb9, 0x9d, 0xb5, 0xd8, 0x85, 0xb9, 0x95, 0xb5, 0x84, 0x8d, 0xad, 0xe9, 0x80, 0xa0, 0x95, 0x85, 0xc9, 0x91, 0x81, 0x88, 0xd5, 0xd1, 0x81, 0xb8, 0xbd, 0xd1, 0x81, 0xc0, 0xc9, 0xbd, 0x8d, 0x95, 0xcd, 0xcd, 0x95, 0x91, 0x81, 0x88, 0xe5, 0x81, 0xb0, 0xbd, 0x8d, 0x85, 0xb1, 0x81, 0xd8, 0x85, 0xb9, 0x95, 0x4b, 0x00, 0x3e, 0xb1, 0xa5, 0xd9, 0x95, 0xb5, 0xb4, 0x95, 0xcd, 0xcd, 0x85, 0x9d, 0x95, 0xcd, 0xe9, 0x80, 0xc0, 0x85, 0xc9, 0xd1, 0xa5, 0x85, 0xb1, 0xb1, 0xe5, 0x81, 0xc8, 0x95, 0x8d, 0x95, 0xa5, 0xd9, 0x95, 0x91, 0x81, 0xb4, 0x95, 0xcd, 0xcd, 0x85, 0x9d, 0x95, 0xcd, 0xb5, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0x36, 0xd8, 0xe1, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xb1, 0xe2, 0x06, 0x2e, 0xad, 0xf8, 0x0d, 0x0e, 0x10, 0xa2, 0x1b, 0xbc, 0x0d, 0x76, 0x78, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0xac, 0xb8, 0x83, 0x27, 0x81, 0x2f, 0x6f, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xb2, 0x42, 0x32, 0x70, 0x64, 0x85, 0xfd, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x40, 0xb1, 0xe3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x59, 0x61, 0x74, 0xf0, 0x1a, 0xf3, 0xe5, 0x83, 0xa7, 0x2c, 0x0f, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x57, 0x56, 0x48, 0x06, 0xae, 0xac, 0xb0, 0xdf, 0xf0, 0xe7, 0xd2, 0x00, 0x3e, 0x6c, 0x61, 0x73, 0x74, 0x2d, 0x68, 0x65, 0x61, 0x72, 0xe4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x59, 0x61, 0x74, 0xf0, 0x24, 0xf6, 0xe5, 0x83, 0xa7, 0x2c, 0x0f, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x67, 0x56, 0x48, 0x06, 0xce, 0xac, 0x50, 0xbc, 0xe1, 0xcf, 0xa5, 0x01, 0xfc, 0xe1, 0xca, 0xdc, 0xc8, 0xd2, 0xdc, 0xce, 0x5a, 0xec, 0xc2, 0xdc, 0xca, 0x5a, 0xc2, 0xc6, 0xd6, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xb3, 0xc2, 0xf4, 0xe0, 0x49, 0xf3, 0xcb, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x66, 0x85, 0xed, 0xc0, 0x99, 0x15, 0xe6, 0x07, 0x0f, 0x3f, 0x60, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0xac, 0xb0, 0x1f, 0x38, 0xb3, 0x42, 0xef, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x33, 0x2b, 0x14, 0x0c, 0x9c, 0x59, 0xa1, 0x6c, 0xc3, 0x9f, 0x4b, 0x1b, 0xbc, 0xe9, 0x78, 0x78, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0xac, 0xd0, 0x70, 0xf0, 0x46, 0x00, 0xe6, 0x83, 0xa7, 0x2c, 0x0f, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x67, 0x56, 0x68, 0x1b, 0x38, 0xb3, 0x42, 0xed, 0x86, 0x3f, 0x97, 0x36, 0x78, 0xbd, 0xd6, 0xf1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x59, 0xa1, 0xf5, 0xe0, 0xb1, 0x06, 0xcc, 0x07, 0x61, 0x3a, 0x56, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x9d, 0x15, 0x92, 0x81, 0x3b, 0x2b, 0x94, 0x6f, 0xf8, 0x73, 0x69, 0x00, 0x4f, 0xb6, 0x34, 0xbb, 0xb2, 0x96, 0xb6, 0xb2, 0xb9, 0xb9, 0xb0, 0xb3, 0xb2, 0x79, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xac, 0xb0, 0x3b, 0x78, 0x30, 0x03, 0xf3, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x59, 0x61, 0x38, 0x70, 0x67, 0x85, 0xed, 0x41, 0x89, 0x58, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x59, 0x61, 0x3c, 0x70, 0x67, 0x85, 0x9e, 0x83, 0xa7, 0x2c, 0x0f, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x77, 0x56, 0x28, 0x1a, 0xb8, 0xb3, 0x42, 0xf7, 0x86, 0x7f, 0xe7, 0xd7, 0xe0, 0x49, 0xed, 0xc9, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x68, 0x85, 0x64, 0xe0, 0xd0, 0x0a, 0xf3, 0x0d, 0x7f, 0x2e, 0x6d, 0xd0, 0xf4, 0x61, 0xf7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x5a, 0x21, 0x3d, 0x78, 0x46, 0x07, 0xf3, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x5a, 0x21, 0x1e, 0x38, 0xb4, 0xc2, 0xe2, 0xa0, 0x44, 0x7c, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0xad, 0x30, 0x19, 0x38, 0xb4, 0xc2, 0xfa, 0xe0, 0x29, 0xcb, 0xc3, 0x75, 0x38, 0xc5, 0x5a, 0x83, 0x27, 0x21, 0x21, 0x6f, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0x3c, 0x09, 0x09, 0x79, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0xa9, 0xb8, 0x81, 0x83, 0x2a, 0x7e, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x39, 0x15, 0x92, 0x81, 0x73, 0x2a, 0xac, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0x9b, 0x8e, 0x87, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x9c, 0x0a, 0xd1, 0xc1, 0x43, 0x5b, 0x98, 0x0f, 0x9e, 0xb2, 0x3c, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x53, 0x21, 0x19, 0xb8, 0xa7, 0xc2, 0x6c, 0xc3, 0x9f, 0x4b, 0x1b, 0xbc, 0x5b, 0x43, 0x79, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xa9, 0x10, 0x1d, 0x3c, 0x76, 0x86, 0xf9, 0xe0, 0x61, 0x1a, 0xca, 0xad, 0x00, 0x7e, 0x6e, 0x61, 0x6d, 0x65, 0x2d, 0x74, 0x6f, 0x2d, 0x62, 0x65, 0x61, 0xed, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x11, 0xe2, 0x06, 0x72, 0x09, 0xf1, 0x1b, 0x7e, 0x51, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x08, 0x21, 0x19, 0x48, 0x22, 0x84, 0xc9, 0x86, 0x7f, 0xe7, 0x37, 0x68, 0xf7, 0x80, 0xf3, 0xe0, 0xa9, 0x3b, 0xc5, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x45, 0x88, 0x3b, 0x78, 0xe2, 0x0e, 0xf3, 0x86, 0xbf, 0x68, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x2c, 0x42, 0x48, 0x06, 0xb2, 0x08, 0x21, 0x3d, 0x78, 0x4a, 0x70, 0xc8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x11, 0xe2, 0x0e, 0x9e, 0xb8, 0xc3, 0xbc, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x8d, 0x10, 0x92, 0x81, 0x34, 0x42, 0x98, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x23, 0x84, 0x68, 0x20, 0x8d, 0x10, 0xd2, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x68, 0x65, 0x72, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x1a, 0x21, 0xc4, 0x03, 0x69, 0x84, 0x30, 0x38, 0x48, 0x4a, 0x0b, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x08, 0x61, 0x31, 0x90, 0x46, 0x08, 0xab, 0x0d, 0x12, 0xe1, 0x82, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x8d, 0x10, 0x46, 0x07, 0xaf, 0x97, 0x62, 0x3e, 0x3c, 0x26, 0xd3, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x47, 0x08, 0xc9, 0x40, 0x1e, 0x21, 0xc4, 0x1b, 0xde, 0xb8, 0xdb, 0xf0, 0xf2, 0xdd, 0xc1, 0x0b, 0x1c, 0x82, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x3c, 0x42, 0x18, 0x0c, 0xe4, 0x11, 0xc2, 0x7c, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x1e, 0x21, 0x2c, 0x06, 0xf2, 0x08, 0x61, 0x75, 0xb0, 0x24, 0x37, 0x7d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x23, 0x84, 0xd9, 0x40, 0x1e, 0x21, 0x2c, 0x0f, 0x12, 0xe1, 0x82, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x3c, 0x42, 0x98, 0x0e, 0xe4, 0x11, 0xc2, 0x7a, 0xc3, 0xdb, 0x3a, 0x03, 0x9e, 0x5c, 0x9a, 0x59, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x22, 0x21, 0x24, 0x03, 0x89, 0x84, 0x10, 0x6f, 0x78, 0xe3, 0x6e, 0xc3, 0xcb, 0x77, 0x07, 0x0f, 0xf3, 0xbf, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x09, 0x61, 0x30, 0x90, 0x48, 0x08, 0xf3, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0x84, 0xb0, 0x18, 0x48, 0x24, 0x84, 0xd5, 0xc1, 0x92, 0xdc, 0xf4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x91, 0x10, 0x66, 0x03, 0x89, 0x84, 0xb0, 0x3c, 0x48, 0x84, 0x0b, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x09, 0x61, 0x3a, 0x90, 0x48, 0x08, 0xeb, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x62, 0x6f, 0x71, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0x84, 0x50, 0x30, 0x90, 0x48, 0x08, 0x2d, 0x1b, 0xde, 0xb8, 0xdb, 0xf0, 0xf2, 0x5d, 0xe0, 0x97, 0xd1, 0x8d, 0xa1, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x26, 0x21, 0x24, 0x03, 0xa9, 0x84, 0xd0, 0xb4, 0x41, 0x09, 0x8f, 0xb9, 0xc1, 0x4a, 0xa6, 0xdc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x93, 0x10, 0x26, 0x03, 0x99, 0x84, 0xb0, 0xde, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x49, 0x08, 0x9b, 0x81, 0x4c, 0x42, 0x18, 0x6e, 0x78, 0xe3, 0xee, 0xe0, 0x5d, 0xc2, 0x7e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x26, 0x21, 0x2c, 0x07, 0x32, 0x09, 0x61, 0x7c, 0xd0, 0x76, 0x5f, 0x66, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x4a, 0x08, 0xc9, 0xc1, 0x4b, 0xf6, 0x98, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x12, 0x42, 0x34, 0x90, 0x4a, 0x08, 0x8b, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0xf8, 0x7c, 0xd4, 0xc1, 0x4a, 0xa6, 0xdc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x95, 0x10, 0x26, 0x03, 0xa9, 0x84, 0x50, 0xb2, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x95, 0x10, 0x36, 0x03, 0xa9, 0x84, 0xb0, 0x3b, 0x58, 0x92, 0x9b, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x12, 0xc2, 0x70, 0x20, 0x95, 0x10, 0xb6, 0x07, 0x89, 0x70, 0xc1, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x2a, 0x21, 0x8c, 0x07, 0x52, 0x09, 0xa1, 0x63, 0xc3, 0xdb, 0x3a, 0x03, 0x9e, 0x59, 0xd8, 0x79, 0xb0, 0x92, 0x29, 0xb7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x95, 0x10, 0x5a, 0x06, 0x52, 0x09, 0xa1, 0xe8, 0xa0, 0xed, 0xbe, 0xcc, 0x5a, 0x0d, 0xde, 0xd2, 0x84, 0xbc, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0x96, 0x26, 0xe4, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xa9, 0xe2, 0x06, 0xae, 0xaa, 0xf8, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x27, 0x55, 0x48, 0x06, 0x4e, 0xaa, 0xb0, 0xda, 0xf0, 0xef, 0xfc, 0x1a, 0x3c, 0xb3, 0x05, 0xb8, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9b, 0x2a, 0x24, 0x03, 0x37, 0x55, 0xe8, 0xd8, 0xf0, 0xe7, 0xd2, 0x06, 0x2f, 0xb2, 0x50, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9b, 0x2a, 0xec, 0x0e, 0x5e, 0x50, 0xca, 0x7c, 0xf0, 0x30, 0x0d, 0xe5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xa8, 0x0a, 0xc9, 0xc0, 0x51, 0x15, 0x26, 0x1b, 0xfe, 0x5c, 0xda, 0x60, 0x19, 0x55, 0xf7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x55, 0x21, 0x3a, 0x78, 0xc7, 0x2a, 0xf3, 0xc1, 0x43, 0x65, 0x94, 0x3b, 0x9c, 0x62, 0xad, 0xc1, 0xb3, 0xf7, 0x82, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x38, 0x32, 0x84, 0x1e, 0x3c, 0x7b, 0x2f, 0xa8, 0x01, 0xf0, 0xcd, 0xed, 0xad, 0xce, 0x0d, 0x44, 0xae, 0x0c, 0x4e, 0xae, 0x6c, 0xae, 0xcc, 0x8d, 0x2e, 0x8c, 0x2e, 0xed, 0xcd, 0x0d, 0xe4, 0xcd, 0x0c, 0x24, 0xcc, 0x0d, 0x24, 0xac, 0xad, 0x6c, 0x0e, 0x84, 0x2c, 0x8c, 0x2e, 0xec, 0x4c, 0x2e, 0xac, 0x0d, 0x04, 0x2e, 0x6c, 0x6c, 0xad, 0x8c, 0x5e, 0x09, 0x40, 0x63, 0xa9, 0xb7, 0x3a, 0x37, 0x32, 0x3a, 0xb9, 0x34, 0xb8, 0x39, 0x10, 0xb6, 0xb7, 0xb9, 0x39, 0xb6, 0xb2, 0xb9, 0x39, 0xb6, 0x3c, 0x10, 0x3a, 0x34, 0xb9, 0xb7, 0xba, 0x33, 0x34, 0x90, 0x30, 0xba, 0xb7, 0x36, 0x90, 0x32, 0xb7, 0xb1, 0x37, 0xb2, 0x34, 0xb7, 0x33, 0x90, 0x30, 0x37, 0x32, 0x10, 0xb2, 0xb2, 0xb1, 0x37, 0xb2, 0x34, 0xb7, 0x33, 0xd7, 0x4a, 0x00, 0xda, 0xbb, 0xbc, 0xc9, 0xa5, 0x9d, 0xa5, 0xb9, 0x81, 0xa4, 0xcd, 0x81, 0xf8, 0x81, 0xd4, 0xb9, 0xb1, 0x95, 0xcd, 0xcd, 0x81, 0xd0, 0xa1, 0x95, 0x81, 0xc0, 0x85, 0x8d, 0xad, 0x95, 0xd1, 0x81, 0xa4, 0xcd, 0x81, 0x88, 0x95, 0xa5, 0xb9, 0x9d, 0x81, 0x98, 0xbd, 0xc9, 0xdd, 0x85, 0xc9, 0x91, 0x95, 0x91, 0xb9, 0x80, 0x80, 0x24, 0x99, 0x81, 0xc0, 0xc9, 0x95, 0xcd, 0x95, 0xb9, 0xd1, 0xb1, 0x25, 0x00, 0x3a, 0x48, 0xa3, 0x3b, 0x99, 0x03, 0x09, 0x73, 0x03, 0x09, 0xa3, 0x7b, 0x6b, 0x03, 0xa1, 0x43, 0x0b, 0xa3, 0x03, 0x29, 0x73, 0x1b, 0x7b, 0x23, 0x2b, 0x9b, 0x03, 0x09, 0x03, 0x91, 0x7b, 0xab, 0xa3, 0x2b, 0x03, 0xa1, 0x7b, 0x03, 0x09, 0x73, 0x7b, 0xa3, 0x43, 0x2b, 0x93, 0x03, 0x99, 0x43, 0x4b, 0x83, 0x63, 0x01, 0x99, 0xab, 0x1b, 0x43, 0x03, 0x09, 0x9b, 0x03, 0x09, 0x73, 0x03, 0x49, 0x82, 0xb2, 0xa3, 0x4b, 0x00, 0xfe, 0x87, 0x91, 0x91, 0xc9, 0x95, 0xcd, 0xcd, 0xb9, 0x80, 0x80, 0x48, 0xbd, 0xd5, 0xd1, 0x95, 0xcd, 0x81, 0x84, 0xc9, 0x95, 0x81, 0xbc, 0xc1, 0x85, 0xc5, 0xd5, 0x95, 0x81, 0xd0, 0xbd, 0x81, 0x04, 0xc9, 0xd9, 0xbd, 0x81, 0x84, 0xb9, 0x91, 0x81, 0xbc, 0xb9, 0xb1, 0xe5, 0x81, 0xa0, 0x85, 0xd9, 0x95, 0x81, 0xb4, 0x95, 0x85, 0xb9, 0xa5, 0xb9, 0x9d, 0x81, 0xa4, 0xb9, 0x81, 0xd0, 0xa1, 0x95, 0x4b, 0x00, 0x5a, 0xa7, 0xb9, 0xd1, 0x95, 0xc9, 0xc1, 0xc9, 0x95, 0xd1, 0x95, 0xc9, 0xb9, 0x80, 0x50, 0xa1, 0xa5, 0xcd, 0x81, 0x94, 0xb9, 0x99, 0xbd, 0xc9, 0x8d, 0x95, 0xcd, 0x81, 0xd0, 0xa1, 0x85, 0xd1, 0x81, 0x04, 0xb5, 0x95, 0xcd, 0x81, 0xa4, 0xcd, 0x81, 0xd0, 0xc9, 0x85, 0xb9, 0xcd, 0xc1, 0xbd, 0xc9, 0xd1, 0xb5, 0x84, 0x9d, 0xb9, 0xbd, 0xcd, 0xd1, 0xa5, 0x8d, 0xb9, 0x56, 0x02, 0x78, 0x90, 0x2b, 0x8b, 0xd3, 0x01, 0x49, 0x9b, 0x03, 0x09, 0x03, 0x91, 0x2b, 0x8b, 0xab, 0x2b, 0x9b, 0xa3, 0x97, 0x00, 0x74, 0x9f, 0x0b, 0x6b, 0xd3, 0x01, 0x49, 0x9b, 0x03, 0xa9, 0x9b, 0x4b, 0x73, 0x3b, 0x03, 0xa1, 0x43, 0x2b, 0x03, 0x09, 0x6b, 0x2b, 0x9b, 0x03, 0x81, 0x93, 0x7b, 0xa3, 0x7b, 0x1b, 0x7b, 0x63, 0x03, 0x41, 0x71, 0x7b, 0xa3, 0x03, 0x31, 0x4b, 0x73, 0x2b, 0x03, 0x79, 0x93, 0x03, 0x09, 0x73, 0x7b, 0xa3, 0x43, 0x2b, 0x93, 0x03, 0x81, 0x93, 0x7b, 0xa3, 0x7b, 0x1b, 0x7b, 0x63, 0x4b, 0xb5, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0xec, 0xbd, 0xa0, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x1e, 0xe2, 0x06, 0x6e, 0x88, 0xf8, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc7, 0x43, 0x48, 0x06, 0x8e, 0x87, 0x90, 0x6e, 0xf8, 0x77, 0x7e, 0x01, 0x9f, 0x2c, 0x2f, 0x8c, 0xac, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x7a, 0x08, 0xc9, 0xc0, 0xf5, 0x10, 0xe2, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x72, 0x65, 0xf1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x0f, 0x21, 0x3d, 0x78, 0x37, 0x3d, 0xf3, 0xe1, 0x83, 0xd5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x7c, 0x08, 0xc9, 0xc0, 0xf9, 0x10, 0xe2, 0x0d, 0x7f, 0x2e, 0x6d, 0xb0, 0x4a, 0xfd, 0x77, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0x87, 0x90, 0x1e, 0xbc, 0x57, 0x9f, 0xf9, 0xf0, 0xc1, 0xea, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x3f, 0x84, 0x64, 0xe0, 0x7e, 0x08, 0xbb, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x8c, 0x09, 0xdf, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x1f, 0xc2, 0xe6, 0xe0, 0x99, 0x00, 0xcd, 0x07, 0x0f, 0x9b, 0xfb, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0x88, 0x90, 0x0c, 0x1c, 0x10, 0x61, 0xb7, 0xe1, 0xcf, 0xa5, 0x0d, 0x5e, 0xa6, 0xe2, 0xbb, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x07, 0x44, 0xd8, 0x1c, 0xbc, 0xd5, 0xa0, 0xf9, 0xe0, 0x61, 0x73, 0xbf, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x05, 0x11, 0x92, 0x81, 0x0b, 0x22, 0x34, 0x6c, 0xf8, 0x73, 0x69, 0x83, 0x07, 0x81, 0x27, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x05, 0x11, 0x06, 0x07, 0x0f, 0x66, 0x68, 0xde, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x0b, 0x22, 0x2c, 0x06, 0x2e, 0x88, 0xb0, 0x3a, 0x28, 0x9b, 0x30, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x0b, 0x22, 0xcc, 0x06, 0x2e, 0x88, 0x50, 0x70, 0xf0, 0xbc, 0xa6, 0xdf, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x13, 0x22, 0x24, 0x03, 0x27, 0x44, 0xd8, 0x6e, 0xf8, 0x73, 0x69, 0x83, 0xf7, 0xf5, 0xfb, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x09, 0x11, 0x16, 0x07, 0x2f, 0xc3, 0x68, 0xde, 0xf0, 0x45, 0xcd, 0x86, 0x3a, 0x1e, 0xe0, 0x51, 0x87, 0x37, 0xf6, 0xe6, 0x46, 0x57, 0xe6, 0x46, 0xb7, 0x1a, 0xb4, 0x17, 0x68, 0xb9, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0xc1, 0x91, 0x21, 0xf4, 0xa0, 0xbd, 0x40, 0xcb, 0x06, 0xe0, 0x97, 0xac, 0x4c, 0xac, 0xee, 0x0c, 0x04, 0x4e, 0x2e, 0xcd, 0x8d, 0x2e, 0xcd, 0xed, 0x0c, 0x64, 0xec, 0xcd, 0xcd, 0x2c, 0xed, 0xac, 0x4e, 0x2e, 0x8c, 0x2e, 0xed, 0xcd, 0x5d, 0x09, 0xe0, 0xcb, 0xae, 0x4c, 0x4c, 0x07, 0xc4, 0xae, 0x4c, 0x4e, 0xec, 0x6d, 0x2e, 0x8d, 0x2e, 0x0f, 0x84, 0xee, 0xed, 0xec, 0x8c, 0xad, 0x6c, 0x5e, 0x02, 0xf0, 0x6a, 0x0e, 0x2d, 0x0d, 0x6e, 0x4e, 0x07, 0x24, 0x8d, 0xac, 0xcc, 0x8d, 0x2e, 0x8d, 0x2e, 0x0f, 0xc4, 0x2c, 0x8d, 0x8d, 0xae, 0x4c, 0x6e, 0x07, 0x24, 0xcd, 0x0c, 0xc4, 0x8f, 0x05, 0x04, 0x4e, 0x2e, 0xcd, 0x8d, 0x0e, 0xc4, 0xec, 0x4d, 0x0e, 0x24, 0x8c, 0x8d, 0xad, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0xf6, 0x02, 0x2d, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xc2, 0xc7, 0x0d, 0xd4, 0xf8, 0xf8, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x15, 0x3e, 0x24, 0x03, 0x15, 0x3e, 0x0c, 0x37, 0xfc, 0xb9, 0x34, 0xe0, 0xd9, 0x95, 0x89, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xe1, 0x43, 0x7a, 0xf0, 0xa2, 0x99, 0xe6, 0x0d, 0xff, 0xce, 0x2f, 0x80, 0x97, 0x5d, 0x99, 0x58, 0x4b, 0x18, 0x1b, 0x5b, 0xcb, 0x9b, 0x99, 0x59, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x89, 0x0f, 0xc9, 0x40, 0x89, 0x0f, 0xcb, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0xd4, 0xa9, 0xd0, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0xf1, 0x21, 0x3f, 0x78, 0xb7, 0x4e, 0xf3, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0xf8, 0x30, 0x18, 0x28, 0xf1, 0x61, 0x73, 0x50, 0x22, 0xbe, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x25, 0x3e, 0x8c, 0x06, 0x4a, 0x7c, 0x18, 0x1e, 0xb4, 0x6d, 0x3d, 0x5e, 0x2b, 0x80, 0xa7, 0x5c, 0x59, 0x5c, 0x5d, 0xd9, 0x1c, 0x5d, 0xcb, 0x1c, 0x5d, 0x18, 0x5d, 0xb9, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0x5e, 0xa2, 0xe6, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x39, 0xe3, 0x06, 0xae, 0xce, 0xf8, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x27, 0x67, 0x48, 0x06, 0x4e, 0xce, 0xb0, 0xdb, 0xf0, 0xe7, 0xd2, 0x06, 0x0b, 0xb9, 0xe1, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xe4, 0x0c, 0xe9, 0xc1, 0x93, 0x98, 0x9a, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xe4, 0x0c, 0xf1, 0xc0, 0xc9, 0x19, 0x16, 0x07, 0x25, 0xe2, 0xfb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x72, 0x86, 0xc9, 0xc0, 0xc9, 0x19, 0x66, 0x07, 0x4f, 0x4f, 0xf7, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x39, 0x43, 0x32, 0x70, 0x73, 0x86, 0xe1, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb8, 0xb0, 0x7c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xce, 0x90, 0x1e, 0xbc, 0xfa, 0xaa, 0x79, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xce, 0x10, 0x0f, 0xdc, 0x9c, 0x61, 0x72, 0x50, 0x36, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x37, 0x67, 0xd8, 0x0c, 0xdc, 0x9c, 0x61, 0x77, 0x70, 0x46, 0x42, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x3a, 0x43, 0x32, 0x70, 0x74, 0x86, 0xf5, 0x86, 0x3f, 0x97, 0x06, 0x1e, 0x6e, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa3, 0x33, 0x84, 0x07, 0xaf, 0x1a, 0x6b, 0xde, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa3, 0x33, 0xa4, 0x03, 0x47, 0x67, 0x58, 0x1c, 0x94, 0x4d, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xd1, 0x19, 0x26, 0x03, 0x47, 0x67, 0x18, 0x6f, 0xf8, 0x77, 0x7e, 0x01, 0x7c, 0xe0, 0xc2, 0xc6, 0xe8, 0x5a, 0xe6, 0xe8, 0xc2, 0xe8, 0xca, 0xaa, 0xc3, 0x29, 0xb6, 0x00, 0x1e, 0x65, 0x74, 0x63, 0x68, 0x2d, 0x73, 0x68, 0x6f, 0xf4, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0xcb, 0xdd, 0x9a, 0x1b, 0x00, 0x3f, 0xe6, 0xca, 0xe4, 0xd2, 0xc2, 0xd8, 0xd2, 0xf4, 0xca, 0x40, 0xc2, 0x40, 0xe0, 0xc2, 0xc6, 0xd6, 0xca, 0xe8, 0x40, 0xd2, 0xdc, 0xe8, 0xde, 0x40, 0xc2, 0x40, 0xc4, 0xf2, 0xe8, 0xca, 0xe6, 0xe8, 0xe4, 0xca, 0xc2, 0xda, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xf2, 0x8b, 0x1b, 0xb8, 0x0a, 0xc3, 0x7c, 0xc3, 0x2f, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xe5, 0x17, 0x92, 0x81, 0xcb, 0x2f, 0xa4, 0x07, 0x4f, 0xac, 0xe3, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd3, 0x2f, 0xee, 0xe0, 0xb1, 0x78, 0xcd, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xbf, 0x90, 0x0c, 0x9c, 0x7e, 0x21, 0x3d, 0x78, 0xe7, 0x1b, 0xef, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x7f, 0x71, 0x07, 0x8f, 0xc5, 0x6b, 0xde, 0xa0, 0x20, 0x8d, 0x1d, 0xc0, 0x63, 0xce, 0x8d, 0x4c, 0xae, 0xa5, 0xad, 0x8c, 0x2e, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0xbf, 0x30, 0x1a, 0x38, 0xfe, 0x42, 0xc9, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe3, 0x2f, 0xac, 0x06, 0x8e, 0xbf, 0x30, 0xdf, 0xf0, 0xb6, 0xce, 0x06, 0x8f, 0x4c, 0x08, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xfe, 0xc2, 0x7e, 0xe0, 0xf8, 0x0b, 0x1d, 0x07, 0xcf, 0xbd, 0xf3, 0x6d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xae, 0xbf, 0xb8, 0x83, 0xc7, 0xe2, 0x35, 0x6f, 0x50, 0x90, 0xc6, 0x0e, 0xe0, 0x21, 0x37, 0x66, 0x27, 0xd7, 0xd2, 0x56, 0x46, 0x17, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd7, 0x5f, 0x18, 0x0d, 0x5c, 0x7f, 0xa1, 0x64, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xf5, 0x17, 0x56, 0x03, 0xd7, 0x5f, 0x98, 0x1f, 0x3c, 0x5e, 0xb1, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xfe, 0xc2, 0x7e, 0xe0, 0xfa, 0x0b, 0x1d, 0x07, 0xef, 0x89, 0xf6, 0x6d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xbf, 0xb8, 0x83, 0xc7, 0xe2, 0x35, 0x6f, 0x50, 0x90, 0xc6, 0xae, 0xe1, 0xfb, 0xf6, 0x0d, 0x96, 0x4d, 0x41, 0x6f, 0x50, 0x42, 0xc7, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf7, 0x5f, 0x88, 0x07, 0xee, 0xbf, 0x90, 0x1f, 0x7e, 0xa8, 0x39, 0x08, 0xd3, 0xb1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x00, 0x8c, 0x1f, 0x38, 0x03, 0x43, 0xb2, 0x41, 0x92, 0x01, 0xe1, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x00, 0x86, 0x6c, 0xe0, 0x00, 0x0c, 0xf1, 0xc1, 0x21, 0x06, 0x62, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x00, 0x43, 0x32, 0x70, 0x01, 0x86, 0xc9, 0xc1, 0xf3, 0x6b, 0x7e, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x13, 0x30, 0x24, 0x03, 0x27, 0x60, 0x98, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x01, 0x43, 0x34, 0x70, 0x02, 0x86, 0xf4, 0xa0, 0x34, 0xe0, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xc0, 0x10, 0x0f, 0x9c, 0x80, 0x21, 0x3f, 0x08, 0x58, 0xd6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x04, 0x0c, 0x83, 0x81, 0x13, 0x30, 0x2c, 0x0f, 0x1e, 0x95, 0xf3, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x03, 0x86, 0x64, 0xe0, 0x06, 0x0c, 0xab, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x37, 0x60, 0x88, 0x06, 0x6e, 0xc0, 0x90, 0x1e, 0x94, 0x06, 0xbc, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x0d, 0x18, 0xe2, 0x81, 0x1b, 0x30, 0xe4, 0x07, 0x45, 0xa5, 0xf8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x03, 0x86, 0xc1, 0xc0, 0x0d, 0x18, 0x46, 0x07, 0xcf, 0xbd, 0xf3, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x02, 0x43, 0x32, 0x70, 0x04, 0x86, 0xa6, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x47, 0x60, 0x88, 0x06, 0x8e, 0xc0, 0x90, 0x1e, 0x94, 0x06, 0xbc, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x11, 0x18, 0xe2, 0x81, 0x23, 0x30, 0x74, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x02, 0x43, 0x3e, 0x70, 0x04, 0x86, 0xc1, 0x41, 0x51, 0x29, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x81, 0x61, 0x31, 0x70, 0x04, 0x86, 0x8a, 0x0d, 0x1f, 0x47, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x11, 0x18, 0x36, 0x03, 0x47, 0x60, 0x68, 0xd8, 0xf0, 0xb6, 0xce, 0x06, 0xcf, 0x77, 0xa9, 0xdc, 0xe0, 0x99, 0x84, 0xcd, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x81, 0xa1, 0x64, 0xe0, 0x08, 0x0c, 0x45, 0x07, 0xef, 0x89, 0xf6, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x02, 0x43, 0x32, 0x70, 0x05, 0x86, 0x07, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xae, 0xc0, 0x10, 0x0d, 0x5c, 0x81, 0x21, 0x3d, 0x28, 0x0d, 0x78, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x2b, 0x30, 0xc4, 0x03, 0x57, 0x60, 0x28, 0xde, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x05, 0x86, 0x7c, 0xe0, 0x0a, 0x0c, 0x83, 0x83, 0xa2, 0x52, 0x7c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x02, 0xc3, 0x62, 0xe0, 0x0a, 0x0c, 0xbd, 0x1b, 0x3e, 0x8e, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x2b, 0x30, 0x6c, 0x06, 0xae, 0xc0, 0x50, 0xbb, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x0a, 0x0c, 0xa3, 0x81, 0x2b, 0x30, 0xec, 0x0e, 0x7f, 0x02, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x57, 0x60, 0x18, 0x0e, 0x5c, 0x81, 0xa1, 0xe6, 0xe0, 0xb1, 0xd0, 0xcd, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x15, 0x18, 0x7a, 0x06, 0xae, 0xc0, 0xd0, 0xba, 0xe1, 0x6d, 0x9d, 0x0d, 0x9e, 0xef, 0x52, 0xb9, 0xc1, 0x2b, 0x23, 0x9b, 0xab, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x0a, 0x0c, 0xcd, 0x03, 0x57, 0x60, 0x38, 0x70, 0xf0, 0xf8, 0x9f, 0xdf, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x3b, 0x30, 0xee, 0xe0, 0xb1, 0x78, 0xcd, 0x1b, 0x14, 0xa4, 0xb1, 0x1b, 0xbc, 0x68, 0xaa, 0x77, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x03, 0xc3, 0x66, 0xe0, 0x0e, 0x0c, 0x55, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xc0, 0x30, 0x1a, 0xb8, 0x03, 0xc3, 0xee, 0xa0, 0xc8, 0xc4, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xc0, 0x30, 0x1c, 0xb8, 0x03, 0xc3, 0x7c, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x1d, 0x18, 0x96, 0x03, 0x77, 0x60, 0x98, 0x1e, 0x1e, 0xbc, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xc0, 0xb0, 0x1d, 0xb8, 0x03, 0xc3, 0xfa, 0x20, 0x4d, 0xc5, 0xb5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x0e, 0x0c, 0xfb, 0x81, 0x3b, 0x30, 0x34, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x03, 0x43, 0xc1, 0xc0, 0x1d, 0x18, 0x3a, 0x0e, 0x4a, 0x7e, 0xff, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x0e, 0x0c, 0x25, 0x03, 0x77, 0x60, 0x28, 0x3a, 0x78, 0xd3, 0x67, 0x6f, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x21, 0x18, 0x77, 0xf0, 0x58, 0xbc, 0xe6, 0x0d, 0x8e, 0x63, 0x13, 0x1b, 0xbc, 0x61, 0x21, 0x72, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x04, 0x43, 0x3e, 0x70, 0x08, 0x86, 0xed, 0x06, 0xc5, 0x24, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x08, 0x86, 0xc9, 0xc0, 0x21, 0x18, 0x36, 0x07, 0x45, 0x2a, 0xe6, 0xc1, 0x73, 0xc0, 0x13, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x43, 0x30, 0xac, 0x07, 0x0e, 0xc1, 0x50, 0xbe, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x10, 0x0c, 0xf3, 0x81, 0x43, 0x30, 0x34, 0x1c, 0x1c, 0x62, 0x20, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x43, 0x30, 0x54, 0x0c, 0x1c, 0x82, 0xa1, 0x6a, 0xc3, 0xdb, 0x3a, 0x83, 0xd7, 0x07, 0xcf, 0x01, 0x4f, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0xc1, 0xd0, 0x35, 0x70, 0x08, 0x86, 0xee, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x87, 0x60, 0x28, 0x1b, 0x38, 0x04, 0x43, 0xdf, 0x41, 0x69, 0xc0, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x82, 0xa1, 0x70, 0xe0, 0x10, 0x0c, 0xad, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0xc1, 0xd0, 0x38, 0x70, 0x08, 0x86, 0xca, 0x83, 0xa2, 0x52, 0x7c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x04, 0x43, 0xe7, 0xc0, 0x21, 0x18, 0x4a, 0x0f, 0x8e, 0xcb, 0x33, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x87, 0x60, 0xa8, 0x1d, 0x38, 0x04, 0x43, 0xf5, 0xc1, 0x9b, 0x3e, 0x7b, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xc1, 0xb8, 0x83, 0xc7, 0xe2, 0x35, 0x6f, 0x50, 0x90, 0xc6, 0xae, 0xe1, 0xfb, 0xf6, 0x0d, 0x1e, 0x47, 0x46, 0xb7, 0x41, 0x09, 0x1d, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x82, 0x61, 0x30, 0x70, 0x0a, 0x86, 0xc5, 0xe1, 0x87, 0x9a, 0x83, 0x30, 0x1d, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xc1, 0xf8, 0x81, 0xa3, 0x30, 0x24, 0x1b, 0x14, 0x9d, 0xc6, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x2d, 0x18, 0xb2, 0x81, 0x5b, 0x30, 0xc4, 0x07, 0x65, 0x71, 0xf4, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x0b, 0x86, 0xc1, 0xc0, 0x2d, 0x18, 0x16, 0x87, 0x07, 0x6f, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x18, 0x8c, 0x3f, 0x78, 0xe0, 0x8d, 0xf3, 0x06, 0x47, 0xd7, 0xc1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x18, 0x0c, 0xd9, 0xc0, 0x31, 0x18, 0x96, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0xc1, 0x10, 0x0e, 0x1c, 0x83, 0x21, 0x3d, 0x08, 0x58, 0xd6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x18, 0x0c, 0xf1, 0xc0, 0x31, 0x18, 0x86, 0x1b, 0x3e, 0x77, 0xd9, 0xe0, 0xb1, 0xd9, 0x8f, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x0c, 0x86, 0xdd, 0xc1, 0x7b, 0x8f, 0x9c, 0x0f, 0x0f, 0xde, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x83, 0x21, 0x1b, 0xb8, 0x06, 0xc3, 0x64, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x35, 0x18, 0xc2, 0x81, 0x6b, 0x30, 0xa4, 0x87, 0xc7, 0x64, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x6b, 0x30, 0xc4, 0x03, 0xd7, 0x60, 0x58, 0x1c, 0xbc, 0xfb, 0xe5, 0xb7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x1c, 0x0c, 0xd9, 0xc0, 0x39, 0x18, 0x26, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0xc1, 0x10, 0x0e, 0x9c, 0x83, 0x21, 0x3d, 0x3c, 0x26, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x83, 0x21, 0x1e, 0x38, 0x07, 0xc3, 0xe2, 0x60, 0x99, 0xfc, 0x70, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x3d, 0x18, 0xb2, 0x81, 0x7b, 0x30, 0xec, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x83, 0x21, 0x1c, 0xb8, 0x07, 0x43, 0x7a, 0x50, 0x54, 0x8a, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf7, 0x60, 0x88, 0x07, 0xee, 0xc1, 0x30, 0x3f, 0x78, 0x7e, 0x3c, 0x6f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x41, 0x18, 0xb2, 0x81, 0x83, 0x30, 0xac, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x84, 0x21, 0x1c, 0x38, 0x08, 0x43, 0x7a, 0x10, 0xb0, 0xac, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x41, 0x18, 0xe2, 0x81, 0x83, 0x30, 0x8c, 0x37, 0xbc, 0xad, 0xb3, 0xc1, 0xf3, 0xe0, 0x7e, 0x0f, 0x1e, 0x1b, 0xdd, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x11, 0x86, 0x6c, 0xe0, 0x22, 0x0c, 0xeb, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x17, 0x61, 0x08, 0x07, 0x2e, 0xc2, 0x90, 0x1e, 0x04, 0x2c, 0xeb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x11, 0x86, 0x78, 0xe0, 0x22, 0x0c, 0xe3, 0x0d, 0x6f, 0xeb, 0x6c, 0xf0, 0x3c, 0xb8, 0xdf, 0x83, 0x57, 0xb9, 0x37, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x84, 0x21, 0x1b, 0x38, 0x09, 0xc3, 0x70, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x49, 0x18, 0xc2, 0x81, 0x93, 0x30, 0xc4, 0x07, 0x69, 0x2a, 0xae, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x49, 0x18, 0xf2, 0x81, 0x93, 0x30, 0xec, 0x0e, 0x5e, 0x51, 0xde, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x13, 0x86, 0x6c, 0xe0, 0x26, 0x0c, 0x0d, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xc2, 0x10, 0x0e, 0xdc, 0x84, 0x21, 0x3d, 0x3c, 0x26, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x84, 0x21, 0x1e, 0xb8, 0x09, 0x43, 0xc1, 0x86, 0xcf, 0x5d, 0x36, 0x78, 0xa3, 0x5a, 0xef, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x84, 0x61, 0x76, 0xf0, 0x28, 0x43, 0xe7, 0x0d, 0xd6, 0x00, 0x2d, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x4d, 0x18, 0x96, 0x03, 0x37, 0x61, 0xd8, 0x1f, 0x3c, 0x95, 0xe7, 0xb7, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x2a, 0x8c, 0x3b, 0x78, 0x2c, 0x5e, 0xf3, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xab, 0x30, 0x76, 0xe0, 0x2a, 0x0c, 0xc9, 0xc1, 0x21, 0x06, 0x62, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x0a, 0x43, 0x34, 0x70, 0x15, 0x86, 0xc1, 0xc1, 0xa3, 0x00, 0xe9, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xab, 0x30, 0x2c, 0x06, 0xae, 0xc2, 0xb0, 0xde, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x15, 0x86, 0xc9, 0xc0, 0x55, 0x18, 0x56, 0x07, 0xa5, 0x01, 0xef, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x15, 0x86, 0xd9, 0xc0, 0x55, 0x18, 0x76, 0x07, 0x87, 0x05, 0xb6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x2a, 0x0c, 0xc3, 0x81, 0xab, 0x30, 0x8c, 0x0f, 0xde, 0xf4, 0xd9, 0x5b, 0xb3, 0x06, 0x6f, 0x93, 0xe7, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x78, 0x9b, 0x3c, 0x6f, 0x03, 0xe0, 0xd1, 0x58, 0x9d, 0x9c, 0x5c, 0x99, 0x1b, 0x1d, 0x88, 0x5d, 0x99, 0xdc, 0x5c, 0xda, 0x9b, 0x1b, 0xc8, 0x9b, 0x19, 0x08, 0x1d, 0x5a, 0x19, 0x48, 0x58, 0x5b, 0xd9, 0x1c, 0xc8, 0x5d, 0x9a, 0x5c, 0x19, 0x08, 0x9c, 0xdc, 0x1b, 0xdd, 0xdb, 0xd8, 0x1b, 0xdb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0xf1, 0xb0, 0x1c, 0xa8, 0xe2, 0xa1, 0x77, 0xc3, 0x5f, 0x34, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x15, 0x0f, 0xd3, 0x81, 0x2a, 0x1e, 0x4a, 0x37, 0x08, 0x36, 0xd3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x8a, 0x87, 0xf1, 0x40, 0x15, 0x0f, 0xf3, 0x83, 0x90, 0x4e, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xaa, 0x78, 0xd8, 0x0f, 0x54, 0xf1, 0xd0, 0x70, 0x10, 0x38, 0xaa, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x15, 0x0f, 0x15, 0x03, 0x55, 0x3c, 0x94, 0x1c, 0x04, 0xb1, 0xe9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xc5, 0x43, 0xcb, 0x40, 0x15, 0x0f, 0x3d, 0x07, 0x21, 0x73, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0xf1, 0x50, 0x34, 0x50, 0xc5, 0x43, 0xd5, 0xc1, 0x1a, 0x34, 0xbc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x8a, 0x87, 0xae, 0x81, 0x2a, 0x1e, 0xda, 0x0e, 0x56, 0xe1, 0x15, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x55, 0x3c, 0xd4, 0x0d, 0x54, 0xf1, 0x50, 0x78, 0xb0, 0xac, 0xb7, 0x78, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xe2, 0xa1, 0x71, 0xa0, 0x8a, 0x87, 0xce, 0x83, 0x65, 0x14, 0xc6, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x15, 0x0f, 0xad, 0x07, 0x8f, 0x54, 0x75, 0x3e, 0x58, 0x16, 0x00, 0x7c, 0x38, 0xc5, 0xd6, 0xe0, 0x51, 0x69, 0xc7, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0x8f, 0x4a, 0x3b, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x63, 0x28, 0x6e, 0xe0, 0x20, 0x8a, 0xdf, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x0c, 0x85, 0x64, 0xe0, 0x18, 0x0a, 0xab, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0xa6, 0xe3, 0xe1, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x86, 0x42, 0x74, 0xf0, 0xdc, 0x66, 0xe7, 0x83, 0xa7, 0x2c, 0x0f, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd7, 0x50, 0x48, 0x06, 0xae, 0xa1, 0xd0, 0xb1, 0xe1, 0xcf, 0xa5, 0x0d, 0x5e, 0x64, 0xa1, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd7, 0x50, 0xd8, 0x1d, 0x3c, 0x79, 0xda, 0xf9, 0xe0, 0x61, 0x1a, 0xca, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x39, 0x14, 0x92, 0x81, 0x73, 0x28, 0xcc, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0xbb, 0x35, 0x94, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x1c, 0x0a, 0xd1, 0xc1, 0xc3, 0xb3, 0x9d, 0x0f, 0x1e, 0xa6, 0xa1, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x43, 0x21, 0x19, 0xb8, 0x87, 0xc2, 0x64, 0xc3, 0x9f, 0x4b, 0x1b, 0x2c, 0xa3, 0xea, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x7b, 0x28, 0x44, 0x07, 0x8f, 0xff, 0x76, 0x3e, 0x78, 0xa8, 0x8c, 0x72, 0x87, 0x53, 0x6c, 0x0d, 0x1e, 0xb9, 0x87, 0xb1, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0xc1, 0x91, 0x21, 0xf4, 0xe0, 0x91, 0x7b, 0x18, 0x0d, 0xc0, 0x9b, 0x5d, 0x99, 0x9c, 0xd8, 0xdb, 0x5c, 0x1a, 0x5d, 0x1e, 0x88, 0x19, 0x5b, 0xd8, 0x19, 0x88, 0xd9, 0x9b, 0x1c, 0x48, 0x58, 0x5b, 0xd9, 0xdc, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x23, 0xf7, 0x30, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x96, 0x87, 0x74, 0xa0, 0x96, 0x87, 0x07, 0x1b, 0x04, 0x9b, 0xe9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xcb, 0x43, 0x3e, 0x50, 0xcb, 0xc3, 0x66, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x81, 0x37, 0xe7, 0x46, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb5, 0x3c, 0x8c, 0x06, 0x6a, 0x79, 0x18, 0x6e, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0x2e, 0xf0, 0xe4, 0xc6, 0xec, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x96, 0x87, 0xe5, 0x40, 0x2d, 0x0f, 0xeb, 0x83, 0xa7, 0x78, 0xd3, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb5, 0x3c, 0xcc, 0x07, 0x6a, 0x79, 0xa8, 0xd8, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0x5d, 0xe0, 0xb5, 0xcd, 0x9d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x2d, 0x0f, 0x1d, 0x03, 0xb5, 0x3c, 0xf4, 0x6c, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0x2e, 0xf0, 0xce, 0xca, 0xe6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x96, 0x87, 0xa2, 0x81, 0x5a, 0x1e, 0xca, 0x36, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xb0, 0x90, 0x1b, 0x7e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xe5, 0xa1, 0x6d, 0xa0, 0x96, 0x87, 0xc6, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x34, 0x79, 0x28, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xd4, 0xf2, 0x50, 0x39, 0x50, 0xcb, 0x43, 0xed, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x02, 0x6f, 0x2d, 0x2c, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6a, 0x79, 0xe8, 0x1d, 0xa8, 0xe5, 0xa1, 0x7b, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x2d, 0x6d, 0x96, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb5, 0x3c, 0x94, 0x0f, 0xd4, 0xf2, 0x70, 0x60, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0x29, 0xc4, 0x47, 0xcd, 0x1a, 0xbc, 0x42, 0x27, 0x64, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0x15, 0x3a, 0x21, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x18, 0x84, 0xd9, 0xc0, 0x61, 0x10, 0xd6, 0x07, 0x6f, 0x10, 0x76, 0x5c, 0x01, 0x2f, 0xee, 0x6d, 0xde, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xe0, 0xc8, 0x10, 0x1a, 0x78, 0x71, 0x6f, 0x73, 0x03, 0xa0, 0x73, 0x5c, 0x5d, 0x18, 0x5b, 0x1a, 0x5d, 0x1e, 0xc8, 0x9b, 0x19, 0xc8, 0x5c, 0x99, 0x9c, 0x5d, 0xda, 0x58, 0xd9, 0x0e, 0x08, 0xda, 0xdb, 0x1d, 0x48, 0xda, 0x1c, 0xc8, 0x5b, 0x9d, 0x1c, 0xc8, 0xd8, 0x9b, 0x9b, 0x5b, 0xd9, 0x18, 0x5d, 0xda, 0x9b, 0x1b, 0x08, 0xdd, 0x1b, 0x48, 0x18, 0x08, 0x5c, 0x59, 0x99, 0x1c, 0x08, 0xd9, 0x5b, 0x9a, 0xdb, 0xd9, 0x5f, 0x09, 0xc0, 0x7f, 0x17, 0xb6, 0xb0, 0x39, 0xba, 0x96, 0xb1, 0x37, 0x37, 0xba, 0xb0, 0x31, 0x3a, 0x1d, 0x10, 0xb6, 0xb0, 0x39, 0x3a, 0x10, 0xba, 0xb4, 0xb6, 0x32, 0x90, 0xbb, 0x32, 0x10, 0xb4, 0xb2, 0x30, 0x39, 0x32, 0x10, 0x33, 0xb9, 0xb7, 0x36, 0x10, 0xb8, 0xb2, 0x32, 0x39, 0x16, 0x90, 0x37, 0x39, 0x90, 0x34, 0x33, 0x90, 0x92, 0x3a, 0x37, 0xb1, 0x37, 0x39, 0x37, 0x16, 0x90, 0x3b, 0xb4, 0x32, 0x77, 0x09, 0xe0, 0xfb, 0xae, 0x0c, 0xc4, 0x2c, 0x4d, 0x6e, 0x8e, 0x0e, 0x64, 0x8e, 0x2e, 0x4c, 0x8e, 0xae, 0x8c, 0x0c, 0x84, 0x4e, 0x2e, 0x6c, 0x6c, 0x2d, 0xcd, 0xed, 0x0c, 0x84, 0x2e, 0xad, 0xad, 0xac, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0xc0, 0x8b, 0x7b, 0x9b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x7a, 0x89, 0x1b, 0x38, 0x5f, 0x42, 0xdd, 0x06, 0xa1, 0x86, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x2f, 0x21, 0x19, 0xb8, 0x5e, 0xc2, 0x6e, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xf5, 0x12, 0xa2, 0x81, 0xeb, 0x25, 0x2c, 0x36, 0xbc, 0x71, 0xb7, 0xe1, 0xe5, 0xbb, 0x80, 0xaf, 0xce, 0x4d, 0xec, 0x4d, 0xce, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xae, 0x97, 0x30, 0x19, 0xb8, 0x5e, 0xc2, 0x6c, 0x83, 0x42, 0x30, 0x75, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xae, 0x97, 0xb0, 0x39, 0x78, 0x74, 0xce, 0xf3, 0xc1, 0x91, 0xaf, 0xb5, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x5f, 0xe2, 0x0e, 0x1e, 0x05, 0xf3, 0xbc, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x7c, 0x89, 0x1d, 0x38, 0x5f, 0xc2, 0x78, 0x83, 0x60, 0x33, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0x97, 0x10, 0x0c, 0x9c, 0x2f, 0x21, 0x3d, 0x78, 0x1e, 0xe0, 0xdf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xbe, 0x84, 0x78, 0xe0, 0x7c, 0x09, 0x9b, 0x83, 0x97, 0xf9, 0xfd, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe7, 0x4b, 0x18, 0x0d, 0x9c, 0x2f, 0x61, 0xbb, 0x21, 0x03, 0x7e, 0xf0, 0x5a, 0x9b, 0xe7, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf3, 0x25, 0xac, 0x07, 0xce, 0x97, 0xd0, 0xb6, 0xe1, 0xcf, 0xa5, 0x01, 0xfc, 0xd8, 0xc2, 0xe6, 0xe8, 0x5a, 0xc6, 0xde, 0xdc, 0xe8, 0xc2, 0xc6, 0xe8, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x5f, 0x42, 0xd5, 0xc1, 0x13, 0x9b, 0x9e, 0x0f, 0x8e, 0x7c, 0xad, 0x1d, 0x4e, 0xb1, 0xd6, 0xe0, 0x79, 0x7d, 0x2d, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xcf, 0xeb, 0x6b, 0x69, 0x00, 0x3c, 0x80, 0x0b, 0xcb, 0x63, 0x7b, 0x0b, 0x23, 0x9b, 0x03, 0x11, 0x7b, 0xab, 0x73, 0x23, 0x2b, 0x23, 0x03, 0x49, 0x73, 0x03, 0xa1, 0x43, 0x2b, 0x03, 0x71, 0x0b, 0x6b, 0x2b, 0x9b, 0x83, 0x0b, 0x1b, 0x2b, 0xdb, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0x5e, 0x5f, 0xcb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x92, 0x61, 0x36, 0x70, 0x4b, 0x86, 0x0f, 0x1b, 0x04, 0x9b, 0xe9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x4b, 0x86, 0xe1, 0xc0, 0x2d, 0x19, 0xd6, 0x07, 0x8f, 0xd7, 0x1e, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xc9, 0x30, 0x1f, 0xb8, 0x25, 0x43, 0xc7, 0xc1, 0xf3, 0x3b, 0xf1, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5b, 0x32, 0x94, 0x0c, 0xdc, 0x92, 0xa1, 0x6d, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x01, 0x7f, 0xd8, 0xd8, 0x5a, 0x0b, 0x1c, 0x5b, 0x59, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x92, 0xa1, 0x6e, 0xe0, 0x96, 0x0c, 0xbd, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x0b, 0xf8, 0xc3, 0xc6, 0xd6, 0x5a, 0xc4, 0xde, 0xde, 0xdc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x96, 0x0c, 0xc5, 0x03, 0xb7, 0x64, 0x28, 0xdf, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0xd3, 0x87, 0xdd, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x2d, 0x19, 0xda, 0x07, 0x6e, 0xc9, 0x70, 0xe1, 0xe0, 0xb9, 0xa3, 0xc9, 0xad, 0x80, 0xe7, 0x16, 0x36, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x06, 0x9e, 0x5b, 0xd8, 0xd8, 0x00, 0x7e, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x20, 0x2b, 0x63, 0x61, 0x6e, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xd2, 0xc6, 0x0d, 0x5c, 0xb5, 0x61, 0xbf, 0xe1, 0x17, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xa4, 0x0d, 0xc9, 0xc0, 0x49, 0x1b, 0xfa, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0xb4, 0x21, 0x1a, 0x38, 0x69, 0xc3, 0x60, 0xc3, 0x9f, 0x4b, 0x83, 0x87, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xd2, 0x86, 0xf0, 0xe0, 0xd1, 0x7e, 0xcf, 0x87, 0x6f, 0xe7, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x93, 0x36, 0x2c, 0x06, 0x4e, 0xda, 0x50, 0xb5, 0xe1, 0xcf, 0xa5, 0xc1, 0xc5, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x69, 0xc3, 0xe6, 0xe0, 0x69, 0x84, 0xcf, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xd2, 0x86, 0xd1, 0xc0, 0x49, 0x1b, 0x86, 0x07, 0x21, 0x65, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0xb4, 0x61, 0x39, 0x70, 0xd2, 0x86, 0xa6, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x69, 0xc3, 0x74, 0xe0, 0xa4, 0x0d, 0xf3, 0x83, 0xd2, 0x9b, 0x7e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x69, 0xc3, 0x7e, 0xe0, 0xa4, 0x0d, 0x1d, 0x87, 0x07, 0xf0, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x93, 0x36, 0x94, 0x0c, 0x9c, 0xb4, 0xa1, 0xe8, 0xf0, 0x00, 0x7e, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x27, 0x6d, 0xe8, 0x1a, 0x38, 0x69, 0x43, 0xdd, 0x86, 0x3f, 0x97, 0x06, 0x1f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xa4, 0x0d, 0x6d, 0x07, 0x8f, 0xbe, 0x7c, 0x3e, 0xfc, 0x50, 0xd3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xb4, 0x71, 0x07, 0x6f, 0xcb, 0x7b, 0xde, 0xf0, 0x17, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xd3, 0x86, 0x64, 0xe0, 0xa6, 0x0d, 0x8b, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x69, 0x43, 0x34, 0x70, 0xd3, 0x86, 0xf8, 0x20, 0xa4, 0x4c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9b, 0x36, 0xe4, 0x03, 0x37, 0x6d, 0x18, 0x1c, 0x7e, 0xa8, 0x69, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0xda, 0xb8, 0x83, 0xb7, 0xe5, 0x3d, 0x6f, 0x50, 0xc2, 0x63, 0x6e, 0xf8, 0x3c, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x6a, 0x43, 0x38, 0x70, 0xd4, 0x86, 0xf4, 0xa0, 0xa0, 0xc8, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xab, 0x36, 0xee, 0xe0, 0x6d, 0x79, 0xcf, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xae, 0xda, 0xd8, 0x81, 0xab, 0x36, 0xac, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xb5, 0xf1, 0x03, 0x57, 0x6d, 0x88, 0x0e, 0x4a, 0xa2, 0xd9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xaa, 0x0d, 0xd9, 0xc0, 0x55, 0x1b, 0xc2, 0xc3, 0xd3, 0x3a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x55, 0x1b, 0xd2, 0x81, 0xab, 0x36, 0x4c, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xb5, 0x21, 0x1e, 0xb8, 0x6a, 0xc3, 0xe2, 0xa0, 0xf8, 0x41, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x6a, 0xc3, 0x66, 0xe0, 0xaa, 0x0d, 0xa3, 0xc3, 0xd3, 0x3b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x57, 0x6d, 0x98, 0x0d, 0x5c, 0xb5, 0x61, 0xbe, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0xe1, 0xf3, 0xa0, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x6a, 0xc3, 0x74, 0xe0, 0xaa, 0x0d, 0xeb, 0x83, 0x22, 0xfc, 0xb4, 0x56, 0x83, 0xd7, 0x23, 0x37, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x86, 0x21, 0x6e, 0x20, 0x15, 0x12, 0xbf, 0x41, 0xc9, 0xc2, 0x3e, 0xcb, 0xac, 0x41, 0x3a, 0xa5, 0xcf, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x22, 0xe2, 0x07, 0x72, 0x12, 0x61, 0xbd, 0x41, 0xa1, 0xdc, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x22, 0x42, 0x36, 0x90, 0x8b, 0x08, 0x1d, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x11, 0x21, 0x1c, 0xc8, 0x45, 0x84, 0xf5, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5c, 0x44, 0x48, 0x07, 0x72, 0x11, 0x61, 0xb4, 0xe1, 0xcf, 0xa5, 0x0d, 0xdd, 0x00, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x17, 0x11, 0x16, 0x07, 0x4f, 0x9a, 0x7e, 0x3e, 0x28, 0xb3, 0x74, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5c, 0x44, 0x58, 0x0d, 0xe4, 0x22, 0xc2, 0x78, 0xc3, 0x9f, 0x4b, 0x1b, 0x56, 0x86, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x17, 0x11, 0x96, 0x07, 0x6f, 0xc9, 0x7e, 0x3e, 0x28, 0xb3, 0x74, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x11, 0x61, 0x3e, 0x90, 0x8b, 0x08, 0x15, 0x1b, 0xfe, 0x5c, 0xda, 0xa0, 0x79, 0x0a, 0xa9, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x45, 0x84, 0xfd, 0xc1, 0x2b, 0xbe, 0x9f, 0x37, 0xfc, 0x3b, 0xbf, 0x41, 0x33, 0x28, 0x52, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0x88, 0xf8, 0x83, 0x27, 0x2c, 0x3f, 0x6f, 0xf8, 0x45, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x46, 0x84, 0x6c, 0x20, 0x19, 0x11, 0x36, 0x1b, 0xfe, 0x5c, 0x1a, 0xf0, 0xca, 0xdc, 0xf2, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x46, 0x84, 0xfc, 0xe0, 0x59, 0xe8, 0xcf, 0x07, 0xcf, 0xbd, 0x07, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x6c, 0x44, 0xfc, 0xc1, 0x13, 0x96, 0x9f, 0x37, 0x28, 0x3a, 0x68, 0x07, 0x0f, 0x37, 0x78, 0x21, 0x60, 0xca, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x8d, 0x08, 0x9b, 0x81, 0x6c, 0x44, 0xe8, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x8d, 0x08, 0xa3, 0x81, 0x6c, 0x44, 0x98, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x46, 0x84, 0xd5, 0x40, 0x36, 0x22, 0x2c, 0x0f, 0x5e, 0x92, 0x6c, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x23, 0xc2, 0x74, 0x20, 0x1b, 0x11, 0xd6, 0x07, 0x45, 0x96, 0x69, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x36, 0x22, 0xec, 0x07, 0xb2, 0x11, 0xa1, 0xe2, 0xe0, 0x19, 0x80, 0x29, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x3a, 0x22, 0xfe, 0xe0, 0x09, 0xcb, 0xcf, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x11, 0x21, 0x1b, 0x48, 0x47, 0x84, 0xd9, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x74, 0x44, 0x08, 0x07, 0xd2, 0x11, 0x21, 0x3f, 0x7c, 0x71, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x23, 0xc2, 0x60, 0x20, 0x1d, 0x11, 0x16, 0x87, 0xa7, 0x75, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x74, 0x44, 0x98, 0x0c, 0xa4, 0x23, 0xc2, 0xea, 0x20, 0x5d, 0x62, 0xac, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x1d, 0x11, 0x86, 0x03, 0xe9, 0x88, 0xb0, 0x3c, 0x08, 0x40, 0xb6, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x47, 0xc4, 0x1f, 0x3c, 0x61, 0xf9, 0x79, 0x83, 0xd2, 0xde, 0x72, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x47, 0x84, 0x6c, 0x20, 0x1f, 0x11, 0x6a, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x23, 0x42, 0x38, 0x90, 0x8f, 0x08, 0x8b, 0x0d, 0x7f, 0x2e, 0x0d, 0x9e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x3e, 0x22, 0xc4, 0x07, 0xaf, 0xae, 0x80, 0x3e, 0x28, 0xb3, 0x74, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x7c, 0x44, 0x98, 0x0c, 0xe4, 0x23, 0x42, 0xcb, 0x86, 0x3f, 0x97, 0x36, 0x38, 0x1d, 0x4c, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x3e, 0x22, 0xcc, 0x0e, 0xde, 0xb8, 0x01, 0xbd, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0x88, 0xb0, 0x1b, 0xc8, 0x47, 0x84, 0xed, 0x41, 0x48, 0x99, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0x88, 0x30, 0x1e, 0xc8, 0x47, 0x84, 0x92, 0x0d, 0x02, 0xe8, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x11, 0x61, 0x7d, 0xf0, 0x28, 0x12, 0xe8, 0x0d, 0x0f, 0x4a, 0x6e, 0x78, 0x66, 0x72, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x11, 0x61, 0x7f, 0xf0, 0x28, 0x12, 0xe8, 0x0d, 0x0f, 0x4a, 0x6e, 0x10, 0x80, 0x6c, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x8f, 0x08, 0x0d, 0x07, 0x8f, 0x22, 0x81, 0x3e, 0x68, 0xeb, 0x44, 0xaa, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x21, 0x11, 0x7f, 0xf0, 0x84, 0xe5, 0xe7, 0x0d, 0x5f, 0xe1, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x42, 0x22, 0x64, 0x07, 0x4f, 0x58, 0x7e, 0xde, 0xf0, 0xf5, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x90, 0x08, 0xf9, 0x40, 0x42, 0x22, 0x0c, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x24, 0xc2, 0x60, 0x20, 0x21, 0x11, 0x36, 0x07, 0x4b, 0x40, 0xe2, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x84, 0x44, 0x18, 0x0d, 0x24, 0x24, 0xc2, 0xee, 0xe0, 0x19, 0x80, 0x29, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x46, 0x22, 0xfe, 0xe0, 0x09, 0xcb, 0xcf, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x12, 0x21, 0x1b, 0xc8, 0x48, 0x84, 0xc5, 0x86, 0x7f, 0x73, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x8c, 0x44, 0x48, 0x07, 0x32, 0x12, 0x21, 0x3e, 0x28, 0xa3, 0xcf, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x23, 0x11, 0xf2, 0x81, 0x8c, 0x44, 0x18, 0x1c, 0x9e, 0xd6, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x12, 0x61, 0x33, 0x90, 0x91, 0x08, 0xe3, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0x89, 0x30, 0x1a, 0xc8, 0x48, 0x84, 0xdd, 0xc1, 0x12, 0x90, 0xf8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x23, 0x11, 0x86, 0x03, 0x19, 0x89, 0xb0, 0x3d, 0x78, 0x06, 0x60, 0x4a, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x92, 0x88, 0x3f, 0x78, 0xc2, 0xf2, 0xf3, 0x06, 0x45, 0x07, 0xed, 0xe0, 0xe2, 0x06, 0x2f, 0x04, 0x4c, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x12, 0x61, 0x33, 0x90, 0x92, 0x08, 0xe3, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x29, 0x89, 0x30, 0x1a, 0x48, 0x49, 0x84, 0xdd, 0x41, 0x5b, 0x27, 0x52, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4a, 0x22, 0x0c, 0x07, 0x52, 0x12, 0x61, 0x7b, 0xf0, 0x0c, 0xc0, 0x94, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x27, 0x11, 0x7f, 0xf0, 0x84, 0xe5, 0xe7, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0xce, 0x50, 0x93, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x93, 0x08, 0xe9, 0x40, 0x4e, 0x22, 0x8c, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x24, 0x42, 0x3c, 0x90, 0x93, 0x08, 0xf9, 0xe1, 0xbd, 0xa0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x27, 0x11, 0x06, 0x03, 0x39, 0x89, 0xb0, 0x39, 0x58, 0x02, 0x12, 0xdf, 0x1a, 0x14, 0xbb, 0xe7, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x93, 0x08, 0xc3, 0x81, 0x9c, 0x44, 0x18, 0x6f, 0xf8, 0x38, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x12, 0x61, 0x3a, 0x90, 0x93, 0x08, 0xdb, 0x83, 0x32, 0xfa, 0xbc, 0xd5, 0x60, 0x19, 0x4e, 0xf3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x28, 0xe2, 0x07, 0x32, 0x1b, 0x21, 0xd9, 0xa0, 0xb4, 0xb7, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x14, 0x21, 0x1b, 0xc8, 0x51, 0x84, 0xc1, 0x86, 0x3f, 0x97, 0x36, 0x48, 0x9a, 0xed, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1c, 0x45, 0xc8, 0x0f, 0x1e, 0x25, 0x07, 0x7d, 0xf8, 0x60, 0x75, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x14, 0xf1, 0x07, 0x4f, 0x7c, 0x83, 0xde, 0xf0, 0x8b, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xa4, 0x08, 0xd9, 0x40, 0x92, 0x22, 0x2c, 0x36, 0xfc, 0xb9, 0xb4, 0x41, 0x43, 0x15, 0x61, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xa4, 0x08, 0xf9, 0xc1, 0xbb, 0xf5, 0xa0, 0x0f, 0xce, 0xb3, 0xa3, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xa5, 0x88, 0x3f, 0x78, 0xe2, 0x1b, 0xf4, 0x06, 0xcb, 0x21, 0x99, 0x66, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x14, 0xf1, 0x07, 0x4f, 0x7c, 0x83, 0xde, 0xf0, 0x17, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xa6, 0x08, 0xd9, 0x40, 0x9a, 0x22, 0x8c, 0x37, 0x08, 0xa7, 0xb1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x4d, 0x11, 0xe2, 0x81, 0x34, 0x45, 0x98, 0x1c, 0x3c, 0xf7, 0x1e, 0x64, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x14, 0x61, 0x33, 0x90, 0xa6, 0x08, 0xdb, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0x8a, 0x30, 0x1a, 0x48, 0x53, 0x84, 0xd5, 0xe1, 0x87, 0x9a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x4d, 0x11, 0x66, 0x03, 0x69, 0x8a, 0x30, 0x3d, 0x78, 0xee, 0x3d, 0x48, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xa7, 0x88, 0x3f, 0x78, 0xe2, 0x1b, 0xf4, 0x06, 0x05, 0x69, 0xec, 0x1a, 0x94, 0xd0, 0xb1, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x9e, 0x22, 0x64, 0x03, 0x79, 0x8a, 0x30, 0xde, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xa7, 0x08, 0xe1, 0x40, 0x9e, 0x22, 0x6c, 0x36, 0xfc, 0xb9, 0xb4, 0x61, 0x65, 0x68, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x14, 0x61, 0x70, 0xf0, 0x1e, 0x4d, 0xe8, 0x83, 0x32, 0x4b, 0x77, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x53, 0x84, 0xd1, 0x40, 0x9e, 0x22, 0x6c, 0x37, 0xfc, 0xb9, 0x34, 0xe0, 0x85, 0xd5, 0xc9, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xa7, 0x08, 0xc3, 0x83, 0x77, 0x80, 0x42, 0x1f, 0x1c, 0xb5, 0x41, 0x3b, 0x08, 0xd3, 0xb1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x51, 0x11, 0x92, 0x81, 0x7c, 0x45, 0xa8, 0xda, 0xa0, 0x20, 0x8d, 0xdd, 0xa0, 0x2c, 0x2c, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x15, 0x61, 0x32, 0x90, 0xa8, 0x08, 0xeb, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0x8a, 0xb0, 0x19, 0x48, 0x54, 0x84, 0xd9, 0x41, 0x51, 0xfc, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x2a, 0xc2, 0x6e, 0x20, 0x51, 0x11, 0x86, 0x07, 0x45, 0xa5, 0xf8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xa8, 0x08, 0xcb, 0x81, 0x44, 0x45, 0x18, 0x1f, 0xb4, 0xe4, 0x0c, 0xde, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x2a, 0x42, 0x72, 0xf0, 0x50, 0x53, 0xe8, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0x8a, 0x90, 0x0e, 0x64, 0x2a, 0xc2, 0x6a, 0xc3, 0xbf, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xa6, 0x22, 0xe4, 0x03, 0x99, 0x8a, 0x30, 0x38, 0x3c, 0x78, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0x8a, 0xb0, 0x18, 0xc8, 0x54, 0x84, 0xd1, 0x41, 0xe1, 0x65, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x2a, 0x42, 0x36, 0x90, 0xaa, 0x08, 0x8b, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0x8a, 0x10, 0x0e, 0xa4, 0x2a, 0x42, 0x7a, 0x78, 0xf0, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x55, 0x84, 0x78, 0x20, 0x55, 0x11, 0x06, 0x07, 0x49, 0x69, 0xc1, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xae, 0x22, 0x24, 0x07, 0x0f, 0x35, 0x85, 0xde, 0xa0, 0xe8, 0xd3, 0xdd, 0xa0, 0x5c, 0x33, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x15, 0x61, 0x32, 0x90, 0xab, 0x08, 0xdb, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0x8a, 0xb0, 0x19, 0xc8, 0x55, 0x84, 0xd9, 0xe1, 0x35, 0x9f, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x57, 0x11, 0x76, 0x03, 0xb9, 0x8a, 0x30, 0x3d, 0x28, 0xbc, 0x8c, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x64, 0x45, 0x48, 0x0e, 0x1e, 0x6a, 0x0a, 0xbd, 0x41, 0x41, 0x1a, 0xbb, 0x41, 0x43, 0xab, 0xe0, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xb2, 0x22, 0x4c, 0x06, 0x92, 0x15, 0xa1, 0x63, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xb2, 0x22, 0x6c, 0x06, 0x92, 0x15, 0x61, 0x76, 0x50, 0xe2, 0xe3, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0x8a, 0xb0, 0x1b, 0x48, 0x56, 0x84, 0xf9, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x64, 0x45, 0x18, 0x0e, 0x24, 0x2b, 0xc2, 0xf2, 0xa0, 0xa8, 0x14, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x15, 0x61, 0x3a, 0x90, 0xac, 0x08, 0xeb, 0x83, 0xc2, 0xcb, 0xb8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x59, 0x11, 0xf6, 0x03, 0xc9, 0x8a, 0x50, 0x71, 0xd0, 0x92, 0x33, 0x78, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xad, 0x08, 0xc9, 0xc1, 0x43, 0x4d, 0xa1, 0x37, 0x28, 0x76, 0x34, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x6c, 0x45, 0x48, 0x07, 0xb2, 0x15, 0xa1, 0x6b, 0xc3, 0x23, 0xac, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xb6, 0x22, 0xe4, 0x03, 0xd9, 0x8a, 0x30, 0xde, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xad, 0x08, 0x83, 0x81, 0x6c, 0x45, 0xd8, 0x1c, 0xa4, 0x61, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0x8a, 0x30, 0x1a, 0xc8, 0x56, 0x84, 0xdd, 0x41, 0xfb, 0xb5, 0xe0, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xb6, 0x22, 0x0c, 0x07, 0xb2, 0x15, 0x61, 0x7b, 0xb0, 0x92, 0xd7, 0xad, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x5b, 0x11, 0xd6, 0x03, 0xd9, 0x8a, 0x50, 0xb5, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x5b, 0x11, 0xe6, 0x03, 0xd9, 0x8a, 0xd0, 0x70, 0xf8, 0xe2, 0x77, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x56, 0x84, 0x8a, 0x81, 0x6c, 0x45, 0x68, 0x39, 0x68, 0xbf, 0x16, 0x7c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x56, 0x84, 0x9a, 0x81, 0x6c, 0x45, 0x68, 0x3a, 0x58, 0x59, 0xec, 0x56, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xba, 0x22, 0x64, 0x03, 0xe9, 0x8a, 0x30, 0xd9, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xae, 0x08, 0xe1, 0x40, 0xba, 0x22, 0xa4, 0x87, 0x07, 0x6f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x74, 0x45, 0x88, 0x07, 0xd2, 0x15, 0x61, 0x71, 0xd0, 0x92, 0x33, 0x78, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xaf, 0x08, 0xc9, 0xc1, 0x43, 0x4d, 0xa1, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x2b, 0x42, 0x34, 0x90, 0xaf, 0x08, 0xbb, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0x8a, 0x90, 0x0d, 0xe4, 0x2b, 0x42, 0x7c, 0xf8, 0x14, 0x70, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x57, 0x84, 0x7c, 0x20, 0x5f, 0x11, 0x26, 0x07, 0xed, 0xd7, 0x82, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0x8a, 0xb0, 0x19, 0xc8, 0x57, 0x84, 0xd9, 0xc1, 0x4a, 0x5e, 0xb7, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x7c, 0x45, 0x18, 0x0e, 0xe4, 0x2b, 0x42, 0xd3, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x7c, 0x45, 0x58, 0x0e, 0xe4, 0x2b, 0xc2, 0xf8, 0xa0, 0xc8, 0xc4, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x15, 0x61, 0x3d, 0x90, 0xaf, 0x08, 0x25, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x15, 0x61, 0x3e, 0x90, 0xaf, 0x08, 0xfb, 0x83, 0xa2, 0x52, 0x7c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x57, 0x84, 0x82, 0x81, 0x7c, 0x45, 0xe8, 0x38, 0x28, 0xbc, 0x8c, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x15, 0xa1, 0x65, 0x20, 0x5f, 0x11, 0x8a, 0x0e, 0x5a, 0x72, 0x06, 0xaf, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x58, 0xc4, 0x1f, 0x3c, 0xf1, 0x0d, 0x7a, 0x83, 0xa3, 0x0d, 0xdf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xb1, 0x08, 0xd9, 0x40, 0xce, 0x22, 0xf4, 0x6d, 0x50, 0x10, 0xcc, 0x6e, 0xf8, 0x72, 0x72, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x58, 0x84, 0xc9, 0x40, 0xc6, 0x22, 0x4c, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x2c, 0xc2, 0x66, 0x20, 0x63, 0x11, 0x76, 0x07, 0x0b, 0x36, 0x42, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x8c, 0x45, 0x18, 0x0e, 0x64, 0x2c, 0xc2, 0xf2, 0xf0, 0xcc, 0x64, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xb2, 0x08, 0xd9, 0xc1, 0xbb, 0x5a, 0xa2, 0x37, 0x7c, 0x90, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x2c, 0x42, 0x3e, 0x90, 0xb2, 0x08, 0xc3, 0x0d, 0x8a, 0x49, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x65, 0x11, 0x26, 0x03, 0x29, 0x8b, 0x30, 0x3a, 0x08, 0x23, 0xa0, 0x83, 0x84, 0xf4, 0xee, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x65, 0x11, 0xa6, 0x03, 0x29, 0x8b, 0x30, 0x3e, 0x68, 0x67, 0x18, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x16, 0x21, 0x3b, 0x78, 0x57, 0x4b, 0xf4, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9c, 0x45, 0x08, 0x07, 0x72, 0x16, 0x61, 0xb0, 0xe1, 0x6d, 0x9d, 0x01, 0x5f, 0x2c, 0x8d, 0x6e, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x59, 0x84, 0xc5, 0x40, 0xce, 0x22, 0x8c, 0x0e, 0x52, 0x5f, 0xbb, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9c, 0x45, 0x58, 0x0d, 0xe4, 0x2c, 0x42, 0xdd, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9c, 0x45, 0x18, 0x0e, 0xe4, 0x2c, 0x42, 0xc1, 0x86, 0x7f, 0x73, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9c, 0x45, 0x98, 0x0e, 0xe4, 0x2c, 0xc2, 0xf6, 0xf0, 0xe0, 0xcd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x2c, 0xc2, 0x78, 0x20, 0x67, 0x11, 0xf6, 0x07, 0x45, 0x96, 0xe9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xb3, 0x08, 0x0d, 0x03, 0x39, 0x8b, 0xd0, 0x71, 0xd0, 0xce, 0x30, 0xd8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x2c, 0x42, 0xc9, 0x40, 0xce, 0x22, 0xb4, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x59, 0x84, 0x96, 0x81, 0x9c, 0x45, 0x28, 0x3a, 0x28, 0xb4, 0x7b, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9c, 0x45, 0x68, 0x1a, 0xc8, 0x59, 0x84, 0xb2, 0x83, 0x22, 0xcb, 0xb4, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x6b, 0x11, 0x7f, 0xf0, 0xc4, 0x37, 0xe8, 0x0d, 0x9f, 0xd8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0x8b, 0x90, 0x0d, 0x64, 0x2d, 0xc2, 0x74, 0xc3, 0xe7, 0x2e, 0x1b, 0xac, 0xf7, 0xd4, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xac, 0x45, 0xc8, 0x0f, 0xde, 0x64, 0x16, 0xbd, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x6b, 0x11, 0x06, 0x03, 0x59, 0x8b, 0xb0, 0x39, 0x28, 0x88, 0x96, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xac, 0x45, 0x18, 0x0d, 0x64, 0x2d, 0xc2, 0xea, 0xa0, 0xa8, 0x14, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x16, 0x61, 0x36, 0x90, 0xb5, 0x08, 0xcb, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x61, 0x75, 0x72, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xda, 0x22, 0xfe, 0xe0, 0x89, 0x6f, 0xd0, 0x1b, 0x9c, 0x1c, 0xe4, 0x36, 0x58, 0xf9, 0xb0, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x2d, 0xc2, 0x60, 0x20, 0x6d, 0x11, 0x56, 0x1b, 0xac, 0x02, 0x93, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb4, 0x45, 0x98, 0x1c, 0x3c, 0x0f, 0x2f, 0xfa, 0x20, 0x15, 0xfb, 0x77, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x6f, 0x11, 0x92, 0x81, 0xbc, 0x45, 0xc8, 0x37, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x2d, 0x42, 0x34, 0x90, 0xb7, 0x08, 0xe1, 0xc1, 0xda, 0x99, 0xbd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x6f, 0x11, 0xd2, 0x81, 0xbc, 0x45, 0x88, 0x0f, 0xc2, 0x74, 0xac, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x5b, 0x84, 0xe9, 0x40, 0xe6, 0x22, 0x14, 0x6f, 0x50, 0x18, 0xaa, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0x8b, 0x30, 0x1f, 0xc8, 0x5b, 0x84, 0x82, 0x83, 0x65, 0x4e, 0xb2, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xb8, 0x08, 0xcb, 0x83, 0x77, 0x19, 0x46, 0x6f, 0x50, 0x74, 0x1a, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0x8b, 0xb0, 0x1e, 0x48, 0x5c, 0x84, 0x86, 0x83, 0x65, 0x95, 0xa0, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xe2, 0x22, 0x74, 0x0c, 0x24, 0x2e, 0x42, 0xdf, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc4, 0x45, 0x28, 0x19, 0x48, 0x5c, 0x84, 0xa2, 0x83, 0x34, 0xa7, 0xd8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x71, 0x11, 0x9a, 0x06, 0x12, 0x17, 0xa1, 0xec, 0xa0, 0xd8, 0x56, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x17, 0xa1, 0x6d, 0x20, 0x71, 0x11, 0xea, 0x0e, 0x0e, 0x0b, 0x6c, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xe6, 0x22, 0x2c, 0x0f, 0xde, 0x65, 0x18, 0xbd, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x73, 0x11, 0xa6, 0x03, 0x99, 0x8b, 0x30, 0x3f, 0x68, 0x99, 0x89, 0x70, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x5c, 0x84, 0xfd, 0x40, 0xe6, 0x22, 0xd4, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x5c, 0x84, 0x82, 0x81, 0xcc, 0x45, 0x68, 0x38, 0x3c, 0x78, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x2e, 0x42, 0xc5, 0x40, 0xe6, 0x22, 0xb4, 0x1c, 0xa4, 0x62, 0xff, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x2e, 0x42, 0xcf, 0x40, 0xe6, 0x22, 0xf4, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x5c, 0x84, 0xa2, 0x81, 0xcc, 0x45, 0x28, 0x3b, 0x78, 0x49, 0xb2, 0xdd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xb9, 0x08, 0x6d, 0x03, 0x99, 0x8b, 0x50, 0xbb, 0xe1, 0x47, 0x98, 0x81, 0xaf, 0xc3, 0x03, 0x0b, 0x00, 0x20, 0x6a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x77, 0x11, 0x92, 0x81, 0xdc, 0x45, 0x18, 0x6e, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x5d, 0x84, 0x68, 0x20, 0x77, 0x11, 0xc2, 0x83, 0x73, 0x6e, 0xca, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xbb, 0x08, 0xe9, 0x40, 0xee, 0x22, 0xac, 0x36, 0x08, 0x36, 0xd3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x77, 0x11, 0xf2, 0x81, 0xdc, 0x45, 0x58, 0x1c, 0xa4, 0x6c, 0x31, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0x8b, 0x30, 0x19, 0xc8, 0x5d, 0x84, 0xd1, 0xc1, 0xc2, 0xe4, 0xbe, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xdc, 0x45, 0x98, 0x0d, 0xe4, 0x2e, 0xc2, 0xee, 0x20, 0x4c, 0xc7, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xdc, 0x45, 0x98, 0x0e, 0xe4, 0x2e, 0xc2, 0x7e, 0x83, 0x55, 0x60, 0xb2, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xbb, 0x08, 0xe3, 0x83, 0xb7, 0x13, 0x47, 0x1f, 0x24, 0x04, 0xa6, 0xae, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x2f, 0x42, 0x32, 0x90, 0xbc, 0x08, 0xf9, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe4, 0x45, 0x88, 0x06, 0x92, 0x17, 0x21, 0x3c, 0x38, 0xea, 0x9b, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0x8b, 0x90, 0x0e, 0x24, 0x2f, 0x42, 0x7c, 0x10, 0xa6, 0x63, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xf2, 0x22, 0x4c, 0x07, 0x92, 0x17, 0x61, 0xbd, 0xc1, 0x2a, 0x30, 0xd9, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x5e, 0x84, 0xf1, 0xc1, 0x93, 0xa5, 0xa3, 0x0f, 0x8f, 0xc9, 0xac, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x2f, 0x42, 0x32, 0x90, 0xbd, 0x08, 0xf9, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xec, 0x45, 0x88, 0x06, 0xb2, 0x17, 0x21, 0x3c, 0x38, 0xed, 0x9d, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0x8b, 0x90, 0x0e, 0x64, 0x2f, 0x42, 0x7c, 0x10, 0xa6, 0x63, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xf6, 0x22, 0x4c, 0x07, 0xb2, 0x17, 0x61, 0xbe, 0xe1, 0xeb, 0x97, 0x0d, 0x1f, 0xc2, 0x6c, 0xf8, 0xfa, 0x65, 0xc3, 0x87, 0x30, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xbd, 0x08, 0xeb, 0x83, 0x27, 0x82, 0x47, 0x1f, 0x1e, 0xbc, 0x59, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x5f, 0x84, 0x64, 0x20, 0x7d, 0x11, 0x26, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x17, 0x21, 0x1a, 0x48, 0x5f, 0x84, 0xf0, 0xe0, 0xa8, 0x75, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x2f, 0x42, 0x3a, 0x90, 0xbe, 0x08, 0xf9, 0xc1, 0x51, 0xdf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x5f, 0x84, 0xc1, 0x40, 0xfa, 0x22, 0x2c, 0x0e, 0xc2, 0x74, 0xac, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x5f, 0x84, 0xe9, 0x40, 0xfa, 0x22, 0xcc, 0x37, 0x58, 0x05, 0x26, 0xbb, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0x8b, 0x30, 0x3e, 0x78, 0x8f, 0x7c, 0xf4, 0x41, 0xea, 0x69, 0xec, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xfe, 0x22, 0x24, 0x03, 0xf9, 0x8b, 0x30, 0xd9, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xbf, 0x08, 0xd1, 0x40, 0xfe, 0x22, 0x84, 0x07, 0x47, 0xad, 0x93, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x7f, 0x11, 0xd2, 0x81, 0xfc, 0x45, 0xc8, 0x0f, 0x96, 0xc4, 0x04, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0x8b, 0x30, 0x18, 0xc8, 0x5f, 0x84, 0xc5, 0x41, 0x98, 0x8e, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0x8b, 0x30, 0x1d, 0xc8, 0x5f, 0x84, 0xfd, 0x06, 0xab, 0xc0, 0x64, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x7f, 0x11, 0xc6, 0x07, 0x8f, 0x17, 0x90, 0x3e, 0x48, 0x08, 0x4c, 0x5d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x60, 0x84, 0x64, 0x20, 0x81, 0x11, 0x56, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x18, 0x21, 0x1a, 0x48, 0x60, 0x84, 0xc9, 0x06, 0xc1, 0x66, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x30, 0x42, 0x38, 0x90, 0xc0, 0x08, 0xf1, 0xc1, 0x99, 0xd3, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x60, 0x84, 0x7c, 0x20, 0x81, 0x11, 0x16, 0x07, 0xc7, 0x62, 0xd7, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x04, 0x46, 0xd8, 0x0c, 0x24, 0x30, 0xc2, 0xe8, 0x20, 0x4c, 0xc7, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x04, 0x46, 0x98, 0x0e, 0x24, 0x30, 0xc2, 0x7e, 0x83, 0x55, 0x60, 0xb2, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xc0, 0x08, 0xe3, 0x83, 0xb7, 0x59, 0x48, 0x1f, 0x24, 0x04, 0xa6, 0xae, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x30, 0x42, 0x32, 0x90, 0xc1, 0x08, 0x93, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0x8c, 0x10, 0x0d, 0x64, 0x30, 0x42, 0x78, 0xb0, 0x30, 0xb9, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x60, 0x84, 0x74, 0x20, 0x83, 0x11, 0xf2, 0x83, 0xa5, 0x5c, 0x86, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x06, 0x23, 0x0c, 0x06, 0x32, 0x18, 0x61, 0x71, 0x10, 0xa6, 0x63, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x06, 0x23, 0x4c, 0x07, 0x32, 0x18, 0x61, 0xbe, 0xc1, 0x2a, 0x30, 0xd9, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x60, 0x84, 0xf1, 0xc1, 0x53, 0x4e, 0xa4, 0x0f, 0x0e, 0xaf, 0x72, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x29, 0x8c, 0x90, 0x0c, 0xa4, 0x30, 0xc2, 0x64, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x0a, 0x23, 0x44, 0x03, 0x29, 0x8c, 0x10, 0x1e, 0x2c, 0x4c, 0xee, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x18, 0x21, 0x1d, 0x48, 0x61, 0x84, 0xfc, 0x60, 0x49, 0x4c, 0xe0, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xc2, 0x08, 0x83, 0x81, 0x14, 0x46, 0x58, 0x1c, 0x84, 0xe9, 0x58, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xc2, 0x08, 0xd3, 0x81, 0x14, 0x46, 0x98, 0x6f, 0xb0, 0x0a, 0x4c, 0x76, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x18, 0x61, 0x7c, 0xf0, 0xf0, 0x1b, 0xe9, 0x83, 0xd4, 0xd3, 0xd8, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1c, 0x46, 0x48, 0x06, 0x72, 0x18, 0x61, 0xb2, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x87, 0x11, 0xa2, 0x81, 0x1c, 0x46, 0x08, 0x0f, 0x16, 0x26, 0xf7, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0x8c, 0x90, 0x0e, 0xe4, 0x30, 0x42, 0x7e, 0x70, 0xce, 0x4d, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x18, 0x61, 0x30, 0x90, 0xc3, 0x08, 0x8b, 0x83, 0x30, 0x1d, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x18, 0x61, 0x3a, 0x90, 0xc3, 0x08, 0xf3, 0x0d, 0x56, 0x81, 0xc9, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x0e, 0x23, 0x8c, 0x0f, 0x5e, 0x89, 0x24, 0x7d, 0x90, 0x02, 0x9d, 0xba, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xc4, 0x08, 0xc9, 0x40, 0x12, 0x23, 0x4c, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x31, 0x42, 0x34, 0x90, 0xc4, 0x08, 0xe1, 0xc1, 0xc2, 0xe4, 0xbe, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x89, 0x11, 0xd2, 0x81, 0x24, 0x46, 0xc8, 0x0f, 0x8e, 0xc5, 0xae, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x12, 0x23, 0x0c, 0x06, 0x92, 0x18, 0x61, 0x71, 0x10, 0xa6, 0x63, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x12, 0x23, 0x4c, 0x07, 0x92, 0x18, 0x61, 0xbf, 0xc1, 0x2a, 0x30, 0xd9, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x62, 0x84, 0xf1, 0xc1, 0x93, 0xb2, 0xa4, 0x0f, 0x12, 0x02, 0x53, 0x57, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x18, 0x21, 0x19, 0x48, 0x63, 0x84, 0xc9, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x34, 0x46, 0x88, 0x06, 0xd2, 0x18, 0x21, 0x3c, 0x48, 0x08, 0x33, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x18, 0x21, 0x1d, 0x48, 0x63, 0x84, 0xfc, 0x60, 0xed, 0xcc, 0xde, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xc6, 0x08, 0x83, 0x81, 0x34, 0x46, 0x58, 0x1c, 0x84, 0xe9, 0x58, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xc6, 0x08, 0xd3, 0x81, 0x34, 0x46, 0xa8, 0xdd, 0x60, 0x99, 0x93, 0xec, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x31, 0xc2, 0xf8, 0xe0, 0x01, 0x6a, 0xd2, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x18, 0x61, 0x3d, 0x90, 0xc6, 0x08, 0x0d, 0x07, 0xcb, 0x2a, 0x41, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x34, 0x46, 0xa8, 0x18, 0x48, 0x63, 0x84, 0xa2, 0x0d, 0x0f, 0x4a, 0x6e, 0xb0, 0x22, 0xf7, 0x70, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x18, 0xa1, 0xe6, 0xe0, 0x71, 0x72, 0xd2, 0x07, 0x2b, 0x16, 0x0f, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x34, 0x46, 0x68, 0x1a, 0x48, 0x63, 0x84, 0xd6, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0x8c, 0x50, 0x35, 0x90, 0xc6, 0x08, 0x75, 0x07, 0xaf, 0x3d, 0x8a, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x18, 0xa1, 0x6f, 0x20, 0x8d, 0x11, 0x0a, 0x0f, 0x8a, 0x9c, 0xd6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x8d, 0x11, 0x1a, 0x07, 0xd2, 0x18, 0xa1, 0xf4, 0x20, 0x15, 0xfb, 0xb7, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x19, 0x21, 0x19, 0x48, 0x64, 0x84, 0xd5, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x44, 0x46, 0x88, 0x06, 0x12, 0x19, 0x21, 0x3c, 0x38, 0xfd, 0xb8, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0x8c, 0x90, 0x0e, 0x24, 0x32, 0x42, 0x7e, 0x90, 0xb2, 0xc5, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x32, 0xc2, 0x60, 0x20, 0x91, 0x11, 0x26, 0x07, 0x4b, 0x62, 0x02, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x44, 0x46, 0xd8, 0x0c, 0x24, 0x32, 0xc2, 0xe8, 0x20, 0x4c, 0xc7, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x44, 0x46, 0x98, 0x0e, 0xa4, 0x33, 0xc2, 0x9d, 0x0d, 0x0a, 0x43, 0xd5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x91, 0x11, 0xe6, 0x03, 0x89, 0x8c, 0x50, 0x70, 0xb0, 0xcc, 0x49, 0x76, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x19, 0x61, 0x79, 0xf0, 0xe6, 0x48, 0xe9, 0x0d, 0x8a, 0x4e, 0xe3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x93, 0x11, 0xd6, 0x03, 0x99, 0x8c, 0xd0, 0x70, 0xb0, 0xac, 0x12, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x64, 0x84, 0x8e, 0x81, 0x4c, 0x46, 0xe8, 0x39, 0x58, 0x8e, 0x2c, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0x8c, 0xb0, 0x3c, 0x78, 0x73, 0xa4, 0xf4, 0x06, 0x45, 0xa7, 0xf1, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xca, 0x08, 0xeb, 0x81, 0x54, 0x46, 0x68, 0x38, 0x68, 0x3f, 0x3d, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x65, 0x84, 0xed, 0x40, 0x2e, 0x23, 0xb4, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x65, 0x84, 0xf1, 0x40, 0x2e, 0x23, 0x14, 0x6c, 0x78, 0x5b, 0xe7, 0x60, 0x35, 0xfc, 0xe7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xcb, 0x08, 0x0d, 0x03, 0xb9, 0x8c, 0x50, 0x71, 0x50, 0x54, 0x8a, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0x8c, 0xd0, 0x31, 0x90, 0xcb, 0x08, 0xe5, 0x1b, 0x2c, 0xec, 0x5c, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5c, 0x46, 0xa8, 0x19, 0xc8, 0x65, 0x84, 0xee, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0x8c, 0xd0, 0x33, 0x90, 0xcb, 0x08, 0x5d, 0x07, 0xcb, 0x91, 0x85, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5c, 0x46, 0x28, 0x1b, 0xc8, 0x65, 0x84, 0xea, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0x8c, 0xd0, 0x36, 0x90, 0xcb, 0x08, 0x8d, 0x1b, 0xde, 0xd6, 0xd9, 0xe0, 0x94, 0x16, 0xd9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xcb, 0x08, 0x95, 0x03, 0xb9, 0x8c, 0xd0, 0x7a, 0xb0, 0xae, 0x0b, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x65, 0x84, 0xda, 0x81, 0x5c, 0x46, 0x68, 0x3e, 0x58, 0x6f, 0x06, 0x57, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x32, 0x23, 0x2c, 0x0f, 0xde, 0x1c, 0x29, 0xbd, 0x41, 0xd1, 0x69, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x33, 0xc2, 0x7a, 0x20, 0x99, 0x11, 0x1a, 0x0e, 0x5a, 0x66, 0x22, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x19, 0xa1, 0x63, 0x20, 0x99, 0x11, 0x9a, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x33, 0x42, 0xc9, 0x40, 0x32, 0x23, 0xb4, 0x1c, 0x1e, 0xbc, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x19, 0xa1, 0x66, 0x20, 0x99, 0x11, 0x8a, 0x0e, 0x52, 0x4f, 0x63, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x6c, 0x46, 0x58, 0x1e, 0xbc, 0x39, 0x52, 0x7a, 0x83, 0xa2, 0xd3, 0x78, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x66, 0x84, 0xf5, 0x40, 0x36, 0x23, 0x34, 0x1c, 0xbc, 0x1d, 0x55, 0x7a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x66, 0x84, 0x8e, 0x81, 0x6c, 0x46, 0x28, 0x39, 0x28, 0x2a, 0xc5, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x9d, 0x11, 0x96, 0x07, 0x6f, 0x8e, 0x94, 0xde, 0x60, 0x61, 0xe7, 0xd2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x33, 0xc2, 0x78, 0x20, 0x9d, 0x11, 0xde, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x67, 0x84, 0xf5, 0x40, 0x3a, 0x23, 0x34, 0x1c, 0x2c, 0x47, 0x16, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x19, 0xa1, 0x62, 0x20, 0x9d, 0x11, 0xce, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x67, 0x84, 0x8e, 0x81, 0x74, 0x46, 0xe8, 0x39, 0x38, 0x11, 0xb4, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0x8c, 0x50, 0x34, 0x90, 0xce, 0x08, 0xb5, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x19, 0xa1, 0x69, 0x20, 0x9d, 0x11, 0xda, 0x0e, 0x5e, 0xa4, 0x2b, 0xbd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x33, 0x42, 0xdd, 0x40, 0x3a, 0x23, 0x34, 0x1e, 0x2c, 0x82, 0x77, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x19, 0xa1, 0x72, 0x20, 0x9d, 0x11, 0x5a, 0x0f, 0x56, 0x1c, 0xc9, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x33, 0x42, 0xef, 0x40, 0x3a, 0x23, 0x7c, 0xd9, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xce, 0x08, 0xc5, 0x03, 0xe9, 0x8c, 0xd0, 0x7d, 0xb0, 0x66, 0xe3, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x67, 0x84, 0xf2, 0x81, 0x74, 0x46, 0xb8, 0xb2, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x9d, 0x11, 0xda, 0x07, 0xd2, 0x19, 0xe1, 0xc1, 0xc1, 0x8b, 0x74, 0xa5, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x74, 0x46, 0xb8, 0x30, 0x90, 0xce, 0x08, 0x2f, 0x0e, 0xd6, 0x75, 0xc1, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0x8c, 0x70, 0x63, 0x20, 0x9d, 0x11, 0x9e, 0x1c, 0xac, 0x37, 0x83, 0xab, 0x5a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x68, 0x84, 0x64, 0x20, 0xa1, 0x11, 0x26, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x1a, 0x21, 0x1a, 0x48, 0x68, 0x84, 0xf0, 0xe0, 0xf4, 0xe3, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x34, 0x42, 0x3a, 0x90, 0xd0, 0x08, 0xf9, 0x41, 0xca, 0x16, 0xd3, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xd0, 0x08, 0x83, 0x81, 0x84, 0x46, 0x58, 0x1c, 0x84, 0xe9, 0x58, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xd0, 0x08, 0xd3, 0x81, 0xa4, 0x46, 0x38, 0xb4, 0x41, 0x61, 0xa8, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x34, 0xc2, 0x7c, 0x20, 0xa1, 0x11, 0x0a, 0x0e, 0x96, 0x39, 0xc9, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x46, 0x23, 0x2c, 0x0f, 0x1e, 0xf0, 0x30, 0xbd, 0x41, 0xd1, 0x69, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x34, 0xc2, 0x7a, 0x20, 0xa3, 0x11, 0x1a, 0x0e, 0x96, 0x55, 0x82, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0x8d, 0xd0, 0x31, 0x90, 0xd1, 0x08, 0x3d, 0x07, 0xcb, 0x91, 0x85, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xa5, 0x11, 0x96, 0x07, 0x0f, 0x78, 0x98, 0xde, 0xa0, 0xe8, 0x34, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x1a, 0x61, 0x3d, 0x90, 0xd2, 0x08, 0x0d, 0x07, 0x2d, 0x33, 0x11, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x29, 0x8d, 0xd0, 0x31, 0x90, 0xd2, 0x08, 0x4d, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x1a, 0xa1, 0x64, 0x20, 0xa5, 0x11, 0x5a, 0x0e, 0x0f, 0xde, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x29, 0x8d, 0x50, 0x33, 0x90, 0xd2, 0x08, 0x45, 0x07, 0x29, 0xd0, 0xa9, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4e, 0x23, 0x2c, 0x0f, 0x1e, 0xf0, 0x30, 0xbd, 0x41, 0xd1, 0x69, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x34, 0xc2, 0x7a, 0x20, 0xa7, 0x11, 0x1a, 0x0e, 0xde, 0x8e, 0x2a, 0xbd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x34, 0x42, 0xc7, 0x40, 0x4e, 0x23, 0x94, 0x1c, 0x14, 0x95, 0xe2, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xd4, 0x08, 0xcb, 0x83, 0x07, 0x3c, 0x4c, 0x6f, 0xb0, 0xb0, 0x73, 0x69, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x1a, 0x61, 0x3c, 0x90, 0xd4, 0x08, 0x7f, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x35, 0xc2, 0x7a, 0x20, 0xa9, 0x11, 0x1a, 0x0e, 0x96, 0x23, 0x0b, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0x8d, 0x50, 0x31, 0x90, 0xd4, 0x08, 0x77, 0x36, 0x48, 0x32, 0x20, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x1a, 0xa1, 0x64, 0x20, 0xa9, 0x11, 0x8a, 0x0e, 0x4e, 0x04, 0x6d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x52, 0x23, 0x34, 0x0d, 0x24, 0x35, 0x42, 0xdf, 0x86, 0x67, 0xf1, 0x06, 0x6d, 0x83, 0xfb, 0x83, 0x7f, 0x07, 0xeb, 0x09, 0xbe, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa4, 0x46, 0x28, 0x1c, 0x48, 0x6a, 0x84, 0xfa, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0x8d, 0xd0, 0x38, 0x90, 0xd4, 0x08, 0xad, 0x07, 0x2f, 0xd2, 0x95, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x1a, 0xa1, 0x76, 0x20, 0xa9, 0x11, 0x9a, 0x0f, 0x16, 0xc1, 0xbb, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0x8d, 0x50, 0x3d, 0x90, 0xd4, 0x08, 0xed, 0x07, 0x2b, 0x8e, 0xe4, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x1a, 0xa1, 0x7f, 0x20, 0xa9, 0x11, 0xde, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x6a, 0x84, 0x03, 0x03, 0x49, 0x8d, 0x70, 0xe2, 0xe0, 0x45, 0xba, 0xd2, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x52, 0x23, 0xbc, 0x18, 0x48, 0x6a, 0x84, 0x23, 0x07, 0xeb, 0xba, 0xe0, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa4, 0x46, 0x78, 0x32, 0x90, 0xd4, 0x08, 0x67, 0x0e, 0xd6, 0x9b, 0xc1, 0x55, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0x8d, 0x90, 0x0c, 0xa4, 0x35, 0x42, 0xbe, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xad, 0x11, 0xa2, 0x81, 0xb4, 0x46, 0x08, 0x0f, 0x4e, 0x3f, 0xae, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x5a, 0x23, 0xa4, 0x03, 0x69, 0x8d, 0x10, 0x1f, 0x84, 0xe9, 0x58, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xd6, 0x08, 0xd3, 0x81, 0xc4, 0x46, 0x28, 0xde, 0xa0, 0x30, 0x54, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x1a, 0x61, 0x3e, 0x90, 0xd6, 0x08, 0x05, 0x07, 0xcb, 0x9c, 0x64, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xaf, 0x11, 0x96, 0x07, 0x0f, 0x28, 0x9b, 0xde, 0xa0, 0xe8, 0x34, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x1a, 0x61, 0x3d, 0x90, 0xd7, 0x08, 0x0d, 0x07, 0xcb, 0x2a, 0x41, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbc, 0x46, 0xe8, 0x18, 0xc8, 0x6b, 0x84, 0xee, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0x8d, 0x50, 0x32, 0x90, 0xd7, 0x08, 0x45, 0x07, 0xe7, 0xdc, 0xb2, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xaf, 0x11, 0x9a, 0x06, 0xf2, 0x1a, 0xa1, 0xed, 0x60, 0x95, 0x13, 0xdd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xd7, 0x08, 0x75, 0x03, 0x79, 0x8d, 0x50, 0xbd, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xaf, 0x11, 0xfa, 0x06, 0xf2, 0x1a, 0xa1, 0xf3, 0x20, 0xcd, 0x29, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x6b, 0x84, 0xd2, 0x81, 0xbc, 0x46, 0xe8, 0x3d, 0x28, 0xb6, 0x95, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbc, 0x46, 0x28, 0x1e, 0xc8, 0x6b, 0x84, 0xe6, 0x83, 0xc3, 0x02, 0x5b, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x62, 0x23, 0x2c, 0x0f, 0x1e, 0x50, 0x36, 0xbd, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xb1, 0x11, 0xa6, 0x03, 0x89, 0x8d, 0x30, 0x3f, 0x68, 0x99, 0x89, 0x70, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x6c, 0x84, 0xfd, 0x40, 0x62, 0x23, 0xd4, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x6c, 0x84, 0x82, 0x81, 0xc4, 0x46, 0x68, 0x38, 0x3c, 0x78, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x36, 0x42, 0xc5, 0x40, 0x62, 0x23, 0xb4, 0x1c, 0xa4, 0x62, 0xff, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x36, 0x42, 0xcf, 0x40, 0x62, 0x23, 0xf4, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x6c, 0x84, 0xa2, 0x81, 0xc4, 0x46, 0x28, 0x3b, 0x78, 0x49, 0xb2, 0xdd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xd8, 0x08, 0x6d, 0x03, 0x89, 0x8d, 0x50, 0x7b, 0xf0, 0x8a, 0xd8, 0xe8, 0x6a, 0x35, 0x78, 0x0a, 0x52, 0xf4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x1e, 0xe2, 0x07, 0x12, 0x10, 0x21, 0xdf, 0xf0, 0x8b, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x7a, 0x08, 0xd9, 0x40, 0xea, 0x21, 0x4c, 0x37, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x1e, 0x42, 0x38, 0x90, 0x7a, 0x08, 0x8b, 0x0d, 0x7f, 0x2e, 0x6d, 0x90, 0x34, 0xdb, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0x87, 0x30, 0x38, 0x78, 0x25, 0xe8, 0xf4, 0xe1, 0x83, 0xd5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xf5, 0x10, 0x26, 0x03, 0xa9, 0x87, 0xb0, 0xdc, 0xf0, 0xe7, 0xd2, 0x06, 0xe5, 0xe5, 0xe5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x1e, 0xc2, 0xec, 0xe0, 0x85, 0xa6, 0xd3, 0x07, 0x65, 0x96, 0x6e, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x7b, 0x88, 0x3f, 0x78, 0xca, 0xe6, 0xf4, 0x86, 0x5f, 0x94, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xdc, 0x43, 0xc8, 0x06, 0x72, 0x0f, 0x61, 0xb3, 0xe1, 0xcf, 0xa5, 0x01, 0xaf, 0xcc, 0x2d, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xdc, 0x43, 0xc8, 0x0f, 0x9e, 0xf2, 0x3a, 0x7d, 0xf0, 0xdc, 0x7b, 0x90, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x3e, 0xc4, 0x1f, 0x3c, 0x65, 0x73, 0x7a, 0xc3, 0x5f, 0x34, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xf2, 0x21, 0x64, 0x03, 0xc9, 0x87, 0xb0, 0xd9, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x7c, 0x08, 0xe1, 0x40, 0xf2, 0x21, 0xa4, 0x87, 0x1f, 0x6a, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe4, 0x43, 0x88, 0x07, 0x92, 0x0f, 0x61, 0x72, 0xf0, 0xdc, 0x7b, 0x90, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xfb, 0x10, 0x7f, 0xf0, 0x94, 0xcd, 0xe9, 0x0d, 0x8a, 0x0e, 0xda, 0xc1, 0xc3, 0x0d, 0x5e, 0x08, 0x98, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x1f, 0xc2, 0x66, 0x20, 0xfb, 0x10, 0x3a, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x1f, 0xc2, 0x68, 0x20, 0xfb, 0x10, 0xe6, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x0f, 0x61, 0x35, 0x90, 0x7d, 0x08, 0xcb, 0x83, 0x97, 0x24, 0xdb, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0x87, 0x30, 0x1d, 0xc8, 0x3e, 0x84, 0xf5, 0xc1, 0x9a, 0x2c, 0xcd, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xec, 0x43, 0xd8, 0x0f, 0x64, 0x1f, 0x42, 0xc5, 0xc1, 0x33, 0x00, 0x53, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf4, 0x43, 0xfc, 0xc1, 0x53, 0x36, 0xa7, 0x37, 0x7c, 0x62, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x1f, 0x42, 0x36, 0x90, 0x7e, 0x08, 0x25, 0x1b, 0x3e, 0x77, 0x59, 0xc3, 0xc4, 0x0d, 0x2e, 0x06, 0xff, 0x76, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xfa, 0x21, 0x4c, 0x0e, 0x5e, 0x47, 0x3d, 0xbd, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xfd, 0x10, 0x36, 0x03, 0xe9, 0x87, 0xd0, 0xb0, 0x41, 0x59, 0xf2, 0xbe, 0x06, 0x89, 0xd5, 0xbd, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0x87, 0x30, 0x1d, 0x48, 0x3f, 0x84, 0xf1, 0x41, 0xda, 0xdf, 0xeb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x7e, 0x08, 0xeb, 0x81, 0xf4, 0x43, 0x28, 0x38, 0x78, 0x06, 0x60, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xfa, 0x21, 0x54, 0x0c, 0xa4, 0x1f, 0x42, 0xc7, 0xe1, 0x69, 0x9d, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xff, 0x10, 0x7f, 0xf0, 0x94, 0xcd, 0xe9, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0x87, 0x90, 0x0d, 0xe4, 0x1f, 0xc2, 0x72, 0xc3, 0x23, 0xac, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xfe, 0x21, 0xa4, 0x03, 0xf9, 0x87, 0xb0, 0xd8, 0xf0, 0x36, 0xeb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x1f, 0x42, 0x7c, 0xf0, 0x12, 0xf6, 0xe9, 0x83, 0xd4, 0xd7, 0xae, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xff, 0x10, 0x26, 0x03, 0xf9, 0x87, 0x30, 0xdc, 0xf0, 0x6f, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x7f, 0x08, 0xa3, 0x81, 0xfc, 0x43, 0x58, 0x1d, 0x1e, 0xbc, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfc, 0x43, 0x98, 0x0d, 0xe4, 0x1f, 0xc2, 0xee, 0xf0, 0x5e, 0x50, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xfe, 0x21, 0x6c, 0x07, 0xf2, 0x0f, 0x61, 0x7c, 0x10, 0x80, 0x6c, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x80, 0x88, 0x3f, 0x78, 0xca, 0xe6, 0xf4, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x04, 0x44, 0x08, 0x06, 0x12, 0x10, 0x21, 0x39, 0xbc, 0x17, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x20, 0x42, 0x34, 0x90, 0x80, 0x08, 0xf1, 0x86, 0xb7, 0x75, 0x06, 0x0f, 0x0f, 0x92, 0x05, 0x5f, 0x5b, 0x0d, 0x5e, 0x2f, 0x1d, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0x90, 0xf8, 0x81, 0x4c, 0x48, 0x48, 0x36, 0xfc, 0x45, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x40, 0x42, 0x36, 0x90, 0x03, 0x09, 0x25, 0x1b, 0x84, 0xd3, 0xd8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x03, 0x09, 0xf1, 0x40, 0x0e, 0x24, 0x4c, 0x0e, 0x9e, 0x7b, 0x0f, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0x90, 0xb0, 0x19, 0xc8, 0x81, 0x84, 0x8e, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0x90, 0x30, 0x1a, 0xc8, 0x81, 0x84, 0xf5, 0x86, 0x7f, 0xe7, 0x37, 0x78, 0x6b, 0x7b, 0xf0, 0xc1, 0x53, 0x77, 0x8a, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1c, 0x48, 0x98, 0x0f, 0xe4, 0x40, 0x42, 0xc5, 0xc1, 0x73, 0xef, 0x41, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x24, 0x48, 0xfc, 0xc1, 0xc3, 0x0b, 0xa8, 0x37, 0x28, 0x48, 0x63, 0x07, 0x3c, 0xb4, 0x37, 0x78, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x82, 0x84, 0xc1, 0x40, 0x12, 0x24, 0x0c, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x41, 0xc2, 0x62, 0x20, 0x09, 0x12, 0x56, 0x07, 0x2f, 0x49, 0xb6, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x20, 0x61, 0x36, 0x90, 0x04, 0x09, 0xbb, 0x83, 0xf3, 0x02, 0x4d, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x05, 0x89, 0x3f, 0x78, 0x78, 0x01, 0xf5, 0x06, 0x49, 0x06, 0x84, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x16, 0x24, 0x64, 0x03, 0x59, 0x90, 0x90, 0x1f, 0xb4, 0x41, 0x01, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x41, 0x42, 0x32, 0x90, 0x06, 0x09, 0x35, 0x1b, 0x24, 0x19, 0x10, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0x90, 0x90, 0x0d, 0xa4, 0x41, 0x42, 0x7e, 0xd0, 0x7e, 0x7a, 0xec, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x06, 0x09, 0x83, 0x81, 0x34, 0x48, 0xd8, 0x6c, 0x78, 0x5b, 0x67, 0xc0, 0x43, 0x7b, 0x83, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x20, 0x61, 0x34, 0x90, 0x06, 0x09, 0x05, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x20, 0x61, 0x35, 0x90, 0x06, 0x09, 0xcb, 0x83, 0x05, 0x1b, 0xa1, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x1a, 0x24, 0x4c, 0x07, 0xd2, 0x20, 0x61, 0xbf, 0xe1, 0x8d, 0xbb, 0x83, 0xa7, 0x64, 0x03, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x41, 0x42, 0xc3, 0x40, 0x1a, 0x24, 0xb4, 0x1c, 0xb4, 0x84, 0xc1, 0xd9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x07, 0x09, 0xc9, 0x40, 0x1e, 0x24, 0xb4, 0x6f, 0x90, 0x64, 0x40, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x41, 0x42, 0x36, 0x90, 0x07, 0x09, 0xf9, 0x41, 0xfb, 0xe9, 0xb1, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x1e, 0x24, 0x0c, 0x06, 0xf2, 0x20, 0x61, 0x73, 0xf0, 0x96, 0x17, 0xea, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x0f, 0x12, 0x46, 0x03, 0x79, 0x90, 0x50, 0xb0, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x0f, 0x12, 0x56, 0x03, 0x79, 0x90, 0xb0, 0x3c, 0x58, 0xb0, 0x11, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x41, 0xc2, 0x74, 0x20, 0x0f, 0x12, 0xf6, 0x1b, 0xde, 0xb8, 0x3b, 0x78, 0x1b, 0x2e, 0x70, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x1e, 0x24, 0x34, 0x0c, 0xe4, 0x41, 0x42, 0xcb, 0x41, 0x4b, 0x18, 0x9c, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x1e, 0x24, 0xd4, 0x0c, 0xe4, 0x41, 0x42, 0xd5, 0xc1, 0xd9, 0x33, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x83, 0x84, 0xae, 0x81, 0x3c, 0x48, 0x28, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x07, 0x09, 0x65, 0x03, 0x79, 0x90, 0x50, 0x78, 0xd0, 0x32, 0x13, 0xe1, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x07, 0x09, 0x8d, 0x03, 0x79, 0x90, 0x50, 0xbb, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x0f, 0x12, 0x2a, 0x07, 0xf2, 0x20, 0xa1, 0xf3, 0xf0, 0xe0, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x07, 0x09, 0xa5, 0x03, 0x79, 0x90, 0xd0, 0x7a, 0x10, 0xb0, 0xac, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0x90, 0xd0, 0x3b, 0x90, 0x07, 0x09, 0xdd, 0x1b, 0xde, 0xd6, 0x39, 0x78, 0xb2, 0xe0, 0x70, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0x90, 0x90, 0x0c, 0x24, 0x42, 0x42, 0xe1, 0x06, 0x49, 0x06, 0x84, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x22, 0x24, 0x64, 0x03, 0x89, 0x90, 0x90, 0x1f, 0xb4, 0x9f, 0x1e, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x42, 0xc2, 0x60, 0x20, 0x11, 0x12, 0x36, 0x07, 0x6f, 0x79, 0xa1, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x21, 0x61, 0x34, 0x90, 0x08, 0x09, 0x05, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x21, 0x61, 0x35, 0x90, 0x08, 0x09, 0xcb, 0x83, 0x05, 0x1b, 0xa1, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x22, 0x24, 0x4c, 0x07, 0x12, 0x21, 0x61, 0xbf, 0xe1, 0x8d, 0xbb, 0x83, 0xa7, 0x23, 0x63, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x42, 0x42, 0xc3, 0x40, 0x22, 0x24, 0xb4, 0x1c, 0xb4, 0x84, 0xc1, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x42, 0x42, 0xcd, 0x40, 0x22, 0x24, 0x54, 0x1d, 0xb4, 0x84, 0xc1, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x42, 0x42, 0xd7, 0x40, 0x22, 0x24, 0xf4, 0x1d, 0x9c, 0x3d, 0xe3, 0xea, 0x70, 0x8a, 0xad, 0xc1, 0xd2, 0x9c, 0xdb, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x4e, 0xc4, 0x0f, 0x24, 0x28, 0xc2, 0x6c, 0x83, 0x42, 0xb9, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x4e, 0x84, 0x6c, 0x20, 0x3b, 0x11, 0x86, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x13, 0x21, 0x1c, 0xc8, 0x4e, 0x84, 0xc5, 0x86, 0x3f, 0x97, 0x06, 0x67, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x3b, 0x11, 0xe2, 0x83, 0x47, 0x1a, 0x52, 0x1f, 0x3c, 0x5d, 0xfc, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x4e, 0x84, 0xc9, 0x40, 0x76, 0x22, 0xec, 0x36, 0xfc, 0xb9, 0x34, 0xb8, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0x89, 0x30, 0x3a, 0x78, 0x17, 0x23, 0xf5, 0xc1, 0xd3, 0xc5, 0x9f, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf4, 0x44, 0xfc, 0xc1, 0x1b, 0x02, 0xa9, 0x37, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x27, 0x42, 0x36, 0x90, 0x9e, 0x08, 0x9b, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x65, 0x6e, 0xf9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x27, 0x42, 0x7e, 0xf0, 0x6a, 0x4a, 0xea, 0x83, 0xe7, 0xde, 0x83, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x7e, 0x22, 0xfe, 0xe0, 0x0d, 0x81, 0xd4, 0x1b, 0x14, 0x1d, 0xb4, 0x83, 0x87, 0x1b, 0xbc, 0x10, 0x30, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x4f, 0x84, 0xcd, 0x40, 0x7e, 0x22, 0xac, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x27, 0xc2, 0x68, 0x20, 0x3f, 0x11, 0x86, 0x1b, 0xde, 0xd6, 0xd9, 0xf0, 0xdc, 0x6a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x7e, 0x22, 0x2c, 0x07, 0xf2, 0x13, 0x61, 0x7c, 0xf0, 0x0c, 0xc0, 0x94, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x41, 0x11, 0x7f, 0xf0, 0x86, 0x40, 0xea, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0x8a, 0x10, 0x0c, 0x24, 0x28, 0xc2, 0x62, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x82, 0x22, 0x64, 0x03, 0x09, 0x8a, 0x10, 0x1e, 0x9e, 0xd6, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x14, 0x21, 0x1d, 0x48, 0x50, 0x84, 0xf8, 0x20, 0xe5, 0xed, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x14, 0x21, 0x1f, 0x48, 0x50, 0x84, 0xc1, 0xc1, 0xf1, 0x93, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x50, 0x84, 0xc9, 0x40, 0x82, 0x22, 0xac, 0x0e, 0x9e, 0x01, 0x98, 0xd2, 0xe1, 0x14, 0x5b, 0x83, 0x93, 0x0a, 0xe9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x20, 0xe2, 0x07, 0x12, 0x11, 0xa1, 0x60, 0xc3, 0x2f, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x0e, 0x22, 0x64, 0x03, 0x39, 0x88, 0xb0, 0xdd, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x83, 0x08, 0xe1, 0x40, 0x0e, 0x22, 0x8c, 0x36, 0xfc, 0xb9, 0x34, 0xe0, 0x89, 0xbd, 0xc5, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x83, 0x08, 0x83, 0x83, 0xf7, 0xf7, 0x52, 0x1f, 0xbe, 0x9d, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x10, 0x61, 0x35, 0x90, 0x83, 0x08, 0xd3, 0x0d, 0x7f, 0x2e, 0x6d, 0xd0, 0xea, 0xf0, 0xe7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x20, 0xc2, 0xf2, 0xe0, 0xf5, 0xc3, 0xd4, 0x87, 0x1f, 0x6a, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x24, 0x44, 0xfc, 0xc1, 0x13, 0x71, 0xa9, 0x37, 0x28, 0x48, 0x63, 0x37, 0x38, 0x23, 0xdf, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0x88, 0x30, 0x18, 0x48, 0x42, 0x84, 0xf5, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x24, 0x44, 0x58, 0x0c, 0x24, 0x21, 0xc2, 0xe8, 0xa0, 0x28, 0xfe, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x10, 0x61, 0x35, 0x90, 0x84, 0x08, 0xc3, 0x83, 0x07, 0xd2, 0x31, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0x88, 0xb0, 0x1c, 0x48, 0x42, 0x84, 0xf1, 0xc1, 0x23, 0xc7, 0x5c, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x2c, 0x44, 0xfc, 0xc1, 0x13, 0x71, 0xa9, 0x37, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x21, 0x42, 0x36, 0x90, 0x85, 0x08, 0x9b, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x65, 0x6e, 0xf9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x21, 0x42, 0x7e, 0xf0, 0x8a, 0x6d, 0xea, 0x83, 0xe7, 0xde, 0x83, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x1a, 0x22, 0xfe, 0xe0, 0x89, 0xb8, 0xd4, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x10, 0x21, 0x1b, 0x48, 0x43, 0x84, 0xcd, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x34, 0x44, 0x08, 0x07, 0xd2, 0x10, 0x21, 0x3d, 0xfc, 0x50, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x21, 0x42, 0x3c, 0x90, 0x86, 0x08, 0x93, 0x83, 0xe7, 0xde, 0x83, 0xb4, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0x88, 0xf8, 0x83, 0x27, 0xe2, 0x52, 0x6f, 0x50, 0x74, 0xd0, 0x0e, 0x1e, 0x6e, 0xf0, 0x42, 0xc0, 0x94, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x0f, 0x11, 0x36, 0x03, 0x79, 0x88, 0xd0, 0xb1, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x0f, 0x11, 0x46, 0x03, 0x79, 0x88, 0x30, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x87, 0x08, 0xab, 0x81, 0x3c, 0x44, 0x58, 0x1e, 0xbc, 0x24, 0xd9, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x43, 0x84, 0xe9, 0x40, 0x1e, 0x22, 0xac, 0x0f, 0x8e, 0x7b, 0x78, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0x88, 0xb0, 0x1f, 0xc8, 0x43, 0x84, 0x8a, 0x83, 0x67, 0x00, 0xa6, 0xb4, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0x88, 0xf8, 0x83, 0x27, 0xe2, 0x52, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x44, 0x84, 0x60, 0x20, 0x11, 0x11, 0xb6, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x11, 0x21, 0x19, 0x48, 0x44, 0x84, 0xf0, 0xa0, 0x24, 0x9a, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x11, 0x21, 0x1d, 0x48, 0x44, 0x84, 0xc1, 0xc1, 0x03, 0xe9, 0x98, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x44, 0x44, 0x58, 0x0c, 0x24, 0x22, 0xc2, 0x6c, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x22, 0x22, 0x4c, 0x06, 0x12, 0x11, 0x61, 0x73, 0x78, 0x5a, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x44, 0x84, 0xd1, 0x40, 0x22, 0x22, 0xac, 0x0e, 0x8f, 0xc9, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x22, 0xc2, 0x6e, 0x20, 0x11, 0x11, 0xa6, 0x07, 0x8f, 0x1c, 0x73, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x44, 0x84, 0xf1, 0x40, 0x22, 0x22, 0xec, 0x0f, 0x9e, 0x01, 0x98, 0xd2, 0x6a, 0x70, 0x2e, 0x3a, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb4, 0x44, 0xfc, 0x40, 0x6a, 0x22, 0x4c, 0x36, 0x28, 0x94, 0x3b, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb4, 0x44, 0xc8, 0x06, 0xd2, 0x12, 0x61, 0xb8, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x2d, 0x11, 0xc2, 0x81, 0xb4, 0x44, 0x58, 0x6c, 0xf8, 0x73, 0x69, 0x70, 0x76, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x12, 0x21, 0x3e, 0x78, 0x28, 0x47, 0xf5, 0xc1, 0xd3, 0xc5, 0x9f, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb4, 0x44, 0x98, 0x0c, 0xa4, 0x25, 0xc2, 0x6e, 0xc3, 0x9f, 0x4b, 0x83, 0xcb, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x96, 0x08, 0xa3, 0x83, 0xb7, 0x89, 0x54, 0x1f, 0x3c, 0x5d, 0xfc, 0xb9, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x4b, 0xc4, 0x1f, 0xbc, 0xe3, 0xa2, 0x7a, 0xc3, 0x2f, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x5e, 0x22, 0x64, 0x03, 0x79, 0x89, 0xb0, 0xd9, 0xf0, 0xe7, 0xd2, 0x80, 0x57, 0xe6, 0x96, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x5e, 0x22, 0xe4, 0x07, 0x2f, 0x57, 0xa9, 0x3e, 0x78, 0xee, 0x3d, 0xc8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x26, 0xe2, 0x0f, 0xde, 0x71, 0x51, 0xbd, 0x41, 0xd1, 0x41, 0x3b, 0x78, 0xb8, 0xc1, 0x0b, 0x01, 0x53, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc4, 0x44, 0xd8, 0x0c, 0x24, 0x26, 0xc2, 0x74, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x62, 0x22, 0x8c, 0x06, 0x12, 0x13, 0x61, 0x75, 0x90, 0xf2, 0x76, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x26, 0xc2, 0x6c, 0x20, 0x31, 0x11, 0x96, 0x07, 0xcf, 0x00, 0x4c, 0x69, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x13, 0xf1, 0x07, 0xef, 0xb8, 0xa8, 0xde, 0xa0, 0xe8, 0xa0, 0x1d, 0x5c, 0xdc, 0xe0, 0x85, 0x80, 0x29, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x66, 0x22, 0x6c, 0x06, 0x32, 0x13, 0x61, 0xba, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x33, 0x11, 0x46, 0x03, 0x99, 0x89, 0xb0, 0x3a, 0x38, 0x7e, 0xf2, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x99, 0x89, 0x30, 0x1b, 0xc8, 0x4c, 0x84, 0xe5, 0xc1, 0x33, 0x00, 0x53, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd4, 0x44, 0xfc, 0xc1, 0x3b, 0x2e, 0xaa, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x26, 0x42, 0x30, 0x90, 0x9a, 0x08, 0xe9, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd4, 0x44, 0x48, 0x06, 0x52, 0x13, 0x21, 0x3a, 0x3c, 0xad, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x26, 0x42, 0x36, 0x90, 0x9a, 0x08, 0xe1, 0xe1, 0xbd, 0xa0, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd4, 0x44, 0x88, 0x07, 0x52, 0x13, 0x61, 0x71, 0xf0, 0x0c, 0xc0, 0x94, 0x56, 0x83, 0xe6, 0x29, 0xa4, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x9a, 0xa7, 0x90, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x14, 0x43, 0x88, 0x07, 0x52, 0x0c, 0x61, 0xbf, 0x41, 0x38, 0x8d, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x29, 0x86, 0xb0, 0x18, 0x48, 0x31, 0x84, 0xd5, 0xc1, 0x73, 0xef, 0x41, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xc5, 0x10, 0x66, 0x03, 0x29, 0x86, 0x30, 0xdf, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x62, 0x08, 0xbb, 0x81, 0x14, 0x43, 0x18, 0x1e, 0x84, 0xe9, 0xd8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x62, 0x08, 0xcb, 0x81, 0x14, 0x43, 0x58, 0x1f, 0x3c, 0xf7, 0x1e, 0xa4, 0xc3, 0x29, 0xb6, 0x86, 0xe7, 0x56, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xd9, 0x10, 0x3f, 0x90, 0x6e, 0x08, 0xa3, 0x0d, 0xbf, 0x28, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0x86, 0x90, 0x0d, 0x24, 0x1b, 0xc2, 0x66, 0xc3, 0x9f, 0x4b, 0x03, 0x5e, 0x99, 0x5b, 0xbe, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0x86, 0x90, 0x1f, 0xbc, 0x3d, 0xad, 0xfa, 0xe0, 0xb9, 0xf7, 0x20, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x6d, 0x88, 0x3f, 0x78, 0xcd, 0x59, 0xf5, 0x86, 0x4f, 0x6c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x6c, 0x43, 0xc8, 0x06, 0xb2, 0x0d, 0xa1, 0x64, 0xc3, 0xe7, 0x2e, 0x1b, 0x3c, 0xaf, 0x7a, 0x7a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x0d, 0x61, 0x72, 0xf0, 0x54, 0xb9, 0xea, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0x86, 0xb0, 0x19, 0xc8, 0x36, 0x84, 0x86, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0xde, 0xbf, 0x3d, 0xbd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x1b, 0xc2, 0x74, 0x20, 0xdb, 0x10, 0xc6, 0x07, 0x69, 0x7f, 0xaf, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xb6, 0x21, 0xac, 0x07, 0xb2, 0x0d, 0xa1, 0xe0, 0xe0, 0x19, 0x80, 0x29, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0x86, 0x50, 0x31, 0x90, 0x6d, 0x08, 0x1d, 0x87, 0xc7, 0x64, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x74, 0x43, 0xfc, 0xc1, 0x6b, 0xce, 0xaa, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x1b, 0x42, 0x30, 0x90, 0x6e, 0x08, 0xf1, 0x86, 0x7f, 0x73, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x74, 0x43, 0x88, 0x06, 0xd2, 0x0d, 0x21, 0x3b, 0xbc, 0x17, 0xb4, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0x86, 0x10, 0x0e, 0xa4, 0x1b, 0x42, 0x7a, 0x78, 0xf0, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x37, 0x84, 0x7c, 0x20, 0xdd, 0x10, 0x36, 0x07, 0xef, 0x12, 0xa0, 0x6e, 0xd6, 0xe0, 0x20, 0xcf, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0x8e, 0xf8, 0x81, 0xb4, 0x47, 0xa8, 0xdb, 0xa0, 0x94, 0x10, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x1d, 0x21, 0x1b, 0x48, 0x7a, 0x84, 0x74, 0x83, 0x92, 0x85, 0x7d, 0x96, 0x59, 0x83, 0x37, 0x83, 0x7c, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xb2, 0x23, 0xac, 0x06, 0x92, 0x1d, 0xa1, 0x61, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xb2, 0x23, 0xcc, 0x06, 0x92, 0x1d, 0x61, 0x7a, 0xd0, 0xca, 0x73, 0xc5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xec, 0x08, 0xdb, 0x81, 0x64, 0x47, 0x28, 0xd8, 0xf0, 0x23, 0xcc, 0xe0, 0x74, 0xe0, 0xd5, 0xe1, 0x25, 0xcd, 0x1a, 0x2c, 0xbc, 0xcc, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5c, 0x47, 0x58, 0x0d, 0xe4, 0x3a, 0x42, 0xdd, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5c, 0x47, 0x98, 0x0d, 0xe4, 0x3a, 0x42, 0xcf, 0x86, 0x4f, 0x6c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5c, 0x47, 0x58, 0x0e, 0xe4, 0x3a, 0xc2, 0xfa, 0xa0, 0x95, 0xe7, 0x8a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x75, 0x84, 0xf9, 0x40, 0xae, 0x23, 0xd4, 0x6c, 0xb8, 0xa4, 0x36, 0x7c, 0x39, 0xb9, 0x06, 0x09, 0xb3, 0x5d, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xeb, 0x08, 0x25, 0x03, 0xb9, 0x8e, 0xd0, 0x72, 0x50, 0xc0, 0xe6, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x3a, 0x42, 0xd1, 0x40, 0xae, 0x23, 0xb4, 0x6d, 0xf8, 0x11, 0x66, 0x70, 0x3a, 0xf0, 0xea, 0xc8, 0x8c, 0x56, 0x83, 0x73, 0xfd, 0xe9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x3c, 0x42, 0x3a, 0x90, 0xf3, 0x08, 0xf9, 0x06, 0x49, 0x06, 0x84, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc2, 0x23, 0x2c, 0x06, 0x12, 0x1e, 0x61, 0x75, 0xd0, 0x06, 0x05, 0xec, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xf1, 0x08, 0xf9, 0x40, 0xc6, 0x23, 0x7c, 0xd9, 0x20, 0xc9, 0x80, 0x70, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x78, 0x84, 0xc5, 0x40, 0xc6, 0x23, 0xac, 0x0e, 0xda, 0x4f, 0x8f, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x1e, 0x61, 0x36, 0x90, 0xf1, 0x08, 0xfb, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0x8f, 0xb0, 0x1b, 0xc8, 0x78, 0x84, 0xed, 0xc1, 0x82, 0x8d, 0xd0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe3, 0x11, 0xc6, 0x03, 0x19, 0x8f, 0x30, 0x3f, 0x58, 0xe6, 0x24, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xf1, 0x08, 0x05, 0x03, 0x19, 0x8f, 0x70, 0x65, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc6, 0x23, 0x34, 0x0c, 0x64, 0x3c, 0x42, 0xcb, 0x41, 0x1b, 0x14, 0xb0, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc6, 0x23, 0xd4, 0x0c, 0x64, 0x3c, 0x42, 0xdd, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x8c, 0x47, 0xe8, 0x19, 0xc8, 0x78, 0x84, 0xae, 0x83, 0x05, 0x1b, 0xa1, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc6, 0x23, 0x94, 0x0d, 0x64, 0x3c, 0x42, 0xdb, 0x41, 0x41, 0x91, 0xd9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xf1, 0x08, 0x7d, 0x03, 0x19, 0x8f, 0xf0, 0x64, 0x83, 0x24, 0x03, 0xc2, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe3, 0x11, 0x1a, 0x07, 0x32, 0x1e, 0xa1, 0xf5, 0xa0, 0xfd, 0xf4, 0xd8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe3, 0x11, 0x6a, 0x07, 0x32, 0x1e, 0xa1, 0x7e, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc6, 0x23, 0xf4, 0x0e, 0x64, 0x3c, 0x42, 0xf7, 0xc1, 0x82, 0x8d, 0xd0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe3, 0x11, 0xca, 0x07, 0x32, 0x1e, 0xa1, 0xfd, 0xa0, 0xa0, 0xc8, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x78, 0x84, 0xfe, 0x81, 0x8c, 0x47, 0xf8, 0xb0, 0xe1, 0x6d, 0x9d, 0x83, 0x07, 0xe7, 0x7c, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0x8f, 0x70, 0x62, 0x20, 0xe3, 0x11, 0x8e, 0x1c, 0xbc, 0xce, 0xbc, 0xba, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x1e, 0x21, 0x1f, 0x48, 0x79, 0x84, 0xaa, 0x0d, 0x92, 0x0c, 0x08, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x94, 0x47, 0x58, 0x0c, 0xa4, 0x3c, 0xc2, 0xea, 0xa0, 0xfd, 0xf4, 0xd8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe5, 0x11, 0x66, 0x03, 0x29, 0x8f, 0xb0, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xf2, 0x08, 0xbb, 0x81, 0x94, 0x47, 0xd8, 0x1e, 0x2c, 0xd8, 0x08, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x1e, 0x61, 0x3c, 0x90, 0xf2, 0x08, 0xf3, 0x83, 0x55, 0x60, 0xb2, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x29, 0x8f, 0x50, 0x30, 0x90, 0xf2, 0x08, 0x4d, 0x1b, 0xde, 0xd6, 0x19, 0xc0, 0xa3, 0xad, 0x6c, 0x6e, 0xae, 0x25, 0xac, 0x8e, 0x0e, 0xad, 0x66, 0x0d, 0x9e, 0xb5, 0x5f, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0x8e, 0x90, 0x0e, 0xa4, 0x3b, 0xc2, 0x8f, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0x8e, 0x10, 0x0f, 0xa4, 0x3b, 0xc2, 0xe4, 0xa0, 0x0d, 0x0a, 0xd8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xdd, 0x11, 0x36, 0x03, 0xe9, 0x8e, 0x50, 0xb8, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xdd, 0x11, 0x46, 0x03, 0xe9, 0x8e, 0x30, 0x3c, 0x68, 0x3f, 0x3d, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x77, 0x84, 0xe5, 0x40, 0xba, 0x23, 0x54, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x77, 0x84, 0xe9, 0x40, 0xba, 0x23, 0xcc, 0x0f, 0x16, 0x6c, 0x84, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0x8e, 0xb0, 0x1f, 0x48, 0x77, 0x84, 0x86, 0x83, 0x55, 0x60, 0xb2, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0x8e, 0xd0, 0x31, 0x90, 0xee, 0x08, 0x7d, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x1d, 0xa1, 0x64, 0x20, 0xdd, 0x11, 0x8a, 0x0e, 0x5a, 0x79, 0xae, 0x58, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x1d, 0xa1, 0x69, 0x20, 0xdd, 0x11, 0xea, 0x36, 0xfc, 0x08, 0x33, 0x38, 0x1d, 0x78, 0x75, 0x78, 0x4a, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0x8e, 0xd0, 0x38, 0x90, 0xee, 0x08, 0x37, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x3b, 0x42, 0xe5, 0x40, 0xba, 0x23, 0xd4, 0x1e, 0xb4, 0x9f, 0x1e, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x3b, 0x42, 0xef, 0x40, 0xba, 0x23, 0x1c, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xee, 0x08, 0xc5, 0x03, 0xe9, 0x8e, 0x50, 0x7e, 0xb0, 0x60, 0x23, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x77, 0x84, 0xf6, 0x81, 0x74, 0x47, 0xe8, 0x3f, 0x58, 0xe6, 0x24, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xee, 0x08, 0x0f, 0x06, 0xd2, 0x1d, 0xe1, 0xc5, 0xc1, 0xeb, 0xcc, 0xab, 0xeb, 0x70, 0x8a, 0x75, 0x38, 0xc5, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xeb, 0x11, 0x7f, 0xf0, 0x50, 0xc9, 0xea, 0x0d, 0x7f, 0xd1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0x8f, 0x90, 0x0d, 0x64, 0x3d, 0x42, 0xc9, 0x06, 0xe1, 0x34, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x3d, 0x42, 0x3c, 0x90, 0xf5, 0x08, 0x93, 0x83, 0xe7, 0xde, 0x83, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xd6, 0x23, 0x6c, 0x06, 0xb2, 0x1e, 0xa1, 0x63, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xd6, 0x23, 0x8c, 0x06, 0xb2, 0x1e, 0x61, 0xbd, 0xe1, 0xdf, 0xf9, 0x0d, 0x8e, 0xa5, 0x71, 0x07, 0x4f, 0xdd, 0x29, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x1e, 0x61, 0x3e, 0x90, 0xf5, 0x08, 0x15, 0x07, 0xcf, 0xbd, 0x07, 0x69, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x1e, 0xf1, 0x07, 0x0f, 0x95, 0xac, 0xde, 0x20, 0xc9, 0x80, 0x70, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x7b, 0x84, 0x64, 0x20, 0xed, 0x11, 0xd2, 0x83, 0xf6, 0xd3, 0x63, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb4, 0x47, 0x88, 0x07, 0xd2, 0x1e, 0x61, 0x72, 0xb0, 0x96, 0x93, 0x78, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x7b, 0x84, 0xcd, 0x40, 0xda, 0x23, 0xec, 0x36, 0xbc, 0xad, 0x73, 0xf0, 0x3e, 0x68, 0xe0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xed, 0x11, 0x86, 0x03, 0x69, 0x8f, 0xd0, 0xb6, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xed, 0x11, 0x96, 0x03, 0x69, 0x8f, 0xb0, 0x3e, 0x78, 0xed, 0x51, 0xf4, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xf6, 0x08, 0xf3, 0x81, 0xb4, 0x47, 0xd8, 0x1f, 0x14, 0x39, 0xad, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xda, 0x23, 0x14, 0x0c, 0xa4, 0x3d, 0x42, 0xd9, 0x06, 0x0b, 0x3b, 0x97, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xed, 0x11, 0x3a, 0x06, 0xd2, 0x1e, 0xa1, 0x6b, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xda, 0x23, 0x94, 0x0c, 0xa4, 0x3d, 0x42, 0xcf, 0x41, 0xa1, 0xdd, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x3d, 0x42, 0xd1, 0x40, 0xda, 0x23, 0x54, 0x1d, 0x1c, 0x5e, 0xe5, 0xaa, 0xc3, 0x29, 0xd6, 0x1a, 0x3c, 0x33, 0xd9, 0x6e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x0e, 0xf1, 0x03, 0x79, 0x87, 0xd0, 0xb0, 0xe1, 0x17, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe3, 0x10, 0xb2, 0x81, 0x8c, 0x43, 0x58, 0x6c, 0xf8, 0x73, 0x69, 0x83, 0xf2, 0xf2, 0x72, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x0e, 0x21, 0x3f, 0x78, 0xa8, 0x98, 0xf5, 0xc1, 0x51, 0xe8, 0x64, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x0e, 0xf1, 0x07, 0x2f, 0xff, 0xb2, 0xde, 0xf0, 0x8b, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x72, 0x08, 0xd9, 0x40, 0xca, 0x21, 0x6c, 0x36, 0xfc, 0xb9, 0x34, 0xe0, 0x95, 0xb9, 0xe5, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x72, 0x08, 0xf9, 0xc1, 0x7b, 0xd6, 0xac, 0x0f, 0x9e, 0x7b, 0x0f, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0x87, 0xf8, 0x83, 0x97, 0x7f, 0x59, 0x6f, 0x50, 0x90, 0xc6, 0x0e, 0xfc, 0xdb, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x1c, 0x42, 0x3e, 0x90, 0x73, 0x08, 0xd3, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x8a, 0x1a, 0xf1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe7, 0x10, 0x36, 0x03, 0x39, 0x87, 0xb0, 0x3a, 0x48, 0xfb, 0x7b, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x0e, 0x61, 0x36, 0x90, 0x73, 0x08, 0xcb, 0x83, 0x67, 0x00, 0xa6, 0xb4, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0x87, 0xf8, 0x83, 0x97, 0x7f, 0x59, 0x6f, 0xf8, 0x0a, 0x67, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x0e, 0x21, 0x3b, 0x78, 0xf9, 0x97, 0xf5, 0x86, 0xbf, 0x68, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa4, 0x43, 0xc8, 0x07, 0x92, 0x0e, 0x61, 0xb7, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xe9, 0x10, 0x06, 0x03, 0x49, 0x87, 0xb0, 0x38, 0xfc, 0x50, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x1d, 0xc2, 0x64, 0x20, 0xe9, 0x10, 0x66, 0x07, 0xcf, 0xbd, 0x07, 0x69, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x0e, 0xf1, 0x07, 0x2f, 0xff, 0xb2, 0xde, 0xa0, 0xe8, 0xa0, 0x1d, 0x3c, 0xdc, 0x20, 0x59, 0xf0, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x3a, 0x84, 0xc9, 0x40, 0xd6, 0x21, 0xf4, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x3a, 0x84, 0xcd, 0x40, 0xd6, 0x21, 0x4c, 0x37, 0x3c, 0x28, 0xb9, 0x86, 0xb7, 0x75, 0x36, 0x48, 0xaf, 0xf6, 0x6d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x0e, 0x61, 0x78, 0xf0, 0xae, 0x48, 0xeb, 0x83, 0xb4, 0xbf, 0xd7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xeb, 0x10, 0xb6, 0x03, 0x59, 0x87, 0x50, 0xb3, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xeb, 0x10, 0xc6, 0x03, 0x59, 0x87, 0xb0, 0x3f, 0x28, 0x8a, 0x7f, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xac, 0x43, 0x28, 0x18, 0xc8, 0x3a, 0x84, 0x86, 0xc3, 0x83, 0x37, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xd6, 0x21, 0x54, 0x0c, 0x64, 0x1d, 0x42, 0xcb, 0xc1, 0x9a, 0x2c, 0xcd, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb4, 0x43, 0xfc, 0xc1, 0xcb, 0xbf, 0xac, 0x37, 0x28, 0x3a, 0x68, 0x07, 0x17, 0x37, 0x48, 0x16, 0x7c, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x0e, 0x61, 0x32, 0x90, 0x76, 0x08, 0xeb, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0x87, 0xb0, 0x19, 0x48, 0x3b, 0x84, 0xe9, 0x86, 0x07, 0x25, 0xd7, 0xf0, 0xb6, 0xce, 0xc1, 0xfb, 0xb7, 0xa7, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xed, 0x10, 0x86, 0x07, 0x8f, 0x4a, 0xb5, 0x3e, 0x48, 0xfb, 0x7b, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x0e, 0x61, 0x3b, 0x90, 0x76, 0x08, 0xe3, 0xc3, 0xd3, 0x3a, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xde, 0x21, 0xfe, 0xe0, 0xe5, 0x5f, 0xd6, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x0e, 0x21, 0x1a, 0xc8, 0x3b, 0x84, 0xd5, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbc, 0x43, 0xc8, 0x06, 0xf2, 0x0e, 0x21, 0x3e, 0x48, 0xc3, 0x56, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x0e, 0x21, 0x1f, 0xc8, 0x3b, 0x84, 0xc1, 0xe1, 0xbd, 0xa0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xef, 0x10, 0x16, 0x03, 0x79, 0x87, 0x30, 0x3a, 0x58, 0x93, 0xa5, 0xd9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x77, 0x08, 0xb3, 0x81, 0xbc, 0x43, 0xd8, 0x1d, 0x04, 0x20, 0xdb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x1d, 0xc2, 0x70, 0x20, 0xef, 0x10, 0x0a, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x1d, 0xc2, 0x72, 0x20, 0xef, 0x10, 0xa6, 0x87, 0xf7, 0x82, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbc, 0x43, 0xd8, 0x0e, 0xe4, 0x1d, 0xc2, 0xfe, 0xe0, 0x5d, 0x02, 0xd4, 0xad, 0x06, 0x2f, 0xfb, 0x1b, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xcc, 0x47, 0xfc, 0x40, 0x02, 0x24, 0x24, 0x1b, 0x94, 0x12, 0xe2, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xe6, 0x23, 0x64, 0x03, 0xb9, 0x8f, 0x90, 0x6e, 0x50, 0xb2, 0xb0, 0xcf, 0x32, 0x6b, 0xb0, 0x6c, 0xba, 0x7c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x1f, 0x61, 0x35, 0x90, 0xfa, 0x08, 0x0d, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x1f, 0x61, 0x36, 0x90, 0xfa, 0x08, 0xd3, 0x83, 0x56, 0x9e, 0x2b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd4, 0x47, 0xd8, 0x0e, 0xa4, 0x3e, 0x42, 0xc1, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x03, 0xaf, 0x8e, 0xac, 0xe8, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x7e, 0xc4, 0x1f, 0xbc, 0x7b, 0xd9, 0x7a, 0x83, 0x24, 0x03, 0xc2, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xf9, 0x11, 0xb2, 0x81, 0xe4, 0x47, 0xc8, 0x0f, 0xda, 0xa0, 0x80, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x1f, 0x21, 0x19, 0xc8, 0x7e, 0x84, 0xd5, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xec, 0x47, 0x88, 0x06, 0xb2, 0x1f, 0x21, 0x3e, 0x78, 0xed, 0x51, 0xf4, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xfd, 0x08, 0xf9, 0x40, 0xf6, 0x23, 0x0c, 0x0e, 0x8a, 0x9c, 0xd6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xfb, 0x11, 0x16, 0x03, 0xd9, 0x8f, 0x30, 0x3a, 0x48, 0xc5, 0xfe, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x7f, 0x84, 0x64, 0x20, 0xfd, 0x11, 0xda, 0x36, 0x48, 0x32, 0x20, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x1f, 0x21, 0x1b, 0x48, 0x7f, 0x84, 0xfc, 0xa0, 0xfd, 0xf4, 0xd8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xfd, 0x11, 0x06, 0x03, 0xe9, 0x8f, 0x30, 0xdd, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xfe, 0x08, 0x8b, 0x81, 0xf4, 0x47, 0x58, 0x1d, 0x2c, 0xd8, 0x08, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x1f, 0x61, 0x36, 0x90, 0xfe, 0x08, 0xcb, 0x83, 0x95, 0xbd, 0xb0, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0x8f, 0xb0, 0x1d, 0x48, 0x7f, 0x84, 0x9e, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0x8f, 0x30, 0x1e, 0x48, 0x7f, 0x84, 0x82, 0x83, 0x56, 0x9e, 0x2b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf4, 0x47, 0x68, 0x18, 0x48, 0x7f, 0x84, 0x9a, 0x0d, 0x3f, 0xc2, 0x0c, 0x4e, 0x07, 0x5e, 0x9a, 0x99, 0xd1, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xfe, 0x08, 0x45, 0x03, 0xe9, 0x8f, 0x50, 0xb6, 0xe1, 0x6d, 0x9d, 0x83, 0x76, 0x7d, 0xac, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x1f, 0x21, 0x19, 0xc8, 0x7f, 0x84, 0xb6, 0x0d, 0x92, 0x0c, 0x08, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfc, 0x47, 0xc8, 0x06, 0xf2, 0x1f, 0x21, 0x3f, 0x68, 0x3f, 0x3d, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x7f, 0x84, 0xc1, 0x40, 0xfe, 0x23, 0x4c, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x3f, 0xc2, 0x62, 0x20, 0xff, 0x11, 0x56, 0x07, 0x0b, 0x36, 0x42, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfc, 0x47, 0x98, 0x0d, 0xe4, 0x3f, 0xc2, 0xf2, 0x60, 0x69, 0x2b, 0x6c, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xfe, 0x23, 0x6c, 0x07, 0xf2, 0x1f, 0xa1, 0x67, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xfe, 0x23, 0x8c, 0x07, 0xf2, 0x1f, 0xa1, 0xe0, 0xa0, 0x95, 0xe7, 0x8a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xff, 0x11, 0x1a, 0x06, 0xf2, 0x1f, 0xa1, 0x66, 0xc3, 0x8f, 0x30, 0x83, 0xd3, 0x81, 0x97, 0x36, 0x87, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x3f, 0x42, 0xd1, 0x40, 0xfe, 0x23, 0x94, 0x1d, 0xbc, 0x92, 0xe0, 0xba, 0x56, 0xc3, 0xf7, 0xed, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xdc, 0x88, 0x1f, 0xc8, 0x73, 0x84, 0x8e, 0x0d, 0x4a, 0x09, 0xf1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xb9, 0x11, 0xb2, 0x81, 0x24, 0x47, 0x48, 0x37, 0x28, 0x59, 0xd8, 0x67, 0x99, 0x35, 0x58, 0x78, 0x99, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x09, 0x8e, 0xb0, 0x1a, 0x48, 0x70, 0x84, 0xe5, 0x86, 0xb7, 0x75, 0x0e, 0x1e, 0x68, 0xeb, 0xb8, 0x1a, 0xbc, 0x88, 0xd6, 0x71, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x1b, 0x61, 0x35, 0x90, 0xde, 0x08, 0x0d, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x1b, 0x61, 0x36, 0x90, 0xde, 0x08, 0xd3, 0x83, 0x56, 0x9e, 0x2b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf4, 0x46, 0xd8, 0x0e, 0xa4, 0x37, 0x42, 0xc1, 0xc1, 0x5b, 0x64, 0xab, 0x9b, 0x35, 0x38, 0x98, 0x7e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x8e, 0x23, 0xac, 0x06, 0x72, 0x1c, 0xa1, 0x6d, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x8e, 0x23, 0xcc, 0x06, 0x72, 0x1c, 0x61, 0x7a, 0xd0, 0x32, 0x13, 0xe1, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xe3, 0x08, 0xdb, 0x81, 0x1c, 0x47, 0x68, 0xd8, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xe3, 0x08, 0xe3, 0x81, 0x1c, 0x47, 0x58, 0x1f, 0x1e, 0x93, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x1c, 0x61, 0x3e, 0x90, 0xe3, 0x08, 0x05, 0x07, 0x29, 0xaf, 0x55, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0x8e, 0x50, 0x31, 0x90, 0xe3, 0x08, 0x65, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x1c, 0xa1, 0x63, 0x20, 0xc7, 0x11, 0x7a, 0x0e, 0x5a, 0x79, 0xae, 0x58, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x1c, 0xa1, 0x68, 0x20, 0xc7, 0x11, 0xba, 0x0e, 0xd6, 0x52, 0xd9, 0xd5, 0x2c, 0xe0, 0xdf, 0x85, 0xb9, 0xd1, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xe1, 0x08, 0xab, 0x81, 0x14, 0x47, 0x78, 0xb0, 0x41, 0xd1, 0x69, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x38, 0xc2, 0x72, 0x20, 0xc3, 0x11, 0xd6, 0x07, 0x6d, 0x50, 0xc0, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0x8e, 0xb0, 0x1f, 0xc8, 0x70, 0x84, 0x9e, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0x8e, 0x50, 0x30, 0x90, 0xe1, 0x08, 0x25, 0x07, 0x0b, 0x36, 0x42, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x0c, 0x47, 0x68, 0x19, 0xc8, 0x70, 0x84, 0x9a, 0x83, 0x82, 0x22, 0xb3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x71, 0x84, 0xd5, 0xc1, 0x03, 0x99, 0xae, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x38, 0xc2, 0x6c, 0x20, 0xc5, 0x11, 0xa6, 0x07, 0xed, 0xa7, 0xc7, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x29, 0x8e, 0xb0, 0x1d, 0x48, 0x71, 0x84, 0xee, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x29, 0x8e, 0x30, 0x1e, 0x48, 0x71, 0x84, 0x82, 0x83, 0x36, 0x28, 0x60, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x14, 0x47, 0x68, 0x18, 0x48, 0x71, 0x84, 0xb6, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x29, 0x8e, 0x50, 0x31, 0x90, 0xe2, 0x08, 0x35, 0x07, 0x0b, 0x36, 0x42, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x14, 0x47, 0xe8, 0x19, 0x48, 0x71, 0x84, 0xb2, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0xee, 0xe0, 0x5c, 0x7f, 0xda, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xe2, 0x08, 0x75, 0x03, 0x29, 0x8e, 0x50, 0xbd, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xc5, 0x11, 0xfa, 0x06, 0x52, 0x1c, 0xa1, 0xf3, 0x60, 0xc1, 0x46, 0xe8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xe2, 0x08, 0xa5, 0x03, 0x29, 0x8e, 0xd0, 0xbc, 0xe1, 0x8d, 0xbb, 0x0d, 0x2f, 0xdf, 0x1d, 0x1c, 0xe4, 0xd9, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x71, 0x84, 0xf2, 0x81, 0x14, 0x47, 0x38, 0x70, 0xb0, 0x96, 0x93, 0xb8, 0xd5, 0xf0, 0x1d, 0xfd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x37, 0xc2, 0x6a, 0x20, 0xbf, 0x11, 0x1a, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x37, 0xc2, 0x6c, 0x20, 0xbf, 0x11, 0xa6, 0x07, 0xad, 0x3c, 0x57, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0x8d, 0xb0, 0x1d, 0xc8, 0x6f, 0x84, 0x82, 0x0d, 0x3f, 0xc2, 0x0c, 0x4e, 0x07, 0x5e, 0x1d, 0x19, 0xd1, 0x6a, 0xd0, 0xf4, 0xf5, 0xf8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x37, 0xc2, 0x6a, 0x20, 0xbb, 0x11, 0x0a, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x37, 0xc2, 0x6c, 0x20, 0xbb, 0x11, 0xa6, 0x07, 0xad, 0x3c, 0x57, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0x8d, 0xb0, 0x1d, 0xc8, 0x6e, 0x84, 0xfd, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x83, 0x87, 0x43, 0x3a, 0x9c, 0x62, 0xd5, 0xe1, 0x14, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x2c, 0x47, 0xfc, 0xc1, 0xe3, 0x43, 0xae, 0x37, 0xfc, 0x45, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x39, 0x42, 0x36, 0x90, 0xe5, 0x08, 0x25, 0x1b, 0x84, 0xd3, 0xd8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xe5, 0x08, 0xf1, 0x40, 0x96, 0x23, 0x4c, 0x0e, 0x9e, 0x7b, 0x0f, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0x8e, 0xb0, 0x19, 0xc8, 0x72, 0x84, 0x8e, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0x8e, 0x30, 0x1a, 0xc8, 0x72, 0x84, 0xf5, 0xc1, 0x7b, 0x7d, 0x98, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x2c, 0x47, 0x98, 0x0f, 0x64, 0x39, 0x42, 0xc5, 0xc1, 0x73, 0xef, 0x41, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x34, 0x47, 0xfc, 0xc1, 0xe3, 0x43, 0xae, 0x37, 0x28, 0x3a, 0x8d, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x34, 0x47, 0xc8, 0x06, 0xd2, 0x1c, 0x21, 0x3f, 0x68, 0x3f, 0x3d, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x73, 0x84, 0xc5, 0x40, 0x9a, 0x23, 0x34, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x73, 0x84, 0xc9, 0x40, 0x9a, 0x23, 0xcc, 0x0e, 0xda, 0x4f, 0x8f, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x1c, 0x61, 0x37, 0x90, 0xe6, 0x08, 0xdb, 0x83, 0x57, 0x20, 0xce, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0x8e, 0x30, 0x1e, 0x48, 0x73, 0x84, 0x82, 0x83, 0x77, 0xa3, 0x5c, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0x8e, 0xf8, 0x83, 0xc7, 0x87, 0x5c, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x73, 0x84, 0x60, 0x20, 0xcf, 0x11, 0xc2, 0x83, 0xf6, 0xd3, 0x63, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x3c, 0x47, 0x48, 0x07, 0xf2, 0x1c, 0x61, 0xbd, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xcf, 0x11, 0xe2, 0x81, 0x3c, 0x47, 0x98, 0x1c, 0xb4, 0x9f, 0x1e, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x39, 0xc2, 0x66, 0x20, 0xcf, 0x11, 0x76, 0x07, 0x45, 0x8d, 0xef, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xe7, 0x08, 0xc3, 0x81, 0x3c, 0x47, 0x18, 0x6f, 0x78, 0x5b, 0x67, 0x83, 0x77, 0x28, 0x5d, 0xd7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0xe7, 0x08, 0xf3, 0x81, 0x3c, 0x47, 0xa8, 0x38, 0x58, 0x0d, 0x15, 0xdc, 0xac, 0xc1, 0x5a, 0x14, 0x9f, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x33, 0xc4, 0x0f, 0x64, 0x1a, 0xc2, 0x64, 0x83, 0x42, 0xb9, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x33, 0x84, 0x6c, 0x20, 0xcd, 0x10, 0xc6, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x0c, 0x21, 0x1c, 0x48, 0x33, 0x84, 0xd5, 0x86, 0x3f, 0x97, 0x06, 0x0f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xcd, 0x10, 0xe2, 0x83, 0x47, 0x2c, 0x5f, 0x6f, 0x10, 0x4e, 0x63, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x9a, 0x21, 0x2c, 0x06, 0xd2, 0x0c, 0x61, 0x72, 0x10, 0xa6, 0x63, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x66, 0x08, 0x9b, 0x81, 0x34, 0x43, 0x18, 0x1d, 0x84, 0xe9, 0xd8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x66, 0x08, 0xb3, 0x81, 0x34, 0x43, 0xd8, 0x6e, 0xf8, 0x73, 0x69, 0x70, 0x71, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x0c, 0x61, 0x78, 0xf0, 0x20, 0xeb, 0xeb, 0x83, 0xa7, 0x8b, 0x3f, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0x86, 0xf8, 0x83, 0x37, 0x16, 0x5f, 0x6f, 0xf8, 0x45, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x33, 0x84, 0x6c, 0x20, 0xcf, 0x10, 0x36, 0x1b, 0xfe, 0x5c, 0x1a, 0xf0, 0xca, 0xdc, 0xf2, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x33, 0x84, 0xfc, 0xe0, 0xb9, 0xde, 0xd7, 0x07, 0xcf, 0xbd, 0x07, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x44, 0x43, 0xfc, 0xc1, 0x1b, 0x8b, 0xaf, 0x37, 0x28, 0x3a, 0x68, 0x07, 0x1f, 0x37, 0x78, 0x21, 0x60, 0xca, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x68, 0x08, 0x9b, 0x81, 0x44, 0x43, 0x98, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x34, 0x84, 0xd1, 0x40, 0xa2, 0x21, 0xac, 0x0e, 0xef, 0x05, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0x86, 0x30, 0x1b, 0x48, 0x34, 0x84, 0xe5, 0xc1, 0x33, 0x00, 0x53, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4c, 0x43, 0xfc, 0xc1, 0x1b, 0x8b, 0xaf, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x1a, 0x42, 0x30, 0x90, 0x69, 0x08, 0xe9, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4c, 0x43, 0x48, 0x06, 0x32, 0x0d, 0x21, 0x3a, 0x3c, 0xad, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x1a, 0x42, 0x36, 0x90, 0x69, 0x08, 0xe1, 0xe1, 0xe9, 0x9d, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4c, 0x43, 0x88, 0x07, 0x32, 0x0d, 0x61, 0x71, 0xf0, 0x0c, 0xc0, 0x94, 0x0e, 0xa7, 0x58, 0x6b, 0xb0, 0xf8, 0xcb, 0x67, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x0c, 0x21, 0x1f, 0xc8, 0x31, 0x84, 0xca, 0x0d, 0x0a, 0xe5, 0xce, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xc7, 0x10, 0x26, 0x03, 0x39, 0x86, 0xb0, 0xda, 0xf0, 0xe7, 0xd2, 0xe0, 0xe1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x18, 0xc2, 0xe8, 0xe0, 0x05, 0x02, 0xd8, 0x07, 0x61, 0x3a, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0x86, 0x30, 0x1b, 0xc8, 0x31, 0x84, 0xc6, 0x0d, 0xbf, 0x28, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0x86, 0xb0, 0x1c, 0xc8, 0x31, 0x84, 0x86, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x65, 0x6e, 0xf9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x18, 0xc2, 0xfa, 0xe0, 0x71, 0x0a, 0xd8, 0x07, 0xcf, 0xbd, 0x07, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1c, 0x43, 0xa8, 0x18, 0xc8, 0x31, 0x84, 0xc2, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0x86, 0xd0, 0x31, 0x90, 0x63, 0x08, 0x25, 0x87, 0xa7, 0x75, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1c, 0x43, 0x68, 0x19, 0xc8, 0x31, 0x84, 0xbe, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0x86, 0x50, 0x33, 0x90, 0x63, 0x08, 0x55, 0x07, 0xe9, 0xc9, 0xb1, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x8e, 0x21, 0x74, 0x0d, 0xe4, 0x18, 0x42, 0xdd, 0xc1, 0x33, 0x00, 0x53, 0xea, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x59, 0x83, 0x67, 0x8c, 0x07, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x42, 0x21, 0x6e, 0x20, 0xbd, 0x10, 0xbb, 0x41, 0xa1, 0xdc, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x14, 0x42, 0x32, 0x90, 0x50, 0x08, 0xbd, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x0a, 0x21, 0x1a, 0x48, 0x28, 0x84, 0x7c, 0xc3, 0x9f, 0x4b, 0x1b, 0x14, 0xb5, 0xc5, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x50, 0x08, 0xf1, 0xc1, 0xa3, 0x4a, 0xb0, 0x0f, 0xc2, 0x74, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x28, 0x84, 0xc1, 0x40, 0x42, 0x21, 0xac, 0x37, 0xfc, 0xb9, 0x34, 0xf0, 0x65, 0xee, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x14, 0xc2, 0xe6, 0xe0, 0x3d, 0x2b, 0xd8, 0x1b, 0x84, 0xd3, 0xd8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x50, 0x08, 0xb3, 0x81, 0x84, 0x42, 0xd8, 0x1d, 0x84, 0xe9, 0xd8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x14, 0xc2, 0x70, 0x20, 0xa1, 0x10, 0xc6, 0x07, 0x0f, 0x8b, 0x19, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x0a, 0x61, 0x3e, 0x90, 0x50, 0x08, 0xb5, 0x1b, 0xfe, 0x5c, 0x1a, 0x78, 0xb2, 0x72, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x0a, 0xa1, 0xe1, 0xe0, 0xb5, 0x36, 0xd8, 0x1b, 0x84, 0xd3, 0xd8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x50, 0x08, 0x25, 0x03, 0x09, 0x85, 0xd0, 0x72, 0xf8, 0xa1, 0x66, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x0a, 0xa1, 0x66, 0x20, 0xa1, 0x10, 0x5a, 0x37, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x14, 0x42, 0xcf, 0x40, 0x42, 0x21, 0x14, 0x1d, 0x84, 0xe9, 0xd8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x50, 0x08, 0x4d, 0x03, 0x09, 0x85, 0x50, 0xb7, 0xe1, 0xcf, 0xa5, 0x01, 0x4f, 0xec, 0x2d, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x84, 0x42, 0x68, 0x3b, 0x78, 0x39, 0x11, 0xf6, 0xe1, 0x87, 0x9a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xa1, 0x10, 0xfa, 0x06, 0x12, 0x0a, 0xa1, 0x74, 0xc3, 0x9f, 0x4b, 0x1b, 0x1c, 0xe0, 0x25, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xa1, 0x10, 0x3a, 0x0f, 0x9e, 0xae, 0x84, 0x7d, 0xf8, 0xa1, 0xa6, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xa3, 0x10, 0x77, 0xf0, 0xec, 0x0f, 0xec, 0x0d, 0x7f, 0xd1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0x85, 0x90, 0x0c, 0x64, 0x14, 0xc2, 0x68, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x0a, 0x21, 0x1a, 0xc8, 0x28, 0x84, 0xf8, 0xa0, 0x6c, 0xc2, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x0a, 0x21, 0x1f, 0xc8, 0x28, 0x84, 0xcd, 0x06, 0x01, 0x74, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0x85, 0x30, 0x38, 0x78, 0x44, 0x16, 0xf6, 0x41, 0xe9, 0x67, 0xdc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x14, 0xe2, 0x0e, 0x9e, 0xfd, 0x81, 0xbd, 0x41, 0x41, 0x1a, 0xbb, 0x41, 0x2b, 0x20, 0x54, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4a, 0x21, 0xc4, 0x03, 0x29, 0x85, 0x30, 0xdb, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x52, 0x08, 0xf9, 0x40, 0x4a, 0x21, 0x2c, 0x0e, 0x9e, 0xa1, 0x1e, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x14, 0xc2, 0x64, 0x20, 0xa5, 0x10, 0x56, 0x07, 0xa5, 0x9f, 0x71, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x53, 0x88, 0x3b, 0x78, 0xf6, 0x07, 0xf6, 0x06, 0x05, 0x69, 0xec, 0x06, 0x0b, 0x13, 0x67, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9c, 0x42, 0x88, 0x07, 0x72, 0x0a, 0x61, 0xbc, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xa7, 0x10, 0xf2, 0x81, 0x9c, 0x42, 0xd8, 0x6d, 0x78, 0x50, 0x72, 0x83, 0x87, 0xe7, 0x8d, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4e, 0x21, 0x6c, 0x0e, 0x1e, 0x04, 0x87, 0xbd, 0xe1, 0x6d, 0x9d, 0x83, 0x57, 0xc7, 0x8c, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0x85, 0x30, 0x1c, 0xc8, 0x29, 0x84, 0xed, 0x41, 0x23, 0x44, 0x54, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x52, 0x21, 0xee, 0xe0, 0xd9, 0x1f, 0xd8, 0x1b, 0x14, 0xa4, 0xb1, 0x03, 0x9e, 0xdc, 0x9b, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x15, 0x42, 0x3c, 0x90, 0x54, 0x08, 0xc3, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0x85, 0x90, 0x0f, 0x24, 0x15, 0xc2, 0xe2, 0xe0, 0x45, 0xf4, 0xc1, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x52, 0x21, 0x4c, 0x06, 0x92, 0x0a, 0x61, 0xb7, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0x83, 0x46, 0x2d, 0x2e, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xac, 0x42, 0xdc, 0xc1, 0xb3, 0x3f, 0xb0, 0x37, 0x28, 0x76, 0x34, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xac, 0x42, 0x48, 0x06, 0xb2, 0x0a, 0x61, 0xb5, 0xe1, 0xdf, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xab, 0x10, 0xb2, 0x81, 0xac, 0x42, 0x88, 0x0f, 0x4a, 0x3f, 0xe3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x2a, 0x84, 0x7c, 0x20, 0xab, 0x10, 0x46, 0x1b, 0x2e, 0xa9, 0x35, 0x0e, 0x1d, 0xbc, 0x06, 0x42, 0xb8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xad, 0x10, 0x3f, 0x90, 0x57, 0x08, 0xe9, 0x06, 0xeb, 0x56, 0x99, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x2b, 0x84, 0x6c, 0x20, 0xad, 0x10, 0xc6, 0x1b, 0xde, 0xb8, 0xdb, 0xf0, 0xf2, 0x5d, 0x80, 0xbf, 0xdc, 0x5b, 0x9d, 0x1b, 0x19, 0x9d, 0x5c, 0x1a, 0x5c, 0x8b, 0x59, 0x58, 0x1a, 0x5b, 0x4b, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0x85, 0xf8, 0x83, 0xd7, 0x46, 0x62, 0x6f, 0x70, 0x0c, 0x37, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbc, 0x42, 0x08, 0x0e, 0x5e, 0x1b, 0x89, 0x7d, 0xf0, 0x62, 0x47, 0xec, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x2c, 0xc4, 0x1d, 0x3c, 0xfb, 0x03, 0x7b, 0x83, 0x62, 0x47, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x2c, 0x84, 0x64, 0x20, 0xb1, 0x10, 0x96, 0x1b, 0xfe, 0xcd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x0b, 0x21, 0x1b, 0x48, 0x2c, 0x84, 0xc1, 0x86, 0xb7, 0x75, 0x06, 0x8f, 0x0f, 0x1a, 0xb5, 0xb8, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc4, 0x42, 0x58, 0x0c, 0x24, 0x16, 0xc2, 0x70, 0xc3, 0xdb, 0x3a, 0x03, 0x9e, 0xd8, 0x5b, 0x7c, 0xf0, 0x1a, 0x08, 0xe1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xb3, 0x10, 0x3f, 0x90, 0x5a, 0x08, 0xe9, 0x06, 0xeb, 0x56, 0x99, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x2c, 0x84, 0x6c, 0x20, 0xb3, 0x10, 0xca, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x16, 0x42, 0x38, 0x90, 0x59, 0x08, 0xeb, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0x2e, 0xc0, 0x5f, 0xee, 0xad, 0xce, 0x8d, 0x8c, 0x4e, 0x2e, 0x0d, 0xae, 0xc5, 0x2c, 0x2c, 0x8d, 0xad, 0x45, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x0b, 0x61, 0x3e, 0x90, 0x59, 0x08, 0x1d, 0x07, 0xef, 0x2b, 0xc5, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x0b, 0xa1, 0x64, 0x20, 0xb3, 0x10, 0xba, 0x0e, 0x9e, 0x8f, 0x8a, 0xdd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x16, 0xe2, 0x0f, 0x5e, 0xc3, 0x8a, 0xbd, 0xc1, 0x31, 0xdc, 0x60, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x0b, 0x21, 0x38, 0x78, 0x0d, 0x2b, 0xf6, 0xc1, 0x8b, 0x1d, 0xb1, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xb7, 0x10, 0x77, 0xf0, 0xec, 0x0f, 0xec, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0xb7, 0x10, 0x92, 0x81, 0xdc, 0x42, 0x58, 0x6e, 0xf8, 0x37, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x2d, 0x84, 0x6c, 0x20, 0xb7, 0x10, 0x06, 0x1b, 0xde, 0xd6, 0x19, 0x5c, 0x3e, 0x68, 0xd4, 0xe2, 0x72, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x0b, 0x61, 0x31, 0x90, 0x5b, 0x08, 0xc3, 0x0d, 0x6f, 0xeb, 0x6c, 0x70, 0x80, 0x97, 0x3c, 0x78, 0x0d, 0x84, 0xf0, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x5c, 0x88, 0x1f, 0xc8, 0x2e, 0x84, 0x74, 0x83, 0x75, 0xab, 0x4c, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x17, 0x42, 0x36, 0x90, 0x5c, 0x08, 0x65, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x0b, 0x21, 0x1c, 0x48, 0x2e, 0x84, 0xf5, 0x86, 0x37, 0xee, 0x36, 0xbc, 0x7c, 0x17, 0xe0, 0x2f, 0xf7, 0x56, 0xe7, 0x46, 0x46, 0x27, 0x97, 0x06, 0xd7, 0x62, 0x16, 0x96, 0xc6, 0xd6, 0x32, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0x85, 0x30, 0x1f, 0x48, 0x2e, 0x84, 0x8e, 0x83, 0x17, 0x22, 0x63, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0x85, 0x50, 0x32, 0x90, 0x5c, 0x08, 0x5d, 0x07, 0x0f, 0x60, 0xc6, 0x6e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x0b, 0xf1, 0x07, 0x8f, 0x79, 0xc6, 0xde, 0xe0, 0x18, 0x6e, 0xb0, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd9, 0x85, 0x10, 0x1c, 0x3c, 0xe6, 0x19, 0xfb, 0xe0, 0xc5, 0x8e, 0xd8, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x5e, 0x88, 0x3b, 0x78, 0xf6, 0x07, 0xf6, 0x41, 0x41, 0x91, 0x79, 0x38, 0xc5, 0x5a, 0x83, 0x77, 0x28, 0x5d, 0x6f, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xbc, 0x43, 0xe9, 0x7a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0x92, 0xb8, 0x81, 0xd3, 0x24, 0x7e, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x5d, 0x12, 0x92, 0x81, 0xbb, 0x24, 0x0c, 0x36, 0xfc, 0xb9, 0xb4, 0x41, 0xa2, 0x1a, 0xd9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x25, 0x21, 0x3d, 0x78, 0x48, 0x3b, 0xf6, 0x41, 0x99, 0xa5, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x26, 0x21, 0x19, 0x38, 0x4c, 0x42, 0xbc, 0xe1, 0xcf, 0xa5, 0x0d, 0x96, 0xd3, 0x40, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x61, 0x12, 0xa2, 0x83, 0x47, 0xcc, 0x63, 0x6f, 0xf8, 0x77, 0xfe, 0x60, 0x29, 0x0d, 0xf4, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x99, 0x84, 0x64, 0xe0, 0x32, 0x09, 0xab, 0x83, 0xc7, 0x88, 0x32, 0xb7, 0x02, 0x3e, 0x5c, 0x9d, 0x9c, 0xbc, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0xc1, 0x91, 0x21, 0xf4, 0xe0, 0xad, 0xfa, 0xd8, 0x0d, 0xc0, 0x9b, 0x5c, 0xd9, 0x1c, 0xdc, 0x9b, 0xdb, 0x5c, 0x19, 0x08, 0x5c, 0xd8, 0xd8, 0x5a, 0x19, 0x1d, 0x08, 0x5c, 0x58, 0x1e, 0xdb, 0x5b, 0x18, 0xd9, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x5b, 0xf5, 0xb1, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x66, 0x89, 0x1b, 0xb8, 0x5a, 0xe2, 0x37, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x2c, 0x21, 0x19, 0xb8, 0x59, 0x42, 0x7a, 0xf0, 0xc4, 0xd9, 0xe3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x68, 0x09, 0xc9, 0xc0, 0xd1, 0x12, 0xd2, 0x0d, 0xff, 0xce, 0x2f, 0xe0, 0xb7, 0x95, 0xbd, 0xdd, 0xd5, 0x6a, 0xf0, 0xd6, 0x91, 0xd9, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x8e, 0x0c, 0xa1, 0x07, 0x6f, 0x1d, 0x99, 0x6d, 0x00, 0xfe, 0x40, 0xe0, 0xc2, 0xd2, 0xe4, 0x40, 0xde, 0xcc, 0x40, 0x48, 0xe6, 0xd0, 0xd2, 0xe0, 0x40, 0xc2, 0xdc, 0xc8, 0x40, 0x48, 0xe0, 0xc2, 0xe8, 0xd0, 0x95, 0x00, 0x3c, 0x4f, 0x72, 0x9b, 0xa3, 0x2b, 0x0b, 0x23, 0x03, 0x79, 0x33, 0x03, 0x31, 0xab, 0x63, 0x63, 0xcb, 0x03, 0x89, 0xab, 0x0b, 0x63, 0x4b, 0x33, 0xcb, 0x4b, 0x73, 0x3b, 0x03, 0x09, 0x03, 0x99, 0x1b, 0x93, 0xcb, 0x03, 0x81, 0x0b, 0xa3, 0x43, 0x63, 0x01, 0x09, 0x6b, 0x2b, 0x9b, 0x03, 0x49, 0x73, 0x33, 0x2b, 0x93, 0x9b, 0x03, 0x91, 0x4b, 0x33, 0xa3, 0x03, 0x09, 0x73, 0x23, 0x97, 0x00, 0xda, 0xd8, 0xd2, 0xcc, 0xca, 0x40, 0xc4, 0xc2, 0xe6, 0xca, 0xc8, 0x40, 0xde, 0xdc, 0x40, 0xe8, 0xd0, 0xca, 0x40, 0xe6, 0xd0, 0xd2, 0xe0, 0x5c, 0x6d, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xbc, 0x75, 0x64, 0x76, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0x80, 0x90, 0x0e, 0x9c, 0x00, 0x61, 0xba, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x04, 0x08, 0xf1, 0xc0, 0x09, 0x10, 0x36, 0x1b, 0xfe, 0x5c, 0xda, 0xa0, 0xe9, 0xeb, 0xf1, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x01, 0x42, 0x7e, 0xf0, 0xde, 0x90, 0xec, 0x83, 0xb6, 0xad, 0xc7, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x13, 0x20, 0x8c, 0x06, 0x4e, 0x80, 0xb0, 0xdc, 0xf0, 0xe7, 0xd2, 0x06, 0x07, 0xd3, 0xcf, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x01, 0xc2, 0xea, 0xe0, 0xc9, 0x27, 0xd9, 0x07, 0x67, 0x24, 0xd4, 0x56, 0x83, 0x47, 0xe9, 0xe3, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x70, 0x64, 0x08, 0x3d, 0x78, 0x94, 0x3e, 0x5e, 0x03, 0xf0, 0x46, 0x17, 0x76, 0x76, 0x56, 0x46, 0x06, 0x42, 0x96, 0x16, 0x76, 0xe6, 0xf6, 0x36, 0x47, 0x97, 0x36, 0x06, 0x42, 0x27, 0x17, 0x36, 0x56, 0xb6, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0x28, 0x7d, 0xbc, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xf4, 0x21, 0x1e, 0xa8, 0xf4, 0x61, 0xbe, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xd2, 0x87, 0x7c, 0xa0, 0xd2, 0x87, 0xdd, 0x86, 0x3f, 0x97, 0x36, 0x58, 0x35, 0x10, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x95, 0x3e, 0x6c, 0x0e, 0x9e, 0x79, 0x93, 0x7d, 0x70, 0xde, 0x3c, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2a, 0x7d, 0x18, 0x0e, 0x54, 0xfa, 0xb0, 0xde, 0xf0, 0xe7, 0xd2, 0x06, 0x27, 0xca, 0xd4, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xf4, 0x61, 0x79, 0xf0, 0xc6, 0x9e, 0xec, 0x83, 0x06, 0xc5, 0x03, 0x9b, 0x35, 0x58, 0x3f, 0x5c, 0xbb, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x07, 0x78, 0xdc, 0xc0, 0xed, 0x1e, 0xbf, 0x41, 0xc9, 0xc2, 0x3e, 0xcb, 0x2c, 0xf0, 0x64, 0xe5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0xe5, 0xf1, 0x03, 0xa7, 0x7b, 0x48, 0x36, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0xe5, 0x21, 0x1b, 0x38, 0xcb, 0xc3, 0x70, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x59, 0x1e, 0xc2, 0x81, 0xb3, 0x3c, 0x4c, 0x36, 0xfc, 0xb9, 0x34, 0x78, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x67, 0x79, 0x88, 0x0f, 0x1e, 0xcc, 0x94, 0x7d, 0x50, 0x84, 0xc5, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x67, 0x79, 0xd8, 0x0c, 0x9c, 0xe5, 0x61, 0xb7, 0xe1, 0xcf, 0xa5, 0xc1, 0xc5, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xcb, 0xc3, 0xea, 0xe0, 0x6d, 0x52, 0xd9, 0x1b, 0xbe, 0xa8, 0xd9, 0x50, 0xc7, 0xc3, 0x85, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x2e, 0x8f, 0x3f, 0x78, 0xd9, 0x51, 0xf6, 0x06, 0x05, 0x69, 0xec, 0x1a, 0xbe, 0x6f, 0x1f, 0x7c, 0xdc, 0xa0, 0x84, 0x8e, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xf2, 0x90, 0x0e, 0xdc, 0xe5, 0x61, 0xb8, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x2e, 0x0f, 0xf1, 0xc0, 0x5d, 0x1e, 0x26, 0x87, 0x6f, 0xe7, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbb, 0x3c, 0x6c, 0x06, 0xee, 0xf2, 0xb0, 0x3b, 0x3c, 0x80, 0xdf, 0x41, 0x98, 0x8e, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x77, 0x79, 0x98, 0x0e, 0xdc, 0xe5, 0xa1, 0x67, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x5d, 0x1e, 0xb6, 0x03, 0x77, 0x79, 0x18, 0x1f, 0x14, 0x95, 0xe2, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x5d, 0x1e, 0xd6, 0x03, 0x77, 0x79, 0xa8, 0xd9, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x97, 0x87, 0xf9, 0xc0, 0x5d, 0x1e, 0x1a, 0x0e, 0x16, 0x70, 0xc2, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x77, 0x79, 0xa8, 0x18, 0xb8, 0xcb, 0x43, 0xc7, 0xe1, 0x69, 0x9d, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x2e, 0x0f, 0x25, 0x03, 0x77, 0x79, 0x68, 0x39, 0x28, 0x2a, 0xc5, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0xf3, 0xf8, 0x83, 0x97, 0x1d, 0x65, 0x6f, 0xf8, 0x45, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xcc, 0x43, 0x36, 0x70, 0x98, 0x87, 0xc1, 0x86, 0x3f, 0x97, 0x36, 0x28, 0x6a, 0x8b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x30, 0x0f, 0xf9, 0xc1, 0x6b, 0xf0, 0xb2, 0x0f, 0x3f, 0xd4, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x65, 0x1e, 0x7f, 0xf0, 0xb2, 0xa3, 0xec, 0x0d, 0x7f, 0xd1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x97, 0x79, 0xc8, 0x06, 0x2e, 0xf3, 0x50, 0xb0, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x32, 0x0f, 0xe1, 0xc0, 0x65, 0x1e, 0x56, 0x1b, 0xfe, 0x9d, 0xdf, 0x60, 0xf5, 0x70, 0xed, 0xc1, 0x53, 0x77, 0x8a, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xcb, 0x3c, 0xcc, 0x06, 0x2e, 0xf3, 0x30, 0x3d, 0x7c, 0x3b, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xe6, 0x61, 0x3b, 0x70, 0x99, 0x87, 0xfd, 0xe1, 0x01, 0xfc, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x34, 0x8f, 0x3f, 0x78, 0xd9, 0x51, 0xf6, 0x86, 0x07, 0x25, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd3, 0x3c, 0x64, 0x03, 0x87, 0x7a, 0x48, 0x37, 0x38, 0x39, 0xc8, 0x6d, 0xf8, 0x3c, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xcd, 0xc3, 0x64, 0xe0, 0x34, 0x0f, 0xa3, 0x83, 0xf0, 0x54, 0x5d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xcd, 0x43, 0x3a, 0x70, 0x9b, 0x87, 0xc5, 0xc1, 0x7b, 0x04, 0x7f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x36, 0x0f, 0xa3, 0x81, 0xdb, 0x3c, 0x2c, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xe6, 0x61, 0x35, 0x70, 0x9b, 0x87, 0xd9, 0x41, 0x41, 0x91, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xe6, 0x61, 0x37, 0x70, 0x9b, 0x87, 0xe1, 0xe1, 0xe9, 0x9d, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xae, 0xf3, 0x90, 0x0e, 0x5c, 0xe7, 0x61, 0x71, 0xf0, 0xf8, 0xc3, 0xdf, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xce, 0xc3, 0x68, 0xe0, 0x3c, 0x0f, 0x05, 0x1b, 0x14, 0x1d, 0xb4, 0x6b, 0xf8, 0xbe, 0x7d, 0xe0, 0xd3, 0xcc, 0x0d, 0x4a, 0xe8, 0xd8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x3a, 0x0f, 0xdb, 0x81, 0xeb, 0x3c, 0x14, 0x6c, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xce, 0xc3, 0x78, 0xe0, 0x3a, 0x0f, 0xeb, 0xc3, 0x0f, 0x35, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x75, 0x1e, 0xe6, 0x03, 0xd7, 0x79, 0xd8, 0x1f, 0x7e, 0xa8, 0xe9, 0x20, 0x4c, 0xc7, 0x36, 0xfc, 0xc3, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xe7, 0xa1, 0x65, 0xe0, 0x3a, 0x0f, 0xb5, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xae, 0xf3, 0x50, 0x33, 0x70, 0x9d, 0x87, 0xc6, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd7, 0x79, 0xe8, 0x19, 0xb8, 0xce, 0x43, 0xd5, 0x86, 0xb7, 0x75, 0x36, 0x18, 0x35, 0x03, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd7, 0x79, 0xe8, 0x1a, 0xb8, 0xce, 0x43, 0xd9, 0xe1, 0xe9, 0x9d, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x3a, 0x0f, 0x6d, 0x03, 0xd7, 0x79, 0x28, 0x3c, 0x28, 0xfd, 0x8c, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xae, 0xf3, 0x50, 0x39, 0x70, 0x9d, 0x87, 0xce, 0x83, 0x53, 0x73, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x9d, 0x87, 0xd2, 0x81, 0xeb, 0x3c, 0xb4, 0x1e, 0x04, 0x2c, 0x6b, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x9e, 0x87, 0xcd, 0xc1, 0xb3, 0x45, 0xb3, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0xe7, 0x61, 0x34, 0x70, 0x9e, 0x87, 0xf5, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf3, 0x3c, 0xac, 0x06, 0xce, 0xf3, 0x30, 0xdd, 0x60, 0x65, 0x2f, 0xec, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0xe7, 0x61, 0x78, 0xf0, 0x94, 0xe4, 0xec, 0x0d, 0x6f, 0xeb, 0x1c, 0x3c, 0x58, 0xa7, 0x71, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xcf, 0xc3, 0x76, 0xe0, 0x3c, 0x0f, 0xe3, 0x83, 0x82, 0x22, 0xb3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x3c, 0x0f, 0xf3, 0x81, 0xf3, 0x3c, 0xec, 0x0f, 0x4f, 0xef, 0xb4, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xa0, 0x87, 0x74, 0xe0, 0x40, 0x0f, 0x93, 0x83, 0xe7, 0x36, 0xfe, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x81, 0x1e, 0x46, 0x03, 0x17, 0x7a, 0x58, 0x6f, 0x50, 0x74, 0xd0, 0x0e, 0x3c, 0x5b, 0xb8, 0xe1, 0x1f, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x40, 0x0f, 0xfb, 0x81, 0x03, 0x3d, 0x34, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xd0, 0x43, 0xc1, 0xc0, 0x81, 0x1e, 0x4a, 0x0e, 0xce, 0x86, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x81, 0x1e, 0x5a, 0x06, 0x0e, 0xf4, 0x50, 0x74, 0xd0, 0x18, 0x9b, 0x70, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xa1, 0x87, 0xcd, 0xc1, 0x0b, 0xaf, 0xb3, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xe8, 0x61, 0x34, 0x70, 0xa1, 0x87, 0xe9, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x0b, 0x3d, 0xac, 0x06, 0x2e, 0xf4, 0xb0, 0xdb, 0xf0, 0xb6, 0xce, 0xc0, 0xb3, 0x85, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x17, 0x7a, 0x18, 0x0e, 0x5c, 0xe8, 0x61, 0x79, 0x50, 0x50, 0x64, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xe8, 0x61, 0x3b, 0x70, 0xa1, 0x87, 0xf1, 0xe1, 0xe9, 0x9d, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xf4, 0x90, 0x0e, 0xdc, 0xe8, 0x61, 0x72, 0xf0, 0xc6, 0xc9, 0xdf, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xd1, 0xc3, 0x68, 0xe0, 0x4e, 0x0f, 0x75, 0x1b, 0x94, 0xf6, 0x96, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x8d, 0x1e, 0x86, 0x03, 0x37, 0x7a, 0x68, 0xd9, 0xf0, 0xe7, 0xd2, 0x06, 0x6d, 0x97, 0x7d, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x8d, 0x1e, 0xc6, 0x07, 0x2f, 0xb9, 0xcf, 0x3e, 0x78, 0xf9, 0x60, 0xf6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xe9, 0x61, 0x73, 0xf0, 0x2c, 0xfa, 0xec, 0x0d, 0x5f, 0xe1, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x91, 0x1e, 0x76, 0x07, 0xcf, 0xa2, 0xcf, 0xde, 0xf0, 0x17, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xa4, 0x87, 0xed, 0xc0, 0x91, 0x1e, 0x0a, 0x37, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xe9, 0x61, 0x3c, 0x70, 0xa4, 0x87, 0x96, 0x83, 0x97, 0x0f, 0x66, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x47, 0x7a, 0xa8, 0x19, 0x38, 0xd2, 0x43, 0xd5, 0xe1, 0xdb, 0xf9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x48, 0x0f, 0x5d, 0x03, 0x47, 0x7a, 0xe8, 0x3b, 0x3c, 0x80, 0xdf, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xe9, 0x61, 0x73, 0xf0, 0x2c, 0xfa, 0xec, 0x0d, 0x0a, 0xd2, 0xd8, 0xc1, 0xc3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x4a, 0x0f, 0xd3, 0x81, 0x2b, 0x3d, 0xac, 0x0f, 0x1a, 0x63, 0x13, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x33, 0x3d, 0x6c, 0x0e, 0x9e, 0x45, 0x9f, 0xbd, 0x41, 0x09, 0x8f, 0xb9, 0xe1, 0xc1, 0x9d, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x4c, 0x0f, 0xd3, 0x81, 0x33, 0x3d, 0x14, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xd3, 0xc3, 0x76, 0xe0, 0x4c, 0x0f, 0x2d, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0xf4, 0x30, 0x1e, 0x38, 0xd3, 0x43, 0xc1, 0x41, 0x61, 0xb1, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0xe9, 0xa1, 0x61, 0xe0, 0x4c, 0x0f, 0x25, 0x07, 0x0d, 0xa3, 0x9f, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0xe9, 0xa1, 0x66, 0xe0, 0x4c, 0x0f, 0x3d, 0x87, 0xa7, 0x77, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x3b, 0x3d, 0x6c, 0x0e, 0x9e, 0x45, 0x9f, 0xbd, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0x41, 0x63, 0x6b, 0x9f, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xa7, 0x87, 0xe5, 0xc0, 0x9d, 0x1e, 0x4a, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xe9, 0x61, 0x3a, 0x70, 0xa7, 0x87, 0xfd, 0x86, 0x4b, 0x6a, 0x8d, 0x43, 0x07, 0x87, 0x90, 0x81, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x3b, 0x3d, 0x14, 0x0c, 0xdc, 0xe9, 0xa1, 0xe3, 0xa0, 0x61, 0xf4, 0xd3, 0xd6, 0xf0, 0x0f, 0xcf, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xe9, 0xa1, 0x68, 0xe0, 0x4e, 0x0f, 0x6d, 0x1b, 0x2e, 0xa9, 0x35, 0x9e, 0x1f, 0x1c, 0x42, 0x06, 0xaa, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xd4, 0xe3, 0x0f, 0x5e, 0x76, 0x94, 0xbd, 0x41, 0xc9, 0xc2, 0x3e, 0xcb, 0xac, 0x41, 0xfb, 0x1f, 0x9d, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xab, 0x87, 0x64, 0xe0, 0x72, 0x0f, 0xd9, 0x86, 0xbf, 0x68, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5b, 0x3d, 0xa4, 0x03, 0xb7, 0x7a, 0x68, 0xda, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5b, 0x3d, 0xc4, 0x03, 0xb7, 0x7a, 0x98, 0x1c, 0x94, 0x4d, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xad, 0x1e, 0x36, 0x03, 0xb7, 0x7a, 0x28, 0xda, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xab, 0x87, 0xd1, 0xc0, 0xad, 0x1e, 0xd6, 0x07, 0x4f, 0xd5, 0x29, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xf5, 0x30, 0x1f, 0xb8, 0xd5, 0x43, 0xc5, 0xe1, 0xdb, 0xf9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x56, 0x0f, 0x1d, 0x03, 0xb7, 0x7a, 0xe8, 0x39, 0x3c, 0x80, 0x5f, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xac, 0x87, 0xe4, 0xe0, 0x79, 0x38, 0xda, 0x1b, 0x14, 0x1d, 0xb4, 0x1b, 0xa4, 0xc8, 0xf6, 0x6c, 0xf8, 0x87, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xd6, 0xc3, 0x6a, 0xe0, 0x58, 0x0f, 0x35, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0xf5, 0x30, 0x1b, 0x38, 0xd6, 0x43, 0xc3, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x63, 0x3d, 0xec, 0x06, 0x8e, 0xf5, 0x30, 0x3d, 0x78, 0x7f, 0x6d, 0xf6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xac, 0x87, 0xed, 0xc0, 0xb1, 0x1e, 0xc6, 0x87, 0xa7, 0x77, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x63, 0x3d, 0xac, 0x07, 0x8e, 0xf5, 0x50, 0x70, 0x50, 0xfa, 0x19, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xeb, 0xa1, 0x62, 0xe0, 0x58, 0x0f, 0x1d, 0x87, 0xc7, 0x64, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x63, 0x3d, 0x94, 0x0c, 0x1c, 0xeb, 0xa1, 0xe5, 0xf0, 0x98, 0x4c, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xad, 0x87, 0xe4, 0xe0, 0x79, 0x38, 0xda, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xae, 0xf5, 0x90, 0x0e, 0x5c, 0xeb, 0x61, 0xb7, 0xe1, 0xdf, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x5a, 0x0f, 0xf9, 0xc0, 0xb5, 0x1e, 0x06, 0x87, 0x07, 0x6f, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x5a, 0x0f, 0x8b, 0x81, 0x6b, 0x3d, 0xcc, 0x36, 0x5c, 0x52, 0x6b, 0x1c, 0x3a, 0x48, 0x2a, 0xe0, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xd6, 0xc3, 0x72, 0xe0, 0x5a, 0x0f, 0xd3, 0x83, 0x82, 0x22, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0xf5, 0x90, 0x1c, 0x3c, 0x0f, 0x47, 0x7b, 0x83, 0x93, 0x83, 0xdc, 0x06, 0x6f, 0x70, 0x91, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0xf5, 0x30, 0x1a, 0x38, 0xd7, 0xc3, 0xec, 0x20, 0x3c, 0x55, 0x57, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xf5, 0x90, 0x0d, 0xdc, 0xeb, 0x21, 0x3d, 0x08, 0xe9, 0xd4, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xd7, 0x43, 0x3e, 0x70, 0xb1, 0x87, 0xe5, 0x06, 0x05, 0x1f, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xaf, 0x87, 0xcd, 0xc0, 0xbd, 0x1e, 0xd6, 0x1b, 0xfe, 0xcd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xf5, 0xb0, 0x1a, 0xb8, 0xd7, 0xc3, 0xec, 0xe0, 0xbc, 0x40, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf7, 0x7a, 0xd8, 0x0d, 0xdc, 0xeb, 0x61, 0x7c, 0xf0, 0x84, 0x35, 0xed, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xd8, 0x43, 0x7e, 0xf0, 0xba, 0x3c, 0xed, 0x0d, 0x8a, 0x0e, 0xda, 0x35, 0x7c, 0xdf, 0x3e, 0xf0, 0x69, 0xe6, 0x06, 0x25, 0x74, 0xec, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xb0, 0x87, 0xd9, 0xc0, 0xc1, 0x1e, 0xb6, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0xf6, 0xb0, 0x1b, 0x38, 0xd8, 0xc3, 0xf0, 0xf0, 0x43, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xb0, 0x87, 0xe5, 0xc0, 0xc1, 0x1e, 0xa6, 0x87, 0x1f, 0x6a, 0x3a, 0x08, 0xd3, 0xb1, 0x0d, 0xff, 0xf0, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x07, 0x7b, 0x28, 0x18, 0x38, 0xd8, 0x43, 0xe3, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x83, 0x3d, 0x34, 0x0c, 0x1c, 0xec, 0xa1, 0x6c, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xc1, 0x1e, 0x2a, 0x06, 0x0e, 0xf6, 0xd0, 0x72, 0xf0, 0xfe, 0xda, 0xec, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x60, 0x0f, 0x35, 0x03, 0x07, 0x7b, 0xe8, 0x39, 0x3c, 0xbd, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xec, 0xa1, 0x68, 0xe0, 0x60, 0x0f, 0x5d, 0x07, 0xa5, 0x9f, 0x71, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xc1, 0x1e, 0xda, 0x06, 0x0e, 0xf6, 0x50, 0x77, 0x70, 0x6a, 0x6e, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0xf6, 0xd0, 0x37, 0x70, 0xb0, 0x87, 0xc2, 0x83, 0x80, 0x65, 0x6d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2e, 0xf6, 0x90, 0x1f, 0xbc, 0x2e, 0x4f, 0x7b, 0x83, 0x63, 0xb8, 0xc1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xec, 0x61, 0x70, 0xf0, 0xba, 0x3c, 0xed, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x17, 0x7b, 0x58, 0x0c, 0x5c, 0xec, 0x61, 0xb6, 0xc1, 0xca, 0x5e, 0xd8, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xd8, 0xc3, 0xe8, 0xe0, 0x6d, 0xaa, 0xda, 0x07, 0x0f, 0x64, 0xce, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2e, 0xf6, 0xb0, 0x1b, 0xb8, 0xd8, 0xc3, 0xf0, 0xf0, 0xf4, 0x4e, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x37, 0x7b, 0xc8, 0x06, 0x6e, 0xf6, 0x90, 0x1e, 0x04, 0x8e, 0xea, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xec, 0x21, 0x1f, 0xb8, 0xda, 0xc3, 0x72, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xd9, 0xc3, 0x66, 0xe0, 0x66, 0x0f, 0x05, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xf6, 0x30, 0x1a, 0xb8, 0xd9, 0xc3, 0xee, 0x20, 0x0d, 0x5b, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xd9, 0xc3, 0x70, 0xe0, 0x66, 0x0f, 0xeb, 0x83, 0x27, 0xac, 0x69, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x37, 0x7b, 0x98, 0x0f, 0xdc, 0xec, 0x61, 0x7f, 0x50, 0x54, 0x8a, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x47, 0x7b, 0xc8, 0x0f, 0x1e, 0x57, 0xab, 0xbd, 0x41, 0xd1, 0x41, 0xbb, 0x86, 0xef, 0xdb, 0x07, 0x3e, 0x6d, 0xde, 0xa0, 0x84, 0x8e, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0xf6, 0x30, 0x1b, 0x38, 0xda, 0xc3, 0x76, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xd1, 0x1e, 0x76, 0x03, 0x47, 0x7b, 0x18, 0x1e, 0x7e, 0xa8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0xf6, 0xb0, 0x1c, 0x38, 0xda, 0xc3, 0xf4, 0xf0, 0x43, 0x4d, 0x07, 0x61, 0x3a, 0xb6, 0xe1, 0x1f, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x68, 0x0f, 0x05, 0x03, 0x47, 0x7b, 0x68, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xb4, 0x87, 0x86, 0x81, 0xa3, 0x3d, 0x94, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xda, 0x43, 0xc5, 0xc0, 0xd1, 0x1e, 0x5a, 0x0e, 0xde, 0x5f, 0x9b, 0xbd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xed, 0xa1, 0x66, 0xe0, 0x68, 0x0f, 0x3d, 0x87, 0xa7, 0x77, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa3, 0x3d, 0x14, 0x0d, 0x1c, 0xed, 0xa1, 0xeb, 0xa0, 0xf4, 0x33, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xda, 0x43, 0xdb, 0xc0, 0xd1, 0x1e, 0xaa, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xed, 0xa1, 0x6e, 0xe0, 0x68, 0x0f, 0x8d, 0x87, 0x4f, 0x01, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa3, 0x3d, 0x54, 0x0e, 0x1c, 0xed, 0xa1, 0xf7, 0xe0, 0x09, 0x6b, 0xda, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xd1, 0x1e, 0x8a, 0x07, 0x8e, 0xf6, 0xd0, 0x7c, 0x50, 0x54, 0x8a, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xed, 0xa1, 0x7b, 0xe0, 0x68, 0x0f, 0xe5, 0x07, 0x01, 0xcb, 0xda, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xed, 0x21, 0x3f, 0x78, 0x5c, 0xad, 0xf6, 0x06, 0xc7, 0x70, 0x83, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xda, 0xc3, 0xe0, 0xe0, 0x71, 0xb5, 0xda, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xae, 0xf6, 0xb0, 0x18, 0xb8, 0xda, 0xc3, 0x6c, 0x83, 0xa5, 0xad, 0xb0, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xb5, 0x87, 0xd1, 0xc1, 0x23, 0xe3, 0xb5, 0x37, 0xbc, 0xad, 0x33, 0xf0, 0x69, 0x73, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xd5, 0x1e, 0x76, 0x03, 0x57, 0x7b, 0x18, 0x1e, 0x9e, 0xde, 0x69, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x6e, 0x0f, 0xd9, 0xc0, 0xdd, 0x1e, 0xd2, 0x83, 0x20, 0x36, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbb, 0x3d, 0xe4, 0x03, 0x87, 0x7b, 0x98, 0x6d, 0x50, 0x74, 0xd0, 0x0e, 0x3c, 0x5b, 0xb8, 0xe1, 0x1f, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x6e, 0x0f, 0xd3, 0x81, 0xbb, 0x3d, 0x74, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xdb, 0xc3, 0x76, 0xe0, 0x6e, 0x0f, 0x35, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xf6, 0x30, 0x1e, 0xb8, 0xdb, 0xc3, 0xfe, 0xe0, 0xfd, 0xb5, 0xd9, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xdd, 0x1e, 0x0a, 0x06, 0xee, 0xf6, 0xd0, 0x70, 0x78, 0x7a, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xdb, 0x43, 0xc5, 0xc0, 0xdd, 0x1e, 0x5a, 0x0e, 0x4a, 0x3f, 0xe3, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbb, 0x3d, 0xf4, 0x0c, 0xdc, 0xed, 0xa1, 0x72, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xdd, 0x1e, 0x8a, 0x06, 0xee, 0xf6, 0xd0, 0x75, 0x78, 0xcd, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xdb, 0x43, 0xd9, 0xc0, 0xdd, 0x1e, 0x1a, 0x0f, 0x9e, 0xb0, 0xa6, 0x5d, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xb8, 0x87, 0xfc, 0xe0, 0xe5, 0xfc, 0xda, 0x1b, 0x1c, 0xc3, 0x0d, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x70, 0x0f, 0x83, 0x83, 0x97, 0xf3, 0x6b, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xdc, 0xc3, 0x62, 0xe0, 0x70, 0x0f, 0x9b, 0x83, 0xc7, 0xa5, 0x67, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x87, 0x7b, 0x18, 0x0d, 0x1c, 0xee, 0x61, 0x75, 0x78, 0x7a, 0xa7, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x9b, 0x05, 0xbe, 0xcc, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x13, 0x3c, 0x7e, 0xe0, 0x26, 0x0f, 0xc9, 0x86, 0x5f, 0x94, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x13, 0x3c, 0x64, 0x03, 0x27, 0x78, 0x18, 0x6e, 0xf8, 0x73, 0x69, 0x83, 0xb6, 0xcb, 0x3e, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x04, 0x0f, 0xf9, 0xc1, 0xcb, 0x4a, 0xb6, 0x0f, 0x5e, 0x3e, 0x98, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x37, 0x78, 0xfc, 0xc1, 0x73, 0x45, 0xb6, 0x37, 0xfc, 0x45, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xe0, 0x21, 0x1b, 0xb8, 0xc1, 0x43, 0x7e, 0xf0, 0xb0, 0x98, 0xd1, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xc2, 0xe3, 0x0f, 0x9e, 0x2b, 0xb2, 0xbd, 0x41, 0x61, 0xa8, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xe1, 0x21, 0x1b, 0x38, 0xc2, 0xc3, 0x62, 0xc3, 0xe7, 0x2e, 0x1b, 0xbe, 0xa3, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x23, 0x3c, 0x0c, 0x0e, 0x1e, 0x39, 0xb3, 0x7d, 0x50, 0x54, 0x8a, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x15, 0x1e, 0x7f, 0xf0, 0x5c, 0x91, 0xed, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x1a, 0x5b, 0xfb, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xae, 0xf0, 0x30, 0x18, 0xb8, 0xc2, 0xc3, 0xe2, 0xa0, 0xa0, 0xc8, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x33, 0x3c, 0xfe, 0xe0, 0xb9, 0x22, 0xdb, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0xf0, 0x90, 0x0d, 0x9c, 0xe1, 0x61, 0xbe, 0x41, 0x31, 0x89, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0xe1, 0x21, 0x1e, 0x38, 0xc3, 0xc3, 0x72, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x19, 0x1e, 0xf2, 0x81, 0x33, 0x3c, 0xcc, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0xe1, 0x61, 0x30, 0x70, 0x86, 0x87, 0xcd, 0xc1, 0x79, 0xbc, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xc3, 0xc3, 0x68, 0xe0, 0x0c, 0x0f, 0xab, 0x83, 0x30, 0x1d, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xc3, 0xc3, 0x6e, 0xe0, 0x0c, 0x0f, 0xc3, 0x83, 0x10, 0x7c, 0xe8, 0xa0, 0xb1, 0xb5, 0xcf, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x0e, 0x0f, 0xc9, 0xc0, 0x1d, 0x1e, 0xe6, 0x1b, 0x1e, 0x94, 0x5c, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x1d, 0x1e, 0xa2, 0x81, 0x3b, 0x3c, 0xe4, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xf0, 0x90, 0x0d, 0xdc, 0xe1, 0x21, 0x3c, 0x38, 0x35, 0xb7, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x77, 0x78, 0x48, 0x07, 0xee, 0xf0, 0x10, 0x1f, 0x9c, 0x2e, 0x32, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xf0, 0x30, 0x18, 0xb8, 0xc3, 0xc3, 0x6a, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x1d, 0x1e, 0x16, 0x03, 0x77, 0x78, 0x98, 0x1c, 0x04, 0x2c, 0xeb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x87, 0x87, 0xcd, 0xc0, 0x1d, 0x1e, 0x46, 0x07, 0xa7, 0x23, 0x91, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x3b, 0x3c, 0xcc, 0x06, 0xee, 0xf0, 0xb0, 0x3b, 0x28, 0x28, 0x32, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x3b, 0x3c, 0x2c, 0x0f, 0xde, 0x2f, 0xb5, 0xbd, 0xe1, 0x6d, 0x9d, 0xc1, 0xd3, 0x83, 0xc6, 0xd6, 0x3e, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x10, 0x8f, 0x3f, 0x78, 0xae, 0xc8, 0xf6, 0x86, 0xaf, 0x70, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x10, 0x0f, 0xd9, 0xc1, 0x73, 0x45, 0xb6, 0x37, 0xfc, 0x45, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xe2, 0x21, 0x1f, 0x38, 0xc4, 0xc3, 0x7e, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0xf1, 0x30, 0x18, 0x38, 0xc4, 0xc3, 0xe8, 0x20, 0xa4, 0x4c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x43, 0x3c, 0xac, 0x06, 0x0e, 0xf1, 0x30, 0xdf, 0xf0, 0xef, 0xfc, 0x06, 0x8f, 0xf3, 0x1a, 0x3d, 0x78, 0x73, 0xcc, 0x68, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x89, 0xc7, 0x1f, 0x3c, 0x57, 0x64, 0x7b, 0x83, 0x05, 0x98, 0x4d, 0x6b, 0xf8, 0xbe, 0x7d, 0x83, 0xf6, 0x3f, 0x3a, 0x37, 0x28, 0xa1, 0x63, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4b, 0x3c, 0xe4, 0x03, 0x97, 0x78, 0xd8, 0x6f, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x25, 0x1e, 0x06, 0x03, 0x97, 0x78, 0x18, 0x1d, 0x84, 0x94, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x89, 0x87, 0xd5, 0xc0, 0x25, 0x1e, 0xe6, 0x07, 0x8f, 0xc0, 0xdb, 0xee, 0x20, 0x4c, 0xc7, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x53, 0x3c, 0x24, 0x03, 0xa7, 0x78, 0xa8, 0xdb, 0xa0, 0x84, 0xc7, 0x5c, 0x70, 0xfa, 0xa0, 0xb1, 0xb5, 0xcf, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x14, 0x0f, 0x93, 0x81, 0x53, 0x3c, 0xac, 0x0e, 0x1a, 0x63, 0x13, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x53, 0x3c, 0xcc, 0x06, 0x4e, 0xf1, 0xd0, 0xb6, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x14, 0x0f, 0xbb, 0x81, 0x53, 0x3c, 0x6c, 0x0f, 0x4e, 0x04, 0x6d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x29, 0x1e, 0xc6, 0x03, 0xa7, 0x78, 0xd8, 0x1f, 0x34, 0xc6, 0x26, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0xe2, 0xa1, 0x60, 0xe0, 0x14, 0x0f, 0x65, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x34, 0xb6, 0xf6, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa7, 0x78, 0xa8, 0x19, 0x38, 0xc5, 0x43, 0xd7, 0x86, 0xb7, 0x75, 0x0e, 0x9e, 0x97, 0xb8, 0x5d, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x8b, 0xc7, 0x1f, 0x3c, 0x57, 0x64, 0x7b, 0x83, 0x20, 0x3d, 0xdd, 0xe0, 0x41, 0x6a, 0xdb, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc7, 0x78, 0x48, 0x06, 0x8e, 0xf1, 0x10, 0x1d, 0x7e, 0xa8, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x63, 0x3c, 0x4c, 0x06, 0xce, 0xf1, 0xd0, 0xb6, 0x41, 0x41, 0x1a, 0x3b, 0x38, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xe3, 0x61, 0x39, 0x70, 0x8c, 0x87, 0x9a, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc7, 0x78, 0x98, 0x0e, 0x1c, 0xe3, 0x61, 0x7d, 0x50, 0x14, 0xff, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc7, 0x78, 0x98, 0x0f, 0x1c, 0xe3, 0x61, 0x7f, 0x50, 0x54, 0x8a, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc7, 0x78, 0x28, 0x18, 0x38, 0xc6, 0x43, 0xcb, 0xc1, 0xab, 0xd3, 0xb6, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x6b, 0x3c, 0x2c, 0x0e, 0x9e, 0x3e, 0xba, 0xbd, 0x41, 0xc1, 0x87, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xe3, 0x61, 0x35, 0x70, 0x8d, 0x87, 0x82, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd7, 0x78, 0x98, 0x0d, 0x5c, 0xe3, 0x61, 0x79, 0xf8, 0xe2, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xc6, 0xc3, 0x74, 0xe0, 0x1a, 0x0f, 0xdb, 0x83, 0x94, 0xb7, 0xab, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x1a, 0x0f, 0xe3, 0x81, 0x6b, 0x3c, 0xec, 0x0f, 0x92, 0xf6, 0x2d, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x73, 0x3c, 0x2c, 0x0e, 0x9e, 0x3e, 0xba, 0xbd, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x1c, 0x0f, 0x93, 0x81, 0x73, 0x3c, 0x4c, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0xe3, 0x61, 0x33, 0x70, 0x8e, 0x87, 0xd1, 0xe1, 0x31, 0x99, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x1c, 0x0f, 0xab, 0x81, 0x73, 0x3c, 0x2c, 0x37, 0x7c, 0x1c, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe7, 0x78, 0xd8, 0x0d, 0x9c, 0xe3, 0x61, 0x78, 0x90, 0xf2, 0x76, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x8e, 0x87, 0xed, 0xc0, 0x39, 0x1e, 0x0a, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0xe3, 0x61, 0x3c, 0x70, 0x8e, 0x87, 0xf5, 0xe1, 0x31, 0x99, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x1c, 0x0f, 0xf3, 0x81, 0x73, 0x3c, 0xec, 0x0f, 0x02, 0x96, 0xb5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x1c, 0x0f, 0x0d, 0x03, 0xe7, 0x78, 0xa8, 0xda, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x8e, 0x87, 0x8a, 0x81, 0x73, 0x3c, 0x74, 0x1c, 0xa4, 0xbc, 0x5d, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe7, 0x78, 0x28, 0x19, 0x38, 0xc7, 0x43, 0xd3, 0xc1, 0xab, 0xd3, 0xb6, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0xf1, 0xd0, 0x35, 0x70, 0x8e, 0x87, 0xb2, 0x83, 0x82, 0x22, 0xb3, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x7b, 0x3c, 0x24, 0x03, 0xf7, 0x78, 0x18, 0x6c, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xc7, 0x43, 0x34, 0x70, 0x8f, 0x87, 0xf4, 0xe0, 0x3c, 0xde, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xe3, 0x21, 0x1e, 0xb8, 0xc7, 0x43, 0x7e, 0x10, 0xa6, 0x63, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x3d, 0x1e, 0x26, 0x03, 0xf7, 0x78, 0xe8, 0xdc, 0xf0, 0xa0, 0xe4, 0x1a, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xf1, 0xb0, 0x19, 0xb8, 0xc7, 0xc3, 0x70, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x3d, 0x1e, 0x46, 0x03, 0xf7, 0x78, 0x58, 0x1d, 0x1e, 0x93, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xf1, 0x30, 0x1b, 0xb8, 0xc7, 0xc3, 0xee, 0xe0, 0xbc, 0x40, 0xd3, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x8f, 0x87, 0xe5, 0xc0, 0x3d, 0x1e, 0xe6, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xf1, 0x30, 0x1d, 0xb8, 0xc7, 0xc3, 0xf6, 0xf0, 0x98, 0xcc, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x8f, 0x87, 0xf1, 0xc0, 0x3d, 0x1e, 0xd6, 0x87, 0x07, 0x6f, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xf1, 0xb0, 0x1f, 0xb8, 0xc7, 0x43, 0xc9, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x7b, 0x3c, 0x14, 0x0c, 0xdc, 0xe3, 0xa1, 0xe1, 0xe0, 0xd4, 0xdc, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xe3, 0xa1, 0x62, 0xe0, 0x1e, 0x0f, 0x1d, 0x07, 0xa7, 0x8b, 0x8c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x7b, 0x3c, 0xb4, 0x0c, 0xdc, 0xe3, 0xa1, 0x6a, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x3d, 0x1e, 0x6a, 0x06, 0xee, 0xf1, 0xd0, 0x73, 0x10, 0xb0, 0xac, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x3d, 0x1e, 0x8a, 0x06, 0xee, 0xf1, 0xd0, 0x74, 0x70, 0x3a, 0x12, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xc7, 0x43, 0xd7, 0xc0, 0x3d, 0x1e, 0xca, 0x0e, 0x0a, 0x8a, 0xcc, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x1e, 0x0f, 0x75, 0x07, 0x2f, 0x47, 0xdf, 0x3e, 0x78, 0x75, 0xda, 0xf6, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x41, 0x1e, 0x92, 0x81, 0x83, 0x3c, 0x0c, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xe4, 0x21, 0x1a, 0x38, 0xc8, 0x43, 0x7a, 0x70, 0x8c, 0x70, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0xf2, 0x10, 0x0f, 0x1c, 0xe4, 0x21, 0x3f, 0x08, 0xd3, 0xb1, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x20, 0x0f, 0x93, 0x81, 0x93, 0x3c, 0x1c, 0xd8, 0xa0, 0x20, 0x8d, 0x1d, 0x9c, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0xf2, 0xb0, 0x1c, 0x38, 0xc8, 0x43, 0xd1, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x83, 0x3c, 0x4c, 0x07, 0x0e, 0xf2, 0xb0, 0x3e, 0x28, 0x8a, 0x7f, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x83, 0x3c, 0xcc, 0x07, 0x0e, 0xf2, 0xb0, 0x3f, 0x28, 0x2a, 0xc5, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x83, 0x3c, 0x14, 0x0c, 0x1c, 0xe4, 0xa1, 0x67, 0xc3, 0xdb, 0x3a, 0x83, 0xc3, 0x07, 0x0f, 0x52, 0xdb, 0x6e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2e, 0xf2, 0xb0, 0x38, 0x78, 0xb0, 0x06, 0xf7, 0x06, 0x05, 0x1f, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x91, 0x87, 0xd5, 0xc0, 0x45, 0x1e, 0x0a, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xe4, 0x61, 0x36, 0x70, 0x91, 0x87, 0xe5, 0xe1, 0x8b, 0xb3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x22, 0x0f, 0xd3, 0x81, 0x8b, 0x3c, 0x6c, 0x0f, 0x52, 0xde, 0xae, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x8b, 0x3c, 0x8c, 0x07, 0x2e, 0xf2, 0xb0, 0xdf, 0xf0, 0x23, 0xcc, 0x86, 0x9a, 0x1f, 0x44, 0xbf, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xc9, 0xc3, 0xe2, 0xe0, 0xc1, 0x1a, 0xdc, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xf2, 0x30, 0x19, 0x38, 0xc9, 0xc3, 0x7e, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x49, 0x1e, 0x36, 0x03, 0x27, 0x79, 0x18, 0x1d, 0x1e, 0x93, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xf2, 0xb0, 0x1a, 0x38, 0xc9, 0xc3, 0x7c, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x49, 0x1e, 0x66, 0x03, 0x27, 0x79, 0x58, 0x1e, 0xfe, 0x04, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xf2, 0x30, 0x1d, 0x38, 0xc9, 0xc3, 0xf6, 0xa0, 0xa8, 0x14, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xf2, 0x30, 0x1e, 0x38, 0xc9, 0xc3, 0xfa, 0x20, 0xe5, 0xed, 0xaa, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x93, 0x3c, 0x14, 0x0c, 0x9c, 0xe4, 0xa1, 0x65, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x49, 0x1e, 0x1a, 0x06, 0x4e, 0xf2, 0x50, 0x71, 0x78, 0x4c, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xc9, 0x43, 0xc7, 0xc0, 0x49, 0x1e, 0x4a, 0x0e, 0x8f, 0xc9, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0xe4, 0xa1, 0x66, 0xe0, 0x24, 0x0f, 0x8d, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xf2, 0xd0, 0x33, 0x70, 0x92, 0x87, 0xa2, 0x83, 0x94, 0xb7, 0xab, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x24, 0x0f, 0x4d, 0x03, 0x27, 0x79, 0x28, 0x3c, 0x78, 0xa6, 0x09, 0x77, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x49, 0x1e, 0x2a, 0x07, 0x4e, 0xf2, 0xd0, 0xbe, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x24, 0x0f, 0x9d, 0x03, 0x27, 0x79, 0x28, 0x3d, 0x08, 0x58, 0xd6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x24, 0x0f, 0xad, 0x03, 0x27, 0x79, 0x28, 0xdf, 0xf0, 0xb6, 0xce, 0xe0, 0xf1, 0xc1, 0x83, 0xd4, 0xb6, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xf2, 0x50, 0x3f, 0x70, 0x92, 0x87, 0xfe, 0x83, 0x82, 0x22, 0xb3, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x0b, 0xf8, 0x79, 0x6f, 0x77, 0xec, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0x47, 0x86, 0xd0, 0x83, 0xd7, 0x9a, 0x71, 0x37, 0x00, 0x3e, 0xcc, 0x95, 0xc9, 0xa5, 0x85, 0xb1, 0xa5, 0xe9, 0x95, 0x91, 0x81, 0xc8, 0x95, 0xcd, 0xc1, 0xbd, 0xb9, 0xcd, 0x95, 0x81, 0xc0, 0x85, 0x8d, 0xad, 0x95, 0xd1, 0x81, 0xc0, 0x85, 0xe5, 0xb1, 0xbd, 0x85, 0x91, 0x6d, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xbc, 0xd6, 0x8c, 0x7b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0x84, 0x30, 0x1b, 0xb8, 0x13, 0xc2, 0x7a, 0xc3, 0x17, 0x35, 0x1b, 0xea, 0x78, 0xc0, 0x57, 0x87, 0x97, 0xf7, 0x76, 0xc7, 0x1e, 0x4e, 0xb1, 0x35, 0x78, 0xa3, 0xe5, 0xf1, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x1b, 0x2d, 0x8f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xbe, 0x8c, 0x1b, 0xb8, 0x37, 0xe3, 0x37, 0x38, 0x40, 0x88, 0x6e, 0xf0, 0x46, 0xcb, 0xe3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x30, 0xe3, 0x0e, 0x1e, 0x75, 0xc7, 0xbd, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xc0, 0x0c, 0xc9, 0xc0, 0x81, 0x19, 0x66, 0x1b, 0xfe, 0x9d, 0x5f, 0x00, 0xcf, 0x30, 0xbd, 0xb4, 0xb6, 0x3a, 0x3a, 0xb4, 0x96, 0x39, 0xba, 0x30, 0xba, 0xb2, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x0b, 0x33, 0x24, 0x03, 0x17, 0x66, 0x98, 0x6f, 0xf8, 0x73, 0x69, 0x83, 0x97, 0xfd, 0x0d, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x85, 0x19, 0xe2, 0x83, 0x97, 0x07, 0x72, 0x6f, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x85, 0x19, 0xf2, 0x81, 0x0b, 0x33, 0x6c, 0x0e, 0xca, 0x26, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xc2, 0x0c, 0xa3, 0x81, 0x0b, 0x33, 0xac, 0x0f, 0x9e, 0xaa, 0x53, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x62, 0x86, 0x64, 0xe0, 0xc4, 0x0c, 0xe9, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0xb8, 0xb7, 0x79, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xcc, 0x10, 0x1d, 0x3c, 0xaf, 0x91, 0xfb, 0xe0, 0xf9, 0x88, 0xc3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x8d, 0x19, 0x92, 0x81, 0x1b, 0x33, 0xf4, 0x6f, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0xfb, 0x58, 0x98, 0x1b, 0x88, 0x58, 0x19, 0xc8, 0x0a, 0x5c, 0x59, 0xd9, 0x5a, 0x19, 0x19, 0x48, 0x9a, 0x1b, 0x08, 0x1d, 0x5a, 0x19, 0x88, 0x5b, 0x58, 0x5b, 0xd9, 0x1c, 0x5c, 0xd8, 0x58, 0xd9, 0x86, 0x3f, 0x97, 0x36, 0x78, 0xca, 0xf6, 0xf0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x98, 0x61, 0x30, 0x70, 0x63, 0x86, 0xe9, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x98, 0x61, 0x31, 0x70, 0x63, 0x86, 0xd1, 0x41, 0x89, 0xf8, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x98, 0x61, 0x35, 0x70, 0x63, 0x86, 0xe5, 0x86, 0x7f, 0xe7, 0x17, 0xf0, 0xe7, 0xd2, 0xc8, 0xca, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x32, 0x43, 0x32, 0x70, 0x65, 0x86, 0x13, 0x1b, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xe0, 0x11, 0x16, 0x16, 0x88, 0x5c, 0x19, 0x59, 0x99, 0x59, 0x9a, 0x5b, 0x19, 0xc8, 0xdb, 0xdc, 0x5c, 0x5d, 0x98, 0x5c, 0x1e, 0x48, 0x9a, 0x1b, 0x08, 0x5d, 0x99, 0x5c, 0xdb, 0x1c, 0xc8, 0x9b, 0x19, 0x88, 0xd8, 0x9b, 0x5b, 0x99, 0xd7, 0x5c, 0x1a, 0x59, 0xd9, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x31, 0xe3, 0xf0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x99, 0x21, 0x1a, 0xb8, 0x32, 0xc3, 0xe2, 0xe0, 0x15, 0x90, 0xc3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x99, 0x19, 0x92, 0x81, 0x33, 0x33, 0x94, 0x6c, 0xf8, 0x73, 0x69, 0x80, 0xc7, 0x8c, 0xed, 0xed, 0x6e, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x33, 0x33, 0xe4, 0x07, 0x0f, 0x8a, 0xe5, 0xde, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x33, 0x33, 0x0c, 0x06, 0xce, 0xcc, 0xb0, 0x39, 0x28, 0x11, 0xeb, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x33, 0x33, 0x8c, 0x06, 0xce, 0xcc, 0x30, 0x3c, 0x78, 0x77, 0x28, 0xf7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x66, 0x86, 0xe5, 0xc0, 0x99, 0x19, 0x3a, 0x36, 0xfc, 0x3b, 0xbf, 0x00, 0x3e, 0x66, 0x6c, 0x6f, 0x77, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x65, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x9b, 0x21, 0x19, 0x38, 0x36, 0x43, 0xcb, 0x86, 0x3f, 0x97, 0x36, 0xd4, 0x88, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x36, 0x43, 0x7a, 0xf0, 0xb8, 0x60, 0xee, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x36, 0x43, 0x3c, 0x70, 0x6c, 0x86, 0xc5, 0x41, 0x89, 0x58, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x9b, 0x61, 0x32, 0x70, 0x6c, 0x86, 0xd9, 0xc1, 0x19, 0x09, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x36, 0xc3, 0x6e, 0xe0, 0xd8, 0x0c, 0x25, 0x1b, 0xfe, 0x9d, 0x5f, 0x83, 0xf7, 0x12, 0x35, 0x57, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb5, 0x19, 0x92, 0x81, 0x6b, 0x33, 0x3c, 0xde, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0x00, 0x5e, 0x29, 0x0b, 0x1b, 0x43, 0x03, 0xb9, 0x4b, 0x93, 0x2b, 0x03, 0x91, 0x2b, 0x83, 0x93, 0x2b, 0x9b, 0x2b, 0x73, 0xa3, 0x9b, 0x03, 0x09, 0x03, 0x31, 0x63, 0x7b, 0xbb, 0x63, 0x01, 0xa1, 0x43, 0x2b, 0x03, 0xb1, 0x0b, 0x63, 0xab, 0x2b, 0x03, 0x49, 0x9b, 0x03, 0x49, 0xa3, 0x9b, 0x03, 0x09, 0x9b, 0x9b, 0x7b, 0x1b, 0x4b, 0x0b, 0xa3, 0x2b, 0x23, 0x03, 0x81, 0x2b, 0x2b, 0x5b, 0x9b, 0x03, 0x31, 0x7b, 0x93, 0x03, 0xa1, 0x43, 0x2b, 0x03, 0x09, 0x1b, 0x5b, 0x9b, 0xdb, 0xf0, 0xe7, 0xd2, 0x80, 0x07, 0xf7, 0x46, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb5, 0x19, 0xd2, 0x81, 0x6b, 0x33, 0x8c, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xda, 0x0c, 0xf1, 0xc0, 0xb5, 0x19, 0x16, 0x07, 0xef, 0xa6, 0x9a, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xae, 0xcd, 0x30, 0x19, 0xb8, 0x36, 0xc3, 0xec, 0xe0, 0xdd, 0x96, 0x22, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb5, 0x19, 0x76, 0x03, 0xd7, 0x66, 0xd8, 0x1e, 0x9c, 0x91, 0x50, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0xcd, 0x90, 0x0c, 0x9c, 0x9b, 0xe1, 0xc4, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0x7c, 0xcf, 0xd1, 0xbd, 0xc9, 0x95, 0xcd, 0x81, 0xac, 0x95, 0xe5, 0xcd, 0x81, 0x98, 0xbd, 0xc9, 0x81, 0x94, 0xcc, 0xa1, 0xd5, 0xd1, 0x81, 0xc8, 0x95, 0xc5, 0xd5, 0x95, 0xcd, 0xd1, 0xcd, 0x6d, 0xf8, 0x73, 0x69, 0x00, 0xbf, 0x31, 0xb6, 0xb4, 0x32, 0x37, 0xba, 0x96, 0x31, 0xb4, 0xb0, 0x34, 0x77, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0xcd, 0xb0, 0x18, 0x38, 0x37, 0xc3, 0xec, 0xe0, 0x11, 0xfa, 0xc3, 0xad, 0x80, 0x47, 0x56, 0x76, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x06, 0x1e, 0x59, 0xd9, 0xdd, 0x00, 0x3f, 0x99, 0x5c, 0x1e, 0xc8, 0x0a, 0x5a, 0xd9, 0xdd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0xb6, 0x71, 0x03, 0x37, 0x6e, 0x88, 0x37, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0xb6, 0x21, 0x19, 0x38, 0x6d, 0xc3, 0x72, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x69, 0x1b, 0xa2, 0x81, 0xd3, 0x36, 0x0c, 0x36, 0xfc, 0xb9, 0x34, 0x78, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa7, 0x6d, 0x08, 0x0f, 0x1e, 0xe8, 0xcf, 0x7d, 0x50, 0x84, 0xc5, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa7, 0x6d, 0x58, 0x0c, 0x9c, 0xb6, 0x61, 0xb4, 0xe1, 0xcf, 0xa5, 0xc1, 0xc5, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x6d, 0xc3, 0xe6, 0xe0, 0x2d, 0x04, 0xdd, 0x07, 0x61, 0x3a, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0xb6, 0x61, 0x35, 0x70, 0xda, 0x86, 0xe1, 0x86, 0x3f, 0x97, 0x06, 0x1f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xb4, 0x0d, 0xbb, 0x83, 0x57, 0x27, 0x74, 0x1f, 0x7e, 0xa8, 0x69, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xdb, 0xb8, 0x83, 0x97, 0xe4, 0x73, 0x6f, 0xf8, 0x8b, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x6d, 0x43, 0x32, 0x70, 0xdb, 0x86, 0xe8, 0x20, 0x4c, 0xc7, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xb8, 0x8d, 0x3b, 0x78, 0x49, 0x3e, 0xf7, 0x86, 0x07, 0x25, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe3, 0x36, 0x24, 0x03, 0xc7, 0x6d, 0x88, 0x0e, 0xcf, 0x4c, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x75, 0x1b, 0x77, 0xf0, 0x92, 0x7c, 0xee, 0x0d, 0x0a, 0xd2, 0xd8, 0x35, 0x28, 0xa1, 0x63, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xeb, 0x36, 0x24, 0x03, 0xd7, 0x6d, 0x18, 0x6e, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x6e, 0x43, 0x34, 0x70, 0xdd, 0x86, 0xc1, 0x86, 0x3f, 0x97, 0x06, 0x27, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xba, 0x0d, 0xe1, 0xc1, 0xeb, 0x3f, 0xba, 0x0f, 0xdf, 0xce, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd7, 0x6d, 0x58, 0x0c, 0x5c, 0xb7, 0x61, 0xb7, 0xe1, 0xcf, 0xa5, 0xc1, 0xcb, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x6e, 0xc3, 0xe6, 0xe0, 0x8d, 0x25, 0xdd, 0x87, 0x07, 0xf0, 0x3b, 0x08, 0xd3, 0xb1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xba, 0x0d, 0xd3, 0x81, 0xeb, 0x36, 0xf4, 0x6c, 0x50, 0x0c, 0xc8, 0x6e, 0x78, 0x70, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x6e, 0xc3, 0x7e, 0xe0, 0xba, 0x0d, 0x05, 0x87, 0xa7, 0x75, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xba, 0x0d, 0x0d, 0x03, 0xd7, 0x6d, 0xa8, 0xd9, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xdd, 0x86, 0x8a, 0x81, 0xeb, 0x36, 0x74, 0x1c, 0x9e, 0xd6, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xae, 0xdb, 0x50, 0x32, 0x70, 0xdd, 0x86, 0x96, 0xc3, 0x83, 0x37, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x79, 0x1b, 0x77, 0xf0, 0x92, 0x7c, 0xee, 0x0d, 0x5f, 0xe1, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x79, 0x1b, 0x92, 0x83, 0x97, 0xe4, 0x73, 0x6f, 0xf8, 0x8b, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x6f, 0x43, 0x3a, 0x70, 0xde, 0x86, 0xe9, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0xb7, 0x21, 0x1e, 0x38, 0x6f, 0xc3, 0xe4, 0xa0, 0xf4, 0xa6, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0xdb, 0xb0, 0x19, 0x38, 0x6f, 0xc3, 0xe8, 0x20, 0x4c, 0xc7, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf3, 0x36, 0xac, 0x06, 0xce, 0xdb, 0xb0, 0x3c, 0x3c, 0x80, 0xdf, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xb7, 0x71, 0x07, 0x2f, 0xc9, 0xe7, 0xde, 0xa0, 0x20, 0x98, 0xdd, 0xf0, 0x79, 0xd0, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xe0, 0xc6, 0x0f, 0x1c, 0xb8, 0xa1, 0x62, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x81, 0x1b, 0x82, 0x81, 0x03, 0x37, 0xec, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xb8, 0x21, 0x19, 0x38, 0x70, 0x43, 0x78, 0x50, 0x12, 0xcd, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x07, 0x6e, 0x48, 0x07, 0x0e, 0xdc, 0x10, 0x1f, 0x94, 0xeb, 0xb2, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x81, 0x1b, 0xf2, 0x81, 0x03, 0x37, 0x8c, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xb8, 0x61, 0x30, 0x70, 0xe0, 0x86, 0xc5, 0x41, 0x39, 0x01, 0xbd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xb8, 0x61, 0x32, 0x70, 0xe0, 0x86, 0xcd, 0xe1, 0xbd, 0xa0, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x03, 0x37, 0xac, 0x06, 0x0e, 0xdc, 0x30, 0x3b, 0x3c, 0xbd, 0xd3, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xe0, 0x86, 0xe1, 0xc0, 0x81, 0x1b, 0x1a, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xb8, 0x61, 0x39, 0x70, 0xe0, 0x86, 0xf1, 0xe1, 0x4f, 0xa0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xc0, 0x0d, 0xeb, 0x81, 0x03, 0x37, 0xcc, 0x0f, 0xca, 0x09, 0xe8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xc0, 0x0d, 0xfb, 0x81, 0x03, 0x37, 0x14, 0x1c, 0xde, 0x0b, 0xaa, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x70, 0xe3, 0x0e, 0x5e, 0x92, 0xcf, 0xbd, 0x41, 0xd1, 0x41, 0x3b, 0xb8, 0xb9, 0x41, 0x11, 0x02, 0xbd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xb8, 0x21, 0x1f, 0xb8, 0x70, 0xc3, 0x6e, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0xc3, 0xe7, 0x41, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xe1, 0x86, 0xcd, 0xc0, 0x85, 0x1b, 0x66, 0x07, 0x25, 0x1c, 0x6d, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xe2, 0xc6, 0x1d, 0xbc, 0x24, 0x9f, 0x7b, 0x83, 0xa2, 0x83, 0x76, 0xf0, 0x73, 0x83, 0x22, 0x04, 0x7a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x71, 0x43, 0x3e, 0x70, 0xe2, 0x86, 0xdd, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x86, 0xcf, 0x83, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xc4, 0x0d, 0x9b, 0x81, 0x13, 0x37, 0xcc, 0x0e, 0x4a, 0x71, 0xda, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xc6, 0x8d, 0x3b, 0x78, 0x49, 0x3e, 0xf7, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1b, 0x37, 0x76, 0xe0, 0xc6, 0x0d, 0xd9, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1b, 0x37, 0x7e, 0xe0, 0xc6, 0x0d, 0xc1, 0x41, 0x31, 0x52, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xb8, 0x21, 0x19, 0xb8, 0x71, 0x43, 0x74, 0x50, 0xfe, 0xd4, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xb8, 0x21, 0x1c, 0xb8, 0x71, 0x43, 0x7a, 0x50, 0x4e, 0x40, 0x37, 0x0b, 0xe0, 0x31, 0x97, 0x66, 0x46, 0xd7, 0x02, 0x57, 0x27, 0x27, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x81, 0x17, 0x37, 0x70, 0xe3, 0x85, 0xaa, 0x0d, 0xbf, 0x28, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x07, 0x5e, 0x48, 0x06, 0x0e, 0xbc, 0x10, 0x6f, 0xf8, 0x73, 0x69, 0x83, 0xe5, 0x34, 0xd0, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xe0, 0x85, 0xe8, 0xe0, 0x49, 0x92, 0xdd, 0x07, 0x6f, 0xb6, 0xc7, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x0b, 0x2f, 0xee, 0xe0, 0x95, 0x8f, 0xdd, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2e, 0xbc, 0x90, 0x0c, 0x5c, 0x78, 0x21, 0xdd, 0xf0, 0xef, 0xfc, 0x1a, 0xbc, 0x55, 0x1f, 0xbb, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xc4, 0x8b, 0x3b, 0x78, 0xe5, 0x63, 0xf7, 0x86, 0x4f, 0x6c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x13, 0x2f, 0x24, 0x03, 0x27, 0x5e, 0x28, 0xd9, 0xf0, 0xb9, 0xcb, 0x1a, 0x26, 0x6e, 0x83, 0xb3, 0x90, 0xe9, 0xc1, 0x33, 0x0d, 0x88, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xc4, 0x0b, 0xa3, 0x83, 0x97, 0x83, 0x76, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xf1, 0xc2, 0x6a, 0xe0, 0xc4, 0x0b, 0xf3, 0x0d, 0x6f, 0xeb, 0x0c, 0xe0, 0x31, 0x97, 0x66, 0x46, 0xd7, 0x02, 0x57, 0x56, 0x06, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x78, 0x61, 0x3f, 0x70, 0xe2, 0x85, 0x8e, 0x83, 0xd6, 0x3e, 0x0c, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1b, 0x2f, 0xee, 0xe0, 0x95, 0x8f, 0xdd, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xbc, 0xd8, 0x81, 0x1b, 0x2f, 0x44, 0x1b, 0xde, 0xd6, 0x39, 0x78, 0xff, 0xec, 0xf1, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xe3, 0x85, 0x6c, 0xe0, 0xc6, 0x0b, 0x4d, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xbc, 0x10, 0x0e, 0xdc, 0x78, 0x61, 0xb5, 0xe1, 0x6d, 0x9d, 0x01, 0x3c, 0xe6, 0xd2, 0xcc, 0xe8, 0x5a, 0xda, 0xca, 0xde, 0xee, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1b, 0x2f, 0xcc, 0x06, 0x6e, 0xbc, 0x50, 0xb4, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xc6, 0x0b, 0xbb, 0x81, 0x1b, 0x2f, 0x4c, 0x0f, 0x4a, 0x7c, 0xdc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xc6, 0x0b, 0xdb, 0x81, 0x1b, 0x2f, 0x54, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xf1, 0xc2, 0x78, 0xe0, 0xc6, 0x0b, 0xeb, 0x83, 0xa2, 0x52, 0x7c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xf1, 0xc2, 0x7c, 0xe0, 0xc6, 0x0b, 0x0d, 0x07, 0xa9, 0x99, 0xb0, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x37, 0x5e, 0xe8, 0x18, 0xb8, 0xf1, 0x42, 0xcf, 0x41, 0x6b, 0x1f, 0x06, 0xd5, 0x6a, 0xd0, 0x38, 0x84, 0xc0, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0x41, 0xe3, 0x10, 0x02, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x9c, 0xc4, 0x0d, 0x9c, 0x27, 0xf1, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0x93, 0x90, 0x0c, 0x1c, 0x27, 0x61, 0xb0, 0xe1, 0xcf, 0xa5, 0x0d, 0x12, 0xd5, 0xc8, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x38, 0x09, 0xe9, 0xc1, 0x1b, 0xa1, 0xbb, 0x0f, 0xca, 0x2c, 0xdd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x3a, 0x09, 0xc9, 0xc0, 0x75, 0x12, 0xd2, 0x83, 0x07, 0x26, 0x64, 0xb7, 0x1a, 0xbc, 0x5b, 0x43, 0x79, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0xdd, 0x1a, 0xca, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x1a, 0x84, 0xd9, 0xc0, 0x69, 0x10, 0x4a, 0x36, 0x7c, 0x51, 0xb3, 0xa1, 0x8e, 0x07, 0x78, 0xd6, 0x91, 0x99, 0xc9, 0x85, 0x9d, 0xb5, 0x95, 0xb9, 0xd1, 0xb9, 0xd5, 0xb5, 0xab, 0xc1, 0x41, 0x9e, 0x6d, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xe0, 0x20, 0xcf, 0xd6, 0x00, 0x9e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0x34, 0x31, 0x2e, 0x31, 0x35, 0xb9, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x05, 0xc4, 0x0d, 0x64, 0x10, 0xe2, 0x37, 0x28, 0x59, 0xd8, 0x67, 0x99, 0x05, 0x9e, 0xac, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x14, 0x41, 0xfc, 0x40, 0x02, 0x21, 0x4c, 0x37, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x08, 0x42, 0x36, 0x90, 0x22, 0x08, 0x8b, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x8a, 0x20, 0xa4, 0x07, 0xaf, 0x62, 0xef, 0x3e, 0x28, 0xc2, 0x62, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x47, 0x10, 0x7f, 0xf0, 0xce, 0xf4, 0xee, 0x0d, 0x0a, 0xd2, 0xd8, 0x35, 0x7c, 0xdf, 0x3e, 0xb8, 0xb8, 0x41, 0x09, 0x1d, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x08, 0x42, 0x3a, 0x90, 0x23, 0x08, 0x05, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x04, 0x21, 0x1e, 0xc8, 0x11, 0x84, 0xd9, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb1, 0xb7, 0x78, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x04, 0x61, 0x72, 0xf0, 0x58, 0xfc, 0xee, 0xc3, 0xb7, 0xf3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x8e, 0x20, 0xec, 0x06, 0x72, 0x04, 0x61, 0xbf, 0xe1, 0xcf, 0xa5, 0x0d, 0x0e, 0xf0, 0x92, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x23, 0x08, 0xdb, 0x83, 0xa7, 0xfa, 0x77, 0x1f, 0x1e, 0xc0, 0xef, 0x20, 0x4c, 0xc7, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1c, 0x41, 0xa8, 0x18, 0xc8, 0x11, 0x84, 0xbe, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0x82, 0xd0, 0x31, 0x90, 0x23, 0x08, 0x25, 0x87, 0x07, 0x6f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1c, 0x41, 0x68, 0x19, 0xc8, 0x11, 0x84, 0xba, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x39, 0x82, 0x50, 0x33, 0x90, 0x23, 0x08, 0x4d, 0x07, 0x0b, 0x38, 0xe1, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1c, 0x41, 0xa8, 0x1a, 0xc8, 0x11, 0x84, 0xae, 0xc3, 0xd3, 0x3a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x8e, 0x20, 0x94, 0x0d, 0xe4, 0x08, 0x42, 0xdb, 0xe1, 0xc1, 0x9b, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x24, 0x41, 0xfc, 0xc1, 0x3b, 0xd3, 0xbb, 0x37, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x09, 0x42, 0x36, 0x90, 0x24, 0x08, 0x83, 0x0d, 0x7f, 0x2e, 0x6d, 0x50, 0xd4, 0x16, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x92, 0x20, 0xe4, 0x07, 0xaf, 0xc2, 0xf0, 0x3e, 0xfc, 0x50, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0x82, 0xf8, 0x83, 0x77, 0xa6, 0x77, 0x6f, 0xf8, 0x8b, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x12, 0x84, 0x6c, 0x20, 0x4b, 0x10, 0x8a, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x09, 0x42, 0x38, 0x90, 0x25, 0x08, 0xab, 0x83, 0xd7, 0xe5, 0x58, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x59, 0x82, 0x30, 0x1b, 0xc8, 0x12, 0x84, 0xf9, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb1, 0xb7, 0x78, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x04, 0x61, 0x7a, 0xf0, 0x38, 0x13, 0xef, 0xc3, 0xb7, 0xf3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x96, 0x20, 0xec, 0x07, 0xb2, 0x04, 0xa1, 0x67, 0xc3, 0x9f, 0x4b, 0x1b, 0x1c, 0xe0, 0x25, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x4b, 0x10, 0x3a, 0x0e, 0x9e, 0xc6, 0xe2, 0x7d, 0x78, 0x00, 0xbf, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x13, 0xc4, 0x1f, 0xbc, 0x33, 0xbd, 0x7b, 0x83, 0xa2, 0x83, 0x76, 0xf0, 0x71, 0xc3, 0xe7, 0x41, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x9e, 0x20, 0x24, 0x03, 0x79, 0x82, 0x50, 0xb9, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x4f, 0x10, 0xa2, 0x81, 0x3c, 0x41, 0x58, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x13, 0x84, 0x6c, 0x20, 0x4f, 0x10, 0xe2, 0x83, 0xf7, 0xd7, 0x66, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0x82, 0x90, 0x0f, 0xe4, 0x09, 0xc2, 0xe0, 0xf0, 0x5e, 0xd0, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x27, 0x08, 0x8b, 0x81, 0x3c, 0x41, 0x18, 0x1d, 0x94, 0x7e, 0xc6, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0x82, 0x30, 0x1b, 0xc8, 0x13, 0x84, 0xc6, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0x82, 0xb0, 0x1b, 0xc8, 0x13, 0x84, 0xf1, 0x86, 0xcf, 0x5d, 0x36, 0x58, 0x05, 0x8e, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0x82, 0xb0, 0x3d, 0x78, 0x94, 0x91, 0xf7, 0x41, 0xc0, 0xb2, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0x82, 0xb0, 0x1e, 0xc8, 0x13, 0x84, 0xaa, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x79, 0x82, 0x30, 0x1f, 0xc8, 0x13, 0x84, 0x8e, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x61, 0x75, 0xe2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x09, 0x42, 0xc5, 0xc1, 0x23, 0x9e, 0xbc, 0x0f, 0x02, 0x96, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x13, 0x84, 0x92, 0x81, 0x3c, 0x41, 0x68, 0xda, 0xf0, 0xb9, 0xcb, 0x80, 0xe7, 0x96, 0xc6, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x9e, 0x20, 0x14, 0x1d, 0x3c, 0xa4, 0xca, 0xfb, 0x20, 0x60, 0x59, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x04, 0xa1, 0x6b, 0x20, 0x4f, 0x10, 0x0a, 0x37, 0x7c, 0xee, 0xb2, 0x41, 0xbb, 0x90, 0x67, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x27, 0x08, 0x7d, 0x07, 0xcf, 0xd9, 0xf2, 0x3e, 0x08, 0x58, 0xd6, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x44, 0x41, 0xfc, 0xc1, 0x3b, 0xd3, 0xbb, 0x37, 0x28, 0xfa, 0x74, 0x37, 0x7c, 0x1e, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x0a, 0x42, 0x3c, 0x90, 0x28, 0x08, 0xdb, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0x82, 0x90, 0x0f, 0x24, 0x0a, 0xc2, 0xe0, 0xa0, 0xa8, 0x14, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x05, 0x61, 0x31, 0x90, 0x28, 0x08, 0xd3, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0x82, 0x30, 0x19, 0x48, 0x14, 0x84, 0xd5, 0xc1, 0x02, 0x4e, 0xf8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x51, 0x10, 0x66, 0x03, 0x89, 0x82, 0xb0, 0x3b, 0xbc, 0x17, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x0a, 0xc2, 0x70, 0x20, 0x51, 0x10, 0x96, 0x07, 0x45, 0xa5, 0x78, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xa6, 0x20, 0xfe, 0xe0, 0x9d, 0xe9, 0xdd, 0x1b, 0x14, 0x1d, 0xb4, 0x83, 0x93, 0x1b, 0x3e, 0x0f, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x05, 0x21, 0x19, 0xc8, 0x19, 0x84, 0xfd, 0x06, 0x27, 0xf6, 0x9b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x55, 0x10, 0xd2, 0x81, 0x54, 0x41, 0x18, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x15, 0x84, 0x78, 0x20, 0x55, 0x10, 0x16, 0x07, 0xef, 0xaf, 0xcd, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x05, 0x61, 0x32, 0x90, 0x2a, 0x08, 0x9b, 0xc3, 0x7b, 0x41, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xaa, 0x20, 0x8c, 0x06, 0x52, 0x05, 0x61, 0x77, 0x50, 0xfa, 0x19, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0x82, 0x90, 0x1c, 0x3c, 0x0e, 0xcf, 0x7b, 0x83, 0x73, 0xfe, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x2b, 0x08, 0xe9, 0x40, 0xae, 0x20, 0x8c, 0x37, 0x7c, 0xee, 0x32, 0xe0, 0xd1, 0xbd, 0x89, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x2b, 0x08, 0x8b, 0x83, 0x77, 0x24, 0x7a, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x15, 0x84, 0xc9, 0x40, 0xae, 0x20, 0xac, 0x0e, 0x0a, 0xed, 0xde, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x57, 0x10, 0x66, 0x03, 0xb9, 0x82, 0xb0, 0xdd, 0xf0, 0xb6, 0xce, 0x06, 0xab, 0xc0, 0xf1, 0x0e, 0xff, 0xf0, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x0b, 0x42, 0x36, 0x90, 0x32, 0x08, 0xe9, 0x86, 0xcf, 0x5d, 0x06, 0xbc, 0xb0, 0x3a, 0x71, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x05, 0x21, 0x3b, 0x78, 0x65, 0xa5, 0xf7, 0x06, 0x27, 0x07, 0xb9, 0x05, 0xbc, 0xb0, 0x3a, 0xf1, 0xf0, 0x0f, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x2d, 0x08, 0xb3, 0x81, 0x6c, 0x41, 0x18, 0x1e, 0x84, 0xa7, 0xea, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xba, 0x20, 0xa4, 0x03, 0xe9, 0x82, 0xb0, 0x38, 0x78, 0x8f, 0xe0, 0xef, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x0b, 0xc2, 0x68, 0x20, 0x5d, 0x10, 0x96, 0x1b, 0xbe, 0x7e, 0xd9, 0xf0, 0x21, 0xcc, 0x86, 0xaf, 0x5f, 0x36, 0x7c, 0x08, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0x82, 0xb0, 0x3b, 0x78, 0x8e, 0xa8, 0xf7, 0x41, 0x0a, 0x74, 0xea, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xbe, 0x20, 0xa4, 0x03, 0xf9, 0x82, 0x30, 0x39, 0x78, 0x6e, 0xe3, 0xef, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x0b, 0xc2, 0x68, 0x20, 0x5f, 0x10, 0x96, 0x1b, 0xbe, 0x7e, 0xd9, 0xf0, 0x21, 0xcc, 0x86, 0xaf, 0x5f, 0x36, 0x7c, 0x08, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0x82, 0xb0, 0x3b, 0x78, 0xf6, 0xaa, 0xf7, 0xc1, 0xe1, 0x55, 0x6e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x61, 0x10, 0xd2, 0x81, 0x84, 0x41, 0x58, 0x1c, 0x3c, 0xfe, 0xf0, 0x77, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x06, 0x61, 0x34, 0x90, 0x30, 0x08, 0xc3, 0x0d, 0x5f, 0xbf, 0x6c, 0xf8, 0x10, 0x66, 0xc3, 0xd7, 0x2f, 0x1b, 0x3e, 0x84, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x84, 0x41, 0xd8, 0x1d, 0xbc, 0xae, 0xd6, 0xfb, 0xf0, 0xe0, 0xcd, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xc6, 0x20, 0xa4, 0x03, 0x19, 0x83, 0x30, 0x39, 0x78, 0xe3, 0xe4, 0xef, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x0c, 0xc2, 0x68, 0x20, 0x63, 0x10, 0x1a, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x0c, 0xc2, 0x6a, 0x20, 0x63, 0x10, 0xa6, 0x1b, 0xbe, 0x7e, 0xd9, 0xf0, 0x21, 0xcc, 0x86, 0xaf, 0x5f, 0x36, 0x7c, 0x08, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x19, 0x83, 0x30, 0x3c, 0x78, 0x6e, 0xb0, 0xf7, 0x41, 0xea, 0x69, 0xec, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x31, 0x08, 0xdb, 0x81, 0x8c, 0x41, 0x28, 0xd8, 0xf0, 0xf5, 0xcb, 0x86, 0x0f, 0x61, 0x36, 0x7c, 0xfd, 0xb2, 0xe1, 0x43, 0x98, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x18, 0x84, 0xf9, 0xc1, 0x03, 0x91, 0xbd, 0x0f, 0x52, 0x4f, 0x63, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x06, 0x21, 0x39, 0x78, 0x1c, 0x9e, 0xf7, 0x86, 0xcf, 0x5d, 0x06, 0x3c, 0xb7, 0x32, 0x76, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x06, 0x21, 0x3d, 0x78, 0x1c, 0x9e, 0xf7, 0x06, 0xc5, 0x8e, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x33, 0x08, 0x83, 0x81, 0x9c, 0x41, 0x98, 0x6e, 0xf8, 0x37, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x19, 0x84, 0xc9, 0x40, 0xce, 0x20, 0x6c, 0x0e, 0x8a, 0x4a, 0xf1, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x19, 0x84, 0xd1, 0x40, 0xce, 0x20, 0x2c, 0x37, 0xbc, 0xad, 0xb3, 0x41, 0xbb, 0x90, 0x67, 0x87, 0x7f, 0x78, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9c, 0x41, 0xd8, 0x0e, 0xe4, 0x0c, 0xc2, 0xf8, 0xf0, 0xe0, 0xcd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x0c, 0xc2, 0x7a, 0x20, 0x67, 0x10, 0xe6, 0x87, 0xc7, 0x64, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x6b, 0x10, 0x7f, 0xf0, 0xce, 0xf4, 0xee, 0x0d, 0x0a, 0xd2, 0xd8, 0x35, 0x7c, 0xdf, 0x3e, 0xe0, 0x85, 0xd5, 0xd1, 0x1b, 0x94, 0xd0, 0xb1, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xd6, 0x20, 0xe4, 0x03, 0x59, 0x83, 0x30, 0xdc, 0xf0, 0xef, 0xfc, 0x06, 0xef, 0x83, 0x06, 0x3e, 0x78, 0xea, 0x4e, 0xf1, 0x41, 0x98, 0x8e, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0x83, 0x90, 0x0c, 0xe4, 0x0e, 0x42, 0xb6, 0xc1, 0xc9, 0x41, 0x6e, 0x83, 0xa7, 0x67, 0x7a, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0x83, 0x30, 0x1a, 0x48, 0x1b, 0x84, 0xd9, 0x41, 0x78, 0xaa, 0xae, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x0d, 0x42, 0x36, 0x90, 0x37, 0x08, 0xf9, 0xc1, 0x7b, 0x04, 0x7f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x6f, 0x10, 0x26, 0x03, 0x79, 0x83, 0xd0, 0xb7, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x6f, 0x10, 0x36, 0x03, 0x79, 0x83, 0xb0, 0x3a, 0x58, 0x05, 0x26, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x0d, 0xc2, 0x6c, 0x20, 0x6f, 0x10, 0x86, 0x07, 0xab, 0xc0, 0x64, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbc, 0x41, 0x58, 0x0e, 0xe4, 0x0d, 0x42, 0xdd, 0x06, 0x05, 0x1f, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x37, 0x08, 0xe3, 0x81, 0xbc, 0x41, 0xe8, 0xd9, 0xa0, 0x98, 0xc4, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x06, 0x61, 0x3f, 0x90, 0x37, 0x08, 0x05, 0x87, 0x1f, 0x6a, 0x06, 0xbc, 0xb0, 0x3a, 0xf1, 0xa0, 0xc8, 0x97, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbc, 0x41, 0x28, 0x1a, 0xc8, 0x1b, 0x84, 0xb6, 0x0d, 0x6f, 0xeb, 0x1c, 0x3c, 0x8d, 0xe0, 0xbb, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc4, 0x41, 0xc8, 0x06, 0x12, 0x07, 0x61, 0x70, 0xf0, 0xdc, 0xc6, 0xdf, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x1c, 0x84, 0xc9, 0x40, 0xe2, 0x20, 0xf4, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x1c, 0x84, 0xcd, 0x40, 0xe2, 0x20, 0xac, 0x0e, 0x56, 0x81, 0xc9, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x89, 0x83, 0x30, 0x1b, 0x48, 0x1c, 0x84, 0xe1, 0xc1, 0x32, 0x27, 0xd9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x71, 0x10, 0x96, 0x03, 0x89, 0x83, 0x50, 0xb7, 0x41, 0xc1, 0x87, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x0e, 0xc2, 0x78, 0x20, 0x71, 0x10, 0x7a, 0x36, 0x28, 0x26, 0x31, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc4, 0x41, 0xd8, 0x0f, 0x24, 0x0e, 0x42, 0xc1, 0xe1, 0x87, 0x9a, 0x83, 0xa7, 0x11, 0x7c, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xe2, 0x20, 0x14, 0x0d, 0x24, 0x0e, 0x42, 0xdb, 0xc1, 0x83, 0x0f, 0xbe, 0x5b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x1c, 0x84, 0x6c, 0x20, 0x73, 0x10, 0xf2, 0x83, 0xc7, 0x1f, 0xfe, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xe6, 0x20, 0x4c, 0x06, 0x32, 0x07, 0x61, 0xb8, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x73, 0x10, 0x36, 0x03, 0x99, 0x83, 0xb0, 0x3a, 0x58, 0xe6, 0x24, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x0e, 0xc2, 0x6c, 0x20, 0x73, 0x10, 0x76, 0x07, 0x05, 0x45, 0x66, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa9, 0x83, 0x90, 0x0d, 0xa4, 0x0e, 0xc2, 0xe0, 0xe0, 0x8d, 0x93, 0xbf, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x3a, 0x08, 0x93, 0x81, 0xd4, 0x41, 0x68, 0xdb, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x3a, 0x08, 0x9b, 0x81, 0xd4, 0x41, 0x58, 0x1d, 0x2c, 0x73, 0x92, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x52, 0x07, 0x61, 0x36, 0x90, 0x3a, 0x08, 0x65, 0x1b, 0x14, 0x7c, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xea, 0x20, 0x2c, 0x07, 0x52, 0x07, 0xa1, 0x64, 0x83, 0x62, 0x12, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x1d, 0x84, 0xf1, 0x40, 0xea, 0x20, 0xac, 0x0f, 0x8a, 0x54, 0xcc, 0x83, 0xa7, 0x11, 0x7c, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xea, 0x20, 0xb4, 0x0c, 0xa4, 0x0e, 0x42, 0xd7, 0x06, 0xc7, 0x70, 0x83, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x1d, 0x84, 0x9a, 0x83, 0xb7, 0xf8, 0x7c, 0x1f, 0x3c, 0xf8, 0xe0, 0xbb, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x7b, 0x10, 0x7f, 0xf0, 0xce, 0xf4, 0xee, 0x0d, 0x0a, 0xd2, 0xd8, 0x01, 0xcf, 0xad, 0x8c, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x07, 0x61, 0x30, 0x90, 0x3d, 0x08, 0x55, 0x1b, 0x14, 0x3b, 0x9a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xf6, 0x20, 0x6c, 0x06, 0xb2, 0x07, 0x61, 0xbd, 0xe1, 0xdf, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x7b, 0x10, 0x56, 0x03, 0xd9, 0x83, 0x30, 0x3b, 0x28, 0x2a, 0xc5, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x7b, 0x10, 0x76, 0x03, 0xd9, 0x83, 0x30, 0x3e, 0x78, 0xda, 0xb6, 0xf7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x3d, 0x08, 0xf3, 0x81, 0xec, 0x41, 0xe8, 0x38, 0x78, 0xda, 0xb6, 0xf7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x0f, 0x42, 0xc9, 0x40, 0xf6, 0x20, 0x34, 0x6d, 0x78, 0x5b, 0x67, 0xc0, 0x73, 0x2b, 0x63, 0x0f, 0x8a, 0x7c, 0xd9, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x1f, 0xc4, 0x1f, 0xbc, 0x33, 0xbd, 0x7b, 0x83, 0xa2, 0x83, 0x76, 0x83, 0xb2, 0xb0, 0x78, 0x0d, 0x0e, 0xf0, 0x92, 0x87, 0xcf, 0x83, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf4, 0x41, 0xd8, 0x0d, 0xa4, 0x0f, 0xc2, 0x81, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0x83, 0x30, 0x1c, 0x48, 0x1f, 0x84, 0xbe, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0x83, 0xb0, 0x1c, 0x48, 0x1f, 0x84, 0xf1, 0x41, 0x49, 0x34, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x0f, 0xc2, 0x7a, 0x20, 0x7d, 0x10, 0xe6, 0x07, 0x45, 0xa5, 0xf8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x3e, 0x08, 0xfb, 0x81, 0xf4, 0x41, 0xa8, 0xda, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x3e, 0x08, 0x05, 0x03, 0xe9, 0x83, 0xd0, 0xb2, 0xe1, 0x6d, 0x9d, 0x83, 0x07, 0x6a, 0x7d, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0x83, 0x50, 0x33, 0x90, 0x3e, 0x08, 0x4d, 0x1b, 0xde, 0xd6, 0x19, 0xf0, 0xdc, 0xca, 0xd8, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x07, 0xa1, 0x6b, 0x20, 0x7d, 0x10, 0xea, 0x0e, 0x4a, 0x3f, 0xe3, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf4, 0x41, 0x28, 0x1c, 0x48, 0x1f, 0x84, 0xfe, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0x83, 0xd0, 0x38, 0x90, 0x3e, 0x08, 0xa5, 0x87, 0x3f, 0x81, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf4, 0x41, 0x68, 0x1d, 0x48, 0x1f, 0x84, 0xea, 0x83, 0x57, 0xae, 0x7d, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0x83, 0xd0, 0x3d, 0x90, 0x3e, 0x08, 0xf5, 0x07, 0x2f, 0x77, 0xfb, 0xae, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x1f, 0xc4, 0x1f, 0xbc, 0x33, 0xbd, 0x7b, 0x83, 0xa2, 0x83, 0x76, 0x83, 0xa2, 0xb6, 0x78, 0x83, 0x07, 0x6a, 0x7d, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0x83, 0xb0, 0x1b, 0xc8, 0x1f, 0x84, 0x03, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x07, 0x61, 0x38, 0x90, 0x3f, 0x08, 0x7d, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x07, 0x61, 0x39, 0x90, 0x3f, 0x08, 0xe3, 0x83, 0x92, 0x68, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x1f, 0x84, 0xf5, 0x40, 0xfe, 0x20, 0xcc, 0x0f, 0x8a, 0x4a, 0xf1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x7f, 0x10, 0xf6, 0x03, 0xf9, 0x83, 0x50, 0xb5, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x7f, 0x10, 0x0a, 0x06, 0xf2, 0x07, 0xa1, 0xe5, 0xe0, 0x95, 0x6b, 0xdf, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xfe, 0x20, 0xd4, 0x0c, 0xe4, 0x0f, 0x42, 0xd3, 0x41, 0xe1, 0x65, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x3f, 0x08, 0x5d, 0x03, 0xf9, 0x83, 0x50, 0x77, 0x50, 0xfa, 0x19, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x0f, 0x42, 0xe1, 0x40, 0xfe, 0x20, 0xf4, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x1f, 0x84, 0xc6, 0x81, 0xfc, 0x41, 0x28, 0x3d, 0xfc, 0x09, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x0f, 0x42, 0xeb, 0x40, 0xfe, 0x20, 0x54, 0x1f, 0xbc, 0x72, 0xed, 0x7b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x1f, 0x84, 0xee, 0x81, 0xfc, 0x41, 0xa8, 0x3f, 0x28, 0xbc, 0x8c, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x08, 0xf1, 0x07, 0xef, 0x4c, 0xef, 0xde, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x40, 0x08, 0xc1, 0x40, 0x02, 0x21, 0xec, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x10, 0x42, 0x32, 0x90, 0x40, 0x08, 0xf1, 0x86, 0xb7, 0x75, 0x06, 0x3c, 0xba, 0x37, 0xf1, 0xa0, 0xc8, 0x97, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x08, 0x21, 0x1f, 0x48, 0x20, 0x84, 0xc9, 0x86, 0xb7, 0x75, 0x06, 0xbc, 0xb0, 0x3a, 0xba, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x81, 0x10, 0x36, 0x03, 0x09, 0x84, 0x30, 0x3b, 0x28, 0xfd, 0x8c, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x12, 0x08, 0x61, 0x38, 0x90, 0x40, 0x08, 0xcb, 0xc3, 0x7b, 0x41, 0xcd, 0x02, 0x5f, 0xe6, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x32, 0x20, 0x7e, 0x20, 0x3f, 0x10, 0xea, 0x37, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x03, 0x42, 0x36, 0x90, 0x0c, 0x08, 0x45, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x01, 0x21, 0x1c, 0x48, 0x06, 0x84, 0xcd, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xba, 0x37, 0x71, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x01, 0x61, 0x70, 0xf0, 0x98, 0xde, 0xef, 0x83, 0x32, 0x4b, 0x77, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x06, 0x84, 0xd1, 0x40, 0x32, 0x20, 0x34, 0x6c, 0xf8, 0x73, 0x69, 0xc0, 0x0b, 0xab, 0xa3, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x19, 0x10, 0x86, 0x07, 0xef, 0x19, 0xfe, 0x3e, 0x78, 0x2c, 0xba, 0xf7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x0c, 0x08, 0x15, 0x03, 0xc9, 0x80, 0xd0, 0xb3, 0xe1, 0xcf, 0xa5, 0x0d, 0x8a, 0xda, 0xe2, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x06, 0x84, 0x9a, 0x83, 0x97, 0x25, 0x7f, 0x1f, 0x7e, 0xa8, 0x69, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x01, 0xf1, 0x07, 0xcf, 0xbd, 0xfd, 0xde, 0xf0, 0x17, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x0d, 0x08, 0xd9, 0x40, 0x36, 0x20, 0xe4, 0x07, 0x0f, 0x8b, 0x19, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x74, 0x40, 0xfc, 0xc1, 0x73, 0x6f, 0xbf, 0x37, 0x28, 0x48, 0x63, 0x37, 0x58, 0x05, 0x8e, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x03, 0xc2, 0x60, 0x20, 0x1d, 0x10, 0x9a, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x03, 0xc2, 0x62, 0x20, 0x1d, 0x10, 0x46, 0x87, 0xd7, 0x7c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x74, 0x40, 0x58, 0x0d, 0xa4, 0x03, 0x42, 0xd1, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x74, 0x40, 0x98, 0x0d, 0xa4, 0x03, 0xc2, 0xf2, 0xa0, 0x28, 0xfe, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x01, 0x61, 0x3a, 0x90, 0x0e, 0x08, 0xdb, 0x83, 0xa2, 0x52, 0x7c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x07, 0x84, 0xf1, 0x40, 0x3a, 0x20, 0xf4, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x07, 0x84, 0xf5, 0x40, 0x3a, 0x20, 0x14, 0x1c, 0x14, 0x59, 0xa6, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x3a, 0x20, 0x34, 0x0c, 0xa4, 0x03, 0x42, 0xc5, 0xe1, 0x31, 0x99, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x1d, 0x10, 0x3a, 0x06, 0xd2, 0x01, 0xa1, 0x66, 0xc3, 0xdb, 0x3a, 0x03, 0x1e, 0xdd, 0x9b, 0x58, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0x80, 0xf8, 0x83, 0xe7, 0xde, 0x7e, 0x6f, 0x50, 0xf0, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf9, 0x80, 0x90, 0x0d, 0xe4, 0x03, 0xc2, 0x6c, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x3e, 0x20, 0x84, 0x03, 0xf9, 0x80, 0x90, 0x1f, 0xbe, 0xf8, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x01, 0x61, 0x30, 0x90, 0x0f, 0x08, 0x9b, 0x0d, 0x6f, 0xeb, 0x1c, 0x2c, 0x42, 0xcc, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x01, 0x61, 0x34, 0x90, 0x0f, 0x08, 0xab, 0x83, 0xa2, 0x52, 0xbc, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x08, 0xc4, 0x1f, 0x3c, 0xf7, 0xf6, 0x7b, 0x83, 0x82, 0x34, 0x76, 0x0d, 0x4a, 0xe8, 0xd8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x23, 0x10, 0xb2, 0x81, 0x8c, 0x40, 0xe8, 0xd8, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x11, 0x08, 0xe1, 0x40, 0x46, 0x20, 0x8c, 0x36, 0xfc, 0xb9, 0x34, 0xe0, 0x85, 0xd5, 0x89, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x11, 0x08, 0x83, 0x83, 0xf7, 0x16, 0x80, 0x6f, 0xf8, 0xa2, 0x66, 0x43, 0x1d, 0x0f, 0xbc, 0x3a, 0x31, 0x61, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x08, 0x84, 0xd5, 0x40, 0x46, 0x20, 0x54, 0x6c, 0xf8, 0x73, 0x69, 0xc0, 0x0b, 0xab, 0x6b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x23, 0x10, 0x96, 0x07, 0xef, 0x64, 0x00, 0x3f, 0x78, 0x04, 0xde, 0x76, 0x07, 0x61, 0x3a, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x04, 0x42, 0x32, 0x90, 0x17, 0x08, 0xd9, 0x06, 0x41, 0x7a, 0xba, 0xc1, 0xd3, 0x5e, 0xbf, 0x57, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x02, 0x21, 0x1b, 0xc8, 0x09, 0x84, 0xd1, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9c, 0x40, 0x08, 0x07, 0x72, 0x02, 0x21, 0x3e, 0x08, 0xd8, 0xa0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x27, 0x10, 0xf2, 0x81, 0x9c, 0x40, 0x58, 0x1c, 0x04, 0x6c, 0xd0, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x13, 0x08, 0x93, 0x81, 0x9c, 0x40, 0xd8, 0x1c, 0x84, 0xe9, 0x58, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x13, 0x08, 0xbb, 0x81, 0x9c, 0x40, 0xe8, 0xd9, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x13, 0x08, 0xc3, 0x81, 0x9c, 0x40, 0xd8, 0x6e, 0xf8, 0x11, 0xe6, 0xe0, 0x9d, 0x82, 0xbf, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x4e, 0x20, 0x8c, 0x07, 0x72, 0x02, 0x61, 0x7e, 0x90, 0x02, 0x9d, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x04, 0xc2, 0x7e, 0x20, 0x27, 0x10, 0x6a, 0x36, 0x5c, 0x52, 0x6b, 0x3c, 0x1f, 0x1c, 0x3e, 0x78, 0xda, 0xeb, 0x77, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x05, 0x42, 0x36, 0x90, 0x14, 0x08, 0xa3, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x49, 0x81, 0x10, 0x0e, 0x24, 0x05, 0x42, 0x7c, 0x10, 0xb0, 0x41, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x52, 0x20, 0xe4, 0x03, 0x49, 0x81, 0xb0, 0x38, 0x08, 0x23, 0xa0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x29, 0x10, 0x26, 0x03, 0x49, 0x81, 0xb0, 0x39, 0x08, 0xd3, 0xb1, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x29, 0x10, 0x76, 0x03, 0x49, 0x81, 0x50, 0xb4, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x29, 0x10, 0x86, 0x03, 0x49, 0x81, 0x30, 0xde, 0xf0, 0x23, 0xcc, 0xc1, 0x33, 0x1c, 0x7f, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa4, 0x40, 0x58, 0x0f, 0x24, 0x05, 0xc2, 0xfe, 0xe0, 0xf0, 0x2a, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x24, 0x05, 0x42, 0xc1, 0x40, 0x52, 0x20, 0xf4, 0x1c, 0x3c, 0x5d, 0x05, 0xbc, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xac, 0x40, 0xc8, 0x06, 0xb2, 0x02, 0x61, 0xb1, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x2b, 0x10, 0xc2, 0x81, 0xac, 0x40, 0x88, 0x0f, 0xc2, 0x08, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x0a, 0x84, 0x7c, 0x20, 0x2b, 0x10, 0x06, 0x07, 0x21, 0xf8, 0xd0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x05, 0xc2, 0x6e, 0x20, 0x2b, 0x10, 0xe6, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xb2, 0x02, 0x61, 0x38, 0x90, 0x15, 0x08, 0xdb, 0x0d, 0x3f, 0xc2, 0x1c, 0x3c, 0x0a, 0xf1, 0x77, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x0a, 0x84, 0xf1, 0x40, 0x56, 0x20, 0xac, 0x0f, 0x0f, 0xde, 0xb4, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x16, 0x08, 0xd9, 0x40, 0x5a, 0x20, 0x2c, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x05, 0x42, 0x38, 0x90, 0x16, 0x08, 0xf1, 0x41, 0x18, 0x01, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0x81, 0x90, 0x0f, 0xa4, 0x05, 0xc2, 0xe0, 0xa0, 0x48, 0xc5, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x02, 0x61, 0x37, 0x90, 0x16, 0x08, 0xcd, 0x1b, 0x1e, 0x94, 0x5c, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x5a, 0x20, 0x0c, 0x07, 0xd2, 0x02, 0x61, 0xbc, 0xe1, 0x47, 0x98, 0x83, 0xb7, 0x4f, 0xfe, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0x81, 0xb0, 0x1e, 0x48, 0x0b, 0x84, 0x82, 0x0d, 0x96, 0x7e, 0xbd, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x5a, 0x20, 0xec, 0x0f, 0x1e, 0x49, 0x06, 0x7e, 0x50, 0x50, 0x64, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x69, 0x81, 0xd0, 0x30, 0x90, 0x16, 0x08, 0x15, 0x07, 0x87, 0x95, 0xb9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x2d, 0x10, 0x3a, 0x06, 0xd2, 0x02, 0xa1, 0x68, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x5a, 0x20, 0x94, 0x0c, 0xa4, 0x05, 0x42, 0xcb, 0xe1, 0x31, 0x99, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x2d, 0x10, 0x6a, 0x06, 0xd2, 0x02, 0xa1, 0xe7, 0xe0, 0x74, 0x91, 0xd1, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x16, 0x08, 0x4d, 0x03, 0x69, 0x81, 0x50, 0xb7, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x2d, 0x10, 0xaa, 0x06, 0xd2, 0x02, 0xa1, 0xeb, 0xf0, 0x98, 0xcc, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x16, 0x08, 0x65, 0x03, 0x69, 0x81, 0xd0, 0x76, 0x70, 0x3a, 0x12, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x0b, 0x84, 0xbe, 0x81, 0xb4, 0x40, 0x28, 0x3c, 0x28, 0x28, 0x32, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb4, 0x40, 0xa8, 0x3c, 0x78, 0x85, 0x17, 0xf8, 0x86, 0xb7, 0x75, 0x06, 0xaf, 0x0f, 0x1e, 0xb9, 0x02, 0xde, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x06, 0xe2, 0x0f, 0x9e, 0x7b, 0xfb, 0xbd, 0x41, 0x41, 0x1a, 0xbb, 0x41, 0x59, 0x58, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x64, 0x06, 0xc2, 0x60, 0x20, 0x33, 0x10, 0xb6, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x32, 0x03, 0x61, 0x31, 0x90, 0x19, 0x08, 0xa3, 0x83, 0xa2, 0xf8, 0x77, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x0c, 0x84, 0xd5, 0x40, 0x66, 0x20, 0xcc, 0x0e, 0x8a, 0x4a, 0xf1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x33, 0x10, 0x76, 0x03, 0x99, 0x81, 0x30, 0x3d, 0x28, 0xfd, 0x8c, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd4, 0x40, 0xfc, 0xc1, 0x73, 0x6f, 0xbf, 0x37, 0x28, 0x48, 0x63, 0x07, 0x3c, 0xb7, 0x32, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x0d, 0x84, 0xc1, 0x40, 0x6a, 0x20, 0x6c, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x06, 0xc2, 0x62, 0x20, 0x35, 0x10, 0x46, 0x07, 0x45, 0xf1, 0xef, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x1a, 0x08, 0xab, 0x81, 0xd4, 0x40, 0x98, 0x1d, 0x14, 0x95, 0xe2, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x6a, 0x20, 0xec, 0x06, 0x52, 0x03, 0x61, 0x7a, 0x50, 0x78, 0x19, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb9, 0x81, 0xf8, 0x83, 0xe7, 0xde, 0x7e, 0x6f, 0x50, 0x90, 0xc6, 0xae, 0xe1, 0xfb, 0xf6, 0x0d, 0xda, 0x85, 0x3c, 0xdb, 0xa0, 0x84, 0x8e, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x72, 0x03, 0x21, 0x1f, 0xc8, 0x0d, 0x84, 0xed, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x06, 0xc2, 0x60, 0x20, 0x37, 0x10, 0x46, 0x07, 0xa5, 0x37, 0xfd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x1b, 0x08, 0xab, 0x81, 0xdc, 0x40, 0xd8, 0x1d, 0xbc, 0xbc, 0x2a, 0x7b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x0d, 0x84, 0xe1, 0x40, 0x6e, 0x20, 0x4c, 0x37, 0x7c, 0x51, 0xb3, 0xa1, 0x8e, 0x87, 0x07, 0x1d, 0x84, 0xe9, 0xd8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x1c, 0x08, 0xc9, 0x40, 0x72, 0x20, 0x34, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x0e, 0x84, 0x70, 0x20, 0x39, 0x10, 0x76, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x92, 0x03, 0x21, 0x1d, 0x48, 0x0e, 0x84, 0xc1, 0xe1, 0x8b, 0xb3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x39, 0x10, 0x16, 0x03, 0xc9, 0x81, 0x30, 0x3a, 0x78, 0xb9, 0xdb, 0xf7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x1c, 0x08, 0xab, 0x81, 0xe4, 0x40, 0x98, 0x1d, 0x14, 0x95, 0xe2, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc9, 0x81, 0x30, 0x1c, 0x48, 0x0e, 0x84, 0xfd, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe4, 0x40, 0x58, 0x0e, 0x24, 0x07, 0xc2, 0xf8, 0xe0, 0xe5, 0x6e, 0xdf, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x72, 0x20, 0xac, 0x07, 0x92, 0x03, 0x61, 0x7e, 0x78, 0xf0, 0xa6, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x0e, 0x84, 0x82, 0x81, 0xe4, 0x40, 0x28, 0xda, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x1c, 0x08, 0x0d, 0x03, 0xc9, 0x81, 0xd0, 0x72, 0xf0, 0xea, 0x30, 0xf0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x39, 0x10, 0x6a, 0x06, 0x92, 0x03, 0xa1, 0xe7, 0xf0, 0x98, 0x4c, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x1d, 0x88, 0x3f, 0x78, 0xee, 0xed, 0xf7, 0x06, 0xe7, 0xfc, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x3b, 0x10, 0xb2, 0x81, 0xec, 0x40, 0x58, 0x6c, 0xf8, 0xdc, 0x65, 0xc3, 0x77, 0xf4, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x1d, 0x08, 0x83, 0x83, 0x07, 0x4a, 0x83, 0x1f, 0x14, 0x95, 0xe2, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x7a, 0x20, 0x24, 0x03, 0xe9, 0x81, 0x50, 0xb9, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x3d, 0x10, 0xa2, 0x81, 0xf4, 0x40, 0x48, 0x37, 0x58, 0xfa, 0xf5, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe9, 0x81, 0x10, 0x1e, 0x3c, 0x64, 0x1b, 0xfc, 0xa0, 0xa0, 0xc8, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x03, 0x21, 0x1e, 0x48, 0x0f, 0x84, 0xfc, 0xf0, 0xe0, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x1e, 0x08, 0x83, 0x81, 0xf4, 0x40, 0xd8, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x0f, 0x84, 0xc5, 0x40, 0x7a, 0x20, 0x4c, 0x0e, 0x02, 0x96, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x0f, 0x84, 0xcd, 0x40, 0x7a, 0x20, 0xcc, 0x0e, 0x1e, 0xa4, 0xff, 0xdd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x1e, 0x08, 0xc3, 0x81, 0xf4, 0x40, 0xd8, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x0f, 0x84, 0xe5, 0x40, 0x7a, 0x20, 0x4c, 0x0f, 0x02, 0x96, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x0f, 0x84, 0xed, 0x40, 0x7a, 0x20, 0xcc, 0x37, 0xbc, 0xad, 0x33, 0xe0, 0x85, 0xd5, 0x89, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xa4, 0x07, 0x42, 0xc1, 0x40, 0x7a, 0x20, 0xb4, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x48, 0x0f, 0x84, 0x86, 0x81, 0xf4, 0x40, 0xa8, 0x38, 0x08, 0x58, 0xd6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x3d, 0x10, 0x3a, 0x06, 0xd2, 0x03, 0xa1, 0xe4, 0xf0, 0xe0, 0x4d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x7a, 0x20, 0xd4, 0x0c, 0xa4, 0x07, 0x42, 0xdf, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf4, 0x40, 0xe8, 0x19, 0x48, 0x0f, 0x84, 0xa2, 0x83, 0x80, 0x65, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xd2, 0x03, 0xa1, 0x69, 0x20, 0x3d, 0x10, 0xea, 0x36, 0xbc, 0xad, 0x33, 0x38, 0x7c, 0xd0, 0x9e, 0xea, 0x59, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x7a, 0x20, 0x14, 0x0e, 0xa4, 0x07, 0x42, 0xe3, 0x41, 0x41, 0x91, 0xd9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x07, 0xe2, 0x0f, 0x9e, 0x7b, 0xfb, 0xbd, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x3f, 0x10, 0x82, 0x81, 0xfc, 0x40, 0xd8, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xc8, 0x0f, 0x84, 0x64, 0x20, 0x3f, 0x10, 0x26, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x03, 0x21, 0x1a, 0xc8, 0x0f, 0x84, 0xf4, 0xa0, 0xd0, 0xee, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x03, 0x21, 0x1e, 0xc8, 0x0f, 0x84, 0xc5, 0xc1, 0x83, 0xf4, 0xbf, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x03, 0x61, 0x33, 0x90, 0x1f, 0x08, 0xb3, 0x83, 0xe7, 0xba, 0x7f, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xe4, 0x07, 0xc2, 0x70, 0x20, 0x3f, 0x10, 0xb6, 0x1b, 0xde, 0xd6, 0x19, 0xf0, 0xc2, 0xea, 0xda, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfc, 0x40, 0x18, 0x0f, 0xe4, 0x07, 0x42, 0xcf, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfc, 0x40, 0x58, 0x0f, 0xe4, 0x07, 0x42, 0xc5, 0x86, 0xb7, 0x75, 0x06, 0x8f, 0x0f, 0xda, 0x53, 0x3d, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x03, 0xa1, 0x63, 0x20, 0x3f, 0x10, 0x6a, 0x0e, 0x5e, 0xee, 0xf6, 0xdd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x1f, 0x08, 0x45, 0x03, 0xf9, 0x81, 0xd0, 0xb8, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x3f, 0x10, 0x9a, 0x06, 0xf2, 0x03, 0xa1, 0xec, 0xe0, 0xe5, 0x6e, 0xdf, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x7e, 0x20, 0xb4, 0x0d, 0xe4, 0x07, 0x42, 0xe1, 0x41, 0xe1, 0x65, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x90, 0x1f, 0x08, 0x95, 0x03, 0xf9, 0x81, 0xd0, 0xbd, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x20, 0x3f, 0x10, 0x3a, 0x07, 0xf2, 0x03, 0xa1, 0xf6, 0xa0, 0xf0, 0x32, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xf2, 0x03, 0xa1, 0x77, 0x20, 0x3f, 0x10, 0xaa, 0x0f, 0x4a, 0x3f, 0xe3, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfc, 0x40, 0x28, 0x1f, 0xc8, 0x0f, 0x84, 0xf6, 0x83, 0x82, 0x22, 0xb3, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x56, 0xc0, 0x0b, 0x1b, 0x5b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x38, 0x32, 0x84, 0x06, 0x5e, 0xd8, 0xd8, 0xda, 0x00, 0xf8, 0x03, 0xf7, 0x36, 0x97, 0x46, 0x97, 0x66, 0x57, 0x06, 0x12, 0x36, 0xb6, 0xc6, 0x02, 0xe2, 0x16, 0x36, 0xb6, 0x06, 0x02, 0x17, 0x36, 0xb6, 0x56, 0x46, 0xc7, 0x02, 0xf2, 0x26, 0x07, 0xe2, 0x16, 0x36, 0xb6, 0x06, 0x42, 0x27, 0x17, 0x36, 0x56, 0xb6, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x0f, 0x78, 0x61, 0x63, 0xeb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x11, 0x71, 0x03, 0xa7, 0x44, 0xfc, 0x06, 0x41, 0xfb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x11, 0x21, 0x19, 0xb8, 0x23, 0xc2, 0x60, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x1d, 0x11, 0xa2, 0x81, 0x3b, 0x22, 0xa4, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x0b, 0xfe, 0x6d, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0x88, 0x10, 0x0f, 0xdc, 0x11, 0x21, 0x3f, 0x08, 0xc1, 0x87, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x43, 0x22, 0x24, 0x03, 0x87, 0x44, 0x98, 0x6c, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x24, 0x42, 0x34, 0x70, 0x48, 0x84, 0x7c, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x81, 0xef, 0x16, 0x36, 0xb6, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x87, 0x44, 0x18, 0x0c, 0x1c, 0x12, 0x61, 0x71, 0x10, 0x82, 0x0f, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x97, 0x44, 0x48, 0x06, 0x2e, 0x89, 0xb0, 0xdf, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x49, 0x84, 0x68, 0xe0, 0x92, 0x08, 0xbb, 0x83, 0x97, 0xfe, 0x1f, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x97, 0x44, 0x18, 0x0e, 0x5c, 0x12, 0x61, 0xbe, 0xe1, 0xcf, 0xa5, 0x0d, 0x1e, 0xa5, 0x8f, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x97, 0x44, 0x58, 0x1e, 0xbc, 0xb9, 0x2b, 0xfc, 0xe0, 0xc5, 0xe5, 0x95, 0xb5, 0x1a, 0xac, 0x48, 0xf6, 0xd9, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xe0, 0xc8, 0x10, 0x7a, 0xb0, 0x22, 0xd9, 0xa7, 0x01, 0xf8, 0x0c, 0x03, 0x99, 0x63, 0x4b, 0x1b, 0x2b, 0x03, 0x79, 0x33, 0x03, 0x21, 0xc9, 0x7b, 0xbb, 0x63, 0x03, 0x31, 0x93, 0x0b, 0x3b, 0x6b, 0x2b, 0x73, 0xa3, 0x9b, 0xdb, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x58, 0x91, 0xec, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x87, 0x42, 0x98, 0x0d, 0x1c, 0x0a, 0xa1, 0x63, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xa1, 0x10, 0x76, 0x03, 0x87, 0x42, 0x18, 0x6f, 0xf8, 0x73, 0x69, 0x83, 0x26, 0xb9, 0xb9, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x50, 0x08, 0xdb, 0x83, 0x97, 0xb8, 0x85, 0x1f, 0x7e, 0xa8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0x85, 0xb0, 0x1e, 0x38, 0x14, 0x42, 0xc5, 0x86, 0x3f, 0x97, 0x36, 0x28, 0x0b, 0x8b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x50, 0x08, 0x0d, 0x07, 0x8f, 0xa0, 0x0b, 0x3f, 0xfc, 0x50, 0xd3, 0xac, 0xc1, 0x03, 0xe6, 0x87, 0x37, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x1e, 0x30, 0x3f, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc7, 0x48, 0xdc, 0xc0, 0x55, 0x12, 0xbf, 0xc1, 0x01, 0x42, 0x74, 0x83, 0x07, 0xcc, 0x0f, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x35, 0x12, 0x77, 0xf0, 0xfe, 0xbd, 0xf0, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd7, 0x48, 0x48, 0x06, 0xae, 0x91, 0x50, 0xbe, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x4f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x2c, 0x20, 0x73, 0x65, 0x6e, 0x74, 0x1b, 0xfe, 0x5c, 0xda, 0x60, 0x65, 0x50, 0xee, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x23, 0x21, 0x1d, 0xb8, 0x46, 0x42, 0xc3, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x23, 0x21, 0x1e, 0xb8, 0x46, 0xc2, 0x78, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x35, 0x12, 0xf2, 0x81, 0x6b, 0x24, 0x4c, 0x0e, 0x9e, 0xed, 0x66, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x23, 0x61, 0x33, 0x70, 0x8d, 0x84, 0xd9, 0x41, 0x99, 0xa5, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x23, 0x61, 0x37, 0x70, 0x8d, 0x84, 0xed, 0xc1, 0x9b, 0x7e, 0xaf, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xae, 0x91, 0xb0, 0x1e, 0xb8, 0x46, 0x42, 0xc1, 0xc1, 0x83, 0x12, 0x6d, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0x91, 0x90, 0x0c, 0x9c, 0x23, 0xa1, 0x7e, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xde, 0xe4, 0xca, 0xe2, 0xea, 0xca, 0xe6, 0xe8, 0x40, 0xe0, 0xc2, 0xc6, 0xd6, 0xca, 0xe8, 0xe6, 0x58, 0x40, 0xea, 0xdc, 0xe6, 0xca, 0xdc, 0xe8, 0x36, 0xfc, 0xb9, 0xb4, 0x41, 0xdb, 0x65, 0x9f, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x8e, 0x84, 0x74, 0xe0, 0x1c, 0x09, 0xc3, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x47, 0x42, 0x3c, 0x70, 0x8e, 0x84, 0xc9, 0x41, 0x48, 0x99, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe7, 0x48, 0xd8, 0x0c, 0x9c, 0x23, 0x61, 0xb7, 0xe1, 0xdf, 0xf9, 0x0d, 0x9e, 0xfb, 0x7b, 0x5d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x3d, 0x12, 0x92, 0x81, 0x7b, 0x24, 0x3c, 0xd8, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0x4f, 0xb9, 0xb2, 0x39, 0xb8, 0x37, 0xb7, 0xb9, 0x32, 0x10, 0xb8, 0xb0, 0xb1, 0xb5, 0x32, 0xba, 0x39, 0x16, 0x10, 0xb1, 0xb0, 0xb1, 0xb5, 0xbb, 0x30, 0x39, 0xb2, 0x0d, 0x7f, 0x2e, 0x6d, 0xd0, 0xde, 0x7d, 0xd6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x23, 0x21, 0x1d, 0xb8, 0x47, 0xc2, 0x70, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0x91, 0x10, 0x0f, 0xdc, 0x23, 0x61, 0x72, 0x10, 0x52, 0x26, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x3d, 0x12, 0x36, 0x03, 0xf7, 0x48, 0xd8, 0x6d, 0xf8, 0x77, 0x7e, 0x83, 0xc6, 0xc3, 0xb4, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x48, 0x42, 0x32, 0x70, 0x90, 0x84, 0xe9, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x91, 0x85, 0xf2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x24, 0x61, 0x77, 0xf0, 0x1a, 0xdd, 0xf0, 0x83, 0x32, 0x4b, 0x77, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x48, 0x42, 0x32, 0x70, 0x91, 0x84, 0xe5, 0x86, 0x3f, 0x97, 0x36, 0x78, 0xd8, 0x87, 0xf2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x24, 0x61, 0x76, 0xf0, 0x1a, 0xe0, 0xf0, 0x83, 0x32, 0x4b, 0x77, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x49, 0x42, 0x32, 0x70, 0x92, 0x84, 0xf5, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x18, 0x0c, 0xf2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x24, 0x61, 0x73, 0xf0, 0x1a, 0xe3, 0xf0, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x49, 0xc2, 0x68, 0xe0, 0x24, 0x09, 0xc3, 0x83, 0xb2, 0x09, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x49, 0xc2, 0x72, 0xe0, 0x24, 0x09, 0xe3, 0x83, 0x23, 0x5f, 0x6b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x4d, 0x12, 0x92, 0x81, 0x9b, 0x24, 0xac, 0x37, 0xfc, 0xb9, 0x34, 0x80, 0x07, 0x5b, 0xda, 0x1c, 0x5d, 0x99, 0x5b, 0x99, 0xdc, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x37, 0x49, 0xd8, 0x1c, 0x3c, 0x38, 0x3a, 0x7c, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0x92, 0x30, 0x1a, 0xb8, 0x49, 0xc2, 0xee, 0xa0, 0x44, 0x7c, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0x92, 0x30, 0x1c, 0xb8, 0x49, 0xc2, 0xf8, 0xe0, 0xe9, 0xe9, 0x1e, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x47, 0x49, 0x48, 0x06, 0x8e, 0x92, 0xb0, 0xde, 0xf0, 0xe7, 0xd2, 0x06, 0x6f, 0xb4, 0x42, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa3, 0x24, 0x2c, 0x0e, 0x9e, 0xe2, 0x1d, 0x7e, 0xf0, 0xf0, 0x2c, 0xe4, 0x0e, 0xa7, 0x58, 0x6b, 0xf0, 0x62, 0xc6, 0xe1, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x8e, 0x0c, 0xa1, 0x07, 0x2f, 0x66, 0x1c, 0x6e, 0x00, 0x3c, 0x15, 0x7b, 0x73, 0x2b, 0xe3, 0x69, 0xf1, 0x21, 0xab, 0x1b, 0xa3, 0x03, 0x11, 0x4b, 0x53, 0x2b, 0x1b, 0xa3, 0x4b, 0x7b, 0x73, 0x03, 0x09, 0x73, 0x23, 0x03, 0x71, 0x71, 0x2b, 0xc3, 0xa3, 0x6b, 0x11, 0x7b, 0x73, 0x2b, 0x03, 0xa1, 0x7b, 0x03, 0x69, 0x0b, 0x83, 0x03, 0xa1, 0x7b, 0x03, 0x09, 0x03, 0x21, 0xab, 0x1b, 0xa3, 0x57, 0x02, 0xe0, 0x03, 0x2a, 0xb4, 0x32, 0x10, 0xb3, 0x34, 0xb9, 0x39, 0x3a, 0x10, 0xb1, 0x37, 0xb7, 0x32, 0x90, 0xb4, 0x39, 0x10, 0x18, 0x17, 0x10, 0x2a, 0xb4, 0xb2, 0x3c, 0x90, 0x34, 0xb7, 0x31, 0xb9, 0xb2, 0xb6, 0x32, 0x37, 0x3a, 0x10, 0xb1, 0x3c, 0x10, 0x1a, 0x16, 0x90, 0xb9, 0x34, 0xb7, 0xb1, 0x32, 0x90, 0xb2, 0xb0, 0x31, 0x34, 0x10, 0x33, 0xb6, 0xb7, 0x3b, 0x90, 0x34, 0xb7, 0x31, 0xb6, 0x3a, 0xb2, 0xb2, 0x79, 0x09, 0xc0, 0xf3, 0x30, 0x10, 0xb1, 0x34, 0x3a, 0x10, 0xb3, 0x37, 0x39, 0x90, 0xb2, 0xb0, 0x31, 0x34, 0x90, 0xb6, 0xb2, 0xb9, 0xb9, 0xb0, 0xb3, 0x32, 0x10, 0xb2, 0x32, 0xba, 0x32, 0xb9, 0xb6, 0x34, 0xb7, 0x34, 0xb7, 0x33, 0x10, 0xb3, 0x37, 0xb9, 0xbb, 0x30, 0x39, 0x32, 0x10, 0xbb, 0x39, 0x17, 0x10, 0xb1, 0xb0, 0xb1, 0xb5, 0xbb, 0x30, 0x39, 0x32, 0x90, 0x30, 0x37, 0x32, 0x90, 0x70, 0x09, 0xc0, 0xfb, 0xb9, 0xb2, 0xb1, 0x37, 0x37, 0x32, 0x10, 0xb1, 0x34, 0x3a, 0x10, 0xb3, 0x37, 0x39, 0x90, 0x3b, 0xb4, 0x32, 0x3a, 0xb4, 0x32, 0x39, 0x10, 0x3a, 0xb4, 0x32, 0x90, 0xb6, 0xb2, 0xb9, 0xb9, 0xb0, 0xb3, 0x32, 0x90, 0xb4, 0x39, 0x90, 0x37, 0x37, 0x10, 0x3a, 0xb4, 0x32, 0x10, 0xb7, 0x37, 0xb9, 0xb6, 0x30, 0x36, 0x10, 0x33, 0xb6, 0xb7, 0x3b, 0x90, 0x37, 0x39, 0x10, 0x3a, 0xb4, 0x72, 0x09, 0x40, 0xbb, 0xb0, 0xb9, 0xb9, 0xb7, 0xb1, 0xb4, 0x30, 0xba, 0x32, 0x32, 0x10, 0xb2, 0xb4, 0xb0, 0x33, 0xb7, 0xb7, 0x39, 0xba, 0xb4, 0x31, 0x10, 0x33, 0xb6, 0xb7, 0x3b, 0x10, 0x14, 0xb3, 0x37, 0x39, 0x10, 0xb7, 0x30, 0x3c, 0x38, 0xb6, 0x30, 0xb7, 0x30, 0xba, 0xb4, 0x37, 0xb7, 0xb9, 0x14, 0xd7, 0x4a, 0x00, 0xfa, 0x50, 0xa1, 0x95, 0x81, 0xb0, 0x95, 0x85, 0xcd, 0xd1, 0x81, 0xcc, 0xa5, 0x9d, 0xb9, 0xa5, 0x99, 0xa5, 0x8d, 0x85, 0xb9, 0xd1, 0x81, 0x88, 0xa5, 0xd1, 0x81, 0xbc, 0x99, 0x81, 0x84, 0x81, 0x90, 0x88, 0xbd, 0xb9, 0x95, 0x81, 0xa4, 0xcd, 0xe9, 0x25, 0x00, 0x4f, 0x63, 0x40, 0xd2, 0xcc, 0x40, 0x44, 0xcc, 0xde, 0xe4, 0xee, 0xc2, 0xe4, 0xc8, 0x44, 0x58, 0x40, 0xd2, 0x5c, 0xca, 0x5c, 0x40, 0xee, 0xca, 0x40, 0xe6, 0xca, 0xdc, 0xc8, 0x40, 0x4a, 0xe0, 0xd8, 0xca, 0xc2, 0x4e, 0xe6, 0x40, 0xde, 0xdc, 0x40, 0xe8, 0xd0, 0xd2, 0xe6, 0x40, 0xcc, 0xd8, 0xde, 0xee, 0x58, 0x40, 0xde, 0xe4, 0x25, 0x00, 0x5d, 0x61, 0x40, 0xd2, 0xcc, 0x40, 0x44, 0xc4, 0xc2, 0xc6, 0xd6, 0xee, 0xc2, 0xe4, 0xc8, 0x44, 0x58, 0x40, 0xd2, 0x5c, 0xca, 0x5c, 0x40, 0xee, 0xca, 0x40, 0xe4, 0xca, 0xc6, 0xca, 0xd2, 0xec, 0xca, 0x40, 0x4a, 0xe0, 0xd8, 0xca, 0xc2, 0x4e, 0xe6, 0x40, 0xde, 0xdc, 0x40, 0xe8, 0xd0, 0xd2, 0xe6, 0x40, 0xcc, 0xd8, 0xde, 0xee, 0x5c, 0x2b, 0x01, 0xf8, 0x4a, 0x85, 0x56, 0x06, 0x32, 0x57, 0x36, 0xf6, 0xe6, 0x46, 0xd6, 0xc2, 0x56, 0x16, 0x36, 0x47, 0x07, 0x32, 0x97, 0x76, 0xe6, 0x96, 0x66, 0x96, 0x36, 0x16, 0xe6, 0x46, 0x07, 0x22, 0x96, 0x46, 0x07, 0x92, 0x36, 0x07, 0x12, 0x03, 0x92, 0x66, 0x06, 0x42, 0x87, 0x56, 0x06, 0x22, 0xf6, 0xe6, 0x56, 0x06, 0x92, 0x36, 0x07, 0x12, 0x2e, 0x01, 0xf8, 0xea, 0x16, 0x86, 0x07, 0xc7, 0x16, 0xe6, 0x16, 0x46, 0x97, 0xf6, 0xe6, 0x06, 0x22, 0xf6, 0xe6, 0x56, 0xc6, 0x02, 0x12, 0xe6, 0x46, 0x06, 0x02, 0x03, 0xf2, 0x46, 0x87, 0x56, 0x26, 0x77, 0x97, 0x36, 0x57, 0xe6, 0x02, 0x02, 0xf2, 0xe4, 0xc6, 0x96, 0x07, 0xe2, 0x16, 0x86, 0x07, 0xc7, 0x16, 0xe6, 0x16, 0x46, 0x97, 0xf6, 0xe6, 0x2e, 0x01, 0xe8, 0xdb, 0x56, 0x36, 0x37, 0x17, 0x76, 0x56, 0x36, 0x07, 0x32, 0x16, 0xe6, 0x06, 0x22, 0x56, 0x06, 0x32, 0x57, 0xe6, 0x46, 0x07, 0xf2, 0xe6, 0x06, 0x12, 0x06, 0xe2, 0x16, 0x86, 0x07, 0xc7, 0x16, 0xe6, 0x16, 0x46, 0x97, 0xf6, 0xe6, 0x06, 0x22, 0xf6, 0xe6, 0x56, 0xc6, 0x02, 0x12, 0x36, 0x07, 0x52, 0x22, 0xf6, 0xf6, 0xe6, 0x76, 0x32, 0xe7, 0x6a, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0xc5, 0x8c, 0xc3, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xcf, 0xc4, 0x0d, 0x9c, 0x34, 0xf1, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0x99, 0x90, 0x0c, 0xdc, 0x33, 0x61, 0xb3, 0xe1, 0xcf, 0xa5, 0x01, 0x3c, 0xdc, 0xca, 0xf0, 0xe8, 0x5a, 0xc4, 0xde, 0xdc, 0xca, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x67, 0x42, 0x7e, 0xf0, 0x46, 0x1d, 0xf1, 0x83, 0x67, 0xe6, 0x84, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x07, 0x4d, 0x48, 0x06, 0x0e, 0x9a, 0x50, 0xb0, 0xe1, 0xcf, 0xa5, 0x01, 0x5e, 0xb1, 0xbc, 0x16, 0xb2, 0xba, 0x31, 0x7a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0x9a, 0xb0, 0x38, 0x78, 0x5a, 0x90, 0xf8, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x34, 0x61, 0x32, 0x70, 0xd0, 0x84, 0xd5, 0x41, 0x89, 0x58, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x34, 0x61, 0x36, 0x70, 0xd0, 0x84, 0xe9, 0xc1, 0xd3, 0xd3, 0x3d, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x83, 0x26, 0x6c, 0x07, 0x0e, 0x9a, 0xb0, 0x3f, 0x78, 0x66, 0x4e, 0x48, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x45, 0x13, 0x92, 0x81, 0x8b, 0x26, 0x14, 0x6c, 0xf8, 0x73, 0x69, 0x80, 0x57, 0x2c, 0xaf, 0x45, 0xec, 0xcd, 0xad, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x8b, 0x26, 0x2c, 0x0e, 0x1e, 0x06, 0x25, 0xbe, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x17, 0x4d, 0x98, 0x0c, 0x5c, 0x34, 0x61, 0x75, 0x50, 0x22, 0xd6, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x17, 0x4d, 0x98, 0x0d, 0x5c, 0x34, 0x61, 0x7a, 0xf0, 0xcc, 0x9c, 0x90, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xa2, 0x09, 0xdb, 0x81, 0x8b, 0x26, 0xec, 0x0f, 0x9e, 0x9e, 0xee, 0x51, 0xb3, 0x06, 0xef, 0x4f, 0xc8, 0xde, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xe0, 0xc8, 0x10, 0x7a, 0xf0, 0xfe, 0x84, 0xec, 0x06, 0xe0, 0x41, 0xae, 0x6c, 0x0e, 0xee, 0xcd, 0x6d, 0xae, 0x0c, 0xc4, 0x4c, 0x2e, 0xec, 0xac, 0xad, 0xcc, 0x8d, 0x6e, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0xfd, 0x09, 0xd9, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xa1, 0xc4, 0x0d, 0x1c, 0x29, 0xf1, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2e, 0x94, 0x90, 0x0c, 0x5c, 0x28, 0x61, 0xbf, 0xe1, 0x89, 0xf7, 0x0d, 0x5e, 0xc5, 0xf7, 0xb9, 0xe1, 0xcf, 0xa5, 0x0d, 0x12, 0x13, 0x8f, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x42, 0x09, 0xe9, 0xc0, 0x85, 0x12, 0x06, 0x07, 0xc7, 0x96, 0xd2, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x44, 0x09, 0xc9, 0xc0, 0x89, 0x12, 0x9a, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0xc5, 0xad, 0xae, 0x4d, 0xac, 0x4c, 0x0e, 0xe4, 0xcd, 0x0c, 0xc4, 0x4c, 0x2e, 0xec, 0xac, 0xad, 0xcc, 0x8d, 0x6e, 0x6e, 0xc3, 0x9f, 0x4b, 0x1b, 0x34, 0xfa, 0x47, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x27, 0x4a, 0x48, 0x07, 0x4e, 0x94, 0x30, 0x38, 0x28, 0xb3, 0x74, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1b, 0x25, 0x24, 0x03, 0x37, 0x4a, 0x98, 0x6f, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xf0, 0x8f, 0xbd, 0xb9, 0xd1, 0x95, 0xb9, 0xd1, 0xcd, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0xa2, 0xb6, 0x78, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0x94, 0x90, 0x0e, 0xdc, 0x28, 0x61, 0x70, 0x70, 0x6c, 0x29, 0x6d, 0x35, 0x78, 0x81, 0x3a, 0xd0, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0x47, 0x86, 0xd0, 0x83, 0x17, 0xa8, 0x03, 0x35, 0x00, 0x9e, 0x84, 0xc1, 0xc1, 0xb1, 0xa5, 0x8d, 0x85, 0xd1, 0xa5, 0xbd, 0xb9, 0xb5, 0xb0, 0x95, 0xd9, 0x95, 0xb1, 0x81, 0xb4, 0x95, 0xcd, 0xcd, 0x85, 0x9d, 0x95, 0xb1, 0x80, 0x84, 0xcd, 0x81, 0x84, 0x81, 0x94, 0xc0, 0x85, 0xcd, 0xcd, 0x2b, 0x01, 0x78, 0x62, 0x17, 0xe6, 0x56, 0xa6, 0x03, 0x42, 0x56, 0x36, 0x47, 0x97, 0xe6, 0x16, 0x46, 0x97, 0xf6, 0xe6, 0x06, 0x62, 0x17, 0xe6, 0x56, 0x06, 0xf2, 0xe6, 0x06, 0x22, 0x57, 0xd6, 0xf6, 0x46, 0x57, 0x06, 0x32, 0x87, 0x96, 0x06, 0x2f, 0x01, 0xf8, 0x04, 0x17, 0x46, 0x87, 0xa6, 0x03, 0x92, 0xe6, 0x46, 0x57, 0x26, 0xe7, 0x16, 0xc6, 0x06, 0x22, 0xf7, 0x56, 0x47, 0x57, 0x06, 0xf2, 0xe6, 0x06, 0x42, 0x87, 0x56, 0x06, 0x22, 0x57, 0x36, 0x56, 0x96, 0x66, 0x97, 0xe6, 0x76, 0x06, 0x32, 0x87, 0x96, 0x06, 0x2f, 0x01, 0xf8, 0x00, 0x17, 0x96, 0xc7, 0xf6, 0x16, 0x46, 0xa6, 0x03, 0x32, 0x57, 0xd6, 0x16, 0xe6, 0x46, 0x97, 0x36, 0x06, 0xd2, 0x56, 0x36, 0x37, 0x17, 0x76, 0x56, 0x06, 0x32, 0xf6, 0xe6, 0x46, 0x57, 0xe6, 0x46, 0x37, 0xd7, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0x0b, 0xd4, 0x81, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xec, 0x87, 0x74, 0xa0, 0xec, 0x87, 0xa2, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x65, 0x3f, 0xc4, 0x03, 0x65, 0x3f, 0xec, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0x03, 0xc2, 0x3d, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xec, 0x87, 0xcd, 0xc1, 0xcb, 0x37, 0xc5, 0x0f, 0xce, 0x9b, 0xa7, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xd9, 0x0f, 0xc3, 0x81, 0xb2, 0x1f, 0xd6, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x60, 0xfa, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x65, 0x3f, 0x2c, 0x0f, 0x1e, 0x1e, 0x2a, 0x7e, 0x70, 0x46, 0x42, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xca, 0x7e, 0x98, 0x0f, 0x94, 0xfd, 0xd0, 0xb3, 0xe1, 0xcf, 0xa5, 0x0d, 0x9a, 0xd0, 0xbe, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb2, 0x1f, 0x6a, 0x0e, 0xde, 0x7c, 0x2a, 0x7e, 0x10, 0xa6, 0x63, 0x1d, 0x4e, 0xb1, 0xd6, 0x20, 0x58, 0x96, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xce, 0x8e, 0x1b, 0xb8, 0xbe, 0xe3, 0x37, 0x28, 0x59, 0xd8, 0x67, 0x99, 0x05, 0x9e, 0xac, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x93, 0x3b, 0x7e, 0xe0, 0xf8, 0x0e, 0x15, 0x1b, 0x7e, 0x51, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xee, 0x90, 0x0d, 0x9c, 0xdc, 0x61, 0xb1, 0xe1, 0xcf, 0xa5, 0xc1, 0xc3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xb9, 0x43, 0x7a, 0xf0, 0x46, 0x5a, 0xf1, 0x83, 0x22, 0x2c, 0x76, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xee, 0xf8, 0x83, 0x67, 0xc7, 0x8a, 0x6f, 0x50, 0x90, 0xc6, 0xae, 0xe1, 0xfb, 0xf6, 0xc1, 0xc5, 0x0d, 0x4a, 0xe8, 0xd8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xe6, 0x0e, 0xe9, 0xc0, 0xcd, 0x1d, 0x86, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xee, 0x10, 0x0f, 0xdc, 0xdc, 0x61, 0x72, 0xf8, 0x76, 0x7e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xb9, 0xc3, 0x66, 0xe0, 0xe6, 0x0e, 0xbb, 0xc3, 0x03, 0xf8, 0x1d, 0x84, 0xe9, 0xd8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x73, 0x87, 0xe9, 0xc0, 0xcd, 0x1d, 0x7a, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xdc, 0x61, 0x3b, 0x70, 0x73, 0x87, 0xf1, 0xe1, 0xc1, 0x9b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xe6, 0x0e, 0xeb, 0x81, 0x9b, 0x3b, 0xd4, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xb9, 0xc3, 0x7c, 0xe0, 0xe6, 0x0e, 0x0d, 0x07, 0x0b, 0x38, 0xe1, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9b, 0x3b, 0x54, 0x0c, 0xdc, 0xdc, 0xa1, 0xe3, 0xf0, 0xb4, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x73, 0x87, 0x92, 0x81, 0x9b, 0x3b, 0xb4, 0x1c, 0x1e, 0xbc, 0xa9, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xba, 0xe3, 0x0f, 0x9e, 0x1d, 0x2b, 0xbe, 0xe1, 0x17, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xe8, 0x0e, 0xd9, 0xc0, 0xd1, 0x1d, 0x06, 0x1b, 0xfe, 0x5c, 0xda, 0xa0, 0xa8, 0x2d, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa3, 0x3b, 0xe4, 0x07, 0xef, 0xcc, 0x16, 0x3f, 0xfc, 0x50, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x57, 0x77, 0xfc, 0xc1, 0xb3, 0x63, 0xc5, 0x37, 0xfc, 0x45, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xdd, 0x21, 0x1b, 0xb8, 0xba, 0xc3, 0x8b, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x57, 0x77, 0x08, 0x07, 0xae, 0xee, 0x50, 0xbd, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xea, 0x0e, 0xe9, 0xc0, 0xd5, 0x1d, 0x36, 0x1b, 0xfe, 0x5c, 0xda, 0xa0, 0xed, 0xb2, 0xcf, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xba, 0xc3, 0xe2, 0xe0, 0x7d, 0xe7, 0xe2, 0x07, 0x2f, 0xaf, 0xca, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xae, 0xee, 0x30, 0x1a, 0xb8, 0xba, 0x43, 0xd9, 0x86, 0x3f, 0x97, 0x36, 0x68, 0x7c, 0x3e, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xae, 0xee, 0x30, 0x3c, 0x78, 0x64, 0xbb, 0xf8, 0x06, 0xc1, 0x66, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xdd, 0x61, 0x3a, 0x70, 0x75, 0x87, 0xfd, 0xc1, 0x1b, 0x70, 0x81, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xab, 0x3b, 0x14, 0x0c, 0x5c, 0xdd, 0xa1, 0xe5, 0xe0, 0xc9, 0xd8, 0xc0, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xd5, 0x1d, 0x6a, 0x06, 0xae, 0xee, 0xd0, 0x75, 0xf0, 0x44, 0x64, 0xcc, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xab, 0x3b, 0xb4, 0x0d, 0x5c, 0xdd, 0xa1, 0x72, 0xc3, 0x9f, 0x4b, 0x03, 0x1e, 0xda, 0x1b, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x57, 0x77, 0x68, 0x3c, 0x78, 0x0b, 0xbf, 0xf8, 0xe1, 0x87, 0x9a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xea, 0x0e, 0x9d, 0x03, 0x57, 0x77, 0x68, 0xde, 0xf0, 0xe7, 0xd2, 0x06, 0x6d, 0xcd, 0x16, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xd5, 0x1d, 0x7a, 0x0f, 0x5e, 0x22, 0x30, 0x7e, 0x70, 0x46, 0xbd, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xba, 0x43, 0xf7, 0xc0, 0xd5, 0x1d, 0xfa, 0x0f, 0xdf, 0xce, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x57, 0x77, 0x38, 0x30, 0x70, 0x75, 0x87, 0x13, 0x87, 0x07, 0xf0, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb3, 0x3b, 0xfe, 0xe0, 0xd9, 0xb1, 0xe2, 0x1b, 0x14, 0x1d, 0xb4, 0x83, 0x8f, 0x1b, 0x3e, 0x0f, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xee, 0x90, 0x0c, 0xdc, 0xdd, 0xe1, 0xc4, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbb, 0x3b, 0x44, 0x03, 0x77, 0x77, 0x58, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xbb, 0x43, 0x36, 0x70, 0x77, 0x87, 0xf8, 0xe0, 0xfd, 0xb5, 0xd9, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xdd, 0x1d, 0xf2, 0x81, 0xbb, 0x3b, 0x0c, 0x0e, 0xef, 0x05, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x77, 0x77, 0x58, 0x0c, 0xdc, 0xdd, 0x61, 0x74, 0x50, 0xfa, 0x19, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xdd, 0x61, 0x36, 0x70, 0x77, 0x87, 0x0f, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xee, 0xb0, 0x1b, 0xb8, 0xbb, 0xc3, 0x78, 0xc3, 0xe7, 0x2e, 0x1b, 0x1c, 0x33, 0x3c, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xee, 0x0e, 0xdb, 0x83, 0xc7, 0x85, 0x8c, 0x1f, 0x04, 0x2c, 0xeb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x77, 0x87, 0xf5, 0xc0, 0xdd, 0x1d, 0x2a, 0x36, 0x7c, 0xee, 0xb2, 0x41, 0xdb, 0x65, 0x9f, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x77, 0x87, 0x86, 0x83, 0x77, 0x9d, 0x8c, 0x1f, 0x04, 0x2c, 0xeb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x77, 0x87, 0x8e, 0x81, 0xbb, 0x3b, 0x14, 0x6d, 0xf8, 0xdc, 0x65, 0x83, 0xc5, 0x9d, 0xd9, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x77, 0x87, 0x9e, 0x83, 0x87, 0xb5, 0x8c, 0x1f, 0x14, 0x95, 0xe2, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xdd, 0x1d, 0x9a, 0x06, 0xee, 0xee, 0x50, 0xb7, 0xe1, 0x73, 0x97, 0x0d, 0x56, 0x87, 0xdc, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xdd, 0x1d, 0xda, 0x0e, 0x9e, 0x36, 0x33, 0x7e, 0x10, 0xb0, 0xac, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xdd, 0x1d, 0xfa, 0x06, 0xee, 0xee, 0x50, 0xba, 0xe1, 0x73, 0x97, 0x01, 0x0f, 0xed, 0x0d, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbb, 0x3b, 0x74, 0x1e, 0x3c, 0x2d, 0x67, 0xfc, 0xa0, 0xa8, 0x14, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xee, 0xd0, 0x3a, 0x70, 0x77, 0x87, 0xee, 0x0d, 0x9f, 0xbb, 0x6c, 0xd0, 0xd6, 0x6c, 0xe1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xdd, 0xa1, 0xf9, 0xe0, 0x75, 0x3f, 0xe3, 0x07, 0x69, 0x2a, 0xae, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xdd, 0x1d, 0xca, 0x07, 0xee, 0xee, 0x70, 0x61, 0xc3, 0xe7, 0x2e, 0x1b, 0xac, 0x63, 0x46, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbb, 0x3b, 0x1c, 0x38, 0x78, 0x62, 0xd1, 0xf8, 0x41, 0xea, 0x69, 0x6c, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xe1, 0x1d, 0x7f, 0xf0, 0xec, 0x58, 0xf1, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xf0, 0x0e, 0xd9, 0xc0, 0xe1, 0x1d, 0x56, 0x1b, 0xfe, 0xcd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0xef, 0x90, 0x0e, 0x1c, 0xde, 0x21, 0x3e, 0x3c, 0x78, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x87, 0x77, 0xc8, 0x07, 0x0e, 0xef, 0x30, 0xda, 0xf0, 0xb6, 0xce, 0x06, 0xc7, 0x0c, 0xcf, 0xc3, 0x3f, 0x3c, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x79, 0xc7, 0x1f, 0x3c, 0x3b, 0x56, 0x7c, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xbc, 0x43, 0x36, 0x70, 0x79, 0x87, 0xd5, 0x86, 0x7f, 0x73, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xcb, 0x3b, 0xa4, 0x03, 0x97, 0x77, 0x88, 0x0f, 0x8f, 0xc9, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xe5, 0x1d, 0xf2, 0x81, 0xcb, 0x3b, 0x8c, 0x36, 0xbc, 0xad, 0xb3, 0xc1, 0xe2, 0xce, 0xec, 0xc3, 0x3f, 0x3c, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x7a, 0xc7, 0x1f, 0x3c, 0x3b, 0x56, 0x7c, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xbd, 0x43, 0x36, 0x70, 0x7a, 0x87, 0xfd, 0x86, 0x7f, 0x73, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd3, 0x3b, 0xa4, 0x03, 0xa7, 0x77, 0x18, 0x6e, 0xf8, 0x11, 0x66, 0xe0, 0xeb, 0xf0, 0xc0, 0x07, 0x10, 0x00, 0x3f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xf4, 0x0e, 0xcb, 0x81, 0xd3, 0x3b, 0xcc, 0x37, 0xbc, 0xad, 0xb3, 0xc1, 0x3a, 0x66, 0xd4, 0xc3, 0x3f, 0x3c, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x7b, 0xc7, 0x1f, 0x3c, 0x3b, 0x56, 0x7c, 0x83, 0x82, 0x34, 0x76, 0x83, 0xc6, 0xe7, 0xa3, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xdb, 0x3b, 0x0c, 0x06, 0x6e, 0xef, 0xf0, 0x60, 0x83, 0x93, 0x83, 0xdc, 0x1a, 0xac, 0x0e, 0xb9, 0x3f, 0xfc, 0xc3, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xde, 0x61, 0x39, 0x70, 0x7b, 0x87, 0xed, 0x41, 0x78, 0xaa, 0xae, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xde, 0x61, 0x3c, 0x70, 0x7b, 0x87, 0x82, 0x83, 0xc7, 0x1f, 0xfe, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xed, 0x1d, 0x1a, 0x06, 0x6e, 0xef, 0x50, 0x73, 0xf0, 0x32, 0x26, 0xea, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xdb, 0x3b, 0x14, 0x0d, 0xdc, 0xde, 0xa1, 0xed, 0xe0, 0xb9, 0x8d, 0xbf, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x7b, 0x87, 0xba, 0x81, 0xdb, 0x3b, 0x74, 0x1e, 0xbc, 0x02, 0x87, 0x7a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xf6, 0x0e, 0xad, 0x03, 0xb7, 0x77, 0xa8, 0x3e, 0x78, 0xe3, 0xe4, 0xef, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xde, 0xa1, 0x7b, 0xe0, 0xf6, 0x0e, 0x07, 0x0e, 0x5e, 0x4d, 0x47, 0xdd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xdf, 0xf1, 0x07, 0xcf, 0x8e, 0x15, 0xdf, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x7c, 0x87, 0x60, 0xe0, 0xf8, 0x0e, 0xfb, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc7, 0x77, 0x48, 0x06, 0x8e, 0xef, 0x10, 0x6f, 0x78, 0x5b, 0x67, 0x83, 0xb6, 0xcb, 0x3e, 0x0f, 0xff, 0xf0, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc7, 0x77, 0xc8, 0x07, 0x8e, 0xef, 0x30, 0x39, 0x68, 0x91, 0x39, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xbe, 0xc3, 0x66, 0xe0, 0xf8, 0x0e, 0xc3, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x68, 0x6f, 0xf0, 0xe1, 0x1f, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xf8, 0x0e, 0xcb, 0x81, 0xe3, 0x3b, 0xcc, 0x37, 0xbc, 0xad, 0xb3, 0x41, 0x5b, 0xb3, 0x85, 0x87, 0x7f, 0x78, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0xef, 0x50, 0x30, 0x70, 0x7c, 0x87, 0x86, 0xc3, 0x7b, 0x41, 0xcd, 0x02, 0x5f, 0xe6, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xa5, 0x1d, 0x3f, 0x70, 0x6f, 0x87, 0xfe, 0x0d, 0xbf, 0x28, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x97, 0x76, 0xc8, 0x06, 0x2e, 0xed, 0xd0, 0xbc, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xd2, 0x0e, 0xe1, 0xc0, 0xa5, 0x1d, 0x26, 0x1b, 0xfe, 0x5c, 0xda, 0xa0, 0xed, 0xb2, 0xcf, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xb4, 0xc3, 0xe0, 0xe0, 0x3d, 0xa6, 0xe3, 0x07, 0x2f, 0xaf, 0xca, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2e, 0xed, 0xb0, 0x19, 0xb8, 0xb4, 0x43, 0xd7, 0x86, 0x3f, 0x97, 0x36, 0x68, 0x7c, 0x3e, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2e, 0xed, 0xb0, 0x3b, 0x78, 0x14, 0xeb, 0xf8, 0x06, 0xc1, 0x66, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xda, 0x61, 0x39, 0x70, 0x69, 0x87, 0xf9, 0xc1, 0x1b, 0x70, 0x81, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4b, 0x3b, 0xec, 0x07, 0x2e, 0xed, 0x50, 0x72, 0xf0, 0x64, 0x6c, 0xe0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xd2, 0x0e, 0x2d, 0x03, 0x97, 0x76, 0xa8, 0x3a, 0x78, 0x22, 0x32, 0x66, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xa5, 0x1d, 0xca, 0x06, 0x2e, 0xed, 0xd0, 0xb8, 0xe1, 0xcf, 0xa5, 0x01, 0x0f, 0xed, 0x0d, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4b, 0x3b, 0x14, 0x1e, 0x3c, 0x5d, 0x77, 0xfc, 0xf0, 0x43, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x69, 0x87, 0xca, 0x81, 0x4b, 0x3b, 0x14, 0x6f, 0xf8, 0x73, 0x69, 0x83, 0xb6, 0x66, 0x0b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xd2, 0x0e, 0xb5, 0x07, 0x0f, 0x07, 0x1e, 0x3f, 0x38, 0xa3, 0xde, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa7, 0x76, 0xfc, 0xc1, 0xab, 0x41, 0xc7, 0x37, 0xfc, 0x45, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0xda, 0x21, 0x1b, 0x38, 0xb5, 0x43, 0x7e, 0xf0, 0xb0, 0x98, 0xd1, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xb5, 0xe3, 0x0f, 0x5e, 0x0d, 0x3a, 0xbe, 0x41, 0x41, 0x1a, 0xbb, 0xc1, 0xea, 0x90, 0xfb, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xd6, 0x0e, 0x83, 0x81, 0x5b, 0x3b, 0x34, 0x6f, 0x10, 0xa4, 0xa7, 0x1b, 0x34, 0xd6, 0x9c, 0xb5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x6b, 0x87, 0xdd, 0xc0, 0xad, 0x1d, 0xc6, 0x07, 0x6f, 0xc0, 0x05, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5b, 0x3b, 0xac, 0x07, 0x6e, 0xed, 0x50, 0x70, 0xf0, 0x30, 0x28, 0xf0, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5b, 0x3b, 0x54, 0x0c, 0xdc, 0xda, 0xa1, 0xe7, 0xe0, 0xc9, 0xd8, 0xc0, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x6b, 0x87, 0xa2, 0x81, 0x5b, 0x3b, 0x94, 0x1d, 0x3c, 0x8e, 0x07, 0x7c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xd6, 0x0e, 0x75, 0x03, 0xb7, 0x76, 0xe8, 0x3c, 0x78, 0x22, 0x32, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xda, 0xa1, 0x74, 0xe0, 0xd6, 0x0e, 0xc5, 0x07, 0xaf, 0x0e, 0x03, 0x6f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0xed, 0xf8, 0x83, 0x57, 0x83, 0x8e, 0x6f, 0x50, 0xf4, 0xe9, 0x6e, 0xf0, 0xcc, 0x17, 0xea, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xd8, 0x0e, 0x83, 0x81, 0x63, 0x3b, 0x6c, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xdb, 0x61, 0x31, 0x70, 0x6c, 0x87, 0xd1, 0x41, 0xba, 0xc4, 0xd8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x6c, 0x87, 0xd5, 0xc0, 0xb1, 0x1d, 0x66, 0x07, 0xe7, 0x05, 0x9a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xd8, 0x0e, 0xbb, 0x81, 0x63, 0x3b, 0x4c, 0x0f, 0xde, 0xf2, 0x42, 0xdd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xdb, 0xf1, 0x07, 0xaf, 0x06, 0x1d, 0xdf, 0x60, 0xa5, 0x8b, 0xd3, 0x06, 0xab, 0x98, 0x51, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x6b, 0x3b, 0x0c, 0x06, 0xae, 0xed, 0x50, 0xb0, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xda, 0x0e, 0x8b, 0x81, 0x6b, 0x3b, 0x6c, 0x0e, 0x52, 0x4f, 0x63, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x6b, 0x3b, 0x8c, 0x06, 0xae, 0xed, 0xb0, 0x3f, 0x78, 0x33, 0xda, 0x78, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x6e, 0xc7, 0x1f, 0xbc, 0x1a, 0x74, 0x7c, 0x83, 0xc2, 0x50, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xb7, 0x43, 0x36, 0x70, 0x6e, 0x87, 0xc5, 0x86, 0xcf, 0x5d, 0x36, 0x7c, 0x47, 0xbf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe7, 0x76, 0x18, 0x1c, 0xbc, 0x1a, 0x80, 0xfc, 0xf0, 0xe0, 0xcd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xdb, 0xf1, 0x07, 0xaf, 0x06, 0x1d, 0xdf, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x6f, 0x87, 0x60, 0xe0, 0xde, 0x0e, 0xe9, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x7b, 0x3b, 0x24, 0x03, 0xf7, 0x76, 0x88, 0x0e, 0x02, 0x96, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xb7, 0x43, 0x36, 0x70, 0x6f, 0x87, 0xf0, 0xf0, 0xe0, 0x4d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xbd, 0x1d, 0xe2, 0x81, 0x7b, 0x3b, 0xac, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xdb, 0x21, 0x1f, 0xb8, 0xb7, 0xc3, 0xe0, 0x20, 0x60, 0x59, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x7b, 0x3b, 0x2c, 0x06, 0xee, 0xed, 0x30, 0x3a, 0x68, 0x18, 0xfd, 0xb4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xde, 0x0e, 0xb3, 0x81, 0x7b, 0x3b, 0xec, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xdb, 0x61, 0x37, 0x70, 0x6f, 0x87, 0xe1, 0x41, 0x51, 0x29, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xdb, 0x61, 0x39, 0x70, 0x6f, 0x87, 0xf9, 0x86, 0xcf, 0x5d, 0x36, 0x58, 0xdc, 0x99, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf7, 0x76, 0x58, 0x1f, 0xbc, 0xde, 0x83, 0xfc, 0xf0, 0x98, 0x4c, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xbd, 0x1d, 0x0a, 0x06, 0xee, 0xed, 0xd0, 0xb3, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xde, 0x0e, 0x0d, 0x03, 0xf7, 0x76, 0xa8, 0x38, 0x08, 0x58, 0xd6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xde, 0x0e, 0x1d, 0x03, 0xf7, 0x76, 0xa8, 0x39, 0x58, 0x00, 0x72, 0xdf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x6f, 0x87, 0xa2, 0x81, 0x7b, 0x3b, 0xf4, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xb7, 0x43, 0xd3, 0xc0, 0xbd, 0x1d, 0xaa, 0x0e, 0x8a, 0x4a, 0xf1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xde, 0x0e, 0x5d, 0x03, 0xf7, 0x76, 0xa8, 0x3b, 0x78, 0xcb, 0x0b, 0x75, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xbd, 0x1d, 0x0a, 0x07, 0xee, 0xed, 0x50, 0xbc, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xde, 0x0e, 0x8d, 0x03, 0xf7, 0x76, 0xe8, 0x3c, 0x48, 0x53, 0x71, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xed, 0x50, 0x3a, 0x70, 0x6f, 0x87, 0xde, 0x83, 0xb6, 0x83, 0x0b, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xed, 0xd0, 0x3c, 0x70, 0x6f, 0x87, 0xf2, 0x83, 0xa5, 0xca, 0xa8, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xbd, 0x1d, 0xda, 0x07, 0xee, 0xed, 0x50, 0x7f, 0x50, 0x50, 0x64, 0x76, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x5b, 0x00, 0xbf, 0xb6, 0xb2, 0xb9, 0xb0, 0x96, 0xb6, 0xb2, 0xb9, 0xb9, 0xb0, 0xb3, 0x72, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0x01, 0x43, 0xe4, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x8c, 0xc6, 0x0d, 0x5c, 0xa3, 0x61, 0xbf, 0x41, 0xa8, 0x21, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc7, 0x68, 0x48, 0x06, 0x8e, 0xd1, 0x30, 0xdb, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x8c, 0x86, 0x68, 0xe0, 0x18, 0x0d, 0xf9, 0x86, 0x37, 0xee, 0x0e, 0x1e, 0xb5, 0x3d, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xa3, 0x61, 0x30, 0x70, 0x8c, 0x86, 0xd5, 0x06, 0x85, 0x60, 0xea, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xa3, 0x61, 0x71, 0xf0, 0x3a, 0x28, 0xf2, 0x83, 0x37, 0xb9, 0x1f, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd7, 0x68, 0xdc, 0xc1, 0x9b, 0x8f, 0xc8, 0x37, 0x58, 0xaf, 0x52, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xa3, 0x21, 0x18, 0xb8, 0x46, 0xc3, 0x6c, 0x83, 0x60, 0x33, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xae, 0xd1, 0x10, 0x0d, 0x5c, 0xa3, 0x21, 0x3f, 0x78, 0xbc, 0xf6, 0xe0, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x8d, 0x86, 0xc1, 0xc0, 0x35, 0x1a, 0x56, 0x07, 0xcf, 0xef, 0xc4, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xae, 0xd1, 0xb0, 0x1b, 0xb8, 0x46, 0xc3, 0xfc, 0xe0, 0x79, 0x5a, 0xc7, 0xab, 0xc1, 0xd3, 0xe4, 0x99, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x38, 0x32, 0x84, 0x1e, 0x3c, 0x4d, 0x9e, 0xb9, 0x01, 0xf0, 0x00, 0x2e, 0x2c, 0x4d, 0x0e, 0xe4, 0xcd, 0x0c, 0x64, 0xae, 0xcc, 0x8d, 0xac, 0x4c, 0x0e, 0x24, 0xcc, 0x8d, 0x0c, 0x44, 0xae, 0x6c, 0xac, 0x2c, 0xcd, 0xae, 0x4c, 0x0e, 0x64, 0x0e, 0x2d, 0x0d, 0x6e, 0x6e, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0x69, 0xf2, 0xcc, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x2e, 0x84, 0x74, 0xe0, 0x5c, 0x08, 0x15, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0x85, 0x10, 0x0f, 0x9c, 0x0b, 0x61, 0xb7, 0xe1, 0xcf, 0xa5, 0x0d, 0x5e, 0x7b, 0xe4, 0xbb, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe7, 0x42, 0xd8, 0x1c, 0xbc, 0xe5, 0x8d, 0xfc, 0xa0, 0x6d, 0xeb, 0xf1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x5c, 0x08, 0xc3, 0x81, 0x73, 0x21, 0x34, 0x6c, 0xf8, 0x73, 0x69, 0x83, 0xe7, 0x8d, 0xfa, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb9, 0x10, 0xd6, 0x07, 0x0f, 0xaa, 0x23, 0x3f, 0x68, 0xdb, 0x7a, 0xbc, 0xc3, 0x29, 0xd6, 0x1a, 0xbc, 0x44, 0x0a, 0x79, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xe0, 0x25, 0x52, 0xc8, 0x0d, 0xc0, 0x4f, 0x5e, 0xd9, 0x1c, 0x48, 0x9a, 0x19, 0x48, 0x18, 0x48, 0xda, 0x1c, 0x88, 0x58, 0x99, 0xd9, 0x9b, 0x5c, 0x19, 0x88, 0xd8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x48, 0x71, 0x03, 0x77, 0x52, 0x28, 0xda, 0xf0, 0x8b, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x20, 0x85, 0x64, 0xe0, 0x40, 0x0a, 0x75, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0xa4, 0x10, 0x0d, 0x1c, 0x48, 0x61, 0xbb, 0xe1, 0xcf, 0xa5, 0xc1, 0xc3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x90, 0x42, 0x78, 0xf0, 0x36, 0x43, 0xf2, 0x0d, 0xff, 0xce, 0x6f, 0xf0, 0x20, 0x24, 0xe4, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x03, 0x29, 0x8c, 0x07, 0x0e, 0xa4, 0xd0, 0xb6, 0xe1, 0xcf, 0xa5, 0xc1, 0xc5, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x90, 0xc2, 0xfc, 0xe0, 0xa9, 0x8c, 0xe4, 0x07, 0x0f, 0x4f, 0x24, 0x6f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2e, 0xa4, 0xb8, 0x83, 0x17, 0x04, 0x92, 0x6f, 0xf8, 0x8b, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x90, 0x42, 0x32, 0x70, 0x21, 0x85, 0xe8, 0xf0, 0xc1, 0xea, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x48, 0x71, 0x07, 0x2f, 0x08, 0x24, 0xdf, 0xf0, 0x41, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x23, 0x85, 0x64, 0xe0, 0x46, 0x0a, 0x55, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xa4, 0x10, 0x0d, 0xdc, 0x48, 0x21, 0x3d, 0x7c, 0x71, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x48, 0x21, 0x1e, 0xb8, 0x91, 0xc2, 0x76, 0xc3, 0xdb, 0x3a, 0x1b, 0xbc, 0xe9, 0x78, 0xf8, 0xf0, 0xe0, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x23, 0x85, 0xf1, 0xc0, 0x8d, 0x14, 0x9a, 0x36, 0xbc, 0xad, 0xb3, 0xc1, 0x9b, 0x8e, 0x87, 0x0f, 0x9f, 0x07, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x49, 0xf1, 0x03, 0x47, 0x52, 0x88, 0x0e, 0x56, 0x81, 0xc9, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x95, 0x14, 0x77, 0xf0, 0x82, 0x40, 0xf2, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x57, 0x52, 0x48, 0x06, 0xae, 0xa4, 0x50, 0xb5, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x4a, 0x0a, 0xd1, 0xc0, 0x95, 0x14, 0xd2, 0xc3, 0x37, 0x8a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x95, 0x14, 0xe2, 0x81, 0x2b, 0x29, 0x6c, 0x0f, 0x9e, 0x03, 0x4a, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x49, 0x61, 0x3c, 0x70, 0x25, 0x85, 0xa6, 0x83, 0xa7, 0x8f, 0x92, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x49, 0xf1, 0x03, 0x67, 0x52, 0x88, 0x0e, 0x96, 0x39, 0xc9, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x9d, 0x14, 0x77, 0xf0, 0x82, 0x40, 0xf2, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x77, 0x52, 0xec, 0xc0, 0x9d, 0x14, 0x92, 0xc3, 0x17, 0xbf, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x9d, 0x14, 0xa2, 0x81, 0x3b, 0x29, 0x0c, 0x37, 0xbc, 0xad, 0xb3, 0xc1, 0xbb, 0x35, 0x94, 0x0f, 0x0f, 0xee, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x77, 0x52, 0x58, 0x0e, 0xdc, 0x49, 0xa1, 0x67, 0xc3, 0xdb, 0x3a, 0x1b, 0xbc, 0x5b, 0x43, 0xf9, 0xf0, 0x79, 0x50, 0xab, 0xc1, 0x6b, 0x51, 0xbb, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xcc, 0x8b, 0x1b, 0x38, 0xf7, 0xc2, 0x97, 0x0d, 0xbf, 0x28, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x67, 0x5e, 0x48, 0x06, 0xce, 0xbc, 0x10, 0x6f, 0xf8, 0x73, 0x69, 0x83, 0xe5, 0x34, 0xd0, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xe6, 0x85, 0xe8, 0xe0, 0x09, 0xca, 0xe4, 0x07, 0x6f, 0xb6, 0xc7, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x3b, 0x2f, 0xee, 0xe0, 0x51, 0xc7, 0xe4, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xbc, 0x90, 0x0c, 0xdc, 0x79, 0x61, 0xb6, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xce, 0x0b, 0xd1, 0xc0, 0x9d, 0x17, 0xf2, 0x0d, 0x7f, 0x2e, 0x6d, 0x70, 0x16, 0x32, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x3b, 0x2f, 0xc4, 0x07, 0xef, 0xaa, 0x26, 0x3f, 0xfc, 0x50, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x79, 0x61, 0x30, 0x70, 0xe7, 0x85, 0xd5, 0x86, 0x3f, 0x97, 0x36, 0x78, 0xa6, 0x01, 0xf1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x79, 0x61, 0x71, 0xf0, 0x9a, 0x6d, 0xf2, 0x83, 0x27, 0xce, 0x1e, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x87, 0x5e, 0xdc, 0xc1, 0xa3, 0x8e, 0xc9, 0x37, 0x7c, 0x62, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x7a, 0x21, 0x19, 0x38, 0xf4, 0xc2, 0x7e, 0xc3, 0xe7, 0x2e, 0x1b, 0x34, 0xfa, 0x47, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x87, 0x5e, 0x48, 0x0f, 0x1e, 0x3f, 0x4e, 0xbe, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xd0, 0x0b, 0xf1, 0xc0, 0xa1, 0x17, 0x16, 0x07, 0x25, 0xd1, 0xec, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xe8, 0x85, 0xc9, 0xc0, 0xa1, 0x17, 0x36, 0x07, 0x45, 0xa5, 0xf8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xe8, 0x85, 0xd1, 0xc0, 0xa1, 0x17, 0x96, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0xbd, 0xb0, 0x1a, 0x38, 0xf4, 0xc2, 0xec, 0xf0, 0xe0, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xe8, 0x85, 0xdd, 0xc0, 0xa1, 0x17, 0x86, 0x07, 0xa7, 0xe6, 0xb6, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x43, 0x2f, 0x4c, 0x07, 0x0e, 0xbd, 0x30, 0x3f, 0x68, 0xed, 0xc3, 0xa0, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xf4, 0xe2, 0x0e, 0x1e, 0x75, 0x4c, 0xbe, 0xe1, 0x13, 0x9b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xd2, 0x0b, 0xc9, 0xc0, 0xa5, 0x17, 0xf6, 0x1b, 0x3e, 0x77, 0xd9, 0xa0, 0x2c, 0x2c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4b, 0x2f, 0xa4, 0x07, 0xef, 0xe7, 0x27, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xe9, 0x85, 0x78, 0xe0, 0xd2, 0x0b, 0x8b, 0x83, 0x92, 0x68, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xf4, 0xc2, 0x64, 0xe0, 0xd2, 0x0b, 0x9b, 0x83, 0xa2, 0x52, 0x7c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xf4, 0xc2, 0x68, 0xe0, 0xd2, 0x0b, 0xcb, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x97, 0x5e, 0x58, 0x0d, 0x5c, 0x7a, 0x61, 0x76, 0x70, 0x6a, 0x6e, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2e, 0xbd, 0xb0, 0x1b, 0xb8, 0xf4, 0xc2, 0xf0, 0x20, 0x60, 0x59, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2e, 0xbd, 0x30, 0x1d, 0xb8, 0xf4, 0xc2, 0xfc, 0xa0, 0xb5, 0x0f, 0x83, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xd4, 0x8b, 0x3b, 0x78, 0xd4, 0x31, 0xf9, 0x86, 0x4f, 0x6c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x53, 0x2f, 0x24, 0x03, 0xa7, 0x5e, 0x68, 0xd8, 0xf0, 0xb9, 0xcb, 0x06, 0x8b, 0x84, 0x67, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xd4, 0x0b, 0xe9, 0xc1, 0x0b, 0x2c, 0xca, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x7a, 0x21, 0x1e, 0x38, 0xf5, 0xc2, 0xe2, 0xa0, 0x24, 0x9a, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xbd, 0x30, 0x19, 0x38, 0xf5, 0xc2, 0xe6, 0xa0, 0xa8, 0x14, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xbd, 0x30, 0x1a, 0x38, 0xf5, 0xc2, 0x76, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xa9, 0x17, 0x56, 0x03, 0xa7, 0x5e, 0x98, 0x1d, 0x1c, 0x97, 0x67, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x53, 0x2f, 0xec, 0x06, 0x4e, 0xbd, 0x30, 0x3d, 0x28, 0xbc, 0x8c, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xbd, 0x30, 0x1e, 0x38, 0xf5, 0x42, 0xc1, 0x41, 0x6b, 0x1f, 0x06, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xad, 0x17, 0x77, 0xf0, 0xa8, 0x63, 0xf2, 0x0d, 0x96, 0xd4, 0x2f, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb7, 0x5e, 0x48, 0x06, 0x6e, 0xbd, 0x30, 0xd8, 0xf0, 0xb9, 0xcb, 0x06, 0x8b, 0x84, 0x67, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xd6, 0x0b, 0xe9, 0xc1, 0x93, 0x5e, 0xca, 0x0f, 0xda, 0xee, 0xcb, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x63, 0x2f, 0xee, 0xe0, 0x51, 0xc7, 0xe4, 0x1b, 0x14, 0x86, 0xaa, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb1, 0x17, 0x92, 0x81, 0x63, 0x2f, 0x8c, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x7b, 0x21, 0x1a, 0x38, 0xf6, 0x42, 0x7a, 0xf8, 0x13, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xf6, 0x42, 0x3c, 0x70, 0xec, 0x85, 0xfc, 0xe0, 0xb8, 0x3c, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x7b, 0x61, 0x30, 0x70, 0xec, 0x85, 0xcd, 0x41, 0xe1, 0x65, 0xdc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x7b, 0x71, 0x07, 0x8f, 0x3a, 0x26, 0xdf, 0x60, 0x49, 0x75, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xed, 0x85, 0x64, 0xe0, 0xda, 0x0b, 0xe1, 0x41, 0x23, 0x94, 0x84, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xee, 0xc5, 0x1d, 0x3c, 0xea, 0x98, 0x7c, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb9, 0x17, 0x3b, 0x70, 0xee, 0x85, 0xe8, 0x60, 0xc1, 0x0e, 0xfa, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xee, 0x85, 0x6c, 0xe0, 0xdc, 0x0b, 0xf1, 0x41, 0xdb, 0x7d, 0x99, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb9, 0x17, 0xf2, 0x81, 0x73, 0x2f, 0x5c, 0xd9, 0x60, 0x85, 0x50, 0xd3, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xee, 0x85, 0xc9, 0xc0, 0xb9, 0x17, 0x66, 0x07, 0x6b, 0xc7, 0x41, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x73, 0x2f, 0xec, 0x06, 0xce, 0xbd, 0x30, 0x3d, 0x58, 0x60, 0x67, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x7b, 0x61, 0x3b, 0x70, 0xee, 0x85, 0x27, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0xbd, 0x30, 0x1e, 0x38, 0xf7, 0x42, 0xc1, 0xc1, 0x9a, 0xd9, 0xd0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xdc, 0x0b, 0x0d, 0x03, 0xe7, 0x5e, 0x28, 0x39, 0x58, 0x60, 0x67, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x7b, 0xa1, 0x65, 0xe0, 0xdc, 0x0b, 0x47, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x7b, 0xa1, 0x66, 0xe0, 0xdc, 0x0b, 0x55, 0x07, 0xcb, 0x2a, 0x41, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x73, 0x2f, 0x74, 0x0d, 0x9c, 0x7b, 0xa1, 0xef, 0x60, 0x39, 0xb2, 0xf0, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xee, 0x85, 0xc2, 0x81, 0x73, 0x2f, 0xfc, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xee, 0x85, 0xc6, 0x81, 0x73, 0x2f, 0xb4, 0x1e, 0x2c, 0x54, 0x0c, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0xbd, 0x50, 0x3b, 0x70, 0xee, 0x85, 0x1b, 0x1b, 0xac, 0x10, 0x6a, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0xbd, 0xd0, 0x3c, 0x70, 0xee, 0x85, 0xf6, 0x83, 0x65, 0xc7, 0xa0, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb9, 0x17, 0xea, 0x07, 0xce, 0xbd, 0xf0, 0xe0, 0x60, 0x81, 0x9d, 0xe9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xee, 0x85, 0x0b, 0x03, 0xe7, 0x5e, 0x78, 0x71, 0xb0, 0x4e, 0x1a, 0xb4, 0xaa, 0x56, 0x83, 0x66, 0xf0, 0xad, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x38, 0x32, 0x84, 0x1e, 0x34, 0x83, 0x6f, 0xd5, 0x00, 0xf8, 0x4b, 0x56, 0x66, 0x56, 0x26, 0x27, 0x57, 0x46, 0x06, 0x52, 0x12, 0xd6, 0x56, 0x36, 0x07, 0x32, 0x16, 0xc6, 0xc6, 0xc6, 0x02, 0x62, 0x26, 0xf7, 0xd6, 0x06, 0x32, 0x57, 0xc6, 0x66, 0xc6, 0x02, 0x42, 0xf7, 0x06, 0xb2, 0x56, 0x56, 0x06, 0x07, 0xb2, 0x12, 0x26, 0x56, 0x46, 0x07, 0x32, 0xf6, 0x26, 0x57, 0x36, 0x07, 0x02, 0x57, 0x27, 0x57, 0xb6, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xd0, 0x0c, 0xbe, 0xd5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x01, 0x71, 0x03, 0xc7, 0x40, 0xfc, 0x06, 0x41, 0xfb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x01, 0x21, 0x19, 0x38, 0x03, 0x42, 0xd5, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x33, 0x20, 0x44, 0x03, 0x67, 0x40, 0xc8, 0x0f, 0x9e, 0x25, 0x15, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x01, 0x61, 0x30, 0x70, 0x06, 0x84, 0xd5, 0x86, 0x3f, 0x97, 0x36, 0x68, 0xfa, 0x7a, 0x7c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0x80, 0xb0, 0x38, 0x78, 0x95, 0x63, 0xf9, 0x41, 0xdb, 0xd6, 0xe3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x19, 0x10, 0x66, 0x03, 0x67, 0x40, 0x28, 0xd8, 0xf0, 0xe7, 0xd2, 0x00, 0x1e, 0x6e, 0x61, 0x63, 0x6b, 0x2d, 0x62, 0x6f, 0x6e, 0xe5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x01, 0x61, 0x7c, 0xf0, 0x32, 0xca, 0xf2, 0x83, 0x67, 0xe6, 0x84, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x67, 0x40, 0x68, 0x18, 0x38, 0x03, 0x42, 0xd3, 0x86, 0x3f, 0x97, 0x36, 0x78, 0xbd, 0xd6, 0xf1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x01, 0xa1, 0xe2, 0xe0, 0x51, 0x9b, 0xe5, 0x07, 0xcf, 0xd3, 0x3a, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x03, 0x42, 0x32, 0x70, 0x07, 0x84, 0x1b, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0x80, 0x10, 0x0d, 0xdc, 0x01, 0x21, 0xdf, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0xaa, 0xc1, 0xfe, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x0e, 0x08, 0x83, 0x81, 0x3b, 0x20, 0xac, 0x36, 0xfc, 0xb9, 0xb4, 0x41, 0xd3, 0xd7, 0xe3, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x07, 0x84, 0xc5, 0xc1, 0x83, 0x4f, 0xcb, 0x0f, 0xda, 0xb6, 0x1e, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0x80, 0x30, 0x1b, 0xb8, 0x03, 0x42, 0xc5, 0x86, 0x3f, 0x97, 0x06, 0xf0, 0xa2, 0x0b, 0x93, 0x3b, 0x2b, 0xa3, 0x6b, 0x11, 0x7b, 0x73, 0x2b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x0e, 0x08, 0xf3, 0x83, 0x47, 0xb7, 0x96, 0x1f, 0x3c, 0x33, 0x27, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x03, 0x42, 0xc7, 0xc0, 0x1d, 0x10, 0x5e, 0x6c, 0xf8, 0x73, 0x69, 0x83, 0xc7, 0x01, 0x20, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x1d, 0x10, 0x0a, 0x0f, 0xde, 0x4f, 0x5b, 0xbe, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x0e, 0x08, 0x8d, 0x03, 0x77, 0x40, 0x68, 0xdf, 0xf0, 0xe7, 0xd2, 0x06, 0x6f, 0x3a, 0x1e, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x3b, 0x20, 0x54, 0x1e, 0xbc, 0x60, 0xb7, 0xfc, 0xe0, 0x29, 0xcb, 0xc3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x1d, 0x10, 0xea, 0x07, 0xee, 0x80, 0x70, 0x62, 0xc3, 0x9f, 0x4b, 0x1b, 0x3c, 0x4a, 0x1f, 0x6f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0x80, 0xd0, 0x7f, 0xf0, 0x94, 0xe0, 0xf2, 0x83, 0x17, 0x97, 0x57, 0xd6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x08, 0x84, 0x64, 0xe0, 0x10, 0x08, 0x75, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0x81, 0x10, 0x0d, 0x1c, 0x02, 0x21, 0x3f, 0x78, 0xae, 0x9d, 0xe0, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x08, 0x84, 0xc1, 0xc0, 0x21, 0x10, 0x56, 0x1b, 0xfe, 0x5c, 0xda, 0xa0, 0xe9, 0xeb, 0xf1, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x04, 0xc2, 0xe2, 0xe0, 0xdd, 0xcc, 0xe5, 0x07, 0x6d, 0x5b, 0x8f, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x87, 0x40, 0x98, 0x0d, 0x1c, 0x02, 0xa1, 0x60, 0xc3, 0x9f, 0x4b, 0x1b, 0xbc, 0xac, 0xb2, 0x7c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0x81, 0x30, 0x3e, 0x78, 0xbb, 0x74, 0xf9, 0xc1, 0x33, 0x73, 0x42, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x43, 0x20, 0x34, 0x0c, 0x1c, 0x02, 0xa1, 0x6d, 0xc3, 0x9f, 0x4b, 0x1b, 0xbc, 0xe9, 0x78, 0x78, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0x81, 0x50, 0x71, 0xf0, 0x86, 0xec, 0xf2, 0x83, 0xa7, 0x2c, 0x0f, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x02, 0x21, 0x19, 0xb8, 0x04, 0xc2, 0x78, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x25, 0x10, 0xa2, 0x81, 0x4b, 0x20, 0xe4, 0x07, 0xcf, 0x1d, 0x4d, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2e, 0x81, 0x30, 0x18, 0xb8, 0x04, 0xc2, 0x6a, 0xc3, 0x9f, 0x4b, 0x1b, 0x34, 0x7d, 0x3d, 0xbe, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x97, 0x40, 0x58, 0x1c, 0x3c, 0x96, 0xbc, 0xfc, 0xa0, 0x6d, 0xeb, 0xf1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x12, 0x08, 0xb3, 0x81, 0x4b, 0x20, 0x6c, 0x37, 0xfc, 0xb9, 0xb4, 0xc1, 0x2b, 0x74, 0x42, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x12, 0x08, 0xbb, 0x83, 0x07, 0xab, 0x97, 0x1f, 0x3c, 0x33, 0x27, 0xa4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x14, 0x08, 0xc9, 0xc0, 0x29, 0x10, 0xc6, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0x81, 0x10, 0x0d, 0x9c, 0x02, 0x21, 0xdf, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0x5d, 0xe0, 0xaf, 0xa5, 0xb1, 0xb1, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x29, 0x10, 0x06, 0x03, 0xa7, 0x40, 0x58, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0xa6, 0xaf, 0xc7, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x14, 0x08, 0x8b, 0x83, 0x17, 0xdd, 0x97, 0x1f, 0xb4, 0x6d, 0x3d, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x02, 0x61, 0x36, 0x70, 0x0a, 0x84, 0xed, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x85, 0x4e, 0xc8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x02, 0x61, 0x77, 0xf0, 0xaa, 0xfe, 0xf2, 0x83, 0x67, 0xe6, 0x84, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x02, 0x21, 0x19, 0xb8, 0x05, 0xc2, 0x78, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x2d, 0x10, 0xa2, 0x81, 0x5b, 0x20, 0xe4, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x0b, 0xfc, 0x30, 0xb4, 0xb7, 0x7c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x05, 0xc2, 0x60, 0xe0, 0x16, 0x08, 0xab, 0x0d, 0x7f, 0x2e, 0x6d, 0xd0, 0xf4, 0xf5, 0xf8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x02, 0x61, 0x71, 0xf0, 0xec, 0x04, 0xf3, 0x83, 0xb6, 0xad, 0xc7, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5b, 0x20, 0xcc, 0x06, 0x6e, 0x81, 0xb0, 0xdd, 0xf0, 0xe7, 0xd2, 0x06, 0xaf, 0xd0, 0x09, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5b, 0x20, 0xec, 0x0e, 0x9e, 0xfe, 0x60, 0x7e, 0xf0, 0xcc, 0x9c, 0x90, 0x3a, 0x9c, 0x62, 0x2d, 0xe0, 0x93, 0xa5, 0xc9, 0x95, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xef, 0xa5, 0x30, 0x6f, 0x00, 0x34, 0x9e, 0x4b, 0x23, 0x2b, 0x03, 0x79, 0x33, 0x03, 0xa1, 0x43, 0x2b, 0x03, 0x31, 0x63, 0x7b, 0xbb, 0x03, 0x41, 0x29, 0x11, 0x0b, 0x5b, 0xd3, 0x01, 0x29, 0x11, 0x7b, 0x7b, 0x73, 0x03, 0x99, 0x2b, 0x73, 0x23, 0x2b, 0x93, 0xdb, 0x01, 0x29, 0x31, 0x7b, 0x93, 0xd3, 0x01, 0x29, 0x81, 0x63, 0x2b, 0x0b, 0x03, 0x99, 0x2b, 0x73, 0x23, 0x2b, 0x93, 0x4b, 0x6d, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xbc, 0x97, 0xc2, 0x7c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0xc9, 0x30, 0x1b, 0x38, 0x27, 0x43, 0xc5, 0x06, 0xc1, 0x66, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x93, 0x61, 0x38, 0x70, 0x4e, 0x86, 0xf1, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x02, 0x4f, 0x2c, 0x6c, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0xc9, 0xb0, 0x1e, 0x38, 0x27, 0x43, 0xc3, 0xc1, 0xd3, 0x03, 0x9e, 0x3b, 0x9c, 0x62, 0x6b, 0xf0, 0x30, 0xd0, 0xe3, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0x87, 0x81, 0x1e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x61, 0x19, 0x37, 0x70, 0x5c, 0xc6, 0x6f, 0x70, 0x80, 0x10, 0xdd, 0xe0, 0x61, 0xa0, 0xc7, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x59, 0xc6, 0x1d, 0xbc, 0xae, 0xc5, 0x7c, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x65, 0x19, 0x92, 0x81, 0xcb, 0x32, 0x54, 0x6e, 0xf8, 0x73, 0x69, 0x80, 0x07, 0xee, 0x6d, 0xad, 0x6c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xcb, 0x32, 0xe4, 0x07, 0x0f, 0x9b, 0x31, 0xdf, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xcb, 0x32, 0x0c, 0x06, 0x2e, 0xcb, 0x30, 0x3a, 0x08, 0x29, 0x93, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xb2, 0x0c, 0xab, 0x81, 0xcb, 0x32, 0x34, 0x6e, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x2c, 0xc3, 0x6c, 0xe0, 0xb2, 0x0c, 0xdb, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x32, 0x75, 0x8f, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x2c, 0xc3, 0xee, 0xe0, 0x19, 0x3f, 0xe6, 0x07, 0x4f, 0x4f, 0xf7, 0x58, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2e, 0xcb, 0x30, 0x1e, 0xb8, 0x2c, 0x43, 0xe1, 0x86, 0x3f, 0x97, 0x36, 0x78, 0xbd, 0xd6, 0xf1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x96, 0xa1, 0xe4, 0xe0, 0x31, 0x45, 0xe6, 0x1b, 0xfe, 0x9d, 0x5f, 0x83, 0x07, 0x0c, 0x91, 0x57, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa7, 0x65, 0x48, 0x06, 0x4e, 0xcb, 0x30, 0xdf, 0xf0, 0xe7, 0xd2, 0x00, 0x0f, 0x5c, 0x59, 0xd9, 0xda, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa7, 0x65, 0xc8, 0x0f, 0x9e, 0xbe, 0x64, 0xbe, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa7, 0x65, 0x18, 0x0c, 0x9c, 0x96, 0x61, 0x73, 0xf0, 0x6e, 0xaa, 0xc9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xb4, 0x0c, 0xa3, 0x81, 0xd3, 0x32, 0x0c, 0x0f, 0xce, 0x48, 0xa8, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x69, 0x19, 0x96, 0x03, 0xa7, 0x65, 0x58, 0x1f, 0x3c, 0x3d, 0xdd, 0xa3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xb6, 0x0c, 0xc9, 0xc0, 0x6d, 0x19, 0xe6, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0xfd, 0xc6, 0xc9, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x5b, 0x86, 0xfc, 0xe0, 0x9d, 0x5a, 0xe6, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x5b, 0x86, 0xc1, 0xc0, 0x6d, 0x19, 0x36, 0x07, 0xef, 0xa6, 0x9a, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xcb, 0x30, 0x1a, 0xb8, 0x2d, 0xc3, 0xf0, 0xe0, 0x8c, 0x84, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x96, 0x61, 0x39, 0x70, 0x5b, 0x86, 0xf5, 0xc1, 0xd3, 0xd3, 0x3d, 0x6a, 0x16, 0xc0, 0xaf, 0xad, 0x6c, 0x6e, 0x2e, 0xec, 0xac, 0xac, 0x45, 0x8c, 0xed, 0x4d, 0xdc, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x78, 0xde, 0x99, 0xf9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x06, 0x61, 0x36, 0x70, 0x1b, 0x84, 0x92, 0x0d, 0x5f, 0xd4, 0x6c, 0xa8, 0xe3, 0x01, 0x9e, 0x75, 0x64, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x62, 0x6c, 0x6f, 0xe2, 0x2c, 0x80, 0x17, 0x5b, 0x9a, 0x5d, 0x59, 0x0b, 0x5c, 0xd8, 0xd8, 0x5a, 0x19, 0xbd, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0xce, 0x37, 0xf3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xa5, 0xe2, 0x06, 0x8e, 0xa9, 0xf8, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa7, 0x54, 0x48, 0x06, 0x4e, 0xa9, 0x30, 0xde, 0xf0, 0xe7, 0xd2, 0x06, 0x45, 0xeb, 0xc9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x52, 0x21, 0x3d, 0x78, 0xba, 0x9d, 0xf9, 0xc1, 0xc3, 0x13, 0xc9, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x5b, 0x2a, 0x24, 0x03, 0xb7, 0x54, 0x18, 0x6f, 0xf8, 0x73, 0x69, 0x83, 0xb3, 0xc9, 0xd5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x52, 0x21, 0x3d, 0x78, 0x39, 0x9f, 0xf9, 0x86, 0x7f, 0xe7, 0x37, 0x78, 0x49, 0x13, 0x72, 0xcd, 0x1a, 0xbc, 0x29, 0x72, 0x64, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x36, 0x78, 0xe6, 0xb8, 0xdd, 0x00, 0x7e, 0x6a, 0x6f, 0x62, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6d, 0x65, 0xf3, 0x4a, 0x80, 0x77, 0x53, 0xd9, 0xdc, 0x5c, 0xd8, 0x59, 0x9a, 0xdb, 0x19, 0x08, 0x55, 0xd8, 0xdc, 0xda, 0xdc, 0x4a, 0x00, 0x6f, 0x25, 0x68, 0x65, 0x61, 0x72, 0x3a, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x75, 0x6e, 0x69, 0xf8, 0x12, 0xc0, 0x53, 0x09, 0x59, 0x59, 0x98, 0x9c, 0x0e, 0x08, 0x5b, 0x98, 0x5b, 0x19, 0x88, 0x99, 0xdc, 0x5b, 0x1b, 0x48, 0x9d, 0x5b, 0x1a, 0xbe, 0x04, 0xe0, 0x49, 0xc9, 0xd8, 0x9b, 0xdc, 0x9a, 0x0e, 0x88, 0x5c, 0x59, 0x5c, 0x5d, 0xd9, 0x1c, 0x1d, 0x08, 0xdd, 0x1b, 0x08, 0x59, 0x19, 0x5b, 0x19, 0x5d, 0x19, 0x48, 0x5b, 0xd9, 0xdc, 0x5c, 0xd8, 0x59, 0x19, 0x88, 0x19, 0xdb, 0xdb, 0xbd, 0x04, 0xe0, 0x4d, 0x09, 0x5d, 0x58, 0x5b, 0x99, 0x0e, 0x88, 0x5c, 0x59, 0x5c, 0x5d, 0xd9, 0x1c, 0x1d, 0x08, 0xdd, 0x1b, 0x08, 0x59, 0x19, 0x5b, 0x19, 0x5d, 0x19, 0x88, 0xdc, 0x5b, 0x1d, 0x5d, 0x19, 0x88, 0xd9, 0x9b, 0x1c, 0xc8, 0x1c, 0x5a, 0x1a, 0xbc, 0x04, 0xc0, 0x03, 0x25, 0x6b, 0x72, 0x6f, 0x63, 0x3a, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x20, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x2c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x62, 0x6f, 0x6e, 0x65, 0xf3, 0x12, 0xc0, 0x77, 0x09, 0x1c, 0x5b, 0x59, 0x98, 0x0e, 0x88, 0x5c, 0x59, 0x5c, 0x5d, 0xd9, 0x1c, 0x1d, 0x08, 0xdd, 0x1b, 0xc8, 0x5c, 0x99, 0x1b, 0x19, 0x48, 0x5b, 0xd9, 0xdc, 0x5c, 0xd8, 0x59, 0xb9, 0x04, 0xe0, 0x55, 0x09, 0x59, 0x59, 0x19, 0x9c, 0x0e, 0x08, 0x59, 0x99, 0x59, 0x99, 0x9c, 0x5c, 0x19, 0x19, 0xc8, 0x58, 0x18, 0x1b, 0xdb, 0x1c, 0x08, 0xdd, 0x1b, 0x48, 0x49, 0x58, 0x5b, 0xd9, 0x1c, 0x0b, 0x88, 0x99, 0xdc, 0x5b, 0x1b, 0x48, 0x1a, 0xdd, 0x5c, 0x19, 0x9b, 0xb9, 0x04, 0xe0, 0x57, 0xc9, 0x1c, 0x5d, 0x9d, 0x9b, 0x0e, 0xc8, 0x14, 0x55, 0x95, 0x13, 0x88, 0x5c, 0xd9, 0x1c, 0xdc, 0x9b, 0xdb, 0x5c, 0x19, 0x08, 0xca, 0x9b, 0x1c, 0x88, 0x59, 0x58, 0x1a, 0x5b, 0x9d, 0x5c, 0x59, 0x0a, 0x0b, 0x88, 0x99, 0xdc, 0x5b, 0x1b, 0x48, 0x9d, 0x5b, 0x1a, 0xde, 0x4a, 0x00, 0x0f, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x20, 0x53, 0x63, 0x72, 0x79, 0x20, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x2b, 0x01, 0xf8, 0x53, 0xb2, 0x56, 0x56, 0xe6, 0xa6, 0x03, 0x02, 0x57, 0x56, 0xb6, 0xa6, 0x03, 0xb2, 0x35, 0x87, 0x96, 0x06, 0x07, 0xf2, 0x62, 0x17, 0xe6, 0x56, 0xf6, 0x32, 0x16, 0x26, 0x57, 0xf6, 0x32, 0x16, 0x36, 0x57, 0xf6, 0x32, 0x07, 0x57, 0x27, 0xd7, 0x2d, 0x01, 0xbc, 0x97, 0xe4, 0x85, 0xdd, 0xb9, 0xe9, 0x80, 0x8c, 0x85, 0xb9, 0x8d, 0x95, 0xb1, 0x81, 0xc8, 0x95, 0xc5, 0xd5, 0x95, 0xcd, 0xd1, 0x81, 0x98, 0xc9, 0xbd, 0xb5, 0x81, 0x84, 0xc9, 0xd9, 0xbd, 0x4b, 0x00, 0x9e, 0x95, 0xdc, 0xa1, 0x85, 0xb5, 0xe9, 0x80, 0x8c, 0x85, 0xb9, 0x8d, 0x95, 0xb1, 0xcd, 0x81, 0x84, 0xb1, 0xb1, 0x81, 0xcc, 0x8d, 0xc9, 0xe5, 0x81, 0xc8, 0x95, 0xc5, 0xd5, 0x95, 0xcd, 0xd1, 0x81, 0x98, 0xc9, 0xbd, 0xb5, 0x81, 0x84, 0xb9, 0xe5, 0x81, 0xd8, 0x85, 0xb9, 0x95, 0xad, 0x04, 0xf0, 0x39, 0x95, 0x37, 0x47, 0x57, 0xd6, 0x06, 0x12, 0xe6, 0x46, 0x06, 0xc2, 0x94, 0x66, 0x56, 0x36, 0x96, 0x37, 0xc6, 0x56, 0x06, 0x42, 0x15, 0x36, 0xb7, 0x36, 0xb7, 0x12, 0x80, 0x17, 0x25, 0x62, 0x6f, 0x72, 0x6e, 0x3a, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0xee, 0x12, 0xe0, 0x5f, 0x92, 0xe6, 0x96, 0x46, 0xa7, 0x03, 0x62, 0x17, 0xe6, 0x56, 0x06, 0x22, 0xf6, 0xf6, 0x46, 0x2f, 0x01, 0x78, 0x5e, 0x02, 0x27, 0xf7, 0x46, 0xa6, 0x03, 0x22, 0x57, 0xd6, 0x32, 0x57, 0xe6, 0x46, 0x06, 0x12, 0x06, 0x02, 0x17, 0x36, 0xb6, 0x56, 0x46, 0x07, 0x02, 0x57, 0x26, 0x07, 0x62, 0xc6, 0xf6, 0x76, 0xc7, 0x02, 0x42, 0xf7, 0x06, 0x12, 0xc6, 0xc6, 0x06, 0x02, 0x57, 0x56, 0x26, 0x37, 0x07, 0x92, 0x66, 0x06, 0xe2, 0x32, 0x87, 0x96, 0x06, 0x37, 0x07, 0x92, 0x36, 0x07, 0xe2, 0x2f, 0x01, 0xfc, 0x97, 0xcc, 0xa5, 0x99, 0xd1, 0xe9, 0x80, 0xb0, 0xa5, 0xb5, 0xa5, 0xd1, 0x81, 0xd8, 0x95, 0xc9, 0x89, 0xbd, 0xcd, 0xa5, 0xd1, 0xe5, 0x81, 0xd0, 0xbd, 0x81, 0xb8, 0xcc, 0xa1, 0xa5, 0xc1, 0xcd, 0x4b, 0x00, 0x9e, 0x94, 0xcc, 0xb9, 0xd5, 0x89, 0xe9, 0x80, 0xcc, 0x95, 0xd1, 0x81, 0xc0, 0x85, 0x8d, 0xad, 0x95, 0xd1, 0x81, 0x88, 0xb1, 0xbd, 0x8d, 0xad, 0xb1, 0xa5, 0xcd, 0xd1, 0x81, 0xd0, 0xbd, 0x81, 0xb8, 0xcc, 0xa1, 0xa5, 0xc1, 0xcd, 0x4b, 0x00, 0xbf, 0x25, 0x73, 0x70, 0x65, 0x77, 0x3a, 0x20, 0x73, 0x65, 0x74, 0x20, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x69, 0x74, 0x79, 0x20, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0xf3, 0x12, 0x80, 0x57, 0x25, 0x63, 0x6f, 0x6e, 0x67, 0x3a, 0x20, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0xf3, 0x12, 0x80, 0xdf, 0x25, 0x73, 0x74, 0x69, 0x72, 0x3a, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x20, 0x64, 0x65, 0x73, 0x79, 0x6e, 0x63, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x64, 0x65, 0x62, 0x75, 0x67, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0xf3, 0x12, 0xc0, 0x53, 0x09, 0x9d, 0x5c, 0x5a, 0x9b, 0x0e, 0x88, 0x5c, 0x19, 0x5b, 0x59, 0xd8, 0x5c, 0x19, 0x48, 0x5b, 0x59, 0xdb, 0x9b, 0x5c, 0xbe, 0x04, 0xe0, 0x41, 0x89, 0x5d, 0xd9, 0x59, 0x98, 0x0e, 0xc8, 0x5a, 0x99, 0x9c, 0x5b, 0x19, 0x1b, 0x88, 0x5c, 0x19, 0xdb, 0x5b, 0x18, 0x19, 0x88, 0xdb, 0x1b, 0x5d, 0x9a, 0x59, 0xda, 0x58, 0x18, 0x5d, 0xda, 0x9b, 0x5b, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0x6f, 0x8a, 0x1c, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x6a, 0x1a, 0x37, 0x50, 0x7c, 0xe3, 0x37, 0x08, 0xda, 0x9f, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x9a, 0x86, 0x64, 0xa0, 0x9a, 0x86, 0xf1, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x6a, 0x1a, 0xa2, 0x81, 0x6a, 0x1a, 0xf2, 0x83, 0x67, 0x1c, 0x6a, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd5, 0x34, 0x0c, 0x06, 0xaa, 0x69, 0x58, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0x97, 0xfd, 0x0d, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x35, 0x0d, 0x8b, 0x83, 0xa7, 0x0b, 0x9c, 0x1f, 0xbc, 0x4a, 0x70, 0x78, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xa6, 0x61, 0x36, 0x50, 0x4d, 0xc3, 0x76, 0xc3, 0x9f, 0x4b, 0x1b, 0xa4, 0xd0, 0xf9, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x35, 0x0d, 0xbb, 0x83, 0xd7, 0x23, 0x9c, 0x1f, 0xbc, 0xf3, 0x8d, 0xb7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x9c, 0x86, 0x64, 0xa0, 0x9c, 0x86, 0x86, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe5, 0x34, 0x44, 0x03, 0xe5, 0x34, 0xe4, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x68, 0x38, 0x93, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0xa7, 0x61, 0x30, 0x50, 0x4e, 0xc3, 0x6a, 0xc3, 0x9f, 0x4b, 0x1b, 0x34, 0x7d, 0x3d, 0xbe, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe5, 0x34, 0x2c, 0x0e, 0x5e, 0x53, 0x71, 0x7e, 0xd0, 0xb6, 0xf5, 0xf8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x4e, 0xc3, 0x6c, 0xa0, 0x9c, 0x86, 0x82, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0xb2, 0xbf, 0xe1, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0xa7, 0x61, 0x77, 0xf0, 0x9c, 0x8d, 0xf3, 0x83, 0xa7, 0xea, 0x14, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xd4, 0xd3, 0x90, 0x0c, 0xd4, 0xd3, 0x30, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x4f, 0x43, 0x34, 0x50, 0x4f, 0x43, 0x7e, 0xf0, 0xdc, 0xd1, 0xe4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x9e, 0x86, 0xc1, 0x40, 0x3d, 0x0d, 0xab, 0x0d, 0x7f, 0x2e, 0x6d, 0xd0, 0xf4, 0xf5, 0xf8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xd4, 0xd3, 0xb0, 0x38, 0x78, 0xaf, 0xc9, 0xf9, 0x41, 0xdb, 0xd6, 0xe3, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x05, 0x35, 0x24, 0x03, 0x05, 0x35, 0xcc, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x14, 0xd4, 0x10, 0x0d, 0x14, 0xd4, 0x90, 0x6f, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xe0, 0x65, 0x17, 0x41, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x41, 0x0d, 0x83, 0x81, 0x82, 0x1a, 0x56, 0x1b, 0xfe, 0x5c, 0xda, 0xa0, 0xe9, 0xeb, 0xf1, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0xa8, 0x61, 0x71, 0xf0, 0x80, 0x99, 0xf3, 0x83, 0xb6, 0xad, 0xc7, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2a, 0x6a, 0x48, 0x06, 0x2a, 0x6a, 0x68, 0xda, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x51, 0x43, 0x34, 0x50, 0x51, 0x43, 0xbe, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x27, 0x43, 0x04, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x15, 0x35, 0x0c, 0x06, 0x2a, 0x6a, 0x28, 0xda, 0xf0, 0xe7, 0xd2, 0x00, 0x8f, 0xd8, 0x9b, 0x5b, 0xd9, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x15, 0x35, 0xcc, 0x0e, 0x9e, 0xf4, 0x73, 0xbe, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x15, 0x35, 0xec, 0x06, 0x2a, 0x6a, 0xd8, 0x1e, 0x84, 0x94, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x51, 0xc3, 0x78, 0xa0, 0xa2, 0x86, 0x9e, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x15, 0x35, 0xac, 0x07, 0x2a, 0x6a, 0x68, 0x38, 0x68, 0xdb, 0x7a, 0x7c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xa8, 0xa1, 0x62, 0xa0, 0xa2, 0x86, 0x9a, 0x83, 0x67, 0xe6, 0x84, 0x54, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x49, 0x0d, 0xc9, 0x40, 0x49, 0x0d, 0xe3, 0x0d, 0xd6, 0xab, 0x54, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x25, 0x35, 0x84, 0x03, 0x25, 0x35, 0x2c, 0x0e, 0x1e, 0xaf, 0x3d, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x25, 0x35, 0x4c, 0x06, 0x4a, 0x6a, 0xd8, 0x1e, 0xbc, 0x40, 0xe0, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xa9, 0x21, 0x19, 0xa8, 0xa9, 0x61, 0xb6, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xa6, 0x86, 0x68, 0xa0, 0xa6, 0x86, 0x7c, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0xcd, 0xe0, 0x5b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x35, 0x35, 0x0c, 0x06, 0x6a, 0x6a, 0x58, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0x66, 0xf0, 0xad, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xa6, 0x86, 0xc5, 0xc1, 0x53, 0xbe, 0xce, 0x37, 0xfc, 0x3b, 0xbf, 0x41, 0x2b, 0xf8, 0x57, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x14, 0xd5, 0x90, 0x0c, 0x14, 0xd5, 0x30, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x54, 0x43, 0x34, 0x50, 0x54, 0x43, 0xbe, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0xe5, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x51, 0x0d, 0x83, 0x81, 0xa2, 0x1a, 0x56, 0x1b, 0xfe, 0x5c, 0xda, 0x60, 0xf9, 0x6e, 0xcf, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x14, 0xd5, 0xb0, 0x38, 0x78, 0xf8, 0xda, 0xf9, 0x86, 0x7f, 0xe7, 0x37, 0x58, 0x60, 0x43, 0x5f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x59, 0x0d, 0xc9, 0x40, 0x59, 0x0d, 0x75, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xca, 0x6a, 0x88, 0x06, 0xca, 0x6a, 0xc8, 0x0f, 0x5e, 0x92, 0x31, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0xd5, 0x30, 0x18, 0x28, 0xab, 0xa1, 0x68, 0xc3, 0x9f, 0x4b, 0x1b, 0xa4, 0x7b, 0x6e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x59, 0x0d, 0xa3, 0x83, 0x47, 0xdf, 0x9d, 0x6f, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x59, 0x0d, 0xab, 0x81, 0xb2, 0x1a, 0x96, 0x07, 0x65, 0x13, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x56, 0xc3, 0x74, 0xa0, 0xac, 0x86, 0x9e, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x65, 0x35, 0x6c, 0x07, 0xca, 0x6a, 0x28, 0xd8, 0xf0, 0xe7, 0xd2, 0x80, 0x97, 0x46, 0x86, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x59, 0x0d, 0xfb, 0x83, 0xa7, 0x0c, 0x9e, 0x1f, 0x7e, 0xa8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xca, 0x6a, 0x68, 0x18, 0x28, 0xab, 0xa1, 0x66, 0xc3, 0x9f, 0x4b, 0x1b, 0x14, 0xad, 0x27, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x56, 0x43, 0xcb, 0xc1, 0x23, 0x12, 0xcf, 0x0f, 0x3f, 0xd4, 0xd4, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x56, 0x43, 0xd3, 0x40, 0x59, 0x0d, 0x6d, 0x07, 0x4f, 0xfd, 0x26, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xab, 0x21, 0x19, 0xa8, 0xab, 0x61, 0xb5, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xae, 0x86, 0x68, 0xa0, 0xae, 0x86, 0xfc, 0xe0, 0x59, 0x31, 0xbc, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x5d, 0x0d, 0x83, 0x81, 0xba, 0x1a, 0x46, 0x07, 0x4f, 0xfd, 0x26, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0xac, 0x21, 0x19, 0x28, 0xac, 0x61, 0xb5, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xb0, 0x86, 0x68, 0xa0, 0xb0, 0x86, 0x7c, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0xc9, 0x30, 0x9f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x61, 0x0d, 0x83, 0x81, 0xc2, 0x1a, 0x46, 0x07, 0x4f, 0xfd, 0x26, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xac, 0x21, 0x19, 0xa8, 0xac, 0x61, 0xb5, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xb2, 0x86, 0x68, 0xa0, 0xb2, 0x86, 0x7c, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0xaf, 0x15, 0x08, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2a, 0x6b, 0x18, 0x0c, 0x54, 0xd6, 0x30, 0x3a, 0x78, 0xea, 0x37, 0x71, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x69, 0x0d, 0xc9, 0x40, 0x69, 0x0d, 0xb3, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa5, 0x35, 0x44, 0x03, 0xa5, 0x35, 0xe4, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x58, 0xad, 0x59, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0xd6, 0x30, 0x18, 0x28, 0xad, 0x61, 0xb5, 0xe1, 0xcf, 0xa5, 0x0d, 0x0e, 0xa6, 0x9f, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x5a, 0xc3, 0xe2, 0xe0, 0x51, 0xb2, 0xe7, 0x07, 0x67, 0x24, 0xd4, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xda, 0x1a, 0x92, 0x81, 0xda, 0x1a, 0xd6, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6a, 0x6b, 0x88, 0x06, 0x6a, 0x6b, 0xc8, 0x37, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xb0, 0x6a, 0x9b, 0x7c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xad, 0x61, 0x30, 0x50, 0x5b, 0xc3, 0x6e, 0xc3, 0x9f, 0x4b, 0x03, 0x9e, 0xd8, 0x5b, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb5, 0x35, 0x8c, 0x0e, 0x5e, 0xe7, 0x7b, 0x7e, 0x50, 0x66, 0xe9, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb5, 0x35, 0x0c, 0x07, 0x6a, 0x6b, 0x18, 0x1f, 0x3c, 0xf5, 0x9b, 0xb8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xba, 0x86, 0x64, 0xa0, 0xba, 0x86, 0xf1, 0x06, 0xeb, 0x55, 0xaa, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xea, 0x1a, 0xc2, 0x81, 0xea, 0x1a, 0x16, 0x07, 0xef, 0xf2, 0xb7, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xea, 0x1a, 0x26, 0x03, 0xd5, 0x35, 0x6c, 0x0f, 0x5e, 0x20, 0x70, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0xd7, 0x90, 0x0c, 0x94, 0xd7, 0x30, 0xde, 0x60, 0xbd, 0x4a, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x5e, 0x43, 0x38, 0x50, 0x5e, 0xc3, 0xe2, 0xe0, 0xfd, 0xc1, 0x7e, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x5e, 0xc3, 0x64, 0xa0, 0xbc, 0x86, 0xed, 0xc1, 0x0b, 0x04, 0xee, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfa, 0x1a, 0x92, 0x81, 0xfa, 0x1a, 0x2a, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xd4, 0xd7, 0x10, 0x0d, 0xd4, 0xd7, 0x90, 0x6f, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0xe0, 0xad, 0xfd, 0x40, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x7d, 0x0d, 0x83, 0x81, 0xfa, 0x1a, 0x1a, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0x53, 0xa7, 0x42, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xbe, 0x86, 0xd9, 0xc1, 0x43, 0xbc, 0xcf, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xbe, 0x86, 0xdd, 0x40, 0x7d, 0x0d, 0xdb, 0x83, 0x90, 0x32, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xea, 0x6b, 0x18, 0x0f, 0xd4, 0xd7, 0x50, 0x70, 0xd0, 0xb6, 0xf5, 0x78, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x05, 0x36, 0x24, 0x03, 0x05, 0x36, 0x54, 0x6c, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0xb0, 0x21, 0x1a, 0x28, 0xb0, 0x21, 0x3f, 0x78, 0xe5, 0x16, 0xee, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x60, 0xc3, 0x60, 0xa0, 0xc0, 0x86, 0x86, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0xd4, 0xa9, 0xd0, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0xb0, 0x61, 0x76, 0xf0, 0x8c, 0xf7, 0xf3, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0xb0, 0x61, 0x37, 0x50, 0x60, 0xc3, 0xf6, 0x20, 0xa4, 0x4c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x02, 0x1b, 0xc6, 0x03, 0x05, 0x36, 0x14, 0x1c, 0xb4, 0x6d, 0x3d, 0x5e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x85, 0x0d, 0xc9, 0x40, 0x85, 0x0d, 0xbd, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2a, 0x6c, 0x88, 0x06, 0x2a, 0x6c, 0xc8, 0x37, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xf0, 0x96, 0x79, 0xa0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xc2, 0x86, 0xc1, 0x40, 0x85, 0x0d, 0x25, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x2d, 0xbf, 0x76, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x61, 0xc3, 0xea, 0xe0, 0xdd, 0x00, 0xe8, 0x1b, 0x04, 0x9b, 0xe9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x61, 0xc3, 0x6e, 0xa0, 0xc2, 0x86, 0xf5, 0xc1, 0x43, 0x7e, 0x92, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x0a, 0x1b, 0xe6, 0x03, 0x15, 0x36, 0x74, 0x1c, 0x3c, 0x61, 0x28, 0xb9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xc2, 0x86, 0x96, 0x81, 0x0a, 0x1b, 0x6a, 0x37, 0xfc, 0xb9, 0xb4, 0xc1, 0x53, 0xa7, 0x42, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xc2, 0x86, 0xae, 0x83, 0x07, 0x32, 0xa0, 0x6f, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x85, 0x0d, 0x65, 0x03, 0x15, 0x36, 0x14, 0x1e, 0x84, 0x94, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x61, 0x43, 0xe3, 0x40, 0x85, 0x0d, 0xad, 0x07, 0x6d, 0x5b, 0x8f, 0xd7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x62, 0x43, 0x32, 0x50, 0x62, 0x43, 0xc1, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x12, 0x1b, 0xa2, 0x81, 0x12, 0x1b, 0xf2, 0x83, 0x07, 0x13, 0x3f, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x25, 0x36, 0x0c, 0x06, 0x4a, 0x6c, 0xd8, 0x6f, 0xf8, 0x73, 0x69, 0xc0, 0xb3, 0x2b, 0x13, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xc4, 0x86, 0xd1, 0xc1, 0x13, 0x3b, 0xd0, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xc4, 0x86, 0xd5, 0x40, 0x89, 0x0d, 0xcb, 0x83, 0x90, 0x32, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4a, 0x6c, 0x98, 0x0e, 0x94, 0xd8, 0x30, 0x3f, 0x78, 0xcb, 0x14, 0x6e, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x35, 0x36, 0x24, 0x03, 0x35, 0x36, 0x14, 0x6c, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xb1, 0x21, 0x1a, 0xa8, 0xb1, 0x21, 0xdf, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0xcb, 0xfe, 0x81, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x1a, 0x1b, 0x06, 0x03, 0x35, 0x36, 0xec, 0x36, 0xfc, 0xb9, 0x34, 0xe0, 0xb5, 0xcd, 0x9d, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x63, 0xc3, 0xe8, 0xe0, 0x45, 0x2f, 0xe8, 0x07, 0x65, 0x96, 0xee, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x63, 0xc3, 0x70, 0xa0, 0xc6, 0x86, 0xfd, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0xb6, 0xb2, 0x76, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6a, 0x6c, 0x18, 0x1f, 0x3c, 0xa7, 0x06, 0xfd, 0xa0, 0xcc, 0xd2, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0xb2, 0x21, 0x19, 0x28, 0xb2, 0x61, 0xb7, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xc8, 0x86, 0x68, 0xa0, 0xc8, 0x86, 0xfc, 0xe0, 0xe5, 0x55, 0x83, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x91, 0x0d, 0x83, 0x81, 0x22, 0x1b, 0x66, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x48, 0x69, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x45, 0x36, 0x8c, 0x0e, 0x1e, 0x0a, 0x84, 0x7e, 0x70, 0x9e, 0x1d, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xb2, 0x21, 0x19, 0xa8, 0xb2, 0x61, 0xbc, 0xc1, 0x7a, 0x95, 0xaa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xca, 0x86, 0x70, 0xa0, 0xca, 0x86, 0xc5, 0xc1, 0xeb, 0xed, 0x3d, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xca, 0x86, 0xc9, 0x40, 0x95, 0x0d, 0xdb, 0x83, 0x17, 0x08, 0xdc, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x65, 0x36, 0x24, 0x03, 0x65, 0x36, 0x8c, 0x37, 0x58, 0xaf, 0x52, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0xd9, 0x10, 0x0e, 0x94, 0xd9, 0xb0, 0x38, 0x78, 0xe4, 0xd8, 0xdd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0xd9, 0x30, 0x19, 0x28, 0xb3, 0x61, 0x7b, 0xf0, 0x02, 0x81, 0xbb, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xe6, 0x86, 0x64, 0xa0, 0xe6, 0x86, 0xfe, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xf8, 0x80, 0x2b, 0x93, 0x6b, 0x81, 0x2b, 0x2b, 0x93, 0x03, 0x69, 0x4b, 0x3b, 0x93, 0x0b, 0xa3, 0x4b, 0x7b, 0x73, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x73, 0x43, 0x34, 0x50, 0x73, 0x43, 0x7e, 0xf0, 0x56, 0x69, 0xbf, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xe6, 0x86, 0xc1, 0x40, 0xcd, 0x0d, 0xdb, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xb9, 0x61, 0x31, 0x50, 0x73, 0xc3, 0xea, 0xa0, 0x6c, 0xc2, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6a, 0x6e, 0x98, 0x0d, 0xd4, 0xdc, 0x30, 0x3d, 0x68, 0xdb, 0x7a, 0xbc, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa2, 0x1b, 0x92, 0x81, 0xa2, 0x1b, 0x6e, 0x6e, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0x80, 0xc6, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x70, 0x65, 0x65, 0x72, 0x73, 0x3b, 0x20, 0x58, 0x58, 0x20, 0x6d, 0x61, 0x6b, 0x65, 0x20, 0x69, 0x74, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x66, 0x6c, 0x65, 0x78, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0xbf, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x45, 0x37, 0x44, 0x03, 0x45, 0x37, 0xe4, 0x07, 0x0f, 0x1c, 0xbe, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8a, 0x6e, 0x18, 0x0c, 0x14, 0xdd, 0x30, 0xdf, 0x20, 0xd8, 0x4c, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa2, 0x1b, 0x26, 0x03, 0x45, 0x37, 0xec, 0x0e, 0xde, 0x8d, 0x9e, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x14, 0xdd, 0x30, 0x1c, 0x28, 0xba, 0x61, 0x7d, 0xf0, 0xc4, 0xe2, 0xba, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xaa, 0x6e, 0x48, 0x06, 0xaa, 0x6e, 0x38, 0xb0, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x2f, 0x70, 0x65, 0x72, 0x2d, 0x70, 0x65, 0x65, 0x72, 0x20, 0x72, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xaa, 0x6e, 0x88, 0x06, 0xaa, 0x6e, 0xc8, 0x37, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x77, 0xd0, 0x3a, 0x7c, 0xe9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x75, 0xc3, 0x60, 0xa0, 0xea, 0x86, 0xed, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0xdd, 0xb0, 0x18, 0xa8, 0xba, 0x61, 0x75, 0x50, 0x36, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x55, 0x37, 0xcc, 0x06, 0xaa, 0x6e, 0x98, 0x1e, 0xb4, 0x6d, 0x3d, 0x5e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xdd, 0x0d, 0xc9, 0x40, 0xdd, 0x0d, 0xfb, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x75, 0x37, 0x44, 0x03, 0x75, 0x37, 0xe4, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x78, 0xef, 0x3a, 0xd0, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x77, 0xc3, 0x60, 0xa0, 0xee, 0x86, 0xe9, 0x86, 0x3f, 0x97, 0x36, 0x78, 0xd9, 0xdf, 0xf0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xd4, 0xdd, 0xb0, 0x38, 0x78, 0xb6, 0x25, 0xfa, 0xc1, 0x53, 0x75, 0x8a, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xba, 0x1b, 0xb6, 0x03, 0x75, 0x37, 0xcc, 0x37, 0xfc, 0xb9, 0x34, 0x38, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x75, 0x37, 0xac, 0x0f, 0x5e, 0xce, 0x89, 0x7e, 0xf8, 0xa1, 0xa6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xf0, 0x86, 0x64, 0xa0, 0xf0, 0x86, 0xd9, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc2, 0x1b, 0xa2, 0x81, 0xc2, 0x1b, 0xf2, 0x0d, 0x19, 0xf0, 0x83, 0xc7, 0x65, 0x31, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x85, 0x37, 0x0c, 0x06, 0x0a, 0x6f, 0x58, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0x17, 0x38, 0x04, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xe1, 0x0d, 0x8b, 0x83, 0x27, 0xa1, 0xa2, 0x1f, 0xbc, 0x1d, 0xb8, 0xb1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xf2, 0x86, 0x64, 0xa0, 0xf2, 0x86, 0x8e, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x95, 0x37, 0x44, 0x03, 0x95, 0x37, 0xe4, 0x1b, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x78, 0x7c, 0x3d, 0xd0, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x79, 0xc3, 0x60, 0xa0, 0xf2, 0x86, 0xd9, 0x86, 0x3f, 0x97, 0x36, 0x78, 0xc3, 0x06, 0xef, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0xde, 0xb0, 0x38, 0x78, 0x26, 0x2d, 0xfa, 0x86, 0x7f, 0xe7, 0xd7, 0xe0, 0x0d, 0x1b, 0xbc, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x54, 0xde, 0xb0, 0x1b, 0xa8, 0xbc, 0x61, 0xbc, 0xe1, 0xcf, 0xa5, 0x0d, 0xde, 0x3a, 0x32, 0xbb, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x95, 0x37, 0x0c, 0x0f, 0x1e, 0xb3, 0x8b, 0x7e, 0xf0, 0xd4, 0x6f, 0xe2, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xf2, 0x86, 0xf5, 0x40, 0xe5, 0x0d, 0x15, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x60, 0xfa, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x95, 0x37, 0xcc, 0x0f, 0xde, 0x13, 0x8c, 0x7e, 0x70, 0x46, 0x42, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0xbd, 0x21, 0x19, 0x28, 0xbd, 0x61, 0xbd, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xf4, 0x86, 0x68, 0xa0, 0xf4, 0x86, 0x7c, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0xaf, 0xdf, 0x07, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4a, 0x6f, 0x18, 0x0c, 0x94, 0xde, 0x30, 0xdb, 0xf0, 0xe7, 0xd2, 0x06, 0x6f, 0xd8, 0xe0, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd2, 0x1b, 0x16, 0x07, 0x6f, 0x6b, 0x46, 0x3f, 0x78, 0x17, 0x2e, 0xfa, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x7a, 0xc3, 0x6e, 0xa0, 0xf4, 0x86, 0xf1, 0x86, 0x3f, 0x97, 0x36, 0x78, 0xeb, 0xc8, 0xec, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0xde, 0x30, 0x3c, 0x78, 0xde, 0x34, 0xfa, 0xc1, 0x53, 0xbf, 0x89, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6a, 0x6f, 0x48, 0x06, 0x6a, 0x6f, 0x58, 0x6f, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xbd, 0x21, 0x1a, 0xa8, 0xbd, 0x21, 0x3f, 0x68, 0xa7, 0xb3, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xbd, 0x61, 0x30, 0x50, 0x7b, 0xc3, 0x6c, 0xc3, 0x9f, 0x4b, 0x1b, 0xbc, 0x61, 0x83, 0x77, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6a, 0x6f, 0x58, 0x1c, 0xbc, 0xde, 0x1b, 0xfd, 0xe0, 0x5d, 0xb8, 0xe8, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0xed, 0x0d, 0xbb, 0x81, 0xda, 0x1b, 0xc6, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0xad, 0x23, 0xb3, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x7b, 0xc3, 0xf0, 0xe0, 0x01, 0xe5, 0xe8, 0x07, 0x4f, 0xfd, 0x26, 0xae, 0xd5, 0xe0, 0x69, 0x5d, 0xc3, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0x4f, 0xeb, 0x1a, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xeb, 0x20, 0xcc, 0x06, 0xae, 0x83, 0x50, 0xb1, 0xe1, 0x8b, 0x9a, 0x0d, 0x75, 0x3c, 0xc0, 0xab, 0xee, 0x0e, 0xae, 0x4e, 0x8c, 0x2d, 0x6d, 0x6c, 0xad, 0x2c, 0x3f, 0x9c, 0x62, 0xad, 0xc1, 0xf3, 0xe0, 0x7e, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x38, 0x32, 0x84, 0x1e, 0x3c, 0x0f, 0xee, 0xb7, 0x01, 0xf0, 0xe4, 0x0e, 0x2d, 0x6d, 0x0c, 0x0d, 0x64, 0x2d, 0xcd, 0x8d, 0x0c, 0xe4, 0xcd, 0x0c, 0x64, 0x0e, 0x2d, 0x0d, 0x0e, 0x24, 0x8c, 0x8c, 0x4c, 0xae, 0x6c, 0x6e, 0x8e, 0x05, 0x44, 0x2c, 0x0f, 0x84, 0xad, 0xcc, 0xed, 0x8c, 0x0e, 0x5d, 0x09, 0xe0, 0x1d, 0x46, 0x0c, 0x46, 0x07, 0xe4, 0x2c, 0x8c, 0x2d, 0x0c, 0x2f, 0x0f, 0xe4, 0x4d, 0x0e, 0x64, 0x8e, 0x2e, 0x4c, 0x0e, 0xa4, 0xa5, 0x05, 0x44, 0x06, 0x04, 0x44, 0x2c, 0x8f, 0xae, 0x6c, 0x5e, 0x02, 0x78, 0x87, 0x11, 0x8b, 0xd1, 0x01, 0x81, 0x63, 0x0b, 0x73, 0x2b, 0xa3, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x69, 0x69, 0x01, 0xa1, 0x01, 0x01, 0x11, 0xcb, 0xa3, 0x2b, 0x9b, 0x97, 0x00, 0xfe, 0x61, 0xc4, 0x62, 0x60, 0x74, 0x40, 0xda, 0xde, 0xde, 0xdc, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x5a, 0x5a, 0x40, 0x70, 0x40, 0x40, 0xc4, 0xf2, 0xe8, 0xca, 0xe6, 0x25, 0x80, 0x7f, 0x18, 0xb1, 0x98, 0x18, 0x1d, 0x90, 0xb1, 0xb7, 0xb6, 0x32, 0x3a, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x90, 0x96, 0x16, 0x90, 0x18, 0x1b, 0x10, 0xb1, 0x3c, 0xba, 0xb2, 0xb9, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x9e, 0x07, 0xf7, 0xbb, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc7, 0x57, 0x48, 0x07, 0x8e, 0xaf, 0xd0, 0xb2, 0x41, 0xb0, 0x99, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc7, 0x57, 0xc8, 0x07, 0x8e, 0xaf, 0xb0, 0x39, 0x78, 0x8f, 0xe0, 0xef, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x7c, 0x85, 0xd1, 0xc0, 0xf1, 0x15, 0x86, 0x07, 0x8f, 0x3f, 0xfc, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0xaf, 0xb0, 0x1c, 0x38, 0xbe, 0xc2, 0xfc, 0xe0, 0xb9, 0x8d, 0xbf, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xf1, 0x15, 0xf6, 0x03, 0xc7, 0x57, 0x28, 0x39, 0x78, 0xe3, 0xe4, 0x6f, 0xab, 0xc1, 0x4b, 0x7c, 0xb9, 0x37, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x5e, 0xe2, 0xcb, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x07, 0x69, 0xdc, 0xc0, 0x31, 0x1b, 0xb2, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x17, 0x69, 0x48, 0x06, 0x0e, 0xd3, 0xb0, 0xdd, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0x00, 0x2f, 0x5b, 0x40, 0xc4, 0xc2, 0xc6, 0xd6, 0xee, 0xc2, 0xe4, 0xc8, 0x74, 0x40, 0xc2, 0x40, 0x4a, 0xc6, 0xde, 0xe4, 0xd6, 0x40, 0x4a, 0xe0, 0xd8, 0xca, 0xc2, 0x40, 0x4a, 0xe0, 0xde, 0xd6, 0xca, 0x40, 0xe4, 0xca, 0xe2, 0xea, 0xca, 0xe6, 0xe8, 0x40, 0xd2, 0xe6, 0x40, 0xe4, 0xca, 0xc6, 0xca, 0xd2, 0xec, 0xca, 0xc8, 0x95, 0x00, 0xf8, 0x80, 0x0e, 0xad, 0x0c, 0xc4, 0x8c, 0xed, 0xed, 0x0e, 0x24, 0x6d, 0x0e, 0x84, 0xac, 0x8c, 0xad, 0x8c, 0xae, 0x8c, 0x0c, 0xc4, 0x2c, 0x4d, 0x6e, 0x8e, 0x0e, 0xe4, 0xcd, 0x0d, 0x84, 0x0e, 0xad, 0x0c, 0xc4, 0xec, 0x4d, 0xee, 0x2e, 0x4c, 0x8e, 0x0c, 0x64, 0x2e, 0x8d, 0xac, 0x0c, 0xe4, 0x0e, 0xad, 0xcc, 0x0d, 0x24, 0x8d, 0x0e, 0x64, 0x2c, 0xcc, 0x0d, 0x44, 0xae, 0x2c, 0x8c, 0x0c, 0x84, 0x0e, 0xad, 0x5c, 0x02, 0xe0, 0x85, 0x92, 0xb0, 0xb1, 0x35, 0x10, 0xb3, 0x37, 0x39, 0x10, 0x3a, 0xb4, 0x32, 0x90, 0x92, 0xb1, 0x37, 0xb9, 0x35, 0x16, 0x90, 0x30, 0x37, 0x32, 0x10, 0x3a, 0xb4, 0x32, 0x37, 0x90, 0x37, 0x37, 0x10, 0x3a, 0xb4, 0x32, 0x10, 0xb1, 0xb0, 0xb1, 0xb5, 0xbb, 0x30, 0x39, 0x32, 0x90, 0xb9, 0x34, 0xb2, 0x32, 0x90, 0x3b, 0xb4, 0x32, 0x37, 0x90, 0x34, 0x3a, 0x90, 0xb1, 0x30, 0x37, 0x90, 0x15, 0xb8, 0xb2, 0xb2, 0x75, 0x09, 0xc0, 0x27, 0x3a, 0xb4, 0x32, 0x90, 0xb1, 0x37, 0xb9, 0xb5, 0x32, 0x32, 0x10, 0x33, 0xb6, 0xb7, 0x3b, 0x10, 0x33, 0xb9, 0xb7, 0x36, 0x10, 0x3a, 0xb4, 0x32, 0x10, 0xb3, 0x37, 0xb9, 0xbb, 0x30, 0x39, 0x32, 0x10, 0xb7, 0xb0, 0xb6, 0xb2, 0x39, 0xb8, 0xb0, 0xb1, 0xb2, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0x13, 0x9e, 0x87, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x30, 0x0d, 0x8b, 0x83, 0x27, 0x7c, 0xa4, 0x6f, 0x10, 0x6c, 0xa6, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x61, 0x1a, 0x36, 0x03, 0x87, 0x69, 0x98, 0x1d, 0x04, 0x6c, 0xd0, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x98, 0x86, 0xdd, 0xc0, 0x61, 0x1a, 0xa6, 0x07, 0x61, 0x04, 0xd4, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x9b, 0x86, 0x64, 0xe0, 0x36, 0x0d, 0x8b, 0x0d, 0x7f, 0x2e, 0x6d, 0xd0, 0x1c, 0x5b, 0xe9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xa6, 0x21, 0x3e, 0x78, 0x4e, 0x52, 0xfa, 0x41, 0x99, 0xa5, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xa7, 0x21, 0x19, 0x38, 0x5c, 0x43, 0xb6, 0xe1, 0xcf, 0xa5, 0x01, 0x6f, 0xce, 0x8d, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x03, 0x35, 0x24, 0x07, 0x8f, 0x79, 0x4a, 0xdf, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xa0, 0x86, 0x74, 0xe0, 0x40, 0x0d, 0xb3, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x05, 0xfc, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0xe4, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xaf, 0x86, 0x6c, 0xe0, 0x5e, 0x0d, 0x75, 0x1b, 0xfe, 0x5c, 0x1a, 0xe0, 0x61, 0x7b, 0x0b, 0x23, 0x9b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x5e, 0x0d, 0x8b, 0x83, 0x67, 0x65, 0xa5, 0x6f, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xbd, 0x1a, 0x26, 0x03, 0xf7, 0x6a, 0x68, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xaf, 0x86, 0xcd, 0xc0, 0xbd, 0x1a, 0x66, 0x07, 0xcf, 0x76, 0xb3, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xd5, 0xb0, 0x1b, 0xb8, 0x57, 0xc3, 0x76, 0xc3, 0x47, 0xed, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xaf, 0x86, 0xe1, 0xc1, 0x63, 0xca, 0xd2, 0x0f, 0xca, 0x2c, 0xdd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x5e, 0x0d, 0xe3, 0x81, 0x7b, 0x35, 0x14, 0x6d, 0x78, 0x5b, 0xe7, 0xe0, 0x79, 0x49, 0xe6, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf7, 0x6a, 0xa8, 0x1a, 0xb8, 0x57, 0x43, 0xdb, 0xc1, 0x83, 0x12, 0x6d, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0xd6, 0x90, 0x0d, 0x1c, 0xac, 0x61, 0xb7, 0xe1, 0xcf, 0xa5, 0x01, 0x3c, 0xdc, 0xca, 0xf0, 0xe8, 0x5a, 0xd8, 0xde, 0xc2, 0xc8, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x58, 0xc3, 0xea, 0xe0, 0xcd, 0x70, 0xe9, 0x1b, 0x04, 0xd0, 0xd9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xac, 0x61, 0x76, 0xf0, 0x66, 0xb8, 0xf4, 0xc3, 0x63, 0x32, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xd5, 0x1a, 0xb2, 0x81, 0xab, 0x35, 0xac, 0x37, 0xfc, 0xb9, 0x34, 0x80, 0xf7, 0x5c, 0x99, 0x1b, 0x59, 0xcb, 0x5d, 0x9a, 0x1b, 0xd9, 0xdb, 0x5d, 0x4b, 0x5b, 0x18, 0xbe, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x57, 0x6b, 0xd8, 0x1e, 0x3c, 0x48, 0x2f, 0x7d, 0x83, 0x00, 0x3a, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xab, 0x35, 0x8c, 0x0f, 0x1e, 0xa4, 0x97, 0x7e, 0x78, 0x4c, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x5b, 0x43, 0x36, 0x70, 0xb6, 0x86, 0xe5, 0x86, 0x3f, 0x97, 0x06, 0xf0, 0x9a, 0x2b, 0x73, 0x23, 0x6b, 0xb9, 0x4b, 0x73, 0x23, 0x7b, 0xbb, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x6c, 0x0d, 0xbb, 0x83, 0xd7, 0x11, 0xa6, 0x6f, 0x10, 0x40, 0x67, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xb6, 0x86, 0xe1, 0xc1, 0xeb, 0x08, 0xd3, 0x0f, 0x8f, 0xc9, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xae, 0x21, 0x19, 0x38, 0x66, 0xe3, 0x37, 0xfc, 0xb9, 0x34, 0xe0, 0xc9, 0x8d, 0xd9, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xbc, 0x86, 0xe4, 0xe0, 0x31, 0x8e, 0xe9, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0xd7, 0x90, 0x0e, 0x1c, 0xaf, 0x61, 0xb6, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x80, 0x3f, 0xcd, 0x6d, 0xec, 0xad, 0x2d, 0xcd, 0xed, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0xd7, 0x90, 0x0d, 0x5c, 0xb0, 0x61, 0xb9, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x00, 0xf4, 0x53, 0xe6, 0x72, 0xe6, 0x02, 0xf2, 0x62, 0xc6, 0xf6, 0x76, 0xf7, 0x22, 0xf6, 0xe6, 0x56, 0xd6, 0x03, 0xf3, 0xe2, 0xe7, 0x56, 0x36, 0xf6, 0x12, 0x36, 0xb6, 0xf6, 0xe2, 0xa7, 0xf7, 0x46, 0xf6, 0x22, 0x16, 0xb6, 0xf6, 0x12, 0x36, 0xb6, 0xd6, 0x13, 0x03, 0x82, 0x12, 0x36, 0x07, 0x32, 0x47, 0xf7, 0x26, 0x57, 0x46, 0x06, 0x92, 0xe6, 0x06, 0x42, 0x87, 0x56, 0x06, 0x02, 0x27, 0xf7, 0x46, 0x56, 0x37, 0x56, 0x26, 0x07, 0xf2, 0x66, 0x06, 0x42, 0x87, 0x56, 0x06, 0x12, 0x36, 0xb6, 0x96, 0xda, 0xf0, 0xe7, 0xd2, 0x06, 0x0f, 0x28, 0x76, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x0b, 0x36, 0xcc, 0x0e, 0xde, 0x84, 0x99, 0x7e, 0x50, 0x66, 0xe9, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x67, 0x6c, 0xc8, 0x06, 0xce, 0xd8, 0x30, 0xdf, 0xf0, 0xe7, 0xd2, 0x00, 0x5e, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x61, 0x63, 0xeb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0xb1, 0x61, 0x77, 0xf0, 0xc4, 0xd4, 0xf4, 0x0d, 0x02, 0xe8, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0xd8, 0x30, 0x3c, 0x78, 0x62, 0x6a, 0xfa, 0x86, 0xbf, 0x68, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x33, 0x36, 0x2c, 0x07, 0xce, 0xd8, 0x30, 0x3d, 0x7c, 0xb0, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x67, 0x6c, 0xd8, 0x1e, 0x3c, 0x31, 0x35, 0xfd, 0x60, 0x99, 0x93, 0xec, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xca, 0x86, 0x6c, 0xe0, 0x94, 0x0d, 0x15, 0x1b, 0xfe, 0x5c, 0xda, 0xa0, 0xe9, 0xc3, 0xee, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x65, 0x43, 0x7e, 0xf0, 0x5c, 0xdc, 0xf4, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x65, 0xc3, 0x60, 0xe0, 0x94, 0x0d, 0x9b, 0x83, 0x12, 0xb1, 0x7e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x65, 0xc3, 0x68, 0xe0, 0x94, 0x0d, 0xdb, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x73, 0x65, 0xf1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0xb2, 0x61, 0x78, 0xf0, 0xbc, 0xe0, 0xf4, 0x83, 0x32, 0x4b, 0x77, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x65, 0xc3, 0x78, 0xe0, 0x94, 0x0d, 0x0d, 0x07, 0x2f, 0x2e, 0xaf, 0xac, 0x0e, 0xa7, 0xd8, 0x1a, 0xbc, 0xe8, 0x37, 0x79, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0x45, 0xbf, 0xc9, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x1e, 0x84, 0xd9, 0xc0, 0x79, 0x10, 0x3a, 0x36, 0x7c, 0x51, 0xb3, 0xa1, 0x8e, 0x07, 0xf8, 0xd5, 0xdd, 0xc1, 0xc9, 0xa5, 0xd9, 0x85, 0xd1, 0x95, 0xad, 0x95, 0xe5, 0xab, 0xe1, 0xfb, 0xf6, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0xc3, 0xf7, 0xed, 0x0d, 0xe0, 0x57, 0xe6, 0x36, 0xf6, 0x46, 0x56, 0x46, 0xd6, 0x02, 0x17, 0x46, 0x87, 0xb6, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0xa0, 0xc5, 0xc8, 0xd0, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x9a, 0x8f, 0x1b, 0x38, 0xfd, 0xe3, 0x37, 0x28, 0x59, 0xd8, 0x67, 0x99, 0x05, 0x9e, 0xac, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x03, 0x3f, 0x7e, 0xe0, 0xf2, 0x0f, 0x15, 0x1b, 0x7e, 0x51, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0xfc, 0x90, 0x0d, 0x1c, 0xf8, 0x61, 0xb1, 0xe1, 0xcf, 0xa5, 0xc1, 0xc3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xf0, 0x43, 0x7a, 0xf0, 0x76, 0xee, 0xf4, 0x83, 0x22, 0x2c, 0x76, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2e, 0xfc, 0xf8, 0x83, 0xe7, 0x68, 0xa7, 0x6f, 0x50, 0x90, 0xc6, 0xae, 0xe1, 0xfb, 0xf6, 0xc1, 0xc5, 0x0d, 0x4a, 0xe8, 0xd8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xc2, 0x0f, 0xe9, 0xc0, 0x85, 0x1f, 0x0a, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xf8, 0x21, 0x1e, 0xb8, 0xf0, 0xc3, 0x6c, 0xc3, 0x9f, 0x4b, 0x03, 0x9e, 0xd8, 0x5b, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x17, 0x7e, 0x98, 0x1c, 0x3c, 0x26, 0x3d, 0xfd, 0xf0, 0xed, 0xfc, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xe1, 0x87, 0xdd, 0xc0, 0x85, 0x1f, 0xf6, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x00, 0x2f, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x17, 0x7e, 0xd8, 0x1e, 0xbc, 0xe3, 0x3d, 0xfd, 0xf0, 0x00, 0x7e, 0x07, 0x61, 0x3a, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xf8, 0xa1, 0x62, 0xe0, 0xc2, 0x0f, 0x7d, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2e, 0xfc, 0xd0, 0x31, 0x70, 0xe1, 0x87, 0x92, 0xc3, 0x83, 0x37, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x85, 0x1f, 0x5a, 0x06, 0x2e, 0xfc, 0x50, 0xb7, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xc2, 0x0f, 0x35, 0x03, 0x17, 0x7e, 0x68, 0x3a, 0x58, 0xc0, 0x09, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xf8, 0xa1, 0x6a, 0xe0, 0xc2, 0x0f, 0x5d, 0x87, 0xa7, 0x75, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x0b, 0x3f, 0x94, 0x0d, 0x5c, 0xf8, 0xa1, 0xed, 0xf0, 0xe0, 0x4d, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x89, 0x1f, 0x7f, 0xf0, 0x1c, 0xed, 0xf4, 0x0d, 0xbf, 0x28, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x27, 0x7e, 0xc8, 0x06, 0x4e, 0xfc, 0x30, 0xd8, 0xf0, 0xe7, 0xd2, 0x06, 0x8b, 0x84, 0x67, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xc4, 0x0f, 0xf9, 0xc1, 0x13, 0x11, 0xd4, 0x0f, 0x3f, 0xd4, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x8d, 0x1f, 0x7f, 0xf0, 0x1c, 0xed, 0xf4, 0x0d, 0x7f, 0xd1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x37, 0x7e, 0xc8, 0x06, 0x6e, 0xfc, 0xb0, 0xdc, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xe3, 0x87, 0x70, 0xe0, 0xc6, 0x0f, 0xab, 0x83, 0xf7, 0xfa, 0x30, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x37, 0x7e, 0x98, 0x0d, 0xdc, 0xf8, 0x61, 0xb8, 0x41, 0x00, 0x9d, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x8d, 0x1f, 0x76, 0x07, 0x6f, 0xb4, 0x50, 0x3f, 0xbc, 0x17, 0xd4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xf9, 0xf1, 0x07, 0xcf, 0xd1, 0x4e, 0xdf, 0xa0, 0xe8, 0xa0, 0x1d, 0x7c, 0xdc, 0xf0, 0x79, 0xd0, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xe5, 0x87, 0x64, 0xe0, 0xca, 0x0f, 0xb5, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xae, 0xfc, 0x10, 0x0d, 0x5c, 0xf9, 0x61, 0xb5, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xca, 0x0f, 0xd9, 0xc0, 0x95, 0x1f, 0xe2, 0x83, 0xf7, 0xd7, 0x66, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x57, 0x7e, 0xc8, 0x07, 0xae, 0xfc, 0x30, 0x38, 0xbc, 0x17, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xf9, 0x61, 0x31, 0x70, 0xe5, 0x87, 0xd1, 0x41, 0xdb, 0x7d, 0x99, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x57, 0x7e, 0x98, 0x0d, 0x5c, 0xf9, 0xa1, 0x75, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x95, 0x1f, 0x76, 0x03, 0x57, 0x7e, 0x18, 0x6f, 0xf8, 0xdc, 0x65, 0x83, 0x86, 0x2d, 0xbf, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xca, 0x0f, 0xdb, 0x83, 0x17, 0xbf, 0xa8, 0x1f, 0x04, 0x2c, 0xeb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xe5, 0x87, 0xf5, 0xc0, 0x95, 0x1f, 0x2a, 0x36, 0x7c, 0xee, 0xb2, 0x41, 0xc3, 0xd9, 0xda, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xe5, 0x87, 0x86, 0x83, 0xf7, 0xd6, 0xa8, 0x1f, 0x04, 0x2c, 0xeb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xe5, 0x87, 0x8e, 0x81, 0x2b, 0x3f, 0x14, 0x6d, 0xf8, 0xdc, 0x65, 0xc0, 0x73, 0x4b, 0xa3, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xca, 0x0f, 0x3d, 0x07, 0x0f, 0xde, 0x51, 0x3f, 0x3c, 0x26, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xf9, 0xa1, 0x69, 0xe0, 0xca, 0x0f, 0x75, 0x1b, 0x3e, 0x77, 0x19, 0xf0, 0xe8, 0xc2, 0xea, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xf2, 0x43, 0xdb, 0xc1, 0x73, 0x83, 0xd4, 0x0f, 0x8f, 0xc9, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x57, 0x7e, 0xe8, 0x1b, 0xb8, 0xf2, 0x43, 0xe9, 0x86, 0xcf, 0x5d, 0x36, 0x68, 0x74, 0xeb, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xae, 0xfc, 0xd0, 0x79, 0xf0, 0xd8, 0x23, 0xf5, 0x83, 0x80, 0x65, 0xad, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xf3, 0xe3, 0x0f, 0x9e, 0xa3, 0x9d, 0xbe, 0x41, 0xd1, 0xa7, 0xbb, 0xe1, 0xf3, 0xa0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xce, 0x0f, 0xf1, 0xc0, 0x9d, 0x1f, 0xb6, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xfc, 0x90, 0x0f, 0xdc, 0xf9, 0x61, 0x70, 0x50, 0x54, 0x8a, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x77, 0x7e, 0x58, 0x0c, 0xdc, 0xf9, 0x61, 0xba, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xce, 0x0f, 0x93, 0x81, 0x3b, 0x3f, 0xac, 0x0e, 0x16, 0x70, 0xc2, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x77, 0x7e, 0x98, 0x0d, 0xdc, 0xf9, 0x61, 0x77, 0x78, 0x2f, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xf3, 0xc3, 0x70, 0xe0, 0xce, 0x0f, 0xcb, 0x83, 0xa2, 0x52, 0xbc, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xd0, 0x8f, 0x3f, 0x78, 0x8e, 0x76, 0xfa, 0x06, 0x45, 0x07, 0xed, 0xe0, 0xe4, 0x86, 0xcf, 0x83, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4b, 0x3f, 0x24, 0x03, 0xd7, 0x7e, 0x88, 0x37, 0x38, 0xb1, 0xdf, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x97, 0x7e, 0x48, 0x07, 0x2e, 0xfd, 0x30, 0xdc, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xe9, 0x87, 0x78, 0xe0, 0xd2, 0x0f, 0x8b, 0x83, 0xf7, 0xd7, 0x66, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x97, 0x7e, 0x98, 0x0c, 0x5c, 0xfa, 0x61, 0x73, 0x78, 0x2f, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xf4, 0xc3, 0x68, 0xe0, 0xd2, 0x0f, 0xbb, 0x83, 0xb6, 0xfb, 0x32, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x53, 0x3f, 0x24, 0x07, 0x2f, 0x25, 0x53, 0xdf, 0x60, 0x51, 0x79, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xea, 0x87, 0x7c, 0xe0, 0xd4, 0x0f, 0xa5, 0x1b, 0x3e, 0x77, 0x19, 0xf0, 0xee, 0xd0, 0xde, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xf5, 0xc3, 0xe6, 0xe0, 0x39, 0x75, 0xea, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xfd, 0x30, 0x1a, 0x38, 0xf5, 0x43, 0xcd, 0x86, 0xcf, 0x5d, 0x06, 0x3c, 0xb4, 0x32, 0x79, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xfd, 0x30, 0x3c, 0x78, 0xcc, 0x9e, 0xfa, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x53, 0x3f, 0x2c, 0x07, 0x4e, 0xfd, 0x30, 0x3e, 0x28, 0xb4, 0x7b, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x53, 0x3f, 0xac, 0x07, 0x4e, 0xfd, 0xd0, 0xb2, 0xe1, 0xe3, 0xa8, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xf5, 0xc3, 0x7e, 0xe0, 0xd4, 0x0f, 0x25, 0x1b, 0xde, 0xd6, 0xd9, 0xa0, 0x61, 0xcb, 0xaf, 0xc3, 0x3f, 0x3c, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa7, 0x7e, 0xe8, 0x19, 0x38, 0xf5, 0x43, 0xe7, 0x86, 0xcf, 0x5d, 0x06, 0x3c, 0xb9, 0x34, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xfd, 0xd0, 0x75, 0xf0, 0x28, 0x45, 0xf5, 0x0d, 0x1f, 0x47, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xa9, 0x1f, 0xda, 0x06, 0x4e, 0xfd, 0x50, 0xb9, 0xe1, 0x6d, 0x9d, 0x0d, 0x1a, 0xce, 0xd6, 0x3e, 0xfc, 0xc3, 0xd3, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xeb, 0x87, 0x74, 0xe0, 0xd6, 0x0f, 0x93, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x62, 0x6f, 0xf1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xfa, 0x61, 0x71, 0xf0, 0xfc, 0x49, 0xf5, 0xc3, 0x63, 0x32, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb1, 0x1f, 0xb2, 0x81, 0x63, 0x3f, 0xb4, 0x6d, 0xf8, 0xdc, 0x65, 0xc0, 0x33, 0x0b, 0x3b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xd8, 0x0f, 0xf9, 0xc1, 0xc3, 0x33, 0xd5, 0x37, 0x7c, 0x90, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xfb, 0x61, 0x32, 0x70, 0xec, 0x87, 0xf9, 0x86, 0x7f, 0x73, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x63, 0x3f, 0x8c, 0x06, 0x8e, 0xfd, 0xb0, 0x3b, 0x78, 0x18, 0x14, 0xf8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xfb, 0x61, 0x38, 0x70, 0xec, 0x87, 0xf5, 0x86, 0xb7, 0x75, 0x06, 0x3c, 0xb7, 0x34, 0xfa, 0xf0, 0x0f, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xec, 0x87, 0xfd, 0xc0, 0xb1, 0x1f, 0x0a, 0x0e, 0x0f, 0xde, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb1, 0x1f, 0x1a, 0x06, 0x8e, 0xfd, 0x50, 0xb6, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xd8, 0x0f, 0x15, 0x03, 0xc7, 0x7e, 0x68, 0x39, 0x28, 0xb4, 0x7b, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x63, 0x3f, 0xd4, 0x0c, 0x1c, 0xfb, 0xa1, 0x6b, 0xc3, 0xdb, 0x3a, 0x1b, 0x34, 0xba, 0xf5, 0x79, 0xf8, 0x87, 0xa7, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xf6, 0x43, 0x72, 0xf0, 0x52, 0x32, 0xf5, 0x0d, 0x9f, 0xbb, 0x6c, 0x50, 0x8a, 0x0e, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb5, 0x1f, 0xd2, 0x83, 0x97, 0x92, 0xa9, 0x1f, 0x04, 0x2c, 0xeb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xfc, 0xf1, 0x07, 0xcf, 0xd1, 0x4e, 0xdf, 0xa0, 0x20, 0x8d, 0xdd, 0x60, 0x91, 0xf0, 0xec, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xf1, 0x87, 0x64, 0xe0, 0xe4, 0x0f, 0xbd, 0x1b, 0x14, 0x9d, 0xc6, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xc5, 0x1f, 0xd2, 0x81, 0x8b, 0x3f, 0x2c, 0x0e, 0x16, 0xec, 0xa0, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x17, 0x7f, 0xd8, 0x0c, 0x5c, 0xfc, 0xa1, 0x70, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xc5, 0x1f, 0x46, 0x03, 0x17, 0x7f, 0xd8, 0x1d, 0x94, 0x44, 0xb3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xc5, 0x1f, 0x86, 0x03, 0x17, 0x7f, 0x58, 0x6f, 0x78, 0x5b, 0x67, 0xc0, 0x13, 0x7b, 0x8b, 0x0f, 0x9f, 0x07, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x17, 0x7f, 0x98, 0x0f, 0x5c, 0xfc, 0xa1, 0x6b, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xc5, 0x1f, 0xf6, 0x03, 0x17, 0x7f, 0x28, 0x39, 0x78, 0xe5, 0xda, 0xf7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xf1, 0x87, 0x96, 0x81, 0x8b, 0x3f, 0x54, 0x6d, 0x78, 0x5b, 0x67, 0x83, 0x52, 0x74, 0xe0, 0xa0, 0xc8, 0x97, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xf8, 0x43, 0xd9, 0xc0, 0xc5, 0x1f, 0xfa, 0x0e, 0xda, 0xee, 0xcb, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xfe, 0x90, 0x1c, 0x3c, 0xbf, 0x57, 0x7d, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xc9, 0x1f, 0xa2, 0x81, 0x93, 0x3f, 0xc4, 0x07, 0xeb, 0x5a, 0x49, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x93, 0x3f, 0xe4, 0x03, 0x27, 0x7f, 0x98, 0x1c, 0x2c, 0xb0, 0x33, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xfe, 0xb0, 0x19, 0x38, 0xf9, 0x43, 0xed, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x93, 0x3f, 0x8c, 0x06, 0x4e, 0xfe, 0x30, 0x3c, 0x58, 0x56, 0x09, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0xfc, 0x61, 0x39, 0x70, 0xf2, 0x87, 0xf5, 0xc1, 0x72, 0x64, 0xe1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xe4, 0x0f, 0xf3, 0x81, 0x93, 0x3f, 0xb4, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xf9, 0xc3, 0x7e, 0xe0, 0xe4, 0x0f, 0x1d, 0x07, 0x0b, 0x15, 0x43, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x93, 0x3f, 0x94, 0x0c, 0x9c, 0xfc, 0xa1, 0x74, 0x83, 0x15, 0x42, 0x4d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xc9, 0x1f, 0x7a, 0x06, 0x4e, 0xfe, 0xd0, 0x75, 0xb0, 0xec, 0x18, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xf9, 0x43, 0xd9, 0xc0, 0xc9, 0x1f, 0xfa, 0x0e, 0x16, 0xd8, 0x99, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x27, 0x7f, 0x28, 0x1c, 0x38, 0xf9, 0x43, 0xe7, 0xc1, 0x3a, 0x69, 0xd0, 0xaa, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xf9, 0xe3, 0x0f, 0x9e, 0xa3, 0x9d, 0xbe, 0x41, 0x41, 0x1a, 0xbb, 0xc1, 0xca, 0xa0, 0xdc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xe8, 0x0f, 0xc9, 0xc0, 0xd9, 0x1f, 0x7a, 0x36, 0x28, 0x76, 0x34, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa3, 0x3f, 0xa4, 0x03, 0x47, 0x7f, 0x58, 0x6e, 0xf8, 0x37, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xfa, 0x43, 0x3e, 0x70, 0xf4, 0x87, 0xc9, 0xc1, 0xc3, 0xa0, 0xc0, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xe8, 0x0f, 0x9b, 0x81, 0xa3, 0x3f, 0x0c, 0x0f, 0xde, 0x5d, 0xaa, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xfd, 0x21, 0x1b, 0xb8, 0xfa, 0x43, 0xdb, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xab, 0x3f, 0x84, 0x03, 0x57, 0x7f, 0xa8, 0xd9, 0xf0, 0x41, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xf5, 0x87, 0x7c, 0xe0, 0xea, 0x0f, 0xcb, 0x0d, 0xff, 0xe6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x57, 0x7f, 0x58, 0x0c, 0x5c, 0xfd, 0x61, 0x72, 0x78, 0x4c, 0x66, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xae, 0xfe, 0xb0, 0x19, 0xb8, 0xfa, 0xc3, 0x70, 0xc3, 0xdb, 0x3a, 0x03, 0x1e, 0x5d, 0x58, 0x7d, 0xf8, 0x87, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xfa, 0xc3, 0x74, 0xe0, 0xea, 0x0f, 0xfb, 0x83, 0x07, 0xb0, 0x5d, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xd5, 0x1f, 0x0a, 0x06, 0xae, 0xfe, 0xd0, 0x72, 0xf0, 0xaa, 0xba, 0xeb, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xea, 0x0f, 0x3d, 0x03, 0x57, 0x7f, 0x28, 0xdb, 0xf0, 0xb6, 0xce, 0x80, 0x67, 0x16, 0x76, 0x1e, 0x14, 0xf9, 0xb2, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xd9, 0x1f, 0x92, 0x83, 0x77, 0xf6, 0xab, 0x6f, 0x50, 0xf0, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x67, 0x7f, 0x08, 0x07, 0xce, 0xfe, 0x50, 0xb2, 0xe1, 0x11, 0xd6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xec, 0x0f, 0xf1, 0xc0, 0xd9, 0x1f, 0x86, 0x1b, 0xfe, 0xcd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0xfe, 0x30, 0x18, 0x38, 0xfb, 0xc3, 0xe2, 0xf0, 0xe0, 0xcd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0xfd, 0x61, 0x32, 0x70, 0xf6, 0x87, 0xdd, 0xc1, 0xf3, 0x27, 0xd6, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb3, 0x3f, 0x2c, 0x07, 0xce, 0xfe, 0xd0, 0xb1, 0xe1, 0xdf, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xec, 0x0f, 0xdb, 0x81, 0xb3, 0x3f, 0x8c, 0x0f, 0x0f, 0xde, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xd9, 0x1f, 0xd6, 0x03, 0x67, 0x7f, 0xa8, 0x38, 0x78, 0x54, 0xc7, 0x7a, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xf6, 0x87, 0x96, 0x81, 0xb3, 0x3f, 0xd4, 0x1c, 0x14, 0x14, 0x99, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xf8, 0xc7, 0x1f, 0x3c, 0x47, 0x3b, 0x7d, 0x83, 0xa2, 0x4f, 0x77, 0x83, 0x07, 0x6a, 0x7d, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x87, 0x7f, 0x98, 0x0c, 0x1c, 0xfe, 0xa1, 0x63, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xe1, 0x1f, 0x36, 0x03, 0x87, 0x7f, 0x98, 0x1d, 0xfe, 0x04, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0xff, 0xb0, 0x1b, 0x38, 0xfc, 0xc3, 0xf8, 0xe0, 0x95, 0x6b, 0xdf, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xe1, 0x1f, 0xd6, 0x03, 0x87, 0x7f, 0xa8, 0x38, 0x78, 0xb3, 0xb4, 0x7a, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xf9, 0xc7, 0x1f, 0x3c, 0x47, 0x3b, 0x7d, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xe5, 0x1f, 0x82, 0x81, 0xcb, 0x3f, 0xec, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xfe, 0x21, 0x19, 0xb8, 0xfc, 0x43, 0xbc, 0xe1, 0x6d, 0x9d, 0x01, 0xef, 0x0e, 0xed, 0x3d, 0x28, 0xf2, 0x65, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xcb, 0x3f, 0xe4, 0x03, 0x97, 0x7f, 0x98, 0x6e, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xfc, 0xc3, 0x60, 0xe0, 0xf2, 0x0f, 0xab, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x62, 0x6f, 0xf1, 0x41, 0x91, 0x2f, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xfe, 0x61, 0x36, 0x70, 0xf9, 0x87, 0xe5, 0xc1, 0x32, 0xab, 0xdc, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xcb, 0x3f, 0x6c, 0x07, 0x2e, 0xff, 0x30, 0x3f, 0x68, 0xbb, 0x2f, 0xb3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xf2, 0x0f, 0x05, 0x03, 0x97, 0x7f, 0x68, 0x38, 0xbc, 0x17, 0xd4, 0x2c, 0xf0, 0x65, 0xee, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xf3, 0xf1, 0x03, 0xd7, 0x7d, 0xb8, 0xb2, 0xe1, 0x17, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x9e, 0x0f, 0xd9, 0xc0, 0x3d, 0x1f, 0x46, 0x07, 0xef, 0xf5, 0x61, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x83, 0x3e, 0xfe, 0xe0, 0xc5, 0x5f, 0xeb, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0xfa, 0x90, 0x0d, 0x1c, 0xf4, 0x21, 0x3f, 0x78, 0x58, 0xcc, 0xe8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xf4, 0xf1, 0x07, 0x2f, 0xfe, 0x5a, 0xdf, 0xa0, 0x20, 0x8d, 0xdd, 0xa0, 0x61, 0xcb, 0xaf, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xa2, 0x0f, 0x83, 0x81, 0x8b, 0x3e, 0x34, 0x6f, 0x50, 0xc2, 0x63, 0x6e, 0xf0, 0xe6, 0x26, 0xe6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xa2, 0x0f, 0xbb, 0x81, 0x8b, 0x3e, 0x0c, 0x0f, 0x0f, 0xde, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x45, 0x1f, 0x96, 0x03, 0x17, 0x7d, 0x28, 0xde, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xd1, 0x87, 0xe9, 0xc0, 0x45, 0x1f, 0xd6, 0x07, 0xa7, 0x03, 0xbe, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xa2, 0x0f, 0xf3, 0x81, 0x8b, 0x3e, 0xf4, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xe8, 0xc3, 0x7e, 0xe0, 0xa2, 0x0f, 0x15, 0x87, 0xd7, 0x7c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x8b, 0x3e, 0x74, 0x0c, 0x5c, 0xf4, 0xa1, 0x76, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x45, 0x1f, 0x4a, 0x06, 0x2e, 0xfa, 0xd0, 0x73, 0x50, 0x14, 0xff, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x17, 0x7d, 0x28, 0x1a, 0xb8, 0xe8, 0x43, 0xd3, 0xc1, 0xa9, 0xb9, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xe8, 0x43, 0xd5, 0xc0, 0x45, 0x1f, 0x5a, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xf4, 0xa1, 0x6b, 0xe0, 0xa2, 0x0f, 0x75, 0x07, 0x45, 0x26, 0xee, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xd1, 0x87, 0xbe, 0x81, 0x8b, 0x3e, 0x14, 0x1e, 0x9c, 0x17, 0x68, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x8b, 0x3e, 0x34, 0x0e, 0x5c, 0xf4, 0xa1, 0xf4, 0xe0, 0x61, 0x4d, 0xcc, 0x55, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xd2, 0xc7, 0x1f, 0xbc, 0xf8, 0x6b, 0x7d, 0x83, 0x82, 0x34, 0x76, 0x83, 0x86, 0xb3, 0xb5, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x93, 0x3e, 0x0c, 0x06, 0x4e, 0xfa, 0xd0, 0xb5, 0x41, 0x09, 0x8f, 0xb9, 0xc1, 0x0b, 0xcb, 0x98, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x93, 0x3e, 0xec, 0x06, 0x4e, 0xfa, 0x30, 0x3c, 0x3c, 0x78, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x27, 0x7d, 0x58, 0x0e, 0x9c, 0xf4, 0xa1, 0x6a, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x49, 0x1f, 0xa6, 0x03, 0x27, 0x7d, 0x58, 0x1f, 0x5e, 0xf3, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xfa, 0x30, 0x1f, 0x38, 0xe9, 0x43, 0xd3, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x93, 0x3e, 0xec, 0x07, 0x4e, 0xfa, 0x50, 0x71, 0x50, 0x14, 0xff, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x27, 0x7d, 0xe8, 0x18, 0x38, 0xe9, 0x43, 0xc9, 0x41, 0x51, 0x29, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0xf4, 0xa1, 0x65, 0xe0, 0xa4, 0x0f, 0x45, 0x07, 0xcf, 0x28, 0x63, 0xae, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xe9, 0xe3, 0x0f, 0x5e, 0xfc, 0xb5, 0xbe, 0x41, 0x41, 0x1a, 0xbb, 0x06, 0x25, 0x74, 0xec, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xd3, 0x87, 0x6c, 0xe0, 0xa6, 0x0f, 0x55, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xfa, 0x10, 0x0e, 0xdc, 0xf4, 0x61, 0xb1, 0xe1, 0xcf, 0xa5, 0x01, 0xcf, 0x2d, 0x8d, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9b, 0x3e, 0x0c, 0x0e, 0xde, 0x24, 0xbb, 0x7e, 0xf8, 0xa1, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xe9, 0xc3, 0x64, 0xe0, 0xa6, 0x0f, 0xbb, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x74, 0x61, 0xf5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xf4, 0x61, 0x76, 0xf0, 0x1c, 0xdc, 0xf5, 0xc3, 0x0f, 0x35, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x4d, 0x1f, 0x86, 0x03, 0x37, 0x7d, 0x58, 0x6f, 0xf8, 0x73, 0x69, 0x83, 0x46, 0xb7, 0x3e, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xa6, 0x0f, 0xe3, 0x83, 0x97, 0xf8, 0xae, 0x1f, 0x7e, 0xa8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xfa, 0x30, 0x1f, 0xb8, 0xe9, 0x43, 0xc7, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0xb3, 0x3c, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xfa, 0x50, 0x71, 0xf0, 0x08, 0xe2, 0xf5, 0xc3, 0x0f, 0x35, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x4d, 0x1f, 0x4a, 0x06, 0x6e, 0xfa, 0xd0, 0xb4, 0xe1, 0xcf, 0xa5, 0x01, 0xcf, 0x2c, 0xec, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9b, 0x3e, 0x14, 0x1d, 0x3c, 0x41, 0x79, 0xfd, 0xf0, 0x43, 0x4d, 0x07, 0x61, 0x3a, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xf5, 0x21, 0x19, 0xb8, 0xeb, 0xc3, 0x85, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x56, 0x32, 0xe5, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x57, 0x7d, 0xc8, 0x06, 0xae, 0xfa, 0x30, 0xde, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xd5, 0x87, 0x70, 0xe0, 0xaa, 0x0f, 0xf9, 0xc1, 0xc3, 0xa0, 0xc0, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xab, 0x3e, 0x0c, 0x06, 0xae, 0xfa, 0xb0, 0x39, 0x78, 0x33, 0x09, 0xf8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xd5, 0x87, 0xd1, 0xc0, 0x55, 0x1f, 0x76, 0x07, 0x6f, 0x26, 0x01, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xae, 0xfa, 0x30, 0x1c, 0xb8, 0xea, 0xc3, 0xf2, 0xf0, 0xe0, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xd5, 0x87, 0xe9, 0xc0, 0x55, 0x1f, 0xb6, 0x87, 0x07, 0x6f, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb3, 0x3e, 0x24, 0x07, 0x8f, 0x83, 0x5e, 0xdf, 0xa0, 0x20, 0x8d, 0xdd, 0xa0, 0xd1, 0xad, 0xcf, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xac, 0x0f, 0x93, 0x81, 0xb3, 0x3e, 0xb4, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xeb, 0xc3, 0x66, 0xe0, 0xac, 0x0f, 0xb3, 0xc3, 0x6b, 0x3e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x59, 0x1f, 0x76, 0x03, 0x67, 0x7d, 0x28, 0xdd, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xd6, 0x87, 0xe1, 0xc0, 0x59, 0x1f, 0xb6, 0x07, 0xa7, 0x03, 0xbe, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xac, 0x0f, 0xe3, 0x81, 0xb3, 0x3e, 0x74, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xeb, 0xc3, 0x7a, 0xe0, 0xac, 0x0f, 0x05, 0x07, 0x45, 0xf1, 0xef, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xd6, 0x87, 0x86, 0x81, 0xb3, 0x3e, 0x54, 0x1c, 0x14, 0x95, 0xe2, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x59, 0x1f, 0x3a, 0x06, 0xce, 0xfa, 0x50, 0xb9, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xac, 0x0f, 0x25, 0x03, 0x67, 0x7d, 0xe8, 0x39, 0x28, 0xb2, 0x4c, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb3, 0x3e, 0x14, 0x0d, 0x9c, 0xf5, 0xa1, 0xe9, 0xf0, 0x98, 0xcc, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xd6, 0x87, 0xaa, 0x81, 0xb3, 0x3e, 0x34, 0x1e, 0x3c, 0xdb, 0x92, 0xb9, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xfa, 0x90, 0x1c, 0x3c, 0x0e, 0x7a, 0x7d, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x5d, 0x1f, 0xa2, 0x81, 0xbb, 0x3e, 0xa4, 0x07, 0x6f, 0x26, 0x01, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xfa, 0x10, 0x0f, 0xdc, 0xf5, 0xa1, 0x6b, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x5d, 0x1f, 0x16, 0x03, 0x77, 0x7d, 0xa8, 0xd8, 0xa0, 0x98, 0xc4, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xfa, 0x30, 0x1a, 0xb8, 0xeb, 0xc3, 0x72, 0x43, 0x06, 0xfc, 0xe0, 0x6d, 0x6c, 0xd7, 0x07, 0x6f, 0x58, 0x64, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xfa, 0xd0, 0x31, 0x70, 0xd7, 0x87, 0x9a, 0x83, 0x87, 0x41, 0x81, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x5d, 0x1f, 0x7a, 0x06, 0xee, 0xfa, 0x50, 0x75, 0xf0, 0x66, 0x12, 0xf0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xae, 0x0f, 0x65, 0x03, 0x77, 0x7d, 0xe8, 0xdb, 0xf0, 0xb6, 0xce, 0x41, 0x33, 0x7d, 0x9f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x5d, 0x1f, 0x0a, 0x07, 0xee, 0xfa, 0xd0, 0xbc, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xae, 0x0f, 0x8d, 0x03, 0x77, 0x7d, 0x28, 0x3d, 0x28, 0xb4, 0x7b, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbb, 0x3e, 0xb4, 0x0e, 0xdc, 0xf5, 0xa1, 0xf8, 0xe0, 0xf1, 0x1a, 0xec, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x77, 0x7d, 0xa8, 0x1e, 0xb8, 0xeb, 0xc3, 0x83, 0x83, 0x67, 0x5b, 0x32, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x97, 0x7d, 0xfc, 0xc1, 0x8b, 0xbf, 0xd6, 0x37, 0x28, 0x48, 0x63, 0x37, 0x28, 0x45, 0x07, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xcb, 0x3e, 0x0c, 0x06, 0x2e, 0xfb, 0x70, 0x60, 0x83, 0xa3, 0x0d, 0xdf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xd9, 0x87, 0xcd, 0xc0, 0x65, 0x1f, 0x4a, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xf6, 0x61, 0x34, 0x70, 0xd9, 0x87, 0xfd, 0x86, 0xcf, 0x5d, 0x06, 0x87, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xb2, 0x0f, 0xb3, 0x83, 0xd7, 0xc6, 0xb0, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xec, 0xc3, 0x6e, 0xe0, 0xb2, 0x0f, 0xd3, 0x83, 0xa2, 0xf8, 0x77, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xec, 0xc3, 0x76, 0xe0, 0xb2, 0x0f, 0xe3, 0x83, 0xa2, 0x52, 0x7c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xec, 0xc3, 0x7a, 0xe0, 0xb2, 0x0f, 0xf3, 0xc3, 0x33, 0x93, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x97, 0x7d, 0x28, 0x18, 0xb8, 0xec, 0x43, 0xc7, 0x86, 0xcf, 0x5d, 0x06, 0x8f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xb2, 0x0f, 0x15, 0x07, 0x8f, 0xfc, 0x61, 0x3f, 0x3c, 0x33, 0xd9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xf6, 0xa1, 0x65, 0xe0, 0xb2, 0x0f, 0xfd, 0x1b, 0xbe, 0x7e, 0xd9, 0x60, 0xad, 0x42, 0xdd, 0x86, 0xaf, 0x5f, 0x36, 0x7c, 0x08, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x97, 0x7d, 0x68, 0x3a, 0x78, 0x4e, 0x11, 0xfb, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xcb, 0x3e, 0x54, 0x0d, 0x5c, 0xf6, 0xa1, 0xed, 0x60, 0xad, 0x63, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xd9, 0x87, 0xba, 0x81, 0xcb, 0x3e, 0xf4, 0x1d, 0x14, 0x95, 0xe2, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x65, 0x1f, 0x0a, 0x07, 0x2e, 0xfb, 0x50, 0xbf, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xb2, 0x0f, 0x8d, 0x03, 0x97, 0x7d, 0x68, 0xdd, 0xf0, 0xb6, 0xce, 0x06, 0x67, 0x18, 0xc9, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xcb, 0x3e, 0xd4, 0x0e, 0x5c, 0xf6, 0xa1, 0xf9, 0x60, 0x75, 0x58, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xd9, 0x87, 0xea, 0x81, 0xcb, 0x3e, 0xb4, 0x1f, 0xb4, 0xdd, 0x97, 0x59, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xda, 0xc7, 0x1f, 0xbc, 0xf8, 0x6b, 0x7d, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xed, 0x43, 0x36, 0x70, 0xda, 0x87, 0xc2, 0x0d, 0x8f, 0xb0, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa7, 0x7d, 0x48, 0x07, 0x4e, 0xfb, 0x30, 0xdb, 0xa0, 0x98, 0xc4, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xfb, 0x30, 0x18, 0x38, 0xed, 0xc3, 0xe2, 0xa0, 0x48, 0xc5, 0x3c, 0x68, 0xd6, 0x2f, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xed, 0xc3, 0x6e, 0xe0, 0xb4, 0x0f, 0x7d, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xfb, 0x30, 0x1c, 0x38, 0xed, 0xc3, 0xf6, 0xf0, 0xc5, 0xd9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xda, 0x87, 0xf1, 0xc0, 0x69, 0x1f, 0x1a, 0x36, 0xbc, 0xad, 0x33, 0x38, 0x7c, 0xb0, 0x08, 0x64, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xed, 0x43, 0xc5, 0xc0, 0x69, 0x1f, 0xea, 0x36, 0x58, 0xd8, 0xb9, 0xb4, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa7, 0x7d, 0x68, 0x19, 0x38, 0xed, 0x43, 0xdb, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd3, 0x3e, 0xd4, 0x0c, 0x9c, 0xf6, 0xa1, 0xe9, 0xa0, 0xd0, 0xee, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xfb, 0x50, 0x35, 0x70, 0xda, 0x87, 0xb2, 0x83, 0xc3, 0xab, 0x5c, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb7, 0x7d, 0xfc, 0xc1, 0x8b, 0xbf, 0xd6, 0x37, 0x38, 0xe7, 0x2f, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb7, 0x7d, 0xc8, 0x06, 0x6e, 0xfb, 0xb0, 0xd8, 0xf0, 0xb9, 0xcb, 0x86, 0xef, 0xe8, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xb6, 0x0f, 0x83, 0x83, 0xa7, 0xfe, 0xb1, 0x1f, 0x14, 0x95, 0xe2, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x71, 0x1f, 0x92, 0x81, 0xe3, 0x3e, 0x54, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xee, 0x43, 0x34, 0x70, 0xdc, 0x87, 0x74, 0x83, 0xa5, 0x5f, 0xaf, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xdc, 0x87, 0xf0, 0xe0, 0x35, 0x88, 0xec, 0x07, 0x05, 0x45, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xdc, 0x87, 0x78, 0xe0, 0xb8, 0x0f, 0xf9, 0xe1, 0xc1, 0x9b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xb8, 0x0f, 0x83, 0x81, 0xe3, 0x3e, 0xec, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xf7, 0x61, 0x31, 0x70, 0xdc, 0x87, 0xc9, 0x41, 0xc0, 0xb2, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc7, 0x7d, 0xd8, 0x0c, 0x1c, 0xf7, 0x61, 0xb6, 0xe1, 0x6d, 0x9d, 0x83, 0xe6, 0xb4, 0xbf, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0xfb, 0x30, 0x1c, 0x38, 0xee, 0xc3, 0x7e, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x71, 0x1f, 0x96, 0x03, 0xc7, 0x7d, 0x98, 0x1e, 0x04, 0x2c, 0xeb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xdc, 0x87, 0xed, 0xc0, 0x71, 0x1f, 0xe6, 0x07, 0xad, 0xa3, 0x6b, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xf7, 0xa1, 0x60, 0xe0, 0xb8, 0x0f, 0x3d, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0xfb, 0xd0, 0x30, 0x70, 0xdc, 0x87, 0x8a, 0xc3, 0x63, 0x32, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x71, 0x1f, 0x3a, 0x06, 0x8e, 0xfb, 0x50, 0xb3, 0xe1, 0x6d, 0x9d, 0x01, 0xcf, 0x2d, 0x8d, 0xae, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xb8, 0x0f, 0x45, 0x03, 0xc7, 0x7d, 0xe8, 0xdb, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xdc, 0x87, 0xa6, 0x81, 0xe3, 0x3e, 0x54, 0x1d, 0x1e, 0x93, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0xfb, 0xd0, 0x35, 0x70, 0xdc, 0x87, 0xba, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x74, 0x61, 0x75, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc7, 0x7d, 0x28, 0x1c, 0x38, 0xee, 0x43, 0xef, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe3, 0x3e, 0x34, 0x0e, 0x1c, 0xf7, 0xa1, 0xf2, 0x20, 0x60, 0x59, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe3, 0x3e, 0x74, 0x0e, 0x1c, 0xf7, 0xa1, 0xf6, 0xe0, 0xf1, 0x1a, 0xec, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc7, 0x7d, 0x28, 0x1e, 0x38, 0xee, 0x43, 0xf3, 0x41, 0x41, 0x91, 0xd9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xf7, 0xf1, 0x07, 0x2f, 0xfe, 0x5a, 0xdf, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xdd, 0x87, 0x60, 0xe0, 0xba, 0x0f, 0xd3, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd7, 0x7d, 0x48, 0x06, 0xae, 0xfb, 0xb0, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xdd, 0x87, 0x68, 0xe0, 0xba, 0x0f, 0xe9, 0x41, 0xa1, 0xdd, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xf7, 0x21, 0x1e, 0xb8, 0xee, 0xc3, 0x68, 0xc3, 0xc7, 0x51, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xdd, 0x87, 0xc1, 0xc0, 0x75, 0x1f, 0x36, 0x07, 0xaf, 0xb2, 0x64, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xee, 0xc3, 0x6c, 0xe0, 0xba, 0x0f, 0xcb, 0x83, 0x87, 0x35, 0x31, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xf7, 0x61, 0x3b, 0x70, 0xdd, 0x87, 0x9e, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd7, 0x7d, 0x18, 0x0f, 0x5c, 0xf7, 0xa1, 0x62, 0xc3, 0xc7, 0x51, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xdd, 0x87, 0xf9, 0xc0, 0x75, 0x1f, 0x1a, 0x0e, 0x5a, 0x47, 0xd7, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xae, 0xfb, 0xd0, 0x31, 0x70, 0xdd, 0x87, 0x9a, 0x83, 0x67, 0x94, 0x31, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xf7, 0xa1, 0x68, 0xe0, 0xba, 0x0f, 0x7d, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xae, 0xfb, 0xd0, 0x34, 0x70, 0xdd, 0x87, 0xaa, 0xc3, 0x63, 0x32, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x75, 0x1f, 0xba, 0x06, 0xae, 0xfb, 0x50, 0x77, 0xf0, 0x40, 0x3a, 0xe6, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xeb, 0x3e, 0x14, 0x0e, 0x5c, 0xf7, 0xa1, 0x79, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x75, 0x1f, 0x1a, 0x07, 0xae, 0xfb, 0x50, 0xba, 0xe1, 0x6d, 0x9d, 0x01, 0xef, 0x2c, 0xcf, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xee, 0x43, 0xeb, 0xc0, 0x75, 0x1f, 0x8a, 0x37, 0xbc, 0xad, 0x33, 0xe0, 0x99, 0x85, 0x9d, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xf7, 0xa1, 0x7a, 0xe0, 0xba, 0x0f, 0x1f, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xf7, 0xa1, 0x7b, 0xe0, 0xba, 0x0f, 0xe5, 0x07, 0x01, 0xcb, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xf7, 0xa1, 0x7d, 0xe0, 0xba, 0x0f, 0x17, 0x0e, 0x9e, 0xec, 0xc6, 0xde, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xdd, 0x87, 0x13, 0x03, 0xd7, 0x7d, 0xf8, 0x71, 0xb0, 0xd2, 0x63, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xee, 0xc3, 0x91, 0x81, 0xeb, 0x3e, 0x3c, 0x39, 0x28, 0x28, 0x32, 0x3b, 0x9c, 0x62, 0x87, 0x53, 0xec, 0x70, 0x8a, 0xb5, 0x06, 0xcb, 0x77, 0x7b, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x38, 0x32, 0x84, 0x1e, 0x2c, 0xdf, 0xed, 0x69, 0x00, 0x9e, 0xa7, 0xa8, 0xaa, 0x9c, 0x40, 0xdc, 0xde, 0xe8, 0xd2, 0xcc, 0xd2, 0xc6, 0xc2, 0xe8, 0xd2, 0xde, 0xdc, 0xe6, 0x58, 0x40, 0xcc, 0xe4, 0xde, 0xda, 0x40, 0xea, 0xdc, 0xd2, 0xf0, 0x95, 0x00, 0xf8, 0xc3, 0x85, 0x2d, 0xcc, 0xad, 0x0c, 0x24, 0x6d, 0x0e, 0x84, 0x0e, 0xad, 0x0c, 0x84, 0x2d, 0x8c, 0xae, 0x6c, 0x8e, 0x0e, 0x64, 0x2c, 0x6c, 0x0c, 0xad, 0x8c, 0x0c, 0x84, 0x2d, 0xcc, 0xad, 0x0c, 0x24, 0xcd, 0x0d, 0xc4, 0xae, 0x4c, 0xae, 0x8c, 0x05, 0xc4, 0x4c, 0xee, 0xad, 0x0d, 0x84, 0x0e, 0xad, 0x0c, 0x04, 0xee, 0x2d, 0xcd, 0x8d, 0x0e, 0xe4, 0xcd, 0x0c, 0xc4, 0x2e, 0xad, 0xec, 0x0e, 0xe4, 0xcd, 0x0c, 0xc4, 0x65, 0x0e, 0x2d, 0x0d, 0xae, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0xe5, 0xbb, 0x3d, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x12, 0xc4, 0x0d, 0x5c, 0x05, 0xf1, 0x1b, 0x04, 0xed, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x12, 0x84, 0x64, 0xe0, 0x24, 0x08, 0xe3, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x27, 0x41, 0x88, 0x06, 0x4e, 0x82, 0x90, 0x1f, 0xb4, 0xf5, 0x26, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x04, 0x61, 0x30, 0x70, 0x12, 0x84, 0xd5, 0x86, 0x3f, 0x97, 0x36, 0x68, 0xfa, 0x7a, 0x7c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0x82, 0xb0, 0x38, 0x78, 0xa5, 0x45, 0xfb, 0x41, 0xdb, 0xd6, 0xe3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x49, 0x10, 0x66, 0x03, 0x27, 0x41, 0xd8, 0x6e, 0xf8, 0x73, 0x69, 0x83, 0x97, 0xfd, 0x0d, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x49, 0x10, 0x76, 0x07, 0x2f, 0xe5, 0x68, 0x3f, 0x78, 0x95, 0xe0, 0x70, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x4d, 0x10, 0x92, 0x81, 0x9b, 0x20, 0x8c, 0x37, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x04, 0x21, 0x1a, 0xb8, 0x09, 0x42, 0x7e, 0xf0, 0x8e, 0x31, 0xcb, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x26, 0x08, 0x83, 0x81, 0x9b, 0x20, 0xac, 0x36, 0xfc, 0xb9, 0xb4, 0x41, 0xd3, 0xd7, 0xe3, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x13, 0x84, 0xc5, 0xc1, 0x83, 0x50, 0xda, 0x0f, 0xda, 0xb6, 0x1e, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0x82, 0x30, 0x1b, 0xb8, 0x09, 0xc2, 0x76, 0xc3, 0x9f, 0x4b, 0x1b, 0xbc, 0xec, 0x6f, 0x78, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0x82, 0xb0, 0x3b, 0x78, 0x94, 0x4b, 0xfb, 0xc1, 0xab, 0x04, 0x87, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0x82, 0x90, 0x0c, 0x1c, 0x05, 0x61, 0xbc, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x28, 0x08, 0xd1, 0xc0, 0x51, 0x10, 0xf2, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x05, 0xfe, 0x9b, 0xdb, 0x58, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x05, 0x61, 0x30, 0x70, 0x14, 0x84, 0xd5, 0x86, 0x3f, 0x97, 0x36, 0x68, 0xfa, 0x7a, 0x7c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0x82, 0xb0, 0x38, 0x78, 0xb5, 0x4e, 0xfb, 0x41, 0xdb, 0xd6, 0xe3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x51, 0x10, 0x66, 0x03, 0x47, 0x41, 0xd8, 0x6e, 0xf8, 0x73, 0x69, 0x83, 0x97, 0xfd, 0x0d, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x51, 0x10, 0x76, 0x07, 0x2f, 0x07, 0x6a, 0x3f, 0x78, 0x95, 0xe0, 0x70, 0xad, 0x06, 0x4f, 0xc1, 0xed, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x8b, 0x2f, 0x6e, 0xe0, 0xea, 0x8b, 0xdf, 0xf0, 0x8b, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xf1, 0x85, 0x64, 0xe0, 0xe2, 0x0b, 0xf1, 0x86, 0x3f, 0x97, 0x36, 0x78, 0xad, 0x19, 0xf7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x7c, 0x21, 0x3a, 0x78, 0x8e, 0x52, 0xfb, 0x86, 0x7f, 0xe7, 0xd7, 0xe0, 0xb5, 0x66, 0xdc, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x27, 0x5f, 0xdc, 0xc1, 0x33, 0x8f, 0xda, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x7c, 0x21, 0x19, 0x38, 0xf9, 0x42, 0xc1, 0x86, 0xcf, 0x5d, 0x36, 0x48, 0x4c, 0x3c, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x93, 0x2f, 0xa4, 0x07, 0x8f, 0x9b, 0x6a, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xf2, 0x85, 0x78, 0xe0, 0xe4, 0x0b, 0x8b, 0x83, 0x92, 0x68, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xf9, 0xc2, 0x64, 0xe0, 0xe4, 0x0b, 0x9b, 0x83, 0xa2, 0x52, 0x7c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xf9, 0xc2, 0x68, 0xe0, 0xe4, 0x0b, 0xd3, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x27, 0x5f, 0x58, 0x0d, 0x9c, 0x7c, 0x61, 0x76, 0x78, 0xf0, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xf9, 0xc2, 0x6e, 0xe0, 0xe4, 0x0b, 0xcb, 0x83, 0x14, 0xe8, 0xd4, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x93, 0x2f, 0x6c, 0x07, 0x4e, 0xbe, 0xb0, 0xdf, 0xf0, 0xb6, 0xce, 0xc1, 0xe3, 0x9c, 0xda, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xbe, 0x90, 0x0c, 0xdc, 0x7c, 0xa1, 0x60, 0xc3, 0xe7, 0x2e, 0x1b, 0x34, 0xfa, 0x47, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x37, 0x5f, 0x48, 0x0f, 0xde, 0xa4, 0xd6, 0xbe, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xe6, 0x0b, 0xf1, 0xc0, 0xcd, 0x17, 0x16, 0x07, 0x25, 0xd1, 0xec, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xf3, 0x85, 0xc9, 0xc0, 0xcd, 0x17, 0x36, 0x07, 0x45, 0xa5, 0xf8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xf3, 0x85, 0xd1, 0xc0, 0xcd, 0x17, 0xa6, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xbe, 0xb0, 0x1a, 0xb8, 0xf9, 0xc2, 0xee, 0x20, 0x05, 0x3a, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xf9, 0xc2, 0x70, 0xe0, 0xe6, 0x0b, 0xcb, 0x83, 0x53, 0x73, 0x5b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xcd, 0x17, 0xb6, 0x03, 0x37, 0x5f, 0xd8, 0x1f, 0x3c, 0xf2, 0xac, 0xbd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xe8, 0x0b, 0xc9, 0xc0, 0xd1, 0x17, 0xc6, 0x1b, 0x3e, 0x77, 0xd9, 0xa0, 0xa8, 0x2d, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa3, 0x2f, 0xa4, 0x07, 0xef, 0x06, 0x6c, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xf4, 0x85, 0x78, 0xe0, 0xe8, 0x0b, 0x8b, 0x83, 0x12, 0x1f, 0x77, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xfa, 0xc2, 0x64, 0xe0, 0xe8, 0x0b, 0xb3, 0x0d, 0x8a, 0x4a, 0xf1, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xfa, 0xc2, 0xe8, 0xe0, 0x79, 0x89, 0xed, 0x1b, 0x7e, 0x84, 0xd9, 0x50, 0xf3, 0xc3, 0x89, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xe8, 0x0b, 0xbb, 0x81, 0xa3, 0x2f, 0x6c, 0x0f, 0x1e, 0x79, 0xd6, 0x5e, 0xab, 0xc1, 0x3b, 0x08, 0x8c, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x38, 0x32, 0x84, 0x1e, 0xbc, 0x83, 0xc0, 0xb8, 0x01, 0xf0, 0xee, 0x0e, 0x2d, 0x8c, 0x0e, 0x84, 0xee, 0x0d, 0x84, 0xec, 0x0d, 0xe4, 0x0e, 0xad, 0xcc, 0x0d, 0xe4, 0xae, 0x0c, 0x84, 0xad, 0x2c, 0x4c, 0xce, 0x0d, 0x24, 0x0c, 0x04, 0xae, 0xac, 0x4c, 0xee, 0x64, 0x0e, 0x84, 0x2d, 0xcd, 0xac, 0x0c, 0x24, 0xcc, 0x8d, 0x0c, 0x64, 0xad, 0x2c, 0x6f, 0x5e, 0x09, 0xc0, 0xc3, 0xb6, 0xb2, 0xb9, 0xb9, 0xb0, 0xb3, 0xb2, 0x39, 0x1d, 0x10, 0x38, 0xb6, 0xb2, 0xb0, 0x39, 0x10, 0xb6, 0xb7, 0xb1, 0x30, 0x36, 0x10, 0xbb, 0x30, 0xb7, 0xb2, 0x39, 0x10, 0xb4, 0x30, 0xbb, 0x32, 0x90, 0xb0, 0xb9, 0xb5, 0x32, 0x32, 0x90, 0xba, 0x39, 0x10, 0xba, 0x37, 0x90, 0xb9, 0x32, 0x37, 0x72, 0x09, 0xc0, 0x0f, 0xb8, 0xb0, 0xb1, 0xb5, 0x32, 0xba, 0x39, 0x1d, 0x10, 0xb8, 0xb0, 0xb1, 0xb5, 0x32, 0xba, 0x39, 0x90, 0xbb, 0xb2, 0x13, 0xbb, 0x32, 0x10, 0x3a, 0xb9, 0xb4, 0x32, 0x32, 0x10, 0xba, 0x37, 0x90, 0xb9, 0x32, 0x37, 0xb2, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0xde, 0x41, 0x60, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd7, 0x45, 0xdc, 0xc0, 0x89, 0x11, 0xbf, 0xc1, 0x01, 0x42, 0x74, 0x83, 0x77, 0x10, 0x18, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x79, 0x11, 0x77, 0xf0, 0xfe, 0xd3, 0xf6, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe7, 0x45, 0x48, 0x06, 0xce, 0x8b, 0x50, 0xb3, 0xe1, 0xcf, 0xa5, 0x01, 0xfe, 0xb6, 0xb2, 0xb9, 0xb9, 0xb0, 0xb3, 0xb2, 0x79, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0x8b, 0x30, 0x39, 0x78, 0x7a, 0x6b, 0xfb, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x17, 0x61, 0x33, 0x70, 0x5e, 0x84, 0xdd, 0x41, 0x48, 0x99, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe7, 0x45, 0x18, 0x0e, 0x9c, 0x17, 0xa1, 0x65, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x79, 0x11, 0x96, 0x03, 0xe7, 0x45, 0x98, 0x6f, 0xf8, 0x73, 0x69, 0x83, 0x97, 0xa9, 0x7b, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x79, 0x11, 0xa6, 0x07, 0x2f, 0xd0, 0x6d, 0x3f, 0x78, 0x7a, 0xba, 0xc7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x5e, 0x84, 0xfd, 0xc0, 0x79, 0x11, 0x4a, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0x0b, 0xd4, 0x81, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xbc, 0x08, 0x05, 0x07, 0xef, 0x00, 0x6e, 0x3f, 0x78, 0x93, 0xfb, 0x71, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf7, 0x45, 0x48, 0x06, 0xee, 0x8b, 0x30, 0xde, 0xf0, 0xe7, 0xd2, 0x00, 0x2f, 0x5c, 0xd8, 0xd8, 0x5a, 0x19, 0xdd, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf7, 0x45, 0x58, 0x1c, 0x3c, 0xc9, 0xb8, 0x7d, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0x8b, 0x30, 0x19, 0xb8, 0x2f, 0xc2, 0xea, 0xa0, 0x44, 0x7c, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0x8b, 0x30, 0x1b, 0xb8, 0x2f, 0xc2, 0x76, 0xc3, 0x9f, 0x4b, 0x1b, 0xa4, 0xd0, 0xf9, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x7d, 0x11, 0x76, 0x07, 0x8f, 0x7c, 0x6e, 0x3f, 0x78, 0xe7, 0x1b, 0x6f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x81, 0x11, 0x92, 0x81, 0x03, 0x23, 0xcc, 0x37, 0xfc, 0xb9, 0xb4, 0xc1, 0x5b, 0xce, 0x87, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xc0, 0x08, 0xf9, 0xc1, 0x43, 0xab, 0xdb, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xc0, 0x08, 0x83, 0x81, 0x03, 0x23, 0x6c, 0x0e, 0xde, 0x4d, 0x35, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x18, 0x61, 0x34, 0x70, 0x60, 0x84, 0xe1, 0xc1, 0x19, 0x09, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x30, 0xc2, 0x72, 0xe0, 0xc0, 0x08, 0xeb, 0x83, 0xa7, 0xa7, 0x7b, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0x18, 0x21, 0x19, 0xb8, 0x30, 0xc2, 0x7c, 0xc3, 0x9f, 0x4b, 0x1b, 0xbc, 0xdf, 0x38, 0x79, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2e, 0x8c, 0x90, 0x1f, 0x3c, 0x82, 0xbc, 0x7d, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2e, 0x8c, 0x30, 0x18, 0xb8, 0x30, 0xc2, 0xe6, 0xe0, 0xdd, 0x54, 0x93, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x85, 0x11, 0x46, 0x03, 0x17, 0x46, 0x18, 0x1e, 0x9c, 0x91, 0x50, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x0b, 0x23, 0x2c, 0x07, 0x2e, 0x8c, 0xb0, 0x3e, 0x78, 0x7a, 0xba, 0x47, 0xad, 0x06, 0xef, 0xd2, 0x42, 0xde, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xe0, 0xc8, 0x10, 0x7a, 0xf0, 0x2e, 0x2d, 0xe4, 0x06, 0xc0, 0xab, 0xb1, 0x37, 0xb7, 0xb3, 0xb2, 0x39, 0xba, 0xb4, 0x37, 0x37, 0x90, 0xb1, 0x37, 0x37, 0x3a, 0xb9, 0x37, 0x36, 0x90, 0x39, 0xba, 0x30, 0xba, 0x32, 0x10, 0xb3, 0x37, 0x39, 0x90, 0x30, 0x10, 0x3e, 0xb8, 0xb0, 0xb1, 0xb5, 0x32, 0xba, 0x16, 0xb8, 0xba, 0x36, 0x78, 0x25, 0x00, 0xaf, 0xa9, 0xd0, 0xd2, 0xe6, 0x40, 0xd2, 0xe6, 0x40, 0xc2, 0xdc, 0x40, 0x82, 0xda, 0xca, 0xe6, 0x40, 0xc2, 0xc8, 0xc2, 0xe0, 0xe8, 0xc2, 0xe8, 0xd2, 0xde, 0xdc, 0x40, 0xde, 0xcc, 0x40, 0xa8, 0x86, 0xa0, 0x4e, 0xe6, 0x40, 0xa4, 0xca, 0xdc, 0xde, 0x40, 0xc6, 0xde, 0xdc, 0xce, 0xca, 0xe6, 0xe8, 0xd2, 0xde, 0xdc, 0x40, 0xc6, 0xde, 0xdc, 0xe8, 0xe4, 0xde, 0xd8, 0x25, 0x00, 0xaf, 0xc3, 0xd8, 0xce, 0xde, 0xe4, 0xd2, 0xe8, 0xd0, 0xda, 0x5c, 0x40, 0x40, 0xa8, 0xd0, 0xca, 0x40, 0xd2, 0xdc, 0xcc, 0xde, 0xe4, 0xda, 0xc2, 0xe8, 0xd2, 0xde, 0xdc, 0x40, 0xe6, 0xd2, 0xce, 0xdc, 0xc2, 0xd8, 0xe6, 0x40, 0xc2, 0xdc, 0xc8, 0x40, 0xe8, 0xd0, 0xca, 0xd2, 0xe4, 0x40, 0xe4, 0xca, 0xe6, 0xe0, 0xde, 0xdc, 0xe6, 0xca, 0xe6, 0x40, 0xc2, 0xe4, 0xca, 0x25, 0x00, 0x7f, 0xd3, 0xc8, 0xca, 0xdc, 0xe8, 0xd2, 0xc6, 0xc2, 0xd8, 0x40, 0xe8, 0xde, 0x40, 0xe8, 0xd0, 0xde, 0xe6, 0xca, 0x40, 0xde, 0xcc, 0x40, 0xe8, 0xd0, 0xca, 0x40, 0x44, 0x9c, 0xca, 0xee, 0xa4, 0xca, 0xdc, 0xde, 0x44, 0x40, 0xec, 0xc2, 0xe4, 0xd2, 0xc2, 0xdc, 0xe8, 0x40, 0xde, 0xcc, 0x40, 0xa4, 0xca, 0xdc, 0xde, 0x76, 0x40, 0xe8, 0xd0, 0xca, 0x25, 0x00, 0xef, 0xd3, 0xda, 0xe0, 0xd8, 0xca, 0xda, 0xca, 0xdc, 0xe8, 0xc2, 0xe8, 0xd2, 0xde, 0xdc, 0x40, 0xc8, 0xd2, 0xcc, 0xcc, 0xca, 0xe4, 0xe6, 0x40, 0xc4, 0xca, 0xc6, 0xc2, 0xea, 0xe6, 0xca, 0x40, 0x82, 0xda, 0xca, 0xe6, 0x40, 0xc2, 0xc6, 0xd6, 0xdc, 0xde, 0xee, 0xd8, 0xca, 0xc8, 0xce, 0xda, 0xca, 0xdc, 0xe8, 0xe6, 0x40, 0xc8, 0xd2, 0xcc, 0xcc, 0xca, 0xe4, 0x40, 0xcc, 0xe4, 0xde, 0xda, 0x25, 0x00, 0xcf, 0xa9, 0x86, 0xa0, 0x4e, 0xe6, 0x58, 0x40, 0xc4, 0xca, 0xc6, 0xc2, 0xea, 0xe6, 0xca, 0x40, 0xe8, 0xd0, 0xd2, 0xe6, 0x40, 0xc6, 0xde, 0xc8, 0xca, 0x40, 0xea, 0xe6, 0xca, 0xe6, 0x40, 0xcc, 0xea, 0xdc, 0xc6, 0xe8, 0xd2, 0xde, 0xdc, 0xc2, 0xd8, 0x40, 0xc8, 0xc2, 0xe8, 0xc2, 0x40, 0xe6, 0xe8, 0xe4, 0xea, 0xc6, 0xe8, 0xea, 0xe4, 0xca, 0xe6, 0x58, 0x40, 0xc2, 0xdc, 0xc8, 0x25, 0x00, 0x7f, 0xc5, 0xca, 0xc6, 0xc2, 0xea, 0xe6, 0xca, 0x40, 0xa8, 0x86, 0xa0, 0x4e, 0xe6, 0x40, 0xe6, 0xca, 0xe2, 0xea, 0xca, 0xdc, 0xc6, 0xca, 0x40, 0xdc, 0xea, 0xda, 0xc4, 0xca, 0xe4, 0xe6, 0x40, 0xe4, 0xca, 0xe6, 0xca, 0xe8, 0x40, 0xee, 0xd0, 0xca, 0xdc, 0x40, 0xc2, 0x40, 0xe0, 0xca, 0xca, 0xe4, 0x40, 0xc4, 0xca, 0xc6, 0xde, 0xda, 0xca, 0xe6, 0x25, 0x00, 0xdf, 0xeb, 0xdc, 0xe4, 0xca, 0xe6, 0xe0, 0xde, 0xdc, 0xe6, 0xd2, 0xec, 0xca, 0x58, 0x40, 0xee, 0xd0, 0xca, 0xe4, 0xca, 0xc2, 0xe6, 0x40, 0x82, 0xda, 0xca, 0xe6, 0x40, 0xe6, 0xca, 0xe2, 0xea, 0xca, 0xdc, 0xc6, 0xca, 0x40, 0xdc, 0xea, 0xda, 0xc4, 0xca, 0xe4, 0xe6, 0x40, 0xde, 0xdc, 0xd8, 0xf2, 0x40, 0xc6, 0xd0, 0xc2, 0xdc, 0xce, 0xca, 0x40, 0xee, 0xd0, 0xca, 0xdc, 0x40, 0xc2, 0x25, 0x40, 0x77, 0x0e, 0x2d, 0x0d, 0x0e, 0x44, 0x4c, 0xae, 0x2c, 0x6c, 0x0c, 0xad, 0x6c, 0xce, 0xb5, 0x12, 0x80, 0xf7, 0x41, 0x20, 0x64, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x52, 0x65, 0x6e, 0x6f, 0x20, 0x69, 0x73, 0x20, 0x2b, 0x66, 0x61, 0x73, 0x74, 0x2d, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x2d, 0x61, 0x66, 0x74, 0x65, 0x72, 0x2d, 0x61, 0x63, 0x6b, 0x2c, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x72, 0x65, 0x2d, 0x73, 0x65, 0x6e, 0x64, 0xf3, 0x12, 0x80, 0xe7, 0x74, 0x69, 0x6d, 0x65, 0x64, 0x2d, 0x6f, 0x75, 0x74, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x61, 0x20, 0x70, 0x65, 0x65, 0x72, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0xe1, 0x12, 0x40, 0x2b, 0x5c, 0x99, 0x5c, 0xda, 0x1b, 0x19, 0xc8, 0x9b, 0x19, 0x48, 0x9d, 0x9b, 0x5c, 0xd9, 0x1c, 0xdc, 0x9b, 0xdb, 0x5c, 0x9a, 0x5d, 0x99, 0x5b, 0xd9, 0xdc, 0x9c, 0x6b, 0x25, 0x00, 0x9f, 0x93, 0xcc, 0x40, 0x5c, 0xe6, 0xd6, 0xd2, 0xe0, 0xe6, 0x40, 0xe4, 0xca, 0xc2, 0xc6, 0xd0, 0xca, 0xe6, 0x40, 0x66, 0x58, 0x40, 0xee, 0xca, 0x40, 0xe0, 0xca, 0xe4, 0xcc, 0xde, 0xe4, 0xda, 0x40, 0xc2, 0x40, 0xcc, 0xc2, 0xe6, 0xe8, 0x40, 0xe4, 0xca, 0xe8, 0xe4, 0xc2, 0xdc, 0xe6, 0xda, 0xd2, 0xe8, 0x40, 0xc2, 0xdc, 0xc8, 0x40, 0xcc, 0xc2, 0xe6, 0xe8, 0x25, 0x00, 0x3e, 0x90, 0x2b, 0x1b, 0x7b, 0xb3, 0x2b, 0x93, 0xcb, 0x73, 0x01, 0x01, 0xa1, 0x42, 0x4b, 0x9b, 0x03, 0x19, 0x7b, 0x93, 0x93, 0x2b, 0x9b, 0x83, 0x7b, 0x73, 0x23, 0x9b, 0x03, 0xa1, 0x7b, 0x03, 0x91, 0x2a, 0x73, 0x7b, 0x3b, 0x99, 0x03, 0x41, 0x0b, 0x73, 0x23, 0x63, 0x4b, 0x73, 0x3b, 0x03, 0x79, 0x33, 0x03, 0x11, 0xa1, 0x43, 0x93, 0x2b, 0x2b, 0x03, 0x21, 0xab, 0x83, 0x63, 0x4b, 0x1b, 0x0b, 0xa3, 0x2b, 0x97, 0x80, 0x2e, 0x6c, 0x6c, 0x6d, 0x4e, 0xc4, 0xb5, 0x12, 0xc0, 0xab, 0x1c, 0xdd, 0x9b, 0x0e, 0x88, 0x5c, 0x19, 0x9d, 0x5c, 0x98, 0xdb, 0x5c, 0x5b, 0xda, 0xdc, 0x5c, 0xda, 0x9b, 0x1b, 0x08, 0x5d, 0x5a, 0x5b, 0xd9, 0x5b, 0x1d, 0xbd, 0x04, 0xe0, 0xa5, 0x1c, 0x1d, 0x9d, 0x0e, 0x88, 0xdc, 0x5b, 0x9d, 0x1b, 0x19, 0x9d, 0x5c, 0x1a, 0x1c, 0x08, 0x5d, 0x5a, 0x5b, 0x19, 0x48, 0xd9, 0x1c, 0x5d, 0x5a, 0x5b, 0x18, 0x5d, 0x19, 0x0b, 0x08, 0xdb, 0xdb, 0x5d, 0x0b, 0x5c, 0xd8, 0xdc, 0x5c, 0x19, 0x19, 0x48, 0xdd, 0x5c, 0x9a, 0xdb, 0x19, 0x48, 0xd1, 0x55, 0x53, 0xb0, 0x04, 0xe0, 0xb1, 0x1c, 0x1d, 0x9d, 0x5d, 0x98, 0x9c, 0x0e, 0x48, 0x5b, 0x59, 0x98, 0x1b, 0x08, 0x59, 0x99, 0x5d, 0x5a, 0x18, 0x5d, 0xda, 0x9b, 0x1b, 0xc8, 0x9b, 0x19, 0x88, 0x8b, 0x1c, 0x1d, 0x1d, 0x0b, 0x48, 0x18, 0xdb, 0xdc, 0x1b, 0x08, 0xdb, 0xdb, 0x5d, 0x0b, 0x5c, 0xd8, 0xdc, 0x5c, 0x19, 0x19, 0xc8, 0x5d, 0x1a, 0x1d, 0x1a, 0x48, 0xd1, 0x55, 0x53, 0xb0, 0x04, 0xf0, 0x3d, 0x37, 0x47, 0x87, 0x26, 0x57, 0x36, 0x87, 0xa6, 0x03, 0x32, 0xc7, 0xf6, 0x76, 0xd7, 0x32, 0x47, 0x17, 0x26, 0x47, 0x07, 0x42, 0x87, 0x26, 0x57, 0x36, 0x87, 0xf6, 0xc6, 0x46, 0x2e, 0x01, 0xf8, 0x35, 0x76, 0xe7, 0x46, 0xa6, 0x03, 0x32, 0xf6, 0xe6, 0x76, 0x56, 0x36, 0x47, 0x97, 0xf6, 0xe6, 0x06, 0x72, 0x97, 0xe6, 0x46, 0xf6, 0x76, 0xb7, 0x03, 0xd2, 0x16, 0x86, 0x07, 0x52, 0xe7, 0x16, 0x36, 0xb6, 0x56, 0x46, 0x06, 0x02, 0x17, 0x36, 0xb6, 0x56, 0x46, 0x37, 0xd7, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0xbb, 0xb4, 0x90, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x84, 0x8a, 0x1b, 0x38, 0xa4, 0xe2, 0x37, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x50, 0x21, 0x19, 0x38, 0xa1, 0xc2, 0x62, 0xc3, 0x9f, 0x4b, 0x03, 0x9e, 0x1c, 0xdd, 0xbb, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x27, 0x54, 0x48, 0x0f, 0x1e, 0x8f, 0xe7, 0xbe, 0x41, 0x00, 0x9d, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x09, 0x15, 0xe2, 0x83, 0xc7, 0xe3, 0xb9, 0x6f, 0xf8, 0x11, 0x66, 0xe0, 0xc9, 0xe4, 0x83, 0xc5, 0xfb, 0x65, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x0d, 0x15, 0x92, 0x81, 0x1b, 0x2a, 0x2c, 0x36, 0xfc, 0xb9, 0x34, 0xe0, 0xc9, 0xd1, 0xd1, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x43, 0x85, 0xf4, 0xe0, 0x81, 0x82, 0xee, 0x1b, 0x04, 0xd0, 0xd9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0x50, 0x21, 0x3e, 0x78, 0xa0, 0xa0, 0xfb, 0xc1, 0xdb, 0xfe, 0xdc, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x23, 0x2a, 0x24, 0x03, 0x47, 0x54, 0x18, 0x6d, 0xf8, 0x73, 0x69, 0x80, 0x4f, 0x8e, 0x8e, 0xce, 0x2e, 0x4c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x23, 0x2a, 0x0c, 0x0e, 0x5e, 0xb4, 0xe8, 0xbe, 0x41, 0x00, 0x9d, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x11, 0x15, 0x16, 0x07, 0x2f, 0x5a, 0x74, 0x3f, 0x78, 0xdb, 0x9f, 0xfb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x45, 0x85, 0x64, 0xe0, 0x8a, 0x0a, 0xcb, 0x0d, 0x7f, 0x2e, 0x0d, 0xf0, 0xcf, 0xcd, 0xd1, 0xa1, 0xc9, 0x95, 0xcd, 0xa1, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x45, 0x85, 0xc9, 0xc1, 0xf3, 0x28, 0xdd, 0x37, 0x08, 0xa0, 0xb3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xa2, 0xc2, 0xe6, 0xe0, 0x79, 0x94, 0xee, 0x1b, 0x7e, 0x84, 0xd9, 0x50, 0xf3, 0x83, 0x86, 0x38, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x19, 0x15, 0x92, 0x81, 0x33, 0x2a, 0x0c, 0x36, 0xfc, 0xb9, 0x34, 0xe0, 0x8f, 0xdd, 0xb9, 0x91, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x46, 0x85, 0xf8, 0xe0, 0x81, 0x9e, 0xee, 0x1b, 0x04, 0xd0, 0xd9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x51, 0x21, 0x3f, 0x78, 0xa0, 0xa7, 0xfb, 0xe1, 0x31, 0x99, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x8e, 0x0a, 0xc9, 0xc0, 0x1d, 0x15, 0x46, 0x1b, 0xfe, 0x5c, 0x1a, 0xe0, 0x1d, 0x7b, 0xab, 0x73, 0xa3, 0x2b, 0x93, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x8e, 0x0a, 0x8b, 0x83, 0xf7, 0x9c, 0xba, 0x1f, 0x94, 0x59, 0xba, 0x1d, 0x4e, 0xb1, 0xd6, 0xe0, 0x65, 0x7f, 0xc3, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x1c, 0x19, 0x42, 0x0f, 0x5e, 0xf6, 0x37, 0xdc, 0x00, 0xf8, 0x3b, 0x87, 0x96, 0x06, 0x07, 0x42, 0x27, 0x17, 0xe6, 0x36, 0x07, 0xf7, 0x26, 0x47, 0x07, 0x12, 0x46, 0x46, 0x26, 0x57, 0x36, 0x37, 0xb7, 0x03, 0x52, 0x96, 0x46, 0x87, 0x56, 0x26, 0x07, 0xf2, 0x06, 0x17, 0x16, 0x57, 0x57, 0x06, 0x42, 0x12, 0x46, 0x46, 0x26, 0x57, 0x36, 0x37, 0x07, 0xf2, 0x26, 0x07, 0x72, 0x16, 0xc6, 0x16, 0x86, 0x97, 0xaf, 0x04, 0xe0, 0x3b, 0x15, 0x5a, 0x19, 0x88, 0x5c, 0x9d, 0x1b, 0x5d, 0x5a, 0x5b, 0x19, 0xc8, 0x9a, 0xdb, 0xdb, 0xdd, 0x1c, 0x08, 0xda, 0xdb, 0x1d, 0x08, 0xdd, 0x1b, 0x08, 0xdb, 0xdb, 0xdb, 0x1a, 0x48, 0x1d, 0x1c, 0xc8, 0x59, 0x18, 0x5b, 0x18, 0x5e, 0x5a, 0xd9, 0x1c, 0x0b, 0xc8, 0xdc, 0x1b, 0xc8, 0x5d, 0x19, 0x08, 0xd9, 0x9b, 0xdb, 0x09, 0x1d, 0x88, 0x5b, 0x59, 0x19, 0x19, 0x08, 0xdd, 0xbb, 0x04, 0xd0, 0xbe, 0xe6, 0xf6, 0x76, 0x07, 0x42, 0x87, 0x56, 0x96, 0x26, 0x07, 0x42, 0x27, 0x17, 0xe6, 0x36, 0x07, 0xf7, 0x26, 0x47, 0x07, 0x12, 0x46, 0x46, 0x26, 0x57, 0x36, 0x37, 0x57, 0x36, 0xe7, 0x6a, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0x65, 0x7f, 0xc3, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xef, 0x43, 0x3a, 0x50, 0xef, 0xc3, 0x7e, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xea, 0x7d, 0x88, 0x07, 0xea, 0x7d, 0x98, 0x1c, 0xac, 0x82, 0x4c, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xea, 0x7d, 0xd8, 0x0c, 0xd4, 0xfb, 0x30, 0xdb, 0xf0, 0x45, 0xcd, 0x86, 0x3a, 0x1e, 0x3c, 0xdc, 0xb0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xd4, 0xfb, 0xb0, 0x1b, 0xa8, 0xf7, 0x61, 0x7e, 0xf0, 0x22, 0x82, 0xc7, 0x56, 0x83, 0x37, 0x1d, 0x0f, 0x6f, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xbc, 0xe9, 0x78, 0x78, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0x83, 0x30, 0x1b, 0x38, 0x0e, 0x42, 0xc7, 0xc1, 0xb3, 0x95, 0x1d, 0x0f, 0xa7, 0xd8, 0x02, 0x78, 0xcc, 0xa5, 0x99, 0xd1, 0xb5, 0xdc, 0x85, 0xa5, 0xb1, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xda, 0xc5, 0x0d, 0x5c, 0x77, 0xa1, 0x64, 0xc3, 0x2f, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x69, 0x17, 0x92, 0x81, 0xd3, 0x2e, 0xc4, 0x1b, 0xfe, 0x5c, 0xda, 0x60, 0x39, 0x0d, 0xf4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0x76, 0x21, 0x3a, 0x78, 0xb0, 0xb6, 0xfb, 0xc1, 0x9b, 0xed, 0xb1, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xb6, 0x8b, 0x3b, 0x78, 0x03, 0xb6, 0xfb, 0x86, 0xbf, 0x68, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xdb, 0x2e, 0x24, 0x03, 0xb7, 0x5d, 0x48, 0x37, 0xfc, 0x3b, 0xbf, 0x06, 0x8f, 0x10, 0x3d, 0xae, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xee, 0xe2, 0x0e, 0xde, 0x80, 0xed, 0xbe, 0x41, 0xc1, 0x87, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x77, 0x21, 0x19, 0x38, 0xee, 0xc2, 0x74, 0xc3, 0xbf, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x71, 0x17, 0xb2, 0x81, 0xe3, 0x2e, 0x84, 0x87, 0x07, 0x6f, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xb8, 0x0b, 0xe9, 0xc0, 0x71, 0x17, 0x96, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0xbb, 0x10, 0x0f, 0x1c, 0x77, 0x61, 0x71, 0x50, 0x64, 0xe2, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc7, 0x5d, 0x98, 0x0c, 0x1c, 0x77, 0x61, 0x73, 0x50, 0x54, 0x8a, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc7, 0x5d, 0x18, 0x0d, 0x1c, 0x77, 0x61, 0x78, 0xd0, 0xda, 0x87, 0x41, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xdd, 0xc5, 0x1d, 0xbc, 0x01, 0xdb, 0x7d, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x75, 0x17, 0x3b, 0x70, 0xdd, 0x85, 0xe0, 0x60, 0x59, 0x00, 0xf0, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0xdd, 0x85, 0x64, 0xe0, 0xba, 0x0b, 0x1d, 0x1b, 0x1e, 0x94, 0xdc, 0x70, 0x47, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x75, 0x17, 0xb2, 0x83, 0x67, 0xfc, 0xbb, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xee, 0x42, 0x38, 0x70, 0xdd, 0x85, 0xd5, 0xc1, 0x83, 0x50, 0xbb, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xeb, 0x2e, 0xcc, 0x06, 0xae, 0xbb, 0x50, 0xb1, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xba, 0x0b, 0xbb, 0x81, 0xeb, 0x2e, 0x4c, 0x0f, 0x4a, 0x7c, 0xdc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xba, 0x0b, 0xdb, 0x81, 0xeb, 0x2e, 0x8c, 0x0f, 0x8a, 0x4a, 0xf1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xba, 0x0b, 0xeb, 0x81, 0xeb, 0x2e, 0x34, 0x1c, 0xb4, 0xf6, 0x61, 0x50, 0x1d, 0x4e, 0xb1, 0x35, 0x78, 0x98, 0xff, 0xdd, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0x4d, 0x8c, 0x0b, 0xcd, 0x8d, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xe3, 0xb8, 0x81, 0x23, 0x3b, 0x7e, 0x83, 0x52, 0x42, 0x7c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x8d, 0x43, 0x32, 0x70, 0x35, 0x87, 0x6c, 0x83, 0x92, 0x85, 0x7d, 0x96, 0x59, 0x83, 0x85, 0x97, 0x59, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0x0b, 0x2f, 0xb3, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x38, 0x0e, 0x9b, 0x81, 0xe3, 0x38, 0xec, 0x36, 0x7c, 0x51, 0xb3, 0xa1, 0x8e, 0x07, 0x5e, 0x1d, 0xd9, 0xb1, 0x1a, 0xbc, 0x88, 0xd6, 0x71, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0xe0, 0x45, 0xb4, 0x8e, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x1e, 0x87, 0xcd, 0xc0, 0x79, 0x1c, 0x76, 0x1b, 0xbe, 0xa8, 0xd9, 0x50, 0xc7, 0x03, 0xaf, 0x8e, 0xcc, 0x98, 0x35, 0x7c, 0x47, 0xbf, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf8, 0x8e, 0x7e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xe3, 0xb0, 0x19, 0xb8, 0x8f, 0xc3, 0xea, 0x20, 0x1d, 0x43, 0x73, 0x35, 0x38, 0xd7, 0x9f, 0x6e, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0x9c, 0xeb, 0x4f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x52, 0x0e, 0xd9, 0xc0, 0xa5, 0x1c, 0x3a, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x52, 0x0e, 0xe1, 0xc0, 0xa5, 0x1c, 0x06, 0x07, 0xab, 0x20, 0x93, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4b, 0x39, 0x2c, 0x06, 0x2e, 0xe5, 0x30, 0xdd, 0xf0, 0xef, 0xfc, 0x06, 0xef, 0x83, 0x06, 0x3e, 0x78, 0x56, 0x70, 0xe3, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x29, 0x87, 0xed, 0xc0, 0xa5, 0x1c, 0x2a, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x52, 0x0e, 0xe3, 0x81, 0x4b, 0x39, 0x14, 0x1c, 0x94, 0x4d, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xa5, 0x1c, 0x1a, 0x06, 0x2e, 0xe5, 0xd0, 0xb8, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x97, 0x72, 0xa8, 0x18, 0xb8, 0x94, 0x43, 0xcd, 0x41, 0xe9, 0x4d, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xca, 0xa1, 0x67, 0xe0, 0x52, 0x0e, 0x5d, 0x07, 0x8f, 0xe8, 0xe2, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2e, 0xe5, 0x50, 0x36, 0x70, 0x29, 0x87, 0xc2, 0x83, 0x47, 0x74, 0xf1, 0x56, 0xb3, 0x06, 0x4d, 0x5f, 0x8f, 0x6f, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0x34, 0x7d, 0x3d, 0xbe, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd7, 0x71, 0xd8, 0x0c, 0x5c, 0xc7, 0x61, 0xb6, 0xe1, 0x8b, 0x9a, 0x0d, 0x75, 0x3c, 0x78, 0x38, 0xe4, 0x70, 0x8a, 0xad, 0xc1, 0xcb, 0xfe, 0x86, 0x37, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x5e, 0xf6, 0x37, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb7, 0x72, 0xd8, 0x0c, 0x9c, 0xcb, 0x61, 0xb5, 0xe1, 0x83, 0xf9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x56, 0x0e, 0xbb, 0x81, 0x5b, 0x39, 0x4c, 0x0f, 0x8e, 0x2d, 0xa5, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x2c, 0x87, 0xcd, 0xc1, 0x5b, 0x9d, 0xde, 0x37, 0x08, 0xda, 0x9f, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x58, 0x0e, 0xbb, 0x81, 0x63, 0x39, 0x54, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x96, 0xc3, 0x70, 0xe0, 0x58, 0x0e, 0xdb, 0x83, 0xf3, 0x78, 0xeb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x2c, 0x87, 0xf1, 0xc0, 0xb1, 0x1c, 0x2a, 0x36, 0xfc, 0xb9, 0x34, 0x38, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc7, 0x72, 0x98, 0x1f, 0xbc, 0x8b, 0xeb, 0x7d, 0xc3, 0x17, 0x35, 0x1b, 0xea, 0x78, 0xe0, 0xa5, 0x99, 0x19, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xb1, 0x1c, 0x3a, 0x06, 0x8e, 0xe5, 0xd0, 0xb4, 0xe1, 0xcf, 0xa5, 0xc1, 0xe3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x96, 0x43, 0xcb, 0xc1, 0xd3, 0xc5, 0xde, 0x37, 0x7c, 0x51, 0xb3, 0xa1, 0x8e, 0x07, 0x5e, 0x1d, 0x59, 0xd1, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x2d, 0x87, 0xdd, 0xc0, 0xb5, 0x1c, 0xaa, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xcb, 0x61, 0x38, 0x70, 0x2d, 0x87, 0xed, 0xc1, 0x31, 0xc2, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x96, 0xc3, 0x78, 0xe0, 0x5a, 0x0e, 0x15, 0x1b, 0xfe, 0x5c, 0x1a, 0x1c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x6b, 0x39, 0xcc, 0x0f, 0x9e, 0xef, 0xf6, 0xbe, 0xe1, 0x8b, 0x9a, 0x0d, 0x75, 0x3c, 0xf0, 0xd2, 0xe6, 0x90, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x5a, 0x0e, 0x1d, 0x03, 0xd7, 0x72, 0x68, 0xda, 0xf0, 0xe7, 0xd2, 0xe0, 0xf1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xcb, 0xa1, 0xe5, 0xe0, 0x85, 0x75, 0xef, 0x07, 0x4f, 0x33, 0x7b, 0xaf, 0xd5, 0xe0, 0x20, 0xcf, 0xb6, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0x70, 0x90, 0x67, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x53, 0x39, 0x6c, 0x06, 0x4e, 0xe5, 0x50, 0xb8, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x54, 0x0e, 0xa3, 0x81, 0x53, 0x39, 0x6c, 0x37, 0xfc, 0xb9, 0x34, 0xe0, 0xd1, 0xbd, 0x89, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x2a, 0x87, 0xe1, 0xc1, 0x03, 0x00, 0xdf, 0x0f, 0xca, 0x2c, 0xdd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x54, 0x0e, 0xe3, 0x81, 0x53, 0x39, 0x34, 0x6d, 0xf8, 0x73, 0x69, 0xc0, 0x0b, 0xab, 0xa3, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x54, 0x0e, 0x05, 0x07, 0x0f, 0x30, 0x7c, 0x3f, 0x78, 0x2c, 0xba, 0xf7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x2a, 0x87, 0xaa, 0x81, 0x53, 0x39, 0xf4, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0xa2, 0xb6, 0x78, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xe5, 0x50, 0x77, 0xf0, 0x10, 0xc6, 0xf7, 0xc3, 0x0f, 0x35, 0xad, 0x06, 0xeb, 0x87, 0x6b, 0x37, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0xd6, 0x0f, 0xd7, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xbd, 0x1c, 0x36, 0x03, 0xf7, 0x72, 0x98, 0x6f, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xbd, 0x1c, 0x46, 0x03, 0xf7, 0x72, 0x18, 0x1e, 0x84, 0x94, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x2f, 0x87, 0xe5, 0xc0, 0xbd, 0x1c, 0xd6, 0x07, 0xaf, 0x12, 0x1c, 0xee, 0x70, 0x8a, 0xad, 0xe1, 0xfb, 0xf6, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x21, 0x87, 0x6c, 0xe0, 0x48, 0x0e, 0xe9, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x0b, 0x39, 0xe4, 0x03, 0x17, 0x72, 0xa8, 0xd8, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x21, 0x87, 0xc1, 0xc0, 0x85, 0x1c, 0x86, 0x1b, 0xfe, 0x5c, 0x1a, 0xf0, 0xd0, 0xca, 0xe4, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x90, 0xc3, 0xe8, 0xe0, 0xbd, 0xa3, 0xef, 0x07, 0x6d, 0x5b, 0x8f, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x17, 0x72, 0x58, 0x0e, 0x5c, 0xc8, 0xa1, 0x61, 0xc3, 0x9f, 0x4b, 0x03, 0x9e, 0x5c, 0x9a, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x17, 0x72, 0x58, 0x1f, 0xbc, 0x39, 0xf5, 0xfd, 0xe0, 0x0d, 0xb6, 0x8e, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x27, 0x72, 0xc8, 0x07, 0x4e, 0xe4, 0xf0, 0x60, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x89, 0x1c, 0x06, 0x03, 0x27, 0x72, 0x18, 0x6e, 0xf8, 0x73, 0x69, 0xc0, 0x13, 0x7b, 0x8b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x44, 0x0e, 0xa3, 0x83, 0x97, 0xca, 0xbe, 0x1f, 0xbe, 0x9d, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xe4, 0xb0, 0x1c, 0x38, 0x91, 0xc3, 0x81, 0x0d, 0x7f, 0x2e, 0x6d, 0xb0, 0x32, 0x28, 0x77, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xe4, 0xb0, 0x3e, 0x78, 0x24, 0xee, 0xfb, 0x86, 0x0f, 0xe6, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x13, 0x39, 0x14, 0x0c, 0x9c, 0xc8, 0xa1, 0xe1, 0x20, 0x04, 0x1f, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x44, 0x0e, 0x15, 0x03, 0x27, 0x72, 0xe8, 0xdf, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x22, 0x87, 0x8e, 0x81, 0x13, 0x39, 0xb4, 0x6e, 0xf8, 0x73, 0x69, 0x83, 0xc6, 0xe7, 0xa3, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x44, 0x0e, 0x3d, 0x07, 0x0f, 0x20, 0x7e, 0xdf, 0x20, 0xd8, 0x4c, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x13, 0x39, 0x34, 0x0d, 0x9c, 0xc8, 0xa1, 0xee, 0xe0, 0x79, 0x11, 0xec, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x89, 0x1c, 0xfa, 0x06, 0x4e, 0xe4, 0x50, 0xba, 0x21, 0x03, 0x7e, 0xf0, 0xe0, 0xba, 0xeb, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x13, 0x39, 0xd4, 0x0e, 0x9c, 0xc8, 0xa1, 0x7e, 0xc3, 0x9f, 0x4b, 0x03, 0x9e, 0x59, 0xd8, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x27, 0x72, 0xa8, 0x3e, 0x78, 0x0b, 0xf4, 0xfb, 0x86, 0x7f, 0xe7, 0x37, 0x58, 0xe6, 0x49, 0x5c, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x37, 0x72, 0xc8, 0x07, 0x6e, 0xe4, 0xb0, 0xdb, 0xf0, 0xe7, 0xd2, 0x06, 0x8b, 0x84, 0x67, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x46, 0x0e, 0x9b, 0x83, 0x27, 0x5b, 0xbf, 0x1f, 0x9c, 0x91, 0x50, 0x3b, 0x9c, 0x62, 0xad, 0xc1, 0xc3, 0xfc, 0xef, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x1e, 0xe6, 0x7f, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x07, 0x73, 0xd8, 0x0c, 0x1c, 0xcd, 0x61, 0xb9, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x60, 0x0e, 0xbb, 0x81, 0x83, 0x39, 0xcc, 0x37, 0xfc, 0xb9, 0x34, 0xe0, 0xa1, 0xbd, 0xc1, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x30, 0x87, 0xed, 0xc1, 0xc3, 0xc3, 0xdf, 0x0f, 0xca, 0x2c, 0xdd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x62, 0x0e, 0xbb, 0x81, 0xa3, 0x39, 0xac, 0x36, 0x08, 0xda, 0x9f, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x62, 0x0e, 0xdb, 0x81, 0x8b, 0x39, 0xf4, 0x6e, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x98, 0xc3, 0x78, 0xe0, 0x62, 0x0e, 0x0d, 0x07, 0x6f, 0xc0, 0x05, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2e, 0xe6, 0x50, 0x31, 0x70, 0x31, 0x87, 0xa2, 0x0d, 0x7f, 0x2e, 0x0d, 0x0e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xc5, 0x1c, 0x4a, 0x0e, 0x5e, 0x03, 0xff, 0x7e, 0xf0, 0x46, 0x15, 0xca, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x62, 0x0e, 0x4d, 0x03, 0x17, 0x73, 0xe8, 0xdb, 0xf0, 0xe7, 0xd2, 0xe0, 0xf1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xcc, 0xa1, 0xeb, 0xe0, 0x05, 0xf6, 0xef, 0x1b, 0xfe, 0x9d, 0xdf, 0xe0, 0x58, 0x1a, 0xd7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x31, 0x87, 0xc2, 0x81, 0x8b, 0x39, 0xd4, 0x6e, 0xf8, 0x73, 0x69, 0x70, 0x79, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2e, 0xe6, 0x50, 0x79, 0xf0, 0x20, 0xfe, 0xf7, 0x0d, 0xff, 0xce, 0x6f, 0xb0, 0x7a, 0xb8, 0xb6, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x93, 0x39, 0x6c, 0x07, 0x4e, 0xe6, 0xd0, 0xbb, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x64, 0x0e, 0xe3, 0x81, 0x93, 0x39, 0x34, 0x1c, 0x3c, 0x11, 0x19, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x99, 0x43, 0xc5, 0xc0, 0xc9, 0x1c, 0x8a, 0x36, 0xfc, 0xb9, 0x34, 0x38, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x27, 0x73, 0x28, 0x39, 0x78, 0x07, 0x02, 0xfc, 0xc1, 0x1b, 0x55, 0x28, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x93, 0x39, 0x34, 0x0d, 0x9c, 0xcc, 0xa1, 0x6f, 0xc3, 0x9f, 0x4b, 0x83, 0xc7, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x32, 0x87, 0xae, 0x83, 0xb7, 0x37, 0xc0, 0x1f, 0xbc, 0x51, 0x85, 0x72, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x99, 0x43, 0xe1, 0xc0, 0xc9, 0x1c, 0x6a, 0x37, 0xfc, 0xb9, 0x34, 0xb8, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x27, 0x73, 0xa8, 0x3c, 0x78, 0xef, 0x04, 0xfc, 0xc1, 0x0b, 0xf3, 0xdf, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xe6, 0xb0, 0x1d, 0xb8, 0x99, 0x43, 0xd3, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9b, 0x39, 0x8c, 0x07, 0x6e, 0xe6, 0xd0, 0x70, 0xf0, 0x64, 0x6c, 0xe0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x66, 0x0e, 0x15, 0x03, 0x37, 0x73, 0x28, 0xda, 0xf0, 0xe7, 0xd2, 0xe0, 0xf0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xcc, 0xa1, 0xe4, 0xe0, 0x25, 0x1f, 0xf0, 0x07, 0x6f, 0x54, 0xa1, 0xac, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbb, 0x39, 0xee, 0xe0, 0x61, 0x15, 0xef, 0x1b, 0x94, 0x2c, 0xec, 0xb3, 0xcc, 0x02, 0x4f, 0x56, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x31, 0x1d, 0x3f, 0x70, 0x63, 0x87, 0x78, 0xc3, 0x2f, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x31, 0x1d, 0xb2, 0x81, 0x63, 0x3a, 0x2c, 0x36, 0xfc, 0xb9, 0x34, 0x78, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc7, 0x74, 0x48, 0x0f, 0x1e, 0xba, 0x02, 0x7f, 0x50, 0x84, 0xc5, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x35, 0x1d, 0x7f, 0xf0, 0x7a, 0x14, 0xf8, 0x0d, 0xbf, 0x28, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd7, 0x74, 0xc8, 0x06, 0xae, 0xe9, 0x30, 0xd8, 0xf0, 0xe7, 0xd2, 0x06, 0x45, 0x6d, 0xf1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xd3, 0x21, 0x3f, 0x78, 0xfa, 0x0c, 0xfc, 0xe1, 0x87, 0x9a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xa7, 0xe3, 0x0f, 0x5e, 0x8f, 0x02, 0xbf, 0xe1, 0x2f, 0x9a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x9c, 0x0e, 0xd9, 0xc0, 0x39, 0x1d, 0x3a, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0xd3, 0x21, 0x1c, 0x38, 0xa7, 0xc3, 0x60, 0xc3, 0xbf, 0xf3, 0x07, 0x4f, 0xdd, 0x29, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0xe9, 0xb0, 0x18, 0x38, 0xa7, 0xc3, 0x72, 0xc3, 0x9f, 0x4b, 0x03, 0x9e, 0xd8, 0x5b, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe7, 0x74, 0x58, 0x1d, 0x3c, 0x4a, 0x08, 0xfe, 0xf0, 0xed, 0xfc, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x4e, 0x87, 0xe9, 0xc0, 0x39, 0x1d, 0x2a, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0x01, 0x5e, 0x72, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0xe9, 0x30, 0x3f, 0x78, 0x0f, 0x12, 0xfc, 0xe1, 0x01, 0xfc, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x9e, 0x8e, 0x3f, 0x78, 0x3d, 0x0a, 0xfc, 0x86, 0x4f, 0x6c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x7b, 0x3a, 0x64, 0x03, 0xf7, 0x74, 0x68, 0xda, 0xf0, 0xb9, 0xcb, 0x1a, 0x26, 0x6e, 0x83, 0x95, 0xbc, 0xa4, 0xe1, 0xe2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xd3, 0x61, 0x78, 0xf0, 0x62, 0x28, 0xf8, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf7, 0x74, 0x58, 0x0e, 0xdc, 0xd3, 0xa1, 0x64, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x3d, 0x1d, 0xa6, 0x03, 0xf7, 0x74, 0x68, 0xd8, 0xf0, 0xa0, 0xe4, 0x06, 0x2f, 0xa2, 0x0f, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x7b, 0x3a, 0xac, 0x0f, 0x5e, 0xa0, 0x05, 0x7f, 0xb0, 0x2a, 0x8c, 0x78, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xa7, 0x43, 0xc5, 0xc0, 0x3d, 0x1d, 0x3a, 0x0e, 0x4f, 0xeb, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xd3, 0xa1, 0x65, 0xe0, 0x9e, 0x0e, 0x45, 0x07, 0xa5, 0x9f, 0x71, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x50, 0xc7, 0x1f, 0xbc, 0x1e, 0x05, 0x7e, 0xc3, 0x27, 0x36, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x41, 0x1d, 0xb2, 0x81, 0xf3, 0x3a, 0x64, 0x1b, 0x3e, 0x77, 0x59, 0xc3, 0xc4, 0x6d, 0xd0, 0xc6, 0x0c, 0x78, 0xf8, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x17, 0x75, 0x48, 0x0e, 0x1e, 0x84, 0x06, 0xbf, 0x41, 0x90, 0x9e, 0xae, 0x41, 0xe3, 0xf3, 0x51, 0x07, 0x6b, 0xe2, 0x49, 0x57, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xea, 0x90, 0x0d, 0x9c, 0xd4, 0x61, 0x70, 0xf0, 0x06, 0x5c, 0xe0, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xa9, 0xc3, 0x64, 0xe0, 0xaa, 0x0e, 0xad, 0x1b, 0x14, 0x1d, 0xb4, 0x1b, 0x34, 0x55, 0x94, 0xb5, 0xe1, 0xf3, 0xa0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xa4, 0x0e, 0xf3, 0x81, 0x93, 0x3a, 0x14, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xa9, 0xc3, 0x7e, 0xe0, 0xa4, 0x0e, 0x5d, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xea, 0x50, 0x30, 0x70, 0x52, 0x87, 0xa2, 0x0d, 0x0f, 0x4a, 0x6e, 0xf0, 0x22, 0xfa, 0xe0, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xa9, 0x43, 0xc7, 0xc1, 0xeb, 0xf7, 0xe0, 0x0f, 0x5e, 0x6d, 0x2d, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0xd4, 0xa1, 0x69, 0xe0, 0xa4, 0x0e, 0x55, 0x87, 0xf7, 0x82, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xea, 0x50, 0x36, 0x70, 0x52, 0x87, 0xbe, 0x83, 0xd2, 0xcf, 0xb8, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xa9, 0xc3, 0xe4, 0xe0, 0xb9, 0x72, 0xf0, 0x1b, 0x14, 0x1d, 0xb4, 0x1b, 0x14, 0xb5, 0xc5, 0x1b, 0x3e, 0x0f, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xea, 0x30, 0x1f, 0xb8, 0xa9, 0x43, 0xe1, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9b, 0x3a, 0xec, 0x07, 0x6e, 0xea, 0xd0, 0xb5, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xa6, 0x0e, 0x05, 0x03, 0x37, 0x75, 0x28, 0xda, 0xf0, 0xa0, 0xe4, 0x06, 0x2f, 0xa2, 0x0f, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x9b, 0x3a, 0x74, 0x1c, 0xbc, 0x18, 0x12, 0xfe, 0xe0, 0x71, 0x62, 0xc2, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x4d, 0x1d, 0x9a, 0x06, 0x6e, 0xea, 0x50, 0x75, 0x78, 0x2f, 0xa8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xa6, 0x0e, 0x65, 0x03, 0x37, 0x75, 0xe8, 0x3b, 0x28, 0xfd, 0x8c, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa3, 0x3a, 0x4c, 0x0e, 0x9e, 0x2b, 0x07, 0xbf, 0x41, 0xd1, 0x41, 0xbb, 0x41, 0xdb, 0x65, 0x9f, 0x1b, 0x3e, 0x0f, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0xea, 0x30, 0x1f, 0x38, 0xaa, 0x43, 0xf3, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa3, 0x3a, 0xec, 0x07, 0x8e, 0xea, 0xd0, 0xb9, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xa8, 0x0e, 0x05, 0x03, 0x47, 0x75, 0x28, 0xda, 0xf0, 0xa0, 0xe4, 0x06, 0x2f, 0xa2, 0x0f, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa3, 0x3a, 0x74, 0x1c, 0xbc, 0xb4, 0x14, 0x7e, 0xc3, 0xdb, 0x3a, 0x8b, 0xe3, 0x1c, 0xac, 0x1f, 0xae, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xaa, 0x43, 0xd3, 0xc0, 0x51, 0x1d, 0xaa, 0x0e, 0xef, 0x05, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x47, 0x75, 0xe8, 0x1a, 0x38, 0xaa, 0x43, 0xe5, 0x86, 0xb7, 0x75, 0x36, 0x68, 0xbb, 0xec, 0xf3, 0x60, 0x4d, 0x3c, 0x69, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x51, 0x1d, 0x4a, 0x07, 0x8e, 0xea, 0x50, 0xbc, 0xe1, 0x6d, 0x9d, 0xc5, 0x71, 0x0e, 0x8a, 0xda, 0xe2, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xab, 0x3a, 0x4c, 0x0e, 0x9e, 0x2b, 0x07, 0xbf, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xaa, 0x0e, 0x9b, 0x81, 0xab, 0x3a, 0x54, 0x6e, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xaa, 0xc3, 0x68, 0xe0, 0xaa, 0x0e, 0xdb, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x68, 0x6f, 0xf0, 0xc1, 0x9a, 0x78, 0xd2, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xaa, 0x0e, 0xe3, 0x81, 0xab, 0x3a, 0x34, 0x6e, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xaa, 0xc3, 0x7a, 0xe0, 0xaa, 0x0e, 0x25, 0x1b, 0xde, 0xd6, 0x39, 0x78, 0x45, 0x1b, 0xfc, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x55, 0x87, 0x96, 0x81, 0xab, 0x3a, 0x14, 0x1d, 0xb4, 0x74, 0x96, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xd5, 0xa1, 0x69, 0xe0, 0xaa, 0x0e, 0x65, 0x07, 0xa5, 0x9f, 0xf1, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x55, 0x87, 0xb6, 0x81, 0xab, 0x3a, 0x14, 0x1e, 0x34, 0x8c, 0x7e, 0x5a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x55, 0x1d, 0x3a, 0x07, 0xae, 0xea, 0x50, 0x7a, 0x78, 0x2f, 0xa8, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbb, 0x3a, 0x64, 0x03, 0x77, 0x75, 0x18, 0x1c, 0x3c, 0x19, 0x1b, 0x78, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xea, 0x30, 0x19, 0x38, 0xac, 0x43, 0xdb, 0x06, 0x45, 0x07, 0xed, 0x06, 0x4d, 0x15, 0x65, 0x6d, 0xf8, 0x3c, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xab, 0xc3, 0x7c, 0xe0, 0xae, 0x0e, 0x85, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xea, 0xb0, 0x1f, 0xb8, 0xab, 0x43, 0xd7, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbb, 0x3a, 0x14, 0x0c, 0xdc, 0xd5, 0xa1, 0x68, 0xc3, 0x83, 0x92, 0x1b, 0xbc, 0x88, 0x3e, 0x78, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xea, 0xd0, 0x71, 0xf0, 0x86, 0x6e, 0xf8, 0x83, 0x57, 0x5b, 0x0b, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x77, 0x75, 0x68, 0x1a, 0xb8, 0xab, 0x43, 0xd5, 0xe1, 0xbd, 0xa0, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xbb, 0x3a, 0x94, 0x0d, 0xdc, 0xd5, 0xa1, 0xef, 0xa0, 0xf4, 0x33, 0x6e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0xeb, 0x30, 0x39, 0x78, 0xf4, 0x34, 0xfc, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xc3, 0x3a, 0x6c, 0x06, 0x0e, 0xeb, 0x50, 0xb5, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xb0, 0x0e, 0xa3, 0x81, 0xc3, 0x3a, 0x6c, 0x0f, 0x1e, 0xc8, 0x0b, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xd6, 0x61, 0x3c, 0x70, 0x58, 0x87, 0xa6, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x87, 0x75, 0x58, 0x0f, 0x1c, 0xd6, 0xa1, 0xe4, 0xe0, 0x05, 0xc3, 0xf0, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x61, 0x1d, 0x5a, 0x06, 0x0e, 0xeb, 0x50, 0x74, 0xd0, 0xd2, 0x59, 0x56, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x87, 0x75, 0xe8, 0x1a, 0x38, 0xac, 0x43, 0xd9, 0xe1, 0xbd, 0xa0, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xeb, 0x90, 0x0d, 0x9c, 0xd6, 0x61, 0x70, 0xf0, 0x44, 0x64, 0xcc, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xad, 0xc3, 0x64, 0xe0, 0xba, 0x0e, 0xad, 0x1b, 0x14, 0x1d, 0xb4, 0x1b, 0x34, 0x55, 0x94, 0xb5, 0xe1, 0xf3, 0xa0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xb4, 0x0e, 0xf3, 0x81, 0xd3, 0x3a, 0x14, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xad, 0xc3, 0x7e, 0xe0, 0xb4, 0x0e, 0x5d, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xeb, 0x50, 0x30, 0x70, 0x5a, 0x87, 0xa2, 0x0d, 0x0f, 0x4a, 0x6e, 0xf0, 0x22, 0xfa, 0xe0, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xad, 0x43, 0xc7, 0xc1, 0x6b, 0x10, 0xe2, 0x0f, 0x5e, 0x6d, 0x2d, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0xd6, 0xa1, 0x69, 0xe0, 0xb4, 0x0e, 0x55, 0x87, 0xf7, 0x82, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xeb, 0x50, 0x36, 0x70, 0x5a, 0x87, 0xbe, 0x83, 0xd2, 0xcf, 0xb8, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xad, 0xc3, 0xe4, 0xe0, 0xf9, 0xfe, 0xf0, 0x1b, 0x14, 0x1d, 0xb4, 0x03, 0x1e, 0x59, 0x58, 0xbb, 0xe1, 0xf3, 0xa0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xb6, 0x0e, 0xf3, 0x81, 0xdb, 0x3a, 0x14, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xad, 0xc3, 0x7e, 0xe0, 0xb6, 0x0e, 0x5d, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xeb, 0x50, 0x30, 0x70, 0x5b, 0x87, 0xa2, 0x0d, 0x0f, 0x4a, 0x6e, 0xf0, 0x22, 0xfa, 0xe0, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xad, 0x43, 0xc7, 0xc1, 0x2b, 0x3a, 0xe2, 0x0f, 0x5e, 0x6d, 0x2d, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0xdc, 0xd6, 0xa1, 0x69, 0xe0, 0xb6, 0x0e, 0x55, 0x87, 0xf7, 0x82, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xeb, 0x50, 0x36, 0x70, 0x5b, 0x87, 0xbe, 0x83, 0xd2, 0xcf, 0xb8, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xae, 0xc3, 0xe4, 0xe0, 0xf9, 0xfe, 0xf0, 0x1b, 0x14, 0x1d, 0xb4, 0x1b, 0x14, 0xb5, 0xc5, 0x1b, 0x3e, 0x0f, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8e, 0xeb, 0x30, 0x1f, 0x38, 0xae, 0x43, 0xe1, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe3, 0x3a, 0xec, 0x07, 0x8e, 0xeb, 0xd0, 0xb5, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xb8, 0x0e, 0x05, 0x03, 0xc7, 0x75, 0x28, 0xda, 0xf0, 0xa0, 0xe4, 0x06, 0x2f, 0xa2, 0x0f, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe3, 0x3a, 0x74, 0x1c, 0xbc, 0x3c, 0x26, 0xfe, 0xe0, 0x71, 0x62, 0xc2, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x71, 0x1d, 0x9a, 0x06, 0x8e, 0xeb, 0x50, 0x75, 0x78, 0x2f, 0xa8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xb8, 0x0e, 0x65, 0x03, 0xc7, 0x75, 0xe8, 0x3b, 0x28, 0xfd, 0x8c, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xeb, 0x3a, 0x4c, 0x0e, 0x9e, 0xef, 0x0f, 0xbf, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xba, 0x0e, 0x9b, 0x81, 0xeb, 0x3a, 0x54, 0x6e, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xae, 0xc3, 0x68, 0xe0, 0xba, 0x0e, 0xdb, 0x83, 0x07, 0xf2, 0xc2, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd7, 0x75, 0x18, 0x0f, 0x5c, 0xd7, 0xa1, 0x71, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x75, 0x1d, 0xd6, 0x03, 0xd7, 0x75, 0x28, 0x39, 0x78, 0xc1, 0x30, 0xfc, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x5d, 0x87, 0x96, 0x81, 0xeb, 0x3a, 0x14, 0x1d, 0xb4, 0x74, 0x96, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xd7, 0xa1, 0x69, 0xe0, 0xba, 0x0e, 0x65, 0x1b, 0xde, 0xd6, 0x19, 0xf0, 0xc8, 0xc2, 0xda, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xeb, 0x3a, 0xb4, 0x0d, 0x5c, 0xd7, 0xa1, 0xf0, 0xa0, 0xf4, 0x33, 0xae, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xba, 0x0e, 0x9d, 0x03, 0xd7, 0x75, 0x28, 0x3d, 0xbc, 0x17, 0x54, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x5f, 0xc7, 0x1f, 0xbc, 0x1e, 0x05, 0x7e, 0x83, 0x82, 0x34, 0x76, 0x83, 0xb6, 0x66, 0x0b, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x03, 0x3b, 0x24, 0x03, 0x07, 0x76, 0xe8, 0xde, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x60, 0x87, 0x68, 0xe0, 0xc0, 0x0e, 0xe9, 0x41, 0x91, 0x89, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xd8, 0x21, 0x1e, 0x38, 0xb0, 0xc3, 0x68, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x81, 0x1d, 0xf2, 0x81, 0x03, 0x3b, 0x0c, 0x0e, 0x0f, 0xde, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x07, 0x76, 0x58, 0x0c, 0x1c, 0xd8, 0x61, 0x73, 0x90, 0xa6, 0xe2, 0xda, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x60, 0x87, 0xd5, 0xc0, 0x81, 0x1d, 0xaa, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xd8, 0x61, 0x36, 0x70, 0x60, 0x87, 0xe5, 0x41, 0xc9, 0xef, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xd8, 0x61, 0x3a, 0x70, 0x60, 0x87, 0xe6, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x07, 0x76, 0xd8, 0x0e, 0x1c, 0xd8, 0x61, 0x7e, 0x50, 0x12, 0xcd, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x07, 0x76, 0xd8, 0x0f, 0x1c, 0xd8, 0xa1, 0xe2, 0x20, 0x59, 0xae, 0x78, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xb0, 0x43, 0xc7, 0xc0, 0x81, 0x1d, 0x4a, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xd8, 0xa1, 0x64, 0xe0, 0xc0, 0x0e, 0x7d, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0xec, 0xd0, 0x32, 0x70, 0x60, 0x87, 0xa2, 0x83, 0x05, 0x9c, 0xf0, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x81, 0x1d, 0x9a, 0x06, 0x0e, 0xec, 0x50, 0x75, 0x78, 0x2f, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xb0, 0x43, 0xd7, 0xc0, 0x81, 0x1d, 0xea, 0x0e, 0x92, 0xe5, 0x8a, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0xec, 0x50, 0x38, 0x70, 0x60, 0x87, 0xce, 0x83, 0x13, 0xfd, 0x63, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x81, 0x1d, 0x5a, 0x07, 0x0e, 0xec, 0x50, 0x7c, 0x50, 0xfa, 0x19, 0x57, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x63, 0xc7, 0x1f, 0xbc, 0x1e, 0x05, 0x7e, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x8d, 0x1d, 0x82, 0x81, 0x1b, 0x3b, 0x64, 0x07, 0xed, 0xf3, 0x80, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x37, 0x76, 0x08, 0x07, 0x6e, 0xec, 0x90, 0x1e, 0x9e, 0xde, 0x69, 0x16, 0xf8, 0x32, 0x77, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2e, 0xe7, 0xf8, 0x81, 0x4b, 0x3a, 0x0c, 0x36, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xce, 0x21, 0x1b, 0xb8, 0x9c, 0xc3, 0x66, 0xc3, 0x9f, 0x4b, 0x03, 0x1e, 0x5c, 0xd8, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x97, 0x73, 0xc8, 0x0f, 0x1e, 0x47, 0x19, 0x7f, 0xf0, 0xcc, 0x1f, 0xf8, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x9d, 0xe3, 0x0f, 0x1e, 0x1c, 0x19, 0xbf, 0xe1, 0x2f, 0x9a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x74, 0x0e, 0xd9, 0xc0, 0xe9, 0x1c, 0xf2, 0x83, 0x87, 0xc5, 0x8c, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xed, 0x1c, 0x7f, 0xf0, 0xe0, 0xc8, 0xf8, 0x0d, 0x56, 0xba, 0x38, 0x6d, 0xd0, 0x58, 0x73, 0xd6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x3b, 0x87, 0xc1, 0xc0, 0xed, 0x1c, 0x66, 0x1b, 0x2e, 0xa9, 0x35, 0xa4, 0x0e, 0x06, 0x3c, 0xb8, 0xb0, 0xb5, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x78, 0x8e, 0x3f, 0x78, 0x70, 0x64, 0xfc, 0x06, 0x05, 0x69, 0xec, 0x1a, 0xbe, 0x6f, 0x1f, 0xf0, 0xc4, 0xde, 0xc8, 0x0d, 0x4a, 0xe8, 0xd8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x78, 0x0e, 0xf9, 0xc0, 0xf1, 0x1c, 0x36, 0x07, 0x0f, 0x8b, 0x19, 0x3d, 0x08, 0xd3, 0xb1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x7a, 0x0e, 0xc9, 0xc0, 0x05, 0x1d, 0xb2, 0x0d, 0x82, 0xf4, 0x74, 0x83, 0xc6, 0x9a, 0xb3, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0xe7, 0x90, 0x0d, 0x9c, 0xcf, 0x61, 0x70, 0xf0, 0x06, 0x5c, 0xe0, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x9f, 0xc3, 0x64, 0xe0, 0x7c, 0x0e, 0x37, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0xcf, 0x61, 0x33, 0x70, 0x3e, 0x87, 0x8e, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe7, 0x73, 0x18, 0x0d, 0x9c, 0xcf, 0x61, 0xbc, 0xe1, 0x41, 0xc9, 0x0d, 0x9e, 0xa1, 0x1e, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe7, 0x73, 0xd8, 0x1d, 0xbc, 0x3d, 0x37, 0xfe, 0xe0, 0xd5, 0xd6, 0xc2, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xf9, 0x1c, 0xd6, 0x03, 0xe7, 0x73, 0xa8, 0xd8, 0xf0, 0xb6, 0xce, 0xe0, 0xf0, 0xc1, 0x13, 0x49, 0xe3, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0xe7, 0x50, 0x32, 0x70, 0x3e, 0x87, 0xd2, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xe7, 0x73, 0x68, 0x19, 0x38, 0x9f, 0x43, 0xdb, 0x86, 0x07, 0x25, 0x37, 0x78, 0x86, 0x7a, 0xf0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0xcf, 0xa1, 0xe8, 0xe0, 0x51, 0xc6, 0xf1, 0x07, 0x8f, 0x13, 0x13, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xce, 0xe7, 0x50, 0x37, 0x70, 0x3e, 0x87, 0xce, 0x0d, 0x6f, 0xeb, 0x0c, 0x1e, 0x1f, 0x3c, 0x91, 0x34, 0xbe, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x7c, 0x0e, 0xad, 0x03, 0xe7, 0x73, 0x78, 0xb1, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x7c, 0x0e, 0xb5, 0x03, 0xe7, 0x73, 0xa8, 0xdf, 0xf0, 0xa0, 0xe4, 0x06, 0xcf, 0x50, 0x0f, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xf3, 0x39, 0x34, 0x1f, 0xbc, 0x58, 0x3a, 0xfe, 0xe0, 0x79, 0xa9, 0xf0, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xf9, 0x1c, 0xfa, 0x07, 0xce, 0xe7, 0x70, 0x62, 0xc3, 0xdb, 0x3a, 0x83, 0xcb, 0x07, 0x4f, 0x24, 0x8d, 0xaf, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfb, 0x39, 0x64, 0x03, 0xf7, 0x73, 0x18, 0x1c, 0x3c, 0x19, 0x1b, 0x78, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xe7, 0x30, 0x19, 0xb8, 0x9f, 0x43, 0xc5, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfb, 0x39, 0x6c, 0x06, 0xee, 0xe7, 0xb0, 0xdd, 0xf0, 0xa0, 0xe4, 0x06, 0xcf, 0x50, 0x0f, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xfb, 0x39, 0xcc, 0x0e, 0x9e, 0x20, 0x1e, 0x7f, 0xf0, 0x6a, 0x6b, 0xe1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x7e, 0x0e, 0xe3, 0x81, 0xfb, 0x39, 0x34, 0x1c, 0x3c, 0x12, 0x38, 0xbe, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x03, 0x3a, 0x64, 0x03, 0x07, 0x74, 0x18, 0x1c, 0x3c, 0x11, 0x19, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0xe8, 0x30, 0x19, 0x38, 0xa0, 0xc3, 0x8d, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x07, 0x74, 0xd8, 0x0c, 0x1c, 0xd0, 0xa1, 0x63, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x01, 0x1d, 0x46, 0x03, 0x07, 0x74, 0x18, 0x6f, 0x78, 0x50, 0x72, 0x83, 0x67, 0xa8, 0x07, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x01, 0x1d, 0x76, 0x07, 0x2f, 0x9a, 0x8f, 0x3f, 0x78, 0xb5, 0xb5, 0xf0, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x40, 0x87, 0xf5, 0xc0, 0x01, 0x1d, 0x2a, 0x0e, 0x1e, 0x09, 0x1c, 0xdf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x40, 0x87, 0x92, 0x81, 0x03, 0x3a, 0x94, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xa0, 0x43, 0xcb, 0xc0, 0x01, 0x1d, 0xda, 0x36, 0x3c, 0x28, 0xb9, 0xc1, 0x33, 0xd4, 0x83, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x80, 0x0e, 0x45, 0x07, 0xef, 0xf7, 0x8f, 0x3f, 0x78, 0xb5, 0xb5, 0xf0, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x40, 0x87, 0xba, 0x81, 0x03, 0x3a, 0x74, 0x1e, 0x3c, 0xa0, 0x39, 0xbe, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x80, 0x0e, 0xad, 0x03, 0x07, 0x74, 0x78, 0xb1, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x80, 0x0e, 0xb5, 0x03, 0x07, 0x74, 0xa8, 0xdf, 0xf0, 0xa0, 0xe4, 0x06, 0xcf, 0x50, 0x0f, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x03, 0x3a, 0x34, 0x1f, 0xbc, 0x58, 0x41, 0xfe, 0xe0, 0x71, 0x62, 0xc2, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x01, 0x1d, 0xfa, 0x07, 0x0e, 0xe8, 0x70, 0xe2, 0xe0, 0x79, 0xd9, 0xf1, 0xd5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x9c, 0xd0, 0xf1, 0x07, 0x0f, 0x8e, 0x8c, 0xdf, 0xa0, 0x20, 0x8d, 0x5d, 0xc3, 0xf7, 0xed, 0x1b, 0xac, 0xe4, 0x25, 0xdd, 0xa0, 0x84, 0x8e, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4e, 0xe8, 0x90, 0x0f, 0x9c, 0xd0, 0x61, 0x73, 0xf0, 0xb0, 0x98, 0xd1, 0x83, 0x30, 0x1d, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6e, 0xe8, 0x90, 0x0c, 0x1c, 0xd2, 0xa1, 0x79, 0x83, 0x82, 0x34, 0x76, 0x0d, 0xdf, 0xb7, 0x6f, 0xd0, 0x76, 0xd9, 0xe7, 0x06, 0x25, 0x74, 0xec, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x43, 0x87, 0xc5, 0xc0, 0x0d, 0x1d, 0x36, 0x07, 0x2f, 0xaf, 0xca, 0x3e, 0x08, 0xd3, 0xb1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x88, 0x0e, 0xd9, 0xc0, 0x1d, 0x1d, 0xba, 0x36, 0x28, 0x76, 0x34, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x23, 0x3a, 0xe4, 0x03, 0x47, 0x74, 0x18, 0x6f, 0x50, 0x4c, 0x62, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x47, 0x74, 0x98, 0x0c, 0x1c, 0xd1, 0x61, 0x77, 0xf0, 0x06, 0x5c, 0xe0, 0x83, 0xc6, 0x9a, 0xb3, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x23, 0x3a, 0xcc, 0x07, 0x8e, 0xe8, 0xd0, 0x70, 0xf0, 0x66, 0x12, 0xf0, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0xa2, 0x43, 0x76, 0xf0, 0x6e, 0x11, 0xf9, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x5e, 0x9e, 0x1d, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xd1, 0x61, 0x3e, 0x70, 0x45, 0x87, 0x86, 0x83, 0x37, 0x93, 0x80, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x19, 0x1d, 0xb2, 0x83, 0x77, 0x8b, 0xc8, 0x6f, 0x50, 0x0c, 0xc8, 0x2e, 0x38, 0x7d, 0xf0, 0xf2, 0xec, 0xf8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x8c, 0x0e, 0xf3, 0x81, 0x33, 0x3a, 0x54, 0x1c, 0xbc, 0x3a, 0x0c, 0x7c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xe8, 0x90, 0x1d, 0xbc, 0x5b, 0x44, 0x7e, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x1d, 0x1d, 0xe2, 0x81, 0x3b, 0x3a, 0x34, 0x6c, 0x50, 0x4c, 0x62, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x77, 0x74, 0x58, 0x0c, 0xdc, 0xd1, 0x61, 0xb8, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x8e, 0x0e, 0x93, 0x81, 0x3b, 0x3a, 0xac, 0x0e, 0xce, 0xe3, 0xad, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x1d, 0x1d, 0x66, 0x03, 0x77, 0x74, 0xd8, 0x1d, 0x84, 0xe9, 0x58, 0x83, 0xa7, 0x07, 0x2f, 0xcf, 0x8e, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xe8, 0x50, 0x31, 0x70, 0x47, 0x87, 0x96, 0x83, 0x87, 0x41, 0x81, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x1d, 0x1d, 0x6a, 0x06, 0xee, 0xe8, 0x50, 0x75, 0xf0, 0x38, 0x1e, 0xf0, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0xa4, 0x43, 0x72, 0xf0, 0xa6, 0x0d, 0xf9, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x87, 0x74, 0x88, 0x06, 0x0e, 0xe9, 0xb0, 0xd8, 0xf0, 0xa0, 0xe4, 0x06, 0xcf, 0x50, 0x0f, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x43, 0x3a, 0xa4, 0x07, 0x4f, 0x90, 0x92, 0x3f, 0x58, 0x15, 0x46, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xd2, 0x61, 0x32, 0x70, 0x48, 0x87, 0xd5, 0x41, 0xc3, 0xe8, 0xa7, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x21, 0x1d, 0x66, 0x03, 0x87, 0x74, 0x58, 0x1e, 0xb4, 0xc8, 0x9c, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xd2, 0x61, 0x3a, 0x70, 0x48, 0x87, 0x86, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x68, 0x6f, 0xf0, 0xc1, 0x13, 0x49, 0xe3, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x43, 0x3a, 0x54, 0x0c, 0x1c, 0xd2, 0xa1, 0x78, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x21, 0x1d, 0x3a, 0x06, 0x0e, 0xe9, 0x50, 0x73, 0x50, 0xf2, 0xfb, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x87, 0x74, 0xe8, 0x19, 0x38, 0xa4, 0x43, 0xef, 0x86, 0x07, 0x25, 0x37, 0x38, 0x5d, 0x64, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x21, 0x1d, 0x9a, 0x0e, 0x1e, 0x71, 0x26, 0xbf, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x90, 0x0e, 0x55, 0x03, 0x87, 0x74, 0xa8, 0xdc, 0xf0, 0xa0, 0xe4, 0x06, 0x0f, 0xcf, 0x1b, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x43, 0x3a, 0xd4, 0x1d, 0xbc, 0xa0, 0x4d, 0xfe, 0xe0, 0x15, 0x74, 0xd8, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x21, 0x1d, 0x3a, 0x07, 0x0e, 0xe9, 0x50, 0xbb, 0xe1, 0x6d, 0x9d, 0x01, 0x4f, 0xec, 0x8d, 0xac, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x4b, 0x3a, 0xfe, 0xe0, 0xc1, 0x91, 0xf1, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2e, 0xe9, 0x10, 0x0c, 0x5c, 0xd2, 0x21, 0x3b, 0x58, 0xf8, 0x4e, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x5c, 0xd2, 0x21, 0x1c, 0xb8, 0xa4, 0x43, 0x7e, 0xf0, 0xda, 0x39, 0xf9, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x5b, 0x0d, 0x9e, 0x25, 0xca, 0xbd, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0x2c, 0x51, 0xee, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x27, 0xc3, 0x6c, 0xe0, 0x9e, 0x0c, 0x1d, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xc9, 0xb0, 0x1b, 0xb8, 0x27, 0xc3, 0x78, 0xc3, 0x9f, 0x4b, 0x1b, 0xbc, 0x42, 0x27, 0x64, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xc9, 0x30, 0x3c, 0x78, 0x0c, 0xa1, 0xfc, 0xc1, 0x33, 0x73, 0x42, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x7b, 0x32, 0xac, 0x07, 0xee, 0xc9, 0x50, 0xb1, 0xe1, 0xcf, 0xa5, 0x0d, 0xde, 0x4b, 0x61, 0xbe, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xf7, 0x64, 0x98, 0x1f, 0x3c, 0x49, 0x51, 0x7e, 0xc3, 0xbf, 0xf3, 0x6b, 0xf0, 0x5e, 0x0a, 0xf3, 0x6a, 0x35, 0x78, 0xdf, 0x4d, 0xf3, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0xfb, 0x6e, 0x9a, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xa8, 0xc7, 0x0d, 0x94, 0xf7, 0xf8, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x45, 0x3d, 0x24, 0x03, 0x45, 0x3d, 0x34, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x3d, 0x57, 0xe6, 0x46, 0x96, 0xe6, 0x76, 0x06, 0x02, 0x17, 0x36, 0xb6, 0x56, 0x46, 0x37, 0xb7, 0xe1, 0xcf, 0xa5, 0x01, 0x6f, 0xce, 0x8d, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xa2, 0x1e, 0xd2, 0x81, 0xa2, 0x1e, 0x46, 0x1b, 0x04, 0xd0, 0xd9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x14, 0xf5, 0x10, 0x1f, 0x3c, 0x78, 0x53, 0x7e, 0xc3, 0x5f, 0x34, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x51, 0x0f, 0xf9, 0x40, 0x51, 0x0f, 0x83, 0xc3, 0x07, 0xab, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xd4, 0xc3, 0xe2, 0xe0, 0xc1, 0x9b, 0xf2, 0x07, 0xcb, 0x9c, 0x64, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xaa, 0x1e, 0x92, 0x81, 0xaa, 0x1e, 0xba, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0x41, 0xae, 0x6c, 0xac, 0x2c, 0xcd, 0x2e, 0xcd, 0xed, 0x0c, 0x04, 0x2e, 0x6c, 0x6c, 0xad, 0x8c, 0x6e, 0x6e, 0xc3, 0x9f, 0x4b, 0x03, 0x9e, 0xdc, 0x98, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x55, 0x3d, 0xa4, 0x03, 0x55, 0x3d, 0x8c, 0x36, 0x08, 0xa0, 0xb3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xea, 0x21, 0x3e, 0x78, 0x41, 0xab, 0xfc, 0x86, 0xbf, 0x68, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xaa, 0x1e, 0xf2, 0x81, 0xaa, 0x1e, 0x06, 0x87, 0x0f, 0x56, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xaa, 0x87, 0xc5, 0xc1, 0x0b, 0x5a, 0xe5, 0x0f, 0x96, 0x39, 0xc9, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x65, 0x3d, 0x24, 0x03, 0x65, 0x3d, 0x14, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x5b, 0xe7, 0x56, 0x37, 0x57, 0x17, 0xc6, 0x06, 0x52, 0x66, 0x57, 0xe6, 0x46, 0x37, 0xb7, 0xe1, 0xcf, 0xa5, 0x01, 0xef, 0x8d, 0x8c, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xb2, 0x1e, 0xd2, 0x81, 0xb2, 0x1e, 0x46, 0x1b, 0x04, 0xd0, 0xd9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x94, 0xf5, 0x10, 0x1f, 0x3c, 0xbc, 0x57, 0x7e, 0xc3, 0x5f, 0x34, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x59, 0x0f, 0xf9, 0x40, 0x59, 0x0f, 0x83, 0xc3, 0x07, 0xab, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xd6, 0xc3, 0xe2, 0xe0, 0xe1, 0xbd, 0xf2, 0x07, 0xcb, 0x9c, 0x64, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xba, 0x1e, 0x92, 0x81, 0xba, 0x1e, 0xea, 0x36, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0xa7, 0xad, 0x6c, 0x6e, 0x2e, 0xec, 0xac, 0xac, 0x85, 0xad, 0xcc, 0xae, 0x8c, 0x0d, 0xa4, 0xcc, 0xae, 0xcc, 0x8d, 0x6e, 0x6e, 0xc3, 0x9f, 0x4b, 0x03, 0x5e, 0xdb, 0xdc, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x75, 0x3d, 0xa4, 0x03, 0x75, 0x3d, 0x8c, 0x36, 0x08, 0xa0, 0xb3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xeb, 0x21, 0x3e, 0x78, 0xe1, 0xb3, 0xfc, 0x86, 0xbf, 0x68, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xba, 0x1e, 0xf2, 0x81, 0xba, 0x1e, 0x06, 0x87, 0x0f, 0x56, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xae, 0x87, 0xc5, 0xc1, 0x0b, 0x9f, 0xe5, 0x0f, 0x96, 0x39, 0xc9, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x85, 0x3d, 0x24, 0x03, 0x85, 0x3d, 0x94, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0xc7, 0xd8, 0x9b, 0xdb, 0x59, 0xd9, 0x1c, 0x5d, 0xda, 0x9b, 0x1b, 0xc8, 0xd8, 0x9b, 0x1b, 0x9d, 0xdc, 0x1b, 0xdb, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0xb3, 0xb2, 0x79, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0a, 0x7b, 0x48, 0x07, 0x0a, 0x7b, 0x18, 0x6d, 0x10, 0x40, 0x67, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xd8, 0x43, 0x7c, 0xf0, 0x74, 0x70, 0xf9, 0x0d, 0x7f, 0xd1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x85, 0x3d, 0xe4, 0x03, 0x85, 0x3d, 0x0c, 0x0e, 0x1f, 0xac, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x61, 0x0f, 0x8b, 0x83, 0xa7, 0x83, 0xcb, 0x1f, 0x2c, 0x73, 0x92, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2a, 0x7b, 0x48, 0x06, 0x2a, 0x7b, 0xe8, 0xda, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0x07, 0xb8, 0xb0, 0xb1, 0xb5, 0x32, 0x3a, 0x10, 0xb3, 0x37, 0xb9, 0xbb, 0x30, 0x39, 0xb2, 0x34, 0xb7, 0xb3, 0x0d, 0x7f, 0x2e, 0x6d, 0xb0, 0x90, 0x1b, 0x7e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x2a, 0x7b, 0x48, 0x07, 0x2a, 0x7b, 0x18, 0x6d, 0x10, 0x40, 0x67, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xd9, 0x43, 0x7c, 0xf0, 0x14, 0x79, 0xf9, 0x0d, 0x7f, 0xd1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x95, 0x3d, 0xe4, 0x03, 0x95, 0x3d, 0x0c, 0x0e, 0x1f, 0xac, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x65, 0x0f, 0x8b, 0x83, 0xa7, 0xc8, 0xcb, 0x1f, 0x2c, 0x73, 0x92, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x4a, 0x7b, 0x48, 0x06, 0x4a, 0x7b, 0xa8, 0xda, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x5f, 0xee, 0xad, 0x8e, 0x2e, 0xcd, 0xed, 0x0c, 0x24, 0x8c, 0x8e, 0xae, 0xac, 0x0d, 0x8e, 0x6e, 0x6e, 0xc3, 0x9f, 0x4b, 0x1b, 0x34, 0x79, 0x28, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa5, 0x3d, 0xa4, 0x03, 0xa5, 0x3d, 0x8c, 0x36, 0x08, 0xa0, 0xb3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0xed, 0x21, 0x3e, 0x78, 0xd1, 0xc0, 0xfc, 0x86, 0xbf, 0x68, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xd2, 0x1e, 0xf2, 0x81, 0xd2, 0x1e, 0x06, 0x87, 0x0f, 0x56, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xb4, 0x87, 0xc5, 0xc1, 0x8b, 0x06, 0xe6, 0x0f, 0x96, 0x39, 0xc9, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb5, 0x3d, 0x24, 0x03, 0xb5, 0x3d, 0xd4, 0x6d, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0x4f, 0xda, 0x1c, 0xc8, 0xdb, 0xda, 0x8b, 0xdb, 0x1b, 0x1d, 0x88, 0x5c, 0xd9, 0x1c, 0xdc, 0x9b, 0x1b, 0x59, 0x9a, 0xdb, 0xd9, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0xb5, 0xb0, 0x7c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x6a, 0x7b, 0x48, 0x07, 0x6a, 0x7b, 0x18, 0x6d, 0x10, 0x40, 0x67, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0xdb, 0x43, 0x7c, 0xf0, 0x74, 0x8a, 0xf9, 0x0d, 0x7f, 0xd1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xb5, 0x3d, 0xe4, 0x03, 0xb5, 0x3d, 0x0c, 0x0e, 0x1f, 0xac, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x6d, 0x0f, 0x8b, 0x83, 0xa7, 0x53, 0xcc, 0x1f, 0x2c, 0x73, 0x92, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x8a, 0x7b, 0x48, 0x06, 0x8a, 0x7b, 0x68, 0xd9, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0xc0, 0x4b, 0xae, 0xac, 0xed, 0x8d, 0xae, 0xac, 0x65, 0x6e, 0x4c, 0x2e, 0x6f, 0xc3, 0x9f, 0x4b, 0x1b, 0xb4, 0xb4, 0x59, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xc5, 0x3d, 0xa4, 0x03, 0xc5, 0x3d, 0x8c, 0x36, 0x08, 0xa0, 0xb3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0xee, 0x21, 0x3e, 0x78, 0x59, 0xc9, 0xfc, 0x86, 0xbf, 0x68, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xe2, 0x1e, 0xf2, 0x81, 0xe2, 0x1e, 0x06, 0x87, 0x0f, 0x56, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xb8, 0x87, 0xc5, 0xc1, 0xcb, 0x4a, 0xe6, 0x0f, 0x96, 0x39, 0xc9, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd5, 0x3d, 0x24, 0x03, 0xd5, 0x3d, 0xcc, 0x37, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xfc, 0x29, 0xaa, 0x2a, 0xa7, 0x0d, 0x7f, 0x2e, 0x6d, 0x90, 0x42, 0x7c, 0xb4, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xd5, 0x3d, 0xa4, 0x03, 0xd5, 0x3d, 0x8c, 0x36, 0x08, 0xa0, 0xb3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0xee, 0x21, 0x3e, 0x78, 0x39, 0xcd, 0xfc, 0x86, 0xbf, 0x68, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0xea, 0x1e, 0xf2, 0x81, 0xea, 0x1e, 0x06, 0x87, 0x0f, 0x56, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0xba, 0x87, 0xc5, 0xc1, 0xcb, 0x69, 0xe6, 0x0f, 0x96, 0x39, 0xc9, 0x76, 0x38, 0xc5, 0xd6, 0xe0, 0x41, 0x7e, 0xdc, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0x0f, 0xf2, 0xe3, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x83, 0x32, 0xcc, 0x06, 0x0e, 0xca, 0xf0, 0x65, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x41, 0x19, 0x76, 0x03, 0x07, 0x65, 0x68, 0xd9, 0xf0, 0xe7, 0xd2, 0x06, 0x8f, 0x6c, 0x03, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x83, 0x32, 0x0c, 0x0f, 0x5e, 0x4c, 0x34, 0x7f, 0xf0, 0xbc, 0xa6, 0xe1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0xa0, 0x0c, 0x35, 0x03, 0x07, 0x65, 0xe8, 0xda, 0xf0, 0xe7, 0xd2, 0x06, 0x8f, 0xb1, 0xb1, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x83, 0x32, 0xf4, 0x1c, 0xbc, 0x5c, 0x69, 0xfe, 0xe0, 0x6d, 0xba, 0x8e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x41, 0x19, 0xca, 0x06, 0x0e, 0xca, 0xd0, 0xb8, 0xe1, 0xcf, 0xa5, 0x0d, 0x5e, 0x44, 0xeb, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x07, 0x65, 0x68, 0x3b, 0x78, 0x42, 0xd4, 0xfc, 0xc1, 0x1b, 0x6c, 0x1d, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x83, 0x32, 0x54, 0x0e, 0x1c, 0x94, 0xa1, 0x7d, 0xc3, 0x9f, 0x4b, 0x1b, 0x3c, 0xad, 0x6b, 0x78, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0xca, 0xd0, 0x79, 0xf0, 0x96, 0xab, 0xf9, 0x83, 0x87, 0x84, 0x0d, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x07, 0x65, 0xa8, 0x1f, 0x38, 0x28, 0xc3, 0x95, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x60, 0x3a, 0xae, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x28, 0xc3, 0x8d, 0x83, 0x47, 0x75, 0xcd, 0x1f, 0xb4, 0x6d, 0x3d, 0xde, 0xe1, 0x14, 0x5b, 0x83, 0xa7, 0xb3, 0x35, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xe9, 0x19, 0x37, 0x70, 0x89, 0xc6, 0x6f, 0x50, 0x4a, 0x88, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0xa7, 0x67, 0x48, 0x06, 0xce, 0xd0, 0x90, 0x6d, 0x50, 0xb2, 0xb0, 0xcf, 0x32, 0x0b, 0x78, 0x6c, 0x73, 0xf3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0x9f, 0x21, 0x1b, 0xb8, 0x42, 0x43, 0xba, 0x41, 0xc9, 0xc2, 0x3e, 0xcb, 0x2c, 0xc0, 0x6f, 0x57, 0x26, 0x97, 0x66, 0x96, 0x56, 0x26, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0xf9, 0x19, 0xd2, 0x81, 0x23, 0x34, 0xe4, 0x1b, 0x94, 0x2c, 0xec, 0xb3, 0xcc, 0x1a, 0x84, 0x71, 0xc6, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0x41, 0x18, 0x67, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x01, 0x1a, 0xf2, 0x81, 0x1b, 0x34, 0x2c, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x1c, 0xa0, 0x61, 0x33, 0x70, 0x80, 0x86, 0xf5, 0x86, 0x3f, 0x97, 0x06, 0xf8, 0xd8, 0xca, 0xc2, 0xec, 0xca, 0xe6, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x38, 0x40, 0xc3, 0xf4, 0xe0, 0x35, 0x76, 0xf3, 0x07, 0x65, 0x96, 0xee, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x81, 0x86, 0xcd, 0xc0, 0x05, 0x1a, 0xe6, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0x39, 0xa8, 0xee, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x81, 0x86, 0xed, 0xc1, 0x3b, 0xf9, 0xe6, 0x0f, 0xca, 0x2c, 0xdd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xe0, 0x04, 0x0d, 0x9b, 0x81, 0x13, 0x34, 0x14, 0x6e, 0xf8, 0x73, 0x69, 0x83, 0x47, 0x44, 0xce, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x09, 0x1a, 0x96, 0x07, 0x0f, 0x15, 0x9c, 0xdf, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x13, 0x34, 0x4c, 0x07, 0x4e, 0xd0, 0xb0, 0x3e, 0x28, 0x11, 0xeb, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x13, 0x34, 0xcc, 0x07, 0x4e, 0xd0, 0xd0, 0x70, 0x50, 0x66, 0xe9, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x27, 0x68, 0xa8, 0x18, 0x38, 0x41, 0x43, 0xdf, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x13, 0x34, 0x74, 0x0c, 0x9c, 0xa0, 0xa1, 0x68, 0xc3, 0x9f, 0x4b, 0x83, 0xb3, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x82, 0x86, 0x96, 0x83, 0xb7, 0x43, 0xce, 0x1f, 0x1c, 0x5b, 0x4a, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x13, 0x34, 0x34, 0x0d, 0x9c, 0xa0, 0xa1, 0x6e, 0xc3, 0x9f, 0x4b, 0x83, 0xcb, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x82, 0x86, 0xae, 0x83, 0xb7, 0x5a, 0xce, 0x1f, 0x1c, 0x5b, 0x4a, 0xab, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x87, 0x53, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0xee, 0xd0, 0xb8, 0x83, 0x57, 0x91, 0xcd, 0x6f, 0xf8, 0xa8, 0x7d, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0xc0, 0x1d, 0x1a, 0x92, 0x81, 0x3b, 0x34, 0xec, 0x37, 0xfc, 0xb9, 0xb4, 0xc1, 0xf2, 0xc8, 0xd8, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xb8, 0x43, 0x43, 0x7a, 0xf0, 0xc0, 0xd0, 0xf9, 0x0d, 0xff, 0xce, 0x6f, 0x10, 0xc2, 0x19, 0x6b, 0xf0, 0xee, 0xb5, 0xf9, 0x16, 0xf0, 0xd8, 0xe6, 0xe6, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0x22, 0x46, 0x9b, 0x05, 0x0e, 0xd1, 0x90, 0x0c, 0x1c, 0xa2, 0x61, 0xb6, 0xe1, 0xcf, 0xa5, 0x01, 0xdf, 0x2c, 0xec, 0x6c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x43, 0x34, 0xc4, 0x07, 0x6f, 0x49, 0x9d, 0xdf, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x43, 0x34, 0xe4, 0x03, 0x87, 0x68, 0xd8, 0x1c, 0x84, 0x94, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x70, 0x88, 0x86, 0xd1, 0xc0, 0x21, 0x1a, 0x56, 0x87, 0x1f, 0x6a, 0xea, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0xb6, 0x90, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0x17, 0xd1, 0x3a, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0x25, 0xf2, 0x6c, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x3d, 0x87, 0x96, 0x06, 0x07, 0x32, 0xf6, 0xe6, 0x46, 0x97, 0xe6, 0x56, 0x97, 0x46, 0x97, 0x77, 0x50, 0x66, 0xe9, 0x1e, 0x4e, 0xb1, 0x05, 0x96, 0xf7, 0x37, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0x5e, 0xbd, 0x55, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x75, 0x20, 0x64, 0x03, 0x85, 0x20, 0x34, 0x6d, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x40, 0x1d, 0x08, 0xf9, 0x40, 0x1d, 0x08, 0x9b, 0x83, 0xd2, 0x9b, 0x7e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x03, 0x61, 0x35, 0x50, 0x07, 0xc2, 0x99, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xbc, 0xc7, 0xc2, 0xe6, 0xc6, 0xc2, 0xc8, 0xd2, 0xdc, 0xce, 0x40, 0xe6, 0xe8, 0xf2, 0xd8, 0xca, 0x36, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x0e, 0x84, 0xd9, 0x40, 0x1d, 0x08, 0xd3, 0x83, 0xb2, 0x09, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0xa8, 0x03, 0x61, 0x3b, 0x50, 0x07, 0xc2, 0xfe, 0xe0, 0xbd, 0x79, 0x77, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x85, 0x20, 0x64, 0x07, 0x2f, 0xf0, 0x9d, 0xdf, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0x88, 0xd1, 0x66, 0x81, 0x42, 0x10, 0xc2, 0x81, 0x42, 0x10, 0x06, 0x07, 0xa5, 0x37, 0xfd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x08, 0xc2, 0x62, 0xa0, 0x10, 0x84, 0xf1, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x45, 0x8c, 0x36, 0x0b, 0x14, 0x82, 0x30, 0x19, 0x28, 0x04, 0x61, 0x76, 0x50, 0x36, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x11, 0xa3, 0xcd, 0x02, 0x85, 0x20, 0xec, 0x06, 0x0a, 0x41, 0xd8, 0x1e, 0xbc, 0x53, 0xf0, 0xae, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0xa0, 0x10, 0x84, 0xf5, 0x40, 0x21, 0x08, 0x45, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x17, 0x31, 0xda, 0x2c, 0x50, 0x08, 0xc2, 0x7c, 0xa0, 0x10, 0x84, 0x8a, 0x83, 0xb2, 0x09, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x8b, 0x18, 0x6d, 0x16, 0x28, 0x04, 0xa1, 0x63, 0xa0, 0x10, 0x84, 0x9e, 0x83, 0x77, 0x0a, 0xde, 0x55, 0x87, 0x53, 0x6c, 0x83, 0xc6, 0xb5, 0x45, 0x36, 0x68, 0x26, 0x5b, 0x64, 0xd9, 0x70, 0x28, 0x2c, 0xb3, 0x06, 0x2f, 0xa2, 0x75, 0x3c, 0x78, 0x08, 0xed, 0xfc, 0x6a, 0xf0, 0x2a, 0x89, 0xb7, 0x83, 0x57, 0xf9, 0xc0, 0xce, 0x1a, 0xbc, 0xfe, 0x00, 0xf1, 0xe0, 0x91, 0x06, 0x88, 0xb3, 0x06, 0x8f, 0x5d, 0x88, 0x39, 0x78, 0x4c, 0x19, 0xe2, 0xac, 0xc1, 0x33, 0x35, 0x34, 0x0f, 0x9e, 0x93, 0xa1, 0x79, 0x38, 0xc5, 0xd6, 0xa0, 0x6d, 0xc7, 0xa6, 0x83, 0xd7, 0xa5, 0x8b, 0xae, 0x00, 0x5e, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x2d, 0x6d, 0x61, 0xf0, 0xc1, 0x63, 0xfe, 0x26, 0x57, 0x83, 0xe7, 0x86, 0x55, 0x1e, 0xbc, 0x0a, 0xac, 0xf2, 0x70, 0x8a, 0xad, 0xc1, 0xf3, 0x8b, 0x48, 0x0e, 0xde, 0x6f, 0x2e, 0xba, 0x1a, 0x3c, 0x4e, 0x20, 0xe6, 0xe0, 0x71, 0x87, 0x77, 0x87, 0x53, 0x6c, 0x0d, 0x1e, 0x71, 0x10, 0x73, 0xf0, 0x56, 0xc7, 0xc4, 0x59, 0x83, 0x67, 0x0c, 0xde, 0x1d, 0xbc, 0x0d, 0xaf, 0x72, 0x35, 0x78, 0x19, 0xba, 0xdc, 0xc1, 0xcb, 0x05, 0x32, 0x0f, 0xa7, 0xd8, 0x1a, 0xbc, 0x8f, 0x20, 0xe6, 0xe0, 0x55, 0x97, 0xb8, 0xab, 0xc1, 0x63, 0x4e, 0xec, 0x0e, 0x1e, 0x65, 0x62, 0xb7, 0x1a, 0x3c, 0x7c, 0x0d, 0xf4, 0xe0, 0x35, 0x0e, 0x99, 0x87, 0x53, 0x6c, 0x0d, 0x9e, 0x63, 0x88, 0x78, 0xf0, 0xd6, 0x74, 0xb9, 0x59, 0x83, 0x17, 0xf2, 0xd6, 0x1d, 0x3c, 0x64, 0xb7, 0xee, 0x70, 0x8a, 0xad, 0xc1, 0xc3, 0xde, 0x27, 0x0f, 0xde, 0xdf, 0x3e, 0xb9, 0x1a, 0x3c, 0xc6, 0xc6, 0xee, 0xe0, 0x51, 0x35, 0x76, 0x87, 0x53, 0xac, 0x35, 0x78, 0x66, 0xb2, 0xdd, 0xc1, 0x53, 0x3e, 0x2b, 0x57, 0x83, 0x27, 0xf9, 0xc3, 0x1c, 0xbc, 0xac, 0x82, 0x77, 0x35, 0x78, 0x09, 0x7b, 0xd0, 0xc1, 0x73, 0xb3, 0x45, 0x0f, 0xa7, 0xd8, 0x1a, 0xbc, 0x34, 0x21, 0xe6, 0xe0, 0xb1, 0x50, 0xb0, 0xab, 0xc1, 0xcb, 0xe9, 0x29, 0x0f, 0x5e, 0x38, 0x4f, 0xb9, 0x1a, 0xbc, 0x7a, 0xab, 0xf2, 0xe0, 0xe9, 0xba, 0xf3, 0xab, 0xc1, 0x93, 0x71, 0x34, 0x0f, 0x5e, 0x76, 0xa3, 0xb9, 0x1a, 0x3c, 0x50, 0xe0, 0xee, 0xe0, 0x11, 0x88, 0xa2, 0xab, 0xc1, 0xe3, 0x63, 0x0e, 0x0f, 0x1e, 0x11, 0x73, 0x78, 0x38, 0xc5, 0x6a, 0x0d, 0x5e, 0x8a, 0x81, 0x71, 0xf0, 0xae, 0xf9, 0xdd, 0xc3, 0x29, 0xb6, 0x80, 0xd7, 0xf6, 0x06, 0x1f, 0xbc, 0x33, 0x70, 0x72, 0x05, 0xfe, 0xcd, 0x3d, 0x78, 0x9f, 0x1b, 0xe9, 0x6a, 0xf0, 0x04, 0x67, 0xb0, 0x83, 0x87, 0x7a, 0x6b, 0xae, 0x06, 0xaf, 0xac, 0x13, 0x3d, 0x78, 0x2d, 0x9d, 0xe8, 0xe1, 0x14, 0x5b, 0x83, 0xd7, 0xa5, 0xdd, 0x1d, 0xbc, 0x12, 0xed, 0xee, 0x70, 0x8a, 0x55, 0x6b, 0xf0, 0x2e, 0x80, 0x98, 0x83, 0x17, 0x06, 0x1d, 0xae, 0x06, 0x6f, 0x93, 0x88, 0x39, 0x78, 0x0a, 0x04, 0xe5, 0x6a, 0xf0, 0x2c, 0x88, 0x98, 0x83, 0x97, 0xf0, 0xd8, 0x1d, 0x4e, 0xb1, 0xd6, 0xe0, 0xad, 0x45, 0x95, 0x07, 0x6f, 0x26, 0xaa, 0x5c, 0x0d, 0x5e, 0xe4, 0x10, 0x73, 0xf0, 0x86, 0x9d, 0xcd, 0xd5, 0xe0, 0xe9, 0xd9, 0x72, 0x07, 0x4f, 0xc8, 0x96, 0x3b, 0x9c, 0x62, 0x75, 0x38, 0xc5, 0xd6, 0x60, 0x8d, 0xc7, 0xfe, 0x06, 0xeb, 0x97, 0xf8, 0x37, 0x68, 0x61, 0x11, 0x60, 0x0d, 0x1a, 0x57, 0x05, 0x58, 0x41, 0xb0, 0x41, 0x93, 0x88, 0x02, 0x8b, 0x83, 0x60, 0x71, 0x83, 0x46, 0x19, 0x05, 0x36, 0x68, 0x6a, 0x58, 0x60, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0xec, 0x86, 0x5d, 0x83, 0x0d, 0xe3, 0x32, 0x08, 0x16, 0x04, 0x1b, 0xb4, 0x01, 0x30, 0x30, 0x08, 0x36, 0x68, 0x9a, 0x60, 0x60, 0x90, 0x6d, 0xd0, 0x60, 0xc2, 0xc0, 0x20, 0x5b, 0x43, 0x1e, 0x7b, 0x71, 0x10, 0x6c, 0xd0, 0x80, 0xcf, 0xc0, 0x86, 0xdc, 0xf7, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xe2, 0x06, 0xab, 0xba, 0x17, 0x36, 0x18, 0x0d, 0xbe, 0x1b, 0xac, 0xd1, 0x56, 0xd8, 0x60, 0x8d, 0xb6, 0xc2, 0x06, 0xa3, 0xc1, 0x77, 0x83, 0x21, 0xf5, 0xbb, 0x41, 0x1b, 0x5c, 0x03, 0x1b, 0xa4, 0xbd, 0x54, 0x0f, 0x82, 0x15, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0xd1, 0xaf, 0x81, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x0d, 0x92, 0x0d, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0xb8, 0xa1, 0x8e, 0xac, 0x61, 0x86, 0xd6, 0x30, 0x71, 0x6b, 0xb0, 0xa0, 0x61, 0x6a, 0x83, 0xc6, 0xd8, 0x06, 0x66, 0x0d, 0x73, 0x3f, 0x78, 0xb8, 0x61, 0xe2, 0x36, 0x68, 0x2c, 0x6e, 0x60, 0xc3, 0xc4, 0xad, 0xc1, 0x82, 0x86, 0xa9, 0x0d, 0xda, 0xb0, 0x1b, 0x58, 0x0d, 0x73, 0x3f, 0x38, 0xbb, 0x61, 0xe2, 0x36, 0x68, 0x2c, 0x6e, 0x60, 0xc3, 0xc4, 0xad, 0x61, 0xee, 0x07, 0x67, 0x37, 0xd4, 0x91, 0x35, 0xcc, 0xd0, 0x1a, 0x26, 0x6e, 0xc3, 0x74, 0x6e, 0x98, 0xa1, 0x35, 0x4c, 0xdc, 0x1a, 0xe6, 0x7e, 0x83, 0x60, 0x6f, 0xdb, 0x30, 0x43, 0x6b, 0x98, 0xb8, 0x0d, 0xd3, 0xb9, 0x61, 0x86, 0xd6, 0x30, 0x71, 0x6b, 0x28, 0xa6, 0x1b, 0xb4, 0x75, 0x38, 0xb0, 0xc1, 0x82, 0x86, 0xa9, 0x0d, 0x1a, 0x63, 0x1b, 0x58, 0x0d, 0x73, 0x3f, 0x78, 0xb8, 0x61, 0xe2, 0xd6, 0x30, 0xf7, 0x83, 0xbb, 0x1b, 0x26, 0x6e, 0x83, 0xb6, 0x1e, 0x07, 0x36, 0x14, 0xd3, 0xd5, 0x30, 0x43, 0x6b, 0x98, 0xb8, 0x0d, 0xd3, 0xb9, 0x61, 0x86, 0x36, 0x94, 0xd2, 0x0d, 0x27, 0xc2, 0x86, 0x52, 0xba, 0x86, 0x73, 0x64, 0x83, 0x44, 0x07, 0xe6, 0x15, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x2e, 0xe0, 0xfb, 0x99, 0xe5, 0xc9, 0x1b, 0xbe, 0xa8, 0x19, 0x80, 0x56, 0x3f, 0x19, 0x18, 0x19, 0x1a, 0x97, 0x18, 0x18, 0x97, 0x99, 0x18, 0x17, 0x17, 0x98, 0x1c, 0x97, 0x99, 0x1a, 0x97, 0x1a, 0x1b, 0x17, 0x97, 0x18, 0x33, 0xb1, 0x7c, 0xf0, 0xb2, 0x6e, 0x92, 0x83, 0x14, 0x38, 0xef, 0xe1, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x74, 0x42, 0xef, 0xe1, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xd4, 0x4c, 0xef, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x24, 0xbb, 0x7a, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xa2, 0xb0, 0xf7, 0x41, 0xca, 0xb2, 0xf7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xa4, 0x86, 0x7b, 0x0f, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xa4, 0xd9, 0x7b, 0x2f, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xe9, 0x0a, 0xdf, 0x83, 0x60, 0x83, 0x84, 0x8a, 0xef, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0x44, 0xf9, 0x1e, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x09, 0x41, 0xdf, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0x90, 0x46, 0xf5, 0x3d, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0x90, 0x94, 0xf6, 0x3d, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0x90, 0xf0, 0xf7, 0x3d, 0xdc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0x90, 0x4c, 0xf9, 0x7d, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xa4, 0xac, 0x7e, 0x1f, 0x52, 0x07, 0x0b, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xa4, 0x0f, 0x7f, 0x0f, 0xb7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x24, 0x67, 0x7f, 0x1f, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x69, 0xf0, 0xdf, 0x07, 0x23, 0xcb, 0xea, 0x90, 0xce, 0x3d, 0x1c, 0xed, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x82, 0x03, 0xf8, 0xc1, 0x78, 0xd3, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb4, 0x12, 0xf0, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xa4, 0xea, 0x80, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0x21, 0x0a, 0xfc, 0x20, 0x49, 0x0b, 0x7c, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0xd5, 0x0e, 0xfc, 0x90, 0x3a, 0x18, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x24, 0x45, 0x82, 0x1f, 0x8c, 0x09, 0xab, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xa4, 0xad, 0x82, 0x0f, 0x92, 0x21, 0x83, 0x68, 0xc1, 0xfd, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0x2b, 0x06, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xea, 0x36, 0xf8, 0x21, 0x31, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0x90, 0xc2, 0x0f, 0x3e, 0xdc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0x90, 0x20, 0x11, 0x7e, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xa4, 0xa2, 0x84, 0x1f, 0x84, 0x14, 0xf8, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x14, 0xa2, 0xf0, 0x83, 0x10, 0x00, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xa4, 0x7d, 0x85, 0x1f, 0x0c, 0xde, 0xc9, 0xe3, 0xd0, 0x20, 0x5a, 0xf0, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x92, 0xfa, 0xc2, 0x87, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x52, 0x26, 0xc3, 0x87, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd2, 0x51, 0xc3, 0x0f, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xc4, 0xdf, 0xf0, 0x83, 0xb1, 0xd8, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x24, 0x5f, 0x87, 0x1f, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x69, 0xee, 0xe1, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0x26, 0x10, 0x3f, 0x38, 0x6a, 0x0f, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x49, 0x26, 0xe2, 0x07, 0x63, 0xb1, 0xf3, 0x38, 0x34, 0x88, 0x16, 0x76, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd2, 0x86, 0xc4, 0x0f, 0x42, 0x0a, 0xfc, 0x78, 0x7e, 0x3c, 0x3e, 0x1e, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xe9, 0x60, 0xe2, 0x83, 0x60, 0x83, 0xd4, 0x35, 0xf1, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0xf7, 0x13, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x0a, 0xa5, 0xf8, 0xc1, 0x39, 0xf8, 0x7b, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0xb5, 0x56, 0x7c, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0x4e, 0x16, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xfa, 0xb7, 0xf8, 0x41, 0x3a, 0xba, 0xf8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x72, 0xc1, 0xf8, 0xc1, 0xf8, 0xe9, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x24, 0x84, 0x8c, 0x1f, 0x0c, 0xcd, 0xae, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xa4, 0xeb, 0x8c, 0x1f, 0x62, 0x38, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0xa7, 0x1a, 0x1f, 0x04, 0x1b, 0x8c, 0xfc, 0x87, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0x76, 0x1b, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x02, 0xe1, 0xf8, 0x41, 0x3a, 0x48, 0xf7, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x6a, 0xe9, 0xf8, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xc2, 0xee, 0xf8, 0x21, 0x9a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x6a, 0xf4, 0xf8, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0x90, 0x80, 0x3e, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x69, 0xfc, 0xe3, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x22, 0x04, 0xf9, 0x41, 0xda, 0x4b, 0xf5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xa4, 0xa3, 0x90, 0x1f, 0x62, 0x38, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0x17, 0x22, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x0a, 0x16, 0xf9, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd2, 0xda, 0xc8, 0x07, 0xc9, 0x30, 0x83, 0x68, 0x61, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0xf5, 0x90, 0xfc, 0x20, 0x28, 0xbd, 0x0f, 0xd9, 0x8a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xe4, 0x55, 0xf2, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0xfd, 0x97, 0xfc, 0x60, 0x4c, 0x58, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xea, 0x35, 0xf9, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x5a, 0x3b, 0xf9, 0x21, 0x9a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x0a, 0x41, 0xf9, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0x90, 0xac, 0x51, 0x7e, 0x30, 0xb2, 0xac, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x29, 0x36, 0xe5, 0x83, 0x60, 0x83, 0x91, 0xff, 0xb0, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x09, 0x50, 0xe5, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x32, 0x59, 0xf9, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x12, 0xf6, 0xca, 0x0f, 0x42, 0xc4, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0xe1, 0x2c, 0x3f, 0x34, 0x12, 0x3c, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x5a, 0x6d, 0xf9, 0x41, 0x50, 0x7a, 0x1f, 0x8f, 0x8f, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xa2, 0x76, 0xf9, 0xa1, 0x91, 0xe0, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x3e, 0x0e, 0x1d, 0x8f, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xa4, 0xfd, 0xf2, 0x41, 0xb0, 0x41, 0x82, 0x81, 0xf9, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xa4, 0x68, 0x98, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x54, 0x19, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0x30, 0x32, 0x1f, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0xd7, 0x32, 0x1f, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0x85, 0x33, 0x3f, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x12, 0x0e, 0xcd, 0x0f, 0x52, 0x20, 0xcd, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x14, 0x4f, 0xf3, 0x83, 0xf1, 0xa6, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x89, 0xb5, 0xe6, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x4a, 0xb2, 0xf9, 0x41, 0xda, 0x4b, 0xf5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x24, 0x85, 0x9b, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0xd1, 0xde, 0x7c, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xa9, 0x0c, 0xe7, 0x07, 0x47, 0xf9, 0xdd, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0xc1, 0xe5, 0xfc, 0x20, 0x05, 0xd2, 0xfc, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x49, 0x48, 0xe7, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0xec, 0x3a, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xb2, 0xdc, 0xf9, 0x20, 0x19, 0x66, 0x10, 0x2d, 0xec, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x24, 0x34, 0x9e, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x81, 0x98, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x1a, 0xea, 0xf9, 0x71, 0xe8, 0x78, 0x7e, 0x10, 0xe4, 0xfc, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x89, 0xcd, 0xe7, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x62, 0xf8, 0xf9, 0x41, 0x02, 0xb6, 0xc0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xa4, 0xe6, 0x9f, 0x1f, 0x8e, 0xf6, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xf2, 0x04, 0xfa, 0x20, 0xd8, 0x60, 0xe4, 0x3f, 0x2c, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x6a, 0x0b, 0xfa, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0x90, 0x26, 0x84, 0x3e, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x54, 0x2c, 0xf4, 0x83, 0x61, 0x0c, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xa4, 0xe7, 0xa1, 0x1f, 0x1a, 0x09, 0x1e, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0x65, 0x12, 0xfd, 0x20, 0x28, 0xbd, 0x8f, 0xc7, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0x09, 0x17, 0x7d, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x69, 0xce, 0xe8, 0x07, 0x69, 0xd7, 0xe8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xe9, 0xf3, 0xe8, 0x07, 0x25, 0x8c, 0xc4, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xc4, 0x87, 0xf4, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0x85, 0x24, 0xfd, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x69, 0x3a, 0xe9, 0x87, 0xa3, 0x7d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0x90, 0x4c, 0x95, 0x7e, 0x48, 0xd5, 0x1c, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xa4, 0xcd, 0xa5, 0x0f, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0x68, 0x4c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x74, 0xd0, 0xf4, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xa4, 0xd8, 0xa6, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xe9, 0xca, 0xe9, 0xc3, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xe9, 0xe0, 0xe9, 0x87, 0x56, 0xe2, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0x90, 0x84, 0x9f, 0x3e, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x64, 0x07, 0xf5, 0xe1, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x74, 0x12, 0xf5, 0x83, 0x53, 0x80, 0xef, 0xc1, 0x51, 0x4b, 0x77, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0x45, 0x49, 0xfd, 0x10, 0xcd, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x1a, 0x99, 0xfa, 0x21, 0x86, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0xe9, 0x53, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xea, 0xa4, 0xfa, 0xf0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x72, 0xaa, 0xfa, 0xc1, 0x29, 0xc0, 0xf7, 0xe0, 0xb0, 0xa9, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x24, 0x3b, 0xab, 0x1f, 0xa2, 0x79, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xc4, 0x73, 0xf5, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x34, 0x7e, 0xf5, 0x83, 0x90, 0x02, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x92, 0x28, 0xd6, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0x90, 0x98, 0xb2, 0x3e, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xd4, 0x9f, 0xf5, 0x83, 0x64, 0xa4, 0xf5, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0xc9, 0x6c, 0xfd, 0x90, 0xaf, 0x3d, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xd2, 0xdf, 0xfa, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x0a, 0xe5, 0xfa, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x92, 0x54, 0xd7, 0x0f, 0x8e, 0x9b, 0xd7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xc9, 0xcb, 0xeb, 0x87, 0x71, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x24, 0x97, 0xaf, 0x1f, 0x87, 0x8e, 0x43, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x8a, 0xff, 0xfa, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x12, 0x29, 0xd8, 0x0f, 0x92, 0x3b, 0xd8, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x52, 0x77, 0xd8, 0x0f, 0x6b, 0xbf, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x52, 0xad, 0xd8, 0x0f, 0xe3, 0x32, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0x88, 0x63, 0x3f, 0x48, 0x7b, 0xa9, 0x3e, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xe2, 0x22, 0xfb, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x92, 0x41, 0xd9, 0x0f, 0xd2, 0x41, 0xba, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x12, 0x84, 0xd9, 0x0f, 0x6b, 0xbf, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x34, 0x6e, 0xf6, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xa4, 0xca, 0xb3, 0x1f, 0xa4, 0xef, 0xb3, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x24, 0x67, 0xb4, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0x05, 0xa6, 0xfd, 0xe0, 0x78, 0x05, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0x90, 0x1e, 0xd5, 0x7e, 0x18, 0x97, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x02, 0x5b, 0xfb, 0x71, 0xe8, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0x3d, 0x6c, 0x3f, 0x48, 0xdb, 0x78, 0x3e, 0x0e, 0x1d, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0x81, 0xb4, 0x7d, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xe9, 0xb9, 0xed, 0x07, 0xe9, 0xc2, 0xed, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xc9, 0xe0, 0xed, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0xb8, 0x6f, 0x3f, 0x48, 0x01, 0x70, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0xf0, 0x70, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x1a, 0x8d, 0xfb, 0x41, 0x6a, 0x8f, 0xfb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xe2, 0x96, 0xfb, 0x30, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0x90, 0x12, 0xe7, 0x7e, 0x10, 0x02, 0xe0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x34, 0x46, 0xf7, 0x83, 0xb4, 0x8d, 0xe7, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0x49, 0xd5, 0xfd, 0x90, 0xaf, 0x3d, 0x0e, 0x2d, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0x39, 0x76, 0x3f, 0x1c, 0xed, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xe4, 0x70, 0xf7, 0x83, 0xb4, 0x97, 0xea, 0xe3, 0xd0, 0xf1, 0xf8, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x09, 0x00, 0xef, 0x8b, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x42, 0xc5, 0xfb, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0x74, 0x79, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x34, 0xa1, 0xf7, 0x61, 0x37, 0xac, 0xef, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xc9, 0x5a, 0xef, 0x07, 0x81, 0x89, 0x3d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xa9, 0x72, 0xef, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xaa, 0xe1, 0xfb, 0x41, 0xda, 0x4b, 0xf5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x24, 0x7b, 0xbe, 0x0f, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xa4, 0xd2, 0xbe, 0x0f, 0xa2, 0x05, 0xf5, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0x90, 0xce, 0xfc, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xa4, 0xf3, 0xf7, 0xc3, 0xb8, 0x1c, 0x8f, 0x8f, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0x90, 0x1e, 0x00, 0x3f, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x34, 0x0c, 0xf8, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xa4, 0xbb, 0xc0, 0x1f, 0xa4, 0xe1, 0xc0, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xa9, 0x53, 0xf0, 0x07, 0x65, 0xdc, 0xce, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0xb9, 0x83, 0x3f, 0x44, 0xf3, 0x38, 0x74, 0x3c, 0x5e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0x92, 0x84, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x09, 0xac, 0xf0, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0x14, 0x86, 0x3f, 0x18, 0xdc, 0x95, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x29, 0xe4, 0xf0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x42, 0x3e, 0xfc, 0x41, 0x42, 0xd9, 0xc9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xa4, 0x46, 0xc4, 0x1f, 0x52, 0x07, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x34, 0x96, 0xf8, 0x41, 0xb0, 0xc1, 0xc8, 0x7f, 0x58, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xd4, 0xa3, 0xf8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0x95, 0x2b, 0x7e, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x49, 0x73, 0xf1, 0x07, 0x09, 0x7d, 0xf1, 0x83, 0x64, 0xd0, 0x36, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0x90, 0x9e, 0x19, 0x7f, 0x68, 0x24, 0x78, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xd4, 0xd9, 0xf8, 0x83, 0xa0, 0xf4, 0x3e, 0x1e, 0x1f, 0x87, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0x90, 0x1a, 0x1d, 0x3f, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd2, 0xd6, 0xe3, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0x90, 0x1e, 0x20, 0x7f, 0x30, 0xb8, 0x2b, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x12, 0x47, 0xe4, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x34, 0x1c, 0xf9, 0x83, 0x23, 0x4f, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xa4, 0x43, 0xc9, 0x1f, 0x52, 0x07, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xd4, 0x35, 0xf9, 0x41, 0xb0, 0xc1, 0xc8, 0x7f, 0x58, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x74, 0x43, 0xf9, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0x7d, 0x53, 0x7e, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x89, 0xb2, 0xf2, 0x07, 0x09, 0x7d, 0xf1, 0x83, 0x64, 0x50, 0x36, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0x90, 0x56, 0x2d, 0x7f, 0x68, 0x24, 0x78, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x94, 0x77, 0xf9, 0x83, 0xa0, 0xf4, 0x3e, 0x1e, 0x1f, 0x87, 0x8e, 0xc7, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x5a, 0xc3, 0xfc, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0x39, 0x99, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x6a, 0xcf, 0xfc, 0xc1, 0xe0, 0xae, 0x1c, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0xfa, 0x9a, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x52, 0xe8, 0xe6, 0x0f, 0xd2, 0xa1, 0x3c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0x99, 0x71, 0xfe, 0x90, 0x3a, 0x18, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x24, 0x9e, 0xce, 0x0f, 0x82, 0x0d, 0x46, 0xfe, 0xc3, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x24, 0x0b, 0xcf, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xc9, 0xd7, 0xf3, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0x73, 0x9f, 0x3f, 0x48, 0xe8, 0x8b, 0x1f, 0x24, 0x83, 0x68, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0x21, 0x82, 0xfe, 0xd0, 0x48, 0xf0, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xc9, 0x2a, 0xf4, 0x07, 0x41, 0xe9, 0x7d, 0x3c, 0x3e, 0x0e, 0x1d, 0x8f, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x84, 0x24, 0xfa, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0x90, 0x2a, 0x46, 0x3f, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x84, 0x3c, 0xfa, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xa4, 0x3d, 0xd2, 0x1f, 0x24, 0x63, 0xd2, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x49, 0xb3, 0xf4, 0x87, 0x56, 0xe2, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0xc1, 0x9a, 0xfe, 0x90, 0x3a, 0x38, 0x0e, 0x1d, 0x8f, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb4, 0x78, 0xfa, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0x90, 0xb0, 0x50, 0x3f, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb4, 0x90, 0xfa, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x24, 0xdf, 0xd4, 0x1f, 0x24, 0x63, 0xd2, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x89, 0x59, 0xf5, 0x87, 0xa3, 0xfd, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xa4, 0xef, 0xd5, 0x1f, 0x52, 0x07, 0xc7, 0xa1, 0xe3, 0xf1, 0x0a, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xe2, 0x65, 0xfd, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0x8a, 0xad, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xf2, 0x71, 0xfd, 0xc1, 0xe0, 0xae, 0x1c, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0x4b, 0xaf, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x92, 0xfc, 0xeb, 0x0f, 0x12, 0xe5, 0x3e, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0xdd, 0xc2, 0xfe, 0x90, 0x3a, 0x18, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xa4, 0xc6, 0xd8, 0x0f, 0x82, 0x0d, 0x46, 0xfe, 0xc3, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xa4, 0x33, 0xd9, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xe9, 0x61, 0xf6, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0xc4, 0xb3, 0x3f, 0x48, 0xe8, 0x8b, 0x1f, 0x24, 0xc3, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x24, 0x6b, 0xda, 0x1f, 0x1a, 0x09, 0x1e, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0x91, 0xd6, 0xfe, 0x20, 0x28, 0xbd, 0x8f, 0xc7, 0xc7, 0xa1, 0xe3, 0xf1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0x90, 0x2c, 0x6d, 0x3f, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xa4, 0x74, 0xfb, 0x83, 0xc4, 0x96, 0x93, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x94, 0x85, 0xfb, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0xf9, 0xe3, 0xfe, 0x20, 0x21, 0xe5, 0x7e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x12, 0x6d, 0xee, 0x0f, 0x47, 0xfb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0x1d, 0xea, 0x7e, 0x10, 0x6c, 0x30, 0xf2, 0x1f, 0x16, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0x7d, 0xed, 0x7e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0x06, 0xbc, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xd2, 0xe5, 0xfd, 0x41, 0x32, 0xe8, 0xfd, 0x20, 0x19, 0xec, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd2, 0x7a, 0xef, 0x0f, 0x8d, 0x04, 0x8f, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0x90, 0x6e, 0x7d, 0x7f, 0x10, 0x94, 0xde, 0xc7, 0xe3, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x24, 0xcb, 0xdf, 0x0f, 0x82, 0x0d, 0x06, 0xdc, 0xee, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x24, 0x36, 0xe0, 0x0f, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x24, 0x8b, 0xe0, 0x1f, 0x9c, 0x85, 0xd2, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x94, 0x1d, 0xfc, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x24, 0x46, 0xe1, 0x1f, 0xa4, 0x00, 0xb8, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x24, 0xce, 0xe1, 0x0f, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xa4, 0x26, 0xe2, 0x1f, 0xc6, 0x65, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0x07, 0xc5, 0x3f, 0x48, 0x53, 0xc5, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xd4, 0x62, 0xfc, 0x83, 0x94, 0x67, 0xfc, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x0a, 0x3b, 0xfe, 0x41, 0x60, 0x62, 0x1f, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0xc5, 0x20, 0x7f, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0x6d, 0x23, 0xff, 0xe0, 0x1c, 0x92, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x24, 0xcf, 0xe4, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0x45, 0x29, 0xff, 0x20, 0x05, 0xc0, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0x85, 0x2d, 0xff, 0x20, 0xb5, 0x2e, 0x7f, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0x90, 0x46, 0x99, 0x7f, 0x10, 0x98, 0xd8, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0x73, 0xcd, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x02, 0x71, 0xfe, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x52, 0xb3, 0xf3, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0x90, 0xfe, 0x9e, 0x3f, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x14, 0x03, 0xfd, 0x83, 0x64, 0x4c, 0xfa, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0xf9, 0x44, 0xff, 0x70, 0xb4, 0x1f, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xf4, 0x24, 0xfd, 0x83, 0x91, 0xd9, 0x7b, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xe4, 0x31, 0xfd, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x29, 0x80, 0xfa, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0xb3, 0xd4, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x32, 0xab, 0xfe, 0xf0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xaa, 0xb0, 0xfe, 0xc1, 0x89, 0xf7, 0xf9, 0x60, 0xdc, 0x41, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x49, 0xe7, 0xfa, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0xed, 0xd7, 0x3f, 0x48, 0x38, 0xd8, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x12, 0x49, 0xf6, 0x8f, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x24, 0xfb, 0xec, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0x8d, 0x6a, 0x7f, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xc9, 0x6a, 0xfb, 0xc3, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xa9, 0x80, 0xfb, 0x07, 0x27, 0x42, 0xe8, 0x83, 0x92, 0xa1, 0x69, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x32, 0xeb, 0xfe, 0xa1, 0xe9, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc6, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x24, 0x61, 0xef, 0x1f, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0xac, 0xdf, 0x3f, 0x1c, 0xed, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x24, 0x42, 0xf0, 0x0f, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x24, 0x97, 0xf0, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0x81, 0x87, 0x7f, 0xf8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0x3d, 0x8a, 0xff, 0xe0, 0x1c, 0x0e, 0x7d, 0x70, 0x62, 0xf6, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x92, 0xed, 0xf8, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0x90, 0xd2, 0xc8, 0x3f, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0x90, 0x30, 0xca, 0x7f, 0x70, 0x0e, 0x87, 0x3e, 0x38, 0x41, 0xf8, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xa4, 0x20, 0xf3, 0x1f, 0x14, 0xb9, 0x0a, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xe4, 0x71, 0xfe, 0x83, 0xd1, 0x7c, 0x7e, 0x1c, 0x3a, 0x0e, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x09, 0x00, 0xfd, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x3a, 0x45, 0xff, 0xa1, 0x95, 0xf8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x24, 0xb2, 0xf4, 0x1f, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0x61, 0xa8, 0x7f, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0x09, 0xab, 0x7f, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0xc5, 0xad, 0x7f, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xe9, 0x83, 0xfd, 0xc3, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xc9, 0x99, 0xfd, 0x07, 0xe7, 0x70, 0xe8, 0x83, 0x13, 0xb3, 0xef, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0x90, 0xea, 0xdb, 0x3f, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x84, 0xea, 0xfe, 0xe1, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x74, 0xf5, 0xfe, 0x83, 0x73, 0x38, 0xf4, 0xc1, 0x09, 0xc2, 0x77, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0x01, 0xc2, 0xff, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0x4f, 0xf1, 0x3f, 0xf4, 0x27, 0x3f, 0x0e, 0x1d, 0x87, 0x0e, 0xeb, 0x9b, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x1a, 0x92, 0xff, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0x90, 0xd4, 0xe5, 0x7f, 0x68, 0x25, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xe9, 0x74, 0xfe, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0x5b, 0xf4, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd2, 0x3e, 0xfd, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0x90, 0x58, 0xeb, 0x3f, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0x90, 0xb4, 0xec, 0x7f, 0x70, 0x0e, 0x87, 0x3e, 0x28, 0x19, 0x9a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x92, 0xe0, 0xfd, 0x8f, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xf4, 0x84, 0xff, 0x43, 0x2b, 0xf1, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xa4, 0x8c, 0xfc, 0x1f, 0x62, 0x38, 0xfc, 0x06, 0x49, 0x30, 0xff, 0xc3, 0x6f, 0x30, 0xd8, 0x01, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x20, 0x45, 0xe9, 0x7f, 0xf8, 0x05, 0xd1, 0x02, 0xe1, 0x1f, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0x29, 0xfb, 0x1f, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0xd8, 0xfb, 0x1f, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x48, 0x83, 0xfc, 0x3f, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x12, 0x4e, 0xff, 0x0f, 0x4d, 0x87, 0x0e, 0xeb, 0x9b, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x62, 0xf0, 0xff, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd2, 0xaf, 0xff, 0x0f, 0x12, 0xa3, 0xa5, 0x07, 0xc1, 0xc6, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x03, 0x00, 0x18, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xb6, 0x00, 0x30, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x95, 0x16, 0x00, 0xc3, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0b, 0x43, 0x00, 0x0e, 0x4e, 0x84, 0xd0, 0x07, 0x27, 0x66, 0xdf, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x01, 0x0d, 0xc0, 0xa1, 0xe9, 0xd0, 0x71, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x0d, 0x04, 0x70, 0xb0, 0xb2, 0x08, 0x60, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x56, 0x45, 0x01, 0x1c, 0xac, 0xb0, 0x02, 0x18, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x59, 0x19, 0xc0, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd6, 0xc2, 0x01, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xfd, 0x1e, 0xc0, 0xc1, 0x5a, 0x40, 0x80, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x7d, 0x23, 0xc0, 0xe1, 0x68, 0x3f, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4b, 0x3e, 0x01, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x4e, 0x15, 0x60, 0xf8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x61, 0x2d, 0xc0, 0xc1, 0x89, 0x10, 0xfa, 0xe0, 0xb0, 0xa9, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x40, 0x06, 0x38, 0x34, 0x1d, 0x3a, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0x07, 0x83, 0x77, 0xf2, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0b, 0xb3, 0x01, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x8a, 0x1c, 0xe0, 0x20, 0x31, 0x5a, 0x7a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x49, 0x3d, 0xc0, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd6, 0x00, 0x04, 0x1c, 0xac, 0x26, 0x08, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x29, 0x11, 0x70, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0xfb, 0x08, 0x38, 0xa4, 0x0e, 0x8e, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x95, 0x2d, 0x01, 0x07, 0x83, 0x77, 0xf2, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0b, 0x75, 0x02, 0x86, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x16, 0x16, 0x05, 0x1c, 0x7a, 0x08, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xab, 0xa2, 0x02, 0x8e, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x8e, 0x2b, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x6d, 0x16, 0x70, 0x90, 0xfe, 0xf4, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2b, 0xe6, 0x02, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xf4, 0x17, 0x30, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x56, 0x30, 0x06, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x2a, 0xcb, 0x80, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x21, 0x68, 0xc0, 0x41, 0xda, 0xc6, 0xf3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x9e, 0x35, 0xe0, 0x20, 0x41, 0x12, 0x7a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x16, 0xe5, 0x06, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x21, 0x71, 0xc0, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x16, 0x3f, 0x07, 0x1c, 0xa4, 0xe1, 0xc0, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6b, 0xc1, 0x03, 0x0e, 0x47, 0xfb, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x1e, 0x1f, 0x70, 0x48, 0x1d, 0x1c, 0x87, 0x8e, 0xc7, 0xc7, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x06, 0x20, 0x30, 0x08, 0x36, 0x48, 0x8f, 0xf2, 0x59, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x56, 0x37, 0x08, 0x0c, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xa5, 0x1a, 0x02, 0x83, 0x64, 0x90, 0x0d, 0xa2, 0x05, 0xf5, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x0c, 0x45, 0xe0, 0x90, 0x3a, 0x38, 0x24, 0x97, 0x8e, 0xc7, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x42, 0x1b, 0x81, 0x41, 0xb6, 0x21, 0x2e, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x5a, 0x48, 0x60, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x56, 0x33, 0x09, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xf1, 0x95, 0xc0, 0xc1, 0x32, 0x2e, 0x81, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x85, 0x6a, 0x02, 0x87, 0xfe, 0xe4, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xf5, 0x77, 0x02, 0x07, 0x6b, 0xf9, 0x04, 0x8e, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0xb8, 0x50, 0x60, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x56, 0x3f, 0x0a, 0x0c, 0xb2, 0x0d, 0x71, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xd5, 0x9b, 0x02, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0b, 0x4d, 0x05, 0x0e, 0xd2, 0xe3, 0x7c, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xc5, 0xb2, 0x02, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x8a, 0x5e, 0x81, 0x83, 0xe4, 0x21, 0xe6, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x51, 0xb2, 0xc0, 0x41, 0xda, 0xc6, 0xf3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0xab, 0x16, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x52, 0x70, 0x81, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x5e, 0x17, 0x38, 0x58, 0x06, 0x2f, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0xed, 0x17, 0x38, 0x1c, 0xed, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xad, 0xc3, 0xc0, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x96, 0x67, 0x0c, 0x1c, 0xac, 0xf4, 0x18, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x96, 0xb3, 0x0c, 0x1c, 0xc6, 0xe5, 0x38, 0x74, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x45, 0x3a, 0x03, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xeb, 0x89, 0x06, 0x0e, 0x16, 0x26, 0x0d, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2b, 0xa6, 0x06, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x75, 0x5d, 0x03, 0x07, 0x69, 0x2f, 0xd5, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x32, 0x6d, 0x60, 0x10, 0x2c, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x6a, 0xba, 0x81, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xec, 0x37, 0x30, 0xec, 0x86, 0x15, 0xd4, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xc1, 0xe2, 0xc0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0xa8, 0x72, 0xe0, 0x20, 0xa5, 0xcf, 0x7a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x18, 0x3a, 0x70, 0x90, 0xd2, 0x67, 0x3d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6b, 0x5b, 0x07, 0x0e, 0xc6, 0x9b, 0xce, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0xcd, 0x1d, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x16, 0x0f, 0x0f, 0x1c, 0xa4, 0xf4, 0x59, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0xea, 0xe7, 0x81, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0xd8, 0x1e, 0x38, 0x48, 0x07, 0xe9, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xc0, 0x3e, 0x30, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x35, 0xf7, 0x03, 0x07, 0xab, 0xf7, 0x07, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x05, 0x0a, 0x04, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x53, 0x41, 0x70, 0xb0, 0x3c, 0x83, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x82, 0x42, 0x30, 0x48, 0x06, 0xd1, 0x20, 0x5a, 0xd8, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x5a, 0x43, 0x70, 0xe8, 0x21, 0x74, 0x3c, 0x3f, 0x0e, 0x1d, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xeb, 0x8b, 0x08, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0x60, 0x3d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0b, 0xa7, 0x08, 0x0e, 0x1d, 0xc3, 0x8e, 0xc7, 0xc7, 0xa1, 0xe3, 0xdb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x11, 0x23, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x8a, 0x36, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xd9, 0x1d, 0xc1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x0c, 0x24, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x42, 0x46, 0x82, 0x83, 0x03, 0xcf, 0xee, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0xb2, 0x4e, 0x82, 0x43, 0x7f, 0xf2, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x62, 0x55, 0x82, 0x43, 0x23, 0xc1, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0xbb, 0x25, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xc5, 0xc1, 0x04, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xcc, 0x4c, 0x70, 0x90, 0x16, 0xf3, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0xba, 0x9b, 0xe0, 0xd0, 0x9f, 0x7c, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0xba, 0x75, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x79, 0x3d, 0xc1, 0xe1, 0x68, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x85, 0x01, 0x05, 0x87, 0xa3, 0x7d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0xda, 0xa1, 0xe0, 0xd0, 0x48, 0xf0, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2b, 0x37, 0x0a, 0x06, 0xc1, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x36, 0x29, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xc5, 0x30, 0x05, 0xc3, 0x6e, 0xb0, 0xbc, 0xa6, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xeb, 0x53, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x49, 0x2a, 0x38, 0x48, 0x1e, 0x62, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd6, 0x55, 0x15, 0x1c, 0xa4, 0x3f, 0x3d, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0xd2, 0xb0, 0x82, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x67, 0x2b, 0x38, 0x48, 0x8c, 0x96, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xde, 0x57, 0x30, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x25, 0x89, 0x05, 0x07, 0xcb, 0x1b, 0x0b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x56, 0x70, 0x16, 0x1c, 0xfa, 0x93, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x56, 0xa6, 0x16, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x35, 0x6d, 0xc1, 0xc1, 0xca, 0xdc, 0x82, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xed, 0x71, 0xc1, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd6, 0x4b, 0x17, 0x1c, 0x8c, 0xac, 0xd7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xed, 0x78, 0xc1, 0xa1, 0xe1, 0xd7, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0xa0, 0x2f, 0x38, 0x18, 0xbc, 0x93, 0xc7, 0xa1, 0x61, 0x37, 0x18, 0xec, 0xc6, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0xea, 0x01, 0x83, 0x61, 0x37, 0x58, 0x91, 0x60, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x95, 0x30, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0xda, 0x0e, 0x83, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x7f, 0x62, 0x30, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xe5, 0x32, 0x06, 0x07, 0x0b, 0x6f, 0x0c, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xa5, 0x45, 0x06, 0x87, 0x86, 0x5f, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x25, 0x65, 0x30, 0xfc, 0x82, 0x68, 0x81, 0xf1, 0x1f, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xff, 0x65, 0x70, 0xb0, 0x94, 0xcc, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xc3, 0x66, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0xb5, 0x33, 0x38, 0x48, 0x7b, 0xa9, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xf5, 0x82, 0x06, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xe3, 0x68, 0x70, 0x70, 0xf2, 0x81, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x56, 0x7c, 0x1a, 0x1c, 0xac, 0x29, 0x33, 0x38, 0x0e, 0x1d, 0x0c, 0x44, 0xea, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x79, 0x35, 0x18, 0x7e, 0x41, 0xb4, 0xc0, 0xf8, 0x0f, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0xe6, 0x35, 0x18, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x7c, 0x6c, 0x30, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x50, 0xda, 0xe0, 0x60, 0xb0, 0xc6, 0x0e, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0xf9, 0x36, 0x38, 0x58, 0x3d, 0x6e, 0xb0, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0xc2, 0x76, 0x83, 0xe1, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x95, 0xf8, 0x06, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x02, 0x82, 0x83, 0x43, 0xea, 0x60, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x95, 0x10, 0x07, 0xc3, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4b, 0x37, 0x0e, 0x0e, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x15, 0x27, 0x07, 0x87, 0x54, 0xcd, 0xc2, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4b, 0x67, 0x0e, 0x86, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd6, 0xfa, 0x1c, 0x1c, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4b, 0x94, 0x0e, 0x0e, 0x7b, 0x85, 0x87, 0x74, 0xee, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0xb0, 0xbe, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0xe6, 0x3a, 0x18, 0x7e, 0x41, 0xb4, 0xc0, 0xf8, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0xf2, 0xb4, 0x83, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x11, 0xdd, 0xc1, 0x41, 0xda, 0x4b, 0xf5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x03, 0x3c, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0xd2, 0xc5, 0x83, 0x83, 0x55, 0x90, 0x07, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x02, 0xcf, 0x83, 0x83, 0xc5, 0xa2, 0x07, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x5c, 0x3d, 0x18, 0x7e, 0x41, 0xb4, 0xc0, 0xf8, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x32, 0xdc, 0x83, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xb1, 0xf0, 0xc1, 0x41, 0xda, 0x4b, 0xf5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x77, 0x3e, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x12, 0xed, 0x83, 0x83, 0x55, 0x90, 0x07, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x8a, 0xf5, 0x83, 0x83, 0xd5, 0xef, 0x07, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0xc3, 0x3f, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd6, 0x09, 0x20, 0x1c, 0xa4, 0xbd, 0x54, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8b, 0x1d, 0x10, 0x0e, 0xd2, 0x5e, 0xaa, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xbd, 0x06, 0xc2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x96, 0x98, 0x20, 0x1c, 0xac, 0x82, 0x3c, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x16, 0xdc, 0x20, 0x1c, 0xac, 0xdd, 0x41, 0x38, 0x0e, 0x1d, 0x0c, 0x44, 0xea, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x30, 0x42, 0x18, 0x7e, 0x41, 0xb4, 0xc0, 0xf8, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x72, 0x29, 0x84, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x51, 0x17, 0xc2, 0x41, 0xda, 0x4b, 0xf5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x4b, 0x43, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x52, 0x3a, 0x84, 0x83, 0x55, 0x79, 0x08, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x8a, 0x43, 0x84, 0x83, 0xc0, 0x8d, 0x3f, 0x0e, 0x1d, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x41, 0x25, 0xc2, 0xf0, 0x0b, 0xa2, 0x05, 0xc6, 0x7f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x96, 0x87, 0x22, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8b, 0x58, 0x11, 0x0e, 0xd2, 0x5e, 0xaa, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x1d, 0x2e, 0xc2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x96, 0x0e, 0x23, 0x1c, 0xac, 0xca, 0x43, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x56, 0x52, 0x23, 0x1c, 0x04, 0x59, 0xfc, 0x71, 0xe8, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0b, 0xc5, 0x11, 0x86, 0x5f, 0x10, 0x2d, 0x30, 0xfe, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4b, 0xe0, 0x11, 0x86, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x56, 0xec, 0x23, 0x1c, 0x14, 0x14, 0x45, 0x87, 0xf5, 0xcd, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x21, 0x42, 0xc2, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x5c, 0x22, 0xe1, 0x20, 0xfd, 0xe9, 0x79, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x96, 0x7c, 0x24, 0x1c, 0x0c, 0x44, 0xea, 0x83, 0x81, 0x48, 0x7d, 0x3c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x05, 0x2e, 0x09, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x0a, 0x9c, 0x84, 0x83, 0xe4, 0x21, 0xe6, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x43, 0x94, 0x30, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x55, 0x4f, 0x09, 0x07, 0xab, 0xf2, 0x10, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x35, 0x60, 0x09, 0x07, 0x67, 0xd3, 0xf0, 0xe3, 0xd0, 0xb0, 0x1b, 0xac, 0x43, 0x4b, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x56, 0xc5, 0x25, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x19, 0x5f, 0xc2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x35, 0x4c, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0xca, 0xc8, 0x84, 0x83, 0x35, 0x96, 0x09, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0xfa, 0xd1, 0x84, 0x43, 0xc3, 0xaf, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x85, 0x4d, 0x18, 0x7e, 0x41, 0xb4, 0xc0, 0xf8, 0x0f, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0xf2, 0x4d, 0x38, 0x58, 0x2f, 0x9c, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x52, 0x4e, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd6, 0x52, 0x27, 0x1c, 0xa4, 0xbd, 0x54, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x82, 0xf0, 0x84, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x62, 0x4f, 0x38, 0x38, 0xf9, 0x40, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4b, 0xfa, 0x13, 0x0e, 0x16, 0x0e, 0x27, 0x1c, 0x87, 0x0e, 0x06, 0x22, 0xf5, 0xf1, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd6, 0x34, 0x28, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8b, 0x2e, 0x14, 0x0e, 0x92, 0x87, 0x98, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xdd, 0x88, 0xc2, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x12, 0x17, 0x85, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x25, 0x39, 0x0a, 0xc3, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2b, 0x88, 0x14, 0x0e, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x65, 0x4f, 0x0a, 0x07, 0x21, 0x05, 0xbe, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x1a, 0x2e, 0x85, 0xe1, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x35, 0x67, 0x0a, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x52, 0x39, 0x85, 0x83, 0xc0, 0x8d, 0x5f, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xe5, 0x9f, 0xc2, 0x70, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x52, 0x45, 0x85, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x85, 0xa5, 0xc2, 0x41, 0x90, 0xc5, 0x2f, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x60, 0x54, 0x61, 0xb8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x85, 0xab, 0xc2, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x30, 0x57, 0xe1, 0x60, 0xed, 0x0e, 0xc2, 0x21, 0x9d, 0x7b, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x56, 0x2d, 0x2b, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2b, 0xab, 0x15, 0x0e, 0xd6, 0x68, 0x2b, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4b, 0xc2, 0x15, 0x0e, 0xd2, 0x36, 0x9e, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x55, 0xbb, 0xc2, 0xc1, 0x40, 0xa4, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x55, 0xf9, 0x0a, 0xc3, 0x2f, 0x88, 0x16, 0x18, 0xff, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xf5, 0x06, 0x0b, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xeb, 0x23, 0x16, 0x86, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd6, 0x72, 0x2c, 0x1c, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0b, 0x50, 0x16, 0x0e, 0xd6, 0xee, 0x20, 0x1c, 0xd6, 0x37, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xe5, 0x35, 0x0b, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x2a, 0xa0, 0x85, 0x83, 0xb4, 0x97, 0xea, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x31, 0xd3, 0xc2, 0xc1, 0x1a, 0x6d, 0x85, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x92, 0xb5, 0x30, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x65, 0x64, 0x0b, 0x07, 0xab, 0xf2, 0x10, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x65, 0x75, 0x0b, 0x07, 0x6b, 0x77, 0x10, 0x8e, 0x43, 0x07, 0x03, 0x91, 0xfa, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xeb, 0x0a, 0x17, 0x86, 0x5f, 0x10, 0x2d, 0x30, 0xfe, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2b, 0x26, 0x17, 0x86, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x56, 0x78, 0x2e, 0x0c, 0xb7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x46, 0x5d, 0x38, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x96, 0xd0, 0x2e, 0x1c, 0x04, 0x6e, 0xfc, 0x61, 0x7d, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x1b, 0xbc, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x61, 0x5e, 0x38, 0x48, 0x7b, 0xa9, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x56, 0x62, 0x2f, 0x1c, 0xac, 0xea, 0x5e, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x25, 0xe4, 0x0b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xf6, 0xbe, 0x70, 0xb0, 0x2a, 0x0f, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x06, 0xc0, 0x70, 0x10, 0xb8, 0xf1, 0xc7, 0xa1, 0x83, 0x81, 0x48, 0x7d, 0x3c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x25, 0x10, 0x0c, 0xc3, 0x2f, 0x88, 0x16, 0x18, 0xff, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xc5, 0x1d, 0x0c, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8b, 0x51, 0x18, 0x86, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x16, 0xce, 0x30, 0x1c, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xab, 0x7d, 0x18, 0x0e, 0x82, 0x2c, 0xfe, 0xb0, 0xbe, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x63, 0x62, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x56, 0x5b, 0x31, 0x1c, 0xa4, 0xbd, 0x54, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8b, 0xc6, 0x18, 0x0e, 0x16, 0xa0, 0x31, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x6a, 0x37, 0x86, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0xd0, 0x63, 0x38, 0x58, 0x95, 0x87, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x58, 0x64, 0x38, 0x08, 0xb2, 0xf8, 0xe3, 0xd0, 0xc1, 0x40, 0xa4, 0x3e, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x6a, 0x4d, 0x86, 0xe1, 0x17, 0x44, 0x0b, 0x8c, 0xff, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x3a, 0x54, 0x86, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x75, 0xb3, 0x0c, 0xc3, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6b, 0x7c, 0x19, 0x0e, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x85, 0xc9, 0x0c, 0x07, 0x21, 0x05, 0x7e, 0x58, 0xdf, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x56, 0x5c, 0x33, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0b, 0xc3, 0x19, 0x0e, 0xd2, 0x5e, 0xaa, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xf5, 0xed, 0x0c, 0x07, 0x03, 0xdf, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x56, 0xe8, 0x33, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x55, 0x41, 0xc3, 0xc1, 0xaa, 0x3c, 0x84, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x95, 0x45, 0xc3, 0x41, 0x48, 0x81, 0x1f, 0x87, 0x0e, 0x06, 0x22, 0xf5, 0xf1, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x56, 0x98, 0x34, 0x1c, 0xac, 0x53, 0x69, 0x18, 0x64, 0x1b, 0x9a, 0xaf, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0xf2, 0x99, 0x86, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0xf8, 0x69, 0x38, 0x58, 0x3b, 0xd4, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x8a, 0x6a, 0x38, 0x34, 0xfc, 0x3a, 0x0e, 0x0d, 0xbb, 0xc1, 0x58, 0xdd, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x96, 0x82, 0x35, 0x0c, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x5c, 0x6b, 0x18, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x67, 0xd7, 0x70, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x0e, 0x6c, 0x38, 0x34, 0xfc, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x56, 0x36, 0x36, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xab, 0x2f, 0x1b, 0x0e, 0xd2, 0x5e, 0xaa, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x15, 0xa4, 0x0d, 0x07, 0x6b, 0x51, 0x1b, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xe1, 0x6b, 0xc3, 0xc1, 0xe0, 0x9d, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x85, 0xbb, 0x0d, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6b, 0x8c, 0x1b, 0x86, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x56, 0x44, 0x37, 0x1c, 0x8e, 0xf6, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xc9, 0xdd, 0x70, 0x68, 0xf8, 0xb5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x43, 0x6f, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x16, 0xcb, 0x37, 0x1c, 0xa4, 0xbd, 0x54, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2b, 0xfe, 0x1b, 0x0e, 0x86, 0xd4, 0xef, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x59, 0x70, 0x38, 0x18, 0xbc, 0x93, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0xea, 0xc2, 0x61, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2b, 0x45, 0x1c, 0x0e, 0xd6, 0x0e, 0x35, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2b, 0x67, 0x1c, 0x0e, 0x0d, 0xbf, 0x8e, 0x43, 0xc3, 0x6e, 0x50, 0x82, 0x40, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2b, 0x86, 0x1c, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x65, 0x4d, 0x0e, 0x07, 0xc9, 0x43, 0xcc, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x32, 0xcb, 0xe1, 0x60, 0xf0, 0x4e, 0x0e, 0xbb, 0xc1, 0x08, 0xf0, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x16, 0xa1, 0x39, 0x0c, 0xbb, 0xc1, 0xc2, 0x36, 0x87, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xbd, 0x9d, 0xc3, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x96, 0x08, 0x3a, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x55, 0xa3, 0xc3, 0xc1, 0xfa, 0x48, 0x87, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb5, 0x9f, 0x0e, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x0a, 0x55, 0x87, 0x43, 0x7f, 0xf2, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x79, 0xad, 0xc3, 0xc1, 0x91, 0xa7, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x16, 0x08, 0x3b, 0x1c, 0x94, 0x71, 0x3b, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xd5, 0xcf, 0x0e, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x2d, 0xb7, 0xc3, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd6, 0x9f, 0x3b, 0x1c, 0xac, 0x65, 0x77, 0x18, 0x24, 0x83, 0xb2, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x25, 0xfb, 0x0e, 0x87, 0xd4, 0xc1, 0x71, 0xe8, 0x78, 0x7c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x16, 0x39, 0x3c, 0x1c, 0x1a, 0x7e, 0x1d, 0x87, 0x86, 0xdd, 0x60, 0x8d, 0xc5, 0xc3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0xfc, 0xe3, 0x61, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2b, 0x56, 0x1e, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0xc8, 0xe6, 0xe1, 0x60, 0x7d, 0xa4, 0xc3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0xa2, 0xa3, 0x87, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x69, 0xd4, 0xc3, 0x41, 0x19, 0xb7, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0xee, 0x7a, 0x38, 0x48, 0x94, 0xfb, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x05, 0x6a, 0x0f, 0x07, 0x05, 0x00, 0xd4, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xf5, 0xdd, 0xc3, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x4b, 0xf8, 0x30, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xf5, 0x8f, 0x0f, 0x07, 0x6b, 0xd9, 0x1d, 0x06, 0xc9, 0x30, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0b, 0x42, 0x1f, 0x0e, 0xa9, 0x83, 0xe3, 0xd0, 0xf1, 0xf8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0xa1, 0x7d, 0x38, 0x34, 0xfc, 0x3a, 0x0e, 0x0d, 0xb2, 0x0d, 0xcd, 0xd7, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xd5, 0xf0, 0xc3, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x16, 0x3a, 0x3f, 0x1c, 0xac, 0x1d, 0x6a, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x96, 0x7d, 0x3f, 0x1c, 0x1a, 0x7e, 0x1d, 0x87, 0x86, 0xdd, 0xa0, 0xe4, 0x90, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x56, 0xbb, 0x3f, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x79, 0xfe, 0xc3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x20, 0x80, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x82, 0x07, 0x88, 0xe1, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xf5, 0x19, 0x10, 0x07, 0xcb, 0x3c, 0x20, 0x0e, 0xd2, 0x7f, 0x1b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x15, 0x2e, 0x10, 0x87, 0x86, 0x5f, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xac, 0x03, 0x31, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xa5, 0x45, 0x10, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0xf8, 0x09, 0x62, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6b, 0xb5, 0x20, 0x0e, 0x56, 0x7d, 0x41, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x6e, 0x83, 0x38, 0xf4, 0x27, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0xd9, 0x83, 0x38, 0x0e, 0x1d, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xd1, 0x21, 0xc4, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x2a, 0x12, 0xe2, 0x20, 0x79, 0x88, 0x79, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd6, 0x75, 0x42, 0x0c, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x41, 0x85, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x9a, 0x59, 0x88, 0x83, 0x14, 0xe1, 0xea, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x25, 0xc4, 0x10, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x7a, 0x68, 0x88, 0xc3, 0xd1, 0x7e, 0x1c, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x16, 0x76, 0x43, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x29, 0x3a, 0xc4, 0xc1, 0x9a, 0x76, 0x88, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x45, 0xfc, 0x10, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x77, 0x10, 0x71, 0xb0, 0x82, 0x21, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xa5, 0x11, 0x31, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x85, 0x25, 0x11, 0xc3, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0b, 0x61, 0x22, 0x0e, 0xd6, 0xd3, 0x44, 0x1c, 0x8c, 0x3b, 0xa8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x39, 0x51, 0xc4, 0x21, 0x75, 0x70, 0x1c, 0x3a, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x96, 0x50, 0x45, 0x1c, 0x14, 0x6e, 0x49, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x14, 0x16, 0x31, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x25, 0x6c, 0x11, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0xc8, 0x2e, 0x62, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6b, 0x02, 0x23, 0x0e, 0x56, 0x17, 0x46, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0xa3, 0x8c, 0x38, 0x28, 0xe3, 0x76, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6b, 0x44, 0x23, 0x0e, 0xa9, 0x83, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x75, 0x8d, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0xca, 0xdc, 0x88, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x3b, 0x1c, 0x71, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x76, 0x8e, 0x18, 0x04, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x42, 0x3b, 0x62, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x16, 0x90, 0x47, 0x0c, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x75, 0x8f, 0x18, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x99, 0x1f, 0x71, 0x48, 0x1d, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x92, 0x02, 0x89, 0x43, 0xaa, 0x66, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x0d, 0x21, 0x71, 0x70, 0xce, 0x4c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xe5, 0x1c, 0x12, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x60, 0xfd, 0x7f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x96, 0xaa, 0x48, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x6d, 0x8d, 0xc4, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x96, 0x03, 0x49, 0x1c, 0x24, 0xcf, 0xa4, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x8e, 0x92, 0x38, 0x28, 0xe3, 0x76, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0xfe, 0x92, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x16, 0xa9, 0x49, 0x1c, 0x52, 0x07, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0xbe, 0x4e, 0xe2, 0x70, 0xb4, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x16, 0x0d, 0x4a, 0x1c, 0x04, 0x26, 0xf6, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x16, 0x41, 0x4a, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xcd, 0xa6, 0xc4, 0xc1, 0xea, 0x4f, 0x89, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xeb, 0x64, 0x25, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0xb4, 0x57, 0xe2, 0x60, 0x91, 0xb0, 0xc4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x14, 0x5a, 0x62, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xab, 0xb7, 0x25, 0x86, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x56, 0x9b, 0x4b, 0x1c, 0x2c, 0x5a, 0x97, 0x38, 0x48, 0xb7, 0x94, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x16, 0xee, 0x4b, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xb1, 0xc1, 0xc4, 0xc1, 0xc2, 0x85, 0x89, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x35, 0x1a, 0x13, 0x87, 0xfe, 0xe4, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb5, 0x27, 0x13, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8b, 0x7f, 0x26, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x5e, 0x69, 0xe2, 0x60, 0x91, 0xb0, 0xc4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x7a, 0x6b, 0x62, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0b, 0xce, 0x26, 0x86, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x16, 0xc8, 0x4d, 0x1c, 0x2c, 0x5a, 0x97, 0x38, 0x18, 0x77, 0x50, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x42, 0xc2, 0x89, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x7e, 0x9c, 0x38, 0x58, 0x48, 0x39, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x64, 0x74, 0xe2, 0xd0, 0x9f, 0x7c, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x14, 0x76, 0xe2, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x2d, 0xf2, 0xc4, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0xe2, 0xe9, 0x89, 0xe1, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xc5, 0xde, 0x13, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x9f, 0x3e, 0x71, 0xb0, 0xd2, 0x7d, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x35, 0xff, 0xc4, 0x21, 0x55, 0x33, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xa2, 0x40, 0x71, 0x50, 0xc6, 0xed, 0x1c, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xd1, 0x05, 0xc5, 0x21, 0x86, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x6a, 0x11, 0x8a, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xe5, 0x2d, 0x14, 0xc3, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xeb, 0x71, 0x28, 0x0e, 0xa9, 0x9a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x4a, 0x44, 0x71, 0x88, 0xe1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x06, 0x8a, 0xe2, 0x20, 0x45, 0xfb, 0x7a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x16, 0x72, 0x51, 0x1c, 0x2c, 0x0a, 0xa3, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x25, 0x6e, 0x14, 0x07, 0xeb, 0xe5, 0x28, 0x86, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x24, 0x48, 0x71, 0x50, 0x2e, 0xf6, 0x1c, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0x41, 0xb4, 0xb0, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x56, 0x92, 0x62, 0x98, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xd8, 0x49, 0x71, 0x48, 0x1d, 0x1c, 0x8f, 0x8f, 0x6f, 0xc3, 0x6e, 0x50, 0x2c, 0x4a, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6b, 0x5b, 0x29, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x05, 0xb8, 0x14, 0x07, 0x69, 0x2f, 0xd5, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x22, 0x62, 0x8a, 0x83, 0xe4, 0x21, 0xe6, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x07, 0x4d, 0x31, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x55, 0xdb, 0x14, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x63, 0x4e, 0x71, 0xb0, 0x58, 0x9d, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x79, 0x3e, 0xc5, 0xf0, 0x1b, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x71, 0x41, 0xc5, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x3a, 0x88, 0x8a, 0xe1, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x65, 0x1b, 0x15, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x5a, 0x93, 0x8a, 0x43, 0xc3, 0xaf, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xa1, 0x4c, 0xc5, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x9a, 0xa7, 0xe2, 0x10, 0xc3, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x51, 0x52, 0xc5, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd6, 0x51, 0x55, 0x1c, 0x2c, 0x6f, 0x2c, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x58, 0x56, 0x71, 0xe8, 0x4f, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x30, 0x57, 0x71, 0x68, 0xf8, 0x75, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x0b, 0xac, 0x18, 0x04, 0x1b, 0x8c, 0xfc, 0x87, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xea, 0x58, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0xc5, 0xac, 0x18, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x39, 0x5a, 0x71, 0x68, 0x24, 0x78, 0x58, 0xdf, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x85, 0xb0, 0x15, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xb6, 0x5b, 0x71, 0xb0, 0xa6, 0x1d, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x15, 0x73, 0xc5, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd6, 0x5d, 0x57, 0x1c, 0xac, 0x60, 0x88, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x16, 0xa1, 0x57, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xdd, 0x7c, 0xc5, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x3a, 0xff, 0x8a, 0x43, 0x23, 0xc1, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x91, 0x82, 0xc5, 0xf0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x9a, 0x0a, 0x8b, 0x83, 0xf5, 0x34, 0x11, 0x07, 0xe3, 0x0e, 0x6a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x56, 0x8c, 0x58, 0x0c, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x70, 0xb1, 0x38, 0x58, 0x4f, 0x13, 0x71, 0x90, 0x6e, 0x29, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x06, 0xb2, 0x38, 0x44, 0xf3, 0x38, 0x74, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x7e, 0xb2, 0x18, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xa8, 0x65, 0x31, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0xac, 0xcc, 0xe2, 0xd0, 0x48, 0x70, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xf5, 0x71, 0x16, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcb, 0xf9, 0x2c, 0x86, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x96, 0x1e, 0x5a, 0x1c, 0x04, 0xa5, 0xf7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x9c, 0xb4, 0x38, 0x48, 0xd1, 0xbe, 0x3e, 0xac, 0x6f, 0x1e, 0xd2, 0xb9, 0x87, 0xa3, 0x7d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x40, 0x6a, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x73, 0xb5, 0x38, 0x48, 0x7f, 0x7a, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xa5, 0xba, 0x16, 0x07, 0x41, 0xe9, 0x3d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6b, 0x8d, 0x2d, 0x0e, 0x82, 0xd2, 0xfb, 0x38, 0x74, 0x3c, 0x3e, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0xba, 0x6a, 0x8b, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x04, 0xb7, 0x38, 0x58, 0x51, 0x6e, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x80, 0xde, 0xe2, 0x20, 0x04, 0xc0, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4b, 0x03, 0x2e, 0x0e, 0x06, 0x22, 0xf5, 0x71, 0x68, 0xd8, 0x0d, 0x16, 0x27, 0x5c, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcb, 0x26, 0x2e, 0x86, 0xdd, 0x60, 0x29, 0xc6, 0xc5, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x42, 0xe4, 0x62, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xc7, 0x72, 0x71, 0x90, 0xf6, 0x52, 0xbd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0xc6, 0xb9, 0x38, 0x48, 0x1e, 0x62, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xf5, 0x44, 0x17, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x02, 0x75, 0x71, 0xb0, 0x98, 0xea, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x27, 0x76, 0x31, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb5, 0x6d, 0x17, 0x07, 0xeb, 0xe4, 0x2e, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x95, 0x80, 0x17, 0x87, 0x86, 0x5f, 0xc7, 0xa1, 0xe3, 0xd0, 0xb0, 0x1b, 0xac, 0x4b, 0xbc, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x96, 0x4c, 0x5e, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0b, 0x3b, 0x2f, 0x0e, 0xd2, 0x5e, 0xaa, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xd5, 0xa9, 0x17, 0x07, 0xc9, 0x43, 0xcc, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x12, 0xdb, 0x8b, 0x83, 0xe4, 0x21, 0xe6, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x25, 0x7c, 0x31, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x85, 0xcd, 0x17, 0x07, 0x8b, 0xa9, 0x2e, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x75, 0xde, 0x17, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x9b, 0x7e, 0x71, 0x30, 0x62, 0x5b, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x75, 0xfa, 0x17, 0x87, 0x86, 0x5f, 0xc7, 0xa1, 0xe3, 0xd0, 0xb0, 0x1b, 0xac, 0x1a, 0xc0, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x56, 0x33, 0x60, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6b, 0x2e, 0x30, 0x0e, 0xd2, 0x5e, 0xaa, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x85, 0x23, 0x18, 0x07, 0xc9, 0x43, 0xcc, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0xea, 0x17, 0x8c, 0x83, 0xe4, 0x21, 0xe6, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x09, 0x0f, 0xc6, 0x41, 0xf2, 0x10, 0xf3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x43, 0xc2, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0xd2, 0x29, 0x8c, 0x83, 0xc5, 0x54, 0x17, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x52, 0x32, 0x8c, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x7f, 0xc3, 0x38, 0x58, 0x4a, 0x87, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x17, 0xc4, 0x38, 0x34, 0xfc, 0x3a, 0x0e, 0x1d, 0x87, 0x86, 0xdd, 0x60, 0x8d, 0xc5, 0xc3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x70, 0x12, 0x63, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xde, 0x89, 0x71, 0x90, 0xf6, 0x52, 0x3d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2b, 0x54, 0x31, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0xa8, 0x16, 0xe3, 0x60, 0x31, 0xd5, 0xc5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0xc4, 0x18, 0x63, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xab, 0xa2, 0x31, 0x0e, 0x16, 0x58, 0x63, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8b, 0xc8, 0x31, 0x0e, 0x0d, 0xbf, 0x8e, 0x43, 0xc7, 0xa1, 0x41, 0xb6, 0xa1, 0xf9, 0xfa, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0xa3, 0xc7, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0xca, 0x7f, 0x8c, 0x83, 0xb5, 0x43, 0x0d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x3a, 0x88, 0x8c, 0x43, 0xc3, 0xaf, 0xe3, 0xd0, 0xb0, 0x1b, 0xac, 0xc2, 0xc8, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x56, 0x87, 0x64, 0x0c, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x65, 0xc9, 0x38, 0x58, 0x13, 0x93, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0xd7, 0xc9, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x02, 0xa3, 0x8c, 0x83, 0xa5, 0x4a, 0x19, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0b, 0xb3, 0x32, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xe5, 0x63, 0x19, 0x07, 0x69, 0x1b, 0xcf, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x1a, 0xb8, 0x8c, 0x83, 0xa5, 0x36, 0x05, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x8e, 0x2f, 0x63, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6b, 0x0f, 0x33, 0x0e, 0xd6, 0x31, 0x66, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0xdb, 0xcc, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x52, 0xd3, 0x8c, 0xe1, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb5, 0xb1, 0x19, 0x07, 0x6b, 0x6c, 0x33, 0x0e, 0x46, 0x48, 0xd4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0xc4, 0x38, 0xe3, 0xd0, 0xf0, 0xeb, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x49, 0x9d, 0x71, 0xb0, 0x2a, 0x3b, 0xe3, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x2b, 0x9e, 0x31, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x95, 0xed, 0x19, 0x07, 0x4b, 0xe4, 0x33, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xd5, 0xff, 0x19, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xb0, 0xa0, 0x31, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0xbe, 0x42, 0xe3, 0x60, 0x8d, 0x6d, 0xc6, 0x41, 0xc9, 0xd0, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x44, 0xd1, 0x38, 0x34, 0xfc, 0x3a, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0xe2, 0x46, 0x63, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xeb, 0x83, 0x34, 0x86, 0xdd, 0x60, 0xc5, 0x91, 0xc6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x16, 0x4a, 0x63, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xb2, 0xa5, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x2b, 0xd3, 0x38, 0x48, 0xdb, 0x78, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x16, 0xc7, 0x69, 0x1c, 0xa4, 0x2d, 0x50, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0xfa, 0x3e, 0x8d, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x51, 0xa2, 0xc6, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x16, 0x52, 0x6a, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xed, 0xa7, 0xc6, 0xc1, 0x3a, 0x52, 0x8d, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x25, 0xb2, 0x1a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x4a, 0x5e, 0x8d, 0x43, 0x2b, 0xf1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x86, 0xac, 0x71, 0x50, 0xc6, 0xed, 0x0c, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x16, 0x59, 0x6b, 0x0c, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x25, 0xe3, 0x1a, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xe6, 0xae, 0x71, 0xb0, 0x96, 0xdd, 0x61, 0x90, 0x0c, 0xca, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x16, 0xff, 0x6b, 0x1c, 0x52, 0x07, 0xc7, 0xa1, 0xe3, 0xf1, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x2e, 0xb1, 0x71, 0x68, 0xf8, 0x75, 0x1c, 0x1a, 0x76, 0x83, 0xe5, 0x1a, 0x1b, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x92, 0x91, 0x8d, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x61, 0xcb, 0xc6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0xfa, 0x66, 0xe3, 0x20, 0x6d, 0xe3, 0x79, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x42, 0xb4, 0x71, 0x30, 0x1a, 0x7c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x09, 0xd4, 0xc6, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x6e, 0x6b, 0x63, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4b, 0xcd, 0x36, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x3a, 0x6e, 0xe3, 0x60, 0x2d, 0x20, 0xc0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x5a, 0x70, 0xe3, 0x70, 0xb4, 0x1f, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x05, 0x94, 0x1b, 0x87, 0x86, 0x5f, 0xc7, 0xa1, 0x61, 0x37, 0x58, 0xbf, 0xb9, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x2c, 0xdd, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x16, 0xc0, 0x6e, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xab, 0x74, 0x37, 0x0e, 0xd2, 0x36, 0x9e, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xa5, 0xc6, 0x1b, 0x07, 0x09, 0x92, 0xd0, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x5a, 0x7a, 0xe3, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xe2, 0xbd, 0x31, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x65, 0xe9, 0x1b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x49, 0xbf, 0x71, 0xb0, 0x8e, 0x54, 0x63, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x6d, 0x01, 0xc7, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x04, 0x82, 0xe3, 0x20, 0x51, 0xee, 0x63, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd6, 0x71, 0x70, 0x1c, 0x94, 0x71, 0x3b, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x55, 0x2a, 0x1c, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xcd, 0x0d, 0xc7, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd6, 0x09, 0x71, 0x1c, 0xac, 0x65, 0x77, 0x18, 0x24, 0xc3, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x9c, 0xe2, 0x38, 0xa4, 0x0e, 0x8e, 0x43, 0xc7, 0xe3, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0xd4, 0x8c, 0xe3, 0xd0, 0xf0, 0xeb, 0x38, 0x34, 0xec, 0x06, 0x6b, 0xdd, 0x38, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x55, 0x78, 0x1c, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x62, 0x41, 0x8e, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x45, 0x23, 0xc7, 0x41, 0xda, 0xc6, 0xf3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x2c, 0x93, 0xe3, 0x20, 0xc1, 0xe3, 0x79, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x56, 0x96, 0x72, 0x1c, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcb, 0x61, 0x39, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x84, 0x97, 0x63, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xab, 0x8e, 0x39, 0x0e, 0xd6, 0x91, 0x6a, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0xc3, 0xe6, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x96, 0x8b, 0x73, 0x1c, 0x24, 0x94, 0x9d, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x9a, 0x77, 0x8e, 0x83, 0xc2, 0x0e, 0x67, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0xa2, 0x9f, 0x63, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x4f, 0xe8, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x9a, 0x8a, 0x8e, 0x83, 0xb5, 0xec, 0x0e, 0x83, 0x64, 0x98, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x45, 0x26, 0x1d, 0x87, 0xd4, 0xc1, 0x71, 0xe8, 0x78, 0x7c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x96, 0xe5, 0x74, 0x1c, 0x1a, 0x7e, 0x1d, 0x87, 0x86, 0xdd, 0x60, 0x5d, 0x50, 0xc7, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x4a, 0xa9, 0x63, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x4c, 0xd5, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0xf8, 0xea, 0x38, 0x48, 0xdb, 0x78, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x96, 0xad, 0x75, 0x1c, 0xac, 0x11, 0xea, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xa5, 0x77, 0x1d, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x7a, 0xc1, 0x8e, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x71, 0xec, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0xb2, 0xcc, 0x8e, 0x83, 0x75, 0xa4, 0x1a, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0b, 0x55, 0x3b, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xf5, 0xb4, 0x1d, 0x07, 0xe9, 0x50, 0x1e, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x28, 0xb8, 0xe3, 0xa0, 0xb0, 0xc3, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x79, 0xee, 0x18, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0b, 0xb8, 0x3b, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0xe8, 0xbc, 0xe3, 0x60, 0x2d, 0xbb, 0xc3, 0x20, 0x19, 0x44, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0b, 0xf1, 0x3b, 0x0e, 0xa9, 0x83, 0xe3, 0xd0, 0xf1, 0xf8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x5d, 0xf0, 0x38, 0x34, 0xfc, 0x3a, 0x0e, 0x0d, 0xb2, 0x0d, 0xcd, 0xd7, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xbd, 0x86, 0xc7, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0xac, 0xc4, 0xe3, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x0b, 0xe3, 0x31, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xf5, 0x3b, 0x1e, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x72, 0xe4, 0x71, 0xb0, 0x8e, 0x54, 0x63, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x09, 0x96, 0xc7, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x50, 0xcc, 0xe3, 0xe0, 0xc8, 0x53, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8b, 0xdd, 0x3c, 0x0e, 0xfd, 0xc9, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8b, 0xf8, 0x3c, 0x06, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x92, 0x44, 0x8f, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0xa3, 0xf4, 0x38, 0x58, 0xcb, 0xee, 0x30, 0x48, 0x06, 0x65, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8b, 0x4b, 0x3d, 0x0e, 0xa9, 0x83, 0xe3, 0xd0, 0xf1, 0xf8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0xc7, 0xf5, 0x38, 0x34, 0xfc, 0x3a, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0xda, 0x62, 0x8f, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x86, 0xf6, 0x38, 0x58, 0x51, 0x6e, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x38, 0xdc, 0xe3, 0x20, 0xa4, 0xc0, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcb, 0xde, 0x3d, 0x86, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x96, 0xe9, 0x7b, 0x0c, 0xb7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x2b, 0xf8, 0x38, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd6, 0x42, 0x7c, 0x1c, 0x04, 0x0f, 0xf7, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x9c, 0xe3, 0x63, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd6, 0x9c, 0x7c, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcb, 0x62, 0x3e, 0x0e, 0xd2, 0x36, 0x9e, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x6d, 0xcf, 0xc7, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x24, 0xe9, 0xe3, 0x20, 0x04, 0xc0, 0x8f, 0x43, 0xc3, 0x6e, 0xb0, 0x2a, 0xea, 0x63, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xaf, 0xf5, 0x31, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x15, 0x66, 0x1f, 0x07, 0x89, 0xd1, 0xd2, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xeb, 0xed, 0x3e, 0x86, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x96, 0x07, 0x7e, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x45, 0xe3, 0xc7, 0xf0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x02, 0xcc, 0x8f, 0x83, 0x13, 0x21, 0xf4, 0xc1, 0x89, 0xd9, 0x77, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xa8, 0xfa, 0x71, 0x68, 0xf8, 0x75, 0x1c, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x16, 0xdd, 0x7e, 0x1c, 0x2c, 0x0a, 0xa3, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xa5, 0xc3, 0x1f, 0x07, 0xeb, 0xe5, 0x28, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6b, 0xa3, 0x3f, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xe0, 0xfb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0xf7, 0xfe, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x12, 0xf5, 0x8f, 0xe1, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x25, 0xf5, 0x1f, 0x07, 0x27, 0x42, 0xe8, 0x83, 0xc3, 0xa6, 0xee, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0xf6, 0x00, 0xe4, 0xd0, 0xf0, 0xeb, 0x38, 0x34, 0x88, 0x16, 0x84, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0xc6, 0x02, 0xe4, 0xe0, 0xa4, 0xb7, 0x7b, 0x3c, 0x3e, 0x0e, 0x0d, 0xbb, 0x41, 0xa9, 0x13, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x37, 0x01, 0x19, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x1e, 0x03, 0x32, 0xdc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x98, 0x07, 0xe4, 0xe0, 0x1c, 0xb9, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcb, 0x91, 0x40, 0x0e, 0xe3, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0xa3, 0x02, 0x19, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xf5, 0x05, 0x32, 0xdc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x4a, 0x0d, 0xe4, 0x60, 0x8d, 0xb6, 0xc2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0xb4, 0x03, 0x19, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0xe2, 0x40, 0x90, 0x83, 0xb4, 0x6b, 0xf4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb5, 0x92, 0x20, 0x87, 0xfe, 0xe4, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd6, 0x80, 0x82, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2b, 0x55, 0x41, 0x0e, 0xad, 0xc4, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x95, 0x2d, 0xc8, 0xe1, 0x68, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x1d, 0x06, 0x39, 0xb4, 0x00, 0x3a, 0x0e, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0b, 0xa1, 0x41, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x74, 0x1b, 0xe4, 0x20, 0x31, 0x5a, 0x7a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x25, 0x3b, 0xc8, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x16, 0xdf, 0x83, 0x1c, 0x2c, 0x6f, 0x2c, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x8c, 0x10, 0x72, 0xe8, 0x4f, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x62, 0x11, 0x72, 0x68, 0xf8, 0x75, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x24, 0x09, 0x39, 0x18, 0xbc, 0x93, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x19, 0x13, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0xdd, 0x09, 0x39, 0x48, 0x1e, 0x62, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x96, 0x1f, 0x85, 0x1c, 0xa4, 0xbd, 0x54, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x0a, 0xaa, 0x90, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0xfa, 0x0a, 0x39, 0x48, 0x8c, 0x96, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x03, 0x17, 0x32, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x65, 0x7b, 0x21, 0x07, 0xcb, 0x1b, 0x0b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd6, 0x31, 0x86, 0x1c, 0xfa, 0x93, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd6, 0x67, 0x86, 0x1c, 0x1a, 0x7e, 0x1d, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcb, 0x50, 0x43, 0x0e, 0x06, 0xef, 0xe4, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd6, 0xd5, 0x86, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0b, 0x7f, 0x43, 0x0e, 0x92, 0x87, 0x98, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb5, 0xcb, 0x21, 0x07, 0xc9, 0x43, 0xcc, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0xfc, 0x3a, 0x64, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2b, 0xc6, 0x43, 0x0e, 0x12, 0xa3, 0xa5, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x16, 0xd0, 0x87, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xcd, 0x7f, 0xc8, 0xc1, 0xf2, 0xc6, 0x82, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x35, 0x10, 0x22, 0x87, 0xfe, 0xe4, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xa5, 0x1d, 0x22, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x8e, 0x22, 0x72, 0xb0, 0x32, 0xb7, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x9e, 0x23, 0x72, 0x68, 0xf8, 0x75, 0x1c, 0x3a, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x16, 0x25, 0x89, 0x1c, 0x0c, 0xde, 0xc9, 0xe3, 0xd0, 0x20, 0xdb, 0xd0, 0x7c, 0x7d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x16, 0x63, 0x89, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xfd, 0x98, 0xc8, 0xc1, 0xda, 0xa1, 0x86, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x35, 0x9d, 0xc8, 0xa1, 0xe1, 0xd7, 0x71, 0xe8, 0xf8, 0x76, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0x3f, 0xf6, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xeb, 0x0f, 0x45, 0x0e, 0x82, 0x9c, 0xbf, 0xe3, 0xf1, 0xc1, 0xaa, 0x47, 0x91, 0x83, 0xe5, 0x99, 0x44, 0x1b, 0x2c, 0xbe, 0x66, 0x5b, 0x0d, 0xd6, 0x91, 0xe2, 0x6d, 0xb0, 0x7e, 0x15, 0x6f, 0x81, 0x1f, 0x7b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xdb, 0x8a, 0xe8, 0x37, 0x28, 0xbb, 0x64, 0x07, 0x7e, 0xec, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x46, 0xd3, 0xff, 0x60, 0x09, 0x31, 0xde, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0x31, 0xd1, 0x6f, 0x78, 0x50, 0x72, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x6e, 0x07, 0xfc, 0x0d, 0xca, 0x32, 0xec, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x9f, 0x8d, 0xb7, 0xe1, 0xcf, 0xa5, 0x0d, 0x56, 0x81, 0xe3, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0xdc, 0x1c, 0xef, 0x20, 0xfd, 0x38, 0x78, 0x96, 0x59, 0x83, 0x82, 0xef, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x36, 0x02, 0x7f, 0xc3, 0x2f, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x5c, 0x1f, 0x6f, 0xc3, 0x9f, 0x4b, 0x1b, 0xac, 0x0a, 0xc8, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xf9, 0x41, 0xde, 0xc1, 0x49, 0x4f, 0x74, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x89, 0x02, 0x7f, 0xc3, 0x25, 0xb5, 0xc1, 0x1a, 0x8a, 0xbc, 0x35, 0x28, 0xd1, 0x95, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x43, 0x2e, 0xf0, 0x0f, 0x56, 0x76, 0xe4, 0xb5, 0x1a, 0xac, 0x10, 0xc9, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xd0, 0xc0, 0xdf, 0x60, 0x39, 0x24, 0xd3, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0x72, 0xe0, 0x6f, 0xf8, 0xfa, 0x65, 0x83, 0xb5, 0x31, 0x79, 0x1b, 0xbe, 0x7e, 0xd9, 0xf0, 0x21, 0xcc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x9d, 0x07, 0xfe, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x05, 0xc1, 0x3f, 0x58, 0xeb, 0xd8, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x13, 0x09, 0xfe, 0x41, 0x51, 0x29, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc3, 0x09, 0xfe, 0xc1, 0x02, 0xa8, 0xbc, 0x0e, 0xa7, 0xd8, 0x1a, 0xac, 0xa2, 0xc8, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x4e, 0xc1, 0xdf, 0xf0, 0x17, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x11, 0xcb, 0x3b, 0x38, 0xe9, 0x89, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0xae, 0xe0, 0x6f, 0xb0, 0x1c, 0x92, 0x69, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x5b, 0x5c, 0xf0, 0x37, 0x7c, 0x90, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x14, 0x0c, 0xfe, 0x06, 0xc5, 0x24, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x04, 0xcc, 0x3b, 0x48, 0xec, 0x0c, 0x3e, 0x58, 0x73, 0x98, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xb3, 0x0c, 0xfe, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xa6, 0xc1, 0x3f, 0x58, 0xb7, 0x0e, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xd1, 0x0d, 0xfe, 0xc1, 0x22, 0x78, 0xb7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x73, 0x73, 0xf0, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xfa, 0x0e, 0xfe, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0xf0, 0xc1, 0x3f, 0x58, 0xec, 0x9a, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x6e, 0x10, 0xfe, 0xe1, 0x31, 0x99, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x2b, 0xc2, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x95, 0x47, 0xf8, 0x07, 0xe9, 0x4d, 0xb3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0x2c, 0xe1, 0x1f, 0xac, 0x55, 0xce, 0xab, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xdb, 0x9b, 0xf0, 0x37, 0x7c, 0x90, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x04, 0x14, 0xfe, 0x06, 0xc5, 0x24, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x07, 0xcf, 0x3b, 0x48, 0x81, 0x0d, 0x3e, 0x58, 0x73, 0x98, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xa4, 0x14, 0xfe, 0x06, 0x85, 0xa1, 0xea, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x8d, 0x54, 0xf8, 0x07, 0x8b, 0xf0, 0xe4, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x03, 0xae, 0xf0, 0x37, 0x7c, 0x85, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x94, 0x85, 0xbf, 0xe1, 0x2f, 0x9a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x76, 0xa0, 0x77, 0x70, 0xd2, 0x13, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xd9, 0xc2, 0xdf, 0xa0, 0x84, 0xc7, 0xdc, 0x60, 0x19, 0x73, 0xde, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xc5, 0x5d, 0xf8, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xf8, 0x0b, 0xff, 0x60, 0x49, 0xd9, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x3d, 0x62, 0xf8, 0x07, 0x4b, 0xca, 0xe6, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x25, 0xc3, 0x3f, 0x28, 0xb6, 0x95, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x38, 0xc3, 0xdf, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x15, 0x69, 0xf8, 0x07, 0x4b, 0xca, 0xe6, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x5c, 0xc3, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb9, 0x6d, 0xf8, 0x07, 0x27, 0x82, 0xb6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xbb, 0xe2, 0xf0, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xe3, 0x1c, 0xfe, 0xc1, 0x32, 0xec, 0xb7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x5b, 0xee, 0xf0, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x57, 0x1e, 0xfe, 0xc1, 0x82, 0x30, 0xbd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xfb, 0xf9, 0xf0, 0x37, 0x5c, 0x52, 0x1b, 0xac, 0x58, 0xd3, 0x5b, 0x83, 0x45, 0x88, 0x79, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xbd, 0x7f, 0xf8, 0x07, 0x2b, 0xe8, 0xf4, 0xaa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x63, 0x06, 0xf1, 0x37, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x58, 0xc6, 0x9c, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x5f, 0x88, 0x7f, 0xb0, 0xe8, 0x50, 0xaf, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x47, 0xc4, 0xdf, 0xf0, 0x89, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x29, 0x8b, 0xf8, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xa4, 0x11, 0x7f, 0xc3, 0xe7, 0x2e, 0x1b, 0xac, 0xf7, 0xd4, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x78, 0xc4, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x49, 0x91, 0xf8, 0x07, 0x45, 0x26, 0xee, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xe9, 0x94, 0xf8, 0x07, 0x45, 0xa5, 0xf8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xa9, 0x97, 0xf8, 0x07, 0xcb, 0x70, 0xf5, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x47, 0x13, 0x7f, 0xc3, 0xe7, 0x2e, 0x1b, 0xac, 0x1c, 0xd6, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xe1, 0xc4, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x5d, 0x9e, 0xf8, 0x07, 0x25, 0xd1, 0xec, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x01, 0xa2, 0xf8, 0x07, 0x45, 0xa5, 0xf8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xc9, 0xa4, 0xf8, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xd8, 0x14, 0xff, 0xf0, 0x98, 0xcc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x0d, 0xa9, 0xf8, 0x87, 0xc7, 0x64, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x78, 0x15, 0xff, 0x60, 0x19, 0xae, 0x5e, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x47, 0xb9, 0xe2, 0x6f, 0xf8, 0x0a, 0x67, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x13, 0x16, 0x7f, 0xc3, 0x5f, 0x34, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x4e, 0x60, 0xef, 0xe0, 0xa4, 0x27, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x28, 0x8b, 0xbf, 0xc1, 0xc9, 0x41, 0x6e, 0x83, 0x95, 0x0f, 0x7b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0x40, 0xfa, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x32, 0x49, 0xff, 0x83, 0x95, 0x1c, 0x7b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0x58, 0xfa, 0x1f, 0x2c, 0x2d, 0xd9, 0x6b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xf3, 0xb2, 0x77, 0xb0, 0x76, 0x66, 0x6f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xa7, 0x16, 0x7f, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0xdc, 0xe2, 0x1f, 0xac, 0x5b, 0x87, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x36, 0x17, 0xff, 0x60, 0xcd, 0xc6, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x29, 0xbc, 0xf8, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xcb, 0x17, 0xff, 0xe0, 0x44, 0xd0, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x7f, 0x30, 0xfe, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x21, 0xc6, 0x3f, 0x28, 0x88, 0x96, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x3e, 0xc6, 0x3f, 0x28, 0x2a, 0xc5, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x54, 0xc6, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xc5, 0xcc, 0xf8, 0x07, 0x6b, 0xea, 0xf6, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x83, 0xc6, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x95, 0xd2, 0xf8, 0x07, 0xab, 0x9c, 0xe8, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0xb1, 0xc6, 0x3f, 0x58, 0x5a, 0xb2, 0x57, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x99, 0x8d, 0x7f, 0x50, 0x6c, 0x2b, 0xd7, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x06, 0x73, 0xef, 0xe0, 0x9c, 0x9b, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xce, 0x8d, 0xbf, 0xc1, 0xc9, 0x41, 0x6e, 0x83, 0x35, 0xa5, 0x7b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0x44, 0xe9, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x9c, 0x29, 0xfd, 0x83, 0x95, 0x1c, 0x7b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0x5b, 0xe9, 0x1f, 0x2c, 0x2d, 0xd9, 0x6b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xfa, 0xbb, 0x77, 0x90, 0xb2, 0xc5, 0xb4, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xf9, 0x8d, 0xbf, 0xe1, 0x13, 0x9b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x93, 0xc3, 0xf1, 0x37, 0x7c, 0xee, 0xb2, 0xc1, 0x4a, 0xe9, 0xbd, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xde, 0x71, 0xfc, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x5e, 0x8e, 0x7f, 0xb0, 0xe8, 0x7b, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xc6, 0x74, 0xfc, 0x83, 0xa5, 0x25, 0x7b, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0xb0, 0xe3, 0x6f, 0x70, 0x1c, 0x9b, 0xd8, 0xa0, 0x44, 0x57, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xdf, 0x1d, 0x7f, 0x83, 0x62, 0x12, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x96, 0xf5, 0xef, 0x1d, 0x14, 0xa9, 0x98, 0x07, 0xcb, 0x07, 0xf8, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x8b, 0xc7, 0xdf, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x79, 0xf3, 0xf8, 0x07, 0x8b, 0xf0, 0xe4, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xaf, 0xc7, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x1d, 0xf8, 0xf8, 0x07, 0x4b, 0x3f, 0xf8, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xdd, 0xc7, 0x3f, 0x58, 0x8b, 0xc2, 0x57, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x19, 0xff, 0xf8, 0x1b, 0x1c, 0xc7, 0x26, 0x36, 0x28, 0xd1, 0x95, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x0f, 0xc8, 0xdf, 0xf0, 0x36, 0xeb, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x07, 0x41, 0xfe, 0x86, 0x07, 0x25, 0xd7, 0xf0, 0x08, 0xeb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xd9, 0x08, 0xf9, 0x1b, 0x14, 0x93, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0xc8, 0x89, 0xef, 0x20, 0x04, 0x1f, 0x0e, 0x02, 0x3c, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xc4, 0x85, 0xfc, 0x0d, 0xff, 0xe6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xda, 0x90, 0x7f, 0x78, 0xf0, 0x66, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xfd, 0x21, 0xff, 0xe0, 0xa0, 0x4c, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x9b, 0x44, 0xfe, 0x86, 0x7f, 0x73, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0xa4, 0xc8, 0x3f, 0x3c, 0x78, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x6c, 0x91, 0x7f, 0x70, 0x08, 0x9d, 0x58, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x2a, 0x23, 0x7f, 0xc3, 0xbf, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0x6d, 0xe4, 0x1f, 0x1e, 0xbc, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0xed, 0xc8, 0x3f, 0x38, 0x9c, 0xf3, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x64, 0x90, 0x7f, 0xb0, 0x52, 0x92, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xdc, 0x90, 0xfc, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0x4a, 0x74, 0xe5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xd3, 0x48, 0xf2, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x99, 0x49, 0xfe, 0xc1, 0x22, 0x3c, 0xb9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xb3, 0x51, 0xf2, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc2, 0x4a, 0xfe, 0xc1, 0x22, 0x5b, 0xbe, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x53, 0x5d, 0xf2, 0x0f, 0x56, 0xfd, 0xf2, 0xd5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x66, 0x4c, 0xfe, 0x06, 0x45, 0x9f, 0xee, 0x06, 0x25, 0xba, 0xf2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x49, 0x34, 0xf9, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xc8, 0x26, 0xff, 0x60, 0x11, 0x9e, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb9, 0x38, 0xf9, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x5d, 0x27, 0xff, 0x60, 0x91, 0x2d, 0xdf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x89, 0x3e, 0xf9, 0x07, 0x6b, 0xd5, 0xf9, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x2f, 0x28, 0x7f, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0x0d, 0xe5, 0x1f, 0x2c, 0xc2, 0x93, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xbe, 0x28, 0xff, 0x60, 0x11, 0x9e, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x65, 0x48, 0xf9, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x52, 0x29, 0xff, 0x60, 0x91, 0x2d, 0xdf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x35, 0x4e, 0xf9, 0x07, 0x4b, 0x28, 0xfa, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x33, 0x2a, 0x7f, 0x83, 0xa2, 0x4f, 0x77, 0x83, 0x12, 0x5d, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x24, 0xaa, 0xfc, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x64, 0x95, 0x7f, 0xb0, 0x08, 0x4f, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x5c, 0xac, 0xfc, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xae, 0x95, 0x7f, 0xb0, 0x1e, 0xa7, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x44, 0xaf, 0xfc, 0x83, 0x05, 0x42, 0x7d, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x16, 0x96, 0xbf, 0x41, 0xd1, 0xa7, 0xbb, 0x41, 0x89, 0xae, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x05, 0x59, 0xfe, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x30, 0xcb, 0x3f, 0x58, 0x84, 0x27, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x21, 0x5a, 0xfe, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x55, 0xcb, 0x3f, 0x58, 0x8f, 0xd3, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x95, 0x5b, 0xfe, 0xc1, 0xb2, 0xb6, 0xbe, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x89, 0xcb, 0xdf, 0xe0, 0x38, 0x36, 0xb1, 0x41, 0x89, 0xae, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x04, 0x5d, 0xfe, 0x86, 0xb7, 0x59, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x6b, 0xec, 0xf2, 0x0f, 0x96, 0x15, 0xf6, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x90, 0x97, 0xbf, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x03, 0xf6, 0xf2, 0x0f, 0xd6, 0x6c, 0xbc, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xd7, 0x97, 0x7f, 0x50, 0x6c, 0x2b, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x08, 0x98, 0xbf, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x13, 0x05, 0xf3, 0x0f, 0xd6, 0xad, 0xc3, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x4f, 0x98, 0xbf, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x5b, 0x0e, 0xf3, 0x0f, 0xd6, 0xe3, 0xf4, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xac, 0x98, 0x7f, 0xb0, 0x68, 0xb7, 0xaf, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xf5, 0xc4, 0x7d, 0x07, 0x0b, 0x93, 0xfb, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x6b, 0x1c, 0xf3, 0x37, 0x7c, 0x62, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x19, 0x64, 0xfe, 0x86, 0xcf, 0x5d, 0x36, 0x58, 0x9f, 0xdd, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x25, 0x99, 0xbf, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x13, 0x29, 0xf3, 0x0f, 0x52, 0xc4, 0x44, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xc1, 0xcc, 0x3f, 0x58, 0x5a, 0xb2, 0xd7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xae, 0x66, 0xfe, 0x06, 0xc7, 0xb1, 0x89, 0x0d, 0x4a, 0x74, 0xe5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x33, 0x3b, 0xf3, 0x37, 0x28, 0x26, 0x31, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xb5, 0x80, 0xdf, 0x41, 0x91, 0x8a, 0x79, 0xb0, 0x2a, 0xc1, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x0c, 0xd0, 0xfc, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x21, 0x9a, 0x7f, 0xb0, 0x08, 0x4f, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x44, 0xd2, 0xfc, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x6b, 0x9a, 0x7f, 0xb0, 0xf4, 0x83, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x28, 0xd5, 0xfc, 0x83, 0xa5, 0x2a, 0x7e, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xdb, 0x9a, 0xbf, 0x41, 0x61, 0xa8, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xec, 0x6b, 0xfe, 0xc1, 0xba, 0x75, 0xb8, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x12, 0xd9, 0xfc, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x44, 0x9b, 0xbf, 0xe1, 0x11, 0xd6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xdb, 0x6c, 0xf3, 0x37, 0xfc, 0x9b, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x24, 0x6e, 0xfe, 0xe1, 0xc1, 0x9b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x66, 0xdd, 0xfc, 0x83, 0x75, 0x58, 0x7e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0xf5, 0xe6, 0x6f, 0xf8, 0x37, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xc6, 0xdf, 0xfc, 0xc3, 0x83, 0x37, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xc9, 0xc1, 0xf9, 0x07, 0xab, 0xdb, 0xfc, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x23, 0xce, 0xdf, 0xf0, 0x6f, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x89, 0xc6, 0xf9, 0x87, 0x07, 0x6f, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x8b, 0x91, 0xf3, 0x0f, 0xd6, 0x0c, 0xfa, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xb6, 0x9c, 0xbf, 0xe1, 0xdf, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x0b, 0x9b, 0xf3, 0x0f, 0x0f, 0xde, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0x3f, 0xe7, 0x1f, 0xac, 0xc4, 0xf4, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xca, 0xe9, 0xfc, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x59, 0x9d, 0x7f, 0xb0, 0x04, 0xd5, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x08, 0xec, 0xfc, 0x83, 0x45, 0xf0, 0x6e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0x6a, 0xe7, 0x1f, 0x14, 0xdb, 0xca, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0x73, 0xe7, 0x6f, 0x70, 0x1c, 0x9b, 0xd8, 0xa0, 0x44, 0x57, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xf9, 0x3b, 0x7f, 0xc3, 0xdb, 0xac, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xf1, 0xe1, 0xf9, 0x1b, 0xfe, 0xcd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x82, 0x3c, 0xff, 0xf0, 0xe0, 0xcd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x94, 0x79, 0xfe, 0xc1, 0x4a, 0x4c, 0xbf, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x5b, 0xd2, 0xf3, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xca, 0x7a, 0xfe, 0xc1, 0x22, 0x3c, 0xb9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x4b, 0xdb, 0xf3, 0x0f, 0x96, 0xa0, 0xfa, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x01, 0x9f, 0xbf, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x9b, 0xe4, 0xf3, 0x0f, 0xd6, 0xe3, 0xf4, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x5e, 0x9f, 0x7f, 0xb0, 0x12, 0xd3, 0xaf, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xa3, 0xf2, 0xf3, 0x37, 0x38, 0x8e, 0x4d, 0x6c, 0x50, 0xa2, 0x2b, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xc3, 0x9f, 0xbf, 0xe1, 0x6d, 0xd6, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x2a, 0xff, 0xfc, 0x0d, 0xff, 0xe6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x07, 0xa0, 0x7f, 0x78, 0xf0, 0x66, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x56, 0x40, 0xff, 0x60, 0x75, 0x9b, 0xdf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x7d, 0x05, 0xfa, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xef, 0x40, 0xff, 0x60, 0x11, 0x9e, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xf5, 0x09, 0xfa, 0x07, 0x8b, 0x66, 0xfe, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x63, 0xd0, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x9d, 0x0e, 0xfa, 0x07, 0xeb, 0x71, 0xfa, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x91, 0xd0, 0x3f, 0x58, 0xdd, 0xe6, 0x57, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x8d, 0x15, 0xfa, 0x1b, 0x1c, 0xc7, 0x26, 0x36, 0x28, 0xd1, 0x95, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xc3, 0xd0, 0xdf, 0xf0, 0x36, 0xeb, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xa4, 0x86, 0xfe, 0x86, 0x7f, 0x73, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xe5, 0xd0, 0x3f, 0x3c, 0x78, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xef, 0xa1, 0x7f, 0xb0, 0x66, 0xd0, 0x6f, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xdc, 0x10, 0xfd, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x3b, 0xa2, 0x7f, 0xb0, 0x08, 0x4f, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x18, 0x13, 0xfd, 0x83, 0xd5, 0x7c, 0x7f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0xa2, 0xe8, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x6c, 0x15, 0xfd, 0x83, 0xf5, 0x38, 0x7d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0xb9, 0xe8, 0x1f, 0xac, 0x19, 0xf4, 0xab, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xe4, 0x18, 0xfd, 0x0d, 0x8e, 0x63, 0x13, 0x1b, 0x94, 0xe8, 0xca, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0xd2, 0xe8, 0x6f, 0x78, 0x9b, 0x75, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xd9, 0x46, 0x7f, 0xc3, 0xbf, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0xe3, 0xe8, 0x1f, 0x1e, 0xbc, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xd9, 0xd1, 0x3f, 0x58, 0x87, 0xe5, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x7d, 0x8f, 0xfe, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0xff, 0xd1, 0x3f, 0x58, 0x84, 0x27, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x9b, 0x90, 0xfe, 0xc1, 0x32, 0xe3, 0xbf, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xab, 0x89, 0xf4, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc1, 0x91, 0xfe, 0xc1, 0x7a, 0x9c, 0xbe, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x4b, 0x95, 0xf4, 0x0f, 0xd6, 0x61, 0xf9, 0xd5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x7d, 0x93, 0xfe, 0xc1, 0xf2, 0xf0, 0xbf, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x55, 0xeb, 0x7f, 0x07, 0x47, 0x7d, 0x93, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x0a, 0x2d, 0xfd, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xc3, 0xa5, 0xbf, 0xe1, 0xdf, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xbb, 0xbc, 0xf4, 0x0f, 0x8a, 0x9c, 0xd6, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x4c, 0x30, 0xfd, 0x83, 0xa5, 0x25, 0x7b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0x8b, 0xe9, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x78, 0x32, 0xfd, 0x83, 0x45, 0x78, 0x72, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0x9d, 0xe9, 0x1f, 0xac, 0xe0, 0x00, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x3c, 0x4d, 0xff, 0xa0, 0xd8, 0x56, 0x6e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x89, 0x4d, 0x7f, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0xb9, 0xe9, 0x6f, 0xf8, 0x37, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x4a, 0x38, 0xfd, 0x83, 0x02, 0x36, 0x7f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x5b, 0x4e, 0xff, 0x60, 0x69, 0xc9, 0xde, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x39, 0x75, 0xfa, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xe6, 0x4e, 0xff, 0x60, 0x11, 0x9e, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb1, 0x79, 0xfa, 0x07, 0xeb, 0xa0, 0x00, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0xe0, 0xd3, 0x3f, 0x28, 0xb6, 0x95, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0xf4, 0xd3, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb1, 0x80, 0xfa, 0x07, 0x2b, 0x39, 0xf6, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x22, 0xd4, 0x3f, 0x58, 0x5a, 0xb2, 0xd7, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x50, 0x0e, 0xf0, 0xe0, 0xb4, 0x77, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x79, 0xa8, 0xbf, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x1b, 0x13, 0xf5, 0x0f, 0xd6, 0xad, 0xc3, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xc0, 0xa8, 0x7f, 0x50, 0x6c, 0x2b, 0xb7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x86, 0x04, 0x3c, 0x38, 0x6a, 0x9d, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0x3c, 0xea, 0x6f, 0x70, 0x72, 0x90, 0xdb, 0x60, 0x4d, 0xe9, 0xde, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xe5, 0xd4, 0xfa, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xe2, 0x5a, 0xff, 0x60, 0x25, 0xc7, 0xde, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb5, 0xda, 0xfa, 0x07, 0x4b, 0x4b, 0xf6, 0x5a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd6, 0xdf, 0x02, 0x1e, 0x1c, 0xf5, 0x4d, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x8b, 0x23, 0xf5, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xfd, 0xa4, 0xfe, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0xb1, 0xd4, 0x3f, 0x58, 0xf2, 0x0c, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x73, 0xa6, 0xfe, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xde, 0xd4, 0x3f, 0x28, 0x2a, 0xc5, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0xf1, 0xd4, 0x3f, 0x48, 0x79, 0xad, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x12, 0x54, 0xff, 0xe0, 0xd4, 0xdc, 0xd6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x6d, 0xa3, 0xfa, 0x1b, 0x7e, 0x51, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb5, 0xf8, 0x80, 0x1b, 0xfe, 0x5c, 0x1a, 0x3c, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x25, 0x41, 0xe0, 0xe1, 0x87, 0x9a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x02, 0x53, 0xfd, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x8a, 0x7c, 0xd9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x6b, 0x50, 0xf5, 0x0f, 0x16, 0x5e, 0x04, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xbe, 0xaa, 0x7f, 0x78, 0x5a, 0xa7, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x80, 0xd5, 0x3f, 0x58, 0x5a, 0xb2, 0xd7, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x94, 0x25, 0xf0, 0x60, 0x49, 0x4c, 0xe0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xd8, 0xac, 0xfe, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0xac, 0xd5, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xc1, 0xb7, 0xfa, 0x07, 0x4b, 0x9e, 0x01, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xdb, 0xd5, 0xdf, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x65, 0xbd, 0xfa, 0x07, 0xa7, 0xe6, 0xb6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xb3, 0x7f, 0xf5, 0x0f, 0x0e, 0xaf, 0x72, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0x09, 0xeb, 0x1f, 0x1c, 0x56, 0xe6, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xa4, 0x58, 0x7f, 0xc3, 0x2f, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x8c, 0x2d, 0x70, 0xc3, 0x9f, 0x4b, 0x83, 0x87, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0xc2, 0x0b, 0x3c, 0xfc, 0x50, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x7b, 0xac, 0xbf, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0x0a, 0xa6, 0xd3, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xed, 0xc9, 0xfa, 0x07, 0x0b, 0x2f, 0x02, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x6c, 0xd6, 0x3f, 0x3c, 0xad, 0x53, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0x46, 0xeb, 0x1f, 0x2c, 0x2d, 0xd9, 0xab, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xcd, 0x67, 0xe0, 0xc1, 0x99, 0xd3, 0x75, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xbe, 0x5b, 0x7f, 0xc3, 0x27, 0x36, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0x80, 0xeb, 0x6f, 0xf8, 0xdc, 0x65, 0x83, 0x05, 0xb2, 0x81, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x19, 0xe2, 0xfa, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x89, 0x5c, 0x7f, 0xc3, 0x83, 0x92, 0x1b, 0xa4, 0xe2, 0x2c, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0x99, 0xeb, 0x1f, 0x2c, 0x37, 0x0e, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x51, 0x5d, 0xff, 0x60, 0x69, 0xc9, 0x5e, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x1d, 0xed, 0xfa, 0x1b, 0x3e, 0xb1, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xe9, 0x5d, 0x7f, 0xc3, 0xe7, 0x2e, 0x1b, 0x2c, 0xed, 0x0e, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x8a, 0xd7, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x71, 0xf3, 0xfa, 0x07, 0x45, 0xf1, 0xef, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x19, 0xf7, 0xfa, 0x07, 0x45, 0xa5, 0xf8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xd9, 0xf9, 0xfa, 0x07, 0x2b, 0xee, 0x03, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0xe2, 0xd7, 0xdf, 0xa0, 0x30, 0x54, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xc8, 0x5f, 0xff, 0x60, 0xdd, 0x3a, 0xdc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x2d, 0xc0, 0xfe, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x16, 0xd8, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x09, 0x05, 0xfb, 0x87, 0x2f, 0x7e, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x45, 0xd8, 0x3f, 0x58, 0xef, 0x21, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xd2, 0xc2, 0xfe, 0xe1, 0x31, 0x99, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x6e, 0xd8, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x05, 0x10, 0xfb, 0x07, 0x27, 0x82, 0xb6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x5b, 0x27, 0xf6, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x77, 0xc5, 0xfe, 0xc1, 0x32, 0xec, 0xb7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xfb, 0x32, 0xf6, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xeb, 0xc6, 0xfe, 0x86, 0x07, 0x25, 0x37, 0x58, 0xd9, 0x12, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xdd, 0xb1, 0x7f, 0xb0, 0x76, 0x20, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xf2, 0x90, 0xfd, 0x83, 0x15, 0xf7, 0x81, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x45, 0xc9, 0xfe, 0x41, 0xb1, 0xad, 0xdc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xef, 0xc9, 0xfe, 0x86, 0x4f, 0x6c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x4f, 0xd9, 0xdf, 0xf0, 0xb9, 0xcb, 0x06, 0x6b, 0xe2, 0x04, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xc3, 0x57, 0xf6, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x84, 0xcb, 0xfe, 0x41, 0x51, 0xfc, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x6e, 0xcc, 0xfe, 0xc1, 0xa9, 0xb9, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x48, 0x9a, 0xfd, 0x83, 0x15, 0xf7, 0x81, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0xdc, 0xec, 0x6f, 0x50, 0xda, 0x5b, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x94, 0xb3, 0xbf, 0xe1, 0xcf, 0xa5, 0x0d, 0x56, 0x66, 0x0a, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0xec, 0xec, 0x1f, 0x94, 0x59, 0xba, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x79, 0x3d, 0xfb, 0x1b, 0xbe, 0xc2, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0xfe, 0xd9, 0xdf, 0xf0, 0x17, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x95, 0x15, 0x3c, 0x38, 0xe9, 0x89, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0x06, 0xed, 0x6f, 0xf8, 0x20, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xec, 0xa1, 0xfd, 0x0d, 0xff, 0xe6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x5f, 0xb4, 0x7f, 0xb0, 0x3e, 0x59, 0x70, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x09, 0x69, 0xff, 0x60, 0x95, 0xb4, 0xe0, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x9d, 0x4a, 0xfb, 0x07, 0xc5, 0xb6, 0xf2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x43, 0xd3, 0xfe, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0x4b, 0x97, 0x05, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x03, 0x94, 0xf7, 0x37, 0x7c, 0x1c, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xc1, 0xbc, 0x7f, 0xb0, 0x3e, 0x59, 0x70, 0x0d, 0x4a, 0x74, 0xe5, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xfa, 0xa7, 0xfd, 0x0d, 0x0a, 0xd2, 0xd8, 0x0d, 0x96, 0xed, 0x0b, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x22, 0xb5, 0xbf, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xab, 0xa8, 0xf6, 0x0f, 0x4a, 0xa2, 0xd9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xf3, 0xaf, 0xf6, 0x0f, 0x4e, 0xcd, 0x6d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0x6b, 0xed, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x6a, 0xae, 0xfd, 0x83, 0xf5, 0xc9, 0x82, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0x7c, 0xed, 0x1f, 0x1e, 0x93, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xea, 0xb0, 0xfd, 0x83, 0x15, 0xf7, 0x81, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0x91, 0xed, 0x6f, 0x90, 0x64, 0x40, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xa9, 0xd9, 0xfe, 0xc1, 0x89, 0xa0, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x98, 0xb5, 0xfd, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xd6, 0xb6, 0x7f, 0xb0, 0x0c, 0xfb, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x80, 0xb8, 0xfd, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x33, 0xb7, 0xbf, 0xe1, 0x41, 0xc9, 0x0d, 0x16, 0xff, 0xc3, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0xd5, 0xed, 0x1f, 0xac, 0x1d, 0x88, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x2e, 0x6f, 0x7f, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0xee, 0xed, 0x1f, 0x94, 0xf8, 0xb8, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0xfd, 0xed, 0x1f, 0x14, 0x95, 0xe2, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0x08, 0xee, 0x1f, 0x2c, 0x82, 0x1b, 0xac, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x3b, 0xdc, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xa1, 0x89, 0xfb, 0x07, 0xcb, 0xb0, 0xdf, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x6a, 0xdc, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x71, 0x8f, 0xfb, 0x1b, 0x1e, 0x94, 0xdc, 0x60, 0x65, 0x4b, 0xdc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x65, 0xe4, 0xfe, 0xc1, 0xda, 0x81, 0xb8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x53, 0x2b, 0xf7, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xf6, 0xe5, 0xfe, 0x41, 0x91, 0x89, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xe0, 0xe6, 0xfe, 0x41, 0x51, 0x29, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x90, 0xe7, 0xfe, 0xc1, 0x22, 0xb8, 0xc1, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xd2, 0xd1, 0xfd, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x5c, 0xba, 0xbf, 0xe1, 0xdf, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xdb, 0x4f, 0xf7, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x87, 0xea, 0xfe, 0x41, 0xd8, 0xdd, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xdc, 0xba, 0x7f, 0xb0, 0x3e, 0x59, 0x70, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x3e, 0xd8, 0xfd, 0x83, 0x53, 0x73, 0x5b, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x25, 0xb3, 0xfb, 0x87, 0x07, 0x6f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xab, 0xdd, 0xdf, 0xf0, 0x41, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x8d, 0xb7, 0xfb, 0x1b, 0xfe, 0xcd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x36, 0x77, 0xff, 0x60, 0x7d, 0xb2, 0xe0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xff, 0xee, 0xfe, 0xe1, 0xc1, 0x9b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x83, 0x7c, 0xf7, 0x0f, 0x16, 0x04, 0xd1, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0x02, 0xef, 0x1f, 0xac, 0xff, 0x1f, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x19, 0xde, 0x3f, 0x58, 0x81, 0x40, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x9f, 0xf1, 0xfe, 0x41, 0xb1, 0xad, 0x5c, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x92, 0x0b, 0xc2, 0x83, 0x63, 0xb1, 0xeb, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xe4, 0xf3, 0xfe, 0x06, 0xe7, 0xfc, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x1b, 0xa3, 0xf7, 0x0f, 0x16, 0xe1, 0xc9, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x40, 0xbd, 0x7f, 0xb0, 0x6e, 0x1d, 0x6e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xcf, 0x7a, 0x7f, 0x83, 0x05, 0x98, 0x4d, 0x6b, 0xf8, 0xbe, 0x7d, 0x83, 0x63, 0x86, 0xe7, 0x06, 0x25, 0x74, 0xec, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x11, 0x22, 0xdc, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x51, 0x13, 0xe1, 0x41, 0xe9, 0x4d, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xab, 0xb0, 0x08, 0x0f, 0x1f, 0xac, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x8a, 0x31, 0xc2, 0x83, 0x93, 0x9e, 0x68, 0x07, 0x61, 0x3a, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xca, 0x0f, 0xff, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x0a, 0xe2, 0x3f, 0x38, 0x11, 0xb4, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x50, 0xc4, 0x7f, 0xb0, 0x94, 0x8f, 0x70, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xe8, 0x23, 0xfe, 0x83, 0x62, 0x5b, 0xb9, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x56, 0xec, 0xfd, 0x0d, 0x8a, 0x4e, 0xe3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xbb, 0xb5, 0xf7, 0x0f, 0x96, 0x4a, 0x12, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xe8, 0xbd, 0xbf, 0xc1, 0x4a, 0x17, 0xa7, 0x0d, 0x16, 0x75, 0x12, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x02, 0x52, 0xc2, 0x83, 0xa5, 0x25, 0x7b, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xe5, 0xe0, 0xfb, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x61, 0x7c, 0x7f, 0xc3, 0xbf, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0x94, 0xef, 0x1f, 0x1e, 0xbc, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x3b, 0xdf, 0x3f, 0x58, 0x16, 0x4c, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x71, 0xfa, 0xfe, 0x06, 0x47, 0xd7, 0xc1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x83, 0xd7, 0xf7, 0x0f, 0x0f, 0xde, 0xb4, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xe4, 0xbe, 0xbf, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xeb, 0xe0, 0xf7, 0x0f, 0x0a, 0xa2, 0xe5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x3b, 0xe8, 0xf7, 0x0f, 0x8a, 0x4a, 0xf1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xbb, 0xed, 0xf7, 0x0f, 0x96, 0x05, 0x13, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x9d, 0xbf, 0xbf, 0xe1, 0x17, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x60, 0x4f, 0xb8, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x0d, 0x50, 0xb8, 0xe1, 0xcf, 0xa5, 0xc1, 0xe3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x56, 0x32, 0x14, 0x1e, 0x7e, 0xa8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x25, 0x17, 0x85, 0x1b, 0xfe, 0x5c, 0x1a, 0x7c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xb9, 0x48, 0xe1, 0xe1, 0x83, 0xd5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xd7, 0x52, 0xb8, 0xe1, 0xcf, 0xa5, 0xc1, 0xe5, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd6, 0xe4, 0x14, 0x1e, 0x9c, 0xf4, 0x44, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xe4, 0xdf, 0xdf, 0xa0, 0x30, 0x54, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xd3, 0x7f, 0x7f, 0xc3, 0xdb, 0xac, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xbd, 0x00, 0xfc, 0x07, 0x87, 0x73, 0xbe, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xb6, 0x01, 0xfe, 0x0d, 0x8a, 0x4e, 0xe3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x3b, 0x0b, 0xf8, 0x0f, 0x4e, 0x04, 0x6d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0x25, 0xf0, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xba, 0x05, 0xfe, 0x83, 0x65, 0xd8, 0x6f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0x3c, 0xf0, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xa2, 0x08, 0xfe, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x36, 0xc1, 0x7f, 0x70, 0x38, 0xe7, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xb8, 0x82, 0x7f, 0xc3, 0x83, 0x92, 0x1b, 0xac, 0x6c, 0x89, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xbf, 0xe0, 0x3f, 0x58, 0x3b, 0x10, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xad, 0xc1, 0xbf, 0xe1, 0x41, 0xc9, 0x0d, 0x16, 0xff, 0xc3, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0x73, 0xf0, 0x1f, 0xac, 0x1d, 0x88, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x23, 0x84, 0xff, 0xe0, 0x74, 0x24, 0x52, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x39, 0x24, 0xfc, 0x1b, 0x14, 0x3b, 0x9a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0x99, 0xf0, 0x6f, 0x78, 0x84, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x40, 0x14, 0xfe, 0x83, 0xc3, 0x39, 0xdf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x0d, 0x2b, 0xfc, 0x1b, 0xde, 0x66, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x69, 0xe1, 0xdf, 0xf0, 0x6f, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x55, 0x2f, 0xfc, 0x07, 0xc7, 0x4f, 0xbe, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xdc, 0x18, 0xfe, 0x83, 0x05, 0x41, 0x74, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xc1, 0xc3, 0x7f, 0x70, 0xfc, 0xe4, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xa9, 0xe1, 0xdf, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x39, 0x37, 0xfc, 0x07, 0x6b, 0x36, 0xde, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xcd, 0xe1, 0x3f, 0x38, 0x7e, 0xf2, 0xb5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x6d, 0x2f, 0x3c, 0x58, 0x98, 0xdc, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xb3, 0xc4, 0xbf, 0xc1, 0xc9, 0x41, 0x6e, 0x83, 0x35, 0xa5, 0x7b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0xab, 0xf2, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x94, 0x56, 0xfe, 0x83, 0x95, 0x1c, 0x7b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0xc3, 0xf2, 0x1f, 0x2c, 0x2d, 0xd9, 0x6b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x50, 0x61, 0x78, 0x70, 0xce, 0x4d, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x6f, 0xe2, 0xdf, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xdd, 0x4f, 0xfc, 0x07, 0x8b, 0xf0, 0xe4, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x92, 0xe2, 0x3f, 0x58, 0xb7, 0x0e, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x33, 0x15, 0xff, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xb7, 0xe2, 0x3f, 0x58, 0x95, 0x63, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xa7, 0x16, 0xff, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xe6, 0xe2, 0x3f, 0x58, 0x89, 0x64, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x1b, 0x18, 0xff, 0xc1, 0xd2, 0x92, 0xbd, 0x6a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x82, 0x65, 0x78, 0xb0, 0x94, 0xcb, 0x70, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x7e, 0x8c, 0x7f, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0x97, 0xf1, 0x1f, 0x2c, 0xc2, 0x93, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x0d, 0x8d, 0xff, 0x60, 0xdd, 0x3a, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xe9, 0x6a, 0xfc, 0x07, 0xeb, 0xd6, 0xe1, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x6a, 0xe3, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x8d, 0x6f, 0xfc, 0x07, 0xab, 0x72, 0x0c, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x99, 0xe3, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x5d, 0x75, 0xfc, 0x07, 0xcb, 0x23, 0x0d, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xc7, 0xe3, 0x3f, 0x58, 0x5a, 0xb2, 0x57, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xeb, 0x42, 0x0d, 0x0f, 0x8e, 0xc5, 0xae, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x75, 0x7c, 0xfc, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xce, 0x8f, 0xff, 0x60, 0x11, 0x9e, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xed, 0x80, 0xfc, 0x07, 0xeb, 0xd6, 0xe1, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x1b, 0xe4, 0x3f, 0x58, 0xb7, 0x0e, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x79, 0x21, 0xff, 0xc1, 0xba, 0x75, 0xb8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xb3, 0x10, 0xf9, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xa2, 0x22, 0xff, 0xc1, 0xaa, 0x1c, 0xc3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x53, 0x1c, 0xf9, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x16, 0x24, 0xff, 0xc1, 0xd2, 0x6f, 0xc3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xf3, 0x27, 0xf9, 0x0f, 0x96, 0x96, 0xec, 0x55, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x9a, 0x77, 0xc3, 0x83, 0x25, 0x31, 0x81, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x81, 0x97, 0xfc, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x2f, 0x93, 0xff, 0x60, 0x11, 0x9e, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xf1, 0x9b, 0xfc, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xc4, 0x93, 0xff, 0x60, 0x55, 0x8e, 0xe1, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xc1, 0xa1, 0xfc, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x7e, 0x94, 0xff, 0x60, 0x75, 0xc6, 0xe1, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x91, 0xa7, 0xfc, 0x07, 0x4b, 0x4b, 0xf6, 0xaa, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x85, 0x29, 0x87, 0x07, 0x09, 0x61, 0x46, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x15, 0xb4, 0xfc, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xc7, 0x96, 0x7f, 0x83, 0x62, 0x12, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x96, 0x04, 0x1d, 0x1e, 0xac, 0x9d, 0xd9, 0x3b, 0x58, 0x53, 0xba, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x2e, 0x2e, 0xff, 0x06, 0x45, 0xa7, 0xf1, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xe9, 0xba, 0xfc, 0x07, 0x87, 0xac, 0xc5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x23, 0x7d, 0xf9, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x23, 0x30, 0xff, 0xc1, 0x22, 0x78, 0xb7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x13, 0x86, 0xf9, 0x0f, 0x56, 0xa0, 0x1d, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x58, 0xcc, 0xbf, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x63, 0x8f, 0xf9, 0x0f, 0x4e, 0x32, 0x6d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0x2d, 0xf3, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xc4, 0x66, 0xfe, 0x0d, 0x0f, 0x4a, 0x6e, 0x70, 0x10, 0x6a, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x7d, 0xe6, 0x3f, 0x58, 0xb1, 0x78, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xf0, 0x34, 0xff, 0xc1, 0xd2, 0x92, 0xbd, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xb5, 0xe6, 0x3f, 0x58, 0x9b, 0x79, 0x58, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xdd, 0xd9, 0xfc, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x81, 0x9b, 0xff, 0x60, 0x01, 0xea, 0xe1, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xad, 0xdf, 0xfc, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x3b, 0x9c, 0x7f, 0xc3, 0x83, 0x92, 0x1b, 0xac, 0xc8, 0x3d, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x20, 0xe7, 0x3f, 0x58, 0xb1, 0x78, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x06, 0x3a, 0xff, 0xc1, 0xd2, 0x92, 0xbd, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x59, 0xe7, 0xdf, 0x60, 0x01, 0x66, 0xd3, 0x1a, 0xbe, 0x6f, 0xdf, 0x60, 0xb9, 0xf4, 0xe1, 0x06, 0x25, 0x74, 0xec, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0xdc, 0x3e, 0xdc, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xad, 0xf9, 0xe1, 0x41, 0xe9, 0x4d, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8b, 0xe3, 0x0f, 0x0f, 0x4e, 0x7a, 0xa2, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x9c, 0xff, 0xf0, 0xe0, 0xa4, 0x27, 0xda, 0x41, 0x98, 0x8e, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x5e, 0xdd, 0xbf, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x33, 0xb0, 0xfb, 0x0f, 0x4e, 0x04, 0x6d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0x6f, 0xf7, 0x1f, 0x2c, 0xb4, 0x40, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xd2, 0xbb, 0x7f, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0x82, 0xf7, 0x6f, 0xf8, 0x37, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x6c, 0xf1, 0xfe, 0xc3, 0x83, 0x37, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x15, 0xe5, 0xfd, 0x07, 0x4b, 0x4b, 0xf6, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x3c, 0xef, 0xdf, 0xf0, 0x17, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0xf9, 0x41, 0x3c, 0x38, 0xe9, 0x89, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0xa5, 0xf7, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xb8, 0xf5, 0xfe, 0x83, 0x45, 0xf0, 0x6e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0xb7, 0xf7, 0x1f, 0x14, 0x14, 0x99, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0xc0, 0xf7, 0x1f, 0xac, 0xea, 0x42, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xaa, 0x9d, 0x7f, 0x83, 0x93, 0x83, 0xdc, 0x06, 0x6b, 0x4a, 0xf7, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x9a, 0xed, 0xdf, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x41, 0xb5, 0xfd, 0x07, 0x05, 0x45, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x7d, 0xb7, 0xfd, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x35, 0xb7, 0x7f, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0xef, 0xf6, 0x1f, 0x2c, 0x42, 0x44, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xf0, 0xb7, 0x7f, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0x06, 0xf7, 0x1f, 0xa4, 0xbc, 0x56, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x3f, 0xdc, 0x7f, 0x50, 0x54, 0x8a, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xac, 0x71, 0xff, 0x86, 0x5f, 0x94, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xd9, 0x2a, 0xe2, 0x86, 0x3f, 0x97, 0x06, 0x0f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x74, 0x8b, 0x78, 0xf8, 0xa1, 0x66, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x29, 0xb9, 0x7f, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x22, 0x5f, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xbc, 0xe5, 0xfe, 0x83, 0x85, 0x17, 0x81, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0x3c, 0xf7, 0x1f, 0x9e, 0xd6, 0xa9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xb3, 0xa6, 0xfb, 0x0f, 0x96, 0x96, 0xec, 0xd5, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0xc2, 0x1b, 0xf1, 0x60, 0xa5, 0x38, 0xe2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x00, 0x3c, 0xff, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x8f, 0xe7, 0xdf, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xf9, 0xf3, 0xfc, 0x07, 0x8b, 0xe0, 0xdd, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xb3, 0xe7, 0x3f, 0x58, 0x8e, 0x1b, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x3a, 0x3e, 0xff, 0x41, 0x41, 0x91, 0xd9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x25, 0xfb, 0xfc, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xaa, 0x9f, 0x7f, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0xfe, 0xf3, 0x1f, 0x2c, 0x42, 0x44, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x65, 0xa0, 0x7f, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0x14, 0xf4, 0x1f, 0x04, 0x2c, 0xeb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x7d, 0x07, 0xfd, 0x07, 0xa7, 0xe6, 0xb6, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x52, 0xe8, 0xdf, 0xf0, 0x8b, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0xb9, 0x49, 0xdc, 0xf0, 0xe7, 0xd2, 0xe0, 0xe1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2b, 0x86, 0x12, 0x0f, 0x3f, 0xd4, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0x33, 0xf4, 0x6f, 0x50, 0x96, 0xbc, 0x6f, 0x50, 0xe4, 0xcb, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xf1, 0xd0, 0x7f, 0xb0, 0xf0, 0x22, 0x70, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x6a, 0x89, 0xfe, 0xc3, 0xd3, 0x3a, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xbf, 0x45, 0xff, 0xc1, 0xd2, 0x92, 0xbd, 0x5a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x96, 0xa7, 0x25, 0x1e, 0x1c, 0xb5, 0x4e, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x93, 0x34, 0xfa, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x11, 0x47, 0xff, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0xf2, 0xe8, 0x3f, 0x58, 0x04, 0xef, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x2f, 0x48, 0xff, 0xc1, 0xd2, 0xc3, 0xc4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x4b, 0x46, 0xfa, 0x0f, 0x0a, 0x8a, 0xcc, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x2b, 0xe9, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x91, 0x27, 0xfd, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x38, 0xa5, 0xff, 0x60, 0xa5, 0x68, 0xe2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x61, 0x2d, 0xfd, 0x87, 0xc7, 0x64, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x21, 0xa6, 0xff, 0x60, 0x69, 0xc9, 0x5e, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xab, 0x71, 0x13, 0x0f, 0x56, 0xf5, 0x26, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0xd1, 0xf4, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x2a, 0x9b, 0xfe, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x85, 0xd3, 0x7f, 0xb0, 0x08, 0xde, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x66, 0x9d, 0xfe, 0x83, 0x35, 0xe8, 0x6f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0xf5, 0xf4, 0x1f, 0x14, 0x14, 0x99, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xf7, 0xd3, 0xbf, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x5b, 0x83, 0xfa, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xf7, 0x50, 0xff, 0xc1, 0x22, 0x44, 0xc4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x0b, 0x8f, 0xfa, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x60, 0x52, 0xff, 0xc1, 0xe1, 0x55, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xfa, 0xa5, 0xfe, 0x83, 0x53, 0x73, 0x5b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0x3b, 0xf5, 0x6f, 0xf8, 0x45, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x96, 0x48, 0x28, 0x6e, 0xf8, 0x73, 0x69, 0xf0, 0x70, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x05, 0x1e, 0x8a, 0x87, 0x1f, 0x6a, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xcb, 0xa2, 0xfa, 0x37, 0x28, 0x4b, 0xde, 0x37, 0x48, 0xc1, 0x74, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x72, 0xaa, 0xff, 0x60, 0xe1, 0x45, 0xe0, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x39, 0x57, 0xfd, 0x87, 0xa7, 0x75, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xb0, 0xad, 0xfe, 0x83, 0xa5, 0x25, 0x7b, 0xb5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x27, 0x52, 0x3c, 0x58, 0x97, 0xa4, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xea, 0xd5, 0xbf, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x53, 0xc1, 0xfa, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xa9, 0x58, 0xff, 0xc1, 0x22, 0x78, 0xb7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x43, 0xca, 0xfa, 0x0f, 0x96, 0xcf, 0xbb, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x79, 0xd6, 0x7f, 0x50, 0x50, 0x64, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x74, 0x5a, 0xff, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x60, 0xeb, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x31, 0x6e, 0xfd, 0x07, 0x8b, 0x10, 0x11, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x8e, 0xeb, 0xdf, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xd5, 0x73, 0xfd, 0x07, 0xa9, 0xa7, 0xb1, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0xd9, 0xf5, 0x1f, 0x1c, 0x16, 0xd8, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x24, 0xaf, 0x7f, 0xc3, 0x2f, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0xca, 0x53, 0x71, 0xc3, 0x9f, 0x4b, 0x83, 0x87, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x51, 0x55, 0x3c, 0xfc, 0x50, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xbb, 0xd7, 0xbf, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0x0a, 0xa6, 0xd3, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xe9, 0x7d, 0xfd, 0x07, 0x0b, 0x2f, 0x02, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x0c, 0xec, 0x3f, 0x3c, 0xad, 0x53, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0x16, 0xf6, 0x1f, 0x2c, 0x2d, 0xd9, 0xab, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x49, 0xb4, 0xe2, 0xc1, 0xd2, 0x6a, 0xc5, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x80, 0xc4, 0xfe, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xaf, 0xd8, 0xbf, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xf3, 0x19, 0xfb, 0x0f, 0x16, 0xc1, 0xbb, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xf7, 0xd8, 0x7f, 0xb0, 0x20, 0x5e, 0x71, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xf6, 0xc8, 0xfe, 0x83, 0x82, 0x22, 0xb3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x53, 0x28, 0xfb, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x96, 0x65, 0xff, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xc4, 0xec, 0x3f, 0x58, 0x84, 0x88, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x0c, 0x67, 0xff, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xf1, 0xec, 0x3f, 0x48, 0x81, 0x4e, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x14, 0xb4, 0xff, 0xe0, 0xb0, 0xc0, 0xd6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x79, 0xa3, 0xfd, 0x1b, 0x7e, 0x51, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x05, 0x2c, 0x8b, 0x1b, 0xfe, 0x5c, 0x1a, 0x3c, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xf9, 0xcd, 0xe2, 0xe1, 0x87, 0x9a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x08, 0xd3, 0xfe, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x2b, 0x78, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0xa1, 0xf6, 0x1f, 0x2c, 0xbc, 0x08, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x7e, 0xb5, 0xff, 0xf0, 0xb4, 0x4e, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x01, 0xdb, 0x7f, 0xb0, 0xb4, 0x64, 0xaf, 0x5a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x96, 0x79, 0x2d, 0x1e, 0x2c, 0x89, 0x09, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x9b, 0xef, 0xdf, 0xa0, 0xe8, 0x34, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xb5, 0xbe, 0xff, 0xe0, 0x44, 0xd0, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x54, 0x7e, 0xff, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xdb, 0xef, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xa5, 0xfd, 0xfd, 0x1b, 0x1e, 0x94, 0xdc, 0x20, 0xd1, 0x26, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xf9, 0xbf, 0xff, 0xa0, 0x14, 0x52, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x7b, 0xc0, 0xff, 0x60, 0x69, 0xc9, 0x5e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0x19, 0xf8, 0x1f, 0xac, 0xff, 0x1f, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x47, 0xf0, 0x3f, 0x58, 0x81, 0x40, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xbd, 0xe0, 0xbf, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0xc1, 0xca, 0x87, 0xbd, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x00, 0x0d, 0xff, 0x83, 0x55, 0xae, 0x8b, 0x6b, 0xb0, 0xea, 0x64, 0x6f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xd3, 0xc1, 0x7f, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0x43, 0xf8, 0x6f, 0x78, 0x50, 0x72, 0x83, 0x64, 0x36, 0xa7, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x76, 0x09, 0xff, 0x83, 0x52, 0x48, 0x7d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x80, 0x0b, 0xff, 0x83, 0xa5, 0x25, 0x7b, 0xb5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0xa2, 0x5e, 0x3c, 0x38, 0xfd, 0xb8, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0x76, 0xf8, 0x6f, 0xf8, 0x20, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xde, 0x0f, 0xff, 0x0d, 0xff, 0xe6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x1e, 0xe2, 0x7f, 0xb0, 0xae, 0x0b, 0x6e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x8a, 0xc4, 0xff, 0x60, 0x7d, 0xfc, 0xe2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x99, 0x26, 0xfe, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x17, 0xc5, 0x7f, 0xc3, 0xbf, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0xab, 0xf8, 0x1f, 0x2c, 0x41, 0xf5, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x6a, 0xf1, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x89, 0x2f, 0xfe, 0x07, 0x25, 0xd1, 0xec, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x2d, 0x33, 0xfe, 0x07, 0x45, 0xa5, 0xf8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xf5, 0x35, 0xfe, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xfe, 0xc6, 0xff, 0x20, 0x60, 0x59, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0xd2, 0xf1, 0x3f, 0x3c, 0x26, 0xd3, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xf9, 0x3c, 0xfe, 0x07, 0xcb, 0x70, 0xf5, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xf2, 0xc7, 0x7f, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x07, 0x07, 0xf9, 0x1f, 0x9c, 0x08, 0xda, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x2b, 0xf2, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x95, 0x47, 0xfe, 0x07, 0x05, 0xd1, 0xf2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x3d, 0x4b, 0xfe, 0x07, 0x45, 0xa5, 0xf8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xfd, 0x4d, 0xfe, 0x07, 0x4b, 0x4b, 0xf6, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x1f, 0xca, 0xff, 0xa0, 0xd8, 0x56, 0x6e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x73, 0xca, 0x7f, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0x56, 0xf9, 0x1f, 0xac, 0x5b, 0x87, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x02, 0xcb, 0xff, 0x60, 0x11, 0x9e, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x89, 0x5a, 0xfe, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x97, 0xcb, 0xff, 0xe0, 0x44, 0xd0, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x17, 0x98, 0xff, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x14, 0xf3, 0x3f, 0x28, 0x88, 0x96, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x31, 0xf3, 0x3f, 0x28, 0x2a, 0xc5, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x47, 0xf3, 0x3f, 0x58, 0x5a, 0xb2, 0xd7, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xf1, 0x6b, 0xfe, 0x07, 0xc5, 0xb6, 0x72, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0xba, 0xf9, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x48, 0x38, 0xff, 0x83, 0x75, 0xeb, 0x70, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0xcc, 0xf9, 0x1f, 0xac, 0x5b, 0x87, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xb0, 0xce, 0x7f, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0xde, 0xf9, 0x1f, 0x9c, 0x08, 0xda, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0xda, 0xf3, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x85, 0x7d, 0xfe, 0x07, 0x05, 0xd1, 0xf2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x2d, 0x81, 0xfe, 0x07, 0x45, 0xa5, 0xf8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xed, 0x83, 0xfe, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xc3, 0xd0, 0xff, 0x60, 0x4d, 0xdd, 0xde, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xbd, 0x89, 0xfe, 0x07, 0x4b, 0x4b, 0xf6, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x7a, 0x46, 0xff, 0x83, 0x62, 0x5b, 0xb9, 0x3a, 0x9c, 0x62, 0x87, 0x53, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xcd, 0x89, 0x7e, 0x83, 0xd2, 0xde, 0x72, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x4c, 0x28, 0xfa, 0x0d, 0x7f, 0x2e, 0x6d, 0x30, 0xe6, 0x9f, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x13, 0xa5, 0xe8, 0x0f, 0x4e, 0x7a, 0xa2, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xf9, 0x54, 0xf4, 0x1b, 0x1e, 0x94, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xa6, 0xbe, 0x7e, 0x83, 0x92, 0x85, 0x7d, 0x96, 0x59, 0x83, 0x75, 0x21, 0x7c, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0xd5, 0x45, 0xe3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xd2, 0x7d, 0xfd, 0x86, 0x5f, 0x94, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xc9, 0x4f, 0xe3, 0x86, 0x3f, 0x97, 0x36, 0x58, 0x58, 0xd4, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x0a, 0xa6, 0xc6, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd6, 0x5b, 0x35, 0x1e, 0x84, 0x94, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x0f, 0x6b, 0x3c, 0xfc, 0x50, 0xd3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x77, 0x7e, 0xfd, 0x86, 0xbf, 0x68, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xb1, 0x5c, 0xe3, 0xc1, 0x49, 0x4f, 0x74, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x79, 0xbf, 0x7e, 0x83, 0x12, 0x1e, 0x73, 0x83, 0xd5, 0x7f, 0x8d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x47, 0xf9, 0xd7, 0x1f, 0x14, 0xdb, 0xca, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb1, 0x00, 0xf6, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x55, 0xc0, 0xfe, 0x60, 0x11, 0x9e, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x19, 0x05, 0xf6, 0x1b, 0x94, 0x12, 0xe2, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0x1c, 0xd8, 0x6f, 0xb8, 0xa4, 0x36, 0x28, 0x6a, 0xc4, 0xd7, 0xa0, 0x44, 0x57, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x4d, 0xb0, 0xdf, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0x60, 0xf5, 0x5f, 0xe3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x13, 0x83, 0xfd, 0xc1, 0x9a, 0xd9, 0xc6, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x78, 0xb0, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x2d, 0x11, 0xf6, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x6b, 0xc2, 0xfe, 0x60, 0x31, 0x72, 0xe3, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xf1, 0x16, 0xf6, 0x07, 0xa7, 0xe6, 0xb6, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xd5, 0xb0, 0x3f, 0x58, 0x84, 0xdd, 0x58, 0xab, 0xc1, 0x4a, 0xd8, 0xbc, 0x0d, 0xcf, 0x93, 0x6c, 0xb0, 0x30, 0xbc, 0x71, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xaf, 0xc3, 0x7e, 0xc3, 0x2f, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x9a, 0xc0, 0x71, 0xc3, 0x9f, 0x4b, 0x1b, 0xba, 0x01, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x26, 0xc2, 0xf1, 0xf0, 0x43, 0xcd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x04, 0x88, 0xfd, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x11, 0xb1, 0x3f, 0x58, 0x1a, 0xe2, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x74, 0x89, 0xfd, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x3e, 0xb1, 0x3f, 0x48, 0x3d, 0x8d, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x47, 0xc5, 0xfe, 0x20, 0x5d, 0x62, 0xac, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xdb, 0x59, 0xec, 0x37, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4b, 0x89, 0x1c, 0x37, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4b, 0x9f, 0x1c, 0x0f, 0x1f, 0xac, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x42, 0x2d, 0xc7, 0x0d, 0x7f, 0x2e, 0x0d, 0x2e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0xcc, 0xcc, 0xf1, 0xf0, 0x43, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x88, 0x73, 0xdc, 0xf0, 0xe7, 0xd2, 0xe0, 0xe3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcb, 0xf9, 0x1c, 0x0f, 0x4e, 0x7a, 0xa2, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0xbe, 0xd8, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xd2, 0x18, 0xfb, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x0e, 0xad, 0x2d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x47, 0xcf, 0xd8, 0x1f, 0x2c, 0xbc, 0x08, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xf0, 0xc6, 0xfe, 0xf0, 0x5e, 0x50, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0xe8, 0xd8, 0x1f, 0x9e, 0xde, 0xa9, 0xd5, 0x60, 0x19, 0x69, 0xe2, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x91, 0xea, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xd2, 0x63, 0xbf, 0xe1, 0x17, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xce, 0xec, 0xb8, 0xe1, 0xcf, 0xa5, 0x0d, 0xdd, 0x00, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x94, 0xed, 0x78, 0xf8, 0xa1, 0x66, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xf6, 0xc7, 0x7e, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0x07, 0xd9, 0x1f, 0x2c, 0x0d, 0x71, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xae, 0xc8, 0x7e, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0x1d, 0xd9, 0x1f, 0xa4, 0xbc, 0x56, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x9d, 0x64, 0x7f, 0x90, 0x2e, 0x31, 0xd6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x8d, 0x4c, 0xf6, 0x1b, 0x7e, 0x51, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x95, 0x09, 0x8f, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x95, 0x14, 0x8f, 0x87, 0x0f, 0x56, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xdd, 0xc7, 0xe3, 0x86, 0x3f, 0x97, 0x06, 0x17, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xb5, 0xf2, 0x78, 0xf8, 0xa1, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd6, 0xd7, 0x3c, 0x6e, 0xf8, 0x73, 0x69, 0xf0, 0x71, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xd5, 0x41, 0x8f, 0x07, 0x27, 0x3d, 0xd1, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x9b, 0x9e, 0xec, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x51, 0x94, 0xfd, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x45, 0xbe, 0xec, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x71, 0x53, 0xf6, 0x07, 0x0b, 0x2f, 0x02, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0xb9, 0xb2, 0x3f, 0xbc, 0x17, 0xd4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xad, 0x59, 0xf6, 0x87, 0xa7, 0x77, 0xea, 0x70, 0x8a, 0xb5, 0x06, 0xcb, 0xd6, 0x1e, 0x37, 0x3c, 0x4f, 0xb2, 0xc1, 0xea, 0xb7, 0xc7, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x64, 0x2e, 0xfb, 0x0d, 0xbf, 0x28, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x92, 0xc9, 0xc7, 0x0d, 0x7f, 0x2e, 0x6d, 0xe8, 0x06, 0xb0, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0xc2, 0xcf, 0xc7, 0xc3, 0x0f, 0x35, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x5d, 0x5f, 0xf6, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x31, 0xcc, 0xfe, 0x60, 0x69, 0x88, 0xe3, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x1d, 0x65, 0xf6, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xe2, 0xcc, 0xfe, 0x20, 0x05, 0x3a, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xc2, 0x34, 0xfb, 0x83, 0x74, 0x89, 0xb1, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x61, 0xb3, 0xdf, 0xf0, 0x8b, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x7e, 0x7e, 0xdc, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0xd6, 0x7e, 0x3c, 0x7c, 0xb0, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6b, 0xcb, 0x1f, 0x37, 0xfc, 0xb9, 0x34, 0xb8, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0xca, 0xf8, 0xc7, 0xc3, 0x0f, 0x35, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x86, 0xff, 0x71, 0xc3, 0x9f, 0x4b, 0x83, 0x8f, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x40, 0x80, 0x3c, 0x38, 0xe9, 0x89, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xef, 0x66, 0xbf, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xe3, 0xe1, 0xec, 0x37, 0x28, 0x4b, 0xde, 0x37, 0xac, 0xe0, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x31, 0x67, 0x7f, 0xb0, 0xf0, 0x22, 0x70, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x62, 0x3b, 0xfb, 0xc3, 0x7b, 0x41, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x95, 0x67, 0x7f, 0x78, 0x7a, 0xa7, 0x56, 0x83, 0x15, 0xb8, 0x7c, 0x1b, 0x9e, 0x27, 0xd9, 0x60, 0xf1, 0x0c, 0xe4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x1b, 0x9f, 0xfd, 0x86, 0x5f, 0x94, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x5d, 0x14, 0xe4, 0x86, 0x3f, 0x97, 0x36, 0x28, 0x6a, 0x8b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xe3, 0x05, 0x79, 0xf8, 0xa1, 0x66, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xe0, 0xcf, 0x7e, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0x04, 0xda, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xac, 0x41, 0xfb, 0x83, 0x95, 0xa2, 0x89, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0x1b, 0xda, 0x1f, 0x04, 0x2c, 0x6b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0x2a, 0xda, 0x1f, 0x94, 0x7e, 0xc6, 0x1d, 0x4e, 0xb1, 0x35, 0x58, 0xac, 0xd3, 0xb7, 0xe1, 0x79, 0x92, 0x0d, 0x16, 0x24, 0x42, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0x35, 0xda, 0x6f, 0xf8, 0x45, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd6, 0x77, 0x42, 0x6e, 0xf8, 0x73, 0x69, 0x83, 0xa2, 0xb6, 0x78, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb5, 0xaa, 0x90, 0x87, 0x1f, 0x6a, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x03, 0x20, 0xed, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x8b, 0xa4, 0xfd, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0xa2, 0xb4, 0x3f, 0x58, 0x29, 0x9a, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xfc, 0xa5, 0xfd, 0xe1, 0x31, 0x99, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0xdc, 0xb4, 0x3f, 0x28, 0xfd, 0x8c, 0x5b, 0x0d, 0x56, 0x2a, 0x37, 0x6e, 0x78, 0x9e, 0x64, 0x83, 0x25, 0xd4, 0x90, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x69, 0x9e, 0xf6, 0x1b, 0x7e, 0x51, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x75, 0xf7, 0x90, 0x1b, 0xfe, 0x5c, 0xda, 0xd0, 0x0d, 0x60, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xd5, 0x03, 0x91, 0x87, 0x1f, 0x6a, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xfb, 0x41, 0xed, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xca, 0xa8, 0xfd, 0xc1, 0xd2, 0x10, 0xc7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x7b, 0x4d, 0xed, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x2d, 0xaa, 0xfd, 0xc1, 0xe1, 0x55, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x92, 0x55, 0xfb, 0x83, 0x74, 0x89, 0xb1, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x6e, 0xb5, 0xdf, 0xf0, 0x8b, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0xa0, 0x89, 0xdc, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0xf8, 0x89, 0x3c, 0x7c, 0xb0, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xeb, 0x93, 0x22, 0x37, 0xfc, 0xb9, 0x34, 0xb8, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0xea, 0xaa, 0xc8, 0xc3, 0x0f, 0x35, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x0e, 0x2c, 0x72, 0xc3, 0x9f, 0x4b, 0x83, 0x8f, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x62, 0x8b, 0x3c, 0x38, 0xe9, 0x89, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x09, 0x6b, 0xbf, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x23, 0x65, 0xed, 0x37, 0x28, 0x4b, 0xde, 0x37, 0x48, 0xc1, 0x74, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x97, 0xd6, 0xfe, 0x60, 0xe1, 0x45, 0xe0, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x59, 0xb8, 0xf6, 0x87, 0xf7, 0x82, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x5c, 0xd7, 0xfe, 0xf0, 0xf4, 0x4e, 0xad, 0x06, 0xab, 0x53, 0x0f, 0x37, 0x3c, 0x4f, 0xb2, 0xc1, 0x4a, 0xcc, 0xc8, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x00, 0x5f, 0xfb, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x02, 0x6c, 0x7f, 0xb0, 0x34, 0xc4, 0x71, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xe6, 0x61, 0xfb, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x5c, 0x6c, 0x7f, 0xb0, 0x84, 0x37, 0x72, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x1a, 0x64, 0xfb, 0xc3, 0x63, 0x32, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xae, 0x6c, 0xbf, 0xe1, 0x17, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x0d, 0x1d, 0xb9, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xbd, 0x1d, 0x79, 0xf8, 0x60, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd6, 0x9a, 0x47, 0x6e, 0xf8, 0x73, 0x69, 0x70, 0x71, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x95, 0xf2, 0x91, 0x87, 0x1f, 0x6a, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x4d, 0x7f, 0xe4, 0x86, 0x3f, 0x97, 0x06, 0x1f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x91, 0x20, 0x79, 0x70, 0xd2, 0x13, 0x6d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xb4, 0xd9, 0x7e, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0x3e, 0xdb, 0x6f, 0x50, 0x96, 0xbc, 0x6f, 0xf8, 0x87, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xe4, 0x68, 0xfb, 0x83, 0x85, 0x17, 0x81, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0x55, 0xdb, 0x1f, 0xde, 0x0b, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x00, 0x6c, 0xfb, 0xc3, 0xd3, 0x3b, 0x35, 0x6b, 0xb0, 0x64, 0xc7, 0x70, 0xc3, 0xf3, 0x24, 0x1b, 0x2c, 0xa8, 0x91, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0xd6, 0xb6, 0xdf, 0xf0, 0x8b, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x6c, 0x92, 0xdc, 0xf0, 0xe7, 0xd2, 0xe0, 0xe1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8b, 0xb2, 0x24, 0x0f, 0x52, 0xaf, 0x8d, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x33, 0xbb, 0xed, 0x37, 0x7c, 0x90, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xee, 0xb7, 0xfd, 0x06, 0xc5, 0x24, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x85, 0x93, 0xdc, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0xdc, 0x93, 0x3c, 0x38, 0x6a, 0x9d, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x52, 0x43, 0xc9, 0x83, 0x30, 0x1d, 0xeb, 0xf0, 0xe0, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x2d, 0xe2, 0xf6, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x8b, 0xdc, 0xfe, 0xe0, 0x44, 0xd0, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xfe, 0xb9, 0xfd, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x50, 0xb7, 0x3f, 0x48, 0x59, 0x6e, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x8b, 0xdd, 0xfe, 0x60, 0x0d, 0xab, 0xe4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xb3, 0xbb, 0xfd, 0xc1, 0x1a, 0x5a, 0xc9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x53, 0xe3, 0xed, 0x0f, 0x8a, 0x6d, 0xe5, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x8b, 0xe8, 0xed, 0x37, 0x7c, 0x90, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x99, 0xbd, 0xfd, 0x06, 0xc5, 0x24, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x7a, 0x96, 0xdc, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0xd1, 0x96, 0x3c, 0x38, 0xed, 0x9d, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0xaa, 0x72, 0xc9, 0x83, 0x30, 0x1d, 0xeb, 0xf0, 0xe0, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xd9, 0xf8, 0xf6, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x60, 0xdf, 0xfe, 0xe0, 0x44, 0xd0, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xa9, 0xbf, 0xfd, 0xc1, 0x2a, 0x7f, 0xc9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x03, 0x03, 0xee, 0x0f, 0x8a, 0x6d, 0xe5, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x3b, 0x08, 0xee, 0x37, 0x58, 0x80, 0xd9, 0xb4, 0xc1, 0x98, 0x7f, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xe6, 0xfc, 0x7e, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x57, 0xa5, 0xdf, 0x1f, 0xa4, 0x2c, 0x37, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xbb, 0x7e, 0x7f, 0x50, 0x6c, 0x2b, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0xb7, 0xdf, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xee, 0xf7, 0xfb, 0x83, 0x35, 0x1b, 0x6f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x47, 0xc9, 0xdf, 0x1f, 0x14, 0xdb, 0xca, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0x19, 0xdc, 0x6f, 0x50, 0x90, 0xc6, 0x0e, 0x6e, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x87, 0x70, 0xbf, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x43, 0x15, 0xee, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x33, 0xc3, 0xfd, 0xc1, 0x4a, 0xd1, 0xc4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xcb, 0x20, 0xee, 0x0f, 0x8f, 0xc9, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x03, 0xc5, 0xfd, 0x41, 0xba, 0xa6, 0x53, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xad, 0x16, 0xf7, 0x1b, 0x14, 0x1d, 0xb4, 0x83, 0x97, 0x1b, 0xa4, 0xda, 0x38, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x9b, 0x71, 0xbf, 0x41, 0x41, 0x1a, 0xbb, 0x86, 0xef, 0xdb, 0x07, 0x2f, 0x37, 0x28, 0xa1, 0x63, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xc5, 0xdd, 0xe4, 0xc1, 0xf1, 0xe4, 0xe4, 0x20, 0x4c, 0xc7, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xde, 0xb8, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x09, 0x1e, 0xf7, 0x1b, 0x1e, 0x94, 0xdc, 0x20, 0xb1, 0xff, 0x68, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x05, 0xe4, 0xfe, 0xa0, 0x14, 0x52, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x86, 0xe4, 0x7e, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0x99, 0xdc, 0x1f, 0x2c, 0xf4, 0x9c, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x3e, 0xe5, 0xfe, 0xa0, 0x18, 0xa9, 0xad, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x4c, 0x96, 0xfb, 0x0d, 0x0a, 0xd2, 0xd8, 0x0d, 0x56, 0xbd, 0x4e, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xec, 0x72, 0xbf, 0x41, 0x92, 0x01, 0xe1, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xf1, 0x30, 0xf7, 0x1b, 0x1e, 0x94, 0xdc, 0xe0, 0xb0, 0x0d, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x31, 0x73, 0x7f, 0x50, 0x0a, 0xa9, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x80, 0x73, 0x7f, 0x90, 0x34, 0xe3, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x36, 0xcf, 0xfd, 0x41, 0x39, 0x01, 0xbd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xf7, 0xcf, 0xfd, 0x41, 0xca, 0x90, 0x53, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x99, 0x42, 0xf7, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x97, 0xe8, 0x7e, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0x1b, 0xdd, 0x6f, 0x78, 0x50, 0x72, 0x83, 0x44, 0x9b, 0xa8, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x82, 0xa4, 0xfb, 0x83, 0x52, 0x48, 0x7d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x8a, 0xa6, 0xfb, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xf4, 0x74, 0xbf, 0xe1, 0x41, 0xc9, 0x0d, 0xd2, 0xd1, 0xa1, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xc3, 0xa2, 0xee, 0x0f, 0x4a, 0x21, 0xf5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xf3, 0xaa, 0xee, 0x0f, 0x92, 0x66, 0x9c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xc2, 0xba, 0x3f, 0x58, 0x3b, 0x41, 0x59, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0x6c, 0xdd, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x94, 0xae, 0xfb, 0x83, 0x54, 0x54, 0xa9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xf3, 0xbe, 0xee, 0x0f, 0x16, 0xa3, 0x50, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x1a, 0x76, 0xbf, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x8b, 0xc7, 0xee, 0x37, 0xbc, 0xcd, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x5e, 0x76, 0xbf, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x23, 0xd0, 0xee, 0x37, 0x3c, 0x28, 0xb9, 0x41, 0xa2, 0x4d, 0xd4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x8c, 0xda, 0xfd, 0x41, 0x29, 0xa4, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x90, 0xdb, 0xfd, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x83, 0xbb, 0xdf, 0xf0, 0xa0, 0xe4, 0x06, 0xe9, 0xe8, 0x50, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x8d, 0x72, 0xf7, 0x07, 0xa5, 0x90, 0xfa, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xa5, 0x76, 0xf7, 0x07, 0x8b, 0x51, 0x28, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xc9, 0xbb, 0x3f, 0x58, 0xcf, 0x46, 0x59, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0xf1, 0xdd, 0x6f, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x30, 0xbf, 0xfb, 0x83, 0x54, 0x54, 0xa9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x63, 0x01, 0xef, 0x0f, 0x16, 0xa3, 0x50, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x2d, 0x78, 0xbf, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xab, 0x09, 0xef, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc0, 0xe1, 0xfd, 0x86, 0x07, 0x25, 0x37, 0x38, 0x6c, 0xc3, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0x24, 0xde, 0x1f, 0x94, 0x42, 0xea, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0x34, 0xde, 0x1f, 0x2c, 0x46, 0xa1, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xf9, 0xf1, 0xfe, 0x20, 0x15, 0x55, 0xaa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xb3, 0x24, 0xef, 0x0f, 0x12, 0x78, 0x9c, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0xaf, 0xbc, 0xdf, 0xe0, 0x38, 0x36, 0xb1, 0x41, 0x89, 0xae, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x2f, 0xe6, 0xfd, 0x86, 0xb7, 0x59, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xbb, 0x35, 0xef, 0x37, 0xfc, 0x9b, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x3f, 0xe7, 0xfd, 0x41, 0x02, 0x8f, 0xd3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xcd, 0xe7, 0xfd, 0x41, 0xd2, 0x8c, 0xd3, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xe9, 0xa1, 0xf7, 0x1b, 0x24, 0x19, 0x10, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x41, 0x7a, 0x7f, 0x70, 0x22, 0x68, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x13, 0xf5, 0x7e, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0xaa, 0xde, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x76, 0xd6, 0xfb, 0x0d, 0x0f, 0x4a, 0x6e, 0x90, 0x68, 0x13, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xf1, 0x7a, 0x7f, 0x50, 0x0a, 0xa9, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x32, 0x7b, 0x7f, 0x90, 0x34, 0xe3, 0xd4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xbd, 0xb5, 0xf7, 0x07, 0xeb, 0x0c, 0x2a, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x6b, 0x70, 0xef, 0x0f, 0x96, 0x39, 0x54, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xb8, 0x7b, 0xbf, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x6b, 0x7b, 0xef, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xf9, 0xef, 0xfd, 0xc1, 0x4a, 0xd1, 0xc4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x0b, 0x87, 0xef, 0x0f, 0x8f, 0xc9, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xcc, 0xf1, 0xfd, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x4b, 0xbe, 0xdf, 0xf0, 0xa0, 0xe4, 0x06, 0xc9, 0x6c, 0x4e, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x85, 0xcb, 0xf7, 0x07, 0xa5, 0x90, 0xfa, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x99, 0xcf, 0xf7, 0x07, 0x49, 0x33, 0x4e, 0xd5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xd4, 0xf4, 0xfd, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0xac, 0xbe, 0x3f, 0x38, 0x11, 0xb4, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x92, 0x7d, 0xbf, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xab, 0xb6, 0xef, 0x0f, 0x56, 0x78, 0x55, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xef, 0x7d, 0x7f, 0x50, 0x4e, 0x40, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x19, 0x7e, 0x7f, 0x50, 0x8c, 0xd4, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x23, 0xf9, 0xfd, 0x41, 0xb1, 0xad, 0xdc, 0xe1, 0x14, 0x6b, 0x0d, 0x96, 0x79, 0xec, 0x6d, 0x78, 0x9e, 0x64, 0x83, 0x35, 0x7c, 0x95, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xbd, 0xf4, 0xf7, 0x1b, 0x7e, 0x51, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xe5, 0x97, 0x95, 0x1b, 0xfe, 0x5c, 0xda, 0xa0, 0xa8, 0x2d, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x29, 0x69, 0xe5, 0xe1, 0x87, 0x9a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xaa, 0xfb, 0xfb, 0x0d, 0x7f, 0xd1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0xa2, 0xda, 0xca, 0x83, 0x93, 0x9e, 0xe8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x52, 0xfe, 0xfd, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0xda, 0xbf, 0x3f, 0x58, 0x04, 0xef, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x70, 0xff, 0xfd, 0xc1, 0x1a, 0xf4, 0xb7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x6b, 0x00, 0xf0, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x99, 0x00, 0xfe, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x24, 0xc0, 0x3f, 0x58, 0x8c, 0xdc, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x0c, 0x02, 0xfe, 0xe1, 0x31, 0x99, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x5e, 0xc0, 0x3f, 0x28, 0xfd, 0x8c, 0xeb, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x8c, 0x2b, 0xfa, 0x0d, 0x4a, 0x16, 0xf6, 0x59, 0x66, 0x0d, 0xd6, 0x8d, 0x38, 0x6e, 0x78, 0x9e, 0x64, 0x83, 0xb5, 0xfc, 0x95, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x31, 0x59, 0xf4, 0x1b, 0x7e, 0x51, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x05, 0xe7, 0x96, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xe5, 0xf1, 0x96, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb5, 0xfc, 0x96, 0x1b, 0xfe, 0x5c, 0xda, 0x60, 0xc5, 0xc0, 0xe5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4b, 0x13, 0x2e, 0x0f, 0x3f, 0xd4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x12, 0x8a, 0xcb, 0x0d, 0x7f, 0x2e, 0x6d, 0xe8, 0x06, 0xb0, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x42, 0x90, 0xcb, 0xc3, 0x0f, 0x35, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x9a, 0x95, 0xcb, 0x0d, 0x7f, 0x2e, 0x6d, 0xb0, 0x36, 0xe6, 0x72, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x45, 0x38, 0x97, 0x1b, 0x84, 0xd3, 0xd8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x19, 0xba, 0xdc, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x70, 0xba, 0x3c, 0x7c, 0xb0, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xeb, 0xb1, 0x2e, 0x0f, 0x3f, 0xd4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0xea, 0xb1, 0xcb, 0x83, 0x93, 0x9e, 0x68, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x78, 0xbb, 0x3c, 0x38, 0xe9, 0x89, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xbf, 0x45, 0xbf, 0xe1, 0x17, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x07, 0x78, 0xb9, 0xe1, 0xcf, 0xa5, 0x0d, 0x16, 0x1b, 0x5e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0xaa, 0xf1, 0xf2, 0xf0, 0x43, 0xcd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xa4, 0x17, 0xfd, 0x86, 0xbf, 0x68, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x75, 0xe7, 0xe5, 0xc1, 0x49, 0x4f, 0x74, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x10, 0x8c, 0x7e, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0x8a, 0xd1, 0x6f, 0x78, 0x84, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x60, 0x32, 0xfa, 0x0d, 0xff, 0xe6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x6e, 0x46, 0x7f, 0x78, 0xf0, 0x66, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x23, 0x8d, 0xfe, 0x60, 0x35, 0xf0, 0xe5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x99, 0x6b, 0xf4, 0x1b, 0xfe, 0xcd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xb7, 0x8d, 0xfe, 0xf0, 0xe0, 0xcd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xfc, 0x1b, 0xfd, 0x41, 0xba, 0xc4, 0x58, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0xcc, 0xd1, 0x1f, 0x14, 0xdb, 0xca, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x6d, 0x75, 0xf4, 0x1b, 0x14, 0xa4, 0xb1, 0x6b, 0x50, 0x42, 0xc7, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x5a, 0xf5, 0xcb, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0xc2, 0xfa, 0xcb, 0x0d, 0x7f, 0x2e, 0x6d, 0xb0, 0x7a, 0xff, 0x72, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x65, 0x02, 0x98, 0x87, 0x1f, 0x6a, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x39, 0x03, 0xe6, 0x86, 0x3f, 0x97, 0x36, 0x48, 0xf2, 0xf2, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x71, 0x06, 0xe6, 0xe1, 0x87, 0x9a, 0x0e, 0xc2, 0x74, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xcc, 0x3b, 0xfa, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x9c, 0x47, 0x7f, 0xf8, 0x8b, 0x72, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xb2, 0x3e, 0xfa, 0x83, 0xd5, 0xc0, 0x97, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0x00, 0xd2, 0x1f, 0xac, 0xc5, 0xc1, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x57, 0x90, 0x7e, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x24, 0x8b, 0xb1, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x1a, 0x4c, 0xfa, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xa5, 0x49, 0xbf, 0xe1, 0xdf, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xeb, 0x38, 0xe9, 0x0f, 0x0f, 0xde, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0x7a, 0xd2, 0x1f, 0xa4, 0x4b, 0x8c, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x11, 0x4a, 0x7f, 0x78, 0xf0, 0x66, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x6a, 0x94, 0x7e, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0x95, 0xd2, 0x1f, 0x5e, 0xf3, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x22, 0x95, 0xfe, 0x20, 0x5d, 0x62, 0xac, 0x35, 0x58, 0x28, 0x7c, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xc1, 0x4a, 0x7f, 0xb0, 0xbc, 0x0f, 0x73, 0x0d, 0x4a, 0x74, 0xe5, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xbe, 0x42, 0xfa, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x7a, 0x48, 0x7f, 0xb0, 0xce, 0x11, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x90, 0x45, 0xfa, 0x0d, 0xff, 0xe6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xd4, 0x48, 0x7f, 0x78, 0xf0, 0x66, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xef, 0x91, 0xfe, 0x60, 0x79, 0x1f, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x4d, 0x92, 0xf4, 0x07, 0x49, 0x13, 0xbf, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0x54, 0xd2, 0x1f, 0x14, 0xdb, 0xca, 0xb5, 0x1a, 0xac, 0x50, 0x44, 0xdc, 0xf0, 0x3c, 0xc9, 0x06, 0x6b, 0x6c, 0x31, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x63, 0x5e, 0xe9, 0x37, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2b, 0x90, 0x32, 0x37, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xeb, 0xa5, 0x32, 0x37, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8b, 0xbb, 0x32, 0x37, 0xfc, 0xb9, 0xb4, 0xc1, 0x8a, 0x81, 0xcb, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x96, 0xaa, 0x65, 0x1e, 0x7e, 0xa8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x25, 0x75, 0x99, 0x1b, 0xfe, 0x5c, 0xda, 0x60, 0xe5, 0x5e, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4b, 0x04, 0x33, 0x0f, 0x3f, 0xd4, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xab, 0x19, 0x33, 0x37, 0xfc, 0xb9, 0xb4, 0xc1, 0xaa, 0xc9, 0xcc, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x96, 0x67, 0x66, 0x6e, 0x10, 0x4e, 0x63, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x98, 0x34, 0xf3, 0xf0, 0x43, 0xcd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xeb, 0x5e, 0x33, 0x0f, 0x3f, 0xd4, 0xb4, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x1f, 0x4b, 0xbf, 0x41, 0xd1, 0x69, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x0a, 0x2d, 0xfd, 0xc1, 0xd2, 0x10, 0xc7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x8b, 0x6f, 0xe9, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x6f, 0x2e, 0xfd, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xdf, 0xa5, 0x3f, 0x48, 0xc1, 0x4d, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xf1, 0x97, 0xfe, 0x60, 0x2d, 0x0e, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x59, 0xc2, 0xf4, 0x07, 0xab, 0xc0, 0x33, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x9f, 0x98, 0xfe, 0xf0, 0xe0, 0x4d, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x9d, 0xc7, 0xf4, 0x1b, 0x7e, 0x51, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x25, 0xf5, 0x99, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xf5, 0xff, 0x99, 0x1b, 0xfe, 0x5c, 0xda, 0xa0, 0xbc, 0xbc, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x25, 0x83, 0xe6, 0xe1, 0x83, 0xd5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x71, 0xa1, 0xb9, 0xe1, 0xcf, 0xa5, 0x0d, 0x16, 0x76, 0x68, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x82, 0x44, 0xf3, 0xf0, 0x43, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x75, 0xd1, 0xdc, 0xf0, 0xe7, 0xd2, 0x06, 0xc7, 0x0c, 0xcf, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd6, 0xed, 0x68, 0x1e, 0x9c, 0xf4, 0x44, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x52, 0xa6, 0xdf, 0xa0, 0xe8, 0x34, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x91, 0x99, 0xfe, 0xe0, 0x44, 0xd0, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x0a, 0x34, 0xfd, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x92, 0xa6, 0x3f, 0x58, 0x93, 0xa5, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x22, 0x35, 0xfd, 0x41, 0x41, 0x91, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x6c, 0x4d, 0xbf, 0xe1, 0x2f, 0x9a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xde, 0xa6, 0x79, 0x70, 0xd2, 0x13, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0xc5, 0xa6, 0xdf, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xa9, 0xda, 0xf4, 0x07, 0x8b, 0xf0, 0xe4, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0xe8, 0xa6, 0x3f, 0x28, 0x28, 0x32, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xfd, 0xa6, 0xdf, 0xe0, 0xd4, 0x70, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x5a, 0x42, 0xfd, 0xc1, 0x1a, 0x49, 0xcd, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xf4, 0x70, 0xfa, 0x0d, 0x8a, 0x4e, 0xe3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x2b, 0xc8, 0xe9, 0x37, 0x5c, 0x52, 0x1b, 0xac, 0x1a, 0x71, 0x5c, 0x83, 0x12, 0x5d, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xd8, 0x9c, 0xfe, 0xe0, 0xa0, 0xe5, 0xd9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xad, 0xea, 0xf4, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x94, 0x9d, 0xfe, 0x60, 0x2d, 0x0e, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x09, 0xef, 0xf4, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x25, 0x9e, 0xfe, 0x60, 0x4d, 0x96, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x69, 0xf3, 0xf4, 0x87, 0x07, 0x6f, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x43, 0xeb, 0xe9, 0x0f, 0x56, 0x81, 0x67, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x87, 0x4f, 0xbf, 0xe1, 0x17, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0xd6, 0xad, 0xb9, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x83, 0xae, 0x79, 0xf8, 0x60, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x56, 0xcb, 0x6b, 0x6e, 0xf8, 0x73, 0x69, 0x70, 0x71, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x75, 0xfe, 0x9a, 0x87, 0x1f, 0x6a, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x3d, 0xc2, 0xe6, 0x86, 0x3f, 0x97, 0x06, 0x1f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x4a, 0xb1, 0x79, 0x70, 0xd2, 0x13, 0x6d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x66, 0x9f, 0x7e, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0xf4, 0xd3, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xaa, 0x7f, 0xfa, 0x83, 0xb5, 0x2b, 0x9b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0x0b, 0xd4, 0x1f, 0xde, 0x0b, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xb4, 0x82, 0xfa, 0xc3, 0xd3, 0x3b, 0x1d, 0x4e, 0xb1, 0x35, 0x58, 0x0f, 0x0d, 0xb8, 0xe1, 0x79, 0x92, 0x0d, 0x96, 0x05, 0x6d, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0x33, 0xd4, 0x6f, 0xf8, 0x45, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x96, 0x97, 0x6e, 0x6e, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x16, 0xc3, 0x6e, 0x6e, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x56, 0xee, 0x6e, 0x6e, 0xf8, 0x73, 0x69, 0x83, 0xf5, 0xc1, 0x9b, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x2c, 0x44, 0xde, 0x3c, 0xfc, 0x50, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0b, 0xa6, 0x37, 0x37, 0xfc, 0xb9, 0xb4, 0xc1, 0x8a, 0x81, 0xcb, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd6, 0x7f, 0x6f, 0x1e, 0x7e, 0xa8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x85, 0xea, 0x9b, 0x1b, 0xfe, 0x5c, 0xda, 0x60, 0x3d, 0xfc, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0b, 0xef, 0x37, 0x0f, 0x3f, 0xd4, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6b, 0x04, 0x38, 0x37, 0xfc, 0xb9, 0xb4, 0xc1, 0xaa, 0xc9, 0xcc, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xd6, 0x3c, 0x70, 0x6e, 0x10, 0x4e, 0x63, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x44, 0x83, 0xf3, 0xf0, 0x43, 0xcd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcb, 0x49, 0x38, 0x0f, 0x3f, 0xd4, 0xb4, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xfb, 0x50, 0xbf, 0xe1, 0x17, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x5e, 0xc3, 0xb9, 0xe1, 0xcf, 0xa5, 0x0d, 0x16, 0x1b, 0x5e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0x56, 0x88, 0xf3, 0xf0, 0x43, 0xcd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x93, 0x44, 0xfd, 0x86, 0xbf, 0x68, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0xcd, 0x14, 0xe7, 0xc1, 0x49, 0x4f, 0x74, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x87, 0xa2, 0x7e, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x77, 0x59, 0xd4, 0x6f, 0xf8, 0x37, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x3e, 0x8c, 0xfa, 0xc3, 0x83, 0x37, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb5, 0x1a, 0xf5, 0x07, 0x2b, 0xe0, 0x38, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xe9, 0xa8, 0x3f, 0x28, 0xb6, 0x95, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x23, 0x3f, 0xea, 0x37, 0x28, 0x0c, 0x55, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x0c, 0xa9, 0x3f, 0x58, 0x84, 0x27, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x3f, 0x52, 0xbf, 0x41, 0x41, 0x1a, 0xbb, 0xc1, 0xd2, 0x46, 0xce, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x4b, 0x4c, 0xea, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x14, 0x4a, 0xfd, 0xe1, 0x35, 0x9f, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xcb, 0x57, 0xea, 0x0f, 0x56, 0xc0, 0x71, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xe9, 0x52, 0xbf, 0xc1, 0xa9, 0xe1, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x42, 0xaa, 0xfa, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x6b, 0x55, 0x7f, 0x50, 0x12, 0xcd, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xa5, 0x55, 0x7f, 0xb0, 0x38, 0x97, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x96, 0xae, 0xfa, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xf2, 0x55, 0x7f, 0xb0, 0x0a, 0x99, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xa8, 0xb0, 0xfa, 0xc3, 0x63, 0x32, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x40, 0x56, 0x7f, 0xb0, 0x1a, 0xf8, 0xb2, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x5e, 0x98, 0xfa, 0x0d, 0x8a, 0x4e, 0xe3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xd3, 0x65, 0xea, 0x37, 0x5c, 0x52, 0x1b, 0xac, 0x1a, 0x71, 0x5c, 0x83, 0x12, 0x5d, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xb3, 0xa6, 0x7e, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0xc5, 0x71, 0x9c, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x69, 0x38, 0xf5, 0x07, 0xab, 0x90, 0x39, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x38, 0x9e, 0xfa, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xe6, 0x53, 0x7f, 0xb0, 0x16, 0x07, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x6c, 0xa0, 0xfa, 0xc3, 0x63, 0x32, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0x0e, 0xd5, 0x6f, 0xf8, 0x45, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x16, 0x5c, 0x74, 0x6e, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x56, 0x87, 0x74, 0x1e, 0x3e, 0x58, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x75, 0x2c, 0x9d, 0x1b, 0xfe, 0x5c, 0x1a, 0x5c, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x05, 0x4e, 0xe7, 0xe1, 0x87, 0x9a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x58, 0x29, 0xd4, 0xb9, 0xe1, 0xcf, 0xa5, 0xc1, 0xc7, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x16, 0x39, 0x75, 0x1e, 0x9c, 0xf4, 0x44, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x32, 0xaa, 0xdf, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x41, 0x48, 0xf5, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x4d, 0xa9, 0xfe, 0x60, 0xed, 0xca, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xf9, 0x4d, 0xf5, 0x87, 0xf7, 0x82, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x10, 0xaa, 0xfe, 0xf0, 0xf4, 0x4e, 0xb3, 0x06, 0xcb, 0xbf, 0x2a, 0x37, 0x3c, 0x4f, 0xb2, 0xc1, 0x02, 0xbc, 0xce, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x9c, 0xb3, 0xfa, 0x0d, 0xbf, 0x28, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0xca, 0xf5, 0xce, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x32, 0xfb, 0xce, 0x0d, 0x7f, 0x2e, 0x6d, 0x90, 0x56, 0x93, 0xb4, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x9a, 0x01, 0xcf, 0x83, 0xe3, 0xc9, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xac, 0x70, 0xf0, 0xdc, 0xf0, 0xe7, 0xd2, 0x06, 0x03, 0xad, 0x7e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xc5, 0x1a, 0x9e, 0x07, 0x27, 0x3d, 0xd1, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xbb, 0xd3, 0xea, 0x37, 0xfc, 0x45, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xab, 0x57, 0x3c, 0x0f, 0x4e, 0x7a, 0xa2, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xcd, 0x6b, 0xf5, 0x1b, 0x14, 0xa4, 0xb1, 0x6b, 0x50, 0x42, 0xc7, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0xc2, 0x1f, 0xcf, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0xc1, 0x2a, 0x25, 0xcf, 0x0d, 0x7f, 0x2e, 0x6d, 0xb0, 0x14, 0xca, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x35, 0x57, 0x9e, 0x87, 0x0f, 0x56, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0x60, 0x6d, 0x98, 0xe7, 0x86, 0x3f, 0x97, 0x36, 0x38, 0xc3, 0xc9, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xb0, 0xd0, 0xcd, 0xf3, 0xe0, 0x28, 0x74, 0xd2, 0x41, 0x98, 0x8e, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xdf, 0x56, 0xbf, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xe3, 0xdf, 0xea, 0x37, 0xfc, 0x9b, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x84, 0x5c, 0xfd, 0x41, 0x2a, 0xaa, 0xd4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x18, 0x5d, 0xfd, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xb4, 0xab, 0xdf, 0xf0, 0xa0, 0xe4, 0x06, 0x29, 0x27, 0x4e, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xad, 0x78, 0xf5, 0x07, 0xa5, 0x90, 0xfa, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xc5, 0x7c, 0xf5, 0x07, 0x49, 0x65, 0x49, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0xfd, 0xd5, 0x1f, 0x24, 0xf0, 0x38, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x77, 0x60, 0xfd, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x20, 0xac, 0xdf, 0xf0, 0xa0, 0xe4, 0x06, 0xc9, 0x6c, 0x4e, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x29, 0x86, 0xf5, 0x07, 0xa5, 0x90, 0xfa, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x39, 0x8a, 0xf5, 0x07, 0x49, 0x65, 0x49, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xca, 0x58, 0xbf, 0x41, 0xb1, 0xa3, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xb3, 0x63, 0xfd, 0xc1, 0x72, 0x68, 0xcf, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x0b, 0xa6, 0xeb, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x4c, 0x75, 0xfd, 0xc1, 0xba, 0x6f, 0xcf, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xa3, 0xb1, 0xeb, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xbf, 0x76, 0xfd, 0xc1, 0x89, 0xa0, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x4e, 0xef, 0xfa, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x0c, 0x5e, 0x7f, 0x70, 0x92, 0x69, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x8d, 0xbc, 0x7e, 0xc3, 0xc7, 0x51, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x81, 0xe6, 0xf5, 0x07, 0x6b, 0x0d, 0x3e, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x4a, 0xaf, 0x3f, 0x58, 0x04, 0xef, 0xd6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x65, 0xec, 0xf5, 0x07, 0x4b, 0x2b, 0x3e, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xeb, 0xbd, 0xfe, 0xf0, 0x98, 0xcc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x0d, 0xf2, 0xf5, 0x07, 0x8b, 0xf0, 0xe4, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x89, 0xac, 0xdf, 0xa0, 0x20, 0x8d, 0xdd, 0xa0, 0x2c, 0x2c, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x6c, 0xb2, 0x7e, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0x56, 0xd6, 0x1f, 0x2c, 0xf4, 0x9c, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x24, 0xb3, 0xfe, 0x60, 0x69, 0xc5, 0x67, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xa9, 0x9b, 0xf5, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xb9, 0xb3, 0x7e, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0x7f, 0xd6, 0x1f, 0xbe, 0x38, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x72, 0xb4, 0xfe, 0x60, 0xad, 0xc1, 0xe7, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x39, 0xa6, 0xf5, 0x07, 0x85, 0x97, 0x71, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa7, 0xa2, 0xd6, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x6a, 0xd5, 0xfa, 0x83, 0x75, 0xdf, 0x9e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0xb9, 0xd6, 0x1f, 0x2c, 0xad, 0xf8, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x26, 0xb6, 0xfe, 0x60, 0xad, 0xc1, 0xe7, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xdd, 0xb3, 0xf5, 0x07, 0x8b, 0xf0, 0xe4, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xb4, 0xad, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xb5, 0xb8, 0xf5, 0x07, 0x27, 0x82, 0xb6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xab, 0x78, 0xeb, 0x0f, 0x96, 0x56, 0x7c, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xf0, 0x5b, 0xbf, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x73, 0x82, 0xeb, 0x0f, 0x4e, 0x32, 0x6d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x67, 0x13, 0xd7, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x82, 0xe3, 0xfa, 0xc3, 0xa7, 0x80, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0x2a, 0xd7, 0x1f, 0xac, 0x35, 0xf8, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xa9, 0xb9, 0xfe, 0xa0, 0xf0, 0x32, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x0e, 0xe8, 0xfa, 0x83, 0x45, 0xf0, 0x6e, 0x75, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x3b, 0x58, 0x42, 0xfc, 0x79, 0xb0, 0x40, 0x3b, 0x79, 0xc3, 0x89, 0xb0, 0xc1, 0x1b, 0x83, 0xe8, 0x0f, 0xda, 0x90, 0x1d, 0x38, 0x68, 0xb0, 0x76, 0x60, 0x43, 0x31, 0x5d, 0x83, 0xc7, 0x04, 0xd1, 0x1f, 0x34, 0x88, 0x3b, 0xb0, 0xc1, 0x82, 0x86, 0xa9, 0x35, 0x14, 0xd3, 0x35, 0x78, 0x4c, 0x10, 0xfd, 0xc1, 0x2a, 0x37, 0xeb, 0x0d, 0x73, 0x3f, 0x78, 0xbc, 0x61, 0xe2, 0x36, 0x68, 0x2c, 0x39, 0x63, 0x43, 0x31, 0xdd, 0x20, 0x8a, 0x25, 0x07, 0x36, 0x4c, 0xdc, 0x1a, 0xe6, 0x7e, 0x70, 0x78, 0x43, 0x1d, 0xd9, 0xe0, 0x31, 0x41, 0xf4, 0x07, 0xcd, 0xce, 0x0e, 0x6c, 0x28, 0xa6, 0x1b, 0x44, 0xb1, 0xe4, 0xc0, 0x86, 0xb9, 0x1f, 0x3c, 0x3e, 0x88, 0x7e, 0xca, 0x81, 0xd5, 0x50, 0x4c, 0xd7, 0xe0, 0x31, 0x41, 0xf4, 0x07, 0x0b, 0x44, 0xa4, 0x37, 0xcc, 0xfd, 0xe0, 0xf1, 0x86, 0x89, 0xdb, 0xa0, 0xc9, 0x75, 0x8f, 0x0d, 0xc5, 0x74, 0x83, 0xc8, 0xb7, 0x1c, 0xd8, 0x30, 0x71, 0x6b, 0x98, 0xfb, 0xc1, 0xe1, 0x0d, 0x75, 0x64, 0x0d, 0x33, 0xb4, 0xc1, 0x1b, 0x83, 0xe8, 0x37, 0x9c, 0x08, 0x1b, 0xbc, 0x31, 0x88, 0xfe, 0xa0, 0xa1, 0x3b, 0x8a, 0x83, 0xb6, 0xf1, 0x28, 0x36, 0x14, 0xd3, 0x0d, 0x22, 0xdf, 0x72, 0x60, 0xc3, 0xc4, 0x6d, 0x10, 0x2f, 0x96, 0x03, 0x1b, 0x8a, 0xe9, 0x06, 0x91, 0x6f, 0x39, 0xb0, 0x61, 0xee, 0x07, 0x97, 0x37, 0xd4, 0x91, 0x35, 0xcc, 0xd0, 0x1a, 0x26, 0x6e, 0xc3, 0x74, 0x6e, 0x98, 0xa1, 0x35, 0x4c, 0xdc, 0x1a, 0xe6, 0x7e, 0x83, 0x70, 0x45, 0xd8, 0x50, 0x4c, 0xd7, 0xe0, 0x35, 0x42, 0xf4, 0x07, 0x4b, 0x7b, 0x9c, 0x0f, 0x1e, 0x13, 0x44, 0x7f, 0x38, 0x8f, 0x0f, 0x9a, 0xbd, 0x84, 0xd8, 0x70, 0x22, 0x6c, 0x10, 0xe3, 0x9c, 0x03, 0x07, 0xad, 0xba, 0x42, 0x1c, 0x34, 0x04, 0x0b, 0xb1, 0x1a, 0x8a, 0xe9, 0x1a, 0x3c, 0x26, 0x88, 0xfe, 0x60, 0x99, 0xc3, 0xf3, 0x86, 0xb9, 0x1f, 0x3c, 0xde, 0x30, 0x71, 0x1b, 0x34, 0x9c, 0x4e, 0xb1, 0xa1, 0x98, 0x6e, 0x10, 0xa3, 0xa0, 0x03, 0x1b, 0x26, 0x6e, 0x83, 0x98, 0xa5, 0x1c, 0xd8, 0x50, 0x4c, 0x37, 0x88, 0x51, 0xd0, 0x81, 0x0d, 0x73, 0x3f, 0x78, 0x7c, 0x10, 0x31, 0x99, 0x03, 0xab, 0xa1, 0x98, 0xae, 0xc1, 0x63, 0x82, 0xe8, 0x0f, 0x96, 0x2e, 0x53, 0x6f, 0x98, 0xfb, 0xc1, 0xe3, 0x0d, 0x13, 0xb7, 0x41, 0xeb, 0xab, 0x1f, 0x1b, 0x8a, 0xe9, 0x06, 0xb1, 0x41, 0x3a, 0xb0, 0x61, 0xe2, 0x36, 0x88, 0x59, 0xca, 0x81, 0x0d, 0xc5, 0x74, 0x83, 0xd8, 0x20, 0x1d, 0xd8, 0x30, 0xf7, 0x83, 0xc7, 0x07, 0x51, 0xc8, 0x39, 0xb0, 0x1a, 0x8a, 0xe9, 0x1a, 0x3c, 0x26, 0x88, 0xfe, 0x60, 0xa1, 0x05, 0xf6, 0x86, 0xb9, 0x1f, 0x3c, 0xde, 0x30, 0x71, 0x1b, 0xb4, 0x36, 0x88, 0xb1, 0xa1, 0x98, 0x6e, 0x10, 0x93, 0xa7, 0x03, 0x1b, 0x26, 0x6e, 0x0d, 0x73, 0x3f, 0x38, 0xbc, 0xa1, 0x8e, 0xac, 0x61, 0x86, 0xd6, 0x30, 0x71, 0x1b, 0xa6, 0x73, 0xc3, 0x0c, 0xad, 0x61, 0xe2, 0xd6, 0x30, 0xf7, 0x1b, 0x84, 0x2b, 0xc2, 0x41, 0x84, 0x65, 0x0e, 0x1c, 0xce, 0xe3, 0x83, 0x66, 0x2f, 0x21, 0x36, 0x9c, 0x08, 0x1b, 0x44, 0x8a, 0xea, 0xc0, 0x41, 0xab, 0xae, 0x10, 0x07, 0x0d, 0xc1, 0x42, 0x6c, 0x28, 0xa6, 0x1b, 0xc4, 0xe4, 0xe9, 0xc0, 0x86, 0x89, 0xdb, 0x20, 0x5e, 0x2c, 0x07, 0x36, 0x14, 0xd3, 0x0d, 0x62, 0xf2, 0x74, 0x60, 0xc3, 0xdc, 0x0f, 0x2e, 0x1f, 0x44, 0x3f, 0xe5, 0xc0, 0x6a, 0x28, 0xa6, 0x6b, 0xf0, 0x98, 0x20, 0xfa, 0x83, 0x55, 0x64, 0xd1, 0x1b, 0xe6, 0x7e, 0xf0, 0x78, 0xc3, 0xc4, 0x6d, 0xd0, 0xb0, 0x16, 0xc5, 0x86, 0x62, 0xba, 0x41, 0x9c, 0xbc, 0x0e, 0x6c, 0x98, 0xb8, 0x0d, 0x62, 0x96, 0x72, 0x60, 0x43, 0x31, 0xdd, 0x20, 0x4e, 0x5e, 0x07, 0x36, 0x4c, 0xdc, 0x06, 0xf1, 0x62, 0x39, 0xb0, 0xa1, 0x98, 0x6e, 0x10, 0x27, 0xaf, 0x03, 0x07, 0xd1, 0xe5, 0x3a, 0x30, 0x6b, 0x28, 0xa6, 0x6b, 0xf0, 0x98, 0x20, 0xfa, 0x83, 0x25, 0x51, 0xd3, 0x1b, 0xe6, 0x7e, 0xf0, 0x78, 0xc3, 0xc4, 0x6d, 0xd0, 0x3c, 0x34, 0xc4, 0x86, 0x62, 0xba, 0x41, 0x1c, 0xcd, 0x0e, 0x6c, 0x98, 0xfb, 0xc1, 0xe1, 0x0d, 0x75, 0x64, 0x0d, 0x33, 0xb4, 0xc1, 0x1b, 0x83, 0xe8, 0x37, 0x9c, 0x08, 0x1b, 0xbc, 0x31, 0x88, 0xfe, 0xa0, 0x01, 0x6d, 0x88, 0x83, 0x36, 0xb7, 0x21, 0x66, 0x0d, 0xc5, 0x74, 0x0d, 0x1e, 0x13, 0x44, 0x7f, 0xb0, 0x0a, 0x1d, 0x7a, 0xc3, 0xdc, 0x0f, 0x1e, 0x6f, 0x98, 0xb8, 0x0d, 0x1a, 0x7b, 0xb5, 0xd8, 0x50, 0x4c, 0x37, 0x88, 0x98, 0xdb, 0x81, 0x0d, 0x13, 0xb7, 0x41, 0x1c, 0xd4, 0x0e, 0x6c, 0x28, 0xa6, 0x1b, 0x44, 0xcc, 0xed, 0xc0, 0x41, 0xbc, 0x58, 0x0e, 0x1c, 0x4e, 0xb1, 0x35, 0x14, 0xd3, 0x35, 0x78, 0x4c, 0x10, 0xfd, 0xc1, 0xba, 0xdc, 0xeb, 0x0d, 0x73, 0x3f, 0x78, 0xbc, 0x61, 0xe2, 0x36, 0x68, 0xaf, 0x74, 0x63, 0x43, 0x31, 0xdd, 0x20, 0x0a, 0x75, 0x07, 0x0e, 0x62, 0x96, 0x72, 0x60, 0x35, 0x14, 0xd3, 0x35, 0x78, 0x4c, 0x10, 0xfd, 0xc1, 0x62, 0xa9, 0xe8, 0x0d, 0x73, 0x3f, 0x78, 0xbc, 0x61, 0xe2, 0x36, 0x68, 0xf8, 0x69, 0x63, 0x43, 0x31, 0xdd, 0x20, 0x8a, 0x79, 0x07, 0x36, 0x4c, 0xdc, 0x06, 0x31, 0x4b, 0x39, 0xb0, 0xa1, 0x98, 0x6e, 0x10, 0xc5, 0xbc, 0x03, 0x07, 0xf1, 0x62, 0x39, 0x30, 0x6b, 0x28, 0xa6, 0x6b, 0xf0, 0x98, 0x20, 0xfa, 0x83, 0x65, 0xa4, 0xcf, 0x1b, 0xe6, 0x7e, 0xf0, 0x78, 0xc3, 0xc4, 0x6d, 0xd0, 0xfa, 0xf9, 0xc7, 0x86, 0x62, 0xba, 0x41, 0xdc, 0xff, 0x0e, 0x6c, 0x98, 0xb8, 0x0d, 0x9a, 0xec, 0xaa, 0xd8, 0x50, 0x4c, 0x37, 0x88, 0xfb, 0xdf, 0x81, 0x83, 0xc6, 0x25, 0x35, 0x56, 0x43, 0x31, 0x5d, 0x83, 0xc7, 0x04, 0xd1, 0x1f, 0x2c, 0x3e, 0xae, 0xde, 0x30, 0xf7, 0x83, 0xc7, 0x1b, 0x26, 0x6e, 0x83, 0x66, 0x67, 0x36, 0x36, 0x14, 0xd3, 0x0d, 0xa2, 0x63, 0x78, 0x60, 0xc3, 0xc4, 0x6d, 0x10, 0xb3, 0x94, 0x03, 0x1b, 0x8a, 0xe9, 0x06, 0xd1, 0x31, 0x3c, 0x70, 0x10, 0x2f, 0x96, 0x03, 0x87, 0x53, 0xac, 0x35, 0x14, 0xd3, 0x35, 0x78, 0x4c, 0x10, 0xfd, 0xc1, 0x42, 0xee, 0xe8, 0x0d, 0x73, 0x3f, 0x78, 0xbc, 0x61, 0xe2, 0x36, 0x68, 0xea, 0xec, 0x63, 0x43, 0x31, 0xdd, 0x20, 0xea, 0x8c, 0x07, 0x36, 0x4c, 0xdc, 0x06, 0x31, 0x4b, 0x39, 0xb0, 0xa1, 0x98, 0x6e, 0x10, 0x75, 0xc6, 0x03, 0x07, 0x91, 0x6c, 0x3a, 0xb0, 0x1a, 0x8a, 0xe9, 0x1a, 0x3c, 0x26, 0x88, 0xfe, 0x60, 0x9d, 0x19, 0xf5, 0x86, 0xb9, 0x1f, 0x3c, 0xde, 0x30, 0x71, 0x1b, 0xb4, 0xd7, 0x83, 0xb1, 0xa1, 0x98, 0x6e, 0x10, 0xa3, 0xc9, 0x03, 0x1b, 0x26, 0x6e, 0x83, 0x98, 0xa5, 0x1c, 0xd8, 0x50, 0x4c, 0x37, 0x88, 0xd1, 0xe4, 0x81, 0x83, 0x78, 0xb1, 0x1c, 0x38, 0x9c, 0x62, 0x6b, 0x28, 0xa6, 0x6b, 0xf0, 0x98, 0x20, 0xfa, 0x83, 0x05, 0x63, 0xcf, 0x1b, 0xe6, 0x7e, 0xf0, 0x78, 0xc3, 0xc4, 0x6d, 0xd0, 0x84, 0xab, 0xc6, 0x86, 0x62, 0xba, 0x41, 0xdc, 0x33, 0x0f, 0x1c, 0x34, 0xd9, 0x55, 0xb1, 0x1a, 0x8a, 0xe9, 0x1a, 0x3c, 0x26, 0x88, 0xfe, 0x60, 0x55, 0xf5, 0xf3, 0x86, 0xb9, 0x1f, 0x3c, 0xde, 0x30, 0x71, 0x1b, 0xb4, 0xb9, 0xf3, 0xb1, 0xa1, 0x98, 0x6e, 0x10, 0x33, 0xcf, 0x03, 0x1b, 0xe6, 0x7e, 0x70, 0x78, 0x83, 0x05, 0x0d, 0x53, 0x1b, 0xb4, 0xeb, 0x55, 0xb1, 0x1a, 0xea, 0xc8, 0x1a, 0x66, 0x68, 0x83, 0x37, 0x06, 0xd1, 0x6f, 0x38, 0x11, 0x36, 0x78, 0x63, 0x10, 0xfd, 0x41, 0xd3, 0x45, 0x1f, 0x07, 0xad, 0x1d, 0x7d, 0x1c, 0x4e, 0xb1, 0x0e, 0xa7, 0x58, 0x6b, 0x28, 0xa6, 0x6b, 0xf0, 0x98, 0x20, 0xfa, 0x83, 0xe5, 0x38, 0xd5, 0x1b, 0xe6, 0x7e, 0xf0, 0x78, 0xc3, 0xc4, 0x6d, 0xd0, 0xcc, 0x36, 0xc5, 0x86, 0x62, 0xba, 0x41, 0x1c, 0x50, 0x0f, 0x6c, 0x98, 0xb8, 0x0d, 0xe2, 0xa0, 0x76, 0x60, 0x43, 0x31, 0xdd, 0x20, 0x0e, 0xa8, 0x07, 0x0e, 0xe2, 0xc5, 0x72, 0x60, 0x35, 0x14, 0xd3, 0x35, 0x78, 0x4c, 0x10, 0xfd, 0xc1, 0x42, 0x92, 0xea, 0x0d, 0x73, 0x3f, 0x78, 0xbc, 0x61, 0xe2, 0x36, 0x68, 0xf2, 0x26, 0x63, 0x43, 0x31, 0xdd, 0x20, 0x6a, 0xae, 0x07, 0x36, 0x4c, 0xdc, 0x06, 0x71, 0x50, 0x3b, 0xb0, 0xa1, 0x98, 0x6e, 0x10, 0x35, 0xd7, 0x03, 0x07, 0xf1, 0x62, 0x39, 0xb0, 0x1a, 0x8a, 0xe9, 0x1a, 0x3c, 0x26, 0x88, 0xfe, 0x60, 0x75, 0x0e, 0xf4, 0x86, 0xb9, 0x1f, 0x3c, 0xde, 0x30, 0x71, 0x1b, 0xb4, 0xc4, 0xb6, 0xb1, 0xa1, 0x98, 0x6e, 0x10, 0x63, 0xda, 0x03, 0x1b, 0x26, 0x6e, 0x83, 0xd6, 0xe2, 0x36, 0x36, 0x14, 0xd3, 0x0d, 0x62, 0x4c, 0x7b, 0x60, 0xc3, 0xdc, 0x6f, 0xb0, 0x6c, 0x0a, 0xfa, 0x20, 0xa2, 0x6a, 0x07, 0x66, 0x0d, 0xc5, 0x74, 0x0d, 0x1e, 0x13, 0x44, 0x7f, 0xb0, 0x0a, 0xef, 0x79, 0xc3, 0xdc, 0x0f, 0x1e, 0x6f, 0x98, 0xb8, 0x0d, 0xda, 0x30, 0xb9, 0xd8, 0x50, 0x4c, 0x37, 0x88, 0x00, 0xef, 0x81, 0x83, 0x98, 0xa5, 0x1c, 0x38, 0x9c, 0x62, 0x6b, 0x28, 0xa6, 0x6b, 0xf0, 0x98, 0x20, 0xfa, 0x83, 0xf5, 0x6a, 0xd2, 0x1b, 0xe6, 0x7e, 0xf0, 0x78, 0xc3, 0xc4, 0x6d, 0xd0, 0x9e, 0x52, 0xc5, 0x86, 0x62, 0xba, 0x41, 0x9c, 0x81, 0x0f, 0x6c, 0x98, 0xb8, 0x0d, 0x62, 0x96, 0x72, 0x60, 0x43, 0x31, 0xdd, 0x20, 0xce, 0xc0, 0x07, 0x0e, 0xe2, 0xc5, 0x72, 0x60, 0x35, 0x14, 0xd3, 0x35, 0x78, 0x4c, 0x10, 0xfd, 0xc1, 0x32, 0x80, 0xeb, 0x0d, 0x73, 0x3f, 0x78, 0xbc, 0x61, 0xe2, 0x36, 0x68, 0x26, 0xc5, 0x63, 0x43, 0x31, 0xdd, 0x20, 0x2a, 0xc7, 0x07, 0x36, 0x4c, 0xdc, 0x06, 0x31, 0x4b, 0x39, 0xb0, 0xa1, 0x98, 0x6e, 0x10, 0x95, 0xe3, 0x03, 0x07, 0xf1, 0x62, 0x39, 0xb0, 0x1a, 0x8a, 0xe9, 0x1a, 0x3c, 0x26, 0x88, 0xfe, 0x60, 0x3d, 0x5a, 0xf5, 0x86, 0xb9, 0x1f, 0x3c, 0xde, 0x30, 0x71, 0x1b, 0xb4, 0x26, 0x6e, 0xb1, 0xa1, 0x98, 0x6e, 0x10, 0xc3, 0xe6, 0x03, 0x1b, 0x26, 0x6e, 0x0d, 0x73, 0x3f, 0x38, 0xbc, 0xa1, 0x8e, 0xac, 0x61, 0x86, 0x36, 0x78, 0x63, 0x10, 0xfd, 0x86, 0x13, 0x61, 0x83, 0x37, 0x06, 0xd1, 0x1f, 0xb4, 0x32, 0x57, 0x71, 0xd0, 0x30, 0x5d, 0xc5, 0x86, 0x62, 0xba, 0x41, 0x0c, 0x9b, 0x0f, 0x6c, 0x98, 0xb8, 0x0d, 0xe2, 0xc5, 0x72, 0x60, 0x43, 0x31, 0xdd, 0x20, 0x86, 0xcd, 0x07, 0x0e, 0xa2, 0xcb, 0x75, 0xe0, 0x70, 0x8a, 0xd5, 0x1a, 0x8a, 0xe9, 0x1a, 0x3c, 0x26, 0x88, 0xfe, 0x60, 0x55, 0x91, 0xf4, 0x86, 0xb9, 0x1f, 0x3c, 0xde, 0x30, 0x71, 0x1b, 0xb4, 0xe9, 0xbb, 0xb1, 0xa1, 0x98, 0x6e, 0x10, 0xb3, 0xec, 0x03, 0x1b, 0x26, 0x6e, 0x83, 0x38, 0xa8, 0x1d, 0xd8, 0x50, 0x4c, 0x37, 0x88, 0x59, 0xf6, 0x81, 0x83, 0x78, 0xb1, 0x1c, 0x58, 0x0d, 0xc5, 0x74, 0x0d, 0x1e, 0x13, 0x44, 0x7f, 0xb0, 0xf2, 0x3d, 0x7a, 0xc3, 0xdc, 0x0f, 0x1e, 0x6f, 0x98, 0xb8, 0x0d, 0xda, 0x6b, 0xa3, 0xd8, 0x50, 0x4c, 0x37, 0x88, 0xf0, 0xf7, 0x81, 0x0d, 0x13, 0xb7, 0x41, 0x9c, 0x63, 0x0e, 0x6c, 0x28, 0xa6, 0x1b, 0x44, 0xf8, 0xfb, 0xc0, 0x86, 0x89, 0xdb, 0x20, 0x5e, 0x2c, 0x07, 0x36, 0x14, 0xd3, 0x0d, 0x22, 0xfc, 0x7d, 0x60, 0xc3, 0xdc, 0x0f, 0x2e, 0x6f, 0xa8, 0x23, 0x6b, 0x98, 0xa1, 0x35, 0x4c, 0xdc, 0x86, 0xe9, 0xdc, 0x30, 0x43, 0x6b, 0x98, 0xb8, 0x35, 0xcc, 0xfd, 0x06, 0xe1, 0x8a, 0xb0, 0xa1, 0x98, 0xae, 0x86, 0x19, 0x5a, 0xc3, 0xc4, 0xad, 0x61, 0xe2, 0xd6, 0x30, 0xf7, 0x1b, 0x04, 0xcb, 0xd2, 0x41, 0x84, 0x65, 0x0e, 0x6c, 0x98, 0xfb, 0x0d, 0x82, 0x70, 0xe9, 0x20, 0xf2, 0x3b, 0x07, 0x0e, 0xe7, 0xf1, 0x41, 0x2b, 0x9c, 0x14, 0x07, 0x61, 0xc1, 0xb4, 0x61, 0x86, 0xd6, 0x30, 0x71, 0x1b, 0xa6, 0xf3, 0x20, 0xde, 0xea, 0x07, 0x36, 0x9c, 0x08, 0x1b, 0x44, 0x0a, 0xfe, 0xc0, 0x41, 0xfb, 0xb0, 0x14, 0x87, 0xf3, 0xf8, 0xa0, 0xd9, 0x4b, 0x88, 0x0d, 0x27, 0xc2, 0x06, 0x51, 0x42, 0x3f, 0x70, 0xd0, 0xaa, 0x2b, 0xc4, 0x41, 0x43, 0xb0, 0x10, 0x87, 0x53, 0xac, 0x35, 0x14, 0xd3, 0x35, 0x78, 0x4c, 0x10, 0xfd, 0xc1, 0x4a, 0x7b, 0xe8, 0x0d, 0x73, 0x3f, 0x78, 0xbc, 0x61, 0xe2, 0x36, 0x68, 0xa8, 0xee, 0x62, 0x43, 0x31, 0xdd, 0x20, 0xaa, 0xf6, 0x07, 0x36, 0x4c, 0xdc, 0x06, 0x71, 0x50, 0x3b, 0xb0, 0xa1, 0x98, 0x6e, 0x10, 0x55, 0xfb, 0x03, 0x07, 0xf1, 0x62, 0x39, 0xb0, 0x1a, 0x8a, 0xe9, 0x1a, 0x3c, 0x26, 0x88, 0xfe, 0x60, 0xa5, 0x38, 0xf5, 0x86, 0xb9, 0x1f, 0x3c, 0xde, 0x30, 0x71, 0x1b, 0x34, 0x9e, 0xfb, 0xb1, 0xa1, 0x98, 0x6e, 0x10, 0x83, 0xfe, 0x03, 0x07, 0x31, 0x4b, 0x39, 0x70, 0x38, 0xc5, 0xd6, 0x50, 0x4c, 0xd7, 0xe0, 0x31, 0x41, 0xf4, 0x07, 0x6b, 0xf7, 0xa2, 0x37, 0xcc, 0xfd, 0xe0, 0xf1, 0x86, 0x89, 0xdb, 0xa0, 0x95, 0x5d, 0x8c, 0x0d, 0xc5, 0x74, 0x83, 0x48, 0x07, 0x20, 0xd8, 0x30, 0xf7, 0x83, 0xc3, 0x07, 0x51, 0xc8, 0x39, 0xb0, 0x1a, 0x8a, 0xe9, 0x1a, 0x3c, 0x26, 0x88, 0xfe, 0x60, 0x35, 0x13, 0xf5, 0x86, 0xb9, 0x1f, 0x3c, 0xde, 0x30, 0x71, 0x1b, 0xb4, 0x3a, 0x99, 0xb1, 0xa1, 0x98, 0x6e, 0x10, 0x73, 0x03, 0x04, 0x1b, 0x26, 0x6e, 0x83, 0x06, 0xfc, 0x29, 0x36, 0x14, 0xd3, 0x0d, 0x62, 0x6e, 0x80, 0x60, 0xc3, 0xc4, 0x6d, 0x10, 0x2f, 0x96, 0x03, 0x1b, 0x8a, 0xe9, 0x06, 0x31, 0x37, 0x40, 0x70, 0x10, 0x5d, 0xae, 0x03, 0xab, 0xa1, 0x98, 0xae, 0xc1, 0x63, 0x82, 0xe8, 0x0f, 0x56, 0x20, 0x3d, 0x6f, 0x98, 0xfb, 0xc1, 0xe3, 0x0d, 0x13, 0xb7, 0x41, 0x9b, 0x20, 0x15, 0x1b, 0x8a, 0xe9, 0x06, 0xb1, 0x78, 0x40, 0xb0, 0x61, 0xee, 0x07, 0x87, 0x37, 0xd4, 0x91, 0x35, 0xcc, 0xd0, 0x1a, 0x26, 0x6e, 0xc3, 0x74, 0x6e, 0x98, 0xa1, 0x35, 0x4c, 0xdc, 0x1a, 0x26, 0x6e, 0x83, 0x36, 0x56, 0x2a, 0x36, 0xcc, 0xfd, 0x06, 0x41, 0xb8, 0xb4, 0x61, 0x86, 0x36, 0x78, 0x63, 0x10, 0xfd, 0x86, 0x13, 0x61, 0x83, 0x37, 0x06, 0xd1, 0x1f, 0xb4, 0x21, 0x53, 0x71, 0x38, 0x8f, 0x0f, 0x5a, 0xe1, 0xa4, 0xd8, 0x70, 0x22, 0x6c, 0x10, 0xf3, 0x09, 0x04, 0x07, 0xed, 0xc3, 0x52, 0x1c, 0x34, 0x29, 0x4b, 0xb1, 0x1a, 0x8a, 0xe9, 0x1a, 0x3c, 0x26, 0x88, 0xfe, 0x60, 0x75, 0xa1, 0xf5, 0x86, 0xb9, 0x1f, 0x3c, 0xde, 0x30, 0x71, 0x1b, 0x34, 0x05, 0x9b, 0xb1, 0xa1, 0x98, 0x6e, 0x10, 0x53, 0x0e, 0x04, 0x07, 0x91, 0x2a, 0x40, 0xb0, 0x1a, 0x8a, 0xe9, 0x1a, 0x3c, 0x26, 0x88, 0xfe, 0x60, 0xcd, 0xfa, 0xf5, 0x86, 0xb9, 0x1f, 0x3c, 0xde, 0x30, 0x71, 0x1b, 0xb4, 0xce, 0xa7, 0xb1, 0xa1, 0x98, 0x6e, 0x10, 0x93, 0x10, 0x04, 0x1b, 0x26, 0x6e, 0x83, 0x38, 0xa8, 0x1d, 0xd8, 0x50, 0x4c, 0x37, 0x88, 0x49, 0x08, 0x82, 0x83, 0x78, 0xb1, 0x1c, 0x98, 0x35, 0x14, 0xd3, 0x35, 0x78, 0x4c, 0x10, 0xfd, 0xc1, 0x6a, 0x9e, 0xe9, 0x0d, 0x73, 0x3f, 0x78, 0xbc, 0x61, 0xe2, 0x36, 0x68, 0x01, 0x23, 0x63, 0x43, 0x31, 0xdd, 0x20, 0x8a, 0x27, 0x08, 0x0e, 0x62, 0x96, 0x72, 0x60, 0x35, 0x14, 0xd3, 0x35, 0x78, 0x4c, 0x10, 0xfd, 0xc1, 0x3a, 0xd0, 0xeb, 0x0d, 0x73, 0x3f, 0x78, 0xbc, 0x61, 0xe2, 0x36, 0x68, 0x3e, 0xfb, 0x63, 0x43, 0x31, 0xdd, 0x20, 0x0a, 0x2c, 0x08, 0x36, 0x4c, 0xdc, 0x06, 0x71, 0x50, 0x3b, 0xb0, 0xa1, 0x98, 0x6e, 0x10, 0x05, 0x16, 0x04, 0x07, 0x11, 0x35, 0x3a, 0x30, 0x6b, 0x28, 0xa6, 0x6b, 0xf0, 0x98, 0x20, 0xfa, 0x83, 0x05, 0x09, 0xd4, 0x1b, 0xe6, 0x7e, 0xf0, 0x78, 0xc3, 0xc4, 0x6d, 0xd0, 0x24, 0xec, 0xc6, 0x86, 0x62, 0xba, 0x41, 0xdc, 0x64, 0x10, 0x6c, 0x98, 0xb8, 0x35, 0xcc, 0xfd, 0xe0, 0xf0, 0x06, 0x0b, 0x1a, 0xa6, 0xd6, 0x30, 0x71, 0x1b, 0x34, 0xd9, 0x55, 0x71, 0x10, 0x2f, 0x96, 0x03, 0x1b, 0x34, 0x34, 0x83, 0xd1, 0x86, 0x62, 0xba, 0x41, 0xdc, 0x64, 0x10, 0x1c, 0xc4, 0x8b, 0xe5, 0xc0, 0xe1, 0x14, 0x6b, 0x0d, 0xc5, 0x74, 0x0d, 0x1e, 0x13, 0x44, 0x7f, 0xb0, 0x96, 0xe2, 0x7a, 0xc3, 0xdc, 0x0f, 0x1e, 0x6f, 0x98, 0xb8, 0x0d, 0xda, 0xda, 0xcd, 0xd8, 0x50, 0x4c, 0x37, 0x88, 0xf0, 0x0e, 0x82, 0x0d, 0x13, 0xb7, 0x41, 0xcc, 0x52, 0x0e, 0x6c, 0x28, 0xa6, 0x1b, 0x44, 0x78, 0x07, 0xc1, 0x41, 0xbc, 0x58, 0x0e, 0xcc, 0x1a, 0x8a, 0xe9, 0x1a, 0x3c, 0x26, 0x88, 0xfe, 0x60, 0x05, 0x02, 0xf6, 0x86, 0xb9, 0x1f, 0x3c, 0xde, 0x30, 0x71, 0x1b, 0xb4, 0x53, 0x9a, 0xb1, 0xa1, 0x98, 0x6e, 0x10, 0x13, 0x21, 0x04, 0x07, 0x31, 0x4b, 0x39, 0x30, 0x6b, 0x28, 0xa6, 0x6b, 0xf0, 0x98, 0x20, 0xfa, 0x83, 0x15, 0x04, 0xd6, 0x1b, 0xe6, 0x7e, 0xf0, 0x78, 0xc3, 0xc4, 0x6d, 0xd0, 0x80, 0xb2, 0xc6, 0x86, 0x62, 0xba, 0x41, 0x5c, 0x8d, 0x10, 0x6c, 0x98, 0xb8, 0x0d, 0x22, 0x16, 0x7d, 0x60, 0x43, 0x31, 0xdd, 0x20, 0xae, 0x46, 0x08, 0x36, 0x4c, 0xdc, 0x06, 0x11, 0x35, 0x3a, 0xb0, 0xa1, 0x98, 0x6e, 0x10, 0x57, 0x23, 0x04, 0x1b, 0x26, 0x6e, 0x83, 0xe8, 0x72, 0x1d, 0xd8, 0x50, 0x4c, 0x37, 0x88, 0xab, 0x11, 0x82, 0x0d, 0x73, 0x3f, 0xf8, 0x7c, 0x10, 0xfd, 0x94, 0x03, 0x87, 0x53, 0xac, 0x35, 0x14, 0xd3, 0x35, 0x78, 0x4c, 0x10, 0xfd, 0xc1, 0xf2, 0xf2, 0xe9, 0x0d, 0x73, 0x3f, 0x78, 0xbc, 0x61, 0xe2, 0x36, 0x68, 0x1b, 0x05, 0x63, 0x43, 0x31, 0xdd, 0x20, 0xaa, 0x51, 0x08, 0x36, 0x4c, 0xdc, 0x06, 0x51, 0xb2, 0x41, 0xb0, 0xa1, 0x98, 0x6e, 0x10, 0xd5, 0x28, 0x04, 0x07, 0xf1, 0x62, 0x39, 0xb0, 0x1a, 0x8a, 0xe9, 0x1a, 0x3c, 0x26, 0x88, 0xfe, 0x60, 0x21, 0x41, 0xf4, 0x86, 0xb9, 0x1f, 0x3c, 0xde, 0x30, 0x71, 0x1b, 0xb4, 0x40, 0x6f, 0xb1, 0xa1, 0x98, 0x6e, 0x10, 0x03, 0x2c, 0x04, 0x1b, 0x26, 0x6e, 0x83, 0x56, 0xf2, 0x2d, 0x36, 0x14, 0xd3, 0x0d, 0x62, 0x80, 0x85, 0x60, 0xc3, 0xdc, 0x0f, 0x1e, 0x6f, 0xa8, 0x23, 0x6b, 0x98, 0xa1, 0x35, 0x4c, 0xdc, 0x86, 0xe9, 0xdc, 0x30, 0x43, 0x6b, 0x98, 0xb8, 0x35, 0x4c, 0xdc, 0x06, 0xad, 0x66, 0x50, 0x6c, 0x98, 0xfb, 0x0d, 0x4e, 0xb4, 0x1e, 0x1b, 0x66, 0x68, 0x83, 0x37, 0x06, 0xd1, 0x6f, 0x38, 0x11, 0x36, 0x78, 0x63, 0x10, 0xfd, 0x41, 0xd3, 0x20, 0x14, 0x07, 0x21, 0xa5, 0x7c, 0xd0, 0x8e, 0x0c, 0xc5, 0x86, 0x13, 0x61, 0x83, 0xa8, 0x7a, 0x21, 0x38, 0x68, 0x38, 0x88, 0xe2, 0xa0, 0xad, 0x21, 0x8a, 0x59, 0x43, 0x31, 0x5d, 0x83, 0xc7, 0x04, 0xd1, 0x1f, 0xac, 0xd0, 0xa7, 0xde, 0x30, 0xf7, 0x83, 0xc7, 0x1b, 0x26, 0x6e, 0x83, 0x56, 0xbe, 0x35, 0x36, 0x14, 0xd3, 0x0d, 0xa2, 0x79, 0x86, 0x60, 0xc3, 0xc4, 0x6d, 0x10, 0x07, 0xb5, 0x03, 0x1b, 0x8a, 0xe9, 0x06, 0xd1, 0x3c, 0x43, 0xb0, 0x61, 0xe2, 0x36, 0x88, 0x17, 0xcb, 0x81, 0x0d, 0xc5, 0x74, 0x83, 0x68, 0x9e, 0x21, 0xd8, 0x30, 0x71, 0x1b, 0x44, 0x97, 0xeb, 0xc0, 0x86, 0x62, 0xba, 0x41, 0x34, 0xcf, 0x10, 0x1c, 0x44, 0xf8, 0x09, 0xc1, 0xac, 0xa1, 0x98, 0xae, 0xc1, 0x63, 0x82, 0xe8, 0x0f, 0x56, 0x92, 0x4d, 0x6f, 0x98, 0xfb, 0xc1, 0xe3, 0x0d, 0x13, 0xb7, 0x41, 0x4b, 0x89, 0x19, 0x1b, 0x8a, 0xe9, 0x06, 0xb1, 0x8d, 0x43, 0x70, 0x10, 0x07, 0xb5, 0x03, 0xab, 0xa1, 0x98, 0xae, 0xc1, 0x63, 0x82, 0xe8, 0x0f, 0xd6, 0xdb, 0x4d, 0x6f, 0x98, 0xfb, 0xc1, 0xe3, 0x0d, 0x13, 0xb7, 0x41, 0xa3, 0xa1, 0x18, 0x1b, 0x8a, 0xe9, 0x06, 0xb1, 0xb1, 0x43, 0xb0, 0x61, 0xe2, 0x36, 0x88, 0x59, 0xca, 0x81, 0x0d, 0xc5, 0x74, 0x83, 0xd8, 0xd8, 0x21, 0x38, 0x88, 0x17, 0xcb, 0x81, 0xd5, 0x50, 0x4c, 0xd7, 0xe0, 0x31, 0x41, 0xf4, 0x07, 0x0b, 0x53, 0x9e, 0x37, 0xcc, 0xfd, 0xe0, 0xf1, 0x86, 0x89, 0xdb, 0xa0, 0x2d, 0x7f, 0x8f, 0x0d, 0xc5, 0x74, 0x83, 0x48, 0xf2, 0x21, 0xd8, 0x30, 0xf7, 0x83, 0xc3, 0x1b, 0xea, 0xc8, 0x1a, 0x66, 0x68, 0x0d, 0x13, 0xb7, 0x61, 0x3a, 0x37, 0xcc, 0xd0, 0x1a, 0x26, 0x6e, 0x0d, 0x73, 0xbf, 0x41, 0xb8, 0x22, 0x6c, 0x98, 0xa1, 0x0d, 0xde, 0x18, 0x44, 0xbf, 0xe1, 0x44, 0xd8, 0xe0, 0x8d, 0x41, 0xf4, 0x07, 0xed, 0x31, 0x7c, 0x1c, 0xce, 0xe3, 0x83, 0x66, 0x2f, 0x21, 0x36, 0x9c, 0x08, 0x1b, 0x44, 0x2c, 0x10, 0xc1, 0x41, 0xab, 0xae, 0x10, 0x07, 0x0d, 0xc1, 0x42, 0xcc, 0x1a, 0x8a, 0xe9, 0x1a, 0x3c, 0x26, 0x88, 0xfe, 0x60, 0xb1, 0x6b, 0xf5, 0x86, 0xb9, 0x1f, 0x3c, 0xde, 0x30, 0x71, 0x1b, 0xb4, 0x07, 0x73, 0xb1, 0xa1, 0x98, 0x6e, 0x10, 0xa3, 0x44, 0x04, 0x1b, 0x26, 0x6e, 0x83, 0x38, 0xc7, 0x1c, 0xd8, 0x50, 0x4c, 0x37, 0x88, 0x51, 0x22, 0x82, 0x0d, 0x13, 0xb7, 0x41, 0xbc, 0x58, 0x0e, 0x6c, 0x28, 0xa6, 0x1b, 0xc4, 0x28, 0x11, 0xc1, 0x86, 0x89, 0xdb, 0x20, 0xba, 0x5c, 0x07, 0x36, 0x14, 0xd3, 0x0d, 0x62, 0x94, 0x88, 0xe0, 0x20, 0xc2, 0x4f, 0x08, 0x0e, 0xa7, 0x58, 0x6b, 0x28, 0xa6, 0x6b, 0xf0, 0x98, 0x20, 0xfa, 0x83, 0xb5, 0xcc, 0xd3, 0x1b, 0xe6, 0x7e, 0xf0, 0x78, 0xc3, 0xc4, 0x6d, 0xd0, 0xce, 0x8d, 0xc7, 0x86, 0x62, 0xba, 0x41, 0x5c, 0x27, 0x11, 0x6c, 0x98, 0xb8, 0x35, 0xcc, 0xfd, 0xe0, 0xf0, 0x86, 0x3a, 0xb2, 0x86, 0x19, 0xda, 0xe0, 0x8d, 0x41, 0xf4, 0x1b, 0x4e, 0x84, 0x0d, 0xde, 0x18, 0x44, 0x7f, 0xd0, 0x40, 0x90, 0xc7, 0x41, 0x9b, 0x42, 0x1e, 0x1b, 0x8a, 0xe9, 0x06, 0x71, 0x9d, 0x44, 0x70, 0x10, 0x2f, 0x96, 0x03, 0x87, 0x53, 0x6c, 0x0d, 0xc5, 0x74, 0x0d, 0x1e, 0x13, 0x44, 0x7f, 0xb0, 0xbc, 0x05, 0x7b, 0xc3, 0xdc, 0x0f, 0x1e, 0x6f, 0x98, 0xb8, 0x0d, 0xda, 0x26, 0xfe, 0xd8, 0x50, 0x4c, 0x37, 0x88, 0x68, 0x27, 0x82, 0x0d, 0x13, 0xb7, 0x41, 0xfb, 0xc9, 0x1f, 0x1b, 0x8a, 0xe9, 0x06, 0x11, 0xed, 0x44, 0x70, 0x10, 0x2f, 0x96, 0x03, 0xb3, 0x86, 0x62, 0xba, 0x06, 0x8f, 0x09, 0xa2, 0x3f, 0x58, 0xd9, 0x2c, 0xbd, 0x61, 0xee, 0x07, 0x8f, 0x37, 0x4c, 0xdc, 0x06, 0x0d, 0xdb, 0x7a, 0x6c, 0x28, 0xa6, 0x1b, 0xc4, 0x7f, 0x14, 0xc1, 0x86, 0x89, 0xdb, 0x20, 0x66, 0x29, 0x07, 0x36, 0x14, 0xd3, 0x0d, 0xe2, 0x3f, 0x8a, 0xe0, 0x20, 0x5e, 0x2c, 0x07, 0x56, 0x43, 0x31, 0x5d, 0x83, 0xc7, 0x04, 0xd1, 0x1f, 0xac, 0x24, 0x97, 0xde, 0x30, 0xf7, 0x83, 0xc7, 0x1b, 0x26, 0x6e, 0x83, 0xa6, 0x27, 0x41, 0x36, 0x14, 0xd3, 0x0d, 0xa2, 0xa5, 0x8a, 0x60, 0xc3, 0xc4, 0x6d, 0x10, 0x07, 0xb5, 0x03, 0x1b, 0x8a, 0xe9, 0x06, 0xd1, 0x52, 0x45, 0x70, 0x10, 0x2f, 0x96, 0x03, 0xab, 0xa1, 0x98, 0xae, 0xc1, 0x63, 0x82, 0xe8, 0x0f, 0x56, 0x8d, 0x4c, 0x6f, 0x98, 0xfb, 0xc1, 0xe3, 0x0d, 0x13, 0xb7, 0x41, 0xfb, 0xe5, 0x19, 0x1b, 0x8a, 0xe9, 0x06, 0xb1, 0x85, 0x45, 0xb0, 0x61, 0xe2, 0x36, 0x88, 0x58, 0xf4, 0x81, 0x0d, 0xc5, 0x74, 0x83, 0xd8, 0xc2, 0x22, 0x38, 0x88, 0x17, 0xcb, 0x81, 0xc3, 0x29, 0xb6, 0x86, 0x62, 0xba, 0x06, 0x8f, 0x09, 0xa2, 0x3f, 0x58, 0x69, 0xef, 0xbc, 0x61, 0xee, 0x07, 0x8f, 0x37, 0x4c, 0xdc, 0x06, 0x8d, 0xa4, 0x68, 0x6c, 0x28, 0xa6, 0x1b, 0xc4, 0xeb, 0x16, 0xc1, 0x86, 0x89, 0x5b, 0xc3, 0xdc, 0x0f, 0x0e, 0x6f, 0xa8, 0x23, 0x6b, 0x98, 0xa1, 0x0d, 0xde, 0x18, 0x44, 0xbf, 0xe1, 0x44, 0xd8, 0xe0, 0x8d, 0x41, 0xf4, 0x07, 0xad, 0xcb, 0x68, 0x1c, 0x34, 0x48, 0xa3, 0xb1, 0xa1, 0x98, 0x6e, 0x10, 0xaf, 0x5b, 0x04, 0x07, 0xf1, 0x62, 0x39, 0x70, 0x38, 0xc5, 0xd6, 0x50, 0x4c, 0xd7, 0xe0, 0x31, 0x41, 0xf4, 0x07, 0x2b, 0x2d, 0xa9, 0x37, 0xcc, 0xfd, 0xe0, 0xf1, 0x86, 0x89, 0xdb, 0xa0, 0x59, 0xb6, 0x8c, 0x0d, 0xc5, 0x74, 0x83, 0x48, 0x05, 0x23, 0xd8, 0x30, 0x71, 0x1b, 0xc4, 0x2c, 0xe5, 0xc0, 0x86, 0x62, 0xba, 0x41, 0xa4, 0x82, 0x11, 0x1c, 0xc4, 0x8b, 0xe5, 0xc0, 0xe1, 0x14, 0x5b, 0x43, 0x31, 0x5d, 0x83, 0xc7, 0x04, 0xd1, 0x1f, 0xac, 0x4c, 0xb7, 0xde, 0x30, 0xf7, 0x83, 0xc7, 0x1b, 0x26, 0x6e, 0x83, 0xf6, 0x58, 0x40, 0x36, 0x14, 0xd3, 0x0d, 0xa2, 0x7f, 0x8c, 0x60, 0xc3, 0xc4, 0x6d, 0x10, 0xe7, 0x98, 0x03, 0x1b, 0x8a, 0xe9, 0x06, 0xd1, 0x3f, 0x46, 0xb0, 0x61, 0xe2, 0x36, 0x88, 0x17, 0xcb, 0x81, 0x0d, 0xc5, 0x74, 0x83, 0xe8, 0x1f, 0x23, 0x38, 0x88, 0x2e, 0xd7, 0x81, 0xd5, 0x50, 0x4c, 0xd7, 0xe0, 0x31, 0x41, 0xf4, 0x07, 0x8b, 0x90, 0x9d, 0x37, 0xcc, 0xfd, 0xe0, 0xf1, 0x86, 0x89, 0xdb, 0xa0, 0xc1, 0x3a, 0x90, 0x0d, 0xc5, 0x74, 0x83, 0xc8, 0x40, 0x23, 0x38, 0x68, 0x3d, 0x0f, 0xe4, 0x70, 0x8a, 0xb5, 0x86, 0x62, 0xba, 0x06, 0x8f, 0x09, 0xa2, 0x3f, 0x58, 0xe5, 0x7c, 0xbd, 0x61, 0xee, 0x07, 0x8f, 0x37, 0x4c, 0xdc, 0x06, 0x4d, 0x79, 0x6d, 0x6c, 0x28, 0xa6, 0x1b, 0xc4, 0x9f, 0x1a, 0xc1, 0x86, 0x89, 0xdb, 0x20, 0x66, 0x29, 0x07, 0x36, 0x14, 0xd3, 0x0d, 0xe2, 0x4f, 0x8d, 0xe0, 0x20, 0x5e, 0x2c, 0x07, 0x56, 0x43, 0x31, 0x5d, 0x83, 0xc7, 0x04, 0xd1, 0x1f, 0x2c, 0xb2, 0xac, 0xde, 0x30, 0xf7, 0x83, 0xc7, 0x1b, 0x26, 0x6e, 0x83, 0xe6, 0x70, 0x35, 0x36, 0x14, 0xd3, 0x0d, 0xa2, 0xb5, 0x8d, 0x60, 0xc3, 0xc4, 0x6d, 0x10, 0xe7, 0x98, 0x03, 0x1b, 0x8a, 0xe9, 0x06, 0xd1, 0xda, 0x46, 0xb0, 0x61, 0xe2, 0x36, 0x88, 0x17, 0xcb, 0x81, 0x0d, 0xc5, 0x74, 0x83, 0x68, 0x6d, 0x23, 0x38, 0x88, 0x2e, 0xd7, 0x81, 0xd5, 0x50, 0x4c, 0xd7, 0xe0, 0x31, 0x41, 0xf4, 0x07, 0x0b, 0x8e, 0xae, 0x37, 0xcc, 0xfd, 0xe0, 0xf1, 0x86, 0x89, 0xdb, 0xa0, 0x11, 0x44, 0x88, 0x0d, 0xc5, 0x74, 0x83, 0x48, 0x8e, 0x23, 0x38, 0x88, 0x54, 0x01, 0x82, 0xd5, 0x50, 0x4c, 0xd7, 0xe0, 0x31, 0x41, 0xf4, 0x07, 0x4b, 0x95, 0xac, 0x37, 0xcc, 0xfd, 0xe0, 0xf1, 0x86, 0x89, 0xdb, 0xa0, 0x25, 0xa3, 0x8b, 0x0d, 0xc5, 0x74, 0x83, 0x48, 0xa0, 0x23, 0xd8, 0x30, 0x71, 0x6b, 0x98, 0xfb, 0xc1, 0xe1, 0x0d, 0x75, 0x64, 0x0d, 0x33, 0xb4, 0x86, 0x89, 0xdb, 0x30, 0x9d, 0x1b, 0x66, 0x68, 0x0d, 0x13, 0xb7, 0x86, 0x89, 0xdb, 0xa0, 0x8d, 0x95, 0x8a, 0x0d, 0x73, 0xbf, 0x41, 0x10, 0x2e, 0x6d, 0x28, 0xa6, 0xab, 0x61, 0x86, 0xd6, 0x30, 0x71, 0x6b, 0x98, 0xfb, 0x0d, 0xc2, 0x15, 0x61, 0x43, 0x31, 0x5d, 0x83, 0xd7, 0x08, 0xd1, 0x1f, 0xac, 0xce, 0xf1, 0x3e, 0x88, 0xc0, 0xda, 0x81, 0xc3, 0x79, 0x7c, 0xd0, 0x76, 0xc0, 0xc5, 0x41, 0x00, 0x25, 0x6c, 0x98, 0xa1, 0x35, 0x4c, 0xdc, 0x86, 0xe9, 0x3c, 0x88, 0x2d, 0x3c, 0x82, 0x0d, 0x27, 0xc2, 0x06, 0x51, 0xaf, 0x47, 0x70, 0xd0, 0x16, 0xc3, 0xc5, 0xe1, 0x3c, 0x3e, 0x68, 0x85, 0x93, 0x62, 0xc3, 0x89, 0xb0, 0x41, 0x7c, 0xda, 0x11, 0x1c, 0xb4, 0x0f, 0x4b, 0x71, 0xd0, 0xa4, 0x2c, 0xc5, 0x86, 0x62, 0xba, 0x41, 0x24, 0xd0, 0x11, 0x6c, 0x98, 0xb8, 0x0d, 0xe2, 0xc5, 0x72, 0x60, 0x43, 0x31, 0xdd, 0x20, 0x12, 0xe8, 0x08, 0x0e, 0xa2, 0xcb, 0x75, 0x60, 0xd6, 0x50, 0x4c, 0xd7, 0xe0, 0x31, 0x41, 0xf4, 0x07, 0x4b, 0xb1, 0xa4, 0x37, 0xcc, 0xfd, 0xe0, 0xf1, 0x86, 0x89, 0xdb, 0xa0, 0x19, 0x58, 0x8c, 0x0d, 0xc5, 0x74, 0x83, 0x48, 0xfd, 0x23, 0x38, 0x88, 0x59, 0xca, 0x81, 0xc3, 0x29, 0xd6, 0x1a, 0x8a, 0xe9, 0x1a, 0x3c, 0x26, 0x88, 0xfe, 0x60, 0x41, 0xb7, 0xf3, 0x86, 0xb9, 0x1f, 0x3c, 0xde, 0x30, 0x71, 0x1b, 0x34, 0xc9, 0xbc, 0xb1, 0xa1, 0x98, 0x6e, 0x10, 0x13, 0x82, 0x04, 0x1b, 0x26, 0x6e, 0x0d, 0x73, 0x3f, 0x38, 0xbc, 0xa1, 0x8e, 0xac, 0x61, 0x86, 0x36, 0x78, 0x63, 0x10, 0xfd, 0x86, 0x13, 0x61, 0x83, 0x37, 0x06, 0xd1, 0x1f, 0xb4, 0x65, 0xbd, 0x71, 0xd0, 0xfc, 0xf5, 0xc6, 0x86, 0x62, 0xba, 0x41, 0x4c, 0x08, 0x12, 0x6c, 0x98, 0xfb, 0xc1, 0xe3, 0x0d, 0x75, 0x64, 0x0d, 0x33, 0xb4, 0xc1, 0x1b, 0x83, 0xe8, 0x37, 0x9c, 0x08, 0x1b, 0xbc, 0x31, 0x88, 0xfe, 0xa0, 0xa5, 0x62, 0x8e, 0x83, 0xc6, 0x8d, 0x39, 0x56, 0xc3, 0xdc, 0x0f, 0x1e, 0x6f, 0x98, 0xb8, 0x0d, 0x62, 0x96, 0x72, 0xe0, 0x20, 0x5e, 0x2c, 0x07, 0x56, 0x43, 0x31, 0x5d, 0x83, 0xc7, 0x04, 0xd1, 0x1f, 0xac, 0x0f, 0xac, 0xde, 0x30, 0xf7, 0x83, 0xc7, 0x1b, 0x26, 0x6e, 0x83, 0x86, 0x8c, 0x32, 0x36, 0x14, 0xd3, 0x0d, 0xa2, 0x33, 0x91, 0x60, 0xc3, 0xc4, 0x6d, 0x10, 0xb1, 0xe8, 0x03, 0x1b, 0x8a, 0xe9, 0x06, 0xd1, 0x99, 0x48, 0xb0, 0x61, 0xe2, 0x36, 0x88, 0x17, 0xcb, 0x81, 0x0d, 0xc5, 0x74, 0x83, 0xe8, 0x4c, 0x24, 0x38, 0x88, 0x2e, 0xd7, 0x81, 0xd5, 0x50, 0x4c, 0xd7, 0xe0, 0x31, 0x41, 0xf4, 0x07, 0x8b, 0xb9, 0xaf, 0x37, 0xcc, 0xfd, 0xe0, 0xf1, 0x86, 0x89, 0xdb, 0xa0, 0xad, 0x5e, 0x8b, 0x0d, 0xc5, 0x74, 0x83, 0xc8, 0x6d, 0x24, 0x38, 0x88, 0x59, 0xca, 0x81, 0xc3, 0x29, 0xd6, 0x1a, 0x8a, 0xe9, 0x1a, 0x3c, 0x26, 0x88, 0xfe, 0x60, 0xf9, 0xaa, 0xf3, 0x86, 0xb9, 0x1f, 0x3c, 0xde, 0x30, 0x71, 0x1b, 0xb4, 0x58, 0x8c, 0xb1, 0xa1, 0x98, 0x6e, 0x10, 0x23, 0x90, 0x04, 0x1b, 0x26, 0x6e, 0x83, 0x56, 0x95, 0x31, 0x36, 0x14, 0xd3, 0x0d, 0x62, 0x04, 0x92, 0xe0, 0x20, 0x5e, 0x2c, 0x07, 0x0e, 0xa7, 0x58, 0x6b, 0x28, 0xa6, 0x6b, 0xf0, 0x98, 0x20, 0xfa, 0x83, 0x05, 0x0e, 0xd5, 0x1b, 0xe6, 0x7e, 0xf0, 0x78, 0xc3, 0xc4, 0x6d, 0xd0, 0x14, 0xb2, 0xc5, 0x86, 0x62, 0xba, 0x41, 0xdc, 0x4d, 0x12, 0x6c, 0x98, 0xb8, 0x0d, 0x62, 0x96, 0x72, 0x60, 0x43, 0x31, 0xdd, 0x20, 0xee, 0x26, 0x09, 0x0e, 0x22, 0xd9, 0x74, 0x60, 0xd6, 0x50, 0x4c, 0xd7, 0xe0, 0x31, 0x41, 0xf4, 0x07, 0x8b, 0x27, 0xa4, 0x37, 0xcc, 0xfd, 0xe0, 0xf1, 0x86, 0x89, 0xdb, 0xa0, 0x21, 0x0d, 0x90, 0x0d, 0xc5, 0x74, 0x83, 0x48, 0xb5, 0x24, 0xd8, 0x30, 0x71, 0x1b, 0xc4, 0x2c, 0xe5, 0xc0, 0x86, 0x62, 0xba, 0x41, 0xa4, 0x5a, 0x12, 0x6c, 0x98, 0xb8, 0x0d, 0xe2, 0xc5, 0x72, 0x60, 0x43, 0x31, 0xdd, 0x20, 0x52, 0x2d, 0x09, 0x0e, 0xa2, 0xcb, 0x75, 0xe0, 0x70, 0x8a, 0xad, 0xa1, 0x98, 0xae, 0xc1, 0x63, 0x82, 0xe8, 0x0f, 0x16, 0x1d, 0x5e, 0x6f, 0x98, 0xfb, 0xc1, 0xe3, 0x0d, 0x13, 0xb7, 0x41, 0x63, 0x69, 0x15, 0x1b, 0x8a, 0xe9, 0x06, 0xb1, 0xae, 0x49, 0xb0, 0x61, 0xe2, 0x36, 0x88, 0x58, 0xf4, 0x81, 0x0d, 0xc5, 0x74, 0x83, 0x58, 0xd7, 0x24, 0x38, 0x88, 0xa8, 0xd1, 0x81, 0x59, 0x43, 0x31, 0x5d, 0x83, 0xc7, 0x04, 0xd1, 0x1f, 0xac, 0x95, 0x89, 0xde, 0x30, 0xf7, 0x83, 0xc7, 0x1b, 0x26, 0x6e, 0x83, 0x36, 0x0a, 0x40, 0x36, 0x14, 0xd3, 0x0d, 0xa2, 0xc3, 0x93, 0x60, 0xc3, 0xc4, 0x6d, 0x10, 0xb3, 0x94, 0x03, 0x1b, 0x8a, 0xe9, 0x06, 0xd1, 0xe1, 0x49, 0xb0, 0x61, 0xe2, 0x36, 0x88, 0x17, 0xcb, 0x81, 0x0d, 0xc5, 0x74, 0x83, 0xe8, 0xf0, 0x24, 0xd8, 0x30, 0x71, 0x1b, 0x44, 0x97, 0xeb, 0xc0, 0x86, 0x62, 0xba, 0x41, 0x74, 0x78, 0x12, 0x1c, 0x44, 0xf8, 0x09, 0xc1, 0x6a, 0x28, 0xa6, 0x6b, 0xf0, 0x98, 0x20, 0xfa, 0x83, 0xe5, 0xbf, 0xd1, 0x1b, 0xe6, 0x7e, 0xf0, 0x78, 0xc3, 0xc4, 0x6d, 0xd0, 0x62, 0xfa, 0xc5, 0x86, 0x62, 0xba, 0x41, 0x9c, 0x8c, 0x12, 0x6c, 0x98, 0xb8, 0x0d, 0x62, 0x96, 0x72, 0x60, 0x43, 0x31, 0xdd, 0x20, 0x4e, 0x46, 0x09, 0x0e, 0xe2, 0xc5, 0x72, 0x60, 0x35, 0x14, 0xd3, 0x35, 0x78, 0x4c, 0x10, 0xfd, 0xc1, 0xda, 0x4c, 0xe7, 0x0d, 0x73, 0x3f, 0x78, 0xbc, 0x61, 0xe2, 0x36, 0x68, 0x7a, 0xf0, 0x62, 0x43, 0x31, 0xdd, 0x20, 0xaa, 0x4c, 0x09, 0x36, 0xcc, 0xfd, 0xe0, 0xf0, 0x86, 0x3a, 0xb2, 0x86, 0x19, 0xda, 0xe0, 0x8d, 0x41, 0xf4, 0x1b, 0x4e, 0x84, 0x0d, 0xde, 0x18, 0x44, 0x7f, 0xd0, 0x38, 0xe3, 0xc5, 0x41, 0x7b, 0x8e, 0x17, 0xab, 0xa1, 0x98, 0xae, 0xc1, 0x63, 0x82, 0xe8, 0x0f, 0xd6, 0x0b, 0x42, 0x6f, 0x98, 0xfb, 0xc1, 0xe3, 0x0d, 0x13, 0xb7, 0x41, 0x5b, 0xd7, 0x19, 0x1b, 0x8a, 0xe9, 0x06, 0xb1, 0xa3, 0x4a, 0xb0, 0x61, 0xe2, 0x36, 0x88, 0x59, 0xca, 0x81, 0x0d, 0xc5, 0x74, 0x83, 0xd8, 0x51, 0x25, 0x38, 0x88, 0x17, 0xcb, 0x81, 0x59, 0x43, 0x31, 0x5d, 0x83, 0xc7, 0x04, 0xd1, 0x1f, 0x2c, 0x17, 0x95, 0xde, 0x30, 0xf7, 0x83, 0xc7, 0x1b, 0x26, 0x6e, 0x83, 0x16, 0xea, 0x35, 0x36, 0x14, 0xd3, 0x0d, 0xa2, 0xad, 0x95, 0xe0, 0x20, 0x66, 0x29, 0x07, 0x66, 0x0d, 0xc5, 0x74, 0x0d, 0x1e, 0x13, 0x44, 0x7f, 0xb0, 0xae, 0xda, 0x7a, 0xc3, 0xdc, 0x0f, 0x1e, 0x6f, 0x98, 0xb8, 0x0d, 0x5a, 0xfb, 0xd7, 0xd8, 0x50, 0x4c, 0x37, 0x88, 0xd8, 0x57, 0x82, 0x0d, 0x13, 0xb7, 0x41, 0xcc, 0x52, 0x0e, 0x6c, 0x28, 0xa6, 0x1b, 0x44, 0xec, 0x2b, 0xc1, 0x86, 0x89, 0xdb, 0x20, 0x5e, 0x2c, 0x07, 0x36, 0x14, 0xd3, 0x0d, 0x22, 0xf6, 0x95, 0xe0, 0x20, 0xba, 0x5c, 0x07, 0x0e, 0xa7, 0x58, 0x6b, 0x28, 0xa6, 0x6b, 0xf0, 0x98, 0x20, 0xfa, 0x83, 0x35, 0x9a, 0xd6, 0x1b, 0xe6, 0x7e, 0xf0, 0x78, 0xc3, 0xc4, 0x6d, 0xd0, 0xdc, 0x12, 0xc6, 0x86, 0x62, 0xba, 0x41, 0xdc, 0xcf, 0x12, 0x6c, 0x98, 0xb8, 0x0d, 0xe2, 0x1c, 0x73, 0x60, 0x43, 0x31, 0xdd, 0x20, 0xee, 0x67, 0x09, 0x36, 0xcc, 0xfd, 0xe0, 0xf1, 0x86, 0x3a, 0xb2, 0x86, 0x19, 0x5a, 0xc3, 0xc4, 0x6d, 0x98, 0xce, 0x0d, 0x33, 0xb4, 0x86, 0x89, 0x5b, 0xc3, 0xdc, 0x6f, 0x10, 0xae, 0x08, 0x1b, 0x8a, 0xe9, 0x6a, 0x98, 0xa1, 0x35, 0x4c, 0xdc, 0x1a, 0x26, 0x6e, 0x0d, 0x73, 0xbf, 0x41, 0xb0, 0x2c, 0x1d, 0x44, 0x47, 0x1e, 0xc1, 0x41, 0x9c, 0xda, 0x0f, 0x1c, 0xce, 0xe3, 0x83, 0x56, 0x38, 0x29, 0x0e, 0xc2, 0x82, 0x69, 0xc3, 0x0c, 0xad, 0x61, 0xe2, 0x36, 0x4c, 0xe7, 0x41, 0x5c, 0xe2, 0x12, 0x6c, 0x38, 0x11, 0x36, 0x88, 0x75, 0x5d, 0x82, 0x83, 0xf6, 0x61, 0x29, 0x0e, 0xe7, 0xf1, 0x41, 0xb3, 0x97, 0x10, 0x1b, 0x4e, 0x84, 0x0d, 0xa2, 0xe9, 0x96, 0xe0, 0xa0, 0x55, 0x57, 0x88, 0x83, 0x86, 0x60, 0x21, 0x56, 0x43, 0x31, 0x5d, 0x83, 0xc7, 0x04, 0xd1, 0x1f, 0xac, 0x6f, 0x7c, 0xde, 0x30, 0xf7, 0x83, 0xc7, 0x1b, 0x26, 0x6e, 0x83, 0xc6, 0x15, 0x35, 0x36, 0x14, 0xd3, 0x0d, 0xa2, 0xbd, 0x97, 0x60, 0xc3, 0xc4, 0x6d, 0xd0, 0x64, 0x57, 0xc5, 0x86, 0x62, 0xba, 0x41, 0xb4, 0xf7, 0x12, 0x1c, 0x34, 0x2e, 0xa9, 0xb1, 0x1a, 0x8a, 0xe9, 0x1a, 0x3c, 0x26, 0x88, 0xfe, 0x60, 0xe9, 0x8d, 0xf4, 0x86, 0xb9, 0x1f, 0x3c, 0xde, 0x30, 0x71, 0x1b, 0xb4, 0xab, 0x97, 0xb1, 0xa1, 0x98, 0x6e, 0x10, 0x13, 0xc1, 0x04, 0x1b, 0x26, 0x6e, 0x83, 0x38, 0xc7, 0x1c, 0xd8, 0x50, 0x4c, 0x37, 0x88, 0x89, 0x60, 0x82, 0x0d, 0x73, 0x3f, 0x78, 0x7c, 0x10, 0xc7, 0xf3, 0x03, 0xab, 0xa1, 0x98, 0xae, 0xc1, 0x63, 0x82, 0xe8, 0x0f, 0x16, 0xd7, 0x58, 0x6f, 0x98, 0xfb, 0xc1, 0xe3, 0x0d, 0x13, 0xb7, 0x41, 0xf3, 0x01, 0x18, 0x1b, 0x8a, 0xe9, 0x06, 0xb1, 0x48, 0x4c, 0x70, 0x10, 0xa9, 0x02, 0x04, 0xab, 0xa1, 0x98, 0xae, 0xc1, 0x63, 0x82, 0xe8, 0x0f, 0x56, 0x35, 0x46, 0x6f, 0x98, 0xfb, 0xc1, 0xe3, 0x0d, 0x13, 0xb7, 0x41, 0x0b, 0xd8, 0x16, 0x1b, 0x8a, 0xe9, 0x06, 0xb1, 0x6c, 0x4c, 0x70, 0x10, 0xa9, 0x02, 0x04, 0xb3, 0x86, 0x62, 0xba, 0x06, 0x8f, 0x09, 0xa2, 0x3f, 0x58, 0x37, 0x3a, 0xbd, 0x61, 0xee, 0x07, 0x8f, 0x37, 0x4c, 0xdc, 0x06, 0x6d, 0xf8, 0x80, 0x6c, 0x28, 0xa6, 0x1b, 0xc4, 0x43, 0x32, 0xc1, 0x86, 0x89, 0xdb, 0x20, 0x8a, 0x97, 0x08, 0x36, 0x14, 0xd3, 0x0d, 0xe2, 0x21, 0x99, 0x60, 0xc3, 0xc4, 0x6d, 0x10, 0x2f, 0x96, 0x03, 0x1b, 0x8a, 0xe9, 0x06, 0xf1, 0x90, 0x4c, 0xb0, 0x61, 0xe2, 0xd6, 0x30, 0xf7, 0x83, 0xcb, 0x1b, 0xea, 0xc8, 0x1a, 0x66, 0x68, 0x83, 0x37, 0x06, 0xd1, 0x6f, 0x38, 0x11, 0x36, 0x78, 0x63, 0x10, 0xfd, 0x41, 0x13, 0x4f, 0x20, 0x07, 0xad, 0x42, 0x81, 0x6c, 0x28, 0xa6, 0x1b, 0xc4, 0x43, 0x32, 0xc1, 0x41, 0x84, 0x9f, 0x10, 0x1c, 0x4e, 0xb1, 0x35, 0x14, 0xd3, 0x35, 0x78, 0x4c, 0x10, 0xfd, 0xc1, 0x0a, 0x48, 0xe9, 0x0d, 0x73, 0x3f, 0x78, 0xbc, 0x61, 0xe2, 0x36, 0x68, 0x8d, 0xd4, 0x62, 0x43, 0x31, 0xdd, 0x20, 0xca, 0x9f, 0x09, 0x0e, 0x62, 0x96, 0x72, 0x60, 0x35, 0x14, 0xd3, 0x35, 0x78, 0x4c, 0x10, 0xfd, 0xc1, 0x5a, 0x37, 0xe7, 0x0d, 0x73, 0x3f, 0x78, 0xbc, 0x61, 0xe2, 0x36, 0x68, 0x77, 0xe4, 0x63, 0x43, 0x31, 0xdd, 0x20, 0x4a, 0xa4, 0x09, 0x0e, 0xda, 0x3d, 0xf9, 0x38, 0x9c, 0x62, 0xad, 0xa1, 0x98, 0xae, 0xc1, 0x63, 0x82, 0xe8, 0x0f, 0xd6, 0x0c, 0x3a, 0x6f, 0x98, 0xfb, 0xc1, 0xe3, 0x0d, 0x13, 0xb7, 0x41, 0xf3, 0x1e, 0x1b, 0x1b, 0x8a, 0xe9, 0x06, 0xb1, 0x48, 0x4d, 0x70, 0x10, 0x15, 0xa8, 0x04, 0x87, 0x53, 0x6c, 0x0d, 0xc5, 0x74, 0x0d, 0x1e, 0x13, 0x44, 0x7f, 0xb0, 0x82, 0x08, 0x7b, 0xc3, 0xdc, 0x0f, 0x1e, 0x6f, 0x98, 0xb8, 0x0d, 0x9a, 0x07, 0xfd, 0xd8, 0x50, 0x4c, 0x37, 0x88, 0x78, 0x6b, 0x82, 0x83, 0x16, 0xdb, 0x06, 0x56, 0x43, 0x31, 0x5d, 0x83, 0xc7, 0x04, 0xd1, 0x1f, 0x2c, 0xce, 0x7d, 0xde, 0x30, 0xf7, 0x83, 0xc7, 0x1b, 0x26, 0x6e, 0x83, 0x06, 0x1a, 0x32, 0x36, 0x14, 0xd3, 0x0d, 0xa2, 0x25, 0x9b, 0xe0, 0x20, 0x52, 0x05, 0x08, 0x66, 0x0d, 0xc5, 0x74, 0x0d, 0x1e, 0x13, 0x44, 0x7f, 0xb0, 0x32, 0xee, 0x7a, 0xc3, 0xdc, 0x0f, 0x1e, 0x6f, 0x98, 0xb8, 0x0d, 0x9a, 0x9a, 0xdc, 0xd8, 0x50, 0x4c, 0x37, 0x88, 0xb8, 0x6d, 0x82, 0x0d, 0x13, 0xb7, 0x41, 0x9c, 0x63, 0x0e, 0x6c, 0x28, 0xa6, 0x1b, 0x44, 0xdc, 0x36, 0xc1, 0x86, 0x89, 0xdb, 0x20, 0x5e, 0x2c, 0x07, 0x36, 0x14, 0xd3, 0x0d, 0x22, 0x6e, 0x9b, 0xe0, 0x20, 0xba, 0x5c, 0x07, 0x0e, 0xa7, 0x58, 0xad, 0xa1, 0x98, 0xae, 0xc1, 0x63, 0x82, 0xe8, 0x0f, 0xd6, 0x38, 0x47, 0x6f, 0x98, 0xfb, 0xc1, 0xe3, 0x0d, 0x13, 0xb7, 0x41, 0xbb, 0x41, 0x1b, 0x1b, 0x8a, 0xe9, 0x06, 0xb1, 0xfb, 0x4d, 0xb0, 0x61, 0xe2, 0x36, 0x88, 0x59, 0xca, 0x81, 0x0d, 0xc5, 0x74, 0x83, 0xd8, 0xfd, 0x26, 0x38, 0x88, 0x17, 0xcb, 0x81, 0xd5, 0x50, 0x4c, 0xd7, 0xe0, 0x31, 0x41, 0xf4, 0x07, 0x4b, 0xb8, 0xa0, 0x37, 0xcc, 0xfd, 0xe0, 0xf1, 0x86, 0x89, 0xdb, 0xa0, 0x65, 0xfa, 0x89, 0x0d, 0xc5, 0x74, 0x83, 0x48, 0x17, 0x27, 0xd8, 0x30, 0x71, 0x1b, 0xc4, 0x41, 0xed, 0xc0, 0x86, 0x62, 0xba, 0x41, 0xa4, 0x8b, 0x13, 0x6c, 0x98, 0xb8, 0x35, 0xcc, 0xfd, 0xe0, 0xf1, 0x86, 0x3a, 0xb2, 0x86, 0x19, 0xda, 0xe0, 0x8d, 0x41, 0xf4, 0x1b, 0x4e, 0x84, 0x0d, 0xde, 0x18, 0x44, 0x7f, 0xd0, 0x8a, 0x00, 0xc5, 0x41, 0xc3, 0x03, 0x14, 0x1b, 0x8a, 0xe9, 0x06, 0x91, 0x2e, 0x4e, 0xb0, 0x61, 0xee, 0x07, 0x97, 0x0f, 0xe2, 0xde, 0x85, 0x60, 0x35, 0x14, 0xd3, 0x35, 0x78, 0x4c, 0x10, 0xfd, 0xc1, 0xa2, 0x02, 0xe9, 0x0d, 0x73, 0x3f, 0x78, 0xbc, 0x61, 0xe2, 0x36, 0x68, 0x4d, 0x24, 0x63, 0x43, 0x31, 0xdd, 0x20, 0xea, 0xd1, 0x09, 0x36, 0x4c, 0xdc, 0x06, 0x31, 0x4b, 0x39, 0xb0, 0xa1, 0x98, 0x6e, 0x10, 0xf5, 0xe8, 0x04, 0x1b, 0x26, 0x6e, 0x83, 0x78, 0xb1, 0x1c, 0xd8, 0x50, 0x4c, 0x37, 0x88, 0x7a, 0x74, 0x82, 0x0d, 0x13, 0xb7, 0x41, 0x74, 0xb9, 0x0e, 0x6c, 0x28, 0xa6, 0x1b, 0x44, 0x3d, 0x3a, 0xc1, 0x41, 0x84, 0x9f, 0x10, 0xac, 0x86, 0x62, 0xba, 0x06, 0x8f, 0x09, 0xa2, 0x3f, 0x58, 0xdf, 0x47, 0xbd, 0x61, 0xee, 0x07, 0x8f, 0x37, 0x4c, 0xdc, 0x06, 0x8d, 0xe3, 0x53, 0x6c, 0x28, 0xa6, 0x1b, 0xc4, 0x7f, 0x3b, 0xc1, 0x86, 0x89, 0xdb, 0xa0, 0x01, 0x7f, 0x8a, 0x0d, 0xc5, 0x74, 0x83, 0xf8, 0x6f, 0x27, 0xd8, 0x30, 0x71, 0x1b, 0xc4, 0x8b, 0xe5, 0xc0, 0x86, 0x62, 0xba, 0x41, 0xfc, 0xb7, 0x13, 0x6c, 0x98, 0xb8, 0x0d, 0xa2, 0xcb, 0x75, 0x60, 0x43, 0x31, 0xdd, 0x20, 0xfe, 0xdb, 0x09, 0x0e, 0x22, 0xfc, 0x84, 0xe0, 0x70, 0x8a, 0xd5, 0x1a, 0x8a, 0xe9, 0x1a, 0x3c, 0x26, 0x88, 0xfe, 0x60, 0x8d, 0x68, 0xf4, 0x86, 0xb9, 0x1f, 0x3c, 0xde, 0x30, 0x71, 0x1b, 0x34, 0x61, 0x68, 0xb1, 0xa1, 0x98, 0x6e, 0x10, 0x33, 0xf3, 0x04, 0x1b, 0x26, 0x6e, 0x83, 0x38, 0xc7, 0x1c, 0xd8, 0x50, 0x4c, 0x37, 0x88, 0x99, 0x79, 0x82, 0x83, 0x08, 0x1e, 0x26, 0x58, 0x0d, 0xc5, 0x74, 0x0d, 0x1e, 0x13, 0x44, 0x7f, 0xb0, 0xd8, 0xc3, 0x7a, 0xc3, 0xdc, 0x0f, 0x1e, 0x6f, 0x98, 0xb8, 0x0d, 0x5a, 0xae, 0xb4, 0xd8, 0x50, 0x4c, 0x37, 0x88, 0x30, 0x7b, 0x82, 0x0d, 0x13, 0xb7, 0x41, 0xcc, 0x52, 0x0e, 0x6c, 0x28, 0xa6, 0x1b, 0x44, 0x98, 0x3d, 0xc1, 0x41, 0xbc, 0x58, 0x0e, 0xac, 0x86, 0x62, 0xba, 0x06, 0x8f, 0x09, 0xa2, 0x3f, 0x58, 0xdc, 0x5e, 0xbd, 0x61, 0xee, 0x07, 0x8f, 0x37, 0x4c, 0xdc, 0x06, 0x2d, 0x9e, 0x81, 0x6c, 0x28, 0xa6, 0x1b, 0xc4, 0x63, 0x3e, 0xc1, 0x86, 0x89, 0xdb, 0x20, 0x66, 0x29, 0x07, 0x36, 0x14, 0xd3, 0x0d, 0xe2, 0x31, 0x9f, 0xe0, 0x20, 0x5e, 0x2c, 0x07, 0x66, 0x0d, 0xc5, 0x74, 0x0d, 0x1e, 0x13, 0x44, 0x7f, 0xb0, 0xee, 0x61, 0x7a, 0xc3, 0xdc, 0x0f, 0x1e, 0x6f, 0x98, 0xb8, 0x0d, 0x9a, 0xbe, 0xca, 0xd8, 0x50, 0x4c, 0x37, 0x88, 0x60, 0x7e, 0x82, 0x83, 0x98, 0xa5, 0x1c, 0x38, 0x9c, 0x62, 0x6b, 0x28, 0xa6, 0x6b, 0xf0, 0x98, 0x20, 0xfa, 0x83, 0xa5, 0xd7, 0xd0, 0x1b, 0xe6, 0x7e, 0xf0, 0x78, 0xc3, 0xc4, 0x6d, 0xd0, 0x9c, 0x28, 0xc8, 0x86, 0x62, 0xba, 0x41, 0x9c, 0xfc, 0x13, 0x6c, 0x98, 0xb8, 0x0d, 0xe2, 0xa0, 0x76, 0x60, 0x43, 0x31, 0xdd, 0x20, 0x4e, 0xfe, 0x09, 0x0e, 0xe2, 0xc5, 0x72, 0x60, 0x35, 0x14, 0xd3, 0x35, 0x78, 0x4c, 0x10, 0xfd, 0xc1, 0x8a, 0x7d, 0xe9, 0x0d, 0x73, 0x3f, 0x78, 0xbc, 0x61, 0xe2, 0x36, 0x68, 0xbc, 0xee, 0x63, 0x43, 0x31, 0xdd, 0x20, 0xaa, 0x04, 0x0a, 0x0e, 0x62, 0x96, 0x72, 0x60, 0x35, 0x14, 0xd3, 0x35, 0x78, 0x4c, 0x10, 0xfd, 0xc1, 0xf2, 0xad, 0xeb, 0x0d, 0x73, 0x3f, 0x78, 0xbc, 0x61, 0xe2, 0x36, 0x68, 0xd6, 0x02, 0x63, 0x43, 0x31, 0xdd, 0x20, 0x2a, 0x09, 0x0a, 0x36, 0x4c, 0xdc, 0x06, 0x71, 0x8e, 0x39, 0xb0, 0xa1, 0x98, 0x6e, 0x10, 0x95, 0x04, 0x05, 0x1b, 0x26, 0x6e, 0x83, 0x78, 0xb1, 0x1c, 0xd8, 0x50, 0x4c, 0x37, 0x88, 0x4a, 0x82, 0x82, 0x83, 0xe8, 0x72, 0x1d, 0x38, 0x9c, 0x62, 0xad, 0xa1, 0x98, 0xae, 0xc1, 0x63, 0x82, 0xe8, 0x0f, 0x56, 0xa5, 0x5c, 0x6f, 0x98, 0xfb, 0xc1, 0xe3, 0x0d, 0x13, 0xb7, 0x41, 0x43, 0x80, 0x1f, 0x1b, 0x8a, 0xe9, 0x06, 0xb1, 0x8d, 0x50, 0xb0, 0x61, 0xe2, 0x36, 0x88, 0x73, 0xcc, 0x81, 0x0d, 0xc5, 0x74, 0x83, 0xd8, 0x46, 0x28, 0xd8, 0x30, 0x71, 0x1b, 0xc4, 0x8b, 0xe5, 0xc0, 0x86, 0x62, 0xba, 0x41, 0x6c, 0x23, 0x14, 0x6c, 0x98, 0xfb, 0xc1, 0xe5, 0x83, 0x78, 0xb7, 0x25, 0x38, 0x9c, 0x62, 0x6b, 0x28, 0xa6, 0x6b, 0xf0, 0x98, 0x20, 0xfa, 0x83, 0xd5, 0xaa, 0xd0, 0x1b, 0xe6, 0x7e, 0xf0, 0x78, 0xc3, 0xc4, 0x6d, 0xd0, 0x54, 0xca, 0xc6, 0x86, 0x62, 0xba, 0x41, 0x9c, 0x35, 0x14, 0x1c, 0xc4, 0x2c, 0xe5, 0xc0, 0x6a, 0x28, 0xa6, 0x6b, 0xf0, 0x98, 0x20, 0xfa, 0x83, 0x75, 0x8d, 0xd3, 0x1b, 0xe6, 0x7e, 0xf0, 0x78, 0xc3, 0xc4, 0x6d, 0xd0, 0xac, 0xf8, 0xc4, 0x86, 0x62, 0xba, 0x41, 0x9c, 0x3e, 0x14, 0x6c, 0x98, 0xb8, 0x0d, 0x62, 0x96, 0x72, 0x60, 0x43, 0x31, 0xdd, 0x20, 0x4e, 0x1f, 0x0a, 0x0e, 0xe2, 0xc5, 0x72, 0x60, 0x35, 0x14, 0xd3, 0x35, 0x78, 0x4c, 0x10, 0xfd, 0xc1, 0x8a, 0xa6, 0xea, 0x0d, 0x73, 0x3f, 0x78, 0xbc, 0x61, 0xe2, 0x36, 0x68, 0x89, 0x0e, 0x63, 0x43, 0x31, 0xdd, 0x20, 0xaa, 0x25, 0x0a, 0x36, 0x4c, 0xdc, 0x1a, 0xe6, 0x7e, 0x70, 0xf8, 0x20, 0x8e, 0xe7, 0x07, 0x36, 0x14, 0xd3, 0x0d, 0xa2, 0x5a, 0xa2, 0xe0, 0x20, 0x5e, 0x2c, 0x07, 0x0e, 0xa7, 0x58, 0x6b, 0x28, 0xa6, 0x6b, 0xf0, 0x98, 0x20, 0xfa, 0x83, 0xa5, 0xf9, 0xd7, 0x1b, 0xe6, 0x7e, 0xf0, 0x78, 0xc3, 0xc4, 0x6d, 0xd0, 0xbe, 0xe4, 0xc7, 0x86, 0x62, 0xba, 0x41, 0xdc, 0x59, 0x14, 0x6c, 0x98, 0xb8, 0x0d, 0x62, 0x96, 0x72, 0x60, 0x43, 0x31, 0xdd, 0x20, 0xee, 0x2c, 0x0a, 0x0e, 0xe2, 0xc5, 0x72, 0x60, 0x35, 0x14, 0xd3, 0x35, 0x78, 0x4c, 0x10, 0xfd, 0xc1, 0xda, 0x64, 0xe8, 0x0d, 0x73, 0x3f, 0x78, 0xbc, 0x61, 0xe2, 0x36, 0x68, 0x48, 0x2c, 0x63, 0x43, 0x31, 0xdd, 0x20, 0x4a, 0x33, 0x0a, 0x0e, 0x62, 0x96, 0x72, 0x60, 0x35, 0x14, 0xd3, 0x35, 0x78, 0x4c, 0x10, 0xfd, 0xc1, 0x92, 0x5c, 0xe8, 0x0d, 0x73, 0x3f, 0x78, 0xbc, 0x61, 0xe2, 0x36, 0x68, 0x1a, 0xa2, 0x62, 0x43, 0x31, 0xdd, 0x20, 0xca, 0x37, 0x0a, 0x36, 0x4c, 0xdc, 0x06, 0x31, 0x4b, 0x39, 0xb0, 0xa1, 0x98, 0x6e, 0x10, 0xe5, 0x1b, 0x05, 0x07, 0xd1, 0xea, 0x42, 0x30, 0x6b, 0x28, 0xa6, 0x6b, 0xf0, 0x98, 0x20, 0xfa, 0x83, 0xa5, 0x34, 0xd4, 0x1b, 0xe6, 0x7e, 0xf0, 0x78, 0xc3, 0xc4, 0x6d, 0xd0, 0x90, 0xa6, 0xc6, 0x86, 0x62, 0xba, 0x41, 0x5c, 0x7c, 0x14, 0x6c, 0x98, 0xb8, 0x0d, 0x1a, 0xfb, 0xd4, 0xd8, 0x50, 0x4c, 0x37, 0x88, 0x8b, 0x8f, 0x82, 0x83, 0x78, 0xb1, 0x1c, 0x58, 0x0d, 0xc5, 0x74, 0x0d, 0x1e, 0x13, 0x44, 0x7f, 0xb0, 0x46, 0xfe, 0x79, 0xc3, 0xdc, 0x0f, 0x1e, 0x6f, 0x98, 0xb8, 0x0d, 0x1a, 0xbc, 0xbf, 0xd8, 0x50, 0x4c, 0x37, 0x88, 0x20, 0x91, 0x82, 0x83, 0x38, 0xc7, 0x1c, 0x38, 0x9c, 0x62, 0x6b, 0x28, 0xa6, 0x6b, 0xf0, 0x98, 0x20, 0xfa, 0x83, 0x15, 0xc0, 0xd6, 0x1b, 0xe6, 0x7e, 0xf0, 0x78, 0xc3, 0xc4, 0x6d, 0xd0, 0xe0, 0x85, 0xc6, 0x86, 0x62, 0xba, 0x41, 0x9c, 0x92, 0x14, 0x6c, 0x98, 0xb8, 0x0d, 0x62, 0x96, 0x72, 0x60, 0x43, 0x31, 0xdd, 0x20, 0x4e, 0x49, 0x0a, 0x36, 0x4c, 0xdc, 0x06, 0xf1, 0x62, 0x39, 0xb0, 0xa1, 0x98, 0x6e, 0x10, 0xa7, 0x24, 0x05, 0x07, 0xd1, 0xe5, 0x3a, 0x30, 0x6b, 0x28, 0xa6, 0x6b, 0xf0, 0x98, 0x20, 0xfa, 0x83, 0xd5, 0x12, 0xd1, 0x1b, 0xe6, 0x7e, 0xf0, 0x78, 0xc3, 0xc4, 0x6d, 0xd0, 0xec, 0x9e, 0xc5, 0x86, 0x62, 0xba, 0x41, 0x1c, 0xa3, 0x14, 0x1c, 0xc4, 0x2c, 0xe5, 0xc0, 0xe1, 0x14, 0x5b, 0x43, 0x31, 0x5d, 0x83, 0xc7, 0x04, 0xd1, 0x1f, 0x2c, 0xf6, 0xa0, 0xde, 0x30, 0xf7, 0x83, 0xc7, 0x1b, 0x26, 0x6e, 0x83, 0xe6, 0xb0, 0x2a, 0x36, 0x14, 0xd3, 0x0d, 0xa2, 0x65, 0xa5, 0x60, 0xc3, 0xc4, 0x6d, 0xd0, 0x64, 0x57, 0xc5, 0x86, 0x62, 0xba, 0x41, 0xb4, 0xac, 0x14, 0x1c, 0xc4, 0x8b, 0xe5, 0xc0, 0x6a, 0x28, 0xa6, 0x6b, 0xf0, 0x98, 0x20, 0xfa, 0x83, 0x15, 0xad, 0xd4, 0x1b, 0xe6, 0x7e, 0xf0, 0x78, 0xc3, 0xc4, 0x6d, 0xd0, 0xfc, 0x7c, 0xc6, 0x86, 0x62, 0xba, 0x41, 0x5c, 0xb9, 0x14, 0x6c, 0x98, 0xfb, 0xc1, 0xe1, 0x0d, 0x75, 0x64, 0x0d, 0x33, 0xb4, 0x86, 0x89, 0xdb, 0x30, 0x9d, 0x1b, 0x66, 0x68, 0x83, 0xd7, 0x08, 0xd1, 0x6f, 0x38, 0x11, 0x36, 0x78, 0x8d, 0x10, 0xfd, 0x41, 0x0b, 0xff, 0x19, 0x1b, 0x4e, 0x84, 0x0d, 0xe2, 0x17, 0xa6, 0xe0, 0xa0, 0x81, 0x01, 0x8d, 0x83, 0x36, 0x09, 0x34, 0x56, 0x43, 0x31, 0x5d, 0x83, 0xc7, 0x04, 0xd1, 0x1f, 0xac, 0xca, 0x95, 0xde, 0x30, 0xf7, 0x83, 0xc7, 0x1b, 0x26, 0x6e, 0x83, 0x16, 0xfe, 0x31, 0x36, 0x14, 0xd3, 0x0d, 0xa2, 0x6f, 0xa6, 0x60, 0xc3, 0xc4, 0x6d, 0x10, 0xb3, 0x94, 0x03, 0x1b, 0x8a, 0xe9, 0x06, 0xd1, 0x37, 0x53, 0x70, 0x10, 0x2f, 0x96, 0x03, 0x87, 0x53, 0x6c, 0x0d, 0xc5, 0x74, 0x0d, 0x1e, 0x13, 0x44, 0x7f, 0xb0, 0x1c, 0x12, 0x7a, 0xc3, 0xdc, 0x0f, 0x1e, 0x6f, 0x98, 0xb8, 0x0d, 0x9a, 0x88, 0xc7, 0xd8, 0x50, 0x4c, 0x37, 0x88, 0x68, 0x9b, 0x82, 0x0d, 0x13, 0xb7, 0x41, 0x2b, 0xf9, 0x16, 0x1b, 0x8a, 0xe9, 0x06, 0x11, 0x6d, 0x53, 0x70, 0x10, 0xad, 0x2e, 0x04, 0xab, 0xa1, 0x98, 0xae, 0xc1, 0x63, 0x82, 0xe8, 0x0f, 0x56, 0x6f, 0x40, 0x6f, 0x98, 0xfb, 0xc1, 0xe3, 0x0d, 0x13, 0xb7, 0x41, 0xbb, 0xc4, 0x1e, 0x1b, 0x8a, 0xe9, 0x06, 0xb1, 0x9f, 0x53, 0xb0, 0x61, 0xee, 0x07, 0x87, 0x37, 0xd4, 0x91, 0x35, 0xcc, 0xd0, 0x06, 0xf1, 0x0b, 0x53, 0xb0, 0xe1, 0x44, 0xd8, 0x20, 0x7e, 0x61, 0x0a, 0x0e, 0x5a, 0x75, 0xf6, 0x38, 0x68, 0x08, 0xda, 0x63, 0x35, 0x14, 0xd3, 0x35, 0x78, 0x4c, 0x10, 0xfd, 0xc1, 0xe2, 0x3e, 0xe9, 0x0d, 0x73, 0x3f, 0x78, 0xbc, 0x61, 0xe2, 0x36, 0x68, 0xa5, 0x99, 0x62, 0x43, 0x31, 0xdd, 0x20, 0xca, 0x7b, 0x0a, 0x36, 0x4c, 0xdc, 0x06, 0x31, 0x4b, 0x39, 0xb0, 0xa1, 0x98, 0x6e, 0x10, 0xe5, 0x3d, 0x05, 0x07, 0xf1, 0x62, 0x39, 0x70, 0x38, 0xc5, 0x5a, 0x43, 0x31, 0x5d, 0x83, 0xc7, 0x04, 0xd1, 0x1f, 0x2c, 0x38, 0x80, 0xde, 0x30, 0xf7, 0x83, 0xc7, 0x1b, 0x26, 0x6e, 0x83, 0xa6, 0x18, 0x30, 0x36, 0x14, 0xd3, 0x0d, 0xa2, 0x27, 0xa8, 0xe0, 0x20, 0x52, 0x05, 0x08, 0x56, 0x43, 0x31, 0x5d, 0x83, 0xc7, 0x04, 0xd1, 0x1f, 0xac, 0xd4, 0xae, 0xde, 0x30, 0xf7, 0x83, 0xc7, 0x1b, 0x26, 0x6e, 0x83, 0xf6, 0x21, 0x36, 0x36, 0x14, 0xd3, 0x0d, 0xa2, 0x6f, 0xa8, 0x60, 0xc3, 0xc4, 0x6d, 0x10, 0xb3, 0x94, 0x03, 0x1b, 0x8a, 0xe9, 0x06, 0xd1, 0x37, 0x54, 0x70, 0x10, 0x2f, 0x96, 0x03, 0x87, 0x53, 0xac, 0xd6, 0x50, 0x4c, 0xd7, 0xe0, 0x31, 0x41, 0xf4, 0x07, 0xeb, 0x41, 0xa2, 0x37, 0xcc, 0xfd, 0xe0, 0xf1, 0x86, 0x89, 0xdb, 0xa0, 0x45, 0xfb, 0x8f, 0x0d, 0xc5, 0x74, 0x83, 0xc8, 0x36, 0x2a, 0xd8, 0x30, 0x71, 0x1b, 0xc4, 0x2c, 0xe5, 0xc0, 0x86, 0x62, 0xba, 0x41, 0x64, 0x1b, 0x15, 0x1c, 0xc4, 0x8b, 0xe5, 0xc0, 0xe1, 0x14, 0xdb, 0x30, 0x71, 0x6b, 0xb0, 0xa0, 0x61, 0x6a, 0x83, 0x36, 0xec, 0x06, 0x66, 0x0d, 0x73, 0x3f, 0x38, 0xbb, 0x61, 0xe2, 0x36, 0x78, 0xd4, 0x0f, 0xfd, 0x86, 0x89, 0x5b, 0x83, 0x05, 0x0d, 0x53, 0x6b, 0x98, 0xfb, 0xc1, 0xd9, 0x0d, 0x13, 0xb7, 0xc1, 0xa3, 0x7e, 0xe8, 0x37, 0x4c, 0xdc, 0x1a, 0xe6, 0x7e, 0x70, 0x76, 0x43, 0x1d, 0x59, 0xc3, 0x0c, 0xad, 0x61, 0xe2, 0x36, 0x4c, 0xe7, 0x86, 0x19, 0x5a, 0xc3, 0xc4, 0xad, 0x61, 0xee, 0x37, 0x08, 0xf6, 0xb6, 0x0d, 0x33, 0xb4, 0x86, 0x89, 0xdb, 0x30, 0x9d, 0x1b, 0x66, 0x68, 0x0d, 0x13, 0xb7, 0x86, 0x89, 0xdb, 0xa0, 0x8d, 0x95, 0x8a, 0x0d, 0xc5, 0x74, 0x83, 0x48, 0xf1, 0x1c, 0xd8, 0x30, 0xf7, 0x1b, 0x04, 0xe1, 0xd2, 0xc1, 0x63, 0x82, 0xe8, 0x0f, 0xe7, 0xf1, 0x41, 0x2b, 0x9c, 0x14, 0x1b, 0x4e, 0x84, 0x0d, 0xe2, 0xd9, 0xa9, 0xe0, 0xa0, 0x7d, 0x58, 0x8a, 0xc3, 0x79, 0x7c, 0xd0, 0xba, 0x33, 0xc8, 0x86, 0x13, 0x61, 0x83, 0x58, 0x6c, 0x2a, 0x38, 0x68, 0x8c, 0x1b, 0xe4, 0xa0, 0xfd, 0x6e, 0x90, 0x0d, 0x73, 0x3f, 0xb8, 0x7c, 0x10, 0x2d, 0x4d, 0x05, 0xb3, 0x41, 0x1b, 0x76, 0x03, 0x87, 0x53, 0x6c, 0x83, 0x05, 0x0d, 0x53, 0x1b, 0xb4, 0xe0, 0x0f, 0x32, 0x6b, 0x98, 0xfb, 0xc1, 0xe5, 0x83, 0x08, 0x62, 0x2a, 0x38, 0x9c, 0x62, 0x87, 0x53, 0x6c, 0x83, 0x05, 0x0d, 0x53, 0x1b, 0xb4, 0xe0, 0x0f, 0x32, 0x6b, 0x98, 0xfb, 0xc1, 0xe5, 0x83, 0x58, 0x58, 0x2a, 0x38, 0x9c, 0x62, 0x87, 0x53, 0xac, 0x83, 0x90, 0x52, 0x3e, 0x68, 0x5d, 0x21, 0x64, 0xc3, 0x89, 0xb0, 0xc1, 0xdb, 0x75, 0xe8, 0x0f, 0xda, 0x54, 0x09, 0x39, 0x9c, 0xc7, 0x07, 0xad, 0x3b, 0x83, 0x6c, 0x38, 0x11, 0x36, 0x78, 0x19, 0x0e, 0xfd, 0x41, 0x63, 0xdc, 0x20, 0x07, 0xed, 0x77, 0x83, 0x6c, 0x98, 0xfb, 0xc1, 0xe5, 0x83, 0xa7, 0xde, 0xd0, 0x1f, 0x4e, 0xb1, 0x36, 0x58, 0xd0, 0x30, 0xb5, 0x41, 0x0b, 0xfe, 0x20, 0xb3, 0x86, 0xb9, 0x1f, 0x5c, 0x3e, 0x78, 0x75, 0x0d, 0xfd, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x07, 0x21, 0xa5, 0x7c, 0xd0, 0x7c, 0x50, 0xc8, 0xc1, 0x81, 0xe3, 0xe7, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x1d, 0x62, 0x78, 0xb0, 0x9a, 0x01, 0xe8, 0xf8, 0x76, 0x3c, 0x1e, 0x64, 0x6b, 0xc8, 0x63, 0x2f, 0x0e, 0x82, 0x0d, 0x1a, 0xc3, 0x0a, 0xd9, 0x90, 0xfb, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xdc, 0x60, 0xfd, 0xe3, 0xcb, 0x06, 0x09, 0x92, 0xd0, 0x1b, 0x94, 0x40, 0x91, 0x1b, 0xac, 0x49, 0x4b, 0xd8, 0xe0, 0x1c, 0xb9, 0x7b, 0xf0, 0x62, 0x15, 0xfa, 0xe3, 0xdb, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x8f, 0xbd, 0x38, 0x08, 0x36, 0x68, 0xc9, 0x2d, 0x64, 0x43, 0xee, 0x7b, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x71, 0x83, 0x05, 0x68, 0x0c, 0x1b, 0x9c, 0x23, 0x77, 0x37, 0x48, 0xf0, 0x78, 0xde, 0x60, 0xfd, 0xe3, 0xcb, 0x06, 0x69, 0x2f, 0xd5, 0x83, 0x60, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0xf4, 0x6b, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x83, 0x64, 0x03, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x2f, 0x6e, 0xa8, 0x23, 0x6b, 0x98, 0xa1, 0x35, 0x4c, 0xdc, 0x1a, 0x8a, 0xe9, 0x1a, 0xbc, 0x72, 0x87, 0xfe, 0xe0, 0x18, 0xb7, 0xb5, 0xc1, 0x82, 0x86, 0xa9, 0x35, 0xcc, 0xfd, 0xe0, 0xe1, 0xc1, 0xab, 0x6b, 0xe8, 0x0f, 0x9a, 0x59, 0x0c, 0x39, 0x08, 0x29, 0xe5, 0x83, 0xe6, 0x83, 0x42, 0x0e, 0x0e, 0x1c, 0x3f, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x10, 0xc3, 0x83, 0xd5, 0x0c, 0x40, 0xc7, 0xb7, 0xe3, 0xf1, 0x41, 0xf3, 0x93, 0x21, 0xc7, 0xa1, 0xe3, 0xf1, 0x41, 0x6b, 0x9b, 0x21, 0x07, 0x63, 0x19, 0xea, 0x78, 0x7c, 0xd0, 0xca, 0xb5, 0xc8, 0x41, 0xdb, 0x63, 0x24, 0x1b, 0x4e, 0xb1, 0x35, 0x68, 0xd5, 0x57, 0x65, 0x0d, 0x5a, 0x44, 0x56, 0x59, 0x83, 0x26, 0x99, 0x55, 0x86, 0x5f, 0x10, 0x6c, 0xb0, 0xd0, 0xc4, 0x68, 0x71, 0x10, 0x6c, 0xd0, 0xb6, 0xc0, 0xca, 0x20, 0xd8, 0x60, 0xe4, 0x3f, 0x0c, 0x82, 0x0d, 0x9a, 0x68, 0x58, 0x19, 0x04, 0x8b, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0xe3, 0x0e, 0x6a, 0xd8, 0x0d, 0x46, 0xbd, 0xe4, 0x82, 0x6c, 0x0d, 0xda, 0x02, 0x59, 0xd9, 0x10, 0xc3, 0x41, 0xb0, 0x41, 0xc3, 0x22, 0x2b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x9a, 0x3c, 0x59, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x71, 0xc3, 0xc4, 0x6d, 0xd0, 0x30, 0xcb, 0xca, 0x86, 0x3a, 0xb2, 0x86, 0x19, 0x5a, 0xc3, 0xc4, 0x6d, 0x98, 0xce, 0x0d, 0x33, 0xb4, 0x86, 0x89, 0x5b, 0xc3, 0xdc, 0x6f, 0x10, 0xae, 0x08, 0x1b, 0x8a, 0xe9, 0x6a, 0x98, 0xa1, 0x35, 0x4c, 0xdc, 0x1a, 0xe6, 0x7e, 0x83, 0x70, 0x45, 0xd8, 0x30, 0x43, 0x1b, 0xbc, 0x31, 0x88, 0x7e, 0xc3, 0x89, 0xb0, 0xc1, 0x1b, 0x83, 0xe8, 0x0f, 0x1a, 0xdf, 0x59, 0x39, 0x9c, 0xc7, 0x07, 0xcd, 0x5e, 0x42, 0x1c, 0x84, 0x92, 0xe5, 0x86, 0x19, 0x5a, 0xc3, 0xc4, 0x6d, 0x98, 0xce, 0x83, 0x38, 0xa4, 0x2b, 0xd8, 0x70, 0x22, 0x6c, 0x10, 0x4d, 0x77, 0x05, 0x07, 0xad, 0xba, 0x42, 0x1c, 0x84, 0x94, 0xf2, 0x41, 0x2b, 0x52, 0x2b, 0x1b, 0x4e, 0x84, 0x0d, 0xa2, 0x67, 0xae, 0xe0, 0xa0, 0x49, 0xae, 0x95, 0x83, 0x56, 0xbc, 0x56, 0x0e, 0x5a, 0x7e, 0x5b, 0x39, 0x0e, 0x1d, 0x87, 0x0e, 0xa7, 0xd8, 0x41, 0x6b, 0x73, 0x2b, 0x07, 0x6d, 0xdb, 0xad, 0x2c, 0xec, 0x06, 0xc1, 0xc7, 0xbc, 0x21, 0x31, 0x35, 0xec, 0x06, 0x8d, 0x16, 0xae, 0x6c, 0xd0, 0x2c, 0xe3, 0xca, 0x20, 0x5b, 0x83, 0xb6, 0x40, 0x56, 0x36, 0xc4, 0x70, 0x10, 0x6c, 0xd0, 0xc8, 0xf5, 0xca, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xe6, 0xb7, 0x57, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x5f, 0xdc, 0x30, 0x71, 0x1b, 0x34, 0x12, 0xbe, 0xb2, 0x61, 0xe2, 0xd6, 0x30, 0xf7, 0x83, 0xbb, 0x1b, 0xea, 0xc8, 0x06, 0xf1, 0x71, 0x57, 0x70, 0xd0, 0x10, 0x2c, 0xc4, 0x86, 0x89, 0x5b, 0xc3, 0xdc, 0x0f, 0xce, 0x6e, 0xa8, 0x23, 0x6b, 0x98, 0xa1, 0x35, 0x4c, 0xdc, 0x86, 0xe9, 0xdc, 0x30, 0x43, 0x6b, 0x98, 0xb8, 0x35, 0xcc, 0xfd, 0x06, 0xc1, 0xde, 0x76, 0x10, 0x1f, 0x77, 0x05, 0x87, 0xf3, 0xf8, 0xa0, 0x75, 0x67, 0x90, 0x0d, 0x27, 0xc2, 0x06, 0x51, 0x18, 0x58, 0x70, 0xd0, 0x18, 0x37, 0xc8, 0x41, 0xfb, 0xdd, 0x20, 0x1b, 0xe6, 0x7e, 0x70, 0xf9, 0x20, 0x4e, 0x02, 0x0b, 0x0e, 0x1a, 0xd7, 0x5f, 0x39, 0x0e, 0x1d, 0x87, 0x0e, 0x31, 0x3c, 0x68, 0xcc, 0x7f, 0xe5, 0xa0, 0x65, 0x7b, 0x96, 0xe3, 0xf1, 0x41, 0xbb, 0x09, 0x2d, 0x07, 0xad, 0x36, 0xb4, 0x1c, 0x34, 0xb1, 0xd6, 0xb2, 0x41, 0x13, 0x82, 0x2d, 0x6b, 0xd0, 0x5a, 0x6c, 0xcb, 0x06, 0xcd, 0x0c, 0xb9, 0x6c, 0xd0, 0xe0, 0x93, 0xcb, 0x1a, 0xb4, 0xba, 0xe5, 0xb2, 0x41, 0x23, 0x7b, 0x2e, 0xc3, 0x2f, 0x08, 0x36, 0x68, 0xc7, 0x54, 0x65, 0x71, 0x10, 0x2c, 0x2e, 0xec, 0x06, 0xcd, 0x46, 0xba, 0x6c, 0xd0, 0x96, 0xa6, 0xcb, 0xb0, 0x1b, 0xb4, 0xf7, 0xea, 0xb2, 0x41, 0xab, 0xb2, 0x2e, 0xc3, 0x6e, 0xd0, 0x88, 0xb0, 0xcb, 0x06, 0xed, 0x19, 0xbb, 0x0c, 0xbb, 0x41, 0xf3, 0xce, 0x2e, 0x1b, 0xb4, 0x34, 0xed, 0x32, 0xec, 0x06, 0x6d, 0x6c, 0xbb, 0x6c, 0xd0, 0xdc, 0xb7, 0xcb, 0xb0, 0x1b, 0xb4, 0x62, 0xee, 0xb2, 0x41, 0x83, 0xea, 0x2e, 0xc3, 0x6e, 0xd0, 0x5c, 0xbe, 0xcb, 0x06, 0x2d, 0xf7, 0xbb, 0x0c, 0xbb, 0x41, 0x83, 0x06, 0x2f, 0x1b, 0xb4, 0xad, 0xf0, 0x32, 0xec, 0x06, 0x2d, 0x4d, 0xbc, 0x6c, 0xd0, 0xb6, 0xc2, 0xcb, 0xb0, 0x1b, 0x34, 0x91, 0xf1, 0xb2, 0x41, 0x6b, 0x1d, 0x2f, 0xc3, 0x6e, 0xd0, 0xb2, 0xca, 0xcb, 0x06, 0x8d, 0xbc, 0xbc, 0x0c, 0xbb, 0x41, 0xfb, 0x36, 0x2f, 0x1b, 0x34, 0xb5, 0xf3, 0x32, 0xec, 0x06, 0x8d, 0x09, 0xbd, 0x6c, 0x90, 0x80, 0x07, 0x32, 0xec, 0x06, 0x6d, 0x20, 0xbd, 0x6c, 0xd0, 0x1c, 0xd3, 0xcb, 0xb0, 0x1b, 0xb4, 0x66, 0xf5, 0xb2, 0x41, 0xc3, 0x5a, 0x2f, 0xc3, 0x6e, 0xd0, 0xc6, 0xd9, 0xcb, 0x06, 0xcd, 0xad, 0xbd, 0x0c, 0xbb, 0x41, 0xa3, 0x73, 0x2f, 0x1b, 0xb4, 0x7f, 0xf7, 0x32, 0xec, 0x06, 0x6d, 0xee, 0xbd, 0x6c, 0xd0, 0xfc, 0xdf, 0xcb, 0xb0, 0x1b, 0xb4, 0x67, 0xf8, 0xb2, 0x41, 0xd3, 0x8a, 0x2f, 0xc3, 0x6e, 0xd0, 0xc0, 0xe4, 0xcb, 0x06, 0x6d, 0x5d, 0xbe, 0x0c, 0xbb, 0x41, 0xa3, 0xa2, 0x2f, 0x1b, 0xb4, 0x6f, 0xfa, 0x32, 0xec, 0x06, 0x4d, 0xc5, 0xbe, 0x6c, 0xd0, 0x6a, 0xed, 0xcb, 0xb0, 0x1b, 0x34, 0x61, 0xfc, 0xb2, 0x41, 0x6b, 0xca, 0x2f, 0xc3, 0x6e, 0xd0, 0x58, 0xf5, 0xcb, 0x06, 0xed, 0x66, 0xbf, 0x0c, 0xbb, 0x41, 0x53, 0xdf, 0x2f, 0x1b, 0xb4, 0x3a, 0xfe, 0x32, 0xec, 0x06, 0x4d, 0x75, 0xc0, 0x6c, 0xd0, 0x6a, 0x08, 0xcc, 0xb0, 0x1b, 0xb4, 0x22, 0x03, 0xb3, 0x06, 0xcd, 0xbc, 0xbc, 0x0c, 0x82, 0x0d, 0x5a, 0xf8, 0x7a, 0x19, 0x04, 0x1b, 0x34, 0x9a, 0x03, 0x33, 0xc8, 0xd6, 0x90, 0xc7, 0x5e, 0x1c, 0x04, 0x1b, 0x34, 0x72, 0xbd, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0xf9, 0xed, 0x95, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x17, 0x37, 0x4c, 0xdc, 0x06, 0x2d, 0x25, 0xc1, 0x1c, 0x44, 0x4c, 0xe6, 0xc0, 0x41, 0xfb, 0x4c, 0x30, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0xf8, 0xa0, 0xb1, 0x28, 0x98, 0x83, 0x86, 0xdb, 0x60, 0x0e, 0xda, 0x83, 0x88, 0x39, 0x28, 0x19, 0x9a, 0x8e, 0xc7, 0x07, 0xcd, 0xce, 0xc4, 0x1c, 0x34, 0x7a, 0x13, 0xb3, 0x41, 0xeb, 0x26, 0x32, 0x6b, 0xd0, 0x86, 0x8c, 0xcc, 0x0a, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xfb, 0x68, 0x32, 0xc3, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0d, 0xb9, 0xc9, 0x0c, 0x82, 0x0d, 0x56, 0x73, 0x1c, 0x2d, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0d, 0xd4, 0xc9, 0x0c, 0x82, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x55, 0x4f, 0x66, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0xfd, 0x93, 0x19, 0x76, 0x83, 0xa5, 0x82, 0x41, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x1b, 0x86, 0x32, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xb0, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xc6, 0x19, 0x65, 0x36, 0x58, 0xca, 0xac, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xad, 0x4c, 0xca, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2d, 0x61, 0xca, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2d, 0x76, 0xca, 0x1c, 0xac, 0x32, 0xa5, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x1e, 0x95, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x48, 0x95, 0x39, 0xe4, 0x6b, 0x0f, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x26, 0x5f, 0x65, 0x0e, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb6, 0x6a, 0x65, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x46, 0x75, 0x65, 0x0e, 0x56, 0x34, 0x1d, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xe3, 0xc0, 0x32, 0x07, 0x0b, 0x4d, 0x8c, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xe6, 0xb1, 0xcc, 0xb0, 0x1b, 0x34, 0xa2, 0x2c, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xf2, 0x2c, 0x33, 0xec, 0x06, 0x4d, 0x47, 0xcb, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4d, 0x5b, 0xcb, 0x0c, 0x92, 0x21, 0x83, 0x68, 0xc1, 0x7a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0xed, 0x96, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x17, 0x97, 0x39, 0x58, 0x38, 0x63, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x93, 0x2e, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xe8, 0x2e, 0x73, 0xb0, 0xa2, 0xe9, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0xa6, 0x97, 0x39, 0x58, 0x68, 0x62, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0d, 0xec, 0xcb, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4d, 0x01, 0xcc, 0x1c, 0xac, 0x68, 0x3a, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x26, 0x0d, 0x66, 0x0e, 0x16, 0x9a, 0x18, 0x1d, 0x8f, 0x87, 0xdd, 0xa0, 0x75, 0x85, 0x99, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xf5, 0x87, 0x99, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x59, 0x31, 0x73, 0xd0, 0x8c, 0x87, 0xca, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x33, 0x1e, 0x33, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xb0, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xf6, 0x49, 0x66, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x86, 0x54, 0x66, 0x0e, 0xb9, 0xef, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x1d, 0x98, 0x99, 0x83, 0x71, 0xbb, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0xd9, 0xcc, 0x1c, 0x62, 0x78, 0x3c, 0x5e, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x60, 0xcf, 0xcc, 0x20, 0x19, 0x32, 0x88, 0x16, 0xac, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x2d, 0xa2, 0x99, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xd5, 0xa4, 0x99, 0x43, 0xee, 0x7b, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xf5, 0x69, 0xe6, 0x60, 0xdc, 0xee, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xdb, 0x55, 0x33, 0x87, 0xa3, 0xfd, 0x78, 0x3c, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xa3, 0x6b, 0xe6, 0x10, 0xc3, 0xe3, 0xd0, 0xb0, 0x1b, 0x34, 0x10, 0x36, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x60, 0x36, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xeb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x99, 0x6d, 0x66, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x41, 0x6e, 0xe6, 0x90, 0xfb, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0xc0, 0x9b, 0x39, 0x18, 0x52, 0xbf, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x88, 0xdf, 0xcc, 0x21, 0x86, 0xc7, 0xe3, 0x61, 0x37, 0x68, 0x3f, 0x70, 0x66, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xdf, 0x70, 0xe6, 0x60, 0x7d, 0x83, 0xd1, 0xb0, 0x1b, 0x34, 0xac, 0x38, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xef, 0x38, 0x33, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x22, 0xe5, 0xcc, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0xd1, 0x9c, 0x19, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xdb, 0x9f, 0x33, 0x07, 0x2d, 0x89, 0xce, 0x0c, 0x92, 0xc1, 0xb9, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xf6, 0x52, 0x67, 0x0e, 0xd6, 0x37, 0x18, 0x1d, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x94, 0x9d, 0x39, 0x1c, 0xed, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x96, 0x72, 0x67, 0x0e, 0x59, 0xbb, 0xe3, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xee, 0xef, 0xcc, 0xc1, 0xfa, 0x06, 0xa3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xbf, 0x78, 0xe6, 0x90, 0xb5, 0x1b, 0x64, 0x1b, 0x34, 0x99, 0x3c, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0x45, 0xcf, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x81, 0xeb, 0x99, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x84, 0x7b, 0x66, 0xf8, 0x05, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x82, 0xf8, 0xcc, 0x41, 0xc3, 0xdb, 0x02, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x93, 0xea, 0x33, 0x07, 0xcd, 0x2b, 0x0b, 0x1c, 0x87, 0x8e, 0x6f, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x6e, 0xfc, 0xcc, 0x20, 0x58, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xd6, 0xee, 0x67, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x39, 0xfe, 0x99, 0x61, 0x37, 0x68, 0xe2, 0x7f, 0x66, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x80, 0x80, 0xe6, 0x60, 0x7d, 0x83, 0xd1, 0xb0, 0x1b, 0xb4, 0x7c, 0x40, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xcb, 0x40, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x1f, 0x41, 0x73, 0xb0, 0xf0, 0xc2, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x07, 0x83, 0xe6, 0xa0, 0x94, 0xd9, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb6, 0x3c, 0x68, 0x0e, 0x31, 0x1c, 0x76, 0x83, 0x76, 0x43, 0x68, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xf6, 0x51, 0x68, 0x86, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x74, 0xa1, 0x19, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x2b, 0x34, 0x34, 0x07, 0x2d, 0x00, 0x05, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xcc, 0x43, 0x73, 0x50, 0xca, 0xec, 0x0c, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x1e, 0xa2, 0x39, 0x48, 0xc0, 0x16, 0x38, 0x0e, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2d, 0x2a, 0xd1, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xad, 0x3e, 0xd1, 0x1c, 0x2c, 0xbc, 0x30, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0xaf, 0xa2, 0x19, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x9b, 0x5b, 0x34, 0x07, 0xed, 0x77, 0xd1, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x52, 0x46, 0x73, 0x50, 0xca, 0xec, 0x0c, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x61, 0xa3, 0x39, 0x48, 0xc0, 0x16, 0x38, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xd3, 0x72, 0x34, 0x07, 0x23, 0xc8, 0x73, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0xc6, 0xa3, 0x19, 0x64, 0x6b, 0xc8, 0x63, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x33, 0x7f, 0x34, 0x07, 0x8d, 0x06, 0xd2, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x4b, 0x88, 0x34, 0x87, 0x53, 0x6c, 0xd8, 0x0d, 0x1a, 0x5e, 0xa4, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x98, 0xa4, 0x39, 0x58, 0xdf, 0x60, 0x34, 0xec, 0x06, 0x8d, 0x5b, 0xd2, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0x78, 0xd2, 0x1c, 0xac, 0x6f, 0x30, 0x1a, 0x76, 0x83, 0x06, 0x44, 0x69, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb6, 0x52, 0x69, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xe0, 0xfc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x03, 0x4b, 0x73, 0x30, 0x82, 0x3c, 0x8f, 0xc7, 0xc3, 0x6e, 0xd0, 0x16, 0x2d, 0xcd, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xec, 0x2e, 0xcd, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x0b, 0xa6, 0x39, 0x68, 0xae, 0xc2, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x3d, 0x99, 0x66, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0x3e, 0xd3, 0x1c, 0xb4, 0xa3, 0xe1, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x0e, 0x36, 0xcd, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0xef, 0xa6, 0x39, 0x58, 0x50, 0xbb, 0x3f, 0x48, 0x06, 0x42, 0x37, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xb2, 0x39, 0xcd, 0xc1, 0x58, 0xec, 0x3c, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x71, 0xa7, 0x19, 0x04, 0x1b, 0x2c, 0x34, 0x31, 0x5a, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x76, 0xea, 0x69, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xe0, 0xfc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xc2, 0x4f, 0x73, 0x48, 0x1d, 0x1c, 0x92, 0x4b, 0xc7, 0xe3, 0xe3, 0xd0, 0x71, 0x68, 0xd8, 0x0d, 0x5a, 0x0e, 0xa8, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x49, 0xa8, 0x19, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xcb, 0x0e, 0x35, 0x07, 0xad, 0x44, 0xd4, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x85, 0x51, 0x73, 0x90, 0x80, 0x2d, 0x30, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xeb, 0xa3, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xce, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x3b, 0x26, 0x35, 0x07, 0x23, 0xc8, 0xf3, 0x78, 0x7c, 0x1c, 0x1a, 0x64, 0x1b, 0xb4, 0xaf, 0x52, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4d, 0xcc, 0xd4, 0x0c, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x8a, 0x53, 0x33, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xa6, 0x7c, 0x6a, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xfe, 0x50, 0xcd, 0xc1, 0x82, 0xda, 0xfd, 0x41, 0x32, 0x30, 0x7d, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8d, 0x33, 0xd5, 0x1c, 0x52, 0x07, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xc9, 0xaa, 0x9a, 0x43, 0xb2, 0xe3, 0x38, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xc0, 0x55, 0x73, 0xb0, 0xbe, 0xc1, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x12, 0xab, 0x19, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf3, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x3e, 0x5a, 0xcd, 0x20, 0x19, 0xcc, 0x06, 0xd1, 0xc2, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xdb, 0x6f, 0x35, 0x87, 0x64, 0xc7, 0x41, 0x90, 0xf3, 0x0f, 0xa2, 0x85, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xf6, 0xee, 0x6a, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x48, 0x5f, 0xcd, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x16, 0xac, 0x39, 0x58, 0x50, 0xbb, 0x3f, 0x48, 0x06, 0xa7, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x5c, 0xac, 0x39, 0xa4, 0x0e, 0x8e, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x43, 0x94, 0x35, 0x87, 0x64, 0xc7, 0x71, 0xe8, 0x78, 0x7c, 0x7c, 0x1b, 0x76, 0x83, 0x56, 0x32, 0x6b, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x56, 0x3c, 0x6b, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xee, 0x68, 0xcd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x8d, 0x5a, 0x33, 0xfc, 0x82, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xd8, 0xb5, 0xe6, 0xa0, 0xe1, 0x6d, 0x81, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xa5, 0xdb, 0x9a, 0x83, 0xe6, 0x95, 0x05, 0x8e, 0x43, 0xc7, 0xb7, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xce, 0xb7, 0x66, 0x10, 0x2c, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x23, 0xc4, 0x35, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x4a, 0x72, 0xcd, 0xb0, 0x1b, 0x34, 0xf1, 0x3f, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xfb, 0x5c, 0x73, 0xb0, 0xbe, 0xc1, 0x68, 0xd8, 0x0d, 0x5a, 0x3e, 0xa0, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0xbb, 0xae, 0x19, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x0b, 0xdd, 0x35, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xb0, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xa6, 0xc7, 0x6b, 0x0e, 0x8a, 0x5c, 0x85, 0x43, 0x72, 0x69, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x55, 0xaf, 0x19, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x03, 0xbe, 0x66, 0xb8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xd5, 0xfa, 0x9a, 0x83, 0xf5, 0x0d, 0x46, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xf8, 0x7e, 0xcd, 0x71, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x34, 0xc0, 0xe6, 0x60, 0x7d, 0x83, 0xd1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x7e, 0x60, 0x33, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xd6, 0x1a, 0x6c, 0x0e, 0xda, 0x19, 0x8c, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xc0, 0xc2, 0xe6, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x8f, 0xc3, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xd6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xd2, 0x88, 0xcd, 0x41, 0xc3, 0x3e, 0x23, 0x87, 0x15, 0xda, 0xe3, 0xd0, 0xb0, 0x1b, 0xb4, 0x1b, 0x42, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xc4, 0x62, 0x73, 0xb0, 0xbe, 0xc1, 0x68, 0xd8, 0x0d, 0x1a, 0x5e, 0xa4, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x9f, 0xb1, 0x19, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x9b, 0x39, 0x36, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x10, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xad, 0x01, 0xd9, 0x1c, 0x24, 0x60, 0x0b, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xa3, 0x46, 0x36, 0x07, 0x45, 0xae, 0xc2, 0x21, 0xb9, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0x35, 0xd9, 0x0c, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x2e, 0x65, 0x33, 0xdc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x1e, 0x96, 0xcd, 0xc1, 0xfa, 0x06, 0xa3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xd6, 0xcb, 0xe6, 0x38, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x47, 0x66, 0x73, 0xb0, 0xbe, 0xc1, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x55, 0xb3, 0x19, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x3b, 0x70, 0x36, 0x07, 0xed, 0x0c, 0xc6, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x8d, 0x67, 0x73, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xf4, 0x67, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xf1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x88, 0xa1, 0xcd, 0x41, 0x93, 0x88, 0x36, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x04, 0xa3, 0xcd, 0x41, 0xc3, 0x3e, 0x23, 0x87, 0x15, 0xda, 0xe3, 0xd0, 0xb0, 0x1b, 0x34, 0x6e, 0x49, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x50, 0x69, 0x33, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x66, 0x35, 0x6d, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0x20, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x0c, 0xb5, 0x39, 0x48, 0xc0, 0x16, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x76, 0x4f, 0x6d, 0x0e, 0x8a, 0x5c, 0x85, 0x43, 0x72, 0x69, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x74, 0xb5, 0x19, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x80, 0xd6, 0x66, 0xb8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xc9, 0x5c, 0x9b, 0x83, 0xf5, 0x0d, 0x46, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xf2, 0xaf, 0xcd, 0x71, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xb1, 0xd8, 0xe6, 0x60, 0x7d, 0x83, 0xd1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xbc, 0x6c, 0x33, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x4e, 0xb4, 0xcd, 0x70, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xcb, 0xd6, 0x36, 0x07, 0x0b, 0x4d, 0x8c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x81, 0x6e, 0x9b, 0x83, 0x86, 0x7d, 0x46, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb6, 0xc6, 0x6d, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xf6, 0xd0, 0x6d, 0x0e, 0xd6, 0x74, 0x4b, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0xba, 0xdb, 0x1c, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x31, 0x7a, 0x9b, 0x83, 0x26, 0x11, 0x6d, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x55, 0x7d, 0x9b, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x05, 0x70, 0x73, 0xd0, 0xce, 0x60, 0xcc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xf3, 0x08, 0x37, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x7b, 0x0f, 0x37, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x10, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0x59, 0xdc, 0x1c, 0x2c, 0x34, 0x31, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x36, 0x39, 0x6e, 0x0e, 0x1a, 0xf6, 0x19, 0x39, 0xac, 0xd0, 0x1e, 0x87, 0x86, 0xdd, 0xa0, 0x01, 0x51, 0x9a, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xc9, 0x92, 0x9b, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x38, 0x3f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xad, 0xb1, 0xdc, 0x1c, 0x8c, 0x20, 0xcf, 0xe3, 0xf1, 0xb0, 0x1b, 0xb4, 0x45, 0x4b, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x47, 0x73, 0x33, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x56, 0x74, 0x6e, 0x0e, 0x9a, 0xab, 0x70, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x15, 0xba, 0x19, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x63, 0x48, 0x37, 0x07, 0xed, 0x68, 0xb8, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x10, 0x75, 0x33, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x66, 0xad, 0x6e, 0x0e, 0x16, 0xd4, 0xee, 0x0f, 0x92, 0x81, 0xd0, 0x0d, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xf9, 0x75, 0x73, 0x30, 0x16, 0x3b, 0x8f, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x06, 0xce, 0x6e, 0x06, 0xc1, 0x06, 0x0b, 0x4d, 0x8c, 0x16, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x01, 0xb7, 0x9b, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x38, 0x3f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xad, 0xd3, 0xdd, 0x1c, 0x52, 0x07, 0x87, 0xe4, 0xd2, 0xf1, 0xf8, 0x38, 0x74, 0x1c, 0x1a, 0x76, 0x83, 0x96, 0x03, 0x6a, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xf6, 0xfc, 0x6e, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x08, 0xe1, 0xcd, 0x41, 0x2b, 0x11, 0x35, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0x32, 0xde, 0x1c, 0x24, 0x60, 0x0b, 0x0c, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x9e, 0xbc, 0x19, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf3, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xa8, 0xe6, 0xcd, 0xc1, 0x08, 0xf2, 0x3c, 0x1e, 0x1f, 0x87, 0x06, 0xd9, 0x06, 0xed, 0xab, 0xd4, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x3b, 0xa3, 0x37, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4d, 0xa3, 0xde, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x3d, 0xd7, 0x9b, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x42, 0x7b, 0x73, 0xb0, 0xa0, 0x76, 0x7f, 0x90, 0x0c, 0x4c, 0xdf, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x0b, 0xbd, 0x37, 0x87, 0xd4, 0xc1, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xb7, 0xf8, 0xe6, 0x90, 0xec, 0x38, 0x0e, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xad, 0x30, 0xdf, 0x1c, 0xac, 0x6f, 0x30, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xd6, 0xa4, 0x6f, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xe0, 0xfc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x92, 0x7d, 0x33, 0x48, 0x06, 0xb3, 0x41, 0xb4, 0xb0, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x00, 0xf8, 0xcd, 0x21, 0xd9, 0x71, 0x10, 0xe4, 0xfc, 0x83, 0x68, 0x61, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xd1, 0xf3, 0x9b, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xd4, 0x7e, 0x33, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xe6, 0xe5, 0x6f, 0x0e, 0x16, 0xd4, 0xee, 0x0f, 0x92, 0xc1, 0xa9, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x76, 0xf7, 0x6f, 0x0e, 0xa9, 0x83, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x1a, 0x01, 0xce, 0x21, 0xd9, 0x71, 0x1c, 0x3a, 0x1e, 0x1f, 0xdf, 0x86, 0xdd, 0xa0, 0xa9, 0x04, 0x9c, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xfd, 0x06, 0x9c, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x38, 0x81, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xad, 0x62, 0xe0, 0x0c, 0xbf, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0xf4, 0xc0, 0x39, 0x68, 0x78, 0x5b, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xe3, 0x04, 0xe7, 0xa0, 0x79, 0x65, 0x81, 0xe3, 0xd0, 0xf1, 0x6d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x72, 0xc1, 0x19, 0x04, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xfc, 0x0c, 0xce, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x8f, 0x83, 0x33, 0xec, 0x06, 0x4d, 0xfc, 0xcf, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0d, 0xfe, 0xe0, 0x1c, 0xac, 0x6f, 0x30, 0x1a, 0x76, 0x83, 0x96, 0x0f, 0x68, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x66, 0x8e, 0x70, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xe6, 0x98, 0x70, 0x0e, 0x16, 0x5e, 0x18, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0x4a, 0xe1, 0x1c, 0x14, 0xb9, 0x0a, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x34, 0x16, 0xce, 0x86, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xab, 0x5e, 0x38, 0x07, 0xa5, 0xcc, 0xce, 0xb0, 0x1b, 0xb4, 0x1b, 0x42, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x63, 0x86, 0x33, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xf0, 0x1a, 0xce, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x53, 0x71, 0x38, 0x07, 0xed, 0xce, 0xe1, 0x2c, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x08, 0x1e, 0xce, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xbb, 0x7d, 0x38, 0xc3, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0x0c, 0xe2, 0x1c, 0x94, 0x32, 0x3b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x56, 0x22, 0xce, 0xc1, 0x72, 0x26, 0xa1, 0xc3, 0xfa, 0xe6, 0x21, 0x9d, 0x7b, 0x38, 0xda, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x76, 0x23, 0x71, 0x0e, 0xd6, 0x37, 0x18, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xeb, 0x97, 0x38, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0x75, 0xe2, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x81, 0x51, 0x9c, 0x83, 0x16, 0x80, 0x02, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x5c, 0xc5, 0x39, 0x28, 0x72, 0x15, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0xca, 0xe2, 0x1c, 0x24, 0x60, 0x0b, 0x1c, 0x87, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb6, 0x72, 0x71, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xf6, 0x7c, 0x71, 0x0e, 0x16, 0x5e, 0x18, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0x12, 0xe3, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x31, 0x65, 0x9c, 0x83, 0xf6, 0xbb, 0x68, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x97, 0xc6, 0x39, 0x28, 0x72, 0x15, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0x67, 0xe3, 0x1c, 0x24, 0x60, 0x0b, 0x1c, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x51, 0x70, 0x9c, 0x0d, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xa6, 0xcc, 0x71, 0x0e, 0x4a, 0x99, 0x9d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x8a, 0x1d, 0x67, 0x90, 0xad, 0x21, 0x8f, 0x3d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0xca, 0xe3, 0x1c, 0x34, 0x1a, 0x48, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0d, 0xe4, 0xe3, 0x1c, 0x4e, 0xb1, 0x61, 0x37, 0x68, 0x78, 0x91, 0x66, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x0c, 0x20, 0xe7, 0x60, 0x7d, 0x83, 0xd1, 0xb0, 0x1b, 0x34, 0x6e, 0x49, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x81, 0x90, 0x73, 0xb0, 0xbe, 0xc1, 0x68, 0xd8, 0x0d, 0x1a, 0x10, 0xa5, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x7e, 0xc8, 0x19, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf3, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xa6, 0x45, 0xce, 0xc1, 0x08, 0xf2, 0x3c, 0x1e, 0x0f, 0xbb, 0x41, 0x5b, 0xb4, 0x34, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xab, 0x1e, 0x39, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x8b, 0x24, 0xe7, 0xa0, 0xb9, 0x0a, 0x97, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x71, 0x96, 0x9c, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x29, 0x93, 0x73, 0xd0, 0x8e, 0x86, 0xcb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x33, 0x3b, 0x39, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x1c, 0x28, 0xe7, 0x60, 0x41, 0xed, 0xfe, 0x20, 0x19, 0x08, 0xdd, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xc3, 0x49, 0x39, 0x07, 0x63, 0xb1, 0xf3, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x26, 0x2a, 0x67, 0x10, 0x6c, 0xb0, 0xd0, 0xc4, 0x68, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0xc1, 0xca, 0x19, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf3, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xc6, 0x57, 0xce, 0x21, 0x75, 0x70, 0x48, 0x2e, 0x1d, 0x8f, 0x8f, 0x43, 0xc7, 0xa1, 0x61, 0x37, 0x68, 0x39, 0xa0, 0x66, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x15, 0x2d, 0x67, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4d, 0xb9, 0xe5, 0x1c, 0xb4, 0x12, 0x51, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xba, 0x5d, 0xce, 0x41, 0x02, 0xb6, 0xc0, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xf9, 0xbe, 0x9c, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x38, 0x3f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4d, 0x13, 0xe6, 0x1c, 0x8c, 0x20, 0xcf, 0xe3, 0xf1, 0x71, 0x68, 0x90, 0x6d, 0xd0, 0xbe, 0x4a, 0xcd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xd6, 0x98, 0x33, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xc0, 0x64, 0xce, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0xc5, 0xcc, 0x19, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x53, 0x9e, 0x39, 0x07, 0x0b, 0x6a, 0xf7, 0x07, 0xc9, 0xc0, 0xf4, 0x0d, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x73, 0x9a, 0x73, 0x48, 0x1d, 0x1c, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xd6, 0x5f, 0x73, 0x0e, 0xc9, 0x8e, 0xe3, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x96, 0x6d, 0xce, 0xc1, 0xfa, 0x06, 0xa3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x93, 0x37, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xce, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x53, 0xc3, 0x39, 0x83, 0x64, 0x30, 0x1b, 0x44, 0x0b, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0x28, 0xe7, 0x1c, 0x92, 0x1d, 0x07, 0x41, 0xce, 0x3f, 0x88, 0x16, 0x76, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x8e, 0xce, 0x19, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x73, 0xd7, 0x39, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xa3, 0x3b, 0xe7, 0x60, 0x41, 0xed, 0xfe, 0x20, 0x19, 0x9c, 0x1a, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xbc, 0x3c, 0xe7, 0x90, 0x3a, 0x38, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4d, 0xba, 0xe7, 0x1c, 0x92, 0x1d, 0xc7, 0xa1, 0xe3, 0xf1, 0xf1, 0x6d, 0xd8, 0x0d, 0x5a, 0xab, 0x74, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0xbb, 0xcf, 0x19, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xe2, 0x9f, 0x73, 0x68, 0x96, 0x74, 0x3c, 0x1e, 0x76, 0x83, 0x56, 0x04, 0x74, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x56, 0x0e, 0x74, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x36, 0x83, 0xce, 0x41, 0x3b, 0x0f, 0x3a, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0x59, 0xe8, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0x6e, 0xe8, 0x1c, 0x04, 0x26, 0xf6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x6c, 0x88, 0xce, 0xc1, 0xea, 0x46, 0xaa, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xfd, 0x44, 0xe7, 0xd0, 0xb8, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xae, 0x8b, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0xac, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xc5, 0x1a, 0x9d, 0x43, 0xb3, 0xa4, 0xe3, 0xf1, 0x71, 0x68, 0xd8, 0x0d, 0x5a, 0xd0, 0xd1, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0xf8, 0xd1, 0x19, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xb3, 0x44, 0x3a, 0x07, 0x6d, 0x20, 0x99, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xd4, 0xa4, 0x73, 0x68, 0x5c, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x82, 0x4a, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xd6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xb8, 0x96, 0xce, 0xa1, 0x59, 0xd2, 0xf1, 0xf8, 0x38, 0x34, 0xec, 0x06, 0x8d, 0x7d, 0xe9, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8d, 0x91, 0xe9, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x41, 0xfd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xb3, 0xa6, 0x33, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xe6, 0xe1, 0x74, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xa8, 0x9d, 0xce, 0x41, 0x4b, 0xa2, 0x33, 0x83, 0x64, 0x20, 0x7d, 0x37, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xea, 0x9f, 0xce, 0x41, 0x60, 0x62, 0x1f, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x44, 0xd4, 0x39, 0x58, 0xc6, 0x89, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xf6, 0x51, 0xe7, 0xd0, 0xb8, 0xe8, 0x38, 0x34, 0x88, 0x16, 0xac, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x89, 0x4b, 0x9d, 0x43, 0xb3, 0xa4, 0xe3, 0xf1, 0xb0, 0x1b, 0x34, 0xb1, 0xa9, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x01, 0xaa, 0x33, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x76, 0x4b, 0x75, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xda, 0xaa, 0xce, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x88, 0xd5, 0x39, 0x68, 0x49, 0x74, 0x66, 0x90, 0x0c, 0xa4, 0xef, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0xd0, 0xd5, 0x39, 0x08, 0x4c, 0xec, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xbe, 0xb0, 0xce, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x45, 0xd6, 0x39, 0x68, 0x64, 0x59, 0x67, 0x90, 0x0c, 0x6e, 0x0d, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x23, 0xad, 0x73, 0x68, 0x5c, 0x74, 0x1c, 0x3a, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x2b, 0xd9, 0x3a, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0x7a, 0xeb, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x21, 0x72, 0x9d, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x9e, 0xae, 0x73, 0xd0, 0x14, 0xbb, 0xce, 0x20, 0x19, 0x9c, 0x1b, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x71, 0x5e, 0xe7, 0x38, 0x74, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x82, 0x5f, 0xe7, 0x10, 0xc3, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xb3, 0x02, 0x3b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xb0, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x06, 0x13, 0x76, 0x0e, 0x8d, 0x8e, 0x8e, 0xe7, 0xc7, 0xa1, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x3d, 0x88, 0x9d, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x60, 0xb1, 0x33, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x56, 0x37, 0x76, 0x0e, 0x9a, 0x62, 0xd7, 0x19, 0x24, 0x03, 0x5f, 0xdd, 0x0d, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x4b, 0xb2, 0x73, 0x88, 0xff, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xa8, 0x65, 0xe7, 0x38, 0x74, 0x1c, 0x3a, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x86, 0x63, 0x76, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xc1, 0x9b, 0x9d, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xd2, 0xb3, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x24, 0xb4, 0x73, 0xb0, 0x8c, 0x13, 0x69, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x43, 0xda, 0x19, 0x04, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x8c, 0xd3, 0xce, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x34, 0xb5, 0x33, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x2c, 0xd6, 0xce, 0x70, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x43, 0x5e, 0x3b, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xfb, 0x63, 0x3b, 0x87, 0x86, 0x5f, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xfb, 0x69, 0x3b, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xc3, 0x6f, 0x3b, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xe3, 0x74, 0x3b, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x1b, 0x7a, 0x3b, 0x87, 0xa3, 0x7d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xff, 0x6f, 0xe7, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xb6, 0x70, 0xe7, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x6d, 0x71, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbe, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x43, 0x92, 0x3b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xfe, 0x72, 0xe7, 0x20, 0x79, 0xb0, 0x7a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x0f, 0x74, 0xe7, 0xd0, 0xf0, 0xeb, 0x38, 0x74, 0x3c, 0x3e, 0xbe, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xdb, 0xa7, 0x3b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x30, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x46, 0x5d, 0x77, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x12, 0xed, 0xce, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0xcf, 0xdd, 0x39, 0x68, 0x8a, 0x5d, 0x67, 0x90, 0x0c, 0xa4, 0xef, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x17, 0xde, 0x39, 0xc4, 0xff, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xb8, 0xbc, 0x73, 0x1c, 0x3a, 0x0e, 0x1d, 0xcf, 0x8f, 0x6f, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xb3, 0xd2, 0x3b, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x7d, 0xec, 0x9d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xbd, 0x7b, 0x67, 0xd8, 0x0d, 0xd6, 0x07, 0x89, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4d, 0x91, 0xef, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x41, 0xfb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xb2, 0xbe, 0xb3, 0xc1, 0x52, 0x66, 0xad, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x2d, 0x7e, 0x67, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xd1, 0x7e, 0x67, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x79, 0x7f, 0xe7, 0x60, 0x95, 0x29, 0xd5, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x84, 0x00, 0xcf, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xd6, 0x01, 0xcf, 0x61, 0xed, 0xf7, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xbb, 0x81, 0xe7, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x74, 0x82, 0x67, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x1d, 0x83, 0xe7, 0x60, 0x45, 0xd3, 0xd1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xf2, 0xc1, 0x73, 0xb0, 0xd0, 0xc4, 0xe8, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8d, 0x97, 0xf0, 0x0c, 0xbb, 0x41, 0x6b, 0x28, 0x3c, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x6b, 0x2d, 0x3c, 0xc3, 0x6e, 0xd0, 0x06, 0x0c, 0xcf, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x46, 0x0d, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0xb4, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xf3, 0x3b, 0x3c, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x3b, 0x41, 0x3c, 0x07, 0x0b, 0x67, 0x8c, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x06, 0x8f, 0x78, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x96, 0x99, 0x78, 0x0e, 0x56, 0x34, 0x1d, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x0b, 0x53, 0x3c, 0x07, 0x0b, 0x4d, 0x8c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xa5, 0x2c, 0x9e, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x49, 0x2f, 0x9e, 0x83, 0x15, 0x4d, 0x47, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x34, 0x19, 0xcf, 0xc1, 0x42, 0x13, 0xa3, 0xe3, 0xf1, 0xb0, 0x1b, 0x34, 0x92, 0xc6, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xe2, 0xc6, 0x33, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xec, 0x1c, 0xcf, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0xca, 0xe3, 0x19, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x03, 0x7f, 0x3c, 0x07, 0x4d, 0xb1, 0xeb, 0x0c, 0x92, 0xc1, 0xb9, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xa6, 0x0f, 0x79, 0x0e, 0x56, 0x7a, 0x0c, 0x1c, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x87, 0xe4, 0x39, 0x1c, 0xed, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x46, 0x2f, 0x79, 0x0e, 0xf1, 0x3f, 0x0e, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0x77, 0xf2, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xad, 0x8c, 0xf2, 0x1c, 0x8e, 0xf6, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x1f, 0x95, 0xe7, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xd6, 0x95, 0x67, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0xd0, 0xf2, 0x1c, 0xb4, 0xf2, 0x8b, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x34, 0x2f, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0xb4, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xa3, 0xc3, 0x3c, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xe3, 0xc8, 0x3c, 0x07, 0x2b, 0x9a, 0x8e, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x66, 0x9e, 0x79, 0x0e, 0x16, 0x5e, 0x18, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x73, 0xd5, 0x3c, 0x87, 0x18, 0x1e, 0x8f, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2d, 0x72, 0xf3, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x09, 0x71, 0x9e, 0x83, 0xe6, 0xc8, 0x79, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x5d, 0xe7, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x87, 0xe7, 0x39, 0x28, 0xec, 0x70, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x46, 0xee, 0x79, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xc6, 0xf8, 0x79, 0x0e, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x36, 0x04, 0x7a, 0x0e, 0xa9, 0x83, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x00, 0xa1, 0x67, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xa9, 0xa1, 0xe7, 0x70, 0xb4, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x2b, 0x13, 0x3d, 0x87, 0x18, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0xce, 0xe8, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0xf7, 0xe8, 0x39, 0x28, 0xec, 0x70, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x26, 0x4a, 0x7a, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xa6, 0x54, 0x7a, 0x0e, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x16, 0x60, 0x7a, 0x0e, 0xa9, 0x83, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xbd, 0xa6, 0x67, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x66, 0xa7, 0xe7, 0x70, 0xb4, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x13, 0x41, 0x3d, 0x87, 0xa3, 0xfd, 0x38, 0x74, 0x1c, 0x1a, 0x76, 0x83, 0xf6, 0x8a, 0x7a, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x66, 0x93, 0x7a, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xd6, 0x9d, 0x7a, 0x0e, 0x47, 0xfb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x4b, 0xd5, 0x73, 0x88, 0xe1, 0xb0, 0x1b, 0xb4, 0x80, 0xd5, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xd0, 0xd5, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xed, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xf6, 0x58, 0xcf, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x46, 0x5a, 0xcf, 0x21, 0xf7, 0xbd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xf0, 0xd6, 0x73, 0x30, 0xa4, 0x7e, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x95, 0xba, 0x9e, 0x43, 0x0c, 0x8f, 0xc7, 0xc3, 0x6e, 0xd0, 0x40, 0x5e, 0xcf, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x80, 0x5f, 0xcf, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xce, 0x60, 0xcf, 0xe1, 0x68, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x16, 0x12, 0x7b, 0x0e, 0x47, 0xfb, 0x20, 0xdb, 0xa0, 0x45, 0xc6, 0x9e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x8d, 0xb2, 0x67, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xfd, 0xcc, 0x9e, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xfa, 0xd9, 0x33, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x96, 0x4a, 0x7b, 0x0e, 0x9a, 0x62, 0xd7, 0x19, 0x24, 0x83, 0x73, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0xb8, 0xf6, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8d, 0xcd, 0xf6, 0x1c, 0x2c, 0xbc, 0x30, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0xcd, 0xed, 0x39, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0xfb, 0xed, 0x39, 0xc4, 0xf0, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x06, 0x72, 0xcf, 0xe1, 0x68, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xed, 0xdc, 0x73, 0x88, 0xff, 0x71, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xa4, 0xba, 0x67, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x4b, 0xbb, 0xe7, 0x70, 0xb4, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x2b, 0xe0, 0x3d, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xe3, 0xe5, 0x3d, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4d, 0xad, 0xf7, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x81, 0xf8, 0x9e, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x6a, 0xdf, 0x73, 0xd0, 0x14, 0xbb, 0xce, 0x20, 0x19, 0x9c, 0x1b, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xef, 0xbf, 0x67, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x98, 0xc0, 0xe7, 0x60, 0xe1, 0x8c, 0xd1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xc4, 0x82, 0xcf, 0xc1, 0x42, 0x13, 0xa3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x2a, 0xc2, 0xe7, 0x60, 0xa1, 0x89, 0xd1, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x35, 0x0d, 0x9f, 0xc3, 0xd1, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x24, 0xc4, 0xe7, 0x10, 0xff, 0xe3, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xdc, 0x89, 0xcf, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x2a, 0x8b, 0xcf, 0xe1, 0x68, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xf6, 0x64, 0x7c, 0x0e, 0x47, 0xfb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x84, 0xe3, 0x33, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xa6, 0x7b, 0x7c, 0x0e, 0x9a, 0x95, 0x45, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x32, 0xf2, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x5c, 0xf2, 0x39, 0xf4, 0x27, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x8c, 0xf2, 0x39, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0xba, 0xf2, 0x39, 0xa4, 0x0e, 0x8e, 0x43, 0xc3, 0x6e, 0xd0, 0xf6, 0x8a, 0xc0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xce, 0x97, 0xcf, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xcb, 0x64, 0x3e, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x4d, 0xcd, 0x67, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2d, 0xc0, 0xf9, 0x1c, 0x34, 0xc5, 0xae, 0x33, 0x48, 0x06, 0xe7, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0xc6, 0xf3, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0xf0, 0xf3, 0x39, 0x58, 0x78, 0x61, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x44, 0xe8, 0x73, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xa0, 0xe8, 0x73, 0x88, 0xe1, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x55, 0x49, 0x9f, 0xc3, 0xd1, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x2c, 0xd3, 0xe7, 0x10, 0xff, 0xe3, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xec, 0xa7, 0xcf, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x3e, 0xa9, 0xcf, 0xe1, 0x68, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb6, 0x55, 0x7d, 0x0e, 0x47, 0xfb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x0b, 0xeb, 0x33, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x76, 0x6c, 0x7d, 0x0e, 0x5a, 0xf9, 0x45, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xd9, 0xd7, 0x67, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x25, 0x62, 0x9f, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x9e, 0xec, 0x33, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x26, 0x9f, 0x7d, 0x0e, 0x9a, 0x62, 0xd7, 0x19, 0x24, 0x83, 0x73, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4d, 0x61, 0xfb, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4d, 0x76, 0xfb, 0x1c, 0x2c, 0x9c, 0x31, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x1e, 0xf7, 0x39, 0x58, 0x68, 0x62, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0xa8, 0xfb, 0x1c, 0x2c, 0x34, 0x31, 0x3a, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x33, 0xef, 0x73, 0x38, 0xda, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xad, 0xe7, 0xfb, 0x1c, 0xe2, 0x7f, 0x1c, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x01, 0xf8, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x2b, 0xf8, 0x39, 0x1c, 0xed, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xcc, 0xc2, 0xcf, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x3a, 0xc4, 0xcf, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x80, 0xc5, 0xcf, 0xa1, 0x3f, 0xf9, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xfa, 0xc6, 0xcf, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x66, 0xc8, 0xcf, 0x21, 0x75, 0x30, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x09, 0xe5, 0x67, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2d, 0xb7, 0xfc, 0x1c, 0xb4, 0xf2, 0x8b, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x96, 0xcd, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0xcc, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x66, 0x7a, 0x7e, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xb6, 0xd0, 0xcf, 0x20, 0x19, 0x38, 0xfe, 0x06, 0xd1, 0xc2, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xe3, 0x49, 0x3f, 0x87, 0xf8, 0x1f, 0xb2, 0x15, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xad, 0x4a, 0xfd, 0x1c, 0xac, 0x16, 0x36, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x9c, 0xf5, 0x73, 0x68, 0x25, 0x7e, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x66, 0xc0, 0x7e, 0x0e, 0x4d, 0x87, 0x06, 0xd1, 0xc2, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x03, 0x67, 0x3f, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x96, 0xed, 0xe7, 0xa0, 0xfd, 0x65, 0x94, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb6, 0xea, 0x7e, 0x0e, 0xa9, 0x83, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x1b, 0x7c, 0x3f, 0x87, 0x56, 0xe2, 0xc7, 0xa1, 0xe3, 0xf1, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xed, 0xc1, 0x9f, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x98, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2d, 0x2a, 0xfe, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x15, 0xc8, 0x9f, 0x41, 0x32, 0x70, 0xfc, 0x0d, 0xa2, 0x85, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x66, 0x2e, 0x7f, 0x0e, 0xf1, 0x3f, 0x64, 0x2b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0xff, 0xfc, 0x39, 0x58, 0x2d, 0x6c, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xe1, 0xf4, 0xe7, 0xd0, 0x9f, 0xfc, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0xb5, 0xfe, 0x1c, 0x1a, 0x1d, 0x0d, 0xa2, 0x85, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x96, 0x68, 0x7f, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x7e, 0xee, 0xcf, 0x41, 0xfb, 0xcb, 0x28, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8d, 0x0a, 0xff, 0x1c, 0x52, 0x07, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xc6, 0x92, 0x7f, 0x0e, 0xfd, 0xc9, 0x8f, 0x43, 0xc7, 0xe3, 0xe3, 0xd0, 0x71, 0x68, 0xd8, 0x0d, 0x9a, 0x76, 0xfe, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x9b, 0xfe, 0x19, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x20, 0xfb, 0x67, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8d, 0x7a, 0xff, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x21, 0xf2, 0x9f, 0x83, 0xa6, 0xd8, 0x75, 0x06, 0xc9, 0xe0, 0xdc, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x03, 0xed, 0x3f, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x43, 0xf2, 0x3f, 0x07, 0x0b, 0x2f, 0x8c, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x06, 0xf1, 0x7f, 0x0e, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x86, 0xfc, 0x7f, 0x36, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x20, 0x00, 0x3a, 0x34, 0x3a, 0x3a, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xcc, 0x00, 0x74, 0x38, 0xda, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0d, 0x4e, 0x00, 0x1d, 0xe2, 0x7f, 0x1c, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0xce, 0x00, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0xf8, 0x00, 0x3a, 0x1c, 0xed, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x30, 0x09, 0xd0, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x9c, 0x0a, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xe2, 0x0b, 0xd0, 0x41, 0x61, 0x87, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x5a, 0x03, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xad, 0x03, 0x74, 0x38, 0xda, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x4d, 0x20, 0xa0, 0x43, 0xa3, 0xa3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xd0, 0x08, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x78, 0x09, 0xe8, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x2f, 0x0a, 0xe8, 0x90, 0x3a, 0x18, 0x76, 0x83, 0xf6, 0xa9, 0x80, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xf6, 0xb3, 0x80, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xa0, 0x7d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x06, 0x03, 0x3a, 0x34, 0x3a, 0x3a, 0x1e, 0x0f, 0xbb, 0x41, 0xcb, 0x64, 0x40, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xcb, 0x69, 0x40, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd0, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0xc2, 0x01, 0x1d, 0x1a, 0x1d, 0x1d, 0x8f, 0x87, 0xdd, 0xa0, 0x4d, 0x3a, 0xa0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xcd, 0x3c, 0xa0, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x68, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xd6, 0x00, 0x81, 0x0e, 0x8d, 0x8e, 0x8e, 0xc7, 0xc3, 0x6e, 0xd0, 0x1a, 0x21, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x5a, 0x22, 0xd0, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x78, 0x04, 0x1a, 0x64, 0x6b, 0xc8, 0x63, 0x2f, 0x0e, 0x82, 0x0d, 0x9a, 0x9b, 0x04, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0x10, 0x26, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x1b, 0xb4, 0xc8, 0x09, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x72, 0x15, 0xe8, 0xa0, 0xfd, 0x56, 0xa0, 0xe3, 0xd0, 0x71, 0xe8, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xad, 0xcd, 0x02, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x7b, 0xb8, 0x40, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xc0, 0x17, 0xe8, 0xa0, 0x31, 0x60, 0xa0, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xd6, 0x8e, 0x81, 0x0e, 0x16, 0x23, 0x1b, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x74, 0x06, 0x3a, 0x34, 0x1d, 0x3a, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xf3, 0xd4, 0x40, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x70, 0x7f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0xdd, 0x06, 0x3a, 0x08, 0x29, 0xf0, 0x41, 0xb4, 0xa0, 0x7d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x15, 0x07, 0x3a, 0x28, 0x65, 0x76, 0x06, 0xd1, 0xc2, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x9b, 0xe9, 0x40, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xe9, 0x1d, 0xe8, 0xa0, 0xdd, 0x78, 0xa0, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x76, 0xf1, 0x81, 0x0e, 0xa9, 0x9a, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x7b, 0xff, 0x40, 0x07, 0x21, 0x00, 0x7e, 0x1c, 0x3a, 0x9e, 0x0f, 0xbb, 0x41, 0x1b, 0x04, 0x41, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x1b, 0x09, 0x41, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xd8, 0x21, 0x68, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0x51, 0x04, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x0d, 0x8d, 0xa0, 0x83, 0xa6, 0xd8, 0x75, 0x06, 0xc9, 0x40, 0xfa, 0x6e, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x91, 0x91, 0xa0, 0x83, 0xf1, 0xa6, 0x73, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x60, 0x09, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xc3, 0x31, 0x41, 0x07, 0xcd, 0xd0, 0x04, 0x0d, 0x92, 0xc1, 0xad, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xa6, 0x76, 0x82, 0x0e, 0x4d, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x48, 0x28, 0x68, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xd9, 0xa3, 0xa0, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xd5, 0x14, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x06, 0xa6, 0x82, 0x0e, 0x5a, 0xab, 0x0a, 0x1a, 0x24, 0x83, 0x73, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8d, 0x72, 0x05, 0x1d, 0x87, 0x8e, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xad, 0x94, 0x05, 0x1d, 0x62, 0x38, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x79, 0x2d, 0xe8, 0x90, 0xec, 0x38, 0x0e, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0xc8, 0x05, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x41, 0xfb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x8e, 0x17, 0x74, 0x50, 0xca, 0xec, 0x1c, 0xcf, 0x0f, 0xa7, 0xd8, 0x20, 0xdb, 0xa0, 0xed, 0xbe, 0xa0, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x73, 0x30, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x1a, 0x31, 0xe8, 0x70, 0xb4, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xa3, 0x8e, 0x41, 0x87, 0x18, 0x1e, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x69, 0xca, 0xa0, 0x41, 0xb0, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0x69, 0x06, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x83, 0x9f, 0x41, 0xc3, 0x6e, 0xb0, 0x54, 0x30, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xbd, 0x34, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xd6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x2c, 0x6b, 0xd0, 0x06, 0x4b, 0x99, 0xb5, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x7d, 0xd9, 0xa0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x0d, 0xdc, 0xa0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xad, 0xde, 0xa0, 0x83, 0x55, 0xa6, 0x54, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xa3, 0xc3, 0x41, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xeb, 0xc8, 0x41, 0x87, 0x7c, 0xed, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xd8, 0x73, 0xd0, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x4a, 0x75, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x9c, 0x76, 0xd0, 0xc1, 0x8a, 0xa6, 0xa3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x16, 0x3c, 0xe8, 0x60, 0xa1, 0x89, 0xd1, 0xf1, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x3b, 0x0f, 0x1a, 0x76, 0x83, 0x46, 0x94, 0x65, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb6, 0xdb, 0x83, 0x86, 0xdd, 0xa0, 0xe9, 0x68, 0x99, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x39, 0xfa, 0xa0, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x58, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x43, 0xfb, 0x41, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x8b, 0x00, 0x42, 0x07, 0x0b, 0x67, 0x8c, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb6, 0x0d, 0x84, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x46, 0x18, 0x84, 0x0e, 0x56, 0x34, 0x1d, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x63, 0x12, 0x42, 0x07, 0x0b, 0x4d, 0x8c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x51, 0x0c, 0xa1, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xf9, 0x0e, 0xa1, 0x83, 0x15, 0x4d, 0x47, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x0c, 0x89, 0xd0, 0xc1, 0x42, 0x13, 0xa3, 0xe3, 0xf1, 0xb0, 0x1b, 0xb4, 0xae, 0x30, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xc7, 0x22, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xf1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xd2, 0x8c, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0xac, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x09, 0x1d, 0xa1, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xad, 0x1f, 0xa1, 0x43, 0xee, 0x7b, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xaa, 0x48, 0xe8, 0x60, 0xdc, 0xee, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x73, 0x4b, 0x42, 0x87, 0x18, 0x1e, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xd9, 0x28, 0xa1, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x81, 0x2b, 0xa1, 0x43, 0xee, 0x7b, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x9f, 0x4b, 0xe8, 0x60, 0xdc, 0xee, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x2b, 0x63, 0x42, 0x87, 0xa3, 0xfd, 0x78, 0x3c, 0xec, 0x06, 0x0d, 0x84, 0xcd, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4d, 0xac, 0x09, 0x0d, 0x92, 0x21, 0x83, 0x68, 0xc1, 0x7a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x8e, 0x13, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0xb8, 0x13, 0x3a, 0xe4, 0xbe, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x26, 0xfa, 0x84, 0x0e, 0x86, 0xd4, 0xef, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x33, 0x28, 0x74, 0x88, 0xe1, 0xf1, 0x78, 0xd8, 0x0d, 0xda, 0x0f, 0x9c, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x57, 0x14, 0x3a, 0x64, 0xed, 0x86, 0xdd, 0xa0, 0x61, 0xc5, 0x99, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x25, 0x49, 0xa1, 0x83, 0xf5, 0x0d, 0x46, 0x83, 0x6c, 0x83, 0x26, 0x93, 0x67, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x01, 0x4d, 0xa1, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xf9, 0x29, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0x92, 0x0a, 0x0d, 0xbf, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x54, 0x15, 0x3a, 0x68, 0x78, 0x5b, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x64, 0x56, 0xe8, 0xa0, 0x79, 0x65, 0x81, 0xe3, 0xd0, 0xf1, 0x6d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0xd2, 0x15, 0x1a, 0x04, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xfe, 0xaf, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x50, 0x2c, 0x34, 0xec, 0x06, 0x4d, 0xfc, 0xcf, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2d, 0x2e, 0x0b, 0x1d, 0xac, 0x6f, 0x30, 0x1a, 0x76, 0x83, 0x96, 0x0f, 0x68, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x76, 0xa6, 0x85, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xf6, 0xb0, 0x85, 0x0e, 0x16, 0xce, 0x18, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0x7a, 0x0b, 0x1d, 0x2c, 0x34, 0x31, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xe6, 0xc9, 0x85, 0x0e, 0x16, 0x9a, 0x18, 0x0d, 0xbb, 0x41, 0xbb, 0x21, 0x34, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xb3, 0xec, 0x42, 0x07, 0xeb, 0x1b, 0x8c, 0x86, 0xdd, 0xa0, 0xe1, 0x45, 0x9a, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x31, 0x7a, 0xa1, 0x43, 0xb2, 0x63, 0xd8, 0x0d, 0x1a, 0xb7, 0xa4, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0xdd, 0x17, 0x3a, 0x24, 0x3b, 0x86, 0xdd, 0xa0, 0x01, 0x51, 0x9a, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x89, 0x81, 0xa1, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x8b, 0x30, 0x74, 0xd0, 0xc6, 0xc2, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x63, 0x12, 0x43, 0x07, 0x09, 0xd8, 0x02, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xd6, 0x32, 0x86, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xe0, 0xfc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x04, 0x32, 0x74, 0x30, 0x82, 0x3c, 0x8f, 0xc7, 0xc7, 0xa1, 0x61, 0x37, 0x68, 0x8b, 0x96, 0x66, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x1b, 0x65, 0x68, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2d, 0xba, 0x0c, 0x1d, 0x34, 0x57, 0xe1, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x71, 0x33, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x86, 0x79, 0x86, 0x0e, 0xda, 0xd1, 0x70, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xac, 0x68, 0x68, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4d, 0x2c, 0x0d, 0x1d, 0x2c, 0xa8, 0xdd, 0x1f, 0x24, 0x03, 0xa1, 0x1b, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x7e, 0x6a, 0xe8, 0x60, 0x2c, 0x76, 0x1e, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8d, 0x6d, 0x0d, 0x0d, 0x82, 0x0d, 0x16, 0x9a, 0x18, 0x2d, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x63, 0x62, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x70, 0x7e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x4a, 0x1b, 0x3a, 0xa4, 0x0e, 0x0e, 0xc9, 0xa5, 0xe3, 0xf1, 0x71, 0xe8, 0x38, 0x34, 0xec, 0x06, 0x2d, 0x07, 0xd4, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0xcb, 0x0d, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x41, 0xbc, 0xa1, 0x83, 0x56, 0x22, 0x6a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x08, 0x1c, 0x3a, 0x48, 0xc0, 0x16, 0x18, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x82, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xe7, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x81, 0xc7, 0xa1, 0x83, 0x11, 0xe4, 0x79, 0x3c, 0x3e, 0x0e, 0x0d, 0xb2, 0x0d, 0xda, 0x57, 0xa9, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x36, 0x2f, 0x87, 0x86, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0xe9, 0x1c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xdb, 0xa2, 0x43, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x10, 0x75, 0xe8, 0x60, 0x41, 0xed, 0xfe, 0x20, 0x19, 0x98, 0xbe, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xd6, 0x62, 0x87, 0x0e, 0xa9, 0x83, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x86, 0xee, 0xd0, 0x21, 0xd9, 0x71, 0x1c, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x04, 0x1e, 0x3a, 0x58, 0xdf, 0x60, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2d, 0x1b, 0x0f, 0x0d, 0x92, 0x21, 0x83, 0x68, 0xc1, 0xf9, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xb0, 0x79, 0x68, 0x90, 0x0c, 0x66, 0x83, 0x68, 0x61, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x31, 0xea, 0xa1, 0x43, 0xb2, 0xe3, 0x20, 0xc8, 0xf9, 0x07, 0xd1, 0xc2, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x03, 0xdc, 0x43, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x35, 0x7c, 0x68, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4d, 0x9d, 0x0f, 0x1d, 0x2c, 0xa8, 0xdd, 0x1f, 0x24, 0x83, 0x53, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0xc0, 0x0f, 0x1d, 0x52, 0x07, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x65, 0xfc, 0xa1, 0x43, 0xb2, 0xe3, 0x38, 0x74, 0x3c, 0x3e, 0xbe, 0x0d, 0xbb, 0x41, 0x2b, 0x99, 0x35, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x9b, 0x01, 0x44, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xe5, 0x80, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x62, 0x20, 0x1a, 0x7e, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x23, 0x41, 0x74, 0xd0, 0xf0, 0xb6, 0xc0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xae, 0x06, 0xd1, 0x41, 0xf3, 0xca, 0x02, 0xc7, 0xa1, 0xe3, 0xdb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x1e, 0x42, 0x34, 0x08, 0x16, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xc9, 0x13, 0xa2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x93, 0x85, 0x68, 0xd8, 0x0d, 0x9a, 0xf8, 0x9f, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x99, 0x21, 0x3a, 0x58, 0xdf, 0x60, 0x34, 0xec, 0x06, 0x2d, 0x1f, 0xd0, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4d, 0xeb, 0x10, 0x0d, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x06, 0x44, 0x34, 0xdc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x7e, 0x11, 0xd1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xd0, 0x12, 0xd1, 0xc1, 0xc2, 0x19, 0xa3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xc5, 0x28, 0xa2, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x69, 0x2b, 0xa2, 0x83, 0x15, 0x4d, 0x47, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x44, 0x17, 0xd1, 0xc1, 0x42, 0x13, 0xa3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x6a, 0x8c, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x14, 0x8d, 0xe8, 0x60, 0x45, 0xd3, 0xd1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xee, 0x46, 0x74, 0xb0, 0xd0, 0xc4, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0xa9, 0x23, 0x3a, 0x24, 0x66, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x56, 0xf6, 0x88, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x96, 0x00, 0x89, 0x0e, 0x16, 0x5e, 0x18, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2d, 0x1a, 0x12, 0x1d, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2d, 0x31, 0x12, 0x1d, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4d, 0x48, 0x12, 0x1d, 0x92, 0x1d, 0xc3, 0x6e, 0xd0, 0x6e, 0x08, 0xcd, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x5a, 0x26, 0xd1, 0x21, 0xd9, 0x31, 0xec, 0x06, 0x0d, 0x2f, 0xd2, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0d, 0x83, 0x12, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x39, 0x53, 0xa2, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x88, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x96, 0x5a, 0x89, 0x0e, 0x12, 0xb0, 0x05, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xc1, 0x59, 0xa2, 0x83, 0x22, 0x57, 0xe1, 0x90, 0x5c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb6, 0x74, 0x89, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xf8, 0x2f, 0xd1, 0x20, 0x19, 0x32, 0x88, 0x16, 0xc4, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xbb, 0xc6, 0x44, 0x07, 0x4d, 0x22, 0xda, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x03, 0xcd, 0x44, 0x07, 0x0d, 0xfb, 0x8c, 0x1c, 0x56, 0x68, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x01, 0x6a, 0xa2, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x98, 0x4d, 0x74, 0xd0, 0xfa, 0x36, 0xd1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x13, 0xe3, 0x44, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x17, 0x9d, 0xe8, 0xa0, 0xe1, 0xfd, 0x96, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb6, 0xe2, 0x89, 0x0e, 0xa9, 0x83, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x1b, 0xf8, 0x44, 0xc7, 0xa1, 0xe3, 0xd0, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x56, 0xfe, 0x89, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x36, 0x41, 0xd1, 0x41, 0xc3, 0xfb, 0x2d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0d, 0x36, 0x14, 0x1d, 0x52, 0x07, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x86, 0x28, 0x8a, 0x0e, 0x9a, 0xb5, 0x28, 0x3a, 0x0e, 0x2d, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x73, 0xa3, 0x68, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4d, 0x85, 0x14, 0x1d, 0x34, 0xbc, 0xdf, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x80, 0x4a, 0xd1, 0x41, 0x83, 0x2c, 0x45, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xc6, 0x61, 0x8a, 0x8e, 0x43, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xf3, 0x37, 0x45, 0x87, 0x18, 0x1e, 0x87, 0x86, 0xdd, 0xa0, 0x71, 0x4b, 0x9a, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xe1, 0x9f, 0xa2, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x56, 0x54, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xf1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x0e, 0x53, 0xd1, 0x41, 0x02, 0xb6, 0xc0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x27, 0x55, 0x74, 0x50, 0xe4, 0x2a, 0x1c, 0x92, 0x4b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x52, 0x56, 0xd1, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xbb, 0x5e, 0x45, 0xc3, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2d, 0x91, 0x15, 0x1d, 0xac, 0x6f, 0x30, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x06, 0xd5, 0x8a, 0x8e, 0x43, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x43, 0x70, 0x45, 0x07, 0xeb, 0x1b, 0x8c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x41, 0xbb, 0xa2, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xe6, 0xf7, 0x8a, 0x86, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x0c, 0x2c, 0x3a, 0x58, 0x68, 0x62, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0x1e, 0x16, 0x1d, 0x34, 0xec, 0x33, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xe1, 0x58, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x33, 0x59, 0x74, 0xb0, 0xa6, 0x5b, 0x6a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x2e, 0xb3, 0xe8, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0x7c, 0x16, 0x1d, 0x34, 0x89, 0x68, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8d, 0x95, 0x16, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x89, 0xd5, 0xa2, 0x83, 0x76, 0x06, 0x63, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x9d, 0x2d, 0x3a, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0xd1, 0x2d, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0x82, 0x78, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x22, 0xb8, 0xe8, 0x60, 0xa1, 0x89, 0xd1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x75, 0x5c, 0x74, 0xd0, 0xb0, 0xcf, 0xc8, 0x61, 0x85, 0xf6, 0x38, 0x34, 0xec, 0x06, 0x0d, 0x88, 0xd2, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2d, 0x41, 0x17, 0x0d, 0x92, 0x21, 0x83, 0x68, 0xc1, 0xf9, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xe4, 0xba, 0xe8, 0x60, 0x04, 0x79, 0x1e, 0x8f, 0x87, 0xdd, 0xa0, 0x2d, 0x5a, 0x9a, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x99, 0xef, 0xa2, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x4e, 0x5e, 0x74, 0xd0, 0x5c, 0x85, 0xcb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x5a, 0x7b, 0xd1, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x98, 0x2f, 0x3a, 0x68, 0x47, 0xc3, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xdd, 0xfd, 0xa2, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x16, 0x60, 0x74, 0xb0, 0xa0, 0x76, 0x7f, 0x90, 0x0c, 0x84, 0x6e, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x25, 0x05, 0xa3, 0x83, 0xb1, 0xd8, 0x79, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x1b, 0x61, 0x34, 0x08, 0x36, 0x58, 0x68, 0x62, 0xb4, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0x62, 0x18, 0x0d, 0x92, 0x21, 0x83, 0x68, 0xc1, 0xf9, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xf4, 0xc3, 0xe8, 0x90, 0x3a, 0x38, 0x24, 0x97, 0x8e, 0xc7, 0xc7, 0xa1, 0xe3, 0xd0, 0xb0, 0x1b, 0xb4, 0x1c, 0x50, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x93, 0x62, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb6, 0x5d, 0x8c, 0x0e, 0x5a, 0x89, 0xa8, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xee, 0xc6, 0xe8, 0x20, 0x01, 0x5b, 0x60, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x9e, 0x8f, 0xd1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x9c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb6, 0x8a, 0x8c, 0x0e, 0x46, 0x90, 0xe7, 0xf1, 0xf8, 0x38, 0x34, 0xc8, 0x36, 0x68, 0x5f, 0xa5, 0x66, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x6f, 0x32, 0x1a, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x71, 0xca, 0x68, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0x64, 0x19, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x6d, 0x2f, 0xa3, 0x83, 0x05, 0xb5, 0xfb, 0x83, 0x64, 0x60, 0xfa, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x3e, 0x33, 0x3a, 0xa4, 0x0e, 0x8e, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x73, 0x70, 0x46, 0x87, 0x64, 0xc7, 0x71, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xdc, 0xce, 0xe8, 0x60, 0x7d, 0x83, 0xd1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xd2, 0x67, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xe7, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xed, 0x41, 0xa3, 0x41, 0x32, 0x98, 0x0d, 0xa2, 0x85, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x76, 0x15, 0x8d, 0x0e, 0xc9, 0x8e, 0x83, 0x20, 0xe7, 0x1f, 0x44, 0x0b, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0x49, 0x1a, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x01, 0x4c, 0xa3, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xda, 0x69, 0x74, 0xb0, 0xa0, 0x76, 0x7f, 0x90, 0x0c, 0x4e, 0x0d, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x67, 0x6a, 0x74, 0x48, 0x1d, 0x1c, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x46, 0x5e, 0x8d, 0x0e, 0xc9, 0x8e, 0xe3, 0xd0, 0xf1, 0xf8, 0xf8, 0x36, 0xec, 0x06, 0x4d, 0x25, 0xe0, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0xdf, 0x1a, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xc1, 0x5e, 0xa3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x54, 0xd8, 0x68, 0xf8, 0x05, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x22, 0xb2, 0xd1, 0x41, 0xc3, 0xdb, 0x02, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x13, 0xd1, 0x46, 0x07, 0xcd, 0x2b, 0x0b, 0x1c, 0x87, 0x8e, 0x6f, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x0e, 0xb6, 0xd1, 0x20, 0x58, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xd6, 0xbb, 0x8d, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x79, 0x71, 0xa3, 0x61, 0x37, 0x68, 0xe2, 0x7f, 0x66, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x2f, 0xdd, 0xe8, 0x60, 0x7d, 0x83, 0xd1, 0xb0, 0x1b, 0xb4, 0x7c, 0x40, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x12, 0x6f, 0x74, 0xb0, 0xd0, 0xc4, 0x68, 0xd8, 0x0d, 0xda, 0x0d, 0xa1, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0xc6, 0x37, 0x1a, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xcc, 0xdf, 0x68, 0xb8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xf9, 0x81, 0xa3, 0x83, 0x11, 0xe4, 0x39, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2d, 0x28, 0x1c, 0x6d, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xfe, 0x70, 0x74, 0x50, 0xca, 0xec, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0x57, 0x1c, 0x1d, 0xac, 0x6f, 0x30, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x56, 0x38, 0x8e, 0x0e, 0xc9, 0x8e, 0x61, 0x37, 0x68, 0x78, 0x91, 0x66, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x6d, 0xe4, 0xe8, 0x90, 0xec, 0x18, 0x76, 0x83, 0xc6, 0x2d, 0x69, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x86, 0x55, 0x8e, 0x0e, 0xc9, 0x8e, 0x61, 0x37, 0x68, 0x40, 0x94, 0x66, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x43, 0xe6, 0x68, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0d, 0xdf, 0x1c, 0x1d, 0xb4, 0xb1, 0x30, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x16, 0xd0, 0xd1, 0x41, 0x02, 0xb6, 0xc0, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xb1, 0xa3, 0xa3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x38, 0x3f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0d, 0x39, 0x1d, 0x1d, 0x8c, 0x20, 0xcf, 0xe3, 0xf1, 0x71, 0x68, 0xd8, 0x0d, 0xda, 0xa2, 0xa5, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0xb6, 0x3a, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x83, 0x5c, 0x47, 0x07, 0xcd, 0x55, 0xb8, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2d, 0x94, 0x1d, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x5d, 0xb5, 0xa3, 0x83, 0x76, 0x34, 0x5c, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x9a, 0x3b, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x0b, 0x79, 0x47, 0x07, 0x0b, 0x6a, 0xf7, 0x07, 0xc9, 0x40, 0xe8, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x0f, 0x3c, 0x3a, 0x18, 0x8b, 0x9d, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x5b, 0x89, 0x47, 0x83, 0x60, 0x83, 0x85, 0x26, 0x46, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x16, 0xe4, 0xd1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x9c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x86, 0x2e, 0x8f, 0x0e, 0xa9, 0x83, 0x43, 0x72, 0xe9, 0x78, 0x7c, 0x1c, 0x3a, 0x0e, 0x0d, 0xbb, 0x41, 0xcb, 0x01, 0x35, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xd3, 0xa0, 0x47, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xcf, 0xf4, 0xe8, 0xa0, 0x95, 0x88, 0x9a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x26, 0x5e, 0x8f, 0x0e, 0x12, 0xb0, 0x05, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0xd8, 0x1e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0xc1, 0xf9, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x9f, 0xf7, 0xe8, 0x60, 0x04, 0x79, 0x1e, 0x8f, 0x8f, 0x43, 0x83, 0x6c, 0x83, 0xf6, 0x55, 0x6a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xc9, 0xe2, 0xa3, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x56, 0x96, 0x8f, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x34, 0xf4, 0xd1, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0xb3, 0x3e, 0x3a, 0x58, 0x50, 0xbb, 0x3f, 0x48, 0x06, 0xa6, 0x6f, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xb1, 0xef, 0xa3, 0x43, 0xea, 0xe0, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x81, 0x7e, 0x74, 0x48, 0x76, 0x1c, 0x87, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x06, 0xdd, 0x8f, 0x0e, 0xd6, 0x37, 0x18, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xc3, 0xf4, 0x47, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x70, 0x7e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0xdb, 0x3f, 0x1a, 0x24, 0x83, 0xd9, 0x20, 0x5a, 0xd8, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x4b, 0x00, 0xe9, 0x90, 0xec, 0x38, 0x08, 0x72, 0xfe, 0x41, 0xb4, 0xb0, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x7c, 0x02, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x7c, 0x40, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x43, 0x15, 0x48, 0x07, 0x0b, 0x6a, 0xf7, 0x07, 0xc9, 0xe0, 0xd4, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x0b, 0x1e, 0x48, 0x87, 0xd4, 0xc1, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xd7, 0x04, 0xe9, 0x90, 0xec, 0x38, 0x0e, 0x1d, 0x8f, 0x8f, 0x6f, 0xc3, 0x6e, 0xd0, 0x5a, 0xa5, 0xcb, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xe2, 0x0b, 0xd2, 0x20, 0x19, 0x32, 0x88, 0x16, 0xac, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x29, 0x1b, 0xa4, 0x43, 0xb3, 0xa4, 0xe3, 0xf1, 0xb0, 0x1b, 0xb4, 0x22, 0xa0, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xe3, 0x83, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xeb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xa0, 0x08, 0xe9, 0xd0, 0x2c, 0xe9, 0x78, 0x3c, 0xec, 0x06, 0x2d, 0xe8, 0xe8, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xad, 0x33, 0x21, 0x0d, 0x92, 0x21, 0x83, 0x68, 0xc1, 0x7a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x9d, 0x42, 0x3a, 0x34, 0x4b, 0x3a, 0x1e, 0x0f, 0xbb, 0x41, 0x63, 0x5f, 0x3a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x9b, 0x5b, 0x48, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x50, 0x3f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0x89, 0x21, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x15, 0x34, 0xa4, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xdd, 0x86, 0x74, 0xd0, 0x92, 0xe8, 0xcc, 0x20, 0x19, 0x48, 0xdf, 0x0d, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x6e, 0x87, 0x74, 0x10, 0x98, 0xd8, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xa6, 0xff, 0x90, 0x0e, 0x96, 0x71, 0x22, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x37, 0x44, 0x3a, 0x34, 0x2e, 0x3a, 0x0e, 0x0d, 0xa2, 0x05, 0xeb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xc9, 0x11, 0xe9, 0xd0, 0x2c, 0xe9, 0x78, 0x3c, 0xec, 0x06, 0x4d, 0x6c, 0xea, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0x58, 0x22, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xed, 0x4d, 0xa4, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x18, 0x8a, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x66, 0x4e, 0x91, 0x0e, 0x5a, 0x12, 0x9d, 0x19, 0x24, 0x03, 0xe9, 0xbb, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x76, 0x60, 0x91, 0x0e, 0x02, 0x13, 0xfb, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x91, 0x8b, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xa6, 0x7d, 0x91, 0x0e, 0x1a, 0x59, 0xd6, 0x19, 0x24, 0x83, 0x5b, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8d, 0x1e, 0x23, 0x1d, 0x1a, 0x17, 0x1d, 0x87, 0x8e, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xa4, 0x33, 0xd2, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x03, 0xd4, 0x48, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x35, 0x1b, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4d, 0x7d, 0x23, 0x1d, 0x34, 0xc5, 0xae, 0x33, 0x48, 0x06, 0xe7, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x40, 0x47, 0x3a, 0x0e, 0x1d, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x85, 0x47, 0x3a, 0xc4, 0x70, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xd0, 0x3d, 0xd2, 0x20, 0x19, 0x32, 0x88, 0x16, 0xac, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x09, 0x7f, 0xa4, 0x43, 0xa3, 0xa3, 0xe3, 0xf9, 0x71, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xa1, 0x20, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4d, 0x2a, 0x24, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x1d, 0x88, 0xa4, 0x83, 0xa6, 0xd8, 0x75, 0x06, 0xc9, 0xc0, 0x59, 0x37, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x4a, 0x46, 0xd2, 0x21, 0xfe, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xd9, 0x90, 0xa4, 0xe3, 0xd0, 0x71, 0xe8, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0x1a, 0x8e, 0xd9, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x16, 0x54, 0x92, 0x0e, 0x59, 0xbb, 0xe3, 0xdb, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0x7c, 0x98, 0xbc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x31, 0x93, 0x74, 0x48, 0x2e, 0xad, 0x41, 0x23, 0x02, 0x29, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x84, 0x4e, 0xd2, 0xc1, 0xb8, 0x83, 0x5a, 0x83, 0xe6, 0x8b, 0x55, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xa9, 0xa0, 0xa4, 0x83, 0x92, 0xa1, 0x69, 0x0d, 0x16, 0xfb, 0xfb, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x93, 0x48, 0x49, 0x07, 0x6b, 0xf9, 0x04, 0x3a, 0x1e, 0x1f, 0x34, 0xc8, 0x94, 0x74, 0xd0, 0xbe, 0xd5, 0xd2, 0x41, 0xa3, 0x6a, 0x4b, 0x1b, 0xbc, 0x6c, 0x03, 0x63, 0x83, 0x00, 0xb8, 0x5f, 0x0d, 0x16, 0x43, 0xea, 0xaf, 0xc1, 0xfa, 0x69, 0xfd, 0x0d, 0x16, 0xce, 0xeb, 0x2f, 0xfc, 0x82, 0x60, 0x83, 0x91, 0xff, 0x30, 0x08, 0x36, 0x58, 0x68, 0x62, 0xb4, 0x78, 0xf0, 0xd8, 0x0d, 0xfa, 0xe3, 0xf1, 0x41, 0xbb, 0xcf, 0x4b, 0x07, 0x4d, 0x00, 0x31, 0x6d, 0xd0, 0xb0, 0x2c, 0xd3, 0x06, 0xed, 0xd4, 0x32, 0x6d, 0xd0, 0x00, 0x2f, 0xd3, 0x1a, 0xb4, 0xda, 0xcb, 0xb4, 0x41, 0x23, 0xc0, 0x4c, 0x1b, 0x34, 0x44, 0xd0, 0xb4, 0x41, 0x1b, 0x06, 0x4d, 0x2b, 0x08, 0x16, 0xd7, 0xd0, 0xaf, 0x76, 0x43, 0x37, 0xd9, 0x35, 0x58, 0xf2, 0x71, 0xb4, 0xc1, 0x9a, 0x8e, 0xa3, 0x0d, 0x9e, 0x3f, 0x44, 0x7f, 0xb0, 0x6a, 0x95, 0xe4, 0x60, 0xdc, 0x9a, 0x1d, 0x84, 0xa7, 0xea, 0x41, 0x5b, 0x2d, 0x4d, 0x07, 0xed, 0xe1, 0x34, 0x1d, 0xb4, 0xda, 0xcb, 0xb4, 0x20, 0xd8, 0xa0, 0xcd, 0xa6, 0xa6, 0x41, 0xb0, 0xc1, 0x42, 0x13, 0xa3, 0xc5, 0x0d, 0x5a, 0x90, 0x6f, 0x5a, 0x83, 0xc6, 0x19, 0x9e, 0x06, 0xc1, 0x86, 0x18, 0x0e, 0x82, 0x0d, 0x89, 0xa9, 0xe1, 0x17, 0x04, 0x8b, 0x83, 0x60, 0x61, 0x17, 0x04, 0x1b, 0x34, 0x15, 0x02, 0x35, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xf0, 0x0b, 0x82, 0x0d, 0x9a, 0x40, 0x81, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0xdc, 0x20, 0x96, 0x08, 0x09, 0x0e, 0xd3, 0x79, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x0e, 0x9a, 0x7c, 0x81, 0x3a, 0x68, 0x77, 0x2a, 0xea, 0xf8, 0x76, 0xd0, 0x84, 0x56, 0xd4, 0x06, 0x2d, 0x6e, 0x45, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0d, 0x3f, 0x46, 0x0d, 0x82, 0x0d, 0xda, 0x92, 0x8c, 0x5a, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x86, 0x2d, 0xa3, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xe9, 0xcd, 0xa8, 0x41, 0xb6, 0x86, 0x3c, 0xf6, 0xe2, 0x20, 0xd8, 0xa0, 0xf5, 0xcf, 0xa8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x4d, 0xa0, 0x40, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0xb8, 0x61, 0xe2, 0x36, 0x68, 0x21, 0x35, 0x6a, 0x83, 0x05, 0x0d, 0x53, 0x1b, 0xb4, 0xdb, 0x1a, 0xb5, 0x06, 0xcd, 0xc1, 0x46, 0x6d, 0xd0, 0xee, 0x4b, 0xf9, 0x06, 0x6d, 0xcc, 0x94, 0xcf, 0x06, 0x8d, 0xd7, 0x94, 0x6f, 0xd0, 0x22, 0x4e, 0xf9, 0x06, 0xad, 0xef, 0x94, 0xcf, 0x06, 0xcd, 0xfa, 0x94, 0xaf, 0x41, 0x6b, 0x41, 0xe5, 0xb3, 0x41, 0x33, 0x44, 0xe5, 0xab, 0xa1, 0x98, 0xae, 0x86, 0x19, 0x5a, 0xc3, 0xc4, 0x6d, 0x98, 0xce, 0x0d, 0x33, 0xb4, 0x86, 0x19, 0x5a, 0x43, 0x31, 0xdd, 0x60, 0xa5, 0xa0, 0xfe, 0xc1, 0x6b, 0x84, 0xe8, 0x37, 0x9c, 0x08, 0x1b, 0x44, 0x87, 0x94, 0xc2, 0x06, 0x8b, 0xd9, 0xa0, 0xd6, 0xa0, 0xc1, 0xdd, 0xa8, 0x0d, 0x1a, 0x25, 0x8e, 0xda, 0xa0, 0x81, 0xe7, 0xa8, 0x35, 0x68, 0xf7, 0x41, 0x6a, 0x83, 0x66, 0x63, 0xa4, 0x16, 0xf8, 0x3a, 0x7a, 0x83, 0xb2, 0x4b, 0x76, 0xe0, 0xeb, 0xe8, 0x0d, 0x8a, 0x41, 0xd9, 0x0d, 0xda, 0x88, 0x92, 0xda, 0xf0, 0x89, 0xcd, 0x06, 0xcd, 0x4a, 0x4b, 0x6d, 0xf8, 0xc4, 0x66, 0x83, 0x56, 0xd2, 0xa5, 0x36, 0x28, 0x59, 0xd8, 0x67, 0x99, 0x0d, 0xda, 0x7c, 0x97, 0xda, 0xa0, 0x11, 0xbe, 0xa9, 0x0d, 0x9a, 0x2a, 0xb3, 0xda, 0xa0, 0x7d, 0x44, 0xab, 0x0d, 0x5a, 0xcc, 0x1f, 0xdb, 0xa0, 0xcd, 0xfd, 0xb1, 0x0d, 0xda, 0x45, 0x35, 0xdb, 0xa0, 0xe9, 0x6a, 0xb3, 0x0d, 0xda, 0xe8, 0x58, 0x5b, 0x83, 0xb6, 0x56, 0xd6, 0x56, 0xe0, 0xc3, 0xe4, 0x0d, 0xcf, 0x93, 0x6c, 0xd0, 0xd4, 0xd5, 0xda, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xf2, 0xd0, 0x82, 0x0d, 0xca, 0x2e, 0xd9, 0x81, 0x0f, 0x93, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xd1, 0x2b, 0xa3, 0x70, 0x90, 0x46, 0x60, 0xb4, 0x1a, 0x34, 0x22, 0x90, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0x86, 0x46, 0xe1, 0xa0, 0xbd, 0x46, 0xa9, 0x35, 0x68, 0xbe, 0x58, 0x65, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x6c, 0x8d, 0xc2, 0x41, 0x33, 0x9d, 0x52, 0x6b, 0xb0, 0xd8, 0xdf, 0x67, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xcd, 0x8d, 0xc2, 0x41, 0x63, 0xa0, 0x52, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc8, 0x17, 0x2d, 0xd8, 0xa0, 0x2c, 0xc3, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb6, 0xf0, 0xd6, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4d, 0xf7, 0xad, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0x35, 0xf7, 0xc7, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x45, 0xb8, 0x76, 0xb0, 0x6c, 0xc6, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x4f, 0x5c, 0xdb, 0xf0, 0xe7, 0xd2, 0x06, 0xeb, 0x6b, 0xa6, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x0d, 0x72, 0xed, 0x60, 0x01, 0xcd, 0x74, 0xb3, 0xcc, 0x1a, 0x34, 0x5f, 0xac, 0xb2, 0xe1, 0x79, 0x92, 0x0d, 0x9a, 0xb2, 0x5c, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x91, 0x46, 0x5a, 0xb0, 0xe1, 0x2b, 0x9c, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x8f, 0xa5, 0x05, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x46, 0x59, 0xd7, 0x0e, 0x96, 0xcd, 0x38, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x58, 0x34, 0x2d, 0xd8, 0xa0, 0x20, 0x98, 0xdd, 0x60, 0x75, 0xcd, 0xf4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xca, 0x4f, 0x0b, 0x36, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x58, 0x5d, 0x33, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0x28, 0xb5, 0x60, 0x83, 0x86, 0x77, 0x2c, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x24, 0xaa, 0x16, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x89, 0xab, 0x05, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x22, 0x6b, 0xc1, 0x41, 0xbb, 0x55, 0x11, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x58, 0x6e, 0x2d, 0xd8, 0xe0, 0xe8, 0x3a, 0xb8, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0xec, 0x5a, 0x70, 0xd0, 0x6e, 0x8c, 0x42, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0x02, 0xb6, 0xe0, 0xa0, 0xa0, 0xc8, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x37, 0xb1, 0x05, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x8d, 0x6c, 0xc1, 0xc1, 0x02, 0x2a, 0xef, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xd4, 0xcd, 0x16, 0x1c, 0x2c, 0xb1, 0xdf, 0xae, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x44, 0xd3, 0x16, 0x6c, 0x10, 0xa4, 0xa7, 0x1b, 0x34, 0xe3, 0xbd, 0xb6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x21, 0xbe, 0x76, 0xb0, 0x8a, 0xd1, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x8b, 0x6d, 0xc1, 0x06, 0x41, 0x7a, 0xba, 0x41, 0xb3, 0xe8, 0x6b, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xeb, 0xec, 0x6b, 0x07, 0xeb, 0xf7, 0x99, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x24, 0xde, 0x16, 0x6c, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xb0, 0xba, 0x66, 0x7a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x3a, 0x6e, 0xc1, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0x9e, 0x5b, 0x70, 0xd0, 0x8a, 0x64, 0xc5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x5a, 0x76, 0x0b, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x16, 0xde, 0x82, 0x83, 0x05, 0x54, 0xde, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x58, 0xeb, 0x2d, 0x38, 0x58, 0x62, 0xbf, 0xdd, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x52, 0x7d, 0x0b, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xd4, 0xdf, 0x82, 0x83, 0x05, 0x54, 0xde, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x38, 0x07, 0x2e, 0x38, 0x58, 0x62, 0xbf, 0x5d, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0x46, 0xb0, 0x1d, 0xac, 0x43, 0x68, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x31, 0x2a, 0x5c, 0xb0, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xf4, 0x0e, 0x17, 0x1c, 0x34, 0x73, 0x30, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xca, 0xe2, 0x82, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x56, 0xd7, 0x4c, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb8, 0x37, 0x2e, 0xd8, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xee, 0x8f, 0x0b, 0x0e, 0x4f, 0xdc, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0x24, 0xb9, 0xe0, 0x20, 0xc5, 0xc9, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x59, 0xca, 0x05, 0x07, 0x45, 0x4e, 0x6b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0x7a, 0xb9, 0x60, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0xd5, 0x35, 0xd3, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x66, 0x9a, 0x0b, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x19, 0xe7, 0x82, 0xc3, 0x13, 0x77, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf8, 0x7a, 0x2e, 0x38, 0x48, 0x71, 0x72, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x25, 0x74, 0xc1, 0x41, 0x01, 0x9b, 0x5f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x78, 0x90, 0x2e, 0x38, 0x28, 0x28, 0x32, 0x5b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x22, 0x62, 0x3b, 0x58, 0x4c, 0xd1, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0x75, 0xba, 0x60, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0xd5, 0x35, 0xd3, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x1e, 0xaa, 0x0b, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x07, 0xeb, 0x82, 0xc3, 0x13, 0x77, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd8, 0xb9, 0x2e, 0x38, 0x38, 0x32, 0xab, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0x0e, 0xbb, 0xe0, 0xa0, 0xa0, 0xc8, 0xac, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xc1, 0x2d, 0xb6, 0x83, 0xf5, 0x22, 0xcd, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x1e, 0xb4, 0x0b, 0x0e, 0xda, 0xfa, 0xbe, 0x58, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x24, 0x63, 0x3b, 0x58, 0xef, 0xce, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0x75, 0xbb, 0x60, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x08, 0xe6, 0x2e, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xb6, 0xbb, 0x0b, 0x36, 0x28, 0x4b, 0xde, 0x37, 0x68, 0x8c, 0x56, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xf5, 0xde, 0x05, 0x07, 0x8d, 0xa3, 0x47, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0x1a, 0xbc, 0xe0, 0xa0, 0xad, 0xef, 0x8b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0x2c, 0x5e, 0x70, 0x50, 0xc0, 0xe6, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0x84, 0xbc, 0xe0, 0x60, 0x79, 0x06, 0x72, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x88, 0x2b, 0x2f, 0x38, 0x68, 0xeb, 0xfb, 0x62, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0xab, 0x79, 0xc1, 0xc1, 0xf2, 0x0c, 0xe4, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x61, 0x44, 0xb6, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x3b, 0x8e, 0x6c, 0x07, 0x6b, 0x5e, 0x9a, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xf1, 0x49, 0xb6, 0x83, 0x30, 0x1d, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x0e, 0x7a, 0xc1, 0x06, 0xa5, 0xbd, 0xe5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xa6, 0xd2, 0x0b, 0x36, 0xfc, 0xb9, 0xb4, 0x41, 0xbb, 0x1b, 0x55, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x9e, 0xd4, 0x0b, 0x36, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x04, 0xae, 0x17, 0x1c, 0x94, 0x88, 0xef, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa8, 0x6a, 0x2f, 0x38, 0x58, 0x36, 0xe3, 0xdc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x68, 0xf7, 0x82, 0x0d, 0x5f, 0xe1, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb8, 0x7f, 0x2f, 0xd8, 0xf0, 0x17, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x0d, 0xcb, 0x76, 0xb0, 0x6c, 0xc6, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x3c, 0x7c, 0xc1, 0x06, 0x41, 0x7a, 0xba, 0xc1, 0xba, 0x0b, 0xe4, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x69, 0x5d, 0xb6, 0x83, 0xf5, 0x22, 0xcd, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x9e, 0xe4, 0x0b, 0x0e, 0xda, 0xfa, 0xbe, 0x58, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x1e, 0x66, 0x3b, 0x58, 0xef, 0xce, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0x7d, 0xbe, 0x60, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x68, 0xa7, 0x2f, 0x38, 0x68, 0x52, 0xf3, 0x62, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x2f, 0xf6, 0x05, 0x07, 0x8d, 0x3f, 0xb3, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0xec, 0xbe, 0xe0, 0xa0, 0xa0, 0xc8, 0x6c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xfd, 0x9a, 0x6d, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x58, 0x37, 0xdb, 0xc1, 0x9a, 0x97, 0xe6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x61, 0x9c, 0xed, 0x20, 0x4c, 0xc7, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x71, 0x8e, 0x5f, 0xb0, 0x41, 0xb1, 0xa3, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xfd, 0xfc, 0x82, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0x62, 0xbf, 0xe0, 0xa0, 0xe1, 0xcb, 0xab, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xb4, 0xf3, 0x17, 0x1c, 0x34, 0xfe, 0xcc, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x2d, 0xff, 0x82, 0x83, 0xd6, 0x45, 0xab, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x3a, 0x82, 0xc1, 0x06, 0xe7, 0xc2, 0x85, 0x35, 0xe4, 0xb1, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xd4, 0x28, 0x18, 0x1c, 0x34, 0xd2, 0xcf, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0x6e, 0xc1, 0xe0, 0x20, 0x3c, 0x55, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xe4, 0xfe, 0x17, 0x6c, 0x70, 0xce, 0x5f, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x2e, 0x80, 0xc1, 0x41, 0x93, 0x9a, 0x17, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd8, 0x0f, 0x30, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x2a, 0x06, 0x0c, 0x0e, 0x8a, 0x2c, 0xd3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xb4, 0x13, 0x18, 0x1c, 0x34, 0xfe, 0xcc, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x2d, 0x03, 0x83, 0x83, 0xd6, 0x45, 0xab, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x51, 0x7b, 0x60, 0x70, 0xd0, 0x1a, 0x65, 0xd5, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xfc, 0x46, 0xdb, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xb5, 0x90, 0xb6, 0x83, 0xf5, 0xfb, 0xcc, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xc4, 0x49, 0xdb, 0x41, 0x98, 0x8e, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0x9f, 0xc1, 0xe0, 0xa0, 0xad, 0xef, 0x8b, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x01, 0x98, 0xb6, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x7b, 0x35, 0x6d, 0x07, 0xab, 0x91, 0xb8, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x91, 0x9d, 0xb6, 0x83, 0x30, 0x1d, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xa6, 0x83, 0xc1, 0x41, 0x5b, 0xdf, 0x17, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x13, 0x44, 0x6d, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x16, 0x93, 0xda, 0x0e, 0x96, 0x86, 0x71, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x33, 0x4f, 0x6d, 0x07, 0x61, 0x3a, 0xd6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x1b, 0x08, 0x83, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0xd6, 0x5d, 0x20, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe8, 0x8c, 0x30, 0x38, 0x68, 0x8d, 0xb2, 0xaa, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x81, 0xae, 0xb6, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x7b, 0x62, 0x6d, 0x07, 0x4b, 0xe3, 0xb8, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x11, 0xb4, 0xb6, 0x83, 0x30, 0x1d, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xd4, 0x84, 0xc1, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0x46, 0x61, 0x70, 0xd0, 0xcc, 0xc1, 0xd4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x7e, 0x2c, 0x0c, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xac, 0x0b, 0x83, 0x83, 0x12, 0xa9, 0x7a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x31, 0x19, 0x06, 0x1b, 0x94, 0x25, 0xef, 0x1b, 0x2c, 0x02, 0x19, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x92, 0x86, 0xc1, 0x41, 0xd9, 0xf4, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x18, 0x0e, 0x83, 0x83, 0xd6, 0x45, 0xab, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x6e, 0x87, 0xc1, 0x86, 0x5f, 0x94, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x4d, 0xc4, 0xb6, 0x0d, 0x7f, 0x2e, 0x6d, 0x70, 0xf2, 0x41, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x91, 0xc7, 0xb6, 0x83, 0x65, 0x33, 0xce, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x4e, 0x3e, 0x0c, 0x36, 0x5c, 0x52, 0x1b, 0x1c, 0xf6, 0x3b, 0xd6, 0x60, 0xdd, 0x05, 0xf2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x46, 0x10, 0x83, 0x83, 0xb6, 0xdd, 0x08, 0xaa, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xb5, 0xce, 0xb6, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xe3, 0xa2, 0x6d, 0x07, 0x2b, 0x17, 0xb9, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x45, 0xd4, 0xb6, 0x83, 0x30, 0x1d, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0xa6, 0x88, 0xc1, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x51, 0x3b, 0x62, 0x70, 0xd0, 0x16, 0x2a, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x1a, 0x4b, 0x0c, 0x0e, 0x5a, 0x17, 0xad, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0xbf, 0x89, 0xc1, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0xeb, 0x2e, 0x90, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x94, 0xa1, 0x18, 0x1c, 0xb4, 0x46, 0x59, 0x55, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x3b, 0xc0, 0x6d, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x66, 0x8b, 0xdb, 0x0e, 0x56, 0xad, 0x72, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x5b, 0xcb, 0x6d, 0x07, 0x61, 0x3a, 0xd6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x1c, 0x15, 0x83, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0x69, 0xc5, 0x60, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x38, 0x63, 0x31, 0xd8, 0xa0, 0x2c, 0x79, 0xdf, 0xe0, 0x68, 0xad, 0xb1, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xc0, 0x16, 0x83, 0x83, 0xb2, 0xe9, 0x7d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x69, 0x2f, 0x06, 0x07, 0xcd, 0xb5, 0x55, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xa1, 0x18, 0x83, 0x83, 0xe5, 0x19, 0xc8, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0x51, 0xc6, 0xe0, 0xa0, 0xad, 0xef, 0x8b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xcb, 0x33, 0x06, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0xb4, 0xe4, 0x56, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0x04, 0xc7, 0x60, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x08, 0xca, 0x31, 0xd8, 0xa0, 0x2c, 0x79, 0xdf, 0xa0, 0x6c, 0x41, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x96, 0x8e, 0xc1, 0x41, 0xd9, 0xf4, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x1d, 0x1e, 0x83, 0x83, 0xe6, 0xda, 0xaa, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x85, 0x8f, 0xc1, 0xc1, 0xf2, 0x0c, 0xe4, 0xd6, 0x60, 0xdd, 0x05, 0xf2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x98, 0x1a, 0x83, 0x0d, 0x97, 0xd4, 0x06, 0x8d, 0x04, 0x4b, 0xad, 0x41, 0x03, 0x23, 0x53, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x2a, 0x6d, 0x0c, 0x0e, 0x96, 0x67, 0x20, 0x57, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0x23, 0xb8, 0x1d, 0xac, 0xdf, 0x67, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x71, 0xff, 0x63, 0xb0, 0x41, 0x69, 0x6f, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x88, 0x20, 0x83, 0x0d, 0x7f, 0x2e, 0x6d, 0xd0, 0xee, 0x46, 0xd5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x06, 0x21, 0x83, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x3f, 0x43, 0x06, 0x07, 0x25, 0xe2, 0xfb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x26, 0x8a, 0x0c, 0x0e, 0x96, 0xcd, 0x38, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0xd1, 0xc8, 0x60, 0xc3, 0x57, 0x38, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x6a, 0x8f, 0x0c, 0x36, 0xfc, 0x45, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0x97, 0xb8, 0x1d, 0x2c, 0x9b, 0x71, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x11, 0x8b, 0x64, 0xb0, 0x41, 0x90, 0x9e, 0x6e, 0xb0, 0xee, 0x02, 0x79, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xfe, 0xc5, 0xed, 0x60, 0xbd, 0x48, 0xf3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x06, 0x25, 0x83, 0x83, 0xb6, 0xbe, 0x2f, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xe6, 0x71, 0xdc, 0x0e, 0xd6, 0xbb, 0x33, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x58, 0x5d, 0x32, 0xd8, 0xf0, 0x89, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x8a, 0x99, 0x0c, 0x36, 0x5c, 0x52, 0x1b, 0x1c, 0xf6, 0x3b, 0xd6, 0x60, 0x75, 0xcd, 0xf4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x13, 0x27, 0x83, 0x83, 0x96, 0x8d, 0xdc, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0xf8, 0x64, 0xb0, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x7c, 0x42, 0x19, 0x6c, 0xf8, 0x37, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xb3, 0x51, 0x06, 0x07, 0x6d, 0x7d, 0x5f, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x88, 0x97, 0x32, 0x38, 0x3c, 0x33, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x07, 0x2a, 0x83, 0x83, 0xb6, 0xbe, 0x2f, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x34, 0x55, 0x19, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x67, 0x56, 0x06, 0x07, 0x8d, 0xfb, 0x70, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0x07, 0xcb, 0xe0, 0xf0, 0xcc, 0xe4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x1e, 0xb3, 0x0c, 0x36, 0x5c, 0x52, 0x1b, 0x1c, 0xf6, 0x3b, 0xd6, 0x60, 0x75, 0xcd, 0xf4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x78, 0x2d, 0x83, 0x83, 0x26, 0xd5, 0xdc, 0x6a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x10, 0xce, 0x6d, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x7e, 0x9d, 0xdb, 0xc1, 0x9a, 0x97, 0xe6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x74, 0xcf, 0xed, 0x20, 0x4c, 0xc7, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xd1, 0xcd, 0x65, 0x70, 0xd0, 0xd6, 0xf7, 0xc5, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x24, 0xa1, 0xdb, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x05, 0x45, 0xb7, 0x83, 0xf5, 0xfb, 0xcc, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xec, 0xa3, 0xdb, 0x41, 0x98, 0x8e, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0xcf, 0xcb, 0x60, 0xc3, 0x27, 0x36, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa8, 0xfc, 0x32, 0xd8, 0x70, 0x49, 0x6d, 0x70, 0xd8, 0xef, 0x58, 0x83, 0xd5, 0x35, 0xd3, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x6a, 0xc4, 0x0c, 0x0e, 0x5a, 0x36, 0x72, 0x5b, 0x83, 0x75, 0x17, 0xc8, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xf2, 0xc1, 0x0c, 0x0e, 0x5a, 0x17, 0xad, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xe6, 0x98, 0xc1, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xd1, 0x4a, 0x66, 0xb0, 0xe1, 0xdf, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x04, 0x97, 0x19, 0x1c, 0xb4, 0xf5, 0x7d, 0xb1, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0xdf, 0xcc, 0xe0, 0xf0, 0xcc, 0xe4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x3a, 0xd0, 0x0c, 0x0e, 0xda, 0xfa, 0xbe, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0x95, 0x66, 0xb0, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xd4, 0xa9, 0x19, 0x1c, 0x34, 0xee, 0xc3, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x26, 0x36, 0x83, 0xc3, 0x33, 0x93, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe8, 0x6c, 0x33, 0xd8, 0x70, 0x49, 0x6d, 0x70, 0xd8, 0xef, 0x58, 0x83, 0xd5, 0x35, 0xd3, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x82, 0xe0, 0x0c, 0x0e, 0x9a, 0x54, 0x73, 0x5b, 0x83, 0x75, 0x17, 0xc8, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x02, 0xde, 0x0c, 0x0e, 0x5a, 0xa3, 0xac, 0xaa, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xe1, 0x65, 0xb7, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x3b, 0xd1, 0x6e, 0x07, 0xab, 0x91, 0xb8, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x71, 0x6b, 0xb7, 0x83, 0x30, 0x1d, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x8b, 0x9c, 0xc1, 0x86, 0x4f, 0x6c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x71, 0x34, 0x67, 0xb0, 0xe1, 0x92, 0xda, 0xe0, 0xb0, 0xdf, 0xb1, 0x06, 0xab, 0x6b, 0xa6, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x9c, 0xd7, 0x19, 0x1c, 0xb4, 0x6c, 0xe4, 0xb6, 0x06, 0xeb, 0x2e, 0x90, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xac, 0xd2, 0x19, 0x1c, 0xb4, 0x2e, 0x5a, 0xd5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xa5, 0x3b, 0x83, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0x0b, 0xcf, 0x60, 0xc3, 0xbf, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x98, 0xcb, 0x33, 0x38, 0x68, 0xeb, 0xfb, 0x62, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xac, 0x9e, 0xc1, 0xe1, 0x99, 0xc9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x3c, 0xef, 0x19, 0x1c, 0xb4, 0xf5, 0x7d, 0xb1, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0xa1, 0xcf, 0x60, 0x83, 0x62, 0x47, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x21, 0x7e, 0x06, 0x1b, 0xfe, 0xcd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xcd, 0x9f, 0xc1, 0xc1, 0x12, 0xfb, 0xed, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x73, 0x80, 0x06, 0x07, 0x4d, 0xaa, 0xb9, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0xca, 0xd0, 0x60, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x68, 0x3b, 0x34, 0x38, 0x68, 0xdc, 0x87, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x45, 0x89, 0x06, 0x87, 0x67, 0x26, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x51, 0xa9, 0x68, 0xb0, 0xe1, 0x92, 0xda, 0xe0, 0xb0, 0xdf, 0xb1, 0x06, 0xab, 0x6b, 0xa6, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xdc, 0x34, 0x1a, 0x1c, 0x34, 0xa9, 0xe6, 0xb6, 0x06, 0xeb, 0x2e, 0x90, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xe4, 0x2f, 0x1a, 0x1c, 0x2c, 0xb1, 0xdf, 0xae, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xb7, 0x81, 0x06, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0xad, 0xa0, 0xc1, 0x41, 0x4b, 0x1d, 0x1c, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc8, 0x1f, 0x34, 0x38, 0x3c, 0x33, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x89, 0x42, 0x83, 0x83, 0xd6, 0x28, 0xab, 0x5a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x66, 0x79, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x24, 0xf3, 0x76, 0xb0, 0x34, 0x8c, 0x7b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0xbf, 0x79, 0x3b, 0x08, 0xd3, 0xb1, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x8c, 0x3c, 0x1a, 0x6c, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xb0, 0xee, 0x02, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x22, 0xa4, 0xc1, 0x41, 0x6b, 0x94, 0x55, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0x16, 0xbd, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x59, 0x7a, 0x3b, 0x58, 0x1a, 0xc7, 0xbd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0x43, 0xbd, 0x1d, 0x84, 0xe9, 0x58, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x7a, 0x24, 0x0d, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xab, 0x49, 0x83, 0x83, 0x66, 0x0e, 0xa6, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0x52, 0x69, 0xb0, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x14, 0x59, 0x1a, 0x1c, 0x94, 0x48, 0xd5, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe8, 0xc0, 0x34, 0xd8, 0xa0, 0x2c, 0x79, 0xdf, 0x60, 0x11, 0xc8, 0xe8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x6e, 0x32, 0x0d, 0x0e, 0xca, 0xa6, 0xf7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x74, 0x6c, 0x1a, 0x1c, 0xb4, 0x2e, 0x5a, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x4e, 0x39, 0x0d, 0x36, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4d, 0xc5, 0xbd, 0x6d, 0xf8, 0x73, 0x69, 0x83, 0x93, 0x0f, 0xea, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0xdf, 0xbd, 0x1d, 0x2c, 0x9b, 0x71, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x31, 0xe1, 0x69, 0xb0, 0xe1, 0x92, 0xda, 0xe0, 0xb0, 0xdf, 0xb1, 0x06, 0xeb, 0x2e, 0x90, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xe4, 0x7d, 0x1a, 0x1c, 0xb4, 0xed, 0x46, 0x50, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8d, 0x18, 0xbe, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x5c, 0x7c, 0x3b, 0x58, 0xb9, 0xc8, 0xbd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0d, 0x45, 0xbe, 0x1d, 0x84, 0xe9, 0x58, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x0e, 0x43, 0x0d, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x50, 0x51, 0x83, 0x83, 0xb6, 0x50, 0xa9, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x91, 0x47, 0x6a, 0x70, 0xd0, 0xba, 0x68, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xd6, 0x4b, 0x0d, 0x36, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x58, 0x77, 0x81, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0xea, 0xd4, 0xe0, 0xa0, 0x35, 0xca, 0xaa, 0x5a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x47, 0x7d, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xe6, 0xfa, 0x76, 0xb0, 0x6a, 0x95, 0x7b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0xa0, 0x7d, 0x3b, 0x08, 0xd3, 0xb1, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x94, 0xa4, 0x1a, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x39, 0xaa, 0x06, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0xd4, 0xaa, 0xc1, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x47, 0x6b, 0x8d, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xb4, 0xb1, 0x1a, 0x1c, 0x94, 0x4d, 0xef, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa8, 0x72, 0x35, 0x38, 0x68, 0xae, 0xad, 0xaa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xbc, 0xc0, 0x1a, 0x1c, 0x2c, 0xcf, 0x40, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x79, 0xb1, 0x06, 0x07, 0x6d, 0x7d, 0x5f, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb8, 0x95, 0x35, 0xd8, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0xa0, 0x25, 0xb7, 0xaa, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x13, 0xb7, 0x06, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x0b, 0xae, 0xc1, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x65, 0x0b, 0xea, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x8e, 0x72, 0x0d, 0x0e, 0xca, 0xa6, 0xf7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x9c, 0xec, 0x1a, 0x1c, 0x34, 0xd7, 0x56, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x02, 0x7a, 0x0d, 0x0e, 0x96, 0x67, 0x20, 0xb7, 0x06, 0xeb, 0x2e, 0x90, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x74, 0xd0, 0x1a, 0x6c, 0xb8, 0xa4, 0x36, 0x68, 0x24, 0x58, 0x6a, 0x0d, 0x1a, 0x18, 0x99, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x11, 0x58, 0x6b, 0x70, 0xb0, 0x3c, 0x03, 0xb9, 0x5a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x8c, 0x7f, 0x3b, 0x38, 0x8b, 0x89, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x18, 0xf7, 0x35, 0xd8, 0xa0, 0xb4, 0xb7, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xff, 0xaf, 0xc1, 0x86, 0x3f, 0x97, 0x36, 0x68, 0x77, 0xa3, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x3e, 0xb0, 0xc1, 0x06, 0xa1, 0x5f, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x15, 0x61, 0x83, 0x83, 0x12, 0xf1, 0x7d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xff, 0xc3, 0x06, 0x07, 0xcb, 0x66, 0x9c, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0x57, 0x6c, 0xb0, 0xe1, 0x2b, 0x9c, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xa1, 0xc6, 0x06, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x16, 0x1d, 0xe0, 0x0e, 0x96, 0xcd, 0x38, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe8, 0x3c, 0x36, 0xd8, 0x20, 0x48, 0x4f, 0x37, 0x58, 0x77, 0x81, 0xbc, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x88, 0x01, 0x77, 0xb0, 0x5e, 0xa4, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x3e, 0xb2, 0xc1, 0x41, 0x5b, 0xdf, 0x17, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x8b, 0x21, 0x70, 0x07, 0xeb, 0xdd, 0x99, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x5c, 0x2a, 0x1b, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x97, 0xcb, 0x06, 0x07, 0x4d, 0x6a, 0x5e, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0x9b, 0xd9, 0xe0, 0xa0, 0xcd, 0x16, 0xb8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x44, 0x38, 0x1b, 0x6c, 0x70, 0x0c, 0x37, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x51, 0xf3, 0x6c, 0x70, 0xd0, 0x86, 0x0d, 0x5c, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x13, 0x3b, 0x70, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x16, 0x81, 0xe0, 0x0e, 0xd6, 0xbc, 0x34, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x33, 0x46, 0x70, 0x07, 0x61, 0x3a, 0xd6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x66, 0x68, 0x83, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0x3c, 0xda, 0x60, 0xc3, 0x23, 0xac, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa8, 0x97, 0x36, 0xd8, 0xa0, 0x98, 0xc4, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x86, 0xaa, 0xe0, 0x0e, 0x8a, 0x54, 0xcc, 0x83, 0xe6, 0x1b, 0xab, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x11, 0x45, 0x6d, 0xb0, 0xe1, 0x6d, 0xd6, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x65, 0xd5, 0x06, 0x1b, 0xfe, 0xcd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x9e, 0xb5, 0xc1, 0x41, 0x1b, 0x36, 0x70, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x62, 0xaf, 0x0d, 0x0e, 0x5a, 0x2b, 0x83, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x77, 0xd9, 0x06, 0x07, 0x6d, 0x7d, 0x5f, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa8, 0xd5, 0x36, 0xd8, 0xa0, 0xd8, 0xd1, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xf2, 0xb6, 0xc1, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x31, 0xce, 0x6d, 0x70, 0xd0, 0xf0, 0xe5, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x76, 0xbd, 0x0d, 0x0e, 0xda, 0x6c, 0x81, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x0a, 0xb8, 0xc1, 0x41, 0xeb, 0xa2, 0x55, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0x7b, 0xdd, 0x60, 0x83, 0x73, 0xe1, 0xc2, 0x1a, 0xf2, 0xd8, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x52, 0xda, 0x0d, 0x0e, 0x1a, 0xe9, 0x67, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x91, 0xe6, 0x6e, 0x70, 0x10, 0x9e, 0xaa, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x0e, 0xc3, 0x0d, 0x36, 0x38, 0xe7, 0x2f, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0x50, 0xdc, 0xe0, 0xa0, 0x49, 0xcd, 0x8b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x24, 0x8f, 0x1b, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xe3, 0xe4, 0x06, 0x07, 0x45, 0x96, 0xe9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x76, 0xcd, 0x0d, 0x0e, 0xda, 0x6c, 0x81, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x0a, 0xba, 0xc1, 0x41, 0xeb, 0xa2, 0x55, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x18, 0x4c, 0x37, 0xd8, 0xe0, 0x18, 0x6e, 0xb0, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0x54, 0xdd, 0xe0, 0xa0, 0x0d, 0x1b, 0xb8, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x5d, 0x51, 0xb8, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x33, 0xa8, 0x70, 0x07, 0xeb, 0xf7, 0x99, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xed, 0x56, 0xb8, 0x83, 0x30, 0x1d, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0xfb, 0xbb, 0xc1, 0x41, 0x5b, 0xdf, 0x17, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xcb, 0xb6, 0x70, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x86, 0x78, 0xe1, 0x0e, 0x56, 0x23, 0x71, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xeb, 0xc1, 0x70, 0x07, 0x61, 0x3a, 0xd6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xc6, 0x78, 0x83, 0x83, 0xb6, 0xbe, 0x2f, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb6, 0x95, 0xe1, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4d, 0x41, 0xc3, 0x1d, 0x2c, 0x0d, 0xe3, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xf6, 0xab, 0xe1, 0x0e, 0xc2, 0x74, 0xac, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x2b, 0xf3, 0x06, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0xac, 0xbb, 0x40, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x11, 0x49, 0x6f, 0x70, 0xd0, 0x1a, 0x65, 0x55, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xcb, 0xe3, 0x70, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x86, 0xd2, 0xe1, 0x0e, 0x96, 0xc6, 0x71, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xeb, 0xee, 0x70, 0x07, 0x61, 0x3a, 0xd6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x22, 0x7b, 0x83, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0xeb, 0xde, 0xe0, 0xa0, 0x99, 0x83, 0xa9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xcc, 0xe4, 0x1b, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x4d, 0xfa, 0x06, 0x07, 0x25, 0x52, 0xf5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x4a, 0xf8, 0x0d, 0x36, 0x28, 0x4b, 0xde, 0x37, 0x58, 0x04, 0x32, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x9f, 0x7e, 0x83, 0x83, 0xb2, 0xe9, 0x7d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x25, 0xff, 0x06, 0x07, 0xad, 0x8b, 0x56, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x57, 0x80, 0x83, 0x0d, 0xbf, 0x28, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x63, 0x0f, 0x71, 0x1b, 0xfe, 0x5c, 0xda, 0xe0, 0xe4, 0x83, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xeb, 0x15, 0x71, 0x07, 0xcb, 0x66, 0x9c, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x6c, 0x08, 0x1c, 0x6c, 0xb8, 0xa4, 0x36, 0x38, 0xec, 0x77, 0xac, 0xc1, 0xba, 0x0b, 0xe4, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x81, 0x03, 0x07, 0x07, 0x6d, 0xbb, 0x11, 0x54, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x33, 0x24, 0x71, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x56, 0x53, 0xe2, 0x0e, 0x56, 0x2e, 0x72, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x53, 0x2f, 0x71, 0x07, 0x61, 0x3a, 0xd6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xc7, 0x82, 0x83, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0xd5, 0xe0, 0xe0, 0xa0, 0x2d, 0x54, 0xaa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x04, 0x22, 0x1c, 0x1c, 0xb4, 0x2e, 0x5a, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xf9, 0x84, 0x83, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0xd6, 0x5d, 0x20, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc8, 0x5a, 0x38, 0x38, 0x68, 0x8d, 0xb2, 0xaa, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x06, 0x8e, 0xe2, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0x31, 0xc5, 0x1d, 0xac, 0x5a, 0xe5, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x46, 0xa4, 0xe2, 0x0e, 0xc2, 0x74, 0xac, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x2d, 0x0d, 0x07, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x90, 0xc3, 0xc1, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0xf5, 0x70, 0xb0, 0x41, 0x59, 0xf2, 0xbe, 0xc1, 0xd1, 0x5a, 0x63, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x75, 0x10, 0x07, 0x07, 0x65, 0xd3, 0xfb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xba, 0x24, 0x0e, 0x0e, 0x9a, 0x6b, 0xab, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x37, 0x14, 0x07, 0x07, 0xcb, 0x33, 0x90, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x60, 0xc5, 0xc1, 0x41, 0x5b, 0xdf, 0x17, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x7e, 0x2d, 0x0e, 0x36, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x68, 0xc9, 0xad, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0xc6, 0xc6, 0xc1, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x51, 0xc3, 0x71, 0xb0, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0xd9, 0x82, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xa7, 0x8e, 0x83, 0x83, 0xb2, 0xe9, 0x7d, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x2f, 0x1f, 0x07, 0x07, 0xcd, 0xb5, 0x55, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x84, 0x90, 0x83, 0x83, 0xe5, 0x19, 0xc8, 0xad, 0xc1, 0xba, 0x0b, 0xe4, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x25, 0x18, 0x07, 0x1b, 0x2e, 0xa9, 0x0d, 0x1a, 0x09, 0x96, 0x5a, 0x83, 0x06, 0x46, 0xa6, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x24, 0x66, 0x1c, 0x1c, 0x2c, 0xcf, 0x40, 0xae, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x56, 0x1f, 0xe3, 0x0e, 0x96, 0xe8, 0x3a, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x58, 0x17, 0x39, 0xd8, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0x60, 0x75, 0xcd, 0xf4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x26, 0x92, 0x83, 0x83, 0x96, 0x8d, 0xdc, 0x5a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0xec, 0x8c, 0x3b, 0x58, 0x43, 0xe9, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0xbe, 0xe4, 0x60, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x88, 0x38, 0x39, 0x38, 0x68, 0x0b, 0x95, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xe9, 0x28, 0x07, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x7a, 0xca, 0xc1, 0x41, 0x03, 0x67, 0x53, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x08, 0x59, 0x39, 0x38, 0x68, 0x6c, 0x21, 0x62, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x5f, 0x2c, 0x07, 0x07, 0xad, 0xcd, 0xc6, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xe0, 0x96, 0x83, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x56, 0xd7, 0x4c, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x18, 0x79, 0x39, 0x38, 0x68, 0xd9, 0xc8, 0xad, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x66, 0x81, 0xe3, 0x0e, 0x96, 0xcb, 0x7c, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x58, 0x87, 0x39, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x0a, 0x64, 0x0e, 0x0e, 0xda, 0x75, 0xe2, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xf7, 0xcc, 0xc1, 0x41, 0xc3, 0xcc, 0x71, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf8, 0xa9, 0x39, 0xd8, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0x60, 0x75, 0xcd, 0xf4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x50, 0x9b, 0x83, 0x83, 0x96, 0x8d, 0xdc, 0x6a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x49, 0x3b, 0xee, 0x60, 0x05, 0xd3, 0xf7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x34, 0x9c, 0x83, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x56, 0xd7, 0x4c, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x98, 0x16, 0x3a, 0x38, 0x68, 0xd9, 0xc8, 0x6d, 0x0d, 0x1a, 0x18, 0x99, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xd1, 0x9c, 0x73, 0xb0, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x9c, 0xeb, 0x1c, 0x6c, 0x50, 0x96, 0xbc, 0x6f, 0xd0, 0xc6, 0x7d, 0xd4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x02, 0x78, 0x0e, 0x0e, 0x1a, 0x47, 0x8f, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x7c, 0xcf, 0xc1, 0x41, 0x03, 0x67, 0x53, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0xfb, 0xe7, 0xe0, 0xa0, 0x8d, 0xf4, 0x82, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x3c, 0x05, 0x1d, 0x1c, 0xb4, 0xac, 0x1f, 0x57, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x2b, 0xff, 0x71, 0x07, 0x6b, 0x82, 0xce, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xf4, 0x11, 0x1d, 0x6c, 0x50, 0x90, 0xc6, 0x6e, 0xb0, 0xbc, 0x37, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x97, 0x45, 0x07, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xac, 0xd1, 0xc1, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x6d, 0xdc, 0x47, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0xf9, 0xe8, 0xe0, 0xa0, 0x71, 0xf4, 0xa8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xec, 0x26, 0x1d, 0x1c, 0x34, 0x70, 0x36, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x42, 0x97, 0x0e, 0x36, 0x28, 0x4b, 0xde, 0x37, 0x68, 0xde, 0xb4, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xbb, 0x4c, 0x07, 0x07, 0x0d, 0xa5, 0x76, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0xd3, 0xe9, 0xe0, 0xa0, 0x95, 0x0f, 0xb9, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x51, 0x00, 0x75, 0xb0, 0x41, 0xc1, 0x87, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x8c, 0xa8, 0x83, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0x46, 0xea, 0x60, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0xc6, 0x68, 0xa5, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xd1, 0x34, 0x75, 0x70, 0xd0, 0x38, 0x7a, 0xd4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x5e, 0xaa, 0x0e, 0x0e, 0x56, 0xf0, 0x86, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x7f, 0xab, 0x83, 0x83, 0x22, 0xa7, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x55, 0x58, 0x07, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0xac, 0xae, 0x99, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x71, 0x9b, 0x75, 0x70, 0xd0, 0xb2, 0x91, 0x5b, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x18, 0xd9, 0x3a, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x7a, 0xb8, 0x0e, 0x36, 0x28, 0x4b, 0xde, 0x37, 0x68, 0xf4, 0x3c, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x57, 0x5d, 0x07, 0x07, 0x8d, 0xa3, 0x47, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0xe9, 0xeb, 0xe0, 0x60, 0x79, 0x06, 0x72, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf8, 0x08, 0x3b, 0x38, 0x58, 0xc1, 0x1b, 0xda, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xc2, 0x94, 0xdc, 0xc1, 0x22, 0xad, 0xf3, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xe3, 0x62, 0x07, 0x1b, 0x1c, 0x6d, 0xf8, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x51, 0x93, 0x77, 0xb0, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0xc1, 0xba, 0x0b, 0xe4, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x97, 0x7a, 0x07, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xec, 0xde, 0xc1, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x6d, 0xdc, 0x47, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0x99, 0xef, 0xe0, 0xa0, 0x71, 0xf4, 0xa8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xec, 0xfa, 0x1d, 0x1c, 0x2c, 0xcf, 0x40, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x8d, 0x80, 0x07, 0x87, 0x67, 0x26, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xff, 0xd8, 0xc1, 0x06, 0x85, 0xa1, 0xea, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xfa, 0xc9, 0x0e, 0x0e, 0xda, 0x48, 0x2f, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0x63, 0x76, 0xb0, 0xe1, 0x2b, 0x9c, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x61, 0x67, 0x07, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xc6, 0xfd, 0xe4, 0x0e, 0xd6, 0x8e, 0x3c, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe8, 0x42, 0x3b, 0xd8, 0xf0, 0x41, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xe2, 0xd2, 0x0e, 0x36, 0xfc, 0x9b, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x42, 0xb5, 0x83, 0xc3, 0x83, 0x37, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x4a, 0xd7, 0x0e, 0x0e, 0x1a, 0x6e, 0x94, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x35, 0xdb, 0xc1, 0x41, 0x41, 0x91, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0xbe, 0xed, 0x60, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa8, 0x77, 0x3b, 0xd8, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xea, 0xdf, 0x0e, 0x0e, 0x96, 0x39, 0xc9, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0x23, 0xee, 0xe0, 0xf0, 0xe0, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x7e, 0xe4, 0x0e, 0x0e, 0x0a, 0x8a, 0xcc, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xf1, 0x35, 0x77, 0xb0, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0x41, 0x9b, 0x8e, 0x72, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x8a, 0xe9, 0x0e, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xef, 0xba, 0x83, 0xc3, 0x6b, 0x3e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x78, 0xbd, 0x3b, 0x38, 0x68, 0xb8, 0x51, 0xae, 0x6a, 0x35, 0x68, 0x44, 0x20, 0x65, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x81, 0xe0, 0xc1, 0x86, 0x5f, 0x94, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x81, 0x5c, 0xb9, 0x0d, 0x7f, 0x2e, 0x6d, 0x70, 0xa6, 0x4f, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xb9, 0x5f, 0xb9, 0x83, 0x25, 0x7d, 0xce, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xa6, 0x06, 0x0f, 0x36, 0xfc, 0x45, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4d, 0x20, 0xcb, 0x1d, 0xac, 0x7d, 0x77, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xf1, 0x44, 0x78, 0xb0, 0x41, 0x41, 0x30, 0xbb, 0xc1, 0xea, 0x9a, 0xe9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xa4, 0x16, 0x1e, 0x6c, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xb0, 0xba, 0x66, 0x7a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xc3, 0xe1, 0xc1, 0x06, 0x0d, 0xef, 0x58, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x78, 0x42, 0x3c, 0xd8, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x9e, 0x12, 0x0f, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x27, 0xc5, 0x83, 0x83, 0x76, 0xab, 0x22, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x11, 0xb9, 0x78, 0xb0, 0xc1, 0xd1, 0x75, 0x70, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0x92, 0xf1, 0xe0, 0xa0, 0xdd, 0x18, 0x85, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x77, 0xe3, 0xc1, 0x41, 0x41, 0x91, 0xd9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xfe, 0x1d, 0x0f, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xff, 0xc7, 0x83, 0x83, 0x05, 0x54, 0xde, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe8, 0x89, 0x3c, 0x38, 0x58, 0x62, 0xbf, 0x5d, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc8, 0x94, 0x3c, 0xd8, 0x20, 0x48, 0x4f, 0x37, 0x68, 0xc6, 0x7b, 0x6d, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xa0, 0x5f, 0xee, 0x60, 0x15, 0xa3, 0xf3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xfa, 0xc9, 0x83, 0x0d, 0x82, 0xf4, 0x74, 0x83, 0x66, 0xd1, 0xd7, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x06, 0x0e, 0xe6, 0x0e, 0xd6, 0xef, 0x33, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x88, 0xaa, 0x3c, 0xd8, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0x60, 0x75, 0xcd, 0xf4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x5a, 0xcb, 0x83, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0xf6, 0xf2, 0xe0, 0xa0, 0x15, 0xc9, 0x8a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xdc, 0x63, 0x1e, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xf7, 0x99, 0x07, 0x07, 0x0b, 0xa8, 0xbc, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x51, 0xb3, 0x79, 0x70, 0xb0, 0xc4, 0x7e, 0xbb, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xcc, 0x71, 0x1e, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x73, 0x9d, 0x07, 0x07, 0x0b, 0xa8, 0xbc, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x11, 0xeb, 0x79, 0x70, 0xb0, 0xc4, 0x7e, 0xbb, 0x5a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x5d, 0x99, 0x3b, 0x58, 0x87, 0xd0, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0x0d, 0xf4, 0x60, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x08, 0x0c, 0x3d, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x36, 0x45, 0x0f, 0x36, 0x28, 0x4b, 0xde, 0x37, 0x68, 0x8c, 0x56, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xb5, 0xa3, 0x07, 0x07, 0x8d, 0xa3, 0x47, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0xb2, 0xf4, 0xe0, 0xa0, 0x3d, 0x49, 0xaf, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0x78, 0x7a, 0x70, 0x50, 0xc0, 0xe6, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0x1c, 0xf5, 0xe0, 0x60, 0x79, 0x06, 0x72, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x48, 0x51, 0x3d, 0xd8, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x52, 0x56, 0x0f, 0x0e, 0x96, 0x4f, 0x21, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0x89, 0xf5, 0xe0, 0xa0, 0xc8, 0x69, 0x6d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x5b, 0xeb, 0xc1, 0x06, 0x45, 0xa7, 0xf1, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x12, 0x5d, 0x0f, 0x0e, 0x1a, 0x9e, 0x10, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x18, 0xec, 0xc1, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0xab, 0x6b, 0xa6, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x14, 0xc7, 0x1e, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xc5, 0xb2, 0x07, 0x07, 0x0b, 0xa8, 0xbc, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x71, 0x40, 0x7b, 0x70, 0xd0, 0xa4, 0xe6, 0xc5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x8a, 0x6a, 0x0f, 0x0e, 0x92, 0xd2, 0x82, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xae, 0xed, 0xc1, 0x06, 0x45, 0xa7, 0xf1, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xa6, 0x6f, 0x0f, 0x0e, 0x1a, 0xaa, 0x11, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x6a, 0xee, 0xc1, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0xaa, 0x7b, 0x70, 0xd0, 0x52, 0x4d, 0xc7, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xce, 0x77, 0x0f, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x73, 0xde, 0x83, 0x83, 0x65, 0x01, 0xc0, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x38, 0xf0, 0x3d, 0x38, 0x58, 0xb7, 0x88, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x5e, 0x7e, 0x0f, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x17, 0xe0, 0x83, 0x83, 0xe5, 0x53, 0xc8, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa8, 0x0a, 0x3e, 0x38, 0x28, 0x72, 0x5a, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0xaa, 0xf0, 0xc1, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0x3a, 0x7c, 0x70, 0xd0, 0x52, 0x4d, 0xc7, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xce, 0x89, 0x0f, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xf3, 0xe2, 0x83, 0x83, 0x65, 0x01, 0xc0, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x38, 0x38, 0x3e, 0x38, 0x58, 0xb7, 0x88, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x5e, 0x90, 0x0f, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x97, 0xe4, 0x83, 0x83, 0xe5, 0x53, 0xc8, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa8, 0x52, 0x3e, 0x38, 0x28, 0x60, 0xf3, 0x6b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xc8, 0x74, 0xee, 0x60, 0xbd, 0x3b, 0xf3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x0b, 0xe6, 0x83, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0xa2, 0xf9, 0xe0, 0x60, 0xf9, 0x14, 0xf2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x7a, 0x9c, 0x0f, 0x0e, 0x8a, 0x9c, 0xd6, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x46, 0x6b, 0xe7, 0x0e, 0x16, 0x53, 0x34, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe8, 0x7d, 0x3e, 0xd8, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0x60, 0x75, 0xcd, 0xf4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x90, 0xe8, 0x83, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0x44, 0xfa, 0xe0, 0xf0, 0xc4, 0xdd, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x9a, 0xa6, 0x0f, 0x0e, 0x8e, 0xcc, 0xaa, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x18, 0xa4, 0x3e, 0x38, 0x28, 0x28, 0x32, 0x6b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x9c, 0x79, 0xee, 0x60, 0xbd, 0x48, 0xf3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x10, 0xeb, 0x83, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0xe4, 0xfa, 0xe0, 0x60, 0xf9, 0x14, 0xf2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x8e, 0xb0, 0x0f, 0x0e, 0x0a, 0xd8, 0xfc, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x86, 0xb8, 0xe7, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0x86, 0xcf, 0x1d, 0xac, 0x79, 0x69, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xc6, 0xce, 0xe7, 0x0e, 0xc2, 0x74, 0xac, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xcf, 0xd9, 0x07, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0xb8, 0xf6, 0xc1, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xd1, 0xbf, 0x7d, 0xb0, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0x63, 0xb4, 0x52, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb8, 0xe8, 0x3e, 0x38, 0x68, 0x1c, 0x3d, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xf9, 0xde, 0x07, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xfe, 0xf7, 0xc1, 0x41, 0x93, 0x9a, 0x17, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd8, 0x09, 0x3f, 0x38, 0x48, 0x4a, 0x0b, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x96, 0xf8, 0xc1, 0x41, 0x41, 0x91, 0x59, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x88, 0x21, 0x3f, 0x38, 0x28, 0x60, 0xf3, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xd1, 0x58, 0x7e, 0x70, 0xb0, 0x3c, 0x03, 0xb9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x3c, 0x9b, 0x1f, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xcf, 0xe7, 0x07, 0x07, 0xcb, 0xa7, 0x90, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x51, 0x8f, 0x7e, 0x70, 0x50, 0xe4, 0xb4, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0x42, 0xfd, 0x60, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x48, 0x59, 0x3f, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x86, 0xd8, 0x0f, 0x36, 0x28, 0x4b, 0xde, 0x37, 0x68, 0x8c, 0x56, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x5d, 0xed, 0x07, 0x07, 0x8d, 0xa3, 0x47, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0xe7, 0xfd, 0x60, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf8, 0x81, 0x3f, 0x38, 0x68, 0x45, 0xb2, 0x62, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x81, 0xf1, 0x07, 0x07, 0x4b, 0xec, 0xb7, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xf1, 0x2b, 0x7f, 0x70, 0xb0, 0xc4, 0x7e, 0xbb, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x31, 0x4b, 0x7f, 0x70, 0x50, 0xc0, 0xe6, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0xc1, 0xfe, 0xe0, 0x60, 0x79, 0x06, 0x72, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x88, 0xba, 0x3f, 0xd8, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xa2, 0xf0, 0x0f, 0x0e, 0x96, 0x4f, 0x21, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0x2e, 0xff, 0xe0, 0xa0, 0x80, 0xcd, 0x6f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xa7, 0xfe, 0xc1, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x71, 0xbb, 0x7f, 0x70, 0x90, 0xf8, 0x19, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xc5, 0xfe, 0x83, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0xd1, 0xff, 0xe0, 0x20, 0x38, 0x52, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0xfb, 0x7f, 0x70, 0xb0, 0x2c, 0x00, 0x78, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xdb, 0x00, 0x08, 0x07, 0xeb, 0x16, 0x91, 0xab, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xa5, 0x2b, 0xba, 0x83, 0xf5, 0xfb, 0xcc, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x02, 0x05, 0x10, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xca, 0x01, 0x84, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0x95, 0x00, 0x61, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0xc6, 0x68, 0xa5, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x91, 0x5c, 0x80, 0x70, 0xd0, 0x38, 0x7a, 0xd4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x56, 0x0f, 0x10, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x55, 0x04, 0x84, 0x83, 0x26, 0x35, 0x2f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xd1, 0x9e, 0x80, 0x70, 0x90, 0x94, 0x16, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x86, 0x05, 0x84, 0x83, 0x82, 0x22, 0xb3, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x31, 0xce, 0x80, 0x70, 0x50, 0xc0, 0xe6, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0xc7, 0x01, 0xe1, 0x60, 0x79, 0x06, 0x72, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x08, 0x7c, 0x40, 0xd8, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x02, 0x21, 0x10, 0x0e, 0x96, 0x4f, 0x21, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0x34, 0x02, 0xe1, 0xa0, 0x80, 0xcd, 0x6f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xb3, 0x04, 0xc2, 0x06, 0x45, 0xa7, 0xf1, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xce, 0x27, 0x10, 0x0e, 0x1a, 0x9e, 0x10, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x6f, 0x05, 0xc2, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x31, 0x6d, 0x81, 0xb0, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xb4, 0x5f, 0x20, 0x6c, 0x50, 0x96, 0xbc, 0x6f, 0xd0, 0x18, 0xad, 0xd4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x0e, 0x32, 0x10, 0x0e, 0x1a, 0x47, 0x8f, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xba, 0x06, 0xc2, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x91, 0xbe, 0x81, 0x70, 0xd0, 0x8a, 0x64, 0xc5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x56, 0x3a, 0x10, 0x0e, 0x96, 0xd8, 0x6f, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0xcd, 0x03, 0xe1, 0x60, 0x89, 0xfd, 0x76, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0x0b, 0x04, 0xe1, 0xa0, 0x80, 0xcd, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x6e, 0x08, 0xc2, 0xc1, 0xf2, 0x0c, 0xe4, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0x2f, 0x82, 0xb0, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xec, 0x8f, 0x20, 0x1c, 0x2c, 0x9f, 0x42, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x48, 0x09, 0xc2, 0x41, 0x91, 0xd3, 0xda, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x20, 0x13, 0x84, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0xe8, 0x04, 0xe1, 0x20, 0x38, 0x52, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x11, 0x87, 0x82, 0x70, 0xb0, 0x2c, 0x00, 0x78, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x91, 0x29, 0x08, 0x07, 0xeb, 0x16, 0x91, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xf1, 0xae, 0x82, 0xb0, 0x41, 0xd1, 0x69, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x04, 0x16, 0x84, 0x83, 0x86, 0x27, 0xc4, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x11, 0xde, 0x82, 0xb0, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0xc1, 0xba, 0x0b, 0xe4, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x47, 0x2f, 0x08, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x18, 0x0c, 0xc2, 0x86, 0x4b, 0x6a, 0x83, 0xd6, 0x7b, 0xa5, 0xd6, 0xa0, 0x81, 0x91, 0xa9, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xd5, 0x31, 0x08, 0x07, 0xcb, 0x33, 0x90, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xee, 0x0c, 0xc2, 0x41, 0x6b, 0x9b, 0x62, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x68, 0xa9, 0x41, 0x38, 0x08, 0x58, 0xd6, 0xd6, 0x60, 0x49, 0x23, 0xf2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xea, 0x1b, 0x84, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0x1d, 0x07, 0xe1, 0xe0, 0x8c, 0x35, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x63, 0x1d, 0x84, 0x83, 0x75, 0x8b, 0xc8, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x28, 0xe1, 0x41, 0x38, 0x08, 0x58, 0xd6, 0xd6, 0x60, 0x75, 0xcd, 0xf4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x3b, 0x1b, 0x84, 0x83, 0x96, 0x8d, 0xdc, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x31, 0xdc, 0x83, 0xb0, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0xc1, 0xba, 0x0b, 0xe4, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x29, 0x3f, 0x08, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x10, 0x10, 0xc2, 0x86, 0x4b, 0x6a, 0x83, 0xd6, 0x7b, 0xa5, 0xd6, 0xa0, 0x81, 0x91, 0xa9, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xb7, 0x41, 0x08, 0x07, 0xcb, 0x33, 0x90, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0xe6, 0x10, 0xc2, 0x41, 0x6b, 0x9b, 0x62, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x78, 0x28, 0x42, 0x38, 0x28, 0x2a, 0xc5, 0x5b, 0x83, 0x25, 0x8d, 0xc8, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x6e, 0x8f, 0x10, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x68, 0x24, 0x84, 0x83, 0x33, 0xd6, 0xcc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x52, 0x95, 0x10, 0x0e, 0xd6, 0x2d, 0x22, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0x80, 0x09, 0xe1, 0xa0, 0xa8, 0x14, 0x6f, 0x0d, 0x56, 0xd7, 0x4c, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc8, 0x32, 0x42, 0x38, 0x68, 0x52, 0xcd, 0xad, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x9d, 0x90, 0xba, 0x83, 0xb3, 0x98, 0xe8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x05, 0x27, 0x84, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0xe3, 0x09, 0x61, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc8, 0x81, 0x42, 0xd8, 0xa0, 0x2c, 0x79, 0xdf, 0xa0, 0x31, 0x5a, 0xa9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x4c, 0x45, 0x21, 0x1c, 0x34, 0x8e, 0x1e, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x9a, 0x29, 0x84, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0x86, 0x0a, 0xe1, 0xa0, 0x49, 0xcd, 0x8b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xdc, 0x55, 0x21, 0x1c, 0x24, 0xa5, 0x05, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0xd2, 0x0a, 0x61, 0x83, 0x63, 0xb8, 0xc1, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xdd, 0x2b, 0x84, 0x83, 0x36, 0x6c, 0xe0, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x9d, 0x59, 0x08, 0x07, 0x05, 0x6c, 0xfe, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xf2, 0xb5, 0x10, 0x0e, 0x96, 0x67, 0x20, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x1d, 0x2e, 0x84, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0xa7, 0x0b, 0xe1, 0x60, 0xf9, 0x14, 0xf2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xc2, 0xbc, 0x10, 0x0e, 0x8a, 0x9c, 0xd6, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x04, 0x7e, 0x21, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x81, 0x60, 0x08, 0x07, 0x2d, 0xd5, 0x74, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0x37, 0x0c, 0x61, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe8, 0x15, 0x43, 0x38, 0x58, 0x3e, 0x85, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xf1, 0x31, 0x84, 0x83, 0x36, 0x6c, 0xe0, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x43, 0x19, 0xc2, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xf1, 0x60, 0x86, 0x70, 0xb0, 0x2c, 0x00, 0x78, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x2f, 0x67, 0x08, 0x07, 0xeb, 0x16, 0x91, 0x6b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xf7, 0xad, 0xee, 0x60, 0x89, 0xae, 0xf3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x5b, 0x34, 0x84, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x56, 0xd7, 0x4c, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd8, 0x50, 0x43, 0x38, 0x68, 0xd9, 0xc8, 0xad, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xcd, 0xbe, 0xba, 0x83, 0x35, 0x94, 0xde, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x8a, 0xd7, 0x10, 0x36, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x58, 0x5d, 0x33, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0xa5, 0x0d, 0xe1, 0xa0, 0x65, 0x23, 0xb7, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xf6, 0x16, 0xeb, 0x0e, 0x96, 0xcb, 0x7c, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x98, 0x76, 0x43, 0xd8, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0x60, 0x75, 0xcd, 0xf4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x1b, 0x38, 0x84, 0x83, 0x96, 0x8d, 0xdc, 0x5a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0xca, 0xac, 0x3b, 0x58, 0xc1, 0xf4, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0x3c, 0x0e, 0x61, 0xc3, 0x27, 0x36, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd8, 0x97, 0x43, 0xd8, 0x60, 0x49, 0xfd, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x7e, 0xed, 0x10, 0x0e, 0x9a, 0x2b, 0xad, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x91, 0x85, 0x87, 0xb0, 0xe1, 0x73, 0x97, 0x0d, 0x1a, 0x50, 0xa1, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x51, 0x95, 0x87, 0xb0, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xbc, 0xe9, 0x21, 0x1c, 0xb4, 0x58, 0x04, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x23, 0x3e, 0x84, 0x83, 0x26, 0xaa, 0xab, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0xdb, 0x87, 0x70, 0xd0, 0xb2, 0x7e, 0x5c, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x0a, 0xfe, 0x10, 0x36, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x68, 0x60, 0x64, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x1a, 0x20, 0xc2, 0x41, 0xab, 0xe7, 0x68, 0x6b, 0xb0, 0xa4, 0x11, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xd1, 0x20, 0xc2, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xf1, 0x45, 0x88, 0x70, 0x70, 0xc6, 0x9a, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x8d, 0x21, 0xc2, 0xc1, 0xba, 0x45, 0xe4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x54, 0x1e, 0x22, 0x1c, 0x34, 0x14, 0x8f, 0xd6, 0x1a, 0xac, 0xae, 0x99, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0x1d, 0x88, 0x70, 0xd0, 0xb2, 0x91, 0x5b, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xb3, 0xd6, 0x75, 0x07, 0x6b, 0x82, 0xce, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x94, 0x25, 0x22, 0x6c, 0x50, 0x90, 0xc6, 0x6e, 0xb0, 0xbc, 0x37, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x7f, 0x8a, 0x08, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xe6, 0x22, 0xc2, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x6d, 0xdc, 0x47, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0x96, 0x11, 0xe1, 0xa0, 0x71, 0xf4, 0xa8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x8c, 0x3a, 0x22, 0x1c, 0x34, 0x70, 0x36, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x16, 0x21, 0x11, 0x36, 0x28, 0x4b, 0xde, 0x37, 0x68, 0xde, 0xb4, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xa5, 0x91, 0x08, 0x07, 0x0d, 0xa5, 0x76, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0x70, 0x12, 0xe1, 0xa0, 0x95, 0x0f, 0xb9, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xf1, 0x4e, 0x89, 0xb0, 0x41, 0xc1, 0x87, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x01, 0x4b, 0x84, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0xe3, 0x12, 0x61, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0xc6, 0x68, 0xa5, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x71, 0x83, 0x89, 0x70, 0xd0, 0x38, 0x7a, 0xd4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x32, 0x34, 0x11, 0x0e, 0x56, 0xf0, 0x86, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xf4, 0x4d, 0x84, 0x83, 0x22, 0xa7, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x3f, 0x9d, 0x08, 0x07, 0xcb, 0x33, 0x90, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x91, 0xe8, 0x89, 0xb0, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0xc1, 0xea, 0x9a, 0xe9, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xed, 0x9f, 0x08, 0x07, 0x2d, 0x1b, 0xb9, 0xb5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xa7, 0x61, 0x77, 0xb0, 0x48, 0xeb, 0x7c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x73, 0x28, 0xc2, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xf1, 0x2c, 0x8a, 0x70, 0xb0, 0x7c, 0x0a, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xf5, 0xa3, 0x08, 0x07, 0x45, 0x4e, 0x6b, 0x1d, 0x4e, 0xb1, 0x35, 0x58, 0xec, 0xef, 0xb3, 0xe1, 0x79, 0x92, 0x0d, 0x1a, 0x52, 0xb1, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x31, 0x53, 0x8a, 0xb0, 0xe1, 0x2b, 0x9c, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x59, 0xa6, 0x08, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x16, 0x85, 0xec, 0x0e, 0x96, 0xcd, 0x38, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa8, 0x3a, 0x45, 0xd8, 0xa0, 0x20, 0x98, 0xdd, 0x60, 0x75, 0xcd, 0xf4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x5e, 0x51, 0x11, 0x36, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x58, 0x5d, 0x33, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0x42, 0x15, 0x61, 0x83, 0x86, 0x77, 0x2c, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x4c, 0xad, 0x22, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x53, 0xac, 0x08, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x54, 0x2b, 0xc2, 0x41, 0xbb, 0x55, 0x11, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa8, 0x74, 0x45, 0xd8, 0xe0, 0xe8, 0x3a, 0xb8, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x51, 0xf9, 0x8a, 0x70, 0xd0, 0x6e, 0x8c, 0x42, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0x1c, 0x16, 0xe1, 0xa0, 0xa0, 0xc8, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x01, 0xb2, 0x08, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xc0, 0x2c, 0xc2, 0xc1, 0x02, 0x2a, 0xef, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xfc, 0xd0, 0x22, 0x1c, 0x2c, 0xb1, 0xdf, 0xae, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x6c, 0xd6, 0x22, 0x6c, 0x10, 0xa4, 0xa7, 0x1b, 0x34, 0xe3, 0xbd, 0xb6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x78, 0x67, 0x77, 0xb0, 0x8a, 0xd1, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0xbd, 0x2d, 0xc2, 0x06, 0x41, 0x7a, 0xba, 0x41, 0xb3, 0xe8, 0x6b, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x83, 0x81, 0x76, 0x07, 0xeb, 0xf7, 0x99, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x4c, 0xe1, 0x22, 0x6c, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xb0, 0xba, 0x66, 0x7a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x6d, 0x2e, 0xc2, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x51, 0xab, 0x8b, 0x70, 0xd0, 0x8a, 0x64, 0xc5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xee, 0x77, 0x11, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x7b, 0x5e, 0x84, 0x83, 0x05, 0x54, 0xde, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa8, 0xf1, 0x45, 0x38, 0x58, 0x62, 0xbf, 0xdd, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xe6, 0x7e, 0x11, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x39, 0x60, 0x84, 0x83, 0x05, 0x54, 0xde, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x88, 0x0d, 0x46, 0x38, 0x58, 0x62, 0xbf, 0x5d, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0x98, 0xda, 0x1d, 0xac, 0x43, 0x68, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xd1, 0x36, 0x8c, 0xb0, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0xc1, 0xba, 0x0b, 0xe4, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xd1, 0xc4, 0x08, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0xac, 0xae, 0x99, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x31, 0x63, 0x8c, 0xb0, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xcc, 0x1c, 0x23, 0x1c, 0x9e, 0xb8, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x17, 0x32, 0xc2, 0x41, 0x8a, 0x93, 0xd3, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x2a, 0x93, 0x11, 0x0e, 0x8a, 0x9c, 0xd6, 0x5a, 0x83, 0xd5, 0x35, 0xd3, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xa6, 0x95, 0x11, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xe9, 0x65, 0x84, 0xc3, 0x13, 0x77, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf8, 0x67, 0x46, 0x38, 0x48, 0x71, 0x72, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x8d, 0x33, 0xc2, 0x41, 0x01, 0x9b, 0x5f, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x33, 0xd0, 0x76, 0x07, 0x8b, 0x29, 0x9a, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x64, 0x3f, 0x23, 0x6c, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xb0, 0xba, 0x66, 0x7a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x4e, 0x34, 0xc2, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0x23, 0x8d, 0x70, 0x78, 0xe2, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x67, 0xd3, 0x08, 0x07, 0x47, 0x66, 0xd5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x74, 0x52, 0x23, 0x1c, 0x14, 0x14, 0x99, 0xb5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x77, 0x6e, 0x77, 0xb0, 0x5e, 0xa4, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x8e, 0x35, 0xc2, 0xc1, 0xf2, 0x0c, 0xe4, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x35, 0x78, 0xbb, 0x83, 0xf5, 0xee, 0xcc, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x86, 0xaf, 0x11, 0x0e, 0xda, 0xfa, 0xbe, 0x58, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0xcb, 0xb7, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xee, 0x6f, 0x77, 0xb0, 0xe6, 0xa5, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x24, 0xb8, 0x3b, 0x08, 0xd3, 0xb1, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x8c, 0x65, 0x23, 0x6c, 0x50, 0xda, 0x5b, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0x4f, 0x1b, 0x61, 0xc3, 0x9f, 0x4b, 0x1b, 0xb4, 0xbb, 0x51, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0x6f, 0x1b, 0x61, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x2a, 0x37, 0xc2, 0x41, 0x89, 0xf8, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x3f, 0x6f, 0x84, 0x83, 0x65, 0x33, 0xce, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd8, 0xff, 0x46, 0xd8, 0xf0, 0x15, 0xce, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x90, 0x70, 0x84, 0x0d, 0x7f, 0xd1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x7b, 0x21, 0x77, 0x07, 0xcb, 0x66, 0x9c, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x74, 0x88, 0x23, 0x6c, 0x10, 0xa4, 0xa7, 0x1b, 0xac, 0xbb, 0x40, 0x5e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x5b, 0xb9, 0x3b, 0x58, 0x2f, 0xd2, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0x6f, 0x1c, 0xe1, 0xa0, 0xad, 0xef, 0x8b, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x3d, 0x9a, 0xbb, 0x83, 0xf5, 0xee, 0xcc, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x2e, 0xca, 0x11, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x0b, 0x73, 0x84, 0x83, 0x56, 0x24, 0x2b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x91, 0x75, 0x8e, 0x70, 0xb0, 0xc4, 0x7e, 0x7b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x97, 0xe8, 0x08, 0x07, 0x4b, 0xec, 0xb7, 0x5b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x3a, 0xba, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xcc, 0x74, 0x77, 0xb0, 0xe6, 0xa5, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x93, 0xba, 0x3b, 0x08, 0xd3, 0xb1, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xd4, 0xa8, 0x23, 0x1c, 0xb4, 0xf5, 0x7d, 0xb1, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xb5, 0x75, 0xb7, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x1a, 0xec, 0xee, 0x60, 0xfd, 0x3e, 0xf3, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x67, 0x76, 0x77, 0x10, 0xa6, 0x63, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x98, 0x5e, 0x47, 0x38, 0x58, 0x9e, 0x81, 0xbc, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xf6, 0x76, 0xb7, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x9b, 0xee, 0xee, 0x60, 0x35, 0x12, 0xf7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xa8, 0x77, 0x77, 0x10, 0xa6, 0x63, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd8, 0x6a, 0x47, 0x38, 0x58, 0x9e, 0x81, 0xbc, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x36, 0x78, 0xb7, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x1c, 0xf1, 0xee, 0x60, 0x69, 0x18, 0xf7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xe8, 0x78, 0x77, 0x10, 0xa6, 0x63, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x18, 0x77, 0x47, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xfa, 0xdf, 0x11, 0x0e, 0xda, 0x75, 0xe2, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x75, 0x3c, 0xc2, 0x41, 0xeb, 0xa2, 0x55, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x38, 0x9a, 0x47, 0xd8, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0x60, 0xdd, 0x05, 0xf2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x56, 0x7a, 0x84, 0x83, 0xd6, 0x28, 0xab, 0x6a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xc7, 0xf4, 0x6e, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xec, 0xea, 0xdd, 0xc1, 0xd2, 0x38, 0xee, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x2b, 0xf6, 0xee, 0x20, 0x4c, 0xc7, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xf1, 0x67, 0x8f, 0xb0, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x64, 0xde, 0x23, 0x1c, 0x34, 0x73, 0x30, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xb6, 0x7c, 0x84, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0x50, 0x1f, 0xe1, 0xa0, 0x44, 0xaa, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x17, 0x3f, 0xc2, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x8b, 0x40, 0x46, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x91, 0xd7, 0x8f, 0x70, 0x50, 0x36, 0xbd, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0xeb, 0x1f, 0xe1, 0xa0, 0x75, 0xd1, 0xaa, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x91, 0x0e, 0x90, 0xb0, 0xe1, 0x17, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x3a, 0xfa, 0x6e, 0xc3, 0x9f, 0x4b, 0x1b, 0x9c, 0x7c, 0x50, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x0b, 0xfb, 0xee, 0x60, 0xd9, 0x8c, 0xf3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x2a, 0x81, 0x84, 0x0d, 0x97, 0xd4, 0x06, 0x87, 0xfd, 0x8e, 0x35, 0x58, 0x77, 0x81, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0x77, 0x20, 0xe1, 0xa0, 0x6d, 0x37, 0x82, 0x6a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xd4, 0xfc, 0x6e, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x06, 0xfb, 0xdd, 0xc1, 0xca, 0x45, 0xee, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x38, 0xfe, 0xee, 0x20, 0x4c, 0xc7, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x91, 0x5c, 0x90, 0xb0, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x8c, 0x1b, 0x24, 0x1c, 0xb4, 0x85, 0x4a, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x5d, 0x84, 0x84, 0x83, 0xd6, 0x45, 0xab, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xd1, 0xa2, 0x90, 0xb0, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0xc1, 0xba, 0x0b, 0xe4, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x93, 0x0b, 0x09, 0x07, 0xad, 0x51, 0x56, 0xd5, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x5c, 0x02, 0xde, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x75, 0x07, 0xbc, 0x83, 0x55, 0xab, 0xdc, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x24, 0x05, 0xde, 0x41, 0x98, 0x8e, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0xac, 0x21, 0x61, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd8, 0x73, 0x48, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x2a, 0x1f, 0x12, 0x36, 0x28, 0x4b, 0xde, 0x37, 0x38, 0x5a, 0x6b, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0x15, 0x22, 0xe1, 0xa0, 0x6c, 0x7a, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0xa5, 0x44, 0xc2, 0x41, 0x73, 0x6d, 0x55, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0x8e, 0x22, 0xe1, 0x60, 0x79, 0x06, 0x72, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd8, 0xad, 0x48, 0x38, 0x68, 0xeb, 0xfb, 0x62, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xbe, 0x45, 0xc2, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0x2d, 0xb9, 0x55, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa8, 0xda, 0x48, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xde, 0x38, 0x12, 0x36, 0x28, 0x4b, 0xde, 0x37, 0x28, 0x5b, 0x50, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x91, 0xd8, 0x91, 0x70, 0x50, 0x36, 0xbd, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0xed, 0x23, 0xe1, 0xa0, 0xb9, 0xb6, 0xaa, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x31, 0x14, 0x92, 0x70, 0xb0, 0x3c, 0x03, 0xb9, 0x35, 0x58, 0x77, 0x81, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0x0b, 0x23, 0x61, 0xc3, 0x25, 0xb5, 0x41, 0x23, 0xc1, 0x52, 0x6b, 0xd0, 0xc0, 0xc8, 0xd4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xe1, 0x8c, 0x84, 0x83, 0xe5, 0x19, 0xc8, 0x55, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x2b, 0x52, 0x78, 0x07, 0xeb, 0xf7, 0x99, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x94, 0x8c, 0x24, 0x6c, 0x50, 0xda, 0x5b, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0x87, 0x24, 0x61, 0xc3, 0x9f, 0x4b, 0x1b, 0xb4, 0xbb, 0x51, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0xa7, 0x24, 0x61, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x9b, 0x49, 0xc2, 0x41, 0x89, 0xf8, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x20, 0x94, 0x84, 0x83, 0x65, 0x33, 0xce, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe8, 0x4d, 0x49, 0xd8, 0xf0, 0x15, 0xce, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x71, 0x95, 0x84, 0x0d, 0x7f, 0xd1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x2b, 0x6f, 0x78, 0x07, 0xcb, 0x66, 0x9c, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x7c, 0xaf, 0x24, 0x6c, 0x10, 0xa4, 0xa7, 0x1b, 0xac, 0xbb, 0x40, 0x5e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0xc9, 0xc3, 0x3b, 0x58, 0x2f, 0xd2, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0xa7, 0x25, 0xe1, 0xa0, 0xad, 0xef, 0x8b, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x15, 0x41, 0xbc, 0x83, 0xf5, 0xee, 0xcc, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xb2, 0x5d, 0x12, 0x36, 0x28, 0x76, 0x34, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xd1, 0xfe, 0x92, 0xb0, 0xe1, 0xdf, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x04, 0xc4, 0x24, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x01, 0x32, 0x09, 0x07, 0xad, 0x48, 0x56, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0x68, 0x26, 0x61, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x18, 0xa2, 0x49, 0x38, 0x58, 0x40, 0xe5, 0xbd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xc0, 0x9a, 0x84, 0x83, 0x25, 0xf6, 0xdb, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0xd7, 0x26, 0x61, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf8, 0xbd, 0x49, 0x38, 0x58, 0x40, 0xe5, 0xbd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x7e, 0x9c, 0x84, 0x83, 0x25, 0xf6, 0xdb, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0x47, 0x27, 0xe1, 0xa0, 0xdd, 0x18, 0x85, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xa4, 0xff, 0x24, 0x1c, 0x2c, 0xcf, 0x40, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x71, 0xb6, 0x93, 0xb0, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x9c, 0xf1, 0x24, 0x1c, 0x34, 0xa9, 0x79, 0xb1, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xd4, 0x9e, 0x84, 0x83, 0xa4, 0xb4, 0xe0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x24, 0xfb, 0x24, 0x1c, 0x14, 0x14, 0x99, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0xef, 0xe2, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x0b, 0xc6, 0x3b, 0x58, 0xf3, 0xd2, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4d, 0x1c, 0xe3, 0x1d, 0x84, 0xe9, 0x58, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xe2, 0x82, 0x12, 0x0e, 0x96, 0x67, 0x20, 0xaf, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0x3f, 0xe3, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0xab, 0xc6, 0x3b, 0x58, 0xbf, 0xcf, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0x6c, 0xe3, 0x1d, 0x84, 0xe9, 0x58, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xf2, 0x85, 0x12, 0x36, 0x28, 0x48, 0x63, 0x37, 0x58, 0xb5, 0xae, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x09, 0xa2, 0x84, 0x0d, 0x97, 0xd4, 0x06, 0x87, 0xfd, 0x8e, 0x35, 0x58, 0x5d, 0x33, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0xd6, 0x28, 0xe1, 0xa0, 0x65, 0x23, 0xb7, 0x35, 0x58, 0x77, 0x81, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0xae, 0x28, 0xe1, 0xa0, 0x75, 0xd1, 0xaa, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x5c, 0x20, 0x25, 0x6c, 0x50, 0x90, 0xc6, 0x6e, 0x30, 0x78, 0x50, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x11, 0x93, 0x94, 0xb0, 0xe1, 0x92, 0xda, 0xe0, 0xb0, 0xdf, 0xb1, 0x06, 0xab, 0x6b, 0xa6, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x54, 0x2f, 0x25, 0x1c, 0x34, 0xa9, 0xe6, 0xb6, 0x06, 0xeb, 0x2e, 0x90, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x54, 0x2a, 0x25, 0x1c, 0xb4, 0x46, 0x59, 0xd5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xa1, 0xa6, 0x84, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0xcb, 0x29, 0xe1, 0xa0, 0x99, 0x83, 0xa9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xd4, 0x40, 0x25, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x4f, 0x51, 0x09, 0x07, 0x8d, 0xfb, 0x70, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0x64, 0x2a, 0xe1, 0x60, 0x21, 0xc2, 0xee, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x0a, 0xa9, 0x12, 0x0e, 0x16, 0x70, 0xc2, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xfb, 0xaa, 0x84, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0xe2, 0x2a, 0xe1, 0xa0, 0x71, 0x1f, 0xae, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xa4, 0x63, 0x25, 0x1c, 0x2c, 0x44, 0xd8, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x91, 0x56, 0xc2, 0x41, 0x6b, 0x94, 0x55, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0x7b, 0x2b, 0x61, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc8, 0xe7, 0x4a, 0x38, 0x68, 0xdc, 0x87, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xd1, 0x5e, 0x09, 0x07, 0xad, 0x8b, 0x56, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0x08, 0x2c, 0xe1, 0x60, 0x01, 0x27, 0x7c, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa8, 0x0d, 0x4b, 0x38, 0x28, 0x28, 0x32, 0x5b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0xa3, 0xc9, 0xdb, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x9e, 0x93, 0x77, 0xb0, 0x1a, 0x89, 0x7b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0xfc, 0xc9, 0x3b, 0x08, 0xd3, 0xb1, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x4c, 0x8d, 0x25, 0x6c, 0xf8, 0xc4, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x6d, 0x64, 0x09, 0x1b, 0x2e, 0xa9, 0x0d, 0x0e, 0xfb, 0x1d, 0x6b, 0xb0, 0xba, 0x66, 0x7a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xc3, 0x59, 0xc2, 0x41, 0xcb, 0x46, 0x6e, 0x6b, 0xb0, 0xee, 0x02, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x74, 0x59, 0xc2, 0x41, 0xeb, 0xa2, 0x55, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x88, 0x43, 0x4b, 0xd8, 0xf0, 0x41, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x0a, 0xd3, 0x12, 0x36, 0xfc, 0x9b, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x4c, 0xb5, 0x84, 0x83, 0xb6, 0xbe, 0x2f, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x5c, 0xaf, 0x25, 0x1c, 0x9e, 0x99, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x3d, 0x5b, 0xc2, 0x41, 0x5b, 0xdf, 0x17, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x66, 0xdc, 0x12, 0x36, 0x28, 0x76, 0x34, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x71, 0xf4, 0x96, 0xb0, 0xe1, 0xdf, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x6c, 0xc1, 0x25, 0x1c, 0x2c, 0xb1, 0xdf, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x91, 0x19, 0x97, 0x70, 0xd0, 0xa4, 0x9a, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xf2, 0xee, 0x12, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x49, 0xbc, 0x84, 0x83, 0xc6, 0x7d, 0xb8, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0xa6, 0x97, 0x70, 0x78, 0x66, 0x72, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xbb, 0x7b, 0x09, 0x1b, 0x2e, 0xa9, 0x0d, 0x0e, 0xfb, 0x1d, 0x6b, 0xb0, 0xba, 0x66, 0x7a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x97, 0x5f, 0xc2, 0x41, 0x93, 0x6a, 0x6e, 0x6b, 0xb0, 0xee, 0x02, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x47, 0x5f, 0xc2, 0xc1, 0x12, 0xfb, 0xed, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xd1, 0x2d, 0x97, 0xb0, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x74, 0xcf, 0x25, 0x1c, 0xb4, 0xd4, 0xc1, 0xb1, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x8f, 0xba, 0x84, 0xc3, 0x33, 0x93, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc8, 0xb1, 0x4b, 0x38, 0x68, 0x8d, 0xb2, 0xaa, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xb9, 0xca, 0xbc, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xeb, 0x9a, 0x79, 0x07, 0x4b, 0xc3, 0xb8, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x49, 0xd0, 0xbc, 0x83, 0x30, 0x1d, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x12, 0x60, 0xc2, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0xeb, 0x2e, 0x90, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xbc, 0x06, 0x26, 0x1c, 0xb4, 0x46, 0x59, 0xd5, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x98, 0x6b, 0xde, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xed, 0xd9, 0xbc, 0x83, 0xa5, 0x71, 0xdc, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x60, 0x6e, 0xde, 0x41, 0x98, 0x8e, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0x6c, 0x30, 0x61, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe8, 0x23, 0x4c, 0x38, 0x68, 0xe6, 0x60, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x51, 0x86, 0x09, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0xda, 0x61, 0xc2, 0x41, 0x89, 0x54, 0xbd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xa1, 0xc4, 0x84, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x16, 0x81, 0x8c, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0x4b, 0x31, 0xe1, 0xa0, 0x6c, 0x7a, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x10, 0x63, 0xc2, 0x41, 0xeb, 0xa2, 0x55, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0xb9, 0x31, 0x61, 0xc3, 0x2f, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x7e, 0x76, 0xde, 0x86, 0x3f, 0x97, 0x36, 0x38, 0xf9, 0xa0, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x20, 0x78, 0xde, 0xc1, 0xb2, 0x19, 0xe7, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x39, 0x8f, 0x09, 0x1b, 0x2e, 0xa9, 0x0d, 0x0e, 0xfb, 0x1d, 0x6b, 0xb0, 0xee, 0x02, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x27, 0x64, 0xc2, 0x41, 0xdb, 0x6e, 0x04, 0xd5, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xb2, 0x7b, 0xde, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x21, 0xfa, 0xbc, 0x83, 0x95, 0x8b, 0xdc, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x7a, 0x7e, 0xde, 0x41, 0x98, 0x8e, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0x55, 0x32, 0x61, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x38, 0x9e, 0x4c, 0x38, 0x68, 0x0b, 0x95, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x9f, 0x95, 0x09, 0x07, 0xad, 0x8b, 0x56, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0xe2, 0x32, 0x61, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x75, 0x17, 0xc8, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xee, 0x30, 0x13, 0x0e, 0x5a, 0xa3, 0xac, 0xaa, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xcd, 0x08, 0xbd, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x13, 0x17, 0x7a, 0x07, 0xab, 0x56, 0xb9, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x5d, 0x0e, 0xbd, 0x83, 0x30, 0x1d, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x92, 0x66, 0xc2, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xf1, 0xb5, 0x99, 0xb0, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xe4, 0x71, 0x26, 0x6c, 0x50, 0x96, 0xbc, 0x6f, 0x70, 0xb4, 0xd6, 0x58, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x64, 0x67, 0xc2, 0x41, 0xd9, 0xf4, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xbd, 0xcf, 0x84, 0x83, 0xe6, 0xda, 0xaa, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x55, 0x68, 0xc2, 0xc1, 0xf2, 0x0c, 0xe4, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xf1, 0x29, 0x9a, 0x70, 0xd0, 0xd6, 0xf7, 0xc5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xee, 0xd1, 0x84, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x5a, 0x72, 0xab, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x91, 0x83, 0x9a, 0xb0, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x4c, 0xa5, 0x26, 0x6c, 0x50, 0x96, 0xbc, 0x6f, 0x50, 0xb6, 0xa0, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0x4d, 0x35, 0xe1, 0xa0, 0x6c, 0x7a, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x13, 0x6b, 0xc2, 0x41, 0x73, 0x6d, 0x55, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0xc4, 0x35, 0xe1, 0x60, 0x79, 0x06, 0x72, 0x6b, 0xb0, 0xee, 0x02, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x50, 0x69, 0xc2, 0x86, 0x4b, 0x6a, 0x83, 0x46, 0x82, 0xa5, 0xd6, 0xa0, 0x81, 0x91, 0xa9, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xa7, 0xa6, 0x09, 0x07, 0xcb, 0x33, 0x90, 0xab, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x21, 0x2d, 0xbd, 0x83, 0xb3, 0x98, 0xe8, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x04, 0xd8, 0x84, 0x0d, 0x4a, 0x7b, 0xcb, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x8c, 0xc4, 0x26, 0x6c, 0xf8, 0x73, 0x69, 0x83, 0x76, 0x37, 0xaa, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x7c, 0xc8, 0x26, 0x6c, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x88, 0x9a, 0x4d, 0x38, 0x28, 0x11, 0xdf, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x51, 0x52, 0x9b, 0x70, 0xb0, 0x6c, 0xc6, 0xb9, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xa1, 0xb6, 0x09, 0x1b, 0xbe, 0xc2, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x71, 0x7c, 0x9b, 0xb0, 0xe1, 0x2f, 0x9a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xe6, 0x4e, 0xef, 0x60, 0xd9, 0x8c, 0xf3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x61, 0xdc, 0x84, 0x0d, 0x82, 0xf4, 0x74, 0x83, 0x75, 0x17, 0xc8, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x33, 0x81, 0x7a, 0x07, 0xeb, 0x45, 0x9a, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x7c, 0xe8, 0x26, 0x1c, 0xb4, 0xf5, 0x7d, 0xb1, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xa3, 0xa8, 0x77, 0xb0, 0xde, 0x9d, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xef, 0x6e, 0xc2, 0xc1, 0x12, 0xfb, 0xed, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x95, 0x49, 0xbd, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xa3, 0x98, 0x7a, 0x07, 0x6b, 0x5e, 0x9a, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x25, 0x4f, 0xbd, 0x83, 0x30, 0x1d, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x56, 0x6f, 0xc2, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xf1, 0xe6, 0x9b, 0xb0, 0xe1, 0xdf, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x0c, 0xfe, 0x26, 0x1c, 0xb4, 0x46, 0x59, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0x17, 0x38, 0x61, 0x83, 0x63, 0xb8, 0xc1, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xee, 0xe0, 0x84, 0x83, 0x36, 0x6c, 0xe0, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x91, 0x31, 0x9c, 0x70, 0xd0, 0xd6, 0xf7, 0xc5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x2b, 0xe2, 0x84, 0x83, 0xe5, 0x19, 0xc8, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x9b, 0xba, 0x7a, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x26, 0x80, 0xf5, 0x0e, 0xd6, 0xef, 0x33, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xbb, 0xc5, 0x7a, 0x07, 0x61, 0x3a, 0xd6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xef, 0xe2, 0x84, 0x83, 0xe5, 0x19, 0xc8, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xa3, 0xce, 0x7a, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x36, 0xa8, 0xf5, 0x0e, 0x56, 0x23, 0x71, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xc3, 0xd9, 0x7a, 0x07, 0x61, 0x3a, 0xd6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xb3, 0xe3, 0x84, 0x83, 0xe5, 0x19, 0xc8, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xab, 0xe2, 0x7a, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x46, 0xd0, 0xf5, 0x0e, 0x96, 0x86, 0x71, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xcb, 0xed, 0x7a, 0x07, 0x61, 0x3a, 0xd6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x77, 0xe4, 0x84, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0x41, 0x39, 0xe1, 0xa0, 0x5d, 0x27, 0xae, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x84, 0x2f, 0x27, 0x1c, 0xb4, 0x2e, 0x5a, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xa9, 0xe6, 0x84, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0xd6, 0x5d, 0x20, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc8, 0x75, 0x4e, 0x38, 0x68, 0x8d, 0xb2, 0xaa, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xf6, 0x0a, 0xf6, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0x2b, 0xec, 0x1d, 0x2c, 0x8d, 0xe3, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x36, 0x21, 0xf6, 0x0e, 0xc2, 0x74, 0xac, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x8b, 0xd0, 0x09, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x69, 0x74, 0xc2, 0x41, 0x33, 0x07, 0x53, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc8, 0x9b, 0x4e, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x26, 0xa9, 0x13, 0x0e, 0x4a, 0xa4, 0xea, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xac, 0x59, 0x27, 0x6c, 0x50, 0x96, 0xbc, 0x6f, 0xb0, 0x08, 0x64, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x85, 0xd7, 0x09, 0x07, 0x65, 0xd3, 0xfb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xd6, 0xb2, 0x13, 0x0e, 0x5a, 0x17, 0xad, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xf5, 0xda, 0x09, 0x1b, 0x7e, 0x51, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x26, 0x62, 0xf6, 0x36, 0xfc, 0xb9, 0xb4, 0xc1, 0xc9, 0x07, 0x75, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x36, 0x6f, 0xf6, 0x0e, 0x96, 0xcd, 0x38, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x08, 0xe3, 0x4e, 0xd8, 0x70, 0x49, 0x6d, 0x70, 0xd8, 0xef, 0x58, 0x83, 0x75, 0x17, 0xc8, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x8e, 0xbb, 0x13, 0x0e, 0xda, 0x76, 0x23, 0xa8, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xc6, 0x8b, 0xf6, 0x36, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0x2d, 0xed, 0x1d, 0xac, 0x5c, 0xe4, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x06, 0xa2, 0xf6, 0x0e, 0xc2, 0x74, 0xac, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xd5, 0xdf, 0x09, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x3b, 0x78, 0xc2, 0x41, 0x5b, 0xa8, 0x54, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x38, 0x16, 0x4f, 0x38, 0x68, 0x5d, 0xb4, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x39, 0xe4, 0x09, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0xac, 0xbb, 0x40, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xf1, 0x59, 0x9e, 0x70, 0xd0, 0x1a, 0x65, 0x55, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0xa2, 0xed, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x71, 0xdb, 0x3b, 0x58, 0xb5, 0xca, 0xbd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4d, 0xcf, 0xed, 0x1d, 0x84, 0xe9, 0x58, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xe6, 0xce, 0x13, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x43, 0xf4, 0x84, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0x34, 0x3d, 0x61, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0xa3, 0xb5, 0xc6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x76, 0xd5, 0x13, 0x0e, 0xca, 0xa6, 0xf7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x8c, 0xb2, 0x27, 0x1c, 0x34, 0xd7, 0x56, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xfa, 0xdc, 0x13, 0x0e, 0x96, 0x67, 0x20, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xe3, 0xf7, 0x84, 0x83, 0xb6, 0xbe, 0x2f, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x14, 0xc4, 0x27, 0x6c, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xd0, 0x92, 0x5b, 0xd5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xb0, 0xfa, 0x84, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0xcf, 0x3e, 0x61, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0xb2, 0x05, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x95, 0xf7, 0x09, 0x07, 0x65, 0xd3, 0xfb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xea, 0xf2, 0x13, 0x0e, 0x9a, 0x6b, 0xab, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x4f, 0xfb, 0x09, 0x07, 0xcb, 0x33, 0x90, 0x5b, 0x83, 0x75, 0x17, 0xc8, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xd6, 0xe4, 0x13, 0x36, 0x5c, 0x52, 0x1b, 0x34, 0x12, 0x2c, 0xb5, 0x06, 0x0d, 0x8c, 0x4c, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x78, 0x9e, 0x4f, 0x38, 0x58, 0x9e, 0x81, 0x5c, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0xc5, 0xee, 0x1d, 0x2c, 0xd1, 0x75, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x11, 0xd3, 0x9f, 0xb0, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0xc1, 0xea, 0x9a, 0xe9, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x93, 0xfe, 0x09, 0x07, 0x2d, 0x1b, 0xb9, 0xb5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xf3, 0xbb, 0x77, 0xb0, 0x86, 0xd2, 0x7b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x0f, 0x80, 0xc2, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0xab, 0x6b, 0xa6, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x7c, 0x06, 0x28, 0x1c, 0xb4, 0x6c, 0xe4, 0xd6, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x46, 0xf3, 0xde, 0xc1, 0x72, 0x99, 0xef, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x49, 0x03, 0x0a, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0xac, 0xae, 0x99, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0x4a, 0xa0, 0x70, 0xd0, 0xb2, 0x91, 0x5b, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xfb, 0xda, 0x7b, 0x07, 0x2b, 0x98, 0xbe, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x54, 0x19, 0x28, 0x6c, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xb0, 0xba, 0x66, 0x7a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x2f, 0x84, 0xc2, 0x41, 0xcb, 0x46, 0x6e, 0x6b, 0xd0, 0xc0, 0xc8, 0xd4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xdc, 0x03, 0x85, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0x1a, 0x41, 0x61, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x36, 0xee, 0xa3, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xd1, 0x9e, 0xa0, 0x70, 0xd0, 0x38, 0x7a, 0xd4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xba, 0x17, 0x14, 0x0e, 0x1a, 0x38, 0x9b, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xc7, 0x0d, 0x0a, 0x07, 0x6d, 0xa4, 0x17, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0xe7, 0x41, 0xe1, 0xa0, 0x65, 0xfd, 0xb8, 0x5a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0xf8, 0xdf, 0x3b, 0x58, 0x13, 0x74, 0xbe, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0x4d, 0x42, 0x61, 0x83, 0x82, 0x34, 0x76, 0x83, 0xe5, 0xbd, 0xa1, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x18, 0x9c, 0x50, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x3a, 0x29, 0x14, 0x36, 0x28, 0x4b, 0xde, 0x37, 0x68, 0xe3, 0x3e, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xb7, 0x15, 0x0a, 0x07, 0x8d, 0xa3, 0x47, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0xf4, 0x42, 0xe1, 0xa0, 0x81, 0xb3, 0xa9, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xd1, 0x98, 0xa1, 0xb0, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0xf3, 0xa6, 0x5d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x38, 0xd5, 0x50, 0x38, 0x68, 0x28, 0xb5, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x89, 0x1c, 0x0a, 0x07, 0xad, 0x7c, 0xc8, 0xd5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xf8, 0x0e, 0x85, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x14, 0x7c, 0x28, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x1f, 0x20, 0x0a, 0x1b, 0x94, 0x25, 0xef, 0x1b, 0x34, 0x46, 0x2b, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x9c, 0x10, 0x85, 0x83, 0xc6, 0xd1, 0xa3, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0x31, 0xa2, 0x70, 0xb0, 0x82, 0x37, 0xb4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xac, 0x93, 0x28, 0x1c, 0x14, 0x39, 0xad, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x08, 0x32, 0x51, 0xd8, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0x60, 0x75, 0xcd, 0xf4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xd1, 0x13, 0x85, 0x83, 0x96, 0x8d, 0xdc, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x43, 0x8a, 0xc2, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x91, 0xa2, 0xa2, 0xb0, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0xeb, 0x6a, 0x52, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x18, 0x5a, 0x51, 0x38, 0x68, 0x1c, 0x3d, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x31, 0x2d, 0x0a, 0x07, 0xcb, 0x33, 0x90, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0xc0, 0x8b, 0xc2, 0xc1, 0x0a, 0xde, 0xd0, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x26, 0xa2, 0xf8, 0x0e, 0x16, 0x69, 0x9d, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x38, 0x86, 0x51, 0x38, 0x58, 0x9e, 0x81, 0xdc, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x07, 0x4d, 0x64, 0xf1, 0x1d, 0xb4, 0x44, 0xf1, 0x77, 0xd0, 0x70, 0xcc, 0xdf, 0xe1, 0x14, 0x3b, 0x68, 0xaf, 0xf4, 0x6f, 0x83, 0xa6, 0x4f, 0x01, 0xd7, 0xa0, 0x41, 0x5b, 0xc0, 0x35, 0x68, 0x92, 0x19, 0x70, 0x83, 0xa6, 0xab, 0x01, 0x17, 0xf8, 0xba, 0x79, 0xc3, 0xf3, 0x24, 0x1b, 0x34, 0x8a, 0x22, 0xb8, 0x41, 0x29, 0x21, 0xbe, 0x41, 0x2b, 0x30, 0x82, 0x1b, 0x94, 0x65, 0xd8, 0x1b, 0xb4, 0xe6, 0x28, 0x38, 0xcb, 0x6c, 0xd0, 0x7a, 0xa4, 0xe0, 0x06, 0xad, 0xd6, 0x0d, 0x6e, 0xd0, 0x58, 0xa0, 0xe1, 0xac, 0x41, 0xdb, 0xd6, 0x86, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x12, 0x90, 0x14, 0x36, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0d, 0x76, 0x1b, 0x6e, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x17, 0x37, 0xdc, 0xf0, 0xe7, 0xd2, 0x06, 0x43, 0x61, 0x71, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb6, 0xd2, 0x0d, 0x0f, 0x1a, 0xb0, 0x14, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xe6, 0xdd, 0x0d, 0x37, 0xfc, 0xb9, 0xb4, 0x41, 0x3b, 0xf2, 0x86, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x58, 0x6f, 0x78, 0x10, 0xa6, 0x63, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb8, 0x4b, 0x52, 0xd8, 0xf0, 0x17, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xe1, 0x6f, 0x78, 0x70, 0x26, 0x18, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x31, 0xa7, 0xa4, 0xb0, 0xc1, 0x92, 0xfa, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xe1, 0xe0, 0x70, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x22, 0xc3, 0xe1, 0x41, 0xe3, 0x0e, 0x87, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xfa, 0xc4, 0xe1, 0x06, 0x05, 0xc1, 0xec, 0x06, 0xed, 0x1e, 0x0b, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xbb, 0x1a, 0x87, 0x07, 0xcd, 0xa9, 0x0b, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x1a, 0xc8, 0xe1, 0x41, 0xdb, 0x22, 0x87, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xe4, 0xc9, 0xe1, 0x06, 0x4b, 0xea, 0x97, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x8d, 0x96, 0xc3, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x93, 0x32, 0x87, 0x07, 0x8d, 0xd3, 0x1c, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x2b, 0x3a, 0x87, 0x07, 0x2d, 0xf2, 0x1c, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xdb, 0x40, 0x87, 0x1b, 0x2c, 0xa9, 0x5f, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xc6, 0x8c, 0x0e, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0x2f, 0x1d, 0x1e, 0xb4, 0xe2, 0x74, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2d, 0x4c, 0x1d, 0x1e, 0x1c, 0x59, 0xf2, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x51, 0xac, 0xc3, 0x0d, 0x4e, 0xec, 0x37, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x86, 0xd7, 0xe1, 0xc1, 0xd9, 0xd0, 0x65, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x36, 0xc7, 0x0e, 0x37, 0x28, 0xed, 0x2d, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x85, 0xb4, 0xc3, 0x0d, 0x7f, 0x2e, 0x6d, 0xd0, 0xee, 0x46, 0xd5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4d, 0xbe, 0x1d, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x42, 0xdd, 0xe1, 0x41, 0x89, 0xf8, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0xea, 0x1d, 0x6e, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x00, 0x3c, 0x3c, 0x28, 0xb3, 0x74, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xd9, 0xc2, 0xc3, 0x83, 0x30, 0x1d, 0xab, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x5a, 0x3c, 0xdc, 0xf0, 0x15, 0xce, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0d, 0x42, 0x1e, 0x6e, 0xf8, 0x8b, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0xaf, 0x3c, 0xdc, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xb9, 0xcd, 0xc3, 0x83, 0xb2, 0x09, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x08, 0x3d, 0x3c, 0x38, 0x13, 0x8c, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xa3, 0xa6, 0x87, 0x1b, 0x04, 0xe9, 0xe9, 0x06, 0xed, 0x1e, 0x0b, 0xae, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0xb4, 0x1e, 0x1e, 0xac, 0x77, 0x67, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x61, 0xd9, 0xc3, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0xda, 0x3d, 0x16, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xe9, 0xdc, 0xc3, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x53, 0xbf, 0x87, 0x1b, 0x14, 0x93, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x3c, 0xf1, 0xe1, 0xe1, 0x87, 0x9a, 0x83, 0xc6, 0x7a, 0x0e, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xb9, 0xe5, 0xc3, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xeb, 0xd0, 0x87, 0x07, 0x8d, 0xbe, 0x14, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x9b, 0xd6, 0x87, 0x07, 0x49, 0x69, 0xc1, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x10, 0xf7, 0xe1, 0x06, 0x85, 0xa1, 0xea, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x1c, 0x7e, 0x78, 0xd0, 0x6a, 0x52, 0xe1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xad, 0x9d, 0x1f, 0x6e, 0xf8, 0x0a, 0x67, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x76, 0xd9, 0x0f, 0x37, 0xfc, 0x45, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0xc8, 0x1f, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xec, 0xfd, 0xe1, 0x41, 0x48, 0x99, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x3b, 0xfd, 0x87, 0x07, 0x8d, 0x4e, 0x09, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xf3, 0x02, 0x88, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xa6, 0x10, 0x10, 0x0f, 0x96, 0xd8, 0x6f, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xf3, 0x0d, 0x88, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xf6, 0x26, 0x10, 0x37, 0x28, 0x26, 0x31, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x91, 0x0c, 0xc4, 0xc3, 0x0f, 0x35, 0x07, 0x2d, 0x71, 0x20, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x2b, 0x20, 0x88, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x66, 0x4b, 0x10, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0d, 0xad, 0x20, 0x1e, 0x34, 0xfa, 0x52, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2d, 0xc4, 0x20, 0x1e, 0x24, 0xa5, 0x05, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4d, 0xdb, 0x20, 0x1e, 0x14, 0x14, 0x99, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x1e, 0x0f, 0xe2, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0x8d, 0xf5, 0x1c, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xf0, 0x10, 0xe2, 0x41, 0x33, 0x46, 0x88, 0xd5, 0x6a, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xa8, 0x12, 0xe2, 0x41, 0xdb, 0x38, 0x82, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x03, 0x85, 0xb8, 0x41, 0x61, 0xa8, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2d, 0x57, 0x21, 0x1e, 0x14, 0x14, 0x99, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xb4, 0x85, 0xb8, 0xc1, 0x39, 0x7f, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x05, 0x43, 0x3c, 0x58, 0xd5, 0x20, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8d, 0x99, 0x21, 0x6e, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x5e, 0x43, 0xdc, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x15, 0x87, 0x78, 0xb0, 0x3a, 0xac, 0x6d, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0xb7, 0x43, 0x3c, 0x28, 0x28, 0x32, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x26, 0xf9, 0x10, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4d, 0x08, 0x22, 0x1e, 0xac, 0x0e, 0x6b, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x86, 0x0f, 0x11, 0x0f, 0x0a, 0x8a, 0xcc, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xb5, 0x46, 0xc4, 0x83, 0x82, 0x22, 0xb3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x98, 0x44, 0xdc, 0xf0, 0x15, 0xce, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0x60, 0x22, 0x6e, 0xf8, 0x8b, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0xec, 0x44, 0xdc, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x95, 0x51, 0xc4, 0x83, 0x90, 0x32, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x66, 0x51, 0x11, 0x0f, 0xce, 0x04, 0xa3, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x94, 0x2b, 0xe2, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0x8d, 0xf5, 0x1c, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xe3, 0xb4, 0x88, 0x07, 0x05, 0x45, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xad, 0xe9, 0x22, 0x6e, 0x50, 0x10, 0xcc, 0x6e, 0xd0, 0x58, 0xcf, 0xe1, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x0f, 0x8c, 0x78, 0x10, 0x9e, 0xaa, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x67, 0x8c, 0xb8, 0x41, 0xc1, 0x87, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8d, 0x2f, 0x23, 0x6e, 0x50, 0x4c, 0x62, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x83, 0xd1, 0x88, 0x87, 0x1f, 0x6a, 0x0e, 0xda, 0xa4, 0x46, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x35, 0x6c, 0xc4, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xb3, 0xdd, 0x88, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x56, 0xc6, 0x11, 0x0f, 0x4f, 0xdc, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x8b, 0xe8, 0x88, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x06, 0xdc, 0x11, 0x0f, 0x0a, 0xa2, 0xe5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x73, 0x1e, 0xf1, 0xa0, 0xa8, 0x14, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x66, 0xf2, 0x11, 0x0f, 0x9a, 0xdc, 0x47, 0xac, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xfc, 0x1f, 0x71, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0xc6, 0x7a, 0x0e, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xe4, 0x20, 0xf1, 0xa0, 0x19, 0x23, 0xc4, 0x5a, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x68, 0x48, 0x3c, 0x68, 0x6f, 0x47, 0x70, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x66, 0x25, 0x12, 0x37, 0x7c, 0x62, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0x60, 0x24, 0x6e, 0xf8, 0xdc, 0x65, 0x83, 0xf6, 0xa7, 0xfc, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xd4, 0x23, 0x71, 0x83, 0xf3, 0x60, 0xc7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8d, 0x90, 0x24, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x4d, 0x49, 0x3c, 0x68, 0x80, 0x25, 0x71, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x82, 0x49, 0x3c, 0x68, 0x56, 0x26, 0xb1, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0xb8, 0x49, 0xdc, 0xf0, 0x89, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xc4, 0x93, 0xb8, 0xe1, 0x73, 0x97, 0x0d, 0x5a, 0xfc, 0x49, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x69, 0xa1, 0xc4, 0x0d, 0x97, 0xd4, 0x06, 0xed, 0x76, 0xf9, 0xad, 0x41, 0x03, 0x23, 0x53, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xa5, 0x94, 0x78, 0xd0, 0x22, 0xcf, 0x61, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x00, 0x95, 0xb8, 0xe1, 0x13, 0x9b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xaa, 0x2a, 0x71, 0xc3, 0xe7, 0x2e, 0x1b, 0xb4, 0x89, 0x95, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xe3, 0x5b, 0x89, 0x1b, 0xac, 0x91, 0x6a, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x06, 0xc3, 0x12, 0x0f, 0xce, 0x04, 0xa3, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x71, 0x96, 0xb8, 0xc1, 0x82, 0x90, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x9b, 0x2d, 0xf1, 0xa0, 0x9d, 0xb7, 0xc4, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x9b, 0x4b, 0xdc, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x90, 0x97, 0x78, 0xb0, 0x80, 0xfe, 0x77, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0xf5, 0x4b, 0x3c, 0x08, 0x58, 0xd6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x8a, 0x30, 0xf1, 0x60, 0x59, 0x00, 0xf0, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xa1, 0x98, 0x78, 0x78, 0x4c, 0xa6, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x7c, 0x4c, 0xdc, 0x60, 0x51, 0x79, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x51, 0x99, 0x78, 0x50, 0x50, 0x64, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xa3, 0x9a, 0x89, 0x07, 0x0b, 0xda, 0xd7, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x25, 0xd0, 0xc4, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xc3, 0xa5, 0x89, 0x07, 0x05, 0x45, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xb4, 0x9a, 0x78, 0x50, 0x50, 0x64, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xd3, 0xb0, 0x89, 0x07, 0x05, 0x45, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x65, 0x9b, 0x78, 0x50, 0x50, 0x64, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xf3, 0xbb, 0x89, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x76, 0x82, 0x13, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0x1a, 0x27, 0x1e, 0x9e, 0xb8, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x26, 0x98, 0x13, 0x0f, 0x96, 0x45, 0xd2, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xbb, 0xd1, 0x89, 0x07, 0x2d, 0x13, 0x0f, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x73, 0xd7, 0x89, 0x07, 0xab, 0xc3, 0xda, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x91, 0xee, 0xc4, 0x83, 0x82, 0x22, 0xb3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x59, 0x3c, 0xf1, 0xa0, 0x99, 0xf2, 0xc4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x30, 0x3d, 0xf1, 0xa0, 0xa0, 0xc8, 0x6c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xe9, 0x3d, 0xf1, 0xa0, 0x99, 0x1f, 0xc1, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0xa7, 0x4f, 0xdc, 0xa0, 0x30, 0x54, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xe6, 0xf4, 0x13, 0x0f, 0x0a, 0x8a, 0xcc, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0xff, 0x4f, 0xdc, 0xe0, 0x9c, 0xbf, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8d, 0x15, 0x28, 0x1e, 0xac, 0x6a, 0x10, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x16, 0x16, 0x14, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2d, 0x42, 0x28, 0x6e, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0xb0, 0x50, 0x3c, 0x58, 0xec, 0x73, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8d, 0x6e, 0x28, 0x1e, 0x14, 0x14, 0x99, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x43, 0x21, 0x8a, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x86, 0x4d, 0x14, 0x0f, 0x16, 0x45, 0xd3, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x73, 0x2c, 0x8a, 0x07, 0xcb, 0x2e, 0xe1, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x11, 0x19, 0xc5, 0x83, 0x82, 0x22, 0xb3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xf9, 0x46, 0x71, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x54, 0x8f, 0xe2, 0xc1, 0xb2, 0x4b, 0xb8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x61, 0x48, 0xf1, 0x60, 0x8d, 0x0f, 0xed, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x8c, 0xa4, 0x78, 0x50, 0x50, 0x64, 0xd6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0d, 0x3a, 0x29, 0x6e, 0xf8, 0x0a, 0x67, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x76, 0xa7, 0x14, 0x37, 0xfc, 0x45, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0x64, 0x29, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xaa, 0x97, 0xe2, 0x41, 0x48, 0x99, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x33, 0x64, 0x8a, 0x07, 0x67, 0x82, 0xd1, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x3a, 0x4d, 0x71, 0x83, 0x12, 0x1e, 0x73, 0x83, 0xc6, 0x7a, 0x0e, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x31, 0x38, 0xc5, 0x83, 0x82, 0x22, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xd6, 0xeb, 0x14, 0x37, 0x28, 0x08, 0x66, 0x37, 0x68, 0xac, 0xe7, 0x70, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0xe3, 0x53, 0x3c, 0x08, 0x4f, 0xd5, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x0f, 0x54, 0xdc, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x73, 0xa8, 0xb8, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x97, 0x51, 0xf1, 0xf0, 0xc4, 0xdd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x21, 0xa9, 0xb8, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xf3, 0x52, 0xf1, 0x60, 0x19, 0xf6, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xd4, 0xa9, 0xb8, 0xc1, 0x1a, 0xa9, 0xa6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x62, 0x54, 0xf1, 0xf0, 0x43, 0xcd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0xa1, 0x2a, 0x1e, 0x34, 0xb9, 0x8f, 0x58, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x92, 0xab, 0xe2, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0x8d, 0xf5, 0x1c, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x64, 0xad, 0xe2, 0x41, 0x33, 0x46, 0x88, 0xb5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xb8, 0xab, 0x78, 0xd0, 0x74, 0x90, 0xe0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8d, 0x04, 0x2b, 0x6e, 0x50, 0x18, 0xaa, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xb3, 0xc6, 0x8a, 0x07, 0x05, 0x45, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xad, 0x30, 0x2b, 0x6e, 0x70, 0xce, 0x5f, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x46, 0xa3, 0x15, 0x0f, 0x56, 0x35, 0x08, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x4b, 0xd7, 0x8a, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x96, 0xb9, 0x15, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0d, 0x89, 0x2b, 0x1e, 0x2c, 0xf6, 0xb9, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xc6, 0xcf, 0x15, 0x0f, 0x0a, 0x8a, 0xcc, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xc1, 0x76, 0xc5, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x03, 0xf3, 0x8a, 0x07, 0x8b, 0xa2, 0x69, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x59, 0x7c, 0xc5, 0x83, 0x45, 0xd1, 0xb4, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x98, 0xbf, 0xe2, 0x41, 0x41, 0x91, 0xd9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x40, 0xb0, 0xb8, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x32, 0x61, 0xf1, 0x60, 0x8d, 0x0f, 0xed, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xf4, 0xb0, 0x78, 0xb0, 0xc6, 0x87, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0xa8, 0x58, 0x3c, 0x28, 0x28, 0x32, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x86, 0x35, 0x16, 0x37, 0x7c, 0x85, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xfb, 0x1f, 0x8b, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb6, 0x4a, 0x16, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x5d, 0x65, 0xf1, 0x20, 0xa4, 0x4c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x39, 0x98, 0xc5, 0x83, 0x33, 0xc1, 0x68, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x61, 0xb3, 0xb8, 0x41, 0x09, 0x8f, 0xb9, 0x41, 0x63, 0x3d, 0x87, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x28, 0xcf, 0xe2, 0x41, 0x41, 0x91, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x2b, 0x42, 0x8b, 0x1b, 0x14, 0x04, 0xb3, 0x1b, 0x34, 0xd6, 0x73, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0x22, 0x2d, 0x1e, 0x84, 0xa7, 0xea, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0x38, 0x2d, 0x6e, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x9b, 0x5a, 0xdc, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x8f, 0xb5, 0x78, 0x70, 0x36, 0x74, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x16, 0xbd, 0x16, 0x37, 0x5c, 0x52, 0x1b, 0x1c, 0xf6, 0x3b, 0xd6, 0xa0, 0xdd, 0x63, 0xc1, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x30, 0x5b, 0x3c, 0x68, 0xd8, 0x56, 0x70, 0x0d, 0x1a, 0xeb, 0x39, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x75, 0xb6, 0xc5, 0x83, 0x26, 0xf7, 0x11, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x96, 0x5b, 0xdc, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0xa0, 0xb1, 0x9e, 0xc3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0xd0, 0x5b, 0x3c, 0x68, 0xc6, 0x08, 0xb1, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x26, 0x00, 0x17, 0x0f, 0x5a, 0x24, 0x12, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xd5, 0xc2, 0xc5, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x13, 0x8b, 0x8b, 0x07, 0x05, 0x45, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x09, 0xb9, 0x78, 0x78, 0xe2, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0xaf, 0x5c, 0xdc, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xb8, 0xb9, 0x78, 0xd0, 0x78, 0xe7, 0xe2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x23, 0xba, 0xb8, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xf7, 0x74, 0xf1, 0x20, 0x01, 0x76, 0x78, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x6b, 0x5d, 0x3c, 0x68, 0x91, 0xe7, 0xb0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x65, 0x76, 0xf1, 0x60, 0x41, 0xdc, 0xec, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x8e, 0xbb, 0x78, 0xd0, 0xd6, 0xee, 0x62, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0xfc, 0x2e, 0x1e, 0xac, 0x17, 0x69, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x65, 0xe2, 0xc5, 0x83, 0x82, 0x22, 0x73, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x49, 0x79, 0x71, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xf0, 0xf3, 0xe2, 0x41, 0x2b, 0x49, 0x82, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x5a, 0xf5, 0xe2, 0x41, 0x98, 0x8e, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xf3, 0xda, 0x8b, 0x1b, 0x14, 0x3b, 0x9a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x1c, 0xf8, 0xe2, 0x06, 0xc5, 0x24, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x61, 0xbe, 0x78, 0xf8, 0xa1, 0xe6, 0xa0, 0xb1, 0x9e, 0xc3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x90, 0x7d, 0xf1, 0xa0, 0xa0, 0xc8, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xfd, 0xf8, 0xc5, 0x0d, 0xce, 0xf9, 0x4b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xdc, 0xfd, 0xe2, 0x41, 0x41, 0x91, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0xf3, 0x2f, 0x1e, 0x9e, 0xb8, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x25, 0x01, 0xc6, 0x0d, 0x9f, 0xd8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x93, 0x07, 0x8c, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x36, 0x1a, 0x18, 0x0f, 0x16, 0xec, 0xa0, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xc3, 0x12, 0x8c, 0x07, 0x8d, 0xd6, 0x0b, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x7b, 0x18, 0x8c, 0x1b, 0xac, 0x10, 0x6a, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x96, 0x3c, 0x18, 0x0f, 0xd6, 0x15, 0x8c, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x03, 0x24, 0x8c, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x26, 0x53, 0x18, 0x0f, 0x96, 0x55, 0x82, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x53, 0x2f, 0x8c, 0x07, 0xcb, 0x91, 0x85, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x89, 0x1a, 0xc6, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xa3, 0x3a, 0x8c, 0x07, 0x0b, 0x15, 0x43, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x31, 0x20, 0xc6, 0x83, 0x85, 0x84, 0xa1, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0d, 0x19, 0x31, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x5e, 0x62, 0x3c, 0x58, 0xa8, 0x18, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0x46, 0x31, 0x1e, 0xac, 0x7a, 0x0f, 0xad, 0x36, 0x38, 0x39, 0xc8, 0x6d, 0xf8, 0x72, 0x72, 0x0d, 0x4a, 0x09, 0xf1, 0x8d, 0xe7, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xb0, 0xc5, 0xb8, 0x41, 0x59, 0xf2, 0xbe, 0xc1, 0x1a, 0x8a, 0xbc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x38, 0x8c, 0xf1, 0x60, 0xe1, 0xe9, 0xf9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x77, 0xc6, 0xb8, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x9f, 0x8d, 0xf1, 0x20, 0x29, 0x2d, 0x78, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x95, 0x63, 0x3c, 0x68, 0xb4, 0x5e, 0x70, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0xc3, 0x63, 0x3c, 0x68, 0x91, 0xe7, 0xb0, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb6, 0xfc, 0x18, 0x0f, 0x52, 0x06, 0x83, 0x37, 0x28, 0x25, 0xc4, 0x37, 0x9e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x5a, 0x21, 0xe3, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x6b, 0x28, 0xf2, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x15, 0x46, 0xc6, 0x83, 0x85, 0xa7, 0xe7, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x76, 0x24, 0xe3, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xb1, 0x4b, 0xc6, 0x83, 0xa4, 0xb4, 0xe0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xa1, 0x93, 0xf1, 0x20, 0x11, 0x2e, 0x78, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x15, 0x65, 0x3c, 0x68, 0x91, 0xe7, 0xb0, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x66, 0x51, 0x19, 0x0f, 0x4e, 0x3f, 0xae, 0x1b, 0x94, 0x12, 0xe2, 0x1b, 0xcf, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xf7, 0x95, 0x71, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x4e, 0x2d, 0xe3, 0x41, 0xe3, 0x9d, 0x8b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xbc, 0x2e, 0xe3, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x3d, 0x60, 0xc6, 0x83, 0x82, 0x68, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x30, 0x66, 0x3c, 0x28, 0x2a, 0xc5, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xd5, 0x65, 0xc6, 0x83, 0x16, 0x79, 0x0e, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xe6, 0xa2, 0x19, 0x0f, 0x16, 0x55, 0xc0, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x33, 0xd7, 0x8c, 0x07, 0x05, 0x45, 0x66, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xfb, 0xdc, 0x8c, 0x07, 0xeb, 0x23, 0xd2, 0x37, 0x28, 0x25, 0xc4, 0x37, 0x9e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x04, 0x39, 0xe3, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xc9, 0x74, 0xc6, 0x83, 0xf5, 0xd2, 0x6f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xd0, 0x3b, 0xe3, 0x06, 0xc5, 0x8e, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x4f, 0xcf, 0xb8, 0xe1, 0xdf, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x4e, 0x9f, 0xf1, 0xf0, 0xe0, 0xcd, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4d, 0xff, 0x33, 0x1e, 0xb4, 0xc8, 0x73, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2d, 0x16, 0x34, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x58, 0x68, 0x3c, 0x28, 0x88, 0x96, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x61, 0x88, 0xc6, 0x83, 0xa2, 0x52, 0x7c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0xb3, 0x68, 0x3c, 0x68, 0x91, 0xe7, 0xb0, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0xe1, 0x68, 0xdc, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x1c, 0xd2, 0x78, 0xb0, 0xf6, 0x9c, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x3c, 0x69, 0x3c, 0x28, 0x28, 0x32, 0xab, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xb5, 0x96, 0xc6, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xe3, 0x32, 0x8d, 0x07, 0xab, 0x91, 0xb8, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x41, 0x9c, 0xc6, 0x83, 0x30, 0x1d, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x16, 0x7c, 0x1a, 0x37, 0x3c, 0x4f, 0xb2, 0x41, 0x33, 0x41, 0x8d, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x06, 0x96, 0x1a, 0x0f, 0x0a, 0x8a, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x11, 0xaa, 0x71, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x80, 0x55, 0xe3, 0x41, 0x03, 0x2c, 0x89, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xea, 0x56, 0xe3, 0xc1, 0x91, 0x25, 0xaf, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xf6, 0xc2, 0x1a, 0x37, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0x9b, 0x35, 0x1e, 0x2c, 0x0d, 0xe3, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x26, 0xd9, 0x1a, 0x0f, 0xc2, 0x74, 0xac, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x90, 0x6b, 0xdc, 0xf0, 0x89, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x78, 0xd7, 0xb8, 0xe1, 0x73, 0x97, 0x0d, 0x5a, 0x4c, 0xec, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x05, 0xbf, 0xc6, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0xda, 0x3d, 0x16, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x91, 0xc2, 0xc6, 0x83, 0xd6, 0xf3, 0x07, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x6d, 0xc5, 0xc6, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x9a, 0xd6, 0xec, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xd6, 0x22, 0x1b, 0x0f, 0x0a, 0x8a, 0xcc, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0xb7, 0x6c, 0xdc, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xc2, 0xd9, 0x78, 0x50, 0x50, 0x64, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xb3, 0xa1, 0x8d, 0x07, 0x0b, 0xda, 0xd7, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xa9, 0xd3, 0xc6, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xd3, 0xac, 0x8d, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xa6, 0x64, 0x1b, 0x0f, 0x56, 0x9e, 0xd2, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x03, 0xb8, 0x8d, 0x07, 0x05, 0x45, 0x66, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x6a, 0x6f, 0xe3, 0x41, 0x41, 0x91, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0d, 0x0d, 0x37, 0x1e, 0x14, 0x14, 0x99, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x36, 0x72, 0xe3, 0x41, 0x41, 0x91, 0xd9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xe8, 0xdc, 0xb8, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x82, 0xba, 0xf1, 0xf0, 0xc4, 0xdd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x99, 0xdd, 0xb8, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xe4, 0xbb, 0xf1, 0x60, 0x19, 0xf6, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x4e, 0xde, 0x78, 0xd0, 0x68, 0xbd, 0x60, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xcb, 0xea, 0x8d, 0x07, 0xed, 0xb4, 0x37, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xeb, 0xf1, 0x8d, 0x07, 0x05, 0x45, 0x66, 0xab, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xb3, 0xf7, 0x8d, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x56, 0xfa, 0x1b, 0x0f, 0xda, 0xd7, 0x12, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xa6, 0x05, 0x1c, 0x0f, 0xc2, 0x74, 0xac, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x42, 0x70, 0xdc, 0xf0, 0x41, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xdb, 0xe0, 0xb8, 0xe1, 0xdf, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x66, 0xc2, 0xf1, 0xa0, 0xa0, 0xc8, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x55, 0x0c, 0xc7, 0x83, 0x16, 0x79, 0x0e, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x2d, 0x0f, 0xc7, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xd3, 0x23, 0x8e, 0x07, 0x05, 0x45, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x95, 0xe2, 0x78, 0x78, 0xe2, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x76, 0x71, 0x3c, 0x58, 0xb7, 0x0e, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0xd1, 0x38, 0x1e, 0x14, 0x14, 0x99, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x82, 0x8e, 0xe3, 0x06, 0x47, 0x1b, 0xbe, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xf0, 0xc7, 0x71, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x55, 0xcc, 0xa8, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x90, 0x91, 0xe3, 0x41, 0x41, 0x91, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xbb, 0x4b, 0x8e, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x36, 0xa2, 0x1c, 0x0f, 0x0a, 0x8a, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xd4, 0xca, 0xf1, 0x60, 0x55, 0x83, 0xf0, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xc4, 0xe5, 0xb8, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x3a, 0xcc, 0x71, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xd4, 0x99, 0xe3, 0xc1, 0x62, 0x9f, 0xbb, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xa0, 0xcd, 0xf1, 0xa0, 0xa0, 0xc8, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x95, 0x73, 0xdc, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x83, 0xe7, 0x78, 0xb0, 0x6e, 0x1d, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0xef, 0x73, 0x3c, 0x58, 0x3a, 0x41, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xad, 0x0e, 0x3a, 0x1e, 0x14, 0x14, 0x99, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x63, 0x89, 0x8e, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xe6, 0x1d, 0x1d, 0x0f, 0x16, 0x69, 0xce, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xb3, 0x94, 0x8e, 0x07, 0x05, 0x45, 0x66, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x7b, 0x9a, 0x8e, 0x07, 0xad, 0x73, 0x3a, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x93, 0xa1, 0x8e, 0x1b, 0x3e, 0x77, 0xd9, 0x60, 0x1d, 0x33, 0xea, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8d, 0x9f, 0x3a, 0x6e, 0xf8, 0x0a, 0x67, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x36, 0x5a, 0x1d, 0x37, 0xfc, 0x45, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0xc9, 0x3a, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x04, 0xae, 0xe3, 0x41, 0xd9, 0x84, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xad, 0xf6, 0x3a, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xd2, 0xb0, 0xe3, 0x41, 0x48, 0x99, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xd3, 0xc8, 0x8e, 0x07, 0x67, 0x82, 0xd1, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x41, 0x67, 0xc7, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xcb, 0xd3, 0x8e, 0x1b, 0x14, 0x93, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x5a, 0xb6, 0xe3, 0xe1, 0x87, 0x9a, 0x83, 0xc6, 0x7a, 0x0e, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xed, 0x6f, 0xc7, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xaf, 0xdc, 0x71, 0xc3, 0xbf, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xbc, 0xba, 0xe3, 0x41, 0x41, 0x91, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x6b, 0xf0, 0x8e, 0x07, 0x2d, 0xf2, 0x1c, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x23, 0xf6, 0x8e, 0x07, 0x05, 0x45, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xad, 0xee, 0x3b, 0x6e, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x09, 0x78, 0x3c, 0x28, 0x28, 0x32, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x61, 0x83, 0xc7, 0x83, 0x82, 0x22, 0xb3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x62, 0x78, 0xdc, 0xf0, 0x89, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x1a, 0xf1, 0xb8, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xe4, 0xe2, 0x71, 0xc3, 0xe7, 0x2e, 0x1b, 0x2c, 0xe4, 0x86, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xd5, 0x8e, 0xc7, 0x0d, 0x97, 0xd4, 0x06, 0x87, 0xfd, 0x8e, 0x35, 0x68, 0xf7, 0x58, 0x70, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x36, 0x4a, 0x1e, 0x0f, 0x5a, 0xcf, 0x1f, 0x5c, 0x83, 0xc6, 0x7a, 0x0e, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x7f, 0xe5, 0xf1, 0xa0, 0xc9, 0x7d, 0xc4, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xe9, 0x98, 0xc7, 0x0d, 0x9f, 0xbb, 0x6c, 0xd0, 0x4a, 0xcd, 0xe3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0xe1, 0x3c, 0x6e, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xd0, 0x58, 0xcf, 0xe1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0xfe, 0x3c, 0x1e, 0x34, 0x63, 0x84, 0x58, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x57, 0xf4, 0xb8, 0x41, 0xb1, 0xa3, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8d, 0x2b, 0x3d, 0x6e, 0x78, 0x84, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x83, 0x7a, 0xdc, 0xa0, 0x98, 0xc4, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x06, 0xac, 0x1e, 0x0f, 0x8a, 0x54, 0xcc, 0x83, 0x65, 0xdc, 0xf0, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x28, 0xd7, 0xe3, 0x06, 0xc5, 0x24, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x25, 0xf6, 0x78, 0x50, 0xa4, 0x62, 0x1e, 0x34, 0x5a, 0xf6, 0xd8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x92, 0xf6, 0x78, 0x50, 0x50, 0x64, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xa8, 0xdb, 0xe3, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xf5, 0xb9, 0xc7, 0x83, 0x82, 0x22, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0xcb, 0x7b, 0x3c, 0x68, 0x78, 0xef, 0x71, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x03, 0x7c, 0x3c, 0x68, 0x59, 0xf0, 0xb1, 0xd5, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xcd, 0xc3, 0xc7, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x13, 0x8d, 0x8f, 0x07, 0x4b, 0xf2, 0xc1, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x59, 0xc9, 0xc7, 0x83, 0x30, 0x1d, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x76, 0x30, 0x1f, 0x37, 0x7c, 0x85, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x83, 0x9d, 0x8f, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xc6, 0x45, 0x1f, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x0e, 0xf5, 0xf1, 0xa0, 0x6c, 0xc2, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x16, 0x5c, 0x1f, 0x0f, 0xce, 0x04, 0xa3, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xea, 0xec, 0xe3, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0xad, 0x87, 0x0b, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x3b, 0xba, 0x8f, 0x07, 0x05, 0x45, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0xfe, 0x3e, 0x6e, 0xf8, 0xc4, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x27, 0x7e, 0xdc, 0xf0, 0xb9, 0xcb, 0x06, 0x2d, 0x26, 0xf6, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xe2, 0xf2, 0xe3, 0x86, 0x4b, 0x6a, 0x83, 0xc3, 0x7e, 0xc7, 0x1a, 0xb4, 0x7b, 0x2c, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xf3, 0xd2, 0x8f, 0x07, 0x0d, 0x5c, 0x10, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xb3, 0xd8, 0x8f, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x34, 0xad, 0xd9, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0d, 0x7d, 0x3f, 0x6e, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xd0, 0x7a, 0xb8, 0xe0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0x99, 0x3f, 0x1e, 0xb4, 0xc3, 0x41, 0xd8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xad, 0xb0, 0x3f, 0x1e, 0xb4, 0x9f, 0xd9, 0xb7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x1b, 0xff, 0xb8, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xe6, 0xfe, 0xf1, 0xa0, 0x55, 0x35, 0xc1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x9b, 0xff, 0xf1, 0x20, 0x4c, 0xc7, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x31, 0x01, 0xc8, 0x0d, 0x8e, 0x36, 0x7c, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xfc, 0x01, 0xe4, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0xab, 0x98, 0x51, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x59, 0x07, 0xc8, 0x83, 0x82, 0x22, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x56, 0x28, 0x20, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2d, 0x66, 0x40, 0x1e, 0x14, 0x14, 0x99, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xc4, 0x07, 0xe4, 0xc1, 0xaa, 0x06, 0xe1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x97, 0x04, 0x72, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x90, 0x0a, 0xe4, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xe1, 0x17, 0xc8, 0x83, 0xc5, 0x3e, 0x77, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x5c, 0x0d, 0xe4, 0x41, 0x41, 0x91, 0xd9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xb1, 0x03, 0xb9, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x14, 0x08, 0xf2, 0x60, 0xe9, 0x04, 0xed, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x65, 0x04, 0x79, 0x50, 0x50, 0x64, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x4d, 0x30, 0x41, 0x6e, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x8d, 0x82, 0x3c, 0x58, 0xa4, 0x39, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8d, 0x5d, 0x41, 0x1e, 0x14, 0x14, 0x99, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xad, 0x74, 0x41, 0x1e, 0xb4, 0xce, 0xe9, 0xd8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0x8b, 0x41, 0x6e, 0xf8, 0xdc, 0x65, 0x83, 0x75, 0xcc, 0xa8, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x94, 0x06, 0xb9, 0xe1, 0x2b, 0x9c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x73, 0x83, 0xdc, 0xf0, 0x17, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x3d, 0x07, 0xb9, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x73, 0x79, 0x90, 0x07, 0x65, 0x13, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xf0, 0x07, 0xb9, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xab, 0x84, 0x90, 0x07, 0x21, 0x65, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0x28, 0x42, 0x1e, 0x9c, 0x09, 0x46, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xc6, 0x1f, 0x21, 0x37, 0x28, 0xe1, 0x31, 0x37, 0x68, 0x3d, 0x5c, 0x70, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0xb3, 0x84, 0x3c, 0x28, 0x28, 0x32, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x7d, 0x13, 0x72, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x4c, 0x28, 0xe4, 0x06, 0xc5, 0x24, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x6d, 0x0a, 0xb9, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x89, 0x15, 0xf2, 0x20, 0x4c, 0xc7, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xe5, 0x58, 0xc8, 0x83, 0x10, 0x7c, 0xe8, 0xa0, 0xf5, 0x70, 0xc1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x0e, 0x17, 0x72, 0xc3, 0x27, 0x36, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x7c, 0x2f, 0xe4, 0x86, 0xcf, 0x5d, 0x36, 0x68, 0x31, 0xb1, 0x6f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x06, 0x89, 0x21, 0x37, 0x5c, 0x52, 0x1b, 0x1c, 0xf6, 0x3b, 0xd6, 0xa0, 0xdd, 0x63, 0xc1, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x5f, 0x86, 0x3c, 0x68, 0xe0, 0x82, 0xb0, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x8d, 0x86, 0xdc, 0xa0, 0x84, 0xc7, 0xdc, 0xa0, 0x69, 0xcd, 0xbe, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x0b, 0x1b, 0xf2, 0xa0, 0xa0, 0xc8, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xf1, 0x6e, 0xc8, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x63, 0xe3, 0x90, 0x07, 0x05, 0x45, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x8f, 0x0e, 0xb9, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xcf, 0x1d, 0xf2, 0xa0, 0x9d, 0xf6, 0xc6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x86, 0x1e, 0xf2, 0xa0, 0xa0, 0xc8, 0xac, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0xce, 0x87, 0xdc, 0xa0, 0x20, 0x98, 0xdd, 0xa0, 0xb1, 0x9e, 0xc3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x0d, 0x20, 0xf2, 0xa0, 0xa0, 0xc8, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xf1, 0x82, 0xc8, 0x0d, 0x9f, 0xd8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x2b, 0x0b, 0x91, 0x1b, 0x3e, 0x77, 0xd9, 0xa0, 0x39, 0x87, 0xc8, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x8d, 0x88, 0xdc, 0x70, 0x49, 0x6d, 0x70, 0xd8, 0xef, 0x58, 0x83, 0x76, 0x8f, 0x05, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x24, 0x23, 0xf2, 0xa0, 0x81, 0x0b, 0xc2, 0x35, 0x68, 0xac, 0xe7, 0x70, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x06, 0x40, 0x22, 0x0f, 0x9a, 0xdc, 0x47, 0x6c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x96, 0x4b, 0x22, 0x37, 0x28, 0xe1, 0x31, 0x37, 0x68, 0x20, 0x25, 0x72, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x63, 0x89, 0x3c, 0x28, 0x28, 0x32, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x3e, 0x26, 0x72, 0xc3, 0x27, 0x36, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xce, 0x4d, 0xe4, 0x86, 0xcf, 0x5d, 0x36, 0x68, 0x50, 0x27, 0x72, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x96, 0x7b, 0x22, 0x37, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x68, 0x3d, 0x5c, 0x70, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xc6, 0x89, 0x22, 0x0f, 0xda, 0xe1, 0x20, 0x5c, 0x83, 0xc6, 0x7a, 0x0e, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x78, 0x29, 0xf2, 0xa0, 0x19, 0x23, 0xc4, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x31, 0x2a, 0x72, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x86, 0xa9, 0x22, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x1d, 0xac, 0xc8, 0x83, 0x82, 0x22, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x66, 0xbb, 0x22, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0x8b, 0x45, 0x1e, 0x14, 0x14, 0x99, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x20, 0x5a, 0xe4, 0x41, 0xd3, 0x6a, 0x91, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xe0, 0x5b, 0xe4, 0x41, 0xe3, 0x71, 0x91, 0xad, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0xda, 0x45, 0x6e, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0xe1, 0x8b, 0x3c, 0x68, 0xef, 0x4b, 0x70, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x0e, 0x8c, 0x3c, 0x08, 0xd3, 0xb1, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xeb, 0x30, 0x72, 0x83, 0x62, 0x47, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x67, 0x8c, 0xdc, 0xf0, 0x6f, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x25, 0x19, 0x79, 0xd0, 0x22, 0xcf, 0xe1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0x5f, 0x46, 0x1e, 0xb4, 0x9e, 0x3f, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0x76, 0x46, 0x1e, 0x14, 0x14, 0x99, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x32, 0x1a, 0xb9, 0x41, 0xd1, 0xa7, 0xbb, 0x41, 0xeb, 0xe1, 0x82, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x6e, 0x6a, 0xe4, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xa1, 0xd7, 0xc8, 0x83, 0x05, 0x3b, 0xe8, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x38, 0x6d, 0xe4, 0x41, 0xa3, 0xf5, 0x82, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xa4, 0x6e, 0xe4, 0x06, 0x2b, 0x84, 0x9a, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x31, 0xe0, 0xc8, 0x83, 0x75, 0x05, 0xa3, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x84, 0x71, 0xe4, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xcd, 0xe5, 0xc8, 0x83, 0x65, 0x95, 0xa0, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x56, 0x74, 0xe4, 0xc1, 0x72, 0x64, 0xe1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xe3, 0x3a, 0x72, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x2a, 0x77, 0xe4, 0xc1, 0x42, 0xc5, 0xd0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x4d, 0x3c, 0xf2, 0x60, 0x21, 0x61, 0x68, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x4b, 0xe8, 0x91, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xc6, 0xdb, 0x23, 0x0f, 0x16, 0x2a, 0x86, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xa3, 0xf3, 0x91, 0x07, 0xab, 0xde, 0x43, 0xab, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0xcc, 0x8f, 0xdc, 0xf0, 0x89, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xec, 0x1f, 0xb9, 0xe1, 0x73, 0x97, 0x0d, 0x9a, 0x10, 0x90, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xad, 0x02, 0xc9, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0xda, 0x3d, 0x16, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x39, 0x06, 0xc9, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xfb, 0x11, 0x92, 0x07, 0x8d, 0xbe, 0x14, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xb3, 0x17, 0x92, 0x07, 0x8d, 0xd6, 0x0b, 0xd6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0d, 0x76, 0x48, 0x6e, 0x50, 0xf0, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xf3, 0x22, 0x92, 0x1b, 0x14, 0x93, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x24, 0x8a, 0xe4, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x05, 0x17, 0xc9, 0x83, 0x10, 0x7c, 0x58, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x16, 0x67, 0x24, 0x0f, 0xce, 0x62, 0xa2, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x4a, 0x8e, 0xe4, 0x41, 0x91, 0x8a, 0xd9, 0x41, 0x8b, 0x3c, 0x92, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xff, 0x23, 0xb9, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xa7, 0x48, 0x72, 0x83, 0x62, 0x12, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x57, 0x92, 0xdc, 0x20, 0xd8, 0x4c, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x39, 0x28, 0xc9, 0x83, 0xd3, 0xde, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x61, 0x25, 0x79, 0xb0, 0x3e, 0x22, 0xbd, 0x83, 0xd6, 0xc3, 0x05, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x71, 0x2e, 0xc9, 0x83, 0x66, 0xbe, 0x24, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x6a, 0x4c, 0x72, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x26, 0x9a, 0xe4, 0x41, 0x41, 0x91, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8d, 0xb8, 0x49, 0x1e, 0x9e, 0xb8, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x06, 0xe7, 0x24, 0x0f, 0xd6, 0x4b, 0xbf, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x33, 0x79, 0x92, 0x07, 0x4d, 0xee, 0x49, 0xb6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x0e, 0x28, 0xb9, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xcb, 0x50, 0xf2, 0xa0, 0xad, 0x37, 0xc1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x80, 0x51, 0xf2, 0x20, 0x4c, 0xc7, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xc5, 0x48, 0xc9, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xf3, 0x96, 0x92, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xe6, 0x38, 0x25, 0x37, 0x28, 0x4b, 0xde, 0x37, 0x38, 0x5a, 0x6b, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x1b, 0xa3, 0x92, 0x07, 0x65, 0xd3, 0xfb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x8b, 0x2a, 0x79, 0xd0, 0x5c, 0x5b, 0x55, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x9e, 0xab, 0xe4, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x01, 0x5a, 0xc9, 0x83, 0x46, 0xeb, 0x05, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xe1, 0x5c, 0xc9, 0x83, 0x16, 0x79, 0x0e, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0xfd, 0x95, 0x3c, 0x28, 0x28, 0x32, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xa8, 0x58, 0x72, 0xc3, 0x27, 0x36, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xa2, 0xb2, 0xe4, 0x86, 0xcf, 0x5d, 0x36, 0x68, 0xba, 0x59, 0x72, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x36, 0xa2, 0x25, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0x59, 0x4b, 0x6e, 0x50, 0x96, 0xbc, 0x6f, 0x50, 0xb8, 0x89, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x23, 0xdd, 0x92, 0x07, 0x65, 0x53, 0xfd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x2b, 0x2e, 0x79, 0xd0, 0xcc, 0xbc, 0x60, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x20, 0xba, 0xe4, 0x41, 0xa3, 0xf5, 0x82, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x92, 0xbb, 0xe4, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0x0d, 0xc6, 0x4b, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xfb, 0xf4, 0x92, 0x1b, 0x2c, 0xa9, 0x5f, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x76, 0xf5, 0x25, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0x00, 0x4c, 0x1e, 0x34, 0x29, 0x30, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0x24, 0x4c, 0x1e, 0x34, 0x5a, 0x2f, 0xd8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0x3b, 0x4c, 0x1e, 0x84, 0xa7, 0xea, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0x51, 0x4c, 0x6e, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xd0, 0x92, 0x5b, 0xd5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0x6d, 0x4c, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x07, 0x99, 0xdc, 0xa0, 0x2c, 0x79, 0xdf, 0xa0, 0x6c, 0x41, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x36, 0x4f, 0x26, 0x0f, 0xca, 0xa6, 0xf7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xa6, 0x65, 0xf2, 0xa0, 0xb9, 0xb6, 0xaa, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x7d, 0x99, 0xc9, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x83, 0x38, 0x93, 0x07, 0x8d, 0xd6, 0x0b, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x43, 0x3e, 0x93, 0x07, 0x2d, 0xf2, 0x1c, 0xd6, 0x1a, 0xb4, 0x7b, 0x2c, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x4b, 0x45, 0x93, 0x07, 0xed, 0x1e, 0x4d, 0xb6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xc8, 0x34, 0xb9, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x40, 0x6a, 0xf2, 0xa0, 0x0d, 0x3a, 0xc1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xf5, 0x6a, 0xf2, 0x20, 0x4c, 0xc7, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x99, 0xae, 0xc9, 0x0d, 0x8e, 0x36, 0x7c, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xb2, 0xd8, 0xe4, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0xab, 0x98, 0x51, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xc5, 0xb4, 0xc9, 0x83, 0x82, 0x22, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x06, 0xde, 0x26, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8d, 0xd1, 0x4d, 0x1e, 0x14, 0x14, 0x99, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x7a, 0xde, 0xe4, 0xc1, 0xaa, 0x06, 0xe1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xf2, 0x6f, 0x72, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x46, 0xe1, 0xe4, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x4d, 0xc5, 0xc9, 0x83, 0xc5, 0x3e, 0x77, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x12, 0xe4, 0xe4, 0x41, 0x41, 0x91, 0xd9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x5f, 0x39, 0xb9, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x6f, 0x73, 0xf2, 0x60, 0x01, 0x43, 0xed, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x13, 0x3a, 0x79, 0x50, 0x50, 0x64, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xad, 0x9b, 0x4e, 0x6e, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x63, 0x9d, 0x3c, 0x58, 0x8a, 0x33, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0xc8, 0x4e, 0x1e, 0x14, 0x14, 0x99, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0d, 0xe0, 0x4e, 0x1e, 0xb4, 0xce, 0xe9, 0xd8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2d, 0xf7, 0x4e, 0x6e, 0xf8, 0xdc, 0x65, 0x83, 0x75, 0xcc, 0xa8, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x41, 0x3c, 0xb9, 0xe1, 0x13, 0x9b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x2c, 0x79, 0x72, 0xc3, 0xe7, 0x2e, 0x1b, 0x34, 0xca, 0x3c, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xeb, 0xcf, 0x93, 0x1b, 0x14, 0x82, 0xa9, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x56, 0x3d, 0xb9, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xe3, 0xda, 0x93, 0x07, 0x21, 0x65, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xad, 0x81, 0x4f, 0x1e, 0x9c, 0x09, 0x46, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x05, 0xf3, 0xc9, 0x0d, 0x5f, 0xe1, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xd0, 0xfa, 0xe4, 0x86, 0xbf, 0x68, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x51, 0xf8, 0xc9, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0xb1, 0x9f, 0x3c, 0x28, 0x9b, 0x30, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xe9, 0xfd, 0xc9, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x0b, 0xa0, 0x3c, 0x08, 0x29, 0x93, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xdf, 0x80, 0xf2, 0xe0, 0x4c, 0x30, 0x5a, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xca, 0x40, 0xb9, 0xe1, 0x83, 0x9c, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x3e, 0x82, 0x72, 0xc3, 0xbf, 0x39, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xda, 0x05, 0xe5, 0x41, 0x41, 0x91, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xe3, 0x1c, 0x94, 0x07, 0x2d, 0xf2, 0x1c, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x93, 0x22, 0x94, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x16, 0x50, 0x28, 0x0f, 0x0a, 0x8a, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xb2, 0x85, 0xf2, 0xa0, 0xf1, 0x17, 0xca, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x86, 0x86, 0x72, 0x83, 0x62, 0x47, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0xcd, 0xa1, 0xdc, 0xa0, 0x98, 0xc4, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x96, 0x7e, 0x28, 0x37, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0d, 0x13, 0x51, 0x6e, 0xf8, 0x73, 0x69, 0x70, 0x77, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x56, 0x95, 0x28, 0x0f, 0xc2, 0x74, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x80, 0xa2, 0xdc, 0xf0, 0xe7, 0xd2, 0xe0, 0xec, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2d, 0x58, 0x51, 0x1e, 0x84, 0xe9, 0xd8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xb7, 0x45, 0xb9, 0xe1, 0xcf, 0xa5, 0xc1, 0xe5, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x0b, 0xa3, 0x3c, 0x08, 0xd3, 0xb1, 0x0e, 0x1a, 0xeb, 0x39, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xf6, 0xcf, 0x28, 0x0f, 0x0a, 0x8a, 0xcc, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x6b, 0xa3, 0xdc, 0xf0, 0x89, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x2b, 0x47, 0xb9, 0xe1, 0x73, 0x97, 0x0d, 0x8a, 0x42, 0xef, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0xc9, 0xa3, 0xdc, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0xa0, 0xb1, 0x9e, 0xc3, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x01, 0xa4, 0x3c, 0x68, 0x53, 0x90, 0xb2, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x3a, 0xa4, 0xdc, 0xa0, 0x84, 0xc7, 0xdc, 0xe0, 0x78, 0xfe, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0d, 0x37, 0x52, 0x1e, 0x14, 0x14, 0x99, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x33, 0x49, 0xb9, 0xe1, 0x13, 0x9b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x10, 0x93, 0x72, 0xc3, 0xe7, 0x2e, 0x1b, 0xb4, 0xbc, 0x49, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x13, 0x9f, 0x94, 0x1b, 0x2e, 0xa9, 0x0d, 0x0e, 0xfb, 0x1d, 0x6b, 0xd0, 0xee, 0xb1, 0xe0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0x99, 0x52, 0x1e, 0xb4, 0x9e, 0x3f, 0xb8, 0x06, 0x8d, 0xf5, 0x1c, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x54, 0x2b, 0xe5, 0x41, 0xc3, 0xaf, 0x94, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x1c, 0x2d, 0xe5, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0xad, 0xde, 0x52, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x23, 0xbb, 0x94, 0x07, 0x05, 0x45, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0x02, 0x53, 0x6e, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xd0, 0x58, 0xcf, 0xe1, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0x1e, 0x53, 0x1e, 0x34, 0x9f, 0x4c, 0xb9, 0x06, 0xed, 0xc2, 0x50, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xf0, 0x33, 0xe5, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xa5, 0x6a, 0xca, 0x83, 0x56, 0xaf, 0x29, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x2d, 0x6e, 0xca, 0x83, 0x86, 0xbd, 0x29, 0x6b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x71, 0x9c, 0x72, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x40, 0x3a, 0xe5, 0x41, 0x9b, 0x78, 0x82, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xaa, 0x3b, 0xe5, 0x41, 0x98, 0x8e, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x33, 0xf4, 0x94, 0x1b, 0x14, 0x04, 0xb3, 0x1b, 0x34, 0xd6, 0x73, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xad, 0xeb, 0x53, 0x6e, 0x50, 0xec, 0x68, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x93, 0x00, 0x95, 0x1b, 0xfe, 0xcd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x16, 0x0c, 0x2a, 0x0f, 0x0a, 0x8a, 0xcc, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x5c, 0xa8, 0x3c, 0x68, 0x91, 0xe7, 0x70, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x89, 0xa8, 0x3c, 0x28, 0x28, 0x32, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xd8, 0xa2, 0x72, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x12, 0x47, 0xe5, 0x41, 0x41, 0x91, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8d, 0x87, 0x54, 0x1e, 0x9e, 0xb8, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xa6, 0x4e, 0x2a, 0x0f, 0xd6, 0xad, 0xc3, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x13, 0x2d, 0x95, 0x07, 0x05, 0x45, 0x66, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x2b, 0x53, 0xb9, 0x41, 0xb1, 0xa3, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xad, 0xe0, 0x54, 0x6e, 0xf8, 0x37, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0xed, 0xa9, 0x3c, 0x28, 0x28, 0x32, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x63, 0xa8, 0xf2, 0xa0, 0xc9, 0x7d, 0xc4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x19, 0xa9, 0xf2, 0xa0, 0xa0, 0xc8, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x21, 0xa7, 0xca, 0x0d, 0x9f, 0xd8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x8b, 0x53, 0x95, 0x1b, 0x3e, 0x77, 0xd9, 0xa0, 0xc5, 0xc4, 0xbe, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0xd0, 0xaa, 0xdc, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0xa0, 0xdd, 0x63, 0xc1, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x09, 0xab, 0x3c, 0x68, 0x3d, 0x7f, 0x70, 0x0d, 0x1a, 0xeb, 0x39, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x05, 0xb4, 0xca, 0x83, 0x66, 0x8c, 0x10, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xe9, 0xb6, 0xca, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x9a, 0xd6, 0xec, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xc6, 0xe8, 0x2a, 0x0f, 0x0a, 0x8a, 0xcc, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0xce, 0xab, 0xdc, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xf2, 0x57, 0x79, 0x50, 0x50, 0x64, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xab, 0x84, 0x95, 0x07, 0xab, 0x1a, 0x84, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x25, 0xc5, 0xca, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xd3, 0x8f, 0x95, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xa6, 0x2a, 0x2b, 0x0f, 0x16, 0xfb, 0xdc, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x03, 0x9b, 0x95, 0x07, 0x05, 0x45, 0x66, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x2a, 0x68, 0xe5, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x19, 0xd3, 0xca, 0x83, 0xa5, 0x13, 0xb4, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xf8, 0x6a, 0xe5, 0x41, 0x41, 0x91, 0xd9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x18, 0x5b, 0xb9, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xe3, 0xb6, 0xf2, 0x60, 0x91, 0xe6, 0xec, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xcd, 0x5b, 0x79, 0x50, 0x50, 0x64, 0xd6, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x2a, 0x5c, 0xb9, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x06, 0xb9, 0xf2, 0xf0, 0xc4, 0xdd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xdb, 0x5c, 0x79, 0xb0, 0x6e, 0x1d, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x9b, 0xae, 0x3c, 0x28, 0x28, 0x32, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x56, 0xb2, 0x2b, 0x0f, 0xda, 0x69, 0x6f, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xe6, 0xbd, 0x2b, 0x0f, 0x0a, 0x8a, 0xcc, 0x56, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x76, 0xc9, 0x2b, 0x37, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0xa8, 0x57, 0x1e, 0x2c, 0x97, 0xf9, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xa6, 0xdf, 0x2b, 0x0f, 0xc2, 0x74, 0xac, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0xaa, 0xaf, 0xdc, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0xa0, 0xdd, 0x63, 0xc1, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0xe3, 0xaf, 0x3c, 0x68, 0x3d, 0x7f, 0xb0, 0x0e, 0xda, 0xff, 0xaf, 0x3c, 0x9c, 0x62, 0x07, 0x4d, 0x40, 0x58, 0xd6, 0xac, 0x41, 0x73, 0x6f, 0x96, 0x1b, 0x34, 0x16, 0x67, 0xb9, 0x06, 0xcd, 0xd2, 0x59, 0x6e, 0x78, 0x9e, 0x64, 0x83, 0xd6, 0xed, 0x2c, 0x37, 0x7c, 0x62, 0xb3, 0x41, 0xab, 0x7f, 0x96, 0x1b, 0x94, 0x2c, 0xec, 0xb3, 0xcc, 0x06, 0xed, 0x30, 0x5a, 0xae, 0x41, 0x9b, 0x96, 0x96, 0x1b, 0x34, 0x27, 0x6c, 0xb9, 0x41, 0x53, 0x01, 0xb1, 0x1b, 0xb4, 0x7e, 0x11, 0xbb, 0x41, 0x2b, 0x58, 0xb1, 0x6b, 0xd0, 0xf6, 0x66, 0xec, 0x1a, 0xb4, 0x62, 0x1b, 0xbb, 0x06, 0xad, 0x43, 0xc8, 0xae, 0x41, 0x93, 0x4e, 0xb2, 0xab, 0x41, 0x63, 0x31, 0x98, 0x1b, 0x9e, 0x27, 0xd9, 0xa0, 0xed, 0x41, 0xd9, 0x0d, 0xbf, 0x28, 0x6d, 0xd0, 0x26, 0xa3, 0xec, 0x06, 0x25, 0x0b, 0xfb, 0x2c, 0xb3, 0x41, 0xdb, 0x90, 0xb2, 0x6b, 0xd0, 0x22, 0xa8, 0xec, 0x1a, 0xb4, 0xe5, 0x2a, 0xbb, 0x06, 0xad, 0x24, 0xcb, 0x6e, 0xd0, 0x02, 0xb7, 0xec, 0x06, 0x4d, 0x96, 0xcf, 0xae, 0x41, 0x8b, 0xf1, 0xb3, 0x6b, 0xd0, 0x56, 0x00, 0xed, 0x06, 0xcd, 0x25, 0xd0, 0x6e, 0xd0, 0x60, 0x16, 0xed, 0x06, 0x6d, 0x9c, 0xd1, 0xae, 0x41, 0xe3, 0x80, 0xb4, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x46, 0x48, 0xbb, 0x41, 0xd1, 0x69, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0x27, 0xd2, 0x1e, 0x2c, 0xab, 0x04, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x26, 0x1f, 0x69, 0x37, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2d, 0x54, 0xd2, 0x6e, 0xf8, 0x73, 0x69, 0xf0, 0x70, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xf6, 0x35, 0x69, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x0e, 0x94, 0xf6, 0x20, 0xa4, 0x4c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xfd, 0x52, 0xda, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x5c, 0xa5, 0x3d, 0x38, 0xea, 0x8a, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x3b, 0xb1, 0xb4, 0x07, 0xcd, 0x78, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xf3, 0xb6, 0xb4, 0x07, 0xeb, 0xb5, 0x9e, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x59, 0x5e, 0xda, 0x83, 0x85, 0x9b, 0xde, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x9c, 0x30, 0xed, 0xc1, 0x02, 0x0b, 0xe7, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x21, 0x64, 0xda, 0x0d, 0x0a, 0xd2, 0xd8, 0x35, 0x28, 0xa1, 0x63, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x6d, 0x67, 0xda, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x5b, 0xd4, 0xb4, 0x1b, 0xfe, 0x5c, 0xda, 0xa0, 0xcd, 0x6b, 0xda, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0xd9, 0xa6, 0xdd, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x51, 0x70, 0xda, 0x83, 0x90, 0x32, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x56, 0xcc, 0x69, 0x0f, 0x16, 0x6e, 0x7a, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xad, 0xaf, 0xd3, 0x6e, 0xf8, 0x73, 0x69, 0x83, 0x76, 0xde, 0x69, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x58, 0x9e, 0x76, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x96, 0xf0, 0x69, 0x0f, 0x42, 0xca, 0x64, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0xef, 0xa7, 0xdd, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xc5, 0x81, 0xda, 0x83, 0xd2, 0x9b, 0x7e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x49, 0xa8, 0x3d, 0x58, 0xaf, 0xf5, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0x3b, 0xd4, 0x1e, 0x2c, 0xb0, 0x70, 0xae, 0x0e, 0xc2, 0x74, 0x6c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0xae, 0xa8, 0xdd, 0xa0, 0xe8, 0x34, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xc6, 0x36, 0x6a, 0x0f, 0x96, 0x4a, 0x12, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x0b, 0x21, 0xb5, 0x87, 0xa7, 0x75, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xcd, 0xa4, 0x76, 0xc3, 0x2f, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xf2, 0x4a, 0xed, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xa1, 0x98, 0xda, 0x0d, 0x7f, 0x2e, 0x6d, 0xd0, 0x24, 0x4d, 0xed, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0xdf, 0xd4, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x56, 0x4f, 0xed, 0xc1, 0x51, 0x57, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x17, 0xaa, 0x3d, 0x68, 0xc6, 0x0b, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x45, 0xaa, 0x3d, 0x58, 0xaf, 0xf5, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xad, 0x39, 0xd5, 0x1e, 0x2c, 0xdc, 0xf4, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x56, 0xa8, 0x6a, 0x0f, 0x16, 0x58, 0x38, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0x67, 0xd5, 0x6e, 0xf8, 0x73, 0x69, 0x83, 0x45, 0x04, 0xb7, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x09, 0x56, 0xbb, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xbf, 0xac, 0x76, 0xc3, 0x9f, 0x4b, 0x1b, 0xb4, 0x79, 0x4d, 0xbb, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x93, 0x6c, 0xb5, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x21, 0x57, 0x7b, 0x10, 0x52, 0x26, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xe6, 0x5d, 0xed, 0xc1, 0xc2, 0x4d, 0xef, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xb1, 0xbe, 0xda, 0x0d, 0x7f, 0x2e, 0x6d, 0xd0, 0xce, 0x3b, 0xed, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2d, 0x10, 0xd6, 0x6e, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x64, 0x62, 0xed, 0x41, 0x48, 0x99, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x2b, 0x8f, 0xb5, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x4d, 0x59, 0x7b, 0x50, 0x7a, 0xd3, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x83, 0x9a, 0xb5, 0x07, 0xeb, 0xb5, 0x9e, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x21, 0xd0, 0xda, 0x83, 0x05, 0x16, 0xce, 0x55, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x63, 0x5a, 0xbb, 0x41, 0x41, 0x1a, 0xbb, 0x06, 0x25, 0x74, 0xec, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xcc, 0x5a, 0xbb, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x49, 0xb6, 0x76, 0xc3, 0x9f, 0x4b, 0x1b, 0x34, 0x59, 0x5b, 0xbb, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xdb, 0xb8, 0xb5, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xe5, 0x5b, 0x7b, 0x10, 0x52, 0x26, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xf8, 0x70, 0xed, 0xc1, 0xc2, 0x4d, 0xef, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xd1, 0xe4, 0xda, 0x0d, 0x7f, 0x2e, 0x6d, 0xb0, 0x6a, 0x20, 0x78, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x76, 0xa0, 0x6b, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xb8, 0xba, 0xf6, 0x20, 0xa4, 0x4c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xad, 0xed, 0xda, 0x83, 0x85, 0x9b, 0xde, 0x75, 0x10, 0xa6, 0x63, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x86, 0x78, 0xed, 0x06, 0x45, 0xa7, 0xf1, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x7c, 0x5e, 0x7b, 0x70, 0x4a, 0xc7, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xd6, 0xda, 0x6b, 0x37, 0x28, 0x4b, 0xde, 0x37, 0x58, 0x04, 0x32, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0xd0, 0xd7, 0x1e, 0x94, 0x4d, 0xf5, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x72, 0x7e, 0xed, 0x41, 0x3b, 0xfc, 0xb5, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x88, 0x80, 0xed, 0x86, 0x5f, 0x94, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xc9, 0x03, 0xdb, 0x0d, 0x7f, 0x2e, 0x6d, 0xb8, 0xd3, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xb9, 0xc1, 0xf6, 0x60, 0xe1, 0xa6, 0xf7, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0x4d, 0xd8, 0x6e, 0xf8, 0x37, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0xc7, 0xb0, 0x3d, 0x28, 0x28, 0x32, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xd1, 0xc3, 0xf6, 0xa0, 0x81, 0x10, 0xdb, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x31, 0xb1, 0xdd, 0xa0, 0x30, 0x54, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x76, 0x57, 0x6c, 0x37, 0x7c, 0x90, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0xc4, 0xd8, 0x6e, 0xf8, 0x37, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0xb6, 0xb1, 0xdd, 0xa0, 0x10, 0x4c, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x2d, 0x1e, 0xdb, 0x83, 0x85, 0x9b, 0xde, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x1e, 0x64, 0x7b, 0xd0, 0x12, 0x91, 0xed, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x8f, 0x64, 0xbb, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xd0, 0xc9, 0xf6, 0xe0, 0x44, 0xd0, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8d, 0x50, 0xd9, 0x1e, 0x2c, 0x2e, 0x09, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xa6, 0xb3, 0x6c, 0x0f, 0xda, 0xe1, 0xb2, 0x6d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x06, 0xc3, 0x6c, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8d, 0x9b, 0xd9, 0x1e, 0xb4, 0x44, 0x64, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0xb2, 0xd9, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x91, 0xb3, 0x3d, 0x38, 0x11, 0xb4, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xc3, 0x77, 0xb6, 0x07, 0x8b, 0x4b, 0x82, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xb9, 0x3e, 0xdb, 0x83, 0x76, 0xb8, 0x6c, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x96, 0x06, 0x6d, 0x37, 0x7c, 0x85, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x9b, 0x88, 0xb6, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0xb4, 0xbe, 0x68, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8d, 0x3d, 0xda, 0x6e, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0xa7, 0xb4, 0xdd, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xa7, 0x69, 0x7b, 0xd0, 0x34, 0xa7, 0xed, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x18, 0x6a, 0x7b, 0xd0, 0xfa, 0xa8, 0x6d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x2a, 0xaa, 0xed, 0x41, 0x1b, 0xab, 0xb6, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x18, 0xac, 0xed, 0x06, 0x45, 0x9f, 0xee, 0x06, 0x0d, 0x93, 0xda, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x0b, 0xb7, 0xb6, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x26, 0x79, 0x6d, 0x0f, 0x5a, 0xb7, 0x24, 0x58, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x96, 0x84, 0x6d, 0x37, 0x68, 0x6c, 0x21, 0x62, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x16, 0x90, 0x6d, 0x0f, 0xda, 0x52, 0xb6, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x16, 0x9e, 0x6d, 0x0f, 0x5a, 0x1f, 0xb5, 0x6d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xa6, 0xa9, 0x6d, 0x37, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x68, 0x7d, 0xd1, 0x76, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xd6, 0xb7, 0x6d, 0x0f, 0x5a, 0xf2, 0xb6, 0x6d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xf6, 0xc5, 0x6d, 0x37, 0x28, 0x3a, 0x8d, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x41, 0x74, 0xdb, 0x83, 0xb6, 0xd5, 0x6d, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xb5, 0x77, 0xdb, 0x83, 0x96, 0xe3, 0x6d, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xc1, 0xde, 0x76, 0xc3, 0x57, 0x38, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xb5, 0x6f, 0xbb, 0xe1, 0x2f, 0x9a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x17, 0xe0, 0x76, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb6, 0x0c, 0x6e, 0x0f, 0x4a, 0xc4, 0xfa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x7e, 0xe1, 0xf6, 0x60, 0xbd, 0xd6, 0xf3, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x1a, 0x71, 0x7b, 0xb0, 0xc0, 0xc2, 0xb9, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0xba, 0xb8, 0xdd, 0xa0, 0x84, 0xc7, 0xdc, 0xa0, 0x51, 0x8d, 0xdb, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xc3, 0xe3, 0xf6, 0xa0, 0xa0, 0xc8, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xd1, 0x91, 0xdb, 0x0d, 0x9f, 0xd8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x03, 0x29, 0xb7, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x34, 0xaa, 0x71, 0xbb, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x33, 0x30, 0xb7, 0x07, 0x4d, 0xca, 0xdc, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x43, 0x37, 0xb7, 0x1b, 0x14, 0x9d, 0xc6, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x32, 0xcf, 0xed, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x65, 0x0b, 0xea, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x36, 0x74, 0x7b, 0x50, 0x36, 0xd5, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x03, 0x49, 0xb7, 0x87, 0x67, 0x26, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x06, 0x9d, 0x6e, 0x0f, 0xda, 0x86, 0xba, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xfd, 0xaa, 0xdb, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x5b, 0x5b, 0xb7, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb6, 0xc1, 0x6e, 0x37, 0x28, 0x4b, 0xde, 0x37, 0x38, 0x5a, 0x6b, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x83, 0x67, 0xb7, 0x07, 0x65, 0x53, 0xfd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xd1, 0x76, 0x7b, 0x78, 0x66, 0xb2, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x53, 0xee, 0xf6, 0xa0, 0x6d, 0xa8, 0xdb, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x35, 0xbc, 0xdb, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xeb, 0x7d, 0xb7, 0x07, 0xed, 0x23, 0x11, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x9b, 0x83, 0xb7, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x46, 0x12, 0x6f, 0x0f, 0x4e, 0x04, 0x6d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xb0, 0xe3, 0xed, 0x41, 0x2b, 0x91, 0xb7, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x0e, 0xe7, 0xed, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xe5, 0xd0, 0xdb, 0x83, 0x65, 0xd8, 0x6f, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xe2, 0xe9, 0xed, 0x41, 0xdb, 0x50, 0xb7, 0xd5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0xb5, 0xde, 0x1e, 0x34, 0xfb, 0x7a, 0xbb, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x53, 0xb4, 0xb7, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x36, 0x73, 0x6f, 0x0f, 0xd6, 0xcc, 0x86, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x3b, 0xbf, 0xb7, 0x07, 0x4d, 0x06, 0xdf, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x23, 0xc6, 0xb7, 0x07, 0x0d, 0x22, 0xdf, 0x76, 0x38, 0xc5, 0xda, 0xa0, 0xd1, 0xe5, 0xdb, 0x35, 0x68, 0xd2, 0xfa, 0x76, 0x0d, 0xda, 0x61, 0xbf, 0x5d, 0x0d, 0x5a, 0x4b, 0xbe, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xe5, 0x0e, 0xdc, 0x0d, 0x8a, 0x4e, 0xe3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x6b, 0x04, 0xf7, 0x60, 0x75, 0x2f, 0xeb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x8f, 0x82, 0xbb, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xd0, 0x05, 0x77, 0xc3, 0xe7, 0x2e, 0x83, 0xc3, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x47, 0x83, 0xbb, 0x41, 0x21, 0x98, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xf3, 0x39, 0xb8, 0x07, 0xcd, 0x78, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x93, 0x3f, 0xb8, 0x1b, 0x3e, 0x77, 0x19, 0x3c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xc5, 0x22, 0xdc, 0x0d, 0x0a, 0xc1, 0xd4, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x58, 0xc2, 0x3d, 0x58, 0xaf, 0xf5, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8d, 0x42, 0xe1, 0x6e, 0xf8, 0xdc, 0x65, 0x70, 0x79, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x46, 0xad, 0x70, 0x37, 0x28, 0x04, 0x53, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x85, 0x0b, 0xf7, 0x60, 0xe1, 0xa6, 0xf7, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x1c, 0x86, 0xbb, 0xe1, 0x73, 0x97, 0xc1, 0xe7, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x3e, 0xc3, 0xdd, 0xa0, 0x10, 0x4c, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xa9, 0x36, 0xdc, 0x83, 0x05, 0x16, 0xce, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xbc, 0x1c, 0xee, 0x06, 0xe7, 0xc1, 0x8e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0xc2, 0xc3, 0xdd, 0x60, 0x39, 0x24, 0xd3, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x8a, 0x1f, 0xee, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xd5, 0x41, 0xdc, 0x83, 0x06, 0x64, 0x62, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xad, 0x44, 0xdc, 0x0d, 0x56, 0x08, 0x35, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x23, 0x8f, 0xb8, 0x07, 0xeb, 0x81, 0x41, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x69, 0x4a, 0xdc, 0x83, 0x66, 0x2e, 0x71, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xc1, 0x4d, 0xdc, 0x83, 0xe6, 0x3b, 0x71, 0xeb, 0x70, 0x8a, 0xd5, 0x1a, 0xb4, 0x37, 0x3e, 0xbb, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x4b, 0xa4, 0xb8, 0x1b, 0x14, 0x3b, 0x9a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x72, 0x2a, 0xee, 0x41, 0x73, 0xd4, 0xb2, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xdc, 0x2b, 0xee, 0xc1, 0xb2, 0xcf, 0xda, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0xa8, 0xc5, 0xdd, 0xa0, 0xe8, 0x34, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x06, 0x75, 0x71, 0x0f, 0x96, 0x55, 0x82, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x23, 0xc0, 0xb8, 0x1b, 0x7e, 0x51, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x56, 0x8b, 0x71, 0x37, 0xfc, 0xb9, 0x34, 0x78, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xa3, 0xcb, 0xb8, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x11, 0x8d, 0x7b, 0x10, 0x52, 0x26, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xa8, 0x35, 0xee, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x15, 0x6e, 0xdc, 0x0d, 0x7f, 0x2e, 0x6d, 0xd0, 0xdc, 0x37, 0xee, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0x8a, 0xe3, 0x1e, 0x34, 0xe3, 0x85, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0xa1, 0xe3, 0x6e, 0xf8, 0x73, 0x69, 0x83, 0x56, 0xd7, 0x71, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xde, 0x1d, 0x77, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xf6, 0xe8, 0x71, 0x0f, 0x4a, 0x6f, 0xfa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x44, 0x1f, 0xf7, 0x60, 0xbd, 0xd6, 0xf3, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xfe, 0x8f, 0xbb, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x8b, 0x05, 0xb9, 0x07, 0x25, 0x62, 0xfd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xb3, 0x90, 0x7b, 0xb0, 0x5e, 0xeb, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x87, 0xc8, 0x3d, 0x58, 0x60, 0xe1, 0x5c, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xe3, 0x16, 0xb9, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x86, 0x38, 0x72, 0x37, 0x08, 0xfd, 0x92, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x3a, 0x24, 0xf7, 0xa0, 0x44, 0xac, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xc6, 0x4e, 0x72, 0x0f, 0xd6, 0x6b, 0x3d, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x13, 0x2d, 0xb9, 0x07, 0xeb, 0xf7, 0xa0, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x61, 0x99, 0xdc, 0x0d, 0x0f, 0x4a, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x23, 0x38, 0xb9, 0x07, 0xa7, 0x8b, 0x8c, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0xed, 0xc9, 0xdd, 0xf0, 0x15, 0xce, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0x0b, 0xe5, 0x6e, 0xf8, 0x8b, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x42, 0xca, 0xdd, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xf9, 0xa6, 0xdc, 0x83, 0xd2, 0x9b, 0x7e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x9c, 0xca, 0xdd, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x95, 0xac, 0xdc, 0x83, 0x12, 0xb1, 0x7e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0xf6, 0xca, 0x3d, 0x58, 0xaf, 0xf5, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0x91, 0xe5, 0x1e, 0xac, 0xdf, 0x83, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x52, 0xcb, 0xdd, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xf9, 0xb7, 0xdc, 0x83, 0x12, 0xb1, 0x7e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0xac, 0xcb, 0x3d, 0x58, 0xaf, 0xf5, 0xbc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0xed, 0xe5, 0x1e, 0x2c, 0xb0, 0x70, 0xae, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x09, 0xcc, 0xdd, 0xa0, 0x84, 0xc7, 0xdc, 0xf0, 0xe0, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x78, 0x98, 0xbb, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xa1, 0x31, 0xf7, 0xa0, 0xa0, 0xc8, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x46, 0x25, 0x73, 0x0f, 0x0a, 0x8a, 0xcc, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x07, 0x33, 0x77, 0x83, 0x82, 0x34, 0x76, 0x83, 0xb1, 0x20, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xed, 0x7a, 0xe6, 0x6e, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0x78, 0x70, 0x67, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x56, 0x4b, 0x73, 0x0f, 0xca, 0x0a, 0xf9, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x68, 0x35, 0x77, 0x83, 0xa2, 0x4f, 0x77, 0x83, 0x26, 0x5d, 0x73, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xb5, 0xd9, 0xdc, 0x0d, 0x4e, 0xec, 0x37, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x46, 0x6e, 0xee, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x2d, 0xf2, 0xe6, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xe3, 0xbf, 0xb9, 0x07, 0x65, 0x53, 0xfd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x57, 0x9c, 0x7b, 0xd0, 0xf8, 0x71, 0x6e, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xc1, 0x9c, 0xbb, 0xe1, 0x17, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x2e, 0x3a, 0x77, 0xc3, 0x9f, 0x4b, 0x83, 0x8b, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x76, 0x9d, 0xbb, 0x41, 0xe8, 0x97, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xe3, 0xdc, 0xb9, 0x07, 0xa5, 0x37, 0xfd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x27, 0x9e, 0x7b, 0xb0, 0x5e, 0xeb, 0x79, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x41, 0xcf, 0x3d, 0x58, 0x60, 0xe1, 0xdc, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8d, 0xb7, 0xe7, 0x6e, 0xf8, 0xfa, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x9a, 0xcf, 0x3d, 0x28, 0xc5, 0x69, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x1d, 0x3f, 0x77, 0x83, 0x62, 0x47, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0xf3, 0xcf, 0xdd, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x3f, 0xa0, 0xbb, 0x41, 0x59, 0xf2, 0xbe, 0xc1, 0xd1, 0x5a, 0x63, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x55, 0xd0, 0x3d, 0x28, 0x9b, 0xea, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x1d, 0x08, 0xdd, 0x83, 0x76, 0x1b, 0xcc, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x06, 0x2c, 0x74, 0x0f, 0x4a, 0x5d, 0xd1, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xdd, 0x0d, 0xdd, 0x83, 0x52, 0x9c, 0x76, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xa6, 0x42, 0x74, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0x9a, 0xe8, 0x1e, 0xb4, 0x8f, 0x44, 0xb0, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8d, 0xb1, 0xe8, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x8f, 0xd1, 0x3d, 0x38, 0x11, 0xb4, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x8b, 0x37, 0xba, 0x07, 0xad, 0x44, 0xde, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x4b, 0x3d, 0xba, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb6, 0x85, 0x74, 0x0f, 0x96, 0x61, 0xbf, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x9b, 0x48, 0xba, 0x07, 0xa5, 0xae, 0x68, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x63, 0x4e, 0xba, 0x1b, 0x2c, 0xa9, 0x4e, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x06, 0xa8, 0x74, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0d, 0x66, 0xe9, 0x6e, 0x50, 0x96, 0xbc, 0x6f, 0x70, 0xec, 0xbf, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x56, 0xc0, 0x74, 0x0f, 0xca, 0xa6, 0xfa, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xb8, 0x4c, 0xf7, 0xa0, 0xdd, 0x06, 0xb3, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xc5, 0x35, 0xdd, 0x83, 0xc6, 0x8f, 0x73, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xa5, 0x38, 0xdd, 0x0d, 0x8a, 0x4e, 0xe3, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xda, 0x4e, 0x77, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0xb2, 0x05, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0xeb, 0xd3, 0x3d, 0x28, 0x9b, 0xea, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x85, 0x41, 0xdd, 0x83, 0xc6, 0x08, 0xcc, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xa6, 0x11, 0x75, 0x0f, 0x5a, 0x59, 0xd4, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xe5, 0x47, 0xdd, 0x0d, 0x0a, 0x43, 0xd5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0xaa, 0x52, 0x77, 0x83, 0x13, 0xfb, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xaf, 0xa9, 0xbb, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0xe1, 0x26, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8d, 0x86, 0xea, 0x1e, 0x94, 0x4d, 0xf5, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xce, 0xa9, 0xee, 0x41, 0xa3, 0xa9, 0xba, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0xfa, 0xab, 0xee, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xa5, 0x5a, 0xdd, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xd3, 0xba, 0xba, 0x1b, 0x94, 0x25, 0xef, 0x1b, 0x1c, 0xad, 0x35, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xc5, 0x60, 0xdd, 0x83, 0xb2, 0xa9, 0x7e, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x39, 0xd6, 0x3d, 0x68, 0x34, 0x55, 0xb7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x9e, 0x59, 0x77, 0x83, 0xa3, 0xeb, 0xe0, 0x1a, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x36, 0xa7, 0x75, 0x0f, 0xda, 0xfa, 0x7e, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xc6, 0xb2, 0x75, 0x0f, 0x5a, 0x59, 0xd4, 0xad, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0xad, 0x6f, 0xdd, 0x0d, 0x8e, 0xae, 0x83, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x9a, 0x2f, 0xd7, 0x3d, 0x68, 0xeb, 0xfb, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x5d, 0xd7, 0x3d, 0x68, 0x65, 0x51, 0xb7, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x2e, 0x5e, 0xf7, 0xa0, 0xa0, 0xc8, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xae, 0x88, 0xfe, 0xa0, 0x6d, 0x7b, 0xdd, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x8c, 0x5f, 0x77, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x78, 0xc0, 0xee, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x47, 0x6b, 0x8d, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x11, 0x61, 0xf7, 0xa0, 0x6c, 0xaa, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0x46, 0x1c, 0x76, 0x0f, 0x1a, 0x23, 0x30, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x9f, 0xd8, 0x3d, 0x68, 0x65, 0x51, 0xb7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x37, 0x63, 0xf7, 0xa0, 0xf1, 0xe3, 0xdc, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0xfa, 0xd8, 0xdd, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x4b, 0xb2, 0xbb, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x48, 0x65, 0xf7, 0x20, 0x29, 0x2d, 0x78, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x7e, 0xd9, 0xdd, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x56, 0xb3, 0x7b, 0xd0, 0x3e, 0x12, 0xc1, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xb1, 0xb3, 0xbb, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x14, 0x68, 0xf7, 0xe0, 0x44, 0xd0, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0d, 0x19, 0xed, 0x1e, 0xb4, 0x8a, 0xb4, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0d, 0x57, 0xed, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0xda, 0xda, 0x3d, 0x58, 0x86, 0xfd, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0x84, 0xed, 0x1e, 0xb4, 0xb2, 0xa8, 0x5b, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xad, 0x9c, 0xed, 0x1e, 0x14, 0x14, 0x99, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x38, 0xdb, 0xee, 0x41, 0x41, 0x91, 0xd9, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0xca, 0xed, 0x6e, 0xb0, 0x42, 0xa8, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0xc1, 0xdb, 0x3d, 0x58, 0x0f, 0x0c, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0d, 0xf7, 0xed, 0x1e, 0x34, 0x01, 0xb8, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x6d, 0x11, 0xee, 0x6e, 0xb0, 0x42, 0xa8, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x5a, 0x50, 0xdc, 0x3d, 0x58, 0x57, 0x30, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0x3e, 0xee, 0x6e, 0xb0, 0x42, 0xa8, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0xab, 0xdc, 0x3d, 0x58, 0x0f, 0x0c, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x2d, 0x6c, 0xee, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x04, 0xdd, 0x3d, 0x58, 0x33, 0x1b, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xad, 0x98, 0xee, 0x1e, 0x34, 0x19, 0x7c, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x8d, 0xaf, 0xee, 0x1e, 0x34, 0xe4, 0xba, 0xdb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0x2e, 0xbb, 0xbb, 0xc1, 0x0a, 0xa1, 0xa6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x14, 0x77, 0xf7, 0x60, 0x45, 0x45, 0xe8, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0x34, 0xe5, 0xbb, 0xbb, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0x2b, 0xa2, 0x3f, 0x68, 0x7b, 0x78, 0xf7, 0x60, 0x05, 0xda, 0xea, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0x98, 0xbc, 0xbb, 0x41, 0x21, 0x98, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x2b, 0xcf, 0xbb, 0x07, 0xcd, 0x78, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0xcb, 0xd4, 0xbb, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xba, 0x22, 0xfa, 0x83, 0xb6, 0xb4, 0x77, 0x0f, 0x56, 0xa0, 0xad, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x5d, 0x11, 0xfd, 0x41, 0x1b, 0xe0, 0xbb, 0x07, 0x49, 0x69, 0xc1, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x57, 0x44, 0x7f, 0xd0, 0x74, 0xf9, 0xee, 0x41, 0x43, 0xe8, 0xbb, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0xcd, 0xb2, 0xef, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0x1a, 0x92, 0xdf, 0x3d, 0x58, 0x81, 0x52, 0xba, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x75, 0x45, 0xf4, 0x07, 0x0d, 0xe0, 0xef, 0x1e, 0x14, 0x14, 0x99, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0xd7, 0x15, 0xd1, 0x1f, 0xb4, 0xdd, 0xbf, 0x7b, 0xb0, 0x42, 0xa4, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0xeb, 0x8a, 0xe8, 0x0f, 0xda, 0x1b, 0xe0, 0x3d, 0x68, 0x02, 0x70, 0xb7, 0x0e, 0xda, 0x37, 0xe0, 0x3d, 0x68, 0x27, 0x82, 0xf7, 0xa0, 0x31, 0x35, 0xde, 0x83, 0xc6, 0xf2, 0x7a, 0x0f, 0xa7, 0xd8, 0xe1, 0x14, 0x3b, 0x68, 0x9c, 0xc9, 0xb8, 0x83, 0x46, 0x0f, 0x8d, 0x0f, 0xda, 0x6f, 0x35, 0xae, 0xc3, 0x29, 0x76, 0xd0, 0x92, 0xe4, 0xf1, 0x41, 0x93, 0x9d, 0xc8, 0x1b, 0x4e, 0x84, 0x0d, 0xe2, 0x3d, 0x4a, 0xe1, 0xa0, 0x25, 0x15, 0xf2, 0x0d, 0x27, 0xc2, 0x06, 0xd1, 0x16, 0xa5, 0x70, 0xd0, 0xc2, 0x0b, 0xf9, 0x41, 0x73, 0x32, 0xe4, 0x07, 0x4d, 0x68, 0x94, 0x1f, 0xb4, 0x6c, 0x54, 0x5e, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x7f, 0x68, 0x0e, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x22, 0x32, 0xcd, 0xe1, 0xa0, 0x69, 0xa8, 0xf2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xc4, 0xaa, 0x39, 0x0c, 0xbb, 0x41, 0x59, 0x77, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x2a, 0xd8, 0x1c, 0x0e, 0x86, 0x66, 0xd7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x62, 0xda, 0x1c, 0x0e, 0x0d, 0x75, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xa2, 0xdc, 0x1c, 0x06, 0xd9, 0x1a, 0xf2, 0xd8, 0x8b, 0x83, 0x60, 0x83, 0xd6, 0x3f, 0xa3, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x34, 0x81, 0x02, 0x35, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x06, 0x6d, 0xab, 0x95, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x73, 0x6f, 0x0e, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xa2, 0x10, 0xce, 0xe1, 0xa0, 0xc5, 0xba, 0xf2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x94, 0xc6, 0x39, 0x1c, 0xc6, 0xe5, 0x38, 0x74, 0x1c, 0x3a, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xa2, 0x58, 0xce, 0x61, 0x90, 0xad, 0x21, 0x8f, 0xbd, 0x38, 0x08, 0x36, 0x68, 0xfd, 0x33, 0x6a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x13, 0x28, 0x50, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x2f, 0x6e, 0x98, 0xb8, 0x0d, 0xda, 0x43, 0x2c, 0xdf, 0x50, 0x47, 0xd6, 0x30, 0x43, 0x1b, 0x44, 0x5b, 0x94, 0xc2, 0x86, 0x13, 0x61, 0x83, 0x68, 0x8b, 0x52, 0x38, 0x68, 0xed, 0xb1, 0xfc, 0xa0, 0x81, 0xc8, 0xf2, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xe2, 0x7c, 0xce, 0x61, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xe4, 0xd3, 0x39, 0x1c, 0xb4, 0xf3, 0x5a, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x0c, 0x3b, 0x87, 0x43, 0x34, 0x8f, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x66, 0xee, 0x1c, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x88, 0xc2, 0x73, 0x38, 0x68, 0x63, 0xb7, 0x7c, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x9c, 0xe5, 0x39, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x31, 0xa8, 0xe7, 0x30, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xec, 0x3d, 0x87, 0xe1, 0x17, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x22, 0x9e, 0xcf, 0xe1, 0x60, 0xe1, 0xbd, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x04, 0x3f, 0x87, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xb1, 0xf1, 0xe7, 0x70, 0xd0, 0xac, 0x75, 0xf9, 0x20, 0xdb, 0x20, 0xf2, 0xcd, 0x25, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x31, 0x03, 0xe8, 0x70, 0x18, 0x97, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x71, 0xe8, 0xf8, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xa5, 0x40, 0x87, 0x41, 0xb0, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x2c, 0x41, 0x87, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xd4, 0x1a, 0x3a, 0x0c, 0xbb, 0x41, 0xdb, 0xea, 0xe5, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x62, 0x26, 0xd1, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x62, 0x56, 0xd1, 0x61, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x51, 0xbc, 0xe8, 0x70, 0xb0, 0x3e, 0x48, 0x6c, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xcc, 0x38, 0x3a, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xa2, 0x47, 0x87, 0x83, 0xf6, 0xa4, 0x9a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x51, 0x06, 0xe9, 0x70, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x02, 0x23, 0x1d, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0xa7, 0xa4, 0xc3, 0x41, 0xab, 0x8e, 0x4d, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc8, 0x9d, 0x74, 0x18, 0x04, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x38, 0xa6, 0x74, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0x49, 0xa6, 0xc3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb8, 0xd1, 0x74, 0x38, 0x58, 0x68, 0x62, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xaa, 0x4d, 0x87, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0x19, 0xa7, 0xc3, 0x41, 0x63, 0x22, 0x28, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xa2, 0xda, 0xd3, 0x61, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x9c, 0x7f, 0x3a, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x7c, 0x50, 0x87, 0x83, 0xf6, 0xa4, 0x9a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x91, 0x21, 0xea, 0x70, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x72, 0x46, 0x1d, 0x0e, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0x14, 0xa9, 0xc3, 0x20, 0x19, 0x32, 0x88, 0x16, 0xbc, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0x74, 0xa9, 0xc3, 0x41, 0xf0, 0x70, 0x1f, 0x8f, 0x8f, 0x6f, 0xc7, 0xe3, 0x61, 0x37, 0x68, 0xee, 0xc6, 0x7c, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x74, 0xa0, 0x3a, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x9c, 0x54, 0x87, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xd1, 0xa4, 0xea, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xd6, 0x56, 0x1d, 0x0e, 0xca, 0x7d, 0xc0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x91, 0xc8, 0xea, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x36, 0x5b, 0x1d, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0xab, 0xab, 0xc3, 0x41, 0x8a, 0x26, 0xf3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x96, 0x5f, 0x1d, 0x0e, 0x31, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xe7, 0xb0, 0x0e, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x22, 0x3f, 0xd6, 0xe1, 0x20, 0x45, 0x93, 0x79, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x17, 0xb3, 0x0e, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x62, 0x86, 0xd6, 0xe1, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x2c, 0xd5, 0x3a, 0x0c, 0x82, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x64, 0xd9, 0x3a, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x22, 0x56, 0xd7, 0x61, 0xd8, 0x0d, 0xc6, 0x21, 0xd3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa8, 0xe0, 0x75, 0x38, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x29, 0xbd, 0x0e, 0xc3, 0x6e, 0xd0, 0x6c, 0x9c, 0xf9, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x68, 0xf4, 0x75, 0x38, 0x9c, 0x62, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe8, 0xfc, 0x75, 0x18, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xe4, 0x02, 0x3b, 0x1c, 0xb4, 0xd4, 0x67, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x46, 0x86, 0x1d, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0x0d, 0xb1, 0xc3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x38, 0x2a, 0x76, 0x38, 0xe4, 0xbe, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x51, 0x65, 0xec, 0x30, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0xd9, 0xb1, 0xc3, 0x41, 0xcb, 0x8e, 0xe6, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x3f, 0x64, 0x87, 0x43, 0x7f, 0xf2, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xe2, 0x32, 0xd9, 0xe1, 0x20, 0xe4, 0xb3, 0x8f, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf8, 0x55, 0x76, 0x18, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf8, 0x61, 0x76, 0x38, 0x08, 0x1e, 0xee, 0xe3, 0xf1, 0xe1, 0x14, 0x3b, 0xbe, 0x0d, 0xbb, 0x41, 0xbb, 0xa5, 0xe6, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xe2, 0xd0, 0xd9, 0x61, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xcc, 0x67, 0x87, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xbc, 0x43, 0x3b, 0x2c, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x22, 0x41, 0xda, 0x61, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x8d, 0x69, 0x87, 0x83, 0x76, 0x6e, 0xcd, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0x0e, 0xb5, 0xc3, 0x41, 0x0b, 0xbe, 0xe6, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xb6, 0xaa, 0x1d, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x68, 0xb3, 0x76, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0xf0, 0xb5, 0xc3, 0x20, 0x5a, 0x20, 0xfc, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe8, 0xca, 0x76, 0x38, 0x24, 0x66, 0x8e, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe8, 0xd3, 0x76, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xe2, 0x71, 0xdb, 0x61, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xe5, 0xdc, 0x0e, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x1c, 0x78, 0x3b, 0x1c, 0x34, 0xa9, 0x6d, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x3a, 0xbe, 0x1d, 0x86, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x1f, 0x70, 0x87, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xb6, 0xc2, 0x1d, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0x9b, 0xb8, 0xc3, 0xc1, 0xb9, 0xa5, 0x78, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x2c, 0x8e, 0x3b, 0x1c, 0x5a, 0x89, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x4f, 0x72, 0x87, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xd1, 0x5b, 0xee, 0x70, 0x38, 0xda, 0x8f, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x58, 0x36, 0x77, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xed, 0xe7, 0x0e, 0x87, 0x18, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x82, 0x74, 0x87, 0x83, 0x42, 0xea, 0x6f, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x8c, 0xa8, 0x3b, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x9a, 0x75, 0x87, 0x43, 0x0c, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0x13, 0xbb, 0xc3, 0x21, 0x86, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xa2, 0xac, 0xdd, 0xe1, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xf4, 0xb9, 0x3b, 0x1c, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xca, 0x77, 0x87, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x71, 0x0a, 0xef, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x72, 0xe3, 0x1d, 0x0e, 0xb9, 0xef, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x71, 0x2c, 0xef, 0x70, 0xb0, 0xb0, 0x1e, 0x67, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x94, 0xcf, 0x3b, 0x1c, 0x94, 0x40, 0x91, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xa2, 0xa0, 0xde, 0xe1, 0x20, 0x45, 0x93, 0x79, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x23, 0xf6, 0x0e, 0x87, 0x18, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x9f, 0x7b, 0x87, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xbe, 0xf0, 0x1d, 0x0e, 0x31, 0x1c, 0x76, 0x83, 0xe6, 0x60, 0xce, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0xa6, 0xbe, 0xc3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb8, 0xdd, 0x77, 0x38, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xcb, 0xfc, 0x0e, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x22, 0xbd, 0xdf, 0xe1, 0xa0, 0xdc, 0x07, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x07, 0xff, 0x0e, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x22, 0x03, 0xe0, 0x61, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xac, 0x04, 0x3c, 0x1c, 0x24, 0x94, 0x9d, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x22, 0x49, 0xe0, 0xe1, 0x10, 0xc3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x51, 0x36, 0xf0, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xee, 0x08, 0x1e, 0x0e, 0xd2, 0x4f, 0x2d, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0x65, 0xc1, 0xc3, 0x41, 0x5a, 0x75, 0xf4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x66, 0x0d, 0x1e, 0x0e, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0xf3, 0xc1, 0xc3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x08, 0x47, 0x78, 0x38, 0x48, 0xab, 0x8e, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xff, 0x09, 0x0f, 0x07, 0x89, 0x4a, 0xcf, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe8, 0x58, 0x78, 0x38, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x39, 0x0c, 0x0f, 0x83, 0x60, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x47, 0x0d, 0x0f, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf8, 0x8c, 0x78, 0x18, 0x76, 0x83, 0x71, 0xc8, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x06, 0x26, 0x1e, 0x0e, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0x05, 0xc5, 0xc3, 0xb0, 0x1b, 0x34, 0x1b, 0x67, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xf6, 0x2a, 0x1e, 0x0e, 0xa7, 0xd8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x16, 0x2d, 0x1e, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0xe7, 0xc5, 0xc3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x78, 0xc5, 0x78, 0x38, 0xe4, 0xbe, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xd1, 0x9b, 0xf1, 0x30, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0xb3, 0xc6, 0xc3, 0xc1, 0x0a, 0x86, 0x88, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xd1, 0xbe, 0xf1, 0x30, 0x08, 0x16, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0x43, 0xc7, 0xc3, 0x41, 0xe3, 0x97, 0xe7, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x91, 0xe1, 0xf1, 0x70, 0x10, 0xf2, 0xd9, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x82, 0x3e, 0x1e, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xe0, 0xfd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x82, 0x41, 0x1e, 0x0e, 0x82, 0x87, 0xfb, 0x78, 0x7c, 0x7c, 0x1b, 0x76, 0x83, 0x26, 0x5a, 0xcf, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0xc2, 0xc8, 0xc3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x28, 0x21, 0x79, 0x38, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x39, 0x25, 0x0f, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xe2, 0xca, 0xe4, 0xe1, 0xa0, 0xdc, 0x07, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x75, 0x27, 0x0f, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xe2, 0x10, 0xe5, 0x61, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x64, 0xa6, 0x3c, 0x1c, 0x24, 0x94, 0x9d, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xe2, 0x56, 0xe5, 0xe1, 0x10, 0xc3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x31, 0xbd, 0xf2, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xca, 0x59, 0x1e, 0x0e, 0xd2, 0x4f, 0x2d, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0x80, 0xcb, 0xc3, 0x41, 0xfa, 0xa9, 0xc5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x42, 0x5e, 0x1e, 0x0e, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0x0f, 0xcc, 0xc3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x78, 0x8a, 0x79, 0x38, 0x48, 0x54, 0x7a, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x6d, 0x32, 0x0f, 0x07, 0x89, 0x4a, 0xcf, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x58, 0x9c, 0x79, 0x38, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xa7, 0x34, 0x0f, 0x83, 0x60, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xb5, 0x35, 0x0f, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x68, 0xd0, 0x79, 0x18, 0x76, 0x83, 0x71, 0xc8, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xe2, 0x76, 0x1e, 0x0e, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0x21, 0xcf, 0xc3, 0xb0, 0x1b, 0x34, 0x1b, 0x67, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xd2, 0x7b, 0x1e, 0x0e, 0xa7, 0xd8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xf2, 0x7d, 0x1e, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0x02, 0xd0, 0xc3, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x1d, 0x41, 0x0f, 0x07, 0x4d, 0x0c, 0xa0, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x1b, 0xa1, 0x87, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xe5, 0xa1, 0x87, 0x83, 0xa6, 0x9c, 0x9a, 0x06, 0xd1, 0x82, 0xf6, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xcc, 0x14, 0x3d, 0x1c, 0x84, 0x7c, 0xf6, 0xf1, 0xfc, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x2d, 0xa3, 0x87, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x78, 0x3f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xed, 0xa3, 0x87, 0x83, 0xe0, 0xe1, 0x3e, 0x1e, 0x1f, 0xdf, 0x86, 0xdd, 0xa0, 0x55, 0x0f, 0xf4, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x31, 0xa2, 0xf4, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x6a, 0x96, 0x1e, 0x0e, 0x31, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x4d, 0x4c, 0x0f, 0x87, 0xdc, 0xf7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xb6, 0x9a, 0x1e, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x68, 0x73, 0x7a, 0x38, 0x68, 0xaf, 0x4c, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xd1, 0xf8, 0xf4, 0x30, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0x27, 0xd4, 0xc3, 0x41, 0x4b, 0x3a, 0xe8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x62, 0x37, 0xea, 0xe1, 0xb0, 0xf6, 0x7b, 0x1c, 0x5a, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf8, 0x96, 0x7a, 0x38, 0x48, 0x8b, 0xa2, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xfa, 0xa7, 0x1e, 0x0e, 0xda, 0x58, 0x42, 0x3f, 0x0e, 0x0d, 0xbb, 0x41, 0x2b, 0x4f, 0xe8, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x62, 0xc8, 0xea, 0xe1, 0x10, 0xc3, 0x61, 0x37, 0x68, 0xa8, 0x0a, 0x7d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x94, 0x6a, 0x3d, 0x0c, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x82, 0xb7, 0x1e, 0x0e, 0xd6, 0x07, 0x89, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xa1, 0xaf, 0x87, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x11, 0x06, 0xf6, 0x70, 0x88, 0xe1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc8, 0x0b, 0x7b, 0x38, 0xe4, 0xbe, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x31, 0x28, 0xf6, 0x30, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0xe5, 0xd8, 0xc3, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xa7, 0x64, 0x0f, 0x07, 0xad, 0xcf, 0xa1, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x8a, 0xcb, 0x1e, 0x0e, 0x52, 0x20, 0xcd, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x72, 0xb3, 0x87, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xe4, 0xb7, 0x87, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xb6, 0xe1, 0x1e, 0x0e, 0x16, 0x16, 0x94, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xfc, 0xb8, 0x87, 0x83, 0x06, 0x1c, 0xd1, 0x8f, 0x43, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xa2, 0x24, 0xed, 0x61, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x1b, 0xb5, 0x87, 0x83, 0x76, 0x30, 0xd1, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x55, 0x6b, 0x0f, 0x07, 0x2d, 0x7f, 0xa2, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x73, 0x6c, 0x0f, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x14, 0xb6, 0x3d, 0x1c, 0x2c, 0x2c, 0x28, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xa3, 0x6e, 0x0f, 0x07, 0x0d, 0xbc, 0xa2, 0x1f, 0x87, 0x8e, 0x43, 0x83, 0x60, 0x83, 0x20, 0x8b, 0x5f, 0x1c, 0x04, 0x0b, 0xbf, 0x21, 0x5b, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x03, 0xb4, 0x87, 0x83, 0xe5, 0x29, 0x25, 0x07, 0x2b, 0xf1, 0x45, 0x8e, 0xc7, 0xc7, 0xa1, 0x61, 0x37, 0x18, 0xf5, 0x92, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x71, 0x7c, 0x0f, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x4c, 0xf7, 0x3d, 0x1c, 0x2c, 0xf3, 0x80, 0x18, 0x24, 0x83, 0x6c, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x11, 0xef, 0xf7, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x06, 0x00, 0x1f, 0x0e, 0x31, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x1f, 0x81, 0x0f, 0x07, 0x05, 0x69, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x76, 0x04, 0x1f, 0x0e, 0x6b, 0xbf, 0xc7, 0xa1, 0x61, 0x37, 0x68, 0xa8, 0x1a, 0x7d, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xe2, 0x9b, 0xf0, 0x61, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xf8, 0xc2, 0x87, 0x83, 0xf6, 0xca, 0x44, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x11, 0x87, 0x0f, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x8c, 0x20, 0x3e, 0x1c, 0x34, 0x77, 0x8e, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd8, 0x49, 0x7c, 0x38, 0xf4, 0x27, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xa6, 0x14, 0x1f, 0x0e, 0x6b, 0xbf, 0xc7, 0xa1, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xbb, 0xc5, 0x87, 0x83, 0x24, 0x22, 0x92, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xa2, 0x92, 0xf1, 0xe1, 0x10, 0xc3, 0xe3, 0xd0, 0xb0, 0x1b, 0x34, 0xdd, 0x8f, 0xbe, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x11, 0xf3, 0xf8, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x86, 0x20, 0x1f, 0x0e, 0x12, 0xfd, 0xa0, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x11, 0x16, 0xf9, 0x30, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe8, 0x93, 0x7c, 0x18, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x3c, 0x4e, 0x3e, 0x1c, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x4c, 0xca, 0x87, 0xc3, 0xda, 0xef, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd8, 0xd0, 0x7c, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x2d, 0x9b, 0x0f, 0x07, 0x0b, 0x38, 0x72, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xb1, 0xc4, 0xf9, 0x70, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x72, 0x2b, 0x1f, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x58, 0xb6, 0x7c, 0x38, 0x68, 0xee, 0x1c, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x31, 0x7e, 0xf9, 0x70, 0xe8, 0x4f, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xec, 0x63, 0x3e, 0x1c, 0xd6, 0x7e, 0x8f, 0x43, 0x83, 0x6c, 0x43, 0xf3, 0xf5, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xa2, 0x7f, 0xee, 0x61, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xaf, 0xba, 0x87, 0x83, 0x65, 0x1e, 0x10, 0x83, 0x64, 0x90, 0x0d, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xfa, 0xec, 0x1e, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0xe3, 0xdd, 0xc3, 0x21, 0x86, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x62, 0x15, 0xef, 0xe1, 0x20, 0x05, 0xd2, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xcb, 0x79, 0x0f, 0x87, 0xb5, 0xdf, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x5e, 0xbc, 0x1e, 0x0e, 0x31, 0x1c, 0x76, 0x83, 0x06, 0x9b, 0xd2, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0x2d, 0xe8, 0xc3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x38, 0x12, 0x7d, 0x38, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x5f, 0xa3, 0x0f, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xc4, 0x91, 0x3e, 0x1c, 0x1c, 0xbd, 0xcd, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0x64, 0xe9, 0xc3, 0x21, 0xfe, 0xc7, 0xa1, 0x61, 0x37, 0x68, 0xb9, 0x2c, 0x7d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xec, 0xa7, 0x3e, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xd1, 0xb0, 0xfa, 0x30, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x31, 0xd6, 0x87, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xf1, 0xd6, 0x87, 0x83, 0xe5, 0xb8, 0x42, 0xc7, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x0c, 0xbc, 0x3e, 0x0c, 0xbb, 0xc1, 0xa8, 0x97, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x67, 0xb0, 0x0f, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x62, 0x2f, 0xf6, 0x61, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x34, 0xca, 0x3e, 0x1c, 0x62, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x4a, 0x67, 0x1f, 0x0e, 0x0a, 0xa9, 0xbf, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x31, 0x4c, 0xfb, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xaa, 0x6b, 0x1f, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0xb9, 0xed, 0xc3, 0x41, 0x62, 0x88, 0xcc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x0a, 0x70, 0x1f, 0x0e, 0x31, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x21, 0xb9, 0x0f, 0x87, 0x18, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x1c, 0xdd, 0x87, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x11, 0xb5, 0xfb, 0x70, 0x88, 0xe1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x68, 0xe3, 0x7d, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x7f, 0xbd, 0x0f, 0x87, 0xdc, 0xf7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x1a, 0x7d, 0x1f, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf8, 0xfc, 0x7d, 0x38, 0x58, 0xc1, 0x10, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x7a, 0x81, 0x1f, 0x0e, 0x16, 0x95, 0x0e, 0x1d, 0x87, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0x79, 0xf0, 0xc3, 0x41, 0x08, 0x80, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xa2, 0x60, 0xf8, 0xe1, 0x10, 0xc3, 0x61, 0x37, 0x68, 0xa2, 0x37, 0x7d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xac, 0x1d, 0x3f, 0x0c, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xfa, 0x90, 0x1f, 0x86, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x8f, 0xc9, 0x0f, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x62, 0x54, 0xf9, 0xe1, 0xb0, 0xf6, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x86, 0x97, 0x1f, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0x35, 0xf3, 0xc3, 0x21, 0x86, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xa2, 0xbd, 0xf9, 0xe1, 0x90, 0xfb, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xfb, 0xce, 0x0f, 0x07, 0xc9, 0x43, 0xcc, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc8, 0x80, 0x7e, 0x38, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x31, 0xd1, 0x0f, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x14, 0x95, 0x3f, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x22, 0xd3, 0xfc, 0x61, 0x10, 0x2c, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xe2, 0xf4, 0xfc, 0x61, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x33, 0xee, 0x0f, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xa2, 0xf7, 0x87, 0x83, 0x66, 0xe3, 0xcc, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0x6c, 0xfc, 0xc3, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xe2, 0x59, 0xfe, 0x61, 0xb8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x11, 0x3e, 0xff, 0x70, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xea, 0xe9, 0x1f, 0x0e, 0x89, 0x99, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x91, 0x72, 0xff, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x76, 0xf0, 0x1f, 0x0e, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0x54, 0xfe, 0xc3, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa8, 0xb0, 0x7f, 0x38, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x6b, 0xfa, 0x0f, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xf4, 0xed, 0x3f, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x47, 0xfe, 0x87, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x8c, 0xf7, 0x3f, 0x0c, 0x92, 0x21, 0x83, 0x68, 0xc1, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xdc, 0xfd, 0x3f, 0x1c, 0x2c, 0x67, 0x12, 0x1a, 0x44, 0x0b, 0xda, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xf1, 0x0d, 0x00, 0x71, 0x10, 0xf2, 0xd9, 0xc7, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x0c, 0x08, 0x40, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x22, 0x6b, 0x00, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xde, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x22, 0x9b, 0x00, 0xe2, 0x20, 0x78, 0xb8, 0x8f, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe8, 0x2f, 0x80, 0x18, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x64, 0x1c, 0x40, 0x0c, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x56, 0x10, 0x20, 0x0e, 0x52, 0x5b, 0xad, 0x17, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x84, 0x2a, 0x40, 0x1c, 0xac, 0x19, 0x4a, 0x39, 0xa4, 0x73, 0x0f, 0x47, 0xfb, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x88, 0x71, 0x80, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x43, 0x0f, 0x10, 0x87, 0x18, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x2d, 0x08, 0x88, 0x83, 0xb3, 0x69, 0xf8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xf6, 0x22, 0x20, 0x0e, 0x06, 0x6b, 0xec, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x3a, 0x1a, 0x20, 0x0e, 0x31, 0x3c, 0xbe, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xe2, 0x49, 0xfa, 0x61, 0xd8, 0x0d, 0x46, 0xbd, 0xe4, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x88, 0x9d, 0x7e, 0x38, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xc5, 0xd4, 0x0f, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xe2, 0xba, 0xfa, 0xe1, 0x10, 0xc3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xf1, 0x6e, 0xfd, 0x70, 0x50, 0xee, 0x03, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x06, 0xec, 0x87, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xf1, 0x91, 0xfd, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x62, 0xb4, 0x1f, 0x0e, 0x12, 0xca, 0x4e, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xf1, 0xb4, 0xfd, 0x70, 0x88, 0xe1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x58, 0xe3, 0x7e, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x7d, 0xdd, 0x0f, 0x07, 0xc9, 0x43, 0xcc, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x62, 0xd3, 0xfb, 0xe1, 0x60, 0xc9, 0x2e, 0xce, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x72, 0xbf, 0x1f, 0x0e, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0x35, 0xf8, 0xc3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x38, 0x0f, 0x7f, 0x38, 0x58, 0x03, 0x88, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x82, 0xf1, 0x87, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x51, 0x42, 0xfe, 0x70, 0x10, 0x02, 0xe0, 0xc3, 0x6e, 0xd0, 0x8e, 0xa2, 0xfa, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x38, 0xaf, 0x80, 0x18, 0x04, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa8, 0xb7, 0x80, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0xd4, 0x06, 0xc4, 0xb0, 0x1b, 0x34, 0x83, 0xa9, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x6a, 0x39, 0x20, 0x0e, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0x72, 0x07, 0xc4, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xdb, 0x1e, 0x10, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x88, 0x01, 0x81, 0x18, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x28, 0x0e, 0x81, 0x38, 0x58, 0x54, 0x3a, 0x74, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0xb9, 0x08, 0xc4, 0xb0, 0x1b, 0x8c, 0x7a, 0xc9, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x91, 0x44, 0x02, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0x66, 0x7e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xc9, 0x25, 0x10, 0x07, 0xad, 0xde, 0xaa, 0x1f, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x91, 0x6e, 0x02, 0x71, 0x1c, 0x3a, 0xbe, 0x0d, 0xbb, 0x41, 0xfb, 0xbc, 0xea, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x62, 0x6a, 0x05, 0x62, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x24, 0x1f, 0x88, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x74, 0xfe, 0x40, 0x0c, 0x82, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xac, 0x02, 0x41, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xe2, 0xe6, 0x08, 0x62, 0xd8, 0x0d, 0x9a, 0xc1, 0x54, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x9b, 0x48, 0x10, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xe2, 0x35, 0x09, 0x62, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x11, 0xac, 0x04, 0x71, 0xd0, 0xda, 0xb6, 0xfa, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf8, 0x7a, 0x82, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x22, 0x0e, 0x0a, 0x62, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xc7, 0x51, 0x10, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xf0, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x5b, 0x53, 0x10, 0x07, 0x8b, 0x4a, 0x87, 0x8e, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd8, 0xa3, 0x82, 0x18, 0x76, 0x83, 0x51, 0x2f, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xbe, 0xab, 0x20, 0x0e, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0xbc, 0x15, 0xc4, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x28, 0xc0, 0x82, 0x38, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x1d, 0x59, 0x10, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xe2, 0x45, 0x0b, 0xe2, 0x20, 0x04, 0xc0, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xf1, 0xb4, 0x05, 0x71, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xd6, 0xb8, 0x20, 0x86, 0xdd, 0xa0, 0xd9, 0x38, 0xf3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xf1, 0xdc, 0x05, 0x71, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xc6, 0xbd, 0x20, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa8, 0xff, 0x82, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0x52, 0x18, 0xc4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0xb7, 0x18, 0xc4, 0xc1, 0xa2, 0xd2, 0xa1, 0x41, 0xb4, 0xa0, 0x7d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x47, 0x64, 0x10, 0x07, 0x21, 0x9f, 0x7d, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0x59, 0x19, 0xc4, 0xb0, 0x1b, 0x8c, 0x7a, 0xc9, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xb1, 0x6c, 0x06, 0x71, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xbe, 0xcf, 0x20, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x88, 0x47, 0x83, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0x91, 0x1a, 0xc4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x98, 0xf9, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x1c, 0xaf, 0x41, 0x1c, 0xb4, 0x7a, 0xab, 0x3e, 0x88, 0x16, 0xbc, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0x4b, 0x1b, 0xc4, 0xc1, 0x18, 0x58, 0x38, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xe2, 0xc9, 0x0d, 0x62, 0xd8, 0x0d, 0x46, 0xbd, 0xe4, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x98, 0x7d, 0x83, 0x38, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xc7, 0x70, 0x10, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x22, 0x3b, 0x0e, 0xe2, 0x10, 0xc3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x11, 0x2f, 0x07, 0x71, 0x18, 0x97, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x44, 0xd0, 0x41, 0x1c, 0x84, 0x00, 0xf8, 0xf1, 0x6d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x71, 0x2c, 0x10, 0xc3, 0x6e, 0x30, 0xea, 0x25, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0x74, 0x0b, 0xc4, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x38, 0x77, 0x81, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xf9, 0x2f, 0x10, 0x87, 0x18, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x88, 0x18, 0x88, 0x83, 0x72, 0x1f, 0x70, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xbc, 0xc8, 0x40, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xa0, 0x19, 0x88, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x31, 0x45, 0x03, 0x71, 0x90, 0x50, 0x76, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xb8, 0x1a, 0x88, 0x43, 0x0c, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0xa3, 0x0d, 0xc4, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf8, 0xbc, 0x81, 0x38, 0x58, 0xb2, 0x8b, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x5e, 0x1c, 0x88, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x91, 0x9d, 0x03, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xd6, 0x75, 0x20, 0x0e, 0xd6, 0x00, 0xe2, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x22, 0x81, 0x07, 0xe2, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xa4, 0xf4, 0x40, 0x1c, 0x84, 0x00, 0xf8, 0xb0, 0x1b, 0xb4, 0x77, 0xb8, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xfe, 0xf0, 0x20, 0x86, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x9b, 0x79, 0x10, 0xc3, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x56, 0x3d, 0x88, 0xc3, 0xda, 0xef, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x92, 0xf7, 0x20, 0x0e, 0x96, 0xe3, 0x0a, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xfe, 0x3e, 0x88, 0xe1, 0x17, 0x44, 0x0b, 0x8c, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xc2, 0xfe, 0x20, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x98, 0x03, 0x84, 0x38, 0x68, 0x7d, 0x0e, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x11, 0x19, 0x08, 0x71, 0xb0, 0x64, 0x48, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x88, 0x15, 0x84, 0x18, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa8, 0x5c, 0x84, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xe2, 0x94, 0x11, 0xe2, 0x60, 0x61, 0x41, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x28, 0x6e, 0x84, 0x38, 0x68, 0xc0, 0x11, 0xfd, 0x38, 0x34, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xe2, 0x09, 0x21, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x18, 0x30, 0x84, 0x38, 0x68, 0x07, 0x13, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x11, 0x72, 0x08, 0x71, 0xd0, 0xf2, 0x27, 0xfa, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xf1, 0x83, 0x08, 0x31, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0x54, 0x22, 0xc4, 0xc1, 0xc2, 0x82, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xf1, 0xa6, 0x08, 0x71, 0xd0, 0xc0, 0x2b, 0xfa, 0x71, 0xe8, 0x38, 0x34, 0x08, 0x36, 0x08, 0xb2, 0xf8, 0xc5, 0x41, 0xb0, 0xf0, 0x1b, 0xb2, 0x15, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x98, 0x1e, 0x84, 0x38, 0x58, 0x9e, 0x52, 0x72, 0xb0, 0x12, 0x5f, 0xe4, 0x78, 0x7c, 0x1c, 0x3a, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x62, 0xdd, 0x11, 0x62, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xfe, 0x47, 0x88, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x4c, 0x45, 0x42, 0x0c, 0x92, 0x21, 0x83, 0x68, 0xc1, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x4c, 0x4b, 0x42, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xf2, 0x49, 0x88, 0x83, 0xf6, 0xa4, 0x9a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x51, 0x50, 0x09, 0x71, 0xb0, 0x64, 0x48, 0xe8, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x14, 0x4b, 0x88, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0xd1, 0x25, 0xc4, 0x41, 0x2b, 0x01, 0xec, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xa2, 0x9f, 0x13, 0x62, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xf1, 0xe0, 0x09, 0x71, 0xd0, 0x5e, 0x04, 0xfb, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x18, 0x16, 0x85, 0x38, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xe2, 0x7b, 0x14, 0x62, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xc4, 0x93, 0x42, 0x1c, 0x62, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x12, 0x4c, 0x21, 0x0e, 0xb9, 0xef, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x71, 0x71, 0x0a, 0x71, 0x90, 0xe8, 0x07, 0x3d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x1a, 0x54, 0x88, 0x83, 0xc1, 0x1a, 0x7b, 0x38, 0xc5, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x91, 0xce, 0x07, 0x71, 0x88, 0xe1, 0xb0, 0x1b, 0x34, 0x02, 0xc3, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x46, 0x59, 0x21, 0x86, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xb5, 0xad, 0x10, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x1c, 0xbb, 0x42, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x51, 0x02, 0x0b, 0x71, 0xb0, 0xca, 0xee, 0x7f, 0x90, 0x0c, 0x4c, 0xdf, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xa2, 0x27, 0x16, 0xe2, 0x90, 0x3a, 0x38, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x30, 0x59, 0x88, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x31, 0x37, 0x0b, 0x71, 0x90, 0x02, 0x69, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x49, 0x5a, 0x88, 0xc3, 0xda, 0xef, 0x71, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xec, 0xd6, 0x42, 0x1c, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x67, 0x5b, 0x88, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xc2, 0x6f, 0x21, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x71, 0x93, 0x0b, 0x31, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0x92, 0x2e, 0xc4, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xa5, 0xbb, 0x10, 0x07, 0x2d, 0xae, 0x44, 0x0d, 0x92, 0x81, 0xe2, 0x37, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe8, 0xe5, 0x85, 0x38, 0x18, 0x13, 0x56, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x11, 0xde, 0x0b, 0x71, 0x90, 0x02, 0x69, 0x7e, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0xc0, 0x2f, 0xc4, 0xb0, 0x1b, 0x8c, 0x7a, 0xc9, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x51, 0x06, 0x0c, 0x31, 0xc8, 0xd6, 0x90, 0xc7, 0x5e, 0x1c, 0x04, 0x1b, 0x34, 0x72, 0xbd, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0xf9, 0xed, 0x95, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x37, 0x68, 0xe1, 0x90, 0x7d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x38, 0x0c, 0x86, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x99, 0xc2, 0x10, 0x07, 0xcd, 0x48, 0xb2, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x22, 0x77, 0x18, 0xe2, 0x60, 0x04, 0x79, 0x1e, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x64, 0x13, 0x43, 0x1c, 0x4e, 0xb1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xa4, 0x17, 0x43, 0x0c, 0x92, 0x21, 0x83, 0x68, 0xc1, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xd4, 0x3e, 0x43, 0x1c, 0x84, 0x00, 0xf8, 0x20, 0x5a, 0xd8, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xa4, 0x1d, 0x43, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xb1, 0x87, 0x0c, 0x31, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0x75, 0x32, 0xc4, 0xc1, 0x82, 0xda, 0xfd, 0x41, 0x32, 0x38, 0x35, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x78, 0x57, 0x86, 0x38, 0xa4, 0x6a, 0x8e, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x62, 0x82, 0x19, 0x62, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x94, 0x34, 0x43, 0x1c, 0x8c, 0x20, 0xcf, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x14, 0x39, 0x43, 0x1c, 0x12, 0x33, 0xc7, 0xa1, 0xe3, 0xf9, 0xb0, 0x1b, 0x34, 0x34, 0xcc, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x46, 0xa8, 0x21, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc8, 0x38, 0x87, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0x1b, 0x3a, 0xc4, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x7f, 0xe9, 0x10, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa8, 0x56, 0x87, 0x38, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x33, 0xef, 0x10, 0x83, 0x60, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x41, 0xf0, 0x10, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x68, 0xb6, 0x87, 0x18, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x7c, 0xdf, 0x43, 0x0c, 0xb7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xe2, 0xf1, 0x21, 0x0e, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0x81, 0x3e, 0xc4, 0x41, 0x88, 0xf8, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x92, 0x7d, 0x88, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x71, 0xc3, 0x0f, 0x71, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x9e, 0xfa, 0x21, 0x0e, 0xa9, 0x83, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xbc, 0xf9, 0x43, 0x0c, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x16, 0xff, 0x21, 0x0e, 0xda, 0xd3, 0x67, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xdb, 0x09, 0x11, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xb4, 0x2b, 0x44, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x62, 0x87, 0x21, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x44, 0x7f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xbb, 0x0d, 0x11, 0x07, 0x0d, 0xfb, 0x8c, 0x1c, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xb1, 0xed, 0x10, 0x31, 0xec, 0x06, 0xa3, 0x5e, 0x72, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xe4, 0x40, 0x44, 0x1c, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xa6, 0x88, 0x88, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xbe, 0x24, 0x22, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x51, 0x3b, 0x11, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x91, 0x54, 0x11, 0x71, 0xd0, 0x5a, 0x48, 0xfb, 0x20, 0x5a, 0xd0, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x58, 0x8b, 0x88, 0x83, 0x92, 0xa6, 0xe1, 0xb0, 0x42, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xe8, 0x8b, 0x88, 0x61, 0x37, 0x18, 0xf5, 0x92, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xa2, 0x26, 0x23, 0xe2, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x24, 0x69, 0x44, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x81, 0xe8, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x22, 0x79, 0x23, 0xe2, 0x20, 0x1d, 0xaf, 0x61, 0x10, 0x2d, 0xec, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x62, 0x3a, 0x22, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0x90, 0x47, 0xc4, 0x41, 0x08, 0x80, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x62, 0xec, 0x23, 0xe2, 0x30, 0x2e, 0x87, 0xe4, 0xd2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x8e, 0x11, 0x22, 0x0e, 0x31, 0x3c, 0xbe, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x22, 0xa8, 0x1a, 0x62, 0xd8, 0x0d, 0x46, 0xbd, 0xe4, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x18, 0xb5, 0x86, 0x38, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xb7, 0xd7, 0x10, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x22, 0x19, 0x1b, 0xe2, 0x10, 0xc3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x11, 0x9e, 0x0d, 0x71, 0x50, 0xee, 0x03, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x7f, 0x6d, 0x88, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x11, 0xc1, 0x0d, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x46, 0xba, 0x21, 0x0e, 0x12, 0xca, 0x4e, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x11, 0xe4, 0x0d, 0x71, 0x88, 0xe1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe8, 0xfa, 0x86, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x6f, 0xe0, 0x10, 0x07, 0xcb, 0x55, 0x72, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xd1, 0x18, 0x0e, 0x71, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x52, 0xc5, 0x21, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0xee, 0x38, 0xc4, 0xc1, 0x52, 0x27, 0x9c, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x64, 0x93, 0x43, 0x1c, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xfc, 0x72, 0x88, 0x83, 0x10, 0x00, 0x1f, 0x76, 0x83, 0xd6, 0xf9, 0xda, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0xf5, 0x48, 0xc4, 0xb0, 0x1b, 0xac, 0x0f, 0x12, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x39, 0x25, 0x11, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x2a, 0x93, 0x88, 0xe1, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0xd9, 0x49, 0xc4, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd8, 0x43, 0x89, 0x38, 0xac, 0xfd, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x57, 0x95, 0x88, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x11, 0xbc, 0x12, 0x71, 0x88, 0xe1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc8, 0x66, 0x89, 0x38, 0xe4, 0xbe, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0x79, 0x4b, 0xc4, 0x41, 0xf2, 0x10, 0xf3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x0a, 0x5e, 0x22, 0x0e, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0x66, 0x4a, 0xc4, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe8, 0x80, 0x89, 0x18, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xe4, 0xc4, 0x44, 0x0c, 0xb7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x96, 0x64, 0x22, 0x0e, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0xd7, 0x4c, 0xc4, 0xa1, 0x05, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x98, 0xac, 0x89, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xa2, 0xd4, 0x26, 0x62, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xfb, 0x37, 0x11, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xf0, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x7b, 0x39, 0x11, 0x07, 0xcb, 0x71, 0x85, 0x06, 0xd1, 0x82, 0xf6, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x8c, 0xeb, 0x44, 0x1c, 0x1a, 0x7e, 0x1d, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x31, 0xc0, 0x13, 0x31, 0xec, 0x06, 0xa3, 0x5e, 0x72, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x9c, 0xf5, 0x44, 0x1c, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x3d, 0x9f, 0x88, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xd1, 0xf8, 0x13, 0x71, 0x88, 0xe1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x28, 0x05, 0x8a, 0x38, 0x28, 0xf7, 0x01, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0x70, 0x50, 0xc4, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa8, 0x16, 0x8a, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xe7, 0x43, 0x11, 0x07, 0x09, 0x65, 0x27, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x28, 0x28, 0x8a, 0x38, 0xc4, 0x70, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x84, 0x18, 0x45, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x99, 0xa3, 0x88, 0x83, 0x25, 0xbb, 0x38, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x88, 0x42, 0x8a, 0x38, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x6d, 0x49, 0x11, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xe2, 0x4f, 0x29, 0xe2, 0x60, 0x0d, 0x20, 0xce, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x3a, 0x97, 0x22, 0x0e, 0x31, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xbd, 0x4c, 0x11, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xe2, 0xb9, 0x29, 0xe2, 0x90, 0xfb, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xdd, 0x4e, 0x11, 0x07, 0xc9, 0x43, 0xcc, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd8, 0x7f, 0x8a, 0x38, 0xc4, 0x70, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x5c, 0x44, 0x45, 0x1c, 0x84, 0x00, 0xf8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x6e, 0xa4, 0x22, 0x0e, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0x1f, 0x4d, 0xc4, 0x21, 0x86, 0x83, 0x6c, 0x83, 0x16, 0x25, 0xdc, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xb1, 0x69, 0x15, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xb1, 0x81, 0x15, 0x71, 0xb0, 0x1c, 0x57, 0xe8, 0x78, 0x7c, 0x7c, 0x3b, 0x0e, 0x1d, 0x8f, 0x0f, 0x1a, 0x10, 0x71, 0x3f, 0x1e, 0x1f, 0x34, 0xf7, 0xe2, 0xbe, 0x82, 0x60, 0x83, 0xe3, 0x7e, 0xc7, 0xe2, 0x06, 0xad, 0x58, 0xb9, 0x6f, 0xd0, 0x34, 0x98, 0xfb, 0x1a, 0x34, 0xfc, 0xe8, 0xbe, 0x06, 0x2d, 0x0d, 0xbe, 0xaf, 0x41, 0x43, 0x9c, 0xef, 0x1b, 0x34, 0x88, 0xfc, 0xbe, 0x41, 0x0b, 0x61, 0xf0, 0x6b, 0xd0, 0x1e, 0x22, 0xfc, 0x06, 0x4d, 0xa8, 0xc2, 0x6f, 0xd0, 0xde, 0x1f, 0xfd, 0x06, 0xed, 0x0c, 0xd3, 0x0f, 0x82, 0x0d, 0x5a, 0x43, 0xb2, 0x1f, 0x04, 0x8b, 0x1b, 0x34, 0xae, 0x74, 0x3f, 0x08, 0x36, 0xc4, 0x70, 0x10, 0x6c, 0xd0, 0xc0, 0x42, 0xff, 0x20, 0xd8, 0x90, 0x98, 0x1a, 0x04, 0x1b, 0x34, 0x39, 0xd1, 0x3f, 0x08, 0x36, 0x68, 0x4a, 0xa3, 0x7f, 0x10, 0x6c, 0xd0, 0x02, 0x47, 0xff, 0x20, 0xd8, 0xa0, 0xa0, 0x16, 0x5b, 0xdc, 0xa0, 0x39, 0x97, 0xfe, 0x0d, 0x5a, 0x2a, 0xea, 0x5f, 0xd8, 0x0d, 0x1a, 0x37, 0xf3, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x38, 0x79, 0xe2, 0x0e, 0x82, 0x0d, 0x31, 0x1c, 0x76, 0x83, 0x51, 0x2f, 0xb9, 0xf0, 0x1b, 0xcf, 0x87, 0xdd, 0x60, 0xd4, 0x4b, 0x6e, 0xd0, 0xdc, 0x9b, 0xff, 0xf0, 0x1b, 0x34, 0xc4, 0xe7, 0x3f, 0xec, 0x06, 0xed, 0xfa, 0xf9, 0x6f, 0xd0, 0x46, 0xa0, 0xff, 0xf0, 0x1b, 0xb4, 0x3b, 0xe8, 0x3f, 0xec, 0x06, 0x8d, 0x2a, 0xfa, 0x2f, 0xfc, 0x06, 0x4d, 0x8c, 0xfa, 0x0f, 0xbf, 0x41, 0x33, 0xa6, 0xfe, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0xb4, 0xb2, 0xea, 0x3f, 0xfc, 0x06, 0x0d, 0xec, 0xfa, 0x0f, 0xbf, 0xc1, 0x60, 0x07, 0x18, 0x76, 0xe3, 0xd0, 0x06, 0xad, 0xfd, 0xfa, 0x0f, 0x82, 0x0d, 0x5a, 0x4e, 0xf7, 0x1f, 0x76, 0x83, 0x51, 0x2f, 0xb9, 0x41, 0x1b, 0xf0, 0xfe, 0x83, 0x6c, 0x0d, 0xda, 0x02, 0x59, 0xd9, 0x10, 0xc3, 0x41, 0xb0, 0x41, 0x5b, 0x56, 0xfd, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xda, 0xd9, 0xea, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x71, 0xc3, 0xc4, 0x6d, 0xd0, 0xce, 0xbf, 0xff, 0x86, 0x89, 0x5b, 0x43, 0x31, 0x5d, 0x0d, 0x33, 0xb4, 0x86, 0x89, 0xdb, 0x30, 0x9d, 0x1b, 0x66, 0x68, 0x0d, 0x33, 0xb4, 0x86, 0x89, 0xdb, 0xa0, 0xd5, 0x83, 0xff, 0x83, 0x78, 0x8f, 0x52, 0xd8, 0x70, 0x22, 0x6c, 0x10, 0x8f, 0xff, 0x14, 0x1b, 0x2c, 0x66, 0x83, 0x3a, 0x88, 0xed, 0xad, 0x88, 0x0d, 0x27, 0xc2, 0x06, 0x11, 0xf6, 0x4f, 0x71, 0xd0, 0xf0, 0xcb, 0xff, 0x86, 0x13, 0x61, 0x83, 0xf8, 0xf6, 0xa7, 0x38, 0x68, 0x90, 0xe6, 0xff, 0xa0, 0xa1, 0xe0, 0xce, 0x83, 0x56, 0xfe, 0x29, 0x0e, 0x5a, 0xf9, 0xa7, 0x38, 0x08, 0x01, 0xf0, 0xe3, 0xd0, 0x71, 0xe8, 0xa0, 0x0d, 0x78, 0xff, 0x61, 0x17, 0x76, 0x83, 0xa2, 0x4a, 0x61, 0x43, 0x0c, 0x87, 0xdd, 0xa0, 0x79, 0xa8, 0xff, 0x05, 0xd9, 0x1a, 0xf2, 0xd8, 0x8b, 0x83, 0x60, 0x83, 0x66, 0xb0, 0xfe, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x34, 0xd1, 0xf5, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xe2, 0x86, 0x89, 0xdb, 0xa0, 0x29, 0xb1, 0xff, 0x0d, 0x16, 0x34, 0x4c, 0xad, 0xa1, 0x98, 0xae, 0x86, 0x19, 0xda, 0x20, 0xbe, 0xfd, 0x29, 0x36, 0x9c, 0x08, 0x1b, 0xc4, 0xb7, 0x3f, 0xc5, 0x41, 0xa3, 0x6a, 0xff, 0x07, 0xcd, 0xe1, 0x72, 0x1e, 0x34, 0xb2, 0xfc, 0xbf, 0x1a, 0x8a, 0xe9, 0x1a, 0xc4, 0x23, 0x42, 0xc5, 0x41, 0xc3, 0xc8, 0x9c, 0x07, 0x6d, 0x43, 0xff, 0x1f, 0x4e, 0xb1, 0x0e, 0xda, 0xa0, 0xfe, 0x3f, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0x87, 0x53, 0xec, 0xa0, 0x81, 0xec, 0xff, 0x0d, 0xda, 0x72, 0xff, 0x1f, 0x04, 0x1b, 0xb4, 0xc8, 0xff, 0x3f, 0xec, 0x06, 0xa3, 0x5e, 0x72, 0x83, 0xb7, 0x08, 0x00, 0x0c, 0xb2, 0x35, 0x68, 0x0b, 0x64, 0x65, 0x43, 0x0c, 0x07, 0xc1, 0x06, 0xcd, 0x60, 0xfd, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0xa2, 0xeb, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0xc5, 0x0d, 0x13, 0xb7, 0xc1, 0x1b, 0x14, 0x00, 0x36, 0x4c, 0xdc, 0x1a, 0xea, 0xc8, 0x06, 0xf1, 0x88, 0x50, 0x71, 0xd0, 0x0e, 0xdb, 0xff, 0x86, 0x89, 0xdb, 0xa0, 0x95, 0x7f, 0x8a, 0x83, 0xe8, 0xf3, 0xa7, 0x38, 0x08, 0x01, 0xf0, 0xe3, 0xd0, 0x71, 0xe8, 0xe0, 0x2d, 0x02, 0x00, 0x83, 0x6c, 0x0d, 0xda, 0x02, 0x59, 0xd9, 0x10, 0xc3, 0x41, 0xb0, 0x41, 0x33, 0x58, 0xff, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x9a, 0xe8, 0xfa, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x71, 0xc3, 0xc4, 0x6d, 0xf0, 0xc2, 0x0a, 0x80, 0x0d, 0x13, 0xb7, 0xc1, 0x7b, 0x2e, 0x00, 0x36, 0x4c, 0xdc, 0x1a, 0xe6, 0x7e, 0x83, 0xc6, 0x44, 0x49, 0x37, 0xd4, 0x91, 0x35, 0xcc, 0xd0, 0x1a, 0x26, 0x6e, 0x83, 0x67, 0x76, 0x00, 0x6c, 0x98, 0xb8, 0x0d, 0x5e, 0x12, 0x02, 0xb0, 0x61, 0xe2, 0xd6, 0x30, 0xf7, 0x1b, 0x2c, 0xa2, 0xaf, 0xdb, 0x50, 0x47, 0xd6, 0x30, 0x43, 0x6b, 0x98, 0xb8, 0x0d, 0xd3, 0xb9, 0x61, 0x86, 0xd6, 0x30, 0x71, 0x6b, 0x98, 0xb8, 0x35, 0xcc, 0xfd, 0x06, 0xc1, 0xb2, 0xb4, 0xa1, 0x98, 0xae, 0x41, 0xcc, 0xfc, 0x53, 0x1c, 0xb4, 0x9a, 0xca, 0x79, 0x10, 0x8f, 0x08, 0x15, 0x1b, 0xe6, 0x7e, 0x83, 0x20, 0x5c, 0x3a, 0x88, 0x48, 0x98, 0x82, 0xc3, 0x79, 0x7c, 0xd0, 0x0a, 0x27, 0xc5, 0x86, 0x13, 0x61, 0x83, 0x38, 0xcc, 0xa8, 0x38, 0x68, 0x1f, 0x96, 0xe2, 0xa0, 0x49, 0x59, 0x8a, 0x0d, 0x13, 0xb7, 0x86, 0xb9, 0xdf, 0xa0, 0xf1, 0xfa, 0xd1, 0x0d, 0x75, 0x64, 0x0d, 0x33, 0xb4, 0x86, 0x89, 0xdb, 0x30, 0x9d, 0x1b, 0x66, 0x68, 0x0d, 0x13, 0xb7, 0x86, 0xb9, 0xdf, 0x20, 0x5c, 0x11, 0x36, 0x14, 0xd3, 0x35, 0x88, 0x99, 0x7f, 0x8a, 0x83, 0xd6, 0x38, 0x39, 0x37, 0xd4, 0x91, 0x0d, 0x62, 0x3b, 0xa3, 0xe2, 0xa0, 0x2d, 0x53, 0x8a, 0xc3, 0x79, 0x7c, 0xd0, 0xec, 0x25, 0xc4, 0x86, 0x13, 0x61, 0x83, 0x78, 0xf7, 0xa8, 0x38, 0x68, 0xd5, 0x15, 0xe2, 0xa0, 0x21, 0x58, 0x88, 0x0d, 0x13, 0xb7, 0xc1, 0x7b, 0x2e, 0x00, 0x36, 0x4c, 0xdc, 0x06, 0x0f, 0x75, 0x02, 0xd8, 0x30, 0x71, 0x1b, 0xbc, 0xc5, 0x0a, 0x60, 0xc3, 0x0c, 0x6d, 0x10, 0x33, 0xff, 0x14, 0x1b, 0x4e, 0x84, 0x0d, 0x62, 0xe6, 0x9f, 0xe2, 0xe0, 0x69, 0x59, 0x00, 0x1b, 0x4e, 0x84, 0x0d, 0x62, 0xf4, 0xa2, 0xe2, 0xe0, 0x6d, 0x5b, 0x00, 0x07, 0x2d, 0xd6, 0x9c, 0x1e, 0x3c, 0xec, 0x03, 0xe0, 0x20, 0x04, 0xc0, 0x8f, 0x43, 0xc7, 0xa1, 0x83, 0x78, 0xaa, 0xa7, 0xd8, 0xe0, 0x0d, 0x5f, 0x00, 0x1b, 0x3c, 0xb5, 0x13, 0x60, 0x83, 0xa7, 0xb0, 0x02, 0x2c, 0x08, 0x36, 0xc4, 0x70, 0x71, 0xd8, 0x0d, 0x9e, 0xe3, 0x0b, 0xb0, 0x21, 0xb9, 0x34, 0x08, 0x36, 0x38, 0x07, 0x7f, 0x0f, 0xbb, 0xc1, 0x13, 0x85, 0x01, 0x16, 0x04, 0x1b, 0x3c, 0x07, 0x19, 0x60, 0xd8, 0x0d, 0x46, 0xbd, 0xe4, 0x06, 0x0f, 0x64, 0x06, 0x18, 0x64, 0x6b, 0xd0, 0x16, 0xc8, 0xca, 0x86, 0x18, 0x0e, 0x82, 0x0d, 0x9e, 0xaa, 0x07, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0x19, 0x7d, 0x00, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x2f, 0x6e, 0x98, 0xb8, 0x0d, 0x1e, 0x55, 0x0d, 0xb0, 0x61, 0xe2, 0x36, 0x88, 0x81, 0x88, 0x8a, 0x83, 0x57, 0x5e, 0x03, 0x1c, 0x84, 0x00, 0xf8, 0x71, 0xe8, 0x38, 0x74, 0xf0, 0x40, 0x66, 0x80, 0x83, 0x67, 0x6d, 0x03, 0x1c, 0x8f, 0x17, 0x76, 0x83, 0xe0, 0x63, 0xde, 0x78, 0x3c, 0xec, 0x06, 0xcd, 0xf8, 0xf4, 0x6f, 0xf0, 0x32, 0x71, 0x80, 0x41, 0xb0, 0xc1, 0xc3, 0xec, 0x01, 0x06, 0xc1, 0x06, 0xef, 0x20, 0x08, 0x18, 0x76, 0x83, 0xd0, 0x72, 0x5f, 0x10, 0x6c, 0xf0, 0xfe, 0x87, 0x80, 0x61, 0x37, 0x18, 0xf5, 0x92, 0x1b, 0xbc, 0x6d, 0x22, 0x60, 0x90, 0xad, 0x41, 0x5b, 0x20, 0x2b, 0x1b, 0x62, 0x38, 0x08, 0x36, 0x68, 0xcb, 0xaa, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x3b, 0x5b, 0xfd, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x2f, 0x6e, 0x98, 0xb8, 0x0d, 0x9e, 0xa6, 0x11, 0xb0, 0x61, 0xe2, 0xd6, 0x60, 0x41, 0xc3, 0xd4, 0x1a, 0x8a, 0xe9, 0x1a, 0xc4, 0x23, 0x42, 0xc5, 0x41, 0x83, 0xd7, 0x9c, 0x07, 0xcf, 0x2a, 0x09, 0x58, 0x0d, 0xc5, 0x74, 0x0d, 0xe2, 0x11, 0xa1, 0xe2, 0xa0, 0xa5, 0x6f, 0xce, 0x83, 0x17, 0x7b, 0x04, 0x1c, 0x4e, 0xb1, 0x0d, 0x62, 0x0b, 0xa1, 0x62, 0x35, 0x14, 0xd3, 0x35, 0x88, 0x47, 0x84, 0x8a, 0x83, 0xd6, 0x60, 0x39, 0x0f, 0x9e, 0x87, 0x12, 0x70, 0x10, 0x4b, 0x0a, 0x15, 0x6b, 0x28, 0xa6, 0x6b, 0x10, 0x8f, 0x08, 0x15, 0x07, 0xed, 0x04, 0x73, 0x1e, 0x3c, 0x34, 0x24, 0xe0, 0x70, 0x8a, 0x1d, 0x34, 0xb1, 0x07, 0x72, 0x10, 0x02, 0xe0, 0xc7, 0xa1, 0xe3, 0xd0, 0xc1, 0xdb, 0x26, 0x02, 0x0e, 0x5e, 0xc1, 0x12, 0x70, 0xf0, 0x4e, 0x99, 0x80, 0xe3, 0xf1, 0xc1, 0xab, 0x71, 0x02, 0x0e, 0x1e, 0xe5, 0x13, 0x70, 0xf0, 0x02, 0xac, 0x80, 0x83, 0xf7, 0xcb, 0x0d, 0x6c, 0xf0, 0xea, 0x6b, 0x82, 0x0d, 0x9e, 0x98, 0x4e, 0xb0, 0xc1, 0x63, 0x10, 0x0a, 0x36, 0x78, 0xfc, 0x4c, 0xc1, 0x1a, 0x3c, 0xfe, 0xa7, 0x60, 0x0d, 0x1e, 0x9c, 0x54, 0xb0, 0xc1, 0x2b, 0x11, 0x0b, 0x16, 0x04, 0x1b, 0x62, 0xb8, 0xb8, 0xb8, 0xc1, 0x73, 0x62, 0x0b, 0xd6, 0xe0, 0xad, 0xb8, 0x05, 0x6b, 0xf0, 0x32, 0xde, 0x82, 0x35, 0x78, 0xe4, 0x72, 0xc1, 0x06, 0x8f, 0x96, 0x2e, 0xd8, 0xe0, 0x39, 0x40, 0x06, 0x6b, 0xf0, 0x24, 0x21, 0x83, 0x0d, 0x1e, 0x73, 0x64, 0xb0, 0xc1, 0x63, 0x92, 0x0c, 0x36, 0x78, 0x2c, 0x9b, 0xc1, 0x06, 0x2f, 0x8b, 0x33, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0x0f, 0x59, 0xc4, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x59, 0x65, 0x11, 0x07, 0xad, 0x2e, 0xdd, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xee, 0xcc, 0x22, 0x06, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x62, 0x32, 0x2e, 0x62, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x6d, 0xc0, 0x88, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xee, 0x03, 0x23, 0x0e, 0x9e, 0x95, 0x68, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa8, 0x18, 0x8c, 0x38, 0xa4, 0x0e, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x0f, 0xc2, 0x88, 0x41, 0xb0, 0xc1, 0x0b, 0x1f, 0x0d, 0x16, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xd1, 0xd4, 0x19, 0x31, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0x50, 0x6a, 0xc4, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x5d, 0xaa, 0x11, 0x07, 0xcf, 0xaa, 0x34, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xdc, 0xad, 0x46, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x91, 0xcd, 0x1a, 0x71, 0xd0, 0x52, 0xc1, 0xc0, 0x20, 0x19, 0x08, 0xd7, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x22, 0xbe, 0x35, 0xe2, 0x60, 0xfc, 0x74, 0x1d, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x88, 0xd7, 0x88, 0x41, 0xb0, 0xc1, 0xc8, 0x7f, 0x58, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0x9e, 0x6c, 0xc4, 0x70, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x62, 0x71, 0x36, 0xe2, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x7c, 0xd2, 0x46, 0x1c, 0xa2, 0x79, 0x3c, 0x3e, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x62, 0xb7, 0x36, 0x62, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x5c, 0xdb, 0x46, 0x0c, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xd2, 0x6f, 0x23, 0x86, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xfb, 0xb8, 0x11, 0x07, 0x23, 0xff, 0x61, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x2d, 0xbb, 0x11, 0x07, 0xc7, 0xc8, 0xe9, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xd1, 0xc4, 0x1b, 0x31, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0x57, 0x6f, 0xc4, 0xc1, 0x0b, 0x64, 0x0d, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x79, 0xbe, 0x11, 0x07, 0x21, 0x00, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x5c, 0xfe, 0x46, 0x1c, 0x7a, 0x08, 0x1d, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x71, 0x0b, 0x1c, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x92, 0x83, 0x23, 0x0e, 0x8e, 0x91, 0xd3, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x48, 0x17, 0x8e, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x62, 0x7f, 0x38, 0xe2, 0xe0, 0x05, 0xb2, 0x06, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x8a, 0xe2, 0x88, 0x83, 0x10, 0x00, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x66, 0x8c, 0x23, 0x0e, 0x3d, 0x84, 0x8e, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb8, 0x3a, 0x8e, 0x18, 0x04, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x28, 0x43, 0x8e, 0x18, 0x76, 0x43, 0x1e, 0x6b, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x24, 0x27, 0x47, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x6d, 0xe5, 0x88, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xd1, 0xbe, 0x1c, 0x71, 0x90, 0x32, 0x18, 0x30, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x86, 0xe6, 0x88, 0x83, 0xe5, 0xb8, 0x42, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x88, 0x71, 0x8e, 0x38, 0x34, 0xfc, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0xd4, 0x73, 0xc4, 0xf0, 0x0b, 0xa2, 0x05, 0xe6, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xb5, 0xd0, 0x11, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xe2, 0x38, 0x3a, 0xe2, 0x60, 0x09, 0xee, 0xd1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x38, 0x97, 0x8e, 0xd8, 0x60, 0x75, 0x23, 0xd5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x0e, 0xa8, 0x23, 0x0e, 0xc6, 0x4f, 0xd7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x4e, 0xaa, 0x23, 0x0e, 0x96, 0xe3, 0x0a, 0x1d, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x71, 0x64, 0x1d, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x8e, 0xaf, 0x23, 0x0e, 0x86, 0x66, 0xd7, 0xf1, 0xf8, 0xf8, 0x76, 0x3c, 0x3e, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xe2, 0x1c, 0x3b, 0x62, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x01, 0xed, 0x88, 0x83, 0x13, 0x26, 0xfa, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x62, 0x64, 0x3b, 0xe2, 0x20, 0xa4, 0xc0, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x1f, 0xee, 0x88, 0x41, 0xb0, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xa6, 0xee, 0x88, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x2c, 0x8b, 0x47, 0x0c, 0xbb, 0x61, 0xd7, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xbc, 0x90, 0x47, 0x1c, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xa1, 0xf2, 0x88, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xaa, 0xcc, 0x23, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0x20, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0xf5, 0x79, 0xc4, 0x41, 0x50, 0x7a, 0x1f, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x51, 0x8f, 0x1e, 0x31, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0x84, 0x7a, 0xc4, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x6d, 0xeb, 0x11, 0x07, 0x6d, 0xd8, 0x0a, 0x0c, 0x92, 0x81, 0xa1, 0x1a, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x14, 0xb2, 0x47, 0x1c, 0x87, 0x8e, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xcb, 0xf6, 0x88, 0x83, 0x41, 0xb4, 0x32, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xcc, 0xba, 0x47, 0x0c, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x8a, 0xdf, 0x23, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb8, 0x86, 0x8f, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xa2, 0x46, 0x3e, 0xe2, 0xa0, 0x0d, 0x5b, 0x81, 0x41, 0x32, 0x90, 0xf5, 0x1b, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x34, 0xcd, 0x47, 0x1c, 0x87, 0x8e, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xe2, 0x8b, 0x3e, 0xe2, 0x60, 0x10, 0xad, 0x1c, 0x87, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0x60, 0x7d, 0xc4, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa8, 0xb4, 0x8f, 0x38, 0x58, 0xb8, 0x78, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xda, 0xfb, 0x88, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x8e, 0xf1, 0x23, 0x0e, 0x5e, 0x20, 0x6b, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x08, 0xcf, 0x8f, 0x38, 0x78, 0xdd, 0xc5, 0xc1, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x11, 0xb0, 0x1f, 0x31, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0x04, 0x7f, 0xc4, 0xc1, 0x03, 0x39, 0x0e, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0x4c, 0x7f, 0xc4, 0xc1, 0x20, 0x5a, 0x39, 0x0e, 0x1d, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x91, 0xe5, 0x1f, 0x71, 0x30, 0xf8, 0x63, 0x8e, 0x43, 0xc7, 0xb7, 0xe3, 0xd0, 0xf1, 0x78, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa8, 0xfb, 0x8f, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xe2, 0x10, 0x40, 0xe2, 0xe0, 0x01, 0x31, 0x06, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xd2, 0x00, 0x89, 0x83, 0xf6, 0xe7, 0x97, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x62, 0x01, 0x89, 0x83, 0xd7, 0xb2, 0x1c, 0x1c, 0x87, 0x8e, 0x43, 0x1b, 0x3c, 0xc3, 0xe5, 0x60, 0x0d, 0x1e, 0x17, 0x73, 0xb0, 0xc1, 0x73, 0x76, 0x0e, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x31, 0x54, 0x20, 0x31, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0x97, 0x81, 0xc4, 0x41, 0xcb, 0x0c, 0xf8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xbe, 0x03, 0x89, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xf1, 0x88, 0x20, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xde, 0x04, 0x89, 0x43, 0x0c, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0xfd, 0x82, 0xc4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x46, 0x1a, 0x24, 0x0e, 0x31, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x59, 0x0f, 0x12, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x38, 0x84, 0x90, 0x38, 0x18, 0xf9, 0x0f, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe8, 0x95, 0x90, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0xfa, 0x84, 0xc4, 0xc1, 0x9a, 0x96, 0xa3, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x22, 0xc4, 0x42, 0x62, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x3b, 0x17, 0x12, 0x83, 0x6c, 0x43, 0x5c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x11, 0x86, 0x21, 0x31, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0x5c, 0x86, 0xc4, 0xc1, 0xb3, 0xe3, 0x0e, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0xa4, 0x86, 0xc4, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0x7c, 0x87, 0xc4, 0xc1, 0x9b, 0xef, 0x0e, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0x34, 0x87, 0xc4, 0xc1, 0x7b, 0xf5, 0x0e, 0x06, 0xc1, 0x06, 0x41, 0x16, 0xbf, 0x38, 0x08, 0x16, 0x7e, 0x43, 0xb6, 0x62, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xb5, 0x1b, 0x12, 0x07, 0x4d, 0x5c, 0xeb, 0x1f, 0xac, 0xc4, 0x17, 0x39, 0x1e, 0x1f, 0x87, 0x8e, 0xc7, 0xc7, 0xa1, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x51, 0xf9, 0x21, 0x31, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x88, 0x05, 0x91, 0x38, 0xa4, 0x6a, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0xba, 0x88, 0xc4, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x07, 0x24, 0x12, 0x07, 0xad, 0x2e, 0xdd, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x4a, 0x4a, 0x24, 0x06, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xa2, 0xc6, 0x46, 0x62, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xb3, 0x3b, 0x12, 0xc3, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xed, 0x1e, 0x89, 0x41, 0xb0, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x74, 0x1f, 0x89, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x2c, 0x2c, 0x49, 0x0c, 0xbb, 0x41, 0xf0, 0x31, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x2e, 0x26, 0x89, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xf1, 0xd6, 0x24, 0x71, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x0e, 0x9d, 0x24, 0x0e, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0xe7, 0x93, 0xc4, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xf9, 0x50, 0x12, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x10, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xe2, 0x4c, 0x4a, 0xe2, 0x90, 0xaf, 0x3d, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xe2, 0x6f, 0x4a, 0x62, 0xf8, 0x05, 0xd1, 0x02, 0x31, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0x38, 0x95, 0xc4, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x01, 0x56, 0x12, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x94, 0x5d, 0x49, 0x1c, 0xb4, 0x54, 0x30, 0x30, 0x48, 0x06, 0xb3, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0x1f, 0x96, 0xc4, 0x41, 0x0a, 0xa4, 0xf9, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x74, 0x66, 0x49, 0x0c, 0x82, 0x0d, 0x16, 0x5a, 0x5b, 0x2d, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x22, 0x09, 0x4c, 0x62, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x6f, 0x62, 0x12, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xc5, 0x31, 0x89, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x3a, 0xc9, 0x24, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd8, 0x2f, 0x93, 0x38, 0x68, 0x0a, 0x69, 0x60, 0x90, 0x0c, 0x64, 0xfd, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x13, 0x67, 0x12, 0x87, 0x7c, 0xed, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xdc, 0xa0, 0x49, 0x1c, 0xa2, 0x79, 0x1c, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x67, 0x6a, 0x12, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x22, 0x6f, 0x4d, 0xe2, 0x60, 0xe1, 0xe2, 0xd1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x32, 0xd9, 0x24, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x58, 0x6d, 0x93, 0x38, 0x68, 0x39, 0x07, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x51, 0xec, 0x26, 0x71, 0xf0, 0xba, 0x8b, 0x83, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xa2, 0xfc, 0x4d, 0x62, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x7b, 0x38, 0x89, 0x83, 0x85, 0xaa, 0x25, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xa2, 0x42, 0x4e, 0xe2, 0x10, 0xcd, 0xe3, 0xd0, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x53, 0x69, 0x12, 0x87, 0x71, 0x39, 0x1e, 0x1f, 0x87, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa8, 0x99, 0x93, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x23, 0x7a, 0x12, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xfc, 0xec, 0x49, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xb1, 0xc9, 0x27, 0x71, 0xd0, 0x52, 0xc1, 0xc0, 0x20, 0x19, 0x18, 0xaa, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0x6c, 0x9f, 0xc4, 0x41, 0x48, 0x81, 0x1f, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xd7, 0x7e, 0x12, 0x07, 0x29, 0x83, 0x01, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0xfc, 0x9f, 0xc4, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x78, 0x08, 0x94, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xa2, 0x45, 0x50, 0x62, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xc4, 0x41, 0x89, 0x83, 0x96, 0x0a, 0x06, 0x06, 0xc9, 0x40, 0xf1, 0x1b, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x84, 0x12, 0x4a, 0x1c, 0x8c, 0x09, 0xab, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x08, 0x2e, 0x94, 0x18, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x4c, 0x1b, 0x4a, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x51, 0x7e, 0x28, 0x31, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0x50, 0xa2, 0xc4, 0x41, 0x4b, 0x05, 0x03, 0x83, 0x64, 0x20, 0xeb, 0x37, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd8, 0x52, 0x94, 0x38, 0x18, 0x13, 0x56, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xf1, 0xb7, 0x28, 0xb1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb8, 0x66, 0x94, 0x38, 0x58, 0xc9, 0x96, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xfb, 0x46, 0x89, 0x83, 0x94, 0xc1, 0x80, 0x43, 0x0c, 0x8f, 0x43, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x62, 0xe4, 0x51, 0x62, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xb1, 0x07, 0x29, 0x71, 0xb0, 0x92, 0x2d, 0x6b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x9b, 0x91, 0x12, 0x07, 0x29, 0x83, 0x01, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xe2, 0x57, 0x52, 0xe2, 0x10, 0xc3, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xa6, 0x27, 0x25, 0x86, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xef, 0x94, 0x12, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x04, 0x58, 0x4a, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xf1, 0x75, 0x29, 0x71, 0xd0, 0x52, 0xc1, 0xc0, 0x20, 0x19, 0xc8, 0xfa, 0x0d, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xee, 0x30, 0x25, 0x0e, 0x42, 0x0a, 0xfc, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x36, 0x33, 0x25, 0x0e, 0x52, 0x06, 0x03, 0x8e, 0x43, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x62, 0x7b, 0x53, 0x62, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xb4, 0x73, 0x4a, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xff, 0x4e, 0x89, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xb1, 0xf1, 0x29, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x5a, 0x40, 0x25, 0x0e, 0x16, 0x2e, 0x1e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xa2, 0x29, 0x54, 0x62, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x2f, 0x51, 0x89, 0x83, 0x85, 0xaf, 0x5e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xbc, 0x51, 0x89, 0x83, 0x77, 0x69, 0x20, 0x0c, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x99, 0xa4, 0x12, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xac, 0x96, 0x4a, 0x1c, 0xbc, 0x70, 0x49, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x24, 0x9b, 0x4a, 0x1c, 0xa4, 0x0c, 0x06, 0x1c, 0x87, 0x8e, 0x43, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x22, 0xff, 0x54, 0xe2, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x44, 0xa4, 0x4a, 0x1c, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x5f, 0x4d, 0x89, 0x83, 0x14, 0x48, 0xf3, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xae, 0xe8, 0x24, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x48, 0xab, 0x93, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xe2, 0xd8, 0x4e, 0xe2, 0xa0, 0xa5, 0x82, 0x81, 0x41, 0x32, 0x50, 0xae, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xdf, 0x77, 0x12, 0x07, 0x21, 0x00, 0x7e, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x03, 0x79, 0x12, 0x07, 0x29, 0x90, 0xe6, 0xc7, 0xa1, 0xe3, 0xdb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x8a, 0x79, 0x24, 0x8e, 0x43, 0xc7, 0xe3, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x22, 0x45, 0x55, 0x62, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x22, 0xb1, 0x55, 0x62, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xb1, 0x60, 0x2c, 0x71, 0xf0, 0xf4, 0x1e, 0x84, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xd1, 0x4e, 0x2c, 0x71, 0xf0, 0x54, 0x05, 0x83, 0x41, 0xb0, 0x41, 0x90, 0xc5, 0x2f, 0x0e, 0x82, 0x85, 0xdf, 0x90, 0xad, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0xaa, 0xab, 0xc4, 0xc1, 0x20, 0x31, 0x3f, 0x58, 0x89, 0x2f, 0x72, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0xc9, 0xaf, 0x12, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x7d, 0xb6, 0x12, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x99, 0xc1, 0x12, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xac, 0x0a, 0x4b, 0x1c, 0x34, 0x76, 0x8c, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x92, 0x87, 0x25, 0x0e, 0x31, 0x3c, 0x0e, 0x0d, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x5e, 0x5c, 0x89, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0x9e, 0x73, 0x25, 0x0e, 0x1e, 0x59, 0x85, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x68, 0xd7, 0x95, 0x38, 0xc4, 0x70, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x28, 0xe9, 0x95, 0x18, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xe2, 0xc6, 0x57, 0xe2, 0xe0, 0x91, 0x55, 0x08, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xaa, 0x5f, 0x89, 0x43, 0x0c, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0x38, 0x60, 0x89, 0x83, 0xb7, 0x88, 0x21, 0x1c, 0x87, 0x8e, 0x43, 0x83, 0x60, 0x83, 0x20, 0x8b, 0x5f, 0x1c, 0x04, 0x0b, 0xbf, 0x21, 0x5b, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x88, 0xcf, 0x5b, 0x89, 0x83, 0xc6, 0xc5, 0xee, 0x0f, 0x56, 0xe2, 0x8b, 0x1c, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x44, 0x82, 0xac, 0xc4, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0x10, 0x1b, 0xb3, 0x12, 0x07, 0x0f, 0x88, 0x31, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0xe4, 0xd0, 0x4a, 0x1c, 0xb4, 0x3f, 0xbf, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x64, 0xd5, 0x4a, 0x1c, 0xac, 0xee, 0x85, 0x39, 0x0e, 0x0d, 0x82, 0x0d, 0x82, 0x2c, 0x7e, 0x71, 0x10, 0x2c, 0xfc, 0x86, 0x6c, 0xc5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0x20, 0xd6, 0x61, 0x25, 0x0e, 0x1a, 0x1b, 0xc7, 0x3f, 0x58, 0x89, 0x2f, 0x72, 0x3c, 0x3e, 0x88, 0xa0, 0x08, 0x8b, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x91, 0xc6, 0x2a, 0x71, 0xf0, 0xf4, 0x1e, 0x84, 0x41, 0xb0, 0x41, 0x90, 0xc5, 0x2f, 0x0e, 0x82, 0x85, 0xdf, 0x90, 0xad, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xc4, 0xd2, 0xaa, 0xc4, 0x41, 0x63, 0xe3, 0xf8, 0x07, 0x2b, 0xf1, 0x45, 0x8e, 0xc7, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x41, 0x44, 0x87, 0x48, 0x1c, 0x2c, 0x95, 0xd3, 0x39, 0x78, 0xdb, 0x1f, 0xc2, 0xc1, 0xa3, 0x04, 0x11, 0x0e, 0x5e, 0x1a, 0x8a, 0x70, 0xf0, 0x88, 0x94, 0x84, 0xe3, 0xf1, 0xf1, 0xf8, 0xe0, 0x01, 0x51, 0x0d, 0x07, 0x2f, 0x17, 0x6b, 0x38, 0x78, 0xf5, 0x5b, 0xc3, 0xf1, 0xf8, 0xe0, 0x95, 0xdd, 0x0d, 0x07, 0x8f, 0x68, 0x71, 0x38, 0x88, 0xa8, 0x1f, 0x85, 0x0e, 0xde, 0x50, 0x3e, 0xbf, 0xe1, 0x44, 0xd8, 0xe0, 0x75, 0xd5, 0x72, 0x1b, 0x2c, 0x66, 0x83, 0x3a, 0x78, 0xb2, 0xe2, 0xdd, 0x86, 0x13, 0x61, 0x83, 0xc7, 0x51, 0xcb, 0x6d, 0xb0, 0x98, 0x0d, 0x6a, 0x99, 0x65, 0xc3, 0x27, 0x36, 0x6b, 0x78, 0x9e, 0x64, 0x0d, 0x16, 0x2a, 0x53, 0x1d, 0xbc, 0x14, 0x5c, 0x6f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x49, 0xaa, 0x68, 0x83, 0x52, 0x42, 0x7c, 0x83, 0x15, 0x64, 0xfa, 0x07, 0x2f, 0xef, 0xce, 0x3b, 0x58, 0x49, 0xa7, 0x7f, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0x41, 0x74, 0xd5, 0x58, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x08, 0x0f, 0xe6, 0x18, 0xfc, 0x98, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xed, 0x0f, 0xe6, 0x82, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x1b, 0x86, 0x30, 0x07, 0xc9, 0x40, 0xe8, 0x0e, 0x4e, 0x42, 0xc7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x7a, 0x11, 0xe6, 0x41, 0x29, 0x22, 0x39, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x8b, 0x91, 0x30, 0x0f, 0x9d, 0xd4, 0x8e, 0x43, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xcb, 0x84, 0x39, 0xc1, 0xfb, 0xbf, 0x0b, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x8a, 0xc2, 0x3c, 0x88, 0x8a, 0x1d, 0x8b, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x86, 0x0a, 0xf3, 0xa0, 0x60, 0x78, 0x1c, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x15, 0x57, 0x98, 0x13, 0xac, 0xff, 0x1e, 0x87, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x60, 0x0b, 0xf3, 0xd0, 0x48, 0xf0, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xd3, 0xbc, 0x30, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0x86, 0x61, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x24, 0xc3, 0x1c, 0x24, 0x03, 0xe9, 0xaf, 0x83, 0x63, 0x56, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x9d, 0x61, 0x2e, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xa3, 0x86, 0x39, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xa0, 0x0d, 0x73, 0x90, 0x0c, 0xea, 0x0e, 0xa9, 0x83, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x87, 0xc3, 0x3c, 0xc4, 0xff, 0x38, 0x74, 0x3c, 0x3e, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x3c, 0x87, 0x39, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0xda, 0x61, 0x1e, 0x2c, 0xf2, 0x08, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x54, 0x3e, 0xcc, 0x41, 0xb6, 0x86, 0x3c, 0xf6, 0xe2, 0x20, 0xd8, 0xe0, 0xc1, 0xec, 0x33, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x1e, 0xf3, 0x3e, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xe2, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x39, 0x78, 0x88, 0x20, 0xe6, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0xfc, 0xc3, 0x1c, 0x0f, 0x1e, 0x22, 0x88, 0x79, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x27, 0xc4, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x7a, 0x88, 0x39, 0x48, 0x06, 0x9a, 0xff, 0x1c, 0x1c, 0xb3, 0x8a, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x42, 0x45, 0xcc, 0x0d, 0xb9, 0xef, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x8b, 0x1a, 0x31, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x37, 0x58, 0xa3, 0xad, 0xb0, 0x41, 0x29, 0x22, 0xb9, 0xc1, 0x68, 0xf0, 0xdd, 0x60, 0xe0, 0x1b, 0x6f, 0xb0, 0xfe, 0xf1, 0x65, 0x83, 0x35, 0x69, 0x09, 0x1b, 0x24, 0xa4, 0xdc, 0x6f, 0x90, 0x50, 0x76, 0xb2, 0xc1, 0x39, 0x72, 0x77, 0x83, 0x55, 0xdd, 0x0b, 0x1b, 0xac, 0x7f, 0x7c, 0xd9, 0x60, 0x8d, 0xb6, 0xc2, 0x06, 0x09, 0x65, 0x27, 0x1b, 0x24, 0x78, 0x3c, 0x6f, 0x70, 0x8e, 0xdc, 0xdd, 0x60, 0x1d, 0x33, 0xd8, 0x06, 0xeb, 0x1f, 0x5f, 0x36, 0x48, 0x28, 0x3b, 0xd9, 0x60, 0xdc, 0xee, 0x6e, 0x70, 0x8e, 0xdc, 0xdd, 0x60, 0x34, 0xf8, 0x6e, 0xb0, 0x8e, 0x19, 0x6c, 0x83, 0x84, 0xb2, 0x93, 0x41, 0xb0, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xc6, 0x12, 0x73, 0x10, 0x6c, 0xd0, 0xe8, 0xd7, 0xc0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x06, 0xc9, 0x06, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x5f, 0x3c, 0x78, 0x86, 0x11, 0xcd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x21, 0x99, 0x98, 0x87, 0x16, 0x40, 0xc7, 0xa1, 0xe3, 0xd0, 0x21, 0x86, 0x07, 0xab, 0x19, 0x80, 0x8e, 0x6f, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x84, 0x13, 0xf3, 0x20, 0x04, 0xc0, 0x8f, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0x7c, 0x62, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x72, 0x28, 0xe6, 0xa1, 0x05, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa5, 0xa4, 0x98, 0x07, 0x21, 0x00, 0x7e, 0x3c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x1e, 0x15, 0x73, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xeb, 0x2a, 0xe6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf9, 0xae, 0x98, 0xc3, 0x6f, 0xd0, 0x66, 0x9c, 0xff, 0xf1, 0x6d, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xe6, 0x58, 0xcc, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xc3, 0x6e, 0x31, 0x0f, 0xa9, 0x83, 0xe3, 0xf1, 0xf1, 0xf8, 0x78, 0x7c, 0x3c, 0x1e, 0x04, 0x8b, 0x1b, 0x3c, 0x5c, 0x1f, 0xb3, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x59, 0xc1, 0x98, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0xf8, 0x62, 0x0e, 0xbb, 0x70, 0x8b, 0x07, 0xaf, 0x41, 0x55, 0x39, 0x44, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x2b, 0x88, 0x31, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xda, 0x18, 0x73, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x38, 0x6e, 0xb3, 0xd8, 0x20, 0x8e, 0xdb, 0x2c, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0x20, 0xbe, 0xdc, 0x2c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x6e, 0xc6, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x4f, 0x19, 0xf3, 0xe0, 0x6d, 0x22, 0x46, 0xc3, 0x2e, 0xdc, 0xe2, 0xc1, 0xab, 0xd2, 0x14, 0x0f, 0xd1, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x5a, 0x68, 0xcc, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x9b, 0xc6, 0x1c, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x20, 0x06, 0xe6, 0x2c, 0x36, 0x88, 0x81, 0x39, 0x8b, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x88, 0xcd, 0x39, 0x8b, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0xd3, 0xc6, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xe4, 0x1a, 0x73, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x19, 0x48, 0xde, 0x1d, 0x56, 0x68, 0x0f, 0x4d, 0x81, 0x06, 0xd9, 0x06, 0xb1, 0x39, 0x67, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x29, 0x38, 0xe6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x51, 0xdd, 0x98, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc9, 0x80, 0x72, 0xff, 0xee, 0x78, 0x7e, 0x68, 0x01, 0x36, 0xec, 0xc2, 0x6d, 0xf0, 0xe8, 0x03, 0xb9, 0x43, 0x34, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x71, 0x1c, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xa3, 0xcc, 0x31, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x78, 0xf4, 0x81, 0xdc, 0x06, 0x8f, 0x3e, 0x90, 0x3b, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x38, 0xe3, 0xb3, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x40, 0x76, 0xcc, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x63, 0xd2, 0x31, 0x0f, 0xa2, 0xf9, 0xce, 0x62, 0x90, 0x6d, 0x10, 0x67, 0x7c, 0x16, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0xca, 0x63, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xf6, 0x8e, 0x39, 0x08, 0x36, 0x78, 0x0e, 0xc4, 0xd5, 0xa1, 0x05, 0xd8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x9d, 0xf5, 0x98, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x85, 0x8f, 0x39, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0x78, 0xf0, 0x70, 0x7d, 0xcc, 0x0d, 0xe2, 0x9f, 0xd0, 0xe2, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0xa2, 0x6b, 0xd0, 0x62, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xc6, 0x7f, 0xcc, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x9b, 0xf8, 0x31, 0x0f, 0x9e, 0x89, 0x2f, 0x74, 0x68, 0xfe, 0x72, 0x3c, 0x3e, 0x1e, 0xaf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf9, 0x15, 0xbc, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x62, 0xf0, 0x2e, 0x2e, 0x08, 0x16, 0x37, 0x78, 0x98, 0x58, 0xd0, 0xe1, 0x14, 0x5b, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xdd, 0xc1, 0x3b, 0xec, 0xc2, 0x2d, 0x1e, 0xbc, 0xb3, 0x84, 0xf7, 0x10, 0xcd, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x03, 0xe1, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x96, 0x11, 0xde, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x62, 0x6f, 0xd1, 0x62, 0x83, 0xd8, 0x5b, 0xb4, 0x38, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x98, 0x60, 0xb4, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x44, 0x85, 0x77, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x70, 0x13, 0xde, 0x41, 0xb0, 0xc1, 0xd3, 0xd1, 0xb9, 0x0e, 0x1d, 0x34, 0x86, 0xdd, 0xe0, 0x39, 0x12, 0x41, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xd0, 0xc2, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb5, 0x2f, 0xbc, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x3c, 0x4d, 0x22, 0x68, 0x83, 0xa7, 0x49, 0x04, 0x1d, 0x4e, 0xb1, 0x41, 0xb6, 0x41, 0x54, 0x45, 0x5a, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xca, 0x0d, 0xef, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x45, 0x33, 0xbc, 0x83, 0x60, 0x83, 0xa7, 0xa3, 0x73, 0x1d, 0x9a, 0x02, 0x0d, 0xb2, 0x0d, 0xa2, 0x2a, 0xd2, 0x62, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x83, 0x7a, 0x78, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xd0, 0xe1, 0x3d, 0x78, 0x6d, 0x83, 0xd4, 0x20, 0xdb, 0x20, 0xaa, 0x22, 0x2d, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x80, 0x88, 0x77, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x0a, 0x20, 0xde, 0x83, 0xb7, 0xa2, 0x73, 0x0d, 0xb2, 0x0d, 0xa2, 0x2a, 0xd2, 0x62, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x08, 0x25, 0xde, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xbb, 0x8d, 0x78, 0x07, 0xc1, 0x06, 0x0f, 0xdb, 0xeb, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xf0, 0x43, 0x0e, 0x4a, 0xec, 0xc1, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xcd, 0x4c, 0xbc, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xf7, 0xc4, 0x7b, 0xf0, 0xc6, 0xc5, 0xb3, 0x41, 0xb6, 0x41, 0x34, 0x76, 0x5a, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x61, 0x15, 0xef, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x49, 0x52, 0xbc, 0x83, 0x60, 0x83, 0x87, 0xed, 0xf5, 0x1c, 0xac, 0x01, 0x65, 0x1a, 0x64, 0x1b, 0x44, 0x63, 0xa7, 0xc5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x61, 0x5b, 0xbc, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0x60, 0xf1, 0x0e, 0x82, 0x0d, 0x1e, 0xb6, 0xd7, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x63, 0xe0, 0xd5, 0xe1, 0x25, 0x87, 0x8e, 0x61, 0xc7, 0xa1, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x0a, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x81, 0xc6, 0x3b, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x9e, 0x38, 0xde, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x6b, 0xee, 0x78, 0x07, 0xd9, 0x1a, 0xf2, 0xd8, 0x8b, 0x83, 0x60, 0x83, 0x97, 0x14, 0xe4, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0xa0, 0x30, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0xc5, 0x0d, 0x75, 0x7c, 0xc3, 0xcb, 0x77, 0x73, 0xf0, 0x3e, 0x3e, 0xde, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x9f, 0xc7, 0x3b, 0x1e, 0xbc, 0x8f, 0x8f, 0xf7, 0x38, 0x74, 0x1c, 0x3a, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xf0, 0xc7, 0x3b, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x4b, 0x90, 0x77, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x43, 0x21, 0xef, 0x41, 0x49, 0x17, 0x35, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0x1f, 0xf2, 0x1e, 0x14, 0x76, 0x38, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x52, 0x91, 0xf7, 0x90, 0x3a, 0x38, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xdd, 0xc8, 0x3b, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x23, 0x92, 0x77, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xf3, 0x24, 0xef, 0x41, 0x32, 0x65, 0xf5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x68, 0xc9, 0x7b, 0x50, 0xd8, 0xe1, 0x0c, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xa8, 0x4c, 0xde, 0x43, 0xaa, 0xe6, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x09, 0x27, 0xef, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb8, 0x4f, 0xde, 0xe1, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x44, 0x94, 0xf7, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xbb, 0x49, 0x79, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x9e, 0xf2, 0x1e, 0xac, 0xd4, 0xf4, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xab, 0x54, 0x79, 0x0f, 0x31, 0x5c, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0xb4, 0xf2, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xed, 0x2b, 0xef, 0xa1, 0x95, 0xf8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x6d, 0xb2, 0xbc, 0x87, 0xa3, 0x7d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0xd4, 0xf2, 0x1e, 0x52, 0x07, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xf3, 0x6f, 0x79, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0xed, 0xf2, 0x0e, 0xb7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf5, 0xbd, 0xbc, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x0a, 0xcc, 0x3b, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x6c, 0x98, 0xf7, 0x20, 0x45, 0xe2, 0x63, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x31, 0xe6, 0x3d, 0xc4, 0x70, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x8d, 0xcc, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x85, 0xcb, 0xbc, 0x87, 0xfe, 0xe4, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0x39, 0xf3, 0x1e, 0x8e, 0xf6, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x0f, 0xcd, 0x7b, 0x48, 0xd5, 0x1c, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x9e, 0xe6, 0x1d, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x7a, 0xcd, 0x3b, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x4b, 0x9b, 0x77, 0x90, 0x0c, 0x14, 0xa7, 0x83, 0xb3, 0x97, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xd1, 0xcd, 0x7b, 0x88, 0xe1, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xf9, 0x9b, 0x77, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xfb, 0xc4, 0x79, 0x0f, 0xca, 0xb8, 0x9d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x83, 0xca, 0x79, 0x0f, 0xfd, 0xc9, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x02, 0x3a, 0xef, 0x61, 0xaf, 0xf0, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xb8, 0x3a, 0xef, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xd9, 0xce, 0x3b, 0xdc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0xc1, 0xf3, 0x0e, 0x92, 0x01, 0xeb, 0xfe, 0xab, 0x0e, 0xc6, 0xbb, 0xce, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x41, 0xf5, 0xbc, 0xc7, 0xa1, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xa8, 0xe8, 0x1d, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x91, 0xd1, 0x3b, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x7a, 0xa3, 0xf7, 0xe0, 0x7d, 0x3f, 0x1c, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x09, 0xd2, 0x3b, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x6a, 0xa4, 0xf7, 0x20, 0x79, 0x26, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x30, 0xe9, 0x3d, 0xc4, 0x70, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x8c, 0xd2, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x89, 0x2b, 0xbd, 0x07, 0x43, 0x1e, 0x7d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x2a, 0x97, 0xde, 0x43, 0x2b, 0xf1, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x11, 0xd3, 0x7b, 0x10, 0x98, 0xd8, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x01, 0x34, 0xbd, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x3b, 0x70, 0x7a, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0xeb, 0xf4, 0x1e, 0xbc, 0x1f, 0xa1, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x5b, 0x7b, 0x7a, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0x01, 0xf5, 0x0e, 0x92, 0x81, 0xe2, 0x74, 0x70, 0xce, 0x3b, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x63, 0x86, 0x7a, 0x0f, 0x31, 0x5c, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x17, 0xf5, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x28, 0x52, 0xef, 0xc1, 0xb9, 0xa5, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb8, 0xa5, 0xde, 0x43, 0x2b, 0xf1, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xe3, 0xd4, 0x7b, 0x30, 0xde, 0x74, 0x8e, 0x43, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x3b, 0xa2, 0x7a, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0x54, 0xf5, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xbe, 0xea, 0x1d, 0x24, 0x03, 0xc5, 0xe9, 0xe0, 0x5c, 0x7f, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x6a, 0xf5, 0x1e, 0x62, 0xb8, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xe9, 0xea, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xf6, 0xaf, 0xde, 0x83, 0x63, 0x60, 0xfe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb5, 0x62, 0xbd, 0x07, 0x69, 0x2b, 0x24, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xb1, 0xac, 0xf7, 0x60, 0xf0, 0x4e, 0x1e, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x43, 0xeb, 0x1d, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xc3, 0xd6, 0x3b, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xde, 0xad, 0x77, 0x90, 0x0c, 0x14, 0xa7, 0x83, 0x03, 0x45, 0xf2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x1b, 0xd7, 0x7b, 0x88, 0xe1, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x8b, 0xae, 0x77, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x2b, 0xee, 0x7a, 0x0f, 0x1e, 0x18, 0xf3, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x76, 0x5e, 0xef, 0xe1, 0x68, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x91, 0x7c, 0xbd, 0x07, 0x03, 0x91, 0xfa, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xdb, 0x5f, 0xef, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x9d, 0xb1, 0x77, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x7c, 0xec, 0x1d, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x83, 0x24, 0x7b, 0x0f, 0x47, 0xfb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf1, 0x94, 0xbd, 0xc7, 0xa1, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0xc1, 0xec, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x76, 0xcd, 0xde, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0xed, 0xec, 0x3d, 0x18, 0x88, 0xd4, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0x83, 0xf6, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x20, 0xed, 0x1d, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x6d, 0xda, 0x7b, 0x90, 0x7c, 0x9a, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0xa6, 0xf6, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x61, 0xed, 0x1d, 0x24, 0x03, 0x6d, 0x9d, 0x0e, 0x4e, 0x1b, 0xca, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xbe, 0x6b, 0xef, 0xa1, 0x3f, 0xf9, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x8d, 0xed, 0x3d, 0x18, 0x88, 0xd4, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x49, 0xdb, 0x7b, 0x30, 0x9a, 0xcf, 0x8f, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0xdd, 0xf6, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x83, 0x6e, 0xef, 0x86, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xcc, 0xdb, 0x3b, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xf0, 0xb7, 0x77, 0x90, 0x0c, 0xf4, 0x75, 0x3a, 0x38, 0x66, 0x2c, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x39, 0xc2, 0xbd, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x4e, 0xdc, 0x7b, 0xe8, 0x4f, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xe9, 0x71, 0xef, 0xc1, 0x68, 0x3e, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x71, 0xca, 0xbd, 0x07, 0x85, 0x5b, 0xd2, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xa6, 0xe6, 0xde, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x05, 0xd0, 0xbd, 0x83, 0x64, 0xe0, 0x7d, 0xa7, 0x83, 0x63, 0xc6, 0xf2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x2c, 0xdd, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x7d, 0xd5, 0xbd, 0x87, 0xfe, 0xe4, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0x61, 0xf7, 0x1e, 0x8c, 0xe6, 0xf3, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xb1, 0xdd, 0x7b, 0x50, 0xb8, 0x25, 0x1d, 0x87, 0x86, 0x5f, 0x10, 0x2d, 0x50, 0xfe, 0x0f, 0x42, 0x00, 0xfc, 0x78, 0x3c, 0xfc, 0x06, 0x83, 0x1d, 0x60, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xfe, 0xee, 0xde, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x17, 0xbc, 0x77, 0xb8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x1b, 0xef, 0x3d, 0xa4, 0x6a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x35, 0xef, 0x1d, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x96, 0xde, 0x7b, 0x10, 0xad, 0x0f, 0x17, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x0a, 0x7b, 0xef, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0xbb, 0xf7, 0x1e, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x62, 0x7c, 0xef, 0x41, 0xda, 0x0a, 0xc9, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xa2, 0xef, 0x1d, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x71, 0xdf, 0x3b, 0x48, 0x06, 0x3a, 0xf7, 0x1d, 0x1c, 0x33, 0x96, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x3b, 0xbf, 0xf7, 0xa0, 0x70, 0x4b, 0x3a, 0x0e, 0x1d, 0x87, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x9c, 0xc1, 0x77, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x43, 0x85, 0xef, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xe2, 0x0b, 0xdf, 0x41, 0x32, 0x50, 0x9c, 0x0e, 0x8e, 0x19, 0xcb, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xa1, 0x86, 0xef, 0x21, 0x86, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x98, 0x0e, 0xdf, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xff, 0xf0, 0x3d, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x4a, 0x11, 0xdf, 0x83, 0x32, 0x6e, 0x67, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0x95, 0xf8, 0x1e, 0x14, 0x6e, 0x49, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x7b, 0x50, 0x7c, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0xb1, 0xf8, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x78, 0xf1, 0x1d, 0x24, 0x03, 0xc5, 0xe9, 0x20, 0x2d, 0x68, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x8e, 0xf1, 0x3d, 0xc4, 0x70, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x47, 0xe3, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x35, 0x37, 0xbe, 0x07, 0x65, 0xdc, 0xce, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf9, 0x39, 0xbe, 0x07, 0x65, 0xdc, 0xce, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0xe6, 0xf1, 0x3d, 0x38, 0xcb, 0x1e, 0x1f, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xfd, 0xf1, 0x1d, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x2e, 0xe4, 0x7b, 0x38, 0xda, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x2c, 0xf2, 0x1d, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0x26, 0xf9, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x15, 0x93, 0xef, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x86, 0x27, 0xdf, 0x41, 0x32, 0x50, 0x9c, 0x0e, 0x92, 0x95, 0x56, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xe6, 0x28, 0xdf, 0x43, 0x7f, 0xf2, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x23, 0x95, 0xef, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0x5d, 0xf9, 0x1e, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xd4, 0xf2, 0x3d, 0x18, 0x88, 0xd4, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xbd, 0xcb, 0xf7, 0xe0, 0x9c, 0x99, 0x7c, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x19, 0xcc, 0x77, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xe3, 0x98, 0xef, 0x20, 0x19, 0x94, 0x4c, 0x20, 0xfe, 0xff, 0xff, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x20, 0x33, 0xdf, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x48, 0xf3, 0x3d, 0x18, 0x88, 0xd4, 0xc7, 0xa1, 0xe1, 0x37, 0x78, 0xe9, 0xfe, 0xcd, 0xf0, 0x1b, 0x0c, 0x76, 0x80, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x0b, 0xd8, 0x7c, 0x87, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x60, 0x37, 0xdf, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x75, 0x71, 0xbe, 0x83, 0x64, 0xe0, 0xa8, 0x3a, 0x38, 0xd7, 0x1f, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x0d, 0x76, 0xbe, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x95, 0xe7, 0x7b, 0x50, 0xb8, 0x25, 0x1d, 0x87, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x2a, 0xd4, 0x77, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x55, 0xea, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x0d, 0xa8, 0xbe, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x8b, 0x55, 0x7d, 0x07, 0xc9, 0x40, 0x71, 0x3a, 0x88, 0x8b, 0xa2, 0x8b, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xb0, 0xd5, 0xf7, 0xd0, 0x9f, 0x7c, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x04, 0xeb, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xfd, 0xb2, 0xbe, 0x87, 0xd4, 0xc1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd5, 0xb5, 0xbe, 0x07, 0x03, 0x91, 0x7a, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0xe4, 0xfa, 0x1e, 0x94, 0x8b, 0x3d, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x33, 0x78, 0x7d, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0xfb, 0xfa, 0x0e, 0x92, 0x41, 0xc9, 0x04, 0xe6, 0xff, 0xff, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x18, 0xec, 0x7b, 0x48, 0x1d, 0x0c, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x34, 0x62, 0xdf, 0x83, 0x81, 0x48, 0x7d, 0x1c, 0x1a, 0x7e, 0x83, 0x46, 0xb2, 0x9e, 0x86, 0xdf, 0x60, 0xb0, 0x03, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x75, 0xec, 0x3b, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0x28, 0xfb, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x66, 0xf6, 0x1d, 0x24, 0x03, 0x47, 0xd5, 0xc1, 0x81, 0x22, 0x79, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x7c, 0xf6, 0x3d, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x70, 0x69, 0xdf, 0x83, 0xc2, 0x2d, 0xe9, 0x38, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x55, 0xfb, 0xbe, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x53, 0xfe, 0x7d, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0x07, 0xfc, 0x0e, 0x92, 0x81, 0xe2, 0x74, 0x10, 0x8f, 0x59, 0x17, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x28, 0xc1, 0xef, 0xa1, 0x3f, 0xf9, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xec, 0xe0, 0x77, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x33, 0x14, 0x7e, 0x0f, 0xa9, 0x9a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xdb, 0x19, 0x7e, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x3e, 0xfc, 0x0e, 0x92, 0xc1, 0x9f, 0x09, 0xd4, 0xff, 0xff, 0xff, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x95, 0xc4, 0xef, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x88, 0x8a, 0xdf, 0x41, 0x32, 0xd0, 0xd6, 0xe9, 0x20, 0x1e, 0xb3, 0x2e, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xec, 0x8b, 0xdf, 0x43, 0x7f, 0xf2, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xaa, 0xf1, 0x7b, 0x90, 0x68, 0x62, 0x73, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x85, 0x1d, 0xbf, 0x87, 0x54, 0xcd, 0x71, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0x81, 0xfc, 0x1e, 0x24, 0x9a, 0xd8, 0x1c, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x1a, 0xf9, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xfa, 0x92, 0xdf, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x44, 0xf9, 0x3d, 0xa4, 0x6a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x5a, 0xf9, 0x3d, 0xa4, 0x0e, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xc6, 0xe5, 0xf7, 0x20, 0xd1, 0xc4, 0x66, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xfb, 0x62, 0x7e, 0x0f, 0xca, 0xc5, 0x9e, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xa2, 0xf9, 0x3d, 0x18, 0x6f, 0x3a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x79, 0xf3, 0x7b, 0x10, 0x98, 0xd8, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xaf, 0xf3, 0x7b, 0x30, 0x78, 0x27, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0xf1, 0xf9, 0x3d, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x5c, 0xed, 0x3b, 0xc8, 0xd6, 0xa0, 0x2d, 0x90, 0x95, 0x0d, 0xfd, 0xc9, 0x07, 0xc1, 0x82, 0x64, 0x20, 0xfd, 0x73, 0xd0, 0x9a, 0x83, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x10, 0x9e, 0x83, 0xd6, 0x1c, 0xfc, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x5f, 0xdc, 0x30, 0x71, 0x6b, 0xa8, 0xe3, 0x1b, 0x5e, 0xbe, 0x9b, 0x83, 0xb7, 0x77, 0xfb, 0x6e, 0x98, 0xb8, 0x35, 0xd4, 0x91, 0x35, 0xcc, 0xd0, 0x1a, 0x26, 0x6e, 0x0d, 0x13, 0xb7, 0x86, 0xb9, 0x1f, 0x3c, 0xdc, 0x50, 0x47, 0xd6, 0x30, 0x43, 0x6b, 0x98, 0xb8, 0x0d, 0xd3, 0x79, 0x38, 0x8f, 0x37, 0x9c, 0x08, 0x1b, 0xc4, 0x81, 0xe0, 0xc5, 0x06, 0x8b, 0xd9, 0xa0, 0x96, 0x59, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xe7, 0x49, 0x36, 0x08, 0x12, 0xa2, 0x83, 0x36, 0x69, 0x2a, 0x0e, 0x56, 0xd2, 0xe9, 0x1f, 0x4e, 0xb1, 0xc3, 0x29, 0x76, 0x10, 0x65, 0x83, 0x17, 0x1b, 0x26, 0x6e, 0x0d, 0x13, 0xb7, 0x86, 0xb9, 0x1f, 0x5c, 0xdc, 0x50, 0x47, 0xd6, 0x30, 0x43, 0x1b, 0xc4, 0x81, 0xe0, 0xc5, 0x86, 0x13, 0x61, 0x83, 0x38, 0x10, 0xbc, 0xd8, 0x60, 0x31, 0x1b, 0xd4, 0x32, 0xcb, 0x86, 0x4f, 0x6c, 0xd6, 0xa0, 0x94, 0x10, 0xdf, 0x60, 0x05, 0x99, 0xfe, 0x41, 0x50, 0x9e, 0x1d, 0xac, 0xa4, 0xd3, 0x3f, 0x9c, 0x62, 0x87, 0x53, 0xec, 0x20, 0xbe, 0x0e, 0x2f, 0x36, 0xcc, 0xfd, 0xe0, 0xe3, 0x41, 0x64, 0x17, 0x5e, 0x6c, 0x98, 0xfb, 0xc1, 0xc9, 0x83, 0xd5, 0xa3, 0xfa, 0x07, 0x21, 0xa5, 0xbc, 0xe1, 0x44, 0xd8, 0x20, 0x06, 0x02, 0x2f, 0x36, 0x58, 0xcc, 0x06, 0xb5, 0xcc, 0x72, 0x50, 0x88, 0x04, 0x1f, 0x4e, 0xb1, 0xc3, 0x29, 0x76, 0x50, 0x88, 0x04, 0x6f, 0xa8, 0x23, 0x6b, 0x98, 0xa1, 0x35, 0x4c, 0xdc, 0x1a, 0xe6, 0x7e, 0x83, 0xe7, 0xc1, 0xfd, 0x6e, 0xa8, 0xe3, 0x03, 0x5e, 0x9d, 0xd8, 0xd0, 0x86, 0x19, 0x5a, 0xc3, 0x0c, 0x6d, 0xf0, 0xb2, 0x0d, 0x8c, 0x0d, 0x27, 0xc2, 0x06, 0x2f, 0xdb, 0xc0, 0xd8, 0x60, 0x31, 0x1b, 0xd4, 0xc1, 0x1b, 0xca, 0xe7, 0x37, 0x9c, 0x08, 0x1b, 0x44, 0x77, 0xe3, 0xc5, 0x06, 0x8b, 0xd9, 0xa0, 0x0e, 0x5e, 0xad, 0xc1, 0xbb, 0xe1, 0x44, 0xd8, 0x20, 0x2a, 0x19, 0x2f, 0x36, 0x58, 0xcc, 0x06, 0xb5, 0xcc, 0x72, 0xf0, 0x56, 0xba, 0xdf, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x0e, 0xde, 0x4a, 0xf7, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x2b, 0xb6, 0xef, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x6d, 0xfb, 0x8e, 0x07, 0x6f, 0xef, 0xf6, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xc4, 0x70, 0xdf, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x65, 0xe4, 0xbe, 0x07, 0x85, 0x5b, 0xd2, 0x71, 0xe8, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xd0, 0xb9, 0xef, 0x20, 0x5b, 0x43, 0x1e, 0x7b, 0x71, 0x10, 0x2c, 0x48, 0x06, 0xd2, 0x3f, 0x07, 0xc9, 0x4a, 0x2b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x40, 0x78, 0x0e, 0x92, 0x95, 0x56, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x5f, 0xdc, 0x30, 0x71, 0x6b, 0xa8, 0xe3, 0x1b, 0x5e, 0xbe, 0x9b, 0x83, 0x57, 0xb2, 0xfb, 0x1e, 0xc4, 0x1d, 0xe0, 0xc5, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x50, 0xf7, 0x5d, 0x3c, 0x78, 0x25, 0xbb, 0xef, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x29, 0xf0, 0xbe, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x2e, 0xef, 0x7b, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xb8, 0xde, 0xf7, 0xa0, 0x70, 0x4b, 0x3a, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0xe2, 0xfb, 0x1e, 0x4e, 0xb1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x7b, 0xf8, 0x7c, 0x07, 0xd9, 0x1a, 0xb4, 0x05, 0xb2, 0xb2, 0xa1, 0x3f, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0xa4, 0x7f, 0x0e, 0xd2, 0x82, 0x46, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0xf0, 0x1c, 0xa4, 0x05, 0x8d, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0xb8, 0x61, 0xe2, 0xd6, 0x50, 0xc7, 0x37, 0xbc, 0x7c, 0x37, 0x07, 0x4f, 0x23, 0xf4, 0x3d, 0x88, 0x3b, 0xc0, 0x8b, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x53, 0xfe, 0x7c, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x3c, 0xd0, 0x77, 0x3c, 0x78, 0x1a, 0xa1, 0xef, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0x1f, 0xfa, 0x1e, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x55, 0xf4, 0x3d, 0x28, 0xdc, 0x92, 0x8e, 0x43, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xfb, 0x1a, 0x7d, 0x07, 0xd9, 0x1a, 0xf2, 0xd8, 0x8b, 0x83, 0x60, 0x83, 0x98, 0xe9, 0xbb, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0x71, 0x7e, 0x17, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x2f, 0x6e, 0x98, 0xb8, 0x35, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0xcd, 0xc1, 0xa3, 0x25, 0x7d, 0x0f, 0xe2, 0x0e, 0xf0, 0x62, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0x41, 0xfa, 0x2e, 0x1e, 0x3c, 0x5a, 0xd2, 0x77, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x12, 0x4b, 0xdf, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xc7, 0xf4, 0x3d, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xbb, 0xe9, 0x7b, 0x50, 0xb8, 0x25, 0x1d, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x33, 0x3d, 0x7d, 0x0f, 0xa7, 0xd8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xc9, 0xfc, 0xbd, 0x83, 0x6c, 0x0d, 0xda, 0x02, 0x59, 0xd9, 0xd0, 0x9f, 0x7c, 0x10, 0x6c, 0xf0, 0x54, 0x3d, 0x80, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xcf, 0xe8, 0x03, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x71, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x1c, 0xbc, 0x46, 0xc0, 0x77, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xd8, 0xff, 0xde, 0xf1, 0xe0, 0x35, 0x02, 0xbe, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa1, 0x04, 0xbe, 0x83, 0x6c, 0x0d, 0x79, 0xec, 0xc5, 0x41, 0xb0, 0x20, 0x19, 0x48, 0xff, 0x1c, 0x1c, 0x28, 0x92, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0xf0, 0x1c, 0x1c, 0x28, 0x92, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0xdf, 0x20, 0x42, 0x69, 0x2f, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xda, 0x81, 0xef, 0x41, 0x44, 0xd8, 0x5e, 0x1c, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x63, 0x14, 0x7c, 0x0f, 0xa7, 0xd8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x95, 0xf8, 0xbc, 0x83, 0x6c, 0x0d, 0xda, 0x02, 0x59, 0xd9, 0x10, 0xc3, 0x41, 0xb0, 0xc1, 0x4b, 0x91, 0x48, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xbc, 0x62, 0x89, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0xc5, 0x0d, 0x13, 0xb7, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x39, 0x78, 0x29, 0x40, 0xef, 0x86, 0x89, 0x5b, 0x43, 0x1d, 0xd9, 0x20, 0x5e, 0x1b, 0x2f, 0x0e, 0x1e, 0x17, 0xea, 0x7c, 0x10, 0xa5, 0x80, 0x17, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0xed, 0xf3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x88, 0x3f, 0xef, 0x78, 0xf0, 0x52, 0x80, 0xde, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x21, 0xe8, 0x3d, 0x88, 0x63, 0x6a, 0x8b, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xfb, 0x0d, 0x7a, 0x8f, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd9, 0x09, 0xbd, 0x83, 0x6c, 0x0d, 0x79, 0xec, 0xc5, 0x41, 0xb0, 0xc1, 0x03, 0x69, 0x01, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x34, 0x48, 0x36, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xe2, 0x86, 0x89, 0xdb, 0x20, 0x7e, 0x80, 0x2f, 0x0e, 0xa2, 0x14, 0xf0, 0x62, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0x32, 0xf4, 0x6e, 0x10, 0x8f, 0xc3, 0x17, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0x3d, 0xf4, 0x1e, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x49, 0x12, 0xbd, 0x87, 0x53, 0xec, 0x78, 0xbc, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x2f, 0xfd, 0x0e, 0x82, 0x0d, 0x1e, 0xb6, 0xd7, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xe3, 0xc1, 0x7b, 0x9c, 0x7e, 0x0f, 0xa9, 0x9a, 0xe3, 0xd0, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x5e, 0xfb, 0x1d, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x50, 0xdd, 0xef, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x85, 0x7a, 0xbf, 0xc3, 0x6e, 0x58, 0xdf, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xd0, 0xc1, 0xdf, 0x43, 0x2b, 0xf1, 0x61, 0x37, 0x34, 0x3d, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xae, 0xc4, 0xdf, 0x83, 0x32, 0x6e, 0x67, 0xd8, 0x0d, 0xed, 0xc3, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xe6, 0xf1, 0xf7, 0xa0, 0x00, 0x80, 0x1a, 0x76, 0x43, 0x4f, 0xf2, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0xa8, 0xfc, 0x3d, 0x48, 0x94, 0xfb, 0x18, 0x64, 0x1b, 0x9a, 0xaf, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xde, 0xf7, 0x7b, 0x38, 0xc5, 0x8e, 0xc7, 0x2b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xbc, 0xe7, 0xef, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x0c, 0xf6, 0x77, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xd2, 0xda, 0xdf, 0xe1, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x09, 0xf7, 0xf7, 0x30, 0x2e, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0xee, 0xfe, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0xf6, 0xfd, 0x1d, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x17, 0xfc, 0x7b, 0x70, 0x96, 0xcc, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x73, 0x88, 0x7f, 0x0f, 0xfd, 0xc9, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xbe, 0xf1, 0xef, 0x21, 0x9a, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x9b, 0x93, 0x7f, 0x87, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x3a, 0xe6, 0xdf, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x25, 0xcf, 0xbf, 0x07, 0xad, 0xc2, 0x45, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xc9, 0xd1, 0xbf, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x48, 0xfd, 0x7b, 0x38, 0xda, 0x8f, 0x43, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x74, 0xfd, 0x7b, 0x68, 0x25, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x7c, 0xf6, 0xef, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xc9, 0xfd, 0x3b, 0xdc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x7d, 0xff, 0x1e, 0x5a, 0x89, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x1f, 0xfe, 0x7b, 0x1c, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x5a, 0xf2, 0xdf, 0x43, 0x2b, 0xf1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xcb, 0xce, 0x7f, 0x87, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x06, 0xf5, 0xdf, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xbd, 0xec, 0xbf, 0x07, 0xad, 0xc2, 0x45, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x61, 0xef, 0xbf, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x22, 0xff, 0x7b, 0x50, 0xc6, 0xed, 0x1c, 0x87, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x9e, 0xfe, 0xf7, 0xa0, 0x8c, 0xdb, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xf5, 0xfe, 0x77, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xd2, 0xff, 0x1d, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xd0, 0xff, 0x7b, 0xd0, 0x2a, 0x5c, 0xd4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xfa, 0xff, 0x7b, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x6d, 0x02, 0xc0, 0x07, 0x05, 0x00, 0xd4, 0x71, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x73, 0x0a, 0x80, 0x0f, 0x0a, 0x00, 0xa8, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xeb, 0x0f, 0x80, 0x87, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x58, 0x05, 0xe0, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x61, 0x0d, 0xc0, 0x07, 0xad, 0xc2, 0x45, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x05, 0x10, 0xc0, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x2c, 0x01, 0x7c, 0x90, 0x28, 0xf7, 0x71, 0x1c, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xc6, 0x0a, 0xe0, 0x83, 0x44, 0xb9, 0x8f, 0xc3, 0x29, 0x76, 0x3c, 0x5e, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xfa, 0x00, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x9a, 0x12, 0xe0, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xf3, 0x43, 0x80, 0x07, 0xc1, 0x06, 0x0f, 0xdb, 0xeb, 0x39, 0x48, 0x7f, 0x26, 0x1a, 0x64, 0x1b, 0xc4, 0xd8, 0xff, 0xc5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x15, 0x2b, 0xc0, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x9f, 0x00, 0x1f, 0xbc, 0x31, 0xcd, 0xeb, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x20, 0x58, 0xdc, 0x20, 0x0d, 0x20, 0xe3, 0x70, 0x8a, 0x2d, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x8a, 0x01, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xf6, 0x1b, 0xe0, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xcb, 0x67, 0x80, 0x0f, 0xde, 0x7e, 0xb7, 0x35, 0xc8, 0x36, 0x88, 0xa9, 0x02, 0x8c, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xf1, 0x01, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x56, 0x07, 0x78, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xdb, 0x81, 0x80, 0x0f, 0x47, 0xfb, 0x20, 0xdb, 0x20, 0xa6, 0x0a, 0x30, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x38, 0x02, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x73, 0x08, 0xf8, 0xe0, 0x71, 0xd6, 0x64, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x15, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x86, 0x09, 0x78, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x78, 0x27, 0xe0, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa5, 0x51, 0xc0, 0x07, 0x29, 0x32, 0x3e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x1e, 0x15, 0xf0, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x25, 0x57, 0xc0, 0x07, 0x6f, 0x1f, 0xf8, 0x39, 0x34, 0x7f, 0x39, 0x1e, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xea, 0x2c, 0xe0, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x90, 0x0b, 0x78, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xd3, 0xc4, 0x80, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0xf9, 0x02, 0x3e, 0x88, 0xb2, 0x00, 0x8c, 0x41, 0xb6, 0x41, 0x9c, 0x53, 0x60, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x84, 0x06, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x46, 0x19, 0xf0, 0xc1, 0x33, 0xf1, 0x85, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x59, 0x03, 0x3e, 0x48, 0xd8, 0x67, 0x3e, 0x0e, 0x1d, 0x1a, 0xb5, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x8b, 0x03, 0x1e, 0x04, 0x1b, 0x3c, 0x6c, 0xaf, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0xc7, 0x83, 0x77, 0xcf, 0x01, 0x1f, 0x52, 0x35, 0xc7, 0xa1, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0xdd, 0x01, 0x0f, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x01, 0x7a, 0xc0, 0x8b, 0x0b, 0x82, 0x0d, 0x0a, 0x6a, 0xb1, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x15, 0x7f, 0xc0, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0x07, 0x02, 0x1f, 0xbc, 0x4c, 0x4d, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x4c, 0x42, 0xe0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x54, 0x04, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xea, 0x10, 0x78, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x19, 0x68, 0xbe, 0x74, 0xc8, 0x56, 0x1c, 0xd2, 0x70, 0x83, 0x6c, 0x83, 0xd8, 0x22, 0xc1, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x13, 0x12, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb0, 0x46, 0xe0, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x07, 0x6f, 0x64, 0xd3, 0x39, 0x74, 0xd0, 0x38, 0x34, 0x7f, 0x39, 0x1e, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb6, 0x49, 0xe0, 0x83, 0xb5, 0x7c, 0x02, 0xc7, 0xa1, 0x43, 0xa3, 0x96, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x3a, 0x26, 0xf0, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xad, 0x9b, 0xc0, 0x83, 0x64, 0x60, 0xae, 0x0e, 0x86, 0x7f, 0xec, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xe7, 0x09, 0x3c, 0x08, 0x36, 0x68, 0xe5, 0xba, 0x7c, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0xc7, 0xc0, 0xab, 0xc3, 0x53, 0x0e, 0xa9, 0x9a, 0xe3, 0xd0, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0x88, 0x02, 0x0f, 0x82, 0x0d, 0x5a, 0xb9, 0x2e, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x31, 0xf0, 0xea, 0xf0, 0x90, 0x43, 0xaa, 0xe6, 0x38, 0x74, 0x68, 0xfe, 0x72, 0x3c, 0x3e, 0x0e, 0x1d, 0x1a, 0xb5, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x3d, 0x05, 0x1e, 0x76, 0x43, 0xc7, 0x91, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x69, 0x05, 0x1e, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x48, 0x06, 0x4e, 0xa5, 0x43, 0xb6, 0xe2, 0xd0, 0xa8, 0x65, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x38, 0x55, 0xe0, 0x43, 0x7f, 0xaa, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0xf1, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x4a, 0x58, 0xe0, 0x41, 0xb0, 0xb8, 0xc1, 0x6b, 0x50, 0x55, 0x0e, 0x06, 0x13, 0xda, 0xe2, 0x20, 0x58, 0xd8, 0x85, 0x5b, 0x3c, 0x78, 0xdd, 0x52, 0xc8, 0x21, 0x9a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x3b, 0x0b, 0xbc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x69, 0xb6, 0xc0, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x44, 0x2b, 0x0f, 0xc6, 0x06, 0xd1, 0xca, 0x83, 0x71, 0x38, 0xc5, 0x06, 0xd9, 0x06, 0x51, 0xd4, 0x83, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x80, 0x2e, 0xf0, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xc5, 0xbc, 0xc0, 0x83, 0x64, 0xa0, 0x54, 0x1d, 0x0c, 0xff, 0xd8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x13, 0x7f, 0x81, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xaf, 0x18, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x20, 0x61, 0xe0, 0x83, 0xe8, 0x32, 0xc1, 0x18, 0x64, 0x1b, 0xc4, 0xe7, 0x10, 0xc6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x85, 0xcb, 0xc0, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0x21, 0x03, 0x1f, 0x44, 0x4c, 0x0a, 0xc6, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xe5, 0x0c, 0x7c, 0x30, 0xee, 0xa0, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x6b, 0x34, 0xf0, 0x20, 0xd8, 0xa0, 0x95, 0xeb, 0xf2, 0x83, 0x71, 0x1c, 0x72, 0x68, 0xfe, 0x72, 0x3c, 0x3e, 0x0e, 0x1d, 0x3a, 0x68, 0x0c, 0xbb, 0x70, 0x8b, 0x07, 0xad, 0x02, 0xb9, 0x1c, 0xa2, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x71, 0xd4, 0xc0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x72, 0x0d, 0x3c, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0x41, 0xdc, 0x30, 0x61, 0x6c, 0x10, 0x37, 0x4c, 0x18, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0x10, 0xcd, 0x4c, 0x18, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x76, 0x03, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xab, 0x0d, 0xbc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x99, 0xe3, 0xc0, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0x81, 0x03, 0x0f, 0x82, 0x0d, 0x62, 0xcf, 0x04, 0xe3, 0xd0, 0x14, 0x68, 0x90, 0x6d, 0x10, 0xb1, 0x4f, 0x18, 0x83, 0x6c, 0x83, 0x28, 0x83, 0xc2, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x33, 0x1d, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x36, 0x73, 0xe0, 0x41, 0xb0, 0x41, 0x3c, 0xa5, 0x60, 0x1c, 0x5a, 0x80, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xc7, 0x0e, 0xbc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x29, 0xef, 0xc0, 0x07, 0xd1, 0xfa, 0x66, 0x31, 0xc8, 0x36, 0x88, 0xf2, 0x2a, 0x8c, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xa7, 0x07, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x3e, 0x1e, 0x78, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xab, 0xf5, 0x81, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xbc, 0x07, 0x1e, 0x04, 0x1b, 0xc4, 0x9e, 0x09, 0xc6, 0xc1, 0x62, 0x2d, 0xa6, 0x41, 0xb6, 0x41, 0x0c, 0x60, 0x61, 0x0c, 0xb2, 0x0d, 0xe2, 0x16, 0x0b, 0x63, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x6c, 0x80, 0xe0, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x53, 0xfb, 0x81, 0x07, 0xc1, 0x06, 0xf1, 0x94, 0x82, 0x71, 0xb0, 0x6e, 0x8c, 0x69, 0x90, 0x6d, 0x10, 0xe5, 0x55, 0x18, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0x1a, 0x04, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x3a, 0x10, 0x7c, 0xd0, 0xfe, 0x5a, 0xd3, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xe3, 0x34, 0x82, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x30, 0x12, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x38, 0x4d, 0xf0, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x1c, 0x9e, 0xe0, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xed, 0x3e, 0xc1, 0x07, 0x67, 0xc9, 0xec, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x35, 0x28, 0xf8, 0xd0, 0x9f, 0x7c, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x11, 0x05, 0x1f, 0x52, 0x07, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x83, 0x8e, 0x82, 0x87, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xf4, 0xa4, 0xe0, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x99, 0x4c, 0xc1, 0x07, 0xad, 0xc2, 0x45, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x3d, 0x4f, 0xc1, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x20, 0x15, 0x7c, 0x68, 0x25, 0x7e, 0x1c, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x66, 0xaa, 0xe0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xbc, 0x0a, 0x3e, 0xb4, 0x12, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x47, 0x2b, 0xf8, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xf3, 0xba, 0x82, 0x87, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x10, 0xb0, 0xe0, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd1, 0x62, 0xc1, 0x07, 0xad, 0xc2, 0x45, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x75, 0x65, 0xc1, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x84, 0x16, 0x7c, 0x50, 0xc6, 0xed, 0x1c, 0x87, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x62, 0x2d, 0x78, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x8b, 0xdb, 0x82, 0x0f, 0xca, 0xb8, 0x9d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x13, 0xe1, 0x82, 0x0f, 0x47, 0xfb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xc9, 0x73, 0xc1, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x9c, 0x5d, 0xf0, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x90, 0xbc, 0xe0, 0x83, 0x56, 0xe1, 0xa2, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xe2, 0xbd, 0xe0, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xf4, 0x0b, 0x3e, 0x28, 0x00, 0xa0, 0x8e, 0x43, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x16, 0x18, 0xbc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x19, 0x84, 0xc1, 0x07, 0x05, 0x00, 0xd4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xdd, 0x86, 0xc1, 0x87, 0x56, 0xe2, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0x28, 0x06, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x31, 0x63, 0xf0, 0x41, 0xa2, 0xdc, 0xc7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x75, 0x8f, 0xc1, 0x87, 0xfe, 0xe4, 0xc7, 0xe3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x9a, 0x0c, 0x1e, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x58, 0x1a, 0x3c, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x08, 0x35, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x9a, 0xd5, 0xe0, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x6f, 0x0d, 0x1e, 0x04, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0xc2, 0x06, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x5f, 0x1b, 0x3c, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0xe2, 0x06, 0x0f, 0xb7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x59, 0xbb, 0xc1, 0x87, 0xd4, 0xc1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x11, 0xbe, 0xc1, 0x87, 0xb5, 0xdf, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x06, 0x0e, 0x3e, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xca, 0xe1, 0xe0, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xdd, 0xc6, 0xc1, 0x87, 0xf8, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x9b, 0x1c, 0x3c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x6c, 0x0e, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x05, 0x1d, 0x3c, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0x51, 0x07, 0x0f, 0x92, 0x81, 0xd2, 0x75, 0x10, 0xe4, 0xfc, 0x07, 0xa7, 0x5d, 0xda, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xbd, 0x0e, 0x3e, 0x24, 0x3b, 0x8e, 0x43, 0xc3, 0x6f, 0x50, 0xe0, 0x8e, 0x0c, 0xbf, 0xc1, 0x60, 0x07, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x51, 0x3b, 0x78, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x8d, 0x77, 0xf0, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x78, 0xf0, 0xe0, 0x41, 0x32, 0x50, 0xbb, 0x0e, 0x02, 0xde, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x28, 0x0f, 0x3e, 0x0e, 0x2d, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xdb, 0xcf, 0x83, 0x87, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xc4, 0xf5, 0xe0, 0x41, 0x32, 0xb8, 0x77, 0x10, 0xf0, 0xfe, 0x07, 0xe5, 0x50, 0xd2, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x77, 0x0f, 0x1e, 0x7e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x33, 0xe4, 0x83, 0x87, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xda, 0xfa, 0xe0, 0x83, 0x08, 0xc8, 0xc4, 0x38, 0x28, 0x19, 0x9a, 0x8e, 0x6f, 0xc7, 0xa1, 0x61, 0x37, 0x68, 0x9d, 0x0f, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x63, 0x28, 0x84, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0x5e, 0x08, 0x0f, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x95, 0x86, 0xf0, 0x41, 0x60, 0x62, 0x1f, 0x56, 0x68, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xcc, 0x0f, 0x1e, 0x64, 0x6b, 0xd0, 0x16, 0xc8, 0xca, 0x86, 0x18, 0x0e, 0x82, 0x0d, 0x5e, 0x8a, 0x44, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0x15, 0x4b, 0x24, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x2f, 0x6e, 0x98, 0xb8, 0x35, 0xcc, 0xfd, 0xe0, 0xe9, 0x41, 0x2b, 0xff, 0x14, 0x1b, 0x26, 0x6e, 0x0d, 0x73, 0x3f, 0xe0, 0x95, 0xb9, 0xe5, 0x1b, 0xea, 0xf8, 0x80, 0x57, 0x67, 0xa7, 0xb4, 0x61, 0xe2, 0xd6, 0x50, 0x47, 0xd6, 0x30, 0x43, 0x6b, 0x98, 0xb8, 0x0d, 0xd3, 0xb9, 0x61, 0x86, 0x36, 0x88, 0xd7, 0xc6, 0x8b, 0x0d, 0x27, 0xc2, 0x06, 0xf1, 0xda, 0x78, 0xb1, 0xc1, 0x62, 0x36, 0xa8, 0x83, 0xa7, 0x64, 0xbc, 0x6f, 0x38, 0x11, 0x36, 0x88, 0xf3, 0x52, 0x8c, 0x0d, 0x16, 0xb3, 0x41, 0x2d, 0xb3, 0x6c, 0xf8, 0xc4, 0x66, 0x0d, 0xcf, 0x93, 0xac, 0xc1, 0x42, 0x65, 0xaa, 0x83, 0xb7, 0xb6, 0x07, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0x78, 0xbf, 0xaf, 0xe1, 0x73, 0x97, 0x01, 0x0f, 0xed, 0x0d, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x1f, 0x7f, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x05, 0x7f, 0x3f, 0x68, 0x61, 0xb8, 0x7f, 0xc3, 0xf3, 0x24, 0x1b, 0xc4, 0x42, 0x2a, 0xc6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x82, 0xf7, 0xfb, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xaf, 0xf9, 0xfb, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x01, 0xf4, 0xd1, 0x1a, 0x1e, 0x94, 0xdc, 0x38, 0xb4, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x97, 0xfe, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x0d, 0xfb, 0xfb, 0xc1, 0xcb, 0x98, 0xa8, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x78, 0x7f, 0xdf, 0xf0, 0xb9, 0xcb, 0xe0, 0xf0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x80, 0xfc, 0xfb, 0x06, 0xa5, 0x84, 0xf8, 0x06, 0x2b, 0xc8, 0xf4, 0x37, 0x3c, 0x28, 0xb9, 0xc1, 0xf2, 0xe3, 0xed, 0x83, 0x96, 0x30, 0x38, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xa6, 0x7f, 0xdf, 0xf0, 0xb9, 0xcb, 0xe0, 0xf1, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xf4, 0xfd, 0xfb, 0x06, 0xa5, 0x84, 0xf8, 0x06, 0x2b, 0xc8, 0xf4, 0x37, 0x3c, 0x28, 0xb9, 0xc1, 0xf2, 0xe3, 0xed, 0x83, 0xb3, 0x67, 0xdc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc6, 0xfe, 0xfb, 0x86, 0xcf, 0x5d, 0x06, 0x97, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x1b, 0xfc, 0xdf, 0x37, 0x28, 0x25, 0xc4, 0x37, 0x58, 0x41, 0xa6, 0xbf, 0xe1, 0x41, 0xc9, 0x0d, 0x96, 0x1f, 0x6f, 0x1f, 0x2c, 0x11, 0xae, 0x3d, 0x68, 0x8d, 0x87, 0x60, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xbe, 0xf4, 0xf7, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x6b, 0xd8, 0xdf, 0x37, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x6f, 0xce, 0x86, 0x46, 0x82, 0x1b, 0xde, 0xb8, 0x3b, 0x78, 0xb2, 0x1c, 0xde, 0xc1, 0xcb, 0x98, 0xa8, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xfb, 0xd2, 0xdf, 0xd7, 0xf0, 0xb9, 0xcb, 0xe0, 0xf0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x80, 0xfc, 0xfb, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc3, 0xfb, 0xfb, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x94, 0x10, 0xdf, 0x60, 0x05, 0x99, 0xfe, 0x41, 0x4b, 0x18, 0x9c, 0x07, 0xed, 0x5a, 0x1a, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf7, 0xa5, 0xbf, 0xaf, 0xe1, 0x73, 0x97, 0xc1, 0xe3, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xe8, 0xfb, 0xf7, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x6e, 0xfa, 0xf7, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x29, 0x21, 0xbe, 0xc1, 0x0a, 0x32, 0xfd, 0x83, 0xb3, 0x67, 0xdc, 0x41, 0xc3, 0xce, 0x07, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x7d, 0xe9, 0xef, 0x1b, 0x3e, 0x77, 0x19, 0x5c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xf0, 0x7f, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0xd8, 0x7f, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x12, 0xe2, 0x1b, 0xac, 0x20, 0xd3, 0x3f, 0x58, 0x22, 0x5c, 0x7b, 0xd0, 0x38, 0xf5, 0xc1, 0x86, 0x0f, 0x72, 0xd6, 0x60, 0x01, 0xf4, 0xd1, 0x1a, 0x1e, 0x94, 0xdc, 0x38, 0xb4, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x16, 0x00, 0xbf, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x07, 0x01, 0xfc, 0xc1, 0xab, 0xe9, 0xa8, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x37, 0x80, 0xdf, 0xf0, 0xb9, 0xcb, 0xe0, 0xf0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x7a, 0x02, 0xfc, 0x41, 0xbc, 0xc5, 0x62, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xcc, 0x00, 0xbf, 0xe1, 0x73, 0x97, 0xc1, 0xe3, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xdc, 0x07, 0xf8, 0x83, 0x78, 0x8b, 0xc5, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x94, 0x80, 0xdf, 0xf0, 0xb9, 0xcb, 0xe0, 0xf2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x62, 0x05, 0xfc, 0x41, 0xbc, 0xd0, 0x62, 0x1c, 0xb4, 0xc6, 0x43, 0xb0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x59, 0x00, 0xfc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x1d, 0x04, 0xf0, 0x1b, 0x14, 0x7c, 0x98, 0x6b, 0xf8, 0x37, 0x67, 0x43, 0x23, 0xc1, 0x0d, 0x6f, 0xdc, 0xcd, 0xc1, 0x6b, 0x50, 0x55, 0x0e, 0x5e, 0x4d, 0x47, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x16, 0x00, 0xbf, 0x86, 0xcf, 0x5d, 0x06, 0x87, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xd3, 0x13, 0xe0, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xeb, 0x0d, 0xe0, 0x0f, 0xe2, 0xa1, 0x17, 0x63, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x2c, 0x00, 0x7e, 0x0d, 0x9f, 0xbb, 0x0c, 0x1e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0x3e, 0xc0, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0x33, 0xc0, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0x48, 0xea, 0xc5, 0x38, 0x68, 0xd8, 0xf9, 0x60, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x2c, 0x00, 0x7e, 0xc3, 0xe7, 0x2e, 0x83, 0xcb, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x89, 0x15, 0xf0, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x95, 0x12, 0xf0, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0x36, 0x81, 0x31, 0x0e, 0x1a, 0xa7, 0x3e, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xc3, 0x80, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x64, 0x03, 0x7e, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x68, 0x24, 0xb8, 0xe1, 0x8d, 0xbb, 0x39, 0x68, 0x15, 0xc8, 0xe5, 0xe0, 0x15, 0x38, 0xd4, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x6d, 0x18, 0xf0, 0x1b, 0x3e, 0x77, 0x19, 0x1c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x07, 0x81, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xef, 0x80, 0xdf, 0xf0, 0x6e, 0xcf, 0x06, 0x91, 0xd4, 0x8b, 0x71, 0xd0, 0xa2, 0x10, 0xc1, 0xc1, 0x4a, 0x3a, 0xfd, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x0e, 0xe2, 0x12, 0x15, 0x63, 0x43, 0x1d, 0x59, 0xc3, 0x0c, 0xad, 0x61, 0xe2, 0x36, 0x4c, 0xe7, 0x86, 0x19, 0x5a, 0xc3, 0xc4, 0xad, 0x61, 0xe2, 0xd6, 0x30, 0xf7, 0x1b, 0x14, 0xb5, 0xc5, 0x1b, 0x8a, 0xe9, 0x1a, 0x44, 0x6e, 0x29, 0xc6, 0x41, 0x2c, 0xa4, 0x62, 0x6c, 0x98, 0xb8, 0x35, 0xcc, 0xfd, 0x80, 0x87, 0xf6, 0x06, 0x1f, 0xb4, 0xf2, 0x4f, 0xb1, 0xa1, 0x98, 0x6e, 0x10, 0x63, 0xdf, 0x18, 0x1b, 0x2c, 0x68, 0x98, 0x5a, 0xc3, 0xc4, 0xad, 0xa1, 0x8e, 0x6f, 0x78, 0xf9, 0xee, 0x20, 0xa2, 0xb2, 0x31, 0x36, 0xcc, 0xfd, 0xe0, 0xf0, 0x86, 0x3a, 0xb2, 0x86, 0x19, 0xda, 0x20, 0xce, 0x4b, 0x31, 0x36, 0x9c, 0x08, 0x1b, 0xc4, 0x79, 0x29, 0xc6, 0x06, 0x8b, 0xd9, 0xa0, 0x96, 0x59, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xe7, 0x49, 0xd6, 0x60, 0xa1, 0x32, 0xd5, 0x41, 0xbb, 0x07, 0x9c, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x39, 0x9d, 0xef, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0x7f, 0xbe, 0xaf, 0xe1, 0x73, 0x97, 0x01, 0x0f, 0xad, 0x4c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xaf, 0x2e, 0x7d, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x14, 0x7d, 0x3f, 0x78, 0xa5, 0xe1, 0xcc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xf9, 0xe7, 0xfb, 0x86, 0xcf, 0x5d, 0x06, 0x3c, 0xb9, 0x34, 0x73, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x7d, 0xf5, 0x7d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x15, 0xf5, 0x7d, 0xc3, 0xbb, 0x3d, 0x6b, 0x50, 0x4a, 0x88, 0x6f, 0xb0, 0x82, 0x4c, 0xff, 0xe0, 0xdd, 0x28, 0xd7, 0x07, 0xc7, 0xef, 0xbf, 0x0d, 0xcf, 0x93, 0x6c, 0x10, 0xb9, 0xe4, 0x18, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x39, 0x9d, 0xef, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0xbb, 0xbe, 0xaf, 0xe1, 0x73, 0x97, 0x01, 0x4f, 0xec, 0x2d, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xa5, 0x7d, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x8c, 0x7d, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x12, 0xe2, 0x1b, 0xac, 0x20, 0xd3, 0x3f, 0x28, 0x6a, 0x7c, 0x0f, 0x1a, 0x85, 0x59, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x76, 0x7d, 0xdf, 0xf0, 0xb9, 0xcb, 0x06, 0x2b, 0x83, 0x72, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x5b, 0x75, 0xdf, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xdb, 0x6e, 0xdf, 0x37, 0x7c, 0x90, 0xb3, 0x06, 0x6b, 0x80, 0x96, 0x0e, 0x86, 0xe9, 0xc4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x1d, 0xc0, 0xef, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0xc6, 0xe7, 0xa3, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x3b, 0x8c, 0xdf, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xb3, 0x85, 0xdf, 0x37, 0x7c, 0x90, 0xb3, 0x06, 0x0b, 0xa0, 0x8f, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x47, 0x7e, 0x3f, 0x78, 0x00, 0xdb, 0xf5, 0x86, 0x1e, 0x3b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x8e, 0xfc, 0xbe, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0xf4, 0xd8, 0xd9, 0xf0, 0xc6, 0xdd, 0x1c, 0x9c, 0xeb, 0x4f, 0x0f, 0x1e, 0xc0, 0x76, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xbc, 0xfc, 0xbe, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0xf4, 0xd8, 0xd9, 0xf0, 0xc6, 0xdd, 0xc1, 0x2b, 0xc6, 0x84, 0x0f, 0x5e, 0x55, 0x77, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x01, 0xfc, 0xbe, 0xe1, 0x73, 0x97, 0x01, 0xcf, 0x2c, 0xec, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x92, 0x7e, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x78, 0x7e, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x12, 0xe2, 0x1b, 0xac, 0x20, 0xd3, 0x3f, 0x58, 0xcb, 0x49, 0xbc, 0xc1, 0x58, 0x53, 0x69, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xac, 0xf7, 0x7d, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0xd0, 0xb8, 0x6e, 0xc1, 0xc1, 0x30, 0x9d, 0x38, 0x38, 0x86, 0x1b, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0xc8, 0x25, 0xc7, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0xe9, 0x7c, 0xdf, 0xf0, 0xb9, 0xcb, 0x06, 0x8b, 0x84, 0x67, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xbb, 0xb1, 0xdf, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x53, 0xab, 0xdf, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x23, 0xd8, 0x18, 0x07, 0x2d, 0x0a, 0x11, 0x1c, 0xac, 0xa4, 0xd3, 0x3f, 0x9c, 0x62, 0x87, 0x53, 0xec, 0x20, 0x8a, 0xc8, 0x31, 0x56, 0xc3, 0xc4, 0xad, 0xa1, 0x8e, 0x6f, 0x78, 0xf9, 0xee, 0x20, 0x8e, 0x9d, 0x31, 0x36, 0x4c, 0xdc, 0x06, 0x51, 0x27, 0x8e, 0xb1, 0x61, 0xe2, 0xd6, 0x30, 0xf7, 0x83, 0xc7, 0x07, 0xf1, 0x2b, 0x8e, 0xb1, 0x61, 0xee, 0x07, 0x97, 0x37, 0xd4, 0x91, 0x35, 0xcc, 0xd0, 0x06, 0x71, 0x5e, 0x8a, 0xb1, 0xe1, 0x44, 0xd8, 0x20, 0xce, 0x4b, 0x31, 0x36, 0x58, 0xcc, 0x06, 0xb5, 0xcc, 0xb2, 0xe1, 0x13, 0x9b, 0x35, 0x3c, 0x4f, 0xb2, 0x06, 0x0b, 0x95, 0xa9, 0x0e, 0x8e, 0xa5, 0x71, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x25, 0x7c, 0xef, 0x6b, 0xf8, 0xdc, 0x65, 0xc0, 0xa3, 0x7b, 0x13, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x33, 0x04, 0xdf, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xbb, 0xfd, 0xde, 0x0f, 0x5a, 0x18, 0xee, 0xdf, 0xf0, 0x3c, 0xc9, 0x06, 0xf1, 0x8d, 0x90, 0xb1, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xc2, 0xf7, 0xbe, 0x86, 0xcf, 0x5d, 0x06, 0xbc, 0xb0, 0x3a, 0x7a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x03, 0xf1, 0x7d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x9b, 0xf0, 0x7d, 0xc3, 0xbb, 0x3d, 0x6b, 0x50, 0x4a, 0x88, 0x6f, 0xb0, 0x82, 0x4c, 0x7f, 0xc3, 0x83, 0x92, 0x1b, 0x3c, 0x11, 0xc9, 0xfa, 0xe0, 0x41, 0xed, 0xc1, 0x07, 0xad, 0xf1, 0x10, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0xf8, 0x46, 0xc8, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0xe1, 0x7b, 0xdf, 0xf0, 0xb9, 0xcb, 0x06, 0x45, 0x6d, 0xf1, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x8b, 0xe3, 0xfb, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xbe, 0xe2, 0xfb, 0x41, 0x4b, 0x44, 0x11, 0x07, 0x2b, 0xe9, 0xf4, 0x0f, 0xa7, 0xd8, 0xe1, 0x14, 0x3b, 0x88, 0x35, 0x84, 0x8c, 0xc3, 0x29, 0xb6, 0x86, 0x89, 0x5b, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0x93, 0xe5, 0xf0, 0x36, 0x4c, 0xdc, 0x06, 0x51, 0x27, 0x8e, 0xb1, 0x61, 0xe2, 0xd6, 0x30, 0xf7, 0x83, 0xc7, 0x07, 0x51, 0x6e, 0x90, 0xb1, 0x61, 0xee, 0x07, 0x97, 0x37, 0xd4, 0x91, 0x35, 0xcc, 0xd0, 0x06, 0x71, 0x5e, 0x8a, 0xb1, 0xe1, 0x44, 0xd8, 0x20, 0xce, 0x4b, 0x31, 0x36, 0x58, 0xcc, 0x06, 0xb5, 0xcc, 0xb2, 0xe1, 0x13, 0x9b, 0x35, 0x3c, 0x4f, 0xb2, 0x06, 0x0b, 0x95, 0xa9, 0x0e, 0x56, 0x0f, 0xd7, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x87, 0x4b, 0xbe, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0x4a, 0x09, 0xf1, 0x0d, 0x56, 0x90, 0xe9, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0x37, 0x54, 0xbe, 0xaf, 0xe1, 0xa3, 0xf6, 0x83, 0x17, 0x5f, 0xbe, 0x77, 0x70, 0x8c, 0x39, 0x3b, 0x58, 0x49, 0xa7, 0x7f, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0x41, 0xac, 0x60, 0x64, 0x1c, 0x4e, 0xb1, 0x0d, 0x13, 0xb7, 0x86, 0xb9, 0x1f, 0xf8, 0x32, 0x77, 0xc3, 0x0c, 0xad, 0x61, 0xe2, 0xd6, 0x30, 0xf7, 0x03, 0x1e, 0x5c, 0xd8, 0x7a, 0x10, 0x89, 0xa5, 0x18, 0x1b, 0x66, 0x68, 0x83, 0xd8, 0x31, 0xc5, 0xd8, 0x70, 0x22, 0x6c, 0x10, 0x3b, 0xa6, 0x18, 0x1b, 0x2c, 0x66, 0x83, 0x3a, 0x78, 0xad, 0x09, 0xfc, 0x86, 0x13, 0x61, 0x83, 0xd8, 0xeb, 0xc8, 0xd8, 0x60, 0x31, 0x1b, 0xd4, 0x32, 0xcb, 0xc1, 0x83, 0x31, 0xe3, 0x0f, 0xa7, 0xd8, 0xe1, 0x14, 0xdb, 0x30, 0xf7, 0x03, 0x4f, 0x56, 0x6e, 0x98, 0xa1, 0x35, 0x4c, 0xdc, 0x1a, 0xe6, 0x7e, 0x83, 0xa2, 0xb6, 0xf8, 0x60, 0xf5, 0xa8, 0xfe, 0x86, 0x19, 0x5a, 0xc3, 0xc4, 0xad, 0x61, 0xee, 0x07, 0x0f, 0x37, 0xd4, 0x91, 0x35, 0xcc, 0xd0, 0x06, 0x71, 0x20, 0x78, 0xb1, 0xe1, 0x44, 0xd8, 0x20, 0x0e, 0x04, 0x2f, 0x36, 0x58, 0xcc, 0x06, 0xb5, 0xcc, 0xb2, 0xe1, 0x13, 0x9b, 0x35, 0x3c, 0x4f, 0xb2, 0xe1, 0xe1, 0xf7, 0x0d, 0x1f, 0xe4, 0x6c, 0xd0, 0x84, 0x2c, 0xc4, 0x6a, 0xf8, 0xdc, 0x65, 0xc3, 0x77, 0xf4, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0x86, 0xde, 0x31, 0x0e, 0xce, 0xf5, 0x06, 0x1b, 0x3e, 0x77, 0xd9, 0xf0, 0xd6, 0xfd, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x94, 0x10, 0xdf, 0x60, 0x05, 0x99, 0xfe, 0x41, 0x11, 0xe5, 0x7b, 0x70, 0x00, 0x4d, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x31, 0xf4, 0x8e, 0x71, 0x70, 0x8c, 0x39, 0x3b, 0x58, 0x49, 0xa7, 0x7f, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0x41, 0xac, 0x93, 0x64, 0x1c, 0xc4, 0x98, 0x47, 0xc6, 0x86, 0x13, 0x61, 0x83, 0x68, 0x17, 0xc9, 0xd8, 0x60, 0x31, 0x1b, 0xd4, 0x32, 0xcb, 0xc1, 0x1b, 0x5f, 0xe0, 0x0f, 0xa7, 0xd8, 0xe1, 0x14, 0xdb, 0x70, 0x22, 0x6c, 0x10, 0xe5, 0x21, 0x19, 0x1b, 0x2c, 0x66, 0x83, 0x5a, 0x66, 0x39, 0x78, 0x00, 0x0e, 0xfc, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x07, 0xf1, 0xda, 0x78, 0xb1, 0x41, 0xc3, 0x97, 0x10, 0x6b, 0x98, 0xb8, 0x35, 0x4c, 0xdc, 0x1a, 0xe6, 0x7e, 0x83, 0xa2, 0xb6, 0xf8, 0x30, 0x9d, 0x1b, 0x26, 0x6e, 0x0d, 0x73, 0x3f, 0xf0, 0x65, 0xee, 0x86, 0x19, 0x5a, 0xc3, 0xc4, 0x6d, 0x98, 0xce, 0x0d, 0x13, 0xb7, 0x61, 0x3a, 0x37, 0xd4, 0x91, 0x35, 0xcc, 0xd0, 0x1a, 0x26, 0x6e, 0xc3, 0x74, 0x6e, 0x98, 0xa1, 0x35, 0xcc, 0xd0, 0x06, 0xd1, 0xdd, 0x78, 0xb1, 0xe1, 0x44, 0xd8, 0x20, 0xba, 0x1b, 0x2f, 0x36, 0x58, 0xcc, 0x06, 0x75, 0xf0, 0x08, 0x79, 0xd1, 0x0d, 0x27, 0xc2, 0x06, 0x51, 0x18, 0x93, 0xb1, 0xc1, 0x62, 0x36, 0xa8, 0x83, 0x67, 0x11, 0x8d, 0x6e, 0x38, 0x11, 0x36, 0x88, 0x81, 0x98, 0x8c, 0x0d, 0x16, 0xb3, 0x41, 0x2d, 0xb3, 0x6c, 0xf8, 0xc4, 0x66, 0x0d, 0x1f, 0xe4, 0x6c, 0xd0, 0xe0, 0xee, 0xc0, 0x1a, 0x9e, 0x27, 0xd9, 0xe0, 0x4d, 0x48, 0xa3, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x69, 0x65, 0x3f, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0x76, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xf8, 0xec, 0x67, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x46, 0xed, 0x67, 0xc3, 0xbb, 0x3d, 0x6b, 0x50, 0x4a, 0x88, 0x6f, 0xb0, 0x82, 0x4c, 0xff, 0x20, 0x00, 0xd9, 0x0e, 0xce, 0xf5, 0x06, 0x1b, 0x9e, 0x27, 0xd9, 0xe0, 0x4d, 0x48, 0xa3, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x69, 0x65, 0x3f, 0x1b, 0x3e, 0x77, 0x19, 0x5c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x73, 0xfb, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x88, 0xfb, 0xd9, 0xf0, 0x6e, 0xcf, 0x06, 0x71, 0x86, 0x93, 0x71, 0x70, 0x00, 0x4d, 0xda, 0xf0, 0x3c, 0xc9, 0x06, 0xcf, 0x91, 0x1a, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x9f, 0xfb, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0x87, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x65, 0x76, 0x3f, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xd1, 0x78, 0x3f, 0x07, 0x31, 0x68, 0x92, 0xb1, 0xe1, 0x79, 0x92, 0x0d, 0x9e, 0x23, 0x35, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x3f, 0xf7, 0xb3, 0xe1, 0x73, 0x97, 0xc1, 0xc5, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xfe, 0xbe, 0x9f, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x24, 0xc0, 0x9f, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x29, 0x21, 0xbe, 0xc1, 0x0a, 0x32, 0xfd, 0x0d, 0xef, 0xf6, 0x6c, 0xf0, 0xa2, 0xad, 0xd1, 0x35, 0x7c, 0xd4, 0x7e, 0xf0, 0x6e, 0xae, 0xd1, 0x0e, 0x0e, 0xa0, 0x49, 0x07, 0x2b, 0xe9, 0xf4, 0x0f, 0xa7, 0xd8, 0xe1, 0x14, 0x3b, 0x88, 0x73, 0x9a, 0x8c, 0x0d, 0x1a, 0xf9, 0x84, 0xd8, 0x20, 0xfa, 0x5f, 0x32, 0x0e, 0x1a, 0x11, 0x85, 0xd8, 0x30, 0xf7, 0x03, 0x4f, 0x56, 0x6e, 0x98, 0xa1, 0x35, 0x4c, 0xdc, 0x06, 0xab, 0x47, 0xf5, 0x37, 0x4c, 0xdc, 0x06, 0xab, 0x47, 0xf5, 0x37, 0x4c, 0xdc, 0x86, 0xe9, 0xdc, 0x30, 0x71, 0x6b, 0x98, 0xfb, 0x01, 0x4f, 0xec, 0x2d, 0x3e, 0x58, 0x3d, 0xaa, 0xbf, 0x61, 0xee, 0x37, 0x38, 0xc0, 0x4b, 0x1e, 0xac, 0x1e, 0xd5, 0xdf, 0xa0, 0x91, 0x4f, 0x88, 0x0d, 0xa2, 0xc8, 0x28, 0xe3, 0xa0, 0x11, 0x51, 0x88, 0x83, 0x78, 0x6d, 0xbc, 0xd8, 0x60, 0x31, 0x1b, 0xd4, 0x32, 0xcb, 0xc1, 0x53, 0x9e, 0xb0, 0x0f, 0xa7, 0xd8, 0xe1, 0x14, 0xdb, 0x70, 0x22, 0x6c, 0x10, 0xeb, 0xdd, 0x18, 0x1b, 0x2c, 0x66, 0x83, 0x5a, 0x66, 0xd9, 0xf0, 0x89, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xed, 0x57, 0xd8, 0x1b, 0x94, 0x12, 0xe2, 0x1b, 0xac, 0x20, 0xd3, 0x3f, 0x78, 0x85, 0x16, 0xf6, 0xc1, 0x4a, 0x3a, 0xfd, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x0e, 0x22, 0x81, 0x29, 0x63, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x3a, 0xfe, 0xe0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0xf9, 0x0f, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x44, 0x40, 0xf8, 0x20, 0x30, 0xb1, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x9c, 0x40, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x14, 0x04, 0xe1, 0x43, 0xaa, 0x66, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xf3, 0x15, 0x84, 0x0f, 0xa9, 0x83, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xa3, 0x1b, 0x84, 0x0f, 0x42, 0x00, 0xfc, 0x38, 0x74, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x2d, 0x42, 0xf8, 0x70, 0xb4, 0x1f, 0xdf, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xb5, 0x43, 0x78, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x1a, 0x88, 0xf0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x59, 0x23, 0xc2, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x61, 0x22, 0x3c, 0x08, 0x16, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x45, 0x11, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xc3, 0x45, 0x78, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x86, 0x11, 0x1e, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xfb, 0x66, 0x84, 0x0f, 0xa9, 0x83, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x6b, 0x6c, 0x84, 0x0f, 0x6b, 0xbf, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x8f, 0x23, 0x7c, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb9, 0x3b, 0xc2, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x03, 0x7e, 0x84, 0x0f, 0xf1, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x3a, 0x48, 0x78, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x5a, 0x24, 0x3c, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x0d, 0x49, 0x78, 0xf8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x5d, 0x12, 0x3e, 0x88, 0x0b, 0x48, 0x8c, 0x41, 0x32, 0x50, 0xbf, 0x8e, 0xc7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xe8, 0x24, 0x7c, 0x48, 0x76, 0x1c, 0x87, 0x86, 0xdf, 0xa0, 0xc0, 0x1d, 0x19, 0x7e, 0x83, 0xc1, 0x0e, 0x30, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x59, 0x94, 0xf0, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x86, 0x2a, 0xe1, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xc9, 0x57, 0xc2, 0x07, 0x11, 0x56, 0x89, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x6a, 0x09, 0x1f, 0x87, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x6d, 0x5d, 0xc2, 0xc3, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x2e, 0x98, 0xf0, 0x20, 0x19, 0xd0, 0xa8, 0xdd, 0xd7, 0x41, 0xc0, 0xfb, 0x1f, 0x94, 0x43, 0x49, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x88, 0x4c, 0x78, 0xf8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x3b, 0x13, 0x1e, 0x7e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x8b, 0xd5, 0x84, 0x0f, 0xe2, 0x6f, 0x2d, 0xe3, 0xa0, 0x64, 0x68, 0x3a, 0xbe, 0x1d, 0x87, 0x86, 0xdd, 0xa0, 0x75, 0x3e, 0x80, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x43, 0x14, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xbf, 0x28, 0x3c, 0xcc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x9d, 0x8e, 0xc2, 0x07, 0x81, 0x89, 0x7d, 0x58, 0xa1, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xd3, 0x4d, 0x78, 0x90, 0xad, 0x41, 0x5b, 0x20, 0x2b, 0x1b, 0x62, 0x38, 0x08, 0x36, 0x78, 0x29, 0x12, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x57, 0x2c, 0x91, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0xb8, 0x61, 0xe2, 0x36, 0x88, 0xda, 0x51, 0x8c, 0x0d, 0x13, 0xb7, 0x41, 0xc4, 0x91, 0x62, 0x6c, 0x98, 0xb8, 0x0d, 0xa2, 0xdc, 0x20, 0x63, 0x43, 0x1d, 0x59, 0xc3, 0x0c, 0xad, 0x61, 0xe2, 0x36, 0x4c, 0xe7, 0x86, 0x19, 0x5a, 0xc3, 0xc4, 0xad, 0x61, 0xe2, 0xd6, 0x30, 0xf7, 0x1b, 0x14, 0xb5, 0xc5, 0x1b, 0x8a, 0xe9, 0x1a, 0x44, 0xc5, 0x41, 0xc6, 0x41, 0x7c, 0x23, 0x64, 0x6c, 0x98, 0xb8, 0x35, 0xcc, 0xfd, 0x80, 0x47, 0xf7, 0x26, 0x1e, 0xb4, 0xf2, 0x4f, 0xb1, 0xa1, 0x98, 0x6e, 0x10, 0x63, 0x79, 0x19, 0x1b, 0x26, 0x6e, 0x0d, 0x73, 0x3f, 0xe0, 0x85, 0xd5, 0xd1, 0x1b, 0xea, 0xc8, 0x1a, 0x66, 0x68, 0x83, 0x38, 0x2f, 0xc5, 0xd8, 0x70, 0x22, 0x6c, 0x10, 0xe7, 0xa5, 0x18, 0x1b, 0x2c, 0x66, 0x83, 0x5a, 0x66, 0xd9, 0xf0, 0x89, 0xcd, 0x1a, 0x9e, 0x27, 0x59, 0x83, 0x85, 0xca, 0x54, 0x07, 0xef, 0x83, 0x06, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x5b, 0x79, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x12, 0xe2, 0x1b, 0xac, 0x20, 0xd3, 0xdf, 0xf0, 0x6e, 0xcf, 0x06, 0x4f, 0x6d, 0x79, 0x5f, 0xc3, 0x47, 0xed, 0x07, 0x8f, 0x83, 0x79, 0x5f, 0xc3, 0x47, 0xed, 0x07, 0x2f, 0xa2, 0x79, 0xef, 0xe0, 0x18, 0x73, 0x76, 0xb0, 0x92, 0x4e, 0xff, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x83, 0xc8, 0xeb, 0xcb, 0xd8, 0x50, 0x4c, 0x37, 0x88, 0xb1, 0xbc, 0x8c, 0x83, 0x98, 0x10, 0xc9, 0xd8, 0x30, 0x71, 0x6b, 0x98, 0xfb, 0x81, 0x2f, 0x73, 0x37, 0xcc, 0xd0, 0x1a, 0x26, 0x6e, 0x0d, 0x13, 0xb7, 0x41, 0x94, 0xe8, 0x65, 0x6c, 0x98, 0xb8, 0x0d, 0x22, 0x70, 0x2f, 0xe3, 0x20, 0x26, 0x44, 0x32, 0x36, 0xcc, 0xd0, 0x06, 0xf1, 0xda, 0x78, 0xb1, 0xe1, 0x44, 0xd8, 0x20, 0x5e, 0x1b, 0x2f, 0x36, 0x58, 0xcc, 0x06, 0x75, 0xf0, 0xac, 0xf3, 0xee, 0x0d, 0x27, 0xc2, 0x06, 0x31, 0x3e, 0x98, 0xb1, 0xc1, 0x62, 0x36, 0xa8, 0x65, 0x96, 0x83, 0x67, 0x36, 0x7f, 0x1f, 0x4e, 0xb1, 0xc3, 0x29, 0xb6, 0x61, 0xee, 0x07, 0x9e, 0xac, 0xdc, 0x30, 0x43, 0x6b, 0x98, 0xb8, 0x0d, 0x62, 0x42, 0x24, 0x63, 0xc3, 0xc4, 0xad, 0x61, 0xee, 0x07, 0x17, 0x37, 0x4c, 0xdc, 0x1a, 0xe6, 0x7e, 0xc0, 0x13, 0x7b, 0x8b, 0x0f, 0x22, 0x35, 0xf0, 0x62, 0xc3, 0xdc, 0x6f, 0x70, 0x80, 0x97, 0x3c, 0x88, 0xec, 0xc2, 0x8b, 0x0d, 0x33, 0xb4, 0x86, 0x89, 0xdb, 0x20, 0x36, 0x46, 0x32, 0x0e, 0xa2, 0xa8, 0x30, 0x63, 0xc3, 0x89, 0xb0, 0x41, 0xfc, 0x2d, 0x66, 0x6c, 0xb0, 0x98, 0x0d, 0x6a, 0x99, 0xe5, 0xe0, 0x49, 0xf0, 0xdd, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x6d, 0x38, 0x11, 0x36, 0x88, 0x63, 0xc4, 0x8c, 0x0d, 0x16, 0xb3, 0x41, 0x2d, 0xb3, 0x1c, 0xbc, 0x8e, 0xc3, 0xfb, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x83, 0x78, 0x6d, 0xbc, 0x38, 0x88, 0x05, 0x97, 0x8c, 0x0d, 0x27, 0xc2, 0x06, 0xb1, 0x7e, 0x97, 0x71, 0x10, 0xa3, 0x4b, 0x19, 0x07, 0x91, 0xc0, 0x94, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x61, 0x9c, 0xf0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0xd1, 0x09, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x73, 0x27, 0x7c, 0x10, 0x98, 0xd8, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x9f, 0x27, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x4e, 0x9f, 0xf0, 0x21, 0x55, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x09, 0x80, 0xc2, 0x87, 0xd4, 0xc1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd1, 0x82, 0xc2, 0x07, 0x21, 0x00, 0x7e, 0x1c, 0x3a, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x5b, 0x28, 0x7c, 0x38, 0xda, 0x8f, 0x6f, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0x47, 0x0a, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xa5, 0x14, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xf2, 0x52, 0xf8, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x9b, 0x34, 0x85, 0x07, 0xc1, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf1, 0x9c, 0xc2, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0x89, 0x0a, 0x0f, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xfd, 0xa4, 0xc2, 0xc3, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xed, 0xa9, 0xf0, 0x21, 0x75, 0x30, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x9b, 0xaa, 0xf0, 0x61, 0xed, 0x77, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x63, 0x5a, 0x85, 0x0f, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xfe, 0x55, 0x78, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xce, 0xac, 0xf0, 0x21, 0xfe, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0xd8, 0x0a, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xe3, 0x73, 0x85, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0xf2, 0x0a, 0x0f, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf9, 0xbf, 0xc2, 0x07, 0x71, 0x01, 0x89, 0x71, 0x90, 0xcc, 0x60, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd5, 0xc2, 0xc2, 0x87, 0x64, 0xc7, 0x71, 0x68, 0xf8, 0x0d, 0x0a, 0xdc, 0x91, 0xe1, 0x37, 0x18, 0xec, 0x00, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0x16, 0x0b, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x4b, 0x16, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xc1, 0x2c, 0x7c, 0x10, 0x61, 0x95, 0x18, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xbe, 0xb3, 0xf0, 0x71, 0x68, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x1d, 0x2d, 0x3c, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0x54, 0x0b, 0x0f, 0x92, 0x81, 0xfd, 0xaf, 0x83, 0x80, 0xf7, 0x3f, 0x28, 0x87, 0x92, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x29, 0xb6, 0xf0, 0xf0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xbd, 0x2d, 0x3c, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x7c, 0x0b, 0x1f, 0xc4, 0x69, 0x6b, 0xc6, 0x41, 0xc9, 0xd0, 0x74, 0x7c, 0x3b, 0x0e, 0x0d, 0xbb, 0x41, 0xeb, 0x7c, 0x00, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xce, 0x2f, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x0c, 0x60, 0x78, 0x98, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x1b, 0x06, 0x86, 0x0f, 0x02, 0x13, 0xfb, 0xb0, 0x42, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xbe, 0xb8, 0xf0, 0x20, 0x5b, 0x83, 0xb6, 0x40, 0x56, 0x36, 0xc4, 0x70, 0x10, 0x6c, 0xf0, 0x52, 0x24, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xaf, 0x58, 0x22, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x71, 0xc3, 0xc4, 0x6d, 0x10, 0xb5, 0xa3, 0x18, 0x1b, 0x26, 0x6e, 0x83, 0x88, 0x23, 0xc5, 0xd8, 0x30, 0x71, 0x1b, 0xc4, 0xaf, 0x38, 0xc6, 0x86, 0x3a, 0xb2, 0x86, 0x19, 0x5a, 0xc3, 0xc4, 0x6d, 0x98, 0xce, 0x0d, 0x33, 0xb4, 0x86, 0x89, 0x5b, 0xc3, 0xc4, 0xad, 0x61, 0xee, 0x37, 0x28, 0x6a, 0x8b, 0x37, 0x14, 0xd3, 0x35, 0x88, 0x77, 0x71, 0x8c, 0x83, 0xc8, 0x25, 0xc7, 0xd8, 0x30, 0x71, 0x6b, 0x98, 0xb8, 0x35, 0xcc, 0xfd, 0x80, 0x87, 0x56, 0x26, 0x6f, 0xa8, 0x23, 0x6b, 0x98, 0xa1, 0x0d, 0xe2, 0xbc, 0x14, 0x63, 0xc3, 0x89, 0xb0, 0x41, 0x9c, 0x97, 0x62, 0x6c, 0xb0, 0x98, 0x0d, 0x6a, 0x99, 0x65, 0xc3, 0x27, 0x36, 0x6b, 0x78, 0x9e, 0x64, 0x0d, 0x16, 0x2a, 0x53, 0x1d, 0x34, 0x7c, 0x3d, 0xbe, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x7c, 0xf4, 0xbe, 0xe1, 0xeb, 0x97, 0x35, 0xfc, 0x08, 0x33, 0xf0, 0x70, 0x48, 0x1b, 0x2c, 0x94, 0x7d, 0xda, 0xa0, 0x99, 0xce, 0x81, 0x35, 0x28, 0x3a, 0x8d, 0x37, 0x68, 0x01, 0x74, 0x60, 0x0d, 0x3f, 0xc2, 0x0c, 0x3c, 0x5d, 0x18, 0x3c, 0x1c, 0x72, 0x48, 0x1d, 0x1c, 0xb4, 0x55, 0x3a, 0x70, 0xb0, 0x92, 0x4e, 0xff, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x83, 0xe8, 0xf2, 0xcd, 0xd8, 0x30, 0xf7, 0x03, 0x9e, 0x5c, 0x9a, 0xb9, 0xa1, 0x8e, 0xac, 0x61, 0x86, 0x36, 0x88, 0xf3, 0x52, 0x8c, 0x0d, 0x27, 0xc2, 0x06, 0x71, 0x5e, 0x8a, 0xb1, 0xc1, 0x62, 0x36, 0xa8, 0x65, 0x96, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x79, 0x92, 0x35, 0x58, 0xa8, 0x4c, 0x75, 0xf0, 0x40, 0x5b, 0xc7, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xbc, 0x90, 0xf7, 0x0d, 0x5f, 0xbf, 0xac, 0xe1, 0x47, 0x98, 0x01, 0xaf, 0x8e, 0xcc, 0x68, 0x83, 0x85, 0xb2, 0x4f, 0x1b, 0x34, 0xd3, 0x39, 0xb0, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x2d, 0x80, 0x0e, 0xac, 0xe1, 0x47, 0x98, 0x81, 0xa7, 0x0b, 0x03, 0xaf, 0x8e, 0xcc, 0x38, 0xa4, 0x0e, 0x0e, 0xda, 0x2a, 0x1d, 0x38, 0x58, 0x49, 0xa7, 0x7f, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0x41, 0x44, 0x16, 0x67, 0x6c, 0x28, 0xa6, 0x1b, 0x44, 0xdd, 0x6e, 0xc6, 0x86, 0x89, 0x5b, 0xc3, 0xc4, 0xad, 0x61, 0xee, 0x07, 0x3c, 0xb1, 0xb7, 0x78, 0x43, 0x1d, 0x59, 0xc3, 0x0c, 0x6d, 0x10, 0xe7, 0xa5, 0x18, 0x1b, 0x4e, 0x84, 0x0d, 0xe2, 0xbc, 0x14, 0x63, 0x83, 0xc5, 0x6c, 0x50, 0xcb, 0x2c, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xf3, 0x24, 0x6b, 0xb0, 0x50, 0x99, 0xea, 0xf0, 0x1b, 0xfd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xb3, 0xc9, 0xfb, 0x86, 0xaf, 0x5f, 0xd6, 0xf0, 0x23, 0xcc, 0xe0, 0x44, 0x1b, 0x2c, 0x94, 0x7d, 0xda, 0xa0, 0x99, 0xce, 0x81, 0x35, 0x28, 0x3a, 0x8d, 0x37, 0x68, 0x01, 0x74, 0x60, 0x0d, 0x3f, 0xc2, 0x0c, 0x3c, 0x5d, 0x18, 0x4e, 0x1c, 0x52, 0x07, 0x07, 0x6d, 0x95, 0x0e, 0x1c, 0xac, 0xa4, 0xd3, 0x3f, 0x9c, 0x62, 0x87, 0x53, 0xec, 0x20, 0x86, 0x9b, 0x33, 0x36, 0xcc, 0xfd, 0x06, 0x2b, 0x83, 0x72, 0x37, 0x58, 0xd0, 0x30, 0xb5, 0x41, 0x8b, 0x6d, 0x03, 0xb3, 0x86, 0x89, 0x5b, 0xc3, 0xdc, 0x6f, 0xd0, 0xf8, 0x7c, 0xd4, 0x06, 0x0b, 0x1a, 0xa6, 0xd6, 0x50, 0xc7, 0x37, 0xbc, 0x7c, 0x77, 0x10, 0x6f, 0xf8, 0x18, 0xb3, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x57, 0x8c, 0x09, 0x1f, 0x4e, 0xb1, 0x0d, 0x73, 0x3f, 0xe0, 0x99, 0x85, 0x9d, 0x1b, 0xea, 0xc8, 0x1a, 0x66, 0x68, 0x83, 0x38, 0x2f, 0xc5, 0xd8, 0x70, 0x22, 0x6c, 0x10, 0xe7, 0xa5, 0x18, 0x1b, 0x2c, 0x66, 0x83, 0x5a, 0x66, 0xd9, 0xf0, 0x89, 0xcd, 0x1a, 0x9e, 0x27, 0x59, 0x83, 0x85, 0xca, 0x54, 0x07, 0xcb, 0x3c, 0x89, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xbb, 0x37, 0xde, 0x37, 0x7c, 0xfd, 0xb2, 0x86, 0x1f, 0x61, 0x06, 0xbc, 0x3a, 0xb2, 0xa3, 0x0d, 0x16, 0xca, 0x3e, 0x6d, 0xd0, 0x4c, 0xe7, 0xc0, 0x1a, 0x14, 0x9d, 0xc6, 0x1b, 0xb4, 0x00, 0x3a, 0xb0, 0x86, 0x1f, 0x61, 0x06, 0x9e, 0x2e, 0x0c, 0xbc, 0x3a, 0xb2, 0xe3, 0x90, 0x3a, 0x38, 0x68, 0xab, 0x74, 0xe0, 0x60, 0x25, 0x9d, 0xfe, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x07, 0x91, 0x83, 0x9d, 0x71, 0x38, 0xc5, 0x36, 0x14, 0xd3, 0x0d, 0xa2, 0x6e, 0x37, 0x63, 0xc3, 0xdc, 0x6f, 0xb0, 0x48, 0x78, 0xf6, 0xa0, 0x15, 0x89, 0xff, 0x0d, 0x13, 0xb7, 0x86, 0xb9, 0x1f, 0xf8, 0x32, 0x77, 0xc3, 0x0c, 0xad, 0x61, 0xe2, 0x36, 0x88, 0x5f, 0x71, 0x8c, 0x0d, 0x33, 0xb4, 0x41, 0xbc, 0x36, 0x5e, 0x6c, 0x38, 0x11, 0x36, 0x88, 0xd7, 0xc6, 0x8b, 0x0d, 0x16, 0xb3, 0x41, 0x1d, 0x3c, 0xff, 0x3a, 0x7d, 0xc3, 0x89, 0xb0, 0x41, 0xac, 0x7e, 0x67, 0x6c, 0xb0, 0x98, 0x0d, 0x6a, 0x99, 0xe5, 0xe0, 0x91, 0x63, 0xeb, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x6d, 0x98, 0xfb, 0x81, 0x27, 0x2b, 0x37, 0xcc, 0xd0, 0x1a, 0x26, 0x6e, 0x0d, 0x73, 0xbf, 0xc1, 0x22, 0xe1, 0xd9, 0x83, 0xd5, 0xa3, 0xfa, 0x1b, 0x26, 0x6e, 0x83, 0x58, 0x4b, 0xcc, 0xd8, 0x30, 0x43, 0x6b, 0x98, 0xb8, 0x0d, 0x62, 0x63, 0x24, 0xe3, 0x20, 0x42, 0xc0, 0x33, 0x36, 0x9c, 0x08, 0x1b, 0xc4, 0x49, 0x79, 0xc6, 0x06, 0x8b, 0xd9, 0xa0, 0x96, 0x59, 0x0e, 0x9e, 0x0d, 0x9e, 0x7e, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0x86, 0x13, 0x61, 0x83, 0x18, 0x1d, 0xcf, 0xd8, 0x60, 0x31, 0x1b, 0xd4, 0x32, 0xcb, 0xc1, 0x5b, 0x19, 0xd4, 0x0f, 0xa7, 0xd8, 0xe1, 0x14, 0x3b, 0x88, 0xd7, 0xc6, 0x8b, 0x83, 0x58, 0x70, 0xc9, 0xd8, 0x70, 0x22, 0x6c, 0x10, 0xfd, 0xb9, 0x19, 0x07, 0x31, 0xba, 0x94, 0x71, 0x10, 0x09, 0x4c, 0x19, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x97, 0x0b, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x28, 0xba, 0xf0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x91, 0xeb, 0xc2, 0x07, 0x81, 0x89, 0xbd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x55, 0xee, 0xc2, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0xc6, 0x0b, 0x1f, 0x52, 0x35, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x46, 0x2f, 0x7c, 0x48, 0x1d, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x74, 0x2f, 0x7c, 0x10, 0x02, 0xe0, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x21, 0xfa, 0xc2, 0x87, 0xa3, 0xfd, 0xf8, 0x76, 0x3c, 0x1e, 0x04, 0x8b, 0x1b, 0x14, 0xd3, 0x82, 0xb3, 0x06, 0x0f, 0xb9, 0x79, 0x3e, 0x48, 0x03, 0xc8, 0xd8, 0x20, 0x00, 0xee, 0x0f, 0x96, 0x62, 0x50, 0x2d, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x19, 0x1a, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x00, 0x68, 0x78, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xcb, 0x8b, 0x86, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x79, 0x69, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x48, 0xa4, 0xe1, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x64, 0xe0, 0xbb, 0xaa, 0xe3, 0xf1, 0x41, 0xb2, 0xa1, 0xc1, 0x20, 0xdb, 0x20, 0x7e, 0xe9, 0x33, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x4d, 0x6a, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x96, 0xa7, 0xe1, 0x41, 0xb0, 0xc1, 0xd3, 0xd1, 0xb9, 0x0e, 0x92, 0xcb, 0x07, 0x06, 0xd9, 0x06, 0xf1, 0x4b, 0x9f, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x79, 0x58, 0xc3, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0x54, 0x0d, 0x0f, 0x82, 0x0d, 0x1e, 0x16, 0xce, 0x75, 0xf0, 0x34, 0xaa, 0xb4, 0x41, 0xb6, 0x41, 0xfc, 0xd2, 0x67, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xdd, 0xd7, 0xf0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x4d, 0x5b, 0xc3, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc9, 0x80, 0xf2, 0xef, 0xeb, 0x78, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x0d, 0x96, 0x15, 0xee, 0x1f, 0x87, 0x06, 0xd9, 0x06, 0xf1, 0x4b, 0x9f, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x84, 0xd9, 0xf0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd5, 0x62, 0xc3, 0x83, 0x60, 0x83, 0x37, 0x85, 0x0b, 0x0d, 0x92, 0x21, 0x07, 0x2d, 0xa9, 0x92, 0x0c, 0xb2, 0x0d, 0x62, 0x6a, 0x3e, 0x63, 0x90, 0x6d, 0x10, 0x07, 0xf4, 0x19, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xeb, 0x36, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x3b, 0xda, 0xf0, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x75, 0x71, 0xc3, 0x07, 0xef, 0x47, 0x28, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x30, 0xf2, 0x1f, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0xd0, 0x0d, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xa4, 0xde, 0xf0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xed, 0x76, 0xc3, 0x07, 0x4f, 0xfd, 0xc7, 0x1a, 0x64, 0x1b, 0x44, 0xe8, 0x81, 0xc6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa1, 0x80, 0xc3, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0xf5, 0x0d, 0x1f, 0x3c, 0x75, 0xd4, 0xe8, 0xd0, 0xfc, 0xe5, 0x78, 0x7c, 0x1c, 0x3a, 0x34, 0x05, 0x1a, 0x64, 0x1b, 0xc4, 0xd4, 0x7c, 0xc6, 0x20, 0xdb, 0x20, 0x0e, 0xe8, 0x33, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xe9, 0x70, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x0c, 0xc2, 0xe1, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x07, 0xcb, 0x5a, 0xd8, 0x0e, 0x9d, 0x88, 0x06, 0xd9, 0x06, 0x31, 0x35, 0x9f, 0x31, 0xc8, 0x36, 0x88, 0x03, 0xfa, 0x8c, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x73, 0x1c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x55, 0x71, 0x78, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x19, 0x10, 0xad, 0x76, 0x5f, 0xc7, 0xe3, 0x83, 0x25, 0xfc, 0x3f, 0x83, 0x6c, 0x83, 0x98, 0x9a, 0xcf, 0x18, 0x64, 0x1b, 0xc4, 0x01, 0x7d, 0xc6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0x54, 0x0e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x1c, 0x39, 0x3c, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xf1, 0xe5, 0xf0, 0xc1, 0xab, 0x9a, 0x84, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x40, 0xcd, 0xe1, 0x83, 0x83, 0x47, 0xed, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xea, 0x1c, 0x1e, 0x24, 0x03, 0xca, 0xea, 0xaa, 0xe3, 0xf1, 0x71, 0xe8, 0xe0, 0x3d, 0x87, 0x19, 0x83, 0x6c, 0x83, 0x98, 0x9a, 0xcf, 0x18, 0x64, 0x1b, 0xc4, 0x01, 0x7d, 0xc6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0x97, 0x0e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x2b, 0x3a, 0x3c, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x2c, 0xea, 0xf0, 0xc1, 0xab, 0x9a, 0x84, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb6, 0xd5, 0xe1, 0x83, 0x83, 0x47, 0xed, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x72, 0x1d, 0x1e, 0x24, 0x03, 0xd6, 0xdf, 0x57, 0x1d, 0x8f, 0x8f, 0x43, 0x07, 0x0f, 0xf1, 0xcc, 0x18, 0x64, 0x1b, 0xc4, 0xd4, 0x7c, 0xc6, 0x20, 0xdb, 0x20, 0x0e, 0xe8, 0x33, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xdb, 0x76, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xd0, 0xd9, 0xe1, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x3b, 0x73, 0x87, 0x0f, 0x5e, 0x14, 0x42, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xc5, 0x3b, 0xbc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x51, 0xc2, 0xc3, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0xfc, 0x0e, 0x0f, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x3a, 0x38, 0x78, 0xd4, 0x1e, 0xd2, 0x70, 0x83, 0x6c, 0x83, 0x28, 0x2f, 0xd1, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x2f, 0x79, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x94, 0xe2, 0xe1, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x07, 0xc7, 0xbd, 0xde, 0x43, 0x07, 0x8d, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x71, 0xe8, 0xe0, 0xa1, 0xb4, 0x19, 0x83, 0x6c, 0x83, 0x98, 0x9a, 0xcf, 0x18, 0x64, 0x1b, 0xc4, 0x01, 0x7d, 0xc6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x42, 0x0f, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xce, 0x3c, 0x3c, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xdc, 0xf4, 0xf0, 0xc1, 0x8b, 0x42, 0x88, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xc6, 0x7a, 0xf8, 0xe0, 0xe0, 0x51, 0x7b, 0x1c, 0x3a, 0x78, 0x77, 0x21, 0xd3, 0x20, 0xdb, 0x20, 0xa6, 0xe6, 0x33, 0x06, 0xd9, 0x06, 0x71, 0x40, 0x9f, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xad, 0xdc, 0xc3, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0x64, 0x0f, 0x0f, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xf7, 0x3d, 0x7c, 0xf0, 0xa2, 0x10, 0xa2, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x11, 0x1f, 0x3e, 0x38, 0x78, 0xd4, 0x1e, 0x87, 0x0e, 0x5e, 0xee, 0xc8, 0x34, 0xc8, 0x36, 0x88, 0xa9, 0xf9, 0x8c, 0x41, 0xb6, 0x41, 0x1c, 0xd0, 0x67, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x24, 0xfa, 0xf0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x0d, 0xe5, 0xc3, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0xad, 0x0f, 0x1f, 0xbc, 0xaa, 0x49, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x70, 0x1f, 0x3e, 0x58, 0xaa, 0xee, 0x33, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xab, 0xe1, 0x87, 0x07, 0xc9, 0x80, 0xb9, 0x6a, 0xf7, 0x75, 0x3c, 0x3e, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x27, 0x68, 0xff, 0x7d, 0x1c, 0x1a, 0x64, 0x1b, 0xc4, 0xd4, 0x7c, 0xc6, 0x20, 0xdb, 0x20, 0x0e, 0xe8, 0x33, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0xc3, 0x1f, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xa5, 0x7e, 0x78, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x19, 0x78, 0xae, 0xea, 0x78, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x9d, 0xa0, 0xff, 0xf7, 0x71, 0xe8, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x21, 0x03, 0xc4, 0x83, 0x60, 0x83, 0x87, 0xed, 0xf5, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x78, 0xf0, 0xc8, 0x02, 0xe2, 0x43, 0xaa, 0xe6, 0x38, 0x74, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xb0, 0x81, 0x78, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x7b, 0x26, 0x88, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x80, 0x20, 0x3e, 0x78, 0x20, 0x07, 0xd2, 0x20, 0xdb, 0x20, 0xce, 0x8c, 0x34, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xc9, 0x20, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xc0, 0x82, 0xf8, 0xe0, 0xdd, 0x95, 0x3d, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x15, 0x04, 0x8b, 0x1b, 0x2c, 0xbc, 0x41, 0x6a, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xc8, 0x18, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x15, 0x5b, 0xc4, 0xc3, 0x6e, 0xf0, 0xa0, 0xad, 0xa1, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x2e, 0x23, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x3c, 0x34, 0xe2, 0x83, 0x97, 0x86, 0x0d, 0x0d, 0xb2, 0x0d, 0x62, 0xb4, 0x49, 0x63, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x38, 0x37, 0xe2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x7b, 0xd6, 0x88, 0x0f, 0xe3, 0x32, 0xec, 0x06, 0x6f, 0xb7, 0x78, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x98, 0x38, 0xe2, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x9e, 0x23, 0x1e, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0x1d, 0x17, 0x6f, 0x1b, 0xbc, 0xe3, 0xe2, 0xed, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0x62, 0x35, 0x4a, 0x63, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x53, 0xf3, 0x88, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0xb4, 0x23, 0x3e, 0x34, 0x12, 0x1c, 0x64, 0x1b, 0xc4, 0x6a, 0x94, 0xc6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x95, 0x7f, 0xc4, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0xf1, 0x11, 0x1f, 0x04, 0xa5, 0xf7, 0xb0, 0x1b, 0x2c, 0xb1, 0xb4, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x2a, 0x41, 0xe2, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x28, 0x24, 0x3e, 0x58, 0xb4, 0x69, 0x35, 0xc8, 0x36, 0x88, 0x45, 0x2c, 0x8d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xf3, 0x15, 0x89, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x3d, 0x24, 0x1e, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xb7, 0x91, 0xf8, 0xe0, 0xfd, 0x08, 0x25, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x07, 0x49, 0x7c, 0xf0, 0x0e, 0x03, 0xa2, 0xe3, 0xd0, 0xa1, 0x83, 0xc6, 0xb0, 0x1b, 0x2c, 0xb3, 0x41, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xa8, 0x49, 0xe2, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xaf, 0x24, 0x3e, 0x58, 0xb8, 0x83, 0x34, 0xc8, 0x36, 0x88, 0xdd, 0x2f, 0x8d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x6b, 0x31, 0x89, 0x0f, 0x86, 0xe6, 0xef, 0xb0, 0x1b, 0xbc, 0x14, 0xe3, 0x6d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xdb, 0x36, 0x89, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xc2, 0x93, 0x78, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x57, 0x63, 0xbc, 0x6d, 0xf0, 0x6a, 0x8c, 0xb7, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x88, 0x8f, 0x31, 0x8d, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x26, 0x25, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x34, 0x94, 0xf8, 0xe0, 0xf1, 0x66, 0x1b, 0x83, 0x6c, 0x83, 0xf8, 0x18, 0xd3, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x5b, 0x95, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xd8, 0x53, 0xe2, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x64, 0x40, 0x79, 0x5d, 0x75, 0x3c, 0x3e, 0xb4, 0x00, 0x1b, 0x76, 0x83, 0x17, 0x4f, 0xbc, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x6e, 0x2b, 0xf1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0xc1, 0x12, 0x0f, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xf0, 0xfa, 0x89, 0xb7, 0x0d, 0x5e, 0x3f, 0xf1, 0x76, 0x38, 0xc5, 0x06, 0xd9, 0x06, 0x91, 0xae, 0xa6, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x1d, 0xb7, 0xc4, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0xcf, 0x12, 0x1f, 0x3c, 0x7e, 0xd9, 0x68, 0x90, 0x6d, 0x10, 0xe9, 0x6a, 0x1a, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0xf5, 0x12, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x9e, 0x4b, 0x3c, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x0b, 0x30, 0xf1, 0xc1, 0x1b, 0x01, 0x4a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x5c, 0x98, 0xf8, 0x20, 0xe5, 0xe3, 0xe2, 0x38, 0x74, 0x68, 0x01, 0x36, 0xec, 0x06, 0x6f, 0x90, 0x78, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xe2, 0x62, 0xe2, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x43, 0x26, 0x1e, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0x3d, 0x12, 0x6f, 0x1b, 0xbc, 0x47, 0xe2, 0xed, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0x62, 0x9f, 0x4e, 0x63, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x63, 0x9e, 0x89, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x5f, 0x26, 0x3e, 0x78, 0xc9, 0x5e, 0xcf, 0x20, 0xdb, 0x20, 0xf6, 0xe9, 0x34, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xa8, 0x26, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x3e, 0x9a, 0xf8, 0xe0, 0x79, 0x50, 0x65, 0xc3, 0x6e, 0xf0, 0xa6, 0x84, 0xb7, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xbe, 0x26, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x3a, 0x6d, 0xe2, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0xde, 0x97, 0xf0, 0xb6, 0xc1, 0xfb, 0x12, 0xde, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0x20, 0x06, 0xf8, 0x34, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xc0, 0x9b, 0x78, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x19, 0x58, 0xfa, 0x3a, 0x1e, 0x1f, 0x9a, 0x02, 0x0d, 0xb2, 0x0d, 0x62, 0x80, 0x4f, 0x63, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x3a, 0x72, 0xe2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x9b, 0xc2, 0x89, 0x07, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x39, 0x27, 0x3e, 0x78, 0x3f, 0x42, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0xa7, 0x13, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x65, 0x27, 0x3e, 0x78, 0x3f, 0x42, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0xbd, 0x13, 0x1f, 0xbc, 0xbb, 0x67, 0xe8, 0x38, 0x74, 0x1c, 0x3a, 0xb4, 0x00, 0x1b, 0x76, 0x83, 0x65, 0x80, 0x48, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x25, 0x4f, 0xbc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x01, 0xf5, 0xc4, 0x07, 0x0b, 0x0b, 0x91, 0x06, 0xd9, 0x06, 0x51, 0x89, 0xa8, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xbd, 0xf7, 0xc4, 0x07, 0xd1, 0xf7, 0xa7, 0x31, 0xc8, 0x36, 0x88, 0x4a, 0x44, 0x8d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xc3, 0xfb, 0x89, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xd4, 0x27, 0x1e, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x14, 0xa0, 0xf8, 0xe0, 0xfd, 0x08, 0x25, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x35, 0x50, 0x3c, 0x48, 0x06, 0x2c, 0xbf, 0xaf, 0x3a, 0x1e, 0x1f, 0x87, 0x0e, 0x2d, 0xc0, 0x86, 0xdd, 0xe0, 0xdd, 0xeb, 0x41, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x6c, 0x50, 0xbc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x75, 0x09, 0xc5, 0x07, 0x0f, 0x33, 0xd5, 0x1a, 0x64, 0x1b, 0x44, 0x59, 0xa4, 0xc6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb9, 0x0f, 0xc5, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0x30, 0x14, 0x0f, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x27, 0x51, 0x7c, 0xf0, 0x46, 0x80, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xa9, 0x28, 0x3e, 0x78, 0xd4, 0xaf, 0xd6, 0x71, 0xe8, 0xd0, 0x41, 0x63, 0xd8, 0x0d, 0x1e, 0x69, 0xf0, 0xb6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x09, 0x18, 0xc5, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xab, 0x51, 0x3c, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0x83, 0x0d, 0xde, 0x36, 0x78, 0xb0, 0xc1, 0xdb, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0x44, 0x27, 0xa6, 0xc6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x25, 0x22, 0xc5, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0x79, 0x14, 0x0f, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x4e, 0x52, 0x7c, 0xf0, 0x46, 0x80, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x3c, 0x29, 0x3e, 0x78, 0x75, 0xb8, 0xd0, 0x71, 0xe8, 0xd0, 0x41, 0x63, 0xd8, 0x0d, 0x5e, 0x55, 0xf1, 0xb6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x71, 0x2a, 0xc5, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xd1, 0x52, 0x3c, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0x0b, 0x2b, 0xde, 0x36, 0x78, 0x61, 0xc5, 0xdb, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0x44, 0x27, 0xa8, 0xc6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0xce, 0x14, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x0a, 0x53, 0x3c, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x94, 0x4d, 0xf1, 0xc1, 0x1b, 0x01, 0x4a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x20, 0xa7, 0x78, 0xf8, 0x0d, 0x56, 0xf7, 0xc2, 0x0c, 0x92, 0x81, 0x70, 0x1d, 0xcf, 0x8f, 0x43, 0x87, 0xa6, 0x40, 0x83, 0x6c, 0x83, 0xe8, 0x04, 0xd5, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xfa, 0xa7, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x74, 0x9e, 0xe2, 0x83, 0xe7, 0x41, 0x95, 0x0d, 0xbb, 0xc1, 0x3b, 0x1a, 0xde, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x51, 0xa8, 0x78, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x73, 0x8a, 0x8a, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x78, 0x53, 0xc3, 0xdb, 0x06, 0x6f, 0x6a, 0x78, 0x3b, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x38, 0x59, 0xd5, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x81, 0xa9, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x66, 0xa4, 0xe2, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0xc3, 0x2f, 0x48, 0x06, 0xde, 0xab, 0x3a, 0x1e, 0x1f, 0x9c, 0x83, 0xbf, 0x0f, 0x1d, 0x34, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x7f, 0x2a, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x48, 0xa9, 0xe2, 0x83, 0x37, 0x80, 0x60, 0x0d, 0xb2, 0x0d, 0x62, 0x18, 0x56, 0x63, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x8c, 0x57, 0xf1, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x83, 0x58, 0x7e, 0xd5, 0x38, 0x74, 0xd0, 0x18, 0x76, 0xe1, 0x36, 0x88, 0x56, 0x1e, 0x8c, 0x83, 0x90, 0x02, 0x3f, 0x18, 0x0b, 0xa3, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x15, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x42, 0xac, 0x78, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x51, 0x6a, 0xc5, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x1b, 0xda, 0x8a, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x7f, 0x2b, 0x1e, 0x7e, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb5, 0x72, 0xc5, 0x07, 0x4d, 0x90, 0x8b, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0xd5, 0x15, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xd6, 0x5e, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x1d, 0x78, 0xc5, 0x83, 0x60, 0x83, 0xc6, 0xde, 0x45, 0x0e, 0xd2, 0x9f, 0x89, 0x06, 0xd9, 0x06, 0x11, 0xb4, 0xab, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x3d, 0x60, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x09, 0x7e, 0xc5, 0x87, 0x71, 0x39, 0x34, 0x7f, 0x39, 0x1e, 0x1f, 0x87, 0x8e, 0x6f, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0x0e, 0x16, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x35, 0x2c, 0x3e, 0x1c, 0xed, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0x25, 0x16, 0x0f, 0x82, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xe3, 0x17, 0x8b, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x8a, 0x2c, 0x1e, 0x76, 0x61, 0x37, 0x68, 0x1f, 0x50, 0xe4, 0xb0, 0xbe, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x95, 0x94, 0xc5, 0xc3, 0x6e, 0x10, 0x7c, 0xcc, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x7d, 0x59, 0x7c, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x85, 0x9a, 0xc5, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x50, 0x3f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x7e, 0x67, 0xf1, 0xc1, 0xb8, 0x30, 0x1b, 0x44, 0x0b, 0xe2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x6b, 0x4c, 0x8b, 0x0f, 0xf9, 0xda, 0x41, 0xb4, 0xb0, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0x87, 0x16, 0x1f, 0x14, 0x87, 0x1a, 0xc7, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x1b, 0x52, 0x8b, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x79, 0xb5, 0x78, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xeb, 0x5c, 0x8b, 0x0f, 0xa9, 0x83, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x33, 0x62, 0x8b, 0x0f, 0x02, 0x13, 0x7b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xe8, 0xd9, 0xe2, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xa8, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xe8, 0xb6, 0xf8, 0x90, 0xec, 0x18, 0x44, 0x0b, 0xe2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xab, 0x8b, 0x8b, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x11, 0xb9, 0x78, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x8b, 0x96, 0x8b, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0x37, 0x17, 0x1f, 0xb4, 0x39, 0x35, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x43, 0x17, 0x1f, 0x52, 0x07, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x6f, 0xba, 0xf8, 0xd0, 0x9f, 0xfc, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x93, 0x75, 0xf1, 0x21, 0x31, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x48, 0x76, 0xf1, 0x21, 0x55, 0x33, 0x88, 0x16, 0x76, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x36, 0xdd, 0xe2, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x21, 0xbd, 0xc5, 0x07, 0x6d, 0x4e, 0x8d, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xe5, 0xbf, 0xc5, 0x87, 0xd4, 0xc1, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x14, 0x2e, 0x3e, 0xb4, 0x12, 0x3f, 0x0e, 0x1d, 0x8f, 0x8f, 0x6f, 0xc7, 0xe3, 0x05, 0xc1, 0xe2, 0x06, 0x6f, 0x5d, 0x30, 0x3e, 0x88, 0xd9, 0xf8, 0x8c, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb1, 0xf8, 0xc5, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0xd5, 0x17, 0x0f, 0xbb, 0x70, 0x8b, 0x07, 0x4f, 0x04, 0x30, 0x3e, 0x44, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xcb, 0xf6, 0x8b, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xc2, 0xbf, 0x78, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x38, 0xff, 0xd6, 0xd8, 0x20, 0xce, 0xbf, 0x35, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0x20, 0xfe, 0xc0, 0x35, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x0f, 0x30, 0x1e, 0x04, 0x1b, 0x3c, 0xd7, 0x21, 0xe9, 0xd0, 0x41, 0x63, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x44, 0x03, 0xe3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x49, 0x30, 0x1e, 0x76, 0xe1, 0x36, 0x44, 0x73, 0x3c, 0x78, 0xeb, 0x82, 0xf1, 0x06, 0xd1, 0x64, 0xae, 0x71, 0x38, 0xc5, 0x06, 0xd9, 0x06, 0xb1, 0x4a, 0xae, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x46, 0x83, 0xf1, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0x32, 0x60, 0xfc, 0x55, 0x1d, 0x8f, 0x0f, 0x1d, 0x34, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x83, 0x60, 0x71, 0x66, 0x66, 0x0e, 0x1e, 0x2f, 0x51, 0xb1, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xdd, 0xe5, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xda, 0x95, 0xe3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xaa, 0x39, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x32, 0xe6, 0x78, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x2b, 0x70, 0x8e, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xec, 0x39, 0x3e, 0x1c, 0xed, 0x83, 0x6c, 0x83, 0x38, 0x53, 0xd7, 0x18, 0x64, 0x1b, 0xc4, 0xc6, 0xba, 0xc6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0x0d, 0x1d, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x04, 0x74, 0x3c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x35, 0x46, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0x2e, 0x1d, 0x1f, 0x8e, 0xf6, 0x41, 0xb6, 0x41, 0x9c, 0xa9, 0x6b, 0x0c, 0xb2, 0x0d, 0x62, 0x63, 0x5d, 0x63, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x63, 0xa6, 0x8e, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x73, 0x3a, 0x1e, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xbe, 0xea, 0xf8, 0xe0, 0x2d, 0x4a, 0x59, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x8c, 0x75, 0x7c, 0xf0, 0x52, 0xb1, 0x85, 0xe3, 0xd0, 0xa1, 0x13, 0xd1, 0x20, 0xdb, 0x20, 0xce, 0xd4, 0x35, 0x06, 0xd9, 0x06, 0xb1, 0xb1, 0xae, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa5, 0x61, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0x72, 0x1d, 0x0f, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x46, 0x76, 0x7c, 0xf0, 0x46, 0x80, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x39, 0x3b, 0x3e, 0x78, 0x48, 0xcc, 0xd4, 0x71, 0xe8, 0x60, 0x09, 0xff, 0xcf, 0x20, 0xdb, 0x20, 0xce, 0xd4, 0x35, 0x06, 0xd9, 0x06, 0xb1, 0xb1, 0xae, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x71, 0x71, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0xb0, 0x1d, 0x0f, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x43, 0x77, 0x7c, 0xf0, 0xaa, 0x26, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xdf, 0xee, 0xf8, 0xe0, 0xb8, 0xd7, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xab, 0xf3, 0x8e, 0x07, 0xc9, 0x80, 0x48, 0xb5, 0xfb, 0x3a, 0x1e, 0x1f, 0x87, 0x0e, 0xde, 0x73, 0x98, 0x31, 0xc8, 0x36, 0x88, 0x33, 0x75, 0x8d, 0x41, 0xb6, 0x41, 0x6c, 0xac, 0x6b, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x25, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x50, 0xdf, 0xf1, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0x32, 0x20, 0xe8, 0xab, 0x8e, 0xc7, 0x07, 0x8d, 0x4e, 0x28, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x04, 0x8b, 0x1b, 0x3c, 0x11, 0xc0, 0xf8, 0x20, 0x00, 0xee, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0x30, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x8f, 0x78, 0x3c, 0xec, 0xc2, 0x6d, 0x10, 0x4d, 0xe6, 0x1a, 0x87, 0x68, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xb9, 0xe3, 0xf1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x46, 0x1e, 0x1f, 0x44, 0x7e, 0xb9, 0xc6, 0x20, 0xdb, 0x20, 0xb2, 0x17, 0x36, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0xa3, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x48, 0x06, 0xd6, 0xbe, 0x8e, 0xc7, 0x87, 0x0e, 0x1a, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0x62, 0x1e, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xda, 0xe6, 0xf1, 0x41, 0x34, 0x87, 0x6b, 0x0c, 0xb2, 0x0d, 0x22, 0xf4, 0x61, 0x63, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x1c, 0xcf, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x64, 0xe0, 0xbd, 0xaf, 0xe3, 0xf1, 0xa1, 0x83, 0xc6, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x41, 0xb0, 0xc1, 0xc8, 0x7f, 0x58, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x9e, 0x7a, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x20, 0xeb, 0xf1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0xbc, 0x1e, 0x1f, 0x9a, 0x45, 0x0e, 0xb2, 0x0d, 0x22, 0x9f, 0x62, 0x63, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xf0, 0xd8, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x07, 0xcf, 0xf0, 0x0e, 0x38, 0x74, 0xd0, 0x38, 0x34, 0x7f, 0x39, 0x1e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xfa, 0x7b, 0x3c, 0x08, 0x36, 0x78, 0xd8, 0x5e, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x8f, 0x07, 0x8f, 0x10, 0x3e, 0x3e, 0xa4, 0x6a, 0x8e, 0x43, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x41, 0xb0, 0xc1, 0xa3, 0x17, 0x96, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0x1b, 0x1f, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x35, 0xf3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x95, 0xc9, 0xc7, 0x07, 0x0f, 0x05, 0xb6, 0x1a, 0x64, 0x1b, 0x44, 0x1c, 0xc7, 0xc6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x4b, 0x1f, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xfa, 0x7c, 0x7c, 0x10, 0xcd, 0x77, 0x16, 0x83, 0x6c, 0x83, 0x88, 0xe3, 0xd8, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x1f, 0xfb, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xe2, 0xea, 0xe3, 0x41, 0xb0, 0xc1, 0xc3, 0xf6, 0x7a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x3c, 0x4c, 0xfd, 0xe2, 0xd0, 0x31, 0xec, 0x38, 0x74, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x0a, 0xef, 0xe3, 0x41, 0xb0, 0xc1, 0xc3, 0xf6, 0x7a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x3c, 0x78, 0x22, 0xf8, 0xf1, 0x21, 0x55, 0x73, 0x1c, 0x3a, 0x34, 0x7f, 0x39, 0x1e, 0xaf, 0x20, 0x58, 0xdc, 0xe0, 0x71, 0x00, 0xc8, 0x07, 0x01, 0x70, 0xbf, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x94, 0xfc, 0x78, 0xd8, 0x0d, 0xde, 0x9b, 0x0e, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x3d, 0xe7, 0xc7, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x9e, 0x7e, 0x3c, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0xdb, 0xd3, 0x81, 0x36, 0x78, 0x7b, 0x3a, 0xd0, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0x44, 0x5b, 0xca, 0xc6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa9, 0xec, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc9, 0x80, 0xf9, 0x6a, 0xf7, 0x75, 0x3c, 0x3e, 0x74, 0xd0, 0x18, 0x76, 0x83, 0x07, 0x6d, 0x0d, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xfe, 0xfb, 0xf1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0xca, 0x1f, 0x1f, 0xbc, 0x34, 0x6c, 0x68, 0x90, 0x6d, 0x10, 0x79, 0x2e, 0x1b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0xe2, 0x1f, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x56, 0x7f, 0x7c, 0x18, 0x97, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xb3, 0xf6, 0x8f, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xc0, 0xff, 0x78, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0xf1, 0xe0, 0x71, 0x00, 0xc8, 0x1b, 0x44, 0xf0, 0xcc, 0xc6, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0xc4, 0x87, 0xcc, 0xc6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0x18, 0x20, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x2c, 0x80, 0x3c, 0x08, 0x36, 0x88, 0x4f, 0x15, 0x8d, 0x43, 0x53, 0xa0, 0x41, 0xb6, 0x41, 0x7c, 0xc8, 0x6c, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xc1, 0x80, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x35, 0x02, 0xf2, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x83, 0x77, 0x18, 0x10, 0x1d, 0x5a, 0x80, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x04, 0x1b, 0x3c, 0x5b, 0xa2, 0x62, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xe7, 0x0a, 0xf2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x65, 0x28, 0xc8, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x24, 0x83, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x91, 0x0b, 0xf2, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x11, 0x35, 0xc8, 0x07, 0xef, 0x47, 0x28, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x90, 0xfa, 0x8f, 0xb1, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xfa, 0x06, 0xf9, 0xe0, 0xb5, 0x6a, 0x57, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xd0, 0x21, 0x0d, 0x37, 0xc8, 0x36, 0x88, 0x4c, 0x9d, 0x8d, 0x41, 0xb6, 0x41, 0x34, 0xed, 0x6c, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x77, 0x0f, 0xf2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x9d, 0x3a, 0xc8, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0x02, 0x21, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x1a, 0x42, 0x3e, 0x48, 0x91, 0xf1, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x4b, 0x8c, 0x90, 0x07, 0xc9, 0xc0, 0xfb, 0x55, 0xc7, 0xe3, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xb0, 0x84, 0x3c, 0x48, 0x06, 0x8c, 0xfe, 0xaa, 0xe3, 0xf1, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xe3, 0x9f, 0x90, 0x07, 0xc9, 0x80, 0xe2, 0xee, 0xeb, 0x78, 0x7c, 0x1c, 0x3a, 0x34, 0x05, 0x1a, 0x64, 0x1b, 0x44, 0xa6, 0xce, 0xc6, 0x20, 0xdb, 0x20, 0x9a, 0x76, 0x36, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0xc1, 0x42, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x8e, 0x0a, 0x79, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x19, 0x98, 0xba, 0xe3, 0xf1, 0xa1, 0x05, 0xd8, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x5b, 0xbb, 0x90, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x5e, 0x86, 0x3c, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x15, 0x0d, 0x79, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xc6, 0x35, 0xe4, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x72, 0x43, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x10, 0x87, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xfa, 0x1c, 0xf2, 0xf0, 0x0b, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa9, 0x76, 0xc8, 0x07, 0xad, 0x51, 0xf4, 0x1f, 0xdf, 0x8e, 0x6f, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0xe5, 0x21, 0x0f, 0x82, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xfb, 0xf7, 0x90, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x0a, 0x44, 0x1e, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x03, 0x08, 0x91, 0x87, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x56, 0x43, 0xe4, 0x43, 0xaa, 0x66, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xae, 0x44, 0xe4, 0x83, 0xc0, 0xc4, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x0a, 0x46, 0xe4, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xe5, 0x23, 0xf2, 0x21, 0x75, 0x30, 0xfc, 0x06, 0x8d, 0x64, 0x3d, 0x0d, 0xbf, 0xc1, 0x60, 0x07, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x4a, 0x12, 0x79, 0x10, 0x2c, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x4f, 0x89, 0x3c, 0xec, 0x06, 0x63, 0x93, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x7b, 0x30, 0x91, 0x0f, 0xa9, 0x83, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xe3, 0x35, 0x91, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0x60, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xd2, 0x29, 0xf2, 0x61, 0xed, 0x77, 0x10, 0x2d, 0xec, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x75, 0x9e, 0xc8, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x12, 0x8a, 0x7c, 0x88, 0xff, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xfd, 0xa3, 0xc8, 0x87, 0xd4, 0xc1, 0xf1, 0xf8, 0xf8, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x89, 0x2a, 0xf2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x9a, 0x58, 0xe4, 0x43, 0xaa, 0x66, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xf2, 0x59, 0xe4, 0xe1, 0x17, 0x44, 0x0b, 0xe6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0xdc, 0x22, 0x0f, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x72, 0x2e, 0xf2, 0x61, 0xaf, 0xf0, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x1e, 0x2f, 0xf2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xba, 0x5f, 0xe4, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x25, 0xc2, 0xc8, 0x83, 0x64, 0x20, 0xbf, 0x77, 0x70, 0xf6, 0x32, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xac, 0x62, 0xe4, 0xc3, 0x5e, 0xe1, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x0c, 0x64, 0xe4, 0x41, 0xb0, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xae, 0x32, 0xf2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x15, 0xd0, 0xc8, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xaf, 0x34, 0xf2, 0x70, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x56, 0x8d, 0x7c, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x05, 0xd8, 0xc8, 0x87, 0xd4, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0x6b, 0x23, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xf3, 0x46, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x88, 0x70, 0xe4, 0x43, 0xaa, 0x66, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xe4, 0x71, 0xe4, 0x83, 0xc0, 0xc4, 0x3e, 0xac, 0xd0, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x69, 0x8e, 0x3c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x50, 0x47, 0x3e, 0x08, 0x4c, 0xec, 0xe1, 0x37, 0x68, 0xc8, 0xe3, 0x69, 0xf8, 0x0d, 0x06, 0x3b, 0xc0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xc9, 0xec, 0xc8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x10, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x03, 0x8f, 0xbc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xe9, 0xf2, 0xc8, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x43, 0xeb, 0x91, 0x0f, 0x7b, 0x85, 0x83, 0x68, 0x61, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xc7, 0x47, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xb9, 0x8f, 0x3c, 0x48, 0x06, 0xd2, 0x2b, 0x07, 0x07, 0x8a, 0xe4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xf2, 0x47, 0x3e, 0xa4, 0x6a, 0x8e, 0x43, 0xc7, 0xf3, 0xe3, 0xdb, 0xf1, 0xed, 0x78, 0xbc, 0x20, 0x58, 0x9c, 0x99, 0x59, 0x83, 0x28, 0x4e, 0xd7, 0x68, 0x0d, 0x5e, 0x3d, 0x94, 0xdc, 0x86, 0x53, 0x6c, 0x35, 0x78, 0xa4, 0x02, 0x5f, 0x1b, 0x2c, 0xdf, 0x9d, 0x3e, 0x48, 0x38, 0x8c, 0x3d, 0x28, 0xaa, 0x05, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0x0d, 0x24, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x59, 0x42, 0xf2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xe1, 0x05, 0xc9, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x30, 0x24, 0x1f, 0xbc, 0xaa, 0x49, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x77, 0x48, 0x3e, 0x78, 0x75, 0xb8, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x8d, 0x48, 0x1e, 0x24, 0x03, 0x8a, 0xea, 0xaa, 0xe3, 0xf1, 0x71, 0xe8, 0x90, 0x86, 0x1b, 0x64, 0x1b, 0x44, 0xf8, 0xe0, 0xc6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x70, 0x24, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x52, 0x91, 0x3c, 0x08, 0x36, 0x78, 0x37, 0xb0, 0xd5, 0xa1, 0x29, 0xd0, 0x20, 0xdb, 0x20, 0xc2, 0x07, 0x37, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x43, 0x24, 0x79, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x72, 0x8f, 0xe4, 0x41, 0xb0, 0xc1, 0xd3, 0xd1, 0xb9, 0x0e, 0x9d, 0x88, 0x06, 0xd9, 0x06, 0x11, 0x3e, 0xb8, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x29, 0x28, 0xc9, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0x93, 0x24, 0x0f, 0x82, 0x0d, 0x1e, 0x16, 0xce, 0x75, 0xb0, 0x84, 0xff, 0x67, 0x90, 0x6d, 0x10, 0xe1, 0x83, 0x1b, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xe3, 0x92, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xbf, 0x4a, 0xf2, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0x32, 0xe0, 0xf0, 0x5f, 0x75, 0x3c, 0x3e, 0x78, 0xcf, 0x61, 0xc6, 0x20, 0xdb, 0x20, 0xc2, 0x07, 0x37, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x97, 0x26, 0x79, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xbe, 0x98, 0xe4, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0xd5, 0x49, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xee, 0x26, 0x79, 0xd8, 0x85, 0x5b, 0x3c, 0x78, 0xfb, 0x4f, 0xf2, 0x04, 0xc5, 0x77, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xeb, 0x7a, 0x92, 0x87, 0x5d, 0xb8, 0x0d, 0xe2, 0x11, 0x73, 0xe3, 0x20, 0x7a, 0x30, 0x37, 0x36, 0x88, 0x1e, 0xcc, 0x8d, 0xc3, 0x29, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x56, 0x50, 0xf2, 0xb0, 0x0b, 0xb7, 0x41, 0x3c, 0x62, 0x6e, 0x8c, 0x07, 0xaf, 0x1e, 0x4a, 0xde, 0x20, 0xae, 0x37, 0x37, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0x20, 0xae, 0x2a, 0x37, 0x06, 0xd9, 0x06, 0xb1, 0x60, 0xb9, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x1a, 0x52, 0xf2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x21, 0x45, 0xc9, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0x2c, 0x25, 0x1f, 0xbc, 0x28, 0x84, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xf3, 0x9b, 0x92, 0x0f, 0x5e, 0x1d, 0x2e, 0x74, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x4e, 0x70, 0x7d, 0x1f, 0x87, 0x06, 0xd9, 0x06, 0x11, 0x3e, 0xb8, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x21, 0x54, 0xc9, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0x43, 0x25, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x83, 0x56, 0xf2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd5, 0x56, 0xc9, 0xc3, 0x6f, 0x48, 0x2e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xcc, 0x95, 0x7c, 0x50, 0xd8, 0xe1, 0x0c, 0xb2, 0x0d, 0xa2, 0x65, 0x74, 0x63, 0x90, 0x6d, 0x10, 0xe1, 0xa3, 0x1b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0x8b, 0x25, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xf9, 0x95, 0x3c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x8d, 0x65, 0xc9, 0x63, 0x60, 0x80, 0x1a, 0x0e, 0xb2, 0x0d, 0x22, 0x7c, 0x70, 0x63, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x9b, 0xd8, 0x92, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x48, 0x4b, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x84, 0xba, 0xe4, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x03, 0xde, 0x92, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xf8, 0x2e, 0x79, 0xd8, 0x85, 0x5b, 0x82, 0xc5, 0xdf, 0xf1, 0xe0, 0x91, 0x0a, 0x7c, 0x1b, 0x44, 0xb8, 0xeb, 0xc6, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0xc4, 0x1e, 0xeb, 0xc6, 0x20, 0xdb, 0x20, 0x5e, 0x5a, 0x37, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xdb, 0x4b, 0x1e, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xc4, 0x2f, 0xf9, 0xe0, 0xfd, 0x08, 0x25, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x0e, 0x98, 0x3c, 0x48, 0x06, 0x7a, 0x57, 0x1d, 0x8f, 0x8f, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x09, 0x3a, 0x7f, 0x1f, 0x87, 0x06, 0xd9, 0x06, 0xf1, 0xb0, 0xba, 0x31, 0xc8, 0x36, 0x88, 0xe1, 0xd5, 0x8d, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x52, 0x4c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x8b, 0x30, 0x79, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x23, 0x1a, 0x93, 0x87, 0x5d, 0xb8, 0x25, 0x68, 0xfa, 0x7b, 0xf0, 0x34, 0x89, 0xa0, 0x83, 0xe8, 0x99, 0xb4, 0x18, 0x64, 0x1b, 0xc4, 0x84, 0xed, 0xc6, 0x20, 0xdb, 0x20, 0x8e, 0x6d, 0x37, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x7f, 0x4c, 0x1e, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x55, 0x32, 0xf9, 0xe0, 0xfd, 0x08, 0x25, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x56, 0x99, 0x7c, 0x10, 0xeb, 0xb3, 0x1b, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x04, 0x5f, 0x7f, 0x1f, 0x87, 0x06, 0xd9, 0x06, 0xf1, 0xb0, 0xba, 0x31, 0xc8, 0x36, 0x88, 0xe1, 0xd5, 0x8d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xab, 0x3e, 0x93, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0xc2, 0x4c, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x06, 0xd1, 0xe4, 0x61, 0x17, 0x6e, 0x09, 0xda, 0xfe, 0x1e, 0x3c, 0x4a, 0x1f, 0x68, 0x83, 0x47, 0xe9, 0x03, 0x1d, 0x4e, 0xb1, 0x41, 0xb6, 0x41, 0x3c, 0xfd, 0x6e, 0x0c, 0xb2, 0x0d, 0x62, 0x00, 0x78, 0x63, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xce, 0xd2, 0xe4, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xc3, 0x50, 0x93, 0x0f, 0xde, 0x8f, 0x50, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x21, 0xab, 0xc9, 0x07, 0xb1, 0x3e, 0xbb, 0x71, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x4e, 0xf0, 0xf7, 0xf7, 0x71, 0x68, 0x90, 0x6d, 0x10, 0xe1, 0x83, 0x1b, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x6f, 0x9b, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x84, 0x6b, 0xf2, 0x20, 0xd8, 0x20, 0x16, 0x82, 0x34, 0x0e, 0x5e, 0xee, 0xc8, 0x34, 0xc8, 0x36, 0x88, 0xf0, 0xc1, 0x8d, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0xe8, 0x4d, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x38, 0x37, 0x79, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0xc1, 0x9a, 0x72, 0xb4, 0x83, 0x38, 0xf0, 0xd1, 0x18, 0x64, 0x1b, 0x44, 0xf8, 0xe0, 0xc6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0x21, 0x27, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x18, 0x9c, 0x3c, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xc8, 0x72, 0xf2, 0xc1, 0xab, 0x9a, 0x84, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xf0, 0xe6, 0xe4, 0x83, 0x57, 0x87, 0x0b, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x58, 0xe8, 0xe4, 0x41, 0x32, 0x60, 0x58, 0x57, 0x1d, 0x8f, 0x8f, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x09, 0xde, 0xff, 0x3e, 0x0e, 0x0d, 0xb2, 0x0d, 0x22, 0x7c, 0x70, 0x63, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x18, 0xee, 0xe4, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x3b, 0xa8, 0x93, 0x87, 0xdf, 0x90, 0x5c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xdd, 0x3b, 0x79, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x76, 0xf5, 0xe4, 0x83, 0xf7, 0x09, 0xe8, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x04, 0x1b, 0x8c, 0xfc, 0x87, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x91, 0x11, 0xca, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x8b, 0xa1, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x09, 0x85, 0xf2, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0x32, 0x20, 0xd1, 0xee, 0xeb, 0x78, 0x7c, 0x48, 0xc3, 0x0d, 0xb2, 0x0d, 0xa2, 0x19, 0x7b, 0x63, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x5b, 0x43, 0x94, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xea, 0x50, 0x1e, 0x04, 0x1b, 0x44, 0xbb, 0xf6, 0xc6, 0xa1, 0x29, 0xd0, 0x20, 0xdb, 0x20, 0x9a, 0xb1, 0x37, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x44, 0x51, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x90, 0x44, 0x79, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xaa, 0x15, 0xe5, 0x83, 0x57, 0x35, 0x09, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x15, 0x2e, 0xca, 0x07, 0x11, 0xb3, 0xbd, 0x31, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xdb, 0x61, 0x94, 0x0f, 0x5e, 0xbd, 0x28, 0x70, 0x1c, 0x3a, 0xb4, 0x00, 0x3b, 0x34, 0x7f, 0x39, 0x1e, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x44, 0x8d, 0xf2, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0xe0, 0x28, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xae, 0xa3, 0xbc, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x39, 0x3e, 0xca, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0x03, 0x29, 0x2f, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x1a, 0x91, 0xf2, 0x21, 0x86, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xb8, 0xa4, 0x7c, 0x88, 0xe1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0x4a, 0x29, 0x1f, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x2f, 0x97, 0xf2, 0x21, 0x86, 0xc7, 0xe3, 0x15, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xbd, 0x4c, 0x79, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x52, 0x34, 0xe5, 0xc5, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x61, 0x53, 0x1e, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xbb, 0x9d, 0xf2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb1, 0x79, 0xca, 0x87, 0x15, 0xda, 0xe3, 0xf1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0xf6, 0x29, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x0f, 0x51, 0x79, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xa0, 0x45, 0xe5, 0xc3, 0x0a, 0xed, 0xf1, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x60, 0x47, 0xe5, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xad, 0xa8, 0xf2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x7d, 0xa5, 0xca, 0x87, 0x15, 0xda, 0xe3, 0xf1, 0xf1, 0x78, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xd3, 0x52, 0x95, 0x07, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x75, 0xbd, 0xca, 0x87, 0x18, 0x1e, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x46, 0x56, 0x1e, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0x70, 0x2b, 0x1f, 0x62, 0x78, 0x3c, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x22, 0x71, 0xe5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xfb, 0xc9, 0x95, 0x17, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x13, 0x5d, 0x79, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa9, 0xf4, 0xca, 0x87, 0x18, 0x1e, 0x8f, 0x57, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x26, 0x80, 0xe5, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xf3, 0xc4, 0xf2, 0x21, 0x86, 0xc7, 0xe3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xce, 0x58, 0x1e, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x3f, 0xc9, 0xf2, 0x21, 0x86, 0xc7, 0xe3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x59, 0x59, 0x1e, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0xfb, 0x2c, 0x1f, 0x62, 0x78, 0x3c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x4e, 0x69, 0x79, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x3d, 0x56, 0xcb, 0x87, 0x18, 0x1e, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xe5, 0x5a, 0x1e, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0xc3, 0x2d, 0x1f, 0x62, 0x78, 0x3c, 0x3e, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x77, 0xb7, 0x3c, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x5c, 0x5c, 0x3e, 0xc4, 0xf0, 0x78, 0x7c, 0x3c, 0x3e, 0x34, 0x7f, 0x39, 0x1e, 0x2f, 0x08, 0x36, 0x28, 0xa8, 0xc5, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0x5f, 0x2e, 0x0f, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xa9, 0xb9, 0x3c, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0x78, 0x2e, 0x0f, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xe9, 0xa1, 0xcb, 0x83, 0x64, 0x20, 0xfd, 0x77, 0x3c, 0x3f, 0x38, 0xfc, 0xda, 0x1e, 0x24, 0xff, 0x46, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x4a, 0xe9, 0xf2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xf6, 0xd3, 0xe5, 0x83, 0x97, 0x68, 0x94, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xad, 0xaa, 0xcb, 0x07, 0x4b, 0xd5, 0x7d, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x5c, 0xeb, 0xf2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x1a, 0xd8, 0xe5, 0x83, 0xf7, 0x23, 0x94, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xbf, 0xec, 0xf2, 0xf0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x5c, 0xbb, 0x7c, 0x50, 0x22, 0x39, 0x1d, 0xdf, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0xa1, 0x51, 0xcb, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x10, 0x6c, 0x50, 0x40, 0x0b, 0x2e, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x13, 0x5f, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xe6, 0x7b, 0x79, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xa3, 0xd0, 0x97, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x28, 0x5f, 0x1e, 0x04, 0x1b, 0xc4, 0xa7, 0x8a, 0xc6, 0x21, 0x0d, 0x37, 0xc8, 0x36, 0x88, 0xd1, 0x0c, 0x8e, 0x41, 0xb6, 0x41, 0x5c, 0x69, 0x70, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xd4, 0xfb, 0xf2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x29, 0xeb, 0xcb, 0x07, 0xb1, 0x65, 0xb3, 0x31, 0xc8, 0x36, 0x88, 0xd1, 0x0c, 0x8e, 0x41, 0xb6, 0x41, 0x5c, 0x69, 0x70, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xc5, 0xfd, 0xf2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x29, 0xf2, 0xcb, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0xe7, 0x2f, 0x1f, 0xbc, 0x45, 0x29, 0x6b, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x95, 0x7f, 0x79, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x5b, 0x05, 0x98, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0xfb, 0x5f, 0x3e, 0x88, 0x2c, 0x0e, 0x8e, 0x41, 0xb6, 0x41, 0x1c, 0x91, 0x70, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x8d, 0xc0, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x62, 0x01, 0xf3, 0x61, 0x5c, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc7, 0xa1, 0x43, 0x27, 0xa2, 0x41, 0xb6, 0x41, 0x8c, 0x66, 0x70, 0x0c, 0xb2, 0x0d, 0xe2, 0x4a, 0x83, 0x63, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x5b, 0x20, 0x98, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x5d, 0x60, 0x1e, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x5e, 0x82, 0xf9, 0xe0, 0x55, 0x4d, 0x42, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x6c, 0x05, 0xf3, 0xc1, 0x71, 0xaf, 0x77, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x62, 0x30, 0x0f, 0x92, 0x01, 0xc7, 0xfb, 0xaa, 0xe3, 0xf1, 0x71, 0xe8, 0x60, 0x09, 0xff, 0xcf, 0x20, 0xdb, 0x20, 0x46, 0x33, 0x38, 0x06, 0xd9, 0x06, 0x71, 0xa5, 0xc1, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xcc, 0x07, 0xf3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf9, 0x1b, 0xcc, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0x87, 0x30, 0x1f, 0xbc, 0x28, 0x84, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x5b, 0x49, 0x98, 0x0f, 0x8e, 0x7b, 0xbd, 0xc7, 0xa1, 0x83, 0x22, 0x78, 0xf0, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x9e, 0xc2, 0xbc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xbd, 0x2f, 0xcc, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0xb2, 0x30, 0x1f, 0x44, 0x16, 0x07, 0xc7, 0x20, 0xdb, 0x20, 0x2a, 0x6d, 0x38, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0xae, 0x61, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x52, 0x86, 0x79, 0x10, 0x6c, 0x10, 0xed, 0xda, 0x1b, 0x87, 0x0e, 0x1a, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x15, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x4e, 0x87, 0x79, 0x10, 0x6c, 0x70, 0x6e, 0x73, 0x5e, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x1b, 0x88, 0x79, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x28, 0x23, 0xe6, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x47, 0x62, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xda, 0x25, 0xe6, 0x83, 0xf1, 0xd3, 0xb5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x01, 0x4f, 0xcc, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x1c, 0xc5, 0xbc, 0x41, 0x41, 0x9a, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x27, 0x15, 0xf3, 0xe1, 0x68, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xac, 0x2b, 0xe6, 0x83, 0xb7, 0x37, 0x04, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xc1, 0x16, 0xf3, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xe0, 0x2e, 0xe6, 0x83, 0x85, 0x6b, 0xfd, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x25, 0x18, 0xf3, 0x41, 0x41, 0x9a, 0x38, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xcb, 0xc6, 0x98, 0x0f, 0x86, 0x66, 0xd7, 0x71, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x83, 0xcd, 0x98, 0xc7, 0x83, 0x87, 0xf9, 0xdf, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x9b, 0x1a, 0xf3, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x94, 0x36, 0xe6, 0x83, 0x85, 0x6b, 0xfd, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xff, 0x1b, 0xf3, 0x41, 0x41, 0x9a, 0x38, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x9b, 0xe5, 0x98, 0x0f, 0x86, 0x17, 0xc5, 0x71, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x53, 0xec, 0x98, 0xc7, 0x83, 0xf7, 0xe2, 0x31, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xa0, 0xc7, 0x3c, 0xec, 0x06, 0x6f, 0xad, 0x7d, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xae, 0x3e, 0xe6, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x00, 0x64, 0x3e, 0x78, 0xe4, 0x3d, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x61, 0x83, 0xcc, 0x07, 0x41, 0xe9, 0x3d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x8e, 0x21, 0xf3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0x23, 0x32, 0x1f, 0x7a, 0xec, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x2f, 0x23, 0xf3, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xbe, 0x47, 0xe6, 0x83, 0x85, 0x6b, 0xfd, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x94, 0x24, 0xf3, 0x41, 0x41, 0x9a, 0x38, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x43, 0x2a, 0x99, 0x0f, 0xc6, 0x9a, 0xca, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x7e, 0x4c, 0xe6, 0x83, 0xa0, 0xf4, 0x3e, 0x1e, 0x0f, 0x82, 0xc5, 0x0d, 0x22, 0x93, 0x00, 0xe3, 0x70, 0x8a, 0x2d, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xef, 0x64, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x44, 0x50, 0xe6, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x64, 0x60, 0xad, 0xea, 0x78, 0x7c, 0x48, 0xc3, 0x0d, 0xb2, 0x0d, 0x62, 0x52, 0x8b, 0x63, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x4b, 0x4e, 0x99, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x1f, 0x65, 0x3e, 0x88, 0xd4, 0xee, 0x8d, 0x41, 0xb6, 0x41, 0x4c, 0x6a, 0x71, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xd3, 0xca, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x7f, 0x2a, 0xf3, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x83, 0x57, 0x2f, 0x0a, 0x1c, 0x5a, 0x80, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x04, 0x1b, 0x14, 0xe4, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x6b, 0xdb, 0x99, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x09, 0x9e, 0x79, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x19, 0x90, 0x6e, 0xf7, 0x75, 0x3c, 0x3e, 0xa4, 0xe1, 0x06, 0xd9, 0x06, 0xf1, 0x28, 0xc6, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf1, 0xf6, 0xcc, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0xce, 0x33, 0x1f, 0x0c, 0x2f, 0xde, 0x41, 0xb6, 0x41, 0x3c, 0x8a, 0x71, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x33, 0x3f, 0xf3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x9d, 0xf9, 0xcc, 0x07, 0xef, 0xf1, 0xca, 0x18, 0x64, 0x1b, 0xc4, 0xa3, 0x18, 0xc7, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0x0a, 0x34, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xf7, 0xcf, 0x3c, 0x08, 0x36, 0x78, 0xd8, 0x5e, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x8f, 0x81, 0x57, 0x27, 0x36, 0x1c, 0x84, 0x3d, 0xf5, 0x71, 0x68, 0x90, 0x6d, 0x10, 0x8f, 0x62, 0x1c, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x8c, 0xd0, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x63, 0x41, 0xf3, 0x20, 0xd8, 0xe0, 0x61, 0x7b, 0x3d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x22, 0x74, 0x8d, 0xe3, 0x20, 0x69, 0x00, 0xe1, 0x38, 0x34, 0xc8, 0x36, 0x88, 0x47, 0x31, 0x8e, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x77, 0x68, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x74, 0xa1, 0x79, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xd2, 0x88, 0xe6, 0x83, 0xf7, 0x23, 0x94, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x19, 0x45, 0xf3, 0x41, 0x1c, 0x39, 0x5f, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x8f, 0x43, 0x07, 0x0f, 0xf1, 0xcc, 0x18, 0x64, 0x1b, 0xc4, 0xa3, 0x18, 0xc7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x81, 0x1a, 0xcd, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0x5d, 0x34, 0x0f, 0x82, 0x0d, 0x1e, 0xb6, 0xd7, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xe3, 0xc1, 0xeb, 0x39, 0x9a, 0x0f, 0x56, 0xf8, 0x64, 0x1d, 0x87, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x2b, 0x08, 0x16, 0x0f, 0xa2, 0x35, 0x70, 0x63, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xe7, 0x4b, 0xf3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0xd5, 0x34, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x22, 0xd3, 0x3c, 0x08, 0x16, 0x7e, 0x43, 0x72, 0xe9, 0xe0, 0xed, 0x28, 0x0a, 0x87, 0x34, 0xdc, 0x20, 0xdb, 0x20, 0x92, 0xf4, 0x38, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xe7, 0x69, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x38, 0xa7, 0x79, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xd8, 0x9f, 0xe6, 0x83, 0x17, 0x85, 0x10, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x9a, 0x50, 0xf3, 0xc1, 0xab, 0xc3, 0x85, 0x8e, 0x43, 0x87, 0x0e, 0x1a, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x05, 0xc1, 0x06, 0x23, 0xff, 0x61, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x25, 0x52, 0xf3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0x39, 0x35, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xb2, 0xd4, 0x3c, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x47, 0x54, 0xf3, 0xc1, 0x8b, 0x42, 0x88, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x7b, 0xaa, 0xf9, 0xe0, 0x71, 0xa5, 0x56, 0xc7, 0xa1, 0x43, 0x1a, 0x6e, 0x90, 0x6d, 0x10, 0x39, 0x83, 0x1c, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x9e, 0xd5, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xad, 0x55, 0xf3, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xad, 0x5c, 0xcd, 0x07, 0xef, 0x47, 0x28, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb4, 0xaf, 0xe6, 0x83, 0xa5, 0xea, 0x3e, 0xc7, 0xa1, 0x43, 0x53, 0xa0, 0x41, 0xb6, 0x41, 0xe4, 0x0c, 0x72, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x54, 0xd6, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x8d, 0x58, 0xf3, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x05, 0x68, 0xcd, 0x07, 0xef, 0x47, 0x28, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x60, 0xb5, 0xe6, 0x83, 0xa3, 0x96, 0xee, 0x71, 0xe8, 0xd0, 0x02, 0xec, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x9d, 0x77, 0xcd, 0x83, 0x60, 0x83, 0x82, 0xdc, 0x70, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x82, 0xbe, 0xe6, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xe3, 0x04, 0x9b, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0x1a, 0x36, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x4a, 0x6c, 0x1e, 0x24, 0x03, 0x82, 0xaf, 0xea, 0x90, 0x5c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x4a, 0xc6, 0xe6, 0x83, 0xf1, 0xd3, 0x75, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xed, 0xb1, 0x79, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xe2, 0x64, 0xf3, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x20, 0xcb, 0xe6, 0x41, 0x32, 0x20, 0xf8, 0xaa, 0x0e, 0x2b, 0xb4, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x91, 0xd9, 0x7c, 0x30, 0x2e, 0xcc, 0x8e, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x6f, 0x36, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x19, 0x6d, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x5f, 0xda, 0x7c, 0xd0, 0x82, 0x49, 0xff, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x16, 0xb5, 0xf9, 0x20, 0x59, 0x03, 0x61, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xc2, 0xd5, 0xe6, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x35, 0xae, 0xcd, 0x83, 0x64, 0xa0, 0x2e, 0x1d, 0x9c, 0x84, 0x8e, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x76, 0xd8, 0xe6, 0x43, 0x2b, 0xf1, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x39, 0xdb, 0x7c, 0x90, 0x90, 0x83, 0x70, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xcf, 0xb6, 0x79, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x4a, 0x6e, 0xf3, 0x41, 0x0c, 0x95, 0x72, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xe1, 0xbb, 0xcd, 0x87, 0xfe, 0xe4, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xd3, 0xb7, 0xf9, 0x60, 0x4c, 0x58, 0x1d, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x0b, 0x6e, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x42, 0xdc, 0x7c, 0x10, 0x43, 0xa5, 0x1c, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xb8, 0x71, 0xf3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x26, 0x37, 0x1f, 0xfa, 0x93, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xc5, 0xdc, 0x3c, 0xcc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x01, 0xcf, 0xcd, 0x87, 0x68, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x78, 0xe9, 0xe6, 0x83, 0x91, 0x65, 0x75, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xae, 0x6e, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x88, 0xdd, 0x7c, 0x10, 0x43, 0xa5, 0x1c, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xd1, 0x76, 0xf3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0x77, 0x37, 0x1f, 0xfa, 0x93, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x0b, 0xde, 0x3c, 0xcc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x65, 0xe3, 0xcd, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x3b, 0xcc, 0x9b, 0x0f, 0xd2, 0x68, 0x17, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x64, 0xf4, 0xe6, 0x43, 0x34, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xe8, 0x7a, 0xf3, 0x41, 0x48, 0x81, 0x1f, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xe7, 0x7b, 0xf3, 0xc1, 0x23, 0x68, 0x2a, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xa1, 0x7c, 0xf3, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xea, 0xfa, 0xe6, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x8d, 0xf8, 0xcd, 0x07, 0x2f, 0x7b, 0xa0, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x9b, 0xf6, 0x9b, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xc0, 0xbf, 0xf9, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x5b, 0x01, 0x9c, 0x0f, 0xd2, 0x56, 0x48, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xdf, 0x80, 0xf3, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x1a, 0x03, 0xe7, 0x41, 0x32, 0xd0, 0xb9, 0xef, 0xe0, 0x98, 0x55, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xfd, 0x08, 0xce, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xf0, 0x05, 0xe7, 0xe1, 0x17, 0x44, 0x0b, 0x3b, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0x3c, 0x38, 0x0f, 0x3d, 0x78, 0x03, 0xf9, 0xcc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0x55, 0x38, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0xbf, 0x70, 0x1e, 0x24, 0x03, 0xc1, 0x3b, 0x38, 0x7b, 0x19, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xc5, 0x1a, 0xce, 0x13, 0x74, 0xdf, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x4d, 0x1e, 0xce, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x13, 0x42, 0x9c, 0x0f, 0xde, 0xc4, 0x0b, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0x8f, 0x38, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xa3, 0x89, 0xf3, 0xa1, 0x3f, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x55, 0x29, 0xce, 0x07, 0xa3, 0xf9, 0x7c, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0xb0, 0x38, 0x1f, 0x52, 0x07, 0xc7, 0xa1, 0xe3, 0xd0, 0x21, 0x75, 0x70, 0x3c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xe1, 0xc5, 0x79, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x9b, 0x8d, 0xf3, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x90, 0x1c, 0xe7, 0x41, 0x32, 0x20, 0xfc, 0x9d, 0x0e, 0xce, 0x5e, 0xc6, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xf6, 0x8e, 0xf3, 0x21, 0x86, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xcf, 0xc7, 0x79, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x7b, 0x82, 0x9c, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x7d, 0xc8, 0xf9, 0xd0, 0x4a, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x4e, 0x23, 0xe7, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xb3, 0x93, 0x9c, 0x0f, 0x31, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x48, 0x26, 0xe7, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x7a, 0x72, 0x3e, 0x1c, 0xed, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x47, 0x39, 0x1f, 0x8c, 0xb1, 0xa7, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0xa5, 0x72, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb6, 0x2b, 0xe7, 0xc3, 0xd1, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x84, 0x96, 0xf3, 0x41, 0xb2, 0x7c, 0xc9, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0x73, 0x39, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xe4, 0x97, 0xf3, 0xa1, 0x3f, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x49, 0x62, 0xce, 0x83, 0x64, 0xc0, 0xba, 0xff, 0xaa, 0x83, 0x80, 0xf7, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x90, 0x32, 0xe7, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x3e, 0x73, 0x3e, 0xb4, 0x12, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x50, 0xcd, 0xf9, 0xb0, 0xf6, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x59, 0x6e, 0xce, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x10, 0xe7, 0x7c, 0x68, 0x25, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xee, 0x9c, 0xf3, 0x21, 0x5f, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x91, 0x77, 0xce, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xa4, 0xe7, 0x7c, 0x90, 0xb6, 0x42, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x40, 0x9f, 0xf3, 0x71, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xb3, 0xff, 0x9c, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x51, 0xd0, 0xf9, 0x70, 0xb4, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x53, 0xe8, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x1c, 0xa2, 0xf3, 0xd0, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x83, 0x16, 0x9d, 0x0f, 0xde, 0x40, 0x3e, 0x73, 0x88, 0xe1, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x0e, 0x47, 0xe7, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xc5, 0x90, 0xce, 0x83, 0x64, 0x20, 0x78, 0x07, 0xa7, 0x33, 0xe4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x6e, 0xd2, 0xf9, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x8b, 0x2c, 0x9d, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0x63, 0x3a, 0x0f, 0x92, 0x81, 0xba, 0x74, 0x70, 0x3a, 0x43, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x73, 0x37, 0x9d, 0x0f, 0x0a, 0x3b, 0x9c, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xe7, 0xe9, 0x7c, 0x48, 0xd5, 0x1c, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xe3, 0x52, 0x9d, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x27, 0x76, 0x3e, 0xc4, 0x70, 0x10, 0x6c, 0xb0, 0x2c, 0x0c, 0x66, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x81, 0xb2, 0xf3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x3f, 0x3b, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xc9, 0xec, 0x7c, 0x10, 0x59, 0x1c, 0x1c, 0x83, 0x6c, 0x83, 0xc8, 0xf8, 0xe7, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xf4, 0x6a, 0xe7, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x53, 0xa5, 0x9d, 0x0f, 0x22, 0xb5, 0x7b, 0x63, 0x90, 0x6d, 0x10, 0x19, 0xff, 0x1c, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xbf, 0xed, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x30, 0xb6, 0xf3, 0x20, 0xd8, 0x20, 0xda, 0xb5, 0x37, 0x0e, 0x9d, 0x88, 0x06, 0xd9, 0x06, 0x91, 0xf1, 0xcf, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x81, 0xb8, 0xf3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd1, 0xde, 0xce, 0x83, 0x60, 0x83, 0xe8, 0x06, 0xe3, 0x38, 0x74, 0x3f, 0x3a, 0x34, 0x7f, 0x39, 0x1e, 0x2f, 0x08, 0x16, 0x0f, 0x52, 0x88, 0x8f, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0xb1, 0x3b, 0x0f, 0xbb, 0x70, 0x8b, 0x81, 0x37, 0xe7, 0x46, 0x1e, 0x52, 0x07, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xf1, 0xee, 0x3c, 0xec, 0xc2, 0x6d, 0x48, 0x1d, 0x1c, 0xc4, 0x85, 0x42, 0xc7, 0x06, 0x71, 0xa1, 0xd0, 0x71, 0x38, 0xc5, 0x86, 0x5d, 0xb8, 0xc5, 0xc0, 0x93, 0x1b, 0xb3, 0x0f, 0xa9, 0x83, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x95, 0x77, 0x1e, 0x76, 0xe1, 0x36, 0xa4, 0x0e, 0x0e, 0xa2, 0x92, 0xa1, 0x63, 0x83, 0xa8, 0x64, 0xe8, 0x38, 0x9c, 0x62, 0xc3, 0x2e, 0xdc, 0x62, 0xe0, 0xbd, 0x91, 0x91, 0x87, 0xd4, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0xd8, 0x3b, 0x0f, 0xbb, 0x70, 0x1b, 0x52, 0x07, 0x07, 0x31, 0xf1, 0xd0, 0xb1, 0x41, 0x4c, 0x3c, 0x74, 0x1c, 0x4e, 0xb1, 0x61, 0x17, 0x6e, 0x31, 0xf0, 0xda, 0xe6, 0xce, 0x43, 0xea, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x13, 0xf2, 0x9d, 0x87, 0x5d, 0xb8, 0x0d, 0xa9, 0x83, 0x83, 0x88, 0x8c, 0xe8, 0xd8, 0x20, 0x22, 0x23, 0x3a, 0x0e, 0xa7, 0xd8, 0xb0, 0x0b, 0xb7, 0x18, 0x78, 0x67, 0x65, 0xf3, 0x21, 0x75, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa1, 0xfc, 0xce, 0xc3, 0x2e, 0xdc, 0x86, 0xd4, 0xc1, 0x41, 0x3c, 0x50, 0x74, 0x6c, 0x10, 0x0f, 0x14, 0x1d, 0x87, 0x53, 0x6c, 0xd8, 0x85, 0x5b, 0x3c, 0x58, 0xc8, 0x0d, 0x7f, 0x48, 0x1d, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x0f, 0xc0, 0xf3, 0xb0, 0x0b, 0xb7, 0x21, 0x75, 0x70, 0x10, 0x8d, 0x16, 0x1d, 0x1b, 0x44, 0xa3, 0x45, 0xc7, 0xe1, 0x14, 0x1b, 0x76, 0xe1, 0x16, 0x0f, 0x9a, 0x3c, 0x14, 0x3b, 0xa4, 0x0e, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x7a, 0xe0, 0x79, 0xd8, 0x85, 0xdb, 0x90, 0x3a, 0x38, 0x88, 0x84, 0x8c, 0x8e, 0x0d, 0x22, 0x21, 0xa3, 0xe3, 0x70, 0x8a, 0x0d, 0xbb, 0x70, 0x8b, 0x81, 0xb7, 0x16, 0x96, 0x1f, 0x52, 0x07, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x77, 0xf0, 0x3c, 0xec, 0xc2, 0x6d, 0x48, 0x1d, 0x1c, 0xc4, 0xe1, 0x46, 0xc7, 0x06, 0x71, 0xb8, 0xd1, 0x71, 0x38, 0xc5, 0x86, 0x5d, 0xb8, 0xc5, 0x83, 0x96, 0x36, 0x4b, 0x0f, 0xa9, 0x83, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x58, 0x78, 0x1e, 0x76, 0xe1, 0x36, 0xa4, 0x0e, 0x0e, 0xa2, 0xc0, 0xa3, 0x63, 0x83, 0x28, 0xf0, 0xe8, 0x38, 0x9c, 0x62, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0x3a, 0x3c, 0x0f, 0xbb, 0x70, 0x1b, 0x52, 0x07, 0x07, 0x91, 0x8b, 0xd0, 0xb1, 0x41, 0xe4, 0x22, 0x74, 0x1c, 0x4e, 0xb1, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0x51, 0x3c, 0x1f, 0x3c, 0x2e, 0x9f, 0xeb, 0xd0, 0xfc, 0xe5, 0x78, 0x3c, 0x08, 0x16, 0x0f, 0xe2, 0x3f, 0x3e, 0x63, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x8d, 0xcf, 0xf3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x3d, 0x2f, 0xcf, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x0d, 0xf4, 0x3c, 0xec, 0x06, 0xcf, 0x3d, 0x0d, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xc6, 0xa1, 0xe7, 0x83, 0x67, 0xdf, 0x75, 0x0d, 0xbb, 0x70, 0x1b, 0xbc, 0x43, 0x93, 0xe9, 0x10, 0xcd, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x32, 0x7a, 0x1e, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0x1d, 0x9a, 0x4c, 0x07, 0x2f, 0x2b, 0x65, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x25, 0xe9, 0x79, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0xf1, 0xe0, 0x21, 0x37, 0xcf, 0x1b, 0x44, 0xe0, 0x4a, 0xc7, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0x44, 0x3a, 0x49, 0xc7, 0x20, 0xdb, 0x20, 0x3a, 0x4b, 0x3a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x86, 0x7a, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x8c, 0xe9, 0xf9, 0xe0, 0x55, 0xff, 0x4b, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x05, 0xc1, 0x06, 0x8f, 0xd2, 0x07, 0x5a, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xc7, 0xf5, 0x3c, 0xec, 0xc2, 0x6d, 0xf0, 0xf6, 0x74, 0xa0, 0x43, 0xea, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x73, 0xbe, 0x9e, 0x87, 0x5d, 0xb8, 0x0d, 0xa9, 0x83, 0x83, 0xb7, 0xa7, 0x03, 0x1d, 0x44, 0xd5, 0xca, 0xc6, 0xb0, 0x0b, 0xb7, 0xc1, 0xe3, 0xb6, 0x86, 0x0e, 0xa9, 0x83, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x10, 0x7b, 0x1e, 0x76, 0xe1, 0x36, 0xa4, 0x0e, 0x0e, 0x1e, 0xb7, 0x35, 0x74, 0xf0, 0x6c, 0xb1, 0xa1, 0x61, 0x17, 0x6e, 0xf1, 0xe0, 0x65, 0x67, 0xcf, 0x87, 0xd4, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x93, 0x3d, 0x0f, 0xbb, 0x70, 0x1b, 0x52, 0x07, 0x07, 0x11, 0x51, 0xd3, 0xb1, 0x41, 0x44, 0xd4, 0x74, 0x1c, 0x4e, 0xb1, 0x61, 0x17, 0x6e, 0xf1, 0xe0, 0xb1, 0x6b, 0xcf, 0x87, 0xd4, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0xa4, 0x3d, 0x0f, 0xbb, 0x70, 0x1b, 0x52, 0x07, 0x07, 0x11, 0x79, 0xd3, 0xb1, 0x41, 0x44, 0xde, 0x74, 0x1c, 0x4e, 0xb1, 0x61, 0x17, 0x6e, 0xf1, 0xa0, 0xe9, 0xc3, 0xee, 0x43, 0xea, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xfb, 0xda, 0x9e, 0x87, 0x5d, 0xb8, 0x0d, 0xa9, 0x83, 0x83, 0x88, 0xd0, 0xe9, 0xd8, 0x20, 0x22, 0x74, 0x3a, 0x0e, 0xa7, 0xd8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x21, 0x71, 0xcf, 0xc3, 0x2e, 0xdc, 0x86, 0xd4, 0xc1, 0xc1, 0xa3, 0xf4, 0x81, 0x0e, 0xa2, 0x3f, 0x78, 0xe3, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0xe1, 0x3d, 0x0f, 0x82, 0x0d, 0x46, 0xfe, 0xc3, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x51, 0x9c, 0xcf, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0x9c, 0x3e, 0x0f, 0xbb, 0x41, 0x90, 0x78, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x8d, 0xea, 0xf3, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0xb3, 0x3e, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xe3, 0xeb, 0xf3, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x18, 0xd9, 0xe7, 0x83, 0xb4, 0x6b, 0xf4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x9b, 0xf6, 0xf9, 0x10, 0xcd, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xe0, 0xed, 0xf3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x31, 0xba, 0xcf, 0x07, 0xc3, 0x8b, 0x62, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0xf3, 0x3e, 0x1f, 0x04, 0xa5, 0xf7, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xd4, 0xdf, 0xe7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x98, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x31, 0xfc, 0x7c, 0x30, 0x4c, 0x27, 0x8e, 0xc7, 0xc7, 0xe3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x34, 0x7e, 0x5e, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xf8, 0xe4, 0xe7, 0x41, 0xb0, 0xb8, 0xe1, 0x14, 0xdb, 0xb0, 0x42, 0x7b, 0x50, 0x54, 0x0b, 0x2e, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x48, 0xfe, 0x3c, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xa2, 0xf6, 0xe7, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x36, 0xfc, 0xf3, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xcc, 0xf9, 0xe7, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x55, 0xf6, 0xcf, 0x07, 0xed, 0x95, 0x89, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x4c, 0xfe, 0xf3, 0xc1, 0xc8, 0xb2, 0x3a, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x00, 0xff, 0xf3, 0x21, 0x75, 0x70, 0x1c, 0x1a, 0x7e, 0x83, 0x46, 0xb2, 0x9e, 0x86, 0xdf, 0x60, 0xb0, 0x03, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xee, 0xff, 0x3c, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0x06, 0x40, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x22, 0x80, 0x1e, 0x24, 0x03, 0xf9, 0x95, 0x83, 0xd3, 0x19, 0xf2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x6f, 0x00, 0x7d, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa5, 0x09, 0xd0, 0x07, 0x25, 0x8c, 0xc4, 0x71, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xfb, 0x18, 0xa0, 0x0f, 0x96, 0x71, 0x79, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xf3, 0x00, 0x3d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x3e, 0x02, 0x7a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x63, 0x29, 0xa0, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xbd, 0x80, 0x3e, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x32, 0x0d, 0xe8, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x43, 0x3b, 0xa0, 0x87, 0x5f, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x1a, 0x08, 0xf4, 0x20, 0x19, 0xb8, 0xbf, 0x0e, 0x4e, 0x67, 0xc8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x32, 0x02, 0x3d, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xed, 0x25, 0xd0, 0xc3, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x43, 0x0a, 0xf4, 0xf0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xc3, 0x02, 0x7d, 0x48, 0xcc, 0x1c, 0xdf, 0x8e, 0x43, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xd0, 0xf1, 0x6d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x8e, 0x17, 0xe8, 0x41, 0xb0, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x70, 0x0c, 0xf4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xe1, 0x3c, 0xd0, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xe3, 0x0f, 0xf4, 0x70, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x24, 0x04, 0x7d, 0x88, 0xe6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xfd, 0x44, 0xd0, 0x87, 0x54, 0xcd, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x1e, 0x41, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x9a, 0x12, 0xf4, 0x61, 0x5c, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x69, 0x82, 0x3e, 0x08, 0x4c, 0xec, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x33, 0xa0, 0xa0, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xad, 0x53, 0xd0, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xd3, 0xac, 0xa0, 0x0f, 0x86, 0x31, 0xec, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0x65, 0x41, 0x1f, 0x04, 0x26, 0xf6, 0x71, 0x68, 0xf8, 0x0d, 0x1a, 0xf2, 0x78, 0x1a, 0x7e, 0x83, 0xc1, 0x0e, 0x30, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x07, 0x17, 0xf4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xb3, 0xd0, 0xa0, 0x87, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x61, 0x0d, 0xfa, 0x90, 0xb5, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xf3, 0x0b, 0x7a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xa3, 0xc4, 0xa0, 0x8f, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0x93, 0x41, 0x1f, 0xf2, 0xb5, 0xc7, 0xf3, 0xe3, 0xdb, 0xf1, 0xf8, 0x78, 0xbc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0xb9, 0x41, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x89, 0x83, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x8c, 0x0e, 0xfa, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x1b, 0xee, 0xa0, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xfb, 0x07, 0x3d, 0xc8, 0x36, 0xc4, 0x65, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x46, 0x41, 0xe8, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x33, 0x26, 0xa1, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0x95, 0x42, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x46, 0x85, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xb8, 0x0a, 0x7d, 0xb0, 0xba, 0x30, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x72, 0x85, 0x3e, 0xf4, 0x27, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x19, 0xb1, 0xd0, 0x87, 0xd4, 0xc1, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xf8, 0x59, 0xe8, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xd5, 0x16, 0x7a, 0xb8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xcb, 0x85, 0x3e, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x04, 0x5e, 0xe8, 0xe3, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0xfb, 0x42, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x62, 0x30, 0xf4, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0x10, 0x43, 0x1f, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xc0, 0x31, 0xf4, 0xf0, 0x0b, 0xa2, 0x85, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xa4, 0x0c, 0x3d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xa1, 0x19, 0xfa, 0x60, 0x19, 0x61, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0x3e, 0x43, 0x1f, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x0b, 0xa5, 0xa1, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0x57, 0x43, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xc5, 0x86, 0x3e, 0x78, 0x50, 0x04, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xb6, 0x0d, 0xbd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x25, 0xde, 0xd0, 0x87, 0xfe, 0xe4, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x83, 0x43, 0x1f, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xef, 0x38, 0xf4, 0x21, 0x55, 0x73, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xd3, 0x1c, 0x7a, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x4b, 0x87, 0x1e, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x43, 0xd8, 0xa1, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0xbb, 0x43, 0x1f, 0xb4, 0x27, 0x7d, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0xc6, 0x43, 0x1f, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x20, 0x3d, 0xf4, 0x41, 0xb2, 0xb5, 0xf3, 0x71, 0x68, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xeb, 0x1e, 0x7a, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x87, 0x3e, 0xf4, 0x41, 0x3b, 0xd6, 0xf7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x35, 0x3f, 0xf4, 0x71, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0xfe, 0x43, 0x1f, 0xa4, 0xba, 0x3b, 0x1f, 0x87, 0x0e, 0xe9, 0xdc, 0xc3, 0xd1, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd9, 0x0a, 0xd1, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xd9, 0x10, 0x3d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x09, 0x22, 0x7a, 0x90, 0x0c, 0xfe, 0x1c, 0x9c, 0xce, 0x90, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x7a, 0x89, 0xe8, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xae, 0x88, 0x3e, 0x48, 0xb6, 0x76, 0x3e, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x8a, 0x11, 0x3d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x6c, 0x23, 0x7a, 0x90, 0x0c, 0xf4, 0x75, 0x3a, 0x38, 0x7b, 0x19, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x2d, 0x1e, 0xd1, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x0e, 0x12, 0x7d, 0xe8, 0x4f, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xed, 0x48, 0xf4, 0x21, 0x75, 0x30, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x1b, 0x4d, 0xa2, 0x0f, 0x7b, 0x85, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x43, 0x05, 0xa2, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xab, 0x20, 0xfa, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x0b, 0x10, 0xa2, 0x0f, 0x7b, 0x85, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0xa5, 0x44, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x13, 0x8b, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x52, 0x16, 0x3d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x19, 0x5a, 0xf4, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x8e, 0xb5, 0xe8, 0x83, 0x14, 0x79, 0x8f, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xbc, 0x2d, 0xfa, 0xd0, 0x9f, 0x7c, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0xc2, 0x45, 0x1f, 0x84, 0x00, 0xf8, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x00, 0xba, 0xe8, 0x61, 0x17, 0x76, 0x83, 0xd1, 0xb1, 0xbe, 0x70, 0x1b, 0x2c, 0xb5, 0x29, 0x38, 0x08, 0x29, 0xf0, 0xc3, 0xd1, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x35, 0x85, 0xd1, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x80, 0x18, 0x7d, 0x38, 0xda, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x56, 0x8c, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xda, 0x18, 0x3d, 0x48, 0x06, 0x62, 0x77, 0x10, 0xe4, 0xfc, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x20, 0x64, 0xf4, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xa2, 0xc9, 0xe8, 0x41, 0x32, 0x20, 0x58, 0xfb, 0x0e, 0xce, 0x5e, 0xc6, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x87, 0x65, 0xf4, 0x41, 0x5a, 0xcc, 0xc7, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0xc7, 0x8c, 0x3e, 0x28, 0xec, 0x70, 0x8e, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x78, 0x33, 0x7a, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x9f, 0x67, 0xf4, 0xc1, 0xc9, 0x07, 0x7a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x0a, 0x8d, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x0a, 0xd2, 0xe8, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x36, 0x8d, 0x3e, 0x48, 0x4a, 0xeb, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb1, 0xa9, 0xd1, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xeb, 0x58, 0xa3, 0x0f, 0xd6, 0x47, 0x3a, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xd6, 0x6b, 0xf4, 0x18, 0x58, 0x00, 0x00, 0x71, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x86, 0x5d, 0xd8, 0x0d, 0x46, 0xc7, 0xfa, 0xc2, 0x2e, 0xdc, 0x06, 0x03, 0xdf, 0xf8, 0x20, 0xa4, 0xc0, 0x17, 0x76, 0x83, 0x35, 0x43, 0x29, 0x0b, 0xbb, 0x70, 0x1b, 0xac, 0x49, 0x4b, 0x38, 0x08, 0xb2, 0xf8, 0x0d, 0x31, 0x1c, 0x6e, 0x83, 0x73, 0xe4, 0xee, 0x41, 0x90, 0xc5, 0x1f, 0x8e, 0xf6, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x78, 0x38, 0x7a, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x34, 0x8e, 0x3e, 0x48, 0x73, 0x6b, 0x19, 0x76, 0x83, 0x43, 0x3f, 0xf7, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0x46, 0x47, 0x6f, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x75, 0xd4, 0xd1, 0x87, 0xa3, 0x7d, 0xd8, 0x85, 0xdd, 0x60, 0x74, 0xac, 0x2f, 0xdc, 0x06, 0x43, 0xea, 0xf7, 0x20, 0xa4, 0xc0, 0x0f, 0x47, 0xfb, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0x7d, 0x47, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x35, 0x1e, 0x7d, 0x88, 0xe1, 0xb0, 0x0b, 0xbb, 0xc1, 0xe8, 0x58, 0x5f, 0xd8, 0x85, 0xdb, 0x60, 0x34, 0xf8, 0x1e, 0x84, 0x14, 0xf8, 0xc2, 0x6e, 0xb0, 0x66, 0x28, 0x65, 0xe1, 0x36, 0x18, 0xb7, 0xbb, 0x07, 0x41, 0x16, 0x7f, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x8a, 0xf8, 0xe8, 0x0d, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x7d, 0x3e, 0xfa, 0x20, 0xa1, 0xec, 0x64, 0xd8, 0x85, 0xdd, 0x60, 0x74, 0xac, 0x2f, 0xec, 0x06, 0x51, 0x4f, 0xdd, 0xb1, 0xb0, 0x1b, 0xac, 0x19, 0x4a, 0x59, 0xb8, 0x0d, 0xd6, 0x68, 0x2b, 0x1c, 0x04, 0x59, 0xfc, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x87, 0xa3, 0x7d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x93, 0x03, 0xa4, 0x37, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x4e, 0x02, 0xe9, 0x83, 0x34, 0xb7, 0x96, 0x61, 0x17, 0x76, 0x83, 0xd1, 0xb1, 0xbe, 0xb0, 0x0b, 0xb7, 0x41, 0x29, 0x22, 0x79, 0x10, 0x52, 0xe0, 0x1b, 0x62, 0x38, 0xdc, 0x06, 0x45, 0xa4, 0xe4, 0x41, 0x48, 0x81, 0x1f, 0x8e, 0xf6, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0xaa, 0x90, 0xde, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x33, 0x30, 0xa4, 0x0f, 0xd2, 0xdc, 0x5a, 0x86, 0x5d, 0xd8, 0x0d, 0x46, 0xc7, 0xfa, 0xc2, 0x2e, 0xdc, 0x06, 0x6b, 0xd2, 0x12, 0x0e, 0x42, 0x0a, 0x7c, 0x61, 0x37, 0x58, 0x33, 0x94, 0xb2, 0x70, 0x1b, 0x2c, 0x40, 0x63, 0x38, 0x08, 0xb2, 0xf8, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0x98, 0x48, 0x6f, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd5, 0x28, 0xd2, 0x07, 0x89, 0x72, 0x1f, 0xc3, 0x2e, 0xec, 0x06, 0xa3, 0x63, 0x7d, 0x61, 0x37, 0x88, 0x8d, 0xf0, 0x8e, 0x83, 0x58, 0xcc, 0xee, 0x38, 0x1c, 0xed, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x6b, 0x23, 0xbd, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0xe6, 0x48, 0x1f, 0x24, 0x94, 0x9d, 0x0c, 0xbb, 0xb0, 0x1b, 0x8c, 0x8e, 0xf5, 0x85, 0xdd, 0x20, 0x36, 0xc2, 0x3b, 0x16, 0x76, 0x83, 0x35, 0x43, 0x29, 0x0b, 0xb7, 0xc1, 0xc0, 0x37, 0x3e, 0x08, 0xb2, 0xf8, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x1d, 0x49, 0x6f, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x41, 0x4a, 0xd2, 0x07, 0xe9, 0x50, 0x1e, 0xc3, 0x2e, 0xec, 0x06, 0xa3, 0x63, 0x7d, 0x61, 0x37, 0x88, 0x8d, 0xf0, 0x8e, 0x85, 0xdd, 0x60, 0xcd, 0x50, 0xca, 0xc2, 0x6d, 0x50, 0x44, 0x4a, 0x1e, 0x04, 0x59, 0xfc, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x87, 0xa3, 0x7d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x43, 0xb0, 0xa4, 0x37, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x7a, 0x2d, 0xe9, 0x83, 0x34, 0xb7, 0x96, 0x61, 0x17, 0x76, 0x83, 0xd1, 0xb1, 0xbe, 0xb0, 0x0b, 0xb7, 0xc1, 0x49, 0x6f, 0xf7, 0x20, 0xa4, 0xc0, 0x17, 0x76, 0x83, 0x35, 0x43, 0x29, 0x0b, 0xb7, 0xc1, 0x52, 0x9b, 0x82, 0x83, 0x20, 0x8b, 0x3f, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x36, 0x9a, 0xf4, 0x86, 0xa3, 0x7d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xd8, 0x35, 0xe9, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x6d, 0x6e, 0xd2, 0x07, 0xb1, 0xb8, 0xdb, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0xc5, 0x49, 0x0f, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x8d, 0x74, 0xd2, 0x83, 0x64, 0xa0, 0x54, 0x1d, 0x9c, 0x84, 0x8e, 0x0f, 0x4a, 0x86, 0xa6, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x76, 0x27, 0x3d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x45, 0x4f, 0x7a, 0x90, 0x0c, 0x4e, 0x1d, 0x04, 0x39, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xd0, 0x27, 0x7d, 0x88, 0xe1, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0xfe, 0x93, 0x3e, 0x48, 0x4a, 0xeb, 0x39, 0x0e, 0x1d, 0x87, 0x86, 0x5d, 0xd8, 0x0d, 0x46, 0xc7, 0xfa, 0xc2, 0x2e, 0xdc, 0x06, 0x25, 0x50, 0xe4, 0x41, 0x48, 0x81, 0x2f, 0xec, 0x06, 0x6b, 0x86, 0x52, 0x16, 0x76, 0x83, 0x48, 0x66, 0xee, 0x58, 0xd8, 0x0d, 0x16, 0x7c, 0x71, 0x2d, 0xdc, 0x06, 0x6b, 0xb4, 0x15, 0x0e, 0x02, 0x37, 0xfe, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x42, 0x4a, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xdf, 0xa4, 0xf4, 0xe1, 0x68, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xc9, 0x52, 0x7a, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x47, 0xa6, 0xf4, 0x41, 0x2c, 0xee, 0x76, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf5, 0x9b, 0xd2, 0x83, 0x64, 0x40, 0xf0, 0xee, 0x1c, 0x9c, 0x84, 0x8e, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xb2, 0xa7, 0xf4, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xcc, 0x50, 0xe9, 0x41, 0x32, 0x10, 0xae, 0x83, 0x20, 0xe7, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xeb, 0x48, 0xa5, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0x9c, 0x4a, 0x1f, 0x9c, 0x7b, 0xad, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x3c, 0x55, 0xe9, 0x43, 0x7f, 0xf2, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xd4, 0x2a, 0x3d, 0x06, 0xf0, 0x19, 0x26, 0x36, 0x46, 0x56, 0x66, 0x76, 0x86, 0x96, 0xa6, 0xb6, 0xc6, 0xd6, 0xe6, 0xf6, 0x06, 0x17, 0x27, 0x37, 0x47, 0x57, 0x67, 0x77, 0x87, 0x97, 0xa7, 0x1f, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x68, 0xb0, 0xf4, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x38, 0x62, 0xe9, 0x83, 0x93, 0x0f, 0xf4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x74, 0x2c, 0xbd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x11, 0xca, 0xd2, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xcc, 0x2c, 0x7d, 0x90, 0x50, 0x76, 0x32, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x4b, 0x9f, 0xa5, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0x49, 0x4b, 0x1f, 0x9c, 0x7b, 0xad, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xaa, 0x6a, 0xe9, 0x43, 0x7f, 0xf2, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x81, 0x2d, 0x3d, 0x06, 0xe0, 0x09, 0x4c, 0x8c, 0xcc, 0x0c, 0x4d, 0x8d, 0xcd, 0x0d, 0x4e, 0x4e, 0x4b, 0x98, 0xd8, 0x18, 0x59, 0x99, 0xd9, 0x19, 0x5a, 0x9a, 0xda, 0x1a, 0x5b, 0x9b, 0xdb, 0x1b, 0x5c, 0x9c, 0xdc, 0x1c, 0x5d, 0x9d, 0xdd, 0x1d, 0x5e, 0x9e, 0x7e, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0xc3, 0x2e, 0xec, 0x06, 0xa3, 0x63, 0x7d, 0x61, 0x37, 0x88, 0xdd, 0xfe, 0x8e, 0x85, 0xdd, 0x60, 0xcd, 0x50, 0xca, 0x06, 0x91, 0xcc, 0xdc, 0x71, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xec, 0x86, 0xe9, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x85, 0x98, 0x3e, 0x1c, 0xed, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0x4e, 0x4c, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0xb2, 0x98, 0x3e, 0x88, 0xc5, 0xdd, 0x8e, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x25, 0x63, 0xfa, 0x20, 0x06, 0x0b, 0x3c, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xff, 0xc6, 0xf4, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x66, 0x8f, 0xe9, 0x83, 0x93, 0x0f, 0xf4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x1a, 0x32, 0xbd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x6d, 0x24, 0xd3, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x72, 0x32, 0x7d, 0x90, 0x0e, 0xe5, 0x31, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x03, 0x54, 0xa6, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0xb3, 0x4c, 0x1f, 0x9c, 0x7b, 0xad, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xd8, 0x97, 0xe9, 0x43, 0x7f, 0xf2, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x27, 0x33, 0x3d, 0x06, 0xe0, 0x4f, 0x8b, 0xdf, 0x97, 0x0b, 0x4c, 0x8c, 0xcc, 0x0c, 0x4d, 0x8d, 0xcd, 0x0d, 0x4e, 0x4e, 0x98, 0xd8, 0x18, 0x59, 0x99, 0xd9, 0x19, 0x5a, 0x9a, 0xda, 0x1a, 0x5b, 0x9b, 0xdb, 0x1b, 0x5c, 0x9c, 0xdc, 0x1c, 0x5d, 0x9d, 0xdd, 0x1d, 0x5e, 0x9e, 0x7e, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x86, 0x5d, 0xd8, 0x0d, 0x46, 0xc7, 0xfa, 0x06, 0xb1, 0xdb, 0xdf, 0x71, 0x38, 0xda, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x7b, 0x6c, 0x7a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x5b, 0xcd, 0xa6, 0x0f, 0x47, 0xfb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x7d, 0x69, 0xd3, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x9b, 0xd8, 0xa6, 0x0f, 0x62, 0x71, 0xb7, 0x63, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x79, 0x9b, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x1e, 0x37, 0x3d, 0x48, 0x06, 0xda, 0xf6, 0x1d, 0x9c, 0xbd, 0x8c, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x5e, 0xba, 0xe9, 0x83, 0xc3, 0x95, 0xf4, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xbc, 0x9b, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xa5, 0x37, 0x7d, 0x10, 0x21, 0xbe, 0x1d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x4d, 0xdf, 0xf4, 0x41, 0x5a, 0xcc, 0xc7, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x00, 0x9c, 0x3e, 0x28, 0xec, 0x70, 0x8e, 0x43, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x2e, 0x38, 0x3d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xb3, 0x70, 0xfa, 0xe0, 0xe4, 0x03, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0x21, 0x4e, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xcd, 0xe2, 0xf4, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0x37, 0x4e, 0x1f, 0x24, 0xa5, 0xf5, 0x0c, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x68, 0xc8, 0xe9, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x95, 0x93, 0xd3, 0x07, 0xeb, 0x23, 0x1d, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xcf, 0x72, 0xfa, 0x20, 0xbe, 0x93, 0x3b, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0xdb, 0xd0, 0x7c, 0x7d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xa8, 0xbb, 0xe8, 0x0d, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x44, 0x2f, 0xfa, 0x20, 0x29, 0xad, 0x67, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x1c, 0x96, 0xe8, 0x61, 0x37, 0x68, 0x9d, 0x0f, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xeb, 0x5e, 0xa2, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0xc8, 0x44, 0x0f, 0x92, 0x41, 0xdf, 0x41, 0x90, 0xf3, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x41, 0x4d, 0xf4, 0x71, 0xe8, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xee, 0x4d, 0xf4, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xa7, 0x13, 0x7d, 0xb0, 0xc8, 0x23, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xfb, 0x80, 0xa2, 0x0f, 0x42, 0x00, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xa6, 0xa1, 0xe8, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x05, 0x46, 0xd1, 0x07, 0xd1, 0x9e, 0xdf, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0x25, 0x45, 0x1f, 0x04, 0x26, 0xf6, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x62, 0x8a, 0x1e, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x0b, 0x9e, 0xa2, 0x87, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xe2, 0xa8, 0xe8, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0xa3, 0x8a, 0x3e, 0x44, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x73, 0xae, 0xa2, 0x0f, 0x42, 0x00, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x08, 0xad, 0xe8, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd5, 0x5c, 0xd1, 0x83, 0x64, 0x20, 0xe9, 0x74, 0x70, 0xf6, 0x32, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xd2, 0xaf, 0xe8, 0x43, 0x34, 0x8f, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0x0a, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xa1, 0x39, 0x3d, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x5a, 0x9d, 0x1e, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x05, 0xed, 0xf4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xfd, 0xbe, 0xd3, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x48, 0xe1, 0xe9, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x51, 0xc5, 0xd3, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x1b, 0x90, 0xa7, 0x0f, 0xda, 0x2b, 0x13, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x74, 0xe5, 0xe9, 0xc3, 0xda, 0xef, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x8b, 0x9b, 0xa7, 0x0f, 0xa9, 0x83, 0xe3, 0xd0, 0xf0, 0x1b, 0x34, 0x92, 0xf5, 0x34, 0xfc, 0x06, 0x83, 0x1d, 0x60, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x52, 0xe8, 0xe9, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x51, 0xd3, 0xd3, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x03, 0xae, 0xa7, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0x66, 0x4f, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xe9, 0x9e, 0x1e, 0x24, 0x03, 0xfd, 0xef, 0x0e, 0x8e, 0x59, 0xc5, 0x83, 0x64, 0x98, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xff, 0x7b, 0xfa, 0x90, 0xaa, 0x39, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xb8, 0xf8, 0xf4, 0x71, 0xe8, 0x38, 0x74, 0x30, 0xd2, 0xb4, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x2c, 0x9f, 0x1e, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x93, 0xd0, 0xa7, 0x87, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x80, 0xf5, 0xe9, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xb6, 0x7d, 0xfa, 0x20, 0x48, 0xf1, 0x0f, 0xeb, 0x9b, 0x0b, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x7d, 0xf0, 0xd3, 0xc3, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xce, 0xfc, 0xf4, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0xd7, 0x4f, 0x1f, 0x84, 0x14, 0xf8, 0x21, 0x9d, 0x7b, 0x38, 0xda, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x14, 0x7f, 0x7a, 0x90, 0x0c, 0x39, 0x24, 0x97, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xda, 0x9f, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x02, 0xff, 0xe9, 0x83, 0x90, 0x02, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x16, 0x80, 0xfa, 0x20, 0x70, 0xe3, 0x8f, 0xc7, 0xc7, 0xe3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x26, 0xa0, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xd0, 0x82, 0x7a, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x75, 0x06, 0xf5, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x48, 0x0e, 0xea, 0x83, 0xd3, 0x0a, 0xee, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x7d, 0x50, 0x1f, 0x0c, 0x79, 0xf4, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x39, 0x22, 0xd4, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x03, 0x4a, 0xa8, 0x0f, 0x96, 0x3e, 0x76, 0x0d, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xa3, 0x4f, 0xa8, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0xaa, 0x50, 0x1f, 0xc4, 0xf9, 0xa9, 0xc6, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xaf, 0x85, 0xfa, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x33, 0x0c, 0xf5, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xc6, 0x19, 0xea, 0x83, 0x76, 0x61, 0x02, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xcc, 0x86, 0xfa, 0x20, 0x6e, 0x98, 0x30, 0x8e, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb1, 0x39, 0xd4, 0x07, 0x0f, 0xce, 0x1a, 0x38, 0x0e, 0x1d, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xe4, 0xa1, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xf7, 0x43, 0x7d, 0x10, 0xe7, 0xa7, 0x1a, 0x83, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x20, 0x21, 0xea, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc6, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x1d, 0x45, 0xd4, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xbb, 0x8f, 0xa8, 0x0f, 0xda, 0x85, 0x09, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x58, 0x25, 0xea, 0x83, 0x68, 0xe5, 0xc1, 0x38, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xe0, 0x44, 0x7d, 0xf0, 0xe0, 0xac, 0x81, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xc3, 0xa1, 0xa8, 0x07, 0xc9, 0x40, 0xfd, 0x3a, 0x9e, 0x0f, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0x4e, 0x51, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xb3, 0xa2, 0x3e, 0x48, 0x6c, 0x39, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xb3, 0xb2, 0xa8, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x83, 0x8b, 0xfa, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xb3, 0xbd, 0xa8, 0x0f, 0xad, 0xc4, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x6a, 0x18, 0xf5, 0xc1, 0xd3, 0xb0, 0x06, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x50, 0x46, 0x3d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xfc, 0x8c, 0xfa, 0x20, 0xce, 0x4f, 0x35, 0x06, 0xc1, 0xc6, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb1, 0x6a, 0xd4, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x1b, 0xdb, 0xa8, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0xc1, 0x51, 0x1f, 0xb4, 0x0b, 0x13, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x21, 0x73, 0xd4, 0x07, 0x71, 0xdc, 0x66, 0x71, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xce, 0x8e, 0xfa, 0xe0, 0xc1, 0x59, 0x03, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0xe5, 0x51, 0x1f, 0x3c, 0x38, 0x6b, 0x60, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x86, 0x8f, 0xfa, 0x20, 0xea, 0x2c, 0x3d, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xfe, 0x8f, 0x7a, 0x10, 0x2c, 0x6e, 0x10, 0x29, 0x4d, 0x1d, 0x07, 0x91, 0xd2, 0xd4, 0xb1, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x41, 0x24, 0xf5, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x83, 0x33, 0xa9, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x55, 0x9d, 0xd4, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x23, 0x40, 0xa9, 0x07, 0xc9, 0x40, 0xf9, 0x3a, 0x64, 0x2b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x68, 0x94, 0xfa, 0x90, 0x3a, 0x38, 0x0e, 0x0d, 0xbf, 0x41, 0x23, 0x59, 0x4f, 0xc3, 0x6f, 0x30, 0xd8, 0x01, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x30, 0xa5, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x8c, 0x4a, 0x3d, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0xae, 0x52, 0x1f, 0x87, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xc5, 0x95, 0xfa, 0x90, 0xec, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x1d, 0x96, 0xfa, 0x90, 0x98, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xda, 0x59, 0xea, 0x43, 0xaa, 0xe6, 0x38, 0x74, 0x3c, 0x3e, 0x1e, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xdc, 0x2d, 0xf5, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x18, 0x99, 0x7a, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x02, 0x33, 0xf5, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x62, 0x67, 0xea, 0x83, 0x55, 0x5f, 0x10, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x63, 0x34, 0xf5, 0x21, 0x9a, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x8d, 0x9a, 0xfa, 0x30, 0x2e, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x8b, 0xae, 0xa9, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x00, 0x4e, 0x3d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xba, 0x3a, 0xf5, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xcf, 0x9d, 0x7a, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x4f, 0x3c, 0xf5, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xfc, 0x79, 0xea, 0x83, 0xf5, 0x91, 0x0e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x6d, 0x4f, 0x7d, 0x48, 0xd5, 0x1c, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x35, 0x9f, 0xfa, 0x90, 0x3a, 0x38, 0x0e, 0x0d, 0xbf, 0x41, 0x23, 0x59, 0x4f, 0xc3, 0x6f, 0x30, 0xd8, 0x01, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xe4, 0xa7, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x9a, 0x7f, 0xea, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xed, 0x01, 0xd5, 0x07, 0xc9, 0x33, 0x29, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x2b, 0x41, 0xf5, 0x41, 0x90, 0xe2, 0x2f, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x0b, 0x0f, 0xaa, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x48, 0xa1, 0xfa, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x3d, 0x43, 0xf5, 0xe1, 0x68, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb1, 0x0f, 0xd5, 0x07, 0x21, 0xe2, 0x7f, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x52, 0xa2, 0xfa, 0x90, 0xaa, 0x39, 0x1e, 0x1f, 0x8f, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xc0, 0xa2, 0x7a, 0x10, 0x6c, 0x10, 0x0b, 0xae, 0x1e, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x9c, 0x54, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xfa, 0xa5, 0x7a, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x36, 0x53, 0x3d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xc4, 0xa6, 0xfa, 0x10, 0xff, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0xc7, 0xa9, 0x3e, 0xa4, 0x0e, 0x8e, 0x43, 0xc3, 0x6f, 0xd0, 0x48, 0xd6, 0xd3, 0xf0, 0x1b, 0x0c, 0x76, 0x80, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x9b, 0x77, 0xaa, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x61, 0x3f, 0xd5, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x3b, 0x84, 0xaa, 0x0f, 0x89, 0x99, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x27, 0xaa, 0x3e, 0xa4, 0x6a, 0x8e, 0x43, 0xc3, 0x6f, 0x30, 0x30, 0x01, 0x86, 0xdf, 0x60, 0xb0, 0x03, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x7c, 0x54, 0xbd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x71, 0x4a, 0xd5, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xd2, 0x54, 0x7d, 0x48, 0x1d, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xfd, 0x54, 0x7d, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x50, 0xaa, 0xfa, 0xb0, 0x57, 0x78, 0x3c, 0x3e, 0x1e, 0x2f, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xd9, 0x55, 0xf5, 0xf0, 0x2b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x8a, 0x56, 0xf5, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0x73, 0x55, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xee, 0x57, 0xf5, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0x89, 0x55, 0x1f, 0x62, 0x78, 0xe8, 0x89, 0x7a, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x0e, 0xb3, 0xea, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0xbb, 0x55, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x8c, 0xab, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x4c, 0x57, 0x3d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xf1, 0xae, 0x7a, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xbc, 0x5e, 0xf5, 0x20, 0x19, 0xe8, 0x7f, 0x77, 0x30, 0xfc, 0x63, 0x07, 0xc9, 0x30, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x70, 0x5f, 0xf5, 0x21, 0x75, 0x70, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x54, 0xc0, 0xea, 0xc3, 0xd1, 0x7e, 0x1c, 0x3a, 0x18, 0x69, 0x5a, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x0d, 0x56, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x84, 0x61, 0xf5, 0x70, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x8c, 0x58, 0x7d, 0x10, 0x52, 0xe0, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0x2d, 0x56, 0x1f, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x85, 0x63, 0xf5, 0x41, 0xe0, 0xc6, 0x1f, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x8c, 0xac, 0x1e, 0x7e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x9b, 0x28, 0xab, 0x17, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xfc, 0xb2, 0x7a, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xa8, 0x66, 0xf5, 0x41, 0x9b, 0x71, 0xfe, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xd7, 0x59, 0x7d, 0x10, 0x63, 0xa4, 0x16, 0xc7, 0xa1, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x0d, 0xad, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x46, 0x5a, 0x3d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xe4, 0xb4, 0xfa, 0xa0, 0xcd, 0x38, 0xff, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xeb, 0x53, 0xab, 0x07, 0xd1, 0x82, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xcc, 0xd6, 0xea, 0xc3, 0xd1, 0x7e, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x38, 0xd8, 0xea, 0x31, 0xf0, 0xea, 0xc8, 0x8c, 0xe3, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0xd2, 0x56, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xbb, 0xad, 0x3e, 0x58, 0xfa, 0xd8, 0x35, 0x08, 0x36, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xd1, 0xad, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xd1, 0x5b, 0x7d, 0x10, 0xe7, 0xa7, 0x1a, 0x83, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xf6, 0xdf, 0xea, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa9, 0xc2, 0xd5, 0x07, 0xed, 0xc2, 0x04, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x5f, 0x71, 0xf5, 0xe1, 0x68, 0x3f, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0x21, 0x57, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x59, 0xae, 0x3e, 0x58, 0xfa, 0xd8, 0x35, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0x38, 0x57, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x86, 0xae, 0x3e, 0x68, 0x17, 0x26, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x43, 0xa7, 0xab, 0x0f, 0x31, 0x3c, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x3c, 0xeb, 0xea, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x5d, 0xd9, 0xd5, 0x07, 0x71, 0x7e, 0xaa, 0x31, 0x08, 0x36, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0xe1, 0xae, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xf0, 0x5d, 0x7d, 0xd0, 0x2e, 0x4c, 0xc0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0x87, 0x57, 0x1f, 0x62, 0x78, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x96, 0xbc, 0xfa, 0xa0, 0x64, 0x68, 0x1a, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x40, 0xaf, 0x3e, 0x28, 0x19, 0x9a, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0x68, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x61, 0xbd, 0x7a, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x79, 0x7b, 0xf5, 0x41, 0x9c, 0x9f, 0x6a, 0x0c, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x7b, 0xe1, 0xab, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0xcd, 0x57, 0x1f, 0xb4, 0x0b, 0x13, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x4d, 0xf6, 0xd5, 0x87, 0x18, 0x1e, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x53, 0xf2, 0xab, 0x0f, 0xd2, 0x2d, 0xa5, 0x8f, 0x43, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x13, 0xfc, 0xab, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x03, 0x58, 0x1f, 0x2c, 0x7d, 0xec, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x3b, 0x07, 0xac, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0x19, 0x58, 0x1f, 0xc4, 0xf9, 0xa9, 0xc6, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x93, 0x60, 0x3d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x7e, 0xc1, 0xfa, 0xa0, 0x5d, 0x98, 0x80, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x76, 0xb0, 0x3e, 0xc4, 0xf0, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x53, 0x23, 0xac, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x51, 0x58, 0x1f, 0xb4, 0x19, 0xe7, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x4d, 0x17, 0xd6, 0x07, 0x51, 0x1b, 0x83, 0x71, 0x1c, 0x3a, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x74, 0x0d, 0xeb, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb1, 0x1d, 0xd6, 0x07, 0x71, 0x7e, 0xaa, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0x82, 0x58, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x1a, 0xb1, 0x3e, 0x68, 0x17, 0x26, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x6b, 0x4c, 0xac, 0x0f, 0x47, 0xfb, 0x71, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0xa4, 0x58, 0x1f, 0x94, 0x0c, 0x4d, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x5e, 0x16, 0xeb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xdb, 0x7c, 0xac, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0x04, 0x59, 0x1f, 0xc4, 0xf9, 0xa9, 0xc6, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x80, 0xc8, 0xfa, 0x60, 0xdc, 0x41, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x6d, 0x64, 0x7d, 0x70, 0x5a, 0xc1, 0x1d, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x50, 0xb2, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xcd, 0x64, 0x7d, 0x50, 0x52, 0xff, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb9, 0x4f, 0xd6, 0x87, 0x18, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x40, 0x29, 0xeb, 0x83, 0xd4, 0x30, 0x84, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xcd, 0x5e, 0xd6, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x3b, 0xb3, 0x1e, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x0a, 0x9c, 0xf5, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xa8, 0x39, 0xeb, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x9d, 0x76, 0xd6, 0x83, 0x64, 0xa0, 0xff, 0xdd, 0xc1, 0x49, 0xe8, 0x78, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0xcb, 0xb3, 0x3e, 0xa4, 0x0e, 0x8e, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0xf1, 0x59, 0x0f, 0x82, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xdb, 0xfd, 0xac, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x4f, 0xb4, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0x35, 0x5a, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x81, 0xb4, 0x1e, 0x7e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xdb, 0x27, 0xad, 0x0f, 0xa9, 0x83, 0x83, 0xd3, 0x0a, 0xee, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0x5a, 0x5a, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0xcb, 0xb4, 0x1e, 0x24, 0x03, 0x6d, 0x9d, 0x0e, 0x4e, 0x67, 0xc8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x11, 0xa7, 0xf5, 0x21, 0x86, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xe0, 0xd3, 0xfa, 0x60, 0xbc, 0xe9, 0x1c, 0x87, 0x8e, 0x43, 0xc3, 0x6f, 0xd0, 0x48, 0xd6, 0xd3, 0xf0, 0x1b, 0x0c, 0x76, 0x80, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xcb, 0x43, 0xad, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x6d, 0xa5, 0xd6, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x53, 0x50, 0xad, 0x87, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xee, 0x55, 0xeb, 0x43, 0xaa, 0xe6, 0xa0, 0x64, 0x68, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x56, 0x57, 0xeb, 0xe3, 0xd0, 0x71, 0x68, 0xf8, 0x0d, 0x06, 0x26, 0xc0, 0xf0, 0x1b, 0x0c, 0x76, 0x80, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xc3, 0x62, 0xad, 0x87, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x06, 0x5a, 0xeb, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xc5, 0xb6, 0xd6, 0x07, 0x0d, 0x7d, 0xff, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x8d, 0xb9, 0xd6, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xc3, 0x6b, 0x7d, 0x30, 0x10, 0xa9, 0x8f, 0x43, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xf1, 0x6b, 0x7d, 0x10, 0xbd, 0x73, 0x1e, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0x07, 0x5b, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x24, 0xb1, 0xf5, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xa2, 0x63, 0xeb, 0x43, 0x0b, 0xa0, 0xe3, 0xdb, 0xf1, 0xf8, 0x78, 0xbc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0x2b, 0x5b, 0x0f, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x81, 0xcd, 0xd6, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0x44, 0x5b, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x9e, 0xb6, 0x3e, 0x68, 0x33, 0xce, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x4b, 0xad, 0xad, 0xc7, 0xc0, 0xab, 0x23, 0x2b, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xab, 0xb5, 0xad, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0x76, 0x5b, 0x1f, 0x2c, 0x7d, 0xec, 0x1a, 0x04, 0x1b, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x81, 0x5b, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x19, 0xb7, 0x3e, 0x28, 0xa9, 0xff, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xfc, 0x72, 0xeb, 0x43, 0x0c, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x2f, 0xba, 0xf5, 0x41, 0x52, 0x5a, 0xcf, 0x71, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xca, 0x75, 0xeb, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x6d, 0xee, 0xd6, 0x07, 0x71, 0x7e, 0xaa, 0x31, 0x08, 0x36, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x89, 0xb7, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x3f, 0x6f, 0x7d, 0xd0, 0x2e, 0x4c, 0xc0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0xdb, 0x5b, 0x1f, 0x94, 0x59, 0x90, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x53, 0xf3, 0xad, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0xf1, 0x5b, 0x1f, 0xb4, 0x19, 0xe7, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x45, 0xff, 0xd6, 0x63, 0xe0, 0xa5, 0x99, 0x19, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x6c, 0x81, 0xeb, 0xe3, 0xdb, 0x71, 0xe8, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x62, 0x70, 0x3d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x20, 0xe1, 0xfa, 0x20, 0xce, 0x4f, 0x35, 0x06, 0xc1, 0xc6, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd5, 0x0b, 0xd7, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x23, 0x1d, 0xae, 0x0f, 0xda, 0x85, 0x09, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb2, 0x88, 0xeb, 0x83, 0xa2, 0x19, 0xf2, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x10, 0xc5, 0xf5, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x80, 0x8b, 0xeb, 0x83, 0x36, 0xe3, 0xfc, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x3b, 0xe3, 0x7a, 0x0c, 0xbc, 0xb4, 0x39, 0xe4, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xd7, 0x71, 0x7d, 0x7c, 0x3b, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x06, 0xb9, 0x1e, 0x7e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x3b, 0x47, 0xae, 0x17, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xe5, 0xe4, 0xfa, 0x60, 0xdc, 0x41, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xc3, 0xca, 0xf5, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xe6, 0x96, 0xeb, 0x83, 0x36, 0xe3, 0xfc, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x14, 0xe6, 0xfa, 0x20, 0x82, 0x03, 0x3e, 0x8e, 0x43, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x42, 0x73, 0x3d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xdc, 0xe6, 0xfa, 0x20, 0xb1, 0xe5, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xcd, 0xb9, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x3c, 0x9e, 0xeb, 0xc3, 0xd1, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xcb, 0xcf, 0xf5, 0xc1, 0x91, 0xa7, 0x78, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x08, 0x5d, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x26, 0xba, 0x3e, 0x68, 0x33, 0xce, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x5b, 0x8f, 0xae, 0x0f, 0x8a, 0xd7, 0xc8, 0xe3, 0xd0, 0x71, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xb3, 0x96, 0xae, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0x38, 0x5d, 0x1f, 0x2c, 0x7d, 0xec, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x13, 0xa2, 0xae, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x4f, 0x5d, 0x1f, 0xb4, 0x0b, 0x13, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa5, 0x56, 0xd7, 0x87, 0x18, 0x1e, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x5d, 0xd6, 0xf5, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x18, 0xae, 0xeb, 0x83, 0x38, 0x3f, 0xd5, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x13, 0xbe, 0xae, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x87, 0x5d, 0x1f, 0x2c, 0x7d, 0xec, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x4b, 0xc9, 0xae, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0x9d, 0x5d, 0x1f, 0xb4, 0x0b, 0x13, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x45, 0x6a, 0xd7, 0xe3, 0xc1, 0xb9, 0xfe, 0xf4, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xf3, 0xdb, 0xae, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0xc2, 0x5d, 0x1f, 0xb4, 0x0b, 0x13, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x99, 0x73, 0xd7, 0xe3, 0xc1, 0x41, 0x9e, 0xed, 0x38, 0x74, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x55, 0x77, 0xd7, 0x07, 0x25, 0x43, 0xd3, 0x71, 0xe8, 0x38, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb1, 0x7a, 0xd7, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xe3, 0xfa, 0xae, 0x0f, 0xda, 0x8c, 0xf3, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x24, 0xc0, 0xeb, 0x31, 0xf0, 0xea, 0xc8, 0x88, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x71, 0x84, 0xd7, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x63, 0x0e, 0xaf, 0x0f, 0xda, 0x8c, 0xf3, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x04, 0xc5, 0xeb, 0x31, 0x78, 0x38, 0xe4, 0x38, 0x74, 0x3c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xc4, 0xf1, 0x7a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x72, 0xcf, 0xeb, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa5, 0xa1, 0xd7, 0x07, 0x71, 0x7e, 0xaa, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0x91, 0x5e, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x39, 0xbd, 0x3e, 0x88, 0xf3, 0x53, 0x8d, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x41, 0xf5, 0xfa, 0xe0, 0xbd, 0x69, 0x01, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x9d, 0xf5, 0xfa, 0x60, 0xdc, 0x41, 0x1d, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xf2, 0xeb, 0xf5, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x3a, 0xd9, 0xeb, 0x83, 0x38, 0x3f, 0xd5, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x8b, 0x6a, 0xaf, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0xdf, 0x5e, 0x1f, 0xc4, 0xf9, 0xa9, 0xc6, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xad, 0x7b, 0x7d, 0xb0, 0xba, 0x17, 0x66, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0xf6, 0x5e, 0x1f, 0x8c, 0x90, 0xa8, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x07, 0xbe, 0x3e, 0x38, 0xad, 0xe0, 0x1e, 0x87, 0x8e, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0x11, 0x5f, 0x0f, 0x82, 0xc5, 0x0d, 0xc2, 0xd9, 0xfe, 0x20, 0x52, 0x9a, 0x3a, 0x16, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xd7, 0xbe, 0x1e, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xe9, 0xf8, 0xf5, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xe7, 0xfc, 0x7a, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x7d, 0xfa, 0xf5, 0x61, 0xed, 0x77, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x53, 0xd9, 0xaf, 0x0f, 0xa9, 0x83, 0xe3, 0xd0, 0xf0, 0x1b, 0x34, 0x92, 0xf5, 0x34, 0xfc, 0x06, 0x83, 0x1d, 0x60, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xc2, 0xf7, 0xeb, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x91, 0xbf, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x4e, 0x7f, 0x7d, 0x48, 0x76, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xe4, 0xfd, 0xf5, 0x71, 0xe8, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x91, 0xfe, 0xf5, 0x21, 0x55, 0x73, 0x3c, 0x3e, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xe0, 0x7f, 0x3d, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x44, 0x03, 0xec, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x3d, 0x60, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x8a, 0x04, 0xf6, 0x61, 0xaf, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x72, 0x0a, 0xec, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa9, 0x17, 0xd8, 0x07, 0xed, 0xa8, 0xb9, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xa0, 0x06, 0xf6, 0x21, 0x75, 0x70, 0x1c, 0x3a, 0x1e, 0x1f, 0x8f, 0x8f, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0x7b, 0x60, 0x0f, 0x82, 0xc5, 0xd9, 0x20, 0x52, 0x9a, 0x3a, 0x36, 0xac, 0xd0, 0x1e, 0x14, 0xd3, 0x82, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0x3e, 0x61, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xd7, 0x85, 0x3d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x18, 0x0c, 0x7b, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xde, 0x18, 0xf6, 0xa1, 0x91, 0xe0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0x99, 0x61, 0x1f, 0xa2, 0x79, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x23, 0x0d, 0x7b, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x19, 0x1b, 0xf6, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x8e, 0x37, 0xec, 0xe1, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x4c, 0x0e, 0xfb, 0xa0, 0xbd, 0x32, 0x91, 0x83, 0x75, 0x6d, 0x63, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x5a, 0x87, 0x7d, 0x1c, 0x3a, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x88, 0x87, 0x3d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x7a, 0x0f, 0x7b, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xa2, 0x1f, 0xf6, 0xa1, 0xe1, 0xd7, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0x05, 0x62, 0x1f, 0x84, 0x14, 0xf8, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x72, 0x42, 0xec, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xf4, 0x10, 0x7b, 0xb8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x52, 0xc4, 0x3e, 0x24, 0x3b, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x68, 0xc4, 0x3e, 0x08, 0x29, 0xf0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xf2, 0xc4, 0x1e, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x2b, 0x42, 0xb1, 0x87, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xe6, 0x51, 0xec, 0x43, 0x23, 0xc1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x8b, 0x4e, 0xb1, 0x0f, 0x82, 0x2c, 0x7e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xbb, 0x82, 0xb1, 0x87, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x0e, 0x62, 0xec, 0xe1, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xda, 0x18, 0xfb, 0x20, 0x28, 0xbd, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x52, 0xc6, 0x3e, 0x18, 0xac, 0xb1, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x45, 0x8e, 0x7d, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x19, 0xce, 0xd8, 0x83, 0x6c, 0x0d, 0xda, 0x02, 0x59, 0xd9, 0x10, 0xc3, 0x41, 0xb0, 0x41, 0x23, 0xd7, 0x2b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x9a, 0xdf, 0x5e, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x71, 0xc3, 0xc4, 0xad, 0xa1, 0x8e, 0x6f, 0x78, 0xf9, 0x6e, 0x0e, 0x5e, 0x63, 0x8d, 0xbd, 0x61, 0xe2, 0x36, 0x88, 0xec, 0xc2, 0x8b, 0x83, 0xd5, 0xa3, 0xfa, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0x43, 0x63, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xeb, 0x34, 0xf6, 0x78, 0xf0, 0x1a, 0x6b, 0xec, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xc8, 0xc6, 0x3e, 0x08, 0x4a, 0xef, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xd3, 0xb7, 0xb1, 0x0f, 0x06, 0x6b, 0xec, 0x71, 0xe8, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xb3, 0x37, 0xf6, 0x86, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x18, 0x8e, 0x7d, 0x10, 0x52, 0xe0, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0xac, 0x62, 0x0f, 0xb2, 0x35, 0x68, 0x0b, 0x64, 0x65, 0x43, 0x0c, 0x07, 0xc1, 0x06, 0x8d, 0x5c, 0xaf, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0x7e, 0x7b, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0xc5, 0x0d, 0x13, 0xb7, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x39, 0x78, 0xce, 0x2c, 0xf6, 0x86, 0x89, 0xdb, 0x20, 0x52, 0x03, 0x2f, 0x0e, 0x56, 0x8f, 0xea, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xdf, 0x8a, 0xbd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb1, 0xb0, 0xd8, 0xe3, 0xc1, 0x73, 0x66, 0xb1, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xc1, 0x16, 0xfb, 0xd0, 0x48, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x76, 0x5c, 0xec, 0x83, 0x20, 0x8b, 0x3f, 0x0e, 0x1d, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0xde, 0xc5, 0xde, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x1b, 0x7d, 0xb1, 0x0f, 0x42, 0x0a, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x4e, 0x48, 0xec, 0x41, 0xb6, 0x06, 0x6d, 0x81, 0xac, 0x6c, 0x88, 0xe1, 0x20, 0xd8, 0xa0, 0x91, 0xeb, 0x95, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xcd, 0x6f, 0xaf, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0xb8, 0xa1, 0x8e, 0x6f, 0x78, 0xf9, 0x6e, 0x0e, 0xde, 0x5f, 0x89, 0x3d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xdd, 0x24, 0xf6, 0x78, 0xf0, 0xfe, 0x4a, 0xec, 0xe3, 0xd0, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x64, 0x4c, 0xec, 0x0d, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x70, 0x13, 0xfb, 0x20, 0xa4, 0xc0, 0x8f, 0xc7, 0x0b, 0x82, 0xc5, 0x99, 0x83, 0xc8, 0x24, 0xc0, 0x58, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x96, 0x8e, 0xbd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x31, 0xef, 0xd8, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0xb0, 0x63, 0x1f, 0xbc, 0x5c, 0xb9, 0x68, 0x90, 0x6d, 0x10, 0xe5, 0x10, 0x20, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x52, 0x8f, 0x3d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x7c, 0x3c, 0xf6, 0x20, 0xd8, 0xe0, 0xd5, 0x86, 0x44, 0x87, 0xa6, 0x40, 0x83, 0x6c, 0x83, 0x28, 0x87, 0x00, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x0b, 0x1f, 0x7b, 0x10, 0x6c, 0x10, 0xff, 0x5b, 0x1c, 0x87, 0x16, 0x60, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x15, 0x04, 0x8b, 0x1b, 0x4e, 0xb1, 0x83, 0x00, 0xb8, 0x5f, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x27, 0x90, 0xbd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x11, 0x05, 0xd9, 0x83, 0x60, 0x83, 0x78, 0xbd, 0xd8, 0x38, 0xa4, 0xe1, 0x06, 0xd9, 0x06, 0x51, 0x87, 0x01, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xf7, 0x41, 0xf6, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0x32, 0x60, 0xba, 0xda, 0x7d, 0x1d, 0x8f, 0x0f, 0x1d, 0x34, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x2b, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x77, 0x64, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xf5, 0x48, 0xf6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x9d, 0x20, 0xd9, 0x07, 0xcf, 0x28, 0x18, 0x1a, 0x64, 0x1b, 0x44, 0x5c, 0x07, 0xc8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd5, 0x29, 0xd9, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x9a, 0x64, 0x1f, 0x3c, 0x13, 0x5f, 0xe8, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xf5, 0x4c, 0xf6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0xe6, 0x64, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x67, 0x93, 0x7d, 0xf0, 0x22, 0x93, 0xb3, 0x41, 0xb6, 0x41, 0xe4, 0x8a, 0x80, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xf9, 0x93, 0x3d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x1b, 0x4f, 0xf6, 0x20, 0xd8, 0xe0, 0x49, 0xd3, 0x66, 0x87, 0x0e, 0x1a, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x13, 0x86, 0xb2, 0x17, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xca, 0x28, 0x7b, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x77, 0x95, 0x3d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x7d, 0x2c, 0x7b, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x43, 0xcd, 0xb2, 0x0f, 0xfd, 0xc9, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x4b, 0xcb, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xc1, 0x96, 0x3d, 0x48, 0x06, 0xba, 0x3b, 0x1d, 0x0c, 0x47, 0xe9, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xdd, 0x2d, 0xfb, 0x10, 0xcd, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x19, 0x97, 0x7d, 0xe8, 0x4f, 0x7e, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x8d, 0x2e, 0x7b, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xe1, 0x7c, 0xd9, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0x2d, 0x66, 0x0f, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd5, 0x33, 0xda, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0xdd, 0x68, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xa7, 0xa4, 0x3d, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x71, 0xd2, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x0e, 0xa5, 0x3d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x74, 0x4a, 0x7b, 0x90, 0x0c, 0x8a, 0x0e, 0x4e, 0x67, 0xc8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x9e, 0x95, 0xf6, 0x61, 0xaf, 0x70, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x64, 0x69, 0x1f, 0x52, 0x35, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x7e, 0x4b, 0xfb, 0x70, 0xb4, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x52, 0x2f, 0xed, 0xc3, 0xd1, 0x7e, 0x1c, 0x1a, 0x7e, 0x83, 0x61, 0x1b, 0x30, 0xfc, 0x06, 0x83, 0x1d, 0x60, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xac, 0x30, 0xed, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x81, 0x4c, 0x7b, 0xb8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x35, 0xd3, 0x3e, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xae, 0x34, 0xed, 0x83, 0x90, 0x02, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x6a, 0x36, 0xed, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x7c, 0xd3, 0x1e, 0x76, 0x83, 0xd0, 0x72, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x2a, 0x3c, 0xed, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x63, 0x4f, 0x7b, 0xb8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0xee, 0xd3, 0x3e, 0x18, 0xf2, 0xe8, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x02, 0x6a, 0x1f, 0x84, 0x14, 0xf8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x0d, 0x6a, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xd3, 0x20, 0xb5, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x4c, 0x6a, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xaf, 0xd4, 0x1e, 0x24, 0x83, 0xa2, 0x83, 0x73, 0xde, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x8b, 0xa9, 0x7d, 0x10, 0x98, 0xd8, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x6e, 0x53, 0xfb, 0xb0, 0x57, 0x78, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x83, 0x3c, 0xb5, 0x0f, 0xca, 0xb8, 0x9d, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x10, 0xaa, 0x7d, 0x68, 0x25, 0x7e, 0x1c, 0x1a, 0x7e, 0x83, 0x86, 0x3c, 0x9e, 0x86, 0xdf, 0x60, 0xb0, 0x03, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x3c, 0xaa, 0xbd, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0x9a, 0x6a, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x52, 0xaa, 0xf6, 0x06, 0x65, 0x16, 0xe4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x15, 0xac, 0xda, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xdb, 0x5d, 0xb5, 0x0f, 0xc6, 0x9b, 0xce, 0xe1, 0x14, 0x1b, 0x76, 0x83, 0xa5, 0xcd, 0x42, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x45, 0xab, 0x3d, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0xdc, 0x6a, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0xce, 0xd5, 0x1e, 0x24, 0x83, 0x9a, 0x83, 0x73, 0xfd, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xc9, 0xab, 0x7d, 0x10, 0x52, 0xe0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xed, 0x57, 0xfb, 0xd0, 0x9f, 0xfc, 0x38, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x29, 0xc2, 0xda, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x9e, 0x67, 0xed, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf9, 0xd1, 0xda, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x6b, 0xa9, 0xb5, 0x0f, 0x22, 0x5f, 0x09, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0xbc, 0xd6, 0x3e, 0x08, 0x4c, 0xec, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xa4, 0xad, 0x7d, 0xd8, 0x2b, 0x3c, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x15, 0xdd, 0xda, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xa3, 0xbf, 0xb5, 0x07, 0xc9, 0xe0, 0xcf, 0xc1, 0xb9, 0xfe, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x14, 0xd7, 0x3e, 0x08, 0x29, 0xf0, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x56, 0xae, 0x7d, 0xe8, 0x4f, 0x7e, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x31, 0xe8, 0xda, 0x87, 0x56, 0xe2, 0xc7, 0xa1, 0xe1, 0x37, 0x68, 0xc8, 0xe3, 0x69, 0xf8, 0x0d, 0x06, 0x3b, 0xc0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf1, 0xea, 0xda, 0x1b, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x6d, 0xbb, 0xf6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0xc1, 0x6b, 0x6f, 0x50, 0x34, 0x43, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x33, 0xaf, 0x7d, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xcc, 0x5e, 0xfb, 0x60, 0xbc, 0xe9, 0x1c, 0x4e, 0xb1, 0x61, 0x17, 0x6e, 0x43, 0x2b, 0xf1, 0x83, 0x10, 0x00, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xe2, 0x7d, 0xed, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xd7, 0xbf, 0xf6, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x0a, 0x81, 0xed, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xcd, 0x04, 0xdb, 0x07, 0x91, 0xaf, 0x04, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0x1e, 0x6c, 0x1f, 0x04, 0x26, 0xf6, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x52, 0xd8, 0x3e, 0xec, 0x15, 0x1e, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xa4, 0x61, 0x7b, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xf8, 0xc3, 0xf6, 0x20, 0x19, 0x48, 0xaf, 0x1c, 0x9c, 0xeb, 0x8f, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x52, 0x62, 0xfb, 0x20, 0xa4, 0xc0, 0x8f, 0x43, 0xc7, 0xa1, 0xe1, 0x37, 0x68, 0xc8, 0xe3, 0x69, 0xf8, 0x0d, 0x06, 0x3b, 0xc0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x79, 0x15, 0xdb, 0x1b, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x0f, 0xc6, 0xf6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0x6b, 0x6c, 0x1f, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xee, 0xd8, 0x3e, 0x18, 0x6f, 0x3a, 0x83, 0x6c, 0x43, 0xf3, 0xf5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xdb, 0xe5, 0xb4, 0x0f, 0xa7, 0xd8, 0xf1, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x02, 0xc7, 0xec, 0x61, 0x37, 0x68, 0xfb, 0x74, 0x69, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x7b, 0x2d, 0xb3, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x2e, 0x33, 0xfb, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x63, 0x38, 0xb3, 0x0f, 0x7b, 0x85, 0xc3, 0x2e, 0xdc, 0x86, 0xa3, 0xfd, 0x20, 0x44, 0xfc, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x36, 0x34, 0x7b, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xed, 0x9a, 0x3d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x31, 0x36, 0x7b, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x12, 0x6d, 0xf6, 0x41, 0xf4, 0xe0, 0x80, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x89, 0xb7, 0xd9, 0x87, 0xbd, 0xc2, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xa3, 0x9b, 0x7d, 0x48, 0xd5, 0x1c, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x86, 0xde, 0xec, 0x83, 0x32, 0x6e, 0x67, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0xff, 0x66, 0x1f, 0x5a, 0x89, 0x1f, 0x87, 0x86, 0xdf, 0x60, 0xd8, 0x06, 0x0c, 0xbf, 0xc1, 0x60, 0x07, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x53, 0x38, 0x7b, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xa3, 0x8a, 0xb3, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x00, 0x39, 0x7b, 0x83, 0x32, 0x0b, 0x72, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x68, 0xe5, 0xec, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x15, 0xce, 0xd9, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x0d, 0x9d, 0x7d, 0x10, 0x98, 0xd8, 0xc3, 0x2e, 0xdc, 0x86, 0x56, 0xe2, 0x07, 0x21, 0xe2, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x61, 0xd6, 0xd9, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xfe, 0xec, 0xec, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb5, 0xdc, 0xd9, 0x07, 0x2f, 0xb7, 0x23, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xc0, 0xef, 0xec, 0xe3, 0xdb, 0x71, 0x68, 0xf8, 0x0d, 0x86, 0x6d, 0xc0, 0xf0, 0x1b, 0x0c, 0x76, 0x80, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xb3, 0xc4, 0xb3, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xa2, 0x3c, 0x7b, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x8b, 0xcf, 0xb3, 0x8f, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0xab, 0x67, 0x1f, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x6c, 0x7b, 0xf6, 0x41, 0x60, 0x62, 0x0f, 0xbb, 0x70, 0x1b, 0xfa, 0x93, 0x1f, 0x84, 0x88, 0xff, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0xcc, 0x67, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xb0, 0xcf, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x28, 0x3f, 0x7b, 0xf8, 0x85, 0xdf, 0xe0, 0xe5, 0x25, 0x14, 0x83, 0x64, 0xa0, 0x7c, 0x1d, 0xcf, 0x8f, 0x6f, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0xf0, 0x67, 0x0f, 0x82, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x83, 0xfd, 0xb3, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x63, 0xd0, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xf7, 0xa0, 0x7d, 0x10, 0xbd, 0x73, 0x1e, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0x49, 0x68, 0x0f, 0xbb, 0xc1, 0xa8, 0x97, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xbe, 0x0a, 0xed, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xc1, 0xd0, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xae, 0xa1, 0x3d, 0x48, 0x36, 0x18, 0xe2, 0x1f, 0x07, 0x07, 0x8a, 0xe4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0xed, 0xd0, 0x3e, 0xa4, 0x6a, 0x8e, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0x82, 0x68, 0x1f, 0x0c, 0xde, 0xc9, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x8b, 0x46, 0xb4, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xe0, 0xfe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x51, 0x30, 0xda, 0x07, 0x83, 0x35, 0x76, 0x10, 0x2d, 0xec, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd9, 0x26, 0xda, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x99, 0xa2, 0x7d, 0x10, 0x64, 0xf1, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0xb4, 0x68, 0x1f, 0x52, 0x35, 0xc7, 0xf3, 0xe3, 0xdb, 0x20, 0xdb, 0xd0, 0x7c, 0x7d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x9a, 0xc8, 0xec, 0xc3, 0x29, 0x76, 0x3c, 0x3e, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x1a, 0xb2, 0x3d, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x24, 0x95, 0xed, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x6b, 0x5f, 0xb6, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x4e, 0x66, 0x7b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xc2, 0x9a, 0xed, 0x43, 0x7f, 0xf2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x83, 0x70, 0xb6, 0x87, 0xdd, 0xb0, 0xbe, 0xb7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x8d, 0x3b, 0xdb, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xe4, 0xb3, 0x3d, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x03, 0x6d, 0x0f, 0xbb, 0xa1, 0xe3, 0xc8, 0xc2, 0x2e, 0xec, 0x06, 0xc1, 0xb0, 0xbf, 0x70, 0x1b, 0x94, 0x59, 0x90, 0x07, 0xe3, 0xa7, 0xeb, 0x70, 0xb4, 0x1f, 0x2c, 0xcf, 0xef, 0x3a, 0x1c, 0xed, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x1d, 0xb5, 0x3d, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0xa0, 0x6d, 0x1f, 0xa2, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x01, 0x55, 0xdb, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x7a, 0xb5, 0x7d, 0x50, 0xc6, 0xed, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xa6, 0xb5, 0x7d, 0x48, 0x1d, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x4b, 0xd7, 0xf6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0x7f, 0x6d, 0x1f, 0x5a, 0x89, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x29, 0xb6, 0x7d, 0x48, 0x2e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x56, 0xb6, 0x7d, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x9d, 0x6b, 0xdb, 0x83, 0x60, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x1e, 0xb7, 0xed, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x73, 0xf4, 0xb6, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0x73, 0x6e, 0x0f, 0xbb, 0xc1, 0x02, 0x2c, 0xaf, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x16, 0xdd, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x5d, 0xba, 0x3d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x11, 0x75, 0xfb, 0x60, 0x75, 0x61, 0xc4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xb4, 0xba, 0x7d, 0xe8, 0x4f, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x13, 0x5c, 0xb7, 0x0f, 0x59, 0xbb, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xe5, 0xb0, 0xdb, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xec, 0xec, 0xf6, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x34, 0xdb, 0xed, 0x41, 0x32, 0x90, 0x5f, 0x39, 0x38, 0x7b, 0x19, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x15, 0xb9, 0xdb, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xbd, 0xbb, 0x7d, 0x90, 0xa4, 0xe0, 0x70, 0x1c, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x52, 0xdf, 0xed, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x0a, 0xde, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x08, 0xe2, 0xed, 0xc3, 0xd1, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xaf, 0xf1, 0xf6, 0x30, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0x25, 0x6f, 0x1f, 0x87, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x87, 0x79, 0x7b, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xe3, 0x9d, 0xb7, 0x0f, 0x47, 0xfb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x9d, 0xd1, 0xdb, 0x87, 0x56, 0xe2, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x45, 0xbd, 0xbd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x19, 0xd7, 0xdb, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xd3, 0xb3, 0xb7, 0x0f, 0xf1, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x99, 0x7b, 0xfb, 0x10, 0xc3, 0xc3, 0x29, 0x36, 0xec, 0xc2, 0x6e, 0xb0, 0x18, 0xcb, 0x6b, 0xe1, 0x36, 0x28, 0xb3, 0x20, 0x0f, 0x8a, 0x43, 0x8d, 0xc3, 0xd1, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xc1, 0xe7, 0xdb, 0xc3, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xa7, 0x03, 0xf7, 0x21, 0x6b, 0xb7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xed, 0xea, 0xdb, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xda, 0xbe, 0x7d, 0x38, 0xda, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x82, 0xdf, 0x3e, 0x18, 0xf2, 0xe8, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x31, 0xbf, 0xbd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xcd, 0xf5, 0xdb, 0x87, 0xa3, 0x7d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x3c, 0xfc, 0xed, 0x43, 0x0c, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x65, 0x7f, 0x7b, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xcb, 0xfb, 0xb7, 0x0f, 0xca, 0xb8, 0x9d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x63, 0x01, 0xb8, 0x0f, 0xa9, 0x83, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x1c, 0xe0, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x20, 0x03, 0xee, 0x43, 0x2b, 0xf1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x03, 0x12, 0xb8, 0x0f, 0xc9, 0xa5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xab, 0x17, 0xb8, 0x0f, 0x31, 0x1c, 0x64, 0x6b, 0x68, 0xbf, 0x3e, 0xec, 0x06, 0x8b, 0xb1, 0xbc, 0x16, 0x6e, 0x83, 0xa2, 0x19, 0xf2, 0xa0, 0x38, 0xd4, 0x38, 0x1c, 0xed, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0x66, 0x70, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0xe5, 0xe0, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xf6, 0xc1, 0x7d, 0xb0, 0xba, 0x30, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x11, 0xe1, 0x3e, 0xf4, 0x27, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xe5, 0x24, 0xdc, 0x07, 0xa9, 0xeb, 0x03, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xdb, 0x50, 0xb8, 0x87, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x9c, 0x15, 0xee, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf1, 0x2d, 0xdc, 0x07, 0x11, 0xbb, 0x0c, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0xc2, 0x70, 0x1f, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xd9, 0x0c, 0xf7, 0x18, 0x44, 0xff, 0x38, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb5, 0x36, 0xdc, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x96, 0xc3, 0xbd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x21, 0x3c, 0xdc, 0x87, 0xa3, 0x7d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x66, 0x1f, 0xee, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x81, 0x41, 0xdc, 0x07, 0x27, 0x3e, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x85, 0x88, 0xfb, 0xd0, 0x9f, 0x7c, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x1b, 0x71, 0x1f, 0x87, 0x8e, 0x43, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x9c, 0xc4, 0xbd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x81, 0x4c, 0xdc, 0x87, 0xa3, 0x7d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x9a, 0x27, 0xee, 0xc3, 0xd1, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf1, 0x51, 0xdc, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x4a, 0xc5, 0x7d, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xef, 0x8a, 0xfb, 0x20, 0x65, 0x30, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xc3, 0xb4, 0xb8, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xa3, 0x8b, 0xfb, 0xd0, 0x4a, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xee, 0x2f, 0xee, 0x83, 0x14, 0x48, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xdb, 0xc6, 0xb8, 0x0f, 0x31, 0x3c, 0x9c, 0x62, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0x1d, 0x6e, 0x0f, 0xbb, 0xc1, 0x20, 0xe0, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x6e, 0xc5, 0xed, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa5, 0x8d, 0xdb, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xbb, 0x20, 0xb7, 0x0f, 0x16, 0xbe, 0x7a, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x21, 0x93, 0xdb, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x5f, 0xb9, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x89, 0x99, 0xdb, 0x87, 0xb5, 0xdf, 0xe3, 0xf9, 0x71, 0xe8, 0xf8, 0x76, 0x3c, 0x3e, 0x1e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xfe, 0xc6, 0x3d, 0x08, 0x36, 0x78, 0xd8, 0x5e, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x8f, 0x07, 0xef, 0x92, 0xe3, 0x3e, 0xa4, 0x6a, 0x8e, 0x43, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x05, 0xc1, 0xe2, 0x06, 0xc5, 0xb4, 0xe0, 0x6c, 0x10, 0xff, 0xf1, 0x19, 0xb3, 0x41, 0x00, 0xdc, 0x1f, 0x14, 0xd5, 0x82, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xeb, 0xf2, 0xb8, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0xb1, 0xe3, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x0e, 0x3e, 0xee, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x07, 0x0d, 0xa6, 0x30, 0x1d, 0xd2, 0x70, 0x83, 0x6c, 0x83, 0x78, 0x71, 0x08, 0x19, 0x64, 0x1b, 0xc4, 0xb8, 0x43, 0xc8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0x10, 0x72, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x0c, 0xc8, 0x3d, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xb0, 0x21, 0xf7, 0xc1, 0xfb, 0x11, 0x4a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x2f, 0x91, 0xfb, 0x20, 0x1a, 0x4f, 0x35, 0x8e, 0x43, 0x87, 0xa6, 0x40, 0x83, 0x6c, 0x83, 0x78, 0x71, 0x08, 0x19, 0x64, 0x1b, 0xc4, 0xb8, 0x43, 0xc8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0x3e, 0x72, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xc5, 0xc8, 0x7d, 0x10, 0xd1, 0x0e, 0x1a, 0x83, 0x6c, 0x83, 0x78, 0x71, 0x08, 0x19, 0x64, 0x1b, 0xc4, 0xb8, 0x43, 0xc8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0x6a, 0x72, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x26, 0xc9, 0x3d, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x5c, 0x27, 0xf7, 0xc1, 0x8b, 0x42, 0x88, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x06, 0x94, 0xfb, 0xa0, 0x7d, 0x09, 0xa6, 0xe3, 0xd0, 0xc1, 0x12, 0xfe, 0x9f, 0x41, 0xb6, 0x41, 0xbc, 0x38, 0x84, 0x0c, 0xb2, 0x0d, 0x62, 0xdc, 0x21, 0x64, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xa3, 0x5a, 0xb9, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x1d, 0xe5, 0x1e, 0x04, 0x1b, 0xc4, 0x7e, 0x84, 0xc6, 0xc1, 0x7b, 0x0e, 0x33, 0x06, 0xd9, 0x06, 0xf1, 0xe2, 0x10, 0x32, 0xc8, 0x36, 0x88, 0x71, 0x87, 0x90, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x9d, 0xe5, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x04, 0x96, 0x7b, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x32, 0x5b, 0xee, 0x83, 0x57, 0x35, 0x09, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x25, 0xb9, 0xdc, 0x07, 0xed, 0x4b, 0x30, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xfc, 0x5d, 0xee, 0x83, 0x25, 0x54, 0x6c, 0xc7, 0xa1, 0x83, 0x87, 0x78, 0x66, 0x0c, 0xb2, 0x0d, 0xe2, 0xc5, 0x21, 0x64, 0x90, 0x6d, 0x10, 0xe3, 0x0e, 0x21, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x35, 0xcc, 0x3d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x14, 0x30, 0xf7, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x15, 0xc6, 0xdc, 0x07, 0xaf, 0x6a, 0x12, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xa3, 0x91, 0xb9, 0x0f, 0x96, 0xaa, 0xfb, 0x0c, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xca, 0x65, 0xee, 0x41, 0x32, 0x20, 0xe9, 0xbf, 0xea, 0x78, 0x7c, 0x1c, 0x3a, 0x78, 0x28, 0x6d, 0xc6, 0x20, 0xdb, 0x20, 0x5e, 0x1c, 0x42, 0x06, 0xd9, 0x06, 0x31, 0xee, 0x10, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xe1, 0xdc, 0xdc, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0x3c, 0x73, 0x0f, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xf9, 0xcd, 0x7d, 0xf0, 0x2c, 0xbd, 0xb1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x4d, 0x9c, 0xfb, 0x20, 0x5e, 0xf0, 0x2c, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x50, 0x39, 0xf7, 0xc1, 0x52, 0x75, 0x9f, 0xe3, 0xd0, 0xc1, 0xbb, 0x0b, 0x99, 0x06, 0xd9, 0x06, 0xf1, 0xe2, 0x10, 0x32, 0xc8, 0x36, 0x88, 0x71, 0x87, 0x90, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xdb, 0xe2, 0xb9, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x40, 0xe7, 0x1e, 0x04, 0x1b, 0xc4, 0x42, 0x90, 0xc6, 0xc1, 0x43, 0xf5, 0xc2, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x2b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x04, 0x3e, 0xf7, 0x20, 0xd8, 0x60, 0xe4, 0x3f, 0x2c, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xe4, 0xd0, 0x3d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xe7, 0x44, 0xf7, 0xf0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x8e, 0xd1, 0x3d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x4f, 0xa5, 0x7b, 0xd8, 0x0d, 0x82, 0x5e, 0x7f, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xbb, 0x60, 0xba, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x63, 0xa6, 0xfb, 0x10, 0xcd, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x9b, 0x6b, 0xba, 0x0f, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xb6, 0xa5, 0xfb, 0x10, 0xcd, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x03, 0x71, 0xba, 0x07, 0xc1, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x21, 0x3b, 0xdd, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0x22, 0x75, 0x0f, 0xbb, 0x41, 0xab, 0xb2, 0x49, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xbd, 0xd4, 0xbd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x81, 0x4e, 0xdd, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x63, 0xa2, 0xba, 0x0f, 0x56, 0x6a, 0x7a, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xe9, 0x53, 0xdd, 0x87, 0x68, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x43, 0xad, 0xba, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x2a, 0xab, 0xfb, 0x30, 0x2e, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0x70, 0x75, 0x1f, 0x5a, 0x00, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x62, 0xaf, 0xee, 0x43, 0xc3, 0xaf, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x79, 0x61, 0xdd, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x63, 0xc8, 0xba, 0x0f, 0xd2, 0x68, 0x17, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x6e, 0xb3, 0xee, 0xc3, 0xb8, 0x0c, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xce, 0xb4, 0xee, 0x43, 0x0b, 0xa0, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x55, 0x6c, 0xdd, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xe8, 0xb7, 0xee, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xb8, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xce, 0x5c, 0xf7, 0x41, 0x90, 0x44, 0x1f, 0x8f, 0x87, 0x5f, 0x10, 0x2d, 0x58, 0x1f, 0x84, 0x00, 0xf8, 0xf1, 0x78, 0xf8, 0x0d, 0x06, 0x3b, 0xc0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf9, 0x75, 0xdd, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xba, 0xbc, 0xee, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xb8, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x37, 0x5f, 0xf7, 0xc1, 0xd9, 0xe8, 0xf9, 0x78, 0x3e, 0xfc, 0x82, 0x68, 0x41, 0xfb, 0x41, 0x08, 0x80, 0x1f, 0x8f, 0x87, 0xdf, 0x60, 0xb0, 0x03, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xf9, 0xd7, 0xbd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x45, 0x82, 0xdd, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x4e, 0xd8, 0x7d, 0x48, 0x1d, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x79, 0xd8, 0x7d, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x4a, 0xb1, 0xfb, 0xb0, 0xf6, 0x7b, 0x7c, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xc8, 0xa2, 0xfb, 0x38, 0x74, 0x3c, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x40, 0xc7, 0xee, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x5c, 0x76, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xd1, 0xd9, 0x3d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xf8, 0xb3, 0x7b, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xf7, 0x68, 0xf7, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x4a, 0xd3, 0xee, 0x41, 0x32, 0x20, 0xf1, 0xee, 0xeb, 0x90, 0x5c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x58, 0xd5, 0xee, 0x43, 0xea, 0xe0, 0x38, 0x74, 0x30, 0xd2, 0xb4, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x6c, 0xed, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x16, 0xd8, 0xee, 0x83, 0x10, 0x00, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x6b, 0xb6, 0x7b, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x83, 0x6d, 0xf7, 0xc1, 0x71, 0x3a, 0x7e, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x4b, 0x74, 0xbb, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0xf3, 0x76, 0x1f, 0x24, 0x53, 0x56, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x9d, 0xbf, 0xdd, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x25, 0xdc, 0x7d, 0xe8, 0x4f, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x45, 0x71, 0xf7, 0x41, 0x48, 0x81, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xf4, 0xe3, 0xee, 0x43, 0xaa, 0xe6, 0x38, 0x74, 0x1c, 0x3a, 0x1e, 0xaf, 0x20, 0xd8, 0x60, 0x59, 0x18, 0xcc, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x6c, 0xe6, 0xee, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x94, 0xee, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xed, 0xb9, 0xfb, 0xe0, 0xe5, 0xca, 0x45, 0x83, 0x6c, 0x83, 0xd8, 0x81, 0x0b, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xab, 0xba, 0xfb, 0x20, 0xde, 0x36, 0x40, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x2b, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x8e, 0x76, 0xf7, 0x20, 0xd8, 0xe0, 0x61, 0x7b, 0x3d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x1e, 0xbc, 0x95, 0xbb, 0xfb, 0x90, 0xaa, 0x39, 0x0e, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x57, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x9a, 0xf2, 0xee, 0xc5, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x44, 0xef, 0x1e, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x37, 0x7c, 0xf7, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xf2, 0x01, 0xef, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x35, 0xf0, 0x3e, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb2, 0x04, 0xef, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x29, 0x0c, 0xde, 0x07, 0xb1, 0xd7, 0x02, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0x3c, 0x78, 0x1f, 0x52, 0x07, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x38, 0xc2, 0xfb, 0x10, 0xc3, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x85, 0x14, 0xde, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xe8, 0xf0, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x26, 0xc6, 0x7b, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x4a, 0xe3, 0x3d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xeb, 0xc6, 0x7b, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x85, 0x8e, 0xf7, 0x20, 0x19, 0x14, 0x1d, 0x9c, 0xbd, 0x8c, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x74, 0x1e, 0xef, 0x43, 0xaa, 0x66, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0xfe, 0x78, 0x1f, 0x52, 0x07, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x13, 0xf2, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x94, 0x22, 0xef, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xd3, 0x90, 0xbc, 0x0f, 0xad, 0xc4, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x65, 0xc9, 0x7b, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xd3, 0x9b, 0xbc, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x89, 0xf2, 0x3e, 0xb4, 0x12, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x7e, 0xca, 0x7b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xa0, 0x2b, 0xef, 0x43, 0x2b, 0xf1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x1b, 0xb4, 0xbc, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xea, 0xf2, 0x3e, 0xb4, 0x12, 0x3f, 0x0e, 0x0d, 0xbf, 0xc1, 0xc0, 0x04, 0x18, 0x7e, 0x83, 0xc1, 0x0e, 0x30, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x09, 0x98, 0xf7, 0xf0, 0x0b, 0xa2, 0x05, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xa3, 0xc6, 0xbc, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xc1, 0xcc, 0xfb, 0xd0, 0x9f, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x66, 0x34, 0xef, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x89, 0x6b, 0xde, 0x83, 0x64, 0xa0, 0xbb, 0xd3, 0xc1, 0xe9, 0x0c, 0x79, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x72, 0xf3, 0x3e, 0xec, 0x15, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x88, 0x38, 0xef, 0x43, 0x7f, 0xf2, 0xe3, 0xd0, 0xf1, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xf0, 0x39, 0xef, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xd3, 0x9d, 0xf7, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x0e, 0x3d, 0xef, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd5, 0x7c, 0xde, 0x07, 0xd1, 0x83, 0x03, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0xfe, 0x79, 0x1f, 0xf6, 0x0a, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x98, 0xa0, 0xf7, 0x21, 0x55, 0x73, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x94, 0x42, 0xef, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x3f, 0xf4, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x67, 0xd1, 0x7b, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x7d, 0xa3, 0xf7, 0x20, 0x19, 0x48, 0x3a, 0x1d, 0x9c, 0xce, 0x90, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x17, 0xd2, 0xfb, 0x20, 0xa4, 0xc0, 0x8f, 0x43, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x47, 0xe9, 0x3d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xeb, 0xa5, 0xf7, 0xb0, 0x0b, 0xb7, 0x21, 0x86, 0x07, 0x6d, 0x8f, 0x38, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x44, 0xa8, 0xf7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x09, 0xa5, 0xde, 0x07, 0xe9, 0x50, 0x1e, 0xc3, 0x2e, 0xdc, 0x86, 0x56, 0xe2, 0x07, 0x6d, 0x8f, 0x38, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xac, 0xaa, 0xf7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa9, 0xae, 0xde, 0x07, 0x89, 0x72, 0x1f, 0xc3, 0x2e, 0xdc, 0x86, 0xa3, 0xfd, 0xa0, 0xed, 0x11, 0xa7, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0xa2, 0xf5, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x08, 0xd7, 0xfb, 0x10, 0xc3, 0x61, 0x17, 0x6e, 0x43, 0x7f, 0xf2, 0x83, 0xb6, 0x47, 0x9c, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xba, 0xd7, 0x7b, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x23, 0x81, 0xbd, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x24, 0xf6, 0x3e, 0x48, 0x28, 0x3b, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xeb, 0xd8, 0x7b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xaa, 0x65, 0xef, 0x83, 0x84, 0xb2, 0x93, 0x41, 0xb6, 0xa1, 0xf9, 0xfa, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x79, 0x9b, 0xde, 0x87, 0x53, 0x6c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x16, 0x67, 0xef, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xdb, 0xa2, 0xbd, 0x87, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x1c, 0x6a, 0xef, 0xe1, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xde, 0xda, 0xfb, 0xd0, 0x9f, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xda, 0x6c, 0xef, 0x83, 0xc1, 0x1a, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x11, 0xe0, 0xde, 0x87, 0xa3, 0x7d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb2, 0x6e, 0xef, 0x43, 0x0c, 0x8f, 0x43, 0xc3, 0x6f, 0x30, 0x6c, 0x03, 0x86, 0xdf, 0x60, 0xb0, 0x03, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x2b, 0xee, 0x3d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x69, 0xdd, 0x7b, 0xd8, 0x85, 0xdb, 0x10, 0xc3, 0x83, 0xe1, 0x45, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x3d, 0xf4, 0xde, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x6f, 0xef, 0x7d, 0x88, 0xe1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0xe7, 0x7b, 0x1f, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x29, 0xbf, 0xf7, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xf7, 0xef, 0x7d, 0xd0, 0xd8, 0x5f, 0xff, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0x18, 0x7c, 0x1f, 0x04, 0x59, 0xfc, 0xe1, 0x14, 0x1b, 0x76, 0xe1, 0x36, 0xb4, 0x12, 0x3f, 0x18, 0x5e, 0x14, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xc3, 0xf0, 0xbd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf5, 0x0e, 0xdf, 0x87, 0x18, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x72, 0xc4, 0xf7, 0xe1, 0x68, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x93, 0xe2, 0x7b, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0xbb, 0xf8, 0x3e, 0x68, 0xec, 0xaf, 0x7f, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x03, 0x3b, 0xbe, 0x0f, 0x82, 0x2c, 0xfe, 0x70, 0x8a, 0x0d, 0xbb, 0x70, 0x1b, 0x8e, 0xf6, 0x83, 0xe1, 0x45, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x41, 0x23, 0xdf, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x5f, 0xf2, 0x7d, 0x38, 0xda, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x46, 0xf9, 0x3e, 0xc4, 0x70, 0xd8, 0x85, 0xdb, 0xd0, 0x9f, 0xfc, 0x60, 0x78, 0x51, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x9e, 0xcb, 0xf7, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0xc4, 0x7c, 0x1f, 0x8e, 0xf6, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x1b, 0x68, 0xbe, 0x87, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x70, 0x9b, 0xef, 0x83, 0x76, 0x42, 0x9c, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xa0, 0xe7, 0x7b, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xfe, 0xf9, 0x3e, 0x08, 0xb2, 0xf8, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x34, 0x5f, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xd5, 0xdd, 0xfb, 0x70, 0x8a, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x2b, 0xf4, 0x3d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xc1, 0xe8, 0x7b, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x47, 0xfa, 0x1e, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x3b, 0x97, 0xbe, 0x0f, 0xfd, 0xc9, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x72, 0xfa, 0x3e, 0x74, 0x0c, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x08, 0xaa, 0xef, 0x83, 0xa0, 0xf4, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x27, 0xea, 0xfb, 0xd0, 0x31, 0x6c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xea, 0xab, 0xef, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x01, 0xd7, 0xf7, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x7b, 0x7d, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x0c, 0xfb, 0x3e, 0x88, 0x26, 0x7b, 0x8b, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x8a, 0xec, 0xfb, 0xd0, 0x9f, 0x7c, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x71, 0xf6, 0xbd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd9, 0x69, 0xdf, 0x07, 0xc3, 0x18, 0x76, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x94, 0xb6, 0xef, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x84, 0xfb, 0x3e, 0x18, 0x6f, 0x3a, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xcb, 0xe6, 0xbe, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0xd8, 0x7d, 0x1f, 0x9c, 0x28, 0x94, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x72, 0xbc, 0xef, 0x83, 0x61, 0x0c, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x93, 0xf7, 0xbe, 0x8f, 0x43, 0xc7, 0xa1, 0xe1, 0x17, 0x44, 0x0b, 0x54, 0xff, 0x83, 0x10, 0x00, 0x3f, 0x1e, 0x0f, 0xbf, 0xc1, 0x60, 0x07, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xd6, 0xef, 0x7b, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x28, 0xf8, 0xbd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x4d, 0x85, 0xdf, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x1b, 0x10, 0xbf, 0x07, 0xc9, 0x40, 0x71, 0x3a, 0x38, 0x6d, 0x28, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd5, 0x8a, 0xdf, 0x87, 0xfe, 0xe4, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xce, 0xc6, 0xef, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x82, 0xfc, 0x3e, 0x58, 0xa7, 0xd2, 0x30, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xd0, 0xe4, 0xf7, 0x71, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0x58, 0x7e, 0x1f, 0x0c, 0xde, 0xc9, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf1, 0x98, 0xdf, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x6b, 0x37, 0xbf, 0x0f, 0x8e, 0x12, 0xcb, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x9c, 0xe7, 0xf7, 0xc1, 0x3a, 0x95, 0x86, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x15, 0xfa, 0x7d, 0x1c, 0x3a, 0x0e, 0x0d, 0xbf, 0x20, 0x5a, 0xe0, 0xfa, 0x3f, 0x08, 0x01, 0xf0, 0xe3, 0xf1, 0xf0, 0x1b, 0x0c, 0x76, 0x80, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x5b, 0x48, 0xbf, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xdb, 0xf4, 0x7b, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x23, 0x53, 0xbf, 0x0f, 0xc9, 0x8e, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x6a, 0xfd, 0x3e, 0xec, 0x15, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x09, 0xfb, 0x7d, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x6d, 0xf6, 0xfb, 0xa0, 0x70, 0x4b, 0x3a, 0x1e, 0x1f, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xb5, 0xfd, 0x1e, 0x04, 0x8b, 0x73, 0x50, 0xfa, 0x46, 0x2c, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xe2, 0xfc, 0x3d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xe9, 0xf4, 0xf7, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x78, 0xeb, 0xef, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb1, 0xd9, 0xdf, 0x07, 0xc9, 0x83, 0xd5, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xc6, 0xfd, 0x3d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xe4, 0xfb, 0xfb, 0x60, 0xd5, 0x17, 0xc4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x1e, 0xfe, 0x7d, 0xe8, 0x4f, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x6b, 0xc9, 0xbf, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0x9d, 0x7f, 0x0f, 0x92, 0x81, 0xb2, 0x72, 0x70, 0x12, 0x3a, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x83, 0xd4, 0xbf, 0x0f, 0x47, 0xfb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x67, 0xff, 0x3e, 0x44, 0xf3, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x06, 0xff, 0x3d, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0xcc, 0x7f, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xaf, 0xff, 0x3e, 0x48, 0x11, 0xae, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x1b, 0xf1, 0xbf, 0x8f, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x79, 0xff, 0xfb, 0xd0, 0x9f, 0xfc, 0x38, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x95, 0xfe, 0xdf, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x23, 0x24, 0xc0, 0x87, 0x5d, 0xd8, 0x0d, 0xd2, 0x15, 0xad, 0x17, 0x76, 0x83, 0xc7, 0xc9, 0x42, 0x2c, 0xec, 0x06, 0x0f, 0xc2, 0xa1, 0x58, 0xb8, 0x0d, 0x31, 0x3c, 0x18, 0x56, 0x2b, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x02, 0x01, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x8c, 0x11, 0xf0, 0x43, 0x0c, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xcc, 0x04, 0xfc, 0x20, 0x1d, 0xca, 0x63, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x98, 0x14, 0xf0, 0x83, 0x20, 0xb7, 0x1e, 0x76, 0x61, 0x37, 0x48, 0x57, 0xb4, 0x5e, 0xd8, 0x0d, 0x1e, 0x27, 0x0b, 0xb1, 0xb0, 0x1b, 0x3c, 0x08, 0x87, 0x62, 0xe1, 0x36, 0x1c, 0xed, 0x07, 0xc3, 0x6a, 0xe5, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0xc3, 0xd1, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xfd, 0x37, 0xe0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xab, 0x03, 0x7e, 0x68, 0x25, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x05, 0x3e, 0xe0, 0x07, 0x89, 0x72, 0x1f, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0x03, 0x81, 0x1f, 0x04, 0xb9, 0xf5, 0xb0, 0x0b, 0xbb, 0x41, 0xba, 0xa2, 0xf5, 0xc2, 0x2e, 0xdc, 0x86, 0xa3, 0xfd, 0x60, 0x10, 0xad, 0x1c, 0xbc, 0x52, 0x1a, 0xe2, 0x70, 0xb4, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xfc, 0x12, 0xf8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x3a, 0x81, 0x1f, 0x8e, 0xf6, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xeb, 0xa3, 0xc0, 0x0f, 0x31, 0x1c, 0x64, 0x6b, 0x68, 0xbf, 0x3e, 0xec, 0x06, 0xe9, 0x8a, 0xd6, 0x0b, 0xbb, 0x41, 0x2c, 0x69, 0x88, 0x6c, 0xf0, 0x20, 0x1c, 0x8a, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0xe7, 0x02, 0x1f, 0x7e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xcb, 0xfe, 0xc0, 0x0f, 0x82, 0xdc, 0x7a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x43, 0xc0, 0xc0, 0x0f, 0xfd, 0xc9, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x6d, 0x0c, 0x7c, 0x83, 0x35, 0xda, 0x0a, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0x99, 0x81, 0x1f, 0x62, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x09, 0x69, 0xe0, 0x07, 0x05, 0x00, 0xd4, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0xaf, 0x81, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xa8, 0x1b, 0xf8, 0xe1, 0x68, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x2b, 0x0e, 0xfc, 0x38, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x39, 0x74, 0xe0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x6f, 0x07, 0x7e, 0x38, 0xda, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xcd, 0x03, 0x3f, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xc9, 0x07, 0x7e, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf1, 0x82, 0xe0, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x63, 0x0c, 0xc1, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x23, 0x82, 0x1f, 0x3c, 0x86, 0x81, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x5d, 0x04, 0x3f, 0xf4, 0x27, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x7d, 0x8e, 0xe0, 0x87, 0x86, 0x5f, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x8b, 0x22, 0xc1, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x52, 0x82, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0xba, 0x04, 0x1f, 0x24, 0x03, 0x6d, 0x9d, 0x0e, 0xce, 0x5e, 0xc6, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x86, 0x26, 0xf8, 0xa1, 0x3f, 0xf9, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xe7, 0x04, 0x3f, 0x0e, 0x1d, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xfd, 0x04, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x01, 0x0b, 0x3e, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0xcb, 0x82, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0xac, 0x05, 0x1f, 0x24, 0x03, 0xf9, 0x95, 0x83, 0x73, 0xde, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x83, 0x0b, 0x7e, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x19, 0xbb, 0xe0, 0x87, 0xfe, 0xe4, 0xc7, 0xa1, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xef, 0x05, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x52, 0x60, 0xf0, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x81, 0xc3, 0xe0, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x63, 0x0c, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf9, 0xc8, 0xe0, 0x87, 0xfe, 0xe4, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0x2f, 0x83, 0x1f, 0x8e, 0xf6, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x33, 0x9d, 0xc1, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x2b, 0x1a, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x3c, 0x6a, 0xf0, 0x43, 0x7f, 0xf2, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xba, 0x06, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xfe, 0x6c, 0xf0, 0x0d, 0xd6, 0x68, 0x2b, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xcc, 0x0d, 0x7e, 0x88, 0xe1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0x7e, 0x83, 0x1f, 0x62, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x39, 0xe2, 0xe0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x4f, 0x0e, 0x7e, 0x68, 0x25, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xed, 0x39, 0xf8, 0x41, 0x60, 0x62, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xa6, 0x3a, 0xf8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0xb5, 0x83, 0x1f, 0x5a, 0x89, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x01, 0x0f, 0x7e, 0x88, 0xff, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0xcd, 0x83, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x8d, 0x3d, 0xf8, 0xa1, 0x95, 0xf8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xfd, 0xf8, 0xe0, 0x87, 0x18, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xf0, 0x3e, 0xf8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0xfa, 0x83, 0x1f, 0x5a, 0x89, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x14, 0x10, 0x7e, 0x10, 0x52, 0xe0, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0x13, 0x84, 0x1f, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xec, 0x41, 0xf8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0x29, 0x84, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x45, 0x43, 0xf8, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xe6, 0x87, 0xf0, 0x41, 0x32, 0x90, 0x74, 0x3a, 0x38, 0xe7, 0x1d, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xa3, 0x44, 0xf8, 0x41, 0x60, 0x62, 0x1f, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0xab, 0x08, 0x3f, 0x18, 0xad, 0xe6, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x85, 0x11, 0x7e, 0x58, 0xfb, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xd2, 0x8d, 0xf0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0xf3, 0x08, 0x3f, 0x08, 0x01, 0xf0, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xdb, 0x43, 0xc2, 0x0f, 0xa9, 0x83, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x26, 0x09, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xce, 0x93, 0xf0, 0x43, 0xea, 0x60, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x40, 0x95, 0xf0, 0x43, 0xaa, 0x66, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xb3, 0x5a, 0xc2, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x03, 0x26, 0xfc, 0x90, 0xaa, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x5d, 0x26, 0xfc, 0xa0, 0x1c, 0x6b, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xb8, 0x26, 0xfc, 0x10, 0xc3, 0xc3, 0x29, 0x76, 0x3c, 0x3e, 0x1e, 0xaf, 0x20, 0x58, 0xdc, 0xe0, 0x71, 0x00, 0xc8, 0x87, 0x53, 0x6c, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xa4, 0x50, 0xf8, 0xb0, 0x0b, 0xb7, 0x18, 0xfc, 0xdb, 0x7a, 0x88, 0xe6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0x14, 0x85, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xf8, 0x51, 0xf8, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0xf1, 0x27, 0x26, 0xb2, 0x41, 0xfc, 0x89, 0x89, 0x1c, 0x4e, 0xb1, 0x41, 0xb6, 0x41, 0x04, 0x8c, 0x89, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xb4, 0x14, 0x7e, 0x30, 0x34, 0x7f, 0x87, 0x5d, 0xb8, 0xc5, 0x83, 0x97, 0x4c, 0x85, 0x1f, 0xa2, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x05, 0x4e, 0xe1, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x0b, 0x15, 0x3e, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0x41, 0x94, 0x9b, 0x89, 0x6c, 0x10, 0xe5, 0x66, 0x22, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0x10, 0x7d, 0x67, 0x22, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0x51, 0x85, 0x1f, 0x0c, 0xcd, 0xdf, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x53, 0xae, 0xc2, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x3b, 0x2b, 0xfc, 0x20, 0xda, 0x66, 0x36, 0x06, 0xd9, 0x06, 0xf1, 0xb4, 0x26, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xfa, 0x57, 0xf8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa9, 0x5c, 0xe1, 0x83, 0x60, 0x83, 0xe8, 0xc6, 0xd9, 0x38, 0x74, 0xd0, 0x38, 0x34, 0x7f, 0x39, 0x1e, 0x2f, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0xa9, 0x85, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x0f, 0x5c, 0xf8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x01, 0x6d, 0xe1, 0x07, 0x51, 0x16, 0x80, 0x31, 0xc8, 0x36, 0x88, 0x18, 0x38, 0x91, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x3b, 0xec, 0xc2, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x97, 0x0b, 0x3f, 0x78, 0x63, 0x9a, 0xd7, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x10, 0x6c, 0x10, 0xa1, 0xe9, 0x1a, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x43, 0xfc, 0xc2, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xd7, 0x0b, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xe8, 0xc3, 0xf0, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x93, 0x01, 0xc3, 0x07, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x54, 0x0c, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xd4, 0x18, 0x7e, 0x90, 0x22, 0xe3, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0x40, 0x86, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x1b, 0x3c, 0x4d, 0xbf, 0xe7, 0xd0, 0xfc, 0xe5, 0x78, 0x3c, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xa3, 0x25, 0xc3, 0x0f, 0x0e, 0x34, 0xb7, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0xad, 0x0c, 0x3f, 0x48, 0xd8, 0x67, 0x3e, 0x0e, 0x1d, 0xd2, 0x70, 0x83, 0x6c, 0x83, 0x78, 0xac, 0x13, 0x19, 0x64, 0x1b, 0xc4, 0x90, 0x9d, 0xc8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0x7f, 0x86, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x88, 0x19, 0x3e, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xa5, 0x68, 0xf8, 0xc1, 0x1b, 0x01, 0x4a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xa9, 0x34, 0xfc, 0xe0, 0x40, 0x73, 0x7b, 0x1c, 0x3a, 0x34, 0x05, 0x1a, 0x64, 0x1b, 0xc4, 0x63, 0x9d, 0xc8, 0x20, 0xdb, 0x20, 0x86, 0xec, 0x44, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x0a, 0x36, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x50, 0xd4, 0xf0, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x1b, 0x66, 0xc3, 0x0f, 0xde, 0x08, 0x50, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xc1, 0xb5, 0xe1, 0x83, 0x64, 0x40, 0x61, 0xf7, 0x75, 0x3c, 0x3e, 0x0e, 0x1d, 0x3a, 0x11, 0x0d, 0xb2, 0x0d, 0xe2, 0xb1, 0x4e, 0x64, 0x90, 0x6d, 0x10, 0x43, 0x76, 0x22, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xc5, 0x1b, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x45, 0x6e, 0xf8, 0xc1, 0x93, 0xef, 0xc1, 0x06, 0xd9, 0x06, 0xf1, 0x58, 0x27, 0x32, 0xc8, 0x36, 0x88, 0x21, 0x3b, 0x91, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x12, 0x0e, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xe2, 0x37, 0x7c, 0x10, 0x6c, 0xf0, 0xb0, 0xbd, 0x9e, 0x83, 0xb5, 0x22, 0x59, 0x83, 0x6c, 0x83, 0x78, 0xac, 0x13, 0x19, 0x64, 0x1b, 0xc4, 0x90, 0x9d, 0xc8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0x21, 0x87, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x51, 0x1c, 0x3e, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xc5, 0x72, 0xf8, 0xc1, 0xfb, 0x11, 0x4a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xa4, 0xfe, 0x63, 0x2c, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x6e, 0x0e, 0x3f, 0x78, 0xad, 0xda, 0xd5, 0xa1, 0xf9, 0xcb, 0xf1, 0xf8, 0x38, 0x74, 0xf0, 0x10, 0xcf, 0x8c, 0x41, 0xb6, 0x41, 0x3c, 0xd6, 0x89, 0x0c, 0xb2, 0x0d, 0x62, 0xc8, 0x4e, 0x64, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x53, 0xa9, 0xc3, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x85, 0x0e, 0x1f, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xed, 0x3a, 0xfc, 0xe0, 0x45, 0x21, 0x44, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xa2, 0x1d, 0x7e, 0xf0, 0xb8, 0x52, 0xab, 0xe3, 0xd0, 0xc1, 0x43, 0x69, 0x33, 0x06, 0xd9, 0x06, 0xf1, 0x58, 0x27, 0x32, 0xc8, 0x36, 0x88, 0x21, 0x3b, 0x91, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x8b, 0xc0, 0xc3, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xe8, 0x0e, 0x1f, 0x04, 0x1b, 0xc4, 0x62, 0xd3, 0xc6, 0xc1, 0x0b, 0x9d, 0x33, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x46, 0xfe, 0xc3, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x6c, 0x1b, 0xf1, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xeb, 0x11, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x2d, 0x47, 0xfc, 0x20, 0xce, 0x4f, 0x34, 0x06, 0xd9, 0x06, 0xb1, 0x08, 0x2a, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x0d, 0x44, 0xe2, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x01, 0x89, 0x0f, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x6d, 0x24, 0x7e, 0xf0, 0xaa, 0x26, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x32, 0x49, 0xfc, 0xe0, 0x71, 0xa5, 0x56, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x8c, 0x49, 0xfc, 0xe0, 0xe0, 0x51, 0x7b, 0x1c, 0x3a, 0x34, 0x05, 0x1a, 0x64, 0x1b, 0xc4, 0x22, 0xa8, 0xc8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x05, 0x53, 0xe2, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0x3d, 0x89, 0x0f, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x5c, 0x25, 0x7e, 0xf0, 0xaa, 0x26, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x11, 0x4b, 0xfc, 0xe0, 0xe0, 0x51, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xbb, 0xb6, 0xc4, 0x0f, 0x1e, 0x57, 0x6a, 0x75, 0x1c, 0x3a, 0xb4, 0x00, 0x3b, 0x34, 0x7f, 0x39, 0x1e, 0x2f, 0x08, 0x36, 0x18, 0xf9, 0x0f, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x73, 0xc9, 0xc4, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x6f, 0x4d, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xa6, 0x33, 0xf1, 0x41, 0xb0, 0xc1, 0xc3, 0xf6, 0x7a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x2c, 0xc9, 0x97, 0x39, 0x64, 0xed, 0x8e, 0x43, 0x83, 0x6c, 0x83, 0x78, 0x83, 0x15, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x84, 0x3a, 0xf1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x7b, 0xdc, 0xc4, 0x0f, 0x5e, 0xb2, 0xd7, 0x33, 0xc8, 0x36, 0x88, 0x37, 0x58, 0x91, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x1b, 0xfa, 0xc4, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0xbe, 0x13, 0x1f, 0x04, 0x1b, 0x3c, 0x6c, 0xaf, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x92, 0x7c, 0x99, 0x43, 0xc7, 0xb0, 0xe3, 0xd0, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x10, 0x6c, 0x30, 0xf2, 0x1f, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0x60, 0x8a, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x7f, 0xa7, 0xf8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xc9, 0x9a, 0xe2, 0x07, 0x2f, 0x32, 0x39, 0x1b, 0x64, 0x1b, 0x44, 0x7c, 0xae, 0xc8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0x8f, 0x8a, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x0c, 0x2a, 0x7e, 0xf0, 0x84, 0xa1, 0xa3, 0x41, 0xb6, 0x41, 0xc4, 0xe7, 0x8a, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x9e, 0x2a, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xab, 0xa9, 0xf8, 0x41, 0x50, 0x7a, 0x1f, 0x9a, 0xbf, 0x1c, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x6b, 0x15, 0x5f, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x62, 0x58, 0xf1, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0xe4, 0x8a, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x2b, 0x16, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x18, 0x64, 0xf1, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x56, 0x16, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xd9, 0x2c, 0x7e, 0x10, 0x7b, 0x2d, 0x20, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x19, 0xb4, 0xf8, 0x21, 0x75, 0x30, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x33, 0xa6, 0xc5, 0x0f, 0x31, 0x3c, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x5d, 0x2d, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x24, 0x6f, 0xf1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x0b, 0x19, 0xc6, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xed, 0x0f, 0xe3, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x4b, 0x25, 0xc6, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x55, 0x8c, 0x1f, 0xc4, 0x4f, 0x61, 0xc8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x82, 0x31, 0x7e, 0x48, 0xd5, 0x0c, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x64, 0x8d, 0xf1, 0x43, 0xea, 0xe0, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x91, 0x1d, 0xe3, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x04, 0x32, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xdf, 0xc8, 0xf8, 0xa1, 0x95, 0xf8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0x98, 0x8c, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x97, 0x32, 0x7e, 0x68, 0x25, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x39, 0x2c, 0xe3, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0xbd, 0x8c, 0x1f, 0xfa, 0x93, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x90, 0xcc, 0xf8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x81, 0x35, 0xe3, 0x87, 0x56, 0xe2, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x84, 0x33, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xe1, 0xce, 0xf8, 0xa1, 0x3f, 0xf9, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0xf9, 0x8c, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x19, 0x34, 0x7e, 0x90, 0xb6, 0x42, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x18, 0xd1, 0xf8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa5, 0x47, 0xe3, 0x07, 0x09, 0x65, 0x27, 0xc7, 0xa1, 0xe1, 0x37, 0x18, 0x98, 0x00, 0xc3, 0x6f, 0x30, 0xd8, 0x01, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x54, 0x1a, 0x1f, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x7b, 0x9a, 0xc6, 0x87, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xf6, 0xa7, 0xf1, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x94, 0x1a, 0x3f, 0x08, 0x29, 0xf0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xb0, 0x1a, 0x1f, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xab, 0xb1, 0xc6, 0x87, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xc2, 0xad, 0xf1, 0xc3, 0xd1, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x88, 0xd7, 0xf8, 0x41, 0xe0, 0xc6, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x6e, 0xd8, 0xf8, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x47, 0x36, 0x3e, 0xdc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x9c, 0x8d, 0x8f, 0x07, 0x0f, 0x4d, 0x1b, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x5b, 0x6d, 0xfc, 0x60, 0x4d, 0x99, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0xb9, 0x8d, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x8e, 0x1b, 0x1f, 0x76, 0xe1, 0x36, 0x1c, 0xed, 0x07, 0x6b, 0x77, 0x10, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x64, 0x6f, 0xfc, 0x20, 0x5a, 0x79, 0x30, 0x86, 0x5d, 0xb8, 0x0d, 0xad, 0xc4, 0x0f, 0xd6, 0xee, 0x20, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x36, 0xe0, 0xf8, 0x41, 0xdc, 0x30, 0x61, 0x0c, 0xbb, 0x70, 0x1b, 0xfa, 0x93, 0x1f, 0xac, 0xdd, 0x41, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x48, 0xc3, 0xf1, 0x83, 0x38, 0x6e, 0xb3, 0x18, 0x64, 0x1b, 0x9a, 0xaf, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x59, 0x37, 0x7e, 0x38, 0xc5, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x4b, 0x1c, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x0c, 0xc6, 0xf1, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x76, 0x1c, 0x3f, 0x34, 0x12, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x34, 0xc9, 0xf1, 0xe3, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0x54, 0x8e, 0x1f, 0x9a, 0xf1, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x8d, 0x39, 0x7e, 0xf0, 0xcc, 0x8f, 0x8a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x1b, 0x39, 0xc7, 0x0f, 0x02, 0x13, 0xfb, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0x76, 0x3c, 0x3e, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xfc, 0x39, 0x3e, 0x08, 0x16, 0x67, 0x83, 0xd7, 0xa0, 0xaa, 0x1c, 0x4e, 0xb1, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x93, 0x8b, 0xc7, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x59, 0x1e, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xe7, 0x3c, 0x3e, 0xec, 0xc2, 0x6d, 0x10, 0xad, 0x3c, 0x18, 0x87, 0x46, 0x82, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x4a, 0x3d, 0x7e, 0x38, 0xda, 0x87, 0x5d, 0xb8, 0x0d, 0xe2, 0x86, 0x09, 0xe3, 0xd0, 0x48, 0x70, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xb3, 0xb4, 0xc7, 0x0f, 0xad, 0xc4, 0x07, 0xd9, 0x1a, 0xda, 0xaf, 0x0f, 0xb7, 0x41, 0x1c, 0xb7, 0x59, 0x1c, 0x1a, 0x09, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x01, 0x3e, 0x7e, 0xe8, 0x4f, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xbb, 0xf8, 0xf8, 0xf0, 0x0b, 0xa2, 0x05, 0xb7, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x31, 0x1f, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x8f, 0x3e, 0x3e, 0x48, 0x06, 0x82, 0x73, 0x70, 0xcc, 0x2a, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x73, 0xd7, 0xc7, 0x0f, 0x86, 0x3c, 0xfa, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x73, 0x1f, 0x3f, 0x34, 0x2e, 0x3a, 0x0e, 0x1d, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x8a, 0x1f, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf9, 0xfc, 0xe3, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xfb, 0x3f, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xb2, 0x00, 0xf9, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0x15, 0x90, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x06, 0x02, 0xf9, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0x2b, 0x90, 0x1f, 0x5a, 0x89, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xd7, 0x40, 0x7e, 0x88, 0xe1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0x40, 0x90, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xb4, 0x04, 0xf9, 0xa1, 0x95, 0xf8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x85, 0x15, 0xe4, 0x87, 0xac, 0xdd, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0x61, 0x90, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xc4, 0x06, 0xf9, 0xa1, 0x3f, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd1, 0x1d, 0xe4, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x84, 0x90, 0x1f, 0x8e, 0xf6, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x1e, 0x21, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x3e, 0x13, 0xf2, 0x43, 0x2b, 0xf1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x7b, 0x52, 0xc8, 0x8f, 0x43, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xc1, 0x42, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd5, 0x2e, 0xe4, 0x87, 0xfe, 0xe4, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0xc6, 0x90, 0x1f, 0x1a, 0x17, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x20, 0x0d, 0xf9, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0xdc, 0x90, 0x1f, 0xa4, 0xad, 0x90, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xa0, 0x43, 0x7e, 0x68, 0x96, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xed, 0x3c, 0xe4, 0xc3, 0x6f, 0x3c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x94, 0x7e, 0x7c, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xbb, 0xee, 0xc7, 0x0f, 0x12, 0xca, 0x4e, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0xd1, 0x1f, 0x3f, 0x88, 0x03, 0x74, 0x91, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x83, 0x7f, 0xc8, 0x0f, 0x31, 0x3c, 0x1e, 0x1f, 0x8f, 0x17, 0x04, 0x8b, 0x1b, 0xbc, 0x40, 0x1d, 0xe8, 0x20, 0x00, 0xee, 0x17, 0x07, 0xc1, 0x82, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x1b, 0xc0, 0xc8, 0x07, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x1d, 0xbc, 0x54, 0x6c, 0xe1, 0xd0, 0xa8, 0x65, 0xd8, 0x85, 0xdd, 0xe0, 0xcd, 0x60, 0x52, 0x07, 0x2f, 0x60, 0xbf, 0x3a, 0x18, 0x0b, 0xa3, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x6b, 0x8d, 0x7c, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x93, 0xe2, 0xc8, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x70, 0x23, 0x3f, 0x78, 0x46, 0xc1, 0xd0, 0x20, 0xdb, 0x20, 0x4e, 0x45, 0x46, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xbb, 0x23, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x83, 0x8e, 0x7c, 0x10, 0x6c, 0xf0, 0xa6, 0x70, 0xa1, 0x43, 0x07, 0x8d, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0xff, 0x91, 0x0f, 0x82, 0x0d, 0xce, 0x91, 0xbd, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0x45, 0x92, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x69, 0x49, 0x3e, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0x64, 0x92, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0xdf, 0x24, 0x3f, 0x38, 0xfc, 0xf1, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x91, 0x9e, 0xe4, 0x07, 0xe3, 0xa7, 0x6b, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0x88, 0x92, 0x1f, 0x1a, 0x09, 0x1e, 0x87, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xbe, 0x94, 0xfc, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x43, 0x51, 0xc9, 0x87, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xa4, 0x55, 0xf2, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xfd, 0xad, 0xe4, 0x83, 0x64, 0xf0, 0xe5, 0x60, 0x38, 0x4a, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa1, 0xb0, 0xe4, 0x07, 0xe3, 0xa7, 0x6b, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0xcd, 0x92, 0x1f, 0x1a, 0x09, 0x1e, 0x87, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xca, 0x96, 0xfc, 0x70, 0xb4, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x90, 0x4b, 0x3e, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x75, 0x97, 0xfc, 0xe0, 0xcc, 0x96, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0xf9, 0x92, 0x1f, 0x0c, 0xcd, 0xae, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x1e, 0x4c, 0x7e, 0x10, 0x94, 0xde, 0xc7, 0xa1, 0xe3, 0xf1, 0x0a, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x63, 0x4c, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x72, 0x67, 0xf2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x53, 0xc0, 0xc9, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0x8b, 0x93, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x60, 0x4e, 0x3e, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x17, 0x9d, 0xfc, 0x20, 0xed, 0x1a, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x5b, 0x27, 0x3f, 0xf4, 0x27, 0x5f, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0xb8, 0x93, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x3b, 0x3c, 0xf9, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0xce, 0x93, 0x1f, 0x94, 0x71, 0x3b, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xcc, 0x9e, 0xfc, 0x90, 0x3a, 0x38, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x93, 0x4f, 0x3e, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x7b, 0x9f, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x82, 0x7f, 0xf2, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb9, 0x01, 0xe5, 0x07, 0x6b, 0x0d, 0xbd, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x3a, 0x82, 0xf2, 0x43, 0x7f, 0xf2, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xcd, 0x41, 0xf9, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0x27, 0x94, 0x1f, 0x94, 0x71, 0x3b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x32, 0x94, 0x1f, 0x5a, 0x89, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb6, 0x87, 0xf2, 0x43, 0xaa, 0xe6, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x8f, 0x44, 0xf9, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x72, 0x8a, 0xf2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x3b, 0x30, 0xca, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0x6b, 0x94, 0x1f, 0xac, 0xd4, 0xf4, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x1b, 0x3b, 0xca, 0x0f, 0xfd, 0xc9, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x4d, 0x20, 0xe5, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x30, 0x52, 0x7e, 0x30, 0x9a, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x2e, 0x29, 0x3f, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x46, 0x94, 0xf2, 0xc3, 0x5e, 0xe1, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb0, 0x95, 0xf2, 0x41, 0xb6, 0x86, 0x3c, 0xf6, 0xe2, 0x20, 0xd8, 0xa0, 0x61, 0x91, 0x95, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x4d, 0x9e, 0xac, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0xb8, 0x61, 0xee, 0x37, 0x58, 0x24, 0x3c, 0x7b, 0x10, 0xa5, 0x80, 0x17, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xc5, 0xa5, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xae, 0x98, 0xf2, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x84, 0xa6, 0x7c, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xc3, 0x6d, 0xca, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0xe6, 0x94, 0x1f, 0x9c, 0xf8, 0x8c, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x1a, 0x9e, 0xf2, 0x83, 0xd1, 0x7c, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xe3, 0x7d, 0xca, 0x0f, 0xa9, 0x83, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb1, 0x41, 0xe5, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x73, 0x54, 0x3e, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x3c, 0xa9, 0x7c, 0x90, 0x0c, 0xdc, 0x5a, 0x07, 0xc3, 0x51, 0x7a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x64, 0x2a, 0x3f, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb0, 0xa7, 0xf2, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xf4, 0x55, 0xf9, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x46, 0xad, 0xf2, 0x41, 0x32, 0x20, 0xd8, 0xbb, 0x0e, 0x86, 0xa3, 0xf4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xd5, 0x55, 0x3e, 0x48, 0x06, 0x04, 0x2e, 0xd7, 0xc1, 0x70, 0x94, 0x1e, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x31, 0x60, 0xe5, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xe3, 0xc5, 0xca, 0x0f, 0x1a, 0xe2, 0xcf, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x8b, 0xcb, 0xca, 0x07, 0xc9, 0x80, 0xe0, 0xdd, 0x39, 0x18, 0x8e, 0xd2, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x13, 0xad, 0x7c, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xd6, 0x5a, 0xf9, 0x41, 0x8b, 0x12, 0xfa, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xe2, 0x56, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xb5, 0x2b, 0x3f, 0x68, 0x1d, 0x4a, 0x7f, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xc3, 0xe7, 0xca, 0x0f, 0x62, 0x55, 0x6d, 0x64, 0x10, 0x6c, 0x10, 0x64, 0xf1, 0x8b, 0x83, 0x60, 0xe1, 0x37, 0x64, 0x2b, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x88, 0x2b, 0x3f, 0x68, 0x23, 0x4b, 0xff, 0x60, 0x25, 0xbe, 0xc8, 0xf1, 0xf8, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x0d, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x41, 0x55, 0xf9, 0x41, 0xac, 0xaa, 0x8d, 0x0c, 0x82, 0x0d, 0x82, 0x2c, 0x7e, 0x71, 0x10, 0x2c, 0xfc, 0x86, 0x6c, 0xc5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x39, 0x52, 0xe5, 0x83, 0x64, 0x20, 0x68, 0x07, 0xc3, 0x51, 0xfa, 0x60, 0x25, 0xbe, 0xc8, 0xf1, 0xf8, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x1e, 0x51, 0xf9, 0x21, 0x55, 0x73, 0x3c, 0x1e, 0x04, 0x8b, 0x1b, 0x3c, 0xee, 0xc0, 0xfc, 0x70, 0x8a, 0x2d, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x28, 0x2c, 0x1f, 0x76, 0x83, 0x68, 0x36, 0x13, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xd8, 0xc3, 0xf2, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x53, 0x2c, 0x3f, 0x88, 0x65, 0x34, 0x91, 0x41, 0xb6, 0x41, 0xac, 0xf9, 0x8d, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x1b, 0x64, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x31, 0x8d, 0xe5, 0x07, 0x8f, 0x5f, 0x36, 0x1a, 0x64, 0x1b, 0xc4, 0x9a, 0xdf, 0xc8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0x5d, 0x96, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x34, 0x59, 0x3e, 0x08, 0x36, 0x88, 0x02, 0x14, 0x8d, 0x43, 0x27, 0xa2, 0x41, 0xb6, 0x41, 0xac, 0xf9, 0x8d, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xd7, 0x59, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x8a, 0x66, 0xf9, 0x20, 0xd8, 0x20, 0x26, 0x40, 0x46, 0x0e, 0xdd, 0x8f, 0x86, 0x5d, 0xb8, 0xc5, 0x83, 0x55, 0x83, 0xfd, 0x87, 0x68, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x15, 0x68, 0xf9, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0x8c, 0x96, 0x0f, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0x10, 0x15, 0x87, 0x23, 0x1b, 0x44, 0xc5, 0xe1, 0xc8, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0x44, 0xea, 0xe1, 0xc8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0xa7, 0x96, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x69, 0x5a, 0x7e, 0xf0, 0xf8, 0x65, 0xa3, 0x41, 0xb6, 0x41, 0xa4, 0x1e, 0x8e, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x3f, 0x6c, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xad, 0xac, 0xe5, 0x07, 0xb1, 0x3e, 0x38, 0x32, 0xc8, 0x36, 0x88, 0xd4, 0xc3, 0x91, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x43, 0x6e, 0xcb, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x9e, 0x2d, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x92, 0xde, 0xf2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xbb, 0x73, 0xcb, 0x07, 0xc1, 0x06, 0xf1, 0xa9, 0xa2, 0x71, 0xb0, 0x84, 0xff, 0x67, 0x90, 0x6d, 0x10, 0xbf, 0x8e, 0x23, 0x83, 0x6c, 0x83, 0x98, 0x7b, 0x1c, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x69, 0xb8, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x00, 0xe0, 0xf2, 0x41, 0xb0, 0x41, 0x74, 0xe3, 0x6c, 0x1c, 0x14, 0xc1, 0x83, 0xc3, 0x6e, 0xf0, 0x0a, 0x9c, 0xa0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x31, 0x2e, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x76, 0xe4, 0xf2, 0x83, 0xa7, 0x6a, 0x41, 0x0d, 0xb2, 0x0d, 0x62, 0xae, 0x72, 0x64, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xeb, 0x9d, 0xcb, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x5d, 0x2e, 0x3f, 0x78, 0xfc, 0xb2, 0xd1, 0x20, 0xdb, 0x20, 0xe6, 0x2a, 0x47, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xa1, 0xba, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xe4, 0xe8, 0xf2, 0x83, 0x58, 0x1f, 0x1c, 0x19, 0x64, 0x1b, 0xc4, 0x5c, 0xe5, 0xc8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x2d, 0xdb, 0xe5, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x5f, 0x97, 0x0f, 0x82, 0x0d, 0xe2, 0x53, 0x45, 0xe3, 0xd0, 0xfd, 0x68, 0xd8, 0x0d, 0x1e, 0xa2, 0x0f, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x11, 0xde, 0xe5, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x0c, 0x5e, 0x3e, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0xa3, 0xf4, 0x81, 0x0e, 0xa2, 0x3f, 0x78, 0x63, 0x90, 0x6d, 0x10, 0x1d, 0x9e, 0x23, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x6c, 0x5e, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xe3, 0x78, 0xf9, 0xc1, 0xe3, 0x97, 0x8d, 0x06, 0xd9, 0x06, 0xd1, 0xe1, 0x39, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x37, 0x7b, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x9d, 0xe9, 0xe5, 0x83, 0x60, 0x83, 0x28, 0x40, 0xd1, 0x38, 0xb4, 0x00, 0x1b, 0x76, 0xe1, 0x16, 0x0f, 0xde, 0x4d, 0x5f, 0x7e, 0x88, 0xe6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0xbe, 0x97, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x9b, 0x7c, 0xf9, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x91, 0x4f, 0x3a, 0xb2, 0x41, 0xe4, 0x93, 0x8e, 0x1c, 0x4e, 0xb1, 0x41, 0xb6, 0x41, 0x44, 0x96, 0x8e, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x57, 0x7e, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x21, 0xf6, 0xe5, 0x07, 0x8f, 0x5f, 0x36, 0x1a, 0x64, 0x1b, 0x44, 0x64, 0xe9, 0xc8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x71, 0xff, 0xe5, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0xf0, 0x97, 0x1f, 0xc4, 0x0c, 0xe9, 0xc8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x51, 0x02, 0xe6, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x50, 0x60, 0x3e, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0x78, 0xf0, 0xb8, 0x03, 0xf3, 0x0d, 0xe2, 0xbb, 0x75, 0xe4, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0xa2, 0x87, 0x75, 0x64, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xe3, 0x17, 0xcc, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x45, 0x30, 0x3f, 0x78, 0xfc, 0xb2, 0xd1, 0x20, 0xdb, 0x20, 0x7a, 0x58, 0x47, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x90, 0x30, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xd8, 0xc1, 0xfc, 0x20, 0x66, 0x48, 0x47, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x83, 0x60, 0x83, 0x68, 0xb4, 0xe8, 0x58, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x0c, 0x62, 0x3e, 0xec, 0xc2, 0x2d, 0x06, 0x9e, 0x58, 0xd8, 0x7a, 0x48, 0x1d, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xe4, 0x88, 0xf9, 0xb0, 0x0b, 0xb7, 0x21, 0x75, 0x70, 0x10, 0x9b, 0xb4, 0x23, 0x1b, 0xc4, 0x26, 0xed, 0xc8, 0xe1, 0x14, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xe5, 0xc4, 0xfc, 0x20, 0x7e, 0x2f, 0x3a, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x46, 0xfe, 0xc3, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xcc, 0x17, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xc3, 0x58, 0xcc, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xb8, 0xc6, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x20, 0x19, 0xf3, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x0b, 0x71, 0xcc, 0x0f, 0xde, 0x08, 0x50, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x9c, 0x83, 0x98, 0xf3, 0x18, 0x59, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xb3, 0x63, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x35, 0x41, 0xe6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0xf7, 0x98, 0x1f, 0x3c, 0x14, 0xd8, 0x6a, 0x90, 0x6d, 0x10, 0x65, 0xbe, 0x23, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0x1d, 0x99, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x40, 0x64, 0x3e, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x90, 0x0c, 0x48, 0xb6, 0xfb, 0x3a, 0x1e, 0x1f, 0x3a, 0x68, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x8f, 0x43, 0x87, 0x34, 0xdc, 0x20, 0xdb, 0x20, 0xb6, 0x71, 0x47, 0x06, 0xd9, 0x06, 0xf1, 0x98, 0x3b, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x49, 0x4e, 0xe6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x2b, 0x99, 0x0f, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x10, 0x65, 0x7e, 0xf0, 0x2c, 0xbd, 0xb1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x7b, 0xca, 0xfc, 0x60, 0xa9, 0xba, 0xcf, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xb5, 0x32, 0x3f, 0x78, 0x5c, 0xa9, 0xd5, 0x71, 0xe8, 0xd0, 0x14, 0x68, 0x90, 0x6d, 0x10, 0xdb, 0xb8, 0x23, 0x83, 0x6c, 0x83, 0x78, 0xcc, 0x1d, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x97, 0xcb, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xbe, 0x2c, 0xf3, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xf3, 0xbe, 0xcc, 0x0f, 0x9e, 0xa5, 0x37, 0x36, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0x89, 0x99, 0x1f, 0x2c, 0x55, 0xf7, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x11, 0x65, 0xe6, 0x07, 0x8f, 0x2b, 0xb5, 0x3a, 0x0e, 0x1d, 0x5a, 0x80, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x66, 0xcd, 0x7c, 0x10, 0x6c, 0xf0, 0xb0, 0xbd, 0x9e, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x0f, 0x5e, 0xda, 0x66, 0x7e, 0x48, 0xd5, 0x1c, 0x87, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x0b, 0x82, 0xc5, 0x0d, 0xa7, 0xd8, 0x41, 0x44, 0x67, 0x71, 0x2c, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x99, 0x33, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x78, 0x3c, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x93, 0xeb, 0xcc, 0x07, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x1d, 0x44, 0xd1, 0xd1, 0xc6, 0x21, 0x0d, 0x37, 0xc8, 0x36, 0x88, 0xf1, 0xea, 0x91, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xe3, 0xfd, 0xcc, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0xde, 0x33, 0x1f, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x74, 0x10, 0x9b, 0x48, 0x1b, 0x87, 0x0e, 0x1a, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x05, 0xc1, 0xe2, 0x06, 0x4d, 0x7b, 0x76, 0x6e, 0x10, 0xf5, 0x89, 0x16, 0x87, 0x53, 0x6c, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x71, 0xbe, 0xf9, 0xb0, 0x1b, 0xbc, 0xac, 0x22, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xbb, 0xf8, 0xcd, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xe0, 0xdf, 0x7c, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x57, 0x56, 0x04, 0x6d, 0xf0, 0xca, 0x8a, 0xa0, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x88, 0xff, 0xee, 0x91, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x28, 0x38, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x39, 0xe0, 0xfc, 0xe0, 0xf1, 0x66, 0x1b, 0x83, 0x6c, 0x83, 0xf8, 0xef, 0x1e, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x60, 0xe1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xea, 0x83, 0xf3, 0x83, 0x08, 0x4b, 0xd3, 0x18, 0x76, 0x83, 0x37, 0x4f, 0x04, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x77, 0xc3, 0xf9, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x42, 0x9c, 0x0f, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xf0, 0xfe, 0x89, 0xa0, 0x0d, 0xde, 0x3f, 0x11, 0x74, 0x38, 0xc5, 0x06, 0xd9, 0x06, 0x91, 0x50, 0x3e, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x49, 0x17, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x50, 0x9c, 0x1f, 0x3c, 0x7e, 0xd9, 0x68, 0x90, 0x6d, 0x10, 0x09, 0xe5, 0x23, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x75, 0x9c, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xa1, 0x71, 0x3e, 0x08, 0x16, 0x7e, 0x43, 0x72, 0xe9, 0x20, 0x1a, 0x4f, 0x35, 0x0e, 0x2d, 0xc0, 0x86, 0xdd, 0xe0, 0x21, 0xfa, 0x40, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x03, 0x72, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd9, 0x22, 0xe7, 0x07, 0xb1, 0xf6, 0x39, 0x32, 0xc8, 0x36, 0x88, 0x52, 0xf6, 0x91, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xa3, 0x51, 0xce, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x2c, 0x39, 0x3f, 0x88, 0x5e, 0x93, 0x91, 0x61, 0x37, 0x78, 0xc7, 0x45, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0xae, 0x9c, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x94, 0xcb, 0xf9, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x6f, 0xba, 0x08, 0xda, 0xe0, 0x4d, 0x17, 0x41, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0x10, 0xd1, 0xf0, 0x23, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0xd4, 0x9c, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x1e, 0x73, 0x7e, 0x10, 0xbd, 0x26, 0x23, 0xc3, 0x6e, 0xf0, 0x40, 0x88, 0xa0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0xbf, 0x39, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x4c, 0x9d, 0xf3, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x1e, 0x0b, 0x11, 0xb4, 0xc1, 0x63, 0x21, 0x82, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0x20, 0x86, 0xeb, 0x47, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x0d, 0x3a, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xc5, 0xe7, 0x7c, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x34, 0xa2, 0xf3, 0x83, 0x37, 0x02, 0x94, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0x1c, 0x9d, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x72, 0xd2, 0xf9, 0xc1, 0x33, 0x0a, 0x86, 0x06, 0xd9, 0x06, 0x11, 0xc9, 0x3f, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x25, 0xd3, 0xf9, 0x20, 0xd8, 0x20, 0x0a, 0x50, 0x34, 0x0e, 0x1d, 0x34, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc7, 0xa1, 0x43, 0x07, 0x8d, 0x61, 0x37, 0x78, 0x6f, 0x3a, 0xd0, 0x82, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x13, 0xaa, 0xce, 0x0f, 0x9e, 0x0e, 0xe4, 0x73, 0xf0, 0x4e, 0x30, 0xa9, 0x61, 0x37, 0x78, 0x35, 0x40, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x5f, 0x9d, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x9f, 0xd6, 0xf9, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x2f, 0x08, 0x08, 0xda, 0xe0, 0x05, 0x01, 0x41, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0x10, 0xb1, 0x02, 0x24, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0x84, 0x9d, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xe0, 0x75, 0x3e, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x90, 0x0c, 0x48, 0xbd, 0xfb, 0x3a, 0x1e, 0x1f, 0x3a, 0x68, 0x0c, 0xbb, 0xc1, 0xa3, 0xe2, 0x81, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x92, 0xec, 0x7c, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x73, 0xce, 0xce, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x78, 0x60, 0x3c, 0xd0, 0x06, 0x0f, 0x8c, 0x07, 0x3a, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x38, 0x43, 0x20, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xbe, 0xed, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x60, 0xb5, 0xf3, 0x41, 0xb0, 0xc1, 0xdb, 0xc9, 0x7c, 0x0e, 0x1d, 0x34, 0x86, 0xdd, 0xe0, 0x25, 0x07, 0x41, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x14, 0x77, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xed, 0x73, 0xe7, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0xbc, 0xea, 0x20, 0x68, 0x83, 0x57, 0x1d, 0x04, 0x1d, 0x4e, 0xb1, 0x41, 0xb6, 0x41, 0x94, 0x36, 0x90, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x78, 0xde, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb1, 0x76, 0xe7, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0xf2, 0x9d, 0x1f, 0xbc, 0x1f, 0xa1, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xeb, 0xef, 0x7c, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x83, 0x0a, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x10, 0x3c, 0x3f, 0x88, 0xb2, 0x00, 0x8c, 0x41, 0xb6, 0x41, 0xdc, 0x51, 0x90, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xb1, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xfb, 0xe1, 0xf9, 0xc1, 0x1b, 0xd3, 0xbc, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc7, 0xa1, 0x43, 0x53, 0xa0, 0x41, 0xb6, 0x41, 0x94, 0x36, 0x90, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xdd, 0x78, 0x3e, 0x08, 0x36, 0x88, 0xcd, 0x3f, 0x8d, 0x43, 0x0b, 0xb0, 0x61, 0x37, 0x78, 0x8e, 0x44, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0x42, 0x9e, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xd7, 0xe4, 0xf9, 0x41, 0x8c, 0x4a, 0x5a, 0x0c, 0xb2, 0x0d, 0x22, 0x74, 0x83, 0x64, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x10, 0xcb, 0xf3, 0x41, 0xb0, 0x41, 0x6c, 0xfe, 0x69, 0x1c, 0x3a, 0x68, 0x0c, 0xbb, 0xc1, 0xeb, 0x14, 0x82, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x1e, 0xf3, 0x7c, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x3b, 0x37, 0xcf, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x78, 0xa9, 0x42, 0xd0, 0x06, 0x2f, 0x55, 0x08, 0x3a, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x38, 0xfb, 0x20, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xe4, 0xf3, 0xfc, 0x20, 0xa2, 0x3c, 0x48, 0x86, 0xdd, 0xe0, 0x6d, 0x02, 0x41, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x1f, 0x7a, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x9d, 0xa4, 0xe7, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0xbc, 0x53, 0x20, 0x68, 0x83, 0x77, 0x0a, 0x04, 0x1d, 0x4e, 0xb1, 0x41, 0xb6, 0x41, 0x94, 0x8e, 0x90, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x82, 0x7a, 0x7e, 0x10, 0x51, 0x1e, 0x24, 0xc3, 0x6e, 0xf0, 0x12, 0x82, 0xa0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x58, 0x3d, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xd4, 0xd6, 0xf3, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x5e, 0x45, 0x10, 0xb4, 0xc1, 0xab, 0x08, 0x82, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0x20, 0xc6, 0x4f, 0x48, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xa2, 0x3d, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x26, 0xf6, 0xfc, 0xe0, 0x99, 0xf8, 0x42, 0xc3, 0x6e, 0xf0, 0xde, 0x77, 0xa0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0xb9, 0x3d, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xe6, 0xdc, 0xf3, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0xde, 0xfe, 0x0e, 0xb4, 0xc1, 0xdb, 0xdf, 0x81, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0x20, 0xa6, 0x59, 0x48, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x11, 0xf8, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xaa, 0xde, 0xf3, 0x83, 0x97, 0xec, 0xf5, 0x0c, 0xb2, 0x0d, 0x62, 0x9a, 0x85, 0x64, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xa4, 0xe1, 0xf3, 0x83, 0x58, 0xd4, 0x20, 0x19, 0x76, 0x83, 0x77, 0xf3, 0xf8, 0x2c, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x74, 0xf9, 0xfc, 0xe0, 0xe9, 0x40, 0x3e, 0x07, 0xaf, 0x17, 0xf2, 0x19, 0x76, 0x83, 0x87, 0xdd, 0x03, 0x2d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x7f, 0xfa, 0xfc, 0xe0, 0xe9, 0x40, 0x3e, 0x07, 0x4f, 0xe7, 0x83, 0x1a, 0x76, 0x83, 0x97, 0xf5, 0x03, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xb1, 0xf5, 0xf9, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0x65, 0x9f, 0x0f, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xf0, 0xca, 0x7e, 0xa0, 0x0d, 0x5e, 0xd9, 0x0f, 0x74, 0x38, 0xc5, 0x06, 0xd9, 0x06, 0x91, 0x6a, 0x43, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x0f, 0xf8, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x01, 0xdd, 0xe7, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0x8b, 0x9f, 0x1f, 0xbc, 0x11, 0xa0, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x5b, 0xcb, 0xcf, 0x0f, 0x5e, 0x1d, 0x2e, 0x74, 0x1c, 0x3a, 0x74, 0xd0, 0x18, 0x76, 0x83, 0x17, 0x30, 0x04, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x22, 0xfa, 0xf9, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0xac, 0x9f, 0x0f, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xf0, 0x1a, 0x86, 0xa0, 0x0d, 0x5e, 0xc3, 0x10, 0x74, 0x38, 0xc5, 0x06, 0xd9, 0x06, 0x91, 0xea, 0x43, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x4d, 0xfc, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf9, 0xed, 0xe7, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0xcf, 0x9f, 0x1f, 0xbc, 0x11, 0xa0, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x4b, 0xed, 0xcf, 0x0f, 0x5e, 0x1d, 0x2e, 0x74, 0x1c, 0x3a, 0x74, 0xd0, 0x18, 0x76, 0x83, 0x97, 0xcb, 0x03, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x60, 0xfe, 0xf9, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0xf0, 0x9f, 0x0f, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xf0, 0x8a, 0x79, 0xa0, 0x0d, 0x5e, 0x31, 0x0f, 0x74, 0x38, 0xc5, 0x06, 0xd9, 0x06, 0x91, 0x6a, 0x44, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf9, 0x02, 0xe8, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0xfe, 0x9f, 0x0f, 0xbb, 0x70, 0x1b, 0x44, 0x0f, 0xe6, 0xc6, 0xa1, 0x91, 0xe0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0x16, 0xa0, 0x0f, 0xbb, 0x70, 0x1b, 0x1a, 0x09, 0x1e, 0x44, 0x0f, 0xe6, 0xc6, 0x41, 0xd4, 0x68, 0x6e, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x88, 0x80, 0x3e, 0xec, 0xc2, 0x6d, 0x68, 0x24, 0x78, 0x10, 0xd7, 0x9b, 0x1b, 0x07, 0x91, 0xc2, 0xb9, 0x31, 0xc8, 0x36, 0x88, 0x54, 0x23, 0x92, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x3b, 0x1d, 0xd0, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x5a, 0x40, 0x1f, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x2c, 0x02, 0xfd, 0xe0, 0x8d, 0x00, 0x25, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x41, 0x81, 0x7e, 0xf0, 0xea, 0x70, 0xa1, 0xe3, 0xd0, 0xa1, 0x05, 0xd8, 0xb0, 0x1b, 0x3c, 0x47, 0x23, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xf3, 0x2d, 0xd0, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x34, 0x03, 0xfd, 0xe0, 0x89, 0x61, 0x5e, 0x83, 0x6c, 0x83, 0x78, 0xa3, 0x22, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xf3, 0x03, 0x7d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x34, 0x0e, 0xf4, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xbb, 0x44, 0xd0, 0x0f, 0xde, 0x08, 0x50, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x0d, 0x25, 0xe8, 0x07, 0x87, 0x77, 0xda, 0xe3, 0xd0, 0xa1, 0x83, 0xc6, 0xb0, 0x1b, 0xbc, 0xe3, 0x1f, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xd3, 0x4f, 0xd0, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x52, 0x05, 0x7d, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x37, 0xfd, 0x03, 0x6d, 0xf0, 0xa6, 0x7f, 0xa0, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x88, 0xcf, 0x2d, 0x92, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x8a, 0x41, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xc4, 0x05, 0xfd, 0xe0, 0x25, 0x7b, 0x3d, 0x83, 0x6c, 0x83, 0xf8, 0xdc, 0x22, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xe9, 0x06, 0x7d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x0c, 0x1a, 0xf4, 0x83, 0xc7, 0x59, 0x93, 0x0d, 0xbb, 0xc1, 0xab, 0x31, 0x82, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x42, 0x07, 0x7d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x7b, 0x79, 0xd0, 0x0f, 0x5e, 0xaf, 0x1a, 0x35, 0xc8, 0x36, 0x88, 0x53, 0x31, 0x92, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x53, 0x85, 0xd0, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xfc, 0x41, 0x3f, 0x78, 0x1d, 0xe1, 0xd5, 0xb0, 0x1b, 0xbc, 0x77, 0x07, 0x63, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xfd, 0x4a, 0xe8, 0x07, 0x4f, 0x07, 0xf2, 0x39, 0x78, 0x38, 0x92, 0xcf, 0xb0, 0x1b, 0x3c, 0x5c, 0xc9, 0x67, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x51, 0x53, 0xe8, 0x07, 0x4f, 0x07, 0xf2, 0x39, 0x78, 0xd7, 0x93, 0xcf, 0xb0, 0x1b, 0x3c, 0xb7, 0x20, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x3b, 0xac, 0xd0, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x87, 0x0b, 0x7d, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0xf1, 0x34, 0x77, 0xf0, 0x7a, 0xe0, 0xa5, 0x41, 0xb6, 0x41, 0x3c, 0xa9, 0x91, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xef, 0x85, 0x3e, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x6d, 0x18, 0xfa, 0xc1, 0xfb, 0x11, 0x4a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x8d, 0x0c, 0xfd, 0xe0, 0xd5, 0xe1, 0x42, 0xc7, 0xa1, 0x43, 0x07, 0x8d, 0x61, 0x37, 0x78, 0x8e, 0x3b, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0x9d, 0xa1, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x92, 0x1c, 0xfa, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x8f, 0x0e, 0xdf, 0xd9, 0xe0, 0xd1, 0xe1, 0x3b, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0x10, 0x61, 0x71, 0x24, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0xd4, 0xa1, 0x0f, 0xbb, 0x70, 0x8b, 0x07, 0x4f, 0x4d, 0x4f, 0x3e, 0x8c, 0xcb, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0xdf, 0xa1, 0x0f, 0xbb, 0x70, 0x1b, 0xc6, 0xe5, 0x20, 0x0e, 0xea, 0x48, 0x36, 0x88, 0x83, 0x3a, 0x92, 0xc3, 0x29, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xa4, 0x1e, 0xfa, 0xb0, 0x0b, 0xb7, 0x61, 0x5c, 0x0e, 0xde, 0x27, 0xa0, 0x73, 0xf0, 0xf4, 0x2b, 0xb7, 0x61, 0x37, 0x78, 0x37, 0x42, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0xf5, 0xa1, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xeb, 0x20, 0xfa, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x6f, 0x48, 0x08, 0xda, 0xe0, 0x0d, 0x09, 0x41, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0x10, 0x61, 0x79, 0x24, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0x1c, 0xa2, 0x0f, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x9f, 0x88, 0x7e, 0xf0, 0x7e, 0x84, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x65, 0x44, 0x3f, 0x78, 0x75, 0xb8, 0xd0, 0x71, 0xe8, 0xd0, 0x41, 0x63, 0xd8, 0x0d, 0x5e, 0xb7, 0x0e, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x81, 0x8f, 0xe8, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x22, 0x89, 0x3e, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0x4b, 0xd7, 0x81, 0x36, 0x78, 0xe9, 0x3a, 0xd0, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0x44, 0x2b, 0x20, 0xc9, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0x63, 0xa2, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x5b, 0x89, 0x3e, 0x08, 0x36, 0x88, 0xb4, 0xf5, 0x91, 0x43, 0x53, 0xa0, 0x41, 0xb6, 0x41, 0xb4, 0x02, 0x92, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xea, 0x89, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xf1, 0x26, 0xfa, 0xc1, 0xf3, 0xa0, 0xca, 0x86, 0xdd, 0xe0, 0xbd, 0x0d, 0x41, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x15, 0x8a, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x05, 0xa4, 0xe8, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0xbc, 0xbd, 0x21, 0x68, 0x83, 0xb7, 0x37, 0x04, 0x1d, 0x4e, 0xb1, 0x41, 0xb6, 0x41, 0x14, 0x20, 0x92, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xa6, 0x8a, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xca, 0x29, 0xfa, 0x41, 0x3c, 0xce, 0x6a, 0x0c, 0xbb, 0xc1, 0x53, 0xeb, 0x81, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xa7, 0x15, 0x7d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xd3, 0x5f, 0xd1, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x78, 0x76, 0x3d, 0xd0, 0x06, 0xcf, 0xae, 0x07, 0x3a, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0xb8, 0x67, 0x24, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x58, 0x5b, 0xf4, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xf3, 0x66, 0xd1, 0x07, 0xc1, 0x06, 0x2b, 0x6b, 0xa3, 0x0e, 0x4d, 0x81, 0x06, 0xd9, 0x06, 0x71, 0xcf, 0x48, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x49, 0xbd, 0xe8, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0xe8, 0xa2, 0x0f, 0x82, 0x0d, 0x62, 0xf3, 0x4f, 0xe3, 0xd0, 0x89, 0x68, 0x90, 0x6d, 0x10, 0xf7, 0x8c, 0x24, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x0d, 0xa3, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x01, 0x8c, 0x7e, 0xf0, 0xfe, 0x15, 0xa1, 0x61, 0x37, 0x78, 0xeb, 0x3e, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x18, 0xa3, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x2f, 0x32, 0xfa, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0xef, 0xde, 0x07, 0xda, 0xe0, 0xdd, 0xfb, 0x40, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0x10, 0xb1, 0x96, 0x24, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xf8, 0x8c, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x13, 0x33, 0xfa, 0x41, 0x94, 0x44, 0x92, 0x0c, 0xb2, 0x0d, 0x22, 0xd6, 0x92, 0x64, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xc8, 0x6a, 0xf4, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xb3, 0xa4, 0xd1, 0x0f, 0x62, 0x51, 0x83, 0x64, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x36, 0x6c, 0xf4, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xd8, 0x46, 0x3f, 0x68, 0xff, 0xe1, 0x7e, 0x90, 0x6d, 0x10, 0x5b, 0x9d, 0x24, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x10, 0x8e, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x75, 0x37, 0xfa, 0x41, 0x94, 0x44, 0x92, 0x0c, 0xb2, 0x0d, 0x62, 0xab, 0x93, 0x64, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x8c, 0x73, 0xf4, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xc3, 0xc7, 0xd1, 0x0f, 0x62, 0x51, 0x83, 0xe4, 0xd0, 0xfc, 0xe5, 0x78, 0x3c, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x01, 0x3b, 0xfa, 0x20, 0xd8, 0xe0, 0x61, 0x7b, 0x3d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x1e, 0x3c, 0xcf, 0x1d, 0xfd, 0x90, 0xaa, 0x39, 0x0e, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x04, 0x1b, 0xfa, 0x93, 0x2f, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x59, 0x48, 0x1f, 0x76, 0xc3, 0xfa, 0xde, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0x37, 0xa4, 0x1f, 0x2c, 0x3d, 0x35, 0x1a, 0x76, 0x43, 0xd3, 0xf3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x85, 0x48, 0x3f, 0x58, 0xc6, 0x6a, 0x34, 0xec, 0x86, 0xf6, 0xe1, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x38, 0x91, 0x3e, 0xec, 0xc2, 0x6d, 0x48, 0x1d, 0x1c, 0x5a, 0x89, 0x1f, 0x24, 0xa6, 0xfb, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x66, 0x91, 0x3e, 0xec, 0xc2, 0x6d, 0x48, 0x1d, 0x1c, 0xfa, 0x93, 0x1f, 0x2c, 0x81, 0xb9, 0x3a, 0x34, 0x7f, 0x39, 0x1e, 0x2f, 0x08, 0x16, 0xc7, 0x59, 0x83, 0xb7, 0x59, 0xa5, 0x1f, 0x14, 0xd5, 0x82, 0x1b, 0x3c, 0xac, 0x32, 0xfd, 0x20, 0x00, 0xee, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x6d, 0xa4, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xf7, 0x4f, 0xfa, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xe9, 0x1d, 0xe9, 0xc3, 0x6e, 0xc8, 0x63, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xa8, 0x50, 0xfa, 0xa1, 0x59, 0xe4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x59, 0x45, 0xe9, 0x87, 0x3e, 0x8d, 0x83, 0x6c, 0x83, 0x08, 0x7b, 0x25, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xa8, 0xa5, 0xf4, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x33, 0x90, 0xd2, 0x0f, 0x5e, 0xb2, 0xd7, 0x33, 0xc8, 0x36, 0x88, 0xb0, 0x57, 0x92, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x8a, 0x4a, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xc2, 0x29, 0x7d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xf3, 0xa7, 0xd2, 0x87, 0x5d, 0xb8, 0x0d, 0x5a, 0xcd, 0x74, 0x1a, 0x0f, 0xde, 0x66, 0x95, 0xbe, 0x41, 0x24, 0xe2, 0x92, 0x1c, 0x4e, 0xb1, 0x41, 0xb6, 0x41, 0x4c, 0xd8, 0x92, 0x0c, 0xb2, 0x0d, 0xe2, 0xd8, 0x96, 0x64, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x7b, 0xb7, 0xd2, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xc1, 0x4a, 0x1f, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xd0, 0x2b, 0x7d, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x4e, 0x58, 0xfa, 0x41, 0x8a, 0x8c, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x40, 0x96, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xae, 0x59, 0xfa, 0xc1, 0xd3, 0xf4, 0x7b, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x2f, 0x2d, 0xfd, 0x20, 0xba, 0x85, 0x47, 0x8e, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xcc, 0x96, 0x7e, 0x90, 0xb0, 0xcf, 0x7c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x1e, 0xac, 0x58, 0xea, 0x3f, 0x0e, 0x0d, 0xb2, 0x0d, 0x62, 0xc2, 0x96, 0x64, 0x90, 0x6d, 0x10, 0xc7, 0xb6, 0x24, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x3b, 0x97, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xeb, 0x5b, 0xfa, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0xd9, 0xa5, 0x1f, 0x8e, 0xf6, 0x41, 0xb6, 0x41, 0x4c, 0xd8, 0x92, 0x0c, 0xb2, 0x0d, 0xe2, 0xd8, 0x96, 0x64, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xd3, 0xfb, 0xd2, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xc9, 0x4b, 0x1f, 0x7e, 0x43, 0x72, 0x69, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x52, 0xc0, 0xf4, 0xc3, 0xd1, 0x3e, 0xc8, 0x36, 0x88, 0x09, 0x5b, 0x92, 0x41, 0xb6, 0x41, 0x1c, 0xdb, 0x92, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x79, 0x98, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xd5, 0x60, 0xfa, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0x29, 0xa6, 0x1f, 0x8e, 0xf6, 0x41, 0xb6, 0x41, 0x84, 0xbd, 0x92, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x03, 0x99, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x44, 0x63, 0xfa, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x4b, 0xa6, 0x0f, 0xbb, 0x70, 0x1b, 0x9a, 0x70, 0x8d, 0x07, 0x0f, 0xab, 0x4c, 0xdf, 0x20, 0xee, 0xa2, 0x49, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0x20, 0x2a, 0x9e, 0x49, 0x06, 0xd9, 0x06, 0x91, 0xfc, 0x4c, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa5, 0xa5, 0xe9, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x5c, 0xa6, 0x1f, 0x44, 0xfb, 0xa3, 0xc8, 0x20, 0xdb, 0x20, 0x2a, 0x9e, 0x49, 0x06, 0xd9, 0x06, 0x91, 0xfc, 0x4c, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb1, 0xac, 0xe9, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0xa1, 0xa6, 0x0f, 0xbf, 0x21, 0xb9, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xdb, 0x6b, 0xfa, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xc9, 0xb4, 0xe9, 0x87, 0xa3, 0x7d, 0x90, 0x6d, 0x10, 0x15, 0xcf, 0x24, 0x83, 0x6c, 0x83, 0x48, 0x7e, 0x26, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x5a, 0x37, 0x7d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xcc, 0xdb, 0xf4, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x2b, 0x7b, 0xd3, 0x0f, 0x5e, 0xd5, 0x24, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0x0e, 0xa7, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x05, 0x9c, 0x7e, 0xf0, 0x34, 0xfd, 0x9e, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x32, 0x4e, 0x3f, 0x78, 0x87, 0x01, 0xd1, 0x71, 0xe8, 0xe0, 0x75, 0xab, 0x1a, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x5c, 0x4e, 0x1f, 0x04, 0x1b, 0x3c, 0x6c, 0xaf, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0xc7, 0x83, 0x37, 0x38, 0xa7, 0x1f, 0x52, 0x35, 0xc7, 0xa1, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xdd, 0xd5, 0xe9, 0x8b, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x92, 0x9d, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb6, 0xf0, 0xf4, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x51, 0xf4, 0xe9, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x70, 0x9f, 0x7e, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xc1, 0xf9, 0xe9, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xfb, 0xf8, 0xd3, 0x0f, 0x62, 0xaf, 0x05, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0xfa, 0x4f, 0x3f, 0xa4, 0x0e, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x81, 0x80, 0xfa, 0x21, 0x86, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x83, 0x09, 0xd4, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xd4, 0xa0, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xb4, 0x86, 0xfa, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xc7, 0x43, 0x7d, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x3b, 0x88, 0xfa, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xce, 0x11, 0xf5, 0x83, 0xf8, 0x29, 0x0c, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xd3, 0x4c, 0xd4, 0x0f, 0xa9, 0x9a, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x91, 0xa2, 0x7e, 0x48, 0x1d, 0x1c, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x7d, 0x45, 0x7d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x43, 0x5d, 0xd4, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x8e, 0x51, 0x3f, 0xb4, 0x12, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x4c, 0x1a, 0xf5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xb3, 0x6f, 0xd4, 0x0f, 0xad, 0xc4, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x53, 0x47, 0x7d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xee, 0x1e, 0xf5, 0xc3, 0xd1, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x91, 0x40, 0xea, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x0f, 0xa9, 0x1f, 0x8e, 0xf6, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x13, 0x8d, 0xd4, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x4e, 0x52, 0x3f, 0xb4, 0x12, 0x3f, 0x0e, 0x0d, 0xbf, 0xc1, 0xc0, 0x04, 0x18, 0x7e, 0x83, 0xc1, 0x0e, 0x30, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x25, 0x93, 0xfa, 0xf0, 0x0b, 0xa2, 0x05, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x7b, 0x9f, 0xd4, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x4d, 0x4a, 0xfd, 0xd0, 0x9f, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x94, 0x2a, 0xf5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xdd, 0x57, 0xea, 0x07, 0x31, 0x5b, 0x19, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0x6a, 0xa9, 0x1f, 0xf6, 0x0a, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x55, 0x97, 0xfa, 0xa1, 0x3f, 0xf9, 0x71, 0xe8, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x07, 0x98, 0xfa, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x70, 0x4c, 0x7d, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x92, 0x99, 0xfa, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x7c, 0x34, 0xf5, 0x83, 0xe8, 0xc1, 0x01, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x93, 0xd7, 0xd4, 0x0f, 0x7b, 0x85, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xce, 0x4d, 0xfd, 0x90, 0xaa, 0x39, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x51, 0x9c, 0xfa, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0xd0, 0xa9, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x75, 0xa7, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x0d, 0x7a, 0xea, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0xf5, 0xa9, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x00, 0x54, 0x3f, 0x88, 0x8f, 0xd1, 0x90, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x16, 0x54, 0x1f, 0x66, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xba, 0x42, 0xf5, 0x83, 0x90, 0x02, 0x3f, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x92, 0xa8, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x1b, 0xa3, 0xfa, 0x30, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0x3c, 0xaa, 0x1f, 0x04, 0x59, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0x4b, 0xaa, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x61, 0xa9, 0x7e, 0x38, 0xda, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x18, 0x53, 0x7d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xfe, 0x4d, 0xf5, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xd6, 0x53, 0x7d, 0xb8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x0b, 0x55, 0x3f, 0x1c, 0xed, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0x90, 0xaa, 0x1f, 0x04, 0x6e, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0x9f, 0xaa, 0x1f, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xa0, 0xaa, 0xfa, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x9e, 0x56, 0xf5, 0x83, 0xf8, 0x18, 0x0d, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x02, 0x58, 0xf5, 0x83, 0x85, 0xc3, 0x09, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x6b, 0x67, 0xd5, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xb7, 0x55, 0x3f, 0xb4, 0x12, 0x3f, 0x0e, 0x0d, 0xbf, 0xc1, 0xb0, 0x0d, 0x18, 0x7e, 0x83, 0xc1, 0x0e, 0x30, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x64, 0xae, 0xfa, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x6c, 0x5e, 0xf5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa1, 0xbf, 0xea, 0x83, 0x64, 0xe0, 0xd6, 0x3a, 0x38, 0x7b, 0x19, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x69, 0xc2, 0xea, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x43, 0x8a, 0xd5, 0x0f, 0xe2, 0xae, 0xdc, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x3f, 0x56, 0x3f, 0x24, 0x3b, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x89, 0xcb, 0xea, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xe4, 0xac, 0x7e, 0x48, 0xcc, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x11, 0xad, 0x7e, 0x10, 0x06, 0xf2, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x9a, 0x5a, 0xfd, 0xb0, 0x57, 0x78, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xad, 0xd7, 0xea, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xc3, 0xb4, 0xd5, 0x07, 0xc9, 0x80, 0x72, 0xbd, 0xeb, 0xe0, 0xec, 0x65, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x74, 0xab, 0x0f, 0x92, 0x01, 0x81, 0xcb, 0x75, 0x70, 0xf6, 0x32, 0x1e, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xed, 0xdf, 0xea, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x4b, 0xc5, 0xd5, 0x07, 0xc9, 0x06, 0x8b, 0x6d, 0x45, 0x0e, 0xce, 0x5e, 0xc6, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x5c, 0xb9, 0xfa, 0x20, 0x19, 0x10, 0xbc, 0x3b, 0x07, 0x67, 0x2f, 0xe3, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x83, 0xae, 0x3e, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x5e, 0x5d, 0x7d, 0x90, 0x0c, 0x08, 0xf4, 0xae, 0x83, 0xb3, 0x97, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0xb7, 0xab, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x93, 0xec, 0xd5, 0x07, 0xc9, 0x80, 0xe3, 0x3a, 0xd5, 0xc1, 0xd9, 0xcb, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xeb, 0xe6, 0xd5, 0x0f, 0xe2, 0x3a, 0xa6, 0x64, 0x10, 0x6c, 0x10, 0x64, 0xf1, 0x8b, 0x83, 0x60, 0xe1, 0x37, 0x64, 0x2b, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x85, 0x57, 0x1f, 0x24, 0x03, 0x45, 0xed, 0xe0, 0xec, 0x65, 0x7c, 0xb0, 0x12, 0x5f, 0xe4, 0x78, 0x7c, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0xe4, 0xab, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0xe3, 0x57, 0x1f, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x8b, 0xfe, 0xd5, 0x87, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xfa, 0x80, 0xf5, 0xc3, 0xd1, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x2f, 0xc1, 0xfa, 0xa1, 0x71, 0xd1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0x7d, 0xac, 0x0f, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x29, 0x22, 0xeb, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x37, 0xc9, 0xfa, 0x70, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x78, 0xb2, 0x7e, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x31, 0x2a, 0xeb, 0x07, 0x61, 0x4f, 0xbd, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xd0, 0xb2, 0x3e, 0xdc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0xbe, 0xac, 0x1f, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x98, 0xcc, 0xfa, 0xa1, 0x93, 0xda, 0x21, 0x9d, 0x7b, 0x38, 0xda, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xa7, 0x66, 0xfd, 0x10, 0xc3, 0xc3, 0x29, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xe4, 0xc1, 0xfa, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0x29, 0xac, 0x0f, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf9, 0x0c, 0xeb, 0xc3, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xea, 0xc3, 0xfa, 0xe1, 0x68, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x49, 0x62, 0xfd, 0x20, 0xec, 0xa9, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xbe, 0x62, 0xfd, 0x20, 0x46, 0x50, 0x3f, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xc6, 0x58, 0x3f, 0x88, 0xe9, 0xd5, 0x8f, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x3b, 0x37, 0xd6, 0x0f, 0x9d, 0xd4, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xbf, 0x59, 0x1f, 0x7e, 0x41, 0xb4, 0xc0, 0xf4, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xb4, 0xb3, 0x3e, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xc0, 0x67, 0xfd, 0xe0, 0x44, 0xa1, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x02, 0xad, 0x1f, 0x0c, 0x63, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x38, 0xb4, 0x7e, 0x68, 0x96, 0x74, 0x1c, 0x3a, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x65, 0xb4, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x01, 0x49, 0xeb, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xbb, 0xb4, 0x7e, 0xc8, 0xda, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xd9, 0xd3, 0xfa, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x48, 0xad, 0x1f, 0x7a, 0x08, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x5d, 0xb5, 0x7e, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x14, 0x6b, 0xfd, 0x90, 0x3a, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x6f, 0x6b, 0xfd, 0x60, 0xf0, 0x4e, 0x1e, 0x8f, 0x8f, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0x7a, 0xad, 0x0f, 0x82, 0x0d, 0xce, 0x6d, 0xce, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x90, 0xad, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x99, 0xb6, 0x3e, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x9b, 0x6d, 0x7d, 0xd8, 0x0d, 0x8a, 0x8b, 0xc3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x81, 0x5b, 0x3f, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x70, 0xb9, 0xf5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x99, 0x75, 0xeb, 0x83, 0x64, 0xa0, 0xb9, 0xd3, 0xc1, 0x70, 0x94, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x2e, 0xbc, 0xf5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x15, 0x7b, 0xeb, 0x07, 0xc9, 0x83, 0xd5, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xdc, 0xb7, 0x3e, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x10, 0x70, 0xfd, 0x60, 0xd5, 0x17, 0xc4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x34, 0xb8, 0x7e, 0x50, 0xc6, 0xed, 0x0c, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x0a, 0xc3, 0xf5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd1, 0x88, 0xeb, 0x07, 0xcd, 0x1d, 0x46, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x99, 0x8b, 0xeb, 0x07, 0x43, 0x1e, 0x7d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x39, 0xae, 0x1f, 0x8c, 0x9f, 0xae, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x2b, 0x72, 0x7d, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x29, 0xe5, 0xfa, 0xb0, 0x1b, 0xb4, 0xba, 0x7a, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x05, 0x98, 0xeb, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xaa, 0xb9, 0x3e, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xac, 0x73, 0xfd, 0x60, 0xbd, 0x59, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0x80, 0xae, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x16, 0x5d, 0x3f, 0x58, 0x5d, 0x18, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x96, 0xae, 0x1f, 0xfa, 0x93, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x28, 0xd4, 0xf5, 0x83, 0x71, 0x61, 0x76, 0x1c, 0x3a, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xb3, 0xba, 0x3e, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xea, 0x79, 0x7d, 0xd8, 0x0d, 0x9e, 0x27, 0x5b, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa9, 0xd2, 0xeb, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x55, 0xbd, 0x7e, 0x38, 0xda, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x04, 0x7b, 0xfd, 0x10, 0xc3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xd7, 0x5e, 0x3f, 0xc4, 0x70, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x9b, 0xbb, 0xd7, 0x0f, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x0f, 0x7c, 0xfd, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x4b, 0xc6, 0xd7, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0x99, 0xaf, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x49, 0x5f, 0x3f, 0x58, 0x46, 0x58, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xe1, 0xeb, 0xeb, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x33, 0xdd, 0xd7, 0x07, 0xc9, 0x40, 0x73, 0xa7, 0x83, 0x63, 0x56, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0xc5, 0xaf, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xa0, 0x5f, 0x3f, 0x78, 0x0c, 0x03, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x6d, 0xbf, 0x7e, 0xe8, 0x4f, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x43, 0xf3, 0xd7, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0xf1, 0xaf, 0x0f, 0x92, 0x81, 0xb2, 0x72, 0x70, 0xf6, 0x32, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x4b, 0xfe, 0xd7, 0x0f, 0x47, 0xfb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x0e, 0x60, 0x9f, 0x60, 0xd6, 0x8f, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x66, 0x02, 0xf6, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x3c, 0x60, 0x3f, 0xc4, 0x70, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x9b, 0x14, 0xd8, 0x87, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x80, 0x06, 0xf6, 0xe1, 0x36, 0x88, 0x11, 0xd4, 0x8f, 0x83, 0xb7, 0x1b, 0x44, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xe3, 0x04, 0xfb, 0xe1, 0x68, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xcc, 0x82, 0xfd, 0x10, 0xc3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0xc9, 0x60, 0x3f, 0x0e, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x20, 0x07, 0xfb, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x9e, 0x0f, 0xf6, 0x83, 0x18, 0xbf, 0xf2, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x02, 0x11, 0xf6, 0xe3, 0xd0, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x74, 0x12, 0xf6, 0x83, 0x07, 0x20, 0x44, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x7c, 0xc2, 0x3e, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x60, 0x85, 0x7d, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x04, 0x11, 0xfb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x29, 0x48, 0xec, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xcb, 0x95, 0xd8, 0x07, 0xc9, 0x40, 0x90, 0x0e, 0xce, 0x5e, 0xc6, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x6e, 0x13, 0xfb, 0xa1, 0x3f, 0xf9, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x84, 0x62, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x33, 0xc5, 0x3e, 0x48, 0x06, 0x64, 0xaf, 0xbf, 0xf7, 0x1d, 0x9c, 0xbd, 0x8c, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x42, 0x2b, 0xf6, 0x83, 0x14, 0x4d, 0xe6, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x95, 0xc5, 0x7e, 0x10, 0x3c, 0xdc, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd9, 0x2d, 0xec, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x09, 0xc3, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xdf, 0x0c, 0xfb, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x1a, 0x1b, 0xf6, 0x83, 0xc8, 0x88, 0xfa, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xeb, 0x71, 0xd8, 0x0f, 0xfd, 0xc9, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xed, 0x0e, 0xfb, 0x71, 0xe8, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x9a, 0x0f, 0xfb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x5d, 0x41, 0xec, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x73, 0xb8, 0xd8, 0x87, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x7a, 0x2f, 0xf6, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x35, 0x8c, 0xfd, 0x60, 0x95, 0xfb, 0xff, 0xc2, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xed, 0x19, 0xfb, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x36, 0x35, 0xf6, 0x83, 0x48, 0xc3, 0x11, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x33, 0xda, 0xd8, 0x0f, 0x42, 0x0a, 0x7c, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0xc2, 0xb1, 0x1f, 0xa4, 0x86, 0x21, 0x1c, 0x87, 0x0e, 0xe9, 0xdc, 0xc3, 0xd1, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xc9, 0x7b, 0xec, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xe8, 0xc7, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x67, 0x20, 0xfb, 0xa1, 0x3f, 0xf9, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0x11, 0xb2, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xc5, 0x21, 0xfb, 0x06, 0x6b, 0xb4, 0x15, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x4e, 0x64, 0x3f, 0xc4, 0x70, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x33, 0x19, 0xd9, 0x0f, 0x31, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x9e, 0x47, 0xf6, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x8f, 0x64, 0x3f, 0xb4, 0x12, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x95, 0x92, 0xfd, 0xb0, 0x57, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xed, 0x97, 0xec, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xaa, 0xc9, 0x7e, 0x68, 0x25, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x56, 0x27, 0xfb, 0x21, 0x55, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x31, 0xa0, 0xec, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x2e, 0xca, 0x7e, 0x38, 0xda, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x2d, 0x65, 0x3f, 0x44, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xfb, 0x51, 0xd9, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x77, 0x95, 0xfd, 0x70, 0xb4, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xe6, 0xca, 0x7e, 0x68, 0x24, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xc9, 0xb1, 0xec, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x48, 0xcb, 0x7e, 0x68, 0x25, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xd1, 0x2d, 0xfb, 0xa1, 0x93, 0xda, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x29, 0xba, 0xec, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xcf, 0xcb, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x99, 0xbf, 0xec, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x24, 0xcc, 0x3e, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x9f, 0x98, 0xfd, 0x20, 0x3e, 0x46, 0x43, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xf6, 0x98, 0x7d, 0x98, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xb3, 0x94, 0xd9, 0x0f, 0x7b, 0x85, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x6b, 0x9a, 0xd9, 0x0f, 0x8a, 0xb0, 0x89, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x80, 0x66, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x64, 0x69, 0xf6, 0x61, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xab, 0x66, 0x3f, 0xa4, 0x6a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0xc2, 0x66, 0x3f, 0x28, 0x39, 0x25, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x66, 0x9b, 0x7d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xdb, 0xbb, 0xd9, 0x0f, 0x47, 0xfb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa1, 0xe0, 0xec, 0x07, 0x47, 0x07, 0xee, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x1c, 0x67, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x20, 0x73, 0xf6, 0x43, 0x13, 0xae, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x2b, 0xd3, 0xd9, 0x0f, 0xce, 0xea, 0xe7, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xcf, 0xce, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb1, 0xef, 0xec, 0x87, 0x56, 0xe2, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0xc9, 0xb3, 0x1f, 0x84, 0x14, 0xf8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0xd5, 0xb3, 0x1f, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xc1, 0x67, 0x3f, 0xc4, 0xf0, 0x70, 0x8a, 0x1d, 0x8f, 0x8f, 0xc7, 0x0b, 0x82, 0xc5, 0x0d, 0xde, 0x86, 0xd3, 0x7e, 0x10, 0x00, 0xf7, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xb3, 0x1a, 0xda, 0x87, 0xdd, 0xa0, 0x39, 0xcb, 0xa6, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x7f, 0x68, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x54, 0x89, 0xf6, 0x83, 0x06, 0x32, 0x9b, 0x06, 0xd9, 0x06, 0x31, 0xe7, 0x5d, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xad, 0x18, 0xed, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0x55, 0xb4, 0x1f, 0x3c, 0x7e, 0xd9, 0x68, 0x90, 0x6d, 0x10, 0x73, 0xde, 0x25, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0x7b, 0xb4, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xb8, 0xd1, 0x7e, 0xf0, 0xb0, 0x37, 0xa5, 0x61, 0x37, 0x78, 0x8e, 0x67, 0xdc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0x86, 0xb4, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x14, 0x49, 0xfb, 0xc1, 0xf3, 0x48, 0xe3, 0x06, 0xd9, 0x06, 0x11, 0x4b, 0x5e, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x59, 0x2a, 0xed, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0x9c, 0xb4, 0x1f, 0x3c, 0x7e, 0xd9, 0x68, 0x90, 0x6d, 0x10, 0xb1, 0xe4, 0x25, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0xc1, 0xb4, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xd2, 0xd2, 0x7e, 0xf0, 0xb0, 0x37, 0xa5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x9b, 0x66, 0xda, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xbf, 0xa6, 0x7d, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0xf1, 0xe0, 0x6d, 0x38, 0xed, 0x1b, 0x44, 0x0c, 0x7b, 0xc9, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0xc4, 0xa3, 0x7a, 0xc9, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0xf3, 0xb4, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x9b, 0xd3, 0x7e, 0xf0, 0xf8, 0x65, 0xa3, 0x41, 0xb6, 0x41, 0x3c, 0xaa, 0x97, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x30, 0xd4, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xf0, 0x4f, 0xfb, 0xc1, 0xc3, 0xde, 0x94, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x2b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xa1, 0x51, 0xfb, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x53, 0x9f, 0xda, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x4a, 0xaa, 0x7d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xc2, 0xaa, 0xf6, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x39, 0x58, 0xed, 0x07, 0x69, 0xd7, 0xe8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xbd, 0x56, 0xfb, 0xa1, 0x3f, 0xf9, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xb6, 0xab, 0x7d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xd3, 0xc0, 0xda, 0x0f, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x62, 0xac, 0xfd, 0x20, 0x1d, 0xca, 0x63, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x97, 0xb5, 0x1f, 0x52, 0x07, 0xc7, 0xa1, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x49, 0x6b, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x8d, 0xad, 0x7d, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xc7, 0x5b, 0xfb, 0x41, 0xda, 0x35, 0xfa, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x1d, 0xd7, 0x7e, 0xe8, 0x4f, 0xbe, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xa4, 0x6b, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xa6, 0xbb, 0xf6, 0x83, 0x74, 0x28, 0x8f, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x2b, 0xf4, 0xda, 0x0f, 0xca, 0xb8, 0x9d, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xce, 0xd7, 0x7e, 0x48, 0x1d, 0x1c, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0xfd, 0x6b, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x5c, 0xb0, 0x7d, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x66, 0x61, 0xfb, 0x41, 0x71, 0x0f, 0x35, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x21, 0xb6, 0x6f, 0xe8, 0x4f, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xc5, 0x62, 0xfb, 0x18, 0x4e, 0x0c, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x2e, 0xc7, 0xf6, 0x43, 0xea, 0xe0, 0x38, 0x74, 0x3c, 0x5e, 0x41, 0xb0, 0xc1, 0xb2, 0x30, 0x98, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x21, 0xaa, 0xed, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0x9b, 0xb6, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x2b, 0x6c, 0xfb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xc9, 0xac, 0xed, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0xcd, 0xb6, 0x1f, 0xbc, 0x11, 0xa0, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0xb2, 0x30, 0x98, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x29, 0xb6, 0xed, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xc2, 0xdb, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x38, 0x6e, 0xfb, 0xc1, 0x43, 0x81, 0xad, 0x06, 0xd9, 0x06, 0xd1, 0xf6, 0x60, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x8f, 0x70, 0xfb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf9, 0xbe, 0xed, 0x07, 0x31, 0xce, 0xb2, 0x71, 0x68, 0xfe, 0x72, 0x3c, 0x3e, 0x0e, 0x1d, 0xd2, 0x70, 0x83, 0x6c, 0x83, 0xe8, 0x4f, 0x30, 0x19, 0x64, 0x1b, 0x44, 0xac, 0x82, 0xc9, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0x23, 0xb7, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x52, 0xdc, 0x3e, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xeb, 0x72, 0xfb, 0xc1, 0x8b, 0x42, 0x88, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x34, 0xba, 0x7d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x36, 0xe7, 0xf6, 0x41, 0xb0, 0x41, 0xfc, 0xa5, 0x69, 0x1c, 0x1a, 0xb5, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x8f, 0x43, 0x87, 0xa6, 0x40, 0x83, 0x6c, 0x83, 0xe8, 0x4f, 0x30, 0x19, 0x64, 0x1b, 0x44, 0xac, 0x82, 0xc9, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0x5e, 0xb7, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x48, 0xdd, 0x3e, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x9f, 0x76, 0xfb, 0xc1, 0xb3, 0xf4, 0xc6, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xa8, 0xee, 0xf6, 0x83, 0xa5, 0xea, 0x3e, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x02, 0xbc, 0xfd, 0xe0, 0x71, 0xa5, 0x56, 0xc7, 0xa1, 0x43, 0x27, 0xa2, 0x41, 0xb6, 0x41, 0xf4, 0x27, 0x98, 0x0c, 0xb2, 0x0d, 0x22, 0x56, 0xc1, 0x64, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x16, 0xf3, 0xf6, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xe3, 0xc5, 0xdb, 0x07, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x47, 0x6f, 0x3f, 0x78, 0x96, 0xde, 0xd8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xbc, 0xde, 0x7e, 0xb0, 0x54, 0xdd, 0x67, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0xba, 0xb7, 0x1f, 0x3c, 0xae, 0xd4, 0xea, 0x38, 0x74, 0xe8, 0x7e, 0x74, 0x68, 0xfe, 0x72, 0x3c, 0x1e, 0x04, 0x8b, 0x07, 0xa5, 0xbc, 0xe1, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x9e, 0x3a, 0xf7, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xd8, 0x73, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xfa, 0xce, 0x7d, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x83, 0xfb, 0xdc, 0x0f, 0x96, 0xed, 0x97, 0x0d, 0xb2, 0x0d, 0x62, 0x45, 0xc5, 0x64, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x33, 0x09, 0xdd, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x0b, 0x74, 0x1f, 0x7e, 0x43, 0x72, 0x69, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xa8, 0x43, 0xf7, 0x83, 0x65, 0xfb, 0x65, 0x83, 0x6c, 0x83, 0x58, 0x51, 0x31, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xe2, 0x46, 0xf7, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x4b, 0x14, 0xdd, 0x87, 0xdf, 0x90, 0x5c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x10, 0xd2, 0xfd, 0x60, 0xd9, 0x7e, 0xd9, 0x20, 0xdb, 0x20, 0x56, 0x54, 0x4c, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xe7, 0xd2, 0x7d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xac, 0x49, 0xf7, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xcf, 0x74, 0x1f, 0x83, 0x86, 0x38, 0x83, 0x6c, 0x83, 0x58, 0x51, 0x31, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x5c, 0x50, 0xf7, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xc3, 0x3a, 0xdd, 0x87, 0xdf, 0x90, 0x5c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x6e, 0xd4, 0xfd, 0x70, 0xb4, 0x0f, 0xb2, 0x0d, 0x62, 0x45, 0xc5, 0x64, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xee, 0x54, 0xf7, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x3b, 0x4c, 0xdd, 0x07, 0xc1, 0x06, 0x0f, 0xdb, 0xeb, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xb0, 0xf0, 0x50, 0xe6, 0x20, 0xc1, 0x00, 0xe1, 0x38, 0x74, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x25, 0x76, 0x1f, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xed, 0xd8, 0xfd, 0xe0, 0xbd, 0x19, 0x44, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x8b, 0xb2, 0xfb, 0x20, 0xd8, 0xe0, 0x61, 0x7b, 0x3d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x06, 0x0f, 0x37, 0x1c, 0x52, 0x35, 0xc7, 0xa1, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x6c, 0x76, 0x3f, 0x38, 0xf7, 0xd1, 0x1e, 0x87, 0x0e, 0x8d, 0x5a, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x26, 0xed, 0x7e, 0xf0, 0x84, 0x86, 0xae, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf9, 0xd6, 0xee, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0xfc, 0x76, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xb2, 0xdc, 0x7d, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x42, 0x77, 0x1f, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x03, 0xd6, 0xdd, 0x0f, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xb3, 0xdd, 0x7d, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x13, 0xbc, 0xfb, 0x41, 0x49, 0x17, 0x35, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0xcc, 0xbb, 0x1f, 0xfa, 0x93, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xe4, 0x7a, 0xf7, 0x43, 0xea, 0xe0, 0x38, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x99, 0xf8, 0xee, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xb4, 0xef, 0x7e, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf9, 0xfd, 0xee, 0xc3, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x40, 0xc0, 0xfb, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xda, 0x81, 0xf7, 0x83, 0x08, 0x17, 0x0b, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x42, 0x83, 0xf7, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x3d, 0x09, 0xef, 0x07, 0xc5, 0x3d, 0xd4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xbf, 0xf0, 0x7e, 0xe8, 0x4f, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x7b, 0x1d, 0xde, 0x0f, 0xa9, 0x83, 0xe3, 0xd0, 0x71, 0xe8, 0x78, 0x7e, 0x38, 0xc5, 0x8e, 0xc7, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x44, 0xf1, 0x3e, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0x5b, 0xbc, 0x2f, 0x2e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xf7, 0xc6, 0xfb, 0x20, 0xd8, 0xa0, 0x95, 0xeb, 0xf2, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x03, 0xaf, 0x8e, 0xec, 0x38, 0xa4, 0x6a, 0x8e, 0x43, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x15, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x2f, 0xe4, 0x7d, 0x10, 0x6c, 0xd0, 0xca, 0x75, 0xf9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x1f, 0x44, 0x70, 0xc0, 0xc7, 0x21, 0x55, 0x73, 0x1c, 0x3a, 0x34, 0x7f, 0x39, 0x1e, 0x2f, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xb3, 0xc9, 0xfb, 0x20, 0xd8, 0xa0, 0x95, 0xeb, 0xf2, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x3f, 0x88, 0xe7, 0x03, 0x93, 0x43, 0xaa, 0xe6, 0x38, 0x74, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x41, 0xb0, 0xc1, 0xc8, 0x7f, 0x58, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xb7, 0xf2, 0x3e, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x8f, 0xcb, 0xfb, 0x41, 0x0c, 0xba, 0x60, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x05, 0x31, 0xef, 0xc3, 0x2f, 0x48, 0x06, 0xde, 0xab, 0x3a, 0x9e, 0x1f, 0x8c, 0x04, 0x9c, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x4d, 0xf3, 0x3e, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xf3, 0xe6, 0xfd, 0xa0, 0xed, 0x85, 0xfe, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xd3, 0x79, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xd2, 0xf3, 0x7e, 0xf0, 0x32, 0x35, 0x9d, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xfe, 0xe7, 0x7d, 0x10, 0x6c, 0xd0, 0xca, 0x75, 0xf9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x68, 0x21, 0xb5, 0x38, 0xa4, 0x6a, 0x8e, 0x43, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x2c, 0xf4, 0x7e, 0x10, 0x8d, 0x6e, 0x26, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0x68, 0xd4, 0x72, 0x68, 0xfe, 0x72, 0x3c, 0x1e, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xf9, 0xe8, 0x7d, 0x10, 0x6c, 0xd0, 0xca, 0x75, 0xf9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x1f, 0x44, 0x14, 0xed, 0xc7, 0x21, 0x55, 0x73, 0x1c, 0x3a, 0x34, 0x7f, 0x39, 0x1e, 0x2f, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x62, 0xd3, 0xfb, 0xb0, 0x1b, 0x3a, 0x8e, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xbe, 0xd4, 0xfb, 0xb0, 0x1b, 0x94, 0x53, 0x90, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x5b, 0xf5, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x75, 0x58, 0xef, 0x07, 0xe5, 0x1c, 0xe4, 0x20, 0xdb, 0x20, 0x2a, 0xf1, 0x4c, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xc5, 0xeb, 0x7d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x9c, 0xad, 0xf7, 0x41, 0xb0, 0x41, 0x2b, 0xd7, 0xe5, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x7e, 0x10, 0xa3, 0x7c, 0x1f, 0x87, 0x1e, 0x42, 0xc7, 0xa1, 0x41, 0xb6, 0x41, 0x54, 0xe2, 0x99, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x4b, 0xf6, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x70, 0xd8, 0xfb, 0x20, 0xd8, 0xa0, 0x95, 0xeb, 0xf2, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x3f, 0x88, 0x7a, 0xb4, 0x8f, 0x43, 0xc7, 0xb0, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x59, 0x68, 0xef, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xb1, 0xf6, 0x7e, 0x50, 0x9c, 0x43, 0x0e, 0xb2, 0x0d, 0xa2, 0x1f, 0xd0, 0x64, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x8b, 0xe1, 0xde, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x6e, 0x7b, 0x1f, 0x04, 0x1b, 0xb4, 0x72, 0x5d, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0xd1, 0x98, 0xf8, 0x71, 0xe8, 0x21, 0x74, 0x1c, 0x1a, 0x64, 0x1b, 0x44, 0x3f, 0xa0, 0xc9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x51, 0x77, 0xef, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0xd1, 0xbd, 0x1f, 0xc4, 0xd3, 0x9f, 0xc9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x3d, 0x50, 0xef, 0x83, 0x60, 0x83, 0x56, 0xae, 0xcb, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x2c, 0xc9, 0x97, 0x39, 0xa4, 0x6a, 0x8e, 0x43, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x05, 0xc1, 0x06, 0x71, 0xb0, 0x1f, 0xb2, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x84, 0xef, 0x7d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x33, 0x04, 0xdf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0xf6, 0x7b, 0x3f, 0x68, 0xd6, 0xba, 0x7c, 0x90, 0x6d, 0x10, 0x07, 0x8b, 0x26, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x81, 0xf8, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x37, 0xe1, 0xfb, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0xe1, 0x37, 0x58, 0xcb, 0x27, 0x70, 0xb0, 0x76, 0xf8, 0xe6, 0xd0, 0x14, 0x68, 0x90, 0x6d, 0x10, 0x07, 0x8b, 0x26, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x38, 0xbe, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xaf, 0xf8, 0x3e, 0x08, 0x36, 0x68, 0xe5, 0xba, 0xfc, 0xe0, 0x98, 0xdd, 0x7b, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x70, 0xc9, 0xf7, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x43, 0x2b, 0xdf, 0x0f, 0x9a, 0x1d, 0x58, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x2c, 0xcc, 0xf7, 0x83, 0xc3, 0xaf, 0xed, 0x71, 0xe8, 0xd0, 0xa8, 0xe5, 0xd0, 0xfc, 0xe5, 0x78, 0x3c, 0x08, 0x36, 0x38, 0xb7, 0x39, 0x2f, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xe9, 0x7c, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xf2, 0xcf, 0xf7, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x2e, 0x7d, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x53, 0xf4, 0x7d, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x19, 0x88, 0xd6, 0xf1, 0xf8, 0x20, 0xd9, 0xd0, 0x60, 0x90, 0x6d, 0x10, 0x2b, 0x99, 0x26, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0xaf, 0xbe, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x8a, 0xfa, 0x3e, 0x08, 0x36, 0x78, 0x0e, 0xb5, 0xd2, 0xc1, 0x40, 0x2f, 0x1b, 0x64, 0x1b, 0xc4, 0x1c, 0xa6, 0xc9, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0xbb, 0xbe, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x2f, 0xed, 0xfb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x81, 0xb1, 0xef, 0x83, 0x60, 0x83, 0x25, 0xaf, 0x51, 0x07, 0x8b, 0xb5, 0x98, 0x06, 0xd9, 0x06, 0x11, 0xf2, 0x69, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xab, 0xee, 0xfb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x6d, 0xb7, 0xef, 0xc3, 0x2e, 0xf4, 0x60, 0x98, 0x4e, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x07, 0xf0, 0xfb, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0x18, 0xbf, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x2d, 0xfc, 0x3e, 0xec, 0xc2, 0x6d, 0x10, 0x23, 0xa8, 0x1f, 0x87, 0x1e, 0x3b, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x8e, 0xfc, 0x3e, 0xec, 0xc2, 0x6d, 0xe8, 0xb1, 0x73, 0x10, 0x23, 0xa8, 0x1f, 0x1b, 0xc4, 0x08, 0xea, 0xc7, 0xe1, 0x14, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x78, 0xf9, 0x7d, 0xd8, 0x85, 0xdb, 0xd0, 0x63, 0xe7, 0x20, 0xa6, 0x57, 0x3f, 0x36, 0x88, 0xe9, 0xd5, 0x8f, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x88, 0x0c, 0x52, 0x93, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x93, 0xa4, 0xdf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x78, 0x7e, 0x1f, 0x04, 0x1b, 0xac, 0xac, 0x8d, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0x06, 0x01, 0x6d, 0x7d, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xac, 0xf7, 0x7d, 0xd8, 0x0d, 0xde, 0x5a, 0xfb, 0x70, 0x68, 0x1c, 0x35, 0xc8, 0x36, 0x88, 0x39, 0x4c, 0x93, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xbb, 0xb1, 0xdf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xad, 0x7e, 0x3f, 0x88, 0x98, 0x2a, 0x8c, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x20, 0x58, 0x9c, 0x0d, 0x5a, 0x05, 0x72, 0x39, 0x18, 0x4c, 0x68, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x13, 0xbc, 0xdf, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x7f, 0xfc, 0x7d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x5e, 0xf0, 0xf7, 0x83, 0x66, 0xad, 0xcb, 0x07, 0xd9, 0x06, 0xf1, 0x1d, 0x6b, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xaf, 0xf9, 0xfb, 0xb0, 0x1b, 0xc4, 0xd4, 0xbe, 0xc8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0xa5, 0xbf, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x0d, 0xfb, 0xfb, 0xb0, 0x0b, 0xb7, 0xa1, 0x91, 0xe0, 0x41, 0xb4, 0xf2, 0x60, 0x1c, 0xc4, 0xcb, 0x0f, 0xc6, 0x20, 0xdb, 0x20, 0x82, 0x6b, 0x4d, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x40, 0xfe, 0x7d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x86, 0xf7, 0xf7, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x07, 0x11, 0x32, 0x96, 0x71, 0xe8, 0x44, 0x34, 0xc8, 0x36, 0x88, 0xe0, 0x5a, 0x93, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0xbe, 0x7f, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x9b, 0xfe, 0x7d, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0xc1, 0x81, 0xe6, 0xf6, 0x60, 0x09, 0xff, 0xcf, 0x20, 0xdb, 0x20, 0x82, 0x6b, 0x4d, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0xf0, 0x7f, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x63, 0xff, 0x7d, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0xc1, 0xaa, 0x93, 0xb4, 0x83, 0x22, 0x78, 0x70, 0xd8, 0x0d, 0xe2, 0xd4, 0x5f, 0x64, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xcb, 0x02, 0xe0, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x83, 0x00, 0x7e, 0xd8, 0x85, 0xdb, 0xd0, 0x48, 0xf0, 0x20, 0x8e, 0xdb, 0x2c, 0x0e, 0x22, 0x09, 0xce, 0x62, 0x90, 0x6d, 0x10, 0x8f, 0xc0, 0x26, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x9e, 0x00, 0x3f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xbd, 0x01, 0xfc, 0x41, 0x44, 0xe7, 0x9a, 0x0c, 0xb2, 0x0d, 0xe2, 0x11, 0xd8, 0x64, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x73, 0x1f, 0xe0, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x66, 0x80, 0x1f, 0x04, 0x1b, 0xc4, 0x7b, 0xae, 0xc9, 0xc1, 0x12, 0xfe, 0x9f, 0x41, 0xb6, 0x41, 0x3c, 0x02, 0x9b, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x58, 0x01, 0x3f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xa5, 0x04, 0xfc, 0x20, 0xd8, 0x20, 0x36, 0x79, 0x4d, 0x0e, 0x8a, 0xe0, 0xc1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xdb, 0x30, 0xe0, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x64, 0x03, 0x7e, 0xd8, 0x85, 0xdb, 0xd0, 0x48, 0xf0, 0x20, 0x6e, 0x98, 0x30, 0x0e, 0xe2, 0xd6, 0x09, 0x63, 0x90, 0x6d, 0x10, 0xef, 0xc9, 0x26, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0x83, 0xc0, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xdf, 0x01, 0x3f, 0x08, 0x36, 0x88, 0xf7, 0x5c, 0x93, 0x43, 0x0b, 0xb0, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0xf1, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x42, 0x12, 0xf8, 0xc5, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x3f, 0x81, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x08, 0x0c, 0xfc, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x2b, 0x71, 0xe0, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x67, 0x82, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xfa, 0x04, 0x3f, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x6e, 0x0a, 0x7e, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x8a, 0x15, 0xfc, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x70, 0x2c, 0xf8, 0xe1, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x84, 0x0b, 0x7e, 0x90, 0x0c, 0x58, 0x6b, 0xf7, 0x75, 0x10, 0xf0, 0xfe, 0x07, 0x25, 0x43, 0xd3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0x7b, 0xc1, 0x1f, 0xf6, 0x0a, 0x8f, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x1b, 0x06, 0x7f, 0x48, 0x1d, 0x1c, 0x87, 0x0e, 0x46, 0x9a, 0xd6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x79, 0x64, 0xf0, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x43, 0xce, 0xe0, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0xab, 0xc1, 0x0f, 0xbb, 0x70, 0x1b, 0x44, 0x2b, 0x0f, 0xc6, 0x41, 0x23, 0x2c, 0x00, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x19, 0x07, 0x3f, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0xaa, 0x83, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x81, 0x07, 0x3f, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x59, 0x0f, 0x7e, 0xf8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xf0, 0x83, 0x1f, 0x24, 0x03, 0xfb, 0x5f, 0x07, 0xe3, 0x5d, 0xe7, 0xa0, 0x64, 0x68, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x78, 0x40, 0xf8, 0x83, 0x10, 0x00, 0x3f, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xeb, 0x20, 0xfc, 0x21, 0x55, 0x73, 0x1c, 0x1a, 0x7e, 0x83, 0x06, 0x76, 0xfd, 0x87, 0xdf, 0x60, 0xb0, 0x03, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x67, 0x08, 0x3f, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x51, 0x84, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xce, 0x08, 0x3f, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xf3, 0x11, 0x7e, 0xf8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x97, 0x84, 0x1f, 0x24, 0x03, 0x1a, 0xb5, 0xfb, 0x3a, 0x18, 0x86, 0x3e, 0x07, 0x25, 0x43, 0xd3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0x57, 0xc2, 0x1f, 0xc6, 0xe5, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x7d, 0x98, 0xf0, 0x87, 0xbd, 0xc2, 0xe3, 0xd0, 0xf0, 0x1b, 0x44, 0xe7, 0x54, 0xc8, 0xf0, 0x1b, 0x0c, 0x76, 0x80, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x8b, 0x36, 0xe1, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x0d, 0x9f, 0xf0, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x8b, 0x43, 0xe1, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0x91, 0xc2, 0x0f, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xc5, 0xa7, 0xf0, 0x83, 0x64, 0xe0, 0xab, 0xaf, 0x83, 0xe1, 0x1f, 0x7b, 0x50, 0x32, 0x34, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x55, 0xab, 0xf0, 0x87, 0x7c, 0xed, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x70, 0x85, 0x3f, 0x28, 0x0e, 0x35, 0x8e, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x1e, 0x0b, 0x7f, 0x10, 0x98, 0xd8, 0xc7, 0xa1, 0xe1, 0x37, 0x88, 0x01, 0xac, 0x90, 0xe1, 0x37, 0x18, 0xec, 0x00, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0xd5, 0xc2, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x07, 0x2e, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0xeb, 0xc2, 0x1f, 0x2c, 0x19, 0x12, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xd3, 0x17, 0x7e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xab, 0x82, 0xe1, 0x0f, 0x52, 0x06, 0x03, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x93, 0x18, 0xfe, 0x90, 0xaa, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb8, 0x63, 0xf8, 0x43, 0xea, 0x60, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x1c, 0x65, 0xf8, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x21, 0xcd, 0xf0, 0x87, 0xb5, 0xdf, 0x61, 0x17, 0x6e, 0x83, 0xb8, 0x61, 0xc2, 0x38, 0x68, 0x84, 0x05, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x5b, 0xa5, 0xe1, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x75, 0xd6, 0xf0, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x5b, 0xb2, 0xe1, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x6f, 0xc3, 0x0f, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x2d, 0xdf, 0xf0, 0x07, 0x91, 0x2f, 0x6e, 0x72, 0x50, 0x32, 0x34, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x82, 0x38, 0xfc, 0x41, 0x08, 0x80, 0x1f, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x98, 0x1c, 0xfe, 0x90, 0xaa, 0x39, 0x0e, 0x0d, 0xbf, 0x41, 0x03, 0xbb, 0xfe, 0xc3, 0x6f, 0x30, 0xd8, 0x01, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x3c, 0x87, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x22, 0x75, 0xf8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x67, 0x87, 0x3f, 0x38, 0xb1, 0xdc, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xfd, 0x0e, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x89, 0xf2, 0xf0, 0x87, 0x86, 0x3a, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0xd5, 0xc3, 0x1f, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xc2, 0x87, 0x3f, 0x8c, 0xcb, 0x20, 0x5b, 0x43, 0xfb, 0xf5, 0xe1, 0x36, 0x88, 0xe3, 0x36, 0x8b, 0x83, 0x46, 0x58, 0x00, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xee, 0x87, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0x06, 0xc4, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x22, 0x88, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x70, 0x10, 0x3f, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x29, 0xc4, 0x1f, 0x44, 0xbe, 0xb8, 0xc9, 0x41, 0xc9, 0xd0, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x31, 0x0d, 0xf1, 0x07, 0x21, 0x00, 0x7e, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xf6, 0x87, 0xf8, 0x43, 0xaa, 0xe6, 0x38, 0x34, 0xfc, 0x06, 0x0d, 0xec, 0xfa, 0x0f, 0xbf, 0xc1, 0x60, 0x07, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x56, 0x22, 0x7e, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x67, 0x11, 0x3f, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x26, 0x23, 0x7e, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xfb, 0x46, 0xfc, 0xf0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xf3, 0x11, 0x3f, 0x48, 0x06, 0xf6, 0xbf, 0x0e, 0x86, 0xa1, 0xcf, 0x41, 0xc9, 0xd0, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x11, 0x22, 0xf1, 0x87, 0x71, 0x39, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x33, 0x49, 0xfc, 0x61, 0xaf, 0xf0, 0x38, 0x34, 0xfc, 0x06, 0xd1, 0x39, 0x15, 0x32, 0xfc, 0x06, 0x83, 0x1d, 0x60, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xca, 0x93, 0xf8, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xd3, 0x4a, 0xfc, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x02, 0x97, 0xf8, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xbd, 0x30, 0xf1, 0xc3, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x01, 0x4d, 0xfc, 0x20, 0x19, 0xd0, 0xa8, 0xdd, 0xd7, 0xc1, 0xf0, 0x8f, 0x3d, 0x28, 0x19, 0x9a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xdc, 0x26, 0xfe, 0x90, 0xaf, 0x3d, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x67, 0x4e, 0xfc, 0x41, 0x60, 0x62, 0x1f, 0x87, 0x86, 0xdf, 0x20, 0x06, 0xb0, 0x42, 0x86, 0xdf, 0x60, 0xb0, 0x03, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xc6, 0x13, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x1d, 0x3f, 0xf1, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x1d, 0x14, 0x7f, 0xb0, 0x64, 0x48, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x54, 0xa2, 0xf8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x3b, 0x8a, 0x3f, 0x48, 0x19, 0x0c, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x1c, 0xa5, 0xf8, 0x43, 0xaa, 0x66, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x23, 0x9a, 0xe2, 0x0f, 0xa9, 0x83, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xcb, 0xa0, 0xe2, 0x8f, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0x4c, 0xc5, 0x1f, 0xd6, 0x7e, 0x0f, 0x46, 0x9a, 0xd6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf9, 0x55, 0xf1, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x8b, 0xb2, 0xe2, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0x6f, 0xc5, 0x1f, 0x2c, 0xa4, 0x9c, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x63, 0xbd, 0xe2, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x2c, 0x2c, 0xfe, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x13, 0xc8, 0xe2, 0x0f, 0xd2, 0x56, 0x48, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xb6, 0x59, 0xfc, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xc8, 0xb4, 0xf8, 0x41, 0x32, 0xd0, 0xb9, 0xef, 0xe0, 0x9c, 0x77, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x51, 0x6c, 0xf1, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x13, 0xde, 0xe2, 0x0f, 0xe2, 0xae, 0xdc, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x8e, 0x8b, 0x3f, 0x08, 0xb2, 0xf8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x25, 0x5d, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0xdd, 0xc5, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0xd0, 0x8b, 0x1f, 0x24, 0x03, 0xdd, 0x9d, 0x0e, 0xce, 0x79, 0xc7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x38, 0x5f, 0xfc, 0x61, 0x5c, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xe5, 0x5f, 0xfc, 0x41, 0x90, 0xc5, 0x1f, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x13, 0x8c, 0x3f, 0x18, 0xac, 0xb1, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xa8, 0x30, 0xfe, 0xb0, 0x57, 0x78, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x40, 0x8c, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x60, 0xc5, 0xf8, 0x43, 0x34, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x6c, 0x8c, 0x3f, 0x8c, 0xcb, 0xf1, 0xf8, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x2b, 0x64, 0xfc, 0x20, 0xd8, 0x20, 0xfa, 0x61, 0x4d, 0x16, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xca, 0x8c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xd8, 0x33, 0x7e, 0xf8, 0x8d, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0x96, 0xc6, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x69, 0x8d, 0x1f, 0x76, 0x83, 0x98, 0xda, 0x17, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xaa, 0xd9, 0xf8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0xb0, 0x8d, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x8c, 0x1b, 0x3f, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0xf0, 0xc6, 0x0f, 0x92, 0x81, 0xfd, 0xaf, 0x43, 0xb6, 0xe2, 0xa0, 0x1c, 0x4a, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x70, 0xdf, 0xf8, 0x43, 0x27, 0xb5, 0xe3, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x09, 0xc7, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x29, 0x8e, 0x1f, 0x7e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xe3, 0x90, 0xe3, 0x07, 0xc9, 0x80, 0x46, 0xed, 0xbe, 0x0e, 0xd9, 0x8a, 0x83, 0x72, 0x28, 0x69, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x9b, 0x96, 0xe3, 0x0f, 0x4d, 0xb8, 0x8e, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0x3b, 0xc7, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x8c, 0x8e, 0x1f, 0x7e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xcb, 0xa9, 0xe3, 0x07, 0xc9, 0xc0, 0x57, 0x5f, 0x87, 0x6c, 0xc5, 0x41, 0x39, 0x94, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xc1, 0xd7, 0xf1, 0x07, 0x67, 0xf5, 0xf3, 0xe3, 0xd0, 0xb0, 0x1b, 0x44, 0x37, 0xbf, 0xc8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x78, 0xc7, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x07, 0x8f, 0x1f, 0x7e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x4b, 0xc8, 0xe3, 0x0f, 0xe2, 0x6e, 0xea, 0xe4, 0xa0, 0x1c, 0x4a, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x7e, 0xf3, 0xf8, 0x83, 0xa0, 0xf4, 0x3e, 0x0e, 0x0d, 0xb2, 0x0d, 0x62, 0xce, 0x5f, 0x64, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x56, 0xf6, 0xf8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x7b, 0x8f, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x22, 0x1f, 0x3f, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0xd5, 0xc7, 0x1f, 0xc4, 0xdd, 0xd4, 0xc9, 0x41, 0x39, 0x94, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x39, 0xf8, 0xf1, 0x87, 0x4e, 0x6a, 0xc7, 0xa1, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xd8, 0x8f, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xdd, 0x1f, 0x3f, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0x04, 0xc8, 0x1f, 0xc4, 0xdd, 0xd4, 0xc9, 0x41, 0x39, 0x94, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf9, 0x03, 0xf2, 0x87, 0x26, 0x5c, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xbb, 0x0d, 0xe4, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0x26, 0xc8, 0x0f, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xe5, 0x0c, 0xf2, 0x07, 0x51, 0x81, 0x75, 0x72, 0x50, 0x0e, 0x25, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xf0, 0x83, 0xfc, 0xc1, 0x59, 0xfd, 0xfc, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xac, 0x84, 0xfc, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x16, 0x0d, 0xf9, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xbd, 0x21, 0xf2, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x21, 0x89, 0xfc, 0x70, 0x1b, 0x44, 0x2b, 0x0f, 0xc6, 0xa1, 0x87, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0xb5, 0xc8, 0x0f, 0xbb, 0xc1, 0x02, 0x51, 0xff, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x86, 0x91, 0x3f, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xd0, 0x19, 0xf9, 0x61, 0x37, 0x78, 0xe1, 0x59, 0xc4, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0xe8, 0xc8, 0x0f, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xc1, 0x3c, 0xf2, 0xc3, 0x2e, 0xf4, 0x20, 0x69, 0x00, 0x61, 0xe1, 0x36, 0x28, 0xb3, 0x20, 0x27, 0x28, 0xde, 0x87, 0xa3, 0x7d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x1b, 0x91, 0xe4, 0x0f, 0x47, 0xfb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x61, 0x4b, 0xf2, 0x87, 0x56, 0xe2, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0xdc, 0xc8, 0x1f, 0xfa, 0x93, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xaa, 0x22, 0x7f, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x35, 0x4e, 0xf2, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xd3, 0xa1, 0xe4, 0x87, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x12, 0x2a, 0xf9, 0x83, 0x68, 0xba, 0x36, 0x39, 0x28, 0x87, 0x92, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x78, 0x2b, 0xf9, 0xe3, 0xd0, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x38, 0x4b, 0xfe, 0xd0, 0x02, 0x68, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xc9, 0x25, 0x7f, 0x88, 0xff, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x03, 0x93, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x32, 0x26, 0x3f, 0x48, 0x06, 0x3a, 0xf7, 0x1d, 0x9c, 0xbd, 0x8c, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xbd, 0x4c, 0x7e, 0xf8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x49, 0x93, 0x1f, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xbd, 0x26, 0x3f, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0xbc, 0xc9, 0x1f, 0x3c, 0xe9, 0x85, 0xe2, 0x60, 0x5d, 0xdb, 0xd8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0xc8, 0xc9, 0x1f, 0x52, 0x07, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x59, 0x9d, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0xe0, 0xc9, 0x1f, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0xd6, 0x93, 0x3f, 0xa4, 0x0e, 0x8e, 0xc7, 0xc7, 0xe3, 0x15, 0x04, 0x8b, 0x73, 0xb0, 0x90, 0x1b, 0x7e, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x15, 0xa0, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0x19, 0xca, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x30, 0x28, 0x7f, 0x10, 0xe7, 0x27, 0x1a, 0x83, 0x6c, 0x83, 0x48, 0x8c, 0x3c, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x8d, 0x51, 0x7e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x92, 0x44, 0xf9, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x64, 0xc0, 0xf9, 0xee, 0xeb, 0x78, 0x7c, 0xe8, 0xa0, 0x71, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x10, 0x2c, 0x1e, 0x44, 0x71, 0xba, 0xc6, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xee, 0x48, 0xf9, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0xd5, 0x94, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x8d, 0x52, 0x7e, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xa3, 0x3a, 0xe5, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x14, 0x95, 0x3f, 0x1c, 0xed, 0x83, 0x6c, 0x83, 0xd8, 0xbd, 0x3c, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xf4, 0x55, 0xf9, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xcb, 0x4a, 0xe5, 0x87, 0xdf, 0x90, 0x5c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xd2, 0x55, 0x7e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xee, 0x59, 0xf9, 0xc3, 0xd1, 0x3e, 0xc8, 0x36, 0x88, 0xdd, 0xcb, 0x93, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0xe6, 0x95, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xd5, 0x56, 0x7e, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xe3, 0x7e, 0xe5, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x25, 0x96, 0x3f, 0x1c, 0xed, 0x83, 0x6c, 0x83, 0xd8, 0xbd, 0x3c, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x34, 0x67, 0xf9, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x0b, 0x8f, 0xe5, 0x87, 0xdf, 0x90, 0x5c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x22, 0x5a, 0x7e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x2e, 0x6b, 0xf9, 0xc3, 0xd1, 0x3e, 0xc8, 0x36, 0x88, 0xdd, 0xcb, 0x93, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0xfe, 0x96, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x25, 0x5b, 0x7e, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xf3, 0xc4, 0xe5, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x3e, 0x97, 0x3f, 0x1c, 0xed, 0x83, 0x6c, 0x83, 0xd8, 0xbd, 0x3c, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x86, 0x78, 0xf9, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x1b, 0xd5, 0xe5, 0x87, 0xdf, 0x90, 0x5c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x77, 0x5e, 0x7e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x80, 0x7c, 0xf9, 0xc3, 0xd1, 0x3e, 0xc8, 0x36, 0x88, 0xdd, 0xcb, 0x93, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x11, 0x98, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x79, 0x5f, 0x7e, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xab, 0x09, 0xe6, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x50, 0x98, 0x3f, 0x1c, 0xed, 0x83, 0x6c, 0x83, 0xd8, 0xbd, 0x3c, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xe6, 0x89, 0xf9, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xd3, 0x19, 0xe6, 0x87, 0xdf, 0x90, 0x5c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xcf, 0x62, 0x7e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xe0, 0x8d, 0xf9, 0xc3, 0xd1, 0x3e, 0xc8, 0x36, 0x88, 0xdd, 0xcb, 0x93, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x22, 0x99, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xd1, 0x63, 0x7e, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xeb, 0x4d, 0xe6, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x61, 0x99, 0x3f, 0x1c, 0xed, 0x83, 0x6c, 0x83, 0xd8, 0xbd, 0x3c, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x79, 0x66, 0x7e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x84, 0x97, 0xf9, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xb3, 0x99, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x77, 0x67, 0xfe, 0x70, 0xb4, 0x1f, 0x9a, 0xbf, 0x1c, 0x8f, 0x07, 0xc1, 0x06, 0x05, 0xb4, 0xe0, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x72, 0xa0, 0xf9, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x37, 0x9a, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x74, 0x68, 0x7e, 0x10, 0x6c, 0x10, 0xdf, 0xf6, 0x19, 0x87, 0x34, 0xdc, 0x20, 0xdb, 0x20, 0xd6, 0x7a, 0x4f, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xa0, 0x69, 0x7e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xde, 0xa4, 0xf9, 0x83, 0x18, 0xac, 0xb4, 0x18, 0x64, 0x1b, 0xc4, 0x5a, 0xef, 0xc9, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0x4c, 0xcd, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xfe, 0x34, 0x7f, 0xf0, 0x92, 0x70, 0xae, 0x41, 0xb6, 0x41, 0xac, 0xf5, 0x9e, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x53, 0xd6, 0xfc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x05, 0x56, 0xf3, 0x83, 0x60, 0x83, 0x88, 0xf5, 0xcf, 0x38, 0x58, 0xc2, 0xff, 0x33, 0xc8, 0x36, 0x88, 0xb5, 0xde, 0x93, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xeb, 0xbe, 0xe6, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xe1, 0x9a, 0x1f, 0x04, 0x1b, 0xbc, 0x29, 0x5c, 0xe8, 0xa0, 0x08, 0x1e, 0x3c, 0x34, 0x7f, 0x39, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x34, 0x36, 0x3f, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0x97, 0xcd, 0x2f, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x97, 0x36, 0xbf, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x68, 0xdb, 0xfc, 0xe2, 0x20, 0xd8, 0x60, 0xe4, 0x3f, 0x2c, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x93, 0x9b, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x5a, 0xbc, 0xf9, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x23, 0xea, 0xe6, 0x07, 0xc1, 0x82, 0x64, 0x40, 0xf8, 0xee, 0x1c, 0x0c, 0x47, 0xe9, 0x83, 0x55, 0x00, 0x59, 0x83, 0x6c, 0x83, 0x18, 0x69, 0x3e, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x5c, 0xbf, 0xf9, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xf3, 0xf6, 0xe6, 0x07, 0xc1, 0x06, 0x31, 0xf4, 0x7c, 0x72, 0xb0, 0x58, 0x97, 0x69, 0x90, 0x6d, 0x10, 0x23, 0xcd, 0x27, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0x13, 0xce, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x17, 0x38, 0x3f, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xe1, 0xe1, 0xfc, 0x20, 0x19, 0x68, 0xd3, 0x77, 0x30, 0x1c, 0xa5, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x22, 0xc5, 0xf9, 0x41, 0xb0, 0x41, 0x0c, 0x3d, 0x9f, 0x1c, 0x2c, 0x4c, 0xfe, 0x39, 0x34, 0x7f, 0x39, 0x1e, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x68, 0x9c, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x5c, 0xc9, 0xf9, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x8b, 0x1f, 0xe7, 0x07, 0xc1, 0x06, 0x31, 0xf4, 0x7c, 0x72, 0x10, 0xd5, 0xb2, 0x22, 0x83, 0x6c, 0x83, 0x98, 0xcc, 0x3e, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x0f, 0x73, 0x7e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xc2, 0xca, 0xf9, 0x41, 0xb0, 0x41, 0x0c, 0x3d, 0x9f, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x58, 0x92, 0x2f, 0x73, 0xc8, 0xd7, 0x1e, 0x87, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc7, 0xa1, 0x43, 0x0b, 0xb0, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0xf1, 0xf8, 0x78, 0x7c, 0x3c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xa9, 0x73, 0x7e, 0x10, 0x6c, 0xf0, 0x40, 0xed, 0x85, 0xc5, 0x41, 0xb0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x8e, 0xce, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x06, 0x3a, 0x3f, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0xf8, 0x85, 0xdf, 0xf8, 0x76, 0x7c, 0x3b, 0xbe, 0x1d, 0xd2, 0x70, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0xad, 0xce, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x80, 0x3a, 0x3f, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x89, 0xeb, 0xfc, 0x41, 0xb3, 0x03, 0x2b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x0d, 0x3b, 0x7f, 0x10, 0xcf, 0x4a, 0x18, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xd0, 0xa1, 0x83, 0xc6, 0xa1, 0xf9, 0xcb, 0xf1, 0xf8, 0x78, 0xbc, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb9, 0xdb, 0xa2, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0x87, 0x8b, 0x1e, 0xac, 0xe2, 0xdf, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x38, 0x72, 0xd1, 0x41, 0xb0, 0x41, 0x3b, 0x23, 0xf7, 0x07, 0xef, 0x0a, 0xb7, 0x3a, 0x34, 0x7f, 0x39, 0x1e, 0x1f, 0x87, 0x0e, 0x8d, 0x5a, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x14, 0x05, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x00, 0x15, 0xec, 0xe2, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x3b, 0x16, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x7b, 0xc1, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xb8, 0x05, 0x3b, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x63, 0x18, 0xec, 0xc1, 0xfb, 0x11, 0x4a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x8a, 0x0c, 0xf6, 0xe0, 0x69, 0xfa, 0x3d, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xd0, 0x21, 0x0d, 0x37, 0xc8, 0x36, 0x88, 0x2c, 0xf9, 0x93, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xb3, 0xd4, 0x60, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x39, 0x83, 0x3d, 0x78, 0x32, 0x89, 0xc7, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x05, 0xc1, 0xe2, 0x06, 0x45, 0xb5, 0xe0, 0x06, 0x01, 0x70, 0x7f, 0xf0, 0xea, 0xbd, 0xb7, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x49, 0x79, 0xb0, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0xd1, 0xc1, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xfd, 0x1e, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0x0d, 0xc2, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xea, 0x07, 0x7b, 0xf0, 0x88, 0x70, 0xa1, 0x41, 0xb6, 0x41, 0xe4, 0xf5, 0x9f, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xcf, 0x22, 0xec, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x35, 0x86, 0xb0, 0x83, 0x60, 0x83, 0x37, 0x85, 0x0b, 0x1d, 0x24, 0x97, 0x0f, 0x0c, 0xb2, 0x0d, 0x22, 0xaf, 0xff, 0x64, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x93, 0x25, 0x61, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x70, 0x84, 0x1d, 0x04, 0x1b, 0xbc, 0xea, 0x54, 0xe9, 0xe0, 0x69, 0x54, 0x69, 0x83, 0x6c, 0x83, 0xc8, 0xeb, 0x3f, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x3c, 0x13, 0x76, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xce, 0x4a, 0xd8, 0x41, 0xb0, 0xc1, 0x73, 0x58, 0x84, 0x0e, 0x96, 0xaf, 0x12, 0x0d, 0xb2, 0x0d, 0xa2, 0x81, 0xff, 0x64, 0x90, 0x6d, 0x10, 0xc1, 0xfc, 0x27, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xcb, 0x09, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x7d, 0xa5, 0xb0, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x7d, 0xc2, 0x0e, 0x82, 0x0d, 0x1e, 0xa9, 0x66, 0x76, 0xb0, 0x58, 0x8b, 0x69, 0x90, 0x6d, 0x10, 0x15, 0x08, 0x28, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xee, 0x0a, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x35, 0x2a, 0xec, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x83, 0x25, 0x39, 0x34, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x83, 0x61, 0xb5, 0x72, 0x1c, 0x1a, 0x64, 0x1b, 0x44, 0x05, 0x02, 0xca, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x4d, 0xb8, 0xb0, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0xc8, 0xc2, 0x0e, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xb1, 0x0b, 0x7b, 0xf0, 0xaa, 0x26, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xbc, 0x17, 0xf6, 0x60, 0xa9, 0xba, 0xcf, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x05, 0x86, 0x3d, 0x68, 0x87, 0x85, 0xe9, 0x38, 0x74, 0x10, 0x99, 0xac, 0x26, 0x83, 0x6c, 0x83, 0x68, 0xe0, 0x3f, 0x19, 0x64, 0x1b, 0x44, 0x30, 0xff, 0xc9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x99, 0xc3, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xc5, 0x0c, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x90, 0x31, 0xec, 0xc1, 0xdb, 0xd4, 0x7b, 0x06, 0xd9, 0x06, 0xd1, 0x53, 0x81, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x61, 0xd4, 0xb0, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0x3c, 0xc3, 0x0e, 0x82, 0x0d, 0x1e, 0xb6, 0xd7, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0x0d, 0x7f, 0x1b, 0x07, 0x61, 0x4f, 0x7d, 0x1c, 0x1a, 0x64, 0x1b, 0x44, 0x4f, 0x05, 0xca, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x74, 0xc3, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x73, 0x0d, 0x7b, 0xf0, 0x80, 0x7f, 0xb0, 0x41, 0xb6, 0x41, 0xf4, 0x54, 0xa0, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x5c, 0x0e, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xfc, 0x37, 0xec, 0x20, 0xd8, 0xe0, 0xbd, 0xd3, 0x6f, 0x07, 0x8d, 0x4e, 0x28, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x57, 0x10, 0x2c, 0x6e, 0xd0, 0xb6, 0x63, 0xd3, 0xe1, 0x14, 0x5b, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xbe, 0x0f, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x84, 0x3b, 0xec, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd1, 0xea, 0xb0, 0xc3, 0x2e, 0xdc, 0xe2, 0xc1, 0x9b, 0x07, 0x62, 0x0f, 0xd1, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x4c, 0x7f, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x0a, 0x88, 0x1d, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x20, 0x66, 0x45, 0x50, 0x36, 0x88, 0x59, 0x11, 0x94, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x88, 0xa5, 0x11, 0x94, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x40, 0x88, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xa2, 0x20, 0x76, 0x10, 0x6c, 0xd0, 0x58, 0xcb, 0xfd, 0xa1, 0x29, 0xd0, 0x20, 0xdb, 0x20, 0x96, 0x46, 0x50, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x75, 0x88, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x76, 0x21, 0x76, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb8, 0x88, 0xd8, 0x83, 0x57, 0x35, 0x09, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x39, 0x14, 0xb1, 0x07, 0x4b, 0xd5, 0x7d, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xc2, 0x45, 0xec, 0x41, 0xc9, 0xd0, 0x74, 0x1c, 0x3a, 0xb4, 0x00, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x3f, 0x23, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x73, 0x39, 0x62, 0x0f, 0xda, 0x86, 0x6c, 0x1a, 0x64, 0x1b, 0xc4, 0x9d, 0x0b, 0xca, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0x89, 0xc4, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xf8, 0x11, 0x3b, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x51, 0x49, 0xec, 0xc1, 0xfb, 0x11, 0x4a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x01, 0x25, 0xf6, 0xa0, 0x64, 0x68, 0x3a, 0x0e, 0x1d, 0x9a, 0x02, 0x0d, 0xb2, 0x0d, 0xe2, 0xce, 0x05, 0x65, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xf4, 0x96, 0xd8, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xe3, 0x55, 0x62, 0x07, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x85, 0x89, 0x3d, 0x78, 0x55, 0x93, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x38, 0x13, 0x7b, 0xf0, 0xae, 0xd5, 0xa1, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xb2, 0x89, 0x3d, 0x38, 0xf7, 0xd1, 0x1e, 0x87, 0x0e, 0x2d, 0xc0, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x2b, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0xf0, 0xc4, 0x0e, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xec, 0x13, 0x7b, 0xf0, 0x12, 0x8d, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x31, 0x28, 0xf6, 0xe0, 0xfd, 0xe9, 0x42, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x8d, 0x28, 0xf6, 0xe0, 0xf5, 0x30, 0x44, 0xc7, 0xa1, 0x43, 0xa3, 0x96, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x0a, 0x82, 0xc5, 0x0d, 0x9e, 0x26, 0xa6, 0xb2, 0xc1, 0x43, 0x39, 0xae, 0x5a, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xcd, 0x14, 0x3b, 0xec, 0x06, 0x0f, 0xda, 0x1a, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xc0, 0xa7, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x9a, 0x8a, 0x3d, 0x78, 0x69, 0xd8, 0xd0, 0x20, 0xdb, 0x20, 0x76, 0x89, 0x50, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xca, 0x8a, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xc2, 0x2a, 0xf6, 0x30, 0x2e, 0xc3, 0x6e, 0xf0, 0x76, 0x8b, 0xb7, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xe1, 0x8a, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x6c, 0xaf, 0xd8, 0x83, 0xc8, 0x97, 0xd2, 0x18, 0x64, 0x1b, 0xc4, 0x30, 0x12, 0xca, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x96, 0xc5, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x27, 0x16, 0x7b, 0x68, 0x24, 0x38, 0xc8, 0x36, 0x88, 0x61, 0x24, 0x94, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x33, 0xd7, 0x62, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x42, 0x8b, 0x3d, 0x08, 0x4a, 0xef, 0x61, 0x37, 0x58, 0x62, 0x69, 0xb5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x61, 0x6e, 0xb1, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x22, 0x17, 0x7b, 0xb0, 0x68, 0xd3, 0x6a, 0x90, 0x6d, 0x10, 0xdd, 0x4e, 0x28, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0xe0, 0xc5, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x4e, 0x17, 0x3b, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xc0, 0x5e, 0xec, 0xc1, 0xfb, 0x11, 0x4a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xb9, 0x2f, 0xf6, 0xe0, 0x2d, 0x05, 0x44, 0xc7, 0xa1, 0x43, 0x07, 0x8d, 0x61, 0x37, 0x78, 0xf3, 0xd4, 0xdb, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0x02, 0xc6, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xea, 0x61, 0xec, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0xef, 0x9f, 0x7a, 0xdb, 0xe0, 0xfd, 0x53, 0x6f, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0x10, 0x11, 0x56, 0x28, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x2d, 0xc6, 0x1e, 0x0c, 0xcd, 0xdf, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x23, 0x1c, 0x63, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x19, 0x32, 0x76, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x87, 0x81, 0xcf, 0x6c, 0xf0, 0x30, 0xf0, 0x99, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x88, 0xef, 0x2c, 0x94, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x23, 0x2d, 0x63, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x9c, 0x8c, 0x3d, 0x88, 0x48, 0x06, 0x92, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x60, 0x71, 0x30, 0xd8, 0xa0, 0x05, 0x19, 0xe6, 0x99, 0xd9, 0xe0, 0x45, 0x4c, 0x47, 0x33, 0x33, 0x1b, 0xac, 0xe6, 0x38, 0xda, 0xe0, 0x41, 0xe9, 0x1b, 0xb3, 0x41, 0x1c, 0x7f, 0xa0, 0x1c, 0x04, 0xc0, 0xfd, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x4a, 0xce, 0xd8, 0x61, 0x17, 0x6e, 0x83, 0x22, 0xd3, 0xe7, 0x10, 0xcd, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xfb, 0x8c, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x0e, 0xd1, 0xd8, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x8a, 0x4c, 0x9f, 0x0d, 0x8a, 0x4c, 0x9f, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x88, 0x31, 0x31, 0x94, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x93, 0x4a, 0x63, 0x0f, 0x22, 0x50, 0x45, 0x63, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x8c, 0xd4, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x5e, 0x8d, 0x1d, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x20, 0x51, 0xee, 0x63, 0x83, 0x44, 0xb9, 0x8f, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x88, 0x15, 0x33, 0x94, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x23, 0x5e, 0x63, 0x07, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x1d, 0x34, 0xa1, 0xc0, 0x74, 0xe8, 0xa0, 0x71, 0x68, 0xfe, 0x72, 0x3c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xd5, 0x36, 0x76, 0xf8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0xe0, 0x8d, 0x5d, 0x5c, 0x10, 0x2c, 0x1e, 0x3c, 0xdb, 0xfb, 0x6d, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x78, 0x71, 0xec, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x09, 0xc1, 0xb1, 0xc3, 0x2e, 0xdc, 0x06, 0x6f, 0x44, 0xb9, 0x3a, 0x44, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x33, 0x91, 0x63, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x6a, 0x39, 0xf6, 0xe0, 0xe5, 0x27, 0x57, 0x83, 0x6c, 0x83, 0x78, 0x78, 0x43, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xbc, 0xe8, 0xd8, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x5b, 0x9c, 0x63, 0x07, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xa2, 0x8e, 0x3d, 0x68, 0x76, 0x60, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x03, 0xae, 0x63, 0x0f, 0xde, 0xc8, 0xa6, 0x73, 0x1c, 0x3a, 0x34, 0x05, 0x1a, 0x64, 0x1b, 0xc4, 0xc3, 0x1b, 0xca, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x29, 0xdd, 0xb1, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0x67, 0xc7, 0x0e, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x24, 0x03, 0x65, 0xe9, 0x90, 0xad, 0x38, 0xb4, 0x00, 0x1b, 0x76, 0x83, 0x67, 0x71, 0x5c, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x04, 0x78, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0x8b, 0xc7, 0x0e, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0xf0, 0x44, 0x8e, 0xab, 0x0d, 0x9e, 0xc8, 0x71, 0x75, 0x38, 0xc5, 0x06, 0xd9, 0x06, 0x91, 0x91, 0x87, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf1, 0xe8, 0xb1, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x96, 0xc7, 0x0e, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xbb, 0x1e, 0x7b, 0xd0, 0xec, 0xc0, 0xca, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0xb9, 0xc7, 0x1e, 0xbc, 0x91, 0x4d, 0xe7, 0x38, 0x74, 0x68, 0x0a, 0x34, 0xc8, 0x36, 0x88, 0x8c, 0x3c, 0x94, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x3b, 0xe9, 0x63, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x8a, 0x8f, 0x1d, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xed, 0x3e, 0xf6, 0xa0, 0xed, 0x85, 0xfe, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xd1, 0x8f, 0x3d, 0x88, 0x5f, 0x13, 0x8c, 0xe3, 0xd0, 0xa1, 0x05, 0xd8, 0xb0, 0x1b, 0xbc, 0xa1, 0xe2, 0x6a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x53, 0xfa, 0x63, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xfc, 0x3f, 0x76, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0xf7, 0x54, 0x5c, 0x6d, 0xf0, 0x9e, 0x8a, 0xab, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x88, 0x1f, 0x43, 0x94, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x6b, 0x0b, 0x64, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x15, 0x90, 0x1d, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x0f, 0x41, 0xf6, 0xa0, 0xed, 0x85, 0xfe, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x5a, 0x90, 0x1d, 0x24, 0x1b, 0xbc, 0x54, 0xc2, 0xe3, 0x60, 0x18, 0xfa, 0x1c, 0x87, 0x0e, 0x1d, 0x34, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x71, 0x90, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x76, 0x08, 0xd9, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x5e, 0xb9, 0x70, 0xb5, 0xc1, 0x2b, 0x17, 0xae, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0x20, 0x66, 0x1c, 0x51, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0xb5, 0x90, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x78, 0x42, 0x76, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xc2, 0x0c, 0xd9, 0x83, 0xb6, 0x17, 0xfa, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x89, 0x43, 0xf6, 0x20, 0x52, 0x1a, 0x51, 0x8e, 0x43, 0x87, 0x0e, 0x1a, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x05, 0xc1, 0xe2, 0x41, 0x2c, 0x0c, 0xa1, 0x2c, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x31, 0x91, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x29, 0x44, 0x76, 0xd8, 0x0d, 0x5e, 0xb6, 0x70, 0xb5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd9, 0x28, 0xb2, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xb9, 0x22, 0x7b, 0x10, 0x81, 0x8f, 0x28, 0x83, 0x6c, 0x83, 0x68, 0xc4, 0x44, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x2c, 0x46, 0x76, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x36, 0x17, 0xd9, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x5b, 0x68, 0x64, 0x0f, 0xda, 0x5e, 0xe8, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x7a, 0x1b, 0xd9, 0x83, 0x48, 0x69, 0x44, 0x39, 0x0e, 0x1d, 0x3a, 0x68, 0x0c, 0xbb, 0xc1, 0x1b, 0x2a, 0xae, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x3c, 0x47, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x3b, 0x79, 0x64, 0x0f, 0xa2, 0xf1, 0x10, 0x65, 0x90, 0x6d, 0x10, 0xc7, 0x9f, 0x28, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x09, 0xc9, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xf7, 0x23, 0x3b, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x4d, 0x91, 0xec, 0x41, 0xdb, 0x0b, 0xfd, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x7f, 0x24, 0x7b, 0x10, 0x29, 0x8d, 0x28, 0xc7, 0xa1, 0x43, 0x07, 0x8d, 0x61, 0x37, 0x88, 0x35, 0x37, 0x94, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x57, 0x92, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xd0, 0x26, 0xd9, 0x83, 0x97, 0x9f, 0x5c, 0x0d, 0xb2, 0x0d, 0x62, 0xe0, 0x14, 0x65, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xe0, 0x29, 0xd9, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xf3, 0xa0, 0x64, 0x07, 0xc1, 0x06, 0x51, 0x7b, 0x87, 0x72, 0xe8, 0xa0, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xa9, 0x95, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0x65, 0xc9, 0x1e, 0xc4, 0x99, 0x1e, 0xca, 0x20, 0xdb, 0x20, 0x32, 0x56, 0x51, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xe1, 0x92, 0x3d, 0x18, 0x9a, 0xbf, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x05, 0xc1, 0x06, 0x6f, 0xf1, 0x7e, 0x5b, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x63, 0x26, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x56, 0x98, 0xec, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xed, 0x68, 0xb2, 0x07, 0xc7, 0x85, 0xf3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x87, 0x4d, 0xf6, 0x60, 0x84, 0x44, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x86, 0x37, 0xd9, 0x83, 0x92, 0xa1, 0xe9, 0x38, 0x74, 0x68, 0xd4, 0x72, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x10, 0x2c, 0x6e, 0xf0, 0xb6, 0x83, 0xa0, 0x83, 0x00, 0xb8, 0x5f, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x88, 0x27, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xec, 0x9c, 0xec, 0xb0, 0x1b, 0xc4, 0xf0, 0x9e, 0xc5, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0xed, 0xc9, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x7f, 0x9f, 0xec, 0x41, 0xd4, 0xf6, 0x59, 0x0c, 0xb2, 0x0d, 0x22, 0xfa, 0x16, 0x65, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xab, 0x01, 0x65, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xdb, 0x50, 0x76, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xca, 0x41, 0xd9, 0x83, 0xc8, 0xd5, 0xc2, 0x18, 0x64, 0x1b, 0xc4, 0x7b, 0x2e, 0xca, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd5, 0x8c, 0xb2, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0x26, 0xca, 0x0e, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x24, 0x1b, 0xac, 0xb9, 0x40, 0x3a, 0x18, 0x86, 0x3e, 0x07, 0xeb, 0xc6, 0x98, 0x06, 0xd9, 0x06, 0x11, 0x7d, 0x8b, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xc0, 0xa4, 0xec, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb1, 0x8f, 0xb2, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x0e, 0xde, 0x9b, 0x16, 0x70, 0x68, 0x01, 0x36, 0xec, 0xc2, 0x6d, 0xf0, 0x40, 0xb7, 0x92, 0x43, 0x34, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xcc, 0x52, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x3b, 0x32, 0x65, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x78, 0xa0, 0x5b, 0xc9, 0x06, 0x0f, 0x74, 0x2b, 0x39, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x38, 0x15, 0x46, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x7e, 0x53, 0x76, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0xc1, 0x83, 0xd7, 0xe0, 0x0e, 0x1d, 0x34, 0x86, 0x5d, 0xb8, 0xc5, 0x83, 0x67, 0x92, 0xca, 0x1e, 0xa2, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x65, 0x9f, 0xb2, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x21, 0x2a, 0x3b, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0x41, 0x94, 0x1c, 0xa3, 0x6c, 0x10, 0x25, 0xc7, 0x28, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0x10, 0xbd, 0xc7, 0x28, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0xa4, 0xca, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x5d, 0x2a, 0x3b, 0x08, 0x16, 0x7e, 0x43, 0x72, 0xe9, 0x20, 0x52, 0x1a, 0x51, 0x0e, 0x1d, 0x34, 0x86, 0xdd, 0xe0, 0x29, 0x48, 0x6f, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xbf, 0x2a, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xad, 0xae, 0xb2, 0x07, 0x4f, 0x29, 0xc2, 0x1a, 0x64, 0x1b, 0x44, 0x51, 0x33, 0xca, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0xd3, 0xca, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x18, 0x2b, 0x3b, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x90, 0x0c, 0x6c, 0xff, 0x1d, 0x04, 0x39, 0xff, 0xa1, 0x29, 0xd0, 0x20, 0xdb, 0x20, 0x8a, 0x9a, 0x51, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xdb, 0x95, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x04, 0x57, 0x76, 0x10, 0x6c, 0x10, 0xb7, 0x38, 0x18, 0x87, 0x16, 0x60, 0xc3, 0x6e, 0xf0, 0x88, 0x9e, 0xa0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0xf2, 0x95, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x82, 0x60, 0xd9, 0x83, 0x57, 0x3f, 0x47, 0x0d, 0xb2, 0x0d, 0x62, 0x94, 0x1a, 0x65, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x4b, 0x8e, 0x65, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x1e, 0x96, 0x1d, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x48, 0x06, 0x45, 0x87, 0x6c, 0xc5, 0xa1, 0x29, 0xd0, 0x20, 0xdb, 0x20, 0x46, 0xa9, 0x51, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x6a, 0x96, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x40, 0x59, 0x76, 0x10, 0x6c, 0x10, 0xc9, 0xd0, 0x28, 0x87, 0x16, 0x60, 0xc3, 0x2e, 0xdc, 0xe2, 0xc1, 0xbb, 0xaa, 0x65, 0x0f, 0xd1, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x14, 0x68, 0xd9, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x97, 0x96, 0x1d, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x20, 0x26, 0xb7, 0x51, 0x36, 0x88, 0xc9, 0x6d, 0x94, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x88, 0x15, 0x6e, 0x94, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xcf, 0x96, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xd4, 0x5a, 0xf6, 0x20, 0x12, 0xb0, 0x51, 0x06, 0xd9, 0x06, 0xb1, 0xc2, 0x8d, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x02, 0xb8, 0xec, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xc5, 0xdc, 0xb2, 0x07, 0xd1, 0xac, 0x8d, 0x32, 0xec, 0xc2, 0x2d, 0x1e, 0xb4, 0x60, 0xca, 0x75, 0x88, 0xe6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x8b, 0xcb, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x6a, 0xb9, 0xec, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0xb1, 0x2e, 0x8e, 0xb2, 0x41, 0xac, 0x8b, 0xa3, 0x1c, 0x4e, 0xb1, 0x41, 0xb6, 0x41, 0x04, 0x8e, 0xa3, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x24, 0xbb, 0xec, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x49, 0xe9, 0xb2, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc9, 0x40, 0xad, 0x3a, 0x9e, 0x1f, 0x9a, 0x02, 0x0d, 0xb2, 0x0d, 0x22, 0x70, 0x1c, 0x65, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x63, 0xe6, 0x65, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x7f, 0x97, 0x1d, 0x04, 0x1b, 0xc4, 0x53, 0x0a, 0xc6, 0xa1, 0x13, 0xd1, 0x20, 0xdb, 0x20, 0x02, 0xc7, 0x51, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xca, 0x97, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xbf, 0x5e, 0x76, 0x10, 0x6c, 0x10, 0xb7, 0x38, 0x18, 0x87, 0xee, 0x47, 0xc3, 0x2e, 0xdc, 0x06, 0x4f, 0x58, 0x7a, 0x38, 0x44, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x5b, 0xf8, 0x65, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xdc, 0x5f, 0x76, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x27, 0x2c, 0x3d, 0x6c, 0xf0, 0x84, 0xa5, 0x87, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x88, 0x17, 0x77, 0x94, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xc3, 0x0a, 0x66, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x10, 0x98, 0x1d, 0x04, 0x1b, 0x44, 0xf4, 0x39, 0xca, 0xa1, 0x83, 0xc6, 0xb0, 0x0b, 0xb7, 0x78, 0x50, 0x4c, 0xf4, 0x1d, 0xa2, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x45, 0x08, 0xb3, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xaf, 0x30, 0x3b, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0x41, 0x7c, 0xcc, 0xa3, 0x6c, 0x10, 0x1f, 0xf3, 0x28, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0x10, 0xad, 0xf3, 0x28, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x47, 0xcc, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xe8, 0x30, 0x7b, 0x10, 0x59, 0xf2, 0x28, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0x52, 0xcc, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xdd, 0xc5, 0xec, 0x41, 0xcc, 0x3b, 0x90, 0x0c, 0xb2, 0x0d, 0x22, 0x08, 0x1f, 0x65, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x8b, 0x3d, 0x66, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xd8, 0x98, 0x3d, 0x18, 0x5e, 0xbc, 0x83, 0x6c, 0x83, 0x08, 0xc2, 0x47, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x2f, 0x64, 0x76, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0xf0, 0x1b, 0xa4, 0xe1, 0xc0, 0x1f, 0xc4, 0xf7, 0x9f, 0xc6, 0xa1, 0x05, 0xd8, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x31, 0x99, 0x1d, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xa4, 0x94, 0xd9, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x2b, 0x58, 0x66, 0x07, 0xc1, 0x06, 0x31, 0xaf, 0x7f, 0xb2, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x19, 0x33, 0xb3, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xc5, 0x99, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x6f, 0x67, 0x76, 0xf8, 0x05, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0xf8, 0xcc, 0x0e, 0x92, 0x81, 0xb3, 0xea, 0xe0, 0xec, 0x65, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0x05, 0xcd, 0x1e, 0xb4, 0x57, 0x26, 0x32, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x9b, 0x88, 0x66, 0x87, 0xdf, 0x90, 0x5c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xe2, 0x68, 0x76, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xf0, 0xa4, 0xd9, 0x43, 0x72, 0xe9, 0xd0, 0xfc, 0xe5, 0x78, 0x7c, 0x1c, 0x3a, 0xbe, 0x1d, 0x8f, 0x57, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x96, 0xa7, 0xd9, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x9a, 0xd6, 0xec, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x2d, 0x5d, 0xb3, 0xc3, 0x2f, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xfe, 0x6b, 0xf6, 0x20, 0x4e, 0x0a, 0x52, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x62, 0xb1, 0xd9, 0x83, 0xf6, 0xca, 0x44, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x68, 0xd9, 0xec, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0xa1, 0xcd, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xb3, 0x36, 0x7b, 0x48, 0x2e, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x8f, 0x43, 0xc7, 0xb7, 0xe3, 0xf1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0xbc, 0xcd, 0x0e, 0x82, 0xc5, 0x39, 0x78, 0xf5, 0x92, 0xdb, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x85, 0x7a, 0xb3, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0xf5, 0xcd, 0x0e, 0xbf, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x06, 0xc0, 0xd9, 0x83, 0x38, 0x29, 0x48, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xc3, 0x05, 0x67, 0x0f, 0xda, 0x2b, 0x13, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xbd, 0x85, 0xb3, 0xc3, 0x6f, 0x48, 0x2e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x88, 0x38, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xd4, 0xe2, 0xec, 0x21, 0xb9, 0x74, 0x68, 0xfe, 0x72, 0x3c, 0x3e, 0x0e, 0x1d, 0xdf, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0x3c, 0xce, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x1e, 0x39, 0x3b, 0xfc, 0x82, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x5b, 0x29, 0x67, 0x07, 0xc9, 0xc0, 0x59, 0x75, 0x70, 0x12, 0x3a, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x03, 0x2f, 0x67, 0x0f, 0xd2, 0xbf, 0x14, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x97, 0xe6, 0xec, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0x74, 0xce, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xff, 0x39, 0x7b, 0x3c, 0x3e, 0x34, 0x7f, 0x39, 0x1e, 0x1f, 0x87, 0x8e, 0x6f, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x44, 0x3a, 0x3b, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xee, 0xd4, 0xd9, 0x43, 0x0c, 0x8f, 0xc7, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xbe, 0x3b, 0x3b, 0x08, 0x16, 0xe7, 0x20, 0x16, 0x86, 0x50, 0x16, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x3d, 0x9e, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x4d, 0x79, 0x76, 0xf8, 0x05, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x34, 0xcf, 0x1e, 0xc4, 0x49, 0x41, 0xca, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x00, 0x3d, 0x7b, 0xd0, 0x5e, 0x99, 0xc8, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x96, 0x9e, 0x1d, 0x7e, 0x43, 0x72, 0x69, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xd0, 0xea, 0xd9, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xe3, 0xb0, 0x67, 0x0f, 0xc9, 0xa5, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x71, 0xe8, 0xf8, 0x76, 0x3c, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x3c, 0xee, 0xd9, 0x41, 0xb0, 0x41, 0x83, 0x5c, 0x2e, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0x9e, 0xcf, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xa8, 0x3e, 0x3b, 0xfc, 0x82, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x8b, 0xda, 0x67, 0x0f, 0xe2, 0xa4, 0x20, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x80, 0x9f, 0x3d, 0x68, 0xaf, 0x4c, 0x64, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0xcb, 0xcf, 0x0e, 0xbf, 0x21, 0xb9, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x6e, 0xfd, 0xec, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x89, 0xf8, 0xb3, 0x87, 0xe4, 0xd2, 0xa1, 0xf9, 0xcb, 0xf1, 0xf8, 0x38, 0x74, 0x7c, 0x3b, 0x1e, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x37, 0xff, 0xec, 0x20, 0xd8, 0x60, 0x35, 0xc7, 0xd1, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x99, 0x06, 0xb4, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0x25, 0xd0, 0x0e, 0xbf, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x10, 0x06, 0xda, 0x83, 0x38, 0x29, 0x48, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xeb, 0x1d, 0x68, 0x0f, 0xda, 0x2b, 0x13, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd1, 0x11, 0xb4, 0xc3, 0x6f, 0x48, 0x2e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x49, 0x41, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xd9, 0x05, 0xed, 0x21, 0xb9, 0x74, 0x68, 0xfe, 0x72, 0x3c, 0x3e, 0x0e, 0x1d, 0xdf, 0x8e, 0xc7, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xb8, 0x41, 0x3b, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x94, 0x10, 0xda, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xdb, 0x47, 0x68, 0x87, 0x5f, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xac, 0x09, 0xed, 0x41, 0x9c, 0x14, 0xa4, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x85, 0x29, 0xb4, 0x07, 0xed, 0x95, 0x89, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x30, 0x16, 0xda, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x79, 0xa1, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x3e, 0x86, 0xf6, 0x90, 0x5c, 0x3a, 0x34, 0x7f, 0x39, 0x1e, 0x1f, 0x87, 0x8e, 0x6f, 0xc7, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x93, 0x6c, 0x68, 0x0f, 0x56, 0x73, 0x1c, 0x1d, 0x8f, 0x0f, 0xcd, 0x5f, 0x8e, 0xc7, 0x83, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x93, 0x0f, 0xed, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x11, 0x41, 0xb4, 0x83, 0x64, 0xe0, 0xac, 0x3a, 0x18, 0xfe, 0xb1, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xfb, 0x10, 0xed, 0xc1, 0x69, 0x05, 0x77, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x1b, 0xd1, 0x1e, 0x9c, 0x98, 0x7d, 0x8f, 0x43, 0x87, 0x46, 0x2d, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x41, 0xb0, 0xb8, 0xc1, 0x63, 0x19, 0x69, 0x0f, 0x1e, 0x01, 0xe6, 0xb1, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x1b, 0x8a, 0x76, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x00, 0x26, 0xda, 0x61, 0x17, 0x6e, 0x83, 0xf8, 0x27, 0xb4, 0x38, 0x44, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x23, 0xa7, 0x68, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xc9, 0x8a, 0xf6, 0x20, 0x56, 0x09, 0x2d, 0x06, 0xd9, 0x06, 0xf1, 0x6c, 0x95, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x16, 0x17, 0xed, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x21, 0x59, 0xb4, 0x07, 0x11, 0x93, 0x82, 0x31, 0xec, 0xc2, 0x2d, 0x1e, 0xbc, 0x8c, 0x8c, 0xf6, 0x10, 0xcd, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0xf9, 0xa2, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xf4, 0x30, 0xda, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x62, 0x55, 0x2b, 0x65, 0x83, 0x58, 0xd5, 0x4a, 0x39, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x18, 0xda, 0x4a, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb4, 0x34, 0xda, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x63, 0xcc, 0x68, 0x07, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x92, 0x01, 0x81, 0xbe, 0x74, 0xc8, 0x56, 0x1c, 0x9a, 0x02, 0x0d, 0xb2, 0x0d, 0x62, 0x68, 0x2b, 0x65, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xc0, 0x37, 0xda, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x8b, 0xd8, 0x68, 0x0f, 0x22, 0xa6, 0x0a, 0x63, 0xd8, 0x85, 0x5b, 0x3c, 0x78, 0xe2, 0x1d, 0xed, 0x21, 0x9a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x25, 0x47, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x0d, 0x75, 0xb4, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x44, 0xb3, 0x58, 0xca, 0x06, 0xd1, 0x2c, 0x96, 0x72, 0x38, 0xc5, 0x06, 0xd9, 0x06, 0x51, 0x36, 0x96, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x3d, 0x1e, 0xed, 0xc1, 0xd0, 0xfc, 0x1d, 0x76, 0x83, 0x78, 0x6d, 0xb3, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xde, 0x3d, 0xda, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xf3, 0xa3, 0x3d, 0x88, 0xd6, 0x37, 0x8b, 0x41, 0xb6, 0x41, 0x6c, 0x9e, 0xa5, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x49, 0x48, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x53, 0x20, 0xed, 0x41, 0x94, 0xa9, 0xa2, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x77, 0x48, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x35, 0x8a, 0xb4, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x8e, 0x07, 0x8f, 0x65, 0xa4, 0xdd, 0x20, 0x0e, 0xda, 0x52, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0x20, 0xca, 0xd6, 0x52, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x32, 0x92, 0x76, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x2e, 0x47, 0xda, 0x83, 0xa8, 0xfb, 0x4a, 0x19, 0x64, 0x1b, 0x44, 0xd9, 0x5a, 0xca, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xbd, 0x97, 0xb4, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0x51, 0xd2, 0x1e, 0xc4, 0xe5, 0x1d, 0xca, 0xa1, 0xf9, 0xcb, 0xf1, 0xf8, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x51, 0x6e, 0xec, 0xc1, 0x89, 0xd9, 0x77, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xd2, 0x4e, 0xda, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x64, 0x60, 0xfb, 0xef, 0x90, 0xad, 0x38, 0x34, 0x6a, 0x39, 0x34, 0x7f, 0x39, 0x1e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x2d, 0x4a, 0x3b, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xa7, 0x29, 0xed, 0xc1, 0xab, 0x9a, 0x84, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb0, 0x54, 0xda, 0x83, 0xc7, 0x95, 0x5a, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x1e, 0x56, 0xda, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x09, 0xaf, 0xb4, 0x07, 0x2f, 0xd1, 0x28, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xa3, 0x63, 0x69, 0x0f, 0x5e, 0x1d, 0x2e, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x5b, 0x69, 0x69, 0x0f, 0x96, 0xaa, 0xfb, 0x1c, 0x87, 0x8e, 0x43, 0x87, 0x46, 0x2d, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0xcf, 0xa5, 0x1d, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xd6, 0x97, 0xf6, 0xe0, 0x8d, 0x00, 0x25, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x5e, 0x69, 0xc7, 0xb1, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x2d, 0x98, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xeb, 0x8e, 0x69, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x21, 0xa6, 0x1d, 0x04, 0x1b, 0x3c, 0x79, 0x04, 0xe9, 0x90, 0x86, 0x1b, 0x64, 0x1b, 0xc4, 0xd9, 0x60, 0xca, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x38, 0xd3, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xac, 0x4c, 0x3b, 0x08, 0x36, 0x78, 0xef, 0xf4, 0xdb, 0xa1, 0x29, 0xd0, 0x20, 0xdb, 0x20, 0xce, 0x06, 0x53, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xa2, 0xa6, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x1e, 0x9a, 0x76, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0xc1, 0x2b, 0xb4, 0x12, 0x0e, 0x2d, 0xc0, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc7, 0xa1, 0x43, 0xa3, 0x96, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x0a, 0x82, 0x0d, 0x62, 0xe2, 0xa1, 0x63, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x6d, 0x36, 0xed, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x79, 0xdc, 0xb4, 0x07, 0x71, 0x04, 0xd1, 0x71, 0x68, 0xfe, 0x72, 0x3c, 0x1e, 0x04, 0x1b, 0x8c, 0xfc, 0x87, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xe5, 0xe5, 0xb4, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xe4, 0x4e, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x20, 0x3a, 0xed, 0xc1, 0xcb, 0x95, 0x8b, 0x06, 0xd9, 0x06, 0xd1, 0xf2, 0x98, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf9, 0xf5, 0xb4, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0xc4, 0xd3, 0x0e, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x8b, 0x4f, 0x7b, 0xf0, 0xaa, 0x26, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x6f, 0x9f, 0xf6, 0xe0, 0x71, 0xa5, 0x56, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xcb, 0x9f, 0x76, 0x90, 0x0c, 0x18, 0xef, 0x4b, 0x87, 0x15, 0xda, 0xe3, 0xd0, 0xa1, 0x29, 0xd0, 0x20, 0xdb, 0x20, 0x5a, 0x1e, 0x53, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x31, 0xa8, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x27, 0xa0, 0x76, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x7c, 0x84, 0xda, 0x83, 0x57, 0x35, 0x09, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb9, 0x0b, 0xb5, 0x07, 0xd1, 0x73, 0x99, 0x32, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x2b, 0x1d, 0x6a, 0x0f, 0x1e, 0x57, 0x6a, 0x75, 0x1c, 0x3a, 0xb4, 0x00, 0x3b, 0x34, 0x7f, 0x39, 0x1e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x3d, 0x51, 0x3b, 0x08, 0x36, 0x78, 0xd5, 0xa9, 0xd2, 0xa1, 0x51, 0xcb, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x41, 0xb0, 0x41, 0x8c, 0x58, 0xa2, 0x2c, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0xe0, 0xa8, 0x1d, 0x76, 0xe1, 0x16, 0x0f, 0x1e, 0x3f, 0x52, 0x7b, 0x88, 0xe6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0x7a, 0xd4, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x5d, 0x48, 0xed, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x91, 0x23, 0x9a, 0xb2, 0x41, 0xe4, 0x88, 0xa6, 0x1c, 0x4e, 0xb1, 0x41, 0xb6, 0x41, 0x44, 0x8b, 0xa6, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x3d, 0x4a, 0xed, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xbd, 0x25, 0xb5, 0x07, 0x2f, 0x1a, 0x79, 0x1a, 0x64, 0x1b, 0x44, 0xb4, 0x68, 0xca, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd9, 0x2e, 0xb5, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0xaf, 0xd4, 0x0e, 0x82, 0x0d, 0x5e, 0xdd, 0x73, 0x75, 0x68, 0x01, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x6d, 0x4c, 0xed, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0xe1, 0x37, 0x78, 0x85, 0x56, 0xc2, 0xc1, 0x48, 0xc0, 0x39, 0x34, 0x6a, 0x39, 0x34, 0x7f, 0x39, 0x1e, 0xaf, 0x20, 0xd8, 0x60, 0xe4, 0x3f, 0x2c, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0xbc, 0xa9, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xc2, 0x9e, 0xda, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xb3, 0x74, 0x6a, 0x0f, 0x5e, 0xae, 0x5c, 0x34, 0xc8, 0x36, 0x88, 0x41, 0xd6, 0x94, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x1c, 0xaa, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x09, 0xa8, 0xf6, 0xe0, 0x25, 0x7b, 0x3d, 0x83, 0x6c, 0x83, 0x18, 0x64, 0x4d, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x32, 0xa9, 0x76, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x2c, 0xa3, 0xda, 0x83, 0xe7, 0x41, 0x95, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x04, 0x1b, 0x3c, 0x7a, 0x61, 0x69, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x9d, 0x53, 0xed, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x09, 0x54, 0xb5, 0x83, 0x64, 0xa0, 0x54, 0x1d, 0x0c, 0x43, 0x9f, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xda, 0xaa, 0xf6, 0x60, 0x20, 0x41, 0x2d, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x5b, 0xb3, 0x6a, 0x0f, 0x1e, 0xe8, 0x3e, 0x74, 0x68, 0xfe, 0x72, 0x3c, 0x1e, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0xf5, 0x1f, 0x63, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x1e, 0x57, 0xed, 0xc1, 0x6b, 0xd5, 0xae, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc7, 0xa1, 0x43, 0xa3, 0x96, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0x87, 0xd5, 0x0e, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x7b, 0x56, 0x7b, 0xf0, 0xaa, 0x26, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x8c, 0xfc, 0x87, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x79, 0x6a, 0xb5, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x08, 0x57, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x4e, 0x5b, 0xed, 0x20, 0xd8, 0x20, 0xd6, 0xef, 0x2c, 0x0e, 0x69, 0xb8, 0x41, 0xb6, 0x41, 0xf4, 0x00, 0xa7, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xa8, 0x5d, 0xed, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x5d, 0x73, 0xb5, 0x07, 0x8f, 0x5f, 0x36, 0x1a, 0x64, 0x1b, 0x44, 0x0f, 0x70, 0xca, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb5, 0x7c, 0xb5, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0xe5, 0xd5, 0x1e, 0xbc, 0x7e, 0xc1, 0xeb, 0xd0, 0xfc, 0xe5, 0x78, 0x3c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xcb, 0x05, 0x6b, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xfc, 0xab, 0x3d, 0x78, 0xfb, 0xc0, 0xcf, 0xa1, 0xf9, 0xcb, 0xf1, 0xf8, 0x38, 0x74, 0x68, 0xd4, 0x72, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x10, 0x2c, 0x6e, 0xd0, 0x82, 0x0c, 0xf3, 0xcc, 0x6c, 0xf0, 0x22, 0xa6, 0xa3, 0x99, 0x99, 0x0d, 0x56, 0x73, 0x1c, 0x6d, 0xf0, 0xa0, 0xf4, 0x8d, 0x83, 0x00, 0xb8, 0x5f, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x7a, 0x58, 0x3b, 0xec, 0x06, 0x0f, 0x1c, 0x0e, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x30, 0xc5, 0xda, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x68, 0xac, 0x1d, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0xb1, 0xc3, 0x41, 0x1b, 0x3c, 0x76, 0x38, 0xe8, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0x62, 0xb5, 0x39, 0x65, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x9c, 0xc9, 0xda, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xe3, 0x1f, 0x6b, 0x07, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xb0, 0xac, 0x3d, 0x78, 0x55, 0x93, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x8c, 0x59, 0x7b, 0x10, 0xe3, 0x74, 0x29, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x74, 0xb3, 0xf6, 0xe0, 0x69, 0xfa, 0x3d, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xd0, 0xa1, 0x83, 0xc6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x81, 0x9e, 0xb5, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x11, 0x5a, 0x7b, 0xf0, 0xec, 0xbb, 0xae, 0x41, 0xb6, 0x41, 0xf4, 0x5c, 0xa7, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x18, 0x6a, 0xed, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf1, 0xa3, 0xb5, 0x07, 0xb1, 0xc6, 0xb8, 0x31, 0xc8, 0x36, 0x88, 0x9e, 0xeb, 0x94, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x7a, 0xad, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x67, 0xb5, 0x76, 0x10, 0x6c, 0xf0, 0xb0, 0xbd, 0x9e, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x4b, 0x03, 0x68, 0x0e, 0x8d, 0x8b, 0x8e, 0x43, 0x83, 0x6c, 0x83, 0xe8, 0xb9, 0x4e, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x14, 0xdb, 0xda, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x33, 0x64, 0x6b, 0x07, 0xc1, 0x06, 0x0f, 0xdb, 0xeb, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xf0, 0x43, 0x0e, 0xc2, 0x9e, 0xfa, 0x38, 0x34, 0xc8, 0x36, 0x88, 0x9e, 0xeb, 0x94, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xe3, 0xad, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x1b, 0xb7, 0x76, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x19, 0xd8, 0xbd, 0x3b, 0x1e, 0x1f, 0xbc, 0xe7, 0x30, 0x63, 0x90, 0x6d, 0x10, 0x3d, 0xd7, 0x29, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x30, 0x5c, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xf1, 0x6f, 0xed, 0x20, 0xd8, 0x20, 0x5a, 0x19, 0x50, 0x0e, 0x1e, 0xe2, 0x99, 0x31, 0xc8, 0x36, 0x88, 0x9e, 0xeb, 0x94, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x48, 0xae, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xbb, 0xb8, 0x76, 0x10, 0x6c, 0xf0, 0x48, 0x35, 0xb3, 0x83, 0x87, 0xd2, 0x66, 0x0c, 0xb2, 0x0d, 0xa2, 0xe7, 0x3a, 0x65, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x6b, 0x9e, 0x6b, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x5f, 0xae, 0x1d, 0x04, 0x1b, 0xbc, 0xe5, 0x6c, 0xe3, 0xe0, 0xdd, 0x85, 0x4c, 0x83, 0x6c, 0x83, 0xe8, 0xb9, 0x4e, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xea, 0xea, 0xda, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x33, 0xa5, 0x6b, 0x87, 0x5d, 0xb8, 0x0d, 0x31, 0x9c, 0x20, 0xfd, 0x7b, 0x68, 0x1c, 0x35, 0xc8, 0x36, 0x88, 0x9e, 0xeb, 0x94, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xde, 0xae, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x12, 0xbb, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x23, 0xbd, 0x6b, 0x87, 0x5d, 0xb8, 0x25, 0x68, 0xfe, 0x7b, 0x38, 0xda, 0x0f, 0x6d, 0x1e, 0x07, 0xd9, 0x06, 0x31, 0xea, 0x9e, 0x32, 0xc8, 0x36, 0x88, 0xab, 0xf7, 0x94, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xa3, 0xc2, 0x6b, 0x07, 0xc1, 0x06, 0xaf, 0x95, 0x31, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x4e, 0xf0, 0xfd, 0xf7, 0x71, 0x68, 0x90, 0x6d, 0x10, 0x3d, 0xd7, 0x29, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x77, 0x5e, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x0c, 0x79, 0xed, 0x20, 0xd8, 0xe0, 0xbd, 0xd3, 0x6f, 0x07, 0x31, 0x36, 0xbd, 0x31, 0xc8, 0x36, 0x88, 0x9e, 0xeb, 0x94, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x6e, 0xaf, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x49, 0xbd, 0x76, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x4a, 0xf8, 0xda, 0x83, 0x57, 0x35, 0x09, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x5d, 0xf3, 0xb5, 0x07, 0x8f, 0x2b, 0xb5, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x39, 0xf6, 0xb5, 0x07, 0xef, 0x81, 0x45, 0x3a, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x27, 0x10, 0xfc, 0xdf, 0xc7, 0xa1, 0x41, 0xb6, 0x41, 0xf4, 0x5c, 0xa7, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x17, 0x7f, 0xed, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x1d, 0xf9, 0xb5, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0xfc, 0xd7, 0x1e, 0xbc, 0xaa, 0x49, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x0f, 0xb0, 0x3d, 0x88, 0x71, 0xba, 0x94, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x4c, 0x60, 0x7b, 0x50, 0x32, 0x34, 0x1d, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x13, 0x18, 0xfe, 0xdf, 0xc7, 0xa1, 0x41, 0xb6, 0x41, 0xf4, 0x5c, 0xa7, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xae, 0x60, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xe9, 0x81, 0xed, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xad, 0x0d, 0xb6, 0x07, 0xcf, 0xd2, 0x1b, 0x1b, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x0b, 0x21, 0x6c, 0x87, 0xdf, 0xe0, 0x5d, 0x05, 0x44, 0x07, 0xf1, 0xfd, 0xa7, 0x31, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xc3, 0x26, 0x6c, 0x0f, 0xe2, 0x05, 0xcf, 0xe2, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x9d, 0xc0, 0xf8, 0xff, 0x3e, 0x0e, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x57, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0xc3, 0xb0, 0x1d, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xca, 0xc3, 0xf6, 0xe0, 0x25, 0x1a, 0x25, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x45, 0x88, 0xed, 0xc1, 0xab, 0xc3, 0x85, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xfb, 0x88, 0xed, 0xc1, 0xeb, 0x61, 0x88, 0x8e, 0x43, 0x87, 0x46, 0x2d, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x05, 0xc1, 0x06, 0xf1, 0x3d, 0x95, 0xb2, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x19, 0xc5, 0x76, 0xd8, 0x85, 0x5b, 0x3c, 0x78, 0x2a, 0x8c, 0xed, 0x21, 0x9a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xb7, 0x62, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x2d, 0x2e, 0xb6, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x44, 0xd7, 0x84, 0xca, 0x06, 0xd1, 0x35, 0xa1, 0x72, 0x38, 0xc5, 0x06, 0xd9, 0x06, 0x51, 0x3f, 0xa1, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xad, 0x35, 0xb6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0xc9, 0xd8, 0x1e, 0xbc, 0x68, 0xe4, 0x69, 0x90, 0x6d, 0x10, 0xf5, 0x13, 0x2a, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0xee, 0xd8, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x88, 0x63, 0x7b, 0x10, 0x17, 0xa9, 0x29, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0xf9, 0xd8, 0x0e, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x7e, 0x83, 0x57, 0x68, 0x25, 0x1c, 0x24, 0xb5, 0x1f, 0x1c, 0x1a, 0xb5, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x07, 0xc1, 0x06, 0x8f, 0x5e, 0x58, 0x5a, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x7d, 0x64, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd1, 0x51, 0xb6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0x29, 0xd9, 0x1e, 0xbc, 0x5c, 0xb9, 0x68, 0x90, 0x6d, 0x10, 0x65, 0x1d, 0x2a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x8e, 0x65, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x26, 0x95, 0xed, 0x20, 0xd8, 0xe0, 0x61, 0x7b, 0x3d, 0x07, 0x4f, 0x22, 0xbe, 0x19, 0x64, 0x1b, 0x44, 0x59, 0x87, 0xca, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x71, 0x62, 0xb6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0x6e, 0xd9, 0x1e, 0x44, 0xa8, 0xc8, 0xc6, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x4b, 0xcf, 0x6c, 0x07, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x53, 0xb3, 0x1d, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xd2, 0x66, 0x7b, 0x90, 0x22, 0xe3, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0xc1, 0xd9, 0x1e, 0xc4, 0xf5, 0x9e, 0xc8, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x9a, 0xb3, 0x1d, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x60, 0x67, 0x7b, 0xf0, 0x12, 0x8d, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x19, 0xcf, 0x76, 0x10, 0x6c, 0x90, 0xfa, 0x8f, 0xb1, 0x38, 0x08, 0x36, 0x78, 0xad, 0xda, 0xd5, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0xee, 0xd9, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0xf2, 0xb3, 0x3d, 0x78, 0x6f, 0x06, 0xd1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x13, 0x68, 0x7b, 0xf0, 0xee, 0x9e, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x48, 0x68, 0x3b, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x6c, 0xf0, 0x0a, 0xfb, 0xa3, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xc2, 0x43, 0xdb, 0x83, 0x84, 0x7d, 0xe6, 0xe3, 0xd0, 0xa1, 0x51, 0xcb, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x41, 0xb0, 0x78, 0x10, 0xe9, 0x5e, 0x28, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x63, 0x23, 0x6d, 0x87, 0xdd, 0xe0, 0x81, 0xc3, 0x41, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x46, 0x69, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb5, 0x9a, 0xb6, 0x07, 0x91, 0xef, 0x9c, 0x32, 0xc8, 0x36, 0x88, 0xea, 0x1b, 0x95, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x06, 0xb5, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xb1, 0xd3, 0x76, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xcc, 0x51, 0xdb, 0x83, 0x57, 0x35, 0x09, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x61, 0xa6, 0xb6, 0x07, 0x31, 0x4e, 0x97, 0x32, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x7b, 0x52, 0x6d, 0x0f, 0x9e, 0xa6, 0xdf, 0x73, 0x68, 0xfe, 0x72, 0x3c, 0x3e, 0x0e, 0x1d, 0x9a, 0x02, 0x0d, 0xb2, 0x0d, 0xa2, 0xfa, 0x46, 0x65, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xae, 0x57, 0xdb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x23, 0x58, 0x6d, 0x07, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x91, 0xb5, 0x3d, 0x78, 0x55, 0x93, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x4f, 0x6b, 0x3b, 0x48, 0x06, 0x6a, 0xd5, 0xf1, 0x78, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0xdf, 0xda, 0x1e, 0x9c, 0xc2, 0x70, 0x8f, 0x43, 0x87, 0x16, 0x60, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0xeb, 0xda, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x5e, 0xaf, 0xed, 0xc1, 0xb3, 0xef, 0xba, 0x06, 0xd9, 0x06, 0x11, 0x71, 0xa4, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x95, 0xc3, 0xb6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0x01, 0xdb, 0x1e, 0xc4, 0x1a, 0xe3, 0xc6, 0x20, 0xdb, 0x20, 0x22, 0x8e, 0x54, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x36, 0xd9, 0x76, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x38, 0x63, 0xdb, 0x83, 0xe8, 0xe5, 0x4e, 0x19, 0x64, 0x1b, 0x44, 0xc4, 0x91, 0xca, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0x3f, 0xdb, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xc8, 0x6c, 0x7b, 0x10, 0xe5, 0xdf, 0x29, 0x83, 0x6c, 0x83, 0x88, 0x38, 0x52, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xde, 0x6a, 0xdb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xf3, 0xa4, 0x6d, 0x0f, 0xa2, 0x61, 0x3c, 0x65, 0x90, 0x6d, 0x10, 0x11, 0x47, 0x2a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xbd, 0x6d, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x25, 0xb6, 0xed, 0x41, 0xbc, 0x97, 0xa7, 0x0c, 0xb2, 0x0d, 0x22, 0xe2, 0x48, 0x65, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xeb, 0xc3, 0x6d, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0xf5, 0xb6, 0x3d, 0x88, 0x36, 0xf4, 0x94, 0x41, 0xb6, 0x41, 0x44, 0x1c, 0xa9, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x04, 0xba, 0xed, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xcd, 0xe4, 0xb6, 0x07, 0x91, 0xae, 0x9e, 0x32, 0xc8, 0x36, 0x88, 0x88, 0x23, 0x95, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x71, 0xb7, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x5d, 0xdd, 0xf6, 0x20, 0xca, 0xda, 0x53, 0x06, 0xd9, 0x06, 0x11, 0x71, 0xa4, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x31, 0xf4, 0xb6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0xc3, 0xdb, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xbb, 0xbd, 0xed, 0x41, 0x94, 0xc2, 0xa7, 0x0c, 0xb2, 0x0d, 0xa2, 0x3f, 0x4b, 0x65, 0x90, 0x6d, 0x10, 0xb1, 0x5a, 0x2a, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0xe6, 0xdb, 0x1e, 0x44, 0xb9, 0x7c, 0xca, 0x20, 0xdb, 0x20, 0x22, 0x8e, 0x54, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xfa, 0xdf, 0x76, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x46, 0x7e, 0xdb, 0x83, 0x78, 0xae, 0x4f, 0x19, 0x64, 0x1b, 0x44, 0xc4, 0x91, 0xca, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0x17, 0xdc, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x2a, 0x70, 0x3b, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x2e, 0xc2, 0xed, 0xc1, 0xab, 0x9a, 0x84, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xc0, 0x85, 0xdb, 0x83, 0xc7, 0x95, 0x5a, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x2e, 0x87, 0xdb, 0x83, 0xf7, 0xc0, 0x22, 0x1d, 0x87, 0x0e, 0xe2, 0x94, 0x3f, 0x65, 0x90, 0x6d, 0x10, 0x11, 0x47, 0x2a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x48, 0x71, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x51, 0xc4, 0xed, 0x20, 0xd8, 0xe0, 0x55, 0x8a, 0x43, 0x07, 0x51, 0x38, 0xa0, 0x32, 0xc8, 0x36, 0x88, 0x88, 0x23, 0x95, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0xd5, 0xb8, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xec, 0xe2, 0x76, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb6, 0x8e, 0xdb, 0x83, 0x67, 0xe9, 0x8d, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x49, 0x20, 0xb7, 0x07, 0x51, 0x8d, 0xa0, 0x32, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x4b, 0x46, 0x6e, 0x0f, 0xe2, 0x05, 0xcf, 0xe2, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x9d, 0x40, 0xf1, 0xff, 0x7d, 0x1c, 0x1a, 0x64, 0x1b, 0x44, 0xc4, 0x91, 0xca, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0xa5, 0xdc, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x61, 0x72, 0x3b, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x07, 0xcb, 0xed, 0xc1, 0xb3, 0xf4, 0xc6, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x7c, 0x97, 0xdb, 0x83, 0xa8, 0x46, 0x50, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd5, 0x31, 0xb7, 0x07, 0xf1, 0x82, 0x67, 0x71, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x4e, 0xe0, 0xf8, 0xff, 0x7d, 0x1c, 0x1a, 0x64, 0x1b, 0x44, 0xc4, 0x91, 0xca, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x05, 0x38, 0xb7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0xd3, 0xdc, 0x0e, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xac, 0x73, 0x7b, 0xf0, 0x2c, 0xbd, 0xb1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xb5, 0xe7, 0xf6, 0x20, 0x36, 0x8a, 0x54, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x18, 0xf9, 0x0f, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x0b, 0x81, 0x6e, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x68, 0xe8, 0xf6, 0xe0, 0x81, 0x1c, 0x48, 0x83, 0x6c, 0x83, 0x78, 0xe5, 0x53, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xc2, 0xe8, 0x76, 0x10, 0x6c, 0xf0, 0xaa, 0x9e, 0xa1, 0x43, 0x07, 0x8d, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0x81, 0xf3, 0xff, 0xf7, 0x71, 0xe8, 0xd0, 0xfc, 0xe5, 0x78, 0x3c, 0x08, 0x36, 0x78, 0xaf, 0x8d, 0xcf, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xe4, 0xac, 0xdb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x9b, 0x9d, 0x6e, 0x87, 0xdd, 0xe0, 0x05, 0xbf, 0x41, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xc8, 0x75, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x91, 0x62, 0xb7, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0xbc, 0xe6, 0x37, 0x68, 0x83, 0xd7, 0xfc, 0x06, 0x1d, 0x4e, 0xb1, 0x41, 0xb6, 0x41, 0x94, 0x0f, 0xaa, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x94, 0x76, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x8c, 0xd9, 0xed, 0x61, 0x5c, 0x86, 0xdd, 0xe0, 0x25, 0xb9, 0x41, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xc1, 0x76, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x25, 0x72, 0xb7, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0xbc, 0x37, 0xc1, 0x64, 0x83, 0xf7, 0x26, 0x98, 0x1c, 0x4e, 0xb1, 0x41, 0xb6, 0x41, 0xd4, 0x22, 0xaa, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xfb, 0xdd, 0xed, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf9, 0x74, 0xb7, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc9, 0x80, 0xe1, 0xdf, 0x77, 0x3c, 0x3f, 0x34, 0x05, 0x1a, 0x64, 0x1b, 0x44, 0x2d, 0xa2, 0xca, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0xf9, 0xdd, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xb5, 0x77, 0x3b, 0x08, 0x36, 0x78, 0xd5, 0xa9, 0xd2, 0xa1, 0x13, 0xd1, 0x20, 0xdb, 0x20, 0x6a, 0x11, 0x55, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x20, 0xbc, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x23, 0xf0, 0x76, 0x10, 0x6c, 0xf0, 0x4a, 0xb7, 0x8d, 0x43, 0xf7, 0xa3, 0x61, 0x37, 0x78, 0xa1, 0x6d, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0x1d, 0xde, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x79, 0xe3, 0xed, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0xaf, 0xb5, 0x0d, 0xda, 0xe0, 0xb5, 0xb6, 0x41, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0x10, 0x31, 0x93, 0x2a, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0x53, 0xde, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x17, 0x79, 0x7b, 0x10, 0xbd, 0x26, 0x23, 0xc3, 0x6e, 0xf0, 0xe0, 0xd9, 0xa0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xbd, 0xbc, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb4, 0xce, 0xdb, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x1e, 0x3f, 0x1b, 0xb4, 0xc1, 0xe3, 0x67, 0x83, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0x20, 0x46, 0x30, 0x55, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x8a, 0xf4, 0x76, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x84, 0xd0, 0xdb, 0x83, 0xc7, 0x1e, 0x15, 0x0d, 0xb2, 0x0d, 0x62, 0x04, 0x53, 0x65, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x3a, 0xd5, 0xdb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x5b, 0x4e, 0x6f, 0x0f, 0x9e, 0x0d, 0x0c, 0x36, 0xec, 0x06, 0xaf, 0xdd, 0x0d, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xac, 0xd6, 0xdb, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x97, 0xbd, 0x1d, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0xe5, 0xbb, 0x41, 0x1b, 0xbc, 0x7c, 0x37, 0xe8, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0x62, 0xe5, 0x53, 0x65, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xe4, 0xdc, 0xdb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x03, 0x6d, 0x6f, 0x0f, 0xde, 0x38, 0x82, 0x34, 0xec, 0x06, 0xcf, 0x71, 0x07, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x56, 0xde, 0xdb, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x0e, 0xbe, 0x3d, 0x88, 0x57, 0x39, 0x92, 0x41, 0xb6, 0x41, 0x6c, 0x90, 0xaa, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x85, 0x7c, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x42, 0xf1, 0xed, 0xc1, 0x03, 0x98, 0x94, 0x86, 0xdd, 0xe0, 0x81, 0xc3, 0x41, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xbc, 0x7c, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x29, 0xd1, 0xb7, 0x07, 0x91, 0xef, 0x9c, 0x32, 0xc8, 0x36, 0x88, 0x22, 0x54, 0x95, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x8b, 0xae, 0x6f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x9f, 0xbe, 0x3d, 0x78, 0xe3, 0x08, 0xd2, 0xb0, 0x1b, 0x3c, 0x39, 0x38, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x53, 0xb4, 0x6f, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x0b, 0xfc, 0x76, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0xe7, 0x07, 0x07, 0x6d, 0xf0, 0xfc, 0xe0, 0xa0, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x88, 0x37, 0x56, 0x95, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x3a, 0xbf, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x7f, 0xfc, 0x76, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x06, 0xf5, 0xdb, 0x83, 0xf7, 0x23, 0x94, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x35, 0xfb, 0xed, 0xc1, 0x40, 0x82, 0x3a, 0x0e, 0x1d, 0x9a, 0x02, 0x0d, 0xb2, 0x0d, 0xe2, 0x8d, 0x55, 0x65, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x82, 0xf9, 0xdb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x73, 0xdf, 0x6f, 0x07, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0xae, 0xbf, 0x3d, 0x78, 0x3f, 0x42, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0xe2, 0xdf, 0x1e, 0xbc, 0x3a, 0x5c, 0xe8, 0x38, 0x74, 0x68, 0x01, 0x36, 0xec, 0x06, 0x6f, 0xeb, 0x0d, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xc8, 0xfd, 0xdb, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x0b, 0xc0, 0x1d, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0x9d, 0xbd, 0x41, 0x1b, 0xbc, 0xb3, 0x37, 0xe8, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0x62, 0x31, 0x57, 0x65, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xc3, 0x10, 0x70, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x28, 0xc0, 0x1d, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x65, 0x01, 0xf7, 0xe0, 0xfd, 0x08, 0x25, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xdf, 0x80, 0x7b, 0x30, 0x90, 0xa0, 0x8e, 0x43, 0x87, 0xa6, 0x40, 0x83, 0x6c, 0x83, 0x58, 0xcc, 0x55, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x82, 0x02, 0x77, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x6a, 0x08, 0xdc, 0x83, 0xa7, 0xfb, 0xb8, 0x0d, 0xbb, 0xc1, 0xc3, 0xee, 0x81, 0x16, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xec, 0x81, 0x7b, 0xf0, 0x74, 0x20, 0x9f, 0x83, 0xa7, 0xf3, 0x41, 0x0d, 0xbb, 0xc1, 0x7b, 0x77, 0x30, 0x16, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x85, 0x82, 0x7b, 0xf0, 0x74, 0x20, 0x9f, 0x83, 0x87, 0x23, 0xf9, 0x0c, 0xbb, 0xc1, 0xc3, 0x95, 0x7c, 0x16, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x1e, 0x83, 0x7b, 0xf0, 0x74, 0x20, 0x9f, 0x83, 0x77, 0x3d, 0xf9, 0x0c, 0xbb, 0xc1, 0x7b, 0xd3, 0x81, 0x16, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xd7, 0x83, 0x7b, 0xf0, 0x74, 0x20, 0x9f, 0x83, 0x77, 0x82, 0x49, 0x0d, 0xbb, 0xc1, 0x73, 0x34, 0x82, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x0a, 0x08, 0x77, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xb3, 0x8b, 0x70, 0x0f, 0x9e, 0x18, 0xe6, 0x35, 0xc8, 0x36, 0x88, 0x4b, 0x65, 0x95, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xe3, 0x97, 0x70, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x45, 0xc2, 0x1d, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xd7, 0x09, 0xf7, 0xe0, 0x8d, 0x00, 0x25, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x17, 0x85, 0x7b, 0xb0, 0xb0, 0xc2, 0xec, 0x38, 0x74, 0xe8, 0xa0, 0x31, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x38, 0x15, 0xee, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0x67, 0xe1, 0x1e, 0xc4, 0xfd, 0x0f, 0xc9, 0x20, 0xdb, 0x20, 0xd2, 0xa2, 0x55, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x08, 0xc3, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xb1, 0x0b, 0x77, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xf0, 0x31, 0xdc, 0x83, 0x37, 0x02, 0x94, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xa8, 0x19, 0xee, 0xc1, 0x40, 0x82, 0x3a, 0x0e, 0x1d, 0x3a, 0x68, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x5f, 0xc3, 0x1d, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xf9, 0x0d, 0xf7, 0xe0, 0x55, 0x4d, 0x42, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x18, 0xf9, 0x0f, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x1b, 0xe5, 0x70, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x12, 0x0f, 0x77, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xa6, 0x3a, 0xdc, 0x83, 0xf8, 0x11, 0x4e, 0x19, 0x64, 0x1b, 0xc4, 0x0f, 0xb7, 0xca, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0xfa, 0xe1, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xb7, 0x87, 0x7b, 0xf0, 0xf8, 0x65, 0xa3, 0x41, 0xb6, 0x41, 0xfc, 0x70, 0xab, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x4c, 0x88, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x63, 0x20, 0xee, 0xc1, 0xeb, 0x17, 0xbc, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x53, 0x0f, 0x71, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xc0, 0x11, 0x77, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x36, 0x45, 0xdc, 0x83, 0xa7, 0xfe, 0x63, 0x0d, 0xb2, 0x0d, 0xe2, 0x79, 0x5c, 0x65, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xfc, 0x49, 0xdc, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x73, 0x21, 0x71, 0x0f, 0x9e, 0x89, 0x2f, 0x74, 0x68, 0xfe, 0x72, 0x3c, 0x3e, 0x0e, 0x1d, 0x1a, 0xb5, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x8f, 0xc7, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xf1, 0x4f, 0x39, 0x08, 0x36, 0x74, 0xc1, 0x59, 0x1c, 0x04, 0x1b, 0x14, 0xd0, 0x82, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x2b, 0x08, 0x2a, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x46, 0xa1, 0x72, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x68, 0x83, 0xca, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xf3, 0x19, 0x2a, 0x0f, 0x1e, 0xca, 0x33, 0x35, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0x3e, 0x54, 0x1e, 0xa2, 0x39, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xe5, 0x12, 0x95, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x58, 0x51, 0x39, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x28, 0x46, 0xe5, 0xa1, 0x93, 0xda, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf9, 0x1b, 0x95, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0x7d, 0x54, 0x1e, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x64, 0x1b, 0x44, 0x13, 0xbc, 0xca, 0x82, 0x6c, 0x83, 0xc8, 0x8d, 0x57, 0x19, 0x64, 0x1b, 0x44, 0x41, 0xbc, 0xca, 0x20, 0xd8, 0xb0, 0xf6, 0x7b, 0x48, 0xc3, 0x0d, 0xb2, 0x0d, 0xa2, 0x09, 0x5e, 0x65, 0x90, 0x6d, 0x10, 0x51, 0xf3, 0x2a, 0x83, 0x6c, 0x83, 0xe8, 0x94, 0x57, 0x19, 0x04, 0x1b, 0xb4, 0x72, 0x5d, 0x7e, 0xb0, 0x1e, 0x5d, 0xeb, 0xd0, 0xfc, 0xe5, 0x78, 0x7c, 0x1c, 0x3a, 0xa4, 0xe1, 0x06, 0xd9, 0x06, 0xf1, 0xae, 0xae, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x45, 0x25, 0x95, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x88, 0x54, 0x0e, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x7e, 0x52, 0x79, 0xf0, 0x3e, 0x5b, 0x9f, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x54, 0xa9, 0x3c, 0x44, 0xf3, 0x38, 0x74, 0x68, 0x0a, 0x34, 0xc8, 0x36, 0x88, 0x77, 0x75, 0x95, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x81, 0xa9, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xa4, 0xa5, 0x72, 0x10, 0x6c, 0xd0, 0xca, 0x75, 0xf9, 0xc1, 0x8a, 0x86, 0xac, 0x41, 0xb6, 0x41, 0xbc, 0xab, 0xab, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xa6, 0x4d, 0xe5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xfd, 0x32, 0x95, 0xc3, 0x6f, 0x48, 0x2e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x95, 0x53, 0x39, 0x06, 0x09, 0x80, 0x41, 0xb6, 0x41, 0xbc, 0xab, 0xab, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xfa, 0x53, 0x39, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x30, 0x4f, 0xe5, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x09, 0x55, 0x1e, 0x8e, 0xf6, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0xf1, 0x78, 0x05, 0xc1, 0x06, 0x23, 0xff, 0x61, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x3a, 0xef, 0xfc, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa1, 0xbf, 0xf3, 0x07, 0x8d, 0x24, 0xd9, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x55, 0xc2, 0xf3, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0x20, 0xcf, 0x1f, 0xbc, 0xef, 0x87, 0x63, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xab, 0x95, 0xe7, 0x07, 0xc9, 0x80, 0xc0, 0xbf, 0x3b, 0x1e, 0x1f, 0x87, 0x0e, 0x8d, 0x5a, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xb5, 0x79, 0x7e, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x19, 0xf4, 0xfc, 0x41, 0x23, 0x49, 0xf6, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xc6, 0xf4, 0xfc, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xe8, 0xea, 0xf9, 0x83, 0xf7, 0xfd, 0x70, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x22, 0xf6, 0xfc, 0x41, 0x3b, 0x2c, 0x4c, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xb5, 0x3d, 0x3f, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xc3, 0x7b, 0xfe, 0xe0, 0x7d, 0x3f, 0x1c, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x0d, 0x3e, 0x7f, 0xd0, 0x0e, 0x0b, 0xd3, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x3a, 0x34, 0x6a, 0x39, 0x34, 0x7f, 0x39, 0x1e, 0xaf, 0x20, 0x58, 0x3c, 0x78, 0xe0, 0x2b, 0xcf, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x2a, 0x25, 0xcd, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xa3, 0x7e, 0x34, 0x87, 0xdd, 0xe0, 0x65, 0x86, 0x41, 0x0b, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x9c, 0xd2, 0x3c, 0x78, 0x8b, 0x62, 0xd0, 0xb0, 0x0b, 0xb7, 0xc1, 0x2b, 0x0d, 0x83, 0x0e, 0x42, 0x0a, 0xfc, 0x60, 0x2c, 0x8c, 0x0e, 0xbb, 0xc1, 0x3b, 0xe5, 0x82, 0x16, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xcd, 0xa5, 0x79, 0xf0, 0x16, 0xc5, 0xa0, 0x61, 0x17, 0x6e, 0x83, 0x37, 0xcb, 0x05, 0x1d, 0x84, 0x14, 0xf8, 0xc1, 0x58, 0x18, 0x1d, 0x76, 0x83, 0xe7, 0xa8, 0x04, 0x2d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xac, 0x4c, 0xf3, 0xe0, 0x45, 0x4f, 0x41, 0xc3, 0x2e, 0xdc, 0x06, 0x4f, 0x53, 0x09, 0x3a, 0x08, 0x29, 0xf0, 0x83, 0xb1, 0x30, 0x3a, 0xec, 0x06, 0xef, 0xe6, 0xf1, 0x59, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x7c, 0x9b, 0xe6, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0x32, 0x60, 0xa8, 0xf7, 0x1d, 0x8f, 0x0f, 0x8d, 0x5a, 0x0e, 0x5e, 0x2f, 0xe4, 0x33, 0xec, 0x06, 0x0f, 0x31, 0xec, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x6a, 0x38, 0xcd, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x9c, 0xd3, 0x3c, 0x78, 0x75, 0x63, 0xcf, 0x20, 0xdb, 0x20, 0x36, 0x4a, 0x56, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xb3, 0xd3, 0x3c, 0x18, 0x9a, 0xbf, 0xc3, 0x6e, 0xf0, 0xa0, 0xc1, 0xa0, 0x05, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0xfe, 0x69, 0x1e, 0xbc, 0x45, 0x31, 0x68, 0xd8, 0x85, 0xdb, 0xe0, 0x71, 0x83, 0x41, 0x07, 0x21, 0x05, 0x7e, 0x30, 0x16, 0x46, 0x87, 0xdd, 0xe0, 0x65, 0x15, 0x41, 0x0b, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x48, 0xd4, 0x3c, 0x78, 0x80, 0x47, 0xd0, 0xb0, 0x0b, 0xb7, 0xc1, 0x2b, 0x2b, 0x82, 0x0e, 0x42, 0x0a, 0xfc, 0x60, 0x2c, 0x8c, 0x0e, 0xbb, 0xc1, 0x33, 0x92, 0x82, 0x16, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x19, 0xa9, 0x79, 0xf0, 0xa2, 0xa7, 0xa0, 0x61, 0x17, 0x6e, 0x83, 0x27, 0x25, 0x05, 0x1d, 0x84, 0x14, 0xf8, 0xc1, 0x58, 0x18, 0x1d, 0x76, 0x83, 0x07, 0x02, 0x05, 0x2d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xfe, 0x53, 0xf3, 0xe0, 0x45, 0x4f, 0x41, 0xc3, 0x2e, 0xdc, 0x06, 0x8f, 0x05, 0x0a, 0x3a, 0x08, 0x29, 0xf0, 0x83, 0xb1, 0x30, 0x3a, 0xec, 0x06, 0x2f, 0xa5, 0x09, 0x5a, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x1f, 0xaa, 0xe6, 0xc1, 0x8b, 0x9e, 0x82, 0x86, 0x5d, 0xb8, 0x0d, 0x5e, 0x4d, 0x13, 0x74, 0x10, 0x52, 0xe0, 0x07, 0x63, 0x61, 0x74, 0xd8, 0x0d, 0x9e, 0x7b, 0x1a, 0xb4, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x84, 0x58, 0xcd, 0x83, 0x87, 0xc0, 0x06, 0x0d, 0xbb, 0x70, 0x1b, 0x3c, 0x9a, 0xe7, 0xe1, 0x20, 0xa4, 0xc0, 0x0f, 0xc6, 0xc2, 0xe8, 0xb0, 0x1b, 0xbc, 0xb1, 0x39, 0x68, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x99, 0xb9, 0x9a, 0x07, 0xef, 0x8f, 0x0e, 0x1a, 0x76, 0xe1, 0x36, 0x78, 0x96, 0x9d, 0xcf, 0x41, 0x48, 0x81, 0x1f, 0x8c, 0x85, 0xd1, 0x61, 0x37, 0x78, 0x13, 0x5b, 0xcf, 0x82, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x53, 0x84, 0x35, 0x0f, 0x1e, 0x02, 0x1b, 0x34, 0xec, 0xc2, 0x6d, 0xf0, 0x3e, 0xb6, 0x9e, 0x83, 0x90, 0x02, 0x3f, 0x18, 0x0b, 0xa3, 0xc3, 0x6e, 0xf0, 0x20, 0xcc, 0xa0, 0x05, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0x2a, 0x6b, 0x1e, 0x3c, 0x04, 0x36, 0x68, 0xd8, 0x85, 0xdb, 0xe0, 0x71, 0x98, 0x41, 0x07, 0x21, 0x05, 0x7e, 0x30, 0x16, 0x46, 0x87, 0xdd, 0xe0, 0x19, 0x62, 0x41, 0x0b, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x9a, 0xd6, 0x3c, 0x78, 0x8b, 0x62, 0xd0, 0xb0, 0x0b, 0xb7, 0xc1, 0x93, 0xc4, 0x82, 0x0e, 0x42, 0x0a, 0xfc, 0x60, 0x2c, 0x8c, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xde, 0xd6, 0x3c, 0x78, 0x7c, 0x57, 0xd0, 0xb0, 0x0b, 0xb7, 0xc1, 0x2b, 0xa6, 0x82, 0x0e, 0x42, 0x0a, 0xfc, 0x60, 0x2c, 0x8c, 0x1e, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x04, 0x8b, 0x1b, 0xbc, 0xa4, 0xc7, 0xa7, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x8d, 0x9b, 0xa2, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0x41, 0x8a, 0x0e, 0xbb, 0xc1, 0xbb, 0x79, 0x7c, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xc7, 0x53, 0x74, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xab, 0x41, 0x45, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x78, 0x43, 0x8f, 0xcf, 0x06, 0x6f, 0xe8, 0xf1, 0x39, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0xb8, 0x25, 0x5a, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x73, 0x54, 0xf4, 0x60, 0x68, 0xfe, 0x0e, 0xbb, 0xc1, 0xc3, 0xee, 0x81, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xc9, 0x54, 0x74, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xcb, 0x51, 0x45, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x78, 0xe4, 0x3d, 0xd0, 0xc1, 0xdb, 0x5d, 0x97, 0x06, 0xd9, 0x06, 0x71, 0x8e, 0xb4, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xea, 0xaa, 0xe8, 0xc1, 0xd0, 0xfc, 0x1d, 0x76, 0x83, 0xf7, 0xee, 0x60, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x96, 0xab, 0xe8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0xc3, 0x8a, 0x1e, 0x3c, 0x37, 0x08, 0x63, 0x90, 0x6d, 0x10, 0xe9, 0x4c, 0x2b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0xda, 0x8a, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x3b, 0x2b, 0x3a, 0x08, 0x36, 0x68, 0x67, 0xe4, 0xfe, 0x60, 0x3d, 0xba, 0xd6, 0xb0, 0x1b, 0x3c, 0x5c, 0xc9, 0x67, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xc3, 0x72, 0x45, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x7f, 0x57, 0x74, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x47, 0x2c, 0xf9, 0x6c, 0xf0, 0x88, 0x25, 0x9f, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x88, 0xb7, 0xa8, 0x95, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x83, 0x7d, 0x45, 0x0f, 0x86, 0xe6, 0xef, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x71, 0xc1, 0xa2, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x9a, 0x2c, 0x7a, 0x10, 0xbb, 0x2a, 0x1b, 0x83, 0x6c, 0x83, 0xe8, 0xa9, 0x5a, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xcc, 0x67, 0xd1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xd3, 0x98, 0x45, 0x07, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x92, 0x81, 0xe6, 0x4b, 0x87, 0xe4, 0xd2, 0xa1, 0x29, 0xd0, 0x20, 0xdb, 0x20, 0x7a, 0xaa, 0x56, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0xac, 0x16, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x4c, 0x5a, 0x74, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0xf0, 0x1b, 0xb4, 0x2f, 0xc1, 0x74, 0x10, 0x45, 0x2d, 0x1b, 0x87, 0x16, 0x60, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x65, 0xe6, 0x70, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xbc, 0x9c, 0xc3, 0x83, 0x46, 0x92, 0xec, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x16, 0x9e, 0xc3, 0x83, 0x38, 0xc8, 0x5a, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf5, 0x3e, 0x87, 0x07, 0x71, 0x90, 0xb5, 0x72, 0x1c, 0x3a, 0x34, 0x6a, 0x39, 0x34, 0x7f, 0x39, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x3f, 0xbf, 0xbb, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x59, 0xf7, 0xbb, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x87, 0xed, 0xf5, 0x1c, 0x44, 0x45, 0xa2, 0xc9, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x98, 0x7f, 0x77, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x3b, 0x05, 0x78, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0xfb, 0xdf, 0x3d, 0x78, 0xb9, 0x72, 0xd1, 0x20, 0xdb, 0x20, 0x0e, 0xcd, 0x56, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x44, 0xe0, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xab, 0x80, 0xf7, 0xe0, 0xdd, 0x95, 0x3d, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x8b, 0x18, 0x78, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x3b, 0xf0, 0x1e, 0xbc, 0x28, 0x84, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x4b, 0x23, 0x78, 0x0f, 0xc6, 0x1d, 0xd4, 0x71, 0xe8, 0x78, 0xbc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb5, 0x8b, 0x93, 0x83, 0x60, 0x71, 0x83, 0xf1, 0x65, 0x76, 0x30, 0xbe, 0xcc, 0x16, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xdb, 0x9c, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xe0, 0x39, 0x39, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x3c, 0xe8, 0xe4, 0xf0, 0x2b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xee, 0xe8, 0xe4, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0x98, 0x4e, 0x1e, 0xb4, 0x35, 0xd3, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x32, 0xea, 0xe4, 0x41, 0x5b, 0x33, 0x4d, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0xad, 0x4e, 0x1e, 0x62, 0x78, 0xe8, 0x89, 0xba, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x74, 0xeb, 0xe4, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x3b, 0x6b, 0x27, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0xe1, 0x4e, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xd9, 0x9d, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xdb, 0x3b, 0x39, 0x48, 0x06, 0x8e, 0xaf, 0x83, 0xb3, 0x97, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x6b, 0x80, 0x27, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x57, 0x78, 0x72, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xdc, 0xe2, 0xc9, 0x83, 0xd4, 0x92, 0x82, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xd3, 0x90, 0x27, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x5b, 0x9e, 0x3c, 0x48, 0x96, 0x2f, 0x59, 0x1c, 0x04, 0x0b, 0xb2, 0x0d, 0xe2, 0x77, 0x6f, 0x65, 0x41, 0xb6, 0x41, 0xac, 0xf4, 0xad, 0x0c, 0xb2, 0x0d, 0xe2, 0x8e, 0x6f, 0x65, 0x10, 0x6c, 0x50, 0x12, 0x34, 0x1c, 0xd2, 0x70, 0x83, 0x6c, 0x83, 0xf8, 0xdd, 0x5b, 0x19, 0x64, 0x1b, 0xc4, 0xb4, 0xdf, 0xca, 0x20, 0xdb, 0x20, 0x3e, 0xfc, 0x56, 0x06, 0xc1, 0x06, 0xeb, 0x54, 0x1a, 0x0e, 0x1d, 0x34, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x71, 0x9e, 0x3c, 0xa4, 0x0e, 0x8e, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x42, 0x4f, 0x0e, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x75, 0xd3, 0x93, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xdb, 0xab, 0x27, 0x87, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xac, 0xec, 0xc9, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf5, 0xdb, 0x93, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xeb, 0xbc, 0x27, 0x07, 0xc9, 0xc0, 0xfb, 0x7d, 0x07, 0xe3, 0x5d, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x08, 0x9f, 0x3c, 0x18, 0xad, 0xe6, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x75, 0x7c, 0xf2, 0x60, 0x18, 0xc3, 0x1e, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xc9, 0x7c, 0xf2, 0x20, 0x30, 0xb1, 0x8f, 0x43, 0x07, 0x8d, 0x74, 0xdb, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x3a, 0xfa, 0xe4, 0x71, 0xe8, 0x38, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x6d, 0xeb, 0x93, 0xc7, 0xa1, 0xc3, 0x29, 0x76, 0x3c, 0x3e, 0x1e, 0x1f, 0x8f, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x02, 0x8f, 0x74, 0xf8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0xee, 0x23, 0x1d, 0x04, 0x1b, 0x44, 0xe4, 0xdb, 0xca, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x0d, 0x8e, 0xa4, 0xc3, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x2b, 0x24, 0xe9, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x98, 0x4a, 0xd2, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xbd, 0x24, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x56, 0x93, 0xf4, 0x20, 0x75, 0x7d, 0x60, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb2, 0x4e, 0xd2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xd3, 0x40, 0x49, 0x0f, 0x8d, 0x8b, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x83, 0x58, 0xaf, 0x5c, 0x59, 0x90, 0x6d, 0x10, 0x57, 0x97, 0x2b, 0x83, 0x6c, 0x83, 0x18, 0xb5, 0x5c, 0x19, 0x04, 0x1b, 0x92, 0x1d, 0x87, 0x34, 0xdc, 0x20, 0xdb, 0x20, 0xd6, 0x2b, 0x57, 0x06, 0xd9, 0x06, 0xf1, 0x8f, 0xb9, 0x32, 0xc8, 0x36, 0x88, 0x25, 0xcc, 0x95, 0x41, 0xb0, 0x21, 0x31, 0x73, 0xe8, 0xa0, 0x71, 0x68, 0xfe, 0x72, 0x3c, 0x3e, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x44, 0x4a, 0x3a, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0xc3, 0x92, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x9c, 0x25, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xce, 0x96, 0x74, 0xf8, 0x15, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x23, 0x97, 0x74, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x43, 0x77, 0x49, 0x0f, 0x1e, 0xe8, 0x26, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x8d, 0x2f, 0xe9, 0xc1, 0x03, 0xdd, 0x84, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x06, 0x26, 0x3d, 0xc4, 0xf0, 0xd0, 0x13, 0x75, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x9e, 0x61, 0xd2, 0xe1, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x1a, 0x99, 0x74, 0x71, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x33, 0xe1, 0x49, 0x87, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xce, 0x79, 0xd2, 0x41, 0xb0, 0xc1, 0xc8, 0x32, 0x5b, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x80, 0x9f, 0x74, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xa8, 0x3f, 0xe9, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0x04, 0x94, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x40, 0x50, 0x3a, 0xfc, 0x82, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x73, 0x0d, 0x4a, 0x07, 0xc9, 0xc0, 0xf1, 0x75, 0x70, 0xce, 0x3b, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb4, 0x84, 0xd2, 0x83, 0x97, 0x4b, 0x91, 0x1c, 0x87, 0x8e, 0x6f, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xc1, 0x50, 0x3a, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xc6, 0x43, 0xe9, 0x41, 0x0b, 0x12, 0x4d, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0x47, 0x94, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x49, 0x51, 0x3a, 0xfc, 0x0a, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x76, 0x51, 0xba, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xfd, 0x19, 0xa5, 0x07, 0x2d, 0x48, 0x34, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xc9, 0x51, 0x3a, 0xfc, 0x06, 0x2f, 0x97, 0x22, 0x39, 0xbe, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xf3, 0x51, 0xba, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xed, 0x21, 0xa5, 0xc3, 0x2f, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x95, 0xa4, 0xf4, 0xa0, 0x79, 0xcb, 0x95, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x3b, 0x29, 0x3d, 0x58, 0xa7, 0xd2, 0x70, 0x1c, 0x3a, 0xbe, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x8c, 0x4a, 0xe9, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0xb3, 0x94, 0x1e, 0xb4, 0x20, 0xd1, 0x74, 0xe8, 0x89, 0xba, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xdf, 0x4b, 0xe9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x49, 0x3a, 0xa5, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x9b, 0x9a, 0x4a, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xfd, 0xa9, 0x74, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x84, 0xa9, 0xd2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xc3, 0xb0, 0x4a, 0x0f, 0x47, 0xfb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x35, 0x5b, 0xa5, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x79, 0x95, 0x1e, 0x1a, 0x09, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x13, 0x56, 0x3a, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0x99, 0x95, 0x0e, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xcd, 0x6b, 0xa5, 0x8b, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x8a, 0x57, 0x3a, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x80, 0x5f, 0xe9, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x09, 0x58, 0x3a, 0xdc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x0d, 0x96, 0x1e, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x78, 0x61, 0xe9, 0x21, 0xfe, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x80, 0x58, 0x7a, 0x30, 0x42, 0xa2, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x55, 0x2c, 0x1d, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xa3, 0x1a, 0x4b, 0x0f, 0xd1, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x7a, 0xc8, 0xd2, 0x83, 0x11, 0x12, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xea, 0x64, 0xe9, 0xf0, 0x0b, 0xa2, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xa3, 0x2d, 0x4b, 0x0f, 0xce, 0x4f, 0xb4, 0xc7, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xf3, 0x33, 0x4b, 0x87, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x4a, 0xce, 0xd2, 0x43, 0x34, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xe9, 0xb3, 0xf4, 0x60, 0x84, 0x44, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x20, 0x5a, 0x3a, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x2d, 0x2d, 0x3d, 0x18, 0xcb, 0x50, 0xc3, 0x2f, 0x88, 0x36, 0x58, 0x33, 0x94, 0x72, 0x3c, 0x1e, 0x7e, 0x83, 0xc1, 0x0e, 0x30, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x16, 0x6a, 0xe9, 0xf0, 0x0b, 0xa2, 0x85, 0x0e, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x85, 0xab, 0xa5, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x8a, 0x6b, 0xe9, 0x21, 0x6b, 0x77, 0x58, 0xdf, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x7a, 0xd8, 0xd2, 0x83, 0xc6, 0x51, 0x4f, 0x0e, 0x1e, 0x21, 0x3e, 0x70, 0x3c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x8d, 0xb6, 0x74, 0xf8, 0x05, 0xd1, 0x82, 0xf3, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xe3, 0x6d, 0xe9, 0x71, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x6b, 0x74, 0x4b, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0xf3, 0x96, 0x0e, 0x92, 0x81, 0xa3, 0xeb, 0x60, 0xbc, 0xeb, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xfd, 0x6f, 0xe9, 0x21, 0xd9, 0x71, 0x1c, 0x3a, 0x24, 0x3b, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x0a, 0x97, 0x1e, 0x3c, 0x42, 0x7c, 0x60, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x77, 0x2e, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x7d, 0xba, 0x74, 0xd8, 0x0d, 0x89, 0x80, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0xb9, 0x2e, 0x3d, 0x18, 0x21, 0x51, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x67, 0x97, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0xe9, 0x2e, 0x1d, 0x24, 0xc3, 0x0c, 0xa2, 0x05, 0xe5, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0x82, 0x97, 0x1e, 0xa4, 0x0c, 0x06, 0x1c, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x1b, 0x2f, 0x1d, 0x44, 0x0b, 0xca, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x38, 0x2f, 0x1d, 0x44, 0x0b, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x9d, 0x7a, 0xe9, 0x41, 0x33, 0x61, 0x4e, 0x87, 0x64, 0xc7, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xd6, 0xfb, 0xd2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xeb, 0xf9, 0x4b, 0x87, 0xdd, 0x90, 0x08, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x0a, 0x00, 0xd3, 0x83, 0x11, 0x12, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xb3, 0x80, 0xe9, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xfe, 0x02, 0xd3, 0x41, 0x32, 0xcc, 0x20, 0x5a, 0x50, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x63, 0x82, 0xe9, 0x41, 0x0a, 0xa4, 0xf9, 0xf1, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x1e, 0x06, 0xd3, 0x41, 0xb4, 0xa0, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xe2, 0x07, 0xd3, 0x41, 0xb4, 0xf0, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0x4d, 0x98, 0x1e, 0x34, 0x13, 0xe6, 0x74, 0x48, 0x76, 0x1c, 0x87, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xf4, 0xc2, 0x74, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x7b, 0x34, 0x4c, 0x0f, 0xe3, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x73, 0x87, 0xe9, 0x21, 0xfe, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x0f, 0x62, 0x7a, 0x3c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x82, 0xc5, 0x74, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x32, 0x1e, 0xd3, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xe2, 0xc7, 0xf4, 0xe0, 0x41, 0xbe, 0x02, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x4e, 0x64, 0x3a, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x44, 0x32, 0x1d, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xb3, 0x64, 0x7a, 0x68, 0xf8, 0x35, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x37, 0x99, 0x1e, 0xc6, 0x65, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x42, 0x99, 0x1e, 0x8c, 0x09, 0xab, 0xe3, 0xd0, 0xf0, 0x1b, 0x34, 0x92, 0xf5, 0x34, 0xfc, 0x06, 0x83, 0x1d, 0x60, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xaa, 0x29, 0xd3, 0x61, 0x37, 0x18, 0xf5, 0x92, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x68, 0x65, 0xba, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x35, 0x59, 0xa6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0x71, 0x99, 0x1e, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xbd, 0x97, 0xe9, 0xc1, 0x23, 0xc4, 0x07, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x0d, 0x33, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x26, 0x32, 0xd3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xb3, 0xce, 0x4c, 0x0f, 0x47, 0xfb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x0d, 0x6a, 0xa6, 0x83, 0x64, 0x50, 0x37, 0x88, 0x16, 0x88, 0xf8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x15, 0x6e, 0xa6, 0x07, 0x21, 0x00, 0x7e, 0x3c, 0x3f, 0x9c, 0x62, 0xc7, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x3b, 0xd2, 0x4a, 0x0f, 0x4a, 0x86, 0xa6, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x9b, 0xc7, 0x4a, 0x0f, 0x4e, 0x2b, 0xb8, 0xc7, 0xe3, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0xdc, 0x60, 0xb1, 0xf7, 0xea, 0x21, 0xb5, 0x74, 0x3c, 0x5e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x73, 0xf3, 0x4c, 0x87, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x5e, 0x3e, 0xd3, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x59, 0x7f, 0xa6, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x1f, 0x68, 0x3a, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x31, 0xa1, 0xe9, 0xf0, 0x0b, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x3b, 0x34, 0x3d, 0x88, 0x35, 0xbd, 0x95, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x50, 0x34, 0x1d, 0x24, 0x43, 0x0e, 0x2b, 0xb4, 0xc7, 0xa1, 0xe3, 0xdb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xbd, 0x8c, 0xa6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x3e, 0x9a, 0x0e, 0xbf, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0x49, 0x9a, 0x0e, 0xbf, 0x41, 0x24, 0x36, 0xb0, 0x1c, 0xdf, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xa7, 0x34, 0x3d, 0xc4, 0xf0, 0xd0, 0x13, 0x75, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xc2, 0x4b, 0xd3, 0x41, 0xb0, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x86, 0xa6, 0xe9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x45, 0x9f, 0xa6, 0xc3, 0x6e, 0x58, 0x0b, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x30, 0x51, 0xd3, 0xc3, 0xd1, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x48, 0xa9, 0xe9, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x7b, 0x6a, 0x3a, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x4c, 0xd5, 0xf4, 0x90, 0xaf, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x78, 0x56, 0xd3, 0x83, 0xe2, 0x50, 0xe3, 0x38, 0xb4, 0x21, 0x86, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xeb, 0xab, 0xe9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x8c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x98, 0x35, 0x3d, 0x48, 0x5d, 0x1f, 0x38, 0x1e, 0x6f, 0x88, 0xe1, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x5c, 0x6b, 0x3a, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x33, 0x72, 0x4d, 0x0f, 0x0e, 0xe2, 0xdd, 0xc7, 0xe3, 0x43, 0x3a, 0xf7, 0xf8, 0x76, 0x3c, 0x3e, 0x18, 0x11, 0xe4, 0x2b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x75, 0xb1, 0xe9, 0xf0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x8f, 0x6c, 0x3a, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x36, 0x6b, 0xd3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x73, 0xd9, 0x4d, 0x87, 0xdd, 0xb0, 0xbe, 0xb7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd9, 0xef, 0xa6, 0x87, 0x53, 0x6c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x3a, 0x79, 0xd3, 0x61, 0x37, 0x08, 0x12, 0xef, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xad, 0x37, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x24, 0x7c, 0xd3, 0x43, 0x34, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xd7, 0x37, 0x3d, 0x08, 0x4a, 0xef, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x4b, 0xfb, 0x4d, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0x02, 0x9c, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x1f, 0x38, 0x3d, 0x34, 0x12, 0x3c, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x6a, 0x70, 0xba, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x55, 0x09, 0xa7, 0x07, 0x21, 0x05, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x35, 0xc3, 0xe9, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xf7, 0x70, 0x3a, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0x48, 0x9c, 0x1e, 0x84, 0x96, 0xfb, 0x86, 0x18, 0x0e, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x71, 0x18, 0xa7, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x33, 0x36, 0x4e, 0x07, 0xc9, 0xe0, 0xda, 0xc1, 0x39, 0xef, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xee, 0x38, 0x3d, 0x28, 0x0e, 0x35, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x5a, 0xc8, 0xe9, 0x41, 0xdb, 0x23, 0x4e, 0xc7, 0xa1, 0x43, 0x3a, 0x77, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xe3, 0x4a, 0x4e, 0x07, 0xd1, 0xc2, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x8d, 0x72, 0x7a, 0x10, 0x02, 0xe0, 0x87, 0x54, 0xcd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x09, 0x2c, 0xa7, 0x83, 0x68, 0xe1, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x7d, 0x39, 0x1d, 0x44, 0x0b, 0x3f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xca, 0xcc, 0xe9, 0x41, 0x18, 0xc8, 0x1f, 0x52, 0x35, 0x07, 0x21, 0x00, 0x7e, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0x1e, 0xdc, 0x1b, 0x7c, 0x48, 0x2d, 0x1d, 0x8f, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x65, 0xe7, 0x74, 0xf8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xf1, 0x39, 0x1d, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x0d, 0x74, 0xba, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x79, 0x43, 0xa7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0x19, 0x9d, 0x0e, 0xbf, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x84, 0xa4, 0xd3, 0x83, 0x58, 0xd3, 0x5b, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xd6, 0xa5, 0xd3, 0x83, 0x48, 0x6c, 0x60, 0x39, 0x0e, 0x1d, 0xdf, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xcb, 0xe9, 0x74, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xbc, 0xa8, 0xd3, 0xe1, 0x37, 0x08, 0x52, 0xfc, 0xe3, 0xdb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x39, 0x54, 0xa7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0x5d, 0x9d, 0x0e, 0xbf, 0x41, 0x88, 0xf8, 0x1f, 0xdf, 0x16, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0xd1, 0x3a, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x97, 0xec, 0x74, 0xd8, 0x0d, 0x79, 0xac, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x3e, 0x3b, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x40, 0xb5, 0xd3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xb3, 0xda, 0x4e, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x00, 0xee, 0xf4, 0xd0, 0x48, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x5c, 0xb9, 0xd3, 0x83, 0xa0, 0xf4, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xbe, 0xba, 0xd3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xb3, 0xf0, 0x4e, 0x0f, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x62, 0xef, 0x74, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xfa, 0xbe, 0xd3, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x05, 0x3c, 0x1d, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xa3, 0x06, 0x4f, 0x87, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xf8, 0xc2, 0xd3, 0x83, 0x36, 0x01, 0x02, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x45, 0x3c, 0x3d, 0x34, 0x12, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xae, 0xc5, 0xd3, 0x41, 0xb4, 0x70, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0x3d, 0x9e, 0x1e, 0x04, 0xa5, 0xf7, 0x21, 0x9a, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x48, 0x9e, 0x0e, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xc5, 0x94, 0xa7, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xcb, 0x2e, 0x4f, 0x0f, 0x02, 0x13, 0x7b, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0xd4, 0x3c, 0x3d, 0x34, 0x12, 0x1c, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x39, 0x9d, 0xa7, 0x07, 0x6d, 0x02, 0x04, 0x1c, 0x87, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x00, 0xf4, 0x74, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xbb, 0xe8, 0xe9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x84, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0x99, 0x9e, 0x1e, 0x1a, 0xea, 0x1c, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x47, 0x3d, 0x1d, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x53, 0x57, 0x4f, 0x0f, 0x46, 0xc7, 0xfa, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0xc5, 0x9e, 0x0e, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x11, 0xb4, 0xa7, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x6b, 0x6d, 0x4f, 0x0f, 0xa2, 0xf6, 0x85, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0xca, 0x3d, 0x3d, 0x68, 0x0f, 0xf4, 0x7e, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0xf0, 0x9e, 0x1e, 0x14, 0x14, 0x45, 0xc7, 0xa1, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x00, 0x3e, 0x1d, 0x44, 0x0b, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xdd, 0xf0, 0xe9, 0x71, 0xe8, 0x90, 0xb5, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xc4, 0xf8, 0x74, 0x10, 0x2d, 0xfc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb1, 0xc9, 0xa7, 0x83, 0x68, 0x61, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x69, 0x3e, 0x3d, 0x18, 0xac, 0xb1, 0x87, 0xac, 0xdd, 0x71, 0xe8, 0x70, 0x8a, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x08, 0x7d, 0x3a, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x6f, 0xfa, 0x74, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xc2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xa3, 0xad, 0x4f, 0x0f, 0x16, 0xc2, 0xec, 0x1f, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xcc, 0x3e, 0x1d, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x6b, 0xb8, 0x4f, 0x0f, 0x46, 0xc7, 0xfa, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0x88, 0x9f, 0x0e, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa1, 0xe4, 0xa7, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x83, 0xce, 0x4f, 0x0f, 0xa2, 0xf6, 0x85, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x4f, 0x3f, 0x3d, 0x68, 0x0f, 0xf4, 0x7e, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0xb2, 0x9f, 0x1e, 0x14, 0x14, 0x45, 0xc7, 0xa1, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x84, 0x3f, 0x1d, 0x44, 0x0b, 0x3f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xfe, 0xfc, 0xe9, 0x71, 0xe8, 0x90, 0xb5, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xd4, 0xfe, 0x74, 0x10, 0x2d, 0xec, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x31, 0xfa, 0xa7, 0x83, 0x68, 0xe1, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0xed, 0x3f, 0x3d, 0x08, 0xb2, 0xf8, 0x43, 0xd6, 0xee, 0x38, 0x74, 0x38, 0xc5, 0x8e, 0xc7, 0x07, 0x43, 0xc7, 0x7d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xf8, 0x05, 0xd4, 0xe1, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xdf, 0x01, 0x75, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xa2, 0x82, 0x3a, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x2c, 0x0d, 0xea, 0xb0, 0x1b, 0x76, 0x0d, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xfa, 0x06, 0xf5, 0x10, 0xcd, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xbb, 0x74, 0x50, 0x87, 0xdd, 0x90, 0xc7, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xbe, 0x1e, 0xd4, 0xc3, 0xb8, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x00, 0x84, 0x3a, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0x0a, 0xa1, 0x0e, 0xb7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x49, 0x45, 0xa8, 0x07, 0x6d, 0x02, 0x04, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x80, 0x84, 0x7a, 0x30, 0xbc, 0x28, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x74, 0x09, 0x75, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x73, 0x9c, 0x50, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x88, 0x42, 0x3d, 0x34, 0x12, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xe4, 0x29, 0xd4, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x43, 0xad, 0x50, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xa0, 0x85, 0x7a, 0x68, 0xa8, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x49, 0x17, 0xea, 0xa1, 0x93, 0xda, 0xf1, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xf0, 0x2f, 0xd4, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x8b, 0xc5, 0x50, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x63, 0x86, 0x7a, 0xb0, 0x10, 0x66, 0x7f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xaa, 0x34, 0xd4, 0x83, 0x91, 0xd9, 0x7b, 0x3c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x83, 0x0d, 0x75, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x75, 0x43, 0x1d, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x15, 0x87, 0x3a, 0x48, 0x06, 0xd7, 0x0e, 0x4e, 0x67, 0xc8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x00, 0x1d, 0xea, 0x41, 0x9b, 0x00, 0x01, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xd8, 0x0e, 0xf5, 0x60, 0x78, 0x51, 0x1c, 0x87, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x31, 0x0f, 0x75, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0xe1, 0x43, 0x1d, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xec, 0x87, 0x7a, 0x10, 0x98, 0xd8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x62, 0x20, 0xea, 0xc1, 0xf0, 0xa2, 0x18, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x4d, 0x84, 0xa8, 0x07, 0x6d, 0x02, 0x04, 0x1c, 0x87, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xe3, 0x10, 0x75, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x2a, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x54, 0x44, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xde, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x33, 0x22, 0x51, 0x0f, 0x31, 0x1c, 0x44, 0x0b, 0xc2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xcb, 0x1b, 0x51, 0x0f, 0x0d, 0x75, 0x8e, 0xc7, 0x83, 0x68, 0x41, 0x3a, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x0f, 0x25, 0xea, 0xc1, 0xc8, 0xec, 0x3d, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x6f, 0x89, 0x3a, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0x9d, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x69, 0xa2, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x41, 0xed, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf1, 0xa0, 0xa8, 0x87, 0x18, 0x0e, 0xa2, 0x05, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xbd, 0x9d, 0xa8, 0x07, 0x0b, 0x61, 0xf6, 0x8f, 0xc7, 0x83, 0x68, 0x41, 0x3a, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x05, 0x29, 0xea, 0xa1, 0x93, 0xda, 0xf1, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x68, 0x53, 0xd4, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x2e, 0x15, 0x75, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x05, 0x2b, 0xea, 0x41, 0x60, 0x62, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd5, 0xae, 0xa8, 0x07, 0x6d, 0x02, 0x04, 0x0c, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xcc, 0x58, 0xd4, 0x83, 0xe1, 0x45, 0x71, 0x1c, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x34, 0x5a, 0xd4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xa8, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xfa, 0x16, 0x75, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3a, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0xf2, 0x45, 0x3d, 0xc4, 0x70, 0x10, 0x2d, 0x48, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xd9, 0x45, 0x3d, 0x74, 0x52, 0x3b, 0x1e, 0x0f, 0xa2, 0x05, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x81, 0xc1, 0xa8, 0x07, 0x0b, 0x61, 0xf6, 0x8f, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0x10, 0xa3, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x41, 0xef, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa9, 0xc7, 0xa8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x50, 0x39, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x8c, 0x33, 0xea, 0x21, 0x86, 0x83, 0x68, 0x41, 0x3a, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xc0, 0x32, 0xea, 0xc1, 0xc8, 0xec, 0x3d, 0x1e, 0x0f, 0xa2, 0x05, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x55, 0xd1, 0xa8, 0x87, 0x86, 0x3a, 0xc7, 0xe3, 0xe3, 0xf1, 0xc1, 0x40, 0xeb, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x0c, 0x6e, 0xd4, 0xe1, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xe2, 0x1b, 0x75, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x69, 0x38, 0xea, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x91, 0xa3, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x72, 0x8e, 0x3a, 0xfc, 0x82, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x93, 0xd3, 0x51, 0x0f, 0x62, 0x4d, 0x6f, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x9b, 0xd8, 0x51, 0x0f, 0x22, 0xb1, 0x81, 0xe5, 0x38, 0x74, 0x7c, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xdb, 0x1d, 0x75, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xce, 0x78, 0xd4, 0xe1, 0x57, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x24, 0x7a, 0xd4, 0x83, 0xb8, 0x82, 0x60, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xd9, 0x1e, 0xf5, 0x10, 0xc3, 0x43, 0x4f, 0xd4, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xa3, 0xf2, 0x51, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0xf2, 0x47, 0x1d, 0x04, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x03, 0xa4, 0x0e, 0xbb, 0x61, 0x2d, 0x74, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xcb, 0x07, 0x52, 0x0f, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xcb, 0x20, 0x75, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x47, 0x48, 0x1d, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xb8, 0x90, 0x7a, 0xc8, 0xd7, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x85, 0x43, 0xea, 0x41, 0x71, 0xa8, 0x71, 0x1c, 0x5a, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x85, 0x48, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x11, 0x14, 0xa9, 0x07, 0xa9, 0xeb, 0x03, 0xc7, 0xe3, 0x85, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x60, 0x8b, 0xd4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x18, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xa1, 0x91, 0x7a, 0x70, 0x10, 0xef, 0x3e, 0x1e, 0x1f, 0xd2, 0xb9, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x1f, 0xdf, 0x8e, 0xc7, 0x07, 0xa5, 0x80, 0xc0, 0x0a, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x43, 0x92, 0x3a, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0x9d, 0xa4, 0x0e, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x99, 0x26, 0x75, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb0, 0x9f, 0xd4, 0x61, 0x37, 0xac, 0xef, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xa0, 0x50, 0xea, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0x14, 0xa5, 0x0e, 0x82, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x73, 0x8f, 0x52, 0x87, 0xdd, 0x20, 0xd8, 0x9e, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x5d, 0x29, 0x75, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x6c, 0x4a, 0x3d, 0x64, 0xed, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x82, 0x4a, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0x82, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xd2, 0xa9, 0xd4, 0x43, 0x0f, 0xa1, 0xe3, 0xf1, 0xf1, 0xed, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x07, 0x3c, 0x38, 0xb9, 0xfc, 0x90, 0x5a, 0x3a, 0x1e, 0xaf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x1d, 0x5c, 0xa9, 0xc3, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xca, 0x57, 0xea, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x4b, 0xd9, 0x52, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xb9, 0x4b, 0x1d, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xd3, 0xf3, 0x52, 0x0f, 0x1d, 0x47, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xf4, 0x2f, 0x75, 0x10, 0x2c, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x23, 0x98, 0x3a, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x37, 0x63, 0xea, 0xb0, 0x1b, 0x04, 0xdb, 0xf3, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0x40, 0xa6, 0x1e, 0x3a, 0x86, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x2b, 0x99, 0x3a, 0xec, 0x06, 0x41, 0xd2, 0xbc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xe9, 0x95, 0xa9, 0x87, 0x1e, 0x42, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0x62, 0xa6, 0x0e, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x2d, 0x9b, 0xa9, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xa3, 0x3b, 0x53, 0x0f, 0xa2, 0xf6, 0x85, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x03, 0x4d, 0x3d, 0x78, 0x66, 0x7b, 0xc4, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x20, 0x4d, 0x3d, 0x58, 0x24, 0xfe, 0x73, 0x1c, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xdc, 0xd3, 0xd4, 0x41, 0xb4, 0xf0, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0xac, 0xa6, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x41, 0xf5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa9, 0xae, 0xa9, 0x07, 0x41, 0x6e, 0x7d, 0x3c, 0x3e, 0xf4, 0x10, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x2c, 0x36, 0x75, 0x10, 0x2d, 0xec, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xed, 0xb4, 0xa9, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd0, 0x3d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x16, 0x6e, 0xea, 0x41, 0xd8, 0x53, 0x1f, 0x8f, 0x0f, 0x1d, 0xc3, 0x8e, 0x6f, 0x87, 0x53, 0xec, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x37, 0x28, 0x3c, 0x46, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0x14, 0xa7, 0x0e, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x39, 0xc8, 0xa9, 0x83, 0x60, 0x83, 0x91, 0xff, 0xb0, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x40, 0x7a, 0xea, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x91, 0xf3, 0xa9, 0x83, 0x60, 0x71, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x33, 0x2e, 0x54, 0x07, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x49, 0x32, 0xaa, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0xf3, 0xa8, 0x0e, 0xbb, 0x21, 0x8f, 0xb5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x01, 0x40, 0xaa, 0x87, 0x68, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x28, 0xa4, 0x3a, 0xec, 0x86, 0x5d, 0x83, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x2d, 0x52, 0x3d, 0x44, 0x73, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x1c, 0x24, 0xd5, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x5b, 0x49, 0x75, 0xb8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x6b, 0x52, 0x3d, 0x68, 0x13, 0x20, 0x60, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x18, 0x28, 0xd5, 0x83, 0xa0, 0xf4, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x72, 0x29, 0xd5, 0x83, 0x85, 0x30, 0xfb, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0x56, 0xa9, 0x0e, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x25, 0x58, 0xaa, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x93, 0xb5, 0x54, 0x0f, 0x06, 0x22, 0xf5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xd8, 0xa5, 0x7a, 0xd0, 0x26, 0x40, 0xc0, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x02, 0x53, 0x3d, 0x08, 0x4a, 0xef, 0xe3, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x8c, 0xa9, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x41, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x98, 0x99, 0xea, 0xc1, 0x42, 0x98, 0xfd, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x0d, 0x69, 0xaa, 0x83, 0x68, 0x61, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x64, 0x53, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0x82, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xee, 0x37, 0xd5, 0x43, 0x43, 0x9d, 0xe3, 0xf1, 0x21, 0x9a, 0xc7, 0xe3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x99, 0x53, 0x1d, 0x04, 0x1b, 0x8c, 0xfc, 0x87, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xeb, 0x27, 0x55, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x4c, 0x55, 0x1d, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x7b, 0x58, 0x55, 0x87, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x6e, 0x57, 0xd5, 0x83, 0x20, 0xf1, 0x5e, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0xa4, 0x55, 0x1d, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x83, 0x6e, 0x55, 0x0f, 0x82, 0xd2, 0x7b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xea, 0x5c, 0xd5, 0x43, 0x0c, 0x0f, 0xe9, 0xdc, 0xc3, 0xd1, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x79, 0xbc, 0xaa, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xf1, 0xab, 0x7a, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa9, 0xc1, 0xaa, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x45, 0xac, 0x3a, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xe0, 0x58, 0x75, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xf0, 0x64, 0xd5, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x64, 0x56, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xec, 0x59, 0xf5, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x1b, 0xa4, 0x55, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xa7, 0x56, 0x1d, 0x7e, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa5, 0xd7, 0xaa, 0x83, 0x64, 0xe0, 0xfe, 0x3a, 0x38, 0x6d, 0x28, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x93, 0xb6, 0xea, 0x20, 0x19, 0x72, 0x30, 0x0c, 0x7d, 0x8e, 0x43, 0xc7, 0xb7, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xfb, 0xb9, 0x55, 0x07, 0xc1, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x95, 0xdf, 0xaa, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x93, 0xab, 0x0e, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x85, 0xe7, 0xaa, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x89, 0xba, 0xea, 0x21, 0x11, 0xb0, 0x21, 0x86, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xf9, 0xbb, 0xea, 0x70, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x28, 0xaf, 0x7a, 0x88, 0xe6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd5, 0xf5, 0xaa, 0x87, 0x86, 0x5f, 0x87, 0x74, 0xee, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0xe1, 0xab, 0x1e, 0x52, 0x07, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0xec, 0xab, 0x0e, 0xbf, 0x20, 0x5a, 0xd8, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xab, 0xfc, 0x55, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xa0, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xd6, 0x80, 0xd5, 0x83, 0x94, 0xc1, 0x80, 0xe3, 0xf1, 0xf1, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x2e, 0x82, 0xd5, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xdf, 0x60, 0x75, 0xb8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x4c, 0x58, 0x3d, 0x44, 0x73, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x2a, 0x86, 0xd5, 0x43, 0xc3, 0xaf, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x77, 0x58, 0x3d, 0xa4, 0x0e, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x8c, 0x58, 0x1d, 0x7e, 0x41, 0xb4, 0xb0, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0x53, 0xac, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xda, 0xc5, 0xea, 0x30, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0x68, 0xac, 0x1e, 0xa2, 0x39, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x31, 0xc7, 0xea, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0x7d, 0xac, 0x1e, 0x8c, 0x09, 0xab, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x33, 0x44, 0x56, 0x0f, 0xe3, 0x72, 0x3c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xae, 0x64, 0x75, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x40, 0x59, 0x1d, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x6b, 0x55, 0x56, 0x0f, 0xd1, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xad, 0x65, 0xf5, 0xd0, 0xf0, 0x6b, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x0b, 0x60, 0x56, 0x0f, 0xa9, 0x83, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x5b, 0x65, 0x56, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xa0, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x04, 0x9b, 0xd5, 0x83, 0x14, 0x48, 0xf3, 0xe3, 0xf1, 0xf1, 0xed, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x92, 0x7d, 0xea, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x70, 0xfc, 0xd4, 0x83, 0xb7, 0x84, 0x02, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xdf, 0x7e, 0xea, 0xf0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xe9, 0x9f, 0x3a, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x28, 0x40, 0xf5, 0x60, 0xdc, 0x41, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x25, 0x05, 0xaa, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x9b, 0x0f, 0x54, 0x0f, 0x4a, 0x86, 0xa6, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x76, 0x41, 0xf5, 0x90, 0xb5, 0x1b, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x59, 0x0e, 0xaa, 0x87, 0x1e, 0x42, 0xc7, 0xa1, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x41, 0x84, 0xea, 0xa1, 0x87, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x9d, 0x50, 0x3d, 0x74, 0x0c, 0x3b, 0x0e, 0x1d, 0xcf, 0x8f, 0x43, 0x07, 0x6b, 0xf9, 0x04, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0x83, 0x25, 0x05, 0xf0, 0x87, 0xd4, 0xd2, 0xf1, 0x78, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xfa, 0x59, 0x1d, 0x7e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xcb, 0x84, 0x56, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xfe, 0xb4, 0x3a, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x9c, 0xd6, 0xea, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x92, 0xae, 0xd5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xfb, 0xbf, 0x56, 0x87, 0x5f, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xad, 0xd8, 0xea, 0xc1, 0x2b, 0xc4, 0x4a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xab, 0x6c, 0xf5, 0xe0, 0xe5, 0x52, 0x24, 0xc7, 0xa1, 0xe3, 0xdb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x01, 0x68, 0xab, 0x83, 0x60, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x4c, 0xb5, 0xd5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xa3, 0xdf, 0x56, 0x87, 0xdd, 0x60, 0x6c, 0x72, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xbc, 0xdc, 0xea, 0x21, 0x75, 0x30, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x5f, 0xdd, 0xea, 0x20, 0x19, 0x32, 0x88, 0x16, 0xcc, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xc6, 0x5b, 0x3d, 0xb4, 0x00, 0x1a, 0x44, 0x0b, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xfa, 0xde, 0xea, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0xfa, 0xad, 0x1e, 0xe2, 0x3f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x4f, 0xe0, 0xea, 0x20, 0x19, 0x32, 0x88, 0x16, 0xcc, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x24, 0x5c, 0x3d, 0x34, 0xfc, 0x3a, 0x1e, 0x1f, 0x8f, 0x8f, 0x6f, 0xc7, 0xe3, 0x83, 0x62, 0x71, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xf3, 0x1b, 0x57, 0x87, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x86, 0xc8, 0xd5, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0x79, 0xae, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x8d, 0xba, 0x3a, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x71, 0x75, 0x75, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x2e, 0xd7, 0xd5, 0xe1, 0x17, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x11, 0xbb, 0x7a, 0xf0, 0x0a, 0xb1, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x9d, 0x5d, 0x3d, 0x78, 0xb9, 0x14, 0xc9, 0x71, 0xe8, 0xf8, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x93, 0xed, 0xea, 0x20, 0x58, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x1c, 0x77, 0x75, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x06, 0xdf, 0xd5, 0x61, 0x37, 0x18, 0x9b, 0x9c, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x12, 0xbc, 0x7a, 0x48, 0x1d, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x3a, 0xbc, 0x3a, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x03, 0x8e, 0x57, 0x0f, 0x0d, 0xbf, 0x06, 0xd1, 0xc2, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xa0, 0xbc, 0xba, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa9, 0xcc, 0xab, 0x87, 0xf8, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xf5, 0xbc, 0x3a, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x4b, 0xa5, 0x57, 0x0f, 0x2d, 0x80, 0x8e, 0xc7, 0xc7, 0xe3, 0xe3, 0xdb, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0x78, 0x62, 0x61, 0xf0, 0x21, 0xb5, 0x74, 0x3c, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x6e, 0xee, 0xd5, 0xe1, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xfe, 0x7b, 0x75, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x6d, 0xed, 0xab, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0xe0, 0xaf, 0x0e, 0xbb, 0x61, 0x7d, 0x6f, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x4b, 0xf6, 0x57, 0x0f, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xb8, 0x7f, 0x75, 0x10, 0x2c, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x05, 0xc0, 0x3a, 0xec, 0x06, 0x41, 0xd2, 0xbc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x91, 0x03, 0xac, 0x1b, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x90, 0x01, 0xeb, 0x21, 0x6b, 0x37, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x3c, 0x02, 0xeb, 0x20, 0x19, 0x32, 0x88, 0x16, 0xc4, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x31, 0xb0, 0x1e, 0x3a, 0x86, 0x1d, 0x8f, 0x8f, 0x6f, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0xb8, 0xc1, 0x2a, 0xed, 0xf4, 0x43, 0x6a, 0xe9, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xd2, 0x04, 0xeb, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xfc, 0x0a, 0xd6, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xc4, 0x60, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x6e, 0x83, 0x75, 0xf8, 0x05, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0x78, 0xb0, 0x1e, 0xc4, 0x9a, 0xde, 0xca, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0x83, 0xb0, 0x1e, 0x44, 0x62, 0x03, 0xcb, 0x71, 0xe8, 0xf8, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xdf, 0x08, 0xeb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x59, 0x26, 0xac, 0x07, 0x11, 0x18, 0xc4, 0xb2, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x46, 0x0a, 0xeb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x6d, 0x2e, 0xac, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x1b, 0x62, 0x58, 0x0f, 0x5e, 0x6e, 0x47, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xbd, 0x33, 0xac, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xbb, 0x6c, 0x58, 0x0f, 0x12, 0x62, 0x00, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x8c, 0x1c, 0xd6, 0x43, 0x34, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xf0, 0x0e, 0xeb, 0x61, 0x5c, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0x0a, 0xb1, 0x0e, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x91, 0x45, 0xac, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x98, 0x62, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x09, 0x8b, 0x75, 0xd8, 0x0d, 0xeb, 0x7b, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xb6, 0xc5, 0x7a, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf9, 0x5d, 0xac, 0xc3, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x09, 0xc6, 0x3a, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x67, 0x8c, 0x75, 0x90, 0x0c, 0x4a, 0x0e, 0xce, 0x79, 0xc7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x74, 0x19, 0xeb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x96, 0x34, 0xd6, 0x43, 0x23, 0xc1, 0xe3, 0xf1, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x5f, 0x63, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xf4, 0xc6, 0x7a, 0x10, 0x94, 0xde, 0xc7, 0xe3, 0xe3, 0xd0, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x6e, 0x50, 0xac, 0x0a, 0x1c, 0x52, 0x4b, 0xc7, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x9b, 0xf9, 0x58, 0x87, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xea, 0x3f, 0xd6, 0x41, 0xb0, 0xc1, 0xc8, 0x7f, 0x58, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xdb, 0x94, 0x75, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb6, 0x58, 0xd6, 0x41, 0xb0, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x05, 0x19, 0xad, 0x83, 0x60, 0x71, 0x0e, 0x4a, 0x53, 0xdc, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xe3, 0x7e, 0x5a, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x50, 0x6a, 0x1d, 0x76, 0x43, 0x1e, 0x6b, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x53, 0x9a, 0x5a, 0x0f, 0xd1, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xf6, 0xa9, 0x75, 0xd8, 0x0d, 0xc6, 0x3a, 0xda, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x4b, 0xb5, 0x1e, 0xa2, 0x39, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x58, 0x55, 0xeb, 0xb0, 0x0b, 0xb7, 0xc1, 0x2b, 0xfa, 0xdb, 0x0e, 0x8d, 0x04, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x67, 0xab, 0x75, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xee, 0x6a, 0x1d, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xf3, 0xc0, 0x5a, 0x0f, 0xda, 0x04, 0x08, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x66, 0xac, 0xf5, 0x60, 0x64, 0xf6, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x79, 0x59, 0xeb, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x42, 0xb4, 0xd6, 0x41, 0x32, 0x70, 0x74, 0x1d, 0x04, 0x39, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0xad, 0xb5, 0x0e, 0xa2, 0x85, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xd7, 0xad, 0xf5, 0x10, 0xc3, 0x43, 0x34, 0x8f, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0xc5, 0xb5, 0x0e, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x21, 0x74, 0xad, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x8b, 0xed, 0x5a, 0x0f, 0x06, 0x22, 0xf5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x98, 0xd7, 0x7a, 0xd0, 0x26, 0x40, 0xc0, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xe2, 0x6b, 0x3d, 0x18, 0x99, 0xbd, 0xc7, 0xa1, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xf8, 0x6b, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0x82, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x30, 0xc1, 0xd6, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x01, 0x85, 0xad, 0x07, 0x11, 0xa0, 0xd9, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xc5, 0x87, 0xad, 0x83, 0x68, 0x61, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x5a, 0x6c, 0x3d, 0xc4, 0xf0, 0x10, 0xcd, 0xe3, 0xd0, 0xf1, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x00, 0xc7, 0xd6, 0x41, 0xb4, 0xb0, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0x46, 0xb6, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x41, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x37, 0x65, 0xeb, 0xa1, 0xa1, 0xce, 0xf1, 0xf8, 0x10, 0xcd, 0x41, 0xb6, 0x86, 0xf6, 0xeb, 0x07, 0x8f, 0xb1, 0x04, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x4a, 0xb3, 0x75, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xe7, 0x6c, 0x1d, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x2b, 0x3f, 0x5b, 0x0f, 0x46, 0x66, 0xef, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x3d, 0xa2, 0xad, 0x07, 0x6d, 0x02, 0x04, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x40, 0x69, 0xeb, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xd0, 0xd3, 0xd6, 0x83, 0x08, 0xd0, 0x6c, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x2e, 0xd5, 0xd6, 0x41, 0xb4, 0xf0, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0xb7, 0xb6, 0x1e, 0x62, 0x78, 0x88, 0xe6, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x4a, 0xd8, 0xd6, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x68, 0xb6, 0x75, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x79, 0x6d, 0xeb, 0xc1, 0x40, 0xa4, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x4b, 0x71, 0x5b, 0x0f, 0xda, 0x04, 0x08, 0x18, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x69, 0xbb, 0xad, 0x07, 0x23, 0xb3, 0xf7, 0x38, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x29, 0xbe, 0xad, 0x83, 0x68, 0xe1, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x0d, 0x6e, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0x82, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x7e, 0xe2, 0xd6, 0x83, 0x85, 0x30, 0xfb, 0xc7, 0xe3, 0x43, 0x34, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x3d, 0x6e, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0x82, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x8c, 0xe5, 0xd6, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb9, 0xcd, 0xad, 0x07, 0x11, 0xa0, 0xd9, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x79, 0xd0, 0xad, 0x83, 0x68, 0xe1, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x9f, 0x6e, 0x3d, 0xc4, 0xf0, 0x10, 0xcd, 0xe3, 0xd0, 0xf1, 0xf8, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x09, 0x2d, 0xeb, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x6b, 0xcb, 0x3a, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0xe5, 0xb2, 0x1e, 0x04, 0xdb, 0xf3, 0xc2, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xd4, 0x2f, 0xeb, 0x41, 0x90, 0x34, 0x1f, 0xd2, 0xb9, 0x87, 0xa3, 0x7d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x6b, 0x8a, 0x59, 0x0f, 0x59, 0xbb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xab, 0x90, 0x59, 0x87, 0xdd, 0x20, 0xd8, 0x9e, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x73, 0x99, 0x75, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x8c, 0x33, 0xeb, 0x41, 0xc9, 0xd0, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0x43, 0xb3, 0x1e, 0xb2, 0x76, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xda, 0x69, 0xd6, 0x83, 0x86, 0x13, 0xed, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x9d, 0x35, 0xeb, 0xa1, 0x63, 0xd8, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x92, 0x6c, 0xd6, 0x61, 0x37, 0x08, 0x92, 0xe6, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xe2, 0x66, 0x1d, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xef, 0xcd, 0x7a, 0x50, 0x32, 0x34, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb1, 0xe1, 0xac, 0x87, 0xac, 0xdd, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x8e, 0x9c, 0xf5, 0xe0, 0x15, 0xfd, 0x6d, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xf4, 0x9c, 0xf5, 0xd0, 0x43, 0xe8, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xb6, 0x3a, 0xeb, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xd8, 0xce, 0x3a, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x06, 0x9e, 0xf5, 0x60, 0xbc, 0xe9, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf1, 0xf2, 0xac, 0x07, 0x83, 0x3f, 0x66, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0xd9, 0xb3, 0x1e, 0x9a, 0x25, 0x1d, 0x87, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x37, 0x9f, 0x75, 0xf8, 0x05, 0xd1, 0x82, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x05, 0xfd, 0xac, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x53, 0xff, 0x59, 0x0f, 0x4a, 0x86, 0xa6, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x4d, 0xa0, 0xf5, 0x90, 0xb5, 0x5b, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x14, 0xb4, 0x1e, 0xbc, 0xa2, 0xbf, 0x6d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0x1f, 0xb4, 0x1e, 0x7a, 0x08, 0x1d, 0x87, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0x2b, 0xb4, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x6b, 0x68, 0x3d, 0x28, 0x19, 0x9a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x08, 0x88, 0xd6, 0x43, 0xd6, 0x6e, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x2d, 0xd1, 0x7a, 0xd0, 0x70, 0xa2, 0xfd, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0xac, 0x68, 0x3d, 0x74, 0x0c, 0x3b, 0x0e, 0x1d, 0x4e, 0xb1, 0x83, 0x72, 0x28, 0xe9, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x37, 0x58, 0x05, 0x8e, 0x77, 0x48, 0x2d, 0x1d, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0xe2, 0x6e, 0x1d, 0x7e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xb3, 0xbe, 0x5b, 0x07, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xbd, 0xfa, 0xad, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x15, 0xb8, 0x0e, 0xbb, 0x61, 0xd7, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x53, 0x11, 0x5c, 0x0f, 0xd1, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x66, 0xc1, 0x75, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa1, 0x11, 0xae, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x8b, 0x28, 0x5c, 0x0f, 0x9a, 0xda, 0x26, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xeb, 0x2d, 0x5c, 0x0f, 0xd1, 0x1c, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x91, 0x19, 0xae, 0x87, 0x46, 0x82, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x1b, 0x1d, 0x5c, 0x0f, 0x82, 0xd2, 0xfb, 0x78, 0x7c, 0x3c, 0x3e, 0x28, 0xf3, 0x08, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x0d, 0x71, 0x1d, 0x7e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x6b, 0x49, 0x5c, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x9d, 0xb8, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x7d, 0x8a, 0xeb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xcd, 0x2c, 0xae, 0xc3, 0x2f, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xf0, 0xc5, 0xf5, 0x20, 0xd6, 0xf4, 0x56, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x45, 0xc6, 0xf5, 0x20, 0x12, 0x1b, 0x58, 0x8e, 0x43, 0xc7, 0xb7, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xb3, 0x69, 0x5c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xbd, 0x71, 0x3d, 0x88, 0xc0, 0x20, 0x96, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xeb, 0x74, 0x5c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xfd, 0x71, 0x1d, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x73, 0x84, 0x5c, 0x87, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x6c, 0x22, 0xd7, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x3b, 0x72, 0x1d, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xa1, 0xe4, 0x7a, 0x90, 0x10, 0x03, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0x33, 0xb9, 0x1e, 0xa2, 0x39, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xbb, 0x9e, 0x5c, 0x0f, 0xe3, 0x72, 0x1c, 0x3a, 0xac, 0x6f, 0x1e, 0x8f, 0x0f, 0x8a, 0xe2, 0x86, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xe1, 0x72, 0x1d, 0x7e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x4b, 0xbe, 0x5c, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0x87, 0xb9, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x16, 0x99, 0xeb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x29, 0x67, 0xae, 0xc3, 0x2f, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x3b, 0xcd, 0xf5, 0x20, 0xd6, 0xf4, 0x56, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x8f, 0xcd, 0xf5, 0x20, 0x12, 0x1b, 0x58, 0x8e, 0x43, 0xc7, 0xb7, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x43, 0xde, 0x5c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x91, 0x73, 0x3d, 0x88, 0xc0, 0x20, 0x96, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xe3, 0xe9, 0x5c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x51, 0x74, 0x1d, 0x76, 0x43, 0x1e, 0x6b, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x83, 0x1a, 0x5d, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xfb, 0xd1, 0xf5, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xf3, 0x24, 0x5d, 0x0f, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xa3, 0xd2, 0x75, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xbd, 0x74, 0x1d, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xc3, 0x34, 0x5d, 0x0f, 0xe3, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x44, 0xa7, 0xeb, 0x41, 0x9b, 0x00, 0x01, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xfd, 0xe9, 0xba, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x85, 0xa2, 0xae, 0x1b, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x4f, 0xa9, 0xeb, 0xc1, 0xf2, 0x9a, 0xa0, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xe3, 0x50, 0x5d, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0xac, 0xba, 0x0e, 0x92, 0x81, 0xa3, 0xeb, 0x90, 0x5c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xf4, 0x56, 0xd7, 0x43, 0x34, 0x8f, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0xc2, 0xba, 0x0e, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x41, 0xb3, 0xae, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xb3, 0x6b, 0x5d, 0x0f, 0x02, 0x13, 0x7b, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0xc4, 0x75, 0x3d, 0x8c, 0xcb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0xd9, 0x75, 0x3d, 0x68, 0x13, 0x20, 0xe0, 0x38, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x01, 0xbe, 0xae, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x1b, 0x81, 0x5d, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x13, 0xbb, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x41, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x0e, 0xb2, 0xeb, 0xa1, 0xa1, 0xce, 0xf1, 0xf8, 0x60, 0xa4, 0x69, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xae, 0xec, 0xba, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x7d, 0xcd, 0xae, 0x07, 0x21, 0x05, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x2b, 0xb4, 0xeb, 0x20, 0x5a, 0xd8, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x3b, 0xa8, 0x5d, 0x0f, 0x42, 0x00, 0xfc, 0x90, 0xb5, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xdb, 0xda, 0x75, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x5d, 0xb6, 0xeb, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb4, 0x6e, 0xd7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x08, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x06, 0x77, 0x3d, 0x58, 0x08, 0xb3, 0x7f, 0x3c, 0x3e, 0x18, 0x69, 0x5a, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0x8d, 0xbb, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x84, 0xb9, 0xeb, 0x41, 0x48, 0x81, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x8b, 0xee, 0x3a, 0x88, 0x16, 0x7e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x16, 0x76, 0xd7, 0x83, 0x10, 0x00, 0x3f, 0x64, 0xed, 0x8e, 0xc7, 0x07, 0xa5, 0xb9, 0xc1, 0x0a, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x45, 0xef, 0x3a, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0xdd, 0xbb, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xd0, 0x77, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x50, 0x7e, 0xd7, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xf3, 0xfe, 0x5d, 0x87, 0x5f, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x8c, 0xc0, 0xeb, 0x41, 0xac, 0xe9, 0xad, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x39, 0xc1, 0xeb, 0x41, 0x24, 0x36, 0xb0, 0x1c, 0x87, 0x8e, 0x6f, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x1e, 0xbc, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xa7, 0xf0, 0x7a, 0x10, 0x81, 0x41, 0x2c, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0x34, 0xbc, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x80, 0xf1, 0x3a, 0xec, 0x86, 0x3c, 0xd6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0x6c, 0xbc, 0x1e, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x74, 0xc7, 0xeb, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x08, 0xf2, 0x3a, 0xdc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x8c, 0xbc, 0x1e, 0xc6, 0x65, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xdc, 0x92, 0xd7, 0x83, 0x36, 0x01, 0x02, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x0f, 0xe5, 0x75, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x58, 0x79, 0x3d, 0x58, 0x5e, 0x13, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x77, 0xcb, 0xeb, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x07, 0xf3, 0x3a, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x63, 0xe6, 0xf5, 0x20, 0x30, 0xb1, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xee, 0x9a, 0xd7, 0xc3, 0xb8, 0x0c, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x3c, 0x9c, 0xd7, 0x83, 0x36, 0x01, 0x02, 0x8e, 0x43, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xb4, 0xf3, 0x3a, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x8d, 0x3e, 0xaf, 0x87, 0x86, 0x3a, 0xc7, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x6b, 0x82, 0x5e, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0x20, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x91, 0xe8, 0xf5, 0x60, 0x21, 0xcc, 0xfe, 0xf1, 0xf8, 0x78, 0x7c, 0x50, 0xc4, 0xb3, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xe6, 0xf4, 0x3a, 0xfc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0x45, 0xbd, 0x0e, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xd7, 0xeb, 0x75, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x5b, 0xd8, 0xeb, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x90, 0xbd, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x6d, 0xf6, 0x3a, 0xfc, 0x82, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x1b, 0xd3, 0x5e, 0x0f, 0x9a, 0xb7, 0x5c, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x18, 0xb6, 0xd7, 0x83, 0x92, 0xa0, 0xe1, 0x38, 0x74, 0x7c, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xdc, 0xed, 0x75, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xde, 0xb8, 0xd7, 0xe1, 0x17, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x47, 0xf7, 0x7a, 0xd0, 0xbc, 0xe5, 0xca, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0xdc, 0xbd, 0x1e, 0x94, 0x04, 0x0d, 0xc7, 0xa1, 0xe3, 0xdb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd5, 0x79, 0xaf, 0x83, 0x60, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x34, 0xbe, 0xd7, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x2b, 0x03, 0x5f, 0x87, 0xdd, 0x60, 0x6c, 0x72, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x2c, 0xe1, 0xeb, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x1d, 0xbe, 0x0e, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf1, 0x89, 0xaf, 0xc3, 0x6e, 0xc8, 0x63, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x47, 0xe3, 0xeb, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0x3f, 0xbe, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x93, 0x7c, 0x3d, 0x18, 0xbc, 0x93, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x48, 0xe5, 0xeb, 0xc1, 0x98, 0xb0, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xe1, 0x97, 0xaf, 0x07, 0x43, 0xb3, 0xeb, 0x38, 0xb4, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xa9, 0xf9, 0x3a, 0xec, 0x86, 0x5d, 0x83, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0xee, 0x7c, 0x3d, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x44, 0xd0, 0xd7, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x29, 0xa3, 0xaf, 0x07, 0x83, 0x77, 0x72, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x30, 0x7d, 0x3d, 0x08, 0x4a, 0xef, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x8b, 0xfa, 0x7a, 0x30, 0x26, 0xac, 0x8e, 0x43, 0x0b, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x79, 0xab, 0xaf, 0xc3, 0x6e, 0x50, 0xf4, 0x24, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xab, 0xeb, 0xeb, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0xc5, 0xbe, 0x0e, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xfd, 0xb3, 0xaf, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x3b, 0x6d, 0x5f, 0x07, 0xc9, 0xe0, 0xda, 0xc1, 0xb9, 0xfe, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0xca, 0x7d, 0x3d, 0x18, 0x13, 0x56, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x80, 0xf7, 0xf5, 0xa0, 0x38, 0x7d, 0x39, 0x0e, 0x2d, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0xfb, 0xbe, 0x0e, 0x92, 0x21, 0x83, 0x68, 0xc1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x18, 0xe1, 0xd7, 0x43, 0x0b, 0xa0, 0x41, 0xb4, 0x20, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xab, 0xf8, 0x75, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x40, 0x7e, 0x3d, 0x18, 0x13, 0x56, 0xc7, 0xe3, 0x43, 0x3a, 0xf7, 0x70, 0xb4, 0x2f, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0x2b, 0xbf, 0x0e, 0xbb, 0x41, 0x51, 0xa5, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x29, 0xce, 0xaf, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x0d, 0xfd, 0x3a, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0x4d, 0xbf, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xb0, 0x7e, 0x3d, 0x88, 0xe2, 0x34, 0x97, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x18, 0xfb, 0xf5, 0x60, 0x4c, 0x58, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xc0, 0xed, 0xd7, 0x83, 0x32, 0x1a, 0xe6, 0x38, 0xb4, 0xb0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xe4, 0xfd, 0x3a, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x5b, 0xc3, 0x5f, 0x0f, 0x0d, 0xbf, 0x06, 0xd1, 0x82, 0x74, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x6e, 0xf2, 0xd7, 0x0d, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xf2, 0xfc, 0xf5, 0x60, 0x4c, 0x58, 0x1d, 0x8f, 0x0f, 0xe9, 0xdc, 0xc3, 0xd1, 0x7e, 0x48, 0xe7, 0x1e, 0x8e, 0xf6, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x8f, 0x6f, 0xc7, 0xe3, 0x83, 0x32, 0x72, 0x61, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x2e, 0xf9, 0xd7, 0xe1, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xad, 0xfe, 0x75, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x07, 0xfe, 0xeb, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0xeb, 0xbf, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xd9, 0xff, 0x3a, 0xfc, 0x82, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xa3, 0x00, 0x60, 0x0f, 0x62, 0x4d, 0x6f, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xeb, 0x05, 0x60, 0x0f, 0x22, 0xb1, 0x81, 0xe5, 0x38, 0x74, 0x7c, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xb4, 0x00, 0x76, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x42, 0x04, 0xd8, 0xe1, 0x57, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xa0, 0x05, 0xd8, 0x83, 0xb8, 0x1a, 0x62, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xc0, 0x01, 0xf6, 0x10, 0xc3, 0x43, 0x4f, 0xd4, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x63, 0x21, 0x60, 0x07, 0xc1, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x49, 0x13, 0xb0, 0xc3, 0x6e, 0x58, 0x0b, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x34, 0x0b, 0xd8, 0x43, 0xd6, 0x6e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x7a, 0x0c, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xdc, 0x80, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xcc, 0x03, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x1b, 0x42, 0x60, 0x0f, 0xda, 0x03, 0xbd, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x79, 0x04, 0x76, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x9c, 0x09, 0xec, 0x21, 0x5f, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x0d, 0x29, 0xb0, 0x07, 0xcd, 0x6c, 0x04, 0x1c, 0x87, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x7c, 0x05, 0x76, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x60, 0x17, 0xd8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x18, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x22, 0x03, 0x7b, 0x90, 0xba, 0x3e, 0x70, 0x3c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x9d, 0x06, 0x76, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xe8, 0x1b, 0xd8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x18, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xb3, 0x03, 0x7b, 0x70, 0x10, 0xef, 0x3e, 0x1e, 0x1f, 0xdf, 0x8e, 0xc7, 0x07, 0x43, 0x6d, 0xe9, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x37, 0xcc, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0x19, 0x93, 0x1e, 0xcf, 0x3b, 0x1e, 0x1f, 0x8f, 0x07, 0xd9, 0x1a, 0xd2, 0x40, 0xe3, 0x06, 0x8b, 0xb0, 0x89, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xcc, 0x95, 0xf4, 0xb0, 0x42, 0xdb, 0xf1, 0xf8, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x07, 0xfe, 0xcd, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x7e, 0x3d, 0xd2, 0xc3, 0x0a, 0x6d, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x28, 0xd7, 0x1c, 0x76, 0x43, 0xc7, 0x91, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x5c, 0xd7, 0x1c, 0x76, 0x83, 0xe7, 0xd6, 0xf2, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x8a, 0xbb, 0xe6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0xca, 0x6b, 0x1e, 0xbc, 0x7a, 0x97, 0x67, 0x90, 0x6d, 0x10, 0x29, 0xa0, 0x2e, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0xe0, 0x6b, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x53, 0xaf, 0x39, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xb1, 0xbe, 0xe6, 0xc1, 0x2a, 0xfe, 0x9d, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xeb, 0xd7, 0x3c, 0x28, 0x6b, 0x01, 0x8f, 0x43, 0x87, 0x0e, 0x1a, 0xc3, 0x6e, 0xf0, 0x12, 0x62, 0x9e, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x06, 0xd8, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb2, 0x82, 0xcd, 0x83, 0x17, 0x29, 0xf3, 0x0c, 0xb2, 0x0d, 0x62, 0xea, 0xd4, 0x65, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x76, 0x85, 0xcd, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x33, 0x10, 0x36, 0x0f, 0x86, 0xac, 0xef, 0xb0, 0x0b, 0xb7, 0xc1, 0x1a, 0x14, 0xa0, 0x43, 0x34, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xb3, 0x61, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x5b, 0x22, 0x36, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x58, 0x83, 0x02, 0xb4, 0xc1, 0x1a, 0x14, 0xa0, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x88, 0xd3, 0x55, 0x97, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x73, 0x2d, 0x36, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x9f, 0xd8, 0x1c, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x2e, 0x63, 0xf3, 0xe0, 0xb1, 0x4d, 0x1c, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x07, 0xc7, 0xe6, 0x41, 0xc4, 0xba, 0x9f, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xb4, 0xc7, 0xe6, 0x41, 0x59, 0x0b, 0x78, 0x1c, 0x3a, 0x74, 0xd0, 0x18, 0x76, 0x83, 0x12, 0x04, 0x72, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x4b, 0x43, 0x36, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xc4, 0x64, 0xf3, 0x60, 0xa0, 0xfc, 0x0e, 0xb2, 0x0d, 0xe2, 0xaf, 0xd6, 0x65, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xd2, 0x95, 0xcd, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x9b, 0x51, 0x36, 0x07, 0xc1, 0x06, 0xed, 0x8c, 0xdc, 0x1f, 0xbc, 0x5c, 0x0a, 0x6a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x34, 0x97, 0xcd, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x97, 0xd9, 0x1c, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x60, 0x8d, 0xb6, 0xc2, 0xc1, 0x3b, 0x73, 0x7e, 0x06, 0xd9, 0x06, 0xb1, 0x99, 0xeb, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x1b, 0xce, 0xe6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x99, 0x35, 0x9b, 0x83, 0x60, 0x83, 0x76, 0x46, 0xee, 0x0f, 0xde, 0x53, 0x78, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xe2, 0xb9, 0xe6, 0xa1, 0x3f, 0xd5, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x41, 0xb0, 0xc1, 0xc8, 0x7f, 0x58, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x6d, 0x27, 0x3a, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x47, 0x9f, 0xe8, 0xc1, 0x1a, 0xdb, 0x8c, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xfa, 0x4f, 0xf4, 0x20, 0x0e, 0xb2, 0x56, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x9d, 0x82, 0xa2, 0x07, 0x71, 0x90, 0xb5, 0x32, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xcb, 0x0a, 0x45, 0x0f, 0xde, 0x88, 0xea, 0x71, 0x1c, 0x3a, 0x34, 0x6a, 0x39, 0x34, 0x7f, 0x39, 0x1e, 0x0f, 0x82, 0x0d, 0x46, 0xfe, 0xc3, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x58, 0xb5, 0xbb, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xeb, 0xdf, 0xee, 0x0e, 0x1a, 0x49, 0xb2, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x53, 0xe5, 0xee, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0xd5, 0xdd, 0x0d, 0x92, 0x81, 0x95, 0xbe, 0x83, 0x80, 0xf7, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x0c, 0xbc, 0xbb, 0x83, 0x28, 0x6b, 0x58, 0x39, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xbc, 0xbd, 0xbb, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x35, 0x7e, 0x77, 0x07, 0x8d, 0x24, 0xd9, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf1, 0x80, 0x77, 0x07, 0xed, 0xb0, 0x30, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x36, 0xc2, 0xbb, 0x83, 0x76, 0x58, 0x98, 0x8e, 0x43, 0xc7, 0xa1, 0x43, 0xa3, 0x96, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0x08, 0x1d, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x4d, 0x74, 0xb8, 0xb8, 0x20, 0x58, 0xdc, 0xe0, 0x45, 0x6e, 0x6e, 0x07, 0xaf, 0x5e, 0x72, 0x5b, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xac, 0x74, 0x38, 0xec, 0x06, 0xaf, 0x15, 0x79, 0x5b, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb8, 0xa6, 0xc3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x94, 0x3a, 0x1c, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0xcd, 0x6f, 0x6e, 0x1b, 0xbc, 0xf9, 0xcd, 0xed, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0x62, 0xd9, 0xda, 0x65, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x96, 0xac, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x73, 0xac, 0x0e, 0x07, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xdf, 0x3a, 0x3c, 0x78, 0x3f, 0x42, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xd4, 0x7f, 0x8c, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xbd, 0x5e, 0x87, 0x07, 0xaf, 0x55, 0xbb, 0x3a, 0x34, 0x7f, 0x39, 0x1e, 0x1f, 0x87, 0x0e, 0x1d, 0x34, 0x86, 0xdd, 0xe0, 0xe5, 0x52, 0x41, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x19, 0x76, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x81, 0x67, 0x87, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0xbc, 0x62, 0x2a, 0x68, 0x83, 0x57, 0x4c, 0x05, 0x1d, 0x4e, 0xb1, 0x41, 0xb6, 0x41, 0x94, 0x7e, 0xbb, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xe6, 0x76, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xc8, 0xda, 0xe1, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x35, 0x71, 0x87, 0x07, 0xef, 0x47, 0x28, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xfe, 0xb9, 0xc3, 0x83, 0xb7, 0xd4, 0x10, 0x1d, 0x87, 0x0e, 0x1d, 0x34, 0x86, 0xdd, 0xe0, 0xdd, 0x1f, 0x6f, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x6e, 0x77, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa1, 0x79, 0x87, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x3c, 0xb7, 0xe3, 0xe6, 0xe0, 0xfd, 0x59, 0x3d, 0x83, 0x6c, 0x83, 0x28, 0x3d, 0x77, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xed, 0xef, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x3a, 0xbe, 0xc3, 0x83, 0xe7, 0xc9, 0x18, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x24, 0x78, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x59, 0x88, 0x87, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0xbc, 0xc5, 0xcd, 0x6d, 0x83, 0xb7, 0xb8, 0xb9, 0x1d, 0x4e, 0xb1, 0x41, 0xb6, 0x41, 0x14, 0xb0, 0xbb, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xf3, 0x78, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xfe, 0xe2, 0xe1, 0x20, 0xd8, 0x20, 0x82, 0xf5, 0x2c, 0x0e, 0x1d, 0x34, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x83, 0x60, 0x83, 0xf7, 0xda, 0xf8, 0x2c, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x05, 0x3d, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xb7, 0xf2, 0x70, 0xd8, 0x0d, 0xde, 0xcd, 0xe3, 0xb3, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x10, 0xd5, 0xc3, 0x83, 0xa7, 0x03, 0xf9, 0x1c, 0xbc, 0x5e, 0xc8, 0x67, 0xd8, 0x0d, 0x9e, 0xa4, 0x15, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xfd, 0xac, 0x87, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x26, 0x7b, 0x38, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0xf3, 0xb4, 0x82, 0x36, 0x78, 0x9e, 0x56, 0xd0, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0x44, 0x53, 0xbd, 0xcb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf5, 0xb8, 0x87, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0xd8, 0x1e, 0x1e, 0xbc, 0xea, 0x7f, 0x69, 0xd8, 0x0d, 0x1e, 0x48, 0x15, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xc9, 0xbb, 0x87, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x1f, 0x7c, 0x38, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0x63, 0xa9, 0x82, 0x36, 0x78, 0x2c, 0x55, 0xd0, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0x44, 0x8f, 0xbe, 0xcb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x8d, 0xc8, 0x87, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0x16, 0x1f, 0x1e, 0x3c, 0x4f, 0xc6, 0x68, 0xd8, 0x0d, 0x5e, 0x74, 0x15, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x6d, 0xcb, 0x87, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x07, 0x7d, 0x38, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0xeb, 0xae, 0x82, 0x36, 0x78, 0xdd, 0x55, 0xd0, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0x44, 0xcb, 0xbf, 0xcb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x51, 0xd7, 0x87, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x50, 0x1f, 0x1e, 0xc4, 0x0b, 0xbc, 0xcb, 0xb0, 0x1b, 0xbc, 0x77, 0x07, 0x63, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xe5, 0xe0, 0x87, 0x07, 0x4f, 0x07, 0xf2, 0x39, 0x78, 0x38, 0x92, 0xcf, 0xb0, 0x1b, 0x3c, 0x5c, 0xc9, 0x67, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x71, 0xea, 0x87, 0x07, 0x4f, 0x07, 0xf2, 0x39, 0x78, 0xd7, 0x93, 0xcf, 0xb0, 0x1b, 0xbc, 0x1f, 0x2b, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x9b, 0xda, 0x0f, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x4a, 0xfe, 0xf0, 0x60, 0x69, 0xa9, 0xd5, 0x20, 0xdb, 0x20, 0x3e, 0x0f, 0x5e, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xc0, 0x3f, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xa4, 0xfe, 0xf0, 0xe0, 0x55, 0xff, 0x4b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0xeb, 0x1f, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x24, 0x00, 0xe2, 0x41, 0xcc, 0x83, 0xbb, 0x0c, 0xb2, 0x0d, 0x22, 0x6c, 0xe1, 0x65, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb2, 0x01, 0xc4, 0x83, 0xa1, 0xf9, 0x7b, 0x68, 0xfe, 0x72, 0x3c, 0x3e, 0x1e, 0xaf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xbd, 0x10, 0x94, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0x4e, 0x50, 0x2e, 0x2e, 0x08, 0x16, 0x0f, 0x9e, 0xc6, 0xe4, 0xb6, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x2f, 0x83, 0x72, 0xd8, 0x85, 0x5b, 0x3c, 0x28, 0xd8, 0xf8, 0x0e, 0xd1, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x14, 0x0e, 0xca, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x10, 0xa1, 0x1c, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x20, 0x7a, 0x23, 0x5e, 0x36, 0x88, 0xde, 0x88, 0x97, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x88, 0x25, 0x89, 0x97, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xab, 0x51, 0x28, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x2d, 0xa1, 0x1c, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x74, 0x30, 0xee, 0xa0, 0x0e, 0x1d, 0x34, 0x86, 0xdd, 0xe0, 0x19, 0x62, 0x41, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xc3, 0x42, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x4d, 0x32, 0x94, 0x07, 0x6f, 0x5c, 0x3c, 0x1b, 0x64, 0x1b, 0x44, 0xf1, 0xc5, 0xcb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x51, 0x38, 0x94, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0xd4, 0x50, 0x1e, 0x44, 0x9e, 0xc5, 0xcb, 0xb0, 0x0b, 0xb7, 0x78, 0xd0, 0x9a, 0xbf, 0xe5, 0x21, 0x9a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xb3, 0x43, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x91, 0x42, 0x94, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0xc4, 0xe7, 0xc6, 0xcb, 0x06, 0xf1, 0xb9, 0xf1, 0x72, 0x38, 0xc5, 0x06, 0xd9, 0x06, 0x51, 0xc3, 0xf1, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x5d, 0x49, 0x94, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0x18, 0x51, 0x0e, 0x82, 0x0d, 0xe2, 0xd2, 0xe2, 0xe5, 0xd0, 0x14, 0x68, 0x90, 0x6d, 0x10, 0x35, 0x1c, 0x2f, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xf7, 0x44, 0x39, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x0f, 0x13, 0xe5, 0xc1, 0x0b, 0x6d, 0xae, 0x06, 0xd9, 0x06, 0x51, 0xc3, 0xf1, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x5c, 0x15, 0xe5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x5d, 0x52, 0x94, 0x07, 0xcf, 0xec, 0xb9, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x0a, 0x8b, 0x72, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xd3, 0xbf, 0x28, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x1c, 0x0f, 0x1e, 0xc7, 0xe4, 0xb6, 0x41, 0xa4, 0x9b, 0xbc, 0x1c, 0x4e, 0xb1, 0x41, 0xb6, 0x41, 0x1c, 0x95, 0xbc, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xae, 0x19, 0xe5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x91, 0x63, 0x94, 0x07, 0x71, 0x06, 0xf2, 0x32, 0xc8, 0x36, 0x88, 0xa3, 0x92, 0x97, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x66, 0xa3, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x33, 0x8d, 0xf2, 0xe0, 0x85, 0x36, 0x57, 0x83, 0x6c, 0x83, 0x38, 0x2a, 0x79, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x59, 0x8e, 0x72, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xdc, 0x37, 0xca, 0x83, 0x67, 0xf6, 0x5c, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xee, 0x8e, 0x72, 0x10, 0x6c, 0xf0, 0x1c, 0x16, 0xa1, 0x43, 0xa3, 0x96, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x20, 0xd8, 0xe0, 0xbd, 0x36, 0x3e, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xd3, 0x10, 0x29, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0xea, 0xa3, 0x1c, 0x76, 0x83, 0x77, 0xf3, 0xf8, 0x2c, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x3c, 0x92, 0xf2, 0xe0, 0xe9, 0x40, 0x3e, 0x07, 0xaf, 0x17, 0xf2, 0x19, 0x76, 0x83, 0xf7, 0xee, 0x60, 0x2c, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x71, 0x93, 0xf2, 0xe0, 0xe9, 0x40, 0x3e, 0x07, 0x0f, 0x47, 0xf2, 0x19, 0x76, 0x83, 0x87, 0x2b, 0xf9, 0x2c, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xa5, 0x94, 0xf2, 0xe0, 0xe9, 0x40, 0x3e, 0x07, 0xef, 0x7a, 0xf2, 0x19, 0x76, 0x83, 0x28, 0x8d, 0x78, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x08, 0x54, 0xca, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x5e, 0xa5, 0x3c, 0x88, 0xcc, 0x89, 0x97, 0x41, 0xb6, 0x41, 0x2c, 0xe0, 0xbc, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x1d, 0x4b, 0x39, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xad, 0x2b, 0xe5, 0x41, 0xe4, 0x59, 0xbc, 0x0c, 0xbb, 0xc1, 0x33, 0xc4, 0x82, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x98, 0x96, 0x72, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x1b, 0x71, 0x29, 0x0f, 0xde, 0xb8, 0x78, 0x36, 0xc8, 0x36, 0x88, 0x1b, 0x9e, 0x97, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x23, 0x7d, 0x29, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xdb, 0xa5, 0x3c, 0x88, 0x3c, 0x8b, 0x97, 0x61, 0x37, 0x88, 0xc3, 0x8d, 0x97, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x0b, 0xa6, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xa0, 0x62, 0xca, 0x83, 0x18, 0xec, 0x78, 0x19, 0x64, 0x1b, 0xc4, 0x18, 0xd0, 0xcb, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0x2d, 0x53, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x81, 0x4c, 0x79, 0x10, 0x67, 0x20, 0x2f, 0x83, 0x6c, 0x83, 0x18, 0x03, 0x7a, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb2, 0x68, 0xca, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x4b, 0x9c, 0x29, 0x0f, 0x5e, 0x68, 0x73, 0x35, 0xc8, 0x36, 0x88, 0x31, 0xa0, 0x97, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xb3, 0xae, 0x29, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0xa2, 0xa6, 0x3c, 0x78, 0x66, 0xcf, 0xd5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x39, 0xda, 0x94, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xe0, 0x4d, 0x79, 0x10, 0x95, 0x26, 0x2f, 0x83, 0x6c, 0x83, 0xe8, 0x42, 0x7a, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x02, 0x72, 0xca, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xbb, 0xc1, 0x29, 0x0f, 0xe2, 0x0c, 0xe4, 0x65, 0x90, 0x6d, 0x10, 0x5d, 0x48, 0x2f, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xa2, 0x4e, 0x39, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xb9, 0x39, 0xe5, 0xc1, 0x0b, 0x6d, 0xae, 0x06, 0xd9, 0x06, 0xd1, 0x85, 0xf4, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x06, 0x3c, 0xe5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x05, 0xed, 0x94, 0x07, 0xcf, 0xec, 0xb9, 0x3a, 0x34, 0x7f, 0x39, 0x1e, 0x1f, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xe5, 0xb1, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xef, 0xc7, 0x6e, 0x71, 0x41, 0xb0, 0xb8, 0xc1, 0x33, 0xd6, 0xde, 0x0e, 0x02, 0xe0, 0x7e, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x1c, 0x92, 0xdd, 0xb0, 0x1b, 0x3c, 0x29, 0xed, 0x6d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x43, 0x96, 0xec, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x1a, 0xca, 0x6e, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0xe7, 0xa5, 0xbd, 0x6d, 0xf0, 0xbc, 0xb4, 0xb7, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x88, 0x17, 0xaa, 0x97, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xeb, 0xae, 0xec, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xa3, 0xb2, 0x1b, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x48, 0xcb, 0xee, 0xe0, 0xfc, 0x13, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa1, 0x5d, 0x76, 0x07, 0xa7, 0xd6, 0xe6, 0xe3, 0xd0, 0xa1, 0x83, 0xc6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x95, 0x60, 0x76, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x66, 0x66, 0x37, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0x03, 0xd6, 0xde, 0x36, 0x78, 0xc0, 0xda, 0xdb, 0xe1, 0x14, 0x1b, 0x64, 0x1b, 0x44, 0xef, 0xd6, 0xcb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x09, 0x6d, 0x76, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0xa8, 0xd9, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xfd, 0x66, 0x77, 0x70, 0xfe, 0x09, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x5c, 0x39, 0xbb, 0x83, 0x77, 0xf7, 0x0c, 0x1d, 0x87, 0x0e, 0x1d, 0x34, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x86, 0x67, 0x37, 0xec, 0x86, 0x8e, 0x23, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x0d, 0x68, 0x37, 0x08, 0x36, 0x78, 0xef, 0xf4, 0xdb, 0xa1, 0x51, 0xcb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf5, 0x7d, 0x76, 0x83, 0x60, 0x83, 0xd7, 0xa5, 0x0b, 0x1d, 0x1a, 0xb5, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x93, 0xd0, 0x6e, 0x10, 0x6c, 0x68, 0x3b, 0xb3, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xf9, 0xd0, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xf3, 0x1b, 0xed, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x8a, 0xb4, 0x1b, 0x7e, 0x83, 0x91, 0x80, 0x73, 0x48, 0x1d, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x2d, 0xa5, 0xdd, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xe1, 0x97, 0x76, 0xc3, 0x2f, 0x48, 0x36, 0x58, 0x73, 0x81, 0x74, 0x30, 0xfc, 0x63, 0x0f, 0xa9, 0x83, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x7b, 0x35, 0xed, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0xf1, 0xb4, 0x3b, 0x34, 0x12, 0x5c, 0x1c, 0x04, 0x0b, 0xb2, 0x0d, 0xe2, 0x24, 0xed, 0x65, 0x41, 0xb6, 0x41, 0x4c, 0xaa, 0xbd, 0x0c, 0xb2, 0x0d, 0xe2, 0x3b, 0xed, 0x65, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0xc1, 0x48, 0xc0, 0x39, 0xa4, 0xe1, 0x06, 0xd9, 0x06, 0x71, 0x92, 0xf6, 0xb2, 0x20, 0xdb, 0x20, 0xfa, 0xd8, 0x5e, 0x06, 0xd9, 0x06, 0x91, 0xbc, 0xf6, 0x32, 0x08, 0x16, 0x7e, 0x43, 0x72, 0xe9, 0x20, 0x56, 0xda, 0x5e, 0x0e, 0x4d, 0x81, 0x06, 0xd9, 0x06, 0x71, 0x92, 0xf6, 0x32, 0xc8, 0x36, 0x88, 0x61, 0xb7, 0x97, 0x41, 0xb6, 0x41, 0x3c, 0xb8, 0xbd, 0x1c, 0x3c, 0x23, 0x18, 0xee, 0xd0, 0xfc, 0xe5, 0x78, 0x7c, 0x3c, 0x5e, 0x10, 0x6c, 0x30, 0xf2, 0x1f, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0x8c, 0xda, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x98, 0x6a, 0x77, 0xf0, 0x12, 0x8d, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x89, 0xd5, 0xee, 0xe0, 0x3d, 0xb0, 0x48, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xe6, 0xd5, 0xee, 0xe0, 0xdd, 0x3d, 0x43, 0xc7, 0xa1, 0x43, 0xa3, 0x96, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0xd1, 0xda, 0x0d, 0xbf, 0x21, 0xb9, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x6d, 0xae, 0xdd, 0xf0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x07, 0x6c, 0x37, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x67, 0xd8, 0x6e, 0xf8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x3b, 0xb6, 0x3b, 0x78, 0xde, 0x2b, 0xc0, 0xc1, 0xea, 0x5e, 0x98, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x57, 0xb6, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xb5, 0xd9, 0xee, 0xe0, 0xdd, 0x29, 0x43, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xf3, 0x79, 0xed, 0x86, 0xdf, 0xe0, 0xfc, 0x44, 0x7b, 0x7c, 0x3b, 0x34, 0x7f, 0x39, 0x1e, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x5e, 0xb4, 0xdd, 0x20, 0xd8, 0xd0, 0x76, 0x66, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x29, 0xb5, 0xdd, 0xf0, 0x0b, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xd0, 0xb6, 0x3b, 0x68, 0x88, 0x2a, 0x69, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xe7, 0xb6, 0x3b, 0xa4, 0x0e, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xf2, 0xb7, 0xdd, 0xc1, 0x01, 0x01, 0xfb, 0x38, 0x74, 0x48, 0x1d, 0x2c, 0x0e, 0x82, 0x05, 0xd9, 0x06, 0x91, 0x5f, 0xf8, 0x32, 0x08, 0x16, 0x7e, 0x43, 0x72, 0xe9, 0x20, 0x4e, 0x0d, 0x5f, 0x0e, 0x8d, 0x5a, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc7, 0xe3, 0x41, 0xb0, 0xc1, 0x7b, 0x6d, 0x7c, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0xcf, 0xdb, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x8b, 0x6e, 0x37, 0xec, 0x06, 0xef, 0xe6, 0xf1, 0x59, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x12, 0xc0, 0xdd, 0xc1, 0xd3, 0x81, 0x7c, 0x0e, 0x5e, 0x2f, 0xe4, 0x33, 0xec, 0x06, 0x4b, 0x2c, 0xad, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x90, 0xe0, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x2b, 0x14, 0xee, 0x0e, 0x16, 0x6d, 0x5a, 0x0d, 0xb2, 0x0d, 0xe2, 0x16, 0xf2, 0x65, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x74, 0x86, 0xbb, 0x83, 0xa1, 0xf9, 0x3b, 0xec, 0x06, 0xef, 0xb6, 0x0f, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xdc, 0x87, 0xbb, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xab, 0xb8, 0x1b, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0x0d, 0xf7, 0x41, 0x1b, 0xbc, 0xe1, 0x3e, 0xe8, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0x62, 0x83, 0xf2, 0x65, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x06, 0x8e, 0xbb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x23, 0x32, 0xee, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xf6, 0xb8, 0x3b, 0x38, 0xad, 0xe0, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x8e, 0xc8, 0xdd, 0xc1, 0xa9, 0xb5, 0xf9, 0x38, 0x74, 0xe8, 0xa0, 0x31, 0xec, 0x06, 0xaf, 0xc4, 0x0f, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x96, 0x92, 0xbb, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x57, 0xb9, 0x1b, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0xc5, 0xf8, 0x41, 0x1b, 0xbc, 0x18, 0x3f, 0xe8, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0x62, 0x81, 0xf3, 0x65, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xd0, 0x98, 0xbb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x4b, 0x5d, 0xee, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0xa3, 0xb9, 0x3b, 0x38, 0xad, 0xe0, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xd4, 0xcd, 0xdd, 0xc1, 0x08, 0x89, 0x3a, 0x0e, 0x1d, 0x3a, 0x68, 0x0c, 0xbb, 0xc1, 0x33, 0xe8, 0x83, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x5a, 0xe7, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xc3, 0x80, 0xee, 0x86, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x78, 0x12, 0x7d, 0xd0, 0x06, 0x4f, 0xa2, 0x0f, 0x3a, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0xb8, 0x1f, 0x7d, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xac, 0xa3, 0xbb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x13, 0x88, 0xee, 0x0e, 0xe2, 0x0c, 0xe4, 0x65, 0x90, 0x6d, 0x10, 0xf7, 0xa3, 0x2f, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x36, 0xdd, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xa3, 0x74, 0x37, 0x08, 0x36, 0x78, 0xa6, 0x31, 0xd4, 0xa1, 0x05, 0xd8, 0xb0, 0x1b, 0xbc, 0x77, 0x07, 0x63, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x25, 0x59, 0x77, 0x07, 0x4f, 0x07, 0xf2, 0x39, 0x78, 0x38, 0x92, 0xcf, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x88, 0xb2, 0xbb, 0x83, 0xa7, 0x03, 0xf9, 0x1c, 0xbc, 0xeb, 0xc9, 0xe7, 0xd0, 0xfc, 0xe5, 0x78, 0x7c, 0x3c, 0x5e, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x74, 0xa3, 0xca, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x5b, 0x98, 0x2a, 0x0f, 0x56, 0xf1, 0xef, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xb6, 0x53, 0xe5, 0xb0, 0x1b, 0x3a, 0x8e, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x0f, 0x55, 0xe5, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xf9, 0x56, 0x95, 0x07, 0x8d, 0x24, 0xd9, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb1, 0x59, 0x95, 0x83, 0x64, 0xa0, 0x79, 0xdf, 0xf1, 0x78, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0x74, 0x55, 0x1e, 0xb4, 0x3f, 0xbf, 0x74, 0x1c, 0x3a, 0x34, 0x6a, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x31, 0xaa, 0xf2, 0x20, 0x62, 0xdd, 0x4f, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc7, 0xa1, 0x43, 0xa3, 0x96, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0xee, 0x6c, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xe6, 0xb3, 0xb9, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x61, 0x43, 0x9b, 0xc3, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x4e, 0xd2, 0xe6, 0xe2, 0x82, 0x60, 0x71, 0x83, 0x97, 0xef, 0x6d, 0x1e, 0x4e, 0xb1, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x31, 0x4e, 0x9b, 0xc3, 0x2e, 0xdc, 0xe2, 0xc1, 0x8b, 0x68, 0x1d, 0x0f, 0xd1, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x72, 0xa8, 0xcd, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x9d, 0xda, 0x1c, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x20, 0x06, 0x7e, 0x5f, 0x36, 0x88, 0x81, 0xdf, 0x97, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x88, 0xcd, 0xdf, 0x97, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0xd4, 0xda, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xe8, 0x6a, 0x73, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0xc1, 0x39, 0xf8, 0xfb, 0xd0, 0x14, 0x68, 0x90, 0x6d, 0x10, 0x9b, 0xbf, 0x2f, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x82, 0x6d, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xd6, 0xb5, 0x39, 0x08, 0x36, 0x88, 0xf5, 0xe1, 0x97, 0x43, 0x0b, 0xb0, 0x61, 0x37, 0x78, 0x37, 0x8f, 0xda, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x8d, 0x6d, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x8a, 0xd9, 0xe6, 0xc1, 0x43, 0x86, 0xd4, 0x06, 0xd9, 0x06, 0x11, 0x78, 0xfc, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x4d, 0x6c, 0x9b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0xa4, 0x6d, 0x0e, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x3a, 0x48, 0x66, 0xb0, 0x38, 0x34, 0x05, 0x1a, 0x64, 0x1b, 0x44, 0xe0, 0xf1, 0xcb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xc5, 0x73, 0x9b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0xc2, 0x6d, 0x0e, 0x82, 0x0d, 0xa2, 0x60, 0xf9, 0xe5, 0xd0, 0x02, 0x6c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x56, 0xbb, 0xcd, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xcb, 0xdb, 0x1c, 0x76, 0xe1, 0x36, 0x44, 0x73, 0x3c, 0x78, 0xf9, 0xde, 0xe6, 0x06, 0xd1, 0xfd, 0xfc, 0x72, 0x38, 0xc5, 0x06, 0xd9, 0x06, 0xb1, 0xe3, 0xfc, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x75, 0x80, 0x9b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0xf4, 0x6d, 0x0e, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x33, 0xb8, 0x79, 0xd0, 0xf6, 0x42, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0x18, 0x6e, 0x0e, 0x82, 0x0d, 0x5a, 0xb9, 0x2e, 0x3f, 0x78, 0x48, 0xfe, 0xc5, 0xa1, 0xf9, 0xcb, 0xf1, 0xf8, 0x38, 0x74, 0x68, 0x0a, 0x34, 0xc8, 0x36, 0x88, 0x1d, 0xe7, 0x97, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xfb, 0x17, 0x37, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x46, 0xdc, 0x1c, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xd9, 0x71, 0xf3, 0xa0, 0xed, 0x85, 0xfe, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x8c, 0xdc, 0x3c, 0x88, 0xd3, 0xea, 0x97, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x71, 0xe8, 0xd0, 0x02, 0xec, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd1, 0x96, 0x9b, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0x66, 0x6e, 0x1e, 0x34, 0x3b, 0xb0, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x59, 0x9c, 0x9b, 0x07, 0x25, 0x43, 0xd3, 0x71, 0xe8, 0xd0, 0xa8, 0xe5, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x20, 0xd8, 0x60, 0x59, 0x18, 0xcc, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x06, 0xd1, 0xcd, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x3f, 0xdd, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x96, 0x74, 0x73, 0x10, 0x6c, 0x10, 0xeb, 0xc3, 0x2f, 0x87, 0x34, 0xdc, 0x20, 0xdb, 0x20, 0x16, 0xc5, 0x5f, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xc2, 0x75, 0x73, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x68, 0xd5, 0xcd, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x64, 0x40, 0xf8, 0xdf, 0x1d, 0x92, 0x4b, 0x87, 0xa6, 0x40, 0x83, 0x6c, 0x83, 0x58, 0x14, 0x7f, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x1a, 0xda, 0xcd, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xdb, 0x61, 0x37, 0x07, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0xb7, 0xdd, 0x3c, 0x78, 0x28, 0xcf, 0xd4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x9c, 0xbb, 0x79, 0x10, 0x53, 0xe7, 0x2f, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x43, 0x79, 0x37, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x7b, 0x78, 0x73, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb0, 0xdf, 0xcd, 0x83, 0x66, 0xad, 0xcb, 0x07, 0xd9, 0x06, 0xf1, 0xda, 0xfe, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x7c, 0xf2, 0xe6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa5, 0xc6, 0x9b, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc9, 0xc0, 0xf1, 0x77, 0x10, 0xe4, 0xfc, 0x87, 0x0e, 0x1a, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xd0, 0xa1, 0x13, 0xd1, 0x20, 0xdb, 0x20, 0x16, 0xc5, 0x5f, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x81, 0xde, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x9c, 0x79, 0x73, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x76, 0xe9, 0xcd, 0x83, 0xb6, 0x17, 0xfa, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xb6, 0x7a, 0xf3, 0x20, 0x4e, 0xab, 0x5f, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc7, 0xa1, 0x43, 0xf7, 0xa3, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x0a, 0x82, 0xc5, 0x0d, 0xa7, 0xd8, 0x06, 0xcf, 0xee, 0xe0, 0x6c, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xb7, 0xf6, 0xe6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0x82, 0x6f, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xd8, 0xbd, 0x39, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0xf8, 0x0d, 0x5a, 0x36, 0x12, 0x39, 0x48, 0x77, 0xdf, 0x39, 0xa4, 0xe1, 0x06, 0xd9, 0x06, 0x91, 0xa9, 0xff, 0x32, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x1a, 0xf9, 0xe6, 0xb0, 0x0b, 0xb7, 0x41, 0x0c, 0xfc, 0xbe, 0x1c, 0x1a, 0x09, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xc7, 0xf9, 0xe6, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0xa7, 0x6f, 0x0e, 0xbb, 0x70, 0x1b, 0x1a, 0x09, 0x1e, 0xc4, 0xc0, 0xef, 0xcb, 0x41, 0x14, 0x06, 0xbf, 0x0c, 0xb2, 0x0d, 0x22, 0xf5, 0xff, 0x65, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xeb, 0xdf, 0x37, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x65, 0xdf, 0x1c, 0x04, 0x1b, 0xc4, 0xfa, 0xf0, 0xcb, 0xa1, 0x13, 0xd1, 0x20, 0xdb, 0x20, 0x52, 0xff, 0x5f, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xb0, 0xdf, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x5a, 0x7e, 0xf3, 0xe0, 0x25, 0xf3, 0x58, 0xc3, 0x2e, 0xdc, 0x06, 0x6f, 0xe8, 0x51, 0x3b, 0x34, 0x12, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x6a, 0xfc, 0xcd, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0xdc, 0xdf, 0x1c, 0x76, 0xe1, 0x36, 0x34, 0x12, 0x3c, 0x78, 0x43, 0x8f, 0xda, 0xc1, 0xab, 0x88, 0xd4, 0x06, 0xd9, 0x06, 0xb1, 0x72, 0x00, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x69, 0xfe, 0x9b, 0x83, 0x60, 0x83, 0x28, 0x58, 0x7e, 0x39, 0x74, 0x22, 0x1a, 0x64, 0x1b, 0xc4, 0xca, 0x01, 0xcc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x91, 0x04, 0x9c, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0x05, 0x70, 0x1e, 0xbc, 0x64, 0x1e, 0x6b, 0xd8, 0x85, 0xdb, 0x20, 0xba, 0x9f, 0x5f, 0x0e, 0x8d, 0x04, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xea, 0x80, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x1b, 0x14, 0x38, 0x87, 0x5d, 0xb8, 0x0d, 0x8d, 0x04, 0x0f, 0xa2, 0xfb, 0xf9, 0xe5, 0x20, 0x5e, 0xa0, 0x5f, 0x06, 0xd9, 0x06, 0x71, 0xdf, 0x00, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x0c, 0x04, 0xe7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xe5, 0x0c, 0x9c, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0x4b, 0x70, 0x1e, 0xb4, 0xbd, 0xd0, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xc1, 0x15, 0x9c, 0x07, 0x71, 0x5a, 0xfd, 0x72, 0x68, 0xfe, 0x72, 0x3c, 0x3e, 0x0e, 0x1d, 0x5a, 0x80, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x8a, 0xc1, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x5d, 0x1b, 0x9c, 0xc3, 0x2e, 0xdc, 0x86, 0x46, 0x82, 0xe3, 0xc1, 0xb3, 0x3b, 0x38, 0x37, 0x88, 0xf1, 0x0b, 0x98, 0xc3, 0x29, 0x36, 0xc8, 0x36, 0x88, 0x1a, 0x0b, 0x98, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x0b, 0x3f, 0x38, 0x0f, 0x1e, 0xde, 0xd4, 0x73, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x10, 0x6c, 0x30, 0xf2, 0x1f, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x91, 0x70, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x9b, 0x0a, 0xe7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x25, 0x27, 0x9c, 0x83, 0x60, 0x83, 0x78, 0x38, 0x7f, 0x39, 0xa4, 0xe1, 0x06, 0xd9, 0x06, 0x11, 0xb0, 0x01, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x95, 0x30, 0x9c, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0xb5, 0x70, 0x1e, 0xbc, 0x2a, 0xd8, 0x67, 0x90, 0x6d, 0x10, 0x01, 0x1b, 0x30, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0xda, 0x70, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x36, 0xc3, 0x39, 0x08, 0x36, 0x88, 0xf0, 0xf8, 0x97, 0x43, 0x0b, 0xb0, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0xed, 0x70, 0x0e, 0x82, 0x0d, 0x96, 0x85, 0xc1, 0x2c, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x3e, 0xc4, 0x39, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xd2, 0x88, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xab, 0x92, 0x38, 0x0f, 0x22, 0xae, 0xf7, 0x65, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x22, 0x29, 0xce, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x33, 0xac, 0x38, 0x0f, 0xa9, 0x83, 0xc5, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xa3, 0xb1, 0x38, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xf2, 0xe2, 0x1c, 0x76, 0xe1, 0x36, 0x88, 0x81, 0xdf, 0x97, 0x83, 0xf1, 0xd3, 0xb5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xcd, 0x64, 0x9c, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xe8, 0x19, 0xe7, 0x70, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xa6, 0xc6, 0x79, 0x68, 0x24, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x93, 0x1b, 0xe7, 0xa1, 0xa1, 0xce, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0xc8, 0x71, 0x0e, 0xa2, 0x85, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x60, 0xc7, 0x79, 0xb0, 0x10, 0x66, 0xff, 0x30, 0x2e, 0x87, 0x53, 0x6c, 0xd8, 0x85, 0xdb, 0xe0, 0x0d, 0x3d, 0x6a, 0x07, 0xe3, 0xa7, 0x6b, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x43, 0xf9, 0x38, 0x87, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb8, 0x3f, 0xce, 0xe1, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x46, 0x90, 0xf3, 0xd0, 0x49, 0x6d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x06, 0x43, 0xce, 0x83, 0x72, 0xc3, 0x66, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xdb, 0x13, 0x39, 0x87, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x5e, 0x46, 0xce, 0xe1, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xf0, 0x91, 0x73, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x92, 0x24, 0xe7, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xd2, 0x4a, 0xce, 0x83, 0x96, 0x0a, 0x06, 0x06, 0xc9, 0x40, 0xf1, 0x1b, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xeb, 0x30, 0x39, 0x0f, 0x4d, 0xb8, 0x8e, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xc6, 0xc9, 0x79, 0xe8, 0xa4, 0x76, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xea, 0x93, 0x73, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x11, 0xe5, 0x3c, 0x28, 0xb5, 0x69, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xb7, 0x94, 0x73, 0x10, 0x2d, 0x88, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x72, 0xe5, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x11, 0xcb, 0x39, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x8e, 0x96, 0xf3, 0xa0, 0xa5, 0x82, 0x81, 0x41, 0x32, 0x30, 0x54, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xd0, 0x2d, 0xe7, 0xa1, 0x09, 0xd7, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0xd1, 0xe5, 0x3c, 0x38, 0xb1, 0xdc, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x8e, 0x5e, 0xce, 0x83, 0x33, 0x09, 0xfa, 0x71, 0x68, 0x10, 0x2d, 0xec, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xc1, 0xa9, 0x9c, 0x07, 0x27, 0x96, 0xfb, 0xc3, 0xb8, 0x1c, 0x4e, 0xb1, 0xc3, 0x29, 0x36, 0xc8, 0xd6, 0xd0, 0x7e, 0x7d, 0xb8, 0x0d, 0xa2, 0xfb, 0xf9, 0xe5, 0x60, 0xfc, 0x74, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x3a, 0xcc, 0x39, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0x1a, 0x73, 0x0e, 0xb7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x45, 0xc9, 0x9c, 0x07, 0x67, 0xf5, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x3b, 0x9a, 0x39, 0x0f, 0x0d, 0x75, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xff, 0x99, 0x73, 0x10, 0x2d, 0xc8, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x9f, 0xe6, 0x3c, 0x58, 0x08, 0xb3, 0x7f, 0x18, 0x97, 0xc3, 0x29, 0x76, 0x3c, 0x3e, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x76, 0xcd, 0x39, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xda, 0x72, 0xce, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x7b, 0xe1, 0x39, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0xce, 0x73, 0x1e, 0xbc, 0x3c, 0x95, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x73, 0xec, 0x39, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0xe3, 0x73, 0x1e, 0x34, 0x8f, 0x3f, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0xee, 0x73, 0x1e, 0x52, 0x07, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xe1, 0x9f, 0x73, 0x10, 0x6c, 0x10, 0x71, 0xbd, 0x2f, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x1f, 0x74, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xe1, 0xd0, 0x39, 0xec, 0x06, 0xb1, 0xee, 0xfb, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x49, 0x14, 0x9d, 0xc3, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x23, 0x48, 0xe7, 0x21, 0x75, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x85, 0x17, 0x9d, 0x07, 0x31, 0xf0, 0xfb, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd5, 0x1a, 0x9d, 0x87, 0xe4, 0xd2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa9, 0x1d, 0x9d, 0x87, 0xd4, 0xc1, 0xb0, 0x1b, 0xbc, 0x9b, 0x47, 0x6d, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x73, 0x4d, 0x3a, 0x87, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x7e, 0x99, 0xce, 0x43, 0xea, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xeb, 0x53, 0x3a, 0x0f, 0xde, 0xd0, 0xa3, 0xb6, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x45, 0x2d, 0x9d, 0x87, 0xe4, 0xd2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x19, 0x30, 0x9d, 0x87, 0xd4, 0xc1, 0x20, 0x5b, 0x43, 0xfb, 0xf5, 0xe1, 0x36, 0x88, 0xee, 0xe7, 0x97, 0x43, 0x34, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0xc5, 0xe9, 0x1c, 0x7e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x03, 0x8a, 0x3a, 0x0f, 0xa9, 0x83, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xdf, 0xe9, 0x3c, 0x88, 0xee, 0xe7, 0x97, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xfa, 0xe9, 0x3c, 0x24, 0x97, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x10, 0xea, 0x3c, 0xa4, 0x0e, 0x8e, 0xc7, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x9b, 0x91, 0x3a, 0x07, 0xc1, 0x06, 0x05, 0xb4, 0xe0, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x4d, 0x60, 0x9d, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xfb, 0xc5, 0x3a, 0x0f, 0x9e, 0x95, 0x68, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0x97, 0x75, 0x1e, 0xa2, 0x39, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x63, 0xd1, 0x3a, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0xad, 0x75, 0x1e, 0x1c, 0x9a, 0x84, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xdb, 0xad, 0xf3, 0x30, 0x2e, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xa5, 0xeb, 0x1c, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xee, 0xae, 0xf3, 0xa0, 0xd9, 0x81, 0x95, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xe2, 0x1c, 0x44, 0x74, 0xfe, 0xcb, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x1a, 0xbd, 0xce, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x01, 0xec, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x9e, 0xaf, 0xf3, 0x20, 0xba, 0x4c, 0x30, 0x06, 0xd9, 0x06, 0xb1, 0x2d, 0x07, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x97, 0x61, 0xe7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x11, 0x83, 0x9d, 0x07, 0xad, 0xb3, 0xdc, 0x1f, 0x9a, 0xbf, 0x1c, 0x8f, 0x8f, 0x43, 0x87, 0x46, 0x2d, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xd3, 0x14, 0x3b, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0x34, 0x76, 0x0e, 0x92, 0x01, 0xf1, 0xfe, 0xde, 0x77, 0x30, 0x0c, 0x7d, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xfc, 0xc7, 0xce, 0x83, 0x74, 0x90, 0xee, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x2c, 0xd9, 0x39, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x56, 0x76, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x12, 0x66, 0xe7, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x19, 0x9b, 0x9d, 0x07, 0xcd, 0x0e, 0xac, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x78, 0x67, 0xe7, 0x41, 0xc9, 0xd0, 0x74, 0x1c, 0x3a, 0xa4, 0xe1, 0x06, 0xd9, 0x06, 0x11, 0xd5, 0x07, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x33, 0x68, 0xe7, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa5, 0xa3, 0x9d, 0x07, 0xcd, 0x0e, 0xac, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x9d, 0x69, 0xe7, 0x41, 0xc9, 0xd0, 0x74, 0x1c, 0x3a, 0x74, 0xd0, 0x38, 0x34, 0x7f, 0x39, 0x1e, 0x1f, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x5d, 0xed, 0x1c, 0x04, 0x8b, 0x1b, 0x44, 0x74, 0xfe, 0xcb, 0x41, 0x51, 0x2d, 0xb8, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x74, 0x6f, 0xe7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xe1, 0xc8, 0x9d, 0xc3, 0x2e, 0xdc, 0x06, 0x31, 0x7e, 0x01, 0x73, 0x68, 0xa8, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x75, 0xcf, 0x9d, 0x83, 0x6c, 0x0d, 0x79, 0xec, 0xc5, 0x41, 0xb0, 0x41, 0x73, 0x93, 0x40, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x1a, 0xc2, 0x04, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x71, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x1c, 0xbc, 0x9c, 0xba, 0x73, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x49, 0x77, 0x8e, 0x07, 0x2f, 0xa7, 0xee, 0x3c, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0x61, 0x77, 0x1e, 0x4e, 0xb1, 0x61, 0x17, 0x6e, 0x83, 0xe8, 0x7e, 0x7e, 0x39, 0x34, 0xd4, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xfc, 0xee, 0xce, 0x0d, 0x31, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x19, 0xbc, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x0b, 0xc7, 0x3b, 0x0f, 0xa2, 0xfb, 0xf9, 0x65, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xc3, 0xcc, 0x3b, 0x0f, 0xce, 0xea, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0xa5, 0x77, 0x1e, 0x2c, 0x84, 0xd9, 0x1f, 0x76, 0xe1, 0x36, 0x88, 0x81, 0xdf, 0x97, 0x43, 0x43, 0x9d, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x80, 0xef, 0x1c, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xab, 0xe5, 0x3b, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0xd6, 0x77, 0x1e, 0x3c, 0x0c, 0xef, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xc2, 0xef, 0x3c, 0x38, 0xb1, 0xdc, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x0e, 0xfe, 0xce, 0x43, 0x23, 0xc1, 0xe3, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0x06, 0x78, 0x0e, 0x82, 0x85, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x52, 0x02, 0xcf, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xec, 0xc0, 0x73, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x50, 0xf0, 0x1c, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xa3, 0x19, 0x3c, 0x0f, 0x4e, 0x2c, 0xf7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x3e, 0x78, 0x0e, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x97, 0x84, 0xe7, 0xa1, 0x91, 0xe0, 0x61, 0x7d, 0x73, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xa8, 0xc2, 0x73, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0xbf, 0xf0, 0x3c, 0x38, 0x93, 0xa0, 0x1f, 0xd6, 0x37, 0x0f, 0xe9, 0xdc, 0xc3, 0xd1, 0xbe, 0x86, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xbe, 0xe1, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa1, 0x1e, 0x9e, 0xe3, 0xc1, 0x5b, 0x42, 0x3c, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xa9, 0xc4, 0xf3, 0x10, 0xcd, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x33, 0x51, 0x3c, 0x0f, 0xe3, 0x72, 0x88, 0xe1, 0xb0, 0x1b, 0x8c, 0x7a, 0xc9, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xdf, 0x8a, 0xe7, 0x86, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xe4, 0xe2, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xfd, 0x30, 0x9e, 0x07, 0x31, 0xf0, 0xfb, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xd5, 0x33, 0x9e, 0x87, 0x46, 0x82, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xc7, 0xda, 0x78, 0x1e, 0x9c, 0x58, 0xee, 0x07, 0xd9, 0x1a, 0xb4, 0x05, 0xb2, 0xb2, 0x21, 0x86, 0x83, 0x60, 0x83, 0xe6, 0x26, 0x81, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x34, 0x84, 0x09, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xe2, 0x86, 0x89, 0x5b, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x1c, 0xbc, 0x25, 0xc4, 0x73, 0xc3, 0xc4, 0xad, 0xa1, 0x98, 0xae, 0x86, 0x19, 0x5a, 0xc3, 0xc4, 0x6d, 0x98, 0xce, 0x0d, 0x33, 0xb4, 0x86, 0x19, 0xda, 0x20, 0xba, 0x1b, 0x2f, 0x36, 0x9c, 0x08, 0x1b, 0x44, 0x77, 0xe3, 0xc5, 0x06, 0x8b, 0xd9, 0xa0, 0x0e, 0x9e, 0x20, 0xb4, 0xb9, 0xe1, 0x44, 0xd8, 0x20, 0x9e, 0x62, 0x61, 0x36, 0x58, 0xcc, 0x06, 0x75, 0xf0, 0xb6, 0xa5, 0xcd, 0x0d, 0x27, 0xc2, 0x06, 0xd1, 0x0c, 0x0b, 0xb3, 0xc1, 0x62, 0x36, 0xa8, 0x65, 0x96, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x79, 0x92, 0x35, 0x58, 0xa8, 0x4c, 0x75, 0xf0, 0x42, 0xc4, 0xce, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x6e, 0xed, 0xcd, 0x35, 0x7c, 0xee, 0x32, 0xf0, 0x69, 0xe4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x27, 0xf8, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x61, 0xf7, 0xe6, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x94, 0x10, 0xdf, 0x60, 0x05, 0x99, 0xfe, 0x86, 0x07, 0x25, 0x37, 0x68, 0x0a, 0x27, 0xf4, 0xe0, 0xe1, 0x1c, 0x9f, 0x07, 0xe7, 0x7a, 0x83, 0x0d, 0xcf, 0x93, 0x6c, 0x10, 0x25, 0xb5, 0x30, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xdd, 0xda, 0x9b, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x69, 0xe4, 0x9b, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x05, 0xd0, 0x47, 0x6b, 0x78, 0x50, 0x72, 0xe3, 0xd0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc7, 0xf9, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xd5, 0xe9, 0x9b, 0x07, 0x0f, 0xca, 0xe8, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x95, 0x7d, 0x73, 0xc3, 0xe7, 0x2e, 0x1b, 0xbc, 0x88, 0xd6, 0x71, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xfe, 0x7d, 0x73, 0x83, 0x52, 0x42, 0x7c, 0x83, 0x15, 0x64, 0xfa, 0x1b, 0x1e, 0x94, 0xdc, 0x60, 0xf9, 0xf1, 0xf6, 0xc1, 0xbb, 0x51, 0xae, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xa3, 0xe5, 0x37, 0x37, 0x7c, 0xee, 0xb2, 0xc1, 0x8b, 0xad, 0x57, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x33, 0xec, 0x37, 0x37, 0x7c, 0xfd, 0xb2, 0x86, 0x7f, 0x73, 0x36, 0x68, 0x64, 0x7b, 0xe0, 0xa0, 0x91, 0xed, 0x81, 0x83, 0x46, 0xb6, 0x07, 0x0e, 0x5a, 0xe3, 0x21, 0x58, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xe3, 0x7c, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xea, 0xf4, 0xcd, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0xa1, 0x91, 0xe0, 0x86, 0x37, 0xee, 0xe6, 0xe0, 0x45, 0xb4, 0x8e, 0x07, 0x0f, 0xca, 0xe8, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0x38, 0xdf, 0x5c, 0xc3, 0xe7, 0x2e, 0x1b, 0xbc, 0x88, 0xd6, 0x71, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xfe, 0x7d, 0x73, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x95, 0x7d, 0x73, 0xc3, 0xbb, 0x3d, 0x1b, 0xc4, 0xad, 0x3a, 0xc6, 0x41, 0xbb, 0x96, 0x06, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x1d, 0xe7, 0x9b, 0x1b, 0x3e, 0x77, 0xd9, 0xe0, 0xc5, 0xd6, 0x2b, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x19, 0xf6, 0x9b, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xd1, 0xf2, 0x9b, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x1b, 0x34, 0xb2, 0x3d, 0x70, 0x30, 0x32, 0x7b, 0x37, 0x58, 0x05, 0x26, 0xbb, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x68, 0x5d, 0xac, 0xe0, 0x60, 0x64, 0xf6, 0x1e, 0x2c, 0x73, 0x92, 0xdd, 0xf0, 0x41, 0xce, 0x1a, 0x2c, 0x80, 0x3e, 0x5a, 0xc3, 0x83, 0x92, 0x1b, 0x87, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xab, 0xf1, 0x37, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0xdc, 0xdf, 0x3c, 0x78, 0xec, 0x4a, 0xe7, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x69, 0xfe, 0x9b, 0x1b, 0x94, 0x12, 0xe2, 0x1b, 0xac, 0x20, 0xd3, 0xdf, 0xf0, 0xa0, 0xe4, 0x06, 0xcb, 0x8f, 0xb7, 0x37, 0xbc, 0xad, 0x73, 0xf0, 0x3a, 0xb7, 0xcd, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xa2, 0x00, 0xce, 0x0d, 0x9f, 0xbb, 0x6c, 0xf0, 0x62, 0xeb, 0x95, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x48, 0x02, 0xce, 0x83, 0x28, 0x10, 0x86, 0x39, 0x68, 0x8d, 0x87, 0x60, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x6a, 0xfc, 0xcd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x23, 0xf7, 0x37, 0x37, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x6f, 0xce, 0x86, 0x46, 0x82, 0x1b, 0xde, 0xb8, 0x9b, 0x83, 0x97, 0xf4, 0xa8, 0x1d, 0x3c, 0x76, 0xa5, 0x73, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x1a, 0x7f, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x34, 0xff, 0xcd, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x29, 0x21, 0xbe, 0xc1, 0x0a, 0x32, 0xfd, 0x83, 0x28, 0x8d, 0x86, 0x39, 0x68, 0xd7, 0xd2, 0x60, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x1a, 0x7f, 0x73, 0xc3, 0xe7, 0x2e, 0x1b, 0xbc, 0xd8, 0x7a, 0x65, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x92, 0x80, 0x73, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x28, 0x80, 0xf3, 0x20, 0xa6, 0x96, 0x61, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0x0b, 0xa0, 0x8f, 0xd6, 0xf0, 0xa0, 0xe4, 0xc6, 0xa1, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xa8, 0x03, 0xce, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x1b, 0x14, 0x38, 0x0f, 0x5e, 0xdb, 0xd3, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0xce, 0xc0, 0xb9, 0xe1, 0x73, 0x97, 0x0d, 0x1e, 0x4c, 0xc7, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x03, 0xc1, 0xb9, 0x41, 0x29, 0x21, 0xbe, 0xc1, 0x0a, 0x32, 0xfd, 0x0d, 0x0f, 0x4a, 0x6e, 0xb0, 0xfc, 0x78, 0x7b, 0xc3, 0xbb, 0x3d, 0x1b, 0xbc, 0x4c, 0x82, 0x73, 0x0d, 0x1f, 0xb5, 0x1f, 0xbc, 0xa5, 0x82, 0xb3, 0x83, 0xd6, 0x78, 0x08, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x8f, 0x3a, 0xe0, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x41, 0x81, 0x73, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x68, 0x24, 0xb8, 0xe1, 0x8d, 0xbb, 0x39, 0x78, 0xf9, 0xde, 0xe6, 0xc1, 0x6b, 0x7b, 0x3a, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xa3, 0x0e, 0x38, 0x37, 0x7c, 0xee, 0xb2, 0xc1, 0x83, 0xe9, 0xb8, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x63, 0x20, 0x38, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xcb, 0x19, 0x38, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xa5, 0x84, 0xf8, 0x06, 0x2b, 0xc8, 0xf4, 0x0f, 0xa2, 0x17, 0x1c, 0xe6, 0xa0, 0x45, 0x21, 0x82, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x52, 0x0c, 0xce, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xbb, 0x36, 0x38, 0x37, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x6f, 0xce, 0x86, 0x46, 0x82, 0x1b, 0xde, 0xb8, 0x9b, 0x83, 0x67, 0x77, 0x70, 0x6e, 0x78, 0xe3, 0xee, 0xe0, 0x6d, 0x1d, 0x9c, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xa5, 0x18, 0x9c, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x85, 0x1f, 0x9c, 0x1b, 0x14, 0x7c, 0x98, 0x6b, 0xf8, 0x37, 0x67, 0x83, 0xc6, 0x75, 0x0b, 0x0e, 0x82, 0xd2, 0xfb, 0xe0, 0x18, 0x6e, 0x70, 0xb0, 0x92, 0x4e, 0xff, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x83, 0x28, 0xa9, 0x85, 0xd9, 0x30, 0x71, 0x6b, 0x98, 0xfb, 0x81, 0x4f, 0x23, 0x37, 0xd4, 0x91, 0x35, 0xcc, 0xd0, 0x1a, 0x26, 0x6e, 0xc3, 0x74, 0x6e, 0x98, 0xa1, 0x0d, 0xe2, 0x29, 0x16, 0x66, 0xc3, 0x89, 0xb0, 0x41, 0x3c, 0xc5, 0xc2, 0x6c, 0xb0, 0x98, 0x0d, 0xea, 0xe0, 0x95, 0x20, 0x9f, 0x1b, 0x4e, 0x84, 0x0d, 0x62, 0xe2, 0x1d, 0x66, 0x83, 0xc5, 0x6c, 0x50, 0xcb, 0x2c, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xf3, 0x24, 0x6b, 0xb0, 0x50, 0x99, 0xea, 0xa0, 0x95, 0x9c, 0xd0, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xfc, 0xa1, 0xcf, 0x35, 0x7c, 0xee, 0xb2, 0xc1, 0x9b, 0x41, 0x3e, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x03, 0x94, 0x3e, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x73, 0x8d, 0x3e, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xa5, 0x84, 0xf8, 0x06, 0x2b, 0xc8, 0xf4, 0x0f, 0x5e, 0x67, 0x5e, 0x7d, 0x70, 0xae, 0x37, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0x71, 0x23, 0x0f, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x3f, 0xf4, 0xb9, 0xe1, 0x73, 0x97, 0x0d, 0x1e, 0x42, 0xb2, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x02, 0xf5, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0xcd, 0xf4, 0xb9, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x25, 0xc4, 0x37, 0x58, 0x41, 0xa6, 0xbf, 0xe1, 0x6d, 0x9d, 0x83, 0x67, 0x90, 0x6c, 0x1e, 0x1c, 0x40, 0x93, 0x0e, 0x56, 0xd2, 0xe9, 0x1f, 0x4e, 0xb1, 0xc3, 0x29, 0x76, 0x10, 0xc3, 0xf1, 0x30, 0x1b, 0x8a, 0xe9, 0x06, 0xb1, 0x09, 0x0b, 0xb3, 0x61, 0xe2, 0xd6, 0x50, 0xc7, 0x37, 0xbc, 0x7c, 0x77, 0x10, 0x95, 0xc5, 0x30, 0x1b, 0x26, 0x6e, 0x0d, 0x73, 0xbf, 0xc1, 0x8b, 0x68, 0x1d, 0x37, 0xd4, 0x91, 0x35, 0xcc, 0xd0, 0x1a, 0x26, 0x6e, 0xc3, 0x74, 0x1e, 0x44, 0x77, 0xe3, 0xc5, 0x86, 0x13, 0x61, 0x83, 0x98, 0xec, 0x87, 0xd9, 0x60, 0x31, 0x1b, 0xd4, 0x32, 0xcb, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0x0f, 0xb9, 0x9d, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x4b, 0xe4, 0x39, 0x78, 0xab, 0x0e, 0xcf, 0xc1, 0x4a, 0x3a, 0xfd, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x0e, 0xe2, 0xe1, 0x1f, 0x66, 0xc3, 0xdc, 0x6f, 0xf0, 0x62, 0xeb, 0x95, 0x83, 0x56, 0x14, 0xfe, 0x37, 0xd4, 0x91, 0x35, 0xcc, 0xd0, 0x06, 0xd1, 0x0c, 0x0b, 0xb3, 0xe1, 0x44, 0xd8, 0x20, 0x9a, 0x61, 0x61, 0x36, 0x58, 0xcc, 0x06, 0xb5, 0xcc, 0xb2, 0xe1, 0x13, 0x9b, 0x35, 0x3c, 0x4f, 0xb2, 0x06, 0x0b, 0x95, 0xa9, 0x0e, 0x5e, 0x2e, 0x98, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xde, 0x20, 0xba, 0xb9, 0x86, 0xcf, 0x5d, 0x36, 0x78, 0x11, 0xad, 0xe3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xfe, 0xe9, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x2d, 0xe9, 0xe6, 0x86, 0x77, 0x7b, 0x36, 0x88, 0x5b, 0x75, 0x8c, 0x83, 0x73, 0xbd, 0xc1, 0x86, 0xe7, 0x49, 0x36, 0x88, 0x17, 0x82, 0x98, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x06, 0xd1, 0xcd, 0x35, 0x7c, 0xee, 0xb2, 0xc1, 0x63, 0x6c, 0xec, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x2b, 0x5c, 0x37, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xa3, 0x55, 0x37, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xa5, 0x84, 0xf8, 0x06, 0x2b, 0xc8, 0xf4, 0x0f, 0x5e, 0x39, 0xea, 0x79, 0xd0, 0x1a, 0x0f, 0xc1, 0x86, 0xe7, 0x49, 0x36, 0x88, 0x17, 0x82, 0x98, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x06, 0xd1, 0xcd, 0x35, 0x7c, 0xee, 0xb2, 0xc1, 0x4b, 0x7a, 0xd4, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x6b, 0x68, 0x37, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xdb, 0x61, 0x37, 0x37, 0xbc, 0xdb, 0xb3, 0x06, 0xa5, 0x84, 0xf8, 0x06, 0x2b, 0xc8, 0xf4, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0xd3, 0x6c, 0x37, 0xd7, 0xf0, 0x51, 0xfb, 0xc1, 0x63, 0x72, 0x37, 0xd7, 0xf0, 0x51, 0xfb, 0xc1, 0x1b, 0x78, 0x37, 0x3b, 0x68, 0xd7, 0xd2, 0x60, 0xc3, 0xf3, 0x24, 0x1b, 0xc4, 0x0b, 0x41, 0xcc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x83, 0xe8, 0xe6, 0x86, 0xcf, 0x5d, 0x36, 0x78, 0x30, 0x1d, 0xd7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x09, 0xf4, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x38, 0xf3, 0xe6, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x94, 0x10, 0xdf, 0x60, 0x05, 0x99, 0xfe, 0x86, 0x77, 0x7b, 0x36, 0x78, 0x96, 0xf4, 0xe6, 0x1a, 0x3e, 0x6a, 0x3f, 0x78, 0x48, 0xf5, 0x66, 0x07, 0xcd, 0x7b, 0x1a, 0x1c, 0xac, 0xa4, 0xd3, 0x3f, 0x9c, 0x62, 0x87, 0x53, 0xec, 0x20, 0x76, 0x07, 0x62, 0x0e, 0x42, 0x00, 0xfc, 0x38, 0x74, 0x1c, 0x3a, 0x88, 0x1a, 0x54, 0x98, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x0b, 0xfe, 0x3b, 0x0f, 0x31, 0x1c, 0x64, 0x6b, 0x68, 0xbf, 0x3e, 0xdc, 0x06, 0x6f, 0xe8, 0x51, 0x3b, 0x34, 0xd4, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x8e, 0xc7, 0x73, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xfa, 0xf1, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x1f, 0xe4, 0x79, 0xf0, 0x30, 0xbc, 0x8b, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x95, 0xc8, 0x73, 0x82, 0x60, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x44, 0x24, 0xcf, 0x43, 0x27, 0xb5, 0xe3, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0x38, 0x79, 0x0e, 0x82, 0x85, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x88, 0x28, 0xcf, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x79, 0xca, 0x73, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xb4, 0xf2, 0x1c, 0x6e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x7b, 0xb2, 0x3c, 0x0f, 0xa2, 0x9b, 0x23, 0x66, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x08, 0x2e, 0xcf, 0x61, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xf6, 0xf2, 0x3c, 0x74, 0x52, 0x3b, 0xac, 0x6f, 0x2e, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x86, 0x79, 0x0e, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x69, 0x64, 0x9e, 0x07, 0x67, 0x12, 0xf4, 0xc3, 0xfa, 0xe6, 0x21, 0x9d, 0x7b, 0x38, 0xda, 0xd7, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xa3, 0xce, 0x3c, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x41, 0xcd, 0x73, 0x3c, 0x78, 0x26, 0x9b, 0xe7, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0xc2, 0x79, 0x1e, 0xa2, 0x39, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xe6, 0x9c, 0xe7, 0x61, 0x5c, 0x0e, 0x31, 0x1c, 0x76, 0x83, 0x51, 0x2f, 0xb9, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0xb3, 0xf3, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xaa, 0x3c, 0xcf, 0x43, 0x0c, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x82, 0xcf, 0xf3, 0xe0, 0x0d, 0x3d, 0x6a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xef, 0xe7, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb1, 0x81, 0x9e, 0x87, 0x4e, 0x6a, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x12, 0x7a, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x3a, 0xf4, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xab, 0xe8, 0x79, 0xd0, 0xe2, 0x4a, 0xd4, 0x20, 0x19, 0xb8, 0xfd, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xc2, 0x46, 0xcf, 0x43, 0x13, 0xae, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x07, 0xe9, 0x79, 0xe8, 0xa4, 0x36, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xab, 0x26, 0x3d, 0x0f, 0x89, 0xa9, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xbd, 0x9e, 0x9e, 0xc3, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xf2, 0xaa, 0xe7, 0x21, 0x9a, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x1e, 0xea, 0x79, 0xc8, 0xda, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x4a, 0xa9, 0xe7, 0xa1, 0x87, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x7d, 0xa8, 0x9e, 0x87, 0x8e, 0x61, 0x83, 0x6c, 0x0d, 0xda, 0x02, 0x59, 0xd9, 0x10, 0xc3, 0x41, 0xb0, 0x41, 0x73, 0x93, 0x40, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x1a, 0xc2, 0x04, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x71, 0xc3, 0xc4, 0xad, 0xa1, 0x8e, 0x6f, 0x78, 0xf9, 0x6e, 0x0e, 0x9e, 0xc9, 0xe6, 0xb9, 0x61, 0xe2, 0xd6, 0x50, 0x4c, 0x37, 0x88, 0x4d, 0x58, 0x98, 0x0d, 0x13, 0xb7, 0x41, 0x5c, 0xb9, 0xc3, 0x6c, 0x28, 0xa6, 0x1b, 0xc4, 0x26, 0x2c, 0xcc, 0x86, 0x89, 0x5b, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0x64, 0x59, 0xc3, 0x6c, 0x98, 0xb8, 0x35, 0xd4, 0x91, 0x35, 0xcc, 0xd0, 0x06, 0xd1, 0x0c, 0x0b, 0xb3, 0xe1, 0x44, 0xd8, 0x20, 0x9a, 0x61, 0x61, 0x36, 0x58, 0xcc, 0x06, 0xb5, 0xcc, 0xb2, 0xe1, 0x13, 0x9b, 0x35, 0x3c, 0x4f, 0xb2, 0x06, 0x0b, 0x95, 0xa9, 0x0e, 0x5e, 0xe7, 0xb6, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x46, 0xc2, 0xb9, 0x86, 0xcf, 0x5d, 0x36, 0x78, 0x8c, 0x8d, 0xdd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x9b, 0x0a, 0xe7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xc9, 0x09, 0xe7, 0x86, 0x77, 0x7b, 0x36, 0x88, 0x4f, 0x85, 0x98, 0x83, 0x73, 0xbd, 0xc1, 0x86, 0xe7, 0x49, 0x36, 0x88, 0x47, 0xa1, 0x98, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x32, 0x12, 0xce, 0x35, 0x7c, 0xee, 0xb2, 0xc1, 0x1b, 0x83, 0x37, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x2b, 0x61, 0x38, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x93, 0x5a, 0x38, 0x0f, 0x9a, 0x28, 0x5d, 0xd8, 0xf0, 0x3c, 0xc9, 0x06, 0xf1, 0x28, 0x14, 0xb3, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x46, 0xc2, 0xb9, 0xe1, 0x73, 0x97, 0x0d, 0x5a, 0x38, 0x1d, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xb5, 0xe1, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x9b, 0xe1, 0xdc, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x12, 0xe2, 0x1b, 0xac, 0x20, 0xd3, 0x3f, 0x78, 0x8d, 0xaa, 0xe7, 0x41, 0x8b, 0x42, 0x04, 0x07, 0x2b, 0xe9, 0xf4, 0x0f, 0xa7, 0xd8, 0xe1, 0x14, 0x3b, 0x88, 0x0d, 0xa1, 0x98, 0x83, 0xe8, 0x0b, 0x88, 0x39, 0x88, 0x1a, 0x81, 0x98, 0x83, 0x10, 0x00, 0x3f, 0x0e, 0x1d, 0x87, 0x0e, 0xe2, 0x5b, 0x25, 0x66, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb8, 0x25, 0xcf, 0x43, 0x0c, 0x8f, 0xc7, 0xc7, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x03, 0x8c, 0x36, 0x0f, 0x4e, 0x2b, 0xb8, 0x2b, 0x08, 0x16, 0x0f, 0x9e, 0x95, 0xd2, 0xb8, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x4c, 0xd6, 0x73, 0xd8, 0x0d, 0x96, 0x58, 0x5a, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x42, 0xad, 0xe7, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0xe3, 0x7a, 0x1e, 0x2c, 0xda, 0xb4, 0x1a, 0x64, 0x1b, 0x44, 0xc2, 0x54, 0xcc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xe1, 0xbe, 0x9e, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0xee, 0x7a, 0x0e, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x1a, 0xec, 0x79, 0xf0, 0x7e, 0x84, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x23, 0xf6, 0x3c, 0x78, 0x4b, 0x01, 0xd1, 0x71, 0xe8, 0xd0, 0x41, 0x63, 0xd8, 0x0d, 0x1e, 0xb4, 0x35, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x61, 0xc7, 0x9e, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xb2, 0xec, 0x79, 0xf0, 0xd2, 0xb0, 0xa1, 0x41, 0xb6, 0x41, 0xf4, 0x68, 0xc5, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x13, 0xed, 0x39, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x7d, 0xb3, 0xe7, 0x61, 0x5c, 0x86, 0xdd, 0xe0, 0x85, 0xd3, 0x41, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x40, 0xed, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x69, 0xd9, 0x9e, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0xbc, 0x76, 0x3a, 0x68, 0x83, 0xd7, 0x4e, 0x07, 0x1d, 0x4e, 0xb1, 0x41, 0xb6, 0x41, 0x14, 0x79, 0xc5, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x15, 0xb8, 0xe7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x0d, 0xdd, 0x9e, 0x07, 0x31, 0x58, 0x69, 0x31, 0xc8, 0x36, 0x88, 0x22, 0xaf, 0x98, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xeb, 0xcc, 0x3d, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x19, 0xf7, 0x1c, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x28, 0xdd, 0xf3, 0xe0, 0x55, 0x4d, 0x42, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x04, 0xbb, 0xe7, 0xc1, 0xe3, 0xd2, 0xb9, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xbd, 0xbb, 0xe7, 0x20, 0x19, 0xe8, 0xff, 0x77, 0xc8, 0x56, 0x1c, 0x87, 0x0e, 0x2d, 0xc0, 0x86, 0xdd, 0xe0, 0x99, 0xde, 0x41, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x27, 0xef, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x59, 0xf8, 0x9e, 0xc3, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x3c, 0xd9, 0x3b, 0x68, 0x83, 0x27, 0x7b, 0x07, 0x1d, 0x4e, 0xb1, 0x41, 0xb6, 0x41, 0x14, 0xa7, 0xc5, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x13, 0xf0, 0x39, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xff, 0xbe, 0xe7, 0xc1, 0x1b, 0x7e, 0xce, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x25, 0xf8, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb6, 0x84, 0xcf, 0x83, 0x87, 0x99, 0x6a, 0x0d, 0xb2, 0x0d, 0x62, 0xca, 0x2d, 0x66, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xc6, 0x87, 0xcf, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x83, 0x18, 0x3e, 0x07, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x92, 0xf8, 0x3c, 0x78, 0x23, 0x40, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0x54, 0x7c, 0x1e, 0x3c, 0xea, 0x57, 0xeb, 0x38, 0x74, 0xe8, 0xa0, 0x71, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x4c, 0x8c, 0xcf, 0xe1, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xcc, 0xe3, 0x73, 0x71, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xeb, 0x46, 0x3e, 0x07, 0xc1, 0x06, 0xad, 0x5c, 0x97, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x78, 0xf0, 0xf6, 0x92, 0xcf, 0x43, 0xaa, 0xe6, 0x38, 0x74, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x10, 0x6c, 0x50, 0x50, 0x8b, 0x2d, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x50, 0xf9, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xf6, 0x97, 0xcf, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xa3, 0x59, 0x3e, 0x07, 0xc1, 0x06, 0x2f, 0xcc, 0x4f, 0x3b, 0xa4, 0xe1, 0x06, 0xd9, 0x06, 0x31, 0xaa, 0x17, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xe6, 0xcd, 0xe7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x41, 0x33, 0x9f, 0x07, 0x4b, 0x69, 0xa3, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xd5, 0xf3, 0x39, 0x08, 0x36, 0x68, 0xe5, 0xba, 0x7c, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0xc7, 0x83, 0x57, 0xff, 0x7c, 0x1e, 0x52, 0x35, 0xc7, 0xa1, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x3f, 0xf4, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x01, 0x4a, 0x9f, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xe7, 0x1a, 0x7d, 0x1e, 0x3c, 0x78, 0xed, 0x67, 0x90, 0x6d, 0x10, 0x35, 0x83, 0x31, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x40, 0x7d, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xcd, 0xf4, 0x79, 0x10, 0x91, 0x0c, 0x24, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x35, 0x1b, 0x9f, 0x07, 0xe3, 0x0e, 0x6a, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xab, 0xae, 0x3e, 0x07, 0xc1, 0x06, 0x0f, 0xdb, 0xeb, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xf1, 0xe0, 0xd5, 0x59, 0x9f, 0x87, 0x54, 0xcd, 0x71, 0xe8, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x89, 0x5c, 0x9f, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0x7d, 0x7d, 0x2e, 0x2e, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x97, 0x7d, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xba, 0xdb, 0xe7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x9d, 0x6b, 0x9f, 0x07, 0xd1, 0x65, 0x82, 0x31, 0xc8, 0x36, 0x88, 0x08, 0xc7, 0x98, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x2b, 0xea, 0x3e, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x2f, 0x8e, 0xfb, 0x1c, 0x04, 0x1b, 0xc4, 0xc3, 0xf9, 0xcb, 0xa1, 0x83, 0xc6, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xd1, 0xfb, 0x3c, 0x88, 0x67, 0x25, 0x8c, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0x04, 0x7e, 0x0e, 0x82, 0x0d, 0x5a, 0xb9, 0x2e, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xf1, 0x20, 0xa1, 0x60, 0xf6, 0x90, 0xaa, 0x39, 0x0e, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x5a, 0xfc, 0x1c, 0x04, 0x1b, 0xda, 0xce, 0x2c, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x74, 0xfc, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x98, 0xc8, 0xcf, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xe3, 0x2a, 0x3f, 0x0f, 0x8d, 0x04, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0xc2, 0xfc, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xc1, 0xf3, 0x73, 0xf8, 0x05, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0x83, 0x7e, 0x1e, 0xc4, 0x63, 0xf5, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x3a, 0xfa, 0x79, 0xf0, 0x1a, 0x44, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x68, 0xfa, 0x39, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x2b, 0xf5, 0xf3, 0xa0, 0x61, 0x89, 0x95, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x85, 0xf5, 0x73, 0x90, 0x0c, 0x08, 0xff, 0xbb, 0x43, 0xb6, 0x62, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x57, 0xbc, 0x7e, 0x1e, 0x2c, 0x83, 0x17, 0x38, 0x0e, 0x1d, 0x87, 0x0e, 0xa9, 0x83, 0xc5, 0x41, 0xb0, 0x20, 0xdb, 0x20, 0x46, 0x32, 0x63, 0x16, 0x64, 0x1b, 0xc4, 0xa3, 0x66, 0xcc, 0x20, 0xdb, 0x20, 0xb6, 0x33, 0x63, 0x0e, 0x5d, 0xed, 0x06, 0xd9, 0x06, 0x31, 0x92, 0x19, 0x33, 0xc8, 0x36, 0x88, 0x13, 0xce, 0x98, 0x41, 0xb6, 0x41, 0xcc, 0x6d, 0xc6, 0x0c, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x3a, 0x88, 0x6a, 0xce, 0x98, 0x43, 0x07, 0x8d, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0xf1, 0x78, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xa5, 0xfd, 0x1c, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x50, 0xf7, 0xf3, 0xe0, 0x65, 0x6a, 0x3a, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x55, 0xef, 0xe7, 0x20, 0xd8, 0xa0, 0x95, 0xeb, 0xf2, 0x83, 0xa5, 0x7b, 0x53, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x02, 0xfc, 0x39, 0x08, 0x36, 0x68, 0xe5, 0xba, 0xfc, 0xe0, 0x5d, 0xe1, 0x56, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xd0, 0xa1, 0x51, 0xcb, 0xa1, 0xf9, 0xcb, 0xf1, 0xf8, 0x78, 0x3c, 0x08, 0x36, 0x58, 0x16, 0x06, 0xb3, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x67, 0xf9, 0x73, 0xd8, 0x0d, 0x82, 0x61, 0x7f, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x1b, 0x9c, 0x3f, 0x87, 0x5d, 0xd8, 0x0d, 0x82, 0x61, 0x7f, 0x61, 0x37, 0x28, 0x89, 0x0e, 0x0f, 0x5a, 0x5f, 0x73, 0x3f, 0x1c, 0xed, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x0c, 0xfd, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x89, 0xd3, 0x9f, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x64, 0xfd, 0x79, 0xf0, 0xd8, 0x1d, 0xa7, 0x41, 0xb6, 0x41, 0x74, 0xd6, 0xc6, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x8f, 0xfd, 0x79, 0xf0, 0xca, 0x74, 0x9f, 0x41, 0xb6, 0x41, 0x94, 0xd3, 0xc6, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xc2, 0xf7, 0xe7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xc5, 0xdb, 0x9f, 0x07, 0x8f, 0x5f, 0x36, 0x1a, 0x64, 0x1b, 0x44, 0x39, 0x6d, 0xcc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x29, 0xe5, 0x9f, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0x87, 0x7f, 0x0e, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x7f, 0xfe, 0x79, 0xf0, 0x46, 0x80, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x5e, 0xf5, 0xcf, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x86, 0xff, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xb0, 0xfd, 0x73, 0x10, 0x6c, 0xf0, 0x74, 0x74, 0xae, 0x43, 0x1a, 0x6e, 0x90, 0x6d, 0x10, 0x1b, 0xbf, 0x31, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0xdb, 0x7f, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x3a, 0xff, 0x39, 0x08, 0x16, 0x7e, 0x43, 0x72, 0xe9, 0x20, 0xfe, 0xd0, 0x62, 0x0e, 0x1d, 0x34, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc7, 0xa1, 0x43, 0x0b, 0xb0, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xc3, 0xf3, 0x3f, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x94, 0xff, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xb3, 0xfe, 0x3f, 0x87, 0x5d, 0xb8, 0x0d, 0xc6, 0x4f, 0xd7, 0xa1, 0x95, 0xf8, 0x41, 0x62, 0xba, 0xcf, 0x20, 0xdb, 0x20, 0x8e, 0x8b, 0x63, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x10, 0x00, 0x3d, 0x78, 0x65, 0xba, 0xcf, 0x20, 0xdb, 0x20, 0x1e, 0x8a, 0x63, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x04, 0x01, 0x74, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x6e, 0x02, 0xd0, 0x83, 0xc7, 0x2f, 0x1b, 0x0d, 0xb2, 0x0d, 0xe2, 0xa1, 0x38, 0x66, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x83, 0x1c, 0x40, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x57, 0x00, 0x3d, 0x78, 0x49, 0x38, 0xd7, 0x20, 0xdb, 0x20, 0x1e, 0x8a, 0x63, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0xa3, 0x00, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x24, 0x02, 0x74, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x9e, 0x0b, 0xd0, 0x83, 0x37, 0x02, 0x94, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0x68, 0x80, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x06, 0x08, 0xe8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xcd, 0x1c, 0xa0, 0x07, 0xd1, 0x11, 0x1c, 0x33, 0xc8, 0x36, 0x88, 0xf8, 0xe8, 0x98, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x73, 0x4c, 0x40, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0x17, 0x01, 0x3d, 0x88, 0xbd, 0xe1, 0x98, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x71, 0xe8, 0xd0, 0xfd, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x98, 0x14, 0xd0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x78, 0x01, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x7b, 0x05, 0xf4, 0xe0, 0x19, 0x05, 0x43, 0x83, 0x6c, 0x83, 0x58, 0xb8, 0x8e, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x90, 0x1a, 0xd0, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xc3, 0x63, 0x40, 0x0f, 0x62, 0xb0, 0xd2, 0x62, 0x90, 0x6d, 0x10, 0x0b, 0xd7, 0x31, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xb3, 0x03, 0x3a, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xff, 0x0d, 0xe8, 0x20, 0xd8, 0x20, 0x32, 0x87, 0x63, 0x0e, 0x9d, 0x88, 0x06, 0xd9, 0x06, 0xb1, 0x70, 0x1d, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x55, 0x10, 0xe8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x11, 0x3e, 0xa0, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x87, 0x10, 0x81, 0x1e, 0xbc, 0x1f, 0xa1, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xe3, 0x8d, 0x40, 0x87, 0xdf, 0xe0, 0xf0, 0x6b, 0x7b, 0x70, 0x7e, 0xa2, 0x3d, 0x0e, 0x1d, 0xba, 0x1f, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x04, 0x8b, 0x1b, 0x14, 0xd5, 0x82, 0x07, 0xc5, 0xb4, 0xe0, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x1a, 0x27, 0xd0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0xa0, 0x02, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x1a, 0x0a, 0xf4, 0x20, 0xd2, 0x0a, 0x53, 0x06, 0xd9, 0x06, 0xb1, 0x48, 0x1e, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xbd, 0x5a, 0xa0, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0x5d, 0x81, 0x0e, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0xd8, 0x05, 0x7a, 0xf0, 0x46, 0x80, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xe2, 0x1c, 0x3c, 0x87, 0x26, 0x6d, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x0f, 0x18, 0xe8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0x99, 0x81, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x2f, 0x06, 0x7a, 0xf0, 0x8c, 0x82, 0xa1, 0x41, 0xb6, 0x41, 0xe4, 0xad, 0xc7, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x91, 0x06, 0x3a, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0xf8, 0x05, 0xc9, 0x80, 0xa1, 0x7f, 0x77, 0x3c, 0x3f, 0x28, 0x19, 0x9a, 0x0e, 0x1d, 0x34, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc7, 0xa1, 0x43, 0x53, 0xa0, 0x41, 0xb6, 0x41, 0x2c, 0x92, 0xc7, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x76, 0x1c, 0xe8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x75, 0x6e, 0xa0, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x77, 0xd2, 0x81, 0x1e, 0xbc, 0xaa, 0x49, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0xbb, 0x03, 0x3d, 0x78, 0x75, 0xb8, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x23, 0xff, 0x61, 0x71, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x8e, 0x1e, 0xe8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0x01, 0x82, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xcf, 0x07, 0x3a, 0x08, 0x36, 0x78, 0x58, 0x38, 0xd7, 0x21, 0x0d, 0x37, 0xc8, 0x36, 0x88, 0x44, 0xfb, 0x98, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x33, 0x04, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x63, 0x10, 0xf4, 0x20, 0x06, 0x2b, 0x2d, 0x06, 0xd9, 0x06, 0x91, 0x68, 0x1f, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x25, 0x23, 0xe8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x49, 0x89, 0xa0, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x0e, 0x9a, 0x01, 0x4e, 0x3a, 0xb4, 0x00, 0x3b, 0x34, 0x7f, 0x39, 0x1e, 0x1f, 0x87, 0x0e, 0x9d, 0x88, 0x06, 0xd9, 0x06, 0xb1, 0x48, 0x1e, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xc9, 0x92, 0xa0, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0x3e, 0x82, 0x0e, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0x58, 0x09, 0x7a, 0xf0, 0x46, 0x80, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xc2, 0x04, 0x3d, 0x78, 0xd4, 0xaf, 0xd6, 0x71, 0xe8, 0x60, 0x09, 0xff, 0xcf, 0x20, 0xdb, 0x20, 0x16, 0xc9, 0x63, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xc9, 0x13, 0x74, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x96, 0x4d, 0xd0, 0x83, 0x68, 0x7f, 0x14, 0x19, 0x64, 0x1b, 0xc4, 0x22, 0x79, 0xcc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x35, 0xa4, 0xa0, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x37, 0x84, 0x82, 0x0e, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x6f, 0x0a, 0x7a, 0xf0, 0x7e, 0x84, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0x4d, 0x05, 0x1d, 0x7e, 0x41, 0x32, 0x70, 0xde, 0x1d, 0xcf, 0x0f, 0x9a, 0xe2, 0x5e, 0x3a, 0x0e, 0x1d, 0x34, 0x3a, 0xa1, 0x74, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x41, 0xb0, 0xc1, 0x7b, 0x6d, 0x7c, 0x16, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0xee, 0x82, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x0b, 0x0b, 0x3a, 0xec, 0x06, 0x0f, 0xe7, 0x0e, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x32, 0x5f, 0xd0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x6f, 0x20, 0x06, 0x1d, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xe0, 0x11, 0xdd, 0x41, 0x1b, 0x3c, 0xa2, 0x3b, 0xe8, 0x70, 0x8a, 0x0d, 0xb2, 0x0d, 0x62, 0xc9, 0x41, 0x66, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xd6, 0x63, 0xd0, 0x83, 0x88, 0x64, 0x20, 0x19, 0x76, 0x83, 0xd7, 0x8a, 0x07, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xc7, 0x32, 0xe8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x40, 0x83, 0x1e, 0xbc, 0xd0, 0x34, 0x6b, 0x90, 0x6d, 0x10, 0x89, 0x12, 0x32, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xf7, 0x58, 0x83, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x2f, 0x0d, 0x7a, 0x10, 0xbd, 0x26, 0x23, 0xc3, 0x6e, 0xf0, 0x36, 0xf2, 0xa0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0xc8, 0x06, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb6, 0x6f, 0xd0, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0xde, 0x49, 0x1e, 0xb4, 0xc1, 0x3b, 0xc9, 0x83, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0x20, 0x66, 0x2d, 0x64, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xcf, 0x1c, 0x74, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x88, 0x71, 0xd0, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x83, 0xd2, 0x41, 0x0f, 0x5e, 0x14, 0x42, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x09, 0xec, 0xa0, 0x07, 0xaf, 0x0e, 0x17, 0x3a, 0x0e, 0x1d, 0x9a, 0x02, 0x0d, 0xb2, 0x0d, 0x62, 0xd6, 0x42, 0x66, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x1e, 0x79, 0xd0, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xdb, 0xdd, 0x41, 0x0f, 0xe2, 0xb0, 0xf9, 0x65, 0xd8, 0x0d, 0x5e, 0x86, 0x1d, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa1, 0xf5, 0xa0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xb8, 0x0f, 0x3a, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0xc1, 0x2b, 0xb1, 0x83, 0x0e, 0x9e, 0xb1, 0xbb, 0x34, 0xc8, 0x36, 0x88, 0x66, 0x10, 0x99, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x0f, 0x0d, 0x08, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xcb, 0x1f, 0xf4, 0xe0, 0xf1, 0xcb, 0x46, 0x83, 0x6c, 0x83, 0x68, 0x06, 0x91, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xe0, 0x83, 0xd0, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xf3, 0x08, 0x42, 0x0f, 0x22, 0xda, 0x71, 0x63, 0x90, 0x6d, 0x10, 0xcd, 0x20, 0x32, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0x37, 0x84, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xa9, 0x10, 0x3a, 0x08, 0x36, 0x88, 0x90, 0xfe, 0x98, 0x43, 0xf7, 0xa3, 0x61, 0x37, 0x78, 0x9b, 0x79, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0x43, 0x84, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xbe, 0x45, 0xe8, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0xef, 0x34, 0x0f, 0xda, 0xe0, 0x9d, 0xe6, 0x41, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0x10, 0x11, 0x2a, 0x32, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xdd, 0x11, 0x3a, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xa6, 0x46, 0xe8, 0xc1, 0xe3, 0x97, 0x8d, 0x06, 0xd9, 0x06, 0x11, 0xa1, 0x22, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x00, 0x49, 0xe8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb5, 0x20, 0xa1, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x86, 0xdf, 0xa0, 0x64, 0x68, 0x3a, 0x48, 0x88, 0x01, 0x38, 0xb4, 0x00, 0x1b, 0x76, 0x83, 0x07, 0x0e, 0x07, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xf9, 0x49, 0xe8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0xb8, 0x84, 0x1e, 0x44, 0xbe, 0x73, 0xca, 0x20, 0xdb, 0x20, 0xf2, 0x63, 0x64, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xef, 0xa8, 0x09, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x3a, 0x26, 0x74, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xf2, 0x9b, 0xd0, 0x83, 0x17, 0x85, 0x10, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xab, 0x4e, 0xe8, 0xc1, 0xab, 0xc3, 0x85, 0x8e, 0x43, 0x87, 0x0e, 0x1a, 0xc3, 0x6e, 0xf0, 0xc2, 0xe9, 0xa0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0xec, 0x09, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xae, 0xa1, 0xd0, 0x83, 0x98, 0xfc, 0x8a, 0x19, 0x64, 0x1b, 0xc4, 0x4c, 0x8e, 0xcc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x35, 0x46, 0xa1, 0x07, 0x43, 0xf3, 0x77, 0xd8, 0x0d, 0x9e, 0xe9, 0x1d, 0xb4, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xfd, 0x48, 0xa1, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0xea, 0x14, 0x7a, 0x10, 0x13, 0x6b, 0x31, 0x83, 0x6c, 0x83, 0xe8, 0xe4, 0x91, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xa1, 0x2a, 0x74, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xbe, 0xa8, 0xd0, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xab, 0xaf, 0x42, 0x0f, 0x5e, 0x14, 0x42, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xa1, 0x5a, 0xa1, 0x07, 0xaf, 0x0e, 0x17, 0x3a, 0x0e, 0x1d, 0x3a, 0x68, 0x0c, 0xbb, 0xc1, 0xeb, 0xb3, 0x83, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xb2, 0x2b, 0x74, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xc3, 0xc7, 0x42, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x78, 0x89, 0x76, 0xd0, 0x06, 0x2f, 0xd1, 0x0e, 0x3a, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0xb8, 0x1e, 0x92, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x66, 0xb5, 0xd0, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x0b, 0xcf, 0x42, 0x0f, 0x62, 0xb0, 0xd2, 0x62, 0x90, 0x6d, 0x10, 0xd7, 0x43, 0x32, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0xc3, 0x85, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0xda, 0x16, 0x3a, 0x08, 0x36, 0x88, 0xcc, 0xe1, 0x98, 0x43, 0x0b, 0xb0, 0x61, 0x37, 0x78, 0x09, 0x7a, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x47, 0xcf, 0x85, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x80, 0x5e, 0xe8, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0xaf, 0x42, 0x0f, 0xda, 0xe0, 0x55, 0xe8, 0x41, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0x10, 0x31, 0x4b, 0x32, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x97, 0xf6, 0x85, 0x1e, 0x0c, 0xcd, 0xdf, 0x61, 0x37, 0x78, 0x89, 0x7a, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xb7, 0x01, 0x86, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x85, 0x61, 0xe8, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0xaf, 0x52, 0x0f, 0xda, 0xe0, 0x55, 0xea, 0x41, 0x87, 0x53, 0x6c, 0x90, 0x6d, 0x10, 0x61, 0x4f, 0x32, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x07, 0x34, 0x86, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x5e, 0x9b, 0x18, 0x3a, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xf2, 0x63, 0xe8, 0xc1, 0x8b, 0x42, 0x88, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x52, 0x32, 0xf4, 0xe0, 0xd5, 0xe1, 0x42, 0xc7, 0xa1, 0x43, 0x07, 0x8d, 0x61, 0x37, 0x78, 0xef, 0x0e, 0xc6, 0x82, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x53, 0x38, 0x43, 0x0f, 0x9e, 0x0e, 0xe4, 0x73, 0xf0, 0x70, 0x24, 0x9f, 0x61, 0x37, 0x78, 0xf7, 0x7a, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x17, 0x7c, 0x86, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x1b, 0x69, 0xe8, 0xc1, 0xc3, 0x4c, 0xb5, 0x06, 0xd9, 0x06, 0x11, 0x92, 0x25, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xd0, 0x69, 0xe8, 0xc1, 0xd0, 0xfc, 0x1d, 0x76, 0x83, 0x87, 0x2b, 0xf9, 0x2c, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x17, 0x36, 0xf4, 0xe0, 0xe9, 0x40, 0x3e, 0x07, 0xef, 0x7a, 0xf2, 0x19, 0x76, 0x83, 0xf7, 0xa6, 0x03, 0x2d, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x48, 0x37, 0xf4, 0xe0, 0xe9, 0x40, 0x3e, 0x07, 0xef, 0x04, 0x93, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xa4, 0x37, 0x74, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x23, 0x87, 0x43, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x78, 0x5c, 0x78, 0xd0, 0x06, 0x8f, 0x0b, 0x0f, 0x3a, 0x9c, 0x62, 0x83, 0x6c, 0x83, 0x38, 0xfd, 0x92, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xe1, 0x38, 0xf4, 0x60, 0x68, 0xfe, 0x1e, 0x9a, 0xbf, 0x1c, 0x8f, 0x17, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0xd3, 0x97, 0x43, 0x07, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xaf, 0x75, 0x0e, 0x3d, 0x78, 0x6f, 0x06, 0xd1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x19, 0x1d, 0x7a, 0xf0, 0xea, 0x70, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x47, 0x1d, 0x7a, 0xf0, 0x7a, 0x18, 0xa2, 0xe3, 0xd0, 0xa1, 0x51, 0xcb, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x10, 0x6c, 0x10, 0x97, 0x29, 0x26, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x7b, 0xcd, 0x43, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xbf, 0x3d, 0x74, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xb0, 0xf4, 0xd0, 0x43, 0x53, 0x92, 0x41, 0xb6, 0x41, 0x7c, 0xa9, 0xc9, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x4f, 0x7d, 0xe8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x69, 0xf1, 0xa1, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x27, 0xe0, 0x87, 0x1e, 0xbc, 0xaa, 0x49, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0xcf, 0xd6, 0x0f, 0x3d, 0x74, 0x31, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xbd, 0xfd, 0xa1, 0x07, 0xc9, 0x0c, 0x16, 0xc7, 0xa1, 0x43, 0x53, 0xa0, 0x41, 0xb6, 0x41, 0x7c, 0xa9, 0xc9, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x63, 0x81, 0xe8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xb1, 0x00, 0xa2, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0x67, 0x21, 0x88, 0x1e, 0xbc, 0xaa, 0x49, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0x59, 0x10, 0x3d, 0x48, 0x66, 0xb0, 0x18, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x11, 0x0e, 0xa2, 0x87, 0x2e, 0x26, 0xc7, 0xa1, 0x43, 0x27, 0xa2, 0x41, 0xb6, 0x41, 0x7c, 0xa9, 0xc9, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x70, 0x85, 0xe8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0x05, 0x11, 0xa2, 0x83, 0x60, 0x43, 0x8f, 0x92, 0x83, 0x25, 0xfc, 0x3f, 0x83, 0x6c, 0x83, 0xf8, 0x52, 0x93, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x8e, 0x0e, 0xd1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x43, 0x31, 0x44, 0x07, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x4f, 0xff, 0x10, 0x3d, 0x78, 0x55, 0x93, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x2b, 0x22, 0x7a, 0xf0, 0xea, 0x70, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x9e, 0x59, 0x22, 0x7a, 0xe8, 0x62, 0x72, 0x1c, 0x3a, 0x78, 0xcf, 0x61, 0xc6, 0x20, 0xdb, 0x20, 0xbe, 0xd4, 0x64, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x07, 0x8f, 0x70, 0x11, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x11, 0x45, 0x74, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x6e, 0x18, 0xd1, 0x83, 0x67, 0xe9, 0x8d, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xc5, 0x33, 0xa2, 0x87, 0x2e, 0x26, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xd6, 0x46, 0xf4, 0xe0, 0xd5, 0xe1, 0x42, 0xc7, 0xa1, 0x83, 0x46, 0x27, 0x94, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x83, 0x60, 0x71, 0x83, 0x87, 0xb0, 0x89, 0xb6, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x80, 0x47, 0x74, 0xd8, 0x0d, 0x96, 0xa0, 0x4e, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0xab, 0x8f, 0xe8, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xa7, 0x05, 0x89, 0x1e, 0xac, 0x5f, 0x9d, 0x1a, 0x64, 0x1b, 0x44, 0x92, 0xa2, 0xcc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0xf1, 0xe0, 0xe5, 0x47, 0xa2, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x83, 0xd7, 0x10, 0x89, 0x0e, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0xde, 0xaa, 0x24, 0x7a, 0xf0, 0xaa, 0x26, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xae, 0x49, 0xf4, 0xe0, 0xd5, 0xe1, 0x42, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0x0a, 0x4a, 0xf4, 0xa0, 0x64, 0x68, 0x3a, 0x0e, 0x1d, 0x3a, 0x68, 0x0c, 0xbb, 0x70, 0x8b, 0x07, 0x6f, 0x52, 0xbe, 0x3b, 0x44, 0x73, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x8b, 0xa6, 0x44, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0x3c, 0xc0, 0x4a, 0x74, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0xb8, 0x92, 0x94, 0xd9, 0x20, 0xae, 0x24, 0x65, 0x0e, 0xa7, 0xd8, 0x20, 0xdb, 0x20, 0xde, 0x25, 0x65, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x9c, 0x4b, 0x74, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xd0, 0x2c, 0xd1, 0x83, 0xc7, 0x2f, 0x1b, 0x0d, 0xb2, 0x0d, 0xe2, 0x5d, 0x52, 0x66, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x84, 0x31, 0xd1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x7b, 0xbf, 0x44, 0x07, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0xbf, 0x41, 0xc9, 0xd0, 0x74, 0x70, 0x0e, 0xfe, 0x3e, 0xb4, 0x00, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0xdd, 0x4c, 0x74, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0xc1, 0x4b, 0xd3, 0x44, 0x87, 0x5d, 0xb8, 0x0d, 0xd1, 0x1c, 0x0f, 0x1e, 0xc2, 0x26, 0xba, 0x41, 0x64, 0x70, 0xca, 0x1c, 0x4e, 0xb1, 0x41, 0xb6, 0x41, 0xdc, 0x69, 0xca, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x0f, 0x1e, 0x0f, 0x27, 0x3a, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0x3c, 0x78, 0x6b, 0x9b, 0xe8, 0x41, 0xf4, 0x9a, 0x8c, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x8f, 0xc7, 0x83, 0x60, 0x83, 0x91, 0xff, 0xb0, 0x38, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x1e, 0xbc, 0x64, 0x5b, 0x6e, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x64, 0x70, 0xb9, 0x83, 0x46, 0x92, 0xec, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0xbe, 0x71, 0xb9, 0x41, 0x32, 0x90, 0xfa, 0x3b, 0xac, 0xd0, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0x78, 0xf0, 0x22, 0x73, 0xb9, 0x83, 0x26, 0x14, 0x98, 0x8e, 0x43, 0x87, 0x46, 0x2d, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x83, 0x37, 0x94, 0xcf, 0x6f, 0x38, 0x11, 0x36, 0x78, 0xc2, 0x06, 0xc6, 0x1a, 0xce, 0x91, 0x05, 0xc1, 0xe2, 0x20, 0x58, 0xdc, 0xe0, 0x3d, 0xb7, 0x1d, 0x73, 0xf0, 0xfc, 0x23, 0x8d, 0xc5, 0x41, 0xb0, 0xc1, 0x6b, 0x10, 0x85, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0x41, 0xb0, 0x20, 0x19, 0x38, 0xef, 0x0e, 0x86, 0xa3, 0xf4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xf8, 0x45, 0x95, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x88, 0xe6, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa5, 0x6a, 0x2f, 0x1b, 0x7a, 0x08, 0x2d, 0xfc, 0xc6, 0xf3, 0x83, 0x47, 0x3b, 0xe8, 0x0c, 0xbf, 0xf1, 0x7c, 0x0d, 0x9d, 0xd4, 0x16, 0x03, 0x7f, 0xae, 0x2c, 0xcd, 0xdd, 0xa0, 0x60, 0x78, 0x3c, 0x34, 0xe1, 0x5a, 0x10, 0x2c, 0x48, 0x06, 0x42, 0x77, 0x30, 0x0c, 0x7d, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x1c, 0xea, 0x6d, 0x0f, 0x4a, 0xec, 0xc1, 0xe3, 0xd0, 0x21, 0x86, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x90, 0x5c, 0x3a, 0x0e, 0x1d, 0x8f, 0x07, 0xc1, 0xe2, 0x82, 0x60, 0x31, 0xf0, 0xe1, 0xc2, 0xee, 0xdc, 0xc5, 0x41, 0xb0, 0xb0, 0x0b, 0xb7, 0x78, 0xf0, 0x4e, 0x38, 0xd0, 0x43, 0xea, 0x60, 0x61, 0x17, 0x6e, 0x43, 0xea, 0xe0, 0x20, 0x5e, 0x62, 0x65, 0x36, 0x88, 0x97, 0x58, 0x99, 0xc3, 0x29, 0x36, 0xec, 0xc2, 0x2d, 0x06, 0xfe, 0x5a, 0x9a, 0xdb, 0x79, 0x48, 0x1d, 0x2c, 0xec, 0xc2, 0x6d, 0x48, 0x1d, 0x1c, 0xc4, 0xbe, 0xac, 0xcc, 0x06, 0xb1, 0x2f, 0x2b, 0x73, 0x38, 0xc5, 0x86, 0x5d, 0xb8, 0xc5, 0xc0, 0x27, 0xab, 0x5b, 0x2b, 0x0f, 0xa9, 0x83, 0x85, 0x5d, 0xb8, 0x0d, 0xa9, 0x83, 0x83, 0xa8, 0xa6, 0x95, 0xd9, 0x20, 0xaa, 0x69, 0x65, 0x0e, 0xa7, 0xd8, 0xb0, 0x0b, 0xb7, 0x18, 0xf8, 0x65, 0x61, 0x72, 0xec, 0x21, 0x75, 0xb0, 0xb0, 0x0b, 0xb7, 0x21, 0x75, 0x70, 0x10, 0xaf, 0xb6, 0x32, 0x1b, 0xc4, 0xab, 0xad, 0xcc, 0xe1, 0x14, 0x1b, 0x76, 0xe1, 0x36, 0xa4, 0x0e, 0x0e, 0x22, 0x0e, 0x56, 0x66, 0x83, 0x88, 0x83, 0x95, 0x39, 0x9c, 0x62, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x15, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x04, 0x1b, 0xac, 0x2e, 0x8c, 0x38, 0x48, 0xf1, 0x73, 0x18, 0x76, 0x41, 0xb0, 0x20, 0x19, 0x08, 0xca, 0xc1, 0xd9, 0xcb, 0xf8, 0xe0, 0x78, 0x03, 0xbe, 0x41, 0xbc, 0xc4, 0xca, 0x0c, 0xbb, 0x41, 0xc9, 0x83, 0xb4, 0x41, 0xec, 0xcb, 0xca, 0x0c, 0xbb, 0x20, 0xd8, 0x20, 0x1e, 0x76, 0x65, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x52, 0x07, 0x07, 0x05, 0xd9, 0xce, 0x71, 0x68, 0x83, 0xa8, 0xa6, 0x95, 0x19, 0x76, 0x41, 0xb0, 0x41, 0x3c, 0xec, 0xca, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xa4, 0x0e, 0x0e, 0x0e, 0x44, 0xfc, 0xc7, 0xa1, 0x0d, 0xe2, 0xd5, 0x56, 0x66, 0xd8, 0x05, 0xc1, 0x06, 0xf1, 0xb0, 0x2b, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0x3a, 0x38, 0x48, 0xed, 0x00, 0x39, 0x0e, 0x1d, 0x44, 0x3f, 0xae, 0xcc, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x83, 0x76, 0x4b, 0xfc, 0x87, 0x5d, 0xb8, 0x0d, 0xe2, 0x25, 0x56, 0xe6, 0x38, 0xb4, 0x21, 0x55, 0x33, 0xec, 0xc2, 0x6d, 0x10, 0xfb, 0xb2, 0x32, 0xc7, 0xa1, 0x05, 0xc1, 0x06, 0x2f, 0x7b, 0xa0, 0x39, 0x48, 0x87, 0x83, 0x18, 0x76, 0xe1, 0x36, 0x88, 0x6a, 0x5a, 0x99, 0xe3, 0xd0, 0x82, 0x60, 0x83, 0x97, 0x3d, 0xd0, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x28, 0xc8, 0x76, 0x0e, 0x7b, 0x85, 0xc7, 0xa1, 0x61, 0x17, 0x6e, 0x83, 0x78, 0xb5, 0x95, 0x39, 0x0e, 0x2d, 0x08, 0x36, 0x78, 0xd9, 0x03, 0xcd, 0x41, 0x8a, 0xbe, 0xc7, 0x20, 0x5b, 0x43, 0xfb, 0xf5, 0xe1, 0x36, 0x88, 0x38, 0x58, 0x99, 0xe3, 0xd0, 0x41, 0x0c, 0x15, 0xcb, 0x1c, 0x8f, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xc1, 0x06, 0x0f, 0x5e, 0x83, 0x3b, 0x34, 0x6a, 0xd9, 0x90, 0xaa, 0x19, 0x76, 0x43, 0x2f, 0x98, 0x0d, 0x31, 0x3c, 0x48, 0x18, 0x7d, 0x38, 0x1e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x76, 0x41, 0xb0, 0x41, 0xbb, 0x25, 0xfe, 0x07, 0x91, 0x6a, 0x2c, 0xb3, 0x41, 0xd4, 0x25, 0xcb, 0x1c, 0x52, 0x07, 0xc7, 0xe3, 0xc5, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xc1, 0x06, 0x8f, 0x61, 0xa0, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x50, 0x90, 0xed, 0x1c, 0x52, 0x35, 0xc7, 0xa1, 0x61, 0x17, 0x04, 0x1b, 0xb4, 0x63, 0x7d, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0x3a, 0x38, 0x34, 0x9e, 0x3f, 0x0e, 0x2d, 0x08, 0x16, 0x24, 0x03, 0xa7, 0xdd, 0xc1, 0x49, 0xe8, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xa1, 0xde, 0xf6, 0xb0, 0x57, 0x78, 0x1c, 0x1a, 0x76, 0x41, 0xb0, 0x41, 0x3b, 0xd6, 0xf7, 0x07, 0x51, 0xd3, 0x2b, 0xb3, 0x20, 0x58, 0x10, 0x6c, 0x10, 0xf9, 0xcf, 0x32, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x0e, 0xf5, 0xb6, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x44, 0x1b, 0x6a, 0xc7, 0x41, 0x8a, 0xbe, 0xc7, 0x71, 0x68, 0x10, 0x6c, 0xd0, 0x72, 0x0e, 0xfe, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x0d, 0x8a, 0xe8, 0xae, 0x83, 0xd3, 0x19, 0xf2, 0x41, 0x9a, 0x9c, 0xc9, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc6, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xe2, 0x38, 0xb8, 0xd7, 0xf1, 0x6d, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x0d, 0x0a, 0xff, 0xa0, 0x83, 0xd3, 0x19, 0xf2, 0x41, 0xda, 0x8b, 0xc7, 0x71, 0xe8, 0x38, 0x34, 0x08, 0x36, 0x78, 0x20, 0xc7, 0xc1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xa8, 0xfb, 0x2c, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x14, 0x8b, 0x86, 0xdf, 0x78, 0xbe, 0x41, 0xf2, 0x10, 0xf3, 0x82, 0x60, 0xe1, 0x17, 0x24, 0x03, 0xb5, 0xea, 0xe0, 0x24, 0x74, 0x7c, 0x90, 0x6e, 0x29, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x1a, 0x99, 0x2d, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xc5, 0xa2, 0x85, 0xdf, 0x78, 0xbe, 0x20, 0xd8, 0x60, 0xe9, 0xff, 0xd8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x08, 0x0e, 0x4e, 0x67, 0xc8, 0x07, 0xb1, 0xef, 0x2c, 0x73, 0x1c, 0x3a, 0x1c, 0xed, 0x87, 0xbd, 0xc2, 0xe3, 0xd0, 0x71, 0x68, 0x41, 0xb0, 0xf0, 0x1b, 0x44, 0x3a, 0xb7, 0xcc, 0xc1, 0xb8, 0x83, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0x8d, 0xcc, 0x16, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0x62, 0xd1, 0xc2, 0x6f, 0x3c, 0x5f, 0x10, 0x6c, 0x10, 0x91, 0xe0, 0x32, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x58, 0xfa, 0x3f, 0x76, 0x30, 0xb0, 0x45, 0x0f, 0x8d, 0xe7, 0x8f, 0x43, 0x87, 0xa3, 0xfd, 0xb0, 0x57, 0x78, 0x1c, 0x3a, 0x0e, 0x6d, 0x90, 0xd2, 0x67, 0xbd, 0x20, 0xd8, 0x20, 0xa2, 0xb9, 0x65, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x44, 0x23, 0xb3, 0xc5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa1, 0x58, 0x74, 0x30, 0x96, 0x93, 0x8e, 0x43, 0xc7, 0xa1, 0x05, 0xc1, 0x06, 0xf1, 0x21, 0x2e, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0xda, 0x50, 0x3b, 0x0e, 0xd2, 0xe1, 0x20, 0x8e, 0x43, 0x87, 0x18, 0x1e, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0x05, 0xc1, 0x06, 0x8f, 0x57, 0xe6, 0x58, 0x1c, 0x84, 0x8b, 0x03, 0x91, 0xd8, 0x50, 0x47, 0xd6, 0x30, 0x43, 0x6b, 0x98, 0xb8, 0x0d, 0xd3, 0xb9, 0x61, 0x86, 0xd6, 0x30, 0x71, 0x6b, 0x98, 0xfb, 0x0d, 0xc2, 0x15, 0x61, 0x43, 0x31, 0x5d, 0x83, 0x07, 0x6f, 0x60, 0x1c, 0x3c, 0xa6, 0x32, 0x64, 0xc3, 0x0c, 0x6d, 0xf0, 0x72, 0xd0, 0x92, 0x0d, 0x27, 0xc2, 0x06, 0x2f, 0x07, 0x2d, 0xd9, 0x60, 0x31, 0x1b, 0xd4, 0x32, 0xcb, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0x11, 0xed, 0x9b, 0xb1, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xce, 0xc5, 0xb1, 0xe1, 0xeb, 0x97, 0x35, 0xfc, 0x08, 0x73, 0x70, 0xf0, 0xc8, 0xd8, 0x60, 0xa1, 0xec, 0xd3, 0x06, 0xcd, 0x74, 0x0e, 0xac, 0x41, 0xd1, 0x69, 0xbc, 0x41, 0x0b, 0xa0, 0x03, 0x6b, 0xf8, 0x11, 0x66, 0xe0, 0xe9, 0xc2, 0x70, 0xf8, 0x90, 0x3a, 0x38, 0x68, 0xab, 0x74, 0xe0, 0x60, 0x25, 0x9d, 0xfe, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x87, 0xf3, 0xf8, 0xa0, 0xd9, 0x4b, 0x88, 0x0d, 0x27, 0xc2, 0x06, 0x71, 0xd2, 0x2e, 0x73, 0xd0, 0xaa, 0x2b, 0xc4, 0x41, 0x43, 0xb0, 0x10, 0x1b, 0x3c, 0xda, 0x41, 0x67, 0x41, 0xb0, 0xc1, 0x43, 0x72, 0xa5, 0x0e, 0xde, 0x73, 0x9c, 0xb3, 0xc1, 0x83, 0x0d, 0xde, 0x16, 0x04, 0x1b, 0x3c, 0x24, 0x57, 0xea, 0xe0, 0x75, 0xda, 0x1c, 0x0b, 0x82, 0x0d, 0x1e, 0x92, 0x2b, 0x75, 0xf0, 0x66, 0x3e, 0xb5, 0x43, 0x0c, 0x8f, 0xc7, 0x1b, 0x14, 0x8a, 0x34, 0x0b, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x61, 0x17, 0x6e, 0x83, 0x78, 0xb5, 0x95, 0x39, 0x38, 0x82, 0xde, 0x2f, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0x20, 0xd8, 0x20, 0xcc, 0xd5, 0x0f, 0x1d, 0x34, 0x0e, 0xe9, 0xdc, 0xc3, 0xd1, 0x7e, 0x3c, 0x1e, 0x04, 0x1b, 0x3c, 0x5e, 0x99, 0x63, 0x71, 0x10, 0x2e, 0x0e, 0x44, 0x62, 0x43, 0x1d, 0xd9, 0x20, 0xfa, 0xdd, 0x65, 0x0e, 0xe2, 0x09, 0x5e, 0x66, 0x83, 0x47, 0x3b, 0xe8, 0x6c, 0x10, 0xb1, 0xf6, 0x32, 0x1b, 0x44, 0x36, 0xab, 0xcc, 0x41, 0x94, 0xde, 0xcb, 0x1c, 0x8f, 0x8f, 0xc7, 0x2b, 0x08, 0x36, 0x48, 0xfd, 0xc7, 0x58, 0x5c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0xb0, 0x1b, 0xd6, 0xf7, 0x16, 0x83, 0x77, 0x7b, 0x07, 0xc1, 0x06, 0xeb, 0xda, 0xc6, 0x0e, 0x1d, 0x34, 0x8e, 0xc7, 0x2b, 0x08, 0x36, 0xc4, 0x70, 0x71, 0xd8, 0x0d, 0xeb, 0x7b, 0x1b, 0x44, 0xfa, 0xbf, 0xcc, 0x20, 0x58, 0x90, 0x0c, 0xba, 0x0e, 0xc9, 0xa5, 0x43, 0x07, 0x8d, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x64, 0xe0, 0x5c, 0x39, 0x38, 0x66, 0x15, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xa4, 0x6a, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0x81, 0x81, 0x99, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x6b, 0xf3, 0xcb, 0x0e, 0xd6, 0x25, 0x9c, 0x1d, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x6e, 0x58, 0xdf, 0x5b, 0x0c, 0x3c, 0x98, 0xb6, 0x79, 0x10, 0x6c, 0xd0, 0xd4, 0x92, 0xd3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa1, 0x58, 0xb4, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x20, 0x74, 0x07, 0xc3, 0x3f, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc2, 0x43, 0x99, 0xe1, 0x37, 0x9e, 0x1f, 0x44, 0x5d, 0xb2, 0xcc, 0x71, 0x68, 0xf8, 0x8d, 0xe7, 0x63, 0xf0, 0x6d, 0xf3, 0x71, 0xe8, 0x78, 0x3c, 0x08, 0x36, 0x48, 0xfd, 0xc7, 0x58, 0x1c, 0x76, 0xe1, 0x0e, 0x4a, 0xdb, 0x9b, 0xc5, 0x83, 0x04, 0xc2, 0xcd, 0x61, 0x17, 0x04, 0x1b, 0xbc, 0x1f, 0xc7, 0xe2, 0x60, 0x20, 0x9e, 0x2d, 0x08, 0x36, 0x68, 0x6a, 0xc9, 0x69, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x50, 0x2c, 0x5a, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x98, 0x41, 0x98, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xb0, 0xf0, 0x50, 0x66, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x07, 0xaf, 0xc1, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x48, 0x0c, 0x5d, 0x38, 0x18, 0x88, 0x67, 0xc7, 0xa1, 0xe3, 0xd0, 0x41, 0xb4, 0x27, 0xcc, 0x1c, 0x87, 0x06, 0xc1, 0x06, 0x4d, 0x2d, 0x39, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x8a, 0x45, 0x1b, 0x2c, 0x4d, 0x3d, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x32, 0x88, 0x36, 0x48, 0x2e, 0x9c, 0x1e, 0x44, 0x1b, 0x0c, 0xfd, 0xd5, 0xe3, 0xf1, 0x71, 0xe8, 0x78, 0x7c, 0x3c, 0x5e, 0xc5, 0x85, 0x5f, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0xc5, 0x41, 0xb0, 0x20, 0xd8, 0x90, 0x98, 0x1a, 0x04, 0x8b, 0xc3, 0x6e, 0x30, 0x0e, 0x99, 0x36, 0x8c, 0xcb, 0x20, 0x58, 0x10, 0x2c, 0x08, 0x36, 0x68, 0xc3, 0x56, 0x60, 0x90, 0x0c, 0x14, 0xbf, 0x43, 0x5f, 0x8d, 0x83, 0xd3, 0x05, 0xf6, 0x20, 0x19, 0x32, 0x88, 0x16, 0xbc, 0x3f, 0x18, 0x03, 0x0b, 0x83, 0x68, 0x61, 0x37, 0x28, 0x30, 0xde, 0x06, 0xc1, 0x82, 0x60, 0x83, 0xa6, 0x90, 0x06, 0x0e, 0x9e, 0xbd, 0x43, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0xa4, 0x69, 0x18, 0x7e, 0xe3, 0xf9, 0x86, 0xac, 0xdd, 0xc1, 0x40, 0xbd, 0x3c, 0x0e, 0x1d, 0xcf, 0x8f, 0x6f, 0x83, 0x60, 0x0d, 0x31, 0x1c, 0x7e, 0x41, 0xb0, 0x20, 0x19, 0x68, 0xd3, 0x77, 0x70, 0xcc, 0x2a, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x10, 0xbe, 0x3b, 0x07, 0xc7, 0xac, 0xe2, 0x83, 0x85, 0xc9, 0x3f, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb0, 0x82, 0x60, 0x83, 0x78, 0xe5, 0x98, 0x39, 0x58, 0x05, 0x90, 0x75, 0x10, 0x22, 0xfe, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xd0, 0xf1, 0x6d, 0xf8, 0x05, 0xc1, 0xe2, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x10, 0x2c, 0x0e, 0xbb, 0xb0, 0x1b, 0x8c, 0x4d, 0xce, 0x0d, 0x31, 0x1c, 0x76, 0x41, 0xb0, 0xc1, 0x8b, 0x85, 0x01, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xb2, 0x76, 0x07, 0xa3, 0xd5, 0xfc, 0x38, 0x74, 0x48, 0xe7, 0x6e, 0x18, 0x97, 0x61, 0x17, 0x04, 0x1b, 0x24, 0xc7, 0x3b, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x0f, 0x06, 0x14, 0xfc, 0x71, 0x68, 0x61, 0x17, 0x04, 0x1b, 0xb4, 0x57, 0x26, 0x72, 0x10, 0xd7, 0x23, 0x33, 0x0b, 0x92, 0x21, 0x83, 0x68, 0x83, 0x52, 0x79, 0x6b, 0x10, 0x2d, 0xec, 0x06, 0x23, 0xda, 0x6e, 0x83, 0xa6, 0x78, 0x49, 0x0e, 0xe3, 0x72, 0x3c, 0x3e, 0x18, 0xf5, 0xda, 0x83, 0x64, 0xc8, 0x20, 0xda, 0xa0, 0x54, 0xde, 0x3a, 0x1e, 0x1f, 0xdf, 0x06, 0xc1, 0xe2, 0xb0, 0x1b, 0xd6, 0xf7, 0x36, 0x64, 0x2b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0x60, 0x3f, 0x08, 0x16, 0x24, 0x83, 0xbe, 0x43, 0xb6, 0xe2, 0x90, 0x86, 0x3b, 0x28, 0x6a, 0xce, 0x8e, 0x6f, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0xb0, 0x1b, 0xf2, 0x58, 0x1b, 0x62, 0x38, 0xec, 0x82, 0x60, 0x83, 0x03, 0x58, 0xf2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xbe, 0x76, 0xf8, 0x8d, 0xe7, 0xc3, 0x2f, 0x08, 0x16, 0x24, 0x03, 0xe7, 0xdd, 0xc1, 0xb9, 0xfe, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0xd8, 0xe0, 0x81, 0xcf, 0x24, 0x07, 0xaf, 0x05, 0xd2, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0xcb, 0x7e, 0x1b, 0x87, 0x34, 0xdc, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x1d, 0xd2, 0xb9, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0xb0, 0x0b, 0x77, 0xf0, 0x46, 0x60, 0x81, 0x0d, 0x31, 0x1c, 0x76, 0x41, 0xb0, 0xc1, 0x61, 0x21, 0x79, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x5f, 0x3b, 0xfc, 0xc6, 0xf3, 0xe1, 0x17, 0x04, 0x1b, 0x44, 0x0e, 0xcb, 0xcc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x78, 0x6b, 0x99, 0x39, 0xa4, 0xe1, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x21, 0x9d, 0x7b, 0x3c, 0x5e, 0x41, 0xb0, 0x41, 0x90, 0xe2, 0x0f, 0x82, 0xc5, 0x61, 0x37, 0xac, 0xef, 0x6d, 0x48, 0x2e, 0x0d, 0x82, 0x05, 0xc1, 0x82, 0x60, 0x83, 0x07, 0x3e, 0x93, 0x0c, 0x92, 0x81, 0xe2, 0x77, 0x30, 0xc8, 0x20, 0x0f, 0x69, 0xb8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x74, 0x43, 0xbe, 0x76, 0x10, 0x6c, 0x30, 0xb8, 0x2b, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xc4, 0x96, 0x29, 0xc8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x07, 0x03, 0xf5, 0xf2, 0x38, 0x74, 0x1c, 0x3a, 0x9e, 0x1f, 0xdf, 0x86, 0xdd, 0x90, 0xc7, 0xda, 0x10, 0xc3, 0x41, 0xb0, 0x41, 0x7a, 0x42, 0xca, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0xc3, 0x2f, 0x08, 0x36, 0x78, 0xb9, 0x1d, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0xb0, 0x41, 0x53, 0x48, 0x03, 0x07, 0xd1, 0x65, 0x31, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0x55, 0x75, 0xa5, 0x43, 0x1a, 0xee, 0x38, 0x74, 0x1c, 0x3a, 0x9e, 0x1f, 0x87, 0x06, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0x5a, 0xd8, 0x85, 0x5d, 0xb8, 0x83, 0xa6, 0x78, 0x49, 0x16, 0xe6, 0x10, 0xff, 0x43, 0xfc, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x07, 0x3e, 0x93, 0x1c, 0xbc, 0x74, 0xee, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x6b, 0x37, 0xfc, 0xc6, 0xf3, 0x0d, 0xe3, 0xb2, 0x20, 0x58, 0x90, 0x0c, 0x08, 0xf4, 0xbe, 0x83, 0x73, 0xfd, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xbe, 0xf6, 0xa0, 0x51, 0x3a, 0x96, 0xe3, 0xd0, 0xb0, 0x1b, 0xf2, 0x58, 0x1b, 0x62, 0x38, 0xfc, 0x06, 0xb1, 0xc1, 0x32, 0x73, 0x3c, 0x3f, 0x0e, 0x1d, 0x92, 0x4b, 0xc7, 0xe3, 0x83, 0x53, 0x18, 0xee, 0x41, 0x23, 0xdd, 0xf6, 0xc7, 0xb7, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0x1c, 0xf0, 0xd9, 0xde, 0xe6, 0xe6, 0x0d, 0x82, 0x9c, 0xbf, 0xe3, 0xf1, 0x82, 0x60, 0x83, 0x91, 0xff, 0xb0, 0x38, 0x08, 0x36, 0x24, 0xa6, 0x86, 0x5f, 0x10, 0x2d, 0xe4, 0xe0, 0x5c, 0x88, 0x7d, 0x3c, 0x1e, 0x7e, 0x41, 0xb0, 0xb8, 0x20, 0xd8, 0x10, 0xcd, 0xc5, 0x61, 0x17, 0x6e, 0xc3, 0xd1, 0x7e, 0x30, 0x26, 0xac, 0x16, 0x76, 0x43, 0xc3, 0xc5, 0xd5, 0x70, 0xb4, 0x2f, 0x08, 0x36, 0x68, 0x39, 0x07, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xa1, 0x87, 0xd0, 0x41, 0x02, 0xb6, 0xc0, 0x71, 0x68, 0x10, 0x6c, 0xd0, 0x72, 0x0e, 0xfe, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xc7, 0xb0, 0x83, 0x11, 0xe4, 0x79, 0x1c, 0x3a, 0xac, 0xfd, 0x0e, 0xb2, 0x0d, 0x1a, 0xfa, 0x8e, 0xd9, 0x90, 0x3a, 0x38, 0x18, 0x50, 0x61, 0x83, 0x6c, 0x0d, 0xed, 0xd7, 0x87, 0x3b, 0x28, 0xe8, 0x5f, 0x86, 0xdd, 0xd0, 0x70, 0x71, 0x0d, 0xa9, 0x83, 0x61, 0x37, 0x58, 0x99, 0xd7, 0xb3, 0x61, 0xed, 0xf7, 0x60, 0x40, 0x85, 0x0d, 0xb2, 0x0d, 0x1a, 0xfa, 0x8e, 0x59, 0x43, 0x0c, 0x07, 0xc1, 0x06, 0xd1, 0x3e, 0xd8, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x2c, 0x76, 0x1e, 0xf2, 0xb5, 0xc7, 0xa1, 0xc3, 0xda, 0xef, 0xf1, 0x78, 0x41, 0xb0, 0x38, 0xec, 0x06, 0xaf, 0x82, 0x25, 0x58, 0xd8, 0x0d, 0x9a, 0x20, 0x14, 0x59, 0xd8, 0x0d, 0x5a, 0x2b, 0x14, 0xd9, 0x78, 0x7e, 0x38, 0xc5, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0x40, 0xe8, 0x0f, 0xce, 0x46, 0xcf, 0x83, 0x68, 0x41, 0x3c, 0x08, 0x36, 0x48, 0x6c, 0x39, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x36, 0x5c, 0x37, 0x18, 0xf8, 0x21, 0xc3, 0x6f, 0x3c, 0xdf, 0xa0, 0x08, 0x4d, 0x38, 0xc4, 0xf0, 0x38, 0x74, 0x3c, 0x1e, 0x76, 0x83, 0x26, 0x08, 0x45, 0x16, 0x24, 0x43, 0x06, 0xd1, 0x06, 0x2f, 0x9d, 0x25, 0x18, 0x44, 0x0b, 0xe2, 0x41, 0xb0, 0x41, 0x62, 0xcb, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xb1, 0xe1, 0xba, 0xf0, 0x1b, 0xcf, 0x37, 0x28, 0x61, 0x24, 0x0e, 0x31, 0x3c, 0x18, 0xf8, 0x21, 0xc7, 0xa1, 0xe3, 0xf1, 0xb0, 0x1b, 0xb4, 0x56, 0x28, 0xb2, 0x20, 0x5a, 0xd8, 0x41, 0xb0, 0x41, 0x62, 0xcb, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xb1, 0xe1, 0xba, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x0f, 0xdc, 0x15, 0x38, 0x08, 0x23, 0xfc, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x1e, 0xb8, 0x2b, 0x70, 0x70, 0xba, 0xc0, 0x3e, 0x0e, 0x1d, 0xcf, 0x87, 0x5d, 0xb8, 0x0d, 0x4a, 0x18, 0x89, 0x83, 0x22, 0x57, 0x61, 0x61, 0x17, 0x6e, 0x83, 0x22, 0x34, 0xe1, 0xa0, 0xc8, 0x55, 0x58, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xea, 0x37, 0x18, 0x8b, 0x9d, 0x1b, 0x9c, 0x8d, 0x9e, 0x0f, 0x4a, 0x99, 0x9d, 0x41, 0xb4, 0x20, 0x1e, 0x04, 0x1b, 0x24, 0xb6, 0x9c, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xf8, 0x21, 0x07, 0x63, 0xc3, 0xf5, 0x38, 0x74, 0x3c, 0x3e, 0x88, 0x6a, 0xa9, 0x99, 0x61, 0x37, 0x88, 0x9c, 0xae, 0x99, 0x0d, 0x22, 0xc5, 0x6a, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x1b, 0xc4, 0xc7, 0xd4, 0xcc, 0x20, 0xda, 0xe0, 0xa5, 0xb3, 0x04, 0x83, 0x68, 0x41, 0x3c, 0x08, 0x36, 0x48, 0x6c, 0x39, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x36, 0x5c, 0x37, 0x88, 0xf7, 0xab, 0x99, 0x83, 0x98, 0xa7, 0x9a, 0x39, 0x0e, 0x1d, 0x8f, 0x8f, 0x6f, 0xc3, 0x2f, 0x88, 0x16, 0xa4, 0xc3, 0x2e, 0xec, 0x06, 0xcf, 0x56, 0xbd, 0x38, 0xac, 0x6f, 0x6e, 0x48, 0x6c, 0x1e, 0xc6, 0xe5, 0x78, 0x3c, 0x08, 0x36, 0x48, 0xed, 0xf6, 0x38, 0x74, 0xd0, 0x38, 0x18, 0x77, 0x50, 0x07, 0x6b, 0xf9, 0x04, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x8b, 0xc3, 0x6e, 0x10, 0x7c, 0xcc, 0x1b, 0x62, 0xb8, 0xb0, 0x1b, 0xac, 0xfd, 0xf8, 0xda, 0x90, 0xb5, 0x1b, 0x64, 0x6b, 0x68, 0xbf, 0x7e, 0xb0, 0xfe, 0xe9, 0x6b, 0xc3, 0xd1, 0xbe, 0xc1, 0x41, 0xbc, 0xfb, 0x20, 0x75, 0x7d, 0xe0, 0x60, 0xc5, 0x82, 0xce, 0xf1, 0xed, 0x78, 0x3c, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0x86, 0x18, 0x0e, 0x82, 0xc5, 0x61, 0x37, 0x18, 0x04, 0x1c, 0x0b, 0x82, 0x0d, 0x52, 0xbb, 0x3d, 0x0e, 0x8d, 0x5a, 0x86, 0x5d, 0xb8, 0x83, 0x57, 0x37, 0x57, 0x2c, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xf3, 0x05, 0xc1, 0x82, 0x64, 0x83, 0xc2, 0x3f, 0xe8, 0xe0, 0x98, 0x55, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0x6c, 0xf4, 0x7c, 0x48, 0x76, 0x1c, 0x87, 0x0e, 0x0d, 0xbf, 0x06, 0xd1, 0xc2, 0x0e, 0x82, 0x0d, 0x16, 0xbe, 0x7a, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0xb5, 0xdb, 0x63, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0xd9, 0xa0, 0x88, 0xee, 0x3a, 0x38, 0x66, 0x15, 0x1f, 0xc4, 0x6e, 0xdb, 0xcc, 0x71, 0xe8, 0x90, 0xaa, 0x39, 0x0e, 0x1d, 0x8f, 0x07, 0xd9, 0x1a, 0xda, 0xaf, 0x0f, 0xb7, 0xe1, 0x68, 0x3f, 0x08, 0x92, 0xe8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x98, 0x2f, 0x08, 0x16, 0x04, 0x1b, 0xa4, 0x76, 0x7b, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x0f, 0xde, 0x6e, 0x10, 0x71, 0x1c, 0x1a, 0x04, 0x8b, 0xc3, 0x6e, 0x58, 0xdf, 0xdb, 0x20, 0x48, 0xf1, 0x87, 0x5d, 0xd8, 0x85, 0x1e, 0x04, 0x29, 0xfe, 0xc2, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x14, 0x61, 0x13, 0x87, 0x74, 0xee, 0xe1, 0x68, 0x5f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x04, 0xff, 0xa0, 0xe4, 0x94, 0x38, 0x28, 0x6a, 0xce, 0x0e, 0xa7, 0xd8, 0xf1, 0xed, 0xd0, 0xf0, 0x6b, 0x10, 0x2d, 0xec, 0x20, 0xd8, 0x60, 0xe1, 0xab, 0xd7, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x07, 0x20, 0x44, 0x1c, 0x52, 0x35, 0xc7, 0xa1, 0xe3, 0xf1, 0xf1, 0xed, 0x78, 0x7c, 0x3c, 0x1e, 0x7e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0x60, 0x19, 0x30, 0x3a, 0xb0, 0x48, 0x18, 0xb7, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0xb0, 0x34, 0x18, 0x37, 0xb0, 0x3d, 0x18, 0x3f, 0x08, 0x16, 0x37, 0x08, 0x80, 0xfb, 0x83, 0xe7, 0xa4, 0x6f, 0x2c, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x5b, 0x83, 0x71, 0x07, 0xb1, 0xcb, 0x37, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0xac, 0x0d, 0xc6, 0x1d, 0xc4, 0x2e, 0xdf, 0xcc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0xda, 0x60, 0x48, 0x06, 0xd6, 0x06, 0xc3, 0x76, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0xac, 0x0d, 0x86, 0x68, 0x60, 0x6d, 0x30, 0xc4, 0x07, 0xb1, 0xdc, 0x2a, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0xda, 0x60, 0xc8, 0x07, 0xd6, 0x06, 0xc3, 0xe2, 0xa0, 0x14, 0x91, 0x1c, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0xb0, 0x36, 0x18, 0x26, 0x03, 0x6b, 0x83, 0x61, 0x7a, 0x30, 0x7e, 0xba, 0x8e, 0x43, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x7b, 0x83, 0x21, 0x19, 0xd8, 0x1b, 0x0c, 0xe3, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0xb0, 0x37, 0x18, 0xa2, 0x81, 0xbd, 0xc1, 0x10, 0x1f, 0xc4, 0x72, 0xab, 0xcc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x7b, 0x83, 0x21, 0x1f, 0xd8, 0x1b, 0x0c, 0x93, 0x83, 0x82, 0x34, 0x71, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0xde, 0x60, 0xd8, 0x0c, 0xec, 0x0d, 0x86, 0xed, 0xa1, 0xa1, 0xce, 0x71, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0x60, 0x71, 0x30, 0x24, 0x03, 0x8b, 0x83, 0x61, 0x3c, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x16, 0x07, 0x43, 0x34, 0xb0, 0x38, 0x18, 0xe2, 0x83, 0x58, 0x6e, 0x95, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0x60, 0x71, 0x30, 0xe4, 0x03, 0x8b, 0x83, 0x61, 0x72, 0x50, 0x90, 0x26, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x58, 0x1c, 0x0c, 0x9b, 0x81, 0xc5, 0xc1, 0xb0, 0x3d, 0x58, 0x08, 0xb3, 0x7f, 0x1c, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0xd8, 0x1c, 0x0c, 0xc9, 0xc0, 0xe6, 0x60, 0x58, 0x1c, 0x0c, 0x2f, 0x8a, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0xd5, 0xc1, 0x90, 0x0c, 0xac, 0x0e, 0x86, 0xc5, 0xa1, 0xc7, 0xce, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0xee, 0x60, 0x48, 0x06, 0x76, 0x07, 0xc3, 0x70, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0xec, 0x0e, 0x86, 0x68, 0x60, 0x77, 0x30, 0xc4, 0x07, 0xb1, 0xdc, 0x2a, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0xb0, 0x3b, 0x18, 0xf2, 0x81, 0xdd, 0xc1, 0xb0, 0x3b, 0x18, 0x6b, 0x2a, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0x60, 0x79, 0x30, 0x24, 0x03, 0xcb, 0x83, 0x61, 0x71, 0x10, 0x94, 0xde, 0xc7, 0xe3, 0x15, 0x04, 0x1b, 0x44, 0x46, 0xdf, 0xcc, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x58, 0x07, 0x8c, 0x1b, 0xd8, 0x08, 0x8c, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x58, 0x07, 0x0c, 0xc9, 0xc0, 0x3a, 0x60, 0x68, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x58, 0x07, 0x0c, 0xf1, 0xc0, 0x3a, 0x60, 0x98, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0xeb, 0x80, 0x21, 0x3a, 0x88, 0x8f, 0xd1, 0x99, 0x41, 0xb0, 0x41, 0xec, 0x99, 0x60, 0x1c, 0x24, 0x1b, 0x1a, 0x0c, 0xb2, 0x0d, 0x62, 0x1d, 0x74, 0x66, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0x60, 0x1d, 0x30, 0xec, 0x06, 0xd6, 0x01, 0xc3, 0x76, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x58, 0x07, 0x0c, 0x9b, 0x83, 0x28, 0x36, 0x9d, 0x19, 0x04, 0x1b, 0xc4, 0xfa, 0xf0, 0xcb, 0x41, 0x72, 0xf9, 0xc0, 0x20, 0xdb, 0x20, 0xd6, 0x41, 0x67, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x75, 0xc0, 0x50, 0x30, 0xb0, 0x0e, 0x18, 0x4a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x75, 0xc0, 0x30, 0x3e, 0x88, 0x35, 0xd5, 0x99, 0x41, 0xb0, 0x41, 0x3c, 0x9c, 0xbf, 0x1c, 0x9c, 0xac, 0xbb, 0x07, 0xd9, 0x06, 0xb1, 0xfa, 0x39, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0xb0, 0x0f, 0x18, 0x92, 0x81, 0x7d, 0xc0, 0xd0, 0xb1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0xb0, 0x0f, 0x18, 0xe2, 0x81, 0x7d, 0xc0, 0xb0, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0xf6, 0x01, 0x43, 0x74, 0x10, 0x61, 0xaf, 0x33, 0x83, 0x60, 0x83, 0x56, 0xae, 0xcb, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xac, 0xca, 0xa0, 0x39, 0x18, 0x44, 0x2b, 0xc7, 0xa1, 0x41, 0xb6, 0x41, 0xb4, 0xb4, 0xce, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0xec, 0x03, 0x86, 0xd9, 0xc0, 0x3e, 0x60, 0x58, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0xfb, 0x80, 0x61, 0x72, 0x10, 0xbf, 0xb3, 0x33, 0x83, 0x60, 0x83, 0x56, 0xae, 0xcb, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xac, 0xca, 0xa0, 0x39, 0x18, 0x56, 0x2b, 0xc7, 0xa1, 0x41, 0xb6, 0x41, 0xb4, 0xb4, 0xce, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0xfb, 0x80, 0x61, 0x3e, 0xb0, 0x0f, 0x18, 0x2a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x7d, 0xc0, 0x30, 0x3d, 0x88, 0x0d, 0xdc, 0x99, 0x41, 0xb0, 0x41, 0x9c, 0x60, 0xa3, 0x1c, 0x44, 0x26, 0xab, 0xc9, 0x20, 0xdb, 0x20, 0x56, 0x3f, 0x67, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x85, 0xc0, 0x90, 0x0e, 0x2c, 0x04, 0x86, 0xc5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0xb0, 0x10, 0x18, 0x92, 0x83, 0x38, 0xde, 0x9d, 0x39, 0x88, 0x66, 0x6d, 0x94, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x02, 0x61, 0xdc, 0xc0, 0x1e, 0x61, 0x88, 0x07, 0xc1, 0x06, 0x91, 0xd1, 0x37, 0xb3, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x6c, 0x10, 0xc6, 0x1d, 0xc4, 0xbb, 0xef, 0xcc, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0xb0, 0x42, 0x18, 0x77, 0x10, 0xef, 0xbe, 0x33, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0x60, 0x87, 0x30, 0x7e, 0x60, 0x89, 0x30, 0xa4, 0xc3, 0x6e, 0x90, 0xc0, 0xf5, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0xb0, 0x44, 0x18, 0x7f, 0x10, 0x4d, 0xc3, 0x33, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x4b, 0x84, 0x21, 0x18, 0x58, 0x22, 0x0c, 0xd1, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x12, 0x61, 0xc8, 0x06, 0x96, 0x08, 0x43, 0x78, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0xb0, 0x43, 0x18, 0x56, 0x03, 0x3b, 0x84, 0x61, 0x7d, 0x10, 0x94, 0xde, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x16, 0x61, 0xdc, 0x41, 0xbc, 0xfb, 0xce, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x2d, 0xc2, 0xb0, 0x19, 0xd8, 0x22, 0x0c, 0x7d, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x16, 0x61, 0xd8, 0x0e, 0x6c, 0x11, 0x86, 0xba, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x2d, 0xc2, 0x30, 0x1e, 0xd8, 0x22, 0x0c, 0x4d, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x5b, 0x84, 0x61, 0x3d, 0xb0, 0x45, 0x18, 0x0a, 0x86, 0x5f, 0xf8, 0x8d, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x16, 0x61, 0x98, 0x0d, 0x6c, 0x11, 0x86, 0xe9, 0x21, 0x55, 0x73, 0x10, 0x52, 0xe0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x5b, 0x84, 0xa1, 0x61, 0x60, 0x8b, 0x30, 0x94, 0x1c, 0x84, 0x14, 0xf8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0xb0, 0x45, 0x18, 0x5a, 0x06, 0xb6, 0x08, 0x43, 0xd1, 0xf0, 0x1b, 0x44, 0x13, 0xf4, 0xcc, 0x41, 0x50, 0x7a, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x5b, 0x84, 0xa1, 0x6a, 0x60, 0x8b, 0x30, 0xb4, 0x1d, 0x84, 0x00, 0xf8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0xb0, 0x46, 0x18, 0x77, 0x10, 0xef, 0xbe, 0x33, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0x60, 0x8d, 0x30, 0x24, 0x03, 0x6b, 0x84, 0xa1, 0x66, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x58, 0x23, 0x0c, 0xe9, 0x41, 0x4c, 0x66, 0xcf, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x35, 0xc2, 0x10, 0x0f, 0xac, 0x11, 0x86, 0xc5, 0x20, 0x19, 0x08, 0xd3, 0xc1, 0x31, 0xab, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x35, 0xc2, 0x30, 0x19, 0x58, 0x23, 0x0c, 0x9b, 0x43, 0x7f, 0xf2, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0xac, 0x11, 0x86, 0xd1, 0xc0, 0x1a, 0x61, 0x18, 0x1f, 0x04, 0x49, 0xf4, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x35, 0xc2, 0xb0, 0x1e, 0x58, 0x23, 0x0c, 0x2d, 0x07, 0x6f, 0xaa, 0xa1, 0x38, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x7b, 0x84, 0x71, 0x07, 0xf1, 0xee, 0x3b, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0xb0, 0x47, 0x18, 0x3b, 0xb0, 0x47, 0x18, 0x92, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0xb0, 0x47, 0x18, 0xa2, 0x81, 0x3d, 0xc2, 0x90, 0x1e, 0x52, 0x07, 0xc7, 0xe3, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0xfd, 0xc0, 0xb8, 0x81, 0x65, 0xc1, 0xf8, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x82, 0x60, 0xdc, 0x41, 0x04, 0xa0, 0xcf, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x2b, 0x82, 0x71, 0x07, 0x11, 0x80, 0x3e, 0x33, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x8a, 0x60, 0x48, 0x06, 0x56, 0x04, 0x43, 0xfb, 0xb0, 0x1b, 0x3a, 0x8e, 0x2c, 0xec, 0x06, 0x41, 0xaf, 0xbf, 0xb0, 0x1b, 0x8c, 0x5e, 0xac, 0x85, 0xdd, 0xa0, 0x08, 0x19, 0x5c, 0xd8, 0x0d, 0x12, 0xbb, 0x7e, 0x16, 0x76, 0x83, 0x51, 0xd0, 0xbb, 0xb0, 0x1b, 0x0c, 0xc8, 0xde, 0x85, 0xdd, 0xa0, 0x88, 0x1b, 0x5c, 0xd8, 0x0d, 0x1e, 0xc8, 0x4f, 0xb3, 0xb0, 0x1b, 0x3c, 0x7b, 0xe9, 0x66, 0x61, 0x37, 0x18, 0x9e, 0xca, 0x0b, 0xbb, 0xd0, 0x83, 0x67, 0x7e, 0x54, 0x1c, 0xd6, 0x37, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x4b, 0x82, 0x71, 0x07, 0x11, 0x80, 0x3e, 0x33, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x96, 0x04, 0x43, 0x3a, 0xb0, 0x24, 0x18, 0xf6, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0x60, 0x49, 0x30, 0xc4, 0x03, 0x4b, 0x82, 0x61, 0x72, 0xf0, 0x42, 0x51, 0x9d, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x96, 0x04, 0xc3, 0x66, 0x60, 0x49, 0x30, 0xac, 0x0e, 0x4a, 0x11, 0xc9, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x4b, 0x82, 0x61, 0x36, 0xb0, 0x24, 0x18, 0xe6, 0x87, 0x68, 0x1e, 0x87, 0x86, 0xdd, 0x60, 0xd4, 0x4b, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x2c, 0x09, 0x86, 0x8a, 0x81, 0x25, 0xc1, 0xd0, 0x71, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0xb0, 0x25, 0x18, 0x77, 0x10, 0x01, 0xe8, 0x33, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0x60, 0x4b, 0x30, 0xa4, 0x03, 0x5b, 0x82, 0xa1, 0x60, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x6c, 0x09, 0x86, 0x78, 0x60, 0x4b, 0x30, 0x4c, 0x06, 0xc9, 0xc0, 0xba, 0xdd, 0xc1, 0xf0, 0x8f, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0x60, 0x4b, 0x30, 0x6c, 0x06, 0xb6, 0x04, 0xc3, 0xec, 0xa0, 0x20, 0x4d, 0x1c, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0xb0, 0x25, 0x18, 0x76, 0x03, 0x5b, 0x82, 0x61, 0x7f, 0xe8, 0x21, 0x74, 0x1c, 0x1a, 0x76, 0x83, 0x51, 0x2f, 0xb9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0xb0, 0x25, 0x18, 0x2a, 0x06, 0xb6, 0x04, 0x43, 0xc7, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x9a, 0x60, 0xdc, 0x41, 0x04, 0xa0, 0xcf, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x35, 0xc1, 0x90, 0x0e, 0xac, 0x09, 0x86, 0x82, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0xb0, 0x26, 0x18, 0xe2, 0x81, 0x35, 0xc1, 0x30, 0x19, 0x24, 0x03, 0xeb, 0x76, 0x07, 0xc3, 0x51, 0x7a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x35, 0xc1, 0xb0, 0x19, 0x58, 0x13, 0x0c, 0xb3, 0x83, 0x82, 0x34, 0x71, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x9a, 0x60, 0xd8, 0x0d, 0xac, 0x09, 0x86, 0xfd, 0xa1, 0xe9, 0xd0, 0x71, 0x68, 0xd8, 0x0d, 0x46, 0xbd, 0xe4, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x9a, 0x60, 0xa8, 0x18, 0x58, 0x13, 0x0c, 0x1d, 0x87, 0x18, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x7b, 0x82, 0x71, 0x07, 0x11, 0x80, 0x3e, 0x33, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0xf6, 0x04, 0x43, 0x3a, 0xb0, 0x27, 0x18, 0xf6, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0x60, 0x4f, 0x30, 0xc4, 0x03, 0x7b, 0x82, 0x61, 0x35, 0x48, 0x06, 0xc6, 0xed, 0x60, 0x18, 0xfa, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0xec, 0x09, 0x86, 0xd9, 0xc0, 0x9e, 0x60, 0x98, 0x1f, 0x24, 0xd3, 0x67, 0x1c, 0x87, 0x86, 0xdd, 0x60, 0xd4, 0x4b, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0xec, 0x09, 0x86, 0x8a, 0x81, 0x3d, 0xc1, 0xd0, 0x71, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0xb0, 0x28, 0x18, 0x77, 0x10, 0x01, 0xe8, 0x33, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x8b, 0x82, 0x21, 0x19, 0x58, 0x14, 0x0c, 0xd1, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0xa6, 0x60, 0xdc, 0x41, 0x04, 0xa0, 0xcf, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x6c, 0x0a, 0x86, 0x64, 0x60, 0x53, 0x30, 0x8c, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x36, 0x05, 0x43, 0x34, 0xb0, 0x29, 0x18, 0xf2, 0xc3, 0xda, 0xef, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0xa6, 0x60, 0x18, 0x0c, 0x6c, 0x0a, 0x86, 0xd5, 0x21, 0x5f, 0x3b, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x6c, 0x0a, 0x86, 0xd9, 0xc0, 0xa6, 0x60, 0xd8, 0x1e, 0xc6, 0x65, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0x60, 0x55, 0x30, 0x24, 0x03, 0xab, 0x82, 0xa1, 0x62, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0x60, 0x55, 0x30, 0x44, 0x03, 0xab, 0x82, 0x61, 0x72, 0x50, 0x1e, 0x19, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0xac, 0x0a, 0x86, 0xcd, 0xc0, 0xaa, 0x60, 0xd8, 0x1e, 0x24, 0x88, 0x74, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0xab, 0x82, 0x61, 0x3c, 0xb0, 0x2a, 0x18, 0x1a, 0x0e, 0x42, 0x00, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0xd8, 0x15, 0x0c, 0xc9, 0xc0, 0xae, 0x60, 0x58, 0x1c, 0x3c, 0x16, 0x6b, 0x62, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0xd8, 0x11, 0x8c, 0x1f, 0xd8, 0x11, 0x0c, 0xc1, 0x21, 0x86, 0xc7, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0x60, 0x5f, 0x30, 0x6e, 0x60, 0x63, 0x30, 0xac, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x0b, 0x83, 0x71, 0x07, 0xd1, 0xda, 0x42, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x6c, 0x0c, 0xc6, 0x1d, 0x44, 0x6b, 0x0b, 0xcd, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0xd8, 0x18, 0x8c, 0x1d, 0xd8, 0x18, 0x0c, 0xd1, 0x41, 0xfc, 0xa2, 0xca, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x6c, 0x0c, 0x86, 0x6c, 0x60, 0x63, 0x30, 0x8c, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0xc6, 0x60, 0x08, 0x07, 0x36, 0x06, 0xc3, 0xf0, 0xe0, 0x90, 0xaa, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0xb0, 0x31, 0x18, 0x96, 0x03, 0x1b, 0x83, 0x61, 0x7b, 0x48, 0x1d, 0x1c, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0x60, 0x29, 0x30, 0x6e, 0x60, 0x39, 0x30, 0x7e, 0x10, 0x6c, 0xb0, 0x2c, 0x0c, 0x66, 0x71, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0xd8, 0x0a, 0x8c, 0x3b, 0x88, 0xae, 0x1c, 0x9a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0x60, 0x2d, 0x30, 0xee, 0x20, 0xba, 0x72, 0x68, 0x86, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x58, 0x0b, 0x0c, 0xc9, 0xc0, 0x5a, 0x60, 0xe8, 0x3a, 0x88, 0x3f, 0xf7, 0x99, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0xbd, 0xc0, 0xb8, 0x83, 0xe8, 0xca, 0xa1, 0x19, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x7b, 0x81, 0x21, 0x1d, 0xd8, 0x0b, 0x0c, 0xfb, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0xb0, 0x17, 0x18, 0xe2, 0x81, 0xbd, 0xc0, 0xb0, 0x1a, 0x24, 0x03, 0xe3, 0x76, 0x10, 0xe4, 0xfc, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x7b, 0x81, 0x61, 0x36, 0xb0, 0x17, 0x18, 0xe6, 0x07, 0xcf, 0xfc, 0xa8, 0x38, 0x0e, 0x0d, 0xbb, 0xc1, 0xa8, 0x97, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0xd8, 0x0b, 0x0c, 0x15, 0x03, 0x7b, 0x81, 0xa1, 0xe3, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0x60, 0x31, 0x30, 0xee, 0x20, 0xba, 0x72, 0x68, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x16, 0x03, 0x43, 0x32, 0xb0, 0x18, 0x18, 0xa2, 0x43, 0x0c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0xcd, 0xc0, 0xb8, 0x83, 0xe8, 0xca, 0xa1, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0xd8, 0x0c, 0x0c, 0xc9, 0xc0, 0x66, 0x60, 0x58, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x6c, 0x06, 0x86, 0x68, 0x60, 0x33, 0x30, 0xc4, 0x87, 0xac, 0xdd, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x66, 0x60, 0xc8, 0x07, 0x36, 0x03, 0xc3, 0xe6, 0xd0, 0x43, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0xd8, 0x0c, 0x0c, 0xa3, 0x81, 0xcd, 0xc0, 0x30, 0x3c, 0x34, 0x2e, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x58, 0x0d, 0x0c, 0xc9, 0xc0, 0x6a, 0x60, 0xa8, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x58, 0x0d, 0x0c, 0xd1, 0xc0, 0x6a, 0x60, 0x98, 0x1c, 0x84, 0x3d, 0xf5, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x6a, 0x60, 0xd8, 0x0c, 0xac, 0x06, 0x86, 0xed, 0x41, 0xd2, 0x00, 0xc2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0xb0, 0x1a, 0x18, 0xc6, 0x03, 0xab, 0x81, 0xa1, 0xe1, 0x20, 0x04, 0xc0, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0xdd, 0xc0, 0x90, 0x0c, 0xec, 0x06, 0x86, 0xc5, 0xc1, 0x0a, 0x9f, 0xac, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0x60, 0x2d, 0x30, 0xb4, 0x0d, 0xac, 0x05, 0x86, 0xba, 0x43, 0x0c, 0x8f, 0xc7, 0xc7, 0xe3, 0x83, 0xf3, 0x13, 0xed, 0x8a, 0x0b, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb0, 0xb0, 0x1b, 0xb4, 0xf3, 0xdd, 0xb2, 0x21, 0x86, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x98, 0xbf, 0x83, 0xe1, 0x1f, 0x3b, 0x48, 0x06, 0xc2, 0x76, 0x48, 0xce, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x04, 0x1b, 0xc4, 0xd3, 0x16, 0xcd, 0x20, 0x19, 0x94, 0x1d, 0x92, 0x73, 0x87, 0x0e, 0x1a, 0xc7, 0xa1, 0xc5, 0x05, 0xc1, 0x06, 0xe7, 0xc8, 0xde, 0xc5, 0x05, 0xc1, 0x82, 0x60, 0x41, 0x32, 0x30, 0x7f, 0x07, 0x67, 0x2f, 0xe3, 0x41, 0x32, 0xcc, 0x41, 0x99, 0xee, 0x70, 0x70, 0x54, 0x71, 0x1e, 0x04, 0x0b, 0x82, 0x0d, 0x22, 0xd8, 0x8b, 0x66, 0x90, 0x0c, 0x73, 0xb0, 0xe8, 0x53, 0xec, 0xe0, 0x24, 0xbf, 0x7c, 0x3c, 0x5e, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0x0d, 0xa2, 0x7d, 0xb0, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x5f, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x09, 0xf3, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x30, 0x86, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x10, 0x6c, 0x10, 0xc1, 0x5e, 0x34, 0x83, 0x64, 0x10, 0x1d, 0x94, 0xe9, 0x0e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x02, 0x13, 0x7b, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0xb0, 0x41, 0x04, 0x7b, 0xd1, 0x0c, 0x92, 0x81, 0xb8, 0x1d, 0x94, 0xe9, 0x0e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x59, 0xbb, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc1, 0x06, 0x11, 0xec, 0x45, 0x33, 0x48, 0x06, 0x65, 0x07, 0x65, 0xba, 0xc3, 0xa1, 0x83, 0xc6, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0xb8, 0x20, 0x58, 0x90, 0x0c, 0x44, 0xe7, 0xe0, 0x9c, 0x77, 0x7c, 0x50, 0x0a, 0x1a, 0x0d, 0x82, 0x0d, 0xa2, 0x35, 0x8d, 0xe6, 0xa0, 0xf0, 0x3c, 0x3a, 0x1e, 0x2f, 0x08, 0x36, 0x38, 0x47, 0xf6, 0x2e, 0x2e, 0x08, 0x36, 0x88, 0x06, 0x32, 0x9a, 0x83, 0xa3, 0x8a, 0xf3, 0x20, 0x58, 0x10, 0x6c, 0x10, 0xc1, 0x5e, 0x34, 0x83, 0x64, 0x10, 0x1d, 0x2c, 0xfa, 0x14, 0x3b, 0x38, 0xc9, 0x2f, 0x1f, 0x8f, 0x17, 0x04, 0x1b, 0x8c, 0xfc, 0x87, 0xc5, 0x05, 0xc1, 0x82, 0x60, 0x83, 0x08, 0xf6, 0xa2, 0x19, 0x24, 0x83, 0x6b, 0x07, 0x65, 0xba, 0xc3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xa2, 0x35, 0x8d, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x6b, 0x37, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0xab, 0xea, 0x4a, 0x07, 0xa5, 0xb7, 0xc3, 0x71, 0xe8, 0xd0, 0x43, 0xe8, 0x38, 0x34, 0x08, 0x16, 0x04, 0x1b, 0x44, 0xb0, 0x17, 0xcd, 0x20, 0x19, 0x5c, 0x3b, 0x58, 0xf4, 0x29, 0x36, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x68, 0x4d, 0xa3, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xc8, 0xda, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0xaa, 0xba, 0xd2, 0xc1, 0xf2, 0x4e, 0xb1, 0xe3, 0xd0, 0xa1, 0x63, 0xd8, 0x71, 0xe8, 0x78, 0x3c, 0x08, 0x36, 0x38, 0x47, 0xf6, 0x2e, 0x2e, 0x08, 0x36, 0x88, 0xe8, 0x32, 0x9a, 0x83, 0xa3, 0x8a, 0xf3, 0x20, 0x58, 0x10, 0x6c, 0x10, 0xc1, 0x5e, 0x34, 0x83, 0x64, 0x20, 0x6e, 0x07, 0x8b, 0x3e, 0xc5, 0x0e, 0x4e, 0xf2, 0xcb, 0xc7, 0xe3, 0xe3, 0xf1, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x2e, 0xec, 0xc2, 0x6d, 0x88, 0xe1, 0x20, 0xd8, 0xa0, 0xb9, 0xc3, 0xa8, 0x83, 0x71, 0x1c, 0xb2, 0x21, 0x86, 0xc3, 0x6e, 0x68, 0x7a, 0xbe, 0x21, 0x86, 0xc3, 0x2e, 0x08, 0x36, 0x1c, 0xed, 0x83, 0x60, 0x71, 0xd8, 0x85, 0xdb, 0x20, 0x2d, 0xc8, 0xe3, 0x90, 0x3a, 0xd8, 0x70, 0xb4, 0x0f, 0xbb, 0x20, 0x58, 0x98, 0x41, 0xb0, 0xc1, 0x39, 0xd4, 0xf8, 0x20, 0xf1, 0x26, 0x68, 0xd8, 0x85, 0x5d, 0xb8, 0x0d, 0x02, 0x13, 0xfb, 0x38, 0x74, 0x58, 0xdf, 0x5c, 0xd8, 0x85, 0xdb, 0x20, 0x30, 0xb1, 0x07, 0xc1, 0x06, 0x11, 0x09, 0x2e, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0x3a, 0x18, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x9c, 0x2b, 0x07, 0xa7, 0x33, 0xe4, 0x83, 0xe4, 0x11, 0x9e, 0xe3, 0xd0, 0x21, 0x9d, 0x7b, 0x38, 0xda, 0x37, 0xc4, 0xf0, 0x20, 0x19, 0x6c, 0xfb, 0xf8, 0x76, 0x48, 0xe7, 0x6e, 0x38, 0xda, 0x07, 0xc1, 0x82, 0x60, 0x0d, 0xd2, 0x03, 0xab, 0x0f, 0x31, 0x1c, 0x04, 0x8b, 0xc3, 0x2e, 0xdc, 0x86, 0x18, 0x0e, 0x82, 0x0d, 0x5e, 0xf6, 0x40, 0x73, 0x90, 0xfe, 0x4c, 0xb4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x41, 0xb0, 0xc1, 0x83, 0x22, 0x68, 0x0e, 0xd2, 0x9f, 0x89, 0x0e, 0x49, 0xbd, 0xe3, 0xf1, 0x21, 0xb1, 0x79, 0x7c, 0x1b, 0x76, 0xe1, 0x16, 0x04, 0x1b, 0x9c, 0x1c, 0x8b, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xa2, 0x39, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x48, 0x3a, 0x1d, 0x9c, 0x84, 0x8e, 0x0f, 0x46, 0x14, 0xee, 0x71, 0x68, 0x10, 0x6c, 0xb0, 0xde, 0xac, 0xe4, 0x60, 0x98, 0x85, 0x2f, 0x08, 0x36, 0xc4, 0x70, 0x10, 0x2c, 0x0e, 0xbb, 0x70, 0x1b, 0x52, 0x07, 0x07, 0xe9, 0x50, 0x1e, 0x1b, 0x62, 0x38, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x0d, 0x22, 0x15, 0xcd, 0x63, 0x90, 0x0c, 0x76, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0x2c, 0x11, 0x6a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x55, 0x73, 0x30, 0xde, 0x74, 0x8e, 0x43, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x91, 0x21, 0x23, 0x72, 0x90, 0x50, 0x0d, 0x72, 0x1c, 0x1a, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0x11, 0xec, 0x45, 0x33, 0x48, 0x06, 0xd7, 0x0e, 0xc6, 0xe8, 0xe4, 0xc1, 0x78, 0xa3, 0x1c, 0x76, 0x61, 0x37, 0x28, 0xd8, 0x90, 0x36, 0xc4, 0x70, 0xd8, 0x05, 0xc1, 0x86, 0x18, 0x0e, 0x82, 0xc5, 0x61, 0x17, 0x6e, 0x43, 0xaa, 0x66, 0x10, 0x6c, 0xf0, 0xf0, 0x7f, 0x80, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc1, 0x59, 0xf6, 0xf8, 0x38, 0xb4, 0x21, 0x86, 0xc3, 0x2e, 0xdc, 0x86, 0xd4, 0xc1, 0x20, 0xd8, 0xe0, 0xe1, 0xff, 0x00, 0x83, 0x64, 0xc8, 0x41, 0x3b, 0xd5, 0x01, 0x1b, 0x8e, 0xf6, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x88, 0x07, 0xc1, 0x82, 0x60, 0x41, 0x32, 0x30, 0x7f, 0x07, 0xe7, 0xfa, 0xe3, 0x41, 0x32, 0x88, 0x0e, 0xa2, 0xff, 0x91, 0xe6, 0x60, 0x08, 0x7e, 0x1f, 0x76, 0x4c, 0x8e, 0x6f, 0x87, 0x74, 0xee, 0xc2, 0x2e, 0x48, 0x86, 0x1c, 0x14, 0xf0, 0x51, 0x87, 0x74, 0xee, 0xe1, 0x68, 0x3f, 0xbe, 0x1d, 0x4e, 0xb1, 0xe3, 0xf1, 0x82, 0x60, 0x83, 0x91, 0xff, 0xb0, 0x38, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x81, 0xa4, 0xd3, 0xc1, 0x70, 0x94, 0x3e, 0xa4, 0xe1, 0x06, 0xc1, 0x82, 0x60, 0x83, 0xf5, 0x66, 0x25, 0x07, 0x03, 0x5b, 0x74, 0x10, 0x2c, 0x2e, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x87, 0xdd, 0x90, 0xc7, 0xda, 0x10, 0xc3, 0x61, 0x17, 0x6e, 0xc3, 0xd1, 0x3e, 0x08, 0x16, 0x24, 0x03, 0xe7, 0xde, 0xc1, 0x39, 0xef, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xd8, 0x70, 0x3d, 0x64, 0xed, 0x8e, 0x43, 0x0b, 0x82, 0x0d, 0x92, 0x31, 0xe9, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xf2, 0xb5, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0x08, 0x36, 0x58, 0xb8, 0x30, 0x71, 0x90, 0xfe, 0x4c, 0x34, 0x08, 0x36, 0x48, 0xff, 0x52, 0x38, 0x74, 0xd0, 0x38, 0x1e, 0x1f, 0x87, 0x0e, 0x22, 0x75, 0x93, 0xe6, 0x78, 0xbc, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x06, 0x2b, 0xdd, 0x27, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x52, 0x35, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x44, 0x00, 0x95, 0xc8, 0x20, 0x19, 0x72, 0xd0, 0x96, 0x46, 0xcb, 0x71, 0xe8, 0x78, 0x3c, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xd9, 0x1a, 0xf2, 0xd8, 0x8b, 0x83, 0x60, 0x83, 0x07, 0xb3, 0xcf, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x78, 0xcc, 0xfb, 0xcc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x8b, 0x1b, 0x26, 0x6e, 0x0d, 0x75, 0x7c, 0xc3, 0xcb, 0x77, 0x13, 0xf0, 0x91, 0xa5, 0x99, 0xb5, 0x9c, 0x85, 0x1b, 0x26, 0x6e, 0x83, 0xc6, 0x3e, 0x35, 0x36, 0x4c, 0xdc, 0x06, 0x4d, 0x38, 0x7f, 0x6c, 0x98, 0xfb, 0xc1, 0xe5, 0x83, 0xd5, 0xa3, 0xfa, 0xc3, 0x6f, 0x3c, 0x5f, 0x3c, 0x88, 0xdd, 0x51, 0x9a, 0x83, 0xc1, 0x3b, 0x79, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x87, 0x5d, 0xd8, 0x05, 0xc1, 0x06, 0xe7, 0x54, 0xe4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xac, 0xdd, 0xc1, 0x78, 0xd3, 0x39, 0x0e, 0x2d, 0xec, 0x82, 0x60, 0x83, 0x73, 0x2a, 0xf2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xbe, 0xf6, 0x60, 0xbc, 0xe9, 0x1c, 0x87, 0x0e, 0xe9, 0xdc, 0xc3, 0xd1, 0xbe, 0x20, 0x58, 0x90, 0x0c, 0x04, 0xef, 0xe0, 0x9c, 0x77, 0x7c, 0x48, 0xb4, 0x1e, 0x4e, 0xb1, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xd9, 0x1a, 0xf2, 0xd8, 0x8b, 0x83, 0x60, 0x83, 0x07, 0xb3, 0xcf, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x78, 0xcc, 0xfb, 0xcc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x8b, 0x1b, 0x26, 0x6e, 0x0d, 0x75, 0x7c, 0xc3, 0xcb, 0x77, 0x13, 0xf0, 0x91, 0xd5, 0x89, 0xb5, 0x9c, 0x85, 0x07, 0x31, 0x43, 0x4a, 0x33, 0xfc, 0xc6, 0xf3, 0xc5, 0x83, 0x58, 0x72, 0xa5, 0x39, 0x18, 0xbc, 0x93, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0xd8, 0x05, 0xc1, 0x06, 0xe7, 0x54, 0xe4, 0x83, 0x68, 0x52, 0xa4, 0x59, 0xd8, 0x85, 0xdb, 0x70, 0xb4, 0x0f, 0x82, 0x0d, 0xe2, 0xae, 0xdc, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc0, 0x0f, 0x59, 0xf8, 0x8d, 0xe7, 0x0b, 0x82, 0x0d, 0xe2, 0xef, 0x0e, 0xe4, 0x20, 0x7e, 0x3f, 0x69, 0x0e, 0x47, 0xfb, 0x21, 0x55, 0x73, 0x1c, 0x5a, 0x10, 0x6c, 0x90, 0x8c, 0x49, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x65, 0xf0, 0x02, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x83, 0xf4, 0xc6, 0x86, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xcb, 0xe0, 0x05, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0xba, 0x74, 0x70, 0xce, 0x3b, 0x3e, 0x18, 0xc7, 0x21, 0xc7, 0xa1, 0xe3, 0xd0, 0x41, 0xa4, 0xdb, 0xd2, 0x1c, 0x4e, 0xb1, 0xe3, 0xf1, 0x20, 0x58, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0x0d, 0x31, 0x1c, 0x04, 0x8b, 0xc3, 0x6e, 0x30, 0x08, 0x38, 0x36, 0xa4, 0x0e, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xa0, 0x7d, 0x10, 0x6c, 0xf0, 0xf0, 0x7f, 0x80, 0x83, 0x86, 0xc8, 0x04, 0x06, 0xd1, 0xc2, 0x0e, 0x82, 0x05, 0xc1, 0x82, 0x64, 0x60, 0xaf, 0xef, 0xe0, 0x40, 0x91, 0x7c, 0xb0, 0x0a, 0x33, 0x6c, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x31, 0x73, 0x48, 0x76, 0x1c, 0x87, 0x8e, 0xc7, 0xc7, 0xb7, 0xe3, 0xf1, 0x20, 0x58, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc0, 0x0f, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x3e, 0x46, 0x43, 0x0e, 0x4a, 0x6f, 0x87, 0xe3, 0xd0, 0x20, 0xd8, 0x38, 0x74, 0x30, 0x04, 0xbf, 0x07, 0xc1, 0x06, 0x83, 0x15, 0x65, 0x10, 0x2c, 0x0e, 0xbb, 0x70, 0x1b, 0x8c, 0x37, 0x9d, 0xc3, 0xb8, 0xac, 0x20, 0x58, 0x10, 0x6c, 0x10, 0x73, 0xbb, 0x34, 0x07, 0x2f, 0xc6, 0x21, 0x39, 0x28, 0x97, 0x68, 0x0e, 0xf9, 0xda, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x88, 0x37, 0x88, 0x77, 0x60, 0x9a, 0x41, 0xb0, 0x20, 0xd8, 0x20, 0xe6, 0x76, 0x69, 0x0e, 0x9e, 0xbd, 0x43, 0x72, 0x48, 0xb4, 0x0e, 0xa2, 0x85, 0x5d, 0x10, 0x6c, 0x70, 0x0e, 0xf8, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x50, 0x36, 0x08, 0x1d, 0xb2, 0x76, 0xc7, 0xa1, 0x43, 0x52, 0xef, 0x78, 0x7c, 0x7c, 0x1b, 0x04, 0x1b, 0xa4, 0x5b, 0x4a, 0x2f, 0x2e, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xd9, 0x1a, 0xf2, 0xd8, 0x8b, 0x83, 0x60, 0x83, 0xb6, 0xac, 0xfa, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xb4, 0xb3, 0xd5, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xe2, 0x86, 0x89, 0x5b, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x04, 0x7c, 0x70, 0x72, 0x6f, 0x2d, 0x67, 0xe1, 0x41, 0xcc, 0x90, 0xd2, 0x0c, 0xbf, 0xf1, 0x7c, 0xf1, 0x20, 0xce, 0x92, 0x69, 0x0e, 0x0a, 0xb7, 0xa4, 0xe3, 0xd0, 0x71, 0xe8, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x0d, 0x62, 0x6e, 0x97, 0xe6, 0xe0, 0xb5, 0x40, 0x3a, 0x87, 0x34, 0xdc, 0xb0, 0x1b, 0x8c, 0x7a, 0xc9, 0x0d, 0x31, 0x1c, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x82, 0x64, 0x60, 0xaf, 0xef, 0xe0, 0xb4, 0xa1, 0x7c, 0xf0, 0x26, 0x2d, 0x9d, 0xc3, 0x1e, 0xef, 0xb0, 0x1b, 0x8c, 0x7a, 0xc9, 0x0d, 0x31, 0x1c, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0xaf, 0xe5, 0xb5, 0x19, 0x24, 0x03, 0xc5, 0xef, 0xa0, 0x4c, 0x77, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0xa2, 0x73, 0x90, 0x16, 0x34, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x28, 0x39, 0x48, 0x0b, 0x1a, 0x39, 0x58, 0x6d, 0x41, 0x74, 0x50, 0xb8, 0x25, 0x1d, 0x87, 0x8e, 0x43, 0x83, 0x60, 0x41, 0x32, 0x70, 0xde, 0x1d, 0xa4, 0x05, 0x8d, 0x1c, 0x0c, 0x6c, 0xd1, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xd9, 0x1a, 0xf2, 0xd8, 0x8b, 0x83, 0x60, 0x83, 0xb6, 0xac, 0xfa, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xb4, 0xb3, 0xd5, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xe2, 0x86, 0x89, 0x5b, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x04, 0x7c, 0x69, 0x6e, 0x76, 0x2d, 0x67, 0xe1, 0x41, 0xcc, 0x90, 0xd2, 0x0c, 0xbf, 0xf1, 0x7c, 0xf1, 0x20, 0x4e, 0xae, 0x69, 0x0e, 0x0a, 0xb7, 0xa4, 0xe3, 0xd0, 0x71, 0xe8, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x1b, 0xc4, 0xe1, 0x32, 0xcd, 0xa1, 0x51, 0xcb, 0xb0, 0x1b, 0x8c, 0x7a, 0xc9, 0x0d, 0xa7, 0xd8, 0x20, 0x58, 0x10, 0x2c, 0x08, 0x36, 0x88, 0x99, 0x66, 0x9a, 0x41, 0x32, 0x50, 0xfc, 0x0e, 0x42, 0x0e, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0xf2, 0x69, 0xca, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x81, 0x48, 0x7d, 0x18, 0x97, 0xe3, 0xd0, 0x71, 0x68, 0x10, 0x2c, 0x48, 0x06, 0xce, 0xbb, 0x83, 0x63, 0xc6, 0xf2, 0xc1, 0xc0, 0x16, 0x3d, 0x1e, 0x2f, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0x06, 0xe7, 0xe0, 0xef, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xac, 0xdd, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x23, 0x01, 0xe7, 0xd0, 0x41, 0xe3, 0x38, 0x74, 0x3c, 0x1e, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x0d, 0x47, 0xfb, 0xc1, 0x98, 0x85, 0x1b, 0x04, 0x8b, 0xc3, 0x2e, 0xdc, 0x12, 0x2c, 0xff, 0x1f, 0x04, 0xa5, 0xf7, 0x86, 0x68, 0x0e, 0xbb, 0x70, 0x1b, 0x8e, 0xf6, 0x41, 0xb0, 0x41, 0x84, 0xa7, 0x5c, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xf8, 0x21, 0x0b, 0xbf, 0xf1, 0x7c, 0x83, 0xa0, 0xf4, 0x3e, 0x1c, 0xed, 0x87, 0x64, 0xc7, 0x71, 0x68, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x82, 0x60, 0x83, 0x73, 0xc0, 0xf7, 0xc1, 0x18, 0x8d, 0x58, 0x10, 0x6c, 0x70, 0x0e, 0xf8, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xe8, 0x21, 0x74, 0xe8, 0x21, 0x74, 0x1c, 0x3a, 0x58, 0xc9, 0x29, 0x72, 0x3c, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf4, 0x20, 0x32, 0xcb, 0x69, 0x8e, 0xc7, 0xc7, 0xb7, 0xe3, 0xf1, 0xf1, 0xf8, 0x78, 0xbc, 0x20, 0xd8, 0x60, 0xe4, 0x3f, 0x2c, 0x0e, 0xbf, 0x20, 0x5a, 0xb0, 0x1d, 0x04, 0x0b, 0x92, 0x81, 0xdf, 0xef, 0x0e, 0x86, 0x7f, 0xec, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x8f, 0x81, 0x2f, 0x17, 0xd6, 0x06, 0x1f, 0x3a, 0x86, 0x1d, 0x87, 0x8e, 0xc7, 0x83, 0x60, 0x43, 0x0c, 0x07, 0xc1, 0xe2, 0xb0, 0x0b, 0xb7, 0x20, 0xd8, 0xe0, 0x1c, 0x6a, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0x59, 0xd3, 0xe0, 0x90, 0xec, 0x38, 0x0e, 0x1d, 0x52, 0x07, 0x0b, 0xb2, 0x35, 0xe4, 0xb1, 0x17, 0x07, 0xc1, 0x06, 0x0d, 0x8b, 0xac, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0xf2, 0x64, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0xc5, 0x0d, 0x75, 0x7c, 0xc3, 0xcb, 0x77, 0x13, 0xf0, 0x86, 0xc9, 0xb5, 0xc8, 0x85, 0xb5, 0xc1, 0xc3, 0x6f, 0x3c, 0x1f, 0x0f, 0x62, 0x03, 0x9e, 0xe6, 0x38, 0x74, 0x1c, 0x3a, 0x1e, 0x1f, 0x4e, 0xb1, 0x41, 0xb0, 0x20, 0x58, 0x10, 0x6c, 0x10, 0x83, 0x47, 0x1f, 0x83, 0x64, 0xb0, 0x3b, 0x68, 0x7e, 0x49, 0xe0, 0x90, 0xbd, 0x18, 0x76, 0x61, 0x17, 0x04, 0x0b, 0x92, 0x81, 0xe6, 0x7d, 0x07, 0x67, 0x2f, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x63, 0xec, 0x69, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x87, 0x5d, 0xb8, 0x0d, 0x47, 0xfb, 0x20, 0xd8, 0x60, 0xa5, 0xfb, 0xc4, 0xc1, 0x9b, 0xab, 0x17, 0x0e, 0xeb, 0x9b, 0xc7, 0xe3, 0xe3, 0xd0, 0xc2, 0x6e, 0xf0, 0x90, 0xbd, 0x9b, 0x43, 0x3a, 0xf7, 0x70, 0xb4, 0x6f, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xef, 0xc3, 0x1c, 0x04, 0x0f, 0xf7, 0x20, 0x5a, 0xd8, 0x41, 0xb0, 0x20, 0x19, 0x68, 0x7f, 0x77, 0x70, 0xcc, 0x2a, 0x3e, 0x18, 0x66, 0xe1, 0xc7, 0xf3, 0xe3, 0xdb, 0xf1, 0x78, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0xbf, 0x20, 0x5a, 0xe8, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x60, 0xc5, 0xc0, 0x31, 0x68, 0x7b, 0x10, 0x6c, 0x90, 0xea, 0xc8, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x03, 0xed, 0xf0, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0x20, 0xdd, 0xc0, 0xe1, 0x38, 0x74, 0x90, 0xa8, 0x36, 0x72, 0x1c, 0x1a, 0x04, 0x0b, 0x82, 0x0d, 0xe2, 0x69, 0x8b, 0xe6, 0x60, 0x9c, 0xe1, 0x6e, 0x88, 0xe6, 0x86, 0x71, 0x39, 0x0e, 0x2d, 0x2e, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x88, 0x04, 0x97, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x48, 0xc0, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0xfc, 0x82, 0x64, 0x20, 0x7c, 0x07, 0xc7, 0xac, 0xe2, 0x83, 0xc3, 0xa6, 0xee, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe1, 0x37, 0x88, 0x81, 0x80, 0x9a, 0x83, 0x13, 0x84, 0xef, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x85, 0xdf, 0x20, 0x06, 0x02, 0x6a, 0x0e, 0xc6, 0x1d, 0xd4, 0x21, 0x0d, 0x37, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x14, 0x0f, 0xd4, 0x1c, 0x3a, 0x68, 0x1c, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x46, 0x02, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xc6, 0x12, 0xa1, 0x0e, 0x89, 0xd6, 0xe3, 0xd0, 0x71, 0x68, 0x10, 0x2c, 0x08, 0x36, 0x38, 0x61, 0x1e, 0x0f, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x7e, 0x50, 0x90, 0xed, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0x76, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0xcc, 0x0c, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x68, 0x1f, 0x6c, 0x19, 0x04, 0x1b, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xf4, 0x71, 0xa2, 0xc3, 0x46, 0xed, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc6, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0x84, 0x79, 0x3c, 0x08, 0x36, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xad, 0xe6, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x87, 0x0e, 0xeb, 0x13, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x90, 0x3e, 0x4e, 0x74, 0xd8, 0xe3, 0x3d, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x82, 0x60, 0x41, 0x32, 0x28, 0x3b, 0x18, 0x03, 0x0b, 0x87, 0x46, 0x2d, 0x83, 0x60, 0x83, 0x88, 0x93, 0xa8, 0x39, 0x18, 0xd8, 0xa2, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x0d, 0x22, 0x12, 0x5c, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x55, 0x73, 0x48, 0xd5, 0x1c, 0x87, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0x82, 0x05, 0xc9, 0xc0, 0xfc, 0x1d, 0x1c, 0xb3, 0x8a, 0x07, 0xc9, 0xe0, 0xda, 0x41, 0x2a, 0xd2, 0xc5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xa2, 0x77, 0xb4, 0x63, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0xc8, 0x67, 0x1f, 0x1a, 0xcf, 0x1f, 0x87, 0x0e, 0xa9, 0x9a, 0xe3, 0xd0, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x38, 0xf7, 0x0e, 0xce, 0x5e, 0xc6, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x06, 0x81, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x1a, 0x99, 0x2d, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xc5, 0xa2, 0x0d, 0xc6, 0x1b, 0xd2, 0x21, 0x55, 0x73, 0x1c, 0x3a, 0x0e, 0x0d, 0x82, 0x05, 0xc1, 0x82, 0x64, 0xa0, 0xe8, 0x1d, 0x9c, 0xce, 0x90, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x24, 0xdc, 0x9e, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0xce, 0xbd, 0x83, 0xd3, 0x19, 0xf2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xc4, 0x85, 0xe6, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x92, 0x67, 0x52, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xc5, 0xa2, 0x85, 0xdf, 0x78, 0x3e, 0x0e, 0xf6, 0x79, 0xd8, 0x2b, 0x3c, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0x83, 0x60, 0x41, 0xb0, 0x41, 0xdc, 0x95, 0x5b, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x8a, 0x45, 0x0b, 0xbf, 0xf1, 0x7c, 0x3c, 0x48, 0xd5, 0x00, 0x38, 0x08, 0x4c, 0xec, 0xe3, 0xd0, 0x20, 0x58, 0x90, 0x0c, 0x08, 0x7f, 0xa7, 0x83, 0x73, 0xfd, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa1, 0x58, 0x34, 0xfc, 0xc6, 0xf3, 0x0d, 0xd6, 0xce, 0xa4, 0xac, 0x41, 0xaa, 0x06, 0xc0, 0x71, 0x68, 0x43, 0xfb, 0xf3, 0x43, 0x0c, 0x8f, 0x43, 0xc7, 0xe3, 0x41, 0xb0, 0xc1, 0x83, 0x4d, 0x2f, 0x16, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x88, 0x04, 0x97, 0x19, 0x04, 0x1b, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x44, 0x2d, 0x42, 0xcd, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc6, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x46, 0x47, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0x24, 0xe0, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0x75, 0x80, 0x9a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x11, 0x27, 0x50, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x28, 0x1e, 0xa8, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0x91, 0xe0, 0x32, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x06, 0xd1, 0xca, 0x41, 0x71, 0xa8, 0x71, 0x1c, 0x3a, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0xc5, 0x03, 0x35, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x22, 0x12, 0x5c, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xe0, 0x8f, 0x39, 0x18, 0x17, 0x66, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x06, 0xc1, 0x82, 0x60, 0x83, 0x13, 0xe6, 0xf1, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0x6a, 0x11, 0x6a, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x28, 0x72, 0x15, 0x86, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0xfa, 0x38, 0xd1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe1, 0x17, 0x24, 0x03, 0xe1, 0x3b, 0x38, 0x7b, 0x19, 0x1f, 0x1c, 0x36, 0x75, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0xbf, 0x41, 0xe4, 0xda, 0xd4, 0x1c, 0x9c, 0x20, 0x7c, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0xfc, 0x06, 0x91, 0x6b, 0x53, 0x73, 0x30, 0xee, 0xa0, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x9c, 0x30, 0x8f, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x04, 0x49, 0xf4, 0xc1, 0xc8, 0xb2, 0x3a, 0x0e, 0x1d, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0xbd, 0x9c, 0x9a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x27, 0xcc, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xc5, 0x1e, 0xc4, 0xc1, 0x98, 0xb0, 0x3a, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0x10, 0x4f, 0x12, 0x35, 0xc7, 0xe3, 0xe3, 0xf1, 0xf1, 0x78, 0x10, 0xac, 0x61, 0xed, 0xf7, 0x70, 0xb4, 0x0f, 0x82, 0x0d, 0xe2, 0x45, 0x1e, 0x64, 0x10, 0x6c, 0x48, 0x1d, 0x0c, 0x82, 0x05, 0xc1, 0x06, 0xe7, 0x80, 0xef, 0x83, 0x61, 0x16, 0x3e, 0x08, 0x16, 0x87, 0x5d, 0xb8, 0x83, 0x25, 0xbe, 0xff, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0x23, 0xf8, 0xf4, 0x60, 0x98, 0x85, 0x0f, 0x82, 0x05, 0xc9, 0xa0, 0xec, 0x60, 0xd1, 0xc6, 0xd8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x43, 0xce, 0xf2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0x34, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x78, 0xd2, 0x0b, 0xc5, 0xc1, 0x88, 0xc2, 0x3d, 0x0e, 0x1d, 0x87, 0x06, 0xc1, 0x82, 0x60, 0x83, 0xd4, 0xd3, 0x98, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x3f, 0x18, 0xa5, 0x9c, 0x07, 0x8d, 0xa7, 0xb0, 0x1c, 0x87, 0x86, 0x5d, 0xb8, 0x0d, 0x31, 0x1c, 0x04, 0x0b, 0x92, 0x81, 0xe8, 0x1c, 0x1c, 0x33, 0x96, 0x0f, 0x62, 0xdf, 0x59, 0x66, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x98, 0x0f, 0x82, 0x05, 0xc9, 0x40, 0x7a, 0xe5, 0xe0, 0x98, 0xb1, 0x7c, 0x30, 0x12, 0x56, 0x07, 0xd1, 0x82, 0x78, 0x10, 0x6c, 0xf0, 0xd2, 0x39, 0x9b, 0x83, 0xf1, 0x61, 0x34, 0x88, 0x16, 0x76, 0x10, 0x6c, 0xf0, 0x5e, 0x18, 0x8a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x81, 0x89, 0x7d, 0xd0, 0xc2, 0xf0, 0xca, 0x71, 0xe8, 0x78, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x0d, 0x62, 0x2d, 0xa9, 0x66, 0x10, 0x2d, 0x88, 0x0f, 0xa2, 0x6d, 0xa9, 0x66, 0x10, 0x2d, 0xec, 0x20, 0xd8, 0xe0, 0xa5, 0x73, 0x36, 0x07, 0xc3, 0x2c, 0xfc, 0x78, 0x7e, 0x7c, 0x3b, 0x1e, 0x1f, 0x8f, 0x57, 0x5c, 0x71, 0x41, 0xb0, 0xc1, 0xf3, 0xbf, 0x3c, 0x16, 0x07, 0xc1, 0x82, 0x70, 0x71, 0x20, 0x12, 0x07, 0xaf, 0x11, 0x95, 0xda, 0xe0, 0xb1, 0xb0, 0x52, 0x87, 0x68, 0x0e, 0xbb, 0xc1, 0x02, 0x58, 0x9f, 0x35, 0x78, 0xfc, 0x4a, 0xd2, 0x21, 0x5f, 0xbb, 0xc1, 0x93, 0x9e, 0x92, 0x0e, 0xf9, 0xda, 0xe3, 0xf1, 0x0a, 0x82, 0x0d, 0x9e, 0xff, 0xe5, 0xb1, 0x38, 0xec, 0xc2, 0x6e, 0x10, 0x0c, 0xfb, 0x0b, 0xbb, 0x41, 0xb9, 0x77, 0xb8, 0xc1, 0xfa, 0x97, 0xfd, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0xd7, 0xd0, 0x50, 0x67, 0x43, 0x0c, 0xd7, 0xe0, 0x4c, 0x82, 0x3e, 0x08, 0x36, 0x38, 0x07, 0x7f, 0x1f, 0x12, 0xad, 0x87, 0x18, 0x1e, 0x4e, 0xb1, 0xe3, 0xf1, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0xdc, 0x20, 0x42, 0xa0, 0x6a, 0x36, 0x78, 0x2c, 0xac, 0xd4, 0x21, 0x75, 0x30, 0xec, 0x06, 0x0b, 0x60, 0x7d, 0x36, 0xc4, 0x70, 0x43, 0x0c, 0x07, 0xe1, 0xe2, 0x40, 0x24, 0x0e, 0xd3, 0xb9, 0xc1, 0x0b, 0x52, 0x1c, 0x0e, 0xa9, 0x9a, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x87, 0x5d, 0xd8, 0x0d, 0x1d, 0x47, 0x16, 0x76, 0x83, 0xd1, 0x8b, 0xb5, 0x41, 0x62, 0xd7, 0xcf, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x6b, 0x68, 0x24, 0xb8, 0x21, 0x86, 0x6b, 0x30, 0x32, 0x7b, 0xc7, 0x83, 0xc3, 0xe9, 0xc5, 0x21, 0x86, 0x87, 0x53, 0xec, 0x78, 0x3c, 0x08, 0x16, 0x0f, 0x1a, 0x7f, 0x23, 0x59, 0x1c, 0x64, 0x6b, 0xc8, 0x63, 0x2f, 0x0e, 0x82, 0x0d, 0x1a, 0xb9, 0x5e, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0xfc, 0xf6, 0xca, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x8b, 0x1b, 0xea, 0xf8, 0x86, 0x97, 0xef, 0x26, 0xf0, 0xcd, 0xea, 0xe4, 0xd8, 0xe1, 0x37, 0x9e, 0x8f, 0x07, 0xd1, 0xf1, 0x55, 0x73, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x87, 0x5d, 0xd8, 0x0d, 0xc6, 0x4c, 0xd7, 0xc2, 0x2e, 0xec, 0x06, 0x0d, 0x3c, 0xab, 0x2c, 0xec, 0x06, 0x2d, 0x4e, 0xc1, 0x1c, 0xd2, 0xb9, 0x87, 0xa3, 0xfd, 0x90, 0xce, 0x3d, 0x1c, 0xed, 0x6b, 0x30, 0x7e, 0xba, 0x36, 0xc4, 0x70, 0x10, 0x6c, 0xb0, 0xa6, 0x1d, 0xe2, 0xe0, 0x4c, 0x8a, 0x7e, 0x38, 0xc5, 0x8e, 0xc7, 0xc7, 0xe3, 0x05, 0xc1, 0xe2, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x87, 0xdd, 0xb0, 0xbe, 0xb7, 0x20, 0x58, 0x90, 0x0c, 0x08, 0xfd, 0xae, 0x83, 0xe1, 0x1f, 0x7b, 0x90, 0xa2, 0xfc, 0x3c, 0xec, 0x06, 0x25, 0xd1, 0xe1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0xac, 0xc2, 0xef, 0x19, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0x94, 0xbf, 0x5d, 0x07, 0xc3, 0x3f, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x10, 0xbc, 0x3b, 0x07, 0xc3, 0x3f, 0xf6, 0x60, 0xa0, 0x97, 0x1d, 0x87, 0x0e, 0x9e, 0xbb, 0x8c, 0x30, 0x08, 0x36, 0x78, 0x41, 0x42, 0xc2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb0, 0x21, 0x75, 0x70, 0x30, 0xd2, 0xb4, 0x8e, 0xc7, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0x60, 0x15, 0x7e, 0xcf, 0x20, 0xd8, 0x60, 0x5c, 0x98, 0x1d, 0x34, 0x53, 0x9f, 0x7f, 0x1c, 0x3a, 0x1e, 0x2f, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0x08, 0x36, 0xc4, 0x70, 0x71, 0xd8, 0x0d, 0xeb, 0x7b, 0x1b, 0x62, 0x38, 0xec, 0x86, 0x5d, 0x83, 0x0d, 0xd1, 0x3c, 0x28, 0x40, 0xce, 0x8e, 0xc7, 0x83, 0x60, 0x41, 0xb2, 0xc1, 0x62, 0x5b, 0x91, 0x09, 0xf6, 0xff, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x52, 0x07, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x61, 0x0e, 0x16, 0x0e, 0x27, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x83, 0xec, 0x60, 0xe1, 0x70, 0xc2, 0x20, 0x19, 0x32, 0x88, 0x36, 0x58, 0x60, 0xe0, 0x7f, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x87, 0xdd, 0xb0, 0xbe, 0xb7, 0x21, 0x86, 0xc3, 0x6f, 0x30, 0xc2, 0xaa, 0x16, 0x04, 0x4b, 0x10, 0xc5, 0x61, 0x37, 0x18, 0xf5, 0x92, 0x1b, 0x14, 0x71, 0x48, 0xc3, 0x6e, 0x10, 0x5a, 0xee, 0x1b, 0x14, 0x71, 0x48, 0xc3, 0x6e, 0xd0, 0xd8, 0x5f, 0xff, 0x1a, 0x8e, 0xf6, 0x41, 0xb0, 0x20, 0x19, 0x10, 0xf8, 0x7d, 0x07, 0xc7, 0xac, 0xe2, 0x83, 0x81, 0x2d, 0x7a, 0x30, 0xfe, 0x25, 0x0f, 0x0a, 0x95, 0xb3, 0xe3, 0xf1, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x7e, 0x41, 0xb4, 0xb0, 0x07, 0x11, 0xa9, 0x56, 0x73, 0x3c, 0x1e, 0x04, 0x0b, 0x92, 0x81, 0xa2, 0x75, 0x30, 0xfc, 0x63, 0x0f, 0x22, 0xe0, 0x9b, 0xe6, 0x78, 0xbc, 0xe2, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x06, 0x69, 0xb4, 0x0b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x06, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0xe0, 0xe9, 0xcc, 0x00, 0x00, 0x00, 0x18, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0xe4, 0x58, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xaa, 0x39, 0x58, 0x9b, 0x5f, 0x76, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0xa4, 0xfe, 0x63, 0x2c, 0x0e, 0x82, 0x05, 0xc1, 0x06, 0x89, 0xa1, 0x0b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x48, 0xa3, 0x5d, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0xd5, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0x03, 0x03, 0x33, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xd6, 0xe6, 0x97, 0x0d, 0xbf, 0xf1, 0x7c, 0x0c, 0x0e, 0xfa, 0xe3, 0xd0, 0x71, 0xe8, 0x20, 0x8a, 0xf5, 0x6a, 0x8e, 0x43, 0x83, 0x60, 0x83, 0x76, 0x8b, 0xa1, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x70, 0x0e, 0x35, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0x1d, 0x1c, 0xac, 0x4b, 0x38, 0x3b, 0x0e, 0x1d, 0xac, 0xcd, 0x2f, 0x3b, 0x0e, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0x14, 0xe4, 0x86, 0x8b, 0x83, 0x60, 0x83, 0x04, 0xc1, 0x85, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x17, 0x04, 0x1b, 0xa4, 0xd1, 0x2e, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x45, 0x95, 0xe0, 0x60, 0xa0, 0x97, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x90, 0x18, 0xba, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x30, 0x6a, 0x07, 0xc3, 0x51, 0x7a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x0d, 0x86, 0x66, 0xd7, 0xc1, 0x03, 0x80, 0x1f, 0x8e, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x44, 0x68, 0x62, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x71, 0x61, 0xb6, 0xc1, 0xd8, 0x70, 0x3d, 0x18, 0x1b, 0xae, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x60, 0xc8, 0xa3, 0x1f, 0x87, 0x8e, 0xc7, 0x2b, 0x08, 0x36, 0x28, 0xc8, 0x0d, 0x17, 0x07, 0xc1, 0x06, 0x8b, 0x6b, 0x54, 0x06, 0xc1, 0x82, 0x60, 0xe1, 0x17, 0x24, 0x83, 0xd1, 0xc1, 0x70, 0x94, 0x3e, 0x48, 0xc6, 0xa4, 0x3f, 0x48, 0x17, 0x1c, 0x1a, 0x04, 0x0b, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb0, 0x20, 0xd9, 0xa0, 0x88, 0xee, 0x3a, 0x38, 0xe7, 0x1d, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x8a, 0x45, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x01, 0x81, 0xde, 0x77, 0x70, 0xce, 0x3b, 0x3e, 0x24, 0x5a, 0x8f, 0x43, 0xc7, 0xe3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0xc5, 0x41, 0xb0, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xf6, 0x0a, 0x87, 0xdf, 0x78, 0x3e, 0xfc, 0x82, 0x64, 0xa0, 0xfc, 0x1d, 0x04, 0x39, 0xff, 0xc1, 0xb8, 0x83, 0x3a, 0x0e, 0x6d, 0x90, 0x40, 0x06, 0xbd, 0x41, 0x42, 0xd9, 0xc9, 0x20, 0x58, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xa9, 0x83, 0x83, 0xb6, 0xf4, 0x9e, 0x36, 0x48, 0x28, 0x3b, 0x19, 0x04, 0x2b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xad, 0xaa, 0x2b, 0x1d, 0x9c, 0x2e, 0xb0, 0x87, 0xdf, 0x78, 0x3e, 0xfc, 0x06, 0x31, 0x4d, 0x59, 0x73, 0x90, 0x6e, 0x29, 0x7d, 0x1c, 0xda, 0x20, 0xa1, 0xec, 0x64, 0x10, 0xac, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0xd4, 0xc1, 0x41, 0x71, 0x62, 0xb1, 0x41, 0x42, 0xd9, 0xc9, 0x20, 0x58, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xa9, 0x83, 0x83, 0x76, 0xc7, 0x4d, 0x36, 0x48, 0x48, 0xb9, 0x1f, 0x04, 0x2b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x75, 0x70, 0xd0, 0x28, 0xb4, 0xc9, 0x06, 0x09, 0x29, 0xf7, 0x83, 0x60, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xa4, 0x0e, 0x0e, 0x1e, 0x35, 0x3e, 0x33, 0x0e, 0x0a, 0x06, 0x5d, 0x83, 0xc2, 0x41, 0xe1, 0xa0, 0x70, 0x50, 0xd8, 0xc1, 0x6a, 0x06, 0xa0, 0x83, 0xd5, 0x0c, 0x40, 0x07, 0xab, 0x19, 0x80, 0x0e, 0x56, 0x33, 0x00, 0x1d, 0xac, 0x66, 0x00, 0x3a, 0x58, 0xcd, 0x00, 0x74, 0xb0, 0x9a, 0x01, 0xe8, 0xf8, 0x76, 0x3c, 0x5e, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x10, 0x6c, 0x90, 0x18, 0xba, 0x70, 0x90, 0xb8, 0x26, 0x3d, 0x08, 0x36, 0x68, 0xb4, 0x16, 0x6a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x05, 0xc1, 0x06, 0x27, 0x3e, 0xe3, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x6a, 0x90, 0xc0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc6, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0x1c, 0x6a, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x44, 0xc3, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0xd1, 0x5a, 0xa8, 0x83, 0xa8, 0xe9, 0x95, 0x39, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xce, 0xa1, 0xc6, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x0a, 0xb2, 0x9d, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x1a, 0xad, 0x85, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0x1d, 0x1c, 0x24, 0x6b, 0x1a, 0x1c, 0x87, 0x8e, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0x1c, 0x6a, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xc8, 0x9e, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0x68, 0x2d, 0xd4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xea, 0xe0, 0x20, 0xdd, 0xfb, 0xe2, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0x07, 0x43, 0x1e, 0xfd, 0x38, 0x74, 0x3c, 0x1e, 0x04, 0x1b, 0x14, 0xe4, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x38, 0xd7, 0x0e, 0x86, 0xa3, 0xf4, 0xa1, 0x51, 0xcb, 0x20, 0xd8, 0x10, 0xc3, 0x41, 0xb0, 0x38, 0x08, 0x16, 0x04, 0x0b, 0x92, 0xc1, 0x9f, 0x83, 0x73, 0xde, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xc3, 0x5e, 0xe1, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x27, 0xcc, 0xe3, 0x83, 0xd8, 0xe5, 0xab, 0x39, 0x0e, 0x0d, 0xbb, 0x20, 0xd8, 0x20, 0x72, 0xb1, 0x40, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x04, 0x26, 0xf6, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x50, 0x72, 0x70, 0xae, 0x3f, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x1c, 0x48, 0xd6, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xec, 0x15, 0x0e, 0xbf, 0xf1, 0x7c, 0xf8, 0x05, 0xc9, 0x40, 0xf9, 0x3b, 0x08, 0x78, 0xff, 0x83, 0xd3, 0x0a, 0xee, 0x71, 0xe8, 0x60, 0x6d, 0x7e, 0xd9, 0x71, 0xe8, 0x38, 0xb4, 0x71, 0x68, 0xd8, 0x85, 0x5d, 0x10, 0x6c, 0x10, 0xb9, 0x58, 0x20, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x02, 0x13, 0xfb, 0x20, 0xf6, 0x6b, 0x6b, 0x8e, 0x43, 0x0b, 0xbb, 0x20, 0xd8, 0xe0, 0x9c, 0x8a, 0x7c, 0x10, 0x35, 0xb4, 0x35, 0x87, 0x74, 0xee, 0xe1, 0x68, 0x5f, 0xd8, 0x85, 0xdb, 0xe0, 0x0d, 0xe4, 0x33, 0x07, 0xe9, 0xa7, 0x16, 0x0b, 0x82, 0x0d, 0xa2, 0x94, 0x0c, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x75, 0x70, 0xb0, 0x36, 0xbf, 0xec, 0x38, 0x74, 0x1c, 0x1a, 0x76, 0xe1, 0x36, 0x18, 0x6e, 0x0a, 0x83, 0x60, 0x83, 0xf7, 0x6b, 0xcf, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x0f, 0xe2, 0xe4, 0xb6, 0xe6, 0x38, 0xb4, 0x41, 0x5c, 0xf1, 0xd6, 0x1c, 0xac, 0xcc, 0xf7, 0x3a, 0xbe, 0x1d, 0x8f, 0x17, 0x04, 0x8b, 0x0b, 0x82, 0x05, 0xc9, 0x80, 0xc0, 0xef, 0x3a, 0x18, 0x86, 0x3e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xce, 0x35, 0xc5, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xb4, 0x64, 0x9e, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x89, 0x59, 0xda, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x40, 0x7b, 0xaa, 0x83, 0x61, 0xe8, 0x73, 0x1c, 0x3a, 0x0e, 0xad, 0x20, 0x58, 0x90, 0x0c, 0xa4, 0xbb, 0x0e, 0x86, 0xa1, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x4e, 0x2b, 0xb8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0x41, 0xd3, 0xa3, 0xfe, 0x07, 0xe3, 0x0e, 0xea, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0xa3, 0x90, 0x03, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0x86, 0x3a, 0xd5, 0xc1, 0x30, 0xf4, 0x39, 0x0e, 0x1d, 0x87, 0x16, 0x04, 0x1b, 0x44, 0x1d, 0x70, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x73, 0x4d, 0xf1, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x2d, 0x99, 0xe7, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x78, 0x68, 0x25, 0x7e, 0x10, 0xdf, 0xc2, 0x35, 0xc7, 0xa1, 0xe3, 0xd0, 0x0a, 0x82, 0x0d, 0xa2, 0x7f, 0xb8, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xa7, 0x15, 0xdc, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0xa0, 0xe9, 0x51, 0xff, 0x83, 0x74, 0x4b, 0xe9, 0xe3, 0xd0, 0x41, 0xec, 0x1a, 0xd7, 0x1c, 0x87, 0x06, 0xc1, 0x06, 0xcf, 0x46, 0x0c, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xf0, 0x43, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0x3a, 0xe0, 0x9a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xe7, 0x9a, 0xe2, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x5a, 0x32, 0xcf, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xb0, 0xd4, 0x45, 0xe5, 0x20, 0xbe, 0x85, 0x6b, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x82, 0x85, 0xdf, 0x78, 0x7c, 0x50, 0x32, 0x34, 0x0d, 0x82, 0x0d, 0xce, 0x26, 0xbd, 0x07, 0xed, 0xd9, 0xe9, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0xc9, 0xae, 0x83, 0x61, 0xe8, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xe2, 0x38, 0x68, 0x3b, 0x68, 0x2d, 0xf3, 0xf6, 0xf8, 0x76, 0x1c, 0x3a, 0x68, 0xcf, 0x4e, 0x7f, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x05, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x67, 0x23, 0x06, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x48, 0xf7, 0x8b, 0x1e, 0x7e, 0xe3, 0xf9, 0xc1, 0xe1, 0xd7, 0xf6, 0x38, 0x34, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0xd9, 0x88, 0x01, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x96, 0xf9, 0xca, 0x1c, 0xac, 0xf2, 0x90, 0x3a, 0x0e, 0x1d, 0xac, 0x85, 0x29, 0x19, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xf0, 0x6c, 0xc4, 0x80, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xc9, 0x9a, 0x06, 0xc3, 0x6f, 0x3c, 0x3f, 0x48, 0xff, 0x6d, 0x38, 0x0e, 0x1d, 0xac, 0x85, 0x29, 0x19, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xf0, 0x6c, 0xc4, 0x80, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xcb, 0xfd, 0x69, 0x86, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0x82, 0x75, 0x3c, 0x3e, 0x0e, 0x1d, 0xac, 0x85, 0x29, 0x19, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xf0, 0x6c, 0xc4, 0x80, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xcb, 0x8e, 0x6d, 0x86, 0xdf, 0x78, 0x7e, 0x10, 0x8f, 0x9b, 0x26, 0xc7, 0xa1, 0x83, 0xb5, 0x30, 0x25, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x9e, 0x8d, 0x18, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x69, 0x00, 0xcd, 0xf0, 0x1b, 0xcf, 0x0f, 0xd2, 0x2d, 0xa5, 0x8f, 0x43, 0x07, 0x6b, 0x61, 0x4a, 0x86, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0xc1, 0x2b, 0x90, 0x03, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x85, 0x05, 0x25, 0x07, 0xef, 0x4b, 0x0e, 0x18, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x28, 0x74, 0xb9, 0x0e, 0x86, 0xa1, 0xcf, 0x41, 0x7b, 0x76, 0xfa, 0x07, 0x6b, 0x61, 0x4a, 0x16, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0xac, 0xe1, 0x68, 0x1f, 0x04, 0x0b, 0x92, 0x01, 0xa5, 0x7a, 0xdf, 0xc1, 0xe9, 0x0c, 0xf9, 0xd0, 0xa8, 0x65, 0x10, 0x2c, 0x0e, 0xbb, 0xc1, 0xc8, 0x27, 0xdf, 0x10, 0xc3, 0x61, 0x17, 0x6e, 0xc3, 0x5e, 0xe1, 0x20, 0x58, 0x90, 0x6c, 0x50, 0x44, 0x77, 0x1d, 0x9c, 0xeb, 0x8f, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xf2, 0xb5, 0x07, 0xa3, 0xd5, 0xfc, 0x38, 0xb4, 0x21, 0xa3, 0x35, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xf7, 0x0f, 0x42, 0xc4, 0xff, 0x60, 0x2c, 0x6c, 0x1f, 0xdf, 0x8e, 0xc7, 0xc7, 0xe3, 0x41, 0xb0, 0x41, 0x3b, 0x98, 0xe8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x28, 0xa0, 0x05, 0x17, 0x37, 0x44, 0x73, 0x43, 0x27, 0xb5, 0x83, 0x93, 0xfa, 0xf9, 0xf1, 0x78, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x82, 0x60, 0x83, 0x17, 0x6d, 0x12, 0x0c, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0xac, 0xdd, 0xe5, 0x3a, 0x18, 0x86, 0x3e, 0x07, 0xed, 0xd9, 0xe9, 0x0f, 0x82, 0x0d, 0x62, 0xa6, 0xbb, 0xe6, 0xa0, 0x3d, 0x3b, 0xfd, 0x83, 0x38, 0x8d, 0xaf, 0x39, 0x88, 0x6b, 0xf9, 0x9a, 0xe3, 0xd0, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x19, 0x9c, 0x3b, 0x38, 0x66, 0x15, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x9c, 0x5a, 0x07, 0xc3, 0x51, 0x7a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x55, 0x33, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x50, 0xae, 0x77, 0x1d, 0x0c, 0x47, 0xe9, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0xf3, 0x75, 0x48, 0x2e, 0x0d, 0xbf, 0xf1, 0xfc, 0xe0, 0x2d, 0x46, 0x09, 0xc7, 0xa1, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x15, 0x04, 0x8b, 0xc3, 0x6e, 0x10, 0x7c, 0xcc, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x6d, 0xb0, 0x16, 0xb5, 0xe1, 0xa0, 0x38, 0xd4, 0xd8, 0xa0, 0xfd, 0xd5, 0xfb, 0x83, 0x15, 0x0b, 0x3a, 0xc7, 0xb7, 0x05, 0xc1, 0xe2, 0xb0, 0x1b, 0x04, 0x1f, 0xf3, 0x86, 0x18, 0x0e, 0xbb, 0xc1, 0x7a, 0xd2, 0xb0, 0x83, 0xc8, 0xdb, 0xaf, 0x39, 0xbe, 0x2d, 0x08, 0x16, 0x87, 0xdd, 0x20, 0xf8, 0x98, 0x37, 0xc4, 0x70, 0xd8, 0x85, 0xdb, 0x60, 0xe0, 0x1b, 0x1f, 0x14, 0x87, 0x1a, 0x07, 0x91, 0xb7, 0x5f, 0x73, 0x7c, 0x5b, 0x10, 0x2c, 0x0e, 0xbb, 0x41, 0xf0, 0x31, 0x6f, 0x88, 0xe1, 0xb0, 0x0b, 0xb7, 0x41, 0x09, 0x14, 0x79, 0x50, 0x1c, 0x6a, 0x1c, 0x44, 0xde, 0x7e, 0xcd, 0xf1, 0xed, 0x10, 0xc3, 0x61, 0x17, 0x04, 0x0b, 0xbf, 0xf0, 0x0b, 0x92, 0x81, 0xbc, 0xd7, 0xc1, 0x30, 0xf4, 0x39, 0x78, 0x6f, 0x5a, 0xc0, 0x41, 0xcb, 0xf9, 0x4b, 0x07, 0x03, 0x5b, 0x74, 0x41, 0xb0, 0x20, 0x19, 0x58, 0xaf, 0x3b, 0x38, 0xe7, 0x1d, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x7e, 0x83, 0xf8, 0x0a, 0xb0, 0x19, 0x24, 0x03, 0xed, 0xae, 0x8e, 0xc7, 0x07, 0x03, 0x5b, 0xf4, 0x38, 0x74, 0x88, 0xe1, 0xf1, 0xf8, 0x38, 0x74, 0x3c, 0x5e, 0x10, 0x6c, 0x90, 0xfa, 0x8f, 0xb1, 0x38, 0x08, 0x36, 0xc4, 0x70, 0x10, 0x2c, 0x08, 0x16, 0x24, 0x03, 0x65, 0xed, 0xe0, 0x24, 0x74, 0x7c, 0x30, 0xcc, 0xc2, 0x07, 0xc1, 0xe2, 0xb0, 0x0b, 0x82, 0x05, 0xc9, 0xa0, 0xe6, 0xe0, 0x9c, 0x77, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xbc, 0xe9, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0xed, 0x83, 0x2d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0x02, 0xbd, 0xef, 0xe0, 0x74, 0x86, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xb0, 0x57, 0x38, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x88, 0x69, 0xca, 0x9a, 0x83, 0x92, 0xa1, 0xe9, 0x38, 0x74, 0xb0, 0x36, 0xbf, 0xec, 0x38, 0x74, 0x1c, 0x5a, 0x10, 0x2c, 0x48, 0x06, 0xca, 0xda, 0xc1, 0xd9, 0xcb, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x38, 0xd7, 0x0e, 0xce, 0x5e, 0xc6, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xa2, 0x05, 0xf7, 0x07, 0xc1, 0x06, 0xd1, 0x3e, 0xd8, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xb0, 0x57, 0x78, 0x90, 0xb8, 0x37, 0x73, 0x1c, 0x3a, 0xa4, 0x0e, 0x8e, 0x43, 0xc7, 0xa1, 0x61, 0x17, 0x76, 0x41, 0xb0, 0x41, 0x14, 0x1f, 0xd8, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x6f, 0x3a, 0x07, 0x51, 0x9d, 0x60, 0x73, 0x1c, 0x5a, 0xd8, 0x05, 0xc1, 0x06, 0x91, 0x86, 0x23, 0x72, 0x10, 0x3b, 0x08, 0x36, 0x87, 0x74, 0xee, 0xe1, 0x68, 0x5f, 0x10, 0x2d, 0xb8, 0x3f, 0x08, 0x36, 0x88, 0xf6, 0xc1, 0x96, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xa3, 0xb2, 0xf9, 0x20, 0x71, 0x6f, 0xe6, 0x38, 0x74, 0x48, 0x1d, 0x0c, 0xbb, 0x70, 0x1b, 0x0c, 0x37, 0x85, 0x41, 0xb0, 0x41, 0x5c, 0xa6, 0xd7, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x0f, 0x62, 0x69, 0xc1, 0xe6, 0x38, 0xb4, 0x20, 0xd8, 0x20, 0xb6, 0x19, 0x6c, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xc4, 0x83, 0x83, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x07, 0xd1, 0x3d, 0x61, 0x73, 0x1c, 0x3a, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x83, 0x11, 0xa6, 0x70, 0x3c, 0x3e, 0xbe, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0xa4, 0xfe, 0x63, 0x2c, 0x0e, 0x82, 0x0d, 0x62, 0x60, 0x60, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x89, 0xa1, 0x0b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xa9, 0x9a, 0x83, 0x28, 0xd6, 0xab, 0x39, 0x0e, 0x1d, 0xac, 0xcd, 0x2f, 0x3b, 0x0e, 0x1d, 0x8f, 0x57, 0x5c, 0x1c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x29, 0x83, 0x93, 0x06, 0x00, 0x00, 0xc0, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xeb, 0xc4, 0x90, 0x34, 0x00, 0x00, 0x00, 0x06, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0xb4, 0xd1, 0xa3, 0x01, 0x00, 0x00, 0x30, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x14, 0xfa, 0x17, 0x0d, 0x00, 0x00, 0x80, 0x01, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0x47, 0xa9, 0x92, 0x68, 0x00, 0x00, 0x00, 0x0c, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x87, 0x4a, 0x41, 0x03, 0x00, 0x00, 0x60, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xab, 0xac, 0x04, 0x1a, 0x00, 0x00, 0x00, 0x03, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x17, 0x53, 0xf8, 0xcf, 0x00, 0x00, 0x00, 0x18, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xfc, 0xb4, 0x58, 0x7e, 0x06, 0x00, 0x00, 0xc0, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xd9, 0x40, 0xeb, 0x33, 0x00, 0x00, 0x00, 0x06, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x5e, 0xe0, 0x1d, 0x9f, 0x01, 0x00, 0x00, 0x30, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xde, 0x1d, 0xf6, 0x0c, 0x00, 0x00, 0x80, 0x01, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x57, 0xe5, 0xa1, 0x67, 0x00, 0x00, 0x00, 0x0c, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x3c, 0x1e, 0x3c, 0x03, 0x00, 0x00, 0x60, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe6, 0xee, 0x87, 0xd7, 0x19, 0x00, 0x00, 0x00, 0x03, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xef, 0x03, 0x80, 0xce, 0x00, 0x00, 0x00, 0x18, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xb8, 0x85, 0x0f, 0x73, 0x06, 0x00, 0x00, 0xc0, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x5f, 0xf7, 0x90, 0x33, 0x00, 0x00, 0x00, 0x06, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x6d, 0x96, 0x2d, 0x9c, 0x01, 0x00, 0x00, 0x30, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xee, 0x7f, 0x8b, 0xdf, 0x0c, 0x00, 0x00, 0x80, 0x01, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x63, 0x52, 0xed, 0x66, 0x00, 0x00, 0x00, 0x0c, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x46, 0xf2, 0x36, 0x03, 0x00, 0x00, 0x60, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd6, 0x27, 0xcd, 0xb3, 0x19, 0x00, 0x00, 0x00, 0x03, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x06, 0x56, 0x80, 0xcd, 0x00, 0x00, 0x00, 0x18, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x74, 0x16, 0x12, 0x6b, 0x06, 0x00, 0x00, 0xc0, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0xe5, 0x0b, 0x51, 0x33, 0x00, 0x00, 0x00, 0x06, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xac, 0x0c, 0x6a, 0x9a, 0x01, 0x00, 0x00, 0xd0, 0x0a, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x8e, 0x83, 0x4f, 0x83, 0xd7, 0x83, 0xbb, 0x83, 0x93, 0x83, 0x87, 0x07, 0x89, 0xd9, 0x4e, 0xc7, 0xb7, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0xc7, 0xc1, 0x9b, 0xc1, 0xdf, 0x83, 0x98, 0xed, 0xb1, 0x39, 0xbe, 0x2d, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x38, 0x0e, 0x4e, 0x0d, 0x5e, 0x0f, 0x5e, 0x0e, 0x3e, 0x1f, 0xc4, 0x74, 0x8f, 0xcd, 0xf1, 0x6d, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0xc5, 0x71, 0xf0, 0x6b, 0xf0, 0x72, 0x70, 0x72, 0x70, 0xf7, 0x20, 0x6e, 0x80, 0x6c, 0x8e, 0x6f, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x8e, 0x83, 0x53, 0x83, 0xa3, 0x83, 0xd7, 0x83, 0xcb, 0x07, 0x71, 0x05, 0x64, 0x73, 0x7c, 0x5b, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x71, 0x1c, 0xdc, 0x18, 0x5c, 0x1e, 0x3c, 0x3d, 0x88, 0xe9, 0x1e, 0x9b, 0xe3, 0xdb, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x8b, 0xe3, 0xe0, 0xd3, 0xe0, 0xe1, 0xe0, 0xf4, 0xe0, 0xf5, 0xe0, 0xf2, 0x41, 0x4c, 0xf7, 0xd8, 0x1c, 0xdf, 0x0e, 0x31, 0x5c, 0x1c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x83, 0x93, 0x06, 0x00, 0x00, 0xc0, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0xc4, 0x90, 0x34, 0x00, 0x00, 0x00, 0x06, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xb4, 0xd1, 0xa3, 0x01, 0x00, 0x00, 0x30, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0xfa, 0x17, 0x0d, 0x00, 0x00, 0x80, 0x01, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0xa9, 0x92, 0x68, 0x00, 0x00, 0x00, 0x0c, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x87, 0x4a, 0x41, 0x03, 0x00, 0x00, 0x60, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xac, 0xac, 0x04, 0x1a, 0x00, 0x00, 0x00, 0x03, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x53, 0xf8, 0xcf, 0x00, 0x00, 0x00, 0x18, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x58, 0x7e, 0x06, 0x00, 0x00, 0xc0, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xda, 0x40, 0xeb, 0x33, 0x00, 0x00, 0x00, 0x06, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xe0, 0x1d, 0x9f, 0x01, 0x00, 0x00, 0x30, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xde, 0x1d, 0xf6, 0x0c, 0x00, 0x00, 0x80, 0x01, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0xe5, 0xa1, 0x67, 0x00, 0x00, 0x00, 0x0c, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x3c, 0x1e, 0x3c, 0x03, 0x00, 0x00, 0x60, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xef, 0x87, 0xd7, 0x19, 0x00, 0x00, 0x00, 0x03, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x80, 0xce, 0x00, 0x00, 0x00, 0x18, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x85, 0x0f, 0x73, 0x06, 0x00, 0x00, 0xc0, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xf7, 0x90, 0x33, 0x00, 0x00, 0x00, 0x06, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x96, 0x2d, 0x9c, 0x01, 0x00, 0x00, 0x30, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x8b, 0xdf, 0x0c, 0x00, 0x00, 0x80, 0x01, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x52, 0xed, 0x66, 0x00, 0x00, 0x00, 0x0c, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x46, 0xf2, 0x36, 0x03, 0x00, 0x00, 0x60, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0xcd, 0xb3, 0x19, 0x00, 0x00, 0x00, 0x03, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x56, 0x80, 0xcd, 0x00, 0x00, 0x00, 0x18, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x16, 0x12, 0x6b, 0x06, 0x00, 0x00, 0xc0, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe6, 0x0b, 0x51, 0x33, 0x00, 0x00, 0x00, 0x06, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x0c, 0x6a, 0x9a, 0x01, 0x00, 0x00, 0xd0, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x8b, 0xe3, 0xe0, 0xca, 0xe0, 0xe1, 0xe0, 0xee, 0xe0, 0xf5, 0xe0, 0xe1, 0xe0, 0xf2, 0x41, 0x62, 0xb6, 0xd3, 0xf1, 0x6d, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0xc5, 0x71, 0x70, 0x63, 0xf0, 0x72, 0x70, 0x71, 0x70, 0xf9, 0x20, 0x7e, 0xcc, 0x6c, 0x8e, 0x6f, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x8e, 0x83, 0x37, 0x83, 0x87, 0x83, 0xcb, 0x83, 0x8f, 0x07, 0xc7, 0x5a, 0xba, 0xe3, 0xdb, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x8b, 0xe3, 0xe0, 0xc1, 0xe0, 0xf0, 0xe0, 0xf2, 0xc1, 0xa0, 0x94, 0x3a, 0xbe, 0x2d, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x38, 0x0e, 0xde, 0x1c, 0xc4, 0x7c, 0x8f, 0xcd, 0xf1, 0x6d, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0xc5, 0x71, 0x70, 0x65, 0xf0, 0xfa, 0xe0, 0xa0, 0xd4, 0x73, 0x7c, 0x5b, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x71, 0x1c, 0x5c, 0x19, 0xbc, 0x1e, 0x9c, 0x3d, 0x48, 0xcc, 0x76, 0x3a, 0xbe, 0x2d, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x38, 0x0e, 0x1e, 0x0c, 0x5e, 0x0f, 0x7e, 0x0e, 0x5e, 0x1f, 0xbc, 0xcd, 0x1e, 0xe6, 0xf8, 0xb6, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xe2, 0x38, 0xf8, 0x34, 0x78, 0x39, 0x38, 0x3c, 0x38, 0x3d, 0x78, 0x39, 0x78, 0x3b, 0xb8, 0x38, 0x78, 0x79, 0x50, 0xf0, 0x6c, 0x1e, 0xdf, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x1c, 0x07, 0x7f, 0x06, 0x1f, 0x07, 0xa7, 0x07, 0x7f, 0x0f, 0x62, 0x0f, 0xce, 0xe6, 0xf8, 0xb6, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xe2, 0x38, 0xb8, 0x33, 0xf8, 0x3b, 0xb8, 0x7d, 0x10, 0x3b, 0x70, 0x36, 0xc7, 0xb7, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0xc7, 0xc1, 0x89, 0xc1, 0xcb, 0xc1, 0xc7, 0x83, 0xd8, 0x81, 0xb3, 0x39, 0xbe, 0x1d, 0x62, 0x78, 0x3c, 0x1e, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x36, 0x48, 0xa3, 0x5d, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x10, 0xc5, 0x7a, 0x35, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xc4, 0xc0, 0xc0, 0xcc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x4e, 0x8e, 0xc5, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xd6, 0xe6, 0x97, 0x1d, 0x52, 0x35, 0xc7, 0xa1, 0x83, 0x75, 0x09, 0x67, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0xf8, 0x78, 0xbc, 0xb8, 0xf0, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x76, 0xc3, 0xfa, 0xde, 0x86, 0x18, 0x0e, 0x82, 0x15, 0x04, 0x1b, 0xb4, 0xec, 0x68, 0x7e, 0x90, 0xe2, 0xe7, 0x70, 0x10, 0x39, 0xba, 0x32, 0x83, 0x60, 0x85, 0x5f, 0x10, 0x2c, 0x48, 0x06, 0xee, 0xaf, 0x83, 0xb3, 0x97, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x78, 0xe5, 0x98, 0x39, 0x78, 0x57, 0xb8, 0xd5, 0xa1, 0xf9, 0xcb, 0xf1, 0xf8, 0x38, 0x74, 0x7c, 0x3b, 0xc4, 0x70, 0x10, 0x6c, 0xf0, 0xc0, 0x5d, 0x81, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xe2, 0xb0, 0x0b, 0x77, 0xd0, 0x34, 0x49, 0xcc, 0x82, 0x6c, 0x0d, 0x79, 0xec, 0xc5, 0x41, 0xb0, 0xc1, 0x03, 0x69, 0x01, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x34, 0x48, 0x36, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xe2, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x09, 0x78, 0xdc, 0xde, 0xca, 0xde, 0xd8, 0xe1, 0x37, 0x9e, 0x8f, 0x07, 0x91, 0x33, 0x68, 0x73, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x0f, 0xa7, 0xd8, 0xb0, 0x0b, 0xb7, 0x20, 0xd8, 0x20, 0x52, 0x14, 0x6c, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xf2, 0xb5, 0x87, 0xf8, 0x1f, 0x87, 0x0e, 0x8e, 0x3c, 0xc5, 0x0b, 0xbb, 0x70, 0x1b, 0x92, 0x7a, 0x87, 0x7c, 0xed, 0x0a, 0x82, 0x0d, 0x12, 0xe5, 0x51, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xc5, 0xa2, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xe2, 0xba, 0x5a, 0xe6, 0x20, 0x8a, 0x0a, 0x6d, 0x8e, 0x43, 0x87, 0x68, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x41, 0xbc, 0x20, 0xd8, 0x20, 0x4e, 0xb2, 0x65, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x9c, 0x0a, 0xc9, 0x0f, 0xf1, 0x3f, 0x0e, 0x0d, 0x82, 0x0d, 0xe2, 0x36, 0xb6, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x61, 0xed, 0xf7, 0xe0, 0x54, 0x48, 0x7e, 0x1c, 0x1a, 0x44, 0x0b, 0xbb, 0x41, 0x8c, 0x1b, 0xda, 0x1c, 0x62, 0x78, 0x3c, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf4, 0x90, 0xd4, 0x3b, 0x1e, 0x1f, 0xdf, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0x38, 0xe0, 0xb3, 0xd5, 0xb9, 0x95, 0x1b, 0x04, 0xbc, 0x7f, 0xc7, 0xe3, 0xe1, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x24, 0x03, 0xc2, 0xdf, 0xe9, 0xe0, 0x24, 0x74, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x28, 0x16, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0x8e, 0x86, 0xcb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xaa, 0x66, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x17, 0x66, 0x10, 0x6c, 0x10, 0x19, 0x32, 0x22, 0x07, 0x29, 0x7e, 0x0e, 0x83, 0x60, 0x41, 0x32, 0x10, 0xa6, 0x83, 0xb3, 0x97, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa1, 0x58, 0x74, 0x90, 0xfa, 0x0c, 0x7d, 0x1c, 0x3a, 0x1e, 0x1f, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0x38, 0xe0, 0xbb, 0xd5, 0xb1, 0x95, 0x07, 0x31, 0xe8, 0x68, 0x73, 0x3c, 0x3e, 0x1e, 0x1f, 0x8f, 0x57, 0x71, 0x41, 0xb0, 0xb8, 0xf0, 0x0b, 0x82, 0x0d, 0x9e, 0x2d, 0x51, 0xb1, 0x38, 0x08, 0x16, 0x7e, 0x41, 0xb0, 0xc1, 0xab, 0x57, 0x05, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x3f, 0x78, 0xe6, 0xaa, 0xc0, 0x71, 0xe8, 0xf8, 0x36, 0xfc, 0x82, 0x68, 0xc1, 0xed, 0x41, 0xb0, 0xc1, 0xcb, 0x1e, 0x68, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x43, 0x7f, 0xf2, 0x83, 0xb0, 0xa7, 0x3e, 0x34, 0x1d, 0x3a, 0x0e, 0x0d, 0xa2, 0x05, 0xe3, 0x41, 0xb0, 0xc1, 0xcb, 0x1e, 0x68, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0xfc, 0xe0, 0x21, 0x8e, 0x14, 0x87, 0xf8, 0x1f, 0x87, 0x8e, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0xc1, 0x39, 0xd4, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xe7, 0x50, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x49, 0x6e, 0xcd, 0x07, 0x8f, 0x9d, 0xa9, 0x38, 0x0e, 0x4d, 0x90, 0x7e, 0x3f, 0x0e, 0x0d, 0xbb, 0xb0, 0x0b, 0xb7, 0x41, 0x42, 0x0e, 0xc2, 0x20, 0xd8, 0x20, 0xc6, 0xaf, 0x3c, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x2c, 0xfd, 0x1f, 0x1b, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0x9a, 0x3b, 0x1d, 0x9c, 0xbd, 0x8c, 0x0f, 0x9e, 0xb1, 0x3c, 0x73, 0x1c, 0x3a, 0x0e, 0x2d, 0xec, 0xc2, 0x2e, 0xdc, 0x06, 0x8f, 0x9d, 0xa9, 0x38, 0xc4, 0xf0, 0xb0, 0xbe, 0xb9, 0xb0, 0x0b, 0xbb, 0x70, 0x1b, 0xc4, 0xd1, 0xa7, 0xcd, 0x21, 0x86, 0x87, 0xf5, 0xcd, 0x85, 0x5d, 0x10, 0x6c, 0xd0, 0x8e, 0xf5, 0xfd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x22, 0x12, 0x5c, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x11, 0x09, 0x2e, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0xc9, 0xad, 0xf9, 0x20, 0x99, 0x3e, 0xe3, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0xd2, 0xff, 0xb1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x8d, 0x25, 0x42, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x48, 0x8c, 0xcf, 0x98, 0x60, 0xfd, 0xfe, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0xe3, 0x57, 0x1e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x83, 0xa4, 0x0b, 0x80, 0xe3, 0xd0, 0x71, 0x68, 0x61, 0x17, 0x04, 0x1b, 0x44, 0x2e, 0x56, 0xc7, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x90, 0xcf, 0x1e, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0xc6, 0xaf, 0x3c, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x3f, 0x78, 0x60, 0xcc, 0xd7, 0x71, 0xe8, 0x38, 0xb4, 0xb0, 0x0b, 0x82, 0x0d, 0x22, 0x17, 0xab, 0x63, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x9a, 0x7b, 0xc6, 0x41, 0x24, 0xb7, 0xda, 0x1c, 0x87, 0x0e, 0xe9, 0xdc, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x0b, 0x82, 0x05, 0xc1, 0x82, 0x60, 0x41, 0x32, 0x30, 0x54, 0x87, 0x6c, 0xc5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa1, 0x58, 0xb4, 0x21, 0x75, 0x30, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0xa8, 0x57, 0x87, 0x6c, 0xc5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xb2, 0x63, 0x83, 0x90, 0xcf, 0xde, 0xa0, 0xc8, 0x55, 0xd8, 0x20, 0xcd, 0x3d, 0x63, 0x83, 0xb1, 0xe1, 0x7a, 0x48, 0x1d, 0x1c, 0x87, 0x8e, 0x43, 0x83, 0x60, 0x41, 0xb2, 0xc1, 0x20, 0x79, 0x39, 0x38, 0x9d, 0x21, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0x9d, 0x5b, 0xf3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x9c, 0x30, 0x8f, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x24, 0xb9, 0x35, 0x1f, 0xbc, 0x81, 0x7c, 0xe6, 0x38, 0x74, 0x48, 0x1d, 0x1c, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x6c, 0xf0, 0xbe, 0x1f, 0x8e, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x87, 0x93, 0xe2, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x38, 0xcc, 0x24, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x34, 0x9e, 0x3f, 0x48, 0x69, 0xb4, 0x39, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x90, 0x22, 0x14, 0x72, 0x90, 0xe2, 0xe7, 0x70, 0x1c, 0x3a, 0x1e, 0x1f, 0x87, 0x86, 0x5d, 0xb8, 0x05, 0xc1, 0x06, 0x71, 0x99, 0x5e, 0x73, 0x30, 0xb0, 0x45, 0x0f, 0x22, 0x55, 0xd5, 0x66, 0x41, 0xb0, 0x20, 0x58, 0x10, 0x2c, 0x0e, 0xbb, 0x61, 0x7d, 0x6f, 0x41, 0xb0, 0xc1, 0x5b, 0x42, 0x01, 0x0e, 0xc6, 0x87, 0xd1, 0x20, 0x19, 0x32, 0x88, 0x16, 0xcc, 0x17, 0x04, 0x1b, 0x3c, 0x41, 0x85, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0xf2, 0x66, 0xcd, 0x86, 0xac, 0xdd, 0x41, 0x22, 0x66, 0xcd, 0x71, 0xe8, 0xb0, 0x57, 0x78, 0x50, 0xd4, 0x9c, 0x1d, 0xdf, 0x06, 0xc1, 0x06, 0x09, 0x5b, 0x29, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xa9, 0x83, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x1b, 0xbc, 0x1f, 0xa1, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x50, 0x2c, 0x5a, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xa3, 0x8e, 0xf2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x24, 0xb7, 0xe6, 0x83, 0x37, 0x52, 0xda, 0x1c, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0xf7, 0xd3, 0xc1, 0x81, 0x22, 0x79, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xe1, 0xa4, 0xf8, 0x90, 0xaa, 0x39, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0xc7, 0xa1, 0x41, 0xb0, 0x20, 0x19, 0xa8, 0x57, 0x07, 0x01, 0xef, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xb4, 0x9a, 0x6f, 0x50, 0xd2, 0x34, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0xea, 0x50, 0xca, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa1, 0x58, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x74, 0x1d, 0x04, 0xbc, 0xff, 0xc1, 0xc0, 0x16, 0x3d, 0x0e, 0x6d, 0xd8, 0x2b, 0xdc, 0x60, 0x6c, 0xb8, 0x4e, 0xf0, 0x7f, 0xff, 0x71, 0xe8, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0x1c, 0xf0, 0xd0, 0xe6, 0xd8, 0x43, 0x6a, 0xe9, 0x78, 0xbc, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0xd8, 0x85, 0x5b, 0x10, 0x6c, 0x90, 0x20, 0xb8, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0xa0, 0x54, 0xef, 0x3b, 0x38, 0x09, 0x1d, 0x1f, 0x3a, 0x68, 0x1c, 0xb2, 0x76, 0xc7, 0xa1, 0x43, 0x0c, 0x17, 0x04, 0x8b, 0xc3, 0x6e, 0x58, 0x41, 0xdd, 0x10, 0xc3, 0x05, 0xc1, 0x06, 0xf1, 0x10, 0x37, 0x73, 0x30, 0x42, 0xc2, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0x60, 0x3d, 0x08, 0x36, 0x88, 0x91, 0xb6, 0x99, 0x83, 0x11, 0x12, 0x76, 0x3c, 0x3e, 0xbe, 0x1d, 0x4e, 0xb1, 0xe3, 0xf1, 0x0a, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb0, 0xc1, 0x61, 0xf5, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x5f, 0xbb, 0x21, 0x6b, 0xb7, 0xf0, 0x1b, 0xcf, 0xc7, 0xe0, 0x01, 0x80, 0x0d, 0x0e, 0x44, 0xfc, 0x1b, 0x8c, 0x0d, 0xd7, 0x83, 0xf4, 0xb2, 0x9e, 0xe3, 0xd0, 0xf1, 0x78, 0x05, 0xc1, 0x06, 0x23, 0xff, 0x61, 0x71, 0x10, 0x2c, 0x08, 0x36, 0x68, 0xd9, 0xd1, 0xfc, 0x60, 0xd4, 0x67, 0x0c, 0x82, 0x05, 0xc1, 0x06, 0xcf, 0x1d, 0x30, 0x39, 0x18, 0xd8, 0xa2, 0xc3, 0x2e, 0xdc, 0xc6, 0xa1, 0x43, 0x0b, 0xa0, 0x0d, 0xa9, 0x83, 0x61, 0x17, 0x04, 0x1b, 0x44, 0x2e, 0x56, 0xc7, 0xc1, 0x33, 0x2a, 0x28, 0x16, 0x04, 0x1b, 0xbc, 0x40, 0xd6, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x55, 0x33, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0xd9, 0xa0, 0x9c, 0xd5, 0x39, 0x38, 0x7b, 0x19, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x7a, 0x47, 0x3b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x84, 0x7c, 0xf6, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xed, 0x3d, 0xae, 0x1c, 0x1a, 0xb5, 0x1c, 0x87, 0x0e, 0x06, 0x7e, 0xc8, 0x71, 0xe8, 0x38, 0x34, 0x08, 0x16, 0x24, 0x1b, 0x14, 0xfe, 0x41, 0x07, 0x67, 0x2f, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x44, 0xef, 0x68, 0xc7, 0xc1, 0x33, 0x2a, 0x28, 0x0e, 0xa9, 0x9a, 0xe3, 0xd0, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0x08, 0x16, 0x24, 0x03, 0x63, 0x75, 0x48, 0x2e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x64, 0xed, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0x75, 0x61, 0xc4, 0x41, 0xea, 0xd8, 0xce, 0x86, 0x7c, 0xed, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xab, 0x0b, 0x23, 0x0e, 0x96, 0x2e, 0xfc, 0x1c, 0x87, 0x8e, 0xc7, 0x2b, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x87, 0x5d, 0xb8, 0x0d, 0x62, 0x22, 0xda, 0x66, 0x10, 0x6c, 0x70, 0x72, 0x2c, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x1e, 0xa4, 0xfe, 0xe8, 0x1c, 0x87, 0x16, 0x04, 0x2b, 0x08, 0x16, 0x24, 0x03, 0x02, 0xbd, 0xef, 0xe0, 0x24, 0x74, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xf5, 0x66, 0x25, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x1f, 0x44, 0xc7, 0xb9, 0xcd, 0x71, 0xe8, 0x90, 0xaf, 0x3d, 0x0e, 0x1d, 0x62, 0x38, 0x08, 0x56, 0xf8, 0x05, 0xc1, 0x06, 0xb1, 0xbf, 0x67, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0xd8, 0x20, 0x5e, 0x39, 0x66, 0x0e, 0xc6, 0x71, 0xc8, 0xa1, 0xf9, 0xcb, 0xf1, 0xf8, 0x38, 0x74, 0x7c, 0x3b, 0x88, 0xc6, 0x75, 0x9b, 0x41, 0xb0, 0x38, 0xec, 0x06, 0xe3, 0x90, 0x69, 0x41, 0xb0, 0x41, 0x7a, 0x42, 0xca, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x96, 0x73, 0xf0, 0x0f, 0xca, 0x25, 0x9a, 0xe3, 0xd0, 0xf0, 0x0b, 0xa2, 0x05, 0xe3, 0x41, 0xb0, 0x20, 0x19, 0xc8, 0x56, 0x1d, 0x04, 0x39, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x62, 0xb8, 0x9e, 0x63, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0xfe, 0x07, 0x63, 0xec, 0xe9, 0x38, 0x74, 0x70, 0x20, 0xe2, 0x3f, 0x0e, 0x1d, 0x8f, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x68, 0x4d, 0xa3, 0x39, 0x28, 0x5f, 0xa6, 0x86, 0xdd, 0x60, 0xd4, 0x4b, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x64, 0x10, 0x6d, 0x30, 0xd6, 0x9a, 0x06, 0xd1, 0x82, 0xf5, 0x41, 0x89, 0xed, 0x36, 0x88, 0x16, 0x84, 0x07, 0x83, 0x5a, 0xf6, 0x78, 0x3c, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x64, 0x10, 0x6d, 0x30, 0xd6, 0x9a, 0x06, 0xd1, 0x06, 0x31, 0x5e, 0x6f, 0x33, 0x88, 0x16, 0xa4, 0x1b, 0xb2, 0x76, 0x87, 0x71, 0x39, 0x1e, 0x1f, 0xdf, 0x0e, 0xa7, 0xd8, 0xf1, 0x78, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0xbb, 0x70, 0x0b, 0x82, 0x0d, 0x12, 0x04, 0x17, 0x0e, 0x3f, 0x2a, 0x1c, 0x62, 0xb8, 0x20, 0x58, 0xf8, 0x05, 0xc9, 0x40, 0x79, 0x3a, 0x38, 0x09, 0x1d, 0x1f, 0xa4, 0xa6, 0x75, 0x0c, 0x82, 0x05, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0xd8, 0x20, 0x86, 0xeb, 0x39, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0xfa, 0x3a, 0x1d, 0x9c, 0xce, 0x90, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x94, 0x68, 0x38, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xc4, 0x59, 0x3e, 0xc7, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0x20, 0xe9, 0x96, 0xe5, 0x38, 0x74, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0xbc, 0xef, 0x74, 0x70, 0x3a, 0x43, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x0d, 0x31, 0x1c, 0x04, 0x1b, 0xc4, 0x6d, 0x6c, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xd4, 0xb0, 0x93, 0x43, 0xd6, 0xee, 0x38, 0x74, 0xc8, 0xd7, 0x1e, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0xb0, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x04, 0x0b, 0xbf, 0x61, 0xaf, 0xf0, 0xe0, 0xbd, 0x69, 0x01, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x85, 0xdf, 0xb0, 0x57, 0x78, 0x50, 0x32, 0x34, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0xee, 0x06, 0x6e, 0x0e, 0x69, 0xb8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xe2, 0x6e, 0xe0, 0xe6, 0xd0, 0x41, 0xe3, 0x38, 0x74, 0x1c, 0x3a, 0x1e, 0x0f, 0x82, 0xc5, 0x05, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0x58, 0x1c, 0x76, 0xc3, 0x5a, 0xe8, 0x86, 0x18, 0x0e, 0xbb, 0x61, 0x05, 0x75, 0x43, 0x0c, 0x17, 0x04, 0x0b, 0xbf, 0xc1, 0xe0, 0x9d, 0x3c, 0x28, 0x19, 0x9a, 0x0e, 0xce, 0xaa, 0xcc, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x10, 0x1f, 0x1c, 0xfc, 0x97, 0x8f, 0xc7, 0xc7, 0xb7, 0xe3, 0xf1, 0x0a, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0x82, 0x0d, 0xd2, 0xdd, 0x77, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0xdf, 0x10, 0xcd, 0x0d, 0x8d, 0x04, 0x37, 0x74, 0x52, 0xdb, 0xd0, 0x84, 0xeb, 0x10, 0xc3, 0xe3, 0xd0, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x06, 0xbb, 0xc3, 0x0a, 0xed, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x1b, 0x24, 0xee, 0xcd, 0x6c, 0x90, 0x52, 0x3a, 0xb3, 0x41, 0xa3, 0xe2, 0x4c, 0x1b, 0x24, 0x0d, 0x20, 0x1c, 0x62, 0x78, 0x1c, 0x1a, 0x04, 0x0b, 0x82, 0x0d, 0x56, 0x32, 0xb9, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0x04, 0x82, 0xff, 0x7d, 0x09, 0x0c, 0xff, 0xf7, 0x25, 0x68, 0xff, 0xbe, 0x04, 0xef, 0xbf, 0x1f, 0x62, 0x78, 0x1c, 0x1a, 0x04, 0x0b, 0x82, 0x0d, 0x56, 0x13, 0x04, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0x04, 0x9a, 0xff, 0xbf, 0x5f, 0x02, 0xc7, 0xff, 0xfb, 0x25, 0x90, 0xfc, 0x7f, 0xbf, 0x04, 0x96, 0xff, 0xdf, 0x1f, 0x62, 0x78, 0x1c, 0xda, 0x10, 0xff, 0x0d, 0x2d, 0x80, 0x36, 0x34, 0x1d, 0xda, 0x20, 0x59, 0x03, 0x61, 0x83, 0xb0, 0xa7, 0xde, 0x90, 0xb5, 0xdb, 0xd0, 0x43, 0x68, 0x43, 0xe3, 0xa2, 0x0d, 0x9d, 0xd4, 0x36, 0x34, 0xe1, 0xda, 0x10, 0xcd, 0x0d, 0x8d, 0x04, 0x37, 0x08, 0xb2, 0xf8, 0x0d, 0x02, 0x37, 0x7e, 0x83, 0xb5, 0x3b, 0x08, 0x07, 0xeb, 0xd4, 0x7a, 0x8e, 0xc7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x06, 0xcb, 0xe0, 0x05, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x07, 0x2b, 0x68, 0x54, 0x8e, 0x43, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xc1, 0x06, 0xe9, 0xee, 0x3b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x6f, 0x88, 0xe6, 0x86, 0x66, 0x3c, 0x1b, 0x44, 0x6e, 0x7b, 0xca, 0x12, 0x08, 0xfe, 0xdf, 0x43, 0x0c, 0x8f, 0x43, 0x83, 0x60, 0x41, 0xb0, 0x41, 0xac, 0x36, 0xdc, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0x41, 0xe2, 0xde, 0xcc, 0x06, 0x51, 0xe6, 0xa3, 0xb1, 0x41, 0xa4, 0xbe, 0xa9, 0x6c, 0xe8, 0x21, 0x74, 0x88, 0xe1, 0x71, 0x68, 0x10, 0x2c, 0x08, 0x36, 0x58, 0xc9, 0xe4, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x06, 0xf1, 0x10, 0x71, 0xb3, 0x04, 0x92, 0xff, 0xdf, 0x37, 0x34, 0x1d, 0x3a, 0x88, 0x31, 0x52, 0x9b, 0xe3, 0xd0, 0x20, 0x58, 0x10, 0x6c, 0xb0, 0x9a, 0x20, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x0d, 0xe2, 0x6b, 0xe2, 0x66, 0x83, 0x34, 0xf7, 0x8c, 0x25, 0x68, 0x7f, 0xbf, 0x04, 0x8a, 0xff, 0xfb, 0x43, 0x0c, 0x8f, 0x43, 0x1b, 0xe2, 0xbf, 0x41, 0xd8, 0x53, 0x6f, 0xe8, 0xa4, 0xb6, 0x41, 0x90, 0xc5, 0x6f, 0x68, 0x01, 0xb4, 0x21, 0x6b, 0xb7, 0xa1, 0x09, 0xd7, 0x06, 0x81, 0x1b, 0xbf, 0xa1, 0xe9, 0xd0, 0x86, 0x1e, 0x42, 0x1b, 0xa2, 0xb9, 0xc1, 0xda, 0x1d, 0x84, 0x0d, 0x92, 0x35, 0x10, 0x36, 0x34, 0x2e, 0xda, 0xd0, 0x48, 0xf0, 0x60, 0x9d, 0x5a, 0xcf, 0xf1, 0x78, 0x10, 0x6c, 0x50, 0x40, 0x0b, 0x2e, 0x0e, 0x82, 0x05, 0xc1, 0x06, 0x49, 0x46, 0x20, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x3d, 0x84, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x08, 0x4c, 0xec, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xe3, 0x1a, 0x7d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe1, 0x37, 0x18, 0x6f, 0x3a, 0x07, 0x25, 0x43, 0xd3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xd6, 0xee, 0x20, 0xec, 0xa9, 0x8f, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0x58, 0x10, 0x6c, 0x90, 0x90, 0x1c, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xd0, 0x74, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xf1, 0xa6, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0x70, 0x52, 0x3c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0xdc, 0x24, 0xdc, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x0f, 0xcb, 0x1a, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0x68, 0x10, 0x2c, 0x08, 0x36, 0x48, 0x69, 0x51, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x90, 0xe6, 0x9e, 0x31, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0xe0, 0x9d, 0x1c, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x50, 0xaa, 0x00, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0xfc, 0x06, 0x03, 0x91, 0xfa, 0xa0, 0x64, 0x68, 0x3a, 0x78, 0xb3, 0x09, 0xc5, 0x71, 0xe8, 0x38, 0x34, 0x08, 0x16, 0x04, 0x1b, 0x24, 0xec, 0xd5, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x08, 0x52, 0xfc, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x06, 0x22, 0xf5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xe4, 0xa2, 0x9a, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x85, 0xdf, 0xa0, 0x70, 0x4b, 0x3a, 0x28, 0x19, 0x9a, 0x0e, 0xde, 0x6c, 0x42, 0x71, 0x1c, 0x3a, 0x0e, 0x6d, 0x1c, 0xda, 0xb0, 0x57, 0xb8, 0x21, 0x55, 0x73, 0x50, 0x2c, 0x92, 0x1d, 0x8f, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x47, 0xa1, 0x56, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x28, 0xd1, 0x70, 0x36, 0x48, 0xed, 0x00, 0x39, 0x18, 0xad, 0xe6, 0xc7, 0xa1, 0x41, 0xb0, 0x20, 0x58, 0x1c, 0x76, 0xe1, 0x36, 0xc4, 0xf0, 0x60, 0x9d, 0x4a, 0xc3, 0x86, 0xd4, 0xc1, 0x20, 0x19, 0x32, 0x88, 0x16, 0xa8, 0xfe, 0x83, 0x60, 0x83, 0x26, 0x6f, 0x57, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x34, 0x4a, 0xc7, 0x72, 0x68, 0x3c, 0x7f, 0x1c, 0x1a, 0x44, 0x0b, 0x7b, 0xd0, 0xde, 0x4d, 0xc9, 0xf1, 0xf8, 0xf8, 0x36, 0x08, 0x36, 0x88, 0xec, 0x63, 0x9b, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x25, 0x1a, 0xce, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xe7, 0xe0, 0xef, 0x83, 0xc1, 0xe9, 0x73, 0x1c, 0x3a, 0x9c, 0x62, 0xc7, 0xe3, 0xe1, 0x17, 0x04, 0x1b, 0x2c, 0x0b, 0x83, 0x59, 0x1c, 0x04, 0x1b, 0x34, 0x0e, 0xa1, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xb5, 0xdb, 0x20, 0x52, 0xc8, 0x6d, 0x36, 0xf4, 0x10, 0x5a, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xd5, 0x85, 0x11, 0x07, 0x2b, 0x1e, 0x6c, 0x0e, 0x12, 0xf0, 0x40, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0x38, 0xe0, 0xc1, 0x89, 0xad, 0x87, 0xd4, 0xd2, 0xf1, 0x78, 0x41, 0xb0, 0xc1, 0xb2, 0x30, 0x98, 0xc5, 0xe1, 0x17, 0x44, 0x0b, 0x6a, 0x07, 0xc1, 0x06, 0x89, 0xe9, 0xd5, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0xbe, 0xa1, 0x3f, 0xf9, 0xc1, 0xc8, 0xec, 0x3d, 0x34, 0x2e, 0x3a, 0x0e, 0x0d, 0xa2, 0x05, 0xe1, 0x20, 0xd8, 0x20, 0x31, 0xbd, 0x7a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x37, 0xf4, 0x27, 0x3f, 0x34, 0x12, 0x3c, 0x64, 0xed, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0xb0, 0x41, 0x3a, 0x94, 0xc7, 0xf0, 0x0b, 0xa2, 0x05, 0xe3, 0x61, 0x17, 0x04, 0x0b, 0x92, 0xc1, 0x97, 0x83, 0xb3, 0x97, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x36, 0x68, 0xa0, 0xc0, 0xff, 0x38, 0xb4, 0x20, 0x58, 0x90, 0x0c, 0xbc, 0x7e, 0x77, 0x70, 0x12, 0x3a, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x68, 0x01, 0x74, 0x88, 0xff, 0x71, 0xe8, 0x90, 0xb5, 0x3b, 0x1e, 0x0f, 0x82, 0x05, 0xc1, 0x06, 0xd1, 0x9f, 0x74, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x13, 0x9f, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xea, 0xe0, 0xd0, 0xe8, 0xe8, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x89, 0xcf, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x2f, 0x6a, 0x03, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x90, 0x22, 0x47, 0x7d, 0x68, 0x3a, 0x74, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x04, 0xef, 0xe0, 0x98, 0x55, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x10, 0xff, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x40, 0x59, 0x3a, 0x38, 0x66, 0x15, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x8a, 0x45, 0x1b, 0x52, 0x07, 0xc3, 0x6f, 0x3c, 0x1f, 0x43, 0xed, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x0d, 0x82, 0x05, 0xc9, 0xc0, 0xeb, 0x77, 0x07, 0xc7, 0xac, 0xe2, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x34, 0x96, 0x08, 0x75, 0x90, 0x8a, 0x75, 0x3d, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x63, 0x89, 0x50, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x78, 0x13, 0x2f, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x24, 0x4a, 0xea, 0x43, 0xea, 0xe0, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0xe4, 0x3c, 0x73, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x24, 0x3b, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0x65, 0xe9, 0xe0, 0xec, 0x65, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x28, 0x16, 0x6d, 0x48, 0xd5, 0x1c, 0xac, 0xaa, 0xc6, 0x39, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0xc2, 0x2f, 0x08, 0x36, 0x88, 0xcb, 0x14, 0x93, 0xc5, 0x41, 0xb0, 0xc1, 0x39, 0xf8, 0x7b, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x6b, 0xb7, 0x41, 0xa4, 0x90, 0xdb, 0x6c, 0xe8, 0x21, 0xb4, 0x41, 0x74, 0x04, 0xdd, 0x6c, 0x68, 0x5c, 0xb4, 0x41, 0xd8, 0x53, 0x1f, 0x24, 0x0c, 0x20, 0x1c, 0x87, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xc0, 0x43, 0x9b, 0x43, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0xf0, 0x0b, 0x82, 0x0d, 0xe2, 0x32, 0xc5, 0x64, 0x71, 0xf8, 0x05, 0xd1, 0x82, 0xda, 0x41, 0xb0, 0x41, 0x62, 0x7a, 0xf5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x6f, 0xe8, 0x4f, 0x7e, 0x68, 0xc2, 0x75, 0x68, 0x5c, 0x74, 0x1c, 0x3a, 0x88, 0xeb, 0xa2, 0x9b, 0x41, 0xb0, 0x41, 0x42, 0xd9, 0xc9, 0xb0, 0x0b, 0xbb, 0x20, 0xd8, 0x20, 0x1e, 0x76, 0x65, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xb4, 0x6b, 0x1c, 0x32, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x48, 0x3a, 0x1d, 0x1c, 0xb3, 0x8a, 0x0f, 0x62, 0x7a, 0xd5, 0xe6, 0x38, 0xb4, 0xb0, 0x0b, 0x82, 0x0d, 0xe2, 0x61, 0x57, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x42, 0x0e, 0xc2, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xf1, 0x52, 0x76, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x3d, 0x48, 0x01, 0xa1, 0x39, 0x0e, 0x1d, 0x87, 0x16, 0x76, 0x61, 0x17, 0xee, 0x20, 0xe6, 0x1e, 0x6e, 0x0e, 0xeb, 0x9b, 0x87, 0x74, 0xee, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x0b, 0x82, 0x05, 0xc1, 0x82, 0x60, 0x83, 0x46, 0x6b, 0xa1, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xb4, 0x6b, 0x1c, 0x72, 0x48, 0x1d, 0x1c, 0x87, 0x86, 0xdd, 0x60, 0xd4, 0x4b, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0xbb, 0xc5, 0x50, 0x07, 0x51, 0xa9, 0x76, 0x33, 0xfc, 0xc6, 0xf3, 0x61, 0x0e, 0x22, 0x82, 0xed, 0x66, 0x10, 0x2c, 0x08, 0x36, 0x88, 0xde, 0xd1, 0x8e, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xa9, 0x31, 0x1d, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x44, 0x24, 0xb8, 0xcc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xaa, 0xe6, 0x20, 0xaa, 0xca, 0x65, 0x8e, 0x43, 0xc7, 0xa1, 0x41, 0xb0, 0x41, 0xd3, 0xf9, 0x2f, 0xc3, 0x2f, 0x88, 0x16, 0x66, 0x10, 0x2c, 0x0e, 0xbb, 0x20, 0xd8, 0xe0, 0x00, 0x96, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xd0, 0x43, 0xe8, 0x20, 0x30, 0xb1, 0x8f, 0x43, 0x1b, 0xa2, 0x39, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x41, 0xc9, 0xc1, 0x81, 0x22, 0x79, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x3a, 0x5e, 0xc3, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0xa0, 0x2e, 0x1d, 0x9c, 0xeb, 0x8f, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x43, 0x7f, 0xf2, 0x83, 0xc6, 0xfa, 0x02, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x48, 0x11, 0x0a, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x14, 0x8b, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x78, 0x89, 0x2a, 0xc0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xf7, 0xfd, 0x70, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x8a, 0x45, 0x1b, 0x14, 0x64, 0x3b, 0x87, 0x1e, 0x42, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x1a, 0x04, 0x1b, 0x62, 0x38, 0xfc, 0x82, 0x68, 0x21, 0x83, 0x60, 0x71, 0xd8, 0x05, 0xc1, 0x82, 0x64, 0xf0, 0xe5, 0x20, 0x2d, 0x68, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x18, 0x58, 0x98, 0xc0, 0xf0, 0xfe, 0x3f, 0x0e, 0x6d, 0x48, 0x1d, 0x0c, 0x82, 0x05, 0xc1, 0x82, 0x64, 0x60, 0xac, 0x0e, 0x86, 0xa3, 0xf4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x18, 0x0e, 0xa7, 0x59, 0x82, 0xd6, 0xff, 0x1b, 0xf6, 0x0a, 0x87, 0xdf, 0x78, 0x3e, 0xec, 0xc2, 0x6d, 0x10, 0x3c, 0xdc, 0x87, 0xa3, 0x7d, 0x41, 0xb0, 0x41, 0xc4, 0x46, 0xd3, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x68, 0xa4, 0x4f, 0xe4, 0xa0, 0x20, 0xdb, 0x39, 0x0e, 0x1d, 0x0c, 0x44, 0xea, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x88, 0xfd, 0x30, 0x07, 0x63, 0x60, 0x61, 0x10, 0x6d, 0x30, 0xfe, 0xa1, 0x07, 0xd1, 0xc2, 0x0e, 0x82, 0x0d, 0x12, 0xf6, 0x6a, 0x0e, 0x8a, 0xd1, 0x9f, 0xe3, 0xf9, 0xf1, 0xed, 0x78, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xd3, 0x61, 0x0e, 0x2d, 0x80, 0x06, 0xd1, 0x82, 0x70, 0x10, 0x6c, 0x70, 0x94, 0x58, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0x76, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x90, 0x16, 0x0a, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x1b, 0xfa, 0x93, 0x0f, 0x82, 0x0d, 0x0e, 0x39, 0xcb, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0xd2, 0xa4, 0x9a, 0x83, 0xf4, 0xa2, 0x8b, 0x83, 0x81, 0x48, 0x7d, 0x1c, 0x3a, 0xa4, 0x0e, 0x8e, 0x43, 0xc7, 0xa1, 0x43, 0x72, 0xe9, 0xf8, 0x76, 0x3c, 0x1e, 0x04, 0x1b, 0x2c, 0xa4, 0x9c, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x0d, 0xfd, 0xc9, 0x0f, 0x9a, 0x2a, 0x38, 0x39, 0x44, 0xf3, 0x38, 0x74, 0x38, 0xc5, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xc0, 0x83, 0x13, 0x63, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x38, 0xec, 0x06, 0xc1, 0xc7, 0xbc, 0x21, 0x86, 0x83, 0x60, 0x83, 0x85, 0xaf, 0x5e, 0x07, 0x8d, 0xae, 0xc9, 0x1f, 0xdf, 0x8e, 0xc7, 0x83, 0x60, 0x83, 0x91, 0xff, 0xb0, 0x38, 0xec, 0xc2, 0x2e, 0xdc, 0x82, 0x60, 0x83, 0x88, 0x89, 0xb6, 0x39, 0x34, 0x05, 0x3a, 0x88, 0x8e, 0x73, 0x9b, 0x85, 0x5d, 0xb8, 0x0d, 0x82, 0xd2, 0x7b, 0x10, 0x6c, 0x10, 0xff, 0x85, 0x34, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xd6, 0x9b, 0x95, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0xcd, 0x9d, 0x0e, 0x4e, 0x42, 0xc7, 0x87, 0x16, 0x60, 0xc7, 0xa1, 0xe3, 0xd0, 0xc2, 0x2e, 0x08, 0x36, 0x38, 0x42, 0x15, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x74, 0x0c, 0x1b, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0xfe, 0x0b, 0x69, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x9c, 0x1c, 0x8b, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xb2, 0x76, 0x07, 0xa9, 0x1d, 0x20, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x90, 0xce, 0x3d, 0x1c, 0xed, 0x87, 0xa3, 0x7d, 0x41, 0xb0, 0x21, 0x31, 0x35, 0xfc, 0x82, 0x68, 0x61, 0x06, 0xc1, 0xe2, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x06, 0x92, 0x55, 0x87, 0x6c, 0xc5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xb2, 0xe3, 0x20, 0xe4, 0xb3, 0x8f, 0x43, 0xc3, 0x2e, 0xdc, 0x86, 0x7c, 0xed, 0x41, 0xf0, 0x70, 0x2f, 0x08, 0x36, 0x48, 0x4f, 0x48, 0x39, 0x6c, 0xd4, 0x0e, 0x92, 0x21, 0x83, 0x68, 0xc1, 0xf5, 0xe3, 0xd0, 0x20, 0x5a, 0xd8, 0x35, 0x08, 0xf9, 0xec, 0x43, 0xd6, 0xee, 0xa0, 0xc4, 0x76, 0x3b, 0x9e, 0x1f, 0xdf, 0x8e, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x48, 0x56, 0x1d, 0x56, 0x68, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xe2, 0x3f, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x10, 0xe8, 0x7d, 0x07, 0xc7, 0xac, 0xe2, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x2c, 0x23, 0x2c, 0x39, 0x58, 0x87, 0xca, 0x7f, 0x88, 0xe6, 0x71, 0xe8, 0x38, 0x34, 0x08, 0x16, 0x87, 0xdd, 0x20, 0x16, 0x33, 0x6f, 0x36, 0xa4, 0x0e, 0x06, 0xc1, 0x82, 0x60, 0x83, 0x48, 0x51, 0xb0, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0xab, 0xea, 0x4a, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x4e, 0x98, 0xc7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x82, 0x14, 0xff, 0xd0, 0x78, 0xfe, 0x38, 0x74, 0x1c, 0x3a, 0xa4, 0x6a, 0x8e, 0x43, 0x83, 0x60, 0x41, 0xb0, 0x41, 0x1c, 0x48, 0xd6, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0xa5, 0xfb, 0xc4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xea, 0xe0, 0xa0, 0x1c, 0x6b, 0x38, 0x0e, 0x1d, 0x92, 0x1d, 0xc7, 0xa1, 0x41, 0xb0, 0x20, 0x58, 0x1c, 0x76, 0x83, 0xe0, 0xc2, 0xde, 0x10, 0xc3, 0x61, 0x37, 0xac, 0xef, 0x6d, 0x88, 0xe1, 0x82, 0x60, 0x83, 0x24, 0x23, 0x90, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x41, 0x8a, 0x7f, 0xc8, 0xda, 0x1d, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xc1, 0x4a, 0x9e, 0x9d, 0x83, 0xa2, 0xe6, 0xec, 0xf8, 0x36, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xeb, 0x61, 0x0e, 0x42, 0xc4, 0x7f, 0x10, 0x2d, 0xec, 0x20, 0x58, 0x90, 0x0c, 0x24, 0xab, 0x0e, 0x86, 0xa1, 0xcf, 0xc1, 0x1a, 0x97, 0xb1, 0xc3, 0x0a, 0xed, 0xf1, 0xed, 0x70, 0x8a, 0x1d, 0x8f, 0x07, 0xd9, 0x1a, 0xd2, 0x40, 0xe3, 0x80, 0x37, 0x37, 0x26, 0x1f, 0xac, 0x09, 0xdf, 0x39, 0x1e, 0xaf, 0x20, 0x58, 0x5c, 0x10, 0x6c, 0x50, 0x50, 0x8b, 0x2d, 0x0e, 0x82, 0x05, 0xc1, 0x06, 0x0f, 0x5e, 0x83, 0x3b, 0x58, 0xeb, 0x0f, 0x34, 0xec, 0x82, 0x60, 0xe1, 0x17, 0x7e, 0xc3, 0x0a, 0xed, 0x41, 0xa2, 0xd5, 0xc9, 0xc1, 0x99, 0x2d, 0x7b, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x61, 0xed, 0xf7, 0x20, 0xe1, 0xf6, 0xe4, 0x38, 0xb4, 0x20, 0x58, 0xf8, 0x0d, 0x22, 0xf3, 0xf5, 0xe6, 0xa0, 0x1c, 0x4a, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0x1d, 0x6c, 0xb0, 0x54, 0xed, 0xe5, 0xb0, 0xf6, 0x7b, 0x1c, 0x1a, 0x04, 0x0b, 0x82, 0x0d, 0xa2, 0x2d, 0xf6, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x75, 0xb0, 0xc1, 0x52, 0xb5, 0x97, 0x83, 0x84, 0xdb, 0x93, 0xe3, 0xd0, 0x20, 0x58, 0x10, 0x2c, 0xfc, 0xc2, 0x6f, 0xc8, 0x56, 0x1c, 0x24, 0x5a, 0x9d, 0x1c, 0x14, 0xf7, 0x50, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x0e, 0x0d, 0x05, 0x87, 0xd4, 0xc1, 0x71, 0x68, 0xf8, 0x05, 0xd1, 0x82, 0xf7, 0x83, 0x60, 0xe1, 0x17, 0x7e, 0x83, 0x20, 0xe7, 0x3f, 0x48, 0xb4, 0x3a, 0x39, 0x48, 0x75, 0xe4, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x10, 0x22, 0xfe, 0x07, 0xa9, 0x61, 0x27, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0x58, 0x1c, 0x76, 0x41, 0xb0, 0xf0, 0x0b, 0xbf, 0x41, 0xc0, 0xfb, 0x1f, 0x24, 0x5a, 0x9d, 0x1c, 0xc4, 0x7c, 0xcc, 0xc8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x61, 0x0c, 0x7b, 0x90, 0x70, 0x7b, 0x72, 0x1c, 0x5a, 0xf8, 0x05, 0xd1, 0x82, 0x78, 0x10, 0x2c, 0xfc, 0x06, 0x71, 0x9f, 0x7b, 0x73, 0x50, 0x0e, 0x25, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x41, 0x32, 0x7c, 0xce, 0x41, 0xec, 0xd0, 0xde, 0x1c, 0x87, 0x8e, 0xc7, 0xc3, 0x2f, 0x88, 0x16, 0x76, 0x10, 0x2c, 0xfc, 0x06, 0x71, 0x9f, 0x7b, 0x73, 0x30, 0xe4, 0xa4, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0xfc, 0x06, 0x71, 0x9f, 0x7b, 0x73, 0x70, 0x94, 0x23, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x10, 0x55, 0xb6, 0x37, 0x87, 0x54, 0xcd, 0x71, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe1, 0x37, 0x88, 0xfb, 0xdc, 0x9b, 0x83, 0xe2, 0x1e, 0x6a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x54, 0xd9, 0xde, 0x1c, 0xf6, 0x0a, 0x8f, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x88, 0xfe, 0x20, 0x58, 0xf8, 0x0d, 0xe2, 0x3e, 0xf7, 0xe6, 0x20, 0xd5, 0x91, 0x7b, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x30, 0x86, 0x3d, 0x48, 0x0d, 0x3b, 0x39, 0x0e, 0x1d, 0x8f, 0x07, 0xc1, 0x06, 0xb1, 0xe9, 0x7b, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x58, 0xff, 0xbd, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x83, 0x98, 0xe0, 0x04, 0x39, 0xa4, 0x6a, 0x8e, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xc4, 0x0e, 0xef, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xc8, 0xe9, 0xbd, 0xd9, 0x60, 0xa9, 0xda, 0xcb, 0xc1, 0x30, 0x86, 0x3d, 0x0e, 0x1d, 0x87, 0x8e, 0x6f, 0xc7, 0xe3, 0x15, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x83, 0x07, 0xaf, 0xc1, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xa4, 0x6a, 0x0e, 0x59, 0xbb, 0xe3, 0xd0, 0xf1, 0x78, 0x41, 0xb0, 0x41, 0x41, 0x2d, 0xb6, 0xb8, 0x20, 0xd8, 0x20, 0x8d, 0x76, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x71, 0xa8, 0x71, 0x50, 0x90, 0xed, 0x1c, 0x87, 0x06, 0xc1, 0x06, 0x91, 0xf6, 0x68, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x28, 0x16, 0x0d, 0xbf, 0xf1, 0x7c, 0x83, 0x75, 0x03, 0x41, 0x6b, 0x50, 0xc6, 0xed, 0x0c, 0x82, 0x05, 0xc9, 0xc0, 0xaa, 0xd3, 0xc1, 0x49, 0xe8, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x50, 0x2c, 0xda, 0xa0, 0x20, 0xdb, 0x39, 0xe4, 0x6b, 0x8f, 0x43, 0x87, 0x18, 0x1e, 0x87, 0x8e, 0xc7, 0x83, 0x60, 0x71, 0x66, 0x66, 0x66, 0x66, 0xe6, 0x20, 0x08, 0xd0, 0x16, 0x07, 0xc1, 0xe2, 0x20, 0xd8, 0x60, 0xe4, 0x3f, 0x2c, 0x0e, 0x82, 0x0d, 0x5a, 0xce, 0xc1, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x5c, 0x57, 0xcb, 0x1c, 0x94, 0xee, 0x5d, 0xc3, 0x6f, 0x3c, 0xdf, 0x20, 0x28, 0xbd, 0x07, 0xc1, 0x06, 0x71, 0x92, 0x2d, 0x73, 0x50, 0x66, 0xe7, 0x1d, 0x87, 0x8e, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0x41, 0x7c, 0x77, 0xde, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x48, 0xc8, 0x41, 0x38, 0xc4, 0xff, 0x38, 0x34, 0x08, 0x16, 0x76, 0xe1, 0x36, 0x18, 0x0d, 0xbe, 0x07, 0xf1, 0x10, 0x71, 0xb3, 0x21, 0x86, 0xc3, 0x2e, 0xec, 0xc2, 0x6d, 0xd0, 0x4a, 0x69, 0xfe, 0x41, 0x3c, 0x44, 0xdc, 0x2c, 0xec, 0x06, 0xaf, 0x6a, 0xb5, 0x58, 0xd8, 0x05, 0xc1, 0x06, 0xed, 0x58, 0xdf, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x48, 0x73, 0xcf, 0x38, 0x18, 0x1b, 0xae, 0xc7, 0xa1, 0x43, 0x3a, 0xf7, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0x0d, 0x31, 0x1c, 0x76, 0x61, 0x17, 0x6e, 0x83, 0x93, 0xde, 0xee, 0x41, 0x3c, 0x44, 0xdc, 0x2c, 0xec, 0x06, 0xaf, 0x6a, 0xb5, 0x58, 0xd8, 0x05, 0xc1, 0x06, 0xed, 0x58, 0xdf, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x48, 0x73, 0xcf, 0x38, 0x34, 0x9e, 0x3f, 0x0e, 0x1d, 0xd2, 0xb9, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x1f, 0xd2, 0xb9, 0x83, 0x60, 0x61, 0x37, 0x0e, 0x2d, 0x08, 0x36, 0xc4, 0x70, 0x10, 0x6c, 0x38, 0xda, 0x07, 0xc1, 0xe2, 0xb0, 0x0b, 0x82, 0x0d, 0x5e, 0xe7, 0x0b, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xb0, 0x57, 0x38, 0x81, 0xe2, 0xef, 0xff, 0x38, 0xb4, 0x21, 0x86, 0x83, 0x60, 0x41, 0xb0, 0x20, 0xd8, 0xa0, 0x45, 0x53, 0x96, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x03, 0x3f, 0x64, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x16, 0x4d, 0x59, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xfc, 0x90, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x40, 0x5d, 0x3a, 0x38, 0x50, 0x24, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x38, 0x34, 0x28, 0xe4, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x44, 0xf6, 0xb1, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x21, 0x7b, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0x08, 0xd6, 0xbe, 0x83, 0x03, 0x45, 0xf2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xa2, 0xf9, 0xfc, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0xc0, 0xaa, 0xd3, 0xc1, 0x81, 0x22, 0xf9, 0x60, 0x28, 0x16, 0x1d, 0x87, 0x0e, 0x0e, 0x44, 0xfc, 0xc7, 0xa1, 0x05, 0xc1, 0xc6, 0xa1, 0x83, 0x61, 0x16, 0xbe, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x94, 0xbb, 0x83, 0xe1, 0x1f, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x9d, 0x40, 0xf3, 0xbf, 0xff, 0xc7, 0xa1, 0xe3, 0xd0, 0x82, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x02, 0xcb, 0x7f, 0xff, 0x8f, 0x43, 0x0b, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x09, 0x0c, 0xdf, 0xff, 0xe3, 0xd0, 0x82, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0x20, 0x2d, 0xed, 0xe3, 0x38, 0xb4, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x9d, 0x40, 0xf0, 0xfe, 0x1f, 0x87, 0x16, 0x04, 0x1b, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x07, 0xc9, 0xc4, 0x0b, 0xc7, 0xa1, 0x43, 0x0c, 0x8f, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0x68, 0x10, 0x2c, 0x48, 0x36, 0x18, 0x24, 0x2f, 0x07, 0xa7, 0x0d, 0xe5, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xb4, 0xf9, 0xd6, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x8c, 0xd2, 0xc1, 0x69, 0x43, 0xf9, 0xe0, 0x69, 0x33, 0x39, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x5c, 0x10, 0x2c, 0x48, 0x06, 0x56, 0x9d, 0x0e, 0xd2, 0x82, 0x46, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xc5, 0xa2, 0x0d, 0x0a, 0xb2, 0x9d, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0xc0, 0xfb, 0x4e, 0x07, 0x69, 0x41, 0x23, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x4a, 0x34, 0x9c, 0x43, 0xaa, 0xe6, 0x38, 0x74, 0x1c, 0x1a, 0x04, 0x1b, 0xc4, 0xde, 0xfd, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa1, 0x58, 0xb4, 0x41, 0x41, 0xb6, 0x33, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0xe8, 0xeb, 0x74, 0x90, 0x16, 0x34, 0x72, 0x10, 0xc3, 0xf9, 0x37, 0xc7, 0xa1, 0xe3, 0xf1, 0x71, 0x68, 0x10, 0x2c, 0x48, 0x36, 0x28, 0xea, 0x73, 0x0e, 0x4e, 0x1b, 0xca, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xa9, 0x83, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x41, 0x3c, 0x08, 0x36, 0x38, 0x4a, 0x2c, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x08, 0x4c, 0xec, 0x83, 0x24, 0xb7, 0xe6, 0xe3, 0xd0, 0x41, 0x5a, 0x1c, 0xf4, 0x71, 0xe8, 0xf8, 0x76, 0x88, 0xe1, 0x20, 0xd8, 0x10, 0xc3, 0x41, 0xb0, 0x38, 0xec, 0xc2, 0x6d, 0x48, 0x1d, 0x4c, 0x60, 0xf8, 0xfb, 0x2f, 0x08, 0x36, 0x78, 0x3e, 0x4b, 0xc0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x06, 0x45, 0x74, 0xd7, 0xc1, 0x81, 0x22, 0x79, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x04, 0xef, 0xfd, 0x1f, 0x9c, 0x19, 0x97, 0x8f, 0x43, 0xc3, 0x6f, 0x3c, 0xdf, 0x20, 0x30, 0xb1, 0x07, 0xc1, 0x06, 0x6d, 0xc9, 0xae, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x30, 0x07, 0x89, 0x89, 0x36, 0x07, 0x67, 0xc6, 0xe5, 0xe3, 0xd0, 0x71, 0x68, 0x10, 0x2c, 0x08, 0x36, 0x38, 0x51, 0x28, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0xa8, 0xa3, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0x29, 0xd0, 0xe6, 0x20, 0xf6, 0xc2, 0x6f, 0x8e, 0x43, 0x87, 0x54, 0xcd, 0x71, 0x68, 0xd8, 0x85, 0x5d, 0xb8, 0x0d, 0x31, 0x3c, 0x48, 0x8c, 0x84, 0x59, 0xd8, 0x05, 0xc1, 0x82, 0x64, 0x20, 0xbf, 0x72, 0x70, 0xcc, 0x58, 0x3e, 0x88, 0x7d, 0x67, 0x99, 0x43, 0x3a, 0xf7, 0x70, 0xb4, 0x2f, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x81, 0xdb, 0xee, 0x60, 0xf8, 0xc7, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0xae, 0x18, 0x70, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x83, 0x74, 0x28, 0x8f, 0x83, 0x13, 0x45, 0xf4, 0x21, 0x75, 0x70, 0x1c, 0x3a, 0x88, 0xcc, 0xf8, 0x9b, 0xe3, 0xd0, 0x20, 0x58, 0x10, 0x6c, 0xf0, 0xaa, 0x31, 0x80, 0x83, 0x15, 0x45, 0x40, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x50, 0x3f, 0x08, 0x36, 0x88, 0x0f, 0x8a, 0x96, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x85, 0x5b, 0xd2, 0xc1, 0x18, 0xc6, 0x3f, 0x0e, 0x0d, 0xa2, 0x85, 0x3d, 0x28, 0xc3, 0xe9, 0x0e, 0x2b, 0xb4, 0x83, 0x60, 0x61, 0x37, 0x08, 0x4c, 0xec, 0x05, 0xc1, 0x82, 0x64, 0x40, 0xa0, 0xf7, 0x1d, 0x9c, 0x36, 0x94, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xf6, 0x0a, 0x0f, 0x02, 0x13, 0xfb, 0x38, 0x34, 0x08, 0x16, 0x04, 0x0b, 0xbb, 0xc1, 0xa8, 0x97, 0x5c, 0x10, 0x6c, 0x10, 0xa5, 0x49, 0x35, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x09, 0x14, 0xbf, 0xff, 0xc7, 0xa1, 0x41, 0xb0, 0x41, 0x5c, 0x21, 0xd5, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x4a, 0x93, 0x6a, 0x0e, 0x06, 0xb6, 0xe8, 0x41, 0x84, 0x58, 0xe0, 0x1c, 0x87, 0x06, 0xc1, 0x82, 0x64, 0x40, 0xa0, 0xf7, 0x1d, 0x1c, 0x33, 0x96, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x52, 0x07, 0x07, 0x03, 0x91, 0xfa, 0x38, 0xb4, 0x20, 0x58, 0x90, 0x0c, 0xac, 0x3a, 0x1d, 0x1c, 0x33, 0x96, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xc5, 0xa2, 0x0d, 0x0a, 0xb2, 0x9d, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x22, 0x3c, 0xe5, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x50, 0x2c, 0x5a, 0xf8, 0x8d, 0xe7, 0xe3, 0x40, 0xf1, 0x8f, 0x39, 0xa4, 0x0e, 0x8e, 0x43, 0xc7, 0xa1, 0x41, 0xb0, 0x41, 0xf4, 0x68, 0xe0, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x8a, 0x45, 0x1b, 0x14, 0x64, 0x3b, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x44, 0x78, 0xca, 0xc5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa1, 0x58, 0xb4, 0xf0, 0x1b, 0xcf, 0xc7, 0x81, 0xc2, 0x1f, 0x73, 0x48, 0x1d, 0x1c, 0x87, 0x8e, 0x43, 0x83, 0x60, 0x61, 0x17, 0x76, 0xe1, 0x36, 0xc4, 0xf0, 0x20, 0x99, 0x78, 0x61, 0x61, 0x17, 0x6e, 0x43, 0x0c, 0x0f, 0xd2, 0xd2, 0x3e, 0x0e, 0xe9, 0xdc, 0xc3, 0xd1, 0xbe, 0x41, 0x64, 0xc6, 0xdf, 0x0c, 0x82, 0x0d, 0x62, 0x0f, 0x9a, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x61, 0x5c, 0x26, 0xb0, 0xfc, 0xfb, 0xff, 0x38, 0x34, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x0d, 0x5a, 0x6c, 0xf0, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x61, 0x17, 0x76, 0xe1, 0x36, 0xc4, 0x70, 0x82, 0xb7, 0xff, 0x37, 0xc4, 0x70, 0xd8, 0x85, 0xdb, 0xd0, 0x9f, 0xfc, 0xa0, 0x91, 0x3e, 0x91, 0x43, 0x3a, 0x77, 0x43, 0x0c, 0x07, 0xc1, 0x82, 0x64, 0x10, 0x1c, 0xb4, 0xe6, 0xe0, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc3, 0x1c, 0x34, 0xd2, 0x27, 0x32, 0x81, 0xe5, 0xef, 0xff, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x85, 0xdd, 0x20, 0xc2, 0x4b, 0x70, 0x16, 0x76, 0x61, 0x17, 0x6e, 0x43, 0x0c, 0x0f, 0x1a, 0xe9, 0x13, 0xd9, 0x10, 0xc3, 0x61, 0x17, 0x6e, 0x83, 0xc8, 0xe0, 0xbb, 0x39, 0x0e, 0x1d, 0xd2, 0xb9, 0x0b, 0x82, 0x05, 0xc9, 0x40, 0x7a, 0xe5, 0xa0, 0x35, 0x07, 0xff, 0x83, 0x61, 0x16, 0x3e, 0xec, 0x06, 0xc1, 0x85, 0xbd, 0x20, 0xd8, 0x20, 0xaa, 0x57, 0x70, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xc4, 0xe4, 0x09, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x09, 0x0c, 0xf7, 0xff, 0x83, 0xd8, 0x47, 0xc1, 0x39, 0x0e, 0x1d, 0x87, 0x0e, 0x22, 0xbd, 0x05, 0x67, 0x10, 0x2c, 0x08, 0x36, 0x68, 0x5a, 0xc3, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x04, 0x92, 0xdf, 0xff, 0x0f, 0x62, 0x1f, 0x05, 0xe7, 0x38, 0x34, 0xec, 0xc2, 0x6d, 0x48, 0x1d, 0x4c, 0xa0, 0x78, 0xff, 0x5f, 0x10, 0x2c, 0x48, 0x06, 0xd2, 0x2b, 0x07, 0xc9, 0x4a, 0x2b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0xa0, 0xe4, 0x20, 0x59, 0x69, 0xe5, 0x60, 0x9c, 0x54, 0x1f, 0x87, 0x86, 0xdd, 0x60, 0xe4, 0x93, 0x2f, 0x08, 0x36, 0x88, 0x05, 0x19, 0x9c, 0x83, 0x81, 0x2d, 0x7a, 0x1c, 0x1a, 0x04, 0x0b, 0x92, 0xc1, 0x9f, 0x83, 0x64, 0xa5, 0x95, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x3f, 0x88, 0x35, 0x1a, 0x9c, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0xc0, 0xfb, 0x4e, 0x07, 0xad, 0x39, 0xf8, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x38, 0xa1, 0x60, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x08, 0x0e, 0x92, 0x95, 0x56, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x52, 0x07, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x44, 0xbd, 0x0d, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x48, 0xbf, 0xc1, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x42, 0x71, 0x70, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xe2, 0x7f, 0x88, 0xff, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0x83, 0x60, 0x41, 0x32, 0x10, 0x9d, 0x83, 0x64, 0xa5, 0x95, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xd4, 0xc1, 0x04, 0x96, 0xdf, 0xff, 0x1f, 0x87, 0x06, 0xc1, 0x82, 0x60, 0x83, 0xf6, 0xd7, 0x62, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0xec, 0x06, 0x63, 0x93, 0x73, 0x41, 0xb0, 0x41, 0x2c, 0xc8, 0xe0, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x0f, 0xe2, 0xc1, 0x07, 0xe7, 0x38, 0x34, 0x08, 0x36, 0x88, 0x80, 0x1e, 0x9c, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xc4, 0x82, 0x0c, 0xce, 0xc1, 0xf8, 0x30, 0x3a, 0x88, 0x07, 0x1f, 0x9c, 0xe3, 0xd0, 0x20, 0x58, 0x90, 0x0c, 0x08, 0xf4, 0xbe, 0x83, 0x64, 0xa5, 0x95, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xd4, 0xc1, 0xc1, 0xa9, 0x1c, 0xf9, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x10, 0xe8, 0x7d, 0x07, 0xad, 0x39, 0xf8, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xa4, 0x0e, 0x86, 0xdf, 0x78, 0x3e, 0xec, 0x06, 0x31, 0x16, 0x83, 0xb3, 0x41, 0xe1, 0x96, 0x34, 0x08, 0x36, 0x88, 0x8f, 0x22, 0x9c, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x54, 0xcd, 0x04, 0xcf, 0xff, 0x1f, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0xe1, 0x17, 0x44, 0x0b, 0x19, 0x76, 0x61, 0x17, 0x76, 0xe1, 0x36, 0xc4, 0xf0, 0x20, 0xed, 0x05, 0xe4, 0xb0, 0xbe, 0xb9, 0xb0, 0x0b, 0xb7, 0x41, 0x7a, 0xdb, 0xc8, 0x04, 0xe6, 0xff, 0xfd, 0xff, 0x21, 0x9d, 0x7b, 0x38, 0xda, 0x17, 0x04, 0x0b, 0x92, 0x81, 0xe0, 0x1d, 0x24, 0x2b, 0xad, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xa4, 0x0e, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0xa6, 0x21, 0x9c, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xe3, 0x4d, 0xe7, 0xe0, 0x54, 0x8e, 0x7c, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x50, 0x3f, 0x08, 0x16, 0x24, 0x43, 0x0e, 0x86, 0xa3, 0xf4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x53, 0x39, 0xf2, 0x41, 0x6a, 0x0a, 0xcf, 0x71, 0x68, 0x10, 0x2d, 0xec, 0x41, 0xa2, 0x72, 0xc9, 0x41, 0x90, 0xf3, 0x1f, 0xdf, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb0, 0x20, 0xd8, 0xa0, 0x05, 0x93, 0xfe, 0x43, 0xa2, 0x75, 0x10, 0x6c, 0x10, 0x8d, 0xeb, 0x36, 0x83, 0x60, 0x43, 0x0c, 0x07, 0xc1, 0xe2, 0xb0, 0x0b, 0x82, 0x0d, 0xce, 0xa9, 0xc8, 0x07, 0xe9, 0xc1, 0x1f, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0xef, 0x90, 0xaf, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x08, 0x36, 0x78, 0x4b, 0x28, 0xc0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xe4, 0xb7, 0x94, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xe3, 0x1a, 0x7d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xb8, 0x2b, 0xb7, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x70, 0xae, 0x29, 0x5e, 0xf8, 0x8d, 0xe7, 0x0b, 0x82, 0x0d, 0xa2, 0x94, 0x0c, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xb8, 0x46, 0x3f, 0xa4, 0x6a, 0x8e, 0x43, 0x87, 0xa3, 0xfd, 0x20, 0x30, 0xb1, 0x8f, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0xd8, 0xe0, 0x39, 0xf2, 0x00, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x1b, 0x94, 0xb3, 0x3a, 0x07, 0xe7, 0xfa, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x1c, 0x69, 0x93, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x1c, 0x88, 0xf8, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0x4a, 0xf5, 0xbe, 0x83, 0x73, 0xfd, 0xf1, 0xc1, 0xc0, 0x16, 0x3d, 0x0e, 0x1d, 0x0c, 0xfc, 0x90, 0xe3, 0xd0, 0x21, 0x75, 0x70, 0x1c, 0x3a, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x41, 0x3c, 0x08, 0x36, 0x78, 0x8e, 0x3c, 0xc0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xc0, 0xc4, 0x3e, 0xa4, 0x0e, 0x8e, 0x43, 0x07, 0x69, 0x71, 0xd0, 0x83, 0x60, 0x41, 0xb0, 0x20, 0xd9, 0xa0, 0x9c, 0xd5, 0x39, 0x38, 0xe7, 0x1d, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x48, 0xb8, 0x3d, 0x39, 0x18, 0xf8, 0x21, 0xc7, 0xa1, 0xe1, 0x17, 0x44, 0x1b, 0xbc, 0xad, 0x1e, 0xe0, 0x78, 0x3c, 0x08, 0x16, 0x87, 0x5d, 0x10, 0x6c, 0xf0, 0x0a, 0x4c, 0x80, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x81, 0x89, 0x7d, 0x70, 0x20, 0xe2, 0x3f, 0x0e, 0x2d, 0x08, 0x16, 0x04, 0x1b, 0x2c, 0x2c, 0xfe, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x41, 0xb0, 0x20, 0x19, 0x10, 0xe8, 0x7d, 0x07, 0x07, 0x8a, 0xe4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc1, 0x53, 0x38, 0x4c, 0x8e, 0x43, 0x0b, 0x82, 0x0d, 0xe2, 0xd1, 0x0c, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x27, 0x0a, 0xe5, 0x83, 0x08, 0x23, 0xc3, 0x39, 0x18, 0x6f, 0x3a, 0xc7, 0xa1, 0x05, 0xc1, 0x06, 0xf1, 0x68, 0x86, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x13, 0x85, 0xf2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xc0, 0xc4, 0x3e, 0x48, 0xed, 0x00, 0x39, 0x0e, 0x1d, 0x8c, 0x37, 0x9d, 0xe3, 0xd0, 0x82, 0x60, 0x83, 0x78, 0x34, 0xc3, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x89, 0x42, 0x79, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x60, 0x62, 0x0f, 0xbf, 0xf1, 0x7c, 0x0c, 0xc3, 0xe3, 0xd0, 0xc1, 0x78, 0xd3, 0x39, 0x0e, 0x2d, 0x08, 0x36, 0x88, 0x47, 0x33, 0x9c, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x9c, 0x28, 0x94, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x04, 0x26, 0xf6, 0x41, 0x6a, 0xd8, 0xc9, 0x71, 0xe8, 0x60, 0xbc, 0xe9, 0x1c, 0x87, 0x16, 0x04, 0x1b, 0xc4, 0xa3, 0x19, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x4e, 0x14, 0xca, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x02, 0x13, 0xfb, 0x20, 0x59, 0x99, 0xe4, 0x38, 0x74, 0x30, 0xde, 0x74, 0x8e, 0x43, 0x0b, 0x82, 0x0d, 0xe2, 0xd1, 0x0c, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x27, 0x0a, 0xe5, 0x83, 0xe4, 0x55, 0xee, 0x83, 0xf1, 0xa6, 0x73, 0x1c, 0x5a, 0x10, 0x6c, 0x10, 0x8f, 0x66, 0x38, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x38, 0x51, 0x28, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x08, 0x4c, 0xec, 0xe1, 0x37, 0x9e, 0x8f, 0xa1, 0xf8, 0x38, 0x74, 0x30, 0xde, 0x74, 0x8e, 0x43, 0x87, 0x18, 0x1e, 0x87, 0x06, 0xc1, 0x86, 0x18, 0x0e, 0x82, 0xc5, 0x61, 0x37, 0x28, 0xf4, 0x9f, 0x16, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf9, 0x41, 0xa2, 0x72, 0xc9, 0x61, 0x85, 0x76, 0x10, 0x2c, 0x08, 0x16, 0x04, 0x1b, 0xb4, 0xd8, 0xe0, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x20, 0x52, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0x93, 0x27, 0x38, 0x07, 0xe9, 0xc1, 0x1f, 0xc7, 0xa1, 0x41, 0xb0, 0x20, 0xd9, 0xa0, 0xa8, 0xcf, 0x39, 0x68, 0xcd, 0xc1, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x83, 0x22, 0xba, 0xeb, 0xa0, 0x35, 0x07, 0xff, 0x83, 0x71, 0x52, 0x3d, 0xfc, 0xc6, 0xf3, 0x05, 0xc1, 0x06, 0xf1, 0x51, 0x84, 0x73, 0x10, 0xe5, 0x13, 0x38, 0x83, 0x60, 0x41, 0xb2, 0x41, 0xe1, 0x1f, 0x74, 0xd0, 0x9a, 0x83, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x31, 0xc3, 0x7d, 0x30, 0x78, 0x27, 0x8f, 0x43, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x6d, 0xf0, 0xa0, 0x28, 0x9d, 0x83, 0xb4, 0x38, 0xe8, 0xe3, 0xdb, 0x20, 0xd8, 0x20, 0xc9, 0x08, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x91, 0x7d, 0x6c, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x5c, 0xa3, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0x5b, 0xa6, 0x20, 0x87, 0x46, 0x2d, 0xc7, 0xa1, 0x83, 0xc1, 0x3b, 0x79, 0x1c, 0x3a, 0xbe, 0x1d, 0xdf, 0x8e, 0xc7, 0x2b, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x6c, 0xb0, 0x56, 0x89, 0x6b, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x55, 0xb3, 0xc1, 0x1b, 0xe6, 0x91, 0x36, 0x48, 0x54, 0x1b, 0xd9, 0xa0, 0x20, 0xdb, 0x59, 0xf8, 0x8d, 0xe7, 0x63, 0xe0, 0x00, 0x40, 0xbf, 0xc1, 0xd8, 0x70, 0xdd, 0x60, 0xa9, 0xda, 0xcb, 0xc1, 0x52, 0xb5, 0x97, 0xe3, 0xd0, 0xf1, 0x78, 0x41, 0xb0, 0xc1, 0x49, 0x6f, 0x77, 0x71, 0x10, 0x2c, 0xec, 0x06, 0xef, 0x38, 0xd0, 0xd9, 0xe0, 0x0d, 0xa8, 0x47, 0xc3, 0x6e, 0xf0, 0x64, 0x06, 0x9d, 0x85, 0x5d, 0xb8, 0x0d, 0xa9, 0x83, 0x83, 0xd1, 0xe0, 0x7b, 0x30, 0xfc, 0x7c, 0x87, 0x5d, 0xb8, 0x0d, 0x5a, 0x29, 0xcd, 0x3f, 0xa4, 0x0e, 0x16, 0x76, 0xe1, 0x36, 0xa4, 0x0e, 0x0e, 0x5a, 0x29, 0xcd, 0xdf, 0xa0, 0x95, 0xd2, 0xfc, 0xc3, 0x29, 0x76, 0xf0, 0xe2, 0xe9, 0xa3, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x0a, 0x82, 0xc5, 0x19, 0xbc, 0x9e, 0x99, 0x83, 0x44, 0x12, 0x9f, 0xc5, 0x61, 0x37, 0x68, 0x70, 0x3f, 0x69, 0x41, 0xb6, 0x86, 0x3c, 0xf6, 0xe2, 0x20, 0xd8, 0xa0, 0x91, 0xeb, 0x95, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xcd, 0x6f, 0xaf, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0xb8, 0xa1, 0x8e, 0x6f, 0x78, 0xf9, 0x6e, 0x02, 0xf8, 0x86, 0x0b, 0x93, 0x0b, 0x63, 0x63, 0x2b, 0x63, 0x4b, 0x9b, 0x6b, 0x6b, 0x69, 0xab, 0x9b, 0xa3, 0x6b, 0x11, 0x2b, 0x6b, 0x09, 0x13, 0x7b, 0xb3, 0x2b, 0x6b, 0xd1, 0x2b, 0x93, 0x7b, 0x87, 0xdf, 0x78, 0x3e, 0x1e, 0x44, 0xcd, 0x24, 0xce, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x3e, 0x9c, 0x62, 0xc3, 0x2e, 0xdc, 0x86, 0x18, 0x1e, 0x3c, 0xf3, 0xa3, 0x62, 0x41, 0xb6, 0x86, 0x3c, 0xf6, 0xe2, 0x20, 0xd8, 0xa0, 0x91, 0xeb, 0x95, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xcd, 0x6f, 0xaf, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0xb8, 0xa1, 0x8e, 0x6f, 0x78, 0xf9, 0x6e, 0x02, 0xf8, 0xa5, 0x4b, 0x6b, 0x2b, 0x6b, 0x19, 0x7b, 0x9b, 0xa3, 0x6b, 0x69, 0xab, 0x9b, 0xa3, 0x6b, 0x11, 0x2b, 0x6b, 0x09, 0x13, 0x7b, 0xb3, 0x2b, 0x6b, 0xd1, 0x2b, 0x93, 0x7b, 0x87, 0xdf, 0x78, 0x3e, 0x1e, 0x44, 0x69, 0x26, 0xce, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x3e, 0x9c, 0x62, 0xc3, 0x2e, 0x08, 0x36, 0x38, 0x42, 0x15, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x48, 0x1a, 0x40, 0x18, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0xe4, 0x58, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0x40, 0xc4, 0x7f, 0x10, 0xf6, 0xd4, 0xc7, 0xa1, 0xe3, 0xd0, 0x82, 0x6c, 0x0d, 0x79, 0xec, 0xc5, 0x41, 0xb0, 0x41, 0x23, 0xd7, 0x2b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x9a, 0xdf, 0x5e, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x71, 0xc3, 0xc4, 0xad, 0xa1, 0x8e, 0x6f, 0x78, 0xf9, 0x6e, 0x02, 0xf0, 0xa3, 0xad, 0xac, 0xed, 0x4d, 0x2e, 0xaf, 0x65, 0xec, 0x6d, 0x8e, 0xae, 0xa5, 0xad, 0x6e, 0x8e, 0xae, 0x45, 0xac, 0xac, 0x25, 0x8c, 0xae, 0x85, 0xad, 0x2c, 0x6c, 0x8e, 0xae, 0x85, 0x0e, 0x4d, 0xae, 0x2c, 0x8c, 0x6c, 0xde, 0x30, 0x71, 0x1b, 0xb4, 0xf2, 0x4f, 0xb1, 0x61, 0xe2, 0xd6, 0x50, 0xc7, 0x37, 0xbc, 0x7c, 0x37, 0x01, 0x0f, 0x5d, 0x5a, 0x5b, 0xd9, 0xbc, 0x61, 0xe2, 0x36, 0x68, 0xe5, 0x9f, 0x62, 0x43, 0x1d, 0x59, 0xc3, 0x0c, 0xad, 0x61, 0xe2, 0x36, 0x78, 0x12, 0x8b, 0xc9, 0xe1, 0x3c, 0xde, 0x70, 0x22, 0x6c, 0x10, 0xeb, 0xa6, 0x38, 0x1b, 0x2c, 0x66, 0x83, 0x5a, 0x66, 0x39, 0x7c, 0x45, 0x73, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0xe1, 0x2b, 0x9a, 0xe1, 0x37, 0x9e, 0x2f, 0x1e, 0x44, 0x91, 0x28, 0xce, 0x86, 0x26, 0x5c, 0x8b, 0x07, 0x31, 0x5b, 0x8a, 0xb3, 0x41, 0x01, 0x00, 0x75, 0x10, 0xdf, 0x9d, 0x38, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0xf8, 0x70, 0x8a, 0x0d, 0xbb, 0xb0, 0x0b, 0xb7, 0x41, 0xa2, 0xdc, 0xc7, 0xa1, 0x93, 0xda, 0x86, 0x18, 0x0e, 0xbb, 0x70, 0x1b, 0xa4, 0xb7, 0x8d, 0x1c, 0x3a, 0xa9, 0x1d, 0xd2, 0xb9, 0x0b, 0x82, 0x05, 0xc1, 0x82, 0x60, 0x83, 0x93, 0x63, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x82, 0x6c, 0xe7, 0x20, 0xec, 0xa9, 0x8f, 0x43, 0x83, 0x60, 0x83, 0x73, 0xa8, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xda, 0x2d, 0x86, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x1e, 0x24, 0xe3, 0x20, 0x1c, 0x87, 0x0e, 0xa9, 0x83, 0xe3, 0xd0, 0x20, 0x58, 0x10, 0x6c, 0xd0, 0x6e, 0x31, 0xd4, 0x41, 0x7a, 0x04, 0xc2, 0x20, 0x58, 0x10, 0x6c, 0x10, 0x1d, 0x7f, 0x34, 0x07, 0x51, 0xd3, 0x2b, 0x33, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x0d, 0xca, 0x59, 0x9d, 0x83, 0xd3, 0x19, 0xf2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xf2, 0xc8, 0x60, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x38, 0x95, 0xc5, 0x39, 0x38, 0x68, 0xf5, 0x1e, 0x87, 0x86, 0x5f, 0x10, 0x6c, 0x70, 0x8e, 0xec, 0x5d, 0x1c, 0x76, 0x41, 0xb0, 0xc1, 0x2b, 0x30, 0x01, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x7a, 0x08, 0x1d, 0x1c, 0x88, 0xf8, 0x8f, 0x43, 0x0b, 0xb2, 0x35, 0xe4, 0xb1, 0x17, 0x07, 0xc1, 0x06, 0x6d, 0x59, 0xf5, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0x67, 0xab, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0xc5, 0x0d, 0x13, 0xb7, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x09, 0xa0, 0xa7, 0x2d, 0xcd, 0xad, 0x65, 0x2e, 0x8c, 0x8d, 0xae, 0x85, 0xad, 0xcc, 0xed, 0x8c, 0x0e, 0xad, 0x25, 0x6d, 0xae, 0x05, 0x1f, 0xb4, 0xf2, 0x4f, 0x31, 0xfc, 0xc6, 0xf3, 0xc5, 0x83, 0xc8, 0xcd, 0xc5, 0x39, 0x34, 0x12, 0x3c, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0x87, 0x53, 0x6c, 0x10, 0x2c, 0x08, 0x56, 0x10, 0x6c, 0x70, 0xa2, 0x50, 0x1e, 0x04, 0x1b, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0xfc, 0x20, 0x59, 0x99, 0x64, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x31, 0x61, 0x35, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xa1, 0x05, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc6, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x12, 0x38, 0xfc, 0xfe, 0x4f, 0xe0, 0xf8, 0xfb, 0x7f, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0x83, 0x60, 0x41, 0x32, 0x20, 0xfc, 0x9d, 0x0e, 0x0e, 0x14, 0xc9, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0x62, 0xd1, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x68, 0x3e, 0xbf, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x10, 0xc1, 0xe8, 0x37, 0x07, 0x05, 0xd9, 0xce, 0x71, 0x68, 0x41, 0xb0, 0xc1, 0xa1, 0xce, 0x7c, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0x81, 0xf2, 0xf7, 0xff, 0x38, 0xb4, 0x20, 0xd8, 0xe0, 0x50, 0x67, 0x7e, 0x10, 0xc3, 0x15, 0x38, 0x0b, 0x82, 0x0d, 0x0e, 0x75, 0xe6, 0x87, 0x3d, 0xde, 0x05, 0xc1, 0x06, 0x87, 0x3a, 0xf3, 0xc3, 0x46, 0xed, 0x1a, 0x94, 0x71, 0x3b, 0x83, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xe8, 0x64, 0xbf, 0x19, 0x24, 0x43, 0x06, 0xd1, 0x06, 0x6d, 0xfd, 0x29, 0x1d, 0x87, 0x8e, 0x43, 0x6b, 0x50, 0xc6, 0xed, 0x1c, 0x44, 0x7e, 0xfc, 0xcd, 0x1a, 0x94, 0x71, 0x3b, 0x07, 0x71, 0xf0, 0x7e, 0xb3, 0x06, 0x65, 0xdc, 0xce, 0x41, 0xfc, 0xc3, 0xdf, 0xac, 0x41, 0x19, 0xb7, 0x33, 0x08, 0x36, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x0f, 0x1a, 0x4f, 0x61, 0x39, 0x0e, 0xad, 0x41, 0x19, 0xb7, 0x73, 0x10, 0x03, 0xf0, 0x37, 0x87, 0x18, 0x1e, 0x87, 0x06, 0xc1, 0xc2, 0x2f, 0x48, 0x06, 0xbb, 0x83, 0xe1, 0x28, 0x7d, 0x50, 0x0e, 0x25, 0x1d, 0x44, 0xeb, 0xec, 0xcd, 0x20, 0xd8, 0x10, 0xc3, 0x41, 0xb0, 0x38, 0xec, 0x82, 0x60, 0x41, 0x32, 0x90, 0x5f, 0x39, 0x68, 0xcd, 0xc1, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x55, 0x33, 0x81, 0xe3, 0xfb, 0xff, 0x71, 0x68, 0x41, 0xb0, 0x21, 0x86, 0x83, 0x60, 0x71, 0xd8, 0x05, 0xc1, 0x82, 0x64, 0x20, 0xbf, 0x72, 0x10, 0x17, 0x45, 0x17, 0x07, 0xa9, 0x0e, 0x1a, 0x0b, 0x82, 0x0d, 0x31, 0x1c, 0x04, 0x8b, 0xc3, 0x2e, 0x08, 0x16, 0x24, 0x03, 0xf9, 0x95, 0x83, 0x08, 0x56, 0xbb, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0xd5, 0x4c, 0x60, 0xb9, 0xff, 0xff, 0x71, 0x68, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0xba, 0x0e, 0xce, 0x79, 0xc7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x6f, 0x70, 0x96, 0x3d, 0xde, 0x60, 0xf0, 0x4e, 0x6e, 0x30, 0xde, 0x74, 0x36, 0xec, 0x15, 0x6e, 0x48, 0x1d, 0x6c, 0x50, 0x2e, 0xf6, 0x6c, 0x70, 0xce, 0x4c, 0xde, 0xe0, 0x54, 0x8e, 0xbc, 0x04, 0x92, 0xfb, 0xff, 0x97, 0x40, 0xf3, 0xfd, 0xff, 0x1b, 0xa4, 0x27, 0xd4, 0x1c, 0x24, 0x40, 0x8e, 0x1c, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xc0, 0xf9, 0x7f, 0x1c, 0x3a, 0x48, 0x8b, 0x83, 0x3e, 0x88, 0x3d, 0x4a, 0x9a, 0xe3, 0xdb, 0x41, 0xec, 0x51, 0xd2, 0x1c, 0xdf, 0x06, 0xc1, 0x86, 0x18, 0x0e, 0x82, 0x0d, 0x31, 0x1c, 0x04, 0x8b, 0xc3, 0x2e, 0xdc, 0x86, 0x54, 0xcd, 0x04, 0x8e, 0xfb, 0xff, 0x0b, 0x82, 0x05, 0xc9, 0x30, 0x07, 0xa7, 0x33, 0xe4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0xdf, 0x20, 0xd9, 0xab, 0xe5, 0x90, 0x3a, 0x38, 0x48, 0xcc, 0x1b, 0x39, 0x0e, 0x0d, 0x82, 0x05, 0xc1, 0x82, 0x64, 0x20, 0x78, 0x07, 0x71, 0x51, 0x74, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xaa, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x08, 0xf4, 0xbe, 0x83, 0xb8, 0x28, 0xba, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x48, 0xaf, 0x1c, 0xc4, 0x63, 0xd6, 0xc5, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0xe0, 0x9c, 0x99, 0x7c, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0xda, 0xbf, 0x71, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xf6, 0x0a, 0x0f, 0xce, 0xb2, 0xc7, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xe2, 0x83, 0x71, 0x06, 0x7d, 0x90, 0x5c, 0xfa, 0x70, 0x7c, 0x3b, 0xbe, 0x1d, 0x8f, 0x07, 0xd9, 0x1a, 0xd2, 0x40, 0xe3, 0x00, 0x5d, 0x98, 0xdc, 0xd9, 0x9b, 0x9b, 0xdc, 0x60, 0x18, 0xfa, 0x74, 0x3c, 0x1e, 0x64, 0x6b, 0xc8, 0x63, 0x2f, 0x0e, 0x82, 0x0d, 0x1a, 0xb9, 0x5e, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0xfc, 0xf6, 0xca, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x8b, 0x1b, 0x26, 0x6e, 0x0d, 0x75, 0x7c, 0xc3, 0xcb, 0x77, 0x13, 0xc0, 0x4b, 0x9d, 0xdb, 0x5c, 0x1d, 0x1c, 0xdc, 0x9b, 0x1c, 0x5d, 0x19, 0x59, 0x8b, 0x5d, 0x99, 0xdc, 0x5c, 0xda, 0x9b, 0xbb, 0x61, 0xe2, 0xd6, 0x50, 0xc7, 0x0f, 0x56, 0xb5, 0xa1, 0x6e, 0x98, 0xb8, 0x35, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0xcd, 0xc1, 0x3b, 0x94, 0xae, 0x37, 0x4c, 0xdc, 0x06, 0x91, 0xb2, 0x8e, 0x73, 0x10, 0x29, 0xeb, 0x38, 0xc3, 0x6f, 0x3c, 0x5f, 0x3c, 0x88, 0xd5, 0x74, 0x9c, 0x0d, 0x9d, 0xd4, 0xc6, 0x0d, 0xde, 0xa1, 0x74, 0x3d, 0x18, 0x84, 0xcd, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x3e, 0x9c, 0x62, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xbb, 0x70, 0x1b, 0x14, 0x00, 0x50, 0x83, 0x60, 0x83, 0x88, 0x89, 0xb6, 0x39, 0x34, 0x6a, 0x59, 0x10, 0x2c, 0x08, 0x36, 0x78, 0x21, 0xb5, 0xc0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x76, 0x34, 0x5c, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x52, 0x35, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x04, 0x1b, 0x24, 0x76, 0x7d, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xb2, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0x55, 0xa7, 0x83, 0xb3, 0x97, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa1, 0x58, 0x74, 0x90, 0x08, 0xc8, 0x7d, 0x1c, 0x3a, 0x0e, 0x0d, 0x82, 0x0d, 0x5a, 0xce, 0xc1, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0x1d, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0xa7, 0xb2, 0x38, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0xdb, 0xd8, 0x9a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xc6, 0xf3, 0xc3, 0x6f, 0x3c, 0x3f, 0x88, 0x5a, 0x5f, 0x9b, 0xe3, 0xd0, 0xc1, 0xc0, 0x0f, 0x39, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0xc7, 0xa1, 0xe3, 0xd0, 0xf0, 0x0b, 0xa2, 0x85, 0x0c, 0x82, 0x05, 0xc9, 0xa0, 0xef, 0xb0, 0x42, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0x3a, 0xd8, 0x60, 0xe0, 0x87, 0x6c, 0x50, 0x90, 0xed, 0x6c, 0x70, 0x20, 0xe2, 0x1f, 0x7e, 0xe3, 0xf9, 0xc1, 0x62, 0x00, 0xa2, 0xe3, 0xd0, 0xf1, 0x78, 0xf8, 0x05, 0xd1, 0x42, 0x06, 0xc1, 0x06, 0x51, 0xb0, 0x8f, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0x3a, 0xd8, 0x60, 0x6c, 0xb8, 0x6e, 0x50, 0xa2, 0xe1, 0x6c, 0x70, 0x38, 0x29, 0x3e, 0x28, 0x55, 0x80, 0x8e, 0x43, 0xc7, 0xe3, 0xe1, 0x17, 0x44, 0x0b, 0x19, 0x04, 0x1b, 0x44, 0xc1, 0x3e, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xea, 0x60, 0x43, 0xe3, 0xf9, 0x0d, 0x86, 0xec, 0xf9, 0x06, 0xe7, 0x9a, 0xe2, 0x83, 0xc4, 0xf9, 0x8f, 0xe3, 0xd0, 0xf1, 0x78, 0xf8, 0x05, 0xd1, 0x42, 0x06, 0xc1, 0x06, 0x51, 0xb0, 0x8f, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0x3a, 0xd8, 0x60, 0x28, 0x16, 0x6d, 0x30, 0xae, 0xd1, 0x37, 0x38, 0xeb, 0xe5, 0x1f, 0x94, 0x8b, 0x3e, 0xc7, 0xa1, 0xe3, 0xf1, 0xf0, 0x0b, 0xa2, 0x85, 0x0c, 0x82, 0x0d, 0xa2, 0x60, 0x1f, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x75, 0xb0, 0xc1, 0xc0, 0x0f, 0xd9, 0xa0, 0x44, 0xc3, 0xd9, 0xe0, 0x5c, 0x53, 0x7c, 0x50, 0x2e, 0xfa, 0x1c, 0x87, 0x8e, 0xc7, 0xc3, 0x2f, 0x88, 0x16, 0x32, 0x08, 0x36, 0x88, 0x82, 0x7d, 0x9c, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xd4, 0xc1, 0x06, 0x63, 0xc3, 0x75, 0x83, 0x21, 0x7b, 0xbe, 0xc1, 0x59, 0x2f, 0xff, 0x20, 0x72, 0xf9, 0x71, 0x8e, 0x43, 0xc7, 0xe3, 0xe1, 0x17, 0x44, 0x0b, 0x19, 0x04, 0x1b, 0x44, 0xc1, 0x3e, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xea, 0x60, 0x43, 0xe3, 0xf9, 0x0d, 0xc6, 0x35, 0xfa, 0x06, 0x07, 0x22, 0xfe, 0x83, 0x52, 0x05, 0xe8, 0x38, 0x74, 0x3c, 0x1e, 0x7e, 0x41, 0xb4, 0x90, 0x41, 0xb0, 0x41, 0x14, 0xec, 0xe3, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xa4, 0x0e, 0x36, 0x18, 0x8a, 0x45, 0x1b, 0x14, 0x64, 0x3b, 0x1b, 0x1c, 0x4e, 0x8a, 0x0f, 0x12, 0xe7, 0x3f, 0x8e, 0x43, 0xc7, 0xe3, 0xe1, 0x17, 0x44, 0x0b, 0x19, 0x04, 0x1b, 0xb4, 0xc9, 0xc6, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0x3a, 0x18, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x08, 0xd6, 0xbe, 0x83, 0x63, 0x56, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xa2, 0x03, 0x22, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0xc0, 0xaa, 0xd3, 0xc1, 0x31, 0xab, 0xf8, 0x60, 0x28, 0x16, 0x1d, 0x87, 0x0e, 0x0e, 0x44, 0xfc, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0x10, 0x6c, 0xd0, 0x26, 0x1b, 0xcb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x80, 0xdc, 0xf5, 0xf7, 0xbe, 0x83, 0x63, 0x56, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x81, 0x1f, 0x72, 0x30, 0xae, 0xd1, 0x8f, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x04, 0x1b, 0x9c, 0x30, 0x8f, 0x0f, 0x12, 0x6f, 0x82, 0x06, 0xc1, 0x82, 0x64, 0x20, 0x4c, 0x07, 0xe7, 0xbc, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x43, 0xf6, 0x7c, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xe2, 0x40, 0xb2, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x98, 0xe1, 0x3e, 0x08, 0x4c, 0xec, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x71, 0x20, 0x59, 0x73, 0x90, 0xaa, 0xd6, 0x70, 0x1c, 0x3a, 0x1e, 0x1f, 0x87, 0x0e, 0xa7, 0xd8, 0xf1, 0x78, 0x10, 0x6c, 0x50, 0x50, 0x8b, 0x2d, 0x6e, 0x10, 0xdf, 0xcc, 0x37, 0x83, 0x60, 0x83, 0x48, 0x7b, 0xb4, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x14, 0x8b, 0x86, 0xdf, 0x78, 0xbe, 0x41, 0xdc, 0x3e, 0xdf, 0x6c, 0xb0, 0x6e, 0x20, 0xe8, 0x10, 0xc3, 0xe3, 0xd0, 0xf1, 0x78, 0x41, 0xb0, 0xc1, 0x49, 0x6f, 0x77, 0x71, 0xd8, 0x0d, 0xde, 0x71, 0xa0, 0xb3, 0x21, 0x86, 0xc3, 0x6e, 0xf0, 0x64, 0x06, 0x9d, 0x0d, 0x47, 0xfb, 0xb0, 0x1b, 0x44, 0x47, 0x23, 0xce, 0x86, 0x56, 0xe2, 0x83, 0x6c, 0x0d, 0xed, 0xd7, 0x0f, 0x9e, 0x02, 0x7d, 0x74, 0x70, 0xe4, 0x29, 0x3e, 0x1e, 0x0f, 0x82, 0x0d, 0x96, 0x85, 0xc1, 0x2c, 0x0e, 0x82, 0x05, 0xc1, 0x06, 0x51, 0xa7, 0x6f, 0x73, 0x90, 0x28, 0xe6, 0x31, 0xfc, 0xc6, 0xe3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x05, 0xc1, 0x06, 0xd1, 0x01, 0x91, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0x2f, 0x7b, 0xa0, 0x39, 0x28, 0xd1, 0x70, 0x8e, 0x43, 0xc3, 0x2f, 0x88, 0x16, 0x94, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xa1, 0x83, 0x92, 0xa1, 0x69, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x10, 0xa4, 0xf8, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x8c, 0xb1, 0xa7, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0x91, 0xe0, 0x32, 0x83, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x1f, 0x1a, 0xcf, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x8d, 0x43, 0x87, 0xec, 0xc5, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x0e, 0x1d, 0xa4, 0x17, 0x5d, 0x1c, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0xf8, 0x05, 0xd1, 0x02, 0x71, 0x1f, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0x43, 0x07, 0x23, 0x24, 0x6a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc0, 0x0f, 0xd9, 0x20, 0x35, 0xec, 0x64, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xc8, 0x79, 0xe6, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x50, 0xca, 0xec, 0x1c, 0x92, 0x1d, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0xf8, 0x05, 0xd1, 0x02, 0x61, 0x1f, 0x04, 0x1b, 0x44, 0x6d, 0x49, 0xce, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0x59, 0xbe, 0x64, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x86, 0x7d, 0x46, 0x86, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x44, 0x82, 0xcb, 0x0c, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x22, 0x36, 0x25, 0x67, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x1c, 0x3a, 0x68, 0x7b, 0xf5, 0x65, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x07, 0xa5, 0xcc, 0xce, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0xc3, 0x2f, 0x88, 0x16, 0x5c, 0x1f, 0x04, 0x1b, 0xc4, 0x6d, 0x4b, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x81, 0x1f, 0xb2, 0x41, 0x1c, 0xba, 0xe1, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0x39, 0xcf, 0x1c, 0x07, 0x29, 0xea, 0x22, 0xc7, 0xa1, 0xe3, 0xf1, 0xf0, 0x1b, 0xc4, 0x56, 0x49, 0xce, 0xf0, 0x0b, 0xa2, 0x05, 0xe2, 0x3e, 0x08, 0x36, 0x88, 0xdb, 0x96, 0x9c, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x03, 0x3f, 0x64, 0x83, 0xd4, 0x0e, 0x90, 0x83, 0xe8, 0x79, 0xc9, 0x39, 0x0e, 0x1d, 0x8f, 0x87, 0xdf, 0x20, 0x2a, 0x62, 0x72, 0x86, 0x5f, 0x10, 0x2d, 0xb8, 0x3e, 0x08, 0x36, 0x88, 0xdb, 0x96, 0x9c, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x03, 0x3f, 0x64, 0x83, 0xc5, 0x84, 0x27, 0x07, 0x71, 0xac, 0x93, 0x73, 0x1c, 0x3a, 0x1e, 0x6f, 0x88, 0xff, 0x86, 0x16, 0x40, 0x07, 0x2d, 0x8c, 0xbb, 0x1c, 0x8f, 0x07, 0xc1, 0x06, 0x05, 0xb4, 0xe0, 0xe2, 0x20, 0x58, 0x5c, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0x0d, 0x5a, 0xce, 0xc1, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x5c, 0x57, 0xcb, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x64, 0xed, 0x0e, 0x82, 0x14, 0xff, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x0d, 0xe3, 0x32, 0x08, 0x36, 0x88, 0x93, 0x6c, 0x99, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x3f, 0x18, 0xd1, 0x76, 0x07, 0x41, 0x8a, 0x7f, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x0d, 0x22, 0x45, 0xc1, 0xe6, 0xe0, 0xf5, 0x5f, 0x11, 0xc7, 0xe3, 0x41, 0xb0, 0x20, 0xd8, 0xe0, 0xa4, 0x66, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x06, 0x0b, 0x33, 0xf9, 0x17, 0x04, 0x1b, 0x94, 0x43, 0x49, 0x07, 0x07, 0xd0, 0xf4, 0x0d, 0x56, 0x49, 0xf5, 0x0f, 0x82, 0x0d, 0xca, 0xa1, 0xa4, 0x41, 0x32, 0xe4, 0xa0, 0xd9, 0xf8, 0x98, 0xe3, 0xd0, 0xf0, 0x0b, 0xa2, 0x05, 0xe5, 0x83, 0x60, 0x83, 0xc4, 0x96, 0x93, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x21, 0x9f, 0x7d, 0x88, 0xe6, 0x71, 0xe8, 0x78, 0x3c, 0xfc, 0x82, 0x68, 0x41, 0xf9, 0x20, 0xd8, 0x20, 0xb1, 0xe5, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x91, 0xab, 0x70, 0x68, 0x24, 0x78, 0x1c, 0x3a, 0x1e, 0x0f, 0xbf, 0x20, 0x5a, 0x50, 0x3e, 0x08, 0x36, 0x48, 0x6c, 0x39, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x90, 0xe6, 0x9e, 0x71, 0xe8, 0xa4, 0x76, 0x1c, 0x3a, 0x1e, 0x0f, 0x82, 0x0d, 0x12, 0x5b, 0x4e, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x24, 0x7a, 0x2b, 0x1c, 0x8c, 0xcc, 0xde, 0xe3, 0xd0, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0xf0, 0x84, 0xc9, 0x9d, 0xbd, 0xb9, 0x07, 0x6b, 0xc2, 0x77, 0x8e, 0xc7, 0x6b, 0x38, 0xc5, 0x56, 0x10, 0x2c, 0x2e, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x96, 0x1d, 0xcd, 0x0f, 0x89, 0xd6, 0x61, 0x37, 0x18, 0xf5, 0x92, 0x1b, 0x8e, 0xf6, 0x41, 0xb0, 0x41, 0x92, 0xb1, 0xc7, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xfc, 0x87, 0xdf, 0x78, 0xbe, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x06, 0xca, 0xd3, 0xc1, 0x31, 0xab, 0x78, 0x90, 0x0c, 0x73, 0xd8, 0xb3, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x88, 0xe6, 0xc1, 0xd8, 0x70, 0x3d, 0x0e, 0x1d, 0x84, 0x00, 0xf8, 0x71, 0xe8, 0x78, 0xbc, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x60, 0x83, 0xa8, 0xd3, 0xb7, 0x19, 0x24, 0x83, 0xb2, 0x83, 0x54, 0xbe, 0x96, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x87, 0x5d, 0xb8, 0x05, 0xc1, 0x06, 0x91, 0x1e, 0x79, 0x73, 0x68, 0xd4, 0x72, 0x90, 0xe6, 0xd6, 0xb2, 0x20, 0xd8, 0xa0, 0x05, 0x93, 0xfe, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x83, 0x38, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0x43, 0xa5, 0x1c, 0x07, 0xe3, 0x38, 0xe4, 0x38, 0x74, 0x10, 0xcd, 0x5c, 0x39, 0xc7, 0xa1, 0xe3, 0xf1, 0x0a, 0xbf, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x85, 0x5f, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x06, 0xce, 0xaa, 0x43, 0xb6, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x81, 0x88, 0x7f, 0x83, 0x82, 0x6c, 0xe7, 0x20, 0x71, 0xfe, 0xe3, 0x38, 0x34, 0xfc, 0x82, 0x68, 0x41, 0xfd, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x06, 0xca, 0xd3, 0x04, 0xc6, 0xff, 0xdf, 0x20, 0x19, 0xfc, 0x1b, 0x44, 0x0b, 0x7b, 0x70, 0x20, 0xe2, 0x3f, 0x0e, 0x1d, 0x8c, 0x84, 0xd5, 0x41, 0xb4, 0x20, 0x1e, 0x04, 0x0b, 0x82, 0x0d, 0x62, 0x2d, 0x2c, 0xe7, 0x20, 0x21, 0xaf, 0xe5, 0x60, 0x98, 0x85, 0x1f, 0x8f, 0x07, 0xc1, 0x06, 0x71, 0x34, 0x96, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0xb2, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xb1, 0xe1, 0xba, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xe9, 0x67, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0xc1, 0x28, 0x3f, 0x39, 0x18, 0x09, 0xab, 0xc7, 0xa1, 0xc3, 0x5e, 0xe1, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0x4f, 0x56, 0x1e, 0x52, 0x4b, 0xc7, 0xe3, 0xe1, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x36, 0x88, 0x86, 0xaf, 0x9c, 0xe1, 0x37, 0x88, 0x79, 0xb0, 0x9c, 0x41, 0xb0, 0x41, 0x1c, 0x8d, 0xe5, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0xae, 0xb2, 0x9c, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x03, 0x3f, 0x64, 0x83, 0x08, 0x3a, 0xcb, 0x39, 0xec, 0x15, 0x1e, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0x38, 0xf0, 0x65, 0xee, 0x21, 0xb5, 0x74, 0x3c, 0x3e, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0xbf, 0x6c, 0x4c, 0x6c, 0x3c, 0xa4, 0x96, 0x8e, 0xc7, 0x2b, 0xfc, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0xd8, 0x0d, 0xbb, 0x06, 0x0b, 0x82, 0x05, 0xc9, 0x40, 0xfe, 0xef, 0x90, 0x5c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xc8, 0xda, 0x6d, 0x50, 0x10, 0x10, 0x1d, 0x8c, 0x0d, 0xd7, 0xe3, 0xd0, 0x20, 0x58, 0x10, 0x6c, 0x10, 0x75, 0x70, 0x39, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x59, 0xbb, 0x0d, 0x0a, 0x02, 0xa2, 0x83, 0x81, 0x1f, 0x72, 0x1c, 0x1a, 0x04, 0x0b, 0x92, 0x81, 0xfc, 0xdf, 0x61, 0x85, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0xfe, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x8b, 0xc3, 0x6e, 0x50, 0x54, 0x29, 0x2c, 0x08, 0x16, 0x04, 0x1b, 0x44, 0x86, 0x8c, 0xc8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa1, 0x58, 0x74, 0x10, 0xf2, 0xd9, 0xc7, 0xa1, 0x61, 0x17, 0x04, 0x1b, 0x44, 0xf1, 0x81, 0xcd, 0x41, 0x6c, 0x02, 0xcb, 0xac, 0xc1, 0xf8, 0x97, 0x1c, 0x04, 0x1b, 0xc4, 0x70, 0x3d, 0xc7, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x31, 0xf6, 0x74, 0xd8, 0x2b, 0x3c, 0x0e, 0x6d, 0x50, 0x46, 0x10, 0x0d, 0x82, 0x0d, 0x62, 0xb8, 0x9e, 0x63, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xed, 0xdc, 0x9a, 0x1f, 0x0c, 0xb3, 0xf0, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xd6, 0x47, 0x3a, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x0f, 0x92, 0x05, 0x16, 0x8e, 0x43, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x6d, 0x50, 0x1e, 0xc4, 0x0d, 0xa2, 0x85, 0x1d, 0x04, 0x1b, 0x44, 0xce, 0x33, 0xc7, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x8e, 0xde, 0xe6, 0x87, 0x46, 0x2d, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0xfc, 0xdf, 0x21, 0x5b, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xec, 0xd8, 0x60, 0xe0, 0x87, 0x1c, 0x84, 0x7c, 0xf6, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x3e, 0xbe, 0x1d, 0x87, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xc0, 0x9f, 0x93, 0xb1, 0x1b, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0xc2, 0x2f, 0x08, 0x36, 0x18, 0xf9, 0x0f, 0x8b, 0x83, 0x60, 0x05, 0xc1, 0x06, 0x91, 0x85, 0x5f, 0x73, 0x48, 0xc3, 0x0d, 0xbb, 0x41, 0x90, 0x78, 0x2f, 0x08, 0x36, 0x58, 0x5d, 0x18, 0x71, 0x50, 0x72, 0xe6, 0x1c, 0x0c, 0xd3, 0x89, 0x41, 0xb0, 0xb0, 0x0b, 0xbb, 0x70, 0x0b, 0x82, 0x0d, 0x1a, 0xad, 0x85, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x18, 0x97, 0x83, 0xd4, 0x0e, 0x90, 0xe3, 0xd0, 0x21, 0x86, 0x0b, 0xbb, 0xb0, 0x0b, 0x77, 0xd0, 0xae, 0x15, 0xd4, 0x61, 0x7d, 0xf3, 0x90, 0xce, 0x3d, 0x1c, 0xed, 0x1b, 0x04, 0x4e, 0xf3, 0x86, 0xa3, 0x7d, 0x10, 0x6c, 0x70, 0xc2, 0x44, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x18, 0x97, 0x43, 0xc3, 0xaf, 0xe3, 0xd0, 0x20, 0x58, 0x10, 0x2c, 0x08, 0x36, 0x48, 0x97, 0x29, 0x1a, 0x24, 0xc3, 0x0d, 0xa2, 0x85, 0xdd, 0x90, 0xec, 0x38, 0x18, 0xf8, 0x21, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x91, 0xf3, 0xcc, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x30, 0x2e, 0xc3, 0x6f, 0x3c, 0x1f, 0x76, 0x83, 0x05, 0xb0, 0x3e, 0x1b, 0x8c, 0x9f, 0xae, 0x41, 0xb6, 0xc1, 0x52, 0x8e, 0xa0, 0x83, 0xa1, 0xd9, 0x75, 0x1c, 0x3a, 0x0e, 0x0d, 0x82, 0x05, 0xc1, 0x82, 0x64, 0xa0, 0x3c, 0x1d, 0x9c, 0xce, 0x90, 0x0f, 0x22, 0x2b, 0x2b, 0xe7, 0x60, 0x60, 0x8b, 0x1e, 0x8f, 0x07, 0xd9, 0x1a, 0xd2, 0x40, 0xe3, 0x80, 0xdf, 0x16, 0x36, 0x16, 0x1e, 0x52, 0x4b, 0xc7, 0xe3, 0x05, 0xc1, 0x06, 0x23, 0xff, 0x61, 0x71, 0xf8, 0x05, 0xc1, 0xc2, 0xaf, 0x20, 0x58, 0xf8, 0x85, 0xdf, 0x90, 0xad, 0x38, 0x74, 0x31, 0x39, 0x38, 0xad, 0xe0, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x38, 0x10, 0xf1, 0x2f, 0xfc, 0xc6, 0xf3, 0x31, 0x98, 0x8d, 0x83, 0xa1, 0x58, 0x74, 0x1c, 0x3a, 0x88, 0x2e, 0x7d, 0x9b, 0x0d, 0xa2, 0xf2, 0x2c, 0x67, 0x41, 0x32, 0x58, 0x1d, 0x0c, 0xd6, 0xd8, 0x05, 0xc9, 0x60, 0x77, 0x1c, 0x3a, 0x78, 0x84, 0xf8, 0xc0, 0x20, 0x58, 0x1c, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x71, 0x43, 0x0c, 0x37, 0x58, 0x16, 0x06, 0xb3, 0xc1, 0xb2, 0x30, 0x98, 0x83, 0xd6, 0x16, 0xe9, 0x8f, 0xc7, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xc5, 0x15, 0x17, 0x03, 0xc0, 0xfe, 0xc7, 0xf8, 0xee, 0xf6, 0xe4, 0xd7, 0xde, 0x8a, 0x61, 0x02, 0xce, 0x56, 0xfc, 0xaf, 0x57, 0xed, 0x94, 0x05, 0x93, 0xfb, 0xf4, 0xb3, 0x8e, 0xe0, 0x5b, 0xa9, 0x45, 0x5f, 0x39, 0x49, 0xe5, 0x80, 0x6f, 0xfb, 0x27, 0x4d, 0x6c, 0x7e, 0xee, 0x99, 0x69, 0x4a, 0xcb, 0xe3, 0xe3, 0xb0, 0x63, 0x2a, 0x08, 0x8e, 0x47, 0x86, 0x31, 0x2c, 0x0b, 0x34, 0x0f, 0x24, 0x00, 0xc5, 0xd7, 0x4f, 0x64, 0xeb, 0x12, 0x06, 0x59, 0x34, 0x36, 0xdc, 0xb4, 0x40, 0xa5, 0x76, 0xac, 0x67, 0x53, 0xc6, 0x5f, 0x08, 0xa7, 0xa2, 0x01, 0xda, 0x41, 0xf8, 0x63, 0xb7, 0xd4, 0x96, 0x7d, 0x73, 0x94, 0x98, 0xb0, 0x9e, 0xa1, 0xdf, 0x55, 0xf7, 0x87, 0x9a, 0x66, 0x0a, 0x8b, 0xf2, 0x05, 0xfe, 0xa0, 0x78, 0x3e, 0x51, 0xa3, 0x46, 0x81, 0x1e, 0x25, 0x3b, 0x71, 0xea, 0x79, 0x6d, 0xb5, 0x43, 0x20, 0xfe, 0xe7, 0xa5, 0x9b, 0x19, 0x26, 0xd8, 0xbf, 0x2e, 0x89, 0x2e, 0x88, 0x4f, 0xfd, 0x7a, 0xc8, 0xba, 0x32, 0xe6, 0xc0, 0x02, 0x9f, 0xb8, 0x45, 0x54, 0x20, 0x11, 0x8d, 0xdc, 0x71, 0x29, 0xbc, 0xbd, 0x16, 0xb6, 0xc1, 0x65, 0x74, 0x14, 0x92, 0x0c, 0x48, 0xb8, 0x84, 0xa7, 0x59, 0xc5, 0x22, 0x2b, 0xc9, 0xf3, 0xce, 0x91, 0x6f, 0xda, 0x1a, 0xab, 0x9d, 0x52, 0xd9, 0xac, 0xe8, 0xd5, 0xcb, 0xf4, 0x5c, 0x11, 0x74, 0xf1, 0x4a, 0x5c, 0x38, 0x4c, 0x69, 0x8d, 0xd1, 0xbb, 0xe9, 0x3e, 0x96, 0x7a, 0x17, 0x15, 0xe1, 0x7c, 0x6a, 0xcd, 0x90, 0x06, 0xec, 0x1d, 0xc2, 0x6a, 0xae, 0x72, 0x0d, 0x83, 0x3b, 0x3c, 0xc3, 0xf1, 0x31, 0x23, 0xd2, 0xb2, 0x1d, 0x29, 0x37, 0x3d, 0x0e, 0xd3, 0x9d, 0xab, 0x50, 0xbe, 0x19, 0x43, 0x13, 0x1b, 0x7e, 0xcd, 0x85, 0xd0, 0x82, 0x32, 0x5b, 0x1e, 0x60, 0xa9, 0x76, 0x6d, 0x71, 0xc6, 0x21, 0xd1, 0xc5, 0x21, 0x07, 0xeb, 0xac, 0x4a, 0x0e, 0x86, 0xa6, 0xd5, 0xf1, 0x78, 0x05, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0xd8, 0x20, 0x45, 0x28, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x50, 0x2c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x6c, 0x30, 0x48, 0x5e, 0x0e, 0xce, 0xf5, 0xc7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x48, 0xff, 0x52, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x14, 0x8b, 0x0e, 0x16, 0x1b, 0xa1, 0x1d, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x6c, 0x10, 0x85, 0xe9, 0x21, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0x62, 0xd1, 0x06, 0xa3, 0x24, 0xf1, 0x90, 0x98, 0x39, 0x0e, 0x1d, 0x8f, 0x8f, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0xe2, 0x62, 0x00, 0xf8, 0xbf, 0x54, 0x82, 0x5a, 0x35, 0x8c, 0x4d, 0x29, 0xce, 0x2f, 0xd0, 0xa8, 0x67, 0xe0, 0xfc, 0xf5, 0x3e, 0xdf, 0x78, 0x8e, 0xe0, 0xe6, 0xcb, 0xff, 0x21, 0x8d, 0xe3, 0x10, 0x11, 0xb1, 0x77, 0xfa, 0x32, 0xd5, 0x1e, 0xa5, 0x8c, 0xa9, 0xf0, 0x48, 0x8f, 0x3b, 0x53, 0xe5, 0x82, 0x90, 0xfe, 0xb0, 0x13, 0x82, 0x4b, 0xa8, 0x19, 0x4a, 0x36, 0x89, 0xac, 0xdd, 0x96, 0x68, 0x52, 0xdb, 0x62, 0x74, 0x89, 0x1c, 0xbe, 0x3d, 0x99, 0x21, 0x1a, 0xa6, 0x05, 0x35, 0x29, 0x17, 0x73, 0x57, 0x99, 0xad, 0x24, 0x1b, 0x1c, 0x12, 0x54, 0x7f, 0x7b, 0xae, 0xb6, 0x57, 0x85, 0xd1, 0xd5, 0x69, 0x63, 0x27, 0x21, 0x24, 0xf6, 0x2a, 0x00, 0x23, 0xef, 0xb4, 0xc2, 0x3d, 0x39, 0x56, 0x01, 0xee, 0x6c, 0x91, 0x01, 0x34, 0x8b, 0xc7, 0xa3, 0xf2, 0xcf, 0x83, 0x40, 0xf0, 0x6b, 0xef, 0x40, 0xc0, 0x84, 0xe2, 0x9a, 0x4e, 0x64, 0x44, 0xd0, 0xd3, 0x19, 0xb7, 0xfa, 0xa5, 0xfc, 0xb3, 0x33, 0x3c, 0xad, 0xf9, 0x9c, 0x25, 0x2b, 0x9d, 0xc8, 0x79, 0x6b, 0x4d, 0xa1, 0x78, 0xfe, 0x0d, 0x3a, 0x47, 0xdd, 0xb7, 0xdb, 0x51, 0xbc, 0x46, 0x5c, 0x47, 0x4a, 0x71, 0xe2, 0xdb, 0xad, 0x98, 0x83, 0x2a, 0x86, 0xef, 0x06, 0xbf, 0x95, 0xcf, 0x92, 0xb1, 0x74, 0x1e, 0x88, 0xe6, 0x36, 0xb0, 0x3f, 0x5e, 0xb3, 0x16, 0xfd, 0x47, 0x37, 0xea, 0x0c, 0xe2, 0xc1, 0x71, 0x4c, 0xac, 0x04, 0x44, 0xd6, 0x09, 0x20, 0xfb, 0x17, 0x58, 0xd4, 0x5f, 0x6a, 0x46, 0xad, 0x52, 0x43, 0x4b, 0xb9, 0xde, 0xe7, 0x64, 0x32, 0xe7, 0x3b, 0x28, 0xf8, 0x4e, 0x93, 0xab, 0x4a, 0x3d, 0x2c, 0xf2, 0xfa, 0x2e, 0xcf, 0xe0, 0x54, 0x66, 0xd8, 0xc5, 0x0a, 0x81, 0x9f, 0xee, 0x9d, 0xb5, 0x49, 0x78, 0x1a, 0xc5, 0x58, 0x55, 0x08, 0x43, 0xbf, 0x38, 0x43, 0x87, 0xe4, 0xe2, 0x20, 0x1e, 0x64, 0x83, 0x34, 0x24, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x06, 0x4d, 0xde, 0xae, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x58, 0xb4, 0x31, 0x76, 0x48, 0xd5, 0x1c, 0x87, 0x8e, 0xc7, 0xc7, 0xe3, 0x05, 0xc1, 0x06, 0x23, 0xff, 0x61, 0x71, 0x10, 0x2c, 0x08, 0x16, 0x24, 0x03, 0xa3, 0x74, 0x70, 0xae, 0x3f, 0x3e, 0x18, 0xf5, 0x19, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x68, 0xeb, 0x74, 0x70, 0xa0, 0x48, 0x3e, 0x18, 0x77, 0x08, 0x83, 0x60, 0x71, 0xd8, 0x85, 0x3b, 0x78, 0x75, 0x05, 0xc5, 0x86, 0x54, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0xc4, 0x83, 0x60, 0x83, 0x27, 0x19, 0x02, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xec, 0x15, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0x5c, 0xfd, 0xdf, 0xfb, 0x0e, 0x8e, 0x19, 0xcb, 0x07, 0x6b, 0xcf, 0x5e, 0x8e, 0x43, 0x87, 0x1d, 0x93, 0xe3, 0xdb, 0xf1, 0x78, 0x10, 0x6c, 0x50, 0x40, 0x0b, 0x2e, 0x0e, 0x82, 0x0d, 0x96, 0x85, 0xc1, 0x0c, 0x82, 0xc5, 0x61, 0x37, 0x24, 0x02, 0x36, 0xc4, 0x70, 0xf8, 0x05, 0xd1, 0x82, 0x70, 0x10, 0x6c, 0x10, 0x85, 0xe9, 0x21, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0x62, 0xd1, 0x06, 0xe3, 0x0d, 0xe9, 0xa0, 0x84, 0x91, 0x38, 0x0e, 0x1d, 0x8f, 0x87, 0x5f, 0x10, 0x2d, 0x98, 0x0e, 0x82, 0x0d, 0xa2, 0x30, 0x3d, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x50, 0x2c, 0xda, 0x60, 0x34, 0x27, 0x1d, 0x94, 0x30, 0x12, 0xc7, 0xa1, 0xe3, 0xf1, 0xf0, 0x0b, 0xa2, 0x05, 0xb5, 0x83, 0x60, 0x83, 0x28, 0x4c, 0x0f, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x14, 0x8b, 0x16, 0x7e, 0xe3, 0xf9, 0x78, 0x10, 0xd5, 0xbf, 0x39, 0x07, 0x25, 0x8c, 0xc4, 0x71, 0xe8, 0x78, 0x3c, 0xfc, 0x82, 0x68, 0x41, 0xef, 0x20, 0xd8, 0x20, 0x0a, 0xd3, 0x43, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xc5, 0xa2, 0x85, 0xdf, 0x78, 0x3e, 0x0e, 0xcd, 0x83, 0x12, 0x46, 0xe2, 0x38, 0x74, 0x3c, 0x5e, 0x10, 0x6c, 0x90, 0x88, 0xa8, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x28, 0x16, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0xab, 0xf3, 0x37, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x1b, 0x44, 0xce, 0x71, 0xce, 0xc1, 0x69, 0x43, 0x79, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0xd5, 0x10, 0xcd, 0x43, 0x0b, 0xa0, 0x35, 0x34, 0x12, 0x3c, 0x34, 0x1d, 0x5a, 0x43, 0x27, 0xb5, 0x83, 0x64, 0x0d, 0x84, 0x0d, 0x46, 0x66, 0xef, 0x41, 0xa2, 0xa7, 0xc2, 0x6a, 0x88, 0xe6, 0x41, 0xa2, 0xa7, 0xc2, 0x1a, 0x1a, 0x09, 0x1e, 0x5a, 0x00, 0xad, 0xa1, 0x93, 0xda, 0xa1, 0xe9, 0xd0, 0x06, 0x23, 0xb3, 0xf7, 0x20, 0x59, 0x03, 0x61, 0x35, 0x44, 0xf3, 0x20, 0x59, 0x03, 0x61, 0x0d, 0x8d, 0x04, 0x0f, 0x12, 0x3d, 0x15, 0xd6, 0xd0, 0x49, 0xed, 0xd0, 0x02, 0x68, 0x83, 0x91, 0xd9, 0x7b, 0x68, 0x3a, 0xb4, 0x1a, 0xa2, 0x79, 0x68, 0x3a, 0xb4, 0x86, 0x46, 0x82, 0x07, 0xc9, 0x1a, 0x08, 0x6b, 0xe8, 0xa4, 0x76, 0x90, 0xe8, 0xa9, 0xb0, 0xc1, 0xc8, 0xec, 0x3d, 0xb4, 0x00, 0x3a, 0xc4, 0xf0, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xb8, 0xe1, 0x14, 0x3b, 0x78, 0xb6, 0xe9, 0xc5, 0xe2, 0x20, 0xd8, 0xe0, 0x44, 0x11, 0x3d, 0x08, 0x36, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x67, 0xc6, 0xe5, 0x43, 0x1a, 0x6e, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x70, 0x66, 0x5c, 0x3e, 0x34, 0x05, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x9c, 0x19, 0x97, 0x0f, 0x9d, 0x88, 0x86, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x99, 0x71, 0xf9, 0xd0, 0xfd, 0xe8, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x8f, 0x43, 0xc7, 0xa1, 0x83, 0x51, 0x62, 0x75, 0x7c, 0x3b, 0x1e, 0x1f, 0x8f, 0x17, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0xd6, 0x90, 0x3a, 0xd8, 0x10, 0xc3, 0x85, 0xdf, 0x60, 0x70, 0x57, 0x1e, 0x94, 0x0c, 0x4d, 0x07, 0x25, 0x41, 0xc3, 0x20, 0x58, 0x1c, 0x76, 0xe1, 0x36, 0x18, 0x99, 0xbd, 0x83, 0x60, 0x41, 0x32, 0x08, 0x0e, 0xd2, 0x82, 0x46, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x44, 0x83, 0xdf, 0xcd, 0xf0, 0x1b, 0xcf, 0x87, 0x39, 0x28, 0x1b, 0x84, 0x8e, 0x43, 0x1b, 0xa2, 0x39, 0xfc, 0x82, 0x68, 0xc1, 0x74, 0x10, 0x6c, 0x10, 0xe1, 0x29, 0x17, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x4a, 0x34, 0x9c, 0x85, 0xdf, 0x78, 0xbe, 0x20, 0x58, 0x90, 0x0c, 0xa4, 0x57, 0x0e, 0xd2, 0x82, 0x46, 0x0e, 0xdd, 0x8f, 0x0e, 0x47, 0xfb, 0x21, 0x6b, 0x77, 0x1c, 0x3a, 0x1e, 0x0f, 0xbf, 0xb0, 0x0b, 0xb7, 0x21, 0x86, 0x83, 0x60, 0x83, 0xd8, 0x83, 0xa6, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x68, 0x96, 0x74, 0x10, 0xc3, 0xe1, 0x34, 0xc7, 0xa1, 0x85, 0x5f, 0x10, 0x2d, 0x98, 0x0e, 0x82, 0x0d, 0x16, 0xbf, 0x8e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x8a, 0x45, 0x07, 0xc9, 0x89, 0x22, 0xc7, 0xa1, 0xe3, 0xf1, 0xf0, 0x0b, 0xa2, 0x05, 0xd3, 0x41, 0xb0, 0x41, 0x3b, 0xb7, 0xe6, 0x07, 0x29, 0x55, 0x22, 0xc7, 0xe3, 0x41, 0xb4, 0x60, 0x3a, 0x08, 0x36, 0x48, 0x69, 0x51, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xe8, 0x21, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x3a, 0x5e, 0xc3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xa2, 0x7d, 0x3d, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x38, 0x57, 0x0e, 0xd2, 0x82, 0x46, 0x0e, 0x22, 0xc1, 0x3d, 0xe7, 0x38, 0x74, 0x68, 0x3c, 0x7f, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x87, 0x5d, 0xd8, 0x05, 0xc1, 0x06, 0x31, 0xb0, 0x77, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0x86, 0xc3, 0x69, 0x0e, 0x86, 0xec, 0xf9, 0x71, 0x68, 0x61, 0x17, 0x6e, 0x83, 0x32, 0x6e, 0xe7, 0x20, 0x46, 0xdb, 0x73, 0x0e, 0xe9, 0xdc, 0xc3, 0xd1, 0xbe, 0x41, 0x9c, 0xc3, 0xe7, 0x1c, 0x8f, 0x87, 0x5f, 0x10, 0x2d, 0x98, 0x0e, 0x82, 0x0d, 0x52, 0x5a, 0x54, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x7a, 0x08, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0xe1, 0x29, 0x17, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x4a, 0x34, 0x9c, 0x85, 0xdf, 0x78, 0xbe, 0x20, 0x58, 0x90, 0x0c, 0xfe, 0x1c, 0xa4, 0x05, 0x8d, 0x1c, 0x44, 0x82, 0x7b, 0xce, 0xe1, 0x68, 0x3f, 0x64, 0xed, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0xf0, 0x0b, 0xa2, 0x05, 0xe1, 0x20, 0x58, 0x90, 0x0c, 0x08, 0x7f, 0xa7, 0x83, 0x63, 0xc6, 0xf2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x12, 0x0d, 0x67, 0xe1, 0x37, 0x9e, 0x6f, 0x30, 0x32, 0x7b, 0x0f, 0xd1, 0x5c, 0xf8, 0x8d, 0xe7, 0x07, 0x03, 0x96, 0xf7, 0x60, 0xe0, 0x87, 0x1c, 0x87, 0x8e, 0xc7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd0, 0x3b, 0xcc, 0xc1, 0xc8, 0xec, 0x3d, 0x1e, 0x1f, 0xdf, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x6b, 0x38, 0xda, 0x37, 0xc4, 0x70, 0x43, 0x0c, 0x87, 0xdf, 0xa0, 0xad, 0x83, 0x93, 0x83, 0xd3, 0x0a, 0xee, 0x20, 0x58, 0x1c, 0x76, 0xe1, 0x36, 0x28, 0x1b, 0x84, 0x0e, 0xd1, 0xdc, 0xb0, 0x57, 0x38, 0xfc, 0x82, 0x68, 0x41, 0xed, 0x20, 0xd8, 0x20, 0xc2, 0x53, 0x2e, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x8c, 0x6b, 0xf4, 0x83, 0xe4, 0xe3, 0xec, 0xe3, 0xd0, 0xf1, 0x78, 0xf8, 0x05, 0xd1, 0x82, 0xda, 0x41, 0xb0, 0x20, 0x19, 0xb8, 0x9f, 0x0e, 0x8e, 0x19, 0xcb, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x4a, 0x34, 0x9c, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x56, 0x13, 0x04, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0x7d, 0xa4, 0xc3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x12, 0x0d, 0x67, 0x83, 0x82, 0x6c, 0xe7, 0xd0, 0xb8, 0xe8, 0x38, 0x74, 0x68, 0x96, 0x74, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x87, 0x5f, 0x10, 0x2d, 0x98, 0x0e, 0x82, 0x0d, 0xa2, 0x95, 0x3f, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x04, 0xbd, 0xff, 0x0f, 0x59, 0xbb, 0xe3, 0xd0, 0xf1, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xe6, 0x83, 0x60, 0x83, 0x68, 0xf4, 0xcf, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xae, 0xd1, 0x87, 0xdf, 0x78, 0xbe, 0x86, 0x68, 0x0e, 0x82, 0x0d, 0x22, 0x3c, 0xe5, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xb8, 0x46, 0xdf, 0x60, 0xcc, 0xdf, 0x1d, 0x04, 0x26, 0xf6, 0x71, 0x68, 0x83, 0x86, 0xbe, 0x60, 0xd6, 0xd0, 0x48, 0x70, 0x10, 0x6c, 0x10, 0xe1, 0x29, 0x17, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xc6, 0x35, 0xfa, 0xc2, 0x6f, 0x3c, 0xdf, 0x60, 0x44, 0xdb, 0x1d, 0x1a, 0x09, 0x1e, 0x04, 0x26, 0xf6, 0x71, 0xe8, 0x10, 0xc3, 0xe3, 0xd0, 0xc1, 0x58, 0xd8, 0x3e, 0xbe, 0x1d, 0x8f, 0x07, 0xc1, 0x06, 0x23, 0xff, 0x61, 0x71, 0x90, 0xad, 0x21, 0x8f, 0xbd, 0x38, 0x08, 0x36, 0x68, 0xcb, 0xaa, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x3b, 0x5b, 0xfd, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x2f, 0x6e, 0xa8, 0xe3, 0x1b, 0x5e, 0xbe, 0x9b, 0x80, 0x57, 0xac, 0xac, 0x25, 0xac, 0x6c, 0x6e, 0x1c, 0x7e, 0xe3, 0xf9, 0x78, 0x10, 0xf1, 0x16, 0x3a, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0xf8, 0x05, 0xd1, 0x42, 0x87, 0xdf, 0x78, 0xbe, 0xb8, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x76, 0x43, 0x1e, 0x6b, 0x43, 0x0c, 0x87, 0xdd, 0xb0, 0x6b, 0xb0, 0xe1, 0x14, 0x5b, 0x10, 0x6c, 0x90, 0xd2, 0xa2, 0x72, 0x70, 0x54, 0x71, 0x3e, 0x18, 0x69, 0x5d, 0xc7, 0xe3, 0x05, 0xc1, 0x0a, 0xbf, 0xc1, 0x03, 0xb8, 0x70, 0x8e, 0x6f, 0xc3, 0x2f, 0x08, 0x36, 0x88, 0x29, 0x89, 0x96, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xc1, 0x82, 0x64, 0x40, 0xf8, 0xee, 0x1c, 0x1c, 0x28, 0x92, 0x0f, 0xc6, 0x71, 0xc8, 0xa1, 0xf9, 0xcb, 0xf1, 0xf8, 0x38, 0x74, 0x7c, 0x5b, 0x1c, 0x76, 0xc3, 0xae, 0xc1, 0x86, 0x18, 0x2e, 0x08, 0x36, 0x68, 0xe7, 0xd6, 0x7c, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xa1, 0x87, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0xc1, 0x88, 0xb6, 0x3b, 0x0e, 0x1d, 0x8c, 0x58, 0x82, 0xe3, 0xf1, 0x82, 0x60, 0x83, 0x18, 0xda, 0xd0, 0x59, 0x1c, 0x04, 0x6b, 0x88, 0xe1, 0x86, 0x18, 0x0e, 0x92, 0x41, 0x74, 0x88, 0xe6, 0x20, 0x58, 0x1c, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0xa0, 0x74, 0x18, 0xda, 0xd0, 0x48, 0x70, 0x41, 0xb0, 0x20, 0x19, 0xb8, 0x9f, 0x0e, 0x5a, 0x73, 0xf0, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x14, 0x8b, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x1b, 0x0c, 0x92, 0x97, 0x83, 0xd6, 0x1c, 0xfc, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x36, 0x88, 0x9c, 0xe3, 0x9c, 0x83, 0xd6, 0x1c, 0xfc, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0xfc, 0x60, 0xa1, 0xfd, 0xcd, 0xc2, 0x6f, 0x3c, 0x3f, 0x68, 0x34, 0x41, 0x69, 0xe1, 0x37, 0x9e, 0x6f, 0x68, 0x25, 0x7e, 0x68, 0xc6, 0xb3, 0xf0, 0x1b, 0xcf, 0x37, 0xf4, 0x27, 0x3f, 0x18, 0xa7, 0xca, 0x07, 0x03, 0x3f, 0xe4, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0x08, 0x36, 0x88, 0xe2, 0xa8, 0x8b, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x43, 0xb1, 0x68, 0x83, 0x44, 0xbd, 0x8a, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xa2, 0xfd, 0x1b, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x20, 0x3a, 0x07, 0xf1, 0x98, 0x75, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xb8, 0xca, 0xba, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xc8, 0xd7, 0x1e, 0x92, 0x1d, 0xc7, 0xa1, 0x83, 0xf4, 0x84, 0x9a, 0xe3, 0xd0, 0xc1, 0x30, 0x86, 0x3d, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0xc7, 0xa1, 0xe3, 0xd0, 0xc1, 0xa8, 0xd7, 0x3e, 0xbe, 0x1d, 0x8f, 0x07, 0xc1, 0x1a, 0xc4, 0xd1, 0x86, 0xce, 0x21, 0x31, 0xb5, 0x38, 0x08, 0x36, 0x58, 0x1f, 0xe9, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x44, 0xc3, 0xd9, 0x20, 0x1a, 0xfc, 0x6e, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0xf0, 0x94, 0x8b, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x25, 0x1a, 0xce, 0xc2, 0x6f, 0x3c, 0x5f, 0x10, 0x6c, 0x10, 0x51, 0xe8, 0x39, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x83, 0xdd, 0x21, 0x9a, 0x87, 0xa6, 0x40, 0x07, 0xd1, 0xe0, 0x77, 0x73, 0x1c, 0x3a, 0x48, 0xbb, 0x60, 0x38, 0x74, 0x0c, 0x3b, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0xc7, 0xe3, 0xe3, 0xf1, 0x20, 0x58, 0x61, 0x37, 0x64, 0xed, 0x36, 0x38, 0x07, 0x7c, 0x1f, 0xac, 0x05, 0x04, 0x58, 0x10, 0x6c, 0xd0, 0x5e, 0x99, 0xc8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x12, 0x0d, 0x67, 0x83, 0xb4, 0x0b, 0x86, 0x43, 0xc3, 0xaf, 0xe3, 0xd0, 0xe1, 0x68, 0x1f, 0x7e, 0x41, 0xb4, 0x20, 0x1a, 0x04, 0x1b, 0x9c, 0x83, 0xbf, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x1a, 0x09, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x90, 0xee, 0xbe, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x10, 0xcd, 0x83, 0xc8, 0x01, 0xcc, 0x39, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0x83, 0x60, 0x71, 0xd8, 0x85, 0xdb, 0x20, 0x1e, 0x19, 0x74, 0x0e, 0x82, 0xd2, 0x7b, 0xe1, 0x17, 0x44, 0x0b, 0xa6, 0x83, 0x60, 0x83, 0xf4, 0x71, 0xa2, 0x83, 0x31, 0x1a, 0x71, 0x3c, 0x1e, 0x7e, 0x41, 0xb4, 0x60, 0x3a, 0x08, 0x36, 0x38, 0x61, 0xa2, 0x1f, 0x8c, 0xd1, 0x88, 0xe3, 0xf1, 0xf0, 0x0b, 0xa2, 0x05, 0xd3, 0x41, 0xb0, 0xc1, 0xe0, 0xae, 0x1c, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xe8, 0x21, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0xac, 0x36, 0xdc, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x64, 0xed, 0x36, 0x28, 0x76, 0x79, 0x0e, 0xc6, 0xd8, 0xd3, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x1e, 0x04, 0x0b, 0x92, 0x81, 0xfb, 0xe9, 0x20, 0x2d, 0x68, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x89, 0x86, 0x73, 0xe8, 0x21, 0x74, 0x1c, 0x1a, 0x7e, 0x83, 0x48, 0xf1, 0xd1, 0x19, 0x7e, 0x83, 0x88, 0xf9, 0xd1, 0x19, 0x7e, 0x41, 0xb4, 0x60, 0x3a, 0x08, 0x16, 0x24, 0x83, 0xdd, 0x41, 0xc0, 0xfb, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xf4, 0x10, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0xcc, 0x0e, 0xd1, 0x3c, 0x0e, 0x1d, 0x8f, 0x87, 0x5f, 0x10, 0x2d, 0x98, 0x0e, 0x82, 0x0d, 0x06, 0x77, 0xe5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0x0f, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x62, 0xb5, 0xe1, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x6b, 0xb7, 0xa1, 0x63, 0xd8, 0xc1, 0x18, 0x7b, 0x3a, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xb0, 0x3d, 0x58, 0xc9, 0x29, 0x72, 0x3c, 0x3e, 0xbe, 0x1d, 0x8f, 0x8f, 0xc7, 0xc7, 0xe3, 0xe1, 0x17, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0xc3, 0x6e, 0xd8, 0x35, 0x58, 0x10, 0x2c, 0x48, 0x06, 0xef, 0x0e, 0xc9, 0xa5, 0x83, 0x48, 0x87, 0xcb, 0x19, 0x04, 0x0b, 0x82, 0x0d, 0x62, 0xa5, 0x49, 0xe7, 0x20, 0x26, 0xe5, 0x72, 0x06, 0xc1, 0x82, 0x64, 0xf0, 0xee, 0xb0, 0x42, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x10, 0xff, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0xc5, 0x61, 0x37, 0x28, 0xaa, 0x14, 0x36, 0x88, 0xc5, 0xba, 0x9c, 0x41, 0x32, 0x64, 0x10, 0x6d, 0x50, 0x1e, 0xc4, 0x0d, 0xa2, 0x85, 0x1d, 0x04, 0x1b, 0x44, 0xce, 0x33, 0xc7, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x08, 0xf1, 0xcb, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0xde, 0x1d, 0xb2, 0x15, 0x07, 0xb1, 0xfa, 0x97, 0x73, 0x1c, 0x3a, 0x1e, 0x1f, 0xdf, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0x38, 0xe0, 0xcf, 0xc9, 0xd8, 0x89, 0x87, 0xd4, 0xd2, 0xf1, 0x78, 0xe1, 0x17, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x0b, 0xbf, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0xb0, 0x1b, 0x2c, 0x43, 0x35, 0xda, 0x90, 0x98, 0x1a, 0x04, 0x1b, 0x3c, 0x70, 0x57, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x62, 0xd7, 0xc7, 0x41, 0xf4, 0x61, 0xe1, 0x1c, 0x87, 0x06, 0xc1, 0xc2, 0x2f, 0x08, 0x36, 0x78, 0x85, 0x58, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x60, 0x83, 0xf6, 0x3a, 0x57, 0x0e, 0xc6, 0x71, 0xc8, 0xa1, 0xf9, 0xcb, 0xf1, 0xf8, 0x38, 0x74, 0x7c, 0x1b, 0x04, 0x1b, 0xa4, 0x0e, 0xa5, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xd7, 0xe8, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x8b, 0xc3, 0x6e, 0x10, 0x7c, 0xcc, 0x1b, 0x52, 0x07, 0x83, 0x60, 0x41, 0xb0, 0x41, 0x02, 0xfe, 0xcc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x75, 0x2a, 0x0d, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x82, 0x0d, 0x1a, 0xba, 0x76, 0x1f, 0x24, 0xc3, 0x1c, 0xb4, 0xa5, 0xd1, 0x72, 0xd8, 0xa8, 0x3d, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x81, 0xe9, 0x3f, 0xc4, 0x7f, 0x10, 0x6d, 0xd0, 0xaa, 0x4e, 0xca, 0x41, 0xe1, 0xc1, 0x77, 0x7c, 0x3b, 0x0e, 0x1d, 0x8f, 0x0f, 0x22, 0x19, 0x2d, 0x67, 0xf8, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x0d, 0xe2, 0xc1, 0x4a, 0x67, 0x10, 0x6c, 0x10, 0x73, 0x58, 0x3a, 0x83, 0x60, 0x83, 0xd4, 0xa1, 0x94, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xe3, 0x1a, 0x7d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x71, 0xd8, 0x0d, 0x82, 0x8f, 0x79, 0x43, 0xea, 0x60, 0x10, 0x2c, 0x08, 0x16, 0x04, 0x1b, 0x34, 0x74, 0xed, 0x3e, 0x48, 0x86, 0x3b, 0x68, 0x4b, 0xa3, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x02, 0xfe, 0xcc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x75, 0x2a, 0x0d, 0x87, 0xf8, 0x1f, 0x87, 0x8e, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x60, 0xfa, 0x8f, 0x43, 0x07, 0xd1, 0x01, 0xa6, 0x73, 0x7c, 0x3b, 0x0e, 0x1d, 0x8f, 0x0f, 0x22, 0xb4, 0x2d, 0xe7, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x07, 0xfc, 0x31, 0xb1, 0x31, 0xf1, 0x90, 0x5a, 0x3a, 0x1e, 0x2f, 0xfc, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0xe1, 0x17, 0x04, 0x1b, 0x8c, 0xfc, 0x87, 0xc5, 0x41, 0xb0, 0x82, 0x60, 0x41, 0x32, 0xf0, 0xbe, 0xd3, 0xc1, 0xd9, 0xcb, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x81, 0x88, 0xff, 0x90, 0xec, 0x38, 0x0e, 0x0d, 0x82, 0x0d, 0xa2, 0x0d, 0xb5, 0xe3, 0x20, 0x9a, 0xd7, 0x74, 0x86, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x0d, 0x22, 0xfa, 0xc0, 0x63, 0x90, 0x0c, 0x33, 0x88, 0x16, 0x76, 0xc3, 0xb8, 0x6c, 0x30, 0xae, 0xd1, 0x37, 0xb4, 0x00, 0x1a, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0xb1, 0xec, 0x51, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x10, 0xff, 0xe1, 0x37, 0x9e, 0x8f, 0x01, 0x04, 0xfc, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x43, 0xc7, 0xa1, 0x83, 0x75, 0xa8, 0xfc, 0xc3, 0x2e, 0xdc, 0x82, 0x60, 0x83, 0x47, 0xa1, 0x56, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x64, 0xed, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x58, 0xfd, 0x29, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x18, 0xc3, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x36, 0x88, 0x9c, 0xe3, 0x9c, 0x83, 0x73, 0xde, 0xf1, 0xc1, 0x32, 0x78, 0xaf, 0xe3, 0xd0, 0x71, 0xe8, 0x10, 0xff, 0x83, 0x05, 0xe8, 0x2a, 0xc7, 0xe3, 0x83, 0x48, 0x46, 0xcb, 0x19, 0x7e, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x83, 0xf8, 0x58, 0xd3, 0x19, 0x04, 0x0b, 0x82, 0x0d, 0xde, 0xcb, 0x88, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x10, 0xcd, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x5a, 0xce, 0xc1, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x10, 0x22, 0xfe, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x0d, 0x22, 0xe7, 0x38, 0xe7, 0xe0, 0x74, 0x86, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x41, 0xb2, 0x91, 0xf5, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x1a, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x06, 0xda, 0x3a, 0x1d, 0x9c, 0xf3, 0x8e, 0x0f, 0x92, 0xf9, 0x1e, 0x36, 0xa4, 0x0e, 0x36, 0x0e, 0x0d, 0x82, 0x05, 0xc1, 0x82, 0x64, 0x20, 0x5c, 0x07, 0xe3, 0x5d, 0x67, 0x90, 0x0c, 0x37, 0x88, 0x16, 0x76, 0xc3, 0xda, 0xef, 0x06, 0xe3, 0x1a, 0x7d, 0x43, 0xea, 0x60, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x44, 0x46, 0x26, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xea, 0xe0, 0x20, 0x22, 0xe1, 0x74, 0x8e, 0x43, 0xc7, 0xa1, 0x83, 0x91, 0xb0, 0x7a, 0x3c, 0x3e, 0x88, 0xd0, 0xb6, 0x9c, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0x1c, 0xf0, 0xe7, 0xd2, 0xec, 0xc6, 0x43, 0x6a, 0xe9, 0x78, 0x3c, 0xfc, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x17, 0x7e, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0x41, 0xac, 0x7c, 0xe5, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x28, 0xc8, 0x76, 0x36, 0x28, 0xc8, 0x76, 0x0e, 0xce, 0x35, 0xc5, 0xc7, 0xa1, 0xe1, 0x17, 0x44, 0x0b, 0xea, 0x07, 0xc1, 0x06, 0x71, 0x34, 0x96, 0x73, 0x30, 0x12, 0x56, 0x0f, 0x22, 0x5e, 0x2c, 0xe7, 0x20, 0x8a, 0xc8, 0x72, 0x8e, 0xc7, 0x07, 0x91, 0x8c, 0x96, 0x33, 0xfc, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x06, 0x11, 0x41, 0xa8, 0x33, 0xfc, 0x06, 0x91, 0x5c, 0xa8, 0x73, 0x10, 0xd1, 0x6a, 0x39, 0xc7, 0xe3, 0x83, 0x08, 0x6d, 0xcb, 0x39, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0xbf, 0x6c, 0x4c, 0x2c, 0x3c, 0xa4, 0x96, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0x47, 0xc5, 0xff, 0x41, 0x32, 0xdc, 0xa1, 0x7d, 0xcb, 0x41, 0x8a, 0xf2, 0xf3, 0x20, 0x58, 0x10, 0x6c, 0x70, 0x14, 0x47, 0x3f, 0x18, 0xd8, 0xa2, 0x83, 0x60, 0x41, 0xb0, 0xc1, 0xd1, 0xdb, 0xfc, 0x60, 0x60, 0x8b, 0x1e, 0x0c, 0x15, 0x81, 0xe3, 0xf1, 0xc2, 0x2f, 0x08, 0x36, 0x58, 0x16, 0x06, 0xb3, 0xb8, 0x41, 0x39, 0x94, 0x34, 0xfc, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x67, 0xf3, 0xe4, 0x0c, 0x92, 0xe1, 0x0e, 0x39, 0x8d, 0x41, 0xb0, 0x20, 0xd8, 0x20, 0xda, 0x07, 0x5b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0xce, 0x95, 0x83, 0x73, 0xde, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x64, 0xf9, 0x92, 0x83, 0xd4, 0x0e, 0x90, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x87, 0x5d, 0xb8, 0x05, 0xc1, 0x06, 0xd1, 0x9a, 0x46, 0x73, 0x10, 0xaf, 0x91, 0x3a, 0x87, 0x18, 0x1e, 0xd2, 0xb9, 0xc7, 0xa1, 0x61, 0x17, 0x04, 0x1b, 0x44, 0x2e, 0x16, 0xc8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xe2, 0xb7, 0x60, 0xf8, 0x8d, 0xe7, 0x07, 0xd1, 0xc8, 0xa7, 0x73, 0x1c, 0x5a, 0x10, 0x6c, 0x10, 0x0d, 0xaa, 0x34, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x02, 0x13, 0x7b, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x85, 0x0b, 0x13, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0xbe, 0xa1, 0x3f, 0xf9, 0x20, 0xd8, 0x20, 0x4a, 0xc9, 0x40, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x70, 0x7a, 0x3f, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x90, 0xda, 0x01, 0x72, 0x48, 0x1d, 0x1c, 0x87, 0x0e, 0x8a, 0xdf, 0x82, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xa9, 0x43, 0x29, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xc6, 0x35, 0xfa, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc2, 0x2f, 0x08, 0x16, 0x24, 0x03, 0xf7, 0xd7, 0xc1, 0xb9, 0xfe, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x10, 0xbe, 0x3b, 0x07, 0xe7, 0xbc, 0xe3, 0x83, 0xa8, 0x48, 0x34, 0x39, 0x34, 0x7f, 0x39, 0x1e, 0x1f, 0x87, 0x8e, 0x6f, 0x83, 0x60, 0x71, 0xd8, 0x85, 0x3b, 0x48, 0x36, 0xb2, 0xde, 0x90, 0x3a, 0x18, 0x24, 0x43, 0x06, 0xd1, 0x02, 0x79, 0xff, 0x41, 0xb0, 0xc1, 0x0b, 0x25, 0x01, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x9c, 0x28, 0xa2, 0x27, 0xd8, 0xfb, 0x3f, 0x0e, 0x0d, 0xa2, 0x05, 0xf1, 0x20, 0xd8, 0xe0, 0xe1, 0xff, 0x00, 0x07, 0xc3, 0x2c, 0x7c, 0x10, 0x2d, 0xec, 0x82, 0x60, 0xc3, 0x5e, 0xe1, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0x20, 0xea, 0x43, 0x75, 0x8e, 0x43, 0x87, 0xd4, 0xc1, 0xf1, 0xf8, 0xf8, 0x76, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x0e, 0xa7, 0xd8, 0xf1, 0xf8, 0x20, 0x42, 0xdb, 0x72, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xc0, 0x1f, 0xa3, 0x93, 0x1b, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0xc2, 0x2f, 0x08, 0x36, 0xc4, 0x70, 0x71, 0xe1, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x04, 0x1b, 0xc4, 0xca, 0x57, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x21, 0x7b, 0xbe, 0x41, 0x41, 0xb6, 0x73, 0x10, 0xb9, 0xfc, 0x38, 0xc7, 0xa1, 0xe1, 0x17, 0x44, 0x0b, 0xea, 0x07, 0xc1, 0x82, 0x64, 0xe0, 0x7d, 0xa7, 0x83, 0x78, 0x0d, 0xcb, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x64, 0xcf, 0x87, 0xdf, 0x78, 0x7e, 0x10, 0x2f, 0x61, 0x39, 0xc7, 0xa1, 0x83, 0x88, 0x17, 0xcb, 0x39, 0x88, 0x22, 0xb2, 0x9c, 0xe3, 0xf1, 0x41, 0x24, 0xa3, 0xe5, 0x0c, 0xbf, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x41, 0x24, 0x9f, 0xea, 0x0c, 0xbf, 0x41, 0x24, 0xa6, 0xea, 0x1c, 0x44, 0xb4, 0x5a, 0xce, 0xf1, 0xf8, 0x20, 0x42, 0xdb, 0x72, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xc0, 0x2f, 0x1b, 0x13, 0x13, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x58, 0x10, 0x6c, 0xd0, 0x38, 0x84, 0xca, 0x41, 0x04, 0x2e, 0xea, 0x1c, 0xa4, 0x28, 0x3f, 0x1f, 0xc4, 0x07, 0xa3, 0xce, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0x08, 0x16, 0x04, 0x1b, 0x24, 0x08, 0x2e, 0x1c, 0x44, 0x5d, 0xe5, 0xcd, 0xb0, 0x1b, 0x9c, 0x06, 0xb1, 0x17, 0x03, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x82, 0x0d, 0x5e, 0xd4, 0x06, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x1b, 0xfa, 0x93, 0x0f, 0x82, 0x0d, 0xce, 0xdf, 0xe5, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x83, 0x52, 0xd1, 0xe7, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x34, 0x43, 0xdd, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x48, 0x72, 0x6b, 0x1e, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0x45, 0x6d, 0x40, 0x07, 0xe3, 0x3b, 0xeb, 0x38, 0x74, 0x1c, 0x3a, 0x1e, 0xaf, 0xf0, 0x0b, 0x82, 0x0d, 0x96, 0x85, 0xc1, 0x2c, 0x6e, 0x50, 0x0e, 0x25, 0x0d, 0xbf, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0xd8, 0x60, 0x89, 0xbd, 0xfe, 0x41, 0x5c, 0x3e, 0xea, 0x1c, 0x44, 0xfc, 0xa3, 0xce, 0xf1, 0xf8, 0x20, 0x42, 0xdb, 0x72, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xc0, 0x1f, 0xa3, 0x93, 0x13, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0xf0, 0x0b, 0x82, 0x0d, 0x46, 0xfe, 0xc3, 0xe2, 0x20, 0x58, 0x41, 0xb0, 0x41, 0x81, 0x4e, 0x79, 0x48, 0xc3, 0x1d, 0xc4, 0xe5, 0x60, 0xce, 0x20, 0xd8, 0x20, 0xbe, 0x09, 0x73, 0x06, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x18, 0xab, 0x43, 0xb6, 0xe2, 0x20, 0xb2, 0x13, 0x73, 0x0e, 0x22, 0x58, 0x31, 0xe7, 0x20, 0xce, 0x1b, 0x73, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xc0, 0x6f, 0x0b, 0x1b, 0x13, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0xc2, 0x2f, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x87, 0xdd, 0xb0, 0x6b, 0xb0, 0x20, 0xd8, 0x60, 0xf1, 0x0b, 0xda, 0x41, 0xa4, 0xc3, 0xe5, 0x0c, 0x82, 0x05, 0xc1, 0x06, 0x8b, 0x5f, 0xd0, 0x0e, 0x62, 0x52, 0x2e, 0x67, 0x10, 0x6c, 0xb0, 0x26, 0x04, 0x6a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0xfe, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x8b, 0xc3, 0x6e, 0x50, 0x54, 0x29, 0x6c, 0x10, 0x8b, 0x75, 0x39, 0x83, 0x64, 0xc8, 0x20, 0xda, 0xa0, 0x3c, 0x88, 0x1b, 0x44, 0x0b, 0x3b, 0x08, 0x36, 0x88, 0x9c, 0x67, 0x8e, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x11, 0xe2, 0x97, 0x33, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x28, 0x55, 0x87, 0x6c, 0xc5, 0x41, 0xac, 0xfe, 0xe5, 0x1c, 0x87, 0x8e, 0xc7, 0xc7, 0xb7, 0xe3, 0xd0, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0xf8, 0x73, 0x32, 0x76, 0xe1, 0x21, 0xb5, 0x74, 0x3c, 0x5e, 0xe1, 0x17, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x0b, 0xbf, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x41, 0x3c, 0x58, 0xe9, 0x0c, 0x82, 0x0d, 0x62, 0x0e, 0x4b, 0x67, 0x10, 0x6c, 0x90, 0x3a, 0x94, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x5c, 0xa3, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x0e, 0xbb, 0x41, 0xf0, 0x31, 0x6f, 0x48, 0x1d, 0x0c, 0x82, 0x05, 0xc1, 0x06, 0x09, 0xf8, 0x33, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xd6, 0xa9, 0x34, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x08, 0x16, 0x24, 0x83, 0x53, 0x07, 0xe3, 0x5d, 0xe7, 0x20, 0x92, 0xbd, 0x74, 0x0e, 0x1b, 0xb5, 0xc7, 0xa1, 0x83, 0x38, 0xfc, 0xd2, 0x39, 0xbe, 0x1d, 0x87, 0x8e, 0xc7, 0x07, 0x91, 0x8c, 0x96, 0x33, 0xfc, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x06, 0xf1, 0x60, 0xa5, 0x33, 0x08, 0x36, 0x88, 0x39, 0x2c, 0x9d, 0x41, 0xb0, 0x41, 0xea, 0x50, 0xca, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x71, 0x8d, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x38, 0xec, 0x06, 0xc1, 0xc7, 0xbc, 0x21, 0x75, 0x30, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x0d, 0x22, 0xd9, 0x59, 0xe7, 0x20, 0x16, 0xca, 0x74, 0x0e, 0xa2, 0xaf, 0x4c, 0xe7, 0x20, 0xe6, 0xce, 0x74, 0x8e, 0x6f, 0xc7, 0xa1, 0xe3, 0xf1, 0x41, 0x84, 0xb6, 0xe5, 0x1c, 0x8f, 0x07, 0xd9, 0x1a, 0xd2, 0x40, 0xe3, 0x80, 0x3f, 0x26, 0x36, 0x36, 0x1e, 0x52, 0x4b, 0xc7, 0xe3, 0xe1, 0x17, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x0b, 0xbf, 0x20, 0xd8, 0x60, 0xe4, 0x3f, 0x2c, 0x0e, 0x82, 0x15, 0x04, 0x1b, 0x44, 0xd0, 0x9a, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x8f, 0xc3, 0x46, 0x0f, 0xc9, 0x8e, 0xe3, 0xd0, 0x20, 0xd8, 0x20, 0xda, 0x50, 0x3b, 0x0e, 0xe2, 0x0f, 0x5b, 0x67, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0xce, 0x1d, 0x04, 0x39, 0xff, 0x41, 0xf4, 0xb8, 0xe9, 0x1c, 0xac, 0x43, 0xe5, 0x1f, 0x76, 0xe1, 0x16, 0x04, 0x0b, 0x92, 0x81, 0xbb, 0xea, 0x20, 0xe0, 0xfd, 0x0f, 0xe2, 0x60, 0x4e, 0xe7, 0x10, 0xff, 0x83, 0x05, 0xe8, 0x2a, 0xc7, 0xe3, 0x83, 0x48, 0x46, 0xcb, 0x19, 0x7e, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x83, 0xa8, 0xc0, 0xd6, 0x19, 0x04, 0x0b, 0x82, 0x05, 0xc9, 0xc0, 0x5d, 0x75, 0x10, 0xe4, 0xfc, 0x07, 0xb1, 0x85, 0xa7, 0x33, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x41, 0x34, 0xf2, 0xe9, 0x6c, 0x48, 0x1d, 0x6c, 0x1c, 0x1a, 0x04, 0x0b, 0x82, 0x05, 0xc9, 0xe0, 0xdc, 0xc1, 0x78, 0xd7, 0x39, 0x88, 0x3e, 0x3f, 0x9d, 0x83, 0x91, 0xb0, 0x7a, 0x3c, 0x3e, 0x88, 0xd0, 0xb6, 0x9c, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0x1c, 0xf0, 0xe7, 0xd2, 0xec, 0xc4, 0x43, 0x6a, 0xe9, 0x78, 0xbc, 0xf0, 0x0b, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x85, 0x5f, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0xd8, 0x20, 0x1e, 0xac, 0x74, 0x06, 0xc1, 0x06, 0x31, 0x87, 0xa5, 0x33, 0x08, 0x36, 0x48, 0x1d, 0x4a, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xae, 0xd1, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x87, 0xdd, 0x20, 0xf8, 0x98, 0x37, 0xa4, 0x0e, 0x06, 0xc1, 0x82, 0x60, 0x83, 0x04, 0xfc, 0x99, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xeb, 0x54, 0x1a, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x81, 0x7a, 0x75, 0x30, 0xde, 0x75, 0x0e, 0x22, 0xd9, 0x4b, 0xe7, 0xb0, 0x51, 0x7b, 0x1c, 0x3a, 0x88, 0xc3, 0x2f, 0x9d, 0xe3, 0xdb, 0x71, 0xe8, 0x78, 0x7c, 0x10, 0xc9, 0x68, 0x39, 0xc3, 0x2f, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x6c, 0x10, 0x0f, 0x56, 0x3a, 0x83, 0x60, 0x83, 0x98, 0xc3, 0xd2, 0x19, 0x04, 0x1b, 0xa4, 0x0e, 0xa5, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xd7, 0xe8, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x8b, 0xc3, 0x6e, 0x10, 0x7c, 0xcc, 0x1b, 0x52, 0x07, 0x83, 0x60, 0x41, 0xb0, 0x20, 0xd8, 0x20, 0x6e, 0xd0, 0x75, 0x0e, 0x62, 0xa1, 0x4c, 0xe7, 0x20, 0xfa, 0xca, 0x74, 0x0e, 0x62, 0xee, 0x4c, 0xe7, 0xf8, 0x76, 0x1c, 0x3a, 0x1e, 0x1f, 0x44, 0x68, 0x5b, 0xce, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0xf8, 0x63, 0x62, 0x63, 0xe1, 0x21, 0xb5, 0x74, 0x3c, 0x5e, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x10, 0x2c, 0x08, 0x36, 0x78, 0x8b, 0x51, 0xc2, 0x41, 0x04, 0x2e, 0xea, 0x1c, 0xa4, 0x28, 0x3f, 0x1f, 0xc4, 0x07, 0xa3, 0xce, 0xf1, 0x78, 0xe1, 0x17, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x0b, 0xbf, 0x20, 0xd8, 0x60, 0xe4, 0x3f, 0x2c, 0x0e, 0x82, 0x15, 0x04, 0x1b, 0x44, 0xd0, 0x9a, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x71, 0x8d, 0x7e, 0x48, 0x76, 0x1c, 0x87, 0x06, 0xc1, 0x06, 0xd1, 0x86, 0xda, 0x71, 0x10, 0xdf, 0xf3, 0x3a, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x82, 0x64, 0x20, 0xfd, 0x77, 0x10, 0xe4, 0xfc, 0x07, 0xd1, 0xe3, 0xa6, 0x73, 0xb0, 0x0e, 0x95, 0x7f, 0xd8, 0x85, 0x5b, 0x10, 0x6c, 0x10, 0x01, 0x99, 0x18, 0x07, 0x71, 0x30, 0xa7, 0x73, 0x88, 0xff, 0xc1, 0x02, 0x74, 0x95, 0xe3, 0xf1, 0x41, 0x24, 0xa3, 0xe5, 0x0c, 0xbf, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x41, 0xd4, 0xcd, 0xeb, 0x0c, 0x82, 0x05, 0xc1, 0x06, 0xab, 0xf2, 0x10, 0x0e, 0x62, 0x0b, 0x4f, 0x67, 0x10, 0x6c, 0x10, 0x8d, 0x7c, 0x3a, 0xc3, 0x6f, 0x3c, 0xde, 0x90, 0x3a, 0xd8, 0x38, 0x34, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x81, 0xf4, 0xdf, 0xc1, 0x78, 0xd7, 0x19, 0x24, 0xc3, 0x0d, 0xa2, 0x85, 0xdd, 0xb0, 0xf6, 0xbb, 0xc1, 0xb8, 0x46, 0xdf, 0x90, 0x3a, 0x18, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0xe9, 0x4c, 0x22, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xa9, 0x9a, 0x83, 0x88, 0x84, 0xd3, 0x39, 0x0e, 0x1d, 0x87, 0x0e, 0x46, 0xc2, 0xea, 0xf1, 0xf8, 0x20, 0x42, 0xdb, 0x72, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xc0, 0x9f, 0x4b, 0xb3, 0x0b, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0xc2, 0x2f, 0x08, 0x36, 0x58, 0x16, 0x06, 0xb3, 0xb8, 0x41, 0x39, 0x94, 0x34, 0xfc, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x78, 0x9f, 0xb5, 0x39, 0x88, 0xcb, 0x47, 0x9d, 0x83, 0x88, 0x7f, 0xd4, 0x39, 0x1e, 0x1f, 0x44, 0x68, 0x5b, 0xce, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0xf8, 0x63, 0x74, 0x72, 0xe1, 0x21, 0xb5, 0x74, 0x3c, 0x1e, 0x7e, 0x41, 0xb0, 0xc1, 0xc8, 0x7f, 0x58, 0x1c, 0x04, 0x2b, 0x08, 0x36, 0x38, 0xa4, 0xaa, 0x1f, 0xd2, 0x70, 0x07, 0x71, 0x39, 0x98, 0x33, 0x08, 0x36, 0x88, 0x6f, 0xc2, 0x9c, 0x41, 0xb0, 0x20, 0x58, 0x10, 0x6c, 0xd0, 0x04, 0xaf, 0xc9, 0x41, 0x64, 0x27, 0xe6, 0x1c, 0x44, 0xb0, 0x62, 0xce, 0x41, 0x9c, 0x37, 0xe6, 0x1c, 0x8f, 0x07, 0xd9, 0x1a, 0xd2, 0x40, 0xe3, 0x80, 0xdf, 0x16, 0x36, 0x36, 0x1e, 0x52, 0x4b, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0x38, 0xe0, 0x85, 0x95, 0xcd, 0x07, 0x6b, 0xc2, 0x77, 0x8e, 0xc7, 0x8b, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x60, 0xe1, 0x17, 0x7e, 0x83, 0x51, 0x49, 0x7a, 0x70, 0x7e, 0xa2, 0x3d, 0x58, 0xcb, 0x27, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0xc1, 0xc7, 0x63, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x90, 0xbe, 0x3b, 0x18, 0x8e, 0xd2, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x8f, 0x01, 0x4f, 0x10, 0x5b, 0xda, 0x58, 0x79, 0x1c, 0x3a, 0x0e, 0x0d, 0x82, 0x05, 0xc1, 0xc2, 0x2f, 0xfc, 0x82, 0x64, 0x60, 0xb8, 0x0e, 0xd9, 0x8a, 0x83, 0xf3, 0x13, 0xed, 0x41, 0xc9, 0xd0, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x44, 0xe5, 0x59, 0xce, 0xc1, 0xb8, 0x83, 0x3a, 0x0e, 0x0d, 0x82, 0x05, 0xc1, 0xc2, 0x2f, 0xfc, 0x06, 0x25, 0xef, 0xcc, 0xc1, 0xf9, 0x89, 0xf6, 0x60, 0x2d, 0x9f, 0xc0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x04, 0x1f, 0x8f, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x40, 0xfa, 0xee, 0xe0, 0x98, 0x55, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x18, 0xf0, 0x49, 0xbd, 0x89, 0x95, 0xc9, 0xd1, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0x58, 0x10, 0x2c, 0xfc, 0xc2, 0x6f, 0xf0, 0xf0, 0xca, 0x86, 0x83, 0xf3, 0x13, 0xed, 0x41, 0xc9, 0xd0, 0x74, 0x10, 0x5b, 0x0f, 0x3b, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x48, 0xdf, 0x1d, 0x9c, 0xce, 0x90, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x03, 0xd0, 0x99, 0xa9, 0x8c, 0x0e, 0x84, 0x0e, 0xad, 0x4c, 0xae, 0x0c, 0x44, 0xac, 0x0c, 0xc4, 0xed, 0x0d, 0x84, 0xac, 0x0e, 0x8e, 0x2d, 0x6d, 0x2c, 0x8d, 0x2e, 0x0f, 0xe4, 0x0e, 0xad, 0xcc, 0x0d, 0x84, 0x2e, 0x6c, 0x2d, 0xcd, 0xed, 0x0c, 0x24, 0x0c, 0x64, 0x8e, 0x2e, 0xcc, 0x8d, 0x0c, 0x24, 0xec, 0x2c, 0x2c, 0xcd, 0x6d, 0x8e, 0x0e, 0x04, 0x2d, 0xad, 0xcd, 0x1d, 0x87, 0x06, 0xc1, 0x82, 0x60, 0xe1, 0x17, 0x24, 0x83, 0xd9, 0x41, 0x60, 0x62, 0x1f, 0xa4, 0xff, 0x36, 0x1c, 0x0c, 0x6c, 0xd1, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x05, 0xc9, 0x60, 0x76, 0x30, 0xde, 0x74, 0x0e, 0xce, 0x4f, 0xb4, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0x82, 0xe4, 0x60, 0xb8, 0x29, 0x1c, 0x8c, 0x3b, 0xa8, 0x43, 0xea, 0xe0, 0x38, 0x34, 0x08, 0x16, 0x04, 0x0b, 0xbf, 0x41, 0xa4, 0x6e, 0xec, 0x1c, 0xba, 0x98, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xf0, 0x0b, 0x92, 0x83, 0x94, 0xcc, 0x86, 0x83, 0x71, 0x07, 0x75, 0x48, 0x1d, 0x1c, 0x87, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x79, 0xec, 0xc5, 0x41, 0xb0, 0x41, 0x3c, 0xdf, 0x5e, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0x83, 0xdc, 0x8b, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x17, 0x37, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0x4d, 0x80, 0x1f, 0x59, 0xd9, 0x98, 0x5c, 0x1e, 0x1c, 0x5d, 0x8b, 0x59, 0x58, 0x1a, 0x3b, 0xfc, 0xc6, 0xf3, 0xf1, 0x20, 0xbe, 0x48, 0x76, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0x41, 0x34, 0x75, 0xd3, 0x0c, 0x82, 0x05, 0xc1, 0xc2, 0x2f, 0x48, 0x06, 0xb3, 0x83, 0x81, 0x48, 0x7d, 0x50, 0x32, 0x34, 0x1d, 0x0c, 0x6c, 0xd1, 0x41, 0xb0, 0x20, 0x5b, 0x43, 0x1e, 0x7b, 0x71, 0x10, 0x2c, 0x48, 0x06, 0xd2, 0x3f, 0x07, 0xc7, 0x8c, 0xe5, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x20, 0x3c, 0x07, 0xc7, 0x8c, 0xe5, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x17, 0x37, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0x4d, 0x80, 0x97, 0x5d, 0x99, 0x5c, 0x9a, 0x59, 0x5e, 0x8b, 0x59, 0x58, 0x1a, 0x3b, 0xfc, 0xc6, 0xf3, 0xf1, 0x20, 0xfe, 0x55, 0x76, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0x58, 0x90, 0x0c, 0x9c, 0x77, 0x07, 0xad, 0x39, 0xf8, 0x1f, 0x0c, 0x6c, 0xd1, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0xba, 0x0e, 0x0a, 0xb7, 0xa4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xd4, 0xc1, 0x41, 0xa2, 0x89, 0xcd, 0x71, 0x68, 0x10, 0x2c, 0x48, 0x06, 0xbb, 0x83, 0x73, 0x66, 0xf2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xc2, 0x2d, 0xe9, 0x90, 0x3a, 0x38, 0x0e, 0x1d, 0x8f, 0x8f, 0xc7, 0x0b, 0xbf, 0x20, 0x58, 0x5c, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0xae, 0x20, 0x58, 0xf8, 0x85, 0xdf, 0xb0, 0x42, 0x3b, 0x48, 0x06, 0xc6, 0xee, 0x60, 0xbc, 0xeb, 0x1c, 0x8c, 0xa8, 0xc0, 0x83, 0xd4, 0xb1, 0x9d, 0x43, 0x34, 0x17, 0x04, 0x1b, 0x44, 0x6b, 0xcc, 0xce, 0xc1, 0xd2, 0x85, 0x9f, 0xc3, 0xb8, 0x1c, 0x8f, 0x07, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x82, 0x60, 0xe1, 0x37, 0x88, 0xe2, 0x98, 0x9d, 0x41, 0x32, 0x90, 0x76, 0x3a, 0xac, 0xd0, 0x1e, 0xa4, 0x8e, 0xed, 0x0c, 0x82, 0x0d, 0x22, 0x92, 0x66, 0xe7, 0x60, 0xe9, 0xc2, 0xcf, 0xf1, 0x78, 0x71, 0x41, 0xb0, 0xf0, 0x0b, 0xbf, 0x21, 0xb9, 0x74, 0x10, 0x0b, 0x32, 0x3b, 0x83, 0x64, 0x40, 0xb0, 0xf6, 0x1d, 0x56, 0x68, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xac, 0xf2, 0x90, 0x5a, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x10, 0xb7, 0x36, 0x3b, 0x07, 0x69, 0xdc, 0x27, 0x1b, 0x24, 0xdc, 0x9e, 0x1c, 0x24, 0xa0, 0x90, 0x1c, 0x87, 0x56, 0xf8, 0x05, 0xc1, 0xe2, 0x06, 0x23, 0x06, 0xed, 0xe0, 0x34, 0xd9, 0xbb, 0x38, 0xfc, 0x82, 0x68, 0x41, 0xeb, 0x20, 0x58, 0xf8, 0x85, 0xdf, 0x90, 0xad, 0x38, 0x88, 0x05, 0x99, 0x9d, 0x83, 0xa1, 0x83, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0x91, 0xa6, 0x1c, 0x72, 0x30, 0xf8, 0x63, 0x8e, 0x43, 0xc7, 0xe3, 0xe1, 0x17, 0x44, 0x0b, 0x7a, 0x07, 0xc1, 0x06, 0xd1, 0xb2, 0xb3, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x1b, 0xfa, 0x93, 0x1f, 0x3a, 0xa9, 0x1d, 0x9a, 0x25, 0x1d, 0x87, 0x8e, 0xc7, 0xc3, 0x2f, 0x88, 0x16, 0xb4, 0x0e, 0xbb, 0x20, 0x58, 0xf8, 0x0d, 0xa2, 0x68, 0x67, 0xe7, 0x60, 0xa0, 0x8f, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x44, 0x2b, 0x07, 0xa9, 0xeb, 0x03, 0xc7, 0xa1, 0x05, 0xc1, 0x06, 0xe3, 0xa7, 0x6b, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x20, 0x5a, 0x39, 0x18, 0xfc, 0x31, 0xc7, 0xa1, 0x83, 0x61, 0x3a, 0x71, 0x3c, 0x1e, 0x7e, 0x41, 0xb4, 0xa0, 0x74, 0xd8, 0x0d, 0xe2, 0xfd, 0x67, 0x67, 0x83, 0x85, 0x30, 0xfb, 0x07, 0xc3, 0x8b, 0xe2, 0x78, 0x3c, 0xfc, 0x82, 0x68, 0x41, 0xeb, 0xb0, 0x0b, 0x82, 0x85, 0xdf, 0x20, 0x8a, 0x76, 0x76, 0x0e, 0x4b, 0x10, 0x07, 0x71, 0x0a, 0xb4, 0xb3, 0x20, 0x58, 0xf8, 0x0d, 0xa2, 0x68, 0x67, 0xe7, 0x60, 0x54, 0x92, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x86, 0xfe, 0xe4, 0x83, 0x60, 0xe1, 0x37, 0x88, 0xa2, 0x9d, 0x9d, 0xc3, 0x66, 0xc8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xd4, 0xf5, 0x81, 0x83, 0x41, 0xb4, 0x72, 0x1c, 0x3a, 0x18, 0xfc, 0x31, 0xc7, 0xa1, 0x83, 0x61, 0x3a, 0x71, 0x3c, 0x1e, 0x04, 0x0b, 0x82, 0x85, 0xdf, 0x20, 0x8a, 0x76, 0x76, 0x0e, 0x52, 0x88, 0x13, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xfe, 0x98, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x85, 0xdf, 0x20, 0x8a, 0x76, 0x76, 0x0e, 0x4e, 0xad, 0xcd, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0x62, 0xd1, 0x06, 0xa9, 0xeb, 0x03, 0x07, 0x31, 0x37, 0x75, 0x73, 0x1c, 0x3a, 0x0e, 0x0d, 0x82, 0x05, 0xc1, 0xc2, 0x2f, 0xfc, 0x06, 0x41, 0xce, 0x7f, 0x10, 0x0b, 0x32, 0x3b, 0x07, 0x29, 0xc4, 0x09, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x8a, 0x3d, 0x88, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x85, 0xdf, 0x20, 0xf6, 0x9b, 0x76, 0x0e, 0x4e, 0xad, 0xcd, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0x62, 0xd1, 0x06, 0x29, 0x83, 0x01, 0x07, 0xab, 0xaa, 0x71, 0x8e, 0x43, 0xc7, 0xa1, 0x41, 0xb0, 0x20, 0xd8, 0x60, 0x4c, 0x58, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0xf8, 0x85, 0xdf, 0x20, 0xe0, 0xfd, 0x0f, 0x62, 0x41, 0x66, 0xe7, 0x90, 0x35, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x50, 0xe4, 0x2a, 0x1c, 0x24, 0x60, 0x0b, 0x1c, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0x76, 0xa9, 0x9d, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0xbf, 0x41, 0x14, 0x4c, 0xed, 0x1c, 0x8c, 0x4a, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0xdf, 0xd0, 0x9f, 0xfc, 0xd0, 0x74, 0xe8, 0x90, 0xaa, 0x39, 0x0e, 0x1d, 0x94, 0x32, 0x3b, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0xd8, 0xa0, 0x84, 0x91, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xf0, 0x0b, 0xbf, 0xc1, 0x78, 0xd7, 0x39, 0x88, 0x05, 0x99, 0x9d, 0x43, 0xd6, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x93, 0x88, 0x36, 0x07, 0xa9, 0x25, 0x05, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xe2, 0x2f, 0x6b, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc2, 0x6f, 0x10, 0x97, 0x59, 0x3b, 0x07, 0xa3, 0x92, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x37, 0xf4, 0x27, 0x3f, 0x18, 0x41, 0x9e, 0x87, 0x54, 0xcd, 0x71, 0xe8, 0x90, 0x3a, 0x38, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xc0, 0x47, 0x6b, 0x0b, 0x1b, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0x0a, 0x82, 0x85, 0xdf, 0x20, 0x6e, 0x6d, 0x76, 0x0e, 0x92, 0x2a, 0x4e, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xa4, 0xa8, 0x9c, 0x1c, 0x9c, 0x4d, 0x7a, 0x8f, 0x43, 0x83, 0x60, 0x83, 0xf8, 0xb4, 0xd9, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xb0, 0xca, 0x43, 0x6a, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0x41, 0xdc, 0xda, 0xec, 0x1c, 0x94, 0x0c, 0x4d, 0x1b, 0x24, 0xdc, 0x9e, 0x1c, 0xa4, 0x86, 0x9d, 0x1c, 0x87, 0x16, 0x04, 0x1b, 0x44, 0x11, 0xd8, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x1f, 0x14, 0xfc, 0x4e, 0x07, 0x6b, 0x9f, 0xd2, 0x8e, 0x43, 0x83, 0x60, 0x83, 0xf8, 0xb4, 0xd9, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xb0, 0xca, 0x43, 0x6a, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0x41, 0xdc, 0xda, 0xec, 0x1c, 0x24, 0xff, 0x46, 0x6f, 0x90, 0xe4, 0xd6, 0x7c, 0x90, 0x70, 0x7b, 0x72, 0x1c, 0x5a, 0x10, 0x6c, 0x10, 0x45, 0x60, 0x3b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x52, 0x54, 0x4e, 0x0e, 0x12, 0xb2, 0x4f, 0x8e, 0x43, 0x0b, 0x82, 0x0d, 0xa2, 0x08, 0x6c, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0xc4, 0x94, 0xed, 0x1c, 0x3c, 0x2a, 0x2d, 0xe0, 0x38, 0xb4, 0x20, 0xd8, 0x20, 0x8a, 0xc0, 0x76, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x44, 0x4c, 0xd9, 0xce, 0xc1, 0x9a, 0xb9, 0x9a, 0xe3, 0xd0, 0x20, 0xd8, 0x20, 0x8a, 0xc0, 0x76, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xa4, 0xa8, 0x9c, 0x1c, 0xac, 0x88, 0x92, 0x3a, 0x0e, 0x1d, 0x8f, 0x07, 0xd9, 0x1a, 0xd2, 0x40, 0xe3, 0x06, 0x11, 0xf8, 0xb5, 0x73, 0x10, 0x31, 0x46, 0x33, 0xc7, 0xe3, 0x05, 0xc1, 0xe2, 0x82, 0x60, 0x71, 0x0d, 0x2b, 0xb4, 0x07, 0x43, 0xdb, 0x65, 0x0d, 0x2b, 0xb4, 0x1b, 0x8c, 0x31, 0xb4, 0x0d, 0xc6, 0x18, 0xda, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0x41, 0x0c, 0x0c, 0xcc, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x34, 0x2e, 0x3a, 0x38, 0x10, 0xf1, 0x1f, 0x87, 0x06, 0xc1, 0x82, 0x60, 0x83, 0x13, 0x9f, 0xf1, 0xc1, 0x33, 0xe5, 0x6f, 0x06, 0xc1, 0x82, 0x60, 0x43, 0xfc, 0x0f, 0x06, 0xb6, 0xe8, 0x20, 0xd8, 0xa0, 0xa0, 0x16, 0x5b, 0x1c, 0x04, 0x8b, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0x92, 0x81, 0xf3, 0xe9, 0xe0, 0x98, 0xb1, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xc8, 0x9e, 0x6f, 0x48, 0xd5, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x90, 0x0c, 0xd4, 0xa5, 0x83, 0xd6, 0x1c, 0xfc, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x43, 0x7f, 0xf2, 0x41, 0xb0, 0x41, 0x1c, 0xd5, 0xe0, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x38, 0x10, 0xf1, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0xda, 0x3a, 0x1d, 0xb4, 0xe6, 0xe0, 0x7f, 0x90, 0xe2, 0xe7, 0x70, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0xa4, 0x9d, 0x0e, 0x5a, 0x73, 0xf0, 0x3f, 0x48, 0xf1, 0x73, 0x38, 0x0e, 0x1d, 0x8f, 0x8f, 0x43, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x0d, 0xa2, 0xd1, 0x3f, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x90, 0x3d, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0x1d, 0x04, 0x55, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x81, 0x51, 0x3a, 0x38, 0x66, 0x2c, 0x1f, 0x24, 0x73, 0x54, 0x0c, 0x82, 0x05, 0xc9, 0x06, 0x45, 0x7d, 0xce, 0x41, 0x5a, 0xd0, 0xc8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xea, 0x60, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0xb2, 0x41, 0x39, 0xab, 0x73, 0x90, 0x16, 0x34, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xa6, 0x35, 0xfc, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xa4, 0x66, 0xec, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0x94, 0xea, 0x7d, 0x07, 0x69, 0x41, 0x23, 0x07, 0x03, 0x5b, 0xf4, 0x38, 0x74, 0x30, 0xf0, 0x43, 0x8e, 0x43, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0xdc, 0x70, 0xb4, 0x0f, 0x82, 0x05, 0xc9, 0x80, 0xf0, 0x77, 0x3a, 0x68, 0xcd, 0xc1, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x50, 0x2c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x10, 0x2c, 0x08, 0x16, 0x24, 0x1b, 0x0c, 0xf1, 0x8f, 0x83, 0xd6, 0x1c, 0xfc, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0x51, 0x3a, 0x68, 0xcd, 0xc1, 0xff, 0x20, 0xc5, 0xcf, 0xe1, 0x38, 0x34, 0x08, 0x16, 0x24, 0x1b, 0x14, 0xf5, 0x39, 0x07, 0xc9, 0x4a, 0x2b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x1b, 0x94, 0xb3, 0x3a, 0x07, 0xc9, 0x4a, 0x2b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x83, 0x3f, 0x07, 0x71, 0x51, 0x74, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0x40, 0xc4, 0x3f, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x50, 0xaa, 0xf7, 0x1d, 0x24, 0x2b, 0xad, 0x1c, 0x0c, 0x6c, 0xd1, 0xe3, 0xd0, 0xc1, 0xc0, 0x0f, 0x39, 0x0e, 0x1d, 0x52, 0x07, 0xc7, 0xa1, 0x41, 0xb0, 0x20, 0xd9, 0x60, 0x90, 0xbc, 0x1c, 0x24, 0x2b, 0xad, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xa4, 0x0e, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0xf1, 0xd0, 0xfe, 0xfc, 0x78, 0x7c, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x8f, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0xf0, 0x0b, 0xa2, 0x05, 0xe3, 0x41, 0xb0, 0x41, 0x7a, 0x63, 0xc3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xfc, 0x0f, 0x12, 0x23, 0x61, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0xb0, 0xb0, 0x0b, 0xb7, 0x21, 0x86, 0x83, 0x60, 0x41, 0x32, 0x10, 0x9d, 0x83, 0xd3, 0x86, 0xf2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x31, 0x61, 0x75, 0x30, 0x78, 0x27, 0x8f, 0x43, 0x0b, 0x82, 0x05, 0xc1, 0x82, 0x64, 0xe0, 0x5c, 0x39, 0x38, 0x6d, 0x28, 0x1f, 0xc4, 0x5f, 0xe5, 0xce, 0x20, 0x58, 0x1c, 0x76, 0x83, 0x65, 0xa8, 0x46, 0x1b, 0x62, 0xb8, 0x20, 0x58, 0x10, 0x6c, 0x10, 0x51, 0xe8, 0x39, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0xf6, 0xf5, 0x9c, 0x43, 0xa3, 0x96, 0x83, 0xc2, 0x2d, 0xe9, 0x38, 0x34, 0x08, 0x36, 0x88, 0x14, 0x99, 0x8b, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x43, 0xb1, 0x68, 0xe1, 0x37, 0x9e, 0x6f, 0x1c, 0x3a, 0x28, 0xdc, 0x92, 0x0e, 0x16, 0x2e, 0x96, 0x1c, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x07, 0xb1, 0x94, 0xb9, 0x73, 0x3c, 0x3e, 0xbe, 0x1d, 0x4e, 0xb1, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x6c, 0xb0, 0x76, 0x9d, 0xe2, 0xe0, 0xb4, 0xa1, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0x3a, 0x18, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x7e, 0x41, 0xb4, 0x20, 0x1c, 0x04, 0x1b, 0xa4, 0x5a, 0xa9, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x86, 0x18, 0x4e, 0xf0, 0xf7, 0xff, 0x21, 0x6b, 0x77, 0x1c, 0x3a, 0x1e, 0x0f, 0x82, 0x0d, 0x06, 0xef, 0xe4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x84, 0xbd, 0x9a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x7c, 0xed, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x83, 0xbb, 0xf2, 0x90, 0x86, 0x3b, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0xc7, 0xa1, 0x41, 0xb0, 0x21, 0x86, 0x83, 0x60, 0x43, 0x0c, 0x07, 0xc1, 0xe2, 0xf0, 0x0b, 0xa2, 0x05, 0xf1, 0x20, 0x58, 0x90, 0x0c, 0x14, 0xbd, 0x83, 0x64, 0xa5, 0x95, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0xba, 0x74, 0x90, 0xac, 0xb4, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0x51, 0x94, 0x84, 0x73, 0xd8, 0x2b, 0x3c, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0xde, 0x77, 0x3a, 0x48, 0x56, 0x5a, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x0d, 0x31, 0x3c, 0x28, 0xa5, 0x7b, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x58, 0x47, 0xaa, 0x71, 0x30, 0x3e, 0x8c, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0xf0, 0x0b, 0xa2, 0x85, 0x1d, 0x04, 0x1b, 0xc4, 0x37, 0xd1, 0xc5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xaa, 0x66, 0x02, 0xc5, 0xfe, 0xff, 0x71, 0xe8, 0x78, 0x3c, 0xec, 0x82, 0x60, 0x41, 0x32, 0xa8, 0x39, 0x88, 0x8b, 0xa2, 0x8b, 0x83, 0x87, 0xfd, 0x02, 0x2c, 0x08, 0x36, 0x88, 0x55, 0xd4, 0x9d, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0xdf, 0x10, 0xc3, 0x41, 0xb0, 0x41, 0xa4, 0x33, 0xee, 0x1c, 0x3c, 0xec, 0x17, 0xe0, 0xb0, 0x57, 0x78, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf9, 0x20, 0xd8, 0xa0, 0x70, 0x4b, 0x3a, 0x18, 0x1f, 0x46, 0x83, 0x68, 0x41, 0x7c, 0x48, 0xd5, 0x1c, 0x8f, 0x8f, 0x6f, 0x07, 0x6b, 0xf9, 0x04, 0x8e, 0xc7, 0xc7, 0xe3, 0x15, 0x04, 0x8b, 0x1b, 0x44, 0xf4, 0xdb, 0xce, 0x06, 0x11, 0x04, 0xb7, 0x73, 0x50, 0x4c, 0x0b, 0x2e, 0x0e, 0xbf, 0x20, 0x5a, 0x60, 0x7e, 0x07, 0xc1, 0x06, 0x51, 0x01, 0x7d, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x28, 0x16, 0x1d, 0x24, 0x18, 0x20, 0x1c, 0x87, 0x8e, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0xc1, 0x39, 0xf8, 0x7b, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x6b, 0xb7, 0xa1, 0x87, 0xd0, 0x86, 0xc6, 0x45, 0x07, 0x61, 0x4f, 0x7d, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x83, 0x71, 0xaa, 0x7c, 0x68, 0xc6, 0x73, 0x1c, 0x3a, 0x1e, 0xaf, 0xf0, 0x0b, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb0, 0x20, 0x19, 0x98, 0xab, 0x43, 0x72, 0x69, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0xc7, 0xe0, 0x00, 0x59, 0xf8, 0x8d, 0xe7, 0x63, 0x30, 0xc0, 0x1b, 0x24, 0xce, 0x36, 0x1f, 0x52, 0x35, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0x1c, 0xd0, 0xd7, 0x64, 0x64, 0xe8, 0x21, 0xb5, 0x74, 0x3c, 0x5e, 0x10, 0x6c, 0x30, 0xf2, 0x1f, 0x16, 0x07, 0xc1, 0x82, 0x64, 0xe0, 0xbe, 0x3b, 0x24, 0x97, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x0c, 0x0e, 0xa8, 0x0d, 0xd2, 0xcb, 0x7a, 0x0e, 0x79, 0xd9, 0xe3, 0xd0, 0xf1, 0x78, 0x05, 0xc1, 0x06, 0x23, 0xff, 0x61, 0x71, 0x10, 0x6c, 0xb0, 0x46, 0xb4, 0xff, 0x20, 0x4a, 0x7a, 0x77, 0x8e, 0xc7, 0x83, 0x60, 0x83, 0x91, 0xff, 0xb0, 0x38, 0x08, 0x36, 0x58, 0x23, 0xda, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x63, 0x70, 0x40, 0x6c, 0x90, 0xe0, 0xe3, 0x71, 0xc8, 0xcb, 0x1e, 0x87, 0x8e, 0xc7, 0x83, 0x60, 0x41, 0x32, 0x20, 0x58, 0xfb, 0x0e, 0x86, 0x7f, 0xec, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x22, 0x46, 0x78, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x2a, 0x0f, 0xa9, 0x83, 0xe7, 0xda, 0x04, 0x1c, 0x87, 0x86, 0xdf, 0x78, 0x7e, 0xd0, 0x72, 0xfe, 0xd2, 0x71, 0x68, 0x41, 0xb0, 0xc1, 0xc8, 0x7f, 0x58, 0x1c, 0x04, 0x1b, 0xc4, 0x2c, 0xef, 0xce, 0x41, 0x6c, 0x02, 0xef, 0x1c, 0x8f, 0x57, 0x10, 0x6c, 0x10, 0x31, 0xc2, 0x3b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x22, 0x64, 0x78, 0x67, 0xf8, 0x8d, 0xe7, 0x07, 0xa7, 0x30, 0xdc, 0xe3, 0xd0, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x6c, 0xf0, 0x3c, 0x95, 0x89, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x83, 0x02, 0xb2, 0x41, 0xda, 0x56, 0xcb, 0x06, 0x09, 0x3e, 0x1e, 0x87, 0x54, 0xcd, 0x71, 0xe8, 0x78, 0x3c, 0xfc, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x6c, 0x10, 0xdf, 0xb8, 0x3b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x06, 0x05, 0x74, 0xe1, 0x37, 0x9e, 0x8f, 0x41, 0x01, 0x5c, 0xf8, 0x8d, 0xe7, 0x63, 0x30, 0x80, 0x87, 0x54, 0xcd, 0x71, 0xe8, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x07, 0xf4, 0xb5, 0x19, 0x1c, 0x7a, 0x48, 0x2d, 0x1d, 0x8f, 0x07, 0xc1, 0x06, 0x11, 0x23, 0xbc, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0x42, 0x86, 0x77, 0x0e, 0x8e, 0xb5, 0xdd, 0xc7, 0xa1, 0x05, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0xd8, 0xe0, 0x79, 0x2a, 0x13, 0x07, 0x31, 0xb9, 0xbc, 0x73, 0x3c, 0x5e, 0x41, 0xb0, 0xc1, 0x52, 0xa3, 0xb2, 0x41, 0x32, 0xe4, 0x20, 0x51, 0xcc, 0x63, 0x85, 0x5f, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0x0d, 0xe2, 0x1b, 0x77, 0xe7, 0x20, 0x02, 0x92, 0x77, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0x40, 0x5f, 0xab, 0x89, 0x91, 0x87, 0xd4, 0xd2, 0xf1, 0x78, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0x0d, 0x9e, 0xa7, 0x32, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0xfa, 0x81, 0x77, 0x36, 0x48, 0xf0, 0xf1, 0xd8, 0x20, 0xbd, 0xac, 0xe7, 0x90, 0xaa, 0x39, 0x0e, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x83, 0xe7, 0xa9, 0x4c, 0x1c, 0x44, 0x53, 0xee, 0xce, 0xf1, 0x78, 0x41, 0xb0, 0xc1, 0x52, 0xa3, 0xb2, 0x83, 0x07, 0x14, 0x50, 0x2c, 0x08, 0x36, 0x58, 0x6a, 0x54, 0x76, 0x90, 0x2e, 0x38, 0x34, 0x08, 0x36, 0x88, 0x18, 0xe1, 0x9d, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x11, 0x32, 0xbc, 0x73, 0xb0, 0x1a, 0x29, 0xe6, 0x38, 0xb4, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x61, 0x17, 0x04, 0x0b, 0x82, 0x05, 0xc9, 0xa0, 0xea, 0xe0, 0x24, 0x74, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0x35, 0x63, 0x67, 0x83, 0x25, 0x76, 0x65, 0x1b, 0x24, 0x6b, 0x1a, 0x2c, 0xfc, 0xc6, 0xf3, 0x31, 0x08, 0xe4, 0x06, 0xe9, 0xde, 0x17, 0x0b, 0xbf, 0xf1, 0x7c, 0x0c, 0x0a, 0xe4, 0xc2, 0x6f, 0x3c, 0x1f, 0x83, 0x03, 0xf2, 0x60, 0xe0, 0x87, 0x1c, 0x87, 0x06, 0xc1, 0x82, 0x60, 0x83, 0x46, 0x97, 0x43, 0x06, 0xc9, 0xc0, 0xf4, 0x1d, 0x8c, 0xc1, 0xc8, 0x83, 0x61, 0x16, 0xbe, 0x20, 0xd8, 0xa0, 0xb0, 0xc3, 0x19, 0x04, 0x0b, 0x82, 0x0d, 0xce, 0xa1, 0xc6, 0x07, 0xa3, 0x3d, 0x78, 0x10, 0x2c, 0x08, 0x36, 0x58, 0xfa, 0x3f, 0x36, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x56, 0x44, 0x6d, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x44, 0xc7, 0x1f, 0xcd, 0x41, 0xbc, 0x80, 0xe1, 0x1c, 0x87, 0x8e, 0x43, 0x83, 0x60, 0x41, 0xb0, 0x41, 0x7c, 0x8c, 0x86, 0x1c, 0x0c, 0x6c, 0xd1, 0x41, 0xb0, 0x20, 0xd8, 0x20, 0x46, 0x6a, 0x6b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x44, 0x2e, 0x3f, 0xce, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xa7, 0xf7, 0xe3, 0x83, 0xc4, 0x9b, 0xa0, 0xe3, 0xd0, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x31, 0x1c, 0x04, 0x8b, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x8b, 0x33, 0x0e, 0xea, 0x07, 0xe3, 0xc1, 0x76, 0x50, 0x32, 0x28, 0x1b, 0x76, 0xd0, 0x3b, 0x18, 0x0d, 0x1d, 0x44, 0x83, 0xae, 0xc1, 0x72, 0xd0, 0x33, 0x68, 0x1a, 0xb4, 0x0d, 0xf2, 0xc1, 0x6a, 0x10, 0x0c, 0x26, 0x43, 0x06, 0xed, 0x83, 0xe2, 0x41, 0xdc, 0x20, 0xd8, 0x20, 0xda, 0xbf, 0x71, 0x0e, 0x8a, 0xd1, 0x9f, 0xe3, 0xf1, 0x82, 0x60, 0x83, 0x91, 0xff, 0xb0, 0x38, 0x08, 0x16, 0x04, 0x1b, 0xc4, 0x37, 0xd1, 0xc5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xd6, 0x6e, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x08, 0x0e, 0xe2, 0xa2, 0xe8, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x39, 0x33, 0xf9, 0xd0, 0x43, 0xe8, 0x38, 0x74, 0x1c, 0x1a, 0x04, 0x1b, 0x3c, 0x55, 0x89, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x75, 0xb0, 0xc1, 0x39, 0x33, 0xf9, 0xd0, 0xf0, 0xeb, 0x38, 0x74, 0x3c, 0x5e, 0xd8, 0x0d, 0xd2, 0x7d, 0x3d, 0x36, 0xec, 0x15, 0x0e, 0x82, 0x05, 0xc1, 0x82, 0x64, 0x83, 0xb5, 0xeb, 0x14, 0x07, 0x69, 0x41, 0x23, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x1b, 0xc4, 0x3c, 0x45, 0xce, 0x41, 0x5a, 0xd0, 0xc8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x81, 0x1f, 0x32, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x54, 0xaf, 0xe0, 0x1c, 0x44, 0xf4, 0x23, 0xcd, 0x71, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x6c, 0x10, 0x6d, 0xa5, 0x3b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0x53, 0xd3, 0x9d, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0xdf, 0xa0, 0x70, 0x4b, 0x3a, 0x1c, 0xed, 0x87, 0x7c, 0xed, 0x71, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0xb2, 0xc1, 0xda, 0x75, 0x8a, 0x83, 0x64, 0xa5, 0x95, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x0d, 0x62, 0x9e, 0x22, 0xe7, 0x20, 0x59, 0x69, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc0, 0x0f, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0xa4, 0x57, 0x0e, 0xe2, 0xa2, 0xe8, 0xe2, 0x20, 0x9e, 0xc3, 0x71, 0x8e, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x41, 0x32, 0x10, 0xbc, 0x83, 0x78, 0xcc, 0xba, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xc8, 0xd7, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x90, 0x1c, 0xef, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xec, 0xd8, 0x90, 0xb5, 0x3b, 0x28, 0xdc, 0x92, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x3e, 0x0e, 0x0d, 0x82, 0x05, 0xc1, 0x82, 0x64, 0x83, 0xb5, 0xeb, 0x14, 0x07, 0xad, 0x39, 0xf8, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x6c, 0x10, 0xf3, 0x14, 0x39, 0x07, 0xad, 0x39, 0xf8, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xf8, 0x21, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xc4, 0x82, 0x0c, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0xe0, 0x54, 0x8e, 0x7c, 0x1c, 0x3a, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0x05, 0xc9, 0x40, 0xd1, 0x3b, 0x88, 0x8b, 0xa2, 0x8b, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0xba, 0x74, 0x10, 0x17, 0x45, 0x17, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0xbe, 0xc1, 0x59, 0xf6, 0xf8, 0x70, 0xb4, 0x1f, 0xf2, 0xb5, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x62, 0xd0, 0x1b, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc2, 0x6e, 0x68, 0x1c, 0xb9, 0x20, 0xd8, 0x20, 0x7e, 0xc2, 0x71, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x07, 0xe5, 0x62, 0xcf, 0x71, 0x68, 0x10, 0x6c, 0x10, 0x3f, 0xe1, 0x38, 0x87, 0x34, 0xdc, 0x20, 0xd8, 0xe0, 0x15, 0x34, 0x72, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xa9, 0x83, 0x0d, 0x12, 0x4d, 0x6c, 0x0e, 0x02, 0x13, 0xfb, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0x94, 0xa7, 0x83, 0xb8, 0x28, 0xba, 0x18, 0x24, 0x03, 0xc1, 0x3b, 0x88, 0x0d, 0x02, 0x9e, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x03, 0x3f, 0x64, 0x83, 0xb1, 0xe1, 0x3a, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x53, 0x95, 0x28, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0x13, 0x2d, 0x3a, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x62, 0xc0, 0x28, 0xe7, 0xa0, 0x5c, 0xec, 0x39, 0x0e, 0x6d, 0x50, 0x2e, 0xf6, 0x1c, 0xf6, 0x0a, 0x8f, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x78, 0x7c, 0x1c, 0x1a, 0x7e, 0x41, 0xb4, 0xe0, 0xfe, 0x20, 0xd8, 0x20, 0xe2, 0xf0, 0x77, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0xc7, 0xf9, 0x3b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x06, 0x7e, 0xc8, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xd1, 0xb5, 0xbf, 0x73, 0x10, 0xef, 0x03, 0x3c, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xc6, 0x40, 0xf9, 0xe2, 0x20, 0xd8, 0x20, 0x02, 0xfa, 0x77, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xf2, 0xb5, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0xba, 0x74, 0x10, 0x8f, 0x59, 0x17, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0xbe, 0xc1, 0xa9, 0x1c, 0x79, 0x10, 0x6c, 0x10, 0x87, 0x6a, 0x17, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xca, 0xc5, 0x9e, 0x83, 0x18, 0x30, 0xca, 0x39, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xf0, 0x0a, 0x1a, 0xb9, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xac, 0xdd, 0x06, 0x89, 0x26, 0x36, 0x87, 0xbd, 0xc2, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x3e, 0x0e, 0x1d, 0x8f, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x88, 0xc3, 0xdf, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x10, 0xa7, 0x14, 0x3c, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x88, 0xce, 0x41, 0x04, 0xab, 0x5d, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x64, 0xed, 0x0e, 0x4a, 0x34, 0x9c, 0xe3, 0xd0, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x06, 0xce, 0x95, 0x09, 0xdc, 0xff, 0xff, 0xff, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xe2, 0x7f, 0x50, 0xa2, 0xe1, 0x1c, 0x87, 0x06, 0xc1, 0x82, 0x64, 0xa0, 0xe8, 0x1d, 0x44, 0x74, 0x08, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0x62, 0x66, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x50, 0x97, 0x0e, 0x22, 0x3a, 0x84, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x37, 0x28, 0x17, 0x7b, 0x06, 0xc1, 0x82, 0x64, 0xf0, 0x67, 0x02, 0xf9, 0xff, 0xff, 0xff, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x25, 0x10, 0xfc, 0xff, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x41, 0xc9, 0x41, 0x34, 0x99, 0xf0, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x33, 0xdc, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x41, 0x70, 0x10, 0x4d, 0x26, 0x3c, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x4a, 0x4e, 0xa5, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x40, 0x74, 0x0e, 0xa2, 0xc9, 0x84, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x71, 0x79, 0xc2, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x38, 0x48, 0xe1, 0x39, 0x48, 0xbc, 0x09, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x0e, 0x52, 0x78, 0x0e, 0xd2, 0xcc, 0xb7, 0x8f, 0x43, 0x07, 0x25, 0xa7, 0xd2, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x08, 0x16, 0x24, 0x03, 0xe5, 0xe9, 0x20, 0xa2, 0x43, 0x78, 0x06, 0xc9, 0x40, 0xf0, 0x06, 0xd1, 0xc2, 0x1e, 0x24, 0x9a, 0xd8, 0x1c, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xfc, 0x90, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x18, 0xc1, 0xa7, 0x87, 0xec, 0xc5, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xad, 0xb2, 0xaa, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x24, 0x3b, 0x36, 0x88, 0x82, 0x13, 0x9e, 0x83, 0x53, 0x39, 0xf2, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x8f, 0x43, 0xc3, 0x2f, 0x88, 0x16, 0x08, 0xff, 0x20, 0x58, 0x90, 0x6c, 0xb0, 0x76, 0x9d, 0xe2, 0x20, 0x2e, 0x8a, 0x2e, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x36, 0x88, 0x79, 0x8a, 0x9c, 0x83, 0xb8, 0x28, 0xba, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xf0, 0x43, 0x0e, 0x62, 0x1d, 0x1c, 0xe7, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0x08, 0x16, 0x24, 0x03, 0x45, 0xef, 0x20, 0x82, 0xd5, 0x2e, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0xea, 0xd2, 0x41, 0x04, 0xab, 0x5d, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x28, 0x17, 0x7b, 0x0e, 0xf9, 0xda, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x60, 0x41, 0x32, 0x10, 0x9d, 0x83, 0x88, 0x0e, 0xe1, 0x39, 0x88, 0x33, 0x10, 0x9e, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0x9c, 0x2b, 0x07, 0xd1, 0x64, 0xc2, 0x73, 0x10, 0x25, 0x22, 0x3c, 0x83, 0x60, 0x41, 0x32, 0x10, 0xbc, 0x83, 0x68, 0x32, 0xe1, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x44, 0x07, 0xe3, 0x5d, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x55, 0xb3, 0x21, 0x75, 0x70, 0x30, 0xde, 0x74, 0x8e, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0x73, 0xef, 0x20, 0x9a, 0x4c, 0x78, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x08, 0x16, 0x24, 0x03, 0xd1, 0x99, 0xc0, 0xfe, 0xff, 0xff, 0xff, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x41, 0xc9, 0x41, 0x24, 0x0a, 0xf1, 0x1c, 0x3a, 0xc6, 0x4f, 0xa0, 0xf8, 0xff, 0x3f, 0x0e, 0x0d, 0x82, 0x05, 0xc9, 0x20, 0x3a, 0x18, 0x86, 0x3e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xa9, 0x83, 0x0d, 0xa9, 0x9a, 0x83, 0xc1, 0x3b, 0x79, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x54, 0xbd, 0x83, 0x68, 0x32, 0xe1, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x10, 0x05, 0x27, 0x3c, 0x1b, 0x8c, 0x0d, 0xd7, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xe2, 0xe1, 0x87, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x91, 0x24, 0xc4, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0xc9, 0xfe, 0xf7, 0x83, 0x38, 0x22, 0xe2, 0x39, 0x0e, 0x1d, 0xc4, 0x02, 0x10, 0xcf, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0xc7, 0xa1, 0xe3, 0xf1, 0xf0, 0x0b, 0xa2, 0x05, 0xc2, 0x3f, 0x08, 0x16, 0x04, 0x1b, 0x44, 0xc1, 0x3e, 0xce, 0xc1, 0x48, 0x58, 0x1d, 0x04, 0x1b, 0x44, 0x40, 0xff, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xc2, 0x2d, 0x69, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x38, 0xc6, 0xe0, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x0d, 0x4e, 0xe5, 0xc8, 0x83, 0x60, 0x41, 0x32, 0x90, 0x5e, 0x39, 0x88, 0x60, 0xb5, 0x8b, 0x83, 0xa8, 0x54, 0xe0, 0x39, 0xa4, 0x0e, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0x19, 0xcc, 0x0e, 0xe2, 0x44, 0x02, 0x67, 0x41, 0xb0, 0xc1, 0xc8, 0x7f, 0x58, 0x1c, 0x04, 0x1b, 0x44, 0x58, 0xcf, 0xc5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xb3, 0xec, 0xf1, 0xc2, 0x6f, 0x3c, 0x5f, 0x10, 0x6c, 0x10, 0xe9, 0x8c, 0x3b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x3d, 0x84, 0x86, 0xdf, 0x78, 0x3e, 0xcc, 0x20, 0x58, 0x90, 0x0c, 0x44, 0xe7, 0x20, 0x2e, 0x8a, 0x2e, 0x0e, 0xc6, 0x68, 0xc4, 0x71, 0xe8, 0x70, 0xb4, 0x1f, 0x3a, 0x86, 0x1d, 0x87, 0x8e, 0xc7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0xe2, 0x38, 0x20, 0x08, 0x02, 0x06, 0x10, 0x50, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x20, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x18, 0x10, 0x16, 0x01, 0x03, 0x04, 0x01, 0x00, 0x00, 0x80, 0x01, 0x04, 0x02, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x08, 0x24, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x42, 0x31, 0x10, 0x88, 0x01, 0x82, 0x04, 0x40, 0x00, 0xc0, 0x00, 0x81, 0x02, 0x00, 0x00, 0x60, 0x80, 0x60, 0x11, 0x10, 0x00, 0x30, 0x80, 0xc0, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x81, 0x44, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x02, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x04, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x08, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x04, 0x05, 0xc0, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x0d, 0xa2, 0x14, 0x8b, 0x67, 0x00, 0x01, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x06, 0x71, 0x84, 0xc5, 0x33, 0x80, 0x00, 0x02, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0xa0, 0x41, 0xb0, 0x41, 0xb4, 0x7f, 0xe3, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x26, 0x5a, 0x74, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xf6, 0x0a, 0x0f, 0xe2, 0xd0, 0x0d, 0xe7, 0x38, 0x74, 0x48, 0x1d, 0x1c, 0x87, 0x8e, 0xc7, 0x07, 0xa7, 0x15, 0xdc, 0xe3, 0xf1, 0xe1, 0x14, 0x3b, 0x1e, 0x2f, 0x08, 0x36, 0x58, 0x6a, 0x54, 0x76, 0x10, 0x65, 0xae, 0x36, 0x0b, 0xbf, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x04, 0x1b, 0xc4, 0x37, 0xee, 0xce, 0x41, 0xec, 0x53, 0xef, 0x1c, 0x8f, 0x07, 0xd9, 0x1a, 0xd2, 0x40, 0xe3, 0x80, 0xbe, 0x26, 0x53, 0x63, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x61, 0x17, 0x04, 0x1b, 0xa4, 0x08, 0x57, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xa4, 0x6a, 0x0e, 0xd2, 0x0d, 0x1c, 0x8e, 0x43, 0x0b, 0x82, 0x0d, 0x0a, 0x6a, 0xb1, 0xc5, 0xe1, 0x17, 0x44, 0x0b, 0xd2, 0x41, 0xb0, 0x41, 0x74, 0xfc, 0xd1, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xe4, 0x6b, 0x0f, 0x0e, 0x44, 0xfc, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0x58, 0x10, 0x6c, 0x10, 0xbd, 0xa3, 0x1d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xf9, 0xda, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x40, 0x74, 0x0e, 0x4e, 0x67, 0xc8, 0x07, 0x25, 0xcf, 0xd8, 0x71, 0x68, 0xf8, 0x05, 0xd1, 0x42, 0x86, 0xdd, 0xe0, 0x34, 0x88, 0x7d, 0x30, 0xd4, 0x37, 0x8f, 0xc7, 0xc3, 0x2f, 0x88, 0x16, 0x32, 0x08, 0x36, 0x68, 0x55, 0x5d, 0xe9, 0x60, 0x60, 0x8b, 0x1e, 0x8f, 0x17, 0x04, 0x1b, 0x44, 0xfb, 0x60, 0xcb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x31, 0x61, 0x75, 0x30, 0x66, 0xb8, 0x8f, 0x43, 0x83, 0x60, 0x83, 0x37, 0xfd, 0xd8, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x8a, 0x45, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0x53, 0x1d, 0x35, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0xb3, 0x7c, 0x8e, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x29, 0x72, 0xd4, 0x07, 0xe3, 0x4d, 0xe7, 0x38, 0x74, 0x90, 0xe4, 0xd6, 0x7c, 0x1c, 0x3a, 0x18, 0x59, 0x56, 0xc7, 0xa1, 0xe3, 0xf1, 0xe1, 0x14, 0x3b, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0x7f, 0xad, 0x6c, 0x6c, 0x3c, 0x58, 0x13, 0xbe, 0x73, 0x3c, 0x1e, 0x04, 0x8b, 0x0b, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb0, 0x20, 0xd8, 0x20, 0x31, 0x74, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0xc7, 0x60, 0xfe, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x48, 0x10, 0x5c, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x1a, 0xed, 0xc2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xd6, 0xee, 0x20, 0xe1, 0xf6, 0xe4, 0x38, 0x74, 0x90, 0xe0, 0xe3, 0x71, 0x1c, 0x3a, 0x0e, 0x2d, 0x08, 0x36, 0x38, 0xf1, 0x19, 0x0f, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x7e, 0x90, 0x70, 0x7b, 0x32, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x0f, 0xc6, 0x0c, 0xf7, 0x21, 0xd9, 0x71, 0x1c, 0x3a, 0x0e, 0x0d, 0x82, 0x0d, 0x1a, 0x50, 0x85, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xf0, 0x43, 0x86, 0xdf, 0x78, 0xbe, 0x06, 0xe9, 0x50, 0x1e, 0x83, 0x60, 0x83, 0x28, 0x92, 0xc8, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x14, 0x8b, 0x36, 0x38, 0x10, 0xf1, 0x1f, 0xe2, 0x7f, 0x1c, 0x5a, 0x83, 0x51, 0x7e, 0x32, 0x08, 0x36, 0x78, 0x51, 0x1b, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x63, 0xb4, 0xee, 0xc1, 0xd8, 0x70, 0x3d, 0x0e, 0x6d, 0xc8, 0xcb, 0x1e, 0x62, 0x78, 0x1c, 0x3a, 0x1e, 0x0f, 0xbf, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x7e, 0x41, 0xb4, 0x20, 0x1c, 0x04, 0x1b, 0x9c, 0x1c, 0x8b, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xb2, 0x76, 0x07, 0x07, 0x22, 0xfe, 0xe3, 0xd0, 0xf1, 0x78, 0x10, 0x6c, 0x10, 0xeb, 0x54, 0x35, 0xc3, 0x2f, 0x88, 0x16, 0x6e, 0x10, 0x6c, 0x90, 0xc6, 0x07, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x44, 0xc3, 0xd9, 0x30, 0x2e, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x24, 0x03, 0xab, 0x4e, 0x07, 0xa7, 0x33, 0xe4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x43, 0xb1, 0xe8, 0x20, 0xee, 0x9b, 0x65, 0x8e, 0x43, 0xc7, 0xe3, 0xe3, 0xd0, 0xf1, 0x78, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0x41, 0xbb, 0xc5, 0x50, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xd1, 0x3c, 0x48, 0xf0, 0xf1, 0x38, 0x0e, 0x0d, 0x82, 0x05, 0xc1, 0x82, 0x64, 0xa0, 0x3c, 0x1d, 0x9c, 0xbd, 0x8c, 0x0f, 0x0a, 0x2e, 0x9c, 0x41, 0xb0, 0x18, 0xf8, 0x01, 0x23, 0x45, 0xe7, 0x20, 0x58, 0x0c, 0x08, 0x12, 0x57, 0x9b, 0xdf, 0x83, 0x60, 0x31, 0x20, 0xf0, 0xe7, 0xd6, 0xc5, 0x0c, 0x82, 0xc5, 0xc0, 0xb6, 0xa3, 0x92, 0x81, 0x41, 0xb0, 0x18, 0x10, 0xc0, 0x87, 0x4b, 0x0f, 0x07, 0xc1, 0x86, 0xc4, 0xd4, 0x20, 0xd8, 0xa0, 0x80, 0x16, 0x1c, 0x04, 0x1b, 0x14, 0xd0, 0x82, 0x83, 0x60, 0x71, 0x41, 0xb0, 0x78, 0x10, 0xcd, 0xe9, 0x1a, 0x8b, 0x83, 0x60, 0xe1, 0x17, 0x44, 0x0b, 0xc2, 0x41, 0xb0, 0x41, 0x2c, 0x86, 0xf0, 0x1c, 0x44, 0x5d, 0xe5, 0xcd, 0xf1, 0x78, 0xd8, 0x0d, 0x79, 0xac, 0x05, 0xc1, 0x82, 0x64, 0x20, 0x78, 0x07, 0x11, 0xac, 0x76, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x98, 0x95, 0xe4, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x1e, 0xc4, 0x9f, 0xed, 0xce, 0x71, 0xe8, 0x20, 0x69, 0x00, 0xe1, 0x38, 0x34, 0xec, 0x86, 0x86, 0x8b, 0x0b, 0x82, 0x0d, 0x22, 0x15, 0x87, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0xe0, 0xdc, 0x3b, 0x88, 0x60, 0xb5, 0x8b, 0x83, 0xc8, 0xa1, 0xe4, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x86, 0x2d, 0x79, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0xaa, 0xde, 0x41, 0x04, 0xab, 0x5d, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xf8, 0x21, 0x1b, 0xa4, 0x86, 0x9d, 0x1c, 0x1a, 0x17, 0x1d, 0x87, 0x0e, 0x92, 0x06, 0x10, 0x8e, 0x43, 0xc7, 0xa1, 0x61, 0x37, 0x58, 0xe2, 0xeb, 0xb3, 0x20, 0xd8, 0x20, 0x66, 0x25, 0x79, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0xa9, 0x38, 0x3c, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x8d, 0x8b, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0x75, 0x4c, 0x9e, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x03, 0x3f, 0x64, 0x83, 0xd4, 0xb0, 0x93, 0x83, 0xb0, 0xa7, 0x3e, 0x0e, 0x1d, 0x87, 0x0e, 0x92, 0x06, 0x10, 0x8e, 0x43, 0xc3, 0x6e, 0xb0, 0x22, 0xe5, 0x6a, 0x41, 0xb0, 0x41, 0xa4, 0xe2, 0xf0, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x86, 0x2d, 0x79, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x1a, 0x17, 0x1d, 0x24, 0x0d, 0x20, 0x1c, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0x61, 0x4b, 0x9e, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x61, 0x4f, 0x3d, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0xac, 0x63, 0xf2, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xf8, 0x21, 0x1b, 0xa4, 0x86, 0x9d, 0x1c, 0x24, 0x0d, 0x20, 0x1c, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0x61, 0x37, 0x58, 0x5e, 0x73, 0xb5, 0x20, 0xd8, 0x20, 0x66, 0x25, 0x79, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x1a, 0x17, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0xa9, 0x38, 0x3c, 0x07, 0x11, 0x31, 0xca, 0x73, 0x1c, 0x3a, 0x9c, 0x62, 0x83, 0x60, 0xe1, 0x37, 0x28, 0x17, 0x7b, 0x0e, 0x4a, 0x86, 0xa6, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x1c, 0xa7, 0xe3, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x4b, 0xb0, 0xff, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x84, 0xa1, 0xf2, 0x0c, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x42, 0x3e, 0x7b, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x48, 0x55, 0xb5, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0x8a, 0x45, 0x6e, 0x0e, 0xa9, 0x9a, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x3a, 0x78, 0xec, 0x4c, 0xc5, 0x71, 0xe8, 0x78, 0xbc, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x87, 0x5f, 0x10, 0x2d, 0xec, 0x20, 0xd8, 0x20, 0x16, 0x43, 0x78, 0x0e, 0x92, 0x29, 0x40, 0x8e, 0xc7, 0xc3, 0x6e, 0x58, 0xdf, 0xdb, 0x10, 0xc3, 0x61, 0x37, 0x34, 0x3d, 0x5f, 0x0c, 0xfc, 0xcc, 0x3c, 0x41, 0x6d, 0xd8, 0x0d, 0xed, 0xc3, 0x17, 0x03, 0x3f, 0x74, 0x3d, 0xdb, 0x1d, 0x76, 0x43, 0x4f, 0xf2, 0xc5, 0x80, 0x80, 0x9b, 0x77, 0xe3, 0x31, 0xec, 0xc2, 0x1d, 0x24, 0x6d, 0x74, 0x2c, 0x06, 0x04, 0x4e, 0xfd, 0x53, 0xa9, 0xc3, 0x29, 0x76, 0x3c, 0x5e, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x90, 0x0c, 0x08, 0xf4, 0xbe, 0x83, 0x08, 0x56, 0xbb, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0xd5, 0x0c, 0xbf, 0xf1, 0x7c, 0x1c, 0x6e, 0x10, 0x0f, 0x3f, 0x83, 0x64, 0xc8, 0x20, 0x1b, 0x66, 0x90, 0x0e, 0x3b, 0xc8, 0x07, 0xc1, 0x38, 0x88, 0x86, 0x0e, 0xc2, 0x61, 0x07, 0xd9, 0xd0, 0xe1, 0x67, 0x90, 0x0e, 0x37, 0x88, 0x06, 0xf1, 0x20, 0x1f, 0x04, 0x83, 0x70, 0x98, 0x41, 0x32, 0x0e, 0x19, 0xe4, 0xc3, 0x8d, 0x43, 0x87, 0x1f, 0xc4, 0xc3, 0x0e, 0x92, 0x41, 0x36, 0x08, 0x06, 0xe1, 0x90, 0x41, 0x34, 0xc3, 0x0c, 0xd2, 0x41, 0x30, 0xec, 0x30, 0xe3, 0xd0, 0x41, 0x36, 0xc8, 0x67, 0xb8, 0x41, 0x38, 0x64, 0x90, 0x0e, 0x92, 0xe1, 0x07, 0xd1, 0x20, 0x1e, 0x84, 0x83, 0x7c, 0x10, 0x0d, 0x33, 0x0e, 0x37, 0x08, 0x86, 0x1f, 0x76, 0xc8, 0x20, 0x1d, 0xc4, 0x33, 0x74, 0x90, 0x0c, 0xb2, 0x8e, 0x43, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x0d, 0xa2, 0x97, 0x96, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x55, 0x33, 0xfc, 0xc6, 0xf3, 0x71, 0x10, 0x0c, 0x92, 0x41, 0x32, 0xc8, 0x06, 0xe9, 0x20, 0x1f, 0xe4, 0xc3, 0x0d, 0x3f, 0xfc, 0x20, 0x18, 0x64, 0x83, 0x78, 0x10, 0x0f, 0xc2, 0x61, 0x07, 0xc9, 0x20, 0x1d, 0xe4, 0xc3, 0x0f, 0xc2, 0x41, 0x30, 0x48, 0x06, 0xd9, 0xf0, 0xc3, 0x0f, 0xc2, 0xe1, 0x87, 0x1d, 0xe4, 0x83, 0x74, 0x90, 0x0d, 0x92, 0xe1, 0x07, 0xf9, 0x20, 0x1b, 0x04, 0xc3, 0x0e, 0x3b, 0x88, 0x07, 0xe1, 0x20, 0x1d, 0x6e, 0x10, 0x0f, 0xd2, 0x41, 0x3a, 0xfc, 0x70, 0x83, 0x7c, 0xb8, 0x41, 0x30, 0xc8, 0x06, 0xf1, 0x20, 0x1e, 0x76, 0x10, 0x0f, 0x3b, 0x48, 0x06, 0xe1, 0x20, 0x19, 0x84, 0xc3, 0x0d, 0xf2, 0x41, 0x30, 0x08, 0x86, 0x1b, 0x84, 0x83, 0x64, 0x10, 0x0e, 0x37, 0x88, 0x87, 0x1d, 0x04, 0x83, 0x74, 0xd8, 0xe1, 0x06, 0xf9, 0x20, 0x1d, 0x64, 0x07, 0x71, 0xcc, 0xcb, 0x73, 0x1c, 0x3a, 0x1e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x1b, 0x44, 0x2f, 0x2d, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xaa, 0x66, 0xf8, 0x8d, 0xe7, 0xe3, 0x8c, 0x43, 0x86, 0x0e, 0x33, 0xdc, 0xb0, 0xc3, 0x0f, 0x82, 0x41, 0x32, 0x88, 0x06, 0xd9, 0x20, 0x1c, 0xa4, 0x83, 0x78, 0x90, 0x0f, 0x3f, 0xcc, 0x20, 0x1d, 0x07, 0xd1, 0xb0, 0x83, 0x7c, 0xe8, 0x20, 0x9c, 0x41, 0x32, 0xdc, 0x90, 0x41, 0x3c, 0xc8, 0x06, 0xc1, 0xd0, 0x41, 0x34, 0x88, 0x87, 0x19, 0x24, 0x83, 0x7c, 0x10, 0x8c, 0x43, 0x86, 0x9f, 0x61, 0x07, 0xe9, 0x20, 0x1b, 0x6e, 0x10, 0x8e, 0x83, 0x64, 0x90, 0x0d, 0xa2, 0x19, 0x04, 0x83, 0x70, 0x98, 0x41, 0x3a, 0x74, 0xf8, 0x41, 0x3e, 0x88, 0x87, 0x1b, 0x76, 0xc8, 0x30, 0x33, 0xdc, 0x20, 0x19, 0x7e, 0x10, 0x0e, 0x19, 0x44, 0x83, 0x78, 0x1c, 0x3a, 0x08, 0x06, 0xd9, 0xb0, 0x83, 0x7c, 0x90, 0x76, 0x1c, 0x3a, 0x1e, 0x2f, 0xec, 0xc2, 0x6d, 0x88, 0xff, 0xc1, 0xa9, 0x1c, 0x79, 0x41, 0xb0, 0x20, 0x19, 0xb8, 0x9f, 0x0e, 0xe2, 0xa2, 0xe8, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x89, 0x86, 0x33, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0xd9, 0x60, 0x90, 0xbc, 0x1c, 0xc4, 0x45, 0xd1, 0xc5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x6f, 0x10, 0x98, 0xd8, 0x1b, 0x8c, 0x37, 0x9d, 0x0d, 0x06, 0xef, 0xe4, 0x06, 0x03, 0x91, 0x7a, 0x83, 0xc2, 0x2d, 0xe9, 0x10, 0xc3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0x92, 0x81, 0x55, 0xa7, 0x83, 0x08, 0x56, 0xbb, 0x38, 0x88, 0x78, 0x44, 0x9e, 0xe3, 0xf1, 0x71, 0xe8, 0x38, 0x34, 0xfc, 0x82, 0x68, 0x41, 0xbc, 0x41, 0xe1, 0x96, 0xb4, 0xc1, 0x40, 0xa4, 0xde, 0x60, 0xf0, 0x4e, 0x6e, 0x30, 0xde, 0x74, 0x0e, 0x02, 0x13, 0x7b, 0x10, 0x2d, 0xec, 0x41, 0x6c, 0x58, 0xf3, 0x1c, 0x8f, 0x07, 0xc1, 0x86, 0x18, 0x0e, 0x82, 0xc5, 0x61, 0x17, 0x6e, 0x43, 0xea, 0xe0, 0x20, 0x4d, 0xef, 0x63, 0x41, 0x32, 0x98, 0x0d, 0xa2, 0x05, 0xca, 0xff, 0x20, 0x58, 0xf8, 0x0d, 0xce, 0x99, 0xc9, 0x07, 0x25, 0x43, 0xd3, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0x9c, 0x99, 0x3c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0xf1, 0x5b, 0x70, 0x50, 0x1e, 0x19, 0x1c, 0x87, 0x8e, 0x43, 0x83, 0x68, 0x81, 0xf1, 0x1f, 0x04, 0x1b, 0x44, 0x63, 0x36, 0xcf, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0x54, 0x8e, 0x3c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x63, 0x7d, 0x01, 0x07, 0x8d, 0x6f, 0x89, 0x1c, 0x87, 0x8e, 0x43, 0x83, 0x68, 0x81, 0xf0, 0x0f, 0x82, 0x0d, 0xa2, 0x31, 0x9b, 0x67, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x70, 0x96, 0x3d, 0x1e, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0xad, 0x78, 0xe4, 0x20, 0x48, 0xf1, 0x8f, 0x43, 0xc7, 0xa1, 0x41, 0xb4, 0xe0, 0xfe, 0x20, 0xd8, 0x20, 0x1a, 0xb3, 0x79, 0x06, 0xc1, 0xc6, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x85, 0x5b, 0xd2, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc6, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xa3, 0xd5, 0xfc, 0x60, 0x8c, 0x3d, 0x1d, 0x87, 0x8e, 0x43, 0x83, 0x68, 0x41, 0xfd, 0x20, 0xd8, 0x20, 0x1a, 0xb3, 0x79, 0x06, 0xc1, 0xc6, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xe5, 0x62, 0xcf, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc6, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x25, 0x4d, 0xc3, 0x41, 0xb2, 0x7c, 0xc9, 0x71, 0xe8, 0x38, 0x34, 0x88, 0x16, 0x94, 0x1f, 0x9c, 0xe8, 0x96, 0x0f, 0xc9, 0xa5, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xa8, 0xdf, 0x20, 0xd1, 0x5b, 0x61, 0x41, 0xb0, 0xc1, 0x39, 0xf8, 0x7b, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x55, 0xb3, 0x41, 0x90, 0xe2, 0x6f, 0x30, 0xc6, 0x9e, 0x36, 0x48, 0x96, 0x2f, 0xd9, 0xa0, 0x3c, 0x32, 0xd8, 0xa0, 0xf1, 0x2d, 0x91, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x78, 0x97, 0x48, 0xc4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x04, 0x4f, 0x84, 0x43, 0xa3, 0x96, 0xe3, 0xd0, 0xc2, 0x6f, 0x3c, 0x3f, 0x68, 0xb7, 0xc4, 0x7f, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x58, 0x69, 0xd2, 0x39, 0x34, 0x6a, 0x39, 0x0e, 0x6d, 0x10, 0xf2, 0xd9, 0x0b, 0x82, 0x0d, 0x12, 0x62, 0x00, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x9c, 0x6b, 0x8a, 0x0f, 0x92, 0xe5, 0x4b, 0x8e, 0x43, 0x07, 0x69, 0xee, 0x19, 0x83, 0x68, 0xc1, 0x7c, 0x83, 0x44, 0x4f, 0x85, 0x05, 0xc1, 0x06, 0xe7, 0xe0, 0xef, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0xc1, 0x9f, 0x83, 0x88, 0x0e, 0xe1, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x31, 0xfc, 0x39, 0xa4, 0x6a, 0x8e, 0x43, 0x1b, 0x92, 0x1d, 0x1b, 0x84, 0x7c, 0xf6, 0x06, 0x45, 0xae, 0xc2, 0x06, 0x69, 0xee, 0x19, 0x1b, 0x24, 0x7a, 0x2b, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0xbb, 0x44, 0x22, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x07, 0x11, 0x95, 0x30, 0x73, 0x1c, 0x5a, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xa4, 0xf6, 0x83, 0x43, 0xa3, 0x96, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x0e, 0xa9, 0xea, 0x87, 0x46, 0x2d, 0xc7, 0xa1, 0x0d, 0x2d, 0x80, 0x16, 0x04, 0x1b, 0x24, 0xc4, 0x00, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x38, 0xd7, 0x14, 0x1f, 0x14, 0xb9, 0x0a, 0xc7, 0xa1, 0x83, 0x64, 0x0d, 0x84, 0xc3, 0x8e, 0xc9, 0xf1, 0x6d, 0x05, 0xc1, 0x82, 0x64, 0x40, 0xb0, 0xf6, 0x1d, 0xc4, 0x45, 0xd1, 0xc5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xc1, 0x59, 0xf6, 0xf8, 0xe0, 0xc4, 0xec, 0x7b, 0x30, 0xf0, 0x43, 0x8e, 0x43, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x06, 0xd1, 0x4b, 0xcb, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xaa, 0x19, 0x7e, 0xe3, 0xf9, 0x38, 0xc8, 0x06, 0xf1, 0x20, 0x1f, 0x84, 0xc3, 0x0d, 0x82, 0xe1, 0x07, 0xc9, 0x20, 0x1b, 0xa4, 0x83, 0x78, 0x90, 0x0f, 0x3b, 0xfc, 0x20, 0x19, 0x04, 0xc3, 0x0f, 0x3b, 0x08, 0x06, 0xe9, 0x20, 0x1b, 0x24, 0xc3, 0x0f, 0xf2, 0xe1, 0x07, 0xe1, 0x20, 0x1f, 0x24, 0x83, 0x6c, 0xf8, 0x41, 0x3a, 0x08, 0x07, 0xd9, 0x20, 0x1d, 0x76, 0xf8, 0x41, 0x3c, 0x48, 0x06, 0xe9, 0x20, 0x1f, 0xc4, 0x83, 0x60, 0x90, 0x0e, 0x3b, 0xdc, 0x20, 0x1c, 0x7e, 0xb8, 0x41, 0x36, 0x08, 0x07, 0xf1, 0x20, 0x1f, 0xc4, 0x83, 0x7c, 0x90, 0x0c, 0x82, 0x41, 0x32, 0x88, 0x87, 0x1b, 0x76, 0x10, 0x0c, 0x3b, 0xdc, 0x20, 0x1c, 0x24, 0x83, 0x7c, 0xb8, 0x41, 0x36, 0xec, 0x20, 0x18, 0xa4, 0x83, 0x70, 0xb8, 0x41, 0x38, 0x48, 0x07, 0xf1, 0x20, 0x1b, 0x04, 0xc3, 0x0d, 0xdb, 0x71, 0xe8, 0x78, 0xbc, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0x4a, 0x0e, 0x22, 0x3a, 0x84, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x10, 0x1c, 0x44, 0x74, 0x08, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xd1, 0x6a, 0x7e, 0x90, 0xda, 0x01, 0x72, 0x1c, 0x3a, 0x68, 0xb2, 0xff, 0xfd, 0x38, 0x34, 0x08, 0x16, 0x24, 0x03, 0xc5, 0xe9, 0x20, 0xa2, 0x43, 0x78, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x94, 0x68, 0x38, 0x0b, 0xbf, 0xf1, 0x7c, 0x41, 0xb0, 0x41, 0x4c, 0x98, 0xf0, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x0e, 0x52, 0x78, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x44, 0xc1, 0x09, 0xcf, 0x41, 0x6a, 0x07, 0xc8, 0x71, 0xe8, 0x90, 0x3a, 0x38, 0x0e, 0x1d, 0x8e, 0xf6, 0x83, 0x34, 0xef, 0x91, 0xe3, 0xd0, 0xf1, 0x78, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0xf0, 0x1b, 0x44, 0xef, 0x2b, 0xcf, 0xb0, 0x1b, 0xd6, 0xf7, 0x16, 0x03, 0xdf, 0x7c, 0x51, 0x14, 0x1a, 0x76, 0x43, 0xd3, 0xf3, 0xc5, 0xc0, 0x27, 0x89, 0x6e, 0xe2, 0x86, 0xdd, 0xd0, 0x3e, 0x7c, 0x31, 0xf0, 0xe7, 0x7d, 0xe0, 0xda, 0x61, 0x37, 0xf4, 0x24, 0x5f, 0x0c, 0xfc, 0x74, 0xbb, 0x36, 0x7d, 0xd8, 0x0d, 0x62, 0x68, 0x96, 0xe7, 0xd0, 0x38, 0xea, 0x78, 0x7c, 0x70, 0x5a, 0xc1, 0x3d, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0x34, 0xe4, 0xd2, 0xe0, 0xca, 0xda, 0xc8, 0x62, 0x6c, 0xe0, 0x21, 0xb5, 0x74, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0x7c, 0x72, 0x69, 0x70, 0x65, 0x6d, 0xe4, 0xc1, 0x9a, 0xf0, 0x9d, 0xe3, 0xf1, 0xc2, 0xaf, 0x61, 0x85, 0x76, 0xe1, 0x17, 0x7e, 0x41, 0x32, 0x50, 0xbc, 0x8e, 0xe7, 0x07, 0x87, 0x77, 0xda, 0x83, 0x34, 0xee, 0x93, 0xe1, 0x17, 0x7e, 0x83, 0xe7, 0xbd, 0x02, 0x1c, 0x1c, 0x68, 0x6e, 0x0f, 0xd6, 0xf2, 0x09, 0x0c, 0x82, 0xc5, 0x05, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0x58, 0x41, 0xb0, 0x20, 0x19, 0x10, 0xbe, 0x3b, 0x87, 0x46, 0x47, 0x07, 0xe9, 0xcf, 0x44, 0x83, 0x60, 0x83, 0x78, 0xc8, 0xe8, 0x39, 0x18, 0x55, 0xd8, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x05, 0xc1, 0xe2, 0x82, 0x60, 0x83, 0x47, 0x88, 0x0f, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0x35, 0xec, 0xe4, 0xe0, 0xb9, 0x36, 0x01, 0xc7, 0xa1, 0x15, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x7e, 0x83, 0x73, 0xf0, 0xf7, 0x41, 0xfa, 0x6f, 0xc3, 0xa1, 0x51, 0xcb, 0xf1, 0x78, 0x85, 0xdf, 0xa0, 0x64, 0x68, 0x3a, 0x88, 0xcd, 0xef, 0x9a, 0x15, 0x7e, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0x08, 0x16, 0x7e, 0x83, 0x73, 0xf0, 0xf7, 0x20, 0x19, 0x18, 0xad, 0xe3, 0xf1, 0x21, 0xd1, 0x7a, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x1b, 0x84, 0x7e, 0xc9, 0x21, 0xb5, 0x74, 0x3c, 0x1e, 0x7e, 0x83, 0x92, 0xa1, 0x69, 0x90, 0x0c, 0xcc, 0xd6, 0xf1, 0x78, 0xf8, 0x05, 0xc1, 0x06, 0xcb, 0xc2, 0x60, 0x16, 0x87, 0x5d, 0x10, 0x2c, 0x48, 0x06, 0x82, 0x72, 0x90, 0x7e, 0x9f, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xd0, 0x43, 0xe8, 0x60, 0x28, 0x16, 0x1d, 0x87, 0x16, 0x04, 0x1b, 0x9c, 0x83, 0xbf, 0x87, 0x5d, 0x10, 0x2c, 0x48, 0x06, 0xa3, 0xe3, 0xd0, 0x61, 0xa3, 0x76, 0x61, 0x17, 0x04, 0x0b, 0x92, 0x81, 0xe8, 0x1d, 0x87, 0x0e, 0x0e, 0xa0, 0xe9, 0x0b, 0xbb, 0x20, 0xd8, 0x20, 0xae, 0x49, 0x7a, 0x06, 0xc9, 0x90, 0x83, 0x17, 0x56, 0x59, 0x2c, 0x08, 0x16, 0x76, 0x41, 0xb0, 0x20, 0x19, 0xd4, 0x1c, 0x3c, 0x16, 0x6b, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xa1, 0x05, 0xd0, 0xa1, 0xf1, 0xfc, 0x71, 0x68, 0x41, 0xb0, 0x20, 0x19, 0x94, 0x1c, 0x3c, 0x16, 0x6b, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xa1, 0xe9, 0xd0, 0x04, 0xf5, 0xf5, 0x38, 0x74, 0x68, 0x5c, 0x34, 0x08, 0x16, 0x24, 0x83, 0xd9, 0x21, 0x75, 0x30, 0x08, 0xd6, 0x20, 0x2a, 0xcf, 0x72, 0x36, 0x48, 0x3f, 0x1b, 0x1a, 0x24, 0x83, 0x6b, 0xc7, 0xa1, 0x41, 0xb0, 0x20, 0xd8, 0x20, 0xa4, 0xc0, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x30, 0x58, 0x63, 0x0f, 0xd2, 0xe1, 0x20, 0x26, 0x48, 0xd7, 0x1f, 0x87, 0x06, 0xc1, 0x82, 0x60, 0x83, 0xa0, 0xf4, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x78, 0xdf, 0x69, 0x02, 0xe1, 0xfb, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x48, 0xd1, 0x0e, 0xbf, 0xf1, 0x7c, 0x98, 0x83, 0xb7, 0x1b, 0x44, 0x1c, 0x87, 0x0e, 0xa9, 0x83, 0xe3, 0xd0, 0x20, 0x58, 0xd8, 0x85, 0x5b, 0x10, 0x2c, 0x48, 0x06, 0xfa, 0x3a, 0x4d, 0x60, 0x7c, 0xff, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xf8, 0x21, 0x07, 0x27, 0x8a, 0xe8, 0xe3, 0xd0, 0x20, 0xd8, 0x20, 0xf6, 0x61, 0x7a, 0x0e, 0x06, 0x35, 0xf0, 0xc6, 0xa1, 0x41, 0xb0, 0x20, 0x19, 0xfc, 0x99, 0x40, 0xf9, 0xfd, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x09, 0xee, 0xd8, 0x21, 0x75, 0x70, 0x1c, 0x1a, 0x76, 0xe1, 0x36, 0xc4, 0x70, 0x10, 0x2c, 0x48, 0x06, 0xe2, 0x76, 0x10, 0x98, 0xd8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x7b, 0x85, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x5a, 0x00, 0x1d, 0x8c, 0xf6, 0xe0, 0xe3, 0xd0, 0x82, 0x60, 0x41, 0xb0, 0x20, 0x19, 0xfc, 0x99, 0xc0, 0xf9, 0xfd, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x04, 0xc2, 0xd7, 0xff, 0xa0, 0xf1, 0x14, 0x96, 0xe3, 0xd0, 0x20, 0x58, 0x90, 0x0c, 0xea, 0x0e, 0x06, 0x22, 0xf5, 0x20, 0x58, 0x10, 0x6c, 0x10, 0x95, 0x67, 0x39, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x83, 0xd5, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0x81, 0xe2, 0xf5, 0xff, 0x38, 0x74, 0x48, 0xd5, 0x1c, 0x87, 0x06, 0xc1, 0x82, 0x60, 0x41, 0x72, 0x58, 0x3e, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0xac, 0x0e, 0xa9, 0x83, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x67, 0xd9, 0xe3, 0x83, 0xc0, 0xc4, 0x3e, 0x0e, 0x1d, 0x94, 0xd2, 0x3d, 0xc7, 0xa1, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0x46, 0x87, 0x54, 0xcd, 0xc1, 0xe0, 0xf4, 0x19, 0x04, 0x0b, 0x82, 0x05, 0xc9, 0xc1, 0x38, 0x83, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0x1d, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0xfc, 0x82, 0x64, 0x20, 0x78, 0x07, 0xe7, 0xcc, 0xe4, 0x83, 0x17, 0x9f, 0x13, 0x1c, 0xc4, 0x73, 0x38, 0xce, 0x71, 0x68, 0x10, 0x2c, 0x08, 0x36, 0x88, 0xd4, 0x8d, 0x9d, 0x83, 0x81, 0x2d, 0x3a, 0xec, 0xc2, 0x6d, 0x48, 0x4c, 0x1d, 0x87, 0x36, 0x9c, 0x62, 0xc7, 0xa1, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0x38, 0xe0, 0xcb, 0x95, 0x8d, 0xbd, 0x87, 0xd4, 0xd2, 0xf1, 0x78, 0xe1, 0x37, 0x28, 0x19, 0x9a, 0x0e, 0x0e, 0xbf, 0xb6, 0xc3, 0x2f, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0x06, 0xe7, 0xe0, 0xef, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0xc4, 0xeb, 0x38, 0x74, 0x30, 0x42, 0xc2, 0x06, 0xc1, 0x1a, 0x84, 0x14, 0xf8, 0xc1, 0x60, 0x8d, 0x1d, 0x04, 0x0b, 0x82, 0x05, 0xc9, 0xa0, 0x66, 0x82, 0xff, 0xfd, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0xc1, 0x41, 0xb4, 0x24, 0xf5, 0x1c, 0x34, 0xd3, 0xa9, 0x34, 0x41, 0x7e, 0xfd, 0x38, 0x34, 0xfc, 0x82, 0x68, 0x41, 0xf5, 0xb0, 0x1b, 0x87, 0x16, 0x04, 0x0b, 0x92, 0xc1, 0x9f, 0x09, 0x84, 0xdf, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x09, 0xf6, 0xeb, 0x0f, 0x2d, 0x80, 0x8e, 0x43, 0x87, 0x1e, 0x42, 0xc7, 0xe3, 0xe1, 0x17, 0x44, 0x0b, 0x3b, 0xec, 0xc6, 0xa1, 0x35, 0x44, 0x73, 0x10, 0x6c, 0x10, 0xd7, 0x4b, 0x3d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xde, 0x6e, 0x10, 0x71, 0xc8, 0xd7, 0x1e, 0x87, 0x0e, 0xa9, 0x83, 0xe3, 0xf1, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x06, 0xfa, 0x3a, 0x1d, 0xb4, 0x8b, 0xa5, 0x74, 0x30, 0xaa, 0xb0, 0x87, 0x5f, 0x10, 0x2d, 0x64, 0xd8, 0x05, 0xc1, 0x82, 0x64, 0x50, 0x33, 0x81, 0xf1, 0xfb, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x10, 0xff, 0x09, 0xfa, 0xeb, 0x1f, 0x87, 0x16, 0x04, 0x0b, 0x92, 0x41, 0xc9, 0x41, 0x2c, 0x46, 0xf5, 0x1c, 0xc4, 0xbe, 0xb3, 0xcc, 0x71, 0xe8, 0x78, 0xbc, 0x71, 0x68, 0x43, 0xd6, 0xee, 0xd0, 0x02, 0xe8, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x37, 0x78, 0x55, 0x9a, 0xe2, 0x21, 0xb5, 0x74, 0x3c, 0x5e, 0xf8, 0x0d, 0x4a, 0x86, 0xa6, 0x83, 0x92, 0xa1, 0x69, 0xe1, 0x17, 0x04, 0x8b, 0x0b, 0x82, 0x0d, 0x46, 0xfe, 0xc3, 0xe2, 0x20, 0x58, 0x10, 0x2c, 0xfc, 0x82, 0x64, 0x60, 0xec, 0x0e, 0x1a, 0xdf, 0x12, 0x39, 0x58, 0xcb, 0x27, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0xa4, 0x9d, 0x0e, 0x9a, 0x2a, 0x38, 0x39, 0x48, 0x1d, 0xdb, 0x39, 0x0e, 0x0d, 0x82, 0x85, 0x5f, 0x90, 0x0c, 0x8c, 0xdd, 0x41, 0x5a, 0xf1, 0xc8, 0x41, 0xc9, 0xd0, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x82, 0x60, 0x41, 0x32, 0x28, 0x39, 0x68, 0x2a, 0x55, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0xc2, 0xed, 0xc9, 0xa1, 0x05, 0xd0, 0x71, 0x68, 0x10, 0x2c, 0x48, 0x06, 0x84, 0xbf, 0xd3, 0x41, 0xe3, 0x91, 0x01, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0x62, 0xd1, 0xf0, 0x1b, 0xcf, 0x37, 0x38, 0xf3, 0xd5, 0xae, 0x41, 0x42, 0xd9, 0xc9, 0x71, 0x68, 0x83, 0xd8, 0xf1, 0xea, 0x39, 0xc4, 0xf0, 0x38, 0x74, 0x1c, 0x3a, 0x1e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x1b, 0x0c, 0xee, 0xca, 0x61, 0x17, 0x04, 0x0b, 0x92, 0x81, 0xfc, 0xca, 0x41, 0x53, 0xa9, 0x22, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x7b, 0x85, 0x87, 0x1e, 0x3b, 0xc7, 0xa1, 0x05, 0xc1, 0x82, 0x64, 0x30, 0x3b, 0x0e, 0x0d, 0x82, 0x35, 0x88, 0xca, 0xb3, 0x9c, 0x83, 0xc8, 0x57, 0xe9, 0x19, 0x04, 0x0b, 0x82, 0x0d, 0x42, 0x0a, 0x7c, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x21, 0x00, 0x7e, 0x90, 0x48, 0x11, 0x72, 0x30, 0xae, 0xd1, 0x8f, 0x43, 0x83, 0x60, 0x41, 0xb0, 0x61, 0x5c, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0x6f, 0x2e, 0x3d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0x14, 0xed, 0xf0, 0x1b, 0xcf, 0x87, 0x39, 0x78, 0x53, 0x0d, 0xc5, 0x71, 0xe8, 0x90, 0x3a, 0x38, 0x0e, 0x0d, 0xbb, 0x70, 0x1b, 0x52, 0x07, 0x83, 0x60, 0x43, 0xbe, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xa1, 0xf1, 0xfc, 0x21, 0x75, 0x70, 0x1c, 0x5a, 0x10, 0x2c, 0x48, 0x06, 0xd6, 0xeb, 0x0e, 0xe2, 0x28, 0xa6, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x0d, 0x06, 0xef, 0xe4, 0xb0, 0x0b, 0xb7, 0x21, 0x86, 0x83, 0x60, 0x41, 0x32, 0x10, 0x9d, 0x83, 0xc8, 0x9c, 0xe9, 0x39, 0x88, 0x7d, 0x67, 0x99, 0x8d, 0x43, 0x83, 0x60, 0x83, 0xf8, 0x9a, 0xe9, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xd0, 0xe6, 0x39, 0xd4, 0x21, 0x75, 0x70, 0x1c, 0x3a, 0x0e, 0x1d, 0x62, 0x78, 0x88, 0xe1, 0xf1, 0x78, 0x71, 0xe1, 0x17, 0x04, 0x1b, 0x8c, 0xfc, 0x87, 0xc5, 0x61, 0x17, 0x04, 0x0b, 0x92, 0x41, 0xcd, 0x41, 0x53, 0xa9, 0x22, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x52, 0xc3, 0x4e, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0x6d, 0x9d, 0x0e, 0x1a, 0x8f, 0x0c, 0x38, 0x48, 0x1d, 0xdb, 0x39, 0x0e, 0x2d, 0xec, 0x82, 0x60, 0x83, 0xb8, 0x76, 0xeb, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x90, 0x1a, 0x76, 0x32, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x24, 0xc1, 0xf5, 0x1c, 0xac, 0x78, 0xb0, 0x39, 0x0e, 0x2d, 0xec, 0x82, 0x60, 0x83, 0xb8, 0x76, 0xeb, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x90, 0x70, 0x7b, 0x32, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x24, 0xc1, 0xf5, 0x1c, 0x94, 0x9c, 0x39, 0xc7, 0xa1, 0x05, 0xc1, 0x06, 0xe7, 0x80, 0xef, 0x41, 0xb0, 0x20, 0xd8, 0x60, 0x71, 0xaa, 0xd8, 0x61, 0xa3, 0x76, 0xd8, 0x0d, 0x46, 0xbd, 0xe4, 0x86, 0xa3, 0x7d, 0x10, 0x6c, 0x10, 0x02, 0xe0, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x28, 0x4e, 0x07, 0xd1, 0xeb, 0xd2, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0x40, 0xc4, 0xbf, 0xc1, 0x68, 0x4e, 0x3a, 0x18, 0x03, 0x0b, 0xc7, 0xa1, 0x61, 0x17, 0x04, 0x0b, 0x92, 0x41, 0xcd, 0x41, 0x64, 0xce, 0xf4, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xa4, 0x0e, 0x0e, 0xde, 0x6e, 0x10, 0x71, 0x1c, 0xda, 0x70, 0xb4, 0x0f, 0x82, 0x05, 0xc1, 0x06, 0xb1, 0x0f, 0xd3, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0x40, 0xc4, 0x7f, 0x50, 0x8e, 0x35, 0x1c, 0x87, 0x86, 0x5d, 0x10, 0x2c, 0x48, 0x06, 0x35, 0x07, 0x91, 0x79, 0xd3, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0x3a, 0x38, 0x88, 0x28, 0xa9, 0x9e, 0xe3, 0xd0, 0x86, 0xa3, 0x7d, 0x10, 0x2c, 0x08, 0x16, 0x24, 0x03, 0xd1, 0x39, 0x88, 0xcc, 0x9b, 0x9e, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x17, 0x04, 0x1b, 0xbc, 0x50, 0x12, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0xc7, 0x00, 0x1e, 0x84, 0x92, 0xa0, 0x60, 0x66, 0x68, 0x60, 0x5e, 0xc6, 0xd0, 0xc2, 0xd8, 0xd8, 0xca, 0xdc, 0xce, 0xca, 0xe1, 0x37, 0x9e, 0x6f, 0xb0, 0xe4, 0x15, 0x67, 0x10, 0x2c, 0x48, 0x06, 0xee, 0xa7, 0x09, 0x94, 0xef, 0xff, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x0e, 0x44, 0xfc, 0xc3, 0x6f, 0x3c, 0xdf, 0xa0, 0xa4, 0x69, 0xd8, 0x90, 0xb5, 0x3b, 0x28, 0x16, 0xc9, 0x8e, 0x43, 0xc7, 0xa1, 0x83, 0x88, 0x65, 0xea, 0x39, 0x0e, 0x0d, 0x82, 0x05, 0xc1, 0x06, 0xcb, 0x13, 0x83, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x4b, 0xf0, 0x5e, 0xff, 0x21, 0x55, 0x73, 0x1c, 0x1a, 0x04, 0x0b, 0x82, 0x0d, 0xde, 0x0c, 0x42, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xbc, 0xe9, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0x7f, 0x26, 0xb0, 0x7e, 0xff, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0xfc, 0xe0, 0xf4, 0x1c, 0x52, 0x35, 0xc7, 0xa1, 0xe3, 0xd0, 0xb0, 0x0b, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0x10, 0x52, 0xe0, 0x0b, 0xbb, 0xb0, 0x1b, 0x2c, 0x3f, 0x15, 0x3a, 0xac, 0x6f, 0x1e, 0xd2, 0xb9, 0x87, 0xa3, 0x7d, 0xc3, 0xd1, 0x3e, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x81, 0xa9, 0x3a, 0x38, 0x66, 0x15, 0x1f, 0x0c, 0x4e, 0x9f, 0x61, 0x17, 0x6e, 0x43, 0x0c, 0x07, 0xc1, 0x82, 0x64, 0x20, 0x3a, 0x13, 0x78, 0xbf, 0xff, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xc3, 0xb8, 0x1c, 0x1a, 0xcf, 0x1f, 0x87, 0x16, 0x6e, 0x83, 0xf1, 0xa6, 0x73, 0x10, 0x52, 0xe0, 0x87, 0xa3, 0xfd, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0x76, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0xfe, 0xdc, 0x9b, 0x5d, 0x79, 0x48, 0x2d, 0x1d, 0x8f, 0x87, 0x5f, 0x10, 0x6c, 0x30, 0xf2, 0x1f, 0x16, 0x87, 0xdd, 0x20, 0xa6, 0xe2, 0x7a, 0x16, 0x76, 0x41, 0xb0, 0x41, 0x5c, 0xbb, 0xf5, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x48, 0x0d, 0x3b, 0x39, 0x88, 0x3d, 0xba, 0x9e, 0xe3, 0xd0, 0x82, 0x60, 0x83, 0x73, 0xc0, 0xf7, 0xb0, 0x0b, 0xbb, 0x61, 0x2d, 0x74, 0x43, 0x0c, 0x87, 0x5d, 0x10, 0x6c, 0x10, 0xf5, 0x48, 0x3d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xf1, 0x3f, 0x88, 0xa7, 0x94, 0x9e, 0xe3, 0xd0, 0x21, 0x9d, 0xbb, 0xe1, 0x14, 0x1b, 0x04, 0x0b, 0x82, 0x0d, 0xd6, 0x47, 0x3a, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x97, 0xa0, 0xbc, 0x1e, 0xe2, 0x7f, 0x1c, 0x1a, 0x04, 0x0b, 0xbb, 0x70, 0x1b, 0x62, 0x38, 0x08, 0x16, 0x24, 0x03, 0xd1, 0x39, 0x88, 0x08, 0xa6, 0x9e, 0x83, 0xf8, 0x6b, 0xec, 0xd9, 0x10, 0xff, 0x41, 0xb0, 0x41, 0x5c, 0x2f, 0xf5, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x97, 0xe0, 0xbe, 0x3e, 0x24, 0x3b, 0x8e, 0x43, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x08, 0xde, 0x41, 0xf4, 0xba, 0xf4, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xa4, 0x0e, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x18, 0xc1, 0xa7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x06, 0x78, 0x09, 0x25, 0x41, 0xc1, 0xcc, 0xd0, 0xc0, 0xbc, 0x84, 0xd5, 0xe1, 0xc3, 0x6f, 0x3c, 0xdf, 0x20, 0xa1, 0xec, 0xe4, 0x20, 0x78, 0xb8, 0x8f, 0x43, 0xc7, 0xa1, 0x41, 0xb0, 0x20, 0xd8, 0xe0, 0xa5, 0x73, 0x36, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x06, 0x78, 0x0a, 0x25, 0x41, 0xc1, 0xcc, 0xd0, 0xc0, 0xbc, 0xb8, 0xbd, 0xb9, 0x8d, 0x95, 0xc3, 0x6f, 0x3c, 0xdf, 0x60, 0xc9, 0x2b, 0xce, 0x20, 0x58, 0x90, 0x0c, 0xdc, 0x4f, 0x07, 0x71, 0x14, 0xd3, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0x40, 0xc4, 0x3f, 0xfc, 0xc6, 0xf3, 0x0d, 0xc6, 0xd8, 0xd3, 0x86, 0xac, 0xdd, 0xc1, 0xb9, 0x10, 0xfb, 0x38, 0x74, 0x1c, 0x1a, 0x04, 0x0b, 0x82, 0x0d, 0x22, 0xd7, 0xaf, 0xe7, 0x20, 0xb6, 0xfa, 0x7a, 0x86, 0xdd, 0x60, 0xd4, 0x4b, 0x6e, 0x38, 0xc5, 0x06, 0xc1, 0x82, 0x60, 0x83, 0xe5, 0x89, 0x41, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xe2, 0xc6, 0xb0, 0xe7, 0x90, 0x3a, 0x38, 0x0e, 0x0d, 0x82, 0x85, 0x5d, 0xb8, 0x0d, 0x31, 0x1c, 0x04, 0x0b, 0x92, 0x81, 0xe8, 0x1c, 0x44, 0x19, 0x62, 0xcf, 0x41, 0xfc, 0x35, 0xf6, 0x6c, 0x48, 0x1d, 0x1c, 0x44, 0x03, 0x62, 0xcf, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x06, 0xa2, 0x33, 0x81, 0xf6, 0xfb, 0xff, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x5f, 0x10, 0x2c, 0x48, 0x86, 0x39, 0x38, 0x09, 0x1d, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x88, 0x4f, 0xc0, 0x9e, 0xe1, 0x37, 0x9e, 0x6f, 0xb0, 0xe4, 0x15, 0x67, 0x10, 0x2c, 0x48, 0x06, 0xee, 0xa7, 0x09, 0xac, 0xef, 0xff, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x70, 0x20, 0xe2, 0x1f, 0x7e, 0xe3, 0xf9, 0x06, 0x69, 0x17, 0x0c, 0x1b, 0x8c, 0x56, 0xf3, 0x43, 0x0b, 0xc9, 0xe3, 0xd0, 0x71, 0xe8, 0x20, 0x7e, 0x70, 0x7a, 0x8e, 0x43, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x08, 0xd3, 0x04, 0xda, 0xf7, 0xff, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x70, 0x20, 0xe2, 0x5f, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x98, 0x67, 0xec, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x94, 0x1c, 0xc4, 0x4c, 0x63, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xaa, 0x66, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x08, 0x0e, 0x62, 0xa6, 0xb1, 0xe7, 0x20, 0x6a, 0x32, 0x70, 0x8e, 0x43, 0x13, 0x28, 0x5f, 0xff, 0x8f, 0x43, 0x87, 0xf8, 0x1f, 0x87, 0x86, 0x5d, 0x10, 0x2c, 0x48, 0x86, 0x39, 0x38, 0x66, 0x15, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x68, 0x3c, 0x85, 0x65, 0x83, 0x42, 0x22, 0xe9, 0x90, 0x3a, 0x38, 0x0e, 0x1d, 0x8c, 0x85, 0xd1, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xc0, 0x9f, 0x7b, 0x9b, 0x4b, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0xf0, 0xce, 0x8d, 0xa1, 0xb9, 0xbd, 0xc9, 0xc9, 0x87, 0xd4, 0xd2, 0xf1, 0x78, 0x71, 0x00, 0x04, 0x78, 0xe1, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xf0, 0x0b, 0xc0, 0x3f, 0xe6, 0x05, 0xbe, 0xc5, 0x56, 0xa0, 0x7c, 0x56, 0x36, 0x8a, 0x73, 0xcb, 0x36, 0xff, 0xa6, 0xc0, 0xc1, 0xc2, 0xa1, 0x73, 0xa5, 0x18, 0x68, 0x15, 0xeb, 0x2e, 0x77, 0xbe, 0x9f, 0x99, 0x6f, 0x1e, 0xc0, 0x3f, 0x2e, 0x35, 0xc4, 0xfe, 0x23, 0xf4, 0x11, 0x67, 0x06, 0x55, 0xa1, 0x29, 0x12, 0xed, 0x45, 0x3f, 0x2a, 0x42, 0x84, 0x03, 0xff, 0x3e, 0x69, 0x57, 0x19, 0xf1, 0xa8, 0xc9, 0x9d, 0xb6, 0x0e, 0x12, 0x80, 0x00, 0x41, 0x41, 0x36, 0xd0, 0x8c, 0x5e, 0xd2, 0xbf, 0x3b, 0xa0, 0x48, 0xaf, 0xe6, 0xdc, 0xae, 0xba, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0x37, 0x28, 0x19, 0x9a, 0x0e, 0xde, 0x9b, 0x16, 0x30, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x07, 0xd0, 0x98, 0x2b, 0x1b, 0x83, 0x93, 0xa9, 0xb1, 0x59, 0x8b, 0x87, 0xab, 0xeb, 0x78, 0xbc, 0x20, 0xd8, 0x60, 0xe4, 0x3f, 0x2c, 0x0e, 0x82, 0x35, 0x88, 0x78, 0x8c, 0x9e, 0x05, 0xc1, 0x06, 0xf1, 0x90, 0xd1, 0x73, 0xb0, 0x06, 0x94, 0x69, 0x10, 0x6c, 0x10, 0x0f, 0x19, 0x3d, 0x07, 0xc7, 0xec, 0xde, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x60, 0x71, 0x0e, 0x5e, 0x65, 0xb4, 0xb5, 0xb8, 0x20, 0xd8, 0xa0, 0xa0, 0x16, 0x5b, 0x1c, 0x04, 0x1b, 0x0c, 0xce, 0xc7, 0x41, 0xb0, 0x41, 0x4c, 0x87, 0xf5, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0xca, 0xb3, 0x9c, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x44, 0xaa, 0x4e, 0xcf, 0x61, 0xa3, 0xf6, 0xb0, 0xf6, 0x7b, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x57, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x90, 0x0c, 0x04, 0xe5, 0xe0, 0xb1, 0x58, 0x13, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0x6d, 0x9d, 0x0e, 0x9a, 0x2a, 0x38, 0x39, 0x48, 0xf1, 0x73, 0x38, 0x24, 0x3b, 0x8e, 0x43, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xbb, 0x20, 0xd8, 0x20, 0xbd, 0x30, 0xe1, 0xd0, 0xa8, 0x65, 0x41, 0xb0, 0xc1, 0x39, 0xf8, 0x7b, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x62, 0x7c, 0xc6, 0x21, 0x55, 0x73, 0x1c, 0x3a, 0x9c, 0x62, 0xc7, 0xe3, 0x15, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x41, 0x32, 0x20, 0xfc, 0x9d, 0x0e, 0x9a, 0x2a, 0x38, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x14, 0x8b, 0x86, 0xdf, 0x78, 0xbe, 0xc1, 0x1b, 0x81, 0x05, 0xd6, 0x70, 0xb4, 0x0f, 0x82, 0x0d, 0xe2, 0x07, 0xa5, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xa1, 0xf1, 0xfc, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0xa0, 0x38, 0x1d, 0x34, 0x55, 0x70, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xe0, 0x87, 0x6c, 0x30, 0xde, 0x90, 0x0e, 0xf9, 0xda, 0xe3, 0xd0, 0x71, 0xe8, 0x10, 0xc3, 0xe3, 0xd0, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0xec, 0x82, 0x60, 0x83, 0xf4, 0xc2, 0x84, 0x43, 0x07, 0x8d, 0x85, 0x5d, 0x10, 0x6c, 0xb0, 0x0c, 0x5e, 0xe0, 0x90, 0x86, 0x5b, 0x10, 0x2c, 0x08, 0x16, 0x24, 0x03, 0x65, 0xe9, 0xa0, 0xa9, 0x82, 0x93, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x43, 0xb1, 0x68, 0x43, 0xb2, 0xe3, 0x60, 0x6c, 0xb8, 0x1e, 0x87, 0x06, 0xc1, 0x86, 0x18, 0x0e, 0xbf, 0x20, 0x5a, 0xc8, 0x20, 0xd8, 0xa0, 0x70, 0x4b, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x0d, 0x82, 0x14, 0xff, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0xf0, 0x8f, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0x84, 0xbf, 0xd3, 0x41, 0x53, 0x7b, 0x50, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0x62, 0xd1, 0xf0, 0x1b, 0xcf, 0x37, 0x18, 0xf9, 0xef, 0x6b, 0x10, 0xa4, 0xf8, 0x87, 0xb5, 0xdf, 0x0d, 0x06, 0x2b, 0xca, 0x06, 0x4f, 0x8d, 0x08, 0x38, 0xc4, 0xf0, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x87, 0x5f, 0x10, 0x2d, 0xec, 0x20, 0xd8, 0xa0, 0x70, 0x4b, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x10, 0xab, 0xd9, 0x3d, 0xc3, 0x6f, 0x3c, 0x3f, 0x78, 0x6a, 0x44, 0xc0, 0x71, 0xe8, 0x78, 0x3c, 0xfc, 0x82, 0x68, 0x21, 0x83, 0x60, 0x83, 0xc2, 0x2d, 0x69, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0xac, 0x66, 0xf7, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x30, 0xfc, 0x63, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xc4, 0xde, 0x76, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa1, 0x58, 0x34, 0xfc, 0xc6, 0xf3, 0x0d, 0x46, 0xfe, 0xfb, 0x06, 0x71, 0xd2, 0xdd, 0xb3, 0xe1, 0x5c, 0x3f, 0x88, 0xe7, 0xee, 0x9e, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x1e, 0x7e, 0x83, 0x68, 0xf6, 0xee, 0x39, 0x88, 0x7f, 0xef, 0x9e, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x8e, 0xc7, 0x83, 0x60, 0x83, 0x73, 0x64, 0xef, 0xe2, 0x20, 0xd8, 0x60, 0x70, 0x3e, 0x0e, 0x82, 0x0d, 0x62, 0x3a, 0xac, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x6c, 0x90, 0xf4, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x88, 0x11, 0xe4, 0x9e, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x22, 0x55, 0xa7, 0xe7, 0xb0, 0xc7, 0x7b, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x83, 0x88, 0x7b, 0xee, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x14, 0x8b, 0x86, 0xdf, 0x78, 0xbe, 0x41, 0xab, 0x9f, 0x2a, 0x1b, 0xbc, 0x11, 0x58, 0x60, 0xdc, 0xa0, 0x8c, 0xdb, 0xe9, 0x38, 0x74, 0x3c, 0x1e, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x18, 0xad, 0x43, 0x72, 0xe9, 0x90, 0x68, 0x1d, 0x04, 0x0b, 0x82, 0x0d, 0xc2, 0x5c, 0xfd, 0x60, 0x60, 0x8b, 0x0e, 0xbf, 0xf1, 0x78, 0xd8, 0x0d, 0x16, 0xc0, 0xfa, 0x6c, 0x38, 0xc5, 0x06, 0xc1, 0x06, 0xc3, 0x77, 0x78, 0x10, 0xac, 0x41, 0x54, 0x9e, 0xe5, 0x6c, 0x90, 0x7e, 0x36, 0x34, 0x48, 0x06, 0xc2, 0x76, 0x1c, 0x1a, 0x04, 0x0b, 0x82, 0x0d, 0x82, 0x2c, 0x7e, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x83, 0x35, 0xf6, 0x60, 0x7c, 0x18, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0x52, 0xe0, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x46, 0xab, 0xf9, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x41, 0x16, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x10, 0xff, 0x83, 0x61, 0x0c, 0x7b, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x86, 0xdd, 0x60, 0xd4, 0x4b, 0x6e, 0x38, 0xc5, 0x36, 0xc4, 0xff, 0xa0, 0x75, 0x7f, 0x98, 0xe3, 0xf1, 0x82, 0x60, 0x41, 0x32, 0x30, 0x7f, 0x07, 0x89, 0x9e, 0x0a, 0x87, 0x56, 0x41, 0x2b, 0x2e, 0x08, 0x36, 0x78, 0xa0, 0xf6, 0xc2, 0xe2, 0xb0, 0x1b, 0x34, 0xf0, 0xac, 0xb2, 0x78, 0x70, 0x8c, 0x7e, 0x1f, 0x76, 0xc3, 0xae, 0xc1, 0x06, 0xf1, 0x8c, 0xdf, 0x33, 0xec, 0x86, 0x47, 0x00, 0x36, 0x44, 0x73, 0xd8, 0x05, 0xc1, 0x06, 0x71, 0xed, 0xd6, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xaf, 0x3d, 0x68, 0xaa, 0xe0, 0xe4, 0x38, 0xb4, 0x20, 0x19, 0x32, 0x88, 0x16, 0xa4, 0x83, 0x60, 0x41, 0x32, 0x10, 0x9d, 0x83, 0xa6, 0x52, 0x45, 0x0e, 0x62, 0x53, 0xbf, 0xe7, 0x78, 0x3c, 0xec, 0xc2, 0x6d, 0x88, 0xe1, 0x20, 0xd8, 0x20, 0x22, 0xf8, 0x7b, 0x0e, 0x3f, 0x2a, 0x2c, 0x08, 0x36, 0x48, 0x77, 0xdf, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xd2, 0x41, 0xb0, 0x20, 0x19, 0x78, 0xdf, 0xe9, 0xa0, 0xf1, 0xc8, 0x80, 0x83, 0x51, 0x85, 0x7d, 0x3c, 0x3e, 0x0e, 0x0d, 0x82, 0x0d, 0x96, 0xc1, 0x0b, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x64, 0xed, 0x86, 0xdf, 0x78, 0x7e, 0x10, 0xeb, 0xfd, 0x3d, 0xc7, 0xa1, 0xe3, 0xf1, 0x0a, 0x82, 0xc5, 0x0d, 0x02, 0xe0, 0xfe, 0x20, 0x00, 0xee, 0x17, 0x87, 0xdd, 0xa0, 0x81, 0x67, 0x95, 0x0d, 0xe3, 0x32, 0xec, 0x06, 0x2d, 0x4e, 0xc1, 0x6c, 0x88, 0xe6, 0x20, 0xd8, 0xe0, 0x84, 0x89, 0x3e, 0x08, 0xd6, 0x20, 0x2a, 0xcf, 0x72, 0x16, 0x24, 0x03, 0x71, 0x3b, 0x0e, 0x1d, 0x44, 0xad, 0x4a, 0xcf, 0x20, 0x58, 0x10, 0x6c, 0x10, 0xb8, 0xf1, 0x83, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x22, 0x6c, 0x62, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x86, 0x7d, 0x46, 0x0e, 0x1a, 0xf6, 0x19, 0x39, 0x0e, 0x1d, 0x87, 0x06, 0xc1, 0x82, 0x60, 0x43, 0x27, 0xb5, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x49, 0xd3, 0x30, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0xb3, 0x16, 0x45, 0x07, 0xcd, 0x5a, 0x14, 0x1d, 0x87, 0x8e, 0x43, 0x83, 0x60, 0x41, 0xb0, 0xa1, 0x71, 0xd1, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0x65, 0x4d, 0x60, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xc5, 0xaf, 0x63, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x2c, 0x7e, 0x1d, 0x3b, 0x58, 0xfc, 0x3a, 0x76, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x06, 0xc1, 0x82, 0x60, 0x43, 0xd3, 0xa1, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x62, 0x24, 0xcc, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc6, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x12, 0xec, 0xfc, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x10, 0x33, 0x11, 0x3e, 0x07, 0x31, 0x13, 0xe1, 0x73, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x86, 0x5d, 0xb8, 0x83, 0x27, 0x5a, 0x2f, 0x2c, 0xec, 0x06, 0xe7, 0x09, 0xde, 0x05, 0xc1, 0x82, 0x64, 0xb0, 0x3b, 0x18, 0x86, 0x3e, 0x83, 0x64, 0xc8, 0xc1, 0x6b, 0x63, 0x6e, 0x0e, 0xe2, 0x19, 0xbf, 0x67, 0x10, 0x2c, 0x08, 0x36, 0x08, 0xf9, 0xec, 0x83, 0x28, 0x9f, 0xc0, 0x19, 0x04, 0x0b, 0x82, 0x0d, 0xc6, 0xd8, 0xd3, 0xc1, 0x62, 0x3e, 0xaf, 0x41, 0xb0, 0x20, 0xd8, 0xa0, 0xf8, 0x2d, 0x38, 0x88, 0x46, 0x8a, 0x9a, 0x41, 0xb0, 0x20, 0xd8, 0x20, 0x1d, 0xaf, 0xe1, 0x20, 0x9d, 0x90, 0x67, 0x10, 0x2c, 0x08, 0x36, 0x48, 0x8c, 0x84, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x50, 0xb8, 0x25, 0x1d, 0x52, 0x35, 0xc7, 0xa1, 0x41, 0xb0, 0x20, 0xd8, 0x20, 0xed, 0x82, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xc9, 0xc4, 0x0b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x02, 0x13, 0xfb, 0x20, 0x30, 0xb1, 0x8f, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x34, 0x9e, 0xc2, 0x32, 0x08, 0x36, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xec, 0x15, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x1c, 0x3a, 0x88, 0x46, 0x8a, 0x9a, 0xe3, 0xd0, 0x71, 0x68, 0x10, 0x2c, 0x08, 0x36, 0x88, 0x06, 0xbf, 0x9b, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x44, 0x87, 0x09, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xf1, 0xa6, 0x33, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x34, 0xf8, 0xdd, 0x1c, 0x0c, 0x4e, 0x9f, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xd1, 0x61, 0x82, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x70, 0x4b, 0x3a, 0xec, 0x15, 0x1e, 0x87, 0x8e, 0x43, 0x83, 0x60, 0x41, 0xb0, 0x04, 0x82, 0xfd, 0x7f, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x50, 0xb8, 0x25, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0x81, 0x35, 0xff, 0xff, 0x13, 0x58, 0xf7, 0xff, 0x7f, 0x1c, 0x3a, 0x0e, 0x1d, 0xa4, 0xd7, 0x09, 0x1c, 0x8f, 0x07, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x86, 0x68, 0x6e, 0x18, 0x97, 0xc3, 0xd1, 0x7e, 0x3c, 0x5e, 0x10, 0x6c, 0x30, 0xf2, 0x1f, 0x16, 0x07, 0xc1, 0x06, 0x27, 0x4c, 0xf4, 0x41, 0xb0, 0x06, 0xe9, 0x67, 0x43, 0x1b, 0x44, 0xbe, 0x4a, 0xcf, 0x41, 0xec, 0xc4, 0xf7, 0x0c, 0x82, 0x05, 0xc1, 0x06, 0x83, 0x35, 0xf6, 0xa0, 0x05, 0x5d, 0x81, 0x05, 0xc1, 0x86, 0x68, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x08, 0x52, 0xfc, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x8d, 0x04, 0x0f, 0xa2, 0x0d, 0xad, 0xe7, 0x38, 0x34, 0x08, 0x36, 0x44, 0x73, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x18, 0x7b, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xd0, 0x48, 0xf0, 0x20, 0xcd, 0x7c, 0xfb, 0x38, 0x74, 0x3c, 0x1e, 0x04, 0x1b, 0x8c, 0xfc, 0x87, 0xc5, 0x61, 0x37, 0x08, 0x12, 0xef, 0x0d, 0x46, 0xfe, 0xc3, 0x20, 0xd8, 0xe0, 0x84, 0x89, 0x3e, 0x08, 0x36, 0x88, 0x24, 0x02, 0x9f, 0x41, 0xb0, 0x20, 0xd8, 0x20, 0x70, 0xe3, 0x07, 0xc1, 0xc6, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x51, 0x8b, 0x50, 0x33, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x90, 0xe2, 0x0f, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x30, 0x90, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x68, 0x3c, 0x7f, 0x10, 0xf2, 0xd9, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0x68, 0x10, 0x2c, 0x08, 0x36, 0x44, 0x73, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x4e, 0x6a, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0x62, 0xd1, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x23, 0xb3, 0xf7, 0x60, 0x3d, 0xba, 0xd8, 0x71, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x27, 0xb5, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x89, 0x91, 0x30, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x8c, 0xcc, 0xde, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x05, 0xd9, 0xce, 0xc1, 0x18, 0x58, 0x38, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0x83, 0x60, 0x41, 0xb0, 0xa1, 0x87, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xcd, 0x92, 0x0e, 0xa2, 0x0d, 0xad, 0x67, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0xe3, 0xa2, 0x83, 0xc4, 0x9b, 0xa0, 0xe3, 0xd0, 0x20, 0x58, 0x10, 0x6c, 0x68, 0x01, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0xd3, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x54, 0xcd, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x16, 0x40, 0x07, 0xc5, 0xe8, 0xcf, 0x71, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0xd3, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x07, 0x22, 0xfe, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x8d, 0x8e, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x14, 0x64, 0x3b, 0x07, 0xe9, 0x8d, 0x0d, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0x68, 0x10, 0x2c, 0x08, 0x36, 0x28, 0x72, 0x15, 0x06, 0xc1, 0xc6, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x11, 0x9b, 0x92, 0x33, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x7b, 0xd0, 0xb4, 0x24, 0xcb, 0x71, 0xe8, 0x38, 0x74, 0x90, 0x5e, 0x27, 0x70, 0x3c, 0x3e, 0x1e, 0xaf, 0x20, 0xd8, 0x20, 0x62, 0xee, 0x7b, 0x0e, 0x9a, 0xa2, 0x50, 0x1a, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xec, 0x82, 0x60, 0x41, 0x32, 0xf8, 0x72, 0xf0, 0x58, 0xac, 0x89, 0x83, 0x83, 0x56, 0xef, 0xc2, 0x2e, 0x08, 0x16, 0x24, 0x03, 0xf9, 0x95, 0x83, 0xc7, 0x62, 0x4d, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xa4, 0x6a, 0x0e, 0x52, 0x63, 0x3a, 0x8e, 0x43, 0x87, 0x74, 0xee, 0xe1, 0x68, 0x3f, 0x1e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0x82, 0x05, 0xc9, 0x40, 0x5f, 0xa7, 0x83, 0xa6, 0x0a, 0x4e, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x43, 0x7f, 0xf2, 0x43, 0xfc, 0x0f, 0xa9, 0x9a, 0xe3, 0xd0, 0xb0, 0x0b, 0xb7, 0xa1, 0x3f, 0xf9, 0x20, 0xd8, 0x20, 0x22, 0xf8, 0x7b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x8c, 0xb1, 0xa7, 0x83, 0x82, 0x6c, 0xe7, 0x38, 0xb4, 0x20, 0xd8, 0xe0, 0x84, 0x89, 0x3e, 0x08, 0x36, 0x88, 0x34, 0x95, 0x9e, 0x41, 0xb0, 0x20, 0xd8, 0x60, 0xb0, 0xc6, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0xbc, 0xef, 0x74, 0xd0, 0x2e, 0x96, 0xd2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x21, 0x45, 0x3b, 0xfc, 0xc6, 0xf3, 0x61, 0x0e, 0x4a, 0x9a, 0x86, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x21, 0x05, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0x8d, 0x6b, 0x61, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x90, 0x02, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x10, 0x27, 0x2c, 0x3d, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x04, 0x59, 0xfc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x74, 0xbc, 0x86, 0xc3, 0x5e, 0xe1, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x0d, 0x82, 0x05, 0xc1, 0x06, 0xf1, 0xe6, 0xd2, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x1b, 0xfa, 0x93, 0x1f, 0x94, 0x04, 0x0d, 0x07, 0x83, 0x77, 0xf2, 0x38, 0x34, 0xc8, 0xd6, 0x90, 0xc7, 0x5e, 0x1c, 0x04, 0x0b, 0x92, 0x81, 0xf4, 0xcf, 0x41, 0xb1, 0xcb, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x84, 0xe7, 0xa0, 0xd8, 0xe5, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0xf1, 0x20, 0xea, 0xd8, 0x71, 0x86, 0xdf, 0x78, 0xbe, 0x71, 0xe8, 0x60, 0xf0, 0x4e, 0x1e, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0x61, 0x17, 0x76, 0x83, 0x92, 0x07, 0x69, 0x43, 0x0c, 0x87, 0xdd, 0xa0, 0x7c, 0x1a, 0x3a, 0xa4, 0x73, 0x17, 0x7e, 0x41, 0xb4, 0xb0, 0xc3, 0x2e, 0xec, 0xc2, 0x2d, 0x08, 0x36, 0x88, 0xaf, 0x99, 0x9e, 0x83, 0xd8, 0x77, 0x96, 0x19, 0x04, 0x1b, 0x44, 0xd0, 0x5a, 0xcf, 0xa1, 0x63, 0xfc, 0x61, 0x7d, 0x73, 0x41, 0xb0, 0x41, 0x7c, 0xcd, 0xf4, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x48, 0xbb, 0x60, 0x38, 0xa4, 0x6a, 0x8e, 0x43, 0x87, 0xd4, 0xc1, 0xf1, 0xf8, 0x20, 0x1a, 0xc1, 0x70, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x3b, 0x1e, 0x1f, 0x8f, 0x07, 0xc1, 0x06, 0x6f, 0x47, 0x4b, 0x5b, 0x1c, 0x04, 0x6b, 0x10, 0xf1, 0x18, 0x3d, 0x1b, 0x44, 0xdd, 0x70, 0xcf, 0x82, 0x60, 0x83, 0x78, 0xc8, 0xe8, 0x39, 0x58, 0xd5, 0x0e, 0xb5, 0x20, 0xd8, 0x60, 0x65, 0x6d, 0xd4, 0xc1, 0x12, 0xfe, 0x9f, 0x41, 0xb0, 0x41, 0x3c, 0x64, 0xf4, 0x1c, 0x44, 0x1e, 0xa7, 0xc5, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0xf8, 0x73, 0x65, 0x63, 0xf0, 0xc1, 0x31, 0xe6, 0xec, 0x78, 0xbc, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc1, 0x4b, 0xff, 0x78, 0x07, 0x0e, 0xc3, 0xf8, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0xd9, 0xe0, 0x6d, 0x8e, 0xbc, 0x07, 0x51, 0x5a, 0xe6, 0x33, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0xae, 0xb4, 0x90, 0x0c, 0x5c, 0x69, 0xa1, 0x75, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0x4a, 0x0b, 0xd1, 0xc0, 0x95, 0x16, 0xb6, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x95, 0x16, 0xe2, 0x83, 0x78, 0x4c, 0xf3, 0x59, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0xb8, 0xd2, 0x42, 0x3e, 0x70, 0xa5, 0x85, 0xd1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0xa5, 0x85, 0xcd, 0x41, 0x6c, 0xb0, 0xf9, 0x1c, 0x62, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x1b, 0x3c, 0x9e, 0x92, 0x77, 0xe0, 0x4a, 0x0b, 0xd3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0x4a, 0x0b, 0xcb, 0x83, 0x68, 0x76, 0xf3, 0x39, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x36, 0x78, 0x9d, 0x26, 0xef, 0xc0, 0x95, 0x16, 0x4a, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x2b, 0x2d, 0x14, 0x1c, 0xc4, 0x5f, 0x9c, 0xcf, 0xf0, 0x0b, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x2b, 0x2d, 0x34, 0x0c, 0x5c, 0x69, 0xa1, 0xe5, 0xa0, 0xed, 0x85, 0xfe, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0xb8, 0xd2, 0x42, 0xcd, 0xc0, 0x95, 0x16, 0x3a, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0xae, 0xb4, 0xd0, 0x35, 0x70, 0xa5, 0x85, 0xb2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0x4a, 0x0b, 0x3d, 0x07, 0xb1, 0x82, 0xe7, 0x33, 0x08, 0x36, 0x68, 0xe5, 0xba, 0xfc, 0x20, 0xfd, 0x99, 0x68, 0x90, 0x6d, 0x10, 0xfb, 0x75, 0x3e, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x95, 0x16, 0x1a, 0x07, 0xae, 0xb4, 0x50, 0x39, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x5c, 0x69, 0xa1, 0xed, 0x20, 0x8a, 0xf7, 0x7c, 0x06, 0xc1, 0x06, 0xad, 0x5c, 0x97, 0x1f, 0x8c, 0x2a, 0xec, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x71, 0xe8, 0xf8, 0x36, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x9c, 0x69, 0x71, 0x07, 0x51, 0x5a, 0xe6, 0xb3, 0xb8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0xec, 0xc5, 0x0f, 0xdc, 0x7f, 0x21, 0x59, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x38, 0xfe, 0x42, 0x32, 0x70, 0xfe, 0x85, 0xc2, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0xfa, 0x0b, 0xc9, 0x41, 0x6c, 0x08, 0xfa, 0x0c, 0xbb, 0x61, 0x05, 0x75, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0xfa, 0x0b, 0x93, 0x81, 0xeb, 0x2f, 0xd4, 0x0c, 0xb2, 0x35, 0xe4, 0xb1, 0x17, 0x07, 0xc1, 0x06, 0x8d, 0x5c, 0xaf, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0x7e, 0x7b, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0xc5, 0x0d, 0x75, 0x7c, 0xc3, 0xcb, 0x77, 0x13, 0xe0, 0x05, 0x57, 0x27, 0xb6, 0x56, 0x96, 0xd7, 0xf2, 0xe6, 0xc6, 0x96, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0xb8, 0xfe, 0xc2, 0x6c, 0xe0, 0xfa, 0x0b, 0x15, 0xe3, 0x41, 0xec, 0x1f, 0xfa, 0x1c, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0xd9, 0xe0, 0xad, 0x94, 0xcd, 0x07, 0x11, 0x4f, 0xe8, 0x73, 0x38, 0xc5, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0xf3, 0x2f, 0x24, 0x07, 0xb1, 0x21, 0xe8, 0x33, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0xce, 0xbf, 0x10, 0x0d, 0x9c, 0x7f, 0x21, 0x3d, 0x68, 0x6a, 0xc9, 0x69, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0xf3, 0x2f, 0xc4, 0x03, 0xe7, 0x5f, 0xc8, 0x0f, 0xfd, 0xc9, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0xfe, 0x85, 0xc1, 0xc0, 0xf9, 0x17, 0x36, 0x63, 0xb8, 0x30, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0xfc, 0x0b, 0xa3, 0x81, 0xf3, 0x2f, 0xf4, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0xf3, 0x2f, 0xac, 0x06, 0xce, 0xbf, 0x30, 0x3c, 0x68, 0x6a, 0xc9, 0x69, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0xf3, 0x2f, 0x2c, 0x07, 0xce, 0xbf, 0x30, 0x3d, 0x28, 0x00, 0xa0, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0xfe, 0x85, 0xed, 0xc0, 0xf9, 0x17, 0x4a, 0x0e, 0xcd, 0x92, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x9c, 0x7f, 0xa1, 0x65, 0xe0, 0xfc, 0x0b, 0x75, 0x87, 0xc6, 0x45, 0xc7, 0xa1, 0xe3, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0xe1, 0x17, 0x92, 0x81, 0xcb, 0x2f, 0xd4, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x06, 0xef, 0xd6, 0x6b, 0x3e, 0x88, 0x68, 0x4e, 0x9f, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0xf9, 0x85, 0xe8, 0xe0, 0x61, 0x7b, 0xcd, 0x07, 0x4d, 0x2d, 0x39, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0xf9, 0x85, 0x78, 0xe0, 0xf2, 0x0b, 0xf9, 0xa1, 0x3f, 0xf9, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x2e, 0xbf, 0x30, 0x18, 0xb8, 0xfc, 0xc2, 0xe6, 0x20, 0x6d, 0x81, 0x7a, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0xe5, 0x17, 0x46, 0x03, 0x97, 0x5f, 0x68, 0x1b, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x97, 0x5f, 0x58, 0x0d, 0x5c, 0x7e, 0x61, 0x78, 0xd0, 0xd4, 0x92, 0xd3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x97, 0x5f, 0x58, 0x0e, 0x5c, 0x7e, 0x61, 0x7a, 0x50, 0x00, 0x40, 0x2d, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0xf2, 0x0b, 0xdb, 0x81, 0xcb, 0x2f, 0x74, 0x1c, 0x8c, 0x0b, 0xb3, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x97, 0x5f, 0x28, 0x19, 0xb8, 0xfc, 0x42, 0xd9, 0x41, 0x71, 0xa8, 0x71, 0x1c, 0x3a, 0x0e, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x1b, 0x3c, 0x39, 0xad, 0x7d, 0xe0, 0xea, 0x0b, 0x0d, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc1, 0xb3, 0x00, 0xdb, 0x0f, 0xa2, 0xb7, 0xd5, 0x67, 0xd8, 0x0d, 0x2b, 0xa8, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x06, 0x8f, 0x47, 0x6c, 0x1f, 0x38, 0xfa, 0x42, 0xcd, 0x20, 0x5b, 0x43, 0x1e, 0x7b, 0x71, 0x10, 0x6c, 0xd0, 0xc8, 0xf5, 0xca, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xe6, 0xb7, 0x57, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0xdf, 0x20, 0x0a, 0x0f, 0x7d, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x1b, 0x3c, 0x2f, 0xb1, 0x7d, 0xe0, 0xe8, 0x0b, 0x15, 0x07, 0x31, 0xa4, 0xe8, 0x73, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0xa3, 0x2f, 0x94, 0x1c, 0x44, 0x26, 0xac, 0xcf, 0xe1, 0x14, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0xae, 0xbe, 0x90, 0x1c, 0x44, 0x6f, 0xab, 0xcf, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0xb8, 0xfa, 0x42, 0x34, 0x70, 0xf5, 0x85, 0xf4, 0x20, 0x31, 0xbd, 0x7a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0xab, 0x2f, 0xc4, 0x03, 0x57, 0x5f, 0xc8, 0x0f, 0x46, 0xf3, 0xf9, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0xab, 0x2f, 0x0c, 0x06, 0xae, 0xbe, 0x50, 0x30, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0xae, 0xbe, 0xb0, 0x18, 0xb8, 0xfa, 0xc2, 0x6a, 0x90, 0x0c, 0x4c, 0xdd, 0xc1, 0x70, 0x94, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0xea, 0x0b, 0xb3, 0x81, 0xab, 0x2f, 0x6c, 0xc7, 0xc0, 0x17, 0x1b, 0x7b, 0x23, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x5c, 0x7d, 0x61, 0x3c, 0x70, 0xf5, 0x85, 0xfd, 0x41, 0xc9, 0xd0, 0x74, 0x1c, 0x3a, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0xf7, 0x5e, 0x48, 0x06, 0x0e, 0xbe, 0xb0, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x0e, 0xbe, 0x90, 0x1c, 0x44, 0x21, 0xb1, 0xcf, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x38, 0xf8, 0x42, 0x34, 0x70, 0xf0, 0x85, 0xf8, 0x20, 0xba, 0x7d, 0x7d, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x38, 0xf8, 0x42, 0x3e, 0x70, 0xf0, 0x85, 0xd1, 0x18, 0xf8, 0x62, 0x66, 0x69, 0xe7, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x83, 0x2f, 0xac, 0x06, 0x0e, 0xbe, 0x30, 0x3c, 0x18, 0x77, 0x50, 0xc7, 0xa1, 0xe3, 0xf1, 0x0a, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x27, 0x60, 0xfc, 0xc0, 0x5d, 0x18, 0x92, 0xc5, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x9b, 0x30, 0x24, 0x03, 0x67, 0x61, 0xe8, 0x1e, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x1b, 0x3c, 0xf0, 0xc6, 0xf9, 0x20, 0x66, 0x9c, 0x7d, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x51, 0x18, 0xd2, 0x81, 0xa3, 0x30, 0x54, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x1c, 0x85, 0x21, 0x1e, 0x38, 0x0a, 0xc3, 0x76, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x38, 0x0a, 0xc3, 0xe4, 0x20, 0xf2, 0xa4, 0x7d, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x51, 0x18, 0x36, 0x03, 0x47, 0x61, 0x98, 0x1d, 0x44, 0x1b, 0x6a, 0xc7, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x47, 0x61, 0xd8, 0x0d, 0x1c, 0x85, 0x61, 0x78, 0xe8, 0x4f, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0x28, 0x0c, 0xcb, 0x81, 0xa3, 0x30, 0x4c, 0x0f, 0xa9, 0x83, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0x14, 0x86, 0xf1, 0xc0, 0x51, 0x18, 0x9a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0xa3, 0x30, 0x14, 0x1c, 0xc4, 0x9f, 0xb6, 0xcf, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x38, 0x0a, 0x43, 0xc3, 0xc0, 0x51, 0x18, 0x4a, 0x0e, 0x22, 0x68, 0x4d, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0xa3, 0x30, 0xb4, 0x0c, 0x1c, 0x85, 0xa1, 0xe6, 0xd0, 0x9f, 0x7c, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x51, 0x18, 0x7a, 0x06, 0x8e, 0xc2, 0x50, 0x74, 0x48, 0x1d, 0x1c, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x83, 0x67, 0x47, 0x3a, 0x1f, 0xc4, 0x8c, 0xb3, 0xcf, 0x20, 0x5b, 0x43, 0x1e, 0x7b, 0x71, 0x10, 0x6c, 0xf0, 0x40, 0x5a, 0x80, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x0d, 0x92, 0x0d, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0xb8, 0xa1, 0x8e, 0x6f, 0x78, 0xf9, 0x6e, 0x02, 0xbc, 0xdd, 0xde, 0xe8, 0x5a, 0xc6, 0xe4, 0xea, 0xc4, 0x5a, 0xe0, 0xea, 0xc4, 0xd6, 0xca, 0xf2, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x57, 0x61, 0x48, 0x0f, 0x9e, 0x76, 0xe9, 0x3c, 0x1e, 0x44, 0x69, 0xb9, 0xcf, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0xae, 0xc2, 0xb0, 0x3f, 0x88, 0x19, 0x67, 0x9f, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0xae, 0xc2, 0xd0, 0x31, 0x70, 0x15, 0x86, 0xb6, 0xe1, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0xae, 0xc2, 0xd0, 0x32, 0x70, 0x15, 0x86, 0xa2, 0x83, 0xb4, 0x05, 0xea, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0x2a, 0x0c, 0x4d, 0x03, 0x57, 0x61, 0x28, 0x3b, 0x08, 0x29, 0xf0, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0xb3, 0x30, 0x24, 0x07, 0x31, 0xe3, 0xec, 0x33, 0x88, 0x16, 0x76, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0x2c, 0x0c, 0x93, 0x81, 0xb3, 0x30, 0x74, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x9c, 0x85, 0x61, 0x33, 0x70, 0x16, 0x86, 0x8a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0x2c, 0x0c, 0xbb, 0x83, 0x58, 0x93, 0xf7, 0x19, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x67, 0x61, 0x18, 0x0e, 0x9c, 0x85, 0x61, 0x7b, 0x10, 0xbd, 0xff, 0x36, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x9c, 0x85, 0x61, 0x3c, 0x70, 0x16, 0x86, 0xf5, 0x41, 0x01, 0x00, 0x35, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0x2c, 0x0c, 0xf3, 0x81, 0xb3, 0x30, 0x34, 0x1c, 0x84, 0x00, 0xf8, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x38, 0x0b, 0x43, 0xc7, 0xc0, 0x59, 0x18, 0x2a, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0xb3, 0x30, 0xf4, 0x1c, 0xc4, 0xa3, 0xbe, 0xcf, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x38, 0x0b, 0x43, 0xd1, 0xc0, 0x59, 0x18, 0xba, 0x0e, 0x62, 0x99, 0xdf, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0xb3, 0x30, 0x94, 0x0d, 0x9c, 0x85, 0xa1, 0xed, 0xa0, 0x00, 0x80, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0x16, 0x86, 0xba, 0x81, 0xb3, 0x30, 0x34, 0x1e, 0x84, 0x00, 0xf8, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x38, 0x0b, 0x43, 0xf3, 0xc0, 0x59, 0x18, 0xaa, 0x0f, 0x31, 0x3c, 0x64, 0x2b, 0x0e, 0xa7, 0xd8, 0xf1, 0x78, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0x18, 0x0c, 0xc9, 0xc0, 0x41, 0x18, 0x8e, 0x0c, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0xae, 0xc1, 0x90, 0x1c, 0xc4, 0x27, 0xc1, 0xcf, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x36, 0x78, 0x18, 0x94, 0xf3, 0xc0, 0x35, 0x18, 0xaa, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x0d, 0x1e, 0x28, 0xe5, 0x3c, 0x70, 0x0d, 0x86, 0xed, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x6c, 0xf0, 0xd8, 0x26, 0xe7, 0x83, 0x58, 0x47, 0xf8, 0x19, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0xd7, 0x60, 0xd8, 0x0c, 0x5c, 0x83, 0x61, 0x76, 0x10, 0x6d, 0xa8, 0x1d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x5c, 0x83, 0x61, 0x37, 0x70, 0x0d, 0x86, 0xe1, 0xa1, 0x3f, 0xf9, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x6b, 0x30, 0x2c, 0x07, 0xae, 0xc1, 0x30, 0x3d, 0xa4, 0x0e, 0x8e, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x35, 0x18, 0xc6, 0x03, 0xd7, 0x60, 0x68, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0xae, 0xc1, 0x50, 0x70, 0x10, 0xf3, 0x10, 0x3f, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0x1a, 0x0c, 0x0d, 0x03, 0xd7, 0x60, 0x28, 0x39, 0x88, 0xa0, 0x35, 0x9d, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0xae, 0xc1, 0xd0, 0x32, 0x70, 0x0d, 0x86, 0x9a, 0x43, 0x7f, 0xf2, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0xd7, 0x60, 0xe8, 0x19, 0xb8, 0x06, 0x43, 0xd1, 0x21, 0x75, 0x70, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0xce, 0xc1, 0x90, 0x1c, 0xc4, 0x27, 0xc1, 0xcf, 0x20, 0x5b, 0x43, 0x1e, 0x7b, 0x71, 0x10, 0x6c, 0xf0, 0x40, 0x5a, 0x80, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x0d, 0x92, 0x0d, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0xb8, 0xa1, 0x8e, 0x6f, 0x78, 0xf9, 0x6e, 0x02, 0xbc, 0xdd, 0xde, 0xe8, 0x5a, 0xc6, 0xe4, 0xea, 0xc4, 0x5a, 0xe6, 0xca, 0xc6, 0xd6, 0xca, 0xf2, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x06, 0x6f, 0xc4, 0x72, 0x1e, 0x38, 0x07, 0xc3, 0x7a, 0x3c, 0x88, 0x0a, 0x8e, 0x9f, 0xe3, 0xd0, 0x71, 0xe8, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x9c, 0x83, 0x61, 0x7f, 0x10, 0x9f, 0x04, 0x3f, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x9c, 0x83, 0xa1, 0x63, 0xe0, 0x1c, 0x0c, 0x6d, 0xc3, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x9c, 0x83, 0xa1, 0x65, 0xe0, 0x1c, 0x0c, 0x45, 0x07, 0x31, 0x2d, 0xe9, 0x33, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x9c, 0x83, 0xa1, 0x69, 0xe0, 0x1c, 0x0c, 0x65, 0x07, 0x21, 0x05, 0xbe, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0x0f, 0x86, 0xe4, 0x20, 0x3e, 0x09, 0x7e, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc1, 0x63, 0xc1, 0x9c, 0x07, 0xee, 0xc1, 0x50, 0xb5, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x6c, 0xf0, 0x72, 0x31, 0xe7, 0x81, 0x7b, 0x30, 0x6c, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x7b, 0x30, 0x0c, 0x0e, 0x22, 0x1a, 0xe5, 0x67, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0xdc, 0x83, 0x61, 0x31, 0x70, 0x0f, 0x86, 0xd1, 0x41, 0xf4, 0xfe, 0xdb, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0x0f, 0x86, 0xd5, 0xc0, 0x3d, 0x18, 0x66, 0x07, 0x05, 0x00, 0xd4, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x7b, 0x30, 0xec, 0x06, 0xee, 0xc1, 0x30, 0x3d, 0x08, 0x01, 0xf0, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0x0f, 0x86, 0xf1, 0xc0, 0x3d, 0x18, 0x9a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x83, 0xa7, 0x8d, 0x39, 0x1f, 0xc4, 0x3b, 0xcc, 0xcf, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x36, 0x78, 0x80, 0x97, 0xf3, 0xc0, 0x3d, 0x18, 0x2a, 0x0e, 0x62, 0x99, 0xdf, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x7b, 0x30, 0x74, 0x0c, 0xdc, 0x83, 0xa1, 0xe4, 0xa0, 0x00, 0x80, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0x0f, 0x86, 0x96, 0x81, 0x7b, 0x30, 0x14, 0x1d, 0x84, 0x00, 0xf8, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x38, 0x08, 0x43, 0x72, 0x10, 0x9f, 0x04, 0x3f, 0x83, 0x68, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x0e, 0xc2, 0x30, 0x19, 0x38, 0x08, 0x43, 0xe7, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x41, 0x18, 0x36, 0x03, 0x07, 0x61, 0xa8, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x0e, 0xc2, 0xb0, 0x3b, 0x88, 0xf1, 0x9d, 0x9f, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0x10, 0x86, 0xe1, 0xc0, 0x41, 0x18, 0xf6, 0xc3, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x1b, 0x3c, 0xc8, 0xcc, 0xf9, 0x20, 0x1e, 0x7d, 0x7e, 0x0e, 0x9e, 0xf4, 0x42, 0x71, 0x70, 0xf8, 0xb5, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x38, 0x08, 0x43, 0xc1, 0xc0, 0x41, 0x18, 0x1a, 0x0e, 0x42, 0x0a, 0xfc, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x1c, 0x84, 0xa1, 0x63, 0xe0, 0x20, 0x0c, 0x95, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x41, 0x18, 0x7a, 0x0e, 0xa2, 0x7d, 0xe8, 0x67, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x1c, 0x84, 0xa1, 0x68, 0xe0, 0x20, 0x0c, 0x7d, 0xc3, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x1c, 0x84, 0xa1, 0xed, 0x20, 0x3a, 0x8d, 0x7e, 0x0e, 0x9e, 0xf4, 0x42, 0x71, 0x70, 0xf8, 0xb5, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x38, 0x08, 0x43, 0xe1, 0xc0, 0x41, 0x18, 0x1a, 0x0f, 0x42, 0x00, 0xfc, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x1c, 0x84, 0xa1, 0x79, 0xe0, 0x20, 0x0c, 0x3f, 0x36, 0xc4, 0x70, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x38, 0x08, 0x43, 0xf5, 0x41, 0xf4, 0x2f, 0xfd, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x1c, 0x84, 0xa1, 0x7b, 0xe0, 0x20, 0x0c, 0x07, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x83, 0x30, 0xf4, 0x1f, 0x44, 0xaf, 0xd3, 0xcf, 0x41, 0x48, 0x81, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x07, 0x61, 0x78, 0x30, 0x70, 0x10, 0x86, 0x1b, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x41, 0x18, 0x5e, 0x1c, 0xc4, 0x62, 0xd4, 0xcf, 0x41, 0x08, 0x80, 0x1f, 0x04, 0x39, 0xff, 0xe1, 0x14, 0x3b, 0x1e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x06, 0x8f, 0xb3, 0x6e, 0x1e, 0xb8, 0x04, 0xc3, 0x91, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x1b, 0x3c, 0x8a, 0xb4, 0xf9, 0x20, 0xb2, 0xa9, 0x7e, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x19, 0x18, 0xd2, 0x81, 0x33, 0x30, 0xf4, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x67, 0x60, 0x58, 0x1c, 0x44, 0xf8, 0xd5, 0xcf, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x38, 0x03, 0xc3, 0x64, 0xe0, 0x0c, 0x0c, 0xab, 0x83, 0xc6, 0x12, 0xa1, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x38, 0x03, 0xc3, 0x6c, 0xe0, 0x0c, 0x0c, 0xfb, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0x06, 0x86, 0xdd, 0xc0, 0x19, 0x18, 0xa6, 0x07, 0xd1, 0xf1, 0x47, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x19, 0x18, 0xb6, 0x03, 0x67, 0x60, 0x18, 0x1f, 0xa2, 0x39, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0x0c, 0x0c, 0xeb, 0x81, 0x33, 0x30, 0xcc, 0x0f, 0x0a, 0x00, 0xa8, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x33, 0x30, 0x14, 0x0c, 0x9c, 0x81, 0xa1, 0x76, 0xd8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x33, 0x30, 0x74, 0x0c, 0x9c, 0x81, 0xa1, 0x71, 0xb8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x33, 0x30, 0xb4, 0x0c, 0x9c, 0x81, 0xa1, 0x6e, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x9c, 0x81, 0xa1, 0x66, 0xe0, 0x0c, 0x0c, 0x4d, 0x07, 0x51, 0xcc, 0xc6, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x19, 0x18, 0xaa, 0x06, 0xce, 0xc0, 0xd0, 0x75, 0x88, 0xe6, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x33, 0x30, 0x94, 0x0d, 0x9c, 0x81, 0xa1, 0xed, 0xa0, 0x00, 0x80, 0x3a, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x67, 0x60, 0xe8, 0x1b, 0x38, 0x03, 0x43, 0xe1, 0x21, 0x86, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x67, 0x60, 0xa8, 0x1c, 0x38, 0x03, 0x43, 0xe7, 0x21, 0x86, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x19, 0x18, 0x4a, 0x07, 0xce, 0xc0, 0xd0, 0x7a, 0x38, 0xda, 0x8f, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x1d, 0x18, 0x92, 0x83, 0xc8, 0xa6, 0xfa, 0x19, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x77, 0x60, 0x48, 0x07, 0xee, 0xc0, 0xd0, 0x30, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0xdc, 0x81, 0x61, 0x72, 0x10, 0x05, 0x73, 0x3f, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0xd9, 0xe0, 0x71, 0xf6, 0xcd, 0x07, 0x8f, 0xcd, 0x6f, 0x3e, 0x68, 0x7c, 0x6e, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x83, 0xa7, 0xef, 0x37, 0x1f, 0x3c, 0x29, 0xc0, 0xf9, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0x0e, 0x0c, 0xe3, 0x83, 0x47, 0x1b, 0x38, 0x1f, 0xf2, 0xb5, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0x10, 0x0c, 0xc9, 0x41, 0x64, 0x53, 0xfd, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x43, 0x30, 0xa4, 0x07, 0x2f, 0x0d, 0x71, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x38, 0x04, 0x43, 0x3c, 0x70, 0x08, 0x86, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0x08, 0x86, 0xc1, 0x41, 0xac, 0xf6, 0xfd, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x43, 0x30, 0x2c, 0x06, 0x0e, 0xc1, 0x30, 0x3a, 0x58, 0xb8, 0x30, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x21, 0x18, 0x56, 0x03, 0x87, 0x60, 0x98, 0x1d, 0x14, 0x00, 0x50, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x0e, 0xc1, 0xb0, 0x3b, 0x78, 0x15, 0x84, 0xf3, 0x71, 0xe8, 0x38, 0x34, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x1b, 0x3c, 0xbc, 0xc2, 0xf9, 0xe0, 0xe9, 0x1e, 0xce, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x21, 0x18, 0xf6, 0x07, 0x4f, 0xf7, 0x70, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x87, 0x60, 0x28, 0x18, 0x38, 0x04, 0x43, 0xc7, 0xc1, 0x42, 0xca, 0x89, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x0e, 0xc1, 0x50, 0x32, 0x70, 0x08, 0x86, 0x96, 0x83, 0x02, 0x00, 0x6a, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x21, 0x18, 0x6a, 0x0e, 0xde, 0xbe, 0xe1, 0x7c, 0x1c, 0x3a, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x97, 0x60, 0x48, 0x0e, 0x22, 0x9b, 0xea, 0x67, 0x10, 0x2d, 0xec, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x25, 0x18, 0x26, 0x03, 0x97, 0x60, 0xe8, 0x5c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0xb8, 0x04, 0xc3, 0x66, 0xe0, 0x12, 0x0c, 0x15, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x25, 0x18, 0x76, 0x07, 0xd1, 0x07, 0xf9, 0x33, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x2e, 0xc1, 0x30, 0x1c, 0xb8, 0x04, 0xc3, 0x7e, 0xf8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x4b, 0x30, 0xac, 0x0f, 0x22, 0x65, 0xf2, 0xe7, 0xa0, 0x45, 0x53, 0x96, 0x83, 0xc3, 0xaf, 0xed, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x25, 0x18, 0x0a, 0x06, 0x2e, 0xc1, 0xd0, 0x70, 0x10, 0x52, 0xe0, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0x12, 0x0c, 0x1d, 0x03, 0x97, 0x60, 0xa8, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x2e, 0xc1, 0xd0, 0x73, 0x10, 0x83, 0x98, 0x3f, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0x12, 0x0c, 0x45, 0x03, 0x97, 0x60, 0xe8, 0x1b, 0x7e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0x12, 0x0c, 0x6d, 0x07, 0x31, 0xb3, 0xf9, 0x73, 0xd0, 0xa2, 0x29, 0xcb, 0xc1, 0xe1, 0xd7, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0x12, 0x0c, 0x85, 0x03, 0x97, 0x60, 0x68, 0x3c, 0x08, 0x01, 0xf0, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0x09, 0x86, 0xe6, 0x81, 0x4b, 0x30, 0xfc, 0xd8, 0x10, 0xc3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0x12, 0x0c, 0xd5, 0x07, 0x11, 0x09, 0xfa, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0x09, 0x86, 0xee, 0x81, 0x4b, 0x30, 0x1c, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x2e, 0xc1, 0xd0, 0x7f, 0x10, 0x51, 0xa3, 0x3f, 0x07, 0x21, 0x05, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x5c, 0x82, 0xe1, 0xc1, 0xc0, 0x25, 0x18, 0x6e, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x97, 0x60, 0x78, 0x71, 0x10, 0x1f, 0xa6, 0x3f, 0x07, 0x21, 0x00, 0x7e, 0x10, 0xf0, 0xfe, 0xc7, 0xe3, 0xe3, 0xf1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x69, 0x17, 0x7f, 0xf0, 0x7a, 0xca, 0xee, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0xdc, 0x76, 0xf1, 0x07, 0xaf, 0xa7, 0xec, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x8e, 0xbb, 0xf8, 0x83, 0xd7, 0x53, 0x76, 0x0f, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x83, 0x77, 0xae, 0xbb, 0x0f, 0x1c, 0x77, 0xa1, 0x6b, 0x10, 0x2c, 0x08, 0x36, 0x18, 0xf9, 0x0f, 0x8b, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0xd9, 0xe0, 0xe9, 0xf0, 0xee, 0x03, 0xc7, 0x5d, 0x28, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x0e, 0xde, 0x39, 0xef, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x1c, 0x77, 0x21, 0x3f, 0x78, 0x0b, 0xbd, 0xfb, 0x20, 0xd8, 0x20, 0x5e, 0x39, 0x66, 0x0e, 0xd2, 0x9f, 0x89, 0x06, 0xd9, 0x06, 0xf1, 0xe9, 0xfa, 0xb3, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x6c, 0xf0, 0x76, 0x7b, 0xf7, 0x83, 0xf7, 0xba, 0xbb, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x06, 0x2f, 0xb3, 0x77, 0x3f, 0x78, 0xaf, 0xbb, 0xfb, 0x20, 0xd8, 0x20, 0x5e, 0x39, 0x66, 0x0e, 0xd6, 0x80, 0x32, 0x0d, 0xb2, 0x0d, 0xe2, 0xd3, 0xf5, 0x67, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x38, 0xee, 0xc2, 0x7c, 0xe0, 0xb8, 0x0b, 0xfb, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0xd9, 0xe0, 0x71, 0xe9, 0xee, 0x07, 0xd1, 0x7b, 0xfb, 0x33, 0x08, 0x36, 0x88, 0x57, 0x8e, 0x99, 0x83, 0x63, 0x76, 0xef, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0xb8, 0x0b, 0x0d, 0x03, 0xc7, 0x5d, 0xa8, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0xc7, 0x5d, 0xa8, 0x18, 0x38, 0xee, 0x42, 0xcb, 0x20, 0x19, 0x10, 0x5c, 0x7d, 0x07, 0xc7, 0xac, 0xe2, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0xe3, 0x2e, 0xd4, 0x0c, 0x1c, 0x77, 0xa1, 0xe9, 0x30, 0x2e, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0xdd, 0xc5, 0x1f, 0xbc, 0x9e, 0xb2, 0x7b, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x5c, 0x77, 0x21, 0x1d, 0xb8, 0xee, 0x42, 0xd1, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0xb8, 0xee, 0xc2, 0xe4, 0xe0, 0x61, 0x0a, 0xef, 0xc3, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x07, 0x8f, 0x4e, 0x78, 0x3f, 0x78, 0x2f, 0x23, 0xc6, 0xc1, 0xc1, 0xa3, 0x76, 0x90, 0x0c, 0x33, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x06, 0xcf, 0x64, 0x78, 0x1f, 0xb8, 0xee, 0x42, 0xcb, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x36, 0x78, 0x48, 0xc3, 0xfb, 0xc0, 0x75, 0x17, 0x0a, 0x0e, 0xa2, 0x58, 0x62, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0xd9, 0xe0, 0xe1, 0x0f, 0xef, 0x07, 0x6f, 0xc0, 0x76, 0x3f, 0x64, 0xed, 0x8e, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0xae, 0xbb, 0x50, 0x33, 0x70, 0xdd, 0x85, 0x9e, 0x43, 0x0c, 0x8f, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x9c, 0x77, 0x21, 0x1b, 0x38, 0xef, 0x42, 0x7a, 0x10, 0x52, 0xe0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0xb8, 0xef, 0x42, 0x32, 0x70, 0xdf, 0x85, 0xf0, 0x20, 0xc8, 0xe2, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x1c, 0x78, 0xf1, 0x07, 0xaf, 0xa7, 0xec, 0x3e, 0x18, 0xac, 0xb1, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0xe7, 0xc5, 0x0f, 0x5c, 0x7a, 0xa1, 0x6e, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x87, 0x5e, 0xfc, 0x41, 0x1c, 0x50, 0xff, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x97, 0x5e, 0xfc, 0x41, 0x1c, 0x50, 0xff, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x4b, 0x2f, 0x04, 0x03, 0x97, 0x5e, 0xc8, 0x06, 0xc9, 0xc0, 0x52, 0xdf, 0xc1, 0x31, 0xab, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0xd2, 0x0b, 0xe1, 0xc0, 0xa5, 0x17, 0xda, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc1, 0x43, 0xff, 0xc9, 0x07, 0x2e, 0xbd, 0x50, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x0d, 0x1e, 0x51, 0x50, 0x7e, 0xf0, 0x04, 0x88, 0xf2, 0xe1, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x0d, 0x9e, 0xd4, 0x50, 0x7e, 0xf0, 0x04, 0x88, 0xf2, 0x83, 0x08, 0x93, 0xb5, 0x39, 0x38, 0x78, 0xd4, 0x0e, 0x92, 0xe1, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0xd2, 0x0b, 0xdb, 0x81, 0x4b, 0x2f, 0xb4, 0x0c, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x4b, 0x2f, 0x8c, 0x07, 0x2e, 0xbd, 0x50, 0x70, 0xd0, 0x8e, 0x9a, 0xcb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0xa5, 0x17, 0x1a, 0x06, 0x2e, 0xbd, 0x50, 0x72, 0x88, 0xe6, 0x71, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0xa5, 0x17, 0x6a, 0x06, 0x2e, 0xbd, 0xd0, 0x73, 0x88, 0xe1, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0xd2, 0x0b, 0x4d, 0x03, 0x97, 0x5e, 0x28, 0x3b, 0x8c, 0xcb, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x5e, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0xb8, 0xd4, 0xe2, 0x07, 0xee, 0xba, 0x90, 0x2c, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0xdc, 0x6d, 0x21, 0x19, 0xb8, 0xdd, 0xc2, 0x66, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x6c, 0xf0, 0x6c, 0xcc, 0xde, 0x83, 0x48, 0x5d, 0xff, 0x19, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x2e, 0xb7, 0x90, 0x1c, 0x44, 0xea, 0xfa, 0xcf, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0xb8, 0xdc, 0x42, 0x3a, 0x70, 0xb9, 0x85, 0xa2, 0x41, 0xb0, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x06, 0xcf, 0x25, 0xed, 0x1d, 0xb8, 0xdc, 0xc2, 0x7a, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0xd9, 0xe0, 0x1d, 0xaa, 0xbd, 0x07, 0xaf, 0x66, 0xed, 0x1d, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x0d, 0x1e, 0x77, 0xda, 0x7b, 0xf0, 0x6a, 0xd6, 0xde, 0x41, 0xb0, 0x20, 0x19, 0x10, 0xbe, 0x3b, 0x07, 0x67, 0x2f, 0xe3, 0x83, 0xf4, 0x67, 0xa2, 0x41, 0xb6, 0x41, 0x94, 0xc3, 0xff, 0x0c, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x06, 0xef, 0x80, 0xed, 0x3d, 0x78, 0x95, 0x6c, 0xef, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0xb9, 0x85, 0xdd, 0xc1, 0xab, 0x64, 0x7b, 0x07, 0xc1, 0x06, 0xf1, 0x4b, 0xff, 0x73, 0x30, 0xaa, 0xb0, 0x0f, 0xcd, 0x5f, 0x8e, 0xc7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x97, 0x5b, 0x98, 0x0f, 0x5c, 0x6e, 0xa1, 0x67, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x5c, 0x6e, 0x61, 0x7f, 0xf0, 0x9a, 0xda, 0xde, 0x41, 0x32, 0x20, 0xb8, 0xfa, 0x0e, 0xce, 0x5e, 0xc6, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x06, 0x0f, 0xae, 0xed, 0x1d, 0xb8, 0xdc, 0x42, 0xcd, 0x21, 0x75, 0x70, 0x1c, 0x3a, 0x0e, 0x0d, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x06, 0x4f, 0xeb, 0xed, 0x3d, 0x88, 0xd4, 0xf5, 0x9f, 0x61, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x0d, 0x1e, 0x0a, 0xdc, 0x7b, 0xf0, 0x50, 0xe8, 0xde, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x6c, 0xf0, 0x6a, 0xe1, 0xde, 0x83, 0x27, 0x23, 0xf7, 0x1e, 0xac, 0x95, 0x21, 0x1b, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0xd9, 0xe0, 0x59, 0xc3, 0xbd, 0x03, 0xa7, 0x5b, 0x98, 0x1d, 0x84, 0x14, 0xf8, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0xd3, 0x2d, 0xec, 0x0e, 0x9e, 0xde, 0xdc, 0x7b, 0x10, 0x02, 0xe0, 0xc7, 0xa1, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0xdb, 0x2d, 0x24, 0x07, 0x91, 0xba, 0xfe, 0x33, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x6e, 0xb7, 0x10, 0x0d, 0xdc, 0x6e, 0x21, 0x1e, 0x24, 0x03, 0xeb, 0x75, 0x07, 0xa7, 0x33, 0xe4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0xdb, 0x2d, 0xe4, 0x03, 0xb7, 0x5b, 0x98, 0x1c, 0x84, 0x00, 0xf8, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x38, 0xdd, 0xc2, 0xfa, 0xe0, 0x29, 0xd1, 0xbd, 0x87, 0x18, 0x1e, 0x8f, 0x57, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0xb8, 0xe1, 0x42, 0x32, 0x70, 0xca, 0x85, 0xae, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x1c, 0x71, 0x21, 0x39, 0x88, 0xd5, 0x07, 0xa0, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0x8a, 0x0b, 0xc9, 0x41, 0xac, 0x3e, 0x00, 0x0d, 0xbb, 0xc1, 0x38, 0x64, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0xb8, 0xe2, 0xc2, 0x64, 0xe0, 0x8a, 0x0b, 0x35, 0x83, 0x6c, 0x0d, 0x79, 0xec, 0xc5, 0x41, 0xb0, 0xc1, 0x4b, 0x91, 0x48, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xbc, 0x62, 0x89, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x0d, 0xa2, 0xf0, 0xd0, 0x67, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x15, 0x17, 0x66, 0x03, 0x57, 0x5c, 0xa8, 0x38, 0x88, 0x21, 0x45, 0x9f, 0xe3, 0xd0, 0x71, 0xe8, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x5c, 0x71, 0xa1, 0xe4, 0x20, 0x5a, 0x28, 0x80, 0x0e, 0xa7, 0xd8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0xc6, 0x85, 0xe4, 0x20, 0x56, 0x1f, 0x80, 0x86, 0x5d, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x38, 0xe3, 0x42, 0x7a, 0xf0, 0xdc, 0x11, 0xdf, 0xe1, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0xce, 0xb8, 0x90, 0x0f, 0x9c, 0x71, 0x61, 0x72, 0x90, 0xb6, 0x40, 0x3d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x9c, 0x71, 0x61, 0x73, 0xf0, 0x98, 0x11, 0xdf, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x6c, 0xf0, 0xd4, 0x0a, 0xdf, 0x81, 0x33, 0x2e, 0xec, 0x0e, 0xa2, 0x0d, 0xb5, 0x63, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x83, 0xa7, 0x63, 0xf8, 0x1e, 0x3c, 0x64, 0xc3, 0xf7, 0xd0, 0x9f, 0x7c, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc1, 0x53, 0x37, 0x7c, 0x0f, 0xde, 0x10, 0xe2, 0x7b, 0x88, 0xe6, 0x71, 0x68, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0x8e, 0x0b, 0xc9, 0x41, 0xac, 0x3e, 0x00, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x3b, 0x2e, 0xa4, 0x03, 0x77, 0x5c, 0xe8, 0x18, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0xee, 0xb8, 0x30, 0x38, 0x88, 0x01, 0x14, 0xa0, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0xc7, 0x85, 0xc5, 0xc1, 0xeb, 0x59, 0x7c, 0x0f, 0x22, 0x68, 0x4d, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x83, 0xb7, 0xbe, 0xf8, 0x0e, 0xdc, 0x71, 0x61, 0x76, 0x50, 0x00, 0x40, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0xb8, 0xe3, 0xc2, 0x6e, 0xe0, 0x8e, 0x0b, 0x15, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0xd9, 0xe0, 0x35, 0x30, 0xbe, 0x07, 0xcf, 0xa8, 0xf1, 0x3d, 0x88, 0xa0, 0x35, 0x9d, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x83, 0x27, 0xdf, 0xf8, 0x1e, 0xfa, 0x93, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x36, 0x78, 0xa5, 0x8e, 0xef, 0xc1, 0xc3, 0x7a, 0x7c, 0x0f, 0xd1, 0x3c, 0x0e, 0x1d, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x43, 0x2e, 0x24, 0x07, 0xb1, 0xfa, 0x00, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x0e, 0xb9, 0x90, 0x0e, 0x1c, 0x72, 0xa1, 0x6f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x38, 0xe4, 0xc2, 0xe4, 0x20, 0x0e, 0x6d, 0x80, 0x06, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x21, 0x17, 0x36, 0x03, 0x87, 0x5c, 0xd8, 0x0d, 0x92, 0x81, 0xf6, 0x77, 0x07, 0x67, 0x2f, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x43, 0x2e, 0x0c, 0x07, 0x0e, 0xb9, 0x50, 0x37, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x0e, 0xb9, 0xb0, 0x1c, 0x38, 0xe4, 0x42, 0xc1, 0xf0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x87, 0x5c, 0x98, 0x1f, 0x44, 0x3e, 0x0f, 0xd0, 0x41, 0x3b, 0x9f, 0x31, 0x07, 0xa7, 0x15, 0xdc, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x0e, 0xb9, 0xd0, 0x30, 0x70, 0xc8, 0x85, 0x8e, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x43, 0x2e, 0x94, 0x0c, 0x1c, 0x72, 0xa1, 0xed, 0x20, 0x59, 0xbe, 0xe4, 0x38, 0x74, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x2e, 0xb9, 0x90, 0x1c, 0xc4, 0xea, 0x03, 0xd0, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0xb8, 0xe4, 0x42, 0x3a, 0x70, 0xc9, 0x85, 0xf1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0xc9, 0x85, 0xc9, 0x41, 0xec, 0x15, 0x01, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x4b, 0x2e, 0x6c, 0x06, 0x2e, 0xb9, 0xb0, 0x3b, 0x78, 0xa2, 0x76, 0xdc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x25, 0x17, 0x86, 0x03, 0x97, 0x5c, 0xd8, 0x1e, 0xd6, 0x7e, 0x8f, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x29, 0x17, 0x92, 0x83, 0x58, 0x7d, 0x00, 0x1a, 0x04, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0xa7, 0x5c, 0x88, 0x06, 0x4e, 0xb9, 0x90, 0x0e, 0x92, 0x81, 0xa5, 0xbe, 0x83, 0x73, 0xfd, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x29, 0x17, 0xe2, 0x81, 0x53, 0x2e, 0x54, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x83, 0x27, 0x0e, 0xf9, 0x0e, 0x9c, 0x72, 0xa1, 0x64, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x9c, 0x72, 0x61, 0x34, 0x70, 0xca, 0x85, 0xf1, 0xf0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0xa7, 0x5c, 0x58, 0x1e, 0xc4, 0x96, 0x14, 0xd0, 0xc1, 0xfb, 0x11, 0x4a, 0x0e, 0xda, 0x9f, 0x5f, 0x1a, 0x24, 0xc3, 0x0d, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x29, 0x17, 0xd6, 0x03, 0xa7, 0x5c, 0x68, 0x38, 0xa4, 0x0e, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x9c, 0x72, 0xa1, 0x62, 0xe0, 0x94, 0x0b, 0x1d, 0x87, 0x18, 0x1e, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x4e, 0xb9, 0xd0, 0x32, 0x70, 0xca, 0x85, 0xa6, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0x38, 0xc5, 0x8e, 0xc7, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x06, 0xcf, 0x71, 0xe7, 0x1d, 0x38, 0xd7, 0xc2, 0x7e, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0xad, 0x85, 0xe4, 0x20, 0xb2, 0xb7, 0x80, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x73, 0x2d, 0x24, 0x07, 0x91, 0xbd, 0x05, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0xce, 0xb5, 0x10, 0x0d, 0x9c, 0x6b, 0x21, 0x1d, 0x24, 0x03, 0x4b, 0x7d, 0x07, 0x67, 0x2f, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x73, 0x2d, 0xc4, 0x03, 0xe7, 0x5a, 0x98, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x9c, 0x6b, 0x21, 0x1f, 0x38, 0xd7, 0xc2, 0x72, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x9c, 0x6b, 0x61, 0x30, 0x70, 0xae, 0x85, 0xd1, 0x41, 0x82, 0x27, 0xc2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0xb9, 0x16, 0x56, 0x03, 0xe7, 0x5a, 0x18, 0x1e, 0x52, 0x07, 0xc7, 0xa1, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0x5c, 0x0b, 0xd3, 0x81, 0x73, 0x2d, 0xac, 0x0f, 0xa9, 0x83, 0xe3, 0xd0, 0xf1, 0x78, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0x9a, 0x0b, 0xc9, 0xc1, 0x7b, 0x36, 0x7e, 0x07, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0xce, 0x85, 0xe4, 0xe0, 0x3d, 0x1b, 0xbf, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x3d, 0x17, 0x92, 0x83, 0xf7, 0x6c, 0xfc, 0x0e, 0xbb, 0xc1, 0x38, 0x64, 0x5a, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0xb8, 0xe7, 0xc2, 0x64, 0xe0, 0x9e, 0x0b, 0x35, 0x83, 0x6c, 0x0d, 0x79, 0xec, 0xc5, 0x41, 0xb0, 0xc1, 0x4b, 0x91, 0x48, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xbc, 0x62, 0x89, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x0d, 0xa2, 0xf0, 0xd0, 0x67, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x3d, 0x17, 0x66, 0x03, 0xf7, 0x5c, 0xa8, 0x38, 0x88, 0x21, 0x45, 0x9f, 0xe3, 0xd0, 0x71, 0xe8, 0x78, 0x3c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0xdc, 0x73, 0xa1, 0xe4, 0x20, 0xda, 0xdd, 0x80, 0x0e, 0xa7, 0xd8, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0xd0, 0x85, 0xe4, 0xe0, 0x3d, 0x1b, 0xbf, 0xc3, 0x2e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x1c, 0x74, 0x21, 0x1d, 0x38, 0xe8, 0xc2, 0x7e, 0xb8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x83, 0x2e, 0xe4, 0x03, 0x07, 0x5d, 0x98, 0x1c, 0xa4, 0x2d, 0x50, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x07, 0x5d, 0xd8, 0x0c, 0x1c, 0x74, 0x61, 0x3e, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x0d, 0xde, 0x5e, 0xea, 0x3b, 0x70, 0xd0, 0x85, 0xdd, 0x41, 0xb4, 0xa1, 0x76, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0xd0, 0x85, 0xe1, 0xc1, 0xd3, 0x57, 0x7d, 0x0f, 0xfd, 0xc9, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x1b, 0x3c, 0xc4, 0xd5, 0xf7, 0xe0, 0x99, 0xb3, 0xbe, 0x87, 0x68, 0x1e, 0x87, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x0d, 0x9e, 0xaa, 0xec, 0x7b, 0xf0, 0x9e, 0x8d, 0xdf, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0xd1, 0x85, 0x74, 0xe0, 0xa2, 0x0b, 0x1d, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x45, 0x17, 0x06, 0x07, 0xd1, 0x2b, 0x08, 0x34, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x2e, 0xba, 0xb0, 0x18, 0xb8, 0xe8, 0xc2, 0xe8, 0x20, 0x82, 0xd6, 0x74, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0xb8, 0xe8, 0xc2, 0x6a, 0xe0, 0xa2, 0x0b, 0xb3, 0x83, 0x02, 0x00, 0x6a, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc1, 0xc3, 0x9b, 0x7d, 0x07, 0x2e, 0xba, 0x50, 0x31, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x0d, 0xde, 0x02, 0xed, 0x3b, 0x70, 0xd1, 0x85, 0xed, 0x41, 0x04, 0xad, 0xe9, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x6c, 0xf0, 0x5a, 0x68, 0xdf, 0x83, 0xf7, 0x4d, 0xfb, 0x1e, 0xfa, 0x93, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0xb8, 0xe8, 0xc2, 0x7c, 0xe0, 0xa2, 0x0b, 0x0d, 0x87, 0x68, 0x1e, 0x87, 0x8e, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x49, 0x17, 0x92, 0x83, 0xf7, 0x6c, 0xfc, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x93, 0x2e, 0xa4, 0x03, 0x27, 0x5d, 0xe8, 0x1b, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x4e, 0xba, 0x30, 0x39, 0x88, 0xc1, 0x48, 0xa0, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0xd2, 0x85, 0xcd, 0xc0, 0x49, 0x17, 0x76, 0x07, 0x71, 0x97, 0x03, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0xd2, 0x85, 0xe1, 0xc1, 0x03, 0xca, 0x7d, 0x07, 0xc1, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x49, 0x17, 0x96, 0x03, 0x27, 0x5d, 0x28, 0x18, 0x7e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0xa4, 0x0b, 0xf3, 0x83, 0x98, 0xbd, 0x04, 0x3a, 0x68, 0xe7, 0x33, 0xe6, 0xe0, 0xb4, 0x82, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x49, 0x17, 0x1a, 0x06, 0x4e, 0xba, 0xd0, 0x71, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0xd2, 0x85, 0x92, 0x83, 0xc7, 0x8a, 0xfb, 0x1e, 0x24, 0xcb, 0x97, 0x1c, 0x87, 0x8e, 0x43, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x4d, 0x17, 0x92, 0x83, 0xf7, 0x6c, 0xfc, 0x0e, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x9b, 0x2e, 0xa4, 0x03, 0x37, 0x5d, 0x68, 0x1b, 0x04, 0x0b, 0x82, 0x0d, 0x46, 0xfe, 0xc3, 0xe2, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0xb8, 0xe9, 0xc2, 0xe0, 0xe0, 0xc5, 0xf0, 0xbe, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x37, 0x5d, 0x18, 0x0d, 0xdc, 0x74, 0x61, 0x35, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0xdc, 0x74, 0x61, 0x71, 0x10, 0x67, 0xa3, 0x40, 0x83, 0x60, 0x83, 0x78, 0xf2, 0xd4, 0x39, 0x48, 0x7f, 0x26, 0x1a, 0x64, 0x1b, 0xc4, 0x4e, 0x28, 0xd0, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x4d, 0x17, 0xa6, 0x03, 0x37, 0x5d, 0xd8, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x37, 0x5d, 0x98, 0x1d, 0xc4, 0xc0, 0x29, 0xd0, 0x20, 0xd8, 0x20, 0x9e, 0x3c, 0x75, 0x0e, 0xd6, 0x80, 0x32, 0x0d, 0xb2, 0x0d, 0x62, 0x27, 0x14, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0xb8, 0xe9, 0x42, 0xc1, 0xc0, 0x4d, 0x17, 0x1a, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x9b, 0x2e, 0x8c, 0x0f, 0xe2, 0x53, 0x15, 0x68, 0x10, 0x6c, 0x10, 0x4f, 0x9e, 0x3a, 0x07, 0xc7, 0xec, 0xde, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc1, 0x03, 0xe7, 0x7d, 0x07, 0x6e, 0xba, 0x50, 0x36, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x6e, 0xba, 0x50, 0x72, 0xf0, 0x06, 0x7a, 0xdf, 0x41, 0x32, 0x20, 0xb8, 0xfa, 0x0e, 0xce, 0x79, 0xc7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x06, 0xef, 0xb2, 0xf7, 0x1d, 0xb8, 0xe9, 0x42, 0xd7, 0x61, 0xed, 0xf7, 0x38, 0x74, 0x1c, 0x1a, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x8e, 0xba, 0x90, 0x1c, 0xbc, 0x67, 0xe3, 0x77, 0x10, 0x2c, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x1c, 0x75, 0x21, 0x1d, 0x38, 0xea, 0x42, 0xe7, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0xd4, 0x85, 0xc5, 0x41, 0x64, 0xd6, 0x02, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0xa3, 0x2e, 0x4c, 0x06, 0x8e, 0xba, 0xd0, 0x33, 0x08, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x8e, 0xba, 0xb0, 0x1b, 0x38, 0xea, 0xc2, 0x7e, 0xf8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0xa3, 0x2e, 0x8c, 0x0f, 0x22, 0x35, 0x17, 0xe8, 0xe0, 0xfd, 0x08, 0x25, 0x07, 0xed, 0xcf, 0x2f, 0x0d, 0x92, 0x61, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0xa8, 0x0b, 0x05, 0x03, 0x47, 0x5d, 0x28, 0x39, 0xa4, 0x0e, 0x86, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x1c, 0x75, 0xa1, 0x65, 0xe0, 0xa8, 0x0b, 0x35, 0x87, 0x18, 0x1e, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x38, 0xea, 0x42, 0xd1, 0xc0, 0x51, 0x17, 0xaa, 0x0e, 0x42, 0x0a, 0x7c, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x47, 0x5d, 0xe8, 0x1a, 0x38, 0xea, 0x42, 0xdd, 0x41, 0x90, 0xc5, 0x0f, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x38, 0xea, 0x42, 0xdf, 0xc0, 0x51, 0x17, 0x2a, 0x0f, 0x06, 0x6b, 0xec, 0x71, 0x68, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0xb8, 0xea, 0x42, 0x72, 0xf0, 0x9e, 0x8d, 0xdf, 0x61, 0x37, 0x18, 0xf5, 0x92, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x57, 0x5d, 0x98, 0x0c, 0x5c, 0x75, 0x61, 0x73, 0x88, 0xe1, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0xd6, 0x85, 0xe4, 0xe0, 0x3d, 0x1b, 0xbf, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0xac, 0x0b, 0xd1, 0xc1, 0xe3, 0x25, 0x7e, 0x87, 0x5f, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x38, 0xeb, 0x42, 0x7e, 0xf0, 0x78, 0x89, 0xdf, 0xe1, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x0d, 0x5e, 0xfc, 0xef, 0x7b, 0xf0, 0x78, 0x89, 0xdf, 0x41, 0xb0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x6c, 0xf0, 0x3e, 0x81, 0xdf, 0x83, 0x27, 0x36, 0xfc, 0x0e, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x6c, 0xf0, 0x9e, 0x82, 0xdf, 0x83, 0x27, 0x36, 0xfc, 0x0e, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x6c, 0xf0, 0x5a, 0x85, 0xdf, 0x83, 0x27, 0x36, 0xfc, 0x1e, 0xbc, 0x4c, 0x4d, 0xe7, 0xe0, 0xfc, 0x44, 0x7b, 0x50, 0x32, 0x34, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x07, 0xcf, 0x81, 0xf8, 0x3d, 0x08, 0x52, 0xfc, 0xe3, 0xd0, 0xc1, 0x69, 0x05, 0xf7, 0xa0, 0x64, 0x68, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x36, 0x78, 0x6b, 0xc5, 0xef, 0xc1, 0x03, 0x32, 0x7e, 0x0f, 0x42, 0x00, 0xfc, 0x38, 0x74, 0x38, 0xc5, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0xc5, 0x16, 0x92, 0x81, 0xa3, 0x2d, 0x14, 0x0c, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x4e, 0xb6, 0x90, 0x1c, 0x44, 0x1c, 0x36, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0xb3, 0x85, 0xe4, 0x20, 0xe2, 0xb0, 0x81, 0x86, 0xdd, 0x60, 0x1c, 0x32, 0x2d, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0xdc, 0x6c, 0x61, 0x32, 0x70, 0xb3, 0x85, 0x9a, 0x41, 0xb6, 0x86, 0x3c, 0xf6, 0xe2, 0x20, 0xd8, 0xe0, 0xa5, 0x48, 0x24, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x5e, 0xb1, 0x44, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x06, 0x51, 0x78, 0xe8, 0x33, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0x66, 0x0b, 0xb3, 0x83, 0xb7, 0xf4, 0xf5, 0x1e, 0xc4, 0x90, 0xa2, 0xcf, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x1e, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x6e, 0xb6, 0x50, 0x72, 0x10, 0xeb, 0xdc, 0x40, 0x87, 0x53, 0x6c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x38, 0xda, 0x42, 0x72, 0x10, 0x71, 0xd8, 0x40, 0x83, 0x60, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0x68, 0x0b, 0xd1, 0xc0, 0xd1, 0x16, 0x16, 0xc3, 0x2f, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x1c, 0x6d, 0x21, 0x3f, 0x88, 0xdf, 0x72, 0xa0, 0x83, 0xf5, 0x91, 0x0e, 0x07, 0xe9, 0xbf, 0x0d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x1c, 0x6d, 0x61, 0x32, 0x70, 0xb4, 0x85, 0xd5, 0x21, 0x75, 0x30, 0xfc, 0xc6, 0xf3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0x68, 0x0b, 0xb3, 0x81, 0xa3, 0x2d, 0xec, 0x0f, 0x4a, 0x99, 0x9d, 0xe3, 0xd0, 0xf1, 0x78, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x38, 0xdf, 0x42, 0x32, 0x70, 0xc0, 0x85, 0x8a, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0xdc, 0x6f, 0x21, 0x39, 0x88, 0x6d, 0x76, 0xa0, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0x80, 0x0b, 0xc9, 0x41, 0x6c, 0xb3, 0x03, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x03, 0x2e, 0x44, 0x03, 0x07, 0x5c, 0x58, 0x0c, 0xbf, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0xc0, 0x85, 0xfc, 0x20, 0x46, 0xe2, 0x81, 0x0e, 0xd6, 0x47, 0x3a, 0x1c, 0xbc, 0x37, 0x2d, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x03, 0x2e, 0x4c, 0x06, 0x0e, 0xb8, 0xb0, 0x3a, 0x44, 0x73, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x07, 0x5c, 0x98, 0x0d, 0x1c, 0x70, 0x61, 0x79, 0x18, 0x97, 0xe1, 0x37, 0x9e, 0x0f, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x07, 0x5c, 0x98, 0x0e, 0x1c, 0x70, 0xa1, 0xe1, 0x60, 0x2c, 0x76, 0x1e, 0x87, 0x8e, 0xc7, 0xc7, 0xe3, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0xc6, 0x8b, 0x1f, 0x38, 0xf2, 0xc2, 0x74, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x47, 0x5e, 0xfc, 0x41, 0xe4, 0xe7, 0x03, 0x0d, 0x82, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x23, 0x2f, 0x04, 0x03, 0x47, 0x5e, 0x08, 0x07, 0xc9, 0xc0, 0x79, 0x77, 0x70, 0xcc, 0x2a, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x38, 0xf2, 0x42, 0x3a, 0x70, 0xe4, 0x85, 0xe5, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x38, 0xf2, 0x42, 0x3c, 0x70, 0xe4, 0x85, 0xc1, 0xc1, 0x83, 0xd7, 0xe0, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x38, 0xf2, 0xc2, 0x62, 0xe0, 0xc8, 0x0b, 0xa3, 0x43, 0x34, 0x87, 0xdf, 0x78, 0x3e, 0xc8, 0xd6, 0x20, 0x11, 0x1f, 0x78, 0xdc, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x1c, 0x79, 0x61, 0x35, 0x70, 0xe4, 0x85, 0xe1, 0x61, 0x5c, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0xf1, 0x78, 0x10, 0x2c, 0x2e, 0x08, 0x16, 0x17, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x64, 0x20, 0x7a, 0x07, 0x41, 0xce, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xec, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xf5, 0x91, 0x0e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x58, 0x47, 0xaa, 0x71, 0xd0, 0x5c, 0xee, 0xca, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xeb, 0x48, 0x35, 0x0e, 0x79, 0x96, 0xe3, 0xd0, 0x21, 0x55, 0x73, 0x1c, 0x3a, 0x1e, 0x1f, 0x8f, 0x57, 0x10, 0x2c, 0x48, 0x06, 0x9a, 0xf6, 0x1d, 0x0c, 0x47, 0xe9, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x38, 0xad, 0xe0, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x0f, 0x22, 0x7f, 0x1f, 0xe7, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x38, 0xad, 0xe0, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x0f, 0x22, 0xd5, 0x1f, 0xe7, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x38, 0xad, 0xe0, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x0f, 0xa2, 0x23, 0x20, 0xe7, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x38, 0xad, 0xe0, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x0f, 0x22, 0x71, 0x20, 0xe7, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x38, 0xad, 0xe0, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x0f, 0x62, 0xbf, 0x20, 0xe7, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x38, 0xad, 0xe0, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x0f, 0xe2, 0x0d, 0x21, 0xe7, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x38, 0xad, 0xe0, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x0f, 0xa2, 0x5d, 0x21, 0xe7, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x4e, 0x2b, 0xb8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x83, 0xa8, 0x6a, 0xc8, 0x39, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x5a, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x1b, 0xc4, 0x9c, 0x41, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xb2, 0x63, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x40, 0xfc, 0x0e, 0x82, 0x9c, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x31, 0x73, 0x10, 0x75, 0x08, 0x41, 0xc7, 0xa1, 0x43, 0xaa, 0xe6, 0x38, 0x74, 0x3c, 0x3e, 0x1e, 0x0f, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x83, 0x98, 0x33, 0x08, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0x76, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x0c, 0xd7, 0x73, 0x1c, 0xc4, 0x04, 0x42, 0xd0, 0x21, 0x55, 0x73, 0x1c, 0x3a, 0x1e, 0x1f, 0x8f, 0x17, 0x04, 0x1b, 0x2c, 0x0b, 0x83, 0x59, 0x1c, 0x04, 0x0b, 0x92, 0x81, 0xa6, 0x7d, 0x07, 0xc7, 0xac, 0xe2, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x38, 0x07, 0x7f, 0x1f, 0x8c, 0xd1, 0x88, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x74, 0x07, 0xcc, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x34, 0x4b, 0x3a, 0x64, 0xed, 0x8e, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x07, 0xaf, 0xc1, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x34, 0x4b, 0x3a, 0x48, 0xed, 0x00, 0x39, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xce, 0xc1, 0xdf, 0x07, 0x29, 0x72, 0x20, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xe8, 0x0e, 0x98, 0x39, 0x48, 0xa9, 0x12, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x3c, 0x78, 0x0d, 0x6e, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xa1, 0x87, 0xd0, 0x41, 0xe4, 0xf2, 0xe3, 0x1c, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x88, 0x6f, 0x93, 0xa0, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xa2, 0x16, 0x25, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xf0, 0xe0, 0x35, 0xb8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x66, 0x49, 0x07, 0x07, 0x22, 0xfe, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc6, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xb1, 0xdc, 0x12, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x9c, 0xbe, 0x04, 0x0d, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x07, 0xaf, 0xc1, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xf4, 0x10, 0x3a, 0x18, 0xd7, 0xe8, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x1e, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0xc3, 0x6e, 0xc8, 0x63, 0x6d, 0x18, 0x97, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x82, 0x60, 0x83, 0xf3, 0x77, 0xf9, 0xe1, 0xa9, 0x81, 0x41, 0xb0, 0xc1, 0x32, 0x78, 0x81, 0x43, 0x07, 0x8d, 0xe3, 0xf1, 0xf1, 0xf8, 0x20, 0xdd, 0x52, 0x7a, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0x08, 0x36, 0x58, 0xa9, 0xe9, 0x75, 0x90, 0xd6, 0xd7, 0x71, 0x3c, 0x5e, 0x10, 0x6c, 0xb0, 0x1e, 0x51, 0x65, 0x90, 0x0c, 0x73, 0x50, 0x70, 0xe1, 0x2c, 0x08, 0x36, 0x88, 0x18, 0xe1, 0x9d, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0xc2, 0xdf, 0xe9, 0x60, 0xf8, 0xc7, 0x1e, 0x94, 0x68, 0x38, 0xc7, 0xa1, 0x15, 0x03, 0xfc, 0xcb, 0xf0, 0xe0, 0xc2, 0xdc, 0xc8, 0x40, 0x66, 0x64, 0x5a, 0xc4, 0xf2, 0xe8, 0xca, 0x40, 0xd6, 0x41, 0xb0, 0xc1, 0xc8, 0x7f, 0x58, 0x1c, 0x04, 0x0b, 0x92, 0x81, 0xf6, 0x4e, 0x07, 0x27, 0xa1, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x25, 0x1a, 0xce, 0xc2, 0x6f, 0x3c, 0xdf, 0x10, 0xcd, 0x83, 0x01, 0xcb, 0x7b, 0xe8, 0x18, 0x76, 0x1c, 0x3a, 0x1e, 0x2f, 0x08, 0x36, 0xc4, 0x70, 0x71, 0xd8, 0x0d, 0xeb, 0x7b, 0x1b, 0x62, 0x38, 0x08, 0x16, 0x24, 0x1b, 0xc4, 0x3c, 0x45, 0xce, 0xc1, 0x49, 0xe8, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc0, 0x0f, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0xbd, 0x59, 0xc9, 0xa1, 0x51, 0xcb, 0x71, 0xe8, 0x78, 0x3c, 0x08, 0x36, 0x88, 0x18, 0xe1, 0x9d, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xac, 0x47, 0x54, 0x19, 0x24, 0x03, 0xc1, 0x3b, 0x28, 0xb8, 0x70, 0x0e, 0x06, 0x7e, 0xc8, 0x71, 0x68, 0xf8, 0x05, 0xc1, 0xe2, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x17, 0x04, 0x1b, 0x3c, 0x28, 0x82, 0xe6, 0x20, 0x86, 0xf3, 0x6f, 0x06, 0xc1, 0x06, 0x2f, 0x6a, 0x03, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x71, 0xb8, 0x1c, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0x65, 0x0f, 0x34, 0x07, 0x31, 0x9c, 0x7f, 0x73, 0x1c, 0x3a, 0x1e, 0x2f, 0xfc, 0x82, 0x60, 0x83, 0xb8, 0x4c, 0x31, 0x59, 0xdc, 0xd0, 0x8c, 0x67, 0x10, 0x6c, 0xf0, 0xb2, 0x07, 0x9a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0xdf, 0xd0, 0x9f, 0xfc, 0xd0, 0x8c, 0x67, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x68, 0x86, 0xba, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x90, 0x60, 0x80, 0x30, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x92, 0xb1, 0xc7, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xc3, 0x49, 0xf1, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x6d, 0xb2, 0xb1, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0x8d, 0x32, 0x39, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xda, 0x2d, 0x86, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x89, 0xcf, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0xd2, 0x00, 0xc2, 0xc1, 0x62, 0xc2, 0x93, 0xe3, 0xd0, 0x41, 0xc2, 0xed, 0xc9, 0x71, 0xe8, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0xc1, 0x2a, 0xc8, 0x83, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0xdf, 0xa0, 0x8c, 0xdb, 0x39, 0x48, 0xa4, 0xe7, 0x59, 0xf8, 0x8d, 0xe7, 0x1b, 0x14, 0x00, 0x50, 0x87, 0x16, 0x40, 0x0b, 0xbf, 0xf1, 0x7c, 0x43, 0x2b, 0xf1, 0x41, 0xb0, 0x41, 0xb4, 0x0f, 0xb6, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x48, 0x73, 0xcf, 0x38, 0xa4, 0x6a, 0x8e, 0x43, 0x0b, 0xbf, 0xf1, 0x7c, 0x43, 0x2b, 0xf1, 0x43, 0xd3, 0xa1, 0x83, 0x81, 0x1f, 0x72, 0x1c, 0x1a, 0x04, 0x0b, 0x82, 0x0d, 0x46, 0xf0, 0xe9, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0xe0, 0xa9, 0x11, 0x01, 0xc7, 0xa1, 0x41, 0xb0, 0x41, 0x8a, 0x50, 0xc8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x12, 0x0d, 0x67, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x68, 0x52, 0xcd, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x89, 0xf7, 0x79, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x7b, 0x90, 0xda, 0x01, 0x72, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0xc1, 0x32, 0xd9, 0xa0, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x41, 0x74, 0x30, 0xfc, 0x63, 0x0f, 0x06, 0xe2, 0xd9, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x71, 0x60, 0x16, 0x74, 0xb0, 0x98, 0xcf, 0xeb, 0x38, 0x74, 0x3c, 0x3e, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0x3c, 0x63, 0x72, 0x79, 0x70, 0xf4, 0x21, 0xb5, 0x74, 0x3c, 0x1e, 0x7e, 0x41, 0xb0, 0xc1, 0xc8, 0x7f, 0x58, 0x5c, 0x10, 0x2c, 0x08, 0x36, 0x18, 0xdc, 0x95, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x59, 0xbb, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x9e, 0xaa, 0x44, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x1b, 0x94, 0x71, 0x3b, 0x07, 0x29, 0xc4, 0x09, 0x0b, 0xbf, 0xf1, 0x7c, 0x83, 0x02, 0x00, 0xea, 0xd0, 0x48, 0x70, 0xe1, 0x37, 0x9e, 0x6f, 0x50, 0xc6, 0xed, 0x1c, 0x04, 0xa5, 0xf7, 0xc1, 0xc0, 0x0f, 0x39, 0x0e, 0x1d, 0x87, 0x06, 0xc1, 0x06, 0x11, 0x32, 0x69, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x5c, 0xa3, 0x2f, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0xb4, 0xa1, 0x76, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x38, 0x5c, 0xcc, 0x21, 0x75, 0x70, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x82, 0xd6, 0x74, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x1c, 0x2e, 0x84, 0x87, 0xd4, 0xc1, 0x71, 0xe8, 0x38, 0x34, 0x08, 0x36, 0x78, 0x50, 0x04, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xc8, 0x86, 0x0b, 0x3a, 0x74, 0x0c, 0x3b, 0x0e, 0x1d, 0x8f, 0x07, 0xd9, 0x1a, 0xd2, 0x40, 0xe3, 0x00, 0x2f, 0xde, 0x18, 0x5a, 0xd8, 0x18, 0x5a, 0x78, 0x48, 0x2d, 0x1d, 0x8f, 0x07, 0xd9, 0x1a, 0xd2, 0x40, 0xe3, 0x00, 0xdf, 0x18, 0x5a, 0xd8, 0x18, 0x5a, 0x78, 0x10, 0x31, 0x46, 0x33, 0xc7, 0xe3, 0x83, 0x71, 0x07, 0x35, 0x08, 0x16, 0x17, 0x04, 0x1b, 0x2c, 0x0b, 0x83, 0x59, 0x5c, 0x83, 0xf8, 0x22, 0xb7, 0x39, 0x44, 0x73, 0x0d, 0x62, 0x2a, 0xe8, 0xe6, 0xd0, 0x48, 0xf0, 0xe0, 0x8c, 0x00, 0x7f, 0x3c, 0x1e, 0x04, 0x1b, 0x3c, 0xd8, 0xf4, 0x62, 0x71, 0x0d, 0xc6, 0x4f, 0xd7, 0x20, 0xd8, 0x20, 0x2a, 0xa0, 0x6f, 0x0e, 0x52, 0xc7, 0x76, 0xd6, 0x60, 0x78, 0x51, 0x0c, 0x82, 0x0d, 0xa2, 0x02, 0xfa, 0xe6, 0x60, 0xc5, 0x83, 0xcd, 0xc1, 0x19, 0x01, 0xfe, 0x78, 0xbc, 0xb8, 0x20, 0xd8, 0x20, 0xb6, 0x15, 0x82, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x44, 0x4c, 0xd9, 0xce, 0xc1, 0xc3, 0xce, 0x16, 0x8e, 0x43, 0x2b, 0x08, 0x36, 0x88, 0x6d, 0x85, 0xa0, 0x83, 0x28, 0x07, 0xdb, 0x59, 0x10, 0x2c, 0x48, 0x06, 0x04, 0x6b, 0xdf, 0xc1, 0x70, 0x94, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xb0, 0xb4, 0x24, 0x6d, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0x41, 0xa4, 0x8c, 0xdb, 0x1c, 0xa4, 0x71, 0x9f, 0x1c, 0xa4, 0x86, 0x9d, 0x1c, 0x87, 0x16, 0x04, 0x1b, 0xc4, 0x9a, 0x5f, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa5, 0x25, 0x69, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x0d, 0x22, 0x65, 0xdc, 0xe6, 0xa0, 0x64, 0x68, 0x3a, 0x48, 0x40, 0x21, 0x39, 0x0e, 0x2d, 0x08, 0x36, 0x88, 0x6d, 0x85, 0xa0, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x11, 0x53, 0xb6, 0x73, 0x10, 0x33, 0xdd, 0x35, 0xc7, 0xa1, 0x05, 0xc1, 0x06, 0xb1, 0xad, 0x10, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0x45, 0xe5, 0xe4, 0xe0, 0x61, 0x67, 0x0b, 0xc7, 0xa1, 0x05, 0xc1, 0xe2, 0x6a, 0x58, 0xa1, 0xdd, 0xe0, 0x34, 0xd9, 0x7b, 0xb0, 0xe2, 0x95, 0xa7, 0x83, 0x67, 0x9b, 0x5e, 0x2c, 0x0e, 0xbf, 0x20, 0x5a, 0xf0, 0x76, 0x10, 0x6c, 0xf0, 0xb2, 0x07, 0x9a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0xdf, 0xd0, 0x9f, 0xfc, 0xa0, 0xd5, 0x4c, 0xa7, 0x83, 0xe2, 0x9c, 0xeb, 0x38, 0x34, 0x88, 0x16, 0xb4, 0x0e, 0x82, 0x0d, 0x5e, 0xf6, 0x40, 0x73, 0x10, 0x0b, 0x3c, 0x3b, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x3c, 0xf6, 0xe2, 0x20, 0xd8, 0xa0, 0x61, 0x91, 0x95, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x4d, 0x9e, 0xac, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0xb8, 0x61, 0xe2, 0xd6, 0x50, 0xc7, 0x37, 0xbc, 0x7c, 0x37, 0x01, 0xfc, 0xa4, 0xb9, 0xd9, 0x85, 0xb1, 0xa5, 0x91, 0xb5, 0xc0, 0x89, 0xad, 0x91, 0x99, 0xb5, 0xc0, 0x85, 0xc9, 0x85, 0xb5, 0xcd, 0x1b, 0x26, 0x6e, 0x83, 0xd5, 0xa3, 0xfa, 0x07, 0xab, 0x47, 0xf5, 0x87, 0xdf, 0x78, 0xbe, 0x78, 0x10, 0x63, 0x8d, 0x41, 0x07, 0x29, 0x79, 0x19, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0xd8, 0x85, 0x5d, 0x10, 0x6c, 0x10, 0x0f, 0xbb, 0x32, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x4a, 0xec, 0xc1, 0x83, 0xd8, 0x26, 0xbb, 0x39, 0x0e, 0x2d, 0xec, 0x82, 0x60, 0x83, 0x78, 0xd8, 0x95, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x10, 0xf6, 0xd4, 0x07, 0xf1, 0x73, 0x76, 0x73, 0x1c, 0x5a, 0xd8, 0x85, 0x5d, 0xb8, 0x83, 0xc8, 0x67, 0xb8, 0x39, 0xac, 0x6f, 0x1e, 0xd2, 0xb9, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x2f, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x0d, 0x1a, 0xad, 0x85, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x50, 0x62, 0x0f, 0x1e, 0x8c, 0x0b, 0xb3, 0xe3, 0xd0, 0xb0, 0x1b, 0x8c, 0x7a, 0xc9, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0xb7, 0x18, 0xea, 0x20, 0x32, 0x2b, 0x83, 0x86, 0xdf, 0x78, 0x3e, 0xcc, 0x41, 0x6c, 0x5c, 0x06, 0x0d, 0x82, 0x05, 0xc1, 0x06, 0xd1, 0x3b, 0xda, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0xd1, 0x53, 0x61, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x88, 0x04, 0x97, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xb2, 0xac, 0x0e, 0xa2, 0xaa, 0x5c, 0xe6, 0x38, 0x74, 0x1c, 0x1a, 0x04, 0x1b, 0x34, 0x9d, 0xff, 0x32, 0xfc, 0x82, 0x68, 0x61, 0x06, 0xc1, 0xe2, 0xb0, 0x1b, 0xc4, 0x43, 0xdc, 0xcd, 0x86, 0x68, 0x0e, 0x82, 0x05, 0xc1, 0x06, 0x71, 0x2b, 0x77, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0x82, 0x6c, 0xff, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x31, 0x42, 0x77, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x1b, 0xfa, 0x93, 0x1f, 0x34, 0xb9, 0x4b, 0x32, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x8a, 0x50, 0xc8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa1, 0x58, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x4b, 0x54, 0x01, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0xbf, 0xc1, 0x0b, 0x25, 0x01, 0x0e, 0x12, 0x3e, 0x05, 0x0e, 0xe2, 0x0e, 0xef, 0xe6, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x06, 0xc1, 0x86, 0x18, 0x0e, 0xbf, 0x20, 0x5a, 0xc8, 0x20, 0x58, 0x1c, 0x76, 0x41, 0xb0, 0x41, 0x0c, 0xec, 0xdd, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x03, 0x0b, 0x07, 0x69, 0x69, 0x1f, 0xc7, 0xa1, 0x0d, 0xa9, 0x83, 0x41, 0xb0, 0x20, 0xd8, 0x20, 0x7a, 0x34, 0x70, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xc5, 0xa2, 0x25, 0xd8, 0xfc, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0xd8, 0x0d, 0x62, 0xd8, 0xef, 0x66, 0x41, 0xb0, 0x41, 0xc4, 0x46, 0xd3, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x97, 0xe0, 0xd9, 0xff, 0x83, 0x82, 0x6c, 0xe7, 0x38, 0x34, 0x41, 0xe6, 0x7f, 0x10, 0x2c, 0xc1, 0xe2, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x6f, 0x70, 0xae, 0x31, 0x1f, 0x04, 0x1b, 0xc4, 0xde, 0xfd, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa1, 0x58, 0x74, 0x10, 0x0d, 0x7e, 0x37, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x6f, 0x1c, 0x1a, 0x04, 0x1b, 0xc4, 0xde, 0xfd, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa1, 0x58, 0x74, 0x90, 0x08, 0xd7, 0x70, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x0e, 0xe2, 0x1f, 0xf0, 0xe6, 0xf8, 0x76, 0x3c, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0x06, 0x51, 0x38, 0x78, 0x33, 0x88, 0x16, 0x84, 0x83, 0x60, 0x83, 0xa3, 0xc4, 0xf2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xb2, 0x63, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xb4, 0x50, 0x90, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0xdf, 0xd0, 0x9f, 0x7c, 0x10, 0x6c, 0x70, 0xc8, 0x59, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x10, 0x25, 0x87, 0x37, 0x07, 0xb1, 0x8f, 0x1a, 0x74, 0x1c, 0x3a, 0xa4, 0x0e, 0x8e, 0x43, 0xc7, 0xa1, 0x43, 0x72, 0xe9, 0xf8, 0x76, 0x3c, 0x1e, 0x04, 0x0b, 0x92, 0x81, 0x55, 0xa7, 0x83, 0x73, 0xde, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa1, 0x58, 0xb4, 0x41, 0xe3, 0x5b, 0x22, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x2c, 0xa4, 0x9c, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x0d, 0xfd, 0xc9, 0x0f, 0x12, 0xbd, 0x15, 0x0e, 0xd1, 0x3c, 0x0e, 0x1d, 0x87, 0x0e, 0xa7, 0xd8, 0xf1, 0x78, 0x10, 0x6c, 0x10, 0xdb, 0x0a, 0x41, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x22, 0xa6, 0x6c, 0xe7, 0xe0, 0xb9, 0x36, 0x01, 0xc7, 0xa1, 0x05, 0xc1, 0x06, 0xb1, 0xad, 0x10, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0x45, 0xe5, 0xe4, 0x20, 0x92, 0xb2, 0x6b, 0x8e, 0x43, 0x0b, 0x82, 0x0d, 0x62, 0x5b, 0x21, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x8a, 0xca, 0xc9, 0xc1, 0x73, 0x6d, 0x02, 0x8e, 0x43, 0x0b, 0x82, 0x0d, 0x62, 0xcd, 0x2f, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xd2, 0x92, 0xb4, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0x06, 0x91, 0x32, 0x6e, 0x73, 0xb0, 0x2a, 0x1a, 0xe9, 0x20, 0xe1, 0xf6, 0xe4, 0x38, 0xb4, 0x20, 0xd8, 0x20, 0xb6, 0x15, 0x82, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xa4, 0xa8, 0x9c, 0x1c, 0xc4, 0x4c, 0x77, 0xcd, 0x71, 0x68, 0x10, 0x6c, 0x10, 0xdb, 0x0a, 0x41, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x52, 0x54, 0x4e, 0x86, 0xdf, 0x78, 0x7e, 0x10, 0x21, 0x63, 0x19, 0xc7, 0xa1, 0xe3, 0xf1, 0xc2, 0x2f, 0x08, 0x16, 0x04, 0x6b, 0x90, 0x94, 0xd6, 0x33, 0x08, 0x36, 0x38, 0x5e, 0x41, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0xc0, 0xbc, 0x7b, 0x10, 0x0f, 0xfc, 0x34, 0x07, 0x89, 0x6a, 0x23, 0xc7, 0xa1, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0xcc, 0xdf, 0xc1, 0x30, 0xf4, 0x39, 0x18, 0x67, 0xb8, 0x83, 0x60, 0x41, 0xb0, 0xc1, 0xe1, 0x4a, 0x7a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x71, 0x64, 0x49, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x18, 0x04, 0xff, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x31, 0xc0, 0xbe, 0x7d, 0xba, 0x9e, 0x4b, 0x63, 0x4c, 0x02, 0xcb, 0x9a, 0xf3, 0x5e, 0xd4, 0x3b, 0xdf, 0x9b, 0x8e, 0x43, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x88, 0xdb, 0x21, 0x75, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xe0, 0x87, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0xbb, 0x43, 0xea, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0xc7, 0xc0, 0x08, 0xda, 0x1e, 0x7e, 0xe3, 0xf9, 0x18, 0x18, 0x42, 0xdb, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x06, 0xd7, 0x0e, 0xa9, 0x9a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xb4, 0x5b, 0x0c, 0x35, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x65, 0x84, 0x25, 0x07, 0x0d, 0x91, 0x09, 0x1c, 0x14, 0x64, 0x3b, 0xc7, 0xa1, 0x43, 0xe3, 0xf9, 0xe3, 0xd0, 0x86, 0x64, 0xc7, 0x86, 0xc4, 0xcc, 0x86, 0xbd, 0xc2, 0x83, 0xf4, 0x3a, 0x81, 0x41, 0xb0, 0xb8, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x6e, 0x43, 0x0c, 0x07, 0xc1, 0x82, 0x64, 0x20, 0x6e, 0x87, 0xa6, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0xc3, 0x1c, 0x9a, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0xa2, 0x43, 0xd3, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x9c, 0xbf, 0xcb, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x84, 0x7c, 0xf6, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x50, 0x76, 0x68, 0x3a, 0x74, 0x48, 0xc3, 0x1d, 0x87, 0x0e, 0x59, 0xbb, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xd1, 0x37, 0x1d, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xaf, 0x3d, 0xe4, 0x6b, 0x8f, 0x43, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x22, 0x4d, 0x3a, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xd8, 0x70, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0xfa, 0xa6, 0x83, 0x06, 0xc1, 0xc6, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x09, 0x22, 0x1d, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xe2, 0x3f, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0xfe, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xd6, 0x7e, 0x0f, 0x6b, 0xbf, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x57, 0x10, 0x6c, 0x70, 0x8e, 0xec, 0x5d, 0x1c, 0x04, 0x0b, 0x82, 0x0d, 0xa2, 0x6f, 0x3a, 0x68, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x90, 0x20, 0xd2, 0x31, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x98, 0xb0, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xd0, 0x02, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x91, 0x65, 0x75, 0x68, 0xf8, 0x75, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x44, 0x07, 0x45, 0xae, 0xc2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x30, 0x07, 0x45, 0xae, 0xc2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xe2, 0x99, 0x3c, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x98, 0xb0, 0x3a, 0x34, 0xfc, 0x3a, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0xcf, 0xe4, 0x41, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x2d, 0x80, 0x0e, 0x46, 0x96, 0xd5, 0x71, 0xe8, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x08, 0xdb, 0x41, 0x91, 0xab, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0xea, 0xcb, 0x83, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x07, 0xd1, 0x5a, 0x6b, 0x73, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x06, 0xc1, 0x82, 0x60, 0x41, 0x32, 0x88, 0x0e, 0x92, 0xe5, 0x4b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x86, 0x39, 0x48, 0x96, 0x2f, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0xc4, 0xb3, 0x07, 0x1d, 0x1c, 0x4c, 0x7f, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0x78, 0xf6, 0xa0, 0x83, 0xf2, 0x6e, 0xef, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x08, 0xdb, 0x41, 0xb2, 0x7c, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x10, 0xb7, 0x83, 0x64, 0xf9, 0x92, 0x83, 0xe4, 0xc0, 0x8b, 0xe3, 0xd0, 0x71, 0xe8, 0x60, 0xa8, 0x08, 0x1c, 0x8f, 0x57, 0x10, 0x6c, 0x50, 0x50, 0x8b, 0x2d, 0x0e, 0xbb, 0x61, 0xd7, 0x60, 0x83, 0xa1, 0x88, 0x34, 0x08, 0x16, 0x24, 0x43, 0x06, 0xd1, 0x82, 0x74, 0x10, 0x6c, 0xd0, 0x6e, 0x31, 0xd4, 0xe1, 0x47, 0x85, 0xe3, 0xf1, 0xf0, 0x0b, 0xa2, 0x85, 0x0c, 0x82, 0x0d, 0x8e, 0xe2, 0xe8, 0x07, 0xa3, 0x3d, 0xf8, 0x78, 0x3c, 0xec, 0xc2, 0x6d, 0x38, 0xda, 0x07, 0xc1, 0x06, 0xf1, 0x9e, 0x51, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x6c, 0xb8, 0x1e, 0xd6, 0x7e, 0x8f, 0x43, 0x0b, 0x82, 0x0d, 0x8e, 0xe2, 0xe8, 0x07, 0x71, 0xe8, 0x72, 0x73, 0x1c, 0x3a, 0x1e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0x82, 0x0d, 0xce, 0xa1, 0xc6, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0xa1, 0xe8, 0xa0, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x9c, 0x43, 0x8d, 0x0f, 0xa2, 0x91, 0xa2, 0xe6, 0x60, 0x6c, 0xb8, 0x1e, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0x61, 0x3b, 0x34, 0x1d, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x98, 0x41, 0xb0, 0xc1, 0x39, 0xd4, 0x78, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x90, 0x20, 0xd2, 0x31, 0xfc, 0xc6, 0xf3, 0x83, 0xf8, 0xfa, 0xa5, 0x39, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x5c, 0x3b, 0x28, 0x72, 0x15, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0x1d, 0x7f, 0x34, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0x2c, 0x11, 0x6a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x50, 0x2c, 0x3a, 0x18, 0x63, 0x4f, 0xc7, 0xa1, 0x83, 0x03, 0x11, 0xff, 0x71, 0xe8, 0x90, 0x3a, 0x38, 0x0e, 0x0d, 0xbb, 0xb0, 0x0b, 0xb7, 0x21, 0x86, 0x83, 0x60, 0x83, 0x08, 0x92, 0x0f, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x09, 0xf3, 0xf8, 0x60, 0xb4, 0x07, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0x65, 0x07, 0xc9, 0xf2, 0x25, 0x87, 0x46, 0x2d, 0xc7, 0xa1, 0xc3, 0xfa, 0xe6, 0x82, 0x60, 0x83, 0xd6, 0x32, 0x00, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x44, 0x3c, 0x7b, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xea, 0xe0, 0xa0, 0xf1, 0xc8, 0x80, 0xe3, 0xd0, 0x71, 0x68, 0x10, 0x6c, 0xd0, 0x5a, 0x06, 0xc0, 0xc1, 0xc0, 0x16, 0x3d, 0x1e, 0x2f, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x41, 0x74, 0xe8, 0xa4, 0x36, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x20, 0xdb, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x84, 0xed, 0xd0, 0x49, 0x6d, 0x90, 0x0c, 0x39, 0x28, 0xb8, 0x70, 0x8e, 0x43, 0x0b, 0x82, 0x05, 0xc9, 0xe0, 0xd5, 0xf1, 0xfc, 0x60, 0x60, 0x8b, 0x1e, 0x87, 0x16, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x04, 0x1b, 0xa4, 0x48, 0x7c, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xf8, 0x21, 0x0b, 0xbf, 0xf1, 0x7c, 0x43, 0x0c, 0x07, 0xc1, 0x06, 0xcb, 0x08, 0x4b, 0x0e, 0xd9, 0x8b, 0x43, 0xaa, 0xe6, 0x38, 0x34, 0x08, 0x16, 0x04, 0x1b, 0x44, 0x23, 0xb3, 0xc5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x81, 0x1f, 0xb2, 0xf0, 0x1b, 0xcf, 0x17, 0x04, 0x1b, 0x2c, 0xfd, 0x1f, 0x3b, 0x08, 0x23, 0xfc, 0xc3, 0xd1, 0x7e, 0xd8, 0x2b, 0x3c, 0x0e, 0x0d, 0x82, 0x05, 0xc1, 0x82, 0x64, 0xf0, 0xea, 0x90, 0xad, 0x38, 0x34, 0x6a, 0x19, 0x7e, 0x41, 0xb4, 0x90, 0x61, 0x17, 0x76, 0xe1, 0x36, 0xa4, 0x0e, 0x06, 0xc1, 0x06, 0x91, 0x91, 0x49, 0x73, 0x10, 0xb5, 0xeb, 0x41, 0x87, 0xf5, 0xcd, 0x05, 0xc1, 0x06, 0x51, 0x4a, 0x06, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0xbd, 0xb1, 0xe1, 0x90, 0x3a, 0x38, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0x83, 0x60, 0x83, 0x52, 0x85, 0x6f, 0xd8, 0x05, 0xc1, 0x06, 0x23, 0xf8, 0xf4, 0x60, 0x60, 0x8b, 0x1e, 0x2c, 0x40, 0x57, 0x39, 0x1e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x76, 0xe1, 0x36, 0xc4, 0x70, 0x10, 0x6c, 0xd0, 0x68, 0x2d, 0xd4, 0xa1, 0x63, 0xfc, 0x86, 0xd4, 0xc1, 0x20, 0xd8, 0xe0, 0xfc, 0x5d, 0x7e, 0xf0, 0x34, 0x4a, 0x88, 0xe3, 0xf1, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x04, 0x1b, 0x34, 0xa0, 0x0a, 0x35, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xe0, 0x87, 0x0c, 0xbf, 0xf1, 0x7c, 0x05, 0xc1, 0x06, 0xe7, 0xef, 0xf2, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x41, 0x74, 0x5f, 0xf7, 0x1c, 0x87, 0x0e, 0xe3, 0xb2, 0x86, 0xa3, 0x7d, 0x10, 0x2c, 0x48, 0x06, 0xce, 0xbd, 0x83, 0x63, 0x56, 0xf1, 0x41, 0x74, 0x66, 0xd2, 0x1c, 0x62, 0x78, 0x1c, 0x3a, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0x7f, 0xec, 0xad, 0x8c, 0x3c, 0x88, 0x18, 0xa3, 0x99, 0xe3, 0xf1, 0x20, 0x58, 0x5c, 0xf8, 0x05, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0x58, 0x10, 0x6c, 0xd0, 0xf8, 0xdc, 0xca, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xf6, 0x5e, 0x4b, 0x0e, 0x1d, 0x34, 0x8e, 0x43, 0x83, 0x60, 0x83, 0x86, 0x3c, 0x62, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x3c, 0x9b, 0x27, 0xe7, 0x20, 0x0e, 0x5d, 0x6e, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0x38, 0x80, 0xcf, 0xdc, 0x58, 0x18, 0x5b, 0x98, 0x5c, 0x5b, 0x1d, 0x1b, 0x7d, 0x48, 0x2d, 0x1d, 0x8f, 0x57, 0xf8, 0x05, 0xc1, 0x06, 0xcb, 0xc2, 0x60, 0x16, 0x07, 0xc1, 0x82, 0x60, 0x83, 0xc6, 0xe7, 0x56, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xb4, 0xf7, 0x5a, 0x72, 0x68, 0x0a, 0x74, 0x1c, 0x1a, 0x04, 0x0b, 0x82, 0x0d, 0x5e, 0x6e, 0x47, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x84, 0xeb, 0x90, 0xad, 0x38, 0x88, 0xfa, 0x92, 0x9e, 0xe3, 0xd0, 0x20, 0xd8, 0xe0, 0xd9, 0x6a, 0x38, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xda, 0xb9, 0x35, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0xb4, 0xe7, 0x77, 0x1c, 0x34, 0x6d, 0xba, 0x32, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0xb4, 0xe7, 0x77, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xa4, 0x0e, 0x0e, 0x8a, 0x5c, 0x85, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0xf0, 0x14, 0x46, 0x46, 0xd6, 0x42, 0xf6, 0x56, 0x27, 0xc6, 0x56, 0xd6, 0x32, 0x37, 0x16, 0xc6, 0x16, 0x26, 0xd7, 0x56, 0xc7, 0x46, 0x1f, 0x52, 0x4b, 0xc7, 0xe3, 0x85, 0x5f, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0x0d, 0x0e, 0xa9, 0xea, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0xbe, 0x20, 0xd8, 0x20, 0x32, 0x64, 0x44, 0x0e, 0x52, 0xc7, 0x76, 0x0e, 0xd1, 0x3c, 0xe4, 0x6b, 0x8f, 0x43, 0xc7, 0xe3, 0x83, 0x58, 0xa3, 0xea, 0x59, 0xf8, 0x05, 0xc1, 0x06, 0x05, 0xb5, 0xd8, 0xe2, 0x20, 0x58, 0x10, 0x6c, 0xf0, 0xe8, 0x05, 0xb8, 0x43, 0x07, 0x8d, 0x41, 0xb0, 0x20, 0xd8, 0x20, 0x79, 0x26, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc0, 0x0f, 0x59, 0xf8, 0x8d, 0xe7, 0x1b, 0x04, 0x29, 0xfe, 0x41, 0x90, 0xe2, 0x1f, 0x52, 0x07, 0xc7, 0xa1, 0x41, 0xb0, 0x20, 0xd8, 0xe0, 0xe5, 0x76, 0x24, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x58, 0xb8, 0x30, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0x29, 0xb8, 0xe3, 0xa0, 0x24, 0x68, 0x38, 0x0e, 0x1d, 0x52, 0x35, 0xc7, 0xa1, 0x41, 0xb0, 0x20, 0xd8, 0x20, 0x6e, 0xe5, 0x6e, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0x92, 0x4e, 0x07, 0xe7, 0xfa, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x47, 0xda, 0xe4, 0x83, 0x26, 0x03, 0x95, 0x8e, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xc4, 0x08, 0xdd, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa4, 0xe0, 0x8e, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x22, 0xbd, 0xdd, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc0, 0x0f, 0x59, 0xf8, 0x8d, 0xe7, 0x1b, 0xfa, 0x93, 0x0f, 0x82, 0x0d, 0x8e, 0xb4, 0xc9, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xce, 0x8c, 0xcb, 0x07, 0x25, 0x1a, 0xce, 0x71, 0xe8, 0x90, 0x3a, 0x38, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0x83, 0x60, 0x41, 0xb0, 0x20, 0xd8, 0x20, 0x9a, 0xec, 0x2d, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xfc, 0x90, 0x85, 0xdf, 0x78, 0xbe, 0xc1, 0x99, 0x71, 0xf9, 0xe0, 0xcc, 0xb8, 0x7c, 0x48, 0xd5, 0x1c, 0x87, 0x06, 0xc1, 0x82, 0x60, 0x41, 0x32, 0x20, 0xfc, 0x9d, 0x0e, 0x4e, 0x1b, 0xca, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0x62, 0xd1, 0xc2, 0x6f, 0x3c, 0x3f, 0x88, 0x1d, 0xaf, 0x9e, 0x83, 0xa3, 0x50, 0xf4, 0x71, 0x68, 0x10, 0x2c, 0x48, 0x06, 0xce, 0xbb, 0x83, 0xd3, 0x86, 0xf2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x22, 0x36, 0x9a, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x6a, 0xd8, 0xc9, 0xc1, 0xab, 0x16, 0x6d, 0x8e, 0x43, 0x87, 0xd4, 0xc1, 0x71, 0x68, 0x10, 0x2c, 0x08, 0x16, 0x24, 0x83, 0x53, 0x07, 0xc3, 0xd0, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x0f, 0x1e, 0x1b, 0x7f, 0x73, 0x48, 0x1d, 0x1c, 0x87, 0x06, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x64, 0x07, 0xc3, 0x3f, 0xf6, 0x60, 0x60, 0x8b, 0x0e, 0x82, 0x05, 0xc1, 0x82, 0x64, 0x40, 0xf8, 0x3b, 0x1d, 0xa4, 0x05, 0x8d, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x8a, 0x45, 0x1b, 0xc4, 0x50, 0x91, 0xd0, 0xc2, 0x6f, 0x3c, 0xdf, 0x20, 0xa1, 0xec, 0xe4, 0x60, 0xbc, 0xe9, 0x6c, 0xd0, 0x78, 0x0a, 0xcb, 0xc1, 0xc0, 0x0f, 0x39, 0x0e, 0x0d, 0x82, 0x05, 0xc1, 0x82, 0x64, 0x60, 0xfe, 0x0e, 0xd2, 0x82, 0x46, 0x06, 0xc9, 0xa0, 0x6c, 0x10, 0x2d, 0xec, 0x41, 0x3c, 0x70, 0xe3, 0x1c, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x44, 0xd1, 0x0c, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xc0, 0xc4, 0x1e, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x42, 0x71, 0x70, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0x01, 0xd3, 0x34, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0xa2, 0x19, 0x9c, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x09, 0xb7, 0x27, 0x13, 0x34, 0xfe, 0x3f, 0x0e, 0x1d, 0x52, 0x07, 0xc7, 0xa1, 0x83, 0xf1, 0xa6, 0x73, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x06, 0xc1, 0x06, 0x31, 0xc2, 0x24, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xe0, 0x87, 0x0c, 0xbf, 0xf1, 0x7c, 0x0d, 0x92, 0xb3, 0x42, 0x06, 0xc1, 0x82, 0x64, 0x90, 0x1d, 0x0c, 0x47, 0xe9, 0x43, 0xa3, 0x96, 0x35, 0x48, 0xce, 0x0a, 0x39, 0x0e, 0x1d, 0x62, 0x78, 0x1c, 0x3a, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0x3c, 0xe6, 0xd2, 0xce, 0xdc, 0x5a, 0xde, 0xc6, 0xe8, 0xe6, 0x43, 0x6a, 0xe9, 0x78, 0xbc, 0xf0, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x76, 0x41, 0xb0, 0x20, 0x19, 0x7c, 0x39, 0x38, 0x9d, 0x21, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x41, 0x74, 0x49, 0xda, 0x1c, 0xa4, 0x86, 0x9d, 0x1c, 0x87, 0x36, 0x9c, 0x62, 0x83, 0x60, 0x41, 0xb0, 0x41, 0xd4, 0xf4, 0x03, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x82, 0xd6, 0x74, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x24, 0x05, 0x77, 0x1c, 0x04, 0x29, 0xfe, 0x71, 0xe8, 0x90, 0xaa, 0x39, 0x0e, 0x0d, 0x82, 0x05, 0xc1, 0x06, 0xd1, 0x3e, 0xd8, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xf8, 0x18, 0x0d, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0xb7, 0xb1, 0x35, 0x07, 0x07, 0x3b, 0xe4, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x71, 0x96, 0xcf, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0x29, 0xb8, 0x63, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xe4, 0x99, 0x94, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x03, 0x3f, 0x64, 0xe1, 0x37, 0x9e, 0x6f, 0xe8, 0x4f, 0x3e, 0x08, 0x36, 0x88, 0xdb, 0xd8, 0x9a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xa3, 0xd5, 0xfc, 0xa0, 0x44, 0xc3, 0x39, 0x0e, 0x1d, 0x52, 0x07, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0x68, 0x10, 0x2c, 0x08, 0x36, 0x88, 0xf6, 0xfc, 0x8e, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x3f, 0x38, 0xf7, 0x5a, 0x1f, 0x52, 0x07, 0xc7, 0xa1, 0x83, 0x87, 0x32, 0xe2, 0x1c, 0x8f, 0x07, 0xd9, 0x1a, 0xd2, 0x40, 0xe3, 0x80, 0x0f, 0x57, 0x37, 0xb6, 0x1e, 0x52, 0x4b, 0xc7, 0xe3, 0xe1, 0x17, 0x04, 0x1b, 0x24, 0xee, 0xf7, 0x2c, 0x0e, 0xbb, 0x20, 0xd8, 0x20, 0xfe, 0xb6, 0x84, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0x1d, 0x7f, 0x34, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x82, 0x14, 0xff, 0xa0, 0x20, 0xdb, 0x39, 0x0e, 0x0d, 0xbf, 0xf1, 0xfc, 0x20, 0x7e, 0x64, 0x84, 0x8e, 0x43, 0x1b, 0x8e, 0xf6, 0x61, 0x17, 0x04, 0x1b, 0xc4, 0xdf, 0x96, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xa2, 0xe3, 0x8f, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x90, 0xe2, 0x1f, 0x1c, 0x88, 0xf8, 0x8f, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x44, 0x86, 0x8c, 0xc8, 0x41, 0xc9, 0x99, 0x73, 0x1c, 0xda, 0x70, 0xb4, 0x0f, 0x82, 0x0d, 0xe2, 0xcf, 0x4b, 0x68, 0x10, 0x2c, 0x08, 0x36, 0x88, 0xb6, 0x14, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xc9, 0x33, 0x29, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x06, 0x7e, 0xc8, 0x06, 0x8d, 0x94, 0x2b, 0x1d, 0xe2, 0x7f, 0x1c, 0x3a, 0x0e, 0x0d, 0xbb, 0xc1, 0xa8, 0x97, 0xdc, 0x70, 0xb4, 0x0f, 0x82, 0x05, 0xc1, 0x06, 0x11, 0x7d, 0xe0, 0x71, 0xd0, 0x82, 0xae, 0xc0, 0xb0, 0x1b, 0x8c, 0x7a, 0xc9, 0x0d, 0x47, 0xfb, 0x20, 0x58, 0x10, 0x6c, 0x10, 0xe9, 0xed, 0x16, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x06, 0x7e, 0xc8, 0xc2, 0x6f, 0x3c, 0xdf, 0xa0, 0x24, 0x68, 0x38, 0x28, 0x09, 0x1a, 0x0e, 0x82, 0x14, 0xff, 0x38, 0x34, 0x08, 0x16, 0x04, 0x1b, 0x44, 0x94, 0x30, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa1, 0x58, 0x34, 0xfc, 0xc6, 0xf3, 0x35, 0xec, 0x15, 0x0e, 0x82, 0x05, 0xc9, 0x20, 0x3b, 0x18, 0xef, 0x3a, 0x87, 0x3d, 0xde, 0x0d, 0xca, 0x3c, 0xa8, 0x0d, 0xc6, 0xd8, 0xd3, 0x21, 0x86, 0xc7, 0xa1, 0x41, 0xb0, 0x20, 0xd8, 0xe0, 0x45, 0x9c, 0x24, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x38, 0x4a, 0x2c, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x48, 0xb8, 0x3d, 0x39, 0x68, 0xce, 0x76, 0xe9, 0x38, 0x74, 0x48, 0x1d, 0x1c, 0x87, 0x86, 0x5b, 0x10, 0x2c, 0x48, 0x06, 0xa7, 0x0e, 0x86, 0x7f, 0xec, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x1f, 0x3c, 0x63, 0xef, 0xe7, 0xb0, 0x57, 0x78, 0x1c, 0x1a, 0x04, 0x1b, 0x1c, 0xea, 0xcc, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x84, 0x88, 0xff, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xb1, 0xf2, 0x27, 0x74, 0x90, 0x44, 0x50, 0x74, 0x1c, 0x3a, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0x3c, 0xec, 0xca, 0xe4, 0xd2, 0x5a, 0xde, 0xc6, 0xe8, 0xe6, 0x43, 0x6a, 0xe9, 0x78, 0xbc, 0xf0, 0x0b, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb0, 0x20, 0xd8, 0x20, 0x6a, 0xfa, 0x81, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x44, 0x92, 0x97, 0xd0, 0xf0, 0x1b, 0xcf, 0x0f, 0xa2, 0x8b, 0x46, 0xe8, 0x38, 0x34, 0xfc, 0x82, 0x68, 0x21, 0x83, 0x60, 0x83, 0x58, 0xf6, 0xa8, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0x1d, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0x84, 0xbf, 0xd3, 0xc1, 0xe9, 0x0c, 0x79, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc0, 0x0f, 0x19, 0x7e, 0xe3, 0xf9, 0xe2, 0xd0, 0x56, 0x0c, 0x62, 0x3f, 0x08, 0x16, 0x24, 0x03, 0x65, 0xe9, 0xe0, 0x74, 0x86, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xe0, 0x87, 0x2c, 0xfc, 0xc6, 0xf3, 0x83, 0x68, 0x4c, 0x14, 0x3a, 0x18, 0x1b, 0xae, 0xc7, 0xa1, 0x43, 0x0c, 0x8f, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0xf0, 0x0b, 0xa2, 0x85, 0x0c, 0x82, 0x0d, 0x62, 0xaa, 0xa3, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x75, 0x30, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x9c, 0xe5, 0x73, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x38, 0x34, 0xec, 0x0f, 0x12, 0x6e, 0x4f, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0x58, 0x10, 0x6c, 0x10, 0xcb, 0xfc, 0x36, 0x07, 0x69, 0x2f, 0x1e, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0xec, 0x0e, 0x8a, 0xdf, 0x82, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x61, 0x0e, 0x8a, 0xdf, 0x82, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x63, 0xc3, 0xf5, 0x90, 0xec, 0x38, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0xe2, 0x76, 0x50, 0xfc, 0x16, 0x1c, 0x44, 0x88, 0xa4, 0xd0, 0x71, 0x68, 0x10, 0x2c, 0xfc, 0xc2, 0x6f, 0x30, 0xfc, 0x63, 0x0f, 0x5d, 0x4c, 0x0e, 0xc6, 0x32, 0xd4, 0xc1, 0xe0, 0xf4, 0x39, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0x7f, 0x0e, 0x2d, 0x4c, 0x3e, 0xa4, 0x96, 0x8e, 0xc7, 0x2b, 0xfc, 0x82, 0x60, 0x83, 0x91, 0xff, 0xb0, 0x38, 0x08, 0x36, 0x88, 0x49, 0x13, 0xa1, 0x41, 0xb0, 0x41, 0x43, 0x1e, 0x31, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x8e, 0xde, 0xe6, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x78, 0x36, 0x4f, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x1f, 0xbc, 0x8e, 0x53, 0xe2, 0xd0, 0xf0, 0xeb, 0x38, 0x74, 0x10, 0x63, 0x23, 0x42, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0xc0, 0x77, 0x18, 0x19, 0x59, 0xcb, 0xdc, 0x58, 0x18, 0x5b, 0x98, 0x5c, 0x5b, 0x1d, 0x1b, 0x5d, 0xcb, 0xdc, 0x58, 0x18, 0x5b, 0x98, 0x5c, 0x5b, 0x1d, 0x1b, 0x5d, 0x8b, 0x58, 0xd8, 0x5c, 0x79, 0x48, 0x2d, 0x1d, 0x8f, 0x17, 0x7e, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x83, 0xb5, 0x32, 0x64, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x8a, 0x1b, 0x82, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x3f, 0x18, 0x90, 0xfe, 0x87, 0x54, 0xcd, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0x78, 0xcf, 0x8d, 0x85, 0xb1, 0x85, 0xc9, 0xb5, 0xd5, 0xb1, 0xd1, 0xb5, 0x88, 0x85, 0xcd, 0x95, 0x87, 0xd4, 0xd2, 0xf1, 0x78, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0xd8, 0xe0, 0x59, 0xe2, 0x0d, 0x83, 0x60, 0x83, 0xd8, 0x3f, 0x14, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xf0, 0x43, 0x86, 0xdf, 0x78, 0xbe, 0xc1, 0xc8, 0x4f, 0xd8, 0x20, 0xc2, 0xb3, 0x7b, 0x0e, 0x31, 0x3c, 0x0e, 0x1d, 0x8f, 0x17, 0x7e, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0x08, 0x16, 0x04, 0x1b, 0x34, 0x3e, 0xb7, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0xbd, 0xd7, 0x92, 0x43, 0x1a, 0xee, 0x38, 0x34, 0x08, 0x16, 0x04, 0x1b, 0xbc, 0xdc, 0x8e, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0xb4, 0xa5, 0x08, 0x1d, 0xf6, 0x78, 0x8f, 0x43, 0x83, 0x60, 0x83, 0x67, 0xab, 0xe1, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0xe7, 0xd6, 0xfc, 0x60, 0x70, 0xfa, 0x1c, 0x87, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0x00, 0x0f, 0xb8, 0xb7, 0x34, 0x37, 0xba, 0x96, 0x30, 0x32, 0xf2, 0x90, 0x5a, 0x3a, 0x1e, 0x0f, 0xbf, 0x20, 0xd8, 0x60, 0xe4, 0x3f, 0x2c, 0x0e, 0x82, 0x0d, 0xd6, 0x88, 0xf6, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x64, 0xed, 0x16, 0x7e, 0xe3, 0xf9, 0x82, 0x60, 0x83, 0xc8, 0x90, 0x11, 0x39, 0x58, 0xf1, 0x60, 0x73, 0x68, 0x24, 0x78, 0xe8, 0x18, 0x76, 0x1c, 0x3a, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0xdf, 0xae, 0x4c, 0x2e, 0x3d, 0xa4, 0x96, 0x8e, 0xc7, 0x83, 0x6c, 0x0d, 0x69, 0xa0, 0x71, 0xe0, 0xcb, 0xc8, 0xc3, 0xd5, 0x75, 0x3c, 0x1e, 0x04, 0x8b, 0x0b, 0xbf, 0x20, 0x58, 0x5c, 0xf8, 0x05, 0xc1, 0x06, 0x05, 0xb4, 0xe0, 0xe2, 0x20, 0x58, 0x5c, 0x10, 0x2c, 0x08, 0x36, 0x68, 0xef, 0xb5, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x37, 0x28, 0x00, 0xa0, 0x0e, 0x59, 0xbb, 0x85, 0xdf, 0x78, 0xbe, 0x41, 0x19, 0xb7, 0x33, 0x48, 0x06, 0x52, 0x5f, 0x87, 0x15, 0xda, 0x85, 0xdf, 0x78, 0x7e, 0xf0, 0x28, 0x41, 0x8a, 0x85, 0xdf, 0x78, 0xbe, 0xe1, 0x68, 0x3f, 0x08, 0x7b, 0xea, 0x85, 0xdf, 0x78, 0xbe, 0xe1, 0x68, 0x3f, 0x28, 0xb1, 0x07, 0x0f, 0x06, 0x7e, 0xc8, 0x71, 0x68, 0xf8, 0x05, 0xd1, 0x42, 0x06, 0xc1, 0x06, 0xe9, 0xd3, 0x27, 0x07, 0x71, 0xd7, 0x22, 0x74, 0x3c, 0x1e, 0x7e, 0x41, 0xb4, 0x40, 0xd8, 0x07, 0xc1, 0x06, 0xcb, 0x94, 0xc5, 0x0e, 0xda, 0x5e, 0x7d, 0x39, 0x1e, 0x0f, 0xbf, 0x41, 0x14, 0xde, 0x0a, 0x0d, 0xbf, 0x41, 0x44, 0xe2, 0x0a, 0x0d, 0xbf, 0x41, 0x14, 0xde, 0x0a, 0x0d, 0xbf, 0x41, 0x44, 0xe2, 0x0a, 0x0d, 0xbf, 0x41, 0x14, 0xde, 0x0a, 0x0d, 0xbf, 0x41, 0x44, 0xe2, 0x0a, 0x0d, 0xbf, 0x41, 0x14, 0xde, 0x0a, 0x0d, 0xbf, 0x41, 0x44, 0xe2, 0x0a, 0x0d, 0xbf, 0x41, 0x14, 0xde, 0x0a, 0x0d, 0xbf, 0x41, 0x44, 0xe2, 0x0a, 0x0d, 0xbf, 0x41, 0x14, 0xde, 0x0a, 0x0d, 0x82, 0x0d, 0x62, 0xb8, 0x9e, 0x63, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x75, 0x30, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0xa2, 0x3c, 0xca, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x03, 0x11, 0xff, 0xf0, 0x1b, 0xcf, 0x17, 0x04, 0x1b, 0x44, 0xef, 0xbf, 0xcd, 0x41, 0xda, 0x8b, 0xc7, 0x41, 0x19, 0x6b, 0x75, 0x1c, 0x3a, 0x0e, 0x2d, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0xe2, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x2c, 0x48, 0x06, 0x8a, 0xd5, 0xc1, 0x30, 0xf4, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xc8, 0xda, 0x6d, 0xc8, 0xd7, 0x1e, 0x04, 0x29, 0xfe, 0x71, 0xe8, 0x78, 0xbc, 0x82, 0x60, 0x83, 0xb8, 0x4c, 0x31, 0x59, 0x1c, 0x7e, 0x41, 0xb4, 0xe0, 0xfc, 0x20, 0xd8, 0xe0, 0x1c, 0xfc, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xb5, 0x1b, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0x51, 0xfc, 0x38, 0x83, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0x0c, 0xa3, 0xd2, 0x21, 0x0d, 0x37, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0x86, 0x51, 0xe9, 0xd0, 0x14, 0x68, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x0c, 0xce, 0xc7, 0x83, 0xf7, 0x1c, 0x66, 0x1c, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0xf0, 0x0b, 0xa2, 0x05, 0xe7, 0x07, 0xc1, 0x06, 0xe7, 0xe0, 0xef, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x61, 0x4f, 0x3d, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x32, 0x26, 0xfd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x9a, 0x61, 0x54, 0x3a, 0x58, 0xc2, 0xff, 0xb3, 0x41, 0x5c, 0x1c, 0x0b, 0x1d, 0xa4, 0x76, 0x80, 0x1c, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0xe1, 0x17, 0x44, 0x0b, 0xce, 0x0f, 0x82, 0x0d, 0xce, 0xc1, 0xdf, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x8d, 0x8b, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x78, 0x14, 0x3f, 0xce, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x34, 0xc3, 0xa8, 0x74, 0xe8, 0x44, 0x34, 0xfc, 0xc6, 0xf3, 0x83, 0x88, 0x6b, 0x16, 0x3a, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0xc3, 0x2f, 0x88, 0x16, 0x9c, 0x1f, 0x04, 0x1b, 0x9c, 0x83, 0xbf, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x7a, 0x08, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x90, 0x8c, 0x49, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0xca, 0x91, 0x85, 0x36, 0x88, 0xf1, 0x68, 0xa1, 0x83, 0xc8, 0xe5, 0xc7, 0x39, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0xc3, 0x2f, 0x88, 0x16, 0x9c, 0x1f, 0x04, 0x1b, 0x9c, 0x83, 0xbf, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xb2, 0x76, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x3c, 0x8a, 0x1f, 0x67, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x10, 0xe1, 0xc6, 0x42, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xc4, 0x2b, 0xb2, 0xd0, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x18, 0x9c, 0x8f, 0x07, 0x8d, 0x4e, 0x28, 0x1d, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0xf0, 0x0b, 0xa2, 0x05, 0xe7, 0x07, 0xc1, 0x06, 0xe7, 0xe0, 0xef, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x61, 0x4f, 0x3d, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x32, 0x26, 0xfd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x88, 0x6b, 0x16, 0xda, 0x20, 0x2e, 0x8e, 0x85, 0x0e, 0x0e, 0x44, 0xfc, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0xf8, 0x0d, 0x22, 0xe9, 0x59, 0x68, 0xf8, 0x05, 0xd1, 0x82, 0xf3, 0x83, 0x60, 0x83, 0x73, 0xf0, 0xf7, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0x0f, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x92, 0x31, 0xe9, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x44, 0x39, 0xb2, 0xd0, 0x06, 0x31, 0x1e, 0x2d, 0x74, 0x30, 0xae, 0xd1, 0x8f, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0x21, 0xd9, 0x71, 0x3c, 0x1e, 0x04, 0x1b, 0x8c, 0xfc, 0x87, 0xc5, 0x41, 0xb0, 0x41, 0x24, 0x25, 0x09, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x74, 0x0c, 0x1b, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x21, 0x39, 0xe6, 0x60, 0x8c, 0x46, 0x1c, 0x87, 0x8e, 0xc7, 0x0b, 0xbf, 0x20, 0x5a, 0x30, 0x1e, 0x04, 0x1b, 0x9c, 0x9f, 0x68, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xfc, 0x90, 0x0d, 0x0a, 0xb2, 0x9d, 0x0d, 0x0e, 0x44, 0xfc, 0x1b, 0x44, 0x2e, 0x3f, 0xce, 0x41, 0x94, 0x7f, 0xcd, 0x1c, 0x87, 0x8e, 0xc7, 0xc3, 0x2f, 0x88, 0x16, 0x8c, 0x07, 0xc1, 0x06, 0xe7, 0x27, 0xda, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x63, 0xc3, 0x75, 0x83, 0x12, 0x0d, 0x67, 0x83, 0xc3, 0x49, 0xf1, 0x06, 0xa5, 0x0a, 0xd0, 0x86, 0xc6, 0xf3, 0x07, 0x43, 0xb1, 0xe8, 0x38, 0x74, 0x3c, 0x1e, 0x7e, 0x41, 0xb4, 0x60, 0x3c, 0x08, 0x36, 0x38, 0x3f, 0xd1, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x34, 0x9e, 0xdf, 0x60, 0xc8, 0x9e, 0x6f, 0x70, 0xae, 0x29, 0xde, 0x20, 0x71, 0xfe, 0x63, 0x83, 0x82, 0x6c, 0xe7, 0xa0, 0x44, 0xc3, 0x39, 0x0e, 0x1d, 0x8f, 0x87, 0x5f, 0x10, 0x2d, 0x18, 0x0f, 0x82, 0x0d, 0xce, 0x4f, 0xb4, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0x62, 0xd1, 0x06, 0xe3, 0x1a, 0x7d, 0x83, 0xb3, 0x5e, 0xfe, 0x06, 0xe5, 0xa2, 0xcf, 0x06, 0x43, 0xf6, 0xfc, 0x60, 0x5c, 0xa3, 0x1f, 0x87, 0x8e, 0xc7, 0xc3, 0x2f, 0x88, 0x16, 0x8c, 0x07, 0xc1, 0x06, 0xe7, 0x27, 0xda, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x03, 0x3f, 0x64, 0x83, 0x12, 0x0d, 0x67, 0x83, 0x73, 0x4d, 0xf1, 0x06, 0xe5, 0xa2, 0xcf, 0x06, 0x07, 0x22, 0xfe, 0x83, 0xc3, 0x49, 0xf1, 0x71, 0xe8, 0x78, 0x3c, 0xfc, 0x82, 0x68, 0xc1, 0x78, 0x10, 0x6c, 0x70, 0x7e, 0xa2, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x36, 0x5c, 0x37, 0x18, 0xb2, 0xe7, 0x1b, 0x9c, 0xf5, 0xf2, 0x37, 0x88, 0x5c, 0x7e, 0x9c, 0x0d, 0xce, 0x35, 0xc5, 0x07, 0x67, 0xbd, 0xfc, 0xe3, 0xd0, 0xf1, 0x78, 0xf8, 0x05, 0xd1, 0x82, 0xf1, 0x20, 0xd8, 0xe0, 0xfc, 0x44, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xd0, 0x78, 0x7e, 0x83, 0x71, 0x8d, 0xbe, 0xc1, 0x81, 0x88, 0x7f, 0x83, 0x52, 0x05, 0x68, 0x83, 0xc8, 0xe5, 0xc7, 0x39, 0x28, 0x55, 0x80, 0x8e, 0x43, 0xc7, 0xe3, 0xe1, 0x17, 0x44, 0x0b, 0xc6, 0x83, 0x60, 0x83, 0xf3, 0x13, 0xed, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa1, 0x58, 0xb4, 0x41, 0x41, 0xb6, 0xb3, 0xc1, 0xe1, 0xa4, 0x78, 0x83, 0xc4, 0xf9, 0x8f, 0x0d, 0x12, 0xe7, 0x3f, 0x0e, 0xca, 0x45, 0x9f, 0xe3, 0xd0, 0xf1, 0xf8, 0x90, 0xb5, 0x5b, 0x10, 0x2c, 0x48, 0x06, 0xa4, 0xbf, 0xf6, 0x1d, 0x9c, 0xeb, 0x8f, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0xfc, 0xa0, 0x55, 0x56, 0x95, 0xc3, 0xda, 0xef, 0x71, 0x68, 0x10, 0x6c, 0x10, 0x7b, 0xfc, 0x42, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xe2, 0xae, 0x5f, 0xe8, 0x10, 0xff, 0xe3, 0xd0, 0xc1, 0x69, 0x05, 0xf7, 0x78, 0x3c, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x6c, 0x90, 0x3a, 0x94, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x44, 0xc3, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x61, 0x2b, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0xc0, 0x69, 0x75, 0x10, 0xe4, 0xfc, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x01, 0xe9, 0xaf, 0x7d, 0x07, 0xe7, 0xbc, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x3f, 0x58, 0x05, 0x79, 0x70, 0x48, 0xd5, 0x1c, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0x41, 0xc9, 0xd0, 0x74, 0x3c, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0xfc, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0xf3, 0x21, 0xb5, 0x74, 0x3c, 0x5e, 0x43, 0x2b, 0xf1, 0x15, 0x04, 0x1b, 0xc4, 0x9a, 0x5f, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xc1, 0xea, 0x5e, 0x98, 0x83, 0x11, 0x12, 0x75, 0x30, 0xf0, 0x43, 0x8e, 0x43, 0x1b, 0x8e, 0xf6, 0x15, 0x04, 0x1b, 0x8c, 0xfc, 0x87, 0xc5, 0x41, 0xb0, 0x20, 0x19, 0x68, 0xef, 0x74, 0x70, 0xcc, 0x2a, 0x3e, 0x88, 0x28, 0xa3, 0xa0, 0xe3, 0xf1, 0x82, 0x60, 0x83, 0xe6, 0xce, 0xd1, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x1a, 0xcf, 0x0f, 0xbf, 0xf1, 0x7c, 0x0c, 0x10, 0x10, 0x1b, 0x3d, 0xa0, 0x8e, 0xe5, 0x4a, 0x7f, 0x1c, 0x87, 0x16, 0x04, 0x1b, 0x14, 0xd0, 0x82, 0x8b, 0x83, 0x60, 0x83, 0x24, 0x63, 0x8f, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x07, 0x22, 0xfe, 0xe1, 0x37, 0x9e, 0x6f, 0xf0, 0x9e, 0x4a, 0x9d, 0x43, 0x0c, 0x8f, 0x43, 0xc7, 0xe3, 0x83, 0x84, 0xb2, 0x93, 0x83, 0x02, 0x00, 0x6a, 0x41, 0xb0, 0x41, 0x01, 0x2d, 0xb8, 0x38, 0x08, 0xd6, 0x20, 0x2a, 0xb7, 0x4f, 0x36, 0x88, 0xf2, 0xe8, 0x93, 0x05, 0xc1, 0x06, 0x31, 0xf4, 0x7c, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x49, 0xbe, 0xcc, 0xa1, 0x71, 0xd1, 0x71, 0x68, 0x41, 0xb0, 0x41, 0x0c, 0x3d, 0x9f, 0x1c, 0x2c, 0xbe, 0xc8, 0x1a, 0x04, 0x1b, 0xc4, 0xd0, 0xf3, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xd5, 0x6c, 0x33, 0x07, 0x25, 0xf6, 0xe0, 0x71, 0xe8, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x20, 0xd8, 0x20, 0xd6, 0xfc, 0x82, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x08, 0x7f, 0xa7, 0x83, 0xe1, 0x28, 0x7d, 0x50, 0xa2, 0xe1, 0x1c, 0x87, 0x16, 0x04, 0x1b, 0xc4, 0x65, 0x8a, 0xc9, 0xe2, 0x20, 0x5a, 0xb0, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0xa2, 0x77, 0x70, 0xcc, 0x2a, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x90, 0x60, 0x80, 0x70, 0xc8, 0xda, 0x1d, 0x87, 0x0e, 0xe3, 0x72, 0x3c, 0x5e, 0xe1, 0x37, 0x58, 0xdd, 0x0b, 0x73, 0x50, 0x32, 0x34, 0x6d, 0x90, 0xe8, 0x83, 0x73, 0x50, 0xc6, 0xed, 0x1c, 0x24, 0xca, 0x7d, 0x6c, 0x90, 0x0e, 0xe5, 0xb1, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x04, 0x1b, 0xa4, 0x48, 0x7c, 0x1c, 0xa4, 0xf5, 0x75, 0x1c, 0x8f, 0x17, 0x04, 0x0b, 0x92, 0x81, 0xf2, 0x74, 0x30, 0x1c, 0xa5, 0x0f, 0x0a, 0x2e, 0x9c, 0x41, 0xb0, 0xc1, 0xc8, 0x7f, 0x58, 0x1c, 0x64, 0x6b, 0x68, 0xbf, 0x7e, 0x90, 0xc0, 0xf5, 0x33, 0x08, 0x16, 0x04, 0x1b, 0xc4, 0x4b, 0xd9, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xf3, 0x77, 0xf9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xd6, 0xee, 0x60, 0x28, 0x16, 0x1d, 0x87, 0x8e, 0x43, 0x83, 0x60, 0xe1, 0x17, 0x04, 0x1b, 0xc4, 0x93, 0x58, 0xc7, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x91, 0xff, 0xb0, 0x38, 0x08, 0xd6, 0x20, 0x42, 0xe9, 0x7f, 0x06, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x92, 0x81, 0xf5, 0xbb, 0x83, 0xf1, 0xae, 0x73, 0xe8, 0xa0, 0x71, 0x68, 0xfe, 0x72, 0x3c, 0x3e, 0x0e, 0x1d, 0xdf, 0x06, 0xc1, 0x86, 0x18, 0x0e, 0x82, 0xc5, 0x61, 0x17, 0x04, 0x0b, 0x92, 0x81, 0xa0, 0x1c, 0x1c, 0x28, 0x92, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x94, 0x34, 0x0d, 0x07, 0x81, 0x89, 0x7d, 0x1c, 0x5a, 0x83, 0x97, 0xd0, 0x03, 0x1c, 0x52, 0x35, 0x6b, 0x48, 0x1d, 0x6c, 0xd8, 0x2b, 0x1c, 0x04, 0x0b, 0x92, 0x81, 0xbe, 0x4e, 0x07, 0xe7, 0xfa, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xa3, 0xd5, 0xfc, 0xa0, 0x1c, 0x6b, 0x38, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x81, 0xe8, 0x2f, 0x08, 0x36, 0x38, 0xd2, 0x26, 0x1f, 0x44, 0x25, 0xc9, 0xd0, 0x20, 0x58, 0x90, 0x0c, 0xbc, 0xef, 0x74, 0x70, 0xae, 0x3f, 0x3e, 0x88, 0x88, 0x93, 0xa1, 0xc3, 0x8e, 0xc9, 0xf1, 0xed, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x07, 0xf0, 0x12, 0x63, 0x0b, 0x5b, 0x2b, 0x9b, 0x69, 0x49, 0x6b, 0x83, 0x63, 0x0f, 0x57, 0xd7, 0xf1, 0x78, 0xf8, 0x05, 0xc1, 0x0a, 0x92, 0x81, 0xd4, 0xd7, 0xf1, 0xf8, 0x10, 0xc3, 0x41, 0xb0, 0xb8, 0xf0, 0x0b, 0x82, 0x0d, 0x46, 0xfe, 0xc3, 0xe2, 0x20, 0x58, 0x10, 0x6c, 0x90, 0xfe, 0xa5, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0xe2, 0x6c, 0x6d, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0xff, 0x0e, 0xd9, 0x8a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xa5, 0x0a, 0xd0, 0x21, 0x5f, 0x7b, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x41, 0x52, 0xfb, 0xc1, 0x71, 0xe8, 0x38, 0x34, 0x08, 0x36, 0x58, 0x48, 0x39, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0x6d, 0x37, 0xb7, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x90, 0x3a, 0x94, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0x70, 0x52, 0x3c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0xc2, 0x56, 0xca, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x06, 0x31, 0x4f, 0x91, 0x73, 0x70, 0xce, 0x3b, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xf0, 0x43, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0xe7, 0xca, 0xc1, 0xb9, 0xfe, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0xfe, 0x07, 0x09, 0xb7, 0x27, 0xc7, 0xa1, 0xe3, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x0d, 0x5e, 0x3a, 0x67, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xda, 0x60, 0x44, 0x50, 0x1d, 0x52, 0x35, 0xc7, 0xa1, 0xe3, 0xf1, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x3a, 0x1e, 0x0f, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x0d, 0xde, 0x0c, 0xf2, 0x79, 0x48, 0x2d, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x64, 0x98, 0x41, 0xb4, 0xb0, 0x1b, 0xc6, 0x65, 0x90, 0x0c, 0xd4, 0xaf, 0x43, 0xb6, 0xe2, 0x90, 0x5c, 0x3a, 0x1e, 0x2f, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x6c, 0xb0, 0xc4, 0x5e, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x0f, 0xd6, 0xd0, 0x48, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x0e, 0x82, 0x05, 0xc1, 0x06, 0x91, 0x6d, 0x33, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x08, 0xa0, 0x12, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0x9a, 0x3b, 0x1d, 0x9c, 0xf3, 0x8e, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xc4, 0xdf, 0x1d, 0xc8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xf7, 0x6b, 0xcf, 0x1c, 0x0c, 0xb3, 0xf0, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0x68, 0x3c, 0x7f, 0x1c, 0x1a, 0x04, 0x2b, 0x08, 0x36, 0x88, 0xbe, 0xf5, 0x9a, 0x83, 0x54, 0xb5, 0x86, 0x41, 0xb0, 0x20, 0xd9, 0xa0, 0xf0, 0x0f, 0x3a, 0x38, 0xd7, 0x1f, 0x1f, 0xa4, 0xaa, 0x35, 0x0c, 0xbb, 0x41, 0xfb, 0x80, 0x22, 0x0b, 0xbb, 0xc1, 0x38, 0x64, 0xda, 0x90, 0xec, 0x18, 0x04, 0x1b, 0xac, 0x82, 0x3c, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x41, 0xb0, 0xc1, 0x4b, 0xe7, 0x6c, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf8, 0x20, 0xa4, 0xc0, 0x0f, 0xc9, 0xa5, 0xe3, 0xd0, 0x20, 0xd8, 0xe0, 0xa5, 0x73, 0x36, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x83, 0xa4, 0xae, 0xee, 0x43, 0x72, 0xe9, 0x38, 0x74, 0x1c, 0x3a, 0x9c, 0x62, 0xc7, 0xb7, 0xe3, 0xd0, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0x08, 0x36, 0x58, 0x62, 0xaf, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0x0b, 0xd7, 0x7c, 0x86, 0xdf, 0x78, 0xbe, 0x21, 0xfe, 0x1b, 0x62, 0xb8, 0x20, 0xd8, 0x20, 0x51, 0x1e, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x81, 0x88, 0x7f, 0xf8, 0x8d, 0xe7, 0x1b, 0xa2, 0x79, 0x30, 0x66, 0xe1, 0x8e, 0x43, 0x1b, 0xa4, 0x43, 0x79, 0x1c, 0xd6, 0x7e, 0x8f, 0x43, 0xc7, 0xe3, 0x05, 0xc1, 0x06, 0xcb, 0xc2, 0x60, 0x16, 0x07, 0xc1, 0x82, 0x60, 0x41, 0x32, 0xcc, 0x20, 0x5a, 0xd8, 0x05, 0xc9, 0x40, 0xea, 0xeb, 0x90, 0xad, 0x18, 0x24, 0x03, 0x79, 0xab, 0x43, 0xb6, 0xe2, 0x90, 0x5c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x90, 0x1a, 0x76, 0x32, 0xfc, 0xc6, 0xf3, 0x05, 0xc1, 0x06, 0x71, 0x99, 0x5e, 0x73, 0x68, 0x0a, 0x34, 0x08, 0x36, 0x78, 0xe4, 0x89, 0xcd, 0xa1, 0x29, 0xd0, 0x71, 0x68, 0x10, 0x2c, 0x48, 0x86, 0x19, 0x44, 0x0b, 0xbb, 0x71, 0xe8, 0x60, 0x7d, 0xa4, 0xc3, 0x61, 0x85, 0xf6, 0x60, 0xdc, 0x21, 0x1c, 0x8f, 0x87, 0x5f, 0x10, 0x6c, 0x30, 0xf2, 0x1f, 0x16, 0x07, 0xc1, 0x06, 0x4b, 0xec, 0xf5, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xb4, 0x42, 0xa5, 0x3f, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0xd9, 0x60, 0xed, 0x3a, 0xc5, 0xc1, 0xe9, 0x0c, 0x79, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xb1, 0xf8, 0x32, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0x70, 0x52, 0x7c, 0xc8, 0xd7, 0x1e, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x37, 0x08, 0x80, 0xfb, 0x83, 0x62, 0x5a, 0x70, 0x71, 0xd8, 0x0d, 0x8a, 0x8b, 0xc3, 0x35, 0x08, 0x52, 0xfc, 0x0d, 0xf1, 0xdf, 0x60, 0x21, 0xcc, 0xfe, 0x86, 0x86, 0x3a, 0x83, 0x60, 0x83, 0xb4, 0x1c, 0x91, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xc3, 0x18, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0x20, 0x54, 0x07, 0x01, 0xef, 0x7f, 0x1c, 0x5a, 0x10, 0x2c, 0x48, 0x06, 0xd2, 0x56, 0x07, 0x01, 0xef, 0x7f, 0xe8, 0xa0, 0xb1, 0x21, 0xfe, 0x1b, 0x2c, 0x84, 0xd9, 0xdf, 0xd0, 0x50, 0xe7, 0x20, 0x44, 0xfc, 0x8f, 0xc7, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0xe0, 0x37, 0x86, 0x56, 0xe7, 0xb6, 0xd6, 0xf2, 0x56, 0x47, 0x07, 0x57, 0x47, 0x1f, 0x52, 0x4b, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0x38, 0x40, 0x27, 0xc6, 0x16, 0xb6, 0x56, 0x36, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0x41, 0xc9, 0xd0, 0x34, 0xfc, 0x82, 0x60, 0x83, 0x73, 0x9b, 0xf3, 0xe2, 0x20, 0x58, 0x0c, 0xc0, 0xff, 0xbc, 0x10, 0xbf, 0x89, 0x8c, 0x66, 0xf0, 0xad, 0xb5, 0xde, 0xa0, 0xfd, 0xd5, 0xec, 0xc1, 0x8f, 0x0f, 0x36, 0x9f, 0x15, 0x46, 0xb4, 0x82, 0xcd, 0x68, 0x41, 0xf3, 0xd6, 0x3f, 0x29, 0x87, 0xa8, 0x78, 0x9b, 0x8e, 0x2f, 0x9d, 0xfa, 0xa7, 0xd2, 0x15, 0x7c, 0x4a, 0x7f, 0xb9, 0x79, 0x37, 0x9e, 0x9d, 0x53, 0x65, 0xc2, 0x42, 0xd7, 0xb3, 0x5d, 0x84, 0x64, 0xde, 0xf9, 0x33, 0xf3, 0x04, 0x75, 0x10, 0x2c, 0x2e, 0xe3, 0x90, 0xa1, 0xc3, 0x0c, 0x37, 0xec, 0xf0, 0x83, 0x60, 0x90, 0x0c, 0xa2, 0x41, 0x36, 0x08, 0x07, 0xe9, 0x20, 0x1e, 0xe4, 0x2d, 0x88, 0x07, 0xd1, 0x30, 0x83, 0x60, 0x90, 0x0c, 0xf2, 0x41, 0x3a, 0xec, 0x38, 0x08, 0x67, 0xc8, 0x20, 0x1b, 0x7e, 0xb8, 0x83, 0x78, 0x4b, 0x14, 0x5a, 0x90, 0x0d, 0x82, 0x41, 0x38, 0xc3, 0x0d, 0x19, 0xe4, 0x83, 0x74, 0x10, 0x0d, 0xe2, 0xa1, 0xc3, 0x0e, 0x3f, 0x0e, 0x92, 0x61, 0x5a, 0xf8, 0x41, 0x32, 0x74, 0x1c, 0xa4, 0x83, 0x70, 0x90, 0x0d, 0xe2, 0x21, 0xc3, 0x0e, 0x37, 0x88, 0x86, 0x99, 0x41, 0x3e, 0x08, 0x5a, 0x90, 0xcc, 0x70, 0xc3, 0x0f, 0x19, 0x66, 0x10, 0x0d, 0xf2, 0x41, 0x3c, 0x0e, 0xb2, 0x41, 0x38, 0xec, 0x20, 0x18, 0x7a, 0x10, 0xcd, 0xce, 0x3c, 0x0b, 0x19, 0x84, 0xc3, 0x0e, 0xa2, 0x19, 0x64, 0x83, 0x60, 0xe8, 0x30, 0x83, 0x74, 0xf8, 0xe1, 0x06, 0xf9, 0x20, 0x1e, 0x07, 0x49, 0x0b, 0xc2, 0xe1, 0xc6, 0x41, 0x3e, 0x88, 0x07, 0xe9, 0x30, 0x83, 0x68, 0x86, 0x1f, 0x76, 0xe8, 0x20, 0x19, 0x32, 0x08, 0x0e, 0xe2, 0x98, 0x97, 0x67, 0x41, 0x3a, 0xc8, 0x86, 0x1f, 0xc4, 0x83, 0x70, 0x1c, 0x3a, 0x48, 0x86, 0x9b, 0x41, 0x3e, 0xcc, 0x20, 0x18, 0x76, 0xc8, 0x41, 0xf3, 0x48, 0xa8, 0x0b, 0x3b, 0xc8, 0x07, 0xf1, 0x20, 0x19, 0x64, 0x43, 0x67, 0x10, 0x0c, 0xc2, 0x21, 0x83, 0x74, 0xf8, 0x71, 0x98, 0x41, 0x34, 0x5c, 0x0b, 0xa2, 0x21, 0x83, 0x60, 0x98, 0xe1, 0x87, 0x1d, 0x87, 0x1b, 0xe4, 0x83, 0x6c, 0x90, 0x0c, 0xe2, 0xa1, 0x83, 0x70, 0x90, 0x1e, 0x4e, 0xb1, 0x0d, 0x62, 0x31, 0x6d, 0x68, 0x83, 0x58, 0x57, 0x1b, 0x6a, 0x10, 0x2c, 0x2e, 0x08, 0x36, 0x58, 0x16, 0x06, 0xb3, 0x38, 0x08, 0x16, 0x04, 0x1b, 0xc4, 0xad, 0xdc, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x62, 0x84, 0xee, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0xc7, 0x61, 0x43, 0x70, 0xc8, 0xda, 0x1d, 0x87, 0x0e, 0xc6, 0x9b, 0xce, 0x71, 0x68, 0xf8, 0x05, 0xd1, 0x42, 0x06, 0xc1, 0x06, 0x69, 0x23, 0x08, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x6f, 0x1c, 0xda, 0x60, 0x31, 0x00, 0xd1, 0x06, 0x89, 0x72, 0x1f, 0x83, 0x60, 0x83, 0x68, 0x3e, 0xbf, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x83, 0x24, 0x23, 0x90, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x40, 0x5f, 0xa7, 0x83, 0x03, 0x45, 0xf2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x8f, 0x13, 0x0e, 0x1c, 0x9a, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0xf0, 0x0b, 0xa2, 0x85, 0x0c, 0x82, 0x0d, 0xd2, 0x46, 0x10, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0xdf, 0x38, 0xb4, 0x41, 0x81, 0x03, 0xb4, 0x41, 0xa2, 0xdc, 0xc7, 0x20, 0xd8, 0x20, 0x9a, 0xcf, 0x6f, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xc4, 0xba, 0xdf, 0xd0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xa9, 0xa7, 0x31, 0x07, 0xf1, 0x03, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x87, 0x5f, 0x10, 0x2d, 0x64, 0xd8, 0x0d, 0xcd, 0x92, 0x16, 0x04, 0x1b, 0xa4, 0x8d, 0x20, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0x71, 0x68, 0x83, 0x74, 0xfb, 0x8f, 0x0d, 0x12, 0xe5, 0x3e, 0x06, 0xc1, 0x06, 0xd1, 0x7c, 0x7e, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0xd6, 0xfd, 0x86, 0x0e, 0x12, 0xd1, 0x11, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0x10, 0x6c, 0x88, 0xe1, 0x20, 0x58, 0xf8, 0x05, 0xc1, 0x82, 0x64, 0xe0, 0xfe, 0x3a, 0x38, 0x66, 0x2c, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0x08, 0x16, 0x24, 0x03, 0xc2, 0x77, 0xe7, 0xe0, 0xb4, 0xa1, 0x7c, 0x30, 0x8e, 0x43, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc7, 0xa1, 0xe3, 0xdb, 0x20, 0x58, 0x5c, 0xd8, 0x85, 0xdb, 0x90, 0xaa, 0x39, 0x58, 0x0c, 0x40, 0xb4, 0xf0, 0x0b, 0xa2, 0x05, 0x82, 0x3f, 0x08, 0x36, 0x48, 0xd8, 0xab, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x5a, 0xcd, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0x9a, 0xfc, 0x9b, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xf1, 0xb2, 0x37, 0x74, 0x10, 0x98, 0xd8, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0x10, 0x6c, 0x90, 0xb0, 0x57, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xb4, 0x9a, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0x5f, 0xfc, 0x37, 0x07, 0x11, 0x02, 0x39, 0x74, 0x1c, 0x1a, 0x7e, 0x41, 0xb4, 0xb0, 0x83, 0x60, 0x41, 0x32, 0x20, 0xd0, 0xfb, 0x0e, 0xd2, 0x82, 0x46, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0xa2, 0x73, 0xd0, 0x9a, 0x83, 0xff, 0xc1, 0xf1, 0xbf, 0xf8, 0xa0, 0x70, 0x4b, 0x3a, 0x0e, 0x1d, 0x8f, 0x87, 0x5f, 0x10, 0x2d, 0x98, 0x0f, 0x82, 0x0d, 0xca, 0xa1, 0xa4, 0x83, 0x28, 0x37, 0x17, 0x3a, 0x1e, 0x0f, 0xbf, 0x20, 0x5a, 0x30, 0x1f, 0x04, 0x1b, 0x94, 0x43, 0x49, 0x07, 0x11, 0x98, 0x2e, 0x74, 0x3c, 0x1e, 0x7e, 0x41, 0xb4, 0x60, 0x3e, 0x08, 0x36, 0x28, 0x87, 0x92, 0x0e, 0xe2, 0x86, 0x5d, 0xe8, 0x78, 0x3c, 0xfc, 0x82, 0x68, 0xc1, 0x7c, 0x10, 0x6c, 0x50, 0x0e, 0x25, 0x1d, 0xc4, 0xbc, 0xbb, 0xd0, 0xf1, 0x78, 0xf8, 0x05, 0xd1, 0x82, 0xf9, 0x20, 0xd8, 0xa0, 0x1c, 0x4a, 0x3a, 0x88, 0xd8, 0x78, 0xa1, 0xe3, 0xf1, 0xf0, 0x0b, 0xa2, 0x05, 0xf3, 0x41, 0xb0, 0x41, 0x39, 0x94, 0x74, 0x10, 0x79, 0xf4, 0x42, 0xc7, 0xe3, 0xe1, 0x17, 0x44, 0x0b, 0xe6, 0x83, 0x60, 0x83, 0x72, 0x28, 0xe9, 0x20, 0x96, 0xee, 0x85, 0x8e, 0xc7, 0xc3, 0x2f, 0x88, 0x16, 0xcc, 0x07, 0xc1, 0x06, 0xe5, 0x50, 0xd2, 0x41, 0x3c, 0xe8, 0x0b, 0x1d, 0x8f, 0x07, 0xc9, 0x30, 0x07, 0x31, 0x9e, 0x61, 0x33, 0x08, 0x36, 0x88, 0xcb, 0x14, 0x93, 0xc5, 0x41, 0xb0, 0x20, 0xd8, 0x60, 0x75, 0x52, 0xca, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x0b, 0x82, 0x05, 0xc9, 0xe0, 0xde, 0xc1, 0x30, 0xf4, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x78, 0x27, 0x0f, 0x62, 0xba, 0xf2, 0xe6, 0x38, 0xb4, 0x20, 0xd8, 0x20, 0xea, 0x41, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xde, 0xc9, 0x0d, 0x3d, 0x84, 0x0e, 0x52, 0x3b, 0x40, 0x8e, 0x43, 0x0b, 0x82, 0x0d, 0xa2, 0x1e, 0x74, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xe0, 0x9d, 0xdc, 0xd0, 0xb8, 0xe8, 0x20, 0xb5, 0x03, 0xe4, 0x38, 0xb4, 0x20, 0xd8, 0x20, 0xea, 0x41, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xde, 0xc9, 0x0d, 0xc2, 0x9e, 0xfa, 0x20, 0xb5, 0x03, 0xe4, 0x38, 0xb4, 0x20, 0xd8, 0x20, 0xea, 0x41, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x9c, 0x28, 0xa2, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x9a, 0x86, 0x70, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x24, 0x0d, 0x20, 0x1c, 0x04, 0x26, 0xf6, 0x71, 0xe8, 0x20, 0xb5, 0x03, 0xe4, 0x38, 0x34, 0x08, 0x36, 0x88, 0x7a, 0xd0, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x27, 0x8a, 0xe8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0xa6, 0x21, 0x9c, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x09, 0x06, 0x08, 0x07, 0x81, 0x89, 0x7d, 0x1c, 0x3a, 0x48, 0xed, 0x00, 0x39, 0x0e, 0x1d, 0x87, 0x86, 0x5f, 0x10, 0x2d, 0x10, 0xfe, 0x41, 0xb0, 0x41, 0x1c, 0x98, 0x05, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x88, 0xd4, 0x1b, 0xe2, 0xbf, 0x41, 0x6a, 0x07, 0xc8, 0x21, 0x9a, 0xc7, 0xa1, 0xe3, 0xf1, 0xf0, 0x0b, 0xa2, 0x05, 0xc2, 0x3f, 0x08, 0x36, 0x88, 0x03, 0xb3, 0xa0, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x03, 0x91, 0x7a, 0x43, 0x0b, 0xa0, 0x0d, 0x52, 0x3b, 0x40, 0x0e, 0x8d, 0x04, 0x8f, 0x43, 0xc7, 0xe3, 0xe1, 0x17, 0x44, 0x0b, 0x84, 0x7f, 0x10, 0x6c, 0x10, 0x07, 0x66, 0x41, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x06, 0x22, 0xf5, 0x86, 0xa6, 0x43, 0x1b, 0xa4, 0x76, 0x80, 0x1c, 0x3a, 0xa9, 0x1d, 0x87, 0x8e, 0xc7, 0x83, 0x60, 0x83, 0x38, 0x30, 0x0b, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x10, 0xa9, 0x37, 0x48, 0xd6, 0x40, 0xd8, 0x20, 0xb5, 0x03, 0xe4, 0x60, 0x64, 0xf6, 0x1e, 0x87, 0x8e, 0xc7, 0x07, 0x25, 0x43, 0xd3, 0xf1, 0x78, 0x41, 0xb0, 0xc1, 0xb2, 0x30, 0x98, 0xc5, 0x41, 0xb0, 0x41, 0x8a, 0x50, 0xc8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x21, 0x7b, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0xd8, 0x60, 0x6c, 0xcf, 0x1c, 0xbc, 0xad, 0x29, 0x67, 0x10, 0x6c, 0x10, 0x5b, 0xa6, 0x20, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x9e, 0xcf, 0x12, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x28, 0x1c, 0xc0, 0x39, 0x88, 0x97, 0xa4, 0x9b, 0xe1, 0x37, 0x9e, 0x6f, 0x68, 0x96, 0x34, 0x08, 0x36, 0x68, 0x4b, 0x76, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x87, 0x39, 0xf4, 0x10, 0x3a, 0xa4, 0x0e, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x78, 0xbc, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x6c, 0xf0, 0x12, 0x55, 0x80, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x48, 0x17, 0xce, 0x39, 0x78, 0x2a, 0x64, 0xce, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x36, 0x28, 0x67, 0x75, 0x0e, 0x0e, 0x14, 0xc9, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0xf2, 0x76, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x61, 0xed, 0x77, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0xa0, 0x54, 0xef, 0x3b, 0x38, 0x50, 0x24, 0x1f, 0x0c, 0x6c, 0xd1, 0xe3, 0xd0, 0xc1, 0xc0, 0x0f, 0x39, 0x0e, 0x0d, 0x82, 0x0d, 0x62, 0xb5, 0xff, 0xe6, 0xe0, 0xcd, 0x26, 0x14, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0xd8, 0xa0, 0xa0, 0x16, 0x5b, 0x1c, 0x04, 0x1b, 0xc4, 0x08, 0xdd, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x6f, 0xe8, 0x4f, 0x3e, 0x08, 0x36, 0x38, 0xd2, 0x26, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xe4, 0x6b, 0x0f, 0x8a, 0x43, 0x8d, 0xe3, 0xd0, 0xc1, 0xb8, 0x30, 0x3b, 0x0e, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0xc4, 0x65, 0x8a, 0xc9, 0xe2, 0xf0, 0x0b, 0xa2, 0x05, 0xc2, 0x3b, 0x08, 0x16, 0x24, 0x03, 0xab, 0x4e, 0x07, 0xe7, 0xfa, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x43, 0xb1, 0x68, 0x83, 0x03, 0x11, 0xff, 0x41, 0xd2, 0x00, 0xc2, 0x71, 0xe8, 0x78, 0x3c, 0xfc, 0x82, 0x68, 0x81, 0xf8, 0x0e, 0x82, 0x0d, 0x22, 0x23, 0x79, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x50, 0x2c, 0xda, 0xe0, 0x40, 0xc4, 0x7f, 0x90, 0x60, 0x80, 0x70, 0x1c, 0x3a, 0x1e, 0x0f, 0x82, 0x05, 0xc1, 0x82, 0x64, 0xa0, 0x3c, 0x1d, 0x9c, 0xeb, 0x8f, 0x0f, 0x12, 0xc5, 0x3c, 0x86, 0x5f, 0x10, 0x2d, 0x18, 0x0f, 0x82, 0x0d, 0x62, 0xbd, 0x24, 0x67, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0x76, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x10, 0xf2, 0xd9, 0x07, 0x89, 0xf1, 0x19, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0xf8, 0x05, 0xd1, 0x02, 0xe1, 0x1e, 0x04, 0x1b, 0x44, 0x7b, 0x4b, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x81, 0x1f, 0xb2, 0x41, 0x6a, 0xd8, 0xc9, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x49, 0x46, 0x20, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x92, 0x35, 0x10, 0x0e, 0xf1, 0x3f, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0xc3, 0x2f, 0x88, 0x16, 0xdc, 0x1e, 0x04, 0x1b, 0xc4, 0x7a, 0x49, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xd3, 0xa1, 0x83, 0x64, 0x0d, 0x84, 0xe3, 0xd0, 0xf1, 0x78, 0xf8, 0x05, 0xd1, 0x82, 0xea, 0x41, 0xb0, 0x41, 0xb4, 0xb7, 0xe4, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xf8, 0x21, 0x1b, 0xc4, 0xa1, 0x1b, 0xce, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x49, 0x46, 0x20, 0x07, 0xe9, 0xd4, 0x34, 0xc7, 0xa1, 0xe3, 0xf1, 0xf0, 0x0b, 0xa2, 0x05, 0xe3, 0x41, 0xb0, 0x41, 0xac, 0x97, 0xe4, 0x0c, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xc9, 0x8e, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x42, 0x3e, 0xfb, 0x20, 0x35, 0xa6, 0xe3, 0x38, 0x74, 0x1c, 0x3a, 0x1e, 0x0f, 0xbf, 0x20, 0x5a, 0x20, 0xdc, 0x83, 0x60, 0x83, 0x68, 0x6f, 0xc9, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xf0, 0x43, 0x36, 0x48, 0xed, 0x00, 0x39, 0x88, 0x6f, 0xe9, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0xf8, 0x0d, 0x62, 0x95, 0x7a, 0x68, 0xf8, 0x05, 0xd1, 0x82, 0xea, 0x41, 0xb0, 0x41, 0xb4, 0xb7, 0xe4, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xf8, 0x21, 0x1b, 0x2c, 0x26, 0x3c, 0x39, 0x88, 0xff, 0xeb, 0xa1, 0xe3, 0xd0, 0xf1, 0xf8, 0x20, 0x36, 0x6c, 0x77, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x46, 0xfe, 0xc3, 0xe2, 0x20, 0xd8, 0x20, 0xda, 0x83, 0x66, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x7a, 0x08, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x30, 0xb6, 0x67, 0x0e, 0x46, 0x7d, 0xc6, 0x71, 0xe8, 0x78, 0x3c, 0x08, 0x16, 0xe7, 0x60, 0x68, 0xbb, 0x2c, 0x0e, 0x82, 0x0d, 0x46, 0x02, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xd6, 0x6e, 0x43, 0x0f, 0xa1, 0x0d, 0x8d, 0x8b, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x18, 0x99, 0xbd, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xde, 0x25, 0x12, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xb5, 0x3b, 0x48, 0xd8, 0x12, 0x39, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0xe1, 0x17, 0x44, 0x0b, 0xc4, 0x7e, 0x10, 0x2c, 0x48, 0x06, 0xca, 0xca, 0xc1, 0x39, 0xef, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xd8, 0x70, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x04, 0xe7, 0xe0, 0x9c, 0x77, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x0c, 0x2c, 0x1c, 0x24, 0xdc, 0x9e, 0x1c, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0xe1, 0x17, 0x44, 0x0b, 0x04, 0x7e, 0x10, 0x6c, 0x10, 0x2d, 0xea, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x8a, 0xb0, 0x89, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xe2, 0x63, 0x34, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x7b, 0x90, 0xe4, 0xd6, 0x7c, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x87, 0x5f, 0x10, 0x2d, 0x30, 0xf4, 0x83, 0x60, 0x83, 0x68, 0x51, 0x1f, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x70, 0x74, 0xe0, 0x3e, 0x48, 0xb8, 0x3d, 0x39, 0x0e, 0x1d, 0x8f, 0x87, 0x5f, 0x10, 0x2d, 0x10, 0xf9, 0x41, 0xb0, 0x41, 0x2c, 0xf3, 0xdb, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x86, 0xfe, 0xe4, 0x07, 0x25, 0x8c, 0xc4, 0x41, 0xc9, 0x29, 0x71, 0x1c, 0x3a, 0x1e, 0x0f, 0xbf, 0x20, 0x5a, 0x60, 0xea, 0x07, 0xc1, 0x06, 0xb1, 0xcc, 0x6f, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x1b, 0xfa, 0x93, 0x1f, 0x14, 0xa1, 0x09, 0x07, 0x67, 0x80, 0xec, 0xe3, 0xd0, 0xf1, 0x78, 0x10, 0x6c, 0x48, 0xd5, 0x0c, 0xbf, 0x20, 0x5a, 0xc8, 0x20, 0xd8, 0xe0, 0x59, 0x91, 0x01, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x6f, 0x1c, 0xda, 0x10, 0xc3, 0x0d, 0x0a, 0x00, 0xa8, 0x41, 0xb0, 0x20, 0x19, 0x10, 0xac, 0x7d, 0x07, 0xe7, 0xbc, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x3f, 0x88, 0x06, 0x55, 0x9a, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x62, 0xa4, 0xb6, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0xc7, 0xc0, 0x04, 0x00, 0x08, 0x18, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x46, 0x6a, 0x6b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0x07, 0xb7, 0x34, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0x62, 0xd1, 0x41, 0x31, 0x5b, 0x70, 0x1c, 0x3a, 0x28, 0xc7, 0x1a, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x78, 0x3c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x21, 0x86, 0x83, 0x60, 0x83, 0x62, 0x47, 0x62, 0xf8, 0x05, 0xd1, 0x02, 0x97, 0xff, 0xb0, 0x0b, 0x82, 0x0d, 0x8e, 0x9c, 0xca, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x25, 0x58, 0xfa, 0x3f, 0x18, 0xf8, 0x21, 0xc7, 0xa1, 0x05, 0xc1, 0x06, 0x11, 0x25, 0x8c, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x28, 0x16, 0x0d, 0xbf, 0xf1, 0x7c, 0x8d, 0x43, 0x07, 0x25, 0xa4, 0xc4, 0x1a, 0xa4, 0xb9, 0xb5, 0x0c, 0x82, 0x05, 0xc9, 0xa0, 0xed, 0xb0, 0x42, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0x44, 0x11, 0x7d, 0x90, 0xe4, 0xd6, 0x7c, 0x1c, 0x3a, 0xc4, 0xf0, 0x38, 0x74, 0x50, 0x42, 0x4a, 0x1c, 0x8f, 0x87, 0x5f, 0x10, 0x2d, 0x64, 0xd8, 0x0d, 0xe2, 0xe2, 0x7f, 0x68, 0x41, 0xb0, 0xc1, 0x89, 0x42, 0x79, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x75, 0x70, 0x90, 0xe4, 0xd6, 0x7c, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x07, 0xc1, 0xe2, 0xb0, 0x0b, 0x82, 0x0d, 0x5e, 0x2c, 0x0c, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xaa, 0x39, 0x48, 0x72, 0x6b, 0x3e, 0x0e, 0x2d, 0x08, 0x16, 0x04, 0x1b, 0x44, 0x61, 0x7a, 0xc8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa1, 0x58, 0xb4, 0xf0, 0x1b, 0xcf, 0x17, 0x04, 0x1b, 0x24, 0x9f, 0xa6, 0x1c, 0xc4, 0xce, 0x01, 0xd1, 0x41, 0x9a, 0x5b, 0xcb, 0x41, 0xd4, 0x9a, 0x06, 0x1d, 0x87, 0x86, 0x5f, 0x10, 0x2d, 0x98, 0x0f, 0x82, 0x0d, 0x22, 0x36, 0x9a, 0xe6, 0x20, 0x8e, 0xff, 0x6f, 0x8e, 0xc7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x30, 0x1f, 0x04, 0x1b, 0x9c, 0x7c, 0xa0, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x8c, 0x37, 0x9d, 0x0d, 0xa9, 0x83, 0x83, 0x34, 0x94, 0x86, 0xe3, 0xd0, 0x20, 0x5a, 0xd8, 0x41, 0xb0, 0x41, 0xb4, 0xf2, 0xe7, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xec, 0x15, 0x1e, 0x24, 0xb9, 0x35, 0x1f, 0x87, 0x8e, 0xe7, 0x83, 0x60, 0x41, 0xb0, 0x41, 0x14, 0xa6, 0x87, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x8a, 0x45, 0x1b, 0x14, 0x9d, 0x0d, 0x07, 0x51, 0x6b, 0x1a, 0x74, 0x1c, 0x1a, 0x7e, 0x41, 0xb4, 0x60, 0x3e, 0x08, 0x36, 0x88, 0xd8, 0x68, 0x9a, 0x83, 0xd7, 0xa4, 0xef, 0x1c, 0x8f, 0x87, 0x5f, 0x10, 0x2d, 0x64, 0x10, 0x2c, 0x48, 0x06, 0x6d, 0x07, 0x41, 0xce, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x87, 0xae, 0x30, 0x07, 0x49, 0x6e, 0xcd, 0xc7, 0xa1, 0xe3, 0xf1, 0xf0, 0x0b, 0xa2, 0x05, 0xf5, 0x83, 0x60, 0x83, 0x93, 0x0f, 0xf4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xf1, 0xa6, 0xb3, 0x21, 0x75, 0xb0, 0x41, 0x60, 0x62, 0x1f, 0x0c, 0xfc, 0x90, 0xe3, 0xd0, 0xf1, 0x78, 0x10, 0x6c, 0x10, 0x23, 0x16, 0x17, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0xbe, 0xa1, 0x3f, 0xf9, 0x20, 0xd8, 0x20, 0x5a, 0xf9, 0x73, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x24, 0xdc, 0x9e, 0x1c, 0xc4, 0x23, 0x83, 0xce, 0x71, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x78, 0x38, 0xd0, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x64, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x78, 0x07, 0x41, 0xd5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x5e, 0x8e, 0x08, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x6c, 0x10, 0xf3, 0x14, 0x39, 0x07, 0xc7, 0x8c, 0xe5, 0x83, 0xf8, 0xab, 0xc8, 0x39, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x90, 0x0c, 0xac, 0x3a, 0x1d, 0xb4, 0xe6, 0xe0, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x28, 0x16, 0x6d, 0x70, 0x20, 0xe2, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0xe5, 0x25, 0x14, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x06, 0x22, 0xf5, 0x41, 0xf2, 0xf1, 0xc7, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x3e, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0xc7, 0xb7, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0x1c, 0xe0, 0x15, 0x63, 0x0b, 0x5b, 0x2b, 0x93, 0x11, 0x0f, 0xa9, 0xa5, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0x1c, 0xe0, 0x11, 0x63, 0x0b, 0x5b, 0x2b, 0x0f, 0xd6, 0x84, 0xef, 0x1c, 0x8f, 0x8f, 0xc7, 0x0b, 0x82, 0x0d, 0x46, 0x96, 0xd9, 0xe2, 0x20, 0x58, 0xf8, 0x05, 0xc1, 0x06, 0xd1, 0xac, 0xad, 0x73, 0x68, 0xd4, 0x72, 0x7c, 0x5b, 0x1c, 0x76, 0x83, 0x07, 0x01, 0x75, 0x6c, 0xe8, 0x30, 0x75, 0x48, 0x1d, 0x1c, 0x8f, 0x8f, 0xc7, 0x2b, 0x2e, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0xc2, 0x2f, 0xfc, 0x86, 0x15, 0xda, 0xe1, 0x17, 0x24, 0x03, 0xc5, 0xeb, 0x78, 0x7c, 0x90, 0x6e, 0x29, 0x7d, 0x50, 0x32, 0x34, 0x1d, 0xa4, 0xf8, 0x3b, 0x1f, 0x8f, 0x17, 0x04, 0x8b, 0x0b, 0x82, 0x0d, 0x1e, 0xe8, 0x60, 0xb2, 0x38, 0x08, 0x16, 0x04, 0x0b, 0xbf, 0xf0, 0x0b, 0xbf, 0x21, 0x5b, 0x71, 0x10, 0x11, 0x28, 0x44, 0x07, 0x25, 0x43, 0xd3, 0x20, 0x19, 0x48, 0x5b, 0x1d, 0xb2, 0x15, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x85, 0xdf, 0x20, 0xbe, 0x54, 0x88, 0x0e, 0x92, 0xda, 0x0f, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xa4, 0xae, 0x0f, 0x1c, 0xf2, 0xb5, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0xd8, 0xa0, 0xad, 0x83, 0x93, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xf8, 0x6f, 0x30, 0xf0, 0x43, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0xf8, 0x85, 0xdf, 0x20, 0xc8, 0xf9, 0x0f, 0x22, 0x02, 0x85, 0xe8, 0x20, 0xa1, 0xa7, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0xca, 0x60, 0xc0, 0xa1, 0xf1, 0xfc, 0x71, 0xe8, 0x90, 0x3a, 0x38, 0x0e, 0x1d, 0x8f, 0x57, 0x10, 0x6c, 0xf0, 0x40, 0x07, 0x93, 0xc5, 0x41, 0xb0, 0x30, 0x83, 0x60, 0x83, 0xa7, 0x2a, 0x51, 0x1c, 0x24, 0x97, 0x0f, 0x0c, 0x82, 0x05, 0xc1, 0xc2, 0x6f, 0x10, 0xa5, 0x2f, 0x44, 0x07, 0xc5, 0x2a, 0xd4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xb1, 0xe1, 0x3a, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xf0, 0x1b, 0x44, 0xe9, 0x0b, 0xd1, 0x41, 0xda, 0x35, 0xfa, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x81, 0x1f, 0xb2, 0x41, 0x3a, 0xad, 0xc3, 0x41, 0xca, 0x60, 0xc0, 0x71, 0xe8, 0x38, 0x34, 0x08, 0x16, 0x04, 0x0b, 0xbf, 0xf0, 0x0b, 0xbf, 0x41, 0xc0, 0xfb, 0x1f, 0x44, 0x04, 0x0a, 0xd1, 0x41, 0xc9, 0xd0, 0x74, 0x10, 0x3f, 0x2b, 0x44, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x85, 0xdf, 0x20, 0x7e, 0x6e, 0x88, 0x0e, 0x06, 0xe7, 0xe3, 0x41, 0x43, 0x64, 0x02, 0xc7, 0xa1, 0x41, 0xb0, 0x41, 0x0b, 0xbe, 0xe6, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x82, 0x14, 0x7f, 0xc3, 0x5e, 0xe1, 0xc1, 0x58, 0xf6, 0x39, 0x0e, 0x1d, 0x8f, 0x07, 0xc1, 0x06, 0x51, 0x23, 0xe0, 0xb3, 0x38, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x85, 0xdf, 0x20, 0xee, 0x54, 0x88, 0x0e, 0x06, 0xf7, 0xf4, 0x20, 0x19, 0x28, 0x7e, 0x07, 0xe7, 0xed, 0xee, 0x43, 0x53, 0xa0, 0x61, 0x17, 0x76, 0x83, 0xd1, 0xb1, 0xbe, 0xb0, 0x0b, 0xb7, 0xb0, 0x1b, 0x34, 0x3e, 0x1e, 0x73, 0xf0, 0xd6, 0x45, 0x80, 0x43, 0xb3, 0xa4, 0x43, 0x3a, 0xf7, 0x70, 0xb4, 0x6f, 0x88, 0xe1, 0x20, 0x58, 0x10, 0x2c, 0xfc, 0x06, 0x51, 0xfa, 0x42, 0x74, 0x30, 0xb8, 0xa7, 0x07, 0xc9, 0x60, 0x34, 0x88, 0x36, 0x68, 0x4b, 0x5b, 0xe5, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x6e, 0xc3, 0xb8, 0x1c, 0x94, 0x32, 0x3b, 0xc7, 0xe3, 0xe3, 0xd0, 0xf1, 0x78, 0x41, 0xb0, 0xc1, 0xc8, 0x7f, 0x58, 0x1c, 0x04, 0x2b, 0x08, 0x16, 0x7e, 0x83, 0xb8, 0x53, 0x21, 0x3a, 0x78, 0xd8, 0x5e, 0xcf, 0xc1, 0x2a, 0x80, 0xac, 0x05, 0xc1, 0x06, 0x91, 0x3c, 0x44, 0x74, 0xb0, 0x58, 0x97, 0x69, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0xf8, 0x85, 0xdf, 0x90, 0x5c, 0x3a, 0x88, 0x08, 0x14, 0xa2, 0x41, 0x32, 0xd0, 0xa6, 0xef, 0x60, 0xf8, 0xc7, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0xd8, 0x20, 0x92, 0x87, 0x88, 0x0e, 0x16, 0x26, 0xff, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x24, 0xa6, 0x16, 0x07, 0xc1, 0x0a, 0x82, 0x0d, 0x22, 0x79, 0x88, 0xe8, 0x20, 0xaa, 0x65, 0x45, 0x06, 0xc1, 0x06, 0x91, 0x3c, 0x44, 0x74, 0x10, 0x77, 0xde, 0x27, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xe3, 0xd0, 0xa1, 0x05, 0xd8, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x10, 0x6c, 0x30, 0xf2, 0x1f, 0x16, 0x87, 0x5d, 0xd8, 0x0d, 0x82, 0xc4, 0xfb, 0xb0, 0xbe, 0xb9, 0xb0, 0x0b, 0x82, 0x85, 0xdf, 0x20, 0xee, 0x54, 0x88, 0x0e, 0x0e, 0x7f, 0xbc, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x7e, 0x83, 0xb8, 0x53, 0x21, 0x3a, 0x18, 0x72, 0xd2, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x3d, 0x84, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x7e, 0x83, 0xb8, 0x53, 0x21, 0x3a, 0x38, 0xd0, 0x0e, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xcc, 0x20, 0xd8, 0xe0, 0xa9, 0x4a, 0x14, 0x87, 0xa6, 0x40, 0xc7, 0xa1, 0xe3, 0xd0, 0x21, 0x6b, 0x77, 0x1c, 0x3a, 0xa4, 0x73, 0x0f, 0x47, 0xfb, 0xf1, 0x78, 0x71, 0x41, 0xb0, 0xb8, 0x41, 0x00, 0xdc, 0x1f, 0x8c, 0x31, 0xb4, 0xc5, 0x61, 0x17, 0x04, 0x0b, 0xbf, 0x41, 0x94, 0xbe, 0x10, 0x1d, 0x9c, 0xd9, 0xb2, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xa2, 0x95, 0x83, 0xb4, 0xad, 0x96, 0xe3, 0xd0, 0xc2, 0x2e, 0xdc, 0x06, 0x89, 0x5d, 0x3f, 0x83, 0x60, 0x83, 0x58, 0x6d, 0xb8, 0x39, 0xa4, 0xe1, 0x16, 0x76, 0x41, 0xb0, 0xc1, 0xe0, 0xae, 0x3c, 0x18, 0xa3, 0x11, 0x0b, 0xbb, 0xc1, 0x58, 0x47, 0x5b, 0x10, 0x2d, 0xec, 0x41, 0x42, 0x98, 0xc1, 0x21, 0x9a, 0xc3, 0x2e, 0x08, 0x36, 0x38, 0x8a, 0xa3, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x64, 0xed, 0x0e, 0xcd, 0x92, 0x8e, 0x43, 0x0b, 0xa2, 0x85, 0x6e, 0x90, 0x10, 0x66, 0x30, 0x08, 0x16, 0x04, 0x1b, 0xc4, 0x02, 0x10, 0xd1, 0x20, 0x19, 0x18, 0xaa, 0x83, 0xf3, 0x76, 0xf7, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x5e, 0x41, 0x23, 0x77, 0x90, 0x5c, 0x3e, 0x70, 0x68, 0x96, 0x74, 0x1c, 0x3a, 0x44, 0xf3, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x46, 0xfe, 0xc3, 0xe2, 0x82, 0x60, 0xe1, 0x17, 0x7e, 0x83, 0x28, 0x7d, 0x21, 0x3a, 0x28, 0x19, 0x9a, 0x0e, 0xe2, 0x67, 0x85, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xf0, 0x1b, 0x44, 0x7e, 0x17, 0xd1, 0x41, 0x52, 0xfb, 0xc1, 0xc1, 0xa8, 0xc2, 0x3e, 0x0e, 0x1d, 0xa2, 0x79, 0x3c, 0x5e, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0xbb, 0x20, 0x58, 0xf8, 0x0d, 0xa2, 0xf4, 0x85, 0xe8, 0x20, 0xf9, 0x3a, 0xfb, 0xf0, 0xd4, 0xc0, 0xc2, 0x6e, 0xf0, 0x6e, 0xe1, 0x9c, 0x05, 0xc1, 0x82, 0x60, 0xe1, 0x37, 0x88, 0xd2, 0x17, 0xa2, 0x83, 0x67, 0xec, 0xfd, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x86, 0x18, 0x1e, 0x3c, 0x00, 0xf8, 0xe1, 0x60, 0xe0, 0x87, 0x1c, 0x87, 0x06, 0xc1, 0x86, 0x66, 0x49, 0x83, 0x60, 0xc3, 0xd1, 0x3e, 0x08, 0x16, 0x87, 0xdd, 0x20, 0xf8, 0x98, 0xd7, 0x20, 0x48, 0xf1, 0x0f, 0x46, 0x29, 0xe7, 0x20, 0x19, 0x32, 0x88, 0x16, 0xcc, 0x07, 0xc1, 0x82, 0x60, 0xe1, 0x17, 0x7e, 0x83, 0xe1, 0x1f, 0x7b, 0x10, 0x11, 0x28, 0x44, 0x07, 0x83, 0x7b, 0x7a, 0x90, 0x0c, 0x0c, 0xd5, 0xc1, 0xa8, 0x31, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0xd5, 0x0c, 0xbf, 0xf1, 0xfc, 0xb0, 0x20, 0x7a, 0x1c, 0x1a, 0x44, 0x1b, 0x04, 0xe6, 0xfa, 0x61, 0xc7, 0xe4, 0xf8, 0x76, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0xf1, 0x78, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0xb0, 0x0b, 0xbb, 0xa1, 0xe3, 0xc8, 0xc2, 0x6e, 0x10, 0xf4, 0xfa, 0x0b, 0xbb, 0xc1, 0xe8, 0xc5, 0xda, 0xa0, 0x08, 0x19, 0x3c, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x2f, 0x08, 0x16, 0x04, 0x0b, 0xbf, 0x41, 0xe4, 0x77, 0x11, 0x1d, 0x0c, 0xce, 0xc7, 0x83, 0x31, 0x1a, 0x31, 0x08, 0x36, 0x74, 0x0c, 0x1b, 0x04, 0x8b, 0xc3, 0x6e, 0x58, 0xdf, 0x5b, 0x10, 0x2c, 0xfc, 0xc2, 0x2f, 0xfc, 0x06, 0xc3, 0xd0, 0xe7, 0x20, 0x22, 0x50, 0x88, 0x0e, 0x4a, 0x86, 0xa6, 0x83, 0xf8, 0x59, 0x21, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0xfc, 0x06, 0x31, 0xeb, 0x46, 0x74, 0xb0, 0xc4, 0x5e, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x20, 0x66, 0xdd, 0x88, 0x0e, 0xd6, 0xd0, 0x48, 0x1d, 0xf6, 0x0a, 0x8f, 0x43, 0xc7, 0xa1, 0x41, 0xb0, 0x82, 0x60, 0x83, 0xd8, 0x74, 0x23, 0x3a, 0x18, 0x66, 0xe1, 0x87, 0x68, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x41, 0x3c, 0x08, 0x16, 0x7e, 0xe1, 0x37, 0x88, 0x8c, 0x33, 0xa2, 0x83, 0x92, 0xa1, 0xe9, 0x60, 0x70, 0x3e, 0x1e, 0x8c, 0x3a, 0xae, 0x83, 0x41, 0x17, 0x70, 0x7c, 0x3b, 0x9c, 0x62, 0xc7, 0xe3, 0xe3, 0xf1, 0x82, 0x60, 0x71, 0x41, 0xb0, 0xb8, 0x41, 0x51, 0x2d, 0xd8, 0xe2, 0x70, 0x1b, 0x8e, 0xf6, 0x41, 0xb0, 0xf0, 0x1b, 0xc4, 0x9d, 0x0a, 0xd1, 0x41, 0xda, 0x35, 0xfa, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x81, 0x1f, 0xb2, 0xf0, 0x1b, 0xcf, 0x0f, 0xe2, 0xda, 0xc4, 0xe7, 0x20, 0x75, 0x7d, 0xe0, 0x38, 0x74, 0x3c, 0x5e, 0x10, 0x2c, 0x6e, 0x50, 0x54, 0x0b, 0x1e, 0x04, 0xc0, 0xfd, 0xe2, 0xb0, 0x0b, 0x82, 0x0d, 0xa2, 0xa6, 0x89, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x21, 0x9f, 0x37, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xf0, 0x1b, 0xc4, 0x9d, 0x0a, 0xd1, 0xc1, 0x59, 0x32, 0x7b, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc0, 0x0f, 0x39, 0x48, 0x5d, 0x1f, 0x38, 0x0e, 0x1d, 0x87, 0x16, 0x04, 0x0b, 0x82, 0x85, 0xdf, 0x20, 0xee, 0x54, 0x88, 0x0e, 0x52, 0x1d, 0xb9, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xa4, 0xae, 0x0f, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0x89, 0x4e, 0x44, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x7e, 0x83, 0xb8, 0x53, 0x21, 0x3a, 0x48, 0xe8, 0x69, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x90, 0xba, 0x3e, 0x30, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x24, 0x40, 0x11, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x0f, 0x0a, 0xf9, 0xbc, 0xe3, 0xd0, 0x71, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x48, 0x80, 0x22, 0x3a, 0x34, 0x05, 0x3a, 0x0e, 0x1d, 0x87, 0x06, 0xd1, 0x82, 0x7c, 0x10, 0x2c, 0x08, 0x36, 0x88, 0x05, 0x20, 0xa2, 0x41, 0x32, 0x30, 0x54, 0x07, 0xab, 0x60, 0xbf, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x52, 0x07, 0xc3, 0x6f, 0x3c, 0x3f, 0x48, 0xc0, 0x03, 0x39, 0x0e, 0x1d, 0xb2, 0x76, 0xc3, 0x6e, 0xb0, 0x4e, 0x66, 0x7f, 0x41, 0xb4, 0x20, 0xde, 0x60, 0x64, 0xf6, 0x1e, 0xbc, 0x5c, 0x82, 0xe6, 0x10, 0xcd, 0x41, 0xb4, 0x20, 0xde, 0x60, 0x64, 0xf6, 0x1e, 0x9c, 0x58, 0xee, 0x0f, 0xd1, 0x3c, 0x1e, 0x0f, 0x82, 0x0d, 0x96, 0x85, 0xc1, 0x2c, 0x0e, 0x82, 0x15, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x36, 0x88, 0xee, 0x22, 0xa2, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x91, 0x76, 0x44, 0x34, 0xfc, 0xc6, 0xf3, 0xe1, 0x17, 0x7e, 0x83, 0xa8, 0x2f, 0x22, 0x3a, 0x28, 0x19, 0x9a, 0x0e, 0x5e, 0xc7, 0x29, 0x71, 0x1c, 0x3a, 0xa4, 0xe1, 0x36, 0x88, 0x5a, 0x22, 0xa2, 0x05, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x85, 0xdf, 0x20, 0xea, 0x8b, 0x88, 0x0e, 0x9a, 0x20, 0x17, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x10, 0x6c, 0x10, 0xc9, 0x43, 0x44, 0x07, 0x51, 0x91, 0x68, 0x72, 0x68, 0xfe, 0x72, 0x3c, 0x3e, 0x0e, 0x1d, 0x3a, 0x11, 0x0d, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x1b, 0x44, 0x77, 0x11, 0xd1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x48, 0x3b, 0x22, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0xf8, 0x0d, 0xa2, 0xbe, 0x88, 0xe8, 0xa0, 0x6d, 0x74, 0x91, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x71, 0xdf, 0x48, 0x74, 0x10, 0xf7, 0x8d, 0x44, 0xc7, 0xa1, 0xe3, 0xd0, 0xa1, 0xfb, 0xd1, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x71, 0x41, 0xb0, 0xc1, 0xb2, 0x30, 0x98, 0xc5, 0x61, 0x37, 0x08, 0x12, 0xef, 0x15, 0x04, 0x1b, 0x44, 0x7e, 0x17, 0xd1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xd4, 0xb0, 0x93, 0x83, 0xa5, 0x6a, 0x2f, 0xc7, 0xa1, 0x43, 0x62, 0x6a, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x05, 0xc1, 0x06, 0xaf, 0xa0, 0x91, 0x3b, 0x34, 0x05, 0x1a, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0xc2, 0x6f, 0x10, 0x57, 0x37, 0x44, 0x07, 0x83, 0x7b, 0x7a, 0x90, 0x0c, 0x54, 0xaf, 0xc3, 0x9e, 0xed, 0xc1, 0xc0, 0x16, 0x1d, 0x7e, 0xc3, 0x8e, 0xc9, 0x20, 0x58, 0x1c, 0x76, 0xe1, 0x36, 0xa4, 0x6a, 0x06, 0xc1, 0xc2, 0x6f, 0x10, 0xcb, 0x6e, 0x44, 0x83, 0x64, 0xa0, 0xb9, 0xd3, 0xc1, 0xf0, 0x8f, 0x3d, 0x38, 0x5d, 0x60, 0xaf, 0x20, 0xd8, 0x20, 0x36, 0xdd, 0x88, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xc4, 0x26, 0x1c, 0xd1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xf8, 0x8c, 0x23, 0x3a, 0xa4, 0x6a, 0x8e, 0x43, 0xc7, 0xa1, 0x83, 0xc0, 0xc4, 0x1e, 0x76, 0x41, 0xb0, 0xc1, 0x08, 0x3e, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x1e, 0xb4, 0xf7, 0x3a, 0x72, 0x1c, 0x5a, 0x10, 0x2c, 0x08, 0x36, 0x88, 0x4d, 0x37, 0xa2, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x60, 0xe1, 0x37, 0x88, 0x65, 0x37, 0xa2, 0x83, 0xc1, 0x3d, 0x7d, 0xd0, 0xcc, 0xf7, 0xd3, 0xc1, 0x30, 0x0b, 0x3f, 0x0e, 0x0d, 0x82, 0x05, 0xc1, 0xc2, 0x6f, 0x10, 0x61, 0x74, 0x44, 0x07, 0xf1, 0xb3, 0x42, 0x74, 0x30, 0xcc, 0xc2, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xa0, 0x7e, 0x10, 0x6c, 0x10, 0xc5, 0x44, 0x3c, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x06, 0x22, 0xf5, 0x06, 0xe3, 0x4d, 0xe7, 0x60, 0x2c, 0xfb, 0x1c, 0x87, 0x06, 0xd1, 0x06, 0xc5, 0x36, 0xdd, 0x20, 0x5a, 0xd8, 0x41, 0xb0, 0xf0, 0x0b, 0xbf, 0xf0, 0x1b, 0x0c, 0x47, 0xe9, 0x83, 0x88, 0x40, 0x21, 0x3a, 0x28, 0x19, 0x9a, 0x0e, 0x06, 0xe7, 0xe3, 0xc1, 0xe0, 0xf4, 0x39, 0x24, 0x97, 0x0e, 0xe2, 0x36, 0xc3, 0xe6, 0xf8, 0x36, 0xfc, 0x06, 0x8d, 0x64, 0x3d, 0x0d, 0xbf, 0xc1, 0x60, 0x07, 0x18, 0x04, 0x0b, 0xbb, 0x41, 0xb0, 0x3d, 0x6f, 0x88, 0xe1, 0x20, 0x58, 0xf8, 0x0d, 0xe2, 0xea, 0x86, 0x68, 0x90, 0x6c, 0x10, 0xf3, 0x14, 0x39, 0x07, 0xc3, 0x3f, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc0, 0x0f, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0xf8, 0x0d, 0xe2, 0xea, 0x86, 0xe8, 0xe0, 0xa8, 0x3d, 0x7c, 0xb0, 0x8a, 0x93, 0xff, 0x38, 0xb4, 0x21, 0x75, 0xb0, 0x20, 0x58, 0xf8, 0x85, 0xdf, 0x60, 0xbc, 0xeb, 0x1c, 0x44, 0x04, 0x0a, 0xd1, 0xc1, 0x4b, 0x30, 0xbd, 0x0e, 0xda, 0x5e, 0x7d, 0x19, 0x04, 0x0b, 0xbf, 0x41, 0x54, 0xb1, 0x12, 0x1d, 0x3c, 0x31, 0xc6, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x75, 0x30, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xf0, 0x1b, 0x44, 0x15, 0x2b, 0xd1, 0xc1, 0xe0, 0x9e, 0x1e, 0x24, 0x03, 0xc5, 0xef, 0x20, 0x02, 0x70, 0x72, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0xb0, 0xc1, 0x43, 0x68, 0xd2, 0x16, 0x87, 0x5d, 0x10, 0x6c, 0x10, 0xd7, 0x53, 0x44, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x3d, 0x84, 0x0e, 0xd2, 0xb6, 0x5a, 0x8e, 0x43, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0xf1, 0xf8, 0x45, 0x74, 0x10, 0x05, 0x2d, 0x44, 0x83, 0x60, 0x43, 0x0c, 0x07, 0xc1, 0xe2, 0xb0, 0x0b, 0x82, 0x0d, 0x46, 0xf0, 0xe9, 0xc1, 0x50, 0x4e, 0x58, 0x10, 0x2c, 0x08, 0x36, 0x88, 0x4d, 0x37, 0xa2, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x88, 0x04, 0x25, 0x1a, 0x24, 0x03, 0xd5, 0xeb, 0x60, 0x05, 0x67, 0xcf, 0xa1, 0x51, 0xcb, 0x71, 0x68, 0x10, 0x2c, 0x08, 0x36, 0x88, 0x01, 0x51, 0xa2, 0x83, 0xf1, 0x61, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xe7, 0x07, 0xc1, 0x06, 0x51, 0x4c, 0xc4, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xa0, 0x24, 0x68, 0xd8, 0x20, 0x30, 0xb1, 0x0f, 0xc6, 0xb2, 0xcf, 0x71, 0x68, 0x10, 0x2d, 0x88, 0x0f, 0x22, 0xae, 0x94, 0xe8, 0xa0, 0x80, 0x8f, 0x1a, 0x44, 0x0b, 0x7b, 0x90, 0xbe, 0x4c, 0x30, 0x88, 0x16, 0x32, 0x08, 0x16, 0x04, 0x1b, 0x44, 0x24, 0x28, 0xd1, 0x20, 0x19, 0x18, 0xaa, 0x83, 0x15, 0x9c, 0x3d, 0x07, 0x8b, 0xf9, 0xbc, 0x0e, 0xc9, 0x8e, 0xe3, 0xdb, 0xe1, 0x14, 0x3b, 0x1e, 0x1f, 0x8f, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xec, 0x86, 0xf5, 0xbd, 0x0d, 0xa7, 0xd8, 0x20, 0xd8, 0x10, 0xc3, 0x41, 0xb0, 0x38, 0xec, 0xc2, 0x6d, 0x38, 0xda, 0x07, 0xc1, 0x06, 0xf1, 0x4e, 0x43, 0x74, 0x30, 0xce, 0x18, 0x0f, 0xeb, 0x87, 0xc7, 0xb7, 0xe3, 0xf1, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x04, 0x0b, 0xbf, 0xf0, 0x1b, 0xa4, 0x7f, 0x29, 0x1c, 0x2c, 0x53, 0x16, 0x3b, 0xbe, 0x0d, 0x82, 0xc5, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x0d, 0xa2, 0xf4, 0x85, 0xe8, 0x20, 0x79, 0x8e, 0xfb, 0x20, 0xe6, 0x62, 0x89, 0x86, 0x5d, 0x10, 0x2c, 0xfc, 0x06, 0x71, 0x75, 0x43, 0x74, 0x70, 0x66, 0xcb, 0x3e, 0x88, 0x2f, 0xb0, 0xa0, 0x05, 0xc1, 0xc2, 0x6f, 0xb0, 0x3e, 0xd2, 0xe1, 0xa0, 0x64, 0x68, 0x3a, 0x18, 0x66, 0xe1, 0x83, 0x60, 0x05, 0xc1, 0xc2, 0x6f, 0x10, 0x57, 0x37, 0x44, 0x83, 0x64, 0x20, 0x38, 0x07, 0xc3, 0x51, 0x7a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0xda, 0x56, 0xcb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc2, 0x6f, 0x10, 0x57, 0x37, 0x44, 0x07, 0xa9, 0x8e, 0xdc, 0x07, 0xf1, 0x05, 0x16, 0x74, 0x1c, 0x1a, 0x04, 0x0b, 0xbf, 0x41, 0x5c, 0xdd, 0x10, 0x1d, 0xa4, 0x5d, 0xa3, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x8a, 0x45, 0x0b, 0xbf, 0xf1, 0x7c, 0xe3, 0xd0, 0x41, 0xb2, 0x57, 0xcb, 0x41, 0x88, 0xf8, 0x1f, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x83, 0x60, 0xe1, 0x37, 0x68, 0xe7, 0x33, 0xe6, 0xa0, 0x1c, 0x4a, 0x3a, 0x88, 0x17, 0x30, 0x9c, 0x43, 0x72, 0xe9, 0xf8, 0x76, 0x3c, 0x3e, 0x1e, 0x2f, 0x2e, 0x08, 0x16, 0x17, 0x04, 0x0b, 0x92, 0x81, 0xa1, 0x3a, 0x18, 0x8e, 0xd2, 0x07, 0x2b, 0xf3, 0xf5, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x85, 0x5f, 0xe1, 0x37, 0x24, 0x97, 0x86, 0x5f, 0x90, 0x0c, 0x08, 0xfe, 0xbe, 0xc3, 0x0a, 0xed, 0xf1, 0x6d, 0xf8, 0x0d, 0xc9, 0xa5, 0xe1, 0x37, 0x28, 0x19, 0x9a, 0x8e, 0x6f, 0x87, 0x9e, 0xa8, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xc5, 0x05, 0xc1, 0x06, 0xcb, 0x4d, 0x49, 0x16, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xbb, 0xb0, 0x1b, 0x3a, 0x8e, 0x6c, 0xb0, 0x2a, 0xea, 0xe3, 0x70, 0xb4, 0x2f, 0x08, 0x16, 0x24, 0x03, 0xa7, 0xd6, 0xc1, 0x31, 0xab, 0xf8, 0xa0, 0x0d, 0xdc, 0x94, 0x43, 0x0c, 0x8f, 0xc7, 0xc7, 0xe3, 0x15, 0x04, 0x1b, 0x3c, 0x30, 0x93, 0x6b, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x0f, 0x0a, 0x3f, 0xbf, 0xe1, 0x37, 0x9e, 0x2f, 0x0e, 0xb2, 0x0d, 0x71, 0x19, 0x04, 0x1b, 0xbc, 0xca, 0x6b, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x35, 0xe4, 0xbe, 0x0f, 0x12, 0x08, 0x4f, 0xd6, 0xa0, 0x90, 0xfa, 0x1b, 0x04, 0x0b, 0x92, 0x81, 0x52, 0x77, 0x3c, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x0d, 0x9e, 0xe1, 0x23, 0x30, 0x08, 0x36, 0x88, 0xdb, 0x6a, 0xa2, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x5f, 0x3c, 0x58, 0x21, 0x2e, 0x7f, 0x90, 0x40, 0x78, 0xb2, 0xf0, 0x1b, 0xcf, 0x17, 0x0f, 0x7d, 0xf0, 0x0f, 0x12, 0x08, 0x4f, 0x16, 0x7e, 0xe3, 0xf9, 0x06, 0xaf, 0x05, 0x0b, 0x3a, 0x48, 0x20, 0x3c, 0x59, 0xf8, 0x8d, 0xe7, 0x8b, 0x01, 0xcf, 0x18, 0xdb, 0xdb, 0x5c, 0x79, 0x90, 0x40, 0x78, 0x72, 0x30, 0xf0, 0x43, 0x8e, 0x43, 0x0b, 0xbf, 0xf1, 0x7c, 0x31, 0xe0, 0x61, 0x4b, 0x73, 0x2b, 0x9b, 0x07, 0xc1, 0x06, 0xcb, 0x75, 0x61, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x3f, 0x68, 0x33, 0xce, 0xff, 0x38, 0x74, 0x30, 0xf0, 0x43, 0x8e, 0x43, 0x6b, 0x50, 0xee, 0x03, 0x0e, 0x82, 0x0d, 0xe2, 0xb6, 0x9a, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x37, 0x78, 0x86, 0x8f, 0xc0, 0x20, 0xd8, 0x20, 0x6e, 0xab, 0x89, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xc4, 0xf0, 0x35, 0xd1, 0x41, 0x14, 0x65, 0x13, 0x1d, 0x87, 0x0e, 0x62, 0x6a, 0x9b, 0xe8, 0x38, 0x74, 0x88, 0xe1, 0x71, 0xe8, 0x78, 0x7c, 0x1c, 0x5a, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x87, 0x5d, 0xd8, 0x0d, 0x1d, 0x47, 0x36, 0x78, 0x6e, 0x2d, 0xcf, 0xe1, 0x68, 0x5f, 0xd8, 0x85, 0x5b, 0x10, 0x6c, 0x10, 0x97, 0xe9, 0x35, 0x07, 0xe3, 0xc3, 0x68, 0x10, 0x6c, 0x10, 0x97, 0xe9, 0x35, 0x87, 0x0e, 0x1a, 0x0b, 0x82, 0x05, 0xc1, 0x82, 0x60, 0x41, 0x32, 0x30, 0x76, 0x87, 0x6c, 0xc5, 0xc1, 0xf8, 0x30, 0x3a, 0x74, 0xd0, 0x18, 0x76, 0x41, 0xb0, 0xc1, 0xb3, 0xd3, 0x20, 0x0e, 0x06, 0xb6, 0xe8, 0x82, 0x60, 0x83, 0xf8, 0x16, 0xb0, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0xce, 0xab, 0x83, 0x20, 0xe7, 0x3f, 0x18, 0xd8, 0xa2, 0xc7, 0xa1, 0x43, 0x0c, 0x0f, 0x31, 0x3c, 0xc4, 0xf0, 0x78, 0x7c, 0x3c, 0x5e, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x2e, 0x08, 0x16, 0x87, 0xdd, 0x20, 0xf8, 0x98, 0x37, 0xc4, 0x70, 0xd8, 0x0d, 0x6b, 0xa1, 0x1b, 0x8e, 0xf6, 0x83, 0x15, 0x0b, 0x3a, 0xc7, 0xb7, 0x05, 0xc1, 0x82, 0x64, 0x60, 0xbd, 0xee, 0xe0, 0x98, 0x55, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x1c, 0x76, 0x83, 0xe0, 0x63, 0xde, 0x10, 0xc3, 0x0d, 0xc6, 0x85, 0xd9, 0xc1, 0x8a, 0x05, 0x9d, 0xe3, 0xdb, 0x71, 0xe8, 0x10, 0xc3, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x87, 0xdd, 0xe0, 0x1c, 0x92, 0xbe, 0x20, 0xd8, 0x20, 0x9a, 0xeb, 0x6b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xf2, 0xb5, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x34, 0xc4, 0x9f, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0x20, 0x2c, 0x07, 0x27, 0xa1, 0xe3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x1a, 0xe2, 0xcf, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x38, 0x10, 0x99, 0x1f, 0x9c, 0x7f, 0xc2, 0x87, 0xdf, 0x78, 0x7e, 0xf0, 0x44, 0xed, 0xb8, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0x88, 0xe1, 0xf1, 0x78, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0xb0, 0x1b, 0x9c, 0x43, 0xd2, 0x17, 0x04, 0x1b, 0x44, 0x73, 0x7d, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xbe, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0xc0, 0xbb, 0xf7, 0xa9, 0x0e, 0x86, 0xa3, 0xf4, 0x71, 0xe8, 0x10, 0xc3, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x87, 0xdd, 0xb0, 0xbe, 0xb7, 0x20, 0xd8, 0x20, 0x26, 0xd6, 0x89, 0x0e, 0x52, 0x94, 0x9f, 0x0f, 0x31, 0x3c, 0x1e, 0x2f, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0xb0, 0x0b, 0xbb, 0xa1, 0xe3, 0xc8, 0xc2, 0x6e, 0x10, 0x07, 0xab, 0x2e, 0x0b, 0xbb, 0xc1, 0xe8, 0xc5, 0x5a, 0xd8, 0x85, 0xdd, 0xa0, 0x38, 0x19, 0xdc, 0xe0, 0x5d, 0xd2, 0x3f, 0x87, 0xa3, 0x7d, 0x61, 0x37, 0x48, 0xec, 0xfa, 0x59, 0xd8, 0x0d, 0x5a, 0x9c, 0x82, 0x39, 0x78, 0xc8, 0xdd, 0xc3, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0x05, 0xc1, 0xe2, 0xb0, 0x1b, 0x04, 0x17, 0xf6, 0x86, 0x18, 0x0e, 0xbb, 0x70, 0x1b, 0x94, 0x30, 0x12, 0x07, 0x83, 0x68, 0x65, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0xdc, 0x57, 0x07, 0x41, 0xce, 0x7f, 0x50, 0x30, 0x95, 0x1c, 0xb4, 0x4e, 0xad, 0x32, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x81, 0x72, 0x75, 0x10, 0xe4, 0xfc, 0x07, 0xad, 0xe7, 0x87, 0x1c, 0x0c, 0xb3, 0xf0, 0xe3, 0xdb, 0x21, 0x86, 0xc7, 0xe3, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x87, 0xdd, 0xb0, 0xbe, 0xb7, 0xe1, 0x14, 0x1b, 0x76, 0xc3, 0xae, 0xc1, 0x06, 0x43, 0xb3, 0x6b, 0x83, 0xa1, 0xd9, 0x35, 0x08, 0x16, 0x24, 0x03, 0xe7, 0xd5, 0x21, 0xb9, 0x74, 0xe8, 0xa0, 0x71, 0x3c, 0x1e, 0x04, 0x1b, 0x8c, 0xb2, 0xb2, 0xc5, 0x41, 0xb0, 0x41, 0x73, 0x79, 0x29, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0xf1, 0xa0, 0xd8, 0x12, 0x3b, 0x1e, 0x1f, 0xf2, 0xb5, 0xc7, 0xa1, 0xe3, 0xf1, 0x82, 0x60, 0x83, 0x10, 0xb6, 0x5f, 0x1c, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xec, 0x86, 0xf5, 0xbd, 0x05, 0xc1, 0x06, 0x91, 0xa6, 0x00, 0x74, 0x90, 0xa2, 0xfc, 0x3c, 0x08, 0x16, 0x24, 0x03, 0xfb, 0x75, 0x07, 0xa7, 0x33, 0xe4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x3f, 0xf4, 0x1b, 0x1c, 0x7e, 0xe3, 0xf9, 0x41, 0xa4, 0x29, 0x00, 0x1d, 0x87, 0x8e, 0xc7, 0xc7, 0xe3, 0x05, 0xc1, 0x06, 0x85, 0x00, 0xcd, 0xe2, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x41, 0xe4, 0x1e, 0x14, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x28, 0xbe, 0x6d, 0x0e, 0xc9, 0x8e, 0xe3, 0xd0, 0xf1, 0xf8, 0x78, 0x3c, 0x08, 0x36, 0xc4, 0x70, 0x71, 0xd8, 0x85, 0xdd, 0xd0, 0x71, 0x64, 0x83, 0x97, 0x10, 0xf3, 0x1c, 0x8e, 0xf6, 0x35, 0xc4, 0xf0, 0xe0, 0x60, 0xa0, 0x7b, 0x88, 0xe1, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x6e, 0x10, 0x1f, 0xd0, 0x44, 0x0b, 0x82, 0x0d, 0x62, 0x62, 0x9d, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x0b, 0x97, 0x04, 0x0e, 0x1d, 0x34, 0x8e, 0x43, 0x87, 0x18, 0x1e, 0x8f, 0x57, 0x10, 0x2c, 0x6e, 0xb0, 0xe8, 0x94, 0xe4, 0x20, 0x9c, 0xed, 0x17, 0x07, 0xc1, 0x06, 0xcd, 0xe5, 0xa5, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0xf0, 0x0b, 0x92, 0x81, 0x78, 0x1d, 0x9c, 0xce, 0x90, 0x0f, 0xc6, 0x32, 0xd4, 0xa1, 0x51, 0xcb, 0xf1, 0x78, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x90, 0xbf, 0x3b, 0x24, 0x97, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x5f, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0xd8, 0x20, 0xc2, 0x64, 0x6d, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x44, 0x9c, 0xad, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x9a, 0x42, 0x1a, 0x38, 0x78, 0x41, 0xa6, 0xc5, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x0a, 0xbf, 0xc1, 0xb3, 0x11, 0x49, 0x8e, 0x6f, 0x83, 0x60, 0x83, 0x97, 0xdb, 0x91, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x7e, 0xb0, 0x0e, 0x27, 0xe7, 0x38, 0xb4, 0x38, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x81, 0x53, 0xeb, 0xe0, 0x74, 0x86, 0x7c, 0x10, 0x25, 0x22, 0x33, 0xc3, 0x6e, 0x30, 0xea, 0x25, 0x37, 0xc4, 0x70, 0x10, 0x2c, 0x48, 0x06, 0xd6, 0xeb, 0x0e, 0x0e, 0x14, 0xc9, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x6f, 0x10, 0x02, 0xe0, 0x87, 0x7c, 0xed, 0x71, 0xe8, 0x78, 0x7c, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x07, 0xc1, 0x06, 0xef, 0x12, 0x89, 0x38, 0x74, 0xd0, 0x38, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0x2b, 0x08, 0x36, 0xc4, 0x70, 0x71, 0xd8, 0x0d, 0xa2, 0x92, 0xa1, 0xe8, 0xa0, 0x69, 0x15, 0xfc, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xbb, 0xb0, 0x1b, 0x3a, 0x8e, 0x6c, 0x10, 0x07, 0xab, 0x2e, 0x87, 0xa3, 0x7d, 0x41, 0xb0, 0x20, 0x58, 0x10, 0x6c, 0xd0, 0x4c, 0xa1, 0xc9, 0xc1, 0xf8, 0x30, 0x3a, 0x74, 0xd0, 0x38, 0x88, 0xdc, 0x72, 0xa2, 0x43, 0x0c, 0x8f, 0xc7, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xbb, 0xc1, 0x39, 0x24, 0x7d, 0x41, 0xb0, 0x41, 0x4c, 0xac, 0x13, 0x1d, 0x3a, 0x68, 0x1c, 0x62, 0x78, 0x3c, 0x1e, 0x04, 0x6b, 0x88, 0xe1, 0x20, 0x58, 0x3c, 0x58, 0xbd, 0xcc, 0x75, 0x3c, 0x5e, 0x1c, 0x04, 0x1b, 0x62, 0x78, 0xb0, 0xe0, 0x26, 0xe7, 0x78, 0xbc, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x6e, 0x30, 0x36, 0x39, 0x37, 0xc4, 0x70, 0x61, 0x37, 0xac, 0xef, 0x6d, 0x88, 0xe1, 0xa1, 0x75, 0xcf, 0x20, 0x58, 0x10, 0x6c, 0x10, 0xe1, 0xe4, 0x44, 0x07, 0x0d, 0x91, 0x09, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xec, 0x86, 0xf5, 0xbd, 0xc3, 0xd6, 0xc1, 0x71, 0xe8, 0x78, 0x7c, 0x3c, 0x5e, 0x10, 0x6c, 0x70, 0xf8, 0xb5, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xe1, 0x17, 0x7e, 0x83, 0xf6, 0x5e, 0x4b, 0x0e, 0x4e, 0x2b, 0xb8, 0x07, 0x0b, 0x3c, 0xbc, 0x86, 0xdf, 0x78, 0x7e, 0x10, 0x1b, 0x45, 0x2a, 0xc7, 0xa1, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xbb, 0x61, 0x7d, 0x6f, 0x43, 0x0c, 0x87, 0xdd, 0x90, 0xc7, 0xda, 0x70, 0xb4, 0x0f, 0x82, 0x0d, 0x92, 0xe3, 0x57, 0x0e, 0x1d, 0x34, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xec, 0x06, 0x63, 0x93, 0x73, 0x43, 0x0c, 0x07, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0x41, 0x53, 0x48, 0x03, 0x07, 0xe3, 0x59, 0xf5, 0xa0, 0x88, 0x3a, 0x59, 0xd8, 0x0d, 0x46, 0xbd, 0xe4, 0x86, 0x18, 0x0e, 0x82, 0x0d, 0xc6, 0x62, 0xe7, 0xc1, 0x88, 0xc2, 0x1d, 0x04, 0x0b, 0x82, 0x05, 0xc9, 0x40, 0xfa, 0xee, 0x20, 0xc8, 0xf9, 0x0f, 0x5a, 0xcf, 0x0f, 0x39, 0x18, 0x66, 0xe1, 0xc7, 0xe3, 0xe3, 0xf1, 0x20, 0xd8, 0xa0, 0x10, 0xa0, 0x59, 0x1c, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x24, 0x83, 0x73, 0x07, 0xa7, 0x33, 0xe4, 0x83, 0x38, 0x58, 0x28, 0x3a, 0x1e, 0x1f, 0x8f, 0x17, 0x04, 0x1b, 0x84, 0xb0, 0xfd, 0xe2, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x61, 0x37, 0x88, 0x7f, 0x90, 0xa2, 0x05, 0xc1, 0x82, 0x64, 0xa0, 0xfe, 0x1d, 0xb2, 0x15, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc1, 0x06, 0x4d, 0x21, 0x0d, 0x1c, 0xbc, 0x25, 0xd2, 0xe1, 0x60, 0x7c, 0x18, 0x1d, 0x87, 0x0e, 0x31, 0x3c, 0x1e, 0x1f, 0x8f, 0x17, 0x04, 0x1b, 0x84, 0xb0, 0xfd, 0xe2, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x61, 0x37, 0x88, 0x2e, 0x71, 0xa2, 0x05, 0xc1, 0x06, 0x11, 0x26, 0x6b, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x1c, 0x76, 0xc3, 0x0a, 0xea, 0x86, 0x18, 0x2e, 0x08, 0x36, 0x08, 0x4c, 0xec, 0x83, 0x55, 0x9c, 0xfc, 0x07, 0x4f, 0xb7, 0x72, 0x38, 0xbe, 0x1d, 0x87, 0x0e, 0x31, 0x3c, 0x1e, 0x1f, 0x8f, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xec, 0x06, 0xf1, 0x01, 0x4d, 0x74, 0x10, 0x1d, 0x24, 0x45, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xbb, 0x41, 0x7c, 0x40, 0x13, 0x2d, 0x08, 0x36, 0x68, 0x9c, 0x6f, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc2, 0x2f, 0xfc, 0x06, 0x11, 0x7d, 0xe0, 0x71, 0x70, 0x5a, 0xc1, 0x3d, 0x58, 0xdd, 0x0b, 0x73, 0xe8, 0xa0, 0x31, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x41, 0x6e, 0xb8, 0x38, 0x08, 0x36, 0x88, 0x07, 0x07, 0x9b, 0x43, 0xa3, 0x96, 0xe3, 0xf1, 0x71, 0xe8, 0x10, 0xc3, 0xe3, 0xf1, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x61, 0x17, 0x04, 0x0b, 0x82, 0x0d, 0x5a, 0x2a, 0x18, 0x18, 0x24, 0x03, 0xf5, 0xef, 0xd0, 0xbe, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xb8, 0xe1, 0x14, 0xcb, 0xc5, 0x61, 0x37, 0x8c, 0xcb, 0x86, 0x18, 0x0e, 0xbb, 0x41, 0xe9, 0x0b, 0x76, 0x48, 0xe7, 0x1e, 0x8f, 0x8f, 0x43, 0x1b, 0x62, 0x38, 0x08, 0x36, 0x88, 0x89, 0x75, 0xa2, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x96, 0x0a, 0x06, 0x06, 0xc9, 0x40, 0xf9, 0x3b, 0xb4, 0x6f, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0xfc, 0x20, 0x6a, 0xfa, 0x81, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0xf1, 0x78, 0x15, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0xb8, 0xc1, 0x90, 0xfa, 0x1d, 0x76, 0xc3, 0xfa, 0xde, 0x06, 0x69, 0x1b, 0xcf, 0x83, 0x60, 0x83, 0x78, 0x40, 0xab, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xf0, 0x6c, 0xd8, 0xa6, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xe2, 0xb0, 0x1b, 0x04, 0x1f, 0xf3, 0x86, 0x18, 0x2e, 0x08, 0x36, 0x38, 0xf1, 0x19, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x48, 0x16, 0x9f, 0x1e, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0xd1, 0x5a, 0xa8, 0x83, 0xe3, 0x7f, 0xf1, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xe2, 0x41, 0xb0, 0x41, 0xbb, 0xc5, 0x50, 0x07, 0xc7, 0xff, 0xe2, 0xe3, 0xf1, 0xf1, 0xed, 0x38, 0x74, 0x1c, 0x3a, 0x1e, 0xaf, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x0d, 0xd6, 0x68, 0x2b, 0x0c, 0x82, 0x0d, 0xa2, 0x93, 0xfd, 0xe6, 0xd0, 0xa8, 0xe5, 0x78, 0xbc, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x83, 0x35, 0x28, 0x40, 0x1b, 0x12, 0x9b, 0x87, 0xc4, 0xd4, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x1b, 0xac, 0xd1, 0x56, 0x18, 0x04, 0x1b, 0xc4, 0x03, 0x5a, 0xcd, 0xa1, 0x51, 0xcb, 0xf1, 0x78, 0x10, 0x6c, 0x90, 0xfa, 0x8f, 0xb1, 0x38, 0x08, 0x36, 0x38, 0x07, 0x7f, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x7e, 0xe1, 0x37, 0x88, 0xb6, 0x14, 0xa1, 0x83, 0xd3, 0x0a, 0xee, 0xc1, 0xb8, 0x83, 0x3a, 0x34, 0x6a, 0x39, 0x0e, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0x14, 0x7e, 0x7e, 0x8b, 0x1b, 0x9c, 0x23, 0x77, 0x07, 0xc1, 0x06, 0xed, 0x68, 0xb8, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x8c, 0xde, 0xc1, 0xf0, 0x8f, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x71, 0xc2, 0xa1, 0x43, 0xaa, 0xe6, 0x38, 0x74, 0xf0, 0x3a, 0x07, 0x87, 0xe3, 0xd0, 0xf1, 0x78, 0x41, 0xb0, 0x41, 0xea, 0x3f, 0xc6, 0xe2, 0x20, 0xd8, 0xe0, 0x1c, 0xfc, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0xf8, 0x0d, 0x22, 0xd8, 0xaa, 0xe8, 0x60, 0xf5, 0x26, 0xda, 0xa1, 0x51, 0xcb, 0x71, 0xe8, 0x78, 0xbc, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x0d, 0xd6, 0xa0, 0x00, 0x0d, 0x82, 0x05, 0xc1, 0x06, 0x4d, 0x02, 0x0c, 0x1c, 0x0c, 0xca, 0xab, 0x43, 0xa3, 0x96, 0xe3, 0xf1, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x0d, 0x86, 0xd4, 0xef, 0x20, 0x58, 0x90, 0x0c, 0x04, 0xe9, 0xe0, 0x24, 0x74, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x28, 0x16, 0x6d, 0x90, 0xe0, 0x44, 0xb3, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x6f, 0x0f, 0xbd, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x10, 0xb5, 0xd1, 0x39, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xc4, 0x0c, 0xc2, 0xcc, 0xc1, 0x43, 0xf2, 0x2f, 0x8e, 0x43, 0x1b, 0x24, 0x38, 0xd1, 0x1c, 0x0c, 0xfc, 0x90, 0xe3, 0xd0, 0xf1, 0x78, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0xd8, 0xa0, 0xa9, 0x6d, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x07, 0x67, 0xf4, 0x43, 0xa3, 0x96, 0xe3, 0xd0, 0xf1, 0xf8, 0x78, 0xbc, 0x20, 0xd8, 0xa0, 0x65, 0x06, 0xfc, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xab, 0x6b, 0xbb, 0x86, 0xdf, 0x78, 0xbe, 0x38, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0xed, 0xdd, 0xeb, 0x1f, 0xac, 0x3d, 0x7b, 0x19, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xfc, 0x06, 0x27, 0xde, 0xe7, 0x83, 0x94, 0x8f, 0x8b, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x88, 0x6a, 0xb6, 0xa2, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x40, 0xe2, 0x7f, 0xd7, 0xc1, 0x78, 0xd7, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x1e, 0x34, 0x09, 0xb6, 0x7f, 0x1c, 0x3a, 0x68, 0x8a, 0x65, 0xff, 0xa0, 0xf9, 0x69, 0xfd, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x1b, 0xb4, 0x62, 0xaf, 0x3f, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0xa1, 0x70, 0xfd, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x03, 0x3f, 0xe4, 0xa0, 0xcd, 0x64, 0xf7, 0xe3, 0xd0, 0x41, 0xf3, 0xd3, 0xfa, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x1a, 0x0a, 0xd7, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x36, 0x5c, 0x0f, 0x1a, 0x4f, 0xe0, 0x3f, 0x0e, 0x1d, 0x34, 0x3f, 0xad, 0x7f, 0xb0, 0x28, 0x9d, 0x64, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x3b, 0x45, 0x04, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x1c, 0x07, 0x2f, 0x07, 0x2f, 0x3a, 0xbe, 0x1d, 0x87, 0x0e, 0x9a, 0x62, 0xd9, 0x3f, 0x68, 0x7e, 0x5a, 0x7f, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0xe2, 0x47, 0xad, 0x68, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x68, 0x4c, 0xda, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xc1, 0x82, 0x64, 0x20, 0x58, 0x07, 0xc3, 0x3f, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x55, 0x33, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x38, 0x87, 0x43, 0x1f, 0xac, 0xee, 0x85, 0x39, 0x0e, 0x0d, 0xbb, 0xc1, 0xa8, 0x97, 0xdc, 0x10, 0xc3, 0x41, 0xb0, 0x41, 0x4c, 0xac, 0x13, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0x20, 0xd8, 0xe0, 0xb9, 0x03, 0x26, 0x07, 0xc3, 0x2c, 0xfc, 0x20, 0x04, 0xc0, 0x8f, 0x43, 0xc7, 0xe3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x62, 0xe0, 0xad, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x10, 0xfc, 0x5d, 0x07, 0xe3, 0x5d, 0xe7, 0x60, 0x21, 0xe6, 0xc8, 0x71, 0xe8, 0x38, 0x74, 0xd0, 0x8c, 0xd2, 0xfe, 0x41, 0xf3, 0xd3, 0xfa, 0x07, 0x8b, 0xd2, 0x49, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x3f, 0x88, 0x85, 0xb6, 0xa2, 0x83, 0x45, 0xe9, 0x24, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xd0, 0x8a, 0xbd, 0xfe, 0x41, 0x8c, 0xcf, 0x15, 0x1d, 0x2c, 0x4a, 0x27, 0x19, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0xde, 0xbd, 0xfe, 0xc1, 0x6a, 0xf3, 0x97, 0x83, 0x45, 0xe9, 0x24, 0xc7, 0xe3, 0xe3, 0xd0, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x41, 0x9b, 0x0a, 0x50, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0x62, 0xd1, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x83, 0x48, 0x1a, 0x2d, 0x39, 0x18, 0x8e, 0xd2, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xce, 0x35, 0xc5, 0x87, 0x54, 0xcd, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x5e, 0xf8, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xbb, 0x61, 0x7d, 0x6f, 0x43, 0x0c, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x55, 0x5f, 0x10, 0x07, 0x29, 0x7e, 0x0e, 0x83, 0x60, 0x41, 0xb0, 0xc1, 0x4a, 0x4d, 0xaf, 0x41, 0xb4, 0xa0, 0xf5, 0x70, 0xb4, 0x0f, 0xa2, 0x05, 0xdb, 0xc3, 0x5e, 0xe1, 0x20, 0x5a, 0x10, 0x1e, 0xfa, 0x93, 0x1f, 0x87, 0x06, 0xc1, 0x06, 0xe7, 0xef, 0xf2, 0x41, 0xb0, 0x86, 0x18, 0x0e, 0xbf, 0x20, 0x19, 0x50, 0xfa, 0xf7, 0x1d, 0x9c, 0xbd, 0x8c, 0x8f, 0x6f, 0x83, 0x60, 0x71, 0x10, 0x2c, 0x08, 0x16, 0x87, 0x5d, 0xd8, 0x85, 0x3b, 0x88, 0xd7, 0x53, 0x9a, 0x0d, 0x31, 0x1c, 0x76, 0xe1, 0x36, 0x38, 0xf2, 0x14, 0x0f, 0xbf, 0x20, 0x5a, 0x50, 0x7a, 0xc8, 0xda, 0x1d, 0x04, 0x26, 0xf6, 0xf1, 0xed, 0x90, 0xce, 0x3d, 0x28, 0xe5, 0xdd, 0x8e, 0x6f, 0xc3, 0x2f, 0x88, 0x16, 0xac, 0x17, 0x7e, 0x41, 0xb4, 0x60, 0xba, 0x21, 0x6b, 0x37, 0x08, 0x36, 0xec, 0x15, 0x1e, 0xc4, 0xa1, 0xcb, 0xcd, 0x41, 0x60, 0x62, 0x1f, 0xdf, 0x0e, 0xf9, 0xda, 0xe3, 0xf1, 0xb0, 0x0b, 0x77, 0xf0, 0x74, 0x5f, 0x9c, 0x05, 0xc1, 0x06, 0x2f, 0x51, 0x05, 0x38, 0xec, 0xf1, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x41, 0x78, 0x30, 0xca, 0x4f, 0x8e, 0xe7, 0xc7, 0xb7, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0x1c, 0xf0, 0xd9, 0xca, 0xca, 0xe4, 0x83, 0x88, 0x31, 0x9a, 0x39, 0x1e, 0xaf, 0xb8, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x41, 0x3b, 0x1a, 0x2e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xa9, 0x9a, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x1e, 0xa8, 0xbd, 0xb0, 0x38, 0x08, 0x36, 0x68, 0xef, 0x71, 0xe5, 0xd0, 0x41, 0xe3, 0x78, 0x7c, 0x1c, 0x3a, 0x1e, 0xaf, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0xf0, 0x0b, 0x92, 0x01, 0xe3, 0xbf, 0xef, 0x20, 0xc8, 0xf9, 0x8f, 0x6f, 0x83, 0x60, 0x41, 0xb2, 0xc1, 0x3a, 0x62, 0x9d, 0x83, 0x63, 0x56, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0xc5, 0x41, 0xb0, 0xc1, 0x63, 0xe5, 0xa7, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x24, 0x23, 0x7d, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x08, 0x4c, 0xec, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x76, 0x43, 0xd7, 0xcc, 0xd5, 0xb0, 0x57, 0x38, 0x08, 0x16, 0x24, 0x03, 0xeb, 0x3b, 0x07, 0x67, 0x2f, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x8b, 0x84, 0x25, 0x0e, 0x8d, 0x5a, 0x8e, 0x43, 0x87, 0x18, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x83, 0x07, 0x4d, 0x4c, 0x0c, 0xa2, 0x85, 0x1d, 0x04, 0x1b, 0x3c, 0xbc, 0xb2, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x6b, 0x77, 0x10, 0x98, 0xd8, 0xc7, 0xa1, 0x43, 0x72, 0xe9, 0x78, 0x7c, 0x1c, 0x3a, 0x0e, 0x1d, 0xdf, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x37, 0x28, 0x7d, 0x23, 0x5a, 0x1c, 0x76, 0xc3, 0xae, 0xc1, 0x86, 0x16, 0x92, 0xc3, 0x2e, 0xdc, 0x06, 0xe3, 0xa7, 0xeb, 0x60, 0x78, 0x51, 0xac, 0x06, 0xe3, 0xa7, 0x6b, 0x10, 0x6c, 0xd0, 0x72, 0x0e, 0xfe, 0xc1, 0x40, 0x5f, 0x3b, 0x08, 0x4a, 0xef, 0x43, 0x62, 0xf3, 0x78, 0x7c, 0x1c, 0x3a, 0x1e, 0xaf, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x76, 0x43, 0x1e, 0x6b, 0xc3, 0xb8, 0x0c, 0xbb, 0x61, 0xd7, 0x60, 0x43, 0x0c, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x88, 0x89, 0xb6, 0x39, 0x58, 0x37, 0xc6, 0x34, 0xec, 0xc2, 0x6d, 0x1c, 0x3a, 0x64, 0xed, 0x36, 0x74, 0x0c, 0x1b, 0x76, 0x41, 0xb0, 0x41, 0xdc, 0x22, 0xdd, 0x1c, 0xc4, 0xa1, 0xcb, 0xcd, 0x6a, 0x30, 0x88, 0x56, 0x06, 0xc1, 0x06, 0x31, 0xd2, 0x36, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x10, 0xff, 0x83, 0x62, 0x0f, 0xe2, 0x38, 0x74, 0xe8, 0x18, 0x36, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0x10, 0x6c, 0x70, 0xfe, 0x2e, 0x3f, 0x78, 0x47, 0x56, 0xce, 0xa1, 0x63, 0xd8, 0xf1, 0xfc, 0x78, 0x3c, 0x08, 0x36, 0x58, 0x16, 0x06, 0xb3, 0x38, 0x08, 0x36, 0x58, 0xd3, 0x0e, 0x31, 0x08, 0x36, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x91, 0x85, 0x5f, 0x73, 0x50, 0xba, 0x77, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc1, 0x06, 0x6f, 0x31, 0x4a, 0x38, 0xa4, 0xe1, 0x86, 0x5d, 0x10, 0x6c, 0x10, 0x0f, 0xbb, 0x32, 0x07, 0xf1, 0x92, 0x74, 0xb3, 0x21, 0x86, 0x6b, 0x30, 0xf2, 0x1f, 0x06, 0xc1, 0x06, 0x0f, 0xe0, 0x12, 0x1b, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0xf9, 0xbb, 0xfc, 0x20, 0x5e, 0x92, 0x6e, 0x0e, 0x8d, 0x8e, 0x8e, 0x43, 0x87, 0x18, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x68, 0x3a, 0x34, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x8e, 0x8a, 0xff, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x48, 0xa3, 0x5d, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xe8, 0x21, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x5b, 0x8c, 0x12, 0x0e, 0x9d, 0x88, 0x8e, 0x43, 0x87, 0xac, 0xdd, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x43, 0x62, 0x6a, 0x10, 0x2c, 0x0e, 0xbb, 0xc1, 0x20, 0xe0, 0xd8, 0x10, 0xc3, 0xe1, 0x17, 0x44, 0x0b, 0xc2, 0x41, 0xb0, 0x41, 0x63, 0x89, 0x50, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x59, 0xbb, 0x83, 0x90, 0xcf, 0x3e, 0x0e, 0x1d, 0x8f, 0x87, 0x5d, 0x10, 0x6c, 0xd0, 0x9e, 0xf4, 0xfd, 0x41, 0x5c, 0x8f, 0xcc, 0xac, 0x21, 0x86, 0x07, 0x07, 0x04, 0xf0, 0x41, 0x32, 0x64, 0x10, 0x6d, 0x50, 0x1e, 0xc4, 0x1d, 0x44, 0x3d, 0xa3, 0xcd, 0xf1, 0xed, 0x78, 0xbc, 0x82, 0x60, 0x83, 0xa8, 0x11, 0xf0, 0x59, 0x5c, 0xd8, 0x0d, 0x8a, 0x8b, 0xc3, 0x0d, 0x8d, 0x04, 0x87, 0xdd, 0xe0, 0xe9, 0x5f, 0x14, 0x1b, 0x62, 0x38, 0x08, 0x16, 0x04, 0x1b, 0x2c, 0xa8, 0xdd, 0x3f, 0x68, 0xc1, 0x4e, 0xe0, 0xa0, 0xdd, 0x8c, 0x80, 0x05, 0xc1, 0x06, 0x4d, 0x3d, 0x0a, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x48, 0x5d, 0x1f, 0x38, 0x34, 0x2e, 0x3a, 0x0e, 0x0d, 0x82, 0x0d, 0x9a, 0x7a, 0x14, 0x38, 0x38, 0x93, 0xa2, 0x1f, 0x8f, 0x07, 0xc1, 0x06, 0x05, 0xb5, 0xd8, 0xe2, 0x20, 0xd8, 0x20, 0xb2, 0xf0, 0x6b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x8c, 0x0b, 0xb3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x8e, 0x8a, 0xff, 0x07, 0x25, 0xcf, 0xd8, 0x71, 0xe8, 0x78, 0xbc, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0xd9, 0x60, 0xed, 0x3a, 0xc5, 0xc1, 0x49, 0xe8, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x0f, 0xde, 0x53, 0xa9, 0x33, 0xfc, 0xc6, 0xf3, 0x83, 0x34, 0xda, 0x85, 0xe3, 0xd0, 0xf1, 0x78, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0xbb, 0x21, 0x8f, 0xb5, 0x21, 0x86, 0xc3, 0x6e, 0xd8, 0x35, 0xd8, 0x10, 0xc3, 0x41, 0xb0, 0x41, 0x8c, 0xa8, 0x16, 0x0d, 0xbb, 0x41, 0x44, 0xae, 0x16, 0xad, 0x06, 0x83, 0x68, 0x65, 0x10, 0x6c, 0x10, 0x0f, 0x71, 0x33, 0x07, 0xb1, 0xce, 0x5a, 0x74, 0x88, 0xe1, 0x86, 0x1e, 0x42, 0x07, 0xb1, 0xdf, 0x5a, 0x74, 0x3c, 0x1e, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xec, 0x86, 0xf5, 0xbd, 0x0d, 0x31, 0x1c, 0x76, 0xc3, 0xae, 0xc1, 0x86, 0xd4, 0xc1, 0xb0, 0x1b, 0xc4, 0xa6, 0x69, 0xd1, 0xc2, 0x2f, 0x88, 0x16, 0xb4, 0x0e, 0x82, 0x0d, 0xd6, 0xb4, 0x43, 0x1c, 0x0c, 0xf4, 0xb5, 0xe3, 0xf1, 0x41, 0xa1, 0x72, 0x76, 0x50, 0x80, 0x9c, 0x1d, 0x8f, 0x8f, 0xc7, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x76, 0xc3, 0xfa, 0xde, 0x86, 0x18, 0x0e, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x0e, 0x82, 0x35, 0x64, 0xed, 0x36, 0x38, 0xf2, 0x14, 0x0f, 0x82, 0x35, 0x28, 0x51, 0xd0, 0x0e, 0x31, 0x3c, 0x58, 0xcd, 0x00, 0x74, 0xb0, 0x9a, 0x01, 0xe8, 0xf8, 0x76, 0x3c, 0x1e, 0x04, 0x8b, 0x1b, 0xda, 0xce, 0x1c, 0x44, 0x1d, 0x33, 0xd1, 0xe2, 0x82, 0x60, 0x83, 0xe5, 0xa6, 0x24, 0x8b, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x87, 0xdd, 0x20, 0x3e, 0xa0, 0x89, 0x16, 0x04, 0x0b, 0x92, 0x81, 0x5b, 0xeb, 0xe0, 0x98, 0x55, 0x7c, 0xd0, 0x06, 0x6e, 0xca, 0xe1, 0x14, 0x3b, 0x1e, 0x1f, 0x8f, 0x57, 0x10, 0x6c, 0x10, 0xc2, 0xf6, 0x8b, 0x83, 0x60, 0x83, 0x77, 0x89, 0x44, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0xb5, 0xee, 0x90, 0x5c, 0x3a, 0x34, 0x6a, 0x39, 0x0e, 0x1d, 0x8f, 0x57, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x61, 0x37, 0x88, 0x2e, 0x71, 0xa2, 0x0d, 0xa2, 0x94, 0x9c, 0xe8, 0x70, 0x8a, 0x1d, 0x8f, 0x8f, 0xc7, 0x2b, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0xb0, 0x1b, 0xc4, 0x3f, 0x48, 0xd1, 0x82, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x38, 0xee, 0x0e, 0xd9, 0x8a, 0x83, 0xf1, 0x61, 0x74, 0xe8, 0xa0, 0x71, 0x38, 0xc5, 0x8e, 0xc7, 0xc7, 0xe3, 0x0d, 0x22, 0x22, 0x9d, 0x68, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x76, 0x83, 0xf8, 0x80, 0x26, 0x5a, 0x10, 0x2c, 0x48, 0x06, 0xee, 0xbb, 0x83, 0x63, 0x56, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xc0, 0xc4, 0x3e, 0xe4, 0x6b, 0x8f, 0x43, 0x87, 0x53, 0xec, 0x78, 0x7c, 0x3c, 0x1e, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xec, 0x06, 0xe7, 0x90, 0xf4, 0x05, 0xc1, 0x06, 0xd1, 0x3e, 0x36, 0x72, 0x10, 0xe5, 0xee, 0x44, 0x87, 0x53, 0xec, 0x78, 0x3c, 0x08, 0x36, 0xc4, 0x70, 0x71, 0xd8, 0x0d, 0xce, 0x21, 0xe9, 0x0b, 0x82, 0x0d, 0xa2, 0x7d, 0x6c, 0xe4, 0x20, 0x1e, 0xea, 0x89, 0x0e, 0xa7, 0xd8, 0xf1, 0x78, 0x41, 0xb0, 0x41, 0x08, 0xdb, 0x2f, 0x0e, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x76, 0xc3, 0xfa, 0xde, 0x86, 0x18, 0x0e, 0x82, 0x0d, 0x22, 0x4d, 0x01, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x7b, 0x10, 0xa3, 0x08, 0x45, 0xc7, 0xa1, 0xe3, 0xf1, 0xf1, 0x78, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x1e, 0xfa, 0x53, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0x8c, 0xb2, 0xb2, 0xc5, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x6e, 0x58, 0xdf, 0xdb, 0x10, 0xff, 0x43, 0x4b, 0xb7, 0xe3, 0xf1, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x87, 0xdd, 0x20, 0x2e, 0xf2, 0x89, 0x16, 0x04, 0x8b, 0xc3, 0x2e, 0xec, 0x06, 0xed, 0x03, 0x8a, 0x2c, 0xec, 0x06, 0x6d, 0x88, 0xd0, 0x6c, 0xf0, 0xf0, 0x58, 0x82, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x17, 0x7e, 0x41, 0xb4, 0xa0, 0x7e, 0x10, 0x6c, 0x10, 0x98, 0xd8, 0x0b, 0x82, 0x0d, 0x42, 0x0a, 0xfc, 0x60, 0xa4, 0x69, 0x1d, 0x84, 0x00, 0xf8, 0xf1, 0x78, 0xd8, 0x0d, 0xe2, 0xb1, 0x9f, 0x68, 0x0d, 0x4a, 0x18, 0x89, 0x41, 0xb6, 0x86, 0x3c, 0xf6, 0xe2, 0x20, 0xd8, 0xe0, 0xc1, 0xec, 0x33, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x1e, 0xf3, 0x3e, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xe2, 0x86, 0x89, 0x5b, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x1c, 0x14, 0xad, 0x27, 0x07, 0x4f, 0x41, 0x71, 0x18, 0x7e, 0xe3, 0xf9, 0xe2, 0x41, 0xd1, 0x7a, 0x72, 0x50, 0xc2, 0x48, 0x1c, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0xb0, 0xc1, 0x58, 0xec, 0x3c, 0x68, 0x9d, 0x5a, 0x65, 0xd8, 0x0d, 0xc6, 0x21, 0xd3, 0x82, 0x6c, 0x0d, 0x79, 0xec, 0xc5, 0x41, 0xb0, 0xc1, 0x83, 0xd9, 0x67, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x3c, 0xe6, 0x7d, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0xc5, 0x0d, 0x13, 0xb7, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x09, 0x78, 0xc5, 0xc2, 0xc8, 0x5a, 0xd6, 0xca, 0xf2, 0x83, 0xa7, 0xa0, 0x38, 0x0c, 0xbf, 0xf1, 0x7c, 0xf1, 0x20, 0x32, 0xef, 0x8b, 0x0e, 0x06, 0xd1, 0xca, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x3e, 0x9c, 0x62, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x58, 0xbb, 0x3a, 0x08, 0x72, 0xfe, 0x83, 0xd6, 0xf3, 0x43, 0x0e, 0x86, 0x59, 0xf8, 0xe1, 0x14, 0x3b, 0xbe, 0x1d, 0x4e, 0xb1, 0xe3, 0xf1, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x6e, 0x58, 0xdf, 0xdb, 0x70, 0x8a, 0x0d, 0xbb, 0x61, 0xd7, 0x60, 0x83, 0xa1, 0xd9, 0xb5, 0xc1, 0xd0, 0xec, 0x1a, 0x04, 0x0b, 0x92, 0x81, 0x76, 0x57, 0x87, 0xe4, 0xd2, 0xa1, 0x83, 0xc6, 0xf1, 0x78, 0x10, 0x6c, 0x30, 0xca, 0xca, 0x16, 0x07, 0xc1, 0x06, 0x8d, 0x43, 0xa8, 0x1c, 0xc4, 0x10, 0x41, 0xd1, 0xf1, 0x78, 0x10, 0x6c, 0x50, 0x08, 0xd0, 0x2c, 0x0e, 0x82, 0x0d, 0x31, 0x3c, 0x28, 0x66, 0x6d, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x76, 0x83, 0xf8, 0x80, 0x26, 0x5a, 0x10, 0x6c, 0x10, 0xed, 0x63, 0x23, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xf9, 0xda, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x81, 0xe6, 0x54, 0x07, 0xc3, 0x51, 0xfa, 0x38, 0x74, 0x38, 0xc5, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x76, 0x83, 0xa8, 0x64, 0x28, 0xda, 0xe0, 0x60, 0xa0, 0x7b, 0x38, 0xc5, 0x8e, 0xc7, 0x83, 0x60, 0x83, 0x92, 0xa1, 0x69, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0xb0, 0x7b, 0x77, 0x30, 0x0c, 0x7d, 0x8e, 0x43, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x76, 0x83, 0xf8, 0x80, 0x26, 0xda, 0x20, 0x62, 0x1f, 0x8a, 0x0e, 0xa7, 0xd8, 0xf1, 0x78, 0x05, 0xc1, 0x06, 0xb1, 0x0c, 0x51, 0xb4, 0x38, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0x08, 0x16, 0x04, 0x1b, 0x1c, 0x17, 0xce, 0x0f, 0x1a, 0x22, 0x13, 0x38, 0x34, 0x6a, 0x19, 0x04, 0x0b, 0x92, 0x81, 0xf1, 0x3b, 0x38, 0xe7, 0x1d, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x48, 0xd8, 0x4a, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x6b, 0x6f, 0x48, 0x06, 0xc9, 0x40, 0xb8, 0x0e, 0xc6, 0x60, 0xe4, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0xf0, 0x1b, 0x44, 0x00, 0x5e, 0xcd, 0x82, 0x60, 0x41, 0x32, 0x70, 0x6b, 0x1d, 0x9c, 0xf3, 0x8e, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xb2, 0x76, 0x07, 0x25, 0x41, 0xc3, 0x71, 0xe8, 0x30, 0x2e, 0xc7, 0xe3, 0xe3, 0xd0, 0x71, 0xe8, 0x78, 0x7c, 0x3c, 0x5e, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x6e, 0x10, 0x95, 0x0c, 0x45, 0x07, 0xc5, 0x0b, 0xc3, 0xf1, 0x78, 0x05, 0xc1, 0x06, 0x21, 0x6c, 0xbf, 0x38, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x6c, 0xd8, 0x2b, 0x1c, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xf0, 0x72, 0x3b, 0x92, 0x43, 0xa3, 0x96, 0xe3, 0xd0, 0xf1, 0xf8, 0x78, 0xbc, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x6e, 0x10, 0xff, 0x20, 0x45, 0x1b, 0xc4, 0x77, 0x48, 0xd1, 0xe1, 0x14, 0x3b, 0x1e, 0x1f, 0x8f, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xec, 0x06, 0xe7, 0x90, 0xf4, 0x83, 0xe2, 0x85, 0xe1, 0x78, 0x3c, 0x08, 0x36, 0xc4, 0x70, 0x71, 0xd8, 0x0d, 0xce, 0x21, 0xe9, 0x0b, 0x82, 0x0d, 0xa2, 0x7d, 0x6c, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x5f, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x43, 0xfc, 0xf9, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0x06, 0x27, 0x9d, 0xe3, 0x83, 0x73, 0x46, 0xfd, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x41, 0x4c, 0xd7, 0x13, 0x0d, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0xad, 0x8d, 0xe2, 0x1f, 0xa4, 0x28, 0x3f, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0xc0, 0x46, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xd8, 0x70, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x28, 0x7f, 0xbb, 0x0e, 0x86, 0xa3, 0xf4, 0xc1, 0x5a, 0xd3, 0x93, 0xe3, 0xd0, 0x41, 0x0b, 0x5d, 0xfa, 0x07, 0xad, 0x66, 0xe8, 0x1f, 0x87, 0x8e, 0x43, 0x87, 0x53, 0xec, 0x78, 0x3c, 0x08, 0x36, 0x08, 0x61, 0xfb, 0xc5, 0x41, 0xb0, 0x41, 0xe3, 0x10, 0x2a, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0x74, 0x39, 0xe4, 0x60, 0x68, 0x52, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0x94, 0xc1, 0xfb, 0xa1, 0x51, 0xcb, 0x71, 0xe8, 0x78, 0xbc, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x6e, 0x58, 0xdf, 0xdb, 0x70, 0x8a, 0x0d, 0xbb, 0xc1, 0x1a, 0xf0, 0xff, 0x85, 0x5f, 0x10, 0x2d, 0x98, 0x0f, 0x82, 0x0d, 0x7b, 0x85, 0x07, 0x23, 0x4d, 0xeb, 0x78, 0x3c, 0xec, 0x06, 0x83, 0x80, 0x63, 0x61, 0x37, 0x18, 0xb1, 0x58, 0x1b, 0x5a, 0xf7, 0x1c, 0x4e, 0xb1, 0x0d, 0xad, 0x7b, 0x06, 0xc1, 0x06, 0xd1, 0x85, 0x52, 0x74, 0xe8, 0xa0, 0x71, 0x38, 0xc5, 0x8e, 0xc7, 0xc7, 0xe3, 0x15, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x36, 0xc4, 0x70, 0x71, 0xd8, 0x85, 0xdd, 0x60, 0x0d, 0xf8, 0xff, 0xc2, 0x6e, 0xf0, 0x20, 0x5f, 0x81, 0x0d, 0x96, 0x97, 0xee, 0x1c, 0x8e, 0xf6, 0xc3, 0xd1, 0xbe, 0xf0, 0x0b, 0xa2, 0x05, 0xf3, 0x41, 0xb0, 0x61, 0xaf, 0xf0, 0x20, 0x26, 0xdb, 0x8b, 0x8e, 0xc7, 0x83, 0x60, 0x41, 0xb6, 0x86, 0x3c, 0xf6, 0xe2, 0x20, 0xd8, 0xe0, 0x81, 0xb4, 0x00, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x1a, 0x24, 0x1b, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x83, 0x98, 0x8b, 0x2f, 0x1a, 0x7e, 0xe3, 0xf9, 0x06, 0x31, 0x2d, 0x5f, 0x74, 0x30, 0x26, 0xac, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0xd8, 0x60, 0x64, 0x59, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x7e, 0x10, 0x13, 0x30, 0x45, 0xc7, 0xa1, 0x61, 0x37, 0x18, 0x87, 0x4c, 0x1b, 0x87, 0x36, 0x0e, 0x0d, 0x82, 0x05, 0xc1, 0x06, 0x6d, 0xc0, 0x00, 0x1c, 0xb4, 0x9e, 0x1f, 0x72, 0x30, 0xcc, 0xc2, 0x0f, 0xa7, 0xd8, 0xf1, 0xf8, 0x78, 0xbc, 0x20, 0xd8, 0x60, 0x59, 0x0b, 0xdb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0x41, 0xe4, 0xad, 0x14, 0x1d, 0x94, 0x0c, 0x4d, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0x77, 0xd5, 0xf1, 0xf8, 0x38, 0x34, 0x08, 0x36, 0x58, 0xd6, 0xc2, 0x36, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0x56, 0x56, 0x8a, 0x0e, 0x62, 0x56, 0xc6, 0xe8, 0x38, 0xb4, 0x41, 0xd4, 0xb3, 0x14, 0x2d, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0xb0, 0x1b, 0x44, 0xe9, 0x89, 0xd1, 0xc2, 0x6f, 0x10, 0x17, 0x29, 0x46, 0x83, 0x60, 0x41, 0xb6, 0x41, 0xfc, 0xa8, 0x18, 0x0d, 0x82, 0x0d, 0x46, 0x96, 0xd5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0xb0, 0x41, 0x53, 0x48, 0x03, 0x07, 0xed, 0xe0, 0x0a, 0x1c, 0x14, 0x51, 0x27, 0xc7, 0xa1, 0x61, 0x37, 0x18, 0x87, 0x4c, 0x1b, 0x87, 0x36, 0x0e, 0x1d, 0x44, 0x86, 0x4c, 0xd1, 0xe1, 0x14, 0x3b, 0x1e, 0x1f, 0x8f, 0x07, 0xc1, 0x06, 0x85, 0x00, 0xcd, 0xe2, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0xc1, 0xcb, 0xed, 0x48, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x3f, 0x28, 0x6e, 0x6d, 0x8e, 0x43, 0xc7, 0xe3, 0xe3, 0xf1, 0x82, 0x60, 0x83, 0x10, 0xb6, 0x5f, 0x1c, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xec, 0x06, 0xf1, 0x0f, 0x52, 0xb4, 0x41, 0x9c, 0xde, 0x14, 0x1d, 0x4e, 0xb1, 0xe3, 0xf1, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x6e, 0xb0, 0x2a, 0xea, 0x63, 0x41, 0xb0, 0x41, 0xb4, 0x8f, 0x8d, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xe4, 0x6b, 0x87, 0xdf, 0x78, 0x3e, 0xfc, 0x06, 0x67, 0x15, 0xe3, 0x83, 0xe3, 0x5e, 0xef, 0x71, 0xe8, 0x70, 0x8a, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0x84, 0xb0, 0xfd, 0xe2, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x61, 0x37, 0x88, 0x2e, 0x71, 0xa2, 0x05, 0xc1, 0x06, 0x11, 0x67, 0x6b, 0x73, 0xd0, 0x06, 0x6e, 0xca, 0xe1, 0x14, 0x3b, 0x1e, 0x1f, 0x8f, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xec, 0x06, 0xf1, 0x01, 0x4d, 0x74, 0x50, 0xbc, 0x30, 0x1c, 0x8f, 0x0f, 0xe2, 0x63, 0xa8, 0xe8, 0x78, 0x7c, 0x3c, 0x5e, 0x71, 0x10, 0x6c, 0x30, 0xf2, 0x1f, 0x16, 0x37, 0x58, 0x6a, 0x53, 0xb0, 0xc1, 0x63, 0x81, 0x82, 0x36, 0x44, 0x73, 0x0d, 0x31, 0x5c, 0x10, 0x2c, 0x48, 0x06, 0xca, 0xdd, 0xc1, 0x70, 0x94, 0x3e, 0x34, 0x05, 0x1a, 0x04, 0x0b, 0x82, 0x0d, 0x5a, 0x5c, 0x89, 0x1a, 0x24, 0x03, 0xe5, 0xef, 0xd0, 0x18, 0x6c, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x90, 0xfc, 0xda, 0x77, 0x30, 0x1c, 0xa5, 0x0f, 0x52, 0x94, 0x9f, 0x8f, 0x43, 0x87, 0xc4, 0xd4, 0xf1, 0xf8, 0x78, 0xbc, 0xe2, 0x82, 0x60, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xbb, 0x61, 0x7d, 0x6f, 0x83, 0x75, 0x02, 0x58, 0x83, 0x60, 0x85, 0x5f, 0x10, 0x2c, 0xfc, 0x06, 0xab, 0x97, 0xb9, 0x0e, 0xa9, 0x9a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xd1, 0xe2, 0x41, 0xf1, 0x1a, 0x79, 0x88, 0xe6, 0x71, 0xe8, 0x90, 0x3a, 0x18, 0x7e, 0x41, 0xb0, 0xf1, 0xf8, 0xd0, 0x41, 0xe3, 0x90, 0x3a, 0x58, 0x1c, 0x04, 0x2b, 0x08, 0x16, 0x7e, 0x43, 0x72, 0xe9, 0x20, 0x3a, 0x97, 0x8c, 0x0e, 0x69, 0xb8, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x07, 0x11, 0xdc, 0x64, 0x74, 0xe8, 0xa0, 0x71, 0x68, 0xfe, 0x72, 0x3c, 0x3e, 0x1e, 0x0f, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb0, 0x20, 0xd8, 0x20, 0x76, 0x97, 0x8c, 0x0e, 0x69, 0xb8, 0x61, 0x37, 0xac, 0xa0, 0x6e, 0x1c, 0x1a, 0x04, 0x6b, 0x10, 0x64, 0xf1, 0xc3, 0x2f, 0x08, 0x36, 0x9e, 0x1f, 0x34, 0xd5, 0xd5, 0x72, 0x48, 0x1d, 0x2c, 0x0e, 0x82, 0x15, 0x04, 0x1b, 0x52, 0x35, 0x87, 0x34, 0xdc, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x83, 0x58, 0x94, 0x32, 0x3a, 0x74, 0xd0, 0x38, 0x34, 0x7f, 0x39, 0x1e, 0x1f, 0x8f, 0x07, 0xc1, 0x06, 0x05, 0xb5, 0xd8, 0xe2, 0xf0, 0x0b, 0xa2, 0x05, 0xe9, 0x61, 0x5c, 0x8e, 0xc7, 0xc3, 0x6e, 0x50, 0xfa, 0x82, 0xad, 0x20, 0xd8, 0x20, 0x66, 0x10, 0x66, 0x0e, 0x4a, 0x9e, 0xb1, 0x43, 0x0c, 0x17, 0x04, 0x1b, 0xc4, 0x0c, 0xc2, 0xcc, 0xc1, 0x51, 0xc5, 0x79, 0x10, 0x6c, 0x3c, 0x3e, 0x38, 0xc9, 0x2f, 0x1f, 0x8f, 0x07, 0xc1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x85, 0x5d, 0xb8, 0x0d, 0x96, 0xda, 0x14, 0x1c, 0xf6, 0x0a, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x04, 0x1b, 0xc4, 0x2b, 0xc7, 0xcc, 0xc1, 0x7b, 0x55, 0x79, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc3, 0x2e, 0xdc, 0x06, 0x05, 0xc3, 0xe3, 0x61, 0xaf, 0x70, 0x41, 0xb0, 0x41, 0xea, 0x3f, 0xc6, 0xe2, 0x20, 0x58, 0x10, 0x6c, 0x10, 0xaf, 0x1c, 0x33, 0x07, 0xef, 0x4c, 0xbf, 0x38, 0x34, 0x7f, 0x39, 0x1e, 0x0f, 0xbb, 0x70, 0x1b, 0x94, 0x7f, 0x8f, 0x87, 0xbd, 0xc2, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xc1, 0x06, 0xf1, 0xca, 0x31, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0xe5, 0xdf, 0xe3, 0x21, 0x55, 0x73, 0x1c, 0x3a, 0x34, 0x7f, 0x39, 0x1e, 0x0f, 0xbb, 0x70, 0x1b, 0x8c, 0xdb, 0xdd, 0xc3, 0x5e, 0xe1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x78, 0xe5, 0x98, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xb0, 0xd8, 0x20, 0xe5, 0x90, 0xaa, 0x39, 0x0e, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x87, 0x5d, 0xb8, 0x0d, 0xca, 0x2c, 0xc8, 0xc3, 0x5e, 0xe1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x78, 0xe5, 0x98, 0x39, 0x78, 0xcc, 0xc4, 0xd6, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0xd8, 0x85, 0xdb, 0xa0, 0x68, 0x86, 0x3c, 0xec, 0x15, 0x2e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0x08, 0x36, 0x88, 0x57, 0x8e, 0x99, 0x83, 0x27, 0xc9, 0x8e, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x87, 0x5d, 0xb8, 0x0d, 0x4a, 0x11, 0xc9, 0xc3, 0x5e, 0xe1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x78, 0xe5, 0x98, 0x39, 0x78, 0x48, 0xfe, 0xc5, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0xd8, 0x85, 0xdb, 0xe0, 0xa4, 0xb7, 0x7b, 0xd8, 0x2b, 0x5c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x10, 0x6c, 0x10, 0xaf, 0x1c, 0x33, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xde, 0x30, 0x8f, 0x74, 0x48, 0xd5, 0x1c, 0x87, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc3, 0x2e, 0xdc, 0x06, 0x25, 0x4c, 0xe2, 0x61, 0xaf, 0x70, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0x41, 0xbc, 0x72, 0xcc, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x58, 0x37, 0x34, 0x73, 0x48, 0xd5, 0x1c, 0x87, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc3, 0x2e, 0xdc, 0x06, 0x45, 0x2f, 0xe2, 0x61, 0xaf, 0x70, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0x41, 0xbc, 0x72, 0xcc, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x58, 0xcd, 0x36, 0x73, 0x48, 0xd5, 0x1c, 0x87, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc3, 0x2e, 0xdc, 0x06, 0x65, 0x85, 0xe2, 0x61, 0xaf, 0x70, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0x41, 0xbc, 0x72, 0xcc, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x58, 0x26, 0x32, 0x73, 0x48, 0xd5, 0x1c, 0x87, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0xc3, 0x2e, 0xdc, 0x06, 0x45, 0xa2, 0xe2, 0x61, 0xaf, 0x70, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0x41, 0xbc, 0x72, 0xcc, 0x1c, 0x44, 0x45, 0xa2, 0xc9, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0xd8, 0x85, 0xdb, 0xa0, 0xe4, 0x57, 0x3c, 0xec, 0x15, 0x2e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0x08, 0x36, 0x88, 0x57, 0x8e, 0x99, 0x83, 0x87, 0xf2, 0x5b, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x87, 0x5d, 0xb8, 0x0d, 0x0a, 0xb8, 0xc5, 0xc3, 0x5e, 0xe1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x78, 0xe5, 0x98, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xb0, 0xf0, 0x54, 0xe6, 0x90, 0xaa, 0x39, 0x0e, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x87, 0x5d, 0xb8, 0x0d, 0xd6, 0x68, 0x2b, 0x1c, 0xf6, 0x0a, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x04, 0x1b, 0xc4, 0x2b, 0xc7, 0xcc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x85, 0xdd, 0x34, 0x87, 0x54, 0xcd, 0x71, 0xe8, 0xd0, 0xfc, 0xe5, 0x78, 0x3c, 0xec, 0xc2, 0x6d, 0x50, 0x02, 0x45, 0x1e, 0xf6, 0x0a, 0x37, 0x88, 0x89, 0x3e, 0x9b, 0x61, 0x17, 0x6e, 0x83, 0xe2, 0x35, 0xf2, 0xb0, 0x57, 0xb8, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0xd8, 0x20, 0x5e, 0x39, 0x66, 0x0e, 0x96, 0xee, 0x4d, 0x1d, 0x9a, 0xbf, 0x1c, 0x8f, 0x87, 0x5d, 0xb8, 0x0d, 0xd2, 0x42, 0xb3, 0x0f, 0x7b, 0x85, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0x82, 0x0d, 0xe2, 0x95, 0x63, 0xe6, 0x60, 0xfd, 0x67, 0xd4, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x90, 0x6d, 0x68, 0xbe, 0x7e, 0x10, 0x9f, 0xec, 0x36, 0x83, 0x68, 0x71, 0x10, 0x6c, 0x1c, 0x3a, 0x88, 0xff, 0xb8, 0x9a, 0x83, 0xc5, 0xa2, 0x07, 0xc7, 0xe3, 0xe3, 0xf1, 0x20, 0xd8, 0x60, 0xe4, 0x3f, 0x2c, 0x0e, 0xbf, 0xf1, 0x78, 0xd8, 0x0d, 0xc6, 0x3a, 0xda, 0x82, 0x60, 0x41, 0x32, 0x70, 0xdf, 0x1d, 0x0c, 0xff, 0xd8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x1e, 0x42, 0x07, 0xc5, 0xa1, 0xc6, 0x71, 0x68, 0x83, 0x18, 0x29, 0x34, 0x3a, 0x88, 0xf6, 0x2b, 0xa3, 0xe3, 0xf1, 0xf1, 0x78, 0x71, 0x41, 0xb0, 0x41, 0x44, 0xbe, 0xad, 0x2c, 0x0e, 0x82, 0xc5, 0x99, 0x19, 0x48, 0x00, 0xe4, 0xe2, 0xc2, 0x2f, 0x88, 0x16, 0xd4, 0x0e, 0x82, 0x0d, 0x96, 0x11, 0x96, 0x1c, 0x3a, 0x11, 0x1d, 0x8f, 0x07, 0xc1, 0xe2, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x92, 0x61, 0x0e, 0xce, 0x5e, 0xc6, 0x07, 0xcf, 0x80, 0x8f, 0x18, 0x7e, 0x41, 0xb4, 0xe0, 0xfa, 0x41, 0x08, 0x80, 0x1f, 0x8f, 0x87, 0xdf, 0x60, 0xb0, 0x03, 0x0c, 0x82, 0x05, 0xc1, 0x82, 0x60, 0x83, 0xa6, 0x90, 0x06, 0x06, 0xc9, 0x40, 0xf5, 0x3a, 0xe4, 0x34, 0x0e, 0x06, 0xb6, 0xe8, 0xb0, 0x1b, 0x84, 0x96, 0xfb, 0x82, 0x68, 0x21, 0x83, 0x60, 0x41, 0xb0, 0xc1, 0x6b, 0x6f, 0x48, 0x0e, 0xde, 0x21, 0x72, 0x73, 0x68, 0xd4, 0x72, 0x10, 0x98, 0xd8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0x50, 0x3d, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x61, 0x0e, 0xce, 0x79, 0xc7, 0x83, 0x64, 0x50, 0x75, 0x70, 0xe6, 0xc0, 0x3e, 0x34, 0x6a, 0x19, 0x44, 0x0b, 0xc6, 0x83, 0x60, 0x41, 0xb0, 0xc1, 0x6b, 0x6f, 0x48, 0x06, 0xc9, 0xc0, 0x50, 0x1d, 0x84, 0x1c, 0xfe, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xaa, 0x66, 0xf8, 0x8d, 0xe7, 0x83, 0x68, 0xa1, 0x83, 0x60, 0x83, 0xf8, 0xbb, 0x03, 0x39, 0x18, 0x51, 0xb8, 0xc7, 0xa1, 0xe3, 0xd0, 0x21, 0xb9, 0x74, 0x7c, 0x5b, 0x10, 0xac, 0x21, 0xe6, 0x07, 0xeb, 0x70, 0x72, 0x16, 0x87, 0xdd, 0xa0, 0xb5, 0x2e, 0xa5, 0x0d, 0x7b, 0x85, 0x83, 0x60, 0x41, 0xb0, 0x20, 0xd8, 0xa0, 0x29, 0xa4, 0x81, 0x41, 0x32, 0x50, 0xfc, 0x0e, 0x39, 0x8d, 0x43, 0x1a, 0x6e, 0xd8, 0x0d, 0x5a, 0xe7, 0x03, 0x58, 0xf8, 0x05, 0xd1, 0x82, 0xfa, 0x61, 0x17, 0x6e, 0x83, 0x34, 0xf7, 0x8c, 0x83, 0x22, 0x57, 0x61, 0x83, 0xc1, 0x5d, 0x79, 0x10, 0x98, 0xd8, 0xc7, 0xe3, 0x41, 0xb4, 0x20, 0x3e, 0x88, 0x07, 0xf3, 0xa0, 0x41, 0xb4, 0xb0, 0x83, 0x60, 0x83, 0xc8, 0x7c, 0x34, 0x3a, 0x6c, 0xd4, 0x0e, 0xa2, 0x85, 0x0c, 0x82, 0x0d, 0x22, 0x24, 0xd2, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0xfe, 0xc3, 0x6f, 0x3c, 0x3f, 0x28, 0xac, 0xa5, 0x8e, 0x43, 0x07, 0x81, 0x89, 0x3d, 0xec, 0xc2, 0x6d, 0xc8, 0xd7, 0x1e, 0x04, 0x59, 0xfc, 0x82, 0x60, 0x83, 0x13, 0x26, 0xfa, 0x61, 0xa3, 0xf6, 0x70, 0x8a, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0x62, 0xbe, 0x38, 0x88, 0x16, 0x32, 0x08, 0x16, 0x04, 0x1b, 0x34, 0x85, 0x34, 0x30, 0x48, 0x06, 0x66, 0xef, 0x90, 0xd3, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0xd5, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0xac, 0x41, 0x5c, 0x0d, 0xb1, 0x1c, 0x62, 0xb8, 0x38, 0x88, 0x16, 0x3a, 0x08, 0x16, 0x24, 0x03, 0xc1, 0x39, 0x38, 0x50, 0x24, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x38, 0x15, 0x92, 0x1f, 0xa4, 0x15, 0x8f, 0x1c, 0x87, 0x0e, 0xa9, 0x83, 0xe3, 0xf1, 0x71, 0xe8, 0xb0, 0x57, 0x78, 0x3c, 0x5e, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x2f, 0x88, 0x16, 0x18, 0xf7, 0x43, 0xea, 0xe0, 0x78, 0x3c, 0xec, 0x82, 0x60, 0x83, 0x28, 0x3e, 0xb0, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0xd5, 0x1c, 0x14, 0xb9, 0x0a, 0xc7, 0xa1, 0x0d, 0x7b, 0x85, 0x83, 0x60, 0x83, 0x58, 0x69, 0xd2, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0xb7, 0xb1, 0x35, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x8a, 0x5c, 0x85, 0x43, 0xaa, 0xe6, 0x38, 0x74, 0x1c, 0x3a, 0x1e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x76, 0xc3, 0xfa, 0xde, 0x86, 0xbd, 0xc2, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x98, 0x1f, 0x9c, 0x83, 0xbf, 0x07, 0xd1, 0xc2, 0x0e, 0x82, 0x0d, 0x5a, 0x55, 0x57, 0x3a, 0x34, 0x6a, 0x39, 0x1e, 0x1f, 0x8f, 0x17, 0x44, 0x1b, 0xbc, 0xad, 0x1e, 0x60, 0x10, 0x6d, 0xd0, 0x16, 0xc1, 0xd2, 0x20, 0x5a, 0xc8, 0x21, 0x86, 0x87, 0xd4, 0xc1, 0x20, 0xd8, 0x10, 0xf3, 0xc5, 0x41, 0xb0, 0x20, 0xd8, 0x20, 0xfe, 0x2a, 0x8d, 0x0e, 0x8d, 0x5a, 0x86, 0xdd, 0x60, 0xd4, 0x4b, 0x6e, 0x10, 0x70, 0xd8, 0xc3, 0x2f, 0x88, 0x16, 0xd4, 0x0f, 0x82, 0x0d, 0x4e, 0x98, 0xe8, 0x07, 0xc3, 0x2c, 0xfc, 0x78, 0xbc, 0xc1, 0x92, 0x2d, 0xae, 0x83, 0xc0, 0xc4, 0x3e, 0x1e, 0x1f, 0x8f, 0x8f, 0xc7, 0x83, 0x60, 0x83, 0x91, 0x65, 0xb6, 0x38, 0x08, 0x16, 0xe7, 0x20, 0xc6, 0x01, 0x87, 0x16, 0x17, 0x04, 0x1b, 0x0c, 0xf7, 0xb7, 0xc5, 0x61, 0x17, 0xee, 0xa0, 0x65, 0xaf, 0x96, 0x85, 0xdd, 0x90, 0x08, 0x58, 0xc3, 0x22, 0xdf, 0x61, 0xaf, 0x70, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0xa2, 0x8e, 0x1b, 0xe7, 0xe0, 0x75, 0x9e, 0x37, 0xc3, 0x6f, 0xf0, 0xfe, 0x82, 0x9b, 0xe1, 0x37, 0x18, 0xec, 0x00, 0xc3, 0x2f, 0x88, 0x16, 0x9c, 0x1f, 0x04, 0x0b, 0x82, 0x0d, 0xe2, 0xf6, 0xd1, 0x68, 0x90, 0x0c, 0xaa, 0x0e, 0x42, 0x0e, 0xff, 0x60, 0x98, 0x85, 0x1f, 0x8f, 0x37, 0x18, 0xff, 0x92, 0x07, 0x81, 0x89, 0x3d, 0xfc, 0x82, 0x68, 0x41, 0xf9, 0x20, 0x58, 0x10, 0x6c, 0x10, 0x75, 0xdc, 0x38, 0x83, 0x64, 0x50, 0x75, 0xc8, 0x69, 0x1c, 0x1a, 0xb5, 0x1c, 0x8f, 0x87, 0x5f, 0x10, 0x2d, 0xb8, 0x7e, 0x10, 0xa1, 0x83, 0x37, 0xc7, 0xe3, 0x83, 0x51, 0xca, 0x79, 0x3c, 0x5e, 0xf8, 0x05, 0xd1, 0x82, 0xe9, 0x20, 0xd8, 0x60, 0x19, 0x61, 0xc9, 0xa1, 0x29, 0xd0, 0xf1, 0x78, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x62, 0x6b, 0xb6, 0x67, 0x90, 0x0c, 0x84, 0xef, 0x90, 0x9c, 0x1b, 0x7e, 0x83, 0xf7, 0x30, 0xd8, 0x0c, 0xbf, 0xc1, 0x60, 0x07, 0x38, 0x28, 0x55, 0xf8, 0x06, 0xc1, 0xc2, 0x2f, 0x08, 0x36, 0x88, 0xfd, 0x3d, 0x9b, 0x83, 0xf1, 0x61, 0x74, 0x7c, 0x1b, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xec, 0x82, 0x60, 0x83, 0xc8, 0xc5, 0x02, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0xd5, 0x1c, 0x8c, 0xb1, 0xa7, 0xe3, 0xd0, 0x0a, 0x82, 0x0d, 0xde, 0x12, 0x0a, 0x70, 0x30, 0xcc, 0xc2, 0x07, 0xd1, 0xc2, 0x1f, 0x52, 0x07, 0x07, 0x81, 0x89, 0x3d, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xc1, 0xca, 0x12, 0x99, 0xe1, 0x37, 0x68, 0xc8, 0xe3, 0x69, 0xf8, 0x0d, 0x06, 0x3b, 0xc0, 0x20, 0x19, 0x32, 0x88, 0x16, 0xc4, 0x07, 0xef, 0x87, 0x88, 0x38, 0x9e, 0x1f, 0x8f, 0x8f, 0xc7, 0xc7, 0xe3, 0xe3, 0xf1, 0x82, 0x60, 0x71, 0x71, 0x06, 0x7c, 0x4b, 0x98, 0x83, 0x7b, 0x80, 0x80, 0x25, 0xcc, 0xc1, 0x3d, 0x40, 0xa0, 0x1b, 0x95, 0x90, 0x19, 0x70, 0x33, 0x88, 0xdb, 0x1e, 0xf0, 0x1f, 0xe9, 0xd5, 0xe0, 0x01, 0x82, 0x9a, 0xd2, 0xb1, 0xf4, 0x00, 0xc1, 0x68, 0x25, 0x99, 0x67, 0x40, 0x96, 0x41, 0xdc, 0xf6, 0x80, 0x4f, 0x8a, 0xcb, 0x9d, 0x0f, 0x10, 0x78, 0xa4, 0x57, 0x83, 0x07, 0x08, 0x10, 0xb3, 0xa5, 0x2f, 0x03, 0xf2, 0x0a, 0x93, 0x6d, 0x06, 0xfc, 0x5e, 0xbe, 0x58, 0x7f, 0x80, 0xe0, 0xa0, 0x05, 0xf7, 0x3c, 0x40, 0x10, 0xd9, 0xf1, 0x0b, 0x19, 0xb0, 0xc9, 0x20, 0x6e, 0x7b, 0xc0, 0x97, 0x07, 0x81, 0x55, 0x07, 0x08, 0x90, 0xe2, 0x72, 0xe7, 0x03, 0x04, 0xde, 0x41, 0xbe, 0x84, 0x01, 0xbb, 0x8f, 0x5a, 0x5b, 0x07, 0xfc, 0x75, 0xf2, 0xee, 0x76, 0x80, 0x20, 0xaa, 0x96, 0x9a, 0x3e, 0x40, 0x70, 0x5c, 0x38, 0x3d, 0x18, 0xb0, 0xad, 0x30, 0xd9, 0x66, 0xc0, 0x07, 0x46, 0x5d, 0x23, 0x07, 0x08, 0xf4, 0xf2, 0xc5, 0xfa, 0x03, 0x04, 0xec, 0xc9, 0x65, 0x8a, 0x01, 0xfb, 0x89, 0x2b, 0x80, 0x06, 0xfc, 0x6c, 0x36, 0x83, 0x71, 0x80, 0x60, 0xac, 0xe7, 0x41, 0x3f, 0x40, 0x50, 0xdf, 0x80, 0xd0, 0x18, 0xd0, 0x91, 0x41, 0xdc, 0xf6, 0x80, 0xef, 0x05, 0x91, 0xc6, 0x0c, 0x10, 0x90, 0x07, 0x81, 0x55, 0x07, 0x08, 0xe4, 0xe2, 0xce, 0x44, 0x03, 0x7a, 0x34, 0xf9, 0x00, 0x1f, 0xf0, 0x8f, 0xa8, 0x09, 0x96, 0x01, 0x82, 0xfe, 0xc2, 0x06, 0xe9, 0x00, 0xc1, 0x5a, 0xad, 0x42, 0x69, 0x40, 0xd7, 0x47, 0xad, 0xad, 0x03, 0x3e, 0x1b, 0xa6, 0xac, 0x30, 0x40, 0x60, 0x9d, 0xbc, 0xbb, 0x1d, 0x20, 0x00, 0xca, 0xe7, 0x65, 0x0d, 0xe8, 0xe3, 0x6c, 0xd8, 0x72, 0xc0, 0xaf, 0xe3, 0xfa, 0x2e, 0x06, 0x08, 0x9e, 0x1b, 0xac, 0xb9, 0x03, 0x04, 0x59, 0x3d, 0xd1, 0xab, 0x01, 0x9d, 0x15, 0x26, 0xdb, 0x0c, 0xf8, 0x3a, 0x00, 0xde, 0xd1, 0x00, 0x01, 0x60, 0xd4, 0x35, 0x72, 0x80, 0xc0, 0x22, 0x0c, 0xfa, 0x37, 0xa0, 0xd7, 0xd2, 0xd3, 0x86, 0x01, 0x7f, 0x84, 0x78, 0xd6, 0x1a, 0x20, 0xc8, 0xac, 0xd4, 0x7d, 0x0e, 0x10, 0x3c, 0x94, 0xf6, 0xe2, 0x06, 0x74, 0x4f, 0x5c, 0x01, 0x34, 0xe0, 0x23, 0x20, 0x16, 0x7c, 0x03, 0x04, 0xb2, 0xd9, 0x0c, 0xc6, 0x01, 0x02, 0x92, 0xf4, 0x85, 0xd8, 0x80, 0x7e, 0xc8, 0xf7, 0xf6, 0x06, 0xfc, 0x08, 0x26, 0x34, 0x6c, 0x80, 0x60, 0xb5, 0x23, 0x2c, 0x38, 0x40, 0xd0, 0xd3, 0x62, 0x66, 0x1b, 0xf0, 0x21, 0x83, 0xb8, 0xed, 0x01, 0xd3, 0x20, 0x6e, 0x7b, 0x80, 0x80, 0x17, 0x44, 0x1a, 0x33, 0x40, 0xa0, 0x02, 0x51, 0xfd, 0x1e, 0xf0, 0x13, 0x0b, 0x63, 0xe3, 0x01, 0xf7, 0xa3, 0xd6, 0xd6, 0x01, 0x82, 0x52, 0xf2, 0xdf, 0xcf, 0x00, 0xc1, 0x0c, 0x35, 0x2e, 0x7a, 0xc0, 0x17, 0x4d, 0x3e, 0xc0, 0x07, 0x64, 0x9a, 0x7c, 0x80, 0x0f, 0x10, 0x38, 0xa2, 0x26, 0x58, 0x06, 0x08, 0x30, 0x30, 0x1d, 0xc2, 0x03, 0xfe, 0x6e, 0x83, 0xda, 0x3f, 0x20, 0xb7, 0xf4, 0xb4, 0x61, 0x80, 0xe0, 0x92, 0x8d, 0x2c, 0x32, 0x40, 0x10, 0xc0, 0x35, 0x66, 0x1e, 0xf0, 0xe9, 0xa3, 0xd6, 0xd6, 0x01, 0x5b, 0x2c, 0x8c, 0x8d, 0x07, 0x08, 0xb0, 0x61, 0xca, 0x0a, 0x03, 0x04, 0x4e, 0x00, 0x62, 0xf2, 0x01, 0xbf, 0xbd, 0xd2, 0x80, 0x1d, 0xb0, 0xf7, 0x4a, 0x03, 0x76, 0x80, 0x20, 0x98, 0x1e, 0x41, 0x30, 0x40, 0x70, 0x45, 0xfc, 0x50, 0x1f, 0xf0, 0x8d, 0xb3, 0x61, 0xcb, 0x01, 0x1b, 0x2a, 0xfd, 0x56, 0x06, 0x08, 0xd4, 0x71, 0x7d, 0x17, 0x03, 0x04, 0x7c, 0x88, 0xb9, 0xfc, 0x01, 0xff, 0xbb, 0xa3, 0x5b, 0x1c, 0xb0, 0x93, 0x5a, 0xb4, 0x6b, 0x80, 0x60, 0x9e, 0x6f, 0x9a, 0x31, 0x40, 0x50, 0xc6, 0x44, 0xbd, 0x1f, 0xf0, 0xb1, 0xc2, 0x64, 0x9b, 0x01, 0xdd, 0x39, 0xaa, 0x56, 0x0f, 0x10, 0xd0, 0x01, 0xf0, 0x8e, 0x06, 0x08, 0xc4, 0x61, 0x76, 0xa9, 0x03, 0x7e, 0x50, 0xe9, 0xb7, 0x32, 0xa0, 0x5f, 0x57, 0x62, 0xf7, 0x01, 0x82, 0x36, 0xe2, 0x68, 0xd2, 0x00, 0xc1, 0x3e, 0xbd, 0xf5, 0x74, 0xc0, 0x57, 0x4b, 0x4f, 0x1b, 0x06, 0x74, 0xfe, 0x6c, 0x37, 0x3a, 0x40, 0x60, 0x84, 0x78, 0xd6, 0x1a, 0x20, 0x80, 0xc6, 0x05, 0xd3, 0x0e, 0xf8, 0x73, 0x2d, 0x04, 0xc4, 0x80, 0x5e, 0xde, 0x31, 0x30, 0x07, 0x08, 0xbe, 0x98, 0x14, 0x54, 0x03, 0x04, 0xc9, 0x7c, 0x0d, 0xdd, 0x01, 0x9f, 0x27, 0xae, 0x00, 0x1a, 0xd0, 0x55, 0x83, 0x04, 0xce, 0x00, 0x01, 0x04, 0xc4, 0x82, 0x6f, 0x80, 0xc0, 0x10, 0x84, 0x21, 0x39, 0xe0, 0x97, 0xd4, 0xa2, 0x5d, 0x03, 0xfa, 0x6c, 0xe1, 0x1b, 0x18, 0x20, 0x48, 0xa0, 0x36, 0xcb, 0x0d, 0x10, 0x7c, 0x92, 0x87, 0x39, 0x07, 0x7c, 0x87, 0x7c, 0x6f, 0x6f, 0x40, 0xc7, 0x4c, 0xce, 0x4e, 0x03, 0x04, 0x22, 0x98, 0xd0, 0xb0, 0x01, 0x02, 0x5a, 0xd4, 0xeb, 0xe3, 0x80, 0x7f, 0xd1, 0x33, 0x9b, 0x0d, 0xe8, 0x81, 0x0d, 0xb4, 0x6e, 0x80, 0x60, 0x87, 0xab, 0xf7, 0x36, 0x40, 0xd0, 0xca, 0xa6, 0x0b, 0x1c, 0x20, 0x00, 0x19, 0xc4, 0x6d, 0x0f, 0x10, 0xd8, 0xce, 0xfe, 0x6a, 0x06, 0x54, 0x06, 0x71, 0xdb, 0x03, 0xbe, 0xa6, 0x74, 0x2c, 0x3d, 0x40, 0x90, 0x73, 0x54, 0xad, 0x1e, 0x20, 0x78, 0xbd, 0x93, 0xee, 0x0c, 0xb8, 0x15, 0x26, 0xdb, 0x0c, 0xf8, 0x83, 0x16, 0xdc, 0xf3, 0x00, 0x81, 0xc4, 0xc2, 0xd8, 0x78, 0x80, 0x80, 0x70, 0x87, 0x8c, 0x32, 0x20, 0xfb, 0xa8, 0xb5, 0x75, 0xc0, 0x47, 0xd5, 0x52, 0xd3, 0x07, 0x08, 0x16, 0x9e, 0x1d, 0xc8, 0x03, 0x04, 0x9d, 0xff, 0x09, 0x93, 0x01, 0xf9, 0xc4, 0x15, 0x40, 0x03, 0x7e, 0xac, 0xe7, 0x41, 0x3f, 0x40, 0x40, 0x34, 0xf9, 0x00, 0x1f, 0x20, 0x90, 0x1e, 0x45, 0x38, 0x0c, 0xd8, 0x68, 0xf2, 0x01, 0x3e, 0xe0, 0xfb, 0x0b, 0x1b, 0xa4, 0x03, 0x04, 0x5d, 0x57, 0x62, 0xf7, 0x01, 0x82, 0xe5, 0xb3, 0x32, 0xc0, 0x80, 0x1d, 0x67, 0xc3, 0x96, 0x03, 0xfe, 0xb9, 0xc1, 0x9a, 0x3b, 0x40, 0x60, 0xb7, 0x41, 0xed, 0x1f, 0x20, 0x00, 0x5f, 0x99, 0x4e, 0x0c, 0xd8, 0x5a, 0x7a, 0xda, 0x30, 0xe0, 0x33, 0x2b, 0x75, 0x9f, 0x03, 0x04, 0x6f, 0xdf, 0xb9, 0xf9, 0x01, 0x82, 0xfc, 0x77, 0x5f, 0xc7, 0x80, 0x3d, 0xe4, 0x7b, 0x7b, 0x03, 0x7e, 0xb5, 0x23, 0x2c, 0x38, 0x40, 0x80, 0x3e, 0x6a, 0x6d, 0x1d, 0x20, 0xf0, 0x9b, 0x8c, 0x0e, 0x0d, 0xe8, 0xc4, 0xc2, 0xd8, 0x78, 0xc0, 0x97, 0x92, 0xff, 0x7e, 0x06, 0x08, 0xe2, 0xcf, 0x76, 0xa3, 0x03, 0x04, 0x67, 0x57, 0xbc, 0xa6, 0x01, 0xbd, 0xdb, 0xa0, 0xf6, 0x0f, 0xf8, 0x4b, 0x36, 0xb2, 0xc8, 0x00, 0x81, 0xf6, 0x4a, 0x03, 0x76, 0x80, 0x80, 0x69, 0x43, 0xe1, 0x35, 0xa0, 0xdb, 0x2b, 0x0d, 0xd8, 0x01, 0x1f, 0x4c, 0x8f, 0x20, 0x18, 0x20, 0x18, 0x7e, 0x07, 0xfb, 0x0e, 0x10, 0x54, 0x7d, 0x9f, 0xa1, 0x06, 0xf4, 0x77, 0x47, 0xb7, 0x38, 0xe0, 0xe7, 0xf9, 0xa6, 0x19, 0x03, 0x04, 0x8c, 0xb3, 0x61, 0xcb, 0x01, 0x02, 0x8d, 0x41, 0x33, 0xde, 0x80, 0x0e, 0x2a, 0xfd, 0x56, 0x06, 0x7c, 0x1b, 0x71, 0x34, 0x69, 0x80, 0xa0, 0xf2, 0x8e, 0x81, 0x39, 0x40, 0x30, 0x70, 0xb4, 0xb0, 0x1b, 0xd0, 0x73, 0x2d, 0x04, 0xc4, 0x80, 0xff, 0x62, 0x52, 0x50, 0x0d, 0x10, 0xf8, 0xee, 0xe8, 0x16, 0x07, 0x08, 0x50, 0x16, 0x7a, 0x65, 0x03, 0xba, 0xa4, 0x16, 0xed, 0x1a, 0xf0, 0x09, 0xd4, 0x66, 0xb9, 0x01, 0x82, 0xd3, 0xff, 0x6b, 0xe1, 0x00, 0x41, 0xcc, 0x33, 0x74, 0x6d, 0x40, 0x5f, 0xf4, 0xcc, 0x66, 0x03, 0x7e, 0x87, 0xab, 0xf7, 0x36, 0x40, 0x00, 0x2b, 0x4c, 0xb6, 0x19, 0x20, 0x30, 0x91, 0x1f, 0x63, 0x0f, 0xf8, 0x9c, 0xa3, 0x6a, 0xf5, 0x80, 0xaa, 0x30, 0xd9, 0x66, 0x80, 0x20, 0xd5, 0x20, 0x81, 0x33, 0x40, 0xf0, 0x63, 0xe3, 0xb0, 0x1e, 0xf0, 0x0b, 0xcf, 0x0e, 0xe4, 0x01, 0x77, 0xe2, 0x0a, 0xa0, 0x01, 0x02, 0x41, 0xa5, 0xdf, 0xca, 0x00, 0x01, 0x85, 0x1e, 0xae, 0x78, 0xc0, 0x77, 0x5d, 0x89, 0xdd, 0x07, 0x64, 0x9c, 0x0d, 0x5b, 0x0e, 0x10, 0x6c, 0x3a, 0x4a, 0x4b, 0x06, 0x08, 0x1a, 0x7c, 0xab, 0xcb, 0x03, 0xfe, 0xed, 0x3b, 0x37, 0x3f, 0x20, 0x87, 0x7c, 0x6f, 0x6f, 0x80, 0x80, 0x5a, 0x7a, 0xda, 0x30, 0x40, 0x20, 0x24, 0x4e, 0x1d, 0x1f, 0xf0, 0xf1, 0x67, 0xbb, 0xd1, 0x01, 0xdb, 0x6d, 0x50, 0xfb, 0x07, 0x08, 0x9a, 0x2d, 0x7c, 0x03, 0x03, 0x04, 0x5b, 0x26, 0xb9, 0xf6, 0x01, 0x3f, 0xfc, 0x0e, 0xf6, 0x1d, 0xb0, 0xef, 0x8e, 0x6e, 0x71, 0x80, 0xc0, 0x5c, 0x0b, 0x01, 0x31, 0x40, 0x00, 0xa7, 0xf6, 0xf0, 0x1f, 0xf0, 0x95, 0x77, 0x0c, 0xcc, 0x01, 0x9b, 0x6b, 0x21, 0x20, 0x06, 0x08, 0xfe, 0x3d, 0xcb, 0x1e, 0x03, 0x04, 0x69, 0xae, 0x62, 0xf8, 0x01, 0x7f, 0xfa, 0x7f, 0x2d, 0x1c, 0xb0, 0x8b, 0x9e, 0xd9, 0x6c, 0x80, 0x00, 0x4f, 0x5c, 0x01, 0x34, 0x40, 0xe0, 0x2e, 0xdd, 0x70, 0x1d, 0xf0, 0xa9, 0x06, 0x09, 0x9c, 0x01, 0x5d, 0x78, 0x76, 0x20, 0x0f, 0x10, 0x84, 0x99, 0x9c, 0x9d, 0x06, 0x08, 0xee, 0x2d, 0xc0, 0xa0, 0x03, 0x7e, 0xd3, 0x51, 0x5a, 0x32, 0xa0, 0x6f, 0xdf, 0xb9, 0xf9, 0x01, 0x02, 0x25, 0xb5, 0x68, 0xd7, 0x00, 0x01, 0xb7, 0x96, 0x75, 0x76, 0xc0, 0x37, 0x5b, 0xf8, 0x06, 0x06, 0x74, 0xf8, 0x1d, 0xec, 0x3b, 0x40, 0x30, 0xe5, 0xca, 0x9b, 0x1a, 0x20, 0x28, 0xf6, 0xdc, 0xf5, 0x0e, 0xf8, 0x7f, 0xcf, 0xb2, 0xc7, 0x80, 0x9e, 0xfe, 0x5f, 0x0b, 0x07, 0x08, 0x38, 0xe4, 0x7b, 0x7b, 0x03, 0x04, 0x8a, 0xc2, 0xba, 0xca, 0x01, 0x1f, 0x66, 0x72, 0x76, 0x1a, 0xd0, 0x4d, 0x47, 0x69, 0xc9, 0x00, 0x41, 0x81, 0x0d, 0xb4, 0x6e, 0x80, 0x60, 0xd2, 0xe0, 0xba, 0x39, 0xe0, 0xa7, 0x5c, 0x79, 0x53, 0x03, 0xfa, 0xef, 0x59, 0xf6, 0x18, 0x20, 0x70, 0xd1, 0x33, 0x9b, 0x0d, 0x10, 0xe0, 0x2a, 0x85, 0x11, 0x07, 0x7c, 0x81, 0x0d, 0xb4, 0x6e, 0x40, 0xa7, 0x5c, 0x79, 0x53, 0x03, 0x04, 0x37, 0xbe, 0x0b, 0xb4, 0x01, 0x82, 0x50, 0x47, 0x86, 0xe1, 0x80, 0xbf, 0xf1, 0x5d, 0xa0, 0x0d, 0xe8, 0x8d, 0xef, 0x02, 0xad, 0xe1, 0x17, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0xc3, 0x6e, 0x68, 0x1c, 0xb9, 0x21, 0x86, 0x83, 0x60, 0x41, 0xb0, 0xc1, 0x8a, 0x72, 0x8b, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x34, 0x77, 0x8e, 0x7e, 0xb0, 0x74, 0xe1, 0x67, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0xb2, 0x41, 0x39, 0xab, 0x73, 0x30, 0x1c, 0xa5, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x90, 0xb0, 0xb6, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xb5, 0x1b, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0xd5, 0x17, 0xc4, 0xc1, 0xd2, 0x85, 0x9f, 0xe3, 0xd0, 0xc1, 0xc0, 0x0f, 0x39, 0x0e, 0x1d, 0x87, 0x06, 0xc1, 0x06, 0x2d, 0x98, 0xf4, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x48, 0xbf, 0x43, 0x18, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0xbe, 0x91, 0x8b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x52, 0x07, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x8b, 0x07, 0x49, 0x7b, 0x08, 0x8b, 0x83, 0x60, 0x83, 0xc8, 0x79, 0xe6, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x10, 0xe8, 0x7d, 0x07, 0x67, 0x2f, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xc4, 0x7b, 0x46, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x22, 0xe7, 0x99, 0xe3, 0xa0, 0x5c, 0xa2, 0x39, 0x48, 0x37, 0x70, 0x38, 0x0e, 0x1d, 0x1c, 0x6f, 0xa0, 0x8f, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x44, 0xd0, 0x9a, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x72, 0xa0, 0xe8, 0x90, 0xaf, 0x3d, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0xd0, 0x8c, 0xc9, 0x8d, 0xcd, 0xc8, 0x43, 0x6a, 0xe9, 0x78, 0x3c, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x07, 0xbc, 0x31, 0xb9, 0xf1, 0x60, 0x34, 0x0b, 0x1c, 0x8f, 0x57, 0x5c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0xb0, 0x1b, 0xc4, 0x5e, 0x3a, 0xd1, 0x82, 0x60, 0x83, 0x56, 0x6d, 0x93, 0x0e, 0x62, 0x73, 0x9d, 0xe8, 0x10, 0xc3, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x87, 0x5d, 0x10, 0x2c, 0x08, 0x36, 0x68, 0x71, 0x25, 0xea, 0x20, 0x12, 0x88, 0x8a, 0x0e, 0xa2, 0x8f, 0xa8, 0x68, 0x43, 0x0c, 0x07, 0xc1, 0x06, 0xad, 0xda, 0x26, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x04, 0x1b, 0xb4, 0xb8, 0x12, 0x75, 0x10, 0x45, 0x48, 0x45, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x1f, 0xc4, 0x2f, 0xaa, 0xcc, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x1e, 0x04, 0x8b, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x76, 0x83, 0x95, 0xc5, 0x63, 0x1b, 0x62, 0x38, 0x08, 0x36, 0x78, 0x5f, 0x91, 0xc0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x07, 0xa9, 0xa7, 0x3c, 0xc7, 0xa1, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x87, 0xdd, 0xb0, 0xbe, 0xb7, 0xe1, 0x14, 0x1b, 0x76, 0xc3, 0xae, 0xc1, 0x06, 0x43, 0xb3, 0x6b, 0x83, 0xa1, 0xd9, 0x75, 0x10, 0xc5, 0xdf, 0x34, 0xc7, 0xe3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x6e, 0x58, 0xdf, 0xdb, 0x10, 0xc3, 0x61, 0x37, 0xe4, 0xb1, 0x36, 0xc4, 0x70, 0xd8, 0x85, 0xdd, 0xb0, 0x6b, 0xb0, 0xe1, 0x68, 0x3f, 0x88, 0x12, 0x80, 0x99, 0x43, 0x3a, 0xf7, 0x78, 0x7c, 0x50, 0x32, 0x34, 0x1d, 0x8f, 0x57, 0x5c, 0xf8, 0x05, 0xc1, 0xe2, 0x02, 0x7e, 0x18, 0xdc, 0xdb, 0x1c, 0x7a, 0x0e, 0xa7, 0xd8, 0xe2, 0x82, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x05, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x64, 0x83, 0xb5, 0x8a, 0x23, 0x07, 0xc3, 0xd0, 0x67, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x7a, 0x8d, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0xc7, 0x40, 0x6b, 0x69, 0xf1, 0xc7, 0xa1, 0x83, 0x16, 0x9a, 0xf3, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x3f, 0x68, 0xcd, 0x55, 0xe5, 0x60, 0x2d, 0x4c, 0xc9, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0x34, 0xa0, 0x9c, 0x3f, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x41, 0x0c, 0xf5, 0x1c, 0x1d, 0xb4, 0xd0, 0x9c, 0x7f, 0xb0, 0x16, 0xa6, 0x64, 0x10, 0x2c, 0x48, 0x36, 0x58, 0xac, 0x67, 0x72, 0x30, 0xfc, 0x63, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x41, 0xb0, 0x41, 0x2c, 0x9b, 0xd5, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x06, 0x3a, 0x4f, 0x48, 0x4b, 0x3b, 0x0e, 0x0d, 0x82, 0x0d, 0x62, 0xd9, 0xac, 0xe6, 0x20, 0x22, 0x7d, 0x8e, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0x02, 0xbd, 0xeb, 0x60, 0xf8, 0xc7, 0x1e, 0x0c, 0x6c, 0xd1, 0xe3, 0xd0, 0x0a, 0x82, 0x05, 0xc9, 0x40, 0xe9, 0x3a, 0x18, 0x86, 0x3e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x06, 0x7e, 0xc8, 0xf0, 0x1b, 0xcf, 0x17, 0x07, 0xd9, 0x86, 0xb8, 0x0c, 0x82, 0x0d, 0x22, 0xd1, 0xe8, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x07, 0xf1, 0x47, 0x56, 0x33, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0xb6, 0x85, 0x8e, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x48, 0x06, 0x0c, 0x57, 0xae, 0x83, 0xe1, 0x1f, 0x3b, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0xb6, 0x85, 0x8e, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x05, 0xc1, 0x06, 0x91, 0x68, 0x74, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x41, 0xd3, 0xa3, 0xfe, 0xc7, 0xa1, 0x8d, 0xc7, 0xc7, 0xe3, 0x83, 0x67, 0x71, 0x24, 0x1c, 0x87, 0x0e, 0x9a, 0xa9, 0xcf, 0x3f, 0x88, 0xc5, 0xa6, 0xa3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x22, 0xd1, 0xe8, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x7c, 0xb0, 0x5c, 0x17, 0x66, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x83, 0x58, 0x6c, 0x3a, 0x1a, 0x04, 0x1b, 0x04, 0x59, 0xfc, 0xe2, 0x20, 0x58, 0xf8, 0x0d, 0xd9, 0x8a, 0x41, 0x32, 0x50, 0xd4, 0x0e, 0x86, 0x7f, 0xec, 0xc1, 0x4a, 0x7c, 0x91, 0xe3, 0xf1, 0x71, 0xe8, 0x38, 0x74, 0xf0, 0x7e, 0x67, 0x84, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xb1, 0x2d, 0x74, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0x32, 0xa0, 0xd4, 0xe5, 0x3a, 0x18, 0xfe, 0xb1, 0x07, 0xb1, 0xe1, 0x74, 0x74, 0x10, 0xb1, 0x58, 0x47, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x44, 0xa2, 0xd1, 0xd1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0x44, 0xe5, 0xd4, 0xd1, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x07, 0x11, 0x8b, 0x75, 0x74, 0x10, 0xa9, 0x54, 0x47, 0xc7, 0xa1, 0xe3, 0xd0, 0xc1, 0xfb, 0x9d, 0x11, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0xa0, 0xf9, 0x81, 0xf8, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x40, 0xe2, 0x7f, 0xd7, 0xc1, 0xf0, 0x8f, 0x3d, 0x88, 0xf5, 0xa7, 0xa3, 0x83, 0xe7, 0x2e, 0x23, 0x1c, 0x34, 0x53, 0x9f, 0x7f, 0x1c, 0x3a, 0x1e, 0x1f, 0x87, 0x56, 0x10, 0x6c, 0xd0, 0x0e, 0x26, 0xfa, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x67, 0x90, 0x0b, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xf0, 0x28, 0xe4, 0x80, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0xc1, 0xf9, 0x27, 0x7c, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0x70, 0xfe, 0xef, 0x3a, 0x18, 0x86, 0x3e, 0x07, 0xeb, 0x9f, 0x46, 0x0e, 0xd6, 0xc2, 0x94, 0x1c, 0x87, 0x8e, 0x43, 0x0b, 0x82, 0x0d, 0x5e, 0xdf, 0x8b, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x0b, 0x82, 0x0d, 0xd6, 0x6b, 0x94, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x06, 0xcd, 0xf3, 0x8e, 0x43, 0x07, 0x0f, 0x20, 0x0d, 0x38, 0x58, 0xa2, 0x89, 0x76, 0x1c, 0x1a, 0x04, 0x1b, 0xbc, 0xbe, 0x17, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x17, 0x04, 0x1b, 0xac, 0xd7, 0x28, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x0c, 0x78, 0x78, 0x7e, 0xf0, 0xda, 0xd8, 0xe3, 0xd0, 0x20, 0xd8, 0x60, 0xbd, 0x46, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x63, 0xd0, 0x3f, 0xfe, 0x38, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0xc2, 0x82, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x68, 0x40, 0x39, 0x7f, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x83, 0x78, 0x53, 0x3b, 0x3a, 0x68, 0xa1, 0x39, 0xff, 0x38, 0x74, 0x1c, 0x5a, 0x10, 0x6c, 0xd0, 0x0e, 0x26, 0xfa, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x67, 0x90, 0x0b, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xf0, 0xfa, 0x5e, 0x84, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x5f, 0x10, 0x6c, 0xb0, 0x5e, 0xa3, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x31, 0xc0, 0x83, 0x27, 0x64, 0x6b, 0x88, 0x28, 0x88, 0x2a, 0x68, 0x3b, 0x0e, 0x0d, 0x82, 0x0d, 0xd6, 0x6b, 0x94, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x06, 0x5a, 0x57, 0x97, 0x3f, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0xb0, 0xa0, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x48, 0x06, 0x84, 0x7b, 0xd7, 0xc1, 0x30, 0xf4, 0x19, 0x04, 0x0b, 0xbf, 0xf1, 0xfc, 0x20, 0x4e, 0xe5, 0x8e, 0x0e, 0x5a, 0x68, 0xce, 0x3f, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x9e, 0x6c, 0x3b, 0x30, 0x08, 0x36, 0x38, 0x9b, 0xf4, 0x1e, 0xac, 0x85, 0x29, 0x19, 0x04, 0x0b, 0x92, 0x81, 0xd2, 0x75, 0x30, 0xfc, 0x63, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0xfc, 0xa0, 0xa0, 0x16, 0x1b, 0x7e, 0xe3, 0xf9, 0xe2, 0x20, 0xdb, 0x10, 0x97, 0x41, 0xb0, 0x41, 0xcb, 0x08, 0xfa, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0xbe, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0xb4, 0x28, 0xa1, 0x7f, 0x68, 0xd4, 0x32, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x5e, 0xee, 0x6b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x52, 0x35, 0xc3, 0x6f, 0x3c, 0x3f, 0x38, 0xd0, 0x37, 0x1f, 0x87, 0x0e, 0x5a, 0xcd, 0xd0, 0x3f, 0x88, 0x2c, 0xbe, 0xa3, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x83, 0x77, 0x89, 0x44, 0x0c, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0xe9, 0xae, 0x83, 0xe1, 0x28, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x73, 0x64, 0xef, 0xe2, 0xb0, 0x0b, 0xb7, 0x41, 0x50, 0x7a, 0x1f, 0x8c, 0x9f, 0xae, 0x05, 0xc1, 0x06, 0x91, 0xa6, 0x00, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x3d, 0x18, 0x19, 0x18, 0xc7, 0xa1, 0x43, 0x0c, 0x8f, 0xc7, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x83, 0xa6, 0xb6, 0x49, 0x06, 0xc1, 0x06, 0x89, 0x5c, 0x0a, 0x07, 0xad, 0x66, 0xe8, 0x0f, 0x82, 0x0d, 0x52, 0x16, 0x14, 0x0e, 0x5a, 0xcd, 0xd0, 0x3f, 0x0e, 0x1d, 0xb4, 0xd0, 0xa5, 0x7f, 0x1c, 0x3a, 0x1e, 0x1f, 0x87, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x85, 0x05, 0x25, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xc1, 0xc2, 0x82, 0x92, 0x83, 0xc3, 0x46, 0xef, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x82, 0x0d, 0xda, 0xe6, 0xbf, 0x1f, 0x04, 0x1b, 0xac, 0x7d, 0x4a, 0x3b, 0x58, 0x0b, 0x53, 0x32, 0x08, 0x36, 0x58, 0x11, 0x25, 0x75, 0xb0, 0x16, 0xa6, 0xe4, 0x60, 0xe9, 0x48, 0xc9, 0x71, 0x68, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x83, 0x08, 0x4c, 0x3c, 0x3a, 0x68, 0x4f, 0x3b, 0x7f, 0x41, 0xb0, 0xc1, 0xeb, 0x7b, 0x11, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x41, 0x32, 0xf0, 0x3b, 0xd7, 0xc1, 0x30, 0xf4, 0x39, 0x78, 0x00, 0x69, 0xc0, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0xc1, 0xf9, 0x89, 0x76, 0x10, 0x6c, 0xb0, 0x44, 0x13, 0xed, 0xa0, 0x3d, 0x3b, 0xfd, 0xe3, 0xd0, 0x82, 0x60, 0x83, 0xd7, 0xf7, 0x22, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x06, 0x11, 0xeb, 0x78, 0x34, 0x08, 0x36, 0x58, 0xaf, 0x51, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x18, 0xf4, 0x8b, 0x3f, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x05, 0xc9, 0x40, 0xd3, 0xae, 0x83, 0x61, 0xe8, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xe0, 0x87, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0xb0, 0xa0, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x7b, 0x10, 0xf3, 0x3f, 0x47, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0xd8, 0x20, 0xfe, 0x1e, 0x8f, 0x0e, 0xda, 0xb3, 0xd3, 0x3f, 0x0e, 0x2d, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xc1, 0x73, 0x68, 0x08, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x10, 0x2c, 0x08, 0x36, 0x68, 0x40, 0x39, 0x7f, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x90, 0xe4, 0x3a, 0x18, 0x86, 0x3e, 0x07, 0x2d, 0x34, 0xe7, 0x0f, 0x82, 0x0d, 0x5e, 0x39, 0x1a, 0x70, 0xd0, 0x42, 0x73, 0xfe, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x07, 0x11, 0xeb, 0x78, 0x74, 0xd0, 0x42, 0x73, 0xfe, 0xc1, 0x5a, 0x98, 0x92, 0x05, 0xc1, 0x82, 0x60, 0x83, 0x76, 0x30, 0xd1, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0xfc, 0xa0, 0xe5, 0x4f, 0xf4, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xc1, 0xc2, 0x82, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x90, 0x0c, 0x38, 0xee, 0x53, 0x1d, 0x0c, 0x43, 0x9f, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x40, 0x53, 0xae, 0x83, 0x61, 0xe8, 0x73, 0xb0, 0x16, 0xa6, 0x64, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb2, 0xc1, 0xa2, 0x12, 0x92, 0x83, 0x61, 0xe8, 0x73, 0xb0, 0x16, 0xa6, 0xe4, 0x38, 0x34, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x3e, 0x88, 0xf4, 0xe3, 0x9a, 0x83, 0x68, 0x11, 0x3d, 0x3a, 0x68, 0xcf, 0x4e, 0xff, 0x38, 0x34, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x71, 0x68, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x8d, 0x43, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0x32, 0x60, 0xed, 0x2e, 0xd7, 0xc1, 0xf0, 0x8f, 0x1d, 0x04, 0x1b, 0x52, 0x07, 0x83, 0x60, 0x83, 0x20, 0x8b, 0x5f, 0x1c, 0x04, 0x0b, 0xbf, 0x21, 0x5b, 0x71, 0xf0, 0x00, 0x17, 0x92, 0x83, 0x95, 0xf8, 0x22, 0xc7, 0xe3, 0x83, 0x66, 0xea, 0xf3, 0x0f, 0xde, 0xef, 0x8c, 0xb0, 0x20, 0xd8, 0x20, 0xb2, 0xa9, 0x6b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x07, 0x05, 0x83, 0xe4, 0xa0, 0x79, 0x24, 0xd4, 0xe3, 0xd0, 0x20, 0xd8, 0xe0, 0xf5, 0xbd, 0x08, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0xbe, 0x41, 0xc4, 0x68, 0x1e, 0x0d, 0x92, 0x01, 0xe3, 0x95, 0xeb, 0x60, 0x18, 0xfa, 0x0c, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0xda, 0xc1, 0x44, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x2e, 0x08, 0x36, 0x88, 0x5b, 0xa4, 0x9b, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x54, 0xcd, 0xf0, 0x1b, 0xcf, 0xc7, 0xc0, 0xfa, 0xff, 0x87, 0xe3, 0xd0, 0x62, 0x20, 0xbe, 0xff, 0xf6, 0x06, 0xc1, 0x06, 0x43, 0x4e, 0xfa, 0xd0, 0xa8, 0xe5, 0x78, 0x3c, 0xfc, 0xc6, 0xf3, 0xe1, 0x57, 0x10, 0x6c, 0x10, 0x75, 0xc0, 0x35, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xce, 0x35, 0xc5, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xb4, 0x64, 0x9e, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xe3, 0x41, 0x01, 0x00, 0x75, 0x10, 0xdf, 0xc2, 0x35, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0xd8, 0x20, 0xea, 0x80, 0x6b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xa4, 0x76, 0x80, 0x0c, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x5a, 0x32, 0xcf, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x10, 0xbd, 0xb4, 0x47, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0x82, 0x9f, 0xea, 0x60, 0x18, 0xfa, 0x1c, 0x87, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x44, 0x36, 0x75, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x8b, 0xe3, 0xe0, 0xf8, 0xe0, 0x58, 0xc7, 0xb7, 0xe3, 0xd0, 0x41, 0x7b, 0xda, 0xf9, 0xc7, 0xa1, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf1, 0x7c, 0x10, 0x6c, 0x48, 0x1d, 0x0c, 0x82, 0x0d, 0x82, 0x2c, 0x7e, 0x71, 0x10, 0x2c, 0xfc, 0x86, 0x6c, 0xc5, 0x20, 0x19, 0x98, 0xb5, 0x83, 0x85, 0xc3, 0x09, 0x07, 0x2b, 0xf1, 0x45, 0x8e, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x81, 0xe6, 0x5c, 0x07, 0x0b, 0x87, 0x13, 0x06, 0xc1, 0x06, 0x41, 0x16, 0xbf, 0x38, 0x08, 0x16, 0x7e, 0x43, 0xb6, 0x62, 0x90, 0x0c, 0x04, 0xed, 0x60, 0xe1, 0x70, 0xc2, 0xc1, 0x4a, 0x7c, 0x91, 0xe3, 0xf1, 0x71, 0x68, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x05, 0xc9, 0x40, 0xbc, 0x0e, 0x86, 0xa3, 0xf4, 0xc1, 0x58, 0x86, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x71, 0xe0, 0xcf, 0xe8, 0x50, 0xbf, 0xf0, 0x1b, 0xcf, 0xc7, 0x81, 0x67, 0xa3, 0x43, 0xf9, 0xc2, 0x6f, 0x3c, 0x1f, 0x07, 0xbc, 0xb0, 0x36, 0x38, 0xd4, 0x2c, 0xfc, 0xc6, 0xf3, 0x71, 0xc0, 0x8f, 0xab, 0x7b, 0xa3, 0x43, 0xc5, 0xc1, 0xc0, 0x0f, 0x39, 0x0e, 0x0d, 0x82, 0x05, 0xc9, 0x40, 0xba, 0xeb, 0x60, 0xf8, 0xc7, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0x49, 0x80, 0x81, 0x41, 0x32, 0x50, 0xfc, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x08, 0x36, 0x68, 0x12, 0x60, 0x60, 0x90, 0x0c, 0x94, 0xab, 0x83, 0x31, 0x18, 0x79, 0x30, 0xcc, 0xc2, 0x8f, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xbc, 0x20, 0x21, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x0f, 0xe2, 0x01, 0xad, 0x66, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x48, 0x06, 0x14, 0xff, 0x5d, 0x07, 0xc3, 0x3f, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0xc7, 0x83, 0x07, 0xc6, 0x7c, 0x0d, 0xbf, 0xf1, 0x7c, 0x90, 0x6c, 0xb0, 0x7a, 0x85, 0xe4, 0x60, 0xf8, 0xc7, 0x1e, 0x87, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0x86, 0x3a, 0xd5, 0xc1, 0xf0, 0x8f, 0x3d, 0x68, 0xa6, 0x3e, 0xff, 0x38, 0x74, 0x1c, 0x3a, 0x58, 0x0b, 0x53, 0x72, 0x1c, 0x3a, 0x1e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x1b, 0x44, 0x73, 0x7d, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xaa, 0x66, 0xf8, 0x8d, 0xe7, 0x07, 0x09, 0x9e, 0x08, 0xc7, 0xa1, 0xe3, 0xf1, 0x0a, 0x82, 0xc5, 0x05, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0xb0, 0x1b, 0x76, 0x0d, 0x36, 0xc4, 0x70, 0x10, 0x2c, 0x0e, 0x82, 0x05, 0xc1, 0x06, 0x51, 0x28, 0xeb, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0x85, 0x4b, 0x02, 0x07, 0xab, 0x38, 0xf9, 0x8f, 0x43, 0xc3, 0x6e, 0x50, 0x54, 0x29, 0x2c, 0xec, 0x86, 0x44, 0xc0, 0xc6, 0xa1, 0x41, 0xb0, 0xc1, 0x23, 0xcf, 0xa7, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x52, 0x07, 0x1b, 0xac, 0xe1, 0xc0, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0x81, 0x1c, 0x07, 0x07, 0xc5, 0x63, 0xca, 0x71, 0x68, 0x10, 0x6c, 0xf0, 0xc8, 0xf3, 0xa9, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xd4, 0xc1, 0x06, 0xc9, 0x96, 0xcc, 0xc3, 0x6f, 0x3c, 0x3f, 0x78, 0x62, 0xdc, 0xc3, 0x71, 0xe8, 0xf8, 0x76, 0x3c, 0x5e, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0xb0, 0x1b, 0xd6, 0xf7, 0x36, 0xc4, 0x70, 0x83, 0xe4, 0x9f, 0xe7, 0x41, 0xb0, 0x38, 0xec, 0x06, 0xc1, 0xc7, 0xbc, 0x21, 0x86, 0x83, 0x60, 0x83, 0xb7, 0x23, 0x09, 0x0c, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x14, 0xca, 0x7a, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x78, 0xe1, 0x92, 0xc0, 0x41, 0x01, 0x01, 0x72, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x76, 0x83, 0x56, 0x57, 0xef, 0x37, 0xc4, 0x70, 0x83, 0xc4, 0x10, 0x99, 0x41, 0xb0, 0x41, 0x14, 0xca, 0x7a, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x0f, 0xde, 0xad, 0x24, 0x70, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0xcf, 0x87, 0xdd, 0xb0, 0x82, 0xba, 0x21, 0x86, 0x1b, 0x24, 0x39, 0x47, 0x1f, 0xac, 0x58, 0xd0, 0x39, 0x0e, 0x1d, 0x87, 0x8e, 0x6f, 0xc7, 0xe3, 0x05, 0xc1, 0x06, 0x8f, 0x49, 0xbc, 0x5a, 0x1c, 0x04, 0x1b, 0xac, 0x69, 0x87, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x33, 0x8c, 0x4a, 0x07, 0xe9, 0xcf, 0x44, 0xc3, 0x6f, 0x3c, 0x1f, 0x76, 0xc3, 0xae, 0xc1, 0x06, 0x29, 0xda, 0xd7, 0x1b, 0x2c, 0xac, 0xc7, 0x19, 0x04, 0x1b, 0xac, 0x60, 0x88, 0x38, 0xb4, 0x00, 0x3b, 0x0e, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0x2c, 0x0b, 0x83, 0x59, 0x1c, 0x04, 0x1b, 0xac, 0x69, 0x87, 0x18, 0x04, 0x1b, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xe7, 0xc3, 0x2e, 0xec, 0x86, 0x68, 0x2e, 0xec, 0xc2, 0x2e, 0xec, 0xc2, 0x6e, 0x90, 0xd8, 0xf5, 0xb3, 0xb0, 0x1b, 0x34, 0xef, 0x05, 0xb3, 0xb0, 0x0b, 0xb7, 0xc1, 0xb3, 0xb1, 0xb5, 0x0e, 0x46, 0x66, 0xef, 0x86, 0x18, 0x1e, 0x1c, 0x8f, 0xd7, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0xdf, 0x10, 0xc3, 0x61, 0x37, 0x48, 0xec, 0xfa, 0x59, 0xd8, 0x0d, 0x5a, 0x9c, 0x82, 0x59, 0xd8, 0x0d, 0x06, 0x64, 0xef, 0xc2, 0x2e, 0xdc, 0x06, 0xaf, 0x91, 0xd6, 0x3a, 0x34, 0xe1, 0x3a, 0x68, 0x75, 0xc1, 0xe9, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0xc3, 0xd1, 0x7e, 0x58, 0xdf, 0x3c, 0xa4, 0x73, 0x0f, 0x47, 0xfb, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x8b, 0xe3, 0xe0, 0xe8, 0xe0, 0xf4, 0xe0, 0xf4, 0xe0, 0xf0, 0xe0, 0xf3, 0xa0, 0x7a, 0xd0, 0x77, 0xb0, 0xa2, 0x91, 0xeb, 0xf8, 0x36, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x38, 0x0e, 0x8e, 0x0e, 0x4e, 0x0f, 0x4e, 0x0f, 0x0e, 0x1f, 0xc4, 0x43, 0xfc, 0xd1, 0xf1, 0x6d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x7c, 0xd8, 0x0d, 0x9a, 0xf7, 0x82, 0x59, 0x10, 0x6c, 0xb0, 0x82, 0x21, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0xdb, 0x43, 0x2f, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xc5, 0xa2, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x62, 0x06, 0x61, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xba, 0x70, 0x9b, 0x43, 0xb3, 0xa4, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x34, 0xc8, 0xd6, 0xd0, 0x7e, 0xfd, 0xa0, 0xc5, 0x29, 0x98, 0x41, 0xb0, 0x20, 0xd8, 0xe0, 0xd9, 0xb0, 0x4d, 0x87, 0xee, 0x47, 0x83, 0x60, 0x71, 0xd8, 0x0d, 0xeb, 0x7b, 0x1b, 0x62, 0x38, 0x08, 0x36, 0x78, 0x81, 0xac, 0xc1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x1e, 0xc8, 0x71, 0x70, 0x48, 0xc3, 0x0d, 0xbf, 0xf1, 0x7c, 0xd8, 0x0d, 0xbb, 0x06, 0x1b, 0xa4, 0x68, 0x5f, 0x6f, 0x90, 0xf6, 0x52, 0x7d, 0x50, 0xa8, 0x9c, 0x1d, 0x87, 0x8e, 0x6f, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf9, 0xb0, 0x1b, 0x04, 0x89, 0xf7, 0x86, 0x18, 0x6e, 0x90, 0x90, 0x72, 0x3f, 0x08, 0x16, 0x04, 0x0b, 0xbf, 0xc1, 0xa1, 0xce, 0xfc, 0x20, 0x19, 0x93, 0xfe, 0x20, 0x5d, 0x70, 0xe8, 0x60, 0xdd, 0x18, 0xd3, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x1e, 0x04, 0x1b, 0xbc, 0xf9, 0x22, 0x6b, 0x71, 0xd8, 0x0d, 0x79, 0xac, 0x05, 0xc1, 0x06, 0x6b, 0xda, 0x21, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x30, 0x38, 0x1f, 0x0f, 0x4d, 0x81, 0x86, 0xdf, 0x78, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x3d, 0x78, 0x0d, 0x90, 0xdb, 0xf1, 0xf8, 0x38, 0x34, 0xc8, 0x36, 0x68, 0xe9, 0x0c, 0x66, 0x83, 0x14, 0x4d, 0xe6, 0x41, 0xb0, 0xc1, 0x9a, 0x76, 0x88, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x3f, 0x78, 0x61, 0x6c, 0xc9, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x23, 0x01, 0xe7, 0xd0, 0x02, 0xec, 0x38, 0x74, 0x3c, 0x1e, 0x04, 0x1b, 0x3c, 0x9f, 0x2f, 0x6c, 0x71, 0x10, 0x6c, 0xd0, 0x0c, 0xa3, 0xd2, 0xc1, 0x38, 0x0e, 0x39, 0x1e, 0x2f, 0x08, 0x36, 0xc4, 0x70, 0x71, 0xd8, 0x0d, 0xeb, 0x7b, 0x1b, 0x12, 0x53, 0xc3, 0x2e, 0xdc, 0x06, 0x89, 0x7e, 0xd0, 0x87, 0x68, 0x2e, 0xec, 0x06, 0xef, 0x16, 0xce, 0x59, 0x10, 0x2c, 0x08, 0x36, 0x58, 0x37, 0xec, 0x35, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xd0, 0x43, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x23, 0x9f, 0xf4, 0xc1, 0x8b, 0x1a, 0x68, 0x8e, 0x43, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x19, 0x38, 0xb5, 0x0e, 0x86, 0x7f, 0xec, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xea, 0x60, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x70, 0x0e, 0x87, 0x3e, 0x38, 0x3f, 0xd1, 0x1e, 0x87, 0x86, 0xdd, 0x60, 0xd4, 0x4b, 0x6e, 0x88, 0xe1, 0x20, 0x58, 0x90, 0x0c, 0x19, 0x44, 0x1b, 0x3c, 0xb8, 0xca, 0xe2, 0x90, 0x5c, 0x1a, 0x76, 0x83, 0x51, 0x2f, 0xb9, 0x21, 0x86, 0x07, 0x0b, 0xfe, 0x83, 0x0e, 0x31, 0x1c, 0x04, 0x1b, 0x14, 0x2a, 0x67, 0xc3, 0x6e, 0x30, 0xea, 0x25, 0x37, 0xc4, 0xf0, 0xe0, 0x51, 0x1b, 0x3a, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x0d, 0xda, 0x54, 0x80, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x14, 0x8b, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x78, 0x79, 0x2a, 0xc1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x18, 0x4a, 0x2c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xb0, 0x86, 0x03, 0xe7, 0x90, 0xaa, 0x39, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0x05, 0xc1, 0xe2, 0x06, 0xcf, 0x49, 0xdf, 0x38, 0x9c, 0x62, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0x38, 0xec, 0x06, 0x41, 0xd2, 0xbc, 0xa1, 0x63, 0xd8, 0xc2, 0x6f, 0xe8, 0x18, 0x76, 0x30, 0xc4, 0x3b, 0x07, 0xc9, 0x90, 0x83, 0x46, 0xce, 0x4c, 0x8e, 0x6f, 0x0b, 0x82, 0x05, 0xc9, 0xc0, 0xf8, 0x1d, 0x9c, 0x84, 0x8e, 0x0f, 0x06, 0xb6, 0xe8, 0x82, 0x60, 0xe1, 0x17, 0x7e, 0x43, 0xb6, 0xe2, 0x20, 0xe2, 0x14, 0x64, 0x0e, 0x96, 0x1a, 0x95, 0x1d, 0xac, 0xe2, 0xe4, 0x3f, 0x64, 0xed, 0x8e, 0xc7, 0x0b, 0x82, 0xc5, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x0d, 0xe2, 0x01, 0xad, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x38, 0xec, 0x06, 0xc1, 0xc7, 0xbc, 0x21, 0x86, 0xc3, 0x6e, 0x58, 0x41, 0x5d, 0x10, 0x6c, 0xf0, 0xc2, 0x25, 0x81, 0xc3, 0x46, 0xed, 0x20, 0xd8, 0x60, 0xe1, 0xab, 0xd7, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x1f, 0x44, 0x1f, 0x07, 0xd2, 0xf0, 0x1b, 0xcf, 0x37, 0x48, 0xd1, 0x64, 0x3e, 0x58, 0xb1, 0xa0, 0x73, 0x1c, 0x3a, 0xbe, 0x1d, 0x87, 0x8e, 0xc7, 0x2b, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x20, 0x58, 0x10, 0x2c, 0x08, 0x16, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0xf0, 0x82, 0x84, 0x84, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x36, 0x88, 0xde, 0xd1, 0x8e, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x54, 0xcd, 0xc1, 0xc2, 0xc5, 0x94, 0xe3, 0xd0, 0xf1, 0x78, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x20, 0xf8, 0xbb, 0x0e, 0x86, 0x7f, 0xec, 0xc1, 0xda, 0x66, 0xb6, 0xe3, 0xd0, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x17, 0x24, 0x24, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x41, 0xf4, 0x8e, 0x76, 0x1c, 0x24, 0x2a, 0x3b, 0x1f, 0x8f, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0x08, 0x12, 0xa4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xcb, 0xfd, 0x69, 0x0e, 0xd2, 0xfd, 0xa2, 0x8f, 0x43, 0xc7, 0xa1, 0x83, 0xf7, 0x3b, 0x23, 0x0c, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x78, 0x41, 0x42, 0xc2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x1b, 0x44, 0xef, 0x68, 0xc7, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xaa, 0xe6, 0x20, 0xe1, 0xf6, 0xe4, 0x38, 0x74, 0x3c, 0x1e, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x22, 0x48, 0x90, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xa4, 0x96, 0x45, 0x0f, 0xbf, 0xf1, 0xfc, 0x60, 0xf1, 0x0a, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0xf0, 0x7e, 0x67, 0x84, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x2f, 0x48, 0x48, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x83, 0xe8, 0x1d, 0xed, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0xd5, 0x1c, 0xac, 0x96, 0xc4, 0x39, 0x0e, 0x1d, 0x8f, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0x08, 0x12, 0xa4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x3f, 0x48, 0xd3, 0xfb, 0x38, 0x48, 0x5a, 0x77, 0x3e, 0x0e, 0x1d, 0x87, 0x0e, 0xde, 0xef, 0x8c, 0x30, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xe0, 0x05, 0x09, 0x09, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x6c, 0x10, 0xbd, 0xa3, 0x1d, 0x07, 0x69, 0xfc, 0xd4, 0xc7, 0xe3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x22, 0x82, 0x04, 0x69, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0xc7, 0x70, 0x65, 0xf8, 0x8d, 0xe7, 0x63, 0xb8, 0x73, 0x1c, 0x3a, 0x0e, 0x1d, 0xbc, 0xdf, 0x19, 0x61, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x0b, 0x12, 0x12, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0xd8, 0x20, 0x7a, 0x47, 0x3b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x52, 0x35, 0x07, 0x11, 0x8a, 0x87, 0x73, 0x1c, 0x3a, 0x1e, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0x11, 0x24, 0x48, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xd2, 0xa6, 0x9d, 0x87, 0xdf, 0x78, 0x3e, 0x86, 0x23, 0xc7, 0xa1, 0xe3, 0xd0, 0xc1, 0xfb, 0x9d, 0x11, 0x06, 0xc1, 0x82, 0x64, 0xa0, 0x68, 0x1d, 0x0c, 0x47, 0xe9, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xbd, 0xc2, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x80, 0xc0, 0xef, 0x3a, 0x18, 0x8e, 0xd2, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x56, 0x4b, 0xe2, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0x24, 0xfe, 0x77, 0x1d, 0x0c, 0x47, 0xe9, 0x83, 0x81, 0x2d, 0x7a, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x57, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0xd8, 0x60, 0x5d, 0xdb, 0xd8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xe8, 0x05, 0x2b, 0x3a, 0x48, 0xf1, 0x73, 0x38, 0x0e, 0x1d, 0x8f, 0x07, 0xc1, 0xe2, 0x82, 0x60, 0x83, 0x76, 0x30, 0xd1, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x82, 0x60, 0x83, 0x13, 0x9f, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x30, 0x2a, 0x07, 0x67, 0x2f, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x3c, 0x77, 0xc0, 0xe4, 0xd0, 0xa8, 0xe5, 0xd0, 0x78, 0xfe, 0x38, 0x74, 0x1c, 0x1a, 0x04, 0x1b, 0x24, 0x19, 0x7b, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x58, 0x9e, 0xbc, 0x36, 0xfc, 0xc6, 0xf3, 0x83, 0xb8, 0x5c, 0x9b, 0x39, 0x0e, 0x1d, 0x8f, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x58, 0x58, 0x50, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x3d, 0x88, 0x49, 0xdc, 0xa3, 0xe3, 0xd0, 0x71, 0x68, 0xe1, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x36, 0x88, 0xe6, 0xfa, 0x9a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x54, 0xcd, 0xf0, 0x1b, 0xcf, 0x0f, 0xce, 0xc1, 0xdf, 0xc7, 0xa1, 0xe3, 0xf1, 0x41, 0x24, 0xa3, 0xe5, 0x0c, 0xbf, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x04, 0x1b, 0x44, 0xa1, 0xdb, 0xc8, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0x44, 0xbe, 0x63, 0xcd, 0x41, 0x1a, 0x0e, 0xfc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x73, 0xa8, 0xf1, 0xe1, 0xa9, 0x81, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x97, 0x3d, 0xd0, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x58, 0xf9, 0x9e, 0x72, 0xc8, 0xd7, 0x1e, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0x41, 0x84, 0xb6, 0xe5, 0x0c, 0xb2, 0x35, 0xa4, 0x81, 0xc6, 0x01, 0x3a, 0xb1, 0xb0, 0xb9, 0xb2, 0x18, 0x7b, 0xb8, 0xba, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x1b, 0x2c, 0x5b, 0x4d, 0x19, 0x04, 0x1b, 0xa4, 0x76, 0x7b, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x87, 0xdd, 0x60, 0x6c, 0x72, 0x6e, 0x88, 0xe1, 0x82, 0x60, 0x83, 0x68, 0x64, 0xb6, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x14, 0x8b, 0x16, 0x7e, 0xe3, 0xf9, 0x82, 0x60, 0x83, 0x28, 0x66, 0xe3, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x10, 0x98, 0xd8, 0x07, 0xab, 0x25, 0x71, 0x8e, 0x43, 0x87, 0xa3, 0xfd, 0x90, 0xaa, 0x39, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0xc1, 0x7c, 0x10, 0x6c, 0x10, 0x1d, 0x7f, 0x34, 0x07, 0x91, 0x98, 0x85, 0x74, 0x3c, 0x3e, 0xbe, 0x1d, 0x87, 0x8e, 0xc7, 0x83, 0x60, 0x71, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0x41, 0x0c, 0x3d, 0x9f, 0x1c, 0x44, 0x8c, 0x98, 0xc9, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x41, 0xb0, 0xc1, 0xc8, 0x7f, 0x58, 0x1c, 0x04, 0x0b, 0x82, 0x0d, 0x1e, 0xc3, 0x40, 0x73, 0x70, 0xcc, 0xee, 0x1d, 0x04, 0x0b, 0x82, 0x0d, 0x22, 0x12, 0x5c, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x81, 0x88, 0xff, 0xd0, 0x02, 0xe8, 0x38, 0x34, 0x08, 0x16, 0x04, 0x1b, 0xbc, 0x82, 0x46, 0xee, 0xa0, 0x69, 0xd3, 0x95, 0x41, 0xb0, 0x20, 0xd8, 0x60, 0x15, 0xe4, 0xc1, 0xc1, 0xeb, 0xbf, 0x22, 0x06, 0xc1, 0x82, 0x60, 0x83, 0x23, 0x6d, 0xf2, 0xc1, 0x9b, 0x4d, 0x28, 0x06, 0xc1, 0x82, 0x60, 0x41, 0x32, 0x30, 0x4a, 0x07, 0x07, 0x8a, 0xe4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x3f, 0x68, 0xaf, 0xd0, 0xff, 0xa0, 0x40, 0xdf, 0x39, 0x0e, 0x0d, 0x82, 0x0d, 0x62, 0xb5, 0xff, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x75, 0x30, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0xd9, 0xa0, 0x9c, 0xd5, 0x39, 0x38, 0x6d, 0x28, 0x1f, 0x1c, 0xb4, 0x7a, 0x8f, 0x43, 0xc7, 0xe3, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xc1, 0x06, 0x31, 0xf4, 0x7c, 0x72, 0x30, 0x8e, 0x43, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x61, 0x17, 0x6e, 0x43, 0x0c, 0x07, 0xc1, 0x06, 0x8d, 0xd6, 0x42, 0x1d, 0x12, 0xad, 0x0b, 0x82, 0x0d, 0xda, 0x2d, 0x86, 0x3a, 0x24, 0x5a, 0x87, 0x39, 0x88, 0xfb, 0x34, 0xa4, 0xe3, 0xf1, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x04, 0x0b, 0x82, 0x0d, 0x1e, 0xc3, 0x40, 0x73, 0xb0, 0x74, 0xe1, 0x67, 0x10, 0x2c, 0x08, 0x36, 0x88, 0xde, 0xd1, 0x8e, 0x83, 0x77, 0x64, 0xe5, 0x0c, 0x82, 0x0d, 0x5a, 0xce, 0xc1, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x9c, 0xca, 0xe2, 0x1c, 0x14, 0xd1, 0x3a, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xa4, 0x79, 0xa4, 0x1c, 0x0c, 0xd2, 0xad, 0xe3, 0xd0, 0xf1, 0x78, 0x10, 0x6c, 0x30, 0x14, 0x91, 0x16, 0x17, 0x04, 0x8b, 0x83, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x2c, 0x08, 0x36, 0x78, 0xbf, 0xf6, 0xcc, 0x21, 0x0d, 0x37, 0x08, 0x16, 0x04, 0x1b, 0x44, 0x6e, 0x17, 0xce, 0x61, 0x8f, 0x77, 0x10, 0x2c, 0x08, 0x16, 0x04, 0x1b, 0x44, 0xac, 0x24, 0xcd, 0x20, 0x19, 0x88, 0xdb, 0x20, 0x5a, 0xd8, 0x83, 0x82, 0x6c, 0xe7, 0x38, 0x74, 0x30, 0x8e, 0x43, 0x86, 0x5d, 0xd8, 0x0d, 0x4a, 0x82, 0x86, 0x85, 0x5d, 0xd8, 0x0d, 0xda, 0xae, 0x65, 0x39, 0xac, 0x6f, 0x1e, 0xd2, 0xb9, 0x87, 0xa3, 0x7d, 0x41, 0xb6, 0x06, 0x6d, 0x81, 0xac, 0x6c, 0x88, 0xe1, 0x20, 0xd8, 0xa0, 0x2d, 0xab, 0xfe, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xed, 0x6c, 0xf5, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xae, 0xa1, 0x8e, 0x6f, 0x78, 0xf9, 0x6e, 0x02, 0x78, 0x13, 0x0b, 0x9b, 0x2b, 0x6b, 0xb1, 0xa1, 0x69, 0x81, 0x0b, 0x23, 0x23, 0x4b, 0x73, 0x3b, 0x6b, 0x29, 0x93, 0x93, 0x6b, 0x79, 0x73, 0x2b, 0x0f, 0xa2, 0xfc, 0x0e, 0xe9, 0x38, 0x74, 0x1c, 0x3a, 0xc4, 0x70, 0xd8, 0x85, 0x5d, 0xd8, 0x0d, 0x4a, 0x82, 0x86, 0xc3, 0xfa, 0xe6, 0xc2, 0x6e, 0x90, 0x60, 0xfe, 0x7c, 0x48, 0xe7, 0x1e, 0x8e, 0xf6, 0x05, 0xd9, 0x1a, 0xb4, 0x05, 0xb2, 0xb2, 0x21, 0x86, 0x83, 0x60, 0x83, 0xb6, 0xac, 0xfa, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xb4, 0xb3, 0xd5, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xb8, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x09, 0xe0, 0x4d, 0x2c, 0x6c, 0xae, 0xac, 0xc5, 0x86, 0xa6, 0x05, 0x2e, 0x8c, 0x8c, 0x2c, 0xcd, 0xed, 0xac, 0xa5, 0x4c, 0x4e, 0xae, 0x85, 0xee, 0xee, 0x3d, 0x88, 0x3c, 0x3f, 0xa4, 0xe3, 0xd0, 0x71, 0xe8, 0x10, 0xc3, 0x41, 0xb0, 0x20, 0xd8, 0x20, 0xf9, 0x34, 0x65, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x87, 0x9c, 0xe5, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x43, 0xb1, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x70, 0xae, 0x1c, 0x1c, 0x33, 0x96, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x70, 0x94, 0x58, 0x3e, 0x28, 0x46, 0x7f, 0x0e, 0x0a, 0xb2, 0x9d, 0xe3, 0xd0, 0x71, 0xe8, 0x90, 0x3a, 0x38, 0x0e, 0x6d, 0x88, 0xe1, 0xc6, 0xa1, 0x41, 0xb0, 0x20, 0xd8, 0x20, 0x46, 0x2c, 0x2e, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0xfc, 0xd0, 0xfe, 0x7c, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x78, 0x38, 0xd0, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x90, 0x04, 0x24, 0x33, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0xcb, 0x11, 0x01, 0x0e, 0x4a, 0x6f, 0x87, 0xe3, 0xd0, 0x71, 0x68, 0x10, 0x2c, 0x08, 0x16, 0x24, 0x03, 0x6d, 0x9d, 0x0e, 0xd2, 0x82, 0x46, 0x0e, 0xd2, 0xcc, 0xb7, 0x07, 0xc1, 0xc2, 0x2e, 0x08, 0x16, 0x24, 0x03, 0xf9, 0x95, 0x83, 0x64, 0xa5, 0x95, 0x83, 0x62, 0xf4, 0x67, 0x43, 0x0c, 0x07, 0xc1, 0x06, 0x71, 0x54, 0x83, 0x73, 0x50, 0x8c, 0xfe, 0x0c, 0x82, 0x0d, 0xe2, 0xd4, 0x74, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x8a, 0x1c, 0xf5, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x82, 0x64, 0x20, 0xed, 0x74, 0x90, 0xac, 0xb4, 0x72, 0x90, 0x0e, 0x07, 0x71, 0x1c, 0x3a, 0x1e, 0x0f, 0x82, 0x05, 0xc9, 0x40, 0xba, 0xeb, 0xe0, 0x24, 0x74, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc7, 0xb7, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x20, 0x19, 0x50, 0xfc, 0x77, 0x1d, 0x9c, 0x84, 0x8e, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0x29, 0xda, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x40, 0xd3, 0xae, 0x83, 0x93, 0xd0, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x81, 0x1f, 0x32, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x20, 0xd0, 0xb9, 0x0e, 0x4e, 0x42, 0xc7, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0x20, 0xf1, 0xbf, 0xeb, 0xe0, 0x24, 0x74, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0xa8, 0x93, 0x44, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xb0, 0x98, 0xf0, 0x64, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x41, 0x32, 0xe0, 0xfc, 0xdf, 0x75, 0x70, 0x12, 0x3a, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0xd8, 0x0d, 0xf9, 0xda, 0x0d, 0x52, 0xfa, 0xac, 0x0f, 0x52, 0x34, 0x99, 0x8f, 0x43, 0xc7, 0xa1, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x51, 0x27, 0x89, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x95, 0xe7, 0xc9, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x11, 0x88, 0x89, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xb0, 0x1b, 0xf2, 0xb5, 0x1b, 0xa4, 0x3f, 0x3d, 0x1f, 0xa4, 0x14, 0x3d, 0x1f, 0x87, 0x8e, 0x43, 0x83, 0x60, 0x83, 0x20, 0x8b, 0x5f, 0x1c, 0x04, 0x0b, 0xbf, 0x21, 0x5b, 0x31, 0x48, 0x06, 0x66, 0xed, 0xe0, 0x24, 0x74, 0x7c, 0xb0, 0x12, 0x5f, 0xe4, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x6c, 0xb0, 0xd8, 0x56, 0xe4, 0xe0, 0x24, 0x74, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x06, 0x31, 0x52, 0x5b, 0x73, 0x90, 0xea, 0xa0, 0x71, 0x3c, 0x1e, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x08, 0xfe, 0xae, 0x83, 0x93, 0xd0, 0xf1, 0xc1, 0x42, 0xcc, 0x91, 0xe3, 0xd0, 0x41, 0x0c, 0x79, 0x22, 0x0d, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0x2e, 0x50, 0xa4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x36, 0x88, 0x52, 0x32, 0x90, 0x83, 0xa5, 0xd8, 0x27, 0xc7, 0xe3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xa2, 0x5f, 0x14, 0xe9, 0x60, 0xd5, 0xcc, 0xc9, 0x71, 0xe8, 0x20, 0x86, 0x3c, 0x91, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x44, 0x17, 0x28, 0xd2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x1b, 0x44, 0x29, 0x19, 0xc8, 0x41, 0xa2, 0xb2, 0xf3, 0xf1, 0x78, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xe8, 0x17, 0x45, 0x3a, 0x58, 0x4c, 0x71, 0x72, 0x1c, 0x3a, 0x88, 0x21, 0x4f, 0xa4, 0xe3, 0xd0, 0x20, 0xd8, 0x20, 0xc8, 0xe2, 0x17, 0x07, 0xc1, 0xc2, 0x6f, 0xc8, 0x56, 0x0c, 0x92, 0x81, 0xea, 0x76, 0x70, 0x12, 0x3a, 0x3e, 0x58, 0x89, 0x2f, 0x72, 0x3c, 0x3e, 0x0e, 0x2d, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x6c, 0x10, 0xf9, 0xd0, 0x44, 0x07, 0x11, 0xce, 0x84, 0x74, 0x3c, 0x1e, 0x04, 0x0b, 0xbb, 0x61, 0x5c, 0x16, 0x03, 0xf0, 0x3f, 0x48, 0x68, 0x88, 0xa8, 0xc8, 0xe8, 0x08, 0x29, 0x49, 0x69, 0x89, 0xa9, 0xc9, 0xe9, 0x09, 0x2a, 0x4a, 0x6a, 0x8a, 0xaa, 0xca, 0xea, 0x0a, 0x2b, 0x4b, 0x2b, 0x4c, 0x6c, 0x8c, 0xac, 0xcc, 0xec, 0x0c, 0x2d, 0x4d, 0x6d, 0x8d, 0xad, 0xcd, 0xed, 0x0d, 0x2e, 0x4e, 0x6e, 0x8e, 0xae, 0xce, 0xee, 0x0e, 0x2f, 0x4f, 0x0f, 0x26, 0x46, 0x66, 0x86, 0xa6, 0xc6, 0xe6, 0x06, 0x27, 0xa7, 0xe5, 0x1b, 0x03, 0xd0, 0x3f, 0x48, 0x68, 0x88, 0xa8, 0xc8, 0xe8, 0x08, 0x29, 0x49, 0x69, 0x89, 0xa9, 0xc9, 0xe9, 0x09, 0x2a, 0x4a, 0x6a, 0x8a, 0xaa, 0xca, 0xea, 0x0a, 0x2b, 0x4b, 0x2b, 0x4c, 0x6c, 0x8c, 0xac, 0xcc, 0xec, 0x0c, 0x2d, 0x4d, 0x6d, 0x8d, 0xad, 0xcd, 0xed, 0x0d, 0x2e, 0x4e, 0x6e, 0x8e, 0xae, 0xce, 0xee, 0x0e, 0x2f, 0x4f, 0x0f, 0x26, 0x46, 0x66, 0x86, 0xa6, 0xc6, 0xe6, 0x06, 0x27, 0x67, 0xe5, 0x0d, 0x82, 0xc5, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xc1, 0x06, 0x91, 0xde, 0x6e, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x28, 0x16, 0x2d, 0xfc, 0xc6, 0xf3, 0x05, 0xc1, 0x06, 0x91, 0xde, 0x6e, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xe0, 0x87, 0x1c, 0xa4, 0x12, 0x36, 0x1f, 0x87, 0x0e, 0x47, 0xfb, 0x41, 0x60, 0x62, 0x1f, 0x87, 0x06, 0xc1, 0x82, 0x60, 0x83, 0x68, 0xb2, 0xb7, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x14, 0x8b, 0x16, 0x7e, 0xe3, 0xf9, 0x82, 0x60, 0x83, 0x68, 0xb2, 0xb7, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xf0, 0x43, 0x36, 0x48, 0xeb, 0x6f, 0x3e, 0xec, 0x15, 0x1e, 0x87, 0x0e, 0x47, 0xfb, 0xc1, 0x78, 0xd3, 0x39, 0x0e, 0x0d, 0x82, 0x05, 0xc1, 0x06, 0x51, 0x98, 0x1e, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x28, 0x16, 0x2d, 0xfc, 0xc6, 0xf3, 0x05, 0xc1, 0x06, 0x51, 0x98, 0x1e, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xe0, 0x87, 0x6c, 0x90, 0x40, 0xe6, 0x7c, 0x10, 0x98, 0xd8, 0xc7, 0xa1, 0xc3, 0xd1, 0x7e, 0x30, 0x78, 0x27, 0x8f, 0x43, 0x83, 0x60, 0x41, 0xb0, 0x41, 0x84, 0xa7, 0x5c, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x8a, 0x45, 0x0b, 0xbf, 0xf1, 0x7c, 0x41, 0xb0, 0x41, 0x84, 0xa7, 0x5c, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0xf8, 0x21, 0x0b, 0xbf, 0xf1, 0x7c, 0x1c, 0x4c, 0x62, 0x0f, 0xc6, 0x9b, 0xce, 0x71, 0xe8, 0x70, 0xb4, 0x1f, 0x0c, 0x44, 0xea, 0xe3, 0xd0, 0x86, 0xbd, 0xc2, 0x0d, 0xa9, 0x9a, 0x0d, 0xa9, 0x83, 0x83, 0x73, 0x21, 0xf6, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0x32, 0x60, 0xe9, 0x7b, 0xdf, 0xc1, 0xb9, 0xfe, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x34, 0xa9, 0xe6, 0x1c, 0x44, 0x38, 0x13, 0xd2, 0x71, 0xe8, 0x78, 0xbc, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x2c, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x81, 0xf9, 0x3b, 0x38, 0xe7, 0x1d, 0x0f, 0x92, 0x81, 0xb8, 0x1d, 0xac, 0xda, 0x4f, 0x39, 0x48, 0x7f, 0x26, 0x1a, 0x04, 0x2b, 0x08, 0x36, 0x38, 0x51, 0x28, 0x1f, 0xc4, 0xa1, 0xcb, 0xcd, 0x20, 0xd8, 0x20, 0x8a, 0xc9, 0x6f, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xa4, 0xc8, 0x51, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0xf5, 0xe9, 0x37, 0x07, 0xe9, 0x70, 0x10, 0xc7, 0xa1, 0x0d, 0xa9, 0x83, 0x41, 0xb0, 0x41, 0x14, 0x13, 0xf1, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x88, 0x43, 0x37, 0x9c, 0x43, 0xea, 0xe0, 0x38, 0x74, 0x3c, 0x1e, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0x41, 0x3c, 0x18, 0x0d, 0x1d, 0x12, 0xad, 0xc3, 0x6e, 0x30, 0x5a, 0xcd, 0x17, 0x04, 0x1b, 0x3c, 0x9f, 0x25, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xb1, 0x02, 0x3c, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x10, 0xff, 0x83, 0x14, 0x0f, 0x99, 0xe3, 0xd0, 0x21, 0x75, 0x70, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x07, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0xd8, 0x60, 0x8c, 0xe1, 0x0c, 0x82, 0x05, 0xc9, 0x80, 0xe0, 0xdd, 0x39, 0x38, 0xe7, 0x1d, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0x2d, 0x53, 0x90, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x51, 0x26, 0x40, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x10, 0xcd, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xd2, 0xc7, 0x89, 0x0e, 0x46, 0x14, 0xee, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x3a, 0x1e, 0x1f, 0xa4, 0x5b, 0x4a, 0x1f, 0x8f, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x6e, 0x10, 0x39, 0xba, 0x32, 0x87, 0xd4, 0xc1, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x0e, 0xf0, 0xb4, 0xa5, 0xb5, 0x95, 0xcd, 0x07, 0x6b, 0xc2, 0x77, 0x8e, 0xc7, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x1b, 0x3c, 0xc2, 0x47, 0x6c, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0xf3, 0xf8, 0x23, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xa9, 0x9a, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x76, 0x41, 0xb0, 0x41, 0x14, 0x1f, 0xd8, 0x1c, 0x24, 0x27, 0x43, 0x2f, 0x08, 0x36, 0x88, 0xf6, 0xc1, 0x96, 0x83, 0x65, 0xcc, 0x28, 0x83, 0x60, 0x83, 0x68, 0x1f, 0x6c, 0x39, 0x48, 0x31, 0xa7, 0x3e, 0x1e, 0x0f, 0xbb, 0xb0, 0x0b, 0xbb, 0x20, 0xd8, 0xa0, 0x3d, 0xe9, 0xfb, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xbd, 0xc2, 0x83, 0xd4, 0xb2, 0xe8, 0xe3, 0xd0, 0xc2, 0x2e, 0x08, 0x36, 0x68, 0xc7, 0xfa, 0x7e, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x61, 0xaf, 0xf0, 0x20, 0xdd, 0x2f, 0xfa, 0x38, 0x74, 0x48, 0xe7, 0x1e, 0x8e, 0xf6, 0x0d, 0x31, 0x1c, 0x76, 0x61, 0x17, 0x04, 0x1b, 0xb4, 0x27, 0x7d, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xb0, 0x57, 0x78, 0x90, 0x36, 0xed, 0x7c, 0x1c, 0x5a, 0xd8, 0x05, 0xc1, 0x06, 0xed, 0x58, 0xdf, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xec, 0x15, 0x1e, 0x24, 0xad, 0x3b, 0x1f, 0x87, 0x0e, 0xe9, 0xdc, 0xc3, 0xd1, 0xbe, 0x21, 0x86, 0xc3, 0x2e, 0xec, 0x82, 0x60, 0x83, 0xf6, 0xa4, 0xef, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xf6, 0x0a, 0x0f, 0x92, 0xc5, 0xa7, 0x8f, 0x43, 0x0b, 0xbb, 0x20, 0xd8, 0xa0, 0x1d, 0xeb, 0xfb, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xbd, 0xc2, 0x83, 0xa4, 0x82, 0xea, 0xe3, 0xd0, 0x21, 0x9d, 0x7b, 0x38, 0xda, 0x37, 0xc4, 0x70, 0xd8, 0x85, 0x3b, 0x48, 0xb2, 0xab, 0xde, 0x10, 0xc3, 0x61, 0x17, 0x6e, 0x83, 0xf4, 0xa7, 0xe7, 0x43, 0xaa, 0x66, 0x43, 0x0c, 0x87, 0x5d, 0xb8, 0x0d, 0x92, 0x87, 0x98, 0x0f, 0xa9, 0x9a, 0x0d, 0x31, 0x1c, 0x76, 0xe1, 0x36, 0x48, 0xe9, 0xb3, 0x3e, 0xa4, 0x6a, 0x0e, 0xe9, 0xdc, 0x0d, 0x92, 0x8d, 0xac, 0x37, 0x48, 0xf4, 0x83, 0x5e, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0x41, 0x6b, 0x3a, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x96, 0x27, 0xaf, 0x1d, 0xf6, 0x0a, 0x8f, 0x43, 0xc7, 0xa1, 0x05, 0xc1, 0xc6, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xd1, 0x86, 0xda, 0x71, 0x10, 0xb3, 0xef, 0x48, 0xc7, 0xa1, 0x43, 0x0c, 0x8f, 0xc7, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0xd8, 0xe0, 0x79, 0x9c, 0x4d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xa9, 0x9a, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xa2, 0x7f, 0xb8, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0xb0, 0x1b, 0xf2, 0x58, 0x07, 0xd1, 0x41, 0x52, 0x74, 0x3c, 0x1e, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0xbc, 0x9d, 0x82, 0xe6, 0xe0, 0x51, 0x84, 0x3c, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0x41, 0xb0, 0xb8, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0xad, 0xd8, 0xeb, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc9, 0x40, 0xf4, 0x8e, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x01, 0xa1, 0xce, 0x75, 0x30, 0xde, 0x75, 0x0e, 0x9a, 0x62, 0xd9, 0x3f, 0x68, 0x7e, 0x5a, 0x7f, 0x41, 0xb0, 0x41, 0x43, 0xe1, 0xfa, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x52, 0xc3, 0x4e, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0x3c, 0x6c, 0xff, 0x60, 0x49, 0xe3, 0xc9, 0x71, 0x68, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0x8d, 0xe9, 0xea, 0x0f, 0x82, 0x0d, 0x1a, 0xb2, 0xe2, 0x3f, 0x68, 0x1f, 0x58, 0x7f, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0xa0, 0xd0, 0xe5, 0x3a, 0x18, 0xef, 0x3a, 0x07, 0xed, 0x03, 0xeb, 0x0f, 0x82, 0x0d, 0xde, 0xc3, 0x15, 0x70, 0xd0, 0x3e, 0xb0, 0xfe, 0xc1, 0x1b, 0x2e, 0x04, 0x56, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x58, 0x10, 0x2c, 0x08, 0x16, 0x04, 0x0b, 0xbf, 0xf1, 0xf8, 0x20, 0x22, 0xfe, 0x91, 0x06, 0xc1, 0x06, 0xaf, 0xa1, 0x14, 0x38, 0x68, 0x7e, 0x5a, 0x7f, 0x10, 0x6c, 0x10, 0xd1, 0xf9, 0x48, 0x07, 0xcd, 0x4f, 0xeb, 0x0f, 0x82, 0x0d, 0x1e, 0x84, 0x32, 0x70, 0xd0, 0xfc, 0xb4, 0xfe, 0x20, 0xd8, 0x60, 0x05, 0x32, 0xd0, 0x41, 0xf3, 0xd3, 0xfa, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x81, 0x77, 0xdd, 0x8e, 0xc7, 0x07, 0xcd, 0x4f, 0xeb, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0x84, 0xad, 0xdb, 0xf1, 0xf8, 0xa0, 0xf9, 0x69, 0xfd, 0x85, 0xdf, 0x78, 0x3c, 0xfc, 0xc6, 0xe3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x68, 0x7e, 0xd5, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xd8, 0x70, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x10, 0x6c, 0x70, 0x80, 0xdf, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0xf8, 0x0d, 0x1e, 0xda, 0x21, 0x70, 0xb0, 0xa0, 0xda, 0xec, 0x38, 0x34, 0x08, 0x36, 0x88, 0x3a, 0xe0, 0x9a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xe9, 0x65, 0x3d, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x96, 0xcc, 0xf3, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x2c, 0x6e, 0x37, 0x1b, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc6, 0xa1, 0x41, 0xb0, 0x41, 0xbc, 0x84, 0x1e, 0x1d, 0xb4, 0xa7, 0x9d, 0x7f, 0x1c, 0x1a, 0x04, 0x1b, 0x52, 0x07, 0x07, 0xed, 0xd9, 0xe9, 0x1f, 0x87, 0x8e, 0x43, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x9a, 0x5f, 0x75, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xf0, 0x43, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0x4c, 0xda, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xc1, 0x06, 0xcf, 0x86, 0x6d, 0x3a, 0x34, 0x6a, 0x19, 0x76, 0x83, 0xd1, 0xb1, 0xbe, 0x20, 0x58, 0x10, 0x6c, 0xf0, 0xb2, 0x07, 0x9a, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x43, 0xb1, 0xe8, 0x10, 0xcd, 0xe3, 0xd0, 0xb0, 0x0b, 0xbb, 0x20, 0xd8, 0xa0, 0x3d, 0xe9, 0xfb, 0x83, 0x64, 0xae, 0xe8, 0x85, 0x5d, 0x10, 0x6c, 0xd0, 0x8e, 0xf5, 0xfd, 0x41, 0x82, 0x5d, 0xf4, 0x21, 0x9d, 0x7b, 0x38, 0xda, 0x0f, 0x06, 0xaa, 0xda, 0xe1, 0x14, 0x3b, 0x1e, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xf0, 0x10, 0x16, 0x81, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xad, 0x2a, 0xed, 0x1f, 0x3c, 0xff, 0x76, 0xe0, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x1d, 0x34, 0x3f, 0xad, 0x3f, 0x08, 0x36, 0x68, 0x5d, 0xd6, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x8f, 0x49, 0xbc, 0x3a, 0x18, 0xbb, 0x56, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x16, 0x9f, 0xf7, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0xd6, 0x65, 0xdd, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0xfc, 0xe0, 0x7d, 0x59, 0x4d, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xb4, 0xf6, 0xbf, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x10, 0xb4, 0x6e, 0xc7, 0xe3, 0xe3, 0xd0, 0x71, 0xe8, 0xa0, 0x11, 0xc9, 0xfd, 0xe3, 0xd0, 0x20, 0xd8, 0xe0, 0x59, 0xe7, 0x04, 0x07, 0x8b, 0xd2, 0x49, 0x8e, 0x43, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0xa2, 0x6a, 0xba, 0x66, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0xe2, 0x47, 0xad, 0x68, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x50, 0xde, 0x8e, 0xc7, 0x07, 0xcd, 0x4f, 0xeb, 0x1f, 0x2c, 0x4a, 0x27, 0x19, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x92, 0x81, 0xb4, 0xdb, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x50, 0xdc, 0x8e, 0xc7, 0x07, 0x8b, 0xd2, 0x49, 0x0e, 0x16, 0xa5, 0x93, 0xac, 0x20, 0xd8, 0xa0, 0x31, 0x69, 0xf7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x0c, 0xee, 0xe9, 0x41, 0x32, 0x50, 0xfc, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0x96, 0xdd, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x71, 0x0d, 0x9e, 0x63, 0x88, 0x98, 0x0b, 0xf0, 0xa0, 0xd1, 0xd1, 0xc1, 0xcd, 0x75, 0x1c, 0x3a, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0xc1, 0x5b, 0x51, 0x06, 0x06, 0xc1, 0x06, 0x0f, 0x42, 0x19, 0x38, 0x58, 0x94, 0x4e, 0x32, 0x08, 0x36, 0x78, 0x0d, 0xa5, 0xc0, 0xc1, 0xa2, 0x74, 0x92, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x40, 0xef, 0xb7, 0xe3, 0xf1, 0xc1, 0xa3, 0x91, 0x17, 0x8e, 0x43, 0x2b, 0x08, 0x36, 0x68, 0x5d, 0xd6, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x5c, 0x79, 0x24, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0xda, 0xff, 0xfe, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0x60, 0xf9, 0xed, 0x78, 0x7c, 0x1c, 0x3a, 0x0e, 0x2d, 0x08, 0x36, 0x68, 0x5d, 0xd6, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x5c, 0x79, 0x24, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0xda, 0xff, 0xfe, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0xe0, 0xc5, 0x57, 0x05, 0xc7, 0xa1, 0xe3, 0xd0, 0x0a, 0x82, 0x0d, 0x5a, 0x97, 0x75, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x10, 0x57, 0x1e, 0x49, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xc4, 0xc0, 0x5b, 0xd1, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0xe0, 0xe1, 0xd5, 0x04, 0xc7, 0xa1, 0xe3, 0xd0, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x82, 0x85, 0xdf, 0x78, 0x7c, 0x10, 0x07, 0xfa, 0x48, 0x07, 0x71, 0x39, 0x90, 0x34, 0x08, 0x36, 0x88, 0xee, 0x98, 0xa4, 0x83, 0xe6, 0xa7, 0xf5, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0x20, 0x58, 0x10, 0x2c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x41, 0xdb, 0xad, 0xfb, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x1f, 0x34, 0xb7, 0xba, 0x7f, 0xd0, 0xfc, 0xb4, 0xfe, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x64, 0xc0, 0x70, 0xe5, 0x3a, 0x18, 0xef, 0x3a, 0x07, 0xcd, 0x4f, 0xeb, 0x0f, 0x82, 0x0d, 0xda, 0x69, 0xe4, 0x3f, 0x68, 0x7e, 0x5a, 0x7f, 0x10, 0x6c, 0xd0, 0xd2, 0xcf, 0xfe, 0x41, 0xf3, 0xd3, 0xfa, 0x83, 0x60, 0x83, 0x86, 0xae, 0xf7, 0x0f, 0x9a, 0x9f, 0xd6, 0x1f, 0x04, 0x1b, 0xb4, 0xaa, 0xb4, 0x7f, 0xd0, 0xfc, 0xb4, 0xfe, 0x20, 0xd8, 0xa0, 0x35, 0x39, 0xfe, 0x83, 0xe6, 0xa7, 0xf5, 0x0f, 0x5a, 0x4b, 0xe0, 0x1f, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x90, 0x6c, 0xb0, 0x7a, 0x85, 0xe4, 0x60, 0xbc, 0xeb, 0x1c, 0x34, 0x3f, 0xad, 0xbf, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x24, 0x1b, 0x2c, 0x2f, 0x17, 0x39, 0x18, 0xef, 0x3a, 0x07, 0x2d, 0xa4, 0xec, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x41, 0x9b, 0xa6, 0xfb, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x1a, 0x52, 0xe2, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x78, 0xd6, 0xed, 0x78, 0x7c, 0x1c, 0x1a, 0x04, 0x1b, 0x44, 0x4a, 0x51, 0xd2, 0x41, 0xf3, 0xd3, 0xfa, 0x0b, 0x82, 0x0d, 0x5a, 0x97, 0x75, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xb0, 0xdc, 0x1f, 0x66, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0x10, 0xd5, 0x6c, 0x45, 0x07, 0xcf, 0x9f, 0x14, 0x18, 0x04, 0x0b, 0xbf, 0xf1, 0xfc, 0xa0, 0x81, 0x7b, 0xfd, 0x41, 0xb0, 0x41, 0x90, 0xc5, 0x2f, 0x0e, 0x82, 0x85, 0xdf, 0x90, 0xad, 0x18, 0x7e, 0x41, 0x32, 0x50, 0xdc, 0x0e, 0xc6, 0xbb, 0xce, 0xf1, 0xed, 0x60, 0x25, 0xbe, 0xc8, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x83, 0x77, 0xd1, 0xa2, 0x1d, 0x2c, 0x4a, 0x27, 0x39, 0x0e, 0x0d, 0x82, 0x0d, 0x5a, 0x97, 0x75, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xb8, 0x41, 0x31, 0x2d, 0x78, 0x30, 0xc6, 0xd0, 0x16, 0x37, 0x34, 0xd4, 0x59, 0x83, 0xf1, 0xd3, 0x75, 0xb0, 0x10, 0x66, 0xff, 0x30, 0x2e, 0xc7, 0xe3, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0x10, 0x2b, 0x22, 0x49, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x08, 0x36, 0x88, 0xe8, 0x92, 0xa4, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x2d, 0x3e, 0xef, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x0f, 0x5e, 0x3b, 0x32, 0x30, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x3c, 0xb4, 0x43, 0xe0, 0x60, 0x51, 0x7f, 0xcd, 0xc1, 0xa3, 0x91, 0x17, 0x8e, 0x43, 0x07, 0x8b, 0xd2, 0x49, 0x0e, 0xa2, 0xcd, 0x24, 0xe9, 0x60, 0x51, 0x3a, 0xc9, 0x71, 0x68, 0x41, 0xb0, 0x41, 0xeb, 0xb2, 0xee, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x56, 0x23, 0xc5, 0x0c, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x9e, 0x5e, 0x1d, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xe0, 0x41, 0x28, 0x03, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0x49, 0xb7, 0xe3, 0xf1, 0x71, 0x68, 0x10, 0x6c, 0xf0, 0x20, 0x94, 0x81, 0x83, 0xa6, 0x58, 0xf6, 0x8f, 0x43, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x41, 0xf3, 0xab, 0xee, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xc6, 0x86, 0xeb, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x88, 0xaa, 0xe9, 0x9a, 0x41, 0xb0, 0x41, 0x2c, 0x90, 0x24, 0x1d, 0x2c, 0x4a, 0x27, 0x39, 0x0e, 0x0d, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0x7e, 0xd5, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc0, 0x0f, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0x75, 0x59, 0xf7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x3c, 0x9f, 0x2f, 0xec, 0x60, 0xec, 0x5a, 0x1d, 0x3c, 0xeb, 0x9c, 0xe0, 0x38, 0x74, 0x1c, 0x3a, 0x68, 0x7e, 0x5a, 0x7f, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0xf1, 0x35, 0x95, 0x74, 0x10, 0x45, 0x02, 0x49, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x81, 0xfd, 0xb7, 0xe3, 0xf1, 0x41, 0xf3, 0xd3, 0xfa, 0x07, 0x31, 0x4e, 0x90, 0x74, 0x10, 0xe7, 0x05, 0x49, 0x0b, 0x82, 0x0d, 0x5a, 0x97, 0x75, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x10, 0x57, 0x1e, 0x49, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xc4, 0xc0, 0x5b, 0xd1, 0x41, 0x7c, 0xd1, 0x24, 0x1d, 0x87, 0x06, 0xc1, 0x06, 0xad, 0xcb, 0xba, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x41, 0x3c, 0xa0, 0xd5, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x48, 0x4a, 0xa5, 0x3e, 0x34, 0x6a, 0x39, 0x0e, 0x1d, 0x8f, 0x87, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0xad, 0xfd, 0xef, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x20, 0x58, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x83, 0x06, 0x97, 0xf6, 0x0f, 0x5a, 0x4b, 0xe0, 0x3f, 0x68, 0x3a, 0x84, 0xff, 0x20, 0xf2, 0x81, 0x92, 0x8e, 0x43, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x01, 0x43, 0x9d, 0xea, 0x60, 0xbc, 0xeb, 0x1c, 0x2c, 0x4a, 0x27, 0x39, 0x0e, 0x2d, 0x08, 0x36, 0x78, 0x08, 0x8b, 0xc0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x83, 0xb6, 0x7d, 0xf5, 0x07, 0xc1, 0x06, 0xef, 0xe1, 0x0a, 0x38, 0x58, 0x94, 0x4e, 0x32, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc9, 0xc0, 0xbf, 0x6e, 0xc7, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x0f, 0x9e, 0x13, 0x2d, 0x70, 0xd0, 0x14, 0xcb, 0xfe, 0x20, 0xd8, 0x60, 0x31, 0x6c, 0xcd, 0xc1, 0xa2, 0x74, 0x92, 0xe3, 0xd0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0x20, 0x58, 0x10, 0x2c, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x82, 0x60, 0x83, 0x37, 0x43, 0x0b, 0x0c, 0x82, 0x0d, 0xde, 0xc3, 0x15, 0x70, 0xd0, 0xfc, 0xb4, 0xfe, 0x20, 0xd8, 0x20, 0xb6, 0xfd, 0x91, 0x0e, 0x9a, 0x9f, 0xd6, 0x3f, 0x68, 0x3a, 0x84, 0xff, 0x20, 0xee, 0x7a, 0x92, 0x06, 0xc1, 0x06, 0x0d, 0xd2, 0xee, 0x1f, 0x34, 0x3f, 0xad, 0x7f, 0x10, 0x73, 0x3b, 0x49, 0x07, 0xf1, 0xc4, 0x93, 0x74, 0xd0, 0x64, 0xc7, 0xfe, 0x41, 0xfb, 0x21, 0xfb, 0x07, 0x31, 0xec, 0x93, 0xb4, 0x20, 0xd8, 0xa0, 0x75, 0x59, 0xf7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x71, 0xe5, 0x91, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x0c, 0xbc, 0x15, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x0f, 0xd6, 0x2e, 0xd6, 0x1c, 0x87, 0x8e, 0x43, 0x2b, 0x08, 0x36, 0x68, 0x4c, 0xda, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xbb, 0x70, 0x1b, 0xa4, 0x3f, 0x3d, 0x0f, 0x82, 0x0d, 0xde, 0x1e, 0x7a, 0x31, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x1b, 0xfa, 0x93, 0x0f, 0x82, 0x0d, 0xd6, 0x9b, 0x95, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x7e, 0x10, 0x39, 0xba, 0x32, 0xc7, 0xa1, 0x43, 0xaa, 0xe6, 0x38, 0x74, 0x70, 0xcc, 0x5c, 0x3f, 0x1e, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0xba, 0xac, 0xfb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x48, 0x39, 0x4b, 0x1a, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0xb4, 0xf6, 0xbf, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x41, 0xcb, 0x5d, 0xfb, 0xc7, 0xa1, 0x41, 0xb0, 0x41, 0x5c, 0x04, 0x25, 0x1d, 0x2c, 0x4a, 0x27, 0x39, 0x0e, 0x1d, 0x87, 0x86, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0xa0, 0x75, 0x59, 0xf7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0xb8, 0x86, 0x18, 0x1e, 0x44, 0x1e, 0x55, 0xd1, 0x21, 0x86, 0xc7, 0xe3, 0x83, 0x98, 0xf6, 0x48, 0x3a, 0x0e, 0x0d, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x78, 0x7a, 0x75, 0xc0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x83, 0xa7, 0x72, 0x05, 0x1c, 0x34, 0xd9, 0xb1, 0x3f, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x41, 0x2b, 0xf6, 0xfa, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0x32, 0xb0, 0xea, 0x76, 0x3c, 0x3e, 0x88, 0x48, 0xb9, 0xa4, 0x83, 0xe6, 0xa7, 0xf5, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0xad, 0xdf, 0x8e, 0xc7, 0x07, 0x8b, 0xd2, 0x49, 0x8e, 0x43, 0x07, 0xcd, 0x4f, 0xeb, 0x2f, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0x0e, 0xbb, 0x41, 0xf0, 0x31, 0x6f, 0x48, 0x4c, 0x0d, 0xbb, 0xc1, 0x52, 0xc1, 0xa0, 0x05, 0xc1, 0x82, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x48, 0x06, 0x9a, 0x72, 0x1d, 0x0c, 0x47, 0xe9, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x91, 0x0c, 0x78, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x60, 0x41, 0x32, 0x50, 0x76, 0x0e, 0x8e, 0x59, 0xc5, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x83, 0x55, 0x19, 0x34, 0xc7, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x8f, 0x3c, 0xb1, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x90, 0x9e, 0x90, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0xa1, 0x6a, 0xc9, 0xa1, 0x51, 0xcb, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x3a, 0x1e, 0x0f, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0x10, 0x7f, 0xfe, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0x92, 0x81, 0x20, 0x1d, 0x9c, 0xce, 0x90, 0x0f, 0x52, 0xfc, 0x1c, 0x8e, 0xc7, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xb4, 0x28, 0xa1, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd9, 0x60, 0xf5, 0x0a, 0xc9, 0xc1, 0x70, 0x94, 0x3e, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0x83, 0x60, 0x83, 0x20, 0x8b, 0x5f, 0x1c, 0x04, 0x0b, 0xbf, 0x21, 0x5b, 0x71, 0xf0, 0xb6, 0x49, 0x92, 0x83, 0x95, 0xf8, 0x22, 0xc7, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x37, 0x9c, 0xeb, 0x83, 0x60, 0x83, 0xd4, 0x6e, 0x8f, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x41, 0x44, 0x77, 0x20, 0x1d, 0x87, 0x8e, 0x43, 0xc3, 0x6e, 0x10, 0x5a, 0xee, 0x6b, 0x88, 0xe1, 0x41, 0x19, 0x6b, 0x35, 0x08, 0x36, 0x18, 0xac, 0xb1, 0x1b, 0x2c, 0x85, 0xf5, 0x19, 0x76, 0x83, 0x57, 0xd1, 0xe0, 0x6c, 0x88, 0xe1, 0x82, 0x60, 0x83, 0x47, 0x9e, 0xd8, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x48, 0x4f, 0x48, 0x39, 0x78, 0x73, 0x8e, 0xcd, 0x71, 0xe8, 0x10, 0xc3, 0xe1, 0xd7, 0x60, 0xc5, 0x82, 0xce, 0x21, 0x6b, 0xb7, 0x41, 0x48, 0x81, 0x6f, 0x3c, 0x3f, 0x08, 0x01, 0xf0, 0xe3, 0xdb, 0xf1, 0x78, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x58, 0x10, 0x2c, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0x20, 0x58, 0x10, 0x2c, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x85, 0xdf, 0x78, 0x7c, 0xd0, 0x08, 0xd0, 0xfe, 0x41, 0xeb, 0x18, 0xfb, 0x83, 0x60, 0x83, 0x66, 0x77, 0xf8, 0x0f, 0x9a, 0x9f, 0xd6, 0x3f, 0x88, 0x07, 0xa0, 0xa4, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x80, 0xf0, 0xe5, 0x3a, 0x18, 0xef, 0x3a, 0x07, 0xcd, 0x4f, 0xeb, 0x1f, 0x44, 0xda, 0x4f, 0xd2, 0x41, 0x6b, 0x09, 0xfc, 0x07, 0x4d, 0x87, 0xf0, 0x1f, 0xc4, 0x5d, 0x4f, 0xd2, 0x41, 0x3c, 0xf1, 0x24, 0x1d, 0x34, 0xd9, 0xb1, 0x3f, 0x08, 0x36, 0x68, 0x30, 0x65, 0xff, 0xa0, 0xf9, 0x69, 0xfd, 0x83, 0xf6, 0x43, 0xf6, 0x07, 0xc1, 0x06, 0x6d, 0x4a, 0xee, 0x1f, 0x34, 0x3f, 0xad, 0x7f, 0x10, 0xc3, 0x3e, 0x49, 0x07, 0x91, 0x0f, 0x94, 0x34, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x6c, 0x10, 0x7f, 0x0b, 0x48, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xa9, 0x9a, 0xe1, 0x37, 0x9e, 0x1f, 0x24, 0x8b, 0x16, 0x1d, 0x87, 0x8e, 0xc7, 0x2b, 0x08, 0x16, 0x17, 0x7e, 0x41, 0xb0, 0xb8, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x82, 0x64, 0x20, 0xff, 0x75, 0x3c, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x24, 0xbf, 0x8e, 0xc7, 0xc7, 0xa1, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x31, 0x1b, 0x9b, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x3d, 0x78, 0xae, 0x4d, 0xc0, 0x71, 0x68, 0x10, 0x6c, 0x10, 0x64, 0xf1, 0x8b, 0x83, 0x60, 0xe1, 0x37, 0x64, 0x2b, 0x06, 0xc1, 0x06, 0x6b, 0x2c, 0x13, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x3f, 0x58, 0x51, 0x6e, 0x71, 0x1c, 0x3a, 0x58, 0x89, 0x2f, 0x72, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0xc1, 0xc2, 0x82, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0xc0, 0x2e, 0xd5, 0xc1, 0x30, 0xf4, 0x39, 0x0e, 0x0d, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0x82, 0xbf, 0xeb, 0x60, 0x18, 0xfa, 0x1c, 0xac, 0x6d, 0x66, 0x3b, 0x68, 0xcf, 0x4e, 0x7f, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x6c, 0x7e, 0xd7, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0xcf, 0xb1, 0xa3, 0x83, 0x95, 0xb8, 0x31, 0xc7, 0xa1, 0x83, 0xb5, 0x30, 0x25, 0x07, 0xd1, 0x4a, 0x9b, 0x34, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x66, 0x63, 0x93, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xc4, 0xe6, 0x77, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0x20, 0x72, 0x83, 0x8e, 0x8e, 0x43, 0xc7, 0xa1, 0x83, 0x68, 0xa5, 0x4d, 0x5a, 0x41, 0xb0, 0x41, 0xf4, 0x0f, 0xd7, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x61, 0x17, 0x04, 0x0b, 0x92, 0x81, 0xeb, 0xef, 0x90, 0x5c, 0x3a, 0x34, 0x6a, 0x59, 0x10, 0x6c, 0x10, 0x13, 0xeb, 0x44, 0x87, 0x46, 0x2d, 0x87, 0x18, 0x1e, 0x8f, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x68, 0x07, 0x13, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x9c, 0x76, 0x1e, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xf0, 0xfa, 0x5e, 0x84, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x5f, 0x90, 0x0c, 0x28, 0x75, 0xb9, 0x0e, 0x86, 0xa1, 0xcf, 0x41, 0xb4, 0x1a, 0x27, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xb0, 0xb0, 0xa0, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0x32, 0x50, 0xbd, 0x8e, 0xc7, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0xb4, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0x44, 0x2d, 0xe5, 0xd1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xb1, 0xe1, 0x3a, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x7a, 0x8d, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0xc7, 0x80, 0xc7, 0x2c, 0x8c, 0x6d, 0xae, 0x3c, 0x0e, 0x1d, 0x87, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x44, 0x2d, 0xe5, 0xd1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x81, 0x1f, 0x32, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x7a, 0x8d, 0x92, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0xc7, 0xc0, 0xa7, 0x93, 0xab, 0x2b, 0x8f, 0x43, 0xc7, 0xa1, 0x83, 0xb5, 0x30, 0x25, 0x2b, 0x08, 0x36, 0x58, 0x6e, 0x4a, 0xb2, 0x38, 0x08, 0x36, 0x68, 0x88, 0x3f, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x33, 0x21, 0x24, 0x0e, 0xa9, 0x9a, 0xe3, 0xd0, 0xf1, 0x78, 0x10, 0x6c, 0xf0, 0x6c, 0xc4, 0x80, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xa9, 0x65, 0xd1, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xbc, 0xbe, 0x17, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x17, 0x24, 0x1b, 0x34, 0x13, 0xf0, 0x7e, 0x30, 0x0c, 0x7d, 0x06, 0xc1, 0x82, 0x64, 0x20, 0xfb, 0x75, 0x3c, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0x48, 0xdc, 0xe5, 0x3a, 0x18, 0x86, 0x3e, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x80, 0x72, 0xbd, 0xeb, 0x60, 0x18, 0xfa, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x66, 0xaa, 0x93, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x07, 0x71, 0x73, 0x5e, 0x73, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0xc1, 0x12, 0x2a, 0xb6, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0xb4, 0xf0, 0x1b, 0x8f, 0x87, 0xdf, 0x78, 0x3c, 0xfc, 0xc6, 0xe3, 0xe1, 0x37, 0x1e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x2e, 0x08, 0x36, 0x78, 0x41, 0x42, 0xc2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb0, 0x41, 0x63, 0x89, 0x50, 0x83, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x7c, 0xf8, 0x0d, 0x2b, 0xb4, 0x07, 0xa9, 0x61, 0x08, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xd6, 0x7e, 0x87, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x9b, 0x78, 0x81, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x3c, 0x28, 0xec, 0x70, 0x0e, 0x59, 0xbb, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x1e, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0x28, 0x33, 0x3e, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x69, 0x05, 0x77, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0x06, 0x02, 0x00, 0x77, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x7c, 0x0c, 0x04, 0x00, 0xf0, 0xc1, 0xc0, 0x0f, 0x39, 0x0e, 0x0d, 0xbf, 0xf1, 0xfc, 0x60, 0x2c, 0x43, 0x1d, 0x87, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xc4, 0xb2, 0x59, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x63, 0xf0, 0x5c, 0xf5, 0x71, 0xe8, 0xe0, 0xb9, 0xcb, 0x08, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xa2, 0xcc, 0xf8, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xa7, 0x15, 0xdc, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf9, 0x18, 0x08, 0x00, 0xd8, 0x0d, 0xe2, 0xa7, 0x3c, 0xe9, 0x60, 0xe0, 0x87, 0x1c, 0x87, 0x0e, 0xe2, 0xde, 0x3c, 0xe9, 0x38, 0x74, 0xd0, 0x4c, 0x7d, 0xfe, 0x71, 0x68, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x88, 0x32, 0xe3, 0xa3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x9c, 0x56, 0x70, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x44, 0x7c, 0x79, 0xd2, 0xc2, 0x6f, 0x3c, 0x3f, 0x48, 0xf2, 0x42, 0x38, 0x18, 0x1b, 0xae, 0xc7, 0xa1, 0x83, 0xb8, 0x37, 0x4f, 0x3a, 0x0e, 0x0d, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0x32, 0xe3, 0xa3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x9c, 0x56, 0x70, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x3c, 0x49, 0xcb, 0x62, 0x83, 0x18, 0x5c, 0x4f, 0x3a, 0x18, 0x1b, 0xae, 0xc7, 0xa1, 0x83, 0xb8, 0x37, 0x4f, 0x3a, 0x0e, 0x1d, 0xbc, 0xdf, 0x19, 0x61, 0x41, 0xb0, 0xc1, 0xc8, 0x7f, 0x58, 0x1c, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xec, 0xc2, 0x2e, 0x08, 0x36, 0x88, 0x5c, 0x2c, 0x90, 0x83, 0xa6, 0x4d, 0x57, 0x16, 0x76, 0x41, 0xb0, 0xc1, 0x39, 0x15, 0x79, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x7b, 0x30, 0x84, 0x12, 0x8e, 0x43, 0x87, 0x74, 0xee, 0xe1, 0x68, 0x5f, 0x10, 0x6c, 0x10, 0xdf, 0x02, 0x36, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xbb, 0xa1, 0xe1, 0xd7, 0x82, 0x60, 0x83, 0x28, 0x25, 0x03, 0x39, 0x68, 0xda, 0x74, 0xe5, 0x90, 0x3a, 0x38, 0x0e, 0x1d, 0x62, 0x78, 0x3c, 0x3e, 0x1e, 0x2f, 0x08, 0x36, 0x78, 0x41, 0x42, 0xc2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x1b, 0x1c, 0xae, 0xa4, 0x0f, 0x8d, 0x5a, 0x8e, 0xc7, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0x44, 0xd5, 0x74, 0xcd, 0x20, 0xd8, 0x60, 0x05, 0x32, 0xd0, 0xc1, 0xfb, 0x9d, 0x11, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x01, 0xe7, 0xff, 0xae, 0x83, 0xe1, 0x1f, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x3d, 0x78, 0xc3, 0x3c, 0xd2, 0x71, 0xe8, 0xe0, 0xb9, 0xcb, 0x08, 0xc7, 0xa1, 0x41, 0xb0, 0x20, 0x19, 0x10, 0xf8, 0x5d, 0x07, 0xc3, 0x3f, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x6a, 0x07, 0xc8, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xb1, 0xc3, 0x7c, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xbd, 0x25, 0xda, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x80, 0xe0, 0xa7, 0x3a, 0x18, 0xfe, 0xb1, 0xc7, 0xa1, 0xe3, 0xd0, 0xc1, 0x08, 0x89, 0x5a, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x05, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x7e, 0xe3, 0xf1, 0xf0, 0x1b, 0x8f, 0x87, 0xdf, 0x78, 0x3c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0xb4, 0x83, 0x89, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x6c, 0x10, 0x8f, 0xdc, 0x33, 0x07, 0x69, 0xa7, 0x26, 0xc7, 0xe3, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x41, 0x64, 0xea, 0x26, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x48, 0x72, 0x6b, 0x1e, 0x7e, 0xe3, 0xf9, 0x18, 0xc4, 0xef, 0x38, 0x34, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x32, 0x75, 0x93, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x0c, 0x42, 0x78, 0x90, 0xf4, 0x8b, 0x7d, 0x1c, 0x3a, 0x68, 0xcf, 0x4e, 0xff, 0x38, 0x34, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0xed, 0x60, 0xa2, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x60, 0xe4, 0x3f, 0x2c, 0x0e, 0x82, 0x05, 0xc9, 0x40, 0x90, 0x0e, 0x8e, 0x59, 0xc5, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0x62, 0xd1, 0x86, 0xac, 0xdd, 0x86, 0x1e, 0x42, 0x1b, 0x3a, 0x86, 0x1d, 0x0c, 0xfc, 0x90, 0xe3, 0xd0, 0xf1, 0x78, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0x82, 0x85, 0xdf, 0x78, 0x3c, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x20, 0xd8, 0x20, 0x16, 0x13, 0x94, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x44, 0xa6, 0x6e, 0xd2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x24, 0xb7, 0xe6, 0xe1, 0x37, 0x9e, 0x8f, 0x41, 0x7c, 0x8e, 0x43, 0x07, 0xed, 0xd9, 0xe9, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0xcf, 0xb1, 0xa3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x0f, 0xde, 0x19, 0xaf, 0x71, 0x1c, 0x3a, 0x68, 0xcf, 0x4e, 0x7f, 0x10, 0x2c, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x05, 0xc1, 0x06, 0xb1, 0x98, 0xa0, 0x34, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x32, 0x75, 0x93, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x0c, 0x02, 0x74, 0x10, 0xc9, 0x0a, 0x4a, 0xc7, 0xa1, 0x83, 0xf6, 0xec, 0xf4, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xc4, 0xe7, 0xd8, 0xd1, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0x20, 0x71, 0xb6, 0xf9, 0x38, 0x74, 0xd0, 0x9e, 0x9d, 0xfe, 0xc1, 0x5a, 0x98, 0x92, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x1b, 0xc4, 0x62, 0x82, 0xd2, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x07, 0x11, 0x9c, 0xa0, 0x74, 0xd0, 0x9e, 0x9d, 0xfe, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x6c, 0x10, 0x99, 0xba, 0x49, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x7e, 0xf0, 0xe8, 0x75, 0x8d, 0x83, 0x74, 0x6d, 0xec, 0xe3, 0xd0, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xc8, 0xd4, 0x4d, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x31, 0x88, 0xf0, 0xf0, 0x1b, 0xcf, 0x0f, 0x5e, 0xa4, 0xaf, 0x71, 0x1c, 0x3a, 0x58, 0x0b, 0x53, 0x72, 0xd0, 0x9e, 0x9d, 0xfe, 0xc1, 0x5a, 0x98, 0x92, 0xe3, 0xd0, 0xc1, 0x5a, 0x98, 0x92, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x68, 0x07, 0x13, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xcb, 0xc2, 0x60, 0x16, 0x07, 0xc1, 0x06, 0x51, 0xf9, 0xa0, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x28, 0x16, 0x6d, 0xc8, 0xda, 0x6d, 0xe8, 0x21, 0xb4, 0xa1, 0x71, 0xd1, 0xc1, 0x91, 0x3e, 0xfe, 0x38, 0x74, 0x3c, 0x1e, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x82, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x08, 0x36, 0x88, 0xa4, 0x0e, 0xa5, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x91, 0xa9, 0x9b, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0xc9, 0xad, 0x79, 0xf8, 0x8d, 0xe7, 0x63, 0x10, 0x8f, 0xe3, 0xd0, 0x41, 0x7b, 0x76, 0xfa, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xe2, 0x73, 0xec, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x31, 0x08, 0xfa, 0x71, 0xe8, 0xa0, 0x3d, 0x3b, 0xfd, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x1b, 0x44, 0x52, 0x87, 0xd2, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xc8, 0xd4, 0x4d, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x31, 0x08, 0xc8, 0x41, 0x24, 0x2b, 0x28, 0x1d, 0x87, 0x0e, 0xda, 0xb3, 0xd3, 0x1f, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0x9f, 0x63, 0x47, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x83, 0x14, 0x0d, 0xe7, 0xe3, 0xd0, 0x41, 0x7b, 0x76, 0xfa, 0x07, 0x6b, 0x61, 0x4a, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x10, 0x6c, 0x10, 0x49, 0x1d, 0x4a, 0x07, 0xf1, 0xda, 0xa1, 0x34, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x32, 0x75, 0x93, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x0c, 0x22, 0x3e, 0xfc, 0xc6, 0xf3, 0x31, 0x88, 0xf9, 0x71, 0xe8, 0xa0, 0x3d, 0x3b, 0xfd, 0x83, 0xb5, 0x30, 0x25, 0xc7, 0xa1, 0x83, 0xb5, 0x30, 0x25, 0x83, 0x60, 0x83, 0xd6, 0xae, 0xf3, 0x0f, 0x5a, 0x68, 0xce, 0x1f, 0x04, 0x0b, 0xbf, 0xf1, 0xfc, 0x20, 0x5a, 0x8d, 0x93, 0x0e, 0x5a, 0x68, 0xce, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x64, 0xe0, 0xfe, 0x3b, 0x1e, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x83, 0xc8, 0xd4, 0x4d, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x90, 0x1a, 0x76, 0x72, 0x90, 0x6e, 0xe0, 0x70, 0x1c, 0x3a, 0x88, 0xb1, 0x1b, 0xa5, 0x83, 0x48, 0xc0, 0x51, 0x3a, 0x58, 0x0b, 0x53, 0xb2, 0x20, 0xd8, 0x60, 0x61, 0x41, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xc8, 0xa6, 0xae, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x1c, 0x24, 0x83, 0x68, 0x90, 0x1e, 0xac, 0x06, 0x20, 0x39, 0x0e, 0x1d, 0x87, 0x56, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x06, 0x8f, 0x42, 0x0e, 0x38, 0x88, 0x78, 0xdc, 0xa4, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x31, 0x1b, 0x9b, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0x36, 0xbf, 0x6b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x44, 0x36, 0x75, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x8b, 0xe3, 0xa0, 0xeb, 0x60, 0x9d, 0x16, 0xc0, 0xf1, 0xed, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x1d, 0x44, 0x2b, 0x6d, 0xd2, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xd8, 0xfc, 0xae, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0xd9, 0xd4, 0x35, 0x07, 0x51, 0x6d, 0x57, 0x74, 0x1c, 0x3a, 0x88, 0x56, 0xda, 0xa4, 0x41, 0xb0, 0xc1, 0x72, 0x53, 0x92, 0xc5, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0xa9, 0x83, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x0f, 0x8e, 0xcc, 0xea, 0x83, 0x60, 0x83, 0x20, 0x8b, 0x5f, 0x1c, 0x04, 0x0b, 0xbf, 0x21, 0x5b, 0x71, 0x10, 0x73, 0x7a, 0x23, 0x07, 0x2b, 0xf1, 0x45, 0x8e, 0xc7, 0xc7, 0xe3, 0x05, 0xc1, 0x06, 0x51, 0x79, 0x74, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0xe0, 0x87, 0x0c, 0xbf, 0xf1, 0x7c, 0x71, 0x90, 0x6d, 0x88, 0xcb, 0x20, 0xd8, 0x20, 0xb6, 0x85, 0x8e, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x83, 0x98, 0xf9, 0x04, 0x39, 0x88, 0x99, 0x4f, 0x90, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0xcd, 0x0f, 0xc4, 0x0f, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0xa2, 0x75, 0x3c, 0x3f, 0x78, 0xbf, 0x33, 0xc2, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x17, 0x24, 0x24, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x0d, 0x86, 0xd4, 0xef, 0x20, 0xd8, 0x20, 0xea, 0x3e, 0x4b, 0x0e, 0x52, 0xfc, 0x1c, 0x8e, 0xc7, 0x07, 0x29, 0x2a, 0x27, 0xc7, 0xa1, 0x83, 0xf7, 0x3b, 0x23, 0x0c, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x78, 0x1a, 0x40, 0xc2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x85, 0xdd, 0x34, 0x07, 0x31, 0xcc, 0x4d, 0x74, 0x1c, 0x3a, 0x78, 0xbf, 0x33, 0xc2, 0x20, 0x58, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xa7, 0x01, 0x24, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x58, 0x3b, 0x38, 0x33, 0xfc, 0xc6, 0xf3, 0x83, 0x96, 0x8d, 0x44, 0x8e, 0x43, 0x07, 0xef, 0x77, 0x46, 0x18, 0x04, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0x9a, 0x76, 0x1d, 0x0c, 0xff, 0xd8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x03, 0x3f, 0x64, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x58, 0x36, 0xab, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x1e, 0xbc, 0xf8, 0x8e, 0xe1, 0x38, 0x74, 0x1c, 0x3a, 0x78, 0xbf, 0x33, 0xc2, 0x71, 0xe8, 0x78, 0x7c, 0x1c, 0x1a, 0x04, 0x1b, 0x2c, 0x37, 0x25, 0x59, 0x1c, 0x7e, 0xe3, 0xf1, 0x20, 0xd8, 0x20, 0x7e, 0x35, 0x8c, 0x06, 0xc1, 0x86, 0x54, 0xcd, 0x41, 0x0b, 0x5d, 0xfa, 0xc7, 0xe3, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x58, 0x27, 0xc5, 0x36, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xc2, 0x6f, 0x3c, 0x1e, 0x04, 0x1b, 0xc4, 0x4c, 0x75, 0xd2, 0x20, 0x19, 0x32, 0x88, 0x16, 0xf6, 0x20, 0x8a, 0xe3, 0x6b, 0x8e, 0x43, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x62, 0xa6, 0x3a, 0xe9, 0x60, 0xd9, 0x86, 0xd4, 0xc1, 0xd2, 0x91, 0x92, 0x83, 0xf6, 0xec, 0xf4, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x04, 0x1b, 0xbc, 0xec, 0x81, 0xe6, 0x20, 0xc5, 0xcf, 0x61, 0xd8, 0x0d, 0x46, 0xbd, 0xe4, 0x06, 0xa9, 0x64, 0xd8, 0xc3, 0x2e, 0x08, 0x36, 0x68, 0xc7, 0xfa, 0xfe, 0x20, 0xad, 0x13, 0x7b, 0xc3, 0xd1, 0x3e, 0xec, 0x82, 0x60, 0x83, 0x76, 0xac, 0xef, 0x0f, 0xd2, 0x6c, 0xb1, 0x37, 0xb4, 0x12, 0x1f, 0x76, 0x41, 0xb0, 0x41, 0x3b, 0xd6, 0xf7, 0x07, 0x09, 0xd2, 0xd8, 0x07, 0x09, 0x0e, 0xd0, 0xc7, 0xe3, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x36, 0x88, 0x27, 0x20, 0xa5, 0x41, 0xb0, 0x41, 0xbc, 0x84, 0x1e, 0x1d, 0xb4, 0x67, 0xa7, 0xbf, 0x20, 0xd8, 0xe0, 0xf5, 0xbd, 0x08, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0xbe, 0x20, 0xd8, 0x20, 0x66, 0xaa, 0x93, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0xff, 0x73, 0x1d, 0x0c, 0x43, 0x9f, 0xe3, 0xd0, 0x20, 0xd8, 0x20, 0x66, 0xaa, 0x93, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x03, 0x6d, 0xb9, 0x0e, 0x86, 0xa1, 0xcf, 0x71, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xa8, 0xb9, 0x4e, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x10, 0x29, 0xd8, 0x49, 0x07, 0x6b, 0xe6, 0x6a, 0x8e, 0x43, 0xc7, 0xa1, 0x05, 0xc1, 0x06, 0xcf, 0x46, 0x0c, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xd0, 0x0e, 0xe0, 0xc9, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xed, 0x60, 0xa2, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xc1, 0xdb, 0xb3, 0x08, 0x0e, 0x56, 0x23, 0xc5, 0x1c, 0x87, 0x8e, 0x43, 0x2b, 0x08, 0x16, 0x17, 0x04, 0x1b, 0x8c, 0xfc, 0x87, 0xc5, 0x61, 0x17, 0x04, 0x1b, 0xb4, 0x63, 0x7d, 0x7f, 0x90, 0x98, 0x63, 0xb2, 0xb0, 0x0b, 0x82, 0x0d, 0xda, 0x93, 0xbe, 0x3f, 0x18, 0xa3, 0x11, 0x0b, 0xbb, 0x20, 0xd8, 0xa0, 0x1d, 0xeb, 0xfb, 0x83, 0x51, 0x9f, 0x71, 0x48, 0xe7, 0x1e, 0x8e, 0xf6, 0xc3, 0x29, 0x76, 0x3c, 0x5e, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x83, 0x78, 0xdb, 0xa8, 0x59, 0x10, 0x6c, 0x10, 0x8d, 0xcc, 0x16, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0x62, 0xd1, 0x06, 0xa3, 0x39, 0xe9, 0x90, 0xaa, 0x39, 0x0e, 0x0d, 0x82, 0x0d, 0xa2, 0x91, 0xd9, 0x62, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x50, 0x2c, 0xda, 0x20, 0xb2, 0x9e, 0x73, 0x0e, 0xa9, 0x9a, 0xe3, 0xd0, 0xb0, 0x0b, 0xbb, 0xb0, 0x0b, 0xbb, 0x20, 0xd8, 0x60, 0x70, 0x57, 0x0e, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x44, 0xf3, 0x20, 0x4e, 0x44, 0x94, 0x8e, 0x43, 0x1b, 0x62, 0x38, 0xec, 0x82, 0x60, 0x83, 0xc1, 0x5d, 0x39, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x10, 0xcd, 0x83, 0x88, 0x01, 0x51, 0x3a, 0x0e, 0x1d, 0xd2, 0xb9, 0x0b, 0xbb, 0x20, 0xd8, 0x20, 0x86, 0x9d, 0x74, 0x0e, 0x56, 0xe2, 0xfe, 0x1c, 0xd2, 0xb9, 0x87, 0xa3, 0x7d, 0x43, 0x0c, 0x87, 0x5d, 0xd8, 0x85, 0xdb, 0x20, 0xdd, 0xb6, 0xf9, 0x20, 0xa4, 0xc0, 0x17, 0x76, 0x41, 0xb0, 0xc1, 0xe0, 0xae, 0x1c, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x68, 0x24, 0x78, 0x10, 0x93, 0x19, 0x4a, 0xc7, 0xa1, 0x43, 0x3a, 0xf7, 0x70, 0xb4, 0x6f, 0x88, 0xe1, 0xb0, 0x0b, 0xbb, 0x70, 0x1b, 0xbc, 0x33, 0x5e, 0xe3, 0x20, 0xa4, 0xc0, 0x17, 0x76, 0x41, 0xb0, 0xc1, 0xe0, 0xae, 0x1c, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x68, 0x24, 0x78, 0x10, 0x6d, 0x14, 0x4a, 0xc7, 0xa1, 0x43, 0x3a, 0xf7, 0x70, 0xb4, 0x1f, 0xd2, 0xb9, 0x0b, 0xbb, 0x20, 0xd8, 0x20, 0x86, 0x9d, 0x74, 0x0e, 0xde, 0x9c, 0x63, 0x73, 0x48, 0xe7, 0x1e, 0x8e, 0xf6, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x60, 0x83, 0xa7, 0x2a, 0x51, 0x1c, 0x1a, 0xb5, 0x0c, 0xbb, 0x41, 0xa2, 0x7b, 0xf7, 0x82, 0x60, 0x83, 0x28, 0xd8, 0xc7, 0x39, 0x18, 0x66, 0xe1, 0xc3, 0x6e, 0x50, 0x3e, 0x0d, 0x2d, 0x08, 0x36, 0x48, 0x1f, 0x27, 0x3a, 0x18, 0x66, 0xe1, 0xc3, 0x6e, 0x50, 0xf2, 0x20, 0x2d, 0x08, 0x36, 0x38, 0x4e, 0xc7, 0x1f, 0x0c, 0xb3, 0xf0, 0x41, 0xb0, 0x20, 0x19, 0x08, 0xca, 0xc1, 0x39, 0xef, 0x78, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xb1, 0xcc, 0x6f, 0x73, 0x90, 0x0e, 0x07, 0x71, 0x90, 0xb8, 0xd0, 0x7c, 0x1c, 0x3a, 0x1e, 0xaf, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x06, 0xf1, 0xb6, 0x51, 0x73, 0x10, 0xfd, 0x74, 0x4a, 0xc3, 0x2e, 0x08, 0x36, 0x18, 0xdc, 0x95, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xd1, 0x3c, 0x88, 0x31, 0x06, 0xa5, 0xe3, 0xd0, 0xc2, 0x2e, 0x08, 0x36, 0x88, 0x61, 0x27, 0x9d, 0x83, 0x11, 0x85, 0x7b, 0x48, 0xe7, 0x1e, 0x8e, 0xf6, 0xe3, 0xf1, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0xc1, 0x39, 0xf8, 0x7b, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x55, 0x73, 0x10, 0x85, 0x0a, 0x4a, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x06, 0xf1, 0xb6, 0x51, 0xb3, 0x41, 0xf4, 0xd3, 0x29, 0x6d, 0x10, 0x87, 0x76, 0x4a, 0x83, 0x60, 0x83, 0x68, 0x64, 0xb6, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0x14, 0x8b, 0x36, 0x88, 0xda, 0xe8, 0x9c, 0x43, 0xaa, 0xe6, 0x38, 0x34, 0xec, 0xc2, 0x2e, 0xec, 0x82, 0x60, 0x83, 0xc1, 0x5d, 0x39, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x10, 0xcd, 0x83, 0x98, 0xac, 0x51, 0x3a, 0x0e, 0x1d, 0xc4, 0xdc, 0x9e, 0xd2, 0x86, 0x18, 0x0e, 0xbb, 0xb0, 0x0b, 0xb7, 0x41, 0x62, 0x87, 0xf3, 0x41, 0x48, 0x81, 0x2f, 0xec, 0x82, 0x60, 0x83, 0xc1, 0x5d, 0x39, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xd0, 0x48, 0xf0, 0x20, 0x2e, 0x60, 0x94, 0x8e, 0x43, 0x87, 0x74, 0xee, 0xe1, 0x68, 0xdf, 0x10, 0xc3, 0x61, 0x17, 0x76, 0xe1, 0x36, 0x88, 0xb0, 0x16, 0xa5, 0x83, 0x90, 0x02, 0x5f, 0xd8, 0x05, 0xc1, 0x06, 0x83, 0xbb, 0x72, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xa1, 0x91, 0xe0, 0x41, 0x24, 0xac, 0x28, 0x1d, 0x87, 0x0e, 0xe9, 0xdc, 0xc3, 0xd1, 0x7e, 0x48, 0xe7, 0x2e, 0xec, 0x82, 0x60, 0x83, 0x18, 0x76, 0xd2, 0x39, 0x38, 0x9c, 0xd3, 0x2f, 0xec, 0x82, 0x60, 0x83, 0x18, 0x76, 0xd2, 0x19, 0x24, 0x43, 0x06, 0xd1, 0x06, 0x8d, 0xb4, 0xa9, 0x1c, 0x87, 0x0e, 0xe9, 0xdc, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x8f, 0xc7, 0x07, 0xa7, 0x15, 0xdc, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x6e, 0x58, 0xdf, 0xdb, 0x10, 0xc3, 0x61, 0x17, 0x04, 0x0b, 0x92, 0x81, 0xe3, 0xef, 0x90, 0x5c, 0x3a, 0x34, 0x6a, 0x59, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0x08, 0x36, 0x78, 0x50, 0x04, 0xcd, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x6f, 0xe8, 0x4f, 0x7e, 0xb0, 0xa6, 0x4a, 0xe5, 0x90, 0xaa, 0x39, 0x0e, 0x1d, 0x8f, 0x0f, 0x47, 0xfb, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x83, 0x68, 0xae, 0xaf, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0xd5, 0x0c, 0xbf, 0xf1, 0x7c, 0x90, 0x0c, 0xa4, 0xbf, 0x0e, 0xc9, 0xa5, 0xe3, 0xd0, 0xf1, 0x78, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0xbf, 0xf1, 0x78, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x58, 0x10, 0x6c, 0xf0, 0x44, 0xee, 0x80, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0xfc, 0xc6, 0xe3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0xa2, 0x7f, 0xb8, 0x66, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x2d, 0xae, 0x44, 0x0d, 0x92, 0x81, 0xe2, 0x37, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x17, 0x5c, 0x0c, 0xc1, 0x0a, 0x2e, 0x87, 0xf4, 0x70, 0x8a, 0x6d, 0xf0, 0xd2, 0x61, 0x91, 0x15, 0xdc, 0x0d, 0xd1, 0x1a, 0xbc, 0x51, 0xc1, 0xe3, 0x70, 0x8a, 0xd5, 0x71, 0x68, 0xf8, 0x8d, 0xe7, 0x07, 0x0d, 0xbc, 0xa2, 0x1f, 0x87, 0x0e, 0xd6, 0xc2, 0x94, 0x0c, 0x82, 0x0d, 0x5a, 0xbb, 0xce, 0x3f, 0x58, 0x0b, 0x53, 0x32, 0x08, 0x16, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x10, 0xb8, 0x5c, 0x07, 0xc3, 0xd0, 0xe7, 0x60, 0x2d, 0x4c, 0xc9, 0x20, 0xd8, 0x20, 0x4e, 0x70, 0x94, 0x0e, 0xd6, 0xc2, 0x94, 0x1c, 0x34, 0x6f, 0x9d, 0x7f, 0xd0, 0xfe, 0xfc, 0xd2, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0x1c, 0x78, 0xb2, 0xf2, 0x60, 0x34, 0x0b, 0x1c, 0x8f, 0x87, 0x5f, 0x10, 0x2c, 0x2e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x6c, 0x10, 0x95, 0x0f, 0x4a, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0x62, 0xd1, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xa9, 0xdd, 0x1e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xd6, 0xb5, 0x8d, 0x1d, 0x1c, 0xb4, 0x7a, 0x8f, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0xe2, 0x41, 0xab, 0x3b, 0x4f, 0x83, 0x60, 0x41, 0xb0, 0x41, 0x64, 0xc8, 0x88, 0x1c, 0xa4, 0xc3, 0x41, 0x0c, 0x82, 0x0d, 0x89, 0xa9, 0x41, 0xb0, 0x38, 0xec, 0xc2, 0x1d, 0x34, 0xfd, 0xd3, 0xb4, 0x20, 0x58, 0x90, 0x0c, 0x04, 0xe9, 0xe0, 0x5c, 0x7f, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x28, 0x16, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xf0, 0x12, 0x55, 0x80, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x37, 0x48, 0x8b, 0xa2, 0x59, 0x10, 0x6c, 0x10, 0x3d, 0x29, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x7e, 0x78, 0xac, 0xe0, 0x60, 0xf0, 0x4e, 0x1e, 0x87, 0x0e, 0x7b, 0x85, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0x58, 0x10, 0x6c, 0x10, 0xe9, 0xed, 0x16, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0x62, 0xd1, 0x06, 0x89, 0x7a, 0x15, 0x07, 0x83, 0x77, 0xf2, 0x38, 0x34, 0xec, 0xc2, 0x2e, 0x08, 0x36, 0x38, 0x72, 0x2a, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xa4, 0x0e, 0x0e, 0x62, 0xd8, 0xd5, 0xe6, 0x38, 0xb4, 0xb0, 0x0b, 0xbb, 0x70, 0x1b, 0x87, 0x0e, 0xd2, 0xa2, 0x68, 0x0e, 0xeb, 0x9b, 0x0b, 0xbb, 0xb0, 0x0b, 0xb7, 0x71, 0xe8, 0x20, 0xb9, 0x83, 0xf9, 0xb0, 0xbe, 0xb9, 0xb0, 0x0b, 0xbb, 0x70, 0x1b, 0x87, 0x0e, 0xd2, 0x1d, 0x9a, 0x0f, 0xeb, 0x9b, 0x87, 0x74, 0xee, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x87, 0xa3, 0x7d, 0x83, 0x24, 0x30, 0xed, 0x41, 0xb0, 0xb0, 0x1b, 0x24, 0x21, 0x62, 0x2f, 0x06, 0xcf, 0xe5, 0x0e, 0xbb, 0x70, 0x1b, 0xa4, 0x45, 0xd1, 0x1c, 0x87, 0x36, 0x78, 0xea, 0xd1, 0xda, 0xb0, 0x0b, 0xb7, 0x41, 0x72, 0x07, 0xf3, 0x71, 0x68, 0x31, 0x78, 0x2e, 0x6e, 0x90, 0x6d, 0x68, 0xbe, 0x3e, 0x08, 0x36, 0x88, 0x4a, 0x6a, 0xa4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xab, 0xaa, 0x71, 0x36, 0x78, 0xc3, 0x3c, 0xd2, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc2, 0x2f, 0x48, 0x06, 0xa3, 0x83, 0x73, 0xde, 0xf1, 0x20, 0xd8, 0x20, 0x0d, 0x07, 0x7e, 0x90, 0x0c, 0x39, 0x88, 0x5f, 0x39, 0xa4, 0x83, 0x81, 0x2d, 0x7a, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf9, 0xc6, 0xa1, 0x05, 0xc1, 0x06, 0x51, 0x98, 0x1e, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x28, 0x16, 0x2d, 0xfc, 0xc6, 0xf3, 0x0d, 0x6b, 0xbf, 0x83, 0x60, 0x83, 0xe4, 0xd3, 0x94, 0xc3, 0xfa, 0xc4, 0x41, 0xe1, 0x96, 0x74, 0x1c, 0x3a, 0x18, 0x6f, 0x3a, 0x83, 0x68, 0x61, 0x37, 0x88, 0xdc, 0x9f, 0x99, 0x83, 0xc8, 0xfd, 0x99, 0x39, 0x24, 0x97, 0x8e, 0x6f, 0xc7, 0xe3, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0xec, 0x86, 0x3c, 0xd6, 0x1a, 0x2c, 0x6f, 0x32, 0x3a, 0x8c, 0xcb, 0xb0, 0x0b, 0xb7, 0xc1, 0x39, 0x72, 0xf7, 0x60, 0xfc, 0x74, 0x2d, 0xec, 0x06, 0xa5, 0x2f, 0xd8, 0x8a, 0xc1, 0x6f, 0x75, 0x87, 0x71, 0x19, 0x7e, 0x41, 0xb4, 0x20, 0xdd, 0x60, 0xc9, 0x2e, 0xce, 0x61, 0x5c, 0x8e, 0xc7, 0x83, 0x60, 0x71, 0xf8, 0x05, 0xd1, 0x82, 0xf5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x84, 0x07, 0xa9, 0xeb, 0x03, 0xc7, 0xf3, 0xe3, 0xf1, 0xb0, 0x1b, 0xac, 0xe4, 0xfa, 0x5a, 0x83, 0x35, 0x80, 0x38, 0x87, 0x7c, 0xed, 0x20, 0x19, 0x32, 0x88, 0x16, 0x34, 0x1f, 0x1c, 0xc4, 0xbb, 0x07, 0xd1, 0x82, 0xf5, 0x06, 0x09, 0x64, 0xd0, 0x87, 0x7c, 0xed, 0xf1, 0xf8, 0xf8, 0x36, 0xec, 0xc2, 0x6d, 0x90, 0xb6, 0x40, 0x7d, 0x30, 0x7e, 0xba, 0x56, 0xd8, 0x0d, 0x86, 0x66, 0xd7, 0x06, 0x51, 0xf7, 0x9c, 0x74, 0x10, 0x45, 0xcc, 0x49, 0x87, 0x71, 0x19, 0x76, 0x83, 0x13, 0xca, 0xf4, 0x06, 0x4d, 0x5e, 0x45, 0x0d, 0xbb, 0x70, 0x1b, 0xac, 0xd1, 0x56, 0x38, 0x18, 0x3f, 0x5d, 0x2b, 0x08, 0x36, 0x18, 0x09, 0x38, 0x07, 0x03, 0xbd, 0xec, 0x30, 0x2e, 0x83, 0x6c, 0x0d, 0xed, 0xd7, 0x87, 0xdb, 0x60, 0x0d, 0x0a, 0xd0, 0xc1, 0xf8, 0xe9, 0x1a, 0x04, 0x0b, 0x82, 0x0d, 0x5a, 0x2a, 0x18, 0x18, 0x24, 0x03, 0xe1, 0x3a, 0x18, 0xfe, 0x65, 0xc3, 0x6e, 0x30, 0xea, 0x25, 0x57, 0x0c, 0x7e, 0xaf, 0x3f, 0xe4, 0x6b, 0x87, 0x5f, 0x10, 0x2d, 0x58, 0x6f, 0xb0, 0x5c, 0x25, 0xe7, 0x90, 0xaf, 0x3d, 0x1e, 0x0f, 0x82, 0xc5, 0xe1, 0x17, 0x44, 0x0b, 0xda, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xcd, 0xae, 0x0d, 0x12, 0x52, 0xee, 0x17, 0x04, 0x1b, 0x24, 0xc7, 0x3b, 0x1c, 0x24, 0x1b, 0x1a, 0x1c, 0xd6, 0x7e, 0x0f, 0xc9, 0xa5, 0xe3, 0xf1, 0xb0, 0x1b, 0x76, 0x0d, 0xd6, 0x60, 0xa9, 0x13, 0xce, 0x61, 0xed, 0x77, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xda, 0x37, 0x48, 0x20, 0x83, 0x3e, 0xac, 0xfd, 0x1e, 0x14, 0x35, 0x67, 0xc7, 0xb7, 0xe3, 0xf1, 0x41, 0xc9, 0xd0, 0x34, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x07, 0xbe, 0xcc, 0x3d, 0x18, 0xcd, 0x02, 0xc7, 0xe3, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0xb8, 0xc1, 0x13, 0x9c, 0xc1, 0x0e, 0xd6, 0x84, 0xef, 0x1c, 0x8f, 0x07, 0xc1, 0x06, 0x4f, 0xba, 0x00, 0x5b, 0x5c, 0xd8, 0x85, 0xdb, 0xe0, 0x11, 0x37, 0x56, 0x87, 0x46, 0x82, 0x1b, 0xbc, 0x0a, 0xa1, 0x6d, 0xd8, 0x85, 0xdb, 0xe0, 0x51, 0x3d, 0x56, 0x87, 0x46, 0x82, 0x1b, 0xbc, 0xdc, 0xa1, 0x6d, 0xd8, 0x85, 0xdb, 0xe0, 0x91, 0x43, 0x56, 0x87, 0x46, 0x82, 0x1b, 0xbc, 0xaa, 0xa2, 0x6d, 0xd8, 0x85, 0xdb, 0xa0, 0x65, 0x29, 0xfb, 0x43, 0x23, 0xc1, 0x0d, 0x9e, 0xb5, 0xd1, 0x36, 0xec, 0xc2, 0x6d, 0xf0, 0xbe, 0x26, 0xab, 0x43, 0x23, 0xc1, 0x0d, 0x1e, 0x18, 0xd2, 0x36, 0xec, 0xc2, 0x6d, 0xf0, 0xde, 0x29, 0xab, 0x43, 0x23, 0xc1, 0x0d, 0x1e, 0xe6, 0xd2, 0x36, 0xec, 0x06, 0x0f, 0x75, 0xd5, 0xda, 0xe0, 0x89, 0x34, 0x6d, 0x83, 0x6c, 0x0d, 0xed, 0xd7, 0x87, 0xdb, 0xe0, 0x25, 0x33, 0x56, 0x87, 0x46, 0x82, 0x07, 0xaf, 0x24, 0x68, 0x5b, 0x10, 0x6c, 0xd0, 0xf2, 0x27, 0xfa, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe1, 0x37, 0x38, 0x38, 0xa3, 0x1f, 0x9c, 0x9f, 0x68, 0x0f, 0x69, 0xb8, 0xe3, 0xd0, 0x82, 0x60, 0x83, 0xe6, 0xf1, 0x47, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xd0, 0xe2, 0x4a, 0xd4, 0x20, 0x19, 0x08, 0xd7, 0xa1, 0x3f, 0xd1, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0xb0, 0x1b, 0x8c, 0x5e, 0xac, 0x0d, 0x06, 0x0d, 0xc6, 0xe1, 0x14, 0x3b, 0x1e, 0x1f, 0x87, 0x0e, 0x46, 0x66, 0xef, 0xf1, 0x78, 0xf8, 0x05, 0xc1, 0x86, 0x73, 0x7d, 0x71, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0x08, 0x16, 0x87, 0xdd, 0xb0, 0x16, 0xba, 0x21, 0x5f, 0x3b, 0x08, 0x36, 0x68, 0xfc, 0x33, 0xe4, 0xa0, 0x94, 0x6e, 0x3b, 0xbe, 0x1d, 0x8f, 0x57, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0xbb, 0x21, 0x8f, 0xb5, 0x61, 0x5c, 0x86, 0x5f, 0x10, 0x2d, 0x48, 0x0f, 0xca, 0x71, 0xad, 0xe3, 0xf1, 0x20, 0xd8, 0x60, 0xe1, 0xab, 0xd7, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xa4, 0xbb, 0xef, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x0f, 0xda, 0x03, 0xbd, 0x3f, 0x0e, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x8e, 0x83, 0xf6, 0x83, 0x56, 0x77, 0x9e, 0x8e, 0x6f, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x90, 0x0c, 0x66, 0x83, 0x68, 0x41, 0x78, 0x38, 0xda, 0x0f, 0xc9, 0xa5, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xcd, 0x6c, 0x04, 0x6c, 0x90, 0xe0, 0x44, 0x33, 0xfc, 0xc6, 0xf3, 0x61, 0x37, 0x28, 0x7d, 0xc1, 0x36, 0x8c, 0xcb, 0x06, 0x09, 0x65, 0x27, 0x87, 0x71, 0x39, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0x05, 0xd9, 0x86, 0xb8, 0x0c, 0x82, 0x0d, 0x56, 0xd9, 0xfd, 0x0f, 0x92, 0x81, 0xe9, 0x1b, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0xa8, 0x7f, 0x07, 0xc3, 0x51, 0x7a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x71, 0xc0, 0x0f, 0x93, 0x2b, 0x0b, 0x37, 0x7c, 0x51, 0x33, 0xf0, 0x62, 0xf2, 0x06, 0xab, 0xe4, 0x48, 0x07, 0x78, 0xc7, 0xde, 0xda, 0xda, 0xc2, 0xdc, 0xc8, 0x01, 0x9e, 0xb2, 0x36, 0xb1, 0x32, 0x72, 0xe0, 0xd1, 0xe4, 0x0d, 0x9a, 0xff, 0xfd, 0xdc, 0xe0, 0xc5, 0x27, 0x96, 0x03, 0x7c, 0x6b, 0x65, 0x79, 0x67, 0x65, 0xee, 0x06, 0x0b, 0xd7, 0xb0, 0x37, 0x78, 0x58, 0x88, 0xc8, 0x00, 0x0f, 0x5c, 0x98, 0x5c, 0x58, 0xbb, 0xc1, 0x33, 0x78, 0x05, 0x37, 0x78, 0x7c, 0x89, 0xdf, 0x80, 0x77, 0x27, 0x26, 0x77, 0x1c, 0x3a, 0x0e, 0x0d, 0x82, 0xc5, 0x83, 0xc7, 0x22, 0x69, 0x2c, 0x0e, 0xbb, 0xb0, 0x1b, 0xa4, 0x1d, 0xfd, 0x2c, 0xec, 0xc2, 0x6d, 0x88, 0xe1, 0x41, 0x9b, 0x00, 0x01, 0x0b, 0xbb, 0xc1, 0xaa, 0x9a, 0xa0, 0x85, 0x5d, 0xd8, 0x85, 0x1e, 0xb4, 0x49, 0x47, 0xb2, 0x70, 0x1b, 0x62, 0x38, 0x41, 0x10, 0x0f, 0x47, 0xfb, 0xc2, 0x6d, 0x88, 0xe1, 0x41, 0x83, 0x0a, 0x01, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x1f, 0x8e, 0xf6, 0xc3, 0xd1, 0xbe, 0x20, 0xd8, 0x20, 0xfd, 0x4b, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x04, 0x53, 0x7c, 0xc8, 0xd7, 0x1e, 0x87, 0x06, 0xc1, 0x06, 0x6d, 0x02, 0x04, 0x0c, 0xbf, 0x20, 0x5a, 0x70, 0x7e, 0xd8, 0x0d, 0xc9, 0x8e, 0x0d, 0x31, 0x1c, 0x76, 0xe1, 0x36, 0x78, 0x63, 0x90, 0xc0, 0x71, 0x68, 0x43, 0x0c, 0x87, 0x5d, 0xb8, 0x0d, 0x9e, 0xe1, 0x23, 0x70, 0x1c, 0x3a, 0xa4, 0x73, 0x8f, 0xc7, 0x83, 0x60, 0x41, 0xb0, 0x41, 0xac, 0x36, 0xdc, 0x1c, 0x0c, 0x6c, 0xd1, 0x41, 0xb0, 0xc1, 0x8b, 0xe2, 0x77, 0x36, 0x48, 0x3f, 0xb5, 0x18, 0x04, 0x1b, 0xbc, 0x34, 0x4c, 0x6e, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x55, 0x33, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xb0, 0x0b, 0xbb, 0xc1, 0x68, 0xeb, 0x5c, 0xd8, 0x85, 0xdd, 0x60, 0x18, 0xc3, 0x6e, 0x88, 0xe1, 0xb0, 0x0b, 0xbb, 0x41, 0x11, 0xd9, 0xb4, 0x20, 0x58, 0x90, 0x0c, 0xaa, 0x0e, 0x82, 0x9c, 0xff, 0x60, 0x98, 0x85, 0x1f, 0x8e, 0xf6, 0x43, 0x3a, 0xf7, 0x90, 0xce, 0x3d, 0x1c, 0xed, 0x6b, 0x90, 0x50, 0x76, 0xb2, 0x41, 0x8a, 0x26, 0xf3, 0x06, 0x89, 0x4a, 0xcf, 0x87, 0xc4, 0xcc, 0x06, 0x89, 0x4a, 0xcf, 0x83, 0x60, 0x83, 0x93, 0x0f, 0xf4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x92, 0x53, 0x62, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xd5, 0x9f, 0x12, 0x83, 0x60, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x7c, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x71, 0x1c, 0x94, 0x1f, 0xac, 0x68, 0xe4, 0x3a, 0xbe, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x1c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xd8, 0x2b, 0x1c, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x1c, 0x0f, 0x16, 0x2f, 0x00, 0x1d, 0xdf, 0x0e, 0x86, 0x31, 0xec, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x0d, 0xbb, 0x61, 0x7d, 0x6f, 0xe3, 0xd0, 0x06, 0x09, 0x65, 0x27, 0x83, 0x60, 0x83, 0xf7, 0x29, 0x3f, 0x1d, 0x0c, 0x4e, 0x9f, 0xe3, 0xd0, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0xec, 0x86, 0xf8, 0x2f, 0x08, 0x36, 0x58, 0xf8, 0xea, 0x75, 0x48, 0xb4, 0x0e, 0x82, 0x05, 0xc1, 0x06, 0xa9, 0xdd, 0x1e, 0x87, 0x34, 0xdc, 0x20, 0x58, 0x1c, 0x76, 0xc3, 0xfa, 0xde, 0x86, 0xb5, 0xdf, 0x41, 0x32, 0x64, 0x10, 0x2d, 0x68, 0x1f, 0x76, 0xe1, 0x36, 0x48, 0x8b, 0xa2, 0x39, 0x44, 0x73, 0x0d, 0x92, 0x9c, 0xa3, 0x37, 0x28, 0x22, 0x25, 0x37, 0x38, 0xe9, 0xed, 0x6e, 0xb0, 0x06, 0x05, 0x68, 0x83, 0x12, 0x28, 0x72, 0x83, 0x94, 0x73, 0x92, 0xc3, 0xda, 0xef, 0xb0, 0x0b, 0xb7, 0x41, 0x92, 0x73, 0xf4, 0x21, 0x9a, 0x6b, 0x90, 0xe4, 0x1c, 0xbd, 0xc1, 0x39, 0x72, 0x77, 0x83, 0x55, 0xdd, 0x0b, 0x1b, 0x94, 0x22, 0x92, 0x07, 0xd1, 0xcb, 0xb1, 0x34, 0xec, 0x06, 0x69, 0x64, 0xcc, 0x6b, 0x90, 0xe4, 0x1c, 0xbd, 0xc1, 0xc2, 0x7a, 0x9c, 0x0d, 0x1e, 0x48, 0xfa, 0xb5, 0x41, 0x2a, 0x42, 0xf5, 0x41, 0xf4, 0x72, 0x2c, 0x0d, 0xbb, 0x70, 0x1b, 0xa4, 0x9f, 0x5a, 0x1c, 0xa2, 0xb9, 0x06, 0x49, 0xce, 0xd1, 0x1b, 0xac, 0x63, 0x06, 0x3b, 0x88, 0x3e, 0x8e, 0xa5, 0x61, 0x17, 0x6e, 0x83, 0x44, 0xa5, 0xe7, 0x43, 0x34, 0xd7, 0x20, 0xc9, 0x39, 0x7a, 0x83, 0x36, 0xb8, 0x06, 0x0e, 0xa2, 0x8f, 0x63, 0x69, 0x90, 0x6d, 0x68, 0xbe, 0x7e, 0x30, 0x94, 0x48, 0x0e, 0x8a, 0x9a, 0xb3, 0xe3, 0xdb, 0xf1, 0x78, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0xb0, 0x1b, 0xba, 0x66, 0x2e, 0x08, 0x36, 0x78, 0xe1, 0x92, 0xc0, 0xa1, 0x51, 0xcb, 0x20, 0xd8, 0x60, 0xe1, 0xab, 0xd7, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x5e, 0xb8, 0x24, 0x70, 0x48, 0xc3, 0x0d, 0xbf, 0xf1, 0x7c, 0x83, 0x84, 0x94, 0xfb, 0x83, 0x88, 0x7d, 0x28, 0x3a, 0x0e, 0x1d, 0x8f, 0x8f, 0xc7, 0x83, 0x60, 0x83, 0x82, 0x5a, 0x6c, 0x71, 0x10, 0x6c, 0x10, 0xdd, 0x01, 0x33, 0x07, 0x07, 0xad, 0xde, 0xe3, 0xf1, 0xf1, 0x78, 0x0c, 0x46, 0x73, 0x99, 0x05, 0x78, 0xe8, 0xd2, 0xe8, 0xd8, 0xca, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0xf0, 0x92, 0xea, 0x89, 0xe8, 0x49, 0x07, 0x44, 0xae, 0xcc, 0x2c, 0x6c, 0x8c, 0xee, 0x4d, 0x0e, 0x84, 0xee, 0x0d, 0x64, 0x0e, 0x2d, 0x4c, 0xae, 0x0c, 0x04, 0x2d, 0xed, 0x0c, 0xad, 0x85, 0xad, 0xcc, 0xae, 0x8c, 0x0d, 0xe4, 0x2c, 0x8c, 0xae, 0x6c, 0x0e, 0x84, 0x2d, 0x6d, 0xad, 0x0c, 0x64, 0x65, 0x2e, 0x0c, 0xef, 0x6d, 0x83, 0x52, 0x42, 0x7c, 0x0d, 0x4a, 0x16, 0xf6, 0x59, 0x66, 0x0d, 0xa2, 0x9c, 0x55, 0x66, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x17, 0xf2, 0xc2, 0x6c, 0xf0, 0x16, 0x3f, 0x95, 0x0d, 0xde, 0xc2, 0xd4, 0xb2, 0x41, 0x12, 0x8f, 0xe8, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xee, 0xd0, 0xde, 0x83, 0xb6, 0xad, 0xc7, 0xdb, 0x60, 0x8d, 0x54, 0xd3, 0x06, 0x6d, 0x5b, 0x8f, 0x6f, 0x78, 0x50, 0x72, 0x83, 0xb4, 0xef, 0xa8, 0x0d, 0x4e, 0xec, 0x37, 0x1b, 0x9c, 0x0d, 0x5d, 0x36, 0x38, 0xb1, 0xdf, 0x6c, 0x70, 0x36, 0x74, 0xd9, 0xf0, 0x6e, 0xcf, 0x06, 0x2f, 0x8a, 0x86, 0xd9, 0xe0, 0x2c, 0x2b, 0xb5, 0xc1, 0x23, 0x2d, 0x55, 0xd6, 0xf0, 0xc6, 0xdd, 0xc1, 0x93, 0x19, 0x62, 0xd6, 0xf0, 0x17, 0xcd, 0x06, 0x4f, 0x09, 0x0e, 0xd9, 0xf0, 0x8b, 0xcb, 0x1a, 0x7e, 0x71, 0xd9, 0xe0, 0xc5, 0x31, 0x29, 0x6b, 0x78, 0xe3, 0x6e, 0xc3, 0xcb, 0x77, 0x07, 0x51, 0xce, 0x2a, 0x73, 0xf0, 0xc2, 0x94, 0x95, 0x35, 0x38, 0xba, 0x0e, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0xe4, 0xa6, 0x6f, 0xb0, 0x7c, 0xed, 0x75, 0x0d, 0x6f, 0xeb, 0x1c, 0x3c, 0x3b, 0x15, 0xa6, 0xea, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x0d, 0x4a, 0x09, 0xf1, 0x35, 0x28, 0x59, 0xd8, 0x67, 0x99, 0x35, 0x78, 0x1e, 0xdc, 0xef, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0xc1, 0xf3, 0xe0, 0x7e, 0x37, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x9f, 0x43, 0x4b, 0x83, 0x03, 0xb9, 0x4b, 0x23, 0xa3, 0x43, 0x03, 0x19, 0x63, 0x0b, 0x9b, 0x9b, 0xdb, 0x20, 0xd8, 0x4c, 0xd7, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0xc1, 0x3b, 0xe1, 0x40, 0xd7, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0xdd, 0x41, 0x1c, 0xcc, 0xca, 0xac, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x08, 0xa7, 0x95, 0x59, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0xb1, 0x6b, 0x2b, 0xb3, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0xa2, 0x0f, 0x56, 0xa6, 0x15, 0xf0, 0xc7, 0xd8, 0xc2, 0xdc, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xe8, 0x02, 0x5a, 0x6a, 0x00, 0xbf, 0x39, 0xb4, 0x34, 0x38, 0x10, 0xba, 0x37, 0x10, 0xb9, 0x30, 0xb7, 0xb5, 0x0d, 0xbf, 0x28, 0x6d, 0x10, 0xd3, 0x30, 0x4b, 0x1b, 0xfe, 0xa2, 0xd9, 0xe0, 0x3d, 0x33, 0xc1, 0x1b, 0x14, 0xa4, 0xb1, 0x1b, 0x9c, 0x85, 0x4c, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x45, 0xf1, 0xef, 0x06, 0x45, 0xa5, 0xf8, 0x41, 0xf4, 0xe1, 0x2c, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0xe2, 0x77, 0x83, 0xd4, 0x4c, 0xd8, 0x83, 0x82, 0x78, 0x7c, 0x0d, 0x6f, 0xdc, 0x1d, 0x44, 0x42, 0xcf, 0xd2, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x06, 0x01, 0xcb, 0x7a, 0x90, 0x9a, 0x09, 0xbb, 0x86, 0x37, 0xee, 0x0e, 0x22, 0xb7, 0x67, 0x69, 0xc3, 0x07, 0x39, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x17, 0xbf, 0x1b, 0xa4, 0x66, 0xc2, 0x1e, 0x9c, 0x99, 0xdb, 0xd6, 0xf0, 0xc6, 0xdd, 0x41, 0xac, 0xf9, 0x2c, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0xe2, 0x77, 0x83, 0xd4, 0x4c, 0xd8, 0x83, 0xa3, 0xca, 0xdc, 0x1a, 0xde, 0xb8, 0x3b, 0x88, 0x8e, 0x9f, 0xa5, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x8b, 0xdf, 0x0d, 0x52, 0x33, 0x61, 0x0f, 0x8e, 0xae, 0x72, 0x1b, 0xde, 0xb8, 0x3b, 0x88, 0xe7, 0x9f, 0xa5, 0xd5, 0x20, 0xca, 0x59, 0x65, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0xa2, 0x9c, 0x55, 0xa6, 0x01, 0xfe, 0xb0, 0x3a, 0xba, 0x37, 0xb1, 0xb7, 0xb9, 0xb9, 0x0d, 0xbf, 0x28, 0x6d, 0x10, 0xd3, 0x30, 0x4b, 0x1b, 0xfe, 0xa2, 0xd9, 0xa0, 0x6d, 0xeb, 0xf1, 0x0d, 0x0a, 0xd2, 0xd8, 0x0d, 0x56, 0x0f, 0xc9, 0xaf, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x74, 0x01, 0x2d, 0x75, 0x10, 0x7d, 0x38, 0x4b, 0x1b, 0x04, 0xe9, 0xe9, 0x06, 0xab, 0xa3, 0xe4, 0xd7, 0x20, 0xb2, 0x79, 0x96, 0x0e, 0x22, 0x10, 0x67, 0x69, 0x0d, 0x22, 0xb1, 0x67, 0x69, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0x99, 0xb8, 0x07, 0xf1, 0x48, 0xb4, 0xb4, 0x06, 0xb1, 0xe3, 0xb3, 0xb4, 0xe1, 0xdd, 0x9e, 0x0d, 0x8a, 0x4c, 0xdc, 0x0d, 0x4e, 0xcd, 0x6d, 0x07, 0xd1, 0x87, 0xb3, 0xb4, 0x06, 0xd1, 0xee, 0xb3, 0xb4, 0xe1, 0xdd, 0x9e, 0x0d, 0x8a, 0x4c, 0xdc, 0x0d, 0x0e, 0x0b, 0x6c, 0x07, 0xd1, 0x87, 0xb3, 0xb4, 0x06, 0xf1, 0xf9, 0xb3, 0x74, 0x10, 0x2b, 0x54, 0x4b, 0xad, 0x06, 0xcf, 0x36, 0x78, 0xdb, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x78, 0xb6, 0xc1, 0x5b, 0x03, 0x78, 0x84, 0xd5, 0xd1, 0xbd, 0x8d, 0x85, 0xb9, 0xbd, 0xb9, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0x98, 0x86, 0x59, 0xda, 0xf0, 0x17, 0xcd, 0x1a, 0x84, 0x7e, 0xc9, 0x06, 0x21, 0x65, 0xb2, 0x41, 0xdb, 0xd6, 0xe3, 0x6d, 0x50, 0x90, 0xc6, 0x0e, 0x78, 0x64, 0x61, 0xe4, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x44, 0x39, 0xab, 0x4c, 0x07, 0xd1, 0x87, 0xb3, 0xb4, 0xe1, 0x17, 0x97, 0x0d, 0x22, 0x10, 0x67, 0x69, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x0d, 0x22, 0x10, 0x67, 0x69, 0xc3, 0xdb, 0x3a, 0x03, 0x1e, 0x59, 0x18, 0xd9, 0x06, 0x05, 0x45, 0xe6, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0xcf, 0x4e, 0x85, 0x39, 0x88, 0xb6, 0xae, 0xa5, 0x3a, 0x9c, 0x62, 0xb5, 0x86, 0xef, 0xdb, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x83, 0x67, 0x44, 0xa7, 0x1f, 0x9c, 0x0f, 0xce, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0x4c, 0xc3, 0x2c, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0xb6, 0xad, 0xc7, 0x37, 0x28, 0x76, 0x34, 0xd7, 0xf0, 0x89, 0xcd, 0x06, 0xb1, 0x0a, 0xb5, 0xb4, 0x41, 0x31, 0x89, 0xb9, 0x06, 0x4b, 0x31, 0xaa, 0x36, 0x5c, 0x5d, 0x07, 0xd1, 0xee, 0xb3, 0x74, 0xf8, 0x72, 0x72, 0x83, 0x08, 0xc4, 0x59, 0x3a, 0x88, 0x91, 0xad, 0xa5, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x36, 0x28, 0x59, 0xd8, 0x67, 0x99, 0x05, 0xfc, 0xb1, 0x34, 0xba, 0x72, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x20, 0x92, 0xc9, 0x96, 0x1a, 0xc0, 0x4b, 0xae, 0xcc, 0x8d, 0xac, 0x4c, 0x0e, 0x64, 0x0e, 0x2d, 0x0d, 0x6e, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0xbb, 0x43, 0x7b, 0x0f, 0x8e, 0xad, 0xae, 0x1b, 0xfe, 0xa2, 0xd9, 0xe0, 0xa4, 0x27, 0xba, 0x41, 0x41, 0x1a, 0xbb, 0xc1, 0x59, 0xc8, 0x74, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x14, 0xff, 0x1e, 0x44, 0x28, 0xd5, 0xd2, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x2f, 0x7e, 0x37, 0x48, 0xcd, 0x84, 0x3d, 0x08, 0x56, 0xd6, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x62, 0xc6, 0xe0, 0x83, 0xb8, 0xc1, 0x59, 0xda, 0xf0, 0x41, 0xce, 0x06, 0x71, 0x86, 0xb4, 0xb4, 0x06, 0x05, 0x69, 0xec, 0x06, 0x2d, 0x92, 0xf6, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0x33, 0x06, 0x6f, 0xb0, 0x7c, 0xed, 0x75, 0x83, 0xd8, 0xab, 0x5a, 0x6a, 0x83, 0x24, 0x03, 0xc2, 0x0d, 0x4e, 0x04, 0x6d, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x83, 0x85, 0xe0, 0x06, 0xe7, 0x05, 0x9a, 0x35, 0xbc, 0xad, 0x73, 0xd0, 0xea, 0x6e, 0x6f, 0x6b, 0x78, 0x16, 0xef, 0x20, 0xb6, 0xb0, 0x65, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xa7, 0xb7, 0xb8, 0x0d, 0x0e, 0x2b, 0x73, 0x07, 0x11, 0xef, 0xb6, 0xd4, 0x06, 0x27, 0xf6, 0x9b, 0x0d, 0x96, 0x61, 0xbf, 0x6d, 0x50, 0x74, 0x1a, 0x6f, 0xb0, 0xd6, 0xb1, 0x6d, 0x83, 0xa2, 0x52, 0x7c, 0x83, 0xa3, 0xeb, 0xe0, 0x06, 0xeb, 0xd6, 0xe1, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xeb, 0xfb, 0xe1, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x25, 0xd1, 0xec, 0x06, 0x45, 0xa5, 0xf8, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x5e, 0xf3, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x04, 0x4f, 0xed, 0x41, 0x14, 0xa9, 0x2d, 0x75, 0x50, 0x10, 0x8f, 0x1f, 0x44, 0x1f, 0xce, 0x52, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xc5, 0x2b, 0x71, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x92, 0x68, 0x76, 0x83, 0xa2, 0x52, 0x7c, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x82, 0xa7, 0x76, 0x0d, 0xef, 0xf6, 0x6c, 0x78, 0xcd, 0xe7, 0x20, 0x69, 0x48, 0xf6, 0x20, 0x58, 0x59, 0x0f, 0x0a, 0xe2, 0xf1, 0x83, 0xe8, 0xc3, 0x59, 0x6a, 0x83, 0x25, 0x65, 0x73, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xf5, 0xfd, 0x70, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x92, 0x68, 0x76, 0x83, 0xa2, 0x52, 0x7c, 0x83, 0x52, 0x88, 0xfc, 0x20, 0xfa, 0x70, 0x96, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0x5e, 0x89, 0xdb, 0x20, 0x3a, 0xa6, 0x96, 0x6a, 0x35, 0x78, 0xb6, 0xc1, 0xdb, 0x86, 0xe7, 0x49, 0x36, 0x88, 0xd1, 0xab, 0xa5, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x83, 0x08, 0x82, 0x59, 0xda, 0x60, 0x75, 0xc0, 0xd2, 0x06, 0x31, 0x9d, 0xb5, 0xb4, 0xe1, 0x17, 0x97, 0x0d, 0x22, 0x97, 0x66, 0x69, 0x0d, 0x8e, 0xae, 0x83, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x25, 0xb9, 0xe9, 0x1b, 0x2c, 0x5f, 0x7b, 0x3d, 0x78, 0x8e, 0x57, 0xcb, 0x1a, 0x7e, 0x84, 0x39, 0x78, 0x2c, 0x47, 0xf1, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x49, 0x6e, 0xfa, 0xc1, 0x0b, 0x53, 0x56, 0x0e, 0xe2, 0xf6, 0x66, 0xa9, 0xc3, 0x29, 0xb6, 0x80, 0x4f, 0x57, 0x16, 0xd6, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xc4, 0x7c, 0xe0, 0x52, 0x07, 0x6f, 0x6e, 0x62, 0xde, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0x00, 0xcf, 0x84, 0x5c, 0x40, 0xee, 0xd0, 0xde, 0xca, 0xec, 0xca, 0xe4, 0x40, 0xe6, 0xd0, 0xde, 0xea, 0xd8, 0xc8, 0x40, 0xc4, 0xca, 0x40, 0xc2, 0xc4, 0xd8, 0xca, 0x40, 0xe8, 0xde, 0x40, 0xc6, 0xde, 0xdc, 0xe8, 0xe4, 0xde, 0xd8, 0x40, 0xd0, 0xca, 0xe4, 0x40, 0xe6, 0xd0, 0xd2, 0xe0, 0x95, 0x00, 0xf4, 0xa3, 0x43, 0x2b, 0x9b, 0x2b, 0x03, 0xa1, 0xbb, 0x7b, 0x03, 0xa1, 0x43, 0x4b, 0x73, 0x3b, 0x9b, 0x03, 0x09, 0x93, 0x2b, 0x73, 0x3b, 0xa1, 0x03, 0x79, 0x13, 0xb3, 0x4b, 0x7b, 0xab, 0x9b, 0x63, 0xcb, 0x03, 0x29, 0x8b, 0xab, 0x0b, 0x63, 0x03, 0x09, 0x73, 0xcb, 0x6b, 0x7b, 0x93, 0x2b, 0x63, 0x4b, 0x00, 0xba, 0x86, 0xb9, 0x91, 0x81, 0xa4, 0xd1, 0x9d, 0xcc, 0x81, 0xb4, 0xbd, 0xc9, 0x95, 0x81, 0xa4, 0xb5, 0xc1, 0xbd, 0xc9, 0xd1, 0x85, 0xb9, 0xd1, 0x81, 0x98, 0xbd, 0xc9, 0x81, 0xac, 0xd0, 0x95, 0x85, 0xb5, 0x81, 0xd0, 0xbd, 0x81, 0xcc, 0x85, 0xd1, 0xa5, 0xcd, 0x99, 0xe5, 0x81, 0x08, 0x81, 0xd0, 0xa1, 0x85, 0xb9, 0x81, 0x04, 0xb1, 0x25, 0x80, 0xee, 0xb9, 0x37, 0x10, 0xb7, 0xb7, 0x3b, 0x90, 0x15, 0xba, 0xb2, 0xb0, 0x36, 0x10, 0xb5, 0xba, 0x39, 0x3a, 0x90, 0xb6, 0xb2, 0x30, 0xb7, 0x39, 0x10, 0x11, 0xb4, 0x32, 0x39, 0x11, 0xd7, 0x4a, 0x00, 0xda, 0xa2, 0xcc, 0xa1, 0xa5, 0xc1, 0xcd, 0x81, 0x8c, 0x85, 0xb9, 0x81, 0x90, 0x95, 0x99, 0xa5, 0xb9, 0xa5, 0xd1, 0x95, 0xb1, 0xe5, 0x81, 0x88, 0x95, 0x81, 0xd0, 0xc9, 0xd5, 0xcd, 0xd1, 0x95, 0x91, 0x81, 0xd0, 0xbd, 0x81, 0x8c, 0xbd, 0xb9, 0xd1, 0xc9, 0xbd, 0xb1, 0x81, 0xd0, 0xa1, 0x95, 0xb5, 0xcd, 0x95, 0xb1, 0xd9, 0x95, 0xcd, 0xa5, 0xda, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x03, 0x1e, 0x5a, 0x99, 0x7c, 0xd0, 0xb6, 0xf5, 0xf8, 0x41, 0x3c, 0xc3, 0x2c, 0x6d, 0xf8, 0x8b, 0x66, 0xc3, 0x07, 0xab, 0x1b, 0xfe, 0xcd, 0xd9, 0xe0, 0x61, 0x4d, 0xcc, 0x07, 0x11, 0x88, 0xb3, 0xb4, 0x1a, 0xbc, 0xd6, 0x3c, 0x68, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xe0, 0xb5, 0xe6, 0x41, 0x0d, 0xf0, 0xa3, 0x95, 0xc9, 0x81, 0xb4, 0xbd, 0xbd, 0xb9, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0x18, 0x9d, 0x5c, 0xda, 0xf0, 0x17, 0xcd, 0x86, 0x0f, 0x56, 0x37, 0x3c, 0xc2, 0xba, 0x86, 0x7f, 0x73, 0x36, 0x88, 0x81, 0xa5, 0xa5, 0x83, 0x58, 0x85, 0x5a, 0x5a, 0xc3, 0xbf, 0x39, 0x1b, 0x3c, 0xac, 0x89, 0x79, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x71, 0x9c, 0x83, 0x28, 0x67, 0x95, 0xe9, 0x20, 0xfa, 0x70, 0x96, 0x3a, 0x9c, 0x62, 0x6b, 0x10, 0xe5, 0xac, 0x32, 0x1b, 0x9e, 0x27, 0xd9, 0x20, 0x7e, 0x9b, 0x96, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0x2c, 0xf5, 0x2d, 0x6d, 0xb0, 0x3a, 0x60, 0x69, 0x83, 0xb6, 0xad, 0xc7, 0x37, 0xfc, 0xe2, 0xb2, 0x41, 0xe4, 0xd2, 0x2c, 0xad, 0xc1, 0xd1, 0x75, 0x70, 0x83, 0x38, 0xf9, 0x5b, 0x5a, 0xc3, 0x8f, 0x30, 0x07, 0xd1, 0x6a, 0xb3, 0x74, 0x10, 0xaf, 0x80, 0x4b, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0xb6, 0x02, 0x3c, 0x6d, 0x69, 0x6c, 0x6c, 0xf9, 0x06, 0x49, 0x0b, 0x46, 0x1b, 0x94, 0x65, 0xd8, 0x1b, 0x24, 0xf1, 0x88, 0xce, 0x32, 0x0b, 0xf0, 0x84, 0x89, 0xbd, 0xd5, 0xd1, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xb1, 0x14, 0xba, 0xd4, 0x00, 0x9e, 0x2b, 0x2b, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x3a, 0x6d, 0x69, 0x6c, 0x6c, 0x79, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x3e, 0xea, 0xdc, 0xd2, 0xe8, 0x40, 0xe4, 0xca, 0xd8, 0xc2, 0xe8, 0xd2, 0xec, 0xca, 0x40, 0xda, 0xe6, 0xca, 0xc6, 0x36, 0xfc, 0xb9, 0x34, 0xe0, 0xdd, 0xd5, 0xb9, 0x1b, 0x84, 0x7e, 0xc9, 0x06, 0x65, 0x13, 0xe6, 0xc1, 0x81, 0xaf, 0x75, 0xc3, 0x5f, 0x34, 0x1b, 0x9c, 0x37, 0x4f, 0x37, 0x28, 0xe1, 0x31, 0x17, 0xf0, 0xee, 0xea, 0xdc, 0xd6, 0xf0, 0xc6, 0xdd, 0x86, 0x97, 0xef, 0x82, 0x77, 0x7b, 0x37, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0xf8, 0xc2, 0xe4, 0xde, 0xea, 0xdc, 0xc8, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf5, 0x41, 0x24, 0x9e, 0x2e, 0xb5, 0x1a, 0xb4, 0x80, 0x80, 0xb2, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xd0, 0x02, 0x02, 0x4a, 0x03, 0xf8, 0xd6, 0xb9, 0xa5, 0xd1, 0x81, 0xb4, 0xcd, 0x95, 0x8d, 0x81, 0x90, 0xa5, 0x99, 0x99, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x75, 0x6e, 0xe5, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0xd9, 0x84, 0x79, 0x70, 0x4e, 0x6d, 0xdd, 0xf0, 0x17, 0xcd, 0x06, 0xe7, 0xcd, 0xd3, 0x0d, 0x4a, 0x78, 0xcc, 0x05, 0xbc, 0x3a, 0xb7, 0xb2, 0x0d, 0x22, 0xfb, 0x74, 0x69, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x6f, 0x4b, 0x63, 0x63, 0x5b, 0xc3, 0xdb, 0x3a, 0x83, 0xd7, 0x07, 0x51, 0xe8, 0xba, 0xd4, 0x0a, 0xf8, 0x6d, 0x73, 0x65, 0xe3, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x6c, 0xc2, 0x2e, 0x35, 0x80, 0x27, 0x10, 0x99, 0x1c, 0x08, 0xdd, 0x1b, 0x08, 0x50, 0x1d, 0x19, 0x48, 0xdb, 0xdc, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xe1, 0xc1, 0x49, 0xb5, 0x75, 0xc3, 0xd7, 0x2f, 0x1b, 0x1e, 0xbc, 0xd9, 0xf0, 0xf5, 0xcb, 0x86, 0x0f, 0x61, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x28, 0xb0, 0x6e, 0x78, 0x5a, 0x67, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x0a, 0xac, 0x1b, 0xbc, 0xed, 0xcf, 0x7d, 0x83, 0xc5, 0x6c, 0xf5, 0xb5, 0x1a, 0x44, 0xe4, 0xeb, 0xd2, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x44, 0xbe, 0x2e, 0x35, 0x80, 0x47, 0xdb, 0x5c, 0xd9, 0x18, 0x08, 0x59, 0x9a, 0x99, 0xd9, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0xed, 0x7f, 0x74, 0x1e, 0x9c, 0x54, 0x5b, 0x37, 0xfc, 0x45, 0xb3, 0xc1, 0x79, 0xf3, 0x74, 0xc3, 0x07, 0x39, 0x6b, 0xf8, 0x37, 0x67, 0x83, 0x75, 0x9d, 0x6d, 0x07, 0x8d, 0xb1, 0x09, 0xaf, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0xc0, 0x83, 0x69, 0x9b, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x59, 0x6f, 0xbb, 0x41, 0x51, 0x29, 0xbe, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x92, 0x9b, 0xbe, 0x41, 0x22, 0x5c, 0xf0, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0xc4, 0x26, 0xec, 0x52, 0x07, 0x4d, 0xb1, 0x09, 0xb7, 0x86, 0x37, 0xee, 0x36, 0xbc, 0x7c, 0x17, 0x7c, 0xdb, 0xdc, 0xe1, 0x14, 0xab, 0x35, 0x88, 0x74, 0xd4, 0xa5, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x48, 0x47, 0x5d, 0x6a, 0x00, 0x4f, 0xb9, 0x32, 0xb6, 0x30, 0xba, 0x34, 0xbb, 0x32, 0x90, 0xb6, 0xb9, 0xb2, 0xb1, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0xcf, 0xa5, 0x01, 0xef, 0xae, 0xcc, 0x3d, 0x38, 0xf2, 0xb5, 0x6e, 0xf8, 0x8b, 0x66, 0x83, 0xf3, 0xe6, 0xe9, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x1a, 0xde, 0xd6, 0x39, 0x78, 0x41, 0x75, 0xcc, 0x41, 0xba, 0xeb, 0xe6, 0x1a, 0xde, 0xb8, 0xdb, 0xf0, 0xf2, 0xdd, 0x41, 0x02, 0xe1, 0xe6, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x6f, 0x14, 0x37, 0x88, 0x61, 0xe1, 0xa5, 0x83, 0x54, 0xd7, 0xcd, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x59, 0x6f, 0xbb, 0x41, 0x51, 0x29, 0xbe, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x92, 0x9b, 0xbe, 0x41, 0x22, 0x5c, 0xf0, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0xfa, 0x79, 0x97, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x4f, 0x01, 0x0f, 0xa2, 0x9a, 0x78, 0xa9, 0x0e, 0x62, 0xb9, 0x77, 0x69, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0xf5, 0xb6, 0x1b, 0x14, 0x95, 0xe2, 0x1b, 0xac, 0xd9, 0x78, 0x5b, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x24, 0xd9, 0xcd, 0x83, 0x18, 0x16, 0x5e, 0x5a, 0x83, 0x17, 0x54, 0xc7, 0x1c, 0xa4, 0xbb, 0x6e, 0xd6, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x2b, 0xc0, 0x47, 0x96, 0x66, 0x66, 0x56, 0x26, 0x6f, 0x90, 0x7a, 0x51, 0xbc, 0xc1, 0x2a, 0x2c, 0xa7, 0x35, 0xbc, 0xad, 0x73, 0xf0, 0x14, 0xed, 0xba, 0x0d, 0x56, 0x61, 0x39, 0xad, 0xe1, 0x6d, 0x9d, 0x01, 0x3e, 0xb3, 0x37, 0xb9, 0xb6, 0x30, 0xba, 0x0d, 0x4a, 0x16, 0xf6, 0x59, 0x66, 0x0d, 0xa2, 0xbb, 0x68, 0x66, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x20, 0xba, 0x8b, 0x66, 0x1a, 0x80, 0x17, 0xb6, 0x37, 0xb7, 0xb3, 0xb2, 0x39, 0x3a, 0x90, 0xb9, 0x3a, 0xb1, 0xb9, 0xb2, 0xb8, 0xba, 0x32, 0xb7, 0xb1, 0xb2, 0x0d, 0xca, 0x2e, 0xd9, 0x0d, 0xa2, 0xbb, 0x68, 0x66, 0x83, 0x37, 0x0b, 0x9f, 0xcc, 0x06, 0x85, 0x72, 0xe7, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0x2c, 0x4e, 0xcc, 0x3d, 0x28, 0xe8, 0xd9, 0xd7, 0xf0, 0xe7, 0xd2, 0x80, 0x87, 0x56, 0x66, 0x1f, 0x14, 0xf4, 0xec, 0x6d, 0xf8, 0x0a, 0x67, 0xc3, 0xd7, 0x2f, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x43, 0x2b, 0xb3, 0xdb, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0xd9, 0x60, 0x51, 0x73, 0xfe, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xab, 0x8d, 0xeb, 0xd6, 0xf0, 0xb9, 0xcb, 0x06, 0x8b, 0x9a, 0xf3, 0x37, 0x28, 0x04, 0x53, 0x37, 0x08, 0xfd, 0x92, 0x0d, 0x4a, 0xc4, 0xfa, 0x35, 0x08, 0xa0, 0xb3, 0x0d, 0x6f, 0xeb, 0x0c, 0x9e, 0x6e, 0x1c, 0x3a, 0x88, 0x26, 0xea, 0xa5, 0x0d, 0x8e, 0x56, 0x97, 0xb5, 0xe1, 0x2b, 0x9c, 0x0d, 0x5f, 0xbf, 0x6c, 0xb0, 0x68, 0x41, 0x7f, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x68, 0xa2, 0x5e, 0xda, 0x60, 0xd1, 0x82, 0xfe, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x80, 0x77, 0x56, 0x97, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x0a, 0x37, 0xd1, 0x0d, 0xca, 0xa6, 0xfa, 0x0d, 0x16, 0x2d, 0xe8, 0xb7, 0x86, 0xb7, 0x75, 0x06, 0x4f, 0x0f, 0xa2, 0x89, 0x7a, 0xa9, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0xa2, 0x89, 0x7a, 0x69, 0xc3, 0xdb, 0x3a, 0x83, 0xd3, 0x07, 0xd1, 0x44, 0xbd, 0xb4, 0xc1, 0x72, 0x25, 0xbb, 0x35, 0x58, 0xcf, 0xa0, 0xbf, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x4b, 0xde, 0x37, 0x28, 0x5b, 0x50, 0x0f, 0x22, 0x70, 0x7b, 0x69, 0x83, 0x78, 0xe0, 0x5e, 0x5a, 0xc3, 0x2f, 0x2e, 0x1b, 0x2c, 0x46, 0xaf, 0x5b, 0x83, 0x12, 0x1e, 0x73, 0x01, 0xef, 0xac, 0x2e, 0x6f, 0x83, 0x82, 0x22, 0x73, 0xc3, 0xdb, 0x3a, 0x83, 0xd7, 0x07, 0x11, 0x0a, 0xbe, 0x54, 0x6d, 0x50, 0xda, 0x5b, 0xae, 0xe1, 0xcf, 0xa5, 0x01, 0xef, 0xec, 0x0d, 0xdf, 0xf0, 0xb9, 0xd2, 0x06, 0x49, 0x86, 0xc0, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0x78, 0x83, 0xd0, 0x2f, 0xd9, 0xa0, 0x44, 0xac, 0xdf, 0xa0, 0xcc, 0xd2, 0x5d, 0xc3, 0xe7, 0x4a, 0x1b, 0x24, 0x19, 0x02, 0xaf, 0xe1, 0xcf, 0xa5, 0xc1, 0xe3, 0x0d, 0x02, 0xe8, 0xec, 0x20, 0x2e, 0xa8, 0x97, 0xaa, 0x0d, 0x0f, 0x4a, 0x6e, 0xd0, 0x80, 0xf5, 0xf6, 0x86, 0x07, 0x25, 0x37, 0x68, 0x69, 0xc9, 0x6f, 0x83, 0x92, 0x85, 0x7d, 0x96, 0x59, 0x83, 0xc7, 0xb7, 0x04, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x3c, 0xbe, 0x25, 0xa8, 0x01, 0x78, 0x68, 0x2b, 0x93, 0x3b, 0x2b, 0x03, 0x09, 0x63, 0x63, 0x03, 0x69, 0x0b, 0xa3, 0x1b, 0x43, 0x2b, 0x9b, 0xdb, 0xf0, 0x8b, 0xd2, 0x1a, 0xfe, 0x5c, 0xda, 0x60, 0x35, 0x9e, 0xe8, 0xc1, 0xd1, 0xea, 0x72, 0xc3, 0xd7, 0x2f, 0x1b, 0xa4, 0x11, 0x18, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x7a, 0x65, 0xf3, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xab, 0x8d, 0xeb, 0xd6, 0xf0, 0xb9, 0xcb, 0x80, 0xa7, 0x57, 0x36, 0x6f, 0x50, 0x08, 0xa6, 0x6e, 0x10, 0xfa, 0x25, 0x1b, 0x84, 0x94, 0xc9, 0x06, 0xa9, 0x82, 0xc0, 0xb5, 0xe1, 0x2b, 0x9c, 0x0d, 0x5f, 0xbf, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0x4f, 0xaf, 0x6c, 0x6e, 0xc3, 0x07, 0x39, 0x6b, 0xf8, 0x95, 0x6c, 0x0d, 0x8a, 0x49, 0xcc, 0x0d, 0x42, 0xf0, 0xe1, 0x60, 0x2d, 0x9e, 0xe8, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0x8d, 0xe2, 0x06, 0x8b, 0xd1, 0xeb, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf0, 0x80, 0x77, 0xf6, 0x86, 0x57, 0x1b, 0xc4, 0x8e, 0xfb, 0xd2, 0x06, 0xc5, 0x8e, 0xe6, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0x3e, 0xdb, 0x9b, 0xdb, 0xda, 0x06, 0x8b, 0xd1, 0xeb, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xe9, 0xc1, 0x5a, 0x3c, 0xd1, 0xd6, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0x60, 0x2d, 0x9e, 0xe8, 0x86, 0xb7, 0x75, 0x06, 0xa7, 0x0f, 0xd6, 0xe2, 0x89, 0xb6, 0x41, 0xb1, 0xa3, 0xb9, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x80, 0x8f, 0x96, 0xe6, 0xb6, 0x76, 0x10, 0xaf, 0xf2, 0x4b, 0x1b, 0x2c, 0x3f, 0xb2, 0xdb, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0x36, 0x58, 0xae, 0x64, 0xb7, 0x41, 0xe4, 0xcf, 0x2f, 0xad, 0x41, 0xc4, 0xb9, 0x2f, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0xbf, 0xb8, 0x1c, 0xc4, 0xab, 0xfc, 0xd2, 0x06, 0xb1, 0xe3, 0xbe, 0x54, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0xf5, 0xcb, 0x1a, 0x2e, 0xa9, 0x35, 0x24, 0x97, 0x0e, 0x0e, 0xfb, 0x1d, 0x6d, 0x50, 0xc2, 0x63, 0x6e, 0x10, 0x71, 0xee, 0x4b, 0x1b, 0xc4, 0x4c, 0xfe, 0xd2, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0x11, 0xe7, 0xbe, 0xb4, 0xe1, 0x6d, 0x9d, 0xc1, 0xe9, 0x83, 0x88, 0x73, 0x5f, 0x5a, 0x83, 0x28, 0xcb, 0x5f, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xd9, 0xea, 0xdc, 0xc2, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xe9, 0x41, 0xc4, 0xb9, 0x2f, 0xd5, 0x6a, 0x10, 0x57, 0xf2, 0x4b, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0x71, 0x25, 0xbf, 0xd4, 0x00, 0x7c, 0x94, 0xe1, 0xd1, 0x95, 0xb9, 0x91, 0x81, 0x98, 0xa5, 0xd1, 0xcd, 0x81, 0x88, 0xbd, 0xd1, 0xd1, 0xbd, 0xb5, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0x0d, 0x96, 0x22, 0xd7, 0x1d, 0x94, 0x59, 0xba, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x3b, 0x7b, 0xcb, 0x0f, 0xca, 0x2c, 0xdd, 0x36, 0xfc, 0x45, 0xb3, 0xe1, 0x83, 0xd5, 0x0d, 0xbf, 0x92, 0x6d, 0xb0, 0x90, 0xc4, 0x6e, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x46, 0x71, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x67, 0x6f, 0x79, 0x6b, 0x78, 0x50, 0x72, 0x83, 0xd3, 0x45, 0xc6, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x1b, 0xba, 0xac, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x4b, 0xde, 0x37, 0x28, 0xdc, 0x44, 0x37, 0x28, 0x9b, 0xea, 0xd7, 0xf0, 0xb6, 0xce, 0xe0, 0xf1, 0x41, 0xfc, 0xc3, 0x2f, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0xbc, 0xe6, 0x73, 0xb0, 0x34, 0xdd, 0xae, 0xea, 0x70, 0x8a, 0xad, 0x41, 0x4c, 0xd6, 0x2f, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xc4, 0x64, 0xfd, 0x52, 0x03, 0x78, 0x97, 0xe1, 0xd1, 0x95, 0xb9, 0x91, 0x81, 0x98, 0xa5, 0xd1, 0xcd, 0x81, 0xd0, 0xbd, 0xc1, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0x88, 0x04, 0x60, 0xda, 0xf0, 0x17, 0xcd, 0x86, 0x0f, 0x56, 0x37, 0xfc, 0x4a, 0xb6, 0x86, 0x7f, 0x73, 0x36, 0x88, 0x54, 0xf8, 0xa5, 0x83, 0xc5, 0xe8, 0x75, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x17, 0x67, 0x1b, 0x44, 0xe8, 0x00, 0xd3, 0x1a, 0x1e, 0x94, 0xdc, 0xe0, 0x74, 0x91, 0xb1, 0xe1, 0xdd, 0x9e, 0x0d, 0xce, 0x86, 0x2e, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xa8, 0x2a, 0x60, 0x3a, 0x58, 0x9a, 0x6e, 0x57, 0xad, 0x06, 0xcd, 0x30, 0xf9, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x6c, 0xb0, 0xd8, 0xf0, 0xf2, 0x60, 0xa5, 0x6a, 0xee, 0x86, 0xaf, 0x70, 0x36, 0x7c, 0xfd, 0xb2, 0x41, 0x1a, 0x81, 0xd1, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0x0b, 0x85, 0x2f, 0x37, 0x48, 0x23, 0x30, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xf0, 0xce, 0xea, 0xf2, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x01, 0xdb, 0x4b, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xf4, 0x60, 0xa1, 0xf0, 0x65, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x2c, 0x14, 0xbe, 0xdc, 0xf0, 0xb6, 0xce, 0xe0, 0xf4, 0xc1, 0x42, 0xe1, 0xcb, 0x35, 0xa4, 0x96, 0x36, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x78, 0x7c, 0x4b, 0x50, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xc2, 0x62, 0x79, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0xb4, 0xba, 0x3c, 0x88, 0x2e, 0xf0, 0xa5, 0x6a, 0xd6, 0xa0, 0x49, 0x2c, 0xed, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x26, 0xb1, 0xb4, 0x1b, 0xc0, 0x6b, 0xae, 0x4e, 0x6c, 0xae, 0x2c, 0xae, 0xae, 0xcc, 0x6d, 0xac, 0x6c, 0xc3, 0xd7, 0x2f, 0x1b, 0xc4, 0x05, 0xf5, 0xd2, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x86, 0x07, 0x6f, 0x0e, 0x22, 0x15, 0x7e, 0x69, 0x83, 0x82, 0x22, 0x73, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0x16, 0xcb, 0x6b, 0x78, 0x50, 0x72, 0x83, 0xd3, 0x91, 0xc8, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x1b, 0xba, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0xa2, 0xaa, 0x80, 0x69, 0x0d, 0xef, 0xf6, 0x6c, 0x78, 0xcd, 0xe7, 0x20, 0x4a, 0xe1, 0x97, 0xaa, 0xc3, 0x29, 0xb6, 0x06, 0xd1, 0xcb, 0xbf, 0xb4, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x10, 0xbd, 0xfc, 0x4b, 0x0d, 0xf0, 0x95, 0xe1, 0xd1, 0x95, 0xb9, 0x91, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0x88, 0x04, 0x60, 0xda, 0xf0, 0xf5, 0xcb, 0x06, 0x69, 0x04, 0x46, 0x1b, 0xac, 0x42, 0x52, 0xda, 0x20, 0x3d, 0xc6, 0x77, 0x0d, 0xe2, 0x1f, 0x7e, 0x69, 0x83, 0xc2, 0x50, 0x75, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x0d, 0x16, 0xa3, 0xd7, 0x1d, 0x44, 0x2a, 0xfc, 0xd2, 0x1a, 0x3e, 0x8e, 0x3a, 0x88, 0x54, 0xf8, 0xa5, 0x83, 0x48, 0x85, 0x5f, 0xda, 0xa0, 0xe8, 0x34, 0x5e, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0xb2, 0x05, 0xf5, 0x20, 0xaa, 0x0b, 0x98, 0x36, 0x58, 0x8c, 0x5e, 0xb7, 0xc1, 0x39, 0x7f, 0x69, 0x83, 0x08, 0x1d, 0x60, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0x95, 0xf3, 0x1b, 0x44, 0xe8, 0x00, 0xd3, 0x06, 0x71, 0x41, 0xbd, 0xd4, 0x86, 0x0f, 0x72, 0x36, 0x58, 0x48, 0x62, 0xb7, 0x41, 0x41, 0x91, 0xb9, 0xe1, 0x41, 0xc9, 0x0d, 0x4e, 0x47, 0x22, 0x07, 0xf1, 0x49, 0xc0, 0xd4, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x2b, 0xe0, 0xb3, 0xd5, 0xcd, 0xad, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xf1, 0x7b, 0xc2, 0xd4, 0x00, 0x3c, 0xb0, 0x8d, 0xcd, 0x81, 0xd0, 0xbd, 0x81, 0xb0, 0xa5, 0xcd, 0xd1, 0x81, 0xc0, 0x85, 0xd1, 0x8d, 0xa1, 0x6d, 0x50, 0x28, 0x77, 0xae, 0xe1, 0x73, 0xa5, 0x0d, 0xa2, 0x45, 0x7a, 0x69, 0x83, 0x48, 0x97, 0x5e, 0x5a, 0xc3, 0x9f, 0x4b, 0x03, 0x1e, 0xdb, 0xd8, 0x7c, 0x50, 0xd0, 0xb3, 0xb7, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xe0, 0xc9, 0x85, 0x9d, 0x1b, 0xfe, 0xa2, 0x59, 0xc3, 0xe7, 0x4a, 0x6b, 0x10, 0xb4, 0x3f, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x80, 0x0d, 0x3a, 0x68, 0x40, 0x4e, 0x70, 0x0d, 0x9f, 0x2b, 0x6d, 0x10, 0x46, 0x40, 0x6b, 0xf8, 0x73, 0x69, 0x70, 0x78, 0x83, 0x00, 0x3a, 0xdb, 0xf0, 0xb6, 0xce, 0x80, 0xc7, 0x36, 0x36, 0xb7, 0x86, 0x3f, 0x97, 0x06, 0x8f, 0x0f, 0xa2, 0xe1, 0x85, 0xa9, 0xda, 0xf0, 0x8b, 0xcb, 0x06, 0xab, 0xc0, 0x64, 0x0f, 0x0a, 0x27, 0xd9, 0x0d, 0x4a, 0x09, 0xf1, 0x35, 0x5c, 0x52, 0x1b, 0x14, 0x35, 0xe2, 0x2b, 0xe0, 0xc9, 0x85, 0x9d, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0x9f, 0xbb, 0x0c, 0x0e, 0x6f, 0x78, 0x5b, 0xe7, 0x20, 0xd6, 0x63, 0x98, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xf1, 0x06, 0x85, 0x60, 0xea, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0x48, 0x99, 0xac, 0x41, 0x00, 0x9d, 0x1d, 0xc4, 0xb1, 0x0c, 0x53, 0xb5, 0xe1, 0x41, 0xc9, 0x0d, 0x1a, 0xb0, 0xde, 0xde, 0xf0, 0xa0, 0xe4, 0x06, 0x2d, 0x2d, 0xf9, 0x6d, 0x50, 0xb2, 0xb0, 0xcf, 0x32, 0x6b, 0xb0, 0xe8, 0xd2, 0x6a, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x84, 0x0a, 0xb9, 0x0d, 0x02, 0xe8, 0x6c, 0xc3, 0xdb, 0x3a, 0x83, 0xc3, 0x07, 0xb1, 0x1e, 0xc3, 0xb4, 0xe1, 0xeb, 0x97, 0x0d, 0xe2, 0x58, 0x86, 0x69, 0x83, 0x20, 0x3d, 0x5d, 0xe3, 0xd0, 0x41, 0xcc, 0xde, 0x30, 0xad, 0x41, 0x18, 0x01, 0x6d, 0x10, 0xa4, 0xa7, 0x6b, 0x1c, 0x3a, 0x48, 0xa6, 0x90, 0x5b, 0x83, 0x30, 0x02, 0xda, 0xf0, 0x8b, 0xcb, 0x1a, 0x7e, 0x71, 0xd9, 0x60, 0x99, 0x93, 0xec, 0x1a, 0xde, 0xed, 0xd9, 0xe0, 0x44, 0xd0, 0xb6, 0x86, 0xb7, 0x75, 0x06, 0x87, 0x0f, 0x92, 0x29, 0xe4, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf0, 0x41, 0xcc, 0xde, 0x30, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x11, 0xb4, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xe3, 0x83, 0x64, 0x0a, 0xb9, 0x35, 0xbc, 0xad, 0x33, 0x78, 0x7c, 0x10, 0xb3, 0x37, 0x4c, 0xb5, 0x86, 0xb7, 0x75, 0x06, 0x8f, 0x0f, 0x62, 0x3d, 0x86, 0xa9, 0x35, 0x08, 0xd8, 0xa0, 0x0d, 0xbf, 0xb8, 0x6c, 0x90, 0x16, 0x21, 0xb7, 0x86, 0x5f, 0x5c, 0x36, 0x88, 0xbe, 0x1b, 0xa6, 0x83, 0xd8, 0xf4, 0x61, 0xaa, 0x35, 0x08, 0xd8, 0xa0, 0x0d, 0x82, 0xf4, 0x74, 0x83, 0x38, 0xce, 0x61, 0x5a, 0x83, 0x30, 0x02, 0xda, 0xf0, 0x8b, 0xcb, 0x06, 0x69, 0x11, 0x72, 0x6b, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0x6c, 0x78, 0xf0, 0xe6, 0x20, 0x72, 0x78, 0x98, 0x36, 0x88, 0x4f, 0x1f, 0xa6, 0x83, 0xf8, 0xff, 0x61, 0x6a, 0x0d, 0x02, 0x36, 0x68, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x55, 0x60, 0xb2, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x9f, 0x40, 0x1b, 0x44, 0x0e, 0x0f, 0xd3, 0x06, 0xf1, 0xb9, 0xc3, 0x54, 0x07, 0xb1, 0xe9, 0xc3, 0x54, 0xab, 0x41, 0x33, 0x4c, 0x7e, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0xf5, 0xcb, 0x86, 0x3b, 0x6a, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x45, 0xac, 0xb9, 0x6b, 0x50, 0xc2, 0x63, 0x6e, 0x10, 0x4d, 0xd4, 0x4b, 0x6b, 0x50, 0xf0, 0x61, 0xae, 0x41, 0x31, 0x89, 0xb9, 0x41, 0x08, 0x3e, 0x1c, 0xc4, 0xdf, 0x0b, 0xd3, 0xe1, 0x8e, 0xda, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0x36, 0x88, 0x88, 0xee, 0xa5, 0x35, 0x88, 0xf5, 0x18, 0xa6, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0x60, 0x54, 0xd9, 0x06, 0xcb, 0x9c, 0x64, 0x37, 0x28, 0x28, 0x32, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0xf1, 0xc0, 0xbd, 0x74, 0x50, 0xd6, 0x79, 0xd6, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0xd1, 0x44, 0xbd, 0xb4, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0x8b, 0x58, 0x73, 0x37, 0xbc, 0xad, 0x33, 0x38, 0x7d, 0xb0, 0x88, 0x35, 0x77, 0x0d, 0x62, 0x3d, 0x86, 0x69, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0x18, 0x55, 0xb6, 0xc1, 0x32, 0x27, 0xd9, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0xb7, 0x75, 0x06, 0x4f, 0x0f, 0x16, 0xb1, 0xe6, 0x1e, 0x94, 0x75, 0x9e, 0x07, 0x65, 0x9d, 0x67, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0xc4, 0xdf, 0x0b, 0xd3, 0x1a, 0x2e, 0xa9, 0x0d, 0x57, 0xd7, 0x1a, 0xc4, 0x7a, 0x0c, 0xd3, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x30, 0xaa, 0x6c, 0x83, 0x65, 0x4e, 0xb2, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xc2, 0x62, 0x79, 0x83, 0x95, 0xaa, 0xb9, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x0a, 0x8b, 0xe5, 0x83, 0x78, 0x2c, 0x61, 0xaa, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x0d, 0xe2, 0xe9, 0x89, 0x69, 0xc3, 0xdb, 0x3a, 0x83, 0xa7, 0x07, 0xf1, 0xf7, 0xc2, 0xb4, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x06, 0xf1, 0xc0, 0xbd, 0x74, 0x10, 0xad, 0x54, 0x4c, 0x6b, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0x10, 0x7f, 0x2f, 0x4c, 0x1b, 0xde, 0xd6, 0x19, 0x9c, 0x3e, 0x88, 0xbf, 0x17, 0xa6, 0x0d, 0xe2, 0xa3, 0x89, 0x69, 0x83, 0x88, 0xe8, 0x5e, 0x5a, 0x83, 0x58, 0x8f, 0x61, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x0d, 0x46, 0x95, 0x1d, 0x34, 0xac, 0x04, 0xd6, 0x41, 0xa4, 0x25, 0x31, 0x6d, 0xf8, 0x20, 0x67, 0x83, 0x48, 0xac, 0x62, 0xda, 0x20, 0x7e, 0x99, 0x98, 0x36, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x0d, 0xe2, 0xa3, 0x89, 0x69, 0x83, 0x88, 0xe8, 0x5e, 0x5a, 0x83, 0x58, 0x8f, 0x61, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x0d, 0x46, 0x95, 0x6d, 0xb0, 0xcc, 0x49, 0x76, 0x83, 0xa8, 0x78, 0x62, 0x3a, 0x88, 0xb2, 0x25, 0xa6, 0x66, 0x0d, 0x9a, 0xc4, 0xd2, 0xde, 0xe0, 0x38, 0x36, 0xb1, 0x41, 0x54, 0xfb, 0x30, 0xad, 0xe1, 0x6d, 0xd6, 0x0d, 0xff, 0xe6, 0x6c, 0xb0, 0x30, 0x64, 0xf5, 0x20, 0xfa, 0x6e, 0x98, 0x36, 0x88, 0xff, 0x1f, 0xa6, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x58, 0x2c, 0x1f, 0xc4, 0xa6, 0x0f, 0xd3, 0xe1, 0x14, 0xeb, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x05, 0x7c, 0xb1, 0x32, 0xb9, 0x75, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x20, 0xf2, 0xc0, 0x98, 0x1a, 0x80, 0x87, 0x34, 0x37, 0xbb, 0x32, 0x39, 0x3a, 0x10, 0xb2, 0x34, 0x33, 0x33, 0x10, 0xb8, 0x30, 0xba, 0x31, 0xb4, 0x0d, 0x0a, 0xe5, 0xce, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0x89, 0xd5, 0xc9, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xde, 0xd6, 0xd9, 0xe0, 0xc1, 0x90, 0x79, 0xb5, 0xe1, 0x2b, 0x9c, 0x0d, 0x5f, 0xbf, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0x4f, 0xac, 0x4e, 0x6e, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x88, 0x29, 0x63, 0xda, 0xa0, 0xa0, 0xc8, 0xdc, 0x60, 0x49, 0x75, 0xd2, 0x1a, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x44, 0x4c, 0x19, 0xd3, 0x86, 0xb7, 0x75, 0x06, 0xa7, 0x0f, 0x22, 0xa6, 0x8c, 0xa9, 0x0d, 0x82, 0xf4, 0x74, 0x8d, 0x43, 0x83, 0xa7, 0x07, 0x11, 0x53, 0xc6, 0xb4, 0x06, 0x01, 0x1b, 0xb4, 0xe1, 0x6d, 0x9d, 0x83, 0x18, 0x42, 0x63, 0x5a, 0x83, 0x30, 0x02, 0xda, 0xf0, 0x8b, 0xcb, 0x06, 0xcb, 0x9c, 0x64, 0xd7, 0xf0, 0xb6, 0xce, 0xe0, 0xf1, 0x41, 0x0c, 0xa1, 0x31, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0x83, 0x18, 0x42, 0x63, 0xaa, 0x59, 0xc0, 0x67, 0xab, 0x93, 0x5b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x22, 0x70, 0x8d, 0xa9, 0x01, 0xfc, 0xc3, 0xe0, 0xe0, 0xd8, 0xf2, 0x40, 0xd8, 0xd2, 0xe6, 0xe8, 0x40, 0xe0, 0xc2, 0xe8, 0xc6, 0xd0, 0x36, 0x28, 0x94, 0x3b, 0xd7, 0xf0, 0xb9, 0xd2, 0x06, 0xd1, 0x22, 0xbd, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb9, 0xba, 0xf3, 0x20, 0x86, 0xc7, 0x98, 0xda, 0xf0, 0xf5, 0xcb, 0x06, 0x2b, 0x55, 0x73, 0x37, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0xbc, 0xbb, 0x30, 0x79, 0xc3, 0x5f, 0x34, 0x6b, 0x10, 0x40, 0x67, 0x07, 0x2b, 0x55, 0x73, 0x0f, 0x0a, 0x8a, 0xcc, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0xfa, 0x65, 0x83, 0x95, 0xaa, 0xb9, 0x1b, 0x94, 0xf0, 0x98, 0x0b, 0x78, 0x72, 0x75, 0x67, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xc2, 0x62, 0x79, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x77, 0x61, 0x72, 0x6d, 0x10, 0xa4, 0xa7, 0x6b, 0x1c, 0x1a, 0x3c, 0x3d, 0x88, 0x53, 0x39, 0xa6, 0x35, 0x08, 0xd8, 0xa0, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0xe2, 0x54, 0x8e, 0x69, 0xc3, 0xdb, 0x3a, 0x83, 0xd3, 0x07, 0x71, 0x2a, 0xc7, 0xb4, 0x06, 0x8b, 0x58, 0x73, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0xe9, 0x2d, 0x6e, 0x0d, 0x6f, 0xeb, 0x0c, 0x0e, 0x1f, 0x44, 0x16, 0x1d, 0xd3, 0x41, 0x74, 0x4b, 0x31, 0xad, 0x41, 0x9c, 0xce, 0x31, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x13, 0x41, 0xdb, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xb0, 0x58, 0x5e, 0xc3, 0xbb, 0x3d, 0x1b, 0x1c, 0x2c, 0x04, 0x0f, 0xa2, 0xe1, 0x8e, 0xa9, 0x83, 0x68, 0x9b, 0x63, 0x6a, 0x0d, 0xc2, 0x08, 0x68, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0xdb, 0x20, 0xc2, 0xea, 0x98, 0xd6, 0x60, 0x11, 0x6b, 0xee, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x80, 0x77, 0x56, 0x27, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0xc2, 0x62, 0x79, 0x83, 0x88, 0xb8, 0x63, 0x6a, 0xc3, 0x57, 0x38, 0x1b, 0xbe, 0x7e, 0xd9, 0x60, 0xa5, 0x6a, 0xee, 0x06, 0x25, 0x3c, 0xe6, 0x02, 0xde, 0x59, 0x9d, 0xdc, 0x06, 0x2b, 0x55, 0x73, 0x37, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x08, 0xeb, 0x1a, 0x14, 0x93, 0x98, 0x1b, 0x14, 0xa9, 0x98, 0x07, 0x8b, 0x58, 0x73, 0xd7, 0xf0, 0x6f, 0xce, 0x1a, 0xde, 0xd6, 0x19, 0x3c, 0x3d, 0x88, 0xf9, 0x3e, 0xa6, 0x83, 0x78, 0x7a, 0x62, 0x6a, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0xdb, 0x20, 0x3e, 0x9a, 0x98, 0xd6, 0x20, 0xe6, 0xfb, 0x98, 0x36, 0xbc, 0xad, 0x33, 0x38, 0x7d, 0x10, 0xf3, 0x7d, 0x4c, 0xad, 0x41, 0x9c, 0xce, 0x31, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x13, 0x41, 0xdb, 0x1a, 0xde, 0xd6, 0x19, 0x3c, 0x3e, 0x88, 0x2c, 0x3a, 0xa6, 0x83, 0x68, 0x9b, 0x63, 0xaa, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x66, 0x0d, 0x1a, 0xcf, 0xa5, 0xda, 0xf0, 0xa0, 0xe4, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xc5, 0xea, 0xd8, 0xd6, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x7c, 0xeb, 0xcd, 0x6c, 0x50, 0xb2, 0xb0, 0xcf, 0x32, 0x0b, 0xf0, 0x96, 0xb9, 0xb5, 0xc0, 0x85, 0xd1, 0xa1, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x5a, 0xf8, 0x66, 0x36, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x2c, 0x0d, 0x86, 0x64, 0x60, 0x69, 0x30, 0xc4, 0x1b, 0xfe, 0x5c, 0xda, 0x20, 0xba, 0x0a, 0x99, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0x60, 0x69, 0x30, 0x44, 0x07, 0xd1, 0x8d, 0xc8, 0xb4, 0xe1, 0xdf, 0xf9, 0x0d, 0x22, 0xab, 0x90, 0xa9, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x25, 0x7e, 0x33, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0xb6, 0x06, 0x43, 0x32, 0xb0, 0x35, 0x18, 0xd2, 0x83, 0x33, 0x12, 0xea, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xb4, 0xbf, 0x99, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0x16, 0x70, 0x66, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc8, 0x10, 0x9c, 0x39, 0x58, 0x92, 0x9b, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x20, 0xc2, 0x99, 0x83, 0xe5, 0x6b, 0xaf, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe8, 0x2f, 0x9c, 0xd9, 0xf0, 0xb6, 0xce, 0x80, 0x87, 0x56, 0x26, 0x1f, 0x44, 0x56, 0x21, 0x53, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x28, 0x3d, 0x9c, 0xd9, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x1a, 0x12, 0x67, 0x0e, 0x96, 0xe4, 0xa6, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0x66, 0x71, 0xe6, 0x20, 0x11, 0x2e, 0x78, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xf1, 0x8c, 0x33, 0x1b, 0xde, 0xd6, 0x19, 0xf0, 0xe4, 0xd2, 0xcc, 0x83, 0xc8, 0x2a, 0x64, 0x6a, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x8f, 0x8e, 0x33, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0xfd, 0xe3, 0xcc, 0xc1, 0x92, 0xdc, 0xf4, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x7c, 0x48, 0xce, 0x1c, 0x24, 0xc2, 0x05, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0x7b, 0x72, 0x66, 0xc3, 0xdb, 0x3a, 0x03, 0x1e, 0x5b, 0x9e, 0x79, 0x10, 0x59, 0x85, 0x4c, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0xb1, 0x72, 0x66, 0xc3, 0xdb, 0x3a, 0x03, 0x9e, 0x5d, 0x98, 0x7b, 0x10, 0x59, 0x85, 0x4c, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x98, 0xb8, 0x9c, 0xd9, 0xf0, 0xb6, 0xce, 0x80, 0x37, 0x16, 0x26, 0x1f, 0x44, 0x56, 0x21, 0xd3, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x22, 0x31, 0x67, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xfc, 0xcc, 0x99, 0x83, 0x25, 0xb9, 0xe9, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe8, 0xe0, 0x9c, 0xd9, 0xf0, 0xb6, 0xce, 0x80, 0x37, 0x16, 0x36, 0x1f, 0x44, 0x56, 0x21, 0x53, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf8, 0xed, 0x9c, 0xd9, 0xf0, 0xb6, 0xce, 0x80, 0x37, 0x07, 0x27, 0x1f, 0x44, 0x56, 0x21, 0x53, 0xab, 0x41, 0x74, 0x15, 0x32, 0x6d, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0x44, 0x57, 0x21, 0xd3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xfd, 0xcf, 0x99, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0x27, 0x74, 0x66, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa8, 0x1e, 0x9d, 0xd9, 0xf0, 0xe7, 0xd2, 0x80, 0x87, 0x56, 0x26, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x58, 0x14, 0x9d, 0x39, 0x68, 0xdb, 0x7a, 0x7c, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x7b, 0xa7, 0x33, 0x1b, 0xfe, 0x5c, 0x1a, 0xf0, 0xe4, 0xd2, 0xcc, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x2f, 0xa6, 0x33, 0x07, 0x6f, 0xb0, 0x75, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0xc8, 0xea, 0xcc, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb6, 0x3c, 0x73, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x74, 0xea, 0xcc, 0xc1, 0xdb, 0x74, 0x1d, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x5f, 0xeb, 0xcc, 0x86, 0xcf, 0x95, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x71, 0x01, 0x3b, 0xb3, 0xe1, 0xcf, 0xa5, 0x01, 0xcf, 0x2e, 0xcc, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xd1, 0xec, 0x3a, 0x73, 0x70, 0xd4, 0x06, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x1d, 0xed, 0xcc, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0xb1, 0x30, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xca, 0xec, 0xcc, 0xc1, 0x51, 0x1b, 0x74, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xd3, 0xb8, 0x33, 0x1b, 0xfe, 0x5c, 0x1a, 0xf0, 0xc6, 0xc2, 0xe6, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x85, 0xb7, 0x33, 0x07, 0x6f, 0xd5, 0x0b, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x7d, 0xbc, 0x33, 0x1b, 0xfe, 0x5c, 0x1a, 0xf0, 0xe6, 0xe0, 0xe4, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x33, 0xbb, 0x33, 0x07, 0xef, 0xb3, 0x95, 0x6d, 0x05, 0x78, 0xc3, 0xe6, 0x5a, 0xde, 0xda, 0xca, 0xdc, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x61, 0xbe, 0x33, 0x1b, 0x7e, 0x51, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x16, 0x08, 0x43, 0x32, 0xb0, 0x40, 0x18, 0xe2, 0x0d, 0x7f, 0x2e, 0x6d, 0x10, 0x5d, 0x85, 0x4c, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x57, 0x56, 0xda, 0x2c, 0xb0, 0x40, 0x18, 0xa2, 0x83, 0x58, 0xa0, 0x65, 0x3a, 0x88, 0x65, 0x45, 0xa6, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x19, 0xc0, 0x33, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x36, 0x08, 0x43, 0x32, 0xb0, 0x41, 0x18, 0xd2, 0x83, 0xb7, 0x68, 0x8b, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe8, 0x0a, 0x9e, 0xd9, 0xa0, 0x20, 0x8d, 0x5d, 0x83, 0x12, 0x3a, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x58, 0x21, 0x0c, 0xc9, 0xc0, 0x0a, 0x61, 0x18, 0x6f, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x58, 0x21, 0x0c, 0xd1, 0xc0, 0x0a, 0x61, 0x98, 0x6c, 0xf8, 0x73, 0x69, 0xc0, 0x23, 0x2b, 0x9b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0x60, 0x85, 0x30, 0xc4, 0x07, 0xf1, 0xbc, 0xcb, 0x74, 0xf0, 0x28, 0xbc, 0x90, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0x60, 0x85, 0x30, 0x6c, 0x06, 0x56, 0x08, 0xc3, 0x76, 0xc3, 0x9f, 0x4b, 0x1b, 0x2c, 0xa0, 0x4e, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x15, 0xc2, 0xb0, 0x3b, 0x88, 0x72, 0x5f, 0xa6, 0x83, 0x33, 0x12, 0x6a, 0x07, 0x61, 0x3a, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x5f, 0xe1, 0x99, 0x0d, 0x8a, 0x01, 0xd9, 0x0d, 0xe2, 0x0b, 0x94, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x7d, 0xc8, 0x33, 0x07, 0x91, 0x02, 0xca, 0xb4, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0x8b, 0x78, 0x66, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x28, 0x2d, 0x9e, 0x39, 0x48, 0x4a, 0x0b, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xc4, 0xf1, 0xcc, 0x41, 0x41, 0x91, 0xd9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x00, 0xe5, 0x99, 0x0d, 0x0a, 0xd2, 0xd8, 0x35, 0x7c, 0xdf, 0x3e, 0xe0, 0x89, 0x95, 0xb5, 0x1b, 0x94, 0xd0, 0xb1, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x16, 0x61, 0x48, 0x07, 0xb6, 0x08, 0xc3, 0xe2, 0xe0, 0x29, 0xc1, 0x21, 0x07, 0x61, 0x3a, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xb1, 0xe5, 0x99, 0x0d, 0x56, 0x61, 0x39, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0x1e, 0x7a, 0xe6, 0x20, 0x46, 0x0a, 0x99, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xc4, 0x32, 0xcf, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x03, 0xce, 0x33, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xd5, 0xf3, 0xcc, 0xc1, 0xc3, 0x9a, 0x98, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x51, 0x2a, 0x3d, 0xb3, 0xe1, 0x6d, 0x9d, 0x83, 0x97, 0xb0, 0xc2, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0x85, 0x7a, 0x66, 0xc3, 0xdb, 0x3a, 0x03, 0xde, 0x58, 0xd8, 0x5c, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa8, 0xb0, 0x9e, 0x39, 0x58, 0x44, 0x9e, 0xde, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xce, 0xeb, 0x99, 0x0d, 0x9f, 0xd8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0x1f, 0x7b, 0x66, 0xc3, 0xe7, 0x2e, 0x1b, 0x2c, 0x2f, 0x82, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0xa4, 0x3d, 0xb3, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xcc, 0x6e, 0xcf, 0x1c, 0x94, 0xf5, 0xb6, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x98, 0xf0, 0x9e, 0x39, 0x28, 0x2a, 0xc5, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x91, 0xfc, 0x3d, 0x73, 0x10, 0x6d, 0x9a, 0x4c, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x18, 0x0c, 0x9f, 0x39, 0x88, 0xe4, 0x4d, 0xa6, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xd4, 0x8c, 0xcf, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x7d, 0xe4, 0x33, 0x07, 0xcb, 0xa2, 0xe0, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xd1, 0x5d, 0x3e, 0x73, 0xf0, 0xa8, 0xa6, 0x94, 0x0e, 0xa7, 0xd8, 0x02, 0xf8, 0x91, 0x95, 0xb5, 0xc0, 0x85, 0xd1, 0xa1, 0xb5, 0xcc, 0xbd, 0x99, 0xd1, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xe6, 0xce, 0x67, 0x36, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0xec, 0x07, 0x86, 0x64, 0x60, 0x3f, 0x30, 0xac, 0x36, 0xfc, 0xb9, 0xb4, 0x41, 0xc8, 0x9e, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x7e, 0x60, 0x88, 0x0e, 0xa2, 0x6d, 0x9b, 0x69, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0xf6, 0x03, 0x43, 0x36, 0xb0, 0x1f, 0x18, 0xf2, 0x83, 0x50, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0xf6, 0x03, 0xc3, 0x60, 0x60, 0x3f, 0x30, 0x8c, 0x0e, 0x4e, 0x04, 0xa0, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x08, 0x48, 0x9f, 0xd9, 0xf0, 0x17, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x57, 0x56, 0xda, 0x2c, 0xb0, 0x20, 0x18, 0x92, 0x81, 0x05, 0xc1, 0x30, 0xda, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x05, 0xc1, 0x10, 0x0d, 0x2c, 0x08, 0x86, 0xf8, 0xa0, 0x6c, 0xc2, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x16, 0x04, 0x43, 0x3e, 0xb0, 0x20, 0x18, 0x36, 0x07, 0xb1, 0xac, 0xc8, 0xd4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x22, 0xf5, 0x99, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x84, 0xae, 0xcf, 0x6c, 0x50, 0x4c, 0x62, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x2b, 0x82, 0x21, 0x1c, 0x58, 0x11, 0x0c, 0xbd, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x56, 0x04, 0x43, 0x3a, 0xb0, 0x22, 0x18, 0x26, 0x1b, 0xfe, 0x5c, 0x1a, 0xf0, 0xd0, 0xca, 0xe4, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x58, 0x11, 0x0c, 0x8b, 0x83, 0x58, 0x4a, 0x67, 0x3a, 0xfc, 0x50, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0xac, 0x08, 0x86, 0xcd, 0xc0, 0x8a, 0x60, 0x18, 0x6e, 0xf8, 0x73, 0x69, 0xc0, 0x93, 0x4b, 0x33, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0x60, 0x45, 0x30, 0xec, 0x0e, 0xe2, 0x89, 0x9d, 0xe9, 0xf0, 0x43, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x57, 0x56, 0xda, 0x2c, 0xb0, 0x22, 0x18, 0x96, 0x03, 0x2b, 0x82, 0x61, 0xbe, 0xe1, 0xcf, 0xa5, 0x01, 0x8f, 0x2d, 0xcf, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x15, 0xc1, 0xb0, 0x3e, 0x88, 0xa9, 0x77, 0xa6, 0xc3, 0x0f, 0x35, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x8a, 0x60, 0xd8, 0x0f, 0xac, 0x08, 0x86, 0x92, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x76, 0x61, 0xee, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0xac, 0x08, 0x86, 0x8e, 0x83, 0xb8, 0x92, 0x67, 0x3a, 0xfc, 0x50, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0xac, 0x08, 0x86, 0x96, 0x81, 0x15, 0xc1, 0x50, 0xb5, 0xe1, 0xcf, 0xa5, 0x01, 0x6f, 0x2c, 0x4c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x15, 0xc1, 0xd0, 0x74, 0x10, 0x61, 0xf5, 0x4c, 0x87, 0x1f, 0x6a, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x15, 0xc1, 0xd0, 0x35, 0xb0, 0x22, 0x18, 0x0a, 0x37, 0xfc, 0xb9, 0x34, 0xe0, 0x8d, 0x85, 0xcd, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x57, 0x56, 0xda, 0x2c, 0xb0, 0x22, 0x18, 0xfa, 0x0e, 0x62, 0x0d, 0x9f, 0xe9, 0xf0, 0x43, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x57, 0x56, 0xda, 0x2c, 0xb0, 0x22, 0x18, 0x1a, 0x07, 0x56, 0x04, 0x43, 0xed, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0x39, 0x38, 0x79, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x56, 0x04, 0x43, 0xeb, 0x41, 0xd4, 0xed, 0x33, 0x1d, 0x84, 0xe9, 0x58, 0x07, 0x01, 0xe6, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xcd, 0x15, 0x9a, 0x83, 0x82, 0x22, 0x73, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xc9, 0xfc, 0xcc, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x80, 0x87, 0x56, 0x26, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x38, 0xa4, 0x9f, 0xd9, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xde, 0xeb, 0x67, 0x0e, 0x96, 0x74, 0xab, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0x02, 0x7f, 0xe6, 0x60, 0xf9, 0xda, 0xeb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xaa, 0xf3, 0x67, 0x36, 0xbc, 0xad, 0x33, 0xe0, 0xa1, 0x95, 0xc9, 0x07, 0x01, 0xe6, 0xd2, 0x06, 0x25, 0x3c, 0xe6, 0x86, 0x2f, 0x27, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x91, 0xbb, 0x3f, 0x73, 0x50, 0x50, 0x64, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x68, 0xe9, 0x9f, 0xd9, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xf0, 0xe4, 0xd2, 0xcc, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x8f, 0xfe, 0x33, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xfe, 0xff, 0xcc, 0xc1, 0x92, 0x6e, 0xf5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x7c, 0x09, 0xd0, 0x1c, 0x24, 0xc2, 0x05, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0x83, 0x80, 0x66, 0xc3, 0xdb, 0x3a, 0x03, 0x9e, 0x5c, 0x9a, 0x79, 0x10, 0x60, 0x2e, 0x6d, 0x50, 0xc2, 0x63, 0x6e, 0xf8, 0x72, 0x72, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x0d, 0x06, 0x34, 0x07, 0x05, 0x45, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xc0, 0x03, 0x9a, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x01, 0x8f, 0x2d, 0xcf, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x31, 0x8e, 0x40, 0xb3, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x34, 0x29, 0xd0, 0x1c, 0x2c, 0xe9, 0x56, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x2c, 0x03, 0xcd, 0x41, 0x22, 0x5c, 0xf0, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xe2, 0x1c, 0x68, 0x36, 0xbc, 0xad, 0x33, 0xe0, 0xb1, 0xe5, 0x99, 0x07, 0x01, 0xe6, 0xd2, 0x06, 0x25, 0x3c, 0xe6, 0x86, 0x2f, 0x27, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x11, 0x06, 0x41, 0x73, 0x50, 0x50, 0x64, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa8, 0x8e, 0xa0, 0xd9, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xf0, 0xc6, 0xc2, 0xe6, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x37, 0x13, 0x34, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x27, 0x05, 0xcd, 0xc1, 0x63, 0x46, 0x61, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x91, 0x6f, 0x41, 0xb3, 0xe1, 0x6d, 0x9d, 0x01, 0x6f, 0x2c, 0x6c, 0x3e, 0x08, 0x30, 0x97, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x7c, 0x39, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x7c, 0x0c, 0x9a, 0x83, 0x82, 0x22, 0x73, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x9b, 0x06, 0xcd, 0x06, 0x85, 0xa1, 0xea, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x6a, 0x37, 0x68, 0x0e, 0x0a, 0x8a, 0xcc, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x21, 0x1d, 0x34, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x9a, 0x07, 0xcd, 0x86, 0x5f, 0x5c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x71, 0xfb, 0x41, 0xb3, 0xe1, 0x6d, 0x9d, 0xc1, 0xeb, 0x83, 0x37, 0x37, 0x31, 0xaf, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0x26, 0x84, 0x66, 0xc3, 0xdb, 0x3a, 0x83, 0xd7, 0x07, 0x2f, 0x2c, 0x63, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xaa, 0x08, 0xcd, 0x86, 0xb7, 0x75, 0x06, 0xaf, 0x07, 0x3c, 0xb6, 0x3c, 0xb3, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xf1, 0x41, 0x42, 0xb3, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xbc, 0x95, 0xd0, 0x6c, 0x78, 0x5b, 0x67, 0xc0, 0xb3, 0x0b, 0x73, 0x0f, 0x02, 0xcc, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xf9, 0x26, 0x34, 0x1b, 0xde, 0xd6, 0x19, 0xf0, 0xc6, 0xc2, 0xe4, 0x83, 0x00, 0x73, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x21, 0x0a, 0xcd, 0x86, 0xb7, 0x75, 0x06, 0xaf, 0x0f, 0x62, 0xe0, 0x99, 0xa9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x2c, 0xa8, 0xd0, 0x6c, 0x78, 0x5b, 0x67, 0xc0, 0x9b, 0x83, 0x93, 0x0f, 0x02, 0xcc, 0xa5, 0x59, 0x80, 0x97, 0xac, 0xac, 0x05, 0x2e, 0x8c, 0x0e, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xf1, 0xd1, 0x42, 0xb3, 0xe1, 0x17, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0x60, 0x5f, 0x30, 0x24, 0x03, 0xfb, 0x82, 0x21, 0xde, 0xf0, 0xe7, 0xd2, 0x06, 0x07, 0xd3, 0xcf, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0xd8, 0x17, 0x0c, 0xd1, 0x41, 0x0c, 0x99, 0x34, 0x1d, 0x9c, 0x91, 0x50, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xd4, 0xba, 0xd0, 0x6c, 0xf8, 0x8b, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x58, 0x18, 0x0c, 0xc9, 0xc0, 0xc2, 0x60, 0x48, 0x0f, 0x62, 0x59, 0x91, 0x69, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xfe, 0x0b, 0xcd, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0x15, 0x43, 0x73, 0x70, 0x36, 0x74, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xde, 0x0c, 0xcd, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x11, 0x4e, 0x43, 0xb3, 0xe1, 0x6d, 0x9d, 0x0d, 0xe2, 0x1c, 0x9b, 0xa9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xf4, 0xdb, 0xd0, 0x1c, 0x9c, 0x56, 0xce, 0xea, 0x70, 0x8a, 0x2d, 0xc0, 0x4b, 0x56, 0xd6, 0x02, 0x17, 0x26, 0x47, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x78, 0xc6, 0xa1, 0xd9, 0xf0, 0x8b, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x57, 0x56, 0xda, 0x2c, 0xb0, 0x14, 0x18, 0x92, 0x81, 0xa5, 0xc0, 0xd0, 0xb4, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0x60, 0x29, 0x30, 0x44, 0x03, 0x4b, 0x81, 0x21, 0xdf, 0xf0, 0xe7, 0xd2, 0x06, 0x4d, 0x5f, 0x8f, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x52, 0x60, 0xc8, 0x0e, 0x62, 0x58, 0xa6, 0xe9, 0xa0, 0x6d, 0xeb, 0xf1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0x60, 0x29, 0x30, 0x0c, 0x06, 0x96, 0x02, 0xc3, 0x6a, 0xc3, 0x9f, 0x4b, 0x1b, 0xbc, 0x88, 0xd6, 0x71, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x96, 0x02, 0xc3, 0xe2, 0x20, 0xaa, 0x6b, 0x9a, 0x0e, 0xde, 0x60, 0xeb, 0xb8, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x2c, 0x05, 0x86, 0xd9, 0xc0, 0x52, 0x60, 0xd8, 0x6e, 0xf8, 0x73, 0x69, 0x83, 0xc7, 0xd8, 0xd8, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x52, 0x60, 0xd8, 0x1d, 0xc4, 0x3b, 0x4e, 0xd3, 0xc1, 0xdb, 0x74, 0x1d, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0xa5, 0xc0, 0x30, 0x1e, 0x58, 0x0a, 0x0c, 0x45, 0x1b, 0xfe, 0x5c, 0xda, 0x20, 0x64, 0x4f, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0x60, 0x29, 0x30, 0xac, 0x0f, 0x22, 0x81, 0xa7, 0x69, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x96, 0x02, 0xc3, 0x7c, 0x60, 0x29, 0x30, 0x54, 0x1c, 0x84, 0x8a, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x57, 0x56, 0xda, 0x2c, 0xb0, 0x14, 0x18, 0x3a, 0x06, 0x96, 0x02, 0x43, 0xcf, 0xc1, 0x89, 0x00, 0xb4, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xec, 0xe9, 0xd0, 0x6c, 0xf8, 0x8b, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0xd8, 0x0a, 0x0c, 0xc9, 0xc0, 0x56, 0x60, 0x18, 0x6d, 0x10, 0xfa, 0x25, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x56, 0x60, 0x88, 0x06, 0xb6, 0x02, 0x43, 0x7c, 0x50, 0x36, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x5b, 0x81, 0x21, 0x1f, 0xd8, 0x0a, 0x0c, 0x9b, 0x83, 0x58, 0x56, 0x64, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0xef, 0x0e, 0xcd, 0x06, 0xc5, 0x8e, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x36, 0x7a, 0x68, 0x36, 0x28, 0x26, 0x31, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0xb5, 0xc0, 0x10, 0x0e, 0xac, 0x05, 0x86, 0x96, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x6b, 0x81, 0x21, 0x1d, 0x58, 0x0b, 0x0c, 0x93, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x76, 0x61, 0xee, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0xac, 0x05, 0x86, 0xc5, 0x41, 0xe4, 0x27, 0x35, 0x1d, 0x7e, 0xa8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0xd6, 0x02, 0xc3, 0x66, 0x60, 0x2d, 0x30, 0x0c, 0x37, 0xfc, 0xb9, 0x34, 0xe0, 0x8d, 0x85, 0xc9, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x57, 0x56, 0xda, 0x2c, 0xb0, 0x16, 0x18, 0x76, 0x07, 0xd1, 0xcf, 0xd4, 0x74, 0xf8, 0xa1, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x58, 0x0b, 0x0c, 0xcb, 0x81, 0xb5, 0xc0, 0x30, 0xdf, 0xf0, 0xe7, 0xd2, 0x80, 0x37, 0x16, 0x36, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x5a, 0x60, 0x58, 0x1f, 0x44, 0x00, 0x54, 0xd3, 0xe1, 0x87, 0x9a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0x60, 0x2d, 0x30, 0xec, 0x07, 0xd6, 0x02, 0x43, 0xc9, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0x39, 0x38, 0x79, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0xd6, 0x02, 0x43, 0xc7, 0x41, 0x14, 0x4c, 0x35, 0x1d, 0x84, 0xe9, 0x58, 0x07, 0x01, 0xe6, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x3f, 0x2c, 0x9a, 0x83, 0x82, 0x22, 0x73, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0xac, 0x0f, 0xcd, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x80, 0x37, 0x16, 0x36, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa8, 0x00, 0xa2, 0xd9, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xfa, 0x82, 0x68, 0x0e, 0x1e, 0x33, 0x0a, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xea, 0x21, 0x9a, 0x83, 0xd8, 0xa9, 0x68, 0x6a, 0x83, 0x12, 0x1e, 0x73, 0xc3, 0x97, 0x93, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd8, 0x2e, 0xa2, 0x39, 0x28, 0x28, 0x32, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x3c, 0x1d, 0xd1, 0x6c, 0x50, 0x18, 0xaa, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0x12, 0x89, 0xe6, 0xa0, 0xa0, 0xc8, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x31, 0xa0, 0x44, 0xb3, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x2c, 0x2d, 0xd1, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x99, 0x4c, 0x34, 0x07, 0xaf, 0x40, 0x9c, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x84, 0x13, 0xcd, 0xc1, 0xbb, 0x51, 0xae, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0xf8, 0x44, 0x73, 0xf0, 0xca, 0x51, 0xcf, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0x10, 0x45, 0xb3, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x6c, 0x49, 0xd1, 0x1c, 0xc4, 0xdd, 0x47, 0xd3, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xc2, 0xa7, 0x68, 0x0e, 0x62, 0x18, 0xa4, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x6d, 0x55, 0x34, 0x07, 0xf1, 0x20, 0xd2, 0xd4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xe6, 0xad, 0x68, 0x0e, 0xe2, 0x68, 0xa4, 0xa9, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0x1a, 0x3c, 0x84, 0x64, 0x73, 0x83, 0xd4, 0x8b, 0xe2, 0x0d, 0x4a, 0x16, 0xf6, 0x59, 0x66, 0x81, 0x37, 0xab, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x83, 0x37, 0xab, 0x1b, 0x40, 0xbf, 0xed, 0x8d, 0xac, 0x8e, 0xed, 0x0d, 0x04, 0xa5, 0xad, 0x8e, 0x0d, 0x04, 0x0e, 0x24, 0x2e, 0xb5, 0xe1, 0x17, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0x78, 0x78, 0xf8, 0x75, 0x6e, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0x71, 0xc3, 0x07, 0x39, 0x6b, 0xf8, 0x37, 0x67, 0x83, 0x43, 0xed, 0xde, 0xe1, 0x69, 0x9d, 0x0d, 0x0f, 0xde, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x92, 0x2d, 0x72, 0xd7, 0xf0, 0xb6, 0xce, 0xc0, 0x9b, 0xbd, 0x1d, 0xb4, 0x4f, 0xca, 0xba, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x2c, 0x79, 0xdf, 0xa0, 0x04, 0xca, 0x3e, 0x88, 0x22, 0xb6, 0xa6, 0x0d, 0x5a, 0x9c, 0x4b, 0xad, 0x0d, 0x4a, 0x16, 0xf6, 0x59, 0x66, 0x0d, 0xca, 0x49, 0xec, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x72, 0x12, 0xbb, 0xc3, 0x0b, 0x41, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0xf1, 0x20, 0x35, 0x01, 0x73, 0x0d, 0x7f, 0x2e, 0x0d, 0x4e, 0x1e, 0xa4, 0x26, 0x60, 0xb6, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0xdb, 0xb3, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0xe7, 0x70, 0xb8, 0x83, 0x28, 0x62, 0x6b, 0xda, 0x20, 0x59, 0xae, 0x78, 0x83, 0x93, 0x4e, 0x56, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0xce, 0xe1, 0x70, 0x1b, 0x44, 0x12, 0x5b, 0xd3, 0x41, 0x04, 0xb8, 0x35, 0x1d, 0x24, 0x58, 0x16, 0x37, 0x6b, 0x50, 0x9a, 0x65, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x94, 0x66, 0xd9, 0x0d, 0xe0, 0x7f, 0x16, 0x26, 0xe7, 0x56, 0x26, 0x77, 0x32, 0x07, 0x62, 0xf6, 0x26, 0xd7, 0x56, 0xc7, 0x16, 0xb6, 0xe1, 0x17, 0xa5, 0x0d, 0xe2, 0x10, 0xae, 0x69, 0x83, 0xa2, 0xd3, 0x78, 0xc3, 0x9f, 0x40, 0x1b, 0x9c, 0xe8, 0x1f, 0x37, 0x28, 0x3a, 0x8d, 0x37, 0x08, 0x9e, 0xda, 0x0d, 0x5a, 0x9c, 0x4b, 0xdd, 0xa0, 0xe8, 0x34, 0x5e, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x74, 0xc4, 0xe3, 0x83, 0x28, 0x62, 0x6b, 0xda, 0xf0, 0x5e, 0xd0, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x2c, 0x79, 0xdf, 0x20, 0x89, 0x1d, 0xea, 0x20, 0x8a, 0xd8, 0x9a, 0x36, 0x48, 0x96, 0x2b, 0x5e, 0xc3, 0xbb, 0x3d, 0x1b, 0x44, 0x4e, 0x5b, 0xd3, 0x41, 0xfa, 0x76, 0x71, 0xab, 0x41, 0x19, 0x94, 0xbd, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x50, 0x06, 0x65, 0x37, 0x80, 0x87, 0x5c, 0x19, 0x9c, 0x5c, 0xd9, 0x5c, 0x99, 0x1b, 0xdd, 0x86, 0x5f, 0x94, 0x36, 0x28, 0x00, 0x63, 0x37, 0xfc, 0xe2, 0xb2, 0x86, 0x77, 0x7b, 0x36, 0x08, 0xbb, 0xdb, 0x0d, 0x4f, 0xef, 0x1c, 0xb4, 0x4f, 0xca, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x08, 0xbb, 0xdb, 0x0d, 0x4f, 0xef, 0x1c, 0x44, 0x80, 0x5b, 0x53, 0x87, 0x53, 0x6c, 0x0d, 0x52, 0x34, 0x8d, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x52, 0x34, 0x8d, 0x3b, 0x48, 0x44, 0xca, 0xda, 0xf0, 0x8b, 0xd2, 0x06, 0xd1, 0x04, 0xd7, 0xb4, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xf4, 0xe6, 0x35, 0x1d, 0x44, 0xbe, 0x5c, 0xd3, 0x1a, 0xde, 0xed, 0x59, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x74, 0xc4, 0xe3, 0x83, 0x18, 0xa2, 0x6b, 0x3a, 0x48, 0xb0, 0x2c, 0x6e, 0x35, 0x48, 0xab, 0x49, 0xda, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x0d, 0x92, 0x5e, 0x10, 0x07, 0xf8, 0xcb, 0xf0, 0xe0, 0xde, 0xdc, 0xca, 0xdc, 0xe8, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0x36, 0x28, 0x00, 0x63, 0x0f, 0xa2, 0x23, 0xae, 0x69, 0x83, 0xc2, 0x50, 0x75, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0x2a, 0x5a, 0xd2, 0x41, 0x14, 0xb1, 0x35, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0xc2, 0xee, 0x76, 0xc3, 0xd3, 0x3b, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x6b, 0x3e, 0x07, 0xed, 0x93, 0xb2, 0x76, 0x10, 0x3d, 0x73, 0x4d, 0x1b, 0xde, 0xed, 0x59, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x54, 0xb4, 0xa4, 0x83, 0x18, 0xa2, 0x6b, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x84, 0xdd, 0xed, 0x86, 0xa7, 0x77, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0xd7, 0x7c, 0x0e, 0x22, 0xc0, 0xad, 0xa9, 0x83, 0x14, 0xcd, 0xe2, 0xd5, 0xa0, 0xcc, 0x09, 0xd8, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x0d, 0x0a, 0x1b, 0xf0, 0x83, 0x34, 0x09, 0xba, 0x0d, 0xbf, 0x28, 0x6d, 0x10, 0x4d, 0x70, 0x4d, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x44, 0xbe, 0x5e, 0xd3, 0x41, 0xe4, 0xcb, 0x35, 0xad, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x4b, 0xde, 0x37, 0x48, 0x62, 0x87, 0x3a, 0x88, 0x21, 0xba, 0xa6, 0x83, 0x04, 0xcb, 0xe2, 0x0e, 0xa7, 0x58, 0x1d, 0x4e, 0xb1, 0x15, 0xf0, 0xe1, 0xe4, 0xc2, 0xda, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x68, 0x93, 0x6c, 0x6a, 0x00, 0x3f, 0xb9, 0x30, 0xb1, 0x34, 0xb7, 0x96, 0xb6, 0x34, 0x36, 0xb6, 0x32, 0xb9, 0x0d, 0xbf, 0x28, 0x6d, 0xf8, 0x72, 0x69, 0xc3, 0x5f, 0x34, 0x1b, 0x3e, 0x58, 0xdd, 0xf0, 0x41, 0xce, 0x1a, 0x7e, 0x25, 0xdb, 0xe0, 0xdc, 0xfa, 0xb0, 0x41, 0x1b, 0x2e, 0xe2, 0x6b, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x2e, 0x1e, 0x1e, 0x93, 0xd9, 0xf0, 0x15, 0xce, 0x86, 0xbf, 0x68, 0x36, 0x7c, 0xb0, 0xba, 0xe1, 0x83, 0x9c, 0x35, 0xfc, 0x9b, 0xb3, 0x41, 0xe2, 0x6e, 0xea, 0xe1, 0xbd, 0xa0, 0x0d, 0x0a, 0xd8, 0xfc, 0x0d, 0xbf, 0x92, 0xad, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xf8, 0xb8, 0xe1, 0xe3, 0xa8, 0x83, 0x64, 0x07, 0xe4, 0x0d, 0x8f, 0xb0, 0xae, 0xe1, 0x6d, 0xd6, 0x0d, 0xff, 0xe6, 0x6c, 0x78, 0x5a, 0xe7, 0xf0, 0xf4, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0xf0, 0xb4, 0xce, 0x86, 0x77, 0x7b, 0x36, 0x08, 0x9e, 0xda, 0x0d, 0x4f, 0xef, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x42, 0x81, 0xf5, 0xa0, 0xf0, 0xd5, 0xad, 0x0d, 0x1f, 0x8e, 0xd6, 0x06, 0x05, 0x6c, 0xfe, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xe2, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0x3e, 0x77, 0x19, 0x7c, 0x3e, 0x3c, 0xdb, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0xa7, 0x0f, 0x0f, 0xde, 0xb4, 0xe1, 0x2b, 0x9c, 0x0d, 0x7f, 0xd1, 0xac, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0xf8, 0x7c, 0xf8, 0xa1, 0x66, 0x0d, 0x7f, 0x2e, 0x0d, 0x4e, 0x1f, 0x7e, 0xa8, 0x69, 0xc3, 0x07, 0x39, 0x6b, 0xf8, 0x37, 0x67, 0xc3, 0x83, 0x37, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xc8, 0xc4, 0x3d, 0x48, 0x86, 0xab, 0x5a, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x73, 0x3b, 0xdf, 0x86, 0x77, 0x7b, 0x36, 0x28, 0xf1, 0x71, 0x0f, 0x92, 0xe1, 0xaa, 0xd6, 0xe0, 0x40, 0xd3, 0xb7, 0xe1, 0xe3, 0xa8, 0x83, 0x53, 0x4b, 0x5f, 0x07, 0xa7, 0x9f, 0xbe, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x9b, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x08, 0x9e, 0xda, 0x0d, 0x92, 0xf9, 0xd0, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x85, 0x76, 0xef, 0x06, 0x45, 0xf8, 0x69, 0x1d, 0x9e, 0xed, 0xd9, 0xf0, 0x89, 0xcd, 0x86, 0xaf, 0x6d, 0x36, 0x7c, 0x85, 0xb3, 0xe1, 0x2f, 0x9a, 0x0d, 0x1f, 0xac, 0x6e, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0x6c, 0x78, 0x7a, 0xe7, 0x20, 0x05, 0x3a, 0x75, 0x83, 0x22, 0xa7, 0x75, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0x72, 0xc3, 0xbb, 0x3d, 0x6b, 0x50, 0x96, 0xbc, 0x6f, 0x90, 0x54, 0xc0, 0xb9, 0x41, 0xda, 0xdf, 0xeb, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0x27, 0xd0, 0xe1, 0x1b, 0xbf, 0x0e, 0x0e, 0x45, 0x13, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0x97, 0x1b, 0xde, 0xed, 0x59, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x54, 0xb4, 0xa4, 0x0d, 0x22, 0x89, 0xad, 0xe9, 0xf0, 0xd0, 0xcf, 0x06, 0xc9, 0x7c, 0x68, 0x07, 0xa5, 0xba, 0xec, 0x86, 0x47, 0x58, 0xd7, 0xf0, 0x2b, 0xd9, 0x1a, 0xfe, 0xcd, 0xd9, 0xf0, 0x98, 0xcc, 0x41, 0x39, 0x01, 0xbd, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xe6, 0xe1, 0xc1, 0x9b, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x8b, 0x66, 0xc3, 0x07, 0xab, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x1b, 0x94, 0x13, 0xd0, 0x87, 0x67, 0x7b, 0x36, 0x28, 0x72, 0x5a, 0x37, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0x36, 0x28, 0x46, 0x6a, 0x37, 0xbc, 0xdb, 0xb3, 0xe1, 0x35, 0x9f, 0x83, 0xf8, 0x36, 0x6d, 0xda, 0xa0, 0x80, 0xcd, 0xdf, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0xa0, 0x08, 0x81, 0xde, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0xa4, 0x23, 0x1e, 0x1f, 0x44, 0x54, 0x6b, 0xd3, 0x06, 0xe5, 0x04, 0xf4, 0x41, 0x99, 0x2d, 0xbd, 0x06, 0x01, 0x1e, 0xb4, 0xe1, 0xe3, 0xa8, 0x83, 0x62, 0xa4, 0xb6, 0x36, 0x38, 0x93, 0xbf, 0x74, 0x38, 0xc5, 0x16, 0xf8, 0xb3, 0x70, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0x32, 0xf8, 0xb3, 0xb0, 0x01, 0xf4, 0x8e, 0x8c, 0x40, 0x50, 0xc4, 0xca, 0xf0, 0x40, 0xe0, 0x5c, 0xc2, 0x52, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x3f, 0xb2, 0xb4, 0x36, 0x10, 0xb8, 0x37, 0xb6, 0x3c, 0x90, 0xb3, 0x32, 0xb7, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x6e, 0xf8, 0x5c, 0xe9, 0x60, 0xd1, 0x69, 0xfb, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0xc0, 0xcf, 0xa5, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xd0, 0xee, 0x3d, 0x68, 0x9f, 0x94, 0x75, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xe0, 0xdb, 0xc2, 0x0d, 0xef, 0xf6, 0x6c, 0x78, 0xcd, 0x67, 0x83, 0x52, 0x48, 0xbd, 0x0d, 0x4a, 0x09, 0xf1, 0x35, 0x28, 0x59, 0xd8, 0x67, 0x99, 0x35, 0x48, 0xd1, 0x34, 0xde, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x0d, 0x22, 0x46, 0xb0, 0x69, 0x00, 0xcf, 0x39, 0xb6, 0xb7, 0x3b, 0x90, 0xb6, 0x3a, 0x36, 0xba, 0x34, 0x38, 0xb6, 0xbc, 0x0d, 0xbf, 0x28, 0x6d, 0x50, 0x20, 0x64, 0x6f, 0xf8, 0x20, 0x67, 0xc3, 0x6b, 0x7a, 0x1b, 0x1e, 0xbc, 0xd9, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0xf0, 0x98, 0xcc, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x7a, 0xc7, 0x1d, 0xa4, 0x12, 0xb5, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0xd2, 0xd1, 0xa1, 0x36, 0x3c, 0xbd, 0xb3, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0xc1, 0x09, 0xc3, 0x61, 0x0d, 0xff, 0xf0, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x64, 0x75, 0x62, 0x87, 0x5f, 0x84, 0xea, 0x20, 0x5e, 0x87, 0x9b, 0x56, 0x83, 0x32, 0x28, 0x7b, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x36, 0x88, 0xc3, 0xbe, 0xa6, 0x01, 0x3e, 0xb9, 0x32, 0xb2, 0xba, 0xb1, 0xb2, 0x0d, 0xbf, 0x28, 0x6d, 0x78, 0x9e, 0x69, 0xc3, 0xbb, 0x3d, 0x1b, 0x84, 0xdd, 0xed, 0x86, 0xf7, 0x82, 0x36, 0x88, 0xf1, 0xdd, 0xa6, 0x66, 0x0d, 0xca, 0x9c, 0x80, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0xdb, 0xa0, 0xb0, 0x01, 0x1f, 0xc0, 0x2b, 0x8c, 0x8c, 0x0c, 0x24, 0xcc, 0x8d, 0x0c, 0x64, 0xae, 0x4e, 0x6c, 0xc3, 0x2f, 0x4a, 0x1b, 0x14, 0x08, 0xd9, 0x1b, 0x2c, 0xa9, 0x5f, 0x5a, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0xe3, 0x6e, 0xc3, 0xcb, 0x77, 0x07, 0xb1, 0x3b, 0x4a, 0x73, 0x78, 0xe8, 0x67, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0x8f, 0xb0, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x5f, 0x9c, 0x6d, 0x78, 0x2f, 0xe8, 0x20, 0x5a, 0x7b, 0x9b, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x2f, 0xce, 0x36, 0x3c, 0xbd, 0x73, 0x10, 0xad, 0xbd, 0x4d, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x43, 0x0c, 0xc4, 0xe1, 0xb9, 0xa0, 0xc3, 0x29, 0xb6, 0x80, 0x47, 0x56, 0x27, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x06, 0x1e, 0x59, 0x9d, 0xd8, 0x00, 0x7f, 0x5b, 0x1d, 0x1b, 0x88, 0x58, 0x1e, 0x08, 0xde, 0x86, 0x5f, 0x94, 0x36, 0x3c, 0xcf, 0xb4, 0xc1, 0x92, 0xfa, 0xa5, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0x37, 0xee, 0x36, 0xbc, 0x7c, 0x77, 0x10, 0x4b, 0xae, 0x34, 0x87, 0x87, 0x7e, 0x36, 0x28, 0xf8, 0x30, 0x37, 0x88, 0x65, 0xe6, 0xa6, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x0d, 0x8f, 0xc9, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0x92, 0x68, 0x76, 0xc3, 0x83, 0x37, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xb8, 0x52, 0x6c, 0x3a, 0x28, 0x88, 0xc7, 0x0f, 0x6f, 0xa1, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0xd2, 0xd1, 0xa1, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xc5, 0x4c, 0xf6, 0x41, 0x04, 0xb8, 0x35, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x8a, 0x99, 0xec, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x69, 0xc0, 0x7b, 0x70, 0x6e, 0x71, 0xa8, 0x83, 0x28, 0xbe, 0x6e, 0x9a, 0x05, 0x3c, 0xba, 0xb7, 0x72, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0x32, 0xf0, 0xe8, 0xde, 0xca, 0x06, 0xf0, 0x2d, 0xc3, 0x83, 0x5b, 0x61, 0x7b, 0x3b, 0x03, 0xa1, 0x0b, 0x13, 0x63, 0x2b, 0x9b, 0xdb, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0x78, 0xb7, 0x7a, 0xc3, 0x2f, 0x4a, 0x1b, 0x14, 0x08, 0xd9, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0xd0, 0x2f, 0xd9, 0xa0, 0x44, 0xac, 0x3f, 0x48, 0x68, 0xc0, 0xdc, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0x9c, 0xdc, 0xa0, 0x10, 0x4c, 0x3d, 0x88, 0x36, 0xee, 0xa6, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x20, 0x67, 0x83, 0x73, 0xff, 0xcb, 0x06, 0xe5, 0xba, 0xec, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x86, 0x7f, 0x78, 0x0e, 0x8e, 0xe9, 0x28, 0x6b, 0x50, 0xe4, 0xcb, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0xca, 0x16, 0xd4, 0x0d, 0xca, 0xa6, 0xfa, 0x83, 0x52, 0x5d, 0xf6, 0x20, 0xa1, 0xd8, 0xb7, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x17, 0x97, 0x35, 0x7c, 0xee, 0x32, 0x38, 0xbc, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0x73, 0xf0, 0x02, 0x3e, 0xe5, 0x0d, 0x0f, 0xde, 0x1c, 0x44, 0x15, 0x72, 0xd3, 0x1a, 0x3e, 0x77, 0x19, 0x3c, 0xde, 0xf0, 0x6e, 0xcf, 0x06, 0x51, 0x2c, 0xde, 0xb4, 0x41, 0x02, 0xaf, 0xd1, 0x41, 0x0a, 0x3f, 0x54, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0x2f, 0x2e, 0x1b, 0x44, 0xac, 0x65, 0xd3, 0x86, 0xaf, 0x6d, 0xda, 0xf0, 0x15, 0xce, 0x86, 0xbf, 0x68, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x1c, 0x3e, 0x88, 0x36, 0xee, 0xa6, 0x35, 0xfc, 0xb9, 0x34, 0x78, 0x7c, 0x10, 0x6d, 0xdc, 0x4d, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0x6c, 0x90, 0xc0, 0x6b, 0x74, 0x78, 0x7a, 0x67, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x4b, 0xde, 0x37, 0x28, 0x5b, 0x50, 0x37, 0x28, 0x9b, 0xea, 0x0f, 0xd2, 0x93, 0x06, 0x0f, 0x12, 0x8a, 0x7d, 0x0f, 0x0e, 0xbd, 0x7c, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x3e, 0x0f, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x89, 0x85, 0xc7, 0x1b, 0x94, 0xb2, 0x99, 0x87, 0xb7, 0xd0, 0x36, 0xfc, 0x1e, 0xb8, 0x06, 0x07, 0x8f, 0x8c, 0x83, 0x58, 0x49, 0x6f, 0x5a, 0x83, 0x23, 0x4e, 0xc6, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x2c, 0x79, 0xdf, 0xa0, 0x6c, 0x41, 0xdd, 0xa0, 0x6c, 0xaa, 0x3f, 0x38, 0xf4, 0xf2, 0x1d, 0x9e, 0x0b, 0xea, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0x8f, 0xee, 0xad, 0x6c, 0x83, 0x92, 0x85, 0x7d, 0x96, 0x59, 0x83, 0x14, 0x4d, 0xe3, 0x0d, 0xcf, 0x93, 0x6c, 0x10, 0xff, 0x81, 0x4d, 0x1b, 0x7e, 0x51, 0xda, 0xa0, 0x40, 0xc8, 0xde, 0x60, 0x49, 0xfd, 0xd2, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0x1b, 0x77, 0x1b, 0x5e, 0xbe, 0x3b, 0x88, 0xb3, 0x64, 0x9a, 0xc3, 0x43, 0x3f, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0x93, 0x1b, 0xde, 0xed, 0x59, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0xc2, 0x4d, 0xf4, 0x20, 0x52, 0xdc, 0x9b, 0x0e, 0x6f, 0xa1, 0x6d, 0x50, 0xc2, 0x63, 0x6e, 0x50, 0xe4, 0xcb, 0x6e, 0x78, 0xf0, 0x66, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xf0, 0x72, 0xc3, 0xbb, 0x3d, 0x1b, 0x44, 0xef, 0x7c, 0xd3, 0xe1, 0x17, 0xa1, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x8a, 0x10, 0xe8, 0x0d, 0x0f, 0xde, 0x6c, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x6e, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x0a, 0x37, 0xd1, 0x83, 0x28, 0x4f, 0x6f, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x84, 0xdd, 0xed, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0x27, 0xd0, 0x1a, 0xde, 0xd6, 0x19, 0xbc, 0x3e, 0x28, 0xf2, 0x65, 0xd7, 0xf0, 0xb6, 0xce, 0xe0, 0xf5, 0x41, 0x11, 0x02, 0xdd, 0x41, 0x0a, 0x3f, 0x54, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0x6c, 0xe8, 0x72, 0x50, 0x58, 0x75, 0xaf, 0x06, 0xc5, 0xa9, 0xf6, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0x6d, 0x90, 0x70, 0xe5, 0x36, 0xc0, 0x97, 0xe6, 0x66, 0x57, 0x26, 0x47, 0xb7, 0xe1, 0x17, 0xa5, 0x0d, 0xcf, 0x33, 0x6d, 0xb0, 0xa4, 0x7e, 0x69, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x8d, 0xbb, 0x0d, 0x2f, 0xdf, 0x1d, 0xc4, 0xc9, 0x35, 0xcd, 0xe1, 0xa1, 0x9f, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xc7, 0x83, 0x18, 0x9c, 0x6f, 0xda, 0xa0, 0x84, 0xc7, 0xdc, 0xf0, 0x0f, 0xcf, 0x06, 0xe1, 0xa9, 0xba, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0x38, 0xb9, 0xe1, 0xdd, 0x9e, 0x0d, 0x22, 0x06, 0xbf, 0x69, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x14, 0x70, 0x83, 0x04, 0x5e, 0xa3, 0x83, 0x13, 0x62, 0x49, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0x6c, 0xe8, 0x72, 0x50, 0xaa, 0xcb, 0x1e, 0x4e, 0xb1, 0x35, 0x48, 0x54, 0x23, 0xdb, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x48, 0x54, 0x23, 0xeb, 0x20, 0x8d, 0x0f, 0xea, 0x20, 0x95, 0x7b, 0x79, 0xd6, 0xa0, 0xac, 0xa5, 0xda, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x0d, 0x4e, 0xe5, 0x79, 0x07, 0x51, 0x6c, 0xd8, 0xb4, 0xe1, 0x17, 0xa5, 0x0d, 0x0a, 0x84, 0xec, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x17, 0x97, 0x35, 0x7c, 0xee, 0x32, 0x38, 0x79, 0x78, 0x4c, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x5e, 0x1e, 0x9e, 0xde, 0xd9, 0x20, 0x52, 0x5f, 0x9b, 0xda, 0xf0, 0x15, 0xce, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x06, 0x8d, 0xbe, 0xa5, 0x1e, 0x14, 0x23, 0xb5, 0x1b, 0x94, 0xeb, 0xb2, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x1b, 0x1e, 0x93, 0xd9, 0xf0, 0x6e, 0xcf, 0x06, 0x25, 0xd1, 0xec, 0x86, 0x07, 0x6f, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xc5, 0x48, 0xed, 0x41, 0x41, 0x3c, 0x7e, 0x78, 0x0b, 0x6d, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0x8a, 0x7c, 0xd9, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x58, 0x78, 0xbc, 0x41, 0xb9, 0x2e, 0x7b, 0x50, 0x66, 0x4b, 0xaf, 0x41, 0x11, 0x02, 0xbd, 0xe1, 0xdd, 0x9e, 0x0d, 0x12, 0x0b, 0x8f, 0x0f, 0xe2, 0xa7, 0xb6, 0xe9, 0x20, 0x76, 0x6b, 0x9b, 0x36, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x83, 0x38, 0x72, 0x70, 0x3a, 0x9c, 0x62, 0x87, 0x53, 0x6c, 0x35, 0x88, 0x41, 0x75, 0x9a, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x18, 0x54, 0xa7, 0x69, 0x00, 0xdf, 0xb6, 0xb0, 0xb5, 0x32, 0x10, 0xb9, 0x96, 0x36, 0x10, 0x38, 0xb9, 0xb4, 0xb6, 0xb2, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0x5f, 0x2e, 0x6d, 0x50, 0x78, 0xd9, 0x1e, 0x14, 0x7f, 0xb1, 0x1b, 0xfe, 0xa2, 0x59, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x1e, 0xb6, 0xc4, 0xd2, 0xe8, 0xe6, 0x40, 0xe6, 0xdc, 0xc2, 0xce, 0xe6, 0x40, 0xe6, 0xca, 0xca, 0xc8, 0xba, 0x0e, 0x8e, 0x2d, 0xa5, 0x1b, 0x94, 0x12, 0xe2, 0x6b, 0xb8, 0xa4, 0x36, 0x28, 0x6a, 0xc4, 0xd7, 0xf0, 0x0f, 0xcf, 0x86, 0x77, 0x7b, 0x36, 0x48, 0x51, 0x7c, 0x5d, 0xc3, 0x1b, 0x77, 0x1b, 0x5e, 0xbe, 0x3b, 0x88, 0x41, 0x75, 0x9a, 0xc3, 0x2f, 0x42, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x4e, 0x1e, 0x2c, 0x12, 0x43, 0xdd, 0xf0, 0x15, 0xce, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x78, 0x6a, 0x37, 0x48, 0x33, 0x08, 0x3d, 0x3c, 0xf4, 0x73, 0x50, 0xae, 0xcb, 0xae, 0xc1, 0x92, 0xfa, 0xa5, 0x35, 0xbc, 0x71, 0xb7, 0xe1, 0xe5, 0xbb, 0x83, 0xd8, 0x80, 0xa7, 0x39, 0x08, 0x4f, 0xd5, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xcb, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0x52, 0x01, 0xe7, 0x06, 0x69, 0x7f, 0xaf, 0x87, 0x5f, 0x84, 0x0e, 0x0f, 0xfd, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0x8f, 0xb0, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0x41, 0xaa, 0xda, 0xf0, 0x5e, 0xd0, 0x1a, 0x7e, 0x51, 0x5a, 0xc3, 0x9f, 0x4b, 0x83, 0x9b, 0x87, 0x1f, 0x6a, 0x36, 0xbc, 0xcd, 0xba, 0xe1, 0xdf, 0x9c, 0x0d, 0x8f, 0xc9, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0xb0, 0xbb, 0x3d, 0x48, 0x00, 0xc8, 0x6d, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0xa2, 0x4d, 0xb2, 0xa9, 0x83, 0x32, 0x5b, 0xba, 0x0d, 0xca, 0x09, 0xe8, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0xc3, 0xef, 0x81, 0x6b, 0x50, 0xe4, 0xcb, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x54, 0x5a, 0xd9, 0x83, 0x52, 0x5d, 0xb6, 0xc3, 0x29, 0xb6, 0x80, 0x3f, 0x56, 0x27, 0x47, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xc4, 0x24, 0x89, 0x53, 0x03, 0xe8, 0x8c, 0xd5, 0xc9, 0xd9, 0x95, 0xc9, 0xd4, 0xd4, 0xc4, 0xe4, 0x36, 0xfc, 0xa2, 0xb4, 0xe1, 0x6f, 0xa5, 0x0d, 0x4a, 0x09, 0xf1, 0x35, 0x5c, 0x52, 0x1b, 0x14, 0x35, 0xe2, 0x6b, 0xb8, 0xba, 0x36, 0x28, 0x25, 0xc4, 0x37, 0xdc, 0x51, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0x9f, 0xbb, 0x0c, 0x0e, 0x6f, 0xf8, 0x11, 0x66, 0x43, 0xcd, 0x0f, 0x1c, 0x83, 0xb6, 0xd7, 0xf0, 0xb9, 0xcb, 0xe0, 0xf1, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0x0a, 0xb8, 0x86, 0x77, 0x7b, 0x36, 0x28, 0xb4, 0x7b, 0x0f, 0x12, 0xf6, 0x2d, 0x0f, 0x12, 0x89, 0x5b, 0xdb, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0x78, 0xb3, 0x78, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0xa2, 0x46, 0x7c, 0x83, 0x48, 0x62, 0x6b, 0x3a, 0x38, 0xf4, 0xf2, 0x6d, 0xf8, 0xc5, 0x65, 0x83, 0x23, 0x43, 0xc6, 0x1a, 0x3e, 0x77, 0x19, 0x3c, 0x3e, 0x38, 0x1d, 0x89, 0xac, 0xe1, 0x73, 0x97, 0x81, 0x37, 0x8b, 0x37, 0xbc, 0xad, 0x33, 0xf0, 0x66, 0x71, 0x6d, 0x50, 0xb2, 0xb0, 0xcf, 0x32, 0x0b, 0x78, 0x63, 0x75, 0xe2, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x1c, 0x3f, 0xfc, 0x50, 0xb3, 0x86, 0x3f, 0x97, 0x06, 0xd7, 0x0f, 0x3f, 0xd4, 0xb4, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xf0, 0x78, 0xf8, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0xc1, 0x53, 0xbb, 0x06, 0x27, 0xf6, 0x9b, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xcd, 0xc5, 0xc9, 0x6d, 0x70, 0x62, 0xbf, 0xd9, 0x20, 0x25, 0xcd, 0x69, 0xc3, 0xbb, 0x3d, 0x1b, 0x24, 0x95, 0x43, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x12, 0xe5, 0x9f, 0x0e, 0x12, 0x29, 0x9d, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x89, 0xf2, 0x4f, 0x07, 0xc9, 0x05, 0xac, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x28, 0x98, 0x71, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0xfe, 0x04, 0xda, 0x20, 0x99, 0xd2, 0xe9, 0x20, 0xb9, 0x80, 0xb5, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x81, 0xd7, 0xd3, 0x37, 0x48, 0x32, 0x20, 0xdc, 0x20, 0x78, 0x6a, 0x37, 0x38, 0x35, 0xb7, 0x6d, 0x90, 0x4c, 0xe9, 0xb4, 0x41, 0xca, 0xd7, 0xd3, 0x1a, 0x24, 0x19, 0x10, 0x6e, 0xf8, 0x13, 0x68, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x05, 0x33, 0x4e, 0x07, 0x89, 0x94, 0x4e, 0x6b, 0x90, 0x64, 0x40, 0xb8, 0x41, 0xf0, 0xd4, 0x6e, 0x70, 0xba, 0xc8, 0x38, 0x88, 0x7c, 0x1b, 0xa7, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x14, 0xcc, 0x38, 0x1d, 0x24, 0x17, 0xb0, 0xd6, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0x0c, 0xca, 0x3e, 0x88, 0x95, 0x17, 0xa7, 0x35, 0xbc, 0xad, 0x33, 0xf0, 0x78, 0x78, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x62, 0xa0, 0xc7, 0x69, 0x0d, 0x6f, 0xeb, 0x0c, 0xbc, 0x9e, 0x5e, 0xcd, 0x02, 0xde, 0x5c, 0x9c, 0xbc, 0xe1, 0x17, 0xa5, 0x0d, 0x5f, 0x2e, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0xe0, 0xa9, 0xdd, 0xf0, 0xb4, 0xce, 0xe1, 0xa1, 0x9f, 0xd5, 0xa0, 0x38, 0xd5, 0xde, 0xf0, 0x8b, 0xd2, 0x86, 0x2f, 0x97, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0xa9, 0x68, 0x49, 0x07, 0xd1, 0xce, 0xe2, 0xb4, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0x0a, 0xb8, 0xc1, 0xe9, 0x48, 0xe4, 0x20, 0x58, 0x59, 0x0f, 0x0f, 0xfd, 0x1c, 0x4e, 0xb1, 0x05, 0xbc, 0x31, 0xb6, 0x70, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x14, 0xd9, 0x9e, 0xc3, 0x0f, 0x35, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x1b, 0xac, 0x32, 0x0c, 0xdd, 0xf0, 0x6e, 0xcf, 0x06, 0x47, 0xef, 0xb8, 0x35, 0xfc, 0x08, 0xb3, 0xa1, 0xe6, 0x07, 0x81, 0x5f, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0x44, 0xb3, 0x1b, 0x14, 0x95, 0xe2, 0x1b, 0x14, 0xa9, 0xe3, 0x07, 0xc9, 0x52, 0x9c, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x68, 0x69, 0xe8, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x28, 0xbb, 0x37, 0x48, 0x81, 0x4e, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x1c, 0xbd, 0xe3, 0x36, 0x58, 0x4a, 0x4d, 0xb7, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x89, 0x66, 0x37, 0x28, 0x2a, 0xc5, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0x67, 0x6f, 0xbc, 0x83, 0x82, 0x78, 0xfc, 0x20, 0x59, 0x8a, 0xb3, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x36, 0x58, 0x21, 0x2e, 0xbf, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0xa2, 0xd9, 0x0d, 0x8a, 0x4a, 0xf1, 0x35, 0xfc, 0xe2, 0xb2, 0xe1, 0x31, 0x99, 0x0d, 0x52, 0xb6, 0x3c, 0x3b, 0x48, 0x96, 0xe2, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0x65, 0x71, 0xf4, 0x06, 0x45, 0xa5, 0xf8, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0x2f, 0x2e, 0x1b, 0x1e, 0x93, 0x39, 0x58, 0x72, 0x97, 0xbf, 0x86, 0x5f, 0x5c, 0x36, 0x48, 0xd9, 0xf2, 0xdc, 0x60, 0xb1, 0xc2, 0x7c, 0x6b, 0xf8, 0xc5, 0x65, 0xc3, 0x63, 0x32, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x43, 0x4b, 0x43, 0xeb, 0xa0, 0xac, 0xf3, 0x6c, 0x05, 0xbc, 0xb1, 0x30, 0x72, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0xee, 0x1e, 0x44, 0x12, 0x8c, 0xd3, 0x1a, 0xfe, 0x5c, 0x1a, 0xbc, 0x3d, 0x88, 0x24, 0x18, 0xa7, 0x35, 0xfc, 0xb9, 0x34, 0x38, 0x79, 0x10, 0x49, 0x30, 0x4e, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x3c, 0x1e, 0xbe, 0x41, 0x92, 0x01, 0xe1, 0x06, 0xc1, 0x53, 0xbb, 0xc1, 0xa9, 0xb9, 0x6d, 0x0d, 0x6f, 0xeb, 0x0c, 0xae, 0x1f, 0x14, 0xf9, 0xb2, 0x6b, 0x70, 0x62, 0xbf, 0xd9, 0x20, 0x0a, 0x66, 0x9c, 0x36, 0x38, 0xb1, 0xdf, 0x6c, 0x90, 0x92, 0xe6, 0xb4, 0x41, 0xd1, 0x69, 0xbc, 0x41, 0x52, 0x39, 0xd4, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x51, 0xfe, 0x69, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x3c, 0xb5, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0xfc, 0xe0, 0x7c, 0x3a, 0xb1, 0x86, 0xb7, 0x75, 0x06, 0xc7, 0x0f, 0x86, 0xdd, 0x6e, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x44, 0xf9, 0xa7, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xf0, 0xd4, 0xae, 0xe1, 0x6d, 0x9d, 0xc1, 0xf5, 0x83, 0xf3, 0xe9, 0xc4, 0x1a, 0xde, 0xd6, 0x19, 0x5c, 0x3f, 0x18, 0x76, 0xbb, 0xd5, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0xc0, 0xeb, 0xe9, 0x1b, 0x24, 0x19, 0x10, 0x6e, 0x10, 0x3c, 0xb5, 0x1b, 0x9c, 0x9a, 0xdb, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf8, 0x41, 0x91, 0x2f, 0xbb, 0x06, 0x27, 0xf6, 0x9b, 0x0d, 0xa2, 0x60, 0xc6, 0x69, 0x83, 0x13, 0xfb, 0xcd, 0x06, 0x29, 0x69, 0x4e, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x24, 0x95, 0x43, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x12, 0xe5, 0x9f, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xc1, 0x53, 0xbb, 0x41, 0x9c, 0x64, 0x39, 0x1d, 0xc4, 0xf7, 0x96, 0x53, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0x51, 0xfe, 0x69, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x3c, 0xb5, 0x1b, 0xc4, 0xd2, 0x96, 0xd3, 0x41, 0xec, 0x66, 0x39, 0xd5, 0x41, 0x3c, 0xf2, 0x38, 0x1d, 0x4e, 0xb1, 0x0e, 0xa7, 0x58, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x1b, 0xb4, 0xff, 0xd1, 0x79, 0x70, 0x22, 0x5f, 0xd9, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0x3c, 0x3d, 0x78, 0x44, 0x0d, 0xf7, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xf2, 0x41, 0x63, 0x6c, 0xc2, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0xcf, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0xde, 0x58, 0x9d, 0xd8, 0x41, 0x53, 0x6c, 0xc2, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0xa0, 0x8c, 0x3e, 0x3f, 0x3c, 0x78, 0xb3, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xf8, 0x86, 0x77, 0x7b, 0x36, 0x88, 0x9e, 0x33, 0xa7, 0x83, 0x43, 0x5f, 0xdf, 0x86, 0x77, 0x7b, 0x36, 0x88, 0x81, 0x1e, 0xa7, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xf0, 0xd4, 0xae, 0xe1, 0x92, 0x5a, 0xe3, 0xd0, 0x41, 0x0a, 0xa6, 0x53, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xb4, 0x89, 0xdc, 0x35, 0x5c, 0x52, 0x6b, 0x3c, 0x3f, 0x48, 0xc1, 0x74, 0xaa, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xbc, 0xdd, 0xf0, 0x6e, 0xcf, 0x06, 0x25, 0x3e, 0xee, 0x1a, 0x7e, 0x71, 0xd9, 0xf0, 0xe0, 0xcd, 0x41, 0x69, 0x86, 0x7e, 0x78, 0xe8, 0x67, 0xc3, 0x07, 0x39, 0x6b, 0xf8, 0x37, 0x67, 0xc3, 0x83, 0x37, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0xec, 0x6e, 0x37, 0x38, 0x84, 0x4e, 0x1c, 0x04, 0x2b, 0xeb, 0x1a, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x06, 0x47, 0x9d, 0xb8, 0x35, 0x38, 0xb7, 0xf3, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x63, 0x61, 0x64, 0x1b, 0x1c, 0x3f, 0xf9, 0x36, 0x38, 0x9c, 0xf3, 0x1d, 0x34, 0xc5, 0x26, 0xbc, 0x06, 0x05, 0xcf, 0xe6, 0x41, 0xbc, 0xa6, 0x39, 0xb5, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0x6d, 0x70, 0xd4, 0x89, 0x5b, 0x83, 0x82, 0x67, 0xf3, 0x20, 0x0e, 0xe3, 0x9c, 0xd6, 0xe0, 0xdc, 0xce, 0xb7, 0xe1, 0xdd, 0x9e, 0x0d, 0xa2, 0xe7, 0xcc, 0xe9, 0xe0, 0x24, 0xcf, 0xd7, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x2b, 0xc0, 0x5b, 0x37, 0x57, 0x26, 0xc7, 0x96, 0x26, 0x6e, 0x90, 0x7a, 0x51, 0xbc, 0x41, 0xc9, 0xc2, 0x3e, 0xcb, 0xac, 0xc1, 0x1b, 0x36, 0x78, 0x37, 0x48, 0xbd, 0x28, 0xde, 0x60, 0x15, 0x96, 0xd3, 0x06, 0x51, 0xc5, 0xbc, 0xb4, 0x41, 0xc9, 0xc2, 0x3e, 0xcb, 0xac, 0x41, 0x7b, 0xf8, 0x4b, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x41, 0x03, 0x7f, 0x62, 0x03, 0xf0, 0x30, 0x97, 0xd6, 0x06, 0xc7, 0x56, 0x06, 0x62, 0x96, 0xc6, 0x56, 0x06, 0x72, 0x27, 0x97, 0x46, 0x57, 0xb6, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0x1a, 0xe9, 0xf4, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0xd9, 0xe4, 0xea, 0xe0, 0xbd, 0x08, 0x24, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0xd7, 0xe0, 0xef, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x64, 0x69, 0xf2, 0x06, 0xab, 0x03, 0x96, 0x36, 0x78, 0xfc, 0x0c, 0xe1, 0x86, 0x5f, 0x5c, 0x36, 0x78, 0xa5, 0x0d, 0xe1, 0xc1, 0x12, 0xf2, 0xf4, 0x0d, 0x4a, 0x78, 0xcc, 0x35, 0x18, 0x09, 0x0c, 0x07, 0xcf, 0x4f, 0x42, 0x59, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0xe3, 0xee, 0xe0, 0x6d, 0xf5, 0x7c, 0x07, 0xed, 0xe4, 0xa7, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xdc, 0x1d, 0x3c, 0x57, 0xa1, 0xef, 0xa0, 0x9d, 0xfc, 0xb4, 0x15, 0xf0, 0xcd, 0xde, 0xc2, 0xd8, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xe8, 0x0e, 0x74, 0x6a, 0x00, 0x7f, 0xb4, 0xb4, 0x33, 0xb4, 0x16, 0xb6, 0x32, 0xbb, 0x32, 0x36, 0x90, 0x3b, 0xb9, 0x34, 0xba, 0xb2, 0x0d, 0xbf, 0x28, 0x6d, 0x10, 0x45, 0x7b, 0x4e, 0x1b, 0xfe, 0xa2, 0x59, 0xc3, 0xbf, 0xf3, 0x6b, 0xf0, 0x16, 0x51, 0xbe, 0xda, 0xa0, 0xe0, 0xc3, 0x5c, 0x83, 0x62, 0x12, 0x73, 0x0d, 0x9f, 0x2b, 0x6d, 0x10, 0xa6, 0x63, 0x07, 0x07, 0xb8, 0xa5, 0x83, 0xf5, 0xe5, 0xe9, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0xdb, 0x3a, 0x83, 0xa7, 0x07, 0xef, 0xe4, 0x88, 0x59, 0xc3, 0x2f, 0x2e, 0x1b, 0xac, 0x02, 0x93, 0x5d, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x6d, 0x9d, 0xc1, 0xe9, 0xc1, 0xe9, 0x83, 0x77, 0x72, 0xc4, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0xda, 0x04, 0x94, 0xda, 0x60, 0x11, 0x79, 0xfa, 0x41, 0x3b, 0xf9, 0x69, 0x1d, 0x94, 0x75, 0x9e, 0xd5, 0x6a, 0xf0, 0x68, 0x09, 0xa5, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x47, 0x4b, 0x28, 0x35, 0x80, 0xff, 0x5c, 0x5a, 0x1b, 0x1c, 0x5b, 0x19, 0x88, 0x59, 0x1a, 0x5b, 0x19, 0x08, 0xdb, 0x5b, 0x18, 0xd9, 0x86, 0x5f, 0x94, 0x36, 0x58, 0x23, 0x9d, 0xbe, 0xe1, 0x2f, 0x9a, 0x0d, 0x0e, 0xc3, 0x02, 0x1b, 0x3e, 0xb1, 0xd9, 0x20, 0x82, 0xfa, 0x9c, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x88, 0xaa, 0x3f, 0xa7, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0xbf, 0xb8, 0x6c, 0x50, 0x50, 0x64, 0xae, 0xc1, 0xea, 0x80, 0xa5, 0x0d, 0xc2, 0x74, 0x6c, 0xc3, 0x2f, 0x2e, 0x1b, 0xb4, 0x26, 0x89, 0x7c, 0xb0, 0x84, 0x3c, 0xbd, 0xc3, 0x29, 0xd6, 0x02, 0xbe, 0x99, 0x5c, 0x58, 0xbe, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x10, 0xd7, 0x91, 0x4e, 0x0d, 0xc0, 0x03, 0x5a, 0xda, 0x19, 0x5a, 0x0b, 0x5b, 0x99, 0x5d, 0x19, 0x1b, 0x08, 0x59, 0x19, 0x5b, 0x19, 0x5d, 0xd9, 0x86, 0x5f, 0x94, 0x36, 0x58, 0x23, 0x9d, 0xbe, 0xe1, 0x2f, 0x9a, 0x0d, 0xa2, 0xa1, 0xd0, 0x69, 0x83, 0x82, 0x0f, 0x73, 0x83, 0xe8, 0x2e, 0x74, 0xda, 0xf0, 0x8b, 0xcb, 0x06, 0xd1, 0x74, 0xe8, 0xb4, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0x05, 0x26, 0xbb, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0x7e, 0x71, 0xd9, 0x20, 0x36, 0x12, 0x9d, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xb8, 0x3b, 0x78, 0x99, 0x3b, 0xdf, 0x41, 0x59, 0xe7, 0xd9, 0x41, 0x59, 0xe7, 0x59, 0xad, 0x06, 0xd1, 0xf1, 0x55, 0xb3, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x10, 0x1d, 0x5f, 0x35, 0x0d, 0xe0, 0x59, 0xe7, 0x96, 0x66, 0x96, 0x07, 0x32, 0x86, 0x16, 0xe6, 0x76, 0x56, 0x36, 0xb7, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x3f, 0x97, 0x36, 0x68, 0xff, 0xa3, 0xf3, 0x20, 0x1a, 0x0a, 0x9d, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0x4d, 0x0e, 0x79, 0x1f, 0x44, 0x43, 0xa1, 0x53, 0x1b, 0xfe, 0xa2, 0xd9, 0x20, 0x1a, 0x0a, 0x9d, 0x36, 0x58, 0x52, 0xbf, 0xb4, 0x86, 0x37, 0xee, 0x36, 0xbc, 0x7c, 0x77, 0x10, 0x1d, 0x5f, 0x35, 0x1b, 0x14, 0x7c, 0x98, 0x6b, 0x78, 0x84, 0x75, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0x3c, 0xe6, 0xc2, 0xda, 0xca, 0x40, 0xe0, 0xc2, 0xe8, 0xd0, 0x36, 0xfc, 0x9b, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0x87, 0x0f, 0xda, 0x69, 0x13, 0xde, 0xf0, 0xb6, 0xce, 0xe0, 0xf0, 0x41, 0xa3, 0x51, 0xde, 0x6b, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x25, 0xf6, 0x46, 0x87, 0x06, 0x42, 0x56, 0xc6, 0x46, 0x17, 0x36, 0xb7, 0xe1, 0x11, 0xd6, 0x35, 0x28, 0x26, 0x31, 0x37, 0x08, 0xd8, 0xa0, 0x8d, 0x43, 0x07, 0xed, 0x2d, 0x79, 0xaf, 0x41, 0x31, 0x89, 0xb9, 0x41, 0xc0, 0x06, 0x6d, 0x1c, 0x3a, 0x68, 0x24, 0xca, 0xbb, 0x36, 0xfc, 0xe2, 0xb2, 0x41, 0x3c, 0x83, 0x3a, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0x56, 0x81, 0xc9, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x4e, 0x04, 0x6d, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0xf8, 0xa0, 0xbd, 0x25, 0xef, 0x35, 0xbc, 0xad, 0x33, 0x38, 0x7c, 0xd0, 0x48, 0x94, 0x77, 0x75, 0x38, 0xc5, 0x3a, 0x9c, 0x62, 0x2b, 0xc0, 0x33, 0x37, 0x16, 0xe6, 0x66, 0x6e, 0x78, 0x50, 0x72, 0x0d, 0x0a, 0xe5, 0xce, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0x35, 0x7b, 0x93, 0x6b, 0x0b, 0xa3, 0xa3, 0x2b, 0x23, 0x03, 0x99, 0x1b, 0x0b, 0x73, 0xdb, 0xf0, 0xb9, 0xd2, 0x06, 0x27, 0x3d, 0xd1, 0x35, 0x08, 0xfd, 0x92, 0x0d, 0x42, 0xc5, 0x65, 0x0d, 0x02, 0xe8, 0x6c, 0x83, 0xa5, 0x1f, 0x4d, 0x1b, 0x14, 0x82, 0xa9, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0xa5, 0xcb, 0x55, 0x1b, 0x2c, 0x4d, 0x15, 0x3d, 0x38, 0xe9, 0x89, 0x56, 0x1b, 0x94, 0x12, 0xe2, 0x6b, 0xb8, 0xa4, 0x36, 0x28, 0x6a, 0xc4, 0xd7, 0xe0, 0x18, 0x73, 0xb6, 0xe1, 0x73, 0x97, 0x35, 0x4c, 0xdc, 0xe0, 0x61, 0xb8, 0x78, 0x70, 0x5a, 0x39, 0x6b, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0xce, 0x54, 0xdd, 0xf0, 0xb4, 0xce, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0x3c, 0x70, 0x61, 0x72, 0x73, 0x66, 0x87, 0xb7, 0xd0, 0xda, 0xa0, 0x64, 0x61, 0x9f, 0x65, 0x16, 0xf0, 0xc5, 0xde, 0xd2, 0xd8, 0x0d, 0x0a, 0xe5, 0xce, 0x35, 0x08, 0xfd, 0x92, 0x0d, 0x42, 0xca, 0x64, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0x55, 0x90, 0xc9, 0x1b, 0x2c, 0x4d, 0x15, 0x3d, 0x38, 0x85, 0x8b, 0xb6, 0x41, 0x09, 0x8f, 0xb9, 0xc1, 0x31, 0xe6, 0x6c, 0x83, 0x45, 0x26, 0xa5, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x62, 0x12, 0x73, 0x83, 0x30, 0x02, 0xda, 0x38, 0x74, 0x50, 0xec, 0x9e, 0xaf, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x8e, 0x83, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0x3e, 0x8c, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0x23, 0x0b, 0xaf, 0xe1, 0x6d, 0x9d, 0x83, 0x97, 0xcf, 0xc4, 0xd4, 0x1a, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x1c, 0x63, 0xce, 0x0e, 0x4e, 0x2d, 0x7d, 0xb5, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0xb2, 0x4a, 0xd0, 0x35, 0x28, 0x94, 0x3b, 0x37, 0x38, 0x0f, 0x26, 0x6d, 0xf8, 0xdc, 0x65, 0x0d, 0x13, 0x37, 0x78, 0x1a, 0x4e, 0x1f, 0x9c, 0x56, 0xce, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x8a, 0x8a, 0xd0, 0x0d, 0x62, 0xe7, 0xd6, 0xe9, 0x20, 0x7e, 0x6f, 0x9d, 0x56, 0x83, 0x38, 0x85, 0x75, 0xda, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x88, 0x53, 0x58, 0xa7, 0x06, 0xa0, 0xa1, 0x2d, 0x6c, 0xad, 0x0c, 0x04, 0x2e, 0x4c, 0x6e, 0xae, 0x4c, 0x0e, 0xc4, 0x4c, 0xee, 0xad, 0x4d, 0xb7, 0x41, 0xa1, 0xdc, 0xb9, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xb4, 0xec, 0x88, 0x8c, 0xa1, 0x85, 0xc9, 0xcd, 0xed, 0xc9, 0xd5, 0xb1, 0x95, 0xf5, 0x8d, 0xa1, 0x85, 0xc9, 0xcd, 0x89, 0x36, 0xfc, 0xb9, 0x34, 0x78, 0x78, 0x10, 0x55, 0xab, 0x4e, 0x1b, 0x1c, 0x6d, 0xf8, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xcb, 0x2a, 0x41, 0x37, 0x3c, 0x33, 0xb9, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0xd1, 0x1a, 0xeb, 0xd4, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x3d, 0x18, 0xcc, 0xc3, 0x43, 0x3f, 0xb5, 0x41, 0xa1, 0xdc, 0xb9, 0x41, 0x41, 0xcf, 0xbe, 0x41, 0x09, 0x8f, 0xb9, 0xc1, 0x31, 0xe6, 0x6c, 0x83, 0x82, 0x22, 0x73, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x03, 0x4d, 0xdf, 0x06, 0x65, 0xf4, 0xf9, 0x86, 0x5f, 0x5c, 0x36, 0x28, 0xa3, 0xcf, 0x0f, 0xe2, 0xf7, 0xd6, 0x69, 0xd6, 0xa0, 0xb1, 0x18, 0xcc, 0x0d, 0x0a, 0xe5, 0xce, 0x0d, 0xa2, 0x6a, 0xd5, 0x69, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x63, 0xcc, 0xd9, 0x06, 0x05, 0x45, 0xe6, 0x06, 0xa5, 0x84, 0xf8, 0x1a, 0x2e, 0xa9, 0x0d, 0x8a, 0x1a, 0xf1, 0x35, 0x38, 0xc6, 0x9c, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0x9f, 0xbb, 0x0c, 0x9e, 0x1e, 0x1c, 0xdf, 0x0d, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xf4, 0xc1, 0x39, 0x33, 0xa9, 0x36, 0x58, 0x52, 0x9d, 0xb4, 0x86, 0xcf, 0x5d, 0x06, 0xa7, 0x0f, 0x62, 0xf8, 0xd6, 0x69, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xc0, 0x93, 0xab, 0x63, 0x37, 0x5c, 0x52, 0x6b, 0xf0, 0x52, 0x12, 0x9b, 0x83, 0x62, 0xf7, 0xbc, 0x0d, 0x9f, 0xbb, 0x0c, 0x9e, 0x6e, 0x50, 0xc2, 0x63, 0x2e, 0xe0, 0xc9, 0xd5, 0xb1, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0x96, 0x39, 0xc9, 0xae, 0xe1, 0x73, 0x97, 0xc1, 0xe1, 0x0d, 0x6f, 0xeb, 0x1c, 0xc4, 0x46, 0xb3, 0x53, 0x1b, 0x94, 0xf0, 0x98, 0x6b, 0x3c, 0x3f, 0x88, 0x8d, 0x66, 0xa7, 0x0d, 0x62, 0xad, 0xd9, 0x69, 0x83, 0x82, 0x60, 0x76, 0x0d, 0xa9, 0x83, 0x83, 0xd8, 0x68, 0x76, 0x5a, 0xc3, 0x2f, 0x2e, 0x1b, 0x2c, 0x73, 0x92, 0x5d, 0xc3, 0xe7, 0x2e, 0x83, 0xc3, 0x1b, 0xac, 0x91, 0x6a, 0xda, 0xe0, 0xa4, 0x27, 0x7a, 0x10, 0x41, 0xce, 0x4e, 0x6d, 0xf8, 0xc5, 0x65, 0x83, 0x55, 0x60, 0xb2, 0x07, 0x71, 0xde, 0xec, 0x74, 0x38, 0xc5, 0x3a, 0x9c, 0x62, 0xb3, 0x00, 0xdf, 0x18, 0x9a, 0xdc, 0x9b, 0xdb, 0xbb, 0x41, 0xea, 0x45, 0xf1, 0x06, 0x25, 0x0b, 0xfb, 0x2c, 0xb3, 0x00, 0x1e, 0x66, 0x72, 0x6f, 0x6d, 0x2d, 0x75, 0x6e, 0x69, 0xf8, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0xcc, 0x51, 0x3b, 0x35, 0x00, 0x2f, 0x75, 0x6e, 0x69, 0x78, 0x20, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x40, 0x64, 0x61, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0x9f, 0x4b, 0x03, 0x78, 0xd0, 0xa5, 0xb5, 0x95, 0xcd, 0xd1, 0x85, 0xb5, 0xc1, 0x07, 0x65, 0x96, 0xee, 0x86, 0xbf, 0x68, 0x36, 0x38, 0xf2, 0xb5, 0x6e, 0x50, 0x74, 0x1a, 0x6f, 0xf8, 0x13, 0x68, 0x0d, 0x3f, 0xc2, 0x0c, 0x3c, 0x59, 0x78, 0x10, 0x07, 0x7b, 0x35, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0x78, 0x6a, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0x71, 0x7e, 0xed, 0xd4, 0x06, 0x6f, 0xfb, 0x73, 0x6f, 0x05, 0xbc, 0x3a, 0xb7, 0x76, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0x32, 0xf0, 0xea, 0xdc, 0xda, 0x06, 0xf0, 0xaf, 0x92, 0x13, 0x4b, 0xa3, 0x03, 0xa1, 0x7b, 0x03, 0xa9, 0x72, 0x4b, 0xc3, 0x03, 0x69, 0x9b, 0xdb, 0xf0, 0x8b, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0x3c, 0x38, 0xf2, 0xb5, 0x6e, 0x70, 0xb4, 0xe1, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x84, 0x02, 0xeb, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x78, 0x6a, 0x37, 0x3c, 0x33, 0x79, 0x10, 0xed, 0xb5, 0x4b, 0x07, 0xf1, 0xb6, 0xed, 0xb4, 0xe1, 0xdd, 0x9e, 0x0d, 0x9f, 0x02, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x7f, 0x02, 0x6d, 0x78, 0x5a, 0x67, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x0a, 0xac, 0x1b, 0xbc, 0xed, 0xcf, 0x7d, 0x0d, 0x3f, 0xc2, 0x6c, 0xa8, 0xf9, 0xc1, 0x41, 0x5f, 0x1b, 0x44, 0x70, 0xb6, 0x53, 0x87, 0x53, 0x6c, 0x01, 0x9f, 0x2c, 0xec, 0x6e, 0xde, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x88, 0xea, 0x71, 0xa7, 0x06, 0xf0, 0x23, 0x0b, 0xa3, 0x2b, 0x03, 0xb9, 0x2b, 0x2b, 0x5b, 0x23, 0x0b, 0xcb, 0xdb, 0xf0, 0x8b, 0xd2, 0x1a, 0xfe, 0x5c, 0xda, 0x60, 0xbd, 0xa7, 0xde, 0x41, 0xda, 0x92, 0xe8, 0x06, 0x27, 0xf6, 0x9b, 0x0d, 0xc2, 0xee, 0x76, 0x83, 0x25, 0xd5, 0x49, 0x1b, 0x9c, 0x17, 0x68, 0x36, 0x28, 0x3a, 0x8d, 0x37, 0xfc, 0x09, 0xb4, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x4f, 0xe9, 0x0e, 0x6a, 0x0d, 0x6f, 0xeb, 0x0c, 0x9e, 0x1f, 0xac, 0x7c, 0xd8, 0x6b, 0xc3, 0xbb, 0x3d, 0x1b, 0x3e, 0x05, 0x5c, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0x02, 0x8f, 0xae, 0xe1, 0x17, 0x97, 0x0d, 0x22, 0x28, 0xdd, 0x69, 0x0d, 0x6f, 0xeb, 0x0c, 0xde, 0x1e, 0xac, 0x7c, 0xd8, 0x5b, 0xc3, 0xdb, 0x3a, 0x83, 0x93, 0x07, 0x6d, 0x3d, 0x72, 0xd5, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x15, 0x78, 0x74, 0x83, 0x08, 0x4a, 0x77, 0x3a, 0x28, 0xa0, 0xc8, 0x5b, 0x01, 0x9f, 0xac, 0x6e, 0x8e, 0xde, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x88, 0xd2, 0x76, 0xa7, 0x06, 0xf0, 0x87, 0x93, 0x4b, 0x73, 0xa3, 0x03, 0xa9, 0xa2, 0x1a, 0x02, 0x31, 0x7b, 0x93, 0x6b, 0x0b, 0xa3, 0xdb, 0xf0, 0x8b, 0xd2, 0x06, 0x31, 0x64, 0xee, 0xb4, 0xe1, 0x2f, 0x9a, 0x0d, 0x4e, 0x7a, 0xa2, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x03, 0xde, 0x5d, 0x59, 0xbe, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x54, 0x8f, 0x3b, 0x75, 0xf0, 0x9e, 0x6c, 0x96, 0x0d, 0x0a, 0xd2, 0xd8, 0x0d, 0x1a, 0xfd, 0x23, 0x5c, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x50, 0x72, 0x83, 0x95, 0xa2, 0x89, 0x07, 0x0b, 0x4f, 0xcf, 0x0f, 0x0a, 0xe2, 0xf1, 0x0d, 0x0a, 0xd2, 0xd8, 0x01, 0x0f, 0x2e, 0x6d, 0x5d, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0xee, 0x1e, 0x1c, 0x85, 0x4e, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xf4, 0xc1, 0x42, 0x0b, 0xf8, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0x49, 0x4f, 0x74, 0xc3, 0xbb, 0x3d, 0x1b, 0x1c, 0x2c, 0x04, 0x37, 0x28, 0x2a, 0xc5, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x45, 0xe5, 0xfc, 0x06, 0xc5, 0xd0, 0xee, 0xc1, 0xc9, 0xa9, 0xaf, 0x0d, 0xcf, 0xe2, 0x2d, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x83, 0x4b, 0x5b, 0x5b, 0xc3, 0xdb, 0x3a, 0x03, 0xde, 0x5d, 0x59, 0xde, 0x1a, 0x1e, 0x94, 0x5c, 0xc3, 0xdb, 0x3a, 0x03, 0xde, 0x5d, 0xda, 0xda, 0x86, 0xb7, 0x75, 0x06, 0x3e, 0xaf, 0xae, 0x06, 0x65, 0x83, 0x82, 0x65, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x46, 0x28, 0x09, 0x0f, 0x22, 0x7d, 0xdd, 0xa9, 0x41, 0xc1, 0xb2, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x9c, 0xe6, 0x3b, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0xaf, 0xf9, 0x6c, 0x10, 0x51, 0xeb, 0x4e, 0xad, 0xe1, 0x41, 0xc9, 0x0d, 0x9a, 0xf5, 0xe1, 0x3e, 0x88, 0xb7, 0x7d, 0xa7, 0x1a, 0x14, 0x2c, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0x42, 0x49, 0x78, 0x10, 0x3d, 0xe9, 0x4e, 0x0d, 0x0a, 0x96, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0xa1, 0x24, 0x5c, 0xc3, 0xdb, 0x3a, 0x83, 0xa3, 0x07, 0x6d, 0x3d, 0x72, 0xd5, 0xa0, 0x7a, 0xd9, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x11, 0x4a, 0xc2, 0x35, 0xbc, 0xad, 0x33, 0x78, 0x7b, 0xd0, 0xd6, 0x23, 0x57, 0x0d, 0xaa, 0x97, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0xa1, 0x24, 0x5c, 0xc3, 0xdb, 0x3a, 0x83, 0xcf, 0x07, 0x6d, 0x3d, 0x72, 0xd5, 0x41, 0x1c, 0x7b, 0xd6, 0xac, 0x06, 0x4f, 0xe9, 0x0e, 0xda, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x78, 0x4a, 0x77, 0x50, 0x03, 0x78, 0x2a, 0x85, 0xb9, 0x81, 0xc4, 0x80, 0xdc, 0x95, 0x95, 0xad, 0x91, 0x85, 0xe5, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0x64, 0xaf, 0xcf, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x0d, 0x1a, 0xe8, 0x35, 0xdb, 0xf0, 0x6e, 0xcf, 0x86, 0x4f, 0x01, 0x37, 0x48, 0x5b, 0xff, 0x3c, 0x28, 0x88, 0xc7, 0x37, 0x38, 0xb1, 0xdf, 0x6c, 0x10, 0x76, 0xb7, 0x1b, 0x2c, 0xa9, 0x4e, 0xda, 0xe0, 0xbc, 0x40, 0xb3, 0x41, 0x92, 0x01, 0xe1, 0x86, 0x3f, 0x81, 0x36, 0x3c, 0x26, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x08, 0x9e, 0xda, 0x0d, 0x0e, 0x0b, 0x6c, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xb0, 0xbb, 0xdd, 0xa0, 0xad, 0x66, 0xb3, 0x83, 0x33, 0x73, 0x5b, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xe0, 0xa9, 0xdd, 0xe0, 0xd4, 0xdc, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x08, 0xbb, 0xdb, 0x0d, 0xda, 0x6a, 0x36, 0x3b, 0x48, 0x31, 0x08, 0x6d, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x3c, 0xb5, 0x1b, 0x1c, 0x97, 0x67, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x61, 0x77, 0xbb, 0x41, 0x5b, 0xcd, 0x66, 0x07, 0x09, 0x7f, 0xa1, 0x35, 0x6b, 0x70, 0xd8, 0x3f, 0xdb, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x38, 0xec, 0x9f, 0x35, 0x00, 0x1f, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6c, 0x65, 0x61, 0x70, 0x20, 0x73, 0x65, 0x63, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0x9f, 0x4b, 0x03, 0x1e, 0x5b, 0x59, 0x7e, 0x90, 0xb6, 0x24, 0xba, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xe0, 0xb1, 0x95, 0xc9, 0x1b, 0xde, 0xed, 0xd9, 0x60, 0xe9, 0x94, 0xeb, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xd8, 0xca, 0xf2, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xdc, 0x3d, 0x3c, 0x78, 0xb3, 0xe1, 0x2b, 0x9c, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0xe4, 0x6b, 0xdd, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xf0, 0xd8, 0xca, 0xc8, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x14, 0x70, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x6c, 0x65, 0x72, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xe0, 0xa9, 0xdd, 0xa0, 0x18, 0xda, 0x3d, 0x88, 0xb7, 0x6d, 0xa7, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x48, 0xc3, 0x56, 0xda, 0x20, 0xa2, 0x31, 0x9e, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x3f, 0x81, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x45, 0xe5, 0xfc, 0x06, 0xc5, 0xd0, 0xee, 0x1a, 0x1e, 0x94, 0xdc, 0x60, 0x65, 0x47, 0xef, 0x41, 0xbc, 0xed, 0x3b, 0x75, 0x10, 0x6f, 0xdb, 0x4e, 0xad, 0xe1, 0x6d, 0x9d, 0x01, 0x8f, 0xad, 0x8c, 0x6c, 0xc3, 0x07, 0x39, 0x6b, 0x78, 0x84, 0x75, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x86, 0xad, 0xb4, 0x41, 0x44, 0x63, 0x3c, 0x6d, 0x10, 0xc9, 0x1b, 0x4f, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x5f, 0x9c, 0x1d, 0x44, 0xc2, 0xc6, 0x53, 0x6b, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0xac, 0xe1, 0x6d, 0x9d, 0xc1, 0xe7, 0xc1, 0xe9, 0x83, 0x48, 0xaf, 0x78, 0x3a, 0x48, 0xbe, 0xee, 0x5c, 0xc3, 0xbb, 0x3d, 0x1b, 0x3e, 0x05, 0xdc, 0x20, 0x36, 0x3b, 0x9e, 0x0e, 0xe2, 0x6d, 0xdb, 0xe9, 0x20, 0x36, 0x3b, 0x9e, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0x36, 0x28, 0x8a, 0x78, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0x42, 0xcf, 0xc9, 0x83, 0xf8, 0xe3, 0x78, 0xda, 0x20, 0xba, 0x43, 0x9e, 0x36, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x83, 0x92, 0x86, 0xf7, 0x70, 0x8a, 0xb5, 0x06, 0x87, 0x7f, 0xd3, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xc3, 0xbf, 0x69, 0x03, 0xf8, 0xc3, 0x85, 0xc9, 0xcd, 0x95, 0x81, 0x54, 0x51, 0x0d, 0x81, 0x98, 0xbd, 0xc9, 0xb5, 0x85, 0xd1, 0x6d, 0x78, 0x50, 0x72, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x6f, 0x19, 0x1e, 0xdc, 0xdb, 0x5c, 0x19, 0x08, 0x5c, 0x98, 0xdc, 0x5c, 0x99, 0xdc, 0xdc, 0x86, 0x3f, 0x97, 0x06, 0x0f, 0x0f, 0x4e, 0x40, 0xa2, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x34, 0xfb, 0x72, 0xbc, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x6b, 0x00, 0xbb, 0xe1, 0x69, 0x9d, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xba, 0x56, 0xd2, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xcf, 0x95, 0xc1, 0x85, 0xad, 0xe1, 0x6d, 0x9d, 0x01, 0xbf, 0x8c, 0xad, 0xac, 0xad, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x17, 0x37, 0x08, 0xfd, 0x92, 0x0d, 0x42, 0xca, 0x64, 0x0d, 0x02, 0xe8, 0x6c, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0xc6, 0xc6, 0x5d, 0x83, 0x42, 0x30, 0x75, 0xc3, 0xbf, 0xf3, 0x1b, 0x44, 0x44, 0xcb, 0x53, 0xb5, 0xe1, 0x2f, 0x9a, 0x35, 0x08, 0xfd, 0x92, 0x0d, 0xca, 0x26, 0xcc, 0x0d, 0xd2, 0x96, 0x44, 0xdb, 0xe0, 0x68, 0xc3, 0xb7, 0x06, 0xc5, 0x8e, 0xe6, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0x83, 0x92, 0x6b, 0x78, 0x5b, 0x67, 0xe0, 0xf5, 0xc2, 0x36, 0x3c, 0x28, 0xb9, 0x86, 0xb7, 0x75, 0x06, 0x7c, 0xb2, 0x32, 0xb5, 0xb9, 0x83, 0xd8, 0x68, 0x5e, 0x3a, 0x48, 0x05, 0x1a, 0xdb, 0xa0, 0xa0, 0xc8, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0x67, 0x29, 0xb0, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0x07, 0x25, 0xd7, 0xf0, 0xb6, 0xce, 0xc0, 0xeb, 0xc1, 0x1d, 0x44, 0x9d, 0xcc, 0xd3, 0x41, 0x2a, 0xd0, 0x58, 0x1b, 0xbe, 0x7e, 0x59, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0x0a, 0xc1, 0xd4, 0x83, 0xb4, 0x25, 0xd1, 0x35, 0x7c, 0xee, 0x32, 0x78, 0x7d, 0x50, 0x36, 0x61, 0xb6, 0x41, 0x21, 0x98, 0xba, 0xe1, 0x73, 0xa5, 0x35, 0x08, 0xfd, 0x92, 0x0d, 0x12, 0x43, 0xaf, 0xd6, 0x20, 0x80, 0xce, 0x36, 0xfc, 0xe2, 0xb2, 0xe1, 0x69, 0x9d, 0x83, 0xf4, 0x6a, 0xa7, 0xd6, 0x20, 0xf4, 0x4b, 0x36, 0x48, 0x0c, 0xbd, 0x5a, 0x83, 0x00, 0x3a, 0x3b, 0x38, 0x84, 0x4e, 0xb4, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0x62, 0xe8, 0xd5, 0x1a, 0x04, 0xd0, 0xd9, 0x86, 0xb7, 0x75, 0x06, 0x27, 0x0f, 0x0e, 0x34, 0x7d, 0xad, 0x41, 0xe8, 0x97, 0x6c, 0x90, 0x18, 0x7a, 0xb5, 0x06, 0x01, 0x74, 0xb6, 0xe1, 0x92, 0x5a, 0xe3, 0xf9, 0xc1, 0x81, 0xa6, 0xaf, 0x0e, 0x8e, 0x8b, 0x27, 0x1b, 0x1c, 0x5d, 0x07, 0xd7, 0xf0, 0x15, 0xce, 0x06, 0x25, 0x3c, 0xe6, 0x86, 0xcf, 0x83, 0x36, 0x28, 0x28, 0x32, 0x37, 0x28, 0x76, 0x34, 0xd7, 0xa0, 0x98, 0xc4, 0xdc, 0xe0, 0xf1, 0xd4, 0x7b, 0x1b, 0x87, 0x0e, 0x4a, 0x26, 0xd4, 0x0d, 0x0a, 0x99, 0xdb, 0x0d, 0x8e, 0xe1, 0x06, 0x1b, 0x2e, 0xa9, 0x35, 0x9e, 0x1f, 0x94, 0x4c, 0xa8, 0xad, 0xe1, 0x2b, 0x9c, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x9f, 0x07, 0x6d, 0x50, 0x50, 0x64, 0x6e, 0x50, 0xec, 0x68, 0xae, 0x41, 0x31, 0x89, 0xb9, 0xc1, 0xa2, 0x3c, 0xd7, 0x83, 0x18, 0xfd, 0x79, 0x3a, 0x88, 0x00, 0xa0, 0xa7, 0x35, 0x7c, 0x85, 0xb3, 0x41, 0x09, 0x8f, 0xb9, 0xe1, 0xf3, 0xa0, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0x28, 0x26, 0x31, 0x37, 0x38, 0xe7, 0xa6, 0x1c, 0xc4, 0xe8, 0xcf, 0xd3, 0x41, 0x04, 0x00, 0x3d, 0xad, 0xe1, 0x2b, 0x9c, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x9f, 0x07, 0x6d, 0x50, 0x50, 0x64, 0x6e, 0x50, 0xec, 0x68, 0xae, 0x41, 0x31, 0x89, 0xb9, 0xc1, 0xe9, 0xc7, 0xf5, 0x20, 0x46, 0x7f, 0x9e, 0x0e, 0x22, 0x00, 0xe8, 0xa9, 0x0d, 0x4a, 0x16, 0xf6, 0x59, 0x66, 0x81, 0x27, 0x23, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x83, 0x27, 0x23, 0x1b, 0xc0, 0x87, 0xee, 0xee, 0x0d, 0x84, 0x2c, 0xed, 0x2c, 0x8d, 0x6e, 0x6e, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0x55, 0x0d, 0xdd, 0x20, 0xe5, 0xb5, 0x6a, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x8a, 0x86, 0x7e, 0x0d, 0x02, 0x96, 0xf5, 0x20, 0x60, 0x59, 0x0f, 0x16, 0xc2, 0x9a, 0xb6, 0x82, 0xdf, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0xe1, 0x77, 0x03, 0x78, 0x91, 0x85, 0xe5, 0x81, 0xbc, 0x99, 0x81, 0xdc, 0x95, 0x95, 0xad, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x25, 0x76, 0xac, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x73, 0x6e, 0x75, 0x67, 0x07, 0xf1, 0xaa, 0xef, 0xb4, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x98, 0x4c, 0xba, 0xc1, 0x6a, 0x65, 0xd3, 0x5a, 0xc1, 0xc9, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x70, 0xb2, 0x83, 0xb4, 0x4d, 0xce, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x54, 0x35, 0x74, 0x83, 0x94, 0xd7, 0xaa, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x2a, 0x1a, 0xfa, 0x35, 0x3c, 0x26, 0x73, 0x10, 0xb0, 0xac, 0x07, 0x0b, 0x61, 0x4d, 0x5b, 0xc1, 0xdb, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0xf0, 0xb6, 0x83, 0xa5, 0xbe, 0xab, 0x1b, 0xde, 0xed, 0xd9, 0x60, 0x89, 0x1d, 0xeb, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x62, 0x9d, 0x9e, 0x0e, 0xe2, 0xda, 0xdf, 0xe9, 0x20, 0x16, 0x9f, 0x9e, 0x66, 0xc1, 0xf3, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0xf0, 0xbc, 0x83, 0x55, 0x55, 0xae, 0x1b, 0xde, 0xed, 0xd9, 0x60, 0x05, 0xda, 0xea, 0x06, 0xab, 0xc0, 0x64, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x4b, 0x55, 0x43, 0x37, 0x48, 0x79, 0xad, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0xa2, 0xa1, 0xdf, 0x60, 0x41, 0xe6, 0xdb, 0xc1, 0x42, 0x58, 0xd3, 0x3a, 0x9c, 0x62, 0x0b, 0xae, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x86, 0xeb, 0x0d, 0xe0, 0x41, 0x97, 0xd6, 0x56, 0x06, 0xa2, 0xf7, 0xe6, 0x56, 0xb6, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x56, 0x54, 0x84, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x56, 0x41, 0x87, 0xae, 0xe1, 0x59, 0xbc, 0x83, 0xd8, 0xb2, 0xae, 0x69, 0x0d, 0x6f, 0xeb, 0x0c, 0x3c, 0x19, 0xd9, 0x06, 0x11, 0xd9, 0xf5, 0xd4, 0xac, 0x41, 0x54, 0xb4, 0x3c, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x44, 0x45, 0xcb, 0x53, 0x03, 0xf8, 0x91, 0x85, 0xd1, 0x95, 0x81, 0x94, 0xb1, 0x95, 0xb5, 0x95, 0xb9, 0xd1, 0x6d, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xf5, 0xc0, 0xa0, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x15, 0x68, 0xab, 0x1b, 0xac, 0xdd, 0xad, 0x3b, 0x38, 0x39, 0xf5, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x56, 0xa0, 0xad, 0xae, 0xe1, 0x8d, 0xbb, 0x83, 0x47, 0x55, 0xef, 0x1d, 0xa4, 0x57, 0x3b, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x56, 0xa0, 0xad, 0x6e, 0xb0, 0x58, 0xe9, 0xf5, 0xe0, 0x84, 0x40, 0xb1, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x81, 0xb6, 0xba, 0x41, 0x3a, 0x29, 0xd3, 0x41, 0xa9, 0x2e, 0xbb, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x81, 0xb6, 0xba, 0x86, 0x37, 0xee, 0x0e, 0x96, 0x5c, 0x2b, 0x1e, 0x1c, 0x7f, 0x5c, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x2b, 0xd0, 0x56, 0x37, 0x48, 0xf1, 0x75, 0x3a, 0x48, 0x2e, 0x60, 0x6d, 0xd6, 0x20, 0xfe, 0x58, 0x9e, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0xe2, 0x8f, 0xe5, 0xa9, 0x01, 0x3c, 0xe6, 0xca, 0xe0, 0xc2, 0xe4, 0xc2, 0xe8, 0xde, 0xe4, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x7a, 0x60, 0xd0, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x8a, 0x8a, 0xd0, 0x0d, 0x9a, 0x3e, 0xbe, 0x3c, 0x68, 0xaa, 0xd6, 0x75, 0x83, 0xb5, 0xc7, 0xa4, 0x1d, 0x4e, 0xb1, 0xd6, 0x20, 0xd6, 0x9d, 0x9e, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x62, 0xdd, 0xe9, 0xa9, 0x01, 0xfc, 0xe1, 0xde, 0xe6, 0xd2, 0xe8, 0xd2, 0xde, 0xdc, 0x40, 0xd2, 0xdc, 0x40, 0xd8, 0xd2, 0xe6, 0xe8, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x0f, 0x0f, 0x8e, 0x8a, 0xa8, 0x1b, 0x7e, 0x51, 0xda, 0x60, 0xbd, 0xc5, 0xdc, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0x3e, 0x77, 0xd9, 0x60, 0x29, 0x94, 0xe7, 0xe1, 0x31, 0x99, 0x35, 0x7c, 0xee, 0xb2, 0x41, 0x59, 0x58, 0xbc, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0x7a, 0x4e, 0x1e, 0xde, 0x42, 0x6b, 0xc3, 0x57, 0x38, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0xd0, 0x2f, 0xd9, 0xa0, 0x6c, 0xc2, 0x3c, 0x48, 0xc1, 0x9e, 0xda, 0xa0, 0x84, 0xc7, 0xdc, 0xf0, 0xe0, 0xce, 0x06, 0x05, 0x45, 0xe6, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x86, 0xf7, 0x82, 0x36, 0xbc, 0xdb, 0xb3, 0xc1, 0xc1, 0x42, 0x70, 0x83, 0xc2, 0xcb, 0xf8, 0xe0, 0x10, 0xea, 0xb7, 0x06, 0xc7, 0x70, 0x83, 0x83, 0xe5, 0xd0, 0x9e, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0xac, 0x94, 0xf6, 0xdc, 0xf0, 0x71, 0xd4, 0xc1, 0x72, 0x68, 0xcf, 0x83, 0xe2, 0x40, 0x7e, 0x05, 0xa7, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0xc3, 0xe9, 0x06, 0xe0, 0x03, 0xed, 0xad, 0x4e, 0x6e, 0x4e, 0xa7, 0x2d, 0xcd, 0xad, 0x8e, 0xae, 0x6c, 0x4e, 0x67, 0xae, 0x6c, 0x6c, 0x6e, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x65, 0x95, 0xa0, 0x6b, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xd1, 0x83, 0xa3, 0xd0, 0xc9, 0x86, 0x1f, 0x6a, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xed, 0xc1, 0x51, 0xe8, 0x64, 0xc3, 0x0f, 0x35, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0xf9, 0xe0, 0x28, 0x74, 0xd2, 0x06, 0x47, 0xd7, 0xc1, 0x0d, 0x0e, 0xca, 0x74, 0x1b, 0x1c, 0x42, 0x27, 0x0e, 0x4e, 0xf2, 0x7c, 0x1b, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x45, 0x45, 0xe8, 0x06, 0xe5, 0xba, 0xec, 0x06, 0x0b, 0xe1, 0x48, 0x37, 0x28, 0xd7, 0x65, 0x37, 0x58, 0x08, 0x47, 0x7a, 0x50, 0xaa, 0xcb, 0x1e, 0x4e, 0xb1, 0x0e, 0xa7, 0xd8, 0x6a, 0xd0, 0x96, 0x28, 0xe0, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x5b, 0xa2, 0x80, 0x0d, 0xe0, 0x4f, 0xf7, 0x06, 0xc2, 0x56, 0x16, 0x06, 0x07, 0x32, 0x57, 0x36, 0x06, 0x42, 0x97, 0xd6, 0x56, 0xb6, 0xe1, 0x17, 0xa5, 0x35, 0xfc, 0xb9, 0xb4, 0x41, 0xc2, 0x62, 0xe7, 0xc1, 0x91, 0xaf, 0x75, 0xc3, 0x27, 0x36, 0x1b, 0xc4, 0x9c, 0xc5, 0xd3, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x80, 0x97, 0x57, 0x47, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x45, 0xdf, 0x7b, 0x07, 0x29, 0xeb, 0x9f, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0x17, 0xcd, 0x06, 0x69, 0x4b, 0xa2, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0x61, 0x2b, 0x6d, 0x90, 0xb6, 0xfe, 0xb9, 0x86, 0x77, 0x7b, 0x36, 0xfc, 0x09, 0xb4, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x2a, 0xe7, 0x37, 0x28, 0x86, 0x76, 0xd7, 0xf0, 0xa0, 0xe4, 0x06, 0x0b, 0x11, 0x76, 0x0f, 0xe2, 0x6d, 0xdf, 0xa9, 0x83, 0x78, 0xdb, 0x76, 0x6a, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xe8, 0x7b, 0x6f, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x74, 0xca, 0x75, 0x0d, 0x97, 0xd4, 0x02, 0x5e, 0x5e, 0x1d, 0xd9, 0x1a, 0xbc, 0xcd, 0x1e, 0x66, 0xc3, 0xbb, 0x3d, 0x1b, 0xfe, 0x04, 0xda, 0xa0, 0x18, 0xda, 0x5d, 0xc3, 0xdb, 0x3a, 0x83, 0xcf, 0x83, 0xd3, 0x07, 0x31, 0xa4, 0xf8, 0x54, 0xb5, 0xe1, 0x83, 0x9c, 0x35, 0x3c, 0xc2, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x48, 0xc3, 0x56, 0xda, 0x20, 0x6d, 0xfd, 0x73, 0x83, 0xf8, 0x39, 0x7c, 0x6a, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0xe2, 0xec, 0x20, 0x0e, 0x0d, 0x9f, 0x5a, 0xc3, 0x25, 0xb5, 0x41, 0x0c, 0x29, 0x3e, 0xad, 0xc1, 0xdb, 0xec, 0x61, 0x36, 0xbc, 0xdb, 0xb3, 0xe1, 0x4f, 0xa0, 0x0d, 0x8a, 0x22, 0xde, 0x83, 0x48, 0x5c, 0x7c, 0x6a, 0xc3, 0x07, 0x39, 0x6b, 0xf8, 0x37, 0x67, 0x83, 0xa2, 0x88, 0x77, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xf4, 0x9c, 0x3c, 0x88, 0xfa, 0xc3, 0xa7, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xa2, 0xef, 0xbd, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xd2, 0x29, 0xd7, 0x0d, 0xa2, 0xd3, 0xf1, 0xa9, 0x0e, 0xa2, 0x9c, 0xe4, 0xe9, 0x70, 0x8a, 0xad, 0x41, 0x93, 0xb5, 0xb5, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0x4d, 0xd6, 0xd6, 0x36, 0x00, 0x1f, 0x55, 0x72, 0x62, 0x69, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x55, 0x6e, 0x69, 0x78, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0xc6, 0xbc, 0x9d, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x28, 0xb0, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x9f, 0x02, 0x6e, 0x78, 0x5a, 0xe7, 0x20, 0xa6, 0xc6, 0x9d, 0x0e, 0xe2, 0x6d, 0xdb, 0x69, 0x16, 0xf8, 0xbc, 0x7a, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0x32, 0xf8, 0xbc, 0xba, 0x01, 0xf8, 0xa9, 0xa2, 0x1a, 0x02, 0x31, 0x7b, 0x93, 0x6b, 0x0b, 0xa3, 0x03, 0x19, 0x7b, 0x73, 0x9b, 0xa3, 0x0b, 0x73, 0xa3, 0x9b, 0xdb, 0xa0, 0x64, 0x61, 0x9f, 0x65, 0xd6, 0x60, 0xd5, 0xba, 0xee, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0xaa, 0x75, 0xdd, 0x06, 0xf0, 0x67, 0x2b, 0x0b, 0x83, 0x9b, 0x2b, 0x1b, 0x7b, 0x73, 0x23, 0x03, 0x21, 0x0b, 0xa3, 0x2b, 0x9b, 0xdb, 0xf0, 0x17, 0xcd, 0x1a, 0x84, 0x7e, 0xc9, 0x06, 0x21, 0x65, 0x72, 0x70, 0xe0, 0x6b, 0xdd, 0xe0, 0xe8, 0x3a, 0xb8, 0x86, 0x1f, 0x61, 0x06, 0x9e, 0x2c, 0x3c, 0x88, 0xfe, 0x0e, 0x9b, 0x35, 0xfc, 0x08, 0x33, 0xf0, 0x64, 0xe1, 0x41, 0x8c, 0x7c, 0xd8, 0xac, 0xe1, 0x47, 0x98, 0x81, 0x27, 0x0b, 0x0f, 0x22, 0x09, 0xc4, 0x66, 0x0d, 0x3f, 0xc2, 0x0c, 0x3c, 0x59, 0x78, 0x10, 0x6f, 0x21, 0x36, 0x6b, 0xf8, 0x11, 0x66, 0xe0, 0xc9, 0xc2, 0x83, 0xa8, 0x14, 0xb1, 0x59, 0xc3, 0x8f, 0x30, 0x03, 0x4f, 0x16, 0x1e, 0xc4, 0xee, 0x88, 0xcd, 0x1a, 0x7e, 0x84, 0x19, 0x78, 0xb2, 0xf0, 0x20, 0xc2, 0x49, 0x6c, 0xd6, 0xf0, 0x23, 0xcc, 0xc0, 0x93, 0x85, 0x07, 0x71, 0x60, 0x62, 0xb3, 0x86, 0x1f, 0x61, 0x06, 0x9e, 0x2c, 0x3c, 0x88, 0x96, 0x13, 0x9b, 0x35, 0xfc, 0x08, 0x33, 0xf0, 0x64, 0xe1, 0x41, 0x4c, 0xa1, 0xd8, 0xac, 0xe1, 0x47, 0x98, 0x81, 0x27, 0x0b, 0x0f, 0x22, 0x2f, 0xc5, 0x66, 0x0d, 0x3f, 0xc2, 0x0c, 0x3c, 0x59, 0x78, 0x10, 0x9f, 0x2a, 0x36, 0x6b, 0xf8, 0x11, 0x66, 0xe0, 0xc9, 0xc2, 0x83, 0x28, 0x5e, 0xb1, 0x59, 0xc3, 0x8f, 0x30, 0x03, 0x4f, 0x16, 0x1e, 0xc4, 0x3a, 0x8b, 0xcd, 0x1a, 0x7e, 0x84, 0x19, 0x78, 0xb2, 0xf0, 0x20, 0x22, 0x5c, 0x6c, 0xd6, 0xf0, 0x23, 0xcc, 0xc0, 0x93, 0x85, 0x07, 0x71, 0xf3, 0x62, 0xb3, 0x86, 0x1f, 0x61, 0x06, 0x9e, 0x2c, 0x3c, 0x88, 0x2e, 0x18, 0x9b, 0x35, 0xfc, 0x08, 0x33, 0xf0, 0x64, 0xe1, 0x41, 0x0c, 0xc6, 0xd8, 0xac, 0xe1, 0x47, 0x98, 0x81, 0x27, 0x0b, 0x0f, 0x22, 0x55, 0xc6, 0x66, 0x0d, 0x3f, 0xc2, 0x0c, 0x3c, 0x59, 0x78, 0x10, 0xcf, 0x33, 0x36, 0x6b, 0xf8, 0x11, 0x66, 0xe0, 0xc9, 0xc2, 0x83, 0xa8, 0xa7, 0xb1, 0x59, 0xc3, 0x8f, 0x30, 0x03, 0x4f, 0x16, 0x1e, 0xc4, 0x86, 0x8d, 0xcd, 0x1a, 0x7e, 0x84, 0x19, 0x78, 0xb2, 0xf0, 0x20, 0x82, 0x6e, 0x6c, 0xd6, 0xf0, 0x23, 0xcc, 0xc0, 0x93, 0x85, 0x07, 0x71, 0x86, 0x63, 0xb3, 0x86, 0x1f, 0x61, 0x06, 0x9e, 0x2c, 0x3c, 0x88, 0xc6, 0x1c, 0x9b, 0x35, 0xfc, 0x08, 0x33, 0xf0, 0x64, 0xe1, 0x41, 0xcc, 0xea, 0xd8, 0xac, 0xe1, 0x47, 0x98, 0x81, 0x27, 0x0b, 0x0f, 0x22, 0x7b, 0xc7, 0xa6, 0x59, 0xc0, 0xbb, 0x4b, 0x5b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x03, 0xef, 0x2e, 0x6d, 0x6d, 0x80, 0xe7, 0xae, 0xac, 0x6c, 0x6d, 0x6e, 0xc3, 0x5f, 0x34, 0x1b, 0x1c, 0x15, 0x51, 0x37, 0x38, 0xba, 0x0e, 0xae, 0xe1, 0x59, 0xbc, 0x83, 0x98, 0xeb, 0xb1, 0x59, 0xc3, 0xb3, 0x78, 0x07, 0x11, 0xee, 0x63, 0xb3, 0x86, 0x67, 0xf1, 0x0e, 0xe2, 0xfe, 0xc7, 0x66, 0x0d, 0xcf, 0xe2, 0x1d, 0x44, 0x53, 0x90, 0xcd, 0x1a, 0x9e, 0xc5, 0x3b, 0x88, 0x51, 0x21, 0x9b, 0x35, 0x3c, 0x8b, 0x77, 0x10, 0xf9, 0x43, 0x36, 0x6b, 0x78, 0x16, 0xef, 0x20, 0x5e, 0x8a, 0x6c, 0x5a, 0x0d, 0x56, 0xe1, 0xf3, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0x80, 0xa7, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x69, 0x65, 0x74, 0x66, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x6c, 0x65, 0x61, 0x70, 0x2d, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x1b, 0xfe, 0xa2, 0xd9, 0x20, 0xa6, 0x3b, 0x9f, 0x36, 0x38, 0xba, 0x0e, 0xae, 0xe1, 0x47, 0x98, 0x81, 0x27, 0x0b, 0x0f, 0xa2, 0xcd, 0xc8, 0x66, 0x0d, 0x3f, 0xc2, 0x0c, 0x3c, 0x59, 0x78, 0x10, 0x93, 0x47, 0x36, 0x6b, 0xf8, 0x11, 0x66, 0xe0, 0xc9, 0xc2, 0x83, 0xc8, 0x45, 0xb2, 0x59, 0xc3, 0x8f, 0x30, 0x03, 0x4f, 0x16, 0x1e, 0xc4, 0x77, 0x92, 0xcd, 0x1a, 0x7e, 0x84, 0x19, 0x78, 0xb2, 0xf0, 0x20, 0x0a, 0x96, 0x6c, 0xd6, 0xf0, 0x23, 0xcc, 0xc0, 0x93, 0x85, 0x07, 0xb1, 0xc2, 0x64, 0xb3, 0x86, 0x1f, 0x61, 0x06, 0x9e, 0x2c, 0x3c, 0x88, 0xa8, 0x26, 0x9b, 0x35, 0xfc, 0x08, 0x33, 0xf0, 0x64, 0xe1, 0x41, 0xdc, 0x39, 0xd9, 0xac, 0xe1, 0x47, 0x98, 0x81, 0x27, 0x0b, 0x0f, 0xa2, 0xf3, 0xc9, 0x66, 0x0d, 0x3f, 0xc2, 0x0c, 0x3c, 0x59, 0x78, 0x10, 0xc3, 0x50, 0x36, 0x6b, 0xf8, 0x11, 0x66, 0xe0, 0xc9, 0xc2, 0x83, 0x48, 0x8f, 0xb2, 0x59, 0xc3, 0x8f, 0x30, 0x03, 0x4f, 0x16, 0x1e, 0xc4, 0xc3, 0x94, 0xcd, 0x1a, 0x7e, 0x84, 0x19, 0x78, 0xb2, 0xf0, 0x20, 0x6a, 0xa8, 0x6c, 0xd6, 0xf0, 0x23, 0xcc, 0xc0, 0x93, 0x85, 0x07, 0xb1, 0x55, 0x65, 0xb3, 0x86, 0x1f, 0x61, 0x06, 0x9e, 0x2c, 0x3c, 0x88, 0x40, 0x2b, 0x9b, 0x35, 0xfc, 0x08, 0x33, 0xf0, 0x64, 0xe1, 0x41, 0x9c, 0x5e, 0xd9, 0xac, 0xe1, 0x47, 0x98, 0x81, 0x27, 0x0b, 0x0f, 0xa2, 0x19, 0xcb, 0x66, 0x0d, 0x3f, 0xc2, 0x0c, 0x3c, 0x59, 0x78, 0x10, 0xf3, 0x59, 0x36, 0x6b, 0xf8, 0x11, 0x66, 0xe0, 0xc9, 0xc2, 0x83, 0xc8, 0xd8, 0xb2, 0x59, 0xc3, 0x8f, 0x30, 0x03, 0x4f, 0x16, 0x1e, 0xc4, 0x0f, 0x97, 0xcd, 0x1a, 0x7e, 0x84, 0x19, 0x78, 0xb2, 0xf0, 0x20, 0xca, 0xba, 0x6c, 0xd6, 0xf0, 0x23, 0xcc, 0xc0, 0x93, 0x85, 0x07, 0xb1, 0xe8, 0x65, 0xb3, 0x86, 0x1f, 0x61, 0x06, 0x9e, 0x2c, 0x3c, 0x88, 0xd8, 0x2f, 0x9b, 0x35, 0xfc, 0x08, 0x33, 0xf0, 0x64, 0xe1, 0x41, 0x5c, 0x83, 0xd9, 0xac, 0xe1, 0x47, 0x98, 0x81, 0x27, 0x0b, 0x0f, 0xa2, 0x3f, 0xcc, 0x66, 0x0d, 0x3f, 0xc2, 0x0c, 0x3c, 0x59, 0x78, 0x10, 0x23, 0x63, 0x36, 0x6b, 0xf8, 0x11, 0x66, 0xe0, 0xc9, 0xc2, 0x83, 0x48, 0x22, 0xb3, 0xe9, 0x70, 0x8a, 0xad, 0xc1, 0x7a, 0xe3, 0xee, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xf5, 0xc6, 0xdd, 0x0d, 0xf0, 0xb5, 0xbd, 0xb9, 0xd1, 0xa1, 0xcd, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0xa3, 0x22, 0xea, 0x06, 0x47, 0xd7, 0xc1, 0x35, 0x3c, 0x8b, 0x77, 0x10, 0xdf, 0x65, 0x36, 0x6b, 0x78, 0x16, 0xef, 0x20, 0xda, 0xce, 0x6c, 0xd6, 0xf0, 0x2c, 0xde, 0x41, 0x0c, 0xa3, 0xd9, 0xac, 0xe1, 0x59, 0xbc, 0x83, 0x78, 0x50, 0xb3, 0x59, 0xc3, 0xb3, 0x78, 0x07, 0x71, 0xb3, 0x66, 0xb3, 0x86, 0x67, 0xf1, 0x0e, 0xa2, 0x85, 0xcd, 0x66, 0x0d, 0xcf, 0xe2, 0x1d, 0x44, 0x4e, 0x9b, 0xcd, 0x1a, 0x9e, 0xc5, 0x3b, 0x88, 0x33, 0x37, 0x9b, 0x35, 0x3c, 0x8b, 0x77, 0x10, 0xbb, 0x6f, 0x36, 0x6b, 0x78, 0x16, 0xef, 0x20, 0x0a, 0xe3, 0x6c, 0xd6, 0xf0, 0x2c, 0xde, 0x41, 0x6c, 0xcb, 0xd9, 0xac, 0xe1, 0x59, 0xbc, 0x83, 0x88, 0xa0, 0xb3, 0xe9, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x59, 0x00, 0x3f, 0x33, 0xb9, 0xb7, 0xb6, 0x96, 0x3a, 0xb7, 0x34, 0xbc, 0x96, 0xb6, 0x79, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x20, 0xc2, 0xb2, 0x9f, 0x1a, 0x80, 0xbf, 0x3a, 0xb7, 0x34, 0x3c, 0x90, 0xb6, 0x34, 0x36, 0xb6, 0xb4, 0xb9, 0xb2, 0xb1, 0x37, 0x37, 0xb2, 0x39, 0x10, 0xba, 0x37, 0x10, 0x20, 0xb2, 0xb0, 0x0d, 0xbf, 0x28, 0x6d, 0x10, 0xad, 0xd7, 0x4e, 0x1b, 0xfe, 0xa2, 0xd9, 0xe0, 0xc8, 0xd7, 0xba, 0x41, 0xd1, 0x69, 0xbc, 0xe1, 0x4f, 0xa0, 0x0d, 0x22, 0x38, 0xdb, 0x69, 0xc3, 0xbb, 0x3d, 0x1b, 0x84, 0x02, 0xeb, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x78, 0x6a, 0x37, 0x78, 0xdb, 0x9f, 0xfb, 0x06, 0x91, 0xae, 0xed, 0xd4, 0x41, 0xb4, 0xd7, 0x2e, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0x36, 0x6b, 0xf0, 0x08, 0x5d, 0x95, 0x0d, 0x52, 0x2f, 0x8a, 0x37, 0x28, 0x59, 0xd8, 0x67, 0x99, 0x35, 0x88, 0x17, 0x47, 0x9b, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x78, 0x71, 0xb4, 0x69, 0x00, 0x1e, 0xc6, 0xde, 0xe4, 0xc8, 0x40, 0xc4, 0xf2, 0x40, 0xea, 0xdc, 0xd2, 0xf0, 0x40, 0xd8, 0xd2, 0xdc, 0xca, 0x36, 0x28, 0xbb, 0x64, 0x37, 0x88, 0x17, 0x47, 0x9b, 0x0d, 0xde, 0x2c, 0x7c, 0x32, 0x1b, 0x7e, 0x51, 0xda, 0xe0, 0x59, 0x51, 0x2d, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0xac, 0x10, 0x3f, 0x5f, 0xc3, 0x5f, 0x34, 0x6b, 0x10, 0xfa, 0x25, 0x1b, 0x84, 0x94, 0xc9, 0xc1, 0xf1, 0xc9, 0xf5, 0xa0, 0xa0, 0xc8, 0xdc, 0xf0, 0x89, 0xcd, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0xe7, 0x2e, 0x03, 0x9e, 0x58, 0x1e, 0xbd, 0xe1, 0xdd, 0x9e, 0x0d, 0x0a, 0xa2, 0xe5, 0x0d, 0x8a, 0x4a, 0xf1, 0x83, 0x45, 0xe0, 0xe7, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0xb2, 0xb0, 0x78, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0xc5, 0xbf, 0x07, 0x11, 0x8b, 0xfe, 0xd4, 0x06, 0xa5, 0xbd, 0xe5, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0xb4, 0xe6, 0x42, 0x7a, 0x10, 0x57, 0xe6, 0x4f, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x7b, 0x33, 0x33, 0x0f, 0x3f, 0xd4, 0xb4, 0xe1, 0x2f, 0x9a, 0x0d, 0xe2, 0xca, 0xfc, 0x69, 0x83, 0x13, 0xfb, 0xcd, 0x06, 0x85, 0xc5, 0xf2, 0x86, 0xaf, 0x70, 0x36, 0x7c, 0xfd, 0xb2, 0x41, 0x03, 0x34, 0xa4, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x1b, 0xbc, 0x1e, 0xcb, 0xf7, 0xa0, 0xf0, 0x32, 0x5e, 0x83, 0x25, 0xf5, 0x4b, 0x6b, 0x78, 0xe3, 0x6e, 0xc3, 0xcb, 0x77, 0x07, 0x91, 0x33, 0x68, 0x73, 0x10, 0x9e, 0xaa, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xa2, 0x72, 0x7e, 0x83, 0xd7, 0x63, 0xf9, 0x6e, 0xf0, 0x96, 0x97, 0xc9, 0x0e, 0x52, 0x5e, 0xab, 0xd6, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0x59, 0xc3, 0xc7, 0x51, 0x07, 0xaf, 0xc7, 0xf2, 0x3d, 0x28, 0xbc, 0x8c, 0xd7, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xd8, 0x56, 0xde, 0xa0, 0xa8, 0x14, 0x5f, 0xc3, 0xbb, 0x3d, 0x1b, 0x1c, 0x2c, 0x04, 0x0f, 0xa2, 0x27, 0xfe, 0xa9, 0x83, 0xa6, 0xfb, 0x48, 0x37, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x68, 0x9b, 0x86, 0xf4, 0x20, 0x92, 0xe6, 0x9f, 0xd6, 0xe0, 0x99, 0x2f, 0x93, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0xf4, 0x16, 0xb7, 0x41, 0x34, 0xca, 0x3f, 0x1d, 0xc4, 0x61, 0xfc, 0xd3, 0x1a, 0x94, 0x6b, 0xc6, 0x1b, 0xde, 0xed, 0xd9, 0xf0, 0x29, 0xe0, 0x06, 0x85, 0x97, 0xf1, 0x06, 0xd1, 0x28, 0xff, 0xd4, 0x1a, 0xbc, 0x0c, 0xc9, 0xf7, 0xf0, 0xe0, 0x4d, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0xbc, 0x0c, 0xc9, 0xf7, 0x20, 0x1a, 0xe5, 0x9f, 0x5a, 0x0d, 0xe2, 0xad, 0xd2, 0x66, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x20, 0xde, 0x2a, 0x6d, 0x1a, 0x80, 0x0f, 0xb6, 0x34, 0xb7, 0xb2, 0x39, 0x10, 0xba, 0x37, 0x90, 0x3a, 0xb7, 0x34, 0x3c, 0x90, 0xb1, 0x37, 0x39, 0xb2, 0x0d, 0xca, 0x2e, 0xd9, 0x0d, 0xe2, 0xad, 0xd2, 0x66, 0x83, 0x37, 0x0b, 0x9f, 0xcc, 0x86, 0x5f, 0x94, 0x36, 0x88, 0x76, 0xf5, 0xa7, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0x9e, 0x1d, 0xdd, 0xa0, 0xe8, 0x34, 0xde, 0xa0, 0x2c, 0x8e, 0xde, 0xa0, 0xa8, 0x14, 0xdf, 0xa0, 0xe8, 0x34, 0xde, 0xa0, 0x44, 0xaa, 0xde, 0xa0, 0x01, 0x1a, 0xd2, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xe9, 0x83, 0xf3, 0xec, 0xe8, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x71, 0xd4, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x8a, 0x7f, 0x37, 0x28, 0x2a, 0xc5, 0x0f, 0x4e, 0x4e, 0x7d, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xb2, 0xde, 0x76, 0x83, 0xa2, 0x52, 0x7c, 0x83, 0x53, 0x4b, 0xdf, 0x41, 0xba, 0x6b, 0x55, 0x87, 0x53, 0xac, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x3a, 0x9c, 0x62, 0x2b, 0xc0, 0x37, 0x26, 0x97, 0x07, 0x47, 0xf7, 0x6e, 0x90, 0x7a, 0x51, 0xbc, 0xc1, 0x2a, 0x2c, 0xa7, 0x35, 0xbc, 0xad, 0x73, 0xf0, 0x52, 0xe4, 0xba, 0x0d, 0x56, 0x61, 0x39, 0x6d, 0x10, 0xab, 0xf9, 0x30, 0x1b, 0x94, 0x2c, 0xec, 0xb3, 0xcc, 0x02, 0xde, 0xdc, 0x98, 0xbc, 0x41, 0xd9, 0x25, 0x3b, 0xe0, 0xcd, 0x8d, 0xc9, 0x1b, 0xbc, 0x59, 0xf8, 0x64, 0x36, 0x28, 0x59, 0xd8, 0x67, 0x99, 0x05, 0x3c, 0xb4, 0x39, 0x76, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0x32, 0xf0, 0xd0, 0xe6, 0xd8, 0x06, 0xf8, 0xef, 0x56, 0xd8, 0xca, 0xdc, 0xce, 0xe8, 0xd0, 0x36, 0x3c, 0x3e, 0x32, 0xe0, 0xa1, 0xcd, 0xb1, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x1b, 0x1e, 0xa1, 0x5b, 0xc3, 0x9f, 0x4b, 0x03, 0x0f, 0xc7, 0x1e, 0x7e, 0xa8, 0xd9, 0x20, 0xca, 0x40, 0x9b, 0xd6, 0xf0, 0xe7, 0xd2, 0xc0, 0xcf, 0xb1, 0x87, 0x1f, 0x6a, 0x36, 0x58, 0xd1, 0xfb, 0xbe, 0x41, 0x4a, 0x2e, 0xe3, 0x06, 0xf1, 0x10, 0xe3, 0x74, 0x50, 0xf8, 0x03, 0x6f, 0x50, 0xda, 0x5b, 0xae, 0xe1, 0xcf, 0xa5, 0xc1, 0xed, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0x90, 0x32, 0xd9, 0xa0, 0x9c, 0xb3, 0x6d, 0x83, 0x52, 0x42, 0x7c, 0x0d, 0x97, 0xd4, 0x06, 0x45, 0x8d, 0xf8, 0x1a, 0x1c, 0x3c, 0x32, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x91, 0x89, 0xbb, 0x86, 0x5f, 0x5c, 0x36, 0x28, 0x2a, 0xc5, 0xd7, 0xf0, 0xb6, 0xce, 0xc0, 0xc3, 0xb1, 0x75, 0x90, 0x9e, 0x34, 0xb8, 0x06, 0xe7, 0x76, 0xbe, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x64, 0xe2, 0xae, 0xe1, 0x17, 0x97, 0x0d, 0x8a, 0x4a, 0xf1, 0x35, 0xbc, 0xad, 0x33, 0xf0, 0x73, 0x6c, 0x1d, 0x9c, 0xe4, 0xf9, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xbc, 0xde, 0xf0, 0x6e, 0xcf, 0x06, 0xc1, 0x53, 0xbb, 0x86, 0x77, 0x7b, 0x36, 0x08, 0x9e, 0xda, 0x0d, 0x12, 0x02, 0x53, 0x0f, 0x0e, 0x7d, 0x7d, 0x07, 0xc9, 0x05, 0xac, 0x1b, 0x14, 0x7c, 0x98, 0x6b, 0x78, 0x84, 0x75, 0x0d, 0xff, 0xe6, 0x6c, 0x50, 0x0c, 0xed, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x42, 0xbb, 0x77, 0x0d, 0xef, 0xf6, 0x6c, 0x78, 0xcd, 0x67, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0x3a, 0xe0, 0x3b, 0x48, 0xc3, 0xcb, 0xad, 0x35, 0xbc, 0xcd, 0xba, 0xe1, 0xdf, 0x9c, 0x0d, 0x8e, 0x9f, 0x7c, 0x87, 0x07, 0x6f, 0xd6, 0xf0, 0x36, 0xeb, 0x86, 0x7f, 0x73, 0x36, 0x48, 0xf9, 0x7a, 0x3a, 0x3c, 0x78, 0xb3, 0x06, 0x45, 0xa7, 0xf1, 0x86, 0x2f, 0x7e, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xc1, 0x53, 0xbb, 0x41, 0xbc, 0x53, 0x40, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0xaf, 0xf9, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x7f, 0x02, 0x6d, 0x50, 0x0c, 0xed, 0x1e, 0x24, 0x17, 0xb0, 0xd6, 0x86, 0x77, 0x7b, 0x36, 0x28, 0xb4, 0x7b, 0x0f, 0x22, 0xb8, 0xc9, 0x69, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0xe2, 0x6c, 0x83, 0x48, 0x8a, 0x80, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0xda, 0xbd, 0x07, 0x27, 0x6f, 0xbc, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x2f, 0xce, 0x36, 0x88, 0x9a, 0x09, 0xa8, 0x83, 0x48, 0xf5, 0x80, 0x6a, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0x71, 0xc3, 0x27, 0x36, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x72, 0x70, 0x70, 0x1b, 0x14, 0x95, 0xe2, 0x1b, 0x24, 0x86, 0x5e, 0xad, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xc1, 0x89, 0xb1, 0x6d, 0x70, 0xba, 0xc8, 0xd8, 0x20, 0x92, 0x22, 0xa0, 0x36, 0x38, 0x9c, 0xf3, 0x6d, 0x10, 0x35, 0x13, 0x50, 0x1b, 0x1e, 0x93, 0x39, 0x48, 0x0a, 0xbd, 0x6a, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x12, 0xa9, 0x7a, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0x4f, 0x8c, 0x6d, 0x6e, 0x83, 0x78, 0xa7, 0x80, 0x3a, 0x48, 0x05, 0x1a, 0xdb, 0xf0, 0x8b, 0xd2, 0x06, 0xeb, 0xf4, 0xe9, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0xc4, 0x85, 0x40, 0x6d, 0x90, 0x72, 0x5a, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x08, 0x9e, 0xda, 0x83, 0xf4, 0x23, 0xc9, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xb1, 0xad, 0x7c, 0x50, 0xf4, 0xec, 0xb7, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x88, 0x8d, 0xb8, 0xa7, 0x83, 0x94, 0xaf, 0xa7, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xe3, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x2b, 0x9c, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x9f, 0x07, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x0a, 0x8b, 0xe5, 0x83, 0x34, 0xa1, 0xa8, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x83, 0xa2, 0x9a, 0x76, 0x0d, 0x0e, 0xad, 0x2d, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0xa7, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0xde, 0x9c, 0x5c, 0xdb, 0x06, 0xc7, 0x4f, 0xbe, 0x0d, 0x4a, 0x38, 0xda, 0x83, 0x34, 0xbc, 0xdc, 0x35, 0x7c, 0xee, 0x32, 0x38, 0x7d, 0x90, 0x2a, 0x14, 0x55, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x94, 0x48, 0xd5, 0x6b, 0xf8, 0x8b, 0x66, 0x83, 0x08, 0x75, 0x80, 0x3a, 0x3c, 0x33, 0xb9, 0xe1, 0x17, 0xa5, 0x0d, 0xd6, 0xe9, 0xd3, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0x88, 0x0b, 0x81, 0xda, 0xa0, 0xa8, 0x14, 0xdf, 0x20, 0xde, 0x29, 0xa0, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xc5, 0xb6, 0xf2, 0x06, 0x29, 0xa7, 0x55, 0x87, 0x87, 0x7e, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x51, 0x2b, 0x02, 0xb5, 0xc1, 0xe9, 0x22, 0x63, 0x83, 0x48, 0x8a, 0x80, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0xdb, 0xca, 0x1b, 0x14, 0x95, 0xe2, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x73, 0x6c, 0x62, 0x07, 0x87, 0x5e, 0xbe, 0x36, 0x48, 0x0c, 0xbd, 0xda, 0xf0, 0x98, 0xcc, 0x41, 0xa9, 0x2e, 0xbb, 0x02, 0x9e, 0x18, 0xdb, 0xbc, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x19, 0x78, 0x62, 0x6c, 0x73, 0x03, 0xf0, 0x30, 0x07, 0xc7, 0x96, 0x46, 0x07, 0x42, 0xf7, 0x06, 0x32, 0x57, 0x27, 0xc6, 0x96, 0x36, 0x47, 0x37, 0xb7, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0xe1, 0xcb, 0xa5, 0x83, 0xa2, 0xcb, 0x76, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0xc2, 0xee, 0x76, 0x83, 0xd8, 0x88, 0x7b, 0x3a, 0x3c, 0xf4, 0x73, 0x78, 0xf0, 0x66, 0xc3, 0x57, 0x38, 0x1b, 0xfe, 0xa2, 0xd9, 0x20, 0x42, 0x1d, 0xa0, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x7c, 0x1e, 0xb4, 0x41, 0x41, 0x91, 0xb9, 0xe1, 0x17, 0x97, 0x35, 0x7c, 0xee, 0x32, 0x78, 0xba, 0xe1, 0xdd, 0x9e, 0x0d, 0x0e, 0x16, 0x82, 0x1b, 0x9e, 0xd6, 0x59, 0xc3, 0x5f, 0x34, 0x1b, 0x94, 0x73, 0xb6, 0x87, 0xf7, 0x82, 0x5a, 0xc3, 0xe7, 0x2e, 0x83, 0xd3, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x3e, 0x0f, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0xa7, 0xb7, 0xb8, 0x83, 0x18, 0xf6, 0x81, 0xaa, 0x15, 0xf0, 0xf2, 0xe0, 0xe8, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0xc0, 0xcb, 0x83, 0xa3, 0x1b, 0x80, 0x0f, 0x99, 0x1a, 0x1b, 0xb1, 0x34, 0x3a, 0x90, 0xbd, 0xb9, 0x30, 0x36, 0x3a, 0x10, 0xb8, 0xb0, 0xb9, 0xb9, 0xbe, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0xa2, 0x0c, 0xb4, 0xe9, 0x60, 0xb5, 0xa8, 0xf8, 0x86, 0xbf, 0x68, 0x36, 0xfc, 0x50, 0xb3, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xa1, 0xcd, 0xa1, 0x6d, 0x70, 0xba, 0xc8, 0xd8, 0xe0, 0x70, 0xce, 0xb7, 0x86, 0x1f, 0x61, 0x36, 0xd4, 0xfc, 0xe0, 0x01, 0x80, 0x0d, 0x0e, 0x2b, 0x73, 0x1b, 0x1e, 0x93, 0x39, 0x48, 0xc3, 0xfe, 0x5d, 0x01, 0x4f, 0x0e, 0x0e, 0xde, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x0c, 0x3c, 0x39, 0x38, 0xb8, 0x01, 0x78, 0x90, 0x4b, 0x83, 0x5b, 0x31, 0x4b, 0x63, 0x63, 0x2b, 0x93, 0x03, 0x11, 0x63, 0x7b, 0x1b, 0x5b, 0x9b, 0xdb, 0xf0, 0x8b, 0xd2, 0x06, 0x85, 0xc9, 0xef, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xf1, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x88, 0x96, 0x0f, 0x0a, 0x5f, 0xdd, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xef, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xd0, 0x73, 0xf2, 0xe0, 0xd0, 0xcb, 0xb7, 0x41, 0xb1, 0xa3, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x38, 0xe4, 0xb7, 0x1c, 0xde, 0x0b, 0x5a, 0x83, 0x62, 0x47, 0x73, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0xe2, 0x6c, 0x83, 0x43, 0x7e, 0xcb, 0xe1, 0x2d, 0xb4, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xe9, 0x2d, 0x6e, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x14, 0xf0, 0x20, 0x1a, 0x9e, 0xa0, 0x0e, 0x0e, 0xbd, 0x7c, 0x1b, 0xbe, 0x7e, 0xd9, 0xe0, 0x74, 0x24, 0xb2, 0xe1, 0xdd, 0x9e, 0x0d, 0x4e, 0x04, 0x6d, 0x1b, 0x9c, 0x8e, 0x44, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x27, 0x99, 0xb6, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x53, 0xc0, 0x0d, 0xef, 0x05, 0x6d, 0x10, 0xb1, 0x4c, 0x50, 0x1d, 0x14, 0x4e, 0xb2, 0x1d, 0x9c, 0x8e, 0x44, 0x56, 0xc0, 0x43, 0x6b, 0x1b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x03, 0x0f, 0xad, 0x6d, 0x6c, 0x00, 0x3d, 0xa4, 0xa6, 0xa0, 0xa1, 0x96, 0x29, 0xa4, 0xa0, 0x16, 0x99, 0x1a, 0xdb, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x06, 0xa9, 0xc8, 0x8c, 0x07, 0xd1, 0x0e, 0xda, 0xb4, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xa1, 0xb5, 0xb1, 0x6d, 0x90, 0xe6, 0x5d, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x8a, 0x7f, 0x37, 0x28, 0x2a, 0xc5, 0x0f, 0x52, 0x66, 0x1a, 0x37, 0x38, 0xb5, 0xf4, 0x6d, 0x10, 0x7f, 0x01, 0x50, 0xad, 0x80, 0x37, 0x27, 0xd6, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x06, 0xde, 0x9c, 0x58, 0xdb, 0x00, 0xbe, 0x73, 0x63, 0x72, 0x79, 0x70, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x69, 0x78, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x1b, 0xa4, 0xe4, 0x32, 0x1e, 0x14, 0x5d, 0xb6, 0x1b, 0x14, 0x7c, 0x98, 0x6b, 0xf8, 0x37, 0x67, 0x83, 0xd8, 0x88, 0x7b, 0x3a, 0x88, 0xef, 0x13, 0xa8, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x17, 0x97, 0x35, 0x7c, 0xee, 0x32, 0x38, 0xbe, 0xe1, 0xdd, 0x9e, 0x0d, 0x8a, 0xca, 0xf9, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x35, 0x9f, 0x0d, 0xe2, 0xfb, 0x04, 0xaa, 0xc3, 0x5b, 0x68, 0x07, 0xf1, 0x5d, 0xde, 0xb4, 0x41, 0x69, 0x6f, 0xb9, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0xc0, 0xe7, 0x85, 0x07, 0xe5, 0x9c, 0xed, 0x1a, 0xfe, 0x5c, 0x1a, 0xf8, 0x3c, 0xf1, 0xa0, 0x9c, 0xb3, 0x6d, 0xc3, 0x57, 0x38, 0x1b, 0xfe, 0xa2, 0xd9, 0xa0, 0x9c, 0xb3, 0xdd, 0xa0, 0x84, 0xc7, 0xdc, 0xf0, 0x79, 0xd0, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xb0, 0x58, 0x5e, 0xc3, 0xbb, 0x3d, 0x1b, 0x9c, 0x08, 0xda, 0xd6, 0xf0, 0xb6, 0xce, 0xc0, 0xe7, 0x89, 0xad, 0xe1, 0x6d, 0x9d, 0x81, 0xcf, 0x0b, 0xab, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0x52, 0x30, 0x9d, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x49, 0x92, 0xaf, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x43, 0x0c, 0xc4, 0x06, 0xc9, 0x94, 0x4e, 0x07, 0xc9, 0x5c, 0xc3, 0x07, 0x47, 0x95, 0xb9, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0xc2, 0xee, 0xf6, 0xe0, 0x6c, 0x36, 0xb3, 0x41, 0x09, 0x8f, 0xb9, 0xe1, 0xcb, 0xc9, 0x35, 0x28, 0x25, 0xc4, 0x37, 0x9e, 0x6f, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x1b, 0x7e, 0x0f, 0xdc, 0xa0, 0xa8, 0xa6, 0x5d, 0x83, 0x08, 0x29, 0x83, 0xda, 0xf0, 0x8b, 0xcb, 0x1a, 0x3e, 0x77, 0x19, 0x3c, 0x3d, 0x48, 0xa6, 0x74, 0x5a, 0xc3, 0xe7, 0x2e, 0x83, 0xd3, 0x07, 0xb1, 0x4e, 0x06, 0x55, 0x1b, 0x94, 0x12, 0xe2, 0x1b, 0xcf, 0x37, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x0d, 0xbf, 0x07, 0x6e, 0x50, 0x54, 0xd3, 0xae, 0x41, 0xbc, 0x92, 0x41, 0x6d, 0xf8, 0xc5, 0x65, 0x83, 0x18, 0x56, 0x83, 0x5a, 0xc3, 0xe7, 0x2e, 0x83, 0xd3, 0x07, 0x91, 0x47, 0x06, 0x55, 0xb3, 0x06, 0x49, 0x63, 0xaf, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0x49, 0x63, 0xaf, 0x0d, 0xe0, 0x37, 0x17, 0xc6, 0x36, 0x17, 0x26, 0x03, 0x03, 0x82, 0x16, 0x36, 0x87, 0xb6, 0xe1, 0x17, 0xa5, 0x35, 0x3c, 0xf1, 0xbe, 0x86, 0x3b, 0x6d, 0x06, 0xf0, 0xbc, 0x4b, 0xa3, 0x43, 0x03, 0x91, 0x03, 0x91, 0x7b, 0xab, 0x73, 0x23, 0x9b, 0xdb, 0xf0, 0xb9, 0xd2, 0x06, 0x31, 0x08, 0xe3, 0x74, 0x90, 0x96, 0xce, 0xb8, 0x41, 0xc1, 0x87, 0xb9, 0x41, 0xaa, 0xcb, 0xe4, 0x86, 0x4f, 0x6c, 0x36, 0x48, 0xc3, 0x43, 0xdd, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0xd9, 0xa0, 0xc9, 0x43, 0xb1, 0x0d, 0xbf, 0x28, 0x6d, 0xf8, 0x5b, 0x69, 0xc3, 0xbb, 0x3d, 0x1b, 0x1c, 0x62, 0x20, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x45, 0x26, 0xee, 0x06, 0x87, 0x05, 0xb6, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x69, 0xc0, 0xbb, 0x86, 0x5f, 0x5c, 0x0e, 0x8a, 0x3b, 0xe6, 0xc3, 0x5b, 0x68, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0x7c, 0xdc, 0x35, 0xfc, 0xe2, 0xb2, 0xe1, 0xc1, 0x9b, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x53, 0xc0, 0x83, 0x75, 0xce, 0x6e, 0x1d, 0xde, 0x42, 0x6b, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xc0, 0x63, 0x2b, 0x0b, 0x37, 0xfc, 0xa2, 0xb4, 0xe1, 0x6f, 0xa5, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x41, 0xc9, 0x0d, 0x12, 0xc9, 0x55, 0x37, 0xbc, 0xad, 0x73, 0x90, 0xba, 0x8c, 0xba, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xa0, 0xe4, 0x06, 0x87, 0x6d, 0xb8, 0x83, 0x28, 0xdb, 0x83, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0xc4, 0xba, 0x1e, 0xd4, 0xe1, 0xa1, 0x9f, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xac, 0xeb, 0x41, 0x1d, 0xde, 0x42, 0xab, 0x0d, 0x4a, 0x09, 0xf1, 0x35, 0x28, 0x59, 0xd8, 0x67, 0x99, 0x05, 0x3e, 0x8c, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x0c, 0x3e, 0x8c, 0x6d, 0x00, 0xcf, 0x30, 0x32, 0x32, 0x10, 0xba, 0xbb, 0x37, 0x10, 0xb6, 0xb4, 0x39, 0xba, 0xb9, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0xd6, 0xe9, 0xd3, 0x1f, 0x14, 0x5d, 0xb6, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0x17, 0xcd, 0x06, 0xe5, 0x9c, 0xed, 0x06, 0x25, 0x3c, 0xe6, 0x86, 0x07, 0x77, 0x36, 0x28, 0x28, 0x32, 0x37, 0x28, 0xe1, 0x31, 0x37, 0x7c, 0x1e, 0xb4, 0x41, 0x41, 0x91, 0xb9, 0xe1, 0x17, 0x97, 0x35, 0x7c, 0xee, 0x32, 0x78, 0xba, 0xe1, 0xdd, 0x9e, 0x0d, 0x22, 0x83, 0x0f, 0x6a, 0x83, 0x12, 0x3d, 0xff, 0x20, 0x99, 0x6b, 0x78, 0x0d, 0x9f, 0xbb, 0x0c, 0x4e, 0x1f, 0x14, 0x15, 0xfa, 0xad, 0xc0, 0xcb, 0xc9, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0xc1, 0xcb, 0xc9, 0x0d, 0xf0, 0xcb, 0xbd, 0xdd, 0xc9, 0xbd, 0xd5, 0xb9, 0x91, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xf3, 0x83, 0x72, 0xce, 0xb6, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x81, 0xd7, 0x0b, 0x37, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0x3e, 0x4e, 0x6e, 0x0d, 0x8e, 0xae, 0x83, 0x6b, 0xb8, 0xa4, 0xd6, 0x38, 0x74, 0x90, 0x98, 0xed, 0xd4, 0x1a, 0x2e, 0xa9, 0x35, 0xa4, 0x0e, 0x0e, 0x12, 0xb3, 0x9d, 0x5a, 0xc3, 0x25, 0xb5, 0x86, 0x54, 0xcd, 0x41, 0x62, 0xb6, 0x53, 0x6b, 0xb8, 0xa4, 0xd6, 0xb0, 0x57, 0x78, 0x90, 0x98, 0xed, 0x54, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0xbc, 0x9e, 0xb8, 0xe1, 0xdd, 0x9e, 0x0d, 0xe2, 0x3b, 0x11, 0x6a, 0x0d, 0x8e, 0xae, 0x83, 0x6b, 0xb8, 0xa4, 0xd6, 0x60, 0xbc, 0xe9, 0x1c, 0x24, 0x66, 0x3b, 0xb5, 0x86, 0x4b, 0x6a, 0x0d, 0x06, 0xef, 0xe4, 0x41, 0x62, 0xb6, 0x53, 0x6b, 0xb8, 0xa4, 0xd6, 0x60, 0x20, 0x52, 0x1f, 0x24, 0x66, 0x3b, 0xb5, 0x86, 0x4b, 0x6a, 0x0d, 0x02, 0x13, 0xfb, 0x20, 0x31, 0xdb, 0xa9, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0x78, 0xbd, 0x71, 0xc3, 0xbb, 0x3d, 0x1b, 0xc4, 0x77, 0x22, 0xd4, 0x1a, 0x1c, 0x5d, 0x07, 0xd7, 0x70, 0x49, 0xad, 0xc1, 0xa9, 0x1c, 0xf9, 0x20, 0x31, 0xdb, 0xa9, 0x35, 0x5c, 0x52, 0x6b, 0x70, 0xce, 0x4c, 0x3e, 0x48, 0xcc, 0x76, 0x6a, 0x0d, 0x97, 0xd4, 0x1a, 0x14, 0x6e, 0x49, 0x07, 0x89, 0xd9, 0x4e, 0xad, 0xe1, 0x92, 0x5a, 0x83, 0xb3, 0xec, 0xf1, 0x41, 0x62, 0xb6, 0x53, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xf0, 0x7a, 0xe4, 0x86, 0x77, 0x7b, 0x36, 0x88, 0xef, 0x44, 0xa8, 0x35, 0x38, 0xba, 0x0e, 0xae, 0xe1, 0x92, 0x5a, 0x83, 0x92, 0x53, 0xe9, 0x20, 0x31, 0xdb, 0xa9, 0x35, 0x5c, 0x52, 0x6b, 0x50, 0x2e, 0xf6, 0x1c, 0x24, 0x66, 0x3b, 0xb5, 0x86, 0x4b, 0x6a, 0x0d, 0x12, 0x4d, 0x6c, 0x0e, 0x12, 0xb3, 0x9d, 0x5a, 0xc3, 0x25, 0xb5, 0x06, 0x51, 0x70, 0xc2, 0x73, 0x90, 0x98, 0xed, 0x54, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0x72, 0xce, 0x76, 0x83, 0xa3, 0xeb, 0xe0, 0x1a, 0x2e, 0xa9, 0x35, 0x0e, 0x1d, 0x44, 0x8f, 0xcc, 0x53, 0x6b, 0xb8, 0xa4, 0xd6, 0x90, 0x3a, 0x38, 0x88, 0x1e, 0x99, 0xa7, 0xd6, 0x70, 0x49, 0xad, 0x21, 0x55, 0x73, 0x10, 0x3d, 0x32, 0x4f, 0xad, 0xe1, 0x92, 0x5a, 0xc3, 0x5e, 0xe1, 0x41, 0xf4, 0xc8, 0x3c, 0xb5, 0x86, 0x4b, 0x6a, 0x0d, 0x7b, 0x85, 0x03, 0xaf, 0x27, 0xd6, 0x1a, 0x2e, 0xa9, 0x35, 0x0e, 0x1d, 0xc4, 0x8c, 0x27, 0x54, 0x6b, 0xb8, 0xa4, 0xd6, 0x90, 0x3a, 0x38, 0x88, 0x19, 0x4f, 0xa8, 0xd6, 0x70, 0x49, 0xad, 0x21, 0x55, 0x73, 0x10, 0x33, 0x9e, 0x50, 0xad, 0xe1, 0x92, 0x5a, 0x43, 0xaa, 0x66, 0xe0, 0xf5, 0xc6, 0x5a, 0xc3, 0x25, 0xb5, 0x86, 0xbd, 0xc2, 0x83, 0xe8, 0x06, 0x85, 0x6a, 0x0d, 0x97, 0xd4, 0x1a, 0x87, 0x0e, 0xa2, 0x1b, 0x14, 0xaa, 0x35, 0x5c, 0x52, 0x6b, 0x48, 0x1d, 0x1c, 0x44, 0x37, 0x28, 0x54, 0x6b, 0xb8, 0xa4, 0xd6, 0x90, 0x3a, 0x18, 0x78, 0x3d, 0xb2, 0xd6, 0x70, 0x49, 0xad, 0x21, 0x55, 0x73, 0x10, 0x89, 0xa3, 0x50, 0xad, 0xe1, 0x92, 0x5a, 0xc3, 0x5e, 0xe1, 0x41, 0x24, 0x8e, 0x42, 0xb5, 0x86, 0x4b, 0x6a, 0x8d, 0x43, 0x07, 0x91, 0x38, 0x0a, 0x55, 0x2b, 0xf0, 0x64, 0xf2, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0x65, 0xf0, 0x64, 0x72, 0x03, 0x78, 0x91, 0xbd, 0xd5, 0x89, 0xb1, 0x95, 0xc9, 0xbd, 0xd5, 0xb9, 0x91, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xf1, 0x83, 0x72, 0xce, 0xb6, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x81, 0x97, 0x93, 0x5b, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0xe0, 0xc7, 0xe4, 0x0e, 0x12, 0x29, 0x9d, 0x3a, 0x9c, 0x62, 0x2d, 0xf0, 0x63, 0xf2, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0x65, 0xf0, 0x63, 0x72, 0x03, 0x78, 0x8d, 0xbd, 0xb1, 0xd5, 0xb5, 0xb9, 0xc9, 0xbd, 0xd5, 0xb9, 0x91, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0x08, 0x40, 0x85, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xf8, 0xbc, 0x70, 0xc3, 0xbb, 0x3d, 0x1b, 0xc4, 0x77, 0x22, 0xd4, 0x1a, 0x1c, 0x5d, 0x07, 0x37, 0x88, 0xb5, 0x35, 0xa7, 0x35, 0x5c, 0x52, 0x6b, 0x10, 0x98, 0xd8, 0x07, 0x29, 0x98, 0x4e, 0xad, 0xe1, 0x92, 0x5a, 0x83, 0xc2, 0x2d, 0xe9, 0x20, 0x05, 0xd3, 0xa9, 0x35, 0x5c, 0x52, 0x6b, 0x50, 0x2e, 0xf6, 0x1c, 0xa4, 0x60, 0x3a, 0x55, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x03, 0x9f, 0x27, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0xf8, 0x4e, 0x84, 0x5a, 0x83, 0xa3, 0xeb, 0xe0, 0x1a, 0x2e, 0xa9, 0x35, 0x18, 0x6f, 0x3a, 0x07, 0x29, 0x98, 0x4e, 0xad, 0xe1, 0x92, 0x5a, 0x83, 0xb3, 0xec, 0xf1, 0x41, 0x0a, 0xa6, 0x53, 0x6b, 0xb8, 0xa4, 0xd6, 0x20, 0xd1, 0xc4, 0xe6, 0x20, 0x05, 0xd3, 0xa9, 0x35, 0x5c, 0x52, 0x6b, 0x48, 0x1d, 0x1c, 0xa4, 0x60, 0x3a, 0x55, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x03, 0x9f, 0x37, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0xf8, 0x4e, 0x84, 0x5a, 0x83, 0xa3, 0xeb, 0xe0, 0x1a, 0x2e, 0xa9, 0x35, 0x38, 0x95, 0x23, 0x1f, 0xa4, 0x60, 0x3a, 0xb5, 0x86, 0x4b, 0x6a, 0x0d, 0xa2, 0xe0, 0x84, 0xe7, 0x20, 0x05, 0xd3, 0xa9, 0x35, 0x5c, 0x52, 0x6b, 0x48, 0xd5, 0x1c, 0xa4, 0x60, 0x3a, 0xb5, 0x86, 0x4b, 0x6a, 0x0d, 0x06, 0xef, 0xe4, 0x41, 0x0a, 0xa6, 0x53, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xf0, 0x79, 0xe4, 0x86, 0x77, 0x7b, 0x36, 0x88, 0xef, 0x44, 0xa8, 0x35, 0x38, 0xba, 0x0e, 0xae, 0xe1, 0x92, 0x5a, 0x83, 0x92, 0x53, 0xe9, 0x20, 0x05, 0xd3, 0xa9, 0x35, 0x5c, 0x52, 0x6b, 0xd8, 0x2b, 0x3c, 0x48, 0xc1, 0x74, 0x6a, 0x0d, 0x97, 0xd4, 0x1a, 0x0c, 0x44, 0xea, 0x83, 0x14, 0x4c, 0xa7, 0xd6, 0x70, 0x49, 0xad, 0xc1, 0x39, 0x33, 0xf9, 0x20, 0x05, 0xd3, 0xa9, 0xda, 0xf0, 0x17, 0xcd, 0x06, 0xe5, 0x9c, 0xed, 0x06, 0x47, 0xd7, 0xc1, 0x35, 0x5c, 0x52, 0x6b, 0x1c, 0x3a, 0x88, 0x90, 0x32, 0xa8, 0xd6, 0x70, 0x49, 0xad, 0x61, 0xaf, 0xf0, 0x20, 0x5e, 0xc9, 0xa0, 0x5a, 0xc3, 0x25, 0xb5, 0x86, 0x54, 0xcd, 0xc0, 0xe7, 0x8d, 0xb5, 0x86, 0x4b, 0x6a, 0x0d, 0xa9, 0x83, 0x81, 0xcf, 0x23, 0x6b, 0x0d, 0x97, 0xd4, 0x1a, 0x52, 0x07, 0x07, 0x11, 0x52, 0x06, 0xd5, 0x1a, 0x2e, 0xa9, 0x35, 0x0e, 0x1d, 0xc4, 0x2b, 0x19, 0x54, 0x6b, 0xb8, 0xa4, 0xd6, 0xb0, 0x57, 0x78, 0x10, 0x5f, 0xc0, 0x50, 0xad, 0xe1, 0x92, 0x5a, 0x43, 0xaa, 0xe6, 0x20, 0x02, 0x82, 0xa1, 0x5a, 0xc3, 0x25, 0xb5, 0x86, 0x54, 0xcd, 0x41, 0x84, 0x94, 0x41, 0xb5, 0x86, 0x4b, 0x6a, 0x0d, 0xa9, 0x83, 0x83, 0x78, 0x25, 0x83, 0x6a, 0x0d, 0x97, 0xd4, 0x1a, 0x87, 0x0e, 0xe2, 0x0b, 0x18, 0xaa, 0x35, 0x5c, 0x52, 0x6b, 0xd8, 0x2b, 0x3c, 0x88, 0x80, 0x60, 0xa8, 0xd6, 0x70, 0x49, 0xad, 0x61, 0xaf, 0xf0, 0x20, 0x42, 0xca, 0xa0, 0x5a, 0xc3, 0x25, 0xb5, 0x86, 0x54, 0xcd, 0x41, 0xbc, 0x92, 0x41, 0xb5, 0x86, 0x4b, 0x6a, 0x0d, 0xa9, 0x83, 0x83, 0xf8, 0x02, 0x86, 0x6a, 0x0d, 0x97, 0xd4, 0x1a, 0x87, 0x0e, 0x22, 0x20, 0x18, 0xaa, 0x66, 0x81, 0x8f, 0x93, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x83, 0x8f, 0x93, 0x1b, 0xc0, 0x2f, 0xae, 0x2e, 0x4c, 0x8e, 0xae, 0x4c, 0x4e, 0xee, 0xad, 0xce, 0x8d, 0x6c, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0x7c, 0xc3, 0xe7, 0x4a, 0x1b, 0x7e, 0xa8, 0xd9, 0xf0, 0x43, 0xcd, 0x86, 0x1f, 0x6a, 0x0e, 0x56, 0xbe, 0xbe, 0x6f, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0xbc, 0x9e, 0xb8, 0xe1, 0xdd, 0x9e, 0x0d, 0x0e, 0x31, 0x10, 0x1b, 0xc4, 0xcc, 0x22, 0xd4, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xc9, 0x47, 0xb1, 0x0d, 0xce, 0x0b, 0x34, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xc8, 0xe0, 0x83, 0xda, 0x20, 0x2e, 0x15, 0xa1, 0x0e, 0x62, 0x90, 0x11, 0xaa, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x5e, 0x6f, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0x87, 0x18, 0x88, 0x0d, 0xa2, 0x7b, 0x11, 0x6a, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xe4, 0xa3, 0xd8, 0x06, 0x29, 0xa7, 0x55, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xc8, 0xe0, 0x83, 0x5a, 0xc3, 0xdb, 0x3a, 0x07, 0x31, 0xe3, 0x09, 0xb5, 0x41, 0x5c, 0x2a, 0x42, 0x55, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x03, 0xaf, 0x47, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x43, 0x0c, 0xc4, 0x06, 0x71, 0xc8, 0x08, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x68, 0xf2, 0x51, 0x6c, 0x83, 0xd3, 0x2a, 0xdc, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x32, 0xf8, 0xa0, 0xd6, 0xf0, 0xb6, 0xce, 0x41, 0x74, 0x83, 0x42, 0x6d, 0x10, 0x2d, 0xd3, 0x50, 0xd5, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0xc0, 0xeb, 0x85, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0x10, 0x03, 0xb1, 0x41, 0x5c, 0x2a, 0x42, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x9a, 0x7c, 0x14, 0xdb, 0x20, 0x55, 0x17, 0x77, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x19, 0x7c, 0x50, 0x6b, 0x78, 0x5b, 0xe7, 0x20, 0x12, 0x47, 0xa1, 0x36, 0x88, 0x5c, 0x6b, 0xa8, 0x6a, 0x83, 0xa3, 0xeb, 0xe0, 0x06, 0x71, 0x20, 0xf3, 0xb4, 0x41, 0xb4, 0x4c, 0x43, 0x6d, 0x10, 0xb9, 0xd6, 0x50, 0x1b, 0xc4, 0x91, 0x36, 0x54, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x3c, 0xde, 0xbd, 0xe1, 0xdd, 0x9e, 0x0d, 0x22, 0x2e, 0x04, 0x6a, 0x83, 0xc3, 0x02, 0xdb, 0x06, 0x87, 0x57, 0xb9, 0x83, 0x44, 0x4a, 0xa7, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x81, 0x7f, 0xbb, 0x37, 0x7c, 0x85, 0xb3, 0xe1, 0x2f, 0x9a, 0x0d, 0xca, 0x39, 0xdb, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x0a, 0x9e, 0xcd, 0x35, 0xbc, 0xad, 0x33, 0xf0, 0x78, 0x77, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0xc4, 0x36, 0x38, 0xd4, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0xc0, 0x93, 0xc9, 0x6d, 0x10, 0xa5, 0xe0, 0x50, 0xad, 0x41, 0xc1, 0xb3, 0xb9, 0xe1, 0xdd, 0x9e, 0x0d, 0x9f, 0x02, 0x1e, 0x24, 0x27, 0x59, 0xb5, 0xe1, 0xdd, 0x9e, 0x0d, 0x8a, 0x6d, 0xe5, 0x0d, 0x0e, 0x0b, 0x6c, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0x7c, 0x18, 0xdb, 0x06, 0x51, 0x0a, 0x0e, 0xb5, 0x86, 0xb7, 0x75, 0x06, 0xfe, 0xed, 0xae, 0x0e, 0xa7, 0xd8, 0x02, 0x1e, 0x9c, 0xd8, 0xba, 0xe1, 0xf1, 0x91, 0x01, 0x0f, 0x4e, 0x6c, 0xdd, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0xda, 0xf0, 0x08, 0xdd, 0x06, 0x51, 0x06, 0xda, 0x74, 0x50, 0x80, 0x6f, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0xa8, 0x15, 0x81, 0xda, 0xe0, 0x74, 0x91, 0xb1, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x8a, 0x7f, 0x37, 0x28, 0x2a, 0xc5, 0x0f, 0xd2, 0x93, 0x06, 0x37, 0x38, 0x9c, 0xf3, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x8a, 0xe2, 0xdf, 0x0d, 0x8a, 0x4a, 0xf1, 0x83, 0x93, 0x3c, 0xdf, 0x41, 0x01, 0xc8, 0x7f, 0x38, 0xc5, 0x5a, 0xc0, 0x43, 0x6b, 0x63, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x03, 0x0f, 0xad, 0x8d, 0xed, 0x20, 0x4a, 0x13, 0xa0, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0x36, 0x48, 0x45, 0x66, 0x5c, 0xc3, 0x9f, 0x4b, 0x03, 0xbf, 0xc6, 0x1e, 0x7e, 0xa8, 0xd9, 0x20, 0xe2, 0x41, 0x9b, 0xd6, 0xf0, 0xe7, 0xd2, 0xc0, 0xd3, 0xb1, 0x87, 0x1f, 0x6a, 0xda, 0xa0, 0x94, 0x10, 0x5f, 0xc3, 0x25, 0xb5, 0x41, 0x51, 0x23, 0xbe, 0x06, 0x49, 0xd4, 0x55, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xc8, 0xc4, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0x14, 0x95, 0xe2, 0x6b, 0x78, 0x5b, 0x67, 0xe0, 0xd7, 0xd8, 0x3a, 0x48, 0x99, 0x69, 0x5c, 0x83, 0x03, 0x4d, 0xdf, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x32, 0x71, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0x45, 0xa5, 0xf8, 0x1a, 0xde, 0xd6, 0x19, 0x78, 0x3a, 0xb6, 0x0e, 0x4e, 0x4e, 0x7d, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x2e, 0x1e, 0xa4, 0x40, 0xa7, 0x6e, 0x70, 0x1c, 0x9b, 0xd8, 0x20, 0x89, 0xba, 0x6a, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x46, 0x71, 0x83, 0xb8, 0x88, 0x87, 0x3a, 0xbc, 0x85, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x48, 0x9e, 0x8c, 0xdd, 0x20, 0x2e, 0xe2, 0xa1, 0x0e, 0x52, 0x66, 0x1a, 0x37, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x8f, 0x37, 0x28, 0x3a, 0x8d, 0x37, 0x48, 0x9e, 0x8c, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xfe, 0x04, 0xda, 0xf0, 0x5e, 0xd0, 0x41, 0xfc, 0xcb, 0x43, 0x6d, 0x78, 0xb7, 0x67, 0xc3, 0x9f, 0x40, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xd2, 0x80, 0x77, 0x83, 0x55, 0x0f, 0x72, 0x07, 0x27, 0xa7, 0xbe, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x21, 0x06, 0x62, 0x83, 0x34, 0xef, 0xaa, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x62, 0x48, 0xd6, 0x06, 0x45, 0xa5, 0xf8, 0x86, 0xf7, 0x82, 0xd6, 0xf0, 0x23, 0xcc, 0xc0, 0xd7, 0xe1, 0xa1, 0xb6, 0xda, 0xa0, 0xe8, 0x34, 0xde, 0x20, 0x79, 0x32, 0x76, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x13, 0xe8, 0x60, 0xe9, 0x31, 0xdd, 0x86, 0x77, 0x7b, 0x36, 0xfc, 0x09, 0xb4, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x0d, 0x78, 0x37, 0x58, 0xf5, 0x20, 0x77, 0x70, 0xe8, 0xe5, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x1c, 0x62, 0x20, 0x36, 0x48, 0xf3, 0xae, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x24, 0x86, 0x64, 0x6d, 0x50, 0x54, 0x8a, 0x6f, 0x78, 0x2f, 0x68, 0x0d, 0x3f, 0xc2, 0x0c, 0x7c, 0x1d, 0x1e, 0xce, 0x55, 0x2b, 0xe0, 0xa1, 0xcd, 0xa1, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x81, 0x87, 0x36, 0x87, 0x36, 0xc0, 0x37, 0x37, 0x26, 0x97, 0x07, 0x47, 0xb7, 0xe1, 0xf1, 0x91, 0x01, 0x0f, 0x6d, 0x0e, 0xdd, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0xda, 0xf0, 0x08, 0xdd, 0x06, 0x51, 0x06, 0xda, 0x74, 0x10, 0xf5, 0x0c, 0x50, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0x1e, 0xda, 0x1c, 0xdb, 0x06, 0xa7, 0x8b, 0x8c, 0x0d, 0xe2, 0x17, 0x1d, 0x6a, 0x83, 0xc3, 0x39, 0xdf, 0x06, 0xb1, 0x9f, 0x0e, 0xb5, 0x41, 0x31, 0xb4, 0xbb, 0xc1, 0xf1, 0x93, 0x6f, 0x83, 0x94, 0xaf, 0xa7, 0x83, 0x52, 0x5d, 0xf6, 0x70, 0x8a, 0x2d, 0xe0, 0xc1, 0x89, 0xb1, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x81, 0x07, 0x27, 0xc6, 0x76, 0x10, 0xa5, 0x09, 0x50, 0x1b, 0x1e, 0x1f, 0x19, 0xf0, 0xe0, 0xc4, 0xd8, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0x8f, 0xd0, 0x6d, 0x10, 0x6d, 0x0b, 0x50, 0x1b, 0x44, 0x19, 0x68, 0xd3, 0x06, 0x91, 0xc5, 0x00, 0x75, 0x50, 0x80, 0x6f, 0x6f, 0x50, 0x4a, 0x88, 0x6f, 0x10, 0xa1, 0x0f, 0x50, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0xa3, 0x07, 0xa9, 0xa7, 0xb1, 0x1b, 0x14, 0x7c, 0x98, 0x6b, 0x78, 0x84, 0x75, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0xe2, 0x77, 0x83, 0x72, 0x5d, 0x76, 0x83, 0x78, 0xe9, 0x80, 0x6a, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0xe2, 0x77, 0xc3, 0xd3, 0x3b, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x42, 0xbb, 0x77, 0x83, 0x94, 0x27, 0xcf, 0x5a, 0xc3, 0xdb, 0xac, 0x1b, 0xfe, 0xcd, 0xd9, 0xf0, 0xf4, 0xce, 0xe1, 0xc1, 0x9b, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x67, 0x37, 0x7c, 0x62, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x08, 0xbb, 0xdb, 0x0d, 0xca, 0x75, 0xd9, 0x83, 0x03, 0x3c, 0xdd, 0x06, 0x25, 0x3c, 0xe6, 0x86, 0x2f, 0x27, 0xd7, 0xa0, 0x94, 0x10, 0xdf, 0x78, 0xbe, 0xe1, 0xdd, 0x9e, 0x0d, 0x42, 0x81, 0xf5, 0x20, 0xa2, 0x24, 0xa2, 0x36, 0x28, 0x25, 0xc4, 0x37, 0x9e, 0x6f, 0xf8, 0x38, 0xea, 0x20, 0x56, 0x27, 0xa2, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x97, 0x37, 0xbc, 0xdb, 0xb3, 0xe1, 0x53, 0xc0, 0x0d, 0xca, 0x75, 0xd9, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xf0, 0xd4, 0x6e, 0x70, 0x50, 0xa6, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x5e, 0xf3, 0x39, 0x48, 0x08, 0xb1, 0xad, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x17, 0x97, 0x0d, 0xe2, 0xe5, 0xb3, 0x69, 0x0d, 0x9f, 0xbb, 0x0c, 0xae, 0x1e, 0x1e, 0x93, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0xaf, 0x87, 0xc7, 0x64, 0xda, 0xa0, 0xe8, 0xd3, 0xdd, 0xe0, 0x40, 0xd3, 0xb7, 0x86, 0xaf, 0x70, 0x36, 0xfc, 0x45, 0xb3, 0xe1, 0x87, 0x9a, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0xdf, 0x28, 0x6e, 0x90, 0xc2, 0x1c, 0x75, 0x90, 0x10, 0x62, 0xbb, 0xc1, 0xa9, 0xa5, 0x6f, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xf0, 0x7a, 0xc3, 0xbb, 0x3d, 0x1b, 0xfe, 0x04, 0xda, 0xe0, 0x70, 0xce, 0xb7, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x0d, 0x78, 0x37, 0x88, 0x5d, 0x09, 0xa8, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xb1, 0xad, 0xbc, 0x41, 0x51, 0x29, 0xbe, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x2c, 0x96, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x11, 0x17, 0x02, 0xb5, 0x41, 0x51, 0x29, 0xbe, 0xc1, 0xa9, 0xb9, 0xed, 0x20, 0x29, 0x80, 0xb5, 0x6a, 0xc3, 0x27, 0x36, 0x1b, 0x44, 0xea, 0x6b, 0xd3, 0x06, 0x45, 0x9f, 0xee, 0x06, 0x01, 0x1e, 0xb4, 0x86, 0xaf, 0x70, 0x36, 0xfc, 0x45, 0xb3, 0xe1, 0x87, 0x9a, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0xdf, 0x28, 0x6e, 0x90, 0xe6, 0x5d, 0x75, 0xf8, 0x45, 0x68, 0x83, 0x62, 0xa4, 0x76, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xf0, 0x78, 0xc3, 0xbb, 0x3d, 0x1b, 0x44, 0xdd, 0x15, 0xd4, 0x06, 0xa7, 0x8b, 0x8c, 0x0d, 0x22, 0x29, 0x02, 0x6a, 0x83, 0xc4, 0xd0, 0xab, 0x35, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0x36, 0x48, 0xf3, 0xae, 0x3a, 0x3c, 0x26, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0xfc, 0x09, 0xb4, 0x41, 0xd4, 0x4c, 0x40, 0x1d, 0x9c, 0x99, 0xdb, 0x0e, 0x0e, 0xca, 0x74, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0x10, 0x04, 0x68, 0x07, 0xa7, 0x23, 0x91, 0x35, 0x08, 0xf0, 0xa0, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0x88, 0x81, 0xd8, 0xa0, 0x18, 0xa9, 0x3d, 0x38, 0xf4, 0xf2, 0xad, 0x41, 0x12, 0x75, 0xd5, 0x86, 0x8f, 0xa3, 0x0e, 0xd2, 0xbc, 0xab, 0xda, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0xe0, 0x40, 0xd3, 0xb7, 0xe1, 0xdd, 0x9e, 0x0d, 0x7f, 0x02, 0x6d, 0x70, 0x6a, 0xe9, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0x06, 0xbc, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xa2, 0x52, 0x7c, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x3c, 0xb5, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x6b, 0x3e, 0x07, 0x49, 0x01, 0xac, 0x07, 0x07, 0x78, 0xba, 0x0e, 0x0a, 0xab, 0xee, 0x0e, 0x92, 0x1c, 0x58, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x91, 0x89, 0xbb, 0x86, 0x5f, 0x5c, 0x36, 0x28, 0x2a, 0xc5, 0x0f, 0x4a, 0x75, 0xd9, 0x83, 0x93, 0x53, 0xdf, 0xe1, 0x14, 0x5b, 0xc0, 0x9b, 0x63, 0x13, 0x37, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xe1, 0x41, 0x84, 0x3a, 0x40, 0xb5, 0xe1, 0x2b, 0x9c, 0x0d, 0x7f, 0xd1, 0x6c, 0x50, 0xce, 0xd9, 0x6e, 0x50, 0xc2, 0x63, 0x6e, 0x78, 0x70, 0x67, 0x83, 0x82, 0x22, 0x73, 0xc3, 0xbb, 0x3d, 0x1b, 0x9c, 0x08, 0xda, 0xd6, 0xf0, 0x17, 0xcd, 0x06, 0xe5, 0x9c, 0xed, 0x41, 0x89, 0x9e, 0x7f, 0x70, 0x38, 0xb8, 0x3b, 0x9c, 0x62, 0x0b, 0x78, 0x73, 0x72, 0xed, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0x65, 0xe0, 0xcd, 0xc9, 0xb5, 0x0d, 0xe0, 0x35, 0x37, 0x26, 0x97, 0x07, 0x47, 0x27, 0xf5, 0xd4, 0x94, 0x86, 0xb7, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0x4a, 0x2e, 0xe3, 0x06, 0x85, 0x97, 0xed, 0x06, 0x2b, 0x7a, 0xdf, 0xdb, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0x23, 0xac, 0x1b, 0xc4, 0x51, 0x17, 0xd4, 0x06, 0x11, 0x6a, 0x01, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0x71, 0xb6, 0x41, 0x31, 0xb4, 0xbb, 0x86, 0x77, 0x7b, 0x36, 0x28, 0xb4, 0x7b, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xc1, 0x53, 0xbb, 0xc1, 0xf1, 0x93, 0xef, 0xe0, 0xe8, 0x2a, 0x57, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xed, 0x0d, 0x0a, 0xc1, 0xd4, 0x83, 0x08, 0x75, 0x80, 0x3a, 0x88, 0xef, 0xf2, 0xa6, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0x0e, 0xad, 0x2d, 0x6b, 0xf8, 0x0a, 0x67, 0xc3, 0x5f, 0x34, 0x1b, 0x44, 0xa8, 0x03, 0xd4, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xf7, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x80, 0x37, 0x27, 0xd6, 0xb6, 0xc1, 0xf1, 0x93, 0xef, 0xf0, 0x16, 0xda, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x86, 0xa7, 0x77, 0x0e, 0x8a, 0xa1, 0xdd, 0x0d, 0x62, 0x79, 0x05, 0x6a, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0xdb, 0xf0, 0x7b, 0xe0, 0x1a, 0x1c, 0x5a, 0x5b, 0x36, 0xfc, 0xe2, 0xb2, 0x86, 0xcf, 0x5d, 0x06, 0x4f, 0x0f, 0x8e, 0xb9, 0x83, 0x07, 0x11, 0xf7, 0x02, 0xb5, 0x86, 0xcf, 0x83, 0x0e, 0x0e, 0xf9, 0x2d, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x8e, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0xc8, 0xf8, 0x89, 0xda, 0xe0, 0xf8, 0xc9, 0xb7, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x2a, 0xe7, 0xd7, 0xf0, 0x6e, 0xcf, 0x86, 0xd7, 0x7c, 0x0e, 0xd2, 0xf0, 0x72, 0x0f, 0xd2, 0x84, 0xa2, 0xda, 0xf0, 0x15, 0xce, 0x86, 0xbf, 0x68, 0x36, 0x28, 0xe7, 0x6c, 0x37, 0x7c, 0x90, 0xb3, 0x41, 0x24, 0x01, 0x45, 0x6d, 0x90, 0x4c, 0xe9, 0xb4, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0x78, 0xbc, 0xe1, 0xdd, 0x9e, 0x0d, 0x8a, 0xca, 0xf9, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x35, 0x9f, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xf0, 0xd4, 0x1e, 0x24, 0x27, 0x59, 0x75, 0x90, 0x48, 0xe9, 0xb4, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xb8, 0xbe, 0xe1, 0x2f, 0x9a, 0x0d, 0xca, 0x39, 0xdb, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x54, 0xce, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0xc2, 0xee, 0xf6, 0x20, 0x89, 0x2e, 0xf7, 0x20, 0x4d, 0x28, 0x6a, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xf0, 0x7b, 0xc3, 0x57, 0x38, 0x1b, 0xfe, 0xa2, 0xd9, 0xa0, 0x9c, 0xb3, 0xdd, 0xa0, 0x84, 0xc7, 0xdc, 0x20, 0x05, 0xd3, 0x69, 0x83, 0x82, 0x22, 0x73, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x44, 0x95, 0xa7, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xd3, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0x88, 0x81, 0xd8, 0x20, 0xd6, 0xd6, 0x9c, 0xd6, 0x70, 0x49, 0xad, 0x71, 0xe8, 0x20, 0x51, 0xe5, 0xa9, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xf4, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0x29, 0x98, 0x4e, 0x07, 0x51, 0xc8, 0xe6, 0xb4, 0x06, 0x89, 0x2a, 0x4f, 0x1b, 0x2e, 0xa9, 0x35, 0x9e, 0x1f, 0x24, 0xaa, 0x3c, 0x55, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0xa4, 0x60, 0x3a, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0xc8, 0xf8, 0x89, 0xda, 0xe0, 0xf8, 0xc9, 0x77, 0x70, 0xfc, 0x71, 0x39, 0x7c, 0x1e, 0x78, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0x6a, 0x10, 0xe3, 0xe5, 0x38, 0x1b, 0x94, 0x5d, 0xb2, 0x1b, 0xc4, 0x8e, 0x54, 0xce, 0x06, 0x6f, 0x16, 0x3e, 0x99, 0x0d, 0x4a, 0x16, 0xf6, 0x59, 0x66, 0x0d, 0xde, 0x0c, 0xf2, 0xb9, 0xc1, 0x2a, 0x2c, 0xa7, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x74, 0x8f, 0x10, 0xb5, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0x72, 0x23, 0xec, 0x06, 0x6d, 0xb8, 0x8f, 0xb6, 0xe1, 0x2f, 0x9a, 0x0d, 0x3f, 0xd4, 0x6c, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x6d, 0x73, 0xe7, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x00, 0x3f, 0x9c, 0x5c, 0x19, 0x5c, 0x8b, 0x5b, 0x5d, 0xdb, 0x1a, 0x7e, 0x71, 0x39, 0x48, 0x86, 0x85, 0x3d, 0x28, 0x94, 0xb6, 0x37, 0x7c, 0x90, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0xf1, 0xbb, 0x41, 0xb1, 0xb4, 0x7d, 0x90, 0xae, 0x1d, 0xbb, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0xd1, 0x2a, 0x42, 0xd4, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xda, 0xe6, 0xce, 0xd6, 0xf0, 0xe0, 0xcd, 0xe1, 0xc1, 0x9b, 0x83, 0x42, 0x69, 0x7b, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0x74, 0x09, 0xca, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0xc9, 0x5d, 0x51, 0x1b, 0xc4, 0x94, 0x57, 0xd4, 0x06, 0x91, 0xed, 0x15, 0x75, 0x90, 0xae, 0x1d, 0xbb, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0xb2, 0xc1, 0x31, 0xc3, 0x73, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0xf8, 0xb8, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xa2, 0x52, 0xfc, 0x20, 0xed, 0x34, 0x76, 0x83, 0xd4, 0x4e, 0xca, 0x36, 0x28, 0xfa, 0x74, 0x37, 0x28, 0xb1, 0xb6, 0xd7, 0xf0, 0x6e, 0xcf, 0x86, 0x4f, 0x01, 0x37, 0x28, 0x96, 0xb6, 0x0f, 0xd2, 0x4e, 0x63, 0x37, 0x7c, 0x85, 0xb3, 0xe1, 0x83, 0x9c, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x1b, 0xc5, 0x83, 0x58, 0xe8, 0x8a, 0x5a, 0x83, 0xa2, 0x4f, 0x77, 0x83, 0x84, 0x50, 0xca, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x24, 0x77, 0x45, 0xad, 0x41, 0x0a, 0x74, 0xea, 0x41, 0x6a, 0x27, 0xe5, 0x41, 0xfc, 0x83, 0x45, 0x6d, 0x50, 0xf4, 0xe9, 0x6e, 0x70, 0x06, 0xf3, 0x5c, 0xc3, 0xbb, 0x3d, 0x1b, 0xfe, 0x04, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0x06, 0xbc, 0x1b, 0xc4, 0xad, 0x58, 0xd4, 0x41, 0x43, 0x6b, 0xc9, 0x1b, 0x44, 0x8f, 0x58, 0x54, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x94, 0x58, 0xdb, 0x07, 0x91, 0x43, 0x16, 0xd5, 0x06, 0x45, 0xa7, 0xf1, 0x86, 0x3f, 0x81, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xa5, 0x01, 0xef, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0xa8, 0x14, 0x3f, 0x28, 0x94, 0xb6, 0x0f, 0x1a, 0x5a, 0x4b, 0xde, 0xf0, 0x6e, 0xcf, 0x06, 0x91, 0xdc, 0x15, 0xb5, 0x41, 0x6c, 0x9d, 0x45, 0x1d, 0x44, 0xb5, 0x57, 0xd4, 0x0a, 0xf0, 0xc3, 0xc9, 0x95, 0xc1, 0xb5, 0xdc, 0xa5, 0x91, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0x9f, 0x4b, 0x83, 0x87, 0x07, 0xc9, 0x8d, 0xb0, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0xb2, 0xb5, 0xa2, 0x36, 0x3c, 0xad, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x38, 0x0b, 0x99, 0x1e, 0x1e, 0xdc, 0x69, 0x35, 0x88, 0x89, 0xad, 0xa8, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0x92, 0x1b, 0x61, 0x0f, 0x1a, 0xf8, 0xf0, 0xde, 0xf0, 0x17, 0xcd, 0x06, 0xc9, 0x8d, 0xb0, 0x1b, 0x14, 0x86, 0xaa, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x9f, 0x40, 0x07, 0x31, 0x8d, 0xb4, 0xb4, 0x41, 0xd1, 0x69, 0xbc, 0x41, 0x59, 0x1c, 0xbd, 0x41, 0x51, 0x29, 0xbe, 0xc1, 0xd1, 0x75, 0x70, 0x0d, 0x52, 0x33, 0x61, 0x0f, 0x4a, 0x3f, 0xe3, 0x35, 0x38, 0x35, 0xb7, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0xa4, 0x52, 0xd8, 0x0d, 0x8a, 0x4a, 0xf1, 0x0d, 0x4e, 0xcd, 0x6d, 0x07, 0x4d, 0x50, 0x12, 0x76, 0x38, 0xc5, 0x16, 0xc0, 0xcf, 0x2c, 0x8d, 0x8d, 0xad, 0x65, 0xae, 0xec, 0xac, 0xad, 0xcc, 0x8d, 0xde, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x03, 0x7c, 0x62, 0x75, 0x66, 0x66, 0x65, 0xf2, 0x41, 0x84, 0x3a, 0x40, 0xad, 0xe1, 0xcf, 0xa5, 0x81, 0x46, 0x83, 0x87, 0x1f, 0x6a, 0xd6, 0xf0, 0xe7, 0xd2, 0x80, 0x97, 0x46, 0xe7, 0x1e, 0x94, 0x59, 0xba, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x85, 0x1d, 0x9a, 0x07, 0x65, 0x96, 0xee, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xe4, 0xde, 0xee, 0x83, 0x32, 0x4b, 0x77, 0x0d, 0x7f, 0x2e, 0x6d, 0x70, 0x70, 0x72, 0x3b, 0x28, 0xb3, 0x74, 0xd7, 0xf0, 0xe7, 0xd2, 0x00, 0xef, 0xd8, 0x1b, 0x5b, 0x5d, 0x9b, 0xdb, 0x7c, 0x50, 0x66, 0xe9, 0xae, 0xe1, 0xcf, 0xa5, 0x01, 0x7c, 0xe6, 0xca, 0xce, 0x5a, 0xd8, 0xca, 0xdc, 0xce, 0xe8, 0xd0, 0x83, 0x32, 0x4b, 0x77, 0x0d, 0x7f, 0x2e, 0x0d, 0xf0, 0xd2, 0xa1, 0xc9, 0x95, 0x85, 0x91, 0xcd, 0x07, 0x65, 0x96, 0xee, 0x1a, 0xfe, 0x5c, 0x1a, 0xc0, 0x83, 0x2e, 0xad, 0xad, 0xac, 0x65, 0xec, 0x6d, 0x8e, 0x3e, 0x28, 0xb3, 0x74, 0xd7, 0xf0, 0xe7, 0xd2, 0x06, 0x8d, 0xcf, 0x47, 0x6d, 0xf8, 0x77, 0x7e, 0x01, 0x7c, 0xc2, 0xe4, 0xce, 0xde, 0xdc, 0x5a, 0xe8, 0xf2, 0xe0, 0xca, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0x3c, 0xbf, 0x9a, 0xf7, 0xe0, 0xd8, 0x52, 0xda, 0x06, 0xa5, 0x84, 0xf8, 0x1a, 0x94, 0x2c, 0xec, 0xb3, 0xcc, 0x02, 0xfc, 0x70, 0x75, 0x74, 0x2d, 0x77, 0x6f, 0x72, 0xe4, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xe4, 0xde, 0xc4, 0x83, 0x72, 0xce, 0x76, 0x83, 0x72, 0xe1, 0xfc, 0xa0, 0xf0, 0x07, 0xde, 0xa0, 0xe8, 0x34, 0xde, 0xe0, 0x44, 0xd0, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x58, 0x08, 0x6e, 0x50, 0x46, 0x9f, 0xaf, 0xe1, 0x6d, 0x9d, 0x01, 0x4f, 0xee, 0x4d, 0xac, 0x0d, 0xbf, 0xb8, 0x6c, 0x50, 0xae, 0xcb, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x4e, 0x6f, 0x71, 0x1b, 0x14, 0xc4, 0xe7, 0x07, 0x71, 0x7e, 0x18, 0xd5, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x1b, 0xbe, 0x7e, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0xc4, 0x31, 0x5e, 0x54, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x03, 0x9e, 0xdc, 0x9b, 0xb8, 0xe1, 0xdd, 0x9e, 0x0d, 0x8a, 0xca, 0xf9, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xc9, 0xbd, 0xdd, 0x6d, 0x10, 0x7d, 0x8a, 0x51, 0x6d, 0x50, 0x90, 0xc6, 0xae, 0xe1, 0xfb, 0xf6, 0x01, 0x9f, 0xec, 0xad, 0x25, 0xdd, 0xa0, 0x84, 0x8e, 0xdd, 0xf0, 0xc1, 0xea, 0x41, 0x98, 0x8e, 0xad, 0xe1, 0x57, 0xb2, 0x35, 0x28, 0x26, 0x31, 0x37, 0x38, 0x6a, 0x9d, 0x1c, 0x34, 0xd6, 0x9c, 0xb5, 0x86, 0x47, 0x58, 0xd7, 0xa0, 0x98, 0xc4, 0x5c, 0x43, 0x06, 0xfc, 0xa0, 0x55, 0x9b, 0xd0, 0x83, 0xc6, 0x9a, 0xb3, 0xd6, 0xf0, 0x6f, 0xce, 0x86, 0x07, 0x6f, 0x36, 0xbc, 0xad, 0x33, 0xe0, 0xa5, 0xd1, 0xb9, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x5f, 0xfc, 0x6e, 0xb0, 0x46, 0x52, 0xf3, 0xa0, 0x20, 0x1e, 0x6f, 0x0d, 0x8f, 0xb0, 0xae, 0x41, 0x31, 0x89, 0xb9, 0x41, 0x42, 0x98, 0xd1, 0x41, 0x63, 0xcd, 0x59, 0x1b, 0x44, 0x32, 0x64, 0xd4, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0xc5, 0xef, 0x06, 0x6b, 0x24, 0x35, 0x0f, 0x82, 0x95, 0xb5, 0x36, 0x28, 0x48, 0x63, 0xd7, 0xf0, 0x7d, 0xfb, 0x00, 0x8f, 0x5c, 0x98, 0x1b, 0xd9, 0xbc, 0x41, 0x09, 0x1d, 0xbb, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0x48, 0x99, 0xac, 0x41, 0xe8, 0x97, 0x6c, 0x50, 0x7a, 0xd3, 0x1f, 0x24, 0x34, 0x60, 0x76, 0x10, 0xa6, 0x63, 0x6b, 0x50, 0xec, 0x68, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0xa2, 0xb0, 0x31, 0xaa, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xd9, 0xc3, 0x83, 0x37, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x1b, 0x3c, 0x07, 0xd5, 0xfd, 0xf0, 0x98, 0xcc, 0x86, 0xaf, 0x70, 0x36, 0xfc, 0x45, 0xb3, 0x41, 0x7c, 0x58, 0x46, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x86, 0xad, 0xb4, 0x41, 0xca, 0xdb, 0xd5, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0xaa, 0xfc, 0xa2, 0x6a, 0x83, 0x82, 0x22, 0x73, 0x83, 0xa3, 0x0d, 0xdf, 0x1a, 0xde, 0xed, 0xd9, 0xe0, 0x44, 0xd0, 0xb6, 0xe1, 0x99, 0xc9, 0x35, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0xd5, 0xe0, 0x39, 0xa8, 0xee, 0x6d, 0xf8, 0x38, 0x6a, 0xc3, 0xdb, 0x3a, 0x07, 0x91, 0xe2, 0x19, 0xb5, 0x06, 0x83, 0x54, 0x6a, 0xc3, 0xbb, 0x3d, 0x1b, 0xfe, 0x04, 0xda, 0x20, 0xe5, 0xed, 0xea, 0x20, 0x19, 0x30, 0xb5, 0x36, 0x28, 0x48, 0x63, 0xd7, 0xf0, 0x7d, 0xfb, 0x00, 0x7e, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0xeb, 0x41, 0x73, 0xae, 0xe2, 0x6b, 0x50, 0x74, 0x1a, 0xaf, 0xe1, 0x6d, 0x9d, 0x0d, 0xe2, 0xc0, 0x60, 0xa8, 0x0d, 0x0f, 0xde, 0x6c, 0x50, 0x74, 0x1a, 0x6f, 0x10, 0x4b, 0xa2, 0x51, 0x1b, 0x1e, 0xbc, 0xd9, 0xa0, 0xe8, 0x34, 0xde, 0xa0, 0x34, 0xe0, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0x14, 0x95, 0xe2, 0x6b, 0xf8, 0x11, 0x66, 0x43, 0xcd, 0x0f, 0x0a, 0x79, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x14, 0xdb, 0xca, 0x1b, 0x1c, 0x97, 0x67, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x48, 0x73, 0x8a, 0xdd, 0x20, 0xcd, 0x2a, 0xf6, 0xe0, 0xa8, 0x32, 0xb7, 0xc1, 0xd1, 0x75, 0x70, 0x0d, 0xef, 0xf6, 0x6c, 0x78, 0x66, 0x72, 0x83, 0x68, 0xf5, 0x8c, 0x6a, 0x0d, 0xef, 0xf6, 0x6c, 0x78, 0x66, 0x72, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0xbc, 0xe8, 0xf2, 0xe0, 0xca, 0x5a, 0xe8, 0xde, 0x5a, 0xdc, 0xea, 0xda, 0x0e, 0x5a, 0xc1, 0x07, 0x6b, 0x0d, 0xef, 0xf6, 0x6c, 0x78, 0x66, 0x72, 0x0d, 0x6f, 0xeb, 0x6c, 0x10, 0x8d, 0x80, 0x51, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x3c, 0x33, 0x79, 0x70, 0x68, 0x7b, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x9e, 0x99, 0x3c, 0x68, 0x28, 0x05, 0x6b, 0x0d, 0xef, 0xf6, 0x6c, 0x78, 0x66, 0x72, 0x83, 0xa8, 0x61, 0x8c, 0x6a, 0x0d, 0xef, 0xf6, 0x6c, 0x78, 0x66, 0x72, 0x83, 0xa8, 0x89, 0x8c, 0xaa, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x4a, 0xa4, 0xea, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x61, 0xb1, 0xbc, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x88, 0x96, 0x37, 0x38, 0x2e, 0xcf, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x62, 0x1c, 0x34, 0xaa, 0xda, 0xf0, 0x8b, 0xd2, 0x86, 0x2f, 0x97, 0x36, 0xfc, 0x45, 0xb3, 0x41, 0x6c, 0x5a, 0x46, 0x6d, 0x50, 0x18, 0xaa, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x92, 0x4a, 0x61, 0x37, 0x28, 0x2a, 0xc5, 0x37, 0x38, 0x35, 0xb7, 0x6d, 0xb0, 0x38, 0xb7, 0xad, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x54, 0x0a, 0xbb, 0x41, 0x51, 0x29, 0xbe, 0xc1, 0xa9, 0xb9, 0x6d, 0x83, 0xe5, 0xaa, 0x6d, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x73, 0x69, 0xee, 0xe1, 0xc1, 0x9b, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0x6f, 0x2e, 0xcd, 0xed, 0x20, 0x06, 0x38, 0xa3, 0xd6, 0xa0, 0xe8, 0x34, 0xde, 0xe0, 0x44, 0xd0, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x58, 0x08, 0x1e, 0x44, 0x0c, 0x63, 0xd4, 0x86, 0x5f, 0x5c, 0x36, 0x88, 0xf5, 0xc3, 0xa8, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xe9, 0x2d, 0x6e, 0x0d, 0x1f, 0x47, 0x1d, 0x44, 0x0d, 0x63, 0xd4, 0x41, 0xdc, 0x32, 0x46, 0xb5, 0x41, 0x41, 0x1a, 0xbb, 0x86, 0xef, 0xdb, 0x37, 0x58, 0x25, 0x47, 0x7a, 0xd0, 0xc0, 0xf5, 0xe9, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0x27, 0xd0, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x78, 0x6a, 0x37, 0x58, 0x23, 0xa9, 0x79, 0x10, 0xff, 0x9b, 0x51, 0x1b, 0xc4, 0x72, 0x6d, 0x54, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0x23, 0xac, 0x1b, 0x44, 0x32, 0x64, 0xd4, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0xc5, 0xd9, 0x06, 0x0b, 0xe1, 0x48, 0x0f, 0x82, 0x95, 0xb5, 0x35, 0x7c, 0x62, 0xb3, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x00, 0x6f, 0x18, 0x1c, 0x5c, 0x8b, 0x5b, 0x5d, 0xdb, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x32, 0x7d, 0xa3, 0xd6, 0x20, 0x05, 0x3a, 0x75, 0xc3, 0xdb, 0x3a, 0x03, 0x8d, 0x06, 0x3b, 0x68, 0x5f, 0x2e, 0xf4, 0x20, 0x3a, 0x5a, 0xa3, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x78, 0x9d, 0x79, 0xf5, 0x86, 0x67, 0x26, 0x0f, 0x52, 0x05, 0x69, 0x37, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x88, 0x10, 0xc4, 0xa8, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0xe2, 0x8c, 0x30, 0xaa, 0x0d, 0x62, 0xfd, 0x30, 0x6a, 0x83, 0x85, 0x70, 0xa4, 0x07, 0xa9, 0x40, 0x63, 0x6b, 0x10, 0x01, 0xb6, 0x51, 0x1b, 0x3e, 0x8e, 0x3a, 0x88, 0xe5, 0xda, 0xa8, 0x36, 0x28, 0x48, 0x63, 0xd7, 0xa0, 0x84, 0x8e, 0x5d, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xa0, 0xc7, 0xe2, 0xe1, 0x87, 0x9a, 0x35, 0xfc, 0xb9, 0x34, 0xd0, 0x63, 0xf2, 0xf0, 0x43, 0x4d, 0x07, 0x61, 0x3a, 0xb6, 0x86, 0x0f, 0x72, 0x36, 0x88, 0xed, 0xcb, 0xa8, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x51, 0x39, 0xbf, 0x41, 0x2c, 0xd7, 0x46, 0xad, 0xe1, 0x6d, 0x9d, 0x0d, 0x62, 0xae, 0x32, 0xaa, 0x36, 0x7c, 0x62, 0xb3, 0x06, 0x47, 0x1b, 0xbe, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x51, 0x39, 0xbf, 0xe1, 0x99, 0xc9, 0x83, 0x38, 0x3f, 0x8c, 0xda, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0xf0, 0xe0, 0xcd, 0xc1, 0x42, 0x38, 0xd2, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x35, 0x9f, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x4c, 0xf5, 0x45, 0xd5, 0x86, 0x77, 0x7b, 0x36, 0x08, 0xbb, 0xdb, 0x0d, 0x5a, 0x8a, 0x0b, 0x3d, 0x88, 0x20, 0xe6, 0xa8, 0x0d, 0x0a, 0x43, 0xd5, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x52, 0x29, 0xec, 0x06, 0x45, 0xa5, 0xf8, 0x06, 0xa7, 0xe6, 0xb6, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x49, 0x34, 0xbb, 0x41, 0x51, 0x29, 0xbe, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x23, 0xcc, 0x86, 0x9a, 0x1f, 0x14, 0xff, 0x83, 0x33, 0x73, 0xdb, 0x41, 0x2a, 0xd0, 0x58, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0xa9, 0x14, 0x76, 0x83, 0xa2, 0x52, 0x7c, 0x83, 0x53, 0x73, 0xdb, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x24, 0x9a, 0xdd, 0xa0, 0xa8, 0x14, 0x5f, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0x11, 0x66, 0x43, 0xcd, 0x0f, 0x0a, 0xff, 0xc1, 0x99, 0xb9, 0xed, 0x20, 0x15, 0x68, 0xac, 0x0d, 0x0a, 0xd2, 0xd8, 0x35, 0x7c, 0xdf, 0x3e, 0xc0, 0x2b, 0x57, 0x66, 0xd6, 0x22, 0xf7, 0x76, 0x1f, 0x34, 0x70, 0x7d, 0xba, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x08, 0xeb, 0x06, 0x91, 0x0c, 0x19, 0xb5, 0x86, 0x7f, 0x73, 0x36, 0x3c, 0x78, 0x73, 0xb0, 0x46, 0x52, 0xb3, 0x0d, 0xa2, 0x86, 0x31, 0x6a, 0xc3, 0xbb, 0x3d, 0x1b, 0x84, 0xdd, 0xed, 0x06, 0x07, 0x23, 0xb8, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x2c, 0xfe, 0x45, 0xd5, 0x06, 0x05, 0x69, 0xec, 0x1a, 0xbe, 0x6f, 0x1f, 0xe0, 0x95, 0x2b, 0x33, 0x6b, 0x19, 0x7b, 0x63, 0x0f, 0x1a, 0xb8, 0x3e, 0x5d, 0x83, 0xa3, 0x0d, 0xdf, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0xec, 0x6e, 0x37, 0x3c, 0x33, 0x79, 0x10, 0x41, 0xcc, 0x51, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0xfe, 0x04, 0x5a, 0xc3, 0x07, 0x39, 0x6b, 0xf8, 0x95, 0x6c, 0x83, 0x48, 0x86, 0x8c, 0x5a, 0xc3, 0xbf, 0x39, 0x1b, 0x14, 0x95, 0xe2, 0x07, 0x6b, 0x24, 0x35, 0xdb, 0xf0, 0xe0, 0xcd, 0x86, 0x77, 0x7b, 0x36, 0x08, 0x9e, 0xda, 0x35, 0x7c, 0x1c, 0x75, 0xb0, 0x46, 0x52, 0xf3, 0x20, 0xfe, 0x37, 0xa3, 0x36, 0x38, 0xda, 0xf0, 0xad, 0x41, 0xd1, 0x69, 0xbc, 0xe1, 0x53, 0xc0, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x35, 0x9f, 0x83, 0x54, 0xa0, 0xb1, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x4a, 0x7c, 0xdc, 0x35, 0xfc, 0xe2, 0xb2, 0xe1, 0xc1, 0x9b, 0x83, 0xb4, 0xd3, 0xd8, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x82, 0xa7, 0x76, 0xc3, 0x33, 0x93, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xc4, 0xc7, 0xdd, 0x20, 0x6a, 0xc0, 0xa3, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xc1, 0x53, 0xbb, 0xc1, 0x49, 0xf7, 0xed, 0xe0, 0x9c, 0xfb, 0xd6, 0x86, 0x0f, 0x72, 0x36, 0x88, 0x64, 0xc8, 0xa8, 0x35, 0x7c, 0x90, 0xb3, 0x86, 0x5f, 0xc9, 0x36, 0x88, 0x0f, 0xeb, 0xa8, 0x35, 0xfc, 0x9b, 0xb3, 0x41, 0xd4, 0x30, 0x46, 0x6d, 0x78, 0x5b, 0x67, 0x83, 0x78, 0xa4, 0x8e, 0xaa, 0x0d, 0x5a, 0x8a, 0x0b, 0xdd, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0xf0, 0xe0, 0xcd, 0x41, 0x2c, 0xd7, 0x46, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0xaf, 0xf9, 0x6c, 0x10, 0x23, 0xbb, 0x51, 0x1d, 0xc4, 0xc8, 0x6e, 0xd4, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x80, 0x37, 0x57, 0xc7, 0x6e, 0x78, 0xb7, 0x67, 0xc3, 0xa7, 0x80, 0x1b, 0x44, 0x11, 0x73, 0xd4, 0x41, 0xfc, 0x6f, 0x46, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0x6c, 0x10, 0x17, 0xe5, 0x51, 0x07, 0x51, 0xc3, 0x18, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0xbc, 0xe6, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0xfc, 0x09, 0xb4, 0x86, 0xb7, 0x75, 0x06, 0xbc, 0xb9, 0x3a, 0xb6, 0x83, 0x18, 0xe1, 0x8d, 0x6a, 0xc3, 0x07, 0x39, 0x1b, 0xc4, 0x88, 0x79, 0xd4, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0x9a, 0xcf, 0x06, 0xf1, 0xb7, 0x1e, 0xd5, 0x41, 0xfc, 0xad, 0x47, 0x6d, 0x50, 0x90, 0xc6, 0xae, 0xe1, 0xfb, 0xf6, 0x0d, 0x12, 0x2a, 0xe4, 0x0e, 0x9a, 0x73, 0x15, 0x5f, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x58, 0x12, 0x8d, 0xda, 0x20, 0x5e, 0x93, 0xa3, 0x36, 0x28, 0x3a, 0x8d, 0x37, 0x28, 0x2a, 0xe7, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0xd1, 0x8d, 0x1d, 0xd5, 0x86, 0x0f, 0x72, 0x36, 0x88, 0xe8, 0xf4, 0xa8, 0x0d, 0x62, 0xfd, 0x30, 0x6a, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0x95, 0xf3, 0x1b, 0xc4, 0x45, 0x79, 0xd4, 0x41, 0xdc, 0x32, 0x46, 0x6d, 0x70, 0x1c, 0x9b, 0xd8, 0x20, 0x99, 0x42, 0x6e, 0x0d, 0x8f, 0xb0, 0xae, 0xe1, 0x6d, 0xd6, 0x83, 0x48, 0x86, 0x8c, 0x5a, 0xc3, 0xbf, 0x39, 0x6b, 0xf8, 0x11, 0x66, 0xe0, 0xeb, 0xf0, 0xb0, 0x39, 0x78, 0xbc, 0x3d, 0x6f, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x43, 0x0c, 0xc4, 0x06, 0x69, 0x11, 0x72, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xa2, 0x72, 0x7e, 0x83, 0x85, 0x70, 0xa4, 0x07, 0x71, 0x7e, 0x18, 0xd5, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0x11, 0x82, 0x18, 0xb5, 0xe1, 0xdd, 0x9e, 0x0d, 0x62, 0x67, 0x38, 0x6a, 0x83, 0x58, 0x3f, 0x8c, 0xda, 0x60, 0x21, 0x1c, 0xe9, 0xc1, 0x9b, 0x06, 0x51, 0x0e, 0x62, 0x92, 0x38, 0xea, 0x70, 0x8a, 0xad, 0x41, 0x1c, 0x18, 0x0c, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0x6d, 0x10, 0x83, 0x30, 0x4e, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0xfc, 0xf0, 0x43, 0x4d, 0x1b, 0xfe, 0xa2, 0xd9, 0xf0, 0x43, 0xcd, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xf2, 0x86, 0x77, 0x7b, 0x36, 0x38, 0xc4, 0x40, 0x6c, 0x90, 0x4c, 0xe9, 0x74, 0x90, 0x5e, 0xed, 0xb4, 0x41, 0x69, 0x6f, 0xb9, 0x86, 0x3f, 0x97, 0x06, 0x8f, 0x0f, 0xca, 0x39, 0xdb, 0x0d, 0x9f, 0xd8, 0x6c, 0x90, 0x04, 0xa4, 0xba, 0xe1, 0x2b, 0x9c, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x5f, 0x9c, 0x6d, 0x50, 0x46, 0x9f, 0x1f, 0x1c, 0x55, 0xe6, 0xd6, 0x60, 0x01, 0x66, 0xd3, 0x1a, 0xbe, 0x6f, 0x1f, 0x1c, 0xde, 0xa0, 0x84, 0x8e, 0xdd, 0xa0, 0x9c, 0xb3, 0x3d, 0x08, 0xd3, 0xb1, 0x35, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x38, 0xe2, 0x64, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0x13, 0x41, 0xdb, 0x06, 0xa7, 0x23, 0x91, 0x83, 0xf4, 0xa4, 0xc1, 0x83, 0xc3, 0x3f, 0xc5, 0x06, 0x27, 0xf6, 0x9b, 0x35, 0xbc, 0xad, 0x33, 0xc0, 0x0b, 0x57, 0x26, 0xd7, 0x56, 0x47, 0x57, 0xb6, 0xc1, 0xd1, 0x86, 0x6f, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0x22, 0x68, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x9c, 0x64, 0xda, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x4f, 0x01, 0x37, 0x38, 0xac, 0xcc, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0x7a, 0x4e, 0x1e, 0xa4, 0x02, 0x8d, 0x75, 0x50, 0x38, 0xc9, 0x1e, 0xa4, 0x02, 0x8d, 0x6d, 0x70, 0x62, 0xbf, 0xd9, 0xa0, 0xb0, 0x58, 0xde, 0xa0, 0xe8, 0x34, 0xde, 0xa0, 0x20, 0x5a, 0xde, 0xe0, 0xbc, 0x40, 0xb3, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0xa2, 0xd9, 0x0d, 0x52, 0x5e, 0xab, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0x29, 0xe0, 0x06, 0xe7, 0x05, 0x9a, 0x83, 0xd2, 0x0c, 0xfd, 0xa0, 0x20, 0x1e, 0x3f, 0x38, 0xf4, 0xf5, 0x6d, 0x50, 0x90, 0xc6, 0xae, 0xe1, 0xfb, 0xf6, 0xc1, 0xf5, 0x83, 0x48, 0x00, 0x90, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x9c, 0x64, 0xda, 0x36, 0x48, 0x81, 0x4e, 0x3d, 0x28, 0x9c, 0x64, 0x37, 0x28, 0xfa, 0x74, 0x37, 0x28, 0x76, 0xcf, 0x37, 0x3c, 0x78, 0xb3, 0xe1, 0x2b, 0x9c, 0x0d, 0x8a, 0x1d, 0xcd, 0x0d, 0x62, 0xcf, 0x3f, 0x6a, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0x88, 0x81, 0x58, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0xdb, 0xca, 0x1b, 0x9c, 0x17, 0x68, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x85, 0xc5, 0xf2, 0x41, 0x72, 0x01, 0x6b, 0x07, 0x87, 0xbe, 0xbe, 0x0d, 0x0a, 0xd2, 0xd8, 0x35, 0x7c, 0xdf, 0xbe, 0x41, 0x69, 0x96, 0x7d, 0x10, 0x09, 0x00, 0x52, 0x6b, 0x70, 0x62, 0xbf, 0xd9, 0x20, 0xca, 0x05, 0xa4, 0x36, 0x38, 0xba, 0x0e, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x8a, 0xca, 0xf9, 0x0d, 0xca, 0xe8, 0xf3, 0x83, 0x43, 0x2f, 0xdf, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xa8, 0x9c, 0x5f, 0xc3, 0xbb, 0x3d, 0x1b, 0xfe, 0x04, 0x3a, 0x88, 0x73, 0xff, 0xa8, 0x83, 0x43, 0x2f, 0xdf, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xa8, 0x9c, 0x5f, 0xc3, 0xbb, 0x3d, 0x1b, 0xfe, 0x04, 0xda, 0xa0, 0x8c, 0x3e, 0x3f, 0x38, 0xba, 0xca, 0x1d, 0x1c, 0x7a, 0xf9, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x45, 0xe5, 0xfc, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0x27, 0xd0, 0x06, 0x65, 0xf4, 0xf9, 0x06, 0x8b, 0xde, 0xf0, 0x3a, 0x38, 0xf4, 0xf2, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x8a, 0xca, 0xf9, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x4f, 0xa0, 0x0d, 0xca, 0xe8, 0xf3, 0x83, 0xb4, 0xd3, 0xd8, 0x83, 0x43, 0x2f, 0xdf, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xa8, 0x9c, 0x5f, 0xc3, 0xbb, 0x3d, 0x1b, 0xfe, 0x04, 0xda, 0xa0, 0x8c, 0x3e, 0x3f, 0x48, 0x23, 0x74, 0x3d, 0x38, 0xf4, 0xf2, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x8a, 0xca, 0xf9, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x4f, 0xa0, 0x0d, 0xca, 0xe8, 0xf3, 0x0d, 0x16, 0x16, 0xc0, 0x75, 0x70, 0xe8, 0xe5, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0x95, 0xf3, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x9f, 0x40, 0x1b, 0x94, 0xd1, 0xe7, 0x6b, 0xf8, 0x11, 0x66, 0x43, 0xcd, 0x0f, 0xc5, 0x1d, 0x1c, 0x7a, 0xf9, 0xda, 0xf0, 0x89, 0xcd, 0x06, 0x69, 0x16, 0xac, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0xe0, 0xb0, 0x32, 0x77, 0x90, 0xc2, 0x1c, 0xb5, 0x86, 0x4b, 0x6a, 0x83, 0xc3, 0x7e, 0xc7, 0xc1, 0xe1, 0x9f, 0x62, 0x83, 0xa3, 0x0d, 0xdf, 0x1a, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x24, 0xaa, 0x3c, 0x1d, 0x9e, 0x99, 0x3c, 0x48, 0x72, 0x60, 0xdd, 0xf0, 0x89, 0xcd, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0x27, 0xd0, 0x06, 0x65, 0xf4, 0xf9, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x78, 0x6a, 0x0f, 0x12, 0xbd, 0x56, 0xdb, 0xa0, 0xe8, 0x34, 0xde, 0xe0, 0x44, 0xd0, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x58, 0x08, 0x6e, 0x78, 0x66, 0xf2, 0x20, 0xb9, 0x80, 0x75, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xa2, 0x72, 0x7e, 0x83, 0x14, 0xe6, 0xa8, 0x83, 0x42, 0x69, 0x7b, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0x7a, 0x8b, 0x5b, 0xc3, 0xc7, 0x51, 0x87, 0x67, 0x26, 0x0f, 0x92, 0x0b, 0x58, 0x5b, 0x01, 0xfc, 0xc2, 0xe4, 0xce, 0xde, 0xdc, 0x64, 0x5a, 0xea, 0xe4, 0xc4, 0xd2, 0xe8, 0x0d, 0xbf, 0x28, 0x6d, 0xd0, 0x86, 0xfb, 0xe8, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x31, 0x5e, 0x8e, 0xd3, 0x06, 0xc5, 0xd2, 0xf6, 0x06, 0x29, 0xff, 0x4e, 0x1b, 0xc4, 0x05, 0x7d, 0xd4, 0x06, 0xa7, 0xe6, 0xb6, 0x35, 0xfc, 0x08, 0xb3, 0xa1, 0xe6, 0x07, 0x0e, 0x00, 0xf4, 0x1b, 0x1e, 0x93, 0x59, 0x83, 0x42, 0x30, 0xf5, 0x20, 0xb9, 0x11, 0x76, 0x83, 0xe8, 0x5d, 0x91, 0x6a, 0x35, 0x88, 0x1a, 0xc1, 0xa8, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0xa8, 0x11, 0x8c, 0xda, 0x20, 0xd8, 0x4c, 0x37, 0x38, 0xe7, 0xa6, 0x6c, 0x70, 0xd4, 0x3a, 0xd9, 0x20, 0x1a, 0x20, 0xa3, 0x36, 0x48, 0x08, 0x33, 0x6a, 0x35, 0x88, 0xf1, 0x72, 0x9c, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0xda, 0x70, 0x1f, 0xdd, 0x20, 0xf2, 0x02, 0xa3, 0x36, 0x88, 0x7e, 0xc1, 0xa8, 0x0d, 0x22, 0xea, 0x2f, 0x6a, 0x0d, 0x7f, 0x2e, 0x0d, 0xf0, 0xb7, 0x95, 0xb5, 0xb5, 0x8c, 0xbd, 0xcd, 0xd1, 0x07, 0x65, 0x96, 0xee, 0x06, 0x31, 0x05, 0x18, 0xb5, 0x86, 0x3f, 0x97, 0x36, 0x28, 0x5a, 0x4f, 0x0e, 0x92, 0x1b, 0x61, 0xd7, 0xf0, 0xe7, 0xd2, 0x06, 0x0d, 0x01, 0x69, 0x1d, 0x24, 0x37, 0xc2, 0xb6, 0xe1, 0x2f, 0x9a, 0x35, 0x08, 0xa7, 0xb1, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0xb6, 0xb9, 0xf3, 0x20, 0xb9, 0x11, 0x76, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x73, 0x61, 0xf4, 0x41, 0x72, 0x23, 0x6c, 0x87, 0x1f, 0x6a, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0x36, 0x3c, 0x78, 0x73, 0x10, 0xd5, 0xd7, 0x51, 0x6b, 0xb0, 0xa4, 0x7e, 0x69, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0xee, 0x20, 0x6a, 0x26, 0x71, 0x0e, 0xc2, 0x53, 0x75, 0xc3, 0x07, 0x39, 0x6b, 0xf8, 0x37, 0x67, 0xc3, 0x83, 0x37, 0x07, 0x11, 0xac, 0x1a, 0xb5, 0x06, 0x4b, 0xea, 0x97, 0xd6, 0xf0, 0xc6, 0xdd, 0x86, 0x97, 0xef, 0x0e, 0xa2, 0x34, 0x13, 0xe7, 0x20, 0x3c, 0x55, 0x37, 0x7c, 0x90, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0x71, 0xb6, 0x86, 0xb7, 0x75, 0x36, 0x88, 0x8d, 0x18, 0xa9, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xc1, 0x53, 0xbb, 0xc1, 0x61, 0x65, 0xee, 0x20, 0xa2, 0xaf, 0xa3, 0x5a, 0x83, 0x25, 0xf5, 0x4b, 0x6b, 0x50, 0x18, 0xaa, 0xae, 0xe1, 0x8d, 0xbb, 0x0d, 0x2f, 0xdf, 0x1d, 0x44, 0x91, 0x28, 0xce, 0x86, 0x5f, 0x5c, 0x36, 0x88, 0xea, 0xeb, 0xa8, 0x35, 0xbc, 0x71, 0xb7, 0xe1, 0xe5, 0xbb, 0x83, 0x98, 0x2d, 0xc5, 0xd9, 0xe0, 0xb0, 0x32, 0x77, 0x10, 0xa5, 0x3b, 0x52, 0x07, 0xe1, 0xa9, 0xba, 0x41, 0xb1, 0xa3, 0xb9, 0x86, 0x5f, 0xc9, 0xd6, 0xf0, 0x6f, 0xce, 0x1a, 0x7e, 0x84, 0x19, 0xf8, 0x3a, 0x3c, 0x0c, 0x0e, 0x1e, 0x6f, 0xcf, 0x7b, 0x10, 0xd9, 0xf3, 0x51, 0x6b, 0xb0, 0xa4, 0x7e, 0x69, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x8d, 0xbb, 0x0d, 0x2f, 0xdf, 0x1d, 0xc4, 0x6a, 0x3a, 0xce, 0x06, 0x8f, 0xb7, 0xe7, 0x5d, 0xc3, 0x1b, 0x77, 0x1b, 0x5e, 0xbe, 0x3b, 0x78, 0x87, 0xd2, 0xf5, 0x1a, 0x7e, 0x71, 0xd9, 0x20, 0x46, 0x81, 0xa4, 0x36, 0x88, 0x0b, 0xfa, 0xa8, 0x3a, 0x08, 0x4f, 0xd5, 0x0d, 0x0a, 0xd2, 0xd8, 0x35, 0x7c, 0xdf, 0xbe, 0xc1, 0xc1, 0xc9, 0xed, 0xa0, 0x81, 0xeb, 0xd3, 0x35, 0x7c, 0x62, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x08, 0x9e, 0xda, 0x0d, 0x4e, 0xcd, 0x6d, 0x07, 0x11, 0x7d, 0x1d, 0xb5, 0xe1, 0xdd, 0x9e, 0x0d, 0x82, 0xa7, 0x76, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x0a, 0xac, 0x1b, 0xc4, 0xc7, 0x8e, 0xd4, 0x41, 0x2a, 0xd0, 0xd8, 0x41, 0x2a, 0xd0, 0xd8, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x06, 0x31, 0xd5, 0x17, 0xb5, 0xe1, 0xdd, 0x9e, 0x0d, 0x42, 0x81, 0x75, 0x83, 0x63, 0xdb, 0xdb, 0x41, 0x44, 0x5f, 0x47, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x6c, 0x10, 0x55, 0x7e, 0x51, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0x14, 0x58, 0x37, 0x88, 0x22, 0xe6, 0xa8, 0x83, 0x33, 0x73, 0xdb, 0x06, 0x05, 0x69, 0xec, 0x1a, 0xbe, 0x6f, 0xdf, 0x20, 0x8e, 0xf1, 0xa2, 0x36, 0x28, 0xa1, 0x63, 0x37, 0x88, 0x50, 0x07, 0xa8, 0x83, 0x30, 0x1d, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x9c, 0x64, 0xda, 0x36, 0x88, 0xea, 0xeb, 0xa8, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x49, 0xa6, 0x6d, 0x83, 0x28, 0x62, 0x8e, 0x3a, 0x28, 0x9c, 0x64, 0xdb, 0xa0, 0xec, 0x92, 0xdd, 0x20, 0xc6, 0xcb, 0x71, 0xd6, 0x70, 0x49, 0xad, 0xf1, 0xf8, 0x20, 0xfe, 0x52, 0xa4, 0x9a, 0x0d, 0xbf, 0x28, 0x6d, 0x10, 0x35, 0x34, 0x52, 0x1b, 0xfe, 0xa2, 0xd9, 0xf0, 0x43, 0xcd, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x2f, 0xce, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x67, 0x21, 0xd3, 0x01, 0x6f, 0x2e, 0x8c, 0xee, 0xe0, 0xa8, 0x32, 0xb7, 0x06, 0x4b, 0xea, 0x97, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xb8, 0xdb, 0xf0, 0xf2, 0xdd, 0x41, 0xe4, 0xe6, 0xe2, 0x6c, 0x10, 0x89, 0x52, 0x52, 0x1d, 0x84, 0xa7, 0xea, 0x06, 0x05, 0x69, 0xec, 0x1a, 0xbe, 0x6f, 0x1f, 0x68, 0x34, 0x78, 0xd0, 0x9c, 0xab, 0xf8, 0x1a, 0x1c, 0x6d, 0xf8, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0x1e, 0x94, 0xdc, 0x20, 0x92, 0xbb, 0xa2, 0x0e, 0xa2, 0xfe, 0x2a, 0x6a, 0xc3, 0x33, 0x93, 0x07, 0xf1, 0x0f, 0x16, 0xb5, 0x41, 0x61, 0xa8, 0xba, 0x06, 0x49, 0x06, 0x84, 0x1b, 0xfe, 0x04, 0xda, 0x20, 0x95, 0xd0, 0x75, 0x0d, 0x6f, 0xeb, 0x6c, 0x70, 0x16, 0x32, 0x3d, 0x88, 0x44, 0xaf, 0xa8, 0x0d, 0x22, 0x51, 0x4a, 0x6a, 0x0d, 0x6f, 0xeb, 0x6c, 0x70, 0x16, 0x32, 0x3d, 0x38, 0x0e, 0x7c, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0xce, 0x42, 0xa6, 0x07, 0x0d, 0x4c, 0x69, 0xb5, 0x41, 0xd1, 0x69, 0xbc, 0x41, 0x59, 0x1c, 0xbd, 0x41, 0x51, 0x29, 0xbe, 0xe1, 0x13, 0x9b, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x9a, 0x53, 0xec, 0x06, 0x69, 0x56, 0xb1, 0x07, 0x67, 0xe6, 0xb6, 0x0d, 0x8e, 0xae, 0x83, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0x10, 0x6b, 0x6e, 0x51, 0x1d, 0xb4, 0x21, 0xa5, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x88, 0x08, 0x2f, 0xa9, 0x83, 0x13, 0x38, 0xdb, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x22, 0xbc, 0xa4, 0xd6, 0xf0, 0xb6, 0xce, 0x41, 0x04, 0x4c, 0x49, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x88, 0x08, 0x2f, 0xa9, 0x0d, 0x62, 0xca, 0x2b, 0xaa, 0x35, 0x38, 0x35, 0xb7, 0x1d, 0x44, 0x14, 0x6a, 0xd4, 0x1a, 0x9c, 0x9a, 0xdb, 0x36, 0xbc, 0xdb, 0xb3, 0xe1, 0x99, 0xc9, 0x0d, 0x1e, 0x6f, 0xcf, 0xdb, 0x1a, 0x9c, 0x9a, 0xdb, 0x0e, 0x22, 0x4a, 0x35, 0x6a, 0x0d, 0x4e, 0xcd, 0x6d, 0x1b, 0xde, 0xed, 0xd9, 0xf0, 0xcc, 0xe4, 0x06, 0xf1, 0xb1, 0x23, 0xd5, 0x1a, 0x9c, 0x9a, 0xdb, 0x36, 0xbc, 0xdb, 0xb3, 0xe1, 0x99, 0xc9, 0x83, 0x42, 0x69, 0x7b, 0x0d, 0x4e, 0xcd, 0x6d, 0x1b, 0xde, 0xed, 0xd9, 0xf0, 0xcc, 0xe4, 0x41, 0x44, 0x5f, 0x47, 0xb5, 0xe1, 0x13, 0x9b, 0x0d, 0xe2, 0xe5, 0xb3, 0x69, 0xc3, 0x57, 0x38, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0xbe, 0x38, 0xdb, 0xe0, 0xd4, 0xd2, 0x77, 0x10, 0xbd, 0xaa, 0x51, 0x6b, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x3e, 0x1f, 0x1e, 0xbc, 0xd9, 0xf0, 0x15, 0xce, 0x06, 0xc5, 0x8e, 0xe6, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0xc5, 0xd9, 0x06, 0x87, 0x73, 0xbe, 0x83, 0x33, 0x73, 0xdb, 0x1a, 0x2e, 0xa9, 0x0d, 0x0e, 0xfb, 0x1d, 0x07, 0x51, 0x43, 0xda, 0xb4, 0xe1, 0x13, 0x9b, 0x0d, 0x8e, 0x24, 0x7c, 0x1b, 0xbe, 0xc2, 0xd9, 0xa0, 0xd8, 0xd1, 0x5c, 0xc3, 0xbb, 0x3d, 0x1b, 0xbe, 0x38, 0xdb, 0xe0, 0xf8, 0xc9, 0x77, 0x10, 0xd1, 0xd7, 0x51, 0x6b, 0xb8, 0xa4, 0x36, 0x38, 0xec, 0x77, 0xac, 0xc1, 0xb9, 0x9d, 0x6f, 0xc3, 0xc7, 0x51, 0x07, 0x87, 0x73, 0xbe, 0x36, 0x58, 0x80, 0xd9, 0xb4, 0x86, 0xef, 0xdb, 0x37, 0x48, 0xa8, 0x90, 0xdb, 0xa0, 0x84, 0x8e, 0x5d, 0x83, 0x00, 0x3a, 0x3b, 0x88, 0x3e, 0xc5, 0xa8, 0x83, 0x30, 0x1d, 0x5b, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x98, 0x55, 0x8c, 0x3a, 0x48, 0x8b, 0x90, 0x5b, 0x83, 0x82, 0x67, 0x73, 0xc3, 0xc7, 0x51, 0x07, 0xc7, 0x4f, 0xbe, 0x36, 0x38, 0xb1, 0xdf, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0xa2, 0xe7, 0x2e, 0xaa, 0x0d, 0xbf, 0xb8, 0x6c, 0x10, 0x7d, 0x8a, 0x51, 0x1b, 0x44, 0x0b, 0x70, 0xd4, 0x06, 0xa7, 0x96, 0xbe, 0x0d, 0x0e, 0xe7, 0x7c, 0x1b, 0x1c, 0x3f, 0xf9, 0x36, 0x38, 0xb6, 0xbd, 0x6d, 0x10, 0x45, 0xcc, 0x51, 0x1b, 0xc4, 0x00, 0x67, 0xd4, 0x06, 0x51, 0x7d, 0x1d, 0xb5, 0x41, 0x04, 0xab, 0x46, 0x6d, 0xd0, 0x22, 0x73, 0xd6, 0x41, 0x04, 0x8b, 0x49, 0x6d, 0xf8, 0xc4, 0x66, 0x83, 0x23, 0x09, 0xdf, 0x06, 0xa5, 0xbd, 0xe5, 0x1a, 0xfe, 0x5c, 0x1a, 0xe0, 0x31, 0x4b, 0x73, 0x0b, 0x63, 0x0f, 0x3f, 0xd4, 0x6c, 0xf8, 0x0a, 0x67, 0xc3, 0x07, 0x39, 0x6b, 0xf8, 0x37, 0x67, 0x83, 0xe3, 0x27, 0xdf, 0x41, 0x54, 0x5f, 0x47, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x5e, 0x67, 0x5e, 0xbd, 0x06, 0xe9, 0x82, 0xb4, 0x1b, 0xde, 0xd6, 0xd9, 0x20, 0x7a, 0xee, 0xa4, 0x3a, 0x28, 0x94, 0xb6, 0x37, 0x38, 0xda, 0xf0, 0xad, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0x41, 0x24, 0xe8, 0x49, 0x1d, 0x9e, 0x99, 0x3c, 0x88, 0x94, 0x38, 0xa9, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x0e, 0x31, 0x10, 0x1b, 0xc4, 0x74, 0x9e, 0xd4, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x2a, 0xe7, 0x37, 0x88, 0xea, 0xe5, 0xa8, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x51, 0x39, 0xbf, 0xc1, 0xf1, 0x93, 0xef, 0x20, 0x6e, 0x19, 0xa3, 0x5a, 0x0d, 0xe2, 0x63, 0x40, 0x6a, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0xf9, 0xa0, 0x9c, 0xb3, 0xdd, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0x1c, 0x56, 0xe6, 0x36, 0xbc, 0xdb, 0xb3, 0xc1, 0x42, 0xcf, 0xc9, 0x83, 0x93, 0x3c, 0xdf, 0x86, 0xbf, 0x68, 0x36, 0x28, 0xe7, 0x6c, 0x37, 0x28, 0x48, 0x63, 0xd7, 0xf0, 0x7d, 0xfb, 0xe0, 0xf6, 0x41, 0x24, 0x00, 0x48, 0xad, 0xc1, 0x89, 0xfd, 0x66, 0x83, 0x46, 0xe5, 0xff, 0x36, 0xfc, 0x45, 0xb3, 0x41, 0x84, 0x3a, 0x40, 0x6d, 0x50, 0x74, 0x1a, 0x6f, 0x50, 0x22, 0x55, 0x6f, 0x70, 0x38, 0xe7, 0xdb, 0xf0, 0x8b, 0xd2, 0x86, 0x2f, 0x97, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x88, 0x96, 0x37, 0x38, 0x2e, 0xcf, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x92, 0x4a, 0x61, 0x37, 0x28, 0x2a, 0xc5, 0x0f, 0x96, 0x5d, 0x95, 0xb6, 0xe1, 0xdd, 0x9e, 0x0d, 0x4e, 0x04, 0x6d, 0x1b, 0x9e, 0x99, 0x5c, 0xc3, 0xbb, 0x3d, 0x1b, 0x9c, 0x64, 0xda, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x4f, 0x01, 0x37, 0x08, 0x58, 0xd6, 0x83, 0xb8, 0x2c, 0x90, 0x3a, 0x28, 0x9c, 0x64, 0xdb, 0xa0, 0xe8, 0xd3, 0xdd, 0xe0, 0xd0, 0xda, 0xb2, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x00, 0x3f, 0xd9, 0x5b, 0x8b, 0xdc, 0x5b, 0x9d, 0x1b, 0xd9, 0x06, 0xa9, 0x42, 0x51, 0x1b, 0x1e, 0xbc, 0xd9, 0xe0, 0xd4, 0xdc, 0xb6, 0xc1, 0x61, 0x65, 0xee, 0xa0, 0x75, 0x5c, 0xe6, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0x0e, 0xad, 0x2d, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xc8, 0x4e, 0x94, 0xda, 0x20, 0x55, 0x28, 0x6a, 0xc3, 0x63, 0x32, 0x1b, 0x1c, 0x16, 0xd8, 0x36, 0x48, 0x39, 0xad, 0x3a, 0x38, 0x2d, 0xd6, 0x6d, 0x50, 0xf4, 0xe9, 0x6e, 0x70, 0x68, 0x6d, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x44, 0x76, 0xa2, 0xd4, 0x06, 0xa9, 0x42, 0x51, 0x1b, 0x04, 0x2c, 0xeb, 0x06, 0xc7, 0xe5, 0x99, 0x0d, 0x52, 0x5e, 0xab, 0x0e, 0x52, 0x06, 0x57, 0x37, 0x28, 0xfa, 0x74, 0x37, 0x38, 0xb4, 0xb6, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x22, 0x3b, 0x51, 0x6a, 0x83, 0x54, 0xa1, 0xa8, 0x0d, 0x8a, 0x4a, 0xf1, 0x0d, 0xce, 0x0b, 0x34, 0x1b, 0xa4, 0x33, 0xdb, 0x1d, 0x24, 0xba, 0xd6, 0x6e, 0x50, 0xf4, 0xe9, 0x6e, 0x70, 0x68, 0x6d, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x44, 0x76, 0xa2, 0xd4, 0x06, 0xa9, 0x42, 0x51, 0x1b, 0x1e, 0xbc, 0xd9, 0xe0, 0xb0, 0xc0, 0xb6, 0x41, 0xca, 0x6b, 0xd5, 0x41, 0xa2, 0x6b, 0xed, 0x06, 0x45, 0x9f, 0xee, 0x06, 0x87, 0xd6, 0x96, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x64, 0x27, 0x4a, 0x6d, 0x90, 0x2a, 0x14, 0xb5, 0xe1, 0x31, 0x99, 0x0d, 0x8e, 0xcb, 0x33, 0x1b, 0xa4, 0x33, 0xdb, 0x1d, 0xb4, 0x8e, 0xcb, 0xbc, 0x41, 0xd1, 0xa7, 0xbb, 0xc1, 0xa1, 0xb5, 0x65, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0xd9, 0x89, 0x52, 0x1b, 0xa4, 0x0a, 0x45, 0x6d, 0x10, 0xb0, 0xac, 0x1b, 0x9c, 0x17, 0x68, 0x36, 0x38, 0xac, 0xcc, 0x1d, 0x9c, 0x16, 0xeb, 0x36, 0x28, 0xfa, 0x74, 0x37, 0x38, 0xb4, 0xb6, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x22, 0x3b, 0x51, 0x6a, 0x83, 0x54, 0xa1, 0xa8, 0x0d, 0x8a, 0x4a, 0xf1, 0x0d, 0x4e, 0xcd, 0x6d, 0x1b, 0xa4, 0x9c, 0x56, 0x1d, 0xa4, 0x0c, 0xae, 0x6e, 0x50, 0xf4, 0xe9, 0x6e, 0x70, 0x68, 0x6d, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0x48, 0xd5, 0x1b, 0xa4, 0x0a, 0x45, 0x6d, 0x10, 0x4f, 0xa6, 0x51, 0x6d, 0x50, 0x74, 0x1a, 0x6f, 0x50, 0x22, 0x55, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0x5e, 0xa4, 0x2b, 0x7d, 0x90, 0x42, 0x64, 0xbb, 0xe1, 0x17, 0xa5, 0x0d, 0xce, 0x93, 0x2a, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x04, 0x4f, 0xed, 0xc1, 0x12, 0x8c, 0xf7, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0xd6, 0xdb, 0x6e, 0x70, 0x5c, 0x9e, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0x95, 0xf3, 0x1b, 0x44, 0xbf, 0x89, 0xd4, 0x41, 0x9a, 0x50, 0xd4, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xa8, 0x9c, 0xdf, 0xf0, 0xcc, 0xe4, 0x41, 0x9a, 0x50, 0x54, 0x87, 0x53, 0x6c, 0x0d, 0x62, 0xda, 0x37, 0x6a, 0xc3, 0x2f, 0x4a, 0x1b, 0xc4, 0x72, 0x5c, 0xd4, 0x86, 0xbf, 0x68, 0x36, 0x48, 0x6e, 0x84, 0xdd, 0xa0, 0x30, 0x54, 0xdd, 0x20, 0x8e, 0xe6, 0xa2, 0x36, 0x28, 0x3a, 0x8d, 0x37, 0x28, 0x8b, 0xa3, 0x37, 0x28, 0x2a, 0xc5, 0x37, 0x38, 0xba, 0x0e, 0x6e, 0x10, 0x85, 0x75, 0x51, 0x1b, 0x44, 0x40, 0x5d, 0x54, 0x87, 0x53, 0x6c, 0x0d, 0xa2, 0x26, 0x35, 0x6a, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x70, 0xfa, 0x20, 0xee, 0x03, 0xa3, 0x36, 0x08, 0xd2, 0xd3, 0x0d, 0x0e, 0x34, 0x7d, 0x6b, 0x70, 0xce, 0x4d, 0x39, 0x3c, 0x78, 0xb3, 0x06, 0x47, 0xad, 0x93, 0xc3, 0x63, 0x32, 0x6b, 0x10, 0x0d, 0x90, 0x51, 0x07, 0x01, 0xcb, 0xba, 0x06, 0x09, 0x61, 0x46, 0x07, 0x29, 0xaf, 0x55, 0xcd, 0x1a, 0xa4, 0x75, 0xac, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0x6d, 0xf8, 0x72, 0x69, 0xc3, 0xf3, 0x4c, 0x07, 0x05, 0xf8, 0xf6, 0x86, 0xbf, 0x68, 0x36, 0x88, 0x78, 0x55, 0xa9, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x0d, 0x16, 0xcd, 0xbd, 0x6e, 0x50, 0x96, 0xbc, 0x6f, 0x50, 0xd4, 0x88, 0x1f, 0xa4, 0x91, 0xa7, 0x6e, 0xb0, 0xd2, 0xc5, 0x69, 0x83, 0x73, 0x38, 0xdc, 0x1a, 0x1e, 0x94, 0xdc, 0xe0, 0xb0, 0x0d, 0x77, 0xb0, 0x2e, 0xee, 0x75, 0x83, 0x95, 0x2e, 0x4e, 0x1b, 0x24, 0x58, 0xd8, 0xae, 0xe1, 0x41, 0xc9, 0x0d, 0x52, 0x25, 0x6c, 0x0f, 0xd6, 0xc5, 0xbd, 0x6e, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x6c, 0x30, 0x30, 0x3d, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x9a, 0x53, 0xec, 0x06, 0x45, 0x26, 0xee, 0xc1, 0x51, 0x81, 0x6d, 0x83, 0xa2, 0x4f, 0x77, 0xc3, 0x83, 0x3b, 0x6b, 0x90, 0x64, 0x40, 0xb8, 0xc1, 0x61, 0x1b, 0x6e, 0xc3, 0xd3, 0x3a, 0x1b, 0xde, 0x0b, 0x5a, 0x83, 0x24, 0x03, 0xc2, 0x0d, 0x82, 0xa7, 0x76, 0x83, 0x80, 0x65, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0x99, 0xb8, 0x87, 0x87, 0x7e, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x45, 0x26, 0xee, 0xe1, 0x2d, 0xb4, 0xda, 0xa0, 0xe8, 0xd3, 0xdd, 0xa0, 0xc8, 0x97, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0x4a, 0xd8, 0x6e, 0x78, 0xf0, 0x66, 0x83, 0xd4, 0xd3, 0xd8, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x21, 0x06, 0xe2, 0xe0, 0xfc, 0xb1, 0xd7, 0x06, 0x45, 0x9f, 0xee, 0x86, 0x7f, 0x78, 0xd6, 0x20, 0xc9, 0x80, 0x70, 0x83, 0xc3, 0x36, 0xdc, 0x86, 0xa7, 0x77, 0x36, 0x28, 0xd7, 0x65, 0xd7, 0x20, 0xc9, 0x80, 0x70, 0x83, 0xe0, 0xa9, 0xdd, 0x20, 0x60, 0x59, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x45, 0x26, 0xee, 0xe1, 0x17, 0xa1, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x91, 0x89, 0x7b, 0x50, 0xaa, 0xcb, 0xd6, 0x06, 0x45, 0x9f, 0xee, 0x86, 0xcf, 0x83, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xa9, 0x12, 0xb6, 0x1b, 0x1e, 0xbc, 0xd9, 0x60, 0xd1, 0x1b, 0xde, 0x06, 0x71, 0xea, 0xdc, 0xd4, 0x06, 0x45, 0x9f, 0xee, 0x86, 0x07, 0x77, 0x36, 0x88, 0x3b, 0x59, 0xa9, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0x8a, 0x7c, 0xd9, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xaa, 0x84, 0xed, 0x86, 0x07, 0x6f, 0x36, 0x38, 0xbc, 0xca, 0x1d, 0x44, 0xc0, 0xad, 0xd4, 0x06, 0x45, 0x9f, 0xee, 0x86, 0x7f, 0x78, 0x36, 0x88, 0x1c, 0x5c, 0xa9, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0x9f, 0x07, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x52, 0x25, 0x6c, 0x37, 0x3c, 0x78, 0xb3, 0xc1, 0x7a, 0x84, 0xb7, 0x83, 0x78, 0xe6, 0x95, 0xda, 0xf0, 0x8b, 0xcb, 0x86, 0xa7, 0x75, 0x0e, 0x92, 0xc3, 0x5a, 0x0f, 0xa7, 0x58, 0x6b, 0x10, 0x13, 0x8a, 0x52, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x70, 0xfb, 0xa0, 0x9c, 0xb3, 0x5d, 0xc3, 0x9f, 0x4b, 0x03, 0xef, 0x16, 0x1e, 0x7e, 0xa8, 0x59, 0xc3, 0x9f, 0x4b, 0x03, 0xef, 0x26, 0x1e, 0x7e, 0xa8, 0x59, 0xc3, 0x9f, 0x4b, 0x03, 0xef, 0x36, 0x1e, 0x7e, 0xa8, 0x59, 0xc3, 0x9f, 0x4b, 0x03, 0xef, 0x46, 0x1e, 0x7e, 0xa8, 0x69, 0xc3, 0xd7, 0x2f, 0x1b, 0xa4, 0x0a, 0x45, 0x6d, 0x50, 0x4a, 0x88, 0xaf, 0x41, 0xc9, 0xc2, 0x3e, 0xcb, 0xac, 0x41, 0x9c, 0x11, 0x46, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0x1d, 0x44, 0x8b, 0x61, 0xd4, 0x86, 0xaf, 0x5f, 0x36, 0x48, 0x15, 0x8a, 0xda, 0xa0, 0xe8, 0x34, 0xde, 0xe0, 0x44, 0xd0, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x58, 0x08, 0x6e, 0x50, 0x46, 0x9f, 0x1f, 0xa4, 0x09, 0x45, 0x6d, 0xf8, 0xc5, 0x65, 0x83, 0x72, 0x5d, 0x76, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0x7a, 0x8b, 0xdb, 0xa0, 0x20, 0x3e, 0x3f, 0x48, 0x13, 0x8a, 0x6a, 0x16, 0xe0, 0x3f, 0x2b, 0xa3, 0x6b, 0xb9, 0x7b, 0x93, 0x23, 0x37, 0xfc, 0xa2, 0xb4, 0x41, 0xb9, 0x70, 0xbe, 0xe1, 0xdd, 0x9e, 0x0d, 0x8a, 0xca, 0xf9, 0x83, 0x38, 0x53, 0x96, 0x3a, 0x9c, 0x62, 0x87, 0x53, 0x6c, 0x83, 0xa3, 0x0d, 0xdf, 0x1a, 0x14, 0x7d, 0xba, 0x1b, 0x1c, 0x5a, 0x5b, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xb1, 0x33, 0x1c, 0xb5, 0x86, 0xb7, 0x75, 0x06, 0xde, 0x2d, 0xec, 0xf0, 0xd0, 0xcf, 0x06, 0x45, 0x9f, 0xee, 0x06, 0x87, 0xd6, 0x96, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xec, 0x0c, 0x47, 0xad, 0xe1, 0x6d, 0x9d, 0x81, 0x77, 0x13, 0x3b, 0xbc, 0x85, 0xb6, 0x41, 0xd1, 0xa7, 0xbb, 0xc1, 0xa1, 0xb5, 0x65, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x3b, 0xc3, 0x51, 0x6b, 0x78, 0x5b, 0x67, 0xe0, 0xdd, 0xc6, 0x0e, 0xbf, 0x08, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0xd8, 0x19, 0x8e, 0x5a, 0xc3, 0xdb, 0x3a, 0x03, 0xef, 0x46, 0x76, 0x50, 0xaa, 0xcb, 0x6e, 0x70, 0x62, 0xbf, 0x59, 0xc3, 0xdb, 0x3a, 0x07, 0x29, 0x1d, 0x6b, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x68, 0x63, 0x96, 0x6a, 0x83, 0xf8, 0x7e, 0x96, 0x6a, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x37, 0xd6, 0x52, 0x1b, 0xc4, 0x62, 0xb4, 0x54, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xb8, 0xb1, 0x96, 0xda, 0x20, 0x6e, 0xa6, 0xa5, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0xc4, 0x8d, 0xb5, 0xd4, 0x06, 0xd1, 0x45, 0x2d, 0x55, 0x87, 0x53, 0xec, 0x70, 0x8a, 0xad, 0x80, 0x3f, 0x26, 0x57, 0x17, 0x1e, 0x84, 0xa7, 0xea, 0x0a, 0x78, 0x61, 0x65, 0xf3, 0x06, 0x65, 0x97, 0xec, 0x80, 0x17, 0x56, 0x36, 0x6f, 0xf0, 0x66, 0xe1, 0x93, 0xd9, 0xa0, 0x64, 0x61, 0x9f, 0x65, 0x16, 0xf0, 0xd2, 0xdc, 0xc6, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0xc0, 0x4b, 0x73, 0x1b, 0x1b, 0xc0, 0x33, 0xcd, 0x6d, 0xcc, 0x05, 0x84, 0xed, 0xed, 0x0e, 0x44, 0x8c, 0xed, 0x2d, 0x6e, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x6d, 0x68, 0x7e, 0x70, 0xf8, 0x76, 0x7e, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x63, 0x74, 0xf2, 0x86, 0x2f, 0x6a, 0x36, 0xd4, 0xf1, 0x70, 0xa4, 0x0d, 0x7f, 0xd1, 0x6c, 0xf0, 0xde, 0x51, 0xe0, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x01, 0x4f, 0x2c, 0x6e, 0xde, 0xf0, 0x6e, 0xcf, 0x06, 0x05, 0xd1, 0xf2, 0x06, 0x61, 0x77, 0xbb, 0x86, 0xb7, 0x75, 0x06, 0xbc, 0x31, 0x3a, 0xb9, 0x36, 0x28, 0xe1, 0x31, 0x17, 0xf0, 0xc4, 0xe2, 0xe6, 0xd6, 0xf0, 0x23, 0xcc, 0xc0, 0xd7, 0xe1, 0xb9, 0x41, 0xd1, 0x69, 0xbc, 0x41, 0xb1, 0xad, 0xbc, 0x41, 0xd8, 0xdd, 0x6e, 0xf8, 0xc5, 0x65, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x59, 0xf2, 0xbe, 0xc1, 0x39, 0x1c, 0x6e, 0x83, 0x33, 0xff, 0xda, 0x41, 0x6b, 0x49, 0xd1, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xf4, 0x20, 0x12, 0xc6, 0xa5, 0x0e, 0x0a, 0xe2, 0xf1, 0x35, 0xbc, 0xad, 0x33, 0x38, 0x7d, 0x10, 0x09, 0xe3, 0x52, 0xad, 0x80, 0x4f, 0xf6, 0x56, 0x27, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xc4, 0xe4, 0xb9, 0x54, 0x03, 0xf8, 0x92, 0xbd, 0xd5, 0x89, 0xb1, 0x95, 0x81, 0xc4, 0xc8, 0xe0, 0xb4, 0x88, 0xa5, 0xd1, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x73, 0x74, 0xf2, 0x41, 0x3c, 0x7f, 0x4b, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0xf7, 0x8e, 0x02, 0x6f, 0x70, 0x62, 0xbf, 0x59, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x12, 0x28, 0xfb, 0x20, 0xf9, 0x94, 0x76, 0x83, 0x62, 0x47, 0x73, 0x0d, 0xff, 0xe6, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x4e, 0x07, 0x7c, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x9b, 0xa3, 0x93, 0xeb, 0x20, 0x21, 0x30, 0x75, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x1a, 0xf0, 0x6e, 0x78, 0xf0, 0xe6, 0x20, 0xc6, 0xda, 0xa5, 0x36, 0xbc, 0xdb, 0xb3, 0xc1, 0x21, 0x06, 0x62, 0x0d, 0x3f, 0xc2, 0x0c, 0x7c, 0x1d, 0x1e, 0xc4, 0x61, 0x83, 0x88, 0x71, 0x97, 0x6a, 0x35, 0x88, 0x7a, 0xb7, 0x9c, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xa8, 0x77, 0xcb, 0x69, 0x00, 0xaf, 0xa0, 0xa2, 0xa9, 0x16, 0x99, 0x1a, 0x1b, 0x90, 0xa2, 0x21, 0xa1, 0x0d, 0xca, 0x2e, 0xd9, 0x0d, 0xa2, 0xde, 0x2d, 0x67, 0x83, 0x34, 0x02, 0xa3, 0xd9, 0xa0, 0x2c, 0xc3, 0x5e, 0xc3, 0x9f, 0x4b, 0x1b, 0x14, 0xad, 0x27, 0x1b, 0xbe, 0xa8, 0xd9, 0x50, 0xc7, 0xc3, 0x93, 0x59, 0x66, 0x81, 0x27, 0x2b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x83, 0x27, 0x2b, 0x1b, 0xe0, 0x25, 0x2b, 0x1b, 0x93, 0xcb, 0x83, 0xa3, 0xdb, 0xf0, 0xf8, 0xc8, 0xc0, 0x93, 0x95, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0x9f, 0x4b, 0x03, 0x9e, 0x18, 0xdb, 0x7a, 0x10, 0xcf, 0xdf, 0x52, 0x1b, 0xfe, 0xa2, 0xd9, 0xe0, 0xbd, 0xa3, 0xc0, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x0f, 0x43, 0x2b, 0x6b, 0xdb, 0xe0, 0xb0, 0x32, 0xb7, 0xc1, 0xa9, 0xb9, 0xed, 0x20, 0x65, 0x70, 0x75, 0x83, 0xb5, 0x71, 0x4d, 0xab, 0xc1, 0x71, 0xe0, 0x63, 0xc3, 0xbb, 0x3d, 0x6b, 0x50, 0x96, 0xbc, 0x6f, 0x90, 0x02, 0x9e, 0xba, 0xc1, 0x99, 0x7f, 0xed, 0xe0, 0xa8, 0x32, 0x77, 0x70, 0x02, 0x67, 0x5b, 0x01, 0x4f, 0x8c, 0x6d, 0x6d, 0xc3, 0xbb, 0x3d, 0x1b, 0x24, 0x7e, 0xd2, 0xae, 0xe1, 0x6d, 0x9d, 0x83, 0x08, 0xe2, 0x97, 0xaa, 0x0d, 0x4e, 0xec, 0x37, 0x1b, 0x24, 0x7e, 0xd2, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0xbc, 0x58, 0xd9, 0x06, 0x05, 0x6c, 0xfe, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0x9f, 0x86, 0xb7, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0xc0, 0x97, 0xe1, 0x1d, 0x9c, 0xc0, 0xd9, 0x3a, 0x88, 0x83, 0x7e, 0xa9, 0x59, 0xe0, 0xcb, 0xdc, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0xe0, 0xcb, 0xdc, 0x06, 0x78, 0xcb, 0xdc, 0xc6, 0xe4, 0xf2, 0xe0, 0xe8, 0x36, 0x3c, 0x3e, 0x32, 0xf0, 0x65, 0xee, 0x86, 0x5f, 0x94, 0x36, 0x88, 0x8e, 0x7b, 0xa9, 0x0d, 0x7f, 0xd1, 0x6c, 0xf0, 0xde, 0x51, 0xe0, 0x0d, 0x9f, 0xd8, 0x6c, 0x10, 0x9d, 0xf8, 0x52, 0x1b, 0xac, 0x8d, 0x6b, 0xda, 0x20, 0xee, 0xf4, 0xa5, 0x36, 0x38, 0xb1, 0xdf, 0x6c, 0x90, 0xf8, 0x49, 0xbb, 0xe1, 0xdd, 0x9e, 0x0d, 0x22, 0xca, 0x5f, 0x6a, 0x83, 0x22, 0xa7, 0x75, 0x83, 0x78, 0xfd, 0x97, 0x3a, 0x88, 0x83, 0x7e, 0xa9, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x56, 0x83, 0x08, 0x0e, 0xcc, 0xd9, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x88, 0xe0, 0xc0, 0x9c, 0x06, 0xf0, 0x0a, 0x2a, 0x9a, 0x6a, 0x91, 0xa9, 0xb1, 0x01, 0x99, 0x92, 0xb1, 0xda, 0xf0, 0xf8, 0xc8, 0x06, 0x11, 0x1c, 0x98, 0xb3, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0xf4, 0xce, 0x4b, 0xad, 0xe1, 0xcf, 0xa5, 0x01, 0x2f, 0x8c, 0x6c, 0x3e, 0x28, 0xe7, 0x6c, 0xdb, 0xa0, 0x84, 0xc7, 0x5c, 0xc0, 0x0b, 0x23, 0x9b, 0x5b, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x18, 0x41, 0xd8, 0x69, 0x83, 0x43, 0x6b, 0xd7, 0x1a, 0x1c, 0xc3, 0x0d, 0x0e, 0x0e, 0xaf, 0x72, 0x1b, 0x44, 0xd6, 0xb8, 0x54, 0x1b, 0x14, 0xa4, 0xb1, 0x1b, 0x1c, 0x33, 0x3c, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x71, 0xc3, 0x30, 0xb5, 0xc1, 0xa1, 0xb5, 0x6b, 0x83, 0x18, 0x68, 0x98, 0xda, 0x60, 0xe9, 0x1a, 0x6a, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0xc4, 0x0d, 0xc3, 0xd4, 0x06, 0x87, 0xd6, 0xae, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x8b, 0x66, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0x42, 0xf0, 0xe1, 0xe0, 0x74, 0x48, 0xb8, 0xc1, 0x7b, 0x47, 0x81, 0xdb, 0xa0, 0x84, 0xc7, 0x5c, 0x70, 0xfa, 0x20, 0x5a, 0x17, 0xa6, 0xd6, 0xa0, 0x20, 0x8d, 0xdd, 0xa0, 0x58, 0x15, 0x58, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0xc5, 0xbf, 0x1b, 0x14, 0x95, 0xe2, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xf4, 0x20, 0x5a, 0x17, 0xa6, 0xda, 0xf0, 0x41, 0xce, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x0d, 0x5b, 0x69, 0x0d, 0x6f, 0xeb, 0x1c, 0x34, 0x1d, 0x9f, 0x75, 0x70, 0x74, 0x95, 0x5b, 0xc3, 0x2f, 0x2e, 0x6b, 0x70, 0x0c, 0x37, 0x38, 0x88, 0xb8, 0x8a, 0xa9, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x21, 0x06, 0x62, 0x83, 0xb8, 0xa0, 0x98, 0x3a, 0x68, 0x68, 0x2d, 0xb9, 0x0d, 0xbf, 0xb8, 0x6c, 0x10, 0x03, 0x0d, 0x53, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x43, 0x0c, 0xc4, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0xc4, 0xe4, 0xb9, 0x54, 0x07, 0x0d, 0xad, 0x25, 0xaf, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xb7, 0xc1, 0x85, 0x91, 0x6d, 0x10, 0x71, 0x15, 0x53, 0x07, 0x31, 0x41, 0x31, 0x55, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x44, 0xeb, 0xc2, 0xd4, 0x86, 0xb7, 0x75, 0x0e, 0xa2, 0x4d, 0x62, 0x6a, 0x0d, 0xce, 0x60, 0x9e, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0x10, 0x03, 0xb1, 0x41, 0x0c, 0x64, 0x4c, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0xe2, 0x86, 0x61, 0x6a, 0x83, 0x43, 0x6b, 0xd7, 0x06, 0x05, 0x45, 0xe6, 0x41, 0x4c, 0x50, 0x4c, 0xd5, 0x6a, 0x10, 0xa3, 0x8f, 0x39, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0x31, 0xfa, 0x98, 0xd3, 0x00, 0x7e, 0x41, 0x45, 0x53, 0x2d, 0x31, 0x32, 0x38, 0x20, 0x43, 0x4d, 0x41, 0x43, 0x1b, 0x1e, 0x1f, 0xd9, 0x20, 0x46, 0x1f, 0x73, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0x45, 0xeb, 0xc9, 0x41, 0x3c, 0x7f, 0x4b, 0xad, 0xe1, 0xcf, 0xa5, 0x01, 0xef, 0x6d, 0x8c, 0x3e, 0x38, 0xb4, 0xcb, 0x1c, 0x34, 0xcc, 0x80, 0xbc, 0xe1, 0x2f, 0x9a, 0x0d, 0x8e, 0x2d, 0xa5, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0xdc, 0x65, 0x43, 0x8b, 0x8f, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x83, 0x17, 0xc7, 0x11, 0x1e, 0x9c, 0xc0, 0xd9, 0xd6, 0xf0, 0xb9, 0xcb, 0x06, 0x65, 0x61, 0xf1, 0x06, 0x25, 0x3c, 0xe6, 0x02, 0xde, 0xdb, 0x18, 0xdd, 0x06, 0xd1, 0x9a, 0xfe, 0xb4, 0xe1, 0x6d, 0x9d, 0xc1, 0xeb, 0x83, 0x98, 0x37, 0x99, 0x6a, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xc0, 0x83, 0x23, 0xa3, 0x37, 0x7c, 0x90, 0xb3, 0x86, 0x47, 0x58, 0xd7, 0xf0, 0x6f, 0xce, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0xec, 0x6e, 0x37, 0x28, 0xbc, 0x8c, 0x0f, 0x8e, 0xae, 0x72, 0x87, 0x07, 0x6f, 0xd6, 0xf0, 0x36, 0xeb, 0x86, 0x7f, 0x73, 0x36, 0x28, 0xbc, 0x8c, 0x0f, 0x0f, 0xde, 0xb4, 0x86, 0x5f, 0x5c, 0x36, 0x28, 0x72, 0x5a, 0x0f, 0x16, 0x81, 0x9f, 0x6f, 0xf8, 0xc5, 0x65, 0x83, 0x02, 0x36, 0x7f, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x45, 0x1a, 0x53, 0x1b, 0x14, 0x5e, 0xc6, 0x07, 0x8b, 0xc0, 0xcf, 0xdb, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0xd9, 0x60, 0x79, 0x69, 0xf0, 0x06, 0x27, 0xf6, 0x9b, 0x35, 0x28, 0x4b, 0xde, 0x37, 0x78, 0xa1, 0x7a, 0xf0, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0xb6, 0xdf, 0x75, 0xda, 0xe0, 0xd0, 0xda, 0x75, 0x50, 0x38, 0xc9, 0x6e, 0x50, 0x74, 0x1a, 0x6f, 0x70, 0x88, 0x81, 0x58, 0xc3, 0x25, 0xb5, 0xc6, 0xf3, 0x01, 0x0f, 0x8e, 0x8c, 0xae, 0x0d, 0x82, 0xf4, 0x74, 0x8d, 0x43, 0x07, 0x11, 0x14, 0x33, 0xb5, 0x06, 0x01, 0x1b, 0xb4, 0xe1, 0x92, 0x5a, 0xe3, 0xd0, 0xe1, 0x89, 0xc0, 0xd6, 0x20, 0x8c, 0x80, 0x36, 0x5c, 0x52, 0x6b, 0x3c, 0x3f, 0x3c, 0x11, 0x58, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0x5a, 0xd7, 0xa5, 0xd6, 0xf0, 0xb6, 0xce, 0xc1, 0xc2, 0xdb, 0xe0, 0x56, 0x83, 0x88, 0xc8, 0x97, 0xda, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x88, 0x88, 0x7c, 0xa9, 0x06, 0xf0, 0x5b, 0x2b, 0x93, 0x73, 0x2b, 0x63, 0x03, 0x99, 0xa3, 0x0b, 0xa3, 0x2b, 0xdb, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x03, 0x9e, 0x9b, 0xdb, 0x7a, 0xf8, 0xa1, 0x66, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x6e, 0x6e, 0xe2, 0xe1, 0x87, 0x9a, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0xb9, 0xb9, 0xc9, 0x87, 0x1f, 0x6a, 0xda, 0xa0, 0x94, 0x10, 0x5f, 0xc3, 0x27, 0x36, 0x6b, 0x50, 0x4a, 0x88, 0xaf, 0xe1, 0x17, 0x97, 0x35, 0x7c, 0xee, 0x32, 0xf0, 0x67, 0xf2, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0xc0, 0x9f, 0x85, 0x6d, 0x70, 0x58, 0x99, 0x5b, 0xc3, 0x8f, 0x30, 0x03, 0x5f, 0x87, 0x07, 0xb3, 0x71, 0x50, 0x50, 0x8a, 0x6f, 0x90, 0x86, 0x87, 0xda, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb9, 0xcb, 0x06, 0x29, 0x9a, 0xc6, 0x1b, 0xde, 0xd6, 0xd9, 0x20, 0x45, 0xd3, 0x78, 0xe0, 0xcf, 0xe4, 0xd6, 0xf0, 0xb9, 0xcb, 0x06, 0x65, 0x4e, 0xc0, 0x86, 0xb7, 0x75, 0x36, 0x28, 0x73, 0x02, 0x0e, 0xa2, 0xc5, 0x67, 0x6a, 0x0d, 0x9f, 0xbb, 0x6c, 0x50, 0xd6, 0x52, 0x6d, 0x78, 0x5b, 0x67, 0x83, 0xb2, 0x96, 0xea, 0x20, 0x5a, 0x7c, 0xa6, 0x36, 0x48, 0x83, 0x46, 0x6d, 0x83, 0x52, 0x42, 0x7c, 0x0d, 0x4a, 0x16, 0xf6, 0x59, 0x66, 0x01, 0x7f, 0x2c, 0x0d, 0x2e, 0xdc, 0xf0, 0x51, 0xfb, 0x06, 0x01, 0x74, 0xb6, 0x41, 0xea, 0x45, 0xf1, 0x06, 0x25, 0x0b, 0xfb, 0x2c, 0xb3, 0xc0, 0xcf, 0xd5, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0x3c, 0x73, 0x2d, 0x62, 0x6f, 0x78, 0x07, 0x8b, 0xc4, 0x50, 0x57, 0xe0, 0xe5, 0xde, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0x7c, 0xe4, 0xde, 0xee, 0x40, 0xe6, 0xd0, 0xd2, 0xcc, 0xe8, 0xe6, 0x36, 0x28, 0x04, 0x53, 0x37, 0x7c, 0xae, 0xb4, 0xe1, 0x11, 0xba, 0x0d, 0xef, 0xd4, 0x6d, 0x90, 0x92, 0xcb, 0xb8, 0x41, 0x94, 0x81, 0x36, 0x35, 0x0b, 0xfc, 0xd8, 0xbb, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x2f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x20, 0x63, 0x6f, 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x07, 0x51, 0x5f, 0x34, 0x35, 0x0b, 0x7c, 0x1a, 0xbe, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xc7, 0x5a, 0x59, 0x1e, 0x48, 0x9a, 0x1b, 0x59, 0x19, 0xde, 0x06, 0x8b, 0x0b, 0x93, 0x36, 0x7c, 0xb9, 0x74, 0xb0, 0x48, 0x0c, 0xf5, 0x70, 0x8a, 0x75, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0xdb, 0xa0, 0x64, 0x61, 0x9f, 0x65, 0x16, 0xf0, 0xe0, 0xca, 0xdc, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0xc0, 0x83, 0x2b, 0x73, 0x3b, 0x88, 0x02, 0x81, 0xa9, 0x0d, 0x7f, 0xd1, 0xac, 0xe1, 0xdf, 0xf9, 0x35, 0x88, 0xe2, 0xa0, 0xa9, 0xda, 0xa0, 0x64, 0x61, 0x9f, 0x65, 0x16, 0xf8, 0xb9, 0x7a, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0x32, 0xf8, 0xb9, 0xba, 0x83, 0x98, 0x1e, 0x9a, 0xda, 0xf0, 0x23, 0xcc, 0xc0, 0xd7, 0xe1, 0x07, 0x51, 0x77, 0x99, 0xb3, 0x02, 0x2f, 0xf7, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x06, 0x2f, 0xf7, 0x76, 0x10, 0x31, 0x45, 0x53, 0x1b, 0x7e, 0x71, 0xd9, 0xf0, 0xe0, 0xcd, 0x86, 0xc7, 0x64, 0x36, 0x08, 0x58, 0xd6, 0x83, 0x82, 0x52, 0x7c, 0x16, 0xf8, 0xb1, 0x77, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0x32, 0xf8, 0xb1, 0xb7, 0x83, 0xd8, 0x40, 0x9a, 0xda, 0xf0, 0x8b, 0xcb, 0x1a, 0x7e, 0x84, 0x19, 0xf8, 0x3a, 0x3c, 0xb2, 0x86, 0x1f, 0x61, 0x06, 0xbe, 0x0e, 0x8f, 0x1e, 0x14, 0x50, 0xe4, 0xb3, 0xc0, 0xa7, 0xe1, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0xc1, 0xa7, 0xe1, 0x1d, 0xc4, 0x9a, 0xd2, 0xd4, 0x06, 0x8b, 0x0b, 0x93, 0x36, 0x7c, 0xb9, 0x74, 0x78, 0x5a, 0xe7, 0x70, 0x8a, 0x75, 0x38, 0xc5, 0x56, 0xc0, 0x9f, 0xab, 0x13, 0x2b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x22, 0x30, 0x6b, 0xaa, 0x01, 0x7c, 0xe6, 0x5a, 0xc4, 0xde, 0xf0, 0x40, 0xee, 0xde, 0xe4, 0xc8, 0x36, 0xfc, 0xa2, 0xb4, 0xe1, 0x6f, 0xa5, 0x0d, 0x7f, 0xd1, 0x6c, 0xf8, 0xa1, 0x66, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0xdb, 0xca, 0x1b, 0x14, 0x95, 0xe2, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x12, 0xa9, 0x7a, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0x1f, 0xee, 0x8d, 0xac, 0x6c, 0x83, 0xa2, 0x52, 0x7c, 0x83, 0x53, 0x73, 0xdb, 0xe1, 0xa1, 0x9f, 0x35, 0xfc, 0xa2, 0xb4, 0x41, 0x01, 0x18, 0xbb, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0xa2, 0xd9, 0x0d, 0x8a, 0x4a, 0xf1, 0x35, 0xfc, 0xe2, 0xb2, 0xe1, 0xe9, 0x9d, 0x83, 0x82, 0x78, 0xfc, 0xf0, 0x16, 0x5a, 0xad, 0x80, 0x07, 0x97, 0xe6, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x06, 0x1e, 0x5c, 0x9a, 0xdb, 0x41, 0xa4, 0xd7, 0x4b, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0x58, 0x75, 0x9a, 0xda, 0xa0, 0x64, 0x61, 0x9f, 0x65, 0x16, 0xf8, 0xb9, 0x7a, 0xc3, 0xf3, 0x24, 0x1b, 0xc4, 0x01, 0xd4, 0xd4, 0x86, 0x1f, 0x61, 0x06, 0xbe, 0x0e, 0x3f, 0x88, 0xbf, 0xd7, 0x9c, 0x15, 0x78, 0xb9, 0x77, 0xc3, 0xf3, 0x24, 0x1b, 0x44, 0x88, 0xd4, 0xd4, 0x86, 0x5f, 0x5c, 0x36, 0x3c, 0x78, 0xb3, 0x41, 0x51, 0x29, 0xbe, 0x41, 0xc0, 0xb2, 0x1e, 0x14, 0xc4, 0xe3, 0xb3, 0xc0, 0x8f, 0xbd, 0x1b, 0x9e, 0x27, 0xd9, 0x20, 0x4e, 0xa9, 0xa6, 0x36, 0xfc, 0xe2, 0xb2, 0x86, 0x1f, 0x61, 0x06, 0xbe, 0x0e, 0x0f, 0xf1, 0x1a, 0x7e, 0x84, 0x19, 0xf8, 0x3a, 0x3c, 0x64, 0x6b, 0xf8, 0x11, 0x66, 0xe0, 0xeb, 0xf0, 0x90, 0xae, 0xe1, 0x47, 0x98, 0x81, 0xaf, 0xc3, 0x43, 0xd2, 0x2c, 0xf0, 0x69, 0xf8, 0x86, 0xe7, 0x49, 0x36, 0x88, 0xbe, 0xab, 0xa9, 0x0d, 0x16, 0x17, 0x26, 0x6d, 0xf8, 0x72, 0x69, 0xc3, 0xbb, 0x3d, 0x1b, 0x3e, 0x05, 0x5c, 0xc3, 0xdb, 0x3a, 0x03, 0x9e, 0x9b, 0x9b, 0xdc, 0xe1, 0xa1, 0x9f, 0xc3, 0x29, 0xd6, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0xad, 0x41, 0x54, 0x78, 0x4d, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x44, 0x85, 0xd7, 0x54, 0x03, 0xf8, 0x97, 0xe1, 0xc1, 0xb1, 0xbd, 0x91, 0x95, 0x81, 0xd0, 0xbd, 0x81, 0x88, 0xb1, 0xbd, 0x8d, 0xad, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0xc2, 0xe4, 0x77, 0xc3, 0x5f, 0x34, 0x1b, 0x94, 0x73, 0xb6, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0x93, 0x07, 0xf1, 0xb6, 0x04, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0x78, 0xbb, 0xe1, 0xdd, 0x9e, 0x0d, 0x8a, 0xe2, 0xdf, 0x83, 0xc2, 0x57, 0x77, 0xc3, 0x57, 0x38, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x1b, 0x1c, 0x42, 0x27, 0x0e, 0xef, 0x05, 0x6d, 0x50, 0xae, 0xcb, 0x6e, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0x70, 0x3e, 0x9d, 0xd8, 0xf0, 0x71, 0xd4, 0xc1, 0x21, 0x74, 0x62, 0x0d, 0x8a, 0x7c, 0xd9, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0x22, 0x68, 0xdb, 0xa0, 0x5c, 0x97, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xd1, 0x66, 0x5d, 0xc3, 0x2f, 0x2e, 0x07, 0x4b, 0x64, 0x58, 0xab, 0x15, 0xf0, 0xdb, 0xc6, 0xde, 0xd8, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0xd6, 0xe9, 0xd3, 0xaf, 0xe1, 0xcf, 0xa5, 0xc1, 0xc5, 0x83, 0xa8, 0x31, 0x9a, 0x6a, 0xc3, 0x5f, 0x34, 0x1b, 0x94, 0x73, 0xb6, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0x8f, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0xc3, 0x07, 0x8b, 0xc4, 0x50, 0xd7, 0xf0, 0xb9, 0xcb, 0xe0, 0xf1, 0xc1, 0x22, 0x31, 0xd4, 0x35, 0x7c, 0xee, 0x32, 0xb8, 0x7c, 0xb0, 0x48, 0x0c, 0x75, 0x0d, 0x9f, 0xbb, 0x0c, 0x3e, 0x1f, 0x2c, 0x12, 0x43, 0x6d, 0xc3, 0x57, 0x38, 0x1b, 0xfe, 0xa2, 0xd9, 0xa0, 0x9c, 0xb3, 0xdd, 0xa0, 0x84, 0xc7, 0xdc, 0xf0, 0xe0, 0xce, 0x06, 0x05, 0x45, 0xe6, 0x06, 0xa5, 0x84, 0xf8, 0x1a, 0x2e, 0xa9, 0x0d, 0x8a, 0x1a, 0xf1, 0x35, 0x38, 0x28, 0xb1, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0x92, 0x68, 0x76, 0x83, 0xa2, 0x52, 0x7c, 0x83, 0x22, 0x75, 0xfc, 0xe0, 0x10, 0xea, 0xd7, 0x06, 0xa5, 0x84, 0xf8, 0x1a, 0x2e, 0xa9, 0x0d, 0x8a, 0x1a, 0xf1, 0x35, 0x38, 0x6e, 0xb1, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0x92, 0x68, 0x76, 0x83, 0xa2, 0x52, 0x7c, 0x83, 0x52, 0x88, 0xfc, 0xe0, 0x10, 0xea, 0xd7, 0x06, 0xa5, 0x84, 0xf8, 0x1a, 0x2e, 0xa9, 0x0d, 0x8a, 0x1a, 0xf1, 0x35, 0x38, 0x1d, 0xd6, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0x92, 0x68, 0x76, 0x83, 0xa2, 0x52, 0x7c, 0x0d, 0xbf, 0xb8, 0x1c, 0xc4, 0x9e, 0xd9, 0xd4, 0xc1, 0x21, 0xd4, 0xaf, 0x0d, 0x4a, 0x09, 0xf1, 0x35, 0x5c, 0x52, 0x1b, 0x14, 0x35, 0xe2, 0x2b, 0xf8, 0x7c, 0xf8, 0x87, 0x67, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0x44, 0xb3, 0x1b, 0x14, 0x95, 0xe2, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xa2, 0x52, 0xfc, 0xa0, 0x20, 0x1e, 0x3f, 0x38, 0x84, 0xfa, 0xb5, 0xc1, 0x92, 0xea, 0xa4, 0x0d, 0x0a, 0xf8, 0xf8, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x8a, 0x6d, 0xe5, 0x0d, 0x8a, 0x4a, 0xf1, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x4a, 0xa4, 0xea, 0x35, 0x38, 0xb1, 0xdf, 0x6c, 0xb0, 0x44, 0x9b, 0x75, 0x83, 0xa3, 0xeb, 0xe0, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0x2f, 0x2e, 0x1b, 0x9c, 0x86, 0x58, 0x0e, 0x5a, 0x1d, 0xe8, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0x9c, 0xa9, 0x58, 0x0e, 0x9a, 0x3c, 0x00, 0x5c, 0xc3, 0x2f, 0x2e, 0x1b, 0x1c, 0x01, 0x6b, 0x0e, 0x9e, 0x8a, 0x0b, 0xb3, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb6, 0xce, 0x41, 0xac, 0x14, 0x4e, 0x1d, 0xa4, 0x52, 0xbe, 0xb5, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xa7, 0x21, 0x96, 0x83, 0x54, 0xca, 0xb7, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0x99, 0x8a, 0xe5, 0xa0, 0xd5, 0x81, 0xde, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0x11, 0xb0, 0xe6, 0xa0, 0xc9, 0x03, 0xc0, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0xe4, 0x31, 0x4e, 0x1d, 0x3c, 0x15, 0x17, 0xa6, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0x5f, 0x5c, 0x36, 0x38, 0x0d, 0xb1, 0x1c, 0x3c, 0x15, 0x17, 0x66, 0x0d, 0xbf, 0xb8, 0x6c, 0x70, 0xa6, 0x62, 0x39, 0x48, 0xa5, 0x7c, 0x5b, 0xc3, 0x2f, 0x2e, 0x1b, 0x1c, 0x01, 0x6b, 0x0e, 0x5a, 0x1d, 0xe8, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0x44, 0x1e, 0xe3, 0xd4, 0x41, 0x93, 0x07, 0x80, 0xad, 0xe1, 0x17, 0x97, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0x69, 0x88, 0xe5, 0xa0, 0xc9, 0x03, 0xc0, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0x99, 0x8a, 0xe5, 0xe0, 0xa9, 0xb8, 0x30, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x23, 0x60, 0xcd, 0x41, 0x2a, 0xe5, 0xdb, 0x1a, 0x7e, 0x71, 0xd9, 0x20, 0xf2, 0x18, 0xa7, 0x0e, 0x5a, 0x1d, 0xe8, 0xad, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0x78, 0x78, 0x90, 0x9a, 0x80, 0xb9, 0x86, 0x3f, 0x97, 0x06, 0x17, 0x0f, 0x52, 0x13, 0x30, 0x0f, 0x62, 0x10, 0xae, 0x69, 0x83, 0x24, 0x03, 0xc2, 0x0d, 0xd2, 0xd1, 0xa1, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x89, 0x85, 0xc7, 0x87, 0x87, 0x7e, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x89, 0x85, 0xc7, 0x87, 0xb7, 0xd0, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x89, 0x85, 0xc7, 0x87, 0x5f, 0x84, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x89, 0x85, 0xc7, 0x07, 0xa5, 0xba, 0x6c, 0x87, 0x53, 0xac, 0xc3, 0x29, 0xb6, 0x41, 0xc9, 0xc2, 0x3e, 0xcb, 0x2c, 0xf0, 0x65, 0xf8, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0x65, 0xf0, 0x65, 0x78, 0x03, 0xf8, 0xac, 0x95, 0xe5, 0x81, 0x94, 0xe1, 0xc1, 0x85, 0xb9, 0x91, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x1e, 0xc4, 0x0c, 0xbd, 0xd4, 0x86, 0xbf, 0x68, 0x36, 0xfc, 0x50, 0xb3, 0xe1, 0x13, 0x9b, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0xcf, 0x5d, 0x06, 0x17, 0x0f, 0x4f, 0xeb, 0x6c, 0xf8, 0xda, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x4e, 0x6e, 0x78, 0x50, 0x72, 0x0d, 0x6f, 0xeb, 0x0c, 0xfc, 0x5c, 0xdd, 0x86, 0xb7, 0x75, 0x06, 0x3c, 0xb8, 0x32, 0xb7, 0x35, 0x7c, 0xee, 0x32, 0x78, 0xba, 0xe1, 0x6d, 0x9d, 0x01, 0xcf, 0xcd, 0x6d, 0xad, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0x6c, 0x50, 0x46, 0x9f, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0xe0, 0xa9, 0x5d, 0xc3, 0xdb, 0x3a, 0x03, 0x9e, 0x9b, 0x9b, 0xd8, 0x1a, 0x3e, 0x8e, 0x3a, 0x88, 0xd6, 0xb5, 0xa9, 0x36, 0xbc, 0x17, 0xb4, 0x41, 0x29, 0x21, 0xbe, 0x86, 0x4b, 0x6a, 0x83, 0xa2, 0x46, 0x7c, 0x0d, 0xff, 0xf0, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0x92, 0x68, 0x76, 0x83, 0xc3, 0x02, 0xdb, 0x1a, 0x7e, 0x71, 0xd9, 0xe0, 0x28, 0x14, 0x77, 0x50, 0x10, 0x8f, 0x1f, 0xde, 0x42, 0x6b, 0x83, 0x52, 0x42, 0x7c, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x0d, 0x0f, 0xde, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0xb0, 0xbb, 0xdd, 0xa0, 0x8c, 0x3e, 0xdf, 0x20, 0x76, 0x46, 0xa7, 0x5a, 0x83, 0x52, 0x42, 0x7c, 0x0d, 0x97, 0xd4, 0x06, 0x45, 0x8d, 0xf8, 0x1a, 0xfe, 0xe1, 0xd9, 0xf0, 0x6e, 0xcf, 0x06, 0xa9, 0x12, 0xb6, 0x1b, 0x14, 0x95, 0xe2, 0x1b, 0x1e, 0x93, 0x39, 0xfc, 0x22, 0xd4, 0x06, 0xa5, 0x84, 0xf8, 0x1a, 0x2e, 0xa9, 0x0d, 0x8a, 0x1a, 0xf1, 0x35, 0xfc, 0xc3, 0xb3, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x04, 0x66, 0x4d, 0x75, 0x50, 0x00, 0xf2, 0xb7, 0xe1, 0x92, 0xda, 0xa0, 0xa8, 0x11, 0x5f, 0xc3, 0x3f, 0x3c, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0x10, 0x03, 0xb1, 0xe1, 0xe9, 0x9d, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x0a, 0x6e, 0xda, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0x9a, 0xcf, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x14, 0x58, 0x0f, 0x22, 0x49, 0x75, 0xaa, 0x83, 0x60, 0x65, 0xad, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0x11, 0xd6, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x1b, 0xc5, 0x0d, 0x62, 0x67, 0x74, 0xea, 0xe0, 0xb0, 0x3c, 0xb3, 0x86, 0x7f, 0x73, 0x36, 0x38, 0x35, 0xb7, 0x1d, 0xc4, 0x75, 0xea, 0x54, 0x1b, 0xc4, 0x4c, 0xeb, 0xd4, 0x41, 0x62, 0x4b, 0xd5, 0x06, 0xa5, 0x84, 0xf8, 0x1a, 0x2e, 0xa9, 0x0d, 0x8a, 0x1a, 0xf1, 0x35, 0xfc, 0xc3, 0xb3, 0xe1, 0xdd, 0x9e, 0x0d, 0x0e, 0x31, 0x10, 0x1b, 0x9e, 0xde, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0x44, 0xb3, 0x1b, 0x1c, 0x16, 0xd8, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0x29, 0xe0, 0x41, 0x24, 0xa9, 0x4e, 0x1d, 0x14, 0xc4, 0xe3, 0x87, 0xb7, 0xd0, 0x6a, 0x83, 0x52, 0x42, 0x7c, 0x0d, 0x97, 0xd4, 0x06, 0x45, 0x8d, 0xf8, 0x1a, 0x3e, 0x0f, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x65, 0x71, 0xf4, 0x06, 0x87, 0x05, 0xb6, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x19, 0x7d, 0x7e, 0x78, 0x0b, 0x6d, 0x0d, 0xbf, 0xb8, 0x1c, 0xc4, 0x20, 0xeb, 0xd4, 0x41, 0x59, 0xe7, 0xd9, 0xc1, 0x71, 0x9e, 0x62, 0x05, 0x3e, 0x0d, 0xdf, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x0d, 0xe2, 0xf5, 0x6a, 0x6a, 0x00, 0xef, 0xb5, 0xb2, 0x3c, 0x90, 0x32, 0x3c, 0xb8, 0x30, 0x37, 0x32, 0x16, 0x90, 0x34, 0x37, 0xbb, 0x0d, 0xbf, 0x28, 0x6d, 0xf8, 0x72, 0x69, 0xc3, 0x5f, 0x34, 0x1b, 0x7e, 0xa8, 0xd9, 0xf0, 0x89, 0xcd, 0x1a, 0x7e, 0x71, 0xd9, 0x60, 0x79, 0xb1, 0xdd, 0x1a, 0x3e, 0x77, 0x19, 0x5c, 0x3d, 0x58, 0x24, 0x86, 0xba, 0xc1, 0xca, 0x2f, 0xd4, 0x35, 0x7c, 0xee, 0x32, 0xf8, 0xb8, 0xe1, 0x41, 0xc9, 0x0d, 0x16, 0x9e, 0x9e, 0x6f, 0x78, 0x5b, 0x67, 0xc0, 0x83, 0x4b, 0x73, 0x6b, 0xc3, 0x57, 0x38, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x1b, 0x44, 0xeb, 0xda, 0xd4, 0x41, 0x19, 0x7d, 0xbe, 0xe1, 0x69, 0x9d, 0x0d, 0x4a, 0x09, 0xf1, 0x35, 0x5c, 0x52, 0x1b, 0x14, 0x35, 0xe2, 0x6b, 0xf8, 0x3c, 0x68, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0x44, 0xb3, 0x1b, 0x9c, 0x17, 0x68, 0x0e, 0x8e, 0xce, 0x14, 0x6d, 0x50, 0x4a, 0x88, 0xaf, 0xe1, 0x92, 0xda, 0xa0, 0xa8, 0x11, 0x5f, 0xc3, 0xe7, 0x41, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xd8, 0x56, 0xde, 0xe0, 0xb0, 0xc0, 0xb6, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0xd1, 0x6d, 0x37, 0xd5, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0xb6, 0xbb, 0xa6, 0x36, 0x38, 0x2c, 0xb0, 0x6d, 0x70, 0x6a, 0x6e, 0x3b, 0xbc, 0x85, 0x76, 0xf8, 0x45, 0xa8, 0x36, 0x28, 0x25, 0xc4, 0xd7, 0x70, 0x49, 0x6d, 0x50, 0xd4, 0x88, 0xaf, 0x41, 0xe2, 0x73, 0xd4, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0x0a, 0xb8, 0x41, 0xb4, 0xae, 0x4d, 0x1d, 0x94, 0x66, 0xe8, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x1b, 0x14, 0xba, 0xe7, 0x6b, 0x78, 0x70, 0x67, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0xb2, 0x38, 0x7a, 0x83, 0xf3, 0x02, 0xcd, 0x06, 0x47, 0xd7, 0xc1, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x19, 0x7d, 0xbe, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x89, 0x66, 0x37, 0x38, 0x2f, 0xd0, 0x1c, 0xc4, 0x8b, 0x9b, 0x53, 0x6b, 0xf8, 0xc5, 0xe5, 0x20, 0x95, 0xa8, 0x75, 0x0d, 0xbf, 0xb8, 0x6c, 0x90, 0xc2, 0x1c, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x89, 0x66, 0x37, 0x38, 0x2f, 0xd0, 0xac, 0xe1, 0x17, 0x97, 0x0d, 0x0a, 0xe2, 0xf3, 0x83, 0xa4, 0x00, 0xd6, 0xc3, 0x43, 0x3f, 0xd5, 0xe1, 0x14, 0x5b, 0xe0, 0xc5, 0xca, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0xe0, 0xc5, 0xca, 0x06, 0xf0, 0x13, 0x63, 0x7b, 0x1b, 0x5b, 0x03, 0x19, 0x4b, 0x83, 0x43, 0x2b, 0x93, 0xdb, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0xda, 0xe0, 0x00, 0xa4, 0xb2, 0xe1, 0x79, 0xa6, 0x35, 0xfc, 0xb9, 0x34, 0xf8, 0x78, 0x10, 0xcf, 0xdf, 0x52, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0xf7, 0x8e, 0x02, 0x6f, 0xb0, 0xa4, 0x7e, 0x69, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0xee, 0x20, 0xe2, 0x2d, 0x74, 0x36, 0x28, 0x25, 0xc4, 0xd7, 0x70, 0x49, 0x6d, 0x50, 0xd4, 0x88, 0xaf, 0xe1, 0xea, 0xda, 0xa0, 0x94, 0x10, 0xdf, 0x70, 0x47, 0x6d, 0x50, 0xb2, 0xb0, 0xcf, 0x32, 0x0b, 0xf8, 0x73, 0x61, 0x72, 0xeb, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x7c, 0x3c, 0x28, 0xe7, 0x6c, 0xd7, 0xf0, 0xe7, 0xd2, 0xe0, 0xe4, 0x41, 0x39, 0x67, 0xdb, 0x86, 0xbf, 0x68, 0x36, 0x28, 0xe7, 0x6c, 0x37, 0x28, 0xe1, 0x31, 0x37, 0xfc, 0xc3, 0xb3, 0x41, 0x41, 0x91, 0xb9, 0x41, 0x09, 0x8f, 0xb9, 0x41, 0x91, 0x2f, 0xbb, 0x41, 0x78, 0xaa, 0x6e, 0xf8, 0xc5, 0x65, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0x88, 0x81, 0x58, 0xc3, 0xdb, 0x3a, 0x83, 0xa7, 0x87, 0x7f, 0x78, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xe9, 0x41, 0x91, 0x2f, 0xdb, 0x1a, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0xfe, 0xe1, 0xd9, 0xf0, 0xb6, 0xce, 0xe0, 0xf4, 0xe1, 0x1f, 0x9e, 0x35, 0x28, 0xf2, 0x65, 0x37, 0xbc, 0xad, 0x33, 0x38, 0x7d, 0x50, 0xe4, 0xcb, 0xd6, 0x2c, 0xe0, 0xcf, 0xd5, 0x89, 0xcd, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0xf0, 0x20, 0x56, 0x9d, 0xa6, 0x0e, 0x8a, 0x2e, 0xdb, 0x0d, 0x7f, 0xd1, 0x6c, 0x50, 0xce, 0xd9, 0x6e, 0x50, 0xc2, 0x63, 0x6e, 0xf8, 0x3c, 0x68, 0x83, 0x82, 0x22, 0x73, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xa8, 0x70, 0x9d, 0xda, 0xa0, 0xf8, 0x41, 0x5d, 0xc3, 0xdb, 0x3a, 0x03, 0x3f, 0x57, 0x1f, 0x1e, 0xdc, 0xe9, 0xa0, 0x88, 0xb9, 0x9d, 0x05, 0xfc, 0x39, 0xb9, 0xb7, 0x7b, 0xc3, 0x2f, 0x4a, 0x1b, 0x44, 0x07, 0xf8, 0xd4, 0x86, 0xbf, 0x68, 0x36, 0x28, 0xe7, 0x6c, 0x37, 0x7c, 0x62, 0xb3, 0x86, 0x5f, 0x5c, 0x36, 0x7c, 0x6d, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x27, 0x0f, 0x0a, 0x8a, 0xcc, 0x35, 0x7c, 0xee, 0x32, 0x78, 0xb9, 0xe1, 0x6d, 0x9d, 0x81, 0x97, 0x7b, 0x0f, 0x0f, 0xee, 0xb4, 0xe1, 0x2b, 0x9c, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x0d, 0x4f, 0xef, 0x1c, 0x44, 0x47, 0xe9, 0xd4, 0x06, 0xe5, 0xba, 0xec, 0x06, 0x4b, 0xaa, 0x93, 0x36, 0x38, 0x93, 0xbf, 0x6c, 0x50, 0x74, 0x1a, 0x6f, 0x50, 0x6c, 0x2b, 0x6f, 0x50, 0x54, 0x8a, 0x6f, 0x50, 0x74, 0x1a, 0x6f, 0x50, 0x22, 0x55, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0x68, 0xb3, 0xae, 0xe1, 0x17, 0x97, 0x0d, 0x0f, 0xde, 0x1c, 0x9c, 0x64, 0x49, 0xd6, 0xf0, 0x8b, 0xcb, 0x86, 0xc7, 0x64, 0x0e, 0xce, 0x1e, 0x25, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x80, 0x65, 0x3d, 0x38, 0xcc, 0x94, 0xac, 0xe1, 0x17, 0x97, 0x0d, 0x8a, 0x4a, 0xf1, 0x35, 0xbc, 0xad, 0x73, 0xb0, 0xd4, 0xe3, 0xa7, 0x83, 0xb2, 0xce, 0x73, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x68, 0xfd, 0x70, 0x5a, 0xc3, 0x9f, 0x4b, 0x83, 0x9f, 0x87, 0x1f, 0x6a, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x25, 0xd1, 0xec, 0x06, 0x45, 0xa5, 0xf8, 0x06, 0x91, 0xbc, 0xe0, 0xb4, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x2a, 0xe7, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x61, 0x77, 0xbb, 0x86, 0x77, 0x7b, 0x36, 0xfc, 0x09, 0xb4, 0x41, 0xf9, 0x53, 0x7b, 0xf8, 0x45, 0x68, 0x83, 0xe8, 0x28, 0x9d, 0xea, 0xf0, 0x16, 0x5a, 0xb3, 0x80, 0x1f, 0xe6, 0xb6, 0x86, 0x6e, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0x6d, 0x10, 0x57, 0xe0, 0x53, 0x07, 0xe5, 0xd0, 0xef, 0x86, 0x77, 0x7b, 0x36, 0x88, 0xed, 0xae, 0xa9, 0x0d, 0x0e, 0x0b, 0x6c, 0x1b, 0x44, 0x47, 0xe9, 0xd4, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x24, 0x9a, 0xdd, 0xe0, 0xb0, 0xc0, 0xb6, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xc1, 0x53, 0xbb, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0xc0, 0xa7, 0xe1, 0x87, 0x07, 0x77, 0x0e, 0x6f, 0xa1, 0x1d, 0x44, 0xb7, 0xfc, 0xd4, 0x41, 0x74, 0xcb, 0x4f, 0x1d, 0x7e, 0x11, 0xea, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xe4, 0x86, 0x0f, 0x72, 0x36, 0x3c, 0xad, 0xb3, 0x41, 0x7c, 0x89, 0x4e, 0x1d, 0xc4, 0x4d, 0xf0, 0xd4, 0x1a, 0x3e, 0x77, 0x19, 0xbc, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0xb1, 0xdd, 0x35, 0xb5, 0xc1, 0x61, 0x81, 0x6d, 0x83, 0xe8, 0x28, 0x9d, 0x3a, 0xfc, 0x22, 0xb4, 0x86, 0xcf, 0x5d, 0x06, 0x37, 0x0f, 0x8f, 0xc9, 0xb4, 0x41, 0x29, 0x21, 0xbe, 0x86, 0x4b, 0x6a, 0x83, 0xa2, 0x46, 0x7c, 0x0d, 0x8a, 0x10, 0xe8, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x62, 0xf9, 0x7a, 0xaa, 0x0d, 0xca, 0x09, 0xe8, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x88, 0xb9, 0xf9, 0xa9, 0x36, 0x28, 0xd7, 0x65, 0x0f, 0xce, 0x2d, 0x0e, 0xb5, 0xe1, 0x2b, 0x9c, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0xfc, 0x9b, 0xb3, 0x41, 0xb4, 0xae, 0x4d, 0x1d, 0x14, 0x23, 0xb5, 0x6b, 0x50, 0x4a, 0x88, 0xaf, 0xe1, 0x92, 0xda, 0xa0, 0xa8, 0x11, 0x5f, 0x83, 0x22, 0x04, 0x7a, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x78, 0xfc, 0x9e, 0xea, 0x20, 0x96, 0x1b, 0x9c, 0xda, 0xa0, 0x94, 0x10, 0x5f, 0xc3, 0x25, 0xb5, 0x41, 0x51, 0x23, 0xbe, 0x06, 0x45, 0x08, 0xf4, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x91, 0x44, 0x3e, 0xd5, 0x41, 0x2c, 0x37, 0x38, 0xb5, 0x41, 0x29, 0x21, 0xbe, 0x86, 0x4b, 0x6a, 0x83, 0xa2, 0x46, 0x7c, 0x0d, 0x8a, 0x10, 0xe8, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0xe9, 0xc6, 0x53, 0x1b, 0x94, 0x13, 0xd0, 0x6b, 0x78, 0x5b, 0x67, 0xe0, 0xc7, 0xde, 0x83, 0x22, 0x5f, 0xb6, 0x36, 0x28, 0x25, 0xc4, 0xd7, 0x70, 0x49, 0x6d, 0x50, 0xd4, 0x88, 0xaf, 0x41, 0x11, 0x02, 0xbd, 0xe1, 0xdd, 0x9e, 0x0d, 0x62, 0xd1, 0x7f, 0x6a, 0x83, 0x72, 0x02, 0x7a, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x8f, 0xff, 0x53, 0x1b, 0x94, 0xeb, 0xb2, 0x07, 0x69, 0x80, 0x94, 0xb5, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0x1d, 0xc4, 0x6e, 0x6d, 0xd3, 0x06, 0xa5, 0x84, 0xf8, 0x06, 0xb1, 0x21, 0x40, 0xb5, 0x41, 0x29, 0x21, 0xbe, 0x41, 0x74, 0x10, 0x50, 0x6d, 0x50, 0x4a, 0x88, 0xaf, 0xe1, 0x92, 0xda, 0xa0, 0xa8, 0x11, 0x5f, 0x83, 0x22, 0x04, 0x7a, 0xc3, 0xbb, 0x3d, 0x1b, 0xc4, 0xa2, 0xff, 0xd4, 0x06, 0xe5, 0x04, 0xf4, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x1e, 0xff, 0xa7, 0x36, 0x28, 0xd7, 0x65, 0x37, 0x88, 0xd6, 0xb5, 0xa9, 0xc3, 0x5b, 0x68, 0xb5, 0xe1, 0xdd, 0x9e, 0x0d, 0x8a, 0x6d, 0xe5, 0x0d, 0x0e, 0x0b, 0x6c, 0x07, 0x65, 0xb6, 0xf4, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0xab, 0x41, 0xbc, 0x51, 0xe9, 0x6c, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xc4, 0x1b, 0x95, 0x4e, 0x03, 0x78, 0x05, 0x15, 0x4d, 0xb5, 0xc4, 0xe4, 0xc8, 0x80, 0x4c, 0xc9, 0x58, 0x6d, 0x78, 0x7c, 0x64, 0x83, 0x78, 0xa3, 0xd2, 0xd9, 0xf0, 0x8b, 0xd2, 0x06, 0x51, 0xa2, 0x30, 0xb5, 0x41, 0x09, 0x8f, 0xb9, 0x41, 0xb4, 0x2e, 0x4c, 0xad, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x44, 0x02, 0xeb, 0x74, 0x10, 0xbd, 0x0c, 0x53, 0x1b, 0x14, 0xa4, 0xb1, 0x1b, 0x1c, 0x33, 0x3c, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x51, 0x50, 0x41, 0x75, 0x10, 0xdb, 0x0e, 0x53, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x44, 0x41, 0x05, 0xd5, 0x06, 0x87, 0xd6, 0xae, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x8b, 0x66, 0x83, 0x88, 0x87, 0x98, 0xda, 0xa0, 0x84, 0xc7, 0xdc, 0x20, 0xda, 0x24, 0xa6, 0x36, 0x88, 0x6c, 0x89, 0xa9, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x83, 0x98, 0xde, 0x98, 0x5a, 0x83, 0x33, 0x98, 0xe7, 0x86, 0x77, 0x7b, 0x36, 0x38, 0xc4, 0x40, 0x6c, 0x10, 0x03, 0x19, 0x53, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x28, 0xa8, 0xa0, 0x3a, 0x88, 0x16, 0x8f, 0xa9, 0x3a, 0x9c, 0x62, 0xd5, 0x1a, 0x44, 0x5a, 0x9a, 0xce, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0xa4, 0xa5, 0xe9, 0x34, 0x80, 0x57, 0x50, 0xd1, 0x54, 0x4b, 0x4c, 0x8e, 0x0c, 0xc8, 0x90, 0xd0, 0xd0, 0x06, 0x65, 0x97, 0xec, 0x06, 0x91, 0x96, 0xa6, 0xb3, 0x41, 0x1a, 0x81, 0xd1, 0x6c, 0x50, 0x96, 0x61, 0xaf, 0xe1, 0x73, 0xa5, 0x0d, 0xa2, 0x77, 0x5e, 0x6a, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x70, 0x72, 0xf6, 0x41, 0x3c, 0x7f, 0x4b, 0x35, 0xcb, 0x2c, 0xf0, 0x64, 0xe5, 0x86, 0xe7, 0x49, 0x36, 0x88, 0x9f, 0x7a, 0xa9, 0x0d, 0x8f, 0x8f, 0x0c, 0x3c, 0x59, 0xb9, 0xe1, 0x17, 0xa5, 0x0d, 0x9a, 0xec, 0x3c, 0xde, 0xf0, 0x17, 0xcd, 0x06, 0xc7, 0x96, 0xd2, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x01, 0x6f, 0x8c, 0x6e, 0xde, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0x60, 0x19, 0xf8, 0xf9, 0xe1, 0xc1, 0x9b, 0x35, 0xfc, 0x45, 0xb3, 0x41, 0x39, 0x67, 0xbb, 0xc1, 0xd1, 0x75, 0xf0, 0xa0, 0x70, 0x92, 0xdd, 0xf0, 0x6e, 0xcf, 0x06, 0x85, 0xc5, 0xf2, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x20, 0x5a, 0xde, 0xe0, 0xbc, 0x40, 0x73, 0xb0, 0x08, 0xfc, 0xbc, 0x0d, 0x4a, 0x7b, 0xcb, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0xc1, 0xd1, 0xcd, 0x07, 0xe5, 0x9c, 0xed, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0xc5, 0xb6, 0xf2, 0x06, 0xe7, 0x05, 0x9a, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x8b, 0x66, 0x83, 0x72, 0xce, 0x76, 0x83, 0x12, 0x1e, 0x73, 0x01, 0x6f, 0x8c, 0x6e, 0x6e, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x70, 0x74, 0x73, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x03, 0x1e, 0x1c, 0x9b, 0xbb, 0xe1, 0xdd, 0x9e, 0x0d, 0x0e, 0x31, 0x10, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x83, 0x93, 0xb3, 0x5b, 0xc3, 0xbb, 0x3d, 0x6b, 0x50, 0x96, 0xbc, 0x6f, 0xf0, 0x58, 0xfa, 0xe0, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x04, 0xbc, 0xea, 0x74, 0x70, 0x02, 0x67, 0x5b, 0xc3, 0xdb, 0x3a, 0x83, 0xa7, 0x07, 0x11, 0x9c, 0x42, 0x55, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0xc4, 0x91, 0x0a, 0xd5, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb6, 0xce, 0x80, 0x07, 0xc7, 0xe6, 0xb6, 0x41, 0x44, 0xa8, 0x50, 0xb5, 0x06, 0x11, 0x9c, 0x42, 0xb5, 0xe1, 0x6d, 0x9d, 0xc1, 0xe9, 0x83, 0x08, 0x4e, 0xa1, 0x5a, 0x83, 0xe8, 0x5f, 0xa1, 0x3a, 0x88, 0xee, 0x16, 0xaa, 0x66, 0x81, 0x2f, 0x73, 0x37, 0x3c, 0x4f, 0xb2, 0x41, 0x6c, 0x05, 0x4c, 0x6d, 0x78, 0x7c, 0x64, 0xe0, 0xcb, 0xdc, 0x0d, 0xbf, 0x28, 0x6d, 0xd0, 0x64, 0xe7, 0xf1, 0x86, 0xbf, 0x68, 0x36, 0x38, 0xb6, 0x94, 0x6e, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x70, 0x74, 0xf3, 0x41, 0xe4, 0x8e, 0x50, 0x6d, 0x50, 0xda, 0x5b, 0xae, 0xe1, 0xcf, 0xa5, 0x01, 0x6f, 0x8c, 0x6e, 0x3e, 0x28, 0xe7, 0x6c, 0x37, 0x28, 0x3a, 0x8d, 0x37, 0x28, 0xb6, 0x95, 0x37, 0x38, 0x2f, 0xd0, 0x6c, 0xf8, 0x0a, 0x67, 0xc3, 0x5f, 0x34, 0x1b, 0x94, 0x73, 0xb6, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0xc4, 0x91, 0x0a, 0xd5, 0x1a, 0xde, 0xd6, 0x39, 0x88, 0xe0, 0x14, 0xaa, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x01, 0x6f, 0x0c, 0x0e, 0xdd, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0xbc, 0x50, 0x3d, 0xf8, 0x20, 0x22, 0x5a, 0xa8, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x87, 0x18, 0x88, 0x0d, 0xe2, 0x78, 0x85, 0x6a, 0x0d, 0x6f, 0xeb, 0x0c, 0x9e, 0x1e, 0xc4, 0x91, 0x0a, 0x55, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0x10, 0xc1, 0x29, 0x54, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0xde, 0x18, 0x1c, 0xda, 0x06, 0x31, 0x7e, 0x43, 0xd5, 0x1a, 0xc4, 0x91, 0x0a, 0xd5, 0x86, 0xb7, 0x75, 0x06, 0xa7, 0x0f, 0xe2, 0x48, 0x85, 0x6a, 0x0d, 0xa2, 0x7f, 0x85, 0xea, 0x20, 0xfa, 0x78, 0xa8, 0x3a, 0x9c, 0x62, 0x87, 0x53, 0x6c, 0x35, 0x88, 0x3e, 0x41, 0x9d, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xe8, 0x13, 0xd4, 0x69, 0x00, 0xaf, 0xa0, 0xa2, 0xa9, 0x16, 0x99, 0x1a, 0x1b, 0x90, 0xa9, 0x24, 0xab, 0x0d, 0xca, 0x2e, 0xd9, 0x0d, 0xa2, 0x4f, 0x50, 0x67, 0x83, 0x34, 0x02, 0xa3, 0xd9, 0xa0, 0x2c, 0xc3, 0x5e, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0xa2, 0xf5, 0x64, 0xc3, 0x17, 0x35, 0x1b, 0xea, 0x78, 0xb8, 0xb2, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xbb, 0xb2, 0xf1, 0xa0, 0x9c, 0xb3, 0x6d, 0x96, 0x59, 0xe0, 0xc9, 0xca, 0x0d, 0xcf, 0x93, 0x6c, 0x10, 0x3f, 0xf5, 0x52, 0x1b, 0x1e, 0x1f, 0x19, 0x78, 0xb2, 0x72, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x7c, 0x9a, 0x7d, 0x10, 0xcf, 0xdf, 0x52, 0x1b, 0x9c, 0x7d, 0xd8, 0x0e, 0x1a, 0x66, 0x40, 0xde, 0xf0, 0x17, 0xcd, 0x06, 0xcb, 0xd5, 0x52, 0x37, 0x7c, 0x62, 0xb3, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb9, 0xcb, 0x40, 0xaf, 0xc5, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0xe2, 0xe3, 0x6e, 0x70, 0x58, 0x99, 0x3b, 0x38, 0x81, 0xb3, 0xad, 0xe1, 0x73, 0x97, 0x81, 0x5e, 0x93, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xc8, 0xc4, 0x3d, 0x88, 0x8b, 0x24, 0xaa, 0x36, 0x58, 0xe9, 0xe2, 0xb4, 0x80, 0x87, 0x96, 0x26, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x7a, 0xc7, 0xad, 0xe1, 0x6d, 0x9d, 0x81, 0x4f, 0xb3, 0x5b, 0xc3, 0x8f, 0x30, 0x03, 0x5f, 0x87, 0x1f, 0xc4, 0x34, 0x9c, 0x4e, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x03, 0x1e, 0x1c, 0x9b, 0xbb, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x4b, 0xde, 0x37, 0x78, 0x2c, 0x7d, 0xf0, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0x62, 0x4c, 0x75, 0x5a, 0xc3, 0xdb, 0x3a, 0x03, 0xbd, 0x26, 0xdb, 0xe0, 0xbc, 0x40, 0xb3, 0x41, 0xe1, 0x65, 0xbc, 0x86, 0xb7, 0x75, 0x0e, 0xe2, 0x61, 0x89, 0xaa, 0x83, 0x45, 0xe0, 0xe7, 0x1b, 0x14, 0x3b, 0x9a, 0x6b, 0xf8, 0x37, 0x67, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x22, 0x38, 0x30, 0xa7, 0x0d, 0x4e, 0xab, 0x6f, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x13, 0x41, 0xdb, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xec, 0xca, 0xc6, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x4b, 0xb4, 0x59, 0xd7, 0xe0, 0xe8, 0x3a, 0xb8, 0x41, 0xa4, 0xbd, 0x50, 0x55, 0x1d, 0xc4, 0xf6, 0x12, 0xd5, 0x06, 0x05, 0x45, 0xe6, 0x06, 0xc7, 0x70, 0x83, 0x83, 0x48, 0x7b, 0xa1, 0x9a, 0x05, 0xbe, 0xcc, 0xdd, 0xf0, 0x3c, 0xc9, 0x06, 0xb1, 0x15, 0x30, 0xb5, 0xe1, 0xf1, 0x91, 0x81, 0x2f, 0x73, 0x37, 0xfc, 0xa2, 0xb4, 0x41, 0x93, 0x9d, 0xc7, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0xd0, 0x2f, 0xd9, 0xe0, 0x58, 0x34, 0xba, 0xc1, 0x7b, 0x47, 0x81, 0x37, 0x28, 0xb3, 0x74, 0x0f, 0x0e, 0x2d, 0xa5, 0x1b, 0x3e, 0xb1, 0xd9, 0x20, 0xfe, 0x8f, 0xa8, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x3e, 0xcd, 0xde, 0xf0, 0x6e, 0xcf, 0x06, 0xb1, 0x17, 0x45, 0xb5, 0xc1, 0x69, 0xf5, 0x6d, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0x22, 0x68, 0xdb, 0x20, 0x86, 0xa5, 0xa8, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x4b, 0xb4, 0x59, 0xd7, 0xe0, 0xe8, 0x3a, 0x78, 0xb0, 0x08, 0xfc, 0xbc, 0xda, 0x60, 0xa5, 0x8b, 0xd3, 0x06, 0xf1, 0xb0, 0x44, 0xb5, 0x41, 0x7c, 0x2d, 0x51, 0x6d, 0xf8, 0xc4, 0x66, 0x83, 0xb8, 0x49, 0x7f, 0xda, 0xe0, 0x9c, 0xbf, 0xb4, 0x41, 0x6c, 0x2f, 0x51, 0x6d, 0x50, 0x78, 0x19, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x5e, 0xa8, 0x1e, 0x7c, 0x10, 0x7f, 0x4e, 0x54, 0x07, 0x8b, 0xc0, 0xcf, 0x0f, 0xa7, 0xd8, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x6b, 0x10, 0xf5, 0x89, 0x3a, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0x51, 0x9f, 0xa8, 0xd3, 0x00, 0x5e, 0x41, 0x45, 0x53, 0x2d, 0x31, 0x32, 0x38, 0x20, 0x45, 0x43, 0x42, 0x1b, 0x94, 0x5d, 0xb2, 0x1b, 0x44, 0x7d, 0xa2, 0xce, 0x06, 0x69, 0x04, 0x46, 0xb3, 0x41, 0x59, 0x86, 0xbd, 0x41, 0xa4, 0x88, 0x4c, 0xcd, 0x32, 0x0b, 0x3c, 0x59, 0xb9, 0xe1, 0x79, 0x92, 0x0d, 0xe2, 0xa7, 0x5e, 0x6a, 0xc3, 0xe3, 0x23, 0x03, 0x4f, 0x56, 0x6e, 0xf8, 0x45, 0x69, 0x83, 0xe8, 0xb8, 0x97, 0xda, 0xf0, 0x17, 0xcd, 0x06, 0xef, 0x1d, 0x05, 0xde, 0xf0, 0x89, 0xcd, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0xae, 0xf1, 0xa5, 0x36, 0x38, 0x35, 0xb7, 0x6d, 0x70, 0x6a, 0x6e, 0x3b, 0x48, 0x77, 0xad, 0xda, 0x60, 0x6d, 0x5c, 0xd3, 0x6a, 0x70, 0x1c, 0xf8, 0xd8, 0xf0, 0x6e, 0xcf, 0x06, 0x89, 0x9f, 0xb4, 0x07, 0x27, 0x70, 0xb6, 0x83, 0xc8, 0xe1, 0x97, 0x3a, 0x88, 0xc8, 0x7e, 0xa9, 0x59, 0xe0, 0xcb, 0xdc, 0x0d, 0xcf, 0x93, 0x6c, 0x10, 0x5b, 0x01, 0x53, 0x1b, 0x1e, 0x1f, 0x19, 0xf8, 0x32, 0x77, 0xc3, 0x2f, 0x4a, 0x1b, 0x44, 0xc7, 0xbd, 0xd4, 0x86, 0xbf, 0x68, 0x36, 0x78, 0xef, 0x28, 0xf0, 0x86, 0x4f, 0x6c, 0x36, 0x88, 0x31, 0x33, 0xaa, 0x0d, 0xd6, 0xc6, 0x35, 0x6d, 0x10, 0xf3, 0x67, 0x54, 0x07, 0x51, 0x51, 0x30, 0x75, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x5b, 0xc0, 0x9f, 0xab, 0x13, 0x1b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x22, 0xb2, 0x8d, 0xaa, 0x01, 0xbc, 0x83, 0x8a, 0xa6, 0x5a, 0x64, 0x6a, 0x6c, 0x40, 0xe6, 0xea, 0xc4, 0xd6, 0xca, 0xf2, 0xe6, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0xf4, 0xce, 0x4b, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0xce, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x5e, 0xa8, 0x1e, 0xbc, 0x86, 0xb7, 0x75, 0x36, 0x88, 0x7a, 0xb7, 0x9c, 0x0e, 0x4e, 0xe0, 0x6c, 0x07, 0x85, 0x93, 0xec, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x40, 0xaf, 0xc5, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x3d, 0x19, 0x53, 0x07, 0x09, 0x21, 0xb6, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x03, 0xbd, 0x26, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0xf4, 0x64, 0x4c, 0x1d, 0x9c, 0x0c, 0xe0, 0x36, 0xfc, 0x45, 0xb3, 0x86, 0xcf, 0x95, 0x36, 0x38, 0xb6, 0x94, 0x1e, 0x1c, 0x5a, 0x4a, 0x37, 0xfc, 0xe2, 0xb2, 0xc1, 0x69, 0xf5, 0x6d, 0x83, 0x68, 0x78, 0xa2, 0x6a, 0x35, 0x88, 0x18, 0x53, 0x9d, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x88, 0x31, 0xd5, 0x69, 0x00, 0xaf, 0xa0, 0xa2, 0xa9, 0x16, 0x99, 0x1a, 0x1b, 0x90, 0x21, 0x2a, 0xa9, 0x0d, 0xca, 0x2e, 0xd9, 0x0d, 0x22, 0xc6, 0x54, 0x67, 0x83, 0x34, 0x02, 0xa3, 0xd9, 0xa0, 0x2c, 0xc3, 0x5e, 0xc3, 0xe7, 0x4a, 0x1b, 0x44, 0xef, 0xbc, 0xd4, 0x06, 0x11, 0xeb, 0x2d, 0xb5, 0xc1, 0xd9, 0x87, 0xed, 0x20, 0x9a, 0xbe, 0xa5, 0x66, 0x99, 0x05, 0x9e, 0xac, 0xdc, 0xf0, 0x3c, 0xc9, 0x06, 0xf1, 0x53, 0x2f, 0x75, 0xf0, 0x0c, 0xf5, 0xe0, 0x59, 0xe0, 0xcb, 0xdc, 0x0d, 0xcf, 0x93, 0x6c, 0x10, 0x5b, 0x01, 0x53, 0x1b, 0x1e, 0x1f, 0x19, 0xf8, 0x32, 0x77, 0xc3, 0x2f, 0x4a, 0x1b, 0x34, 0xd9, 0x79, 0xbc, 0xe1, 0x2f, 0x9a, 0x0d, 0x8e, 0x2d, 0xa5, 0x1b, 0x14, 0xa4, 0xb1, 0x1b, 0x44, 0x82, 0xc0, 0xd4, 0x06, 0x11, 0x14, 0x47, 0xb5, 0x41, 0x41, 0x1a, 0xbb, 0xc1, 0xc1, 0xc9, 0x6d, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x13, 0x68, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x0a, 0xac, 0x07, 0x51, 0xa0, 0x32, 0xb5, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x8b, 0xe3, 0x1c, 0x9a, 0x1f, 0x74, 0x10, 0x05, 0x2a, 0x53, 0x87, 0x07, 0x6f, 0x36, 0x3c, 0x78, 0x73, 0x78, 0x4c, 0xa6, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x1a, 0xb6, 0xd2, 0x06, 0x85, 0x97, 0xf1, 0x06, 0xd1, 0x9a, 0xfe, 0xd4, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x87, 0x18, 0x88, 0x0d, 0x96, 0x81, 0x9f, 0x6f, 0x50, 0x74, 0x1a, 0x6f, 0x50, 0xe2, 0xe3, 0xae, 0xe1, 0x17, 0x97, 0x0d, 0x8a, 0x4a, 0xf1, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x53, 0xc0, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xf0, 0xd4, 0x6e, 0x70, 0x78, 0x95, 0x3b, 0x38, 0xb4, 0xbd, 0x1d, 0x14, 0x5d, 0xc6, 0x6d, 0x50, 0x74, 0x1a, 0x6f, 0x50, 0x6c, 0x2b, 0x6f, 0x70, 0x5e, 0xa0, 0xd9, 0xa0, 0xb4, 0xb7, 0x5c, 0xc3, 0x9f, 0x4b, 0x1b, 0x3c, 0x94, 0xf3, 0xe4, 0xe0, 0xe0, 0x51, 0xba, 0xe1, 0x2b, 0x9c, 0x0d, 0x5f, 0xbf, 0xac, 0xe1, 0x6d, 0x9d, 0x83, 0x27, 0x51, 0xa2, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0x6c, 0x70, 0x6c, 0x7b, 0x3b, 0x3c, 0x78, 0xb3, 0x41, 0xec, 0x2a, 0x52, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xf0, 0x24, 0x4a, 0x94, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0x73, 0x10, 0x05, 0x02, 0x53, 0x07, 0xb1, 0x23, 0x2e, 0xb5, 0x41, 0xec, 0x2a, 0x52, 0xb5, 0x06, 0x51, 0x27, 0x2e, 0xb5, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xa5, 0xb9, 0x8d, 0x1d, 0xc4, 0x7f, 0xb8, 0xd4, 0x1a, 0x9c, 0xe8, 0xde, 0x36, 0xbc, 0xdb, 0xb3, 0xe1, 0x35, 0x9f, 0x83, 0x43, 0xdb, 0x5b, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x35, 0x88, 0x80, 0x57, 0x9d, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x08, 0x78, 0xd5, 0x69, 0x00, 0xaf, 0xa0, 0xa2, 0xa9, 0x96, 0x98, 0x1c, 0x19, 0x90, 0xa2, 0x21, 0xa1, 0x0d, 0xca, 0x2e, 0xd9, 0x0d, 0x22, 0xe0, 0x55, 0x67, 0x83, 0x34, 0x02, 0xa3, 0xd9, 0xa0, 0x2c, 0xc3, 0xde, 0x20, 0x7a, 0xe7, 0xa5, 0x66, 0x99, 0x05, 0x9e, 0xac, 0xdc, 0xf0, 0x3c, 0xc9, 0x06, 0xf1, 0x53, 0x2f, 0xb5, 0xe1, 0xf1, 0x91, 0x81, 0x27, 0x2b, 0x37, 0xfc, 0xa2, 0xb4, 0x41, 0x74, 0xdc, 0x4b, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0xf7, 0x8e, 0x02, 0x6f, 0xf8, 0xc4, 0x66, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0xd7, 0xf8, 0x52, 0x1b, 0x1c, 0x97, 0x67, 0x36, 0x38, 0x35, 0xb7, 0x1d, 0xb4, 0x8e, 0xcb, 0xbc, 0xc1, 0xda, 0xb8, 0xa6, 0xd5, 0xe0, 0x38, 0xf0, 0xb1, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0x7c, 0xdc, 0x0d, 0x8e, 0xcb, 0x33, 0x1b, 0x44, 0xaf, 0xbe, 0x54, 0x07, 0x91, 0xc3, 0x2f, 0x75, 0x10, 0x91, 0xfd, 0x52, 0xb3, 0xc0, 0x97, 0xb9, 0x1b, 0x9e, 0x27, 0xd9, 0x20, 0xb6, 0x02, 0xa6, 0x36, 0x3c, 0x3e, 0x32, 0xf0, 0x65, 0xee, 0x86, 0x5f, 0x94, 0x36, 0x88, 0x8e, 0x7b, 0xa9, 0x0d, 0x7f, 0xd1, 0x6c, 0xf0, 0xde, 0x51, 0xe0, 0x0d, 0x9f, 0xd8, 0x6c, 0x10, 0x61, 0x97, 0x54, 0x1b, 0xac, 0x8d, 0x6b, 0xda, 0x20, 0xea, 0x31, 0xa9, 0x0e, 0xa2, 0xa2, 0x60, 0xea, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0xd5, 0xe0, 0x51, 0xb0, 0x7c, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0x8f, 0x82, 0xe5, 0x6b, 0x00, 0xef, 0xa0, 0xa2, 0xa9, 0x96, 0x18, 0x19, 0x1c, 0x90, 0xb9, 0x3a, 0xb1, 0xb5, 0xb2, 0xbc, 0xb9, 0x0d, 0xbf, 0x28, 0x6d, 0x10, 0x29, 0x22, 0x53, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0xb3, 0x1b, 0xde, 0xed, 0x59, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x17, 0xaa, 0x07, 0xaf, 0xe1, 0x6d, 0x9d, 0x0d, 0xa2, 0x3e, 0x51, 0xa7, 0x83, 0x13, 0x38, 0xdb, 0x41, 0xe1, 0x24, 0x7b, 0x10, 0xcf, 0x72, 0x54, 0x87, 0x53, 0xac, 0x35, 0x88, 0x3f, 0x8d, 0xa9, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0xbd, 0x8d, 0xd1, 0x87, 0x1f, 0x6a, 0x0e, 0x1a, 0x66, 0x40, 0xde, 0xf0, 0x17, 0xcd, 0x06, 0xc7, 0x96, 0xd2, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x0d, 0x8e, 0xaa, 0x6c, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0xec, 0x6e, 0xd7, 0xf0, 0xb6, 0xce, 0x41, 0xcc, 0x9b, 0x4c, 0x1d, 0x1c, 0x5d, 0xe5, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0x36, 0x38, 0x08, 0xb5, 0x1d, 0x1e, 0xbc, 0x59, 0xc3, 0x8f, 0x30, 0x03, 0x5f, 0x87, 0x1f, 0x44, 0xc1, 0xac, 0xce, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x0d, 0x78, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0x45, 0xa5, 0xf8, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0x29, 0xe0, 0x06, 0xa7, 0xfb, 0xb7, 0x0d, 0x0e, 0x42, 0x6d, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x38, 0xc4, 0x40, 0xac, 0xe1, 0x47, 0x98, 0x81, 0xaf, 0xc3, 0x83, 0x00, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0x03, 0xde, 0x83, 0x88, 0x45, 0x7f, 0xaa, 0xd5, 0x20, 0x02, 0x78, 0x75, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x22, 0x80, 0x57, 0xa7, 0x01, 0xbc, 0x82, 0x8a, 0xa6, 0x5a, 0x62, 0x72, 0x64, 0x40, 0x86, 0xa8, 0xa4, 0x36, 0x28, 0xbb, 0x64, 0x37, 0x88, 0x00, 0x5e, 0x9d, 0x0d, 0xd2, 0x08, 0x8c, 0x66, 0x83, 0xb2, 0x0c, 0x7b, 0x83, 0x68, 0xd4, 0xa3, 0x9a, 0x65, 0x36, 0x88, 0x02, 0x3e, 0xaa, 0x59, 0xe0, 0xcb, 0xdc, 0x0d, 0x8f, 0x8f, 0x0c, 0x7c, 0x99, 0xbb, 0xe1, 0x17, 0xa5, 0x0d, 0x9a, 0xec, 0x3c, 0xde, 0xf0, 0x17, 0xcd, 0x06, 0xc7, 0x96, 0xd2, 0x0d, 0x0a, 0xd2, 0xd8, 0x0d, 0x22, 0x41, 0x60, 0x6a, 0x83, 0x98, 0xca, 0xa1, 0x3a, 0x88, 0xfd, 0x3f, 0xaa, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x56, 0x83, 0x88, 0x04, 0xd6, 0xd9, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x88, 0x48, 0x60, 0x9d, 0x06, 0xf0, 0x0b, 0x2a, 0x9a, 0x6a, 0x89, 0xc9, 0x91, 0x01, 0x19, 0x6a, 0x0a, 0x1a, 0xda, 0xf0, 0xf8, 0xc8, 0x06, 0x11, 0x09, 0xac, 0xb3, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0xf4, 0xce, 0x4b, 0x1d, 0xc4, 0xb9, 0xc8, 0xd4, 0x86, 0xbf, 0x68, 0x36, 0x38, 0xb6, 0x94, 0x6e, 0xf8, 0xc4, 0x66, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x73, 0x97, 0x0d, 0x2d, 0x3e, 0x36, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0xfc, 0xb9, 0x3a, 0x31, 0xb1, 0x83, 0x13, 0x38, 0xdb, 0x41, 0xd4, 0x98, 0x4c, 0x6d, 0xf8, 0xc4, 0x66, 0x83, 0x38, 0x43, 0x99, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0xd9, 0x60, 0x79, 0x69, 0xf0, 0x06, 0x27, 0xf6, 0x9b, 0x35, 0x28, 0x4b, 0xde, 0x37, 0x78, 0xa1, 0x7a, 0xf0, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0xd2, 0xd2, 0x74, 0x3a, 0x88, 0xf4, 0x97, 0xa9, 0x83, 0x38, 0x83, 0x99, 0x3a, 0x88, 0xe9, 0x99, 0xa9, 0xc3, 0x29, 0xd6, 0x1a, 0xc4, 0x42, 0xb2, 0xce, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x2c, 0x24, 0xeb, 0x34, 0x80, 0x57, 0x50, 0xd1, 0x54, 0x4b, 0x8c, 0x0c, 0x0e, 0xc8, 0x94, 0x8c, 0xd5, 0x86, 0xc7, 0x47, 0x36, 0x88, 0x85, 0x64, 0x9d, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0x22, 0x45, 0x64, 0xea, 0x20, 0x4e, 0x15, 0xa6, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x88, 0xd6, 0x85, 0xa9, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x88, 0xd1, 0xc7, 0x9c, 0x0e, 0xa2, 0x97, 0x61, 0x6a, 0x83, 0x82, 0x34, 0x76, 0x83, 0x63, 0x86, 0xe7, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x7e, 0x86, 0xa9, 0x0e, 0x62, 0xdb, 0x61, 0x6a, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0xf8, 0x19, 0xa6, 0xda, 0xe0, 0xd0, 0xda, 0xb5, 0xe1, 0x2b, 0x9c, 0x0d, 0x7f, 0xd1, 0x6c, 0x10, 0xf1, 0x10, 0x53, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x44, 0x9b, 0xc4, 0xd4, 0x06, 0x91, 0x2d, 0x31, 0xb5, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0x6d, 0x10, 0xd3, 0x1b, 0x53, 0x6b, 0x70, 0x06, 0xf3, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0x87, 0x18, 0x88, 0x0d, 0x62, 0x20, 0x63, 0x6a, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x3f, 0xc3, 0x54, 0x07, 0xd1, 0xe2, 0x31, 0x55, 0xab, 0x41, 0x8c, 0x59, 0xeb, 0x6c, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xc4, 0x98, 0xb5, 0x4e, 0x03, 0x78, 0x05, 0x15, 0x4d, 0xb5, 0xc8, 0xd4, 0xd8, 0x80, 0x0c, 0x09, 0x0d, 0x6d, 0x50, 0x76, 0xc9, 0x6e, 0x10, 0x63, 0xd6, 0x3a, 0x1b, 0xa4, 0x11, 0x18, 0xcd, 0x06, 0x65, 0x19, 0xf6, 0x06, 0xb1, 0xf7, 0x41, 0x35, 0xcb, 0x2c, 0xf0, 0x64, 0xe5, 0x86, 0xe7, 0x49, 0x36, 0x88, 0x9f, 0x7a, 0xa9, 0x0d, 0x8f, 0x8f, 0x0c, 0x3c, 0x59, 0xb9, 0xe1, 0x17, 0xa5, 0x0d, 0x9a, 0xec, 0x3c, 0xde, 0xf0, 0x17, 0xcd, 0x06, 0xc7, 0x96, 0xd2, 0x0d, 0x9f, 0xd8, 0x6c, 0x10, 0x3b, 0x23, 0x54, 0x1b, 0x94, 0xf6, 0x96, 0x1b, 0x44, 0xd5, 0x09, 0xd5, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0xc5, 0xb6, 0xf2, 0x06, 0xe7, 0x05, 0x9a, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x8b, 0x66, 0x83, 0x72, 0xce, 0x76, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x08, 0x4e, 0xa1, 0xda, 0x20, 0x22, 0x54, 0xa8, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x3c, 0x38, 0x36, 0x77, 0xc3, 0xbb, 0x3d, 0x1b, 0x1c, 0x62, 0x20, 0x36, 0x88, 0xe3, 0x15, 0xaa, 0x35, 0xbc, 0xdb, 0xb3, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x8f, 0xa5, 0x0f, 0x3e, 0x88, 0xe5, 0x38, 0xaa, 0x83, 0xc8, 0x6e, 0xa1, 0xea, 0x20, 0x06, 0x5d, 0xa8, 0x66, 0x81, 0x2f, 0x73, 0x37, 0x3c, 0x4f, 0xb2, 0x41, 0x6c, 0x05, 0x4c, 0x6d, 0x78, 0x7c, 0x64, 0xe0, 0xcb, 0xdc, 0x0d, 0xbf, 0x28, 0x6d, 0xd0, 0x64, 0xe7, 0xf1, 0x86, 0xbf, 0x68, 0x36, 0x38, 0xb6, 0x94, 0x6e, 0xf8, 0xc4, 0x66, 0x83, 0x08, 0xa1, 0xa1, 0xda, 0xa0, 0xb4, 0xb7, 0xdc, 0x20, 0x56, 0x6a, 0xa8, 0x36, 0x28, 0x3a, 0x8d, 0x37, 0x28, 0xb6, 0x95, 0x37, 0x38, 0x2f, 0xd0, 0x6c, 0xf8, 0x0a, 0x67, 0xc3, 0x5f, 0x34, 0x1b, 0x94, 0x73, 0xb6, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0xc4, 0x91, 0x0a, 0xd5, 0x06, 0x31, 0x7e, 0x43, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xe0, 0x8d, 0xc1, 0xa1, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0x82, 0xe2, 0xa8, 0x0e, 0xa2, 0x44, 0x87, 0xea, 0x20, 0x2e, 0x77, 0xa8, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x9b, 0x35, 0x88, 0x3e, 0x71, 0x9d, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xe8, 0x13, 0xd7, 0x69, 0x00, 0xaf, 0xa0, 0xa2, 0xa9, 0x96, 0x98, 0x1c, 0x19, 0x90, 0xa9, 0x24, 0xab, 0x0d, 0xca, 0x2e, 0xd9, 0x0d, 0xa2, 0x4f, 0x5c, 0x67, 0x83, 0x34, 0x02, 0xa3, 0xd9, 0xa0, 0x2c, 0xc3, 0xde, 0x20, 0xda, 0x84, 0xa8, 0x66, 0x99, 0x05, 0x9e, 0xac, 0xdc, 0xf0, 0x3c, 0xc9, 0x06, 0xf1, 0x53, 0x2f, 0xb5, 0xe1, 0xf1, 0x91, 0x81, 0x27, 0x2b, 0x37, 0xfc, 0xa2, 0xb4, 0x41, 0x5c, 0x17, 0x51, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0xe5, 0x6a, 0xa9, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0x2f, 0x2e, 0x6b, 0xf8, 0xdc, 0x65, 0xa0, 0xd7, 0xe2, 0x86, 0x77, 0x7b, 0x36, 0x28, 0xf1, 0x71, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0xc7, 0xe5, 0x99, 0x83, 0x82, 0x52, 0xfc, 0xe0, 0x04, 0xce, 0xb6, 0x86, 0xcf, 0x5d, 0x06, 0x7a, 0x4d, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x22, 0x13, 0xf7, 0x20, 0x4a, 0xca, 0xa9, 0xda, 0x60, 0xa5, 0x8b, 0xd3, 0x06, 0xf1, 0xb0, 0x44, 0xb5, 0x41, 0x7c, 0x2d, 0x51, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x70, 0x6c, 0xee, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x2c, 0x79, 0xdf, 0xe0, 0xb1, 0xf4, 0xc1, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x08, 0xe0, 0xd5, 0xe9, 0x20, 0x12, 0x9e, 0xa8, 0x0e, 0x16, 0x81, 0x9f, 0x6f, 0x50, 0xec, 0x68, 0xae, 0xe1, 0xdf, 0x9c, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x88, 0x37, 0x2a, 0x9d, 0x0e, 0x22, 0x40, 0x8a, 0xea, 0x20, 0xb6, 0x97, 0xa8, 0x0e, 0xe2, 0x95, 0x8a, 0x6a, 0x16, 0xf8, 0x32, 0x77, 0xc3, 0xf3, 0x24, 0x1b, 0xc4, 0x56, 0xc0, 0xd4, 0x86, 0xc7, 0x47, 0x06, 0xbe, 0xcc, 0xdd, 0xf0, 0x8b, 0xd2, 0x06, 0x4d, 0x76, 0x1e, 0x6f, 0xf8, 0x8b, 0x66, 0x83, 0xe8, 0xba, 0xa2, 0xda, 0xf0, 0x89, 0xcd, 0x06, 0xd1, 0x40, 0x4e, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xf0, 0x69, 0xf6, 0x86, 0x77, 0x7b, 0x36, 0x88, 0xb7, 0x75, 0xaa, 0x83, 0x58, 0xd2, 0xa2, 0xda, 0x60, 0xa5, 0x8b, 0xd3, 0x06, 0xf1, 0xb0, 0x44, 0xb5, 0x41, 0x7c, 0x2d, 0x51, 0x6d, 0xf8, 0xc4, 0x66, 0x83, 0xb8, 0x49, 0x7f, 0xda, 0xe0, 0x9c, 0xbf, 0xb4, 0x41, 0x6c, 0x2f, 0x51, 0x6d, 0x50, 0x78, 0x19, 0x6f, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x5e, 0xa8, 0x1e, 0x7c, 0x10, 0xa3, 0xe9, 0x54, 0x07, 0x8b, 0xc0, 0xcf, 0x0f, 0xa7, 0xd8, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x6b, 0x10, 0xdb, 0xef, 0x3a, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xb1, 0xfd, 0xae, 0xd3, 0x00, 0x5e, 0x41, 0x45, 0x53, 0x2d, 0x31, 0x32, 0x38, 0x20, 0x43, 0x42, 0x43, 0x1b, 0x94, 0x5d, 0xb2, 0x1b, 0xc4, 0xf6, 0xbb, 0xce, 0x06, 0x69, 0x04, 0x46, 0xb3, 0x41, 0x59, 0x86, 0xbd, 0x86, 0xcf, 0x95, 0x36, 0x88, 0x14, 0x91, 0xa9, 0x83, 0xe8, 0xff, 0xa0, 0x9a, 0x65, 0x16, 0x78, 0xb2, 0x72, 0xc3, 0xf3, 0x24, 0x1b, 0xc4, 0x4f, 0xbd, 0xd4, 0x86, 0xc7, 0x47, 0x06, 0x9e, 0xac, 0xdc, 0xf0, 0x8b, 0xd2, 0x06, 0x4d, 0x76, 0x1e, 0x6f, 0xf8, 0x8b, 0x66, 0x83, 0x63, 0x4b, 0xe9, 0x86, 0x4f, 0x6c, 0x36, 0x88, 0x9d, 0x11, 0xaa, 0x0d, 0x4a, 0x7b, 0xcb, 0x0d, 0xa2, 0xea, 0x84, 0x6a, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x62, 0x5b, 0x79, 0x83, 0xf3, 0x02, 0xcd, 0x86, 0xaf, 0x70, 0x36, 0xfc, 0x45, 0xb3, 0x41, 0x39, 0x67, 0xbb, 0x41, 0x09, 0x8f, 0xb9, 0x41, 0x04, 0xa7, 0x50, 0x6d, 0x10, 0x11, 0x2a, 0x54, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x03, 0x1e, 0x1c, 0x9b, 0xbb, 0xe1, 0xdd, 0x9e, 0x0d, 0x0e, 0x31, 0x10, 0x1b, 0xc4, 0xf1, 0x0a, 0xd5, 0x1a, 0xde, 0xed, 0x59, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0xc7, 0xd2, 0x07, 0x1f, 0xc4, 0xb9, 0x28, 0xd5, 0x41, 0x64, 0xb7, 0x50, 0x75, 0x10, 0x83, 0x2e, 0x54, 0xb3, 0xc0, 0x97, 0xb9, 0x1b, 0x9e, 0x27, 0xd9, 0x20, 0xb6, 0x02, 0xa6, 0x36, 0x3c, 0x3e, 0x32, 0xf0, 0x65, 0xee, 0x86, 0x5f, 0x94, 0x36, 0x68, 0xb2, 0xf3, 0x78, 0xc3, 0x5f, 0x34, 0x1b, 0x1c, 0x5b, 0x4a, 0x37, 0x7c, 0x62, 0xb3, 0x41, 0x84, 0xd0, 0x50, 0x6d, 0x50, 0xda, 0x5b, 0x6e, 0x10, 0x2b, 0x35, 0x54, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x14, 0xdb, 0xca, 0x1b, 0x9c, 0x17, 0x68, 0x36, 0x7c, 0x85, 0xb3, 0xe1, 0x2f, 0x9a, 0x0d, 0xca, 0x39, 0xdb, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0xe2, 0x48, 0x85, 0x6a, 0x83, 0x18, 0xbf, 0xa1, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xf0, 0xc6, 0xe0, 0xd0, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x5d, 0xa2, 0x54, 0x07, 0x51, 0xa2, 0x43, 0x75, 0x10, 0x97, 0x3b, 0x54, 0x87, 0x53, 0xec, 0x70, 0x8a, 0xad, 0x06, 0x91, 0xa5, 0x4b, 0xb5, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x10, 0x59, 0xba, 0x54, 0x0d, 0xe0, 0x1d, 0x54, 0x34, 0xd5, 0x12, 0x93, 0x23, 0x03, 0x32, 0x57, 0x27, 0xb6, 0x56, 0x96, 0x37, 0xb7, 0xe1, 0x17, 0xa5, 0x0d, 0xa2, 0x77, 0x5e, 0x6a, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0x76, 0xc3, 0xbb, 0x3d, 0x1b, 0xc4, 0x54, 0x0e, 0xd5, 0x41, 0xe1, 0x24, 0x7b, 0x10, 0xcf, 0x72, 0x54, 0x87, 0x53, 0x6c, 0x0d, 0x22, 0xfe, 0x5f, 0x67, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x20, 0xe2, 0xff, 0x75, 0x1a, 0xc0, 0x2b, 0xa8, 0x68, 0xaa, 0x25, 0x46, 0x06, 0x07, 0x64, 0x2a, 0xc9, 0x6a, 0x83, 0xb2, 0x4b, 0x76, 0x83, 0x88, 0xff, 0xd7, 0xd9, 0x20, 0x8d, 0xc0, 0x68, 0x36, 0x28, 0xcb, 0xb0, 0xd7, 0xf0, 0xb9, 0xd2, 0x06, 0xd1, 0x3b, 0x2f, 0x75, 0x10, 0x9b, 0x43, 0x54, 0xb3, 0xcc, 0x02, 0x4f, 0x56, 0x6e, 0x78, 0x9e, 0x64, 0x83, 0xf8, 0xa9, 0x97, 0xda, 0xf0, 0xf8, 0xc8, 0xc0, 0x93, 0x95, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0xae, 0x8b, 0xa8, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0x72, 0xb5, 0xd4, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x17, 0x97, 0x35, 0x7c, 0xee, 0x32, 0xd0, 0x6b, 0x71, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0xf8, 0xb8, 0x1b, 0x9c, 0x17, 0x68, 0x0e, 0x4e, 0xe0, 0x6c, 0x6b, 0xf8, 0xdc, 0x65, 0xa0, 0xd7, 0xe4, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x32, 0x71, 0x0f, 0x62, 0xac, 0xa2, 0xaa, 0x0d, 0x56, 0xba, 0x38, 0x6d, 0x10, 0x0f, 0x4b, 0x54, 0x1b, 0xc4, 0xd7, 0x12, 0xd5, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x80, 0x07, 0xc7, 0xe6, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x1e, 0x4b, 0x1f, 0xbc, 0x86, 0xb7, 0x75, 0x36, 0x88, 0xdd, 0x81, 0x9d, 0x0e, 0x22, 0xe1, 0x89, 0xea, 0x60, 0x11, 0xf8, 0xf9, 0x06, 0xc5, 0x8e, 0xe6, 0x1a, 0xfe, 0xcd, 0x59, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x58, 0x48, 0xd6, 0xe9, 0x20, 0x02, 0xa4, 0xa8, 0x0e, 0x62, 0x7b, 0x89, 0xea, 0x20, 0x5e, 0xa9, 0xa8, 0x66, 0x81, 0x2f, 0x73, 0x37, 0x3c, 0x4f, 0xb2, 0x41, 0x6c, 0x05, 0x4c, 0x6d, 0x78, 0x7c, 0x64, 0xe0, 0xcb, 0xdc, 0x0d, 0xbf, 0x28, 0x6d, 0xd0, 0x64, 0xe7, 0xf1, 0x86, 0xbf, 0x68, 0x36, 0x88, 0xae, 0x2b, 0xaa, 0x0d, 0x9f, 0xd8, 0x6c, 0x10, 0x4b, 0x14, 0x55, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x03, 0x9f, 0x66, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0xb8, 0xd9, 0xa8, 0x3a, 0x88, 0x25, 0x2d, 0xaa, 0x0d, 0x9f, 0xd8, 0x6c, 0x10, 0x37, 0xe9, 0x4f, 0x1b, 0xac, 0x74, 0x71, 0xda, 0x20, 0x1e, 0x96, 0xa8, 0x36, 0x88, 0xaf, 0x25, 0xaa, 0x0d, 0xce, 0xf9, 0x4b, 0x1b, 0xc4, 0xf6, 0x12, 0xd5, 0x06, 0x85, 0x97, 0xf1, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x2c, 0x79, 0xdf, 0xe0, 0x85, 0xea, 0xc1, 0x07, 0xb1, 0x96, 0x51, 0x75, 0xb0, 0x08, 0xfc, 0xfc, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x59, 0x83, 0xd8, 0x1d, 0xd8, 0xd9, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x88, 0xdd, 0x81, 0x9d, 0x06, 0xf0, 0x0a, 0x2a, 0x9a, 0x6a, 0x89, 0x91, 0xc1, 0x01, 0x19, 0xa2, 0x92, 0xda, 0xa0, 0xec, 0x92, 0xdd, 0x20, 0x76, 0x07, 0x76, 0x36, 0x48, 0x23, 0x30, 0x9a, 0x0d, 0xca, 0x32, 0xec, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0xa4, 0x88, 0x4c, 0x1d, 0xc4, 0xc3, 0x1e, 0xd5, 0x2c, 0xb3, 0x41, 0x14, 0xf0, 0x51, 0xcd, 0x02, 0x5f, 0xe6, 0x6e, 0x78, 0x9e, 0x64, 0x83, 0xd8, 0x0a, 0x98, 0xda, 0xf0, 0xf8, 0xc8, 0xc0, 0x97, 0xb9, 0x1b, 0x7e, 0x51, 0xda, 0xa0, 0xc9, 0xce, 0xe3, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0x6c, 0x29, 0xdd, 0xa0, 0x20, 0x8d, 0xdd, 0x20, 0x12, 0x04, 0xa6, 0x36, 0x88, 0x2e, 0x51, 0xaa, 0x83, 0xd8, 0xff, 0xa3, 0x3a, 0x9c, 0x62, 0x87, 0x53, 0x6c, 0x35, 0x88, 0x11, 0x84, 0x9d, 0x0d, 0x8f, 0x8f, 0x6c, 0x10, 0x23, 0x08, 0x3b, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0x8a, 0x6f, 0xa9, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0xb1, 0xa5, 0x74, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0x9f, 0xbb, 0x6c, 0x68, 0xf1, 0xb1, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x44, 0xb6, 0x51, 0x75, 0x70, 0x02, 0x67, 0x3b, 0x88, 0x1a, 0x93, 0xa9, 0x0d, 0x9f, 0xd8, 0x6c, 0x10, 0x67, 0x28, 0x53, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x1b, 0x2c, 0x2f, 0x0d, 0xde, 0xe0, 0xc4, 0x7e, 0xb3, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x2f, 0x54, 0x0f, 0x5e, 0xc3, 0xdb, 0x3a, 0x1b, 0xc4, 0x98, 0xb5, 0x4e, 0x07, 0x91, 0xfe, 0x32, 0x75, 0x10, 0x67, 0x30, 0x53, 0x07, 0x31, 0x3d, 0x33, 0x75, 0x38, 0xc5, 0x3a, 0x9c, 0x62, 0xb3, 0x06, 0x87, 0xea, 0xb2, 0x0d, 0x52, 0x2f, 0x8a, 0x37, 0x28, 0x59, 0xd8, 0x67, 0x99, 0x05, 0x7c, 0x3a, 0xb9, 0x3a, 0x71, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x20, 0x72, 0x6a, 0xaa, 0x1a, 0xc0, 0x83, 0xae, 0x6c, 0x8e, 0x0e, 0x64, 0x4c, 0xae, 0x4e, 0x6c, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x6b, 0x9b, 0x3b, 0x0f, 0xce, 0xb3, 0xa3, 0x1b, 0x14, 0xa4, 0xb1, 0x03, 0x5e, 0x18, 0x5b, 0xba, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xa0, 0xe4, 0x06, 0xef, 0xca, 0x48, 0xd9, 0xf0, 0xa0, 0xe4, 0x06, 0x51, 0x2c, 0xde, 0x74, 0xb0, 0xca, 0x94, 0x75, 0x83, 0xc4, 0xdd, 0xd4, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x7a, 0x72, 0xec, 0x1a, 0x7e, 0x84, 0x19, 0x9c, 0x3e, 0x88, 0xb1, 0x86, 0x9d, 0xda, 0xa0, 0x20, 0x8d, 0x1d, 0xe0, 0x0d, 0x63, 0x4b, 0x6b, 0x81, 0xab, 0x13, 0xd7, 0xf0, 0x6e, 0xcf, 0x1a, 0x1e, 0x94, 0xdc, 0xa0, 0xe9, 0xe3, 0xcb, 0x83, 0xc8, 0xcb, 0xa9, 0x5a, 0xc3, 0x83, 0x92, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x83, 0xab, 0x13, 0xdb, 0xf0, 0xb6, 0xce, 0xc0, 0x97, 0xe1, 0x03, 0x5e, 0x18, 0x5b, 0x5a, 0x1b, 0x14, 0xa4, 0xb1, 0x03, 0x9e, 0xd8, 0x9b, 0xb8, 0x86, 0x77, 0x7b, 0x36, 0x88, 0x7c, 0x9c, 0xaa, 0x0d, 0x12, 0x77, 0x53, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xe9, 0xc9, 0xb1, 0x6b, 0xf8, 0x11, 0x66, 0x70, 0xfa, 0x20, 0xd6, 0x27, 0x76, 0x6a, 0x83, 0x82, 0x34, 0x76, 0x80, 0x57, 0xec, 0x4d, 0xac, 0x05, 0xae, 0x4e, 0x5c, 0xc3, 0xbb, 0x3d, 0x1b, 0xc4, 0x2c, 0x4f, 0xd5, 0x1a, 0x1e, 0x94, 0xdc, 0x20, 0x6e, 0x7b, 0xaa, 0x36, 0xbc, 0xad, 0x33, 0xf0, 0x65, 0xf8, 0x80, 0x27, 0xf6, 0x26, 0xd6, 0x06, 0x05, 0x69, 0xec, 0x00, 0x3e, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x2d, 0x6b, 0x65, 0xf9, 0x1a, 0x9c, 0xd8, 0x6f, 0x36, 0x48, 0x4f, 0x8e, 0xdd, 0xf0, 0x23, 0xcc, 0xe0, 0xf4, 0x41, 0xd4, 0x5d, 0xec, 0x6c, 0x50, 0x90, 0xc6, 0x0e, 0xe0, 0x33, 0x97, 0x76, 0xe6, 0x56, 0x46, 0xd6, 0xb2, 0x56, 0x96, 0xaf, 0xe1, 0xdd, 0x9e, 0x35, 0x3c, 0x28, 0xb9, 0x86, 0xb7, 0x75, 0x0e, 0xde, 0x94, 0xa6, 0xb8, 0xe1, 0x6d, 0x9d, 0x81, 0x0f, 0x9b, 0x0f, 0x62, 0xd4, 0xa7, 0x6a, 0x0d, 0x6f, 0xeb, 0x6c, 0x10, 0x43, 0x44, 0x55, 0xb5, 0x41, 0x41, 0x1a, 0x3b, 0x80, 0xd7, 0x98, 0x5c, 0x1e, 0x1c, 0x5d, 0x19, 0x59, 0xcb, 0x5a, 0x59, 0xbe, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xa0, 0xe4, 0x1a, 0xde, 0xd6, 0xd9, 0xe0, 0x11, 0xff, 0xca, 0x1d, 0xc4, 0x06, 0x52, 0xd5, 0x1a, 0x1e, 0x94, 0xdc, 0x20, 0x6e, 0x7b, 0xaa, 0x36, 0xbc, 0xad, 0x33, 0xf0, 0x65, 0xf8, 0x06, 0x11, 0x1b, 0x54, 0xd5, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0xd6, 0x8c, 0xaa, 0x6a, 0x83, 0x82, 0x34, 0x76, 0x00, 0x5e, 0xc8, 0xca, 0xc6, 0xe4, 0xf2, 0xe0, 0xe8, 0x5a, 0xd6, 0xca, 0xf2, 0x5a, 0xc2, 0xe8, 0xe8, 0xca, 0xda, 0xe0, 0xe8, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0x07, 0x25, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0x2f, 0x4f, 0x59, 0x6e, 0xc3, 0xdb, 0x3a, 0x03, 0x1f, 0x36, 0x1f, 0xc4, 0xeb, 0x50, 0xd5, 0x1a, 0x1e, 0x94, 0xdc, 0x20, 0x6e, 0x7b, 0xaa, 0x36, 0xbc, 0xad, 0x33, 0xf0, 0x65, 0xf8, 0x06, 0xd1, 0xbe, 0x53, 0xd5, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0x3e, 0x93, 0xaa, 0x6a, 0x83, 0x82, 0x34, 0x76, 0x00, 0x4f, 0xb2, 0xb2, 0x31, 0xb9, 0x3c, 0x38, 0xba, 0x32, 0xb2, 0x96, 0xb5, 0xb2, 0x7c, 0x0d, 0x96, 0xd4, 0x2f, 0xad, 0xe1, 0x8d, 0xbb, 0x0d, 0x2f, 0xdf, 0x1d, 0xc4, 0x17, 0xc9, 0xce, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x1b, 0xba, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x22, 0xb8, 0xa9, 0xaa, 0x36, 0x28, 0x48, 0x63, 0x07, 0xe0, 0xc3, 0xae, 0x4c, 0x2e, 0xcd, 0x2c, 0xaf, 0x65, 0xad, 0x2c, 0xaf, 0x25, 0x8c, 0x8e, 0xae, 0xac, 0x0d, 0x8e, 0x5e, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x50, 0x72, 0x0d, 0x6f, 0xeb, 0x6c, 0xf0, 0xb0, 0x73, 0xe5, 0x36, 0xbc, 0xad, 0x33, 0xf0, 0x61, 0xf3, 0x41, 0xbc, 0x46, 0x55, 0xad, 0xe1, 0x6d, 0x9d, 0x0d, 0x22, 0x5a, 0xaa, 0xaa, 0x36, 0x28, 0x48, 0x63, 0x07, 0xf0, 0xb3, 0x2b, 0x93, 0x4b, 0x33, 0x4b, 0x2b, 0x23, 0x6b, 0x59, 0x2b, 0xcb, 0xd7, 0x60, 0x49, 0xfd, 0xd2, 0x1a, 0xde, 0xb8, 0xdb, 0xf0, 0xf2, 0xdd, 0x41, 0xfc, 0xab, 0xec, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0xb3, 0xa1, 0xcb, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0x12, 0xac, 0xaa, 0x6a, 0x83, 0x82, 0x34, 0x76, 0x00, 0xaf, 0x31, 0xb9, 0x3c, 0x38, 0xba, 0x32, 0xb2, 0x96, 0xb6, 0xb9, 0x73, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x81, 0x2f, 0x73, 0x0f, 0xe2, 0x75, 0xa8, 0x6a, 0x0d, 0x6f, 0xeb, 0x6c, 0x10, 0xc9, 0x59, 0x55, 0x1d, 0x44, 0x4c, 0x98, 0xd4, 0x86, 0xaf, 0x5f, 0x36, 0x58, 0xab, 0x50, 0xb7, 0xe1, 0xeb, 0x97, 0x0d, 0x1f, 0xc2, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0x3c, 0x59, 0x7e, 0x10, 0xa3, 0x3e, 0x55, 0x1b, 0x44, 0x34, 0x52, 0xd5, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0xe2, 0xb9, 0xaa, 0xea, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0xb6, 0x06, 0x11, 0xf8, 0xb5, 0xb3, 0x41, 0xd9, 0x25, 0xbb, 0x41, 0x04, 0x7e, 0xed, 0x6c, 0xf0, 0x66, 0xe1, 0x93, 0xd9, 0x60, 0x15, 0x96, 0xd3, 0x1a, 0xde, 0xd6, 0x39, 0x48, 0xbd, 0x82, 0xdd, 0xa0, 0x94, 0x10, 0x5f, 0x83, 0x92, 0x85, 0x7d, 0x96, 0x59, 0x83, 0xe4, 0x5c, 0xd8, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0x52, 0x91, 0x19, 0x0f, 0x12, 0xe2, 0x19, 0x37, 0xfc, 0xe2, 0xb2, 0x86, 0x5f, 0x5c, 0x36, 0x88, 0x1f, 0x2c, 0xa8, 0x83, 0x94, 0x99, 0xc6, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x8a, 0x7f, 0x37, 0x28, 0x2a, 0xc5, 0x0f, 0x4e, 0x08, 0x14, 0x07, 0x27, 0x04, 0x8a, 0x66, 0x0d, 0xd2, 0x42, 0x62, 0x37, 0xfc, 0xa2, 0xb4, 0x41, 0xec, 0x96, 0x55, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x6a, 0x1d, 0x1f, 0x44, 0x2d, 0x16, 0xd4, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xd4, 0x3a, 0x3e, 0x88, 0x12, 0xb4, 0xaa, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0xdb, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd9, 0x20, 0x02, 0xbf, 0x76, 0xda, 0xa0, 0x64, 0x61, 0x9f, 0x65, 0x16, 0xc0, 0x07, 0xad, 0x2d, 0x6c, 0xac, 0x65, 0x0e, 0x2d, 0x2c, 0x86, 0xdd, 0xf0, 0x6e, 0xcf, 0x06, 0x69, 0x4e, 0xb1, 0x6b, 0x78, 0x5b, 0xe7, 0x20, 0x72, 0xd8, 0xaa, 0x36, 0x48, 0xb6, 0x8f, 0xdd, 0x20, 0x05, 0x3a, 0xf5, 0x20, 0x45, 0xc5, 0x75, 0x35, 0x88, 0xc0, 0xaf, 0x9d, 0x0d, 0x8f, 0x8f, 0x6c, 0x10, 0x81, 0x5f, 0x3b, 0x1b, 0x14, 0xca, 0x9d, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0x01, 0x0f, 0x2d, 0x4c, 0xdd, 0x20, 0x9c, 0xc6, 0xd6, 0xf0, 0xb9, 0xd2, 0x06, 0x47, 0xa1, 0x93, 0x83, 0x32, 0xd2, 0xf6, 0xf0, 0x43, 0xcd, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xc4, 0xde, 0xe2, 0x83, 0xa3, 0xd0, 0xc9, 0x1a, 0xfe, 0x5c, 0xda, 0xa0, 0x34, 0xcb, 0x3e, 0x38, 0x0a, 0x9d, 0xb4, 0x41, 0xfc, 0xc8, 0x48, 0x6d, 0x10, 0x6f, 0x34, 0x52, 0x6d, 0x50, 0xf4, 0xe9, 0xae, 0x41, 0x51, 0x5b, 0x7c, 0x70, 0x1c, 0xf8, 0x58, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0x99, 0xb8, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xa2, 0x52, 0x7c, 0x83, 0x08, 0xd1, 0x92, 0x6a, 0x0d, 0x6f, 0xeb, 0x1c, 0xc4, 0x3e, 0x5d, 0x55, 0x1b, 0x14, 0x7d, 0xba, 0x6b, 0x50, 0xd4, 0x16, 0x1f, 0x44, 0xa2, 0x57, 0xd4, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xc8, 0xc4, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0x14, 0x95, 0xe2, 0x1b, 0x44, 0x44, 0x96, 0x54, 0x6b, 0x78, 0x5b, 0xe7, 0x20, 0x0e, 0xef, 0xaa, 0xda, 0xe0, 0x38, 0x36, 0xb1, 0x41, 0xec, 0xd3, 0x55, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0xdf, 0x28, 0x6e, 0x10, 0x21, 0x5a, 0x52, 0x1b, 0x3c, 0x90, 0x8e, 0xb9, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0x3c, 0xb4, 0x30, 0xb5, 0x0d, 0x22, 0x44, 0x4b, 0xea, 0x20, 0x7a, 0xed, 0xaa, 0x36, 0x38, 0x8e, 0x4d, 0x6c, 0x10, 0x57, 0x5a, 0x52, 0x1b, 0xc4, 0x9a, 0x5e, 0xd5, 0x06, 0xc5, 0xd2, 0xf6, 0x06, 0xc7, 0xb1, 0x89, 0x0d, 0x62, 0x9f, 0xae, 0x6a, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0xe2, 0xec, 0x20, 0xae, 0xf5, 0xaa, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xa5, 0x01, 0xef, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0xa8, 0x14, 0x5f, 0xc3, 0xbb, 0x3d, 0x1b, 0x3e, 0x05, 0xdc, 0xe0, 0x81, 0x74, 0xcc, 0x07, 0xd1, 0x66, 0x57, 0xd5, 0x41, 0xf4, 0xda, 0x55, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x6b, 0x69, 0xf0, 0x86, 0x77, 0x7b, 0x36, 0x38, 0xc4, 0x40, 0x6c, 0x10, 0xc1, 0x76, 0x55, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xc4, 0x90, 0xac, 0x0d, 0x8a, 0x4a, 0xf1, 0x0d, 0x1e, 0x48, 0xc7, 0x7c, 0x10, 0x25, 0xfc, 0x50, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x6b, 0x6f, 0xf0, 0x86, 0x77, 0x7b, 0x36, 0x38, 0xc4, 0x40, 0x6c, 0x10, 0xc1, 0x76, 0x55, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xc4, 0x90, 0xac, 0x0d, 0x8a, 0x4a, 0xf1, 0x0d, 0x1e, 0x48, 0xc7, 0x7c, 0x10, 0x0d, 0x01, 0x51, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0xaf, 0x7b, 0x55, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x9f, 0x40, 0x1b, 0x44, 0x44, 0x96, 0xd4, 0x41, 0x8c, 0xec, 0x55, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x7f, 0x02, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0x03, 0xde, 0x0d, 0xa2, 0x11, 0xaf, 0x6a, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x6b, 0x69, 0x70, 0x1d, 0xc4, 0x54, 0x5e, 0x55, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0x5e, 0xf7, 0xaa, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x3f, 0x81, 0x36, 0x28, 0x96, 0xb6, 0x0f, 0x62, 0x64, 0xaf, 0x6a, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x13, 0x68, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x1a, 0xf0, 0x6e, 0x10, 0x53, 0x6c, 0x51, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x5b, 0x7b, 0x83, 0xeb, 0x20, 0x15, 0x68, 0xac, 0x15, 0x40, 0x03, 0xad, 0x2d, 0x6c, 0xac, 0x65, 0x0e, 0x2d, 0x2c, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0xd4, 0xc1, 0xd8, 0x0d, 0x52, 0xdd, 0x63, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0xd1, 0xce, 0x56, 0x55, 0xb3, 0x00, 0x7e, 0x68, 0x6d, 0x61, 0x63, 0x2d, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0xec, 0x86, 0x77, 0x7b, 0x36, 0x48, 0x73, 0x8a, 0xdd, 0x20, 0x4e, 0xdc, 0xaa, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0xa9, 0x75, 0xb1, 0x6d, 0x90, 0x02, 0x9d, 0x7a, 0x90, 0x76, 0x1a, 0x7b, 0x38, 0xc5, 0x16, 0xc0, 0x07, 0xad, 0x2d, 0x6c, 0xac, 0x65, 0x0e, 0x2d, 0x2c, 0x86, 0xde, 0xf0, 0x6e, 0xcf, 0x06, 0xa9, 0x83, 0xb1, 0x1b, 0x24, 0x7e, 0xc6, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0xa2, 0xcb, 0xb1, 0xaa, 0x66, 0x01, 0xfc, 0xd0, 0xda, 0xc2, 0xc6, 0x5a, 0xe6, 0xd0, 0xc2, 0x6a, 0x62, 0x64, 0xd8, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0xe6, 0x14, 0xbb, 0x41, 0x9c, 0xb8, 0x55, 0xad, 0xe1, 0x6d, 0x9d, 0x0d, 0x92, 0xf3, 0x64, 0xdb, 0x20, 0x21, 0x30, 0xf5, 0x20, 0x5d, 0x3b, 0xf6, 0x70, 0x8a, 0x2d, 0x80, 0x16, 0x5a, 0x5b, 0xd8, 0x58, 0xcb, 0x1c, 0x5a, 0x98, 0x4c, 0x8d, 0xdd, 0xf0, 0x6e, 0xcf, 0x06, 0xa9, 0x83, 0xb1, 0x1b, 0xa4, 0xba, 0xc7, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0x62, 0x0c, 0xb2, 0xaa, 0x56, 0x00, 0x3f, 0xb4, 0xb6, 0xb0, 0xb1, 0x96, 0x39, 0xb4, 0xb0, 0x9a, 0x18, 0x19, 0x7a, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0x0e, 0xc6, 0x6e, 0x90, 0xf8, 0x19, 0xbb, 0x86, 0xb7, 0x75, 0x06, 0xd0, 0x42, 0x6b, 0x0b, 0x1b, 0x6b, 0x99, 0x43, 0x0b, 0xab, 0x89, 0x91, 0x35, 0x0b, 0xe0, 0x87, 0xd6, 0x16, 0x36, 0xd6, 0x32, 0x87, 0x16, 0x26, 0x53, 0x63, 0x43, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0xd4, 0xc1, 0xd8, 0x0d, 0x12, 0x3f, 0x63, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0xf1, 0x82, 0x59, 0x55, 0xb3, 0x06, 0x91, 0xc2, 0x59, 0xb5, 0xe1, 0xdd, 0x9e, 0x0d, 0x52, 0x07, 0x63, 0x37, 0x48, 0x75, 0x8f, 0x5d, 0xc3, 0xdb, 0x3a, 0x1b, 0x44, 0x55, 0x65, 0x55, 0x1d, 0x4e, 0xb1, 0x0e, 0xa7, 0xd8, 0x0a, 0xf0, 0xad, 0x95, 0x8d, 0x8d, 0x85, 0xad, 0x1b, 0x94, 0x5d, 0xb2, 0x1b, 0x44, 0x81, 0x1d, 0xcf, 0x06, 0x6f, 0x16, 0x3e, 0x99, 0x0d, 0x4a, 0x16, 0xf6, 0x59, 0x66, 0x01, 0xbe, 0x39, 0xb8, 0x37, 0xb7, 0xb3, 0x72, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0xf0, 0xc2, 0xc9, 0x95, 0xc1, 0x95, 0xc9, 0xb5, 0x1b, 0x84, 0xd3, 0xd8, 0x06, 0x65, 0x96, 0xee, 0x41, 0xd9, 0x57, 0xbe, 0x86, 0x3f, 0x97, 0x06, 0x78, 0xe1, 0xc2, 0xc8, 0xc8, 0xd2, 0xdc, 0xce, 0x0d, 0xc2, 0x69, 0x6c, 0x0d, 0x9f, 0x2b, 0x6d, 0xf0, 0xf4, 0x73, 0xb9, 0x83, 0xd3, 0x21, 0xe1, 0xc1, 0xd3, 0xcf, 0xe5, 0xd6, 0xf0, 0xe7, 0xd2, 0x00, 0xaf, 0x58, 0x1a, 0x9d, 0x5c, 0x18, 0x5d, 0x79, 0x50, 0x66, 0xe9, 0xae, 0xe1, 0xcf, 0xa5, 0x01, 0xfe, 0xb1, 0x30, 0xb8, 0xb0, 0xb1, 0x34, 0xba, 0xfc, 0xa0, 0xcc, 0xd2, 0x6d, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x00, 0x4f, 0xb1, 0x34, 0x3a, 0xb9, 0x30, 0xba, 0xb2, 0x16, 0xb1, 0x3c, 0xba, 0xb2, 0x79, 0xc3, 0xbb, 0x3d, 0x1b, 0x84, 0x02, 0xeb, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0x46, 0x4f, 0xab, 0x3a, 0x38, 0xaa, 0xcc, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0xe0, 0x23, 0xc6, 0xf6, 0x36, 0xb6, 0x76, 0x97, 0x46, 0x46, 0x87, 0x6e, 0x78, 0xb7, 0x67, 0xc3, 0x9f, 0x40, 0x1b, 0xc4, 0xd4, 0x6a, 0xd5, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0x4a, 0x51, 0xab, 0x6a, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0xf8, 0x18, 0x90, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0x36, 0x48, 0xab, 0x5a, 0xc3, 0xdb, 0x3a, 0x1b, 0xc4, 0x22, 0x6b, 0x55, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0x0d, 0x5e, 0x7c, 0x62, 0x79, 0xf0, 0xf4, 0x73, 0xb9, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0x9a, 0x8b, 0xf0, 0x83, 0x32, 0x4b, 0xb7, 0x0d, 0x0e, 0x58, 0x74, 0x6b, 0xf8, 0x8b, 0x66, 0xc3, 0x0f, 0x35, 0x1b, 0x14, 0x7d, 0xba, 0x1b, 0xbc, 0xf7, 0xc4, 0x72, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x22, 0xb3, 0xb4, 0xaa, 0x0d, 0x5e, 0x61, 0x6d, 0xb9, 0x41, 0x4c, 0xad, 0x56, 0xb5, 0x41, 0x41, 0x1a, 0xbb, 0x86, 0xef, 0xdb, 0x37, 0x68, 0x3e, 0x7d, 0xfa, 0x20, 0x12, 0x00, 0xa4, 0xd6, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0x1e, 0xbc, 0xd9, 0xf0, 0x6e, 0xcf, 0x06, 0x61, 0x77, 0xbb, 0x86, 0xb7, 0x75, 0x06, 0x87, 0x0f, 0xde, 0x7b, 0x62, 0xb9, 0x86, 0xb7, 0x75, 0x36, 0x88, 0xf8, 0xd4, 0xaa, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0x3c, 0xdd, 0xf0, 0x6e, 0xcf, 0x06, 0xa1, 0xc0, 0x7a, 0x10, 0x5b, 0xb7, 0x55, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0x41, 0xce, 0x06, 0x31, 0x87, 0xe6, 0xb4, 0x41, 0x41, 0x91, 0xb9, 0xc1, 0x92, 0xea, 0xa4, 0x0d, 0x8e, 0x2e, 0x71, 0x1b, 0x1c, 0x6d, 0xf8, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x25, 0xd1, 0xec, 0x06, 0x45, 0xa5, 0xf8, 0x1a, 0x7e, 0x71, 0xd9, 0xf0, 0xcc, 0xe4, 0x41, 0xec, 0xdf, 0x56, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xe3, 0x83, 0xf7, 0x9e, 0x58, 0xb6, 0xe1, 0xdd, 0x9e, 0x0d, 0x82, 0xa7, 0x76, 0x83, 0xa3, 0x50, 0xdc, 0x41, 0xec, 0xdf, 0x56, 0x6d, 0x50, 0x90, 0xc6, 0xae, 0xe1, 0xfb, 0xf6, 0x0d, 0xc2, 0x38, 0xe3, 0xa0, 0x39, 0x57, 0xf1, 0x35, 0x28, 0x3a, 0x8d, 0x37, 0x58, 0x2a, 0x49, 0xb8, 0x41, 0x5b, 0x56, 0xd4, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x1b, 0x1e, 0xa1, 0x3b, 0x88, 0x8d, 0xa3, 0xa9, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0x0e, 0x1e, 0x19, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xd2, 0x80, 0x77, 0x0d, 0xbf, 0xb8, 0x6c, 0x78, 0xf0, 0xe6, 0x20, 0xfe, 0x5b, 0xab, 0x0e, 0xd2, 0x93, 0x06, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x94, 0x0b, 0x48, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x0e, 0x31, 0x10, 0x1b, 0x1c, 0xce, 0xf9, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0x19, 0xc0, 0x57, 0x2c, 0x8f, 0xae, 0x6c, 0xae, 0x85, 0xee, 0xad, 0x85, 0x2d, 0xcc, 0xad, 0x6c, 0xee, 0x20, 0x3d, 0x69, 0xb0, 0x36, 0x28, 0xed, 0x2d, 0xd7, 0xf0, 0xe7, 0xd2, 0x06, 0xc7, 0x0c, 0xcf, 0xc3, 0x0f, 0x35, 0x1b, 0x94, 0xf6, 0x96, 0x1b, 0x14, 0x77, 0xc5, 0x1b, 0xbe, 0xc2, 0xd9, 0xa0, 0xe8, 0xd3, 0xdd, 0xe0, 0x0c, 0xe6, 0xb9, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x05, 0x65, 0xf7, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x34, 0xe0, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0x1e, 0xbc, 0x39, 0x88, 0x6d, 0xda, 0xaa, 0x83, 0x86, 0xd6, 0x92, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x89, 0x8f, 0xbb, 0x41, 0x84, 0x09, 0x57, 0xad, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0x33, 0x80, 0x2f, 0x5b, 0x98, 0x5b, 0xd9, 0x5c, 0x0b, 0xdd, 0x5b, 0x8b, 0x58, 0x1e, 0x5d, 0xd9, 0xdc, 0x06, 0xef, 0xb1, 0x29, 0xad, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0xca, 0x35, 0xe3, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x4f, 0xa0, 0x0d, 0x0a, 0x2f, 0xe3, 0x83, 0xd8, 0xa6, 0xad, 0xda, 0xf0, 0x41, 0xce, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x0d, 0x5b, 0x69, 0x83, 0xc2, 0xcb, 0x78, 0x0d, 0x6f, 0xeb, 0x1c, 0x34, 0x5c, 0xa6, 0xdd, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xc4, 0xc7, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0x1e, 0xbc, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x3e, 0x05, 0x3c, 0x88, 0x96, 0xe7, 0xaa, 0x0e, 0x1a, 0x5a, 0x4b, 0xde, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0xe0, 0x0c, 0xe6, 0x79, 0x70, 0xd0, 0xf2, 0x5c, 0x83, 0x10, 0xce, 0xd8, 0xf0, 0x6e, 0xcf, 0x06, 0x51, 0x2e, 0x20, 0x75, 0x10, 0xaf, 0xcc, 0x55, 0x2d, 0xb3, 0x06, 0xd1, 0x50, 0x5c, 0xb5, 0xe1, 0x17, 0xa5, 0x0d, 0x5f, 0x2e, 0x6d, 0xb0, 0xaa, 0x57, 0x69, 0x83, 0x14, 0x8c, 0xda, 0x0d, 0x8e, 0xcb, 0x33, 0x1b, 0x9e, 0xd6, 0xd9, 0xf0, 0x8b, 0xd2, 0x86, 0xe7, 0x99, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x69, 0xc0, 0xbb, 0x86, 0x5f, 0x5c, 0x36, 0x28, 0x2a, 0xc5, 0xd7, 0xf0, 0x6e, 0xcf, 0x86, 0x4f, 0x01, 0x37, 0x38, 0xac, 0xcc, 0x6d, 0xb0, 0x04, 0xba, 0xae, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xa5, 0xd6, 0xf1, 0x41, 0xd9, 0xb8, 0xdf, 0x6a, 0x10, 0xaf, 0xcb, 0x55, 0x1b, 0x7e, 0x51, 0xda, 0xf0, 0xe5, 0xd2, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x65, 0x71, 0xf4, 0x06, 0xc7, 0xe5, 0x99, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x4a, 0xa4, 0xea, 0x35, 0x7c, 0x62, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x88, 0x96, 0x37, 0x38, 0x2e, 0xcf, 0x1c, 0x1e, 0xfa, 0xd9, 0xf0, 0x6e, 0xcf, 0x06, 0x27, 0x82, 0xb6, 0x0d, 0xcf, 0x4c, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x4e, 0x32, 0x6d, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0xa7, 0x80, 0x1b, 0x24, 0x8f, 0xf3, 0x1e, 0xc4, 0x65, 0x81, 0xd4, 0x41, 0xa4, 0x3d, 0x4c, 0xb5, 0xe1, 0x17, 0xa5, 0x0d, 0x5f, 0x2e, 0x6d, 0x50, 0x18, 0xaa, 0x6e, 0x78, 0x4c, 0x66, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0xb2, 0x38, 0x7a, 0x83, 0xa2, 0x52, 0x7c, 0x83, 0xa3, 0x0d, 0xdf, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x44, 0xaa, 0xde, 0xf0, 0xcc, 0xe4, 0x1a, 0x7e, 0x51, 0xda, 0xf0, 0xe5, 0xd2, 0x86, 0x5f, 0x5c, 0x36, 0x3c, 0x26, 0x73, 0x78, 0xe8, 0xa7, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x0a, 0x8b, 0xe5, 0x0d, 0x96, 0xc2, 0xcb, 0xb5, 0xe1, 0xdd, 0x9e, 0x0d, 0x4e, 0x04, 0x6d, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x93, 0x4c, 0xdb, 0x06, 0x91, 0x4e, 0x20, 0x75, 0x10, 0x69, 0x0f, 0x53, 0x07, 0xa9, 0x40, 0x63, 0x87, 0x53, 0xac, 0xc3, 0x29, 0xb6, 0x1a, 0xbc, 0x19, 0xe4, 0x73, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x70, 0x65, 0xf2, 0x41, 0x8c, 0x92, 0x56, 0xad, 0xe1, 0xcf, 0xa5, 0x0d, 0x8e, 0xaa, 0x6c, 0x07, 0x11, 0x62, 0x5a, 0xb5, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb9, 0x30, 0xfa, 0xa0, 0xcc, 0xd2, 0x5d, 0xc3, 0x9f, 0x4b, 0x1b, 0xfa, 0xe0, 0x1f, 0x94, 0x59, 0xba, 0x1b, 0xb4, 0xe1, 0x3e, 0xba, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0x34, 0x37, 0xf8, 0xe0, 0xe9, 0xe7, 0x72, 0x6d, 0xf8, 0x8b, 0x66, 0xc3, 0x0f, 0x35, 0x1b, 0x14, 0x7d, 0xba, 0x0b, 0x1e, 0x0f, 0x78, 0x69, 0x6e, 0x70, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xa4, 0x52, 0xd8, 0x0d, 0x8a, 0x4a, 0xf1, 0x35, 0xbc, 0xad, 0x73, 0x10, 0xa7, 0xea, 0x55, 0x6d, 0x70, 0x6a, 0x38, 0x5a, 0xc3, 0x2f, 0x2e, 0x1b, 0x44, 0xed, 0x7a, 0xd5, 0x41, 0xa1, 0xb4, 0xbd, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xd4, 0x8b, 0x56, 0xb5, 0x86, 0xb7, 0x75, 0x06, 0x3c, 0xb8, 0x32, 0xb9, 0x0d, 0x0e, 0x42, 0x6d, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x93, 0x0b, 0xa3, 0x3b, 0x78, 0x54, 0x62, 0xcb, 0x0a, 0xa0, 0xb3, 0x56, 0x36, 0x36, 0x16, 0xb6, 0xd6, 0x22, 0x23, 0x43, 0x37, 0x3c, 0x3e, 0xb2, 0x41, 0x34, 0xee, 0xee, 0x6c, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x1e, 0x3c, 0xfd, 0x5c, 0x6e, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xd8, 0x09, 0xad, 0x6a, 0x0d, 0x3f, 0xc2, 0x6c, 0xa8, 0xf9, 0xc1, 0x01, 0xb2, 0x86, 0x1f, 0x61, 0x36, 0xd4, 0xfc, 0x60, 0x80, 0x37, 0x78, 0xca, 0x31, 0xe4, 0xe1, 0xa1, 0x9f, 0x15, 0x40, 0x63, 0x0e, 0x2d, 0x6c, 0xad, 0xac, 0x25, 0x46, 0x06, 0x6f, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xdf, 0x83, 0x32, 0x4b, 0x77, 0x0d, 0x7f, 0x2e, 0x0d, 0x9e, 0x1e, 0x3c, 0xfd, 0x5c, 0xae, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0x9e, 0x39, 0xb4, 0xb0, 0xb5, 0xb2, 0x35, 0xfc, 0x08, 0xb3, 0xa1, 0xe6, 0x07, 0x07, 0xd4, 0x06, 0xa9, 0xd8, 0xbf, 0x1b, 0x24, 0x5c, 0x5e, 0x1d, 0x94, 0x66, 0xe8, 0x2b, 0x80, 0x9e, 0x5c, 0xd8, 0xdd, 0x1c, 0x5a, 0xd8, 0x5a, 0x59, 0x4b, 0x8c, 0x0c, 0xde, 0xf0, 0x8b, 0xd2, 0x06, 0x11, 0x4f, 0x5f, 0xb5, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0x33, 0xc0, 0x2f, 0x17, 0x76, 0x37, 0x87, 0x16, 0xb6, 0x56, 0x76, 0x10, 0x41, 0xf7, 0x55, 0x2b, 0x80, 0x9e, 0x5c, 0xd8, 0xdd, 0x1c, 0x5a, 0xd8, 0x5a, 0x59, 0x8b, 0x4c, 0x8d, 0xdd, 0xf0, 0x8b, 0xd2, 0x06, 0x11, 0x4f, 0x5f, 0xb5, 0xe1, 0xdd, 0x9e, 0x0d, 0xa2, 0x46, 0xbf, 0x6a, 0x0d, 0x3f, 0xc2, 0x6c, 0xa8, 0xf9, 0xc1, 0x01, 0xb1, 0x41, 0xe2, 0x6e, 0xea, 0x41, 0x4c, 0xe0, 0x57, 0x1d, 0x4e, 0xb1, 0xd6, 0x20, 0x76, 0x42, 0xab, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x9a, 0x53, 0xec, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0xcd, 0x29, 0x76, 0x83, 0xd7, 0x99, 0x57, 0xaf, 0xe1, 0x6d, 0x9d, 0x01, 0xfe, 0xb5, 0xb2, 0xb1, 0xb1, 0xb0, 0xb5, 0x16, 0xb3, 0xd6, 0xf0, 0xb6, 0xce, 0x00, 0xbe, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x6b, 0x65, 0x63, 0x63, 0x61, 0x6b, 0x1d, 0x4e, 0xb1, 0x16, 0x40, 0x63, 0x0e, 0x2d, 0x6c, 0xad, 0xac, 0x45, 0xa6, 0xc6, 0x6e, 0xf8, 0x45, 0x69, 0x83, 0x88, 0xa7, 0xaf, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0xb1, 0x69, 0x5f, 0x75, 0x10, 0x3d, 0xfd, 0x55, 0x2b, 0xa0, 0xcf, 0xa1, 0x85, 0xcd, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0xe6, 0x14, 0xbb, 0x41, 0x4c, 0xfd, 0x57, 0xad, 0xe1, 0x6d, 0x9d, 0x01, 0xf4, 0xe0, 0xc2, 0xc8, 0xc8, 0xd2, 0xdc, 0xce, 0x5a, 0xe6, 0xd0, 0xc2, 0x66, 0xad, 0x00, 0xfd, 0x1c, 0x5a, 0xd8, 0x4c, 0x4b, 0x4d, 0x8c, 0xdc, 0xf0, 0x8b, 0xd2, 0x06, 0x11, 0x11, 0x5f, 0xb5, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xbc, 0x11, 0x58, 0xb5, 0x86, 0x1f, 0x61, 0x36, 0xd4, 0xfc, 0xa0, 0x80, 0x6c, 0x90, 0x2e, 0x48, 0xbb, 0x41, 0xe2, 0x6e, 0xea, 0xe1, 0xa1, 0x9f, 0xc3, 0x29, 0xb6, 0x00, 0x3a, 0x6b, 0x65, 0x63, 0x63, 0x61, 0x6b, 0x2d, 0x33, 0x38, 0x74, 0xc3, 0xe3, 0x23, 0x1b, 0x44, 0x7e, 0xf3, 0xce, 0x86, 0x5f, 0x94, 0x36, 0x88, 0x88, 0xf8, 0xaa, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0xe7, 0xf1, 0x55, 0x6b, 0xf8, 0x11, 0x66, 0x43, 0xcd, 0x0f, 0x0a, 0xe8, 0x1a, 0x7e, 0x84, 0xd9, 0x50, 0xf3, 0x83, 0x02, 0xb8, 0x86, 0x1f, 0x61, 0x36, 0xd4, 0xfc, 0x60, 0x00, 0x0f, 0x0f, 0xfd, 0x1c, 0x4e, 0xb1, 0x35, 0x88, 0x37, 0xfd, 0xaa, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0xe6, 0x14, 0xbb, 0x41, 0x4c, 0xfd, 0x57, 0xad, 0xe1, 0x6d, 0x9d, 0x01, 0xfc, 0xe1, 0xc2, 0xc8, 0xc8, 0xd2, 0xdc, 0xce, 0x5a, 0xe4, 0xc2, 0xee, 0xe6, 0xd0, 0xc2, 0xd6, 0xca, 0x3a, 0x9c, 0x62, 0x0b, 0xd0, 0xcf, 0xa1, 0x85, 0xcd, 0xb4, 0xcc, 0xe0, 0xd0, 0x0d, 0xbf, 0x28, 0x6d, 0x10, 0x11, 0xf1, 0x55, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0x0a, 0x10, 0xac, 0x0e, 0x62, 0x88, 0xc1, 0x6a, 0x35, 0x88, 0xe2, 0x02, 0xab, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0x78, 0x68, 0xab, 0x63, 0xa3, 0x4b, 0x93, 0x0b, 0xa3, 0x2b, 0x6b, 0x81, 0x0b, 0x23, 0x23, 0x4b, 0x73, 0x3b, 0x5b, 0xc3, 0x8f, 0x30, 0x03, 0x5f, 0x87, 0xc7, 0xb6, 0x02, 0xe8, 0xac, 0x95, 0x8d, 0x8d, 0x85, 0xad, 0xb5, 0xd4, 0xc4, 0xc8, 0x0d, 0x8f, 0x8f, 0x6c, 0x10, 0xa1, 0xd3, 0x3b, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0x22, 0xe2, 0xab, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x9c, 0xc7, 0x57, 0x1d, 0xc4, 0x22, 0x82, 0xd5, 0x2c, 0x40, 0x3f, 0x87, 0x16, 0x36, 0xd3, 0x22, 0x53, 0x63, 0x37, 0xfc, 0xa2, 0xb4, 0x41, 0x44, 0xc4, 0x57, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x28, 0x40, 0xb0, 0xda, 0x20, 0x82, 0xfa, 0xab, 0x36, 0x48, 0xdc, 0x4d, 0xdd, 0x20, 0x15, 0xfb, 0xf7, 0xf0, 0xd0, 0xcf, 0xe1, 0x14, 0x5b, 0x80, 0x7e, 0x0e, 0x2d, 0x6c, 0xa6, 0x45, 0x46, 0x86, 0x6e, 0xf8, 0x45, 0x69, 0x83, 0x88, 0x88, 0xaf, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x51, 0x80, 0x60, 0x75, 0x10, 0x6d, 0xf2, 0x55, 0xab, 0x41, 0x54, 0x3e, 0x58, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0xd8, 0x9a, 0xb0, 0x5a, 0xc3, 0x8f, 0x30, 0x03, 0x5f, 0x87, 0xc7, 0x77, 0x38, 0xc5, 0xd6, 0x20, 0x66, 0x02, 0xac, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x6c, 0x4d, 0x58, 0x1d, 0xc4, 0x60, 0xc3, 0xd4, 0x6a, 0x10, 0xd5, 0xf6, 0x55, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0xcd, 0x29, 0x76, 0x83, 0x98, 0xfa, 0xaf, 0x5a, 0xc3, 0xdb, 0x3a, 0x03, 0x78, 0xc2, 0x85, 0x91, 0x91, 0xa5, 0xb9, 0x9d, 0xb5, 0xcc, 0xa1, 0x85, 0xad, 0x95, 0x75, 0x38, 0xc5, 0x5a, 0x83, 0xa8, 0x02, 0xb0, 0xda, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x03, 0x3c, 0x77, 0x69, 0x64, 0x74, 0xe8, 0x41, 0x99, 0xa5, 0xdb, 0x06, 0x05, 0x1f, 0xe6, 0x1a, 0x1c, 0x6d, 0xf8, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0x1c, 0xad, 0x35, 0x36, 0x28, 0x9b, 0xde, 0x0f, 0x52, 0x81, 0xc6, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x71, 0x2b, 0x62, 0x55, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0xb5, 0x35, 0x82, 0x1b, 0x24, 0x8f, 0xf3, 0xae, 0xe1, 0x47, 0x98, 0x0d, 0x35, 0x3f, 0x54, 0x6e, 0x90, 0x66, 0x10, 0xba, 0x86, 0x1f, 0x61, 0x36, 0xd4, 0xfc, 0x20, 0x90, 0x1b, 0x24, 0xfd, 0x85, 0xae, 0xe1, 0x47, 0x98, 0x0d, 0x35, 0x3f, 0x28, 0x90, 0x6b, 0xf8, 0x11, 0x66, 0x43, 0xcd, 0x0f, 0x0e, 0xc8, 0x83, 0xb2, 0xce, 0x73, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0xe7, 0xbb, 0x54, 0x1e, 0x1c, 0x16, 0xd8, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x36, 0x78, 0x02, 0x2f, 0xf1, 0x86, 0x77, 0x7b, 0x36, 0x08, 0x9e, 0xda, 0x0d, 0x1e, 0x9f, 0xfb, 0xbb, 0xc1, 0xe3, 0x73, 0x7f, 0xdb, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xc0, 0x83, 0x2d, 0xcc, 0xad, 0xac, 0x45, 0x8c, 0xed, 0x2d, 0xde, 0xf0, 0x6e, 0xcf, 0x86, 0xd7, 0x7c, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xa7, 0x03, 0xbe, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x28, 0xb0, 0x6e, 0x10, 0x29, 0x25, 0x56, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x27, 0xf0, 0x12, 0x57, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0xe0, 0xc1, 0x16, 0xe6, 0x56, 0xd6, 0x32, 0x97, 0xa6, 0x57, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x42, 0xbb, 0x77, 0x0d, 0x6f, 0xeb, 0x6c, 0x10, 0x8d, 0x2c, 0x56, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xc0, 0x27, 0xf7, 0x56, 0xe7, 0x46, 0x36, 0x6f, 0x78, 0xb7, 0x67, 0xc3, 0x9f, 0x40, 0x1b, 0x2c, 0xe1, 0x70, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x04, 0x4f, 0xed, 0x06, 0x01, 0xcb, 0x7a, 0x10, 0x0d, 0x31, 0x56, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0x0d, 0x5e, 0x7c, 0x62, 0x79, 0xf8, 0xa1, 0xa6, 0x0d, 0x7f, 0xd1, 0x6c, 0xf8, 0xa1, 0x66, 0x83, 0x95, 0x2e, 0x4e, 0x1b, 0x1e, 0xdc, 0xd9, 0xe0, 0x15, 0xd6, 0x96, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x1b, 0xa4, 0x75, 0xac, 0x1d, 0x1e, 0xbc, 0xd9, 0xe0, 0x80, 0x45, 0xb7, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x06, 0xd1, 0x54, 0x2d, 0xb5, 0xe1, 0x6d, 0x9d, 0x0d, 0xe2, 0x41, 0xc6, 0xaa, 0x0d, 0x4f, 0xeb, 0x6c, 0x50, 0x90, 0xc6, 0xae, 0xe1, 0xfb, 0xf6, 0xc1, 0xc7, 0x83, 0xe6, 0x5c, 0xc5, 0xd7, 0xa0, 0xe8, 0x34, 0xde, 0x60, 0xa9, 0x24, 0xe1, 0x1a, 0xde, 0xed, 0xd9, 0xe0, 0x45, 0xba, 0xd2, 0x1b, 0x1e, 0xbc, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x5e, 0xf3, 0x39, 0x88, 0xe5, 0x15, 0xab, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xf8, 0x41, 0x99, 0xa5, 0x7b, 0x50, 0xfc, 0xc5, 0x6e, 0x50, 0x74, 0x1a, 0x6f, 0x50, 0x50, 0x76, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0x03, 0xde, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x44, 0xc4, 0x58, 0x1d, 0x14, 0xc4, 0xe3, 0x87, 0x5f, 0x84, 0x36, 0x28, 0x3a, 0x8d, 0x37, 0x58, 0x2a, 0x49, 0xb8, 0x41, 0x8c, 0xea, 0x58, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0x6d, 0x70, 0x12, 0x48, 0x3d, 0x28, 0xfe, 0x62, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0x21, 0x06, 0x62, 0xc3, 0xd3, 0x3b, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0xf0, 0x9f, 0x95, 0xd1, 0xb5, 0xb0, 0x85, 0xb9, 0x95, 0x6d, 0x90, 0x4c, 0xe9, 0xb4, 0x41, 0x8a, 0xb5, 0xd3, 0xe1, 0xa1, 0x9f, 0x36, 0x28, 0x48, 0x63, 0xd7, 0xf0, 0x7d, 0xfb, 0xe0, 0xe4, 0x41, 0x73, 0xae, 0xe2, 0x6b, 0x50, 0x74, 0x1a, 0x6f, 0xb0, 0x54, 0x92, 0x70, 0x83, 0x18, 0xd5, 0xb1, 0xda, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0xda, 0x20, 0x12, 0x79, 0xac, 0x0e, 0x0a, 0x7f, 0xe0, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x0a, 0xca, 0xee, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x69, 0xc0, 0xbb, 0x41, 0x54, 0xf9, 0x58, 0x1d, 0x94, 0xea, 0xb2, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x1c, 0x62, 0x20, 0xd6, 0xe0, 0x68, 0xc3, 0xb7, 0x86, 0x77, 0x7b, 0x36, 0x88, 0x1b, 0x6b, 0xa9, 0x0d, 0xcf, 0x4c, 0x6e, 0xf0, 0xf8, 0xdc, 0xdf, 0xc3, 0x2f, 0x42, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x1b, 0x24, 0x53, 0x3a, 0x1d, 0x1e, 0xbc, 0xd9, 0x20, 0xba, 0x76, 0xac, 0x0e, 0x92, 0x92, 0x9e, 0x36, 0x58, 0xd5, 0xab, 0xb4, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0xc7, 0xf3, 0xb7, 0x0d, 0xce, 0xfc, 0x6b, 0x07, 0xd1, 0x10, 0x63, 0xb5, 0xe1, 0xc1, 0x9b, 0x0d, 0x8f, 0xc9, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0xb8, 0xb1, 0x96, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x84, 0xdd, 0xed, 0x1a, 0x3e, 0x8e, 0x3a, 0x48, 0xa6, 0x74, 0x3a, 0x88, 0xe5, 0x15, 0xab, 0x83, 0xb8, 0x49, 0xb2, 0xda, 0xa0, 0xe8, 0xd3, 0xdd, 0xf0, 0xe0, 0xce, 0x1a, 0x14, 0x9d, 0xc6, 0x1b, 0x2c, 0x95, 0x24, 0x5c, 0xc3, 0xbb, 0x3d, 0x1b, 0xbc, 0x48, 0x57, 0x7a, 0xc3, 0x83, 0x37, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x6b, 0x3e, 0x07, 0x31, 0xee, 0x62, 0xd5, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x06, 0xe5, 0xc2, 0xf9, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0x3c, 0x38, 0x22, 0xda, 0xb4, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0x21, 0x06, 0x62, 0xc3, 0xd3, 0x3a, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x94, 0x06, 0xbc, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x88, 0x88, 0xb1, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x3e, 0x05, 0xdc, 0x20, 0xce, 0x5d, 0xac, 0x36, 0x28, 0x88, 0xcf, 0x6b, 0xc3, 0xbb, 0x3d, 0x1b, 0xc4, 0x8d, 0xb5, 0xd4, 0x06, 0x65, 0xf4, 0xf9, 0x06, 0x8f, 0xcf, 0xfd, 0x3d, 0x28, 0xd5, 0x65, 0x37, 0x28, 0x48, 0x63, 0xd7, 0xf0, 0x7d, 0xfb, 0xe0, 0xe2, 0x41, 0x73, 0xae, 0xe2, 0x6b, 0x50, 0x74, 0x1a, 0x6f, 0xb0, 0x54, 0x92, 0x70, 0x83, 0x68, 0x7f, 0xb2, 0xda, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0xda, 0xe0, 0x3c, 0xa9, 0x72, 0x78, 0x9d, 0x69, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0x7c, 0xc3, 0xbb, 0x3d, 0x1b, 0x84, 0xdd, 0xed, 0x06, 0x65, 0xf4, 0xf9, 0xc1, 0x51, 0x81, 0x6d, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xf0, 0x7c, 0xc3, 0xbb, 0x3d, 0x1b, 0x84, 0x02, 0xeb, 0x41, 0x3c, 0x69, 0x59, 0x6d, 0x50, 0x74, 0x1a, 0x6f, 0x50, 0x50, 0x76, 0x6f, 0x78, 0x2f, 0x68, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0xd2, 0x80, 0x77, 0x0d, 0x0a, 0x43, 0xd5, 0x0d, 0x22, 0x22, 0xc6, 0x6a, 0x83, 0xa2, 0xd3, 0x78, 0xc3, 0xa7, 0x80, 0x1b, 0xc4, 0xb9, 0x8b, 0xd5, 0x06, 0x45, 0xa7, 0xf1, 0x86, 0x3f, 0x81, 0x36, 0x48, 0x88, 0x79, 0xda, 0xa0, 0xe8, 0x34, 0xde, 0x20, 0x78, 0x6a, 0x37, 0x78, 0x7c, 0xee, 0xef, 0x86, 0x77, 0x7b, 0x36, 0x08, 0xbb, 0xdb, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x4f, 0xa0, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xf0, 0xd4, 0x6e, 0x10, 0xb0, 0xac, 0x07, 0x89, 0x94, 0x4e, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xe0, 0xa9, 0xdd, 0xa0, 0xa8, 0x14, 0x3f, 0x48, 0xaf, 0x76, 0xea, 0x20, 0x96, 0x57, 0xac, 0x36, 0x58, 0xd5, 0xab, 0xb4, 0x41, 0xbc, 0x2d, 0x59, 0x6d, 0x78, 0xf0, 0x66, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0xbc, 0xe5, 0xde, 0xe8, 0xc2, 0xe8, 0xd2, 0xde, 0xdc, 0x5a, 0xde, 0xcc, 0xcc, 0xe6, 0xca, 0xe8, 0x0e, 0x4a, 0x33, 0xf4, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x37, 0xd6, 0x52, 0x1b, 0x94, 0xd1, 0xe7, 0x1b, 0xc4, 0xb9, 0x8b, 0xd5, 0xe1, 0xa1, 0x9f, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0x0f, 0xee, 0xac, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0x52, 0x49, 0xc2, 0x0d, 0xa2, 0xfd, 0xc9, 0x6a, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x72, 0xe1, 0x7c, 0xc3, 0x97, 0x4b, 0x6d, 0x50, 0x74, 0x1a, 0x6f, 0x50, 0x50, 0x76, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0x03, 0xde, 0x0d, 0x22, 0x22, 0xc6, 0xea, 0xf0, 0xd0, 0xcf, 0x86, 0x4f, 0x6c, 0x36, 0x88, 0xc3, 0x2c, 0xab, 0x0d, 0x9f, 0xd8, 0x6c, 0x10, 0x07, 0x5b, 0x56, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x1c, 0x62, 0x20, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x11, 0x1f, 0x64, 0xb5, 0x41, 0x32, 0xa5, 0xd3, 0x06, 0x29, 0xd6, 0x4e, 0x87, 0xb7, 0xd0, 0x36, 0x28, 0x3a, 0x8d, 0x37, 0x38, 0x7a, 0xc7, 0xad, 0xc1, 0xd1, 0x86, 0x6f, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0xf1, 0x41, 0x56, 0x1b, 0x9e, 0x99, 0x3c, 0x88, 0x7f, 0x36, 0xab, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x76, 0xb7, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x9f, 0x40, 0x1b, 0x24, 0x53, 0x3a, 0x1d, 0x04, 0x2b, 0xeb, 0x41, 0x2c, 0xaf, 0x58, 0x6d, 0xb0, 0xaa, 0x57, 0x69, 0x83, 0x64, 0x9c, 0xd6, 0x0d, 0x22, 0x22, 0xc6, 0x6a, 0xc3, 0x63, 0x32, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0xe2, 0x83, 0xac, 0x36, 0x88, 0xb6, 0x26, 0xab, 0x83, 0xf8, 0x67, 0xb3, 0xda, 0xa0, 0xe8, 0xd3, 0xdd, 0xf0, 0xe0, 0xce, 0x1a, 0x3e, 0xb1, 0x59, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x00, 0x5f, 0xb9, 0xb7, 0x3a, 0x37, 0xb2, 0x96, 0xb1, 0x37, 0xb7, 0x39, 0xba, 0x30, 0x37, 0xba, 0x0d, 0xa2, 0xa9, 0x5a, 0xaa, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0x88, 0x81, 0xd8, 0xf0, 0xb4, 0xce, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x34, 0xe0, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0x44, 0x44, 0x8c, 0xd5, 0x41, 0x8c, 0x42, 0x59, 0x1d, 0xa4, 0x02, 0x8d, 0xb5, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0x41, 0x4a, 0xc7, 0xda, 0x86, 0x8f, 0xa3, 0x0e, 0xa2, 0xa9, 0x5a, 0xaa, 0x65, 0xd6, 0x20, 0xea, 0xc8, 0xac, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0x24, 0xf2, 0x58, 0x6d, 0x70, 0xb4, 0xe1, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0x95, 0xf3, 0x1b, 0x24, 0x53, 0x3a, 0x1d, 0xa4, 0x02, 0x8d, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0xa3, 0xd5, 0xe5, 0x06, 0x47, 0xd7, 0xc1, 0x0d, 0x0f, 0xde, 0x6c, 0x78, 0x4c, 0x66, 0x83, 0xa5, 0x15, 0x6f, 0x1b, 0xa4, 0x3c, 0x79, 0xae, 0xe1, 0x47, 0x98, 0x0d, 0x35, 0x3f, 0x6c, 0x37, 0x58, 0xdc, 0x65, 0xbf, 0x86, 0x1f, 0x61, 0x36, 0xd4, 0xfc, 0x50, 0xb6, 0xc1, 0x71, 0x79, 0x66, 0x83, 0x85, 0x14, 0xa7, 0x1b, 0xa4, 0xa9, 0xb8, 0x6e, 0x50, 0x54, 0x8a, 0x6f, 0x90, 0xf2, 0x5a, 0xb5, 0x86, 0x1f, 0x61, 0x36, 0xd4, 0xfc, 0xd0, 0xb5, 0x41, 0xf2, 0x38, 0xef, 0x06, 0xc9, 0x3d, 0xae, 0x1b, 0x24, 0x46, 0xe3, 0xae, 0xe1, 0x47, 0x98, 0x0d, 0x35, 0x3f, 0xb4, 0x6d, 0x70, 0xba, 0x7f, 0xdb, 0x60, 0x7d, 0x55, 0xea, 0x06, 0x87, 0x95, 0xb9, 0x0d, 0x52, 0x75, 0x71, 0x37, 0x08, 0x58, 0xd6, 0x0d, 0xd2, 0xff, 0x6c, 0x37, 0x88, 0xe3, 0x0e, 0xa9, 0x83, 0x94, 0xc1, 0xd5, 0xd5, 0x20, 0x56, 0x84, 0xac, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0x36, 0x88, 0x44, 0x1e, 0xab, 0x0d, 0x4e, 0x02, 0xa9, 0x07, 0xd1, 0x8f, 0x66, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0x78, 0xba, 0xe1, 0xdd, 0x9e, 0x0d, 0x7f, 0x02, 0x6d, 0x90, 0x4c, 0xe9, 0xb4, 0x86, 0x77, 0x7b, 0x36, 0x08, 0x9e, 0xda, 0x0d, 0x1e, 0x9f, 0xfb, 0x7b, 0x90, 0x5e, 0xed, 0xd4, 0x41, 0x04, 0x97, 0x59, 0x1d, 0x4e, 0xb1, 0x35, 0x88, 0x36, 0x66, 0xa9, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0x0a, 0x22, 0xdd, 0x0d, 0xce, 0xed, 0xa4, 0x07, 0xd1, 0x8f, 0x66, 0xb5, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0xa2, 0xd9, 0x0d, 0x22, 0x22, 0xc6, 0x6a, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x9f, 0x02, 0x6e, 0x70, 0x08, 0x9d, 0x58, 0xc3, 0xc7, 0x51, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0xec, 0x6e, 0x37, 0x28, 0x86, 0x76, 0x0f, 0x4e, 0x08, 0x14, 0x1d, 0x14, 0xc4, 0xe3, 0x87, 0x87, 0x7e, 0x66, 0x0d, 0x22, 0x86, 0xce, 0x6a, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0xf1, 0xa0, 0xcc, 0xd2, 0xdd, 0xe0, 0x68, 0xc3, 0xb7, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x2a, 0xe7, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x61, 0x77, 0xbb, 0xe1, 0xe9, 0x9d, 0x83, 0x78, 0xb8, 0x90, 0x3a, 0x48, 0x05, 0x1a, 0xdb, 0xf0, 0x17, 0xcd, 0x06, 0x07, 0x8f, 0xd2, 0x0d, 0x8e, 0xae, 0x83, 0x1b, 0x44, 0xd6, 0xb8, 0xd4, 0x1a, 0x7e, 0x84, 0x19, 0xf8, 0x3a, 0x3c, 0x10, 0x04, 0x01, 0x6b, 0xf8, 0x11, 0x66, 0xe0, 0xeb, 0xf0, 0x83, 0x48, 0xb6, 0xe2, 0x59, 0xc3, 0x8f, 0x30, 0x03, 0x5f, 0x87, 0x1f, 0xc4, 0xda, 0x15, 0xcf, 0x1a, 0x7e, 0x84, 0x19, 0xf8, 0x3a, 0x3c, 0x10, 0x16, 0x01, 0x6b, 0xf8, 0x11, 0x66, 0xe0, 0xeb, 0xf0, 0x83, 0x38, 0xc2, 0xe2, 0x59, 0xc3, 0x8f, 0x30, 0x03, 0x5f, 0x87, 0x1f, 0x44, 0x29, 0x16, 0xcf, 0x1a, 0x7e, 0x84, 0x19, 0xf8, 0x3a, 0xfc, 0x20, 0x8e, 0xb2, 0x78, 0xd6, 0xf0, 0x23, 0xcc, 0xc0, 0xd7, 0xe1, 0x41, 0x28, 0xd6, 0xf0, 0x23, 0xcc, 0xc0, 0xd7, 0xe1, 0x41, 0x20, 0xd6, 0xf0, 0x23, 0xcc, 0xc0, 0xd7, 0xe1, 0x07, 0x51, 0xa3, 0xc5, 0xb3, 0x86, 0x1f, 0x61, 0x06, 0xbe, 0x0e, 0x3f, 0x88, 0x49, 0x2d, 0x9e, 0x35, 0xfc, 0x08, 0x33, 0xf0, 0x75, 0xf8, 0x41, 0xc4, 0x6b, 0xf1, 0xac, 0xe1, 0x47, 0x98, 0x81, 0xaf, 0xc3, 0x0f, 0xe2, 0x69, 0x8b, 0x67, 0x0d, 0x3f, 0xc2, 0x0c, 0x7c, 0x1d, 0x7e, 0x10, 0xf1, 0x5b, 0x3c, 0x6b, 0xf8, 0x11, 0x66, 0xe0, 0xeb, 0xf0, 0x83, 0x98, 0xe4, 0xe2, 0x59, 0xc3, 0x8f, 0x30, 0x03, 0x5f, 0x87, 0x1f, 0x44, 0x4d, 0x17, 0xcf, 0x1a, 0x7e, 0x84, 0x19, 0xf8, 0x3a, 0xfc, 0x20, 0xae, 0xbb, 0x78, 0xd6, 0xf0, 0x23, 0xcc, 0xc0, 0xd7, 0xe1, 0x81, 0xa0, 0x00, 0x58, 0xc3, 0x8f, 0x30, 0x03, 0x5f, 0x87, 0x1f, 0xc4, 0xac, 0x17, 0xcf, 0x06, 0xd1, 0x3d, 0x69, 0xb5, 0x86, 0x1f, 0x61, 0x06, 0xbe, 0x0e, 0x3f, 0x88, 0xd0, 0x2f, 0x9e, 0x0d, 0xe2, 0x64, 0xd2, 0x6a, 0x0d, 0x3f, 0xc2, 0x0c, 0x7c, 0x1d, 0x7e, 0x10, 0x8f, 0x60, 0x3c, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0xb6, 0x1a, 0xc4, 0x25, 0x88, 0xd5, 0x86, 0x77, 0x7b, 0x36, 0x88, 0xad, 0x09, 0xab, 0x35, 0xfc, 0x08, 0x33, 0xf0, 0x75, 0x78, 0xd8, 0x77, 0x38, 0xc5, 0x16, 0x40, 0x67, 0xad, 0x6c, 0x6c, 0x2c, 0x6c, 0xad, 0x45, 0xa6, 0xc6, 0x6e, 0x78, 0x7c, 0x64, 0x83, 0x18, 0x37, 0xe3, 0xd9, 0xf0, 0x8b, 0xd2, 0x06, 0x11, 0x11, 0x5f, 0xb5, 0xe1, 0xdd, 0x9e, 0x0d, 0xe2, 0x3c, 0xbe, 0xea, 0x20, 0x12, 0x33, 0xac, 0x66, 0x0d, 0xa2, 0x72, 0xc2, 0x6a, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x23, 0x9b, 0x13, 0x0f, 0x8e, 0x2d, 0xa5, 0x1b, 0x14, 0x7c, 0x98, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x17, 0xbf, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x23, 0x9b, 0x13, 0x3b, 0x58, 0xa6, 0x87, 0xba, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0x3c, 0xa4, 0x57, 0xad, 0xe1, 0xcf, 0xa5, 0x0d, 0x5a, 0x8d, 0xc8, 0x3e, 0x28, 0xb3, 0x74, 0xdb, 0xf0, 0x17, 0xcd, 0x06, 0x4f, 0x3f, 0x97, 0xdb, 0xa0, 0xe8, 0xd3, 0xdd, 0xa0, 0xd1, 0x8c, 0xec, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x28, 0xb0, 0x6e, 0xd0, 0x76, 0x47, 0xf6, 0xc1, 0x51, 0x65, 0x6e, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0x25, 0x19, 0xb4, 0x1b, 0xde, 0xed, 0xd9, 0xf0, 0x29, 0xe0, 0x06, 0x6d, 0x77, 0x64, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0xc2, 0xee, 0x76, 0x0d, 0x6f, 0xeb, 0x0c, 0x0e, 0x1f, 0xc4, 0xa9, 0x7a, 0xd5, 0x41, 0xa3, 0x2e, 0xd9, 0x6d, 0x70, 0x1c, 0x9b, 0xd8, 0xa0, 0x5d, 0x83, 0xcb, 0x35, 0xfc, 0x9b, 0xb3, 0x41, 0xe3, 0x05, 0x97, 0x87, 0x07, 0x6f, 0x36, 0x68, 0xbb, 0x23, 0x7b, 0x83, 0xa2, 0x4f, 0x77, 0x83, 0x76, 0x0d, 0x2e, 0xd7, 0xf0, 0x6e, 0xcf, 0x86, 0xd7, 0x7c, 0x36, 0x68, 0xbc, 0xe0, 0xb2, 0x0d, 0x0a, 0x43, 0xd5, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x4f, 0xa0, 0x0d, 0x22, 0x82, 0xd5, 0x6a, 0x0d, 0x1f, 0x47, 0x1d, 0x34, 0x5e, 0x70, 0xd9, 0x86, 0x77, 0x7b, 0x36, 0x28, 0xeb, 0x6d, 0x37, 0x28, 0x2a, 0xc5, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x05, 0x65, 0xf7, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x34, 0xe0, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0x14, 0x95, 0xe2, 0x07, 0x51, 0xf7, 0x6a, 0xb5, 0x41, 0x9c, 0x97, 0x5a, 0xb5, 0x41, 0xec, 0xb1, 0x52, 0xb5, 0x86, 0xb7, 0x75, 0x0e, 0xe2, 0x50, 0xbd, 0xaa, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x56, 0x83, 0xb8, 0xa8, 0xe8, 0xd9, 0xa0, 0xec, 0x92, 0xdd, 0x20, 0x2e, 0x2a, 0x7a, 0x36, 0x78, 0xb3, 0xf0, 0xc9, 0x6c, 0x50, 0xb2, 0xb0, 0xcf, 0x32, 0x0b, 0xf0, 0xb6, 0x91, 0xd5, 0xb4, 0xc0, 0x85, 0x91, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0xb9, 0x11, 0x76, 0xc3, 0x5f, 0x34, 0x1b, 0x24, 0x37, 0xc2, 0x6e, 0xf8, 0xc4, 0x66, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x14, 0x70, 0x0d, 0x3f, 0xc2, 0x6c, 0xa8, 0xf9, 0xc1, 0xfc, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0xc2, 0xee, 0x76, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x13, 0x68, 0x83, 0xd4, 0x4c, 0xd8, 0x83, 0x74, 0xed, 0xd8, 0x83, 0xa4, 0xdd, 0xd4, 0x36, 0x28, 0x0c, 0x55, 0xd7, 0x20, 0xc9, 0x80, 0x70, 0xc3, 0x9f, 0x40, 0x1b, 0xa4, 0x40, 0xa7, 0x6e, 0x10, 0xfd, 0x26, 0x52, 0x07, 0x49, 0x43, 0xb2, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x94, 0xc5, 0xd1, 0x1b, 0x1e, 0xbc, 0xd9, 0xe0, 0xe8, 0x3a, 0xb8, 0x06, 0x29, 0xd0, 0xa9, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0xa9, 0x14, 0x76, 0x83, 0xa2, 0x52, 0x7c, 0x83, 0xc3, 0xca, 0xdc, 0x41, 0xd2, 0x90, 0xec, 0x1a, 0x44, 0xbf, 0x89, 0xd4, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x0d, 0x78, 0x37, 0x48, 0x7e, 0x1a, 0x3b, 0x28, 0x88, 0xc7, 0x0f, 0x62, 0xc8, 0x54, 0x6a, 0x16, 0x40, 0x47, 0x2e, 0x0d, 0xae, 0xac, 0x8d, 0xac, 0x25, 0xc6, 0x06, 0x6e, 0x78, 0x7c, 0x64, 0x83, 0x28, 0x9e, 0xe8, 0xd9, 0xf0, 0x8b, 0xd2, 0x06, 0xc9, 0x8d, 0xb0, 0x1b, 0xfe, 0xa2, 0xd9, 0xf0, 0x43, 0xcd, 0x06, 0x45, 0x9f, 0xee, 0x06, 0x09, 0x9d, 0xb0, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xe0, 0xa9, 0x3d, 0x88, 0x3e, 0xa5, 0xa5, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xec, 0xda, 0x5a, 0x75, 0x90, 0x0c, 0x0b, 0xbb, 0x41, 0xd1, 0xa7, 0xbb, 0x41, 0xf9, 0x5f, 0xbc, 0x86, 0x77, 0x7b, 0x36, 0x48, 0xc1, 0xa8, 0xdd, 0xe0, 0xb0, 0xc0, 0xb6, 0x41, 0xe9, 0x67, 0xbc, 0x86, 0x5f, 0x94, 0x36, 0x7c, 0xb9, 0xb4, 0xe1, 0xdd, 0x9e, 0x0d, 0x92, 0x4a, 0x61, 0x0f, 0xa2, 0xcd, 0x6b, 0xaa, 0x0d, 0x56, 0xba, 0x38, 0x6d, 0x90, 0x82, 0xe9, 0xb4, 0x41, 0xe9, 0x67, 0xbc, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0xb2, 0xc1, 0xc1, 0xc9, 0x6d, 0xc3, 0xbb, 0x3d, 0x1b, 0x84, 0x02, 0xeb, 0x06, 0xa9, 0x99, 0xb0, 0x07, 0x49, 0xbb, 0xa9, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x03, 0x9e, 0x59, 0x99, 0x7d, 0x70, 0x62, 0x5f, 0xdb, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0x68, 0x34, 0xb8, 0xe1, 0x47, 0x98, 0x81, 0xaf, 0xc3, 0x0f, 0x62, 0xa1, 0x91, 0x67, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xa0, 0xd1, 0xe2, 0x86, 0x1f, 0x61, 0x06, 0xbe, 0x0e, 0x3f, 0x88, 0xc4, 0x46, 0x9e, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x81, 0x46, 0x93, 0x1b, 0x7e, 0x84, 0x19, 0xf8, 0x3a, 0xfc, 0x20, 0x1a, 0x1c, 0x79, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x1a, 0x6d, 0x6e, 0xf8, 0x11, 0x66, 0xe0, 0xeb, 0xf0, 0x83, 0x88, 0x74, 0xe4, 0xd9, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0x68, 0x34, 0xba, 0xe1, 0x47, 0x98, 0x81, 0xaf, 0xc3, 0x0f, 0x62, 0xe1, 0x91, 0x67, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x24, 0x20, 0xd5, 0x0d, 0xd2, 0x2c, 0x58, 0xdb, 0xf0, 0x89, 0xcd, 0x1a, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0x7e, 0x98, 0x8b, 0x4b, 0xd9, 0x06, 0x85, 0x60, 0xea, 0x86, 0xcf, 0x95, 0x36, 0x7c, 0xb9, 0xb4, 0xe1, 0x79, 0xa6, 0x0d, 0x0a, 0xc0, 0xd8, 0x83, 0x93, 0x9c, 0xca, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0xa0, 0x0b, 0x3b, 0x71, 0x71, 0x29, 0x3b, 0x6d, 0x50, 0x08, 0xa6, 0x6e, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x7c, 0x58, 0x78, 0xf8, 0xa1, 0x66, 0x0d, 0x7f, 0x2e, 0x0d, 0xbc, 0x98, 0x78, 0xf8, 0xa1, 0x66, 0x0d, 0x7f, 0x2e, 0x0d, 0xfc, 0xd8, 0x78, 0xf8, 0xa1, 0x66, 0x0d, 0x7f, 0x2e, 0x0d, 0x3c, 0x19, 0x79, 0xf8, 0xa1, 0x66, 0x0d, 0x7f, 0x2e, 0x0d, 0x7c, 0x59, 0x79, 0xf8, 0xa1, 0xa6, 0x0d, 0x0e, 0x58, 0x74, 0x6b, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0x6c, 0x50, 0x46, 0x9f, 0x1f, 0x1c, 0xdb, 0xde, 0xd6, 0xa0, 0xe8, 0x34, 0xde, 0xa0, 0xd8, 0x56, 0xde, 0xe0, 0xb0, 0xc0, 0xb6, 0x41, 0xd1, 0x69, 0xbc, 0x41, 0x89, 0x54, 0xbd, 0x86, 0xbf, 0x68, 0x36, 0x28, 0xe7, 0x6c, 0x37, 0x38, 0xba, 0x0e, 0xae, 0xe1, 0x6d, 0x9d, 0x81, 0x46, 0xa3, 0xad, 0xe1, 0x6d, 0x9d, 0x81, 0x46, 0x9b, 0xad, 0xe1, 0x6d, 0x9d, 0x81, 0x46, 0x93, 0x6d, 0x70, 0xb8, 0x75, 0xdb, 0x20, 0x5a, 0x80, 0xa3, 0xda, 0xf0, 0x8b, 0xd2, 0x06, 0x07, 0x4e, 0xba, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x54, 0x0a, 0xbb, 0x41, 0x51, 0x29, 0xbe, 0xc1, 0xa9, 0xb9, 0xed, 0xe0, 0x00, 0x4f, 0xb7, 0xc1, 0xda, 0xb8, 0xa6, 0xd5, 0xf0, 0xe0, 0xce, 0x41, 0xb4, 0x00, 0x47, 0xad, 0xc1, 0x7b, 0x0b, 0x0c, 0x0f, 0xa2, 0x05, 0x38, 0x6a, 0x0d, 0x9f, 0x07, 0x1d, 0x1c, 0x6e, 0xdd, 0xd6, 0xe0, 0x21, 0x03, 0x86, 0x07, 0x87, 0x5b, 0xb7, 0x35, 0xfc, 0xc3, 0x73, 0x10, 0x5b, 0xde, 0x56, 0x2b, 0xf0, 0x63, 0x63, 0x07, 0xb1, 0xe5, 0x6d, 0xb5, 0x06, 0x45, 0xbe, 0xec, 0x41, 0xac, 0x77, 0x5b, 0xad, 0x41, 0x1c, 0x77, 0x3d, 0x1d, 0xc4, 0x7a, 0xb7, 0xd5, 0x1a, 0x14, 0x21, 0xd0, 0x07, 0xb1, 0xd7, 0x6d, 0xb5, 0x02, 0x5f, 0x56, 0x76, 0x10, 0x7b, 0xdd, 0x56, 0x6d, 0xf8, 0xc4, 0x66, 0x83, 0x34, 0x0b, 0xd6, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0x6c, 0x90, 0xc2, 0x1c, 0x75, 0x90, 0xaa, 0xb0, 0xba, 0x86, 0x4b, 0x6a, 0x83, 0xc3, 0x7e, 0xc7, 0x06, 0x85, 0xee, 0xf9, 0x1a, 0x9c, 0x41, 0xdd, 0x36, 0x48, 0x32, 0x20, 0x5c, 0xc3, 0x83, 0x92, 0x1b, 0x1c, 0xb6, 0xe1, 0x36, 0xbc, 0xad, 0x33, 0xe0, 0x99, 0x95, 0xd9, 0x6d, 0x10, 0x5b, 0xde, 0x56, 0x1b, 0x94, 0xeb, 0xb2, 0x6b, 0x78, 0x5b, 0xe7, 0x20, 0x66, 0xcc, 0xad, 0x5a, 0x83, 0x88, 0xf4, 0xb6, 0xda, 0x20, 0xc9, 0x80, 0x70, 0x83, 0xe8, 0x4c, 0xb7, 0xda, 0x20, 0xd6, 0xbb, 0xad, 0x36, 0x28, 0x27, 0xa0, 0xd7, 0xf0, 0xb6, 0xce, 0xc1, 0x7b, 0x0b, 0x0c, 0x5b, 0x83, 0x08, 0xf1, 0xb6, 0xda, 0x20, 0xc9, 0x80, 0x70, 0x83, 0xe8, 0x4c, 0xb7, 0xda, 0x20, 0xf6, 0xba, 0xad, 0x36, 0x3c, 0xad, 0xb3, 0x86, 0xb7, 0x75, 0x0e, 0x1e, 0x32, 0x60, 0xd8, 0x1a, 0x44, 0x6c, 0xb7, 0xd5, 0x06, 0x49, 0x06, 0x84, 0x1b, 0x44, 0x67, 0xba, 0xd5, 0x06, 0xd1, 0x02, 0x1c, 0xb5, 0xe1, 0xbd, 0xa0, 0x35, 0xbc, 0xad, 0x73, 0x10, 0xfb, 0xe3, 0x56, 0xad, 0x41, 0x8c, 0x01, 0x47, 0x6d, 0x90, 0x64, 0x40, 0xb8, 0x41, 0x74, 0xa6, 0x5b, 0x6d, 0x70, 0xb8, 0x75, 0xdb, 0xf0, 0xf4, 0xce, 0x41, 0xfc, 0x77, 0x3d, 0xb5, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0x6d, 0x90, 0x5c, 0x68, 0xb9, 0x86, 0x07, 0x77, 0x0e, 0xca, 0x09, 0xe8, 0x35, 0x7c, 0x1e, 0xb4, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0x73, 0x90, 0x60, 0xb1, 0xb4, 0x41, 0x0a, 0x73, 0xd4, 0x86, 0xa7, 0x75, 0x36, 0xbc, 0x17, 0xb4, 0xe1, 0xe9, 0x9d, 0x0d, 0xca, 0x75, 0xd9, 0x0d, 0xca, 0x09, 0xe8, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xb9, 0xd3, 0x62, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0xfc, 0xe4, 0x3b, 0x48, 0x0a, 0x60, 0x6d, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0xe6, 0x5d, 0x75, 0x90, 0x14, 0xc0, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x9c, 0xf3, 0x1d, 0x24, 0x05, 0xb0, 0xb6, 0x41, 0x42, 0x60, 0xee, 0x1a, 0x14, 0xf9, 0xb2, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0x0c, 0xfe, 0xb6, 0x41, 0xca, 0x6b, 0xd5, 0xe1, 0x17, 0xa1, 0x0d, 0xd2, 0x57, 0x5e, 0xd7, 0xe0, 0xbd, 0x05, 0x86, 0x07, 0x71, 0xb2, 0x6e, 0xb5, 0x06, 0x0f, 0x19, 0x30, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0x51, 0x49, 0x6f, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0x0a, 0xb8, 0x86, 0x1f, 0x61, 0x36, 0xd4, 0xfc, 0xf0, 0xe7, 0x20, 0x29, 0x80, 0x75, 0x83, 0xc8, 0x68, 0xb7, 0xda, 0x20, 0xfe, 0xdd, 0xad, 0x36, 0x88, 0x72, 0x78, 0xab, 0x0d, 0x22, 0xb2, 0xeb, 0x69, 0x83, 0x38, 0x59, 0xb7, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x9c, 0x3b, 0x2d, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xb1, 0x90, 0x0a, 0x75, 0x90, 0x14, 0xc0, 0xda, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0xbf, 0xb6, 0x76, 0x90, 0x14, 0xc0, 0xba, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0xc0, 0xcf, 0xcd, 0x1d, 0x24, 0x05, 0xb0, 0xb6, 0x06, 0xb1, 0x3f, 0x6e, 0x75, 0x10, 0xff, 0xee, 0x56, 0x6b, 0x10, 0xc7, 0x5d, 0x4f, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0x0c, 0xfe, 0xb6, 0x41, 0xca, 0x6b, 0xd5, 0x41, 0x84, 0xc3, 0x5b, 0xad, 0x41, 0xcc, 0x98, 0x5b, 0x1d, 0x44, 0x64, 0xd7, 0x53, 0xcb, 0x2c, 0xf0, 0x66, 0xee, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x5c, 0x3d, 0x28, 0xb3, 0x74, 0x37, 0x7c, 0xb9, 0xb4, 0xe1, 0x79, 0xa6, 0x0d, 0x0a, 0xc0, 0xd8, 0x0d, 0x8a, 0x7f, 0xe0, 0x0d, 0x4a, 0xad, 0xe8, 0x0d, 0x92, 0xe2, 0x19, 0x37, 0x48, 0x45, 0x66, 0x3c, 0x88, 0x8d, 0xa3, 0xa9, 0x0d, 0x8e, 0x36, 0x7c, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xe8, 0x4c, 0xb7, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x9c, 0xc1, 0xdf, 0x36, 0x38, 0x9c, 0xf3, 0xad, 0x41, 0x92, 0x01, 0xe1, 0x06, 0xd1, 0x99, 0x6e, 0xb5, 0xe1, 0x69, 0x9d, 0x0d, 0x0e, 0xa1, 0x13, 0x1b, 0xa4, 0x79, 0x57, 0x1d, 0xa4, 0x02, 0x8d, 0x75, 0x50, 0x66, 0x4b, 0x6f, 0x50, 0xf4, 0xe9, 0x6e, 0x90, 0xf8, 0x1c, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x08, 0x05, 0xd6, 0x83, 0xb4, 0xd1, 0xd5, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x0d, 0x0f, 0xde, 0x1c, 0xa4, 0x30, 0x47, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x0e, 0x31, 0x10, 0x1b, 0xc4, 0xa9, 0x73, 0xd3, 0x41, 0xa9, 0x2e, 0xbb, 0xe1, 0x83, 0x9c, 0x35, 0xfc, 0x9b, 0xb3, 0xe1, 0x31, 0x99, 0x83, 0x14, 0xe6, 0xa8, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x41, 0xd9, 0xbd, 0x41, 0xa2, 0x48, 0xeb, 0x1a, 0xde, 0xed, 0xd9, 0xe0, 0xe8, 0x1d, 0xb7, 0x86, 0x77, 0x7b, 0x36, 0x48, 0xc6, 0x69, 0xdd, 0xf0, 0xe0, 0xcd, 0x06, 0xa9, 0xa7, 0xb1, 0x87, 0xb7, 0xd0, 0x0e, 0x4a, 0x75, 0xd9, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0x36, 0x08, 0x58, 0xd6, 0x83, 0x14, 0xe6, 0xa8, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x21, 0x06, 0x62, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x50, 0x76, 0x6f, 0x78, 0x2f, 0x68, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x8c, 0xd3, 0xba, 0xe1, 0xc1, 0x9b, 0x0d, 0x52, 0x4f, 0x63, 0x0f, 0xbf, 0x08, 0x75, 0x50, 0xaa, 0xcb, 0x6e, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0x6c, 0x50, 0x54, 0x8a, 0x1f, 0xa4, 0x30, 0x47, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x0a, 0xca, 0xee, 0x0d, 0xd2, 0xff, 0x5a, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x47, 0xef, 0xb8, 0x0d, 0x4f, 0xef, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x92, 0x71, 0x5a, 0x37, 0x3c, 0x78, 0xb3, 0x41, 0xea, 0x69, 0xec, 0x41, 0xa9, 0x2e, 0x5b, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x1b, 0x9c, 0x9a, 0xdb, 0x0e, 0x52, 0x98, 0xa3, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x87, 0x18, 0x88, 0x0d, 0xef, 0x05, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x0a, 0xca, 0xee, 0x83, 0x08, 0xbd, 0xb8, 0xea, 0x20, 0x3c, 0x55, 0x57, 0xf0, 0x75, 0xc3, 0x2f, 0x4a, 0x1b, 0xc4, 0x58, 0xc1, 0xd5, 0x06, 0x45, 0x9f, 0xee, 0x06, 0x89, 0xcf, 0x51, 0x1b, 0xc4, 0xf3, 0xc2, 0xd5, 0x86, 0x0f, 0x72, 0x36, 0x88, 0x5d, 0x86, 0xab, 0x0d, 0x96, 0xae, 0xa1, 0x6e, 0xf8, 0x20, 0x67, 0x83, 0x28, 0x75, 0xb8, 0x5a, 0xc3, 0x8f, 0x30, 0x03, 0x5f, 0x87, 0x1f, 0x44, 0x5e, 0x2c, 0xcf, 0x86, 0x0f, 0x72, 0x36, 0x88, 0x17, 0x89, 0xab, 0x35, 0xfc, 0x08, 0x33, 0xf0, 0x75, 0xf8, 0x41, 0x94, 0xc8, 0xf2, 0x6c, 0xf8, 0x20, 0x67, 0x83, 0x88, 0xad, 0xb8, 0x5a, 0xc3, 0x8f, 0x30, 0x03, 0x5f, 0x87, 0x1f, 0x44, 0xb4, 0x2c, 0xcf, 0x86, 0x0f, 0x72, 0x36, 0x88, 0xa6, 0x8c, 0xab, 0x35, 0xfc, 0x08, 0x33, 0xf0, 0x75, 0xf8, 0x41, 0x9c, 0xce, 0xf2, 0x1c, 0x84, 0xa7, 0xea, 0x0a, 0xbc, 0x9c, 0xbc, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x1b, 0xc4, 0xb7, 0x21, 0xd4, 0x40, 0xcb, 0x9d, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0x8c, 0x15, 0x5c, 0x6d, 0x50, 0x74, 0x1a, 0x6f, 0x50, 0x54, 0xce, 0x6f, 0x90, 0xc2, 0x1c, 0xb5, 0xe1, 0x2f, 0x9a, 0x0d, 0xca, 0x39, 0xdb, 0x0d, 0x8e, 0xae, 0x83, 0x1b, 0x1c, 0x16, 0xd8, 0x36, 0x48, 0x1b, 0x5c, 0xdd, 0xe0, 0xbc, 0x40, 0xb3, 0xe1, 0xc1, 0x9b, 0x0d, 0x52, 0x4e, 0xab, 0x36, 0x08, 0x58, 0xd6, 0x0d, 0xd2, 0x99, 0xed, 0x36, 0x38, 0x35, 0xb7, 0x6d, 0x70, 0x5a, 0x85, 0xdb, 0xe0, 0xb8, 0x3c, 0xb3, 0xc1, 0xe9, 0xfe, 0x6d, 0x83, 0xc3, 0xca, 0xdc, 0x86, 0xc7, 0x64, 0x36, 0x48, 0x79, 0xad, 0xda, 0xa0, 0xa8, 0x14, 0xdf, 0x60, 0x09, 0x87, 0xdb, 0x06, 0xc7, 0xe5, 0x99, 0x0d, 0xd2, 0x99, 0xed, 0x36, 0x28, 0x2a, 0xc5, 0x37, 0x38, 0x2f, 0xd0, 0x6c, 0x78, 0xf0, 0x66, 0x83, 0xd3, 0x2a, 0xdc, 0x06, 0x87, 0x05, 0xb6, 0x0d, 0x52, 0x5e, 0xab, 0x36, 0x48, 0x1b, 0x5c, 0xdd, 0xe0, 0x74, 0xff, 0xb6, 0xc1, 0x61, 0x65, 0x6e, 0x83, 0x25, 0x1c, 0x6e, 0x1b, 0x9c, 0x9a, 0xdb, 0x36, 0x48, 0x39, 0xad, 0xda, 0xf0, 0x98, 0xcc, 0x06, 0x01, 0xcb, 0xba, 0xc1, 0xe9, 0xfe, 0x6d, 0x83, 0xc3, 0x02, 0xdb, 0x86, 0xc7, 0x64, 0x36, 0x28, 0x2a, 0xc5, 0x37, 0x38, 0x2f, 0xd0, 0x6c, 0x90, 0x36, 0xb8, 0xba, 0xc1, 0x71, 0x79, 0x66, 0x83, 0x94, 0xd3, 0xaa, 0x0d, 0xd2, 0x99, 0xed, 0x36, 0x38, 0xac, 0xcc, 0x6d, 0xb0, 0x84, 0xc3, 0x6d, 0x83, 0x80, 0x65, 0xdd, 0x20, 0xe5, 0xb5, 0x6a, 0xc3, 0x83, 0x37, 0x1b, 0x9c, 0x9a, 0xdb, 0x36, 0x38, 0xad, 0xc2, 0x6d, 0x70, 0x58, 0x99, 0xdb, 0xe0, 0xb8, 0x3c, 0xb3, 0xc1, 0xa9, 0xb9, 0x6d, 0xc3, 0x63, 0x32, 0x1b, 0x14, 0x95, 0xe2, 0x1b, 0xa4, 0x33, 0xdb, 0x6d, 0x70, 0xba, 0x7f, 0xdb, 0xf0, 0xe0, 0xcd, 0x06, 0x87, 0x05, 0xb6, 0x0d, 0x96, 0x70, 0xb8, 0x6d, 0x10, 0xb0, 0xac, 0x1b, 0x9c, 0x56, 0xe1, 0x36, 0x48, 0x39, 0xad, 0xda, 0xe0, 0xbc, 0x40, 0xb3, 0x41, 0xca, 0x6b, 0xd5, 0x06, 0x69, 0x83, 0xab, 0x1b, 0x2c, 0xe1, 0x70, 0xdb, 0xe0, 0x74, 0xff, 0xb6, 0x41, 0xca, 0x6b, 0xd5, 0x06, 0xa7, 0xe6, 0xb6, 0x0d, 0x8f, 0xc9, 0x6c, 0x70, 0x58, 0x60, 0xdb, 0xe0, 0xb0, 0x32, 0xb7, 0xc1, 0x79, 0x81, 0x66, 0x83, 0xe3, 0xf2, 0xcc, 0x06, 0x01, 0xcb, 0xba, 0xc1, 0x69, 0x15, 0x6e, 0x83, 0xb4, 0xc1, 0xd5, 0x0d, 0x0f, 0xde, 0x6c, 0x50, 0x54, 0x8a, 0x6f, 0x90, 0x72, 0x5a, 0xb5, 0x41, 0x3a, 0xb3, 0x5d, 0x2b, 0xf0, 0x73, 0xf3, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0x65, 0xf0, 0x73, 0x73, 0x03, 0x3d, 0x77, 0xda, 0xf0, 0x8b, 0xd2, 0x06, 0x31, 0x56, 0x70, 0xb5, 0x41, 0xd1, 0x69, 0xbc, 0x41, 0x51, 0x39, 0xbf, 0x41, 0x0a, 0x73, 0xd4, 0x86, 0xbf, 0x68, 0x36, 0x28, 0xe7, 0x6c, 0x37, 0x38, 0xba, 0x0e, 0x6e, 0x70, 0x58, 0x99, 0xdb, 0x20, 0xe5, 0xb4, 0x6a, 0x83, 0x94, 0xd3, 0xaa, 0x0d, 0xd2, 0x99, 0xed, 0x36, 0x38, 0xad, 0xc2, 0x6d, 0x70, 0xba, 0x7f, 0xdb, 0xe0, 0x74, 0xff, 0xb6, 0xc1, 0x61, 0x81, 0x6d, 0x83, 0xf3, 0x02, 0xcd, 0x06, 0xe7, 0x05, 0x9a, 0x0d, 0x0e, 0x2b, 0x73, 0x1b, 0xa4, 0x33, 0xdb, 0x6d, 0x90, 0x36, 0xb8, 0xba, 0x41, 0xda, 0xe0, 0xea, 0x06, 0x4b, 0x38, 0xdc, 0x36, 0x38, 0x2e, 0xcf, 0x6c, 0x90, 0x72, 0x5a, 0xb5, 0xc1, 0x69, 0x15, 0x6e, 0x83, 0xd3, 0xfd, 0xdb, 0x06, 0xe7, 0x05, 0x9a, 0x0d, 0x96, 0x70, 0xb8, 0x6d, 0x70, 0x58, 0x99, 0xdb, 0x20, 0xe5, 0xb4, 0x6a, 0x83, 0x74, 0x66, 0xbb, 0x0d, 0xce, 0x0b, 0x34, 0x1b, 0x9c, 0x17, 0x68, 0x36, 0x58, 0xc2, 0xe1, 0xb6, 0xc1, 0x79, 0x81, 0x66, 0x83, 0xe3, 0xf2, 0xcc, 0x06, 0xa7, 0xfb, 0xb7, 0x0d, 0x4e, 0xab, 0x70, 0x1b, 0xa4, 0x33, 0xdb, 0x6d, 0x90, 0x72, 0x5a, 0xb5, 0xc1, 0x79, 0x81, 0x66, 0x83, 0xd3, 0xfd, 0xdb, 0x06, 0xe9, 0xcc, 0x76, 0x1b, 0x1c, 0x56, 0xe6, 0x36, 0x38, 0x2e, 0xcf, 0x6c, 0x70, 0x5c, 0x9e, 0xd9, 0x20, 0x6d, 0x70, 0x75, 0x83, 0x25, 0x1c, 0x6e, 0x1b, 0x9c, 0x56, 0xe1, 0x36, 0x38, 0x2c, 0xb0, 0x6d, 0x90, 0x36, 0xb8, 0xba, 0xc1, 0x69, 0x15, 0x6e, 0x83, 0xd3, 0x2a, 0xdc, 0x06, 0xe7, 0x05, 0x9a, 0x0d, 0x0e, 0x0b, 0x6c, 0x1b, 0x9c, 0xee, 0xdf, 0x36, 0x38, 0x2c, 0xb0, 0x6d, 0x70, 0x58, 0x99, 0xdb, 0x20, 0x9d, 0xd9, 0x6e, 0x83, 0xb4, 0xc1, 0xd5, 0x0d, 0xd2, 0x06, 0x57, 0x37, 0x38, 0x2e, 0xcf, 0x6c, 0x90, 0x36, 0xb8, 0xba, 0xc1, 0x71, 0x79, 0x66, 0x83, 0x94, 0xd3, 0xaa, 0x0d, 0x96, 0x70, 0xb8, 0x6d, 0x90, 0x72, 0x5a, 0xb5, 0xc1, 0x12, 0x0e, 0xb7, 0x0d, 0x0e, 0x0b, 0x6c, 0x1b, 0x9c, 0xee, 0xdf, 0x36, 0x38, 0xac, 0xcc, 0x6d, 0x70, 0x58, 0x99, 0xdb, 0xe0, 0xb0, 0xc0, 0xb6, 0xc1, 0x12, 0x0e, 0xb7, 0x0d, 0x52, 0x4e, 0xab, 0x36, 0x58, 0xc2, 0xe1, 0xb6, 0xc1, 0x61, 0x81, 0x6d, 0x83, 0xb4, 0xc1, 0xd5, 0x0d, 0x8e, 0xcb, 0x33, 0x1b, 0x1c, 0x56, 0xe6, 0x36, 0x38, 0xad, 0xc2, 0x6d, 0x70, 0x5c, 0x9e, 0xd9, 0xe0, 0xb0, 0xc0, 0xb6, 0xc1, 0xe9, 0xfe, 0x6d, 0x83, 0xd3, 0x2a, 0xdc, 0x06, 0xe9, 0xcc, 0x76, 0x07, 0xb1, 0xa2, 0x73, 0xb5, 0x82, 0xcb, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0xc6, 0x0a, 0xae, 0x36, 0x28, 0x3a, 0x8d, 0x37, 0x28, 0x2a, 0xe7, 0x37, 0x48, 0x61, 0x8e, 0xda, 0xf0, 0x17, 0xcd, 0x06, 0xe5, 0x9c, 0xed, 0x06, 0x47, 0xd7, 0xc1, 0x0d, 0x0f, 0xde, 0x6c, 0x78, 0x4c, 0x66, 0x83, 0x80, 0x65, 0xdd, 0xa0, 0xa8, 0x14, 0xdf, 0xe0, 0xd4, 0xdc, 0xb6, 0xc1, 0x61, 0x81, 0x6d, 0x83, 0xe3, 0xf2, 0xcc, 0x06, 0xe7, 0x05, 0x9a, 0x0d, 0x0e, 0x2b, 0x73, 0x1b, 0xa4, 0x9c, 0x56, 0x6d, 0x90, 0xf2, 0x5a, 0xb5, 0x41, 0x3a, 0xb3, 0xdd, 0x06, 0x4b, 0x38, 0xdc, 0x36, 0x38, 0xad, 0xc2, 0x6d, 0x90, 0x36, 0xb8, 0xba, 0xc1, 0xe9, 0xfe, 0x6d, 0x83, 0xf3, 0x02, 0xcd, 0x06, 0xa7, 0xe6, 0xb6, 0x0d, 0x4e, 0xab, 0x70, 0x1b, 0x1e, 0x93, 0xd9, 0x20, 0xe5, 0xb5, 0x6a, 0x83, 0xe3, 0xf2, 0xcc, 0x06, 0xa7, 0xfb, 0xb7, 0x0d, 0x8a, 0x4a, 0xf1, 0x0d, 0x96, 0x70, 0xb8, 0x6d, 0x78, 0xf0, 0x66, 0x83, 0x94, 0xd3, 0xaa, 0x0d, 0x0e, 0x0b, 0x6c, 0x1b, 0x04, 0x2c, 0xeb, 0x06, 0x69, 0x83, 0xab, 0x1b, 0xa4, 0x33, 0xdb, 0x6d, 0x70, 0x58, 0x99, 0xdb, 0xa0, 0xa8, 0x14, 0xdf, 0x20, 0xe5, 0xb5, 0x6a, 0x83, 0xb4, 0xc1, 0xd5, 0x0d, 0x4e, 0xcd, 0x6d, 0x1b, 0xa4, 0x9c, 0x56, 0x6d, 0x70, 0xba, 0x7f, 0xdb, 0xe0, 0xb0, 0x32, 0xb7, 0xe1, 0x31, 0x99, 0x0d, 0x02, 0x96, 0x75, 0x83, 0xf3, 0x02, 0xcd, 0x86, 0x07, 0x6f, 0x36, 0x38, 0x2e, 0xcf, 0x6c, 0x70, 0x5a, 0x85, 0xdb, 0x20, 0x9d, 0xd9, 0x6e, 0x83, 0xc3, 0x02, 0xdb, 0x06, 0x4b, 0x38, 0xdc, 0x36, 0x3c, 0x26, 0xb3, 0x41, 0xca, 0x69, 0xd5, 0x06, 0xe9, 0xcc, 0x76, 0x1b, 0xa4, 0xbc, 0x56, 0x6d, 0x78, 0xf0, 0x66, 0x83, 0xc3, 0xca, 0xdc, 0x06, 0x4b, 0x38, 0xdc, 0x36, 0x38, 0x35, 0xb7, 0x6d, 0x70, 0x5a, 0x85, 0xdb, 0xa0, 0xa8, 0x14, 0xdf, 0xe0, 0xbc, 0x40, 0xb3, 0xc1, 0xe9, 0xfe, 0x6d, 0x83, 0xb4, 0xc1, 0xd5, 0x0d, 0x0e, 0x0b, 0x6c, 0x1b, 0x1c, 0x97, 0x67, 0x36, 0x08, 0x58, 0xd6, 0x0d, 0x4e, 0xcd, 0x6d, 0x1b, 0x1e, 0xbc, 0xd9, 0xe0, 0xb0, 0xc0, 0xb6, 0x41, 0xca, 0x69, 0xd5, 0x06, 0xe7, 0x05, 0x9a, 0x0d, 0x96, 0x70, 0xb8, 0x6d, 0x10, 0xb0, 0xac, 0x1b, 0xa4, 0xbc, 0x56, 0x6d, 0x90, 0x36, 0xb8, 0xba, 0xe1, 0x31, 0x99, 0x0d, 0x8a, 0x4a, 0xf1, 0x0d, 0x0e, 0x2b, 0x73, 0x1b, 0xa4, 0x33, 0xdb, 0x6d, 0x70, 0x5c, 0x9e, 0xd9, 0xe0, 0x74, 0xff, 0x76, 0x70, 0x5a, 0xac, 0x3b, 0x9c, 0x62, 0xd5, 0x1a, 0x14, 0x85, 0xde, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0xcd, 0x29, 0x76, 0x0d, 0x0f, 0x4a, 0x6e, 0x70, 0x06, 0x7f, 0x3b, 0x88, 0x0a, 0x75, 0xab, 0x83, 0xc2, 0x49, 0x76, 0xd6, 0xa0, 0x44, 0x68, 0xd9, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x0d, 0xca, 0x4c, 0xd4, 0x01, 0xf8, 0xba, 0x7b, 0x93, 0x23, 0x03, 0x31, 0x93, 0x7b, 0x6b, 0x03, 0xc1, 0x03, 0x49, 0x73, 0x03, 0x11, 0x63, 0x7b, 0x1b, 0x5b, 0x03, 0x49, 0xdb, 0xf0, 0x8b, 0xd2, 0x06, 0x31, 0x56, 0x70, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x4f, 0xa0, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xf0, 0xd4, 0x1e, 0x44, 0x4a, 0x85, 0xd4, 0x06, 0x09, 0x8a, 0x96, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x92, 0x68, 0x76, 0x83, 0xc3, 0x02, 0xdb, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x3e, 0x05, 0x5c, 0xc3, 0xbb, 0x3d, 0x1b, 0x04, 0x4f, 0xed, 0x06, 0xc7, 0xb6, 0xb7, 0x83, 0xa3, 0xab, 0xdc, 0x41, 0x2a, 0xd0, 0xd8, 0x41, 0x41, 0x3c, 0x7e, 0x90, 0x48, 0xe9, 0xb4, 0x82, 0xcf, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0xc6, 0x0a, 0xae, 0x36, 0x28, 0x3a, 0x8d, 0x37, 0x28, 0x2a, 0xe7, 0x37, 0x48, 0x61, 0x8e, 0xda, 0xf0, 0x17, 0xcd, 0x06, 0xe5, 0x9c, 0xed, 0x06, 0x47, 0xd7, 0xc1, 0x0d, 0xd2, 0x99, 0xed, 0x36, 0x48, 0x1b, 0x5c, 0xdd, 0xe0, 0x74, 0xff, 0xb6, 0xc1, 0x12, 0x0e, 0xb7, 0x0d, 0x0e, 0x0b, 0x6c, 0x1b, 0x1c, 0x56, 0xe6, 0x36, 0x38, 0x2f, 0xd0, 0x6c, 0x90, 0x72, 0x5a, 0xb5, 0x41, 0x3a, 0xb3, 0xdd, 0x06, 0xa7, 0x55, 0xb8, 0x0d, 0xd2, 0x06, 0x57, 0x37, 0x38, 0xdd, 0xbf, 0x6d, 0x70, 0x5c, 0x9e, 0xd9, 0xe0, 0xbc, 0x40, 0xb3, 0x41, 0xca, 0x69, 0xd5, 0x06, 0x87, 0x95, 0xb9, 0x0d, 0xce, 0x0b, 0x34, 0x1b, 0x1c, 0x97, 0x67, 0x36, 0x38, 0xac, 0xcc, 0x6d, 0x70, 0x5a, 0x85, 0xdb, 0x20, 0x9d, 0xd9, 0x6e, 0x83, 0x94, 0xd3, 0xaa, 0x0d, 0xce, 0x0b, 0x34, 0x1b, 0x9c, 0xee, 0xdf, 0x36, 0x38, 0x2f, 0xd0, 0x6c, 0xb0, 0x84, 0xc3, 0x6d, 0x83, 0xd3, 0xfd, 0xdb, 0x06, 0x29, 0xa7, 0x55, 0x1b, 0xa4, 0x33, 0xdb, 0x6d, 0x70, 0x5e, 0xa0, 0xd9, 0xe0, 0xb4, 0x0a, 0xb7, 0xc1, 0x12, 0x0e, 0xb7, 0x0d, 0xd2, 0x99, 0xed, 0x36, 0x38, 0xad, 0xc2, 0x6d, 0x70, 0x5c, 0x9e, 0xd9, 0xe0, 0xbc, 0x40, 0xb3, 0x41, 0xda, 0xe0, 0xea, 0x06, 0x29, 0xa7, 0x55, 0x1b, 0x9c, 0x56, 0xe1, 0x36, 0x38, 0xdd, 0xbf, 0x6d, 0x90, 0x36, 0xb8, 0xba, 0xc1, 0x61, 0x65, 0x6e, 0x83, 0xd3, 0x2a, 0xdc, 0x06, 0xc7, 0xe5, 0x99, 0x0d, 0x0e, 0x0b, 0x6c, 0x1b, 0x2c, 0xe1, 0x70, 0xdb, 0xe0, 0xbc, 0x40, 0xb3, 0xc1, 0x61, 0x81, 0x6d, 0x83, 0x74, 0x66, 0xbb, 0x0d, 0x96, 0x70, 0xb8, 0x6d, 0x90, 0x36, 0xb8, 0xba, 0xc1, 0xe9, 0xfe, 0x6d, 0x83, 0xb4, 0xc1, 0xd5, 0x0d, 0x4e, 0xf7, 0x6f, 0x1b, 0xa4, 0x9c, 0x56, 0x6d, 0x70, 0x58, 0x99, 0xdb, 0x20, 0xe5, 0xb4, 0x6a, 0x83, 0xb4, 0xc1, 0xd5, 0x0d, 0x0e, 0x0b, 0x6c, 0x1b, 0x1c, 0x97, 0x67, 0x36, 0x38, 0xac, 0xcc, 0x6d, 0x70, 0x5c, 0x9e, 0xd9, 0xe0, 0xb0, 0xc0, 0xb6, 0xc1, 0x12, 0x0e, 0xb7, 0x0d, 0x52, 0x4e, 0xab, 0x36, 0x38, 0xdd, 0xbf, 0x6d, 0x70, 0x58, 0x60, 0xdb, 0x20, 0x9d, 0xd9, 0x6e, 0x83, 0xe3, 0xf2, 0xcc, 0x06, 0x87, 0x95, 0xb9, 0x0d, 0x4e, 0xab, 0x70, 0x1b, 0x2c, 0xe1, 0x70, 0xdb, 0xe0, 0xb0, 0xc0, 0xb6, 0xc1, 0x12, 0x0e, 0xb7, 0x0d, 0x4e, 0xab, 0x70, 0x1b, 0xa4, 0x0d, 0xae, 0x6e, 0x90, 0xce, 0x6c, 0xb7, 0xc1, 0x61, 0x65, 0x6e, 0x83, 0xc3, 0x02, 0xdb, 0xc1, 0x61, 0x79, 0xe6, 0x70, 0x8a, 0x2d, 0xf0, 0x6b, 0xeb, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0x65, 0xf0, 0x6b, 0x6b, 0x03, 0xbd, 0x76, 0xda, 0xf0, 0x8b, 0xd2, 0x06, 0x31, 0x56, 0x70, 0xb5, 0x41, 0xd1, 0xa7, 0xbb, 0x41, 0xe2, 0x73, 0xd4, 0x06, 0xf1, 0xbc, 0x70, 0xb5, 0xe1, 0x83, 0x9c, 0x0d, 0x62, 0x97, 0xe1, 0x6a, 0x0d, 0x3f, 0xc2, 0x0c, 0x7c, 0x1d, 0x7e, 0x10, 0x05, 0x10, 0x3d, 0x1b, 0x3e, 0xc8, 0xd9, 0x20, 0x4a, 0x1d, 0xae, 0xd6, 0xf0, 0x23, 0xcc, 0xc0, 0xd7, 0xe1, 0x07, 0x11, 0x0b, 0xd1, 0xb3, 0xe1, 0x83, 0x9c, 0x0d, 0xe2, 0x45, 0xe2, 0x6a, 0x0d, 0x3f, 0xc2, 0x0c, 0x7c, 0x1d, 0x7e, 0x10, 0x5d, 0x11, 0x3d, 0x1b, 0x3e, 0xc8, 0xd9, 0x20, 0x62, 0x2b, 0xae, 0xd6, 0xf0, 0x23, 0xcc, 0xc0, 0xd7, 0xe1, 0x07, 0x91, 0x20, 0xd1, 0xb3, 0xe1, 0x83, 0x9c, 0x0d, 0xa2, 0x29, 0xe3, 0x6a, 0x83, 0xa5, 0x6b, 0xa8, 0x07, 0xe1, 0xa9, 0x7a, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x87, 0x53, 0xac, 0xd6, 0x20, 0xd6, 0xc7, 0x7c, 0x36, 0x28, 0x25, 0xc4, 0xd7, 0xe0, 0x9c, 0xbf, 0xb4, 0xc1, 0x9b, 0x85, 0x4f, 0xd6, 0xf0, 0xb9, 0xcb, 0x80, 0x87, 0xd6, 0x36, 0x6e, 0x78, 0x50, 0x72, 0x83, 0xd8, 0xcd, 0xac, 0xda, 0xf0, 0xa0, 0xe4, 0x06, 0x71, 0xe2, 0x56, 0xb5, 0xe1, 0x6d, 0x9d, 0x0d, 0xe2, 0x8d, 0x00, 0xaa, 0x0d, 0x9f, 0xbb, 0x0c, 0xf0, 0x86, 0xcd, 0xb5, 0xbc, 0x8d, 0xd1, 0xcd, 0x1b, 0x1e, 0x94, 0x5c, 0xc3, 0xdb, 0x3a, 0x1b, 0xc4, 0xb2, 0xe5, 0x55, 0x1b, 0x1e, 0x94, 0x5c, 0xc3, 0xdb, 0x3a, 0x1b, 0xc4, 0xa2, 0x36, 0x52, 0x1b, 0xde, 0xd6, 0x19, 0xf0, 0xd1, 0xe8, 0xda, 0xd8, 0x36, 0x28, 0xbb, 0x64, 0x37, 0x88, 0xf5, 0x31, 0x9f, 0x0d, 0x4e, 0x2b, 0x67, 0xb3, 0x41, 0xc9, 0xc2, 0x3e, 0xcb, 0xac, 0xc1, 0x1b, 0xb2, 0xd3, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0xde, 0x90, 0x9d, 0xb6, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xd7, 0x58, 0x9d, 0x9c, 0x5d, 0x19, 0x08, 0xdc, 0x5b, 0x9a, 0x1b, 0xdd, 0x41, 0xc4, 0xe6, 0x47, 0xad, 0x06, 0x91, 0x1a, 0xdc, 0xb3, 0x41, 0xd9, 0x25, 0xbb, 0x41, 0xa4, 0x06, 0xf7, 0x6c, 0xb8, 0xa3, 0x66, 0x83, 0x92, 0x85, 0x7d, 0x96, 0x59, 0x80, 0x67, 0xac, 0x4e, 0xce, 0xae, 0xdc, 0xa0, 0x2c, 0x79, 0xdf, 0xa0, 0xa8, 0x11, 0x5f, 0xc3, 0xdb, 0x3a, 0x1b, 0xc4, 0xfa, 0x98, 0x4f, 0x1b, 0xa4, 0x9e, 0xc6, 0x1e, 0x9c, 0x9c, 0xfa, 0x56, 0x00, 0x2f, 0x38, 0xb9, 0x34, 0xbb, 0x16, 0xba, 0xb7, 0x16, 0xb8, 0x3a, 0x71, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x17, 0xfd, 0x26, 0x1f, 0x7e, 0xa8, 0xd9, 0xf0, 0x6e, 0xcf, 0x1a, 0x1e, 0x94, 0x5c, 0xc3, 0xdb, 0x3a, 0x1b, 0x44, 0x28, 0xe8, 0x55, 0x1b, 0xde, 0xd6, 0xd9, 0x20, 0x42, 0x3d, 0xaf, 0x5a, 0xc3, 0xdb, 0x3a, 0x07, 0xef, 0xf9, 0x4d, 0x6e, 0x05, 0xf0, 0x1d, 0x7b, 0x6b, 0x83, 0x93, 0x2b, 0x9b, 0x9b, 0x6b, 0x81, 0x7b, 0x4b, 0x73, 0xa3, 0x37, 0x3c, 0x28, 0xb9, 0x86, 0xb7, 0x75, 0x36, 0x88, 0x34, 0xd2, 0xab, 0x0e, 0x62, 0x6a, 0xf4, 0x6a, 0x05, 0xf8, 0xda, 0xc2, 0xd6, 0xca, 0x5a, 0xd6, 0x0d, 0x8f, 0x8f, 0x6c, 0x10, 0xfa, 0x25, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x37, 0x83, 0x7c, 0x1e, 0xbc, 0xf7, 0x2b, 0x64, 0x83, 0x38, 0x0d, 0xbd, 0x6a, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x50, 0x72, 0x0d, 0x6f, 0xeb, 0x6c, 0x10, 0x79, 0xa6, 0x57, 0x1d, 0xc4, 0xd4, 0xe8, 0xd5, 0x06, 0xaf, 0x33, 0xaf, 0x3e, 0x88, 0xec, 0xd1, 0xab, 0x15, 0xc0, 0x27, 0x8c, 0x8c, 0xac, 0x05, 0xee, 0x2d, 0xcd, 0x8d, 0x6e, 0xde, 0xf0, 0xa0, 0xe4, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0x9a, 0x55, 0xaf, 0x3a, 0x88, 0xa9, 0xd1, 0xab, 0xc3, 0x29, 0xd6, 0x02, 0xf0, 0x50, 0x36, 0x46, 0x36, 0x17, 0xd6, 0x22, 0x17, 0x76, 0xd7, 0x22, 0x57, 0x36, 0xf6, 0x66, 0x57, 0x26, 0x6f, 0x78, 0x7c, 0x64, 0x83, 0x78, 0x2a, 0xea, 0xd9, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0xbc, 0x19, 0xe4, 0xf3, 0xf0, 0x43, 0xcd, 0x1a, 0xfe, 0x5c, 0xda, 0x20, 0x31, 0xf1, 0x68, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x70, 0xfb, 0xf0, 0x43, 0xcd, 0x41, 0x5c, 0x1b, 0x4d, 0xb5, 0xe1, 0x2f, 0x9a, 0x0d, 0x1e, 0x27, 0x98, 0xb9, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0xf1, 0xbb, 0x86, 0xb7, 0x75, 0x06, 0xb7, 0x0f, 0x92, 0x6f, 0x8f, 0x0e, 0x0a, 0x4a, 0xf1, 0x0d, 0x0a, 0xd2, 0xd8, 0xc1, 0xc7, 0x0d, 0x62, 0x6a, 0xf4, 0x6a, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0x7c, 0xec, 0xc2, 0xd8, 0xd2, 0xc8, 0x5a, 0xd0, 0xc2, 0xe6, 0xd0, 0xc3, 0x3f, 0x3c, 0x1b, 0xbc, 0xce, 0xbc, 0xba, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0xf8, 0xd3, 0xdc, 0x5a, 0xde, 0xe4, 0xc8, 0xca, 0xe4, 0xc3, 0x3f, 0x3c, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0xf9, 0x20, 0xf9, 0xf6, 0xa8, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x3c, 0xd9, 0x5e, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xe7, 0x83, 0xe4, 0xdb, 0xa3, 0x36, 0x28, 0x48, 0x63, 0x07, 0xc7, 0xd7, 0xf0, 0x41, 0xce, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x0d, 0x5b, 0x69, 0x83, 0xf8, 0x92, 0xbd, 0x3a, 0x08, 0x56, 0xd6, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x4f, 0xa0, 0x0d, 0xe2, 0xea, 0xf6, 0x6a, 0x0d, 0x6f, 0xeb, 0x0c, 0xee, 0x0e, 0xf0, 0x91, 0xbd, 0xb5, 0x85, 0xa5, 0xb9, 0x87, 0x7f, 0x78, 0x3a, 0x88, 0xab, 0xdb, 0xab, 0x0d, 0x0a, 0xd2, 0xd8, 0x01, 0xcf, 0xec, 0x0d, 0x5e, 0xc3, 0xdb, 0x3a, 0x03, 0xbc, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2d, 0xf0, 0xe1, 0x1f, 0x9e, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x35, 0x4c, 0xdc, 0x80, 0x6f, 0x16, 0x46, 0x46, 0x6e, 0x98, 0xb8, 0x01, 0xdf, 0xac, 0xad, 0x8e, 0x0d, 0x7c, 0x33, 0xb8, 0xb7, 0x7b, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x72, 0x12, 0x7b, 0xc0, 0x33, 0x7b, 0x83, 0x5b, 0xc3, 0xdb, 0x3a, 0x1b, 0xa4, 0x68, 0x1a, 0x1f, 0x44, 0x3f, 0xf0, 0xd5, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0xad, 0x26, 0xe9, 0x20, 0xfa, 0x81, 0xaf, 0xda, 0xa0, 0x20, 0x8d, 0x1d, 0xf0, 0xf2, 0xe6, 0xe2, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x88, 0x91, 0xdf, 0xab, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0xf2, 0x7f, 0xaf, 0xda, 0xa0, 0xa8, 0x14, 0x3f, 0x48, 0xa4, 0x74, 0x5a, 0xc3, 0xdb, 0x3a, 0x83, 0x8b, 0x07, 0x71, 0xc0, 0x7b, 0xd5, 0x06, 0x05, 0x69, 0xec, 0x80, 0x2f, 0x56, 0x46, 0x17, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x62, 0x8c, 0xf8, 0x6a, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0xe2, 0xe3, 0x6e, 0x70, 0x60, 0x27, 0x59, 0xc3, 0xc7, 0x51, 0x1b, 0xde, 0xd6, 0x19, 0x1c, 0x3e, 0x88, 0x03, 0xde, 0xab, 0xd6, 0xf0, 0xb6, 0xce, 0x80, 0x97, 0x37, 0x17, 0xd7, 0x06, 0x05, 0x69, 0xec, 0xe0, 0xf9, 0x1a, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x22, 0x13, 0x77, 0xc3, 0x83, 0x37, 0x1b, 0xc4, 0x97, 0xec, 0x55, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xc8, 0xc4, 0xdd, 0xf0, 0xe0, 0xcd, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0xa6, 0x8c, 0xaf, 0x6a, 0x83, 0x98, 0x5e, 0xbe, 0xda, 0xf0, 0x6e, 0xcf, 0x86, 0x4f, 0x01, 0x37, 0x88, 0x11, 0xe4, 0xab, 0x83, 0x78, 0x5e, 0xbe, 0xda, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0x1e, 0xbc, 0xd9, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0xcc, 0x09, 0x38, 0x88, 0x7e, 0xe0, 0xab, 0x0d, 0x22, 0x19, 0xf9, 0x6a, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0xa2, 0xf4, 0xf7, 0xaa, 0x0d, 0x52, 0xac, 0x9d, 0x0e, 0xd2, 0xab, 0x9d, 0xda, 0xa0, 0x20, 0x8d, 0x1d, 0x78, 0x37, 0x7d, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x14, 0x70, 0x83, 0x88, 0xdd, 0xbd, 0x3a, 0x88, 0xc1, 0xda, 0xab, 0x0d, 0x0a, 0xd2, 0xd8, 0xc1, 0xd5, 0x35, 0xbc, 0xad, 0x33, 0xf0, 0x6a, 0xe3, 0xe1, 0x1f, 0x9e, 0x0d, 0x0a, 0xd2, 0xd8, 0x81, 0x3f, 0xd3, 0xd7, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0x90, 0x38, 0x3a, 0x48, 0x7c, 0x8e, 0x5a, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x12, 0xd4, 0xeb, 0x20, 0xf1, 0x39, 0x6a, 0x0d, 0x6f, 0xeb, 0x0c, 0x7e, 0x1e, 0xc4, 0x01, 0xef, 0x55, 0x6b, 0x78, 0x5b, 0x67, 0xe0, 0xdd, 0xf4, 0xda, 0xa0, 0x20, 0x8d, 0x1d, 0x78, 0xbc, 0x7c, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x13, 0xd4, 0x57, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xb8, 0xa7, 0xbe, 0x3a, 0x88, 0x1b, 0xfe, 0xa8, 0x83, 0xb8, 0xc5, 0xbd, 0xda, 0xa0, 0x20, 0x8d, 0x1d, 0xf8, 0x38, 0x79, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0xe9, 0xc3, 0x83, 0xc4, 0xe7, 0xa8, 0x35, 0xbc, 0xad, 0x33, 0xf0, 0x67, 0x7a, 0x6b, 0x78, 0x5b, 0x67, 0xe0, 0xf1, 0xf2, 0xda, 0xa0, 0x20, 0x8d, 0x1d, 0xf8, 0x38, 0x75, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x13, 0xd4, 0x57, 0x1b, 0xc4, 0x77, 0x22, 0xd4, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0x83, 0x92, 0x1b, 0xa4, 0x4d, 0xe4, 0x6e, 0x78, 0x5b, 0x67, 0x80, 0xd7, 0x2c, 0xad, 0x8c, 0x8d, 0xac, 0xc5, 0x3d, 0xfc, 0xc3, 0x73, 0x90, 0x48, 0xe9, 0xd4, 0x06, 0x05, 0x69, 0xec, 0x80, 0x07, 0x57, 0x27, 0xae, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0xeb, 0x8c, 0x5c, 0x0e, 0x12, 0x9f, 0xa3, 0xd6, 0xf0, 0xb6, 0xce, 0xc0, 0xc7, 0xa9, 0xb5, 0xe1, 0xdd, 0xbc, 0x35, 0xfc, 0x9b, 0xb3, 0xc1, 0xa1, 0x76, 0xef, 0x20, 0x6e, 0x7b, 0xaa, 0x0e, 0xe2, 0xb6, 0xa7, 0xea, 0x70, 0x8a, 0x2d, 0x80, 0xf7, 0x5c, 0x99, 0x5c, 0x5a, 0x18, 0x5b, 0x9a, 0x5e, 0x59, 0x0b, 0xdc, 0x5b, 0x9a, 0x1b, 0xbd, 0xe1, 0x41, 0xc9, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xfc, 0x86, 0x5f, 0x75, 0x10, 0x53, 0xa3, 0x57, 0xb3, 0x00, 0xbe, 0x65, 0x63, 0x64, 0x73, 0x61, 0x2d, 0x72, 0x61, 0x77, 0x2d, 0x73, 0x69, 0x67, 0xee, 0x86, 0xc7, 0x47, 0x36, 0x78, 0x55, 0x9a, 0xe2, 0x86, 0x5f, 0x94, 0x36, 0x88, 0xce, 0xd3, 0xab, 0x0d, 0x7f, 0xd1, 0x6c, 0x10, 0x1d, 0xb0, 0x57, 0x1b, 0x14, 0xa4, 0xb1, 0x83, 0x8f, 0x1b, 0xc4, 0xd4, 0xe8, 0xd5, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0xc6, 0xc7, 0xaf, 0x0e, 0xff, 0xf0, 0x1c, 0xc4, 0x8b, 0xea, 0xd5, 0x06, 0x05, 0x69, 0xec, 0x1a, 0xbe, 0x6f, 0x1f, 0x78, 0x39, 0x78, 0x83, 0x12, 0x3a, 0x76, 0x83, 0xc7, 0x09, 0x66, 0x1e, 0x84, 0xe9, 0xd8, 0x1a, 0x7e, 0x71, 0xd9, 0xe0, 0xf8, 0xc9, 0x77, 0x90, 0x5e, 0xed, 0xb4, 0x41, 0x41, 0x1a, 0x3b, 0xc0, 0x37, 0xd7, 0x82, 0x96, 0x76, 0x86, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0xd2, 0xb0, 0x95, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xc1, 0x53, 0xbb, 0x41, 0xc0, 0xb2, 0x1e, 0x9c, 0xe4, 0xf9, 0x0e, 0xa2, 0x75, 0xf7, 0x6a, 0x83, 0xe3, 0xd8, 0xc4, 0x06, 0xe7, 0x76, 0xbe, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xbc, 0xab, 0x5f, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0x0a, 0xb8, 0x41, 0xc4, 0xee, 0x5e, 0x1d, 0x9c, 0xe4, 0xf9, 0x36, 0x38, 0x8e, 0x4d, 0x2c, 0xf0, 0x72, 0x70, 0x1b, 0x44, 0x69, 0xfb, 0xd5, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0xdb, 0x3a, 0x83, 0xe3, 0x07, 0xb1, 0xf6, 0x7e, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0x0a, 0xb8, 0x41, 0x8c, 0x20, 0x5f, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xf3, 0x83, 0x58, 0x7b, 0xbf, 0xaa, 0x0d, 0x0a, 0xd2, 0xd8, 0xc1, 0xed, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x91, 0x89, 0xbb, 0xe1, 0xc1, 0x9b, 0x83, 0x38, 0x8c, 0xbf, 0xda, 0xe0, 0x38, 0x36, 0xb1, 0xc1, 0xa1, 0xb5, 0x65, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x86, 0xad, 0xb4, 0x41, 0xb4, 0xc0, 0x5f, 0x1d, 0x44, 0xeb, 0xee, 0xd5, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0x27, 0xd0, 0x06, 0xa9, 0x42, 0x51, 0x07, 0xc1, 0xca, 0xba, 0xe1, 0x17, 0x97, 0x0d, 0x52, 0x85, 0xa2, 0x36, 0x88, 0x16, 0xf8, 0xab, 0x83, 0x93, 0x3c, 0xdf, 0xe1, 0x14, 0x5b, 0x00, 0xff, 0xb6, 0x3a, 0xb6, 0x16, 0xb8, 0xb7, 0x34, 0x37, 0xba, 0x96, 0xb9, 0xb1, 0x30, 0xb6, 0x30, 0x79, 0xc3, 0x83, 0x92, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x08, 0xba, 0xbf, 0xea, 0x20, 0xa6, 0x46, 0xaf, 0x66, 0x0d, 0x62, 0xe3, 0xb6, 0x67, 0x83, 0xb2, 0x4b, 0x76, 0x83, 0xd8, 0xb8, 0xed, 0x59, 0xc3, 0x25, 0xb5, 0xc6, 0xe3, 0x0d, 0x62, 0xe3, 0xb6, 0xa7, 0x66, 0x83, 0x52, 0x42, 0x7c, 0x0d, 0x4a, 0x16, 0xf6, 0x59, 0x66, 0x01, 0xbc, 0xe8, 0xc2, 0xce, 0xce, 0xca, 0xc8, 0x5a, 0xd0, 0xc2, 0xe6, 0xd0, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0xd6, 0x17, 0x1d, 0xaf, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0x38, 0x7b, 0xf8, 0xa1, 0x66, 0x83, 0x18, 0x84, 0x71, 0xaa, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x01, 0x0f, 0x2d, 0x8c, 0xde, 0xf0, 0x6e, 0xcf, 0x1a, 0x1e, 0x94, 0x5c, 0xc3, 0xdb, 0x3a, 0x07, 0xa9, 0x7a, 0xbd, 0x07, 0x31, 0x42, 0x56, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x28, 0xb5, 0x8e, 0x0f, 0x96, 0x8e, 0x04, 0xb7, 0xc1, 0x89, 0xfd, 0x66, 0x0d, 0x0f, 0x4a, 0x6e, 0x10, 0x09, 0x92, 0x55, 0x07, 0x31, 0x42, 0x56, 0xb5, 0x41, 0x61, 0xa8, 0xba, 0x86, 0x77, 0x7b, 0x36, 0xfc, 0x09, 0xb4, 0x41, 0x0a, 0x74, 0xea, 0x41, 0x42, 0x88, 0xed, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x8b, 0xa3, 0x37, 0x28, 0x2a, 0xc5, 0xd7, 0xe0, 0xe8, 0x3a, 0xb8, 0x86, 0x5f, 0x5c, 0x36, 0x48, 0x79, 0xbb, 0x3a, 0x48, 0xa4, 0x74, 0x5a, 0xc3, 0x2f, 0x2e, 0x1b, 0xa4, 0x9e, 0xc6, 0xae, 0xe1, 0x6d, 0x9d, 0x01, 0x0f, 0x2d, 0x8c, 0xae, 0x0d, 0xa2, 0x9d, 0x00, 0xab, 0x66, 0x01, 0x3e, 0xb6, 0x34, 0x33, 0xba, 0x16, 0x7c, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x70, 0xfc, 0x20, 0x66, 0xe8, 0xa5, 0x36, 0xfc, 0x45, 0xb3, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0xd9, 0x84, 0xb9, 0xc1, 0xe3, 0x04, 0x33, 0xdb, 0xa0, 0x20, 0x8d, 0x1d, 0x7c, 0xdc, 0x20, 0xa6, 0x46, 0xaf, 0x36, 0x28, 0x76, 0x34, 0xd7, 0xf0, 0x6e, 0xcf, 0x86, 0x2f, 0xce, 0x36, 0x48, 0xa6, 0x74, 0xda, 0x20, 0x46, 0x90, 0xaf, 0xda, 0xa0, 0xa0, 0xc8, 0xdc, 0xa0, 0x20, 0x8d, 0x1d, 0xf0, 0xcc, 0xde, 0xe0, 0x0d, 0xa2, 0xb1, 0xf7, 0x6a, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x0d, 0x13, 0xb7, 0x41, 0x8c, 0xfc, 0x5e, 0x1d, 0x44, 0xfe, 0xef, 0xd5, 0x86, 0x5f, 0x5c, 0x36, 0x88, 0x43, 0xe0, 0xab, 0x83, 0x78, 0x10, 0xbe, 0xda, 0xa0, 0x20, 0x8d, 0x1d, 0xf8, 0x31, 0x78, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x9f, 0xc3, 0x57, 0x1b, 0x44, 0x0a, 0xf1, 0xd5, 0xc1, 0x69, 0x81, 0x66, 0x83, 0x82, 0x34, 0x76, 0xf0, 0x7c, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x63, 0xc4, 0x57, 0x1b, 0x44, 0xcc, 0xf1, 0xd5, 0x1a, 0xde, 0xd6, 0x19, 0xf8, 0x31, 0xb8, 0x36, 0x28, 0x76, 0x34, 0xd7, 0xf0, 0x6f, 0xce, 0x06, 0x31, 0x06, 0x81, 0xb5, 0xe1, 0xdd, 0x9e, 0x0d, 0x62, 0x8c, 0xf8, 0x6a, 0x83, 0x80, 0x65, 0x3d, 0x48, 0xaf, 0x76, 0xda, 0xa0, 0xa0, 0xc8, 0xdc, 0xe0, 0xc4, 0x7e, 0xb3, 0xc1, 0x59, 0x0a, 0x6c, 0x83, 0xc2, 0x50, 0x75, 0x83, 0x64, 0x4a, 0xa7, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x0d, 0x0f, 0xde, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0xb0, 0xbb, 0xdd, 0x20, 0xc5, 0xda, 0xe9, 0x20, 0x58, 0x59, 0x37, 0x48, 0xb1, 0x76, 0xda, 0xf0, 0x6e, 0xcf, 0x86, 0x4f, 0x01, 0x37, 0x88, 0x11, 0xe4, 0xab, 0x83, 0xf4, 0x6a, 0xa7, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x36, 0x28, 0x59, 0xd8, 0x67, 0x99, 0x05, 0xf8, 0xec, 0xca, 0xe4, 0xd2, 0xcc, 0xf2, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x48, 0xbb, 0xc0, 0x6a, 0x00, 0xdf, 0xb9, 0x31, 0x34, 0xb7, 0x37, 0x39, 0x39, 0x10, 0xbb, 0x32, 0xb9, 0x34, 0xb3, 0xbc, 0x0d, 0x8f, 0x8f, 0x6c, 0x10, 0x07, 0x90, 0x3d, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xe0, 0xe1, 0xd6, 0x83, 0x98, 0xa1, 0x97, 0x5a, 0xc3, 0x9f, 0x4b, 0x83, 0xb7, 0x07, 0x31, 0x43, 0x2f, 0xb5, 0x86, 0x3f, 0x97, 0x36, 0x48, 0x4c, 0x3c, 0x3a, 0x88, 0x8e, 0x21, 0xaa, 0x36, 0xfc, 0x45, 0xb3, 0xe1, 0x83, 0xd5, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x1a, 0xb6, 0xd2, 0x06, 0xa9, 0xa7, 0xb1, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xa2, 0xf8, 0x77, 0x83, 0xa2, 0x52, 0x7c, 0x0d, 0x6f, 0xeb, 0x0c, 0x3c, 0xdc, 0x5a, 0x6d, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0xd2, 0xb0, 0x95, 0x36, 0x48, 0x3d, 0x8d, 0xdd, 0x20, 0x5e, 0xcf, 0xaa, 0xda, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0x61, 0x2b, 0x6d, 0x90, 0x02, 0x9d, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x8a, 0x7f, 0x37, 0x28, 0x2a, 0xc5, 0x0f, 0x96, 0x3f, 0xb1, 0xb6, 0x41, 0x41, 0x1a, 0x3b, 0xf8, 0xb8, 0x41, 0x4c, 0x8d, 0x5e, 0x6d, 0x50, 0x90, 0xc6, 0x0e, 0x78, 0x70, 0x75, 0xf0, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x44, 0x95, 0x01, 0x56, 0x07, 0xd1, 0xf1, 0x81, 0xb5, 0x41, 0x09, 0x8f, 0xb9, 0x80, 0x07, 0x57, 0x07, 0xb7, 0xc1, 0x32, 0x27, 0xd9, 0x0d, 0x0a, 0xd2, 0xd8, 0x81, 0x87, 0x83, 0xd7, 0xf0, 0xb6, 0xce, 0xe0, 0xf5, 0x41, 0xbc, 0x95, 0x60, 0x6d, 0x50, 0x90, 0xc6, 0x0e, 0x2e, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0xa2, 0xd9, 0x0d, 0x0e, 0x2b, 0x73, 0x1b, 0x94, 0x42, 0xe4, 0x07, 0xcb, 0x9f, 0x58, 0x37, 0x7c, 0x90, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x48, 0xc3, 0x56, 0xda, 0xe0, 0xf8, 0xc9, 0x77, 0x10, 0x49, 0x0a, 0x58, 0x1b, 0x2c, 0x73, 0x92, 0xdd, 0xa0, 0x20, 0x8d, 0x1d, 0x7c, 0x5e, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0x99, 0xb8, 0x1b, 0x1c, 0x56, 0xe6, 0x0e, 0x96, 0x3f, 0xb1, 0x6e, 0xf8, 0x20, 0x67, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x86, 0xad, 0xb4, 0xc1, 0xe1, 0x9c, 0xef, 0x20, 0x5a, 0x77, 0xaf, 0x36, 0x58, 0xe6, 0x24, 0xbb, 0x41, 0x41, 0x1a, 0x3b, 0x78, 0xb9, 0x06, 0x27, 0xf6, 0x9b, 0x0d, 0xc2, 0xee, 0x76, 0x83, 0x25, 0xd5, 0x49, 0x1b, 0x44, 0xec, 0xee, 0xd5, 0x06, 0x45, 0xa7, 0xf1, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0x4a, 0xf7, 0xaf, 0x5a, 0xc3, 0x8f, 0x30, 0x83, 0xd3, 0x07, 0x11, 0x0e, 0xd8, 0xb3, 0x41, 0x61, 0xa8, 0xba, 0x86, 0x1f, 0x61, 0x36, 0xd4, 0xfc, 0x70, 0x70, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0xdb, 0xca, 0x1b, 0x1c, 0x56, 0xe6, 0xd6, 0xe0, 0xe8, 0x3a, 0xb8, 0xc1, 0x21, 0x74, 0x62, 0x0d, 0x6f, 0xeb, 0x0c, 0x8e, 0x0f, 0x3c, 0x1c, 0xdc, 0xc1, 0xa1, 0xaf, 0xaf, 0x0d, 0x0a, 0xd2, 0xd8, 0x81, 0x0f, 0x0b, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x71, 0x89, 0x7f, 0xb5, 0x41, 0xc4, 0x56, 0x5f, 0x1d, 0x9c, 0xe4, 0xf9, 0x36, 0x28, 0x48, 0x63, 0x07, 0x5e, 0x4c, 0x5c, 0xc3, 0xbb, 0x3d, 0x1b, 0xc4, 0x25, 0xfe, 0xd5, 0x1a, 0xde, 0xd6, 0x39, 0x88, 0x2b, 0x19, 0xac, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x53, 0xc0, 0x0d, 0x22, 0x76, 0xf7, 0xea, 0xa0, 0xcc, 0x96, 0x6e, 0xc3, 0x07, 0x39, 0x6b, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xa0, 0x91, 0xe6, 0x66, 0x96, 0xe6, 0x96, 0x46, 0x57, 0xf6, 0xdb, 0xf0, 0x08, 0xeb, 0x1a, 0xfe, 0xcd, 0x59, 0xc3, 0xdb, 0x3a, 0x83, 0xe3, 0x07, 0xef, 0x2d, 0x30, 0xdc, 0xf0, 0xb6, 0xce, 0xe0, 0xf8, 0xc1, 0x43, 0x06, 0x0c, 0xd7, 0xf0, 0x36, 0xeb, 0x86, 0x7f, 0x73, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf9, 0xc1, 0x7b, 0x0b, 0x0c, 0x37, 0xbc, 0xad, 0x33, 0x78, 0x7e, 0xf0, 0x90, 0x01, 0xc3, 0x36, 0x58, 0xe6, 0x24, 0xbb, 0x41, 0x41, 0x1a, 0x3b, 0xf0, 0x72, 0xf2, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x86, 0x57, 0xaf, 0x36, 0x88, 0x8c, 0x76, 0xab, 0x83, 0xd8, 0x77, 0xb7, 0xda, 0xa0, 0xd8, 0xd1, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0x1e, 0xbc, 0xd9, 0xf0, 0x6e, 0xcf, 0x06, 0x61, 0x77, 0xbb, 0x86, 0xb7, 0x75, 0x06, 0xcf, 0x0f, 0x22, 0x28, 0x15, 0xea, 0x20, 0x58, 0x59, 0x37, 0x58, 0xe6, 0x24, 0xbb, 0xe1, 0xdf, 0x9c, 0x0d, 0x8e, 0x9f, 0x7c, 0x1b, 0xde, 0xd6, 0x19, 0x1c, 0x3f, 0x88, 0xa0, 0x54, 0xa8, 0x59, 0x83, 0x57, 0xa5, 0x29, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xbc, 0x2a, 0x4d, 0xb1, 0x01, 0x78, 0x98, 0x1b, 0x43, 0x73, 0x7b, 0x93, 0x93, 0x03, 0x99, 0x4b, 0x3b, 0x73, 0x0b, 0xa3, 0xab, 0x93, 0x2b, 0xdb, 0xf0, 0xf8, 0xc8, 0x06, 0x11, 0x60, 0xdb, 0xb3, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x7e, 0x6e, 0x3d, 0x88, 0x19, 0x7a, 0xa9, 0x0d, 0xa2, 0x71, 0x03, 0x6b, 0x83, 0x08, 0xf9, 0x9c, 0x6a, 0xc3, 0x5f, 0x34, 0x1b, 0x44, 0xc7, 0x10, 0xd5, 0x06, 0x05, 0x1f, 0xe6, 0x06, 0xb1, 0xfd, 0x81, 0xb5, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x77, 0x7b, 0x36, 0x48, 0xc3, 0x56, 0xda, 0x20, 0xf5, 0x34, 0xf6, 0x60, 0x49, 0x4e, 0xea, 0x06, 0x05, 0x69, 0xec, 0xe0, 0xe3, 0x06, 0x31, 0x35, 0x7a, 0xb5, 0xe1, 0xdd, 0xbc, 0x35, 0xfc, 0x4a, 0xb6, 0x86, 0x7f, 0x73, 0x36, 0x3c, 0x78, 0xb3, 0xe1, 0x6d, 0x9d, 0x81, 0x9f, 0x5b, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0x61, 0x2b, 0x6d, 0x10, 0x5b, 0x49, 0x58, 0x07, 0xd1, 0xba, 0x7b, 0xd5, 0x06, 0x05, 0x69, 0xec, 0xc0, 0xc3, 0xc1, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xb8, 0xc4, 0xbf, 0xda, 0x20, 0x62, 0xab, 0xaf, 0x36, 0x88, 0xad, 0x24, 0xac, 0x36, 0x28, 0x48, 0x63, 0x07, 0x27, 0xd7, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0xf0, 0xe0, 0xcd, 0x86, 0x77, 0x7b, 0x36, 0x08, 0xbb, 0xdb, 0x35, 0xbc, 0xad, 0x33, 0x78, 0x7e, 0x10, 0x57, 0x32, 0x58, 0x07, 0xc1, 0xca, 0xba, 0x41, 0x6c, 0x25, 0x61, 0x6d, 0x78, 0xb7, 0x67, 0xc3, 0xa7, 0x80, 0x1b, 0x44, 0xec, 0xee, 0xd5, 0x41, 0x94, 0x30, 0x61, 0x6d, 0x50, 0x90, 0xc6, 0x0e, 0x4e, 0xaf, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0x21, 0x06, 0x62, 0x83, 0x72, 0x5d, 0x76, 0xc3, 0xbb, 0x3d, 0x1b, 0xc4, 0xb4, 0x0b, 0xd6, 0x1a, 0x7e, 0x84, 0x19, 0x9c, 0x3e, 0x88, 0x2b, 0xce, 0x9e, 0x35, 0xfc, 0xe2, 0x72, 0xb0, 0xce, 0xd9, 0xad, 0x0d, 0x0a, 0xd2, 0xd8, 0x0d, 0x9e, 0x99, 0x6c, 0xb7, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x31, 0xed, 0x82, 0xb5, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x0f, 0xe2, 0xe6, 0xb3, 0x67, 0x83, 0xc2, 0x50, 0x75, 0x83, 0xf8, 0x81, 0xc1, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0xc5, 0xb6, 0xf2, 0x06, 0x87, 0x95, 0xb9, 0x35, 0x38, 0xba, 0x0e, 0x6e, 0x70, 0x08, 0x9d, 0xd8, 0x20, 0x02, 0x64, 0xb0, 0x0e, 0x4e, 0x4e, 0x7d, 0x6d, 0x50, 0x90, 0xc6, 0x0e, 0xfc, 0x1a, 0xbc, 0x86, 0x77, 0x7b, 0x36, 0x08, 0xbb, 0xdb, 0x0d, 0x5e, 0x92, 0x6c, 0x77, 0x10, 0xad, 0xbb, 0x57, 0x1b, 0xde, 0xcd, 0x5b, 0xc3, 0xbf, 0x39, 0x1b, 0x1e, 0xbc, 0xd9, 0xf0, 0xb6, 0xce, 0xc0, 0xaf, 0xc1, 0x6d, 0x50, 0x90, 0xc6, 0x0e, 0xbc, 0x9c, 0xbc, 0x86, 0x77, 0x7b, 0x36, 0x88, 0x4b, 0xfc, 0xab, 0x0d, 0x22, 0xb6, 0xfa, 0x6a, 0x83, 0xc8, 0xc8, 0xc2, 0x6a, 0x83, 0x82, 0x34, 0x76, 0xf0, 0x75, 0x0d, 0x1f, 0xe4, 0x6c, 0x10, 0x9d, 0x3d, 0x58, 0x1b, 0x44, 0x46, 0x16, 0xd6, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0x0a, 0xb8, 0x41, 0xc4, 0xee, 0x5e, 0x1d, 0x44, 0xb3, 0x16, 0xd6, 0x06, 0x05, 0x69, 0xec, 0xe0, 0xe5, 0x1a, 0x9c, 0xd8, 0x6f, 0x36, 0x08, 0xbb, 0xdb, 0x0d, 0x96, 0x54, 0x27, 0x6d, 0x10, 0xb1, 0xbb, 0x57, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0xc4, 0xb4, 0x0b, 0xd6, 0x06, 0xd1, 0xf5, 0x82, 0xb5, 0x41, 0x61, 0xa8, 0xba, 0x41, 0xfc, 0xc0, 0x60, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x62, 0x5b, 0x79, 0x83, 0xc3, 0xca, 0xdc, 0x1a, 0x1c, 0x5d, 0x07, 0x37, 0x38, 0x84, 0x4e, 0x6c, 0x10, 0x01, 0x32, 0x58, 0x1b, 0xc4, 0x04, 0x10, 0x56, 0x6d, 0x50, 0x90, 0xc6, 0x6e, 0x90, 0x98, 0x78, 0xb4, 0x06, 0xab, 0x7a, 0x95, 0x36, 0x28, 0xeb, 0x6d, 0x37, 0x38, 0xac, 0xcc, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0xc2, 0xee, 0x76, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x13, 0x68, 0x83, 0x34, 0xef, 0xaa, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xf0, 0xd4, 0x6e, 0x50, 0x4e, 0x40, 0x1f, 0x94, 0xea, 0xb2, 0x1d, 0x44, 0xeb, 0xee, 0xd5, 0x41, 0x4c, 0x00, 0x61, 0x6d, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xa4, 0x5d, 0x60, 0xb5, 0x41, 0x04, 0xc8, 0x60, 0x6d, 0x70, 0x08, 0x9d, 0x38, 0x58, 0xfe, 0xc4, 0x7a, 0x90, 0x46, 0x7b, 0x74, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0x0a, 0x4e, 0x6f, 0xf8, 0x8b, 0x66, 0x0d, 0xff, 0xce, 0xaf, 0x41, 0x2c, 0xf0, 0x5e, 0xd5, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x23, 0xcc, 0xc0, 0xd7, 0xe1, 0x07, 0x11, 0x80, 0xdb, 0xb3, 0xe1, 0xc1, 0x9b, 0x0d, 0xce, 0x0b, 0x34, 0x6b, 0x50, 0x18, 0xaa, 0xae, 0xe1, 0x47, 0x98, 0x81, 0xaf, 0xc3, 0x0f, 0x62, 0x49, 0xb7, 0x67, 0xc3, 0x8f, 0x30, 0x03, 0x5f, 0x87, 0x1f, 0xc4, 0x1a, 0x6f, 0xcf, 0x1a, 0x7e, 0x84, 0x19, 0xf8, 0x3a, 0xfc, 0x20, 0x16, 0x7d, 0x7b, 0x3a, 0x9c, 0x62, 0x0b, 0xe0, 0x4f, 0x56, 0x36, 0xf6, 0xd6, 0x06, 0x27, 0x57, 0x36, 0x37, 0xd7, 0x02, 0xf7, 0x96, 0xe6, 0x46, 0x6f, 0x78, 0x50, 0x72, 0x0d, 0x6f, 0xeb, 0x6c, 0x10, 0x5b, 0x6d, 0x58, 0x1d, 0xc4, 0xd4, 0xe8, 0xd5, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x2b, 0xc0, 0xaf, 0x16, 0x36, 0xf6, 0x26, 0x96, 0x16, 0xe6, 0x6e, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xc4, 0xf7, 0x1b, 0xd6, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xbe, 0x6a, 0x61, 0x63, 0x6f, 0x62, 0x69, 0x61, 0x6e, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x1b, 0x3e, 0x57, 0xda, 0x20, 0x06, 0x61, 0x9c, 0x36, 0x88, 0x1b, 0xfd, 0xa8, 0x83, 0x58, 0x88, 0x71, 0x3a, 0x9c, 0x62, 0x6b, 0x10, 0xeb, 0x63, 0x3e, 0x1b, 0x94, 0x65, 0xd8, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0xf0, 0x88, 0xe5, 0xd1, 0x95, 0xcd, 0x87, 0x1f, 0x6a, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0xb1, 0xc0, 0x7b, 0x75, 0x10, 0xd1, 0x68, 0x58, 0xcd, 0x32, 0x6b, 0x10, 0x41, 0xf7, 0x57, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x70, 0xf8, 0xe0, 0x71, 0x82, 0x99, 0x6b, 0xf8, 0x73, 0x69, 0x80, 0x6f, 0x6e, 0x2c, 0x8c, 0x2d, 0x4c, 0x3e, 0xfc, 0x50, 0xd3, 0x86, 0xbf, 0x68, 0x36, 0x78, 0x9c, 0x60, 0xe6, 0x06, 0x05, 0x69, 0xec, 0xe0, 0xea, 0x1a, 0xde, 0xd6, 0x19, 0x78, 0xb5, 0xb1, 0x0d, 0x4e, 0xec, 0x37, 0x1b, 0x44, 0xc5, 0xf7, 0xd5, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x31, 0x41, 0x7d, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x88, 0x7b, 0xea, 0xab, 0x83, 0xf4, 0xa4, 0xc1, 0x0d, 0x6f, 0xeb, 0x6c, 0x10, 0x11, 0x78, 0x58, 0xad, 0x06, 0x51, 0x49, 0x7b, 0xb5, 0xe1, 0x17, 0xa5, 0x35, 0xfc, 0xb9, 0xb4, 0x41, 0xc9, 0xdd, 0x70, 0xf8, 0xa1, 0x66, 0xc3, 0xbb, 0x3d, 0x1b, 0xbe, 0xf8, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0xc5, 0xbf, 0x1b, 0x14, 0x95, 0xe2, 0x1b, 0xbc, 0x1c, 0xd2, 0xaf, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xac, 0xd3, 0x61, 0xd5, 0x6a, 0x10, 0xa1, 0xa0, 0x57, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0x4e, 0x43, 0xaf, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0xe3, 0x04, 0x33, 0x37, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0x12, 0x6d, 0xaf, 0x3a, 0x88, 0xec, 0xd1, 0xab, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x97, 0xf8, 0x57, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xf3, 0x20, 0x16, 0xd2, 0xb0, 0x0e, 0x22, 0x7b, 0xf4, 0x6a, 0x35, 0x88, 0x34, 0xd2, 0xab, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0xcf, 0xa5, 0x0d, 0xde, 0x90, 0x9d, 0x76, 0xf0, 0x38, 0xc1, 0xcc, 0x0d, 0x7f, 0xd1, 0x6c, 0xf8, 0xa1, 0x66, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0xb2, 0x38, 0x7a, 0x83, 0xa2, 0x52, 0x7c, 0x83, 0xa3, 0xeb, 0xe0, 0x1a, 0x7e, 0x71, 0xd9, 0x20, 0x4a, 0xfe, 0xb0, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf8, 0xc1, 0xcb, 0x05, 0x33, 0x5b, 0xc3, 0x2f, 0x2e, 0x1b, 0x1e, 0x93, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0xfe, 0x04, 0xda, 0x20, 0x60, 0x59, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x25, 0xd1, 0xec, 0x86, 0x07, 0x6f, 0x36, 0x28, 0x52, 0xc7, 0xd7, 0xf0, 0xb6, 0xce, 0xe0, 0xf9, 0xc1, 0xcb, 0x05, 0x33, 0xab, 0x56, 0x83, 0xc8, 0x33, 0xbd, 0xda, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0xda, 0x20, 0xda, 0x5d, 0xaf, 0x0e, 0xa2, 0x13, 0xf5, 0x6a, 0xc3, 0x5f, 0x34, 0x1b, 0x7e, 0xa8, 0xd9, 0xa0, 0xe0, 0xc3, 0xdc, 0x20, 0x92, 0x02, 0xb1, 0x36, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0x2a, 0x69, 0xaf, 0x3a, 0x88, 0xc1, 0xda, 0xab, 0x0d, 0x0a, 0xd2, 0xd8, 0xc1, 0xed, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x62, 0x48, 0xd6, 0x06, 0x45, 0xa5, 0xf8, 0x06, 0x51, 0xf2, 0x87, 0x75, 0x50, 0x10, 0x8f, 0x6f, 0x50, 0x90, 0xc6, 0x0e, 0xbe, 0x6e, 0x78, 0xf0, 0x66, 0x83, 0xa2, 0x4f, 0x77, 0x83, 0x24, 0xea, 0xaa, 0x35, 0x28, 0x3a, 0x8d, 0xd7, 0xf0, 0xb6, 0xce, 0x80, 0x87, 0xd6, 0x36, 0xb6, 0x86, 0x5f, 0x5c, 0x36, 0x88, 0x92, 0x3f, 0xac, 0x83, 0x94, 0x99, 0xc6, 0x0d, 0x4e, 0xec, 0x37, 0x1b, 0x44, 0xe3, 0xe5, 0xd5, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x65, 0x71, 0xf4, 0x06, 0x45, 0xa5, 0xf8, 0x06, 0x47, 0xd7, 0xc1, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x94, 0xfc, 0x61, 0x1d, 0xc4, 0x60, 0xed, 0xd5, 0x1a, 0x7e, 0x71, 0xd9, 0x20, 0x4a, 0xfe, 0xb0, 0x0e, 0x22, 0x7b, 0xf4, 0x6a, 0x83, 0x83, 0x04, 0xcc, 0x1a, 0x7e, 0x71, 0xd9, 0x20, 0x4a, 0xfe, 0xb0, 0x0e, 0xd2, 0x84, 0xa2, 0xda, 0xa0, 0xe8, 0xd3, 0xdd, 0xe0, 0xd0, 0xda, 0xb2, 0x86, 0x77, 0x7b, 0x36, 0x88, 0x84, 0x48, 0xac, 0x35, 0x88, 0x92, 0x3f, 0xac, 0x83, 0x34, 0xef, 0xaa, 0x35, 0x88, 0x92, 0x3f, 0xac, 0x83, 0x54, 0xa1, 0xa8, 0x36, 0x28, 0xfa, 0x74, 0x37, 0x48, 0xa2, 0xae, 0x5a, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x48, 0x88, 0xc4, 0xda, 0x20, 0x1e, 0x23, 0xb1, 0x36, 0x38, 0xb1, 0xdf, 0x6c, 0x10, 0x8d, 0x97, 0x57, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x94, 0xc5, 0xd1, 0x1b, 0x14, 0x95, 0xe2, 0x1b, 0x1c, 0x5d, 0x07, 0x37, 0x88, 0xf2, 0x49, 0xac, 0x0d, 0x62, 0x96, 0x12, 0x6b, 0x83, 0x52, 0x88, 0xfc, 0x20, 0x7e, 0x2b, 0xb1, 0x36, 0x28, 0xfa, 0x74, 0x37, 0x38, 0xb4, 0xb6, 0x6c, 0x10, 0x0f, 0x97, 0x58, 0x07, 0xf1, 0x70, 0x89, 0xb5, 0x1a, 0x44, 0xb3, 0xea, 0xd5, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0x3c, 0x78, 0x9c, 0x60, 0xe6, 0x1a, 0xfe, 0x5c, 0x1a, 0x5c, 0x3c, 0x78, 0x9c, 0x60, 0x66, 0x1b, 0xfe, 0xa2, 0xd9, 0xe0, 0x71, 0x82, 0x99, 0x1b, 0x14, 0xa4, 0xb1, 0x83, 0xab, 0x1b, 0xc4, 0x68, 0x1e, 0xd6, 0x86, 0x77, 0x7b, 0x36, 0x88, 0x8a, 0xef, 0xab, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x2c, 0x66, 0x5f, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0xe2, 0x9e, 0xfa, 0xea, 0xf0, 0xd0, 0xcf, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0xee, 0xa9, 0xaf, 0x0e, 0x6f, 0xa1, 0xd5, 0xe1, 0x14, 0xab, 0x35, 0x88, 0xdf, 0xf0, 0xab, 0x0d, 0xbf, 0x28, 0x6d, 0x10, 0x4b, 0x84, 0x58, 0x1b, 0xfe, 0xa2, 0xd9, 0xf0, 0x43, 0xcd, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x65, 0x71, 0xf4, 0x06, 0x45, 0xa5, 0xf8, 0x06, 0x47, 0xd7, 0xc1, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x94, 0xfc, 0x61, 0x1d, 0x44, 0x6d, 0x22, 0xd6, 0x06, 0x31, 0x68, 0x88, 0xb5, 0x86, 0x5f, 0x5c, 0x36, 0x3c, 0x26, 0x73, 0x70, 0x66, 0x6e, 0x6b, 0xd6, 0x20, 0xc6, 0xc7, 0xaf, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0xcc, 0x2b, 0x62, 0x6d, 0xf8, 0x8b, 0x66, 0x0d, 0x9f, 0x2b, 0x6d, 0x90, 0x92, 0xcb, 0xb8, 0x41, 0x94, 0x81, 0x36, 0x1d, 0xc4, 0x8c, 0x7e, 0xd4, 0x06, 0x05, 0x69, 0xec, 0xe0, 0xeb, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0xc2, 0x52, 0xaf, 0x0e, 0xe2, 0x45, 0xf5, 0x6a, 0x83, 0x82, 0x34, 0x76, 0xe0, 0xe5, 0xe0, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x34, 0x8b, 0x5e, 0x1d, 0xa4, 0xcc, 0x34, 0x6e, 0xb0, 0xd2, 0xc5, 0x69, 0x83, 0x82, 0x67, 0x73, 0x83, 0x68, 0x81, 0xbf, 0xda, 0xf0, 0x6e, 0xde, 0x1a, 0xfe, 0xcd, 0xd9, 0xf0, 0xe0, 0xcd, 0xc1, 0xf1, 0x93, 0x6f, 0x83, 0x82, 0x34, 0x76, 0xc0, 0x33, 0x7b, 0x73, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0x11, 0xd5, 0x7d, 0xd5, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x1a, 0x26, 0x6e, 0x83, 0x18, 0xf9, 0xbd, 0xda, 0x30, 0x71, 0x1b, 0x44, 0xe9, 0xef, 0x55, 0xe0, 0x9b, 0xa5, 0xb9, 0xd9, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x94, 0x93, 0xd8, 0x03, 0x9e, 0xd9, 0x9b, 0xdb, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0x45, 0xd3, 0xf8, 0x20, 0x06, 0x63, 0xb1, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0xc5, 0xa9, 0xf6, 0x41, 0x0c, 0xc6, 0x62, 0xb5, 0x41, 0x41, 0x1a, 0x3b, 0xf8, 0xbc, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0xb1, 0xfd, 0x7c, 0xb5, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0xf1, 0x07, 0x8b, 0xd5, 0x41, 0xca, 0x4c, 0xe3, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0xf1, 0x39, 0x7c, 0xb5, 0xc1, 0xeb, 0xcc, 0xab, 0x37, 0x28, 0x3a, 0x8d, 0x37, 0x88, 0xed, 0xe7, 0xab, 0x0d, 0x8e, 0x9f, 0x7c, 0x07, 0xd1, 0x3d, 0x7a, 0xb5, 0xe1, 0xdd, 0xbc, 0x35, 0xfc, 0x9b, 0xb3, 0xe1, 0xc1, 0x9b, 0x83, 0xc3, 0x39, 0xdf, 0x86, 0x5f, 0x5c, 0x36, 0x38, 0x7e, 0xf2, 0x6d, 0x70, 0x38, 0xe7, 0x3b, 0x88, 0xc3, 0xf8, 0xab, 0xc3, 0x29, 0xd6, 0x1a, 0xc4, 0x71, 0xef, 0xd5, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x45, 0x8d, 0xf8, 0x06, 0x91, 0xc4, 0xd6, 0xb4, 0x86, 0xb7, 0x75, 0x06, 0x87, 0x0f, 0x62, 0x21, 0x0d, 0xab, 0x59, 0xe0, 0xd5, 0xc6, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0xe0, 0xd5, 0xc6, 0x06, 0xf0, 0x54, 0x0b, 0x1b, 0x7b, 0x13, 0x4b, 0x0b, 0x73, 0x03, 0x69, 0x0b, 0xa3, 0x43, 0xdb, 0xa0, 0x64, 0x61, 0x9f, 0x65, 0xd6, 0x90, 0x38, 0xda, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x83, 0x87, 0x1b, 0xfe, 0x9d, 0x5f, 0x83, 0xf8, 0x7e, 0xc3, 0xaa, 0x83, 0x98, 0xbe, 0xc3, 0xda, 0xf0, 0x17, 0xcd, 0x06, 0x31, 0xe8, 0x8b, 0xb5, 0xe1, 0x83, 0x9c, 0x35, 0xfc, 0x9b, 0xb3, 0xe1, 0xc1, 0x9b, 0x0d, 0x6f, 0xeb, 0x0c, 0x9e, 0x1f, 0x1e, 0xdc, 0x59, 0xc3, 0x2f, 0x2e, 0x1b, 0x1e, 0xbc, 0x39, 0x28, 0x6d, 0xc7, 0x37, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0x36, 0x3c, 0x78, 0x73, 0x10, 0xf1, 0x7b, 0x58, 0x1b, 0x44, 0x43, 0x30, 0xd6, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x86, 0xc7, 0x64, 0x0e, 0x22, 0x7e, 0x0f, 0x6b, 0xc3, 0xd3, 0x3a, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0x61, 0x2b, 0x6d, 0x10, 0xf1, 0x7b, 0x58, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0xf7, 0x20, 0x16, 0xd2, 0xb0, 0x5a, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x38, 0xe1, 0xc3, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x61, 0x77, 0x7b, 0x10, 0xc7, 0xc4, 0x58, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0x6c, 0x78, 0xf0, 0x66, 0xc3, 0xbb, 0x3d, 0x1b, 0x84, 0xdd, 0xed, 0x06, 0x11, 0xbf, 0x87, 0x75, 0x10, 0xac, 0xac, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0xf0, 0x91, 0xbd, 0xd5, 0x89, 0xb1, 0x95, 0xad, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0x41, 0x9c, 0xf0, 0x61, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x12, 0x1f, 0x77, 0xc3, 0x83, 0x37, 0x1b, 0x44, 0xfc, 0x1e, 0x56, 0xb5, 0xe1, 0xdd, 0x9e, 0x0d, 0x7f, 0x02, 0x6d, 0x78, 0x5a, 0x67, 0x83, 0x38, 0x46, 0xc6, 0x6a, 0x35, 0xa4, 0x0f, 0x37, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0x36, 0x88, 0x16, 0x5f, 0xac, 0x35, 0xfc, 0xb9, 0x34, 0xb8, 0x78, 0x10, 0x83, 0xbe, 0x58, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0x18, 0xf4, 0xc5, 0xda, 0xf0, 0x41, 0xce, 0x06, 0x51, 0x01, 0x8c, 0xb5, 0xe1, 0xbd, 0xa0, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x0d, 0x0f, 0xde, 0x6c, 0x78, 0x5b, 0x67, 0xf0, 0xfc, 0xf0, 0x79, 0xd0, 0x86, 0xa7, 0x75, 0x36, 0x28, 0x48, 0x63, 0x07, 0x3c, 0xb3, 0x37, 0x78, 0x0d, 0x6f, 0xeb, 0x6c, 0x10, 0xc7, 0xbd, 0x57, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0xac, 0x61, 0xe2, 0x36, 0x88, 0x91, 0xdf, 0xab, 0x0d, 0x13, 0x37, 0xe0, 0x9b, 0xcd, 0xd5, 0x89, 0x07, 0x71, 0xf7, 0x7b, 0xb5, 0xe1, 0x17, 0x97, 0x0d, 0xe2, 0x10, 0xf8, 0x6a, 0x83, 0x98, 0x74, 0xbe, 0x3a, 0x88, 0xa4, 0xe0, 0xab, 0x0d, 0x0a, 0xd2, 0xd8, 0x81, 0xae, 0x8b, 0x6b, 0x90, 0x64, 0x40, 0xb8, 0x41, 0x6c, 0x3f, 0x5f, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xf1, 0xc3, 0x83, 0x3b, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0xfd, 0xf0, 0x79, 0xd0, 0x06, 0x71, 0x60, 0x8d, 0xd5, 0x06, 0x05, 0x69, 0xec, 0x40, 0xd7, 0xc9, 0x35, 0x48, 0x32, 0x20, 0xdc, 0x20, 0xb6, 0x9f, 0xaf, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf8, 0xe1, 0xf3, 0xa0, 0x35, 0xbc, 0xad, 0x33, 0xb8, 0x7e, 0x78, 0x70, 0x67, 0x83, 0xa8, 0xc3, 0xc6, 0x6a, 0x83, 0x82, 0x34, 0x76, 0xa0, 0xe7, 0xe2, 0x1a, 0x24, 0x19, 0x10, 0x6e, 0x10, 0xdb, 0xcf, 0x57, 0x1b, 0x44, 0x20, 0x30, 0xd6, 0x06, 0x71, 0x60, 0x8d, 0x75, 0x10, 0x03, 0xd6, 0x58, 0x1b, 0x14, 0xa4, 0xb1, 0x03, 0x3d, 0x27, 0xd7, 0x20, 0xc9, 0x80, 0x70, 0x83, 0xd8, 0x7e, 0xbe, 0xda, 0x20, 0xae, 0x9f, 0xb1, 0x36, 0x88, 0x3a, 0x6c, 0xac, 0x83, 0x88, 0xc3, 0xc6, 0xda, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0x5d, 0x17, 0xdb, 0xf0, 0xb6, 0xce, 0x40, 0xd7, 0xc9, 0xd6, 0xa0, 0xd8, 0xd1, 0x5c, 0xc3, 0xbf, 0x39, 0x6b, 0x78, 0x5b, 0xe7, 0x20, 0x19, 0x94, 0x77, 0xc3, 0xdb, 0x3a, 0x03, 0x3d, 0x27, 0xdb, 0x20, 0x1a, 0x82, 0xb1, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x04, 0x24, 0x63, 0x1d, 0x1e, 0xfa, 0xd9, 0xa0, 0x20, 0x8d, 0x1d, 0x1c, 0x5d, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xf8, 0x95, 0xc6, 0x6a, 0x83, 0xc8, 0xef, 0xc6, 0xda, 0x20, 0x1a, 0xbb, 0xb1, 0xda, 0xa0, 0x20, 0x8d, 0x1d, 0x5c, 0x5e, 0xc3, 0xbb, 0x3d, 0x1b, 0xc4, 0x59, 0x38, 0xd6, 0x06, 0xd1, 0xf5, 0x8d, 0xb5, 0x41, 0x9c, 0x7b, 0x63, 0xb5, 0x41, 0x41, 0x1a, 0x3b, 0xd0, 0x68, 0x72, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0xdb, 0xcf, 0x57, 0x1b, 0x1c, 0x94, 0xe9, 0x0e, 0x0e, 0xf0, 0x74, 0x1b, 0x14, 0xa4, 0xb1, 0x03, 0x8d, 0x36, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xb1, 0xfd, 0x7c, 0xb5, 0x41, 0x6c, 0x79, 0x5b, 0x1d, 0x1c, 0xe0, 0xe9, 0x36, 0x28, 0x48, 0x63, 0x07, 0xf4, 0xba, 0x18, 0x34, 0xb9, 0x86, 0x77, 0x7b, 0x36, 0x88, 0xed, 0xe7, 0xab, 0x0d, 0xa2, 0xb1, 0x1b, 0x6b, 0x83, 0xd8, 0xf2, 0xb6, 0x6a, 0x83, 0x82, 0x34, 0x76, 0xe0, 0xdd, 0xf0, 0x35, 0x28, 0x3a, 0x8d, 0x37, 0x88, 0xb3, 0x70, 0xac, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x6c, 0x3f, 0x5f, 0x1d, 0x9c, 0xe9, 0xfa, 0x36, 0x48, 0x32, 0x20, 0xdc, 0x20, 0x3e, 0x87, 0xaf, 0x36, 0x88, 0xf5, 0x6e, 0xab, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x24, 0x9d, 0x63, 0xb5, 0x41, 0x94, 0xad, 0x63, 0xb5, 0x41, 0x41, 0x1a, 0x3b, 0xf0, 0x6e, 0xf9, 0x1a, 0x14, 0x9d, 0xc6, 0x1b, 0xc4, 0x59, 0x38, 0xd6, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0xb6, 0x9f, 0xaf, 0x36, 0x38, 0x7e, 0xf2, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0xe2, 0x2c, 0x1c, 0x6b, 0x83, 0x28, 0x5b, 0xc7, 0x5a, 0xc3, 0xdb, 0x3a, 0x03, 0xef, 0x86, 0x57, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0xb6, 0x9f, 0xaf, 0x36, 0x88, 0x73, 0x6f, 0xac, 0x0d, 0x62, 0xbd, 0xdb, 0xaa, 0x0d, 0x0a, 0xd2, 0xd8, 0x81, 0x77, 0xd3, 0xd7, 0x20, 0xc9, 0x80, 0x70, 0x83, 0xd8, 0x7e, 0xbe, 0xda, 0xe0, 0xa0, 0x4c, 0xb7, 0x41, 0xd4, 0x61, 0x63, 0x1d, 0xc4, 0xa3, 0x35, 0xd6, 0x86, 0x5f, 0x5c, 0x36, 0x88, 0x6e, 0x77, 0xac, 0x35, 0xbc, 0xad, 0x33, 0xf0, 0x6e, 0x79, 0x07, 0x31, 0x65, 0x7d, 0xb5, 0x1a, 0x94, 0xa0, 0x5e, 0x1b, 0x7e, 0x51, 0xda, 0xe0, 0x71, 0x82, 0x99, 0x1b, 0xfe, 0xa2, 0xd9, 0x20, 0x06, 0x7d, 0xb1, 0x36, 0xfc, 0xe2, 0xb2, 0x41, 0x32, 0xa5, 0xd3, 0x41, 0x6a, 0xdd, 0xd3, 0xe1, 0x14, 0x6b, 0x0d, 0x5e, 0x67, 0xe4, 0xb2, 0xe1, 0x17, 0xa5, 0x0d, 0xa2, 0xc5, 0x17, 0x6b, 0xc3, 0x5f, 0x34, 0x1b, 0x3c, 0x4e, 0x30, 0x73, 0x83, 0x82, 0x34, 0x76, 0xc0, 0x33, 0x7b, 0x83, 0x37, 0x88, 0x90, 0x68, 0xac, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x35, 0x4c, 0xdc, 0x06, 0x51, 0xfa, 0x7b, 0xb5, 0x61, 0xe2, 0x36, 0x88, 0xfc, 0xdf, 0xab, 0x83, 0xf8, 0x83, 0xc5, 0xda, 0xf0, 0x8b, 0xcb, 0x06, 0xd1, 0x14, 0x7c, 0xb5, 0x41, 0x4c, 0x08, 0x5f, 0xad, 0xe1, 0x6d, 0x9d, 0x0d, 0x8a, 0x53, 0xed, 0x83, 0xe8, 0x07, 0xbe, 0x6a, 0x83, 0x82, 0x34, 0x76, 0x70, 0x7d, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x89, 0xb4, 0x58, 0x07, 0xd1, 0x8f, 0x8d, 0xb5, 0x41, 0x61, 0xa8, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x88, 0xed, 0xe7, 0xab, 0x0d, 0x62, 0xaf, 0x1a, 0x6b, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x63, 0xc4, 0x57, 0x1b, 0x04, 0x2c, 0xeb, 0x41, 0x72, 0x01, 0x6b, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0xb6, 0x9f, 0xaf, 0x36, 0x88, 0x40, 0x60, 0xac, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x8c, 0x11, 0x5f, 0x6d, 0x50, 0x54, 0x8a, 0x1f, 0x24, 0x17, 0xb0, 0x36, 0x6b, 0x10, 0x3b, 0xc9, 0x58, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0x06, 0x7d, 0xb1, 0x36, 0xfc, 0x45, 0xb3, 0x41, 0x0c, 0xfa, 0x62, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0x6c, 0x78, 0xf0, 0xe6, 0x20, 0xc5, 0xda, 0x69, 0x0d, 0xbf, 0xb8, 0x6c, 0x78, 0xf0, 0xe6, 0xe0, 0xbc, 0xbb, 0xb7, 0x41, 0x41, 0x1a, 0x3b, 0xe0, 0x99, 0xbd, 0xc1, 0x1b, 0x44, 0x48, 0x34, 0xd6, 0x86, 0x4f, 0x6c, 0x36, 0x88, 0xf0, 0x68, 0xac, 0x0d, 0x0a, 0xd2, 0xd8, 0xc1, 0xe7, 0x35, 0x48, 0x32, 0x20, 0xdc, 0x20, 0xb6, 0x9f, 0xaf, 0x36, 0x38, 0x35, 0xb7, 0x6d, 0x90, 0x4c, 0xe9, 0xb4, 0x41, 0x6c, 0x46, 0x60, 0xb5, 0x41, 0x41, 0x1a, 0x3b, 0x78, 0xbb, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0xf1, 0x39, 0x7c, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x88, 0xed, 0xe7, 0xab, 0x0d, 0x8a, 0x4a, 0xf1, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x8c, 0x11, 0x5f, 0x1d, 0xc4, 0x5d, 0x98, 0x55, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0xb6, 0x9f, 0xaf, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xe1, 0x41, 0x2c, 0xa4, 0x61, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x62, 0x8c, 0xf8, 0x6a, 0x83, 0x53, 0x73, 0xdb, 0x41, 0x72, 0x01, 0x6b, 0x1b, 0x14, 0xa4, 0xb1, 0x03, 0xef, 0x86, 0xaf, 0x41, 0xd1, 0x69, 0xbc, 0x41, 0x9c, 0x85, 0x63, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x62, 0x8c, 0xf8, 0x6a, 0x83, 0x80, 0x65, 0x3d, 0x38, 0x21, 0x50, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0xd8, 0x7e, 0xbe, 0x3a, 0x88, 0x2d, 0xf6, 0xab, 0x0d, 0x0a, 0xd2, 0xd8, 0x81, 0x77, 0xcb, 0xd7, 0xa0, 0xe8, 0x34, 0xde, 0x20, 0xce, 0xc2, 0xb1, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xb1, 0xfd, 0x7c, 0xb5, 0xc1, 0x21, 0x74, 0x62, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x67, 0xe1, 0x58, 0x1b, 0x1c, 0xce, 0xf9, 0x0e, 0x22, 0xdb, 0x1d, 0xab, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0xdb, 0xcf, 0x57, 0x1b, 0x1c, 0x56, 0xe6, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x31, 0x46, 0x7c, 0xb5, 0xc1, 0xa9, 0xb9, 0xed, 0x20, 0xbd, 0xda, 0xa9, 0x0d, 0x0a, 0xd2, 0xd8, 0x81, 0x77, 0xd3, 0xd7, 0x20, 0xc9, 0x80, 0x70, 0x83, 0xd8, 0x7e, 0xbe, 0xda, 0x20, 0x60, 0x59, 0x37, 0x48, 0xb1, 0x76, 0x3a, 0x48, 0x2e, 0x60, 0x3d, 0x88, 0x27, 0x79, 0xac, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x56, 0x83, 0x88, 0xea, 0xbe, 0xda, 0xa0, 0x2c, 0x79, 0xdf, 0xa0, 0xa8, 0x11, 0xdf, 0x20, 0x92, 0xd8, 0x9a, 0x0e, 0x62, 0xa2, 0x18, 0x6b, 0xd6, 0x20, 0x12, 0x6d, 0xaf, 0x36, 0xfc, 0xa2, 0xb4, 0xc1, 0x79, 0x52, 0x65, 0xc3, 0x23, 0xac, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x37, 0x8a, 0x1b, 0x94, 0xd1, 0xe7, 0x07, 0x85, 0x93, 0xec, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0xc5, 0xd9, 0x06, 0x65, 0xf4, 0xf9, 0x41, 0x4c, 0x14, 0x63, 0x75, 0x38, 0xc5, 0xd6, 0x20, 0xb6, 0xda, 0xb0, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0xf0, 0x19, 0x7b, 0x6b, 0x83, 0x93, 0x2b, 0x9b, 0x9b, 0x2b, 0x23, 0x0f, 0x3f, 0xd4, 0x6c, 0xf8, 0x8b, 0x66, 0x83, 0xc7, 0x09, 0x66, 0x6e, 0x50, 0x90, 0xc6, 0xae, 0xe1, 0xfb, 0xf6, 0xc1, 0xf1, 0x83, 0xe6, 0x5c, 0xc5, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x45, 0x26, 0xee, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0xa8, 0x14, 0x3f, 0x88, 0x90, 0x3f, 0xac, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xa4, 0x68, 0x64, 0xd5, 0x06, 0x05, 0x1f, 0xe6, 0x1a, 0xfe, 0xcd, 0xd9, 0xa0, 0xa8, 0x14, 0xdf, 0xf0, 0x6e, 0xcf, 0x06, 0x61, 0x77, 0xbb, 0x41, 0xbc, 0xe9, 0x62, 0x1d, 0x9c, 0x99, 0xdb, 0x36, 0x28, 0x48, 0x63, 0x07, 0x3c, 0xb3, 0x37, 0x78, 0x83, 0x08, 0x89, 0xc6, 0xda, 0xf0, 0x89, 0xcd, 0x06, 0xb1, 0xeb, 0x7b, 0xb5, 0x41, 0x41, 0x1a, 0xbb, 0x86, 0xef, 0xdb, 0x07, 0xcf, 0x0f, 0x9a, 0x73, 0x15, 0x5f, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x18, 0x23, 0xbe, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0xf8, 0xb8, 0x1b, 0x1c, 0xd8, 0x49, 0xd6, 0xf0, 0x71, 0xd4, 0x41, 0xbc, 0xe9, 0x62, 0xb5, 0x41, 0xd1, 0x69, 0xbc, 0x41, 0x7c, 0x0e, 0x5f, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xc5, 0x83, 0x58, 0x48, 0xc3, 0xda, 0xa0, 0xe8, 0x34, 0xde, 0x20, 0x3e, 0x87, 0xaf, 0x36, 0x88, 0x14, 0xe2, 0xab, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0xdb, 0xcf, 0x57, 0x1b, 0x44, 0x56, 0x42, 0xd6, 0x41, 0x22, 0xa5, 0xd3, 0x06, 0x05, 0x69, 0xec, 0x1a, 0xbe, 0x6f, 0x1f, 0x7c, 0x3e, 0x68, 0xce, 0x55, 0x7c, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0xe2, 0xe3, 0x1e, 0xc4, 0x3b, 0x47, 0xd6, 0x06, 0x4b, 0xea, 0x97, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0xbe, 0x7e, 0xd9, 0x60, 0xe9, 0x1a, 0xea, 0x86, 0xaf, 0x5f, 0x36, 0x7c, 0x08, 0x73, 0x70, 0x38, 0xe7, 0x5b, 0xc3, 0xd7, 0x2f, 0x1b, 0x2c, 0x5d, 0x43, 0xdd, 0xf0, 0xf5, 0xcb, 0x86, 0x0f, 0x61, 0x0e, 0xa2, 0xb6, 0x23, 0xab, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xfc, 0x4a, 0xb6, 0x86, 0x7f, 0x73, 0x36, 0x08, 0x58, 0xd6, 0x83, 0xc3, 0x39, 0xdf, 0x1a, 0xfe, 0xcd, 0xd9, 0xa0, 0xa8, 0x14, 0x3f, 0x38, 0x9c, 0xf3, 0xb5, 0xc1, 0x71, 0x6c, 0x62, 0x83, 0xc4, 0x6c, 0xa7, 0x35, 0xbc, 0xcd, 0xba, 0xe1, 0xdf, 0x9c, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x53, 0xc0, 0x83, 0xa4, 0x2e, 0xab, 0x83, 0x38, 0xa4, 0xc0, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x3e, 0x05, 0xdc, 0x20, 0xde, 0x74, 0xb1, 0x0e, 0xd2, 0xab, 0x9d, 0x36, 0xfc, 0xe2, 0x72, 0x10, 0x37, 0xfc, 0x51, 0x87, 0x53, 0xec, 0x70, 0x8a, 0xad, 0x06, 0xb1, 0xc0, 0x7b, 0xb5, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0x10, 0x0b, 0xbc, 0x57, 0x1b, 0x3e, 0x57, 0x5a, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x3f, 0x38, 0xb9, 0xb4, 0xb6, 0x32, 0x90, 0xb6, 0x37, 0xb2, 0x3a, 0xb6, 0xb7, 0xc3, 0x23, 0x74, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x97, 0xe7, 0x25, 0xd3, 0x83, 0xe7, 0x35, 0xb3, 0x12, 0x86, 0xb7, 0x22, 0x76, 0xf8, 0x72, 0x69, 0xc3, 0xf3, 0x4c, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x23, 0x16, 0x36, 0x57, 0x06, 0x02, 0xf7, 0x96, 0xe6, 0x46, 0xb7, 0xe1, 0xcf, 0xa5, 0xc1, 0xcf, 0x83, 0xc7, 0x09, 0x66, 0xae, 0xe1, 0x89, 0xf7, 0x35, 0xdc, 0x69, 0x33, 0x80, 0x3f, 0x9c, 0x5c, 0x5a, 0x5b, 0x19, 0xc8, 0x9b, 0x1c, 0x59, 0x99, 0x1c, 0xc8, 0x9b, 0x19, 0xc8, 0xd9, 0xc1, 0x8a, 0xde, 0xf7, 0x0e, 0xa7, 0x58, 0x1d, 0x4e, 0xb1, 0xd5, 0x60, 0x09, 0x2a, 0xeb, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x88, 0x32, 0x9f, 0x0d, 0x7f, 0xd1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x47, 0x5a, 0x48, 0x06, 0x8e, 0xb4, 0x90, 0x6e, 0xf8, 0x77, 0x7e, 0x0d, 0x5e, 0x3d, 0xa3, 0x5c, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x9e, 0xcc, 0x7c, 0x36, 0x28, 0xed, 0x2d, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x71, 0x7b, 0xe6, 0xb3, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xfc, 0xa3, 0xf9, 0x6c, 0xf8, 0x73, 0x69, 0xc0, 0x83, 0xab, 0x13, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x04, 0xa9, 0xf9, 0x6c, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x8b, 0x6b, 0x3e, 0x1b, 0xfe, 0x5c, 0xda, 0x20, 0x6d, 0xba, 0x71, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x33, 0x9b, 0xcf, 0xe1, 0x87, 0x9a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xe4, 0xb8, 0xf9, 0x6c, 0xf8, 0x73, 0x69, 0xc0, 0x9b, 0x3b, 0x73, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xfc, 0xbd, 0xf9, 0x1c, 0x7e, 0xa8, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xeb, 0x70, 0x3e, 0x1b, 0xfe, 0x5c, 0x1a, 0xf0, 0xe6, 0xca, 0xd6, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x33, 0x72, 0x3e, 0x1b, 0x84, 0x7e, 0xc9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x66, 0xe7, 0x7c, 0x0e, 0xca, 0x26, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x2c, 0xd9, 0xf9, 0x6c, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xdf, 0x78, 0x3e, 0x1b, 0xfe, 0x5c, 0xda, 0x20, 0x6d, 0xba, 0x71, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0xe5, 0x9d, 0xcf, 0xe1, 0x87, 0x9a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xe4, 0xf1, 0xf9, 0x6c, 0xf8, 0x73, 0x69, 0xc0, 0x9b, 0x3b, 0x73, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xc4, 0xec, 0xf9, 0x1c, 0x7e, 0xa8, 0xa9, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xa4, 0xfb, 0xf9, 0x6c, 0x50, 0xb2, 0xb0, 0xcf, 0x32, 0x0b, 0x7c, 0x19, 0xbe, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x1b, 0xc4, 0x6a, 0xe7, 0xd4, 0x00, 0x6f, 0x19, 0x1e, 0x9d, 0x5c, 0xd8, 0x18, 0xdd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x1e, 0x40, 0x9f, 0x0d, 0x4a, 0x16, 0xf6, 0x59, 0x66, 0x0d, 0xd2, 0x3d, 0x37, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0xd2, 0x3d, 0x37, 0x3b, 0x68, 0x61, 0x84, 0x7c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x62, 0xa0, 0xcf, 0x86, 0xbf, 0x68, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0xe3, 0x2f, 0xa4, 0x03, 0xc7, 0x5f, 0x58, 0x1c, 0x3c, 0x16, 0xde, 0x73, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0xb3, 0xa0, 0xcf, 0x06, 0x25, 0x3c, 0xe6, 0x02, 0xde, 0x5c, 0xd9, 0xda, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xbe, 0x08, 0x7d, 0x36, 0x58, 0x52, 0xbf, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xb5, 0x44, 0x9f, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0xee, 0x20, 0xf6, 0x0f, 0x7d, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x7c, 0x2d, 0xfa, 0x1c, 0x84, 0xa7, 0xea, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x69, 0x46, 0x9f, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0xc6, 0xd1, 0xe7, 0xa0, 0xac, 0xb7, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x14, 0xa4, 0xcf, 0x41, 0x51, 0x29, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xfe, 0x48, 0x9f, 0x0d, 0x3f, 0xc2, 0x0c, 0x4e, 0x87, 0x0b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf8, 0x9c, 0xf4, 0xd9, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x06, 0x2a, 0x7d, 0x0e, 0xca, 0x7a, 0xdb, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x8c, 0x5c, 0xfa, 0x1c, 0x1c, 0x56, 0xe6, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xd1, 0x8d, 0xe9, 0xb3, 0xe1, 0x6d, 0x9d, 0x01, 0x6f, 0xee, 0xcc, 0x1d, 0xbc, 0x3e, 0x88, 0x69, 0xa9, 0xac, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x24, 0x6a, 0xfa, 0x6c, 0x78, 0x5b, 0x67, 0x83, 0xb4, 0xe9, 0xc6, 0x83, 0x48, 0xe8, 0xca, 0xaa, 0x15, 0xf0, 0xe0, 0xea, 0xc4, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0xc0, 0x83, 0xab, 0x13, 0x3b, 0x68, 0x9d, 0x75, 0x7c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x10, 0xa7, 0xcf, 0x86, 0xbf, 0x68, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0xc3, 0x2f, 0xa4, 0x03, 0x87, 0x5f, 0x58, 0x1c, 0x3c, 0xe0, 0x26, 0x73, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x61, 0xa7, 0xcf, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xd1, 0xee, 0xe9, 0x73, 0x50, 0xd6, 0xdb, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0x21, 0xd4, 0xe7, 0xa0, 0xa8, 0x14, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0xad, 0xa8, 0xcf, 0xc1, 0x72, 0xdc, 0xb8, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xc4, 0x91, 0xfa, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xd5, 0xa5, 0x3e, 0x07, 0x65, 0xbd, 0xed, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xea, 0x4f, 0x7d, 0x0e, 0x0e, 0x2b, 0x73, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x78, 0x4d, 0xf5, 0xd9, 0xf0, 0xb6, 0xce, 0x80, 0x37, 0x77, 0xe6, 0x2e, 0x8e, 0x13, 0x78, 0x70, 0x75, 0x62, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x28, 0x5b, 0xf5, 0xd9, 0xf0, 0xb6, 0xce, 0x06, 0x69, 0xd3, 0x8d, 0x07, 0x71, 0x95, 0x96, 0x55, 0xb3, 0x06, 0x6d, 0xcc, 0x80, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xb4, 0x31, 0x03, 0xde, 0x00, 0xbc, 0xc0, 0xc9, 0xa5, 0xd9, 0x85, 0xd1, 0x95, 0x81, 0x98, 0xa5, 0xb9, 0x9d, 0x95, 0xc9, 0xc1, 0xc9, 0xa5, 0xb9, 0xd1, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x48, 0x69, 0xf5, 0xd9, 0xf0, 0x17, 0xcd, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x57, 0x56, 0xda, 0x6c, 0xf0, 0x82, 0xb6, 0xf6, 0x83, 0xf7, 0xc0, 0xb5, 0x1f, 0xbc, 0x47, 0x4b, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x9c, 0xab, 0xcf, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0x31, 0x2d, 0x95, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x02, 0x58, 0x9f, 0x0d, 0x96, 0xd4, 0x2f, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0x83, 0xd6, 0xe7, 0x20, 0x22, 0xa9, 0xb2, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x0c, 0xd8, 0xfa, 0x1c, 0x84, 0xa7, 0xea, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xbb, 0x5b, 0x9f, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0x1b, 0xd7, 0xe7, 0xa0, 0xc8, 0xc4, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0xbc, 0xae, 0xcf, 0xc1, 0x71, 0x79, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xa3, 0xbc, 0x3e, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x81, 0xaf, 0xcf, 0x41, 0x2a, 0xc7, 0xec, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xbe, 0x80, 0x7d, 0x36, 0xbc, 0x71, 0xb7, 0xe1, 0xe5, 0xbb, 0x83, 0x08, 0x0a, 0xf6, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x8e, 0xb0, 0xcf, 0x41, 0x12, 0x23, 0x67, 0xad, 0x06, 0xad, 0xdd, 0x6b, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xb4, 0x76, 0xaf, 0xdd, 0xc1, 0x93, 0xbe, 0x94, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xd4, 0x0f, 0xfb, 0x6c, 0xf8, 0x8b, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0xb8, 0xf7, 0x42, 0x3a, 0x70, 0xef, 0x85, 0xc5, 0x41, 0xba, 0xbf, 0xec, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x9b, 0x62, 0x9f, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0xd3, 0xd8, 0xe7, 0x20, 0x95, 0x63, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xbb, 0xc8, 0x3e, 0x1b, 0xde, 0xb8, 0xdb, 0xf0, 0xf2, 0xdd, 0x41, 0x6c, 0x26, 0xfb, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0x52, 0xd9, 0xe7, 0x20, 0x6e, 0x7b, 0xaa, 0x3a, 0x9c, 0x62, 0x75, 0x38, 0xc5, 0x56, 0xe0, 0xdd, 0xea, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x55, 0xcc, 0x3e, 0x1b, 0x94, 0x2c, 0xec, 0xb3, 0xcc, 0x1a, 0xac, 0x83, 0x9a, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x58, 0x07, 0x35, 0xdb, 0x00, 0xde, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x20, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x46, 0x9b, 0x7d, 0x36, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x95, 0x95, 0x36, 0x1b, 0xbc, 0x75, 0xd0, 0x79, 0xe0, 0x26, 0x0c, 0x9b, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x4d, 0x18, 0xf2, 0x83, 0xe8, 0x36, 0xcc, 0x3a, 0x78, 0xc0, 0x4d, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x9c, 0x67, 0x9f, 0x0d, 0x9f, 0xd8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0x14, 0xda, 0x67, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x48, 0x8f, 0xf6, 0xd9, 0xf0, 0xb9, 0xcb, 0x80, 0xd7, 0x16, 0x76, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x58, 0x99, 0xf6, 0xd9, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x22, 0xa9, 0x7d, 0x0e, 0x8a, 0x4c, 0xdc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xd4, 0x5a, 0xfb, 0x1c, 0x14, 0x95, 0xe2, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf8, 0xc2, 0xf6, 0x39, 0x3c, 0xad, 0xd3, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xda, 0xb3, 0x7d, 0x36, 0x7c, 0xee, 0x32, 0xe0, 0x89, 0xbd, 0x91, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x66, 0xb6, 0x7d, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x4d, 0x6e, 0x9f, 0x83, 0x12, 0x1f, 0x77, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xc3, 0xde, 0x3e, 0x07, 0x45, 0xa5, 0xf8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xe2, 0xc0, 0x7d, 0x0e, 0x4f, 0xeb, 0xd4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x01, 0x71, 0x9f, 0x0d, 0x96, 0xd4, 0x2f, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0xea, 0xdc, 0x67, 0xc3, 0x1b, 0x77, 0x1b, 0x5e, 0xbe, 0x3b, 0x88, 0xd2, 0x72, 0x9f, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x47, 0xe9, 0x3e, 0x1b, 0x14, 0x7c, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x38, 0x55, 0xf7, 0xd9, 0xf0, 0x6f, 0xce, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x0e, 0xd8, 0x7d, 0x0e, 0x96, 0xe3, 0xc6, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x78, 0x6c, 0xf7, 0xd9, 0xf0, 0xb6, 0xce, 0x80, 0xd7, 0x16, 0x76, 0xb6, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0xe2, 0xdd, 0x67, 0xc3, 0x25, 0xb5, 0xc1, 0x83, 0xf7, 0x94, 0xd7, 0x20, 0xda, 0x7b, 0xaa, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x3c, 0xc2, 0xfb, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xd9, 0xf1, 0x3e, 0x1b, 0x3e, 0x77, 0xd9, 0x20, 0x6d, 0xba, 0x71, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0xc7, 0xbc, 0xcf, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x51, 0x48, 0xef, 0x73, 0x50, 0xe2, 0xe3, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0xd5, 0xde, 0xe7, 0xe0, 0xb0, 0x32, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x2f, 0x7c, 0x9f, 0x83, 0xd7, 0xce, 0xc9, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xfd, 0x7c, 0x9f, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x73, 0x67, 0xee, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xa1, 0x7d, 0x9f, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0x95, 0xdf, 0xe7, 0xa0, 0xc8, 0xc4, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0xb4, 0xbf, 0xcf, 0xc1, 0x61, 0x65, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x8d, 0x00, 0x3f, 0x07, 0xaf, 0x9d, 0x93, 0xaf, 0x35, 0x88, 0x69, 0xa9, 0xac, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x2b, 0x02, 0x3f, 0x07, 0x05, 0x45, 0x66, 0x2b, 0xe0, 0xb9, 0xbd, 0xb1, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x81, 0xe7, 0xf6, 0xc6, 0x36, 0x80, 0x77, 0xd8, 0x18, 0x5d, 0x9a, 0x5d, 0x18, 0x5d, 0x19, 0xc8, 0x5c, 0xd9, 0x98, 0x5c, 0x19, 0xdd, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x07, 0x82, 0x9f, 0x0d, 0xbf, 0x28, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x65, 0xa5, 0xcd, 0x06, 0x6f, 0x28, 0x72, 0x1e, 0x38, 0x06, 0xc3, 0x66, 0xc3, 0x9f, 0x4b, 0x83, 0x87, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0x0c, 0x86, 0xfc, 0x20, 0x92, 0x51, 0xb3, 0x0e, 0x1e, 0x0b, 0xef, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0xb4, 0xe0, 0x67, 0xc3, 0x27, 0x36, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x58, 0x38, 0xf8, 0xd9, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xae, 0x10, 0x7e, 0x36, 0x7c, 0xee, 0x32, 0xe0, 0xb5, 0x85, 0x9d, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x3a, 0x13, 0x7e, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x82, 0x85, 0x9f, 0x83, 0x22, 0x13, 0x77, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x29, 0x0d, 0x3f, 0x07, 0x45, 0xa5, 0xf8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xa6, 0x1d, 0x7e, 0x0e, 0x4f, 0xeb, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x30, 0x88, 0x9f, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x62, 0x6f, 0xe4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xd3, 0x88, 0x9f, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0x61, 0xe2, 0xe7, 0xa0, 0xc4, 0xc7, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x4d, 0xc5, 0xcf, 0x41, 0x51, 0x29, 0xbe, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x72, 0x8b, 0x9f, 0xc3, 0xd3, 0x3a, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0x0e, 0xe3, 0x67, 0x83, 0x25, 0xf5, 0x4b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x28, 0xee, 0xf8, 0xd9, 0xf0, 0xc6, 0xdd, 0x86, 0x97, 0xef, 0x0e, 0xa2, 0x82, 0xe3, 0x67, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xee, 0xc7, 0xcf, 0x06, 0x05, 0x1f, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x32, 0x42, 0x7e, 0x36, 0xfc, 0x9b, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x3c, 0x91, 0x9f, 0x83, 0x88, 0xc8, 0xca, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x91, 0x40, 0xf2, 0x73, 0x10, 0x39, 0x98, 0x59, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x1a, 0x4b, 0x7e, 0x36, 0x7c, 0x62, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x78, 0x93, 0x9f, 0x0d, 0xbf, 0xb8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0x07, 0xe5, 0x67, 0xc3, 0xe7, 0x2e, 0x83, 0x8f, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x06, 0x53, 0x7e, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x74, 0x95, 0x9f, 0x83, 0x12, 0x1f, 0x77, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x0d, 0x2d, 0x3f, 0x07, 0x87, 0x95, 0xb9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x0c, 0xbb, 0xfc, 0x1c, 0xbc, 0x76, 0x4e, 0xbe, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x74, 0xc1, 0xfc, 0x6c, 0xf8, 0xdc, 0x65, 0xf0, 0x79, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x68, 0xcc, 0xcf, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0x30, 0xf3, 0x73, 0x50, 0x64, 0xe2, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0xa6, 0xe6, 0xe7, 0xe0, 0xb0, 0x32, 0xb7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x76, 0x9b, 0x9f, 0x83, 0xd7, 0xce, 0xc9, 0xd7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x45, 0x9c, 0x9f, 0x0d, 0x97, 0xd4, 0x06, 0x0f, 0xde, 0x53, 0x5e, 0x83, 0x68, 0xef, 0xa9, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x71, 0xa0, 0xf3, 0xb3, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x44, 0xed, 0xfc, 0x6c, 0xf8, 0xdc, 0x65, 0x83, 0xb4, 0xe9, 0xc6, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x97, 0x3c, 0x3f, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x7f, 0xcf, 0xcf, 0x86, 0x07, 0x25, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0x31, 0xa2, 0x26, 0xd4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xac, 0x9f, 0x9f, 0x0d, 0x6f, 0xeb, 0x0c, 0x7c, 0x19, 0xd9, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x76, 0x83, 0x7e, 0x0e, 0x4f, 0xef, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xac, 0xa1, 0x9f, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x73, 0x67, 0xee, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x50, 0xa2, 0x9f, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0xc1, 0xe8, 0x67, 0xc3, 0x83, 0x92, 0x1b, 0x44, 0x52, 0x72, 0xd6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xb4, 0xa3, 0x9f, 0x83, 0x08, 0x53, 0xce, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x72, 0xd2, 0xcf, 0xc1, 0xe1, 0x9c, 0xaf, 0xd6, 0x20, 0xa6, 0xa5, 0xb2, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xa4, 0x2d, 0xfd, 0x6c, 0x70, 0x0c, 0x37, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0xcd, 0xf4, 0xb3, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xa4, 0x38, 0xfd, 0x6c, 0xf8, 0xdc, 0x65, 0x83, 0xb4, 0xe9, 0xc6, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x73, 0x4f, 0x3f, 0x87, 0xa7, 0x77, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x51, 0x0f, 0xf5, 0xb3, 0xe1, 0x73, 0x97, 0x01, 0x6f, 0xee, 0xcc, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x11, 0x24, 0xf5, 0x73, 0x70, 0x38, 0xe7, 0xab, 0xc3, 0x29, 0xb6, 0x86, 0x1a, 0xb1, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xa8, 0x11, 0x0d, 0xe0, 0x3b, 0x26, 0x57, 0x16, 0x46, 0x57, 0x06, 0xb2, 0x56, 0x96, 0x07, 0x17, 0x96, 0x26, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0x88, 0xea, 0x67, 0xc3, 0x2f, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc1, 0x5b, 0xb3, 0x9b, 0x07, 0xae, 0xc0, 0xb0, 0xdc, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x57, 0x56, 0xda, 0x6c, 0xf0, 0xf0, 0xed, 0xe6, 0x83, 0x47, 0x85, 0x37, 0x6f, 0xf8, 0x73, 0x69, 0xf0, 0x7b, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xca, 0x4a, 0x9b, 0x0d, 0x9e, 0xf1, 0xdd, 0x7c, 0xf0, 0xa8, 0xf0, 0xe6, 0xc3, 0x0f, 0x35, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x15, 0x18, 0x26, 0x07, 0x2f, 0x4b, 0x6f, 0xde, 0xf0, 0xe7, 0xd2, 0x06, 0x0f, 0xe5, 0x3c, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xb2, 0xd2, 0x66, 0x83, 0x07, 0x9d, 0x37, 0x1f, 0xbc, 0x2c, 0xbd, 0xf9, 0xf0, 0x43, 0x4d, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xd2, 0xab, 0x7e, 0x36, 0x7c, 0x62, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xa8, 0xab, 0x9f, 0x0d, 0x9f, 0xbb, 0x6c, 0x70, 0x16, 0x32, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x51, 0x89, 0xf5, 0xb3, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xec, 0x67, 0xfd, 0x1c, 0xfe, 0x04, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x06, 0xd7, 0xcf, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xd1, 0xd7, 0xf5, 0x73, 0x10, 0x0a, 0xac, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x08, 0xfd, 0xfa, 0x39, 0x38, 0xe4, 0xb7, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0x27, 0xec, 0xe7, 0xe0, 0xb0, 0x32, 0xd7, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x26, 0xc6, 0x7e, 0x36, 0x7c, 0x90, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x39, 0xb2, 0x9f, 0x0d, 0xff, 0xe6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0xba, 0xec, 0x67, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc8, 0x39, 0xfb, 0x39, 0x08, 0xbb, 0xdb, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x84, 0xa5, 0xfd, 0x1c, 0x1c, 0xf2, 0x5b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x31, 0xb0, 0xf6, 0x73, 0x70, 0x58, 0x99, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x29, 0xdb, 0xcf, 0xe1, 0xc1, 0x9b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x54, 0xb8, 0xfd, 0x1c, 0x1e, 0xbc, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x11, 0xf8, 0xf6, 0x73, 0x78, 0x4c, 0xa6, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x11, 0x71, 0x3f, 0x1b, 0x3e, 0xb1, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x9d, 0xdc, 0xcf, 0x86, 0xcf, 0x5d, 0x36, 0x78, 0x0a, 0x52, 0xf4, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xdc, 0xb9, 0x9f, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0xa3, 0xee, 0xe7, 0x20, 0x09, 0x52, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x43, 0x77, 0x3f, 0x07, 0xa9, 0x99, 0xb0, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf8, 0xc6, 0xfb, 0x39, 0x88, 0x5d, 0x45, 0xaa, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xbc, 0xe9, 0xfd, 0x6c, 0xf8, 0xc4, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xd3, 0x7b, 0x3f, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x46, 0xdf, 0xcf, 0x86, 0xcf, 0x5d, 0x06, 0x1f, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x74, 0xf9, 0xfd, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xc3, 0x7f, 0x3f, 0x07, 0x25, 0x3e, 0xee, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xc2, 0x03, 0x7f, 0x0e, 0x0e, 0x2b, 0x73, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb8, 0x1c, 0xfc, 0x39, 0x78, 0xed, 0x51, 0x74, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc8, 0x28, 0xfc, 0xd9, 0xf0, 0xb9, 0xcb, 0xe0, 0xf3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x30, 0xc3, 0x9f, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0xf8, 0xf0, 0xe7, 0xa0, 0xc8, 0xc4, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x79, 0xe2, 0xcf, 0xc1, 0x61, 0x65, 0x6e, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xa1, 0x8b, 0x3f, 0x07, 0xaf, 0x3d, 0x8a, 0xae, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x25, 0x8d, 0x3f, 0x1b, 0x2e, 0xa9, 0x0d, 0x1e, 0xbc, 0xa7, 0xbc, 0x06, 0xd1, 0xde, 0x53, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0xd4, 0xf1, 0x67, 0xc3, 0x2f, 0x2e, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x58, 0x7f, 0xfc, 0xd9, 0xf0, 0xb9, 0xcb, 0x06, 0x69, 0xd3, 0x8d, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x62, 0x22, 0x7f, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x4b, 0xc9, 0x9f, 0x0d, 0x0f, 0x4a, 0x6e, 0x10, 0x49, 0xc9, 0x59, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xe6, 0x27, 0x7f, 0x0e, 0x22, 0x4c, 0x39, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x51, 0x96, 0x3f, 0x87, 0xa7, 0x77, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0xfb, 0xe5, 0xcf, 0x86, 0xcf, 0x5d, 0x06, 0xbc, 0xb9, 0x33, 0x77, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x4d, 0xe6, 0xcf, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xf1, 0xa9, 0xf9, 0xb3, 0xe1, 0x41, 0xc9, 0x0d, 0x22, 0x29, 0x39, 0x6b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0xff, 0xe6, 0xcf, 0x41, 0x84, 0x29, 0x67, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0xcb, 0xf3, 0xe7, 0xe0, 0x70, 0xce, 0x57, 0x6b, 0x10, 0xd3, 0x52, 0x59, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xfa, 0x3f, 0x7f, 0x36, 0x38, 0x86, 0x1b, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x78, 0x0b, 0xfd, 0xd9, 0xf0, 0x8b, 0xcb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x7a, 0x45, 0x7f, 0x36, 0x7c, 0xee, 0xb2, 0x41, 0xda, 0x74, 0xe3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x03, 0xd2, 0x9f, 0xc3, 0xd3, 0x3b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x48, 0x2c, 0xfd, 0xd9, 0xf0, 0xb9, 0xcb, 0x80, 0x37, 0x77, 0xe6, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa8, 0x36, 0xfd, 0x39, 0x38, 0x9c, 0xf3, 0xd5, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x2b, 0xf0, 0x64, 0xe5, 0x86, 0xe7, 0x49, 0x36, 0x88, 0x9f, 0x7a, 0xa9, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xd1, 0xa8, 0x3f, 0x1b, 0x7e, 0x51, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x4e, 0xbb, 0x90, 0x0d, 0x9c, 0x76, 0x61, 0xb9, 0xe1, 0x73, 0xa5, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0xb4, 0x0b, 0xe1, 0xc0, 0x69, 0x17, 0x26, 0x1b, 0xfe, 0x5c, 0xda, 0xa0, 0x68, 0x3d, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0xd3, 0x2e, 0x0c, 0x0e, 0xe2, 0x4b, 0x42, 0xeb, 0x20, 0x3a, 0x86, 0xa8, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0xd3, 0x2e, 0x6c, 0x06, 0x4e, 0xbb, 0x30, 0xdc, 0xf0, 0xe7, 0xd2, 0x06, 0x0b, 0x70, 0xcf, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0xb4, 0x0b, 0xbb, 0x83, 0x28, 0xab, 0xd0, 0x3a, 0xfc, 0x50, 0xd3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x34, 0xd5, 0x9f, 0x0d, 0x7f, 0xd1, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0xb7, 0x5d, 0xc8, 0x06, 0x6e, 0xbb, 0xb0, 0xda, 0x20, 0xf4, 0x4b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0xdb, 0x2e, 0x84, 0x03, 0xb7, 0x5d, 0x18, 0x1c, 0x94, 0x4d, 0x98, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x6d, 0x17, 0x16, 0x03, 0xb7, 0x5d, 0x18, 0x1d, 0x1c, 0x5b, 0x4a, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x71, 0xba, 0xfa, 0xb3, 0xe1, 0x13, 0x9b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x0c, 0xb4, 0xfe, 0x6c, 0xb0, 0x46, 0xaa, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xef, 0xae, 0x3f, 0x1b, 0x3e, 0x57, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x4e, 0xec, 0xcf, 0x86, 0x3f, 0x97, 0x06, 0x3e, 0xcd, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0x03, 0xfb, 0x73, 0xf8, 0xa1, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xd5, 0xb4, 0x3f, 0x1b, 0xfe, 0x5c, 0xda, 0xa0, 0x2c, 0x2c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xd1, 0x38, 0xfb, 0x73, 0xf8, 0xa1, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x6f, 0xb8, 0x3f, 0x1b, 0xfe, 0x5c, 0x1a, 0xf0, 0xc6, 0xe0, 0xd0, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x2b, 0xb7, 0x3f, 0x87, 0x1f, 0x6a, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xf1, 0xb3, 0xfb, 0xb3, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x94, 0xf2, 0xfe, 0x1c, 0x2c, 0x40, 0x64, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0xc4, 0xef, 0xcf, 0xc1, 0x32, 0xf0, 0xf3, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xf4, 0x02, 0xff, 0x6c, 0xb0, 0xaa, 0x57, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x19, 0xc2, 0x3f, 0x1b, 0x94, 0x25, 0xef, 0x1b, 0x3c, 0x96, 0x3e, 0x78, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x7b, 0xc3, 0x3f, 0x1b, 0x1e, 0x94, 0x5c, 0xc3, 0xdb, 0x3a, 0x1b, 0x44, 0x9f, 0xa0, 0x4e, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xb2, 0x89, 0x7f, 0x36, 0xbc, 0xad, 0x33, 0xe0, 0x85, 0x95, 0xcd, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0xde, 0xf8, 0x67, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd8, 0x42, 0xfe, 0x39, 0x48, 0x4f, 0x8e, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x9f, 0xf2, 0xcf, 0xc1, 0xa1, 0xb5, 0xab, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x1c, 0x31, 0xff, 0x1c, 0x14, 0x14, 0x99, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0xcd, 0xf9, 0xe7, 0x20, 0xb6, 0x97, 0xa8, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0x01, 0xfd, 0x73, 0x50, 0x78, 0x19, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x48, 0x8e, 0xfe, 0x39, 0x88, 0x3e, 0x1e, 0xaa, 0x59, 0xe0, 0xcb, 0xdc, 0x0d, 0xcf, 0x93, 0x6c, 0x10, 0x5b, 0x01, 0x53, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xfa, 0xa6, 0x7f, 0x36, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0xdc, 0x79, 0x21, 0x1b, 0xb8, 0xf3, 0xc2, 0x72, 0xc3, 0xe7, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x9d, 0x17, 0xc2, 0x81, 0x3b, 0x2f, 0x4c, 0x36, 0xfc, 0xb9, 0xb4, 0x41, 0xd1, 0x7a, 0xb2, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x65, 0xa5, 0xcd, 0x06, 0x6f, 0xd5, 0x26, 0x3f, 0x88, 0x60, 0x1a, 0xad, 0x83, 0xe8, 0x18, 0xa2, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0xee, 0xbc, 0xb0, 0x19, 0xb8, 0xf3, 0xc2, 0x70, 0xc3, 0x9f, 0x4b, 0x03, 0x5e, 0xdb, 0xdc, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x77, 0x5e, 0xd8, 0x1d, 0x44, 0xf2, 0x8d, 0xd6, 0xe1, 0x87, 0x9a, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x54, 0x54, 0xff, 0x6c, 0xf8, 0x8b, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0x38, 0xf4, 0x42, 0x76, 0xf0, 0xac, 0x74, 0xf2, 0x83, 0x63, 0x4b, 0xe9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x2a, 0xeb, 0x9f, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0xf6, 0xfa, 0xe7, 0x20, 0xbd, 0x69, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x0f, 0xda, 0x3f, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xdc, 0xf6, 0xcf, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x2f, 0x54, 0x0f, 0x5e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x35, 0xf7, 0xcf, 0x86, 0x07, 0x25, 0x37, 0x88, 0xc6, 0x14, 0xad, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x37, 0xde, 0x3f, 0x07, 0x51, 0xaa, 0xa2, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x4f, 0xf0, 0x9f, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0x40, 0xfc, 0xe7, 0x20, 0x3d, 0x39, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x21, 0xe4, 0x3f, 0x07, 0x87, 0xd6, 0xae, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x11, 0x5e, 0xfe, 0x73, 0x50, 0x50, 0x64, 0xb6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xff, 0xf3, 0x9f, 0x83, 0x98, 0xf2, 0x8a, 0xaa, 0xc3, 0x29, 0xd6, 0x02, 0x1f, 0x36, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x58, 0x4e, 0xff, 0xd9, 0xa0, 0x64, 0x61, 0x9f, 0x65, 0xd6, 0xe0, 0x61, 0xe7, 0xca, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x32, 0xd6, 0x7f, 0x36, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x95, 0x95, 0x36, 0x1b, 0xbc, 0x5b, 0xb2, 0x77, 0xe0, 0x6e, 0x0b, 0x93, 0x0d, 0x7f, 0x2e, 0x6d, 0xb0, 0x00, 0xf7, 0x7c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0xee, 0xb6, 0xb0, 0x38, 0x88, 0x86, 0x24, 0xad, 0xc3, 0x0f, 0x35, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x5a, 0xd9, 0x7f, 0x36, 0xfc, 0x45, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x1c, 0x6e, 0x21, 0x1d, 0x38, 0xdc, 0xc2, 0x6e, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x0e, 0xb7, 0x10, 0x0f, 0x1c, 0x6e, 0x61, 0x72, 0x50, 0x36, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x87, 0x5b, 0xd8, 0x0c, 0x1c, 0x6e, 0x61, 0x76, 0x70, 0x6c, 0x29, 0x6d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x7d, 0xfb, 0xcf, 0x86, 0x4f, 0x6c, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0xf5, 0xfe, 0xb3, 0xc1, 0x1a, 0xa9, 0xa6, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xd4, 0xc4, 0xff, 0x6c, 0xf8, 0x5c, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xc7, 0xf3, 0x3f, 0x1b, 0xfe, 0x5c, 0xda, 0x20, 0x31, 0xf1, 0x68, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x9f, 0xfc, 0xcf, 0xe1, 0x87, 0x9a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xb4, 0xde, 0xff, 0x6c, 0xf8, 0x73, 0x69, 0xc0, 0x6b, 0x9b, 0x3b, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x94, 0xd9, 0xff, 0x1c, 0x7e, 0xa8, 0x69, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x9d, 0xfe, 0xcf, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x91, 0xbd, 0xff, 0x73, 0xb0, 0x00, 0x91, 0x75, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x45, 0xfe, 0x3f, 0x07, 0xcb, 0xc0, 0xcf, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x51, 0xff, 0xff, 0xb3, 0x41, 0xb1, 0xa3, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xab, 0x00, 0xa0, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0x57, 0x00, 0x68, 0xc3, 0xdb, 0x3a, 0x1b, 0x3c, 0x6f, 0x6b, 0xb9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x7c, 0x13, 0x00, 0x1d, 0xa4, 0xd1, 0x1e, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0xd2, 0x00, 0xe8, 0x20, 0xa6, 0xbc, 0xa2, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x62, 0x03, 0xd0, 0x41, 0x41, 0x91, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0x06, 0x01, 0x68, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb8, 0x4c, 0x00, 0x3a, 0x38, 0x4b, 0x81, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0x7e, 0x01, 0xe8, 0x20, 0xa6, 0xbc, 0xa2, 0x5a, 0x0d, 0x1e, 0xf1, 0xaf, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0xe3, 0x01, 0x68, 0xc3, 0x2f, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x0d, 0x17, 0xd2, 0x81, 0x1b, 0x2e, 0xac, 0x37, 0x7c, 0xae, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0xdc, 0x70, 0x21, 0x1e, 0xb8, 0xe1, 0xc2, 0x6c, 0xc3, 0x9f, 0x4b, 0x03, 0x9e, 0x18, 0xdc, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0x37, 0x5c, 0x98, 0x1c, 0x44, 0xee, 0x98, 0xd6, 0xc1, 0x03, 0x6e, 0x32, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x1b, 0x2e, 0xec, 0x06, 0x6e, 0xb8, 0x30, 0xde, 0xf0, 0xe7, 0xd2, 0x80, 0xd7, 0x36, 0x77, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0x0d, 0x17, 0xb6, 0x07, 0x51, 0x6c, 0xa6, 0x75, 0xf8, 0xa1, 0xa6, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xb9, 0x10, 0x40, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x8e, 0xb8, 0x90, 0x0e, 0x1c, 0x71, 0x61, 0x70, 0x70, 0x6c, 0x29, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xf1, 0x1f, 0x01, 0xb4, 0x41, 0x09, 0x8f, 0xb9, 0x41, 0x4c, 0x4b, 0x65, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0x73, 0x02, 0x68, 0x83, 0x25, 0xf5, 0x4b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x88, 0xbd, 0x00, 0x3a, 0x88, 0x48, 0xaa, 0xac, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x99, 0x19, 0x40, 0x07, 0xe1, 0xa9, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0x61, 0x03, 0x68, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x6b, 0x1c, 0x40, 0x1b, 0xfe, 0xcd, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x71, 0x07, 0xd0, 0xc1, 0x72, 0xdc, 0xb8, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x49, 0x1f, 0x40, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x2b, 0x08, 0xd0, 0x41, 0x91, 0x89, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x69, 0x11, 0xa0, 0x83, 0xa2, 0x52, 0x7c, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x81, 0x24, 0x40, 0x1b, 0xde, 0xd6, 0x19, 0xf0, 0xc4, 0xe0, 0xd6, 0xda, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xf1, 0x60, 0x02, 0xb4, 0xe1, 0x13, 0x9b, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xcc, 0x9d, 0x00, 0x6d, 0xf8, 0xdc, 0x65, 0xe0, 0xe1, 0xd6, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xb7, 0x28, 0x40, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x87, 0x0a, 0xd0, 0x41, 0x89, 0x8f, 0xbb, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x21, 0x16, 0xa0, 0x83, 0xc3, 0xca, 0xdc, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xf6, 0x5b, 0x80, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xaf, 0x17, 0xa0, 0x83, 0x12, 0x1f, 0x77, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x87, 0x31, 0x40, 0x07, 0x45, 0xa5, 0xf8, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xd6, 0x65, 0x80, 0x0e, 0x62, 0x84, 0x4e, 0xab, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x4c, 0xd2, 0x00, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xf7, 0x35, 0x40, 0x1b, 0x3e, 0x77, 0xd9, 0x20, 0xca, 0x2b, 0x85, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xec, 0xdc, 0x00, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xa1, 0x38, 0x40, 0x07, 0xa9, 0xb4, 0xb2, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x18, 0xd8, 0x01, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xce, 0x78, 0x80, 0x36, 0x3c, 0x28, 0xb9, 0x86, 0xb7, 0x75, 0x36, 0x88, 0xf2, 0x4a, 0xa1, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x14, 0xf7, 0x00, 0x1d, 0x44, 0x98, 0x72, 0xd6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x4e, 0x80, 0x80, 0x0e, 0x22, 0xe4, 0x03, 0x6b, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xc3, 0x41, 0x40, 0x07, 0x71, 0xe0, 0x95, 0x55, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x0e, 0x87, 0x80, 0x36, 0x7c, 0x62, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x75, 0x22, 0xa0, 0x0d, 0x9f, 0xbb, 0x0c, 0xf8, 0x73, 0x6d, 0x73, 0xe7, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x16, 0x23, 0xa0, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0xf2, 0x08, 0xe8, 0x20, 0x3e, 0x8f, 0xaa, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x11, 0x9b, 0x04, 0x74, 0x10, 0x53, 0x5e, 0x51, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x08, 0x5a, 0x02, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x4a, 0x99, 0x80, 0x0e, 0xd2, 0x9b, 0x66, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x11, 0xf0, 0x04, 0xb4, 0xe1, 0xdd, 0x9e, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x8c, 0x41, 0x01, 0x6d, 0x50, 0x96, 0xbc, 0x6f, 0xf0, 0x42, 0xf5, 0xe0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x24, 0x47, 0x01, 0x6d, 0x78, 0x50, 0x72, 0x0d, 0x6f, 0xeb, 0x6c, 0x10, 0xf1, 0xff, 0x3a, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x28, 0x99, 0x02, 0x3a, 0x88, 0x52, 0x15, 0xad, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x44, 0x56, 0x01, 0x1d, 0xc4, 0x53, 0xa0, 0xd6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x72, 0xae, 0x80, 0x0e, 0x0a, 0x8a, 0xcc, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x71, 0x95, 0x05, 0xb4, 0xe1, 0x6d, 0x9d, 0x0d, 0x62, 0xc1, 0x50, 0xab, 0x5a, 0x0d, 0x5e, 0x95, 0xa6, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0x68, 0x0b, 0x68, 0xc3, 0x2f, 0x4a, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x0d, 0x5e, 0x59, 0x69, 0xb3, 0xc0, 0xb1, 0x16, 0xd2, 0x81, 0x63, 0x2d, 0x4c, 0x36, 0xfc, 0xb9, 0x34, 0xe0, 0xb5, 0xcd, 0x9d, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0xac, 0x85, 0xc5, 0x41, 0xc4, 0x4d, 0x6a, 0x1d, 0x7e, 0xa8, 0xd9, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xd1, 0xcd, 0x05, 0xb4, 0xe1, 0x2f, 0x9a, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x06, 0xaf, 0xac, 0xb4, 0x59, 0xe0, 0x5a, 0x0b, 0xe9, 0xc0, 0xb5, 0x16, 0x06, 0x07, 0xc7, 0x96, 0xd2, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x23, 0x5e, 0x40, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0xe1, 0x17, 0xd0, 0x41, 0x7a, 0xd3, 0xec, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xc6, 0xc3, 0x80, 0x36, 0xfc, 0xe2, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x94, 0x31, 0xa0, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0x91, 0x0c, 0x68, 0xc3, 0xdb, 0x3a, 0x1b, 0xbc, 0x26, 0x69, 0xb9, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x84, 0x9a, 0x01, 0x1d, 0xc4, 0x94, 0x57, 0x54, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x78, 0x41, 0x03, 0x3a, 0x88, 0x29, 0xaf, 0xa8, 0x9a, 0x35, 0x78, 0x79, 0xca, 0xf2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xef, 0x34, 0xa0, 0x0d, 0xbf, 0x28, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0xd7, 0x5c, 0x48, 0x07, 0xae, 0xb9, 0xb0, 0xde, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0xcd, 0x85, 0x78, 0xe0, 0x9a, 0x0b, 0xb3, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x62, 0x70, 0xeb, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x5c, 0x73, 0x61, 0x72, 0x10, 0x1d, 0xa1, 0x5a, 0x07, 0x0f, 0xb8, 0xc9, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0xae, 0xb9, 0xb0, 0x1b, 0xb8, 0xe6, 0xc2, 0x78, 0xc3, 0x9f, 0x4b, 0x1b, 0x2c, 0xc0, 0x3d, 0xdf, 0x60, 0x5d, 0xdc, 0xd1, 0x1a, 0xbc, 0xb2, 0xd2, 0x66, 0x81, 0x6b, 0x2e, 0x6c, 0x0f, 0x22, 0x85, 0x54, 0xeb, 0xf0, 0x43, 0x4d, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xfa, 0xd6, 0x80, 0x36, 0xfc, 0x45, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x9c, 0x73, 0x21, 0x1d, 0x38, 0xe7, 0xc2, 0x6e, 0x83, 0xd0, 0x2f, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0xce, 0xb9, 0x10, 0x0f, 0x9c, 0x73, 0x61, 0x72, 0x50, 0x36, 0x61, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0xe7, 0x5c, 0xd8, 0x0c, 0x9c, 0x73, 0x61, 0x76, 0x70, 0x6c, 0x29, 0x6d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x30, 0x1b, 0xd0, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0x31, 0x2d, 0x95, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x2d, 0x37, 0xa0, 0x0d, 0x96, 0xd4, 0x2f, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0x4e, 0x0e, 0xe8, 0x20, 0x22, 0xa9, 0xb2, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x64, 0xd1, 0x01, 0x1d, 0x84, 0xa7, 0xea, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xe6, 0x3a, 0xa0, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xa4, 0xdc, 0x01, 0x6d, 0xf8, 0x37, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x83, 0x78, 0x40, 0x07, 0xcb, 0x71, 0xe3, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x14, 0xe8, 0x01, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x67, 0x7b, 0x40, 0x07, 0x45, 0x26, 0xee, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x1a, 0xfb, 0x80, 0x0e, 0x8a, 0x4a, 0xf1, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xe4, 0xfc, 0x01, 0x1d, 0xc4, 0x08, 0x9d, 0x56, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x8e, 0x01, 0x81, 0x36, 0x7c, 0x62, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x16, 0x41, 0xa0, 0x0d, 0x9f, 0xbb, 0x0c, 0x3c, 0xdc, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0x6e, 0x10, 0x68, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb8, 0x26, 0x04, 0x3a, 0x28, 0xf1, 0x71, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0x6f, 0x08, 0x74, 0x70, 0x58, 0x99, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x2c, 0x22, 0xd0, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x71, 0xa1, 0x08, 0x74, 0x50, 0xe2, 0xe3, 0xae, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0x87, 0x11, 0xe8, 0xa0, 0xa8, 0x14, 0x5f, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0x7a, 0x23, 0xd0, 0x41, 0x8c, 0xd0, 0x69, 0xd5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xc8, 0x47, 0xa0, 0x0d, 0x9f, 0xd8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0x1e, 0x12, 0x68, 0xc3, 0xe7, 0x2e, 0x1b, 0x44, 0x79, 0xa5, 0xd0, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x1b, 0x49, 0xa0, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0x73, 0x12, 0xe8, 0x20, 0x95, 0x56, 0x76, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xbd, 0x95, 0x40, 0x1b, 0xde, 0xed, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xc8, 0x25, 0xd0, 0x86, 0x07, 0x25, 0x37, 0x88, 0xa7, 0x40, 0xad, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x7f, 0x98, 0x40, 0x07, 0x11, 0xa6, 0x9c, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x70, 0x4d, 0xa0, 0x83, 0x08, 0xf9, 0xc0, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x1f, 0x27, 0xd0, 0x41, 0x1c, 0x78, 0x65, 0xd5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x20, 0x4f, 0xa0, 0x0d, 0x9f, 0xd8, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0xf4, 0x13, 0x68, 0x83, 0x35, 0x52, 0x4d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x58, 0x0c, 0x05, 0xda, 0xf0, 0xb9, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x32, 0x48, 0x81, 0x36, 0xfc, 0xb9, 0x34, 0xf0, 0x69, 0xf6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x6a, 0x51, 0xa0, 0xc3, 0x0f, 0x35, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xa8, 0x3d, 0x05, 0xda, 0xf0, 0xe7, 0xd2, 0x06, 0x65, 0x61, 0xf1, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x38, 0x53, 0xa0, 0xc3, 0x0f, 0x35, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x98, 0x5a, 0x05, 0xda, 0xf0, 0xe7, 0xd2, 0x80, 0x37, 0x06, 0x87, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x58, 0x50, 0x05, 0x3a, 0xfc, 0x50, 0xd3, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x10, 0x57, 0xa0, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0xf0, 0x15, 0xe8, 0x60, 0x01, 0x22, 0xeb, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xea, 0x63, 0x81, 0x0e, 0x96, 0x81, 0x9f, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xe2, 0x74, 0x16, 0x68, 0xc3, 0x27, 0x36, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x48, 0xa8, 0x05, 0xda, 0xf0, 0xb9, 0xcb, 0x80, 0x47, 0x27, 0x97, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x68, 0xb2, 0x05, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x66, 0x6f, 0x81, 0x36, 0x28, 0x4b, 0xde, 0x37, 0x78, 0x2c, 0x7d, 0xf0, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x2e, 0x72, 0x81, 0x36, 0x3c, 0x28, 0xb9, 0x41, 0x04, 0x35, 0x6a, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x98, 0xd3, 0x05, 0x3a, 0x88, 0x52, 0x15, 0xad, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x7c, 0xf3, 0x02, 0x1d, 0xc4, 0x53, 0xa0, 0xd6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0x12, 0x7d, 0x81, 0x0e, 0x0a, 0x8a, 0xcc, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0x0a, 0x0c, 0x74, 0x10, 0xdb, 0x4b, 0x54, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x28, 0x13, 0x06, 0x3a, 0x28, 0xbc, 0x8c, 0xd7, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0x41, 0x0c, 0x74, 0x10, 0x7d, 0x3c, 0x54, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd8, 0x2d, 0x06, 0xda, 0xa0, 0x84, 0xc7, 0x5c, 0xc0, 0xa3, 0x93, 0xcb, 0x5b, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xd5, 0x31, 0xd0, 0x41, 0x41, 0x91, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0x17, 0x19, 0x68, 0xc3, 0xbb, 0x3d, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xf8, 0x50, 0x06, 0xda, 0xf0, 0xa0, 0xe4, 0x06, 0x11, 0x7c, 0x55, 0xb5, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0x6f, 0x19, 0x68, 0xc3, 0x83, 0x92, 0x6b, 0x78, 0x5b, 0x67, 0xe0, 0xc3, 0xe6, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x5c, 0x33, 0x03, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x3d, 0xce, 0x40, 0x1b, 0x1e, 0x94, 0xdc, 0xa0, 0xe9, 0xe3, 0xcb, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x9d, 0xcf, 0x40, 0x1b, 0x1e, 0x94, 0xdc, 0x20, 0x8a, 0xc5, 0x9b, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xf4, 0x43, 0x03, 0x1d, 0xac, 0x32, 0x65, 0x5d, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xe6, 0x34, 0xd0, 0x41, 0x8c, 0xd0, 0x69, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xfd, 0x6a, 0xa0, 0x0d, 0x6f, 0xeb, 0x0c, 0x5e, 0x1f, 0x44, 0x53, 0xb6, 0x56, 0xab, 0xc1, 0x6b, 0x92, 0x96, 0x37, 0x58, 0x17, 0x77, 0xb4, 0x41, 0x84, 0x5f, 0x03, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0xb8, 0xd8, 0x42, 0x3a, 0x70, 0xb1, 0x85, 0xc9, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0xb6, 0xb9, 0x73, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0x2e, 0xb6, 0xb0, 0x38, 0x88, 0xad, 0x72, 0xad, 0xc3, 0x0f, 0x35, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xee, 0xb2, 0x81, 0x36, 0xfc, 0x45, 0xb3, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x95, 0x95, 0x36, 0x0b, 0x9c, 0x6c, 0x21, 0x1d, 0x38, 0xd9, 0xc2, 0xe0, 0xe0, 0xd8, 0x52, 0xba, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0xa2, 0x57, 0x1b, 0x68, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x98, 0x96, 0xca, 0x5a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x16, 0x37, 0xd0, 0x06, 0x4b, 0xea, 0x97, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xf1, 0x06, 0x0e, 0x74, 0x10, 0x91, 0x54, 0x59, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xae, 0xc4, 0x81, 0x0e, 0xc2, 0x53, 0x75, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0xf2, 0x38, 0xd0, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xf1, 0x52, 0x0e, 0xb4, 0xe1, 0x41, 0xc9, 0x0d, 0xe2, 0xf3, 0xa8, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xa2, 0x39, 0xd0, 0x41, 0x84, 0x29, 0x67, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x22, 0x1d, 0x1d, 0xe8, 0x20, 0xa6, 0xbc, 0xa2, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xf1, 0xa8, 0x0e, 0x74, 0x10, 0x8b, 0x5c, 0x59, 0x1d, 0x4e, 0xb1, 0x5a, 0x83, 0xe7, 0x6d, 0x2d, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x58, 0x62, 0x07, 0xda, 0xf0, 0x8b, 0xd2, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0xbe, 0x85, 0x74, 0xe0, 0x7c, 0x0b, 0xd3, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0xe7, 0x5b, 0x88, 0x07, 0xce, 0xb7, 0xb0, 0xd9, 0xf0, 0xe7, 0xd2, 0x06, 0x89, 0x89, 0x47, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0xbe, 0x85, 0xc9, 0x41, 0xd4, 0xd4, 0x6b, 0x1d, 0x7e, 0xa8, 0x59, 0x83, 0x75, 0x71, 0x47, 0x6b, 0xf0, 0xca, 0x4a, 0x9b, 0x05, 0xce, 0xb7, 0x30, 0x1a, 0x38, 0xdf, 0xc2, 0x72, 0xc3, 0x9f, 0x4b, 0x03, 0x5e, 0xdb, 0xdc, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x65, 0xa5, 0xcd, 0x02, 0xe7, 0x5b, 0x18, 0x1e, 0x44, 0x0a, 0xbe, 0xd6, 0xe1, 0x87, 0x9a, 0x36, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xa4, 0xb7, 0x03, 0x6d, 0xf8, 0x8b, 0x66, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x2b, 0x2b, 0x6d, 0x16, 0xb8, 0xdf, 0x42, 0x3a, 0x70, 0xbf, 0x85, 0xf8, 0xf0, 0xc1, 0xea, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x97, 0x77, 0xa0, 0x0d, 0xef, 0xf6, 0xac, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0x12, 0x1e, 0x68, 0xc3, 0x83, 0x92, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x28, 0x82, 0x15, 0x6a, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0x7b, 0x3c, 0xd0, 0x41, 0x84, 0x29, 0x67, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x62, 0x8a, 0x1e, 0xe8, 0x20, 0x8d, 0xf6, 0x68, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0xf5, 0xf5, 0x40, 0x07, 0x31, 0xe5, 0x15, 0xb5, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xca, 0x7b, 0xa0, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x73, 0x67, 0xee, 0x41, 0xb4, 0xf7, 0x54, 0x75, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0x0a, 0x3c, 0x59, 0xbe, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x19, 0x3c, 0x59, 0xde, 0x00, 0x7e, 0x6e, 0x65, 0x65, 0x64, 0x20, 0x64, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0x20, 0xde, 0xf2, 0x81, 0x36, 0xfc, 0xa2, 0xb4, 0x06, 0xeb, 0xe2, 0x8e, 0xd6, 0xe0, 0x95, 0x95, 0x36, 0x1b, 0xbc, 0x7e, 0xb6, 0x7b, 0xe0, 0xc6, 0x0b, 0xcb, 0x0d, 0x9f, 0x2b, 0xad, 0xc1, 0xba, 0xb8, 0xa3, 0x35, 0x78, 0x65, 0xa5, 0xcd, 0x06, 0x4f, 0xb5, 0xed, 0x1e, 0xb8, 0xf1, 0xc2, 0x64, 0xc3, 0x9f, 0x4b, 0x1b, 0x14, 0xad, 0x27, 0x1b, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0xe3, 0x85, 0xc1, 0x41, 0x24, 0x1f, 0x6c, 0x1d, 0x44, 0xc7, 0x10, 0xd5, 0x1a, 0xac, 0x8b, 0x3b, 0x5a, 0x83, 0x57, 0x56, 0xda, 0x2c, 0x70, 0xe3, 0x85, 0xcd, 0xc0, 0x8d, 0x17, 0x86, 0x1b, 0xfe, 0x5c, 0x1a, 0xf0, 0xc6, 0xe0, 0xd0, 0x0d, 0xd6, 0xc5, 0x1d, 0xad, 0xc1, 0x2b, 0x2b, 0x6d, 0x36, 0x78, 0x5e, 0x6f, 0xf7, 0x41, 0x3c, 0x2b, 0x6c, 0x1d, 0x7e, 0xa8, 0x69, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x44, 0xc1, 0x3e, 0xd0, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x31, 0xc6, 0x0f, 0x74, 0x70, 0x36, 0x74, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xc4, 0xae, 0x3f, 0xd0, 0x86, 0x77, 0x7b, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xb1, 0x01, 0x10, 0x74, 0xf0, 0x22, 0xfa, 0xe0, 0x35, 0x58, 0x17, 0x77, 0xb4, 0x41, 0xec, 0x08, 0x04, 0x1d, 0x1c, 0x5a, 0xbb, 0xd6, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x91, 0x3d, 0x10, 0x74, 0x10, 0x7d, 0x3c, 0x54, 0x75, 0x38, 0xc5, 0x3a, 0x9c, 0x62, 0xb3, 0x06, 0x31, 0x66, 0x17, 0xb4, 0xe1, 0x41, 0xc9, 0x35, 0x3c, 0x28, 0xb9, 0x86, 0xb7, 0x75, 0x36, 0x88, 0x8b, 0xb4, 0xa0, 0x36, 0x28, 0xbb, 0x64, 0x37, 0x88, 0x31, 0xbb, 0xa0, 0x0d, 0xde, 0x2c, 0x7c, 0x32, 0x1b, 0x94, 0x2c, 0xec, 0xb3, 0xcc, 0x02, 0x7e, 0x5a, 0x19, 0x9d, 0xb9, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x4a, 0xbd, 0xe2, 0xc1, 0xb1, 0xa5, 0xb4, 0x0d, 0x7f, 0xd1, 0xac, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0x53, 0xea, 0x15, 0x37, 0x7c, 0x51, 0xb3, 0xa1, 0x8e, 0x07, 0x5e, 0x1d, 0xde, 0xb1, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x0e, 0xaa, 0xfb, 0x41, 0x99, 0xa5, 0xdb, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x25, 0x3e, 0xee, 0x06, 0x87, 0x05, 0xb6, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0x53, 0xea, 0x15, 0x6b, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x1a, 0xf0, 0xae, 0xe1, 0x17, 0x97, 0x0d, 0x0e, 0x0b, 0x6c, 0x07, 0x05, 0xf1, 0xf8, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xc8, 0xc4, 0x3d, 0x88, 0xb7, 0x8c, 0xad, 0x5a, 0x0d, 0xe2, 0x22, 0x2d, 0x68, 0xc3, 0xe3, 0x23, 0x1b, 0xc4, 0x45, 0x5a, 0xd0, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0xda, 0x20, 0x1e, 0x64, 0xac, 0x0e, 0xca, 0x2c, 0xdd, 0x35, 0xfc, 0xb9, 0xb4, 0x41, 0xd1, 0x7a, 0x72, 0xf0, 0x88, 0x2e, 0xde, 0x0d, 0xa2, 0xda, 0x62, 0x6b, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x1c, 0x54, 0xf7, 0x83, 0x27, 0x76, 0xbc, 0xaf, 0xe1, 0xcf, 0xa5, 0x01, 0xaf, 0x6d, 0xee, 0x3c, 0x78, 0xfa, 0xb9, 0x5c, 0x1b, 0xbe, 0x7e, 0xd9, 0x20, 0xa6, 0xbc, 0xa2, 0x36, 0x28, 0x0c, 0x55, 0xd7, 0xf0, 0xb6, 0xce, 0xe0, 0xf0, 0x41, 0x24, 0x7a, 0x45, 0x6d, 0x50, 0x74, 0x1a, 0x6f, 0x50, 0x64, 0xe2, 0xae, 0xe1, 0x17, 0x97, 0x0d, 0x8a, 0x4a, 0xf1, 0x0d, 0x22, 0x35, 0x64, 0xab, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x0e, 0x31, 0x10, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xf8, 0x20, 0x12, 0xbd, 0xa2, 0x36, 0x28, 0x3a, 0x8d, 0x37, 0x28, 0xb6, 0x95, 0x37, 0x48, 0x39, 0xad, 0xda, 0xa0, 0xe8, 0x34, 0xde, 0xa0, 0x44, 0xaa, 0x5e, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x72, 0x52, 0x5f, 0xc3, 0xbb, 0x3d, 0x1b, 0x84, 0x02, 0xeb, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0x27, 0xd0, 0x06, 0x91, 0x1a, 0xb2, 0xb5, 0xc1, 0x7a, 0x84, 0xb7, 0x0e, 0xd2, 0xb5, 0x63, 0xdb, 0xf0, 0x8b, 0xd2, 0x06, 0xe7, 0x49, 0x95, 0x0d, 0x0a, 0xd2, 0xd8, 0x0d, 0xc2, 0x38, 0x63, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0x9a, 0xb1, 0x30, 0xb7, 0x19, 0xd9, 0x1a, 0x7e, 0x71, 0xd9, 0xe0, 0xd4, 0xdc, 0xb6, 0x86, 0xb7, 0x75, 0x06, 0x78, 0xe6, 0xd2, 0xce, 0xda, 0xc2, 0x5a, 0xc3, 0x2f, 0x2e, 0x07, 0x71, 0x91, 0x44, 0xb5, 0x86, 0x5f, 0x5c, 0x36, 0x08, 0x58, 0xd6, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x4f, 0xa0, 0x0d, 0xa2, 0xd5, 0x33, 0xea, 0xa0, 0x34, 0x43, 0x6f, 0x0d, 0xbf, 0xb8, 0x6c, 0x10, 0xb0, 0xac, 0x07, 0x11, 0x9b, 0xb1, 0x75, 0x50, 0xd6, 0x79, 0x6e, 0x50, 0x90, 0xc6, 0x6e, 0x10, 0x3d, 0x77, 0x52, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0xe0, 0x41, 0xf6, 0xd6, 0x22, 0xf7, 0x56, 0xe7, 0x46, 0x36, 0xb7, 0x41, 0xec, 0xe1, 0x58, 0x1d, 0xc4, 0x2b, 0x73, 0xd5, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0xc5, 0xb6, 0xf2, 0x06, 0x87, 0x05, 0xb6, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x4a, 0xa4, 0xea, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x2a, 0x27, 0xf5, 0x83, 0xa3, 0xab, 0xdc, 0x86, 0x5f, 0x94, 0x36, 0x38, 0x4f, 0xaa, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0xd0, 0x84, 0x91, 0x91, 0xcd, 0xc8, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0x19, 0xa0, 0x39, 0x2b, 0xa3, 0x9b, 0x91, 0x6d, 0x50, 0x46, 0x9f, 0x1f, 0xc4, 0x2b, 0x73, 0xd5, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x06, 0x68, 0xb6, 0x36, 0x28, 0xa3, 0xcf, 0x37, 0x88, 0xe9, 0x3c, 0xa9, 0x3a, 0x9c, 0x62, 0x6b, 0x10, 0x33, 0x75, 0x41, 0x1b, 0x1e, 0x1f, 0xd9, 0x20, 0x66, 0xea, 0x82, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0x36, 0x88, 0xc1, 0x8e, 0xad, 0x0d, 0xa2, 0xc8, 0x63, 0xeb, 0x20, 0x36, 0x2b, 0xb6, 0x36, 0xfc, 0x45, 0xb3, 0x86, 0xcf, 0x95, 0x36, 0x88, 0x22, 0x8f, 0xad, 0x0d, 0xa2, 0xda, 0x62, 0xab, 0x0d, 0x96, 0x54, 0x27, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0x7c, 0xdc, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0x61, 0x81, 0xed, 0xe0, 0xcc, 0xdc, 0x76, 0x10, 0xb1, 0x19, 0x5b, 0x1b, 0x14, 0xa4, 0xb1, 0x1b, 0x84, 0x71, 0xc6, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0xe2, 0x5d, 0xb6, 0x36, 0x88, 0x3d, 0x1c, 0xab, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xac, 0xa5, 0x6c, 0x6d, 0x10, 0x13, 0x2a, 0x5b, 0x1b, 0x44, 0xcf, 0xca, 0xd6, 0x1a, 0x7e, 0x71, 0xd9, 0xe0, 0xd4, 0xdc, 0x76, 0x10, 0xb1, 0x19, 0x5b, 0x07, 0x65, 0x9d, 0x67, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xac, 0xb7, 0xdd, 0xe0, 0xbc, 0x40, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x32, 0x71, 0x37, 0x88, 0x32, 0x9d, 0xad, 0x83, 0x78, 0x65, 0xae, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0xf8, 0xb8, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xc3, 0x02, 0xdb, 0x41, 0xeb, 0xb8, 0xcc, 0x07, 0xf1, 0xca, 0x5c, 0xd5, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x1b, 0x94, 0x2c, 0xec, 0xb3, 0xcc, 0x1a, 0xc4, 0xca, 0xcb, 0xd6, 0x06, 0x07, 0x2c, 0xba, 0x35, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0x36, 0x88, 0xc1, 0x8e, 0xad, 0x35, 0xfc, 0xb9, 0xb4, 0x41, 0x18, 0x67, 0x1c, 0xbc, 0x04, 0x14, 0xb8, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x0d, 0x0f, 0xde, 0x1c, 0xc4, 0x1e, 0x8e, 0xd5, 0x06, 0xef, 0xb1, 0x29, 0xdd, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0x20, 0x62, 0x71, 0xac, 0x36, 0xbc, 0xdb, 0xb3, 0xe1, 0x53, 0xc0, 0x0d, 0x62, 0x0f, 0xc7, 0xea, 0x20, 0x58, 0x59, 0xd7, 0x20, 0x84, 0x33, 0x36, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0xf0, 0x23, 0x7b, 0xab, 0x13, 0x63, 0x2b, 0x6b, 0x91, 0x7b, 0xab, 0x73, 0x23, 0x3b, 0x88, 0x57, 0xe6, 0xaa, 0x96, 0x59, 0x43, 0xfa, 0x70, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0xf3, 0xa4, 0xca, 0x06, 0xe9, 0xe0, 0x8c, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x3e, 0x1f, 0xbc, 0x04, 0x14, 0x78, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x80, 0x66, 0xae, 0x8c, 0x6e, 0x46, 0xb6, 0x41, 0x19, 0x7d, 0xbe, 0x86, 0x77, 0x7b, 0x36, 0x88, 0x90, 0x99, 0xad, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x0c, 0xd0, 0x6c, 0x6d, 0x50, 0x46, 0x9f, 0x1f, 0x9c, 0xe4, 0xf9, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x31, 0x40, 0xb3, 0xb5, 0x41, 0x0a, 0x73, 0xd4, 0xc1, 0x49, 0x9e, 0xaf, 0x83, 0x93, 0x3c, 0xdf, 0x6a, 0x10, 0x69, 0x48, 0x5b, 0x1b, 0x24, 0x19, 0x10, 0x6e, 0x90, 0x3a, 0x18, 0xbb, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x00, 0x9e, 0x71, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x2d, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x1b, 0x2c, 0x5d, 0x43, 0x5d, 0xc3, 0x8f, 0x30, 0x03, 0x5f, 0x87, 0xc7, 0xac, 0xe1, 0x47, 0x98, 0x81, 0xaf, 0xc3, 0x43, 0xb0, 0x86, 0x1f, 0x61, 0x06, 0xbe, 0x0e, 0x0f, 0x61, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xc8, 0x85, 0xda, 0xda, 0x20, 0xb2, 0xc6, 0xa5, 0xd6, 0xf0, 0x23, 0xcc, 0xc0, 0xd7, 0xe1, 0x71, 0x1b, 0xc4, 0x5e, 0xda, 0xd4, 0x06, 0x71, 0x8f, 0x36, 0xd5, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x72, 0xa1, 0xb6, 0x36, 0x88, 0xe9, 0xaa, 0xa9, 0x0d, 0xa2, 0x99, 0xc2, 0x6a, 0x0d, 0x3f, 0xc2, 0x0c, 0x7c, 0x1d, 0x1e, 0xa2, 0x0d, 0xe2, 0xfd, 0x6c, 0xaa, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xe4, 0x42, 0x6d, 0x6d, 0x10, 0x4f, 0x56, 0x53, 0x1b, 0x44, 0x5f, 0x87, 0xd5, 0x06, 0x31, 0x87, 0x36, 0xb5, 0x86, 0x1f, 0x61, 0x06, 0xbe, 0x0e, 0x0f, 0x79, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xc8, 0x85, 0xda, 0xda, 0x60, 0xe9, 0x1a, 0xea, 0x06, 0x91, 0x48, 0xb5, 0xb5, 0x41, 0x04, 0x5b, 0x6d, 0x1d, 0xc4, 0x3e, 0xd6, 0xd6, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x72, 0xa1, 0xb6, 0x36, 0x88, 0xac, 0x71, 0xa9, 0x0d, 0xa2, 0x99, 0xc2, 0x6a, 0x83, 0x98, 0x43, 0x9b, 0x3a, 0x88, 0x95, 0xa9, 0xad, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xe4, 0x42, 0x6d, 0x6d, 0x10, 0xd3, 0x55, 0x53, 0x1b, 0x44, 0x5f, 0x87, 0xd5, 0x06, 0xb1, 0x2a, 0xb5, 0x75, 0x10, 0x4f, 0x55, 0x5b, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xc8, 0x85, 0xda, 0xda, 0x20, 0x9e, 0xac, 0xa6, 0x36, 0x88, 0x16, 0xa9, 0xad, 0x0d, 0x62, 0x2f, 0x6d, 0xea, 0x20, 0x82, 0xae, 0xb6, 0x9a, 0x35, 0x28, 0x0a, 0xbd, 0x37, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0x36, 0x38, 0x4f, 0xaa, 0x1c, 0xc4, 0xfb, 0x4d, 0xd4, 0x86, 0x5f, 0x94, 0x36, 0x88, 0x88, 0xa5, 0xad, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0xe7, 0x4b, 0x5b, 0x1b, 0x94, 0xd1, 0xe7, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0xd0, 0xc8, 0xbd, 0xb1, 0xcd, 0xc8, 0x36, 0x28, 0x86, 0x76, 0x37, 0x88, 0xaa, 0xa6, 0xad, 0x0e, 0x4e, 0xf2, 0x7c, 0x2b, 0xe0, 0xe1, 0xbd, 0xc9, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0x2e, 0x94, 0xb6, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0x44, 0x2c, 0x6d, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x38, 0x5f, 0xda, 0xda, 0xa0, 0x8c, 0x3e, 0x5f, 0xc3, 0xbb, 0x3d, 0x1b, 0x1c, 0x62, 0x20, 0x0e, 0x22, 0xaa, 0x69, 0xeb, 0xe0, 0x24, 0xcf, 0x77, 0x38, 0xc5, 0x5a, 0x83, 0x98, 0x87, 0xda, 0xda, 0xf0, 0x8b, 0xd2, 0x06, 0x11, 0xaf, 0x2a, 0xb5, 0x41, 0x92, 0x01, 0xe1, 0x06, 0xa9, 0x83, 0xb1, 0x1b, 0xa4, 0x1d, 0x2f, 0xaf, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xe1, 0xbd, 0xc9, 0x1d, 0x9c, 0x3f, 0xf6, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x67, 0xf0, 0xb7, 0x0d, 0xca, 0x75, 0xd9, 0x83, 0xa3, 0xab, 0xdc, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0x27, 0xd0, 0x41, 0x01, 0xc8, 0xbf, 0x86, 0x77, 0x7b, 0x36, 0x88, 0xd2, 0xb4, 0xad, 0xc3, 0x73, 0x41, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x33, 0xf8, 0xdb, 0x86, 0xf7, 0x82, 0x0e, 0x5a, 0xc7, 0x65, 0xde, 0x20, 0xed, 0x78, 0x79, 0x83, 0x58, 0x4b, 0xdb, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x9c, 0xc1, 0xdf, 0x36, 0x28, 0xd7, 0x65, 0x0f, 0x8e, 0x2a, 0x73, 0x1b, 0xc4, 0xd8, 0xda, 0xd6, 0x06, 0xf1, 0xc0, 0xb6, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x83, 0xbf, 0x6d, 0x78, 0x2f, 0xe8, 0xe0, 0xb4, 0x40, 0xd3, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0xb3, 0x06, 0xd1, 0x43, 0xb3, 0xb5, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0x79, 0x52, 0xe5, 0x20, 0xfa, 0xd1, 0xac, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x49, 0x34, 0xbb, 0xc1, 0x61, 0x81, 0xed, 0xe0, 0xe8, 0x4c, 0xb1, 0x1a, 0xc4, 0xd6, 0xcc, 0xd6, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0xe7, 0x70, 0xb8, 0x83, 0x13, 0xff, 0xda, 0x6a, 0x10, 0xa5, 0x29, 0x5b, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0xcd, 0x29, 0x76, 0x83, 0xb2, 0x38, 0xfa, 0xe0, 0xa8, 0xc0, 0xb6, 0x1a, 0x44, 0xb2, 0xca, 0xd6, 0x86, 0x1f, 0x61, 0x06, 0xbe, 0x0e, 0x3f, 0x88, 0x12, 0xa2, 0xa0, 0xd5, 0x20, 0x42, 0x98, 0xb6, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0x36, 0x38, 0x4f, 0xaa, 0xac, 0xe1, 0xcf, 0xa5, 0xc1, 0xef, 0xc3, 0x0f, 0x35, 0x07, 0xd1, 0x8f, 0x66, 0xb5, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0x70, 0xe5, 0x6f, 0x70, 0x58, 0x60, 0x5b, 0xc3, 0x2f, 0x2e, 0x1b, 0x94, 0xd1, 0xe7, 0x1b, 0x1e, 0x93, 0x39, 0x38, 0xfe, 0xb8, 0x1c, 0x1e, 0xfa, 0x39, 0x9c, 0x62, 0xad, 0xc1, 0x31, 0xde, 0x74, 0xc3, 0x2f, 0x4a, 0x1b, 0xac, 0xe8, 0x7d, 0xdf, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0xf0, 0xe0, 0xcd, 0x41, 0x31, 0xb4, 0xbb, 0x41, 0x41, 0x91, 0xb9, 0xe1, 0xdd, 0x9e, 0x0d, 0x5e, 0xa4, 0x2b, 0xbd, 0xe1, 0xc1, 0x9b, 0x0d, 0x22, 0xaf, 0x28, 0xaa, 0xd5, 0x20, 0x96, 0xc6, 0xb6, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x9a, 0x53, 0xec, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0x1c, 0xcf, 0xdf, 0x0e, 0x4e, 0xfc, 0x6b, 0x07, 0x85, 0x93, 0xec, 0xe1, 0x14, 0xab, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x5b, 0x80, 0x07, 0x4e, 0x6c, 0x8d, 0xcc, 0xdc, 0xa0, 0x94, 0x10, 0x5f, 0x83, 0x92, 0x85, 0x7d, 0x96, 0x59, 0x83, 0xe4, 0x5c, 0xd8, 0x0d, 0xbf, 0x28, 0x6d, 0x10, 0x03, 0xe7, 0x50, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0x2f, 0x2e, 0x1b, 0xc4, 0x2f, 0x3a, 0xd4, 0x41, 0x7a, 0xd2, 0xe0, 0x1a, 0x7e, 0x71, 0xd9, 0x20, 0xf6, 0xd3, 0xa1, 0x0e, 0x4e, 0xf2, 0x7c, 0x07, 0x05, 0x20, 0xff, 0xac, 0x41, 0x5a, 0x48, 0xec, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x1c, 0x3e, 0x48, 0x6e, 0x84, 0x5d, 0xc3, 0x9f, 0x4b, 0x83, 0xcf, 0x07, 0xc9, 0x8d, 0xb0, 0x07, 0x05, 0xf8, 0xf6, 0x86, 0x5f, 0x5c, 0x56, 0xc3, 0xdb, 0x3a, 0x1b, 0x9c, 0x85, 0x4c, 0x0f, 0x0e, 0x1e, 0x19, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0xa9, 0x14, 0xf6, 0x20, 0x6a, 0xd2, 0xa1, 0x56, 0xc3, 0xdb, 0x3a, 0x1b, 0x9c, 0x85, 0x4c, 0x0f, 0xce, 0xed, 0x7c, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0xa9, 0x14, 0xf6, 0x20, 0xe2, 0xd4, 0xa1, 0x0e, 0x0a, 0x40, 0xfe, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x36, 0x28, 0x59, 0xd8, 0x67, 0x99, 0x35, 0x88, 0x76, 0xb6, 0xaa, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x3a, 0x18, 0xbb, 0x41, 0xe2, 0x67, 0xec, 0x1a, 0xde, 0xd6, 0x19, 0xc0, 0x07, 0xad, 0x2d, 0x6c, 0xac, 0x65, 0x0e, 0x2d, 0x2c, 0x86, 0xac, 0x35, 0x88, 0x2c, 0xc7, 0xaa, 0x15, 0xc0, 0x0f, 0xad, 0x2d, 0x6c, 0xac, 0x65, 0x0e, 0x2d, 0x4c, 0xa6, 0xc6, 0x86, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0x69, 0x4e, 0xb1, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x08, 0x00, 0xdc, 0x6a, 0x0d, 0x0f, 0x4a, 0x6e, 0x10, 0xbb, 0x99, 0x55, 0x07, 0x71, 0xe2, 0x56, 0x75, 0x90, 0x76, 0x1a, 0x7b, 0x38, 0xc5, 0xd6, 0x20, 0xda, 0x16, 0xb7, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x9a, 0x53, 0xec, 0x06, 0x71, 0xde, 0xb8, 0xb5, 0x86, 0x07, 0x25, 0x37, 0x88, 0xe4, 0xc7, 0xaa, 0x83, 0x38, 0x71, 0xab, 0x3a, 0x48, 0x51, 0x71, 0x5d, 0x0d, 0x62, 0x0c, 0xb2, 0x6a, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0x0e, 0xc6, 0x6e, 0x90, 0xf8, 0x19, 0xbb, 0x86, 0xb7, 0x75, 0x36, 0x88, 0x46, 0xc6, 0xad, 0x3a, 0x9c, 0x62, 0x6b, 0x10, 0x3d, 0x93, 0x55, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0x75, 0x30, 0x76, 0x83, 0x54, 0xf7, 0xd8, 0x83, 0x78, 0x59, 0xdc, 0x9a, 0x35, 0x88, 0x00, 0xc0, 0xad, 0x0d, 0x0a, 0xe5, 0xce, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0x09, 0xd5, 0x8c, 0x1b, 0x84, 0xd3, 0xd8, 0x1a, 0x3e, 0x57, 0xda, 0x20, 0xb9, 0x11, 0x76, 0x83, 0xe4, 0x46, 0xd8, 0x0e, 0x3f, 0xd4, 0x1c, 0xc4, 0xd7, 0x5c, 0xd5, 0x41, 0x3c, 0x12, 0x6e, 0x6d, 0x50, 0x4a, 0x88, 0xaf, 0xe1, 0x92, 0xda, 0xa0, 0xa8, 0x11, 0x5f, 0x0d, 0x8a, 0xda, 0xe2, 0x83, 0x83, 0x47, 0xc6, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x32, 0x71, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0x45, 0xa5, 0xf8, 0x06, 0xd1, 0x63, 0xb8, 0xd5, 0x1a, 0xde, 0xd6, 0x39, 0x88, 0x78, 0xcc, 0xad, 0x56, 0x83, 0xa2, 0xb6, 0xf8, 0xe0, 0xdc, 0xce, 0xb7, 0xe1, 0xdd, 0x9e, 0x0d, 0x8a, 0x4c, 0xdc, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x51, 0x29, 0xbe, 0x41, 0xf4, 0x1e, 0x6e, 0xb5, 0x86, 0xb7, 0x75, 0x0e, 0xa2, 0x67, 0x73, 0xab, 0x36, 0x58, 0x52, 0xbf, 0xb4, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xc6, 0xdd, 0x86, 0x97, 0xef, 0x0e, 0x62, 0xac, 0x31, 0xe8, 0xa0, 0x00, 0xe4, 0xdf, 0xa0, 0xe0, 0xc3, 0xdc, 0x20, 0x2e, 0x1b, 0xa2, 0x36, 0x28, 0x48, 0x63, 0x07, 0x67, 0xd7, 0xf0, 0x89, 0xcd, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0xec, 0x6e, 0x37, 0x28, 0xd7, 0x65, 0x0f, 0x0a, 0xa5, 0xed, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x5f, 0x4e, 0xae, 0x41, 0x29, 0x21, 0xbe, 0xf1, 0x7c, 0xc3, 0xbb, 0x3d, 0x1b, 0x84, 0x02, 0xeb, 0x41, 0x54, 0x82, 0x6e, 0x6d, 0x50, 0x4a, 0x88, 0x6f, 0x3c, 0xdf, 0xf0, 0x71, 0xd4, 0x41, 0xb4, 0x87, 0x6e, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x2e, 0x6f, 0x78, 0xb7, 0x67, 0xc3, 0xa7, 0x80, 0x1b, 0x94, 0xeb, 0xb2, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xe0, 0xa9, 0xdd, 0xa0, 0x58, 0xda, 0x3e, 0x88, 0x9c, 0x8b, 0xa8, 0x36, 0x7c, 0x62, 0xb3, 0x41, 0xac, 0x60, 0x44, 0x6d, 0x50, 0xf4, 0xe9, 0x6e, 0x70, 0xa0, 0xe9, 0x5b, 0xc3, 0x57, 0x38, 0x1b, 0xfe, 0xa2, 0xd9, 0xf0, 0x43, 0xcd, 0x86, 0x0f, 0x72, 0x36, 0x88, 0x95, 0x8d, 0xa8, 0x0d, 0x4e, 0x2d, 0x7d, 0x1b, 0x14, 0xa4, 0xb1, 0x83, 0xd7, 0x6b, 0x50, 0x74, 0x1a, 0x6f, 0xf8, 0x13, 0x68, 0x83, 0xf8, 0xe7, 0xdc, 0xda, 0xa0, 0xe8, 0x34, 0xde, 0xa0, 0x34, 0xe0, 0xdd, 0x20, 0x6a, 0x38, 0xb7, 0x36, 0x28, 0x3a, 0x8d, 0x37, 0x28, 0xb6, 0x95, 0x37, 0x28, 0x2a, 0xc5, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x61, 0xb1, 0xbc, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xa0, 0xe4, 0x06, 0x11, 0x17, 0x02, 0xb5, 0xe1, 0x6d, 0x9d, 0x01, 0x6f, 0x6e, 0x4c, 0xee, 0x20, 0x36, 0x40, 0xa2, 0xda, 0xf0, 0x89, 0xcd, 0x06, 0x91, 0xfa, 0xda, 0xb4, 0x41, 0xd1, 0xa7, 0xbb, 0x41, 0x80, 0x07, 0xad, 0xe1, 0x2b, 0x9c, 0x0d, 0x7f, 0xd1, 0x6c, 0xf8, 0xa1, 0x66, 0xc3, 0x07, 0x39, 0x1b, 0xc4, 0xb2, 0x48, 0xd4, 0x06, 0xc5, 0x48, 0xed, 0x06, 0x05, 0x69, 0xec, 0xe0, 0xf1, 0x1a, 0xac, 0xea, 0x55, 0xda, 0x20, 0xa9, 0x14, 0x76, 0x83, 0xa2, 0x52, 0x7c, 0x83, 0x62, 0x69, 0x7b, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0x20, 0x67, 0x83, 0x78, 0x30, 0x89, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0xfe, 0x04, 0xda, 0x20, 0x7a, 0x0f, 0xb7, 0x0e, 0xce, 0xcc, 0x6d, 0x07, 0xc5, 0xd2, 0xf6, 0x86, 0x77, 0x7b, 0x36, 0x48, 0xcd, 0x68, 0x5c, 0xc3, 0x2f, 0x2e, 0x1b, 0x44, 0x8f, 0xe1, 0xd6, 0x06, 0x31, 0x6f, 0xb8, 0xd5, 0x1a, 0x7e, 0x71, 0xd9, 0xf0, 0xcc, 0xe4, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0xa9, 0x14, 0x76, 0x83, 0xa2, 0x52, 0x7c, 0xc3, 0x33, 0x93, 0x07, 0x49, 0xa1, 0x57, 0x75, 0x10, 0xf7, 0x27, 0x51, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x1c, 0x68, 0xfa, 0x36, 0xbc, 0xdb, 0xb3, 0xe1, 0x4f, 0xa0, 0x0d, 0x4e, 0x2d, 0x7d, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xd2, 0x80, 0x77, 0x0d, 0xbf, 0xb8, 0x6c, 0x50, 0x54, 0x8a, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0x82, 0xa7, 0x76, 0x83, 0x38, 0x6c, 0x89, 0x3a, 0x28, 0x94, 0xb6, 0x3b, 0x28, 0xac, 0xba, 0x3b, 0x48, 0x72, 0x60, 0xdd, 0xf0, 0x6e, 0xcf, 0x06, 0x49, 0xa5, 0xb0, 0x1b, 0x14, 0x95, 0xe2, 0x1b, 0x94, 0xeb, 0xb2, 0x1b, 0x44, 0xbd, 0x4b, 0x54, 0xab, 0x41, 0x54, 0x55, 0x56, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0xd4, 0xc1, 0xd8, 0x0d, 0x12, 0x3f, 0x63, 0xd7, 0xf0, 0xb6, 0xce, 0x00, 0x7e, 0x68, 0x6d, 0x61, 0x63, 0x2d, 0x73, 0x68, 0x61, 0x35, 0x31, 0x32, 0x64, 0x1d, 0x4e, 0xb1, 0x36, 0x88, 0x15, 0xcc, 0xaa, 0xd5, 0x20, 0xa2, 0x34, 0xab, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0xea, 0x60, 0xec, 0x06, 0xa9, 0xee, 0xb1, 0x07, 0x51, 0xc1, 0xbb, 0xb5, 0x1a, 0xc4, 0x14, 0xef, 0xd6, 0x86, 0x77, 0x7b, 0x36, 0x48, 0x73, 0x8a, 0xdd, 0x20, 0xce, 0x1b, 0xb7, 0xd6, 0xf0, 0xa0, 0xe4, 0x06, 0xd1, 0x04, 0x5a, 0x75, 0x10, 0x27, 0x6e, 0x55, 0x07, 0xe9, 0xda, 0xb1, 0x87, 0x53, 0x6c, 0x0d, 0x62, 0xa1, 0xb3, 0x6a, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0x0e, 0xc6, 0x6e, 0x90, 0xea, 0x1e, 0x7b, 0x10, 0xdb, 0x92, 0x5b, 0x07, 0x31, 0xf3, 0x59, 0xd5, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x0b, 0x7c, 0x19, 0xb9, 0x41, 0x29, 0x21, 0xbe, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0x89, 0xcd, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0x8b, 0x07, 0xa9, 0xd8, 0xbf, 0x07, 0x51, 0xa0, 0xe2, 0xb4, 0xe1, 0x13, 0x9b, 0x0d, 0x62, 0x80, 0xc5, 0x69, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0x76, 0x83, 0xa2, 0xd3, 0x78, 0xc3, 0x9f, 0x40, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x42, 0xbb, 0x77, 0x0d, 0x3f, 0xc2, 0x6c, 0xa8, 0xf9, 0x41, 0xf0, 0xdb, 0xf0, 0x23, 0xcc, 0x86, 0x9a, 0x7f, 0x10, 0x4d, 0xc7, 0x41, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0x93, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x94, 0x39, 0x01, 0x07, 0xb1, 0xf2, 0xe2, 0xb4, 0xe1, 0xc1, 0x9b, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x48, 0x54, 0x23, 0x3b, 0x88, 0x95, 0x17, 0xa7, 0x35, 0xfc, 0x08, 0xb3, 0xa1, 0xe6, 0x07, 0x46, 0xd0, 0xf6, 0x1a, 0x7e, 0x84, 0xd9, 0x50, 0xf3, 0x03, 0x43, 0x68, 0xbb, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x3e, 0x2d, 0xdd, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0xad, 0x26, 0xe9, 0x20, 0x56, 0x5e, 0x9c, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xa1, 0xc0, 0xba, 0xc1, 0x49, 0xb7, 0xef, 0xe0, 0xcc, 0xdc, 0x76, 0x10, 0xac, 0xac, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0x8b, 0x87, 0xf7, 0x82, 0x36, 0x88, 0xf9, 0x16, 0xa7, 0x0d, 0x62, 0xd1, 0xc5, 0x69, 0x0d, 0x9f, 0xbb, 0x0c, 0xce, 0x1e, 0xa4, 0xbc, 0x5d, 0xad, 0xe1, 0x73, 0x97, 0xc1, 0xc9, 0x83, 0x72, 0x5d, 0x76, 0x0d, 0x9f, 0xbb, 0x0c, 0x7c, 0x5a, 0xba, 0xe1, 0x6d, 0x9d, 0x81, 0x4f, 0x4b, 0x6b, 0x83, 0xb2, 0x4b, 0x76, 0x83, 0x28, 0xfc, 0x10, 0xda, 0xe0, 0xcd, 0xc2, 0x27, 0xb3, 0x41, 0xc9, 0xc2, 0x3e, 0xcb, 0x2c, 0xe0, 0x8f, 0xd5, 0xc9, 0xd9, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xf1, 0x40, 0xbd, 0xd5, 0x00, 0xda, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x63, 0x75, 0x72, 0x76, 0x65, 0xbf, 0x0d, 0xbf, 0x28, 0x6d, 0x10, 0xb1, 0xf9, 0x51, 0x1b, 0xfe, 0xa2, 0xd9, 0xf0, 0xc1, 0xea, 0x86, 0x7f, 0x73, 0x36, 0x3c, 0x78, 0xb3, 0x41, 0xd1, 0x69, 0xbc, 0x41, 0x74, 0x25, 0x6f, 0xad, 0x41, 0xd1, 0x69, 0xbc, 0x86, 0xb7, 0x75, 0x36, 0x28, 0x27, 0xb1, 0x0f, 0x62, 0xe5, 0xc5, 0x69, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x52, 0x34, 0x8d, 0x0f, 0x62, 0xe5, 0xc5, 0x69, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x14, 0x70, 0x83, 0xd3, 0x91, 0xc8, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x06, 0x7a, 0x9c, 0x0e, 0x12, 0x29, 0x9d, 0x3a, 0x48, 0xa4, 0x74, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0xb1, 0x99, 0xbd, 0x75, 0x10, 0x61, 0xd0, 0x57, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0x3e, 0xb1, 0xb7, 0x36, 0x3c, 0x26, 0xb3, 0x06, 0x49, 0x06, 0x84, 0x1b, 0xc4, 0x66, 0xf6, 0xd6, 0x06, 0xe5, 0xba, 0xec, 0x06, 0xc9, 0x94, 0x4e, 0x1b, 0x24, 0x53, 0x3a, 0x1d, 0x44, 0x18, 0xf4, 0x55, 0x2b, 0xe0, 0xdf, 0x85, 0xc9, 0x91, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xf1, 0xf4, 0xbd, 0xd5, 0x00, 0xfe, 0x65, 0x64, 0x77, 0x61, 0x72, 0x64, 0x73, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x79, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xe0, 0xe1, 0xe0, 0x83, 0xd4, 0x04, 0xcc, 0x35, 0xfc, 0xb9, 0x34, 0xf0, 0x71, 0xf1, 0x41, 0x6a, 0x02, 0x66, 0x1b, 0xfe, 0xa2, 0xd9, 0x20, 0x35, 0x01, 0x73, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xe0, 0xc9, 0xe0, 0x0d, 0x92, 0x0c, 0x08, 0x37, 0x88, 0xcd, 0xec, 0xad, 0x0d, 0xca, 0x75, 0xd9, 0x35, 0x5c, 0x52, 0x6b, 0x1c, 0x3a, 0x88, 0x2b, 0x19, 0xac, 0xd6, 0x70, 0x49, 0xad, 0x71, 0x68, 0xe0, 0xe3, 0xe2, 0x5a, 0xc3, 0x25, 0xb5, 0xc6, 0xf3, 0x83, 0xb8, 0x92, 0xc1, 0x6a, 0x0d, 0x97, 0xd4, 0x1a, 0xcf, 0x0f, 0xa2, 0xcf, 0x7c, 0xab, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x1e, 0x8f, 0xde, 0xa0, 0xe8, 0x34, 0xde, 0x20, 0x36, 0xb3, 0xb7, 0xd6, 0xa0, 0xe8, 0x34, 0xde, 0x20, 0x3e, 0xb1, 0xb7, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xb1, 0x99, 0xbd, 0xb5, 0x41, 0x14, 0x96, 0x6f, 0x1d, 0x44, 0xd7, 0xf9, 0xd6, 0x86, 0x77, 0x7b, 0x36, 0x88, 0xcd, 0xec, 0xad, 0x0d, 0x22, 0xc5, 0x7c, 0x6b, 0x83, 0xe8, 0x35, 0xdf, 0x6a, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xe2, 0x54, 0xfb, 0x20, 0x56, 0x5e, 0x9c, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xf1, 0x89, 0xbd, 0xb5, 0xe1, 0x31, 0x99, 0x35, 0xbc, 0xad, 0x33, 0xf0, 0x64, 0x70, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xf0, 0x79, 0xf4, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0xb1, 0x99, 0xbd, 0xb5, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0xf1, 0x89, 0xbd, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x88, 0xcd, 0xec, 0xad, 0x83, 0xc8, 0x35, 0xdf, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0xb1, 0x99, 0xbd, 0xb5, 0x41, 0x14, 0x96, 0x6f, 0x6d, 0x10, 0x29, 0xe6, 0x5b, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0xb8, 0x61, 0xdf, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x44, 0x57, 0xf2, 0xd6, 0x41, 0xec, 0xb5, 0x6f, 0xb5, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0xad, 0x33, 0xf0, 0x78, 0x74, 0x6b, 0x78, 0x5b, 0x67, 0xe0, 0xf3, 0xe8, 0x5a, 0x01, 0x7f, 0x6e, 0x2c, 0xac, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x88, 0x2a, 0xfa, 0xad, 0x06, 0xf0, 0x9e, 0x1b, 0x0b, 0x63, 0x0b, 0x93, 0x03, 0x69, 0xab, 0x63, 0xa3, 0x4b, 0x83, 0x63, 0xcb, 0xdb, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0xda, 0x20, 0x6e, 0xc4, 0xb7, 0x0e, 0xca, 0xac, 0xe8, 0x0d, 0x7f, 0xd1, 0x6c, 0x90, 0x9a, 0x80, 0xb9, 0xe1, 0x83, 0x9c, 0x0d, 0x96, 0x0d, 0xbe, 0x6d, 0x50, 0xa4, 0x8e, 0x6f, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x7c, 0x5c, 0xbc, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0x41, 0x11, 0x02, 0xbd, 0xe1, 0xdd, 0x9e, 0x0d, 0x42, 0x81, 0x75, 0x83, 0x72, 0x02, 0xfa, 0x20, 0x58, 0x59, 0xdb, 0xa0, 0x94, 0x10, 0x5f, 0xc3, 0x25, 0xb5, 0x41, 0x51, 0x23, 0xbe, 0x06, 0xd1, 0x67, 0xbe, 0xb5, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x3c, 0x7d, 0x6f, 0xb5, 0x86, 0xb7, 0x75, 0x0e, 0xa2, 0xcf, 0x7c, 0x6b, 0x83, 0xf8, 0xe6, 0xdf, 0xaa, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x0d, 0x8f, 0xc9, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0xa3, 0x77, 0xdc, 0x86, 0xc7, 0x64, 0x0e, 0xca, 0x6c, 0xe9, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x54, 0xf1, 0x6f, 0x6d, 0x10, 0xdf, 0xfc, 0x5b, 0x1b, 0xc4, 0x54, 0x0d, 0x56, 0x07, 0xf1, 0xcd, 0xbf, 0xb5, 0x02, 0x3e, 0x9e, 0x5c, 0xd9, 0xb8, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x10, 0xb7, 0x00, 0x5c, 0x0d, 0xe0, 0x2d, 0x57, 0x36, 0xf6, 0x66, 0x57, 0x26, 0x07, 0x82, 0xd7, 0x32, 0xf6, 0xf6, 0x26, 0x47, 0xb6, 0xe1, 0x17, 0xa5, 0x0d, 0xe2, 0x46, 0x3f, 0x6a, 0xc3, 0x5f, 0x34, 0x1b, 0x7e, 0xa8, 0xd9, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0x78, 0x3c, 0x7c, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0xe0, 0xa9, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x44, 0x57, 0xf2, 0xd6, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x78, 0x6a, 0x0f, 0x22, 0x0c, 0xfa, 0xea, 0xa0, 0x20, 0x1e, 0xdf, 0xf0, 0x6e, 0xcf, 0x06, 0x71, 0xc3, 0xbe, 0xb5, 0x86, 0x8f, 0xa3, 0x36, 0x48, 0x32, 0x20, 0xdc, 0x20, 0x78, 0x6a, 0x37, 0x28, 0xd7, 0x65, 0x0f, 0x22, 0x0c, 0xfa, 0xaa, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xf1, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x73, 0xcd, 0x5b, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x50, 0x60, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xfe, 0x04, 0xda, 0xa0, 0xa8, 0x14, 0x3f, 0x38, 0xf4, 0xf2, 0x1d, 0x1c, 0x55, 0xe6, 0x0e, 0x22, 0xb8, 0xc7, 0x69, 0xc3, 0x07, 0x39, 0x6b, 0x78, 0x9b, 0x75, 0xc3, 0xbf, 0x39, 0x1b, 0x1e, 0xbc, 0xd9, 0xf0, 0x6e, 0xcf, 0x06, 0xd1, 0x95, 0xbc, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x08, 0x9e, 0xda, 0x0d, 0x92, 0x29, 0x9d, 0x0e, 0x12, 0x29, 0x9d, 0x36, 0x88, 0x64, 0x1e, 0xa7, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xed, 0xc1, 0x60, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x62, 0x33, 0x7b, 0x6b, 0x83, 0x64, 0x4a, 0xa7, 0x0d, 0x62, 0x4b, 0x7a, 0xab, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x7b, 0x30, 0x98, 0x07, 0x89, 0x94, 0x4e, 0x87, 0x53, 0xac, 0x05, 0x5e, 0x4c, 0xdc, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xf0, 0xc4, 0xc4, 0xf2, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x9b, 0xd9, 0x5b, 0x1b, 0x9c, 0x9a, 0xdb, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x71, 0xc3, 0xbe, 0x75, 0x70, 0x54, 0x60, 0x6b, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0x10, 0xb7, 0x00, 0x5c, 0xad, 0xe1, 0x6d, 0x9d, 0x01, 0x4f, 0x4c, 0x2c, 0xaf, 0x83, 0xb8, 0xa0, 0xe0, 0x5a, 0x0d, 0x1e, 0x73, 0x62, 0xb7, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0xf0, 0x98, 0x13, 0xbb, 0x06, 0xf0, 0x23, 0x2b, 0x1b, 0x7b, 0x23, 0x2b, 0x03, 0x81, 0x7b, 0x4b, 0x73, 0xa3, 0xdb, 0xf0, 0x8b, 0xd2, 0x06, 0x51, 0x06, 0xda, 0xb4, 0xe1, 0x2f, 0x9a, 0x35, 0x08, 0xfd, 0x92, 0x0d, 0xca, 0x26, 0xcc, 0x83, 0xb4, 0x04, 0xcc, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xf3, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x12, 0xcd, 0x6e, 0x78, 0xf0, 0x66, 0x0d, 0xbf, 0xb8, 0x6c, 0x78, 0xf0, 0xe6, 0x20, 0x45, 0x06, 0xf9, 0xe0, 0x24, 0xcf, 0xb7, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xf0, 0x73, 0xe9, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x89, 0x66, 0x37, 0x3c, 0x78, 0xb3, 0x86, 0x5f, 0x5c, 0x36, 0xfc, 0x21, 0x7b, 0x50, 0x10, 0x8f, 0x1f, 0x9c, 0xe4, 0xf9, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0xc7, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x44, 0x4e, 0x70, 0x1d, 0xa4, 0x57, 0x3b, 0x6d, 0x50, 0x4a, 0x88, 0xaf, 0xe1, 0x92, 0xda, 0xa0, 0xa8, 0x11, 0x5f, 0x83, 0x14, 0x4c, 0xa7, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0x6d, 0xd6, 0x0d, 0xff, 0xe6, 0x6c, 0x50, 0x0a, 0xa9, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0xa3, 0x77, 0xdc, 0x86, 0xc7, 0x64, 0x0e, 0x12, 0x29, 0x9d, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x4f, 0x01, 0x37, 0x38, 0x1d, 0x89, 0x1c, 0x24, 0x52, 0x3a, 0x1d, 0x24, 0x53, 0x3a, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xf0, 0x70, 0xf0, 0x41, 0x94, 0xc1, 0x64, 0x6d, 0x50, 0xec, 0x68, 0xae, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x3c, 0x50, 0x6f, 0x75, 0x10, 0x13, 0x00, 0x5c, 0x1b, 0x14, 0x14, 0x99, 0x1b, 0x7e, 0x71, 0xd9, 0xa0, 0xa0, 0xc8, 0x3c, 0x88, 0x09, 0x00, 0xae, 0x59, 0x83, 0xc6, 0x62, 0x30, 0x37, 0xfc, 0xa2, 0xb4, 0x41, 0x0c, 0xc2, 0x38, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0x6c, 0x78, 0xf0, 0x66, 0xc3, 0xbb, 0x3d, 0x1b, 0x84, 0xdd, 0xed, 0x41, 0x8c, 0xc0, 0x59, 0x6d, 0x90, 0x4c, 0xe9, 0x74, 0x10, 0x19, 0x21, 0x5c, 0x87, 0x53, 0xac, 0x35, 0x78, 0x2f, 0x1e, 0xf3, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0x7b, 0xf1, 0x98, 0x1b, 0xc0, 0xaf, 0xcc, 0x6d, 0xec, 0x8d, 0xac, 0x0c, 0x04, 0xee, 0x2d, 0xcd, 0x8d, 0x6e, 0xc3, 0x2f, 0x4a, 0x1b, 0xc4, 0x8d, 0xf8, 0xd6, 0x86, 0xbf, 0x68, 0x36, 0xfc, 0x50, 0xb3, 0xe1, 0xdd, 0x9e, 0x0d, 0xca, 0xe2, 0xe8, 0x0d, 0x0f, 0xde, 0xac, 0xc1, 0xd1, 0x75, 0x70, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x9f, 0x02, 0x1e, 0x1c, 0xd6, 0x57, 0x0e, 0xa2, 0x75, 0x7d, 0x6b, 0x0d, 0xbf, 0xb8, 0x6c, 0x78, 0x4c, 0x66, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0xf4, 0x8e, 0xdb, 0xf0, 0x98, 0xcc, 0x06, 0x51, 0x58, 0xbe, 0x55, 0x75, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0x06, 0x65, 0x97, 0xec, 0xc0, 0x97, 0x91, 0x1b, 0xee, 0xa8, 0xd9, 0xa0, 0x64, 0x61, 0x9f, 0x65, 0xd6, 0x20, 0xbe, 0x49, 0x84, 0x36, 0x3c, 0x3e, 0xb2, 0x41, 0x7c, 0x93, 0x08, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xc3, 0x0d, 0x5f, 0xd4, 0x6c, 0xa8, 0xe3, 0x01, 0x7f, 0x1d, 0xd9, 0xdc, 0x58, 0x18, 0x5b, 0x98, 0xbc, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x1d, 0x15, 0xe7, 0x86, 0x2f, 0x6a, 0x36, 0xd4, 0xf1, 0x80, 0xb7, 0x8e, 0x0c, 0xee, 0x2d, 0xcd, 0x8d, 0x6e, 0xc3, 0x5f, 0x34, 0x1b, 0xc4, 0xe7, 0x0c, 0xd7, 0x06, 0x05, 0x69, 0xec, 0x1a, 0xbe, 0x6f, 0x1f, 0xc0, 0x3b, 0xac, 0x05, 0xee, 0x2d, 0xcd, 0x8d, 0xae, 0x85, 0xac, 0x6c, 0xec, 0x8d, 0xac, 0x8c, 0xdc, 0xa0, 0x84, 0x8e, 0xdd, 0x20, 0x35, 0x01, 0xf3, 0x20, 0x4c, 0xc7, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x67, 0x43, 0x97, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x0e, 0x1e, 0xa3, 0x77, 0xb7, 0xc1, 0x33, 0xe1, 0x3a, 0x6b, 0x83, 0x13, 0xfb, 0xcd, 0x1a, 0xde, 0xd6, 0xd9, 0xe0, 0xbd, 0x78, 0xcc, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0x10, 0x55, 0xf4, 0x5b, 0xad, 0xe1, 0x6d, 0x9d, 0x0d, 0xa2, 0xb1, 0x86, 0xab, 0xc3, 0x43, 0x3f, 0xab, 0x41, 0x5c, 0xbc, 0x08, 0x6d, 0x78, 0x7c, 0x64, 0x83, 0xb8, 0x78, 0x11, 0xda, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0xda, 0x20, 0x96, 0x63, 0xb8, 0x36, 0x88, 0x8f, 0x19, 0xae, 0x35, 0xfc, 0xb9, 0x34, 0xb8, 0x78, 0x10, 0x21, 0x32, 0x5c, 0x6b, 0xf8, 0x73, 0x69, 0x80, 0x57, 0xac, 0x05, 0xee, 0x2d, 0xcd, 0x8d, 0x3e, 0x88, 0xcf, 0x19, 0xae, 0x36, 0xfc, 0x45, 0xb3, 0x41, 0x7c, 0xce, 0x70, 0x6d, 0x50, 0x90, 0xc6, 0x6e, 0x10, 0x53, 0x35, 0x5c, 0x1b, 0x44, 0xd6, 0x0d, 0xd7, 0x06, 0x05, 0x69, 0xec, 0x1a, 0xbe, 0x6f, 0x1f, 0xc0, 0x5b, 0xac, 0x05, 0xee, 0x2d, 0xcd, 0x8d, 0xae, 0x85, 0xac, 0x6c, 0xec, 0x8d, 0xac, 0x8c, 0x3c, 0x88, 0x4c, 0x1b, 0xae, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xd9, 0xd0, 0x65, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x0f, 0x38, 0x5c, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x08, 0xef, 0xe1, 0xaa, 0x36, 0x38, 0xb1, 0xdf, 0x6c, 0x10, 0x23, 0x39, 0x5c, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x44, 0x15, 0xff, 0xd6, 0x06, 0x71, 0x9a, 0xc3, 0xb5, 0xe1, 0xdd, 0x9e, 0x0d, 0x22, 0x3c, 0x87, 0x6b, 0x0d, 0x6f, 0xeb, 0x6c, 0x10, 0x8d, 0x40, 0x5c, 0x1d, 0xde, 0x42, 0x9b, 0x35, 0x78, 0x55, 0x9a, 0xe2, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0x6d, 0x10, 0x73, 0x41, 0x58, 0x03, 0xbc, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x79, 0x1b, 0x1e, 0x1f, 0xd9, 0xe0, 0x55, 0x69, 0x8a, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x1b, 0x24, 0xc5, 0x33, 0xae, 0xe1, 0xcf, 0xa5, 0x81, 0x9f, 0x2b, 0x0f, 0x3f, 0xd4, 0xb4, 0xe1, 0x2f, 0x9a, 0x0d, 0x3f, 0xd4, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0x10, 0xe5, 0x59, 0x42, 0xad, 0x41, 0xbc, 0x9e, 0x55, 0x1d, 0x1c, 0x42, 0x27, 0xd6, 0xf0, 0xb6, 0xce, 0xc0, 0xcf, 0x95, 0x35, 0x6b, 0x10, 0xe5, 0x59, 0x42, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0x51, 0x9e, 0x25, 0xd4, 0x00, 0x7e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x79, 0x20, 0x6f, 0x63, 0x74, 0x73, 0x1b, 0x1e, 0x1f, 0xd9, 0x20, 0xca, 0xb3, 0x84, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xed, 0xc1, 0xd3, 0xcf, 0xe5, 0x0e, 0xe2, 0x1c, 0x89, 0x6b, 0xc3, 0x5f, 0x34, 0x1b, 0x7e, 0xa8, 0xd9, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xf8, 0xb9, 0x75, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x9f, 0xab, 0x1b, 0x5b, 0x3b, 0x88, 0xa2, 0x25, 0xae, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x81, 0x87, 0x5b, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x49, 0x34, 0xbb, 0xe1, 0xc1, 0x9b, 0x35, 0xfc, 0xe2, 0xb2, 0xe1, 0xbd, 0xa0, 0xc3, 0x5b, 0x68, 0x07, 0x51, 0xc2, 0x84, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0x38, 0xba, 0xe1, 0xdd, 0x9e, 0x0d, 0x92, 0x20, 0x65, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x25, 0x3e, 0xee, 0x06, 0x89, 0x2f, 0xa9, 0x87, 0xb7, 0xd0, 0x0e, 0xa2, 0x84, 0x09, 0x6b, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xf0, 0x70, 0x83, 0xa2, 0xd3, 0x78, 0xc3, 0x9f, 0x40, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x42, 0xbb, 0x77, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x14, 0xf0, 0x20, 0xc8, 0x6f, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0xa5, 0x01, 0xef, 0x06, 0x89, 0x2f, 0xa9, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x92, 0x68, 0x76, 0xc3, 0x83, 0x37, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xa2, 0x52, 0x7c, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x14, 0x70, 0xc3, 0x7b, 0x41, 0x07, 0x47, 0x05, 0xb6, 0x0e, 0x0e, 0xf0, 0x74, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x2e, 0x6f, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x3c, 0x5a, 0xbb, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0xa2, 0xd9, 0x0d, 0x0f, 0xde, 0x6c, 0x10, 0x45, 0x53, 0x5c, 0x07, 0x07, 0x78, 0xba, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xd3, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x16, 0x47, 0x6f, 0x50, 0x54, 0x8a, 0xaf, 0xe1, 0x17, 0x97, 0x0d, 0x52, 0x4f, 0x63, 0xd7, 0xf0, 0xb6, 0xce, 0xc0, 0xa3, 0xb5, 0xb5, 0xc1, 0x21, 0x74, 0xe2, 0xa0, 0xac, 0xf3, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0x49, 0x90, 0xb2, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x9f, 0x40, 0x1b, 0xa4, 0x9e, 0xc6, 0xae, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0x83, 0xf3, 0xe9, 0x44, 0x07, 0xa5, 0x19, 0xfa, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0xc0, 0xcb, 0xc9, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0xc2, 0x73, 0xb8, 0x36, 0x88, 0x7f, 0x77, 0xab, 0x83, 0x43, 0x5f, 0xdf, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0xc0, 0xcf, 0xcd, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x03, 0x5f, 0x26, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0x18, 0xc9, 0xe1, 0xda, 0x20, 0x16, 0x52, 0xa1, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0x78, 0xb4, 0x70, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0xc5, 0xd1, 0x1b, 0x14, 0x95, 0xe2, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xd4, 0xd3, 0xd8, 0x35, 0xbc, 0xad, 0x33, 0xf0, 0x65, 0x72, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0x52, 0x4f, 0x63, 0x0f, 0xa2, 0xe3, 0x03, 0xeb, 0x20, 0x96, 0xc0, 0xb8, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x25, 0x50, 0xf6, 0x06, 0x91, 0xc4, 0xd6, 0x74, 0x90, 0x10, 0x62, 0xbb, 0x86, 0x77, 0x7b, 0x36, 0xfc, 0x09, 0xb4, 0xc1, 0xf1, 0x93, 0x6f, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x3c, 0xb5, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x24, 0x48, 0xd9, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x4f, 0xa0, 0x0d, 0x52, 0xa0, 0x53, 0x0f, 0xe2, 0x3e, 0x8c, 0x6b, 0x0d, 0x6f, 0xeb, 0x0c, 0x3c, 0x5a, 0x58, 0x87, 0x87, 0x7e, 0x6a, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0xc5, 0xd1, 0x1b, 0x1e, 0xbc, 0x59, 0x83, 0xa3, 0xeb, 0xe0, 0x1a, 0x7e, 0x71, 0xd9, 0xf0, 0x5e, 0xd0, 0x06, 0x71, 0x5c, 0xc6, 0xd5, 0x1a, 0x7e, 0x71, 0xd9, 0xf0, 0x5e, 0xd0, 0x06, 0x91, 0x16, 0x70, 0x55, 0xad, 0x06, 0x31, 0xa2, 0x26, 0xb4, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x10, 0x23, 0x6a, 0x42, 0x1d, 0xb4, 0xce, 0x3a, 0xbe, 0xe1, 0xf1, 0x91, 0x0d, 0x62, 0x44, 0x4d, 0x68, 0xc3, 0x2f, 0x4a, 0x1b, 0xc4, 0x0b, 0x11, 0xd6, 0x86, 0xbf, 0x68, 0x36, 0xfc, 0x50, 0xb3, 0xe1, 0x83, 0x9c, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x1b, 0xc5, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x51, 0xfc, 0xbb, 0x41, 0x51, 0x29, 0x7e, 0x10, 0x25, 0x4c, 0x58, 0x07, 0x69, 0xa7, 0xb1, 0x1b, 0x84, 0xa7, 0xea, 0x86, 0x4f, 0x6c, 0x36, 0x88, 0x32, 0x2a, 0xae, 0x0d, 0x9f, 0xd8, 0x6c, 0x10, 0xa7, 0x56, 0x5c, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x03, 0x1f, 0x16, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x08, 0xcf, 0xe1, 0xda, 0x20, 0xfe, 0xdd, 0xad, 0x0e, 0x0f, 0xfd, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0x18, 0xc9, 0xe1, 0x3a, 0x88, 0x8a, 0x76, 0xab, 0x59, 0x83, 0xa8, 0x19, 0x14, 0xda, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x88, 0x9a, 0x41, 0xa1, 0x06, 0xf0, 0xb4, 0x0b, 0x63, 0x4b, 0x23, 0x0b, 0xa3, 0x2b, 0x03, 0x79, 0x1b, 0xa3, 0x9b, 0xdb, 0xf0, 0xf8, 0xc8, 0x06, 0x51, 0x33, 0x28, 0xb4, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0x94, 0x81, 0x36, 0x6d, 0x10, 0xe9, 0x4e, 0x5c, 0x6b, 0xf8, 0x73, 0x69, 0xe0, 0xe1, 0xd6, 0xc3, 0x0f, 0x35, 0x6d, 0xf8, 0x8b, 0x66, 0xc3, 0x07, 0xab, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0xbe, 0x51, 0x5c, 0xc3, 0xbb, 0x3d, 0x1b, 0x84, 0x02, 0xeb, 0xc1, 0x32, 0xa4, 0xb7, 0x0d, 0x62, 0x3f, 0x1d, 0xaa, 0x0d, 0x0a, 0xd8, 0xfc, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0xdf, 0x28, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x42, 0x81, 0x75, 0xc3, 0x7b, 0x41, 0x07, 0x47, 0x95, 0xb9, 0x83, 0x18, 0xf3, 0xc0, 0xda, 0xa0, 0x80, 0xcd, 0xdf, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xf8, 0x31, 0xf1, 0x20, 0x72, 0xaa, 0xb8, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x5e, 0x4e, 0xde, 0xf0, 0x6e, 0xcf, 0x06, 0xf1, 0x80, 0xc3, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x89, 0x66, 0x37, 0x3c, 0x78, 0xb3, 0x41, 0xf2, 0xfc, 0xef, 0xc1, 0x49, 0x9e, 0xaf, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x22, 0x28, 0x15, 0x6a, 0x83, 0x02, 0x36, 0x7f, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xe0, 0xc3, 0xc2, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x0f, 0x38, 0x5c, 0x07, 0xd1, 0xf1, 0x81, 0xb5, 0x41, 0x09, 0x8f, 0xb9, 0xc1, 0x7b, 0x0b, 0x0c, 0x37, 0x28, 0x60, 0xf3, 0x37, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x7e, 0x6e, 0xde, 0xf0, 0x6e, 0xcf, 0x06, 0x25, 0xd1, 0xec, 0x86, 0x07, 0x6f, 0x36, 0x88, 0xa2, 0x29, 0xae, 0x83, 0x93, 0x3c, 0xdf, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0xc0, 0xa3, 0x85, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x2c, 0x8e, 0xde, 0xa0, 0xa8, 0x14, 0x5f, 0x83, 0xa3, 0xeb, 0xe0, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0x3f, 0x26, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x88, 0x91, 0x1c, 0xae, 0x35, 0xbc, 0xad, 0x33, 0x78, 0x7d, 0x10, 0x41, 0xa9, 0x50, 0xb5, 0x86, 0x5f, 0x5c, 0x36, 0x88, 0x46, 0x46, 0xae, 0x83, 0xe8, 0xf8, 0xc0, 0x3a, 0x38, 0x21, 0x50, 0xb4, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0x38, 0x7a, 0x10, 0x67, 0x6c, 0x5c, 0x1b, 0xfe, 0xcd, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x44, 0x78, 0x0e, 0xd7, 0x06, 0xf1, 0xef, 0x6e, 0x75, 0x10, 0xaf, 0x70, 0x5c, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0xaa, 0xf8, 0xb7, 0x36, 0x88, 0xc2, 0x46, 0xae, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x84, 0xe7, 0x70, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xeb, 0x83, 0xf7, 0x16, 0x18, 0x1e, 0x1c, 0xe0, 0xe9, 0x3a, 0x9c, 0x62, 0xad, 0x41, 0x94, 0x57, 0x0a, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x44, 0x79, 0xa5, 0x50, 0x03, 0xf0, 0x30, 0x56, 0x27, 0x67, 0x57, 0x26, 0x53, 0x53, 0x13, 0x93, 0x03, 0x32, 0x57, 0x36, 0x26, 0x57, 0x46, 0xb7, 0xe1, 0xf1, 0x91, 0x0d, 0xa2, 0xbc, 0x52, 0x68, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x70, 0x75, 0xe2, 0xe1, 0x87, 0x9a, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0xcd, 0x95, 0xad, 0x87, 0x1f, 0x6a, 0xda, 0xf0, 0x17, 0xcd, 0x06, 0xc7, 0x96, 0xd2, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x0d, 0xd2, 0x6a, 0x92, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x12, 0xa4, 0xec, 0x06, 0x91, 0x53, 0xc5, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x88, 0x8b, 0x28, 0xae, 0x35, 0xbc, 0xad, 0x73, 0x10, 0xd3, 0x52, 0x59, 0xb5, 0x41, 0xd1, 0xa7, 0xbb, 0x41, 0x2a, 0x5a, 0xd2, 0x1a, 0xde, 0xed, 0xd9, 0xe0, 0xe8, 0x1d, 0xb7, 0x41, 0x52, 0x59, 0xd2, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x2c, 0x8e, 0xde, 0xf0, 0xe0, 0xcd, 0x1a, 0x1c, 0x5d, 0x07, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0x45, 0xa5, 0xf8, 0x41, 0xe1, 0x24, 0xbb, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x23, 0xcc, 0x86, 0x9a, 0x1f, 0xc4, 0x7e, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x18, 0x92, 0xb5, 0xe1, 0xc1, 0x9b, 0x0d, 0x22, 0xdb, 0x93, 0xeb, 0xa0, 0x20, 0x1e, 0xaf, 0xda, 0xa0, 0xe8, 0xd3, 0xdd, 0x20, 0x15, 0x2d, 0x69, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x50, 0x76, 0x6f, 0x90, 0x54, 0x96, 0xb4, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x0d, 0x78, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0x45, 0xa5, 0xf8, 0xc1, 0xc9, 0x1b, 0x6f, 0x0d, 0x3f, 0xc2, 0x0c, 0x7c, 0x9d, 0x18, 0x0e, 0xd4, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x80, 0x07, 0x27, 0x67, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0x22, 0x13, 0x77, 0x83, 0xc3, 0xca, 0xdc, 0x41, 0x43, 0x03, 0x5a, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x03, 0xde, 0x98, 0x9c, 0xbd, 0xe1, 0xdd, 0x9e, 0x0d, 0xe2, 0x51, 0x79, 0x6b, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x9f, 0xd8, 0x5b, 0x1b, 0x1e, 0x93, 0xd9, 0x20, 0x6e, 0x7b, 0xaa, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x44, 0x57, 0xf2, 0xd6, 0x41, 0x8c, 0x9c, 0x72, 0xb5, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x4c, 0x92, 0x38, 0xb5, 0x41, 0x1c, 0xaf, 0x50, 0xad, 0xe1, 0x6d, 0x9d, 0x01, 0x6f, 0x4c, 0xce, 0xae, 0xd5, 0x20, 0xd6, 0x37, 0x85, 0x36, 0x3c, 0x3e, 0xb2, 0x41, 0xac, 0x6f, 0x0a, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0x6d, 0x10, 0xcb, 0x31, 0x5c, 0x1b, 0xc4, 0xc7, 0x0c, 0xd7, 0x06, 0x51, 0xd0, 0xc3, 0xd5, 0x86, 0xbf, 0x68, 0x36, 0x88, 0xcf, 0x19, 0xae, 0x0d, 0x0a, 0xd2, 0xd8, 0x0d, 0x62, 0xaa, 0x86, 0x6b, 0x83, 0xc8, 0xba, 0xe1, 0xda, 0xe0, 0xc4, 0x7e, 0xb3, 0x41, 0x8c, 0xe4, 0x70, 0x6d, 0x50, 0x74, 0x1a, 0x6f, 0x10, 0x55, 0xfc, 0x5b, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x08, 0xcf, 0xe1, 0xda, 0x20, 0xfe, 0xdd, 0xad, 0x0e, 0x6f, 0xa1, 0x1d, 0xc4, 0x69, 0x0e, 0xd7, 0xac, 0x41, 0x9c, 0x86, 0x0a, 0x6d, 0x78, 0x7c, 0x64, 0x83, 0x38, 0x0d, 0x15, 0xda, 0xf0, 0x8b, 0xd2, 0x1a, 0xfe, 0x5c, 0xda, 0x20, 0x22, 0xf0, 0xb0, 0x0e, 0x22, 0x44, 0x86, 0x6b, 0xc3, 0x5f, 0x34, 0x1b, 0xc4, 0xe7, 0x0c, 0xd7, 0x06, 0x27, 0xf6, 0x9b, 0x0d, 0x62, 0x24, 0x87, 0x6b, 0xc3, 0xbb, 0x3d, 0x1b, 0x44, 0x78, 0x0e, 0xd7, 0x06, 0xf1, 0xef, 0x6e, 0x75, 0x10, 0x13, 0xcb, 0x58, 0xab, 0x41, 0x44, 0x45, 0x71, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x44, 0x54, 0x14, 0x57, 0x03, 0xf0, 0xb0, 0x56, 0x96, 0x07, 0x17, 0x96, 0x26, 0x07, 0x62, 0x26, 0xf7, 0xd6, 0x06, 0x32, 0x57, 0x56, 0x46, 0xb6, 0xe1, 0x17, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0xf0, 0x73, 0xe5, 0x41, 0xcc, 0xd0, 0x4b, 0x6d, 0xf8, 0x8b, 0x66, 0x0d, 0x5f, 0xd4, 0x6c, 0xa8, 0xe3, 0xc1, 0xd7, 0x29, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x03, 0x0f, 0x57, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0x48, 0x4a, 0xce, 0x3a, 0x88, 0xa2, 0x25, 0xae, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x16, 0x47, 0x6f, 0x78, 0xf0, 0x66, 0x0d, 0x8e, 0xae, 0x83, 0x6b, 0xf8, 0xc5, 0x65, 0xc3, 0x7b, 0x41, 0x07, 0x51, 0xb4, 0xc4, 0xb5, 0x86, 0x5f, 0x5c, 0x36, 0xbc, 0x17, 0xb4, 0x86, 0xb7, 0x75, 0x06, 0x1e, 0xae, 0xae, 0x3a, 0x9c, 0x62, 0xad, 0x41, 0x04, 0xb0, 0x0a, 0x6d, 0x78, 0x7c, 0x64, 0x83, 0x08, 0x60, 0x15, 0xda, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0xda, 0x20, 0x3e, 0x66, 0xb8, 0x0e, 0x62, 0xb4, 0x87, 0x6b, 0xc3, 0x5f, 0x34, 0x1b, 0xc4, 0xe7, 0x0c, 0xd7, 0x06, 0x05, 0x69, 0xec, 0x06, 0x31, 0x55, 0xc3, 0xb5, 0x41, 0x64, 0xdd, 0x70, 0x6d, 0x50, 0x90, 0xc6, 0x6e, 0x10, 0x53, 0x40, 0x5c, 0x1b, 0x44, 0x79, 0x10, 0xd7, 0x06, 0x27, 0xf6, 0x9b, 0x0d, 0x62, 0x24, 0x87, 0x6b, 0xc3, 0xbb, 0x3d, 0x1b, 0x44, 0x15, 0xff, 0xd6, 0x06, 0xb1, 0xa6, 0xc3, 0xb5, 0x41, 0x84, 0x15, 0x71, 0x35, 0x6b, 0x10, 0x45, 0xb0, 0x42, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0x51, 0x04, 0x2b, 0xd4, 0x00, 0xbf, 0x5d, 0x18, 0x5b, 0x1a, 0x59, 0x18, 0x5d, 0xd9, 0x86, 0xc7, 0x47, 0x36, 0x88, 0x22, 0x58, 0xa1, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0xa2, 0x0c, 0xb4, 0x69, 0x83, 0xa4, 0x78, 0xc6, 0x83, 0x98, 0xeb, 0xe3, 0xda, 0xf0, 0x17, 0xcd, 0x86, 0x0f, 0x56, 0x37, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x88, 0x9a, 0x41, 0xa1, 0x36, 0x38, 0x9c, 0xf3, 0x6d, 0x10, 0xbb, 0x4a, 0x5c, 0x07, 0xd1, 0xf1, 0x81, 0x75, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0x6a, 0x10, 0xdd, 0x23, 0x44, 0x1b, 0x94, 0x5d, 0xb2, 0x1b, 0x44, 0xf7, 0x08, 0xd1, 0x06, 0x6f, 0x16, 0x3e, 0x99, 0x0d, 0x4a, 0x16, 0xf6, 0x59, 0x66, 0x0d, 0xe2, 0x71, 0x6c, 0x68, 0xc3, 0x83, 0x92, 0x6b, 0x78, 0x50, 0x72, 0x83, 0xd7, 0x99, 0x57, 0x6f, 0xf8, 0xc4, 0x66, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x73, 0x97, 0x81, 0x1f, 0xb3, 0x0f, 0x62, 0x7b, 0x89, 0x6a, 0x0d, 0x9f, 0xbb, 0x0c, 0xf0, 0x98, 0xb1, 0x85, 0x9d, 0xcd, 0x07, 0x6f, 0x26, 0x01, 0x6f, 0x83, 0xd4, 0x8b, 0xe2, 0x0d, 0x8f, 0x8f, 0x6c, 0x10, 0x8f, 0x63, 0x43, 0x1b, 0x94, 0x2c, 0xec, 0xb3, 0xcc, 0x1a, 0xbc, 0x19, 0xe4, 0x73, 0xc3, 0xe3, 0x23, 0x1b, 0xbc, 0x19, 0xe4, 0x73, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x36, 0xdc, 0x47, 0x0f, 0xe2, 0x02, 0x64, 0x6b, 0xc3, 0x5f, 0x34, 0x1b, 0x1c, 0x5b, 0x4a, 0x37, 0x28, 0x48, 0x63, 0x37, 0x78, 0x34, 0x92, 0xc8, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0x78, 0xc9, 0xbd, 0xbd, 0xd1, 0xb5, 0xbc, 0xd5, 0xd1, 0xc1, 0xd5, 0xd1, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0xa4, 0xea, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0xf0, 0x99, 0x83, 0x63, 0x4b, 0xa3, 0x6b, 0x79, 0x1b, 0xa3, 0x9b, 0xdb, 0xe0, 0xb4, 0x0a, 0x77, 0x10, 0x31, 0x61, 0x52, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x58, 0x10, 0x1b, 0xaa, 0x36, 0x28, 0x3a, 0x8d, 0x37, 0x28, 0x32, 0x71, 0x37, 0x88, 0x29, 0xb6, 0xa8, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x8a, 0x6d, 0xe5, 0x0d, 0x52, 0x4e, 0xab, 0x36, 0x28, 0x3a, 0x8d, 0x37, 0x28, 0x91, 0xaa, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x2f, 0xd2, 0x95, 0xde, 0xf0, 0xe0, 0xcd, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x14, 0x58, 0x0f, 0x62, 0xa1, 0x2b, 0xaa, 0x0d, 0xbf, 0x28, 0x6d, 0x70, 0x9e, 0x54, 0xd9, 0xf0, 0x6e, 0xcf, 0x06, 0xb1, 0x24, 0x1a, 0xb5, 0x86, 0x4b, 0x6a, 0x83, 0xc7, 0x02, 0xc3, 0xac, 0x41, 0xa4, 0x78, 0x46, 0x1d, 0x94, 0xd1, 0xe7, 0xb5, 0x02, 0x3c, 0x6b, 0x65, 0x79, 0x65, 0xe4, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0x45, 0xeb, 0xc9, 0xc1, 0xd3, 0xcf, 0xe5, 0x36, 0x5c, 0x52, 0x1b, 0x3c, 0x38, 0xe7, 0x73, 0x05, 0x7e, 0xcc, 0x6e, 0xc3, 0xdb, 0x3a, 0x83, 0xc7, 0x07, 0xc7, 0x81, 0x8f, 0xd5, 0x20, 0x76, 0x98, 0xb9, 0xda, 0xf0, 0xb6, 0xce, 0x00, 0x5e, 0x66, 0x2d, 0x6b, 0x65, 0x79, 0x65, 0x64, 0x68, 0x61, 0x73, 0x68, 0x1d, 0x4e, 0xb1, 0x35, 0x88, 0xab, 0x68, 0xae, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0xcf, 0xa5, 0x01, 0xde, 0xb7, 0x3a, 0x3a, 0xb8, 0x3a, 0xba, 0x79, 0x83, 0xd0, 0x2f, 0xd9, 0x20, 0xa4, 0x4c, 0x36, 0x68, 0x9b, 0x4c, 0xbb, 0x0d, 0x7f, 0xd1, 0x6c, 0xd0, 0x36, 0x99, 0xf6, 0x06, 0x45, 0xa7, 0xf1, 0x1a, 0xde, 0xd6, 0x19, 0xe0, 0x9f, 0x2b, 0xa3, 0x6b, 0x31, 0x63, 0x0b, 0x3b, 0x5b, 0xc3, 0xdb, 0x3a, 0x03, 0x7c, 0x66, 0x2d, 0x72, 0x6f, 0x6f, 0x74, 0x1b, 0xbe, 0xc2, 0xd9, 0xa0, 0x20, 0x8d, 0xdd, 0x60, 0x85, 0xb8, 0xfc, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x14, 0x58, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x85, 0x76, 0xef, 0x1a, 0xde, 0xed, 0xd9, 0xe0, 0x74, 0xc0, 0xb7, 0x86, 0x77, 0x7b, 0x36, 0xbc, 0xe6, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xe8, 0x39, 0xb9, 0x86, 0xb7, 0x75, 0x36, 0x88, 0xca, 0x6f, 0xae, 0xaa, 0x0e, 0x82, 0x95, 0x75, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0x9f, 0xbb, 0x0c, 0xce, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x83, 0x85, 0xe0, 0x06, 0x8b, 0x15, 0xe6, 0x0f, 0x62, 0xc9, 0x9c, 0x6b, 0x0d, 0x9f, 0xbb, 0x0c, 0x2e, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0xd3, 0x5b, 0xdc, 0x41, 0x7c, 0xa1, 0x73, 0xb5, 0x41, 0xc1, 0x87, 0xb9, 0x06, 0xc5, 0x24, 0xe6, 0x06, 0x45, 0x2a, 0xe6, 0x41, 0x14, 0x9a, 0x73, 0x6d, 0x50, 0xc2, 0x63, 0x2e, 0x38, 0x7d, 0x10, 0x85, 0xe6, 0x5c, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xf4, 0x20, 0x0a, 0xcd, 0xb9, 0x36, 0x38, 0xb1, 0xdf, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0x3c, 0xe1, 0xc2, 0xe4, 0xca, 0xdc, 0xe8, 0x5a, 0xde, 0xea, 0xe8, 0xe0, 0xea, 0xe8, 0x36, 0xfc, 0xe2, 0xb2, 0x86, 0x77, 0x7b, 0x36, 0x88, 0x25, 0xd1, 0xa8, 0x35, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x88, 0x42, 0x73, 0xae, 0x83, 0x94, 0xb7, 0xab, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0xc4, 0x92, 0x68, 0xd4, 0x1a, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x44, 0xa1, 0x39, 0xd7, 0xc1, 0xf1, 0x93, 0xaf, 0x5a, 0x0d, 0xa2, 0x9c, 0x9d, 0x6b, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0xce, 0x1e, 0x1c, 0x5b, 0x4a, 0xd7, 0xf0, 0xe7, 0xd2, 0xe0, 0xf2, 0xc1, 0xb1, 0xa5, 0xb4, 0x0d, 0x7f, 0xd1, 0x6c, 0xd0, 0x36, 0x99, 0xf6, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x31, 0x1a, 0xce, 0xb5, 0x86, 0xb7, 0x75, 0x06, 0xf8, 0xcd, 0x5a, 0xe0, 0xc2, 0xe4, 0xca, 0xdc, 0xe8, 0x36, 0xfc, 0xe2, 0xb2, 0x86, 0xb7, 0x75, 0x0e, 0xa2, 0x8e, 0x9b, 0x6b, 0xc3, 0x83, 0x37, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x62, 0x5b, 0x79, 0x83, 0xc3, 0xca, 0xdc, 0x1a, 0x1c, 0x5d, 0x07, 0x37, 0x48, 0x79, 0xbb, 0x3a, 0x38, 0xf4, 0xf5, 0xb5, 0x41, 0x0a, 0x74, 0xea, 0x1a, 0xde, 0xd6, 0x39, 0x88, 0xa4, 0x6e, 0xae, 0x56, 0xc0, 0x5b, 0x23, 0x33, 0x37, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0x36, 0x68, 0xc3, 0x7d, 0x74, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x63, 0x74, 0xf8, 0xc1, 0x49, 0x4f, 0x74, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x50, 0xce, 0x93, 0x83, 0xa7, 0x9f, 0xcb, 0xb5, 0xe1, 0x2f, 0x9a, 0x0d, 0x8e, 0x2d, 0xa5, 0x1b, 0x14, 0xa4, 0xb1, 0x1b, 0xb4, 0xc9, 0xfb, 0xbd, 0x86, 0x77, 0x7b, 0xd6, 0x70, 0x49, 0x6d, 0xf0, 0xe0, 0x9c, 0xcf, 0x35, 0x88, 0x3a, 0x6e, 0xae, 0x83, 0xd8, 0x5e, 0xa2, 0x5a, 0x83, 0x48, 0xea, 0xe6, 0xda, 0xf0, 0xb6, 0xce, 0x00, 0xbe, 0x66, 0x2d, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x6b, 0x65, 0x79, 0x63, 0x74, 0x78, 0x6d, 0x90, 0x7a, 0x1a, 0xbb, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0xa1, 0xe7, 0xe4, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xc6, 0xe8, 0xf0, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0xcb, 0x91, 0x85, 0x0f, 0xe2, 0xeb, 0x9f, 0xab, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x92, 0xda, 0xe0, 0xc1, 0x39, 0x9f, 0x6b, 0x10, 0x75, 0xdc, 0x5c, 0x07, 0x4d, 0x0e, 0x7f, 0xaf, 0x41, 0x24, 0x75, 0x73, 0x6d, 0x78, 0x5b, 0x67, 0x00, 0x5f, 0xb3, 0x16, 0xb2, 0x32, 0xb9, 0x34, 0xbb, 0xb2, 0xb5, 0xb2, 0xbc, 0xb6, 0x30, 0xba, 0x36, 0x28, 0x96, 0xb6, 0x0f, 0x62, 0xc9, 0x91, 0x6a, 0x35, 0x88, 0x05, 0xb1, 0xa1, 0x0d, 0x8f, 0x8f, 0x6c, 0x10, 0x0b, 0x62, 0x43, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0xe7, 0xa0, 0xba, 0x1f, 0x7e, 0xa8, 0x59, 0xc3, 0x9f, 0x4b, 0x03, 0x3c, 0x63, 0x68, 0x75, 0x6e, 0xeb, 0xc1, 0xd3, 0xcf, 0xe5, 0xda, 0xf0, 0x17, 0xcd, 0x06, 0x6d, 0x93, 0x69, 0x6f, 0x50, 0x74, 0x1a, 0x6f, 0x10, 0xa3, 0xe1, 0x5c, 0x6b, 0x78, 0x5b, 0x67, 0x00, 0x1f, 0xb3, 0x96, 0x31, 0xb4, 0x3a, 0xb7, 0xb5, 0x32, 0x37, 0xb2, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x96, 0x4a, 0x12, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0xe2, 0x5b, 0x9a, 0x6b, 0x83, 0x94, 0xd3, 0xaa, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x1c, 0x19, 0x74, 0xd5, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0x3e, 0x57, 0xda, 0xe0, 0x3c, 0xa9, 0xb2, 0x86, 0x3f, 0x97, 0x36, 0x48, 0x5a, 0x10, 0x3e, 0x78, 0xfa, 0xb9, 0x5c, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x87, 0x93, 0x2b, 0xb3, 0x0f, 0xda, 0x26, 0xd3, 0x6e, 0xc3, 0x07, 0x39, 0x1b, 0x1c, 0xa7, 0xdd, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xf1, 0x51, 0xcf, 0xb5, 0x41, 0xb4, 0x7a, 0x46, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xe3, 0x83, 0x84, 0x05, 0xe1, 0x35, 0xbc, 0xad, 0x33, 0x38, 0x7c, 0x90, 0xb0, 0x20, 0xbc, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x28, 0xbb, 0x37, 0x88, 0xd1, 0x7b, 0xae, 0x35, 0xbc, 0xad, 0x33, 0x80, 0x9f, 0x59, 0xcb, 0x18, 0x5a, 0x9d, 0xdb, 0xda, 0x1c, 0x5d, 0x98, 0x1c, 0x5d, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0x3c, 0xde, 0xea, 0xe8, 0xe0, 0xea, 0xe8, 0x5a, 0xc6, 0xec, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x11, 0xcd, 0xd0, 0x55, 0x1b, 0x44, 0xab, 0x67, 0xd4, 0x06, 0xb1, 0xeb, 0xd0, 0xb5, 0x41, 0x54, 0x3d, 0x74, 0x1d, 0xc4, 0xe7, 0x3d, 0xd7, 0xe1, 0x14, 0xab, 0x0e, 0xa7, 0xd8, 0x06, 0x65, 0x97, 0xec, 0x06, 0x91, 0xad, 0x32, 0xb4, 0x86, 0x4b, 0x6a, 0x8d, 0xc7, 0x1b, 0xc4, 0xe3, 0xd8, 0x50, 0xcd, 0x06, 0x25, 0x0b, 0xfb, 0x2c, 0xb3, 0x06, 0x71, 0x60, 0x30, 0xb4, 0xe1, 0xf1, 0x91, 0x0d, 0xe2, 0xc0, 0x60, 0x68, 0xc3, 0x2f, 0x4a, 0x1b, 0xb4, 0x4d, 0xa6, 0xbd, 0xe1, 0x2f, 0x9a, 0x0d, 0x3f, 0xd4, 0x6c, 0x70, 0xc0, 0xa2, 0x5b, 0x83, 0x82, 0x34, 0x76, 0x83, 0x30, 0xce, 0x58, 0xc3, 0xbb, 0x3d, 0x1b, 0xc4, 0x5a, 0xca, 0xd6, 0x1a, 0x7e, 0x71, 0xd9, 0xe0, 0xb0, 0x32, 0xb7, 0x41, 0x7c, 0xd4, 0x73, 0xb5, 0x86, 0x5f, 0x5c, 0x36, 0x38, 0x35, 0xb7, 0x6d, 0x10, 0xdb, 0x4b, 0x54, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0x02, 0x96, 0xf5, 0x20, 0xfa, 0x4f, 0xa3, 0xd6, 0xf0, 0x8b, 0xcb, 0x86, 0xc7, 0x64, 0xd6, 0xf0, 0xb6, 0xce, 0x00, 0xbf, 0x18, 0xdb, 0xdb, 0xd8, 0x1a, 0x5b, 0x99, 0x5b, 0x6b, 0xf8, 0xc5, 0x65, 0xc3, 0x63, 0x32, 0x07, 0xf1, 0x79, 0xcf, 0x75, 0x50, 0xd6, 0x79, 0x6e, 0x50, 0xf4, 0xe9, 0x6e, 0x10, 0xc2, 0x19, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x68, 0xaa, 0x96, 0xda, 0xe0, 0x3d, 0x36, 0xa5, 0x1b, 0x3c, 0x9c, 0xe3, 0xb3, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0x12, 0x16, 0x84, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x51, 0x2e, 0x20, 0x75, 0x10, 0xd3, 0x1f, 0x5d, 0x1b, 0x14, 0x7d, 0xba, 0x1b, 0x84, 0x70, 0xc6, 0x06, 0x71, 0xf0, 0xd1, 0xb5, 0x41, 0xd1, 0xa7, 0xbb, 0x41, 0xc2, 0x82, 0xf0, 0x06, 0x91, 0x0a, 0xd2, 0xb5, 0x41, 0xd1, 0xa7, 0xbb, 0x41, 0x08, 0x67, 0x6c, 0x10, 0x07, 0x1f, 0x5d, 0x1b, 0x14, 0x7d, 0xba, 0x1b, 0x24, 0x2c, 0x08, 0x6f, 0x10, 0xa9, 0x20, 0x5d, 0x1b, 0x14, 0x7d, 0xba, 0x1b, 0x84, 0x70, 0xc6, 0x06, 0x71, 0xf0, 0xd1, 0xb5, 0x41, 0xd1, 0xa7, 0xbb, 0x41, 0xc2, 0x82, 0xf0, 0x06, 0x91, 0x0a, 0xd2, 0xb5, 0x41, 0xd1, 0xa7, 0xbb, 0x41, 0x08, 0x67, 0x6c, 0x10, 0x07, 0x1f, 0x5d, 0x1b, 0x14, 0x7d, 0xba, 0x1b, 0x24, 0x2c, 0x08, 0x6f, 0x10, 0xa9, 0x20, 0x5d, 0x1b, 0x14, 0x7d, 0xba, 0x1b, 0x84, 0x70, 0xc6, 0x06, 0x71, 0xf0, 0xd1, 0xb5, 0x41, 0xd1, 0xa7, 0xbb, 0x41, 0xc2, 0x82, 0xf0, 0x06, 0x91, 0x0a, 0xd2, 0xb5, 0x41, 0xd1, 0xa7, 0xbb, 0x41, 0x08, 0x67, 0x6c, 0x10, 0x07, 0x1f, 0x5d, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0x10, 0x03, 0xb1, 0xc1, 0x7b, 0x6c, 0x4a, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xc5, 0xb6, 0xf2, 0x06, 0x87, 0x95, 0xb9, 0x35, 0x38, 0xba, 0x0e, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0x7c, 0xdc, 0x0d, 0x0e, 0x2b, 0x73, 0x07, 0xf1, 0xca, 0x5c, 0x75, 0x10, 0x6b, 0x1a, 0x5d, 0xb5, 0xcc, 0x1a, 0xa4, 0x75, 0xac, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0x0d, 0xc2, 0x38, 0xe3, 0xf0, 0x43, 0xcd, 0x1a, 0xfe, 0x5c, 0xda, 0x20, 0x69, 0x41, 0xf8, 0xf0, 0x43, 0x4d, 0x1b, 0xbe, 0x7e, 0xd9, 0xe0, 0x3d, 0x36, 0xa5, 0x1b, 0x1c, 0xb0, 0xe8, 0xd6, 0xa0, 0xe8, 0xd3, 0xdd, 0x20, 0x84, 0x33, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xe5, 0x4f, 0xed, 0x06, 0x4b, 0xd7, 0x50, 0x37, 0x88, 0x16, 0xa9, 0xad, 0x0d, 0x62, 0x55, 0x6a, 0x6b, 0x83, 0x78, 0x99, 0xda, 0xda, 0x60, 0xe9, 0x1a, 0xea, 0x41, 0x0c, 0x36, 0x4c, 0x6d, 0x50, 0xf4, 0xe9, 0x6e, 0x10, 0xc2, 0x19, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xf2, 0xa7, 0x76, 0x83, 0xc8, 0x1a, 0x97, 0xda, 0x20, 0x12, 0xa9, 0xb6, 0x36, 0x88, 0xbd, 0xb4, 0xa9, 0x0d, 0xe2, 0x1e, 0x6d, 0x6a, 0x83, 0x98, 0xae, 0x9a, 0xda, 0x20, 0x9e, 0xac, 0xa6, 0xda, 0xa0, 0xe8, 0xd3, 0xdd, 0x20, 0x84, 0x33, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xe5, 0x4f, 0xed, 0x06, 0x31, 0x5d, 0x35, 0xb5, 0x41, 0x34, 0x53, 0x58, 0x6d, 0x10, 0xc1, 0x56, 0x5b, 0x1b, 0xc4, 0xfb, 0xd9, 0xd4, 0x06, 0xd1, 0x22, 0xb5, 0xb5, 0x41, 0x24, 0x52, 0x6d, 0xb5, 0x41, 0xd1, 0xa7, 0xbb, 0x41, 0x08, 0x67, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0xca, 0x9f, 0xda, 0x0d, 0xe2, 0xc9, 0x6a, 0x6a, 0x83, 0xe8, 0xeb, 0xb0, 0xda, 0x20, 0xe6, 0xd0, 0xa6, 0x36, 0x88, 0x7f, 0xac, 0xad, 0x0d, 0xa2, 0x99, 0xc2, 0xea, 0x20, 0xf2, 0x3a, 0xac, 0x36, 0x28, 0xfa, 0x74, 0x37, 0x08, 0xe1, 0x8c, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xf9, 0x53, 0xbb, 0xc1, 0xd2, 0x35, 0xd4, 0x0d, 0x22, 0x91, 0x6a, 0x6b, 0x83, 0x08, 0xb6, 0xda, 0xda, 0x20, 0xfe, 0xb1, 0xb6, 0x36, 0x88, 0x55, 0xa9, 0xad, 0x83, 0xb8, 0x4b, 0x9b, 0xda, 0xa0, 0xe8, 0xd3, 0xdd, 0x20, 0x84, 0x33, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xe5, 0x4f, 0xed, 0x06, 0x91, 0x35, 0x2e, 0xb5, 0x41, 0x34, 0x53, 0x58, 0x6d, 0x10, 0x73, 0x68, 0x53, 0x1b, 0xc4, 0xcb, 0xd4, 0xd6, 0x06, 0x11, 0x6c, 0xb5, 0xb5, 0x41, 0xcc, 0xa1, 0x4d, 0xb5, 0x41, 0xd1, 0xa7, 0xbb, 0x41, 0x08, 0x67, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0xca, 0x9f, 0xda, 0x0d, 0x62, 0xba, 0x6a, 0x6a, 0x83, 0xe8, 0xeb, 0xb0, 0xda, 0x20, 0x56, 0xa5, 0xb6, 0x36, 0x88, 0x7b, 0xb4, 0xa9, 0x0d, 0xe2, 0x65, 0x6a, 0xeb, 0x20, 0x9e, 0xaa, 0xb6, 0x36, 0x28, 0xfa, 0x74, 0x37, 0x08, 0xe1, 0x8c, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xf9, 0x53, 0xbb, 0x41, 0x3c, 0x59, 0x4d, 0x6d, 0x10, 0x2d, 0x52, 0x5b, 0x1b, 0xc4, 0x5e, 0xda, 0xd4, 0x06, 0xf1, 0x7e, 0x36, 0xb5, 0x41, 0xbc, 0x9f, 0x4d, 0x1d, 0xc4, 0x3e, 0xd6, 0xd6, 0xc1, 0x7b, 0x6c, 0x4a, 0x97, 0x59, 0x83, 0xe2, 0xf2, 0x7d, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0xf3, 0xa4, 0xca, 0x06, 0xb1, 0x7d, 0xb7, 0xd5, 0x86, 0x77, 0x7b, 0x36, 0x88, 0xf3, 0xa5, 0xad, 0x0d, 0xca, 0xe8, 0xf3, 0x0d, 0x0e, 0xf9, 0x2d, 0x07, 0xf1, 0xca, 0x5c, 0xb5, 0x82, 0x9f, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x1b, 0xbe, 0x5c, 0xda, 0xf0, 0x3c, 0xd3, 0x06, 0x05, 0x60, 0xec, 0x06, 0xc5, 0x3f, 0xf0, 0x1a, 0xfe, 0x5c, 0x1a, 0xf8, 0x36, 0xfc, 0xf0, 0x43, 0xcd, 0x1a, 0xfe, 0x5c, 0x1a, 0xf8, 0xb6, 0xfc, 0xf0, 0x43, 0x4d, 0x1b, 0xbe, 0x7e, 0xd9, 0xe0, 0x3d, 0x36, 0xa5, 0x1b, 0x14, 0x7d, 0xba, 0x1b, 0x84, 0x70, 0xc6, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x44, 0x7c, 0xdf, 0xf0, 0xb4, 0xce, 0x1a, 0x24, 0x19, 0x10, 0xae, 0xe1, 0x6d, 0x9d, 0x01, 0x9a, 0xb9, 0xba, 0xb6, 0x19, 0xd9, 0x1a, 0xde, 0xed, 0xd9, 0xe0, 0xdc, 0x69, 0x71, 0x78, 0xe8, 0x67, 0x83, 0xa3, 0xa5, 0xc5, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0xfe, 0x59, 0x19, 0x9d, 0xd8, 0x1a, 0xde, 0xd6, 0x19, 0xf8, 0x36, 0xbc, 0x6a, 0x83, 0xa2, 0x4f, 0x77, 0x83, 0x10, 0xce, 0x58, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0x88, 0xef, 0x1b, 0x94, 0xeb, 0xb2, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x72, 0x6f, 0x78, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x73, 0xa7, 0xc5, 0x41, 0xa9, 0x2e, 0xbb, 0x41, 0x8c, 0x39, 0x75, 0x1d, 0x1c, 0x5d, 0xe5, 0xda, 0xa0, 0xe8, 0xd3, 0xdd, 0x20, 0x84, 0x33, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x25, 0xe2, 0xfb, 0x86, 0xa7, 0x77, 0xd6, 0x20, 0xc9, 0x80, 0x70, 0x83, 0xd8, 0x6d, 0xea, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x9c, 0x3b, 0x2d, 0x0e, 0xbf, 0x08, 0x6d, 0x10, 0x97, 0x52, 0x5d, 0xb5, 0x41, 0xd1, 0xa7, 0xbb, 0x41, 0x08, 0x67, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0xc4, 0xf7, 0x0d, 0xef, 0x05, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x22, 0x42, 0xaa, 0x6b, 0x83, 0xa3, 0xa5, 0xc5, 0x06, 0xd1, 0x59, 0xd5, 0x75, 0xd0, 0x3a, 0x2e, 0x73, 0x1b, 0x14, 0x7d, 0xba, 0x1b, 0x84, 0x70, 0xc6, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x44, 0x7c, 0xdf, 0xf0, 0xb4, 0xce, 0x1a, 0x24, 0x19, 0x10, 0x6e, 0x10, 0xbb, 0x4d, 0x5d, 0x1b, 0xc4, 0x98, 0x53, 0xd7, 0x06, 0x47, 0x4b, 0x8b, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x34, 0x3e, 0x75, 0x6d, 0x50, 0x7c, 0xac, 0x57, 0x1b, 0x14, 0x7d, 0xba, 0x1b, 0x84, 0x70, 0xc6, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x44, 0x7c, 0xdf, 0xa0, 0x5c, 0x97, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x44, 0x84, 0x54, 0xd7, 0x06, 0x71, 0x29, 0xd5, 0xb5, 0x41, 0x8c, 0x39, 0x75, 0x1d, 0x1c, 0x55, 0xe6, 0xda, 0xa0, 0xe8, 0xd3, 0xdd, 0x20, 0x84, 0x33, 0x36, 0x88, 0x2c, 0xaa, 0xae, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0x42, 0x38, 0x63, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x22, 0xbe, 0x6f, 0x78, 0x2f, 0x68, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x11, 0x52, 0x5d, 0x1b, 0x1c, 0x2d, 0x2d, 0x36, 0x88, 0xce, 0xaa, 0xae, 0x83, 0xd3, 0x02, 0x4d, 0x07, 0xef, 0xb1, 0x29, 0x5d, 0x01, 0x4f, 0xee, 0x0d, 0xdf, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0xda, 0xf0, 0xe5, 0xd2, 0x86, 0xe7, 0x99, 0x0e, 0xe2, 0xfd, 0x26, 0x6a, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x80, 0x46, 0xee, 0x4d, 0x6e, 0x46, 0xb6, 0x41, 0x31, 0xb4, 0xbb, 0x86, 0x77, 0x7b, 0x36, 0x38, 0xc4, 0x40, 0x1c, 0x7e, 0x3f, 0xeb, 0x70, 0x8a, 0xb5, 0x06, 0x25, 0x42, 0xcb, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0xc7, 0x32, 0xb4, 0x36, 0x88, 0x01, 0x9a, 0xad, 0x83, 0x78, 0x65, 0xae, 0x5a, 0x0d, 0xe2, 0xf8, 0xa9, 0x6b, 0xc3, 0xbb, 0x3d, 0x1b, 0x44, 0x96, 0x59, 0xd7, 0x06, 0x31, 0x40, 0xb3, 0x75, 0x10, 0xd3, 0x1f, 0x5d, 0x87, 0x53, 0xac, 0xc3, 0x29, 0xb6, 0x1a, 0xc4, 0xc7, 0x80, 0xd4, 0x86, 0x5f, 0x94, 0x36, 0x88, 0x61, 0x97, 0xae, 0x0d, 0x5f, 0xbf, 0x6c, 0xf0, 0x70, 0x8e, 0xcf, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x6c, 0x2b, 0x6f, 0x70, 0x58, 0x60, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0x48, 0xd5, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x87, 0x8e, 0x04, 0xb5, 0x41, 0xf4, 0x9e, 0x75, 0xd5, 0xe1, 0x14, 0xeb, 0x70, 0x8a, 0xad, 0x06, 0x11, 0x84, 0xd0, 0xb5, 0xc1, 0xc2, 0xce, 0xa5, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x68, 0xf7, 0x1e, 0x14, 0xc4, 0xe3, 0xab, 0x41, 0x44, 0x91, 0x75, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x34, 0xa7, 0xd8, 0x35, 0x3c, 0x28, 0xb9, 0x41, 0xaa, 0x84, 0xed, 0x86, 0xb7, 0x75, 0x06, 0x74, 0xb3, 0xb2, 0x19, 0xd9, 0x41, 0xe1, 0x24, 0xbb, 0x1a, 0xc4, 0x3b, 0x44, 0xd7, 0x06, 0x0b, 0x3b, 0x97, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0xa1, 0xdd, 0x7b, 0x50, 0x38, 0xc9, 0xae, 0x41, 0x64, 0xdb, 0x6d, 0xad, 0x06, 0x0f, 0x1d, 0x09, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x05, 0xd1, 0xf2, 0x06, 0x01, 0xcb, 0xba, 0x86, 0x1f, 0x61, 0x06, 0xbe, 0x0e, 0x3f, 0x88, 0xfc, 0x85, 0xa1, 0x0e, 0xa7, 0xd8, 0x1a, 0x44, 0xa1, 0x44, 0xd7, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xef, 0x41, 0xdb, 0x64, 0xda, 0x1b, 0xbe, 0x7e, 0xd9, 0x60, 0xe9, 0x1a, 0xea, 0x86, 0xaf, 0x5f, 0x36, 0x7c, 0x08, 0xb3, 0xe1, 0xdd, 0x9e, 0x0d, 0x8a, 0x6d, 0xe5, 0x0d, 0x0e, 0x2b, 0x73, 0x6b, 0x70, 0x74, 0x1d, 0x5c, 0xc3, 0xbb, 0x3d, 0x1b, 0xc4, 0x92, 0x68, 0xd4, 0x41, 0xda, 0xff, 0x55, 0xcd, 0x1a, 0xc4, 0x64, 0x3f, 0xd7, 0x06, 0x0b, 0x3b, 0x97, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0xa1, 0xdd, 0x7b, 0x70, 0x54, 0x60, 0x3b, 0x9c, 0x62, 0x6b, 0x10, 0xb7, 0xe2, 0x5c, 0x1b, 0x2c, 0xec, 0x5c, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x85, 0x76, 0xef, 0x41, 0x41, 0x29, 0x7e, 0x38, 0xc5, 0x5a, 0x83, 0x35, 0x17, 0xe1, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0x6b, 0x2e, 0xc2, 0x37, 0x7c, 0xae, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x7e, 0xcc, 0x3e, 0x38, 0xb6, 0x94, 0x6e, 0x10, 0xff, 0x17, 0x5b, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0xa4, 0x05, 0xe1, 0x83, 0x63, 0x4b, 0xe9, 0x1a, 0xfe, 0x5c, 0xda, 0x20, 0xe6, 0x39, 0xba, 0x0e, 0xca, 0x2c, 0xdd, 0x35, 0xfc, 0xb9, 0xb4, 0x41, 0xec, 0x30, 0x73, 0x1d, 0x1c, 0x28, 0x56, 0x5b, 0x83, 0x38, 0xa4, 0xdb, 0x3a, 0x9c, 0x62, 0x6b, 0x10, 0xdd, 0xe1, 0x5c, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x1b, 0x44, 0xeb, 0x87, 0xd3, 0x06, 0x91, 0x45, 0xd7, 0xd5, 0x86, 0x4b, 0x6a, 0xc3, 0xbe, 0xc0, 0x1a, 0x44, 0x52, 0x37, 0xd7, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x28, 0xbb, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0xb1, 0xc3, 0xcc, 0x75, 0xd8, 0x17, 0x38, 0x28, 0xac, 0xba, 0x5b, 0x0d, 0xa2, 0xbe, 0xa9, 0x6b, 0xc3, 0x83, 0x92, 0x1b, 0x1c, 0xb6, 0xe1, 0x0e, 0xe2, 0xef, 0xad, 0x6b, 0x16, 0xf8, 0x34, 0xfb, 0x20, 0x19, 0x59, 0x77, 0x35, 0x88, 0x24, 0x7a, 0xae, 0x0d, 0x16, 0x76, 0x2e, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x42, 0xbb, 0xf7, 0x20, 0x58, 0x59, 0x0f, 0xa7, 0x58, 0x6b, 0x10, 0xd3, 0xdd, 0x5c, 0x1b, 0x2c, 0xec, 0x5c, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x85, 0x76, 0xef, 0xc1, 0x99, 0xb9, 0xed, 0x70, 0x8a, 0xad, 0x41, 0x04, 0x0a, 0x74, 0x6d, 0xb0, 0xb0, 0x73, 0x69, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0xda, 0xbd, 0x07, 0x87, 0xe5, 0x99, 0x35, 0x88, 0x97, 0xb8, 0xad, 0xc3, 0x29, 0xb6, 0x06, 0x91, 0xfb, 0xd6, 0x75, 0x70, 0x62, 0x5f, 0x5b, 0x0d, 0x22, 0x63, 0x9a, 0x6b, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x62, 0xc7, 0xf6, 0x20, 0x2e, 0x40, 0xb6, 0x36, 0xfc, 0x45, 0xb3, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0x48, 0x99, 0xac, 0xe1, 0x73, 0xa5, 0x0d, 0xce, 0x93, 0x2a, 0x1b, 0x3c, 0xfd, 0x5c, 0xae, 0x36, 0x28, 0xf8, 0x30, 0xd7, 0xa0, 0x98, 0xc4, 0xdc, 0xf0, 0x43, 0xcd, 0x41, 0x34, 0x91, 0x6c, 0x6d, 0x50, 0x90, 0xc6, 0x0e, 0x78, 0x70, 0x65, 0xf2, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xd0, 0xee, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x3e, 0x05, 0x3c, 0x28, 0x0d, 0xc5, 0xdb, 0xa0, 0xb4, 0xb7, 0x5c, 0xc3, 0x9f, 0x4b, 0x03, 0xf8, 0x8c, 0xa1, 0xd5, 0xb9, 0xad, 0xb5, 0xbc, 0x8d, 0xd1, 0xcd, 0x07, 0xf1, 0xb4, 0xd8, 0xb5, 0x41, 0x69, 0x6f, 0xb9, 0xc1, 0x79, 0x52, 0x65, 0xc3, 0x57, 0x38, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0xbe, 0xf8, 0xdd, 0x20, 0x52, 0x43, 0xb6, 0x36, 0x88, 0xff, 0xf6, 0xaa, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0x8c, 0x3e, 0x3f, 0x88, 0x98, 0x30, 0xa9, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x1c, 0x3f, 0x76, 0xd5, 0x06, 0x85, 0xa1, 0xea, 0x1a, 0x7e, 0x71, 0xd9, 0xa0, 0x8c, 0x3e, 0x5f, 0x83, 0xf8, 0x6f, 0xaf, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x45, 0x26, 0xee, 0x86, 0xa7, 0x75, 0x36, 0x88, 0x0b, 0x92, 0xad, 0xda, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0x36, 0x28, 0x74, 0xcf, 0xd7, 0x20, 0x12, 0xbd, 0xa2, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x4f, 0x01, 0x0f, 0x22, 0x45, 0xb2, 0x6b, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0xf8, 0xb8, 0x07, 0xf1, 0x5c, 0xd9, 0xd5, 0xe1, 0x14, 0xeb, 0x70, 0x8a, 0xad, 0x06, 0xd1, 0x2a, 0x42, 0xb4, 0xe1, 0xf1, 0x91, 0x0d, 0xa2, 0x55, 0x84, 0x68, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x78, 0xa3, 0x91, 0xda, 0x20, 0x7e, 0x64, 0xa4, 0x0e, 0xe2, 0x25, 0x2b, 0x6a, 0xc3, 0x5f, 0x34, 0x1b, 0x7e, 0xa8, 0xd9, 0xa0, 0x20, 0x8d, 0x5d, 0xc3, 0xf7, 0xed, 0x03, 0x9f, 0x66, 0x1f, 0x34, 0xe7, 0x2a, 0xbe, 0x86, 0x1f, 0x61, 0x06, 0xbe, 0x0e, 0x3f, 0x88, 0x9c, 0xb2, 0xa1, 0x0d, 0x0a, 0xd2, 0xd8, 0x35, 0x7c, 0xdf, 0xbe, 0x41, 0x24, 0xab, 0x6c, 0x6d, 0x50, 0x42, 0xc7, 0xae, 0x41, 0xe8, 0x97, 0x6c, 0x10, 0x52, 0x26, 0x07, 0x11, 0x84, 0xbd, 0x74, 0x10, 0xa6, 0x63, 0x6b, 0x70, 0x74, 0x1d, 0x5c, 0x83, 0xa3, 0xeb, 0xe0, 0x86, 0x07, 0x6f, 0x36, 0x3c, 0x26, 0xb3, 0x41, 0xc0, 0xb2, 0x6e, 0x50, 0x54, 0x8a, 0x6f, 0x70, 0x6a, 0x6e, 0xdb, 0xe0, 0xb0, 0xc0, 0xb6, 0xc1, 0x71, 0x79, 0x66, 0x83, 0xf3, 0x02, 0xcd, 0x06, 0x87, 0x95, 0xb9, 0x0d, 0x52, 0x4e, 0xab, 0x36, 0x48, 0x79, 0xad, 0xda, 0x20, 0x9d, 0xd9, 0x6e, 0x83, 0x25, 0x1c, 0x6e, 0x1b, 0x9c, 0x56, 0xe1, 0x36, 0x48, 0x1b, 0x5c, 0x3d, 0x48, 0x74, 0xad, 0x5d, 0x83, 0xa3, 0xeb, 0xe0, 0x06, 0x69, 0x83, 0xab, 0x1b, 0xa4, 0xbc, 0x56, 0x6d, 0x70, 0x6a, 0x6e, 0xdb, 0xe0, 0xb0, 0x32, 0xb7, 0x41, 0xca, 0x69, 0xd5, 0x06, 0xa7, 0xfb, 0xb7, 0x0d, 0x4e, 0xab, 0x70, 0x1b, 0x1c, 0x97, 0x67, 0x36, 0x3c, 0x26, 0xb3, 0xc1, 0x12, 0x0e, 0xb7, 0x0d, 0x0f, 0xde, 0x6c, 0x10, 0xb0, 0xac, 0x1b, 0xa4, 0x33, 0xdb, 0x6d, 0x70, 0x5e, 0xa0, 0xd9, 0xe0, 0xb0, 0xc0, 0x76, 0x50, 0x50, 0x8a, 0xaf, 0xc1, 0xd1, 0x75, 0x70, 0x83, 0x74, 0x66, 0xbb, 0x0d, 0x0e, 0x2b, 0x73, 0x1b, 0x2c, 0xe1, 0x70, 0xdb, 0xf0, 0xe0, 0xcd, 0x06, 0x87, 0x05, 0xb6, 0x0d, 0x02, 0x96, 0x75, 0x83, 0xd3, 0xfd, 0xdb, 0x06, 0xa7, 0x55, 0xb8, 0x0d, 0x52, 0x5e, 0xab, 0x36, 0x48, 0x1b, 0x5c, 0xdd, 0xa0, 0xa8, 0x14, 0xdf, 0xe0, 0xb8, 0x3c, 0xb3, 0xc1, 0x79, 0x81, 0x66, 0xc3, 0x63, 0x32, 0x1b, 0xa4, 0x9c, 0x56, 0x1d, 0x9c, 0x99, 0xdb, 0xd6, 0xe0, 0xe8, 0x3a, 0xb8, 0xc1, 0x79, 0x81, 0x66, 0x83, 0x94, 0xd3, 0xaa, 0x0d, 0x8a, 0x4a, 0xf1, 0x0d, 0x8f, 0xc9, 0x6c, 0x70, 0x5a, 0x85, 0xdb, 0x60, 0x09, 0x87, 0xdb, 0x06, 0xe9, 0xcc, 0x76, 0x1b, 0xa4, 0x0d, 0xae, 0x6e, 0x10, 0xb0, 0xac, 0x1b, 0x1c, 0x97, 0x67, 0x36, 0x38, 0x2c, 0xb0, 0x6d, 0x90, 0xf2, 0x5a, 0xb5, 0xc1, 0xa9, 0xb9, 0x6d, 0xc3, 0x83, 0x37, 0x1b, 0x9c, 0xee, 0xdf, 0x0e, 0x8e, 0x2a, 0x73, 0x6b, 0x70, 0x74, 0x1d, 0xdc, 0x20, 0xe5, 0xb4, 0x6a, 0xc3, 0x83, 0x37, 0x1b, 0x1c, 0x16, 0xd8, 0x36, 0x38, 0x2f, 0xd0, 0x6c, 0x10, 0xb0, 0xac, 0x1b, 0x9c, 0x9a, 0xdb, 0x36, 0x48, 0x79, 0xad, 0xda, 0xe0, 0x74, 0xff, 0xb6, 0x41, 0xda, 0xe0, 0xea, 0x86, 0xc7, 0x64, 0x36, 0x48, 0x67, 0xb6, 0xdb, 0x60, 0x09, 0x87, 0xdb, 0x06, 0xc7, 0xe5, 0x99, 0x0d, 0x0e, 0x2b, 0x73, 0x1b, 0x14, 0x95, 0xe2, 0x07, 0xa7, 0xc5, 0xba, 0x35, 0x38, 0xba, 0x0e, 0x6e, 0x10, 0xb0, 0xac, 0x1b, 0x2c, 0xe1, 0x70, 0xdb, 0xe0, 0xb8, 0x3c, 0xb3, 0x41, 0xca, 0x6b, 0xd5, 0x86, 0x07, 0x6f, 0x36, 0x48, 0x67, 0xb6, 0xdb, 0xe0, 0xb0, 0x32, 0xb7, 0x41, 0x51, 0x29, 0xbe, 0xc1, 0xa9, 0xb9, 0x6d, 0x83, 0xd3, 0x2a, 0xdc, 0x06, 0xe7, 0x05, 0x9a, 0x0d, 0x0e, 0x0b, 0x6c, 0x1b, 0x9c, 0xee, 0xdf, 0x36, 0x48, 0x1b, 0x5c, 0xdd, 0xf0, 0x98, 0xcc, 0x41, 0xba, 0x69, 0xd5, 0x1a, 0x1c, 0x5d, 0x07, 0x37, 0x58, 0xc2, 0xe1, 0xb6, 0xc1, 0x61, 0x81, 0x6d, 0xc3, 0x63, 0x32, 0x1b, 0x9c, 0xee, 0xdf, 0x36, 0x48, 0x1b, 0x5c, 0xdd, 0xe0, 0xb4, 0x0a, 0xb7, 0xc1, 0xa9, 0xb9, 0x6d, 0x83, 0x94, 0xd7, 0xaa, 0x0d, 0x0f, 0xde, 0x6c, 0x70, 0x5e, 0xa0, 0xd9, 0xe0, 0xb8, 0x3c, 0xb3, 0x41, 0x51, 0x29, 0xbe, 0x41, 0xca, 0x69, 0xd5, 0x06, 0x01, 0xcb, 0xba, 0xc1, 0x61, 0x65, 0xee, 0x20, 0x56, 0x74, 0xae, 0xd6, 0xe0, 0xe8, 0x3a, 0xb8, 0xc1, 0x69, 0x15, 0x6e, 0x83, 0x74, 0x66, 0xbb, 0x0d, 0xce, 0x0b, 0x34, 0x1b, 0xa4, 0x0d, 0xae, 0x6e, 0xb0, 0x84, 0xc3, 0x6d, 0xc3, 0x63, 0x32, 0x1b, 0x14, 0x95, 0xe2, 0x1b, 0xa4, 0x9c, 0x56, 0x6d, 0x70, 0x58, 0x60, 0xdb, 0xf0, 0xe0, 0xcd, 0x06, 0xa7, 0xfb, 0xb7, 0x0d, 0x4e, 0xcd, 0x6d, 0x1b, 0x1c, 0x56, 0xe6, 0x36, 0x38, 0x2e, 0xcf, 0x6c, 0x10, 0xb0, 0xac, 0x07, 0xe9, 0xae, 0x55, 0x6b, 0x70, 0x74, 0x1d, 0xdc, 0xe0, 0xb8, 0x3c, 0xb3, 0xc1, 0xe9, 0xfe, 0x6d, 0x83, 0xb4, 0xc1, 0xd5, 0x0d, 0x52, 0x4e, 0xab, 0x36, 0x48, 0x67, 0xb6, 0xdb, 0xa0, 0xa8, 0x14, 0xdf, 0xf0, 0xe0, 0xcd, 0x06, 0x87, 0x95, 0xb9, 0x0d, 0x96, 0x70, 0xb8, 0x6d, 0x10, 0xb0, 0xac, 0x1b, 0x9c, 0x56, 0xe1, 0x36, 0x38, 0x2f, 0xd0, 0x6c, 0x78, 0x4c, 0x66, 0x83, 0x53, 0x73, 0xdb, 0x06, 0x29, 0xaf, 0x55, 0x07, 0x47, 0x05, 0xb6, 0x35, 0x38, 0xba, 0x0e, 0x6e, 0x90, 0xf2, 0x5a, 0xb5, 0x41, 0xc0, 0xb2, 0x6e, 0x70, 0x58, 0x99, 0xdb, 0xe0, 0xd4, 0xdc, 0xb6, 0xc1, 0x79, 0x81, 0x66, 0x83, 0xe3, 0xf2, 0xcc, 0x86, 0xc7, 0x64, 0x36, 0x38, 0x2c, 0xb0, 0x6d, 0x70, 0xba, 0x7f, 0xdb, 0x20, 0x9d, 0xd9, 0x6e, 0x83, 0x94, 0xd3, 0xaa, 0x0d, 0xd2, 0x06, 0x57, 0x37, 0x28, 0x2a, 0xc5, 0x37, 0x58, 0xc2, 0xe1, 0xb6, 0xc1, 0x69, 0x15, 0xee, 0xa0, 0x70, 0x92, 0xdd, 0x20, 0x3a, 0x3f, 0xbb, 0x36, 0x88, 0xf6, 0xd1, 0xae, 0x36, 0x28, 0x25, 0xc4, 0xd7, 0xa0, 0x64, 0x61, 0x9f, 0x65, 0xd6, 0x20, 0x0e, 0x0c, 0x86, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0x36, 0x38, 0x70, 0xd2, 0x6d, 0x50, 0x00, 0xc6, 0xae, 0xe1, 0xcf, 0xa5, 0xc1, 0xe9, 0x83, 0x32, 0x4b, 0x77, 0x0d, 0x7f, 0x2e, 0x0d, 0xce, 0x1e, 0x3e, 0x58, 0x6d, 0xc3, 0x5f, 0x34, 0x1b, 0x7e, 0xa8, 0xd9, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xdc, 0xde, 0xf0, 0x6e, 0xcf, 0x86, 0x3f, 0x81, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xa5, 0x01, 0xef, 0x1a, 0x7e, 0x71, 0xd9, 0xe0, 0xb8, 0x3c, 0x73, 0x70, 0x54, 0x99, 0x3b, 0x38, 0xc0, 0xd3, 0x1d, 0xc4, 0xcd, 0x46, 0xd7, 0x06, 0x45, 0x9f, 0xee, 0x06, 0x87, 0xd6, 0x96, 0x35, 0x38, 0xb1, 0xdf, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0xfe, 0xb6, 0x37, 0xb2, 0x96, 0xbb, 0x37, 0x39, 0xb2, 0x0d, 0x16, 0x95, 0x27, 0x6d, 0x90, 0x2a, 0x14, 0xb5, 0xc1, 0x12, 0x0e, 0xb7, 0x0d, 0x0e, 0xaf, 0x72, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0xcd, 0x29, 0x76, 0x83, 0x43, 0x0c, 0xc4, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xc8, 0xc4, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0x1e, 0xbc, 0x39, 0x48, 0xd7, 0x8e, 0x3d, 0x38, 0x39, 0xf5, 0xb5, 0x41, 0xd1, 0xa7, 0xbb, 0xc1, 0xa1, 0xb5, 0x65, 0x0d, 0x4e, 0xec, 0x37, 0x1b, 0xc4, 0x92, 0x74, 0xd7, 0x06, 0x8b, 0xca, 0x93, 0x36, 0x48, 0x15, 0x8a, 0xda, 0xe0, 0xb4, 0x0a, 0xb7, 0xc1, 0xe1, 0x55, 0x6e, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0x39, 0xc5, 0x6e, 0x70, 0x88, 0x81, 0x58, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0xf8, 0xb8, 0x07, 0x91, 0x56, 0xdd, 0xd5, 0x06, 0xc7, 0xb1, 0x89, 0x0d, 0x0e, 0xad, 0x2d, 0x1b, 0xa4, 0xbc, 0x5d, 0xad, 0xc1, 0x89, 0xfd, 0x66, 0x83, 0x58, 0x92, 0xee, 0xda, 0x60, 0x51, 0x79, 0xd2, 0x06, 0xa9, 0x42, 0x51, 0x1b, 0xa4, 0x0d, 0xae, 0x6e, 0x70, 0x78, 0x95, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0x69, 0x4e, 0xb1, 0x1b, 0x1c, 0x62, 0x20, 0x0e, 0x92, 0xc3, 0x1c, 0x37, 0x7c, 0x62, 0xb3, 0x41, 0x12, 0x90, 0xea, 0x06, 0xa5, 0xbd, 0xe5, 0x06, 0x71, 0xf2, 0x27, 0xb5, 0xc1, 0x01, 0x8b, 0x6e, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x0d, 0xca, 0xe8, 0xf3, 0x83, 0x25, 0x1c, 0x6e, 0x6b, 0x50, 0xf4, 0xe9, 0x6e, 0x70, 0xac, 0xa5, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x1c, 0x62, 0x20, 0x36, 0x38, 0x28, 0xd3, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0x7c, 0xdc, 0x0d, 0x62, 0x08, 0xba, 0xeb, 0x20, 0x4d, 0x28, 0xaa, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0x88, 0x81, 0xd8, 0xe0, 0xa0, 0x4c, 0xb7, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x32, 0x71, 0x0f, 0x22, 0x2c, 0xbc, 0xab, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0xce, 0xed, 0x7c, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xa2, 0x72, 0x7e, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x76, 0xb7, 0x1b, 0x94, 0xd1, 0xe7, 0x07, 0xe9, 0xae, 0x55, 0x07, 0xb1, 0xa8, 0xb2, 0xb5, 0x41, 0xd1, 0xa7, 0xbb, 0xc1, 0xa1, 0xb5, 0x65, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0x3e, 0xb2, 0xb7, 0x96, 0xb6, 0x34, 0xbc, 0x0d, 0x0f, 0xde, 0x6c, 0x70, 0x6a, 0x6e, 0xdb, 0xe0, 0xb0, 0x32, 0xb7, 0xc1, 0x12, 0x0e, 0xb7, 0x83, 0xd2, 0x76, 0x7c, 0x83, 0xa2, 0x4f, 0x77, 0x83, 0x43, 0x6b, 0xcb, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0xd6, 0xcc, 0xbb, 0x36, 0x3c, 0x26, 0xb3, 0xc1, 0x61, 0x81, 0x6d, 0x83, 0x94, 0xd3, 0xaa, 0x0d, 0x4e, 0xab, 0x70, 0x07, 0x51, 0x3b, 0x35, 0xb5, 0x41, 0xd1, 0xa7, 0xbb, 0xc1, 0xa1, 0xb5, 0x65, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x6b, 0xe6, 0x5d, 0x1b, 0x04, 0x2c, 0xeb, 0x06, 0xc7, 0xe5, 0x99, 0x0d, 0x52, 0x5e, 0xab, 0x36, 0x48, 0x1b, 0x5c, 0xdd, 0xe0, 0xd4, 0xdc, 0x76, 0x70, 0x54, 0x60, 0xdb, 0xa0, 0xe8, 0xd3, 0xdd, 0xe0, 0xd0, 0xda, 0xb2, 0x86, 0x77, 0x7b, 0x36, 0x88, 0x35, 0xf3, 0xae, 0x0d, 0x8a, 0x4a, 0xf1, 0x0d, 0xce, 0x0b, 0x34, 0x1b, 0xa4, 0x33, 0xdb, 0x6d, 0x70, 0xba, 0x7f, 0xdb, 0xe0, 0xb8, 0x3c, 0x73, 0x70, 0x5a, 0xa0, 0xd9, 0xa0, 0xe8, 0xd3, 0xdd, 0xe0, 0xd0, 0xda, 0xb2, 0x86, 0x77, 0x7b, 0x36, 0x88, 0x35, 0xf3, 0xae, 0x0d, 0x0f, 0xde, 0x6c, 0x70, 0x58, 0x60, 0xdb, 0x20, 0xe5, 0xb5, 0x6a, 0x83, 0xd3, 0xfd, 0xdb, 0x06, 0x87, 0x95, 0xb9, 0x83, 0x74, 0xd3, 0xaa, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0x0e, 0xad, 0x2d, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x58, 0x33, 0xef, 0xda, 0xf0, 0x98, 0xcc, 0x06, 0xc7, 0xe5, 0x99, 0x0d, 0xd2, 0x99, 0xed, 0x36, 0x58, 0xc2, 0xe1, 0xb6, 0x41, 0xca, 0x6b, 0xd5, 0x41, 0xac, 0xe8, 0x5c, 0x6d, 0x50, 0xf4, 0xe9, 0x6e, 0x70, 0x68, 0x6d, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0xc4, 0x9a, 0x79, 0xd7, 0x06, 0x01, 0xcb, 0xba, 0xc1, 0x79, 0x81, 0x66, 0x83, 0xc3, 0xca, 0xdc, 0x06, 0xa7, 0x55, 0xb8, 0x0d, 0x96, 0x70, 0xb8, 0x1d, 0x9c, 0x16, 0xeb, 0x36, 0x28, 0xfa, 0x74, 0x37, 0x38, 0xb4, 0xb6, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x62, 0xcd, 0xbc, 0x6b, 0x83, 0xa2, 0x52, 0x7c, 0x83, 0x53, 0x73, 0xdb, 0x06, 0x29, 0xa7, 0x55, 0x1b, 0xa4, 0x0d, 0xae, 0x1e, 0x44, 0xd9, 0x68, 0xd7, 0xc1, 0x71, 0x9e, 0x62, 0x99, 0x35, 0x88, 0x52, 0xf3, 0xae, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0xa2, 0x89, 0x58, 0x6a, 0x83, 0x68, 0x27, 0x96, 0xda, 0x20, 0x1a, 0x8b, 0xa5, 0x36, 0x88, 0x16, 0x63, 0xa9, 0x35, 0xfc, 0xb9, 0x34, 0xf0, 0x6e, 0xf8, 0xe1, 0x87, 0x9a, 0x35, 0xfc, 0xb9, 0x34, 0xf0, 0x6e, 0xf9, 0xe1, 0x87, 0x9a, 0x36, 0xfc, 0x45, 0xb3, 0xe1, 0x87, 0x9a, 0x0d, 0x8e, 0x36, 0x7c, 0x6b, 0x50, 0xf4, 0xe9, 0x6e, 0x70, 0x68, 0x6d, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0xc4, 0xce, 0x70, 0xd4, 0x06, 0xa9, 0x42, 0x51, 0x1b, 0xc4, 0xf7, 0xb3, 0xd4, 0xc1, 0xb2, 0xab, 0xd2, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0x0e, 0xad, 0x2d, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xd8, 0x19, 0x8e, 0xda, 0x20, 0x55, 0x28, 0x6a, 0x83, 0x58, 0x8c, 0x96, 0xda, 0xe0, 0xf0, 0x2a, 0x77, 0x78, 0x0b, 0x6d, 0x83, 0xa2, 0x4f, 0x77, 0x83, 0x43, 0x6b, 0xcb, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x76, 0x86, 0xa3, 0x36, 0x48, 0x15, 0x8a, 0xda, 0x20, 0x6e, 0xa6, 0xa5, 0x36, 0x38, 0xbc, 0xca, 0x1d, 0x7e, 0x11, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0xb1, 0x33, 0x1c, 0xb5, 0x41, 0xaa, 0x50, 0xd4, 0x06, 0xd1, 0x45, 0x2d, 0x75, 0xb0, 0xbe, 0xf5, 0x6e, 0x83, 0x13, 0xfb, 0xcd, 0x1a, 0xde, 0xd6, 0x19, 0xe0, 0x11, 0x93, 0x69, 0x4b, 0xc3, 0xdb, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x6e, 0xac, 0xa5, 0x36, 0x48, 0x15, 0x8a, 0xda, 0x20, 0xbe, 0x9f, 0xa5, 0x0e, 0x8e, 0xae, 0x72, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xb8, 0xb1, 0x96, 0xda, 0x20, 0x55, 0x28, 0x6a, 0x83, 0x58, 0x8c, 0x96, 0x3a, 0x38, 0xba, 0xca, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0xe2, 0xc6, 0x5a, 0x6a, 0x83, 0x54, 0xa1, 0xa8, 0x0d, 0xe2, 0x66, 0x5a, 0xea, 0xe0, 0xe8, 0x2a, 0xb7, 0x86, 0x77, 0x7b, 0x36, 0x88, 0x1b, 0x6b, 0xa9, 0x0d, 0x52, 0x85, 0xa2, 0x36, 0x88, 0x2e, 0x6a, 0xa9, 0x83, 0xa3, 0xab, 0xdc, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x6e, 0xac, 0xa5, 0x36, 0x3c, 0xbd, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x2a, 0xe7, 0x37, 0x88, 0x6e, 0x77, 0xac, 0x83, 0x93, 0x3c, 0xdf, 0xc1, 0xd1, 0x55, 0x6e, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x37, 0xd6, 0x52, 0x1b, 0x9e, 0xde, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0x95, 0xf3, 0x1b, 0x44, 0xb5, 0x3c, 0xd6, 0xc1, 0x49, 0x9e, 0xef, 0xe0, 0xe8, 0x2a, 0xd7, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0xab, 0x41, 0x9c, 0x11, 0x46, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0x6d, 0x70, 0xe0, 0xa4, 0xdb, 0xa0, 0x5c, 0x38, 0x5f, 0xc3, 0x9f, 0x4b, 0x83, 0xdf, 0x07, 0x65, 0x96, 0xee, 0x41, 0xe1, 0x0f, 0xbc, 0xe1, 0x2f, 0x9a, 0x0d, 0x3f, 0xd4, 0x6c, 0x50, 0x74, 0x1a, 0x6f, 0x50, 0x6c, 0x2b, 0x6f, 0x70, 0x5c, 0x9e, 0xd9, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0x9c, 0xdd, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0x19, 0xc0, 0xf3, 0xac, 0x8c, 0xae, 0xe5, 0xee, 0x4d, 0x8e, 0xac, 0x85, 0x2d, 0x6d, 0x8e, 0x6e, 0x83, 0x83, 0x32, 0xdd, 0xc1, 0xf1, 0xc7, 0x65, 0x83, 0x13, 0xfb, 0xcd, 0x06, 0x85, 0xc5, 0xf2, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x27, 0x82, 0xb6, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xc1, 0x42, 0xf0, 0x60, 0x01, 0xb1, 0xfb, 0x86, 0x5f, 0x5c, 0x36, 0x28, 0xd7, 0x65, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xa7, 0xb7, 0xb8, 0x0d, 0x0a, 0xe2, 0xf3, 0x83, 0x84, 0x10, 0xdb, 0x56, 0x83, 0xe8, 0xa2, 0xf0, 0xda, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0xda, 0xe0, 0xc0, 0x49, 0xb7, 0x41, 0x74, 0x45, 0x78, 0xb5, 0xe1, 0x2f, 0x9a, 0x0d, 0xca, 0x39, 0xdb, 0x0d, 0x4e, 0xec, 0x37, 0x1b, 0x14, 0x16, 0xcb, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0xb3, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x20, 0x5a, 0xde, 0xe0, 0xb8, 0x3c, 0x73, 0x70, 0x80, 0xa7, 0xdb, 0xe0, 0x68, 0xc3, 0xb7, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x11, 0xb4, 0x6d, 0x78, 0x66, 0xf2, 0x20, 0x21, 0xc4, 0x76, 0xc3, 0xbb, 0x3d, 0x1b, 0x9c, 0x64, 0xda, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x4f, 0x01, 0x37, 0x38, 0xe4, 0xb7, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0x7a, 0x4e, 0x1e, 0x24, 0x84, 0xd8, 0x76, 0x50, 0x38, 0xc9, 0xce, 0x1a, 0x1c, 0x55, 0xd9, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0x36, 0x48, 0x6e, 0x84, 0xdd, 0xa0, 0xb8, 0x2b, 0x6e, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0x06, 0xbc, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xa2, 0x52, 0x7c, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x14, 0x70, 0x83, 0xc2, 0xcb, 0xf8, 0x20, 0x69, 0x48, 0xb6, 0x83, 0xb2, 0xcf, 0xf8, 0x70, 0x8a, 0xad, 0x41, 0x34, 0x17, 0x78, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0x6d, 0xf8, 0x72, 0x69, 0xc3, 0xf3, 0x4c, 0x1b, 0x14, 0x80, 0xb1, 0x1b, 0x14, 0xff, 0xc0, 0x07, 0x71, 0x9e, 0x1f, 0xb5, 0xe1, 0x2f, 0x9a, 0x0d, 0x22, 0x5e, 0x55, 0x6a, 0x83, 0xa2, 0x4f, 0x77, 0x83, 0x14, 0x4c, 0xa7, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x52, 0x29, 0xec, 0x06, 0x45, 0xa5, 0xf8, 0x06, 0x87, 0x95, 0xb9, 0x83, 0x44, 0x4a, 0xa7, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0x12, 0xb3, 0x9d, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x49, 0xa5, 0xb0, 0x1b, 0x14, 0x95, 0xe2, 0x1b, 0x1c, 0x56, 0xe6, 0x0e, 0xd2, 0xab, 0x9d, 0x36, 0x7c, 0x62, 0xb3, 0x41, 0x2c, 0xb2, 0x4a, 0x6d, 0x50, 0xf4, 0xe9, 0x6e, 0x78, 0x70, 0x67, 0x0d, 0x92, 0x0c, 0x08, 0x37, 0x88, 0x29, 0x57, 0xa9, 0x0d, 0x4f, 0xeb, 0x6c, 0x78, 0x2f, 0xe8, 0x20, 0x91, 0xd2, 0x69, 0x83, 0xa2, 0x4f, 0x77, 0x83, 0x22, 0x5f, 0x76, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x9b, 0xaf, 0x52, 0x07, 0x71, 0x68, 0x2b, 0xb5, 0x41, 0xd1, 0xa7, 0xbb, 0xe1, 0x1f, 0x9e, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x4c, 0xb9, 0x4a, 0x1d, 0x14, 0x80, 0xfc, 0x1b, 0x14, 0x7d, 0xba, 0x1b, 0x3e, 0x0f, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0xc4, 0xe6, 0xab, 0xd4, 0x41, 0x4c, 0xf1, 0x4a, 0x6d, 0x50, 0xf4, 0xe9, 0x6e, 0x78, 0x70, 0x67, 0x0d, 0x92, 0x0c, 0x08, 0x37, 0x88, 0x29, 0x57, 0xa9, 0x0d, 0x4f, 0xeb, 0x1c, 0xa4, 0x35, 0x84, 0x6d, 0x50, 0xf4, 0xe9, 0x6e, 0x50, 0xe4, 0xcb, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x62, 0xf3, 0x55, 0xea, 0x20, 0xbe, 0x7d, 0xa5, 0x36, 0x28, 0xfa, 0x74, 0x37, 0xfc, 0xc3, 0xb3, 0x41, 0x14, 0xb7, 0x78, 0x6d, 0x50, 0xf4, 0xe9, 0x6e, 0xf8, 0x3c, 0x68, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x9b, 0xaf, 0x52, 0x07, 0x51, 0x15, 0x2c, 0x75, 0x10, 0x19, 0xc2, 0x52, 0xab, 0x41, 0xb4, 0x31, 0x4b, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0x6d, 0x70, 0xe0, 0xa4, 0xdb, 0xa0, 0x5c, 0x38, 0x3f, 0x88, 0x05, 0x0d, 0xaf, 0x0d, 0x7f, 0xd1, 0x6c, 0xf8, 0xa1, 0x66, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0xa2, 0x72, 0x7e, 0x83, 0x32, 0xfa, 0xfc, 0x20, 0xd2, 0x27, 0xbc, 0x0e, 0xa7, 0xd8, 0x1a, 0x44, 0xa1, 0x74, 0xd7, 0x06, 0x85, 0x72, 0xe7, 0x1a, 0x3e, 0x57, 0xda, 0xe0, 0xc0, 0x49, 0xb7, 0x41, 0xb9, 0x70, 0xbe, 0x41, 0x74, 0x45, 0x78, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xcf, 0x83, 0xb2, 0xaf, 0xbc, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x3b, 0xc3, 0x51, 0x1b, 0x1c, 0x94, 0xe9, 0x36, 0x28, 0xa3, 0xcf, 0x37, 0x38, 0xe4, 0xb7, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0xca, 0x9f, 0xda, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xdc, 0x58, 0x4b, 0x6d, 0x70, 0x50, 0xa6, 0xdb, 0xa0, 0x8c, 0x3e, 0x3f, 0x38, 0xfe, 0xb8, 0xd4, 0xe1, 0x14, 0xeb, 0x70, 0x8a, 0x6d, 0x50, 0xf4, 0xe9, 0x6e, 0x50, 0x62, 0x6d, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0x8a, 0x2c, 0xd3, 0x0d, 0x8f, 0xc9, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0xd2, 0x25, 0xc6, 0x0e, 0x62, 0xa1, 0x2b, 0xaa, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0xe2, 0x28, 0x4b, 0x6a, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x2e, 0x31, 0xb6, 0x41, 0x44, 0x64, 0x49, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x0a, 0xed, 0xde, 0x83, 0x64, 0xc0, 0xd4, 0x36, 0x28, 0xfa, 0x74, 0x37, 0x88, 0x2b, 0x2d, 0xa9, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xba, 0xc4, 0xd8, 0x06, 0x11, 0xa2, 0x25, 0x75, 0x90, 0xae, 0x1d, 0xbb, 0x41, 0xd1, 0xa7, 0xbb, 0x41, 0x1c, 0xde, 0x55, 0x6d, 0x10, 0x13, 0x78, 0x55, 0x1b, 0x14, 0x7d, 0xba, 0x1b, 0xc4, 0x3e, 0x5d, 0xd5, 0x06, 0xd1, 0x57, 0x57, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0x38, 0x7a, 0x10, 0xdb, 0x4b, 0x54, 0x1b, 0x14, 0x7d, 0xba, 0x1b, 0x1c, 0x6b, 0xe9, 0xd6, 0xe0, 0xc4, 0x7e, 0xb3, 0x41, 0x2c, 0x49, 0x77, 0x6d, 0xb0, 0xa8, 0x3c, 0x69, 0x83, 0x83, 0x32, 0xdd, 0x86, 0x07, 0x6f, 0x36, 0x38, 0xac, 0xcc, 0x6d, 0x50, 0x74, 0x1a, 0x6f, 0x90, 0xe6, 0x14, 0xbb, 0xc1, 0x21, 0x06, 0x62, 0x83, 0xa2, 0xd3, 0x78, 0xc3, 0x9f, 0x40, 0x6b, 0xf8, 0x11, 0x66, 0xe0, 0xeb, 0xf0, 0x83, 0x08, 0xd1, 0x1f, 0xda, 0xf0, 0x6e, 0xcf, 0x86, 0x3f, 0x81, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xa5, 0x01, 0xef, 0x41, 0xb4, 0xd8, 0x55, 0x1d, 0x14, 0x4a, 0xdb, 0x1b, 0xac, 0x74, 0x71, 0xda, 0x60, 0x25, 0x3d, 0xe8, 0x06, 0x71, 0x95, 0x57, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0xb2, 0xc1, 0x3a, 0xa8, 0xd9, 0xc3, 0x83, 0x37, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x1b, 0x24, 0x62, 0x1d, 0x1f, 0x44, 0x44, 0x96, 0xd4, 0x06, 0xc7, 0xb1, 0x89, 0x0d, 0x56, 0xd2, 0x83, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0xdf, 0x28, 0x6e, 0x10, 0x21, 0x5a, 0x52, 0x07, 0x85, 0x93, 0xec, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x2c, 0x8e, 0xde, 0xa0, 0xa8, 0x14, 0x5f, 0x83, 0xa3, 0xeb, 0xe0, 0x6a, 0x78, 0x5b, 0x67, 0x83, 0x44, 0xac, 0xe3, 0x0e, 0x96, 0xcb, 0x83, 0xae, 0x41, 0x42, 0x60, 0xea, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x08, 0xb5, 0x6d, 0x70, 0x68, 0xed, 0x3a, 0x48, 0x06, 0x4c, 0xad, 0x0d, 0x8e, 0x63, 0x13, 0x1b, 0x44, 0x2f, 0x94, 0xd7, 0x06, 0xb1, 0xe8, 0xe4, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0xfc, 0x09, 0xb4, 0x41, 0x1c, 0x42, 0x79, 0x1d, 0x24, 0x03, 0xa6, 0x6e, 0xf8, 0x0a, 0x67, 0xc3, 0x07, 0x39, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x37, 0x8a, 0x07, 0xb1, 0x3d, 0xe5, 0xb5, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xe3, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x89, 0x66, 0x37, 0x28, 0x2a, 0xc5, 0xd7, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0x29, 0xe0, 0x41, 0x6c, 0x4f, 0x79, 0x1d, 0x24, 0x03, 0xa6, 0x1e, 0x2c, 0x96, 0x07, 0xdd, 0xa0, 0xe8, 0xd3, 0xdd, 0xa0, 0x55, 0xe4, 0xcb, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x4f, 0xa0, 0x0d, 0x9a, 0x3e, 0xbe, 0x3c, 0x48, 0x06, 0x4c, 0xdd, 0x60, 0x15, 0x92, 0xd2, 0x86, 0x53, 0x6c, 0x0d, 0xa2, 0x17, 0xca, 0xeb, 0x20, 0x26, 0xae, 0xbc, 0xd6, 0xe0, 0x58, 0x4b, 0xb7, 0xe1, 0xdd, 0x9e, 0x0d, 0x62, 0x49, 0x34, 0x6a, 0x83, 0x83, 0x32, 0xdd, 0x86, 0xa7, 0x77, 0x36, 0x68, 0xfa, 0xf8, 0xf2, 0x20, 0xd5, 0x16, 0xae, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xc7, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x12, 0xcd, 0x6e, 0x50, 0x54, 0x8a, 0xaf, 0xe1, 0x17, 0x97, 0x0d, 0x0f, 0xde, 0x6c, 0x10, 0x87, 0x50, 0x5e, 0x1d, 0x2c, 0x96, 0x07, 0xdd, 0xa0, 0xe8, 0xd3, 0xdd, 0xa0, 0x55, 0xe4, 0xcb, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x4f, 0xa0, 0x0d, 0x9a, 0x3e, 0xbe, 0x3c, 0x88, 0x2b, 0x2f, 0xaf, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0xff, 0xf0, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x0e, 0x42, 0x6d, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x38, 0x84, 0xf2, 0x3a, 0xfc, 0x22, 0x74, 0x90, 0x0c, 0x98, 0xba, 0x41, 0xd1, 0xa7, 0xbb, 0xc1, 0xb1, 0x96, 0x6e, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x4b, 0xa2, 0x51, 0x1b, 0x1c, 0x94, 0xe9, 0x36, 0x3c, 0xbd, 0xb3, 0x41, 0xd3, 0xc7, 0x97, 0x07, 0xe9, 0x29, 0x50, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x94, 0xf8, 0xb8, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xa2, 0x52, 0x7c, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x14, 0x70, 0x83, 0x14, 0xe8, 0xd4, 0x83, 0x42, 0x69, 0xbb, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x8a, 0x6d, 0xe5, 0x0d, 0x8e, 0xcb, 0x33, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x94, 0x48, 0xd5, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xc2, 0x62, 0x79, 0x83, 0xd8, 0xf0, 0x94, 0x6a, 0xc3, 0x2f, 0x4a, 0x1b, 0xbe, 0x5c, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x49, 0xa5, 0xb0, 0x1b, 0x14, 0x95, 0xe2, 0x1b, 0x1c, 0x56, 0xe6, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x71, 0x63, 0x2d, 0xb5, 0xc1, 0x41, 0x99, 0x6e, 0xc3, 0xd3, 0x3a, 0x07, 0x47, 0x95, 0xb9, 0x0e, 0xa7, 0x58, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x75, 0x38, 0xc5, 0x56, 0x80, 0x0f, 0x2d, 0x4c, 0x8e, 0xac, 0xcc, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x88, 0xe0, 0x35, 0xaf, 0x06, 0xc0, 0x87, 0xb1, 0xb7, 0x32, 0xb9, 0xb1, 0x32, 0x90, 0x92, 0xb9, 0x37, 0x33, 0x3a, 0x10, 0x12, 0xb4, 0x37, 0xb1, 0x37, 0x90, 0x37, 0x39, 0x10, 0xb8, 0xb0, 0xb9, 0xb9, 0x16, 0x3a, 0x34, 0xb9, 0xb7, 0xba, 0x33, 0xb4, 0x0d, 0x0a, 0xe5, 0xce, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0x9b, 0x22, 0x47, 0x0e, 0x8e, 0xad, 0x03, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0x9f, 0x4b, 0x03, 0xbc, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0xe4, 0x06, 0xa1, 0x5f, 0xb2, 0x86, 0xb7, 0x75, 0x36, 0x78, 0x27, 0x96, 0x48, 0x1b, 0x3c, 0x97, 0x52, 0xb6, 0x0d, 0x7f, 0xd1, 0x6c, 0xf0, 0x5c, 0x4a, 0xd9, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0x28, 0x26, 0x31, 0x37, 0x78, 0x6d, 0x99, 0xc8, 0xc6, 0xa1, 0x0d, 0xe2, 0x1e, 0xce, 0xab, 0x35, 0xbc, 0xad, 0x73, 0x10, 0x01, 0x74, 0x5e, 0x1b, 0xac, 0x91, 0x6a, 0xda, 0xe0, 0xb9, 0x94, 0xb2, 0x1b, 0x2e, 0xa9, 0x35, 0x9e, 0x1f, 0x44, 0x00, 0x9d, 0x57, 0x87, 0x53, 0x6c, 0x01, 0x8f, 0x6d, 0x6e, 0xde, 0x60, 0x15, 0x96, 0xd3, 0x1a, 0x1e, 0x94, 0xdc, 0x20, 0xea, 0xaf, 0xa2, 0x0e, 0x62, 0xc1, 0xf2, 0x6a, 0x83, 0x92, 0x85, 0x7d, 0x96, 0x59, 0x83, 0x47, 0x23, 0x89, 0x6c, 0xf8, 0x45, 0x69, 0x83, 0xd8, 0x00, 0xd9, 0xda, 0xf0, 0x17, 0xcd, 0x06, 0xc7, 0x96, 0xd2, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x83, 0x98, 0xb1, 0xe8, 0xda, 0x20, 0xf5, 0x34, 0xf6, 0x20, 0x62, 0xc2, 0xa4, 0x56, 0x83, 0x77, 0xaf, 0xcd, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xbc, 0x7b, 0x6d, 0xbe, 0x01, 0xf0, 0x70, 0x8e, 0x2e, 0x8c, 0xae, 0xcc, 0xac, 0x8e, 0x0d, 0x64, 0xec, 0x4d, 0xae, 0x0c, 0xc4, 0xec, 0x4d, 0x0e, 0x64, 0xae, 0x2c, 0xae, 0xae, 0xcc, 0x8d, 0x2e, 0x2d, 0x8c, 0x8d, 0x2d, 0x0f, 0xc4, 0xae, 0x4c, 0x2e, 0xcd, 0x2c, 0x2f, 0xcd, 0xed, 0x0c, 0xa4, 0xad, 0x6c, 0x6e, 0x2e, 0xec, 0xac, 0x6c, 0x6e, 0xc3, 0x83, 0x92, 0x6b, 0x50, 0xb2, 0xb0, 0xcf, 0x32, 0x0b, 0xe0, 0x63, 0x57, 0x26, 0x97, 0x66, 0x96, 0xd7, 0xd2, 0x36, 0x77, 0x6e, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0x0d, 0xc2, 0x38, 0xe3, 0x20, 0x50, 0x4e, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0xda, 0x90, 0x01, 0x3f, 0x78, 0xfa, 0xb9, 0xdc, 0x1a, 0xfe, 0x5c, 0xda, 0x20, 0x34, 0x95, 0x36, 0x08, 0xfd, 0x92, 0x0d, 0xca, 0x26, 0xcc, 0x0d, 0xe2, 0x32, 0x9e, 0xab, 0xda, 0xf0, 0xf5, 0xcb, 0x06, 0xef, 0xb1, 0x29, 0xdd, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbb, 0x3d, 0x1b, 0xbe, 0xf8, 0x5d, 0xc3, 0xdb, 0x3a, 0x83, 0xc3, 0x07, 0x45, 0xa0, 0xdf, 0x41, 0xaa, 0x20, 0xed, 0x06, 0x05, 0x1f, 0xe6, 0x1a, 0xfe, 0xcd, 0x59, 0x83, 0x62, 0x12, 0x73, 0x83, 0x22, 0x15, 0xf3, 0xa0, 0x60, 0xa7, 0xdf, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0x19, 0xc0, 0xab, 0x0c, 0x0f, 0xae, 0x6c, 0x8c, 0xae, 0x05, 0x2e, 0x2c, 0x4d, 0xee, 0x20, 0x5e, 0x99, 0xab, 0x36, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0x19, 0xc0, 0xcb, 0xae, 0x4c, 0x2e, 0xcd, 0x2c, 0xaf, 0x85, 0xad, 0x2c, 0xcc, 0x6c, 0x83, 0xf7, 0xd8, 0x94, 0xae, 0xe1, 0x6d, 0x9d, 0x83, 0x22, 0xd0, 0xaf, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x0a, 0x76, 0xfa, 0x35, 0x5c, 0x52, 0x1b, 0x84, 0x70, 0xc6, 0x1a, 0x44, 0x8a, 0x67, 0xd4, 0x86, 0x8f, 0xa3, 0x36, 0xbc, 0xad, 0xb3, 0xc1, 0x73, 0x50, 0xdd, 0x0f, 0x42, 0x38, 0xa3, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0xf0, 0xb2, 0x2b, 0x93, 0x4b, 0x33, 0xcb, 0x6b, 0x81, 0x0b, 0x4b, 0x93, 0xdb, 0xe0, 0x3d, 0x36, 0xa5, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xfa, 0xa0, 0x60, 0xa7, 0x6f, 0xc3, 0x25, 0xb5, 0x41, 0x08, 0x67, 0x6c, 0x10, 0xb3, 0x8b, 0x5e, 0x6b, 0xf0, 0x12, 0x0a, 0xba, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0xd9, 0x82, 0xba, 0x41, 0xd9, 0x54, 0xbf, 0x86, 0xb7, 0x75, 0x36, 0x78, 0x44, 0xe4, 0xdc, 0x41, 0x08, 0x67, 0xb4, 0x86, 0x77, 0x7b, 0x36, 0x78, 0xf3, 0x30, 0xf2, 0x06, 0x51, 0xc3, 0xe8, 0xd5, 0x41, 0x0c, 0x3b, 0x7a, 0x35, 0x0b, 0xc0, 0xd3, 0xd8, 0x5b, 0x1b, 0x1c, 0x5b, 0x19, 0x5d, 0x59, 0x4b, 0x9a, 0x1b, 0x5b, 0x9a, 0x5b, 0x59, 0x0b, 0x9c, 0xdc, 0xdb, 0x9b, 0xb9, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x78, 0xe0, 0xe4, 0xde, 0xde, 0xcc, 0x83, 0x83, 0x47, 0xe9, 0x06, 0x31, 0x1b, 0xe8, 0xd5, 0x86, 0xaf, 0x5f, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x91, 0x56, 0xe9, 0xd5, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0x1e, 0x94, 0xdc, 0x20, 0x96, 0x24, 0xba, 0x0e, 0x62, 0x2d, 0xcf, 0x6b, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x41, 0xc9, 0x0d, 0xe2, 0x8c, 0x9a, 0xeb, 0x20, 0xd6, 0xf2, 0xbc, 0x36, 0x3c, 0x78, 0x73, 0x10, 0x47, 0x8a, 0x5e, 0x6d, 0x10, 0x99, 0x96, 0x5e, 0xad, 0x06, 0x4f, 0xbd, 0x07, 0xda, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0x3c, 0xe6, 0x6e, 0xfe, 0xa0, 0xcc, 0xd2, 0xdd, 0x20, 0x5e, 0x2a, 0xbd, 0xda, 0xf0, 0x17, 0xcd, 0x06, 0x81, 0x72, 0xb2, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x77, 0x7b, 0x36, 0x48, 0xc3, 0x56, 0x5a, 0xc3, 0xdb, 0x3a, 0x1b, 0x3c, 0xe6, 0x6e, 0xbe, 0x83, 0x60, 0x65, 0xdd, 0xa0, 0xe0, 0xc3, 0x5c, 0x83, 0x62, 0x12, 0x73, 0x0d, 0x9f, 0x2b, 0x1d, 0x3c, 0x33, 0x12, 0xe6, 0x20, 0x9e, 0x2d, 0xbd, 0x36, 0x28, 0x48, 0x63, 0x37, 0x78, 0x44, 0xe4, 0xdc, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xf8, 0x58, 0x5f, 0xc3, 0x2f, 0x2e, 0x1b, 0x1e, 0xbc, 0x59, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xf4, 0x20, 0x9e, 0x2d, 0xbd, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xe9, 0xe0, 0xf4, 0x41, 0x3c, 0x5b, 0x7a, 0xd5, 0x41, 0x59, 0xe7, 0xb9, 0x41, 0x41, 0x1a, 0xbb, 0x41, 0xa4, 0x55, 0x7a, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xe9, 0x83, 0x78, 0x0f, 0xf5, 0xda, 0xa0, 0x20, 0x8d, 0x1d, 0xe0, 0x43, 0x2b, 0x4b, 0x3b, 0x43, 0xa3, 0x37, 0x3c, 0x26, 0xb3, 0xe1, 0x2b, 0x9c, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0xe2, 0xd9, 0xd2, 0x6b, 0x0d, 0xbf, 0xb8, 0x6c, 0x10, 0x3d, 0x9d, 0x5e, 0x1b, 0x1e, 0xbc, 0xd9, 0xe0, 0xb9, 0x13, 0x74, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xf0, 0x12, 0x0a, 0xba, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0xd9, 0x82, 0xba, 0x41, 0xd9, 0x54, 0x7f, 0x10, 0x39, 0xa6, 0x5e, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x68, 0x20, 0xf5, 0x6a, 0x0d, 0xbf, 0xb8, 0xac, 0x41, 0x21, 0x98, 0x7a, 0x70, 0x6c, 0x29, 0xdd, 0x20, 0xee, 0x41, 0xbd, 0x6a, 0x0d, 0xe2, 0xd9, 0xd2, 0x6b, 0xc3, 0xdb, 0x3a, 0x07, 0xf1, 0x1e, 0xea, 0xb5, 0x06, 0xd1, 0x8a, 0xea, 0xb5, 0xe1, 0xe3, 0xa8, 0x83, 0xb8, 0x43, 0xf5, 0xea, 0x70, 0x8a, 0x2d, 0x80, 0x9f, 0x5c, 0xd9, 0xd8, 0x9b, 0x5d, 0x99, 0x5c, 0x8b, 0xdc, 0xdb, 0x1b, 0xbd, 0xe1, 0x17, 0xa5, 0x0d, 0xe2, 0xa5, 0xd2, 0x6b, 0xc3, 0x5f, 0x34, 0x1b, 0x1c, 0x5b, 0x4a, 0x37, 0x28, 0xf8, 0x30, 0x37, 0x88, 0x1e, 0x4f, 0xaf, 0x0d, 0x0a, 0xd2, 0xd8, 0x35, 0x7c, 0xdf, 0xbe, 0xc1, 0x9a, 0x8b, 0xf0, 0x0d, 0x4a, 0xe8, 0xd8, 0x35, 0xfc, 0x3b, 0xbf, 0x41, 0xc3, 0x65, 0xda, 0x1b, 0xc4, 0x8c, 0x45, 0x57, 0x07, 0x61, 0x3a, 0xb6, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xa0, 0xe4, 0x06, 0xb1, 0xca, 0xce, 0x75, 0x10, 0x6b, 0x79, 0x5e, 0x07, 0x31, 0x0f, 0xea, 0xb5, 0x41, 0x41, 0x1a, 0xbb, 0x41, 0xa4, 0x55, 0x7a, 0x6d, 0x10, 0x2b, 0xa3, 0x5e, 0x1b, 0xbe, 0xc2, 0xd9, 0xa0, 0x84, 0xc7, 0xdc, 0x20, 0x9e, 0x2d, 0xbd, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x31, 0x79, 0xe9, 0xb5, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xa0, 0xe4, 0x06, 0x31, 0x1a, 0xce, 0x75, 0x10, 0x6b, 0x79, 0x5e, 0x6b, 0x78, 0x50, 0x72, 0x83, 0xe8, 0x13, 0xe7, 0x3a, 0x88, 0xb5, 0x3c, 0xaf, 0x83, 0x68, 0x7b, 0xae, 0x6a, 0x83, 0x82, 0x34, 0x76, 0x0d, 0x4a, 0xe8, 0xd8, 0x0d, 0xe2, 0x32, 0x9e, 0xeb, 0x20, 0x4c, 0xc7, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x26, 0x2f, 0xbd, 0x0e, 0xa2, 0xed, 0xb9, 0xea, 0x20, 0x72, 0x53, 0xbd, 0x36, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x68, 0xb8, 0x4c, 0x7b, 0xc3, 0xbb, 0x3d, 0x1b, 0x44, 0x22, 0xac, 0xd7, 0x41, 0x54, 0xdb, 0x73, 0x6d, 0x10, 0x11, 0xaa, 0x5e, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0xb6, 0x41, 0xc9, 0xc2, 0x3e, 0xcb, 0xac, 0x41, 0xb4, 0x24, 0x7a, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0x6d, 0x10, 0xcb, 0x80, 0x5e, 0x07, 0xf1, 0x60, 0xe9, 0xb5, 0xe1, 0x2f, 0x9a, 0x0d, 0x1f, 0xac, 0x6e, 0x50, 0x90, 0xc6, 0x0e, 0xfc, 0x98, 0xbd, 0x86, 0x77, 0x7b, 0x36, 0x88, 0xc9, 0x4b, 0xaf, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x6c, 0x62, 0x7a, 0x6d, 0x10, 0x35, 0x8c, 0x5e, 0x07, 0x71, 0xa4, 0xe8, 0xd5, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x00, 0x2f, 0x5a, 0x98, 0x5d, 0x59, 0xcb, 0x98, 0xdd, 0x06, 0xef, 0xb1, 0x29, 0xdd, 0xf0, 0xe0, 0xcd, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0xec, 0x6e, 0x37, 0x88, 0x1a, 0x46, 0xaf, 0x83, 0x60, 0x65, 0x3d, 0x88, 0x35, 0x8d, 0xae, 0xd5, 0x20, 0x52, 0x1b, 0xbd, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0x36, 0x88, 0x65, 0x40, 0xaf, 0x35, 0xfc, 0xb9, 0xb4, 0x41, 0x68, 0x2a, 0x1d, 0xc4, 0x65, 0x3c, 0x57, 0x1b, 0xfe, 0xa2, 0xd9, 0xf0, 0xc1, 0xea, 0x06, 0x05, 0x69, 0xec, 0x06, 0xd1, 0x40, 0xea, 0xb5, 0x86, 0x8f, 0xa3, 0x0e, 0xe2, 0x43, 0xd2, 0x6b, 0x83, 0x82, 0x34, 0x76, 0x83, 0x65, 0x03, 0xb4, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x43, 0x0c, 0xc4, 0x86, 0xc7, 0x64, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x25, 0xd1, 0xec, 0x86, 0x07, 0x6f, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x71, 0x87, 0xea, 0x75, 0x50, 0x10, 0x8f, 0x1f, 0xc4, 0xa7, 0xa4, 0x57, 0x1b, 0x14, 0xa4, 0xb1, 0x03, 0x3f, 0x66, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0x62, 0xf2, 0xd2, 0x6b, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x89, 0xb0, 0x5e, 0x07, 0x65, 0x37, 0x7d, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0x72, 0x7d, 0xbd, 0x36, 0x78, 0x8f, 0x4d, 0xe9, 0x06, 0x71, 0x87, 0xea, 0xb5, 0x41, 0xbb, 0x13, 0x97, 0x07, 0xb1, 0xa6, 0xd1, 0xb5, 0x1a, 0xc4, 0xbc, 0xaf, 0xd7, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x06, 0xb1, 0x0c, 0xe8, 0xb5, 0x86, 0x3f, 0x97, 0x36, 0x88, 0x06, 0x52, 0xaf, 0x83, 0x32, 0x4b, 0x77, 0x0d, 0x7f, 0x2e, 0x6d, 0xb0, 0x6c, 0x80, 0xf6, 0xa0, 0xcc, 0xd2, 0xdd, 0x20, 0x9e, 0xf7, 0xba, 0xda, 0xf0, 0x17, 0xcd, 0x86, 0x0f, 0x56, 0x37, 0x28, 0x48, 0x63, 0x07, 0x87, 0xd7, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0x14, 0x6e, 0xa2, 0x07, 0xb1, 0x11, 0xe9, 0xb5, 0x41, 0xdc, 0xa1, 0x7a, 0xb5, 0xe1, 0x83, 0x9c, 0x35, 0x3c, 0xc2, 0xba, 0x06, 0xc5, 0x24, 0xe6, 0x06, 0x45, 0x2a, 0xe6, 0xc1, 0xc1, 0x23, 0x63, 0x0d, 0xff, 0xe6, 0xac, 0x41, 0x09, 0x8f, 0xb9, 0x41, 0x93, 0x14, 0x97, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0x76, 0xf0, 0xfa, 0xe0, 0xe0, 0x91, 0xb1, 0xe1, 0x6d, 0x9d, 0xc1, 0xe5, 0x83, 0xe8, 0x91, 0xf6, 0x3a, 0x88, 0x8f, 0x7a, 0xae, 0x36, 0x58, 0x05, 0x26, 0xbb, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x4b, 0xde, 0xd7, 0x60, 0x00, 0x91, 0x77, 0x10, 0x1b, 0x91, 0x5e, 0x6b, 0xf8, 0x45, 0x69, 0x83, 0xb8, 0x8c, 0xe7, 0xda, 0xf0, 0x6f, 0xce, 0x06, 0xc7, 0x4f, 0xbe, 0x83, 0xf8, 0xa8, 0xe7, 0xea, 0x70, 0x8a, 0xb5, 0x06, 0x61, 0x9c, 0xb1, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0x10, 0xc6, 0x19, 0x1b, 0x3e, 0x57, 0xda, 0x20, 0xfa, 0x35, 0xbd, 0x36, 0x88, 0xff, 0x8b, 0xad, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0x23, 0x22, 0xe7, 0x36, 0x08, 0xfd, 0x92, 0x0d, 0x4a, 0xc4, 0xfa, 0x0d, 0xca, 0x2c, 0xdd, 0x83, 0x88, 0x1a, 0xf4, 0x6a, 0x35, 0x88, 0xae, 0x43, 0xaf, 0x0d, 0xbf, 0x28, 0x6d, 0x10, 0x28, 0x27, 0x1b, 0x1e, 0x61, 0x5d, 0xc3, 0xdb, 0xac, 0x1b, 0xfe, 0xcd, 0xd9, 0xf0, 0xe0, 0xcd, 0x41, 0xb4, 0x7a, 0x46, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x5f, 0x9c, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x7f, 0x02, 0x6d, 0x10, 0xad, 0x9e, 0x51, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x42, 0xbb, 0x77, 0x0d, 0x1f, 0x47, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x37, 0x0f, 0x23, 0x1f, 0x44, 0xff, 0x69, 0x54, 0x6d, 0x10, 0x3d, 0x9d, 0x5e, 0x75, 0x38, 0xc5, 0x3a, 0x9c, 0x62, 0x87, 0x53, 0x6c, 0x01, 0x5e, 0xb1, 0xba, 0x34, 0x36, 0xb2, 0x32, 0x79, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x20, 0x0a, 0xbe, 0xbd, 0x1a, 0x00, 0x5f, 0xe6, 0xe8, 0xc2, 0xe8, 0xca, 0xcc, 0xea, 0xd8, 0x40, 0xc6, 0xde, 0xe4, 0xca, 0x40, 0xcc, 0xde, 0xe4, 0x40, 0xc6, 0xde, 0xda, 0xe0, 0xea, 0xe8, 0xd2, 0xdc, 0xce, 0x40, 0xe0, 0xe4, 0xde, 0xde, 0xcc, 0x40, 0xc8, 0xc2, 0xe8, 0xc2, 0x36, 0x3c, 0x28, 0xb9, 0x06, 0x25, 0x0b, 0xfb, 0x2c, 0xb3, 0x00, 0xbf, 0x59, 0x9a, 0x5b, 0x18, 0x5b, 0x9a, 0x5e, 0xb9, 0xe1, 0x17, 0xa5, 0x0d, 0x62, 0x19, 0xd0, 0x6b, 0xc3, 0x5f, 0x34, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x68, 0x24, 0x91, 0x83, 0x63, 0x4b, 0xe9, 0x06, 0xf1, 0x52, 0xe9, 0xb5, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x44, 0xe4, 0xdc, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0x48, 0x99, 0xac, 0x41, 0xe8, 0x97, 0x6c, 0x50, 0x36, 0x61, 0xae, 0x41, 0xe8, 0x97, 0x6c, 0x50, 0x7a, 0xd3, 0x1f, 0x44, 0x81, 0x1d, 0x55, 0xb5, 0xe1, 0x83, 0x9c, 0x35, 0xfc, 0x9b, 0xb3, 0xe1, 0xc1, 0x9b, 0x0d, 0x6f, 0xeb, 0x6c, 0xf0, 0x98, 0xbb, 0xf9, 0x83, 0x10, 0xce, 0x58, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x58, 0xcb, 0xf3, 0xda, 0x20, 0xf5, 0x34, 0x76, 0x83, 0xc8, 0xf6, 0x8a, 0xea, 0xa0, 0x2c, 0xf3, 0xdc, 0xa0, 0xe8, 0xa0, 0xdd, 0xe0, 0xd1, 0x48, 0x22, 0x1b, 0x84, 0x70, 0xc6, 0x1a, 0x14, 0xa4, 0xb1, 0x1b, 0x44, 0x03, 0xa9, 0xd7, 0x1a, 0xde, 0xed, 0xd9, 0xe0, 0xcd, 0xc3, 0xc8, 0x1b, 0x44, 0x50, 0xba, 0x57, 0x1b, 0x14, 0xa4, 0xb1, 0x1b, 0x44, 0xa1, 0xab, 0xd7, 0x1a, 0xde, 0xed, 0x59, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0xf6, 0xd6, 0xb2, 0x36, 0x28, 0x9b, 0xea, 0xd7, 0xf0, 0xb6, 0xce, 0x00, 0x0f, 0x9d, 0x5c, 0x59, 0xd9, 0x7c, 0x10, 0xc2, 0x19, 0x1d, 0xc4, 0xe6, 0xb3, 0xd7, 0x06, 0x45, 0x9f, 0xee, 0x06, 0xd1, 0x8a, 0xea, 0xb5, 0x41, 0xac, 0xac, 0x7a, 0x6d, 0xf8, 0x0a, 0x67, 0xc3, 0x07, 0x39, 0x6b, 0xf8, 0x37, 0x67, 0x83, 0xb8, 0x43, 0xf5, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0xa7, 0x03, 0xbe, 0x83, 0x18, 0x6b, 0xf7, 0x5a, 0xc3, 0x2f, 0x2e, 0x1b, 0x44, 0xce, 0xac, 0xd7, 0x41, 0xbc, 0x32, 0x57, 0x6d, 0x50, 0xec, 0x68, 0xae, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0x33, 0xc0, 0x8f, 0x16, 0x36, 0xd7, 0x42, 0x27, 0x57, 0x56, 0xb6, 0xc1, 0x7b, 0x6c, 0x4a, 0x0f, 0x62, 0xf3, 0xd9, 0x6b, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0xec, 0x20, 0xb6, 0x55, 0xbd, 0x36, 0x28, 0x48, 0x63, 0x07, 0x67, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x31, 0x79, 0xe9, 0xb5, 0x41, 0x0c, 0xb9, 0x7b, 0xb5, 0x41, 0x41, 0x1a, 0x3b, 0xb8, 0xbc, 0x41, 0x8c, 0xdc, 0x7a, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0x10, 0xc2, 0x19, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0xfc, 0x61, 0x64, 0x64, 0x2d, 0x70, 0x61, 0x69, 0x72, 0x1b, 0xbc, 0xc7, 0xa6, 0x74, 0x83, 0xb8, 0x43, 0xf5, 0x3a, 0x88, 0x6a, 0x7b, 0xae, 0x0d, 0xa2, 0x12, 0xd7, 0xeb, 0x20, 0xb6, 0x55, 0xbd, 0x36, 0x28, 0x48, 0x63, 0x07, 0x78, 0xd3, 0xdc, 0xc8, 0xd2, 0xc6, 0xca, 0xe6, 0x35, 0x7c, 0x90, 0xb3, 0x41, 0x54, 0xa3, 0x7b, 0x6d, 0x50, 0x50, 0x64, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x17, 0xe9, 0x4a, 0x6f, 0x78, 0xf0, 0x66, 0x0d, 0xef, 0xf6, 0x6c, 0x78, 0xcd, 0xe7, 0x20, 0xc6, 0xda, 0xbd, 0xda, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xd6, 0x39, 0x78, 0x2c, 0x30, 0xcc, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xb0, 0x58, 0x5e, 0xc3, 0xdb, 0x3a, 0x1b, 0x44, 0x5a, 0xa5, 0xd7, 0x41, 0x08, 0x67, 0xb4, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x91, 0xaa, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0x91, 0xb9, 0xef, 0xd5, 0x06, 0x31, 0xed, 0xec, 0x55, 0x2b, 0xc0, 0x1f, 0x46, 0x46, 0xd6, 0xc2, 0x56, 0x16, 0x66, 0x6e, 0xf8, 0x45, 0x69, 0x83, 0x88, 0xd9, 0xf5, 0xda, 0xf0, 0xf5, 0xcb, 0x06, 0xef, 0xb1, 0x29, 0xdd, 0xa0, 0xe0, 0xc3, 0xdc, 0x20, 0xda, 0x08, 0xbd, 0x36, 0x28, 0x48, 0x63, 0x37, 0x88, 0x42, 0x57, 0xaf, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x6c, 0x62, 0x7a, 0x6d, 0x10, 0x41, 0xe9, 0x5e, 0x07, 0x71, 0xa4, 0xe8, 0xb5, 0x41, 0x69, 0x6f, 0xb9, 0x41, 0xfc, 0x2f, 0x7b, 0x6d, 0xf8, 0x0a, 0x67, 0x83, 0x62, 0x47, 0x73, 0x83, 0x58, 0xa0, 0xf7, 0x5a, 0xc3, 0x25, 0xb5, 0x41, 0x08, 0x67, 0xac, 0x41, 0xcc, 0x75, 0x7a, 0x6d, 0xf8, 0x38, 0xea, 0x20, 0x82, 0xd2, 0xbd, 0x56, 0x83, 0x18, 0x7c, 0xf7, 0x6a, 0xc3, 0xbb, 0x3d, 0x6b, 0x50, 0x96, 0xbc, 0x6f, 0x50, 0xb6, 0xa0, 0x1e, 0x44, 0xc1, 0xbb, 0xd7, 0x06, 0x71, 0x87, 0xea, 0x75, 0x10, 0x6d, 0xcf, 0x55, 0x1d, 0x44, 0x95, 0xbd, 0xd7, 0xe1, 0x14, 0xeb, 0x70, 0x8a, 0x6d, 0x50, 0xb2, 0xb0, 0xcf, 0x32, 0x6b, 0x10, 0x7f, 0xf4, 0x5e, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x1b, 0xc4, 0x32, 0xa0, 0xd7, 0x06, 0xf1, 0xbf, 0xec, 0xd5, 0x86, 0xbf, 0x68, 0x36, 0x7c, 0xb0, 0xba, 0xe1, 0xdf, 0x9c, 0x0d, 0x8f, 0xc9, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0x92, 0x68, 0x76, 0xc3, 0x83, 0x37, 0x1b, 0x44, 0x9e, 0xb1, 0xd7, 0x41, 0x8c, 0xb5, 0x7b, 0xad, 0x06, 0x71, 0x94, 0xef, 0xb5, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0x2c, 0x03, 0x7a, 0x6d, 0x10, 0xff, 0xcb, 0x5e, 0x07, 0xd1, 0x1c, 0xcf, 0xb5, 0xe1, 0xeb, 0x97, 0x0d, 0xde, 0x63, 0x53, 0xba, 0xe1, 0x83, 0x9c, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x8b, 0xb3, 0x0d, 0x62, 0x65, 0xd5, 0x6b, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x14, 0xff, 0x6e, 0x78, 0xf0, 0xe6, 0x20, 0xc6, 0xda, 0xbd, 0x5a, 0x83, 0x82, 0x34, 0x76, 0xf0, 0x74, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x14, 0x70, 0x83, 0x08, 0x4a, 0xf7, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0xfe, 0x04, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x84, 0xdd, 0xed, 0x06, 0x11, 0x94, 0xee, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x28, 0xb4, 0x7b, 0x37, 0x88, 0x95, 0x55, 0xaf, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0xda, 0xbd, 0x07, 0xb1, 0xf9, 0xec, 0x55, 0x1b, 0x2e, 0xa9, 0x0d, 0x42, 0x38, 0x63, 0x0d, 0x5e, 0x42, 0x41, 0xb7, 0xe1, 0xdd, 0x9e, 0x0d, 0x62, 0x13, 0xd2, 0x6b, 0x83, 0x32, 0xfa, 0x7c, 0x0d, 0xbf, 0xb8, 0x1c, 0x44, 0xb5, 0x3d, 0x57, 0x6d, 0x50, 0xc2, 0x63, 0x6e, 0x10, 0xc3, 0xff, 0x5e, 0x6b, 0xb8, 0xa4, 0x36, 0x08, 0xe1, 0x8c, 0x35, 0x88, 0x67, 0x4b, 0xaf, 0x0d, 0x8e, 0xae, 0x83, 0x1b, 0x1c, 0x3f, 0xf9, 0x0e, 0x12, 0x42, 0x6c, 0xdb, 0x70, 0x49, 0x6d, 0x10, 0xc2, 0x19, 0x6b, 0x10, 0xcf, 0x96, 0x5e, 0x1b, 0x7e, 0x71, 0xd9, 0xe0, 0xf8, 0xc9, 0x77, 0x10, 0x89, 0xff, 0x5e, 0x1d, 0x4e, 0xb1, 0x35, 0x08, 0xe3, 0x8c, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0x30, 0xce, 0xd8, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0xda, 0x20, 0x06, 0xdf, 0xbd, 0x36, 0x08, 0xfd, 0x92, 0x0d, 0x4a, 0xc4, 0xfa, 0x0d, 0xca, 0x2c, 0xdd, 0x0d, 0xa2, 0xe8, 0xd5, 0xab, 0x0d, 0xa2, 0x5f, 0xd3, 0x6b, 0x83, 0x78, 0xa9, 0xf4, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0x3c, 0x22, 0x72, 0x6e, 0x83, 0xd0, 0x2f, 0xd9, 0xa0, 0x44, 0xac, 0xdf, 0xa0, 0xcc, 0xd2, 0x3d, 0x88, 0xe3, 0x73, 0xaf, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x5b, 0x0d, 0xc6, 0x58, 0xe3, 0x86, 0x5f, 0x94, 0x36, 0x7c, 0xb9, 0xb4, 0xe1, 0xdd, 0xbc, 0x0d, 0xdf, 0xe6, 0x1c, 0x1c, 0x1b, 0x29, 0x56, 0x80, 0x47, 0xac, 0x2e, 0x8d, 0x8d, 0xdc, 0xf0, 0x8b, 0xd2, 0x06, 0xb1, 0x01, 0xb2, 0xb5, 0xe1, 0x2f, 0x9a, 0x0d, 0xe2, 0xa0, 0xdc, 0x6b, 0x83, 0xd2, 0xde, 0x72, 0x0d, 0x7f, 0x2e, 0x6d, 0x10, 0xc6, 0x19, 0x1b, 0xfe, 0x9d, 0xdf, 0x20, 0x84, 0x33, 0xd6, 0x20, 0x0a, 0xbe, 0xbd, 0x6a, 0xc3, 0x57, 0x38, 0x1b, 0x14, 0xa4, 0xb1, 0x03, 0xde, 0x9b, 0x99, 0xb9, 0x86, 0x77, 0x7b, 0x36, 0x08, 0x9e, 0xda, 0x0d, 0x22, 0x28, 0xdd, 0xeb, 0x20, 0x55, 0x90, 0x76, 0xc3, 0x07, 0x39, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x17, 0xbf, 0x1b, 0x44, 0x6a, 0xc8, 0xd6, 0x06, 0xaf, 0xc7, 0xf2, 0x6d, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x41, 0xc9, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xcc, 0x8e, 0x7b, 0xb5, 0xe1, 0x6d, 0x9d, 0x83, 0x48, 0x2a, 0xf9, 0x3a, 0x88, 0x57, 0xe6, 0xaa, 0x0d, 0x0a, 0xd2, 0xd8, 0x0d, 0x19, 0xf0, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0x77, 0x7b, 0x36, 0x48, 0x97, 0x18, 0xdb, 0x20, 0x5d, 0x90, 0x76, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x14, 0xf0, 0x20, 0x06, 0x50, 0xbe, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0x44, 0xb3, 0x1b, 0x14, 0x95, 0xe2, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xd7, 0x63, 0xf9, 0x1e, 0xa4, 0x0a, 0xd2, 0x1e, 0x44, 0x81, 0x65, 0x57, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x84, 0x70, 0xc6, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xa0, 0xe4, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0x5e, 0x03, 0xbe, 0x3a, 0x88, 0xcd, 0x94, 0xaf, 0x83, 0xe8, 0x4f, 0xf4, 0xea, 0x70, 0x8a, 0xd5, 0xe1, 0x14, 0x9b, 0x35, 0x88, 0xaa, 0xe6, 0xa5, 0x0d, 0x52, 0x2f, 0x8a, 0x37, 0x28, 0x59, 0xd8, 0x67, 0x99, 0x05, 0xf0, 0x20, 0x2b, 0x53, 0x9b, 0x6b, 0x99, 0x7b, 0x33, 0xa3, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x22, 0x3b, 0xe6, 0xab, 0x01, 0xf8, 0x51, 0x9b, 0x7b, 0x73, 0x03, 0x91, 0x2b, 0x83, 0x0b, 0x93, 0x9b, 0x2b, 0x03, 0xa1, 0x7b, 0x03, 0xa9, 0x73, 0x4b, 0xa3, 0xdb, 0x60, 0x15, 0x96, 0xd3, 0x1a, 0xde, 0xd6, 0x19, 0xe0, 0xa9, 0x73, 0x4b, 0xa3, 0xcb, 0xdb, 0xa0, 0x94, 0x10, 0x5f, 0x83, 0x92, 0x85, 0x7d, 0x96, 0x59, 0x83, 0x27, 0x3f, 0x6b, 0x6c, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x1c, 0x2c, 0x4e, 0x2f, 0xde, 0xf0, 0x6e, 0xcf, 0xc1, 0x29, 0xca, 0x6a, 0x16, 0xf0, 0xcd, 0xd2, 0xe6, 0xe8, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0x78, 0x90, 0x2b, 0x83, 0x0b, 0x93, 0x9b, 0x2b, 0x93, 0x03, 0x49, 0x73, 0x9b, 0xa3, 0x0b, 0x73, 0x1b, 0x2b, 0xdb, 0xf0, 0x51, 0xfb, 0x06, 0xe1, 0x34, 0xb6, 0xc1, 0x0b, 0xfe, 0x35, 0x0f, 0xde, 0x58, 0x0a, 0x72, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0x06, 0x25, 0x0b, 0xfb, 0x2c, 0xb3, 0xc0, 0xcf, 0xd5, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x41, 0xe4, 0x40, 0x4d, 0x0d, 0xe0, 0x07, 0x17, 0x26, 0x37, 0x57, 0x06, 0x32, 0x47, 0x27, 0x97, 0xe6, 0x76, 0xb6, 0x41, 0xa1, 0xdc, 0xb9, 0xc1, 0x0a, 0xcb, 0xd8, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0xcf, 0xa5, 0x0d, 0x9a, 0xd5, 0x1e, 0x3b, 0x78, 0xc1, 0xbf, 0xe6, 0x06, 0xc5, 0x8e, 0xe6, 0x1a, 0x14, 0x93, 0x98, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x25, 0x31, 0x81, 0x07, 0x87, 0x98, 0x8e, 0x83, 0x76, 0xd2, 0xc7, 0x36, 0x28, 0x28, 0x32, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0x5a, 0x03, 0xd8, 0x35, 0xbc, 0xad, 0x33, 0x38, 0x7c, 0xd0, 0x4e, 0xfa, 0xd8, 0xc1, 0x42, 0xd4, 0xd8, 0x15, 0xf0, 0xc9, 0xc2, 0xdc, 0xd6, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x68, 0x11, 0xfa, 0xea, 0xe0, 0xc0, 0x30, 0xba, 0xe1, 0x2f, 0x9a, 0x35, 0x08, 0xa7, 0xb1, 0x0d, 0x5e, 0xf0, 0xaf, 0xb9, 0x41, 0xe8, 0x97, 0x6c, 0x50, 0x36, 0x61, 0x1e, 0x9c, 0x08, 0x46, 0x37, 0x28, 0x3a, 0x8d, 0x37, 0x58, 0xcb, 0x9d, 0xbe, 0x06, 0x85, 0x60, 0xea, 0xc1, 0x99, 0x60, 0x74, 0x83, 0xf3, 0x60, 0xc7, 0x06, 0xcb, 0x21, 0x99, 0x66, 0x83, 0x13, 0xfb, 0xcd, 0x06, 0xaf, 0x22, 0x3f, 0xd9, 0xe0, 0xe8, 0x3a, 0xb8, 0x86, 0x27, 0xee, 0x36, 0xbc, 0xad, 0x33, 0xf0, 0x73, 0x61, 0x6b, 0xb0, 0xa0, 0x7d, 0x7d, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0xe0, 0xdf, 0xe8, 0xd6, 0xa0, 0x89, 0x75, 0xd5, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0xc7, 0x48, 0x5f, 0xab, 0xe1, 0x8d, 0xbb, 0x0d, 0x2f, 0xdf, 0x1d, 0xac, 0x10, 0x97, 0x3f, 0x88, 0xea, 0xa3, 0xaf, 0xd5, 0xf0, 0xc6, 0xdd, 0x86, 0x97, 0xef, 0x0e, 0x7d, 0xf0, 0x0f, 0xa2, 0xfa, 0xe8, 0x6b, 0x35, 0xbc, 0x71, 0x77, 0xf0, 0x4e, 0x79, 0xc5, 0x83, 0xa8, 0x3e, 0xfa, 0x5a, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0xee, 0x20, 0xa6, 0xb4, 0x89, 0x0e, 0xa2, 0xfa, 0xe8, 0xeb, 0xa0, 0xac, 0xf3, 0x5c, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0xee, 0x20, 0x3a, 0xb7, 0x89, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0xfb, 0x51, 0x52, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x68, 0x11, 0xfa, 0xaa, 0x83, 0xb2, 0xce, 0x73, 0x0d, 0x56, 0x35, 0x08, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0x38, 0x46, 0xfa, 0x5a, 0x83, 0x26, 0xd6, 0x55, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x1c, 0x23, 0x7d, 0x6d, 0x10, 0x07, 0x4a, 0x5f, 0x07, 0xd1, 0xbe, 0xf4, 0x75, 0x10, 0xf9, 0x4d, 0x5f, 0xad, 0xc0, 0x87, 0xd1, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0xc1, 0xc2, 0x6b, 0xb7, 0x01, 0x7c, 0xc3, 0xe4, 0xe4, 0xc2, 0xf2, 0x40, 0xc2, 0xe6, 0x40, 0xe8, 0xea, 0xe0, 0xd8, 0xca, 0x36, 0x28, 0x94, 0x3b, 0xd7, 0xf0, 0xe7, 0xd2, 0x80, 0x77, 0x97, 0xc6, 0x6e, 0x10, 0xfa, 0x25, 0x1b, 0x84, 0x8a, 0xcb, 0x1a, 0xfe, 0x9d, 0x5f, 0x83, 0xe8, 0xbf, 0xf9, 0xaa, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0xec, 0xf8, 0x7c, 0x6d, 0x50, 0xec, 0x68, 0xae, 0x41, 0x31, 0x89, 0xb9, 0x86, 0xcf, 0x95, 0x36, 0x48, 0xd9, 0x62, 0x3a, 0x38, 0xc4, 0x74, 0x1c, 0xb4, 0x93, 0x3e, 0xb6, 0x41, 0x41, 0x91, 0xb9, 0x41, 0xb1, 0xa3, 0xb9, 0x86, 0x7f, 0x73, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x0b, 0x3d, 0x27, 0xd7, 0xf0, 0xb6, 0xce, 0x80, 0x77, 0x97, 0xc6, 0xd6, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xe8, 0x39, 0xb9, 0x41, 0x14, 0x05, 0x7d, 0xb5, 0x41, 0x41, 0x91, 0xb9, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0xb2, 0x41, 0x8a, 0x6c, 0xcf, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0x19, 0xe0, 0x0b, 0xa3, 0x6b, 0x91, 0x0b, 0xbb, 0x3b, 0x88, 0xba, 0xac, 0xaf, 0x83, 0xd8, 0xd3, 0xfa, 0xda, 0xa0, 0xd8, 0xd1, 0x5c, 0xc3, 0xbb, 0x3d, 0x1b, 0xc4, 0x81, 0xcc, 0xd3, 0x41, 0xb2, 0x14, 0xe7, 0x06, 0x05, 0x45, 0xe6, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x4b, 0x81, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x22, 0x9f, 0xe6, 0xe9, 0x20, 0x59, 0x8a, 0xb3, 0x15, 0x78, 0x3d, 0x76, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0x32, 0x78, 0x3d, 0xb6, 0x01, 0xf8, 0x18, 0x7b, 0x63, 0x63, 0x0b, 0x83, 0x9b, 0x2b, 0x03, 0xa9, 0x73, 0x4b, 0xa3, 0x03, 0x61, 0x4b, 0x9b, 0xa3, 0xdb, 0xa0, 0x50, 0xee, 0x5c, 0xc3, 0x9f, 0x4b, 0x03, 0x1e, 0x5b, 0x1d, 0xbd, 0x41, 0xe8, 0x97, 0x6c, 0x10, 0x52, 0x26, 0x07, 0x8b, 0xba, 0x86, 0x37, 0x28, 0x76, 0x34, 0xd7, 0xf0, 0x15, 0xce, 0x86, 0xbf, 0x68, 0x36, 0x7c, 0xb0, 0xba, 0x41, 0x09, 0x8f, 0xb9, 0x80, 0xc7, 0x56, 0x47, 0xb7, 0x41, 0x91, 0xd3, 0xba, 0x41, 0x09, 0x8f, 0xb9, 0xe0, 0xe9, 0x41, 0x3c, 0x94, 0x7d, 0x6d, 0x50, 0xc0, 0xe6, 0x6f, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0x10, 0x0f, 0x65, 0x5f, 0x1b, 0xde, 0xd6, 0x19, 0x9c, 0x3e, 0x88, 0x87, 0xb2, 0xaf, 0x36, 0x28, 0x28, 0x32, 0x37, 0x38, 0xb1, 0xdf, 0x6c, 0x70, 0x96, 0x02, 0xdb, 0xf0, 0x15, 0xce, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0xf1, 0x50, 0xf6, 0xb5, 0x41, 0x41, 0x91, 0xb9, 0xe1, 0x17, 0x97, 0x35, 0x7c, 0xee, 0x32, 0x78, 0xba, 0xe1, 0x41, 0xc9, 0x0d, 0x12, 0x43, 0xaf, 0x36, 0x5c, 0x52, 0x6b, 0x3c, 0x3f, 0x88, 0xef, 0xb2, 0xaf, 0xd6, 0xf0, 0xb9, 0xcb, 0xe0, 0xf4, 0x41, 0x1c, 0x9a, 0x7d, 0xb5, 0x02, 0xef, 0x56, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x06, 0xef, 0x56, 0x36, 0x80, 0xaf, 0x5b, 0x5d, 0x9b, 0x58, 0x99, 0x1c, 0x48, 0xd8, 0x1c, 0x88, 0x5c, 0x59, 0x18, 0xdb, 0x86, 0x5f, 0x94, 0x36, 0x88, 0x1d, 0x9f, 0xaf, 0x0d, 0x7f, 0xd1, 0xac, 0x41, 0xe8, 0x97, 0x6c, 0x50, 0x36, 0x61, 0x1e, 0x9c, 0x5d, 0x5e, 0x37, 0x28, 0x76, 0x34, 0xd7, 0xa0, 0x98, 0xc4, 0xdc, 0x20, 0x45, 0x7d, 0xeb, 0xa0, 0x9d, 0xf4, 0xb1, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xd6, 0x00, 0x76, 0x83, 0x28, 0x0a, 0xfa, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xab, 0x04, 0xdd, 0x60, 0x99, 0x8a, 0xeb, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x59, 0x25, 0xe8, 0x1a, 0x1e, 0x94, 0xdc, 0x60, 0x91, 0x15, 0xeb, 0x86, 0xb7, 0x75, 0x16, 0xc7, 0x09, 0x7e, 0xee, 0x6d, 0x0d, 0x6f, 0xeb, 0x0c, 0xf0, 0xaa, 0xcd, 0xbd, 0xb9, 0xb5, 0xc8, 0xb9, 0x55, 0x87, 0x53, 0x6c, 0x81, 0x77, 0x4b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x83, 0x77, 0x4b, 0x1b, 0x80, 0x07, 0xb7, 0xba, 0x36, 0xb1, 0x32, 0x39, 0x90, 0xb0, 0x39, 0x90, 0x34, 0x37, 0xba, 0xb2, 0xb3, 0x32, 0xb9, 0x0d, 0xbf, 0x28, 0x6d, 0x10, 0x3b, 0x3e, 0x5f, 0x1b, 0x14, 0x3b, 0x9a, 0x1b, 0x44, 0xf2, 0xdb, 0xd7, 0x06, 0x05, 0x45, 0xe6, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x6b, 0x00, 0xbb, 0x41, 0x14, 0x05, 0x7d, 0x1d, 0x34, 0xde, 0x2e, 0x7b, 0x38, 0xc5, 0x16, 0xf8, 0x3a, 0x76, 0xc3, 0xf3, 0x24, 0x1b, 0x3c, 0x32, 0x5d, 0x73, 0xc3, 0x2f, 0x4a, 0x1b, 0xc4, 0x8e, 0xcf, 0xd7, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0xed, 0xa4, 0x8f, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0xce, 0x52, 0x60, 0x07, 0x65, 0x9d, 0xe7, 0x41, 0x41, 0x91, 0x39, 0x0b, 0xfc, 0x9b, 0xb9, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x19, 0xfc, 0x9b, 0xd9, 0x00, 0xde, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x61, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6e, 0x64, 0x1b, 0x14, 0xca, 0x9d, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x16, 0x09, 0x2d, 0x37, 0x08, 0xfd, 0x92, 0x0d, 0x42, 0xc5, 0x65, 0x0d, 0x9f, 0x2b, 0x6d, 0x70, 0x02, 0x12, 0x3d, 0x88, 0xcf, 0xaa, 0xaf, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0xec, 0xf8, 0x7c, 0x6d, 0x50, 0xec, 0x68, 0xae, 0x41, 0x31, 0x89, 0xb9, 0x86, 0xcf, 0x95, 0x36, 0x58, 0xa6, 0xc8, 0xbe, 0x41, 0x4b, 0x1a, 0x9f, 0x07, 0x2b, 0x0f, 0xd6, 0x0f, 0xda, 0x49, 0x1f, 0xdb, 0xa0, 0xa0, 0xc8, 0xdc, 0xf0, 0x15, 0xce, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0xcd, 0x3c, 0xc5, 0x6e, 0x50, 0x50, 0x64, 0x6e, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0xac, 0xe1, 0x92, 0x5a, 0xe3, 0xd0, 0xc6, 0xa1, 0x83, 0x66, 0x9e, 0x62, 0xdb, 0xf0, 0xb6, 0xce, 0xe0, 0xf0, 0xe0, 0xee, 0x41, 0xec, 0x05, 0x7d, 0xad, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0x1e, 0xae, 0x6c, 0x83, 0xd8, 0x25, 0xfc, 0x5a, 0xc3, 0x25, 0xb5, 0xc6, 0xf3, 0x83, 0x78, 0x28, 0xfc, 0xaa, 0x35, 0xbc, 0xad, 0x33, 0x78, 0x7c, 0x10, 0xcf, 0x85, 0x5f, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xef, 0xf6, 0x6c, 0xf0, 0x2a, 0xf2, 0x93, 0x35, 0x5c, 0x52, 0x6b, 0x3c, 0x3f, 0x68, 0xe6, 0x29, 0xb6, 0xd6, 0xf0, 0xb6, 0xce, 0x41, 0x3b, 0xe9, 0x63, 0xcd, 0x02, 0xaf, 0x07, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x06, 0xaf, 0x07, 0x37, 0x80, 0x4f, 0x9d, 0x5b, 0x1a, 0x1d, 0x08, 0x5d, 0x1d, 0x1c, 0x5b, 0xd9, 0x06, 0x85, 0x72, 0xe7, 0x1a, 0xfe, 0x5c, 0xda, 0x60, 0x81, 0x88, 0xe9, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0xa8, 0xb8, 0x1c, 0x2c, 0xea, 0x1a, 0xde, 0xa0, 0x84, 0xc7, 0xdc, 0x60, 0x79, 0x88, 0xe9, 0x06, 0xe1, 0xa9, 0xba, 0x41, 0x09, 0x8f, 0xb9, 0xc6, 0xf3, 0x83, 0xe5, 0x21, 0xa6, 0x6b, 0x78, 0x50, 0x72, 0x83, 0xc4, 0xd0, 0xab, 0x0d, 0x97, 0xd4, 0x1a, 0x84, 0x00, 0xf8, 0xc1, 0xf2, 0x10, 0xd3, 0x36, 0xfc, 0xe2, 0xb2, 0x41, 0x9c, 0x3d, 0x7e, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x22, 0x9f, 0xe6, 0x69, 0x0d, 0x97, 0xd4, 0x06, 0xf1, 0xef, 0xf8, 0x55, 0xad, 0xc0, 0xc3, 0x95, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0xc1, 0xc3, 0x95, 0x1d, 0x1c, 0x72, 0x20, 0x37, 0x28, 0x94, 0x3b, 0xd7, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0xda, 0x60, 0x5d, 0x93, 0xef, 0x41, 0x98, 0x8e, 0xad, 0xe1, 0xcf, 0xa5, 0x0d, 0x9a, 0xfb, 0xc6, 0x3d, 0x88, 0xd1, 0xaa, 0xaf, 0x36, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0x7e, 0xac, 0x6e, 0x0d, 0x0a, 0xe5, 0xce, 0x0d, 0xc2, 0x74, 0x6c, 0xc3, 0x2f, 0x2e, 0x1b, 0x2c, 0x0c, 0xf3, 0x3d, 0x38, 0x6d, 0xa1, 0xad, 0xe1, 0x6d, 0x9d, 0x0d, 0x9a, 0xfb, 0xc6, 0xad, 0xc3, 0x29, 0xd6, 0x02, 0xdf, 0x56, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x06, 0xdf, 0x56, 0x37, 0x80, 0x07, 0x9d, 0x5c, 0x5d, 0x19, 0x48, 0x9d, 0x5b, 0x1a, 0xdd, 0x06, 0x85, 0x72, 0xe7, 0x06, 0xb1, 0x4b, 0xf9, 0xb5, 0xe1, 0x17, 0xa5, 0x0d, 0x62, 0xc7, 0xe7, 0x6b, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x76, 0xd2, 0xc7, 0x36, 0x88, 0xc5, 0xbd, 0xaf, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0xc8, 0x20, 0x58, 0xc3, 0xbb, 0x3d, 0x1b, 0xc4, 0xda, 0xe5, 0xd7, 0x41, 0x54, 0x28, 0x7e, 0x6d, 0x70, 0x96, 0x02, 0x6b, 0x16, 0xf8, 0xb1, 0x7a, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0x32, 0xf8, 0xb1, 0xba, 0x01, 0x3c, 0xe8, 0xe4, 0xc2, 0xdc, 0xe6, 0xcc, 0xde, 0xe4, 0xda, 0x36, 0x28, 0x94, 0x3b, 0xd7, 0xf0, 0xb9, 0xd2, 0x06, 0xcb, 0x72, 0x7d, 0x0f, 0xe2, 0x96, 0xf2, 0x6b, 0xc3, 0x2f, 0x4a, 0x1b, 0xc4, 0x8e, 0xcf, 0xd7, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x64, 0x10, 0x6c, 0x10, 0x4d, 0x9c, 0x5f, 0x1b, 0x2c, 0x34, 0xf7, 0x6d, 0x16, 0x78, 0xb1, 0x7a, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0x32, 0x78, 0xb1, 0xba, 0x01, 0xbc, 0xc4, 0xde, 0xde, 0xd8, 0xca, 0xc2, 0xdc, 0x40, 0xdc, 0xde, 0xe8, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0xec, 0xf8, 0x7c, 0x6d, 0x50, 0xec, 0x68, 0xae, 0x41, 0x31, 0x89, 0xb9, 0x86, 0xcf, 0x95, 0x36, 0x58, 0x29, 0x8e, 0x78, 0x70, 0x88, 0xe9, 0x38, 0x68, 0x27, 0x7d, 0x6c, 0x83, 0x82, 0x22, 0x73, 0xc3, 0x2f, 0x2e, 0x1b, 0x14, 0x14, 0x99, 0x6b, 0xf8, 0xdc, 0x65, 0xf0, 0x7a, 0xc3, 0xdb, 0xac, 0x07, 0x51, 0x14, 0xf4, 0xd5, 0xe1, 0x14, 0x5b, 0xe0, 0xe7, 0xc2, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0xe0, 0xe7, 0xc2, 0x06, 0xf0, 0x9d, 0xa3, 0x93, 0x4b, 0x73, 0x3b, 0x03, 0x09, 0x9b, 0x03, 0xa1, 0x0b, 0x83, 0x2b, 0xdb, 0xf0, 0x8b, 0xd2, 0x06, 0xb1, 0xe3, 0xf3, 0xb5, 0x41, 0xb1, 0xa3, 0xb9, 0x41, 0x0c, 0xfd, 0x7c, 0x6d, 0x50, 0x50, 0x64, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0xb3, 0x14, 0xd8, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x19, 0xf6, 0xdb, 0x41, 0xec, 0x69, 0x7d, 0xb5, 0x02, 0xff, 0x06, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x06, 0xff, 0x06, 0x37, 0x00, 0x0f, 0x70, 0x61, 0x72, 0x73, 0x65, 0x20, 0x6b, 0x65, 0x79, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x6d, 0x61, 0x70, 0x1b, 0x14, 0xca, 0x9d, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x25, 0x45, 0xb6, 0x07, 0x71, 0x4b, 0xf9, 0xb5, 0x41, 0xd1, 0x69, 0xbc, 0x41, 0xfc, 0x56, 0x7e, 0xad, 0xe1, 0x17, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0x78, 0xb8, 0x41, 0xe8, 0x97, 0x6c, 0x10, 0x52, 0x26, 0x6b, 0x10, 0xfa, 0x25, 0x1b, 0x94, 0xde, 0xf4, 0x1b, 0x2c, 0xa9, 0xc6, 0x5d, 0x83, 0x00, 0x3a, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0x67, 0x43, 0x97, 0x35, 0x28, 0x04, 0x53, 0x37, 0xfc, 0x3b, 0xbf, 0x41, 0x84, 0x5e, 0x7e, 0x55, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x12, 0x62, 0xfd, 0xf0, 0xd0, 0xcf, 0x06, 0x27, 0xf6, 0x9b, 0x35, 0xbc, 0xad, 0x33, 0xf0, 0x63, 0x69, 0x1b, 0x2c, 0xa9, 0x4e, 0x5a, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0xe0, 0xdf, 0xda, 0x0e, 0xe2, 0xec, 0xf2, 0x6b, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0x70, 0x83, 0xd0, 0x2f, 0xd9, 0xa0, 0x44, 0xac, 0xdf, 0xe0, 0x04, 0x24, 0x7a, 0x10, 0xf9, 0xb1, 0x5f, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0xd0, 0x2f, 0xd9, 0xa0, 0x6c, 0xc2, 0x5c, 0x83, 0xd0, 0x2f, 0xd9, 0x20, 0xa4, 0x4c, 0xd6, 0x20, 0x80, 0xce, 0x36, 0xfc, 0xe2, 0xb2, 0xc1, 0x82, 0x6b, 0xdc, 0x0d, 0x22, 0x47, 0xf6, 0xab, 0xda, 0xe0, 0xc4, 0x7e, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0x5e, 0x8f, 0x6d, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x12, 0xa9, 0x7a, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x16, 0x81, 0x8c, 0x1e, 0x1c, 0x93, 0x2d, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0x36, 0x88, 0xf7, 0x94, 0xa7, 0x35, 0xfc, 0xb9, 0x34, 0xb8, 0x78, 0x10, 0xfd, 0xb1, 0x5f, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x6e, 0x69, 0xf4, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x6b, 0x00, 0xbb, 0xe1, 0x69, 0x9d, 0x83, 0xc5, 0x6f, 0xb6, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x3c, 0xf8, 0x94, 0x7d, 0x83, 0x82, 0x22, 0x73, 0xc3, 0xbb, 0x3d, 0x1b, 0x9c, 0xa5, 0xc0, 0xd6, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xd6, 0x19, 0xbc, 0x3e, 0x78, 0xf0, 0x29, 0xfb, 0xe1, 0x2d, 0xb4, 0x56, 0xe0, 0xc5, 0xde, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0xe0, 0xc5, 0xde, 0x0e, 0xde, 0x33, 0xb0, 0xb9, 0xe1, 0x17, 0xa5, 0x0d, 0x62, 0xc7, 0xe7, 0x6b, 0x83, 0x62, 0x47, 0x73, 0x83, 0x58, 0x24, 0xfd, 0xda, 0xa0, 0xa0, 0xc8, 0xdc, 0xf0, 0x8b, 0xcb, 0x06, 0x05, 0x45, 0xe6, 0x1a, 0x3e, 0x77, 0x19, 0xbc, 0x3e, 0x88, 0xa2, 0xa0, 0xaf, 0x56, 0xe0, 0xdf, 0xe8, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0xe0, 0xdf, 0xe8, 0x06, 0xf0, 0x7e, 0x13, 0x53, 0x2b, 0x1b, 0xa3, 0x03, 0x09, 0x9b, 0x03, 0xa1, 0xab, 0x83, 0x63, 0x2b, 0xdb, 0xa0, 0x50, 0xee, 0xdc, 0x20, 0xee, 0xfd, 0xbe, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0xec, 0xf8, 0x7c, 0x6d, 0x50, 0xec, 0x68, 0xae, 0x41, 0x31, 0x89, 0xb9, 0x86, 0xcf, 0x95, 0x36, 0x58, 0xa6, 0xc8, 0x7e, 0x70, 0x88, 0xe9, 0x38, 0x68, 0x27, 0x7d, 0x6c, 0x83, 0x82, 0x22, 0x73, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0x14, 0xd9, 0x9e, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0x33, 0xc0, 0xf7, 0x46, 0xd7, 0x22, 0x17, 0x76, 0x77, 0xd0, 0x5c, 0xcb, 0xf1, 0x41, 0xec, 0x69, 0x7d, 0x1d, 0x44, 0x5e, 0xd7, 0xd7, 0x2c, 0xf0, 0x6e, 0xef, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0x65, 0xf0, 0x6e, 0x6f, 0x03, 0xf8, 0xba, 0xd5, 0xb5, 0x89, 0x95, 0xc9, 0x81, 0x84, 0xcd, 0x81, 0x8c, 0xbd, 0xc9, 0x91, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0xd8, 0xf1, 0xf9, 0xda, 0xa0, 0xd8, 0xd1, 0xdc, 0x20, 0x92, 0xdf, 0xbe, 0x36, 0x28, 0x28, 0x32, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0x59, 0x0a, 0xec, 0x20, 0xf6, 0xb4, 0xbe, 0x66, 0x81, 0x97, 0x2b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x83, 0x05, 0x35, 0xf0, 0x03, 0xf0, 0x22, 0x57, 0x36, 0x56, 0x27, 0x37, 0x97, 0x66, 0x57, 0x06, 0x22, 0x57, 0x06, 0x17, 0x26, 0x37, 0x57, 0x26, 0x37, 0xb7, 0x41, 0xa1, 0xdc, 0xb9, 0x86, 0xcf, 0x95, 0x36, 0x58, 0xfa, 0x53, 0xbb, 0x86, 0x3f, 0x97, 0x36, 0x58, 0x78, 0x2a, 0xba, 0x41, 0x00, 0x9d, 0x6d, 0x70, 0x1e, 0xec, 0xd8, 0xf0, 0xb6, 0xce, 0x41, 0x74, 0x57, 0x7d, 0xb5, 0xe1, 0x17, 0xa5, 0x0d, 0x62, 0xc7, 0xe7, 0x6b, 0xc3, 0x5f, 0x34, 0x6b, 0x10, 0xfa, 0x25, 0x1b, 0x94, 0x4d, 0x98, 0x07, 0x4b, 0xb6, 0x6a, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0xba, 0x59, 0xd1, 0x83, 0xa8, 0x50, 0xfc, 0x3a, 0x9c, 0x62, 0xad, 0x41, 0xb4, 0x71, 0x7d, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x44, 0x1b, 0xd7, 0x57, 0x07, 0x11, 0x36, 0xf5, 0xb5, 0x41, 0xa1, 0xdc, 0xb9, 0x41, 0xa4, 0x52, 0x7d, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x6a, 0x6f, 0xec, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0x48, 0x99, 0x6c, 0xf0, 0x82, 0x7f, 0xcd, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x88, 0xd7, 0xac, 0xaf, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x0a, 0x43, 0xd5, 0x35, 0x28, 0xe1, 0x31, 0x17, 0xf0, 0xd4, 0xde, 0xd8, 0x36, 0x28, 0x28, 0x32, 0x37, 0xbc, 0xdb, 0xb3, 0x86, 0x4b, 0x6a, 0x8d, 0x43, 0x07, 0xf1, 0x9a, 0xf5, 0xd5, 0x1a, 0xde, 0xd6, 0x19, 0x3c, 0x3d, 0x88, 0x7c, 0xee, 0xaf, 0x36, 0xbc, 0xdb, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x88, 0x19, 0xae, 0xaf, 0x35, 0x5c, 0x52, 0x6b, 0x3c, 0x3f, 0x88, 0xd7, 0xac, 0xaf, 0x5a, 0x83, 0x12, 0x1e, 0x73, 0x83, 0xc8, 0xe7, 0xfe, 0xda, 0xa0, 0xa0, 0xc8, 0xdc, 0xf0, 0xb6, 0xce, 0xe0, 0xf4, 0x41, 0xe4, 0x73, 0x7f, 0xb5, 0x02, 0x4f, 0x96, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x06, 0x4f, 0x96, 0x36, 0x80, 0x7f, 0x5b, 0x1a, 0x1b, 0x5b, 0xda, 0x5c, 0xd9, 0xd8, 0x9b, 0x1b, 0x19, 0x08, 0x59, 0x18, 0x5d, 0xd9, 0x86, 0x77, 0x7b, 0x36, 0x88, 0xdf, 0xca, 0xaf, 0x35, 0x3c, 0x28, 0xb9, 0x86, 0xb7, 0x75, 0x36, 0x88, 0xb0, 0xec, 0xa7, 0x36, 0x3c, 0x28, 0xb9, 0x86, 0xb7, 0x75, 0x36, 0x88, 0xa9, 0x69, 0xa7, 0x36, 0xbc, 0xad, 0xb3, 0x41, 0xbc, 0xd8, 0x39, 0xb5, 0x86, 0xb7, 0x75, 0x06, 0xde, 0x2d, 0xad, 0xc3, 0x29, 0xb6, 0xc0, 0xeb, 0x85, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0xc1, 0xeb, 0x85, 0x0d, 0xe0, 0x6b, 0x56, 0xc7, 0xc6, 0x06, 0x52, 0xe7, 0x96, 0x46, 0x07, 0x02, 0xf7, 0xc6, 0x56, 0xb6, 0x41, 0xa1, 0xdc, 0xb9, 0x86, 0x3f, 0x97, 0x36, 0x58, 0xda, 0xc8, 0x79, 0x10, 0x3f, 0x8d, 0x5f, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x2c, 0x50, 0xe6, 0xdc, 0xa0, 0xc8, 0x69, 0xdd, 0xa0, 0x84, 0xc7, 0x5c, 0xe3, 0xd0, 0xc1, 0x02, 0x65, 0xce, 0x0d, 0x0a, 0xd8, 0xfc, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x07, 0x32, 0x4f, 0x6b, 0xb8, 0xa4, 0xd6, 0x78, 0x7e, 0xb0, 0x40, 0x99, 0xb3, 0x66, 0x0d, 0xe2, 0x71, 0xf9, 0x6b, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x20, 0x1e, 0x97, 0xbf, 0x3a, 0x88, 0x22, 0xe3, 0xaf, 0x0d, 0x0a, 0xe5, 0xce, 0x0d, 0xe2, 0xde, 0xef, 0x6b, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x53, 0x7b, 0x6b, 0x37, 0x08, 0xfd, 0x92, 0x0d, 0x4a, 0xc4, 0xfa, 0x0d, 0xce, 0xb3, 0xa3, 0x07, 0x71, 0xb5, 0xfd, 0xb5, 0x41, 0x09, 0x8f, 0xb9, 0x41, 0x33, 0x4f, 0xb1, 0x1b, 0x14, 0x14, 0x99, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x03, 0x1e, 0x5d, 0x99, 0xbb, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x4b, 0xde, 0x37, 0x28, 0xdc, 0x44, 0x37, 0x28, 0x9b, 0xea, 0xd7, 0xf0, 0xb6, 0xce, 0x80, 0xa7, 0xf6, 0xd6, 0xd6, 0x06, 0xb1, 0x4b, 0xf8, 0xd5, 0x86, 0x5f, 0x5c, 0xd6, 0xa0, 0x84, 0xc7, 0x5c, 0xc0, 0xa3, 0x2b, 0x73, 0xdb, 0xa0, 0xa0, 0xc8, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0xd1, 0x76, 0xf8, 0xb5, 0x86, 0xb7, 0x75, 0x06, 0xaf, 0x0f, 0xa2, 0x9f, 0xfe, 0xab, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x88, 0xaa, 0xe5, 0xaf, 0x83, 0x88, 0x4b, 0xfc, 0x3a, 0x88, 0xd2, 0xf9, 0xaf, 0x66, 0x81, 0x1f, 0x4b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x83, 0x1f, 0x4b, 0x3b, 0x38, 0xf6, 0x3b, 0x6e, 0x50, 0x28, 0x77, 0x6e, 0x10, 0x79, 0x9f, 0x5f, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0x76, 0x7c, 0xbe, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0xb3, 0x2f, 0xc7, 0x07, 0x71, 0x13, 0xfa, 0x75, 0x38, 0xc5, 0x16, 0xf8, 0xb7, 0x76, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0x32, 0xf8, 0xb7, 0xb6, 0x01, 0x3c, 0xdf, 0xc4, 0xd4, 0xca, 0xc6, 0xe8, 0x40, 0xc2, 0xe6, 0x40, 0xda, 0xc2, 0xe0, 0x36, 0x28, 0x94, 0x3b, 0x37, 0x88, 0x5d, 0xca, 0xaf, 0x0d, 0xbf, 0x28, 0x6d, 0x10, 0x3b, 0x3e, 0x5f, 0x1b, 0x14, 0x3b, 0x9a, 0x1b, 0xc4, 0x2a, 0xf2, 0xd7, 0x06, 0x05, 0x45, 0xe6, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0xc0, 0xeb, 0xb5, 0xad, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x4b, 0xde, 0x37, 0x48, 0xdc, 0xa8, 0xdd, 0xa0, 0x6c, 0xaa, 0x3f, 0x88, 0x3d, 0xad, 0xaf, 0x83, 0x38, 0xbb, 0xfc, 0x6a, 0x16, 0xf8, 0x30, 0x79, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x36, 0x68, 0x03, 0x6b, 0x6d, 0x00, 0xcf, 0x30, 0x39, 0xb9, 0xb0, 0x3c, 0x90, 0xb0, 0x39, 0x10, 0xb6, 0xb4, 0x39, 0xba, 0x0d, 0x0a, 0xe5, 0xce, 0x0d, 0x62, 0x97, 0xf2, 0x6b, 0xc3, 0x2f, 0x4a, 0x1b, 0xc4, 0x8e, 0xcf, 0xd7, 0x06, 0xc5, 0x8e, 0xe6, 0x06, 0xb1, 0x6f, 0xf5, 0xb5, 0x41, 0x41, 0x91, 0xb9, 0xc1, 0x89, 0xfd, 0x66, 0x83, 0xf8, 0xd1, 0xfd, 0xda, 0xf0, 0x15, 0xce, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0xb1, 0x17, 0xf4, 0xb5, 0x41, 0x41, 0x91, 0xb9, 0xe1, 0x17, 0x97, 0x35, 0x7c, 0xee, 0x32, 0x78, 0xba, 0xe1, 0xdd, 0x9e, 0x0d, 0x62, 0xed, 0xf2, 0x6b, 0x0d, 0x6f, 0xeb, 0x0c, 0x9e, 0x1e, 0xc4, 0x5e, 0xd0, 0x57, 0x6b, 0xf8, 0xdc, 0x65, 0x70, 0x7a, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0xd8, 0x0b, 0xfa, 0xda, 0xf0, 0xb6, 0xce, 0xe0, 0xf4, 0x41, 0xec, 0x05, 0x7d, 0xd5, 0x2c, 0xf0, 0x73, 0xef, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0x65, 0xf0, 0x73, 0x6f, 0x03, 0xf8, 0xce, 0xd1, 0xc9, 0xa5, 0xb9, 0x9d, 0x81, 0x84, 0xcd, 0x81, 0x8c, 0xbd, 0xc9, 0x91, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0xd8, 0xf1, 0xf9, 0xda, 0xa0, 0xd8, 0xd1, 0xdc, 0x20, 0x86, 0x7e, 0xbe, 0x0e, 0xa2, 0x02, 0xfa, 0x6b, 0x16, 0x78, 0xb2, 0x70, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0x32, 0x78, 0xb2, 0xb0, 0x01, 0xfe, 0x2a, 0xaa, 0x21, 0x10, 0xb2, 0x30, 0xba, 0xb2, 0x0d, 0xbf, 0x28, 0x6d, 0x10, 0x3b, 0x3e, 0x5f, 0x1b, 0x14, 0x3b, 0x9a, 0x1b, 0xc4, 0xd0, 0xcf, 0xd7, 0x06, 0x05, 0x45, 0xe6, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x64, 0x10, 0xac, 0xe1, 0xdd, 0x9e, 0x35, 0x3c, 0x28, 0xb9, 0x41, 0x23, 0x01, 0x13, 0x07, 0x51, 0x56, 0xfe, 0x75, 0x10, 0x7b, 0x5a, 0x5f, 0x6b, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x1e, 0xa4, 0x2d, 0x89, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0xa5, 0x53, 0xae, 0x87, 0x87, 0x7e, 0x9a, 0x05, 0x5e, 0xaf, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x0c, 0x5e, 0xaf, 0x6d, 0x00, 0x1e, 0xc6, 0xde, 0xd8, 0xd8, 0xc2, 0xe0, 0xe6, 0xca, 0x40, 0xea, 0xdc, 0xd2, 0xe8, 0x40, 0xda, 0xc2, 0xe0, 0x36, 0x28, 0x94, 0x3b, 0xd7, 0xf0, 0xe7, 0xd2, 0x06, 0xed, 0xc8, 0x1b, 0x6e, 0x10, 0xfa, 0x25, 0x1b, 0x94, 0x88, 0xf5, 0x1b, 0xac, 0xd7, 0x7a, 0x3e, 0x58, 0xd4, 0x35, 0xbc, 0xe1, 0x83, 0x9c, 0x35, 0xbc, 0xdb, 0xb3, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x25, 0xba, 0xf2, 0x06, 0x65, 0x53, 0xfd, 0x41, 0x73, 0x0d, 0x96, 0x6b, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0x3f, 0xd4, 0x6c, 0x70, 0xc2, 0x15, 0x68, 0x0d, 0x7f, 0x2e, 0x0d, 0x2e, 0x6e, 0x10, 0x40, 0x67, 0x07, 0x05, 0x6c, 0x7e, 0x1b, 0x7e, 0x25, 0xdb, 0xf0, 0x5e, 0xd0, 0x1a, 0x14, 0x93, 0x98, 0x1b, 0x84, 0xe0, 0xc3, 0xe1, 0xc1, 0x9d, 0xda, 0xa0, 0xa0, 0xc8, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0x67, 0x29, 0xb0, 0x35, 0xbc, 0xdb, 0xb3, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x89, 0x1b, 0xb5, 0x07, 0xf1, 0x92, 0x01, 0xb6, 0xc1, 0xd9, 0xd0, 0xa5, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x5b, 0x01, 0xbf, 0xcc, 0x4d, 0x6d, 0xde, 0x20, 0xf5, 0xa2, 0x78, 0x83, 0x92, 0x85, 0x7d, 0x96, 0x59, 0xc0, 0x77, 0xab, 0x6b, 0x13, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x22, 0x08, 0x04, 0xac, 0x01, 0xf8, 0x71, 0xab, 0x6b, 0x13, 0x2b, 0x93, 0x03, 0x31, 0x93, 0x7b, 0x6b, 0x03, 0xa9, 0x73, 0x9b, 0x4b, 0x3b, 0x73, 0x2b, 0x23, 0xdb, 0xf0, 0x8b, 0xd2, 0x06, 0xe7, 0x9b, 0x93, 0x0d, 0x7f, 0xd1, 0x6c, 0xf0, 0x82, 0x7f, 0xcd, 0x0d, 0x0a, 0x43, 0xd5, 0x0d, 0x8e, 0xcc, 0xaa, 0x1b, 0x3e, 0xc8, 0xd9, 0xf0, 0x6d, 0xce, 0x06, 0x8b, 0xe0, 0xdd, 0x36, 0x38, 0xb1, 0xdf, 0x6c, 0xb0, 0x1c, 0x59, 0x78, 0x83, 0x13, 0xfb, 0xcd, 0x06, 0x85, 0xc5, 0xf2, 0x86, 0xaf, 0x70, 0x36, 0xfc, 0x45, 0xb3, 0x86, 0x7f, 0xe7, 0x57, 0x1c, 0xe7, 0xe0, 0x98, 0x01, 0x5a, 0x1b, 0x3e, 0xc8, 0xd9, 0xf0, 0x6d, 0xce, 0x06, 0x05, 0x45, 0xe6, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x3f, 0x81, 0x36, 0x58, 0x04, 0xef, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x08, 0xbb, 0xdb, 0x0d, 0x4f, 0xeb, 0x1c, 0xa4, 0xbb, 0x56, 0xb5, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x86, 0x07, 0x77, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x28, 0xb0, 0x1e, 0x44, 0x54, 0x0a, 0x58, 0xad, 0x06, 0x07, 0xd3, 0xcf, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x83, 0xe9, 0x67, 0x03, 0xf8, 0xcf, 0xd1, 0xc9, 0xa5, 0xb9, 0x9d, 0x81, 0x98, 0xc9, 0xbd, 0xb5, 0x81, 0xc0, 0x85, 0xd1, 0xa1, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x6e, 0xf8, 0x77, 0x7e, 0xc5, 0xf1, 0xa0, 0x11, 0x76, 0xf2, 0xda, 0xf0, 0x17, 0xcd, 0x06, 0x2f, 0xf8, 0xd7, 0xdc, 0xf0, 0x8b, 0xcb, 0x06, 0x4b, 0xbf, 0x5e, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x2d, 0x52, 0x13, 0x1e, 0x1e, 0xfa, 0x69, 0x05, 0x78, 0xcc, 0xe4, 0xde, 0xdc, 0xc8, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xc8, 0x83, 0x01, 0x6b, 0x00, 0x7e, 0xde, 0xc4, 0xd4, 0xca, 0xc6, 0xe8, 0x40, 0xcc, 0xe4, 0xde, 0xda, 0x40, 0xd6, 0x5a, 0xec, 0x40, 0xe0, 0xc2, 0xd2, 0xe4, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xf0, 0xc1, 0x79, 0x76, 0x74, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x1f, 0xbc, 0xe0, 0x5f, 0xb3, 0x0d, 0x7f, 0xd1, 0x6c, 0xf0, 0x82, 0x7f, 0xcd, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x54, 0x1c, 0xd8, 0x1a, 0x7e, 0x71, 0xd9, 0x60, 0x91, 0x22, 0xde, 0x41, 0x59, 0xe6, 0xd9, 0xac, 0xc1, 0x31, 0x03, 0x74, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xe0, 0x98, 0x01, 0xda, 0x00, 0xfe, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x61, 0x70, 0x65, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0x9f, 0x4b, 0x83, 0x87, 0x07, 0xf1, 0x69, 0x02, 0xb6, 0xe1, 0x2f, 0x9a, 0x0d, 0x5e, 0xf0, 0xaf, 0xb9, 0xe1, 0x17, 0x97, 0x0d, 0x96, 0x7e, 0xbd, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0x23, 0x0b, 0x1f, 0x1e, 0xfa, 0x69, 0x35, 0x68, 0xb3, 0x77, 0x7c, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xa0, 0xcd, 0xde, 0xf1, 0x06, 0xf0, 0x6b, 0x9b, 0x03, 0xa1, 0x4b, 0x6b, 0x2b, 0x9b, 0xa3, 0x0b, 0x6b, 0x83, 0xdb, 0xf0, 0x8b, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0xdc, 0xf0, 0xef, 0xfc, 0x8a, 0xe3, 0x1c, 0xb4, 0xd9, 0x3b, 0x5e, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x44, 0x10, 0x08, 0x58, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x0f, 0x4a, 0xae, 0xe1, 0x6d, 0x9d, 0x01, 0xaf, 0xce, 0xad, 0xed, 0x20, 0xca, 0xca, 0xbf, 0x0e, 0x0f, 0xfd, 0x74, 0x38, 0xc5, 0x5a, 0x83, 0xe3, 0x3c, 0xe8, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0x71, 0x1e, 0xb4, 0x01, 0xf8, 0xa0, 0x0b, 0x73, 0x5b, 0x03, 0x09, 0x9b, 0x03, 0x99, 0xa3, 0x93, 0x4b, 0x73, 0x3b, 0x03, 0x09, 0x93, 0x93, 0xdb, 0xf0, 0x8b, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0xdc, 0xf0, 0xef, 0xfc, 0x8a, 0xe3, 0x1c, 0x1c, 0xe7, 0x41, 0x6b, 0xc3, 0x5f, 0x34, 0x1b, 0xbc, 0xe0, 0x5f, 0x73, 0xc3, 0x2f, 0x2e, 0x1b, 0x24, 0x39, 0x3c, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0xa4, 0xea, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x58, 0xfd, 0xad, 0xd5, 0x1a, 0x7e, 0x71, 0xd9, 0xf0, 0xe0, 0xcd, 0x06, 0xa9, 0x0a, 0xab, 0x1d, 0x1e, 0xfa, 0xd9, 0x20, 0x01, 0x76, 0xb8, 0x66, 0x0d, 0x16, 0x8d, 0x68, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x2c, 0x1a, 0xd1, 0x6e, 0x00, 0xaf, 0x39, 0x10, 0xba, 0xb4, 0xb6, 0xb2, 0x39, 0xba, 0xb0, 0x36, 0xb8, 0x0d, 0xbf, 0x28, 0x6d, 0x10, 0x03, 0x3e, 0x60, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0x7a, 0x7e, 0xc0, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0x1e, 0x94, 0x5c, 0xc3, 0xdb, 0x3a, 0x07, 0xad, 0x2f, 0xda, 0x1e, 0x44, 0x59, 0xf9, 0xd7, 0xe1, 0xa1, 0x9f, 0x56, 0x83, 0x47, 0x44, 0xce, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x3c, 0x22, 0x72, 0xae, 0x01, 0xf8, 0x79, 0x13, 0x53, 0x2b, 0x1b, 0xa3, 0x03, 0x31, 0x93, 0x7b, 0x6b, 0x03, 0x59, 0x6b, 0xb1, 0x03, 0x61, 0x4b, 0x9b, 0xa3, 0xdb, 0xf0, 0x8b, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0xdc, 0x20, 0xf4, 0x4b, 0x36, 0x08, 0x29, 0x93, 0x0d, 0xe2, 0x6f, 0x06, 0xac, 0x0d, 0x7f, 0xd1, 0x6c, 0xf0, 0x82, 0x7f, 0xcd, 0x0d, 0xbf, 0xb8, 0x6c, 0xd0, 0x54, 0x1c, 0xd8, 0x1a, 0xde, 0xed, 0x59, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x72, 0xe7, 0x7d, 0x83, 0xb2, 0xa9, 0x7e, 0x0d, 0x0a, 0xc1, 0xd4, 0x83, 0x28, 0x81, 0xff, 0xea, 0xf0, 0xd0, 0x4f, 0xab, 0x41, 0xd3, 0xd7, 0xe3, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0x4d, 0x5f, 0x8f, 0x37, 0x80, 0xff, 0x1c, 0x9d, 0x5c, 0x9a, 0xdb, 0x19, 0x88, 0x99, 0xdc, 0x5b, 0x1b, 0xc8, 0x1c, 0x5a, 0x1a, 0xdc, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xe1, 0x86, 0x7f, 0xe7, 0x57, 0x1c, 0xe7, 0xa0, 0xe9, 0xeb, 0xf1, 0xda, 0xf0, 0x17, 0xcd, 0x06, 0x2f, 0xf8, 0xd7, 0xdc, 0xf0, 0x8b, 0xcb, 0x06, 0x47, 0x66, 0xd5, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x5a, 0xc7, 0xb6, 0x0d, 0x8a, 0x4a, 0xf1, 0x0d, 0x16, 0xc4, 0xcd, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0x7c, 0xdc, 0x0d, 0xe2, 0xc6, 0x70, 0x6a, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x24, 0x37, 0x7d, 0x83, 0xe5, 0x6b, 0xaf, 0x87, 0x87, 0x7e, 0x3a, 0x68, 0xe3, 0x7a, 0xb0, 0xc3, 0x29, 0x56, 0x6b, 0x70, 0xda, 0x42, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x38, 0x6d, 0xa1, 0x36, 0x80, 0xff, 0x1c, 0x9d, 0x5c, 0x9a, 0xdb, 0x19, 0x88, 0x99, 0xdc, 0x5b, 0x1b, 0xc8, 0x5d, 0x18, 0x1b, 0xdb, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xe1, 0x86, 0x7f, 0xe7, 0x57, 0x1c, 0x0f, 0xda, 0x27, 0x28, 0xaf, 0x0d, 0x7f, 0xd1, 0x6c, 0xf0, 0x82, 0x7f, 0xcd, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x00, 0x3b, 0xbc, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x00, 0xef, 0x9b, 0x59, 0xcb, 0x5d, 0x18, 0x1b, 0xdb, 0xe1, 0xa1, 0x9f, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x5b, 0x0d, 0x62, 0x85, 0xee, 0x6b, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x20, 0x56, 0xe8, 0xbe, 0x1a, 0x80, 0x07, 0xb5, 0xb9, 0x37, 0x37, 0x10, 0xba, 0x37, 0x10, 0x39, 0x37, 0x10, 0xb8, 0x30, 0xb9, 0xb9, 0x32, 0xb9, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x56, 0xf7, 0xb2, 0xae, 0x41, 0x21, 0x98, 0x7a, 0xb0, 0xb0, 0x21, 0x76, 0x83, 0xf3, 0x60, 0xc7, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x51, 0x11, 0xba, 0xc1, 0x82, 0x5e, 0xd5, 0x0d, 0x16, 0x0c, 0xab, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x56, 0x54, 0x84, 0x6e, 0xb0, 0x46, 0x5b, 0x75, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x1e, 0x18, 0x74, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x76, 0x1c, 0x74, 0x83, 0xb5, 0x2f, 0xa4, 0x6b, 0x50, 0x74, 0x1a, 0x6f, 0xb0, 0xc4, 0x8e, 0x75, 0x0d, 0xbf, 0x28, 0x6d, 0xb0, 0x88, 0xa0, 0x6e, 0x83, 0x82, 0x34, 0x76, 0x70, 0x71, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xf2, 0x40, 0x76, 0xc3, 0xd3, 0x3a, 0x07, 0xeb, 0x10, 0x58, 0x37, 0x28, 0xe1, 0x31, 0x37, 0x7c, 0x1e, 0xb4, 0x41, 0x41, 0x91, 0xb9, 0xe1, 0xdd, 0x9e, 0x0d, 0xce, 0x52, 0x60, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x95, 0x92, 0xaa, 0x07, 0x47, 0xc4, 0x82, 0x0e, 0xd6, 0xdb, 0xab, 0x76, 0xb0, 0xa4, 0x5f, 0x75, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x1e, 0x18, 0x74, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x76, 0x1c, 0x74, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x0a, 0x3a, 0x74, 0x0d, 0xcf, 0xe2, 0x1d, 0x44, 0xf5, 0x5d, 0x51, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xf5, 0xc0, 0xa0, 0x1b, 0x2c, 0x3c, 0x56, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xc1, 0x09, 0xdd, 0xa0, 0xc8, 0x69, 0x3d, 0x58, 0x04, 0x60, 0x7a, 0xb0, 0xee, 0x59, 0x75, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x1e, 0x18, 0x74, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x76, 0x1c, 0x74, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x30, 0x99, 0xf4, 0x60, 0x41, 0xe8, 0xfc, 0xc1, 0x7a, 0x8d, 0xd5, 0x83, 0xf5, 0x1a, 0xab, 0x75, 0xb0, 0xac, 0x63, 0xb5, 0x0e, 0xa7, 0xd8, 0x02, 0xbc, 0x6f, 0x66, 0x2d, 0x77, 0x61, 0x69, 0xee, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x5c, 0xd6, 0x81, 0x35, 0x00, 0x0f, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x72, 0x64, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0x34, 0x4c, 0x50, 0x78, 0xf0, 0x54, 0xd3, 0xc5, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0x02, 0x12, 0xdd, 0xf0, 0x6e, 0xcf, 0x06, 0x6b, 0x1d, 0xdb, 0x36, 0x28, 0x2a, 0xc5, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x8f, 0xa7, 0x62, 0xdf, 0x60, 0x25, 0x36, 0xe9, 0x1a, 0xde, 0xd6, 0x39, 0x68, 0x96, 0xa0, 0xb0, 0x0e, 0xa7, 0xd8, 0x02, 0xbc, 0x74, 0x6f, 0x2d, 0x77, 0x61, 0x69, 0xee, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x1c, 0xf0, 0x81, 0x35, 0x00, 0x0f, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x1b, 0x94, 0x5d, 0xb2, 0x1b, 0x44, 0xcf, 0x65, 0xd1, 0x06, 0x6f, 0x16, 0x3e, 0x99, 0x0d, 0xbf, 0x28, 0x6d, 0xf0, 0x6e, 0x0a, 0x96, 0x0d, 0x7f, 0xd1, 0x6c, 0xf0, 0x54, 0xd3, 0xc5, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x56, 0x88, 0x9f, 0x6f, 0x50, 0x50, 0x64, 0x6e, 0x50, 0x90, 0xc6, 0xae, 0xe1, 0xfb, 0xf6, 0x0d, 0xca, 0xc2, 0xe2, 0x83, 0xe6, 0x5c, 0xc5, 0x37, 0x88, 0xd6, 0xf4, 0xa7, 0x0d, 0x0a, 0xd2, 0xd8, 0x0d, 0xc6, 0x38, 0xc5, 0x1a, 0x3e, 0xb1, 0xd9, 0xa0, 0x24, 0x9a, 0xdd, 0x70, 0x49, 0x6d, 0xf8, 0x72, 0x72, 0x0d, 0x0f, 0xee, 0x1c, 0x14, 0x95, 0xe2, 0x6b, 0xf8, 0x87, 0xe7, 0xf0, 0x98, 0xcc, 0x1a, 0x14, 0xf9, 0xb2, 0x07, 0xcb, 0xc0, 0xcf, 0xdb, 0xa0, 0x20, 0x8d, 0xdd, 0xd0, 0xe2, 0x63, 0xc3, 0xa7, 0x80, 0x1b, 0x94, 0xf6, 0x96, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0xf3, 0xa4, 0xca, 0x1a, 0xfe, 0x5c, 0xda, 0xa0, 0x34, 0xcb, 0x3e, 0x78, 0xaa, 0xe9, 0x62, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0xf5, 0xcb, 0x06, 0xc5, 0xd2, 0xf6, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0x15, 0xce, 0x86, 0xbf, 0x68, 0x36, 0x48, 0x07, 0x67, 0xdc, 0xf0, 0x41, 0xce, 0x1a, 0x7e, 0x25, 0x5b, 0xc3, 0xbf, 0x39, 0x1b, 0x94, 0xd1, 0xe7, 0x07, 0x85, 0x97, 0xf1, 0x1a, 0xfe, 0xcd, 0xd9, 0x20, 0xe5, 0xb5, 0x6a, 0xc3, 0xbb, 0x3d, 0x6b, 0xb8, 0xa4, 0x36, 0x28, 0xa4, 0x66, 0xd7, 0xf0, 0x79, 0xd0, 0x41, 0x19, 0x7d, 0x5e, 0x1d, 0x1c, 0xd7, 0x29, 0x36, 0x28, 0xfa, 0x74, 0x37, 0x28, 0xb1, 0xb6, 0xd7, 0x60, 0x49, 0x75, 0xd2, 0x06, 0xc5, 0xd2, 0xf6, 0x86, 0x77, 0x7b, 0xd6, 0x70, 0x49, 0x6d, 0x50, 0x48, 0xcd, 0x6e, 0x10, 0x89, 0x8b, 0x60, 0x6b, 0xf8, 0x87, 0x67, 0xc3, 0xbb, 0x3d, 0x1b, 0x3e, 0x05, 0xdc, 0x20, 0x85, 0x39, 0xea, 0xa0, 0x34, 0x43, 0xaf, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x0d, 0x52, 0x98, 0xa3, 0x0e, 0x0a, 0x2f, 0xe3, 0x0d, 0x1e, 0xb0, 0xac, 0xb2, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0x41, 0xb1, 0x7b, 0x7e, 0x90, 0xa0, 0x68, 0xd9, 0x2c, 0xe0, 0xad, 0xb1, 0xc9, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x81, 0xb7, 0xc6, 0x26, 0x37, 0x80, 0xff, 0x1c, 0x5d, 0x1e, 0xde, 0xcb, 0x1c, 0x5d, 0x9d, 0x18, 0x48, 0x99, 0xdb, 0x59, 0x9a, 0x5b, 0xd9, 0x06, 0xab, 0xb0, 0x9c, 0xd6, 0xf0, 0xb6, 0xce, 0xc1, 0x5b, 0xfe, 0xeb, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xbc, 0x35, 0x36, 0xb9, 0x0d, 0x4a, 0x16, 0xf6, 0x59, 0x66, 0x01, 0x3c, 0xd8, 0xdc, 0xe8, 0xe6, 0x5a, 0xc6, 0xd0, 0xc2, 0xe4, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x28, 0xaf, 0x04, 0x6b, 0x00, 0x1e, 0xe6, 0xe8, 0xea, 0xc4, 0x40, 0xe8, 0xca, 0xf0, 0xe8, 0x40, 0xd8, 0xca, 0xdc, 0xce, 0xe8, 0xd0, 0xe6, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x0f, 0x0f, 0x1e, 0x54, 0x92, 0xbb, 0xe1, 0x2f, 0x9a, 0x0d, 0xca, 0x39, 0xdb, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x4a, 0xa4, 0xea, 0x0d, 0x4f, 0xeb, 0x6c, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x6e, 0x10, 0xfa, 0x25, 0x1b, 0x94, 0xde, 0xf4, 0x1b, 0x3c, 0x48, 0x09, 0x76, 0x83, 0x03, 0xfd, 0x6b, 0x1b, 0xde, 0xed, 0xd9, 0x60, 0xa1, 0xe7, 0xe4, 0x41, 0x04, 0xb8, 0x35, 0xad, 0x06, 0xa1, 0x5f, 0xb2, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x1b, 0xb4, 0x50, 0x79, 0x3c, 0x80, 0xef, 0x1c, 0x5d, 0x9d, 0x18, 0x88, 0x99, 0xdc, 0x5b, 0x1b, 0xc8, 0x1c, 0x5d, 0x1e, 0xde, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xe1, 0xc1, 0xab, 0xbd, 0x2a, 0x37, 0xfc, 0x45, 0xb3, 0xc1, 0x83, 0x4a, 0x72, 0x37, 0x28, 0xed, 0x2d, 0xd7, 0xf0, 0xe7, 0xd2, 0xe0, 0xe2, 0xc1, 0x83, 0x94, 0x60, 0x37, 0x28, 0x3a, 0x8d, 0x37, 0x58, 0x38, 0x89, 0xbb, 0x86, 0xaf, 0x70, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0x83, 0x4a, 0x72, 0x37, 0x38, 0xb1, 0xdf, 0x6c, 0xd0, 0xa8, 0xfc, 0xdf, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x25, 0x52, 0xf5, 0x86, 0xa7, 0x75, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x0f, 0x37, 0x7c, 0x30, 0xbf, 0xc1, 0x79, 0x76, 0x74, 0x83, 0xd0, 0x2f, 0xd9, 0xa0, 0xf4, 0xa6, 0xdf, 0xe0, 0x59, 0x5b, 0x95, 0x1b, 0xbc, 0xda, 0xab, 0xb2, 0x0d, 0x0a, 0x82, 0xd9, 0x0d, 0x0f, 0xee, 0xac, 0xc1, 0xd1, 0x75, 0x70, 0x0d, 0xbf, 0xb8, 0x6c, 0x78, 0x2f, 0x68, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0xd6, 0xb9, 0xd5, 0x75, 0xb0, 0xce, 0xfa, 0xad, 0x36, 0x5c, 0x52, 0x1b, 0x1c, 0xf6, 0x3b, 0xd6, 0xf0, 0xe0, 0xce, 0x41, 0x8b, 0x73, 0xa9, 0x6b, 0xf8, 0x3c, 0x68, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x9f, 0xa3, 0xcb, 0x23, 0xdb, 0xa0, 0xd1, 0xb7, 0xd4, 0xc3, 0x5b, 0x68, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0x6d, 0x10, 0x01, 0x9b, 0x60, 0x6b, 0xf8, 0x73, 0x69, 0x70, 0xf1, 0xe0, 0x41, 0x25, 0xb9, 0x6d, 0x50, 0xc2, 0x63, 0x6e, 0xf8, 0x3c, 0x68, 0x83, 0x36, 0x02, 0x44, 0x37, 0x28, 0x76, 0x34, 0xd7, 0xf0, 0x6f, 0xce, 0x06, 0x8d, 0xbe, 0xa5, 0x1e, 0x94, 0x53, 0xd7, 0x1b, 0x94, 0x7c, 0xc1, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0x2f, 0x2e, 0x1b, 0x34, 0xfa, 0x96, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x11, 0xb4, 0x6d, 0xd0, 0xe2, 0x5c, 0xea, 0x41, 0x91, 0x77, 0xdd, 0x41, 0x7c, 0x9b, 0x36, 0xad, 0x06, 0xa5, 0xd7, 0xd7, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0x6d, 0x70, 0x4a, 0x13, 0x1c, 0xc0, 0x63, 0x8e, 0x2d, 0xec, 0x0c, 0x64, 0x8e, 0xae, 0x4e, 0x6c, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0xc3, 0x97, 0x4b, 0x07, 0x31, 0xb5, 0x0a, 0xb6, 0xe1, 0x2f, 0x9a, 0x0d, 0x1e, 0x54, 0x92, 0xbb, 0xe1, 0x83, 0x9c, 0x0d, 0xdf, 0xe6, 0x6c, 0x78, 0x2f, 0x68, 0x83, 0x12, 0x1e, 0x73, 0xc3, 0xe7, 0x41, 0x1b, 0x14, 0x14, 0x99, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x83, 0x8f, 0x1b, 0xde, 0xed, 0xd9, 0x60, 0xa1, 0xe7, 0xe4, 0x41, 0x91, 0x77, 0xbd, 0xe1, 0x83, 0x9c, 0x35, 0xfc, 0x9b, 0xb3, 0xe1, 0xe9, 0x9d, 0xc3, 0xd3, 0x3a, 0x1b, 0x14, 0xe1, 0xa7, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0xbe, 0x51, 0x3c, 0x7c, 0xe3, 0xb7, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xe5, 0xd4, 0xf5, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x8b, 0xe3, 0x1c, 0x94, 0x5e, 0x5f, 0x6d, 0x78, 0x5a, 0xe7, 0xa0, 0xc8, 0xbb, 0xee, 0x20, 0xbe, 0x4d, 0x9b, 0x36, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x3c, 0xb8, 0xb3, 0xe1, 0xdd, 0x9e, 0x0d, 0x9f, 0x02, 0x1e, 0x14, 0xbe, 0xba, 0x07, 0x45, 0xd2, 0xed, 0x6a, 0xf0, 0x08, 0xd1, 0xe3, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x47, 0x88, 0x1e, 0x37, 0x80, 0xdf, 0x9b, 0x5d, 0x99, 0x1c, 0x5b, 0x58, 0x1e, 0xc8, 0x1c, 0x5d, 0x9d, 0xd8, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x06, 0xf1, 0x8f, 0x09, 0xb6, 0xe1, 0x79, 0xa6, 0x35, 0xfc, 0xb9, 0x34, 0xf8, 0x78, 0xf0, 0xa0, 0x92, 0xdc, 0x35, 0xfc, 0xb9, 0x34, 0x38, 0x79, 0x70, 0x1c, 0x80, 0x6d, 0xc3, 0x5f, 0x34, 0x1b, 0x3c, 0xa8, 0x24, 0x77, 0x83, 0x24, 0x03, 0xc2, 0x0d, 0x4e, 0x04, 0x6d, 0x1b, 0x9c, 0x1d, 0x04, 0xd7, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xbc, 0xdc, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0x19, 0xc0, 0x83, 0xad, 0xcc, 0x8d, 0xae, 0x65, 0x0c, 0x2d, 0x4c, 0xee, 0xf0, 0xd0, 0xcf, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x2f, 0x7e, 0x0f, 0x8e, 0x02, 0x18, 0x1b, 0x14, 0x14, 0x99, 0x1b, 0x1c, 0x5d, 0x07, 0xd7, 0xf0, 0x8b, 0xcb, 0x1a, 0x14, 0x82, 0xa9, 0x07, 0x0f, 0x52, 0x82, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x9c, 0x64, 0xda, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x4f, 0x01, 0x0f, 0x8e, 0x02, 0x18, 0x07, 0xa5, 0xba, 0x6c, 0x6d, 0x78, 0x7a, 0x67, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0x7a, 0x8b, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0xfe, 0x04, 0xda, 0xf0, 0x5e, 0xd0, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0xa6, 0x83, 0xc1, 0x0e, 0xbf, 0x08, 0x75, 0x78, 0xe8, 0xa7, 0xc3, 0x29, 0xd6, 0x02, 0xbe, 0x98, 0x5c, 0xd9, 0xba, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x10, 0x07, 0xc9, 0x60, 0x0d, 0xc0, 0x4b, 0x9a, 0x1b, 0x59, 0x19, 0x1e, 0xc8, 0x0a, 0x48, 0x9a, 0xdb, 0x18, 0x5b, 0x0b, 0x5b, 0x99, 0x1b, 0xc8, 0x9b, 0xd9, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xc4, 0xfb, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0x8f, 0x39, 0xba, 0x3a, 0x31, 0x10, 0xb8, 0xb0, 0x34, 0x39, 0x90, 0xbb, 0x17, 0x90, 0x34, 0x32, 0x3c, 0x90, 0xb0, 0x83, 0x28, 0xd0, 0x81, 0xda, 0xa0, 0xb4, 0xb7, 0x5c, 0xc3, 0xe7, 0x4a, 0x1b, 0x14, 0x80, 0xb1, 0x07, 0xa7, 0x49, 0x95, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x8b, 0x66, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0xb2, 0x09, 0xf3, 0x20, 0x2e, 0x2d, 0xa3, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x7c, 0x1e, 0xb4, 0x41, 0x41, 0x91, 0xb9, 0x41, 0xd1, 0xa7, 0xbb, 0xe1, 0x1f, 0x9e, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x4f, 0xa0, 0x0d, 0x4f, 0xef, 0x1c, 0x14, 0x3e, 0xa8, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0x61, 0x2b, 0x1d, 0xbe, 0xf1, 0x5b, 0x83, 0x63, 0xb8, 0xc1, 0x86, 0x5f, 0x5c, 0x36, 0x28, 0xa3, 0xcf, 0x0f, 0xbf, 0x08, 0x1d, 0x14, 0xa2, 0xe7, 0xab, 0x41, 0x04, 0xa7, 0x82, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x44, 0x70, 0x2a, 0x58, 0x03, 0xf8, 0xce, 0xd1, 0xe5, 0x95, 0x81, 0x98, 0xc9, 0xbd, 0xb5, 0x81, 0xcc, 0xd1, 0xe5, 0xb1, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xc3, 0x83, 0x67, 0x6d, 0x55, 0x6e, 0x10, 0xb9, 0xa0, 0x60, 0x6d, 0xf8, 0xfa, 0x65, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0xfc, 0xef, 0xd2, 0xe8, 0xd0, 0x40, 0xd2, 0xdc, 0xd0, 0xca, 0xe4, 0xd2, 0xe8, 0xc2, 0xdc, 0xc6, 0xca, 0x0e, 0xef, 0x05, 0x6d, 0x70, 0xce, 0x5f, 0x5a, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x96, 0xeb, 0x40, 0x37, 0x28, 0x75, 0x45, 0x37, 0x28, 0xe1, 0x31, 0x17, 0xbc, 0x3e, 0x68, 0xb9, 0x0e, 0x74, 0x83, 0x82, 0x22, 0x73, 0xc3, 0xbb, 0x3d, 0x6b, 0x50, 0x96, 0xbc, 0x6f, 0x50, 0xb6, 0xa0, 0x6e, 0x50, 0x36, 0xbd, 0x1f, 0xb4, 0x3a, 0xd0, 0xbb, 0x86, 0xb7, 0x75, 0x0e, 0x22, 0x67, 0x1b, 0xac, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x31, 0x76, 0x6c, 0x0d, 0x6f, 0xeb, 0x0c, 0x0e, 0x1f, 0x34, 0x46, 0x97, 0xba, 0x86, 0xb7, 0x75, 0x06, 0x87, 0x0f, 0x8a, 0x7d, 0xd1, 0x36, 0xbc, 0xdb, 0xb3, 0xc1, 0x31, 0x76, 0x6c, 0x0d, 0x6f, 0xeb, 0x0c, 0x1e, 0x1f, 0x34, 0x46, 0x97, 0xba, 0x86, 0xb7, 0x75, 0x06, 0x8f, 0x0f, 0x8a, 0x7d, 0xd1, 0x66, 0x0d, 0x8e, 0x50, 0x88, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0xc1, 0x11, 0x0d, 0x71, 0x00, 0x8f, 0xb9, 0xbb, 0xb0, 0x33, 0x90, 0x39, 0xba, 0x3a, 0xb1, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0x7f, 0x2b, 0x6d, 0x10, 0x85, 0xbe, 0x60, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x83, 0x85, 0xe0, 0x86, 0xf7, 0x82, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xa7, 0xb7, 0xb8, 0x83, 0xc2, 0x57, 0xb7, 0xc3, 0x29, 0xb6, 0x06, 0xd1, 0x20, 0x0c, 0xb6, 0xe1, 0x17, 0xa5, 0x0d, 0xe2, 0x1f, 0x13, 0x6c, 0xc3, 0x5f, 0x34, 0x1b, 0x7e, 0xa8, 0xd9, 0xf0, 0x6e, 0xcf, 0x06, 0x4b, 0x25, 0x09, 0xd7, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0xca, 0x2b, 0xc1, 0x3a, 0x3c, 0xf4, 0xb3, 0xe1, 0x4f, 0xa0, 0x56, 0x83, 0x42, 0xa9, 0x6d, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x36, 0x38, 0xa2, 0x40, 0x0e, 0xe0, 0x31, 0x37, 0x16, 0x76, 0x06, 0x32, 0x47, 0x57, 0x27, 0xb6, 0xe1, 0x17, 0xa5, 0x0d, 0xe2, 0x3a, 0x16, 0x6c, 0xc3, 0x5f, 0x34, 0x1b, 0x3c, 0xa8, 0x24, 0x77, 0xc3, 0x07, 0x39, 0x1b, 0xbe, 0xcd, 0xd9, 0xa0, 0xa0, 0xc8, 0xdc, 0xa0, 0x84, 0xc7, 0xdc, 0xf0, 0x79, 0xd0, 0x06, 0x05, 0x45, 0xe6, 0x86, 0x4f, 0x6c, 0x36, 0x88, 0x4e, 0x5a, 0xb0, 0x0d, 0x1f, 0xe4, 0x6c, 0x10, 0xfd, 0xb6, 0x60, 0x6b, 0x70, 0x74, 0x1d, 0x5c, 0xc3, 0x2f, 0x2e, 0x1b, 0x94, 0x53, 0xd7, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x2c, 0x8e, 0x73, 0x50, 0x28, 0xb5, 0x75, 0x10, 0x27, 0xb9, 0x60, 0xb5, 0x41, 0x61, 0xa8, 0xba, 0x41, 0xf1, 0x83, 0x7a, 0x10, 0xe5, 0xb9, 0x60, 0x87, 0x53, 0xac, 0x35, 0x78, 0x98, 0xff, 0xdd, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0xc3, 0xfc, 0xef, 0x1a, 0xc0, 0x73, 0xec, 0xcd, 0x8d, 0xac, 0xcc, 0x6d, 0xae, 0x0c, 0x64, 0x8e, 0xae, 0x4e, 0x6c, 0xc3, 0x2f, 0x4a, 0x1b, 0xc4, 0x3f, 0x26, 0xd8, 0x86, 0xbf, 0x68, 0x36, 0x78, 0x50, 0x49, 0xee, 0x06, 0x25, 0x3c, 0xe6, 0x86, 0x07, 0x77, 0x36, 0x28, 0x28, 0x32, 0x37, 0x28, 0xe1, 0x31, 0x37, 0x28, 0x46, 0xe4, 0x37, 0x3c, 0xad, 0xb3, 0x41, 0xb1, 0xa3, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x68, 0xd9, 0x61, 0x75, 0xc3, 0xdb, 0x3a, 0x83, 0xc3, 0x83, 0xa7, 0x07, 0xc5, 0x88, 0xfc, 0x06, 0x07, 0xa6, 0xc4, 0x0d, 0x8a, 0x3e, 0xdd, 0x05, 0x8f, 0x0f, 0x62, 0xba, 0x1e, 0x6c, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0x22, 0x68, 0xdb, 0x60, 0xcd, 0xaf, 0xeb, 0x1a, 0xde, 0xd6, 0x39, 0x88, 0x5a, 0x7b, 0xb0, 0x0e, 0x0a, 0xf8, 0xf8, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x56, 0x83, 0x18, 0x06, 0x03, 0xdb, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x88, 0x61, 0x30, 0xb0, 0x06, 0xe0, 0x81, 0x2d, 0xcd, 0xad, 0x0c, 0x84, 0x2d, 0x6d, 0x8e, 0x0e, 0x84, 0xee, 0x0d, 0x84, 0x2e, 0x0c, 0xae, 0x6c, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0xf0, 0x60, 0xa1, 0x05, 0xfc, 0x86, 0xbf, 0x68, 0x36, 0x38, 0xe9, 0x89, 0x6e, 0x50, 0xc2, 0x63, 0x6e, 0x78, 0x70, 0x67, 0x83, 0x82, 0x22, 0x73, 0xc3, 0xb3, 0x78, 0xcb, 0x86, 0x5f, 0x5c, 0x0e, 0x0e, 0xa1, 0x7e, 0x83, 0x68, 0xd9, 0xf0, 0x8b, 0xcb, 0xc1, 0x59, 0x2b, 0xb1, 0x59, 0x83, 0x48, 0x97, 0x79, 0xda, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x88, 0x74, 0x99, 0xa7, 0x06, 0xf0, 0x54, 0x9b, 0x7b, 0x73, 0x03, 0x91, 0x2b, 0x83, 0x0b, 0x93, 0x9b, 0x2b, 0x93, 0xdb, 0xa0, 0x94, 0x10, 0x5f, 0x83, 0x92, 0x85, 0x7d, 0x96, 0x59, 0x83, 0x27, 0x3f, 0x6b, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0x08, 0xb8, 0xf9, 0x3a, 0x08, 0xd3, 0xb1, 0x83, 0x68, 0xbf, 0xf9, 0x3a, 0x9c, 0x62, 0x1b, 0x94, 0x2c, 0xec, 0xb3, 0xcc, 0x02, 0x3f, 0x57, 0x6f, 0x78, 0x9e, 0x64, 0x83, 0xe8, 0xe0, 0xf9, 0xda, 0xa0, 0x50, 0xee, 0xdc, 0x60, 0x85, 0x65, 0xec, 0x86, 0x5f, 0x94, 0x36, 0x88, 0x1d, 0x9f, 0xaf, 0x0d, 0x5f, 0xbf, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x56, 0x63, 0xe3, 0x6e, 0xd0, 0xde, 0x9e, 0x67, 0x1b, 0x14, 0x7c, 0x98, 0x1b, 0xc4, 0xd0, 0xcf, 0xd7, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xb0, 0x83, 0x7e, 0x10, 0x41, 0x41, 0x5f, 0x2b, 0xf0, 0x6f, 0xea, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0x65, 0xf0, 0x6f, 0x6a, 0x03, 0x78, 0xbe, 0x89, 0xa9, 0x95, 0x8d, 0xd1, 0x81, 0x84, 0xcd, 0x81, 0xa8, 0xd5, 0x9d, 0x6d, 0x50, 0x28, 0x77, 0xae, 0xe1, 0xcf, 0xa5, 0x0d, 0xa2, 0xff, 0xe6, 0xeb, 0x20, 0x46, 0xab, 0xbe, 0x36, 0xfc, 0x45, 0xb3, 0x06, 0xe1, 0x34, 0xb6, 0xc1, 0x0b, 0xfe, 0x35, 0x37, 0x08, 0xfd, 0x92, 0x0d, 0xde, 0x4d, 0x35, 0xb9, 0xc1, 0x09, 0x48, 0x74, 0x0d, 0x02, 0xe8, 0x6c, 0xc3, 0xbb, 0x3d, 0x1b, 0x44, 0x46, 0xf5, 0xd7, 0x1a, 0x14, 0x82, 0xa9, 0x07, 0x2f, 0xf8, 0xd7, 0xac, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x67, 0xb5, 0x5f, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xb8, 0xe8, 0xd6, 0xda, 0x20, 0x32, 0xaa, 0xbf, 0x6a, 0x05, 0x3e, 0x8c, 0xde, 0xf0, 0x3c, 0xc9, 0x06, 0xd1, 0x2e, 0xf5, 0xb5, 0x41, 0xa1, 0xdc, 0xb9, 0x41, 0xa4, 0x52, 0x7d, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0xd8, 0xf1, 0xf9, 0xda, 0xa0, 0xe0, 0xc3, 0xdc, 0x20, 0xf6, 0xad, 0xbe, 0x0e, 0xe2, 0x77, 0xeb, 0x6b, 0x05, 0xfe, 0xad, 0xde, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x0c, 0xfe, 0xad, 0x6e, 0x00, 0xef, 0x37, 0x31, 0xb5, 0xb2, 0x31, 0x3a, 0x90, 0x37, 0x33, 0x90, 0x3a, 0xb7, 0x34, 0xba, 0xb9, 0x0d, 0x0a, 0xe5, 0xce, 0x0d, 0xe2, 0xde, 0xef, 0x6b, 0xc3, 0x2f, 0x4a, 0x1b, 0xc4, 0x8e, 0xcf, 0xd7, 0x06, 0x05, 0x1f, 0xe6, 0x06, 0xb1, 0x8a, 0xfc, 0xb5, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0xf8, 0xde, 0xea, 0x5a, 0xe4, 0xc2, 0xee, 0x0e, 0x9a, 0x6b, 0x39, 0x3e, 0x88, 0x3d, 0xad, 0xaf, 0xd9, 0x20, 0x12, 0xc0, 0xbe, 0x56, 0xe0, 0xe7, 0xca, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0xe0, 0xe7, 0xca, 0x06, 0xf0, 0x9d, 0xa3, 0x93, 0x4b, 0x73, 0x3b, 0x03, 0x09, 0x9b, 0x03, 0x09, 0xab, 0x93, 0x0b, 0xdb, 0xf0, 0x8b, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xc2, 0xea, 0xe4, 0x83, 0xf3, 0xe6, 0xe9, 0x86, 0x5f, 0x94, 0x36, 0x88, 0x1d, 0x9f, 0xaf, 0x0d, 0x0a, 0x3e, 0xcc, 0x0d, 0x62, 0xe8, 0xe7, 0x6b, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x55, 0x35, 0xeb, 0x6d, 0xf0, 0x30, 0xb9, 0xe8, 0x83, 0xd8, 0xd3, 0xfa, 0x5a, 0x81, 0x77, 0x2b, 0x37, 0x3c, 0x4f, 0xb2, 0x41, 0x84, 0xb1, 0x7d, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0xd8, 0xf1, 0xf9, 0xda, 0xf0, 0x17, 0xcd, 0x06, 0xa7, 0x97, 0xd7, 0x0d, 0x0a, 0x3e, 0xcc, 0x0d, 0x22, 0xf9, 0xed, 0x6b, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xd8, 0x41, 0x3f, 0x88, 0xa6, 0xb8, 0xaf, 0xc3, 0x29, 0xd6, 0x02, 0xef, 0x96, 0x6e, 0x78, 0x9e, 0x64, 0x83, 0xf8, 0xaa, 0xfb, 0xda, 0xf0, 0x8b, 0xd2, 0x06, 0xb1, 0xe3, 0xf3, 0xb5, 0x41, 0xc1, 0x87, 0xb9, 0x41, 0x24, 0xbf, 0x7d, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x05, 0x3b, 0xe8, 0x07, 0xb1, 0x90, 0xf7, 0x75, 0x38, 0xc5, 0x16, 0xf8, 0xb6, 0x7a, 0xc3, 0xf3, 0x24, 0x1b, 0x44, 0x24, 0xe6, 0xd7, 0x06, 0x85, 0x72, 0xe7, 0x06, 0xb1, 0x4b, 0xf9, 0xb5, 0xe1, 0x17, 0xa5, 0x0d, 0x62, 0xc7, 0xe7, 0x6b, 0x83, 0x12, 0x1e, 0x73, 0x83, 0x76, 0xd2, 0xc7, 0x36, 0x28, 0x28, 0x32, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0x59, 0x0a, 0x6c, 0x83, 0x68, 0xe2, 0xfc, 0x6a, 0x05, 0xbe, 0x8e, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x0c, 0xbe, 0x8e, 0xed, 0xe0, 0xfd, 0xe9, 0x9a, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0x76, 0x7c, 0xbe, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x68, 0x27, 0x7d, 0x6c, 0x83, 0x82, 0x22, 0xf3, 0x20, 0x3c, 0x55, 0x57, 0xe0, 0xeb, 0xcc, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0xe0, 0xeb, 0xcc, 0x06, 0xf0, 0xa8, 0x73, 0x4b, 0xa3, 0x03, 0x31, 0x0b, 0x63, 0x63, 0xdb, 0xa0, 0x50, 0xee, 0x5c, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x06, 0xef, 0xa3, 0x0f, 0xc2, 0x74, 0xec, 0x20, 0x6e, 0x29, 0xbf, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x36, 0x68, 0x56, 0x7b, 0x6c, 0x83, 0xd0, 0x2f, 0xd9, 0xa0, 0x6c, 0xc2, 0x3c, 0x88, 0xab, 0xed, 0xaf, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0xda, 0x49, 0x1f, 0xdb, 0xa0, 0xf5, 0x39, 0xec, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x6b, 0x97, 0x5f, 0x6b, 0x78, 0x5b, 0xe7, 0xa0, 0x8d, 0xf6, 0xb1, 0x0e, 0xa7, 0xd8, 0x02, 0xff, 0x66, 0x6e, 0x78, 0x9e, 0x64, 0x83, 0xa8, 0xe7, 0xfb, 0xda, 0xa0, 0x50, 0xee, 0xdc, 0x20, 0xee, 0xfd, 0xbe, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0xec, 0xf8, 0x7c, 0x6d, 0x50, 0xf0, 0x61, 0x6e, 0x10, 0x7b, 0x81, 0x5f, 0x1b, 0xbe, 0xc2, 0xd9, 0x20, 0x48, 0x4f, 0x37, 0x68, 0xe6, 0x29, 0x76, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0x45, 0xeb, 0xc9, 0xc1, 0x79, 0x76, 0xf4, 0xe0, 0x10, 0xd3, 0xb1, 0x86, 0x3f, 0x97, 0x06, 0xa7, 0x0f, 0xc2, 0x74, 0xac, 0x0d, 0x4a, 0x09, 0xf1, 0x35, 0x5c, 0x52, 0x1b, 0x14, 0x35, 0xe2, 0x6b, 0xd0, 0xcc, 0x53, 0xec, 0x86, 0xcf, 0x5d, 0xd6, 0x30, 0x71, 0x6b, 0x98, 0xb8, 0x0d, 0xc2, 0x74, 0xec, 0xa0, 0xb9, 0x6f, 0xdc, 0x83, 0x30, 0x1d, 0x3b, 0x68, 0xcb, 0x29, 0xb6, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xd1, 0x7a, 0x72, 0xd0, 0xcc, 0x53, 0xec, 0x41, 0xe4, 0x15, 0x7e, 0xad, 0xe1, 0x17, 0x97, 0x0d, 0xa2, 0xfe, 0x26, 0x6c, 0x0d, 0x96, 0xd4, 0x2f, 0xad, 0x86, 0x37, 0xee, 0x36, 0xbc, 0x7c, 0x77, 0x50, 0xb4, 0x9e, 0x1c, 0x44, 0xfd, 0x4d, 0xd8, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0xcd, 0x7d, 0xe3, 0x1e, 0x34, 0xf3, 0x14, 0x7b, 0x10, 0x11, 0x88, 0x5f, 0x6d, 0x50, 0xc2, 0x63, 0x2e, 0x38, 0x7d, 0xd0, 0xcc, 0x53, 0xec, 0x1a, 0x2c, 0xa9, 0x5f, 0x5a, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0xee, 0x20, 0x32, 0xef, 0x8b, 0x0e, 0x22, 0xaf, 0xf0, 0xeb, 0x20, 0x3c, 0x55, 0x37, 0xbc, 0xdb, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x78, 0x15, 0xf9, 0xc9, 0x1a, 0xde, 0xd6, 0x39, 0x88, 0x25, 0x9e, 0xb0, 0x0e, 0xa2, 0x42, 0xf1, 0xab, 0x83, 0xb8, 0x54, 0xfc, 0x5a, 0xe0, 0xc7, 0xea, 0x0d, 0xcf, 0x93, 0x6c, 0x10, 0xd7, 0x9d, 0x5f, 0x1b, 0x14, 0xca, 0x9d, 0x1b, 0x44, 0xde, 0xe7, 0xd7, 0x86, 0x5f, 0x94, 0x36, 0x88, 0x1d, 0x9f, 0xaf, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xd0, 0xdc, 0xf7, 0x20, 0xba, 0x4b, 0xc2, 0x0e, 0xa7, 0xd8, 0x02, 0xef, 0x56, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x06, 0xef, 0x56, 0x37, 0x00, 0x2f, 0x70, 0x61, 0x72, 0x73, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x61, 0x73, 0x20, 0x68, 0x65, 0x78, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0x76, 0x7c, 0xbe, 0x36, 0x28, 0xf8, 0x30, 0x37, 0x88, 0xa1, 0x9f, 0xaf, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x60, 0x07, 0x7d, 0x83, 0x28, 0x0a, 0xfa, 0x3a, 0x58, 0x9d, 0x7f, 0xbf, 0x02, 0x2f, 0x56, 0x6f, 0x78, 0x9e, 0x64, 0x83, 0x38, 0x12, 0xfd, 0xda, 0xf0, 0x8b, 0xd2, 0x06, 0xb1, 0xe3, 0xf3, 0xb5, 0x41, 0xc1, 0x87, 0xb9, 0x41, 0x2c, 0x92, 0x7e, 0x1d, 0x44, 0xb7, 0xe9, 0xd7, 0xe1, 0x14, 0x5b, 0xe0, 0xe1, 0xc2, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0xe0, 0xe1, 0xc2, 0x06, 0xf0, 0x9d, 0xa3, 0x93, 0x4b, 0x73, 0x3b, 0x03, 0x09, 0x9b, 0x03, 0x81, 0x0b, 0xa3, 0x43, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0x11, 0x1f, 0x3a, 0x75, 0xb0, 0x64, 0x08, 0xfd, 0x70, 0x8a, 0x2d, 0xf0, 0x73, 0xe1, 0x86, 0xe7, 0x49, 0x36, 0x88, 0xfd, 0xd3, 0xaf, 0x0d, 0xbf, 0x28, 0x6d, 0x10, 0x3b, 0x3e, 0x5f, 0x1b, 0x14, 0x7c, 0x98, 0x1b, 0xc4, 0xd0, 0xcf, 0xd7, 0x41, 0xcc, 0xad, 0x7e, 0xad, 0xc0, 0xbf, 0xc1, 0x1b, 0x9e, 0x27, 0xd9, 0x20, 0x62, 0x59, 0xbf, 0x36, 0x28, 0x94, 0x3b, 0x37, 0x88, 0x6b, 0xd7, 0xaf, 0x0d, 0xbf, 0x28, 0x6d, 0x10, 0x3b, 0x3e, 0x5f, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0xd0, 0x2f, 0xd9, 0xa0, 0x44, 0xac, 0xdf, 0x60, 0x49, 0x35, 0xee, 0x1a, 0x04, 0xd0, 0xd9, 0x41, 0xd4, 0xca, 0x7e, 0xb5, 0x41, 0x41, 0x1a, 0x3b, 0xe0, 0xa9, 0xbd, 0xb5, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x68, 0xa9, 0xfd, 0x3a, 0x88, 0x0a, 0xc5, 0xaf, 0x0d, 0x4e, 0xec, 0x37, 0x1b, 0x34, 0xd4, 0xfa, 0xba, 0x41, 0xd1, 0x69, 0xbc, 0x41, 0x89, 0x54, 0xbd, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x8b, 0x40, 0x46, 0x0f, 0xa2, 0x6c, 0xfe, 0x6b, 0x83, 0x42, 0xb9, 0x73, 0x0d, 0x9f, 0x2b, 0x6d, 0x10, 0xef, 0x29, 0x4f, 0x07, 0xe5, 0x38, 0xfe, 0x06, 0xa5, 0x84, 0xf8, 0x06, 0x71, 0xde, 0xea, 0xb4, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x82, 0x1d, 0xf4, 0x83, 0x58, 0xf4, 0xfd, 0x3a, 0xbc, 0x85, 0xb6, 0x02, 0x2f, 0xf6, 0x6e, 0x78, 0x9e, 0x64, 0x83, 0x58, 0x0e, 0xfe, 0xda, 0xf0, 0x8b, 0xd2, 0x06, 0xb1, 0xe3, 0xf3, 0xb5, 0x41, 0xc1, 0x87, 0xb9, 0x41, 0x2c, 0x92, 0x7e, 0x1d, 0x44, 0x51, 0xd0, 0xd7, 0x0a, 0x7c, 0x9d, 0xbb, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x1b, 0xa4, 0xcb, 0x5a, 0x0e, 0xe0, 0x51, 0xe7, 0x96, 0x46, 0x07, 0xe2, 0x56, 0x56, 0x46, 0xb6, 0x41, 0xa1, 0xdc, 0xb9, 0x41, 0xec, 0x52, 0x7e, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0xf8, 0x64, 0x09, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0xb1, 0x76, 0xf9, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x1b, 0xba, 0x1c, 0x44, 0x85, 0xe2, 0x57, 0x2b, 0xf0, 0x6f, 0xf4, 0x86, 0xe7, 0x49, 0x36, 0x88, 0xcd, 0xe2, 0xaf, 0x0d, 0x0a, 0xe5, 0xce, 0x0d, 0xe2, 0xde, 0xef, 0x6b, 0xc3, 0x2f, 0x4a, 0x1b, 0xc4, 0x8e, 0xcf, 0xd7, 0x06, 0x05, 0x1f, 0xe6, 0x06, 0xb1, 0x8a, 0xfc, 0x75, 0x10, 0xe1, 0xca, 0x5f, 0xb3, 0xc0, 0xbb, 0xbd, 0x1b, 0x9e, 0x27, 0xd9, 0x20, 0xb2, 0x9a, 0xbf, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0xec, 0xf8, 0x7c, 0x6d, 0x50, 0xf0, 0x61, 0x6e, 0x10, 0xc9, 0x6f, 0x5f, 0x07, 0x51, 0x14, 0xf4, 0x35, 0x0b, 0xbc, 0xdb, 0xbc, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x19, 0xbc, 0xdb, 0xdc, 0x00, 0xfe, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x61, 0x73, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0x76, 0x7c, 0xbe, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0xf1, 0xe4, 0x64, 0x83, 0x82, 0x0f, 0x73, 0x83, 0x48, 0x7e, 0xfb, 0xda, 0xa0, 0xe8, 0x34, 0xde, 0x60, 0xc1, 0x0e, 0xfa, 0x06, 0x51, 0x14, 0xf4, 0xb5, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0xb2, 0x4a, 0xd0, 0x0d, 0x92, 0x1b, 0xe4, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x8a, 0x8a, 0xd0, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x7a, 0x60, 0xd0, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x12, 0x9c, 0xd0, 0x0d, 0x96, 0x39, 0xc9, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0x3e, 0x8c, 0x1e, 0xac, 0x80, 0x2e, 0x6d, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x02, 0xa5, 0x74, 0x83, 0x55, 0x60, 0xb2, 0x75, 0xd0, 0x78, 0xbb, 0xec, 0xe1, 0x14, 0x6b, 0x81, 0x0f, 0x9b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x83, 0x0f, 0x9b, 0x1b, 0xc0, 0x2f, 0x4c, 0x4e, 0x2e, 0x2c, 0x0f, 0x24, 0x6c, 0x0e, 0x64, 0xae, 0x8c, 0x6e, 0x83, 0x42, 0xb9, 0x73, 0x0d, 0x7f, 0x2e, 0x0d, 0x1e, 0x1e, 0xc4, 0x68, 0xd5, 0xd7, 0x86, 0x77, 0x7b, 0x36, 0x88, 0xdf, 0xca, 0xaf, 0x35, 0x28, 0x4b, 0xde, 0x37, 0x28, 0x77, 0xde, 0x37, 0x28, 0x9b, 0xde, 0xd7, 0xa0, 0x10, 0x4c, 0xdd, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0x11, 0xdf, 0xd7, 0x20, 0x80, 0xce, 0x0e, 0x8e, 0x71, 0x0a, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x3f, 0x4a, 0xea, 0xf0, 0xd0, 0x4f, 0x87, 0x53, 0x6c, 0x0d, 0xa2, 0x8d, 0xeb, 0x6b, 0xc3, 0xf3, 0x24, 0x1b, 0x44, 0x24, 0xf6, 0xd7, 0x06, 0x85, 0x72, 0xe7, 0x06, 0x91, 0x4a, 0xf5, 0xb5, 0xe1, 0x17, 0xa5, 0x0d, 0x22, 0x4c, 0xfb, 0x6b, 0x83, 0x12, 0x1e, 0x73, 0x83, 0xc8, 0xe7, 0xfe, 0xda, 0x20, 0x3c, 0x55, 0x37, 0x08, 0xd2, 0xd3, 0x0d, 0xe2, 0x35, 0xeb, 0x6b, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0x98, 0x8e, 0x1d, 0xc4, 0x16, 0x4d, 0xd8, 0x06, 0xa5, 0x84, 0xf8, 0x1a, 0x2e, 0xa9, 0x0d, 0x8a, 0x1a, 0xf1, 0x35, 0x88, 0xd7, 0xac, 0xaf, 0x0d, 0x9f, 0xbb, 0xac, 0x61, 0xe2, 0x36, 0x68, 0xee, 0x1b, 0xf7, 0x20, 0x4c, 0xc7, 0x0e, 0x22, 0x2f, 0xeb, 0xab, 0x0d, 0x4a, 0x78, 0xcc, 0x05, 0xa7, 0x0f, 0xe2, 0x35, 0xeb, 0x6b, 0x0d, 0x8a, 0x01, 0xd9, 0x0d, 0xe2, 0x2d, 0xfc, 0x6b, 0x83, 0xf0, 0x54, 0xdd, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0xb9, 0x6f, 0xdc, 0x83, 0x78, 0xcd, 0xfa, 0x3a, 0x88, 0x2f, 0xef, 0xaf, 0x0d, 0xbf, 0xb8, 0x6c, 0x10, 0xe9, 0x79, 0x61, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x33, 0x5c, 0x5f, 0x6b, 0x78, 0x5b, 0xe7, 0x20, 0x6a, 0xf1, 0xc2, 0xda, 0x20, 0x72, 0xc2, 0xbf, 0xaa, 0xd5, 0x20, 0x32, 0x2c, 0xc2, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x22, 0xc3, 0x22, 0xac, 0x83, 0xe8, 0x95, 0x08, 0xdb, 0xa0, 0x50, 0xee, 0xdc, 0x20, 0xee, 0xfd, 0xbe, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0x9c, 0xbe, 0x7f, 0x6d, 0x10, 0xa4, 0xa7, 0x1b, 0x34, 0xf3, 0x14, 0xbb, 0x06, 0x51, 0x2f, 0x13, 0xb6, 0x41, 0x29, 0x21, 0xbe, 0x41, 0xd4, 0xd4, 0x84, 0x6d, 0x50, 0x90, 0xc6, 0x0e, 0x78, 0x74, 0x65, 0xee, 0x1a, 0x2c, 0xa9, 0x5f, 0xda, 0x20, 0x96, 0x73, 0xc2, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0xe4, 0xeb, 0x84, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0xa2, 0x5c, 0xfe, 0x6b, 0x83, 0xa8, 0xbf, 0x09, 0xab, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x62, 0x89, 0x27, 0x6c, 0x0d, 0x6f, 0xeb, 0x1c, 0x44, 0x3f, 0xfd, 0xd7, 0x86, 0x5f, 0x5c, 0x36, 0x88, 0x30, 0xc2, 0xb0, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x88, 0xef, 0x8a, 0xb0, 0x83, 0x78, 0xf7, 0x09, 0x3b, 0x88, 0xd2, 0xf9, 0xaf, 0x5a, 0x81, 0x27, 0xab, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x83, 0x27, 0xab, 0x1b, 0xc0, 0x6b, 0xae, 0x6c, 0xec, 0xcd, 0x8d, 0x0c, 0x84, 0x2c, 0x8c, 0xae, 0x6c, 0xc3, 0xbb, 0x3d, 0x1b, 0xc4, 0x6f, 0xe5, 0xd7, 0x1a, 0x1e, 0x94, 0x5c, 0xc3, 0xdb, 0x3a, 0x1b, 0xc4, 0x1c, 0xb5, 0x53, 0x07, 0x51, 0x56, 0xfe, 0x75, 0x10, 0xab, 0xe6, 0x5f, 0x87, 0x53, 0xec, 0x20, 0xbe, 0xc3, 0xbf, 0x36, 0x88, 0xa7, 0xf3, 0xaf, 0x59, 0x83, 0x78, 0x5c, 0xfe, 0xda, 0xf0, 0x3c, 0xc9, 0x06, 0x71, 0xdd, 0xfe, 0xb5, 0x41, 0xa1, 0xdc, 0xb9, 0x41, 0xdc, 0xfb, 0x7d, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0x38, 0x7d, 0xff, 0xda, 0x20, 0x48, 0x4f, 0x37, 0x68, 0xe6, 0x29, 0x76, 0x0d, 0xa2, 0x5e, 0x26, 0x6c, 0x83, 0x52, 0x42, 0x7c, 0x83, 0xa8, 0xa9, 0x09, 0xdb, 0xa0, 0x20, 0x8d, 0x1d, 0xf0, 0xe8, 0xca, 0xdc, 0x35, 0x58, 0x52, 0xbf, 0xb4, 0x41, 0x2c, 0xe7, 0x84, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0xc8, 0xd7, 0x09, 0x5b, 0xc3, 0xbb, 0x3d, 0x6b, 0x50, 0x96, 0xbc, 0x6f, 0xd0, 0xde, 0x5a, 0xd6, 0x41, 0x94, 0xcd, 0x7f, 0x1d, 0x44, 0xdf, 0x60, 0x58, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0xc4, 0x12, 0x4f, 0xd8, 0x06, 0x11, 0x46, 0x18, 0xb6, 0xe1, 0x17, 0x97, 0x0d, 0x22, 0x8c, 0x30, 0x6c, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0xa2, 0x6a, 0xf9, 0xeb, 0x20, 0xde, 0x7d, 0xc2, 0x0e, 0xa2, 0x74, 0xfe, 0xab, 0x66, 0x81, 0x1f, 0x4b, 0x37, 0x3c, 0x4f, 0xb2, 0x41, 0xfc, 0xe1, 0x7f, 0x6d, 0x50, 0x28, 0x77, 0x6e, 0x10, 0x79, 0x9f, 0x5f, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0x76, 0x7c, 0xbe, 0x36, 0xbc, 0xdb, 0xb3, 0xc1, 0xd9, 0xd0, 0x65, 0x83, 0x88, 0x0e, 0x0a, 0xeb, 0x70, 0x8a, 0x2d, 0xf0, 0x6f, 0xed, 0x86, 0xe7, 0x49, 0x36, 0x88, 0xeb, 0xfd, 0xaf, 0x0d, 0x0a, 0xe5, 0xce, 0x0d, 0x62, 0x97, 0xf2, 0x6b, 0xc3, 0x2f, 0x4a, 0x1b, 0xc4, 0x8e, 0xcf, 0xd7, 0x06, 0x05, 0x1f, 0xe6, 0x06, 0xb1, 0x8a, 0xfc, 0x75, 0x10, 0xfb, 0xff, 0x5f, 0xb3, 0xc0, 0xcf, 0x91, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0xc1, 0xcf, 0x91, 0x0d, 0xc0, 0xc7, 0x1c, 0x9d, 0x5c, 0x9a, 0xdb, 0x19, 0x08, 0x50, 0x1d, 0x19, 0x48, 0xd8, 0x1c, 0x08, 0x59, 0x18, 0x5d, 0xd9, 0x86, 0x5f, 0x94, 0x36, 0x88, 0x1d, 0x9f, 0xaf, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0xe4, 0x6b, 0xdd, 0xa0, 0xe0, 0xc3, 0x5c, 0x83, 0x62, 0x12, 0x73, 0x83, 0x25, 0x31, 0x81, 0x1b, 0x87, 0x0e, 0xda, 0x49, 0x1f, 0xdb, 0xf0, 0xf5, 0xcb, 0x1a, 0x7e, 0x84, 0x39, 0x78, 0xef, 0x13, 0xcd, 0x86, 0xaf, 0x5f, 0x36, 0x7c, 0x08, 0xb3, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0xec, 0xa0, 0x6f, 0x10, 0x45, 0x41, 0x5f, 0x07, 0x0b, 0xfd, 0x5b, 0x57, 0xe0, 0xc3, 0xe4, 0x0d, 0xcf, 0x93, 0x6c, 0x10, 0x07, 0x02, 0x60, 0x1b, 0x14, 0xca, 0x9d, 0x1b, 0xc4, 0x2e, 0xe5, 0xd7, 0x86, 0x5f, 0x94, 0x36, 0x88, 0x1d, 0x9f, 0xaf, 0x0d, 0x7f, 0xd1, 0xac, 0x41, 0xe8, 0x97, 0x6c, 0x10, 0x52, 0x26, 0x6b, 0x10, 0x40, 0x67, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0xd6, 0x2e, 0xbf, 0x0e, 0xe2, 0xa1, 0x21, 0xac, 0x0d, 0x0a, 0x3e, 0xcc, 0x0d, 0x62, 0xdf, 0xea, 0x6b, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0x48, 0xd5, 0x1b, 0x44, 0x51, 0xd0, 0xd7, 0x41, 0x9c, 0x5d, 0x7e, 0xcd, 0x02, 0x3f, 0xf7, 0x6e, 0x78, 0x9e, 0x64, 0x83, 0xc8, 0x55, 0x00, 0xdb, 0xf0, 0x8b, 0xd2, 0x06, 0xb1, 0xe3, 0xf3, 0xb5, 0x41, 0xc1, 0x87, 0xb9, 0x41, 0x0c, 0xfd, 0x7c, 0x1d, 0x44, 0x51, 0xd0, 0xd7, 0x41, 0x64, 0x50, 0x80, 0x75, 0x38, 0xc5, 0x0e, 0xa7, 0x58, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x2d, 0xe0, 0x8f, 0xb1, 0xbd, 0xe5, 0x1b, 0xac, 0xc2, 0x72, 0xda, 0x20, 0xaa, 0x98, 0x97, 0x36, 0x28, 0x59, 0xd8, 0x67, 0x99, 0x05, 0xf8, 0xdd, 0xca, 0xee, 0x5a, 0xc8, 0xca, 0xe6, 0xd6, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0x9b, 0xf1, 0x42, 0x0e, 0x1e, 0x85, 0x17, 0xb2, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x3f, 0xd3, 0xd2, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0xd9, 0x84, 0xb9, 0xc1, 0x4b, 0x2f, 0xf5, 0x5a, 0xc3, 0x9f, 0x4b, 0x03, 0x3c, 0x66, 0x69, 0x6c, 0x65, 0xf3, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0x89, 0x58, 0xbf, 0xc1, 0x19, 0x09, 0x75, 0x83, 0xd7, 0xd1, 0xd9, 0xd5, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0xcd, 0xfa, 0xba, 0x86, 0x37, 0xee, 0x0e, 0xde, 0xc8, 0x30, 0xb8, 0xc1, 0xa3, 0xba, 0x0a, 0xd7, 0x60, 0x15, 0x98, 0xec, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0xe0, 0xf4, 0xa8, 0xd0, 0x1a, 0xde, 0xd6, 0x39, 0x78, 0x06, 0xa6, 0x5e, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x12, 0x37, 0x6a, 0x37, 0x28, 0x9b, 0xea, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0x71, 0xd3, 0x1a, 0x56, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0x70, 0xd8, 0x3f, 0xeb, 0x20, 0x7a, 0xd6, 0xc2, 0x6a, 0x0d, 0x0a, 0xc1, 0xd4, 0x83, 0xa7, 0x53, 0xf3, 0x75, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0x0a, 0xf0, 0xdc, 0xa5, 0xc9, 0x95, 0x91, 0x1b, 0xa4, 0x5e, 0x14, 0x6f, 0x50, 0xb2, 0xb0, 0xcf, 0x32, 0x0b, 0xf8, 0x64, 0x72, 0x61, 0xf9, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x2c, 0xd9, 0x86, 0x35, 0x00, 0x1f, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x70, 0x61, 0x74, 0x68, 0x1b, 0x1c, 0x6d, 0xf8, 0xd6, 0xa0, 0x50, 0xee, 0x5c, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0x70, 0xc3, 0xe7, 0x4a, 0x1b, 0x9c, 0x37, 0x4f, 0x37, 0x58, 0x2f, 0xe8, 0xdb, 0x41, 0x39, 0x8e, 0xbf, 0xe1, 0x2f, 0x9a, 0x35, 0x08, 0xfd, 0x92, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xc1, 0x85, 0x99, 0x6d, 0x70, 0xe8, 0xb4, 0x6c, 0x83, 0x52, 0x42, 0x7c, 0x0d, 0x97, 0xd4, 0x06, 0x45, 0x8d, 0xf8, 0x1a, 0x3e, 0x0f, 0xda, 0xf0, 0x17, 0xcd, 0x1a, 0x2c, 0x23, 0xb0, 0xda, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xe8, 0xea, 0xe0, 0x36, 0x28, 0xd1, 0xf3, 0x0f, 0x1a, 0x34, 0xc7, 0x3c, 0xbc, 0x17, 0xd4, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0xc5, 0x91, 0xfe, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xc9, 0x4d, 0xdf, 0xa0, 0x44, 0xcf, 0x3f, 0xbc, 0x85, 0x76, 0x50, 0xd6, 0x79, 0x6e, 0xf8, 0xc5, 0x65, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x24, 0x37, 0xfd, 0x20, 0x3a, 0x0a, 0xa1, 0xd6, 0xf0, 0x17, 0xcd, 0x1a, 0x2c, 0x23, 0xb0, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x51, 0xb7, 0x1b, 0x76, 0xd0, 0xa0, 0x39, 0xe6, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x94, 0xd6, 0xea, 0xa0, 0x15, 0x0d, 0xef, 0x36, 0x28, 0x0c, 0x55, 0xd7, 0xf0, 0xb9, 0xcb, 0x80, 0x07, 0x17, 0x66, 0x6e, 0x50, 0x28, 0x77, 0xae, 0xe1, 0xcf, 0xa5, 0xc1, 0xc3, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0x50, 0x71, 0x69, 0x83, 0x12, 0x1e, 0x73, 0xc3, 0x83, 0x3b, 0x6b, 0xf8, 0xa8, 0xfd, 0x20, 0x04, 0x1f, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0x73, 0xa5, 0x35, 0x08, 0xfd, 0x92, 0x35, 0x3c, 0x28, 0xb9, 0x86, 0xb7, 0x75, 0x06, 0xbc, 0x37, 0xb2, 0xb7, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x72, 0x61, 0x69, 0x64, 0x6b, 0xb0, 0x8c, 0xc0, 0x6a, 0xc3, 0x25, 0xb5, 0x41, 0xe9, 0xfc, 0xbe, 0x06, 0x45, 0x8d, 0xf8, 0xc1, 0x5a, 0x2a, 0xbb, 0x5a, 0x83, 0x65, 0x04, 0x56, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x51, 0x5a, 0xab, 0x83, 0x06, 0xcd, 0x31, 0xdb, 0xf0, 0xb9, 0xcb, 0x80, 0x47, 0x57, 0x07, 0x6f, 0x50, 0x28, 0x77, 0xae, 0xe1, 0x73, 0xa5, 0x0d, 0x16, 0x64, 0xa7, 0xae, 0xe1, 0xcf, 0xa5, 0xc1, 0xc5, 0x83, 0xf5, 0x82, 0xbe, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x3e, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x28, 0x3c, 0x0e, 0x3b, 0x3c, 0xf4, 0xb3, 0x41, 0x09, 0x8f, 0xb9, 0xe1, 0xf3, 0xa0, 0x0d, 0x4f, 0xef, 0x6c, 0xf8, 0xa8, 0x7d, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x77, 0x7e, 0xc3, 0x3f, 0x3c, 0xad, 0x41, 0xe8, 0x97, 0x6c, 0xd0, 0x28, 0xad, 0xd5, 0x1a, 0x2c, 0x23, 0xb0, 0x3a, 0x28, 0xe1, 0x68, 0xd7, 0x60, 0x19, 0x81, 0xd5, 0x41, 0x29, 0x4e, 0x5b, 0xab, 0x41, 0xec, 0x21, 0x87, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xc4, 0x1e, 0x72, 0x58, 0x03, 0xf0, 0x40, 0x56, 0xd6, 0x16, 0xe6, 0x46, 0x06, 0x02, 0x17, 0x46, 0x87, 0x06, 0xf2, 0x46, 0xf6, 0x26, 0x37, 0xb7, 0xc1, 0xd1, 0x86, 0x6f, 0x0d, 0x0a, 0xe5, 0xce, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x0f, 0x0f, 0xce, 0x48, 0xa8, 0x6b, 0xf8, 0x73, 0x69, 0x70, 0xf1, 0x20, 0xfa, 0x73, 0xc3, 0xda, 0x60, 0xa5, 0x8b, 0xd3, 0x02, 0x9e, 0xd9, 0xdb, 0xd9, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x7e, 0x8f, 0xc3, 0x0e, 0x92, 0xb9, 0x86, 0x37, 0x28, 0xe1, 0x31, 0x37, 0x28, 0xde, 0x69, 0xd7, 0xf0, 0x17, 0xcd, 0x1a, 0xfe, 0x9d, 0xdf, 0x20, 0x86, 0xac, 0xc3, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x71, 0xbd, 0x11, 0xb6, 0x41, 0x09, 0x47, 0x7b, 0xb0, 0xa4, 0xd3, 0x77, 0xc3, 0x2f, 0x2e, 0x1b, 0x44, 0xf6, 0x75, 0xd8, 0x06, 0xf1, 0x34, 0x1c, 0xd6, 0x86, 0xcf, 0x5d, 0x06, 0xbc, 0x37, 0xb2, 0x77, 0x83, 0x42, 0xb9, 0x73, 0x83, 0x05, 0xd9, 0xa9, 0x1b, 0x7e, 0x51, 0xda, 0xa0, 0x00, 0xef, 0xdc, 0xe0, 0x68, 0xc3, 0xb7, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0x9e, 0x70, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x20, 0x66, 0x61, 0x63, 0x65, 0x1b, 0x2e, 0xa9, 0x0d, 0x0f, 0xee, 0xac, 0xc1, 0x59, 0xfd, 0x6c, 0xc3, 0xbb, 0x3d, 0x1b, 0x9e, 0x99, 0x3c, 0xbc, 0x85, 0xd6, 0x06, 0x27, 0x07, 0xb9, 0x0d, 0x0f, 0xee, 0x6c, 0xf8, 0xa1, 0x66, 0x0d, 0xd6, 0xce, 0xec, 0x1d, 0x1c, 0x07, 0x60, 0xd7, 0xe0, 0x94, 0xd6, 0x7a, 0x70, 0xe4, 0x6b, 0x5d, 0x83, 0xc3, 0x65, 0xeb, 0xc1, 0x49, 0xb5, 0x75, 0x0d, 0x8e, 0xfa, 0x26, 0x1b, 0xbe, 0xa8, 0xd9, 0x50, 0xc7, 0xc3, 0xcd, 0x35, 0x38, 0x8f, 0xb7, 0x1e, 0x1c, 0xee, 0x5b, 0xd7, 0xe0, 0x18, 0xe1, 0x7a, 0x70, 0x26, 0x71, 0x5d, 0x83, 0x33, 0xa7, 0xeb, 0xc1, 0xb1, 0xd5, 0x75, 0x0d, 0x12, 0xc2, 0x8c, 0x0e, 0x8e, 0x42, 0x27, 0x6b, 0x70, 0x74, 0x59, 0x3d, 0x38, 0x07, 0xad, 0xae, 0xc1, 0x19, 0x60, 0xf5, 0xe0, 0x40, 0xb1, 0xba, 0x06, 0xc7, 0xbe, 0xd5, 0x83, 0x33, 0xe4, 0xea, 0x1a, 0x9c, 0x56, 0x57, 0x0f, 0x8e, 0x2d, 0xa5, 0x6b, 0x70, 0x6c, 0x5e, 0x3d, 0x38, 0x83, 0xaf, 0xae, 0xc1, 0x69, 0x7f, 0xf5, 0xe0, 0xe8, 0xc0, 0xba, 0x06, 0x4b, 0x62, 0x02, 0x0f, 0x8e, 0x27, 0x27, 0x6b, 0x70, 0xfa, 0x71, 0x3d, 0x38, 0xcf, 0x8e, 0xae, 0xc1, 0x31, 0xcf, 0xf5, 0xe0, 0xa8, 0x0d, 0xba, 0x06, 0xeb, 0x23, 0xd2, 0x0f, 0xce, 0x9b, 0xa7, 0x1d, 0x4e, 0xb1, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x5b, 0x80, 0x77, 0xec, 0xcd, 0x8d, 0x2e, 0x2c, 0xcd, 0xdd, 0x20, 0xf5, 0xa2, 0x78, 0x83, 0x92, 0x85, 0x7d, 0x96, 0x59, 0x80, 0x5f, 0x2c, 0xaf, 0x65, 0x8c, 0xed, 0x6d, 0x6c, 0xdd, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x88, 0x70, 0xf5, 0xb0, 0x06, 0xc0, 0xff, 0x34, 0x37, 0xba, 0x32, 0x39, 0xb3, 0xb0, 0xb1, 0x32, 0x90, 0xb1, 0x37, 0xb9, 0x32, 0x10, 0xb3, 0x37, 0x39, 0x90, 0x30, 0x90, 0xb1, 0xb0, 0x31, 0xb4, 0x32, 0x90, 0xba, 0xb9, 0x34, 0xb7, 0x33, 0x10, 0x3a, 0xb4, 0x32, 0x90, 0x31, 0xb6, 0xb7, 0xb1, 0x35, 0x10, 0xb9, 0x32, 0x38, 0xb6, 0xb0, 0xb1, 0xb2, 0xb6, 0x32, 0x37, 0x3a, 0x90, 0x30, 0xb6, 0xb3, 0x37, 0xb9, 0x34, 0x3a, 0xb4, 0x76, 0x25, 0x00, 0xde, 0x80, 0x92, 0x2b, 0x9b, 0x2b, 0x73, 0xa3, 0x9b, 0x03, 0x09, 0x73, 0x03, 0x49, 0x73, 0xa3, 0x2b, 0x93, 0x33, 0x0b, 0x1b, 0x2b, 0x03, 0x31, 0x7b, 0x93, 0x03, 0x09, 0x03, 0x69, 0x0b, 0x83, 0x83, 0x4b, 0x73, 0x3b, 0x63, 0x01, 0x11, 0xab, 0xa3, 0x03, 0x99, 0x7b, 0x6b, 0x2b, 0xbb, 0x43, 0x0b, 0xa3, 0x03, 0x99, 0x83, 0x2b, 0x1b, 0x4b, 0x0b, 0x63, 0x4b, 0xd3, 0x2b, 0x23, 0x63, 0x01, 0x09, 0x73, 0x23, 0x03, 0xb9, 0x4b, 0xa3, 0x43, 0x97, 0x00, 0x78, 0x63, 0x8e, 0x2e, 0x8c, 0xae, 0xcc, 0xac, 0x8e, 0x0d, 0x24, 0x6c, 0x6c, 0xac, 0x6c, 0x6e, 0xee, 0x4d, 0x6e, 0xce, 0x05, 0x84, 0x0a, 0xad, 0x0c, 0x64, 0x8c, 0xed, 0x6d, 0x6c, 0xed, 0x64, 0x0e, 0x44, 0x87, 0xac, 0x0c, 0x8e, 0x0e, 0x0d, 0x04, 0x2e, 0x4c, 0x2e, 0xac, 0xad, 0x8c, 0xae, 0x4c, 0x0e, 0x24, 0x6d, 0x0e, 0xa4, 0x6e, 0xae, 0x8c, 0x0c, 0x24, 0x6c, 0x0e, 0x84, 0x0e, 0xad, 0x0c, 0xa4, 0x2d, 0x0c, 0x2f, 0xad, 0xad, 0xae, 0x5d, 0x02, 0xe0, 0x13, 0x33, 0xb9, 0xb2, 0x39, 0x34, 0xb7, 0xb2, 0xb9, 0x39, 0x10, 0x3a, 0xb4, 0x30, 0x3a, 0x90, 0x30, 0x37, 0x90, 0x32, 0x37, 0x3a, 0xb9, 0x3c, 0x90, 0xb1, 0x30, 0x37, 0x10, 0xb4, 0x30, 0xbb, 0x32, 0x17, 0x10, 0x2a, 0xb4, 0x32, 0x90, 0x39, 0xba, 0x30, 0x37, 0xb2, 0x30, 0x39, 0x32, 0x90, 0x31, 0xb6, 0xb7, 0xb1, 0x35, 0x90, 0x30, 0xb6, 0xb3, 0x37, 0xb9, 0x34, 0x3a, 0xb4, 0x36, 0x10, 0xb4, 0xb0, 0x39, 0x90, 0x30, 0x10, 0xb2, 0x32, 0x38, 0x3a, 0x74, 0x09, 0x80, 0x37, 0xde, 0xcc, 0x40, 0x62, 0x58, 0x40, 0xda, 0xca, 0xc2, 0xdc, 0xd2, 0xdc, 0xce, 0x40, 0xe8, 0xd0, 0xc2, 0xe8, 0x40, 0xc2, 0x40, 0xe6, 0xd2, 0xdc, 0xce, 0xd8, 0xca, 0x40, 0xe6, 0xee, 0xca, 0xca, 0xe0, 0x40, 0xde, 0xcc, 0x40, 0xe8, 0xd0, 0xca, 0x40, 0xc2, 0xe4, 0xda, 0x40, 0xee, 0xd2, 0xd8, 0xd8, 0x40, 0xc8, 0xca, 0xd8, 0xca, 0xe8, 0xca, 0x40, 0xe8, 0xd0, 0xca, 0x40, 0xca, 0xdc, 0xe8, 0xe4, 0xf2, 0x5c, 0x40, 0x8c, 0xde, 0xe4, 0x25, 0x00, 0xad, 0xdb, 0xde, 0xe4, 0xca, 0x40, 0xe6, 0xc6, 0xc2, 0xdc, 0x40, 0xe4, 0xca, 0xe6, 0xd2, 0xe6, 0xe8, 0xc2, 0xdc, 0xc6, 0xca, 0x58, 0x40, 0x74, 0xc8, 0xca, 0xe0, 0xe8, 0xd0, 0x40, 0xc6, 0xc2, 0xdc, 0x40, 0xc4, 0xca, 0x40, 0xe6, 0xca, 0xe8, 0x40, 0xe8, 0xde, 0x40, 0xc2, 0x40, 0xd0, 0xd2, 0xce, 0xd0, 0xca, 0xe4, 0x40, 0xdc, 0xea, 0xda, 0xc4, 0xca, 0xe4, 0x5c, 0x2b, 0x01, 0xf8, 0x96, 0xe4, 0x46, 0x57, 0x26, 0xe7, 0x16, 0xc6, 0xc6, 0x96, 0xc7, 0x02, 0xa2, 0x33, 0xc6, 0xf6, 0x36, 0xb6, 0x06, 0xd2, 0x16, 0x96, 0xe6, 0x46, 0x17, 0x96, 0xe6, 0x36, 0x07, 0x12, 0x06, 0xa2, 0xc3, 0xf6, 0xf6, 0xb6, 0x56, 0x07, 0x07, 0xf2, 0x66, 0x06, 0x42, 0x97, 0x07, 0x57, 0x2e, 0x01, 0xf0, 0x03, 0x18, 0x4a, 0x5b, 0x18, 0x1c, 0xc8, 0x5a, 0x59, 0x5e, 0x0b, 0x5d, 0x1e, 0x5c, 0x19, 0xc8, 0x96, 0x5d, 0x18, 0x5b, 0x8f, 0x5d, 0x18, 0x5b, 0x0b, 0x5d, 0x1e, 0x5c, 0x19, 0x88, 0x99, 0x5c, 0xd9, 0x1c, 0x5a, 0x0f, 0x50, 0x1d, 0x59, 0x57, 0x0a, 0x18, 0x0b, 0xc8, 0x1d, 0x5a, 0x99, 0x5c, 0x19, 0x88, 0x0e, 0x59, 0x19, 0x1c, 0x1d, 0x9a, 0xcb, 0x18, 0xdb, 0xdb, 0xd8, 0x1a, 0x48, 0xda, 0x1c, 0x08, 0x1d, 0x5a, 0xb9, 0x04, 0xc0, 0x23, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x3a, 0x66, 0x72, 0x65, 0x73, 0x68, 0x2e, 0x20, 0x4c, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x70, 0x20, 0x61, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x74, 0x73, 0x20, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x73, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0xe1, 0x12, 0x80, 0x7e, 0x73, 0x77, 0x65, 0x65, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x61, 0x72, 0x6d, 0x20, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x69, 0x74, 0x73, 0x20, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6e, 0x65, 0x73, 0x73, 0xae, 0x95, 0x00, 0xf8, 0x83, 0x0a, 0xad, 0x0c, 0x64, 0x8c, 0xed, 0x6d, 0x6c, 0x0d, 0x24, 0x4c, 0xae, 0x0d, 0x24, 0x6d, 0x0e, 0x64, 0x8e, 0xee, 0x4d, 0xae, 0x8c, 0x0c, 0x24, 0x6c, 0x0e, 0x44, 0x27, 0xae, 0xae, 0xac, 0xae, 0x8c, 0x05, 0xe4, 0x0e, 0x2d, 0x6d, 0x0c, 0x0d, 0x24, 0x6d, 0x0e, 0x24, 0x0c, 0x04, 0x0c, 0x25, 0xae, 0xac, 0x0e, 0x64, 0xad, 0x2c, 0xaf, 0x85, 0x2e, 0x0f, 0xae, 0x2c, 0x05, 0xcc, 0x05, 0x84, 0x0a, 0xad, 0x0c, 0x04, 0xad, 0x2c, 0x8c, 0x5c, 0x02, 0xe0, 0x8b, 0x37, 0x33, 0x10, 0x3a, 0xb4, 0x32, 0x90, 0xb8, 0xba, 0xb2, 0xba, 0x32, 0x10, 0xb9, 0x32, 0x38, 0xb9, 0xb2, 0xb9, 0x32, 0x37, 0xba, 0x39, 0x10, 0x3a, 0xb4, 0x32, 0x10, 0xb8, 0xb7, 0xb9, 0x34, 0xba, 0xb4, 0x37, 0x37, 0x90, 0x37, 0x33, 0x10, 0x3a, 0xb4, 0x32, 0x90, 0x31, 0xb6, 0xb7, 0xb1, 0x35, 0x90, 0x30, 0xb9, 0x36, 0x17, 0x10, 0xa7, 0xb2, 0x3b, 0x90, 0x32, 0x37, 0x3a, 0xb9, 0xb4, 0xb2, 0x39, 0x90, 0x30, 0xb9, 0x72, 0x09, 0xc0, 0xff, 0x34, 0xb7, 0xb9, 0x32, 0x39, 0xba, 0x32, 0x32, 0x90, 0x30, 0x3a, 0x10, 0x3a, 0xb4, 0x32, 0x10, 0xba, 0xb0, 0x34, 0x36, 0x90, 0x37, 0x33, 0x10, 0x3a, 0xb4, 0x32, 0x90, 0xb8, 0xba, 0xb2, 0xba, 0x32, 0x17, 0x90, 0x2b, 0xb4, 0x32, 0x37, 0x10, 0x3a, 0xb4, 0x32, 0x90, 0x31, 0xb6, 0xb7, 0xb1, 0x35, 0x90, 0x30, 0xb9, 0x36, 0x90, 0xb9, 0xbb, 0xb2, 0x32, 0xb8, 0x39, 0x16, 0x90, 0x34, 0x7a, 0x09, 0x80, 0x47, 0xe0, 0xde, 0xe0, 0xe6, 0x40, 0xe8, 0xd0, 0xca, 0x40, 0xd0, 0xca, 0xc2, 0xc8, 0x40, 0xde, 0xcc, 0xcc, 0x40, 0xe8, 0xd0, 0xca, 0x40, 0xe2, 0xea, 0xca, 0xea, 0xca, 0x5c, 0x40, 0x92, 0xcc, 0x40, 0xe8, 0xd0, 0xca, 0x40, 0x74, 0xcc, 0xe4, 0xca, 0xe6, 0xd0, 0x40, 0xde, 0xcc, 0x40, 0xe8, 0xd0, 0xca, 0x40, 0xd0, 0xca, 0xc2, 0xc8, 0x4e, 0xe6, 0x40, 0xca, 0xdc, 0xe8, 0xe4, 0xf2, 0x40, 0xd2, 0xdc, 0x40, 0x74, 0xd8, 0xde, 0xde, 0xd6, 0xea, 0xe0, 0x25, 0x00, 0x3a, 0x49, 0x9b, 0x03, 0x81, 0x61, 0x01, 0x91, 0x2b, 0x6b, 0x7b, 0xb3, 0x2b, 0x03, 0xa1, 0x43, 0x2b, 0x03, 0x29, 0x73, 0xa3, 0x93, 0xcb, 0x03, 0x31, 0x93, 0x7b, 0x6b, 0x03, 0xa1, 0x43, 0x2b, 0x03, 0x69, 0x0b, 0x83, 0x83, 0x4b, 0x73, 0x3b, 0x03, 0x09, 0x73, 0x23, 0x03, 0x91, 0x2b, 0x83, 0x63, 0x0b, 0x1b, 0x2b, 0x03, 0x49, 0xa3, 0x03, 0xb9, 0x4b, 0xa3, 0x43, 0x03, 0xa1, 0x43, 0x2b, 0x03, 0x71, 0x2b, 0xbb, 0x03, 0x29, 0x73, 0xa3, 0x93, 0xcb, 0x73, 0x4b, 0x00, 0x7c, 0xf1, 0x44, 0x87, 0x56, 0x26, 0x77, 0x97, 0x36, 0x57, 0xc6, 0x02, 0x42, 0x56, 0x36, 0x26, 0x57, 0xd6, 0x56, 0xe6, 0x46, 0x07, 0x42, 0x87, 0x56, 0x06, 0x52, 0xe6, 0x46, 0x27, 0x97, 0x77, 0x32, 0x07, 0x62, 0x26, 0x57, 0x36, 0x87, 0xe6, 0x56, 0x36, 0x37, 0xc7, 0x02, 0x02, 0x57, 0x47, 0x07, 0x92, 0x46, 0x07, 0x22, 0x16, 0x36, 0xb6, 0x06, 0x12, 0x46, 0x07, 0x42, 0x87, 0x56, 0x06, 0x42, 0x17, 0x96, 0xc6, 0x06, 0xf2, 0x66, 0x2e, 0x01, 0x68, 0x4e, 0x87, 0x56, 0x06, 0x12, 0x57, 0x57, 0x56, 0x57, 0xc6, 0x02, 0x12, 0xe6, 0x46, 0x06, 0x02, 0xf7, 0x06, 0x07, 0x42, 0x87, 0x56, 0x06, 0xe2, 0x56, 0x86, 0x47, 0x07, 0x82, 0x56, 0x16, 0x46, 0x06, 0xf2, 0x66, 0x66, 0x06, 0x42, 0x87, 0x56, 0x06, 0x12, 0x57, 0x57, 0x56, 0x57, 0x06, 0x12, 0xe6, 0x46, 0x06, 0x42, 0x27, 0x97, 0x07, 0x12, 0x76, 0x16, 0x96, 0xe6, 0xe6, 0x5a, 0x09, 0x80, 0x37, 0x86, 0xc2, 0xc6, 0xd0, 0xca, 0x40, 0xca, 0xdc, 0xe8, 0xe4, 0xd2, 0xca, 0xe6, 0x40, 0xda, 0xea, 0xe6, 0xe8, 0x40, 0xc4, 0xca, 0x40, 0xd2, 0xda, 0xda, 0xea, 0xe8, 0xc2, 0xc4, 0xd8, 0xca, 0x74, 0x40, 0xc2, 0x40, 0xd6, 0xca, 0xf2, 0x40, 0xc6, 0xc2, 0xdc, 0xdc, 0xde, 0xe8, 0x40, 0xc4, 0xca, 0x40, 0xde, 0xec, 0xca, 0xe4, 0xee, 0xe4, 0xd2, 0xe8, 0xe8, 0xca, 0xdc, 0x40, 0xee, 0xd2, 0xe8, 0xd0, 0x40, 0xc2, 0x40, 0xdc, 0xca, 0xee, 0x25, 0x00, 0x7e, 0xb0, 0x0b, 0x63, 0xab, 0x2b, 0x73, 0x01, 0xa1, 0x42, 0x4b, 0x9b, 0x03, 0x81, 0x93, 0x7b, 0x83, 0x2b, 0x93, 0xa3, 0xcb, 0x03, 0x49, 0x9b, 0x03, 0x29, 0x73, 0x33, 0x7b, 0x93, 0x1b, 0x2b, 0x23, 0x03, 0x31, 0x7b, 0x93, 0x03, 0x29, 0x73, 0xa3, 0x93, 0x4b, 0x2b, 0x9b, 0x03, 0x19, 0xab, 0x93, 0x93, 0x2b, 0x73, 0xa3, 0x63, 0xcb, 0x03, 0x99, 0xa3, 0x7b, 0x93, 0x2b, 0x23, 0x03, 0x49, 0x73, 0x03, 0xa1, 0x43, 0x2b, 0x97, 0x00, 0xf8, 0x62, 0x2c, 0x6c, 0x0c, 0xad, 0x8c, 0x05, 0x44, 0xac, 0x8e, 0x0e, 0x24, 0x8d, 0x0e, 0x24, 0x6d, 0x0e, 0xc4, 0xed, 0x8d, 0x0e, 0xa4, 0xcc, 0xcd, 0xec, 0x4d, 0x6e, 0xac, 0x8c, 0x0c, 0xc4, 0xec, 0x4d, 0x0e, 0x04, 0x4e, 0xae, 0xcc, 0x2e, 0xed, 0xad, 0x6e, 0x8e, 0x2d, 0x0f, 0x84, 0xac, 0x8c, 0xad, 0x8c, 0xae, 0x8c, 0x0c, 0xa4, 0xcc, 0x8d, 0x4e, 0x2e, 0xad, 0x6c, 0x8e, 0x05, 0x64, 0x2e, 0xcd, 0x6d, 0xac, 0x0c, 0xe4, 0xae, 0x5c, 0x02, 0xd0, 0xdb, 0xed, 0x0d, 0x84, 0xed, 0xcd, 0xed, 0xac, 0x4c, 0x0e, 0x44, 0xae, 0xac, 0xad, 0xac, 0x4d, 0xac, 0x4c, 0x0e, 0xe4, 0x0e, 0x2d, 0x8c, 0x0e, 0x84, 0x0e, 0x2d, 0x8c, 0x0e, 0x64, 0xad, 0x2c, 0xef, 0x64, 0x0e, 0xc4, 0x2e, 0x8c, 0xad, 0xae, 0x0c, 0xe4, 0x2e, 0x6c, 0x0e, 0x64, 0xae, 0x0e, 0x0e, 0xee, 0x6d, 0xae, 0x8c, 0x0c, 0x84, 0xee, 0x0d, 0x44, 0xac, 0xcc, 0xd5, 0x06, 0x85, 0x72, 0xe7, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0x3c, 0x22, 0xa0, 0xf2, 0xe0, 0xd8, 0x3a, 0xb0, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x92, 0x40, 0xe5, 0xc1, 0xb1, 0x75, 0xa0, 0x0d, 0xca, 0x32, 0xec, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0xcb, 0xe9, 0x29, 0x37, 0x08, 0xfd, 0x92, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0xcb, 0xe9, 0x29, 0xdb, 0xe0, 0x31, 0x11, 0x95, 0x1b, 0xbc, 0x4a, 0xa3, 0xb2, 0x59, 0x66, 0x01, 0x9e, 0x32, 0xbb, 0xb4, 0x31, 0x7a, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x20, 0xaa, 0x98, 0xc4, 0x1a, 0x80, 0x6f, 0xb9, 0xb2, 0xb6, 0x37, 0xbb, 0x32, 0x90, 0x30, 0x37, 0x90, 0x32, 0x37, 0x3a, 0xb9, 0x3c, 0x10, 0x33, 0xb9, 0xb7, 0x36, 0x10, 0x3a, 0xb4, 0x32, 0x90, 0xb1, 0xb0, 0x31, 0xb4, 0xb2, 0x0d, 0x5f, 0xbf, 0x6c, 0x10, 0x15, 0x4b, 0x62, 0x1b, 0x14, 0x7d, 0xba, 0x6b, 0xf0, 0x7c, 0x97, 0xca, 0x83, 0x58, 0x5a, 0x12, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x5e, 0xf3, 0x59, 0xc3, 0xdb, 0x3a, 0x07, 0x71, 0x08, 0x25, 0xd6, 0x86, 0xaf, 0x70, 0x36, 0x7c, 0xfd, 0xb2, 0x41, 0x54, 0x2c, 0x89, 0x6d, 0x50, 0x74, 0xd0, 0x0e, 0xf0, 0xbe, 0xb1, 0x91, 0xb5, 0xac, 0x95, 0xe5, 0x6b, 0xf0, 0xf0, 0x91, 0xca, 0x83, 0x58, 0x5a, 0x12, 0x5b, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0xc2, 0x4d, 0x74, 0x83, 0xf3, 0x30, 0xc8, 0x1a, 0xde, 0xd6, 0x39, 0x88, 0xcb, 0x29, 0xb1, 0x36, 0x28, 0x48, 0x63, 0x07, 0xf0, 0x78, 0x63, 0x23, 0x6b, 0x29, 0x73, 0xa3, 0x93, 0xcb, 0xd7, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0xb4, 0xb7, 0x96, 0xb5, 0x41, 0xd9, 0x54, 0xbf, 0x86, 0xb7, 0x75, 0x36, 0x78, 0x2b, 0x42, 0xe5, 0x41, 0x2c, 0x2d, 0x89, 0xb5, 0x86, 0xb7, 0x75, 0x36, 0x88, 0x85, 0x29, 0xb1, 0xda, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0xf0, 0xe0, 0xcd, 0x86, 0xb7, 0x75, 0x36, 0x78, 0x7a, 0x47, 0xe5, 0x06, 0x91, 0x5b, 0x25, 0xd6, 0x1a, 0x2e, 0xa9, 0x0d, 0x62, 0x69, 0x49, 0x6c, 0x35, 0x78, 0x2b, 0x42, 0x65, 0x1b, 0xde, 0xed, 0x59, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0xc3, 0xe9, 0xc5, 0x41, 0xac, 0x5c, 0x89, 0x1d, 0xc4, 0x0e, 0x96, 0x58, 0x1b, 0xac, 0x42, 0x52, 0xda, 0x70, 0x8a, 0xad, 0x41, 0x94, 0x5e, 0x89, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0xca, 0x16, 0xd4, 0x83, 0x58, 0xb9, 0x12, 0xdb, 0x20, 0x7e, 0xb0, 0xc4, 0xd6, 0x70, 0x49, 0x6d, 0x10, 0xef, 0x59, 0x62, 0xab, 0xc1, 0xd3, 0x3b, 0x2a, 0xdb, 0xf0, 0x6e, 0xcf, 0x86, 0xd7, 0x7c, 0x36, 0x88, 0xb7, 0x2c, 0xb1, 0x6a, 0x0d, 0xe2, 0x72, 0x4a, 0x6c, 0xc3, 0xbb, 0x3d, 0x6b, 0x50, 0x96, 0xbc, 0x6f, 0x50, 0xb6, 0xa0, 0x1e, 0x44, 0x2b, 0x95, 0xd8, 0x41, 0xec, 0x60, 0x89, 0xb5, 0x1a, 0x8c, 0x34, 0xf7, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0xdb, 0xa0, 0x1c, 0xeb, 0x1c, 0x00, 0x2f, 0xc3, 0xc8, 0xc8, 0x40, 0xc2, 0x40, 0xdc, 0xca, 0xee, 0x40, 0xc6, 0xc2, 0xc6, 0xd0, 0xca, 0x40, 0xca, 0xdc, 0xe8, 0xe4, 0xf2, 0x58, 0x40, 0xe0, 0xde, 0xe6, 0xe6, 0xd2, 0xc4, 0xd8, 0xf2, 0x40, 0xe4, 0xca, 0xda, 0xde, 0xec, 0xd2, 0xdc, 0xce, 0x40, 0xc2, 0xdc, 0x40, 0xde, 0xd8, 0xc8, 0x40, 0xde, 0xdc, 0xca, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0x45, 0xeb, 0xc9, 0xc1, 0x63, 0x22, 0x2a, 0xd7, 0xf0, 0xe7, 0xd2, 0x06, 0x67, 0x93, 0xab, 0x83, 0x57, 0x69, 0x54, 0xb6, 0xe1, 0xeb, 0x97, 0x0d, 0xa2, 0x62, 0x49, 0x6c, 0xc3, 0x07, 0x39, 0x6b, 0xf8, 0x37, 0x67, 0xc3, 0x83, 0x37, 0x1b, 0xde, 0xd6, 0xd9, 0xe0, 0xd5, 0x34, 0x95, 0x07, 0xb1, 0xb4, 0x24, 0xb6, 0x41, 0x54, 0x2c, 0x89, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0xf0, 0x97, 0xe1, 0xa5, 0xcd, 0xd1, 0xa5, 0xb9, 0x9d, 0x1b, 0xde, 0xed, 0x59, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0xc2, 0x4d, 0xf4, 0x20, 0x56, 0xae, 0xc4, 0x0e, 0x4e, 0xe0, 0x6c, 0x1b, 0x14, 0x03, 0xb2, 0x1b, 0xbe, 0x9c, 0x5c, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0xb0, 0x2c, 0x98, 0x70, 0xc3, 0xdb, 0x3a, 0x1b, 0x9c, 0x4d, 0xae, 0x06, 0xaf, 0x37, 0x88, 0x4d, 0x35, 0xb1, 0x36, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0x78, 0xcd, 0xe4, 0xca, 0xe6, 0xd0, 0xca, 0xdc, 0x0e, 0x4e, 0xe0, 0x6c, 0x1b, 0x1c, 0xc7, 0x26, 0x36, 0x88, 0xa5, 0x25, 0xb1, 0x35, 0xfc, 0x9b, 0xb3, 0x41, 0x4c, 0xa4, 0x89, 0x1d, 0x44, 0x63, 0x94, 0xd8, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0xaa, 0x98, 0xc4, 0xda, 0x60, 0x15, 0x92, 0xd2, 0x06, 0xb1, 0xb4, 0x24, 0xb6, 0x06, 0xef, 0xd2, 0xfd, 0xdd, 0xf0, 0x71, 0xd4, 0x41, 0x34, 0x46, 0x89, 0xad, 0x41, 0x14, 0x6b, 0x89, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x08, 0xeb, 0x12, 0xdb, 0xe0, 0xd0, 0xda, 0xb5, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0x16, 0x4c, 0x78, 0x50, 0x10, 0x8f, 0xb7, 0x1a, 0x3c, 0x7c, 0xa4, 0xb2, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x97, 0x60, 0x62, 0x07, 0x27, 0x70, 0xb6, 0x0e, 0xa7, 0xd8, 0x1a, 0x44, 0xc2, 0x9b, 0xd8, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x24, 0xbc, 0x89, 0x35, 0x00, 0x3e, 0xa5, 0xb9, 0x8d, 0xc9, 0x95, 0xb5, 0x95, 0xb9, 0xd1, 0x81, 0xd0, 0xa1, 0x95, 0x81, 0xc0, 0xc9, 0xbd, 0xd1, 0x95, 0x8d, 0xd1, 0xa5, 0xbd, 0xb9, 0x81, 0xb0, 0x95, 0xd9, 0x95, 0xb1, 0x81, 0xbc, 0xb9, 0x81, 0x84, 0xb9, 0x81, 0x94, 0xb9, 0xd1, 0xc9, 0xe5, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0x48, 0x33, 0x13, 0xdb, 0xf0, 0xf5, 0xcb, 0x06, 0x51, 0xb1, 0x24, 0xb6, 0xc1, 0x2a, 0x24, 0xa5, 0x0d, 0x62, 0x69, 0x49, 0x6c, 0x0d, 0xa2, 0x58, 0x4b, 0x6c, 0x83, 0xa2, 0xd3, 0x78, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x5a, 0x4e, 0xee, 0x3d, 0x88, 0x95, 0x2b, 0xb1, 0x0d, 0x0e, 0xad, 0x5d, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0x3c, 0x67, 0xfa, 0x71, 0xc3, 0xe7, 0x4a, 0x1b, 0x44, 0xca, 0x99, 0xd8, 0x1a, 0xfe, 0x5c, 0xda, 0xe0, 0xe9, 0x1d, 0x95, 0x07, 0x65, 0x96, 0x6e, 0x1b, 0x2e, 0xa9, 0x35, 0x78, 0xce, 0xf4, 0x63, 0x6b, 0x10, 0xfb, 0x5e, 0x62, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0x5d, 0x62, 0x6c, 0x0d, 0x1f, 0x47, 0x6d, 0x78, 0x5b, 0x67, 0x83, 0xa7, 0x77, 0x54, 0x1e, 0x44, 0xed, 0x9f, 0xd8, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0x5d, 0xd8, 0xf9, 0x41, 0x2c, 0x2d, 0x89, 0x55, 0x2b, 0xc0, 0x27, 0x57, 0x36, 0x97, 0xa6, 0x57, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xc4, 0xab, 0xa0, 0x58, 0x03, 0xe0, 0xe7, 0x18, 0x5a, 0x98, 0xdb, 0x59, 0xd9, 0x1c, 0x08, 0x1d, 0x5a, 0x19, 0x48, 0x5b, 0x18, 0x5e, 0x5a, 0x5b, 0x5d, 0x1b, 0xc8, 0x5c, 0x9a, 0x5e, 0x19, 0x0b, 0x88, 0x5c, 0x59, 0xdb, 0x9b, 0x5d, 0x9a, 0xdb, 0x19, 0x48, 0x99, 0x1b, 0x9d, 0x5c, 0x5a, 0xd9, 0x1c, 0x48, 0x9a, 0x19, 0x88, 0x5b, 0x59, 0x19, 0x59, 0x19, 0xd9, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0x00, 0xaf, 0x5b, 0xd9, 0x5d, 0x4b, 0x5b, 0x18, 0x7e, 0x50, 0x66, 0xe9, 0x6e, 0xf8, 0xfa, 0x65, 0x83, 0xa8, 0x58, 0x12, 0xdb, 0xa0, 0xe8, 0xd3, 0xdd, 0x20, 0x92, 0xd2, 0xc4, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x31, 0x80, 0x28, 0xd6, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x69, 0xd8, 0x4a, 0x1b, 0x44, 0x76, 0xa2, 0xd8, 0x41, 0x24, 0x46, 0x89, 0x6d, 0x10, 0x15, 0x4b, 0x62, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0xac, 0xb6, 0xa2, 0x6b, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x14, 0x70, 0x83, 0x68, 0x8c, 0x12, 0xdb, 0x20, 0xb2, 0x13, 0xc5, 0x6a, 0xd6, 0x60, 0xb5, 0x15, 0xdd, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0x6d, 0xb0, 0x9a, 0x8b, 0x6e, 0x00, 0xfc, 0x90, 0x2b, 0x6b, 0x7b, 0xb3, 0x2b, 0x03, 0xd1, 0x19, 0x7b, 0xab, 0x73, 0xa3, 0x03, 0x29, 0x73, 0xa3, 0x93, 0x4b, 0x2b, 0x9b, 0x03, 0x31, 0x93, 0x7b, 0x6b, 0x03, 0xa1, 0x43, 0x2b, 0x03, 0x19, 0x0b, 0x1b, 0x43, 0x2b, 0xdb, 0xf0, 0x8b, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0xe0, 0x19, 0x7b, 0xab, 0x73, 0xa3, 0x0f, 0xca, 0x2c, 0xdd, 0x0d, 0x5f, 0xbf, 0x6c, 0x10, 0x15, 0x4b, 0x62, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x1b, 0x1e, 0xbc, 0xd9, 0xf0, 0xb6, 0xce, 0x06, 0xd1, 0x19, 0x29, 0xd6, 0x06, 0x51, 0xb1, 0x24, 0xb6, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0x41, 0x7c, 0x4e, 0x8a, 0x6d, 0x78, 0xb7, 0x67, 0xc3, 0x6b, 0x3e, 0x1b, 0x44, 0xda, 0xa4, 0x58, 0x6b, 0x10, 0x4b, 0x4b, 0x62, 0x07, 0x31, 0x13, 0x27, 0xd6, 0xe1, 0x14, 0x5b, 0x80, 0x07, 0xae, 0x4e, 0xee, 0xac, 0xdc, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x88, 0x38, 0x4b, 0xb1, 0x06, 0xe0, 0x51, 0xae, 0xac, 0xed, 0xcd, 0xae, 0x6c, 0x0e, 0x24, 0x8c, 0x8d, 0x0d, 0x64, 0x2c, 0x6c, 0x0c, 0xad, 0x0c, 0xa4, 0xcc, 0x8d, 0x4e, 0x2e, 0xad, 0x6c, 0x6e, 0xc3, 0xd7, 0x2f, 0x1b, 0x44, 0xc5, 0x92, 0xd8, 0x06, 0xab, 0x90, 0x94, 0x36, 0x88, 0xa5, 0x25, 0xb1, 0x35, 0x88, 0x62, 0x2d, 0xb1, 0x83, 0x82, 0x22, 0x73, 0x0d, 0x62, 0x9e, 0x4e, 0xec, 0xa0, 0xa0, 0xc8, 0x5c, 0x83, 0x77, 0xe9, 0xfe, 0x1e, 0x1e, 0xbc, 0x69, 0xd6, 0xa0, 0x44, 0x68, 0xd9, 0xf0, 0x8b, 0xd2, 0x06, 0x91, 0x66, 0x26, 0xb6, 0xe1, 0x2f, 0x9a, 0x35, 0x7c, 0xae, 0xb4, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0xd9, 0x84, 0x79, 0x10, 0xe3, 0x4b, 0x62, 0x6b, 0x10, 0x40, 0x67, 0x07, 0x51, 0xb1, 0x24, 0xd6, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x00, 0x1e, 0x6d, 0x61, 0x79, 0x62, 0x65, 0x2d, 0x67, 0x6f, 0xf4, 0x41, 0xcc, 0xac, 0x89, 0x6d, 0x50, 0xc2, 0x63, 0xae, 0x41, 0x0c, 0x7d, 0x8a, 0xb5, 0x86, 0x5f, 0x5c, 0x36, 0x28, 0x28, 0x32, 0x37, 0x88, 0x8a, 0x25, 0xb1, 0x36, 0x28, 0xfa, 0x74, 0x37, 0x88, 0xa5, 0x25, 0xb1, 0x0d, 0xa2, 0xd2, 0x4d, 0x6c, 0xc3, 0x2f, 0x2e, 0x6b, 0x70, 0x0c, 0x37, 0xd8, 0xf0, 0xb6, 0xce, 0x06, 0x67, 0x93, 0xab, 0xc1, 0xeb, 0x83, 0xd8, 0x03, 0x15, 0x3b, 0x88, 0xa2, 0x50, 0xb1, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x56, 0x00, 0x6f, 0xba, 0xb7, 0x96, 0xb1, 0x30, 0x38, 0xb8, 0x32, 0xb2, 0x96, 0xb8, 0xba, 0xb2, 0xba, 0x72, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x20, 0xe2, 0x48, 0xc5, 0x1a, 0x80, 0xff, 0x34, 0x37, 0xba, 0x32, 0x39, 0xb3, 0xb0, 0xb1, 0x32, 0x10, 0xb2, 0xb7, 0x37, 0x39, 0x10, 0xb3, 0x37, 0x39, 0x90, 0x95, 0xb1, 0x30, 0x38, 0xb8, 0x32, 0xb2, 0x96, 0xb8, 0xba, 0xb2, 0xba, 0x72, 0x25, 0x00, 0xbe, 0x80, 0x92, 0x7b, 0xb3, 0x4b, 0x23, 0x2b, 0x9b, 0x03, 0x09, 0x03, 0x89, 0xab, 0x2b, 0xab, 0x2b, 0x03, 0x79, 0x33, 0x03, 0x09, 0x03, 0x61, 0x4b, 0x6b, 0x4b, 0xa3, 0x2b, 0x23, 0x03, 0x99, 0x4b, 0xd3, 0x2b, 0x03, 0xb9, 0x43, 0x2b, 0x93, 0x2b, 0x03, 0x81, 0xab, 0x9b, 0x43, 0x4b, 0x73, 0x3b, 0x03, 0x09, 0x23, 0x23, 0x4b, 0xa3, 0x4b, 0x7b, 0x73, 0x0b, 0x63, 0x03, 0x49, 0xa3, 0x2b, 0x6b, 0x9b, 0x03, 0xb9, 0x4b, 0x63, 0x63, 0x97, 0x00, 0x74, 0x33, 0x7b, 0x93, 0x1b, 0x2b, 0x03, 0x81, 0x7b, 0x83, 0x03, 0xa1, 0x43, 0x2b, 0x03, 0x49, 0xa3, 0x2b, 0x6b, 0x9b, 0x03, 0x09, 0xa3, 0x03, 0xa1, 0x43, 0x2b, 0x03, 0x31, 0x93, 0x7b, 0x73, 0xa3, 0x03, 0x79, 0x33, 0x03, 0xa1, 0x43, 0x2b, 0x03, 0x89, 0xab, 0x2b, 0xab, 0x2b, 0x73, 0xb5, 0x41, 0xa1, 0xdc, 0xb9, 0x86, 0x3f, 0x97, 0x36, 0x78, 0xcb, 0x88, 0xe6, 0xc1, 0xb1, 0x75, 0x60, 0x83, 0xb2, 0x0c, 0x7b, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0xf0, 0x91, 0xca, 0x0d, 0x42, 0xbf, 0x64, 0x0d, 0x6f, 0xeb, 0x6c, 0xf0, 0x4c, 0x0d, 0xcd, 0x36, 0x78, 0x2d, 0x8b, 0x66, 0xb3, 0xcc, 0x1a, 0x8c, 0x34, 0xf7, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0xcf, 0xa5, 0x0d, 0xc2, 0x15, 0xe1, 0xe0, 0xb5, 0x2c, 0x9a, 0x1b, 0xfe, 0xa2, 0x59, 0xc3, 0xe7, 0x4a, 0x6b, 0x10, 0xfa, 0x25, 0x1b, 0x94, 0x4d, 0x98, 0x07, 0x51, 0x2d, 0x2b, 0xb6, 0x06, 0x01, 0x74, 0xb6, 0xe1, 0x6d, 0x9d, 0x83, 0x98, 0xa7, 0x13, 0x6b, 0x83, 0x62, 0x47, 0x73, 0x0d, 0xff, 0xe6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x9e, 0xef, 0x52, 0x79, 0x10, 0xf3, 0x74, 0x62, 0x1b, 0xde, 0xd6, 0xd9, 0xe0, 0xd5, 0x34, 0x95, 0x07, 0x31, 0x4f, 0x27, 0xb6, 0x06, 0x45, 0x9f, 0xee, 0x1a, 0x3c, 0x7c, 0xa4, 0xf2, 0x20, 0xe6, 0xe9, 0xc4, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0x94, 0x2d, 0xa8, 0x1b, 0x9c, 0x87, 0x41, 0xd6, 0xf0, 0xb6, 0xce, 0x41, 0x0c, 0xe3, 0x8a, 0xb5, 0x41, 0x53, 0xb8, 0x10, 0x6d, 0x50, 0xf4, 0xe9, 0x6e, 0x10, 0x21, 0xb7, 0x62, 0x6b, 0xf8, 0x38, 0xea, 0x20, 0xd6, 0x6d, 0xc5, 0x36, 0xfc, 0xe2, 0xb2, 0x41, 0x41, 0x91, 0xb9, 0x41, 0xac, 0xd7, 0x8a, 0xb5, 0xe1, 0x83, 0x9c, 0x35, 0xfc, 0x9b, 0xb3, 0x41, 0x41, 0x91, 0x79, 0x10, 0x59, 0xba, 0x62, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0x8e, 0xe1, 0x06, 0x07, 0x4d, 0xe1, 0x42, 0x1c, 0xc4, 0x2a, 0xaf, 0xd8, 0x06, 0x45, 0x07, 0xed, 0x00, 0xdf, 0x1b, 0x1b, 0x59, 0xd9, 0x1c, 0xbd, 0x41, 0x0c, 0xe3, 0x8a, 0xad, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0xe1, 0x26, 0x7a, 0x10, 0x13, 0xba, 0x62, 0x1b, 0x14, 0x7d, 0xba, 0x1b, 0xc4, 0x30, 0xae, 0xd8, 0x06, 0x91, 0x95, 0x2b, 0xb6, 0xe1, 0x17, 0x97, 0x35, 0x38, 0x86, 0x1b, 0x6c, 0x78, 0x5b, 0x67, 0x83, 0x18, 0xfa, 0x15, 0xeb, 0x20, 0x56, 0x79, 0xc5, 0x66, 0x0d, 0x4a, 0x84, 0x96, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0xdb, 0xa0, 0xcc, 0x44, 0x1d, 0x00, 0x8f, 0xe0, 0xde, 0xe0, 0x40, 0xc2, 0xdc, 0x40, 0xd2, 0xe8, 0xca, 0xda, 0x40, 0xde, 0xcc, 0xcc, 0x40, 0xe8, 0xd0, 0xca, 0x40, 0xe2, 0xea, 0xca, 0xea, 0xca, 0x58, 0x40, 0xc2, 0xc8, 0xd4, 0xea, 0xe6, 0xe8, 0xd2, 0xdc, 0xce, 0x40, 0xe6, 0xd2, 0xf4, 0xca, 0x36, 0xfc, 0x45, 0xb3, 0x86, 0xcf, 0x95, 0x36, 0x78, 0x2d, 0x8b, 0xe6, 0x41, 0xac, 0xd6, 0x8a, 0x6d, 0x50, 0xf4, 0xe9, 0x6e, 0x10, 0x21, 0xb7, 0x62, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x6b, 0x3e, 0x1b, 0xc4, 0xba, 0xad, 0x58, 0x1b, 0x14, 0x1d, 0xb4, 0x1b, 0xc4, 0xd0, 0xaf, 0xd8, 0x06, 0x31, 0x8c, 0x2b, 0xb6, 0x41, 0x2c, 0x00, 0x8b, 0x6d, 0xf8, 0xc5, 0x65, 0x83, 0x38, 0x11, 0x16, 0x3b, 0x88, 0x55, 0x5e, 0xb1, 0xd5, 0x20, 0x5e, 0x05, 0xc5, 0x36, 0x28, 0xed, 0x2d, 0xd7, 0xf0, 0xe7, 0xd2, 0x80, 0x0f, 0xf7, 0x06, 0x37, 0x6f, 0x10, 0xfa, 0x25, 0x1b, 0x84, 0x94, 0xc9, 0x41, 0x54, 0xcb, 0x8a, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0x48, 0x3e, 0x14, 0xdb, 0xf0, 0xf5, 0xcb, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0xc4, 0xec, 0xb2, 0x58, 0x07, 0xb1, 0xca, 0x2b, 0xb6, 0xe1, 0x83, 0x9c, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x1a, 0xb6, 0xd2, 0x06, 0x91, 0x9d, 0x28, 0x76, 0x10, 0xa3, 0xc8, 0x62, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x58, 0x2c, 0x6f, 0x10, 0xbd, 0xcd, 0x62, 0xad, 0xe1, 0x92, 0xda, 0x20, 0xe6, 0xe9, 0xc4, 0x56, 0x83, 0x57, 0xd3, 0x54, 0x76, 0x10, 0xd9, 0x89, 0x62, 0xb5, 0x41, 0xd1, 0x41, 0xbb, 0x41, 0x0c, 0xfd, 0x8a, 0x6d, 0x10, 0xf3, 0x74, 0x62, 0x1b, 0x9c, 0x3b, 0x2d, 0x36, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x88, 0xf9, 0x66, 0xb1, 0x0d, 0xbf, 0xb8, 0x6c, 0x10, 0x27, 0xc2, 0x62, 0x07, 0x71, 0x08, 0x2d, 0xd6, 0xe1, 0x14, 0xeb, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x6b, 0x01, 0x6f, 0x4c, 0x6e, 0xdc, 0xa0, 0xec, 0x92, 0x1d, 0xf0, 0xc6, 0xe4, 0xc6, 0x0d, 0xde, 0x2c, 0x7c, 0x32, 0x1b, 0x94, 0x2c, 0xec, 0xb3, 0xcc, 0x02, 0x78, 0x8d, 0xc9, 0x8d, 0xcd, 0xc8, 0xb4, 0xd0, 0x85, 0x89, 0xb1, 0x95, 0x1b, 0x2c, 0xec, 0x5c, 0xda, 0xf0, 0x17, 0xcd, 0x06, 0x07, 0x8f, 0xd2, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x4a, 0xa4, 0xea, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x8b, 0x74, 0xa5, 0x37, 0x3c, 0x78, 0x73, 0x90, 0xb0, 0x6f, 0xb9, 0xe1, 0x17, 0xa5, 0x0d, 0xce, 0x93, 0x2a, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x2c, 0x95, 0x24, 0xdc, 0x20, 0x36, 0x3c, 0xa5, 0x36, 0x7c, 0xd7, 0xb2, 0x86, 0x5f, 0x5c, 0x36, 0x48, 0x0f, 0x83, 0x5a, 0xc3, 0xe7, 0x2e, 0x1b, 0x9c, 0xd0, 0x3a, 0x0f, 0xca, 0xe8, 0xf3, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0xa3, 0xb8, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x7a, 0xc7, 0x6d, 0x70, 0x2c, 0xee, 0x3c, 0x28, 0x88, 0xc7, 0x0f, 0x0a, 0x27, 0xd9, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x21, 0x06, 0x62, 0x0d, 0x3f, 0xc2, 0x0c, 0x7c, 0x1d, 0x7e, 0x10, 0x6d, 0xee, 0x46, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x12, 0x1f, 0x77, 0x83, 0x22, 0x75, 0xfc, 0xe0, 0x20, 0xe0, 0xd9, 0x41, 0x1c, 0x7f, 0x8b, 0xad, 0x06, 0xb1, 0xbd, 0x72, 0xb4, 0xe1, 0xf1, 0x91, 0x0d, 0x62, 0x7b, 0xe5, 0x68, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x83, 0x3c, 0xdb, 0xc1, 0xd3, 0xcf, 0xe5, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0xb1, 0xa5, 0x74, 0xc3, 0x07, 0x39, 0x6b, 0xf8, 0x37, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0x0e, 0x1f, 0x1c, 0x4b, 0xe3, 0x0e, 0x0f, 0xde, 0x6c, 0xb0, 0x74, 0x0d, 0x75, 0x83, 0x82, 0x34, 0x76, 0x00, 0x9f, 0x34, 0x37, 0xb8, 0x3a, 0xba, 0x16, 0xb6, 0xb4, 0x39, 0x7a, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0x22, 0x68, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0x44, 0xcb, 0x1b, 0x14, 0x95, 0xe2, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xf8, 0xe0, 0x58, 0x1a, 0xd7, 0x1a, 0xde, 0xed, 0xd9, 0xe0, 0x24, 0xd3, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0x0a, 0xb8, 0x41, 0x04, 0x8f, 0x8b, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x8a, 0xe2, 0xdf, 0x83, 0x18, 0x36, 0x17, 0xeb, 0xa0, 0x70, 0x92, 0x6d, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x43, 0x0c, 0xc4, 0x06, 0xa9, 0x0e, 0x8e, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x2c, 0x95, 0x24, 0x5c, 0xc3, 0xdb, 0x3a, 0x1b, 0x44, 0x44, 0xb9, 0x58, 0x1b, 0xbe, 0x6b, 0x59, 0xc3, 0x2f, 0x2e, 0x1b, 0xa4, 0x87, 0x41, 0xad, 0xe1, 0x73, 0x97, 0x0d, 0x4e, 0x68, 0x9d, 0x07, 0xa9, 0x0e, 0x8e, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x43, 0x0c, 0xc4, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xa8, 0x9c, 0x5f, 0xc3, 0xbb, 0x3d, 0x1b, 0x1c, 0xbd, 0xe3, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x87, 0x18, 0x88, 0x0d, 0x8e, 0xc5, 0x9d, 0x87, 0x87, 0x7e, 0x0e, 0x96, 0xe9, 0xa1, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0xe2, 0xde, 0x5a, 0xac, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x25, 0x3e, 0xee, 0x06, 0x87, 0x8e, 0xb9, 0x83, 0x83, 0x80, 0x67, 0x87, 0x53, 0xac, 0xc3, 0x29, 0x36, 0x6b, 0x10, 0x6d, 0x35, 0x5f, 0x1b, 0xa4, 0x5e, 0x14, 0x6f, 0x50, 0xb2, 0xb0, 0xcf, 0x32, 0x0b, 0xe0, 0x41, 0x26, 0xf7, 0x06, 0xd7, 0xc2, 0x96, 0x36, 0x47, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xc4, 0xaa, 0xbc, 0x58, 0x07, 0x11, 0x12, 0xf6, 0x75, 0x10, 0x69, 0x62, 0x5f, 0x2b, 0xc0, 0x4f, 0x26, 0xf7, 0x06, 0xd7, 0xd2, 0x16, 0x06, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xc4, 0x3b, 0xbd, 0x58, 0x07, 0xd1, 0x53, 0x01, 0x76, 0x10, 0x75, 0x16, 0x60, 0x87, 0x53, 0x6c, 0x01, 0x3c, 0xc8, 0xe4, 0xde, 0xe0, 0x5a, 0xe0, 0xde, 0xd8, 0xca, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x28, 0xba, 0x17, 0x6b, 0x00, 0x1e, 0xc6, 0xde, 0xd8, 0xd8, 0xc2, 0xe0, 0xe6, 0xca, 0x40, 0xe8, 0xde, 0x40, 0xe8, 0xea, 0xe0, 0xd8, 0xca, 0x36, 0x38, 0x60, 0xd1, 0xad, 0x41, 0xa1, 0xdc, 0xb9, 0x86, 0x3f, 0x97, 0x36, 0x68, 0xe0, 0x43, 0xed, 0x20, 0x7e, 0x1a, 0xbf, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x00, 0x1e, 0x74, 0x65, 0x73, 0x74, 0x2d, 0x70, 0x6f, 0x6c, 0x65, 0x6b, 0x78, 0x5b, 0xe7, 0xa0, 0x41, 0x14, 0xb5, 0x36, 0x28, 0x28, 0x32, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0x59, 0x0a, 0x6c, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0x3c, 0xdc, 0xca, 0xca, 0xc8, 0x5a, 0xe0, 0xde, 0xd8, 0xca, 0x0e, 0x62, 0x9a, 0x5f, 0xac, 0x65, 0xd6, 0x20, 0x0a, 0xfd, 0xc5, 0x36, 0x28, 0x94, 0x3b, 0x37, 0x88, 0x57, 0x7d, 0xb1, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x1a, 0x44, 0x51, 0xdb, 0x20, 0x3c, 0x55, 0x37, 0x28, 0xe1, 0x31, 0xd7, 0x78, 0x7e, 0xd0, 0x20, 0x8a, 0xda, 0x1a, 0x1e, 0x94, 0xdc, 0x20, 0x31, 0xf4, 0x6a, 0xc3, 0x25, 0xb5, 0x06, 0x21, 0x00, 0x7e, 0xd0, 0x20, 0x8a, 0x5a, 0x1b, 0x7e, 0x71, 0xd9, 0x20, 0xc6, 0x03, 0xc6, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xb1, 0xe4, 0x2f, 0xb6, 0x86, 0x4b, 0x6a, 0x83, 0xc8, 0x0b, 0x18, 0xab, 0x56, 0x83, 0x18, 0xe1, 0x17, 0xdb, 0xa0, 0x50, 0xee, 0xdc, 0x20, 0x5e, 0xf5, 0xc5, 0x36, 0xfc, 0x45, 0xb3, 0xe1, 0x83, 0xd5, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x1a, 0x44, 0x51, 0xdb, 0xa0, 0xc8, 0x69, 0xdd, 0xf0, 0x2b, 0xd9, 0x1a, 0x14, 0x93, 0x98, 0x1b, 0x84, 0xe0, 0xc3, 0xc6, 0xa1, 0x83, 0x06, 0x51, 0xd4, 0xd6, 0xa0, 0x84, 0xc7, 0xdc, 0x20, 0xf2, 0x02, 0xc6, 0x36, 0x28, 0x60, 0xf3, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0xa4, 0xef, 0x8b, 0x1d, 0xc4, 0x06, 0xc1, 0x58, 0x87, 0x53, 0xac, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0xac, 0x41, 0x34, 0x64, 0x5e, 0x6d, 0x90, 0x7a, 0x51, 0xbc, 0xc1, 0x2a, 0x2c, 0xa7, 0x35, 0xbc, 0xad, 0x73, 0xf0, 0xd8, 0x02, 0xbb, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x83, 0x48, 0xc8, 0xbc, 0xda, 0xa0, 0x64, 0x61, 0x9f, 0x65, 0x16, 0xe0, 0x23, 0x2b, 0x6b, 0xc1, 0x6b, 0x63, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0xa2, 0x93, 0x61, 0xac, 0x01, 0x7c, 0xf0, 0xda, 0xd8, 0x40, 0xe0, 0xc2, 0xe4, 0xe6, 0xca, 0xe4, 0x36, 0x3c, 0x28, 0xb9, 0x86, 0x5f, 0x94, 0x36, 0x88, 0xf7, 0x94, 0xa7, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xd6, 0x00, 0x76, 0xc3, 0xd3, 0x3a, 0x1b, 0x34, 0xd9, 0x3d, 0xd6, 0x06, 0x65, 0x19, 0xf6, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xca, 0xdc, 0xe8, 0x0d, 0x02, 0xe8, 0x6c, 0xc3, 0x5f, 0x34, 0x6b, 0x10, 0xfa, 0x25, 0x1b, 0x94, 0x88, 0xf5, 0x1b, 0xac, 0xd7, 0x7a, 0x3e, 0x38, 0x3e, 0xb9, 0x6e, 0xf8, 0xc5, 0x65, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x8d, 0xbb, 0x0d, 0x2f, 0xdf, 0x1d, 0xc4, 0xd1, 0xce, 0xd1, 0xc1, 0x82, 0x88, 0xd9, 0x83, 0xb2, 0xcc, 0x73, 0x96, 0x59, 0xc0, 0x1f, 0x7b, 0x6b, 0xa3, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x22, 0x92, 0x62, 0xac, 0x83, 0x25, 0x65, 0xa4, 0x1b, 0x1c, 0x6d, 0xf8, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x0b, 0x35, 0x49, 0xd7, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0xe1, 0xc3, 0xe8, 0x1a, 0x7e, 0x84, 0x19, 0x9c, 0x3e, 0x88, 0x8b, 0xa2, 0xa3, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x0b, 0x1f, 0x46, 0xd7, 0xf0, 0x23, 0xcc, 0xe0, 0x74, 0xa0, 0xb5, 0xb4, 0xf8, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0x54, 0x0c, 0x3d, 0x48, 0x05, 0x1a, 0x6b, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x07, 0x06, 0x5d, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0x2c, 0x3b, 0x06, 0xdd, 0x60, 0xb1, 0x50, 0xe8, 0xc1, 0x2a, 0x69, 0xd0, 0x0d, 0x1a, 0xf5, 0xf9, 0x5c, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0x2c, 0x3b, 0x06, 0xdd, 0x20, 0x92, 0x30, 0xc6, 0x0e, 0x56, 0x1b, 0x85, 0xb6, 0x02, 0x7e, 0x18, 0x1d, 0x9d, 0xbc, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x10, 0x47, 0x1d, 0x63, 0x0d, 0xe0, 0x13, 0x46, 0x47, 0x27, 0x97, 0x26, 0x56, 0x47, 0x57, 0x36, 0xb7, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0xea, 0x5e, 0xd6, 0x35, 0x28, 0x04, 0x53, 0x0f, 0xd6, 0x77, 0x6a, 0x6f, 0x70, 0x1e, 0xec, 0xd8, 0x60, 0x39, 0x24, 0xd3, 0x6c, 0x70, 0x62, 0xbf, 0xd9, 0x60, 0xa1, 0x62, 0xe8, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x51, 0x11, 0xba, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x3b, 0x0e, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x98, 0x4c, 0x7a, 0xd0, 0xa4, 0xcf, 0xe7, 0x06, 0x2d, 0x61, 0x70, 0xb6, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x0f, 0x0c, 0xba, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x0b, 0x35, 0x49, 0xd7, 0x60, 0x49, 0x75, 0xd2, 0x06, 0x6d, 0x5f, 0x89, 0x6e, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x85, 0x9a, 0xa4, 0x6b, 0x78, 0x50, 0x72, 0x0d, 0xbf, 0xb8, 0x6c, 0x90, 0xd8, 0x52, 0xb5, 0x41, 0x62, 0x4b, 0x55, 0x1b, 0xde, 0xed, 0xd9, 0x60, 0xa1, 0x62, 0xe8, 0x41, 0x93, 0x3e, 0x9f, 0x07, 0xab, 0x01, 0x48, 0x0f, 0xda, 0xce, 0x12, 0xdd, 0xf0, 0x6e, 0xcf, 0x06, 0x0b, 0x15, 0x43, 0xd7, 0x60, 0x85, 0x50, 0xd3, 0x06, 0xcb, 0x8e, 0x41, 0x37, 0x68, 0xfb, 0x4a, 0x74, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x65, 0x73, 0x63, 0x70, 0xb5, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x0b, 0x35, 0x49, 0xd7, 0x60, 0x49, 0x75, 0xd2, 0x06, 0x8b, 0x9c, 0x41, 0x37, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x8a, 0x8a, 0xd0, 0x0d, 0xe2, 0xbc, 0x64, 0xec, 0x60, 0xc5, 0x28, 0xe9, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xa8, 0x18, 0xba, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x76, 0x0c, 0xba, 0xc1, 0x22, 0x67, 0xd0, 0x83, 0xe8, 0x4f, 0x19, 0xeb, 0x60, 0x89, 0x49, 0x69, 0x2b, 0xe0, 0x8f, 0xa1, 0xc9, 0x91, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xf1, 0xeb, 0x32, 0xd6, 0x00, 0xbe, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x20, 0x64, 0x61, 0x74, 0x61, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x2c, 0xab, 0x04, 0x5d, 0xc3, 0x2f, 0x4a, 0x1b, 0x2c, 0x22, 0xa8, 0xdb, 0xf0, 0x17, 0xcd, 0x06, 0x8f, 0x57, 0xed, 0x3b, 0x68, 0x52, 0x8c, 0x75, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0x4c, 0x26, 0x5d, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x07, 0x06, 0xdd, 0x60, 0x4d, 0x46, 0xe8, 0x41, 0xf4, 0xa7, 0x8c, 0x35, 0x6b, 0x10, 0x84, 0x4b, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x41, 0x42, 0x43, 0xe4, 0x00, 0x5e, 0x63, 0x6c, 0x6f, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x61, 0x67, 0x1b, 0xde, 0xed, 0xd9, 0x60, 0xa1, 0x26, 0xe9, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0x7c, 0x18, 0x5d, 0xc3, 0x8f, 0x30, 0x83, 0xd3, 0x41, 0xf3, 0xbc, 0x0e, 0x16, 0x6e, 0x89, 0x1e, 0xc4, 0xd7, 0xc8, 0xd8, 0x0a, 0xf8, 0x64, 0x65, 0x63, 0xec, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x6c, 0xe2, 0x8c, 0x35, 0x00, 0x1f, 0x2b, 0x2b, 0x64, 0x65, 0x63, 0x6c, 0x3a, 0x64, 0x65, 0x2d, 0x78, 0x6d, 0x6c, 0x3a, 0x68, 0x74, 0x6d, 0x6c, 0x1b, 0x14, 0x9d, 0xc6, 0x6b, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xe0, 0x8d, 0xd5, 0xc4, 0x04, 0x42, 0x56, 0x36, 0xc6, 0x16, 0x26, 0x17, 0x46, 0x97, 0xf6, 0xe6, 0x76, 0xb0, 0x50, 0x93, 0x74, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0x3e, 0x8c, 0xae, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0x83, 0x48, 0x4f, 0x3b, 0x6a, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xf0, 0x61, 0x74, 0x0d, 0x3f, 0xc2, 0x0c, 0x4e, 0x07, 0xfd, 0xe3, 0x6b, 0x83, 0x13, 0xfb, 0xcd, 0x06, 0x0b, 0x15, 0x43, 0x37, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0xb2, 0x63, 0xd0, 0x0d, 0x22, 0xd4, 0x67, 0xec, 0x60, 0x95, 0x34, 0xe8, 0xe1, 0x14, 0x6b, 0x01, 0x7f, 0x8c, 0x2c, 0x8c, 0xde, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x88, 0xc2, 0xa0, 0xb1, 0x06, 0xf0, 0x1c, 0x22, 0x0a, 0xa2, 0x0a, 0x02, 0x99, 0x2b, 0x1b, 0xa3, 0x4b, 0x7b, 0x73, 0xdb, 0xa0, 0xe8, 0x34, 0xde, 0x60, 0x59, 0x25, 0xe8, 0x06, 0xd1, 0x19, 0x33, 0xb6, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0x42, 0x4d, 0xd2, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xf8, 0x30, 0xba, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x0f, 0xa2, 0x3b, 0xee, 0xa8, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xc2, 0x87, 0xd1, 0x35, 0xfc, 0x08, 0x33, 0x38, 0x1d, 0x68, 0x5d, 0x5d, 0xbe, 0x36, 0x38, 0xb1, 0xdf, 0x6c, 0xb0, 0x50, 0x31, 0x74, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0x2c, 0x3b, 0x06, 0xdd, 0x20, 0x0a, 0x8d, 0xc6, 0x36, 0x58, 0x22, 0x5c, 0xdb, 0x6a, 0xd0, 0x9e, 0xf7, 0xd8, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0x6d, 0xd0, 0xb6, 0xd9, 0xea, 0x00, 0x1e, 0x74, 0x6f, 0x70, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x03, 0xde, 0x1c, 0x5c, 0xb8, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x03, 0x83, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0x22, 0x92, 0x62, 0xac, 0x83, 0x26, 0x7d, 0x3e, 0x37, 0x28, 0x3a, 0x8d, 0x37, 0x58, 0xdd, 0xcb, 0xba, 0x06, 0x85, 0x60, 0xea, 0xc1, 0xc2, 0x87, 0xed, 0x0d, 0xce, 0x83, 0x1d, 0x1b, 0x2c, 0x87, 0x64, 0x9a, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x16, 0x6a, 0x92, 0xae, 0xe1, 0x17, 0x97, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x8a, 0x8a, 0xd0, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xba, 0x56, 0xd2, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xcd, 0xc1, 0x85, 0xad, 0xe1, 0x6d, 0x9d, 0x0d, 0x62, 0x13, 0x67, 0xac, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x0b, 0x15, 0x43, 0x37, 0x88, 0x42, 0xa8, 0xb1, 0x3a, 0x88, 0xca, 0xa8, 0xb1, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x1e, 0x18, 0x74, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x96, 0xd8, 0xb1, 0xae, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x0f, 0x0f, 0x16, 0x89, 0x6b, 0xaf, 0xe1, 0xcf, 0xa5, 0xc1, 0xc5, 0x83, 0x55, 0xe9, 0xda, 0x6b, 0xf8, 0x73, 0x69, 0xf0, 0xf1, 0x60, 0x95, 0xa5, 0x76, 0x1b, 0x14, 0x3b, 0x9a, 0x6b, 0xf8, 0x37, 0x67, 0xc3, 0xd3, 0x3b, 0x07, 0x25, 0x33, 0xe6, 0x06, 0x05, 0x45, 0xe6, 0x86, 0x77, 0x7b, 0x36, 0x38, 0x4b, 0x81, 0x6d, 0x50, 0xf2, 0x05, 0xb7, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x56, 0x54, 0x84, 0x6e, 0xb0, 0x2a, 0x8c, 0x78, 0x83, 0x96, 0x99, 0x08, 0x0f, 0x8e, 0xd5, 0x72, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x2f, 0x6b, 0x83, 0xa3, 0xeb, 0x70, 0x8a, 0xb5, 0x06, 0xe9, 0x94, 0x3e, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xe9, 0x94, 0x3e, 0x1d, 0xbc, 0x49, 0x4f, 0x7c, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x1d, 0x07, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0x54, 0x0c, 0xdd, 0x20, 0x96, 0x98, 0xc6, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0x54, 0x0c, 0x5d, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x2b, 0x18, 0x5d, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x07, 0x06, 0xdd, 0xa0, 0xc9, 0xee, 0xb1, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xfc, 0xba, 0x8c, 0xb5, 0x86, 0xb7, 0x75, 0x36, 0x88, 0xc2, 0xa0, 0xb1, 0xda, 0x20, 0x5a, 0xb8, 0xc6, 0xaa, 0xd5, 0x20, 0x58, 0x96, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x83, 0x76, 0x0b, 0x42, 0x07, 0xf0, 0x7a, 0x83, 0x2b, 0x73, 0x4b, 0x73, 0x3b, 0x03, 0xa1, 0x0b, 0x3b, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0x0b, 0x35, 0x49, 0x37, 0x68, 0x5b, 0x62, 0x73, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xa2, 0x22, 0x74, 0x83, 0x96, 0x30, 0x38, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0x71, 0xd4, 0x31, 0x56, 0x1d, 0x4e, 0xb1, 0x35, 0x88, 0xc8, 0xac, 0xb1, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x88, 0xcc, 0x1a, 0x6b, 0x00, 0xff, 0xb9, 0x32, 0x36, 0xb3, 0x96, 0x31, 0xb6, 0xb7, 0xb9, 0x34, 0xb7, 0x33, 0x10, 0xba, 0xb0, 0xb3, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x16, 0x6a, 0x92, 0xae, 0xe1, 0x17, 0x97, 0x0d, 0x56, 0x45, 0x89, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0x3e, 0x8c, 0xae, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0xa0, 0x5f, 0x7c, 0x6d, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x1b, 0x44, 0xb8, 0xd8, 0xd8, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x09, 0x4e, 0xe8, 0x06, 0x05, 0x45, 0xe6, 0x06, 0x31, 0x76, 0x32, 0x56, 0xb3, 0x06, 0xb1, 0xa3, 0x32, 0xb6, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x03, 0x83, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x96, 0x1d, 0x83, 0x6e, 0xb0, 0x2a, 0x4a, 0x74, 0x83, 0xa5, 0x5b, 0xa2, 0x1b, 0x34, 0x36, 0x7f, 0x79, 0xb0, 0x4a, 0x1a, 0x74, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x65, 0x6e, 0x74, 0x79, 0xad, 0x86, 0xef, 0xdb, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x83, 0x67, 0x44, 0xa7, 0x0f, 0xf0, 0xd3, 0x85, 0x9d, 0x81, 0xb8, 0x85, 0xb5, 0x95, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x63, 0x68, 0xf8, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0xcb, 0x2a, 0x41, 0x37, 0x58, 0x8e, 0x2c, 0xbc, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x56, 0x54, 0x84, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x03, 0x83, 0x6e, 0xb0, 0x90, 0x41, 0xf4, 0x20, 0x16, 0xa0, 0x9e, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x0b, 0x15, 0x43, 0xd7, 0x60, 0x85, 0x50, 0xd3, 0x06, 0xeb, 0x81, 0x41, 0x37, 0x58, 0xc8, 0x20, 0xba, 0xc1, 0xda, 0x17, 0xd2, 0x83, 0xd5, 0xd2, 0xa6, 0xb5, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x03, 0x83, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x56, 0x54, 0x84, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x15, 0x8c, 0xae, 0xe1, 0x6d, 0x9d, 0x01, 0x6f, 0x0c, 0x0d, 0xef, 0xa0, 0x7d, 0xb9, 0xd0, 0x0d, 0x62, 0xcb, 0x6e, 0xac, 0x83, 0x08, 0xb9, 0x1b, 0x5b, 0x0d, 0x56, 0x6d, 0x93, 0x6f, 0x78, 0x9e, 0x64, 0x83, 0xc6, 0xa2, 0x43, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0x2a, 0xe8, 0xd0, 0x35, 0x38, 0xba, 0x0e, 0x6e, 0xb0, 0xd8, 0xe7, 0x6e, 0x0d, 0x5f, 0xbf, 0x6c, 0xf8, 0x10, 0x66, 0xc3, 0xd7, 0x2f, 0x1b, 0x3e, 0x84, 0x39, 0x88, 0xbd, 0xb4, 0xa9, 0x35, 0x7c, 0xfd, 0xb2, 0xe1, 0x43, 0x98, 0x0d, 0x5f, 0xbf, 0x6c, 0xf8, 0x10, 0xe6, 0x20, 0x82, 0xad, 0xb6, 0xea, 0x70, 0x8a, 0xad, 0x41, 0xac, 0xb6, 0x8d, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xc4, 0x6a, 0xdb, 0x58, 0x03, 0x7c, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x2c, 0xd4, 0x24, 0x5d, 0x83, 0xc6, 0xe6, 0x2f, 0x0f, 0x1a, 0x20, 0x06, 0xdd, 0x60, 0x85, 0x50, 0xd3, 0x06, 0xeb, 0x81, 0x41, 0xd7, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0xd9, 0xa0, 0xc1, 0xfb, 0xe8, 0x0d, 0x5f, 0xbf, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0xaf, 0xcc, 0x8d, 0x6e, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0x10, 0xeb, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0x2e, 0xf8, 0x33, 0xfa, 0x60, 0x85, 0x0f, 0xed, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0x1b, 0x77, 0x1b, 0x5e, 0xbe, 0x0b, 0x9e, 0x8d, 0x3e, 0x58, 0x12, 0x4d, 0xbb, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xc6, 0xdd, 0x86, 0x97, 0xef, 0x02, 0x2f, 0xac, 0x0d, 0x3e, 0x58, 0x26, 0x2b, 0xbb, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xc6, 0xdd, 0x86, 0x97, 0xef, 0x0e, 0x22, 0xb0, 0xf8, 0xe8, 0x60, 0x39, 0xdc, 0xec, 0x41, 0x59, 0xe7, 0xb9, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0x12, 0x3b, 0xd6, 0x35, 0x28, 0x4b, 0xde, 0x37, 0x28, 0xdc, 0x44, 0x37, 0x28, 0x9b, 0xea, 0xd7, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0x1c, 0xfb, 0x6f, 0x36, 0x28, 0x9b, 0xea, 0x37, 0x68, 0x7d, 0x0e, 0xbb, 0x0d, 0x62, 0x0d, 0x70, 0xac, 0x36, 0xbc, 0xdb, 0xb3, 0xc1, 0xb2, 0x4a, 0xd0, 0x0d, 0x96, 0x23, 0x0b, 0xaf, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x56, 0x54, 0x84, 0x6e, 0xb0, 0x5a, 0xd9, 0x74, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x8a, 0x86, 0x7e, 0x0d, 0x8f, 0xc9, 0x1c, 0x9c, 0xbd, 0xf1, 0x0e, 0x96, 0x3a, 0xe6, 0xd7, 0x1a, 0x14, 0x9d, 0xc6, 0x1b, 0x2c, 0xab, 0x04, 0x5d, 0xc3, 0x2f, 0x4a, 0x1b, 0xac, 0x21, 0x6c, 0xdb, 0xf0, 0x41, 0xce, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0x8d, 0xe2, 0x86, 0xa7, 0x75, 0xd6, 0xf0, 0x23, 0xcc, 0xc0, 0xd7, 0xe1, 0x81, 0xf5, 0xff, 0x0f, 0xad, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0x40, 0x7c, 0xff, 0xed, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x55, 0x4e, 0x74, 0x87, 0x87, 0x7e, 0x36, 0x3c, 0x28, 0xb9, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x3b, 0x0e, 0xba, 0x41, 0x9a, 0x9f, 0xea, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x3d, 0x30, 0xe8, 0x86, 0x67, 0x26, 0x37, 0xdc, 0x51, 0xb5, 0x41, 0x61, 0xa8, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xaa, 0x1a, 0xba, 0x41, 0xca, 0x6b, 0xd5, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x15, 0x0d, 0xfd, 0x1a, 0x1e, 0x93, 0x39, 0x38, 0xac, 0xcc, 0x1d, 0x2c, 0x84, 0x35, 0x6d, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0x55, 0x0d, 0xdd, 0xe0, 0xf0, 0x2a, 0xb7, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x3b, 0x0e, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x05, 0x1d, 0xba, 0x86, 0x67, 0xf1, 0x0e, 0xe2, 0x65, 0xf7, 0xa8, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x2a, 0x1a, 0xfa, 0x0d, 0x62, 0x6e, 0x72, 0xec, 0x60, 0xfd, 0x6e, 0x68, 0x75, 0x38, 0xc5, 0x3a, 0x9c, 0x62, 0x2b, 0xc0, 0x5b, 0xe6, 0xd6, 0x02, 0x57, 0x27, 0xc7, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xc4, 0xff, 0xe5, 0x58, 0x03, 0xf8, 0xc0, 0xc9, 0xa5, 0xb9, 0xd1, 0x81, 0xc0, 0xd5, 0xc9, 0xb1, 0x6d, 0x78, 0x50, 0x72, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0xcf, 0xa5, 0x0d, 0x1a, 0xf8, 0x50, 0x3b, 0x78, 0x25, 0xb7, 0xe2, 0x86, 0xbf, 0x68, 0x36, 0x38, 0xe9, 0x89, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x26, 0xbb, 0xc7, 0x36, 0x58, 0x05, 0x26, 0x7b, 0x10, 0xd3, 0xfc, 0x62, 0x1b, 0x94, 0x2c, 0xec, 0xb3, 0xcc, 0x1a, 0x2c, 0x9b, 0x82, 0xde, 0xf0, 0x8b, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xe0, 0xde, 0xd6, 0x83, 0x07, 0x99, 0x2f, 0x6e, 0xf8, 0x8b, 0x66, 0x83, 0x93, 0x9e, 0xe8, 0x06, 0x25, 0x3c, 0xe6, 0x82, 0xc7, 0x03, 0x1e, 0xdc, 0xdb, 0xda, 0x06, 0x05, 0x45, 0xe6, 0x86, 0xaf, 0x70, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x36, 0x58, 0xd8, 0xa1, 0xb9, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0x33, 0xc0, 0x5b, 0xe6, 0xd6, 0x52, 0x27, 0xc7, 0x46, 0xb7, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x86, 0xfd, 0xb6, 0x86, 0xb7, 0x75, 0x06, 0x4f, 0x0f, 0x62, 0xec, 0x73, 0xac, 0x36, 0x28, 0xe1, 0x31, 0x17, 0x9c, 0x3e, 0x88, 0xb1, 0xcf, 0xb1, 0x35, 0x28, 0xe1, 0x31, 0x17, 0x1c, 0x3e, 0x88, 0xc1, 0xcf, 0xb1, 0x0d, 0xd6, 0x48, 0x6a, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x43, 0xd6, 0xe2, 0x06, 0x6b, 0x24, 0x35, 0x37, 0x58, 0x84, 0x27, 0xb7, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x86, 0xfd, 0xb6, 0x86, 0xb7, 0x75, 0x06, 0xaf, 0x0f, 0x22, 0x83, 0x74, 0xac, 0x36, 0xbc, 0xdb, 0xb3, 0xc1, 0x21, 0x6b, 0x71, 0x83, 0x35, 0x92, 0x9a, 0x1b, 0xac, 0x0e, 0x6b, 0x5b, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x18, 0xfb, 0x1c, 0xdb, 0xf0, 0xb6, 0xce, 0x41, 0xa4, 0x8d, 0x8e, 0xd5, 0x6a, 0x10, 0x84, 0x4b, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0x9f, 0x4b, 0x03, 0xde, 0x5a, 0x58, 0x7e, 0xf0, 0x26, 0xf5, 0xc5, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0xd2, 0x13, 0xdd, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0xa0, 0xa0, 0xc8, 0xdc, 0xf0, 0xb6, 0xce, 0x80, 0xb7, 0x16, 0x96, 0xb7, 0x41, 0x41, 0x91, 0xb9, 0x41, 0x61, 0xa8, 0xba, 0xc1, 0xb2, 0x5d, 0xda, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x8b, 0x66, 0x83, 0x93, 0x9e, 0xe8, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0xf1, 0xbc, 0x3a, 0xb6, 0x41, 0x41, 0x91, 0xb9, 0x41, 0x92, 0x01, 0xe1, 0x06, 0x87, 0xac, 0xc5, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xd4, 0x84, 0x8e, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0x61, 0xbf, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0xc1, 0xd3, 0x83, 0x78, 0x5e, 0x1d, 0xab, 0x35, 0x28, 0xe1, 0x31, 0x17, 0x3c, 0x3e, 0x88, 0x20, 0xd8, 0xb1, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0xf2, 0x94, 0x76, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x35, 0xa1, 0x63, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x65, 0xd8, 0x6f, 0x6b, 0x78, 0x5b, 0xe7, 0x20, 0xf2, 0x61, 0xc7, 0xaa, 0x35, 0x28, 0xe1, 0x31, 0x17, 0x9c, 0x3e, 0x88, 0xe7, 0xd5, 0xb1, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0xd2, 0x13, 0xdd, 0xf0, 0x8b, 0xcb, 0x06, 0xcb, 0x23, 0xe1, 0xd6, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0x20, 0x9e, 0x57, 0xc7, 0x36, 0xbc, 0xad, 0x73, 0x10, 0xf9, 0xb3, 0x63, 0xd5, 0x0a, 0xf8, 0x61, 0x70, 0x69, 0xf8, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x6c, 0xdb, 0x8e, 0x35, 0x80, 0x1f, 0x5c, 0x9d, 0x9c, 0x19, 0x08, 0xdd, 0x1b, 0x08, 0x5d, 0x18, 0x5c, 0xd9, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xef, 0xfc, 0x1a, 0x3c, 0x5a, 0x5a, 0xb1, 0x36, 0xbc, 0xdb, 0xb3, 0xc1, 0x89, 0xa0, 0x6d, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0x64, 0xf7, 0xd8, 0x06, 0xab, 0xc0, 0x64, 0x0f, 0xd2, 0x93, 0x06, 0xd7, 0xa0, 0x84, 0xc7, 0xdc, 0xe0, 0x88, 0x93, 0xb1, 0xc1, 0x82, 0x20, 0xba, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0xd2, 0x13, 0xdd, 0xf0, 0x8b, 0xcb, 0x06, 0xcb, 0x22, 0x69, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xcb, 0xb0, 0xdf, 0xd6, 0xf0, 0xb6, 0xce, 0xc1, 0x02, 0xc2, 0xd1, 0xea, 0x70, 0x8a, 0xad, 0x41, 0xb0, 0x2c, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x6d, 0xb0, 0xce, 0x57, 0xf4, 0xe0, 0xfd, 0xc9, 0x91, 0x1b, 0xfe, 0xa2, 0xd9, 0xe0, 0xa4, 0x27, 0xba, 0x41, 0x92, 0x01, 0xe1, 0x06, 0x27, 0x82, 0xb6, 0x35, 0x7c, 0x90, 0xb3, 0x86, 0x47, 0x58, 0xd7, 0xf0, 0xb6, 0xce, 0xe0, 0xf0, 0xc1, 0x12, 0x6d, 0xd1, 0x35, 0xbc, 0xcd, 0xba, 0x41, 0x31, 0x89, 0xb9, 0x86, 0x7f, 0xe7, 0xd7, 0xe0, 0x25, 0x2a, 0x8d, 0x35, 0xb8, 0x7c, 0xb0, 0x44, 0x5b, 0xb4, 0x35, 0x3c, 0x8b, 0x77, 0x10, 0x6f, 0xf0, 0x47, 0x1b, 0x9e, 0xc5, 0x3b, 0x88, 0x0b, 0xf9, 0xa3, 0x35, 0x08, 0xd2, 0xd3, 0x35, 0x0e, 0x1d, 0xc4, 0xa6, 0xf0, 0xd8, 0x1a, 0x84, 0x11, 0xd0, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x86, 0xfd, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x28, 0xf1, 0x71, 0x37, 0x28, 0x2a, 0xc5, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x4b, 0x72, 0xd3, 0x37, 0x58, 0xd9, 0x0b, 0xbb, 0x86, 0xb7, 0x75, 0x06, 0x87, 0x0f, 0x62, 0x53, 0x78, 0xac, 0x5a, 0x83, 0x80, 0x0d, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xf0, 0xe4, 0xd2, 0xe8, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x58, 0x2c, 0x1f, 0xc4, 0xba, 0xf1, 0xd8, 0x86, 0xaf, 0x70, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0x49, 0x4f, 0x74, 0x83, 0x12, 0x1e, 0x73, 0x01, 0x4f, 0x2e, 0x8d, 0x6e, 0x83, 0x82, 0x22, 0x73, 0xc3, 0xbb, 0x3d, 0x1b, 0x9c, 0x08, 0xda, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xcb, 0xb0, 0xdf, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xe9, 0x41, 0x04, 0x29, 0x8f, 0xb5, 0x06, 0x25, 0x3c, 0xe6, 0x82, 0xd3, 0x07, 0x11, 0xa4, 0x3c, 0xb6, 0xc1, 0x82, 0x20, 0xba, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0xd2, 0x13, 0xdd, 0xf0, 0x8b, 0xcb, 0x06, 0x8b, 0xf0, 0xe4, 0xd6, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0x20, 0x82, 0x94, 0xc7, 0x36, 0xbc, 0xad, 0x73, 0x10, 0xb3, 0xcc, 0x63, 0x55, 0x6b, 0x50, 0xc2, 0x63, 0x6e, 0xb0, 0x24, 0x5b, 0x74, 0x83, 0x82, 0x22, 0x73, 0xc3, 0x5f, 0x34, 0x1b, 0x9c, 0xf4, 0x44, 0x37, 0xfc, 0xe2, 0xb2, 0xc1, 0x8a, 0xde, 0xd9, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x74, 0xcd, 0x3b, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xeb, 0x83, 0x25, 0xd9, 0xa2, 0xd5, 0x6a, 0xd0, 0x9e, 0xf7, 0xd8, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0x80, 0x17, 0x57, 0x27, 0x6f, 0xf8, 0x77, 0x7e, 0x0d, 0x9e, 0xe9, 0xbc, 0x58, 0x1b, 0xfe, 0xa2, 0xd9, 0xe0, 0xa4, 0x27, 0xba, 0x41, 0x90, 0x9e, 0xae, 0x71, 0x68, 0xc0, 0x8b, 0xab, 0x93, 0x5b, 0x83, 0x80, 0x0d, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x27, 0x82, 0xb6, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xaa, 0x30, 0xe2, 0x35, 0xbc, 0xad, 0x33, 0x38, 0x3c, 0x38, 0x7c, 0x10, 0xed, 0xd4, 0x63, 0xad, 0xe1, 0x2f, 0x9a, 0x0d, 0x4e, 0x7a, 0xa2, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x44, 0x3b, 0xf5, 0xd8, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0xe6, 0x24, 0xbb, 0x86, 0x4b, 0x6a, 0x8d, 0xe7, 0x07, 0xb1, 0x6c, 0x3d, 0x56, 0xb5, 0x06, 0x61, 0x04, 0xb4, 0xe1, 0x17, 0x97, 0x0d, 0x56, 0x87, 0xb5, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x4e, 0x04, 0x6d, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x37, 0x7d, 0xf6, 0xae, 0xe1, 0x6d, 0x9d, 0x83, 0x58, 0xb6, 0x1e, 0x6b, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0xb0, 0x96, 0x5b, 0xc3, 0xdb, 0x3a, 0x83, 0xc7, 0x07, 0xd1, 0x4e, 0x3d, 0x56, 0x75, 0x38, 0xc5, 0xea, 0x70, 0x8a, 0xcd, 0x02, 0xbc, 0x64, 0x65, 0x2d, 0x75, 0x72, 0x6c, 0xf4, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x9c, 0x75, 0x8f, 0x35, 0x80, 0x4f, 0x9d, 0x1c, 0x1b, 0x08, 0x59, 0xd9, 0xd8, 0x1b, 0x59, 0xd9, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0xab, 0x21, 0xef, 0x0f, 0x4e, 0x7a, 0xa2, 0x1b, 0xfe, 0xa2, 0x59, 0x83, 0xd0, 0x2f, 0xd9, 0xa0, 0x6c, 0xc2, 0x3c, 0x38, 0x85, 0x8b, 0x6e, 0x50, 0xc2, 0x63, 0x6e, 0xb0, 0x16, 0xf2, 0x7e, 0x83, 0xb3, 0xac, 0xd4, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x06, 0xeb, 0xa5, 0xdf, 0x36, 0xbc, 0xad, 0x33, 0x78, 0x7a, 0xb0, 0x16, 0xf2, 0x7e, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0x28, 0x26, 0x31, 0x37, 0x88, 0x40, 0x4f, 0xaf, 0xc1, 0xe9, 0x83, 0xb5, 0x90, 0xf7, 0x1b, 0x14, 0x14, 0x99, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x03, 0x9e, 0x5b, 0xd8, 0xb9, 0xe1, 0xdd, 0x9e, 0x0d, 0x0e, 0x31, 0x10, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xf4, 0x20, 0x02, 0xc9, 0xc7, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xa5, 0x01, 0xef, 0x06, 0x45, 0xa5, 0xf8, 0x1a, 0xde, 0xd6, 0x19, 0x3c, 0x1d, 0x9c, 0x3e, 0x88, 0x40, 0xf2, 0xb1, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0xd9, 0xe0, 0x6c, 0x72, 0xb5, 0xe1, 0xdd, 0x9e, 0x0d, 0xd6, 0x1a, 0xc0, 0xae, 0xe1, 0x6d, 0x9d, 0x01, 0xcf, 0x2d, 0xec, 0xec, 0x60, 0x89, 0x6e, 0xeb, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0x8b, 0x3a, 0x09, 0x37, 0x28, 0x28, 0x32, 0x37, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x36, 0x68, 0xbb, 0xec, 0x73, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0xb5, 0x90, 0xf7, 0x1b, 0xde, 0xd6, 0x19, 0x9c, 0x3e, 0x88, 0x04, 0xf4, 0xb1, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x68, 0x6c, 0xed, 0x73, 0x83, 0x82, 0x22, 0x73, 0xc3, 0x2f, 0x2e, 0x1b, 0x14, 0x14, 0x99, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0x5f, 0xbf, 0x6c, 0xf8, 0x10, 0x66, 0xc3, 0xd7, 0x2f, 0x1b, 0x3e, 0x84, 0xd9, 0xf0, 0xb6, 0xce, 0xe0, 0xf5, 0xc1, 0xa2, 0x4e, 0xc2, 0x35, 0xbc, 0xad, 0x33, 0x78, 0x7d, 0xd0, 0xd8, 0xda, 0x67, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x6c, 0xd0, 0x76, 0xd9, 0xe7, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0x6b, 0x21, 0xef, 0x37, 0xbc, 0xad, 0x73, 0x10, 0x81, 0xe4, 0x63, 0x6d, 0x50, 0xc2, 0x63, 0x6e, 0xd0, 0xd8, 0xda, 0xe7, 0x06, 0x05, 0x45, 0xe6, 0x86, 0x5f, 0x5c, 0x36, 0x28, 0x28, 0x32, 0x37, 0x88, 0x8a, 0xf1, 0xb1, 0x83, 0x08, 0x81, 0x1f, 0x9b, 0x05, 0x78, 0xcb, 0xdc, 0x5a, 0xe8, 0xea, 0xe4, 0xcc, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x48, 0xa4, 0x1f, 0x6b, 0x00, 0xfc, 0x29, 0x73, 0x1b, 0x7b, 0x23, 0x2b, 0x03, 0x59, 0xa1, 0xab, 0x93, 0x33, 0x03, 0x09, 0x9b, 0x03, 0x09, 0x03, 0xa1, 0x62, 0x22, 0x6a, 0x61, 0x0b, 0x9b, 0xa3, 0x03, 0x21, 0x7b, 0x6b, 0x0b, 0x4b, 0x73, 0x03, 0x99, 0xa3, 0x93, 0x4b, 0x73, 0x3b, 0xdb, 0xf0, 0x8b, 0xd2, 0x1a, 0xfe, 0x5c, 0xda, 0xe0, 0x25, 0xec, 0x41, 0x07, 0x2f, 0x47, 0x69, 0xdc, 0xf0, 0x17, 0xcd, 0x06, 0xe7, 0xd9, 0xd1, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xd6, 0xb1, 0x6d, 0x83, 0xa2, 0x52, 0x7c, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x58, 0x2c, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0x1e, 0x4f, 0xc5, 0xbe, 0xc1, 0x22, 0x3c, 0xb9, 0x35, 0xbc, 0xad, 0x73, 0xf0, 0xac, 0x94, 0xc6, 0x6a, 0x05, 0x7c, 0xb3, 0xba, 0x32, 0x76, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x20, 0x92, 0xf9, 0xc7, 0x1a, 0xc0, 0x1f, 0x2e, 0x4c, 0x6e, 0xae, 0x0c, 0xa4, 0x4e, 0x4e, 0x2c, 0x8d, 0x0e, 0xc4, 0x6c, 0xec, 0x2c, 0x6d, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0xb7, 0x7b, 0xac, 0xac, 0xe1, 0xcf, 0xa5, 0x01, 0x6f, 0xac, 0x8c, 0xdc, 0xf0, 0xef, 0xfc, 0x06, 0x6b, 0x3a, 0x8e, 0x0e, 0xde, 0x7f, 0xd9, 0xb8, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0xb8, 0xba, 0x7c, 0xc3, 0xbf, 0xf3, 0x6b, 0xf0, 0xb0, 0x88, 0xc8, 0x6a, 0xc3, 0x5f, 0x34, 0x6b, 0xf8, 0x77, 0x7e, 0x83, 0x47, 0x21, 0xbc, 0xb4, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0xb2, 0xc1, 0x0a, 0x11, 0xd6, 0x0d, 0x5f, 0xe1, 0x6c, 0xf8, 0x8b, 0x66, 0x83, 0x37, 0xa9, 0x2f, 0x6e, 0x50, 0xc2, 0x63, 0x2e, 0xe0, 0xc5, 0xd5, 0xe5, 0xad, 0xe1, 0x6d, 0x9d, 0x83, 0xd8, 0x25, 0x20, 0xdb, 0xf0, 0x8b, 0xcb, 0x1a, 0x1e, 0x94, 0xdc, 0x60, 0x91, 0x22, 0xde, 0x41, 0x2c, 0x14, 0x90, 0xad, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0x41, 0xec, 0x12, 0x90, 0x6d, 0x78, 0x5b, 0x67, 0x70, 0xfa, 0x20, 0x76, 0x09, 0xc8, 0x6a, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x86, 0x5a, 0x5f, 0x37, 0x58, 0x04, 0xc2, 0xda, 0x1a, 0xac, 0x91, 0x6a, 0xda, 0xe0, 0x91, 0x97, 0x8d, 0x1b, 0xde, 0xd6, 0x19, 0xf0, 0xc6, 0xca, 0xc8, 0x0e, 0x9e, 0xd4, 0x94, 0x72, 0x38, 0xc5, 0xd6, 0x20, 0x16, 0xb5, 0x91, 0x36, 0x48, 0xbd, 0x28, 0xde, 0xa0, 0xec, 0x92, 0xdd, 0x20, 0x16, 0xb5, 0x91, 0x36, 0x78, 0xb3, 0xf0, 0xc9, 0x6c, 0x50, 0xb2, 0xb0, 0xcf, 0x32, 0x0b, 0xf0, 0x96, 0xb9, 0xb5, 0xb4, 0xa5, 0xd1, 0x95, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xb1, 0xc3, 0x40, 0xd6, 0x00, 0x3c, 0xb4, 0xa5, 0xb5, 0x95, 0x81, 0xd0, 0xe5, 0xc1, 0x95, 0x81, 0xd0, 0xbd, 0x81, 0xd0, 0x95, 0xe1, 0xd1, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x6d, 0x79, 0xee, 0x41, 0x2b, 0xe6, 0xa4, 0x1b, 0x9c, 0xd8, 0x6f, 0x36, 0x58, 0x8e, 0x2c, 0xbc, 0xe1, 0x2b, 0x9c, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0xd2, 0x13, 0xdd, 0xa0, 0x84, 0xc7, 0x5c, 0xc0, 0x6b, 0xcb, 0x73, 0xdb, 0xa0, 0xa0, 0xc8, 0xdc, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0xa0, 0xa0, 0xc8, 0xdc, 0xf0, 0xb6, 0xce, 0xe0, 0xf4, 0x41, 0xb4, 0x45, 0x90, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0x61, 0xbf, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xd3, 0x83, 0x68, 0x8b, 0x20, 0x6b, 0xc3, 0xbb, 0x3d, 0x1b, 0x9c, 0x08, 0xda, 0x36, 0x88, 0xa5, 0x09, 0xb2, 0x35, 0xfc, 0x45, 0xb3, 0xc1, 0x49, 0x4f, 0x74, 0xc3, 0x2f, 0x2e, 0x1b, 0xac, 0x0e, 0x6b, 0x5b, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0x68, 0x8b, 0x20, 0x3b, 0x88, 0x54, 0x09, 0xb2, 0x6a, 0x05, 0xd0, 0x20, 0x2b, 0x6b, 0x11, 0x0b, 0x9b, 0x2b, 0xab, 0xc1, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0x9f, 0x4b, 0x83, 0xd3, 0x07, 0x27, 0x3d, 0xd1, 0x0d, 0x8e, 0x36, 0x7c, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xd5, 0x99, 0xaa, 0x1b, 0x9c, 0x5a, 0xfa, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x4b, 0x55, 0x43, 0x37, 0x58, 0xc2, 0x1b, 0xb9, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x98, 0x4c, 0x7a, 0x90, 0x0a, 0x34, 0x56, 0x1b, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x3d, 0x30, 0xe8, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x59, 0x25, 0xe8, 0x1a, 0x7e, 0x51, 0xda, 0xf0, 0xe5, 0xd2, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0x0a, 0xb8, 0xe1, 0x69, 0x9d, 0x83, 0x18, 0xee, 0x90, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x2f, 0x05, 0xdd, 0x60, 0x25, 0xaf, 0xdb, 0x1a, 0x7e, 0x84, 0x19, 0x9c, 0x0e, 0x47, 0x6a, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xac, 0x12, 0x74, 0x0d, 0xbf, 0x28, 0x6d, 0xf8, 0x72, 0x69, 0xc3, 0xbb, 0x3d, 0x1b, 0x3e, 0x05, 0xdc, 0xf0, 0xb4, 0xce, 0x1a, 0x7e, 0x84, 0xd9, 0x50, 0xf3, 0x43, 0x73, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xf5, 0xa5, 0xa0, 0x6b, 0xf8, 0x11, 0x66, 0x70, 0x3a, 0x5c, 0x59, 0xc3, 0x8f, 0x30, 0x83, 0xd3, 0xe1, 0x4e, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0x55, 0x82, 0xae, 0xe1, 0x17, 0xa5, 0x0d, 0x5f, 0x2e, 0x6d, 0x78, 0xb7, 0x67, 0xc3, 0xa7, 0x80, 0x1b, 0x9e, 0xd6, 0xd9, 0x60, 0x09, 0x6f, 0x64, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xf5, 0xa5, 0xa0, 0x6b, 0xf8, 0x11, 0x66, 0x70, 0x3a, 0x1c, 0x3a, 0x58, 0x57, 0xec, 0xd6, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x59, 0x25, 0xe8, 0x1a, 0x7e, 0x51, 0xda, 0xf0, 0xe5, 0xd2, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0x0a, 0xb8, 0xe1, 0x69, 0x9d, 0x83, 0x74, 0xed, 0xd8, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xfa, 0x52, 0xd0, 0x0d, 0xd6, 0x75, 0xc1, 0xad, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0xf0, 0xb5, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xcb, 0x2a, 0x41, 0x37, 0x58, 0x71, 0x59, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x5f, 0x0a, 0xba, 0xc1, 0xa2, 0x99, 0xbf, 0x83, 0xd5, 0x66, 0x70, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0x55, 0x82, 0xae, 0xe1, 0x17, 0xa5, 0x0d, 0x5f, 0x2e, 0x6d, 0x78, 0xb7, 0x67, 0xc3, 0xa7, 0x80, 0x1b, 0x9e, 0xd6, 0x59, 0xc3, 0x8f, 0x30, 0x1b, 0x6a, 0x7e, 0x68, 0xec, 0x60, 0xf1, 0x90, 0x7e, 0x2b, 0xc0, 0x1b, 0x36, 0xd7, 0xf2, 0x36, 0x46, 0x47, 0x6f, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xc4, 0x37, 0x0b, 0x59, 0x03, 0xf0, 0x40, 0x17, 0x06, 0x57, 0x06, 0x42, 0xf7, 0x06, 0xf2, 0x36, 0x46, 0x37, 0x47, 0x27, 0x57, 0x16, 0xd6, 0xb6, 0xe1, 0x17, 0xa5, 0x0d, 0x22, 0xfd, 0x7b, 0x6c, 0xc3, 0x5f, 0x34, 0x1b, 0x3c, 0xfd, 0x5c, 0x6e, 0xc3, 0xbb, 0x3d, 0x1b, 0x44, 0xe3, 0xe5, 0xd5, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0xad, 0x63, 0xdb, 0x06, 0x45, 0xa5, 0xf8, 0x06, 0x0b, 0x1e, 0xef, 0x6b, 0x35, 0x88, 0x6a, 0x2a, 0xa4, 0x0d, 0xca, 0x2e, 0xd9, 0x0d, 0xa2, 0x9a, 0x0a, 0x69, 0xc3, 0x1d, 0x35, 0x1b, 0x94, 0x2c, 0xec, 0xb3, 0xcc, 0x1a, 0x24, 0x0f, 0x09, 0x6f, 0x50, 0x74, 0x1a, 0x6f, 0xb0, 0xac, 0x12, 0x74, 0x0d, 0xbf, 0x28, 0x6d, 0xb0, 0x4e, 0x9f, 0x7e, 0xc3, 0x5f, 0x34, 0x1b, 0x3c, 0xfd, 0x5c, 0x6e, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x9f, 0x40, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x5f, 0x94, 0x1b, 0xac, 0x94, 0x54, 0x3d, 0x08, 0x56, 0xd6, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xc5, 0xb6, 0xf2, 0x06, 0x8b, 0xc1, 0xf0, 0x0e, 0x16, 0x13, 0xd4, 0xb7, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0x2a, 0x86, 0x1e, 0xac, 0xdf, 0x0d, 0x5d, 0x81, 0x27, 0x2b, 0x37, 0x3c, 0x3e, 0x32, 0xf0, 0x64, 0xe5, 0x86, 0x5f, 0x94, 0x36, 0x88, 0xf7, 0x94, 0xa7, 0x0d, 0x7f, 0xd1, 0xac, 0x41, 0xe8, 0x97, 0x6c, 0x50, 0x36, 0x61, 0x1e, 0xc4, 0x10, 0x63, 0xd7, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x6b, 0x00, 0xbb, 0xe1, 0x69, 0x9d, 0x35, 0xbc, 0xad, 0x73, 0xb0, 0x6e, 0x55, 0xb4, 0x59, 0xe0, 0xcb, 0xdc, 0x0d, 0x8f, 0x8f, 0x0c, 0x7c, 0x99, 0xbb, 0xe1, 0x17, 0xa5, 0x0d, 0x22, 0x22, 0xbe, 0x6a, 0xc3, 0x5f, 0x34, 0x1b, 0x9c, 0x80, 0x44, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0x72, 0x64, 0xe1, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xa0, 0xe4, 0x06, 0x8b, 0x91, 0x1b, 0x0f, 0x16, 0x9e, 0x9e, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0x82, 0xa7, 0x76, 0x83, 0x46, 0xdf, 0x52, 0x0f, 0x82, 0x95, 0xb5, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x91, 0x89, 0xbb, 0x86, 0x5f, 0x5c, 0x36, 0x28, 0x2a, 0xc5, 0x0f, 0xda, 0x27, 0x65, 0x3d, 0x88, 0x00, 0xb7, 0xa6, 0x3a, 0x9c, 0x62, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0xd6, 0x02, 0x68, 0x94, 0xb9, 0xb5, 0x88, 0x85, 0xcd, 0x95, 0xd5, 0xe0, 0x0d, 0xbf, 0x28, 0x6d, 0x50, 0x9a, 0x16, 0x6f, 0x50, 0x90, 0xc6, 0x6e, 0xb0, 0x18, 0x1a, 0x75, 0x83, 0xf5, 0x31, 0xa8, 0x1b, 0x9c, 0xd8, 0x6f, 0x36, 0x28, 0x2c, 0x96, 0x37, 0x7c, 0x85, 0xb3, 0xe1, 0x2f, 0x9a, 0x0d, 0x4e, 0x7a, 0xa2, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x1b, 0x1e, 0xbc, 0x39, 0x28, 0xfd, 0x8c, 0x37, 0x28, 0x28, 0x32, 0x37, 0x28, 0x0c, 0x55, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x25, 0xd1, 0xec, 0x06, 0x45, 0xa5, 0xf8, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x84, 0xdd, 0xed, 0x06, 0xa5, 0x9f, 0xf1, 0x41, 0x24, 0x90, 0x90, 0x1d, 0x14, 0xc4, 0xe3, 0x1b, 0x2c, 0x38, 0xcc, 0x6f, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0xf2, 0xbf, 0x78, 0xc3, 0xbb, 0x3d, 0x1b, 0x84, 0x02, 0xeb, 0x41, 0xbc, 0x21, 0x91, 0xb5, 0x02, 0x74, 0x62, 0x61, 0x73, 0x65, 0x36, 0x74, 0x83, 0x52, 0x42, 0x7c, 0x0d, 0x4a, 0x16, 0xf6, 0x59, 0x66, 0x01, 0x5f, 0x2c, 0x8f, 0xae, 0xdc, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x88, 0x02, 0x26, 0xb2, 0x83, 0x74, 0x0c, 0xcd, 0x15, 0xc0, 0xb3, 0x0c, 0x0f, 0x8e, 0xed, 0x8d, 0xac, 0xac, 0xe5, 0xee, 0x4d, 0x8e, 0x6c, 0xde, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0x9c, 0x85, 0x4c, 0x0f, 0x3f, 0xd4, 0xac, 0xe1, 0xcf, 0xa5, 0x0d, 0x5e, 0x86, 0x2e, 0x77, 0xf0, 0xf4, 0x73, 0xb9, 0x36, 0xfc, 0x45, 0xb3, 0x41, 0x39, 0x67, 0xbb, 0x41, 0x41, 0x1a, 0x3b, 0x80, 0x6f, 0x18, 0xdd, 0x5b, 0x5b, 0x8b, 0x58, 0x1a, 0x5d, 0xcb, 0x5d, 0x1a, 0x19, 0x1d, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x8a, 0x7f, 0x37, 0x3c, 0x78, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0x8f, 0x0f, 0xde, 0x85, 0x2e, 0xd7, 0x06, 0x05, 0x69, 0xec, 0x00, 0xbe, 0x6f, 0x63, 0x74, 0x73, 0x2d, 0x62, 0x69, 0x74, 0x2d, 0x77, 0x69, 0x64, 0x74, 0xe8, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x78, 0x6a, 0x37, 0x38, 0xac, 0xcc, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0x83, 0x77, 0xa1, 0xcb, 0xb5, 0x41, 0x41, 0x1a, 0x3b, 0x80, 0x77, 0x18, 0xdd, 0x5b, 0x5b, 0xcb, 0xdd, 0x9b, 0x1c, 0x59, 0xcb, 0x5d, 0x1a, 0x19, 0x1d, 0xba, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x00, 0x3f, 0x59, 0x9a, 0x5d, 0xcb, 0x58, 0x59, 0x1a, 0xdb, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0xde, 0xa1, 0xc8, 0x3a, 0x48, 0x1a, 0x92, 0xdd, 0xa0, 0x20, 0x8d, 0x1d, 0xc0, 0x5b, 0x6e, 0x8e, 0x8d, 0xae, 0xe5, 0xee, 0x4d, 0x8e, 0xac, 0xe5, 0x2e, 0x8d, 0x8c, 0x0e, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x44, 0xda, 0x15, 0xd9, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0x06, 0xa7, 0xc8, 0x3a, 0x48, 0x1a, 0x92, 0xdd, 0xa0, 0x20, 0x8d, 0xdd, 0xe0, 0xa8, 0xca, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0x0a, 0xb8, 0x86, 0xb7, 0x75, 0x36, 0x88, 0xa6, 0x2c, 0xb2, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0xf1, 0x61, 0x45, 0x56, 0x1b, 0x14, 0xa4, 0xb1, 0x83, 0xe3, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x82, 0x68, 0x79, 0x0d, 0xbf, 0xb8, 0x6c, 0x78, 0xf0, 0xe6, 0x20, 0x69, 0x48, 0xf6, 0x20, 0x36, 0xa5, 0xc8, 0x36, 0x28, 0x3a, 0x8d, 0x37, 0x38, 0x11, 0xb4, 0x6d, 0x90, 0x4c, 0xe9, 0x74, 0x70, 0x58, 0x69, 0x9b, 0x05, 0xe8, 0xee, 0xde, 0xe4, 0xc8, 0x64, 0xe8, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0x41, 0x64, 0x82, 0x91, 0x1d, 0x7e, 0xa8, 0x99, 0x35, 0x88, 0xd1, 0x2b, 0xb2, 0x0d, 0xbf, 0x28, 0x6d, 0x10, 0xb1, 0xf9, 0x51, 0x1b, 0xfe, 0xa2, 0xd9, 0xf0, 0x43, 0xcd, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x86, 0x07, 0x6f, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0xd8, 0xdd, 0x1e, 0xc4, 0x0d, 0x7f, 0xd4, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x14, 0x58, 0x0f, 0xe2, 0x86, 0x3f, 0x6a, 0xc3, 0xc7, 0x51, 0x07, 0x31, 0x4a, 0x46, 0x36, 0x0b, 0xe0, 0x59, 0x86, 0x07, 0xc7, 0xf6, 0x46, 0x56, 0xd6, 0x22, 0x96, 0x47, 0x57, 0x36, 0x6f, 0xf8, 0x45, 0x69, 0x83, 0x58, 0x7b, 0x22, 0xdb, 0xf0, 0x17, 0xcd, 0x1a, 0x84, 0x7e, 0xc9, 0x06, 0x21, 0x65, 0xb2, 0x86, 0x7f, 0xe7, 0xd7, 0x20, 0x0a, 0x98, 0xc8, 0xaa, 0x0d, 0x0a, 0xd2, 0xd8, 0x01, 0xbc, 0xc3, 0xe8, 0xde, 0xda, 0x5a, 0xc4, 0xf2, 0xe8, 0xca, 0x5a, 0xee, 0xd2, 0xc8, 0xe8, 0xd0, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x51, 0xfc, 0xbb, 0x41, 0x51, 0x29, 0x7e, 0x10, 0x9b, 0x52, 0x64, 0x1b, 0x14, 0xa4, 0xb1, 0x03, 0x78, 0xb2, 0x95, 0x85, 0x91, 0xa5, 0xb9, 0x9d, 0xb5, 0xe8, 0x95, 0xc9, 0xbd, 0xcd, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0xa7, 0x80, 0x1b, 0xc4, 0x4e, 0x15, 0xd9, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0xca, 0xd1, 0xc8, 0x6a, 0xc3, 0xbb, 0x3d, 0x1b, 0x9c, 0x08, 0xda, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x27, 0x99, 0xb6, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xdc, 0xac, 0x91, 0x75, 0x50, 0x38, 0xc9, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x0a, 0xa2, 0xe5, 0x83, 0x58, 0x53, 0x23, 0xeb, 0x70, 0x8a, 0x75, 0x38, 0xc5, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb9, 0xcb, 0x06, 0x47, 0x55, 0xb6, 0x83, 0x22, 0xa7, 0x75, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x75, 0x72, 0xec, 0x41, 0x01, 0x9b, 0xdf, 0x06, 0x25, 0x0b, 0xfb, 0x2c, 0xb3, 0x06, 0x0d, 0x01, 0x78, 0x6e, 0x78, 0x50, 0x72, 0x0d, 0x7f, 0xd1, 0xac, 0x41, 0x38, 0x8d, 0x6d, 0x90, 0xd6, 0x0e, 0xbc, 0x41, 0xe8, 0x97, 0x6c, 0xb0, 0xa8, 0xeb, 0xf4, 0x20, 0x86, 0x18, 0xbb, 0x36, 0x28, 0x3a, 0x8d, 0x37, 0x58, 0x62, 0xc7, 0xba, 0x86, 0xb7, 0x75, 0x0e, 0x22, 0xd8, 0xb8, 0x69, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0xa8, 0x08, 0x5d, 0x83, 0x13, 0xfb, 0xcd, 0x06, 0x0b, 0x93, 0x49, 0x37, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x7a, 0x60, 0xd0, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xb2, 0x4a, 0xd0, 0x35, 0xfc, 0xa2, 0xb4, 0xe1, 0xcb, 0xa5, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x14, 0xf0, 0x60, 0xb1, 0xae, 0xdb, 0xc1, 0xea, 0xd0, 0xd2, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xb2, 0x4a, 0xd0, 0x35, 0xfc, 0xa2, 0xb4, 0xe1, 0xcb, 0xa5, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x14, 0x70, 0xc3, 0xd3, 0x3a, 0x6b, 0xf8, 0x11, 0x66, 0x70, 0x3a, 0xfc, 0xe8, 0x60, 0xc1, 0x6c, 0xe9, 0x06, 0xeb, 0x6a, 0x4b, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x4b, 0x70, 0x42, 0x37, 0x58, 0x5a, 0xf1, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xb0, 0x11, 0xba, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0xb6, 0xce, 0x80, 0x57, 0x27, 0xc7, 0xb6, 0xc1, 0x9a, 0x8d, 0xb7, 0x83, 0x85, 0x0e, 0x6f, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x82, 0x13, 0xba, 0xc1, 0x7a, 0x84, 0xb7, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x82, 0x8d, 0xd0, 0x35, 0x7c, 0x90, 0xb3, 0x41, 0xe4, 0xf4, 0x91, 0x6d, 0xb0, 0xa4, 0x6c, 0xee, 0x60, 0x75, 0x58, 0x5b, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x45, 0x43, 0xbf, 0x86, 0x07, 0x6f, 0x0e, 0x02, 0x96, 0x75, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x04, 0x27, 0x74, 0x83, 0x65, 0x01, 0xc0, 0x07, 0xab, 0x01, 0x48, 0x6b, 0x83, 0x92, 0x85, 0x7d, 0x96, 0x59, 0x83, 0x28, 0x36, 0x6e, 0xda, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0x14, 0xb5, 0xc5, 0x07, 0xe5, 0x9c, 0xed, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xc8, 0xc2, 0xe0, 0x83, 0x72, 0xce, 0xb6, 0x0d, 0x7f, 0xd1, 0x6c, 0x10, 0x2b, 0x3a, 0x64, 0x1b, 0x14, 0xa4, 0xb1, 0x1b, 0x34, 0xd6, 0x6e, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xe8, 0x39, 0x79, 0x50, 0xf6, 0x19, 0x6f, 0x50, 0x90, 0xc6, 0x6e, 0xd0, 0xce, 0x47, 0xd9, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0xa1, 0xe7, 0xe4, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xc8, 0xc2, 0xe0, 0xda, 0xa0, 0x20, 0x8d, 0xdd, 0xa0, 0xcc, 0x09, 0x58, 0xc3, 0xbb, 0x3d, 0x6b, 0x50, 0x96, 0xbc, 0x6f, 0x90, 0xc4, 0x0e, 0xb5, 0x41, 0x24, 0xb1, 0x35, 0x1d, 0x9c, 0x99, 0xdb, 0x36, 0x3c, 0x78, 0x73, 0xd0, 0xe4, 0xc7, 0xd9, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x08, 0xeb, 0x06, 0x07, 0xa1, 0xb6, 0x35, 0xbc, 0xcd, 0xba, 0xe1, 0xdf, 0x9c, 0x0d, 0xd2, 0xd1, 0xa1, 0x0e, 0x1a, 0x68, 0x29, 0x6b, 0x0d, 0xd6, 0xad, 0x32, 0xcd, 0x1a, 0xde, 0xb8, 0xdb, 0xf0, 0xf2, 0xdd, 0x41, 0x94, 0xdf, 0x21, 0x1d, 0x14, 0x14, 0x99, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0x23, 0xac, 0x6b, 0x78, 0x9b, 0xf5, 0xe0, 0x20, 0xd4, 0xb6, 0x86, 0xb7, 0x59, 0x37, 0xfc, 0x9b, 0xb3, 0xe1, 0xc1, 0x9b, 0x83, 0x06, 0x5a, 0xca, 0x5a, 0x83, 0x75, 0xab, 0x4c, 0xb3, 0x86, 0x37, 0xee, 0x36, 0xbc, 0x7c, 0x77, 0x10, 0x79, 0x7e, 0x48, 0x07, 0x05, 0x45, 0xe6, 0x06, 0x05, 0x69, 0xec, 0x06, 0x65, 0x61, 0xf1, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0x29, 0xe0, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x78, 0x6a, 0x37, 0x28, 0x2a, 0xc5, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xa1, 0xc0, 0xba, 0x86, 0x77, 0x7b, 0x36, 0xfc, 0x09, 0xb4, 0x41, 0x93, 0x03, 0x67, 0x07, 0xcd, 0x47, 0x8b, 0x1f, 0x9c, 0x99, 0xdb, 0x3a, 0x68, 0x3e, 0x5a, 0x7c, 0x83, 0x73, 0xfe, 0xd2, 0x06, 0x05, 0x45, 0xe6, 0x06, 0x85, 0x97, 0xf1, 0x06, 0x05, 0x69, 0xec, 0x06, 0xc7, 0x0c, 0xcf, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x89, 0x8f, 0xbb, 0x86, 0x5f, 0x5c, 0x36, 0x3c, 0x26, 0x73, 0xd0, 0x7c, 0xb4, 0xf8, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xd8, 0x56, 0xde, 0x20, 0x6d, 0xd2, 0x76, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x58, 0x2c, 0x1f, 0x94, 0x7d, 0xc6, 0xb5, 0x41, 0x41, 0x1a, 0x3b, 0xe0, 0x85, 0xb5, 0xd1, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xa2, 0xf8, 0x77, 0x83, 0xa2, 0x52, 0xfc, 0xa0, 0xa1, 0xb5, 0xe4, 0x0d, 0x0a, 0xd2, 0xd8, 0x01, 0x8f, 0x4e, 0x8e, 0x5d, 0xc3, 0x07, 0x39, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x17, 0x67, 0x1b, 0x14, 0x5e, 0xc6, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x0b, 0x6b, 0xa3, 0x6b, 0xc3, 0x83, 0x37, 0x1b, 0xde, 0xed, 0xd9, 0xf0, 0x29, 0xe0, 0x41, 0xcc, 0x6c, 0x92, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0xd2, 0x80, 0x77, 0x0d, 0xbf, 0xb8, 0x6c, 0x50, 0x54, 0x8a, 0xaf, 0xe1, 0x6d, 0x9d, 0x01, 0x8f, 0x4e, 0x8e, 0xad, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xa9, 0x75, 0x7c, 0x10, 0x7d, 0x99, 0x64, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0xb6, 0x02, 0x4f, 0x56, 0x6e, 0xf8, 0x45, 0x69, 0x83, 0x78, 0x4f, 0x79, 0xda, 0xf0, 0x17, 0xcd, 0x06, 0xb1, 0xa2, 0x43, 0xb6, 0xe1, 0xdd, 0x9e, 0x0d, 0xd6, 0x1a, 0xc0, 0x6e, 0x78, 0x5a, 0x67, 0x83, 0xb6, 0xfe, 0x3b, 0x3b, 0x9c, 0x62, 0x0b, 0x7c, 0x99, 0xbb, 0xe1, 0x2f, 0x9a, 0x35, 0x08, 0xa7, 0xb1, 0x0d, 0x9e, 0x7e, 0x2e, 0x77, 0x70, 0x02, 0x12, 0xdd, 0xa0, 0x20, 0x8d, 0xdd, 0x60, 0x31, 0x34, 0xea, 0x1a, 0x3e, 0xc8, 0xd9, 0x20, 0x72, 0xfa, 0xc8, 0xd6, 0xf0, 0x23, 0xcc, 0xe0, 0xf4, 0x41, 0x14, 0xbc, 0x22, 0x6d, 0xf8, 0x11, 0x66, 0x70, 0xfa, 0x20, 0x6a, 0x66, 0x91, 0x36, 0x38, 0x60, 0xd1, 0xad, 0xe1, 0x17, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0xf0, 0x62, 0xf3, 0xc1, 0xd3, 0xcf, 0xe5, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0x09, 0x48, 0x74, 0x83, 0x82, 0x34, 0x76, 0x0d, 0x4a, 0xe8, 0xd8, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x3f, 0x97, 0x36, 0x88, 0xcc, 0xd2, 0xaa, 0xc3, 0x0f, 0x35, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x83, 0x93, 0xdb, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0x48, 0x99, 0xac, 0xe1, 0xdf, 0xf9, 0x35, 0x88, 0x4c, 0x30, 0xb2, 0xaa, 0x83, 0x30, 0x1d, 0x5b, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x00, 0xdf, 0xb7, 0x31, 0xba, 0xb9, 0x16, 0xba, 0xb7, 0x16, 0x31, 0xb6, 0xb7, 0xb1, 0xb5, 0xb9, 0x35, 0xbc, 0xad, 0x33, 0xf0, 0x62, 0x73, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0xe5, 0xc8, 0xc2, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xc2, 0x62, 0x79, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0x9e, 0x3a, 0x37, 0xb8, 0x30, 0xb2, 0x0d, 0x62, 0x81, 0xb6, 0x6a, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0x3c, 0xcb, 0xdc, 0xc6, 0xde, 0xc8, 0xca, 0x5a, 0xc4, 0xd8, 0xde, 0xc6, 0xd6, 0xe6, 0x0e, 0x0e, 0x6d, 0x6f, 0xd5, 0x32, 0x0b, 0xe0, 0x57, 0xe6, 0x36, 0xf6, 0x46, 0x56, 0xd6, 0x22, 0xc6, 0xf6, 0x36, 0xb6, 0x6e, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x7e, 0x1f, 0xc4, 0x5e, 0x2a, 0xd9, 0x86, 0xbf, 0x68, 0x36, 0x38, 0xe9, 0x89, 0x6e, 0x50, 0x90, 0xc6, 0x0e, 0x1e, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0xa2, 0xd9, 0x0d, 0x8a, 0x4a, 0xf1, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x89, 0x66, 0x37, 0x3c, 0x78, 0xb3, 0x41, 0xda, 0xa4, 0xed, 0xc1, 0xf1, 0xc7, 0xe5, 0xa0, 0x20, 0x1e, 0x3f, 0x88, 0x99, 0x24, 0xb2, 0x0d, 0x0a, 0xd2, 0xd8, 0xc1, 0xc5, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x49, 0x34, 0xbb, 0x41, 0x51, 0x29, 0xbe, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x25, 0xd1, 0xec, 0x86, 0x07, 0x6f, 0x36, 0x58, 0xf3, 0xe2, 0x76, 0x70, 0xfc, 0x71, 0x39, 0x28, 0x88, 0xc7, 0x0f, 0x62, 0x26, 0x89, 0x6c, 0x83, 0x82, 0x34, 0x76, 0xf0, 0x71, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x12, 0xcd, 0x6e, 0x50, 0x54, 0x8a, 0xaf, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x49, 0x34, 0xbb, 0xe1, 0xc1, 0x9b, 0x0d, 0x96, 0x6d, 0xb9, 0x1d, 0x1c, 0x7f, 0x5c, 0x0e, 0x0a, 0xe2, 0xf1, 0x83, 0x98, 0x49, 0x22, 0xdb, 0xa0, 0x20, 0x8d, 0x1d, 0x9c, 0x5c, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0x44, 0xb3, 0x1b, 0x14, 0x95, 0xe2, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x12, 0xcd, 0x6e, 0x78, 0xf0, 0x66, 0x0d, 0xbf, 0xb8, 0x6c, 0x90, 0xaa, 0x8b, 0x7b, 0x70, 0x58, 0x9e, 0x39, 0x38, 0xfe, 0xb8, 0x1c, 0x14, 0xc4, 0xe3, 0x07, 0x31, 0x93, 0x44, 0xb6, 0xc1, 0xd1, 0x75, 0xf0, 0x20, 0x9e, 0x84, 0xa5, 0x66, 0x0d, 0xa2, 0xda, 0x95, 0x6c, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xe0, 0xef, 0xe6, 0x83, 0xf8, 0x47, 0x25, 0xdb, 0xf0, 0x17, 0xcd, 0x06, 0x27, 0x3d, 0xd1, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0xa8, 0xfc, 0xdf, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x44, 0xaa, 0x5e, 0xc3, 0xdb, 0x3a, 0x03, 0x7f, 0x37, 0xb7, 0x86, 0xb7, 0x75, 0x36, 0x88, 0x15, 0x58, 0xb2, 0x6a, 0x35, 0x88, 0x60, 0x55, 0xb2, 0x0d, 0xbf, 0x28, 0x6d, 0x10, 0xe5, 0xa5, 0x64, 0x1b, 0xfe, 0xa2, 0x59, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0xc8, 0x2c, 0xad, 0x3a, 0x28, 0xb3, 0x74, 0x37, 0x88, 0x7f, 0x54, 0xb2, 0x36, 0x28, 0x48, 0x63, 0xd7, 0xf0, 0x7d, 0xfb, 0x06, 0x91, 0x59, 0x5a, 0x75, 0xd0, 0xc0, 0xf5, 0xe9, 0x1a, 0xde, 0xed, 0x59, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x24, 0x76, 0xa8, 0x0d, 0x22, 0x89, 0xad, 0xe9, 0xa0, 0xa0, 0x14, 0xdf, 0xf0, 0xe0, 0xcd, 0x1a, 0xde, 0xd6, 0x19, 0x1c, 0x3e, 0x88, 0xfd, 0x55, 0xb2, 0x36, 0x28, 0x48, 0x63, 0xd7, 0xf0, 0x7d, 0xfb, 0x00, 0x1f, 0x5c, 0x18, 0x19, 0x59, 0x19, 0xb9, 0x41, 0x09, 0x1d, 0xbb, 0xc1, 0xd3, 0xcf, 0xe5, 0x0e, 0xc2, 0x74, 0x6c, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0xdd, 0x9e, 0x0d, 0x7f, 0x02, 0x6d, 0x10, 0x0b, 0xb4, 0x55, 0x07, 0xf1, 0x81, 0x4c, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x0d, 0x78, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0x45, 0xa5, 0xf8, 0x06, 0xb1, 0x40, 0x5b, 0xd5, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0xa9, 0x14, 0x76, 0x83, 0xa2, 0x52, 0xfc, 0x20, 0x82, 0x57, 0xc9, 0x6a, 0xc3, 0x2f, 0x2e, 0x1b, 0xc4, 0x02, 0x6d, 0xd5, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x44, 0x57, 0x13, 0x59, 0x1b, 0x2c, 0x7a, 0xc3, 0x5b, 0xc3, 0xdb, 0x3a, 0x1b, 0xc4, 0x50, 0x32, 0x59, 0x35, 0x6b, 0x10, 0xa5, 0xad, 0x64, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x86, 0x80, 0xb4, 0x0e, 0x3f, 0xd4, 0x6c, 0x10, 0x1d, 0x18, 0x64, 0x6d, 0xf8, 0x8b, 0x66, 0x83, 0x93, 0x9e, 0xe8, 0x06, 0x05, 0x69, 0xec, 0x00, 0xef, 0x5d, 0x1a, 0x1d, 0xda, 0x5b, 0x1d, 0xbd, 0x86, 0x77, 0x7b, 0x36, 0x38, 0xbd, 0xc5, 0x6d, 0xd0, 0x8a, 0x94, 0xd6, 0xc1, 0xc9, 0xa9, 0x6f, 0x83, 0x62, 0x47, 0x73, 0x83, 0x83, 0x50, 0xdb, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0x66, 0xa5, 0xc9, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x27, 0x82, 0xb6, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x49, 0xa6, 0x6d, 0x83, 0x56, 0xa4, 0xb4, 0x0e, 0xd6, 0x9d, 0xd2, 0x6e, 0x10, 0xc3, 0xd4, 0x64, 0x1d, 0x4e, 0xb1, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x87, 0x53, 0xac, 0x35, 0x88, 0x65, 0xcb, 0xab, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x58, 0xb6, 0xbc, 0x6a, 0x00, 0x1e, 0xc2, 0xe8, 0xde, 0xda, 0x40, 0xe8, 0xde, 0x40, 0xde, 0xc6, 0xe8, 0xe6, 0xe8, 0xe4, 0xca, 0xc2, 0xda, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xba, 0xb0, 0xf6, 0xf0, 0x43, 0xcd, 0x86, 0xbf, 0x68, 0x36, 0x78, 0xfa, 0xb9, 0xdc, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x45, 0xf1, 0xef, 0x06, 0x45, 0xa5, 0xf8, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xe8, 0xc2, 0xda, 0x3a, 0x88, 0x67, 0x6e, 0xb2, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x66, 0x0d, 0xe2, 0x2d, 0x74, 0x6c, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x20, 0xde, 0x42, 0xc7, 0x1a, 0xc0, 0xa7, 0x4e, 0x8e, 0x0d, 0xa4, 0xcc, 0x6d, 0xec, 0x8d, 0xac, 0x6c, 0xc3, 0x2f, 0x4a, 0x1b, 0x44, 0xfa, 0xf7, 0xd8, 0x86, 0xbf, 0x68, 0x36, 0x38, 0xe9, 0x89, 0x6e, 0x70, 0x62, 0xbf, 0xd9, 0xa0, 0x51, 0xf9, 0xbf, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x4a, 0xa4, 0xea, 0x0d, 0x16, 0x3c, 0xde, 0x6f, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x6d, 0x50, 0x8a, 0x0e, 0x1c, 0x2c, 0x78, 0xff, 0xdc, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0x19, 0xf0, 0xf0, 0xca, 0xdc, 0x0d, 0xbf, 0x28, 0x6d, 0xb0, 0x7a, 0xc4, 0x7e, 0xc3, 0x07, 0x39, 0x1b, 0x2c, 0x69, 0xb1, 0x5f, 0xc3, 0xbb, 0x3d, 0x1b, 0xfe, 0x04, 0xda, 0x60, 0x45, 0x8c, 0xfd, 0xc1, 0x32, 0x8a, 0xd3, 0x83, 0xf5, 0x6c, 0xf6, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xaf, 0x64, 0x6b, 0x78, 0x84, 0x75, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x86, 0xad, 0xb4, 0xc1, 0x4a, 0x8f, 0xd1, 0x83, 0x55, 0x5d, 0x70, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x17, 0xbf, 0x1b, 0xac, 0xf4, 0x18, 0x3d, 0x58, 0x6d, 0x06, 0xd7, 0x1a, 0x1e, 0x61, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0x61, 0x2b, 0x6d, 0xb0, 0xd2, 0x63, 0xf4, 0x60, 0x1d, 0xaf, 0xdb, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0xc5, 0xef, 0x06, 0x2b, 0x3d, 0x46, 0x0f, 0xd6, 0x15, 0xbb, 0xb5, 0x86, 0x47, 0x58, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x69, 0xd8, 0x4a, 0x1b, 0xac, 0xf4, 0x18, 0x3d, 0x58, 0xf7, 0x23, 0xb7, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0xf1, 0xbb, 0xc1, 0x4a, 0x8f, 0xd1, 0x83, 0xf5, 0x46, 0x72, 0xad, 0xe1, 0xdf, 0x9c, 0x0d, 0x16, 0xe1, 0xc9, 0x1d, 0xac, 0xf4, 0x18, 0x5d, 0xc3, 0xbf, 0x39, 0x1b, 0xac, 0xd9, 0x78, 0x3b, 0x58, 0xe9, 0x31, 0xba, 0x86, 0x7f, 0x73, 0x36, 0x58, 0xb7, 0x0e, 0x77, 0xb0, 0xd2, 0x63, 0x74, 0x0d, 0xff, 0xe6, 0x6c, 0xb0, 0xa4, 0x6c, 0xee, 0x60, 0xa5, 0xc7, 0x68, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x95, 0x1e, 0xa3, 0x07, 0x65, 0x9d, 0xe7, 0x86, 0x5f, 0x5c, 0x36, 0x58, 0x2f, 0xfd, 0xb6, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x80, 0x87, 0x57, 0xe6, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x28, 0xf1, 0x71, 0x37, 0x58, 0x0c, 0x86, 0x77, 0xb0, 0xce, 0x63, 0xb4, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x64, 0xc7, 0x93, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x8a, 0x4c, 0xdc, 0x83, 0xa8, 0x96, 0x27, 0xeb, 0xa0, 0xac, 0xf3, 0x5c, 0x01, 0x5e, 0xb2, 0xb2, 0x16, 0xba, 0x3a, 0x39, 0x73, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x20, 0xea, 0xe9, 0xc9, 0x1a, 0x00, 0x4f, 0xe1, 0xc2, 0xe4, 0xe6, 0xca, 0x40, 0xc2, 0x40, 0xa8, 0x98, 0x88, 0x5a, 0xd8, 0xc2, 0xe6, 0xe8, 0x40, 0xc8, 0xde, 0xda, 0xc2, 0xd2, 0xdc, 0x40, 0xe6, 0xe8, 0xe4, 0xd2, 0xdc, 0xce, 0x40, 0xd2, 0xdc, 0xe8, 0xde, 0x40, 0xc2, 0x40, 0xa8, 0x98, 0x88, 0x40, 0xcc, 0xd2, 0xe4, 0xe6, 0xe8, 0x40, 0x56, 0xe8, 0xea, 0xe4, 0xcc, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x21, 0x17, 0xd7, 0xc1, 0x79, 0x76, 0x74, 0xc3, 0x5f, 0x34, 0x6b, 0x10, 0xfa, 0x25, 0x1b, 0x94, 0x4d, 0x98, 0x1b, 0xbc, 0x1c, 0xa5, 0xb1, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0xd6, 0x1a, 0xc0, 0xae, 0xe1, 0x6d, 0x9d, 0x83, 0x27, 0xdc, 0x33, 0x6e, 0x50, 0x74, 0x1a, 0x6f, 0xb0, 0xc4, 0x8e, 0x75, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0xcf, 0xa5, 0x0d, 0x5e, 0xc8, 0xc5, 0xb5, 0xe1, 0xdf, 0xf9, 0x0d, 0x9e, 0x70, 0xcf, 0x78, 0xf0, 0xd4, 0x02, 0xbb, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0x28, 0x26, 0x31, 0x37, 0x08, 0xd8, 0xa0, 0x8d, 0x43, 0x07, 0x4f, 0xb8, 0x67, 0xdc, 0xa0, 0xa0, 0xc8, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0x67, 0x29, 0xb0, 0x35, 0xbc, 0xad, 0x33, 0x38, 0x7c, 0xf0, 0x84, 0x7b, 0xc6, 0x36, 0x3c, 0x28, 0xb9, 0x86, 0xb7, 0x75, 0x06, 0x7c, 0x3a, 0xb4, 0xb7, 0xb9, 0x0d, 0x0f, 0x4a, 0xae, 0xe1, 0x6d, 0x9d, 0x01, 0x5e, 0xb2, 0xb2, 0x16, 0xb8, 0x3a, 0x39, 0xb6, 0x83, 0x98, 0xc6, 0xbc, 0x3a, 0x9c, 0x62, 0xad, 0x41, 0x14, 0x0b, 0x94, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x44, 0xb1, 0x40, 0x59, 0x03, 0xf0, 0x50, 0x27, 0xc7, 0xb6, 0x82, 0x56, 0x16, 0x46, 0x56, 0x26, 0x07, 0x02, 0x17, 0x26, 0x37, 0x57, 0x26, 0xb7, 0xe1, 0x41, 0xc9, 0x35, 0xfc, 0xa2, 0xb4, 0x41, 0xbc, 0xa7, 0x3c, 0x6d, 0xf8, 0x8b, 0x66, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0xb2, 0x09, 0x73, 0x83, 0x57, 0x72, 0x2b, 0xb6, 0xe1, 0xdd, 0x9e, 0x0d, 0xd6, 0x1a, 0xc0, 0x6e, 0x78, 0x5a, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x61, 0x75, 0x72, 0x69, 0x6d, 0x50, 0xb2, 0xb0, 0xcf, 0x32, 0x0b, 0xf8, 0x79, 0x71, 0x75, 0xe5, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0xec, 0x26, 0x94, 0x35, 0x80, 0x5f, 0x5c, 0x5d, 0x99, 0x5c, 0x1e, 0x48, 0x99, 0x1b, 0x59, 0x9a, 0xdb, 0xd9, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x0f, 0x0c, 0xba, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x3b, 0x0e, 0xba, 0x41, 0xdb, 0x47, 0x9a, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0xcf, 0x8b, 0xab, 0xcb, 0xeb, 0x60, 0x89, 0x49, 0xe9, 0x2c, 0xe0, 0xc3, 0xbd, 0xb1, 0x91, 0x1b, 0xde, 0xed, 0xd9, 0x60, 0x09, 0x4e, 0xe8, 0x06, 0x8b, 0x7d, 0xee, 0x0e, 0xd6, 0x62, 0x97, 0xae, 0x80, 0x0f, 0x37, 0xf6, 0xb6, 0x6e, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xc4, 0xe8, 0x43, 0x59, 0x03, 0x78, 0x8d, 0xbd, 0xbd, 0xad, 0xa5, 0x95, 0x81, 0x8c, 0xa1, 0x85, 0xc9, 0x6d, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x65, 0xc7, 0xa0, 0x1b, 0xac, 0xc5, 0xc1, 0xdc, 0xa0, 0x01, 0x62, 0xd0, 0x0d, 0x9a, 0x3e, 0xbe, 0xdc, 0xa0, 0xed, 0x2b, 0xd1, 0x83, 0x55, 0xd2, 0xa0, 0x2b, 0xe0, 0xc3, 0xc5, 0xd5, 0xbd, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xf1, 0x3b, 0x51, 0xd6, 0x00, 0x3c, 0xb8, 0xbd, 0xc9, 0xb5, 0x85, 0xb1, 0x81, 0xc4, 0xd5, 0x95, 0xc9, 0xe5, 0x81, 0x8c, 0xa1, 0x85, 0xc9, 0x6d, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xf5, 0xc0, 0xa0, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x57, 0x26, 0x5a, 0xb6, 0x86, 0xb7, 0x75, 0x06, 0x7c, 0xb8, 0xb2, 0xb9, 0xb1, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xfc, 0x38, 0x94, 0xb5, 0xc1, 0x02, 0x3b, 0xd3, 0x0d, 0xda, 0x3e, 0xd2, 0xdc, 0x60, 0x21, 0x1c, 0xe9, 0x41, 0xc3, 0xc7, 0x97, 0xab, 0x41, 0xe4, 0x07, 0x94, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x44, 0x7e, 0x40, 0x59, 0x03, 0xf0, 0x22, 0x33, 0x93, 0x63, 0x03, 0x82, 0xf6, 0x36, 0x47, 0xc7, 0x02, 0xe2, 0xf6, 0x06, 0xc2, 0xf6, 0x36, 0x16, 0xc6, 0xb6, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x56, 0x54, 0x84, 0xae, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x03, 0x83, 0xae, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0x0a, 0xb4, 0xd5, 0x0d, 0x56, 0x81, 0xc9, 0x6e, 0x50, 0x74, 0x1a, 0xaf, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x2f, 0x4c, 0x4c, 0x20, 0x70, 0x61, 0x72, 0x73, 0x65, 0x72, 0x20, 0x77, 0x65, 0x61, 0x6b, 0x20, 0x68, 0x65, 0x72, 0x65, 0x07, 0x4b, 0xec, 0x58, 0xd7, 0xf0, 0x8b, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0x3c, 0x88, 0x2b, 0xf3, 0xa7, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0xc1, 0xc5, 0x83, 0xe5, 0x04, 0xf5, 0x1b, 0x14, 0x7c, 0x98, 0x1b, 0x1c, 0x1e, 0x0a, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x1f, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x91, 0x89, 0xbb, 0x41, 0x51, 0x29, 0x7e, 0x50, 0xf8, 0xa0, 0x6e, 0x50, 0xec, 0x68, 0x6e, 0xb0, 0xe8, 0x44, 0xee, 0xe0, 0xac, 0x62, 0xb0, 0xe1, 0xdd, 0x9e, 0x0d, 0xd6, 0xcc, 0x86, 0x6e, 0xb0, 0xf6, 0x85, 0x74, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x64, 0x6c, 0x61, 0x62, 0xad, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0x0a, 0xb4, 0xd5, 0x0d, 0x96, 0x39, 0xc9, 0x6e, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x6c, 0xb0, 0x2c, 0xc7, 0x65, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x50, 0x72, 0x83, 0xa5, 0xa9, 0xf3, 0x07, 0x2b, 0xc0, 0x55, 0x0f, 0x56, 0xe3, 0xd4, 0x6f, 0x50, 0x74, 0x1a, 0x6f, 0xb0, 0x54, 0x35, 0x74, 0x83, 0x54, 0xec, 0xdf, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xa2, 0x22, 0x74, 0x83, 0x95, 0x2d, 0x71, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x55, 0x34, 0xf4, 0x1b, 0xac, 0x8e, 0xaa, 0x5f, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x1d, 0x07, 0xdd, 0x60, 0xed, 0x0b, 0xe9, 0xc1, 0x6a, 0x22, 0xfa, 0xaa, 0x15, 0xf0, 0xc3, 0xea, 0xe4, 0xcc, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xe8, 0x64, 0x29, 0x6b, 0x00, 0x3e, 0x64, 0x66, 0x72, 0x6c, 0x40, 0xee, 0xd2, 0xe8, 0xd0, 0x40, 0xcc, 0xe4, 0xc2, 0xce, 0xda, 0xca, 0xdc, 0xe8, 0x36, 0x28, 0x3a, 0x8d, 0x37, 0x58, 0x56, 0x09, 0xba, 0x06, 0x8b, 0x0b, 0x93, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xe1, 0x41, 0x24, 0xe5, 0x8e, 0x1d, 0x9e, 0xd6, 0xd9, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x2b, 0x2a, 0x42, 0x37, 0x88, 0x60, 0x84, 0xb2, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xfb, 0xf7, 0x99, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x1b, 0xa4, 0xf9, 0xa9, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0x55, 0x82, 0x6e, 0xb0, 0x1c, 0x59, 0x78, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x50, 0x31, 0x74, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x70, 0x71, 0x75, 0x65, 0x55, 0x1d, 0x4e, 0xb1, 0x5a, 0x83, 0xd8, 0x47, 0x28, 0xdb, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x88, 0x7d, 0x84, 0xb2, 0x06, 0xf8, 0x65, 0x66, 0x72, 0x6c, 0x40, 0xaa, 0xa4, 0x98, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x8a, 0x8a, 0xd0, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x8a, 0x8a, 0xd0, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xa3, 0xd1, 0xd1, 0xcd, 0xad, 0xe1, 0x6d, 0x9d, 0x01, 0x9f, 0x0e, 0xed, 0x4d, 0xae, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x8a, 0x8a, 0xd0, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x7a, 0x60, 0xd0, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0x87, 0xc1, 0x85, 0xd1, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x56, 0xa0, 0x94, 0xae, 0x41, 0x21, 0x98, 0x7a, 0xf0, 0x20, 0xf3, 0xc5, 0x5a, 0xc3, 0xdb, 0x3a, 0x1b, 0xc4, 0x6e, 0x42, 0x59, 0xb5, 0x1a, 0xc4, 0x1b, 0x4e, 0xd9, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0xbc, 0xe1, 0x94, 0x35, 0xc0, 0x37, 0x37, 0x86, 0x56, 0xd6, 0x56, 0xb6, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0x12, 0x3b, 0xd6, 0x35, 0x28, 0x4b, 0xde, 0x37, 0x28, 0xdc, 0x44, 0x37, 0x28, 0x9b, 0xea, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x0d, 0xb5, 0xbe, 0xae, 0xe1, 0x2f, 0x9a, 0x35, 0x08, 0xfd, 0x92, 0x0d, 0x42, 0xca, 0x64, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0xd2, 0x9b, 0x7e, 0x83, 0xf5, 0x5a, 0xcf, 0x07, 0x47, 0xe6, 0xd6, 0x36, 0xfc, 0xe2, 0xb2, 0x1a, 0xde, 0xb8, 0xdb, 0xf0, 0xf2, 0xdd, 0xc1, 0x73, 0x0c, 0x11, 0x0f, 0x0a, 0xd8, 0xfc, 0xd5, 0xf0, 0xc6, 0xdd, 0x86, 0x97, 0xef, 0x0e, 0x62, 0x61, 0x25, 0xe9, 0xa0, 0xc8, 0x69, 0x3d, 0x28, 0xeb, 0x3c, 0x6b, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x2b, 0x18, 0x5d, 0xc3, 0xdb, 0x3a, 0x03, 0xfe, 0xdc, 0x58, 0x59, 0xdb, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x45, 0x45, 0xe8, 0x06, 0x0b, 0xe1, 0x48, 0x37, 0x58, 0x60, 0x67, 0x7a, 0xb0, 0xbc, 0xce, 0xb4, 0x15, 0xf0, 0xe7, 0xda, 0xca, 0xce, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x68, 0x38, 0x2a, 0x6b, 0x00, 0x3f, 0x99, 0x99, 0x1c, 0x1b, 0x90, 0xb9, 0xb2, 0xb3, 0xb6, 0x32, 0x37, 0xba, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xac, 0x12, 0x74, 0x83, 0xe5, 0xc8, 0xc2, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x85, 0x8a, 0xa1, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x87, 0x1b, 0x0b, 0x93, 0xab, 0x59, 0xc0, 0x37, 0x8b, 0xab, 0xab, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x22, 0x66, 0xa9, 0xac, 0x01, 0xf8, 0x79, 0x83, 0xa3, 0x4b, 0x7b, 0x73, 0x0b, 0x63, 0x03, 0x89, 0xab, 0x2b, 0x93, 0xcb, 0x03, 0x31, 0x4b, 0x2b, 0x63, 0x23, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0xcb, 0x2a, 0x41, 0x37, 0x58, 0x8e, 0x2c, 0xbc, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xa8, 0x18, 0xba, 0x86, 0xb7, 0x75, 0x36, 0x88, 0xdf, 0x89, 0xb2, 0x6a, 0x05, 0x7c, 0xba, 0xb7, 0xb1, 0x75, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x20, 0x92, 0x9f, 0xca, 0x1a, 0xc0, 0xd7, 0x46, 0xc6, 0xa6, 0x06, 0x44, 0x2e, 0xec, 0x0e, 0xc4, 0x2e, 0x8c, 0xad, 0xae, 0x6c, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xab, 0x04, 0xdd, 0x60, 0x39, 0xb2, 0xf0, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x61, 0x32, 0xe9, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0x46, 0x1f, 0xca, 0xaa, 0xd5, 0x20, 0x16, 0x69, 0xca, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x62, 0x91, 0xa6, 0xac, 0x01, 0xbc, 0x67, 0x72, 0x70, 0x6c, 0x40, 0xe2, 0xea, 0xca, 0xe4, 0xf2, 0x40, 0xc6, 0xd0, 0xc2, 0xe4, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x7a, 0x60, 0xd0, 0x0d, 0xe2, 0x50, 0xa9, 0x6c, 0x83, 0x05, 0x76, 0xa6, 0x07, 0x0d, 0x5a, 0x69, 0x1e, 0x4e, 0xb1, 0x35, 0x78, 0x65, 0xa2, 0xe5, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0xc1, 0x2b, 0x13, 0x2d, 0x1b, 0xc0, 0x5b, 0x66, 0x26, 0xc7, 0x06, 0xa4, 0xce, 0x4d, 0xae, 0x6c, 0xae, 0x4c, 0xce, 0xae, 0x8c, 0x6c, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x07, 0x06, 0xdd, 0x60, 0x15, 0x82, 0xe8, 0x06, 0x8b, 0x85, 0x42, 0x37, 0x58, 0xc8, 0x20, 0xba, 0xc1, 0xda, 0x17, 0xd2, 0x0d, 0x5a, 0x45, 0xc5, 0xdc, 0x20, 0x8d, 0xf6, 0x68, 0x83, 0x06, 0xe0, 0x32, 0x37, 0x58, 0xe4, 0x0c, 0x7a, 0xd0, 0x74, 0xc1, 0xe5, 0xe1, 0x14, 0x5b, 0x83, 0xc8, 0xbc, 0x28, 0xdb, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x88, 0xcc, 0x8b, 0xb2, 0x06, 0xf0, 0x93, 0x99, 0xc9, 0xb1, 0x01, 0x29, 0x9b, 0x1b, 0x0b, 0x83, 0x2b, 0x23, 0xdb, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x6b, 0xc7, 0x41, 0x37, 0x68, 0x09, 0x1e, 0xf3, 0x60, 0xb1, 0x3c, 0xe8, 0x2c, 0xe0, 0xd3, 0xbd, 0xcd, 0xad, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xf1, 0x0b, 0x56, 0xd6, 0x00, 0x3c, 0xd8, 0xc8, 0xd8, 0xd4, 0x80, 0xc4, 0xd5, 0xbd, 0xd1, 0x95, 0x91, 0x81, 0xd8, 0x85, 0xb1, 0xd5, 0x95, 0x6d, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xf5, 0xc0, 0xa0, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x48, 0x7e, 0x2a, 0x6b, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x50, 0x93, 0x74, 0x83, 0xe6, 0xad, 0x44, 0x37, 0x88, 0xeb, 0xb1, 0xb2, 0x3a, 0x9c, 0x62, 0x6b, 0x10, 0x05, 0x39, 0x65, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0x51, 0x90, 0x53, 0xd6, 0x00, 0xbe, 0x32, 0x33, 0x39, 0x36, 0x20, 0x68, 0x6f, 0x73, 0x74, 0x2b, 0x70, 0x6f, 0x72, 0x74, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x2c, 0xab, 0x04, 0x5d, 0x83, 0x42, 0xb9, 0x73, 0x83, 0xf3, 0x60, 0xd2, 0x86, 0x5f, 0x5c, 0x36, 0x38, 0x67, 0x26, 0x6d, 0x70, 0x7c, 0x37, 0x68, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0xa8, 0x08, 0xdd, 0x20, 0x7e, 0x03, 0xca, 0xd6, 0x60, 0x85, 0x50, 0xd3, 0x06, 0x0d, 0x68, 0xf1, 0x6e, 0xb0, 0xc8, 0xa4, 0x74, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x76, 0x1c, 0x74, 0x83, 0x85, 0x70, 0xa4, 0x07, 0xeb, 0x35, 0x56, 0x6b, 0x16, 0xf0, 0xc3, 0xea, 0xe4, 0xea, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xe8, 0x64, 0x2b, 0x6b, 0x00, 0x7e, 0x64, 0x66, 0x72, 0x6c, 0x40, 0xee, 0xd2, 0xe8, 0xd0, 0x40, 0xda, 0xc2, 0xf2, 0xc4, 0xca, 0x40, 0xea, 0xe6, 0xca, 0xe4, 0x36, 0x28, 0x3a, 0x8d, 0x37, 0x58, 0x56, 0x09, 0xba, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0xdc, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x1c, 0x3e, 0x7c, 0xb0, 0xba, 0x86, 0x3f, 0x97, 0x06, 0x8f, 0x37, 0x08, 0xfd, 0x92, 0x0d, 0xca, 0x26, 0xcc, 0x35, 0xfc, 0x3b, 0xbf, 0x06, 0x8f, 0x40, 0x5c, 0xac, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xf2, 0x86, 0xcf, 0x95, 0x36, 0x38, 0xdf, 0x11, 0x6e, 0xf0, 0x4a, 0x7b, 0xc6, 0x5a, 0xc3, 0x9f, 0x4b, 0x83, 0x8b, 0x1b, 0x3e, 0x57, 0xda, 0xe0, 0x41, 0xe6, 0x8b, 0x1b, 0xbc, 0x49, 0x7d, 0xb1, 0x36, 0xfc, 0x45, 0xb3, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0xe9, 0x4d, 0xbf, 0x41, 0x14, 0xc7, 0x95, 0x1d, 0x44, 0xef, 0x41, 0xd9, 0x86, 0x5f, 0x5c, 0x36, 0x68, 0x71, 0x2e, 0x75, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x17, 0x97, 0x0d, 0x1a, 0x7d, 0x4b, 0xdd, 0xa0, 0x94, 0xcd, 0xec, 0xf0, 0x16, 0x5a, 0x1b, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x45, 0x45, 0xe8, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x45, 0x45, 0xe8, 0x06, 0x51, 0x83, 0x53, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x68, 0xff, 0x3e, 0x73, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xae, 0x60, 0x74, 0x83, 0x75, 0x15, 0xb0, 0x07, 0x8d, 0x64, 0xb4, 0x76, 0x10, 0xc7, 0x38, 0x65, 0x07, 0x11, 0x96, 0x53, 0x76, 0x38, 0xc5, 0xd6, 0x20, 0x7e, 0x75, 0xca, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0xe2, 0x57, 0xa7, 0xac, 0x01, 0x3c, 0x65, 0x66, 0x72, 0x6c, 0x40, 0xc2, 0xc4, 0xe6, 0xbe, 0xe0, 0xc2, 0xe8, 0xd0, 0x36, 0x28, 0x3a, 0x8d, 0x37, 0x58, 0x56, 0x09, 0xba, 0x86, 0xb7, 0x75, 0x06, 0x7c, 0xb2, 0x32, 0x33, 0xba, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x76, 0x1c, 0x74, 0x83, 0x05, 0x76, 0xa6, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x75, 0xad, 0xa4, 0x1b, 0x2c, 0xb0, 0x33, 0x5d, 0xc3, 0xdb, 0x3a, 0x1b, 0x44, 0xc3, 0x51, 0x59, 0x35, 0x6b, 0xf0, 0xd4, 0xa3, 0xa0, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xa7, 0x1e, 0x05, 0x35, 0x80, 0xbf, 0x8c, 0x4d, 0x8c, 0x0d, 0x88, 0x5c, 0x59, 0x5c, 0x5d, 0xd9, 0x1c, 0x5d, 0x4b, 0x9d, 0x5c, 0xda, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x0f, 0x0c, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x81, 0xb6, 0xba, 0xc1, 0x2a, 0x30, 0xd9, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xb2, 0x4a, 0xd0, 0x35, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x0f, 0x0f, 0x5e, 0xc9, 0xad, 0x78, 0x78, 0x5a, 0xe7, 0x20, 0x7a, 0x11, 0xca, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x40, 0x5b, 0xdd, 0x60, 0x99, 0x93, 0xec, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x45, 0x45, 0xe8, 0x06, 0x51, 0xa8, 0x53, 0x76, 0x10, 0x29, 0x3c, 0x65, 0xb5, 0x1a, 0x44, 0xb0, 0x52, 0xd9, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x04, 0x2b, 0x95, 0x35, 0x80, 0xaf, 0xcc, 0x4c, 0x8e, 0x0d, 0x08, 0x5c, 0x18, 0x1d, 0x1a, 0xc8, 0x18, 0x5a, 0x98, 0xdc, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x0f, 0x0c, 0xba, 0x41, 0x5c, 0x5b, 0x94, 0x6d, 0x10, 0x5f, 0x17, 0x65, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x87, 0x9b, 0xab, 0x13, 0xdb, 0x60, 0x21, 0x1c, 0xe9, 0x41, 0x23, 0x19, 0xad, 0x2b, 0xe0, 0x9b, 0xc5, 0xd5, 0x95, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xf1, 0xd9, 0x58, 0xd6, 0x00, 0x7c, 0xb8, 0xbd, 0xc9, 0xb5, 0x85, 0xb1, 0x81, 0xc4, 0xd5, 0x95, 0xc9, 0xe5, 0x81, 0x98, 0xa5, 0x95, 0xb1, 0x91, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x65, 0x95, 0xa0, 0x1b, 0x2c, 0x47, 0x16, 0x5e, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0x4c, 0x26, 0x3d, 0x88, 0x95, 0xa7, 0xb2, 0x0e, 0xa7, 0xd8, 0x1a, 0xc4, 0x51, 0x51, 0xd9, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x1c, 0x15, 0x95, 0x35, 0x80, 0x97, 0xcc, 0x4c, 0x8e, 0x0d, 0xc8, 0xdc, 0x18, 0x5a, 0x59, 0x5b, 0xd9, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0xcb, 0x2a, 0x41, 0xd7, 0xf0, 0x8b, 0xd2, 0x06, 0x8b, 0x08, 0xea, 0x36, 0xbc, 0xdb, 0xb3, 0xc1, 0x72, 0x64, 0xe1, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xf3, 0x60, 0xe6, 0x0e, 0x0f, 0xfd, 0xb4, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x56, 0x54, 0x84, 0x6e, 0xb0, 0x5a, 0xd9, 0x74, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x50, 0x31, 0x74, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x1e, 0x18, 0x74, 0x83, 0x55, 0x08, 0xa2, 0x1b, 0x2c, 0x03, 0x30, 0xdd, 0x60, 0xb1, 0x50, 0xe8, 0xc1, 0x72, 0xf9, 0xd5, 0x3a, 0x9c, 0x62, 0x0b, 0xf8, 0x63, 0x6f, 0x63, 0xeb, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0xec, 0x65, 0x96, 0x35, 0xc0, 0x37, 0xf6, 0xf6, 0xb6, 0x96, 0x56, 0xb6, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0x9a, 0xd9, 0xd0, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x8a, 0x8a, 0xd0, 0x0d, 0x1a, 0x20, 0x06, 0x3d, 0x58, 0xe1, 0x4c, 0xba, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x56, 0x54, 0x84, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0x9e, 0x6a, 0xa5, 0xd8, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0xed, 0x38, 0xe8, 0x06, 0x8b, 0xf9, 0x47, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0xf1, 0x0b, 0x56, 0x56, 0xcd, 0x1a, 0x44, 0x2c, 0x63, 0xd9, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0xc4, 0x32, 0x96, 0x35, 0x80, 0xf7, 0x4c, 0x0e, 0x8e, 0x0d, 0xc8, 0x5c, 0x9d, 0x58, 0x0b, 0x59, 0x19, 0x5b, 0x5a, 0xdb, 0xdc, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x0f, 0x0c, 0xba, 0x41, 0xab, 0xa8, 0x98, 0x1b, 0xac, 0xf0, 0x53, 0xdf, 0xa0, 0xb1, 0xf9, 0xcb, 0x0d, 0x16, 0x39, 0x83, 0x6e, 0xd0, 0x78, 0xc1, 0xe5, 0x06, 0xeb, 0x1c, 0x31, 0x37, 0x68, 0x00, 0x2e, 0x73, 0x83, 0x65, 0x00, 0xa6, 0x1b, 0x34, 0x7d, 0x7c, 0xb9, 0x41, 0x03, 0xc4, 0xa0, 0x07, 0xab, 0x01, 0x48, 0x0f, 0xa7, 0xd8, 0x1a, 0x3c, 0xd5, 0x4a, 0x71, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0xe0, 0xa9, 0x56, 0x8a, 0x0d, 0xe0, 0x23, 0x63, 0x13, 0x63, 0x03, 0x42, 0xf7, 0xb6, 0x56, 0xe6, 0xb6, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0x55, 0x82, 0x6e, 0xb0, 0x1c, 0x59, 0x78, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x30, 0x99, 0x74, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x70, 0x74, 0x6f, 0x6b, 0xb5, 0x1a, 0xc4, 0x7a, 0x49, 0xd9, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0xac, 0x97, 0x94, 0x35, 0x80, 0xbf, 0xcc, 0x4c, 0x8e, 0x0d, 0x08, 0xd9, 0x5b, 0x5b, 0x58, 0x9a, 0x1b, 0x5b, 0x98, 0x58, 0x19, 0xdb, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x4b, 0xec, 0x58, 0xd7, 0xf0, 0x8b, 0xd2, 0x06, 0x4b, 0x02, 0xe7, 0x36, 0x28, 0x76, 0x34, 0xd7, 0xf0, 0x6f, 0xce, 0x06, 0x6b, 0x36, 0xde, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x89, 0x8f, 0xbb, 0x86, 0x5f, 0x5c, 0x36, 0x28, 0x2a, 0xc5, 0xd7, 0xf0, 0x6e, 0xcf, 0x86, 0xd7, 0x7c, 0x0e, 0x96, 0xe4, 0xa4, 0x76, 0x78, 0xe8, 0x67, 0x83, 0xb3, 0x4d, 0xc2, 0x41, 0x41, 0x91, 0xb9, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0xb2, 0x4a, 0xd0, 0x0d, 0x22, 0x93, 0xb2, 0x6c, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0xa8, 0x08, 0xdd, 0x60, 0x15, 0x82, 0xe8, 0xc1, 0x6a, 0x67, 0xd3, 0x59, 0x83, 0x88, 0x6c, 0x28, 0xdb, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x88, 0xc8, 0x86, 0xb2, 0x0e, 0xde, 0x87, 0xd8, 0xb8, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x03, 0x83, 0xae, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0xba, 0x56, 0xd2, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x7a, 0x60, 0xd0, 0x0d, 0x1a, 0x9b, 0xbf, 0x3c, 0x68, 0x7e, 0x18, 0x74, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0xa8, 0x08, 0x5d, 0xc3, 0xdb, 0x3a, 0x1b, 0xc4, 0x67, 0x63, 0x59, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xf5, 0xc0, 0xa0, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xb5, 0xe3, 0xa0, 0x1b, 0x2c, 0xe6, 0x1f, 0x5d, 0xc3, 0xdb, 0x3a, 0x1b, 0x44, 0xcc, 0x52, 0x59, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x56, 0xa0, 0x94, 0x6e, 0xb0, 0x56, 0xa1, 0xae, 0x5a, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x65, 0x95, 0xa0, 0x6b, 0xf8, 0x45, 0x69, 0x83, 0x45, 0x04, 0x75, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0x2f, 0x2e, 0x1b, 0x24, 0xa5, 0x05, 0x1f, 0xc4, 0xb9, 0x0e, 0xd8, 0x41, 0x59, 0xe7, 0x79, 0x10, 0xd1, 0x33, 0x65, 0x1d, 0x4e, 0xb1, 0x35, 0x88, 0x74, 0xbf, 0xb2, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x48, 0xf7, 0x2b, 0x6b, 0x00, 0x5e, 0xe0, 0xc2, 0xe4, 0xe6, 0xca, 0x40, 0xea, 0xe4, 0xd8, 0x40, 0xca, 0xf0, 0xe8, 0xca, 0xdc, 0xe6, 0xd2, 0xde, 0xdc, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb9, 0x30, 0xfc, 0x20, 0xae, 0xcc, 0x9f, 0x36, 0x7c, 0x85, 0xb3, 0xe1, 0x2f, 0x9a, 0x0d, 0x1e, 0x64, 0xbe, 0xb8, 0x41, 0x09, 0x8f, 0xb9, 0x80, 0x27, 0x17, 0x86, 0xb7, 0xc1, 0x59, 0x56, 0x6a, 0x83, 0x62, 0x40, 0x76, 0xc1, 0xe9, 0x83, 0x78, 0x07, 0x2e, 0x5b, 0xc3, 0x83, 0x92, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xeb, 0x1c, 0x44, 0x06, 0xe9, 0xd8, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0x5e, 0x9a, 0x5c, 0xd9, 0x1a, 0xde, 0xd6, 0x39, 0x88, 0xb1, 0xcf, 0xb1, 0xda, 0xf0, 0x8b, 0xcb, 0x1a, 0x3e, 0x77, 0x19, 0xf0, 0xe0, 0xde, 0xd6, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0xe2, 0x1d, 0xb8, 0x6c, 0xc3, 0xdb, 0x3a, 0x07, 0x11, 0x1c, 0x5c, 0xd6, 0x1a, 0x3e, 0x77, 0x19, 0xf0, 0xd2, 0xe4, 0xca, 0x0d, 0x6f, 0xeb, 0x0c, 0x9e, 0x1e, 0xc4, 0x3b, 0x70, 0x59, 0x1b, 0x14, 0xa4, 0xb1, 0x6b, 0xf8, 0xbe, 0x7d, 0xc0, 0x93, 0x0b, 0x33, 0x37, 0x28, 0xa1, 0x63, 0xd7, 0x20, 0xf4, 0x4b, 0x36, 0x58, 0xd4, 0x75, 0x7a, 0xb0, 0xe4, 0x09, 0xfa, 0x20, 0x4c, 0xc7, 0xd6, 0xe0, 0xc4, 0x7e, 0xb3, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x57, 0x30, 0xba, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x4b, 0xec, 0x58, 0xd7, 0xf0, 0x8b, 0xd2, 0x86, 0x2f, 0x97, 0x36, 0xbc, 0xdb, 0xb3, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x86, 0x1f, 0x61, 0xda, 0x60, 0x2d, 0x95, 0x5d, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xe5, 0xc8, 0xc2, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xc2, 0x62, 0xf9, 0x60, 0x9d, 0xf5, 0x5b, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x65, 0x95, 0xa0, 0x1b, 0x2c, 0x86, 0x0b, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0x54, 0x0c, 0x3d, 0x58, 0xea, 0x98, 0xdf, 0xc1, 0x72, 0xf9, 0xd5, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x31, 0x99, 0xc3, 0x63, 0x32, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xc2, 0x62, 0x79, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x0c, 0xfb, 0x6d, 0x83, 0x88, 0x36, 0x2e, 0xab, 0x36, 0x28, 0xe1, 0x31, 0x17, 0x3c, 0x1e, 0xf0, 0xe4, 0xc2, 0xcc, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x05, 0x45, 0xe6, 0x1a, 0x7e, 0x71, 0xd9, 0x20, 0xa2, 0x8d, 0xcb, 0x0e, 0xca, 0x3a, 0xcf, 0x36, 0x7c, 0x62, 0xb3, 0x86, 0xbf, 0x68, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xca, 0xf0, 0xe8, 0x83, 0xf5, 0x5a, 0xcf, 0x1b, 0xa4, 0x26, 0x60, 0xae, 0xe1, 0xcf, 0xa5, 0x01, 0xcf, 0x2c, 0x8f, 0x3d, 0x38, 0xe9, 0x89, 0xb6, 0xe1, 0x6d, 0x9d, 0xc1, 0xeb, 0x83, 0xc8, 0x8d, 0x2e, 0xdb, 0xa0, 0x30, 0x54, 0x5d, 0x83, 0x63, 0xb8, 0xc1, 0x86, 0xb7, 0x75, 0x06, 0xbc, 0x32, 0x3c, 0xba, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x66, 0x79, 0x6c, 0x1b, 0x14, 0x14, 0x99, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0x47, 0x16, 0x5e, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0x16, 0xcb, 0x1b, 0x44, 0x0c, 0x76, 0x59, 0x1d, 0x94, 0x75, 0x9e, 0xb3, 0x06, 0xb1, 0x91, 0x5a, 0xb6, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x10, 0x1b, 0xa9, 0x65, 0x1d, 0xc4, 0xb5, 0x69, 0xd9, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x0f, 0x0c, 0xba, 0xc1, 0x2a, 0x04, 0xd1, 0x0d, 0x5a, 0x45, 0xc5, 0xdc, 0x20, 0xcd, 0x4f, 0x75, 0x83, 0x15, 0x7e, 0xea, 0x1b, 0xb4, 0x04, 0x8f, 0xb9, 0x41, 0x63, 0xf3, 0x97, 0x1b, 0x2c, 0x72, 0x06, 0xdd, 0xa0, 0x01, 0xb8, 0xcc, 0x0d, 0x96, 0x01, 0x98, 0x6e, 0xb0, 0x58, 0x28, 0x74, 0x83, 0xb5, 0x2f, 0xa4, 0x1b, 0xb4, 0xc7, 0x7d, 0xb9, 0xc1, 0x42, 0x06, 0xd1, 0x0d, 0x1a, 0x63, 0xd3, 0xdc, 0xa0, 0x0d, 0x01, 0xcc, 0x83, 0xe5, 0x4f, 0xac, 0x87, 0x53, 0xec, 0x70, 0x8a, 0xad, 0x06, 0x4f, 0x70, 0x06, 0xdb, 0x20, 0xf5, 0xa2, 0x78, 0x83, 0xb2, 0x4b, 0x76, 0x83, 0x27, 0x38, 0x83, 0x6d, 0xf0, 0x66, 0xe1, 0x93, 0xd9, 0xa0, 0x64, 0x61, 0x9f, 0x65, 0x16, 0x78, 0xb2, 0x72, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x36, 0x88, 0xb8, 0x7a, 0xa9, 0x01, 0xf8, 0x80, 0x0b, 0x93, 0x9b, 0x2b, 0x03, 0x19, 0x7b, 0x93, 0x23, 0x03, 0xa1, 0x7b, 0x03, 0x51, 0x9a, 0x7a, 0x72, 0xda, 0xa0, 0xec, 0x92, 0x1d, 0x78, 0xb2, 0x72, 0x83, 0x62, 0x50, 0x76, 0x36, 0x38, 0x60, 0xd1, 0xad, 0xe1, 0x17, 0xa5, 0x0d, 0xde, 0x4d, 0xc1, 0xb2, 0xe1, 0x2f, 0x9a, 0x35, 0x08, 0xfd, 0x92, 0x0d, 0xca, 0x26, 0xcc, 0x35, 0xfc, 0x3b, 0xbf, 0xe2, 0x38, 0x07, 0x4f, 0x70, 0x06, 0xab, 0x36, 0xbc, 0xdb, 0xb3, 0xc1, 0x5a, 0x03, 0xd8, 0x0d, 0x96, 0x81, 0x9f, 0x1f, 0xc4, 0x10, 0xc4, 0xd8, 0x32, 0x6b, 0x10, 0x41, 0x20, 0x60, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x41, 0x04, 0x84, 0x80, 0x1d, 0x3c, 0x83, 0x64, 0x73, 0x83, 0x15, 0x42, 0x4d, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x85, 0x35, 0xa7, 0x1b, 0x9c, 0x08, 0xda, 0x5a, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x6f, 0x0b, 0xcb, 0x13, 0x5b, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x87, 0x4b, 0x2b, 0x1b, 0x3b, 0x58, 0x6d, 0x14, 0xda, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x3d, 0x30, 0xe8, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x0e, 0xda, 0xcb, 0x0e, 0x16, 0x84, 0xce, 0xaf, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0x56, 0x54, 0x84, 0x6e, 0xb0, 0x7c, 0x48, 0x7f, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x50, 0x31, 0xf4, 0x60, 0xd1, 0xa4, 0x69, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0xe2, 0x86, 0xbd, 0x6c, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x66, 0x72, 0x61, 0x63, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0xe2, 0x86, 0xbd, 0xec, 0xa0, 0x45, 0x8b, 0xe0, 0x56, 0xc0, 0x9f, 0xa3, 0x93, 0x4b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x22, 0x5a, 0xbe, 0xac, 0x83, 0x77, 0xc3, 0x6c, 0x6e, 0x50, 0x74, 0x1a, 0x6f, 0xb0, 0xc4, 0x8e, 0x75, 0x0d, 0xbf, 0x28, 0x6d, 0x10, 0xef, 0x29, 0x4f, 0x1b, 0x14, 0x3b, 0x9a, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x0c, 0xf8, 0x73, 0x75, 0x6e, 0x65, 0x87, 0x87, 0x7e, 0x0e, 0x56, 0x8e, 0xdd, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0x65, 0x95, 0xa0, 0x1b, 0x2c, 0x47, 0x16, 0x5e, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xd4, 0x24, 0xdd, 0xa0, 0x79, 0x2b, 0xd1, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x42, 0xc5, 0xd0, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xab, 0x8d, 0xa1, 0x85, 0x55, 0xb3, 0x06, 0x8d, 0x4d, 0x7a, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x06, 0xad, 0x5e, 0x7e, 0x1f, 0xbc, 0x67, 0x60, 0x73, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x07, 0x06, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xc1, 0x09, 0xdd, 0xa0, 0xc8, 0x69, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0x7c, 0x18, 0x5d, 0xc3, 0x8f, 0x30, 0x83, 0xd3, 0x07, 0x11, 0xf8, 0x9c, 0x54, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x25, 0x38, 0xa1, 0x1b, 0x14, 0xb0, 0xf9, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x85, 0x0f, 0xa3, 0x6b, 0xf8, 0x11, 0x66, 0x70, 0xfa, 0x20, 0xa2, 0x98, 0x93, 0xaa, 0xd5, 0x20, 0x82, 0xda, 0xcb, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x22, 0xa8, 0xbd, 0xac, 0x83, 0x63, 0xeb, 0xe6, 0x06, 0x85, 0x72, 0xe7, 0x06, 0x0b, 0x7e, 0x6c, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0xb2, 0x4a, 0xd0, 0x35, 0xfc, 0xa2, 0xb4, 0xe1, 0xcb, 0xa5, 0x83, 0x36, 0x02, 0x44, 0x0f, 0xda, 0x2d, 0xd6, 0x9e, 0x05, 0xfc, 0x30, 0xb1, 0x37, 0x7c, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x20, 0xd2, 0x05, 0xcc, 0x3a, 0x78, 0x27, 0xbc, 0xe6, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x2b, 0xd0, 0x56, 0x37, 0x48, 0x72, 0x78, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x0b, 0x35, 0x49, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0xed, 0x4e, 0x5c, 0xae, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xdf, 0xa5, 0xcd, 0xa1, 0x1d, 0xb4, 0x5b, 0x71, 0xd9, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x5d, 0x2b, 0xe9, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x0a, 0x0d, 0xcc, 0x0e, 0x1a, 0x3e, 0xbe, 0x3c, 0x88, 0x21, 0x88, 0xb1, 0x0e, 0xa7, 0xd8, 0x02, 0x7e, 0x9d, 0x5b, 0xda, 0xb8, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x10, 0x27, 0x09, 0x66, 0x0d, 0xa0, 0x59, 0x36, 0x37, 0x16, 0x06, 0x57, 0x46, 0x06, 0x52, 0x45, 0x65, 0x14, 0x63, 0xdb, 0x60, 0xa5, 0x8b, 0xd3, 0x02, 0x1e, 0xdb, 0x9b, 0xd8, 0x06, 0x4b, 0xd7, 0x50, 0x37, 0x58, 0xe9, 0xe2, 0xb4, 0x80, 0x87, 0x36, 0x27, 0xb6, 0x86, 0x1f, 0x61, 0x06, 0xbe, 0x0e, 0x0f, 0x04, 0x00, 0xec, 0x06, 0x2b, 0x5d, 0x9c, 0x16, 0xf0, 0xd8, 0xe6, 0xc4, 0xd6, 0xf0, 0x23, 0xcc, 0xc0, 0xd7, 0xe1, 0x81, 0x00, 0xc0, 0xdd, 0x60, 0xa5, 0x8b, 0xd3, 0x06, 0xf1, 0xb0, 0x44, 0xb5, 0x86, 0x1f, 0x61, 0x06, 0xbe, 0x0e, 0x0f, 0x04, 0x00, 0xf0, 0x06, 0x2b, 0x5d, 0x9c, 0x36, 0x68, 0xe4, 0xae, 0x78, 0x83, 0x64, 0xfc, 0xc6, 0x0d, 0x0e, 0x58, 0x74, 0x6b, 0x50, 0x74, 0x1a, 0x6f, 0xb0, 0xac, 0x12, 0x74, 0x0d, 0xbf, 0x28, 0x6d, 0xf8, 0x72, 0x69, 0xc3, 0x5f, 0x34, 0x1b, 0x9c, 0x67, 0x47, 0x0f, 0xe2, 0xe6, 0x71, 0x6c, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x1d, 0x07, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xd8, 0x08, 0xdd, 0x60, 0x95, 0xeb, 0x62, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0xf5, 0xc0, 0xa0, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x9f, 0x7b, 0x63, 0x7b, 0x3b, 0x28, 0xbb, 0xe9, 0x5b, 0x66, 0x0d, 0x42, 0x53, 0x69, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x20, 0x34, 0x95, 0x1a, 0x80, 0x9f, 0x2a, 0x2a, 0xa3, 0x18, 0x1b, 0x90, 0xb9, 0x3a, 0x39, 0xb9, 0xb7, 0xb3, 0x30, 0xba, 0x32, 0x10, 0xb8, 0xb0, 0x34, 0xb9, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x96, 0x55, 0x82, 0xae, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x3f, 0x97, 0x36, 0x58, 0x12, 0x1f, 0x7a, 0xf8, 0xa1, 0x66, 0x0d, 0x7f, 0x2e, 0x6d, 0xb0, 0xca, 0x30, 0xf4, 0xf0, 0x43, 0x4d, 0x1b, 0xfe, 0xa2, 0xd9, 0xe0, 0x3c, 0x3b, 0xba, 0x41, 0x92, 0x01, 0xe1, 0x86, 0x3f, 0x81, 0x36, 0x68, 0xc9, 0xae, 0x78, 0x83, 0x85, 0x84, 0xa1, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xd2, 0x80, 0x77, 0x0d, 0xbf, 0xb8, 0x6c, 0x78, 0x4c, 0xe6, 0xe0, 0xa8, 0xc0, 0x76, 0xb0, 0xe6, 0x3d, 0xb4, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xa2, 0x22, 0x74, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xc4, 0x8e, 0x75, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0xbf, 0xad, 0x2c, 0x8c, 0x6e, 0x0d, 0x6f, 0xeb, 0x1c, 0xc4, 0x23, 0x83, 0xd9, 0x1a, 0xde, 0xd6, 0x39, 0x88, 0xe4, 0x06, 0xb3, 0x83, 0xf4, 0x14, 0xa8, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xc7, 0xd5, 0x85, 0x91, 0xb5, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x3b, 0x0e, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xf8, 0x30, 0xba, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x83, 0xe7, 0xaa, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xb1, 0x63, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xc4, 0xae, 0x87, 0xd9, 0x06, 0x31, 0xfd, 0x61, 0xb6, 0x41, 0xfc, 0x3f, 0x51, 0x1d, 0xa4, 0xa7, 0x40, 0x1d, 0x44, 0x24, 0x88, 0x59, 0xcd, 0x1a, 0x44, 0x38, 0x85, 0xd9, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xad, 0x06, 0xa5, 0xa6, 0xe5, 0x41, 0x84, 0x53, 0x98, 0x35, 0x00, 0x1d, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x55, 0x54, 0x46, 0x31, 0xb6, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0x1e, 0x18, 0x74, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xc4, 0x8e, 0x75, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0xbb, 0x1e, 0x66, 0x6b, 0x78, 0x5b, 0xe7, 0x20, 0x66, 0x17, 0xcc, 0x36, 0x88, 0xa8, 0x0f, 0xb3, 0x83, 0x54, 0x5b, 0xb8, 0x83, 0x88, 0x04, 0x31, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xb1, 0x63, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xc4, 0xae, 0x87, 0xd9, 0x06, 0xf1, 0xff, 0x44, 0xb5, 0x41, 0x4b, 0x76, 0xc5, 0x07, 0xa9, 0xb6, 0x70, 0x07, 0x11, 0x09, 0x62, 0xd6, 0xac, 0x41, 0xd4, 0x7b, 0x98, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0x44, 0xbd, 0x87, 0x59, 0x03, 0xd0, 0x71, 0x56, 0xe6, 0x06, 0x72, 0x16, 0x46, 0x57, 0x06, 0x62, 0xf6, 0x26, 0x07, 0x32, 0x57, 0x16, 0x26, 0xa7, 0xdb, 0xf0, 0x8b, 0xd2, 0x1a, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xd0, 0x13, 0x36, 0x36, 0x56, 0x06, 0x47, 0x07, 0xe2, 0x56, 0xd7, 0x06, 0x92, 0xe6, 0x06, 0x22, 0x17, 0xe6, 0x76, 0x56, 0xc6, 0xda, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0xda, 0x60, 0x41, 0xa7, 0xfd, 0xc1, 0xb1, 0xa5, 0x74, 0x0d, 0x7f, 0x2e, 0x6d, 0x50, 0x5e, 0x5e, 0x1e, 0x1c, 0x5b, 0x4a, 0xd7, 0xf0, 0xe7, 0xd2, 0x80, 0x67, 0xc6, 0x06, 0x1f, 0x3e, 0x58, 0x6d, 0xc3, 0x2f, 0x4a, 0x6b, 0x78, 0xe2, 0x7d, 0x0d, 0x77, 0xda, 0x0c, 0xc0, 0xc3, 0x1b, 0x1c, 0x5d, 0xda, 0x9b, 0x5b, 0x18, 0x1b, 0x5b, 0x1e, 0x88, 0x5c, 0x19, 0x59, 0xdd, 0x58, 0xd9, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0xb9, 0x3a, 0xf9, 0xe0, 0xd8, 0x52, 0xba, 0xe1, 0x2f, 0x9a, 0x0d, 0x0e, 0xed, 0x32, 0x1b, 0x14, 0x3b, 0x9a, 0x6b, 0x78, 0x84, 0x75, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x86, 0xad, 0xb4, 0x86, 0xb7, 0x75, 0x06, 0xbc, 0xb9, 0x3a, 0xb9, 0x83, 0x05, 0xb0, 0xf6, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x17, 0x67, 0x1b, 0xc4, 0xef, 0x8d, 0xd9, 0xc1, 0xda, 0x56, 0xfb, 0x36, 0x28, 0x28, 0x32, 0x37, 0x38, 0xb1, 0xdf, 0x6c, 0x70, 0x96, 0x02, 0xdb, 0xa0, 0xd8, 0xd1, 0x5c, 0xc3, 0xdb, 0x3a, 0x03, 0x9e, 0x19, 0x1b, 0xdc, 0x06, 0xf1, 0x7b, 0x63, 0xb6, 0xe1, 0xdd, 0x9e, 0x0d, 0x9f, 0x02, 0x1e, 0xc4, 0xee, 0x8d, 0xd9, 0xac, 0x41, 0x3c, 0x83, 0x98, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6a, 0x50, 0x6a, 0x5a, 0x1e, 0xc4, 0x33, 0x88, 0x59, 0x03, 0xf0, 0x03, 0x17, 0x26, 0x37, 0x57, 0x06, 0xe2, 0x56, 0xd7, 0x06, 0x62, 0x26, 0xf7, 0xd6, 0x06, 0x42, 0x03, 0x82, 0x56, 0x86, 0xb7, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0xaa, 0x86, 0x6e, 0x70, 0x78, 0x95, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0xa2, 0xa1, 0xdf, 0x60, 0x35, 0xc2, 0xfd, 0xc1, 0xfa, 0xdd, 0xd0, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x5b, 0x01, 0xbf, 0x8e, 0xce, 0xac, 0xdc, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x88, 0x7a, 0x20, 0xb3, 0x06, 0xf0, 0xad, 0xa2, 0x32, 0x6a, 0xc1, 0x01, 0x99, 0x2b, 0x8b, 0xab, 0x2b, 0x73, 0x1b, 0x2b, 0xdb, 0x60, 0x85, 0x50, 0xd3, 0x06, 0xcb, 0x8e, 0x41, 0x37, 0x68, 0xfb, 0x4a, 0x74, 0x83, 0xb5, 0x38, 0x98, 0x6b, 0xb0, 0xd2, 0xc5, 0x69, 0x01, 0x2f, 0xae, 0x2e, 0x6c, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x96, 0x55, 0x82, 0xae, 0xe1, 0x17, 0xa5, 0x0d, 0x22, 0x5e, 0x55, 0x6a, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x75, 0x6c, 0xdb, 0xa0, 0xa8, 0x14, 0x3f, 0x68, 0xdd, 0x76, 0x78, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x07, 0x06, 0x5d, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0xa8, 0x08, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x2f, 0x05, 0x5d, 0xc3, 0x8f, 0x30, 0x1b, 0x6a, 0x7e, 0x10, 0xf1, 0x35, 0xfc, 0x08, 0xb3, 0xa1, 0xe6, 0x07, 0x31, 0x6f, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xbe, 0x14, 0x74, 0x83, 0x84, 0xc0, 0xd4, 0x35, 0xfc, 0x08, 0xb3, 0xa1, 0xe6, 0x07, 0xf1, 0x6b, 0x83, 0x08, 0x4e, 0x32, 0xdb, 0x20, 0x82, 0x93, 0xcc, 0x5a, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0xa8, 0x08, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xd8, 0x08, 0x5d, 0xc3, 0x8f, 0x30, 0x83, 0xd3, 0x41, 0xc0, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x2f, 0x05, 0x5d, 0xc3, 0x8f, 0x30, 0x1b, 0x6a, 0x7e, 0x10, 0x90, 0x83, 0x08, 0x54, 0x32, 0x3b, 0x88, 0x86, 0x25, 0xb3, 0x35, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x8a, 0x8a, 0xd0, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x82, 0x8d, 0xd0, 0x35, 0xfc, 0x08, 0x33, 0x38, 0x1d, 0x04, 0xbd, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xfa, 0x52, 0xd0, 0x0d, 0x12, 0x02, 0x53, 0xd7, 0xf0, 0x23, 0xcc, 0x86, 0x9a, 0x1f, 0xc4, 0xa3, 0x83, 0x68, 0x58, 0x32, 0x6b, 0x83, 0x95, 0x2e, 0x4e, 0x1b, 0x3c, 0xe5, 0x98, 0x75, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x96, 0x55, 0x82, 0xae, 0xe1, 0x17, 0xa5, 0x35, 0x7c, 0xae, 0xb4, 0xe1, 0xcb, 0xa5, 0x83, 0x72, 0xe8, 0x77, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x75, 0x6c, 0xdb, 0xa0, 0xa8, 0x14, 0x3f, 0x68, 0xca, 0x79, 0x78, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x07, 0x06, 0x5d, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0xa8, 0x08, 0x5d, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x07, 0x06, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x2f, 0x05, 0x5d, 0xc3, 0x8f, 0x30, 0x1b, 0x6a, 0x7e, 0x10, 0xe1, 0x35, 0xfc, 0x08, 0x73, 0xf0, 0xd0, 0x50, 0x90, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xeb, 0x4b, 0x41, 0xd7, 0xf0, 0x23, 0xcc, 0xc1, 0xb3, 0x3a, 0x41, 0x0e, 0x96, 0xb9, 0xd3, 0x75, 0x10, 0x0d, 0x4b, 0x66, 0x6b, 0xb0, 0x42, 0xa8, 0x69, 0x83, 0x15, 0x15, 0xa1, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x05, 0x1b, 0xa1, 0x6b, 0xf8, 0x11, 0x66, 0x70, 0x3a, 0x08, 0x70, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xf5, 0xa5, 0xa0, 0x6b, 0xf8, 0x11, 0x66, 0x43, 0xcd, 0x0f, 0x02, 0x74, 0x10, 0x81, 0x4a, 0x66, 0x07, 0x91, 0xb5, 0x64, 0xb6, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x51, 0x11, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xb0, 0x11, 0xba, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x83, 0x68, 0xb7, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x5f, 0x0a, 0xba, 0x41, 0x42, 0x60, 0xea, 0x1a, 0x7e, 0x84, 0xd9, 0x50, 0xf3, 0x83, 0xf8, 0x74, 0x10, 0x59, 0x4b, 0x66, 0x6d, 0xb0, 0xd2, 0xc5, 0x69, 0x01, 0x8f, 0xec, 0x6d, 0x6e, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x96, 0x55, 0x82, 0xae, 0xe1, 0x17, 0xa5, 0x0d, 0x7f, 0x2b, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0xb2, 0xde, 0x76, 0x83, 0xa2, 0x52, 0xfc, 0xf0, 0xfb, 0xd9, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x51, 0x11, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x5f, 0x0a, 0xba, 0x86, 0x1f, 0x61, 0x36, 0xd4, 0xfc, 0x20, 0x84, 0x07, 0x8b, 0xc2, 0xe9, 0x0e, 0x22, 0x6b, 0xc9, 0x6c, 0x83, 0x15, 0x42, 0x4d, 0x1b, 0xac, 0x07, 0x06, 0x5d, 0xc3, 0xdb, 0x3a, 0x07, 0x11, 0x4b, 0x64, 0xb6, 0xc1, 0x7b, 0x8d, 0x59, 0xd7, 0xf0, 0xb6, 0xce, 0x41, 0x84, 0x81, 0x99, 0xd5, 0x6a, 0x10, 0x3f, 0xf9, 0x65, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xf1, 0x93, 0x5f, 0xd6, 0x00, 0xfe, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x1b, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x3d, 0x30, 0xe8, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0xd9, 0x31, 0xe8, 0x06, 0x6d, 0x5f, 0x89, 0x6e, 0xb0, 0x16, 0x07, 0x73, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xbe, 0x14, 0x74, 0x83, 0xd4, 0xd3, 0xd8, 0x83, 0x84, 0x7d, 0xcb, 0xd6, 0xf0, 0xb6, 0xce, 0x80, 0x5f, 0x36, 0x37, 0x16, 0xd6, 0xe1, 0x14, 0x6b, 0x01, 0x7f, 0x0e, 0x2e, 0x6c, 0xdc, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x88, 0x42, 0x36, 0xb3, 0x0e, 0x9a, 0xa2, 0x0e, 0xdd, 0xf0, 0x6e, 0xcf, 0x06, 0x0b, 0x15, 0x43, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xab, 0xa0, 0x43, 0xd7, 0xf0, 0x8b, 0xcb, 0x1a, 0xbe, 0x7e, 0xd9, 0xf0, 0x21, 0xcc, 0x86, 0xaf, 0x5f, 0x36, 0x7c, 0x08, 0x73, 0x90, 0x72, 0x5a, 0xb5, 0xc1, 0x62, 0x00, 0xd0, 0x35, 0x7c, 0xfd, 0xb2, 0xe1, 0x43, 0x98, 0x0d, 0x5f, 0xbf, 0x6c, 0xf8, 0x10, 0xe6, 0xe0, 0xb4, 0x0a, 0x77, 0xb0, 0x0a, 0x3b, 0xb4, 0x56, 0x83, 0x56, 0x0e, 0x78, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x5a, 0x39, 0xe0, 0xed, 0x20, 0x8a, 0x0d, 0x9b, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0x41, 0xdc, 0xac, 0x97, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0xe2, 0xa0, 0xbd, 0x6c, 0x83, 0x08, 0x78, 0x03, 0x6b, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x37, 0xec, 0x65, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x38, 0x68, 0x2f, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0xac, 0x82, 0x0e, 0x5d, 0xc3, 0xb3, 0x78, 0x07, 0xf1, 0x4d, 0xa4, 0x54, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0x26, 0x93, 0x1e, 0x2c, 0x9a, 0x34, 0x6d, 0xd6, 0x20, 0x7e, 0x0d, 0xcc, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0xe2, 0xd7, 0xc0, 0xac, 0x01, 0xbc, 0xef, 0xd2, 0xe8, 0xd0, 0x40, 0xee, 0xd0, 0xd2, 0xe8, 0xca, 0xe6, 0xe0, 0xc2, 0xc6, 0xca, 0x36, 0x28, 0x94, 0x3b, 0x37, 0x58, 0x5b, 0x2a, 0xba, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x8e, 0x83, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0xa2, 0x90, 0xcd, 0xac, 0x83, 0x25, 0xb5, 0xa2, 0x87, 0x53, 0x6c, 0x0d, 0xda, 0xf3, 0x1e, 0xdb, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x0d, 0xda, 0x36, 0x5b, 0x1d, 0xc0, 0x23, 0xcc, 0x2d, 0x0f, 0xc4, 0x2e, 0x8c, 0xad, 0xae, 0x6c, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0xd5, 0xbd, 0xac, 0x6b, 0x50, 0x08, 0xa6, 0x1e, 0x44, 0xf5, 0x79, 0xd9, 0x06, 0xe7, 0xc1, 0x8e, 0x0d, 0x96, 0x43, 0x32, 0xcd, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x0b, 0x35, 0x49, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0xb1, 0xb6, 0x67, 0xb6, 0x41, 0xac, 0xed, 0x99, 0xb5, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x03, 0x83, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x96, 0xe0, 0x84, 0x6e, 0x50, 0x50, 0x64, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0x3e, 0x8c, 0xae, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0x83, 0xc0, 0x7d, 0xa8, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x0a, 0xb4, 0xd5, 0x0d, 0x9a, 0xc3, 0xfb, 0x3c, 0x68, 0x4d, 0xd2, 0x6b, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x02, 0x6d, 0x75, 0x83, 0xa5, 0x5f, 0xaf, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x88, 0x96, 0x2f, 0xab, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0xb2, 0x4a, 0xd0, 0x35, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x9f, 0x0f, 0x4e, 0x7a, 0xa2, 0x1b, 0x7e, 0x71, 0xd9, 0xe0, 0xc8, 0xac, 0xba, 0x86, 0xcf, 0x5d, 0x06, 0x87, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0x5a, 0xc7, 0xb6, 0x83, 0x88, 0x53, 0x87, 0x6a, 0x83, 0xe8, 0xf9, 0x01, 0x6b, 0x0d, 0x6f, 0xeb, 0x6c, 0x10, 0xe9, 0x02, 0x66, 0xad, 0xe1, 0x6d, 0x9d, 0x01, 0xff, 0x4d, 0xec, 0x0d, 0xaf, 0x59, 0x83, 0x88, 0x63, 0x2f, 0xdb, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0xd5, 0xa0, 0xd4, 0xb4, 0x3c, 0x88, 0x38, 0xf6, 0xb2, 0x06, 0xf8, 0xdf, 0xe0, 0xe8, 0xd2, 0xde, 0xdc, 0xc2, 0xd8, 0x36, 0x28, 0x94, 0x3b, 0x37, 0x58, 0xf0, 0x63, 0xbb, 0xc1, 0x0a, 0xa1, 0xa6, 0x0d, 0xd6, 0x03, 0x83, 0x6e, 0xb0, 0x78, 0xcd, 0xf6, 0x60, 0x89, 0x49, 0xe9, 0xe1, 0x14, 0x5b, 0x83, 0xb6, 0xf9, 0x9a, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0xda, 0xe6, 0x6b, 0x6a, 0x00, 0x8f, 0xb5, 0xb2, 0xbc, 0x16, 0xbb, 0x30, 0xb6, 0xba, 0xb2, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xa2, 0x22, 0x74, 0x0d, 0x56, 0x08, 0x35, 0x6d, 0xb0, 0xae, 0x60, 0x74, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x85, 0x06, 0x66, 0x07, 0x31, 0x54, 0x68, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x88, 0x42, 0x03, 0xb3, 0x83, 0xf6, 0xe5, 0x42, 0x3b, 0x88, 0x21, 0x88, 0xb1, 0xd5, 0x60, 0x0d, 0x7f, 0xdc, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0x6d, 0xb0, 0xc4, 0x93, 0x6e, 0x00, 0xbf, 0x2a, 0x2a, 0xa3, 0x16, 0x1c, 0x10, 0xb6, 0x32, 0xb7, 0x33, 0x3a, 0xb4, 0x0d, 0xbf, 0x28, 0x6d, 0xb0, 0x48, 0x3b, 0x6e, 0xc3, 0x5f, 0x34, 0x1b, 0x7e, 0xa8, 0xd9, 0xf0, 0x89, 0xcd, 0x06, 0x2b, 0x64, 0xe9, 0x36, 0x7c, 0x90, 0xb3, 0xe1, 0x35, 0xbd, 0x0d, 0x96, 0xe8, 0xd2, 0x1d, 0x2c, 0x6d, 0xa6, 0x3b, 0x9c, 0x62, 0x6b, 0x10, 0x9b, 0xf1, 0x65, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xb1, 0x19, 0x5f, 0xd6, 0x00, 0xbf, 0x99, 0x5c, 0xd8, 0x18, 0x5d, 0xda, 0x9b, 0xdb, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x51, 0x11, 0xba, 0xc1, 0xda, 0x17, 0xd2, 0x83, 0x38, 0xb9, 0x33, 0x9b, 0x05, 0xfc, 0x37, 0x31, 0xb5, 0x72, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x20, 0xb2, 0x34, 0xcd, 0x1a, 0xc0, 0xeb, 0x4d, 0x4c, 0xad, 0x6c, 0x8c, 0x0e, 0x84, 0x2d, 0x6d, 0x8e, 0x6e, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x85, 0x9a, 0xa4, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x85, 0x06, 0x66, 0x07, 0x6f, 0xd7, 0x61, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x44, 0xa1, 0x81, 0xd9, 0x41, 0x1b, 0x7b, 0x97, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x75, 0xad, 0xa4, 0x1b, 0xc4, 0xf8, 0x81, 0xd9, 0x1a, 0xde, 0xd6, 0xd9, 0xa0, 0x6d, 0xbe, 0xa6, 0x9a, 0x35, 0x88, 0xea, 0x44, 0xb3, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0xa8, 0x4e, 0x34, 0xeb, 0x60, 0xc1, 0x10, 0xf7, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x81, 0xb6, 0xba, 0x41, 0x53, 0x71, 0x60, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x65, 0x95, 0xa0, 0x1b, 0x34, 0xd4, 0xfa, 0xba, 0x86, 0xb7, 0x75, 0x36, 0x88, 0x2c, 0x4d, 0xb3, 0x6a, 0x05, 0xfc, 0xb9, 0x3a, 0xb7, 0x73, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x20, 0xd2, 0x47, 0xcd, 0x1a, 0x80, 0x87, 0x31, 0xb4, 0x30, 0x39, 0x90, 0x2a, 0x2a, 0xa3, 0x16, 0x1c, 0x90, 0xb9, 0x30, 0xb7, 0x34, 0xba, 0xbc, 0x0d, 0x0e, 0x58, 0x74, 0x6b, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x2e, 0x1e, 0x9c, 0x67, 0x47, 0x37, 0xfc, 0x45, 0xb3, 0xe1, 0x83, 0xd5, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x0d, 0xca, 0xc2, 0xe2, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0x4c, 0x3f, 0xee, 0xf0, 0x16, 0xda, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x06, 0xa7, 0xe6, 0xb6, 0x83, 0xc2, 0xcb, 0x78, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x95, 0x20, 0x66, 0x87, 0xb7, 0xd0, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0x36, 0x28, 0x2a, 0xc5, 0x0f, 0x0a, 0x2f, 0xe3, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0x7c, 0x3a, 0xb9, 0xb2, 0xb9, 0xc3, 0x5b, 0x68, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x1b, 0x04, 0x2c, 0xeb, 0x41, 0xe1, 0x65, 0xbc, 0x86, 0x77, 0x7b, 0x36, 0x88, 0x04, 0x33, 0xb3, 0xc3, 0x5b, 0x68, 0x1b, 0xde, 0xed, 0xd9, 0xf0, 0xc5, 0xef, 0x06, 0x05, 0xdc, 0xfe, 0xc1, 0x42, 0x6a, 0xba, 0x65, 0xd6, 0xe0, 0x65, 0xd5, 0x7c, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x1b, 0xbe, 0x5c, 0xda, 0x60, 0xcd, 0xa6, 0xfd, 0x06, 0xab, 0x2b, 0xed, 0xdb, 0xf0, 0x17, 0xcd, 0x86, 0x0f, 0x56, 0x37, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x6e, 0xcf, 0x86, 0x2f, 0x7e, 0x37, 0x58, 0x02, 0x6b, 0x7f, 0xb0, 0xb6, 0xd5, 0x7e, 0xc3, 0x23, 0xac, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x34, 0x6c, 0xa5, 0x0d, 0x4f, 0xeb, 0x1c, 0x2c, 0x80, 0xb5, 0x5f, 0xc3, 0xbb, 0x3d, 0x1b, 0xbe, 0xf8, 0xdd, 0xf0, 0xb4, 0xce, 0xc1, 0xda, 0x56, 0xfb, 0x56, 0x83, 0xc8, 0x62, 0x35, 0xdb, 0xf0, 0x8b, 0xd2, 0x06, 0x11, 0x6f, 0x6a, 0xb6, 0xe1, 0x2f, 0x9a, 0x0d, 0x1f, 0xac, 0x6e, 0xf8, 0xc4, 0x66, 0x0d, 0xce, 0xf9, 0x4b, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0xf6, 0x3f, 0x3a, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x49, 0x34, 0xbb, 0x41, 0x51, 0x29, 0x7e, 0x50, 0xa0, 0x8e, 0xaf, 0xe1, 0x73, 0x97, 0x0d, 0x9a, 0x1c, 0xf2, 0xde, 0xf0, 0x6e, 0xcf, 0x06, 0x25, 0xd1, 0xec, 0x06, 0x45, 0xa5, 0xf8, 0x41, 0x19, 0x44, 0xbe, 0xe1, 0x73, 0x97, 0x01, 0x8f, 0x4e, 0xae, 0xdc, 0xf0, 0x6e, 0xcf, 0x06, 0x25, 0xd1, 0xec, 0x06, 0x45, 0xa5, 0xf8, 0x06, 0x11, 0x3b, 0x38, 0x75, 0x78, 0x0b, 0x6d, 0xc3, 0x23, 0xac, 0x6b, 0xf8, 0x95, 0x6c, 0x0d, 0x8f, 0xb0, 0xae, 0xe1, 0x57, 0xb2, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x0e, 0xde, 0x55, 0xcd, 0xb7, 0x41, 0x63, 0x6c, 0xc2, 0x07, 0x91, 0x72, 0x65, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x88, 0x1f, 0x5e, 0xb3, 0x0d, 0x1a, 0x63, 0x13, 0x3e, 0x88, 0x5a, 0x2c, 0xb3, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0xe0, 0x95, 0x8c, 0x70, 0xad, 0xe1, 0x6d, 0x9d, 0x83, 0x46, 0xa3, 0xbc, 0x6b, 0x0d, 0x8f, 0xb0, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0x9e, 0x72, 0x0c, 0x79, 0xd0, 0x18, 0x9b, 0xf0, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x7e, 0x78, 0xcd, 0x36, 0x88, 0x95, 0x5f, 0xb3, 0x83, 0x98, 0xde, 0x32, 0x6b, 0x0d, 0x8f, 0xb0, 0xae, 0xe1, 0xdf, 0x9c, 0x35, 0xfc, 0x08, 0x73, 0xf0, 0xbe, 0x4f, 0x90, 0x83, 0xc6, 0xd8, 0x84, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xf1, 0xc3, 0x6b, 0xb6, 0x41, 0xac, 0xfc, 0x9a, 0x1d, 0xc4, 0xbe, 0x97, 0x59, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x62, 0xd4, 0xd7, 0x6c, 0x83, 0xf7, 0x1a, 0xb3, 0xd6, 0xe1, 0x14, 0x5b, 0x83, 0x78, 0x06, 0x31, 0xdb, 0xf0, 0x8b, 0xd2, 0x06, 0x11, 0x6f, 0x6a, 0xb6, 0xe1, 0x2f, 0x9a, 0x0d, 0x1f, 0xac, 0x6e, 0xf8, 0xc4, 0x66, 0x0d, 0x16, 0x95, 0x27, 0x6d, 0x10, 0x87, 0xb6, 0x66, 0x1b, 0xc4, 0xfe, 0xad, 0xd9, 0x06, 0xb1, 0x96, 0x6b, 0xb6, 0xe1, 0x73, 0x97, 0x0d, 0x16, 0x72, 0xc3, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0x92, 0x68, 0x76, 0x83, 0xa2, 0x52, 0x7c, 0x83, 0xb8, 0x31, 0x9c, 0x3a, 0xbc, 0x85, 0xb6, 0xe1, 0x11, 0xd6, 0x35, 0xfc, 0x4a, 0xb6, 0x86, 0x47, 0x58, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xf1, 0xc3, 0x6b, 0xb6, 0x41, 0x63, 0x6c, 0xc2, 0x07, 0x91, 0x8a, 0x64, 0x76, 0x10, 0x65, 0xbe, 0x66, 0x6b, 0x78, 0x84, 0x75, 0x0d, 0xff, 0xe6, 0xac, 0xe1, 0x47, 0x98, 0x83, 0xa7, 0x64, 0x82, 0x1c, 0x34, 0xc6, 0x26, 0xbc, 0x86, 0x77, 0x7b, 0x36, 0x88, 0x1f, 0x5e, 0xb3, 0x0d, 0x62, 0xe5, 0xd7, 0xec, 0x20, 0x72, 0x9b, 0xcc, 0x5a, 0xc3, 0x23, 0xac, 0x6b, 0xf8, 0x37, 0x67, 0x0d, 0x3f, 0xc2, 0x6c, 0xa8, 0xf9, 0x41, 0xd0, 0x0f, 0x1a, 0x63, 0x13, 0x5e, 0xc3, 0xbb, 0x3d, 0x1b, 0xc4, 0x0f, 0xaf, 0xd9, 0x06, 0xb1, 0xf2, 0x6b, 0x76, 0x10, 0xe1, 0x50, 0x66, 0xb5, 0x41, 0xac, 0x10, 0x9b, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x62, 0xd4, 0xd7, 0xec, 0x60, 0x35, 0x3d, 0x7c, 0x2b, 0xe0, 0x91, 0xbd, 0xcd, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0xe2, 0x4d, 0xcd, 0x36, 0xfc, 0x45, 0xb3, 0xe1, 0x83, 0xd5, 0x0d, 0x9f, 0xd8, 0xac, 0x41, 0x61, 0xa8, 0xba, 0x41, 0x1c, 0xda, 0x9a, 0x1d, 0xc4, 0xfe, 0xad, 0xd9, 0x86, 0x47, 0x58, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xf1, 0xc3, 0x6b, 0xb6, 0x41, 0x63, 0x6c, 0xc2, 0x07, 0xb1, 0x39, 0x66, 0x76, 0x10, 0x65, 0xbe, 0x66, 0xab, 0xc1, 0x2b, 0x19, 0xe1, 0x36, 0xfc, 0xa2, 0xb4, 0xe1, 0xcb, 0xa5, 0x0d, 0x7f, 0xd1, 0x6c, 0xf8, 0x60, 0x75, 0xc3, 0xbb, 0x3d, 0x1b, 0xc4, 0x0f, 0xaf, 0xd9, 0x86, 0xa7, 0x75, 0x0e, 0xa2, 0x47, 0xc9, 0xec, 0x70, 0x8a, 0xd5, 0xe1, 0x14, 0x9b, 0x35, 0x88, 0x15, 0xfb, 0xb2, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x58, 0xb1, 0x2f, 0x6b, 0x00, 0x1e, 0xc6, 0xde, 0xe4, 0xc8, 0x40, 0xaa, 0xa8, 0x8c, 0x5a, 0x70, 0x40, 0xe6, 0xc2, 0xdc, 0xd2, 0xe8, 0xf2, 0x36, 0xfc, 0xa2, 0xb4, 0x41, 0xc4, 0x9b, 0x9a, 0x6d, 0xf8, 0x8b, 0x66, 0xc3, 0x07, 0xab, 0x1b, 0x3e, 0xc8, 0xd9, 0xf0, 0x9a, 0xde, 0x06, 0x45, 0x4e, 0xeb, 0x06, 0xc5, 0x8e, 0xe6, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x44, 0xfa, 0xa8, 0x59, 0x87, 0xb7, 0xd0, 0x36, 0x28, 0x60, 0xf3, 0x37, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x7c, 0x1e, 0xb4, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0x7c, 0xdc, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x51, 0x29, 0xbe, 0x41, 0x84, 0xa2, 0x9a, 0x75, 0x78, 0x0b, 0xad, 0xc3, 0x29, 0xb6, 0x06, 0x31, 0xbf, 0x66, 0xb6, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0xab, 0x41, 0xa9, 0x69, 0x79, 0x10, 0xf3, 0x6b, 0x66, 0x0d, 0xc0, 0x43, 0xd9, 0xdc, 0x58, 0x18, 0x5c, 0x19, 0x19, 0xc8, 0x18, 0x5a, 0x98, 0x5c, 0xd8, 0x18, 0x5d, 0x99, 0xdc, 0x06, 0x2b, 0x84, 0x9a, 0x36, 0x58, 0x3b, 0x0e, 0xba, 0xc1, 0x5a, 0x1c, 0xcc, 0x35, 0x58, 0xe9, 0xe2, 0xb4, 0x80, 0xc7, 0xf6, 0xf6, 0xb6, 0x06, 0x2b, 0x5d, 0x9c, 0x36, 0x58, 0x4d, 0x0c, 0xbb, 0x86, 0xbf, 0x68, 0xd6, 0x20, 0xf4, 0x4b, 0x36, 0x08, 0x29, 0x93, 0x35, 0x08, 0xfd, 0x92, 0x0d, 0x4a, 0x6f, 0xfa, 0x0d, 0xce, 0xb3, 0xa3, 0x07, 0x65, 0xa4, 0x6d, 0x1b, 0x7e, 0x71, 0x59, 0x83, 0xe6, 0xf0, 0x3e, 0x0f, 0x0e, 0x2b, 0x73, 0x6b, 0xb0, 0x76, 0xb7, 0xee, 0x20, 0xe5, 0xb4, 0x6a, 0x0d, 0x8e, 0xcc, 0xaa, 0x07, 0x29, 0xaf, 0x55, 0x6b, 0x90, 0xe2, 0xe4, 0x74, 0xb0, 0x84, 0xc3, 0x6d, 0x0d, 0x56, 0x04, 0xb4, 0x1f, 0x9c, 0x56, 0xe1, 0x0e, 0xca, 0x3a, 0xcf, 0x0d, 0x56, 0xba, 0x38, 0x2d, 0xe0, 0xdd, 0xbd, 0xdd, 0xad, 0xc1, 0xc2, 0xce, 0xa5, 0x0d, 0x7f, 0xd1, 0xac, 0x41, 0xe8, 0x97, 0x6c, 0x50, 0x22, 0xd6, 0x1f, 0x44, 0x50, 0xb9, 0xd9, 0x86, 0x77, 0x7b, 0x36, 0x68, 0xa8, 0xf5, 0xf5, 0xa0, 0xf9, 0x8d, 0xb2, 0x0d, 0xef, 0xf6, 0x6c, 0xb0, 0xc4, 0x8e, 0x75, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x0a, 0x37, 0xd1, 0x0d, 0xca, 0xa6, 0xfa, 0x35, 0xbc, 0xad, 0x73, 0x10, 0x2b, 0xe9, 0x66, 0x1d, 0x2c, 0xb9, 0xcb, 0xdf, 0x60, 0x85, 0x50, 0xd3, 0x06, 0xeb, 0x81, 0x41, 0x37, 0x68, 0xfb, 0x4a, 0x74, 0x83, 0x05, 0x76, 0xa6, 0x1b, 0xac, 0xc5, 0xc1, 0x5c, 0xc3, 0xdb, 0x3a, 0x07, 0xf1, 0x32, 0x6e, 0xb6, 0x86, 0xb7, 0x75, 0x36, 0x88, 0x93, 0x04, 0xb3, 0xea, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x59, 0xe0, 0xcb, 0xdc, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0xdb, 0x20, 0x1a, 0x03, 0xa6, 0x06, 0xe0, 0xa5, 0xcc, 0x6d, 0xec, 0x8d, 0xac, 0x0c, 0x44, 0x69, 0xea, 0xc9, 0x09, 0x84, 0xee, 0x0d, 0x64, 0xec, 0x4d, 0x8e, 0x6c, 0x83, 0xb2, 0x4b, 0x76, 0xe0, 0xcb, 0xdc, 0x0d, 0x8a, 0x41, 0xd9, 0xd9, 0xe0, 0x80, 0x45, 0xb7, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0xcd, 0x6a, 0x8f, 0x1d, 0x44, 0xf5, 0x79, 0xd9, 0x86, 0xbf, 0x68, 0x36, 0x38, 0x01, 0x89, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0xb5, 0x8e, 0x6d, 0x1b, 0x14, 0x95, 0xe2, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xc2, 0x62, 0x79, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0xff, 0xcd, 0x8d, 0xee, 0x6d, 0x83, 0xc8, 0x50, 0xfc, 0x3a, 0x28, 0xeb, 0x3c, 0x6b, 0x99, 0x05, 0xfc, 0xb9, 0xb1, 0x30, 0x78, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0xb3, 0xc9, 0xd5, 0xc1, 0x79, 0x76, 0x74, 0xc3, 0x5f, 0x34, 0x1b, 0x9c, 0x67, 0x47, 0x37, 0x28, 0x48, 0x63, 0xd7, 0xf0, 0x7d, 0xfb, 0x06, 0xa5, 0x59, 0xf6, 0x06, 0x25, 0x74, 0xec, 0x06, 0x71, 0x65, 0xfe, 0x74, 0x10, 0xa6, 0x63, 0x6b, 0xf8, 0xc5, 0xe5, 0xa0, 0x8d, 0xeb, 0xc1, 0x0d, 0x0a, 0xd2, 0xd8, 0x0d, 0xca, 0xc2, 0xe2, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x51, 0xfc, 0xbb, 0x41, 0x51, 0x29, 0x7e, 0xd0, 0x4e, 0x7e, 0xda, 0x06, 0xa5, 0xbd, 0xe5, 0x1a, 0x3e, 0x57, 0xda, 0xa0, 0x5c, 0x38, 0x5f, 0xc3, 0x9f, 0x4b, 0x1b, 0x2c, 0x85, 0xf2, 0x3c, 0x28, 0xb3, 0x74, 0xdb, 0xf0, 0x15, 0xce, 0x86, 0xbf, 0x68, 0x36, 0x38, 0xcf, 0x8e, 0x6e, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0x6c, 0x50, 0x78, 0x19, 0x1f, 0x94, 0xd1, 0xe7, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xb5, 0x8e, 0x6d, 0x1b, 0x14, 0x95, 0xe2, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xc2, 0x62, 0x79, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0x20, 0x6e, 0x76, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0xe2, 0xe3, 0xae, 0xe1, 0x17, 0x97, 0x0d, 0x8a, 0x4a, 0xf1, 0x0d, 0x96, 0x43, 0x7b, 0x76, 0xd0, 0x4e, 0x7e, 0xda, 0x41, 0xa1, 0xb4, 0x5d, 0x1b, 0x14, 0xa4, 0xb1, 0x03, 0xde, 0x58, 0x98, 0xbc, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x89, 0x66, 0x37, 0x28, 0x2a, 0xc5, 0x37, 0x38, 0x3c, 0x53, 0x1c, 0xb4, 0x93, 0x9f, 0xb6, 0xe1, 0x83, 0x9c, 0x35, 0x3c, 0xc2, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0xa3, 0xb8, 0xc1, 0x43, 0xce, 0x53, 0x0e, 0x22, 0x14, 0xd4, 0x6a, 0x0d, 0x6f, 0xb3, 0x6e, 0xf8, 0x37, 0x67, 0x83, 0x87, 0x9c, 0xa7, 0x6c, 0xf8, 0x11, 0x66, 0xe0, 0xeb, 0xf0, 0x50, 0xb1, 0x86, 0xb7, 0x59, 0x37, 0xfc, 0x9b, 0xb3, 0xc1, 0x43, 0xce, 0x53, 0x0e, 0x22, 0x22, 0x20, 0x6a, 0x0d, 0x6f, 0xb3, 0x6e, 0xf8, 0x37, 0x67, 0x83, 0x87, 0x9c, 0xa7, 0x1c, 0xac, 0x34, 0x6e, 0x6b, 0x83, 0xe3, 0x3c, 0xc5, 0x06, 0x05, 0x69, 0xec, 0x86, 0x3e, 0xf8, 0x6b, 0x70, 0x72, 0x90, 0xdb, 0xe0, 0x8d, 0xe7, 0x29, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xe5, 0xc8, 0xc2, 0x1b, 0xac, 0xa4, 0x68, 0xdb, 0x60, 0x95, 0xeb, 0xe2, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0x83, 0x92, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xc5, 0xc8, 0x8d, 0x07, 0x67, 0xe6, 0xb6, 0x83, 0x85, 0xa7, 0xe7, 0x07, 0xcf, 0x38, 0x4f, 0x69, 0x0d, 0xd6, 0xdf, 0x1a, 0x6f, 0xf8, 0x11, 0x66, 0x70, 0x3a, 0x78, 0x2e, 0x77, 0x35, 0x64, 0xc0, 0x0f, 0xd6, 0xca, 0xcd, 0x1e, 0x3c, 0xb4, 0x6b, 0x6e, 0x35, 0x64, 0xc0, 0x0f, 0x16, 0x59, 0xb4, 0x6d, 0xf8, 0x11, 0x66, 0x70, 0x3a, 0x78, 0x2e, 0xae, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x83, 0x42, 0xf7, 0x7c, 0x0d, 0x56, 0x4a, 0x7b, 0x1e, 0x14, 0xc4, 0xe7, 0x6b, 0x50, 0x62, 0x6d, 0x6f, 0xf8, 0xc5, 0x65, 0x83, 0x45, 0xb0, 0xc8, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x92, 0x68, 0x76, 0x83, 0xa2, 0x52, 0x7c, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0x1c, 0xda, 0x73, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x14, 0x70, 0x83, 0x32, 0xfa, 0xfc, 0x20, 0x82, 0x05, 0xce, 0x3a, 0x68, 0x27, 0x3f, 0xed, 0xa0, 0x50, 0xda, 0x6e, 0xd6, 0x20, 0x8a, 0xed, 0xcd, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0x67, 0x93, 0xab, 0x83, 0xa8, 0x3e, 0x2f, 0x5b, 0xc3, 0x9f, 0x4b, 0x1b, 0x94, 0x66, 0xd9, 0x07, 0x71, 0x65, 0xfe, 0xd4, 0x86, 0xaf, 0x5f, 0x36, 0x28, 0x96, 0xb6, 0x37, 0x28, 0xe1, 0x31, 0x37, 0x58, 0xd4, 0x49, 0xb8, 0x86, 0x5f, 0x5c, 0x36, 0x88, 0x6d, 0x41, 0xb3, 0x83, 0x42, 0x69, 0x7b, 0x83, 0x20, 0x3d, 0x5d, 0xe3, 0xd0, 0xc1, 0xa2, 0x4e, 0xc2, 0x35, 0x48, 0xd9, 0x62, 0xda, 0xa0, 0x84, 0xc7, 0x5c, 0x70, 0xf8, 0x60, 0x51, 0x27, 0xe1, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0x8f, 0x30, 0x83, 0xd3, 0xc1, 0x6f, 0x75, 0x07, 0x85, 0xd2, 0xf6, 0x06, 0x45, 0x9f, 0xee, 0x06, 0x25, 0xd6, 0xf6, 0x1a, 0x7e, 0x71, 0xd9, 0x60, 0xe9, 0x04, 0xed, 0x41, 0xa1, 0xb4, 0xbd, 0xe1, 0x2b, 0x9c, 0x0d, 0x5f, 0xbf, 0x6c, 0x50, 0x2c, 0x6d, 0x6f, 0x50, 0xf4, 0xe9, 0x6e, 0x50, 0x62, 0x6d, 0xaf, 0xe1, 0x92, 0xda, 0xe0, 0xb0, 0xdf, 0xb1, 0x06, 0x8b, 0x3a, 0x09, 0x37, 0xbc, 0xad, 0x33, 0x78, 0x7a, 0x10, 0x8d, 0x1a, 0x67, 0x6d, 0x50, 0xc2, 0x63, 0x2e, 0x38, 0x7d, 0x10, 0x8d, 0x1a, 0x67, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0x45, 0x9a, 0xb3, 0x07, 0x85, 0xd2, 0xf6, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0xd1, 0xa8, 0x71, 0xb6, 0xe1, 0x6d, 0x9d, 0x83, 0xd8, 0xff, 0x38, 0x5b, 0x83, 0x12, 0x6b, 0x7b, 0xc3, 0x2f, 0x2e, 0x1b, 0xac, 0xeb, 0x7d, 0x3b, 0x28, 0x94, 0xb6, 0x5b, 0x83, 0x95, 0xe2, 0x88, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0x07, 0x39, 0x6b, 0x78, 0x5b, 0xe7, 0x20, 0x1a, 0x35, 0xce, 0x36, 0x88, 0x5e, 0xfe, 0xb2, 0x83, 0x38, 0xf5, 0x2f, 0x3b, 0x28, 0x94, 0xb6, 0xd7, 0xe0, 0xb4, 0x77, 0xb2, 0xe1, 0x17, 0x97, 0x0d, 0xe2, 0x80, 0xe4, 0xec, 0xa0, 0x50, 0xda, 0x5e, 0x83, 0x25, 0x31, 0x81, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x48, 0xbe, 0x37, 0x6b, 0x83, 0x38, 0x20, 0x39, 0xeb, 0xa0, 0x50, 0xda, 0x5e, 0x83, 0x65, 0x8a, 0xec, 0x1b, 0x14, 0xa4, 0xb1, 0x1b, 0xac, 0xc5, 0x6e, 0x5d, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x45, 0x20, 0xa3, 0x1b, 0x94, 0x4d, 0xf5, 0x07, 0xd1, 0x79, 0x72, 0xb6, 0x41, 0x09, 0x8f, 0xb9, 0xc1, 0x4a, 0xec, 0xd6, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x83, 0xdf, 0xeb, 0x0f, 0x0a, 0xa5, 0xed, 0x0d, 0x8a, 0x3e, 0xdd, 0x0d, 0x4a, 0xac, 0xed, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0x02, 0x86, 0xda, 0x83, 0x42, 0x69, 0x7b, 0xc3, 0x57, 0x38, 0x1b, 0xbe, 0x7e, 0xd9, 0xa0, 0x58, 0xda, 0xde, 0xa0, 0xe8, 0xd3, 0xdd, 0xa0, 0xc4, 0xda, 0x5e, 0xc3, 0x25, 0xb5, 0xc1, 0x61, 0xbf, 0x63, 0x0d, 0x16, 0x75, 0x12, 0x6e, 0x78, 0x5b, 0x67, 0xf0, 0x78, 0xf0, 0xf4, 0x60, 0x25, 0x76, 0xeb, 0x1a, 0x94, 0x58, 0xdb, 0x1b, 0x7e, 0x71, 0xd9, 0x60, 0x45, 0xef, 0xec, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0xc4, 0xc5, 0xc9, 0xd9, 0x1a, 0xde, 0xd6, 0x19, 0x1c, 0x3e, 0x88, 0x86, 0x97, 0xb3, 0x0e, 0x0a, 0xa5, 0xed, 0xda, 0xa0, 0x84, 0xc7, 0x5c, 0x70, 0xfa, 0x60, 0x25, 0x76, 0xeb, 0x1a, 0x7e, 0x71, 0xd9, 0x60, 0x29, 0xce, 0xec, 0x41, 0xa1, 0xb4, 0xbd, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0xc1, 0x4a, 0xec, 0xd6, 0x0d, 0x6f, 0xeb, 0x1c, 0x44, 0x87, 0xcc, 0xd9, 0x41, 0x24, 0x89, 0x9c, 0x75, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0xb3, 0x00, 0xde, 0x68, 0x69, 0x73, 0x73, 0x2d, 0x74, 0x6f, 0x2d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0xf4, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0x6f, 0x45, 0x86, 0xdc, 0xf0, 0xef, 0xfc, 0x1a, 0xbc, 0x15, 0x19, 0xb2, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0x33, 0x0a, 0x11, 0x37, 0xfc, 0xe2, 0xb2, 0x06, 0x41, 0x7a, 0xba, 0xe0, 0xf0, 0xe0, 0xf1, 0x41, 0x8c, 0xdd, 0x9c, 0xad, 0xc1, 0xcb, 0x60, 0x13, 0x37, 0xbc, 0x71, 0x77, 0xf0, 0x9a, 0x1d, 0xba, 0x35, 0x78, 0x18, 0x6d, 0xe2, 0x86, 0x37, 0xee, 0x0e, 0x9e, 0xd8, 0x43, 0xb7, 0x06, 0xcf, 0xc2, 0x4d, 0xdc, 0xf0, 0xc6, 0xdd, 0xc1, 0xbb, 0x7f, 0xe8, 0xd6, 0xa0, 0x31, 0x71, 0xce, 0x0d, 0x6f, 0xdc, 0x1d, 0xbc, 0x45, 0x88, 0x6e, 0x0d, 0xde, 0xf6, 0x9b, 0xb8, 0xe1, 0x8d, 0xbb, 0x83, 0x07, 0x12, 0xd1, 0xad, 0xc1, 0xd3, 0x86, 0x13, 0x37, 0xbc, 0x71, 0x77, 0xf0, 0x94, 0x24, 0xba, 0x35, 0x78, 0xd8, 0x71, 0xe2, 0x86, 0x37, 0xee, 0x0e, 0xde, 0xb7, 0x44, 0xb7, 0x06, 0x2f, 0x5a, 0x4e, 0xdc, 0xf0, 0xc6, 0xdd, 0xc1, 0x9b, 0x9b, 0xe8, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0x47, 0x16, 0x5e, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x50, 0x72, 0x0d, 0x6f, 0xeb, 0x6c, 0x10, 0xff, 0x97, 0x63, 0x1d, 0xc4, 0x34, 0xe6, 0xd5, 0x1a, 0xde, 0xd6, 0x19, 0x1c, 0x3e, 0x88, 0xb1, 0x9b, 0xb3, 0x5a, 0xc3, 0x5f, 0x34, 0x6b, 0xf8, 0x77, 0x7e, 0x83, 0x07, 0xd0, 0xd1, 0x1d, 0x3c, 0xc5, 0x10, 0x71, 0x83, 0xb5, 0xe8, 0x4c, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xf8, 0x20, 0x9e, 0x71, 0xce, 0x36, 0x28, 0x3a, 0x8d, 0x37, 0x28, 0x91, 0xaa, 0xd7, 0xa0, 0x2c, 0x79, 0xdf, 0x60, 0x11, 0xc8, 0xe8, 0x06, 0x65, 0x53, 0xfd, 0x06, 0x71, 0x34, 0x74, 0xd6, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x06, 0x8b, 0xb4, 0xe3, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xe2, 0x41, 0x5c, 0x99, 0x3f, 0xb5, 0xe1, 0x2f, 0x9a, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0x79, 0x76, 0xf4, 0xe0, 0xf8, 0xe4, 0xba, 0x41, 0xc1, 0x87, 0xb9, 0xc1, 0xe1, 0xa1, 0x60, 0xc3, 0x2f, 0x2e, 0x1b, 0x9e, 0xd6, 0x39, 0x28, 0x7c, 0x50, 0xd7, 0xf0, 0xb6, 0xce, 0xe0, 0xf2, 0x41, 0x3c, 0xe3, 0x9c, 0x75, 0x38, 0xc5, 0x16, 0xe0, 0x2b, 0x73, 0x6b, 0xc1, 0x6b, 0x63, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0xa2, 0x39, 0xe9, 0xac, 0x01, 0xbc, 0xf0, 0xda, 0xd8, 0x40, 0xe0, 0xe4, 0xd2, 0xdc, 0xe8, 0xca, 0xe4, 0x36, 0x3c, 0x28, 0xb9, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xe1, 0xc1, 0xc2, 0x87, 0xed, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0xd2, 0x13, 0xdd, 0xf0, 0x6e, 0xcf, 0x06, 0x4d, 0x76, 0x8f, 0x1d, 0x34, 0x99, 0x94, 0xb9, 0x41, 0x59, 0x86, 0xbd, 0x06, 0x01, 0x74, 0xb6, 0xe1, 0x17, 0x97, 0x35, 0x7c, 0xee, 0x32, 0xe0, 0xd5, 0xb9, 0xc5, 0x07, 0xeb, 0x98, 0x4e, 0xd7, 0xf0, 0xb9, 0xcb, 0x80, 0x37, 0xf6, 0x46, 0x1f, 0xac, 0x63, 0x3a, 0x6d, 0x96, 0x59, 0x83, 0x74, 0x4a, 0x9f, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0xdb, 0x20, 0x9e, 0xb5, 0xc6, 0x06, 0xf0, 0x77, 0x7b, 0x23, 0x2b, 0x63, 0x4b, 0x9b, 0xa3, 0x03, 0xa1, 0x7b, 0x03, 0xa1, 0x0b, 0x83, 0x2b, 0xdb, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x03, 0x1e, 0x5b, 0x1a, 0x7e, 0xd0, 0xf4, 0xe8, 0xf8, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xe4, 0xca, 0xf4, 0x83, 0x93, 0x9e, 0x68, 0x1b, 0xbe, 0xc2, 0xd9, 0xf0, 0x17, 0xcd, 0x06, 0x27, 0x3d, 0xd1, 0x0d, 0x4a, 0x78, 0xcc, 0x05, 0x3c, 0xb6, 0x34, 0xbc, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xc9, 0x95, 0xe9, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x26, 0xbb, 0xc7, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xe9, 0x41, 0x14, 0x57, 0x9d, 0xad, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0x41, 0x14, 0x57, 0x9d, 0x6d, 0x78, 0x5b, 0x67, 0x70, 0xfa, 0x20, 0x8a, 0xab, 0xce, 0x6a, 0x35, 0x88, 0xa3, 0x8e, 0xb1, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0xdb, 0x20, 0x0e, 0x3c, 0xc6, 0x06, 0xe0, 0x23, 0x8c, 0x8e, 0x4e, 0x2e, 0x4d, 0xac, 0x8e, 0xae, 0x6c, 0x0e, 0x84, 0xee, 0x0d, 0x84, 0x2e, 0x0c, 0xae, 0x6c, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x74, 0x61, 0xf4, 0xc1, 0xfa, 0x4e, 0xed, 0x83, 0x78, 0xa0, 0x3a, 0xdb, 0xf0, 0x17, 0xcd, 0x06, 0x27, 0x3d, 0xd1, 0x0d, 0x4a, 0x78, 0xcc, 0x05, 0x3c, 0xba, 0x30, 0xba, 0x0d, 0xa2, 0xc2, 0xea, 0x6c, 0x83, 0xa2, 0x4f, 0x77, 0x83, 0x58, 0xb2, 0x3a, 0x5b, 0xc3, 0x25, 0xb5, 0xe1, 0x14, 0x5b, 0x83, 0xa8, 0xec, 0x3a, 0xdb, 0xf0, 0xb6, 0xce, 0xe0, 0xf4, 0x41, 0x54, 0x76, 0x9d, 0xb5, 0x41, 0x92, 0x01, 0xe1, 0x06, 0x27, 0x82, 0xb6, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x4b, 0x18, 0x9c, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0x77, 0xf0, 0xf4, 0x20, 0x2a, 0xbb, 0xce, 0x5a, 0xc3, 0xb3, 0x78, 0x07, 0x31, 0x40, 0xaf, 0xb4, 0x86, 0x77, 0x7b, 0xd6, 0x70, 0x49, 0x6d, 0x10, 0x37, 0x2a, 0x63, 0x2b, 0xe0, 0xd5, 0xb9, 0xc5, 0x1d, 0x14, 0xb0, 0xf9, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xed, 0x83, 0x68, 0x0b, 0x3b, 0xdb, 0x60, 0x41, 0xdc, 0xec, 0x1a, 0x94, 0xf0, 0x98, 0x1b, 0xc4, 0xe7, 0xd7, 0xd9, 0x06, 0x51, 0x61, 0x75, 0xb6, 0xe1, 0x17, 0x97, 0x0d, 0x16, 0xfb, 0xdc, 0x6d, 0x10, 0x15, 0x56, 0x67, 0xd5, 0x2c, 0xe0, 0x8f, 0xb1, 0xbd, 0xd1, 0x1b, 0x2c, 0x87, 0x64, 0x9a, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x8e, 0xd6, 0x1a, 0x1b, 0x94, 0x4d, 0xef, 0x6b, 0x70, 0x62, 0xbf, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x9c, 0x2a, 0x65, 0xdb, 0xf0, 0x17, 0xcd, 0x06, 0xcb, 0xff, 0xbd, 0x37, 0x38, 0xba, 0x0e, 0xae, 0xe1, 0x8d, 0xbb, 0x0d, 0x2f, 0xdf, 0x1d, 0x44, 0xb8, 0xbe, 0xd2, 0x06, 0x0b, 0xa8, 0xbc, 0x37, 0x68, 0x32, 0x45, 0x74, 0x83, 0xa6, 0xd2, 0x64, 0xd7, 0xf0, 0xc6, 0xdd, 0x86, 0x97, 0xef, 0x0e, 0x22, 0x7d, 0x5f, 0x69, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0xee, 0x20, 0xea, 0xf8, 0x95, 0x36, 0x68, 0x06, 0x69, 0x74, 0x83, 0x86, 0x7c, 0x3f, 0xd7, 0xf0, 0xc6, 0xdd, 0x86, 0x97, 0xef, 0x0e, 0x5e, 0x7c, 0x62, 0xb9, 0x86, 0x37, 0xee, 0x36, 0xbc, 0x7c, 0x77, 0x10, 0xa7, 0xfd, 0x4a, 0x1b, 0xb4, 0x4b, 0x28, 0xba, 0x86, 0x37, 0xee, 0x0e, 0x9e, 0x60, 0xca, 0xb2, 0x86, 0x37, 0xee, 0x36, 0xbc, 0x7c, 0x77, 0x10, 0xb3, 0xfe, 0x4a, 0x6b, 0x78, 0xe3, 0x6e, 0xc3, 0xcb, 0x77, 0x07, 0xcf, 0xe0, 0x15, 0x5c, 0xc3, 0x1b, 0x77, 0x1b, 0x5e, 0xbe, 0x3b, 0x78, 0x7c, 0x89, 0xdf, 0x1a, 0xde, 0xb8, 0xdb, 0xf0, 0xf2, 0x5d, 0xe0, 0xdd, 0x89, 0xc9, 0x35, 0x6b, 0xd0, 0x9e, 0xf7, 0xd8, 0x86, 0xe7, 0x49, 0x36, 0x88, 0xec, 0xa4, 0xb1, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0xb5, 0x95, 0xe1, 0x07, 0x0b, 0x1f, 0xb6, 0x0f, 0xe2, 0x81, 0xea, 0x6c, 0xc3, 0x5f, 0x34, 0x1b, 0x9c, 0xf4, 0x44, 0x37, 0x7c, 0x90, 0xb3, 0x06, 0xc5, 0x24, 0xe6, 0x1a, 0x3e, 0x57, 0xda, 0x20, 0x65, 0x30, 0x78, 0x0d, 0x9f, 0x2b, 0x1d, 0x34, 0x93, 0xef, 0xd9, 0xe0, 0xe7, 0x80, 0xd7, 0x56, 0x86, 0xb7, 0x86, 0x77, 0x7b, 0x36, 0x88, 0x00, 0x95, 0xb1, 0x35, 0xbc, 0xad, 0x33, 0xb8, 0x3d, 0x78, 0x3a, 0x78, 0x78, 0x10, 0x1f, 0x76, 0x67, 0x07, 0x71, 0x5e, 0x76, 0xb6, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xe0, 0xb5, 0x85, 0xb9, 0x1b, 0xfe, 0xa2, 0xd9, 0x60, 0x95, 0xa5, 0xf6, 0x86, 0xb7, 0x75, 0x06, 0x77, 0x0f, 0xe2, 0xc3, 0xee, 0x6c, 0x83, 0xa2, 0x4f, 0x77, 0x83, 0xd8, 0x18, 0x3b, 0x5b, 0xc3, 0xaf, 0x64, 0x6b, 0x78, 0x5b, 0xe7, 0x20, 0x36, 0xc6, 0xce, 0xd6, 0xf0, 0x6f, 0xce, 0x06, 0x8d, 0x95, 0xab, 0x6e, 0x78, 0x5b, 0x67, 0xc0, 0x6b, 0x0b, 0x73, 0x5b, 0xc3, 0xbf, 0x39, 0x1b, 0x34, 0xb1, 0xae, 0x7a, 0x10, 0xd7, 0x7b, 0x67, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x74, 0x61, 0xed, 0x86, 0x77, 0x7b, 0x36, 0x68, 0x09, 0x83, 0x73, 0x83, 0xb8, 0xde, 0x3b, 0x6b, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xc0, 0x0b, 0xa3, 0xa3, 0x37, 0xfc, 0x45, 0xb3, 0xc1, 0xfa, 0x4e, 0xed, 0x0d, 0x6f, 0xeb, 0x1c, 0xc4, 0xe2, 0xdd, 0xd9, 0x06, 0x85, 0xa1, 0xea, 0x06, 0x8b, 0xa2, 0x69, 0x37, 0x28, 0x3a, 0x8d, 0x37, 0x38, 0x64, 0x2d, 0x6e, 0x10, 0xd3, 0xdc, 0x64, 0x1b, 0x1c, 0x6d, 0xf8, 0xd6, 0xa0, 0x84, 0xc7, 0x5c, 0xc0, 0x0b, 0xa3, 0xa3, 0xdb, 0x20, 0x2a, 0xac, 0xce, 0x36, 0xfc, 0xe2, 0xb2, 0xc1, 0x62, 0x9f, 0xbb, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xe4, 0x8e, 0x8d, 0xad, 0xe1, 0x6d, 0x9d, 0x83, 0xe8, 0x11, 0x3c, 0x3b, 0x88, 0xf3, 0xb2, 0xb3, 0x36, 0xfc, 0x45, 0xb3, 0x41, 0x4c, 0x50, 0x9d, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0x8f, 0xb0, 0xae, 0x41, 0x31, 0x89, 0xb9, 0x41, 0x08, 0x3e, 0x0c, 0x3e, 0x1e, 0xc4, 0x8f, 0xdd, 0xd9, 0x1a, 0x7e, 0x25, 0x5b, 0xc3, 0xdb, 0x3a, 0x03, 0xde, 0xd8, 0x1b, 0xdd, 0x1a, 0x14, 0x03, 0xb2, 0x1b, 0x44, 0x03, 0xdf, 0xd9, 0x06, 0x05, 0x6c, 0xfe, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0xf1, 0x64, 0x76, 0xd6, 0x41, 0x74, 0xf9, 0x9d, 0xd5, 0x1a, 0x7e, 0x71, 0xd9, 0x60, 0xb1, 0xcf, 0xdd, 0x06, 0xab, 0xc3, 0xda, 0x36, 0x58, 0xe3, 0x43, 0x7b, 0x10, 0xe7, 0x65, 0x67, 0x1b, 0x14, 0x86, 0xaa, 0x1b, 0xac, 0xf1, 0xa1, 0xdd, 0xf0, 0x6e, 0xcf, 0x06, 0x2d, 0x33, 0x11, 0xae, 0xe1, 0x6d, 0x9d, 0x83, 0xb8, 0x30, 0x3c, 0x5b, 0x83, 0x24, 0x03, 0xc2, 0x0d, 0x4e, 0x04, 0x6d, 0x6b, 0x78, 0x16, 0xef, 0x20, 0x72, 0x24, 0x96, 0x36, 0x88, 0x69, 0x6e, 0xb2, 0x35, 0x3c, 0x8b, 0x77, 0xb0, 0x78, 0x01, 0xe8, 0x20, 0xce, 0xcb, 0xce, 0x3a, 0x9c, 0x62, 0x6b, 0x10, 0x3b, 0x2a, 0x63, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x1a, 0x94, 0x9a, 0x96, 0x07, 0xb1, 0xa3, 0x32, 0xd6, 0x00, 0xbe, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x78, 0x6d, 0x6c, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0xa3, 0x2b, 0xc3, 0x0f, 0x4e, 0x7a, 0xa2, 0x07, 0xf1, 0x40, 0x75, 0xb6, 0xe1, 0x83, 0x9c, 0x0d, 0xe2, 0x5a, 0xef, 0x6c, 0x0d, 0xef, 0xf6, 0x6c, 0x70, 0x22, 0x68, 0x5b, 0xc3, 0xdb, 0x3a, 0x03, 0x1e, 0x5d, 0x19, 0xde, 0x41, 0x9c, 0x97, 0x9d, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x78, 0x65, 0xf4, 0x86, 0xbf, 0x68, 0x36, 0x38, 0xe9, 0x89, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0xc2, 0x62, 0x79, 0x83, 0x68, 0x98, 0x3c, 0x6b, 0xc3, 0x57, 0x38, 0x1b, 0xfe, 0xa2, 0xd9, 0xe0, 0xa4, 0x27, 0xba, 0x41, 0x09, 0x8f, 0xb9, 0x80, 0x87, 0x57, 0x46, 0xb7, 0x41, 0x54, 0x58, 0x9d, 0x6d, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0x10, 0xbf, 0x96, 0x67, 0x1b, 0xde, 0xd6, 0x19, 0x9c, 0x3e, 0x88, 0x5f, 0xcb, 0xb3, 0x35, 0x88, 0x25, 0xab, 0xb3, 0x0d, 0x82, 0xf4, 0x74, 0xc1, 0xd3, 0x83, 0xf8, 0xb5, 0x3c, 0x5b, 0x0d, 0x19, 0xf0, 0x83, 0x64, 0x05, 0xdc, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0x3c, 0x12, 0x6e, 0x0d, 0x3f, 0xc2, 0x0c, 0x4e, 0x87, 0xc7, 0x1b, 0xac, 0x72, 0x5d, 0x5c, 0xc3, 0x8f, 0x30, 0x83, 0xd3, 0xe1, 0xef, 0x06, 0x2d, 0x13, 0x0f, 0x6e, 0xb0, 0x5e, 0x64, 0xf6, 0x20, 0xce, 0xcb, 0xce, 0x56, 0x43, 0x06, 0x7c, 0x43, 0xcd, 0x0f, 0x35, 0x1b, 0x7e, 0x71, 0xd9, 0x60, 0x79, 0x24, 0xdc, 0x06, 0xeb, 0xba, 0xe0, 0x36, 0x58, 0x34, 0xf3, 0xb7, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0xc3, 0xe1, 0x83, 0x38, 0xe0, 0x3c, 0x5b, 0x0d, 0x19, 0xf0, 0x83, 0x94, 0x20, 0xd7, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0x3c, 0x12, 0x6e, 0x83, 0x65, 0x91, 0xb4, 0x6b, 0xf8, 0x11, 0x66, 0x70, 0x3a, 0x74, 0x6e, 0xb0, 0xe2, 0x48, 0xee, 0x20, 0x0e, 0x38, 0xcf, 0x56, 0x43, 0x06, 0xfc, 0x20, 0x65, 0xbb, 0x73, 0xc3, 0x2f, 0x2e, 0x1b, 0x2c, 0x8f, 0x84, 0x5b, 0xc3, 0x8f, 0x30, 0x83, 0xd3, 0xe1, 0xec, 0x41, 0xfc, 0x6e, 0x9e, 0xad, 0x86, 0x0c, 0xf8, 0xc1, 0xaa, 0x8b, 0xb7, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0x3c, 0x12, 0x6e, 0x0d, 0x3f, 0xc2, 0x0c, 0x4e, 0x87, 0x9f, 0x07, 0xf1, 0xbb, 0x79, 0xb6, 0x06, 0x61, 0x3a, 0xb6, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0xad, 0x73, 0x10, 0x31, 0x99, 0x67, 0x07, 0x71, 0x5e, 0x76, 0x56, 0xab, 0xe1, 0xfb, 0xf6, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0xdb, 0xe0, 0x19, 0xd1, 0xe9, 0x03, 0xf8, 0xb9, 0x85, 0xb5, 0x95, 0x81, 0xd0, 0xbd, 0x81, 0xd0, 0x85, 0xc1, 0x95, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x6d, 0x61, 0xee, 0xc1, 0x2a, 0x4b, 0xed, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0xd2, 0x13, 0xdd, 0xa0, 0x20, 0x98, 0xdd, 0x20, 0x1a, 0xf8, 0xce, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xcb, 0xb0, 0xdf, 0x0e, 0xa2, 0xcb, 0xef, 0x6c, 0xc3, 0xbb, 0x3d, 0x1b, 0x9c, 0x08, 0xda, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xcb, 0xb0, 0xdf, 0xd6, 0x70, 0x49, 0xad, 0x71, 0xe8, 0x20, 0x1a, 0xf8, 0xce, 0x6a, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0xd2, 0x13, 0xdd, 0xf0, 0x8b, 0xcb, 0x06, 0x2b, 0x7a, 0x67, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xcb, 0xb0, 0xdf, 0xd6, 0x70, 0x49, 0xad, 0xf1, 0xfc, 0x20, 0x1a, 0xf8, 0xce, 0xaa, 0x0e, 0xa7, 0x58, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x59, 0x83, 0xf7, 0xa2, 0x91, 0x6c, 0x78, 0xe3, 0x6e, 0x43, 0xcd, 0x0f, 0x46, 0xf3, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x0d, 0x27, 0xc2, 0x06, 0xef, 0xbd, 0xc0, 0x58, 0xc3, 0x39, 0xb2, 0xe2, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0xe2, 0xc2, 0x6e, 0x50, 0x44, 0x36, 0x2d, 0x48, 0x86, 0x19, 0x44, 0x0b, 0xe2, 0x0d, 0xd2, 0x16, 0xa8, 0x17, 0x04, 0x0b, 0xbf, 0xf0, 0x1b, 0x04, 0x39, 0xff, 0x20, 0x19, 0xf8, 0xbd, 0xef, 0x78, 0x7e, 0x70, 0xc0, 0x7a, 0x3e, 0x48, 0x87, 0x83, 0x38, 0xa4, 0x6a, 0x8e, 0xc7, 0xc3, 0x6e, 0xb0, 0x8a, 0x02, 0x6c, 0x61, 0x17, 0x76, 0x83, 0x77, 0xfb, 0x51, 0x2c, 0xec, 0x82, 0x60, 0xe1, 0x37, 0x88, 0x3f, 0xd9, 0xb3, 0x83, 0x84, 0x7d, 0xe6, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x86, 0x5f, 0x07, 0x89, 0x0b, 0xcd, 0xc7, 0xa1, 0x43, 0x3a, 0xf7, 0x70, 0xb4, 0x6f, 0xe8, 0x18, 0x36, 0x08, 0x16, 0x04, 0x1b, 0x94, 0x43, 0x49, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x2d, 0x80, 0x0e, 0x92, 0xdc, 0x9a, 0x8f, 0x43, 0x83, 0x60, 0xe1, 0x17, 0x7e, 0x83, 0x80, 0xf7, 0x3f, 0x88, 0x67, 0xd9, 0xb3, 0x41, 0x32, 0x20, 0xfc, 0x9d, 0x0e, 0xc6, 0xbb, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa1, 0x58, 0x34, 0xfc, 0xc6, 0xf3, 0x0d, 0x6b, 0xbf, 0x2b, 0x08, 0x16, 0x7e, 0x83, 0x48, 0xc6, 0x3d, 0x3b, 0x38, 0x60, 0x3d, 0x1f, 0xa4, 0x99, 0x6f, 0x1f, 0x87, 0x0e, 0x31, 0x3c, 0x0e, 0x0d, 0xb2, 0x35, 0xb4, 0x5f, 0x3f, 0x58, 0x8f, 0x0c, 0x36, 0x08, 0x16, 0x04, 0x0b, 0xbf, 0x41, 0xfc, 0xc9, 0x9e, 0x1d, 0xb4, 0x9a, 0xc7, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xb0, 0xf6, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0xc1, 0xc9, 0x07, 0xfa, 0xd0, 0xa8, 0x65, 0x41, 0xb0, 0xf0, 0x0b, 0xbf, 0xc1, 0x30, 0xf4, 0x39, 0x88, 0x67, 0xd9, 0xb3, 0x83, 0x75, 0x72, 0x17, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xc6, 0x86, 0xeb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc2, 0x6f, 0x10, 0xc7, 0xbf, 0x67, 0x07, 0x07, 0xac, 0xe7, 0x83, 0x34, 0xf3, 0xed, 0xe3, 0xd0, 0x71, 0xe8, 0x78, 0x7c, 0x1c, 0x1a, 0x04, 0x1b, 0x44, 0x2c, 0xee, 0xd9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa1, 0x58, 0x34, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xf0, 0x1b, 0x44, 0x32, 0xee, 0xd9, 0x41, 0xb9, 0x44, 0x37, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x10, 0x6c, 0x50, 0xf0, 0x3b, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0xf8, 0x0d, 0x22, 0x19, 0xf7, 0xec, 0x60, 0xc5, 0x0b, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x85, 0xdf, 0x20, 0x92, 0x71, 0xcf, 0x0e, 0x5a, 0xcd, 0x63, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x48, 0x1d, 0x0c, 0xbf, 0xf1, 0x7c, 0xf8, 0x0d, 0x22, 0x19, 0xf7, 0x6c, 0x90, 0x0c, 0x08, 0xdd, 0xbe, 0x83, 0xf1, 0xae, 0x73, 0x1c, 0x1a, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x44, 0x32, 0xee, 0xd9, 0xc1, 0x88, 0x6d, 0x3d, 0x0e, 0x1d, 0x24, 0xf0, 0x34, 0x1f, 0x87, 0x56, 0x10, 0x2c, 0xfc, 0xc2, 0x6f, 0x30, 0xde, 0x75, 0x0e, 0xe2, 0x59, 0xf6, 0xec, 0xe0, 0x80, 0xf5, 0x7c, 0x90, 0x66, 0xbe, 0x7d, 0x1c, 0x3a, 0xa4, 0x0e, 0x8e, 0x43, 0xc7, 0xa1, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0xec, 0x82, 0x60, 0xe1, 0x37, 0x88, 0xf9, 0xe5, 0xb3, 0x83, 0x74, 0xb7, 0x8d, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xac, 0xdd, 0x41, 0x84, 0xe2, 0xe1, 0x1c, 0x87, 0x16, 0x04, 0x0b, 0xbf, 0x41, 0xcc, 0x2f, 0x9f, 0x1d, 0x8c, 0xd8, 0xd6, 0x43, 0xa2, 0x75, 0x10, 0x2c, 0x08, 0x36, 0x88, 0xeb, 0xe7, 0xb3, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0xed, 0xe5, 0xb3, 0x83, 0xd4, 0xb1, 0x9d, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x6b, 0xbf, 0xc3, 0x6f, 0x3c, 0x3f, 0x58, 0x21, 0x2d, 0x72, 0x1c, 0x3a, 0x0e, 0x0d, 0x82, 0x85, 0xdf, 0x20, 0x8e, 0x7f, 0xcf, 0x06, 0xc9, 0x40, 0x98, 0x0e, 0xc6, 0xbb, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa1, 0x58, 0x74, 0x50, 0x6c, 0x89, 0x1d, 0x87, 0x8e, 0xc7, 0x07, 0x25, 0x43, 0xd3, 0xf1, 0x78, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x85, 0xdd, 0xd0, 0x71, 0x64, 0x61, 0x37, 0x78, 0x52, 0x4c, 0xcf, 0x1a, 0xbc, 0xed, 0xa6, 0x67, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0xf8, 0x85, 0xdf, 0x90, 0x5c, 0x3a, 0x88, 0x67, 0xd9, 0xb3, 0x83, 0x37, 0x02, 0x94, 0x1c, 0x2c, 0xdb, 0x90, 0x3a, 0x74, 0xd0, 0xd8, 0xe0, 0x45, 0xca, 0x3c, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x86, 0xdf, 0x20, 0xea, 0xb1, 0xcf, 0x06, 0xc9, 0x80, 0xe7, 0xfe, 0xf7, 0x1d, 0x8c, 0x77, 0x9d, 0x43, 0x07, 0x8d, 0x41, 0xb0, 0xf0, 0x0b, 0xbf, 0x21, 0x5b, 0x71, 0x10, 0xcf, 0xb2, 0x67, 0x07, 0xeb, 0x52, 0xc1, 0x0e, 0xc6, 0x71, 0xc8, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x83, 0x95, 0xc5, 0x63, 0x83, 0x6c, 0x0d, 0x79, 0xec, 0xc5, 0x41, 0xb0, 0xf0, 0x1b, 0x44, 0x32, 0xee, 0xd9, 0xc1, 0x43, 0xf1, 0x1b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0xbf, 0x41, 0x24, 0xe3, 0x9e, 0x1d, 0xbc, 0x5d, 0xbf, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0xc5, 0x0d, 0x13, 0xb7, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x09, 0xf0, 0xae, 0x73, 0x2b, 0xc3, 0x83, 0x2b, 0x1b, 0xa3, 0x2b, 0x23, 0x6b, 0x21, 0x0b, 0xa3, 0x0b, 0x37, 0xd4, 0x91, 0x35, 0xcc, 0xd0, 0x1a, 0x26, 0x6e, 0xc3, 0x74, 0x6e, 0x98, 0xa1, 0x35, 0xcc, 0xd0, 0x06, 0xef, 0xbd, 0xc0, 0xd8, 0x70, 0x22, 0x6c, 0xf0, 0xde, 0x0b, 0x8c, 0x0d, 0x16, 0xb3, 0x41, 0x2d, 0xb3, 0x80, 0x27, 0xc7, 0x06, 0x6f, 0x50, 0xb2, 0xb0, 0xcf, 0x32, 0x6b, 0xf0, 0x98, 0xbf, 0xd1, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0xcf, 0xa5, 0x81, 0x4f, 0x73, 0x0f, 0x02, 0x1b, 0x62, 0x83, 0x03, 0x16, 0xdd, 0x1a, 0xfe, 0xa2, 0xd9, 0xf0, 0x43, 0xcd, 0x06, 0x41, 0x7a, 0xba, 0x41, 0xb1, 0xf5, 0xbe, 0x86, 0x1f, 0x6a, 0x36, 0x5c, 0x52, 0x1b, 0x4e, 0xb1, 0x35, 0x28, 0xb6, 0xde, 0x37, 0xfc, 0xe2, 0xb2, 0x41, 0x73, 0x78, 0x9f, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xa2, 0xf8, 0x77, 0x83, 0xa2, 0x52, 0x7c, 0x83, 0xb2, 0xe9, 0xbd, 0x83, 0x68, 0x52, 0x3f, 0x6b, 0x0d, 0xe2, 0x99, 0xf4, 0x6b, 0xc3, 0x07, 0x39, 0x6b, 0x78, 0x84, 0x75, 0x0d, 0xff, 0xe6, 0x6c, 0x78, 0x4c, 0x66, 0xc3, 0xdb, 0x3a, 0x1b, 0x9c, 0x85, 0x4c, 0x07, 0x17, 0x0f, 0x8a, 0xad, 0xf7, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x8b, 0xdf, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x51, 0x5b, 0x7c, 0x10, 0x85, 0xec, 0x67, 0x07, 0xeb, 0x8c, 0xdb, 0xda, 0x20, 0xaa, 0xda, 0xcf, 0x36, 0x38, 0xda, 0xf0, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0xca, 0xe2, 0xe8, 0x0d, 0x8a, 0x4a, 0xf1, 0x35, 0x38, 0xba, 0x0e, 0xae, 0xe1, 0x6d, 0x9d, 0x83, 0x28, 0x64, 0x3f, 0x5b, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xa2, 0xf8, 0x77, 0x83, 0xa2, 0x52, 0xfc, 0x20, 0x15, 0x68, 0xec, 0x20, 0x15, 0x68, 0xac, 0x36, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0xf0, 0x2c, 0x73, 0x1b, 0x7b, 0x23, 0x2b, 0x6b, 0x61, 0x2b, 0x73, 0x3b, 0xa3, 0x43, 0xdb, 0x20, 0x1a, 0xd8, 0xcf, 0x0e, 0x62, 0x7f, 0xd6, 0x6a, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0x9a, 0x3b, 0xf6, 0x83, 0x43, 0x4c, 0xc7, 0x06, 0x05, 0x69, 0xec, 0x1a, 0xbe, 0x6f, 0x1f, 0x9c, 0xdd, 0xa0, 0x84, 0x8e, 0x5d, 0x83, 0xd0, 0x2f, 0xd9, 0x20, 0xa4, 0x4c, 0x0e, 0xa2, 0xe5, 0x72, 0xeb, 0x20, 0x4c, 0xc7, 0xd6, 0xa0, 0xe8, 0x34, 0xde, 0xa0, 0x44, 0xaa, 0x5e, 0xc3, 0xdb, 0x3a, 0x83, 0xb3, 0x07, 0xc5, 0xd6, 0xfb, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0xc0, 0xbb, 0xa5, 0x07, 0x81, 0x0d, 0xb1, 0xe1, 0x13, 0x9b, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x0e, 0x9e, 0xf2, 0x37, 0x7a, 0x10, 0xab, 0xe6, 0x5f, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x14, 0x59, 0xa6, 0x1b, 0x1e, 0x93, 0xd9, 0x20, 0x4e, 0xe1, 0xcf, 0x3a, 0x48, 0x05, 0x1a, 0xdb, 0xa0, 0xe8, 0x34, 0xde, 0xa0, 0x2c, 0x8e, 0xde, 0xa0, 0xa8, 0x14, 0xdf, 0xe0, 0xc4, 0x7e, 0xb3, 0x41, 0x61, 0xb1, 0xbc, 0xc1, 0xd1, 0x86, 0x6f, 0x0d, 0xbf, 0xb8, 0xac, 0x41, 0x9c, 0xc2, 0x9f, 0x1d, 0x9e, 0x99, 0x3c, 0x48, 0x08, 0xb1, 0xdd, 0xf0, 0x6e, 0xcf, 0x06, 0xf1, 0x21, 0x7f, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x2a, 0x49, 0xb8, 0x86, 0x77, 0x7b, 0x36, 0x28, 0x91, 0xaa, 0x37, 0x48, 0x79, 0xbb, 0x3a, 0x68, 0xb3, 0x9b, 0xef, 0x20, 0xd6, 0xcf, 0xc1, 0xd6, 0xf0, 0x23, 0xcc, 0xc0, 0xd7, 0xe1, 0x41, 0x00, 0x6b, 0x99, 0x35, 0x88, 0x2c, 0xf9, 0xb3, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0xce, 0x3e, 0x6c, 0x07, 0x31, 0xbb, 0xfe, 0xb4, 0xe1, 0x83, 0x9c, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x8b, 0xb3, 0x0d, 0x0a, 0x2f, 0xe3, 0x83, 0x18, 0xee, 0x90, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0xfe, 0x04, 0xda, 0xa0, 0xf0, 0x32, 0x3e, 0x88, 0x27, 0x94, 0xaf, 0x0d, 0x8e, 0x36, 0x7c, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xb2, 0xde, 0x76, 0x83, 0xa2, 0x52, 0x7c, 0x83, 0xc2, 0xcb, 0xf8, 0x20, 0x15, 0x68, 0x6c, 0x83, 0x24, 0x03, 0xc2, 0x0d, 0x7f, 0x02, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x8a, 0xe2, 0xdf, 0x83, 0x24, 0x49, 0xcc, 0x0d, 0x5e, 0x8f, 0xe5, 0x7b, 0xb0, 0x8c, 0xe2, 0xf4, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0xd5, 0x20, 0x5c, 0x11, 0x36, 0x7c, 0xd4, 0xbe, 0xe1, 0xfb, 0xf6, 0x0d, 0xc2, 0x15, 0x61, 0xc3, 0x07, 0xf3, 0x1b, 0x7e, 0xa8, 0xd9, 0x20, 0x68, 0x7f, 0xd6, 0xf0, 0xb9, 0xd2, 0x06, 0x6b, 0xee, 0xd8, 0xd7, 0xf0, 0xe7, 0xd2, 0xe0, 0xec, 0x41, 0xd8, 0x97, 0xb4, 0x86, 0xcf, 0x95, 0x36, 0x58, 0x29, 0x8e, 0xb8, 0x86, 0x3f, 0x97, 0x06, 0x17, 0x0f, 0x92, 0x1b, 0x61, 0x6b, 0x05, 0xf0, 0x23, 0x2b, 0x1b, 0x7b, 0x23, 0x2b, 0x6b, 0x09, 0xa3, 0x7b, 0x6b, 0x9b, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0x22, 0x6d, 0x01, 0xad, 0x01, 0xf0, 0x98, 0xac, 0x6c, 0xec, 0x8d, 0xac, 0x0c, 0xa4, 0x0c, 0x0f, 0xae, 0x6c, 0x8c, 0x2e, 0xcd, 0xed, 0x0c, 0x24, 0x0c, 0xa4, 0x84, 0x0d, 0xe4, 0xcd, 0x0c, 0xa4, 0x44, 0x0c, 0x24, 0x8d, 0xae, 0xac, 0x6d, 0x8e, 0x05, 0x04, 0x4e, 0xee, 0x8d, 0xac, 0x6e, 0x2c, 0xcd, 0xed, 0x0c, 0x24, 0x8c, 0xee, 0xad, 0x6d, 0x0e, 0xe4, 0x2e, 0x8d, 0x0e, 0x2d, 0xcd, 0x6d, 0xc3, 0x2f, 0x4a, 0x1b, 0x94, 0xa6, 0xc5, 0x1b, 0xfe, 0xa2, 0xd9, 0xa0, 0x9c, 0xb3, 0xdd, 0xa0, 0x20, 0x8d, 0x5d, 0xc3, 0xf7, 0xed, 0x83, 0xa7, 0x07, 0x4d, 0xeb, 0x8f, 0xae, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0x33, 0xc0, 0x47, 0x56, 0x36, 0xf6, 0x46, 0x56, 0x76, 0x50, 0xf6, 0x19, 0x6f, 0xb0, 0xa4, 0x7e, 0x69, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x8d, 0xbb, 0x0d, 0x2f, 0xdf, 0x1d, 0x44, 0x82, 0xf8, 0xd9, 0x41, 0x69, 0x86, 0xbe, 0x41, 0xc1, 0x87, 0xb9, 0x06, 0xc5, 0x24, 0xe6, 0x06, 0x6b, 0xee, 0xd8, 0x0f, 0x22, 0xa9, 0xd6, 0x69, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x12, 0xa9, 0x7a, 0x0d, 0x6f, 0xeb, 0x0c, 0xce, 0x1e, 0x14, 0xbb, 0xe7, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0x64, 0x28, 0x37, 0x58, 0x52, 0xbf, 0xb4, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xc6, 0xdd, 0x86, 0x97, 0xef, 0x02, 0xbc, 0xeb, 0xdc, 0xca, 0xf0, 0xe0, 0xca, 0xc6, 0xe8, 0xca, 0xc8, 0x5a, 0xd8, 0xd2, 0xe6, 0xe8, 0x83, 0xd2, 0x0c, 0x7d, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0x8a, 0x49, 0xcc, 0x0d, 0x56, 0x8a, 0x23, 0x1e, 0x44, 0x52, 0xad, 0xd3, 0x86, 0xb7, 0x75, 0x36, 0x28, 0x6a, 0x8b, 0x07, 0x17, 0x0f, 0x8a, 0xdd, 0xf3, 0x59, 0x00, 0xbf, 0x32, 0xb7, 0xb1, 0x37, 0xb2, 0xb2, 0x96, 0x30, 0xba, 0xb7, 0xb6, 0x79, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x56, 0x83, 0x52, 0xd3, 0xf2, 0x20, 0x62, 0x38, 0xd0, 0x1a, 0x00, 0x7f, 0xca, 0xdc, 0xc6, 0xde, 0xc8, 0xca, 0x40, 0xd8, 0xd2, 0xe6, 0xe8, 0x40, 0xde, 0xcc, 0x40, 0xc2, 0xe8, 0xde, 0xda, 0xe6, 0x40, 0xc2, 0xe6, 0x40, 0xc2, 0x40, 0x4a, 0xd8, 0x40, 0xde, 0xcc, 0x40, 0x4a, 0xc4, 0x40, 0xd2, 0xe8, 0xca, 0xda, 0xe6, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x67, 0x0f, 0xca, 0x39, 0xdb, 0x0d, 0x7f, 0xd1, 0x6c, 0xf8, 0xa1, 0x66, 0xc3, 0xbb, 0x3d, 0x1b, 0xc4, 0x37, 0xfe, 0xd9, 0x1a, 0xb4, 0x79, 0x64, 0x75, 0x90, 0xf2, 0x76, 0xd5, 0xe1, 0x14, 0x6b, 0x0d, 0xe2, 0x67, 0x02, 0x6d, 0xc3, 0x2f, 0x4a, 0x1b, 0x94, 0xa6, 0xc5, 0x1b, 0xfe, 0xa2, 0xd9, 0x20, 0xb0, 0x21, 0x36, 0x28, 0x48, 0x63, 0xd7, 0xf0, 0x7d, 0xfb, 0x06, 0xb1, 0x4e, 0x87, 0x75, 0x10, 0x09, 0x00, 0x52, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xc2, 0x62, 0x79, 0x83, 0x35, 0x7c, 0xc1, 0x6d, 0x70, 0x1c, 0x9b, 0xd8, 0x20, 0xb6, 0xfe, 0xb0, 0xd6, 0xa0, 0x98, 0xc4, 0xdc, 0x20, 0x04, 0x1f, 0x0e, 0x62, 0xeb, 0x0f, 0x6b, 0x83, 0xd8, 0x28, 0xa1, 0xda, 0xe0, 0x80, 0x45, 0xb7, 0x86, 0x07, 0x25, 0x37, 0x68, 0x0a, 0x17, 0x62, 0xc3, 0xdb, 0x3a, 0x03, 0x78, 0x91, 0x95, 0x8d, 0xbd, 0x91, 0x95, 0xb5, 0xa0, 0x95, 0x85, 0x91, 0x2d, 0xb3, 0x00, 0x5e, 0x64, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x2d, 0x6c, 0x69, 0x73, 0xf4, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0x89, 0x58, 0xc7, 0x07, 0x65, 0x96, 0xee, 0x86, 0xbf, 0x68, 0x36, 0x08, 0xfb, 0x92, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x0d, 0x0f, 0xde, 0x1c, 0xc4, 0x21, 0x94, 0xd7, 0x06, 0x05, 0x45, 0xe6, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0x17, 0xcd, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x03, 0x1e, 0xd9, 0x9b, 0x7b, 0x50, 0x66, 0xe9, 0xae, 0xe1, 0xcf, 0xa5, 0x0d, 0xc2, 0x15, 0xe1, 0x20, 0xb0, 0x21, 0x3a, 0x88, 0x4e, 0x14, 0xb4, 0x0d, 0x0a, 0x43, 0xd5, 0x0d, 0x9a, 0xc2, 0x85, 0xd8, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0x20, 0x7a, 0xa1, 0xbc, 0x36, 0xbc, 0xdb, 0xb3, 0xe1, 0x53, 0xc0, 0x0d, 0xe2, 0x10, 0xca, 0x6b, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x64, 0x6f, 0x6e, 0xad, 0x41, 0x6c, 0xfd, 0x61, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0xd3, 0x5b, 0xdc, 0x06, 0x11, 0x17, 0x83, 0x76, 0x10, 0x21, 0x7f, 0x58, 0xcd, 0x02, 0x78, 0x9c, 0x95, 0xd1, 0xb5, 0xd8, 0x85, 0xb1, 0xd5, 0x95, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xe0, 0xc3, 0xe8, 0x83, 0x32, 0x4b, 0x77, 0x0d, 0x7f, 0x2e, 0x0d, 0x3c, 0xdd, 0x7b, 0x50, 0x66, 0xe9, 0xb6, 0xe1, 0x2f, 0x9a, 0x0d, 0x3f, 0xd4, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0x62, 0x5b, 0x79, 0x83, 0xa2, 0x52, 0x7c, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x58, 0x2c, 0xaf, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0x11, 0x0a, 0xb1, 0x35, 0xfc, 0xe2, 0xb2, 0xc1, 0xfa, 0xad, 0xb6, 0x0d, 0xce, 0xc3, 0x20, 0x1d, 0x44, 0xc8, 0x1f, 0x56, 0xcd, 0x1a, 0xc4, 0x35, 0x0a, 0xda, 0x86, 0xbf, 0x68, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0xda, 0x60, 0xd1, 0xa5, 0xd5, 0x41, 0x99, 0xa5, 0x7b, 0x10, 0x87, 0x2e, 0x68, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0xc4, 0xd6, 0x1f, 0xd6, 0x1a, 0x2c, 0xa9, 0x5f, 0x5a, 0xc3, 0x1b, 0x77, 0x1b, 0x5e, 0xbe, 0x0b, 0xe0, 0x43, 0x8e, 0x0d, 0xae, 0xa5, 0xce, 0xad, 0x0c, 0x0f, 0xae, 0x6c, 0x8c, 0xae, 0x8c, 0xac, 0xa5, 0xcc, 0x8d, 0x3c, 0x08, 0x4f, 0xd5, 0x0d, 0x56, 0xba, 0x38, 0x6d, 0xf0, 0xcc, 0x97, 0xc9, 0x35, 0xbc, 0xad, 0x33, 0x78, 0x7a, 0x10, 0x5b, 0x7f, 0x58, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0xbe, 0xf8, 0xdd, 0xe0, 0x2d, 0x2f, 0x93, 0x6b, 0xf8, 0x11, 0x66, 0xe0, 0xeb, 0xf0, 0xf0, 0xbc, 0x35, 0x28, 0x0c, 0x55, 0x37, 0x3c, 0x26, 0xb3, 0xe1, 0x17, 0x97, 0x0d, 0x9a, 0xc3, 0xfb, 0x5c, 0xc3, 0x63, 0x32, 0x07, 0x6f, 0x79, 0x99, 0x6c, 0xc3, 0x07, 0x39, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x17, 0xbf, 0x1b, 0xbc, 0xe5, 0x65, 0x72, 0x0d, 0x3f, 0xc2, 0x0c, 0x7c, 0x1d, 0x1e, 0xc4, 0xad, 0x35, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x36, 0x28, 0x0b, 0x8b, 0x37, 0xbc, 0xdb, 0xb3, 0xe1, 0x53, 0xc0, 0x0d, 0xde, 0xf2, 0x32, 0x79, 0x10, 0xfb, 0xb3, 0x56, 0x1b, 0x14, 0x86, 0xaa, 0x1b, 0xac, 0x36, 0x92, 0xdd, 0xa0, 0x30, 0x54, 0xdd, 0xa0, 0x39, 0xbc, 0xcf, 0x0d, 0x0a, 0x2f, 0xe3, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0xe2, 0x6c, 0x06, 0xad, 0x0d, 0x8f, 0xc9, 0x1c, 0x14, 0x5d, 0xc6, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0xbe, 0xf8, 0xdd, 0xe0, 0x2d, 0x2f, 0x93, 0x6b, 0xf8, 0x11, 0x66, 0xe0, 0xeb, 0xf0, 0x20, 0x7e, 0xad, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xe0, 0xb1, 0x95, 0x91, 0x1b, 0xde, 0xed, 0xd9, 0xf0, 0x29, 0xe0, 0x41, 0x8c, 0x0a, 0xa1, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x6c, 0x50, 0x16, 0x16, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0xd8, 0x35, 0x42, 0xdb, 0xf0, 0x98, 0xcc, 0x06, 0xb1, 0xd9, 0xf1, 0xd4, 0x06, 0x85, 0xa1, 0xea, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0x27, 0xd0, 0x1a, 0x3e, 0x8e, 0x3a, 0x88, 0xcd, 0x8e, 0xa7, 0x83, 0xa2, 0xcb, 0x78, 0x83, 0xc2, 0x50, 0x75, 0x83, 0xe6, 0xf0, 0x3e, 0x37, 0x28, 0xbc, 0x8c, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0xec, 0x1a, 0xa1, 0x1d, 0xc4, 0x43, 0x13, 0xda, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x2f, 0x7e, 0x37, 0x78, 0xcb, 0xcb, 0xe4, 0x1a, 0x7e, 0x84, 0x19, 0xf8, 0x3a, 0x3c, 0x88, 0x7b, 0x6b, 0xf8, 0xc4, 0x66, 0x0d, 0x9f, 0xbb, 0x6c, 0x50, 0x16, 0x16, 0x6f, 0x78, 0xb7, 0x67, 0xc3, 0xa7, 0x80, 0x1b, 0xbc, 0xe5, 0x65, 0xf2, 0x20, 0xca, 0xff, 0xcf, 0x36, 0x28, 0x0c, 0x55, 0x37, 0x58, 0x6d, 0x24, 0xbb, 0x41, 0x61, 0xa8, 0xba, 0x41, 0x9b, 0x47, 0x56, 0x1b, 0x9c, 0x1a, 0x8e, 0x36, 0x28, 0xbc, 0x8c, 0x37, 0x5c, 0x52, 0x6b, 0x10, 0xc3, 0x29, 0x68, 0xad, 0x41, 0x6c, 0xfd, 0x61, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0xd3, 0x5b, 0xdc, 0x86, 0xc7, 0x64, 0xd6, 0xf0, 0x17, 0xcd, 0x06, 0xe5, 0x9c, 0xed, 0x41, 0x94, 0xfc, 0x61, 0xd5, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6e, 0xcf, 0x86, 0x2f, 0x7e, 0x37, 0x78, 0xcb, 0xcb, 0xe4, 0xc1, 0x32, 0x3d, 0xd4, 0x35, 0x7c, 0x62, 0xb3, 0x86, 0xcf, 0x5d, 0x06, 0x3c, 0xb6, 0x32, 0x72, 0xc3, 0xbb, 0x3d, 0x1b, 0x3e, 0x05, 0x3c, 0x88, 0x02, 0x28, 0xb4, 0x0d, 0x9f, 0xd8, 0x6c, 0x10, 0xe1, 0x4a, 0x68, 0x1b, 0x14, 0x86, 0xaa, 0x1b, 0xc4, 0x28, 0x13, 0xda, 0x06, 0x85, 0xa1, 0xea, 0x06, 0x6d, 0x1e, 0x59, 0x6d, 0x70, 0x6a, 0x38, 0xda, 0xa0, 0xf0, 0x32, 0xde, 0x70, 0x49, 0x6d, 0x10, 0x57, 0x54, 0x68, 0x6b, 0x10, 0x5b, 0x7f, 0x58, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0xf4, 0x16, 0xb7, 0x41, 0x4c, 0x34, 0xa1, 0x1d, 0x44, 0x69, 0x15, 0x5a, 0x1b, 0x2c, 0xa9, 0x5f, 0x5a, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0xe3, 0x6e, 0xc3, 0xcb, 0x77, 0x01, 0xba, 0x72, 0x69, 0x70, 0x2d, 0x6e, 0x6f, 0x74, 0x2d, 0x62, 0x6c, 0x6f, 0x71, 0x2d, 0x73, 0x0d, 0x5f, 0xbf, 0x6c, 0xb0, 0x74, 0x0d, 0x75, 0xc3, 0xd7, 0x2f, 0x1b, 0x3e, 0x84, 0x39, 0x78, 0xcb, 0xcb, 0x64, 0x07, 0xe1, 0xa9, 0x7a, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x2b, 0x80, 0xbf, 0x5c, 0x99, 0x1b, 0x59, 0x99, 0x5c, 0x0b, 0x5a, 0x19, 0x5e, 0x8b, 0x58, 0x1e, 0x5d, 0xd9, 0xbc, 0xe1, 0x17, 0xa5, 0x0d, 0x22, 0x22, 0xbe, 0x6a, 0xc3, 0x5f, 0x34, 0x1b, 0x9c, 0xf4, 0x44, 0x37, 0xbc, 0xdb, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x88, 0x5c, 0x1f, 0xb2, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xf0, 0xd4, 0x6e, 0x10, 0xb0, 0xac, 0x07, 0xed, 0x93, 0xb2, 0x76, 0x10, 0x01, 0x6e, 0x4d, 0x2b, 0x00, 0x2f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2d, 0x74, 0x6f, 0x2d, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0xed, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xe1, 0xc1, 0x8b, 0x08, 0x1e, 0x37, 0xfc, 0x45, 0xb3, 0xc1, 0x49, 0x4f, 0x74, 0x83, 0x82, 0x34, 0x76, 0x80, 0x07, 0xad, 0x0c, 0xaf, 0x8c, 0x5c, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x78, 0x08, 0x43, 0x6b, 0x83, 0x34, 0x15, 0xd7, 0x0d, 0x96, 0xb5, 0xa3, 0xb6, 0x41, 0x41, 0x1a, 0xbb, 0xc1, 0x9b, 0x41, 0x3e, 0xd7, 0xf0, 0x6e, 0xcf, 0x1a, 0x1e, 0x94, 0x5c, 0xc3, 0xdb, 0x3a, 0x1b, 0x44, 0x57, 0xa8, 0x55, 0x1b, 0x1e, 0x94, 0xdc, 0x20, 0xce, 0xe3, 0xab, 0x0e, 0x62, 0xc1, 0xf2, 0x6a, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x53, 0x97, 0x57, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xe5, 0xc8, 0xc2, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x88, 0x40, 0x43, 0xab, 0xda, 0xa0, 0xb4, 0xb7, 0x5c, 0xc3, 0x9f, 0x4b, 0x03, 0x9e, 0x5c, 0x19, 0x7d, 0x70, 0xd2, 0x13, 0xdd, 0xa0, 0x20, 0x8d, 0xdd, 0x60, 0x29, 0x94, 0xe7, 0x06, 0xeb, 0x11, 0xde, 0x36, 0x7c, 0x85, 0xb3, 0x41, 0x09, 0x8f, 0xb9, 0x41, 0x74, 0xb5, 0xa1, 0xad, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0x33, 0x80, 0x0f, 0x9c, 0x5c, 0x99, 0x59, 0x1a, 0x5e, 0x0b, 0x5a, 0x19, 0xde, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xb0, 0x58, 0x5e, 0xc3, 0xdb, 0x3a, 0x03, 0x9e, 0x5c, 0x19, 0x5d, 0x6d, 0x50, 0x90, 0xc6, 0x6e, 0x70, 0x52, 0x21, 0x5d, 0xc3, 0xdb, 0x3a, 0x83, 0xa7, 0x07, 0xd1, 0xd5, 0x86, 0xb6, 0xe1, 0x83, 0x9c, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x8b, 0xb3, 0x0d, 0xde, 0x8e, 0x2a, 0x7d, 0x10, 0x09, 0x24, 0x64, 0x6b, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xb0, 0x52, 0xda, 0x73, 0xc3, 0xbb, 0x3d, 0x1b, 0x5e, 0xf3, 0x39, 0x88, 0x60, 0x81, 0xb3, 0x35, 0x88, 0x19, 0x39, 0xb4, 0x0d, 0xbf, 0xb8, 0x6c, 0xf0, 0x76, 0x54, 0xe9, 0x83, 0xc8, 0x8f, 0x43, 0x5b, 0x83, 0xe8, 0x6a, 0x43, 0xdb, 0xf0, 0xb6, 0xce, 0xe0, 0xf4, 0x41, 0x74, 0xb5, 0xa1, 0xb5, 0x41, 0x41, 0x1a, 0x3b, 0xe0, 0xb9, 0xa5, 0x89, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x92, 0x68, 0x76, 0x83, 0x80, 0x65, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0x2c, 0x87, 0xf6, 0x3c, 0x28, 0x88, 0xc7, 0x0f, 0x62, 0xb0, 0xf6, 0x6a, 0xc3, 0x07, 0x39, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x17, 0x67, 0x1b, 0x9c, 0x17, 0x68, 0xd6, 0xf0, 0xb6, 0xce, 0x80, 0xe7, 0x96, 0x26, 0xd6, 0x1a, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x06, 0x71, 0x54, 0x87, 0xb6, 0x06, 0x31, 0x23, 0x87, 0xb6, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0xdb, 0xb3, 0xe1, 0x53, 0xc0, 0x0d, 0xde, 0x8e, 0x2a, 0x7d, 0x90, 0x76, 0x1a, 0x7b, 0x10, 0xf9, 0x71, 0x68, 0x07, 0x91, 0x75, 0x87, 0x76, 0x10, 0xe7, 0x74, 0x68, 0x2b, 0x80, 0x6f, 0x18, 0x19, 0x99, 0x5c, 0xd9, 0xdc, 0x5c, 0x0b, 0xdd, 0x5b, 0x0b, 0x5a, 0x19, 0xbe, 0xe1, 0x17, 0xa5, 0x0d, 0x22, 0xd7, 0x0c, 0x6d, 0xc3, 0x5f, 0x34, 0x1b, 0x9c, 0xf4, 0x44, 0x37, 0x38, 0xb1, 0xdf, 0x6c, 0x10, 0x85, 0x70, 0x68, 0x07, 0xd1, 0x87, 0x86, 0xb6, 0x02, 0x78, 0xc3, 0x85, 0x91, 0xb5, 0xd0, 0xbd, 0xb5, 0xb4, 0xd5, 0xb1, 0xd1, 0xa5, 0xc1, 0xb1, 0x95, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0xbb, 0x0b, 0xa3, 0x0f, 0x4e, 0x7a, 0xa2, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x6b, 0x7b, 0x33, 0x0f, 0xca, 0x2c, 0xdd, 0x35, 0xfc, 0xb9, 0xb4, 0x41, 0x8b, 0x84, 0x96, 0x1b, 0x04, 0x9b, 0xe9, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x58, 0xbb, 0xd2, 0xbd, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x1e, 0x30, 0x5b, 0x5a, 0x1b, 0xfe, 0xa2, 0xd9, 0xe0, 0xa4, 0x27, 0xba, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0xb2, 0x41, 0x59, 0x58, 0xbc, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0x7a, 0x4e, 0xae, 0xe1, 0x6d, 0x9d, 0x01, 0xef, 0x2e, 0x8c, 0xae, 0x0d, 0x1f, 0xe4, 0x6c, 0x90, 0xbe, 0x79, 0xb9, 0x86, 0x77, 0x7b, 0x36, 0x38, 0xc9, 0xb4, 0xad, 0xe1, 0x6d, 0x9d, 0x01, 0xaf, 0xed, 0xcd, 0xec, 0x60, 0xdd, 0x8f, 0xdc, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x80, 0xd7, 0x16, 0x46, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0xb0, 0xbb, 0xdd, 0xa0, 0xf0, 0x32, 0xde, 0x20, 0x56, 0x14, 0xd1, 0xda, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0xf0, 0xe0, 0xcd, 0x86, 0xb7, 0x75, 0x06, 0xbc, 0xb6, 0x30, 0xb2, 0x0d, 0x62, 0x15, 0x11, 0x6d, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0xc0, 0xa3, 0x0b, 0x23, 0x37, 0xbc, 0xdb, 0xb3, 0xc1, 0x49, 0xa6, 0x6d, 0x0d, 0xef, 0xf6, 0x6c, 0xf8, 0x14, 0x70, 0x83, 0x58, 0x51, 0x44, 0xdb, 0x20, 0x9e, 0x1a, 0xd1, 0x3a, 0x58, 0xf7, 0x23, 0xb7, 0xc1, 0x89, 0xfd, 0x66, 0x83, 0x13, 0x41, 0xdb, 0x86, 0x0f, 0x72, 0xd6, 0xa0, 0x98, 0xc4, 0xdc, 0x20, 0x46, 0x0b, 0xd1, 0x0e, 0x9a, 0x79, 0x8a, 0x5d, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0xa3, 0x0b, 0x23, 0x3b, 0x88, 0x53, 0x44, 0xb4, 0x0d, 0xbf, 0xb8, 0x6c, 0x10, 0xab, 0x88, 0x68, 0x1b, 0xc4, 0x99, 0x24, 0x5a, 0x87, 0x53, 0x6c, 0x01, 0xf8, 0xa0, 0x93, 0x0b, 0x73, 0x9b, 0x0b, 0x1b, 0xa3, 0x4b, 0x7b, 0x73, 0x6b, 0xa1, 0x7b, 0x6b, 0x41, 0x2b, 0xc3, 0x37, 0xfc, 0xa2, 0xb4, 0xc1, 0x81, 0x93, 0x6e, 0xc3, 0x5f, 0x34, 0x1b, 0x9c, 0xf4, 0x44, 0x37, 0x38, 0xb1, 0xdf, 0x6c, 0x10, 0x85, 0x70, 0x68, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0x6e, 0xd1, 0xd0, 0x36, 0x48, 0x3d, 0x8d, 0x3d, 0x38, 0xc0, 0xd3, 0xad, 0x80, 0x17, 0x26, 0x96, 0x6e, 0x50, 0x4a, 0x88, 0xaf, 0x41, 0xc9, 0xc2, 0x3e, 0xcb, 0xac, 0xc1, 0x41, 0x9e, 0x6d, 0xc3, 0x47, 0xed, 0x1b, 0x04, 0xed, 0xcf, 0x1a, 0x3e, 0x57, 0x5a, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0xef, 0x91, 0x4c, 0x5c, 0xc3, 0x9f, 0x4b, 0x83, 0xc3, 0x07, 0x2f, 0x22, 0x78, 0x6c, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x97, 0xc3, 0x6c, 0x1e, 0x1c, 0xde, 0x44, 0xd7, 0xf0, 0xb9, 0xd2, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x68, 0x6c, 0xd2, 0x6b, 0x83, 0x18, 0x87, 0x2b, 0x6b, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x81, 0x56, 0xbf, 0x86, 0x3f, 0x97, 0x06, 0x87, 0x0f, 0xce, 0x97, 0xac, 0xad, 0xe1, 0x73, 0xa5, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x17, 0xf8, 0x75, 0x69, 0x6e, 0xf4, 0x41, 0x03, 0x72, 0x82, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0xe7, 0x6b, 0x31, 0xae, 0xe1, 0xcf, 0xa5, 0xc1, 0xe1, 0x83, 0x63, 0xc0, 0x6b, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x05, 0x3c, 0x75, 0x72, 0x65, 0x61, 0xec, 0x1a, 0xfe, 0x5c, 0x1a, 0x1c, 0xde, 0xf0, 0x45, 0xcd, 0x86, 0x3a, 0x7e, 0xb0, 0x0a, 0xf1, 0xb5, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x02, 0xde, 0x30, 0x39, 0xb9, 0xb0, 0xbc, 0x16, 0x77, 0x0d, 0x7f, 0x2e, 0x0d, 0x0e, 0x6f, 0x10, 0xfa, 0x25, 0x1b, 0x84, 0x94, 0xc9, 0x06, 0x2f, 0xcc, 0x7f, 0xaf, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0x5e, 0x0a, 0xaf, 0x79, 0x10, 0x9d, 0xa4, 0x68, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x05, 0xbc, 0x62, 0x79, 0x74, 0x65, 0x73, 0x2d, 0xee, 0x1a, 0xfe, 0x5c, 0x1a, 0x1c, 0x3e, 0x78, 0xfa, 0xb9, 0x5c, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0xc4, 0x3a, 0x1d, 0xd6, 0x41, 0x7c, 0xa0, 0xa2, 0x35, 0x0b, 0xf8, 0x65, 0x74, 0x79, 0xf0, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0x30, 0xbf, 0x06, 0xc1, 0x66, 0xba, 0x41, 0x74, 0x67, 0xa2, 0x6d, 0x10, 0x93, 0x9c, 0x68, 0x1b, 0xc4, 0x72, 0x27, 0xda, 0x06, 0x51, 0xf4, 0x89, 0xb6, 0xc1, 0xf3, 0xb5, 0x18, 0x37, 0x88, 0xd0, 0x50, 0xb4, 0x0d, 0x22, 0x20, 0x15, 0x6d, 0x83, 0x58, 0xdb, 0x44, 0x6b, 0x83, 0xa0, 0xfd, 0x59, 0xc3, 0xe7, 0x4a, 0x1b, 0x44, 0xcc, 0x29, 0xda, 0x06, 0x05, 0x91, 0x6e, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x78, 0x1d, 0x45, 0x5b, 0xc3, 0x9f, 0x4b, 0x83, 0xd3, 0x1b, 0xfe, 0x9d, 0x5f, 0x83, 0x58, 0x50, 0x45, 0xab, 0x83, 0x78, 0x71, 0x45, 0x5b, 0xc3, 0xe7, 0x4a, 0x1b, 0xc4, 0x7f, 0x29, 0xda, 0x06, 0xd1, 0xef, 0x8a, 0x56, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x6d, 0xb0, 0x0a, 0xcb, 0x69, 0x83, 0x98, 0xc0, 0xbc, 0xda, 0xa0, 0x64, 0x61, 0x9f, 0x65, 0x16, 0xc0, 0x9f, 0xac, 0x6c, 0xec, 0x8d, 0xac, 0xac, 0x25, 0x4c, 0xee, 0xac, 0xae, 0xad, 0xcc, 0x8d, 0x6e, 0xde, 0xa0, 0x50, 0xee, 0x5c, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0xbb, 0x7b, 0x9b, 0x0f, 0xca, 0x39, 0xdb, 0x35, 0xfc, 0xb9, 0xb4, 0x41, 0x3b, 0x9e, 0x5a, 0x1b, 0x84, 0x7e, 0xc9, 0x06, 0x21, 0x65, 0xb2, 0x41, 0x4c, 0xbd, 0xa2, 0xd5, 0x06, 0x05, 0x69, 0xec, 0x1a, 0xbe, 0x6f, 0x1f, 0xf0, 0xee, 0xde, 0xe6, 0x83, 0x48, 0x00, 0x90, 0x5a, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xdf, 0xb3, 0x32, 0x3a, 0x10, 0xb9, 0x34, 0x32, 0x90, 0x37, 0x33, 0x10, 0xba, 0xb6, 0xb4, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x77, 0x6f, 0x73, 0x1b, 0x94, 0xf6, 0x96, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0xb5, 0x1e, 0xf0, 0x07, 0x65, 0x96, 0xee, 0x86, 0x07, 0x25, 0xd7, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0x19, 0xc0, 0x8b, 0xac, 0x6c, 0xec, 0x8d, 0xac, 0xac, 0xc5, 0x4c, 0xee, 0xad, 0x6d, 0xc3, 0x83, 0x37, 0x6b, 0x78, 0x5b, 0xe7, 0xa0, 0x69, 0x54, 0xad, 0x36, 0x28, 0x59, 0xd8, 0x67, 0x99, 0x05, 0xf0, 0x25, 0x2b, 0x1b, 0x7b, 0x23, 0x2b, 0x6b, 0x09, 0x93, 0x93, 0x0b, 0xcb, 0x6b, 0x71, 0x37, 0x28, 0xed, 0x2d, 0xd7, 0xf0, 0xe7, 0xd2, 0x06, 0xc7, 0x0c, 0xcf, 0x83, 0x82, 0x9e, 0x7d, 0x83, 0x42, 0xb9, 0x73, 0x0d, 0x9f, 0x2b, 0x6d, 0x10, 0xa5, 0xb4, 0x68, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x33, 0x93, 0x7b, 0x0f, 0xca, 0x2c, 0xdd, 0x83, 0xc8, 0x09, 0xf1, 0xda, 0xf0, 0x17, 0xcd, 0x1a, 0x3e, 0x57, 0xda, 0xa0, 0xcc, 0xd2, 0x3d, 0x38, 0x50, 0x6e, 0x6c, 0x50, 0xc2, 0x63, 0x6e, 0xd0, 0x34, 0xaa, 0xd6, 0x06, 0xe1, 0xa9, 0xba, 0xe1, 0x83, 0x9c, 0x0d, 0xe2, 0x5d, 0x65, 0x6a, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0xcf, 0x4c, 0xee, 0x6d, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x58, 0x2c, 0xaf, 0xe1, 0x2f, 0x9a, 0x0d, 0x0a, 0x7a, 0xf6, 0x83, 0x83, 0x96, 0x67, 0x6d, 0xf8, 0xc4, 0x66, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0xbc, 0xb7, 0xdc, 0xd2, 0xdc, 0x7a, 0x80, 0xea, 0xc8, 0x40, 0xc8, 0xc2, 0xe8, 0x7a, 0x54, 0xba, 0x36, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0xf0, 0x21, 0x2b, 0x1b, 0x7b, 0x23, 0x2b, 0x6b, 0x79, 0x73, 0x2b, 0xdb, 0x20, 0x76, 0x85, 0xd1, 0xd6, 0xe0, 0xe8, 0x3a, 0xb8, 0x41, 0x93, 0xaf, 0x5a, 0xb5, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0xc1, 0x19, 0xcc, 0x73, 0xc3, 0xd7, 0x2f, 0x1b, 0x1c, 0xb4, 0x3c, 0x37, 0xfc, 0xe2, 0xb2, 0x41, 0xe9, 0x67, 0x7c, 0xd0, 0xd0, 0x5a, 0xf2, 0x1a, 0x44, 0xbc, 0x30, 0xda, 0x86, 0xb7, 0x75, 0x06, 0x3c, 0xb7, 0x34, 0xb7, 0x83, 0x74, 0xda, 0xcb, 0x59, 0x00, 0x5f, 0xb2, 0xb2, 0xb1, 0x37, 0xb2, 0xb2, 0x16, 0xb1, 0x3c, 0xba, 0xb2, 0xb9, 0x16, 0x77, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x38, 0xfa, 0x45, 0x5b, 0xc3, 0x9f, 0x4b, 0x03, 0x9e, 0x58, 0xde, 0x7c, 0x50, 0x66, 0xe9, 0xb6, 0xe1, 0x2f, 0x9a, 0x0d, 0x9e, 0x7e, 0x2e, 0xb7, 0x41, 0x61, 0xa8, 0xba, 0x86, 0xb7, 0x75, 0x06, 0x3c, 0xb1, 0xbc, 0xb9, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x4a, 0x7c, 0xdc, 0x35, 0x28, 0x0c, 0x55, 0x37, 0x28, 0x2a, 0xc5, 0x37, 0x7c, 0x62, 0xb3, 0x86, 0x77, 0x7b, 0x36, 0x08, 0xbb, 0xdb, 0x0d, 0xe2, 0xcf, 0x19, 0xed, 0x20, 0xed, 0x34, 0x76, 0xc3, 0x07, 0x39, 0x6b, 0xf8, 0x37, 0x67, 0xc3, 0x83, 0x37, 0x87, 0x67, 0x26, 0x37, 0x3c, 0x33, 0xb9, 0xe1, 0xdd, 0x9e, 0x0d, 0x9f, 0x02, 0x1e, 0x2c, 0x5e, 0x49, 0xdd, 0xa0, 0xe8, 0x34, 0xde, 0xa0, 0xd8, 0x56, 0xde, 0xe0, 0xb0, 0x32, 0xb7, 0xc1, 0x89, 0xfd, 0x66, 0x83, 0xc2, 0x62, 0x79, 0x83, 0xa3, 0x0d, 0xdf, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x6a, 0x6f, 0xd0, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xb1, 0x2b, 0x8c, 0x76, 0x90, 0x0a, 0x34, 0xb6, 0x41, 0xc4, 0xe1, 0xa2, 0xb5, 0xe1, 0xe3, 0xa8, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x0a, 0xac, 0x6b, 0x78, 0xb7, 0x67, 0xc3, 0x6b, 0x3e, 0x1b, 0xc4, 0x9f, 0x33, 0x5a, 0x07, 0x69, 0xa7, 0xb1, 0xab, 0x41, 0xa4, 0x1a, 0xa3, 0x6d, 0x50, 0x28, 0x77, 0xae, 0xe1, 0x73, 0xa5, 0x0d, 0xe2, 0x26, 0x17, 0xed, 0x20, 0x42, 0x69, 0xd1, 0x36, 0x38, 0xda, 0xf0, 0xad, 0xe1, 0x73, 0x97, 0x35, 0x4c, 0xdc, 0x80, 0xe7, 0x96, 0xe6, 0x1e, 0x14, 0xb5, 0xc5, 0x87, 0x67, 0x26, 0x37, 0x28, 0xe1, 0x31, 0x37, 0x68, 0x1a, 0x55, 0x6b, 0x83, 0xf0, 0x54, 0xdd, 0x60, 0xa5, 0x8b, 0xd3, 0x06, 0x8d, 0x35, 0x67, 0x6d, 0xd0, 0xe4, 0xab, 0xd6, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x06, 0xcb, 0x67, 0x72, 0x37, 0xbc, 0xdb, 0xb3, 0x41, 0x51, 0x39, 0xbf, 0x86, 0xb7, 0x75, 0x0e, 0x56, 0x7a, 0xc0, 0x1f, 0xc4, 0x72, 0x35, 0xda, 0x06, 0x27, 0x07, 0xb9, 0x0d, 0x1a, 0x6b, 0xce, 0x5a, 0x83, 0x25, 0xf5, 0x4b, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0x2e, 0xc0, 0xbf, 0xce, 0x6d, 0xae, 0x0e, 0x0e, 0xee, 0x4d, 0x8e, 0xae, 0x8c, 0xac, 0x85, 0x2e, 0x0f, 0xae, 0x3c, 0x68, 0x05, 0x1f, 0xec, 0x20, 0x3c, 0x55, 0x57, 0xc3, 0x13, 0xef, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x1e, 0x4a, 0xd2, 0xdc, 0xe8, 0x40, 0x4a, 0xe4, 0xca, 0xc2, 0xd8, 0x40, 0x4a, 0xea, 0xe4, 0xca, 0xc2, 0xd8, 0x36, 0x08, 0x36, 0xd3, 0x0d, 0xa2, 0x3b, 0x13, 0x6d, 0x83, 0x98, 0xe4, 0x44, 0xdb, 0x20, 0x8a, 0x3e, 0xd1, 0xda, 0xa0, 0x30, 0x54, 0x5d, 0xc3, 0xc7, 0x51, 0x07, 0xf1, 0xd4, 0x8d, 0xb6, 0x41, 0x90, 0x9e, 0x6e, 0xd0, 0x58, 0x73, 0xd6, 0x1a, 0x44, 0x77, 0x26, 0xda, 0x86, 0xaf, 0x5f, 0x36, 0x58, 0xba, 0x86, 0xba, 0xe1, 0xeb, 0x97, 0x0d, 0x1f, 0xc2, 0x1c, 0xac, 0x80, 0xce, 0x5d, 0x83, 0x28, 0xfa, 0x44, 0xdb, 0xf0, 0xf5, 0xcb, 0x86, 0x07, 0x6f, 0x0e, 0x62, 0xc1, 0x1c, 0x6d, 0x0d, 0x62, 0x92, 0x13, 0x6d, 0xc3, 0xbf, 0x39, 0x1b, 0x1e, 0x93, 0x39, 0x58, 0x01, 0x9d, 0xdb, 0x1a, 0xc4, 0xda, 0x26, 0xda, 0x86, 0x4f, 0x6c, 0xd6, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0xa0, 0x69, 0x54, 0xad, 0x0d, 0x8e, 0xae, 0x83, 0x6b, 0x78, 0xe3, 0xee, 0x20, 0x62, 0x52, 0xd1, 0x6a, 0xc3, 0x2f, 0x2e, 0x1b, 0xc4, 0x9b, 0x32, 0xda, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x19, 0xf6, 0xdb, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xd4, 0x3a, 0xde, 0xa0, 0xa8, 0x14, 0x5f, 0xc3, 0xdb, 0x3a, 0x07, 0xcf, 0xb9, 0x6f, 0xa9, 0xd6, 0x20, 0x02, 0x52, 0xd1, 0x36, 0x28, 0x0c, 0x55, 0x37, 0x88, 0x1e, 0x72, 0xb4, 0x0d, 0x0a, 0xd2, 0xd8, 0x35, 0x7c, 0xdf, 0x3e, 0xe0, 0xb1, 0xa5, 0x8d, 0x07, 0x0d, 0x5c, 0x9f, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x42, 0x81, 0x75, 0x83, 0x15, 0xd0, 0xb9, 0x07, 0x69, 0xa7, 0xb1, 0x1b, 0x14, 0xa4, 0xb1, 0x6b, 0xf8, 0xbe, 0x7d, 0x83, 0xb2, 0xb0, 0xf8, 0xa0, 0x81, 0xeb, 0xd3, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x51, 0x39, 0xbf, 0x86, 0xb7, 0x75, 0x06, 0x3c, 0xb6, 0xb4, 0xb1, 0x83, 0x58, 0xae, 0x46, 0xdb, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0x82, 0x96, 0xd1, 0x5a, 0xc3, 0xc7, 0x51, 0x07, 0xf1, 0x15, 0x8f, 0x76, 0x50, 0x74, 0x19, 0xaf, 0x86, 0xcf, 0x95, 0x36, 0x88, 0x98, 0x53, 0xb4, 0x83, 0x43, 0x4c, 0xc7, 0x06, 0x85, 0xa1, 0xea, 0x1a, 0xde, 0xed, 0xd9, 0xf0, 0x27, 0xd0, 0x06, 0xf1, 0xd4, 0x8d, 0xb6, 0x86, 0x8f, 0xa3, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x28, 0xb0, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0xaf, 0xf9, 0xac, 0xe1, 0x6d, 0x9d, 0xc1, 0xdd, 0x83, 0xc6, 0x9a, 0xb3, 0x3a, 0x48, 0x3b, 0x8d, 0x6d, 0xc3, 0xbb, 0x3d, 0x1b, 0xc4, 0x98, 0x3c, 0xda, 0x06, 0xf1, 0xd4, 0x8d, 0x76, 0x10, 0x87, 0xf6, 0x68, 0xab, 0xe1, 0x73, 0xa5, 0x0d, 0xe2, 0xbf, 0x14, 0xed, 0xe0, 0x10, 0xd3, 0xb1, 0x41, 0x61, 0xa8, 0xba, 0x41, 0xf4, 0x90, 0xa3, 0x6d, 0x50, 0xf4, 0xe9, 0x6e, 0xb0, 0xd2, 0x03, 0x7e, 0x83, 0x58, 0x77, 0x47, 0xdb, 0xe0, 0xc4, 0x7e, 0xb3, 0xc1, 0xc1, 0x5a, 0x6e, 0x83, 0x55, 0xbd, 0x4a, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x48, 0xe4, 0x45, 0x6b, 0x0d, 0x8e, 0xae, 0x83, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0xfa, 0xa0, 0xb1, 0xe6, 0xac, 0x36, 0x88, 0x1e, 0x72, 0xb4, 0x83, 0xa8, 0xe6, 0x46, 0x5b, 0x0d, 0x9f, 0x2b, 0x6d, 0x10, 0xaf, 0xa3, 0x68, 0x07, 0x87, 0x98, 0x8e, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x77, 0xfb, 0x68, 0x1b, 0x44, 0x00, 0x3f, 0xda, 0x41, 0xbc, 0xdf, 0xa3, 0xb5, 0x1a, 0x44, 0xa7, 0x2e, 0xda, 0x06, 0x85, 0x72, 0xe7, 0x06, 0xb1, 0x85, 0x8d, 0xb6, 0x41, 0x09, 0x8f, 0xb9, 0x41, 0xd3, 0xa8, 0x5a, 0x1b, 0x84, 0xa7, 0xea, 0x06, 0x47, 0x1b, 0xbe, 0x35, 0x28, 0xe1, 0x31, 0x37, 0x68, 0xe2, 0x56, 0x6b, 0x83, 0xd2, 0xcf, 0x78, 0xc3, 0x2f, 0x2e, 0x1b, 0x94, 0x7e, 0xc6, 0x6b, 0xb8, 0xa4, 0x36, 0x9c, 0x62, 0x6b, 0xb0, 0xd2, 0x03, 0xfe, 0x20, 0xde, 0x94, 0xd1, 0x0e, 0x5a, 0xa8, 0xd5, 0x6a, 0xc3, 0xbb, 0x3d, 0x1b, 0xc4, 0x9b, 0x31, 0xda, 0x06, 0xf1, 0xd4, 0x8d, 0x76, 0x10, 0xb5, 0xc7, 0x68, 0x87, 0x53, 0xac, 0x0e, 0xa7, 0xd8, 0x2c, 0x80, 0x2f, 0x59, 0xd9, 0xd8, 0x1b, 0x59, 0x59, 0x8b, 0x5c, 0xd9, 0x5c, 0x1d, 0x1b, 0xdd, 0xbc, 0x41, 0xa1, 0xdc, 0xb9, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0x80, 0x27, 0x57, 0x86, 0x1f, 0x9c, 0x67, 0x47, 0x0f, 0x22, 0x94, 0x16, 0x6d, 0x83, 0xa3, 0x0d, 0xdf, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x44, 0x93, 0x2c, 0x5a, 0x1b, 0x9e, 0x99, 0x3c, 0x88, 0xd1, 0x5d, 0xb4, 0x0d, 0x56, 0xf5, 0x2a, 0xad, 0xe1, 0x6d, 0x9d, 0x0d, 0xc6, 0x14, 0x4c, 0x1b, 0xa4, 0x9c, 0x56, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0x7c, 0xdc, 0x0d, 0x16, 0x2f, 0xc5, 0xad, 0xe1, 0x6d, 0x9d, 0x01, 0x4f, 0xae, 0x0c, 0xaf, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x59, 0x66, 0x5d, 0x1b, 0x2c, 0xd8, 0x41, 0x3f, 0x58, 0x9d, 0x7f, 0xbf, 0x02, 0x78, 0x92, 0x95, 0x8d, 0xbd, 0x91, 0x95, 0xb5, 0xd0, 0xbd, 0xc1, 0xa5, 0x8d, 0xcd, 0x07, 0xd1, 0x83, 0x90, 0x76, 0x38, 0xc5, 0x16, 0xc0, 0x3b, 0x6d, 0xae, 0x85, 0x2c, 0xcf, 0x2d, 0xac, 0x2d, 0x6d, 0xac, 0x85, 0x2e, 0x0f, 0xae, 0xdc, 0xf0, 0x8b, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x3c, 0x3c, 0x78, 0x61, 0xfe, 0xfb, 0x06, 0xc5, 0x8e, 0xe6, 0x1a, 0x14, 0x93, 0x98, 0x1b, 0xc4, 0xeb, 0x28, 0xda, 0x41, 0xe9, 0xfc, 0xbe, 0x06, 0xc5, 0x24, 0xe6, 0x1a, 0x04, 0x9b, 0xe9, 0x06, 0xb1, 0xb6, 0x89, 0xb6, 0x41, 0x04, 0xa4, 0xa2, 0x6d, 0x10, 0xff, 0xa5, 0x68, 0x1d, 0x94, 0xce, 0xef, 0x1b, 0x1e, 0x61, 0x5d, 0xc3, 0xdb, 0xac, 0x1b, 0xfe, 0xcd, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xf4, 0x9c, 0x3c, 0x68, 0x9f, 0x94, 0xf5, 0xf0, 0xe0, 0xcd, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x7d, 0x6a, 0xed, 0x06, 0x8d, 0xbe, 0xa5, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0xa2, 0xc1, 0x21, 0xad, 0x5a, 0x01, 0xbc, 0xca, 0xdc, 0xc6, 0xde, 0xc8, 0xca, 0x5a, 0xc8, 0xc2, 0xe8, 0xc2, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0xcf, 0xa5, 0x0d, 0x8a, 0xda, 0xe2, 0x83, 0x17, 0xe6, 0xbf, 0x6f, 0xf8, 0x8b, 0x66, 0x83, 0x93, 0x9e, 0xe8, 0x06, 0x27, 0x07, 0xb9, 0x0d, 0xd6, 0xc8, 0x06, 0xaf, 0xc1, 0x92, 0xfa, 0xa5, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x84, 0x7c, 0xa3, 0x1d, 0x2c, 0x84, 0x0d, 0x3e, 0x08, 0x4f, 0xd5, 0x35, 0x88, 0xd7, 0x51, 0xb4, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x0d, 0x16, 0x1b, 0x5e, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x93, 0x4c, 0xdb, 0x06, 0x29, 0xd0, 0xa9, 0x07, 0xab, 0x6f, 0x5b, 0x37, 0x28, 0x48, 0x63, 0xd7, 0xf0, 0x7d, 0xfb, 0x80, 0x87, 0x56, 0x36, 0x1f, 0x34, 0x9d, 0xfe, 0xb9, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x25, 0x52, 0xf5, 0x1a, 0xde, 0xd6, 0x19, 0x1c, 0x3e, 0x28, 0xff, 0x8b, 0x37, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x27, 0x0f, 0x5e, 0x98, 0xff, 0xbe, 0x41, 0xb1, 0xa3, 0xb9, 0x86, 0x77, 0x7b, 0x36, 0x88, 0x85, 0x8a, 0xb4, 0x83, 0x52, 0x5d, 0x76, 0x0d, 0x97, 0xd4, 0x06, 0x87, 0xfd, 0x8e, 0x35, 0x28, 0xff, 0x8b, 0x0f, 0xca, 0x75, 0xd9, 0x0e, 0x56, 0x03, 0x5f, 0x6e, 0x50, 0x90, 0xc6, 0xae, 0xe1, 0xfb, 0xf6, 0x0d, 0x2f, 0xdf, 0x1d, 0x34, 0x9d, 0xfe, 0xb9, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x25, 0x52, 0xf5, 0x06, 0x31, 0xd4, 0x91, 0xb6, 0xe1, 0x17, 0xa5, 0x0d, 0xe2, 0xc1, 0x23, 0x6d, 0x83, 0x62, 0x47, 0x73, 0x83, 0x78, 0xf7, 0x48, 0xdb, 0x60, 0x41, 0x10, 0xdd, 0x41, 0xc4, 0x7e, 0xa4, 0x6d, 0x70, 0xb4, 0xe1, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x9c, 0x08, 0xda, 0x36, 0x78, 0xde, 0xda, 0xcb, 0x1a, 0xfe, 0xa2, 0xd9, 0xe0, 0xa4, 0x27, 0xba, 0xe1, 0xdd, 0x9e, 0x0d, 0x1a, 0x95, 0xff, 0x5b, 0xc3, 0xdb, 0x3a, 0x07, 0xa9, 0x6c, 0xc1, 0xb5, 0xe1, 0x2f, 0x9a, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0x99, 0xa5, 0xbb, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb7, 0xb2, 0xf9, 0xe0, 0xa4, 0x27, 0xda, 0x86, 0x4f, 0x6c, 0xd6, 0xf0, 0xb9, 0xcb, 0x80, 0xc7, 0x56, 0x46, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x85, 0x9e, 0x93, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x46, 0xe5, 0xff, 0xd6, 0xf0, 0xb6, 0xce, 0x80, 0x87, 0x56, 0x36, 0x57, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x2c, 0x95, 0x24, 0xdc, 0x20, 0xf2, 0x53, 0xd2, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0x36, 0x88, 0x0e, 0x0c, 0xb2, 0x0d, 0xca, 0x85, 0xf3, 0x83, 0xd8, 0x3b, 0x49, 0xdb, 0xa0, 0x30, 0x54, 0xdd, 0xa0, 0x20, 0x3e, 0xdf, 0xa0, 0xd8, 0xd1, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0x9c, 0x5a, 0xfa, 0x0e, 0x56, 0x03, 0x5f, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x4e, 0x04, 0x6d, 0x1b, 0x3c, 0x6f, 0xed, 0xe5, 0xe0, 0xe4, 0xd4, 0xb7, 0x41, 0x41, 0x1a, 0xbb, 0x86, 0xef, 0xdb, 0x07, 0xbc, 0x37, 0xb3, 0xf9, 0xa0, 0x81, 0xeb, 0xd3, 0x35, 0x38, 0xda, 0xf0, 0xad, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x00, 0x7d, 0x74, 0x77, 0x6f, 0x20, 0x68, 0x65, 0x78, 0x20, 0x64, 0x69, 0x67, 0x69, 0x74, 0x73, 0x20, 0x70, 0x65, 0x72, 0x20, 0x62, 0x79, 0x74, 0x65, 0xae, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x0a, 0xac, 0x1b, 0x9e, 0x99, 0x3c, 0x08, 0x56, 0xd6, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x7f, 0x02, 0xad, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0x80, 0xf7, 0xd8, 0x5b, 0x9d, 0x1b, 0x1d, 0x08, 0x5a, 0x59, 0x18, 0x19, 0x0b, 0x48, 0x98, 0x1b, 0xd9, 0x41, 0x6c, 0x76, 0x3c, 0x6d, 0x70, 0x62, 0xbf, 0xd9, 0x60, 0xa1, 0xe7, 0xe4, 0x06, 0x27, 0xf6, 0x9b, 0x35, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0x65, 0xec, 0xad, 0xce, 0x8d, 0x0e, 0x24, 0x8c, 0x8d, 0x0d, 0x84, 0x2e, 0x2c, 0x8d, 0x0d, 0x84, 0x2c, 0x8c, 0x2e, 0xec, 0xa0, 0x51, 0xf9, 0xbf, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0xb4, 0xe1, 0xe4, 0xca, 0xc6, 0xca, 0xc8, 0xd2, 0xdc, 0xce, 0x40, 0xde, 0xea, 0xe4, 0xe6, 0x5c, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0x60, 0x21, 0xb8, 0x41, 0x19, 0x7d, 0x7e, 0x10, 0x49, 0x26, 0x69, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xe7, 0x2e, 0x1b, 0xac, 0xb9, 0x3f, 0xde, 0x70, 0x49, 0x6d, 0x70, 0xd8, 0xef, 0x58, 0x83, 0xf2, 0xbf, 0x78, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0xe3, 0xee, 0x20, 0xea, 0x3e, 0xd1, 0xd6, 0xf0, 0xb6, 0xce, 0x80, 0xf7, 0x66, 0x36, 0x57, 0x1b, 0x2c, 0xa9, 0x5f, 0x5a, 0xc3, 0x2f, 0x2e, 0x6b, 0x78, 0xe3, 0x6e, 0xc3, 0xcb, 0x77, 0x01, 0xbe, 0x77, 0x65, 0x69, 0x72, 0x64, 0x2d, 0x72, 0x65, 0x66, 0x2d, 0x6c, 0x65, 0x6e, 0xf4, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0xa1, 0xe7, 0xe4, 0x41, 0x73, 0x13, 0x54, 0x6d, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0x62, 0xf4, 0x27, 0x6d, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xf4, 0x9c, 0xdc, 0x60, 0x35, 0xf0, 0x65, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0x44, 0xd0, 0xb6, 0xc1, 0xf3, 0xd6, 0x5e, 0x0e, 0x9a, 0x9b, 0xa0, 0x5a, 0x0d, 0x4f, 0xbc, 0xaf, 0xe1, 0x4e, 0x9b, 0x01, 0xd0, 0xfb, 0x0e, 0xad, 0x4c, 0xae, 0x0c, 0x04, 0x0b, 0x04, 0x2d, 0x6c, 0x0e, 0x64, 0x0d, 0xa4, 0x8c, 0xad, 0xac, 0xad, 0xcc, 0x8d, 0x6e, 0x0e, 0x04, 0x65, 0x0d, 0x24, 0x6d, 0x0e, 0x24, 0x6c, 0x6e, 0xae, 0xae, 0xad, 0x8c, 0x0c, 0x84, 0xee, 0x0d, 0x44, 0xac, 0x0c, 0xe4, 0xcd, 0x0c, 0x84, 0x2e, 0x0f, 0xae, 0x0c, 0xa4, 0x2e, 0xcd, 0x8d, 0x4e, 0xa6, 0xc6, 0x26, 0x45, 0x77, 0x10, 0xff, 0xa5, 0x68, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x9c, 0x08, 0xda, 0xd6, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0xa0, 0xfc, 0x2f, 0xde, 0xf0, 0x8b, 0xcb, 0x06, 0x71, 0xca, 0x93, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xe8, 0x39, 0xb9, 0x41, 0x0c, 0x75, 0xa4, 0x55, 0x1b, 0x2e, 0xa9, 0x0d, 0xa7, 0xd8, 0x1a, 0x94, 0xff, 0xc5, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0x1b, 0x77, 0x07, 0xf1, 0x3d, 0x8a, 0x76, 0x10, 0xcb, 0x49, 0x69, 0xad, 0x41, 0xc4, 0x9c, 0xa2, 0x6d, 0xb0, 0xa4, 0x7e, 0x69, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x8d, 0xbb, 0x0d, 0x2f, 0xdf, 0x05, 0xf8, 0x8b, 0xe5, 0xd1, 0x95, 0xcd, 0xb5, 0xb8, 0xb5, 0xd0, 0xbd, 0xbd, 0xb5, 0xb0, 0xbd, 0xb9, 0x9d, 0x6b, 0xf8, 0xdc, 0x65, 0xc3, 0xca, 0xd0, 0x41, 0xea, 0x69, 0xec, 0x1a, 0x3e, 0x77, 0x19, 0xe0, 0x0b, 0x1b, 0xa3, 0xab, 0x0b, 0x63, 0x37, 0xbc, 0xad, 0x33, 0x38, 0x7c, 0x10, 0x79, 0x1d, 0x69, 0x6d, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x5f, 0xfc, 0x6e, 0x10, 0x85, 0x4f, 0x69, 0x07, 0x69, 0xa7, 0xb1, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0xc4, 0x79, 0x20, 0x5a, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xb8, 0x45, 0x43, 0x3b, 0x88, 0xe5, 0xa4, 0xb4, 0x0d, 0x52, 0xa0, 0x53, 0xd7, 0xf0, 0xc6, 0xdd, 0x41, 0xfc, 0x19, 0xa2, 0xb5, 0x1a, 0x9e, 0x78, 0x5f, 0xc3, 0x9d, 0x36, 0x03, 0xa0, 0xe7, 0x9b, 0x19, 0x08, 0x5b, 0x99, 0xdb, 0x19, 0x1d, 0x1a, 0xc8, 0x1a, 0x08, 0xca, 0x1d, 0x5a, 0xda, 0x18, 0x1a, 0x48, 0xda, 0x1c, 0x48, 0xd8, 0xdc, 0x5c, 0x5d, 0x5b, 0x19, 0x19, 0x08, 0xdd, 0x1b, 0x88, 0x58, 0x19, 0xc8, 0x9b, 0x19, 0x08, 0x5d, 0x1e, 0x5c, 0x19, 0x48, 0x5d, 0x9a, 0x1b, 0x9d, 0x4c, 0x8d, 0x4d, 0xea, 0x20, 0x02, 0x52, 0xd1, 0x36, 0x28, 0x3a, 0x8d, 0x37, 0x38, 0x11, 0xb4, 0xad, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0x41, 0xf9, 0x5f, 0xbc, 0xe1, 0x17, 0x97, 0x0d, 0xe2, 0x94, 0x27, 0x6d, 0x83, 0x28, 0x7c, 0x4a, 0xab, 0x83, 0x18, 0x8b, 0x4a, 0x5b, 0x83, 0x58, 0xdb, 0x44, 0xdb, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0xa0, 0xfc, 0x2f, 0xde, 0xf0, 0x8b, 0xcb, 0x06, 0x71, 0xa3, 0x8e, 0xb6, 0x41, 0x3c, 0x25, 0xa5, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0xad, 0xe3, 0x0d, 0x8a, 0x4a, 0xf1, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x72, 0x64, 0xe1, 0x83, 0x58, 0x4e, 0x4a, 0xab, 0xd6, 0x20, 0x8a, 0x3e, 0xd1, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x74, 0x46, 0xa5, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0xe2, 0x16, 0x0d, 0x6d, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x8d, 0x97, 0x57, 0x07, 0xb1, 0x9c, 0x94, 0xd6, 0x06, 0x29, 0xd0, 0xa9, 0x6b, 0x78, 0xe3, 0xee, 0x20, 0xa6, 0x0b, 0xd1, 0x5a, 0x83, 0x98, 0xe4, 0x44, 0xdb, 0x70, 0x49, 0x6d, 0x38, 0xc5, 0xd6, 0xa0, 0xfc, 0x2f, 0xde, 0xf0, 0x8b, 0xcb, 0x06, 0x71, 0xca, 0x93, 0xb6, 0x86, 0x0f, 0x72, 0x36, 0x88, 0xa1, 0x8e, 0xb4, 0x0d, 0x8f, 0xc9, 0x1c, 0x1e, 0xbc, 0xa9, 0x35, 0x88, 0xee, 0x4c, 0xb4, 0x0d, 0x97, 0xd4, 0x86, 0x53, 0x6c, 0x0d, 0xca, 0xff, 0xe2, 0x0d, 0xbf, 0xb8, 0x6c, 0x10, 0xa7, 0x3c, 0x69, 0x6b, 0xf8, 0xfa, 0x65, 0xc3, 0x83, 0x37, 0x1b, 0xbe, 0x7e, 0xd9, 0xf0, 0x21, 0xcc, 0x41, 0x0c, 0x75, 0xa4, 0x55, 0x87, 0x53, 0x6c, 0x01, 0xbc, 0xca, 0xdc, 0xc6, 0xde, 0xc8, 0xca, 0x5a, 0xc2, 0xe4, 0xce, 0xe6, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0xcf, 0xa5, 0x01, 0x8f, 0x2c, 0x6c, 0x3e, 0x88, 0x7b, 0x52, 0xb4, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0xd2, 0x13, 0xdd, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0x4a, 0x2b, 0xd2, 0x5a, 0xc3, 0x2f, 0x2e, 0x1b, 0x44, 0xbf, 0x52, 0xda, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xc8, 0xc2, 0xe6, 0xea, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0xb6, 0x00, 0x3e, 0x68, 0x65, 0x78, 0x2d, 0x74, 0x6f, 0x2d, 0x6e, 0x75, 0xed, 0x86, 0x5f, 0x94, 0x36, 0x58, 0xa4, 0x1d, 0xb7, 0xc1, 0x92, 0xfa, 0xa5, 0x35, 0xbc, 0x71, 0xb7, 0xe1, 0xe5, 0xbb, 0x00, 0x3f, 0xb7, 0x37, 0xb7, 0x16, 0xb4, 0x32, 0xbc, 0x96, 0xb1, 0x37, 0x39, 0x72, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0xb0, 0xe8, 0x2a, 0xee, 0x60, 0x0d, 0x37, 0xfa, 0x86, 0x07, 0x25, 0xd7, 0xf0, 0x6e, 0xde, 0x1a, 0xfe, 0xcd, 0xd9, 0xf0, 0xe0, 0xcd, 0xc1, 0xe9, 0x22, 0xe3, 0xe0, 0x74, 0x24, 0xb2, 0xc1, 0x89, 0xfd, 0x66, 0x83, 0xb3, 0xa1, 0xcb, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xa0, 0xe4, 0x06, 0x2f, 0xa2, 0x0f, 0xde, 0xf0, 0xa0, 0xe4, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0xaa, 0xa9, 0x90, 0x3a, 0x88, 0x09, 0xcc, 0xab, 0x0d, 0xd6, 0x1f, 0xc5, 0x35, 0x0b, 0xe0, 0xe3, 0x56, 0xd7, 0xd6, 0x42, 0xf7, 0xd6, 0x82, 0x56, 0x86, 0x6f, 0xf8, 0x45, 0x69, 0x83, 0x15, 0xbd, 0xef, 0x1b, 0xfe, 0xa2, 0xd9, 0xe0, 0xa4, 0x27, 0xba, 0xc1, 0x89, 0xfd, 0x66, 0x83, 0x28, 0x84, 0x43, 0xdb, 0xf0, 0x41, 0xce, 0x06, 0x31, 0xbb, 0xb7, 0xb5, 0x86, 0x67, 0xf1, 0x0e, 0xa2, 0xeb, 0xb3, 0x66, 0x83, 0x13, 0xfb, 0xcd, 0x06, 0x71, 0x8b, 0x86, 0xb6, 0xe1, 0xdd, 0x9e, 0x0d, 0x62, 0xea, 0xf2, 0xea, 0x20, 0x0d, 0x2f, 0x77, 0xd6, 0x20, 0x7e, 0xe1, 0xd0, 0x36, 0xfc, 0xa2, 0xb4, 0xc1, 0x22, 0x82, 0xba, 0x0d, 0x7f, 0xd1, 0x6c, 0x70, 0xd2, 0x13, 0xdd, 0xf0, 0x8b, 0xcb, 0x06, 0x8b, 0xe0, 0xdd, 0x36, 0x58, 0x83, 0xfe, 0x76, 0x78, 0xe8, 0x67, 0x16, 0xf0, 0xe4, 0xe0, 0xc6, 0x0d, 0x4a, 0x09, 0xf1, 0x35, 0x58, 0x85, 0xe5, 0xb4, 0x86, 0xb7, 0x75, 0x06, 0xbc, 0x30, 0xb1, 0xb4, 0x0d, 0x56, 0x61, 0x39, 0x6d, 0x10, 0x1b, 0xcd, 0x4b, 0x1b, 0x94, 0x2c, 0xec, 0xb3, 0xcc, 0x1a, 0x2c, 0xbb, 0x8f, 0xda, 0xf0, 0x51, 0xfb, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0xaf, 0x33, 0x72, 0xd9, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0x9b, 0x30, 0x37, 0x78, 0x11, 0xc1, 0x63, 0x6b, 0xf8, 0x73, 0x69, 0xe0, 0xe9, 0xde, 0x83, 0x17, 0x11, 0x3c, 0xae, 0xe1, 0xcf, 0xa5, 0x0d, 0x8a, 0x48, 0x82, 0x83, 0xf3, 0x1d, 0xe1, 0x1a, 0xfe, 0x5c, 0x1a, 0xc0, 0xe3, 0x2c, 0x6c, 0xae, 0x05, 0x4e, 0x2e, 0x6d, 0xac, 0x3c, 0x38, 0xdf, 0x11, 0xae, 0xe1, 0xcf, 0xa5, 0x0d, 0x4e, 0xb4, 0x1e, 0x07, 0xe7, 0x3b, 0xc2, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0x41, 0x9e, 0xed, 0xe0, 0xa4, 0x27, 0xda, 0x6a, 0x90, 0xb4, 0x20, 0xbc, 0xe1, 0xa3, 0xf6, 0x0d, 0x82, 0xf6, 0x67, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x87, 0x90, 0x6c, 0x1e, 0xc4, 0x8b, 0x2b, 0xda, 0x1a, 0x3e, 0x57, 0x5a, 0x43, 0x06, 0x7c, 0xc3, 0xcb, 0x77, 0x07, 0xaf, 0xb9, 0xcd, 0x5b, 0xc3, 0x9f, 0x4b, 0x83, 0xb3, 0x1b, 0x04, 0x9b, 0xe9, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x0b, 0xf8, 0xcb, 0xc2, 0xe4, 0xd8, 0xd2, 0xca, 0xe6, 0xe8, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x17, 0xf0, 0xb1, 0x85, 0xd1, 0x95, 0xcd, 0xd1, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0x2e, 0xe0, 0x85, 0x2b, 0x73, 0x23, 0x4b, 0x73, 0x3b, 0xab, 0x59, 0x83, 0xa7, 0x65, 0x60, 0x6d, 0xf8, 0xa8, 0x7d, 0x83, 0xa0, 0xfd, 0x59, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0x2e, 0xc0, 0xb7, 0x8c, 0x0e, 0xad, 0xc5, 0xad, 0xec, 0xae, 0xc5, 0x2c, 0x8d, 0x8d, 0xae, 0x4c, 0x5e, 0xc3, 0x9f, 0x4b, 0x1b, 0x34, 0xa0, 0x42, 0x75, 0x50, 0x66, 0xe9, 0xb6, 0x86, 0xcf, 0x95, 0xd6, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0x5d, 0x00, 0x2f, 0x65, 0x74, 0x68, 0x2d, 0x67, 0x65, 0x74, 0x2d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2d, 0x6c, 0x6f, 0x67, 0xf3, 0x1a, 0xfe, 0x5c, 0xda, 0x60, 0x79, 0x64, 0xec, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0x48, 0x99, 0xac, 0xe1, 0xdf, 0xf9, 0x05, 0xf0, 0x28, 0xb3, 0x2b, 0x73, 0xa3, 0x6b, 0x61, 0x7b, 0x3b, 0xab, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x0b, 0xf0, 0x2b, 0xa3, 0x43, 0x6b, 0x39, 0x2b, 0xa3, 0x6b, 0x61, 0x7b, 0x3b, 0x9b, 0x0f, 0xe2, 0x95, 0x31, 0x6d, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x00, 0x7e, 0xca, 0xe8, 0xd0, 0x5a, 0xce, 0xca, 0xe8, 0x5a, 0xd8, 0xde, 0xce, 0xe6, 0x5a, 0xc4, 0xf2, 0x5a, 0xd0, 0xc2, 0xe6, 0xd0, 0x83, 0x78, 0x65, 0x4c, 0x5b, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0x2e, 0x80, 0xaf, 0x32, 0x3a, 0xb4, 0x96, 0xb3, 0x37, 0xba, 0x16, 0xb3, 0x34, 0x36, 0xba, 0x32, 0xb9, 0x96, 0x31, 0xb4, 0x30, 0xb7, 0xb3, 0xb2, 0xf9, 0x20, 0x5e, 0x19, 0xd3, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x0b, 0xe0, 0xa7, 0x8c, 0x0e, 0xad, 0x85, 0x4e, 0x2e, 0xcc, 0x6d, 0x2e, 0x6c, 0x8c, 0x2e, 0xed, 0xcd, 0xad, 0x05, 0x2d, 0x6c, 0x0e, 0x5d, 0xc3, 0x9f, 0x4b, 0x1b, 0x9c, 0x79, 0xf0, 0x0e, 0x8e, 0x2d, 0xa5, 0x75, 0x38, 0xc5, 0x16, 0x80, 0x0f, 0x3a, 0xb9, 0x30, 0xb7, 0xb9, 0xb0, 0x31, 0xba, 0xb4, 0x37, 0xb7, 0x16, 0xb9, 0xb2, 0xb9, 0x3a, 0x36, 0x7a, 0xc3, 0x47, 0xed, 0x1b, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x03, 0xf8, 0x88, 0xb1, 0xbd, 0x8d, 0xad, 0xb5, 0xa0, 0x85, 0xcd, 0xa1, 0x07, 0xcb, 0xd5, 0x52, 0xd7, 0xf0, 0xe7, 0xd2, 0x00, 0x7e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2d, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0xf2, 0xc1, 0xf9, 0x8e, 0x70, 0x0d, 0x7f, 0x2e, 0x0d, 0xc0, 0x03, 0x9d, 0x5c, 0x98, 0xdb, 0x5c, 0xd8, 0x18, 0x5d, 0xda, 0x9b, 0x5b, 0x4b, 0x9a, 0x1b, 0x59, 0x19, 0x7e, 0x70, 0xbe, 0x23, 0x5c, 0xc3, 0x9f, 0x4b, 0x1b, 0xbc, 0xce, 0xc8, 0xe5, 0xe0, 0xd8, 0x52, 0xba, 0x86, 0x3f, 0x97, 0x06, 0x9e, 0xee, 0x3d, 0x58, 0xae, 0x96, 0xba, 0x86, 0x3f, 0x97, 0x36, 0x78, 0xf1, 0x89, 0xe5, 0xc1, 0x79, 0x76, 0xb4, 0x59, 0x00, 0x2f, 0x3a, 0xb9, 0x30, 0xb7, 0xb9, 0xb0, 0x31, 0xba, 0xb4, 0x37, 0x77, 0xc3, 0x47, 0xed, 0x1b, 0xbe, 0x6f, 0xdf, 0x20, 0xa2, 0x40, 0xd3, 0x36, 0x7c, 0xae, 0xb4, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x4a, 0xbd, 0xe2, 0x41, 0x99, 0xa5, 0xbb, 0x86, 0x3f, 0x97, 0x36, 0x88, 0x6e, 0xbf, 0xb4, 0x83, 0x32, 0x4b, 0x77, 0x0d, 0x7f, 0x2e, 0x6d, 0x50, 0x44, 0x12, 0x1c, 0x94, 0x59, 0xba, 0x1b, 0xc4, 0x4d, 0x5f, 0xda, 0x1a, 0xfe, 0x5c, 0xda, 0xe0, 0x44, 0xeb, 0x71, 0x50, 0x66, 0xe9, 0xae, 0xe1, 0xcf, 0xa5, 0x0d, 0x0e, 0xf2, 0x6c, 0x07, 0xc7, 0x96, 0xd2, 0x35, 0xfc, 0xb9, 0x34, 0xc0, 0x3f, 0x86, 0x16, 0x96, 0xe6, 0xd6, 0x92, 0x46, 0x1e, 0x1c, 0x5b, 0x4a, 0x5b, 0x01, 0x3c, 0xc6, 0xc2, 0xd8, 0xd8, 0x5a, 0xc8, 0xc2, 0xe8, 0xc2, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x6d, 0x10, 0x14, 0x58, 0x07, 0xe7, 0xd9, 0xd1, 0x35, 0xfc, 0xb9, 0x34, 0x80, 0x47, 0x98, 0xdc, 0x59, 0x5d, 0x5b, 0x99, 0x1b, 0xdd, 0x7c, 0x10, 0xf7, 0xa4, 0x68, 0xad, 0x00, 0x3c, 0xd0, 0xe5, 0xc1, 0x95, 0x91, 0xb5, 0xd0, 0xc9, 0x85, 0xb9, 0xcd, 0x85, 0x8d, 0xd1, 0xa5, 0xbd, 0xb9, 0x1b, 0x3e, 0x6a, 0xdf, 0xf0, 0x7d, 0xfb, 0x06, 0x31, 0xa3, 0x9a, 0xb6, 0x41, 0xd0, 0xfe, 0xac, 0xe1, 0x73, 0xa5, 0x35, 0x64, 0xc0, 0x0f, 0x56, 0xb5, 0xa1, 0xae, 0xe1, 0xdf, 0xf9, 0x35, 0x88, 0x28, 0xd0, 0xb4, 0x6a, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0x7e, 0x10, 0x09, 0x56, 0x53, 0x6b, 0xf8, 0x77, 0x7e, 0x01, 0xf4, 0xe9, 0xe4, 0xc2, 0xdc, 0xe6, 0xc2, 0xc6, 0xe8, 0xd2, 0xde, 0xdc, 0x5a, 0x62, 0x6a, 0x6a, 0x72, 0xd5, 0x2c, 0x00, 0x1f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2d, 0x72, 0x65, 0x61, 0x64, 0x2d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0xf4, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xae, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x3e, 0x8d, 0x3c, 0x78, 0x36, 0x7a, 0xcc, 0x06, 0x71, 0xd3, 0x97, 0xb6, 0x86, 0x7f, 0xe7, 0xd7, 0x20, 0x4a, 0x4e, 0xd3, 0xaa, 0xc3, 0x29, 0xb6, 0x06, 0xaf, 0x64, 0xeb, 0xd9, 0xf0, 0x51, 0xfb, 0x06, 0x41, 0xfb, 0xb3, 0x86, 0xcf, 0x95, 0xd6, 0x90, 0x01, 0xdf, 0xf0, 0xf2, 0x5d, 0x80, 0x7f, 0x19, 0x1d, 0x5a, 0x8b, 0x18, 0xdb, 0xdb, 0xd8, 0x5a, 0x8b, 0x5b, 0x5d, 0x9b, 0x58, 0x99, 0x7c, 0x70, 0x5c, 0x3c, 0x59, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0x2e, 0xe0, 0x2f, 0xa3, 0x43, 0x6b, 0x19, 0x0b, 0x63, 0x63, 0xd7, 0xf0, 0xe7, 0xd2, 0x80, 0x37, 0x16, 0xc6, 0x6e, 0xf8, 0x77, 0x7e, 0x83, 0xc7, 0x9d, 0xa5, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb2, 0x32, 0xf1, 0x60, 0xc5, 0x51, 0x77, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0xb8, 0x44, 0x4c, 0x5b, 0xc3, 0x9f, 0x4b, 0x03, 0x9e, 0x99, 0xdc, 0xbb, 0x41, 0xe8, 0x97, 0x6c, 0x50, 0x36, 0x61, 0x1e, 0xac, 0x37, 0xea, 0x5e, 0xc3, 0x9f, 0x4b, 0x03, 0x1e, 0xdd, 0x9b, 0x78, 0x10, 0x0b, 0xba, 0x69, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x0b, 0x23, 0x93, 0x37, 0x08, 0xfd, 0x92, 0x0d, 0x42, 0xca, 0xe4, 0x20, 0xca, 0xf9, 0xd2, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0xe5, 0xe5, 0xe5, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0x48, 0x99, 0xac, 0x41, 0xb0, 0x99, 0x6e, 0x70, 0x6c, 0x29, 0xdd, 0xe0, 0xe0, 0x51, 0x5a, 0xad, 0xe1, 0x73, 0xa5, 0x35, 0x64, 0xc0, 0x37, 0xbc, 0x7c, 0x17, 0xc0, 0x5b, 0x19, 0x1d, 0x5a, 0xcb, 0x59, 0x19, 0x5d, 0x8b, 0x18, 0xdb, 0xdb, 0xd8, 0x5a, 0x8b, 0x58, 0x5e, 0x8b, 0x5b, 0x5d, 0x9b, 0x58, 0x99, 0xbc, 0x86, 0x3f, 0x97, 0x36, 0x58, 0x54, 0x93, 0x7e, 0x50, 0x66, 0xe9, 0xae, 0xe1, 0xcf, 0xa5, 0x01, 0x8f, 0x0e, 0x6f, 0x3e, 0x7c, 0xb0, 0xda, 0x1a, 0x3e, 0x57, 0xda, 0x20, 0xf2, 0x15, 0xd3, 0x0e, 0x22, 0x3f, 0x31, 0x6d, 0x0d, 0x9f, 0x2b, 0x6d, 0x10, 0xe3, 0x8e, 0x69, 0x07, 0x91, 0x98, 0x9b, 0xb6, 0x86, 0xcf, 0x95, 0x36, 0x88, 0x55, 0xc8, 0xb4, 0x0d, 0xa2, 0xa0, 0x0f, 0xeb, 0x20, 0x26, 0x77, 0xd3, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x0b, 0xe0, 0xab, 0x8c, 0x0e, 0xad, 0xe5, 0xac, 0x8c, 0xae, 0xc5, 0x2c, 0x8d, 0x8d, 0xae, 0x4c, 0xae, 0x65, 0x0c, 0x2d, 0xcc, 0xed, 0xac, 0x6c, 0x3e, 0x88, 0xfc, 0xc4, 0xb4, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x02, 0x78, 0x2d, 0xa3, 0x43, 0x6b, 0x39, 0x2b, 0xa3, 0x6b, 0xa1, 0x93, 0x0b, 0x73, 0x9b, 0x0b, 0x1b, 0xa3, 0x4b, 0x7b, 0x73, 0x6b, 0x11, 0xcb, 0x6b, 0x41, 0x0b, 0x9b, 0x43, 0xd7, 0xf0, 0xe7, 0xd2, 0x80, 0x47, 0x87, 0x87, 0x1e, 0x1c, 0x5b, 0x4a, 0x5b, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0x2e, 0x80, 0xc7, 0x32, 0x3a, 0xb4, 0x96, 0xb3, 0x32, 0xba, 0x16, 0x3a, 0xb9, 0x30, 0xb7, 0xb9, 0xb0, 0x31, 0xba, 0xb4, 0x37, 0xb7, 0x96, 0xb1, 0xb7, 0x3a, 0x37, 0x7a, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x61, 0x64, 0xf2, 0xc1, 0x8b, 0x08, 0x1e, 0xd7, 0xf0, 0xe7, 0xd2, 0x06, 0x49, 0x0b, 0xc2, 0x07, 0x2b, 0x8e, 0xba, 0x5b, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0x2e, 0xc0, 0xbb, 0x8c, 0x0e, 0xad, 0xe5, 0xac, 0x8c, 0xae, 0x45, 0x2c, 0x8c, 0x2d, 0xcc, 0x6d, 0xac, 0x3c, 0x88, 0x76, 0xe6, 0xb4, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x02, 0x78, 0x2d, 0xa3, 0x43, 0x6b, 0x39, 0x2b, 0xa3, 0x6b, 0xa1, 0x93, 0x0b, 0x73, 0x9b, 0x0b, 0x1b, 0xa3, 0x4b, 0x7b, 0x73, 0x6b, 0x91, 0x2b, 0x1b, 0x2b, 0x4b, 0x83, 0xa3, 0x0f, 0xa2, 0x3a, 0x39, 0x6d, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x00, 0xfe, 0xca, 0xe8, 0xd0, 0x5a, 0xe6, 0xca, 0xdc, 0xc8, 0x5a, 0xe4, 0xc2, 0xee, 0x5a, 0xe8, 0xe4, 0xc2, 0xdc, 0xe6, 0xc2, 0xc6, 0xe8, 0xd2, 0xde, 0xdc, 0x35, 0xfc, 0xb9, 0xb4, 0x41, 0x51, 0x5b, 0x7c, 0x70, 0x6c, 0x29, 0xad, 0x59, 0x83, 0xa8, 0x74, 0x4d, 0xdb, 0xf0, 0x51, 0xfb, 0x86, 0xef, 0xdb, 0x37, 0x88, 0x4a, 0xd7, 0xb4, 0x0d, 0x9f, 0x2b, 0x6d, 0x10, 0x05, 0xa6, 0x69, 0x1b, 0xc4, 0x83, 0x68, 0xda, 0x1a, 0xfe, 0x5c, 0x1a, 0x80, 0x9f, 0xb6, 0x30, 0xbc, 0x16, 0x38, 0xb9, 0xb4, 0x37, 0xb9, 0x34, 0xba, 0xbc, 0x96, 0xb3, 0xb0, 0xb9, 0x16, 0xb3, 0xb2, 0xf2, 0xa0, 0xcc, 0xd2, 0x5d, 0xc3, 0x9f, 0x4b, 0x03, 0x78, 0xb5, 0x85, 0xe1, 0xb5, 0x9c, 0x85, 0xcd, 0xb5, 0x98, 0x95, 0x95, 0x07, 0x65, 0x96, 0xee, 0x06, 0x11, 0x39, 0x9a, 0xb6, 0x41, 0xdc, 0xf4, 0xa5, 0x6d, 0x10, 0x93, 0xa4, 0x69, 0x1b, 0xc4, 0x52, 0x69, 0xda, 0x1a, 0xfe, 0x5c, 0x1a, 0xc0, 0x2b, 0x6c, 0x6c, 0xac, 0x6c, 0x6e, 0xae, 0x85, 0x2d, 0x6d, 0x8e, 0xde, 0x20, 0xf4, 0x4b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x07, 0x4e, 0x8f, 0x36, 0x78, 0x11, 0xc1, 0xe3, 0xc1, 0xa1, 0xa5, 0xb4, 0xc3, 0x29, 0xb6, 0x06, 0x91, 0xde, 0x98, 0xb6, 0xe1, 0xa3, 0xf6, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0x01, 0x9e, 0xb6, 0x34, 0xb7, 0x32, 0x72, 0x83, 0xd0, 0x2f, 0xd9, 0xa0, 0x6c, 0xc2, 0x5c, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x17, 0x9f, 0x58, 0x1e, 0x2c, 0x57, 0x4b, 0x5d, 0xc3, 0x9f, 0x4b, 0x03, 0x78, 0xb0, 0xbd, 0x9d, 0xb5, 0xa4, 0xb9, 0x91, 0x95, 0xe1, 0x07, 0x65, 0x96, 0xee, 0x1a, 0xfe, 0x5c, 0xda, 0x20, 0x36, 0x39, 0xd3, 0x0e, 0xca, 0x2c, 0xdd, 0x35, 0xfc, 0xb9, 0x34, 0x80, 0x3f, 0x9d, 0x5c, 0x98, 0xdb, 0x5c, 0xd8, 0x18, 0x5d, 0xda, 0x9b, 0x5b, 0x0b, 0x5a, 0xd8, 0x1c, 0x7a, 0x70, 0x6c, 0x29, 0x5d, 0xc3, 0x9f, 0x4b, 0x1b, 0xc4, 0xd0, 0x66, 0xda, 0x41, 0x99, 0xa5, 0xbb, 0x86, 0x3f, 0x97, 0x36, 0x88, 0x03, 0xcd, 0xb4, 0x83, 0x63, 0x4b, 0xe9, 0x1a, 0xfe, 0x5c, 0x1a, 0xe0, 0x95, 0x2b, 0x6b, 0x7b, 0xb3, 0x2b, 0x23, 0x0f, 0x1f, 0xac, 0xd6, 0x1a, 0xfe, 0x5c, 0xda, 0xe0, 0x3d, 0x92, 0x89, 0x07, 0xc7, 0x96, 0xd2, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0x41, 0x9e, 0xed, 0xe0, 0x3c, 0x3b, 0xba, 0x86, 0x27, 0xde, 0xd7, 0x70, 0xa7, 0xcd, 0x00, 0xe8, 0xb7, 0xc2, 0x56, 0x36, 0x47, 0x07, 0x92, 0xe6, 0x36, 0x47, 0x57, 0x16, 0x46, 0x06, 0xf2, 0x66, 0x06, 0xb2, 0xc2, 0x96, 0x36, 0x47, 0x07, 0x32, 0x17, 0x66, 0x57, 0x36, 0x07, 0x12, 0x06, 0xc2, 0xf6, 0x46, 0x07, 0xf2, 0x66, 0x06, 0xf2, 0xe3, 0x07, 0x32, 0x86, 0x56, 0x36, 0xb6, 0x36, 0xe7, 0xda, 0xf0, 0xe7, 0xd2, 0x00, 0x1f, 0xdd, 0x1b, 0x5c, 0xda, 0xd8, 0xbc, 0x41, 0xe8, 0x97, 0x6c, 0xb0, 0x6e, 0x09, 0xfa, 0xe0, 0xd0, 0x52, 0xda, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x1b, 0x94, 0x2c, 0xec, 0xb3, 0xcc, 0x02, 0x78, 0x95, 0xb9, 0x8d, 0xbd, 0x91, 0x95, 0xb5, 0x8c, 0x85, 0xb1, 0xb1, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0xfe, 0x64, 0xd3, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0x49, 0x4f, 0x74, 0x83, 0xa3, 0x0d, 0xdf, 0x1a, 0x24, 0x19, 0x10, 0x6e, 0x70, 0x22, 0x68, 0x5b, 0xc3, 0xb3, 0x78, 0x83, 0xc2, 0x83, 0x14, 0x4c, 0xa7, 0x0d, 0xcf, 0x4c, 0xae, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x94, 0x96, 0xa5, 0xb5, 0x86, 0xb7, 0x75, 0x36, 0x88, 0x97, 0xd4, 0xb4, 0x6a, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x83, 0x85, 0xe0, 0x06, 0x87, 0x95, 0xb9, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0xe2, 0x16, 0x0d, 0x6d, 0x83, 0xd4, 0xd3, 0xd8, 0x0d, 0x4e, 0xec, 0x37, 0x1b, 0xc4, 0xa4, 0x1a, 0xda, 0x86, 0x77, 0x7b, 0x36, 0x88, 0xa9, 0xcb, 0xab, 0x0d, 0x1a, 0x76, 0xa4, 0x6e, 0x05, 0xf0, 0x86, 0x0b, 0x93, 0x9b, 0x2b, 0x6b, 0x29, 0xb3, 0x2b, 0x73, 0xa3, 0x6b, 0x61, 0x7b, 0x3b, 0x37, 0x58, 0x85, 0xe5, 0xb4, 0x41, 0xd4, 0xc9, 0x3c, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x6d, 0xb0, 0x6c, 0x5f, 0xf0, 0xe0, 0x05, 0xff, 0x9a, 0x1b, 0xfe, 0xa2, 0xd9, 0x20, 0x56, 0x1b, 0xd3, 0x36, 0x38, 0xda, 0xf0, 0xad, 0xe1, 0xdd, 0x9e, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x1c, 0x23, 0x7d, 0x1d, 0xa4, 0x02, 0x8d, 0x1d, 0x34, 0x6c, 0x8a, 0xb5, 0xc1, 0xd1, 0x75, 0x70, 0x0d, 0x8e, 0x36, 0x7c, 0x6b, 0xf8, 0xc5, 0x65, 0x35, 0xfc, 0x08, 0x33, 0x38, 0x1d, 0xf0, 0xb3, 0xbd, 0x9d, 0x25, 0xb9, 0x91, 0x95, 0xe1, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0x7e, 0x2b, 0xbf, 0x36, 0x3c, 0x33, 0xb9, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0xc0, 0xb7, 0xd5, 0x6d, 0xb0, 0x18, 0xfe, 0xbc, 0xda, 0xf0, 0x8b, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0x78, 0xb6, 0xf4, 0xe0, 0xd9, 0xe8, 0x31, 0x1b, 0x94, 0xf0, 0x98, 0x0b, 0x3c, 0x5b, 0xda, 0x06, 0x05, 0x45, 0xe6, 0x06, 0x47, 0x1b, 0xbe, 0x35, 0x38, 0x86, 0x1b, 0x6c, 0x70, 0x0c, 0x37, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0xff, 0x56, 0x77, 0x90, 0x0a, 0x34, 0x76, 0xd0, 0xb0, 0x29, 0xd6, 0x06, 0x47, 0xd7, 0xc1, 0x35, 0x88, 0x12, 0xfe, 0xb4, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x83, 0x56, 0xd5, 0xc4, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xf1, 0x5b, 0xf9, 0xb5, 0x86, 0xb7, 0x75, 0x36, 0x88, 0x21, 0xb5, 0xb4, 0x0e, 0xe2, 0xce, 0x3f, 0xad, 0xd5, 0xf0, 0x23, 0xcc, 0xe0, 0x74, 0x80, 0x3f, 0x9d, 0x5c, 0x98, 0xdb, 0x5c, 0xd8, 0x18, 0x5d, 0xda, 0x9b, 0x5b, 0x92, 0x1b, 0x59, 0x19, 0x7e, 0x10, 0x31, 0x03, 0x6a, 0xab, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0x00, 0x6f, 0x3a, 0xb9, 0x30, 0xb7, 0xb9, 0xb0, 0x31, 0xba, 0xb4, 0x37, 0x37, 0xa4, 0xb0, 0x39, 0xf4, 0x20, 0x62, 0x06, 0xd4, 0x56, 0xc3, 0x8f, 0x30, 0x83, 0xd3, 0x01, 0x5e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0xf2, 0x41, 0xc4, 0x0c, 0xa8, 0xad, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x03, 0x3c, 0xc4, 0xd8, 0xde, 0xc6, 0xd6, 0x90, 0xc2, 0xe6, 0xd0, 0x83, 0x88, 0x19, 0x50, 0x5b, 0x0d, 0x3f, 0xc2, 0x0c, 0x4e, 0x1f, 0x44, 0xbf, 0x79, 0xda, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0xc0, 0xd7, 0x99, 0x6d, 0x50, 0xc0, 0xe6, 0xaf, 0xe1, 0x6d, 0x9d, 0x81, 0x17, 0x7b, 0xab, 0xd5, 0xf0, 0xc6, 0xdd, 0x41, 0x34, 0x68, 0xa2, 0x1d, 0x44, 0xfa, 0x80, 0xda, 0x1a, 0xbc, 0xaa, 0xee, 0xfa, 0x60, 0x31, 0xfc, 0xf9, 0x1a, 0x1c, 0x6d, 0xf8, 0x56, 0xc3, 0x1b, 0x77, 0x1b, 0x5e, 0xbe, 0x3b, 0x88, 0x89, 0xf6, 0xb4, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0xbf, 0x95, 0x5f, 0x1b, 0x9e, 0x99, 0x5c, 0xc3, 0xbb, 0x3d, 0x1b, 0xb4, 0x1f, 0x25, 0x75, 0x10, 0x77, 0xfe, 0x69, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x2e, 0x1f, 0xc4, 0x95, 0xf9, 0xd3, 0x86, 0xbf, 0x68, 0x36, 0x88, 0xc5, 0xf6, 0xb4, 0x0d, 0x0a, 0x3e, 0xcc, 0x35, 0x28, 0x26, 0x31, 0xd7, 0xf0, 0xb9, 0xd2, 0x06, 0xe7, 0xd9, 0xd1, 0x83, 0x43, 0x4c, 0xc7, 0x41, 0xc1, 0xb3, 0xb9, 0x41, 0x61, 0xa8, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x88, 0x37, 0x02, 0xb5, 0x35, 0xbc, 0xad, 0x33, 0x78, 0x7a, 0x50, 0xf0, 0x6c, 0xb6, 0xe1, 0xdd, 0x9e, 0x0d, 0x4a, 0xa4, 0xea, 0x35, 0xbc, 0xad, 0x33, 0x38, 0x7d, 0x50, 0xf0, 0x6c, 0x6e, 0x10, 0x6f, 0x04, 0x6a, 0xb5, 0x02, 0xf0, 0x07, 0x17, 0x26, 0x37, 0x57, 0xd6, 0x42, 0x27, 0x17, 0xe6, 0x36, 0x17, 0x36, 0x46, 0x97, 0xf6, 0xe6, 0xd6, 0x22, 0x57, 0x36, 0x57, 0xc7, 0x46, 0x6f, 0xb0, 0x0a, 0xcb, 0x69, 0x83, 0xa8, 0x93, 0x79, 0xda, 0xf0, 0x8b, 0xd2, 0x06, 0xb1, 0xe3, 0xf3, 0xb5, 0xc1, 0x92, 0xfa, 0xa5, 0x35, 0x7c, 0xee, 0xb2, 0x41, 0xb3, 0xda, 0x63, 0x07, 0x91, 0xa1, 0xf8, 0xb5, 0xe1, 0x2f, 0x9a, 0x35, 0xfc, 0x3b, 0xbf, 0x06, 0xd1, 0x81, 0x99, 0x56, 0x1b, 0x1c, 0x6d, 0xf8, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x51, 0xa5, 0x9f, 0x76, 0x10, 0x15, 0x8a, 0x5f, 0x1b, 0x1c, 0x5d, 0x07, 0xd7, 0x20, 0x5e, 0x14, 0xd4, 0x36, 0x7c, 0xd4, 0xbe, 0x41, 0x00, 0x9d, 0x1d, 0x14, 0x14, 0x99, 0x6b, 0x10, 0xbd, 0x08, 0x6a, 0x1b, 0xde, 0xd6, 0x19, 0xc0, 0xa3, 0x2d, 0x2c, 0x4f, 0xac, 0xac, 0xc5, 0xad, 0xae, 0x6d, 0x0d, 0x22, 0xa9, 0x40, 0xed, 0x20, 0x66, 0x3c, 0xd4, 0x56, 0xc3, 0x1b, 0x77, 0x1b, 0x5e, 0xbe, 0x3b, 0x78, 0x9d, 0x91, 0xcb, 0x41, 0xa4, 0x0f, 0xa8, 0xad, 0x86, 0x37, 0xee, 0x36, 0xbc, 0x7c, 0x17, 0x3c, 0xdd, 0x7b, 0x10, 0x33, 0x1e, 0x6a, 0x6b, 0x10, 0xc9, 0x6c, 0x67, 0x07, 0x8b, 0xe1, 0xcf, 0x5b, 0x01, 0xf8, 0x60, 0x4b, 0x3b, 0x43, 0xa3, 0x6b, 0x51, 0x9b, 0x7b, 0x73, 0x6b, 0x91, 0x2b, 0x8b, 0xab, 0x2b, 0x9b, 0xa3, 0x37, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x35, 0x28, 0x35, 0x2d, 0x0f, 0xa2, 0x48, 0x44, 0xad, 0x01, 0x78, 0x66, 0x4b, 0x5b, 0x2b, 0x03, 0x51, 0x9b, 0x7b, 0x73, 0x6b, 0x91, 0x2b, 0x8b, 0xab, 0x2b, 0x9b, 0xa3, 0x63, 0x01, 0x11, 0xab, 0xa3, 0x03, 0x31, 0x7b, 0x93, 0x03, 0x29, 0x61, 0x57, 0x02, 0xa0, 0x07, 0xaa, 0x27, 0xa2, 0x27, 0x1d, 0x90, 0x22, 0xbc, 0x37, 0xb9, 0xb1, 0xb4, 0xb9, 0x34, 0xb7, 0x33, 0x90, 0x15, 0xb8, 0x3a, 0x39, 0x36, 0x10, 0x33, 0xb9, 0xb7, 0x36, 0x90, 0xb7, 0x3a, 0x39, 0x90, 0xb9, 0xbc, 0x39, 0xba, 0xb2, 0x36, 0x90, 0xb4, 0x39, 0x90, 0x30, 0x90, 0xb6, 0xba, 0x31, 0x34, 0x10, 0xb6, 0x37, 0xb7, 0xb3, 0x32, 0x39, 0x10, 0xba, 0x32, 0xb9, 0x36, 0x90, 0x32, 0x33, 0xb3, 0x37, 0x39, 0xba, 0xbd, 0x04, 0xa0, 0xc9, 0x59, 0x19, 0x1d, 0x08, 0x1d, 0x5a, 0x19, 0xc8, 0x58, 0x9d, 0x9c, 0x5c, 0x99, 0x1b, 0x1d, 0xc8, 0x5b, 0x1d, 0x1d, 0x5c, 0x1d, 0x1d, 0x08, 0x5d, 0x1e, 0x5c, 0xd9, 0x1c, 0x88, 0xd9, 0x9b, 0x1c, 0x88, 0xdb, 0xdb, 0x9d, 0xab, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0xd5, 0xc9, 0xb1, 0x07, 0x8f, 0x5b, 0x05, 0xdd, 0x20, 0x76, 0x7c, 0xbe, 0xda, 0xf0, 0x17, 0xcd, 0x06, 0xcf, 0x28, 0x44, 0xdc, 0xf0, 0x8b, 0xcb, 0x06, 0x51, 0xd7, 0x73, 0xb6, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x8e, 0x2c, 0xbc, 0x86, 0x77, 0x7b, 0x36, 0x88, 0x23, 0xa0, 0xb3, 0x0d, 0x22, 0xa7, 0x8f, 0xac, 0xd6, 0xe0, 0xe8, 0x3a, 0xb8, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x23, 0xcc, 0xe0, 0x74, 0x80, 0xdf, 0xd8, 0x9b, 0x1b, 0x5d, 0x99, 0x1b, 0x5d, 0x0b, 0x5d, 0x1e, 0x5c, 0xb9, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x03, 0xfc, 0xc3, 0xe0, 0xe0, 0xd8, 0xd2, 0xc6, 0xc2, 0xe8, 0xd2, 0xde, 0xdc, 0x5e, 0xd4, 0xe6, 0xde, 0xdc, 0x5a, 0xc3, 0xbb, 0x3d, 0x1b, 0x9c, 0xa5, 0xc0, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xd1, 0x78, 0x79, 0xb5, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xa0, 0xe4, 0x06, 0xcf, 0x50, 0x0f, 0xde, 0xf0, 0xa0, 0xe4, 0x1a, 0xde, 0xd6, 0x39, 0x78, 0xde, 0xbf, 0xe6, 0x41, 0x4c, 0x63, 0x5e, 0x1d, 0x44, 0x85, 0xe2, 0x57, 0xb5, 0x02, 0xf8, 0xc3, 0x85, 0xc9, 0xcd, 0x95, 0xb5, 0x94, 0xd9, 0x95, 0xb9, 0xd1, 0xb5, 0xb0, 0xbd, 0x9d, 0xcd, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0x83, 0x92, 0x1b, 0xb4, 0x1f, 0x25, 0x75, 0x10, 0x75, 0x32, 0x4f, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xc8, 0xb5, 0x4f, 0xab, 0xd5, 0x20, 0xda, 0x3c, 0xd4, 0x36, 0x58, 0x85, 0xe5, 0xb4, 0x41, 0xd4, 0xc9, 0x3c, 0x6d, 0x70, 0xb4, 0xe1, 0xdb, 0x20, 0x26, 0xfa, 0xd3, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x97, 0x0f, 0x9e, 0x8d, 0x1e, 0xb3, 0x41, 0x09, 0x8f, 0xb9, 0x41, 0xc1, 0xb3, 0xb9, 0x41, 0x41, 0x91, 0xb9, 0xc1, 0x31, 0xdc, 0x60, 0xc3, 0xbb, 0x3d, 0x1b, 0xc4, 0x1b, 0x81, 0xda, 0x06, 0x67, 0x05, 0xa1, 0x0e, 0xa7, 0x58, 0x0b, 0xe0, 0x2d, 0x57, 0x16, 0x57, 0x57, 0x36, 0x47, 0xd7, 0x42, 0xf7, 0xd6, 0xa2, 0x36, 0xf7, 0xe6, 0x6e, 0xb0, 0x0a, 0xcb, 0x69, 0x0d, 0x0f, 0x4a, 0xae, 0xe1, 0x6d, 0x9d, 0x0d, 0xa2, 0xe8, 0x03, 0xac, 0x83, 0xd8, 0x68, 0x5e, 0xda, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x03, 0x9e, 0x5c, 0x5a, 0x7c, 0xf0, 0x6c, 0xf4, 0x98, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0xc9, 0x95, 0xc5, 0x1b, 0xfe, 0x9d, 0xdf, 0xe0, 0x8d, 0x85, 0x88, 0xb5, 0xe1, 0x2f, 0x9a, 0x0d, 0x5e, 0xf0, 0xaf, 0xb9, 0xc1, 0x89, 0xfd, 0x66, 0x83, 0xe7, 0x4e, 0xd0, 0x6d, 0xb0, 0x00, 0xb3, 0x69, 0x0d, 0xdf, 0xb7, 0x0f, 0x2e, 0x6f, 0x50, 0x42, 0xc7, 0xae, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0x60, 0xea, 0x38, 0x38, 0xcf, 0x8e, 0xae, 0xe1, 0xcf, 0xa5, 0x01, 0x0f, 0x2e, 0x6c, 0x3e, 0x88, 0x6f, 0xed, 0xaf, 0x0e, 0xc2, 0x74, 0x6c, 0x0d, 0xbf, 0xb8, 0xac, 0x86, 0x37, 0xee, 0x36, 0xbc, 0x7c, 0x17, 0xf0, 0xaa, 0xcd, 0xbd, 0xb9, 0xc9, 0xc1, 0x8d, 0x1b, 0x2c, 0xfd, 0x7a, 0xdd, 0xf0, 0x23, 0xcc, 0xe0, 0x74, 0xa0, 0xc9, 0xb8, 0xc0, 0xd5, 0xf0, 0xc6, 0xdd, 0x86, 0x97, 0xef, 0x0e, 0x5e, 0xfd, 0x42, 0xb7, 0xc1, 0xd2, 0xaf, 0xd7, 0x0d, 0x6f, 0xeb, 0x6c, 0x30, 0x98, 0x3a, 0x0e, 0x0a, 0x9e, 0xcd, 0xd5, 0xf0, 0xc6, 0xdd, 0x86, 0x97, 0xef, 0x02, 0x3e, 0xb8, 0x30, 0xb9, 0xb0, 0xb6, 0x79, 0x83, 0x24, 0x87, 0xa7, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x70, 0x61, 0xf3, 0x41, 0xc1, 0xb3, 0xb9, 0x06, 0x25, 0x3c, 0xe6, 0x02, 0x9e, 0x5c, 0x5a, 0xdc, 0x06, 0x05, 0x45, 0xe6, 0x06, 0x47, 0xd7, 0xc1, 0x35, 0xfc, 0xe2, 0xb2, 0x06, 0x4d, 0xd7, 0x84, 0x6e, 0xb0, 0xf4, 0xeb, 0x75, 0xc3, 0xdb, 0x3a, 0x83, 0xd7, 0x07, 0x31, 0xd1, 0xa4, 0x56, 0x6d, 0x10, 0xa4, 0xa7, 0x6b, 0x1c, 0x3a, 0x78, 0x12, 0xcc, 0xef, 0x1a, 0x44, 0x0e, 0x6d, 0xda, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x23, 0xcc, 0xe0, 0x74, 0x80, 0x77, 0x19, 0x1d, 0xda, 0x97, 0x18, 0xdb, 0xdb, 0xd8, 0x9a, 0x53, 0x5d, 0x9b, 0x58, 0x99, 0x7c, 0x50, 0xd6, 0x79, 0xae, 0x41, 0xdc, 0xd8, 0xa6, 0x6d, 0x50, 0x18, 0xaa, 0xae, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0x80, 0xbf, 0x8c, 0x0e, 0xed, 0x6b, 0x2c, 0x8c, 0x8d, 0xdd, 0xe0, 0xe8, 0x3a, 0xb8, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x00, 0xfe, 0x65, 0x74, 0x68, 0x2d, 0x63, 0x61, 0x6c, 0x6c, 0x2d, 0x74, 0x6f, 0x2d, 0x6a, 0x73, 0x6f, 0x6e, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0x1b, 0x0b, 0x63, 0x0f, 0x9e, 0x04, 0xf3, 0xdb, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0x78, 0x8a, 0xb1, 0xbd, 0x8d, 0xad, 0xb5, 0xd0, 0xbd, 0xb5, 0xa8, 0xcd, 0xbd, 0xb9, 0xad, 0xe1, 0x6d, 0x9d, 0x01, 0x8f, 0xac, 0x4c, 0x3c, 0x78, 0x12, 0xcc, 0x6f, 0xad, 0x41, 0x5c, 0x22, 0xa6, 0x6d, 0x50, 0x18, 0xaa, 0xae, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0x00, 0xcf, 0x32, 0x3a, 0xb4, 0x2f, 0xb7, 0xb2, 0x3b, 0xa3, 0x34, 0x36, 0xba, 0x32, 0x79, 0x83, 0x25, 0xd5, 0x49, 0x1b, 0x14, 0x14, 0x99, 0x1b, 0x14, 0x86, 0xaa, 0x1b, 0x34, 0x15, 0x07, 0xb6, 0xc1, 0x89, 0xfd, 0x66, 0x83, 0xe8, 0x92, 0x02, 0xdb, 0xe0, 0x68, 0xc3, 0xb7, 0x86, 0x77, 0x7b, 0x36, 0x68, 0xdf, 0xdf, 0x73, 0xc3, 0x33, 0x93, 0x07, 0x8d, 0xb6, 0xb3, 0x6e, 0xf8, 0x8b, 0x66, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0x90, 0x32, 0x59, 0x83, 0xd0, 0x2f, 0xd9, 0xa0, 0x6c, 0xc2, 0x5c, 0x83, 0xd0, 0x2f, 0xd9, 0xa0, 0xf4, 0xa6, 0x3f, 0x88, 0x50, 0xf8, 0xaf, 0xda, 0xe0, 0xe8, 0x3a, 0xb8, 0x06, 0x25, 0x3c, 0xe6, 0x02, 0x9e, 0x99, 0xdc, 0x7b, 0xf0, 0x24, 0x98, 0xdf, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x8e, 0xe1, 0x06, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0x8f, 0x30, 0x83, 0xd3, 0x01, 0x1e, 0x66, 0x72, 0x6f, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0xeb, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x1a, 0xad, 0xd4, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf5, 0x41, 0x0c, 0x7f, 0xa9, 0xd5, 0x1a, 0x94, 0xf0, 0x98, 0x0b, 0x78, 0x74, 0x6f, 0xe2, 0xc1, 0x93, 0x60, 0x7e, 0x37, 0x28, 0x28, 0x32, 0x37, 0x38, 0x86, 0x1b, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0x3f, 0xc2, 0x0c, 0x4e, 0x07, 0xbc, 0x74, 0x6f, 0x42, 0x6c, 0x6f, 0x63, 0xeb, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x1a, 0xad, 0xd4, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf5, 0x41, 0x1c, 0x8e, 0xa9, 0xd5, 0x1a, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x1b, 0x1e, 0xbc, 0xd9, 0xf0, 0x6e, 0xcf, 0x06, 0x0b, 0x3d, 0x27, 0xd7, 0xf0, 0xb6, 0xce, 0x80, 0x17, 0x46, 0x26, 0x1f, 0x3c, 0x09, 0xe6, 0xb7, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0xce, 0xf9, 0x4b, 0x1b, 0x14, 0x14, 0x99, 0x6b, 0xf8, 0x11, 0x66, 0x70, 0xfa, 0xe0, 0x3d, 0x92, 0x89, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x1b, 0x1e, 0x93, 0x39, 0x88, 0xc4, 0x33, 0xb5, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x02, 0xec, 0xf0, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0xc4, 0xc3, 0x1f, 0x5a, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xa2, 0x72, 0x7e, 0xc3, 0x83, 0x37, 0x07, 0x51, 0x80, 0xa6, 0x56, 0x1b, 0x14, 0x86, 0xaa, 0x1b, 0x24, 0x39, 0x3c, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x12, 0xa9, 0x7a, 0x83, 0x48, 0x40, 0x53, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0xa4, 0x0e, 0xc6, 0x6e, 0x10, 0xdd, 0x6b, 0x6a, 0x07, 0x91, 0x83, 0x04, 0xd6, 0x1a, 0x94, 0xf0, 0x98, 0x6b, 0x50, 0x5e, 0x5e, 0x1e, 0x3c, 0x09, 0xe6, 0x77, 0x83, 0x82, 0x22, 0x73, 0x83, 0x73, 0xfe, 0xd2, 0x06, 0x05, 0x45, 0xe6, 0x1a, 0x7e, 0x84, 0x19, 0x9c, 0x3e, 0x88, 0x89, 0xf6, 0xb4, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x01, 0x7c, 0xe9, 0xde, 0xe0, 0xd2, 0xc6, 0xe6, 0x5a, 0xe8, 0xde, 0x5a, 0xd4, 0xe6, 0xde, 0xdc, 0xd6, 0xf0, 0xb6, 0xce, 0x41, 0x1c, 0xc0, 0xa9, 0xd5, 0x1a, 0x44, 0xb5, 0x6f, 0xda, 0x06, 0x85, 0xa1, 0xea, 0x1a, 0x7e, 0x84, 0x19, 0x9c, 0x0e, 0xe0, 0xa7, 0x8c, 0x0e, 0xed, 0xeb, 0xac, 0x8c, 0x4e, 0x88, 0xed, 0x6d, 0x6c, 0x4d, 0x28, 0xcf, 0xa9, 0xae, 0x4d, 0xac, 0x4c, 0xde, 0xe0, 0xe8, 0x3a, 0xb8, 0x86, 0x77, 0x7b, 0x36, 0x48, 0x80, 0x1d, 0x5e, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x5b, 0x67, 0x00, 0x3e, 0xdc, 0xea, 0xda, 0x5a, 0xe8, 0xde, 0x5a, 0xd0, 0xca, 0xf0, 0x5a, 0xda, 0xd2, 0xdc, 0xd2, 0xda, 0xc2, 0xd8, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x8b, 0x6a, 0xd2, 0x0f, 0x9e, 0x04, 0xf3, 0x5b, 0x6b, 0xd0, 0x1c, 0xde, 0xe7, 0x86, 0xb7, 0x75, 0x06, 0x3c, 0x3a, 0xbc, 0xf9, 0xe0, 0x49, 0x30, 0xbf, 0xad, 0x41, 0xe4, 0x2b, 0xa6, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0x3f, 0xc2, 0x0c, 0x4e, 0x07, 0xf0, 0x50, 0x46, 0x87, 0xf6, 0x75, 0x56, 0x46, 0x67, 0x94, 0xc6, 0x46, 0x57, 0x26, 0xc7, 0xf4, 0x76, 0x36, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0x12, 0x60, 0x87, 0xd7, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0x16, 0xe4, 0xd2, 0x5a, 0xc3, 0xdb, 0x3a, 0x1b, 0x34, 0xa0, 0x42, 0x75, 0xf0, 0x24, 0x98, 0xdf, 0x3a, 0x28, 0xeb, 0x3c, 0xd7, 0x20, 0xc6, 0x1d, 0xd3, 0x36, 0x28, 0x0c, 0x55, 0xd7, 0xf0, 0x23, 0xcc, 0xe0, 0x74, 0x80, 0x57, 0x19, 0x1d, 0xda, 0xd7, 0x59, 0x19, 0x1d, 0xd3, 0xdb, 0xd9, 0x7c, 0x10, 0x5d, 0x5a, 0x6a, 0x6b, 0x10, 0xab, 0x90, 0x69, 0x1b, 0x14, 0x86, 0xaa, 0x1b, 0x44, 0xe2, 0x9f, 0xda, 0x06, 0x4b, 0xaa, 0x93, 0x36, 0x28, 0x28, 0x32, 0x37, 0x28, 0x0c, 0x55, 0x37, 0x68, 0x2a, 0x0e, 0x6c, 0x83, 0x13, 0xfb, 0xcd, 0x06, 0xd1, 0x25, 0x05, 0xb6, 0xc1, 0xd1, 0x86, 0x6f, 0x83, 0xf8, 0xe1, 0x52, 0xdb, 0xf0, 0x17, 0xcd, 0x06, 0x11, 0xd7, 0xa5, 0xb6, 0xc1, 0xd1, 0x75, 0x70, 0x0d, 0x8e, 0xe1, 0x06, 0x1b, 0x7e, 0x71, 0xd9, 0x20, 0x5e, 0x14, 0xd4, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x09, 0xb0, 0xc3, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0x10, 0x35, 0x94, 0x68, 0xad, 0xe1, 0x6d, 0x9d, 0x0d, 0x4a, 0xee, 0x86, 0x83, 0x27, 0xc1, 0xfc, 0x56, 0x07, 0xf1, 0x6d, 0xa6, 0xb6, 0x06, 0x31, 0x53, 0x9c, 0xb6, 0xe1, 0x17, 0x97, 0x35, 0xfc, 0x08, 0x33, 0x38, 0x1d, 0xc0, 0x4f, 0x19, 0x1d, 0xda, 0xd7, 0x59, 0x19, 0x9d, 0x51, 0x1a, 0x1b, 0x5d, 0x99, 0xdc, 0x10, 0x5a, 0x98, 0xdb, 0x59, 0xd9, 0x7c, 0x10, 0xa7, 0x7c, 0x6a, 0x6b, 0x10, 0xd7, 0xca, 0x69, 0x1b, 0x14, 0x86, 0xaa, 0x6b, 0xf8, 0x11, 0x66, 0x70, 0x3a, 0x80, 0xb7, 0x32, 0x3a, 0xb4, 0xaf, 0xb3, 0x32, 0x3a, 0x2a, 0xb9, 0x30, 0xb7, 0xb9, 0xb0, 0x31, 0xba, 0xb4, 0x37, 0xb7, 0xa1, 0xb7, 0x3a, 0x37, 0x7a, 0x83, 0xa3, 0xeb, 0xe0, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x01, 0x76, 0x78, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0xdd, 0x6b, 0x6a, 0x07, 0x51, 0x80, 0xa6, 0xd6, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x1a, 0xad, 0xd4, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x49, 0x0b, 0xc2, 0x07, 0x4f, 0x82, 0xf9, 0xad, 0x35, 0x88, 0x5b, 0xe7, 0xb4, 0x0d, 0x0a, 0x43, 0xd5, 0x35, 0xfc, 0x08, 0x33, 0x38, 0x1d, 0xe0, 0x5b, 0x46, 0x87, 0xf6, 0x75, 0x56, 0x46, 0x27, 0x14, 0xc6, 0x16, 0xe6, 0x36, 0x56, 0x1e, 0x44, 0x37, 0xa3, 0xda, 0x1a, 0xc4, 0xe7, 0x71, 0xda, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x23, 0xcc, 0xe0, 0x74, 0x00, 0x7f, 0x65, 0x74, 0x68, 0x5f, 0x67, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x79, 0x48, 0x61, 0x73, 0xe8, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x01, 0x76, 0x78, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x41, 0x86, 0x6a, 0x6b, 0x78, 0x5b, 0x67, 0xc0, 0xa3, 0xc3, 0x43, 0x0f, 0x9e, 0x04, 0xf3, 0x5b, 0x07, 0x65, 0x9d, 0xe7, 0x1a, 0xc4, 0x2b, 0x74, 0xda, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x23, 0xcc, 0xe0, 0x74, 0x00, 0x8f, 0x65, 0x74, 0x68, 0x5f, 0x67, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0xf4, 0x41, 0xbc, 0x51, 0xaa, 0xad, 0x41, 0xac, 0x4d, 0xa7, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0x3f, 0xc2, 0x0c, 0x4e, 0x07, 0xf0, 0x55, 0x46, 0x87, 0xf6, 0x35, 0x57, 0xe6, 0x46, 0x26, 0x15, 0x76, 0x47, 0x25, 0x17, 0xe6, 0x36, 0x17, 0x36, 0x46, 0x97, 0xf6, 0xe6, 0xae, 0xe1, 0xdd, 0x9e, 0x0d, 0x12, 0x60, 0x87, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x31, 0xd6, 0xa7, 0xb6, 0x86, 0xb7, 0x75, 0x36, 0x28, 0x6a, 0x8b, 0x0f, 0x9e, 0x04, 0xf3, 0x5b, 0x07, 0x65, 0x9d, 0x67, 0xab, 0x41, 0x8c, 0x51, 0xa9, 0x6d, 0xb0, 0x0a, 0xcb, 0x69, 0x83, 0x88, 0xff, 0x51, 0xdb, 0xf0, 0x8b, 0xd2, 0x06, 0x91, 0x73, 0x9b, 0xb6, 0xe1, 0x2f, 0x9a, 0x0d, 0x5e, 0xf0, 0xaf, 0xb9, 0x41, 0x61, 0xa8, 0xba, 0x41, 0x53, 0x71, 0x60, 0x1b, 0x9c, 0xd8, 0x6f, 0x36, 0x88, 0x2e, 0x29, 0xb0, 0x0d, 0x8e, 0x36, 0x7c, 0x1b, 0xc4, 0x0f, 0x97, 0xda, 0x86, 0xbf, 0x68, 0x36, 0x88, 0xb8, 0x2e, 0xb5, 0x0d, 0x8e, 0xae, 0x83, 0x6b, 0x50, 0xc2, 0x63, 0xae, 0xc1, 0xeb, 0x8c, 0x5c, 0x06, 0xbc, 0xb1, 0x30, 0xb6, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x8e, 0xe1, 0x06, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0x8f, 0x30, 0x83, 0xd3, 0x07, 0xaf, 0x33, 0x72, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x24, 0xc0, 0x0e, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0xa2, 0x7b, 0x4d, 0x6d, 0x0d, 0x6f, 0xeb, 0x0c, 0x5e, 0x1f, 0xc4, 0x96, 0xa8, 0x5a, 0xb5, 0x06, 0xc7, 0x70, 0x83, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0xe0, 0xe9, 0xde, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x02, 0xec, 0xf0, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0xba, 0xd7, 0xd4, 0xd6, 0xf0, 0xb6, 0xce, 0xc0, 0xd3, 0xbd, 0x07, 0x51, 0x2a, 0xaa, 0x56, 0xad, 0x41, 0x09, 0x8f, 0xb9, 0x06, 0x45, 0x24, 0xc1, 0x41, 0x94, 0x8a, 0xaa, 0x6d, 0x50, 0x50, 0x64, 0x6e, 0x70, 0x0c, 0x37, 0xd8, 0xf0, 0x8b, 0xcb, 0x1a, 0x7e, 0x84, 0x19, 0x9c, 0x3e, 0x28, 0x22, 0x09, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x09, 0xb0, 0xc3, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x18, 0xeb, 0x53, 0x5b, 0xc3, 0xdb, 0x3a, 0x83, 0xd7, 0x07, 0xf1, 0x90, 0xaa, 0x56, 0xad, 0x41, 0x09, 0x8f, 0xb9, 0x06, 0xd1, 0xed, 0x97, 0x76, 0x10, 0xa5, 0xa2, 0x6a, 0x1b, 0x14, 0x14, 0x99, 0x1b, 0x1c, 0xc3, 0x0d, 0x36, 0xfc, 0xe2, 0xb2, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x03, 0xfe, 0xb3, 0xb0, 0x39, 0x28, 0xb9, 0xb4, 0xb1, 0x72, 0x0d, 0xef, 0xf6, 0x6c, 0x90, 0x00, 0x3b, 0xbc, 0x86, 0x77, 0x7b, 0x36, 0x88, 0xb1, 0x3e, 0xb5, 0x35, 0xbc, 0xad, 0x33, 0x78, 0x7d, 0x10, 0xdf, 0xac, 0x6a, 0xd5, 0x1a, 0x94, 0xf0, 0x98, 0x6b, 0x70, 0xa2, 0xf5, 0x38, 0x88, 0x52, 0x51, 0xb5, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x8e, 0xe1, 0x06, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0x8f, 0x30, 0x83, 0xd3, 0x07, 0x27, 0x5a, 0x8f, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x02, 0xec, 0xf0, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0xc6, 0xfa, 0xd4, 0xd6, 0xf0, 0xb6, 0xce, 0xe0, 0xf5, 0x41, 0x5c, 0xc4, 0xaa, 0x55, 0x6b, 0x50, 0xc2, 0x63, 0xae, 0xc1, 0x41, 0x9e, 0xed, 0x20, 0x4a, 0x45, 0xd5, 0x36, 0x28, 0x28, 0x32, 0x37, 0x38, 0x86, 0x1b, 0x6c, 0xf8, 0xc5, 0x65, 0x0d, 0x3f, 0xc2, 0x0c, 0x4e, 0x1f, 0x1c, 0xe4, 0xd9, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x09, 0xb0, 0xc3, 0x6b, 0x78, 0x5b, 0xe7, 0x20, 0xd6, 0x69, 0xd5, 0xaa, 0x15, 0x80, 0x77, 0xb8, 0x30, 0xb9, 0xb9, 0xb2, 0x96, 0x32, 0x3a, 0xb4, 0x96, 0xb3, 0x32, 0xba, 0x16, 0x3a, 0xb9, 0x30, 0xb7, 0xb9, 0xb0, 0x31, 0xba, 0xb4, 0x37, 0xb7, 0x96, 0xb1, 0xb7, 0x3a, 0x37, 0x7a, 0xc3, 0xdb, 0x3a, 0x03, 0xf8, 0xc3, 0x85, 0xc9, 0xcd, 0x95, 0xb5, 0xa0, 0x95, 0xe1, 0xb5, 0xc8, 0x95, 0xcd, 0xd5, 0xb1, 0xd1, 0x1d, 0x4e, 0xb1, 0x35, 0x88, 0x13, 0x5d, 0xb5, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xd5, 0x83, 0x17, 0xfc, 0x6b, 0x6e, 0xf8, 0x8b, 0x66, 0xc3, 0x0f, 0x35, 0x1b, 0x14, 0x7c, 0x98, 0x6b, 0x50, 0x4c, 0x62, 0x6e, 0xb0, 0x24, 0x26, 0x70, 0xe3, 0xd0, 0x41, 0xe2, 0x73, 0xd4, 0x86, 0x77, 0x7b, 0x36, 0x88, 0x37, 0x02, 0xb5, 0x35, 0xbc, 0xad, 0x33, 0x38, 0x7c, 0x90, 0xf8, 0x1c, 0xd5, 0xe1, 0x14, 0x5b, 0x00, 0x3f, 0xb9, 0xb2, 0x30, 0xb2, 0x16, 0xb9, 0xb2, 0xb8, 0xba, 0xb2, 0x39, 0x7a, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x77, 0x7e, 0x0d, 0xe2, 0xf9, 0x35, 0xad, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0x0b, 0xfe, 0x35, 0x37, 0x28, 0x3a, 0x8d, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0xb1, 0xe9, 0xa3, 0xd6, 0x06, 0x4d, 0xe1, 0x84, 0x6e, 0x70, 0xce, 0x5f, 0x5a, 0xc3, 0x1b, 0x77, 0x07, 0x71, 0x66, 0x9b, 0xb6, 0x86, 0xbf, 0x68, 0x36, 0x88, 0xdb, 0xdb, 0xb4, 0x0d, 0xbf, 0xb8, 0x6c, 0x50, 0x50, 0x64, 0x6e, 0x70, 0x1e, 0x06, 0xd9, 0xa0, 0xa0, 0xc8, 0xdc, 0xa0, 0xa0, 0xc8, 0xdc, 0xa0, 0xa0, 0xc8, 0x5c, 0xc3, 0x5f, 0x34, 0x1b, 0x9c, 0xf4, 0x44, 0x37, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x88, 0x83, 0xf7, 0xb4, 0x36, 0x68, 0xd8, 0x91, 0xfa, 0x20, 0x56, 0xe6, 0xd3, 0xda, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xb8, 0x3b, 0x88, 0xce, 0xc1, 0xb4, 0x35, 0xbc, 0x71, 0x77, 0x10, 0xe5, 0x85, 0x69, 0x1d, 0x4e, 0xb1, 0x16, 0x80, 0x2f, 0xb8, 0x30, 0xb9, 0xb9, 0xb2, 0x96, 0x32, 0x3a, 0xb4, 0x16, 0x31, 0xb6, 0xb7, 0xb1, 0xb5, 0x16, 0xb7, 0xba, 0x36, 0xb1, 0x32, 0xf9, 0x20, 0xda, 0x73, 0xd5, 0x56, 0x00, 0x3f, 0xb5, 0xb9, 0x37, 0xb7, 0x16, 0xb9, 0xb2, 0xb8, 0xba, 0xb2, 0x39, 0x7a, 0x83, 0x55, 0x58, 0x4e, 0x1b, 0x44, 0xc1, 0xc2, 0xd8, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0x1a, 0xf0, 0xea, 0xe4, 0xd8, 0x83, 0x57, 0x72, 0x2b, 0x1e, 0x44, 0xaa, 0x8b, 0xda, 0x86, 0xbf, 0x68, 0x36, 0x88, 0x94, 0x9b, 0xb3, 0x0d, 0x16, 0x95, 0x27, 0x6d, 0x10, 0x39, 0x7d, 0x64, 0x6b, 0x78, 0xe3, 0xee, 0xe0, 0xc9, 0xc3, 0x89, 0x6b, 0x70, 0x62, 0xbf, 0x59, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x72, 0xe7, 0x7d, 0x83, 0xb2, 0xe9, 0x7d, 0x0d, 0x0a, 0xc1, 0xd4, 0x83, 0x97, 0x85, 0x30, 0xb6, 0xc1, 0xd1, 0x75, 0x70, 0x35, 0xfc, 0x08, 0x33, 0x38, 0x1d, 0xe0, 0x37, 0xf4, 0xe6, 0x46, 0x57, 0xe6, 0x46, 0xd7, 0x42, 0x95, 0x07, 0x57, 0x6e, 0x70, 0x74, 0x1d, 0x5c, 0xc3, 0x2f, 0x2e, 0x07, 0xb1, 0x30, 0xa3, 0x56, 0x07, 0xd1, 0x48, 0xa3, 0xb6, 0x1a, 0xc4, 0xb1, 0x95, 0xda, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0x80, 0x47, 0xf6, 0x26, 0x1e, 0xac, 0x38, 0xea, 0xde, 0xf0, 0x17, 0xcd, 0x06, 0x2f, 0xf8, 0xd7, 0xdc, 0x20, 0x48, 0x4f, 0xd7, 0x38, 0x34, 0xe0, 0x91, 0xbd, 0x89, 0xad, 0x41, 0xec, 0x08, 0xa6, 0x6d, 0xb0, 0xf4, 0xeb, 0x75, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0x47, 0x16, 0xde, 0x60, 0x11, 0xbc, 0xdb, 0x06, 0x6b, 0xd0, 0xdf, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x72, 0x7d, 0xc8, 0x0e, 0x0a, 0xe2, 0xf1, 0x35, 0xbc, 0xad, 0x33, 0xb8, 0x7b, 0x10, 0x6b, 0xd5, 0x6a, 0xb5, 0x06, 0xd1, 0x36, 0x98, 0xb6, 0xc1, 0xd2, 0xaf, 0xd7, 0x0d, 0x6f, 0xeb, 0x0c, 0xce, 0x1e, 0xc4, 0x5a, 0xb5, 0x5a, 0x87, 0x53, 0x6c, 0x01, 0x78, 0x82, 0x0b, 0x93, 0x9b, 0x2b, 0x6b, 0x29, 0xa3, 0x43, 0x6b, 0x39, 0x2b, 0xa3, 0x6b, 0x11, 0x0b, 0x63, 0x0b, 0x73, 0x1b, 0x2b, 0x0f, 0xa2, 0x3d, 0x57, 0xed, 0x70, 0x8a, 0x2d, 0x00, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x65, 0x2d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x68, 0x61, 0x73, 0xe8, 0x41, 0xb4, 0xe7, 0xaa, 0x1d, 0x4e, 0xb1, 0x05, 0xe0, 0x0f, 0x2e, 0x4c, 0x6e, 0xae, 0xac, 0xa5, 0x8c, 0x0e, 0xad, 0xc5, 0xad, 0xec, 0xae, 0xc5, 0x2c, 0x8d, 0x8d, 0xae, 0x4c, 0xae, 0x45, 0xae, 0x6c, 0x3e, 0x88, 0xf6, 0x5c, 0xb5, 0x15, 0x80, 0x0f, 0xb1, 0x30, 0xba, 0x31, 0xb4, 0x16, 0xb9, 0xb2, 0x30, 0xb2, 0x16, 0xb9, 0xb2, 0xb8, 0xba, 0xb2, 0x39, 0x7a, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0xc0, 0x93, 0x2b, 0x8b, 0x37, 0x08, 0xfd, 0x92, 0x0d, 0x42, 0xca, 0x64, 0x83, 0xb8, 0x04, 0x56, 0x6b, 0xc3, 0x5f, 0x34, 0x1b, 0xbc, 0xe0, 0x5f, 0x73, 0x83, 0x24, 0x87, 0xa7, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x22, 0x55, 0x6f, 0xf0, 0xee, 0x97, 0xdf, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x04, 0xfe, 0xaa, 0xd5, 0xac, 0x41, 0x94, 0xc9, 0xa9, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x6d, 0x90, 0x2a, 0xe6, 0x77, 0x10, 0x4f, 0xbd, 0x69, 0x1b, 0xfe, 0xa2, 0xd9, 0xe0, 0x05, 0xff, 0x9a, 0x1b, 0x14, 0x86, 0xaa, 0x1b, 0x24, 0x39, 0x3c, 0x6d, 0x50, 0x90, 0xc6, 0x0e, 0x78, 0x74, 0x74, 0xea, 0x1a, 0x24, 0x19, 0x10, 0x6e, 0x90, 0x3a, 0x18, 0xbb, 0x86, 0x77, 0x7b, 0x36, 0x48, 0x73, 0x8a, 0xdd, 0x20, 0x6e, 0xd1, 0xd0, 0x0e, 0xd2, 0x4e, 0x63, 0x37, 0x88, 0x42, 0x38, 0xb4, 0x35, 0x3c, 0x28, 0xb9, 0x41, 0x02, 0xec, 0xf0, 0x41, 0xc4, 0xff, 0xa8, 0xb5, 0x41, 0xd1, 0x69, 0xbc, 0x41, 0x89, 0x54, 0xbd, 0xc1, 0xe2, 0x7f, 0xb8, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xe9, 0x0d, 0x82, 0xcd, 0x74, 0xc3, 0x0f, 0x35, 0x07, 0x91, 0xf1, 0x00, 0xb5, 0x41, 0x41, 0x30, 0xbb, 0xc1, 0x81, 0xa6, 0x6f, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x0d, 0x0f, 0xde, 0x1c, 0x9c, 0x5a, 0xfa, 0x36, 0x28, 0x28, 0x32, 0x37, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0x3c, 0x3a, 0x3a, 0xb5, 0x35, 0x7c, 0xfd, 0xb2, 0xe1, 0x43, 0x98, 0x0d, 0x5f, 0xbf, 0x6c, 0xf8, 0x10, 0xe6, 0xe0, 0xd4, 0xd2, 0xd7, 0x06, 0x49, 0x0e, 0x4f, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x44, 0xaa, 0xde, 0xe0, 0xd4, 0xd2, 0xb7, 0x41, 0x3c, 0xba, 0xab, 0x75, 0x38, 0xc5, 0x3a, 0x9c, 0x62, 0xab, 0x41, 0xc4, 0xdd, 0xa9, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0x15, 0xbd, 0xef, 0x1b, 0xfe, 0xa2, 0xd9, 0xe0, 0xa4, 0x27, 0xba, 0xc1, 0x89, 0xfd, 0x66, 0x83, 0x28, 0x84, 0x43, 0xdb, 0xf0, 0x6e, 0xcf, 0x06, 0x31, 0x79, 0xad, 0x76, 0x90, 0x86, 0x97, 0x7b, 0x38, 0xc5, 0xaa, 0x35, 0x28, 0x5a, 0x4f, 0x36, 0x28, 0x59, 0xd8, 0x67, 0x99, 0x05, 0xf0, 0x0f, 0x23, 0x23, 0x93, 0x2b, 0x9b, 0x9b, 0x6b, 0x31, 0x93, 0x7b, 0x6b, 0x6b, 0x81, 0xab, 0x13, 0x37, 0x58, 0x85, 0xe5, 0xb4, 0x41, 0x4c, 0xad, 0xa1, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0x08, 0xba, 0xe4, 0xda, 0xa0, 0xe8, 0x34, 0xde, 0xa0, 0xc8, 0xc4, 0x5d, 0xc3, 0x2f, 0x2e, 0x1b, 0x14, 0x95, 0xe2, 0x07, 0x29, 0x2a, 0xae, 0x1b, 0x14, 0x9d, 0xc6, 0x1b, 0x44, 0xb3, 0x1a, 0xda, 0x06, 0x29, 0xd0, 0xa9, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0xa9, 0x14, 0x76, 0x83, 0xa2, 0x52, 0x7c, 0x83, 0x14, 0xe8, 0xd4, 0x83, 0xc8, 0x3a, 0xe5, 0x5a, 0x01, 0x68, 0x9a, 0x4b, 0x3b, 0x73, 0x6b, 0xa1, 0x93, 0x0b, 0x73, 0x9b, 0x0b, 0x1b, 0xa3, 0x4b, 0x7b, 0x73, 0x6b, 0x89, 0xa9, 0xa9, 0xc9, 0x1b, 0xac, 0xc2, 0x72, 0xda, 0x20, 0x16, 0x2c, 0xaf, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0xc0, 0xd3, 0xe1, 0x1b, 0xfe, 0x9d, 0xdf, 0x20, 0x22, 0x5d, 0xd3, 0x16, 0xf0, 0xe4, 0xe0, 0xc6, 0x3a, 0x88, 0xb9, 0x3e, 0xae, 0x0d, 0x0e, 0x58, 0x74, 0x6b, 0xf8, 0x8b, 0x66, 0x83, 0x63, 0x4b, 0xe9, 0x06, 0x0b, 0x30, 0x9b, 0xd6, 0xf0, 0x7d, 0xfb, 0x06, 0x6f, 0x06, 0xf9, 0x3c, 0x68, 0xce, 0x55, 0x7c, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0xdd, 0x9e, 0x35, 0x3c, 0x28, 0xb9, 0x86, 0xb7, 0x75, 0x36, 0x88, 0xf1, 0xf1, 0xab, 0x36, 0x3c, 0x28, 0xb9, 0x86, 0xb7, 0x75, 0x36, 0x88, 0xd4, 0xe0, 0x9e, 0x0e, 0xa2, 0xf1, 0xf3, 0x6a, 0x83, 0xd7, 0x99, 0x57, 0x1f, 0x44, 0xc7, 0x07, 0xd6, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x00, 0x5a, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x2d, 0x31, 0x35, 0x35, 0xb9, 0x0d, 0x0a, 0x8a, 0xcc, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x91, 0x89, 0xbb, 0xe1, 0xc1, 0x9b, 0x83, 0x34, 0xa1, 0xa8, 0x0d, 0x8e, 0x9f, 0x7c, 0x07, 0x27, 0x79, 0xbe, 0x0d, 0x4e, 0xec, 0x37, 0x6b, 0x78, 0x50, 0x72, 0x83, 0x68, 0x56, 0x43, 0x3b, 0x88, 0xf3, 0xf8, 0xaa, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x73, 0x97, 0x0d, 0x8a, 0xda, 0xe2, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0xd6, 0xdb, 0x6e, 0x50, 0x54, 0x8a, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0x22, 0x75, 0x60, 0xed, 0xa0, 0xac, 0xf3, 0xdc, 0x20, 0xa6, 0xab, 0xa6, 0xda, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0xd9, 0xe0, 0x2c, 0x64, 0xba, 0xe1, 0xdd, 0x9e, 0x0d, 0x8a, 0xe2, 0xdf, 0x83, 0xe5, 0x7f, 0xc1, 0x07, 0x09, 0x96, 0xb0, 0xcb, 0xac, 0x41, 0x8c, 0x0f, 0xac, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x6d, 0x90, 0x98, 0x78, 0xb4, 0x41, 0xe8, 0x97, 0x6c, 0x50, 0x36, 0x61, 0xae, 0xe1, 0x73, 0xa5, 0x0d, 0xe2, 0x46, 0x3f, 0xea, 0x20, 0xae, 0x8d, 0xa6, 0xda, 0xa0, 0xe8, 0x34, 0x5e, 0xc3, 0x83, 0x92, 0x1b, 0xc4, 0x37, 0xfe, 0xd9, 0x86, 0xb7, 0x75, 0x06, 0x3c, 0x39, 0x36, 0xb8, 0x0d, 0xda, 0x3c, 0xb2, 0xda, 0x60, 0x15, 0x96, 0xd3, 0x1a, 0xde, 0xd6, 0x19, 0x78, 0x3a, 0xbc, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0xe2, 0xc7, 0x34, 0xad, 0x0d, 0xa2, 0x36, 0x63, 0x6b, 0x0d, 0x6f, 0xeb, 0x6c, 0x10, 0x4d, 0xd8, 0x69, 0xad, 0xe1, 0x6d, 0x9d, 0x0d, 0xe2, 0x44, 0x3b, 0xad, 0x35, 0xbc, 0xad, 0x73, 0x50, 0xee, 0xbc, 0xaf, 0x41, 0x73, 0x78, 0x9f, 0x1b, 0xa4, 0xa9, 0xb8, 0x1e, 0x9c, 0x87, 0x41, 0x36, 0x58, 0xb7, 0x70, 0xbc, 0xc1, 0xd9, 0x33, 0x6e, 0x0d, 0x0a, 0x43, 0xd5, 0x0d, 0xda, 0x3c, 0xb2, 0xda, 0xa0, 0xe8, 0x34, 0xde, 0xa0, 0x44, 0xaa, 0x5e, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x45, 0x20, 0xa3, 0x1b, 0x94, 0x4d, 0xf5, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xe8, 0xe4, 0x4e, 0xab, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0x22, 0xd7, 0x0c, 0x6d, 0x0d, 0x7f, 0x2e, 0x0d, 0x2e, 0x1e, 0x1c, 0x3c, 0x4a, 0xdb, 0xa0, 0xcd, 0x23, 0xab, 0x0d, 0x8e, 0xae, 0x83, 0x6b, 0xd0, 0x1c, 0xde, 0xe7, 0x06, 0x69, 0x2a, 0xae, 0x87, 0xa7, 0x75, 0xd6, 0xa0, 0xcd, 0x23, 0xab, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x22, 0x55, 0x6f, 0x78, 0x2f, 0x68, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0xcf, 0xa5, 0xc1, 0xc7, 0x83, 0x63, 0x4b, 0xe9, 0x06, 0xcd, 0xe1, 0x7d, 0x6e, 0x90, 0x7a, 0x1a, 0x7b, 0x78, 0x7a, 0xa7, 0xd6, 0xa0, 0x84, 0xc7, 0xdc, 0x20, 0xf9, 0xf6, 0x68, 0x83, 0x82, 0x22, 0x73, 0xc3, 0x83, 0x92, 0x6b, 0x70, 0x74, 0x1d, 0xdc, 0x20, 0xc5, 0xda, 0xe9, 0x20, 0xc2, 0x0b, 0xd6, 0x36, 0xbc, 0xad, 0x33, 0x78, 0x7d, 0x90, 0x7c, 0x7b, 0xd4, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x87, 0x53, 0x6c, 0x01, 0xfc, 0xe0, 0xea, 0xc4, 0x5a, 0xcc, 0xe4, 0xde, 0xda, 0x5a, 0xe0, 0xe4, 0xec, 0x0d, 0x56, 0x61, 0x39, 0xad, 0xe1, 0x41, 0xc9, 0x0d, 0xe2, 0x41, 0x60, 0x6d, 0xc3, 0x83, 0x92, 0x1b, 0x44, 0xe3, 0xe7, 0xd5, 0x41, 0x2c, 0x58, 0x5e, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x70, 0x72, 0xf6, 0xe1, 0x87, 0x9a, 0x0d, 0x4e, 0xec, 0x37, 0x1b, 0x44, 0xc1, 0xf8, 0xd5, 0x86, 0x77, 0x7b, 0x36, 0x88, 0x66, 0xd1, 0xab, 0x0d, 0xe2, 0x78, 0x85, 0xaa, 0x15, 0x80, 0xaf, 0xb9, 0xb4, 0x33, 0xb7, 0x16, 0xba, 0x3c, 0xb8, 0x32, 0xb2, 0x16, 0x3a, 0xb9, 0x30, 0xb7, 0xb9, 0xb0, 0x31, 0xba, 0xb4, 0x37, 0x77, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x3c, 0x1d, 0xbe, 0xe1, 0xdf, 0xf9, 0x35, 0x88, 0x19, 0xd5, 0xb4, 0x0e, 0xa2, 0xc6, 0x5f, 0xed, 0x20, 0xe6, 0xfa, 0xb8, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0xb1, 0xa5, 0x74, 0x83, 0xa3, 0x0d, 0xdf, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xac, 0xb7, 0xdd, 0xa0, 0xa8, 0x14, 0xdf, 0xf0, 0xcc, 0xe4, 0x1a, 0x2e, 0xa9, 0x35, 0x0e, 0x1d, 0x44, 0x02, 0xc4, 0x5a, 0x6d, 0x10, 0xa4, 0xa7, 0x1b, 0x44, 0x35, 0xca, 0xda, 0x1a, 0x44, 0x25, 0x6b, 0xda, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x00, 0xfe, 0x73, 0x69, 0x67, 0x6e, 0x2d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x6b, 0xb8, 0xa4, 0xd6, 0x78, 0x7e, 0x10, 0x09, 0x10, 0x6b, 0x1d, 0x44, 0xc7, 0x07, 0xd6, 0x1a, 0xc4, 0x76, 0x6b, 0xda, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x51, 0xad, 0xaf, 0xd6, 0x41, 0xcc, 0xae, 0xac, 0xb5, 0x02, 0xf8, 0x87, 0x91, 0x91, 0xc9, 0x95, 0xcd, 0xcd, 0xb5, 0x98, 0xc9, 0xbd, 0xb5, 0xb5, 0xc0, 0xc9, 0xd9, 0x1b, 0xde, 0xed, 0xd9, 0x20, 0x75, 0x30, 0x76, 0x0d, 0x6f, 0xeb, 0x6c, 0x10, 0xb5, 0x1e, 0x6b, 0xad, 0xe1, 0x6d, 0x9d, 0x0d, 0x22, 0xa9, 0x5e, 0xad, 0x0e, 0xa7, 0xd8, 0x1a, 0xc4, 0xa4, 0xca, 0xda, 0x06, 0xab, 0xb0, 0x9c, 0x36, 0x88, 0x05, 0xcb, 0xab, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0x34, 0xf0, 0x74, 0xf8, 0x86, 0x7f, 0xe7, 0x37, 0x88, 0xa2, 0xd6, 0xb4, 0x83, 0xa8, 0xf1, 0x57, 0x3b, 0x88, 0xb9, 0x3e, 0xae, 0x0d, 0x0e, 0x58, 0x74, 0x6b, 0xf8, 0x8b, 0x66, 0x83, 0x63, 0x4b, 0xe9, 0x06, 0x05, 0x69, 0xec, 0x06, 0x91, 0xfd, 0xaf, 0xb6, 0x06, 0x27, 0xf6, 0x9b, 0x0d, 0xe2, 0xd4, 0x60, 0x6d, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0xa2, 0xb6, 0x78, 0xc3, 0xbb, 0x3d, 0x1b, 0xc4, 0x37, 0xfe, 0xd9, 0x1a, 0xde, 0xd6, 0xd9, 0x20, 0x7e, 0x4c, 0xd3, 0x0e, 0x22, 0x01, 0x62, 0xed, 0xe0, 0xbc, 0xbb, 0x77, 0x10, 0xe9, 0x09, 0x6b, 0x1b, 0x3e, 0xb1, 0xd9, 0x20, 0xb6, 0x01, 0xd6, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x7c, 0xe3, 0x9f, 0xad, 0x41, 0x92, 0x01, 0xe1, 0x86, 0x3f, 0x81, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0xc1, 0x53, 0xbb, 0x41, 0x0c, 0xdb, 0xac, 0x1d, 0x04, 0x2b, 0xeb, 0x1a, 0x7e, 0x84, 0xd9, 0x50, 0xf3, 0x43, 0xc7, 0x41, 0x9a, 0x50, 0xd4, 0x41, 0x84, 0x17, 0xac, 0x2d, 0xb3, 0x06, 0x8f, 0xf9, 0x1b, 0xdd, 0xf0, 0x8b, 0xd2, 0x06, 0xd1, 0x01, 0x7b, 0xb5, 0x41, 0xd1, 0x69, 0xbc, 0x41, 0xf4, 0x38, 0xac, 0x6d, 0xd0, 0xe6, 0x91, 0xd5, 0x86, 0x4b, 0x6a, 0x83, 0x48, 0x80, 0x58, 0x5b, 0x83, 0xa3, 0x32, 0xc8, 0x06, 0xcd, 0xe1, 0x7d, 0x6e, 0x90, 0xa6, 0xe2, 0xba, 0xe1, 0x6d, 0x9d, 0x81, 0xa7, 0x7b, 0x0f, 0x22, 0x01, 0x62, 0x6d, 0x0d, 0x22, 0x16, 0x62, 0x6d, 0xc3, 0x2f, 0x2e, 0x1b, 0xa4, 0x0a, 0x45, 0x6d, 0x70, 0xfc, 0xe4, 0xdb, 0xe0, 0x70, 0xce, 0x77, 0x50, 0xd6, 0x79, 0x76, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0xeb, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0xb6, 0xe1, 0x44, 0xd8, 0x20, 0xea, 0xc7, 0xcf, 0x36, 0x58, 0xcc, 0x06, 0x75, 0x10, 0xcf, 0xe5, 0x67, 0x1b, 0x4e, 0x84, 0x0d, 0x62, 0x6e, 0xfc, 0x6c, 0x83, 0xc5, 0x6c, 0x50, 0xcb, 0x2c, 0x1b, 0x3e, 0xb1, 0x59, 0xc3, 0xf3, 0x24, 0x6b, 0xb0, 0x50, 0x99, 0xea, 0x20, 0x54, 0x11, 0x36, 0x7c, 0x90, 0xb3, 0x41, 0x13, 0xb2, 0x10, 0x6b, 0xf8, 0x20, 0x67, 0x0d, 0x16, 0x40, 0x1f, 0xad, 0xe1, 0x41, 0xc9, 0x8d, 0x43, 0x1b, 0xb4, 0x79, 0x64, 0xb5, 0xe1, 0x73, 0x97, 0xc1, 0xd9, 0x0d, 0x4a, 0x09, 0xf1, 0x0d, 0x56, 0x90, 0xe9, 0x6f, 0x78, 0x50, 0x72, 0x83, 0xe5, 0xc7, 0xdb, 0x07, 0x6d, 0xfd, 0x42, 0x1c, 0x9c, 0xeb, 0x0d, 0x56, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x88, 0xe6, 0x86, 0x37, 0xee, 0x0e, 0x5a, 0xcd, 0x74, 0x3a, 0x68, 0xf3, 0xc8, 0x6a, 0xc3, 0xe7, 0x2e, 0x83, 0xb3, 0x07, 0x6d, 0xf1, 0x42, 0xac, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x7f, 0x73, 0x36, 0x44, 0x73, 0xc3, 0x1b, 0x77, 0x07, 0x6d, 0xd2, 0x91, 0x1c, 0x34, 0x87, 0xf7, 0xb9, 0xe1, 0x73, 0x97, 0xc1, 0xc5, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x29, 0x21, 0xbe, 0xc1, 0x0a, 0x32, 0xfd, 0x0d, 0x6f, 0xeb, 0x1c, 0xa4, 0x45, 0xc2, 0x1e, 0x1c, 0x40, 0x93, 0x0e, 0xda, 0xa4, 0xa9, 0x38, 0x58, 0x49, 0xa7, 0x7f, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0x41, 0x0c, 0x0f, 0xad, 0x0d, 0xbf, 0xf1, 0x7c, 0xf1, 0x20, 0x12, 0xc4, 0xcf, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0xd8, 0x85, 0xdb, 0x60, 0x1d, 0x33, 0xd8, 0x41, 0x48, 0x81, 0x2f, 0x08, 0x36, 0x88, 0x93, 0xde, 0xb3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x71, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb6, 0x86, 0x3c, 0xf6, 0xe2, 0x20, 0x58, 0xf8, 0x0d, 0xe2, 0xf8, 0xf7, 0xec, 0xe0, 0xa1, 0xf8, 0x0d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x85, 0xdf, 0x20, 0x8e, 0x7f, 0xcf, 0x0e, 0xde, 0xae, 0xdf, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xe2, 0x86, 0x89, 0x5b, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x1c, 0x44, 0x3d, 0x06, 0xda, 0x41, 0x54, 0x8c, 0x9f, 0x0d, 0xbf, 0xf1, 0x7c, 0xf1, 0x20, 0xea, 0x31, 0xd0, 0x0e, 0xa9, 0x83, 0xe3, 0xd0, 0x71, 0xe8, 0x78, 0x3c, 0xec, 0x06, 0x2f, 0x21, 0xe6, 0x39, 0x48, 0x28, 0xfb, 0x39, 0x1e, 0x1f, 0x87, 0x0e, 0xa7, 0xd8, 0xf1, 0x78, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0xd8, 0xe0, 0x1c, 0xfc, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xc1, 0xcb, 0x24, 0x74, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0xc4, 0x11, 0xf7, 0xd9, 0x41, 0xb9, 0x44, 0x37, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0xf8, 0x0d, 0xe2, 0x88, 0xfb, 0xec, 0x60, 0xf1, 0xc1, 0xcf, 0x41, 0x8a, 0x9f, 0xc3, 0x71, 0x68, 0xf8, 0x05, 0xd1, 0x42, 0x86, 0xdd, 0x60, 0xd4, 0x4b, 0x1e, 0xc4, 0xd9, 0x50, 0xcf, 0xf1, 0x78, 0x10, 0x2c, 0x2e, 0x08, 0x36, 0xc4, 0x70, 0x71, 0xd8, 0x0d, 0xeb, 0x7b, 0x1b, 0x62, 0x38, 0x08, 0x36, 0x48, 0x77, 0xdf, 0xd9, 0x20, 0x04, 0xc0, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0x60, 0x3e, 0x08, 0x16, 0x7e, 0xe1, 0x37, 0x18, 0xfe, 0xb1, 0x07, 0xf1, 0x2c, 0x7b, 0x36, 0x48, 0x36, 0x28, 0xfc, 0x83, 0x0e, 0xc6, 0xbb, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0x34, 0x0f, 0xc6, 0x9b, 0xce, 0x71, 0x68, 0x10, 0x2d, 0xec, 0x20, 0x58, 0xf8, 0x0d, 0x22, 0xfe, 0x6b, 0xed, 0x60, 0xa4, 0xf9, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xec, 0x15, 0x1e, 0xa2, 0x79, 0x1c, 0x3a, 0x9e, 0x1f, 0x8f, 0x17, 0x7e, 0x83, 0x74, 0x4b, 0xe9, 0xe3, 0xf9, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0x2c, 0xfc, 0x06, 0x71, 0xfc, 0x7b, 0x36, 0x48, 0x06, 0xee, 0xa7, 0x83, 0xf1, 0xae, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x28, 0x16, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0xfc, 0x06, 0x71, 0xfc, 0x7b, 0x76, 0x50, 0x2e, 0xd1, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x7e, 0x83, 0x38, 0xfe, 0x3d, 0x1b, 0x24, 0x03, 0x8e, 0xee, 0x7d, 0x07, 0xe3, 0x5d, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x12, 0x89, 0xf7, 0x41, 0x60, 0x62, 0x1f, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0xb0, 0x1b, 0xd6, 0xf7, 0x16, 0x64, 0x6b, 0xc8, 0x63, 0x2f, 0x0e, 0x82, 0x85, 0xdf, 0x20, 0xe6, 0x97, 0xcf, 0x0e, 0x1e, 0x8a, 0xdf, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0xf8, 0x0d, 0x62, 0x7e, 0xf9, 0xec, 0xe0, 0xed, 0xfa, 0x0d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x2f, 0x6e, 0xa8, 0xe3, 0x1b, 0x5e, 0xbe, 0x9b, 0x83, 0xc8, 0xe2, 0x41, 0x1b, 0x7e, 0xe3, 0xf9, 0x78, 0x10, 0x59, 0x3c, 0x68, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0xf8, 0x70, 0x8a, 0x0d, 0xbf, 0xf1, 0x78, 0xd8, 0x05, 0xc1, 0xc2, 0x6f, 0x10, 0xc9, 0xb8, 0x67, 0x07, 0x09, 0xfb, 0xcc, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x59, 0xbb, 0x83, 0x65, 0xc7, 0x36, 0xc7, 0xa1, 0x35, 0x1c, 0xed, 0x1b, 0xa4, 0x2d, 0x50, 0x1f, 0x5a, 0x2f, 0x0e, 0xbb, 0x20, 0xd8, 0x20, 0xc6, 0xdf, 0xd6, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xb2, 0x76, 0xc3, 0x6f, 0x3c, 0x1f, 0x83, 0xb8, 0x1d, 0x87, 0x16, 0x04, 0x0b, 0x82, 0x85, 0xdf, 0x20, 0x92, 0x71, 0xcf, 0x0e, 0x46, 0x9a, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xd6, 0xee, 0x20, 0xc9, 0xad, 0xf9, 0x38, 0xb4, 0xc1, 0x28, 0x3f, 0xd9, 0x20, 0x6d, 0x81, 0x7a, 0xe3, 0xd0, 0x20, 0xd8, 0x20, 0x81, 0xf0, 0xe4, 0x20, 0x6a, 0xd7, 0x83, 0x86, 0x5d, 0x10, 0x6c, 0x10, 0xe3, 0x6f, 0x6b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x59, 0xbb, 0x83, 0x48, 0x56, 0x50, 0x3a, 0x0e, 0x2d, 0x08, 0x16, 0x04, 0x1b, 0x44, 0xf9, 0xdc, 0xda, 0x41, 0x54, 0xca, 0xad, 0x0d, 0x82, 0x0d, 0xe2, 0xc1, 0x6e, 0x6d, 0x41, 0xb0, 0xf0, 0x1b, 0xc4, 0xf1, 0xef, 0xd9, 0xc1, 0x88, 0x6d, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xd0, 0x64, 0xff, 0xfb, 0x21, 0x75, 0x70, 0x1c, 0xda, 0x20, 0x6d, 0x81, 0x7a, 0xe3, 0xd0, 0x20, 0xd8, 0x20, 0xfd, 0x4b, 0xe1, 0x20, 0x32, 0xf4, 0xd6, 0x86, 0x5d, 0x10, 0x6c, 0x10, 0xe3, 0x6f, 0x6b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x59, 0xbb, 0xe1, 0x37, 0x9e, 0x8f, 0x41, 0xdc, 0x8f, 0x43, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0x51, 0x3e, 0xb7, 0x36, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xb5, 0x3b, 0x48, 0xe0, 0x69, 0x3e, 0x0e, 0x6d, 0x30, 0xca, 0x4f, 0x36, 0x58, 0xc7, 0x0c, 0x36, 0x08, 0x16, 0x24, 0xc3, 0x0c, 0xa2, 0x85, 0x1d, 0x04, 0x0b, 0xbf, 0x41, 0xcc, 0x2f, 0x9f, 0x1d, 0xc4, 0x22, 0xd8, 0xda, 0x41, 0xf9, 0x53, 0x74, 0x3c, 0x3f, 0x18, 0xd8, 0xa2, 0xc3, 0x2e, 0x08, 0x36, 0x88, 0xf1, 0xb7, 0xb5, 0x83, 0xa4, 0x29, 0x87, 0x05, 0xc1, 0x82, 0x60, 0x83, 0x28, 0x9f, 0x5b, 0x3b, 0x88, 0x49, 0xbe, 0xb5, 0x41, 0xb0, 0x41, 0x3c, 0xd8, 0xad, 0x6d, 0x10, 0x61, 0x79, 0x6b, 0x1b, 0xac, 0x63, 0x06, 0x1b, 0x04, 0x0b, 0x92, 0x61, 0x06, 0xd1, 0xc2, 0x0e, 0x82, 0x85, 0xdf, 0x20, 0x8e, 0x7f, 0xcf, 0x0e, 0x62, 0x11, 0x6c, 0x6d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x93, 0xfd, 0xef, 0x07, 0x81, 0x89, 0x7d, 0x1c, 0x3a, 0x24, 0x97, 0x0e, 0x06, 0xb6, 0xe8, 0x20, 0x5b, 0x43, 0x1e, 0x7b, 0x71, 0x10, 0x6c, 0x10, 0x15, 0x6b, 0x6b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xa2, 0x8d, 0x6d, 0x6d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0xc5, 0x0d, 0x13, 0xb7, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x39, 0x88, 0xf9, 0x2e, 0xb4, 0x83, 0x48, 0x59, 0xc7, 0x19, 0x7e, 0xe3, 0xf9, 0xe2, 0x41, 0xcc, 0x77, 0xa1, 0x1d, 0xa2, 0x79, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x0f, 0xa7, 0xd8, 0xc1, 0xb8, 0x83, 0x3a, 0x1e, 0x1f, 0x8f, 0x57, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0x05, 0xc1, 0xc2, 0x2f, 0xfc, 0xc2, 0x6f, 0x58, 0xa1, 0x3d, 0x88, 0x67, 0xd9, 0xb3, 0x83, 0x76, 0x6e, 0xcd, 0x0f, 0xd2, 0x70, 0xe0, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0xbf, 0x41, 0x8c, 0x32, 0xae, 0x1d, 0x9c, 0x28, 0xe9, 0x0f, 0x22, 0xef, 0xdc, 0xe6, 0x38, 0x74, 0xe8, 0xa0, 0x71, 0x3c, 0x5e, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x10, 0x6c, 0xb0, 0x0c, 0x5e, 0x60, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x02, 0x0a, 0xc9, 0x21, 0x55, 0x73, 0x1c, 0x1a, 0x04, 0x0b, 0x82, 0x85, 0x5f, 0xf8, 0x05, 0xc9, 0x40, 0xf1, 0x3a, 0x64, 0x2b, 0x0e, 0x0e, 0x1e, 0xb5, 0x07, 0xab, 0x37, 0xd1, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0xbf, 0xf0, 0x1b, 0x1c, 0x17, 0xce, 0x0f, 0x0e, 0x34, 0xb7, 0x07, 0x6b, 0xf9, 0x04, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0xbf, 0x41, 0x1c, 0x71, 0x9f, 0x0d, 0x92, 0x01, 0xc1, 0xbb, 0x73, 0x10, 0xe4, 0xfc, 0x07, 0x03, 0x5b, 0xf4, 0x38, 0x74, 0x1c, 0x1a, 0x04, 0x0b, 0xbf, 0xf0, 0x1b, 0xc4, 0x9f, 0xec, 0xd9, 0xc1, 0xfb, 0xef, 0xcd, 0x8e, 0x6f, 0x83, 0x60, 0x83, 0xe4, 0x9f, 0xe7, 0x41, 0xb0, 0x38, 0xec, 0x06, 0xc1, 0x85, 0xbd, 0x20, 0x58, 0x90, 0x0c, 0xac, 0x7f, 0x1d, 0x8c, 0x77, 0x9d, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xb1, 0x6b, 0xb6, 0x76, 0x30, 0xcc, 0xc2, 0x8f, 0x43, 0x83, 0x60, 0x43, 0xb2, 0x63, 0xd8, 0x05, 0xc1, 0xc2, 0x6f, 0x10, 0xf1, 0x5f, 0x6b, 0x07, 0xe9, 0x6e, 0x1b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xa9, 0x83, 0x83, 0xd5, 0x92, 0x38, 0xc7, 0xa1, 0x05, 0xc9, 0x90, 0x41, 0xb4, 0xa0, 0xfe, 0x20, 0x44, 0xfc, 0x07, 0xd1, 0x06, 0x91, 0x07, 0x6c, 0x34, 0x88, 0x16, 0x76, 0x10, 0x2c, 0xfc, 0x06, 0x11, 0xff, 0xb5, 0x76, 0x90, 0x00, 0xf2, 0x70, 0x30, 0xcc, 0xc2, 0x8f, 0xe7, 0x83, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0x44, 0xfc, 0xd7, 0xda, 0x41, 0x5a, 0xcc, 0xc3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xe3, 0xf9, 0x83, 0x81, 0xc8, 0x7c, 0x1c, 0x1a, 0x76, 0x41, 0xb0, 0xf0, 0x0b, 0xbf, 0xc1, 0x70, 0x94, 0x3e, 0x88, 0x67, 0xd9, 0xb3, 0x83, 0x74, 0xb7, 0x8d, 0x83, 0x34, 0x39, 0x93, 0x05, 0xc9, 0x90, 0x41, 0xb4, 0xc1, 0xb8, 0x85, 0x1d, 0x44, 0x0b, 0xe2, 0x05, 0xc1, 0xc2, 0x6f, 0x10, 0xc7, 0xa0, 0x6b, 0x07, 0x23, 0xcd, 0xe7, 0x20, 0x15, 0xeb, 0xfa, 0x20, 0x30, 0xb1, 0x07, 0xd1, 0xc2, 0x0e, 0x82, 0x85, 0xdf, 0x20, 0x8e, 0x41, 0xd7, 0x0e, 0x12, 0x40, 0x1e, 0x0e, 0xc6, 0x87, 0xd1, 0x21, 0xb9, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x0d, 0xc6, 0x2d, 0xec, 0x20, 0x5a, 0x10, 0x1f, 0x24, 0xc2, 0x35, 0x1c, 0x44, 0xf5, 0xe8, 0xda, 0xf1, 0xed, 0x78, 0xbc, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x19, 0x58, 0xff, 0x3a, 0x24, 0x97, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x3f, 0x88, 0x16, 0xc8, 0xb5, 0xe3, 0xd0, 0xf1, 0x78, 0x41, 0xb0, 0x38, 0x73, 0xf0, 0x80, 0xd9, 0xd2, 0xc5, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x0d, 0x62, 0x94, 0x71, 0xed, 0x20, 0x19, 0x69, 0xfd, 0x90, 0x86, 0x1b, 0x76, 0x83, 0x51, 0x2f, 0xb9, 0x20, 0x58, 0xf8, 0x0d, 0xe2, 0x88, 0xfb, 0xec, 0x20, 0xb5, 0xc7, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xa1, 0x05, 0xd0, 0x41, 0xb2, 0xf8, 0xf4, 0x71, 0x68, 0x10, 0x2c, 0x08, 0x16, 0x7e, 0x83, 0x38, 0xe2, 0x3e, 0x3b, 0x48, 0xdc, 0xb0, 0x38, 0x48, 0x2e, 0x22, 0x1a, 0x76, 0x83, 0x51, 0x2f, 0xb9, 0x21, 0xfe, 0x83, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0xc4, 0x9f, 0xec, 0xd9, 0x41, 0x6a, 0x8f, 0xfb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x85, 0xdf, 0x20, 0xfe, 0x64, 0xcf, 0x0e, 0x46, 0x9a, 0xcf, 0xc1, 0x20, 0xd8, 0x39, 0x48, 0x16, 0x9f, 0x3e, 0x0e, 0x0d, 0x82, 0x85, 0xdf, 0x20, 0x92, 0x71, 0xcf, 0x0e, 0x52, 0x00, 0xdc, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x76, 0xe1, 0x16, 0x0f, 0xd6, 0xae, 0x74, 0x1f, 0x04, 0x0f, 0xf7, 0x1a, 0x87, 0x0e, 0xc9, 0x8e, 0x83, 0x01, 0xd4, 0x73, 0x1c, 0x3a, 0x1e, 0x2f, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x6c, 0x10, 0x1f, 0xa7, 0x6b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x96, 0xc1, 0x0b, 0x1c, 0xa4, 0xf8, 0x3b, 0x1f, 0x87, 0x8e, 0xc7, 0x0b, 0x82, 0xc5, 0x05, 0xc1, 0xe2, 0x06, 0xb1, 0x4e, 0x87, 0x75, 0x38, 0xc5, 0x16, 0x07, 0xc1, 0xc2, 0x2e, 0xdc, 0xe2, 0xc1, 0x7b, 0x24, 0x13, 0x0f, 0xd1, 0x5c, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x62, 0xda, 0x76, 0x6d, 0x83, 0x98, 0xb6, 0x5d, 0x3b, 0x9c, 0x62, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x86, 0xdf, 0x20, 0xea, 0xb1, 0xcf, 0x0e, 0x4a, 0x86, 0xa6, 0x43, 0x07, 0x8d, 0x61, 0x17, 0x6e, 0xf1, 0xe0, 0xe5, 0x30, 0x9b, 0x87, 0x68, 0xae, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0x11, 0x9c, 0xbb, 0xb6, 0x41, 0x04, 0xe7, 0xae, 0x1d, 0x4e, 0xb1, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0xc3, 0x6f, 0x10, 0xf5, 0xd8, 0x67, 0x07, 0xef, 0xbf, 0x37, 0x3b, 0x74, 0xd0, 0x18, 0x76, 0xe1, 0x16, 0x0f, 0x1a, 0x9b, 0xf4, 0x3a, 0x44, 0x73, 0x85, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x88, 0x5c, 0xde, 0xb5, 0x0d, 0x22, 0x97, 0x77, 0xed, 0x70, 0x8a, 0x1d, 0x0c, 0x59, 0xdf, 0x61, 0x17, 0x6e, 0xf1, 0x60, 0xa0, 0xd5, 0x1f, 0xa2, 0xb9, 0xc2, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0x44, 0xac, 0xef, 0xda, 0x06, 0x11, 0xeb, 0xbb, 0x76, 0x38, 0xc5, 0x06, 0xc1, 0x06, 0xf1, 0xc2, 0x7d, 0x36, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0xa5, 0x32, 0xe3, 0x21, 0x5f, 0x7b, 0x1c, 0x1a, 0x76, 0xe1, 0x16, 0x0f, 0x62, 0xf5, 0x13, 0xed, 0x10, 0xcd, 0x15, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x20, 0xd2, 0x83, 0xd7, 0x36, 0x88, 0xf4, 0xe0, 0xb5, 0xc3, 0x29, 0x36, 0x08, 0x36, 0x88, 0x17, 0xee, 0xb3, 0x83, 0xf5, 0xe8, 0x5a, 0xc3, 0x2e, 0xdc, 0x06, 0x8f, 0xb7, 0xcd, 0x3a, 0x44, 0x73, 0x0d, 0x9e, 0x64, 0x9b, 0x35, 0x08, 0x36, 0x88, 0x17, 0xee, 0xb3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x4b, 0x10, 0x6b, 0x0e, 0xf9, 0xda, 0xe3, 0xd0, 0xb0, 0x0b, 0xb7, 0x78, 0x10, 0x07, 0xa2, 0x68, 0x87, 0x68, 0xae, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0xf1, 0x68, 0xbc, 0xb6, 0x41, 0x3c, 0x1a, 0xaf, 0x1d, 0x4e, 0xb1, 0x41, 0xb0, 0x41, 0xbc, 0x70, 0x9f, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x78, 0xb0, 0x0a, 0xf1, 0xf5, 0x90, 0xaf, 0x3d, 0x0e, 0x0d, 0xbb, 0x70, 0x8b, 0x07, 0x51, 0x41, 0x8a, 0x76, 0x88, 0xe6, 0x0a, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0x10, 0xe7, 0xc9, 0x6b, 0x1b, 0xc4, 0x79, 0xf2, 0xda, 0xe1, 0x14, 0x1b, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x36, 0x88, 0x6e, 0xec, 0xb3, 0x83, 0xc3, 0x46, 0xef, 0xa1, 0x83, 0xc6, 0xb0, 0x0b, 0xb7, 0x78, 0xf0, 0x52, 0x78, 0xcd, 0x43, 0x34, 0x57, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0xf8, 0x66, 0x5e, 0xdb, 0x20, 0xbe, 0x99, 0xd7, 0x0e, 0xa7, 0xd8, 0x41, 0xe4, 0x2d, 0xaf, 0x0d, 0xbb, 0x70, 0x8b, 0x07, 0x71, 0x79, 0x8a, 0x76, 0x88, 0xe6, 0x0a, 0xbb, 0x70, 0x1b, 0xa2, 0x79, 0x10, 0xe7, 0xce, 0x6b, 0x1b, 0xc4, 0xb9, 0xf3, 0xda, 0xe1, 0x14, 0x1b, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0xfc, 0x06, 0x51, 0x8f, 0x7d, 0x76, 0xf0, 0xbe, 0xdb, 0x9e, 0x43, 0x07, 0x8d, 0x85, 0x5d, 0xb8, 0x0d, 0xd1, 0x1c, 0x0f, 0x62, 0x9d, 0x0e, 0x6b, 0x83, 0x48, 0x90, 0x5e, 0x3b, 0x9c, 0x62, 0x07, 0x91, 0x07, 0xbd, 0x76, 0x68, 0xfe, 0x72, 0x3c, 0x1e, 0x04, 0x1b, 0x44, 0x70, 0xee, 0xda, 0xe2, 0x20, 0x58, 0xd8, 0x0d, 0x1d, 0x47, 0x16, 0x76, 0x83, 0x78, 0x76, 0x5e, 0x5b, 0x83, 0x38, 0x7b, 0x5e, 0x3b, 0x88, 0xbd, 0xe1, 0xb5, 0x61, 0x37, 0x88, 0xe7, 0xe4, 0xb5, 0x35, 0x88, 0x33, 0xe5, 0xb5, 0x05, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x1d, 0x94, 0x43, 0x49, 0x87, 0xa6, 0x40, 0x83, 0x60, 0x83, 0x78, 0xe1, 0x3e, 0x3b, 0x78, 0xce, 0x35, 0xd9, 0x06, 0xd1, 0xd5, 0xbc, 0x36, 0x08, 0x36, 0x88, 0x09, 0xeb, 0xb5, 0x43, 0x07, 0x8d, 0x61, 0x17, 0x6e, 0x83, 0x98, 0xb6, 0x5d, 0x3b, 0xa4, 0x0e, 0x16, 0x76, 0xe1, 0x36, 0xa4, 0x0e, 0x0e, 0x62, 0xda, 0x76, 0xed, 0x20, 0xda, 0x6f, 0xd7, 0x86, 0x5d, 0xb8, 0x0d, 0x22, 0x97, 0x77, 0xed, 0x90, 0x3a, 0x58, 0xd8, 0x85, 0xdb, 0x90, 0x3a, 0x38, 0x88, 0x5c, 0xde, 0xb5, 0x83, 0x88, 0xee, 0x5d, 0x1b, 0x76, 0xe1, 0x36, 0x88, 0x58, 0xdf, 0xb5, 0x43, 0xea, 0x60, 0x61, 0x17, 0x6e, 0x43, 0xea, 0xe0, 0x20, 0x62, 0x7d, 0xd7, 0x0e, 0xe2, 0xf7, 0x77, 0x6d, 0xd8, 0x85, 0xdb, 0x20, 0xd2, 0x83, 0xd7, 0x0e, 0xa9, 0x83, 0x85, 0x5d, 0xb8, 0x0d, 0xa9, 0x83, 0x83, 0x48, 0x0f, 0x5e, 0x3b, 0x88, 0x82, 0xe1, 0xb5, 0x61, 0x17, 0x6e, 0x83, 0xc7, 0xdb, 0x66, 0x1d, 0x52, 0x07, 0x0b, 0xbb, 0x70, 0x1b, 0x52, 0x07, 0x07, 0x8f, 0xb7, 0xcd, 0x3a, 0x78, 0xec, 0x6d, 0xd6, 0xb0, 0x0b, 0xb7, 0x41, 0x3c, 0x1a, 0xaf, 0x1d, 0x52, 0x07, 0x0b, 0xbb, 0x70, 0x1b, 0x52, 0x07, 0x07, 0xf1, 0x68, 0xbc, 0x76, 0x10, 0xab, 0xc7, 0x6b, 0xc3, 0x2e, 0xdc, 0x06, 0x91, 0x20, 0xbd, 0x76, 0x48, 0x1d, 0x2c, 0xec, 0xc2, 0x6d, 0x48, 0x1d, 0x1c, 0x44, 0x82, 0xf4, 0xda, 0x41, 0x74, 0x49, 0xaf, 0x0d, 0xbb, 0x70, 0x1b, 0x52, 0x07, 0x07, 0x11, 0x9c, 0xbb, 0x76, 0x10, 0xdb, 0xba, 0x6b, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0xc5, 0x05, 0xc1, 0x86, 0xc4, 0xd4, 0xe2, 0x20, 0xd8, 0x10, 0xcd, 0x41, 0xb0, 0x21, 0x86, 0x83, 0x60, 0x71, 0x41, 0xb0, 0xf0, 0x0b, 0xbf, 0xf0, 0x1b, 0xc4, 0xf1, 0xef, 0xd9, 0xc1, 0x1b, 0x01, 0x4a, 0x8e, 0x6f, 0xc7, 0xb7, 0x41, 0xb0, 0xc1, 0xc8, 0x7f, 0x58, 0x1c, 0x76, 0x43, 0x1e, 0x6b, 0xc3, 0x29, 0x36, 0xec, 0x06, 0x0f, 0xb4, 0x6a, 0x58, 0x43, 0x23, 0xc1, 0x41, 0xb0, 0xf0, 0x0b, 0xbf, 0xc1, 0x49, 0xe8, 0xf8, 0x20, 0x9e, 0x65, 0xcf, 0x0e, 0xca, 0x25, 0xba, 0x83, 0x61, 0x16, 0x3e, 0x08, 0x16, 0x04, 0x1b, 0x9c, 0x30, 0xd1, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x7a, 0x08, 0x1d, 0xbc, 0xae, 0x4f, 0xe7, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x05, 0xf1, 0x06, 0x21, 0x00, 0x7e, 0xd8, 0x2b, 0x1c, 0x44, 0x0b, 0xd2, 0x0d, 0x42, 0x0a, 0x7c, 0x10, 0x2c, 0xfc, 0xc2, 0x6f, 0x70, 0xcc, 0x2a, 0x3e, 0x88, 0x67, 0xd9, 0xb3, 0x83, 0x04, 0x90, 0x87, 0x83, 0x75, 0xa8, 0xfc, 0xc7, 0xf3, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0xc3, 0xb8, 0x0c, 0x82, 0x85, 0xdf, 0x20, 0x8e, 0x41, 0xd7, 0x0e, 0x06, 0x2c, 0xcf, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x6f, 0xe8, 0x4f, 0x3e, 0x08, 0x16, 0x04, 0x0b, 0xbf, 0x41, 0x1c, 0x83, 0xae, 0x1d, 0x24, 0x6e, 0x58, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xe4, 0x6b, 0x0f, 0x52, 0xc3, 0x4e, 0x8e, 0x43, 0xc3, 0x6e, 0x30, 0xea, 0x25, 0x37, 0x0e, 0x0d, 0x82, 0x85, 0xdf, 0x20, 0x0e, 0xd1, 0xd7, 0x0e, 0x46, 0x9a, 0xcf, 0xc1, 0x02, 0x52, 0x95, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x85, 0xdf, 0x20, 0x8e, 0x41, 0xd7, 0x0e, 0x62, 0xa9, 0x6c, 0x6d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x81, 0x88, 0x7f, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe1, 0x37, 0x88, 0x63, 0xd0, 0xb5, 0x83, 0x72, 0x89, 0x6e, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x30, 0x83, 0x60, 0xe1, 0x37, 0x88, 0x63, 0xd0, 0xb5, 0x83, 0x54, 0x22, 0x8b, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x44, 0x09, 0xe9, 0xda, 0xa1, 0x83, 0xc6, 0x41, 0x6a, 0xd8, 0xc9, 0x71, 0x68, 0x10, 0x2c, 0xfc, 0x06, 0x71, 0x88, 0xbe, 0x76, 0x10, 0x69, 0x68, 0x6b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x1e, 0x82, 0x5c, 0x72, 0x30, 0x78, 0x27, 0x8f, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0x78, 0xbc, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x04, 0x0b, 0xbb, 0x61, 0xd7, 0x60, 0xc3, 0x29, 0x36, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x0d, 0xe2, 0x18, 0x74, 0x6d, 0x90, 0x0c, 0x08, 0xf4, 0xbe, 0x83, 0xf1, 0xae, 0x73, 0x10, 0x51, 0xa7, 0x34, 0xc3, 0x2e, 0xec, 0xc2, 0x6d, 0x10, 0xd3, 0xb6, 0x6b, 0x87, 0x1e, 0x42, 0x1b, 0x62, 0x38, 0xec, 0xc2, 0x6d, 0x10, 0xb9, 0xbc, 0x6b, 0x87, 0x1e, 0x42, 0x1b, 0x62, 0x38, 0xdc, 0x06, 0x91, 0x1e, 0xbc, 0x76, 0xe8, 0x21, 0xb4, 0x06, 0x05, 0xc6, 0xdb, 0xb0, 0x1b, 0xc4, 0x70, 0xff, 0xda, 0xc6, 0xa1, 0x61, 0x37, 0x88, 0xa5, 0xff, 0xb5, 0x8d, 0x43, 0x83, 0x6c, 0x0d, 0xed, 0xd7, 0x0f, 0x62, 0xd2, 0x7f, 0xed, 0xa0, 0x60, 0x43, 0x1a, 0x76, 0xe1, 0x36, 0x88, 0xe0, 0xdc, 0xb5, 0x43, 0x0f, 0xa1, 0x05, 0xc1, 0x82, 0x64, 0xc8, 0x20, 0x5a, 0x90, 0x8e, 0x07, 0xb1, 0xf5, 0x87, 0x75, 0x3c, 0xdf, 0x20, 0xa4, 0xc0, 0x07, 0xc1, 0xc2, 0x6f, 0x10, 0x83, 0xec, 0x6b, 0x83, 0x64, 0x20, 0xbd, 0x73, 0x10, 0xe4, 0xfc, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x85, 0xdf, 0x20, 0x06, 0xd9, 0xd7, 0x06, 0xc9, 0x40, 0xda, 0xe9, 0x60, 0xbc, 0xeb, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x8a, 0x45, 0x07, 0x41, 0xe9, 0x7d, 0x1c, 0x3a, 0x0e, 0x0d, 0xbb, 0x70, 0x1b, 0x44, 0x82, 0xf4, 0xda, 0xa1, 0x87, 0xd0, 0x1a, 0x14, 0x18, 0x6f, 0x83, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0xc4, 0x21, 0xfa, 0xda, 0x41, 0x2a, 0x91, 0xc5, 0x41, 0x62, 0x1d, 0xf6, 0x20, 0x58, 0x10, 0x2c, 0xfc, 0x06, 0x31, 0xc8, 0xbe, 0x76, 0x10, 0xbd, 0xfc, 0x6b, 0x07, 0x51, 0x93, 0x81, 0x33, 0x08, 0x36, 0x58, 0x47, 0xaa, 0x71, 0x10, 0x19, 0x7a, 0x6b, 0xc3, 0x2e, 0xec, 0x06, 0xe9, 0x8a, 0xd6, 0x0b, 0xb7, 0x41, 0x9c, 0x3b, 0xaf, 0x1d, 0x0c, 0xa2, 0x95, 0xc3, 0xd1, 0xbe, 0x82, 0x60, 0xe1, 0x37, 0x88, 0x43, 0xf4, 0xb5, 0x83, 0x11, 0xdb, 0x3a, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x10, 0xff, 0xe1, 0x37, 0x9e, 0x0f, 0x33, 0x08, 0x36, 0x88, 0x4f, 0x04, 0xb6, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0xbf, 0x41, 0x1c, 0xa2, 0xaf, 0x1d, 0x24, 0x80, 0x3c, 0x1c, 0xb4, 0x4e, 0xad, 0x72, 0x90, 0x1a, 0x76, 0x72, 0x1c, 0x3a, 0x0e, 0x0d, 0x82, 0x0d, 0xd2, 0xc7, 0x89, 0x0e, 0x62, 0x9d, 0xb5, 0x68, 0xd8, 0x85, 0xdd, 0x20, 0x5d, 0xd1, 0x7a, 0xe1, 0x36, 0x88, 0x6f, 0xe6, 0xb5, 0x83, 0x41, 0xb4, 0x72, 0x38, 0xda, 0xd7, 0xa0, 0xc0, 0x78, 0x1b, 0x7e, 0x41, 0xb4, 0x60, 0x7c, 0x10, 0x81, 0x08, 0x6c, 0xc7, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0xc4, 0x21, 0xfa, 0xda, 0x20, 0x19, 0x70, 0x7c, 0xed, 0x3b, 0x18, 0xef, 0x3a, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x06, 0x77, 0xe5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x6f, 0x30, 0xf8, 0x63, 0x0e, 0x31, 0x5c, 0xf8, 0x8d, 0xe7, 0x07, 0x05, 0xc6, 0xdb, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc2, 0x6f, 0x10, 0x87, 0xe8, 0x6b, 0x07, 0xd1, 0xcb, 0xbf, 0x36, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x10, 0xff, 0x83, 0xc1, 0x3b, 0x79, 0x1c, 0x3a, 0x0e, 0x1d, 0x87, 0x86, 0x5d, 0xd8, 0x0d, 0xd2, 0x15, 0xad, 0x17, 0x6e, 0x83, 0x38, 0x4f, 0x5e, 0x3b, 0x18, 0x44, 0x2b, 0x87, 0xa3, 0x7d, 0x41, 0xb0, 0xc1, 0xe0, 0xae, 0x1c, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x0d, 0x86, 0xd5, 0xca, 0x21, 0x86, 0x1b, 0xe2, 0x7f, 0x10, 0x59, 0x90, 0x25, 0xc7, 0xa1, 0x41, 0xb6, 0xa1, 0xf9, 0xfa, 0x20, 0x5b, 0x43, 0x1e, 0x7b, 0x71, 0x10, 0x2c, 0xfc, 0x06, 0x31, 0xc8, 0xbe, 0x76, 0xf0, 0x50, 0xfc, 0x86, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc2, 0x6f, 0x10, 0x83, 0xec, 0x6b, 0x07, 0x6f, 0xd7, 0x6f, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x71, 0xc3, 0xc4, 0xad, 0xa1, 0x8e, 0x6f, 0x78, 0xf9, 0x6e, 0x0e, 0xa2, 0xf1, 0x1b, 0x6d, 0x83, 0x05, 0x0d, 0x53, 0x6b, 0xa8, 0xe3, 0x1b, 0x5e, 0xbe, 0x9b, 0x83, 0x27, 0xdc, 0x66, 0xad, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x39, 0x88, 0x03, 0x51, 0xb4, 0xc3, 0x29, 0xb6, 0x86, 0x3a, 0xbe, 0xe1, 0xe5, 0xbb, 0x39, 0x18, 0x68, 0xf5, 0x87, 0x53, 0x6c, 0xf8, 0x8d, 0xe7, 0x8b, 0x07, 0xd1, 0xf8, 0x8d, 0x76, 0xe8, 0x21, 0x74, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x0f, 0xa7, 0xd8, 0x20, 0xd8, 0x38, 0x74, 0x30, 0xd2, 0xb4, 0x8e, 0xc7, 0x83, 0x60, 0x43, 0x62, 0x6a, 0x71, 0xd8, 0x0d, 0xbb, 0x06, 0x1b, 0x4e, 0xb1, 0x41, 0xb0, 0x20, 0xd8, 0x20, 0xfd, 0x4b, 0xe1, 0xa0, 0xfd, 0x46, 0xa6, 0x61, 0x37, 0x08, 0x92, 0xe6, 0x0d, 0x42, 0x00, 0x7c, 0x83, 0x10, 0x00, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x10, 0x52, 0xe0, 0x87, 0x8e, 0x61, 0xc7, 0xf3, 0xe3, 0xf1, 0x20, 0xd8, 0x20, 0xdd, 0x52, 0x7a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0xc0, 0x0f, 0x39, 0x08, 0x11, 0xff, 0xe3, 0xd0, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x31, 0xb5, 0x38, 0x08, 0x16, 0x04, 0x0b, 0xbf, 0x41, 0xfc, 0xc9, 0x9e, 0x0d, 0x92, 0x01, 0xc1, 0xef, 0x74, 0x30, 0xde, 0x75, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x1c, 0x4e, 0x8a, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0xf8, 0x0d, 0xe2, 0x4f, 0xf6, 0xec, 0x60, 0xc0, 0xf2, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x48, 0x76, 0x9a, 0x3e, 0x64, 0xed, 0x8e, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0xbf, 0x41, 0xfc, 0xc9, 0x9e, 0x0d, 0x92, 0x01, 0xe9, 0xaf, 0x7d, 0x07, 0xe3, 0x5d, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x20, 0xfe, 0x64, 0xcf, 0x06, 0xc9, 0xc0, 0xad, 0x75, 0x10, 0xe4, 0xfc, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0x83, 0xf8, 0x93, 0x3d, 0x1b, 0x24, 0x03, 0xcd, 0xa9, 0x0e, 0x82, 0x9c, 0xff, 0x38, 0x74, 0x1c, 0x1a, 0x04, 0x1b, 0x0c, 0xee, 0xca, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xd4, 0xc1, 0x61, 0xed, 0xf7, 0x38, 0x74, 0x3c, 0xde, 0xa0, 0x64, 0x68, 0x5a, 0x10, 0x6c, 0x10, 0xf3, 0xb5, 0x6b, 0x8b, 0xc3, 0x6e, 0x10, 0xcf, 0xc9, 0x6b, 0x0b, 0xbb, 0xb0, 0x0b, 0xb7, 0x20, 0x58, 0xf8, 0x0d, 0xe2, 0x4f, 0xf6, 0xec, 0x20, 0x19, 0x69, 0xfd, 0xd0, 0x41, 0xe3, 0x10, 0xc3, 0xc3, 0xfa, 0xe6, 0xc2, 0x2e, 0x08, 0x16, 0x7e, 0x83, 0xf8, 0x93, 0x3d, 0x1b, 0x24, 0x03, 0x8a, 0xf7, 0xbe, 0x83, 0xf1, 0xae, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xaf, 0x3d, 0x48, 0x59, 0x50, 0x38, 0x0e, 0x1d, 0xd2, 0xb9, 0x87, 0xa3, 0x7d, 0xd8, 0x0d, 0xe2, 0x98, 0x79, 0x6d, 0x43, 0x0c, 0x87, 0x5d, 0xb8, 0x0d, 0x22, 0x41, 0x7a, 0xed, 0x10, 0xcd, 0x0d, 0x31, 0x3c, 0x88, 0xd4, 0xdc, 0xb5, 0xe3, 0xf1, 0x82, 0x60, 0x83, 0x98, 0xaf, 0x5d, 0x5b, 0x1c, 0x76, 0x83, 0x78, 0x4e, 0x5e, 0x5b, 0x10, 0x2c, 0x08, 0x36, 0x88, 0x0f, 0xd7, 0xb5, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x09, 0xb7, 0x27, 0x07, 0x0b, 0x20, 0x66, 0x8e, 0x43, 0x83, 0x60, 0x41, 0xb0, 0x41, 0xd4, 0x1f, 0x9f, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xac, 0xfd, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0xf3, 0xb5, 0x6b, 0x8b, 0xc3, 0x2e, 0x08, 0x36, 0x58, 0x05, 0x79, 0x70, 0x68, 0xd4, 0xb2, 0x21, 0x55, 0x73, 0xf0, 0xe0, 0xd3, 0x9b, 0xe3, 0xf1, 0x71, 0x68, 0x10, 0x2c, 0x08, 0x16, 0x7e, 0x83, 0x98, 0x5f, 0x3e, 0x3b, 0x68, 0x35, 0x8f, 0x69, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x31, 0x33, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0xcc, 0xd7, 0xae, 0x2d, 0x0e, 0xbb, 0x20, 0xd8, 0xa0, 0x55, 0x56, 0x95, 0x43, 0xa3, 0x96, 0x05, 0xc9, 0x90, 0x83, 0x36, 0x52, 0x5b, 0x0e, 0x52, 0xb4, 0xaf, 0x8f, 0xc7, 0xc7, 0xa1, 0x41, 0xb0, 0x20, 0x58, 0x10, 0x2c, 0xfc, 0x06, 0x71, 0xfc, 0x7b, 0x76, 0x90, 0x8c, 0xb4, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0xf8, 0x0d, 0xe2, 0xf8, 0xf7, 0x6c, 0x90, 0x0c, 0x58, 0xfa, 0xde, 0x77, 0x30, 0xde, 0x75, 0x0e, 0x8d, 0x5a, 0x8e, 0x43, 0x83, 0x60, 0xe1, 0x37, 0x88, 0xf8, 0xaf, 0xb5, 0x83, 0x15, 0x2f, 0x3c, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x7b, 0x85, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x8c, 0xfc, 0x87, 0xc5, 0x0d, 0xca, 0xff, 0xbc, 0x61, 0x17, 0xee, 0x20, 0xfa, 0xc2, 0xd6, 0x16, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0x11, 0xcb, 0xc0, 0x36, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xb0, 0x57, 0x38, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xf0, 0x1b, 0xc4, 0x21, 0xfa, 0xda, 0x41, 0x32, 0xd2, 0xfa, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe1, 0x37, 0x88, 0x43, 0xf4, 0xb5, 0x83, 0xe8, 0x28, 0x62, 0x1b, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0xfc, 0x06, 0x71, 0x88, 0xbe, 0x36, 0x48, 0x36, 0x28, 0xa2, 0xbb, 0x0e, 0xc6, 0xbb, 0xce, 0x41, 0xac, 0xc5, 0xdd, 0x1c, 0x87, 0x8e, 0x43, 0xc7, 0xa1, 0x41, 0xb0, 0xf0, 0x1b, 0xc4, 0x20, 0xfb, 0xda, 0x41, 0x2a, 0x91, 0xc5, 0x41, 0xec, 0x3b, 0xcb, 0x0c, 0x82, 0x05, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x44, 0x7a, 0xf0, 0xda, 0x71, 0xe8, 0x60, 0xbc, 0xeb, 0x0c, 0xb2, 0x35, 0xe4, 0xb1, 0x17, 0x07, 0xc1, 0xc2, 0x2f, 0xfc, 0x06, 0xa7, 0x33, 0xe4, 0x83, 0x78, 0x96, 0x3d, 0x3b, 0x78, 0x28, 0x7e, 0xc3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe1, 0x37, 0x88, 0x95, 0x28, 0xb6, 0x83, 0xb7, 0xeb, 0x37, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0xb8, 0x61, 0xe2, 0xd6, 0x50, 0xc7, 0x37, 0xbc, 0x7c, 0x37, 0x07, 0x31, 0xea, 0x93, 0x76, 0xd0, 0x5e, 0x62, 0xfe, 0xf0, 0x1b, 0xcf, 0x17, 0x0f, 0x62, 0xd4, 0x27, 0x6d, 0x10, 0x2c, 0xfc, 0xc2, 0x6f, 0x70, 0xf6, 0x32, 0x3e, 0x88, 0x67, 0xd9, 0xb3, 0x83, 0x64, 0xa4, 0xf5, 0x83, 0x81, 0x2d, 0x7a, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x87, 0x5d, 0xb8, 0x0d, 0xa2, 0xb7, 0x8a, 0x6d, 0x10, 0x6c, 0x10, 0xdb, 0x55, 0x6c, 0x07, 0xa5, 0x55, 0xd2, 0x82, 0x60, 0xe1, 0x37, 0x88, 0xf9, 0x2a, 0xb6, 0x83, 0x14, 0x00, 0xf7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xc1, 0xc3, 0x7d, 0x48, 0x1d, 0x1c, 0x87, 0x0e, 0xa7, 0xd8, 0x20, 0x58, 0xf8, 0x0d, 0xe2, 0x10, 0x7d, 0xed, 0x20, 0x05, 0xc0, 0x7d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xa1, 0x63, 0xd8, 0x21, 0x6b, 0x77, 0x1c, 0x3a, 0x1e, 0x1f, 0x87, 0x06, 0xc1, 0xc2, 0x6f, 0x10, 0xf1, 0x5f, 0x6b, 0x07, 0x29, 0x00, 0xee, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xe3, 0x32, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xf0, 0x1b, 0x44, 0xfc, 0xd7, 0xda, 0x41, 0x74, 0x14, 0xb1, 0x1d, 0x1a, 0xb5, 0x1c, 0x87, 0x86, 0xdd, 0x20, 0x8e, 0x99, 0xd7, 0x16, 0x04, 0x0b, 0xbf, 0x41, 0xfc, 0xc9, 0x9e, 0x1d, 0xa4, 0x00, 0xb8, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x48, 0x0f, 0x5e, 0x3b, 0x88, 0x3f, 0x1a, 0xb6, 0xe3, 0xf1, 0xf0, 0x1b, 0xcf, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xc4, 0x79, 0xf2, 0xda, 0x61, 0x5c, 0x8e, 0xc7, 0xc7, 0xa1, 0x61, 0x37, 0x88, 0x67, 0xe7, 0xb5, 0x05, 0xd9, 0x1a, 0xf2, 0xd8, 0x8b, 0x83, 0x60, 0x83, 0x78, 0xf6, 0x3e, 0x1b, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0x27, 0xe0, 0x67, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x2f, 0x6e, 0x98, 0xb8, 0x35, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0xcd, 0x41, 0x1c, 0x34, 0xa5, 0x6d, 0x98, 0xb8, 0x35, 0xcc, 0xfd, 0x86, 0x95, 0xa1, 0x83, 0x56, 0xfe, 0x29, 0x36, 0xcc, 0xfd, 0x06, 0xd1, 0xf0, 0x94, 0xb6, 0xa1, 0x8e, 0xac, 0x61, 0x86, 0xd6, 0x30, 0x71, 0x1b, 0xa6, 0xf3, 0xe0, 0x09, 0x1b, 0x18, 0x1b, 0x4e, 0x84, 0x0d, 0x22, 0x01, 0x8d, 0x6d, 0x83, 0xc5, 0x6c, 0x50, 0xcb, 0x2c, 0x1b, 0x3e, 0xb1, 0x59, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xdd, 0x83, 0xec, 0xe0, 0xad, 0x3a, 0x3c, 0x07, 0x2b, 0xe9, 0xf4, 0x0f, 0xa7, 0xd8, 0xe1, 0x14, 0x3b, 0x88, 0xc1, 0x34, 0xb6, 0xe1, 0x37, 0x9e, 0x2f, 0x1e, 0xc4, 0x41, 0x53, 0xda, 0x06, 0x09, 0x65, 0x27, 0x87, 0x46, 0x82, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0xd8, 0x05, 0xc1, 0x06, 0x11, 0x51, 0x7b, 0x36, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0xd0, 0x43, 0xe8, 0x20, 0x35, 0xec, 0xe4, 0x38, 0xb4, 0x20, 0xd8, 0x20, 0xda, 0x52, 0x84, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x70, 0xf4, 0x36, 0x3f, 0x74, 0xd0, 0xd8, 0x20, 0xe1, 0xf6, 0x64, 0xf8, 0x8d, 0xe7, 0xe3, 0xc1, 0x03, 0x66, 0x4b, 0x8f, 0x43, 0x87, 0x53, 0x6c, 0xd8, 0x0d, 0xa2, 0x19, 0x87, 0x6d, 0x41, 0xb0, 0x41, 0xdc, 0x7c, 0xb1, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x48, 0x0f, 0x5e, 0x3b, 0x34, 0x12, 0x3c, 0x1e, 0x0f, 0xbf, 0xf1, 0xfc, 0x20, 0x7e, 0xdc, 0xd8, 0x8e, 0x43, 0xc3, 0x6e, 0x10, 0xa9, 0xb9, 0x6b, 0x0b, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x88, 0x04, 0xe9, 0xb5, 0x0d, 0xe2, 0x8f, 0x86, 0x6d, 0x10, 0x2c, 0xfc, 0x06, 0xf1, 0x27, 0x7b, 0x76, 0x10, 0xe5, 0x05, 0x6c, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0x62, 0xd1, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc2, 0x6f, 0x10, 0x7f, 0xb2, 0x67, 0x07, 0x71, 0x58, 0xb9, 0x76, 0xe8, 0xa0, 0x71, 0x1c, 0x3a, 0x1e, 0x0f, 0xbb, 0x41, 0x44, 0x07, 0xaf, 0x2d, 0x08, 0x36, 0x88, 0xb6, 0x14, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x1c, 0xbd, 0xcd, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0xbf, 0xf0, 0x1b, 0x56, 0x68, 0x87, 0xdf, 0xe0, 0x5d, 0x22, 0x11, 0x07, 0x07, 0x9a, 0xdb, 0x83, 0xb5, 0x7c, 0x02, 0x87, 0x0e, 0x1a, 0xc7, 0xa1, 0x0d, 0x12, 0x6e, 0x4f, 0x86, 0xdf, 0x78, 0x7e, 0x10, 0x29, 0xb2, 0x6b, 0xc7, 0xa1, 0x61, 0x37, 0x88, 0x50, 0xde, 0xb5, 0x05, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x44, 0x7a, 0xf0, 0xda, 0xc1, 0xc1, 0x40, 0xf7, 0x78, 0x3c, 0xec, 0x06, 0xb1, 0x6b, 0xbb, 0xb6, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x48, 0x0f, 0x5e, 0x3b, 0x8c, 0xcb, 0xf1, 0x78, 0x90, 0x6d, 0x68, 0xbe, 0x3e, 0xc8, 0xd6, 0x90, 0xc7, 0x5e, 0x1c, 0x04, 0x1b, 0xc4, 0xb3, 0xf7, 0xd9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x38, 0x01, 0x3f, 0x1b, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x83, 0x88, 0xfb, 0x60, 0x1b, 0x7e, 0xe3, 0xf9, 0x06, 0x71, 0x34, 0xc2, 0x76, 0x88, 0xe6, 0x71, 0xe8, 0x38, 0x74, 0x3c, 0x3e, 0x9c, 0x62, 0xc7, 0xe3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x83, 0x77, 0x89, 0x44, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0x41, 0x9c, 0x27, 0xaf, 0x1d, 0x52, 0x07, 0xc7, 0xa1, 0xe3, 0xf1, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x6c, 0x0d, 0x79, 0xec, 0xc5, 0x41, 0xb0, 0xf0, 0x1b, 0xc4, 0x11, 0xf7, 0xd9, 0xc1, 0x43, 0xf1, 0x1b, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0xbf, 0x41, 0x1c, 0x71, 0x9f, 0x1d, 0xbc, 0x5d, 0xbf, 0x61, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0xc5, 0x0d, 0x75, 0x7c, 0xc3, 0xcb, 0x77, 0x73, 0x10, 0x31, 0x6c, 0x69, 0xc3, 0x6f, 0x3c, 0x1f, 0x0f, 0x22, 0x86, 0x2d, 0xed, 0x38, 0x74, 0x1c, 0x3a, 0x1e, 0x0f, 0xbb, 0x70, 0x0b, 0x82, 0x85, 0xdf, 0x20, 0x46, 0x19, 0xd7, 0x0e, 0x0e, 0x3c, 0xbb, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x92, 0x9d, 0xa6, 0x0f, 0xa9, 0x9a, 0xe3, 0xd0, 0xc1, 0xd2, 0xf0, 0xad, 0x85, 0x5f, 0x10, 0x2c, 0xfc, 0x06, 0x31, 0xca, 0xb8, 0x76, 0x30, 0x94, 0xab, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0xbf, 0xf0, 0x0b, 0xbf, 0xc1, 0xc1, 0x19, 0xfd, 0xe0, 0x40, 0x73, 0x7b, 0x90, 0xc6, 0x7d, 0x72, 0x30, 0xee, 0xa0, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0xbf, 0x41, 0x8c, 0x32, 0xae, 0x1d, 0x0c, 0x58, 0x9e, 0x83, 0x98, 0x5e, 0x64, 0x3b, 0x0e, 0x1d, 0x87, 0x86, 0xdd, 0x60, 0xd4, 0x4b, 0x6e, 0x38, 0xc5, 0x8e, 0xe7, 0x87, 0x53, 0xec, 0x78, 0xbc, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x41, 0x7c, 0x9c, 0xae, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0xec, 0x86, 0xf5, 0xbd, 0x85, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0xc7, 0x83, 0xe8, 0xfa, 0xac, 0x39, 0xbe, 0x0d, 0x82, 0x0d, 0x96, 0xc1, 0x0b, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x7e, 0x83, 0xb8, 0x75, 0x64, 0x3b, 0x58, 0xcb, 0x27, 0x70, 0x68, 0xd4, 0x72, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0xb8, 0x41, 0xda, 0xc6, 0xf3, 0xc1, 0xdb, 0xc3, 0x8f, 0x8e, 0xc7, 0x0b, 0x82, 0xc5, 0x05, 0xc1, 0x06, 0x71, 0x99, 0x62, 0xb2, 0x38, 0x08, 0x56, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0xf8, 0x0d, 0x96, 0x96, 0xa4, 0x0d, 0xbf, 0x41, 0x8c, 0x32, 0xae, 0x1d, 0xbc, 0x1f, 0xa1, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x58, 0x5a, 0x92, 0x36, 0xfc, 0x06, 0x31, 0xca, 0xb8, 0x76, 0x50, 0x32, 0x34, 0x1d, 0x87, 0x0e, 0x69, 0xb8, 0x05, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x1d, 0x44, 0xc0, 0x26, 0xdb, 0xa1, 0x29, 0xd0, 0x82, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x06, 0xd1, 0x96, 0xc9, 0x36, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x85, 0xdf, 0xb0, 0x42, 0x7b, 0xb0, 0xea, 0x24, 0x6d, 0xf8, 0x0d, 0x62, 0x94, 0x71, 0xed, 0x60, 0x5d, 0x2a, 0xd8, 0xc1, 0xc2, 0xe4, 0x9f, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x71, 0xe8, 0xd0, 0x89, 0x68, 0x41, 0xb0, 0x41, 0x04, 0x75, 0xb2, 0x1d, 0x2c, 0xe1, 0xff, 0x59, 0x10, 0x6c, 0x10, 0x41, 0x9d, 0x6c, 0x07, 0xef, 0x39, 0xcc, 0x18, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0xfc, 0x06, 0x4b, 0x4b, 0xd2, 0x86, 0xdf, 0x20, 0x46, 0x19, 0xd7, 0x0e, 0xde, 0x7f, 0x6f, 0x76, 0xd0, 0xe8, 0x84, 0xd2, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x05, 0xc1, 0xe2, 0x06, 0xaf, 0xb9, 0xcd, 0x3b, 0x88, 0x7e, 0xc3, 0xb4, 0xc5, 0x41, 0xb0, 0xb0, 0x0b, 0xb7, 0x78, 0xf0, 0x10, 0x92, 0xcd, 0x43, 0x34, 0x57, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0xf8, 0x2c, 0x65, 0xdb, 0x20, 0x3e, 0x4b, 0xd9, 0x0e, 0xa7, 0xd8, 0x20, 0xd8, 0x20, 0x1a, 0x3e, 0xd9, 0x0e, 0xd6, 0xa3, 0x6b, 0x2d, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0x78, 0xf0, 0x9a, 0xdb, 0xbc, 0x0d, 0xe2, 0x05, 0x95, 0xed, 0x70, 0x8a, 0x0d, 0xbb, 0x70, 0x8b, 0x07, 0x91, 0x51, 0x98, 0x76, 0x18, 0x97, 0x85, 0x5d, 0xb8, 0x0d, 0xe3, 0x72, 0x10, 0x27, 0xa9, 0x6c, 0x1b, 0xc4, 0x49, 0x2a, 0xdb, 0xe1, 0x14, 0x1b, 0x76, 0xe1, 0x16, 0x0f, 0x62, 0xc3, 0x30, 0xed, 0x30, 0x2e, 0x0b, 0xbb, 0x70, 0x1b, 0xc6, 0xe5, 0x20, 0xd2, 0x55, 0xd9, 0x36, 0x88, 0x74, 0x55, 0xb6, 0xc3, 0x29, 0x36, 0xec, 0xc2, 0x6d, 0x18, 0x97, 0xf1, 0x20, 0xfa, 0x0d, 0xd3, 0x36, 0x88, 0x68, 0x56, 0xb6, 0xc3, 0x29, 0x76, 0x68, 0xfe, 0x72, 0x3c, 0x1e, 0x04, 0x8b, 0x1b, 0x44, 0x72, 0x65, 0x5a, 0x8b, 0x83, 0x60, 0x61, 0x17, 0x6e, 0xf1, 0x20, 0xfa, 0x11, 0xd3, 0x0e, 0xd1, 0x5c, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x22, 0xd8, 0x95, 0x6d, 0x83, 0x08, 0x76, 0x65, 0x3b, 0x9c, 0x62, 0x07, 0xf1, 0x72, 0xca, 0x36, 0xec, 0xc2, 0x2d, 0x1e, 0xc4, 0xd7, 0x62, 0xda, 0x21, 0x9a, 0x2b, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0x41, 0x2c, 0xc3, 0xb2, 0x6d, 0x10, 0xcb, 0xb0, 0x6c, 0x87, 0x53, 0x6c, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x20, 0x58, 0xf8, 0x0d, 0x96, 0x96, 0xa4, 0x0d, 0xbf, 0x41, 0x8c, 0x32, 0xae, 0x1d, 0xbc, 0x11, 0xa0, 0x64, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x7b, 0xf0, 0xa8, 0xb4, 0x80, 0xe3, 0xd0, 0xa1, 0x83, 0xc6, 0xb0, 0x0b, 0xb7, 0x78, 0x10, 0x49, 0x8f, 0x69, 0x87, 0x68, 0xae, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0xf1, 0x4f, 0xcb, 0xb6, 0x41, 0xfc, 0xd3, 0xb2, 0x1d, 0x4e, 0xb1, 0x83, 0xe8, 0x92, 0x65, 0x1b, 0x76, 0xe1, 0x16, 0x0f, 0x22, 0x22, 0x32, 0xed, 0x10, 0xcd, 0x15, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x20, 0x12, 0x6e, 0xd9, 0x36, 0x88, 0x84, 0x5b, 0xb6, 0xc3, 0x29, 0x76, 0x10, 0x5d, 0xb2, 0x6c, 0xc3, 0x2e, 0xdc, 0xe2, 0x41, 0x74, 0x4d, 0xa6, 0x1d, 0xa2, 0xb9, 0xc2, 0x2e, 0xdc, 0x86, 0x68, 0x1e, 0xc4, 0x44, 0x2e, 0xdb, 0x06, 0x31, 0x91, 0xcb, 0x76, 0x38, 0xc5, 0x0e, 0xa2, 0x4b, 0x96, 0x6d, 0x61, 0x17, 0x6e, 0x43, 0x34, 0xc7, 0x83, 0x48, 0xae, 0x4c, 0xdb, 0x20, 0x8a, 0x76, 0xd9, 0x0e, 0xa7, 0xd8, 0x20, 0xd8, 0x20, 0x1a, 0x3e, 0xd9, 0x0e, 0xe2, 0xce, 0xfb, 0xe4, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x20, 0xd8, 0x20, 0x2e, 0x53, 0x4c, 0x16, 0x07, 0xc1, 0x0a, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x1b, 0x44, 0x5b, 0x26, 0xdb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x43, 0x0c, 0x17, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x68, 0xf8, 0x64, 0x3b, 0x88, 0x8a, 0x44, 0x93, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x71, 0xe8, 0x90, 0x86, 0x5b, 0x10, 0x6c, 0x10, 0x41, 0x9d, 0x6c, 0x87, 0xa6, 0x40, 0x1b, 0xc4, 0x48, 0x27, 0xdb, 0x82, 0x60, 0x83, 0x68, 0xf8, 0x64, 0x1b, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xb0, 0x24, 0x5f, 0xe6, 0x20, 0xec, 0xa9, 0x8f, 0x43, 0x0b, 0x82, 0x0d, 0xa2, 0xb8, 0x97, 0xed, 0xe0, 0x3d, 0x87, 0x19, 0x83, 0x60, 0x83, 0x68, 0xf8, 0x64, 0x1b, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xb0, 0x34, 0x80, 0xe6, 0x20, 0xc1, 0x00, 0xe1, 0x38, 0x74, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x10, 0x6c, 0xb0, 0x2a, 0x1f, 0x6b, 0x71, 0x10, 0xac, 0x20, 0xd8, 0x20, 0x1a, 0x3e, 0xd9, 0x0e, 0x56, 0x01, 0x64, 0x2d, 0x08, 0x36, 0x88, 0x86, 0x4f, 0xb6, 0x83, 0xc5, 0xba, 0x4c, 0x0b, 0x82, 0x0d, 0xa2, 0xe1, 0x93, 0xed, 0x60, 0x45, 0x43, 0xd6, 0x82, 0x60, 0x83, 0x18, 0xe3, 0x64, 0x3b, 0x58, 0xc2, 0xff, 0xb3, 0x20, 0xd8, 0x20, 0x1a, 0x3e, 0xd9, 0x0e, 0xd6, 0x8a, 0x64, 0x2d, 0x08, 0x36, 0x88, 0x86, 0x4f, 0xb6, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x4b, 0xf2, 0x65, 0x0e, 0x12, 0xf7, 0x66, 0x8e, 0x43, 0x83, 0x60, 0x83, 0x68, 0xf8, 0x64, 0x1b, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xb0, 0x24, 0x5f, 0xe6, 0x60, 0x85, 0x4f, 0xd6, 0x71, 0xe8, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x82, 0x60, 0x43, 0x62, 0x6a, 0x71, 0x10, 0xac, 0x20, 0xd8, 0x20, 0x1a, 0x3e, 0xd9, 0x0e, 0x9e, 0xef, 0xda, 0x33, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x6c, 0x10, 0xdd, 0xb2, 0x6c, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xc1, 0xd2, 0x92, 0xb4, 0x83, 0xc4, 0x96, 0x93, 0xe3, 0xd0, 0xa1, 0x83, 0xc6, 0xa1, 0xf9, 0xcb, 0xf1, 0x78, 0x05, 0xc1, 0xe2, 0x90, 0x83, 0x68, 0x4e, 0xd7, 0x58, 0x1c, 0x04, 0x0b, 0xbb, 0x21, 0x8f, 0xb5, 0x86, 0x66, 0x91, 0x07, 0x0b, 0xeb, 0xa2, 0x36, 0x48, 0x0a, 0xf7, 0x19, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x74, 0x70, 0x82, 0xf0, 0x3d, 0x74, 0xd0, 0x38, 0x34, 0x7f, 0x39, 0x1e, 0x0f, 0x82, 0x0d, 0x96, 0x85, 0xc1, 0x2c, 0x0e, 0x82, 0x15, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x36, 0x88, 0xb6, 0x4c, 0xb6, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x05, 0xc1, 0x06, 0xd1, 0xf0, 0xc9, 0x76, 0xf0, 0xae, 0x70, 0xab, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x71, 0xe8, 0x90, 0x86, 0xdb, 0x20, 0x8a, 0x38, 0xd9, 0x06, 0xc1, 0x06, 0xc9, 0xd9, 0x3d, 0x87, 0x16, 0x60, 0x87, 0xe6, 0x2f, 0xc7, 0xe3, 0x05, 0xc1, 0xe2, 0x06, 0x11, 0x3d, 0x9d, 0xd6, 0xe2, 0x20, 0x58, 0xd8, 0x85, 0x5b, 0x3c, 0x88, 0x4f, 0xda, 0xb4, 0x43, 0x34, 0x57, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0xe8, 0xc5, 0x66, 0xdb, 0x20, 0x7a, 0xb1, 0xd9, 0x0e, 0xa7, 0xd8, 0xc1, 0xd0, 0xfc, 0x1d, 0x76, 0xe1, 0x16, 0x0f, 0xa2, 0xd3, 0x36, 0xed, 0x10, 0xcd, 0x15, 0x76, 0xe1, 0x36, 0x44, 0xf3, 0x20, 0x72, 0xb5, 0xd9, 0x36, 0x88, 0x5c, 0x6d, 0xb6, 0xc3, 0x29, 0xb6, 0x41, 0x94, 0x44, 0x92, 0x0c, 0x82, 0x0d, 0x9e, 0x43, 0xad, 0x74, 0x68, 0x01, 0x36, 0xec, 0x06, 0x91, 0xea, 0xca, 0xb6, 0x06, 0x11, 0xf4, 0xca, 0xb6, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0x41, 0xb0, 0x41, 0xb4, 0x65, 0xb2, 0x1d, 0x2c, 0xdb, 0x90, 0x3a, 0x34, 0x05, 0x5a, 0x10, 0x6c, 0x10, 0xfd, 0xdd, 0x6c, 0x87, 0x4e, 0x44, 0x0b, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x04, 0x1b, 0x44, 0xb7, 0x2c, 0xdb, 0x41, 0xb4, 0x69, 0xb2, 0x1d, 0x2c, 0xe1, 0xff, 0x19, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x36, 0x88, 0x6e, 0x59, 0xb6, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x85, 0xdd, 0xd0, 0x35, 0x73, 0x83, 0x98, 0xfb, 0x65, 0x1b, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x36, 0x88, 0x6e, 0x59, 0xb6, 0x83, 0x78, 0xf3, 0x65, 0x3b, 0x34, 0x6a, 0x39, 0x34, 0x7f, 0x39, 0x1e, 0x1f, 0x87, 0x0e, 0x8a, 0xe0, 0xc1, 0x61, 0x17, 0x6e, 0xf1, 0x20, 0x76, 0x7e, 0xd3, 0x0e, 0xd1, 0x5c, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x22, 0xb0, 0x9c, 0x6d, 0x83, 0x08, 0x2c, 0x67, 0x3b, 0x9c, 0x62, 0x1b, 0xc4, 0xaa, 0x31, 0xdb, 0xc1, 0xd3, 0x7d, 0xdc, 0x86, 0xdd, 0x20, 0x66, 0x61, 0xd9, 0xd6, 0x20, 0x96, 0x62, 0xd9, 0x0e, 0xe2, 0xe5, 0x94, 0x6d, 0xd8, 0x0d, 0xe2, 0x9c, 0x96, 0x6d, 0x0d, 0xe2, 0xaf, 0x96, 0xed, 0x20, 0xb6, 0xbb, 0xd9, 0x86, 0xdd, 0x20, 0xe2, 0x6d, 0xd9, 0xd6, 0x20, 0x12, 0x6f, 0xd9, 0x16, 0x04, 0x1b, 0x44, 0xc3, 0x27, 0xdb, 0xc1, 0x1a, 0x50, 0xa6, 0x05, 0xc1, 0x06, 0x51, 0xfd, 0xcd, 0x76, 0xe8, 0x44, 0x34, 0x08, 0x36, 0x88, 0x93, 0x70, 0xb6, 0x43, 0xf7, 0xa3, 0x61, 0x17, 0x6e, 0xf1, 0x20, 0x32, 0x8b, 0xd3, 0x0e, 0xd1, 0x5c, 0x61, 0x17, 0x6e, 0x43, 0x34, 0x0f, 0x22, 0x8a, 0x9d, 0x6d, 0x83, 0x88, 0x62, 0x67, 0x3b, 0x9c, 0x62, 0x07, 0xf1, 0x72, 0xca, 0x36, 0xec, 0xc2, 0x2d, 0x1e, 0x44, 0x01, 0x72, 0xda, 0x21, 0x9a, 0x2b, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0x41, 0x6c, 0xb9, 0xb3, 0x6d, 0x10, 0x5b, 0xee, 0x6c, 0x87, 0x53, 0xec, 0x20, 0x1e, 0x78, 0xd9, 0x86, 0x5d, 0xb8, 0xc5, 0x83, 0xe8, 0x59, 0x4e, 0x3b, 0x44, 0x73, 0x85, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x88, 0x32, 0x78, 0xb6, 0x0d, 0xa2, 0x0c, 0x9e, 0xed, 0x70, 0x8a, 0x6d, 0x10, 0x45, 0x9c, 0x6c, 0x07, 0x71, 0xc9, 0xcd, 0x36, 0xec, 0xc2, 0x2d, 0x1e, 0x44, 0xc7, 0x73, 0xda, 0x21, 0x9a, 0x2b, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0x41, 0xec, 0xca, 0xb3, 0x6d, 0x10, 0xbb, 0xf2, 0x6c, 0x87, 0x53, 0xec, 0x20, 0xee, 0xe3, 0xd9, 0x86, 0x5d, 0xb8, 0xc5, 0x83, 0xa8, 0x88, 0x4e, 0x3b, 0x44, 0x73, 0x85, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x88, 0x62, 0x7a, 0xb6, 0x0d, 0xa2, 0x98, 0x9e, 0xed, 0x70, 0x8a, 0x1d, 0xc4, 0x03, 0x2f, 0xdb, 0xc2, 0x2e, 0xdc, 0x86, 0x68, 0x8e, 0x07, 0x11, 0x3d, 0x9d, 0xb6, 0x41, 0xdc, 0xdb, 0xb3, 0x1d, 0x4e, 0xb1, 0x83, 0x78, 0xe0, 0x65, 0x3b, 0x34, 0x7f, 0x39, 0x1e, 0x0f, 0x82, 0x0d, 0xe2, 0x15, 0x92, 0x67, 0x71, 0x10, 0xac, 0x20, 0xd8, 0x20, 0x1a, 0x3e, 0xd9, 0x0e, 0xa2, 0x5a, 0x56, 0x64, 0x83, 0x58, 0x35, 0x66, 0xdb, 0x20, 0xae, 0x8e, 0xd9, 0x16, 0x04, 0x1b, 0x44, 0xc3, 0x27, 0xdb, 0xc1, 0xe2, 0x8b, 0xac, 0x0d, 0xe2, 0x15, 0x99, 0x6d, 0x41, 0xb0, 0x41, 0x8c, 0x71, 0xb2, 0x1d, 0x3c, 0xc4, 0x33, 0x63, 0x41, 0xb0, 0x41, 0x34, 0x7c, 0xb2, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x58, 0x78, 0x28, 0x73, 0x90, 0x52, 0x3a, 0x73, 0x1c, 0x5a, 0x10, 0x6c, 0x10, 0x0d, 0x9f, 0x6c, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x96, 0xe4, 0xcb, 0x1c, 0x34, 0x2a, 0xce, 0x74, 0x1c, 0x1a, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x16, 0x7e, 0x83, 0xa5, 0x25, 0x69, 0xc3, 0x6f, 0x10, 0xa3, 0x8c, 0x6b, 0x83, 0x64, 0x20, 0xd1, 0x77, 0x30, 0xde, 0x75, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xc4, 0xb2, 0x26, 0xdb, 0x41, 0x34, 0xfb, 0xb2, 0x1d, 0x87, 0x0e, 0x1e, 0xaa, 0x17, 0x76, 0x68, 0xfe, 0x72, 0x3c, 0x1e, 0x04, 0x1b, 0x14, 0xd0, 0x82, 0x8b, 0x83, 0x60, 0x05, 0xc1, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0x82, 0x0d, 0xa2, 0x2d, 0x93, 0x6d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0xaa, 0x7c, 0xac, 0xc5, 0x41, 0xb0, 0x06, 0x71, 0xda, 0xcb, 0xb6, 0x41, 0xac, 0x1a, 0xb3, 0x6d, 0x10, 0x57, 0xc7, 0x6c, 0x1b, 0xc4, 0x68, 0x30, 0xdb, 0x06, 0xf1, 0x8a, 0xcc, 0xb6, 0x41, 0x6c, 0x25, 0xb3, 0x0d, 0xbb, 0xc1, 0xcb, 0x13, 0x6a, 0x36, 0xc4, 0x70, 0xd8, 0x85, 0xdb, 0x70, 0xb4, 0x1f, 0xbc, 0x82, 0xe5, 0xe4, 0xd0, 0xe6, 0xf1, 0xd0, 0xfc, 0xe5, 0x78, 0x7c, 0x1c, 0x3a, 0xa4, 0xe1, 0x16, 0x04, 0x1b, 0x44, 0xc3, 0x27, 0xdb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x25, 0xf9, 0x32, 0x87, 0x1e, 0x42, 0xc7, 0xa1, 0x05, 0xc1, 0x06, 0xd1, 0xf0, 0xc9, 0x76, 0x10, 0x21, 0xdd, 0x29, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0xc2, 0x6f, 0xb0, 0xb4, 0x24, 0x6d, 0xf8, 0x0d, 0x62, 0x94, 0x71, 0x6d, 0x90, 0x0c, 0x9c, 0x5f, 0x07, 0xc3, 0xd0, 0xe7, 0x20, 0xde, 0x7c, 0xd9, 0x0e, 0xdd, 0x8f, 0x0e, 0xcd, 0x5f, 0x8e, 0xc7, 0x8b, 0x0b, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x85, 0xdf, 0x90, 0xad, 0x38, 0x58, 0x75, 0x92, 0x36, 0xfc, 0x06, 0x31, 0xca, 0xb8, 0x76, 0x10, 0x3b, 0x4d, 0x6c, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x0e, 0x44, 0xfc, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0xbf, 0x41, 0x54, 0x36, 0xb4, 0x1d, 0x2c, 0x83, 0x17, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x90, 0x1a, 0x76, 0x32, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xf0, 0x0b, 0xbf, 0xf0, 0x1b, 0x44, 0x65, 0x43, 0xdb, 0x20, 0x19, 0x28, 0x5e, 0x87, 0x15, 0xda, 0x83, 0x83, 0x47, 0xed, 0xc1, 0xea, 0x4d, 0xb4, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc2, 0x2f, 0xfc, 0xc2, 0x6f, 0x10, 0x95, 0x0d, 0x6d, 0x07, 0x07, 0x67, 0xf4, 0x83, 0x03, 0xcd, 0xed, 0xc1, 0x5a, 0x3e, 0x81, 0x43, 0x1a, 0xee, 0x38, 0x74, 0x1c, 0x3a, 0x0e, 0x0d, 0x82, 0x85, 0x5f, 0xf8, 0x0d, 0x82, 0x9c, 0xff, 0x60, 0xd5, 0x49, 0xda, 0xf0, 0x1b, 0xc4, 0x28, 0xe3, 0xda, 0x41, 0x0a, 0x80, 0xfb, 0x20, 0xd8, 0x38, 0x34, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf1, 0x20, 0x58, 0x1c, 0x0f, 0x62, 0x3a, 0x3e, 0xed, 0xf8, 0x36, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x55, 0x33, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x85, 0xdf, 0x20, 0x1a, 0x2b, 0xda, 0x0e, 0xde, 0x9b, 0x16, 0x70, 0xd8, 0xe3, 0x3d, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0x2b, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0xac, 0x20, 0x58, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0xb0, 0x1b, 0xd6, 0xf7, 0x36, 0xc4, 0x70, 0x10, 0xac, 0xe2, 0x41, 0xec, 0xf1, 0xa7, 0x0d, 0x82, 0x85, 0x5f, 0xf8, 0x0d, 0xd9, 0x8a, 0xe1, 0x17, 0x7e, 0x83, 0x58, 0xfa, 0x35, 0x19, 0x24, 0x03, 0x79, 0xaf, 0xc3, 0x0a, 0xed, 0xc1, 0x7b, 0xd3, 0x02, 0x06, 0xc9, 0xc0, 0x51, 0x77, 0x3c, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0xfc, 0x06, 0xd1, 0xd5, 0xd1, 0x76, 0xb0, 0xac, 0x85, 0x6d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x87, 0x5f, 0xf8, 0x0d, 0x02, 0xde, 0xff, 0x60, 0xd5, 0x49, 0xda, 0xc1, 0xaa, 0x9c, 0xa0, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0x41, 0x74, 0x75, 0xb4, 0x1d, 0xb4, 0xe6, 0xaa, 0x72, 0x1c, 0x3a, 0x0e, 0xad, 0x78, 0x10, 0x9f, 0x05, 0x6a, 0x07, 0x71, 0xd2, 0xd1, 0xb6, 0xe2, 0x41, 0x84, 0x1d, 0xa8, 0x1d, 0xc4, 0x49, 0x47, 0xdb, 0x8a, 0x07, 0x31, 0x91, 0xa0, 0x76, 0x10, 0x27, 0x1d, 0x6d, 0x2b, 0x1e, 0x44, 0xa1, 0x82, 0xda, 0x41, 0x9c, 0x74, 0xb4, 0xad, 0x78, 0x10, 0xfd, 0xe6, 0x69, 0x83, 0x60, 0xe1, 0x37, 0x88, 0xae, 0x8e, 0xb6, 0x83, 0xc7, 0x35, 0x28, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x1b, 0xae, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0x83, 0xe8, 0xea, 0x68, 0x3b, 0x68, 0x6b, 0x83, 0xe9, 0x38, 0x74, 0x88, 0xe1, 0x86, 0x18, 0x6e, 0x88, 0xe1, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x06, 0x86, 0x6a, 0x82, 0xf8, 0x1c, 0x0c, 0x6c, 0xd1, 0x83, 0x91, 0xb0, 0x7a, 0x3c, 0xde, 0x20, 0xa6, 0x39, 0xda, 0x06, 0xc1, 0xc2, 0x2f, 0xfc, 0x06, 0x0b, 0x87, 0x13, 0x0e, 0x22, 0xb4, 0xa3, 0xed, 0x60, 0x59, 0x0b, 0xdb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xea, 0x60, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe1, 0x37, 0x88, 0x4d, 0x95, 0xb6, 0x83, 0xc3, 0x3b, 0xed, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x10, 0x9b, 0x2a, 0x6d, 0x07, 0xad, 0xb9, 0xaa, 0x1c, 0x87, 0x8e, 0x43, 0x6b, 0x10, 0xd3, 0xb6, 0x6b, 0x83, 0x60, 0xe1, 0x17, 0x7e, 0x43, 0x72, 0xe9, 0x20, 0x42, 0x3b, 0xda, 0x0e, 0x96, 0xb5, 0xb0, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x44, 0x65, 0x43, 0xdb, 0xc1, 0xaa, 0x9c, 0xa0, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0x41, 0xe4, 0xbb, 0xb4, 0x1d, 0xb4, 0xe6, 0xaa, 0x72, 0x1c, 0x5a, 0x83, 0x98, 0x5e, 0xfd, 0x38, 0x88, 0x9b, 0x98, 0xb6, 0x05, 0xc1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x87, 0x5d, 0xd8, 0x0d, 0x1d, 0x47, 0x36, 0x08, 0x7a, 0xfd, 0xc3, 0xd1, 0xbe, 0x82, 0x60, 0x83, 0x28, 0x09, 0x69, 0x3b, 0xa4, 0xe1, 0x06, 0xc1, 0xc2, 0x6f, 0x10, 0x5d, 0x1d, 0x6d, 0x07, 0xcd, 0xe3, 0x8f, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xe4, 0x6b, 0x0f, 0xe2, 0x1d, 0xa4, 0xed, 0x38, 0x74, 0x38, 0xc5, 0x8e, 0xc7, 0x8b, 0x07, 0x31, 0xd1, 0x9e, 0x36, 0x08, 0x36, 0x88, 0x41, 0x95, 0xb6, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xd4, 0xc1, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc2, 0x6f, 0x10, 0x9b, 0x2a, 0x6d, 0x07, 0xab, 0x37, 0xd1, 0x0e, 0xe2, 0x9f, 0xa5, 0xed, 0x38, 0x74, 0x88, 0xe1, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x06, 0x52, 0x75, 0x07, 0xd1, 0x95, 0xd2, 0x76, 0x30, 0xb0, 0x45, 0x0f, 0x86, 0x59, 0xf8, 0xf1, 0x78, 0x05, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xb2, 0x35, 0xe4, 0xb1, 0x17, 0x07, 0xc1, 0xc2, 0x2f, 0xfc, 0x86, 0x15, 0xda, 0x83, 0x08, 0xed, 0x68, 0x3b, 0x78, 0x49, 0x41, 0xce, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe1, 0x37, 0x88, 0xbd, 0x9d, 0xb6, 0x83, 0x06, 0x0a, 0xf3, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x5f, 0xdc, 0x30, 0xf7, 0x1b, 0x34, 0xab, 0x3d, 0xb6, 0xa1, 0x8e, 0xac, 0x61, 0x86, 0x36, 0x88, 0x04, 0x34, 0xb6, 0x0d, 0x27, 0xc2, 0x06, 0x91, 0x80, 0xc6, 0xb6, 0xc1, 0x62, 0x36, 0xa8, 0x65, 0x96, 0x0d, 0x9f, 0xd8, 0xac, 0xe1, 0x79, 0x92, 0x35, 0x58, 0xa8, 0x4c, 0x75, 0xf0, 0xbc, 0x7f, 0xcd, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x84, 0x72, 0xcd, 0x0d, 0x1f, 0xe4, 0x6c, 0xd0, 0x84, 0x2c, 0xc4, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x81, 0xeb, 0x9a, 0x1b, 0x3e, 0xc8, 0x59, 0x83, 0x05, 0xd0, 0x47, 0x6b, 0x78, 0x50, 0x72, 0xe3, 0xd0, 0x86, 0xe7, 0x49, 0x36, 0x78, 0x0c, 0xbc, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x8a, 0xbb, 0xe6, 0x1a, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x85, 0xf2, 0x9a, 0x07, 0x49, 0x0e, 0x4f, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x35, 0xf5, 0x9a, 0x1b, 0x3e, 0x77, 0x19, 0x1c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xc0, 0xd7, 0xdc, 0xa0, 0x94, 0x10, 0xdf, 0x60, 0x05, 0x99, 0xfe, 0x86, 0x07, 0x25, 0x37, 0x58, 0x7e, 0xbc, 0xbd, 0xe1, 0xdd, 0x9e, 0x0d, 0x1e, 0xa3, 0xaf, 0xb9, 0x86, 0x8f, 0xda, 0x0f, 0x5e, 0xcd, 0xaf, 0xd9, 0xc1, 0xb9, 0xde, 0x60, 0x0d, 0xcf, 0x93, 0x6c, 0xf0, 0x18, 0x78, 0xcd, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x14, 0x77, 0xcd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x0b, 0xe5, 0x35, 0x37, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x6f, 0xce, 0x86, 0x68, 0x6e, 0x78, 0xe3, 0x6e, 0xc2, 0xc3, 0x83, 0x24, 0x87, 0xa7, 0x0d, 0xcf, 0x93, 0x6c, 0xf0, 0x18, 0x78, 0xcd, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x14, 0x77, 0xcd, 0x0d, 0x9f, 0xbb, 0x0c, 0x0e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x37, 0xe0, 0x6b, 0x6e, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xd7, 0xd4, 0x6b, 0x6e, 0x78, 0xb7, 0x67, 0x0d, 0x4a, 0x09, 0xf1, 0x0d, 0x56, 0x90, 0xe9, 0x1f, 0xc4, 0x06, 0x52, 0xdb, 0xc1, 0x01, 0x34, 0x69, 0xc3, 0x07, 0x39, 0x6b, 0xb0, 0x00, 0xfa, 0x68, 0x0d, 0x0f, 0x4a, 0x6e, 0x1c, 0xda, 0xf0, 0x3c, 0xc9, 0x06, 0x8f, 0x16, 0xd8, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0x06, 0xd8, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0xac, 0x60, 0xf3, 0xa0, 0x39, 0xbc, 0xcf, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x0c, 0x84, 0xcd, 0x0d, 0x9f, 0xbb, 0x0c, 0x0e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xb7, 0x2b, 0x6c, 0x1e, 0x44, 0x81, 0x30, 0xcc, 0xc1, 0xb9, 0xde, 0x60, 0x0d, 0xcf, 0x93, 0x6c, 0xf0, 0x68, 0x81, 0xcd, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x64, 0x80, 0xcd, 0x35, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xcb, 0x0a, 0x36, 0x0f, 0x62, 0x47, 0x69, 0x6d, 0xc3, 0xf3, 0x24, 0x1b, 0x3c, 0x5a, 0x60, 0x73, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x19, 0x60, 0x73, 0xc3, 0xe7, 0x2e, 0x83, 0xc3, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xed, 0x0a, 0x9b, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x19, 0x08, 0x9b, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x1b, 0x34, 0xb2, 0x3d, 0x70, 0x18, 0x97, 0x0d, 0x56, 0x81, 0xc9, 0x6e, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0x5a, 0x17, 0x2b, 0x38, 0x8c, 0xcb, 0xc1, 0x32, 0x27, 0xd9, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0xac, 0x0a, 0xe2, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xcf, 0x6c, 0xd8, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x25, 0x62, 0xf3, 0xa0, 0xa9, 0x38, 0xb0, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0xf0, 0x89, 0xcd, 0x0d, 0x9f, 0xbb, 0x0c, 0x0e, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xe7, 0x5a, 0x6c, 0x6e, 0x50, 0x4a, 0x88, 0x6f, 0xb0, 0x82, 0x4c, 0x7f, 0xc3, 0x83, 0x92, 0x1b, 0x2c, 0x3f, 0xde, 0xde, 0xf0, 0x6e, 0xcf, 0x06, 0xef, 0xc6, 0xd8, 0x5c, 0xc3, 0x47, 0xed, 0x07, 0x4f, 0xdc, 0xd8, 0x5c, 0xc3, 0x47, 0xed, 0x07, 0xef, 0xf1, 0xd8, 0xec, 0xe0, 0x5c, 0x6f, 0xb0, 0x86, 0xe7, 0x49, 0x36, 0x58, 0x15, 0xc4, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xd9, 0xb0, 0xb9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x4b, 0xc4, 0xe6, 0x06, 0x05, 0x1f, 0xe6, 0x1a, 0xfe, 0xcd, 0xd9, 0x10, 0xcd, 0x0d, 0x6f, 0xdc, 0x1d, 0x9c, 0xd5, 0xcf, 0x0f, 0x9a, 0x8a, 0x03, 0xdb, 0xf0, 0x3c, 0xc9, 0x06, 0xab, 0x82, 0xb8, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x33, 0x1b, 0x36, 0x37, 0x7c, 0xee, 0x32, 0x38, 0xbc, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x6b, 0xb1, 0xb9, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x3e, 0xb1, 0xb9, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x25, 0xc4, 0x37, 0x58, 0x41, 0xa6, 0x7f, 0x10, 0xc9, 0x60, 0x6d, 0x07, 0x07, 0xd0, 0xa4, 0x0d, 0x1f, 0xe4, 0xac, 0xc1, 0x02, 0xe8, 0xa3, 0x35, 0x3c, 0x28, 0xb9, 0x71, 0x68, 0xc3, 0xf3, 0x24, 0x1b, 0xbc, 0x75, 0x64, 0x73, 0x83, 0x75, 0x71, 0x47, 0x1b, 0xbc, 0x34, 0x64, 0x73, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0xf0, 0x10, 0x93, 0xcd, 0x83, 0x23, 0xb3, 0xea, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x33, 0xca, 0xe6, 0x86, 0xcf, 0x5d, 0x06, 0x87, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x4b, 0x57, 0x36, 0x0f, 0xd6, 0xc6, 0xe4, 0x1d, 0x9c, 0xeb, 0x0d, 0xd6, 0xf0, 0x3c, 0xc9, 0x06, 0x6f, 0x1d, 0xd9, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x0d, 0xd9, 0x5c, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0xc4, 0x64, 0x73, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0xff, 0xe6, 0x6c, 0x88, 0xe6, 0x86, 0x37, 0xee, 0x0e, 0x4d, 0xb8, 0x0e, 0x8e, 0xcc, 0xaa, 0x1b, 0x9e, 0x27, 0xd9, 0xe0, 0xad, 0x23, 0x9b, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0xa5, 0x21, 0x9b, 0x1b, 0x3e, 0x77, 0x19, 0x1c, 0xde, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x2f, 0x5d, 0xd9, 0xdc, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x46, 0xd9, 0xdc, 0xf0, 0xf5, 0xcb, 0x06, 0x6b, 0x63, 0xf2, 0x36, 0x58, 0x28, 0xfb, 0xb4, 0x41, 0x33, 0x9d, 0x03, 0x6b, 0x50, 0x74, 0x1a, 0x6f, 0xd0, 0x02, 0xe8, 0xc0, 0x06, 0xaf, 0x8c, 0xa9, 0x39, 0x8c, 0xcb, 0x41, 0x33, 0x66, 0x16, 0x1b, 0x9e, 0x27, 0xd9, 0xe0, 0x71, 0x30, 0x9b, 0x1b, 0xac, 0x8b, 0x3b, 0xda, 0xe0, 0x69, 0x2e, 0x9b, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x97, 0xcb, 0x6c, 0x6e, 0x50, 0xf0, 0x61, 0xae, 0xe1, 0xdf, 0x9c, 0x0d, 0xd1, 0xdc, 0xf0, 0xc6, 0xdd, 0xc1, 0x41, 0xbc, 0xfb, 0x60, 0xe9, 0xd7, 0xeb, 0x86, 0xe7, 0x49, 0x36, 0x78, 0x1c, 0xcc, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x9a, 0xcb, 0xe6, 0x86, 0xcf, 0x5d, 0x06, 0x87, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0xdb, 0x70, 0x36, 0x37, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x33, 0x6b, 0x36, 0x37, 0x7c, 0xfd, 0xb2, 0xc1, 0x5a, 0x85, 0xba, 0x0d, 0x16, 0xca, 0x3e, 0x6d, 0xd0, 0x4c, 0xe7, 0xc0, 0x1a, 0x14, 0x9d, 0xc6, 0x1b, 0xb4, 0x00, 0x3a, 0xb0, 0x86, 0x1f, 0x61, 0x06, 0x9e, 0x2e, 0x0c, 0xa7, 0x0f, 0xe3, 0x72, 0xd0, 0x8c, 0x99, 0xc5, 0x86, 0xe7, 0x49, 0x36, 0x78, 0x64, 0xba, 0xe6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0xe2, 0xb9, 0xe6, 0x41, 0xf3, 0xc3, 0x10, 0x07, 0x2b, 0xe9, 0xf4, 0x0f, 0xa7, 0xd8, 0xe1, 0x14, 0x3b, 0x88, 0x20, 0xa0, 0xb6, 0x43, 0xaa, 0xe6, 0x38, 0x74, 0x1c, 0x3a, 0x1e, 0x0f, 0x82, 0xd5, 0x20, 0x36, 0x4a, 0xda, 0x06, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x3a, 0xc4, 0xf0, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x06, 0x71, 0x47, 0xd2, 0x36, 0x48, 0x06, 0xaa, 0xd5, 0x21, 0xb9, 0xb4, 0x06, 0xf1, 0x32, 0xd2, 0x76, 0x10, 0x6b, 0x82, 0x6d, 0x2b, 0x1e, 0xbc, 0xce, 0xc8, 0xe5, 0x20, 0x86, 0x5d, 0xda, 0x56, 0x0c, 0x9e, 0xee, 0x3d, 0x88, 0x35, 0xc1, 0xb6, 0x15, 0x0f, 0x5e, 0x7c, 0x62, 0x79, 0x10, 0x37, 0x31, 0x6d, 0x87, 0x18, 0x0e, 0x82, 0x05, 0xc1, 0xc2, 0x2f, 0xfc, 0x06, 0xd1, 0x95, 0xd2, 0x76, 0x10, 0xa1, 0x1d, 0x6d, 0x83, 0x64, 0x20, 0x55, 0x77, 0x3c, 0x3e, 0x18, 0xd8, 0xa2, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x09, 0xc6, 0xf3, 0x38, 0x74, 0x3c, 0x5e, 0x10, 0x6c, 0xf0, 0x98, 0xc4, 0xab, 0xc5, 0x0d, 0x1e, 0xe6, 0xd2, 0xb6, 0x20, 0x58, 0xf8, 0x0d, 0xa2, 0xb2, 0xa1, 0x6d, 0xf8, 0x0d, 0x62, 0x94, 0x71, 0xed, 0x20, 0x0e, 0x2b, 0xd7, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0xbf, 0x41, 0xcc, 0x4e, 0xb4, 0x1d, 0x9c, 0x9f, 0x68, 0x0f, 0x69, 0xb8, 0xe3, 0xd0, 0xe2, 0x1a, 0xc4, 0x8b, 0x8c, 0xda, 0x41, 0x94, 0xcd, 0xa8, 0x35, 0x08, 0x16, 0x7e, 0x83, 0xa8, 0x6c, 0x68, 0x1b, 0x7e, 0x83, 0x18, 0x65, 0x5c, 0x1b, 0x24, 0x03, 0xeb, 0x75, 0x07, 0xe3, 0x5d, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xf0, 0x1b, 0x44, 0x65, 0x43, 0xdb, 0xf0, 0x0b, 0xbf, 0xf1, 0xfc, 0x20, 0x8a, 0xf5, 0xd8, 0x0e, 0xd6, 0xf2, 0x09, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x7e, 0xe1, 0x37, 0x88, 0xd9, 0x89, 0xb6, 0x83, 0x53, 0x18, 0xee, 0x41, 0x39, 0x94, 0x74, 0xe8, 0xa0, 0x71, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x57, 0x10, 0x2c, 0xfc, 0x06, 0x11, 0xda, 0xd1, 0x76, 0xb0, 0x7a, 0x13, 0xed, 0x60, 0xd9, 0x86, 0xd4, 0x20, 0x58, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0xb0, 0x1b, 0xd6, 0xf7, 0x36, 0xc4, 0x70, 0x43, 0x0c, 0x07, 0xc1, 0x06, 0xf1, 0x05, 0xd3, 0x76, 0xe8, 0xa0, 0x71, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf0, 0x1b, 0x0c, 0xd6, 0xd8, 0x83, 0x08, 0xed, 0x68, 0x3b, 0x58, 0xd6, 0xc2, 0x36, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0x3a, 0x18, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0xf8, 0x0d, 0xe2, 0x8d, 0xb2, 0xed, 0xe0, 0xf0, 0x4e, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0xc4, 0x1b, 0x65, 0xdb, 0x41, 0x6b, 0xae, 0x2a, 0xc7, 0xa1, 0xe3, 0xd0, 0x82, 0x60, 0x71, 0x0e, 0xe2, 0x01, 0x9b, 0x6d, 0x71, 0x10, 0x2c, 0xfc, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0xbf, 0x41, 0xe4, 0x76, 0xb4, 0x1d, 0x9c, 0x9f, 0x68, 0x0f, 0x0e, 0x34, 0xb7, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x85, 0x5d, 0xb8, 0x0d, 0xa2, 0x17, 0x9b, 0xed, 0xd0, 0x48, 0x70, 0x71, 0x83, 0xf8, 0x86, 0x52, 0x6b, 0xd8, 0x85, 0xdb, 0x20, 0x72, 0xb5, 0xd9, 0x0e, 0x8d, 0x04, 0x57, 0x3c, 0x88, 0x88, 0x29, 0xb5, 0x05, 0xc1, 0x82, 0x64, 0x20, 0x79, 0x75, 0x48, 0x2e, 0x1d, 0x3a, 0x11, 0x2d, 0x08, 0x16, 0x24, 0x03, 0xa5, 0xeb, 0x90, 0x5c, 0x3a, 0x74, 0x3f, 0x3a, 0xc4, 0x70, 0xd8, 0x85, 0xdb, 0x20, 0x82, 0x5d, 0xd9, 0x0e, 0x8d, 0x04, 0x57, 0x3c, 0x88, 0xb8, 0x2c, 0xb5, 0x35, 0x58, 0x83, 0x02, 0x34, 0x08, 0x16, 0x04, 0x0b, 0xbf, 0x41, 0x54, 0x36, 0xb4, 0x0d, 0xbf, 0x41, 0x8c, 0x32, 0xae, 0x1d, 0x0c, 0x39, 0xeb, 0x83, 0x41, 0x79, 0x35, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0x61, 0x37, 0x68, 0x71, 0x0a, 0x66, 0x43, 0x0c, 0x37, 0xc4, 0x70, 0xf1, 0x20, 0xc6, 0xc2, 0xd4, 0x06, 0xc1, 0x06, 0x91, 0xdc, 0xd9, 0x76, 0xb0, 0x68, 0xfd, 0x67, 0x61, 0x37, 0x68, 0x70, 0x3f, 0x69, 0x43, 0x0c, 0x37, 0xc4, 0x70, 0xf1, 0x20, 0x4e, 0xca, 0xd4, 0x06, 0xc1, 0x06, 0x91, 0xdc, 0xd9, 0x36, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x3d, 0x58, 0xde, 0x58, 0x72, 0x1c, 0x5a, 0xd8, 0x85, 0xdb, 0x10, 0xc3, 0x41, 0xb0, 0xf0, 0x1b, 0x44, 0x65, 0x43, 0xdb, 0x41, 0xf4, 0xa5, 0xae, 0x1d, 0xbc, 0xe7, 0x30, 0x63, 0x43, 0x0c, 0x37, 0xc4, 0x70, 0x83, 0x98, 0xb6, 0x5d, 0x1b, 0x76, 0xe1, 0x36, 0x1c, 0xed, 0x07, 0x11, 0x63, 0xda, 0xb6, 0x20, 0x58, 0xf8, 0x0d, 0x62, 0x20, 0xb3, 0xed, 0xe0, 0xb4, 0x4b, 0x3b, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0xf8, 0x0d, 0xa2, 0xb2, 0xa1, 0xed, 0xe0, 0x90, 0xaa, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0xf8, 0x0d, 0xa2, 0xb2, 0xa1, 0x6d, 0xf8, 0x0d, 0x62, 0x94, 0x71, 0xed, 0x20, 0x7a, 0xf9, 0xd7, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x0c, 0xfc, 0x90, 0x83, 0xa4, 0x01, 0x84, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0xb4, 0xc1, 0x39, 0x72, 0x77, 0x10, 0x2c, 0xfc, 0x06, 0x51, 0xd9, 0xd0, 0x36, 0xfc, 0x06, 0x31, 0xca, 0xb8, 0x76, 0xd0, 0x6a, 0x1e, 0xd3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa4, 0x01, 0x84, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x85, 0xdf, 0x20, 0x2a, 0x1b, 0xda, 0x86, 0xdf, 0x20, 0x46, 0x19, 0xd7, 0x06, 0xc9, 0x40, 0xd3, 0xbe, 0x83, 0xf1, 0xae, 0x33, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0x07, 0xd1, 0x9e, 0xda, 0x36, 0xfc, 0xc6, 0xf3, 0x83, 0xe8, 0x44, 0x6d, 0x3b, 0x0e, 0x1d, 0x87, 0x16, 0x76, 0x83, 0xf7, 0xf9, 0xd3, 0x6c, 0x88, 0xe1, 0x86, 0x18, 0x6e, 0x10, 0x67, 0x36, 0x6d, 0x83, 0x60, 0x83, 0x66, 0x18, 0x95, 0x0e, 0x1a, 0x9d, 0x50, 0x3a, 0xc4, 0x70, 0x10, 0x2c, 0xfc, 0x06, 0xd1, 0x58, 0xd1, 0x36, 0xfc, 0x06, 0x31, 0xca, 0xb8, 0x36, 0x48, 0x36, 0x68, 0xfa, 0xf5, 0xfe, 0x60, 0xbc, 0xeb, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xa4, 0x0e, 0x86, 0xdf, 0x78, 0x3e, 0xfc, 0x06, 0xd1, 0x58, 0xd1, 0x36, 0xfc, 0x06, 0x31, 0xca, 0xb8, 0x36, 0x48, 0x06, 0x0c, 0xd7, 0xbe, 0x83, 0xf1, 0xae, 0x73, 0x1c, 0x3a, 0x0e, 0x1d, 0x62, 0x38, 0xec, 0xc2, 0x6d, 0x10, 0x81, 0xe5, 0x6c, 0x87, 0x46, 0x82, 0x2b, 0x1e, 0x44, 0x36, 0x9d, 0xda, 0x82, 0x60, 0x83, 0xe8, 0x44, 0x6d, 0x1b, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0xfc, 0x06, 0x51, 0xd9, 0xd0, 0x36, 0x48, 0x06, 0xfa, 0x7f, 0x1d, 0x92, 0x4b, 0x87, 0x4e, 0x44, 0xc7, 0xa1, 0x35, 0x48, 0x5b, 0xa0, 0x3e, 0x18, 0x99, 0xbd, 0x87, 0x18, 0x0e, 0xbb, 0x70, 0x1b, 0xc4, 0x32, 0x2c, 0xdb, 0xa1, 0x91, 0xe0, 0x8a, 0x07, 0x71, 0xb7, 0xa7, 0xb6, 0x20, 0xd8, 0x20, 0x3a, 0x51, 0xdb, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0xbf, 0x41, 0x54, 0x36, 0xb4, 0x1d, 0x44, 0x63, 0xa8, 0xd2, 0xa1, 0x05, 0xd8, 0x71, 0xe8, 0x10, 0xc3, 0x61, 0x17, 0x6e, 0x83, 0xf8, 0xa7, 0x65, 0x3b, 0x34, 0x12, 0x5c, 0xf1, 0x20, 0xbe, 0xff, 0xd4, 0x0e, 0x22, 0xf2, 0xb3, 0x6d, 0xd8, 0x85, 0xdb, 0x20, 0x12, 0x6e, 0xd9, 0x0e, 0x8d, 0x04, 0xd7, 0x20, 0x82, 0x80, 0xdb, 0xd6, 0x60, 0x0d, 0x0a, 0xd0, 0x20, 0xd8, 0x20, 0xf2, 0x3f, 0xdb, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0xab, 0x21, 0x86, 0x1b, 0xc4, 0x46, 0x49, 0xdb, 0x20, 0xd8, 0x20, 0x3a, 0x51, 0xdb, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0xbf, 0x41, 0x54, 0x36, 0xb4, 0x1d, 0xbc, 0xc5, 0x28, 0xe1, 0xd0, 0x89, 0xe8, 0x38, 0xb4, 0xb0, 0x0b, 0xb7, 0x21, 0x86, 0x83, 0x60, 0x83, 0x78, 0x32, 0x6d, 0x3b, 0x58, 0xc2, 0xff, 0xb3, 0x21, 0x86, 0x1b, 0x62, 0xb8, 0x41, 0x4c, 0xdb, 0xae, 0x0d, 0xbb, 0x70, 0x1b, 0x8e, 0xf6, 0x83, 0x98, 0x30, 0x6e, 0x5b, 0x10, 0x6c, 0x10, 0x9d, 0xa8, 0x6d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xa2, 0x3d, 0xb5, 0x6d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0xf4, 0xac, 0xb6, 0x1d, 0x44, 0x12, 0x78, 0xca, 0x71, 0xe8, 0x38, 0xb4, 0xc1, 0x39, 0x72, 0x77, 0x10, 0x6c, 0x10, 0xdb, 0xad, 0x6d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xc2, 0x9e, 0xfa, 0x20, 0x02, 0x5f, 0xdb, 0x8e, 0x43, 0x0b, 0xbb, 0x41, 0xbb, 0x0b, 0x4e, 0x1b, 0x62, 0xb8, 0x21, 0x86, 0x1b, 0xc4, 0x99, 0x4d, 0xdb, 0x20, 0xd8, 0xa0, 0x19, 0x46, 0xa5, 0x83, 0x22, 0x78, 0xf0, 0x10, 0xc3, 0x83, 0xe8, 0xa3, 0x6d, 0x3b, 0x0e, 0x1d, 0x62, 0x38, 0xec, 0xc2, 0x6d, 0x10, 0x51, 0xec, 0x6c, 0x87, 0x46, 0x82, 0x2b, 0x1e, 0xc4, 0x2e, 0xa2, 0xda, 0x41, 0x6c, 0xf5, 0xb6, 0x0d, 0xbb, 0x70, 0x1b, 0x44, 0x19, 0x3c, 0xdb, 0xa1, 0x91, 0xe0, 0x8a, 0x07, 0xd1, 0xb4, 0xa8, 0xb6, 0x20, 0xd8, 0x20, 0x3a, 0x51, 0xdb, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x44, 0x7b, 0x6a, 0xdb, 0xa1, 0x13, 0xd1, 0x71, 0xe8, 0x20, 0x4e, 0x3b, 0xdb, 0x86, 0x5d, 0xb8, 0x0d, 0x62, 0x57, 0x9e, 0xed, 0xd0, 0x48, 0x70, 0xc5, 0x83, 0x58, 0x85, 0x54, 0x3b, 0x88, 0x8d, 0xe8, 0xb6, 0x61, 0x17, 0x6e, 0x83, 0xd8, 0x72, 0x67, 0x3b, 0x34, 0x12, 0x5c, 0xf1, 0x20, 0x9e, 0x25, 0xd5, 0x16, 0x04, 0x1b, 0x44, 0x27, 0x6a, 0xdb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x38, 0x26, 0x6e, 0x3b, 0xb4, 0x00, 0x3b, 0x0e, 0x1d, 0x62, 0x38, 0xec, 0xc2, 0x6d, 0x10, 0xc5, 0xf4, 0x6c, 0x87, 0x46, 0x82, 0x2b, 0x1e, 0xc4, 0xd7, 0xa5, 0xda, 0x41, 0x94, 0x55, 0xb7, 0x0d, 0xb2, 0x35, 0xb4, 0x5f, 0x1f, 0x6e, 0x83, 0xb8, 0xb7, 0x67, 0x3b, 0x34, 0x12, 0x5c, 0x3c, 0x88, 0x1b, 0x4d, 0xb5, 0x83, 0xd8, 0xea, 0x6d, 0x5b, 0xdc, 0x20, 0x96, 0x8f, 0xd4, 0x06, 0x9f, 0x03, 0x4d, 0xc6, 0x05, 0xae, 0x78, 0xf0, 0xea, 0x17, 0xba, 0x0d, 0xd6, 0x68, 0x2b, 0x1c, 0x84, 0x14, 0xf8, 0x8a, 0x07, 0x51, 0xb5, 0xa4, 0xb6, 0xc1, 0x39, 0x72, 0xf7, 0x20, 0x04, 0xc0, 0x87, 0xdd, 0xb0, 0x16, 0xba, 0x21, 0x86, 0x6b, 0xd0, 0x4a, 0x69, 0xfe, 0x06, 0x6b, 0xb4, 0x15, 0x0e, 0xc6, 0x85, 0xd9, 0x21, 0x86, 0xc7, 0xa1, 0xe3, 0xf1, 0x0a, 0x82, 0x0d, 0xe2, 0x32, 0xc5, 0x64, 0x71, 0x83, 0x35, 0x28, 0x40, 0x83, 0x60, 0x83, 0xc8, 0xff, 0x6c, 0x1b, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0xac, 0xb0, 0x1b, 0xf2, 0x58, 0x1b, 0x62, 0xb8, 0x21, 0x86, 0x1b, 0xc4, 0xde, 0x60, 0xdb, 0x20, 0xd8, 0x20, 0x3a, 0x51, 0xdb, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x44, 0x7b, 0x6a, 0xdb, 0xc1, 0x40, 0x2f, 0x3b, 0x0e, 0xad, 0x21, 0x86, 0x1b, 0x44, 0x07, 0x61, 0xdb, 0x20, 0xd8, 0x20, 0x3a, 0x51, 0xdb, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x44, 0x7b, 0x6a, 0xdb, 0xa1, 0x29, 0xd0, 0x71, 0x68, 0x61, 0x37, 0x68, 0x71, 0x0a, 0x66, 0x43, 0x0c, 0x37, 0xc4, 0x70, 0xf1, 0xa0, 0x88, 0x24, 0x18, 0x04, 0x1b, 0x44, 0x27, 0x6a, 0xdb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xb8, 0xf3, 0x6d, 0x3b, 0x58, 0xb4, 0xfe, 0x73, 0x1c, 0x5a, 0xd8, 0x0d, 0x1a, 0xdc, 0x4f, 0xda, 0x10, 0xc3, 0x0d, 0x31, 0x5c, 0x3c, 0x88, 0x42, 0x57, 0xb5, 0x41, 0xb0, 0x41, 0x74, 0xa2, 0xb6, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0x3b, 0xdf, 0xb6, 0x83, 0xd8, 0x28, 0x6d, 0x3b, 0x0e, 0x2d, 0xec, 0x06, 0xe3, 0x3b, 0x79, 0x43, 0x0c, 0x37, 0xc4, 0x70, 0xf1, 0xe0, 0x44, 0xeb, 0x31, 0x08, 0x36, 0x88, 0x4e, 0xd4, 0xb6, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x71, 0xe7, 0xdb, 0x36, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x9d, 0xa0, 0x7a, 0x1f, 0x87, 0x8e, 0x43, 0x0b, 0xbb, 0xc1, 0xfb, 0xfc, 0x69, 0x36, 0xc4, 0x70, 0x43, 0x0c, 0x37, 0x88, 0xe9, 0xd5, 0x8f, 0x41, 0xb0, 0x41, 0x74, 0xa2, 0xb6, 0x1d, 0x34, 0x3a, 0xa1, 0x74, 0x88, 0xe1, 0x41, 0xf4, 0xd1, 0xb6, 0x1d, 0x87, 0x8e, 0xc7, 0x0b, 0x92, 0x81, 0xdd, 0xab, 0xe3, 0xf1, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x61, 0x37, 0x58, 0x15, 0xf5, 0xb1, 0x41, 0x14, 0x4e, 0xb6, 0x1d, 0x4e, 0xb1, 0xe3, 0xf1, 0x20, 0xd8, 0x60, 0x59, 0x18, 0xcc, 0xe2, 0x20, 0xd8, 0xe0, 0xb0, 0xfa, 0x3e, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x90, 0xb5, 0x1b, 0x7e, 0xe3, 0xf9, 0x06, 0x91, 0xab, 0xcd, 0xb6, 0x86, 0x18, 0x6e, 0x68, 0x24, 0xb8, 0x21, 0x86, 0x1b, 0x62, 0xb8, 0x21, 0x86, 0x07, 0x71, 0xe3, 0x12, 0x34, 0x6e, 0xf0, 0x9a, 0xdb, 0xbc, 0x83, 0xd8, 0x30, 0x4c, 0x3b, 0x0e, 0x1d, 0x8f, 0x37, 0x88, 0xd3, 0xf7, 0xb6, 0x15, 0x04, 0x1b, 0x3c, 0x26, 0xf1, 0x6a, 0x71, 0x43, 0x34, 0x37, 0x78, 0xef, 0x94, 0xd5, 0x82, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0x44, 0x65, 0x43, 0xdb, 0xf0, 0x1b, 0xc4, 0x28, 0xe3, 0xda, 0x41, 0x8b, 0x20, 0x27, 0x07, 0x43, 0x93, 0x6a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x71, 0x0d, 0x62, 0x29, 0x5a, 0x6d, 0x83, 0x28, 0x9b, 0x51, 0xab, 0xe3, 0xd0, 0x41, 0xec, 0x2f, 0xb6, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0xc4, 0x28, 0x29, 0xdb, 0xe2, 0xb0, 0x1b, 0xc4, 0x61, 0x29, 0xdb, 0x1a, 0xac, 0xd1, 0x56, 0x18, 0x04, 0x1b, 0x44, 0x2b, 0x62, 0xdb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x64, 0xf1, 0xe9, 0x0d, 0x16, 0x40, 0xcc, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x08, 0x16, 0x7e, 0xe1, 0x37, 0x88, 0xca, 0x86, 0xb6, 0x83, 0x58, 0x64, 0x5c, 0x3b, 0x48, 0xc3, 0x81, 0x3f, 0x48, 0x17, 0x1c, 0x3a, 0x74, 0xd0, 0x38, 0x0e, 0x0d, 0xb2, 0x35, 0xb4, 0x5f, 0x1f, 0x6e, 0x83, 0x78, 0x41, 0x65, 0x3b, 0x44, 0xf3, 0x60, 0xb5, 0xc5, 0xc3, 0xf1, 0xf8, 0x20, 0x4e, 0xdf, 0xdb, 0x0e, 0xe2, 0xf4, 0xbd, 0x6d, 0x83, 0x38, 0x7d, 0x6f, 0x5b, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x06, 0xe7, 0xc8, 0xdd, 0x41, 0xb0, 0x41, 0x6c, 0xb7, 0xb6, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xa4, 0x6a, 0x86, 0xdf, 0x78, 0x3e, 0x48, 0x06, 0xee, 0xab, 0x43, 0x72, 0xe9, 0x38, 0x74, 0x3c, 0x1e, 0x04, 0x1b, 0x62, 0xb8, 0xb8, 0xc1, 0x39, 0x72, 0x77, 0x10, 0x2c, 0x08, 0x36, 0x88, 0xea, 0xd7, 0xb6, 0x41, 0xb0, 0x71, 0x68, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x7e, 0x83, 0xa8, 0x6c, 0x68, 0x1b, 0x7e, 0x83, 0x18, 0x65, 0x5c, 0x1b, 0x24, 0x03, 0x82, 0xb5, 0xef, 0x60, 0xbc, 0xeb, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x41, 0xdc, 0x3e, 0xb4, 0x1d, 0xa4, 0x86, 0x9d, 0x1c, 0x87, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x20, 0x2a, 0x1b, 0xda, 0x0e, 0xe2, 0xe3, 0x74, 0x6d, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe1, 0x17, 0x7e, 0x83, 0xa8, 0x6c, 0x68, 0x3b, 0x88, 0x0c, 0x8f, 0xb6, 0x83, 0xf3, 0x13, 0xed, 0xc1, 0x69, 0x97, 0xf6, 0x38, 0x74, 0x1c, 0x1a, 0x04, 0x0b, 0xbf, 0x41, 0x34, 0x56, 0xb4, 0x1d, 0xc4, 0x8e, 0x6b, 0xdb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xc3, 0x5e, 0xe1, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x86, 0x18, 0x2e, 0x0e, 0xbb, 0xa1, 0x6b, 0xe6, 0xc2, 0x6e, 0x58, 0xdf, 0xdb, 0x10, 0xc3, 0x83, 0x55, 0xfd, 0x22, 0x1b, 0x9c, 0x23, 0x77, 0x07, 0xc1, 0xc2, 0x2f, 0xfc, 0x06, 0xe3, 0x5d, 0xe7, 0x60, 0xd5, 0x49, 0xda, 0x41, 0xec, 0xb8, 0xb6, 0x1d, 0x2c, 0xe6, 0xf3, 0x3a, 0x1e, 0x1f, 0x87, 0x8e, 0xc7, 0xc7, 0xe3, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0x83, 0xf8, 0x38, 0x5d, 0x1b, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x08, 0x36, 0x88, 0x39, 0xc6, 0xb5, 0x83, 0x74, 0xc1, 0xa1, 0x43, 0xa3, 0x96, 0xe3, 0xd0, 0xf1, 0x78, 0x71, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0xe1, 0x17, 0x7e, 0x43, 0x72, 0x69, 0xf8, 0x05, 0xc9, 0x40, 0xf1, 0x3a, 0x24, 0x97, 0x0e, 0x0e, 0x1e, 0xb5, 0x07, 0x25, 0x5d, 0xd4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x8f, 0x43, 0xc3, 0x68, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe1, 0x37, 0x88, 0xa4, 0x09, 0xb7, 0x83, 0xd5, 0x9b, 0x68, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x12, 0x6e, 0x4f, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x7e, 0x83, 0x48, 0x9a, 0x70, 0x1b, 0x24, 0x03, 0xab, 0x4e, 0x07, 0xc3, 0x3f, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x50, 0x2c, 0xda, 0x20, 0xe1, 0xf6, 0xe4, 0x90, 0xaa, 0x39, 0x0e, 0x1d, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0x05, 0xc1, 0xe2, 0x06, 0xd1, 0x9c, 0xae, 0xd1, 0xe2, 0x20, 0x58, 0x5c, 0x10, 0x2c, 0x08, 0x16, 0x7e, 0xe1, 0x17, 0x7e, 0xc3, 0x0a, 0xed, 0x41, 0x94, 0x4e, 0xb8, 0x1d, 0x1c, 0x3c, 0x6a, 0x0f, 0x56, 0x6f, 0xa2, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x04, 0x0b, 0xbf, 0x41, 0xfc, 0xc9, 0x9e, 0x1d, 0x44, 0x41, 0xf5, 0xd9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xa1, 0x58, 0xb4, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0xe5, 0x50, 0xd2, 0x41, 0x8a, 0xf2, 0xf3, 0xa1, 0xf1, 0xfc, 0x71, 0x68, 0x10, 0x6c, 0x10, 0xfb, 0xba, 0x67, 0x1b, 0x87, 0x06, 0xc1, 0xc2, 0x6f, 0x10, 0xf3, 0xcb, 0x67, 0x83, 0x64, 0x60, 0xd5, 0xe9, 0x60, 0xbc, 0xeb, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x18, 0x8a, 0x45, 0x07, 0x69, 0x09, 0x0b, 0xc7, 0xa1, 0xe3, 0xd0, 0x20, 0x58, 0x10, 0x2c, 0xfc, 0xc2, 0x2f, 0xfc, 0xc2, 0x6f, 0xc8, 0x56, 0x1c, 0x44, 0xe9, 0x84, 0xdb, 0xa1, 0x8b, 0xc9, 0xc1, 0xb8, 0x83, 0x3a, 0x58, 0x15, 0x8d, 0x74, 0xf0, 0x7e, 0x88, 0x9c, 0x41, 0xb0, 0xc1, 0xea, 0x65, 0xae, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x03, 0x3f, 0x64, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x85, 0xdf, 0x20, 0xe6, 0x97, 0xcf, 0x0e, 0x0e, 0x3c, 0xbb, 0x07, 0x6d, 0xf9, 0x00, 0x1c, 0x8c, 0xf0, 0xb4, 0xe3, 0xd0, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0xf0, 0x1b, 0x8c, 0xe0, 0xd3, 0x83, 0x92, 0xa1, 0x69, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x7b, 0x75, 0x00, 0xc3, 0x6f, 0x3c, 0xdf, 0xa0, 0x84, 0x91, 0xd8, 0x20, 0x01, 0x5b, 0x60, 0x83, 0x45, 0xa5, 0x43, 0x1b, 0xac, 0x53, 0x16, 0x5a, 0x82, 0xf4, 0xfc, 0x1a, 0xa4, 0x2d, 0x50, 0x6f, 0x90, 0xb6, 0x42, 0x32, 0xc1, 0xfa, 0xfc, 0x12, 0xb4, 0x9f, 0x5f, 0x82, 0xf7, 0xe7, 0xd7, 0x60, 0x1d, 0x33, 0xd8, 0x20, 0xd8, 0x20, 0x32, 0x7f, 0xd8, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0xfc, 0x06, 0x31, 0xbf, 0x7c, 0x76, 0x30, 0xe4, 0xac, 0x07, 0xc9, 0x40, 0xb8, 0x06, 0xd1, 0xc2, 0x4e, 0x20, 0xfc, 0xf3, 0x8f, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x12, 0x53, 0x8b, 0x1b, 0xac, 0x63, 0x06, 0x5b, 0x83, 0xb4, 0x05, 0xea, 0x0d, 0xd2, 0x56, 0x48, 0x0e, 0xd1, 0x5c, 0x83, 0x75, 0xcc, 0x60, 0x83, 0x60, 0xe1, 0x37, 0x88, 0xf8, 0xaf, 0xb5, 0x83, 0x56, 0xf3, 0x98, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xf2, 0xb5, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0xb8, 0x41, 0xda, 0x02, 0xf5, 0x41, 0xfa, 0x49, 0xf5, 0xf1, 0xf8, 0x38, 0x74, 0x88, 0xe1, 0xf1, 0xf8, 0x38, 0x34, 0xec, 0x86, 0xf5, 0xbd, 0x0d, 0x31, 0x1c, 0x7e, 0xc3, 0xb8, 0x6c, 0x1c, 0xda, 0x90, 0x3a, 0x38, 0x88, 0xbc, 0xc0, 0xb6, 0xe3, 0xd0, 0xf1, 0xf8, 0xa0, 0x64, 0x68, 0x3a, 0x1e, 0x2f, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0xfc, 0xc2, 0x6f, 0x48, 0x2e, 0x0d, 0xbf, 0xf0, 0x1b, 0x44, 0xe9, 0x84, 0xdb, 0xa1, 0x8b, 0xc9, 0xc1, 0xb8, 0x83, 0x3a, 0x74, 0x31, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0xfc, 0x06, 0x31, 0x4a, 0xe3, 0x76, 0x70, 0x7e, 0xa2, 0x3d, 0x34, 0x6a, 0x39, 0x0e, 0x1d, 0x8f, 0x17, 0x04, 0x8b, 0x1b, 0xc4, 0x1b, 0x34, 0x5b, 0x8b, 0x83, 0x60, 0x61, 0x37, 0x28, 0x2e, 0x0e, 0x17, 0x04, 0x1b, 0x24, 0xb5, 0x1f, 0x1c, 0xac, 0xf7, 0xd8, 0x19, 0x64, 0x6b, 0x68, 0xbf, 0x3e, 0xdc, 0x86, 0x56, 0xe2, 0x07, 0xe3, 0xa7, 0x6b, 0x10, 0x6c, 0x30, 0x12, 0x70, 0x0e, 0xd6, 0x7b, 0xec, 0x0c, 0x82, 0x0d, 0xe2, 0x96, 0xc3, 0x6d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x50, 0x2c, 0x3a, 0x48, 0xf9, 0x20, 0x3a, 0x0e, 0x1d, 0x8f, 0x17, 0x04, 0x0b, 0xbf, 0x41, 0xd4, 0x63, 0x9f, 0x1d, 0x44, 0x25, 0x6c, 0xdb, 0xc1, 0xd2, 0x1b, 0xa9, 0x41, 0xb0, 0xb8, 0xc1, 0x52, 0x0c, 0xaa, 0x16, 0x07, 0xc1, 0xe2, 0x82, 0x60, 0x83, 0x91, 0xff, 0xb0, 0x38, 0x08, 0x36, 0x88, 0x5f, 0x13, 0xb7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0xed, 0xd5, 0x01, 0x0c, 0xbf, 0xf1, 0x7c, 0x10, 0x2d, 0xf8, 0xbf, 0x21, 0x9a, 0x07, 0x6f, 0x76, 0x62, 0x18, 0x44, 0x0b, 0xe6, 0x1b, 0xa4, 0x2d, 0x50, 0x6f, 0x90, 0xb6, 0x42, 0x72, 0xb0, 0x4e, 0x59, 0xe8, 0x90, 0xec, 0x38, 0x0e, 0x1d, 0x8f, 0x07, 0xc1, 0x82, 0x60, 0x83, 0x48, 0xd5, 0x70, 0x1b, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x08, 0x36, 0x28, 0x19, 0x9a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x4b, 0x90, 0x3f, 0xdf, 0x60, 0xe0, 0x87, 0x1c, 0x0c, 0xfc, 0x90, 0xe3, 0xd0, 0x41, 0x74, 0x7c, 0xb8, 0x1d, 0x87, 0x06, 0xc1, 0x06, 0xd1, 0x1d, 0xe2, 0x36, 0x08, 0x36, 0x38, 0x07, 0x7f, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0xae, 0x9f, 0xcf, 0x06, 0xc1, 0xc6, 0xa1, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x1f, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0xf8, 0x0d, 0x62, 0x7e, 0xf9, 0xec, 0xe0, 0x44, 0x49, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0x82, 0xfe, 0xf9, 0x87, 0xc6, 0xf3, 0xc7, 0xa1, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x8d, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x7e, 0xb0, 0x7a, 0x1e, 0xe7, 0x90, 0xb5, 0x3b, 0x0e, 0x1d, 0x87, 0x0e, 0x46, 0x78, 0xda, 0x71, 0xe8, 0xa0, 0x1c, 0x4a, 0x3a, 0x1e, 0x1f, 0x8f, 0x0f, 0xe2, 0xa4, 0xfc, 0x6c, 0xc3, 0xc4, 0xad, 0x61, 0xee, 0x07, 0x78, 0xc3, 0xf4, 0xd2, 0xda, 0xea, 0xe8, 0xd0, 0x0d, 0x33, 0xb4, 0x86, 0x19, 0x5a, 0xc3, 0xc4, 0xad, 0xa1, 0x8e, 0x6c, 0xf0, 0x84, 0x0d, 0x8c, 0x83, 0xd7, 0x38, 0x64, 0x6e, 0x98, 0xb8, 0x35, 0xd4, 0x91, 0x0d, 0x9e, 0xb0, 0x81, 0x71, 0xf0, 0xae, 0xf9, 0xdd, 0x0d, 0x13, 0xb7, 0xc1, 0xab, 0x2b, 0x30, 0x0e, 0xde, 0xaa, 0x81, 0xb1, 0xe1, 0x44, 0xd8, 0x20, 0xba, 0x9a, 0xdc, 0xd6, 0x70, 0x8e, 0xac, 0x38, 0x08, 0x16, 0x07, 0xf0, 0x22, 0x73, 0x9b, 0x6b, 0x21, 0x7b, 0x6b, 0x0b, 0x4b, 0x73, 0x9b, 0x5b, 0x1c, 0x04, 0x0b, 0xbb, 0x70, 0x8b, 0x07, 0x0f, 0x33, 0x12, 0x3d, 0x44, 0x73, 0x85, 0x5d, 0xb8, 0x0d, 0xd1, 0x3c, 0x88, 0x03, 0x29, 0xb7, 0x0d, 0xe2, 0x40, 0xca, 0xed, 0x70, 0x8a, 0x0d, 0x82, 0x85, 0x5f, 0xf8, 0x0d, 0x89, 0x99, 0x83, 0x67, 0x03, 0xa5, 0x1d, 0xac, 0x4b, 0x05, 0x3b, 0x78, 0xd4, 0x6b, 0xd6, 0xb0, 0x0b, 0xb7, 0x18, 0xf0, 0xc9, 0xa5, 0x9d, 0xa1, 0xd1, 0xcd, 0x87, 0x68, 0xae, 0xb0, 0x0b, 0xb7, 0x21, 0x9a, 0x07, 0xf1, 0x50, 0xe5, 0xb6, 0x41, 0x3c, 0x54, 0xb9, 0x1d, 0x4e, 0xb1, 0x83, 0xb8, 0x9c, 0x72, 0x1b, 0x76, 0xe1, 0x16, 0x03, 0xbc, 0xce, 0xca, 0xe8, 0x5a, 0xe6, 0xe0, 0xc2, 0xee, 0xdc, 0xca, 0xc8, 0x43, 0x34, 0x57, 0xd8, 0x85, 0xdb, 0x10, 0xcd, 0x83, 0x48, 0xba, 0x72, 0xdb, 0x20, 0x92, 0xae, 0xdc, 0x0e, 0xa7, 0xd8, 0x41, 0x5c, 0x4e, 0xb9, 0x2d, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0x78, 0x10, 0xd9, 0x50, 0x6e, 0x1b, 0xc4, 0x7f, 0x96, 0xdb, 0xe1, 0x14, 0x1b, 0x04, 0x1b, 0x44, 0xed, 0x94, 0xdb, 0xc1, 0x7a, 0x74, 0xad, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0xf1, 0x78, 0xc5, 0xc5, 0x00, 0x82, 0xa4, 0xbe, 0x69, 0xc4, 0x26, 0x15, 0x87, 0x42, 0x01, 0xf6, 0xc4, 0x31, 0x08, 0x22, 0x97, 0x7c, 0xd0, 0xf4, 0xc3, 0x76, 0x2b, 0x06, 0x9e, 0x1d, 0xe3, 0xbd, 0x06, 0x85, 0x1d, 0xce, 0x18, 0xc0, 0x0f, 0x84, 0xf4, 0x42, 0xb5, 0x87, 0x58, 0x33, 0x10, 0x3a, 0xba, 0xcc, 0xa9, 0x09, 0xf0, 0x6b, 0xf3, 0x4d, 0xdc, 0xb8, 0x75, 0x88, 0xe1, 0x86, 0x18, 0x2e, 0x06, 0x10, 0xf4, 0xc8, 0xd0, 0x56, 0x68, 0x90, 0x16, 0x66, 0xef, 0xc1, 0x8e, 0x6a, 0x3e, 0xe6, 0x45, 0x01, 0x29, 0xa3, 0x90, 0x12, 0x5e, 0x0c, 0x3c, 0x58, 0xc6, 0xfb, 0x10, 0xc3, 0xe3, 0xf1, 0x8a, 0x8b, 0x6b, 0x10, 0x97, 0xa7, 0x68, 0xa1, 0x60, 0x83, 0x38, 0x0f, 0x73, 0xdb, 0xa0, 0xb1, 0x49, 0xaf, 0x0d, 0x1a, 0x9b, 0xf4, 0xda, 0xa0, 0xb1, 0x49, 0xaf, 0x0d, 0x62, 0xf5, 0x13, 0x6d, 0x83, 0x58, 0xfd, 0x44, 0xdb, 0x20, 0x56, 0x3f, 0xd1, 0x36, 0x88, 0xd5, 0x4f, 0xb4, 0x0d, 0x62, 0xf5, 0x13, 0xad, 0x71, 0x83, 0xf7, 0x48, 0x26, 0x6e, 0xf0, 0x1e, 0xc9, 0xc4, 0x0d, 0xde, 0x23, 0x99, 0xb8, 0xc1, 0x7b, 0x24, 0x13, 0x0f, 0x9e, 0x4b, 0xf0, 0x78, 0x3c, 0x5e, 0x10, 0xac, 0xf0, 0x1b, 0x44, 0x10, 0x4f, 0xcf, 0x21, 0x75, 0xb0, 0xf0, 0x0b, 0x82, 0x85, 0x5f, 0xf8, 0x0d, 0xe3, 0x72, 0xf0, 0x6c, 0xa0, 0xb4, 0x83, 0x37, 0x02, 0x94, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x7e, 0x10, 0xe9, 0x29, 0x3d, 0xc7, 0xa1, 0x43, 0xea, 0x60, 0xf8, 0x05, 0xc1, 0xc2, 0x6f, 0x10, 0x8d, 0x67, 0x6e, 0x07, 0xaf, 0x6a, 0x12, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x88, 0xc6, 0x33, 0xb7, 0x83, 0xc7, 0xa5, 0x73, 0x0d, 0xbf, 0xf1, 0x7c, 0xf8, 0x0d, 0xa2, 0xf1, 0xcc, 0xed, 0xa0, 0x19, 0xe0, 0xa4, 0xe3, 0xd0, 0x21, 0x75, 0xb0, 0x38, 0x08, 0x56, 0x10, 0x2c, 0xfc, 0x86, 0xe4, 0xd2, 0x41, 0x04, 0xf1, 0xf4, 0x1c, 0xd2, 0x70, 0x0b, 0x82, 0x85, 0xdf, 0x90, 0x5c, 0x3a, 0x88, 0xab, 0x33, 0xb7, 0x43, 0x53, 0xa0, 0x41, 0xb0, 0xf0, 0x1b, 0x92, 0x4b, 0x07, 0x51, 0x99, 0xe6, 0x76, 0x68, 0x01, 0x76, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x71, 0x41, 0xb0, 0xb8, 0xe1, 0x14, 0xdb, 0x70, 0x8a, 0x1d, 0x3c, 0x5e, 0xa2, 0x62, 0x71, 0x10, 0xac, 0x20, 0x58, 0xf8, 0x0d, 0xc9, 0xa5, 0xe1, 0x17, 0x7e, 0x43, 0xbe, 0xf6, 0xe0, 0xd9, 0x40, 0x69, 0x07, 0xef, 0xbb, 0xed, 0x39, 0xa4, 0xe1, 0x16, 0x04, 0x1b, 0x44, 0x3f, 0x9c, 0xdb, 0xa1, 0x29, 0xd0, 0x06, 0xef, 0xf1, 0xca, 0x58, 0xd8, 0x0d, 0x1a, 0xdc, 0x4f, 0xda, 0x10, 0xc3, 0x61, 0x37, 0x68, 0x2a, 0x41, 0xe9, 0xd0, 0xe6, 0x71, 0x83, 0x31, 0x9d, 0xbc, 0x20, 0xd8, 0x20, 0x6a, 0xa7, 0xdc, 0x0e, 0x96, 0xb7, 0x64, 0x2d, 0x08, 0x36, 0x88, 0xda, 0x29, 0xb7, 0x83, 0x38, 0xe2, 0x67, 0x5b, 0x10, 0x6c, 0x10, 0xb5, 0x53, 0x6e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x16, 0x1e, 0xca, 0x1c, 0x34, 0x2a, 0xce, 0x74, 0x1c, 0x5a, 0x10, 0x6c, 0x10, 0xb5, 0x53, 0x6e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x16, 0x1e, 0xca, 0x1c, 0x3c, 0xf4, 0x91, 0xe9, 0x38, 0x34, 0x08, 0x36, 0x88, 0xda, 0x29, 0xb7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x0b, 0x0f, 0x65, 0x0e, 0x1e, 0x89, 0xc9, 0x74, 0x1c, 0x3a, 0x34, 0x7f, 0x39, 0x1e, 0x0f, 0x82, 0x0d, 0x0a, 0x68, 0xc1, 0xc5, 0x41, 0xb0, 0x82, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x86, 0xdf, 0x20, 0xb2, 0xe2, 0xdc, 0x0e, 0x4a, 0x86, 0xa6, 0x43, 0x1a, 0x6e, 0x41, 0xb0, 0x41, 0xc4, 0xec, 0xb9, 0x1d, 0x9a, 0x02, 0x2d, 0x08, 0x36, 0x88, 0x98, 0x3d, 0xb7, 0x43, 0x27, 0xa2, 0x05, 0xc1, 0x06, 0x11, 0xb3, 0xe7, 0x76, 0xb0, 0x84, 0xff, 0x67, 0x10, 0x6c, 0x10, 0x31, 0x7b, 0x6e, 0x07, 0x45, 0xf0, 0xe0, 0xa1, 0xf9, 0xcb, 0xf1, 0xf8, 0x78, 0xbc, 0x41, 0xfb, 0xf3, 0x4b, 0x0b, 0x82, 0xc5, 0x01, 0x9f, 0x2c, 0xcd, 0x6c, 0x6e, 0x71, 0x10, 0x2c, 0xec, 0x06, 0x4b, 0x50, 0xa7, 0xd6, 0x60, 0xfd, 0xea, 0xd4, 0x82, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x06, 0xc1, 0x06, 0x31, 0x9b, 0xe6, 0x36, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x10, 0x8d, 0x67, 0x6e, 0x07, 0xaf, 0x0e, 0x17, 0x1a, 0x7e, 0xe3, 0xf9, 0x41, 0x04, 0xf1, 0xf4, 0x1c, 0x87, 0x0e, 0x4d, 0x81, 0x16, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x74, 0x10, 0x1b, 0xca, 0x41, 0x87, 0x4e, 0x44, 0x83, 0x60, 0xe1, 0x37, 0x24, 0x97, 0x86, 0xdf, 0x20, 0x1a, 0xcf, 0xdc, 0x0e, 0xd6, 0xf2, 0x09, 0x1c, 0xba, 0x1f, 0x2d, 0xec, 0xc2, 0x6d, 0x88, 0xe6, 0x78, 0x10, 0xa5, 0x7f, 0x6e, 0x1b, 0xc4, 0x83, 0xa1, 0xdb, 0xe1, 0x14, 0x1b, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0x34, 0x08, 0x36, 0x88, 0xba, 0x33, 0xb7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc2, 0x6f, 0x10, 0x8d, 0x67, 0x6e, 0x07, 0x2f, 0xd1, 0x28, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x88, 0xc6, 0x33, 0xb7, 0x83, 0x71, 0x07, 0x35, 0xfc, 0xc6, 0xf3, 0x83, 0x74, 0xbe, 0xa1, 0xe3, 0xd0, 0x71, 0xe8, 0xd0, 0x41, 0xe3, 0xd0, 0xfc, 0xe5, 0x78, 0xbc, 0x20, 0xd8, 0x20, 0x66, 0xd3, 0xdc, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x88, 0xe1, 0xe2, 0x20, 0x58, 0x10, 0x2c, 0xfc, 0xc2, 0x6f, 0x58, 0xfb, 0x3d, 0x78, 0x36, 0x50, 0xda, 0xc1, 0xba, 0x54, 0xb0, 0x83, 0x87, 0xe4, 0x5f, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x0f, 0x16, 0xc3, 0xd6, 0x1c, 0x87, 0x56, 0x5c, 0x0c, 0xa0, 0x67, 0xd9, 0xbf, 0x66, 0x98, 0x48, 0x19, 0x4c, 0xfd, 0x95, 0xcb, 0x7d, 0x2e, 0x5c, 0x51, 0x9e, 0xf1, 0xcf, 0x80, 0x47, 0xac, 0x18, 0x78, 0x20, 0x87, 0xe7, 0x1a, 0x8e, 0xf6, 0x31, 0x80, 0xa0, 0xf4, 0x0f, 0x85, 0x9c, 0x92, 0xf3, 0x46, 0x69, 0x46, 0x7b, 0x75, 0xbc, 0xe3, 0x29, 0x9e, 0x7d, 0x4e, 0x01, 0xb8, 0xf5, 0x18, 0x40, 0x50, 0x00, 0x46, 0x97, 0x3a, 0x3b, 0x17, 0x79, 0x87, 0xdd, 0x78, 0xd4, 0xc5, 0x08, 0xc1, 0x4b, 0x26, 0x34, 0x67, 0xb3, 0x61, 0x31, 0x80, 0x20, 0x75, 0xa5, 0x6b, 0xc3, 0xbc, 0xea, 0x9f, 0xb1, 0x10, 0x0a, 0x93, 0xf0, 0xc7, 0xa4, 0xe9, 0x61, 0x4c, 0x08, 0x12, 0xc6, 0x62, 0x00, 0x3d, 0x73, 0xdd, 0x78, 0x8b, 0xe1, 0xbf, 0x04, 0xd3, 0xa9, 0x26, 0x46, 0x61, 0x10, 0x8c, 0x47, 0x08, 0xf9, 0xcb, 0xee, 0x73, 0x31, 0xf0, 0x4a, 0xa7, 0xd6, 0x31, 0x80, 0xa0, 0xfd, 0x52, 0x57, 0xd7, 0xb2, 0x02, 0x8e, 0x82, 0x3a, 0x5e, 0x2f, 0x1e, 0x7c, 0xa9, 0xf1, 0xf8, 0x58, 0x45, 0xc8, 0xfb, 0xf1, 0x78, 0xc5, 0xc5, 0x00, 0x82, 0x02, 0xc7, 0xf0, 0xa1, 0xe1, 0xab, 0xa4, 0xaa, 0x53, 0x58, 0x9f, 0x2d, 0x6b, 0x26, 0x98, 0xb8, 0x5c, 0x38, 0x7b, 0x0c, 0x6b, 0x88, 0xe1, 0x8a, 0xc1, 0xe5, 0x34, 0x06, 0xf0, 0x23, 0xe1, 0x8f, 0x98, 0x78, 0xec, 0xc6, 0x29, 0x19, 0xb0, 0xfe, 0x97, 0xa9, 0xe7, 0x2b, 0xd8, 0xbb, 0xa9, 0x88, 0xbb, 0x8e, 0x01, 0xd4, 0x90, 0xa3, 0x15, 0x67, 0x02, 0xb1, 0x23, 0xb8, 0x99, 0xe7, 0x5f, 0x47, 0x63, 0x05, 0x96, 0xf9, 0x4a, 0x70, 0x0f, 0x5f, 0x0c, 0xa0, 0x67, 0x7d, 0x9a, 0xa1, 0x30, 0xf3, 0xc2, 0x3f, 0x36, 0x38, 0x8d, 0x82, 0x35, 0x6d, 0x83, 0xb3, 0x05, 0x62, 0x67, 0xbd, 0x2e, 0x06, 0xf0, 0x03, 0x48, 0xa7, 0xb7, 0xcb, 0x4e, 0xa4, 0x04, 0x24, 0xaa, 0x3f, 0x80, 0x4a, 0xf4, 0x3f, 0x20, 0x29, 0x8f, 0xb6, 0x6d, 0x6d, 0x88, 0xe1, 0x18, 0x40, 0xd0, 0x10, 0xbf, 0xfa, 0x75, 0x77, 0x90, 0x4f, 0x67, 0x73, 0xa5, 0x7f, 0x5b, 0xb9, 0xf2, 0x86, 0x3b, 0xdb, 0x02, 0xc7, 0xed, 0x78, 0xbc, 0xb8, 0x18, 0xc0, 0xbe, 0xf6, 0x63, 0x83, 0xd9, 0x31, 0x93, 0xfa, 0x29, 0x48, 0xac, 0xb0, 0xa9, 0xbc, 0xa9, 0xdf, 0x73, 0xec, 0x6f, 0x11, 0xa5, 0x9e, 0xdd, 0x8a, 0x60, 0x2b, 0x1b, 0x27, 0x75, 0x4e, 0x3d, 0xb4, 0xad, 0x18, 0xc0, 0x7f, 0x69, 0xa7, 0x1a, 0x89, 0x39, 0xff, 0xc6, 0x42, 0x52, 0x99, 0xf9, 0xdf, 0x6e, 0xdb, 0xfc, 0x3a, 0xcd, 0xdf, 0x2f, 0x40, 0xb8, 0xe5, 0xc1, 0xd2, 0xc5, 0x92, 0xf6, 0xc6, 0x26, 0x1f, 0x91, 0xbf, 0x62, 0x00, 0x02, 0x14, 0x20, 0x87, 0x31, 0xa0, 0x5d, 0xd4, 0x36, 0xc0, 0x5c, 0x7b, 0xe5, 0x8d, 0xab, 0x8b, 0x16, 0xdb, 0x1b, 0xc9, 0xd3, 0x9d, 0x88, 0xc6, 0x1e, 0xcb, 0x5f, 0x51, 0x1c, 0x7b, 0x9a, 0x58, 0x2f, 0x17, 0x03, 0x10, 0x40, 0x65, 0x32, 0x1b, 0x12, 0x6d, 0x1e, 0x31, 0x13, 0x9a, 0xa1, 0x1d, 0x65, 0x90, 0x05, 0xb2, 0xb4, 0xf9, 0xe2, 0xf7, 0x31, 0x9b, 0xc4, 0x7c, 0x72, 0xd0, 0xf9, 0x76, 0xc1, 0x61, 0x77, 0xca, 0xba, 0x18, 0x80, 0x00, 0xd5, 0x10, 0x82, 0x44, 0x94, 0xc1, 0x46, 0x13, 0xa7, 0x17, 0x88, 0xae, 0x1a, 0x9d, 0xf1, 0xa7, 0xff, 0xff, 0xfe, 0x09, 0xa8, 0xb4, 0x0c, 0x0b, 0xbd, 0x3d, 0x19, 0x25, 0x9a, 0x4f, 0x70, 0xd7, 0xc5, 0x00, 0x04, 0x78, 0xd0, 0x81, 0xd2, 0x85, 0x10, 0x2e, 0x0b, 0xe8, 0x8a, 0x66, 0x10, 0xf0, 0xb7, 0x9d, 0x8f, 0x66, 0x2c, 0xa1, 0x20, 0x64, 0x36, 0xb8, 0x8f, 0x0d, 0x4f, 0x3b, 0xe8, 0x04, 0x1c, 0x60, 0x3a, 0x2f, 0x06, 0x20, 0x00, 0x26, 0x52, 0xee, 0x14, 0xcc, 0x81, 0x9f, 0x39, 0x48, 0x48, 0x72, 0xb5, 0x8f, 0x01, 0x09, 0xf5, 0x67, 0xa2, 0x1a, 0x73, 0xf0, 0xc3, 0xf6, 0x87, 0x8b, 0xab, 0x76, 0x78, 0x2b, 0x41, 0xbf, 0x7e, 0x0c, 0x40, 0x80, 0xdf, 0x74, 0x17, 0x8f, 0x12, 0x8e, 0x28, 0xf0, 0x82, 0xef, 0xb0, 0x63, 0xc2, 0xe5, 0xaa, 0xaf, 0xcf, 0x09, 0x03, 0xdf, 0xf6, 0xd7, 0x47, 0x0b, 0x66, 0x95, 0xfe, 0xe7, 0x93, 0x49, 0xce, 0xd5, 0x62, 0x00, 0x02, 0x28, 0x1d, 0xb6, 0xba, 0x42, 0x08, 0x9c, 0x2f, 0x4d, 0x36, 0x7a, 0xd4, 0x56, 0xc0, 0x6e, 0xfa, 0x94, 0xe7, 0x8d, 0x2e, 0x97, 0x59, 0x71, 0x50, 0x60, 0x08, 0x86, 0x3c, 0x2e, 0x14, 0x52, 0xd3, 0x16, 0x03, 0x10, 0xa0, 0x7a, 0x84, 0xea, 0x3f, 0xc0, 0x0f, 0x33, 0x6a, 0x1c, 0xee, 0x2a, 0xd1, 0x11, 0x53, 0x67, 0xd7, 0x37, 0x2d, 0xd8, 0x61, 0xac, 0x33, 0x3b, 0x7e, 0x64, 0xa8, 0x2f, 0x02, 0xf4, 0x1c, 0x42, 0x35, 0x06, 0xd0, 0xef, 0xe6, 0x14, 0x95, 0x12, 0x8b, 0x96, 0xac, 0x18, 0x1c, 0xcd, 0x63, 0x9d, 0xf9, 0x2d, 0xee, 0xbc, 0x91, 0xdd, 0x79, 0x5f, 0xe1, 0x38, 0xf8, 0x7e, 0xa3, 0x21, 0x1c, 0x9f, 0x79, 0x94, 0x92, 0x16, 0x03, 0x10, 0xc0, 0xa8, 0x02, 0xa1, 0x82, 0xc8, 0x12, 0x12, 0x8e, 0x44, 0x89, 0x6e, 0x1e, 0x0e, 0x82, 0x0a, 0x15, 0x02, 0x74, 0xe0, 0xc5, 0xcb, 0xc4, 0xf2, 0x1f, 0xb9, 0x3e, 0x67, 0xf4, 0xdc, 0x74, 0x5a, 0xb6, 0x18, 0x80, 0x00, 0x6d, 0x00, 0x6f, 0x86, 0xd8, 0xea, 0x20, 0x1a, 0x05, 0x25, 0x2b, 0x12, 0x95, 0x40, 0xc8, 0x35, 0x7e, 0x68, 0x0d, 0xed, 0x0a, 0x84, 0x9e, 0x0d, 0xe1, 0xef, 0x3c, 0x7b, 0xaf, 0x36, 0x27, 0x90, 0x31, 0x00, 0x01, 0xf8, 0x08, 0xd7, 0xf2, 0x20, 0x3e, 0x9a, 0x42, 0xbf, 0xf1, 0x5e, 0xda, 0x97, 0xfd, 0x07, 0x6b, 0x62, 0x53, 0xe5, 0x48, 0x5c, 0x27, 0xcf, 0xe0, 0x19, 0xfe, 0xfc, 0x32, 0x6e, 0xd3, 0xc6, 0x9f, 0xc7, 0xe3, 0x65, 0xd6, 0x20, 0x28, 0xb0, 0x36, 0x28, 0x59, 0xd8, 0x67, 0x99, 0x35, 0x88, 0x3c, 0x26, 0xb7, 0x0d, 0x1f, 0xb5, 0x6f, 0x10, 0xb4, 0x3f, 0x6b, 0xf8, 0x5c, 0x69, 0x0d, 0x19, 0xf0, 0x0d, 0x2f, 0xdf, 0x1d, 0x3c, 0xcc, 0x48, 0x74, 0x83, 0x38, 0x39, 0x5b, 0x6a, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0xd8, 0xa8, 0x72, 0x3b, 0x88, 0x8e, 0x61, 0xb7, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x0c, 0xf8, 0x86, 0x97, 0xef, 0x0e, 0xa2, 0xea, 0xca, 0xed, 0x20, 0x3a, 0x86, 0xdd, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0x32, 0xe0, 0x1b, 0x5e, 0xbe, 0x3b, 0x88, 0x6c, 0x28, 0xb7, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0x82, 0x07, 0x97, 0x83, 0x32, 0x4b, 0xb7, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0x5b, 0x01, 0xfc, 0xcf, 0xde, 0xca, 0xe4, 0xd8, 0xd2, 0x5a, 0xc6, 0xde, 0xdc, 0xe8, 0xe4, 0xc2, 0xc6, 0xe8, 0xe6, 0x0d, 0x4a, 0x16, 0xf6, 0x59, 0x66, 0x0d, 0x22, 0x8f, 0xc9, 0x6d, 0xc3, 0x8f, 0x30, 0x03, 0x5f, 0x87, 0x1f, 0x44, 0x00, 0x97, 0xdb, 0x0a, 0xf0, 0xb1, 0x85, 0xd5, 0xb9, 0x8d, 0xa1, 0x1b, 0x7e, 0x84, 0xd9, 0x50, 0xf3, 0x03, 0xcf, 0x8e, 0xf1, 0x5e, 0x0d, 0xe2, 0xc7, 0x34, 0xed, 0xe0, 0xb0, 0xc0, 0xb6, 0x02, 0x3c, 0x6e, 0x61, 0x69, 0x76, 0xe5, 0x86, 0x1f, 0x61, 0x06, 0xbe, 0x0e, 0x3f, 0x88, 0x05, 0x2f, 0xb7, 0xc3, 0x29, 0xd6, 0x02, 0xf0, 0xc2, 0x96, 0xe6, 0x56, 0x16, 0x26, 0xd7, 0x32, 0x47, 0x17, 0x26, 0xd7, 0x22, 0x57, 0xc6, 0x56, 0x16, 0x36, 0x57, 0x1e, 0x2c, 0x5d, 0x43, 0x3d, 0x9c, 0x62, 0x0b, 0xc0, 0xdf, 0xd8, 0x9b, 0x1b, 0x59, 0x1a, 0x5d, 0xda, 0x9b, 0x5b, 0x18, 0x5b, 0xcb, 0x1c, 0x5d, 0x98, 0x5c, 0x8b, 0x5c, 0x19, 0x5b, 0x59, 0xd8, 0x5c, 0x79, 0xb0, 0x74, 0x0d, 0x75, 0x05, 0xf8, 0xcb, 0xc6, 0xd8, 0xd2, 0xe0, 0xe8, 0xd2, 0xc6, 0x0d, 0x3f, 0xc2, 0x0c, 0x7c, 0x1d, 0x7e, 0x10, 0xc7, 0x5f, 0x6e, 0x87, 0x53, 0x6c, 0x01, 0x3e, 0xb8, 0x3a, 0x31, 0xb6, 0xb4, 0x71, 0xc3, 0x8f, 0x30, 0x1b, 0x6a, 0x7e, 0xe0, 0xc1, 0x32, 0xde, 0x2b, 0x00, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x2d, 0x73, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0xe7, 0xc1, 0xd2, 0x35, 0xd4, 0xc3, 0x29, 0xd6, 0xe1, 0x14, 0x5b, 0x01, 0xfe, 0x32, 0x3a, 0xb4, 0x16, 0xba, 0x3c, 0xb8, 0x72, 0x83, 0x92, 0x85, 0x7d, 0x96, 0x59, 0x83, 0x37, 0x64, 0xa7, 0x6d, 0x70, 0x74, 0x1d, 0x5c, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0xcf, 0x32, 0xb7, 0x31, 0xb9, 0x3c, 0x38, 0xba, 0xb4, 0x37, 0xb7, 0xa5, 0xb2, 0xbc, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x8d, 0xbb, 0x83, 0x08, 0x3b, 0x45, 0x3b, 0x48, 0x3b, 0x8d, 0x5d, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x1e, 0xc2, 0xea, 0xe8, 0xd0, 0xca, 0xdc, 0xe8, 0xd2, 0xc6, 0xc2, 0xe8, 0xd2, 0xde, 0xdc, 0x96, 0xca, 0xf2, 0x0e, 0x22, 0x12, 0xdb, 0x6d, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0x7c, 0xd0, 0xc2, 0xe6, 0xa6, 0xe0, 0xde, 0xdc, 0xe6, 0xde, 0xe4, 0x36, 0xbc, 0x71, 0x77, 0x10, 0xc3, 0x9c, 0x68, 0x6b, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xf0, 0x85, 0x8d, 0xd1, 0xa5, 0xd9, 0x95, 0x1d, 0x44, 0x2d, 0xb7, 0xdb, 0x1a, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0x97, 0xcd, 0x8d, 0x85, 0xc1, 0x95, 0x49, 0x95, 0xc5, 0xd5, 0x95, 0xcd, 0xd1, 0x95, 0x91, 0x1d, 0x44, 0x2d, 0xb7, 0xdb, 0x1a, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x07, 0x8f, 0x95, 0xe6, 0x3c, 0x88, 0x53, 0x9e, 0xb4, 0x35, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xe0, 0xa1, 0x6c, 0x6e, 0x2c, 0x0c, 0xae, 0x4c, 0xaa, 0x2c, 0xae, 0xae, 0x6c, 0x8e, 0xae, 0x8c, 0x8c, 0xea, 0xed, 0x20, 0x4e, 0x79, 0xd2, 0xd6, 0xf0, 0x3c, 0xc9, 0x1a, 0xee, 0xb4, 0x19, 0x80, 0x8f, 0x31, 0xb9, 0x3c, 0x38, 0xba, 0xb7, 0xa9, 0xba, 0x34, 0xba, 0x32, 0xab, 0x32, 0xb9, 0xb9, 0xb4, 0x37, 0xb7, 0x83, 0x38, 0xe5, 0x49, 0x5b, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x66, 0x00, 0x1e, 0xd6, 0xca, 0xf2, 0xa4, 0xca, 0xec, 0xd2, 0xe6, 0xd2, 0xde, 0xdc, 0x9c, 0xea, 0xda, 0xc4, 0xca, 0xe4, 0x0e, 0xe2, 0x94, 0x27, 0x6d, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0xfc, 0xc7, 0xde, 0xdc, 0xe8, 0xd2, 0xdc, 0xea, 0xd2, 0xe8, 0xf2, 0x9c, 0xea, 0xda, 0xc4, 0xca, 0xe4, 0x0e, 0xe2, 0x94, 0x27, 0xad, 0x15, 0xf0, 0xc9, 0xca, 0xca, 0xc8, 0x0d, 0x8e, 0xae, 0x83, 0x6b, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x6c, 0xf0, 0xd8, 0x06, 0xb5, 0x0e, 0x22, 0xb1, 0x41, 0x6d, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0xbc, 0xdb, 0xc2, 0xdc, 0xc2, 0xce, 0xca, 0xda, 0xca, 0xdc, 0xe8, 0xa0, 0xe4, 0xde, 0xf0, 0xf2, 0x0e, 0x22, 0xb1, 0x41, 0x6d, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0x7c, 0xe6, 0xe0, 0xc2, 0xee, 0xdc, 0xa0, 0xe4, 0xde, 0xf0, 0xf2, 0x0e, 0x22, 0xb1, 0x41, 0x6d, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0xbc, 0xec, 0xde, 0xe8, 0xd2, 0xdc, 0xce, 0xa0, 0xe4, 0xde, 0xf0, 0xf2, 0x0e, 0x22, 0xb1, 0x41, 0x6d, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x9b, 0x01, 0x3c, 0xe9, 0xe4, 0xc2, 0xdc, 0xe6, 0xcc, 0xca, 0xe4, 0xa0, 0xe4, 0xde, 0xf0, 0xf2, 0x0e, 0x22, 0xb1, 0x41, 0xad, 0xc3, 0x29, 0xd6, 0xe1, 0x14, 0x3b, 0x9c, 0x62, 0x0b, 0xe0, 0x39, 0xf6, 0xd6, 0x06, 0xc7, 0x56, 0x46, 0x57, 0xd6, 0x32, 0x87, 0x96, 0x06, 0x6f, 0xf8, 0xa8, 0x7d, 0xc3, 0xf7, 0xed, 0x1b, 0xc4, 0x76, 0xbc, 0xdb, 0x86, 0xcf, 0x95, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0x61, 0x9c, 0x71, 0xf0, 0x38, 0xc1, 0xcc, 0x35, 0xfc, 0xb9, 0x34, 0xc0, 0x8b, 0x96, 0x36, 0x47, 0xf7, 0x26, 0x97, 0x6f, 0x10, 0xfa, 0x25, 0x1b, 0x84, 0x94, 0xc9, 0x06, 0xef, 0x84, 0xcb, 0x6c, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0x92, 0x1e, 0xb5, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0x12, 0xb1, 0x7e, 0x83, 0xb7, 0xe9, 0x3a, 0x6e, 0xf0, 0x80, 0x9b, 0xcc, 0x9a, 0x05, 0xf8, 0xcb, 0xe8, 0xd0, 0x5a, 0xdc, 0xde, 0xea, 0xdc, 0x0d, 0x4a, 0x16, 0xf6, 0x59, 0x66, 0x0d, 0xde, 0x90, 0x9d, 0xb6, 0xe1, 0xa3, 0xf6, 0x0d, 0xdf, 0xb7, 0x6f, 0xf0, 0x86, 0xec, 0xb4, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0x01, 0x7c, 0xcb, 0xdc, 0xc6, 0xe4, 0xf2, 0xe0, 0xe8, 0xd2, 0xde, 0xdc, 0x5a, 0xd6, 0xca, 0xf2, 0x83, 0xa7, 0x9f, 0xcb, 0xad, 0xe1, 0xcf, 0xa5, 0x01, 0xf8, 0x08, 0xab, 0xa3, 0x43, 0x2b, 0x73, 0xa3, 0x4b, 0x1b, 0x0b, 0xa3, 0x4b, 0x7b, 0x73, 0x6b, 0x59, 0x2b, 0xcb, 0x0f, 0x9e, 0x7e, 0x2e, 0xb7, 0x86, 0x3f, 0x97, 0x06, 0xf0, 0x42, 0x0b, 0x9b, 0x6b, 0x99, 0x83, 0x7b, 0x73, 0x9b, 0x7b, 0x93, 0x0f, 0x1f, 0xac, 0xae, 0xe1, 0xcf, 0xa5, 0x0d, 0x62, 0xb5, 0xdb, 0xed, 0xf0, 0xc1, 0xea, 0x1a, 0xfe, 0x5c, 0x1a, 0xc0, 0xbf, 0x6c, 0x6e, 0x2c, 0x0c, 0xae, 0xac, 0x45, 0xae, 0x2c, 0xae, 0xae, 0x6c, 0x8e, 0xae, 0x8c, 0x3c, 0x7c, 0xb0, 0xba, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x30, 0x1d, 0xd7, 0x41, 0x99, 0xa5, 0xbb, 0x86, 0x3f, 0x97, 0x06, 0xf0, 0x28, 0x9b, 0x1b, 0x0b, 0x83, 0x2b, 0x6b, 0xa1, 0x7b, 0x0f, 0xca, 0x2c, 0xdd, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0x1b, 0x83, 0x37, 0x0f, 0xca, 0x2c, 0xdd, 0x35, 0xfc, 0xb9, 0x34, 0x80, 0xdf, 0x5a, 0x59, 0x5e, 0x8b, 0x5c, 0x99, 0x5d, 0xda, 0x5c, 0xda, 0x9b, 0x7b, 0x50, 0x66, 0xe9, 0xae, 0xe1, 0xcf, 0xa5, 0x0d, 0x1e, 0x9b, 0x93, 0x79, 0x50, 0x66, 0xe9, 0xb6, 0x1a, 0x44, 0x47, 0xba, 0xdb, 0x86, 0x8f, 0xda, 0x37, 0x7c, 0xdf, 0xbe, 0x41, 0x74, 0xa4, 0xbb, 0x6d, 0xf8, 0x5c, 0x69, 0x0d, 0x7f, 0x2e, 0x6d, 0xf0, 0xd8, 0x06, 0xb5, 0x83, 0x17, 0x11, 0x3c, 0xae, 0xe1, 0xcf, 0xa5, 0x0d, 0x5e, 0x82, 0xa9, 0x76, 0xf0, 0x22, 0x82, 0xc7, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0x63, 0x71, 0xd5, 0x0e, 0x5e, 0x44, 0xf0, 0xb8, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x2b, 0xaa, 0xda, 0xc1, 0x8b, 0x08, 0x1e, 0xd7, 0xf0, 0xe7, 0xd2, 0x06, 0x6f, 0xf2, 0x4f, 0x3b, 0x78, 0x11, 0xc1, 0x63, 0x87, 0x53, 0xac, 0xc3, 0x29, 0xb6, 0x02, 0x78, 0x8c, 0xbd, 0xb9, 0xd1, 0xc9, 0x85, 0x8d, 0xd1, 0xcd, 0x1b, 0xde, 0xd6, 0x19, 0x80, 0x87, 0xb6, 0xb0, 0x34, 0x37, 0xb7, 0x32, 0xba, 0x96, 0xb1, 0x37, 0x37, 0x3a, 0xb9, 0xb0, 0x31, 0xba, 0xb9, 0xc3, 0x29, 0xb6, 0x06, 0xaf, 0x5c, 0x61, 0xd9, 0xf0, 0x51, 0xfb, 0x06, 0x41, 0xfb, 0xb3, 0x86, 0xcf, 0x95, 0x36, 0x58, 0xab, 0xd3, 0xbd, 0x86, 0x3f, 0x97, 0x36, 0x78, 0xea, 0x54, 0xe8, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0x89, 0x58, 0xbf, 0x41, 0xdb, 0xd6, 0xe3, 0x07, 0xb1, 0x85, 0x80, 0xb5, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0x32, 0xb7, 0xf9, 0xe0, 0xe1, 0x77, 0x99, 0x6b, 0xf8, 0x73, 0x69, 0x80, 0x07, 0xad, 0x2c, 0x4c, 0x8e, 0xdc, 0xf0, 0xef, 0xfc, 0x1a, 0xbc, 0xa1, 0x2e, 0xb2, 0x5a, 0xc3, 0xe7, 0x4a, 0x6b, 0xc8, 0x80, 0x6f, 0x78, 0xf9, 0xee, 0x20, 0x4a, 0xff, 0xdc, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0xa3, 0xc7, 0x70, 0x83, 0xd0, 0x2f, 0xd9, 0x20, 0xa4, 0x4c, 0xd6, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0xbd, 0xe9, 0xd7, 0xf0, 0xef, 0xfc, 0x06, 0xaf, 0x9d, 0xe0, 0x6d, 0x0d, 0xff, 0xce, 0xaf, 0xc1, 0xb3, 0xc3, 0x32, 0xab, 0x6a, 0x05, 0x78, 0xcc, 0xd8, 0xca, 0xca, 0xe8, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0x22, 0xd6, 0x6f, 0x70, 0x6c, 0x75, 0x5d, 0xc3, 0xdb, 0x3a, 0x1b, 0xc4, 0x76, 0xbc, 0x5b, 0x1d, 0x4e, 0xb1, 0x35, 0x88, 0xee, 0x85, 0xb7, 0x0d, 0x4a, 0x16, 0xf6, 0x59, 0x66, 0x0d, 0x22, 0x8f, 0xc9, 0x6d, 0xc3, 0x8f, 0x30, 0x03, 0x5f, 0x87, 0x1f, 0x44, 0xba, 0xa3, 0xdb, 0x6a, 0x10, 0x6b, 0xca, 0x6e, 0x1b, 0x7e, 0x84, 0xd9, 0x50, 0xf3, 0x03, 0x0f, 0xe4, 0xf0, 0x5c, 0x0d, 0xe2, 0xc7, 0x34, 0xed, 0xf0, 0x98, 0xcc, 0x6a, 0x10, 0x27, 0xcc, 0x6e, 0x1b, 0x7e, 0x84, 0x19, 0xf8, 0x3a, 0xfc, 0x20, 0xba, 0x21, 0xdd, 0x0e, 0xa7, 0x58, 0x6b, 0x10, 0x77, 0xcd, 0x6e, 0x1b, 0x7e, 0x84, 0x19, 0xf8, 0x3a, 0xfc, 0x20, 0x96, 0x24, 0xdd, 0x0e, 0xa7, 0xd8, 0x1a, 0xc4, 0xce, 0xb3, 0xdb, 0x86, 0x1f, 0x61, 0x06, 0xbe, 0x0e, 0x3f, 0x88, 0xde, 0x49, 0xb7, 0xd5, 0x20, 0x52, 0xa2, 0xdd, 0x36, 0xfc, 0x08, 0x33, 0xf0, 0x75, 0xf8, 0x41, 0xbc, 0x54, 0xba, 0x1d, 0x4e, 0xb1, 0x35, 0x88, 0x52, 0x69, 0xb7, 0x0d, 0x3f, 0xc2, 0x6c, 0xa8, 0xf9, 0x81, 0x57, 0x3a, 0xb5, 0xae, 0x06, 0xf1, 0x3c, 0xed, 0xb6, 0xe1, 0x47, 0x98, 0x81, 0xaf, 0xc3, 0x0f, 0xa2, 0xdd, 0xd2, 0xed, 0x70, 0x8a, 0x75, 0x38, 0xc5, 0x56, 0x00, 0x6f, 0xb6, 0xb7, 0xb1, 0x30, 0xb6, 0x96, 0xb1, 0x37, 0x37, 0x3a, 0xb9, 0xb0, 0x31, 0xba, 0x79, 0x83, 0x92, 0x85, 0x7d, 0x96, 0x59, 0x83, 0xc8, 0x63, 0x72, 0xdb, 0xf0, 0x23, 0xcc, 0xc0, 0xd7, 0xe1, 0x07, 0x11, 0x89, 0xe9, 0xb6, 0x1a, 0xc4, 0x9a, 0xb2, 0xdb, 0xe1, 0xc1, 0x9b, 0xd5, 0x20, 0x7e, 0x4c, 0xd3, 0x36, 0xfc, 0x08, 0xb3, 0xa1, 0xe6, 0x07, 0x97, 0xd3, 0x6a, 0x10, 0x27, 0xcc, 0x6e, 0x1b, 0x7e, 0x84, 0x19, 0xf8, 0x3a, 0xfc, 0x20, 0xce, 0x34, 0xdd, 0x0e, 0xa7, 0x58, 0x6b, 0x10, 0x77, 0xcd, 0x6e, 0x1b, 0x7e, 0x84, 0x19, 0xf8, 0x3a, 0xfc, 0x20, 0xa6, 0x37, 0xdd, 0x0e, 0xa7, 0xd8, 0x1a, 0xc4, 0xce, 0xb3, 0xdb, 0x86, 0x1f, 0x61, 0x06, 0xbe, 0x0e, 0x3f, 0x88, 0x9c, 0x4e, 0xb7, 0xd5, 0x20, 0x52, 0xa2, 0xdd, 0x36, 0xfc, 0x08, 0x33, 0xf0, 0x75, 0xf8, 0x41, 0x9c, 0x7a, 0xba, 0x1d, 0x4e, 0xb1, 0x35, 0x88, 0x52, 0x69, 0xb7, 0xc3, 0x83, 0x37, 0xab, 0x41, 0x3c, 0x4f, 0xbb, 0x6d, 0xf8, 0x11, 0x66, 0xe0, 0xeb, 0xf0, 0x83, 0xd8, 0x01, 0x75, 0x3b, 0x9c, 0x62, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0xb6, 0x00, 0xbe, 0x61, 0x7a, 0x69, 0x6d, 0x75, 0x74, 0x68, 0x2d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0xf3, 0x06, 0x25, 0x0b, 0xfb, 0x2c, 0xb3, 0x00, 0x9e, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x2d, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0xe4, 0x86, 0x1f, 0x61, 0x06, 0xbe, 0x0e, 0x3f, 0x88, 0xed, 0x50, 0xb7, 0x15, 0xc0, 0xbb, 0x6c, 0x6e, 0x2c, 0x0c, 0xae, 0xac, 0x25, 0x6c, 0x6c, 0xac, 0x0c, 0x8e, 0xae, 0x8c, 0xdc, 0xf0, 0x23, 0xcc, 0xc0, 0xd7, 0xe1, 0x07, 0xb1, 0x40, 0xea, 0xb6, 0x02, 0xf0, 0x33, 0x86, 0x16, 0xe6, 0x76, 0x56, 0x46, 0xd6, 0x62, 0xf7, 0x46, 0x97, 0xe6, 0x76, 0xd6, 0x02, 0x27, 0xf7, 0x86, 0x97, 0x6f, 0xf8, 0x11, 0x66, 0xe0, 0xeb, 0xf0, 0x83, 0xf8, 0x31, 0x75, 0x5b, 0x01, 0xbc, 0xcb, 0xe6, 0xc6, 0xc2, 0xe0, 0xca, 0x5a, 0xc6, 0xc2, 0xdc, 0xc6, 0xca, 0xd8, 0xca, 0xc8, 0x0d, 0x3f, 0xc2, 0x0c, 0x7c, 0x1d, 0x7e, 0x10, 0x75, 0xa8, 0x6e, 0x87, 0x53, 0x6c, 0x01, 0xfc, 0xd8, 0xde, 0xe6, 0xe8, 0x5a, 0xe6, 0xe0, 0xde, 0xdc, 0xe6, 0xde, 0xe4, 0x0d, 0x3f, 0xc2, 0x0c, 0x7c, 0x1d, 0x7e, 0x10, 0xab, 0xaa, 0x6e, 0xab, 0xc1, 0xcb, 0x3a, 0xd4, 0x36, 0xfc, 0x08, 0x33, 0xf0, 0x75, 0xf8, 0x41, 0x84, 0xb3, 0xba, 0xcd, 0x02, 0x78, 0x8d, 0xa1, 0x85, 0xb9, 0x9d, 0x95, 0x91, 0xb5, 0x90, 0xb9, 0xcd, 0x1b, 0x7e, 0x84, 0x19, 0xf8, 0x3a, 0xfc, 0x20, 0x2e, 0x5e, 0xdd, 0x66, 0x01, 0xf8, 0x1b, 0x43, 0x0b, 0x73, 0x3b, 0x2b, 0x23, 0x6b, 0x69, 0x0b, 0x73, 0x0b, 0x3b, 0x2b, 0x6b, 0x2b, 0x73, 0xa3, 0x6b, 0x81, 0x93, 0x7b, 0xc3, 0xcb, 0x37, 0xfc, 0x08, 0x33, 0xf0, 0x75, 0xf8, 0x41, 0x24, 0xc5, 0xba, 0x1d, 0x4e, 0xb1, 0xd6, 0x20, 0x9a, 0xfe, 0xdd, 0x36, 0xfc, 0x08, 0x33, 0xf0, 0x75, 0xf8, 0x41, 0xfc, 0xcd, 0xba, 0xad, 0x00, 0x7e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x2d, 0x6b, 0x65, 0x79, 0xf3, 0x86, 0x1f, 0x61, 0x06, 0xbe, 0x0e, 0x3f, 0x88, 0xda, 0x5a, 0xb7, 0xc3, 0x29, 0xb6, 0x00, 0xfe, 0x62, 0x72, 0x6f, 0x6b, 0x65, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x69, 0x74, 0xf9, 0x86, 0x1f, 0x61, 0x06, 0xbe, 0x0e, 0x3f, 0x88, 0xf3, 0x5b, 0xb7, 0xc3, 0x29, 0xb6, 0x06, 0x6f, 0x6e, 0x51, 0xdb, 0xf0, 0x23, 0xcc, 0xc0, 0xd7, 0xe1, 0x07, 0x51, 0xa1, 0xeb, 0xb6, 0x02, 0xf0, 0x32, 0x86, 0x16, 0xe6, 0x76, 0x56, 0x46, 0xd6, 0x32, 0x07, 0x17, 0x76, 0xe7, 0xd6, 0x02, 0x27, 0xf7, 0x86, 0x97, 0x6f, 0xf8, 0x11, 0x66, 0xe0, 0xeb, 0xf0, 0x83, 0x58, 0xe2, 0x75, 0x5b, 0x01, 0xf8, 0x1a, 0x43, 0x0b, 0x73, 0x3b, 0x2b, 0x23, 0x6b, 0xa1, 0x93, 0x0b, 0x73, 0x9b, 0x33, 0x2b, 0x93, 0x6b, 0x81, 0x93, 0x7b, 0xc3, 0xcb, 0x37, 0xfc, 0x08, 0x33, 0xf0, 0x75, 0xf8, 0x41, 0xf4, 0xf9, 0xba, 0x1d, 0x4e, 0xb1, 0x3a, 0x9c, 0x62, 0x87, 0x53, 0xac, 0xc3, 0x29, 0xb6, 0xe1, 0x44, 0xd8, 0x20, 0x5e, 0x9a, 0xdc, 0xd6, 0x70, 0x8e, 0x2c, 0x08, 0x36, 0x28, 0xa0, 0x05, 0x17, 0x07, 0xc1, 0xc2, 0x6e, 0xc8, 0x63, 0x2d, 0x4e, 0x00, 0x7f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x2d, 0x75, 0x6e, 0x6d, 0x69, 0x6e, 0x65, 0x64, 0x2d, 0x65, 0x76, 0x65, 0x6e, 0xf4, 0x21, 0x86, 0xc3, 0x6e, 0x30, 0xea, 0x25, 0x17, 0x7e, 0xe3, 0xf9, 0xb0, 0x0b, 0xb7, 0xa1, 0x09, 0xd7, 0xf0, 0x0b, 0xbf, 0x21, 0xb9, 0x74, 0xf0, 0xcc, 0x20, 0xa4, 0x83, 0x92, 0xa1, 0x69, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x85, 0xdf, 0x90, 0x5c, 0x1a, 0x7e, 0xe1, 0x17, 0x7e, 0xe3, 0xf1, 0xc1, 0x33, 0x83, 0x90, 0x0e, 0x02, 0x13, 0xfb, 0x60, 0xd5, 0x49, 0xda, 0xc1, 0x69, 0x05, 0x77, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x89, 0x3d, 0x38, 0xfc, 0xc6, 0xf3, 0x71, 0x83, 0x58, 0xfd, 0x44, 0x3b, 0x78, 0x2e, 0xc1, 0xe3, 0x71, 0x68, 0x43, 0x0c, 0x37, 0x08, 0x29, 0xf0, 0x0d, 0x9e, 0xd9, 0xa0, 0x76, 0x10, 0x02, 0xe0, 0xc3, 0x2e, 0xdc, 0x86, 0x26, 0x5c, 0xc3, 0x6f, 0x10, 0xb7, 0x4a, 0x6f, 0x07, 0x07, 0x8f, 0xda, 0x05, 0xc1, 0x82, 0x60, 0x83, 0xe8, 0x5d, 0x7a, 0x1b, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x50, 0x62, 0x0f, 0x0e, 0xbf, 0xf1, 0x7c, 0x3c, 0x88, 0x50, 0x32, 0xb7, 0xe3, 0xd0, 0x86, 0x18, 0x6e, 0x1c, 0xda, 0xe0, 0x4d, 0x1d, 0x6a, 0xc7, 0xa1, 0x61, 0x17, 0x6e, 0x43, 0x13, 0xae, 0xe1, 0x37, 0x88, 0x5b, 0xa5, 0xb7, 0x83, 0xd3, 0x0a, 0xee, 0x82, 0x60, 0x41, 0xb0, 0x41, 0xf4, 0x2e, 0xbd, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x28, 0xb1, 0x07, 0x87, 0xdf, 0x78, 0x3e, 0x1e, 0x44, 0x15, 0x99, 0xdb, 0x71, 0x68, 0x43, 0x0c, 0x37, 0x08, 0x29, 0xf0, 0x0d, 0x5e, 0xdb, 0xa2, 0x76, 0x10, 0x02, 0xe0, 0xc3, 0x2e, 0xdc, 0x86, 0x26, 0x5c, 0xc3, 0x6f, 0x10, 0xb7, 0x4a, 0x6f, 0x87, 0x2e, 0x26, 0x0b, 0x82, 0x0d, 0x22, 0x92, 0xea, 0x6d, 0x43, 0x0c, 0x37, 0x08, 0x29, 0xf0, 0x0d, 0x9e, 0xf0, 0xa7, 0x76, 0x10, 0x6e, 0xee, 0xc3, 0x2e, 0xdc, 0x86, 0x26, 0x5c, 0xc3, 0x6f, 0x10, 0xb7, 0x4a, 0x6f, 0x07, 0xa7, 0x5d, 0xda, 0x05, 0xc1, 0x06, 0x31, 0x11, 0xf5, 0xb6, 0x21, 0x86, 0x1b, 0x87, 0xc6, 0x0d, 0x1e, 0xf2, 0xa7, 0xd6, 0xb0, 0x0b, 0xb7, 0xa1, 0x09, 0xd7, 0xf0, 0x1b, 0xc4, 0xad, 0xd2, 0xdb, 0xc1, 0xf9, 0x89, 0x76, 0x41, 0xb0, 0x41, 0x44, 0x52, 0xbd, 0x6d, 0x88, 0xe1, 0x06, 0x21, 0x05, 0xbe, 0xc1, 0x53, 0xe9, 0xb8, 0x0e, 0xc2, 0xcd, 0x7d, 0xd8, 0x85, 0xdb, 0xd0, 0x84, 0x6b, 0xf8, 0x0d, 0xe2, 0x56, 0xe9, 0xed, 0xe0, 0xf0, 0x4e, 0xbb, 0x20, 0xd8, 0x20, 0x22, 0xa9, 0xde, 0x36, 0xc4, 0x70, 0x83, 0x90, 0x02, 0xdf, 0xe0, 0xa9, 0x74, 0x5c, 0x07, 0x2b, 0x44, 0x82, 0x86, 0x5d, 0xb8, 0x0d, 0x4d, 0xb8, 0x86, 0xdf, 0x20, 0x6e, 0x95, 0xde, 0x0e, 0x0e, 0xbf, 0xb6, 0x0b, 0x82, 0x0d, 0x62, 0x22, 0xea, 0x6d, 0x10, 0x2c, 0x08, 0x16, 0x7e, 0xe1, 0x37, 0xac, 0xd0, 0x1e, 0x44, 0x06, 0xd3, 0xdb, 0xc1, 0xb8, 0x83, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x68, 0x3a, 0x34, 0xfc, 0xc6, 0xf3, 0x71, 0x83, 0x38, 0x0f, 0x73, 0xdb, 0x20, 0xce, 0xc3, 0xdc, 0x0e, 0xa2, 0x8a, 0xcc, 0xed, 0x38, 0xb4, 0x21, 0x86, 0x1b, 0x52, 0x07, 0x1b, 0xbc, 0xa1, 0x47, 0x6d, 0x83, 0x30, 0x90, 0x1f, 0x04, 0x1b, 0xc4, 0xe0, 0x84, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0x34, 0x0f, 0x1e, 0x00, 0xfc, 0x70, 0x1c, 0x1a, 0x76, 0xe1, 0x36, 0x34, 0xe1, 0x1a, 0x7e, 0x83, 0xb8, 0x55, 0x7a, 0x3b, 0x18, 0x48, 0x50, 0x0b, 0x82, 0x0d, 0x62, 0x22, 0xea, 0x6d, 0x10, 0x2c, 0x08, 0x36, 0x88, 0xdc, 0xb0, 0xb7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0xa6, 0x43, 0x07, 0x71, 0x21, 0xf5, 0x76, 0x1c, 0xda, 0x10, 0xc3, 0x0d, 0xa9, 0x83, 0x0d, 0x5e, 0x39, 0xa5, 0x76, 0x1c, 0x1a, 0x76, 0xe1, 0x36, 0x34, 0xe1, 0x1a, 0x7e, 0x83, 0xb8, 0x55, 0x7a, 0x1b, 0x24, 0x03, 0xf7, 0xd5, 0xf1, 0x78, 0x41, 0xb0, 0x41, 0x7c, 0x2e, 0xbd, 0x6d, 0x88, 0xe1, 0x06, 0x21, 0x05, 0xbe, 0xc1, 0x1b, 0x30, 0xd5, 0x0e, 0x42, 0x00, 0x7c, 0xd8, 0x85, 0xdb, 0xd0, 0x84, 0x6b, 0xf8, 0x0d, 0xe2, 0x56, 0xe9, 0xed, 0xe0, 0xdc, 0x47, 0xbb, 0x20, 0xd8, 0x20, 0x3e, 0x97, 0xde, 0x36, 0xc4, 0x70, 0x83, 0x90, 0x02, 0xdf, 0xe0, 0x95, 0xa8, 0x6a, 0x07, 0x21, 0x00, 0x3e, 0xec, 0xc2, 0x6d, 0x68, 0xc2, 0x35, 0xfc, 0x06, 0x71, 0xab, 0xf4, 0x76, 0x30, 0x42, 0xa2, 0x16, 0x04, 0x1b, 0xc4, 0xe7, 0xd2, 0xdb, 0x86, 0x18, 0x6e, 0x10, 0x52, 0xe0, 0x1b, 0x3c, 0x13, 0x57, 0xed, 0x20, 0x04, 0xc0, 0x87, 0x5d, 0xb8, 0x0d, 0x4d, 0xb8, 0x86, 0xdf, 0x20, 0x6e, 0x95, 0xde, 0x0e, 0xc6, 0x32, 0xd4, 0x82, 0x60, 0x83, 0xf8, 0x5c, 0x7a, 0xdb, 0x10, 0xc3, 0x0d, 0x42, 0x0a, 0x7c, 0x83, 0x37, 0x37, 0xab, 0x1d, 0x84, 0x00, 0xf8, 0x20, 0x58, 0xd8, 0x85, 0x5d, 0xb8, 0x0d, 0x4d, 0xb8, 0xc6, 0x00, 0x04, 0x00, 0xbf, 0x22, 0x5b, 0x7b, 0xc3, 0xa0, 0x1d, 0x7f, 0xd5, 0x1e, 0x15, 0xb9, 0xfc, 0x4b, 0xca, 0x20, 0x94, 0x27, 0x85, 0xfe, 0x68, 0x26, 0x9a, 0xa0, 0xc8, 0xb2, 0x98, 0xe2, 0x3c, 0x00, 0x5f, 0x1c, 0xd6, 0x37, 0xd7, 0x10, 0xc3, 0xc5, 0x00, 0x5e, 0xea, 0xdc, 0xd2, 0xda, 0xe0, 0xd8, 0xca, 0xda, 0xca, 0xdc, 0xe8, 0xca, 0xc8, 0x5a, 0xca, 0xec, 0xca, 0xdc, 0xe8, 0x43, 0x13, 0xae, 0x43, 0x0c, 0x87, 0xdd, 0x60, 0xd4, 0x4b, 0x6e, 0x30, 0xf0, 0x43, 0x06, 0xd9, 0x1a, 0xb4, 0x05, 0xb2, 0xb2, 0x21, 0x86, 0x83, 0x60, 0xe1, 0x37, 0x88, 0xe8, 0xb0, 0xb7, 0xe1, 0x37, 0x88, 0x51, 0xc6, 0xb5, 0x83, 0x87, 0xe2, 0x37, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x7e, 0x83, 0x88, 0x0e, 0x7b, 0x1b, 0x7e, 0x83, 0x18, 0x65, 0x5c, 0x3b, 0x78, 0xbb, 0x7e, 0xc3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x8b, 0x1b, 0x26, 0x6e, 0x0d, 0x75, 0x7c, 0xc3, 0xcb, 0x77, 0x73, 0x10, 0xc1, 0x76, 0x6f, 0x1b, 0xea, 0xc8, 0x1a, 0x66, 0x68, 0x0d, 0x13, 0xb7, 0x61, 0x3a, 0x37, 0xcc, 0xd0, 0x1a, 0xe6, 0x7e, 0xd9, 0x20, 0x36, 0x9a, 0x97, 0xda, 0x30, 0xf7, 0xcb, 0x06, 0xf1, 0x9b, 0x97, 0xd6, 0xc1, 0xc3, 0x2e, 0x30, 0x36, 0x9c, 0x08, 0x1b, 0xc4, 0xb0, 0xdf, 0xdb, 0x06, 0x8b, 0xd9, 0xa0, 0x0e, 0x62, 0x63, 0x2f, 0x6d, 0xc3, 0x89, 0xb0, 0x41, 0x04, 0xf9, 0xbd, 0x6d, 0xb0, 0x98, 0x0d, 0x6a, 0x99, 0x65, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xfa, 0x65, 0x83, 0xa5, 0x6b, 0xa8, 0x1b, 0x2c, 0x94, 0x7d, 0xda, 0xa0, 0x99, 0xce, 0x81, 0x35, 0x28, 0x3a, 0x8d, 0x37, 0x68, 0x01, 0x74, 0x60, 0x0d, 0x3f, 0xc2, 0x0c, 0x3c, 0x5d, 0x18, 0x7c, 0x1d, 0x7e, 0x48, 0x1d, 0x1c, 0xb4, 0x55, 0x3a, 0x70, 0xb0, 0x92, 0x4e, 0xff, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x83, 0xe8, 0x0f, 0x7c, 0x3b, 0x08, 0x01, 0xf0, 0xe3, 0xd0, 0x71, 0xe8, 0x60, 0xe0, 0x87, 0x0c, 0xb2, 0x35, 0x68, 0x0b, 0x64, 0x65, 0x43, 0x0c, 0x07, 0xc1, 0x06, 0x11, 0x9a, 0xf7, 0x36, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x20, 0xb2, 0xf6, 0xde, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x5f, 0xdc, 0x50, 0xc7, 0x37, 0xbc, 0x7c, 0x77, 0x10, 0xe7, 0x47, 0x6f, 0x07, 0x21, 0x00, 0x7e, 0x1c, 0x3a, 0x0e, 0x1d, 0x44, 0x82, 0xd2, 0xdb, 0xf1, 0x78, 0x05, 0xc1, 0x0a, 0xbf, 0x41, 0x0c, 0x79, 0xec, 0x1c, 0xdf, 0x86, 0x5f, 0x90, 0x0c, 0x66, 0x87, 0x54, 0xcd, 0xf1, 0x6d, 0x71, 0xd8, 0x85, 0xdb, 0x60, 0x39, 0xea, 0xd4, 0xa1, 0x91, 0xe0, 0x06, 0x41, 0xe9, 0x3d, 0xec, 0xc2, 0x6d, 0xf0, 0xa6, 0x0e, 0xb5, 0x43, 0x23, 0xc1, 0x05, 0xd1, 0x42, 0xd7, 0x10, 0xc3, 0x0d, 0x31, 0xdc, 0x10, 0xc3, 0x0d, 0x31, 0x5c, 0x43, 0x0c, 0x07, 0xc1, 0xc2, 0x6f, 0xf0, 0xd2, 0x39, 0x9b, 0x83, 0x96, 0x8d, 0x44, 0x0e, 0x2d, 0xc0, 0x0e, 0x31, 0x1c, 0x76, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x0d, 0x5e, 0x3a, 0x67, 0x73, 0xd0, 0x66, 0x9c, 0xff, 0xa1, 0x05, 0xd8, 0xb0, 0x1b, 0xc4, 0xe0, 0xb0, 0xcc, 0x86, 0x18, 0x1e, 0x44, 0xaf, 0xb0, 0xcc, 0x06, 0x23, 0xff, 0xe1, 0x10, 0xc3, 0x43, 0x34, 0x87, 0x5d, 0xb8, 0x0d, 0x9e, 0xd9, 0xa0, 0x76, 0x68, 0x24, 0xb8, 0x20, 0xda, 0x60, 0x25, 0xa7, 0xc8, 0x21, 0x9a, 0xc3, 0x2e, 0xdc, 0x06, 0x6f, 0x6e, 0x56, 0x3b, 0x34, 0x12, 0x5c, 0x10, 0x2d, 0xd8, 0x1d, 0x04, 0xa5, 0xf7, 0x21, 0x9a, 0xc3, 0x2e, 0xdc, 0x06, 0x6f, 0xc0, 0x54, 0x3b, 0x34, 0x12, 0x5c, 0x10, 0x2d, 0x88, 0x0e, 0x82, 0xd2, 0xfb, 0x10, 0xcd, 0x61, 0x17, 0x6e, 0x83, 0x57, 0xa2, 0xaa, 0x1d, 0x1a, 0x09, 0x2e, 0x88, 0x16, 0xcc, 0x0e, 0x82, 0xd2, 0xfb, 0x10, 0xcd, 0x61, 0x17, 0x76, 0x83, 0xd8, 0x33, 0x80, 0xd9, 0x10, 0xc3, 0x61, 0x17, 0x6e, 0x83, 0x57, 0x4e, 0xa9, 0x1d, 0x1a, 0x09, 0x6e, 0x88, 0xe1, 0xb0, 0x0b, 0xb7, 0xc1, 0x13, 0xfe, 0xd4, 0x0e, 0x8d, 0x04, 0x37, 0xc4, 0x70, 0xb8, 0x0d, 0x9e, 0x4a, 0xc7, 0x75, 0x68, 0x24, 0xb8, 0xb0, 0x0b, 0x3d, 0x34, 0xd4, 0x59, 0xd8, 0x0d, 0x62, 0xcf, 0x00, 0x66, 0x41, 0xb4, 0xa0, 0xf6, 0x60, 0x64, 0xf6, 0x0e, 0xa2, 0x05, 0xd3, 0x43, 0x27, 0xb5, 0x43, 0x34, 0x87, 0xdd, 0x20, 0x1a, 0x32, 0xdf, 0x16, 0x44, 0x0b, 0xfe, 0x6e, 0x10, 0x94, 0xde, 0xc3, 0x6e, 0xe8, 0xa4, 0xb6, 0x21, 0x86, 0x13, 0xdc, 0x97, 0x87, 0x68, 0x0e, 0xbb, 0x41, 0x24, 0x5e, 0xbe, 0x2d, 0x88, 0x16, 0xdc, 0x3d, 0x08, 0x4a, 0xef, 0x43, 0x34, 0x07, 0xd9, 0x1a, 0xda, 0xaf, 0x1f, 0xc4, 0x15, 0xe6, 0xdb, 0x20, 0x5a, 0x20, 0xbe, 0x07, 0x41, 0xe9, 0x7d, 0x88, 0xe6, 0xe1, 0x14, 0x1b, 0x64, 0x6b, 0x68, 0xbf, 0x3e, 0xec, 0xc2, 0x6d, 0xf0, 0x4c, 0x5c, 0xb5, 0x43, 0x23, 0xc1, 0x0d, 0x31, 0x1c, 0x6e, 0x83, 0xd7, 0xb6, 0xa8, 0x1d, 0x1a, 0x09, 0x0e, 0xbb, 0xc1, 0xfa, 0x97, 0xfd, 0x85, 0xdd, 0x20, 0x12, 0x41, 0xdf, 0x16, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0xc2, 0x6f, 0x10, 0xcd, 0x53, 0x6e, 0x07, 0x2d, 0x82, 0x9c, 0x0c, 0x92, 0xc1, 0xa9, 0x83, 0x96, 0x54, 0x49, 0x0e, 0x2d, 0xc0, 0x06, 0xd1, 0x82, 0xfd, 0x71, 0xe8, 0x90, 0xb5, 0x1b, 0x64, 0x6b, 0x68, 0xbf, 0x7e, 0x10, 0xd3, 0x9f, 0x6f, 0x83, 0x68, 0xc1, 0xfc, 0x20, 0x28, 0xbd, 0x0f, 0xd1, 0x3c, 0x9c, 0x62, 0xc7, 0xe3, 0x15, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x17, 0x04, 0x8b, 0x73, 0xb0, 0x10, 0xed, 0x66, 0x71, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x85, 0x5f, 0xf8, 0x0d, 0xd6, 0xa9, 0x34, 0x1c, 0x3c, 0x1b, 0x28, 0xed, 0xa0, 0xf5, 0x7d, 0xf7, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x5f, 0xf8, 0x0d, 0xa2, 0xe9, 0xf4, 0xed, 0xa0, 0xb5, 0x8f, 0xf7, 0xe1, 0x37, 0x88, 0xa6, 0xd3, 0xb7, 0x83, 0x96, 0x43, 0xde, 0x0f, 0x1d, 0xc3, 0x8e, 0x43, 0x83, 0x60, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x85, 0xdf, 0x20, 0x9a, 0x4e, 0xdf, 0x0e, 0x9a, 0x8c, 0x79, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xc8, 0xda, 0x0d, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0xfc, 0x06, 0xd1, 0x74, 0xfa, 0x36, 0x48, 0x06, 0x94, 0xbf, 0x5d, 0x07, 0x41, 0xce, 0x7f, 0x68, 0x0a, 0x74, 0x1c, 0x1a, 0x04, 0x1b, 0x04, 0x59, 0xfc, 0xe2, 0x20, 0x58, 0xf8, 0x0d, 0xd9, 0x8a, 0xe1, 0x37, 0x88, 0xa6, 0xd3, 0xb7, 0x83, 0xb6, 0x2a, 0xe1, 0x0f, 0x56, 0xe2, 0x8b, 0x1c, 0x8f, 0x8f, 0xc7, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0xfc, 0xc6, 0xe3, 0xe1, 0x17, 0x7e, 0xe1, 0x37, 0x08, 0x11, 0xff, 0x83, 0x67, 0x03, 0xa5, 0x1d, 0x9c, 0x02, 0x7c, 0x0f, 0x96, 0xe4, 0xd0, 0x0c, 0x82, 0x85, 0xdf, 0x78, 0x3e, 0xfc, 0x06, 0x11, 0x04, 0xfb, 0x76, 0xd0, 0xec, 0xda, 0xfb, 0x20, 0xd8, 0x20, 0xc8, 0xe2, 0x17, 0x07, 0xc1, 0xc2, 0x6f, 0xc8, 0x56, 0x0c, 0xbf, 0x41, 0x04, 0xc1, 0xbe, 0x1d, 0x24, 0x90, 0x57, 0x1c, 0xac, 0xc4, 0x17, 0x39, 0x1e, 0x0f, 0xb2, 0x35, 0xe4, 0xb1, 0x17, 0x07, 0xc1, 0xc2, 0x2f, 0xfc, 0x06, 0xc3, 0x18, 0xf6, 0xe0, 0xd9, 0x40, 0x69, 0x07, 0x0f, 0xc5, 0x6f, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0xfc, 0x06, 0xb1, 0x4a, 0xfb, 0x76, 0xf0, 0x76, 0xfd, 0x86, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x17, 0x0f, 0x9e, 0x82, 0xe2, 0x70, 0xd8, 0x2b, 0x3c, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0x83, 0x60, 0xe1, 0x37, 0x88, 0x20, 0xd8, 0xb7, 0x83, 0xa8, 0x7f, 0x61, 0x1b, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0xd8, 0x2b, 0x1c, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0x82, 0x60, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x0d, 0x4a, 0x86, 0xa6, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x3f, 0x88, 0xff, 0x2c, 0xb7, 0x85, 0xdf, 0x78, 0x3e, 0x06, 0xf8, 0x90, 0xb9, 0xcd, 0x11, 0xbd, 0xb5, 0x85, 0xa5, 0xb9, 0xcd, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0x83, 0x48, 0x81, 0x7d, 0x3b, 0x38, 0xee, 0xf5, 0x1e, 0x87, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x94, 0x0c, 0x4d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x7e, 0x10, 0x49, 0x57, 0x6e, 0x0b, 0xbf, 0xf1, 0x7c, 0x0c, 0xf0, 0x39, 0x2b, 0xa3, 0x9b, 0x82, 0x0b, 0xbb, 0x73, 0x2b, 0x23, 0x0f, 0x56, 0x20, 0x03, 0x1d, 0x87, 0x06, 0xc1, 0x06, 0x41, 0x16, 0xbf, 0x38, 0x08, 0x16, 0x7e, 0x43, 0xb6, 0x62, 0xf8, 0x0d, 0x22, 0x08, 0xf6, 0xed, 0xa0, 0x0d, 0x86, 0xf7, 0x83, 0x95, 0xf8, 0x22, 0xc7, 0xe3, 0x41, 0xb0, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x25, 0x43, 0xd3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x1f, 0xc4, 0x81, 0x94, 0xdb, 0x06, 0x11, 0x38, 0xfc, 0x76, 0xb0, 0x02, 0x19, 0xe8, 0x38, 0x74, 0x10, 0xa5, 0xc0, 0x6f, 0xc7, 0xa1, 0x83, 0xb5, 0x7c, 0x02, 0xc7, 0xe3, 0x41, 0xb0, 0xc1, 0xb9, 0xcd, 0x79, 0x71, 0x10, 0x2c, 0xfc, 0x06, 0xd1, 0x3c, 0xe5, 0x76, 0x10, 0x05, 0xd5, 0x67, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0x62, 0xd1, 0x06, 0x6b, 0x07, 0x67, 0x86, 0xdf, 0x78, 0x3e, 0xec, 0xc2, 0x6e, 0xf0, 0x06, 0x20, 0xb7, 0x85, 0x5d, 0xb8, 0x0d, 0xc6, 0x4f, 0xd7, 0x41, 0x42, 0xd9, 0xc9, 0xc2, 0x2e, 0xdc, 0x06, 0xc3, 0x8b, 0xe2, 0x20, 0xa1, 0xec, 0xe4, 0x90, 0xce, 0x3d, 0x1c, 0xed, 0x87, 0xa3, 0x7d, 0x41, 0xb0, 0x41, 0xec, 0x17, 0xbf, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x38, 0x10, 0xf1, 0x1f, 0xc4, 0x5a, 0x4c, 0xcd, 0x71, 0x68, 0x10, 0x6c, 0x10, 0xfb, 0xc5, 0x6f, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x0e, 0x44, 0xfc, 0x07, 0x91, 0x3e, 0xe4, 0x76, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x07, 0xc1, 0xe2, 0x6c, 0x10, 0x0b, 0x70, 0x6e, 0x07, 0xc5, 0xb4, 0xe0, 0xe2, 0x1a, 0x3a, 0xa9, 0x6d, 0x68, 0xc2, 0xb5, 0xc1, 0x33, 0x3f, 0x2a, 0x0e, 0x5e, 0xc1, 0x72, 0xb2, 0xb0, 0x4b, 0x30, 0xae, 0x6b, 0x88, 0xe1, 0x12, 0xb4, 0x7f, 0x5d, 0x10, 0x6c, 0xf0, 0xf2, 0x7d, 0x89, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x83, 0x68, 0x65, 0x83, 0x61, 0xb5, 0x32, 0x41, 0xfb, 0xeb, 0xe3, 0xd0, 0x12, 0xf4, 0x7f, 0x5d, 0x09, 0xc2, 0x3a, 0xc1, 0xf9, 0x3a, 0xec, 0x06, 0x91, 0x69, 0xd9, 0xb3, 0x86, 0x18, 0x4e, 0x90, 0x7e, 0x3d, 0xc4, 0xf0, 0x10, 0xc3, 0x61, 0x17, 0x04, 0x0b, 0x82, 0x0d, 0xa2, 0xf7, 0xf1, 0xed, 0x90, 0x86, 0x3b, 0x88, 0x47, 0xc8, 0xb7, 0x35, 0xc4, 0x70, 0x43, 0x33, 0x9e, 0x43, 0x0c, 0x0f, 0x31, 0x3c, 0x1e, 0x2f, 0x0e, 0x82, 0x0d, 0x22, 0x19, 0xca, 0x6d, 0x71, 0xd8, 0x0d, 0xe2, 0x3d, 0xca, 0x6d, 0x05, 0xc1, 0xc2, 0x6f, 0x10, 0x41, 0xb0, 0x6f, 0x07, 0x71, 0x58, 0xb9, 0x36, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xe2, 0x06, 0xa5, 0x88, 0xe4, 0x06, 0x6b, 0x50, 0x80, 0x36, 0x18, 0x0d, 0xbe, 0x1b, 0x0c, 0xa9, 0xdf, 0x0d, 0x4a, 0xa0, 0xc8, 0x0d, 0xd6, 0x68, 0x2b, 0x6c, 0x90, 0xe2, 0x4c, 0x32, 0x08, 0x56, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe1, 0x37, 0x88, 0x20, 0xd8, 0xb7, 0x83, 0xa5, 0x2a, 0x3f, 0x07, 0x8f, 0x7a, 0xcd, 0x3a, 0x68, 0xf5, 0xf2, 0xe9, 0x60, 0x35, 0x03, 0xd0, 0xf1, 0xed, 0x38, 0xb4, 0x18, 0xa0, 0x0b, 0xf7, 0x96, 0xe6, 0x46, 0x37, 0x87, 0x52, 0x97, 0xe6, 0x46, 0x37, 0x23, 0x93, 0x36, 0x88, 0x7e, 0x3f, 0xb6, 0x43, 0x0c, 0x87, 0xdd, 0x20, 0xee, 0xa9, 0xdc, 0x56, 0x10, 0x6c, 0x10, 0xb3, 0xd5, 0x6f, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x6e, 0xb0, 0x26, 0x2d, 0x61, 0x83, 0xd1, 0xe0, 0xbb, 0x41, 0x1b, 0x5c, 0x03, 0x1b, 0x2c, 0x40, 0x63, 0x38, 0x88, 0x28, 0xec, 0xb7, 0xe3, 0xdb, 0x71, 0x68, 0x31, 0x40, 0x57, 0x2e, 0xed, 0x0c, 0x8d, 0x6e, 0x0e, 0xa5, 0x2e, 0xcd, 0x8d, 0x6e, 0x46, 0x26, 0x1d, 0x44, 0x11, 0xf7, 0xdb, 0xb0, 0x1b, 0x44, 0xcc, 0x95, 0xdb, 0x0a, 0x82, 0x0d, 0x62, 0xb6, 0xfa, 0x6d, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0xc5, 0x0d, 0xda, 0xe0, 0x1a, 0xd8, 0x60, 0xfd, 0xe3, 0xcb, 0x06, 0x25, 0x50, 0xe4, 0x62, 0xf8, 0xb4, 0x41, 0x29, 0x22, 0xb9, 0xc1, 0x39, 0x72, 0x77, 0x83, 0x35, 0x42, 0x1d, 0x1b, 0x0c, 0xa9, 0xdf, 0x0d, 0xd6, 0x3f, 0xbe, 0x6c, 0x30, 0xf0, 0x8d, 0x0f, 0xe2, 0x1a, 0xfb, 0xed, 0xf8, 0x76, 0x1c, 0x5a, 0x0c, 0xa0, 0xe3, 0xac, 0x8c, 0x6e, 0x0a, 0x2e, 0xec, 0xce, 0xad, 0x8c, 0x0c, 0xa5, 0x2e, 0xcd, 0x8d, 0x6e, 0x46, 0x26, 0x1d, 0x44, 0x11, 0xf7, 0xdb, 0x20, 0x5b, 0x43, 0xfb, 0xf5, 0xe1, 0x36, 0x88, 0xff, 0x2c, 0xb7, 0x43, 0x34, 0x17, 0x04, 0x1b, 0xc4, 0x6c, 0xf5, 0xdb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x8b, 0x1b, 0x0c, 0x7c, 0xe3, 0x0d, 0x86, 0xd4, 0xef, 0x06, 0x6b, 0xb4, 0x15, 0x36, 0x88, 0xe7, 0x03, 0x93, 0x0d, 0xd6, 0xa0, 0x00, 0x6d, 0xb0, 0xaa, 0x7b, 0x61, 0x83, 0x73, 0xe4, 0xee, 0x06, 0xa3, 0xc1, 0x77, 0x83, 0x21, 0xf5, 0xbb, 0xc1, 0x1a, 0x6d, 0x85, 0x0d, 0x52, 0x9c, 0x49, 0x06, 0xc1, 0x0a, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0x91, 0xd9, 0x6f, 0x07, 0xeb, 0xd1, 0xb5, 0x0e, 0x5a, 0xbd, 0x7c, 0x3a, 0x58, 0xcd, 0x00, 0x74, 0x7c, 0x3b, 0x0e, 0x2d, 0x06, 0xd0, 0x42, 0xe6, 0x36, 0x47, 0xf4, 0xd6, 0x16, 0x96, 0xe6, 0x36, 0x87, 0x52, 0x97, 0xe6, 0x46, 0x27, 0x53, 0x63, 0x93, 0x0e, 0xa2, 0x88, 0xfb, 0xed, 0x78, 0x7c, 0x3c, 0x5e, 0x66, 0x01, 0x78, 0x2b, 0xb3, 0x2b, 0x73, 0xa3, 0x6b, 0x61, 0x7b, 0x3b, 0x6b, 0xa1, 0x7b, 0x6b, 0x81, 0x7b, 0x4b, 0x73, 0xa3, 0x6b, 0x21, 0x4b, 0x33, 0x33, 0x37, 0x58, 0x85, 0xe5, 0xb4, 0x86, 0xb7, 0x75, 0x36, 0x88, 0x01, 0x96, 0xb7, 0x36, 0x58, 0x85, 0xe5, 0xb4, 0x86, 0x07, 0x25, 0x37, 0x88, 0xdf, 0xbc, 0xb4, 0x0d, 0x6f, 0xeb, 0x6c, 0xf0, 0x18, 0x0b, 0x8c, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0x3f, 0x97, 0x36, 0x58, 0xb6, 0x2f, 0xb8, 0xe1, 0xdf, 0xf9, 0x0d, 0xa2, 0xbc, 0x31, 0x6d, 0x83, 0xc8, 0xf1, 0x57, 0xdb, 0x20, 0xee, 0xe7, 0xdf, 0xda, 0xf0, 0x17, 0xcd, 0x1a, 0x84, 0x7e, 0xc9, 0x06, 0x65, 0x13, 0xe6, 0x1a, 0x84, 0x7e, 0xc9, 0x06, 0xa5, 0x37, 0xfd, 0x06, 0x6d, 0x5b, 0x8f, 0x1f, 0xc4, 0x6b, 0xbd, 0x5b, 0x1b, 0x2c, 0xb3, 0x66, 0x9a, 0x35, 0x28, 0x26, 0x31, 0x37, 0x08, 0xc1, 0x87, 0x0d, 0xa2, 0xfa, 0x3b, 0xed, 0x60, 0x7d, 0xdc, 0xe0, 0x1a, 0xde, 0xb8, 0xdb, 0xf0, 0xf2, 0xdd, 0x41, 0xbc, 0x1f, 0xbd, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0xac, 0xe1, 0x6d, 0x9d, 0xc1, 0xd3, 0x0d, 0x62, 0xa2, 0x3d, 0xed, 0x60, 0x7d, 0xdc, 0xe0, 0x86, 0xb7, 0x75, 0x36, 0x88, 0xb1, 0x96, 0xb7, 0xd6, 0xa0, 0x20, 0x8d, 0x5d, 0x83, 0x12, 0x3a, 0x76, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0x01, 0xef, 0x0e, 0xed, 0x3d, 0xfc, 0x50, 0xb3, 0x86, 0x3f, 0x97, 0x36, 0x68, 0x91, 0xd0, 0xf2, 0xe0, 0x45, 0x04, 0x8f, 0x1d, 0x84, 0xe9, 0xd8, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0xc4, 0x29, 0x43, 0x5a, 0x6b, 0x78, 0x5b, 0x67, 0x70, 0xfa, 0x20, 0x82, 0xf5, 0xdf, 0xd6, 0xe0, 0xe8, 0x3a, 0xb8, 0x41, 0x9c, 0xf2, 0xa4, 0x6d, 0x10, 0x89, 0x0d, 0x6a, 0xb5, 0xc1, 0x31, 0xdc, 0x60, 0xc3, 0x2f, 0x2e, 0x1b, 0x44, 0x20, 0xce, 0xd2, 0x1a, 0xde, 0xb8, 0x3b, 0x78, 0x55, 0x62, 0xe6, 0x41, 0x73, 0x2d, 0xc7, 0x1b, 0x3e, 0xc8, 0x59, 0xc3, 0xbf, 0x39, 0x1b, 0xc4, 0x9a, 0xfe, 0xdb, 0x86, 0xb7, 0x75, 0x36, 0x78, 0x59, 0x87, 0x5a, 0x6b, 0x50, 0x90, 0xc6, 0xae, 0xe1, 0xfb, 0xf6, 0x01, 0xef, 0x0e, 0xed, 0x3d, 0x68, 0xce, 0x55, 0x7c, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0x8d, 0xfe, 0x6f, 0x1b, 0xc4, 0xc5, 0xff, 0xdb, 0x1a, 0x1c, 0x5d, 0x07, 0x37, 0x88, 0x53, 0x9e, 0xb4, 0xda, 0xe0, 0x18, 0x6e, 0xb0, 0xe1, 0x17, 0x97, 0x0d, 0x22, 0x10, 0x67, 0x69, 0x0d, 0x6f, 0xdc, 0x1d, 0x3c, 0x70, 0x32, 0xf3, 0x20, 0xfa, 0x70, 0x96, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0x36, 0x88, 0x35, 0xfd, 0xb7, 0x0d, 0x6f, 0xeb, 0x6c, 0xf0, 0xe6, 0x16, 0xb5, 0xd6, 0xa0, 0x20, 0x8d, 0x5d, 0x83, 0x12, 0x3a, 0x76, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0x0d, 0xd6, 0x35, 0xf9, 0x1e, 0x7e, 0xa8, 0xd9, 0x20, 0x36, 0xf9, 0xdf, 0x3a, 0x08, 0xd3, 0xb1, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x34, 0xfa, 0xbf, 0x6d, 0x10, 0x17, 0xff, 0x6f, 0x6b, 0x70, 0x74, 0x1d, 0xdc, 0x20, 0x4e, 0x79, 0xd2, 0x0e, 0xa2, 0xb0, 0x00, 0xae, 0x0d, 0x8e, 0xe1, 0x06, 0x1b, 0x7e, 0x71, 0xd9, 0x60, 0x61, 0x98, 0xef, 0x1a, 0xde, 0xb8, 0x3b, 0x78, 0x57, 0x67, 0xe6, 0x41, 0xf4, 0xe1, 0x2c, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0x6c, 0x10, 0x6b, 0xfa, 0x6f, 0x1b, 0xde, 0xd6, 0xd9, 0x20, 0x9a, 0xfe, 0xdd, 0x5a, 0x83, 0x82, 0x34, 0x76, 0x0d, 0x4a, 0xe8, 0xd8, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0x6c, 0xf2, 0xbf, 0xad, 0xe1, 0xcf, 0xa5, 0x0d, 0x5a, 0x24, 0xb4, 0x3c, 0xfc, 0x50, 0xd3, 0x41, 0x98, 0x8e, 0x6d, 0x10, 0xa5, 0x0a, 0x70, 0x1b, 0x1c, 0xc3, 0x0d, 0x36, 0xfc, 0xe2, 0xb2, 0x41, 0x04, 0xe2, 0x2c, 0xad, 0xe1, 0x8d, 0xbb, 0x83, 0x27, 0x4c, 0x67, 0xae, 0xc1, 0x31, 0xdc, 0xe0, 0xa0, 0x2d, 0xa7, 0xd8, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0x36, 0x88, 0x35, 0xfd, 0xb7, 0x0d, 0x6f, 0xeb, 0x6c, 0x10, 0xf5, 0x32, 0x6f, 0xad, 0x41, 0x41, 0x1a, 0xbb, 0x41, 0xac, 0x0e, 0xc0, 0x6d, 0x10, 0x71, 0x04, 0x70, 0x1b, 0x1c, 0xc3, 0x0d, 0x36, 0xfc, 0xe2, 0xb2, 0x41, 0x04, 0xe2, 0x2c, 0x6d, 0x10, 0x2b, 0x12, 0x70, 0x07, 0x65, 0x9d, 0xe7, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x06, 0xb1, 0xa6, 0xff, 0xb6, 0xe1, 0x6d, 0x9d, 0x0d, 0xa2, 0xe1, 0xe5, 0xad, 0x35, 0x28, 0x48, 0x63, 0x37, 0x88, 0xb0, 0x07, 0xb8, 0x0d, 0xa2, 0x54, 0x01, 0x6e, 0x83, 0x63, 0xb8, 0xc1, 0x86, 0x5f, 0x5c, 0x36, 0x88, 0x40, 0x9c, 0xa5, 0x35, 0xbc, 0x71, 0x77, 0xf0, 0x14, 0x30, 0xc7, 0x0d, 0x8a, 0x9c, 0xd6, 0x83, 0xe6, 0x5a, 0x8e, 0x37, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0x36, 0x88, 0x35, 0xfd, 0xb7, 0x0d, 0x6f, 0xeb, 0x6c, 0x10, 0xe5, 0x34, 0x6f, 0xad, 0x41, 0x41, 0x1a, 0xbb, 0x06, 0x25, 0x74, 0xec, 0x1a, 0x3e, 0x57, 0xda, 0x20, 0x36, 0xf9, 0xdf, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0x4b, 0xa1, 0x3c, 0x0f, 0x3f, 0xd4, 0x74, 0x10, 0xa6, 0x63, 0x1b, 0x44, 0xa9, 0x02, 0xdc, 0x06, 0xc7, 0x70, 0x83, 0x0d, 0xbf, 0xb8, 0x6c, 0x10, 0x81, 0x38, 0x4b, 0x1b, 0x44, 0x61, 0x06, 0xdc, 0x06, 0x05, 0x6c, 0xfe, 0x41, 0x04, 0x0b, 0x9c, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0x6c, 0x10, 0x6b, 0xfa, 0x6f, 0x1b, 0xde, 0xd6, 0xd9, 0x20, 0x46, 0x79, 0xde, 0x5a, 0x83, 0x82, 0x34, 0x76, 0x83, 0x58, 0x1d, 0x80, 0xdb, 0x20, 0xe2, 0x08, 0xe0, 0x36, 0x28, 0x48, 0x63, 0xd7, 0xa0, 0x84, 0x8e, 0x5d, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0xe5, 0xba, 0x87, 0x07, 0x4f, 0x3f, 0x97, 0x5b, 0xc3, 0x9f, 0x4b, 0x03, 0x5e, 0x58, 0x1d, 0x7d, 0xf0, 0xf4, 0x73, 0xb9, 0x35, 0xfc, 0xb9, 0xb4, 0x41, 0x13, 0xea, 0x52, 0x07, 0x65, 0x96, 0xee, 0x1a, 0xfe, 0x5c, 0xda, 0x60, 0x00, 0x6d, 0x1c, 0x94, 0x59, 0xba, 0x1d, 0x84, 0xe9, 0xd8, 0x1a, 0x14, 0x9d, 0xc6, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xf8, 0x29, 0x48, 0x6b, 0x0d, 0x6f, 0xeb, 0x6c, 0x70, 0x90, 0x67, 0x3b, 0x58, 0x1f, 0x37, 0xb8, 0xc1, 0xd1, 0x75, 0x70, 0x83, 0x88, 0xc4, 0x76, 0xdb, 0x20, 0x22, 0xb1, 0xdd, 0x0e, 0x22, 0x77, 0x01, 0x6e, 0x83, 0x63, 0xb8, 0xc1, 0x86, 0x5f, 0x5c, 0x36, 0x88, 0x40, 0x9c, 0xa5, 0x0d, 0x1e, 0xbb, 0xd2, 0xb9, 0x41, 0x52, 0x29, 0xec, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0x78, 0xc2, 0x85, 0xcd, 0xcd, 0xb5, 0x98, 0xc9, 0xbd, 0xb5, 0xb5, 0x94, 0xd1, 0xa1, 0x6d, 0xb0, 0x22, 0xf7, 0x70, 0x83, 0xf7, 0xbb, 0x7e, 0x1f, 0x34, 0xab, 0x41, 0xd5, 0x86, 0x0f, 0x72, 0xd6, 0xf0, 0x6f, 0xce, 0x06, 0xb1, 0xa6, 0xff, 0xb6, 0xe1, 0x6d, 0x9d, 0x0d, 0x62, 0xcc, 0xe7, 0xad, 0x35, 0x28, 0x48, 0x63, 0x37, 0x88, 0xd5, 0x01, 0xb8, 0x0d, 0x22, 0x8e, 0x00, 0x6e, 0x83, 0x82, 0x34, 0x76, 0x0d, 0xdf, 0xb7, 0x6f, 0xd0, 0xe8, 0x1f, 0xe1, 0x41, 0x73, 0xae, 0xe2, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x38, 0x30, 0x81, 0xdb, 0x20, 0x22, 0x4d, 0xe0, 0x0e, 0xe2, 0xa7, 0x00, 0x6e, 0x83, 0x63, 0xb8, 0xc1, 0x86, 0x5f, 0x5c, 0x36, 0x88, 0x40, 0x9c, 0xa5, 0x35, 0xbc, 0x71, 0x77, 0xf0, 0x44, 0xdb, 0xcc, 0x83, 0x26, 0x28, 0x09, 0x37, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0x36, 0x88, 0x35, 0xfd, 0xb7, 0x0d, 0x6f, 0xeb, 0x6c, 0x10, 0x15, 0x39, 0x6f, 0xad, 0x41, 0x41, 0x1a, 0xbb, 0x06, 0x25, 0x74, 0xec, 0x1a, 0x3e, 0x57, 0xda, 0x20, 0x36, 0xf9, 0xdf, 0xd6, 0xf0, 0xe7, 0xd2, 0x06, 0xcb, 0xfc, 0xee, 0x0f, 0x5e, 0x44, 0xf0, 0xd8, 0x41, 0x98, 0x8e, 0x6d, 0x10, 0x53, 0xfe, 0x6f, 0x1b, 0x1c, 0xc3, 0x0d, 0x36, 0xfc, 0xe2, 0xb2, 0x41, 0x04, 0xe2, 0x2c, 0xad, 0xe1, 0x8d, 0xbb, 0x83, 0x57, 0x87, 0x67, 0x1e, 0xac, 0xe3, 0xbb, 0xdf, 0xf0, 0x41, 0xce, 0x1a, 0xfe, 0xcd, 0xd9, 0x20, 0xd6, 0xf4, 0xdf, 0x36, 0xbc, 0xad, 0xb3, 0x41, 0x5c, 0xc3, 0xbc, 0xb5, 0x06, 0x05, 0x69, 0xec, 0x1a, 0x94, 0xd0, 0xb1, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0xd8, 0xe4, 0x7f, 0x5b, 0xc3, 0x9f, 0x4b, 0x03, 0x1e, 0xdd, 0x1b, 0x7e, 0xf0, 0x22, 0x82, 0xc7, 0x0e, 0xc2, 0x74, 0x6c, 0x83, 0x98, 0xf2, 0x7f, 0xdb, 0xe0, 0x18, 0x6e, 0xb0, 0xe1, 0x17, 0x97, 0x0d, 0x22, 0x10, 0x67, 0x69, 0x0d, 0x6f, 0xdc, 0x1d, 0x3c, 0xa5, 0x3d, 0x73, 0x0d, 0x6f, 0xeb, 0x0c, 0x78, 0x74, 0x6f, 0x78, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0xff, 0xe6, 0x6c, 0x10, 0x6b, 0xfa, 0x6f, 0x1b, 0xde, 0xd6, 0xd9, 0x20, 0xce, 0x82, 0xde, 0x5a, 0x83, 0x82, 0x34, 0x76, 0x83, 0x78, 0x9a, 0x81, 0xdb, 0x20, 0xa6, 0xfc, 0xdf, 0x36, 0x38, 0x86, 0x1b, 0x6c, 0xf8, 0xc5, 0x65, 0x83, 0x08, 0xc4, 0x59, 0x5a, 0xc3, 0x1b, 0x77, 0x07, 0xef, 0xc2, 0xcf, 0x3c, 0x58, 0xc7, 0x77, 0xbf, 0xe1, 0x83, 0x9c, 0x35, 0xfc, 0x9b, 0xb3, 0x41, 0xac, 0xe9, 0xbf, 0x6d, 0x78, 0x5b, 0x67, 0x83, 0xa8, 0x1b, 0x7a, 0x6b, 0x0d, 0x0a, 0xd2, 0xd8, 0x0d, 0x62, 0x0e, 0x07, 0x6e, 0x83, 0x98, 0xf2, 0x7f, 0xdb, 0xe0, 0x18, 0x6e, 0xb0, 0xe1, 0x17, 0x97, 0x0d, 0x22, 0x10, 0x67, 0x69, 0x0d, 0x6f, 0xdc, 0x1d, 0x3c, 0x7e, 0x40, 0xf3, 0x20, 0x9a, 0x77, 0xe0, 0x36, 0x58, 0x66, 0xcd, 0x34, 0x6b, 0x78, 0x9b, 0x75, 0xc3, 0xbf, 0x39, 0x1b, 0xc4, 0x9a, 0xfe, 0xdb, 0x86, 0x1f, 0x61, 0x06, 0xbe, 0x0e, 0x3f, 0x88, 0x18, 0xba, 0xb7, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0x37, 0xee, 0x36, 0xbc, 0x7c, 0x77, 0x10, 0xc1, 0x76, 0x6f, 0x1b, 0xc4, 0x9a, 0xfe, 0x5b, 0x07, 0x05, 0x45, 0xe6, 0x0a, 0xe0, 0x1f, 0x06, 0x07, 0xc7, 0x96, 0xd7, 0x02, 0xf7, 0x96, 0xe6, 0x46, 0xd7, 0x42, 0x96, 0x66, 0x66, 0x6e, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0xcf, 0xa5, 0x01, 0x0f, 0xee, 0x8d, 0x3e, 0x78, 0x9c, 0x60, 0xe6, 0x1a, 0xfe, 0x5c, 0xda, 0xa0, 0xcc, 0x09, 0x38, 0x78, 0x27, 0x5c, 0x66, 0x1b, 0xfe, 0xa2, 0xd9, 0xe0, 0x71, 0x82, 0x99, 0x1b, 0x04, 0xe9, 0xe9, 0x1a, 0x87, 0x0e, 0x92, 0xd8, 0xa1, 0xd6, 0x60, 0xad, 0x4e, 0xf7, 0x86, 0xb7, 0x75, 0x36, 0x48, 0xa8, 0x90, 0x3b, 0x48, 0x62, 0x87, 0x5a, 0x83, 0x87, 0x4c, 0x66, 0x6e, 0xb0, 0x0a, 0x49, 0x69, 0x01, 0x0f, 0xee, 0x8d, 0x6e, 0x0d, 0x52, 0xc0, 0x53, 0x37, 0x38, 0x86, 0x1b, 0x6c, 0xf8, 0xc5, 0x65, 0xc3, 0x83, 0x37, 0x1b, 0x1e, 0xbc, 0xd9, 0xf0, 0xe0, 0xcd, 0x1a, 0x14, 0x39, 0xad, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0x83, 0x92, 0x1b, 0xc4, 0xad, 0xe6, 0xd2, 0x86, 0xb7, 0x75, 0x36, 0x88, 0x0c, 0x95, 0xa5, 0xd6, 0xf0, 0xb6, 0xce, 0x80, 0x77, 0x87, 0xf6, 0x1e, 0x24, 0xb1, 0x43, 0x75, 0x50, 0xd6, 0x79, 0xae, 0xc1, 0x43, 0x8c, 0x62, 0x36, 0x28, 0x76, 0x34, 0xd7, 0xf0, 0x89, 0xcd, 0x1a, 0xde, 0xed, 0x59, 0xc3, 0x83, 0x92, 0x1b, 0x44, 0x39, 0xd4, 0xd2, 0x41, 0xbc, 0x3d, 0xc1, 0x1d, 0x44, 0xfd, 0x13, 0xdc, 0x06, 0xc5, 0x24, 0xe6, 0x1a, 0x2c, 0xc5, 0xa8, 0xda, 0x70, 0x75, 0x6d, 0x10, 0x6c, 0xa6, 0x1b, 0x44, 0x36, 0xcf, 0xd2, 0x06, 0x91, 0xd8, 0xb3, 0xd4, 0xe1, 0xcb, 0xc9, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x8e, 0xe1, 0x06, 0x1b, 0x7e, 0x71, 0xd9, 0x60, 0xe9, 0x1a, 0xea, 0x41, 0x59, 0xe7, 0xd9, 0x1a, 0xbc, 0x1e, 0x31, 0x73, 0xc3, 0x25, 0xb5, 0x41, 0x04, 0x33, 0xc1, 0xad, 0x06, 0x8f, 0x6d, 0x50, 0x1b, 0xf0, 0xde, 0xee, 0xdc, 0x0e, 0xe2, 0x6d, 0x09, 0xae, 0x35, 0x78, 0xe4, 0x80, 0xe6, 0x86, 0x4b, 0x6a, 0x83, 0x08, 0x66, 0x82, 0x5b, 0x0d, 0xde, 0xe4, 0x9f, 0x76, 0x10, 0x29, 0x57, 0x70, 0x07, 0xf1, 0xb6, 0x04, 0xd7, 0x1a, 0xbc, 0x2e, 0x3c, 0x73, 0xc3, 0x25, 0xb5, 0x41, 0x04, 0x33, 0xc1, 0xad, 0x06, 0x2f, 0xc1, 0x54, 0x3b, 0x88, 0x94, 0x2b, 0xb8, 0x83, 0x78, 0x5b, 0x82, 0x6b, 0x0d, 0x9e, 0xcc, 0x9e, 0xb9, 0xe1, 0x92, 0xda, 0x20, 0x82, 0x99, 0xe0, 0x56, 0x83, 0xb7, 0xa2, 0xaa, 0x1d, 0x44, 0xca, 0x15, 0xdc, 0x41, 0xbc, 0x2d, 0xc1, 0xb5, 0x1a, 0x04, 0x9b, 0xe9, 0x06, 0x0f, 0x3b, 0xcd, 0xdc, 0xe0, 0x29, 0xb6, 0x99, 0x1b, 0x3c, 0xf9, 0xcb, 0x71, 0x83, 0xa7, 0x4a, 0x67, 0xb6, 0x41, 0xc1, 0x87, 0xb9, 0x06, 0xc5, 0x24, 0xe6, 0x06, 0x45, 0x2a, 0xe6, 0x06, 0x25, 0x55, 0xf8, 0x41, 0x04, 0x33, 0xc1, 0x6d, 0x10, 0xa4, 0xa7, 0x1b, 0xc4, 0xb0, 0x12, 0xdc, 0x1a, 0x3c, 0xec, 0x34, 0x73, 0xc3, 0x25, 0xb5, 0x41, 0x04, 0x33, 0xc1, 0xad, 0x06, 0x8f, 0xb1, 0xb1, 0x1b, 0xbc, 0x3e, 0x48, 0x01, 0x4f, 0xdd, 0xf0, 0xb6, 0xce, 0x06, 0x8f, 0xb1, 0xb1, 0x3b, 0x48, 0x62, 0x87, 0x5a, 0x0d, 0x5a, 0x38, 0x1d, 0x3f, 0x88, 0x94, 0x30, 0xb8, 0x0d, 0x6f, 0xeb, 0x6c, 0xd0, 0xc2, 0xe9, 0xf8, 0x41, 0x12, 0x3b, 0x54, 0x6b, 0xf0, 0xe4, 0x2f, 0xc7, 0x0d, 0x97, 0xd4, 0x06, 0x11, 0xcc, 0x04, 0xb7, 0x1a, 0x3c, 0x98, 0x8e, 0xeb, 0x20, 0x52, 0xc2, 0xe0, 0x0e, 0xe2, 0x6d, 0x09, 0x6e, 0x35, 0x78, 0xc8, 0x9f, 0xda, 0x41, 0xa4, 0x84, 0xc1, 0x6d, 0xf8, 0x20, 0x67, 0x0d, 0x6f, 0xeb, 0x6c, 0x50, 0x72, 0x37, 0x1c, 0x44, 0xe9, 0x12, 0xdc, 0x06, 0x05, 0x45, 0xe6, 0x86, 0xb7, 0x75, 0x36, 0x78, 0xc8, 0x9f, 0xda, 0xe0, 0xf5, 0x41, 0xfc, 0x7b, 0xc1, 0xb5, 0x06, 0x4f, 0xb1, 0xcd, 0xdc, 0x70, 0x49, 0x6d, 0x10, 0xc1, 0x4c, 0x70, 0xab, 0xc1, 0x63, 0x73, 0x32, 0x0f, 0x22, 0x25, 0x0c, 0xee, 0x20, 0xde, 0x96, 0xe0, 0x5a, 0x83, 0xa7, 0x4a, 0x67, 0x6e, 0xb8, 0xa4, 0x36, 0x88, 0x60, 0x26, 0xb8, 0x35, 0x88, 0xaa, 0x32, 0xb8, 0x83, 0x78, 0x5b, 0x82, 0xab, 0xd5, 0x20, 0xd8, 0x4c, 0x37, 0x78, 0x3f, 0x67, 0xe6, 0x06, 0xef, 0xbf, 0xcf, 0x6c, 0x83, 0x82, 0x0f, 0x73, 0x0d, 0x8a, 0x49, 0xcc, 0x0d, 0x8a, 0x54, 0xcc, 0x01, 0x6f, 0x2d, 0x8d, 0x3c, 0x88, 0x60, 0x26, 0xb8, 0x0d, 0x82, 0xf4, 0x74, 0x83, 0x18, 0x56, 0x82, 0x5b, 0x83, 0xf7, 0x73, 0x66, 0x6e, 0x70, 0xb4, 0xe1, 0x5b, 0xc3, 0x25, 0xb5, 0x41, 0x04, 0x33, 0xc1, 0xad, 0x06, 0x6f, 0x6e, 0x51, 0x3b, 0x78, 0x3f, 0x52, 0xcc, 0xe1, 0x99, 0xc9, 0x36, 0xbc, 0xdb, 0xb3, 0x06, 0x65, 0xc9, 0xfb, 0x06, 0x65, 0x0b, 0xea, 0x06, 0x65, 0xd3, 0xfb, 0x1a, 0xde, 0xd6, 0xd9, 0xe0, 0xcd, 0x2d, 0x6a, 0x83, 0xd7, 0x07, 0x11, 0xcc, 0x06, 0xd7, 0x41, 0xd4, 0x3f, 0xc1, 0xad, 0xc1, 0xfb, 0xef, 0x33, 0x37, 0x5c, 0x52, 0x1b, 0x44, 0x30, 0x13, 0xdc, 0x6a, 0xf0, 0x58, 0x5c, 0xb5, 0x83, 0xf7, 0x23, 0xc5, 0x1c, 0xc4, 0xdb, 0x12, 0x5c, 0xb5, 0x02, 0xfc, 0x70, 0x61, 0x72, 0x73, 0x65, 0x2d, 0x69, 0xe4, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0xc0, 0xa7, 0x91, 0x07, 0xe7, 0xd9, 0xd1, 0x0d, 0x7f, 0xd1, 0xac, 0xe1, 0xdf, 0xf9, 0x35, 0x88, 0x3c, 0x26, 0xb7, 0x36, 0x68, 0xf3, 0x91, 0xba, 0x0d, 0x0e, 0x58, 0x74, 0x6b, 0xb0, 0xa4, 0x7e, 0x69, 0x83, 0xa6, 0x70, 0x42, 0x37, 0x28, 0x3a, 0x8d, 0x37, 0x58, 0xb0, 0x83, 0xbe, 0x41, 0x53, 0x38, 0xa1, 0x1b, 0xac, 0x10, 0x6a, 0xda, 0x60, 0x3d, 0x30, 0xe8, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x61, 0x47, 0xea, 0x35, 0xbc, 0x71, 0x77, 0x10, 0xa1, 0xc2, 0x6e, 0x6b, 0xf8, 0x11, 0x66, 0x70, 0xfa, 0xe0, 0x61, 0x46, 0xa2, 0x6b, 0x78, 0x5b, 0x67, 0x80, 0x7f, 0x0e, 0x2d, 0x0d, 0xce, 0x2d, 0xac, 0xad, 0xac, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0xc3, 0x8e, 0xd4, 0x6b, 0x78, 0xe3, 0xee, 0x20, 0x1e, 0x8a, 0xdd, 0xd6, 0xf0, 0x23, 0xcc, 0xe0, 0xf4, 0x41, 0x24, 0xfe, 0xbe, 0x1d, 0xc4, 0x80, 0x1e, 0xdc, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0x61, 0x47, 0xea, 0x35, 0xbc, 0x71, 0x77, 0x10, 0x43, 0xc6, 0x6e, 0x6b, 0xf8, 0x11, 0x66, 0x70, 0xfa, 0x20, 0x0e, 0x78, 0xdf, 0x0e, 0x16, 0xfa, 0xb7, 0xb6, 0xcc, 0x1a, 0x04, 0x05, 0xd6, 0x06, 0x85, 0x72, 0xe7, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0xac, 0x1a, 0x08, 0x3e, 0x38, 0x6f, 0x9e, 0xae, 0xe1, 0xcf, 0xa5, 0x0d, 0xc6, 0xaa, 0xc0, 0xc1, 0x79, 0x76, 0x74, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x72, 0x75, 0xec, 0xc1, 0xd2, 0x54, 0xd1, 0x36, 0x58, 0x21, 0xd4, 0xb4, 0xc1, 0x8a, 0x8a, 0xd0, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x12, 0x9c, 0xd0, 0x0d, 0x16, 0x97, 0x04, 0xaf, 0xe1, 0xdd, 0x9e, 0x0d, 0x16, 0x3e, 0x8c, 0x6e, 0x70, 0x1e, 0xef, 0xaa, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x42, 0x4d, 0xd2, 0x0d, 0xda, 0x27, 0xb8, 0xdc, 0x20, 0x82, 0x9c, 0x9d, 0x6a, 0x35, 0x88, 0x20, 0x3d, 0xb8, 0x83, 0x55, 0xb8, 0xe8, 0x87, 0x53, 0xac, 0xc3, 0x29, 0x36, 0x6b, 0x10, 0x37, 0x2a, 0x70, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x1b, 0xc4, 0xa1, 0x08, 0xdc, 0x06, 0xd1, 0x34, 0x02, 0xb7, 0x41, 0x54, 0x90, 0xc0, 0xb5, 0xe1, 0x2f, 0x9a, 0x0d, 0x1e, 0x70, 0x93, 0xb9, 0xc1, 0xaa, 0x5e, 0xa5, 0x0d, 0xca, 0x7a, 0xdb, 0x0d, 0x8a, 0x4a, 0xf1, 0x0d, 0x96, 0xe3, 0xc6, 0x6d, 0x50, 0xec, 0x68, 0xae, 0xe1, 0x11, 0xd6, 0x35, 0xfc, 0x9b, 0xb3, 0xe1, 0x31, 0x99, 0x83, 0x06, 0xce, 0xa6, 0xd6, 0xf0, 0x6f, 0xce, 0x1a, 0xde, 0xd6, 0x19, 0x1c, 0x3e, 0x58, 0xac, 0x7b, 0x78, 0x90, 0x7a, 0x1a, 0xbb, 0x86, 0x7f, 0x73, 0xd6, 0xf0, 0xb6, 0xce, 0xc1, 0x23, 0x57, 0xc0, 0x0f, 0x52, 0x4f, 0x63, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x94, 0xf5, 0xb6, 0x1b, 0x1c, 0x56, 0xe6, 0x0e, 0xce, 0xbb, 0x7b, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0xac, 0xb7, 0xdd, 0xe0, 0xb0, 0x32, 0xb7, 0x86, 0xb7, 0x75, 0x06, 0x8f, 0x0f, 0x9e, 0xf6, 0xfa, 0xbd, 0x86, 0xb7, 0x75, 0x06, 0x8f, 0x0f, 0x16, 0xeb, 0x1e, 0x76, 0x38, 0xc5, 0x16, 0xc0, 0x17, 0xee, 0x2d, 0xcd, 0x8d, 0xae, 0xc5, 0x4c, 0xee, 0xad, 0xad, 0xa5, 0x8c, 0x0e, 0xdd, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0xda, 0x20, 0x4e, 0xce, 0x96, 0xd6, 0xf0, 0xef, 0xfc, 0x06, 0x2f, 0x17, 0xcc, 0x5c, 0x83, 0x48, 0xbd, 0x77, 0xab, 0x35, 0xfc, 0x3b, 0xbf, 0x06, 0xd1, 0x91, 0xee, 0xd6, 0x41, 0x24, 0x47, 0xc2, 0xb5, 0xe1, 0x2f, 0x9a, 0x0d, 0x1e, 0x27, 0x98, 0xb9, 0xc1, 0x39, 0x7f, 0x69, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x6d, 0x9d, 0x83, 0x38, 0x51, 0x77, 0x5b, 0xc3, 0xdb, 0x3a, 0x1b, 0xbc, 0x04, 0x53, 0xad, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0x5b, 0x51, 0xd5, 0x5a, 0xc3, 0xdb, 0x3a, 0x07, 0x2f, 0xf2, 0x4f, 0x6b, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0xbc, 0xad, 0x73, 0x10, 0xa7, 0xdd, 0x6e, 0x1b, 0x14, 0x14, 0x99, 0x1b, 0x14, 0x86, 0xaa, 0x1b, 0x14, 0x14, 0x99, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0xc4, 0xdf, 0xc0, 0x5b, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xe8, 0x4f, 0x81, 0x5b, 0xc3, 0xdb, 0x3a, 0x1b, 0x44, 0x85, 0xbe, 0x5b, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xa8, 0xdc, 0x77, 0x6b, 0x83, 0x67, 0x9b, 0x7a, 0xb6, 0x86, 0xb7, 0x75, 0x36, 0x78, 0x6c, 0x4e, 0x66, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xeb, 0x6c, 0x10, 0x59, 0xfd, 0x6e, 0xad, 0xe1, 0xeb, 0x97, 0x0d, 0xa2, 0x3a, 0x5e, 0x66, 0xc3, 0xd7, 0x2f, 0x1b, 0x3e, 0x84, 0xd9, 0xf0, 0xb6, 0xce, 0xc1, 0x63, 0xa5, 0x39, 0x5b, 0x83, 0x62, 0x47, 0x73, 0x83, 0x98, 0x74, 0x80, 0xdb, 0xa0, 0xa0, 0xc8, 0xdc, 0xe0, 0x18, 0x6e, 0xb0, 0xe1, 0xeb, 0x97, 0x0d, 0xa2, 0x3a, 0x5e, 0x66, 0xc3, 0xd7, 0x2f, 0x1b, 0x3e, 0x84, 0xd9, 0xf0, 0xb6, 0xce, 0x06, 0x91, 0x19, 0xf0, 0x56, 0x1b, 0x14, 0x3b, 0x9a, 0x6b, 0xf8, 0xc4, 0x66, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0xfd, 0x51, 0x70, 0x07, 0xd1, 0x87, 0xb3, 0x74, 0x10, 0x0f, 0x53, 0x70, 0x1b, 0x14, 0x14, 0x99, 0x1b, 0x14, 0x86, 0xaa, 0x1b, 0x14, 0x14, 0x99, 0x1b, 0x7e, 0x71, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x3c, 0x16, 0x57, 0xad, 0x83, 0xb2, 0xce, 0xf3, 0x70, 0x8a, 0x2d, 0x80, 0xbf, 0x59, 0x9d, 0xdb, 0x18, 0x5d, 0xda, 0x9b, 0x5b, 0x0b, 0xdd, 0x5b, 0xcb, 0x58, 0x18, 0x1b, 0xbb, 0x41, 0xc9, 0xc2, 0x3e, 0xcb, 0xac, 0x41, 0xe4, 0x31, 0xb9, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x7f, 0x2e, 0x0d, 0x78, 0x63, 0x61, 0xec, 0x41, 0x6c, 0xd5, 0xc1, 0x6d, 0xf8, 0x8b, 0x66, 0x0d, 0x9f, 0x2b, 0x6d, 0x10, 0x79, 0x74, 0x70, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0xa2, 0xb6, 0x78, 0xc3, 0xbf, 0xf3, 0x1b, 0x44, 0xae, 0x6c, 0xda, 0x41, 0xf4, 0xd5, 0xbf, 0xb5, 0x41, 0x90, 0x9e, 0xae, 0x71, 0xe8, 0x20, 0x4a, 0x45, 0xd5, 0xd6, 0x20, 0xe2, 0x84, 0xdd, 0x36, 0x28, 0x0c, 0x55, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xcb, 0x91, 0x85, 0xd7, 0xf0, 0x2c, 0xde, 0xe0, 0xf0, 0xe0, 0xef, 0xe0, 0xe9, 0xe0, 0xee, 0xe0, 0xf4, 0xe0, 0xf3, 0xa0, 0x68, 0xd9, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xed, 0xd9, 0x60, 0x31, 0x63, 0xf0, 0x06, 0xcb, 0xd7, 0x5e, 0xd7, 0xf0, 0xb6, 0xce, 0x80, 0x77, 0x87, 0xf6, 0x1e, 0x44, 0xa9, 0xa8, 0x5a, 0x1d, 0xb4, 0x7d, 0xf9, 0xd4, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0x23, 0xcc, 0xe0, 0xf4, 0x41, 0x2c, 0x6d, 0xbf, 0xad, 0xc1, 0xd1, 0x75, 0x70, 0x0d, 0xe2, 0x94, 0x27, 0x6d, 0xc3, 0xd7, 0x2f, 0x1b, 0x3e, 0x84, 0xd9, 0xf0, 0xf5, 0xcb, 0x86, 0x0f, 0x61, 0x0e, 0x22, 0x75, 0x15, 0xae, 0xd6, 0x20, 0x56, 0x87, 0xdd, 0x36, 0x28, 0x0c, 0x55, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0xcb, 0x91, 0x85, 0xd7, 0xf0, 0x2c, 0xde, 0xe0, 0xf2, 0xe0, 0xe9, 0xe0, 0xe7, 0xe0, 0xe8, 0x41, 0xfc, 0xa8, 0xc2, 0xb5, 0xe1, 0x17, 0x97, 0x35, 0xfc, 0x08, 0x33, 0x38, 0x7d, 0x10, 0x1d, 0xe0, 0x6f, 0x07, 0x71, 0xd9, 0x0a, 0xb7, 0x06, 0xf1, 0x4d, 0xec, 0xb6, 0x41, 0x61, 0xa8, 0xba, 0x86, 0x77, 0x7b, 0x36, 0x58, 0x8e, 0x2c, 0xbc, 0x86, 0x67, 0xf1, 0x06, 0x3f, 0x07, 0x2f, 0x07, 0xa7, 0x07, 0x9f, 0x06, 0x87, 0x07, 0x0f, 0x07, 0xbf, 0x07, 0x77, 0x07, 0x2f, 0x07, 0x27, 0x0f, 0xe2, 0x4f, 0x15, 0xae, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0x83, 0xc8, 0x31, 0x7f, 0x3b, 0x88, 0xcb, 0x56, 0xb8, 0x35, 0x88, 0x09, 0x63, 0xb7, 0x0d, 0x0a, 0x43, 0xd5, 0x35, 0xbc, 0xdb, 0xb3, 0xc1, 0x72, 0x64, 0xe1, 0x35, 0x3c, 0x8b, 0x37, 0x38, 0x39, 0xb8, 0x3b, 0xf8, 0x3c, 0x38, 0x31, 0xf8, 0x3b, 0x78, 0x3b, 0x78, 0x38, 0x78, 0x3a, 0xb8, 0x3b, 0xf8, 0x3c, 0x28, 0x5a, 0x36, 0xfc, 0xe2, 0xb2, 0x86, 0x77, 0x7b, 0x36, 0x58, 0xcc, 0x18, 0xbc, 0x41, 0x22, 0x5c, 0xf0, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0xc1, 0x83, 0xcb, 0x41, 0x94, 0x8a, 0xaa, 0xd5, 0x41, 0xdb, 0x97, 0x4f, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0x3f, 0xc2, 0x0c, 0x4e, 0x1f, 0xc4, 0xa9, 0xfb, 0xdb, 0x1a, 0x1c, 0x5d, 0x07, 0xd7, 0x20, 0x4e, 0x79, 0xd2, 0x0e, 0x62, 0x46, 0x17, 0xae, 0x3a, 0x9c, 0x62, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x83, 0xb7, 0x6a, 0x60, 0x6c, 0x38, 0x11, 0x36, 0x78, 0x5e, 0x05, 0xc6, 0x1a, 0xce, 0x91, 0x41, 0xb0, 0x38, 0x08, 0x36, 0xc4, 0x70, 0x71, 0x10, 0x2c, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x10, 0x2c, 0x48, 0x06, 0x86, 0xea, 0xe0, 0x98, 0x55, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0x90, 0x98, 0x5a, 0x1c, 0x04, 0x2b, 0x08, 0x16, 0x7e, 0x43, 0x72, 0x69, 0x90, 0x0c, 0x08, 0xff, 0xbb, 0x83, 0x20, 0xe7, 0x3f, 0xa4, 0xe1, 0x0e, 0x86, 0xac, 0xef, 0xa1, 0xf9, 0xcb, 0xf1, 0xf8, 0x38, 0x74, 0x68, 0xd4, 0x72, 0x68, 0xfe, 0x72, 0x3c, 0x5e, 0x5c, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0x85, 0x5f, 0x10, 0x2c, 0x48, 0x06, 0x56, 0xfa, 0x0e, 0x4e, 0x67, 0xc8, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x92, 0x81, 0xe6, 0x4b, 0x07, 0xc3, 0x51, 0xfa, 0x38, 0x74, 0x7c, 0x1b, 0x7e, 0x41, 0xb4, 0x90, 0x41, 0xb0, 0x38, 0xec, 0x86, 0x44, 0xc0, 0x86, 0xd4, 0xc1, 0x20, 0x5b, 0x43, 0x1e, 0x7b, 0x71, 0x10, 0x6c, 0xd0, 0x0c, 0xd6, 0xff, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x26, 0xba, 0xfe, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x5f, 0xdc, 0x30, 0x71, 0x6b, 0xa8, 0xe3, 0x1b, 0x5e, 0xbe, 0x9b, 0x00, 0xcf, 0xb1, 0xb7, 0xb6, 0xb2, 0x16, 0xb7, 0x37, 0xba, 0x96, 0xb5, 0x34, 0xb7, 0xf3, 0x20, 0x5a, 0xf9, 0x65, 0x86, 0xdf, 0x78, 0xbe, 0x78, 0x10, 0x01, 0xca, 0x70, 0x07, 0x63, 0xc2, 0xea, 0x38, 0x74, 0x1c, 0x3a, 0x1e, 0x0f, 0xbb, 0x20, 0x58, 0x10, 0x2c, 0xfc, 0x06, 0xcf, 0x3e, 0x08, 0x38, 0x68, 0x33, 0xce, 0xff, 0xa0, 0x88, 0x3a, 0x39, 0x88, 0xc1, 0x61, 0x99, 0x05, 0xc9, 0x90, 0x41, 0xb4, 0xc1, 0x50, 0xb2, 0x1a, 0x44, 0x0b, 0x3b, 0x08, 0x16, 0x04, 0x1b, 0x34, 0x3a, 0x23, 0x72, 0x50, 0x30, 0x3a, 0x1c, 0x14, 0x51, 0x27, 0xc7, 0xe3, 0xc3, 0x29, 0x76, 0x7c, 0x3b, 0x1e, 0x0f, 0x82, 0xc5, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x85, 0x5f, 0xf8, 0x05, 0xc9, 0x40, 0xf1, 0x3a, 0x18, 0xfe, 0xb1, 0x07, 0x0b, 0x2b, 0xcc, 0x0e, 0xce, 0x4f, 0xb4, 0x07, 0x6b, 0xf9, 0x04, 0x0e, 0x16, 0x67, 0x01, 0x0d, 0x82, 0x85, 0xdf, 0x20, 0xd6, 0x4b, 0x72, 0x0e, 0xd2, 0x2d, 0xa5, 0x87, 0x5d, 0x10, 0x2c, 0x08, 0x16, 0x7e, 0x83, 0xd8, 0x48, 0xed, 0x39, 0x68, 0x33, 0xce, 0xff, 0x60, 0x60, 0x8b, 0x1e, 0x44, 0x08, 0xb2, 0xcc, 0xc2, 0x2e, 0x08, 0x16, 0x04, 0x1b, 0xb4, 0xea, 0xcd, 0x72, 0xd0, 0xe2, 0x26, 0xcb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xe1, 0x37, 0x88, 0x8d, 0xd4, 0x9e, 0x83, 0x96, 0x8d, 0x44, 0x0e, 0x06, 0xb6, 0xe8, 0x71, 0x68, 0x0d, 0x12, 0x8f, 0x7d, 0x36, 0x0e, 0x6d, 0x88, 0xe1, 0x1a, 0x8e, 0xf6, 0xe1, 0x17, 0x7e, 0x43, 0xea, 0xe0, 0xa0, 0x64, 0x68, 0x3a, 0x28, 0x19, 0x9a, 0x0e, 0x31, 0x1c, 0x24, 0x43, 0x06, 0xd1, 0x82, 0xf6, 0x83, 0x88, 0x57, 0xbd, 0x39, 0x24, 0x97, 0x0e, 0x22, 0x17, 0x1b, 0xee, 0xf8, 0x76, 0x3c, 0x5e, 0x71, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0x83, 0x60, 0xe1, 0x17, 0x7e, 0x83, 0xa8, 0x07, 0x1d, 0x3a, 0x38, 0xd0, 0xdc, 0x1e, 0xac, 0xe5, 0x13, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0xfc, 0xc2, 0x6f, 0x10, 0xf5, 0xa0, 0x43, 0x07, 0xa7, 0x30, 0xdc, 0x83, 0x72, 0x28, 0x69, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0x48, 0xc0, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xf0, 0x43, 0x86, 0xdf, 0x78, 0xbe, 0x18, 0xf0, 0x9f, 0x95, 0xd1, 0x41, 0xbd, 0xa5, 0xb9, 0xd1, 0x83, 0x60, 0x41, 0xb0, 0xc1, 0x6b, 0x6f, 0x48, 0x0e, 0x5e, 0xfa, 0xe9, 0x30, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x5d, 0xf8, 0x8d, 0xe7, 0xe3, 0x41, 0xd3, 0xd7, 0xe3, 0xc3, 0x6f, 0x3c, 0xdf, 0x60, 0x8d, 0xb6, 0xc2, 0x20, 0x58, 0x90, 0x0c, 0x84, 0xee, 0xe0, 0xec, 0x65, 0x7c, 0xf0, 0x90, 0xfc, 0x8b, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x74, 0x1c, 0x3a, 0x1e, 0x2f, 0x08, 0x36, 0x18, 0xf9, 0x0f, 0x8b, 0x83, 0x60, 0xe1, 0x17, 0x7e, 0x83, 0xb8, 0x0b, 0xb0, 0x39, 0x38, 0x3f, 0xd1, 0x1e, 0x1c, 0x68, 0x6e, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0xdf, 0x20, 0x1a, 0xb4, 0xdb, 0xd6, 0xa0, 0x95, 0xd2, 0xfc, 0x83, 0xf5, 0x51, 0x1f, 0x6b, 0x10, 0xcf, 0xda, 0x6d, 0x1b, 0xac, 0xd1, 0x56, 0x38, 0x34, 0x12, 0x5c, 0x83, 0x38, 0xdd, 0x6e, 0xdb, 0x60, 0x0d, 0x0a, 0xd0, 0x41, 0x50, 0x7a, 0x1f, 0x62, 0x78, 0x1c, 0x3a, 0x1e, 0x2f, 0x08, 0x16, 0x7e, 0xe1, 0x37, 0x88, 0x80, 0x4c, 0x8c, 0x83, 0x03, 0xcd, 0xed, 0xc1, 0x5a, 0x3e, 0x81, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0xc2, 0x2f, 0xfc, 0x06, 0x11, 0x90, 0x89, 0x71, 0x70, 0x0a, 0xc3, 0x3d, 0x28, 0x87, 0x92, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x8c, 0x3b, 0xa8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x3f, 0x78, 0x03, 0x7b, 0xd0, 0xf0, 0x1b, 0xcf, 0xc7, 0x01, 0xbe, 0xb3, 0x32, 0x3a, 0x22, 0xb7, 0xb9, 0xe3, 0xd0, 0x71, 0xe8, 0x38, 0x34, 0x08, 0x36, 0x88, 0x24, 0x74, 0xb8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x31, 0x9f, 0x0e, 0x37, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x06, 0xe7, 0xc8, 0xdd, 0x41, 0xb0, 0x41, 0x32, 0xd2, 0xc7, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc9, 0x06, 0x31, 0x4f, 0x91, 0x73, 0x70, 0xf6, 0x32, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x30, 0xf0, 0x43, 0x0e, 0xd2, 0x0d, 0x1c, 0x8e, 0x43, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x36, 0x18, 0x09, 0x38, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0xe9, 0x8b, 0x9c, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x06, 0x43, 0xb1, 0x68, 0xe1, 0x37, 0x9e, 0x8f, 0x81, 0x7e, 0x16, 0xc6, 0xd6, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0xf6, 0x70, 0xb8, 0x83, 0x85, 0xc9, 0x3f, 0xc7, 0xa1, 0x83, 0x28, 0xf6, 0x86, 0x3b, 0x0e, 0x1d, 0x8f, 0x8f, 0x43, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0x78, 0x41, 0xb0, 0xc2, 0x6f, 0xf0, 0x4a, 0x08, 0x93, 0xe3, 0xdb, 0xf0, 0x0b, 0xbf, 0x41, 0x60, 0x62, 0x1f, 0xc4, 0x90, 0xc7, 0xce, 0xf1, 0x6d, 0x71, 0x10, 0x6c, 0x10, 0x07, 0xd3, 0x6f, 0xc3, 0x6e, 0x10, 0x21, 0xc8, 0x32, 0x0b, 0xbf, 0xf1, 0x7c, 0x43, 0x0c, 0x07, 0xc1, 0x06, 0x31, 0xe7, 0xf8, 0x76, 0x48, 0xc3, 0x0d, 0xbb, 0x41, 0xa4, 0x1a, 0xcb, 0x6c, 0x10, 0x07, 0xfa, 0x70, 0xc3, 0x6e, 0x10, 0xbd, 0xc2, 0x32, 0x1b, 0xc4, 0x81, 0x3e, 0xdc, 0x20, 0xdb, 0xd0, 0x7c, 0x7d, 0xf8, 0x8d, 0xe7, 0xc3, 0x6e, 0xd0, 0xe2, 0x14, 0xcc, 0xe2, 0x18, 0xe0, 0xe3, 0xf6, 0x46, 0xd7, 0x22, 0xf6, 0xf6, 0x46, 0x57, 0x46, 0x0e, 0xbb, 0x04, 0xc9, 0xdb, 0x35, 0xc4, 0x70, 0x82, 0xec, 0xed, 0x38, 0x06, 0xf8, 0xb8, 0xbd, 0xb5, 0xcc, 0xc1, 0xbd, 0xb9, 0xcd, 0xbd, 0xc9, 0xc7, 0xe3, 0x15, 0x17, 0x04, 0x1b, 0x8c, 0xfc, 0x87, 0xc5, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x85, 0x5f, 0xf8, 0x85, 0xdf, 0xb0, 0x42, 0x3b, 0xfc, 0xc2, 0x6f, 0x10, 0x98, 0xd8, 0x83, 0x64, 0x20, 0xef, 0x75, 0x10, 0xe4, 0xfc, 0x07, 0x25, 0x43, 0xd3, 0xc1, 0xc1, 0x19, 0xfd, 0xe0, 0x14, 0x86, 0x7b, 0x50, 0x32, 0x34, 0x1d, 0x5a, 0x80, 0x0d, 0xbb, 0xc1, 0xa8, 0x97, 0x5c, 0x90, 0xad, 0x41, 0x5b, 0x20, 0x2b, 0x1b, 0x62, 0x38, 0x08, 0x16, 0x7e, 0xe1, 0x37, 0x64, 0x2b, 0x0e, 0x62, 0x1d, 0x20, 0xee, 0xe0, 0x25, 0x05, 0x39, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x85, 0xdf, 0x20, 0x22, 0x08, 0xe2, 0x0e, 0x1a, 0x28, 0xcc, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x5c, 0xc3, 0xc4, 0xad, 0xa1, 0x8e, 0x6f, 0x78, 0xf9, 0x6e, 0x02, 0xbc, 0xe1, 0xde, 0xd2, 0xdc, 0xe8, 0x5a, 0xe8, 0xc2, 0xd6, 0xca, 0x5a, 0xc8, 0xc2, 0xee, 0xdc, 0x0d, 0x75, 0x7c, 0xc3, 0xcb, 0x77, 0x13, 0xe0, 0x97, 0xe6, 0x66, 0x17, 0xc6, 0x96, 0x46, 0xd6, 0xa2, 0x36, 0xf7, 0xe6, 0x6e, 0x10, 0x75, 0x07, 0x71, 0x07, 0xb1, 0x8e, 0x10, 0x77, 0x1c, 0x3a, 0x0e, 0x1d, 0x62, 0x38, 0x08, 0x16, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0xc2, 0x2f, 0xfc, 0xc6, 0xe3, 0xe1, 0x17, 0x7e, 0x83, 0x88, 0x20, 0x88, 0x3b, 0x88, 0x0c, 0x8f, 0xb6, 0x83, 0x92, 0xa1, 0xe9, 0xe0, 0x8d, 0xfd, 0x1d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0xaf, 0x18, 0xe0, 0xf1, 0x76, 0xe7, 0x56, 0x26, 0x37, 0x87, 0x96, 0x06, 0x0f, 0x82, 0x0d, 0x62, 0x66, 0x21, 0x6e, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xb8, 0x20, 0x58, 0xf8, 0x85, 0xdf, 0x78, 0x7e, 0x10, 0x81, 0x0b, 0x71, 0x07, 0x6f, 0xec, 0xef, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0x0d, 0x62, 0xda, 0x76, 0x6d, 0x10, 0x2c, 0xfc, 0x06, 0x51, 0xf7, 0x10, 0x77, 0x70, 0xf8, 0xb5, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x88, 0xcc, 0xf8, 0x9b, 0x83, 0x43, 0xe8, 0xed, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x20, 0xea, 0x1e, 0xe2, 0x0e, 0x56, 0x6f, 0xa2, 0x1d, 0x87, 0x0e, 0x06, 0x7e, 0xc8, 0x71, 0x68, 0xc5, 0x83, 0x28, 0x68, 0x77, 0x3b, 0x28, 0x19, 0x9a, 0xd6, 0xe0, 0x99, 0x0d, 0x6a, 0x07, 0x25, 0x43, 0xd3, 0x8a, 0x07, 0x51, 0xb3, 0xee, 0x76, 0x50, 0x32, 0x34, 0xad, 0x78, 0x10, 0x85, 0xee, 0x6e, 0x07, 0x25, 0x43, 0xd3, 0x8a, 0x07, 0x51, 0x01, 0xef, 0x76, 0x50, 0x32, 0x34, 0x1d, 0x62, 0x78, 0x50, 0x0e, 0x25, 0x1d, 0x87, 0x56, 0x0c, 0x78, 0xdd, 0xca, 0xe8, 0xee, 0xde, 0xe4, 0xd6, 0x41, 0xb0, 0x41, 0xcc, 0x2c, 0xc4, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0xbe, 0x06, 0x31, 0xf0, 0xfb, 0x32, 0x08, 0x16, 0x7e, 0x83, 0x58, 0x5a, 0x88, 0x3b, 0x28, 0x19, 0x9a, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0xe1, 0x37, 0x88, 0xa5, 0x85, 0xb8, 0x83, 0x13, 0x21, 0xf4, 0x41, 0xca, 0xc7, 0xc5, 0x71, 0x68, 0x0d, 0xde, 0xd0, 0xa3, 0x36, 0x08, 0x36, 0x88, 0x99, 0x85, 0xb8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x5f, 0x3c, 0x78, 0x8c, 0x8d, 0xdd, 0x41, 0xac, 0x66, 0xc4, 0x1d, 0x0c, 0xfc, 0x90, 0xe3, 0xd0, 0x1a, 0xbc, 0xa1, 0x47, 0x6d, 0x10, 0x2c, 0xfc, 0x06, 0xb1, 0xb4, 0x10, 0x77, 0x70, 0xf8, 0xb5, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x28, 0xdc, 0x92, 0x0e, 0xd2, 0xb8, 0x4f, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0x99, 0x85, 0xb8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x57, 0x3c, 0x88, 0x8b, 0xb4, 0xa0, 0x41, 0xb0, 0x41, 0xec, 0x7a, 0xc4, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0xf8, 0x0d, 0x62, 0x69, 0x21, 0xee, 0x20, 0xde, 0x91, 0x8c, 0x0e, 0x92, 0xb7, 0x4e, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0xe4, 0x8c, 0xb8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x87, 0xdf, 0x78, 0x3c, 0x08, 0x16, 0x7e, 0xe3, 0xf1, 0xf0, 0x1b, 0xc4, 0xd2, 0x42, 0xdc, 0x20, 0x19, 0x68, 0x4e, 0x75, 0x30, 0x0c, 0x7d, 0x06, 0xc1, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0xbf, 0x41, 0x2c, 0x2d, 0xc4, 0x1d, 0xac, 0xd7, 0x28, 0x39, 0x58, 0xd0, 0xbd, 0x35, 0x08, 0x36, 0x08, 0xb2, 0xf8, 0xc5, 0x41, 0xb0, 0xf0, 0x1b, 0xb2, 0x15, 0xc3, 0x6f, 0x10, 0x4b, 0x0b, 0x71, 0x07, 0x6d, 0x76, 0xe7, 0x1f, 0xac, 0xc4, 0x17, 0x39, 0x1e, 0x1f, 0x87, 0x8e, 0x43, 0x6b, 0x10, 0x23, 0xa8, 0x1f, 0x07, 0x11, 0x21, 0x12, 0xb7, 0x62, 0xc0, 0x33, 0x57, 0x97, 0x46, 0x57, 0x1e, 0xc4, 0x6a, 0x46, 0xdc, 0x21, 0x86, 0xc7, 0xa1, 0xe3, 0xd0, 0x1a, 0x3c, 0x95, 0x8e, 0x6b, 0x10, 0x6c, 0x10, 0x33, 0x0b, 0x71, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0xbe, 0x78, 0x50, 0x72, 0x37, 0x0c, 0xbf, 0x41, 0x2c, 0x2d, 0xc4, 0x1d, 0xb4, 0xb5, 0xc1, 0xb4, 0xf0, 0x1b, 0xcf, 0x17, 0x03, 0xef, 0x0e, 0xed, 0x1d, 0x7e, 0x83, 0x58, 0x5a, 0x88, 0x3b, 0x88, 0x8d, 0x22, 0x95, 0x83, 0x81, 0x1f, 0x72, 0x1c, 0x3a, 0xc4, 0xf0, 0x38, 0x74, 0x88, 0xe1, 0x71, 0x68, 0x10, 0x2c, 0x48, 0x06, 0x4a, 0xdd, 0xc1, 0xc2, 0xe1, 0x84, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0x5f, 0x3c, 0x58, 0x3b, 0x5d, 0x7c, 0x1c, 0x3a, 0x18, 0xf8, 0x21, 0xc7, 0xa1, 0x83, 0x11, 0x85, 0x3b, 0xec, 0x06, 0xa3, 0x5e, 0x72, 0x41, 0xb6, 0x06, 0x6d, 0x81, 0xac, 0x6c, 0x88, 0xe1, 0x20, 0x58, 0xf8, 0x85, 0xdf, 0x20, 0xc8, 0xf9, 0x0f, 0x62, 0x1d, 0x20, 0xee, 0xe0, 0x25, 0x05, 0x39, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x85, 0xdf, 0x20, 0xea, 0x66, 0xe2, 0x0e, 0x1a, 0x28, 0xcc, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x5c, 0xc3, 0xc4, 0x6d, 0x10, 0x0b, 0x07, 0x71, 0x1b, 0xea, 0xf8, 0x86, 0x97, 0xef, 0x26, 0xc0, 0x3b, 0xcd, 0x6d, 0xec, 0xad, 0x0d, 0x8e, 0xad, 0x8c, 0xae, 0xac, 0x45, 0x6d, 0xee, 0xcd, 0xdd, 0x20, 0xea, 0x0e, 0xe2, 0x0e, 0xa2, 0xe5, 0x26, 0xee, 0x38, 0x74, 0x1c, 0x3a, 0xc4, 0x70, 0x10, 0x2c, 0xfc, 0x06, 0x51, 0x37, 0x13, 0x77, 0xd0, 0xaa, 0x6d, 0xd2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x1b, 0xbc, 0x94, 0xc4, 0x66, 0x61, 0x17, 0x6e, 0x43, 0x0c, 0x0f, 0xd6, 0xee, 0x20, 0x6c, 0x88, 0xe1, 0x86, 0x18, 0x6e, 0xb0, 0x76, 0x07, 0x61, 0x83, 0xd5, 0xef, 0x07, 0x1b, 0x04, 0x6e, 0xfc, 0x06, 0x4b, 0x11, 0x54, 0x0e, 0x31, 0x1c, 0x76, 0x41, 0xb0, 0xf0, 0x1b, 0x44, 0xdd, 0x4c, 0xdc, 0xc1, 0xc3, 0xf0, 0x2e, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x92, 0x1d, 0x07, 0xe9, 0xe5, 0x09, 0xc7, 0xa1, 0x35, 0xc4, 0x70, 0x83, 0xb6, 0x47, 0x9c, 0x0e, 0x31, 0x3c, 0xc4, 0xf0, 0x38, 0x74, 0x3c, 0x5e, 0x10, 0x6c, 0x48, 0x4c, 0x2d, 0x0e, 0x82, 0x05, 0xc1, 0x06, 0xd1, 0x05, 0x10, 0x77, 0xe8, 0xa0, 0x31, 0xec, 0x06, 0xa3, 0x5e, 0x72, 0x41, 0xb6, 0x06, 0x6d, 0x81, 0xac, 0x6c, 0x88, 0xe1, 0x20, 0xd8, 0x20, 0xf2, 0x07, 0xe2, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x44, 0x65, 0x41, 0xdc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0xe3, 0x1a, 0x26, 0x6e, 0x0d, 0x75, 0x7c, 0xc3, 0xcb, 0x77, 0x13, 0xe0, 0x4b, 0x57, 0x27, 0x67, 0xd6, 0x42, 0x17, 0xb6, 0x56, 0xd6, 0x42, 0x16, 0x76, 0xe7, 0x1e, 0x44, 0x20, 0x42, 0xdc, 0x06, 0xb1, 0x43, 0x14, 0x77, 0x10, 0xeb, 0x08, 0x71, 0xc7, 0xa1, 0xe3, 0xd0, 0x21, 0x86, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x0d, 0x22, 0x82, 0x20, 0xee, 0xe0, 0x8d, 0xfd, 0x1d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0xbe, 0x41, 0x74, 0xc5, 0xc4, 0x0d, 0x82, 0x85, 0xdf, 0x20, 0x22, 0x08, 0xe2, 0x0e, 0xce, 0x3f, 0xe1, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0x41, 0x44, 0x10, 0xc4, 0x1d, 0xac, 0xde, 0x44, 0x3b, 0x0e, 0x1d, 0x0c, 0xfc, 0x90, 0xe3, 0xd0, 0xc1, 0x88, 0xc2, 0x1d, 0x76, 0x83, 0x51, 0x2f, 0xb9, 0x20, 0x5b, 0x83, 0xb6, 0x40, 0x56, 0x36, 0xc4, 0x70, 0x10, 0x6c, 0x10, 0x5d, 0x33, 0x71, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0xa2, 0xa0, 0x26, 0x6e, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x71, 0x0d, 0x13, 0xb7, 0x41, 0x44, 0x0f, 0xc5, 0x6d, 0xa8, 0xe3, 0x1b, 0x5e, 0xbe, 0x9b, 0x00, 0xff, 0x34, 0x37, 0xbb, 0x30, 0xb6, 0x34, 0xb2, 0x16, 0xb9, 0xb2, 0x39, 0xb8, 0x37, 0xb7, 0xb9, 0x72, 0x83, 0xd8, 0x21, 0x8a, 0x3b, 0x88, 0x60, 0xa7, 0xb8, 0xe3, 0xd0, 0x71, 0xe8, 0x10, 0xc3, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x0d, 0xa2, 0x6e, 0x26, 0xee, 0xe0, 0x59, 0x89, 0x06, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xe3, 0x32, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0xc1, 0xc8, 0x7f, 0x58, 0x1c, 0x76, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x85, 0xdf, 0x60, 0xbc, 0xeb, 0x1c, 0xc4, 0x3a, 0x40, 0xdc, 0xc1, 0x2a, 0xbb, 0xff, 0x83, 0xf6, 0xc4, 0x04, 0x0e, 0x69, 0xb8, 0x0d, 0x46, 0x78, 0xda, 0x82, 0x60, 0x41, 0xb0, 0x41, 0xb4, 0x4c, 0xc5, 0x1d, 0xb4, 0x60, 0x27, 0x70, 0x48, 0xc3, 0x0d, 0x82, 0x05, 0xc1, 0xc2, 0x6f, 0x10, 0x45, 0x53, 0x71, 0x07, 0xad, 0xcf, 0xa1, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0x64, 0xed, 0x86, 0xdf, 0x78, 0x3e, 0xfc, 0xc2, 0x2f, 0xfc, 0x06, 0x51, 0x34, 0x15, 0x77, 0x70, 0x70, 0x46, 0x3f, 0x38, 0xad, 0xe0, 0x1e, 0x3c, 0x8a, 0x90, 0xe7, 0x38, 0x34, 0xec, 0x06, 0x0b, 0x60, 0x7d, 0x16, 0x04, 0x0b, 0xbf, 0xf0, 0x1b, 0x0c, 0x43, 0x9f, 0x83, 0x58, 0x07, 0x88, 0x3b, 0x78, 0x4c, 0x1c, 0xc3, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x43, 0xc3, 0xaf, 0xc3, 0xb8, 0x1c, 0x87, 0x0e, 0x1d, 0xc3, 0x8e, 0xc7, 0xc7, 0xa1, 0x83, 0x70, 0x73, 0x3f, 0x1e, 0x0f, 0x82, 0x0d, 0x89, 0xa9, 0xc5, 0x41, 0xb0, 0x41, 0x94, 0x00, 0xc5, 0x0d, 0xbb, 0xc1, 0xa8, 0x97, 0x5c, 0x90, 0xad, 0x41, 0x5b, 0x20, 0x2b, 0x1b, 0x62, 0x38, 0x08, 0x36, 0x88, 0xfc, 0x81, 0xb8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x06, 0x51, 0x59, 0x10, 0x37, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xb8, 0x86, 0x89, 0x5b, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x04, 0xf8, 0x8e, 0xe9, 0x85, 0xc9, 0xb5, 0xd0, 0x85, 0xad, 0x95, 0xb5, 0x90, 0x85, 0xdd, 0xb9, 0x07, 0x11, 0x88, 0x10, 0xb7, 0x41, 0x9c, 0x80, 0xc5, 0x1d, 0xc4, 0x3a, 0x42, 0xdc, 0x71, 0xe8, 0x38, 0x74, 0x88, 0xe1, 0x20, 0x58, 0x10, 0x2c, 0x08, 0x16, 0x04, 0x1b, 0xc4, 0xcc, 0x42, 0xdc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x1b, 0xc4, 0x57, 0x46, 0xdc, 0x06, 0x11, 0xc1, 0x11, 0xb7, 0x41, 0x4c, 0x79, 0xc4, 0x1d, 0x62, 0x78, 0x1c, 0x1a, 0x04, 0x0b, 0x92, 0x81, 0xf0, 0x1d, 0x2c, 0x1c, 0x4e, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0x10, 0x3b, 0x30, 0x71, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0xbe, 0x41, 0x2b, 0xa5, 0xf9, 0x83, 0x64, 0x60, 0xfc, 0x0e, 0x16, 0x0e, 0x27, 0x2c, 0xfc, 0xc6, 0xf3, 0x0d, 0xa2, 0x2b, 0x26, 0x6e, 0x10, 0x6c, 0x10, 0x3b, 0x30, 0x71, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x85, 0xdf, 0x78, 0xbe, 0x41, 0x34, 0x5f, 0xc4, 0x1d, 0x87, 0x0e, 0x06, 0x7e, 0xc8, 0x71, 0xe8, 0x60, 0xe0, 0x87, 0x1c, 0x87, 0x8e, 0x43, 0x07, 0x23, 0x0a, 0x77, 0xd8, 0x0d, 0x46, 0xbd, 0xe4, 0x82, 0x6c, 0x0d, 0xda, 0x02, 0x59, 0xd9, 0x10, 0xc3, 0x41, 0xb0, 0x41, 0x74, 0xcd, 0xc4, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x87, 0xdf, 0x78, 0x3e, 0x08, 0x36, 0x88, 0x82, 0x9a, 0xb8, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0xc7, 0x35, 0x4c, 0xdc, 0x06, 0xd1, 0xfb, 0x15, 0x77, 0x10, 0xc3, 0x36, 0x71, 0x1b, 0xc4, 0x09, 0x58, 0xdc, 0x41, 0xb4, 0xdc, 0xc4, 0x1d, 0x87, 0x8e, 0x43, 0x87, 0x18, 0x6e, 0x88, 0xe1, 0x20, 0xd8, 0x20, 0x1a, 0xa2, 0xe2, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0xc6, 0x65, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xf8, 0xb3, 0x23, 0x5a, 0x1c, 0x76, 0x83, 0x75, 0x32, 0xfb, 0x1b, 0xc6, 0x65, 0x10, 0x2c, 0x08, 0x16, 0x7e, 0x83, 0x28, 0x9a, 0x8a, 0x3b, 0x68, 0x71, 0x25, 0x6a, 0x90, 0x0c, 0x0c, 0xd5, 0xa1, 0xaf, 0xc6, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x85, 0xdf, 0x20, 0x8a, 0xa6, 0xe2, 0x06, 0xc9, 0xc0, 0x7d, 0x77, 0x30, 0x0c, 0x7d, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x2c, 0x3c, 0x94, 0x19, 0x7e, 0xe3, 0xf9, 0x20, 0x58, 0xf8, 0x0d, 0xa2, 0x68, 0x2a, 0xee, 0x20, 0x99, 0xb2, 0x7a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0xc1, 0x52, 0x17, 0x95, 0x83, 0xe2, 0x50, 0xe3, 0x38, 0x74, 0x1c, 0x3a, 0x18, 0x17, 0x66, 0xc7, 0xa1, 0xe3, 0xf1, 0x71, 0xe8, 0x78, 0x7c, 0x3c, 0x1e, 0x04, 0x6b, 0x10, 0xe3, 0xf7, 0x70, 0x0b, 0xbf, 0xf0, 0x0b, 0x92, 0x81, 0xf4, 0xdf, 0x41, 0xc0, 0xfb, 0x1f, 0x0c, 0x24, 0xa8, 0xe3, 0xdb, 0x06, 0xf1, 0x85, 0x0f, 0x37, 0xfc, 0x06, 0xcb, 0xb8, 0xbc, 0x8e, 0x6f, 0x8b, 0x83, 0x60, 0x71, 0x61, 0x37, 0x78, 0x5f, 0x34, 0xc4, 0x82, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0xbc, 0x50, 0x12, 0xe0, 0xa0, 0xcd, 0x38, 0xff, 0x83, 0xd7, 0x6f, 0x40, 0x0c, 0xbb, 0xb0, 0x0b, 0xbb, 0xb0, 0x0b, 0xb7, 0x71, 0xe8, 0x20, 0x5e, 0x6d, 0x65, 0x36, 0xc4, 0x70, 0xd8, 0x85, 0xdb, 0x38, 0x74, 0x10, 0x71, 0xb0, 0x32, 0x87, 0x74, 0xee, 0x61, 0x7d, 0x73, 0x61, 0x17, 0x6e, 0x43, 0x0c, 0x27, 0x28, 0xed, 0x87, 0x74, 0xee, 0xe1, 0x68, 0x5f, 0x1c, 0x07, 0xf0, 0x70, 0x7b, 0xa3, 0x6b, 0x59, 0x2b, 0xcb, 0x2b, 0x23, 0x1b, 0x04, 0x0b, 0xbb, 0x41, 0xdc, 0xf1, 0xc5, 0x6d, 0x38, 0xc5, 0x86, 0xdd, 0x20, 0x6a, 0xfa, 0xe2, 0x36, 0xc4, 0x70, 0xd8, 0x0d, 0x22, 0xc5, 0x2f, 0x6e, 0xc3, 0x29, 0x36, 0x41, 0xbb, 0xf6, 0x41, 0xb0, 0x06, 0x89, 0xc7, 0x3e, 0x1b, 0x14, 0xa1, 0x09, 0x1b, 0x87, 0xd6, 0xe0, 0xed, 0x06, 0x11, 0x07, 0x4f, 0x4a, 0x88, 0x38, 0xc4, 0x70, 0x10, 0x2c, 0x08, 0x16, 0x24, 0xc3, 0x1d, 0x56, 0x68, 0x0f, 0x06, 0xb6, 0xe8, 0xb0, 0x1b, 0xb4, 0xce, 0x07, 0xb0, 0x61, 0x91, 0x6f, 0xc3, 0xd1, 0x7e, 0xd0, 0xae, 0x15, 0xd4, 0x20, 0x58, 0x10, 0x6c, 0x10, 0x2f, 0x7b, 0x71, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x83, 0x37, 0xd5, 0x50, 0x1c, 0x87, 0x06, 0xc1, 0xc2, 0x2e, 0xec, 0x42, 0x0f, 0x82, 0x24, 0x7a, 0x61, 0x17, 0x6e, 0xc3, 0xd1, 0x7e, 0x50, 0x9c, 0xbe, 0x2c, 0xdc, 0x86, 0x18, 0x4e, 0x30, 0xe9, 0x87, 0xa3, 0xfd, 0x70, 0xb4, 0x6f, 0x10, 0xd7, 0x7f, 0x71, 0x13, 0x94, 0xf5, 0x41, 0xb0, 0xb0, 0x0b, 0xbb, 0xd0, 0x83, 0x22, 0x34, 0x61, 0x61, 0x17, 0x6e, 0xc3, 0xd1, 0x7e, 0x50, 0xca, 0xbd, 0x2c, 0xdc, 0x86, 0x18, 0x4e, 0x50, 0xe9, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0xdf, 0xe0, 0x01, 0x08, 0x11, 0x07, 0x2f, 0x53, 0x88, 0x18, 0x04, 0x0b, 0xbf, 0x20, 0xd8, 0x20, 0xc6, 0x14, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x24, 0x1b, 0xac, 0xb9, 0x40, 0x3a, 0x38, 0x6d, 0x28, 0x1f, 0x87, 0x8e, 0x6f, 0x83, 0x60, 0x71, 0xd8, 0x0d, 0x82, 0x8f, 0x79, 0x0d, 0x47, 0xfb, 0xb0, 0x1b, 0xd6, 0xf7, 0x16, 0x07, 0xf8, 0xdc, 0xde, 0x5a, 0xd6, 0xca, 0xf2, 0x0e, 0xa9, 0x83, 0x41, 0xb0, 0x06, 0x89, 0xc7, 0x3e, 0x1b, 0xac, 0xe5, 0x16, 0xdb, 0xb0, 0x57, 0xb8, 0x41, 0xe1, 0x3e, 0x76, 0x88, 0xe1, 0x20, 0x58, 0x10, 0x2c, 0x48, 0x86, 0x3b, 0x08, 0x78, 0xff, 0x83, 0x81, 0x2d, 0x3a, 0xec, 0x06, 0xa3, 0x5e, 0x72, 0xc3, 0x22, 0xdf, 0xf0, 0x0b, 0xa2, 0x05, 0xf3, 0x41, 0xb0, 0x20, 0x19, 0xb0, 0x7c, 0xbd, 0xef, 0x20, 0x59, 0x69, 0xe5, 0x60, 0xac, 0x39, 0x1f, 0x8f, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0x20, 0x3e, 0x24, 0x66, 0x0e, 0xc9, 0xa5, 0xe3, 0xdb, 0x20, 0xd8, 0x60, 0x59, 0x18, 0xcc, 0xe2, 0xb0, 0x0b, 0xbb, 0x41, 0x30, 0xec, 0x2f, 0xec, 0x06, 0xb1, 0x9a, 0xe3, 0x76, 0xd0, 0xfa, 0x9a, 0xfb, 0xe1, 0x68, 0x5f, 0xd8, 0x0d, 0x8e, 0xc7, 0xeb, 0x1b, 0x4e, 0xb1, 0x61, 0x17, 0xee, 0x20, 0xe0, 0xdf, 0x17, 0x04, 0x0b, 0x82, 0x85, 0xdf, 0xe0, 0x55, 0x63, 0x00, 0x07, 0x6d, 0xc6, 0xf9, 0x1f, 0x9a, 0x02, 0x0d, 0x82, 0x05, 0xc1, 0xc2, 0x2f, 0xfc, 0xc2, 0x2f, 0x48, 0x06, 0x8a, 0xd7, 0xc1, 0x49, 0xe8, 0xf8, 0x60, 0x61, 0x85, 0xd9, 0xc1, 0xf9, 0x89, 0xf6, 0x60, 0xdc, 0x41, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x0f, 0x96, 0x2e, 0xdd, 0x1c, 0x87, 0x86, 0x5d, 0xb8, 0x0d, 0x22, 0x0e, 0x56, 0xe6, 0x90, 0x3a, 0x58, 0xd8, 0x85, 0xdb, 0xd0, 0x02, 0xe8, 0x20, 0xaa, 0xa4, 0xe1, 0x16, 0x76, 0x61, 0x17, 0x7a, 0xb0, 0x3c, 0x5c, 0xec, 0xb0, 0xbe, 0xb9, 0xb0, 0x0b, 0xb7, 0xe1, 0x68, 0x3f, 0x58, 0x85, 0x74, 0xb3, 0x21, 0x86, 0xe3, 0x04, 0xf8, 0xa5, 0xb9, 0xd9, 0x85, 0xb1, 0xa5, 0x91, 0xb5, 0xb0, 0xa5, 0x99, 0x95, 0xe3, 0x04, 0xf8, 0x86, 0xb1, 0xc9, 0x95, 0x85, 0x91, 0xe5, 0xb5, 0x88, 0xbd, 0xbd, 0xd1, 0x95, 0x91, 0xe3, 0x04, 0xf8, 0xad, 0x95, 0xe5, 0xb5, 0xb4, 0xa5, 0xcd, 0xb5, 0x85, 0xd1, 0x8d, 0xa1, 0xc3, 0x6e, 0x10, 0x97, 0xb6, 0x32, 0x1b, 0x62, 0x38, 0xc8, 0x36, 0x34, 0x5f, 0x1f, 0x76, 0xe1, 0x36, 0xc4, 0xf0, 0xa0, 0xd5, 0xbc, 0x80, 0xc5, 0x39, 0x88, 0x84, 0xbf, 0xb8, 0xe1, 0x37, 0x1e, 0x0f, 0xb2, 0x35, 0x68, 0x0b, 0x64, 0x65, 0x43, 0x0c, 0x07, 0xc1, 0x06, 0x4f, 0xd5, 0x03, 0x18, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xf0, 0x8c, 0x3e, 0x80, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x17, 0x37, 0x4c, 0xdc, 0x1a, 0xea, 0xc8, 0x1a, 0x66, 0x68, 0x0d, 0x33, 0xb4, 0x86, 0x19, 0xda, 0xe0, 0x09, 0x1b, 0x18, 0x1b, 0x4e, 0x84, 0x0d, 0x9e, 0xb0, 0x81, 0x71, 0x10, 0xcf, 0x8f, 0x17, 0x1b, 0x4e, 0x84, 0x0d, 0xe2, 0x9f, 0x34, 0x6e, 0x83, 0xc5, 0x6c, 0x50, 0x07, 0x6f, 0xe8, 0x51, 0xde, 0x70, 0x22, 0x6c, 0x10, 0xd1, 0xa4, 0x71, 0x1b, 0x2c, 0x66, 0x83, 0x3a, 0x78, 0xc7, 0x90, 0xf2, 0xc1, 0xeb, 0x95, 0x94, 0x37, 0xd4, 0x91, 0x35, 0xcc, 0xd0, 0x1a, 0x26, 0x6e, 0xc3, 0x74, 0x1e, 0x2c, 0xfd, 0xd3, 0xdf, 0x70, 0x22, 0x6c, 0x10, 0xe3, 0xa8, 0x71, 0x1b, 0x2c, 0x66, 0x83, 0x5a, 0x66, 0xd9, 0xf0, 0x89, 0xcd, 0x1a, 0x9e, 0x27, 0xd9, 0xa0, 0x09, 0xd6, 0xf1, 0x83, 0x36, 0x69, 0x2a, 0x0e, 0x56, 0xd2, 0xe9, 0x1f, 0x4e, 0xb1, 0xc3, 0x29, 0x76, 0x10, 0x59, 0xaa, 0x71, 0x0b, 0xbf, 0x41, 0xac, 0x97, 0xe4, 0x1c, 0x8c, 0x3b, 0xa8, 0x09, 0x04, 0x6b, 0xff, 0x71, 0xe8, 0x38, 0x34, 0xec, 0xc2, 0x1d, 0xc4, 0x0c, 0x6b, 0xdc, 0xc2, 0x2e, 0xdc, 0x06, 0xab, 0x90, 0x6e, 0x26, 0x78, 0xb5, 0x7f, 0x61, 0x17, 0x76, 0x83, 0xc8, 0xdb, 0x8c, 0x5b, 0xd8, 0x85, 0x5d, 0xb8, 0x0d, 0x47, 0xfb, 0x41, 0xe3, 0x91, 0x01, 0x1b, 0x62, 0x38, 0xec, 0x82, 0x60, 0x83, 0x64, 0xac, 0x91, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x12, 0x08, 0x6a, 0xff, 0x83, 0xc4, 0x44, 0x9b, 0xe3, 0xd0, 0x21, 0x9d, 0x7b, 0x48, 0xe7, 0x1e, 0x8e, 0xf6, 0x0d, 0x62, 0xb6, 0x33, 0x6e, 0x10, 0x2c, 0xec, 0xc2, 0x2e, 0x81, 0xc3, 0x6b, 0xff, 0x61, 0x7d, 0x73, 0x0d, 0x31, 0x5c, 0x0c, 0xe0, 0xdb, 0xed, 0xad, 0x65, 0x0e, 0xee, 0xcd, 0x6d, 0xee, 0x4d, 0x6e, 0x0e, 0x2d, 0x0d, 0xae, 0xe5, 0xac, 0x2e, 0x4c, 0x2e, 0xcc, 0x8d, 0xae, 0xac, 0x6c, 0xae, 0xc5, 0x4c, 0xee, 0xad, 0x9d, 0xc0, 0xe9, 0xb5, 0xff, 0x10, 0xc3, 0x61, 0x37, 0x18, 0xf5, 0x92, 0x1b, 0x0c, 0xfc, 0x90, 0x41, 0xb6, 0x06, 0x6d, 0x81, 0xac, 0x6c, 0x88, 0xe1, 0x20, 0xd8, 0x20, 0x9e, 0x6f, 0x2f, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0xc4, 0x41, 0xee, 0xc5, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x8b, 0x1b, 0x26, 0x6e, 0x0d, 0x75, 0x7c, 0xc3, 0xcb, 0x77, 0x73, 0x10, 0x09, 0xb3, 0x71, 0x1b, 0xea, 0xf8, 0xc1, 0xc1, 0x23, 0xe3, 0x20, 0x04, 0xc0, 0x8f, 0x43, 0xc7, 0xa1, 0x83, 0x81, 0x1f, 0x32, 0x4e, 0x80, 0x27, 0x5b, 0x9a, 0x59, 0x59, 0x4b, 0x5b, 0xda, 0x5c, 0x5b, 0x18, 0xdd, 0x18, 0x7a, 0x10, 0xc3, 0x9e, 0x71, 0xe3, 0x04, 0x78, 0xb9, 0xbd, 0xd1, 0xb5, 0xbc, 0xd5, 0xc9, 0xb5, 0xac, 0x95, 0xe5, 0x87, 0x53, 0xec, 0x78, 0x7c, 0x50, 0x32, 0x34, 0x1d, 0x8f, 0x8f, 0xc7, 0xcb, 0xac, 0xc1, 0x53, 0xba, 0x83, 0x36, 0x28, 0x25, 0xc4, 0xd7, 0xa0, 0x64, 0x61, 0x9f, 0x65, 0xd6, 0xa0, 0x05, 0x19, 0xe6, 0x0d, 0xcf, 0x93, 0xac, 0xe1, 0x4e, 0x5b, 0x0d, 0x4a, 0x4d, 0xcb, 0x83, 0x16, 0x64, 0x98, 0x1b, 0x80, 0x6f, 0xb8, 0x3a, 0x31, 0xb6, 0xb4, 0x31, 0x10, 0xb7, 0x32, 0xba, 0xbb, 0x37, 0xb9, 0x35, 0x90, 0x39, 0xba, 0x30, 0xba, 0x32, 0x90, 0x37, 0x33, 0x90, 0x30, 0x90, 0x39, 0xb4, 0x34, 0xb8, 0x0d, 0x1f, 0xb5, 0x6f, 0xf8, 0xbe, 0x7d, 0x83, 0x16, 0x64, 0x98, 0x37, 0x08, 0xfd, 0x92, 0x0d, 0xca, 0x26, 0xcc, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x3f, 0x97, 0x36, 0x78, 0x8c, 0x8d, 0xdd, 0xc1, 0xdb, 0x74, 0x1d, 0xd7, 0xf0, 0xe7, 0xd2, 0x06, 0x0f, 0x61, 0x13, 0x3d, 0x7c, 0xb0, 0x5a, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x6d, 0x50, 0xb2, 0xb0, 0xcf, 0x32, 0x0b, 0xf8, 0x63, 0x6f, 0x6d, 0xe5, 0x86, 0xe7, 0x49, 0xd6, 0x70, 0xa7, 0xcd, 0x00, 0xba, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, 0x20, 0x73, 0x74, 0x61, 0x72, 0xae, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0x2a, 0xcf, 0xd9, 0x83, 0x98, 0xce, 0x5a, 0xda, 0xe0, 0xed, 0x62, 0x2d, 0x6d, 0x50, 0xda, 0x5b, 0xae, 0xe1, 0xcf, 0xa5, 0x01, 0x9e, 0x39, 0xba, 0x30, 0xb9, 0x79, 0x83, 0xd0, 0x2f, 0xd9, 0xa0, 0x44, 0x7c, 0x3f, 0x88, 0x25, 0xad, 0xa5, 0x0d, 0x8a, 0x3e, 0xdd, 0x35, 0x88, 0x9a, 0xe4, 0xb8, 0xd6, 0xf0, 0x15, 0xce, 0x86, 0xaf, 0x5f, 0xd6, 0xf0, 0xb6, 0xce, 0x41, 0x94, 0x2a, 0xc7, 0x6d, 0x50, 0xc2, 0x63, 0x6e, 0xd0, 0x36, 0x5c, 0xe6, 0x06, 0x91, 0xb6, 0x1c, 0xb7, 0xc1, 0x92, 0xfa, 0xa5, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0x37, 0xee, 0x36, 0xbc, 0x7c, 0x77, 0x10, 0x01, 0xca, 0x70, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xf4, 0xa0, 0x6d, 0xb8, 0xcc, 0x36, 0x28, 0xf8, 0x30, 0xd7, 0xf0, 0x89, 0xcd, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0xfa, 0xa3, 0xe0, 0x0e, 0x62, 0xbe, 0x39, 0x6e, 0x83, 0x62, 0x12, 0x73, 0x0d, 0x96, 0x62, 0x54, 0x6d, 0xb8, 0xba, 0x0e, 0x22, 0xb1, 0x67, 0xe9, 0xf0, 0xe5, 0xe4, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0x6d, 0xc3, 0x65, 0x6e, 0x78, 0x5b, 0x67, 0x70, 0xfa, 0xa0, 0x6d, 0xb8, 0xcc, 0x35, 0x88, 0x52, 0xe5, 0xb8, 0x0d, 0xef, 0xf6, 0xac, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0xd9, 0x82, 0xba, 0x41, 0xd9, 0xf4, 0xbe, 0x41, 0xa4, 0x2d, 0xc7, 0x75, 0x10, 0xf3, 0xcd, 0x71, 0x6d, 0xf8, 0x0a, 0x67, 0xc3, 0x5f, 0x34, 0x6b, 0xf8, 0x77, 0x7e, 0x83, 0xd7, 0x58, 0x81, 0x1e, 0xbc, 0x02, 0xc3, 0x6e, 0x83, 0x82, 0x34, 0x76, 0x0d, 0xdf, 0xb7, 0x0f, 0x78, 0x63, 0x75, 0xe2, 0x06, 0x25, 0x74, 0xec, 0x1a, 0xfe, 0x9d, 0xdf, 0x20, 0x82, 0x78, 0xb2, 0x0e, 0xde, 0x89, 0x5c, 0x77, 0x10, 0xa6, 0x63, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0x0f, 0x4a, 0x6e, 0xf0, 0xae, 0x8c, 0x94, 0x0d, 0x0f, 0x4a, 0x6e, 0x10, 0xc5, 0xe2, 0x4d, 0x1b, 0x1e, 0x94, 0xdc, 0x60, 0x95, 0x29, 0xeb, 0x41, 0x2c, 0x58, 0x5e, 0x6d, 0x90, 0xb8, 0x9b, 0xba, 0xc1, 0x33, 0x00, 0x53, 0xda, 0xa0, 0x20, 0x8d, 0x5d, 0xc3, 0xf7, 0xed, 0x03, 0xde, 0x1d, 0xda, 0xbb, 0x41, 0x09, 0x1d, 0xbb, 0x41, 0xdb, 0xd6, 0xe3, 0x07, 0x61, 0x3a, 0xb6, 0x86, 0xaf, 0x5f, 0x36, 0x7c, 0x08, 0xb3, 0xe1, 0xeb, 0x97, 0x0d, 0x1f, 0xc2, 0x6c, 0x78, 0x50, 0x72, 0x83, 0x46, 0xf9, 0xb5, 0x37, 0x3c, 0x28, 0xb9, 0x41, 0xa4, 0xff, 0x4b, 0x1d, 0x44, 0xcf, 0x99, 0xd3, 0x06, 0xc5, 0x8e, 0xe6, 0x1a, 0x3e, 0xb1, 0xd9, 0x20, 0x02, 0x40, 0xe1, 0x36, 0x28, 0x26, 0x31, 0xd7, 0x60, 0x29, 0x46, 0xd5, 0x86, 0xab, 0xeb, 0x20, 0x3e, 0x7f, 0x96, 0x0e, 0x5f, 0x4e, 0xae, 0xe1, 0x92, 0xda, 0x70, 0x8a, 0xad, 0xc1, 0x0b, 0x01, 0x53, 0x36, 0x7c, 0x1c, 0x75, 0xf0, 0x0c, 0xc0, 0x94, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x2c, 0x79, 0xdf, 0xe0, 0x68, 0xad, 0x71, 0x10, 0x5b, 0xd3, 0x71, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x68, 0x77, 0x82, 0x3b, 0x88, 0x3e, 0x9c, 0xa5, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xcb, 0xbe, 0x87, 0x37, 0x88, 0x40, 0x9c, 0xa5, 0x0d, 0x0f, 0xde, 0xac, 0xc1, 0xd1, 0x75, 0x70, 0x0d, 0xbf, 0xb8, 0x6c, 0x78, 0x4c, 0x66, 0x0d, 0x0f, 0x4a, 0x6e, 0x90, 0xc4, 0xc8, 0x79, 0x10, 0xe5, 0xdc, 0x71, 0xd5, 0x41, 0xac, 0x7e, 0xc7, 0xcd, 0x1a, 0x3c, 0xa9, 0xab, 0x63, 0x83, 0x92, 0x85, 0x7d, 0x96, 0x59, 0x83, 0x37, 0x64, 0xa7, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0x98, 0x86, 0x59, 0xda, 0xf0, 0x17, 0xcd, 0x06, 0x4f, 0x3f, 0x97, 0xdb, 0xe0, 0xc4, 0x7e, 0xb3, 0x41, 0x4c, 0x5d, 0x5e, 0x6d, 0x70, 0x62, 0xbf, 0xd9, 0x20, 0x92, 0x6b, 0xd4, 0x36, 0x28, 0x3a, 0x8d, 0x37, 0x88, 0xf4, 0x60, 0xb5, 0x0d, 0xd6, 0xc6, 0xe4, 0x6d, 0x50, 0x18, 0xaa, 0xae, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0x83, 0x58, 0xf8, 0x86, 0xdb, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0x94, 0x2d, 0xa8, 0x07, 0xd1, 0x2d, 0x05, 0xb6, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x0f, 0x9a, 0xbe, 0x1e, 0x5f, 0x83, 0xa5, 0x5f, 0xaf, 0x07, 0xb1, 0x7b, 0xb3, 0xd4, 0x6a, 0x10, 0x9b, 0x3e, 0x6a, 0x1b, 0x7e, 0x51, 0x5a, 0xc3, 0xe7, 0x4a, 0x1b, 0x44, 0x1e, 0x1d, 0xdc, 0x1a, 0xfe, 0x5c, 0xda, 0xe0, 0xd5, 0x2f, 0x74, 0x07, 0xe7, 0xd9, 0xd1, 0x35, 0xfc, 0xb9, 0xb4, 0x41, 0x54, 0x2d, 0xa9, 0x1d, 0x44, 0x09, 0xfc, 0x57, 0x1b, 0xfe, 0xa2, 0xd9, 0xe0, 0x05, 0xff, 0x9a, 0x1b, 0x9c, 0xd8, 0x6f, 0xd6, 0xf0, 0xa0, 0xe4, 0x06, 0xcf, 0x9d, 0xa0, 0x3b, 0x88, 0xf8, 0x1f, 0xb5, 0x0d, 0x8e, 0xae, 0x83, 0x1b, 0xc4, 0xd6, 0x91, 0xda, 0x1a, 0x34, 0x5d, 0x13, 0xba, 0xc1, 0xd2, 0xaf, 0xd7, 0x83, 0xa6, 0x70, 0x42, 0xd7, 0x20, 0x72, 0x92, 0xd4, 0x36, 0x58, 0xfa, 0xf5, 0xba, 0xe1, 0x6d, 0x9d, 0x83, 0x17, 0xa7, 0xd2, 0xad, 0x41, 0xa4, 0x2b, 0xa9, 0x6d, 0xd0, 0x54, 0x1c, 0xd8, 0x86, 0xb7, 0x75, 0x36, 0x88, 0xaa, 0x25, 0xb5, 0x9a, 0x35, 0x78, 0x09, 0x7b, 0xd0, 0x86, 0xbf, 0x68, 0x36, 0x78, 0xfa, 0xb9, 0xdc, 0x06, 0x27, 0xf6, 0x9b, 0x0d, 0x62, 0xea, 0xf2, 0x6a, 0x83, 0x13, 0xfb, 0xcd, 0x06, 0x91, 0x5c, 0xa3, 0xb6, 0x41, 0xd1, 0x69, 0xbc, 0x41, 0xa4, 0x07, 0xab, 0xad, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0x83, 0x97, 0xb0, 0x07, 0x6d, 0xf8, 0xc5, 0x65, 0x0d, 0x3f, 0xc2, 0x0c, 0x4e, 0x1f, 0x44, 0x3d, 0x3b, 0xdc, 0x41, 0x59, 0xe7, 0xb9, 0x1a, 0xbc, 0x13, 0x0e, 0x74, 0xc3, 0x5f, 0x34, 0x1b, 0x3c, 0xfd, 0x5c, 0x6e, 0x83, 0x13, 0xfb, 0xcd, 0x06, 0x31, 0x75, 0x79, 0xb5, 0xc1, 0x89, 0xfd, 0x66, 0x83, 0x48, 0xae, 0x51, 0xdb, 0xa0, 0x30, 0x54, 0xdd, 0x20, 0xc9, 0xe1, 0x69, 0x83, 0xa2, 0xd3, 0x78, 0x83, 0x12, 0xa9, 0x7a, 0x83, 0x28, 0xc8, 0x16, 0xdb, 0xf0, 0x8b, 0xd2, 0x1a, 0xfe, 0x5c, 0xda, 0x60, 0xc9, 0x94, 0xe8, 0xe1, 0x87, 0x9a, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x22, 0x3d, 0x58, 0x6d, 0x0d, 0xef, 0xf6, 0x6c, 0x50, 0xd6, 0xdb, 0x6e, 0x50, 0x54, 0x8a, 0xaf, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0x83, 0x98, 0xab, 0x87, 0x5b, 0xc3, 0xbb, 0x3d, 0x1b, 0x2c, 0xc9, 0x4d, 0xdf, 0x20, 0x11, 0x2e, 0xf8, 0x60, 0x4d, 0x94, 0x68, 0x1b, 0x14, 0x86, 0xaa, 0x1b, 0xc4, 0x7a, 0x7a, 0xdc, 0x86, 0x77, 0x7b, 0x36, 0x88, 0x61, 0xf5, 0xb8, 0x0d, 0xe2, 0x71, 0x3d, 0x6e, 0x0d, 0x96, 0x7e, 0xbd, 0x6e, 0x78, 0xb7, 0x67, 0x83, 0x25, 0xb9, 0xe9, 0x1b, 0x2c, 0x5f, 0x7b, 0x3d, 0x58, 0x13, 0x25, 0xda, 0xe1, 0x14, 0xab, 0xc3, 0x29, 0xb6, 0x1a, 0x3c, 0x98, 0x8e, 0x6b, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x98, 0x86, 0x59, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0xbc, 0x21, 0x3b, 0x6d, 0xc3, 0xbf, 0xf3, 0x1b, 0xbc, 0x5c, 0x30, 0x73, 0x83, 0xa8, 0xac, 0x83, 0xab, 0x0d, 0x7f, 0xd1, 0xac, 0x41, 0xe8, 0x97, 0x6c, 0xb0, 0x0a, 0x32, 0x79, 0x83, 0xb6, 0xad, 0xc7, 0xd7, 0xf0, 0xe7, 0xd2, 0x06, 0x8f, 0xd2, 0xc7, 0x3b, 0x58, 0xaf, 0xf5, 0xdc, 0x86, 0x4f, 0x6c, 0x36, 0x88, 0x00, 0x50, 0xb8, 0x0d, 0x82, 0xf4, 0x74, 0xc3, 0x97, 0x93, 0x6b, 0x10, 0x9f, 0x3f, 0x4b, 0x1b, 0x94, 0x12, 0xe2, 0x1b, 0xcf, 0x37, 0xfc, 0xe2, 0xb2, 0xc1, 0x2a, 0x30, 0xd9, 0x83, 0x98, 0x10, 0x8f, 0x5b, 0x83, 0x68, 0xf7, 0x59, 0x3a, 0x88, 0x29, 0x04, 0xb9, 0x35, 0x88, 0x6c, 0x9e, 0xa5, 0x83, 0x98, 0x42, 0x90, 0x5b, 0x83, 0x30, 0x1d, 0xdb, 0xa0, 0x94, 0x10, 0xdf, 0x78, 0xbe, 0x41, 0x09, 0x8f, 0xb9, 0x06, 0x25, 0x55, 0xf8, 0xc1, 0xcb, 0x05, 0x33, 0xd7, 0xf0, 0x8b, 0xcb, 0x06, 0xcb, 0x9c, 0x64, 0xd7, 0xf0, 0xc6, 0xdd, 0x86, 0x97, 0xef, 0x0e, 0x62, 0xa9, 0x1f, 0xae, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xc9, 0xdd, 0xb0, 0xc1, 0x83, 0xe9, 0xb8, 0x06, 0xaf, 0x0f, 0xe2, 0x71, 0x41, 0x6e, 0x0d, 0xbf, 0xb8, 0x6c, 0xb0, 0xcc, 0x49, 0x76, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0xee, 0x20, 0x8e, 0xfd, 0xe1, 0xda, 0xf0, 0x8b, 0xcb, 0x06, 0xab, 0xc0, 0x64, 0xd7, 0xf0, 0xb6, 0xce, 0x80, 0x77, 0x87, 0xf6, 0x1e, 0xc4, 0x82, 0x83, 0x5c, 0x1d, 0x4e, 0xb1, 0x35, 0x68, 0x73, 0x87, 0x6a, 0x83, 0x55, 0x58, 0x4e, 0x1b, 0xc4, 0xcf, 0xfc, 0xdb, 0x06, 0xab, 0xb0, 0x9c, 0xd6, 0xf0, 0xa0, 0xe4, 0x1a, 0xde, 0xd6, 0x39, 0x88, 0x1c, 0x7f, 0xb5, 0x83, 0x08, 0x9e, 0x7f, 0xdb, 0x60, 0x15, 0x96, 0xd3, 0x1a, 0xde, 0xd6, 0x39, 0x88, 0xca, 0x3a, 0xb8, 0x0d, 0x56, 0x61, 0x39, 0xad, 0xe1, 0x41, 0xc9, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0x64, 0xc7, 0x7c, 0x75, 0x10, 0x1b, 0xcd, 0x4b, 0x1b, 0x94, 0x2c, 0xec, 0xb3, 0xcc, 0x1a, 0xbc, 0x21, 0x3b, 0x6d, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x98, 0x86, 0x59, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0x8c, 0xf9, 0xa7, 0x83, 0xa7, 0x9f, 0xcb, 0xb5, 0xe1, 0x2f, 0x9a, 0x35, 0x08, 0xfd, 0x92, 0x0d, 0xca, 0x26, 0xcc, 0x0d, 0xa2, 0x8d, 0x40, 0xae, 0x0d, 0xd6, 0xa2, 0x33, 0xad, 0x41, 0x21, 0x98, 0x7a, 0x10, 0x6d, 0x04, 0x72, 0x1b, 0x14, 0xa4, 0xb1, 0x6b, 0xf8, 0xbe, 0x7d, 0x83, 0x66, 0xb5, 0xc7, 0x36, 0x28, 0xa1, 0x63, 0x37, 0x88, 0x8e, 0x96, 0xb0, 0x83, 0x30, 0x1d, 0x5b, 0xc3, 0xbb, 0x3d, 0x6b, 0x78, 0x50, 0x72, 0x83, 0x17, 0xd1, 0x07, 0x1f, 0x44, 0x92, 0x8d, 0xda, 0x1a, 0xde, 0xd6, 0x19, 0x3c, 0x3e, 0x28, 0xd1, 0x95, 0xdb, 0xa0, 0x84, 0xc7, 0xdc, 0xa0, 0x9d, 0xf4, 0xb1, 0x35, 0x58, 0xb7, 0xca, 0x34, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0xee, 0x20, 0xea, 0x0e, 0xe2, 0xd6, 0xf0, 0xc6, 0xdd, 0x86, 0x97, 0xef, 0x0e, 0x62, 0x1d, 0x21, 0xae, 0x83, 0x82, 0x22, 0x73, 0x83, 0xa3, 0x0d, 0xdf, 0x1a, 0x94, 0xf0, 0x98, 0x1b, 0x9c, 0xc1, 0x3c, 0xd7, 0x60, 0xdd, 0x2a, 0xd3, 0xac, 0xe1, 0x17, 0x97, 0x0d, 0x22, 0xbe, 0x43, 0x6e, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0xee, 0x20, 0x5a, 0x6e, 0xe2, 0x3a, 0x28, 0x28, 0x32, 0x37, 0x58, 0x85, 0xe5, 0xb4, 0xc1, 0x5b, 0xdf, 0x4c, 0x37, 0x38, 0xb1, 0xdf, 0x6c, 0x70, 0x96, 0x02, 0xdb, 0xe0, 0x9c, 0xbf, 0xb4, 0x86, 0xb7, 0x75, 0x0e, 0x22, 0xe5, 0x0a, 0x6e, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0xdf, 0x9c, 0x0d, 0x0f, 0xde, 0x1c, 0xbc, 0x72, 0xd4, 0x73, 0x83, 0x82, 0x22, 0x73, 0x83, 0x63, 0xb8, 0xc1, 0x86, 0x5f, 0x5c, 0x36, 0x78, 0xe5, 0xa8, 0xe7, 0x06, 0xaf, 0x51, 0xf5, 0xdc, 0xe0, 0xdd, 0x28, 0xd7, 0x1b, 0x44, 0x1e, 0x27, 0xdc, 0x41, 0x59, 0xe7, 0xb9, 0x41, 0xb1, 0xa3, 0xb9, 0x86, 0x77, 0x7b, 0x36, 0x7c, 0xa3, 0xb8, 0x41, 0x04, 0xe2, 0x2c, 0x1d, 0x2c, 0x42, 0x70, 0xdb, 0xa0, 0xa0, 0xc8, 0xdc, 0xe0, 0x18, 0x6e, 0xb0, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0xad, 0x33, 0xc0, 0x33, 0x07, 0x17, 0x76, 0xe7, 0x76, 0x50, 0xd6, 0x79, 0x6e, 0xf8, 0x8b, 0x66, 0x0d, 0x7f, 0x2e, 0x6d, 0x70, 0xcc, 0xf0, 0xdc, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0x9b, 0x30, 0xd7, 0xf0, 0xb9, 0xd2, 0x1a, 0x3e, 0x57, 0x5a, 0xc3, 0x9f, 0x4b, 0x1b, 0xc4, 0x53, 0x8a, 0xdc, 0xe1, 0x87, 0x9a, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0xbd, 0xdd, 0xb9, 0x1b, 0x3e, 0x57, 0xda, 0xf0, 0x43, 0xcd, 0x86, 0x1f, 0x6a, 0x0e, 0x12, 0x1a, 0x30, 0x5b, 0xc3, 0xe7, 0x4a, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0x17, 0xd1, 0x3a, 0x1e, 0xbc, 0xc1, 0xd6, 0x71, 0x83, 0x78, 0x19, 0x8e, 0x5b, 0xc3, 0x9f, 0x4b, 0x1b, 0xb4, 0x70, 0x3a, 0x7e, 0xf0, 0x80, 0x9b, 0xcc, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0x83, 0xe9, 0xb8, 0x36, 0x7c, 0xae, 0xb4, 0xe1, 0x83, 0xd5, 0x83, 0x58, 0xd2, 0x5a, 0xaa, 0x36, 0x38, 0x35, 0x1c, 0x6d, 0x10, 0x37, 0x2f, 0x61, 0x1b, 0xac, 0xc2, 0x72, 0xda, 0x20, 0x56, 0x29, 0xe4, 0x36, 0x38, 0xda, 0xf0, 0xad, 0xe1, 0xdd, 0x9e, 0x0d, 0xe2, 0x18, 0xe9, 0x6b, 0x35, 0xbc, 0x71, 0xb7, 0xe1, 0xe5, 0xbb, 0x83, 0xb5, 0xd3, 0xc5, 0x87, 0x67, 0x26, 0x0f, 0xca, 0x3a, 0xcf, 0x0d, 0x4e, 0xec, 0x37, 0x1b, 0xc4, 0x31, 0xd2, 0xd7, 0x06, 0x47, 0xd7, 0xc1, 0x35, 0x28, 0x0c, 0x55, 0xd7, 0xf0, 0x23, 0xcc, 0xe0, 0xf4, 0x41, 0xac, 0x35, 0xc4, 0x6d, 0x70, 0x62, 0xbf, 0xd9, 0x20, 0x8e, 0x91, 0xbe, 0x36, 0x38, 0x60, 0xd1, 0xad, 0xc1, 0xd1, 0x75, 0x70, 0x35, 0xfc, 0x08, 0x33, 0x38, 0x7d, 0x10, 0x05, 0xed, 0x6e, 0x1b, 0xde, 0xd6, 0x39, 0x78, 0x2e, 0xc1, 0xe3, 0x6a, 0xf8, 0x11, 0x66, 0x70, 0xfa, 0xe0, 0xb1, 0x0d, 0x6a, 0x07, 0x31, 0x79, 0x23, 0xb7, 0x1a, 0x7e, 0x84, 0x19, 0x9c, 0x3e, 0x88, 0x9a, 0x75, 0xb7, 0x83, 0x98, 0xbc, 0x91, 0x5b, 0x0d, 0x3f, 0xc2, 0x0c, 0x4e, 0x1f, 0x44, 0xa1, 0xbb, 0xdb, 0x41, 0x4c, 0xde, 0xc8, 0xad, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x0f, 0xa2, 0x02, 0xde, 0xed, 0x20, 0x26, 0x6f, 0xe4, 0x5a, 0x66, 0x0d, 0xde, 0x23, 0x99, 0xb8, 0xe1, 0xdd, 0x9e, 0x0d, 0xe2, 0x18, 0xe9, 0x6b, 0x0d, 0xe2, 0x32, 0x4d, 0x6d, 0xc3, 0xbb, 0x3d, 0x1b, 0xc4, 0x6f, 0xe5, 0xd7, 0x1a, 0x1e, 0x94, 0xdc, 0x20, 0xde, 0x08, 0xd4, 0x0e, 0x22, 0x78, 0xfe, 0xed, 0x20, 0xee, 0xfc, 0xd3, 0x0e, 0xca, 0x3a, 0xcf, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0xd6, 0xa0, 0x30, 0x54, 0x5d, 0xc3, 0x8f, 0x30, 0x83, 0xd3, 0x07, 0x91, 0x7d, 0x11, 0xb7, 0xc1, 0x89, 0xfd, 0x66, 0x83, 0x38, 0x46, 0xfa, 0xda, 0xe0, 0xe8, 0x3a, 0xb8, 0x1a, 0x7e, 0x84, 0x19, 0x9c, 0x3e, 0x78, 0x11, 0xad, 0xe3, 0x86, 0x77, 0x7b, 0x36, 0x88, 0xf8, 0xd0, 0xa9, 0x83, 0xf5, 0x1a, 0xab, 0xab, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0x83, 0x97, 0xf4, 0xa8, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0x38, 0x46, 0xfa, 0x5a, 0x0d, 0x3f, 0xc2, 0x0c, 0x4e, 0x1f, 0x3c, 0xc6, 0xc6, 0xee, 0x20, 0xfe, 0x82, 0xe4, 0x0e, 0xca, 0x3a, 0xcf, 0x35, 0x28, 0x0c, 0x55, 0x37, 0x88, 0x25, 0x21, 0xb9, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0xe2, 0xb7, 0xf2, 0x6b, 0x0d, 0x0f, 0x4a, 0x6e, 0x10, 0xfd, 0x29, 0x70, 0x07, 0x31, 0x3e, 0x21, 0xb7, 0xc1, 0x89, 0xfd, 0x66, 0x83, 0x38, 0x46, 0xfa, 0xda, 0xe0, 0xe8, 0x3a, 0xb8, 0x1a, 0x7e, 0x84, 0x19, 0x9c, 0x3e, 0x88, 0x8b, 0xb4, 0xa0, 0x0d, 0xef, 0xf6, 0x6c, 0x10, 0xbf, 0x95, 0x5f, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0x08, 0x9c, 0x0d, 0x3b, 0x48, 0x3b, 0x8d, 0x5d, 0xc3, 0xbb, 0x3d, 0x1b, 0x44, 0x7c, 0xe8, 0xd4, 0x1a, 0xac, 0x10, 0x6a, 0xda, 0x60, 0xed, 0x38, 0xe8, 0x06, 0x6b, 0xb0, 0xd1, 0x0f, 0x56, 0xe7, 0xdf, 0xd7, 0x6a, 0xf8, 0x11, 0x66, 0x70, 0xfa, 0xe0, 0x5c, 0x7f, 0x7a, 0x10, 0xf1, 0x47, 0x72, 0xab, 0xe1, 0x47, 0x98, 0xc1, 0xe9, 0x83, 0xf8, 0x55, 0x89, 0x3b, 0x88, 0xbf, 0x20, 0xb9, 0x56, 0xc3, 0x8f, 0x30, 0x83, 0xd3, 0x07, 0x0f, 0xa6, 0xe3, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x71, 0x8c, 0xf4, 0xb5, 0x1a, 0x7e, 0x84, 0x19, 0x9c, 0x3e, 0x28, 0xb9, 0x1b, 0x0e, 0x62, 0xa1, 0x41, 0x6d, 0x35, 0xfc, 0x08, 0x33, 0x38, 0x1d, 0x78, 0x77, 0x68, 0xef, 0x41, 0xbc, 0x9a, 0x7f, 0x1d, 0x94, 0x75, 0x9e, 0xb5, 0x1a, 0xbc, 0x84, 0x3d, 0x68, 0xc3, 0x2f, 0x4a, 0x1b, 0x44, 0xc7, 0x85, 0xdc, 0x86, 0xbf, 0x68, 0xd6, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0x9b, 0x30, 0xd7, 0x20, 0xf4, 0x4b, 0x36, 0x08, 0x29, 0x93, 0x35, 0xfc, 0x3b, 0xbf, 0xe2, 0x38, 0x07, 0x2f, 0x61, 0x0f, 0xaa, 0xda, 0xa0, 0x20, 0x8d, 0xdd, 0x20, 0xee, 0x33, 0xe4, 0x36, 0x88, 0x9e, 0x0d, 0xb9, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0xda, 0x49, 0x1f, 0x5b, 0x83, 0x75, 0xab, 0x4c, 0xb3, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xc6, 0xdd, 0x86, 0x97, 0xef, 0x0e, 0x62, 0x87, 0x28, 0xee, 0x20, 0x4a, 0x3d, 0xe4, 0x0e, 0x0a, 0x8a, 0xcc, 0x0d, 0x0a, 0xd2, 0xd8, 0x35, 0x7c, 0xdf, 0xbe, 0xc1, 0x31, 0xc3, 0x73, 0x83, 0x12, 0x3a, 0x76, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0xb2, 0x09, 0x73, 0x83, 0xb8, 0x32, 0x7f, 0xea, 0x20, 0x4c, 0xc7, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0x8e, 0x91, 0xbe, 0xd6, 0x20, 0x0a, 0x66, 0xe4, 0x0e, 0xa2, 0x13, 0x42, 0xed, 0xa0, 0xac, 0xf3, 0x3c, 0x88, 0x99, 0x97, 0xb0, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0xce, 0x60, 0x9e, 0x6b, 0xb0, 0x6e, 0x95, 0x69, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0x91, 0x49, 0x25, 0xb7, 0x86, 0x37, 0xee, 0x36, 0xbc, 0x7c, 0x77, 0x10, 0xc1, 0x4e, 0x71, 0x1d, 0x14, 0x14, 0x99, 0x1b, 0x1c, 0x6d, 0xf8, 0xd6, 0xe0, 0x18, 0x6e, 0x70, 0xd0, 0xaa, 0x36, 0xd8, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x4b, 0x25, 0x09, 0x37, 0x78, 0xeb, 0x9b, 0xe9, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0xda, 0xa0, 0x05, 0x62, 0xaa, 0x83, 0xf3, 0xec, 0xe8, 0x1a, 0xfe, 0x5c, 0xda, 0x60, 0x1d, 0x98, 0xe8, 0x06, 0xa1, 0x5f, 0xb2, 0x41, 0x89, 0xf8, 0x7e, 0x70, 0x7c, 0x72, 0x5d, 0xc3, 0x9f, 0x4b, 0x1b, 0xac, 0xec, 0x4f, 0x3b, 0x88, 0xbc, 0x28, 0xb9, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x2c, 0x79, 0xdf, 0xe0, 0x68, 0xad, 0xb1, 0x41, 0xd9, 0xf4, 0xbe, 0xc1, 0xda, 0x3f, 0xfa, 0x0e, 0x5a, 0xe5, 0xc5, 0x5a, 0xc3, 0x2f, 0x2e, 0x1b, 0xac, 0xfd, 0xa3, 0xdf, 0xa0, 0x55, 0x6d, 0xb0, 0x36, 0x28, 0x0c, 0x55, 0xd7, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0x94, 0x2d, 0xa8, 0x07, 0xb1, 0x1c, 0x26, 0x77, 0xd0, 0x2a, 0x2f, 0xd6, 0x06, 0x05, 0x69, 0xec, 0x1a, 0xbe, 0x6f, 0x1f, 0xf0, 0xd0, 0xde, 0xe8, 0x0d, 0x4a, 0xe8, 0xd8, 0x0d, 0x62, 0xc7, 0x9f, 0xec, 0x20, 0x4c, 0xc7, 0xd6, 0xf0, 0x6e, 0xcf, 0x06, 0x0b, 0x76, 0xd0, 0x37, 0x68, 0x97, 0x17, 0x6b, 0x83, 0x28, 0x0c, 0x28, 0x6b, 0x83, 0x62, 0x47, 0x73, 0x0d, 0x8a, 0x49, 0xcc, 0x0d, 0x02, 0x36, 0xe8, 0xe0, 0x7d, 0x75, 0x32, 0x1b, 0xb4, 0xaa, 0x0d, 0xb6, 0xe1, 0xdd, 0x9e, 0x0d, 0x9a, 0x22, 0x21, 0xde, 0xa0, 0x55, 0x6d, 0xb0, 0x35, 0xbc, 0xad, 0x33, 0x38, 0x7c, 0xf0, 0x4a, 0x35, 0x99, 0x56, 0x83, 0x77, 0xc2, 0x81, 0x6e, 0xf8, 0x45, 0x69, 0x83, 0xe8, 0xb8, 0x90, 0xdb, 0xf0, 0x17, 0xcd, 0x1a, 0x84, 0x7e, 0xc9, 0x06, 0x65, 0x13, 0xe6, 0x1a, 0x84, 0x7e, 0xc9, 0x06, 0x25, 0x62, 0xfd, 0x06, 0x6d, 0x5b, 0x8f, 0xaf, 0xe1, 0x73, 0xa5, 0x0d, 0xe2, 0xbe, 0x45, 0x6e, 0x83, 0x78, 0x19, 0x8e, 0xdb, 0x20, 0x1a, 0x5e, 0xe4, 0xaa, 0x0d, 0x0a, 0xd2, 0xd8, 0x0d, 0xe2, 0x3e, 0x43, 0x6e, 0x83, 0xe8, 0xd9, 0x90, 0xdb, 0xa0, 0x84, 0xc7, 0xdc, 0xa0, 0x9d, 0xf4, 0xb1, 0x35, 0x58, 0xb7, 0xca, 0x34, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0xee, 0x20, 0x4e, 0xc0, 0xe2, 0x0e, 0xa2, 0xd4, 0x43, 0xee, 0xa0, 0xa0, 0xc8, 0xdc, 0xa0, 0x20, 0x8d, 0x5d, 0xc3, 0xf7, 0xed, 0x1b, 0x1c, 0x33, 0x3c, 0x37, 0x28, 0xa1, 0x63, 0xd7, 0x20, 0xf4, 0x4b, 0x36, 0x28, 0x9b, 0x30, 0xd7, 0x20, 0xf4, 0x4b, 0x36, 0x08, 0x29, 0x93, 0x35, 0x7c, 0xae, 0xb4, 0xc1, 0x79, 0x76, 0x74, 0x83, 0x32, 0x4b, 0x77, 0x83, 0x32, 0x4b, 0xf7, 0xa0, 0x8c, 0xb4, 0xad, 0x83, 0x30, 0x1d, 0x5b, 0x83, 0x53, 0xc3, 0xd1, 0x06, 0x71, 0xf3, 0x12, 0xb6, 0xc1, 0x2a, 0x2c, 0xa7, 0x0d, 0x62, 0x95, 0x42, 0x6e, 0x83, 0xa3, 0x0d, 0xdf, 0x1a, 0xde, 0xed, 0xd9, 0xa0, 0xfd, 0x28, 0xa9, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x1c, 0x23, 0x7d, 0xad, 0x41, 0xd3, 0x35, 0xa1, 0x07, 0x8b, 0xe1, 0xcf, 0xd7, 0x20, 0x0a, 0x66, 0xe4, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x1c, 0x23, 0x7d, 0xad, 0x86, 0x37, 0xee, 0x36, 0xbc, 0x7c, 0x77, 0x10, 0xd9, 0x17, 0x71, 0x87, 0x67, 0x26, 0x0f, 0xca, 0x3a, 0xcf, 0x83, 0xb2, 0xce, 0xb3, 0x0d, 0x4e, 0xec, 0x37, 0x1b, 0xc4, 0x31, 0xd2, 0xd7, 0x06, 0x47, 0xd7, 0xc1, 0x35, 0x28, 0x0c, 0x55, 0x0f, 0xe2, 0x1b, 0x48, 0x6e, 0x0d, 0x0a, 0x43, 0xd5, 0x83, 0x38, 0x12, 0x92, 0xdb, 0x20, 0x2a, 0x89, 0xe4, 0xda, 0xa0, 0x84, 0xc7, 0xdc, 0xe0, 0x0c, 0xe6, 0xb9, 0x06, 0xeb, 0x56, 0x99, 0x66, 0x0d, 0xbf, 0xb8, 0x6c, 0x10, 0xb1, 0x6f, 0x72, 0x07, 0xd1, 0x13, 0x22, 0x77, 0x50, 0x50, 0x64, 0x6e, 0x50, 0x18, 0xaa, 0x6e, 0x50, 0x50, 0x64, 0x6e, 0x50, 0x74, 0x1a, 0x6f, 0xb0, 0x54, 0x92, 0x70, 0x83, 0xb7, 0xbe, 0x99, 0x6e, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0xad, 0xe1, 0x73, 0xa5, 0x0d, 0x22, 0x8f, 0x0e, 0x6e, 0x0d, 0x7f, 0x2e, 0x0d, 0xf8, 0x64, 0x65, 0x65, 0xf4, 0x41, 0x6c, 0xb2, 0xc9, 0xb5, 0x86, 0x3f, 0x97, 0x06, 0xbc, 0xb5, 0x3c, 0xfd, 0x20, 0xa6, 0xd7, 0xe4, 0xda, 0xf0, 0xf5, 0xcb, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xd6, 0xf2, 0xf4, 0x36, 0x7c, 0x90, 0xb3, 0x86, 0x7f, 0x73, 0x36, 0x3c, 0x78, 0xb3, 0xe1, 0x6d, 0x9d, 0x0d, 0x1e, 0x63, 0x63, 0xb7, 0x41, 0xac, 0x00, 0xca, 0xb5, 0x41, 0x4c, 0x07, 0xca, 0x6d, 0x50, 0x74, 0x1a, 0xaf, 0x41, 0x59, 0xf2, 0xbe, 0x41, 0xd9, 0x82, 0xba, 0x41, 0xd9, 0x54, 0xbf, 0x41, 0x4c, 0x07, 0xca, 0xb5, 0x86, 0x77, 0x7b, 0x36, 0x88, 0xeb, 0x8d, 0xb0, 0x0d, 0x12, 0xe1, 0x82, 0xd7, 0xf0, 0x6e, 0xcf, 0x06, 0x25, 0x3e, 0xee, 0x06, 0x0b, 0x83, 0x51, 0x0f, 0x1a, 0xc2, 0x09, 0x6d, 0xc3, 0xdb, 0x3a, 0x07, 0xb1, 0x37, 0x28, 0x77, 0x38, 0xc5, 0xea, 0x70, 0x8a, 0xcd, 0x1a, 0x44, 0x11, 0xac, 0xd0, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x1a, 0xfe, 0x5c, 0xda, 0xa0, 0xe9, 0xeb, 0xf1, 0x83, 0xb6, 0xad, 0xc7, 0xd7, 0xf0, 0xe7, 0xd2, 0x06, 0x8f, 0x19, 0xfe, 0x3c, 0x88, 0x53, 0xea, 0xb8, 0x0d, 0xa2, 0x7d, 0x40, 0x6e, 0x0d, 0x7f, 0x2e, 0x6d, 0xd0, 0x82, 0x0c, 0xf3, 0x86, 0x7f, 0xe7, 0x37, 0x78, 0xfc, 0xf1, 0x60, 0x6d, 0xf8, 0x8b, 0x66, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0x55, 0x90, 0xc9, 0x1b, 0xc4, 0x29, 0x75, 0xdc, 0x1a, 0x84, 0x7e, 0xc9, 0x06, 0xeb, 0x96, 0xa0, 0x0f, 0xa2, 0xc8, 0x40, 0xae, 0x0d, 0x0e, 0x58, 0x74, 0x6b, 0x50, 0x10, 0xcc, 0xae, 0x71, 0xe8, 0xe0, 0x35, 0x56, 0xa0, 0x6b, 0x50, 0x90, 0xc6, 0x0e, 0x78, 0x72, 0x61, 0xe3, 0x1a, 0xde, 0xed, 0xd9, 0x20, 0xfa, 0xa3, 0xe0, 0xd6, 0xf0, 0xb6, 0xce, 0x80, 0x77, 0x87, 0xf6, 0x1e, 0xbc, 0xc6, 0x0a, 0xb4, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0x11, 0xd6, 0x35, 0xbc, 0xcd, 0xba, 0xe1, 0x57, 0xb2, 0x35, 0xfc, 0x9b, 0xb3, 0x86, 0xb7, 0x75, 0x06, 0x3c, 0xb9, 0xb0, 0xb1, 0x83, 0x18, 0x58, 0x5a, 0x5a, 0xc3, 0xbf, 0x39, 0x1b, 0xc4, 0x63, 0xa4, 0xdc, 0x41, 0xcc, 0x32, 0x2d, 0xb5, 0x06, 0xc5, 0x24, 0xe6, 0x06, 0x21, 0xf8, 0x70, 0x10, 0x8f, 0x0b, 0x72, 0xad, 0xc1, 0x32, 0x27, 0xd9, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x8d, 0xbb, 0x0d, 0x2f, 0xdf, 0x1d, 0x44, 0xc2, 0x5f, 0xdc, 0x41, 0x59, 0xe7, 0xb9, 0x41, 0x41, 0x1a, 0xbb, 0x41, 0xc3, 0xd9, 0xda, 0x6b, 0x78, 0x37, 0x6f, 0x83, 0xa8, 0x8a, 0x94, 0xdb, 0xf0, 0x41, 0xce, 0x06, 0xd1, 0x25, 0x29, 0xb7, 0xe1, 0xc1, 0x9b, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0xe2, 0x71, 0x41, 0x6e, 0x83, 0xf0, 0x54, 0xdd, 0xf0, 0xb6, 0xce, 0x06, 0x8f, 0xcd, 0xc9, 0x3c, 0x88, 0x2a, 0x07, 0xb9, 0x0d, 0x0a, 0xd2, 0xd8, 0x35, 0x7c, 0xdf, 0xbe, 0xc1, 0xa2, 0xb9, 0xd7, 0x0d, 0x4a, 0xe8, 0xd8, 0x0d, 0xe2, 0x94, 0x3a, 0xee, 0x20, 0x4c, 0xc7, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xcb, 0xbe, 0x87, 0x37, 0x88, 0xd4, 0x47, 0xb9, 0x0d, 0x5a, 0x47, 0xd7, 0x5e, 0x83, 0xa3, 0xeb, 0xe0, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0x1e, 0x5b, 0x9e, 0x79, 0xf0, 0x1a, 0x2b, 0xd0, 0x35, 0xbc, 0xad, 0xb3, 0x41, 0xd1, 0x7a, 0x72, 0xf0, 0x1a, 0x2b, 0xd0, 0x6a, 0xc3, 0x27, 0x36, 0x6b, 0xf8, 0xdc, 0x65, 0x83, 0x26, 0xcc, 0x47, 0x37, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x36, 0x38, 0x54, 0x97, 0xb5, 0xc1, 0xba, 0xb8, 0xd7, 0x36, 0x28, 0x06, 0x64, 0x37, 0x7c, 0x39, 0xb9, 0x06, 0xcb, 0x9c, 0x64, 0x37, 0xfc, 0xe2, 0xb2, 0x86, 0xb7, 0x75, 0x06, 0xaf, 0x0f, 0x1a, 0xd7, 0x21, 0x3d, 0x28, 0xeb, 0x3c, 0x37, 0x58, 0x05, 0x26, 0x7b, 0xb0, 0x2e, 0xee, 0x75, 0x83, 0x82, 0x34, 0x76, 0xc0, 0x93, 0x0b, 0x1b, 0x37, 0x88, 0x91, 0x47, 0xb9, 0x0d, 0x0a, 0xd2, 0xd8, 0x0d, 0x1a, 0xce, 0xd6, 0x5e, 0xc3, 0x07, 0x39, 0x6b, 0x50, 0x4c, 0x62, 0xae, 0xe1, 0x73, 0xa5, 0x0d, 0x02, 0x47, 0xf5, 0xe0, 0xb8, 0x78, 0x72, 0x10, 0x2b, 0x8e, 0x72, 0x1b, 0xc4, 0x7d, 0xa5, 0xdc, 0x86, 0xb7, 0x75, 0x36, 0x68, 0x38, 0x5b, 0xfb, 0xe0, 0x35, 0x56, 0xa0, 0x1b, 0x14, 0xa4, 0xb1, 0x6b, 0xf8, 0xbe, 0x7d, 0xc0, 0x5b, 0xcb, 0xd3, 0x37, 0x28, 0xa1, 0x63, 0xd7, 0x20, 0xf4, 0x4b, 0x36, 0x08, 0x29, 0x93, 0x35, 0x7c, 0xae, 0xb4, 0x86, 0x3f, 0x97, 0x06, 0x3c, 0xb6, 0x3c, 0xf3, 0xe0, 0x6d, 0xba, 0x8e, 0x6b, 0xf8, 0x73, 0x69, 0x83, 0xa2, 0xf5, 0xe4, 0xe0, 0xb1, 0xf0, 0x9e, 0x75, 0x10, 0xa6, 0x63, 0x6b, 0xf8, 0x20, 0x67, 0x83, 0xb8, 0x18, 0x95, 0x5b, 0xc3, 0xdb, 0x3a, 0x03, 0xde, 0x5a, 0x9e, 0x7e, 0xf0, 0x1a, 0x2b, 0xd0, 0x83, 0x68, 0x4b, 0x95, 0xdb, 0xa0, 0xb4, 0xb7, 0x5c, 0xc3, 0x9f, 0x4b, 0x03, 0x7e, 0x99, 0x9c, 0xdc, 0x7c, 0xb0, 0xfc, 0xdf, 0x7b, 0xc3, 0x57, 0x38, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0x44, 0x82, 0xa0, 0xdc, 0x1a, 0x2c, 0x73, 0x92, 0xdd, 0xa0, 0x84, 0xc7, 0x5c, 0x83, 0xb8, 0x57, 0x95, 0x6b, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x8d, 0xbb, 0x0d, 0x2f, 0xdf, 0x1d, 0x44, 0x92, 0x63, 0xdc, 0x41, 0x59, 0xe7, 0xb9, 0xe1, 0x6d, 0x9d, 0x83, 0xe8, 0x66, 0x95, 0xdb, 0xa0, 0x20, 0x8d, 0xdd, 0x20, 0x0a, 0x32, 0xe5, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xcb, 0xbe, 0x87, 0x37, 0x88, 0xd4, 0x47, 0xb9, 0x0d, 0x5a, 0x47, 0xd7, 0x5e, 0x83, 0xa3, 0xeb, 0xe0, 0x1a, 0x7e, 0x71, 0x59, 0xc3, 0xdb, 0x3a, 0x03, 0x1e, 0x5b, 0x9e, 0x39, 0x78, 0x7a, 0x10, 0x09, 0x82, 0x72, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xa2, 0xf5, 0xe4, 0x20, 0xf6, 0x62, 0xe5, 0xaa, 0x0d, 0x9f, 0xd8, 0x6c, 0x10, 0xa7, 0x9d, 0x72, 0x1b, 0x94, 0xf0, 0x98, 0x1b, 0xbe, 0x9c, 0xdc, 0x20, 0xea, 0x41, 0xe5, 0x36, 0x28, 0xfa, 0x74, 0x37, 0x88, 0x6e, 0x56, 0xb9, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x53, 0x24, 0xc4, 0x1b, 0xc4, 0x96, 0xab, 0xdc, 0x06, 0xf1, 0x01, 0x2a, 0xd7, 0x86, 0x4b, 0x6a, 0xc3, 0x29, 0xb6, 0x06, 0x91, 0x20, 0x28, 0xb7, 0xe1, 0x6d, 0x9d, 0xc1, 0xe9, 0x83, 0x48, 0x10, 0x94, 0x6b, 0x99, 0x35, 0x38, 0x54, 0x97, 0x6d, 0xf8, 0x45, 0x69, 0x83, 0x48, 0x4d, 0x94, 0xdb, 0xf0, 0x17, 0xcd, 0x1a, 0x84, 0x7e, 0xc9, 0x06, 0x65, 0x13, 0xe6, 0x41, 0x14, 0x19, 0xc8, 0x6d, 0x50, 0xf0, 0x61, 0xae, 0x41, 0x31, 0x89, 0xb9, 0x86, 0xcf, 0x95, 0x36, 0x08, 0x62, 0xd3, 0x83, 0xe3, 0xe2, 0xc9, 0x41, 0xac, 0x38, 0xca, 0x6d, 0x50, 0xc2, 0x63, 0x6e, 0x10, 0xa3, 0xa9, 0x72, 0x1b, 0x84, 0xa7, 0xea, 0x06, 0xc5, 0x8e, 0xe6, 0x1a, 0xfe, 0xcd, 0xd9, 0xe0, 0x15, 0x88, 0x33, 0x07, 0x91, 0xfa, 0x28, 0xb7, 0x06, 0xc7, 0x70, 0x83, 0x0d, 0x6f, 0xdc, 0x6d, 0x78, 0xf9, 0xee, 0x20, 0xce, 0x77, 0xe3, 0x36, 0x28, 0x48, 0x63, 0x07, 0x3c, 0xb9, 0xb0, 0x71, 0x83, 0x18, 0x79, 0x94, 0xdb, 0xa0, 0x20, 0x8d, 0x1d, 0xf0, 0xc6, 0xea, 0xc4, 0x35, 0xbc, 0xdb, 0xb3, 0x86, 0x07, 0x25, 0xd7, 0xf0, 0xb6, 0xce, 0x80, 0xe7, 0xf6, 0xc6, 0x76, 0x10, 0x31, 0xd8, 0x71, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xa2, 0xf5, 0x64, 0xf0, 0xf4, 0x20, 0x46, 0x53, 0xe5, 0xda, 0x20, 0x48, 0x4f, 0x37, 0x88, 0xe2, 0x48, 0xb9, 0x35, 0x88, 0xcf, 0x9f, 0xa5, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0xfc, 0x9b, 0xb3, 0x41, 0xa4, 0x3e, 0xca, 0x1d, 0xc4, 0xe3, 0x76, 0xdc, 0x1a, 0x1c, 0xc3, 0x0d, 0x36, 0xbc, 0x71, 0xb7, 0xe1, 0xe5, 0xbb, 0x83, 0xb8, 0xf6, 0x8c, 0xdb, 0xa0, 0x18, 0x90, 0xdd, 0xe0, 0xf1, 0xc7, 0x83, 0x6b, 0x70, 0x0c, 0x37, 0xd8, 0xf0, 0xc6, 0xdd, 0x86, 0x97, 0xef, 0x0e, 0xe2, 0xb8, 0x33, 0x6e, 0x83, 0x62, 0x47, 0x73, 0x0d, 0x8a, 0x49, 0xcc, 0x0d, 0x02, 0x47, 0x75, 0xc0, 0x63, 0xcb, 0x33, 0x0f, 0xa2, 0x05, 0x58, 0x6e, 0x0d, 0x8e, 0xe1, 0x06, 0x1b, 0xde, 0xb8, 0xdb, 0xf0, 0xf2, 0xdd, 0x41, 0x5c, 0x73, 0xc6, 0x1d, 0x14, 0x14, 0x99, 0x6b, 0x10, 0xed, 0x3e, 0x4b, 0x07, 0x05, 0x45, 0xe6, 0x1a, 0x84, 0xe9, 0xd8, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0xf1, 0xb8, 0x20, 0xb7, 0x06, 0xc7, 0x70, 0x83, 0x83, 0xd8, 0xa3, 0x94, 0xdb, 0x60, 0xa5, 0x8b, 0xd3, 0x06, 0x29, 0xe0, 0xa9, 0x6b, 0x78, 0x5b, 0xe7, 0x20, 0xaa, 0x1c, 0xe4, 0x36, 0x58, 0xb7, 0xca, 0x34, 0x6b, 0xf8, 0xc5, 0x65, 0x0d, 0x0f, 0x4a, 0x6e, 0x10, 0xb7, 0x3d, 0x55, 0x07, 0x51, 0xce, 0x1d, 0xb7, 0x86, 0xb7, 0x75, 0x36, 0x68, 0xe1, 0x74, 0xfc, 0x20, 0x05, 0x3c, 0xb5, 0x0d, 0x8a, 0x1d, 0xcd, 0x35, 0xfc, 0x9b, 0xb3, 0x41, 0x04, 0x2c, 0xcb, 0x1d, 0xc4, 0xf3, 0xb2, 0xdc, 0x06, 0x31, 0x28, 0x2c, 0xb7, 0x41, 0xb1, 0xa3, 0xb9, 0x86, 0x7f, 0x73, 0xd6, 0xf0, 0xb6, 0xce, 0x41, 0xf4, 0x16, 0xcb, 0x6d, 0x78, 0x5b, 0x67, 0x83, 0xc7, 0xd8, 0xd8, 0x1d, 0xa4, 0x80, 0xa7, 0xae, 0xc1, 0x31, 0xdc, 0x60, 0xc3, 0x1b, 0x77, 0x1b, 0x5e, 0xbe, 0x3b, 0x88, 0x4f, 0xdd, 0xb8, 0x0d, 0x1f, 0xe4, 0xac, 0xe1, 0x11, 0xd6, 0x35, 0x28, 0x26, 0x31, 0x37, 0x28, 0x52, 0x31, 0x0f, 0x1e, 0x7f, 0x3c, 0xb8, 0x86, 0x5f, 0xc9, 0xd6, 0xa0, 0x98, 0xc4, 0xdc, 0x20, 0x8c, 0x80, 0x36, 0x78, 0x08, 0x9b, 0xe8, 0xe0, 0xf5, 0xc1, 0xe3, 0x8f, 0x07, 0xd7, 0xf0, 0x6e, 0xcf, 0x86, 0x2f, 0x7e, 0x37, 0x88, 0x73, 0x67, 0xb9, 0x35, 0xbc, 0xad, 0xb3, 0xc1, 0x63, 0x6c, 0xec, 0x0e, 0xe2, 0x5b, 0x5a, 0xae, 0xda, 0x20, 0x0e, 0x88, 0xe5, 0x36, 0x58, 0x66, 0xcd, 0x34, 0x6b, 0x78, 0x9b, 0x75, 0xc3, 0xdb, 0x3a, 0x1b, 0x94, 0xdc, 0x0d, 0x1b, 0x3c, 0x98, 0x8e, 0xeb, 0x20, 0x05, 0x3c, 0x75, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x8d, 0xbb, 0x0d, 0x2f, 0xdf, 0x1d, 0x44, 0xc2, 0x6c, 0xdc, 0x1a, 0xde, 0xd6, 0x19, 0xf0, 0xee, 0xd0, 0xde, 0x83, 0x18, 0xb1, 0x96, 0xeb, 0xa0, 0xa0, 0xc8, 0xec, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0xc3, 0x29, 0x76, 0x38, 0xc5, 0x0e, 0xa7, 0xd8, 0xe1, 0x14, 0xdb, 0x70, 0x22, 0x6c, 0x18, 0xef, 0x35, 0x9c, 0x23, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0xbf, 0x21, 0xb9, 0xb4, 0x21, 0x86, 0xc7, 0xe3, 0x43, 0xf3, 0x97, 0xe3, 0xf1, 0x82, 0x60, 0x43, 0x0c, 0x17, 0x87, 0x5f, 0x10, 0x6c, 0x70, 0xb8, 0x92, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x10, 0x98, 0xd8, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0x70, 0x1d, 0x9c, 0x84, 0x8e, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x82, 0x0d, 0x31, 0x5c, 0x1c, 0x04, 0x0b, 0x82, 0x0d, 0xda, 0xeb, 0x5c, 0x39, 0x78, 0x57, 0xb8, 0xd5, 0xa1, 0xf9, 0xcb, 0xf1, 0xf8, 0xd0, 0xa8, 0xe5, 0x38, 0x74, 0x1c, 0x3a, 0x9e, 0x1f, 0x8f, 0x37, 0x88, 0x7a, 0xc0, 0xb6, 0x83, 0xb8, 0xd1, 0x96, 0x5b, 0x66, 0x0d, 0x9e, 0xd7, 0xd7, 0xb2, 0xe1, 0xa3, 0xf6, 0x0d, 0x02, 0xe8, 0x6c, 0xc3, 0x2f, 0x2e, 0x1b, 0x14, 0x14, 0x99, 0x6b, 0xb8, 0xa4, 0xd6, 0x78, 0x7c, 0xf0, 0x3c, 0xe5, 0xdb, 0x5a, 0x0d, 0xe2, 0xd7, 0xc0, 0x6c, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x36, 0x88, 0x58, 0x3c, 0xb3, 0x01, 0x6d, 0x25, 0x06, 0xb6, 0xe1, 0x17, 0xa5, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0x02, 0xdc, 0xf3, 0x83, 0x30, 0x1d, 0xdb, 0xf0, 0xa0, 0xe4, 0x06, 0xa7, 0x23, 0x91, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0x14, 0x99, 0xe5, 0x06, 0xef, 0xca, 0x48, 0x59, 0xc3, 0xbb, 0x3d, 0x1b, 0x34, 0x97, 0x7a, 0xbc, 0x06, 0x6b, 0xa4, 0x9a, 0x36, 0x38, 0xcf, 0x8e, 0x1e, 0x2c, 0x03, 0x3f, 0xaf, 0xc3, 0x29, 0xb6, 0x06, 0xad, 0x02, 0xb9, 0x6c, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0x68, 0x2b, 0x32, 0xb2, 0x83, 0xa8, 0xe9, 0x50, 0x5b, 0x0d, 0x5e, 0x83, 0xaa, 0xb2, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x33, 0xa0, 0xad, 0xc8, 0xcc, 0x36, 0x7c, 0xd4, 0xbe, 0x41, 0x00, 0x9d, 0x6d, 0xf8, 0xc5, 0x65, 0x83, 0x82, 0x22, 0x73, 0x0d, 0x97, 0xd4, 0x1a, 0x8f, 0x0f, 0x5e, 0xff, 0xab, 0x52, 0x87, 0x53, 0xac, 0xc3, 0x29, 0xb6, 0xe1, 0x44, 0xd8, 0x30, 0x6f, 0x6b, 0x38, 0x47, 0x06, 0xd1, 0xc2, 0x0f, 0xbf, 0x41, 0x42, 0xfb, 0xce, 0xf1, 0xfc, 0x78, 0xbc, 0xcc, 0xb2, 0xe1, 0x92, 0xda, 0xa0, 0xa8, 0x11, 0x5f, 0x43, 0x6a, 0x69, 0xc3, 0x83, 0x92, 0x1b, 0xee, 0xa8, 0x0d, 0xef, 0xf6, 0x6c, 0xf0, 0xc4, 0x5f, 0x95, 0x83, 0xd3, 0x16, 0x5a, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x0d, 0xbf, 0x86, 0xd4, 0xc1, 0xc6, 0xa1, 0x43, 0x72, 0x69, 0x10, 0x2c, 0x1e, 0x44, 0xa8, 0x2f, 0xdc, 0x20, 0x58, 0x10, 0x6c, 0xd0, 0x40, 0x61, 0xfe, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x8b, 0x07, 0xef, 0xa8, 0xc0, 0x38, 0x1e, 0x1f, 0x87, 0x06, 0xc1, 0xe2, 0x41, 0xcc, 0x68, 0xcb, 0x0d, 0x82, 0x0d, 0x31, 0x5c, 0x3c, 0x88, 0x62, 0x76, 0xb9, 0xe3, 0xf1, 0x06, 0x6d, 0xb6, 0x34, 0xad, 0x82, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x05, 0x3c, 0xb6, 0x34, 0x71, 0xc0, 0x87, 0x4b, 0x63, 0x63, 0x0f, 0x52, 0xd7, 0xbc, 0x37, 0x78, 0xf8, 0x5b, 0xea, 0xc0, 0x80, 0x85, 0xc2, 0x41, 0xb6, 0x21, 0x2e, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0xa2, 0x8c, 0x5e, 0x6e, 0x83, 0x47, 0xdf, 0xa5, 0x1e, 0xc4, 0x63, 0xbd, 0xdc, 0x20, 0x58, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x94, 0xd1, 0xcb, 0x2d, 0x30, 0x5f, 0x21, 0x1e, 0x98, 0xaf, 0xb0, 0x1a, 0x7e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x51, 0x46, 0x2f, 0xb7, 0xc1, 0x03, 0xf6, 0x52, 0x0f, 0x22, 0x0f, 0x5f, 0x6e, 0xf8, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x44, 0x19, 0xbd, 0xdc, 0x02, 0xf3, 0x15, 0x26, 0x07, 0x91, 0x87, 0x2f, 0x77, 0x48, 0x1d, 0x1c, 0xdf, 0x8e, 0xe7, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0xa2, 0x8c, 0x5e, 0x6e, 0x81, 0x01, 0x8b, 0x3b, 0x88, 0xc7, 0x7a, 0xb9, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x44, 0x19, 0xbd, 0xdc, 0x02, 0x03, 0x16, 0x3b, 0x30, 0x60, 0x61, 0xbb, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x28, 0xa3, 0x97, 0x5b, 0x60, 0xc0, 0xe2, 0x07, 0x06, 0x2c, 0x84, 0x07, 0x0b, 0x67, 0x8c, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x10, 0x65, 0xf4, 0x72, 0x0b, 0x0c, 0x58, 0x48, 0x07, 0x06, 0x2c, 0x4c, 0x0e, 0x7b, 0x85, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0xa2, 0x8c, 0x5e, 0x6e, 0x81, 0x01, 0x0b, 0x9b, 0x81, 0x01, 0x0b, 0xd3, 0xe1, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x10, 0x65, 0xf4, 0x72, 0x0b, 0x0c, 0x58, 0x58, 0x1d, 0x44, 0x90, 0xc0, 0xdc, 0xf0, 0x0b, 0xb2, 0x35, 0x48, 0xc4, 0x07, 0x1e, 0x37, 0x88, 0x32, 0x7a, 0xb9, 0x05, 0x06, 0x2c, 0xec, 0x0e, 0x22, 0x48, 0x60, 0xee, 0x90, 0xaa, 0x39, 0xbe, 0x1d, 0x87, 0x06, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0x44, 0x19, 0xbd, 0xdc, 0x02, 0x03, 0x16, 0xc6, 0x03, 0x03, 0x16, 0xfa, 0x16, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0x10, 0x65, 0xf4, 0x72, 0x0b, 0x0c, 0x58, 0x58, 0x0f, 0x0c, 0x58, 0xa8, 0x1a, 0xb2, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x28, 0xa3, 0x97, 0x5b, 0x60, 0xc0, 0x42, 0xc1, 0xc0, 0x80, 0x85, 0x8e, 0xe3, 0xd0, 0x20, 0x5b, 0x83, 0x44, 0x7c, 0xe0, 0x71, 0x83, 0x28, 0xa3, 0x97, 0x5b, 0x60, 0xc0, 0x42, 0xc9, 0xc0, 0x80, 0x85, 0xa6, 0x43, 0xb6, 0x62, 0x90, 0xad, 0x41, 0x22, 0x3e, 0xf0, 0xb8, 0x41, 0x94, 0xd1, 0xcb, 0x2d, 0x30, 0x60, 0xa1, 0x6b, 0x60, 0xc0, 0x42, 0xdd, 0x71, 0x68, 0x0d, 0x62, 0x7e, 0x5e, 0x6e, 0x0d, 0x81, 0x58, 0x83, 0xb7, 0x6a, 0x60, 0x0c, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x1e, 0x44, 0xa4, 0xa9, 0xcc, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0xdc, 0xe0, 0xbd, 0x68, 0x24, 0x87, 0xd4, 0xd2, 0xf1, 0x78, 0x83, 0x36, 0x5b, 0x9a, 0x56, 0x43, 0x20, 0xd6, 0xe0, 0x09, 0x1b, 0x18, 0x83, 0x6c, 0x0d, 0x12, 0xf1, 0x81, 0xc7, 0x0d, 0x5e, 0xc4, 0x68, 0xb3, 0x30, 0x39, 0xb0, 0xc1, 0x11, 0x1d, 0x7e, 0x41, 0xb6, 0x06, 0x89, 0xf8, 0xc0, 0xe3, 0x06, 0x2f, 0x62, 0xb4, 0x59, 0x98, 0xb8, 0x61, 0x42, 0x76, 0x30, 0xfc, 0x63, 0x07, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x83, 0xe8, 0x7c, 0x0a, 0x3a, 0x88, 0x35, 0x88, 0xb9, 0xe1, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0x22, 0x46, 0x9b, 0x85, 0xcd, 0x83, 0x58, 0x83, 0x98, 0x5b, 0x3c, 0x78, 0xea, 0x21, 0xcf, 0xf1, 0x78, 0x90, 0xad, 0x21, 0x0d, 0x34, 0x6e, 0xf0, 0xfc, 0x22, 0x92, 0x05, 0xd9, 0x1a, 0x24, 0xe2, 0x03, 0x8f, 0x1b, 0xbc, 0x88, 0xd1, 0x66, 0x83, 0x48, 0x96, 0x0b, 0x1a, 0x2e, 0x4c, 0x8e, 0xe7, 0x1d, 0x8f, 0x37, 0x68, 0xb3, 0xa5, 0x69, 0x35, 0x04, 0x62, 0x35, 0x14, 0xd3, 0xd5, 0x50, 0x4c, 0x57, 0xc3, 0x0c, 0xad, 0x61, 0xee, 0x57, 0x01, 0x6f, 0xee, 0x8d, 0x9d, 0x83, 0x76, 0x86, 0xc1, 0x0e, 0xa7, 0x58, 0x1b, 0x26, 0x6e, 0x0d, 0x13, 0xb7, 0x86, 0x3a, 0xb2, 0xc1, 0x83, 0x37, 0x30, 0x0e, 0x5e, 0xed, 0x21, 0x72, 0xf0, 0xc8, 0x6d, 0x93, 0x0d, 0x13, 0xb7, 0xc1, 0x7b, 0x6e, 0x4d, 0x36, 0x4c, 0xdc, 0x06, 0xcf, 0xa8, 0x35, 0x39, 0x78, 0xd9, 0x06, 0xc6, 0x86, 0x13, 0x61, 0x83, 0x58, 0xc1, 0x98, 0x5b, 0xc3, 0x39, 0xb2, 0x20, 0xd8, 0xe0, 0x8d, 0xc4, 0x3a, 0x8b, 0x83, 0x6c, 0x0d, 0x79, 0xec, 0xc5, 0x41, 0xb0, 0x41, 0x23, 0xd7, 0x2b, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x0d, 0x9a, 0xdf, 0x5e, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x71, 0x43, 0x1d, 0xdf, 0xf0, 0xf2, 0xdd, 0x1c, 0x3c, 0xaf, 0xaf, 0x65, 0xf8, 0x8d, 0xe7, 0x07, 0x8f, 0x0e, 0xdf, 0x39, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0xc3, 0x2f, 0x88, 0x16, 0xb4, 0x0f, 0xb2, 0x35, 0xb4, 0x5f, 0x1f, 0x76, 0x83, 0x37, 0x36, 0x6c, 0x6c, 0x88, 0xe1, 0xb0, 0x0b, 0xb7, 0xc1, 0x8b, 0xf4, 0x35, 0x0e, 0xd1, 0xdc, 0x10, 0xc3, 0x61, 0x37, 0x78, 0x10, 0xc2, 0xc6, 0x86, 0x18, 0x0e, 0xbb, 0xc1, 0x93, 0x30, 0x36, 0x36, 0xc4, 0xf0, 0xe0, 0xdd, 0x12, 0x1b, 0x07, 0x41, 0xe9, 0x7d, 0x3c, 0x1e, 0x7e, 0x41, 0xb4, 0x40, 0xfe, 0x7d, 0x10, 0x2c, 0x08, 0x36, 0x68, 0x12, 0x60, 0x60, 0x90, 0x0c, 0x94, 0xbf, 0x83, 0x67, 0xef, 0x94, 0x1c, 0x3c, 0x26, 0x8e, 0xe6, 0x78, 0x3c, 0x08, 0x16, 0x04, 0x0b, 0xbf, 0x20, 0x19, 0x38, 0xdf, 0x0e, 0x02, 0xde, 0xff, 0xa0, 0x64, 0x68, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0x41, 0xe6, 0x7e, 0xf8, 0x8d, 0xe7, 0x6b, 0xd0, 0x16, 0x13, 0xc0, 0xc1, 0xab, 0x9a, 0x77, 0xd6, 0xe0, 0x81, 0x6e, 0x25, 0x83, 0x64, 0x20, 0x4e, 0x07, 0xe3, 0x5d, 0x67, 0x0d, 0x1e, 0xa7, 0x57, 0x32, 0x08, 0x16, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0x08, 0x16, 0x04, 0x1b, 0xb4, 0x85, 0x79, 0x7e, 0xb0, 0x30, 0xf9, 0xe7, 0xd0, 0xfc, 0xe5, 0x78, 0x3c, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xf0, 0x0b, 0x82, 0x0d, 0x46, 0x6c, 0xeb, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x64, 0xfa, 0x8c, 0x83, 0x77, 0x47, 0xd9, 0x1c, 0x87, 0x8e, 0xe7, 0xc7, 0xa1, 0x35, 0x78, 0xac, 0x5f, 0xc9, 0x20, 0xd8, 0x20, 0x72, 0x53, 0xe6, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0x41, 0xb0, 0xc1, 0x88, 0x6d, 0x1d, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x10, 0xa9, 0xaa, 0x36, 0x07, 0x0f, 0xc7, 0xb2, 0x39, 0x0e, 0x1d, 0xcf, 0x8f, 0x43, 0x87, 0x18, 0x1e, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0xbf, 0x20, 0x58, 0x10, 0x2c, 0xfc, 0x06, 0x23, 0xf8, 0xf4, 0x60, 0xdc, 0x41, 0x0d, 0x92, 0xc1, 0xad, 0x41, 0xb4, 0xb0, 0x0b, 0xbf, 0xf1, 0xfc, 0x20, 0xae, 0xad, 0x79, 0x0e, 0x89, 0x99, 0xe3, 0xd0, 0xa1, 0x29, 0xd0, 0xc1, 0x92, 0x1c, 0x9a, 0x61, 0x37, 0x58, 0x00, 0xeb, 0xb3, 0x06, 0x41, 0x16, 0x3f, 0x88, 0x16, 0xa4, 0x07, 0x83, 0x35, 0xf6, 0xb0, 0x42, 0x3b, 0xc8, 0x36, 0x58, 0xca, 0x11, 0x34, 0xfc, 0x06, 0x21, 0x00, 0x7e, 0x7c, 0x3b, 0x0e, 0x1d, 0x8f, 0x17, 0x04, 0x1b, 0x62, 0xb8, 0x38, 0xfc, 0x82, 0x60, 0x83, 0x11, 0xdb, 0x3a, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x20, 0x52, 0x55, 0x6d, 0x86, 0xdf, 0x78, 0x3e, 0x08, 0x16, 0x24, 0x03, 0xe1, 0x3a, 0x18, 0x86, 0x3e, 0x87, 0x46, 0x2d, 0xc7, 0xa1, 0xe3, 0xf9, 0xf1, 0x78, 0x41, 0xb0, 0xc1, 0xc8, 0x7f, 0x58, 0x1c, 0x04, 0x0b, 0xbb, 0x41, 0x23, 0x1b, 0x23, 0x0b, 0x82, 0x05, 0xc1, 0x82, 0x64, 0xe0, 0x5e, 0x3b, 0x08, 0x78, 0xff, 0x43, 0x0b, 0xb0, 0x61, 0x37, 0x18, 0xf5, 0x92, 0x1b, 0x62, 0xb8, 0x21, 0x86, 0x07, 0x2b, 0x44, 0x82, 0x86, 0x5d, 0xd8, 0x0d, 0x46, 0x2f, 0xd6, 0xc2, 0x6e, 0x30, 0x4c, 0x79, 0x17, 0x76, 0x83, 0xc4, 0xae, 0x9f, 0x85, 0x5b, 0x3c, 0x78, 0x90, 0x4f, 0xc8, 0xa1, 0x93, 0xda, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x87, 0xa3, 0x7d, 0x0d, 0x31, 0x1c, 0x7e, 0x83, 0xa0, 0xf4, 0xde, 0x70, 0xb4, 0x1f, 0x34, 0x13, 0xed, 0x34, 0xc8, 0xd6, 0xd0, 0x7e, 0x7d, 0xd8, 0x0d, 0x46, 0x2f, 0xd6, 0xc2, 0x6e, 0x30, 0x4c, 0x79, 0x17, 0x76, 0x83, 0xc4, 0xae, 0x9f, 0x85, 0xdb, 0x20, 0x62, 0xd8, 0x4b, 0x0e, 0x9d, 0xd4, 0x0e, 0x47, 0xfb, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x1b, 0x62, 0xb8, 0x21, 0x86, 0x1b, 0x9a, 0x70, 0xad, 0x41, 0x90, 0x44, 0x6f, 0x68, 0xc6, 0xb3, 0x41, 0xc1, 0xf0, 0x78, 0xf0, 0xa6, 0x1a, 0x8a, 0x83, 0x71, 0xaa, 0x3c, 0xec, 0x06, 0xa3, 0x5e, 0x72, 0x43, 0x0c, 0x07, 0xc1, 0x82, 0x60, 0x41, 0xb0, 0xf0, 0x1b, 0xbc, 0x74, 0xce, 0xe6, 0x60, 0xdc, 0x41, 0x0d, 0x92, 0xc1, 0x6c, 0x10, 0x2d, 0xec, 0xc2, 0x6f, 0x3c, 0xdf, 0x60, 0xf0, 0x4e, 0x1e, 0x8c, 0x37, 0x9d, 0x83, 0x10, 0xf1, 0x3f, 0x0e, 0x0d, 0x92, 0x21, 0x83, 0x68, 0x61, 0x37, 0xc4, 0x7f, 0x83, 0x81, 0x1f, 0x32, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0x08, 0x01, 0xf0, 0x83, 0x66, 0xa2, 0x9d, 0x8e, 0x43, 0xc3, 0x2e, 0xec, 0x06, 0xa3, 0x5e, 0x72, 0x43, 0x0c, 0x87, 0xdd, 0x20, 0xb4, 0xdc, 0x0f, 0xe9, 0xdc, 0x0d, 0x31, 0x1c, 0x04, 0x0b, 0xbf, 0xc1, 0x60, 0x8d, 0x3d, 0x88, 0x07, 0x78, 0xb9, 0x61, 0x37, 0xf4, 0x10, 0x5a, 0x43, 0x0c, 0x17, 0x0f, 0x9e, 0xfc, 0x1a, 0xb2, 0x20, 0x58, 0x90, 0x0c, 0x76, 0x07, 0xc3, 0x3f, 0x76, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0xe1, 0x37, 0xe4, 0x6b, 0x0f, 0x9a, 0x89, 0x76, 0x3a, 0x0e, 0x1d, 0x87, 0x0e, 0xc6, 0xbf, 0xe4, 0xf1, 0x78, 0x10, 0x2c, 0x6e, 0x90, 0x06, 0x90, 0x71, 0x10, 0x00, 0xf7, 0x8b, 0xc3, 0x2f, 0x88, 0x16, 0x88, 0xfa, 0x86, 0x68, 0x0e, 0x82, 0x0d, 0x22, 0x88, 0x61, 0x67, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x53, 0x4b, 0x4e, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x86, 0x62, 0xd1, 0x06, 0x0f, 0x40, 0x88, 0x38, 0x64, 0xed, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0x20, 0x5b, 0x43, 0x1e, 0x7b, 0x71, 0x10, 0x6c, 0xd0, 0xc8, 0xf5, 0xca, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0xe6, 0xb7, 0x57, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x5f, 0xdc, 0x30, 0x71, 0x1b, 0xc4, 0x2e, 0x41, 0xc6, 0xc1, 0x33, 0x8c, 0x68, 0x86, 0xdf, 0x78, 0xbe, 0x41, 0x1c, 0xb7, 0x59, 0x1c, 0x3a, 0xa9, 0x1d, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0x41, 0xb0, 0xf0, 0x0b, 0x82, 0x05, 0xc1, 0x06, 0xb1, 0x1a, 0x33, 0x37, 0x48, 0x06, 0xe7, 0x0e, 0x22, 0x4e, 0x66, 0xee, 0xd0, 0x41, 0xe3, 0x60, 0x49, 0x0e, 0xcd, 0x41, 0x84, 0xcf, 0xcc, 0x1d, 0x8f, 0x97, 0x59, 0x83, 0xe7, 0xf5, 0xb5, 0x6c, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x06, 0xef, 0xa6, 0x7a, 0x1e, 0x80, 0xd7, 0x3a, 0xb8, 0x33, 0xb9, 0x30, 0xb2, 0x32, 0x10, 0x33, 0xb9, 0xb7, 0x36, 0x10, 0x38, 0xb9, 0x32, 0xbb, 0xb4, 0xb7, 0xba, 0x39, 0x90, 0x39, 0xba, 0x30, 0xba, 0xb2, 0x0d, 0xbf, 0x28, 0xad, 0xe1, 0xcf, 0xa5, 0x01, 0x0f, 0x2d, 0x4d, 0xde, 0x60, 0x11, 0x6b, 0xd5, 0x06, 0xaf, 0x8b, 0x04, 0x39, 0x78, 0x48, 0x33, 0xca, 0x86, 0xbf, 0x68, 0x36, 0x28, 0x52, 0x31, 0x37, 0x58, 0x52, 0xbf, 0xb4, 0xc1, 0x43, 0xf9, 0x5a, 0x36, 0x28, 0xfa, 0x74, 0x37, 0x78, 0x36, 0xb3, 0xca, 0x1a, 0x04, 0xe9, 0xe9, 0x1a, 0x87, 0x06, 0x3c, 0xb4, 0x34, 0xb9, 0xd5, 0x20, 0xd8, 0x4c, 0x37, 0x78, 0x32, 0x26, 0xc8, 0x06, 0x6f, 0xd7, 0x04, 0xd9, 0xe0, 0xf9, 0x9c, 0x20, 0x1b, 0xbc, 0xe3, 0x13, 0x64, 0x83, 0x07, 0x85, 0x82, 0xb4, 0xe1, 0x6d, 0x9d, 0x0d, 0x1e, 0x54, 0x03, 0x72, 0x10, 0x15, 0x5d, 0x73, 0x6d, 0x50, 0xf4, 0xe9, 0x6e, 0xf0, 0xc4, 0x77, 0x94, 0x0d, 0x1e, 0x78, 0xaf, 0xb2, 0xc1, 0x89, 0xfd, 0x66, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x5e, 0x91, 0xba, 0xb2, 0xc1, 0xfb, 0xae, 0x57, 0x0e, 0x5e, 0xb2, 0xba, 0xb2, 0x41, 0x41, 0x1a, 0xbb, 0x86, 0xef, 0xdb, 0x07, 0x3c, 0xbd, 0x32, 0x73, 0x83, 0x12, 0x3a, 0x76, 0x83, 0xe7, 0x0c, 0xab, 0x1c, 0x84, 0xe9, 0xd8, 0x1a, 0x1e, 0x94, 0xdc, 0xe0, 0xa9, 0xc8, 0x29, 0x1b, 0xde, 0xed, 0x59, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0x36, 0xac, 0x66, 0xd7, 0xf0, 0xa0, 0xe4, 0x06, 0x85, 0xfc, 0xfa, 0xc1, 0x5b, 0x30, 0x56, 0xd6, 0xf0, 0x8b, 0xcb, 0x06, 0xef, 0xca, 0x48, 0x39, 0x68, 0xfd, 0x56, 0xed, 0xe0, 0x65, 0xcc, 0x2a, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0x37, 0x0b, 0x80, 0x1c, 0x44, 0x45, 0xd7, 0x5c, 0x1b, 0x04, 0xe9, 0xe9, 0x1a, 0x87, 0x06, 0x3c, 0xbd, 0x32, 0xb3, 0x35, 0x08, 0xd8, 0xa0, 0x0d, 0xbf, 0xb8, 0xac, 0xe1, 0x6d, 0x9d, 0xc1, 0xe1, 0xc1, 0xe1, 0x83, 0x28, 0x3f, 0x9b, 0x5b, 0xc3, 0x25, 0xb5, 0x41, 0x24, 0x8a, 0xcb, 0xad, 0xc1, 0xb3, 0x99, 0x55, 0x36, 0xbc, 0xad, 0x33, 0x78, 0x7c, 0x10, 0x01, 0x69, 0x73, 0xb5, 0x06, 0x61, 0x04, 0xb4, 0xe1, 0x41, 0xc9, 0x0d, 0x02, 0x90, 0x6d, 0xc3, 0xdb, 0x3a, 0x07, 0x11, 0x90, 0x36, 0xd7, 0x6a, 0x10, 0xbf, 0x06, 0x66, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0x41, 0xc4, 0xe2, 0x99, 0x0d, 0xe0, 0x5f, 0x86, 0x47, 0x57, 0x26, 0xe7, 0x16, 0xc6, 0x06, 0x32, 0xf6, 0xd6, 0x06, 0x57, 0x47, 0x57, 0xb6, 0xe1, 0x79, 0x92, 0x0d, 0xe2, 0x70, 0x5c, 0x6e, 0xc3, 0x2f, 0x4a, 0x1b, 0x34, 0xd9, 0x79, 0xbc, 0xe1, 0x41, 0xc9, 0x0d, 0x4e, 0x47, 0x22, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x29, 0x32, 0xcb, 0x0d, 0x1e, 0x60, 0x92, 0x72, 0xd0, 0x1e, 0xea, 0xf1, 0xe1, 0x14, 0x5b, 0x83, 0x56, 0x81, 0x5c, 0x36, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x83, 0x07, 0xd4, 0xa9, 0x0c, 0xe0, 0x5f, 0x86, 0x47, 0x57, 0x26, 0xe7, 0x16, 0xc6, 0x06, 0x92, 0xe6, 0x36, 0x07, 0x57, 0x36, 0x46, 0xb7, 0xe1, 0x79, 0x92, 0x35, 0xdc, 0x69, 0x1b, 0x3c, 0xa0, 0x4e, 0xe5, 0x20, 0x6e, 0xd1, 0xe5, 0x36, 0xfc, 0xa2, 0xb4, 0x86, 0xcf, 0x95, 0x36, 0x78, 0x27, 0x9f, 0xca, 0x1a, 0xfe, 0x5c, 0xda, 0xa0, 0x45, 0xd2, 0xde, 0x0d, 0x42, 0xbf, 0x64, 0x83, 0x55, 0x90, 0xc9, 0x1b, 0x9c, 0x91, 0x50, 0xd7, 0x20, 0x68, 0x7f, 0xd6, 0xf0, 0xb9, 0xd2, 0x06, 0x0f, 0xbd, 0x69, 0x5f, 0xc3, 0x9f, 0x4b, 0x1b, 0x2c, 0x2f, 0x82, 0x3b, 0x78, 0x2c, 0x6f, 0xc8, 0x1a, 0xfe, 0x5c, 0xda, 0xe0, 0xf8, 0xc2, 0x76, 0xf0, 0x28, 0xbc, 0x90, 0x35, 0xfc, 0xb9, 0xb4, 0x41, 0x43, 0xab, 0xe0, 0x07, 0xef, 0xb3, 0x95, 0x6d, 0x0d, 0x9f, 0x2b, 0xad, 0x21, 0x03, 0xbe, 0xe1, 0xe5, 0xbb, 0x83, 0x07, 0xf9, 0x84, 0x1c, 0xbc, 0xf4, 0x4f, 0xa5, 0xda, 0xf0, 0x17, 0xcd, 0x1a, 0x84, 0x7e, 0xc9, 0x06, 0x65, 0x13, 0xe6, 0xc1, 0xab, 0x7c, 0x4f, 0x36, 0x28, 0x48, 0x63, 0xd7, 0xf0, 0x7d, 0xfb, 0x80, 0x87, 0x16, 0x06, 0x6f, 0x50, 0x42, 0xc7, 0xae, 0x41, 0xe8, 0x97, 0x6c, 0x50, 0x36, 0x61, 0xae, 0xe1, 0x73, 0xa5, 0x35, 0xfc, 0xb9, 0xb4, 0xc1, 0x22, 0xe1, 0xd9, 0xc3, 0x07, 0xab, 0x07, 0x2f, 0xfd, 0x53, 0xe9, 0x20, 0x4c, 0xc7, 0xd6, 0x20, 0x48, 0x4f, 0x37, 0x68, 0x75, 0xb7, 0x77, 0x0d, 0xda, 0x17, 0x04, 0xdc, 0xf0, 0x89, 0xcd, 0x1a, 0x3e, 0x77, 0xd9, 0x60, 0xbd, 0x71, 0xf7, 0x86, 0x77, 0x7b, 0x36, 0x78, 0xce, 0x32, 0xcc, 0x1a, 0xde, 0xd6, 0x19, 0x1c, 0x3e, 0x68, 0x75, 0xb7, 0xb7, 0x0d, 0x4a, 0x78, 0xcc, 0x0d, 0x5f, 0x4e, 0x6e, 0x50, 0x50, 0x64, 0x6e, 0x70, 0x0c, 0x37, 0xd8, 0xf0, 0x8b, 0xcb, 0x06, 0x05, 0x6c, 0xfe, 0xc1, 0xe3, 0xa6, 0x61, 0x56, 0xc3, 0xe7, 0x4a, 0x1b, 0x84, 0x11, 0xd0, 0x06, 0xb1, 0x95, 0x37, 0x77, 0x70, 0x88, 0xe9, 0xd8, 0xe0, 0x18, 0x6e, 0xb0, 0xe1, 0x41, 0xc9, 0x35, 0xfc, 0xe2, 0xb2, 0x41, 0x01, 0x9b, 0x7f, 0xf0, 0xd8, 0xf1, 0x96, 0x83, 0x98, 0x02, 0x9c, 0x5b, 0x0d, 0x9f, 0x2b, 0x6d, 0x10, 0x46, 0x40, 0x1b, 0x3c, 0xf4, 0xa6, 0xfd, 0xe0, 0x10, 0xd3, 0xb1, 0xc1, 0x31, 0xdc, 0x60, 0xc3, 0x2f, 0x2e, 0x1b, 0x14, 0x39, 0xad, 0x6b, 0x78, 0x5b, 0x67, 0x83, 0xe5, 0x45, 0x70, 0x07, 0x91, 0x08, 0x38, 0xb7, 0x86, 0x5f, 0x5c, 0x36, 0x78, 0x71, 0x4c, 0xca, 0x1a, 0xde, 0xd6, 0xd9, 0xe0, 0xf8, 0xc2, 0x76, 0x10, 0x89, 0x80, 0x73, 0x07, 0x8f, 0x9a, 0x49, 0x59, 0xc3, 0xdb, 0x3a, 0x1b, 0x34, 0xb4, 0x0a, 0x7e, 0x10, 0x89, 0x80, 0x73, 0xb5, 0x41, 0x09, 0x8f, 0xb9, 0x80, 0x87, 0x16, 0x06, 0xb7, 0x41, 0x41, 0x91, 0xb9, 0x41, 0x41, 0x1a, 0xbb, 0x41, 0x8a, 0xa6, 0xf1, 0x1a, 0xde, 0xed, 0x59, 0x83, 0xb2, 0xe4, 0x7d, 0x83, 0xd6, 0x7b, 0xa5, 0x0e, 0xa2, 0x9c, 0x6c, 0x6e, 0x83, 0x17, 0x56, 0xaa, 0x6c, 0xb0, 0xb2, 0xc0, 0x7b, 0x0d, 0x0f, 0x4a, 0xae, 0xe1, 0x17, 0x97, 0x83, 0xc7, 0x8e, 0xb7, 0x6c, 0x78, 0x5b, 0x67, 0xf0, 0xfa, 0x20, 0x9e, 0x14, 0xe7, 0xda, 0xf0, 0x41, 0xce, 0x1a, 0x7e, 0x25, 0x5b, 0x83, 0x62, 0x12, 0x73, 0x83, 0x10, 0x7c, 0x38, 0x48, 0x47, 0x3c, 0x5e, 0x83, 0x62, 0x12, 0x73, 0x83, 0x10, 0x7c, 0x18, 0xbc, 0x3e, 0x48, 0x47, 0x3c, 0x6e, 0x83, 0x82, 0x22, 0x73, 0x83, 0x82, 0x34, 0x76, 0x0d, 0xdf, 0xb7, 0x6f, 0x50, 0xd4, 0x16, 0x6f, 0x50, 0x42, 0xc7, 0x6e, 0xf0, 0x2e, 0xdf, 0x93, 0x83, 0x30, 0x1d, 0x5b, 0xc3, 0x83, 0x92, 0x6b, 0xf8, 0xc5, 0x65, 0x83, 0xd3, 0x45, 0xc6, 0x06, 0x69, 0xdf, 0x51, 0x6d, 0x78, 0x5b, 0x67, 0xf0, 0xfa, 0x20, 0x12, 0x20, 0xe7, 0x36, 0x28, 0x76, 0x34, 0xd7, 0xf0, 0xb6, 0xce, 0x06, 0x8b, 0x84, 0x67, 0x0f, 0xa2, 0xbd, 0x71, 0x6e, 0x83, 0xa7, 0x6a, 0xc5, 0x6c, 0x70, 0x0c, 0x37, 0xd8, 0xf0, 0x8b, 0xcb, 0x1a, 0xde, 0xb8, 0xdb, 0xf0, 0xf2, 0xdd, 0xc1, 0x93, 0x5f, 0x43, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0xde, 0xd6, 0xd9, 0xe0, 0xbd, 0x16, 0x33, 0x1d, 0x44, 0x3f, 0xe3, 0xdc, 0x41, 0xd9, 0x67, 0xbc, 0x1a, 0xbc, 0x06, 0x55, 0x65, 0xc3, 0xf3, 0x24, 0x6b, 0xb8, 0xd3, 0x36, 0x78, 0x6d, 0xaa, 0xca, 0x00, 0xbe, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0xb6, 0xc1, 0x6b, 0x53, 0x55, 0x0e, 0x62, 0x41, 0x5d, 0x6e, 0xc3, 0x2f, 0x4a, 0x6b, 0xf8, 0x5c, 0x69, 0x83, 0x24, 0x1e, 0xd1, 0x35, 0xfc, 0xb9, 0x34, 0xe0, 0xbd, 0xd9, 0xbd, 0x07, 0x4f, 0xc3, 0x00, 0x69, 0xc3, 0x5f, 0x34, 0x1b, 0x14, 0xa9, 0x98, 0x1b, 0xac, 0x8d, 0x6b, 0x5a, 0x05, 0xbc, 0x32, 0xb7, 0xfc, 0xe0, 0xd9, 0xcc, 0x2a, 0x1b, 0x9e, 0x27, 0x59, 0xc3, 0x9d, 0x36, 0x03, 0x78, 0x60, 0x61, 0x81, 0xc8, 0x95, 0xd9, 0xa5, 0x95, 0xdd, 0x6d, 0x78, 0xb7, 0x67, 0x83, 0xf4, 0xe4, 0xd8, 0x35, 0xbc, 0xdb, 0xb3, 0x41, 0x59, 0x6f, 0xbb, 0x41, 0x51, 0x29, 0xbe, 0xc1, 0x33, 0x00, 0x53, 0x0e, 0x52, 0x5d, 0x37, 0x5b, 0x0d, 0x12, 0x08, 0x37, 0x0f, 0x9e, 0xcd, 0xac, 0x72, 0x90, 0xee, 0xba, 0xd9, 0x06, 0x4b, 0xea, 0x97, 0xd6, 0xe0, 0xd5, 0x74, 0xd4, 0x1b, 0xde, 0xd6, 0x19, 0x1c, 0xde, 0xe0, 0xc5, 0xf2, 0x22, 0x03, 0xde, 0x9b, 0xdd, 0xdb, 0x06, 0x05, 0x69, 0xec, 0x06, 0xf1, 0x25, 0x36, 0xb7, 0x86, 0x07, 0x25, 0x37, 0x78, 0x2a, 0x72, 0xca, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x2c, 0x79, 0xdf, 0xe0, 0xf5, 0xbf, 0x2a, 0x07, 0x51, 0x4e, 0x36, 0xb7, 0x86, 0xb7, 0x75, 0x0e, 0x62, 0x4a, 0x74, 0xae, 0x0d, 0x82, 0xf4, 0x74, 0x83, 0x18, 0x3e, 0x9b, 0x5b, 0x83, 0x80, 0x0d, 0xda, 0xf0, 0x8b, 0xcb, 0x06, 0xb1, 0x8a, 0x36, 0xb7, 0x86, 0x4b, 0x6a, 0x83, 0x98, 0x5b, 0x97, 0x3b, 0x88, 0xf3, 0xb4, 0xb9, 0x0e, 0x62, 0x5b, 0x6d, 0xee, 0x70, 0x8a, 0x75, 0x38, 0xc5, 0x36, 0xdc, 0x69, 0x33, 0x00, 0xba, 0xde, 0xa5, 0xd1, 0xa1, 0x81, 0xac, 0xdc, 0xa5, 0xcd, 0xa1, 0x81, 0x84, 0xb9, 0x91, 0x81, 0xd8, 0x85, 0xb9, 0x95, 0x81, 0xa4, 0xb9, 0xcd, 0xd1, 0x85, 0xb1, 0xb1, 0x85, 0xd1, 0xa5, 0xbd, 0xb9, 0x81, 0xdc, 0xa5, 0xd1, 0xa1, 0x81, 0xd0, 0xa1, 0x95, 0x81, 0x94, 0xd8, 0x95, 0x95, 0xc9, 0x81, 0x94, 0xd9, 0x95, 0xb9, 0xd1, 0xb9, 0x36, 0xcc, 0xd0, 0x1a, 0xe6, 0x7e, 0xd5, 0xa0, 0xc5, 0x77, 0xde, 0x39, 0x68, 0x33, 0x14, 0xfa, 0x70, 0x8a, 0xb5, 0x61, 0xe2, 0xd6, 0x30, 0x71, 0x6b, 0xa8, 0xe3, 0x1b, 0x5e, 0xbe, 0x3b, 0x78, 0xda, 0xc5, 0xce, 0x86, 0x89, 0xdb, 0x20, 0xfe, 0x32, 0xe6, 0x36, 0xd4, 0x91, 0x35, 0xcc, 0xd0, 0x06, 0x2f, 0x07, 0x2d, 0xd9, 0x70, 0x22, 0x6c, 0xf0, 0x72, 0xd0, 0x92, 0x0d, 0x16, 0xb3, 0x41, 0x2d, 0xb3, 0x6c, 0xf8, 0xc4, 0x66, 0x0d, 0xcf, 0x93, 0xac, 0xc1, 0x42, 0x65, 0xaa, 0x83, 0x07, 0x98, 0x82, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0xe4, 0x64, 0xac, 0xe1, 0x73, 0x97, 0x01, 0xef, 0x0e, 0xed, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xda, 0xc9, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xee, 0xc9, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x12, 0xe2, 0x1b, 0xac, 0x20, 0xd3, 0xdf, 0xf0, 0x6e, 0xcf, 0x06, 0xaf, 0xe5, 0xfc, 0x58, 0xc3, 0x47, 0xed, 0x07, 0xaf, 0xf2, 0xfc, 0xe8, 0xe0, 0x5c, 0x6f, 0xb0, 0xe1, 0x79, 0x92, 0x0d, 0x62, 0x09, 0x76, 0x6e, 0x83, 0x75, 0x71, 0x47, 0x1b, 0x3c, 0x21, 0x27, 0x63, 0x0d, 0x9f, 0xbb, 0x0c, 0x78, 0x65, 0x6e, 0xf9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x6e, 0x52, 0xc6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x09, 0x53, 0xc6, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x94, 0x10, 0xdf, 0x60, 0x05, 0x99, 0xfe, 0x86, 0x77, 0x7b, 0x36, 0x78, 0xf2, 0xe8, 0xc7, 0x1a, 0x3e, 0x6a, 0x3f, 0x78, 0x5a, 0xe9, 0x47, 0x07, 0xad, 0xf1, 0x10, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0x58, 0x82, 0x9d, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xc8, 0xc9, 0x58, 0xc3, 0xe7, 0x2e, 0x03, 0x1e, 0x5b, 0xd8, 0xb8, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0xa4, 0x95, 0xb1, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0xca, 0x95, 0xb1, 0xe1, 0x83, 0x9c, 0x35, 0xfc, 0x9b, 0xb3, 0x41, 0x23, 0xdb, 0x03, 0x87, 0x4e, 0x6a, 0x1b, 0xac, 0x02, 0x93, 0xdd, 0xa0, 0xe0, 0xc3, 0x5c, 0xc3, 0xbf, 0x39, 0x1b, 0xb4, 0x2e, 0x56, 0x70, 0xe8, 0xa4, 0x76, 0xb0, 0xcc, 0x49, 0x76, 0xc3, 0xf3, 0x24, 0x1b, 0xc4, 0x12, 0xec, 0xdc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x42, 0x4e, 0xc6, 0x1a, 0x3e, 0x77, 0xd9, 0x60, 0x71, 0x67, 0xf6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x82, 0x58, 0xc6, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x78, 0x1d, 0x59, 0xc6, 0x86, 0x77, 0x7b, 0xd6, 0xa0, 0x94, 0x10, 0xdf, 0x60, 0x05, 0x99, 0xfe, 0x86, 0x77, 0x7b, 0x36, 0x78, 0x97, 0xeb, 0xc7, 0x1a, 0x3e, 0x6a, 0x3f, 0x78, 0xff, 0xeb, 0x47, 0x07, 0x0d, 0x3b, 0x1f, 0x6c, 0x78, 0x9e, 0x64, 0x83, 0x58, 0x82, 0x9d, 0xdb, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x4f, 0xc8, 0xc9, 0x58, 0xc3, 0xe7, 0x2e, 0x03, 0x9e, 0x59, 0x18, 0xbd, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x5e, 0x0b, 0x97, 0xb1, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x1e, 0x32, 0x97, 0xb1, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x25, 0xc4, 0x37, 0x58, 0x41, 0xa6, 0xbf, 0xe1, 0xdd, 0x9e, 0x0d, 0xde, 0x61, 0xfb, 0xb1, 0x86, 0x8f, 0xda, 0x0f, 0xde, 0x7b, 0xfb, 0xd1, 0xc1, 0xf3, 0x34, 0x4e, 0x36, 0x3c, 0x4f, 0xb2, 0x41, 0x2c, 0xc1, 0xce, 0x6d, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x27, 0xe4, 0x64, 0xac, 0xe1, 0x73, 0x97, 0x01, 0x8f, 0xad, 0x8e, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x0f, 0x53, 0xcc, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0x66, 0xcc, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x12, 0xe2, 0x1b, 0xac, 0x20, 0xd3, 0xdf, 0xf0, 0x6e, 0xcf, 0x06, 0x8f, 0x16, 0xfe, 0x58, 0xc3, 0x47, 0xed, 0x07, 0x8f, 0x23, 0xfe, 0xe8, 0xe0, 0x6d, 0x21, 0x27, 0x1b, 0x9e, 0x27, 0xd9, 0x20, 0x96, 0x60, 0xe7, 0x36, 0x58, 0x17, 0x77, 0xb4, 0xc1, 0x13, 0x72, 0x32, 0xd6, 0xf0, 0xb9, 0xcb, 0x80, 0xa7, 0x57, 0x37, 0x6f, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x17, 0x85, 0x66, 0x6c, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0xc7, 0x8e, 0x66, 0x6c, 0x78, 0xb7, 0x67, 0x0d, 0x4a, 0x09, 0xf1, 0x0d, 0x56, 0x90, 0xe9, 0x6f, 0x78, 0xb7, 0x67, 0x83, 0xc7, 0x34, 0x7f, 0xac, 0xe1, 0xa3, 0xf6, 0x83, 0x47, 0x3b, 0x7f, 0xb4, 0xc1, 0x5b, 0x44, 0x2a, 0xda, 0xf0, 0x3c, 0xc9, 0x06, 0xb1, 0x04, 0x3b, 0xb7, 0xc1, 0xba, 0xb8, 0xa3, 0x0d, 0x9e, 0x90, 0x93, 0xb1, 0xe1, 0x73, 0x97, 0x01, 0xcf, 0x2e, 0xcc, 0xdd, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0xef, 0xbd, 0xcd, 0xd8, 0x60, 0x5d, 0xdc, 0xd1, 0x06, 0x6f, 0xd1, 0xcd, 0xd8, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x12, 0xe2, 0x1b, 0xac, 0x20, 0xd3, 0xdf, 0xf0, 0x6e, 0xcf, 0x06, 0x8f, 0xbc, 0xfe, 0x58, 0xc3, 0x47, 0xed, 0x07, 0x8f, 0xc9, 0xfe, 0x58, 0xc3, 0x47, 0xed, 0x07, 0xef, 0xd6, 0xfe, 0x68, 0x83, 0x17, 0x93, 0x54, 0x74, 0xb0, 0x92, 0x4e, 0xff, 0x70, 0x8a, 0x1d, 0x4e, 0xb1, 0x83, 0xb8, 0x7e, 0x9d, 0xdb, 0x30, 0x43, 0x1b, 0x44, 0xff, 0xc5, 0xdc, 0x86, 0x13, 0x61, 0x83, 0xe8, 0xbf, 0x98, 0x5b, 0xc3, 0x39, 0xb2, 0x20, 0x58, 0x1c, 0x04, 0x8b, 0xb3, 0x41, 0x9b, 0x25, 0x4d, 0x87, 0x53, 0x6c, 0x71, 0x90, 0xad, 0x41, 0x5b, 0x20, 0x2b, 0x1b, 0x62, 0xb8, 0x21, 0xf7, 0x3d, 0xfc, 0xc6, 0xe3, 0x41, 0xb0, 0x38, 0x08, 0xd6, 0x90, 0xb5, 0xdb, 0x20, 0x21, 0xe5, 0x7e, 0x83, 0x84, 0xb2, 0x93, 0x41, 0xb0, 0xc2, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x44, 0xfe, 0xb3, 0xcc, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x1b, 0x94, 0xfc, 0x8a, 0x83, 0x60, 0x83, 0x58, 0x3b, 0x3c, 0x39, 0x74, 0x3f, 0x3a, 0x0e, 0x1d, 0x62, 0x78, 0xb0, 0x9a, 0x01, 0xe8, 0x60, 0x35, 0x03, 0xd0, 0xf1, 0x6d, 0x10, 0x2c, 0x48, 0x06, 0x57, 0x0e, 0x86, 0xa3, 0xf4, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x8b, 0x83, 0x6c, 0x83, 0x67, 0xad, 0xdf, 0x0c, 0x82, 0x05, 0xc9, 0xc0, 0xf3, 0x3e, 0x07, 0x27, 0xa1, 0xe3, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0x86, 0x16, 0x40, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x1b, 0x34, 0x6e, 0xcd, 0x72, 0xf0, 0x4c, 0xf9, 0x9b, 0xe3, 0xd0, 0xf1, 0xf8, 0x38, 0x74, 0x3c, 0x1e, 0x04, 0x8b, 0x1b, 0x3c, 0x5e, 0xa2, 0xa2, 0xc5, 0xe1, 0x37, 0x1e, 0x0f, 0x82, 0x05, 0xc1, 0x82, 0x64, 0x20, 0x7f, 0x77, 0x70, 0xf6, 0x32, 0x1e, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x2e, 0x41, 0x79, 0x3e, 0x58, 0xaa, 0xf6, 0x72, 0x1c, 0x1a, 0x04, 0x0b, 0x82, 0x05, 0xc1, 0xc2, 0x6f, 0xf0, 0xec, 0x83, 0x80, 0x83, 0x92, 0xa1, 0x69, 0x90, 0x0c, 0x73, 0x30, 0x06, 0x23, 0x0f, 0x7b, 0xbc, 0x83, 0x60, 0x41, 0xb0, 0x20, 0x58, 0xf8, 0x0d, 0x5e, 0x35, 0x06, 0x70, 0x50, 0x32, 0x34, 0x0d, 0x92, 0x41, 0x76, 0x68, 0xdf, 0x72, 0x30, 0xb0, 0x45, 0x87, 0x5d, 0xd8, 0x0d, 0x96, 0x0d, 0x06, 0x6d, 0xf0, 0x32, 0x31, 0x92, 0xc3, 0xd1, 0xbe, 0x20, 0x5b, 0x43, 0x1e, 0x7b, 0x0c, 0xe0, 0x25, 0x4c, 0xce, 0xee, 0x4d, 0x07, 0x84, 0x2d, 0x4c, 0xce, 0x2e, 0x8c, 0x0d, 0x44, 0xae, 0x4c, 0xec, 0xed, 0x8d, 0x3e, 0x9c, 0x62, 0xc3, 0x2f, 0x88, 0x16, 0xc4, 0xc3, 0x6e, 0x58, 0x41, 0x5d, 0x90, 0xad, 0x21, 0x8f, 0xbd, 0x38, 0x08, 0x36, 0x68, 0x06, 0xeb, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x13, 0x5d, 0xff, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x2f, 0x6e, 0xa8, 0xe3, 0x1b, 0x5e, 0xbe, 0x9b, 0x00, 0x3e, 0xd8, 0xc2, 0xe4, 0xec, 0xc2, 0xd8, 0x5a, 0xdc, 0xca, 0xca, 0xc8, 0x5a, 0xd6, 0xca, 0xe4, 0xdc, 0xca, 0xd8, 0xe1, 0x37, 0x9e, 0x8f, 0x07, 0x11, 0xed, 0x3e, 0x77, 0x1c, 0x3a, 0x0e, 0x1d, 0x8f, 0x87, 0x5d, 0xd8, 0x0d, 0x46, 0xc7, 0xfa, 0xc2, 0x2e, 0xf4, 0xa0, 0xed, 0x11, 0xa7, 0x43, 0x3a, 0xf7, 0x70, 0xb4, 0x2f, 0x08, 0x16, 0x04, 0x0b, 0x92, 0x81, 0xb0, 0x1d, 0x9c, 0x84, 0x8e, 0x07, 0xc9, 0xe0, 0xd6, 0xc1, 0x58, 0x5f, 0x3d, 0x78, 0x73, 0x8e, 0xcd, 0xe1, 0x14, 0x3b, 0xa4, 0x6a, 0x8e, 0xc7, 0xc3, 0x6f, 0x3c, 0x1e, 0x04, 0x0b, 0xbf, 0xf1, 0x78, 0x10, 0x2c, 0x08, 0x16, 0x7e, 0x83, 0xd8, 0x48, 0xed, 0x39, 0x28, 0x19, 0x9a, 0x0e, 0x5e, 0x95, 0x0b, 0x71, 0x90, 0xb8, 0x26, 0x3d, 0xfc, 0x06, 0x03, 0x13, 0x60, 0xf8, 0x0d, 0x06, 0x3b, 0xc0, 0xf0, 0x0b, 0xa2, 0x05, 0xda, 0xe7, 0x0f, 0xbb, 0x41, 0x6a, 0xab, 0xf5, 0x1a, 0x62, 0x38, 0x08, 0x36, 0x78, 0x2e, 0x1d, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0x07, 0x25, 0xda, 0x2c, 0xfc, 0xc6, 0xf3, 0xc5, 0x83, 0x72, 0xb1, 0xe7, 0x78, 0x7c, 0xf0, 0xdc, 0x45, 0x9b, 0xe3, 0xd0, 0x04, 0xed, 0xf3, 0x8f, 0xc7, 0xc3, 0x2f, 0x88, 0x16, 0x78, 0x3f, 0x7f, 0xd8, 0x0d, 0xda, 0x09, 0x71, 0x5a, 0xd8, 0x85, 0x1e, 0xc4, 0x67, 0xfe, 0xdc, 0x1a, 0x62, 0x38, 0x08, 0x36, 0x78, 0x2e, 0x1d, 0xc9, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0x83, 0xe7, 0x49, 0xda, 0x2c, 0x81, 0xd0, 0xe7, 0x3f, 0x78, 0x42, 0xa5, 0xcd, 0x71, 0x68, 0x90, 0xad, 0x21, 0x8f, 0xbd, 0x38, 0x08, 0x36, 0x68, 0xcb, 0xaa, 0x7f, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x3b, 0x5b, 0xfd, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x2f, 0x6e, 0xa8, 0xe3, 0x1b, 0x5e, 0xbe, 0x9b, 0x00, 0x7f, 0xb6, 0x30, 0x39, 0xbb, 0x30, 0xb6, 0x16, 0xb7, 0xb2, 0x32, 0xb2, 0x16, 0xb6, 0x3a, 0x36, 0x76, 0xf8, 0x8d, 0xe7, 0xe3, 0x41, 0x44, 0xff, 0xcf, 0x1d, 0x87, 0x8e, 0x43, 0xc7, 0xe3, 0xc3, 0x29, 0x36, 0xc1, 0xfb, 0xf9, 0xc7, 0xe3, 0xe1, 0x17, 0x44, 0x0b, 0xfc, 0x9f, 0x3f, 0xec, 0xc2, 0x6e, 0xf0, 0x2a, 0x1a, 0x9c, 0xc3, 0xfa, 0xe6, 0xc2, 0x2e, 0xf4, 0x20, 0xf6, 0x03, 0xe8, 0x16, 0x04, 0x0b, 0x92, 0x0d, 0xd6, 0xae, 0x53, 0x1c, 0x1c, 0x28, 0x92, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x1b, 0x04, 0xa5, 0xf7, 0xf0, 0x1b, 0xcf, 0x07, 0xc1, 0x2a, 0xfc, 0x82, 0x64, 0x83, 0x35, 0x17, 0x48, 0x07, 0x07, 0x8a, 0xe4, 0xe3, 0xdb, 0xf0, 0x0b, 0x92, 0x01, 0x85, 0x7f, 0xdf, 0xc1, 0x81, 0x22, 0xf9, 0xf8, 0x36, 0xc1, 0xff, 0xf9, 0x8b, 0x83, 0x60, 0x41, 0xb0, 0xc1, 0x6b, 0x79, 0x6d, 0x0e, 0xa2, 0x51, 0x2e, 0x6e, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x41, 0x71, 0xa8, 0x31, 0xfc, 0xc6, 0xf3, 0x41, 0xb0, 0x41, 0x7c, 0x50, 0xb4, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xf0, 0x1b, 0x8f, 0x07, 0xc1, 0xe2, 0x06, 0x09, 0x1e, 0xcf, 0x1b, 0x9c, 0x23, 0x77, 0x37, 0x18, 0x52, 0xbf, 0x1b, 0xac, 0x7f, 0x7c, 0xd9, 0x20, 0x21, 0xe5, 0x7e, 0x83, 0x84, 0xb2, 0x93, 0x0d, 0x12, 0xfd, 0xa0, 0x07, 0xc1, 0x0a, 0xbf, 0xf1, 0x7c, 0x10, 0x2c, 0x48, 0x06, 0xd2, 0x3b, 0x07, 0x07, 0x8a, 0xe4, 0x83, 0x64, 0x43, 0x83, 0x43, 0x0c, 0x0f, 0x56, 0x33, 0x00, 0x1d, 0xdf, 0x96, 0xc0, 0xe9, 0xe7, 0xff, 0xe0, 0xad, 0xb8, 0x36, 0xc7, 0xa1, 0xe3, 0xd0, 0xf1, 0xf8, 0x38, 0x34, 0xc8, 0xd6, 0x90, 0xc7, 0x5e, 0x1c, 0x04, 0x1b, 0xb4, 0x65, 0xd5, 0x3f, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0x20, 0xd8, 0xa0, 0x9d, 0xad, 0xfe, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x17, 0x37, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0x4d, 0x80, 0x3f, 0x5b, 0x98, 0x9c, 0x5d, 0x18, 0x5b, 0x8b, 0x5b, 0x59, 0x19, 0x59, 0x8b, 0x5e, 0xdd, 0x5c, 0x39, 0xfc, 0xc6, 0xf3, 0xf1, 0x20, 0x9e, 0x23, 0xe8, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0xe1, 0x14, 0x3b, 0x88, 0x95, 0x03, 0xba, 0xe3, 0xf1, 0x20, 0x5a, 0x50, 0x7f, 0x30, 0x4a, 0x39, 0x0f, 0x82, 0x14, 0xff, 0x78, 0x3c, 0x08, 0x16, 0x37, 0x48, 0x03, 0xc8, 0x38, 0x78, 0xbc, 0x44, 0xc5, 0xe2, 0xb0, 0x0b, 0xbb, 0x41, 0x71, 0x32, 0xb8, 0xb0, 0x1b, 0x8c, 0x88, 0xde, 0x85, 0xdd, 0x60, 0xad, 0x82, 0xff, 0xc2, 0x6e, 0x10, 0x5f, 0xf0, 0x33, 0x0b, 0xbb, 0xd0, 0x83, 0xb7, 0x88, 0x54, 0x2c, 0xec, 0x42, 0x27, 0x38, 0x7f, 0x0f, 0xe9, 0xdc, 0xc3, 0xd1, 0x7e, 0x38, 0xda, 0x0f, 0x47, 0xfb, 0xe1, 0x68, 0x3f, 0x1c, 0xed, 0x0b, 0x82, 0x85, 0x5f, 0x82, 0xeb, 0xf7, 0xf8, 0x36, 0x08, 0x16, 0x7e, 0x09, 0xb6, 0xbf, 0x8f, 0x6f, 0x83, 0x60, 0x41, 0xb0, 0xc1, 0xb3, 0x8e, 0x6c, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0x4b, 0xb0, 0x7b, 0x3f, 0xfc, 0xc6, 0xf3, 0x0d, 0x5e, 0xa3, 0x64, 0xb3, 0xc1, 0x43, 0x97, 0x6c, 0xd6, 0xe0, 0x71, 0x7a, 0x25, 0x83, 0x60, 0x83, 0x86, 0x36, 0x57, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0x41, 0xb0, 0xc1, 0xe1, 0x4a, 0x7a, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0xbb, 0x21, 0x55, 0x73, 0xf0, 0xee, 0x28, 0x9b, 0xe3, 0xd0, 0xf1, 0xfc, 0x38, 0xb4, 0x06, 0x8f, 0xf5, 0x2b, 0x19, 0x04, 0x1b, 0x34, 0xb4, 0xb9, 0x32, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0x1d, 0x7e, 0xe3, 0xf9, 0xf0, 0x0b, 0x82, 0x0d, 0x0e, 0x57, 0xd2, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0xa9, 0x83, 0x83, 0x87, 0x63, 0xd9, 0x1c, 0x87, 0x8e, 0xe7, 0xc7, 0xa1, 0x43, 0x0c, 0x8f, 0x43, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0xe1, 0x37, 0x9e, 0x0f, 0x82, 0x05, 0xc1, 0x82, 0x60, 0x83, 0xa6, 0x90, 0x06, 0x06, 0xc9, 0x40, 0xf9, 0x1b, 0x44, 0x0b, 0x3b, 0x41, 0xff, 0xfb, 0xe3, 0xd0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0xf1, 0xa0, 0xcd, 0x92, 0xa6, 0xc5, 0x41, 0xb0, 0xf0, 0x0b, 0xbf, 0x41, 0x6c, 0xa4, 0xf6, 0x1c, 0x8c, 0x90, 0xa8, 0x83, 0x66, 0x18, 0x95, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x04, 0x0b, 0x92, 0x81, 0xfd, 0x9f, 0x83, 0xb3, 0x97, 0xf1, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x1f, 0xb4, 0x20, 0xd1, 0x74, 0x70, 0x60, 0xd0, 0x3e, 0x0e, 0x1d, 0x87, 0x8e, 0xc7, 0xc7, 0xa1, 0x0d, 0x31, 0x5c, 0x90, 0x0c, 0xc4, 0xe9, 0xe0, 0x24, 0x74, 0xbc, 0xc1, 0xb2, 0x30, 0x98, 0x35, 0x38, 0x1b, 0x3d, 0x6f, 0x48, 0x76, 0x1c, 0x34, 0x5c, 0x4b, 0xb2, 0x41, 0x9a, 0x7b, 0xc6, 0x4a, 0x90, 0xbd, 0x3f, 0x1c, 0xed, 0x4b, 0xb0, 0x7d, 0x7f, 0x90, 0x5e, 0x27, 0x70, 0x1c, 0x3a, 0xc4, 0xf0, 0x78, 0xbc, 0xcc, 0x1a, 0xac, 0x1d, 0xed, 0xde, 0xa0, 0x94, 0x10, 0x5f, 0x83, 0x92, 0x85, 0x7d, 0x96, 0x59, 0x83, 0x87, 0xc1, 0xaf, 0x6c, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0x6d, 0xf0, 0xde, 0xc0, 0x96, 0x35, 0xfc, 0xb9, 0xb4, 0xa1, 0xc5, 0xc7, 0x41, 0xfb, 0xb3, 0x81, 0x07, 0x2f, 0x86, 0x6a, 0xd9, 0xf0, 0x17, 0xcd, 0x06, 0xed, 0xcf, 0x06, 0x6e, 0x70, 0x2e, 0x5c, 0xd8, 0xe0, 0x85, 0x86, 0x2d, 0x1b, 0x9c, 0xd8, 0x6f, 0x36, 0x78, 0xf1, 0x63, 0xcb, 0x06, 0xe7, 0xc1, 0x8e, 0x0d, 0x6f, 0xd9, 0x6d, 0xf0, 0xe0, 0xc8, 0x96, 0x0d, 0xef, 0xf6, 0xac, 0xe1, 0x6d, 0x9d, 0x0d, 0x9a, 0x38, 0x0d, 0xec, 0xe0, 0x25, 0x97, 0x2d, 0x87, 0x53, 0xec, 0x70, 0x8a, 0x6d, 0xf8, 0x45, 0x69, 0x0d, 0x9f, 0x2b, 0x6d, 0xf0, 0xc6, 0x52, 0x90, 0x83, 0xf7, 0x44, 0xa3, 0x6c, 0xf8, 0x8b, 0x66, 0x83, 0x37, 0x96, 0x82, 0x6c, 0xb0, 0xd2, 0xc5, 0x69, 0x83, 0xd6, 0x21, 0x7a, 0x37, 0x38, 0xbe, 0x1b, 0x6c, 0x50, 0x90, 0xc6, 0x6e, 0xd0, 0x70, 0x70, 0xdf, 0x1a, 0xde, 0xed, 0xd9, 0xe0, 0x18, 0x3b, 0xb6, 0xc1, 0x73, 0xca, 0x4f, 0xd6, 0xa0, 0x10, 0x4c, 0x3d, 0x78, 0x39, 0xf4, 0x49, 0x1b, 0x14, 0xa4, 0xb1, 0x1b, 0x14, 0xfe, 0x06, 0x6b, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0x1e, 0x9d, 0xbc, 0xb2, 0x86, 0x07, 0x25, 0x37, 0x78, 0x9d, 0xf2, 0xca, 0xc1, 0x5b, 0x30, 0x56, 0x0e, 0x9e, 0x8d, 0x87, 0x72, 0xf0, 0x6c, 0x2b, 0x94, 0x0d, 0x0a, 0xd2, 0xd8, 0x0d, 0x56, 0x55, 0x9d, 0xae, 0xe1, 0xdd, 0x9e, 0x35, 0x28, 0x4b, 0xde, 0x37, 0x78, 0x06, 0xf4, 0xca, 0x41, 0xec, 0xe1, 0xd0, 0x1d, 0x3c, 0x28, 0x7a, 0x65, 0xc3, 0x07, 0x39, 0x6b, 0x78, 0x84, 0x75, 0x0d, 0x8a, 0x49, 0xcc, 0x0d, 0x8a, 0x54, 0xcc, 0x01, 0x8f, 0x2c, 0x4d, 0x3e, 0x68, 0xf0, 0xb8, 0x6f, 0x0d, 0x8a, 0x49, 0xcc, 0x0d, 0x8a, 0x54, 0xcc, 0x83, 0xf5, 0x73, 0xa7, 0xad, 0xc1, 0xb9, 0x70, 0x61, 0x0d, 0x79, 0xec, 0x0d, 0x3f, 0xc2, 0x0c, 0x4e, 0x1f, 0x44, 0x7e, 0xfa, 0xdc, 0x41, 0x78, 0xaa, 0x6e, 0x70, 0x1c, 0x9b, 0xd8, 0xa0, 0xc1, 0xe3, 0xbe, 0x35, 0x3c, 0x4f, 0xb2, 0x86, 0x3b, 0x6d, 0x06, 0xf8, 0xb0, 0xb0, 0x40, 0xa8, 0x9a, 0x92, 0x36, 0xfc, 0x9b, 0xb3, 0x41, 0x41, 0x91, 0xb9, 0xe1, 0x6d, 0x9d, 0x83, 0x08, 0xe5, 0xa1, 0x5b, 0x83, 0x25, 0xf5, 0x4b, 0x6b, 0x78, 0xe3, 0x6e, 0xc3, 0xcb, 0x77, 0x07, 0x11, 0xed, 0x3e, 0xb7, 0x41, 0xc1, 0x87, 0xb9, 0x86, 0x47, 0x58, 0x37, 0x88, 0x98, 0x1e, 0xba, 0x35, 0x28, 0x26, 0x31, 0x37, 0x28, 0x52, 0x31, 0x07, 0x3c, 0xb4, 0x3a, 0xf7, 0xe0, 0xe1, 0xdb, 0x2b, 0x6d, 0x78, 0xb7, 0x67, 0x0d, 0xca, 0x92, 0xf7, 0x0d, 0xca, 0x9d, 0xf7, 0x83, 0x17, 0xe1, 0xa1, 0x6c, 0xf0, 0xfc, 0xef, 0x95, 0x36, 0x28, 0x3a, 0x68, 0xd7, 0xf0, 0x7d, 0xfb, 0x80, 0xa7, 0xf6, 0x26, 0x6e, 0x50, 0x42, 0xc7, 0xae, 0xe1, 0xdf, 0xf9, 0x0d, 0x9e, 0x8a, 0x80, 0xb2, 0xc1, 0x82, 0x56, 0xe2, 0x0e, 0xc2, 0x74, 0x6c, 0x83, 0x06, 0x8f, 0xfb, 0xd6, 0xf0, 0x6e, 0xcf, 0x1a, 0x94, 0x25, 0xef, 0x1b, 0xbc, 0x1b, 0x7d, 0xe5, 0x20, 0xf6, 0x70, 0xe8, 0x0e, 0x5e, 0x3c, 0xbd, 0xb2, 0xc1, 0x71, 0x6c, 0x62, 0x83, 0x57, 0x98, 0xa0, 0x6c, 0xf0, 0x6a, 0xf6, 0x95, 0x35, 0x38, 0x86, 0x1b, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0xb7, 0xbf, 0xaf, 0x6c, 0xf0, 0xd2, 0xf8, 0x95, 0x35, 0x38, 0x0f, 0x76, 0x1c, 0xbc, 0x2b, 0x23, 0xe5, 0xe0, 0xd9, 0xf3, 0x2b, 0x1b, 0x1c, 0xc7, 0x26, 0x36, 0x78, 0x61, 0x0f, 0xca, 0x06, 0x8f, 0xc8, 0x5f, 0x59, 0x83, 0x62, 0x47, 0x73, 0x83, 0x57, 0x94, 0xa0, 0xac, 0xc1, 0x92, 0xfa, 0xa5, 0x35, 0xbc, 0x71, 0xb7, 0xe1, 0xe5, 0xbb, 0x83, 0x88, 0xfe, 0x9f, 0x3b, 0x08, 0x4f, 0xd5, 0x0d, 0x8e, 0xe1, 0x06, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0xed, 0xef, 0x2b, 0x1b, 0xbc, 0x87, 0x7f, 0x65, 0x0d, 0x6f, 0xeb, 0x0c, 0x5e, 0x1f, 0xbc, 0xc2, 0x04, 0xe5, 0xe0, 0xad, 0xfe, 0x2b, 0x1b, 0x1c, 0xc7, 0x26, 0x36, 0x78, 0x9d, 0x1f, 0xca, 0x1a, 0x9e, 0x27, 0xd9, 0x20, 0x1e, 0x80, 0xe8, 0x36, 0xbc, 0xcd, 0xba, 0xe1, 0xdf, 0x9c, 0x0d, 0x0a, 0x8a, 0xcc, 0x83, 0xa7, 0x45, 0xb0, 0xac, 0x41, 0xb1, 0xa3, 0xb9, 0xc1, 0x0b, 0x79, 0x50, 0xd6, 0x60, 0x49, 0xfd, 0xd2, 0x1a, 0xde, 0xb8, 0xdb, 0xf0, 0xf2, 0xdd, 0x41, 0x3c, 0x47, 0xd0, 0x1d, 0x84, 0xa7, 0xea, 0x06, 0x45, 0xa7, 0xf1, 0x06, 0x4b, 0x25, 0x09, 0x37, 0x78, 0x5a, 0x04, 0xcb, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xb9, 0xd2, 0x06, 0xcf, 0x9e, 0x60, 0x59, 0xc3, 0x9f, 0x4b, 0x03, 0x9e, 0x5d, 0x98, 0xbb, 0x41, 0x00, 0x9d, 0x1d, 0x3c, 0xc1, 0x0f, 0xa5, 0x0d, 0x5f, 0xbf, 0x6c, 0xf0, 0x04, 0x3f, 0x94, 0x0d, 0x8a, 0x4e, 0xe3, 0x0d, 0x1e, 0xfe, 0xc2, 0xb2, 0x41, 0x4b, 0x67, 0x59, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0xed, 0xef, 0x2b, 0x6b, 0x78, 0x16, 0x6f, 0x70, 0x7b, 0xf0, 0x70, 0x70, 0x77, 0xf0, 0x72, 0x50, 0x3d, 0x28, 0x18, 0xb4, 0x1c, 0x34, 0x43, 0x96, 0xb5, 0x86, 0xb7, 0x75, 0x06, 0xaf, 0x0f, 0x5e, 0xd8, 0x83, 0x72, 0xf0, 0x0a, 0x10, 0x96, 0x0d, 0x97, 0xd4, 0x06, 0xad, 0x43, 0xf4, 0xae, 0xc1, 0x4b, 0xcb, 0x4f, 0x36, 0x38, 0x86, 0x1b, 0x1c, 0x34, 0x34, 0xdd, 0xd7, 0x6a, 0x70, 0xc4, 0x87, 0xdd, 0xf0, 0x8b, 0xd2, 0x1a, 0x3e, 0x57, 0xda, 0x20, 0x89, 0x47, 0x74, 0x83, 0x37, 0x96, 0x82, 0xb4, 0xe1, 0x2f, 0x9a, 0x35, 0x08, 0xfd, 0x92, 0x0d, 0xca, 0x26, 0xcc, 0x35, 0x58, 0xaf, 0x52, 0xb5, 0x06, 0x01, 0x74, 0x76, 0xf0, 0x58, 0x68, 0x95, 0x83, 0x87, 0x34, 0xa3, 0xb4, 0x41, 0xb1, 0xa3, 0xb9, 0x86, 0x47, 0x58, 0xd7, 0xa0, 0x98, 0xc4, 0xdc, 0xa0, 0x48, 0xc5, 0x3c, 0x78, 0x76, 0x2a, 0xcc, 0x1a, 0x14, 0x93, 0x98, 0x1b, 0x14, 0xa9, 0x98, 0x07, 0x2f, 0x04, 0x4c, 0x59, 0x83, 0x62, 0x12, 0x73, 0x83, 0x22, 0x15, 0x73, 0x83, 0xc5, 0x9d, 0xd9, 0xad, 0x41, 0x31, 0x89, 0xb9, 0x41, 0x91, 0x8a, 0x79, 0xf0, 0xd2, 0xf2, 0x93, 0x0d, 0x5e, 0x51, 0x82, 0x72, 0xf0, 0x3e, 0x1e, 0x94, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x0a, 0xd2, 0xd8, 0x01, 0x8f, 0xad, 0x8e, 0x5d, 0xc3, 0x83, 0x92, 0x1b, 0x04, 0x20, 0xdb, 0x41, 0xc4, 0x3f, 0xd1, 0x6d, 0x50, 0x90, 0xc6, 0x0e, 0x78, 0x7a, 0x75, 0xf3, 0x1a, 0x1e, 0x94, 0xdc, 0x20, 0x00, 0xd9, 0x0e, 0xe2, 0x4b, 0x8b, 0x6e, 0x83, 0x13, 0xfb, 0xcd, 0x1a, 0x14, 0x9d, 0xc6, 0x1b, 0xbc, 0x22, 0x75, 0x65, 0x0d, 0x6f, 0xeb, 0x6c, 0xb0, 0x88, 0x9f, 0x76, 0xf0, 0xfa, 0x20, 0x7a, 0xc4, 0xe8, 0x36, 0xfc, 0x45, 0xb3, 0xc1, 0xa3, 0x0a, 0x41, 0x36, 0x38, 0xba, 0x0e, 0x6e, 0xf0, 0x58, 0xd6, 0x95, 0x0d, 0x1e, 0xdd, 0xba, 0xb2, 0x06, 0xcf, 0xd1, 0x48, 0xd9, 0x60, 0x8d, 0x54, 0xd3, 0x06, 0x65, 0x96, 0xee, 0x86, 0x07, 0x25, 0x37, 0x38, 0x1d, 0x89, 0x6c, 0x78, 0xb7, 0x67, 0x83, 0xa6, 0xc8, 0x2c, 0x37, 0x78, 0x02, 0x1f, 0xca, 0xc1, 0x33, 0x66, 0x57, 0xd6, 0xe0, 0x7d, 0x23, 0x29, 0x1b, 0xac, 0x91, 0x6a, 0xda, 0xa0, 0xcc, 0xd2, 0xdd, 0xf0, 0xa0, 0xe4, 0x06, 0xa7, 0x23, 0x91, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0x14, 0x99, 0xe5, 0x06, 0x4f, 0xe8, 0x43, 0x39, 0x78, 0x1b, 0xee, 0x4a, 0x1b, 0x14, 0xa4, 0xb1, 0x03, 0x9e, 0x5b, 0x98, 0xbd, 0x06, 0x27, 0xf6, 0x9b, 0x35, 0x28, 0x4b, 0xde, 0x37, 0x48, 0xdc, 0xa8, 0x3d, 0x78, 0x7d, 0x09, 0xcb, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0xe0, 0xe1, 0x41, 0xfb, 0xb3, 0x81, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0x4d, 0x15, 0x2b, 0x6b, 0x78, 0xb7, 0x67, 0x83, 0xf7, 0x67, 0xb5, 0x6c, 0x70, 0x8c, 0x53, 0xd8, 0xe0, 0x2d, 0xa9, 0x30, 0xb5, 0xc1, 0xa2, 0xf2, 0xa4, 0x0d, 0x0a, 0x8a, 0xcc, 0x0d, 0x1e, 0x0b, 0xad, 0xb2, 0x06, 0x85, 0x60, 0xea, 0xc1, 0x8b, 0x6b, 0x41, 0x36, 0xfc, 0xe2, 0xb2, 0x86, 0x5f, 0x5c, 0x36, 0x78, 0x4b, 0x2a, 0xcc, 0x06, 0xe9, 0xae, 0x9b, 0x6b, 0x78, 0x5b, 0x67, 0xf0, 0xfa, 0xe0, 0x85, 0x80, 0x29, 0xad, 0xe1, 0x17, 0x97, 0x35, 0xbc, 0xad, 0x33, 0xe0, 0xb1, 0x85, 0x8d, 0xb5, 0x86, 0x5f, 0x5c, 0xd6, 0xf0, 0xb6, 0xce, 0x41, 0xf4, 0x9f, 0xd1, 0x1d, 0xa4, 0xda, 0xc2, 0xad, 0xe1, 0x6d, 0x9d, 0xc1, 0xeb, 0x83, 0x97, 0x96, 0x9f, 0x6c, 0xf0, 0x04, 0x3e, 0x94, 0x0d, 0x9e, 0xd0, 0x87, 0x72, 0xf0, 0xba, 0x22, 0x94, 0xc3, 0x29, 0xd6, 0xe1, 0x14, 0xdb, 0x70, 0x22, 0x6c, 0x10, 0xe3, 0xab, 0x73, 0x6b, 0x38, 0x47, 0x16, 0x04, 0x1b, 0xbc, 0x91, 0x58, 0x67, 0x71, 0xd8, 0x0d, 0x1e, 0xf8, 0xac, 0xb1, 0x41, 0x7c, 0xa6, 0xcf, 0x1d, 0x44, 0xc0, 0xef, 0xd9, 0xf1, 0x78, 0x41, 0xb0, 0x21, 0x86, 0x8b, 0xc3, 0x2f, 0x08, 0x36, 0x38, 0x5c, 0x49, 0x0f, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xb0, 0x0b, 0xb7, 0x21, 0x86, 0x07, 0x51, 0x19, 0x71, 0xb3, 0x41, 0xe1, 0x96, 0x34, 0xfc, 0x12, 0x7c, 0xff, 0x7e, 0x7c, 0x3b, 0x88, 0x71, 0x6e, 0xb9, 0xe3, 0xd0, 0xf1, 0xfc, 0x78, 0xbc, 0x41, 0xd4, 0x03, 0xb6, 0x0d, 0x82, 0x0d, 0x62, 0x91, 0x69, 0x6e, 0x71, 0x90, 0xad, 0x21, 0x8f, 0xbd, 0x38, 0x08, 0x36, 0x78, 0x20, 0x2d, 0xc0, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xf8, 0x8d, 0xe7, 0x83, 0x60, 0x83, 0x06, 0xc9, 0x06, 0x0e, 0xa2, 0x44, 0x6a, 0xee, 0x38, 0x74, 0x3c, 0x1e, 0x04, 0x0b, 0xb2, 0x35, 0xe4, 0xb1, 0xc7, 0x00, 0xdf, 0x30, 0x39, 0xbb, 0x37, 0x1d, 0x10, 0xb1, 0x30, 0x32, 0x90, 0xbb, 0xb4, 0x39, 0x78, 0x10, 0x2c, 0x48, 0x06, 0x42, 0x73, 0x30, 0x1c, 0xa5, 0x0f, 0x2d, 0xc0, 0x86, 0x5f, 0x10, 0x2d, 0xc8, 0x87, 0xdd, 0xe0, 0x11, 0x02, 0x19, 0x0b, 0xa2, 0x05, 0xc2, 0x3b, 0xec, 0x06, 0xa1, 0xe5, 0xbe, 0xb0, 0x1b, 0x24, 0xc6, 0x67, 0x1c, 0xd6, 0x37, 0x0f, 0x06, 0x6b, 0xec, 0x61, 0x85, 0x76, 0xd8, 0x0d, 0x1e, 0xd3, 0x90, 0xb1, 0x20, 0x5a, 0x70, 0xf7, 0x20, 0xdc, 0xdc, 0x0f, 0x2b, 0xb4, 0xc3, 0x6e, 0xf0, 0xc6, 0x81, 0x8c, 0x05, 0xd1, 0x82, 0xed, 0x20, 0xd8, 0xe0, 0xe4, 0x03, 0x3d, 0x48, 0x86, 0x0c, 0xa2, 0x85, 0xdd, 0x60, 0x0c, 0x2c, 0x1c, 0xc6, 0xe5, 0x38, 0x74, 0x58, 0xa1, 0x1d, 0x76, 0xe1, 0x36, 0x78, 0x75, 0x45, 0xc6, 0x41, 0x48, 0x81, 0x2f, 0x88, 0x16, 0xd4, 0x0e, 0xb2, 0x35, 0xe4, 0xb1, 0x17, 0x07, 0xc1, 0x06, 0x0f, 0x66, 0x9f, 0x19, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0x10, 0x6c, 0xf0, 0x98, 0xf7, 0x99, 0x41, 0x32, 0x64, 0x10, 0x2d, 0xec, 0xf0, 0x1b, 0xcf, 0x17, 0x37, 0xd4, 0xf1, 0x0d, 0x2f, 0xdf, 0x4d, 0x80, 0xc7, 0x1d, 0xda, 0x5b, 0x5b, 0xcb, 0x9b, 0xdb, 0x58, 0x39, 0xfc, 0xc6, 0xf3, 0xf1, 0x20, 0x7e, 0x19, 0xe9, 0x8e, 0x43, 0xc7, 0xa1, 0xe3, 0xf1, 0xb0, 0x0b, 0xb7, 0x21, 0x86, 0x07, 0x45, 0xae, 0xc2, 0x06, 0xe1, 0xe6, 0x7e, 0x38, 0xc5, 0x0e, 0x2b, 0xb4, 0x83, 0x6c, 0x83, 0x17, 0x0d, 0xd9, 0x0c, 0xbb, 0x20, 0x58, 0xf8, 0x05, 0xc9, 0xc0, 0xf9, 0x76, 0x30, 0x1c, 0xa5, 0x0f, 0xca, 0xa1, 0xa4, 0x83, 0x37, 0xe7, 0xd8, 0x2c, 0x08, 0x16, 0x04, 0x0b, 0xbf, 0x41, 0x94, 0x40, 0xd2, 0x1d, 0x94, 0x0c, 0x4d, 0x83, 0x64, 0xc8, 0x20, 0x5a, 0xd8, 0x0d, 0x82, 0xd2, 0x7b, 0xf8, 0x8d, 0xe7, 0x6b, 0xd0, 0x16, 0x13, 0xc0, 0x20, 0x19, 0x72, 0x70, 0xa0, 0x48, 0x5e, 0x83, 0x07, 0xba, 0x95, 0x1c, 0x44, 0x57, 0x0a, 0xdd, 0xb0, 0x0b, 0xb7, 0x21, 0x86, 0x07, 0x51, 0x2c, 0x72, 0xb3, 0x21, 0x86, 0x6b, 0xf0, 0x38, 0xbd, 0x92, 0x41, 0xb0, 0x20, 0xd8, 0x10, 0xc3, 0xc5, 0x41, 0xb0, 0x20, 0xd8, 0x20, 0x9e, 0x3c, 0x75, 0x0e, 0x16, 0x26, 0xff, 0x1c, 0x9a, 0xbf, 0x1c, 0x8f, 0x07, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x7e, 0x41, 0xb0, 0x41, 0x1a, 0xed, 0xc2, 0x20, 0x19, 0x32, 0x88, 0x16, 0x76, 0xe1, 0x37, 0x9e, 0x0f, 0xbf, 0x04, 0xdf, 0xdf, 0x1f, 0xdf, 0x0e, 0xde, 0x1d, 0x65, 0x73, 0x1c, 0x3a, 0x9e, 0x1f, 0x87, 0x86, 0x5d, 0xb8, 0x0d, 0x31, 0x9c, 0xe0, 0xfd, 0xfb, 0x0d, 0x31, 0x5c, 0x83, 0xc7, 0xfa, 0x95, 0x0c, 0x82, 0x0d, 0xe2, 0xa9, 0x92, 0x6e, 0x90, 0x0c, 0x19, 0x44, 0x0b, 0x3b, 0xfc, 0xc6, 0xf3, 0xe1, 0x17, 0x04, 0x1b, 0xa4, 0xd1, 0x2e, 0x0c, 0x92, 0x21, 0x83, 0x68, 0x61, 0x17, 0x7e, 0xe3, 0xf9, 0xf0, 0x4b, 0x20, 0xf4, 0xef, 0x8f, 0x6f, 0x07, 0x0f, 0xc7, 0xb2, 0x39, 0x0e, 0x1d, 0xcf, 0x8f, 0x43, 0x87, 0x18, 0x1e, 0x87, 0x06, 0xc9, 0x90, 0x41, 0xb4, 0xb0, 0xc3, 0x6f, 0x3c, 0x1f, 0x44, 0x0b, 0x8c, 0xef, 0x41, 0xb8, 0xb9, 0x1f, 0x56, 0x68, 0x8f, 0x43, 0x07, 0xcf, 0x4d, 0xb3, 0x39, 0x1e, 0x0f, 0x82, 0x05, 0xc1, 0x82, 0x64, 0xb8, 0x83, 0x20, 0xe7, 0x1f, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x6e, 0x88, 0xff, 0xc1, 0x18, 0x58, 0x38, 0x0e, 0x0d, 0xbb, 0xc1, 0xa8, 0x97, 0xdc, 0x60, 0x1d, 0xb9, 0xc1, 0x20, 0x5b, 0x83, 0xb6, 0x40, 0x56, 0x36, 0xc4, 0x70, 0x43, 0xee, 0x7b, 0xf8, 0x8d, 0xc7, 0x83, 0x60, 0x71, 0x1c, 0x3c, 0x1c, 0x5c, 0x1e, 0xdc, 0x1e, 0xfc, 0x1d, 0x54, 0x0f, 0x0a, 0x06, 0x6f, 0x07, 0x2f, 0x07, 0xa7, 0x07, 0x0f, 0x07, 0x6f, 0x07, 0x7f, 0x07, 0x97, 0x07, 0x87, 0x07, 0x47, 0x07, 0x7f, 0x07, 0x9f, 0x0f, 0x1e, 0x05, 0x0c, 0x78, 0x7c, 0x1b, 0x04, 0x1b, 0x9c, 0x03, 0xbe, 0x0f, 0x46, 0x14, 0xee, 0xf1, 0x78, 0x99, 0x35, 0x78, 0x5e, 0x5f, 0xcb, 0x86, 0x5f, 0x94, 0xd6, 0xf0, 0xe7, 0xd2, 0x80, 0x87, 0x96, 0x26, 0x1f, 0x3c, 0xa4, 0x19, 0x65, 0xc3, 0x07, 0x39, 0x6b, 0x50, 0x4c, 0x62, 0x6e, 0xf0, 0xba, 0x48, 0x90, 0x83, 0x98, 0xe7, 0x9a, 0xdb, 0x20, 0xf6, 0x7b, 0xe8, 0x36, 0xbc, 0xdb, 0xb3, 0x86, 0xb7, 0x75, 0x16, 0xc7, 0x83, 0x78, 0xfc, 0x98, 0x6b, 0x0d, 0x6f, 0xeb, 0x1c, 0x44, 0x45, 0xd7, 0x5c, 0xab, 0x41, 0xfc, 0x1a, 0x98, 0x6d, 0x78, 0x9e, 0x64, 0x83, 0x38, 0x1c, 0x97, 0xdb, 0xf0, 0x8b, 0xd2, 0x06, 0x51, 0x48, 0x2e, 0xb7, 0xe1, 0x41, 0xc9, 0x0d, 0x4e, 0x47, 0x22, 0x1b, 0xde, 0xed, 0xd9, 0xa0, 0x29, 0x32, 0xcb, 0x35, 0x28, 0xe1, 0x31, 0x37, 0x78, 0x61, 0x0f, 0xca, 0x06, 0xef, 0xca, 0x48, 0x39, 0x88, 0xf9, 0x32, 0xba, 0x83, 0xc8, 0x33, 0x97, 0x3b, 0x9c, 0x62, 0x1b, 0xc4, 0xff, 0xb9, 0xdc, 0x6a, 0xf0, 0x1a, 0x54, 0x95, 0x0d, 0xcf, 0x93, 0x6c, 0x10, 0xcd, 0x99, 0x73, 0x1b, 0x7e, 0x51, 0xda, 0x20, 0x8e, 0x35, 0xe7, 0x36, 0xfc, 0x45, 0xb3, 0x41, 0x91, 0x8a, 0xb9, 0xc1, 0x92, 0xfa, 0xa5, 0x0d, 0x22, 0x2d, 0x74, 0x6e, 0x83, 0x82, 0x34, 0x76, 0xc0, 0xbb, 0x4b, 0x83, 0xd7, 0xe0, 0x5c, 0xb8, 0xb0, 0x86, 0x3c, 0xf6, 0x86, 0x1f, 0x61, 0x06, 0xa7, 0x0f, 0x22, 0x40, 0x90, 0x6e, 0x83, 0x35, 0x52, 0x4d, 0x6b, 0xf8, 0x77, 0x7e, 0x83, 0xd6, 0xc6, 0x67, 0xdb, 0xf0, 0xb6, 0xce, 0x41, 0x24, 0x88, 0xce, 0x6d, 0x50, 0xf4, 0xe9, 0x6e, 0x10, 0x73, 0xeb, 0x72, 0x6b, 0x10, 0xa4, 0xa7, 0x6b, 0x1c, 0x1a, 0xf0, 0xee, 0xd2, 0xe0, 0xd6, 0xe0, 0x29, 0x16, 0x1f, 0x1b, 0x2e, 0xa9, 0x0d, 0x62, 0x6e, 0x5d, 0x6e, 0x0d, 0x62, 0xbd, 0x8e, 0x6e, 0x83, 0x12, 0x1e, 0x73, 0xc1, 0xe1, 0x83, 0xc8, 0xa3, 0xa5, 0x5b, 0xc3, 0xdb, 0xac, 0x07, 0x51, 0x5b, 0x47, 0xb7, 0xe1, 0x6d, 0x9d, 0xc1, 0xeb, 0x83, 0x08, 0xb1, 0xa5, 0x6b, 0x0d, 0x1e, 0x07, 0xf7, 0xb1, 0xe1, 0x92, 0xda, 0x20, 0xe6, 0xd6, 0xe5, 0xd6, 0xe0, 0x85, 0x80, 0x29, 0x1b, 0x1c, 0xc3, 0x0d, 0x36, 0xbc, 0xad, 0x73, 0x10, 0x21, 0xb6, 0x74, 0xad, 0xc1, 0xeb, 0xfc, 0x3d, 0x36, 0x5c, 0x52, 0x1b, 0xc4, 0xdc, 0xba, 0xdc, 0x1a, 0xb4, 0x0e, 0xd1, 0xbb, 0xe1, 0xdd, 0x9e, 0x0d, 0x1e, 0x78, 0x9d, 0xb2, 0x41, 0x13, 0x10, 0xbd, 0x1b, 0x44, 0x41, 0x2e, 0x5d, 0xad, 0xc1, 0x73, 0xf4, 0x3e, 0x36, 0x5c, 0x52, 0x1b, 0xc4, 0xdc, 0xba, 0xdc, 0x1a, 0x3c, 0x3b, 0x15, 0x66, 0x83, 0x25, 0xf5, 0x4b, 0x6b, 0x78, 0xe3, 0x6e, 0xc3, 0xcb, 0x77, 0x07, 0xf1, 0xcb, 0x48, 0xb7, 0x41, 0xc1, 0x87, 0xb9, 0x06, 0xc5, 0x24, 0xe6, 0x06, 0x21, 0xf8, 0x70, 0xf0, 0xec, 0x54, 0x98, 0x83, 0x18, 0xc6, 0xa5, 0x6b, 0x0d, 0x9e, 0x3f, 0xf7, 0xb1, 0x41, 0xb1, 0xa3, 0xb9, 0x86, 0x77, 0x7b, 0x36, 0x78, 0x2a, 0xe8, 0xca, 0x1a, 0xde, 0xd6, 0xd9, 0x60, 0x11, 0x3f, 0xed, 0x41, 0x84, 0xd8, 0xd2, 0xb5, 0xc1, 0x83, 0x48, 0x57, 0x36, 0x38, 0xb1, 0xdf, 0xac, 0x41, 0xd1, 0x69, 0xbc, 0xc1, 0x2b, 0x52, 0x57, 0x36, 0x88, 0x19, 0x60, 0xba, 0x0d, 0x7f, 0xd1, 0x6c, 0xf0, 0xa8, 0x42, 0x90, 0x0d, 0xbf, 0xb8, 0x6c, 0xf0, 0x58, 0xd6, 0x95, 0x0d, 0x1e, 0xdd, 0xba, 0xb2, 0x06, 0x25, 0x3c, 0xe6, 0x06, 0xaf, 0x30, 0x41, 0xd9, 0xa0, 0xa0, 0xc8, 0xdc, 0xa0, 0x30, 0x54, 0x5d, 0x83, 0xe7, 0x68, 0xa4, 0x6c, 0xb0, 0x46, 0xaa, 0x69, 0x83, 0x32, 0x4b, 0x77, 0xc3, 0x83, 0x92, 0x1b, 0x9c, 0x8e, 0x44, 0x36, 0xbc, 0xdb, 0xb3, 0x41, 0x53, 0x64, 0x96, 0x1b, 0x44, 0x2b, 0x19, 0xdd, 0xc1, 0x33, 0x66, 0x57, 0x36, 0x28, 0xe1, 0x31, 0x37, 0x78, 0x61, 0x0f, 0xca, 0x06, 0x05, 0x45, 0xe6, 0x86, 0x5f, 0x5c, 0xd6, 0xe0, 0x7d, 0x23, 0x29, 0x1b, 0xac, 0x91, 0x6a, 0xda, 0xa0, 0xcc, 0xd2, 0xdd, 0xf0, 0xa0, 0xe4, 0x06, 0xa7, 0x23, 0x91, 0x0d, 0xef, 0xf6, 0x6c, 0xd0, 0x14, 0x99, 0xe5, 0x06, 0x31, 0x5f, 0x46, 0x77, 0xf0, 0x36, 0xdc, 0x95, 0x83, 0xb2, 0xce, 0xb3, 0x0d, 0x97, 0xd4, 0x06, 0x31, 0xb7, 0x2e, 0xb7, 0x06, 0xd1, 0x23, 0x46, 0x77, 0x10, 0xc3, 0xb8, 0x74, 0xb5, 0xe1, 0x13, 0x9b, 0x35, 0x7c, 0xee, 0x32, 0xe0, 0xa1, 0xa5, 0xc9, 0x1b, 0xde, 0xed, 0xd9, 0xe0, 0x14, 0x0f, 0xbb, 0x41, 0xba, 0xeb, 0xe6, 0x06, 0x4d, 0x40, 0xf4, 0xb6, 0x41, 0x09, 0x8f, 0xb9, 0xe1, 0xcb, 0xc9, 0x0d, 0xe2, 0x58, 0x5d, 0x6e, 0x83, 0x73, 0xe1, 0xc2, 0x1a, 0xb4, 0x05, 0xb2, 0xb2, 0xe1, 0x17, 0x97, 0x0d, 0x0f, 0xde, 0xac, 0xe1, 0x89, 0xbb, 0x0d, 0xcf, 0xe2, 0x1d, 0x44, 0xb2, 0x28, 0x5d, 0x1b, 0xde, 0xed, 0x59, 0xc3, 0xdb, 0x3a, 0x07, 0xcf, 0x53, 0xbe, 0x5d, 0xc3, 0xdb, 0x3a, 0x83, 0xd7, 0x07, 0x51, 0xd1, 0x35, 0xd7, 0xe1, 0x14, 0xeb, 0x70, 0x8a, 0x6d, 0xb8, 0xd3, 0x66, 0x00, 0xb4, 0x0b, 0x03, 0x81, 0x93, 0x0b, 0x1b, 0xa3, 0x4b, 0x1b, 0x0b, 0x63, 0x03, 0x49, 0x73, 0xa3, 0x2b, 0x93, 0x83, 0x93, 0x2b, 0xa3, 0x2b, 0x93, 0x03, 0x19, 0x0b, 0x73, 0x03, 0x09, 0x73, 0x23, 0x03, 0xb9, 0x4b, 0x63, 0x63, 0x03, 0x49, 0x3b, 0x73, 0x7b, 0x93, 0x2b, 0x03, 0x49, 0xa3, 0x73, 0x6d, 0x98, 0xa1, 0x35, 0x4c, 0xdc, 0x1a, 0x26, 0x6e, 0x0d, 0x73, 0xbf, 0x41, 0x02, 0xe1, 0xe6, 0xc1, 0xcb, 0x9e, 0x68, 0x36, 0xcc, 0xfd, 0x80, 0xf7, 0x66, 0xf7, 0x1e, 0xbc, 0x50, 0x87, 0xe6, 0x20, 0x92, 0x2f, 0xe6, 0x36, 0x9c, 0x08, 0x1b, 0x44, 0x4d, 0x35, 0xdd, 0x1a, 0xce, 0x91, 0x41, 0xb4, 0xf0, 0xc3, 0x2f, 0x08, 0x36, 0x48, 0x77, 0xdf, 0x39, 0x24, 0x5a, 0x8f, 0xe7, 0xc7, 0xe3, 0x65, 0x96, 0x0d, 0x7f, 0xd1, 0x6c, 0x10, 0xa6, 0x63, 0x1b, 0x2e, 0xa9, 0x0d, 0x8a, 0x1a, 0xf1, 0x35, 0xa4, 0x96, 0x36, 0x3c, 0x28, 0xb9, 0xe1, 0x8e, 0xda, 0xf0, 0x6e, 0xcf, 0x06, 0x4f, 0xfc, 0x55, 0xd9, 0x20, 0xdd, 0x75, 0xf3, 0x20, 0x76, 0x49, 0xe7, 0x3a, 0x9c, 0x62, 0x87, 0x53, 0x6c, 0xf8, 0x0d, 0xc9, 0xa5, 0xe1, 0x17, 0x64, 0x6b, 0x90, 0x88, 0x0f, 0x3c, 0x6e, 0xf0, 0xe8, 0x0f, 0x8c, 0x0d, 0xe2, 0x3e, 0x3a, 0x67, 0x60, 0x48, 0xa2, 0x8b, 0x07, 0x6f, 0xef, 0xc0, 0x38, 0x1e, 0x0f, 0xbf, 0x20, 0x58, 0x3c, 0x78, 0xf8, 0x02, 0xc9, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0xdc, 0x60, 0x25, 0x67, 0xe8, 0x21, 0xb5, 0x74, 0x3c, 0x1e, 0x7e, 0x41, 0xb0, 0x20, 0x58, 0x90, 0x0c, 0x84, 0xe7, 0x90, 0x5c, 0x1a, 0x24, 0x43, 0x06, 0xd1, 0xc2, 0x0e, 0xbf, 0xf1, 0x7c, 0xf1, 0xe0, 0x65, 0x1b, 0x18, 0xc7, 0xe3, 0xe3, 0xd0, 0x20, 0x58, 0x10, 0x6c, 0x90, 0x3e, 0x7d, 0x72, 0x30, 0x8c, 0x1d, 0x06, 0xc1, 0x0a, 0x92, 0x81, 0x38, 0x1d, 0x56, 0x68, 0x87, 0x5f, 0x90, 0x0c, 0xdc, 0x37, 0x87, 0x15, 0xda, 0xe3, 0xdb, 0xf0, 0x1b, 0x8f, 0x17, 0x0f, 0x62, 0x8b, 0x63, 0xee, 0x78, 0x3c, 0xfc, 0x82, 0x60, 0xf1, 0x20, 0x36, 0xb2, 0xe7, 0x06, 0xc1, 0x1a, 0x3c, 0xf6, 0x59, 0x63, 0x83, 0xa7, 0x5e, 0xd1, 0x0c, 0xbf, 0x20, 0x19, 0xa8, 0x36, 0x07, 0x01, 0xef, 0x7f, 0x7c, 0x1b, 0x7e, 0xe3, 0xf1, 0xe2, 0x41, 0xd4, 0xe6, 0xd1, 0x1d, 0x8f, 0x07, 0xc1, 0x06, 0xb1, 0xc8, 0x34, 0xb7, 0x78, 0x10, 0xf1, 0xd7, 0x74, 0xc7, 0xe3, 0x0d, 0xda, 0x6c, 0x69, 0x5a, 0x0d, 0x81, 0x58, 0x0d, 0x75, 0x64, 0x83, 0xa5, 0x7f, 0xfa, 0x07, 0xcd, 0x16, 0x21, 0x0f, 0xbf, 0xf0, 0x8b, 0x41, 0x24, 0x86, 0x5f, 0x10, 0x6c, 0x90, 0x4a, 0xdc, 0x31, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x17, 0x7c, 0x0d, 0x22, 0xb1, 0x21, 0x86, 0x1d, 0x8f, 0x87, 0x5f, 0x10, 0x2c, 0x1e, 0xee, 0xf1, 0x41, 0xb6, 0x86, 0x34, 0xd0, 0xb8, 0x41, 0xfb, 0x1f, 0x9d, 0x87, 0xab, 0xeb, 0x78, 0x3c, 0xfc, 0x82, 0x60, 0xf1, 0x20, 0x68, 0x96, 0x07, 0xd9, 0x1a, 0xd2, 0x40, 0xe3, 0x06, 0x4d, 0x0e, 0x79, 0x1f, 0xae, 0xae, 0xe3, 0xf1, 0xf0, 0x0b, 0x82, 0xc5, 0x83, 0x43, 0xed, 0xec, 0x20, 0x5b, 0x43, 0x1a, 0x68, 0x1c, 0xf0, 0xe8, 0xe4, 0xd2, 0x8d, 0xe7, 0x6b, 0x90, 0x5e, 0x33, 0x7a, 0xf0, 0xd8, 0x95, 0xb3, 0x35, 0x48, 0xbf, 0x10, 0x3d, 0x78, 0x02, 0xab, 0xdb, 0x02, 0xff, 0x26, 0x1e, 0x9c, 0x9f, 0x68, 0x3b, 0x1e, 0x0f, 0xbf, 0x20, 0x58, 0x3c, 0x48, 0x72, 0x60, 0x1e, 0x64, 0x6b, 0x48, 0x03, 0x8d, 0x03, 0x5e, 0x5c, 0x5d, 0xb8, 0xf1, 0x7c, 0x0d, 0x56, 0x2b, 0x00, 0x1f, 0xc4, 0xf7, 0x9f, 0xc6, 0x1a, 0x2c, 0xab, 0x1c, 0x1e, 0x24, 0x03, 0xff, 0x7f, 0x1d, 0x8f, 0xd7, 0x60, 0x05, 0x76, 0xec, 0xc1, 0x89, 0xd9, 0xb7, 0xe3, 0xf1, 0x20, 0x58, 0x3c, 0x58, 0x08, 0xa9, 0x3f, 0xc8, 0xd6, 0x90, 0x06, 0x1a, 0x07, 0x3c, 0xb8, 0x32, 0x77, 0xe3, 0xf9, 0x02, 0x1f, 0x06, 0x1f, 0x2c, 0x31, 0x4b, 0x59, 0xe0, 0xeb, 0xe8, 0x41, 0x32, 0x10, 0x96, 0xe3, 0x71, 0xc7, 0xe3, 0x83, 0x55, 0x27, 0x69, 0x1b, 0xb4, 0xd9, 0xd2, 0xb4, 0x06, 0x91, 0xe5, 0xa3, 0xb0, 0xe1, 0x41, 0xc9, 0x0d, 0x1e, 0x98, 0x22, 0xb3, 0x41, 0x29, 0x21, 0xbe, 0x86, 0x37, 0xee, 0x36, 0xd4, 0xfc, 0x20, 0x12, 0x1b, 0x94, 0x12, 0xe2, 0x6b, 0x50, 0x76, 0xc9, 0x6e, 0x10, 0xd9, 0xe9, 0x74, 0x1b, 0x14, 0x14, 0x99, 0xb3, 0x41, 0xc9, 0xc2, 0x3e, 0x87, 0x5b, 0x66, 0x83, 0x52, 0x42, 0x7c, 0x0d, 0xca, 0x2e, 0xd9, 0x0d, 0xda, 0xff, 0xe8, 0xdc, 0x70, 0x47, 0xcd, 0x86, 0xe7, 0x49, 0x36, 0x5c, 0x69, 0x1b, 0x94, 0x2c, 0xec, 0x73, 0x78, 0xfe, 0x63, 0x83, 0x52, 0x42, 0x7c, 0x0d, 0xca, 0x2e, 0xd9, 0x0d, 0x9a, 0x1c, 0xf2, 0xde, 0x70, 0x47, 0xcd, 0x86, 0xe7, 0x49, 0x36, 0x08, 0xc7, 0xe4, 0x0d, 0x4a, 0x16, 0xf6, 0x39, 0x28, 0xe5, 0x2b, 0x37, 0x28, 0x25, 0xc4, 0xd7, 0xa0, 0xec, 0x92, 0x1d, 0xf0, 0xe8, 0xe4, 0xd2, 0x0d, 0x77, 0xd4, 0x6a, 0x90, 0x5e, 0x33, 0x7a, 0xb0, 0x74, 0xca, 0x75, 0x0d, 0xd2, 0x2f, 0x44, 0x0f, 0x16, 0x7d, 0xef, 0x2d, 0xf0, 0x6f, 0xe2, 0xc1, 0x72, 0xe3, 0xc0, 0x36, 0x3c, 0x4f, 0xb2, 0xc1, 0x09, 0x70, 0x76, 0x83, 0x92, 0x85, 0x7d, 0x0e, 0x52, 0x64, 0x8b, 0x36, 0x28, 0x25, 0xc4, 0xd7, 0xa0, 0xec, 0x92, 0x1d, 0xf0, 0xe2, 0xea, 0xc2, 0x0d, 0x77, 0xd4, 0x6a, 0xb0, 0x5a, 0x01, 0xf8, 0x60, 0x5d, 0xc7, 0xf0, 0x1a, 0x2c, 0xab, 0x1c, 0x3e, 0x58, 0x39, 0x39, 0xbc, 0x06, 0x2b, 0xb0, 0x63, 0x0f, 0x16, 0x59, 0xc7, 0xb6, 0xe1, 0x79, 0x92, 0x0d, 0xd6, 0x0f, 0xea, 0x6f, 0x50, 0xb2, 0xb0, 0xcf, 0xc1, 0xd2, 0x6b, 0xb6, 0x0d, 0xca, 0x2e, 0xd9, 0x01, 0x0f, 0xae, 0xcc, 0xdd, 0x70, 0x47, 0xad, 0xc0, 0x87, 0xc1, 0x07, 0x8d, 0xdd, 0x77, 0x2d, 0xf0, 0x75, 0xf4, 0x41, 0xe3, 0xe8, 0x51, 0x6d, 0x78, 0x9e, 0x64, 0x0d, 0x77, 0xda, 0x0c, 0xd0, 0xb2, 0x85, 0xe5, 0x95, 0xc9, 0xb5, 0xd4, 0x36, 0x28, 0x59, 0xd8, 0xe7, 0xa0, 0xb1, 0xdd, 0xa8, 0x83, 0xc8, 0xcb, 0x51, 0xd8, 0xa0, 0x94, 0x10, 0xdf, 0xe0, 0xc5, 0x13, 0x29, 0x1b, 0x94, 0x12, 0xe2, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x38, 0xe6, 0xa6, 0xdb, 0xa0, 0x64, 0x61, 0x9f, 0x83, 0x77, 0x4f, 0x7b, 0x6c, 0x50, 0x4a, 0x88, 0xaf, 0x41, 0xd9, 0x25, 0xbb, 0xc1, 0x4a, 0xce, 0xd0, 0x35, 0x5c, 0x52, 0x6b, 0x3c, 0x3e, 0x68, 0x37, 0x3d, 0xaa, 0xd9, 0xa0, 0x64, 0x61, 0x9f, 0x83, 0x57, 0x6a, 0x9e, 0x6c, 0x50, 0x4a, 0x88, 0xaf, 0x41, 0x41, 0x1a, 0xbb, 0x86, 0xef, 0xdb, 0x37, 0xd4, 0x88, 0x83, 0x47, 0x64, 0xad, 0xac, 0xc1, 0x02, 0xb9, 0xa7, 0x83, 0x37, 0x0b, 0x9f, 0x6c, 0x50, 0x90, 0xc6, 0xae, 0xe1, 0xfb, 0xf6, 0x0d, 0xda, 0xcc, 0x53, 0xdb, 0xa0, 0x84, 0x8e, 0xdd, 0xe0, 0x91, 0xd6, 0x28, 0x07, 0x61, 0x3a, 0xb6, 0x86, 0x77, 0x7b, 0xd6, 0xf0, 0xb6, 0xce, 0x06, 0x4f, 0x8c, 0x78, 0x69, 0x0d, 0x6f, 0xeb, 0x0c, 0x0e, 0x1f, 0x3c, 0x39, 0x23, 0xa5, 0x0d, 0x4a, 0x7b, 0xcb, 0x35, 0x7c, 0xae, 0xb4, 0x41, 0x7c, 0x7b, 0xd1, 0x1d, 0x3c, 0xf4, 0x1a, 0x65, 0x83, 0x95, 0x2e, 0x4e, 0x1b, 0x3c, 0x9b, 0x59, 0x65, 0x83, 0x76, 0x86, 0xc1, 0x36, 0x28, 0x59, 0xd8, 0xe7, 0x20, 0x4a, 0xad, 0xe6, 0x36, 0x28, 0x25, 0xc4, 0xd7, 0xf0, 0x3c, 0xc9, 0x06, 0x51, 0x7f, 0x3a, 0xb7, 0x41, 0x29, 0x21, 0xbe, 0x06, 0x25, 0x0b, 0xfb, 0x1c, 0xc4, 0x16, 0x0b, 0xdd, 0x06, 0xa5, 0xbd, 0xe5, 0x1a, 0x3e, 0x57, 0xda, 0xe0, 0x75, 0x91, 0x20, 0x1b, 0xc4, 0xb7, 0x17, 0xdd, 0x41, 0x34, 0x76, 0xd1, 0x6d, 0xb0, 0xd2, 0xc5, 0x69, 0x83, 0xd6, 0x21, 0x7a, 0x37, 0x68, 0x33, 0x14, 0x7a, 0x83, 0x92, 0x85, 0x7d, 0x0e, 0xa2, 0xbf, 0x94, 0x6e, 0xc3, 0xf3, 0x24, 0x1b, 0xc4, 0x6d, 0x34, 0xdd, 0x86, 0x5f, 0x94, 0x36, 0x88, 0x63, 0xcd, 0xb9, 0x83, 0x08, 0xc9, 0xa6, 0x3b, 0x88, 0xbc, 0x1c, 0x85, 0x0d, 0xd6, 0xc5, 0x1d, 0x6d, 0x10, 0x01, 0x10, 0x73, 0x1b, 0x94, 0x12, 0xe2, 0x6b, 0xb0, 0x2e, 0xee, 0x68, 0x83, 0x78, 0x89, 0x98, 0x3b, 0x78, 0xb3, 0xf0, 0xc9, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x39, 0x89, 0xb9, 0x0d, 0xca, 0x2e, 0xd9, 0x0d, 0x9e, 0x5f, 0x44, 0xb2, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0x09, 0x8b, 0xb9, 0x83, 0x37, 0x0b, 0x9f, 0xcc, 0x06, 0xeb, 0xe2, 0x8e, 0x36, 0x88, 0xeb, 0x89, 0xb9, 0x0d, 0x4a, 0x16, 0xf6, 0x39, 0x78, 0x43, 0xf9, 0xfc, 0x41, 0xe4, 0xe5, 0x28, 0x6c, 0x50, 0x4a, 0x88, 0xaf, 0xe1, 0x92, 0x5a, 0xe3, 0xf1, 0xc1, 0xe3, 0x8b, 0x48, 0xda, 0xa0, 0xec, 0x92, 0xdd, 0xe0, 0xbd, 0x68, 0x24, 0x1b, 0xbc, 0x59, 0xf8, 0x64, 0x36, 0x28, 0x59, 0xd8, 0xe7, 0x20, 0xfa, 0x53, 0x96, 0x0e, 0x22, 0x2f, 0x47, 0x61, 0x83, 0x57, 0x57, 0x60, 0x0c, 0x82, 0xc5, 0x83, 0x58, 0x85, 0x3d, 0x3b, 0x1e, 0x6f, 0x10, 0x4b, 0x4c, 0x6e, 0xc3, 0x2f, 0xfc, 0x0a, 0x92, 0x01, 0x43, 0xff, 0xee, 0x90, 0x5c, 0x5a, 0x90, 0x0c, 0xfc, 0xde, 0x77, 0x48, 0x2e, 0x1d, 0x8f, 0x17, 0x0f, 0xe2, 0x12, 0xca, 0xed, 0x78, 0xbc, 0x78, 0x10, 0x07, 0x47, 0x6f, 0xc7, 0xe3, 0x0d, 0x4a, 0x09, 0xf1, 0x35, 0xfc, 0xe2, 0xb2, 0x86, 0xcf, 0x5d, 0x36, 0x78, 0x8c, 0x05, 0xc6, 0x41, 0x04, 0xcf, 0xbf, 0xad, 0xe1, 0x73, 0x97, 0x0d, 0x22, 0x8f, 0xc9, 0xed, 0x20, 0xc6, 0x27, 0xe4, 0xd6, 0x70, 0x49, 0xad, 0xf1, 0xf8, 0xe0, 0xb5, 0x68, 0x24, 0xb5, 0x41, 0x29, 0x21, 0xbe, 0x06, 0x25, 0x0b, 0xfb, 0x1c, 0xc4, 0x5c, 0x6f, 0xdc, 0x06, 0x05, 0x69, 0xec, 0x86, 0x1a, 0xb1, 0x06, 0x0b, 0xe4, 0x9e, 0x0e, 0x12, 0x5b, 0xaa, 0x36, 0x28, 0x25, 0xc4, 0xd7, 0xa0, 0x64, 0x61, 0x9f, 0x83, 0x48, 0x08, 0x97, 0xdb, 0xf0, 0x8b, 0xd2, 0x06, 0x61, 0x3a, 0x76, 0x10, 0xab, 0xed, 0x72, 0x07, 0x91, 0x97, 0xa3, 0x50,}; +unsigned int u3_Ivory_pill_len = 1528486; diff --git a/vere/pkg/vere/ivory/ivory.h b/vere/pkg/vere/ivory/ivory.h new file mode 100644 index 0000000..7d20a0f --- /dev/null +++ b/vere/pkg/vere/ivory/ivory.h @@ -0,0 +1,5 @@ +#ifndef u3_Ivory_pill_H +#define u3_Ivory_pill_H +extern unsigned char u3_Ivory_pill[]; +extern unsigned int u3_Ivory_pill_len; +#endif diff --git a/vere/pkg/vere/ivory/ivory.sh b/vere/pkg/vere/ivory/ivory.sh new file mode 100755 index 0000000..02b96fa --- /dev/null +++ b/vere/pkg/vere/ivory/ivory.sh @@ -0,0 +1,47 @@ +#!/bin/bash +function xxd_i() { + var=$1 + src_file=$2 + dst_h_file=$3 + dst_c_file=$4 + + # Generate `.h` file. + echo "Generating ${dst_h_file}..." + echo "#ifndef ${var}_H" > $dst_h_file + echo "#define ${var}_H" >> $dst_h_file + echo "extern unsigned char $var[];" >> $dst_h_file + echo "extern unsigned int ${var}_len;" >> $dst_h_file + echo '#endif' >> $dst_h_file + + # Generate `.c` file. + echo "Generating ${dst_c_file}..." + printf '#include "%s"\n' $dst_h_file > $dst_c_file + echo "unsigned char $var[] = {" >> $dst_c_file + cnt=0 + while IFS='' read line + do + for byte in $line + do + echo -n " 0x$byte," >> $dst_c_file + cnt=$((cnt+1)) + done + # <() is syntax for Bash process substitution. + done < <(od -An -v -tx1 $src_file) + echo "};" >> $dst_c_file + echo "unsigned int ${var}_len = $cnt;" >> $dst_c_file +} + +version=ac87d8bbb3915d5e7c880b97c102ffe22112335f +src_remote=https://github.com/urbit/urbit/raw/$version/bin/ivory.pill +src_file=ivory.pill +dst_h_file=ivory.h +dst_c_file=ivory.c + +rm $dst_h_file $dst_c_file + +echo "Downloading ivory pill from ${src_remote}" +curl -LJ -o $src_file $src_remote + +xxd_i u3_Ivory_pill $src_file $dst_h_file $dst_c_file + +rm $src_file diff --git a/vere/pkg/vere/king.c b/vere/pkg/vere/king.c new file mode 100644 index 0000000..36a24db --- /dev/null +++ b/vere/pkg/vere/king.c @@ -0,0 +1,1729 @@ +/// @file +/// +/// The main loop of the daemon process. + +#include "vere.h" + +#include "curl/curl.h" +#include "ivory.h" +#include "noun.h" +#include "pace.h" +#include "ur/ur.h" +#include "uv.h" +#include "version.h" + +// It's unclear which file owns this variable, so put it here for now. +u3_host u3_Host; + +u3_king u3_King; + +static const c3_c* ver_hos_c = "https://bootstrap.urbit.org/vere"; + +// stash config flags for worker +// +static c3_w sag_w; + +/* +:: skeleton client->king protocol +:: +|% +:: +doom: daemon command +:: +:: Should require auth to the daemon itself +:: ++$ doom + $% :: boot + :: + :: p: boot procedure + :: q: pill specifier + :: r: path to pier + :: + [%boot p=boot q=pill r=@t] + :: end the daemon + :: + :: XX not implemented + :: + [%exit ~] + :: acquire a pier + :: + :: XX used for restart, may not be right + :: + [%pier p=(unit @t)] + :: admin ship actions + :: + :: XX not implemented + :: + [%root p=ship q=wyrd] + == +:: +boot: boot procedures +:: ++$ boot + $% :: mine a comet + :: + :: p: optionally under a specific star + :: + [%come p=(unit ship)] + :: boot with real keys + :: + :: And perform pre-boot validation, retrieve snapshot, etc. + :: + [%dawn p=seed] + :: boot with fake keys + :: + :: p: identity + :: + [%fake p=ship] + == +:: +pill: boot-sequence ingredients +:: +:: p: jammed pill +:: q: optional %into ovum overriding that of .p +:: ++$ pill [p=@ q=(unit ovum)] +-- +*/ + +void _king_doom(u3_noun doom); + void _king_boot(u3_noun boot); + void _king_come(u3_noun star, u3_noun pill, u3_noun path); + void _king_dawn(u3_noun seed, u3_noun pill, u3_noun path); + void _king_fake(u3_noun ship, u3_noun pill, u3_noun path); + void _king_pier(u3_noun pier); + +static u3_noun _king_get_atom(c3_c* url_c); + +/* _king_defy_fate(): invalid fate +*/ +void +_king_defy_fate() +{ + exit(1); +} + +/* _king_doom(): doom parser +*/ +void +_king_doom(u3_noun doom) +{ + u3_noun load; + void (*next)(u3_noun); + + u3_assert(_(u3a_is_cell(doom))); + u3_assert(_(u3a_is_cat(u3h(doom)))); + + switch ( u3h(doom) ) { + case c3__boot: + next = _king_boot; + break; + case c3__pier: + next = _king_pier; + break; + default: + _king_defy_fate(); + } + + load = u3k(u3t(doom)); + u3z(doom); + next(load); +} + +/* _king_boot(): boot parser +*/ +void +_king_boot(u3_noun bul) +{ + u3_noun boot, pill, path; + void (*next)(u3_noun, u3_noun, u3_noun); + + u3_assert(_(u3a_is_cell(bul))); + u3x_trel(bul, &boot, &pill, &path); + u3_assert(_(u3a_is_cat(u3h(boot)))); + + switch ( u3h(boot) ) { + case c3__fake: { + next = _king_fake; + break; + } + case c3__come: { + next = _king_come; + break; + } + case c3__dawn: { + next = _king_dawn; + break; + } + default: + _king_defy_fate(); + return; + } + + next(u3k(u3t(boot)), u3k(pill), u3k(path)); + u3z(bul); +} + +/* _king_prop(): events from prop arguments +*/ +u3_noun +_king_prop() +{ + u3_noun mor = u3_nul; + while ( 0 != u3_Host.ops_u.vex_u ) { + u3_even* vex_u = u3_Host.ops_u.vex_u; + switch ( vex_u->kin_i ) { + case 1: { // file + u3_atom jam = u3m_file(vex_u->loc_c); + mor = u3nc(u3ke_cue(jam), mor); + } break; + + case 2: { // url + u3l_log("boot: downloading prop %s", vex_u->loc_c); + u3_atom jam = _king_get_atom(vex_u->loc_c); + mor = u3nc(u3ke_cue(jam), mor); + } break; + + case 3: { // name + //NOTE this implementation limits us to max 213 char prop names + c3_c url_c[256]; + snprintf(url_c, 255, + //TODO should maybe respect ops_u.url_c + "https://bootstrap.urbit.org/props/" URBIT_VERSION "/%s.jam", + vex_u->loc_c); + u3l_log("boot: downloading prop %s", url_c); + u3_atom jam = _king_get_atom(url_c); + mor = u3nc(u3ke_cue(jam), mor); + } break; + + default: { + u3l_log("invalid prop source %d", vex_u->kin_i); + exit(1); + } + } + + u3_Host.ops_u.vex_u = vex_u->pre_u; + } + return mor; +} + +/* _king_fake(): boot with fake keys +*/ +void +_king_fake(u3_noun ship, u3_noun pill, u3_noun path) +{ + // XX link properly + // + u3_noun vent = u3nc(c3__fake, u3k(ship)); + u3K.pir_u = u3_pier_boot(sag_w, ship, vent, pill, path, + u3_none, _king_prop()); +} + +/* _king_come(): mine a comet under star (unit) +** +** XX revise to exclude star argument +*/ +void +_king_come(u3_noun star, u3_noun pill, u3_noun path) +{ + _king_dawn(u3_dawn_come(), pill, path); +} + +static void +_king_slog(u3_noun hod) +{ + u3_pier_tank(0, 0, u3k(u3t(hod))); + u3z(hod); +} + +/* _king_dawn(): boot from keys, validating +*/ +void +_king_dawn(u3_noun feed, u3_noun pill, u3_noun path) +{ + // enable ivory slog printfs + // + u3C.slog_f = _king_slog; + + u3_noun ship = ( c3y == u3a_is_cell(u3h(feed)) ) + ? u3h(u3t(feed)) + : u3h(feed); + u3_noun vent = u3_dawn_vent(u3k(ship), u3k(feed)); + // XX link properly + // + u3K.pir_u = u3_pier_boot(sag_w, u3k(ship), vent, pill, path, + feed, _king_prop()); + + // disable ivory slog printfs + // + u3C.slog_f = 0; +} + +/* _king_pier(): pier parser +*/ +void +_king_pier(u3_noun pier) +{ + if ( (c3n == u3du(pier)) || + (c3n == u3ud(u3t(pier))) ) { + u3m_p("daemon: invalid pier", pier); + exit(1); + } + + u3K.pir_u = u3_pier_stay(sag_w, u3k(u3t(pier))); + u3z(pier); +} + +/* king_curl_alloc(): allocate a response buffer for curl +** XX deduplicate with dawn.c +*/ +size_t +king_curl_alloc(void* dat_v, size_t uni_t, size_t mem_t, void* buf_v) +{ + uv_buf_t* buf_u = buf_v; + + size_t siz_t = uni_t * mem_t; + buf_u->base = c3_realloc(buf_u->base, 1 + siz_t + buf_u->len); + + memcpy(buf_u->base + buf_u->len, dat_v, siz_t); + buf_u->len += siz_t; + buf_u->base[buf_u->len] = 0; + + return siz_t; +} + +/* king_curl_bytes(): HTTP GET url_c, produce response body bytes. +*/ +c3_i +king_curl_bytes(c3_c* url_c, c3_w* len_w, c3_y** hun_y, c3_t veb_t, c3_y tri_y) +{ + c3_i ret_i = 0; + CURL *cul_u; + CURLcode res_i; + long cod_i; + c3_y try_y = 0; + uv_buf_t buf_u = uv_buf_init(c3_malloc(1), 0); + + if ( !(cul_u = curl_easy_init()) ) { + u3l_log("failed to initialize libcurl"); + exit(1); + } + + u3K.ssl_curl_f(cul_u); + curl_easy_setopt(cul_u, CURLOPT_URL, url_c); + curl_easy_setopt(cul_u, CURLOPT_WRITEFUNCTION, king_curl_alloc); + curl_easy_setopt(cul_u, CURLOPT_WRITEDATA, (void*)&buf_u); + curl_easy_setopt(cul_u, CURLOPT_SERVER_RESPONSE_TIMEOUT, 30); + + while ( tri_y > try_y ) { + sleep(try_y++); + res_i = curl_easy_perform(cul_u); + curl_easy_getinfo(cul_u, CURLINFO_RESPONSE_CODE, &cod_i); + + if ( CURLE_OK != res_i ) { + if ( veb_t ) { + u3l_log("curl: failed to fetch %s: %s", + url_c, curl_easy_strerror(res_i)); + } + ret_i = -1; + } + else if ( 300 <= cod_i ) { + if ( veb_t ) { + u3l_log("curl: error fetching %s: HTTP %ld", url_c, cod_i); + } + ret_i = -2; + break; + } + else { + *len_w = buf_u.len; + *hun_y = (c3_y*)buf_u.base; + ret_i = 0; + break; + } + } + + curl_easy_cleanup(cul_u); + + return ret_i; +} + +/* _king_get_atom(): HTTP GET url_c, produce response body as atom. +*/ +static u3_noun +_king_get_atom(c3_c* url_c) +{ + c3_w len_w; + c3_y* hun_y; + u3_noun pro; + + if ( king_curl_bytes(url_c, &len_w, &hun_y, 1, 5) ) { + u3_king_bail(); + exit(1); + } + + pro = u3i_bytes(len_w, hun_y); + c3_free(hun_y); + return pro; +} + +/* _king_get_pace(): get "pace" (release channel name). +*/ +static c3_c* +_king_get_pace(void) +{ + struct stat buf_u; + c3_c* pat_c; + c3_w red_w, len_w; + c3_i ret_i, fid_i; + + ret_i = asprintf(&pat_c, "%s/.bin/pace", u3_Host.dir_c); + u3_assert( ret_i > 0 ); + + fid_i = c3_open(pat_c, O_RDONLY, 0644); + + if ( (fid_i < 0) || (fstat(fid_i, &buf_u) < 0) ) { + c3_free(pat_c); + return strdup("live"); + } + + c3_free(pat_c); + + len_w = buf_u.st_size; + pat_c = c3_malloc(len_w + 1); + red_w = read(fid_i, pat_c, len_w); + close(fid_i); + + if ( len_w != red_w ) { + c3_free(pat_c); + u3l_log("unable to read pace file, " + "falling back to default (\"live\")\n"); + return strdup("live"); + } + + pat_c[len_w] = 0; + + while ( len_w-- && isspace(pat_c[len_w]) ) { + pat_c[len_w] = 0; + } + + return pat_c; +} + +/* u3_king_next(): get next vere version string, if it exists. +** return: 0 is success, -1 is no-op (same version), -2 is error +*/ +c3_i +u3_king_next(c3_c* pac_c, c3_c** out_c) +{ + c3_c* ver_c; + c3_c* url_c; + c3_w len_w; + c3_y* hun_y; + c3_i ret_i; + + ret_i = asprintf(&url_c, "%s/%s/%s/next", ver_hos_c, pac_c, URBIT_VERSION); + u3_assert( ret_i > 0 ); + + // no-op if pace is set to once + // + if ( 0 == strcmp(pac_c, "once") ) { + c3_free(url_c); + fprintf(stderr, "vere: pace is set to \"once\", skipping upgrade\r\n"); + fprintf(stderr, "vere: set pace to \"live\" and try again\r\n"); + return -1; + } + + // skip printfs on failed requests (/next is usually not present) + //REVIEW new retry logic means this case will take longer. make retries optional? + // + if ( king_curl_bytes(url_c, &len_w, &hun_y, 0, 5) ) { + c3_free(url_c); + + ret_i = asprintf(&url_c, "%s/%s/last", ver_hos_c, pac_c); + u3_assert( ret_i > 0 ); + + // enable printfs on failed requests (/last must be present) + // XX support channel redirections + // + if ( king_curl_bytes(url_c, &len_w, &hun_y, 1, 5) ) + { + c3_free(url_c); + return -2; + } + } + + c3_free(url_c); + + // null-terminate + // + hun_y = c3_realloc(hun_y, 1 + len_w); + hun_y[len_w] = 0; + c3_c* newline_c; + while ( (newline_c = strrchr((c3_c*)hun_y, '\n')) ) { + *newline_c = 0; + } + + ver_c = (c3_c*)hun_y; + + // XX trim ver_c ? + // + if ( 0 == strcmp(ver_c, URBIT_VERSION) ) { + c3_free(ver_c); + return -1; + } + + *out_c = ver_c; + return 0; +} + +/* _get_cmd_output(): Run a shell command and capture its output. + Exits with an error if the command fails or produces no output. + The 'out_c' parameter should be an array of sufficient length to hold + the command's output, up to a max of len_c characters. +*/ +static void +_get_cmd_output(c3_c *cmd_c, c3_c *out_c, c3_w len_c) +{ + FILE *fp = popen(cmd_c, "r"); + if ( NULL == fp ) { + u3l_log("'%s' failed", cmd_c); + exit(1); + } + + if ( NULL == fgets(out_c, len_c, fp) ) { + u3l_log("'%s' produced no output", cmd_c); + exit(1); + } + + pclose(fp); +} + +/* _arvo_hash(): get a shortened hash of the last git commit + that modified the sys/ directory in arvo. + hax_c must be an array with length >= 11. +*/ +static void +_arvo_hash(c3_c *out_c, c3_c *arv_c) +{ + c3_c cmd_c[2048]; + + sprintf(cmd_c, "git -C %s log -1 HEAD --format=%%H -- sys/", arv_c); + _get_cmd_output(cmd_c, out_c, 11); + + out_c[10] = 0; // end with null-byte +} + +/* _git_pill_url(): produce a URL from which to download a pill + based on the location of an arvo git repository. +*/ +static void +_git_pill_url(c3_c *out_c, c3_c *arv_c) +{ + c3_c hax_c[11]; + + assert(NULL != arv_c); + + if ( 0 != system("which git >> /dev/null") ) { + u3l_log("boot: could not find git executable"); + exit(1); + } + + _arvo_hash(hax_c, arv_c); + sprintf(out_c, "https://bootstrap.urbit.org/git-%s.pill", hax_c); +} + +/* _boothack_pill(): parse CLI pill arguments into +pill specifier +*/ +static u3_noun +_boothack_pill(void) +{ + u3_noun arv = u3_nul; + u3_noun pil; + + if ( 0 != u3_Host.ops_u.pil_c ) { + u3l_log("boot: loading pill %s", u3_Host.ops_u.pil_c); + pil = u3m_file(u3_Host.ops_u.pil_c); + } + else { + c3_c url_c[2048]; + + if ( (c3y == u3_Host.ops_u.git) && + (0 != u3_Host.ops_u.arv_c) ) + { + _git_pill_url(url_c, u3_Host.ops_u.arv_c); + } + else { + u3_assert( 0 != u3_Host.ops_u.url_c ); + strcpy(url_c, u3_Host.ops_u.url_c); + } + + u3l_log("boot: downloading pill %s", url_c); + pil = _king_get_atom(url_c); + } + + if ( 0 != u3_Host.ops_u.arv_c ) { + u3l_log("boot: preparing filesystem from %s", + u3_Host.ops_u.arv_c); + arv = u3nc(u3_nul, u3_unix_initial_into_card(u3_Host.ops_u.arv_c)); + } + + return u3nc(pil, arv); +} + +/* _boothack_key(): parse a private key file or value +*/ +static u3_noun +_boothack_key(u3_noun kef) +{ + u3_noun seed; + u3_weak ship = u3_none; + + { + u3_noun des = u3dc("slaw", c3__uw, u3k(kef)); + + if ( u3_nul == des ) { + c3_c* kef_c = u3r_string(kef); + u3l_log("dawn: invalid private keys: %s", kef_c); + c3_free(kef_c); + exit(1); + } + + // +feed:able:jael: keyfile + // + u3_noun pro = u3m_soft(0, u3ke_cue, u3k(u3t(des))); + if ( u3_blip != u3h(pro) ) { + u3l_log("dawn: unable to cue keyfile"); + exit(1); + } + seed = u3k(u3t(pro)); + u3z(pro); + + // if it's a single seed, we can trivially sanity-check early + // + if ( c3y == u3ud(u3h(seed)) ) { + // local reference, not counted + // + ship = u3h(seed); + } + + u3z(des); + u3z(kef); + } + + if ( 0 != u3_Host.ops_u.who_c ) { + u3_noun woh = u3i_string(u3_Host.ops_u.who_c); + u3_noun whu = u3dc("slaw", 'p', u3k(woh)); + + if ( u3_nul == whu ) { + u3l_log("dawn: invalid ship specified with -w %s", + u3_Host.ops_u.who_c); + exit(1); + } + + if ( (u3_none != ship) && + (c3n == u3r_sing(ship, u3t(whu))) ) + { + u3_noun how = u3dc("scot", 'p', u3k(ship)); + c3_c* how_c = u3r_string(u3k(how)); + u3l_log("dawn: mismatch between -w %s and -K %s", + u3_Host.ops_u.who_c, how_c); + + u3z(how); + c3_free(how_c); + exit(1); + } + + u3z(woh); + u3z(whu); + } + + return seed; +} + +/* _boothack_doom(): parse CLI arguments into $doom +*/ +static u3_noun +_boothack_doom(void) +{ + u3_noun pax = u3i_string(u3_Host.dir_c); + u3_noun bot; + + if ( c3n == u3_Host.ops_u.nuu ) { + return u3nt(c3__pier, u3_nul, pax); + } + else if ( 0 != u3_Host.ops_u.fak_c ) { + u3_noun fak = u3i_string(u3_Host.ops_u.fak_c); + u3_noun whu = u3dc("slaw", 'p', u3k(fak)); + + if ( u3_nul == whu ) { + u3l_log("boot: malformed -F ship %s", u3_Host.ops_u.fak_c); + u3_king_bail(); + } + + bot = u3nc(c3__fake, u3k(u3t(whu))); + + u3z(whu); + u3z(fak); + } + else if ( 0 != u3_Host.ops_u.who_c ) { + u3_noun kef; + + if ( 0 != u3_Host.ops_u.key_c ) { + kef = u3m_file(u3_Host.ops_u.key_c); + + // handle trailing newline + // + { + c3_c* key_c = u3r_string(kef); + c3_w len_w = strlen(key_c); + + if (len_w && (key_c[len_w - 1] == '\n')) { + key_c[len_w - 1] = '\0'; + u3z(kef); + kef = u3i_string(key_c); + } + + c3_free(key_c); + } + } + else if ( 0 != u3_Host.ops_u.gen_c ) { + kef = u3i_string(u3_Host.ops_u.gen_c); + } + else { + u3l_log("boot: must specify a key with -k or -G"); + exit(1); + } + + bot = u3nc(c3__dawn, _boothack_key(kef)); + } + else { + // XX allow parent star to be specified? + // + bot = u3nc(c3__come, u3_nul); + } + + return u3nq(c3__boot, bot, _boothack_pill(), pax); +} + +/* _king_sign_init(): initialize daemon signal handlers +*/ +static void +_king_sign_init(void) +{ + // gracefully shutdown on SIGTERM + // + { + u3_usig* sig_u; + + sig_u = c3_malloc(sizeof(u3_usig)); + uv_signal_init(u3L, &sig_u->sil_u); + + sig_u->num_i = SIGTERM; + sig_u->nex_u = u3_Host.sig_u; + u3_Host.sig_u = sig_u; + } + + // forward SIGINT to worker + // + { + u3_usig* sig_u; + + sig_u = c3_malloc(sizeof(u3_usig)); + uv_signal_init(u3L, &sig_u->sil_u); + + sig_u->num_i = SIGINT; + sig_u->nex_u = u3_Host.sig_u; + u3_Host.sig_u = sig_u; + } + + // inject new dimensions after terminal resize + // + { + u3_usig* sig_u; + + sig_u = c3_malloc(sizeof(u3_usig)); + uv_signal_init(u3L, &sig_u->sil_u); + + sig_u->num_i = SIGWINCH; + sig_u->nex_u = u3_Host.sig_u; + u3_Host.sig_u = sig_u; + } + + // handle SIGINFO (if available) + // +#ifdef SIGINFO + { + u3_usig* sig_u; + + sig_u = c3_malloc(sizeof(u3_usig)); + uv_signal_init(u3L, &sig_u->sil_u); + + sig_u->num_i = SIGINFO; + sig_u->nex_u = u3_Host.sig_u; + u3_Host.sig_u = sig_u; + } +#endif + + // handle SIGUSR1 (fallback for SIGINFO) + // + { + u3_usig* sig_u; + + sig_u = c3_malloc(sizeof(u3_usig)); + uv_signal_init(u3L, &sig_u->sil_u); + + sig_u->num_i = SIGUSR1; + sig_u->nex_u = u3_Host.sig_u; + u3_Host.sig_u = sig_u; + } +} + +/* _king_sign_cb: signal callback. +*/ +static void +_king_sign_cb(uv_signal_t* sil_u, c3_i num_i) +{ + switch ( num_i ) { + default: { + u3l_log("\r\nmysterious signal %d", num_i); + break; + } + + case SIGTERM: { + u3_king_exit(); + break; + } + + case SIGINT: { + u3l_log("\r\ninterrupt"); + u3_term_ef_ctlc(); + + break; + } + + case SIGWINCH: { + u3_term_ef_winc(); + break; + } + + // fallthru if defined + // +#ifdef SIGINFO + case SIGINFO: +#endif + case SIGUSR1: { + u3_king_slog(); + break; + } + } +} + +/* _king_sign_move(): enable daemon signal handlers +*/ +static void +_king_sign_move(void) +{ + u3_usig* sig_u; + + for ( sig_u = u3_Host.sig_u; sig_u; sig_u = sig_u->nex_u ) { + uv_signal_start(&sig_u->sil_u, _king_sign_cb, sig_u->num_i); + } +} + +/* _king_sign_hold(): disable daemon signal handlers +*/ +static void +_king_sign_hold(void) +{ + u3_usig* sig_u; + + for ( sig_u = u3_Host.sig_u; sig_u; sig_u = sig_u->nex_u ) { + uv_signal_stop(&sig_u->sil_u); + } +} + +/* _king_sign_close(): dispose daemon signal handlers +*/ +static void +_king_sign_close(void) +{ + u3_usig* sig_u; + + for ( sig_u = u3_Host.sig_u; sig_u; sig_u = sig_u->nex_u ) { + uv_close((uv_handle_t*)&sig_u->sil_u, (uv_close_cb)free); + } +} +/* _boothack_cb(): setup pier via message as if from client. +*/ +void +_boothack_cb(uv_timer_t* tim_u) +{ + _king_doom(_boothack_doom()); + + // copy binary into pier on boot + // + if ( (c3y == u3_Host.ops_u.nuu) + && (c3y == u3_Host.ops_u.doc) ) + { + u3_king_dock(U3_VERE_PACE); + } +} + +/* _king_loop_init(): stuff that comes before the event loop +*/ +void +_king_loop_init() +{ + // initialize terminal/logging + // + u3_term_log_init(); + + // start signal handlers + // + _king_sign_init(); + _king_sign_move(); + + // async "boothack" + // / + uv_timer_start(&u3K.tim_u, _boothack_cb, 0, 0); +} + +/* _king_loop_exit(): cleanup after event loop +*/ +void +_king_loop_exit() +{ +} + +static void +_king_boot_ivory(void) +{ + c3_d len_d; + c3_y* byt_y; + + if ( u3_Host.ops_u.lit_c ) { + if ( c3n == u3u_mmap_read("lite", u3_Host.ops_u.lit_c, &len_d, &byt_y) ) { + u3l_log("lite: unable to load ivory pill at %s", + u3_Host.ops_u.lit_c); + exit(1); + } + } + else { + len_d = u3_Ivory_pill_len; + byt_y = u3_Ivory_pill; + } + + { + u3_cue_xeno* sil_u = u3s_cue_xeno_init_with(ur_fib27, ur_fib28); + u3_weak pil; + + if ( u3_none == (pil = u3s_cue_xeno_with(sil_u, len_d, byt_y)) ) { + u3l_log("lite: unable to cue ivory pill"); + exit(1); + } + + u3s_cue_xeno_done(sil_u); + + if ( c3n == u3v_boot_lite(pil)) { + u3l_log("lite: boot failed"); + exit(1); + } + } + + if ( u3_Host.ops_u.lit_c ) { + if ( c3n == u3u_munmap(len_d, byt_y) ) { + u3l_log("lite: unable to unmap ivory pill at %s", + u3_Host.ops_u.lit_c); + exit(1); + } + } +} + +/* u3_king_commence(): start the daemon +*/ +void +u3_king_commence() +{ + u3_Host.lup_u = uv_default_loop(); + + // initialize top-level timer + // + uv_timer_init(u3L, &u3K.tim_u); + + // start up a "fast-compile" arvo for internal use only + // (with hashboard and sample-profiling always disabled) + // + sag_w = u3C.wag_w; + u3C.wag_w |= u3o_hashless; + u3C.wag_w &= ~u3o_debug_cpu; + + // wire up signal controls + // + u3C.sign_hold_f = _king_sign_hold; + u3C.sign_move_f = _king_sign_move; + + // Ignore SIGPIPE signals. + { + sigset_t set_s; + sigemptyset(&set_s); + sigaddset(&set_s, SIGPIPE); + pthread_sigmask(SIG_BLOCK, &set_s, NULL); + } + + // boot the ivory pill + // + _king_boot_ivory(); + + // disable core dumps (due to lmdb size) + // + { + struct rlimit rlm; + + getrlimit(RLIMIT_CORE, &rlm); + rlm.rlim_cur = 0; + + if ( 0 != setrlimit(RLIMIT_CORE, &rlm) ) { + u3l_log("king: unable to disable core dumps: %s", strerror(errno)); + exit(1); + } + } + + // run the loop + // + _king_loop_init(); + uv_run(u3L, UV_RUN_DEFAULT); + _king_loop_exit(); + u3m_stop(); +} + +/* u3_king_stub(): get the One Pier for unreconstructed code. +*/ +u3_pier* +u3_king_stub(void) +{ + if ( !u3K.pir_u ) { + u3_assert(!"king: no pier"); + } + else { + return u3K.pir_u; + } +} + +/* _king_forall(): run on all piers +*/ +static void +_king_forall(void (*pir_f)(u3_pier*)) +{ + u3_pier* pir_u = u3K.pir_u; + + while ( pir_u ) { + pir_f(pir_u); + pir_u = pir_u->nex_u; + } +} + +/* u3_king_slog(): print status info. +*/ +void +u3_king_slog(void) +{ + _king_forall(u3_pier_slog); +} + +/* _king_forall_unlink(): run on all piers, unlinking from king. +*/ +static void +_king_forall_unlink(void (*pir_f)(u3_pier*)) +{ + u3_pier* pir_u = u3K.pir_u; + + while ( u3K.pir_u ) { + u3_pier* pir_u = u3K.pir_u; + u3K.pir_u = pir_u->nex_u; + pir_f(pir_u); + } +} + +/* _king_curl_file(): HTTP GET [url_c], write response body to [fil_u]. +*/ +static c3_i +_king_save_file(c3_c* url_c, FILE* fil_u) +{ + c3_i ret_i = 0; + CURL *cul_u; + CURLcode res_i; + long cod_i; + + if ( !(cul_u = curl_easy_init()) ) { + u3l_log("failed to initialize libcurl"); + exit(1); + } + + u3K.ssl_curl_f(cul_u); + curl_easy_setopt(cul_u, CURLOPT_URL, url_c); + curl_easy_setopt(cul_u, CURLOPT_WRITEDATA, (void*)fil_u); + + res_i = curl_easy_perform(cul_u); + curl_easy_getinfo(cul_u, CURLINFO_RESPONSE_CODE, &cod_i); + + // XX retry? + // + if ( CURLE_OK != res_i ) { + u3l_log("curl: failed %s: %s", url_c, curl_easy_strerror(res_i)); + ret_i = -1; + } + if ( 300 <= cod_i ) { + u3l_log("curl: error %s: HTTP %ld", url_c, cod_i); + ret_i = -2; + } + + curl_easy_cleanup(cul_u); + return ret_i; +} + +/* _king_make_pace(): mkdir -p $pier/.bin/[pace] +*/ +static c3_i +_king_make_pace(c3_c* pac_c) +{ + c3_c* bin_c; + c3_i ret_i; + + ret_i = asprintf(&bin_c, "%s/.bin", u3_Host.dir_c); + u3_assert( ret_i > 0 ); + + ret_i = c3_mkdir(bin_c, 0700); + + if ( ret_i && (EEXIST != errno) ) { + fprintf(stderr, "vere: mkdir %s failed: %s\n", bin_c, strerror(errno)); + c3_free(bin_c); + return -1; + } + + c3_free(bin_c); + + ret_i = asprintf(&bin_c, "%s/.bin/%s/", u3_Host.dir_c, pac_c); + u3_assert( ret_i > 0 ); + + // XX asserting wrapper conflicts here (and is bypassed for .urb) + // + ret_i = mkdir(bin_c, 0700); + + if ( ret_i && (EEXIST != errno) ) { + fprintf(stderr, "vere: mkdir %s failed: %s\n", bin_c, strerror(errno)); + c3_free(bin_c); + return -1; + } + + c3_free(bin_c); + return 0; +} + +static c3_i +_king_write_raw(c3_i fid_i, c3_y* buf_y, size_t len_i); + +/* _king_init_pace(): save pace file if not present +*/ +static c3_i +_king_init_pace(c3_c* pac_c) +{ + c3_c* bin_c; + c3_i fid_i, ret_i = asprintf(&bin_c, "%s/.bin/pace", u3_Host.dir_c); + u3_assert( ret_i > 0 ); + + if ( (-1 == (fid_i = open(bin_c, O_WRONLY | O_CREAT | O_EXCL, 0644))) ) { + if ( EEXIST == errno ) { + c3_free(bin_c); + // XX print something here? + // + return 0; + } + else { + u3l_log("dock: init pace (%s): open %s", pac_c, strerror(errno)); + c3_free(bin_c); + return -1; + } + } + + if ( _king_write_raw(fid_i, (c3_y*)pac_c, strlen(pac_c)) ) { + u3l_log("dock: init pace (%s): write %s", pac_c, strerror(errno)); + close(fid_i); + c3_free(bin_c); + return -1; + } + // XX sync first? + // + else if ( close(fid_i) ) { + u3l_log("dock: init pace (%s): close %s", pac_c, strerror(errno)); + c3_free(bin_c); + return 1; + } + + u3l_log("dock: pace (%s): configured at %s/.bin/pace", + pac_c, u3_Host.dir_c); + + return 0; +} + +/* _king_link_run(): ln [bin_c] $pier/.run +*/ +static c3_i +_king_link_run(c3_c* bin_c) +{ + c3_c* lin_c; + c3_i ret_i; + + ret_i = asprintf(&lin_c, "%s/%s", u3_Host.dir_c, U3_BIN_ALIAS); + u3_assert( ret_i > 0 ); + + ret_i = unlink(lin_c); + + if ( ret_i && (ENOENT != errno) ) { + fprintf(stderr, "vere: unlink %s failed: %s\n", lin_c, strerror(errno)); + c3_free(lin_c); + return -1; + } + + ret_i = link(bin_c, lin_c); + + if ( ret_i ) { + fprintf(stderr, "vere: link %s -> %s failed: %s\n", + lin_c, bin_c, strerror(errno)); + c3_free(lin_c); + return -1; + } + + c3_free(lin_c); + return 0; +} + +/* u3_king_vere(): download binary as specified. +*/ +c3_i +u3_king_vere(c3_c* pac_c, // pace + c3_c* ver_c, // version + c3_c* arc_c, // architecture + c3_c* dir_c, // output directory + c3_t lin_t) // link to $pier/.run +{ + c3_c* bin_c; + c3_c* url_c; + FILE* fil_u; + c3_i fid_i, ret_i; + + ret_i = asprintf(&bin_c, "%s/vere-v%s-%s", dir_c, ver_c, arc_c); + u3_assert( ret_i > 0 ); + + if ( (-1 == (fid_i = open(bin_c, O_WRONLY | O_CREAT | O_EXCL, 0755))) + || !(fil_u = fdopen(fid_i, "wb")) ) + { + if ( EEXIST == errno ) { + u3l_log("already installed"); + c3_free(bin_c); + return 0; + } + else { + u3l_log("unable to open %s: %s", bin_c, strerror(errno)); + c3_free(bin_c); + return -1; + } + } + + ret_i = asprintf(&url_c, "%s/%s/v%s/vere-v%s-%s", + ver_hos_c, pac_c, ver_c, ver_c, arc_c); + u3_assert( ret_i > 0 ); + + if ( (ret_i = _king_save_file(url_c, fil_u)) ) { + u3l_log("unable to save %s to %s: %d", url_c, bin_c, ret_i); + c3_free(url_c); + fclose(fil_u); + unlink(bin_c); + c3_free(bin_c); + return -1; // XX + } + + // XX sync unnecessary here? + // + if ( fflush(fil_u) || c3_sync(fid_i) ) { + fprintf(stderr, "vere: sync %s failed: %s\n", bin_c, strerror(errno)); + c3_free(url_c); + fclose(fil_u); + unlink(bin_c); + c3_free(bin_c); + return -1; + } + + fclose(fil_u); + + // XX if link fails wat do? + // XX set via cli option + // + if ( lin_t ) { + if ( _king_link_run(bin_c) ) { + fprintf(stderr, "vere: link %s/%s failed\n", u3_Host.dir_c, U3_BIN_ALIAS); + c3_free(url_c); + c3_free(bin_c); + return -1; + } + } + + u3l_log("vere: saved to %s", bin_c); + + c3_free(url_c); + c3_free(bin_c); + + return 0; +} + +/* _king_do_upgrade(): get arch-appropriate binary at [ver_c]. +*/ +static void +_king_do_upgrade(c3_c* pac_c, c3_c* ver_c) +{ + c3_c* dir_c; + c3_c* arc_c; + +#ifdef U3_OS_ARCH + arc_c = U3_OS_ARCH; +#else + if ( u3_Host.arc_c ) { + arc_c = u3_Host.arc_c; + } + else { + u3l_log("vere: --arch required"); + return; + } +#endif + + if ( _king_make_pace(pac_c) ) { + u3l_log("vere: unable to make pace (%s) directory in pier", pac_c); + u3_king_bail(); + exit(1); + } + + { + c3_i ret_i = asprintf(&dir_c, "%s/.bin/%s", u3_Host.dir_c, pac_c); + u3_assert( ret_i > 0 ); + } + + // XX get link option + // + if ( u3_king_vere(pac_c, ver_c, arc_c, dir_c, 1) ) { + u3l_log("vere: upgrade failed"); + u3_king_bail(); + exit(1); + } + + c3_free(dir_c); + u3l_log("vere: upgrade succeeded"); + // XX print restart instructions +} + +/* _king_read_raw: read (up to) [len_i] from [fid_i] to [buf_y] +*/ +static ssize_t +_king_read_raw(c3_i fid_i, c3_y* buf_y, size_t len_i) +{ + ssize_t ret_i; + + do { + ret_i = read(fid_i, buf_y, len_i); + } + while ( (ret_i < 0) && (errno == EINTR) ); + + return ret_i; +} + +/* _king_read_raw: write [len_i] from [buf_y] to [fid_i]. +*/ +static c3_i +_king_write_raw(c3_i fid_i, c3_y* buf_y, size_t len_i) +{ + ssize_t ret_i; + + while ( len_i ) { + + do { + ret_i = write(fid_i, buf_y, len_i); + } + while ( (ret_i < 0) && (errno == EINTR) ); + + if ( ret_i < 0 ) { + return -1; + } + else { + len_i -= ret_i; + buf_y += ret_i; + } + } + + return 0; +} + +static c3_i +_king_copy_raw(c3_i src_i, c3_i dst_i, c3_y* buf_y, size_t pag_i) +{ + ssize_t red_i; + + do { + if ( 0 > (red_i = _king_read_raw(src_i, buf_y, pag_i)) ) { + return -1; + } + + if ( _king_write_raw(dst_i, buf_y, (size_t)red_i) ) { + return -1; + } + } + while ( red_i ); + + return 0; +} + +static c3_i +_king_copy_file(c3_c* src_c, c3_c* dst_c) +{ +#if defined(U3_OS_osx) + if ( !clonefile(src_c, dst_c, 0) ) { + return 0; + } + // fallthru to copying bytes on some errors + // + else if ( (ENOTSUP != errno) && (EXDEV != errno) ) { + return -1; + } +#endif + + { + c3_i src_i, dst_i, ret_i = 0, err_i = 0; + + if ( -1 == (src_i = open(src_c, O_RDONLY, 0644)) ) { + err_i = errno; + ret_i = -1; + goto done1; + } + + if ( -1 == (dst_i = open(dst_c, O_RDWR | O_CREAT, 0755)) ) { + err_i = errno; + ret_i = -1; + goto done2; + } + + // XX try clone_file_range ? + // +#if defined(U3_OS_linux) + #if defined(FICLONE) + if ( !ioctl(dst_i, FICLONE, src_i) ) { + ret_i = 0; + goto done3; + } + // fallthru to copying bytes on some errors + // + else if ( (EOPNOTSUPP != errno) && (EXDEV != errno) ) { + err_i = errno; + ret_i = -1; + goto done3; + } + #endif + + { + off_t off_i = 0; + ssize_t sen_i; + size_t len_i; + { + struct stat sat_u; + if ( -1 == fstat(src_i, &sat_u) ) { + err_i = errno; + ret_i = -1; + goto done3; + } + len_i = sat_u.st_size; + } + + do { + // XX fallback on any errors? + // + if ( 0 > (sen_i = sendfile(dst_i, src_i, &off_i, len_i)) ) { + err_i = errno; + ret_i = -1; + goto done3; + } + + len_i -= off_i; + } + while ( len_i ); + + ret_i = 0; + goto done3; + } +#elif defined(U3_OS_osx) + if ( !fcopyfile(src_i, dst_i, NULL, COPYFILE_ALL) ) { + ret_i = 0; + goto done3; + } + + // XX fallback on any errors? + // +#endif + + { + size_t pag_i = 1 << 14;; + c3_y* buf_y = c3_malloc(pag_i); + ret_i = _king_copy_raw(src_i, dst_i, buf_y, pag_i); + err_i = errno; + c3_free(buf_y); + } + +done3: + close(dst_i); +done2: + close(src_i); +done1: + errno = err_i; + return ret_i; + } +} + +/* _king_copy_vere(): copy current binary into $pier/.bin (COW if possible) +*/ +static c3_i +_king_copy_vere(c3_c* pac_c, c3_c* ver_c, c3_c* arc_c, c3_t lin_t) +{ + c3_c* bin_c; + c3_i ret_i; + + if ( _king_make_pace(pac_c) ) { + return -1; // XX + } + + ret_i = asprintf(&bin_c, "%s/.bin/%s/vere-v%s-%s", + u3_Host.dir_c, pac_c, ver_c, arc_c); + u3_assert( ret_i > 0 ); + + ret_i = _king_copy_file(u3_Host.dem_c, bin_c); + + if ( ret_i ) { + fprintf(stderr, "vere: copy %s -> %s failed: %s\r\n", + u3_Host.dem_c, bin_c, strerror(errno)); + c3_free(bin_c); + return -1; + } + + // XX option + // + if ( lin_t ) { + if ( _king_link_run(bin_c) ) { + fprintf(stderr, "vere: link %s/%s failed\n", u3_Host.dir_c, U3_BIN_ALIAS); + c3_free(bin_c); + return -1; + } + } + + c3_free(bin_c); + return 0; +} + +/* u3_king_dock(): copy binary into pier on boot. +*/ +void +u3_king_dock(c3_c* pac_c) +{ + c3_c* arc_c = "unknown"; + +#ifdef U3_OS_ARCH + arc_c = U3_OS_ARCH; +#endif + + // XX get link option + // + if ( _king_copy_vere(pac_c, URBIT_VERSION, arc_c, 1) ) { + u3l_log("vere: binary copy failed"); + u3_king_bail(); + exit(1); + } + else { + // NB: failure ignored + // + _king_init_pace(pac_c); + u3l_log("vere: binary copy succeeded"); + // XX print restart instructions + } +} + +/* _king_done_cb(): +*/ +static void +_king_done_cb(uv_handle_t* han_u) +{ + if( UV_EBUSY == uv_loop_close(u3L) ) { + // XX uncomment to debug + // + // fprintf(stderr, "\r\nking: open libuv handles\r\n"); + // uv_print_all_handles(u3L, stderr); + // fprintf(stderr, "\r\nking: force shutdown\r\n"); + + uv_stop(u3L); + } +} + +/* u3_king_done(): all piers closed. s/b callback +*/ +void +u3_king_done(void) +{ + uv_handle_t* han_u = (uv_handle_t*)&u3K.tim_u; + + if ( u3_Host.xit_i ) { + if ( c3y == u3_Host.nex_o ) { + u3l_log("vere: upgrade failed"); + } + else if ( c3y == u3_Host.pep_o ) { + u3l_log("vere: prep for upgrade failed"); + } + } + else { + // get next binary + // + if ( c3y == u3_Host.nex_o ) { + c3_c* pac_c; + c3_c* ver_c; + + // hack to ensure we only try once + // + u3_Host.nex_o = c3n; + + pac_c = _king_get_pace(); + + switch ( u3_king_next(pac_c, &ver_c) ) { + case -2: { + u3l_log("vere: unable to check for next version"); + } break; + + case -1: { + u3l_log("vere: up to date"); + } break; + + case 0: { + u3l_log("vere: next (%%%s): %s", pac_c, ver_c); + _king_do_upgrade(pac_c, ver_c); + c3_free(ver_c); + } break; + + default: u3_assert(0); + } + + c3_free(pac_c); + } + else if ( c3y == u3_Host.pep_o ) { + u3l_log("vere: ready for upgrade"); + } + } + + // XX hack, if pier's are still linked, we're not actually done + // + if ( !u3K.pir_u && !uv_is_closing(han_u) ) { + uv_close((uv_handle_t*)&u3K.tim_u, _king_done_cb); + _king_sign_close(); + + u3_term_log_exit(); + fflush(stdout); + } + + // XX remove move + // + exit(u3_Host.xit_i); +} + +/* u3_king_exit(): shutdown gracefully +*/ +void +u3_king_exit(void) +{ + _king_forall(u3_pier_exit); +} + +/* u3_king_bail(): immediately shutdown. +*/ +void +u3_king_bail(void) +{ + u3_Host.xit_i = 1; + _king_forall_unlink(u3_pier_bail); + _king_loop_exit(); + u3_king_done(); + exit(u3_Host.xit_i); +} + +/* u3_king_grab(): gc the daemon +*/ +void +u3_king_grab(void* vod_p) +{ + FILE* fil_u; + + u3_assert( u3R == &(u3H->rod_u) ); + +#ifdef U3_MEMORY_LOG + { + // XX date will not match up with that of the worker + // + u3_noun wen = u3dc("scot", c3__da, u3k(u3A->now)); + c3_c* wen_c = u3r_string(wen); + + c3_c nam_c[2048]; + snprintf(nam_c, 2048, "%s/.urb/put/mass", u3_king_stub()->pax_c); + + struct stat st; + if ( -1 == stat(nam_c, &st) ) { + c3_mkdir(nam_c, 0700); + } + + c3_c man_c[2048]; + snprintf(man_c, 2048, "%s/%s-daemon.txt", nam_c, wen_c); + + fil_u = c3_fopen(man_c, "w"); + fprintf(fil_u, "%s\r\n", wen_c); + + c3_free(wen_c); + u3z(wen); + } +#else + { + fil_u = u3_term_io_hija(); + fprintf(fil_u, "measuring daemon:\r\n"); + } +#endif + + u3m_quac** all_u = c3_malloc(sizeof(*all_u)*6); + + u3m_quac** var_u = u3m_mark(); + all_u[0] = var_u[0]; + all_u[1] = var_u[1]; + all_u[2] = var_u[2]; + all_u[3] = var_u[3]; + c3_free(var_u); + + c3_w tot_w = all_u[0]->siz_w + all_u[1]->siz_w + + all_u[2]->siz_w + all_u[3]->siz_w; + + all_u[4] = c3_calloc(sizeof(*all_u[4])); + all_u[4]->nam_c = "total marked"; + all_u[4]->siz_w = tot_w; + + all_u[5] = c3_calloc(sizeof(*all_u[5])); + all_u[5]->nam_c = "sweep"; + all_u[5]->siz_w = u3a_sweep(); + + for ( c3_w i_w = 0; i_w < 6; i_w++ ) { + u3a_print_quac(fil_u, 0, all_u[i_w]); + u3a_quac_free(all_u[i_w]); + } + + c3_free(all_u); + +#ifdef U3_MEMORY_LOG + { + fclose(fil_u); + } +#else + { + u3_term_io_loja(0, fil_u); + } +#endif +} diff --git a/vere/pkg/vere/lord.c b/vere/pkg/vere/lord.c new file mode 100644 index 0000000..2635ffd --- /dev/null +++ b/vere/pkg/vere/lord.c @@ -0,0 +1,1334 @@ +/// @file + +#include "vere.h" + +#include "noun.h" +#include "ur/ur.h" + +#undef LORD_TRACE_JAM +#undef LORD_TRACE_CUE + +/* +|% +:: +writ: from king to serf +:: ++$ writ + $% $: %live + $% [%cram eve=@] + [%exit cod=@] + [%save eve=@] + [%meld ~] + [%pack ~] + == == + [%peek mil=@ sam=*] :: gang (each path $%([%once @tas @tas path] [%beam @tas beam])) + [%play eve=@ lit=(list ?((pair @da ovum) *))] + $: %quiz + $% [%quac ~] + [%quic ~] + == == + [%work mil=@ job=(pair @da ovum)] + == +:: +plea: from serf to king +:: ++$ plea + $% [%live ~] + [%ripe [pro=%1 hon=@ nok=@] eve=@ mug=@] + [%slog pri=@ tank] + [%flog cord] + $: %peek + $% [%done dat=(unit (cask))] + [%bail dud=goof] + == == + $: %play + $% [%done mug=@] + [%bail eve=@ mug=@ dud=goof] + == == + $: %quiz + $% [%quac p=*] + [%quic p=*] + == == + $: %work + $% [%done eve=@ mug=@ fec=(list ovum)] + [%swap eve=@ mug=@ job=(pair @da ovum) fec=(list ovum)] + [%bail lud=(list goof)] + == == + == +-- +*/ + +/* _lord_stop_cb(): finally all done. +*/ +static void +_lord_stop_cb(void* ptr_v, + ssize_t err_i, + const c3_c* err_c) +{ + u3_lord* god_u = ptr_v; + + void (*exit_f)(void*) = god_u->cb_u.exit_f; + void* exit_v = god_u->cb_u.ptr_v; + + u3s_cue_xeno_done(god_u->sil_u); + c3_free(god_u); + + if ( exit_f ) { + exit_f(exit_v); + } +} + +/* _lord_writ_free(): dispose of pending writ. +*/ +static void +_lord_writ_free(u3_writ* wit_u) +{ + switch ( wit_u->typ_e ) { + default: u3_assert(0); + + case u3_writ_work: { + // XX confirm + // + u3_ovum* egg_u = wit_u->wok_u.egg_u; + u3_auto_drop(egg_u->car_u, egg_u); + u3z(wit_u->wok_u.job); + } break; + + case u3_writ_peek: { + u3z(wit_u->pek_u->sam); + } break; + + case u3_writ_play: { + u3_fact* tac_u = wit_u->fon_u.ext_u; + u3_fact* nex_u; + + while ( tac_u ) { + nex_u = tac_u->nex_u; + u3_fact_free(tac_u); + tac_u = nex_u; + } + } break; + + case u3_writ_save: + case u3_writ_cram: + case u3_writ_meld: + case u3_writ_pack: + case u3_writ_exit: + case u3_writ_quiz: { + } break; + } + + c3_free(wit_u); +} + +/* _lord_bail_noop(): ignore subprocess error on shutdown +*/ +static void +_lord_bail_noop(void* ptr_v, + ssize_t err_i, + const c3_c* err_c) +{ +} + +/* _lord_stop(): close and dispose all resources. +*/ +static void +_lord_stop(u3_lord* god_u) +{ + // dispose outstanding writs + // + { + u3_writ* wit_u = god_u->ext_u; + u3_writ* nex_u; + + while ( wit_u ) { + nex_u = wit_u->nex_u; + _lord_writ_free(wit_u); + wit_u = nex_u; + } + + god_u->ent_u = god_u->ext_u = 0; + } + + u3_newt_moat_stop(&god_u->out_u, _lord_stop_cb); + u3_newt_mojo_stop(&god_u->inn_u, _lord_bail_noop); + + uv_read_stop((uv_stream_t*)&(god_u->err_u)); + + uv_close((uv_handle_t*)&god_u->cub_u, 0); + +#if defined(LORD_TRACE_JAM) || defined(LORD_TRACE_CUE) + u3t_trace_close(); +#endif +} + +/* _lord_bail(): serf/lord error. +*/ +static void +_lord_bail(u3_lord* god_u) +{ + void (*bail_f)(void*) = god_u->cb_u.bail_f; + void* bail_v = god_u->cb_u.ptr_v; + + u3_lord_halt(god_u); + bail_f(bail_v); +} + +/* _lord_writ_pop(): pop the writ stack. +*/ +static u3_writ* +_lord_writ_pop(u3_lord* god_u) +{ + u3_writ* wit_u = god_u->ext_u; + + u3_assert( wit_u ); + + if ( !wit_u->nex_u ) { + god_u->ent_u = god_u->ext_u = 0; + } + else { + god_u->ext_u = wit_u->nex_u; + wit_u->nex_u = 0; + } + + god_u->dep_w--; + + return wit_u; +} + +/* _lord_writ_str(): writ labels for printing. +*/ +static inline const c3_c* +_lord_writ_str(u3_writ_type typ_e) +{ + switch ( typ_e ) { + default: u3_assert(0); + + case u3_writ_work: return "work"; + case u3_writ_peek: return "peek"; + case u3_writ_play: return "play"; + case u3_writ_save: return "save"; + case u3_writ_cram: return "cram"; + case u3_writ_meld: return "meld"; + case u3_writ_pack: return "pack"; + case u3_writ_exit: return "exit"; + case u3_writ_quiz: return "quiz"; + } +} + +/* _lord_writ_need(): require writ type. +*/ +static u3_writ* +_lord_writ_need(u3_lord* god_u, u3_writ_type typ_e) +{ + u3_writ* wit_u = _lord_writ_pop(god_u); + + if ( typ_e != wit_u->typ_e ) { + fprintf(stderr, "lord: unexpected %%%s, expected %%%s\r\n", + _lord_writ_str(typ_e), + _lord_writ_str(wit_u->typ_e)); + _lord_bail(god_u); + return 0; + } + + return wit_u; +} + +/* _lord_plea_foul(): +*/ +static void +_lord_plea_foul(u3_lord* god_u, c3_m mot_m, u3_noun dat) +{ + if ( u3_blip == mot_m ) { + fprintf(stderr, "lord: received invalid $plea\r\n"); + } + else { + fprintf(stderr, "lord: received invalid %%%.4s $plea\r\n", (c3_c*)&mot_m); + } + + // XX can't unconditionally print + // + // u3m_p("plea", dat); + + _lord_bail(god_u); +} + +/* _lord_plea_live(): hear serf %live ack +*/ +static void +_lord_plea_live(u3_lord* god_u, u3_noun dat) +{ + u3_writ* wit_u = _lord_writ_pop(god_u); + + if( u3_nul != dat ) { + _lord_plea_foul(god_u, c3__live, dat); + return; + } + + switch ( wit_u->typ_e ) { + default: { + _lord_plea_foul(god_u, c3__live, dat); + return; + } break; + + case u3_writ_save: { + god_u->cb_u.save_f(god_u->cb_u.ptr_v); + } break; + + case u3_writ_cram: { + god_u->cb_u.cram_f(god_u->cb_u.ptr_v); + } break; + + case u3_writ_meld: { + // XX wire into cb + // + u3l_log("pier: meld complete"); + } break; + + case u3_writ_pack: { + // XX wire into cb + // + u3l_log("pier: pack complete"); + } break; + } + + c3_free(wit_u); +} + +/* _lord_plea_ripe(): hear serf startup state +*/ +static void +_lord_plea_ripe(u3_lord* god_u, u3_noun dat) +{ + if ( c3y == god_u->liv_o ) { + fprintf(stderr, "lord: received unexpected %%ripe\n"); + _lord_bail(god_u); + return; + } + + { + u3_noun ver, pro, hon, noc, eve, mug; + c3_y pro_y, hon_y, noc_y; + c3_d eve_d; + c3_l mug_l; + + if ( (c3n == u3r_trel(dat, &ver, &eve, &mug)) + || (c3n == u3r_trel(ver, &pro, &hon, &noc)) + || (c3n == u3r_safe_byte(pro, &pro_y)) + || (c3n == u3r_safe_byte(hon, &hon_y)) + || (c3n == u3r_safe_byte(noc, &noc_y)) + || (c3n == u3r_safe_chub(eve, &eve_d)) + || (c3n == u3r_safe_word(mug, &mug_l)) ) + { + _lord_plea_foul(god_u, c3__ripe, dat); + return; + } + + if ( 1 != pro_y ) { + fprintf(stderr, "pier: unsupported ipc protocol version %u\r\n", pro_y); + _lord_bail(god_u); + return; + } + + god_u->eve_d = eve_d; + god_u->mug_l = mug_l; + god_u->hon_y = hon_y; + god_u->noc_y = noc_y; + } + + god_u->liv_o = c3y; + god_u->cb_u.live_f(god_u->cb_u.ptr_v); + + u3z(dat); +} + +/* _lord_plea_slog(): hear serf debug output +*/ +static void +_lord_plea_slog(u3_lord* god_u, u3_noun dat) +{ + u3_noun pri, tan; + c3_w pri_w; + + if ( (c3n == u3r_cell(dat, &pri, &tan)) + || (c3n == u3r_safe_word(pri, &pri_w)) ) + { + _lord_plea_foul(god_u, c3__slog, dat); + return; + } + + // XX per-writ slog_f? + // + + god_u->cb_u.slog_f(god_u->cb_u.ptr_v, pri_w, u3k(tan)); + u3z(dat); +} + +/* _lord_plea_flog(): hear serf debug output +*/ +static void +_lord_plea_flog(u3_lord* god_u, u3_noun dat) +{ + u3_pier* pir_u = god_u->cb_u.ptr_v; + + if ( c3n == u3a_is_atom(dat) ) { + _lord_plea_foul(god_u, c3__flog, dat); + return; + } + + c3_c* tan_c = u3r_string(dat); + u3C.stderr_log_f(tan_c); + c3_free(tan_c); + + if ( 0 != pir_u->sog_f ) { + pir_u->sog_f(pir_u->sop_p, 0, u3k(dat)); + } + u3z(dat); +} + +/* _lord_plea_peek_bail(): hear serf %peek %bail +*/ +static void +_lord_plea_peek_bail(u3_lord* god_u, u3_peek* pek_u, u3_noun dud) +{ + u3_pier_punt_goof("peek", dud); + + pek_u->fun_f(pek_u->ptr_v, u3_nul); + + u3z(pek_u->sam); + c3_free(pek_u); +} + +/* _lord_plea_peek_done(): hear serf %peek %done +*/ +static void +_lord_plea_peek_done(u3_lord* god_u, u3_peek* pek_u, u3_noun rep) +{ + // XX review + // + if ( (u3_pico_once == pek_u->typ_e) + && (u3_nul != rep) ) + { + u3_noun dat; + + if ( c3y == u3r_pq(u3t(rep), c3__omen, 0, &dat) ) { + u3k(dat); + u3z(rep); + rep = u3nc(u3_nul, dat); + } + } + + // XX cache [dat] (unless last) + // + pek_u->fun_f(pek_u->ptr_v, rep); + + u3z(pek_u->sam); + c3_free(pek_u); +} + +/* _lord_plea_peek(): hear serf %peek response +*/ +static void +_lord_plea_peek(u3_lord* god_u, u3_noun dat) +{ + u3_peek* pek_u; + { + u3_writ* wit_u = _lord_writ_need(god_u, u3_writ_peek); + pek_u = wit_u->pek_u; + c3_free(wit_u); + } + + if ( c3n == u3a_is_cell(dat) ) { + _lord_plea_foul(god_u, c3__peek, dat); + return; + } + + switch ( u3h(dat) ) { + default: { + _lord_plea_foul(god_u, c3__peek, dat); + return; + } + + case c3__done: { + _lord_plea_peek_done(god_u, pek_u, u3k(u3t(dat))); + } break; + + case c3__bail: { + _lord_plea_peek_bail(god_u, pek_u, u3k(u3t(dat))); + } break; + } + + u3z(dat); +} + +/* _lord_plea_play_bail(): hear serf %play %bail +*/ +static void +_lord_plea_play_bail(u3_lord* god_u, u3_info fon_u, u3_noun dat) +{ + u3_noun eve, mug, dud; + c3_d eve_d; + c3_l mug_l; + + if ( (c3n == u3r_trel(dat, &eve, &mug, &dud)) + || (c3n == u3r_safe_chub(eve, &eve_d)) + || (c3n == u3r_safe_word(mug, &mug_l)) + || (c3n == u3a_is_cell(dud)) ) + { + fprintf(stderr, "lord: invalid %%play\r\n"); + _lord_plea_foul(god_u, c3__bail, dat); + return; + } + + god_u->eve_d = (eve_d - 1ULL); + god_u->mug_l = mug_l; + + god_u->cb_u.play_bail_f(god_u->cb_u.ptr_v, + fon_u, mug_l, eve_d, u3k(dud)); + + u3z(dat); +} +/* _lord_plea_play_done(): hear serf %play %done +*/ +static void +_lord_plea_play_done(u3_lord* god_u, u3_info fon_u, u3_noun dat) +{ + c3_l mug_l; + + if ( c3n == u3r_safe_word(dat, &mug_l) ) { + fprintf(stderr, "lord: invalid %%play\r\n"); + _lord_plea_foul(god_u, c3__done, dat); + return; + } + + god_u->eve_d = fon_u.ent_u->eve_d; + god_u->mug_l = mug_l; + + god_u->cb_u.play_done_f(god_u->cb_u.ptr_v, fon_u, mug_l); + + u3z(dat); +} + +/* _lord_plea_play(): hear serf %play response +*/ +static void +_lord_plea_play(u3_lord* god_u, u3_noun dat) +{ + u3_info fon_u; + { + u3_writ* wit_u = _lord_writ_need(god_u, u3_writ_play); + fon_u = wit_u->fon_u; + c3_free(wit_u); + } + + if ( c3n == u3a_is_cell(dat) ) { + _lord_plea_foul(god_u, c3__play, dat); + return; + } + + switch ( u3h(dat) ) { + default: { + _lord_plea_foul(god_u, c3__play, dat); + return; + } + + case c3__done: { + _lord_plea_play_done(god_u, fon_u, u3k(u3t(dat))); + } break; + + case c3__bail: { + _lord_plea_play_bail(god_u, fon_u, u3k(u3t(dat))); + } break; + } + + u3z(dat); +} + +/* _lord_plea_quiz(): handle quiz (query to serf). + */ +static void +_lord_plea_quiz(u3_lord* god_u, u3_noun dat) +{ + u3_writ* wit_u = _lord_writ_need(god_u, u3_writ_quiz); + wit_u->qiz_u.qiz_f(wit_u->qiz_u.qiz_m, wit_u->qiz_u.ptr_v, dat); +} + +/* _lord_work_spin(): update spinner if more work is in progress. + */ + static void +_lord_work_spin(u3_lord* god_u) +{ + u3_writ* wit_u = god_u->ext_u; + + // complete spinner + // + u3_assert( c3y == god_u->pin_o ); + god_u->cb_u.spun_f(god_u->cb_u.ptr_v); + god_u->pin_o = c3n; + + // restart spinner if more work + // + while ( wit_u ) { + if ( u3_writ_work != wit_u->typ_e ) { + wit_u = wit_u->nex_u; + } + else { + u3_ovum* egg_u = wit_u->wok_u.egg_u; + + god_u->cb_u.spin_f(god_u->cb_u.ptr_v, + egg_u->pin_u.lab, + egg_u->pin_u.del_o); + god_u->pin_o = c3y; + break; + } + } +} + +/* _lord_work_done(): +*/ +static void +_lord_work_done(u3_lord* god_u, + u3_ovum* egg_u, + c3_d eve_d, + c3_l mug_l, + u3_noun job, + u3_noun act) +{ + u3_fact* tac_u = u3_fact_init(eve_d, mug_l, job); + god_u->mug_l = mug_l; + god_u->eve_d = eve_d; + + u3_gift* gif_u = u3_gift_init(eve_d, act); + + _lord_work_spin(god_u); + + god_u->cb_u.work_done_f(god_u->cb_u.ptr_v, egg_u, tac_u, gif_u); +} + + +/* _lord_plea_work_bail(): hear serf %work %bail +*/ +static void +_lord_plea_work_bail(u3_lord* god_u, u3_ovum* egg_u, u3_noun lud) +{ + _lord_work_spin(god_u); + + god_u->cb_u.work_bail_f(god_u->cb_u.ptr_v, egg_u, lud); +} + +/* _lord_plea_work_swap(): hear serf %work %swap +*/ +static void +_lord_plea_work_swap(u3_lord* god_u, u3_ovum* egg_u, u3_noun dat) +{ + u3_noun eve, mug, job, act; + c3_d eve_d; + c3_l mug_l; + + if ( (c3n == u3r_qual(dat, &eve, &mug, &job, &act)) + || (c3n == u3r_safe_chub(eve, &eve_d)) + || (c3n == u3r_safe_word(mug, &mug_l)) + || (c3n == u3a_is_cell(job)) ) + { + u3z(job); + u3_ovum_free(egg_u); + fprintf(stderr, "lord: invalid %%work\r\n"); + _lord_plea_foul(god_u, c3__swap, dat); + return; + } + else { + u3k(job); u3k(act); + u3z(dat); + _lord_work_done(god_u, egg_u, eve_d, mug_l, job, act); + } +} + +/* _lord_plea_work_done(): hear serf %work %done +*/ +static void +_lord_plea_work_done(u3_lord* god_u, + u3_ovum* egg_u, + u3_noun job, + u3_noun dat) +{ + u3_noun eve, mug, act; + c3_d eve_d; + c3_l mug_l; + + if ( (c3n == u3r_trel(dat, &eve, &mug, &act)) + || (c3n == u3r_safe_chub(eve, &eve_d)) + || (c3n == u3r_safe_word(mug, &mug_l)) ) + { + u3z(job); + u3_ovum_free(egg_u); + fprintf(stderr, "lord: invalid %%work\r\n"); + _lord_plea_foul(god_u, c3__done, dat); + return; + } + else { + u3k(act); + u3z(dat); + _lord_work_done(god_u, egg_u, eve_d, mug_l, job, act); + } +} + +/* _lord_plea_work(): hear serf %work response +*/ +static void +_lord_plea_work(u3_lord* god_u, u3_noun dat) +{ + u3_ovum* egg_u; + u3_noun job; + + { + u3_writ* wit_u = _lord_writ_need(god_u, u3_writ_work); + egg_u = wit_u->wok_u.egg_u; + job = wit_u->wok_u.job; + c3_free(wit_u); + } + + if ( c3n == u3a_is_cell(dat) ) { + u3z(job); + u3_ovum_free(egg_u); + _lord_plea_foul(god_u, c3__work, dat); + return; + } + + switch ( u3h(dat) ) { + default: { + u3z(job); + u3_ovum_free(egg_u); + _lord_plea_foul(god_u, c3__work, dat); + return; + } break; + + case c3__done: { + _lord_plea_work_done(god_u, egg_u, job, u3k(u3t(dat))); + } break; + + case c3__swap: { + u3z(job); + _lord_plea_work_swap(god_u, egg_u, u3k(u3t(dat))); + } break; + + case c3__bail: { + u3z(job); + _lord_plea_work_bail(god_u, egg_u, u3k(u3t(dat))); + } break; + } + + u3z(dat); +} + +/* _lord_on_plea(): handle plea from serf. +*/ +static void +_lord_on_plea(void* ptr_v, c3_d len_d, c3_y* byt_y) +{ + u3_lord* god_u = ptr_v; + u3_noun tag, dat; + u3_weak jar; + +#ifdef LORD_TRACE_CUE + u3t_event_trace("king ipc cue", 'B'); +#endif + + jar = u3s_cue_xeno_with(god_u->sil_u, len_d, byt_y); + +#ifdef LORD_TRACE_CUE + u3t_event_trace("king ipc cue", 'E'); +#endif + + if ( u3_none == jar ) { + _lord_plea_foul(god_u, 0, u3_blip); + return; + } + else if ( c3n == u3r_cell(jar, &tag, &dat) ) { + _lord_plea_foul(god_u, 0, jar); + return; + } + + switch ( tag ) { + default: { + _lord_plea_foul(god_u, 0, jar); + return; + } + + case c3__work: { + _lord_plea_work(god_u, u3k(dat)); + } break; + + case c3__peek: { + _lord_plea_peek(god_u, u3k(dat)); + } break; + + case c3__slog: { + _lord_plea_slog(god_u, u3k(dat)); + } break; + + case c3__flog: { + _lord_plea_flog(god_u, u3k(dat)); + } break; + + case c3__play: { + _lord_plea_play(god_u, u3k(dat)); + } break; + + case c3__live: { + _lord_plea_live(god_u, u3k(dat)); + } break; + + case c3__ripe: { + _lord_plea_ripe(god_u, u3k(dat)); + } break; + + case c3__quiz: { + _lord_plea_quiz(god_u, u3k(dat)); + } break; + } + + u3z(jar); +} + +/* _lord_writ_new(): allocate a new writ. +*/ +static u3_writ* +_lord_writ_new(u3_lord* god_u) +{ + u3_writ* wit_u = c3_calloc(sizeof(*wit_u)); + return wit_u; +} + +/* _lord_writ_make(): cons writ. +*/ +static u3_noun +_lord_writ_make(u3_lord* god_u, u3_writ* wit_u) +{ + u3_noun msg; + + switch ( wit_u->typ_e ) { + default: u3_assert(0); + + case u3_writ_work: { + u3_noun mil = u3i_words(1, &wit_u->wok_u.egg_u->mil_w); + msg = u3nt(c3__work, mil, u3k(wit_u->wok_u.job)); + } break; + + case u3_writ_peek: { + // XX support timeouts, + // + msg = u3nc(c3__peek, u3nc(0, u3k(wit_u->pek_u->sam))); + } break; + + case u3_writ_play: { + u3_fact* tac_u = wit_u->fon_u.ext_u; + c3_d eve_d = tac_u->eve_d; + u3_noun lit = u3_nul; + + while ( tac_u ) { + lit = u3nc(u3k(tac_u->job), lit); + tac_u = tac_u->nex_u; + } + + msg = u3nt(c3__play, u3i_chubs(1, &eve_d), u3kb_flop(lit)); + + } break; + + case u3_writ_save: { + msg = u3nt(c3__live, c3__save, u3i_chubs(1, &god_u->eve_d)); + } break; + + case u3_writ_cram: { + msg = u3nt(c3__live, c3__cram, u3i_chubs(1, &god_u->eve_d)); + } break; + + case u3_writ_meld: { + msg = u3nt(c3__live, c3__meld, u3_nul); + } break; + + case u3_writ_pack: { + msg = u3nt(c3__live, c3__pack, u3_nul); + } break; + + case u3_writ_exit: { + // requested exit code is always 0 + // + msg = u3nt(c3__live, c3__exit, 0); + } break; + + case u3_writ_quiz: { + msg = u3nt(c3__quiz, wit_u->qiz_u.qiz_m, u3_nul); + } break; + } + + return msg; +} + +/* _lord_writ_send(): send writ to serf. +*/ +static void +_lord_writ_send(u3_lord* god_u, u3_writ* wit_u) +{ + // exit expected + // + if ( u3_writ_exit == wit_u->typ_e ) { + god_u->out_u.bal_f = _lord_bail_noop; + god_u->inn_u.bal_f = _lord_bail_noop; + } + + { + u3_noun jar = _lord_writ_make(god_u, wit_u); + c3_d len_d; + c3_y* byt_y; + +#ifdef LORD_TRACE_JAM + u3t_event_trace("king ipc jam", 'B'); +#endif + + u3s_jam_xeno(jar, &len_d, &byt_y); + +#ifdef LORD_TRACE_JAM + u3t_event_trace("king ipc jam", 'E'); +#endif + + u3_newt_send(&god_u->inn_u, len_d, byt_y); + u3z(jar); + } +} + +/* _lord_writ_plan(): enqueue a writ and send. +*/ +static void +_lord_writ_plan(u3_lord* god_u, u3_writ* wit_u) +{ + if ( !god_u->ent_u ) { + u3_assert( !god_u->ext_u ); + u3_assert( !god_u->dep_w ); + god_u->dep_w = 1; + god_u->ent_u = god_u->ext_u = wit_u; + } + else { + god_u->dep_w++; + god_u->ent_u->nex_u = wit_u; + god_u->ent_u = wit_u; + } + + _lord_writ_send(god_u, wit_u); +} + +/* u3_lord_peek(): read namespace, injecting what's missing. +*/ +void +u3_lord_peek(u3_lord* god_u, u3_pico* pic_u) +{ + u3_writ* wit_u = _lord_writ_new(god_u); + wit_u->typ_e = u3_writ_peek; + wit_u->pek_u = c3_calloc(sizeof(*wit_u->pek_u)); + wit_u->pek_u->ptr_v = pic_u->ptr_v; + wit_u->pek_u->fun_f = pic_u->fun_f; + wit_u->pek_u->typ_e = pic_u->typ_e; + + // construct the full scry path + // + { + u3_noun sam; + switch ( pic_u->typ_e ) { + default: u3_assert(0); + + case u3_pico_full: { + sam = u3k(pic_u->ful); + } break; + + case u3_pico_once: { + sam = u3nc(c3n, u3nq(c3__once, + pic_u->las_u.car_m, + u3k(pic_u->las_u.des), + u3k(pic_u->las_u.pax))); + } break; + } + + wit_u->pek_u->sam = u3nc(u3k(pic_u->gan), sam); + } + + // XX cache check, unless last + // + _lord_writ_plan(god_u, wit_u); +} + +/* u3_lord_play(): recompute batch. +*/ +void +u3_lord_play(u3_lord* god_u, u3_info fon_u) +{ + u3_writ* wit_u = _lord_writ_new(god_u); + wit_u->typ_e = u3_writ_play; + wit_u->fon_u = fon_u; + + // XX wat do? + // + // u3_assert( !pay_u.ent_u->nex_u ); + + _lord_writ_plan(god_u, wit_u); +} + +/* u3_lord_work(): attempt work. +*/ +void +u3_lord_work(u3_lord* god_u, u3_ovum* egg_u, u3_noun job) +{ + u3_writ* wit_u = _lord_writ_new(god_u); + wit_u->typ_e = u3_writ_work; + wit_u->wok_u.egg_u = egg_u; + wit_u->wok_u.job = job; + + // if not spinning, start + // + if ( c3n == god_u->pin_o ) { + god_u->cb_u.spin_f(god_u->cb_u.ptr_v, + egg_u->pin_u.lab, + egg_u->pin_u.del_o); + god_u->pin_o = c3y; + } + + _lord_writ_plan(god_u, wit_u); +} + +/* u3_lord_save(): save a snapshot. +*/ +c3_o +u3_lord_save(u3_lord* god_u) +{ + if ( god_u->dep_w ) { + return c3n; + } + else { + u3_writ* wit_u = _lord_writ_new(god_u); + wit_u->typ_e = u3_writ_save; + _lord_writ_plan(god_u, wit_u); + return c3y; + } +} + +/* u3_lord_cram(): save portable state. +*/ +c3_o +u3_lord_cram(u3_lord* god_u) +{ + if ( god_u->dep_w ) { + return c3n; + } + else { + u3_writ* wit_u = _lord_writ_new(god_u); + wit_u->typ_e = u3_writ_cram; + _lord_writ_plan(god_u, wit_u); + return c3y; + } +} + +/* u3_lord_meld(): globally deduplicate persistent state. +*/ +void +u3_lord_meld(u3_lord* god_u) +{ + u3_writ* wit_u = _lord_writ_new(god_u); + wit_u->typ_e = u3_writ_meld; + _lord_writ_plan(god_u, wit_u); +} + +/* u3_lord_pack(): defragment persistent state. +*/ +void +u3_lord_pack(u3_lord* god_u) +{ + u3_writ* wit_u = _lord_writ_new(god_u); + wit_u->typ_e = u3_writ_pack; + _lord_writ_plan(god_u, wit_u); +} + +/* u3_lord_quiz(): query the serf. +*/ +void +u3_lord_quiz(u3_lord* god_u, + c3_m qiz_m, + void* ptr_v, + void (*qiz_f)(c3_m, void*, u3_noun)) +{ + u3_writ* wit_u = _lord_writ_new(god_u); + wit_u->typ_e = u3_writ_quiz; + wit_u->qiz_u.qiz_m = qiz_m; + wit_u->qiz_u.ptr_v = ptr_v; + wit_u->qiz_u.qiz_f = qiz_f; + _lord_writ_plan(god_u, wit_u); +} + +/* u3_lord_exit(): shutdown gracefully. +*/ +void +u3_lord_exit(u3_lord* god_u) +{ + u3_writ* wit_u = _lord_writ_new(god_u); + wit_u->typ_e = u3_writ_exit; + _lord_writ_plan(god_u, wit_u); + + // XX set timer, then halt +} + +/* u3_lord_stall(): send SIGINT +*/ +void +u3_lord_stall(u3_lord* god_u) +{ + uv_process_kill(&god_u->cub_u, SIGINT); +} + +/* u3_lord_halt(): shutdown immediately +*/ +void +u3_lord_halt(u3_lord* god_u) +{ + // no exit callback on halt + // + god_u->cb_u.exit_f = 0; + + uv_process_kill(&god_u->cub_u, SIGKILL); + _lord_stop(god_u); +} + +/* _lord_serf_err_alloc(): libuv buffer allocator. +*/ +static void +_lord_serf_err_alloc(uv_handle_t* had_u, size_t len_i, uv_buf_t* buf) +{ + // error/info messages as a rule don't exceed one line + // + *buf = uv_buf_init(c3_malloc(80), 80); +} + +/* _lord_on_serf_err_cb(): subprocess stderr callback. +*/ +static void +_lord_on_serf_err_cb(uv_stream_t* pyp_u, + ssize_t siz_i, + const uv_buf_t* buf_u) +{ + if ( siz_i >= 0 ) { + // serf used to write to 2 directly + // this can't be any worse than that + // + u3_write_fd(2, buf_u->base, siz_i); + } else { + uv_read_stop(pyp_u); + + if ( siz_i != UV_EOF ) { + u3l_log("lord: serf stderr: %s", uv_strerror(siz_i)); + } + } + + if ( buf_u->base != NULL ) { + c3_free(buf_u->base); + } +} + + +/* _lord_on_serf_exit(): handle subprocess exit. +*/ +static void +_lord_on_serf_exit(uv_process_t* req_u, + c3_ds sas_i, + c3_i sig_i) +{ + + u3_lord* god_u = (void*)req_u; + + if ( !god_u->ext_u + || !(u3_writ_exit == god_u->ext_u->typ_e) ) + { + fprintf(stderr, "pier: work exit: status %" PRId64 ", signal %d\r\n", + sas_i, sig_i); + _lord_bail(god_u); + } + else { + _lord_stop(god_u); + } +} + +/* _lord_on_serf_bail(): handle subprocess error. +*/ +static void +_lord_on_serf_bail(void* ptr_v, + ssize_t err_i, + const c3_c* err_c) +{ + u3_lord* god_u = ptr_v; + + if ( UV_EOF == err_i ) { + // u3l_log("pier: serf unexpectedly shut down"); + u3l_log("pier: EOF"); + return; + } + else { + u3l_log("pier: serf error: %s", err_c); + } + + _lord_bail(god_u); +} + +/* u3_lord_info(): status info as $mass. +*/ +u3_noun +u3_lord_info(u3_lord* god_u) +{ + return u3_pier_mass( + c3__lord, + u3i_list( + u3_pier_mase("live", god_u->liv_o), + u3_pier_mase("event", u3i_chub(god_u->eve_d)), + u3_pier_mase("mug", god_u->mug_l), + u3_pier_mase("queue", u3i_word(god_u->dep_w)), + u3_newt_moat_info(&god_u->out_u), + u3_none)); +} + +/* u3_lord_slog(): print status info. +*/ +void +u3_lord_slog(u3_lord* god_u) +{ + u3l_log(" lord: live=%s, event=%" PRIu64 ", mug=%x, queue=%u", + ( c3y == god_u->liv_o ) ? "&" : "|", + god_u->eve_d, + god_u->mug_l, + god_u->dep_w); + u3_newt_moat_slog(&god_u->out_u); +} + +/* u3_lord_init(): instantiate child process. +*/ +u3_lord* +u3_lord_init(c3_c* pax_c, c3_w wag_w, c3_d key_d[4], u3_lord_cb cb_u) +{ + u3_lord* god_u = c3_calloc(sizeof *god_u); + god_u->liv_o = c3n; + god_u->pin_o = c3n; + god_u->wag_w = wag_w; + god_u->bin_c = u3_Host.wrk_c; // XX strcopy + god_u->pax_c = pax_c; // XX strcopy + god_u->cb_u = cb_u; + + god_u->key_d[0] = key_d[0]; + god_u->key_d[1] = key_d[1]; + god_u->key_d[2] = key_d[2]; + god_u->key_d[3] = key_d[3]; + + // spawn new process and connect to it + // + { + c3_c* arg_c[12]; + c3_c key_c[256]; + c3_c wag_c[11]; + c3_c hap_c[11]; + c3_c per_c[11]; + c3_c cev_c[11]; + c3_c lom_c[11]; + c3_c tos_c[11]; + c3_i err_i; + + sprintf(key_c, "%" PRIx64 ":%" PRIx64 ":%" PRIx64 ":%" PRIx64, + god_u->key_d[0], + god_u->key_d[1], + god_u->key_d[2], + god_u->key_d[3]); + + sprintf(wag_c, "%u", god_u->wag_w); + + sprintf(hap_c, "%u", u3_Host.ops_u.hap_w); + + sprintf(per_c, "%u", u3_Host.ops_u.per_w); + + sprintf(lom_c, "%u", u3_Host.ops_u.lom_y); + + sprintf(tos_c, "%u", u3C.tos_w); + + arg_c[0] = god_u->bin_c; // executable + arg_c[1] = "serf"; // protocol + arg_c[2] = god_u->pax_c; // path to checkpoint directory + arg_c[3] = key_c; // disk key + arg_c[4] = wag_c; // runtime config + arg_c[5] = hap_c; // hash table size + arg_c[6] = lom_c; // loom bex + + if ( u3_Host.ops_u.roc_c ) { + // XX validate + // + arg_c[7] = u3_Host.ops_u.roc_c; + } + else { + arg_c[7] = "0"; + } + + if ( u3C.eph_c == 0 ) { + arg_c[8] = "0"; + } + else { + arg_c[8] = strdup(u3C.eph_c); // ephemeral file + } + + arg_c[9] = tos_c; + arg_c[10] = per_c; + arg_c[11] = NULL; + + uv_pipe_init(u3L, &god_u->inn_u.pyp_u, 0); + uv_timer_init(u3L, &god_u->out_u.tim_u); + uv_pipe_init(u3L, &god_u->out_u.pyp_u, 0); + uv_pipe_init(u3L, &god_u->err_u, 0); + + god_u->cod_u[0].flags = UV_CREATE_PIPE | UV_READABLE_PIPE; + god_u->cod_u[0].data.stream = (uv_stream_t *)&god_u->inn_u; + + god_u->cod_u[1].flags = UV_CREATE_PIPE | UV_WRITABLE_PIPE; + god_u->cod_u[1].data.stream = (uv_stream_t *)&god_u->out_u; + + god_u->cod_u[2].flags = UV_CREATE_PIPE | UV_WRITABLE_PIPE; + god_u->cod_u[2].data.stream = (uv_stream_t *)&god_u->err_u; + + god_u->ops_u.stdio = god_u->cod_u; + god_u->ops_u.stdio_count = 3; + + // if any fds are inherited, libuv ignores UV_PROCESS_WINDOWS_HIDE* + god_u->ops_u.flags = UV_PROCESS_WINDOWS_HIDE; + god_u->ops_u.exit_cb = _lord_on_serf_exit; + god_u->ops_u.file = arg_c[0]; + god_u->ops_u.args = arg_c; + + /* spawns worker thread */ + if ( (err_i = uv_spawn(u3L, &god_u->cub_u, &god_u->ops_u)) ) { + fprintf(stderr, "spawn: %s: %s\r\n", arg_c[0], uv_strerror(err_i)); + + return 0; + } + + uv_read_start((uv_stream_t *)&god_u->err_u, _lord_serf_err_alloc, _lord_on_serf_err_cb); + } + +#if defined(LORD_TRACE_JAM) || defined(LORD_TRACE_CUE) + u3t_trace_open(god_u->pax_c); +#endif + + { + god_u->sil_u = u3s_cue_xeno_init(); + } + + // start reading from proc + // + { + god_u->out_u.ptr_v = god_u; + god_u->out_u.pok_f = _lord_on_plea; + god_u->out_u.bal_f = _lord_on_serf_bail; + + // XX distinguish from out_u.bal_f ? + // + god_u->inn_u.ptr_v = god_u; + god_u->inn_u.bal_f = _lord_on_serf_bail; + + u3_newt_read(&god_u->out_u); + } + return god_u; +} diff --git a/vere/pkg/vere/main.c b/vere/pkg/vere/main.c new file mode 100644 index 0000000..f446311 --- /dev/null +++ b/vere/pkg/vere/main.c @@ -0,0 +1,3494 @@ +/// @file + +#define U3_GLOBAL +#define C3_GLOBAL +#include "noun.h" +#include "events.h" // XX remove, see full replay in _cw_play() +#include "ivory.h" +#include "ur/ur.h" +#include "platform/rsignal.h" +#include "vere.h" +#include "sigsegv.h" +#include "openssl/conf.h" +#include "openssl/engine.h" +#include "openssl/err.h" +#include "openssl/ssl.h" +#include "h2o.h" +#include "curl/curl.h" +#include "db/lmdb.h" +#include "getopt.h" +#include "libgen.h" +#include "pthread.h" +#include "spawn.h" + +#include "ca_bundle.h" +#include "pace.h" +#include "version.h" +#include "whereami.h" +#include "mars.h" + +// serf module state +// +static u3_serf u3V; // one serf per process +static u3_moat inn_u; // input stream +static u3_mojo out_u; // output stream +static u3_cue_xeno* sil_u; // cue handle + +#undef SERF_TRACE_JAM +#undef SERF_TRACE_CUE + +/* Require unsigned char + */ +//STATIC_ASSERT(( 0 == CHAR_MIN && UCHAR_MAX == CHAR_MAX ), + //"unsigned char required"); + +/* _main_self_path(): get binary self-path. +*/ +static void +_main_self_path(void) +{ + c3_c* pat_c; + c3_i len_i, pat_i; + + if ( 0 < (len_i = wai_getExecutablePath(NULL, 0, &pat_i)) ) { + pat_c = c3_malloc( 1 + len_i ); + wai_getExecutablePath(pat_c, len_i, &pat_i); + pat_c[len_i] = 0; + + u3_Host.dem_c = pat_c; + } + else { + fprintf(stderr, "unable to get binary self path\r\n"); + exit(1); + + // XX continue? + // + // u3_Host.dem_c = strdup(bin_c); + } +} + +/* _main_readw(): parse a word from a string. +*/ +static c3_o +_main_readw(const c3_c* str_c, c3_w max_w, c3_w* out_w) +{ + c3_c* end_c; + c3_w par_w = strtoul(str_c, &end_c, 0); + + if ( *str_c != '\0' && *end_c == '\0' && par_w < max_w ) { + *out_w = par_w; + return c3y; + } + else return c3n; +} + +/* _main_readw_loom(): parse loom pointer bit size from a string. +*/ +static c3_i +_main_readw_loom(const c3_c* arg_c, c3_y* out_y) +{ + c3_w lom_w; + c3_o res_o = _main_readw(optarg, u3a_bits_max + 1, &lom_w); + if ( res_o == c3n || (lom_w < 20) ) { + fprintf(stderr, "error: --%s must be >= 20 and <= %zu\r\n", arg_c, u3a_bits_max); + return -1; + } + *out_y = lom_w; + return 0; +} + +/* _main_presig(): prefix optional sig. +*/ +c3_c* +_main_presig(c3_c* txt_c) +{ + c3_c* new_c = c3_malloc(2 + strlen(txt_c)); + + if ( '~' == *txt_c ) { + strcpy(new_c, txt_c); + } else { + new_c[0] = '~'; + strcpy(new_c + 1, txt_c); + } + return new_c; +} + +/* _main_repath(): canonicalize path, using dirname if needed. +*/ +c3_c* +_main_repath(c3_c* pax_c) +{ + c3_c* rel_c; + c3_c* fas_c; + c3_c* dir_c; + c3_w len_w; + c3_i wit_i; + + u3_assert(pax_c); + if ( 0 != (rel_c = realpath(pax_c, 0)) ) { + return rel_c; + } + fas_c = strrchr(pax_c, '/'); + if ( !fas_c ) { + c3_c rec_c[2048]; + + wit_i = snprintf(rec_c, sizeof(rec_c), "./%s", pax_c); + u3_assert(sizeof(rec_c) > wit_i); + return _main_repath(rec_c); + } + u3_assert(u3_unix_cane(fas_c + 1)); + *fas_c = 0; + dir_c = realpath(pax_c, 0); + *fas_c = '/'; + if ( 0 == dir_c ) { + return 0; + } + len_w = strlen(dir_c) + strlen(fas_c) + 1; + rel_c = c3_malloc(len_w); + wit_i = snprintf(rel_c, len_w, "%s%s", dir_c, fas_c); + u3_assert(len_w == wit_i + 1); + c3_free(dir_c); + return rel_c; +} + +/* _main_init(): initialize globals +*/ +static void +_main_init(void) +{ + u3_Host.nex_o = c3n; + u3_Host.pep_o = c3n; + + u3_Host.ops_u.abo = c3n; + u3_Host.ops_u.dem = c3n; + u3_Host.ops_u.dry = c3n; + u3_Host.ops_u.gab = c3n; + u3_Host.ops_u.git = c3n; + + // always disable hashboard + // XX temporary, remove once hashes are added + // + u3_Host.ops_u.has = c3y; + + u3_Host.ops_u.map = c3y; + u3_Host.ops_u.net = c3y; + u3_Host.ops_u.lit = c3n; + u3_Host.ops_u.nuu = c3n; + u3_Host.ops_u.pro = c3n; + u3_Host.ops_u.qui = c3n; + u3_Host.ops_u.rep = c3n; + u3_Host.ops_u.eph = c3n; + u3_Host.ops_u.tos = c3n; + u3_Host.ops_u.beb = c3n; + u3_Host.ops_u.tem = c3n; + u3_Host.ops_u.tex = c3n; + u3_Host.ops_u.tra = c3n; + u3_Host.ops_u.veb = c3n; + u3_Host.ops_u.puf_c = "jam"; + u3_Host.ops_u.hap_w = 50000; + u3C.hap_w = u3_Host.ops_u.hap_w; + u3_Host.ops_u.per_w = 50000; + u3C.per_w = u3_Host.ops_u.per_w; + u3_Host.ops_u.kno_w = DefaultKernel; + + u3_Host.ops_u.sap_w = 120; /* aka 2 minutes */ + u3_Host.ops_u.lut_y = 31; /* aka 2G */ + u3_Host.ops_u.lom_y = 31; + u3_Host.ops_u.jum_y = 23; /* aka 1MB */ + + u3_Host.ops_u.siz_i = +#if (defined(U3_CPU_aarch64) && defined(U3_OS_linux)) + // 500 GiB is as large as musl on aarch64 wants to allow + 0x7d00000000; +#else + 0x10000000000; +#endif + + u3C.eph_c = 0; + u3C.tos_w = 0; +} + +/* _main_pier_run(): get pier from binary path (argv[0]), if appropriate +*/ +static c3_c* +_main_pier_run(c3_c* bin_c) +{ + c3_c* dir_c = 0; + c3_w bin_w = strlen(bin_c); + c3_w len_w = strlen(U3_BIN_ALIAS); + + // no args, argv[0] == $pier/.run + // + if ( (len_w <= bin_w) + && (0 == strcmp(bin_c + (bin_w - len_w), U3_BIN_ALIAS)) ) + { + bin_c = strdup(bin_c); // dirname can modify + dir_c = _main_repath(dirname(bin_c)); + c3_free(bin_c); + } + + return dir_c; +} + +/* _main_add_prop(): add a boot prop to u3_Host.ops_u.vex_u. +*/ +u3_even* +_main_add_prop(c3_i kin_i, c3_c* loc_c) +{ + u3_even* nex_u = c3_calloc(sizeof(*nex_u)); + nex_u->kin_i = kin_i; + nex_u->loc_c = loc_c; + nex_u->pre_u = u3_Host.ops_u.vex_u; + u3_Host.ops_u.vex_u = nex_u; + return nex_u; +} + +/* _main_getopt(): extract option map from command line. +*/ +static u3_noun +_main_getopt(c3_i argc, c3_c** argv) +{ + c3_i ch_i, lid_i; + c3_w arg_w; + c3_o want_creat_o = c3n; + + static struct option lop_u[] = { + { "arvo", required_argument, NULL, 'A' }, + { "abort", no_argument, NULL, 'a' }, + { "bootstrap", required_argument, NULL, 'B' }, + { "http-ip", required_argument, NULL, 'b' }, + { "memo-cache-limit", required_argument, NULL, 'C' }, + { "pier", required_argument, NULL, 'c' }, + { "replay", no_argument, NULL, 'D' }, + { "daemon", no_argument, NULL, 'd' }, + { "ethereum", required_argument, NULL, 'e' }, + { "fake", required_argument, NULL, 'F' }, + { "key-string", required_argument, NULL, 'G' }, + { "gc", no_argument, NULL, 'g' }, + { "dns-root", required_argument, NULL, 'H' }, + { "inject", required_argument, NULL, 'I' }, + { "import", required_argument, NULL, 'i' }, + { "ivory-pill", required_argument, NULL, 'J' }, + { "json-trace", no_argument, NULL, 'j' }, + { "jumbo-bloq", required_argument, NULL, c3__bloq }, + { "kernel-stage", required_argument, NULL, 'K' }, + { "key-file", required_argument, NULL, 'k' }, + { "loom", required_argument, NULL, c3__loom }, + { "local", no_argument, NULL, 'L' }, + { "lite-boot", no_argument, NULL, 'l' }, + { "keep-cache-limit", required_argument, NULL, 'M' }, + { "replay-to", required_argument, NULL, 'n' }, + { "profile", no_argument, NULL, 'P' }, + { "ames-port", required_argument, NULL, 'p' }, + { "http-port", required_argument, NULL, c3__http }, + { "https-port", required_argument, NULL, c3__htls }, + { "snap-time", required_argument, NULL, c3__snap }, + { "no-conn", no_argument, NULL, c3__noco }, + { "no-dock", no_argument, NULL, c3__nodo }, + { "quiet", no_argument, NULL, 'q' }, + { "versions", no_argument, NULL, 'R' }, + { "replay-from", required_argument, NULL, 'r' }, + { "skip-battery-hashes", no_argument, NULL, 'S' }, + { "autoselect-pill", no_argument, NULL, 's' }, + { "no-tty", no_argument, NULL, 't' }, + { "bootstrap-url", required_argument, NULL, 'u' }, + { "verbose", no_argument, NULL, 'v' }, + { "name", required_argument, NULL, 'w' }, + { "scry", required_argument, NULL, 'X' }, + { "exit", no_argument, NULL, 'x' }, + { "scry-into", required_argument, NULL, 'Y' }, + { "scry-format", required_argument, NULL, 'Z' }, + // + { "prop-file", required_argument, NULL, 1 }, + { "prop-url", required_argument, NULL, 2 }, + { "prop-name", required_argument, NULL, 3 }, + // + { "urth-loom", required_argument, NULL, 5 }, + { "no-demand", no_argument, NULL, 6 }, + { "swap", no_argument, NULL, 7 }, + { "swap-to", required_argument, NULL, 8 }, + { "toss", required_argument, NULL, 9 }, + { "behn-allow-blocked", no_argument, NULL, 10 }, + { "serf-bin", required_argument, NULL, 11 }, + { "lmdb-map-size", required_argument, NULL, 12 }, + // + { NULL, 0, NULL, 0 }, + }; + + while ( -1 != (ch_i=getopt_long(argc, argv, + "A:B:C:DF:G:H:I:J:K:LM:PRSX:Y:Z:ab:c:de:gi:jk:ln:p:qr:stu:vw:x", + lop_u, &lid_i)) ) + { + switch ( ch_i ) { + case 1: case 2: case 3: { // prop-* + _main_add_prop(ch_i, strdup(optarg)); + break; + } + case 5: { // urth-loom + if (_main_readw_loom("urth-loom", &u3_Host.ops_u.lut_y)) { + return c3n; + } + break; + } + case 6: { // no-demand + u3_Host.ops_u.map = c3n; + break; + } + case 7: { // swap + u3_Host.ops_u.eph = c3y; + break; + } + case 8: { // swap-to + u3_Host.ops_u.eph = c3y; + u3C.eph_c = strdup(optarg); + break; + } + case 9: { // toss + u3_Host.ops_u.tos = c3y; + if ( 1 != sscanf(optarg, "%" SCNu32, &u3C.tos_w) ) { + return c3n; + } + break; + } + case 10: { // behn-allow-blocked + u3_Host.ops_u.beb = c3y; + break; + } + case 11: { // serf-bin + u3_Host.wrk_c = strdup(optarg); + break; + } + case 12: { // lmdb-map-size + if ( 1 != sscanf(optarg, "%" SCNuMAX, &u3_Host.ops_u.siz_i) ) { + return c3n; + } + + break; + } + // special args + // + case c3__bloq: { + if (_main_readw(optarg, 30, &arg_w)) { + return c3n; + } else u3_Host.ops_u.jum_y = arg_w; + if ( 13 > u3_Host.ops_u.jum_y ) { + return c3n; + } + break; + } + case c3__loom: { + if (_main_readw_loom("loom", &u3_Host.ops_u.lom_y)) { + return c3n; + } + break; + } + case c3__http: { + if ( c3n == _main_readw(optarg, 65536, &arg_w) ) { + return c3n; + } else u3_Host.ops_u.per_s = arg_w; + break; + } + case c3__htls: { + if ( c3n == _main_readw(optarg, 65536, &arg_w) ) { + return c3n; + } else u3_Host.ops_u.pes_s = arg_w; + break; + } + case c3__noco: { + u3_Host.ops_u.con = c3n; + break; + } + case c3__nodo: { + u3_Host.ops_u.doc = c3n; + break; + } + case c3__snap: { + if ( c3n == _main_readw(optarg, 65536, &arg_w) ) { + return c3n; + } else { + u3_Host.ops_u.sap_w = arg_w * 60; + if ( 0 == u3_Host.ops_u.sap_w ) + return c3n; + } + break; + } + // opts with args + // + case 'A': { + u3_Host.ops_u.arv_c = _main_repath(optarg); + break; + } + case 'B': { + u3_Host.ops_u.pil_c = _main_repath(optarg); + break; + } + case 'b': { + u3_Host.ops_u.bin_c = strdup(optarg); + break; + } + case 'C': { + if ( c3n == _main_readw(optarg, 1000000000, &u3_Host.ops_u.hap_w) ) { + return c3n; + } + u3C.hap_w = u3_Host.ops_u.hap_w; + break; + } + case 'c': { + u3_Host.dir_c = _main_repath(optarg); + u3_Host.ops_u.nuu = c3y; + break; + } + case 'e': { + u3_Host.ops_u.eth_c = strdup(optarg); + break; + } + case 'F': { + u3_Host.ops_u.fak_c = _main_presig(optarg); + u3_Host.ops_u.net = c3n; + u3_Host.ops_u.nuu = c3y; + break; + } + case 'G': { + u3_Host.ops_u.gen_c = strdup(optarg); + break; + } + case 'H': { + u3_Host.ops_u.dns_c = strdup(optarg); + break; + } + case 'I': { + u3_Host.ops_u.jin_c = _main_repath(optarg); + break; + } + case 'i': { + u3_Host.ops_u.imp_c = _main_repath(optarg); + break; + } + case 'J': { + u3_Host.ops_u.lit_c = _main_repath(optarg); + break; + } + case 'K': { + if ( c3n == _main_readw(optarg, 256, &u3_Host.ops_u.kno_w) ) { + return c3n; + } + break; + } + case 'k': { + u3_Host.ops_u.key_c = _main_repath(optarg); + break; + } + case 'M': { + if ( c3n == _main_readw(optarg, 1000000000, &u3_Host.ops_u.per_w) ) { + return c3n; + } + u3C.per_w = u3_Host.ops_u.per_w; + break; + } + case 'n': { + u3_Host.ops_u.til_c = strdup(optarg); + break; + } + case 'p': { + if ( c3n == _main_readw(optarg, 65536, &arg_w) ) { + return c3n; + } else u3_Host.ops_u.por_s = arg_w; + break; + } + case 'R': { + u3_Host.ops_u.rep = c3y; + return c3y; + } + case 'r': { + u3_Host.ops_u.roc_c = strdup(optarg); + break; + } + case 'u': { + u3_Host.ops_u.url_c = strdup(optarg); + break; + } + case 'w': { + u3_Host.ops_u.who_c = _main_presig(optarg); + u3_Host.ops_u.nuu = c3y; + break; + } + case 'X': { + u3_Host.ops_u.pek_c = strdup(optarg); + break; + } + case 'x': { + u3_Host.ops_u.tex = c3y; + break; + } + case 'Y': { + u3_Host.ops_u.puk_c = strdup(optarg); + break; + } + case 'Z': { + u3_Host.ops_u.puf_c = strdup(optarg); + break; + } + // opts without args + // + case 'a': { u3_Host.ops_u.abo = c3y; break; } + case 'D': { u3_Host.ops_u.dry = c3y; break; } + case 'd': { u3_Host.ops_u.dem = c3y; break; } + case 'g': { u3_Host.ops_u.gab = c3y; break; } + case 'j': { u3_Host.ops_u.tra = c3y; break; } + case 'L': { u3_Host.ops_u.net = c3n; break; } + case 'l': { u3_Host.ops_u.lit = c3y; break; } + case 'P': { u3_Host.ops_u.pro = c3y; break; } + case 'q': { u3_Host.ops_u.qui = c3y; break; } + case 's': { u3_Host.ops_u.git = c3y; break; } + case 'S': { u3_Host.ops_u.has = c3y; break; } + case 't': { u3_Host.ops_u.tem = c3y; break; } + case 'v': { u3_Host.ops_u.veb = c3y; break; } + // unknown opt + // + case '?': default: { + return c3n; + } + } + } + +#if !defined(U3_OS_PROF) + if (u3_Host.ops_u.pro == c3y) { + fprintf(stderr, "profiling isn't yet supported on your OS\r\n"); + return c3n; + } +#endif + + if ( 0 != u3_Host.ops_u.fak_c ) { + if ( 28 < strlen(u3_Host.ops_u.fak_c) ) { + fprintf(stderr, "fake comets are forbidden\r\n"); + return c3n; + } + if ( 0 != u3_Host.ops_u.who_c ) { + fprintf(stderr, "-F and -w cannot be used together\r\n"); + return c3n; + } + + u3_Host.ops_u.who_c = strdup(u3_Host.ops_u.fak_c); + u3_Host.ops_u.has = c3y; /* no battery hashing on fake ships. */ + u3_Host.ops_u.net = c3n; /* no networking on fake ships. */ + } + + if ( argc == optind && u3_Host.ops_u.nuu != c3y ) { + if ( !(u3_Host.dir_c = _main_pier_run(argv[0])) ) { + // no trailing arg, argv[0] != $pier/.run, not making new pier: invalid command + fprintf(stderr, "no pier provided\n"); + return c3n; + } + } + else if ( argc != optind ) { + if ( u3_Host.ops_u.nuu == c3y || argc > (optind + 1) ) { + // path with new pier or multiple paths: invalid command + fprintf(stderr, "too many arguments\n"); + return c3n; + } + u3_Host.dir_c = _main_repath(argv[optind]); + } + + if ( 0 == u3_Host.dir_c ) { + u3_Host.dir_c = strdup(1 + u3_Host.ops_u.who_c); + } + + // daemon mode (-d) implies disabling terminal assumptions (-t) + // + if ( c3y == u3_Host.ops_u.dem ) { + u3_Host.ops_u.tem = c3y; + } + + { + struct stat s; + // catch invalid boot + if ( 0 != stat(u3_Host.dir_c, &s) ) { + if ( u3_Host.ops_u.nuu != c3y ) { + fprintf(stderr, "couldn't find pier %s\n", u3_Host.dir_c); + exit(1); + } + } + // catch invalid boot of existing pier + else { + if ( u3_Host.ops_u.nuu == c3y ) { + fprintf(stderr, "tried to create pier %s but it already exists\n", u3_Host.dir_c); + fprintf(stderr, "normal usage: %s %s\n", argv[0], u3_Host.dir_c); + exit(1); + } + else if ( 0 != access(u3_Host.dir_c, W_OK) ) { + fprintf(stderr, "urbit: write permissions are required for %s\n", u3_Host.dir_c); + exit(1); + } + } + } + + if ( u3_Host.ops_u.nuu != c3y && u3_Host.ops_u.pil_c != 0 ) { + fprintf(stderr, "-B only makes sense when creating a new ship\n"); + return c3n; + } + + if ( u3_Host.ops_u.nuu != c3y && u3_Host.ops_u.gen_c != 0 ) { + fprintf(stderr, "-G only makes sense when creating a new ship\n"); + return c3n; + } + + if ( u3_Host.ops_u.nuu != c3y && u3_Host.ops_u.dns_c != 0 ) { + fprintf(stderr, "-H only makes sense when creating a new ship\n"); + return c3n; + } + + if ( u3_Host.ops_u.nuu != c3y && u3_Host.ops_u.key_c != 0 ) { + fprintf(stderr, "-k only makes sense when creating a new ship\n"); + return c3n; + } + + if ( u3_Host.ops_u.nuu != c3y && u3_Host.ops_u.url_c != 0 ) { + fprintf(stderr, "-u only makes sense when creating a new ship\n"); + return c3n; + } + + if ( u3_Host.ops_u.url_c != 0 && u3_Host.ops_u.pil_c != 0 ) { + fprintf(stderr, "-B and -u cannot be used together\n"); + return c3n; + } + else if ( u3_Host.ops_u.nuu == c3y + && u3_Host.ops_u.url_c == 0 + && u3_Host.ops_u.git == c3n ) { + + c3_c version_c[strlen(URBIT_VERSION) + 1]; + strcpy(version_c, URBIT_VERSION); + c3_c* hyphen_c = strchr(version_c, '-'); + // URBIT_VERSION has the form {version}-{commit_sha} when built on + // non-"live" channels, which means we need to strip off the trailing commit + // SHA in those cases. + if ( hyphen_c ) { + *hyphen_c = '\0'; + } + //TODO use brass pill from b.u.org/props/etc eventually + c3_i res_i = asprintf(&u3_Host.ops_u.url_c, + "https://bootstrap.urbit.org/urbit-v%s.pill", + version_c); + if ( res_i < 0 ) { + fprintf(stderr, "failed to construct pill URL\n"); + return c3n; + } + } + else if ( u3_Host.ops_u.nuu == c3y + && u3_Host.ops_u.url_c == 0 + && u3_Host.ops_u.arv_c == 0 ) { + + // implicitly: u3_Host.ops_u.git == c3y + fprintf(stderr, "-s only makes sense with -A\n"); + return c3n; + } + + if ( u3_Host.ops_u.pil_c != 0 ) { + struct stat s; + if ( stat(u3_Host.ops_u.pil_c, &s) != 0 ) { + fprintf(stderr, "pill %s not found\n", u3_Host.ops_u.pil_c); + return c3n; + } + } + + if ( u3_Host.ops_u.vex_u != 0 ) { + struct stat s; + u3_even* vex_u = u3_Host.ops_u.vex_u; + while ( vex_u != 0 ) { + if ( vex_u->kin_i == 1 && stat(vex_u->loc_c, &s) != 0 ) { + fprintf(stderr, "events file %s not found\n", vex_u->loc_c); + return c3n; + } + vex_u = vex_u->pre_u; + } + } + + struct sockaddr_in t; + if ( u3_Host.ops_u.bin_c != 0 && inet_pton(AF_INET, u3_Host.ops_u.bin_c, &t.sin_addr) == 0 ) { + fprintf(stderr, "-b invalid IP address\n"); + return c3n; + } + + if ( u3_Host.ops_u.key_c != 0 ) { + struct stat s; + if ( stat(u3_Host.ops_u.key_c, &s) != 0 ) { + fprintf(stderr, "keyfile %s not found\n", u3_Host.ops_u.key_c); + return c3n; + } + } + + //TODO split up "default distribution" packages eventually + // // if we're not in lite mode, include the default props + // // + // if ( u3_Host.ops_u.lit == c3n ) { + // _main_add_prop(3, "landscape"); + // _main_add_prop(3, "webterm"); + // _main_add_prop(3, "groups"); + // } + + return c3y; +} + +/* _cert_store: decoded CA certificates + */ +static STACK_OF(X509_INFO)* _cert_store; + +/* _setup_cert_store(): decodes embedded CA certificates + */ +static void +_setup_cert_store() +{ + BIO* cbio = BIO_new_mem_buf(include_ca_bundle_crt, include_ca_bundle_crt_len); + if ( !cbio || !(_cert_store = PEM_X509_INFO_read_bio(cbio, NULL, NULL, NULL)) ) { + u3l_log("boot: failed to decode embedded CA certificates"); + exit(1); + } + + BIO_free(cbio); +} + +/* _setup_ssl_x509(): adds embedded CA certificates to a X509_STORE + */ +static void +_setup_ssl_x509(void* arg) +{ + X509_STORE* cts = arg; + int i; + for ( i = 0; i < sk_X509_INFO_num(_cert_store); i++ ) { + X509_INFO *itmp = sk_X509_INFO_value(_cert_store, i); + if(itmp->x509) { + X509_STORE_add_cert(cts, itmp->x509); + } + if(itmp->crl) { + X509_STORE_add_crl(cts, itmp->crl); + } + } +} + +/* _curl_ssl_ctx_cb(): curl SSL context callback + */ +static CURLcode +_curl_ssl_ctx_cb(CURL* curl, SSL_CTX* sslctx, void* param) +{ + X509_STORE* cts = SSL_CTX_get_cert_store(sslctx); + if (!cts || !_cert_store) + return CURLE_ABORTED_BY_CALLBACK; + + _setup_ssl_x509(cts); + return CURLE_OK; +} + +/* _setup_ssl_curl(): adds embedded CA certificates to a curl context + */ +static void +_setup_ssl_curl(void* arg) +{ + CURL* curl = arg; + curl_easy_setopt(curl, CURLOPT_CAINFO, NULL); + curl_easy_setopt(curl, CURLOPT_CAPATH, NULL); + curl_easy_setopt(curl, CURLOPT_SSL_CTX_FUNCTION, _curl_ssl_ctx_cb); +} + +/* _cw_usage(): print utility usage. +*/ +static void +_cw_usage(c3_c* bin_c) +{ + c3_c *use_c[] = { + "utilities:\n", + " %s eval evaluate hoon from stdin:\n", + " %s cram %.*s jam state:\n", + " %s dock %.*s copy binary:\n", + " %s grab %.*s measure memory usage:\n", + " %s info %.*s print pier info:\n", + " %s meld %.*s deduplicate and minimize snapshot:\n", + " %s melt %.*s deduplicate snapshot:\n", + " %s pack %.*s defragment snapshot:\n", + " %s play %.*s recompute events:\n", + " %s prep %.*s prepare for upgrade:\n", + " %s next %.*s request upgrade:\n", + " %s queu %.*s cue state:\n", + " %s chop %.*s truncate event log:\n", + " %s roll %.*s rollover to new epoch:\n", + " %s vere ARGS download binary:\n", + "\n run as a 'serf':\n", + " %s serf " + "\n", + 0 + }; + + c3_c* d = _main_pier_run(bin_c); + c3_i i; + + for ( i=0; use_c[i]; i++ ) { + fprintf(stderr, use_c[i], bin_c, d ? 0 : 7, " "); + } + + c3_free(d); +} + +/* u3_ve_usage(): print usage and exit. +*/ +static void +u3_ve_usage(c3_i argc, c3_c** argv) +{ + c3_c *use_c[] = { + "Urbit: a personal server operating function\n", + "https://urbit.org\n", + "Version " URBIT_VERSION "\n", + "\n", + "Usage: %s [options...] ship_name\n", + "where ship_name is a @p phonetic representation of an urbit address\n", + "without the leading '~', and options is some subset of the following:\n", + "\n", + "-A, --arvo DIR Use dir for initial clay sync\n", + "-a, --abort Abort aggressively\n", + "-B, --bootstrap PILL Bootstrap from this pill\n", + "-b, --http-ip IP Bind HTTP server to this IP address\n", + "-C, --memo-cache-limit LIMIT Set memo cache max size; 0 means uncapped\n", + "-c, --pier PIER Create a new urbit in /\n", + "-D, --replay Recompute from events\n", + "-d, --daemon Daemon mode; implies -t\n", + "-e, --ethereum URL Ethereum gateway\n", + "-F, --fake SHIP Boot fake urbit; also disables networking\n", + "-G, --key-string STRING Private key string (@uw, see also -k)\n" + "-g, --gc Set GC flag\n", + "-I, --inject FILE Inject event from jamfile\n", + "-i, --import FILE Import pier state from jamfile\n", + "-J, --ivory-pill PILL Use custom ivory pill\n", + "-j, --json-trace Create json trace file in .urb/put/trace\n", + " --jumbo-bloq BLOQ Set Ames jumbo frame bloq size\n", + "-K, --kernel-stage STAGE Start at Hoon kernel version stage\n", + "-k, --key-file KEYS Private key file (see also -G)\n", + "-L, --local Local networking only\n", + " --loom EXPO Set loom to binary exponent (31 == 2GB)\n" + "-l, --lite-boot Most-minimal startup\n", + "-M, --keep-cache-limit LIMIT Set persistent memo cache max size; 0 means default\n", + "-n, --replay-to NUMBER Replay up to event\n", + "-P, --profile Profiling\n", + "-p, --ames-port PORT Set the ames port to bind to\n", + " --http-port PORT Set the http port to bind to\n", + " --https-port PORT Set the https port to bind to\n", + " --snap-time TIME Set the snapshotting rate in minutes (> 0)\n", + "-q, --quiet Quiet\n", + "-R, --versions Report urbit build info\n", + "-r, --replay-from NUMBER Load snapshot from event\n", + "-S, --skip-battery-hashes Disable battery hashing\n", + // XX find a way to re-enable + // "-s, --autoselect-pill Pill URL from arvo git hash\n", + "-t, --no-tty Disable terminal/tty assumptions\n", + "-u, --bootstrap-url URL URL from which to download pill\n", + "-v, --verbose Verbose\n", + "-w, --name NAME Initial boot as ~name (with ticket)\n", + "-X, --scry PATH Scry, write to file, then exit\n", + "-x, --exit Exit immediately\n", + "-Y, --scry-into FILE Optional name of file (for -X)\n", + "-Z, --scry-format FORMAT Optional file format ('jam', or aura, for -X)\n", + " --no-demand Skip demand paging\n" + " --no-conn Do not run control plane\n", + " --no-dock Skip binary \"docking\" on boot\n", + " --swap Use an explicit ephemeral (swap-like) file\n", + " --swap-to FILE Specify ephemeral file location\n", + " --prop-file FILE Add a prop into the boot sequence\n" + " --prop-url URL Download a prop into the boot sequence\n", + " --prop-name NAME Download a prop from bootstrap.urbit.org\n", + "\n", + "Development Usage:\n", + " To create a development ship, use a fakezod:\n", + " %s -F zod -A /path/to/arvo/folder -B /path/to/pill -c zod\n", + "\n", + " For more information about developing on urbit, see:\n", + " https://github.com/urbit/urbit/blob/master/CONTRIBUTING.md\n", + "\n", + "Simple Usage: \n", + " %s -c to create a comet (anonymous urbit)\n", + " %s -w -k if you own a planet\n", + " %s to restart an existing urbit\n", + 0 + }; + + c3_i i; + for ( i=0; use_c[i]; i++ ) { + fprintf(stderr, use_c[i], argv[0]); + } + _cw_usage(argv[0]); + exit(1); +} + +#if 0 +/* u3_ve_panic(): panic and exit. +*/ +static void +u3_ve_panic(c3_i argc, c3_c** argv) +{ + fprintf(stderr, "%s: gross system failure\n", argv[0]); + exit(1); +} +#endif + +static void +report(void) +{ + printf("urbit %s\n", URBIT_VERSION); + printf("gmp: %s\n", gmp_version); + printf("sigsegv: %d.%d\n", + (libsigsegv_version >> 8) & 0xff, + libsigsegv_version & 0xff); + printf("openssl: %s\n", SSLeay_version(SSLEAY_VERSION)); + printf("libuv: %s\n", uv_version_string()); + printf("libh2o: %d.%d.%d\n", + H2O_LIBRARY_VERSION_MAJOR, + H2O_LIBRARY_VERSION_MINOR, + H2O_LIBRARY_VERSION_PATCH); + printf("lmdb: %d.%d.%d\n", + MDB_VERSION_MAJOR, + MDB_VERSION_MINOR, + MDB_VERSION_PATCH); + printf("curl: %d.%d.%d\n", + LIBCURL_VERSION_MAJOR, + LIBCURL_VERSION_MINOR, + LIBCURL_VERSION_PATCH); +} + +/* _stop_exit_fore(): exit before. +*/ +static void +_stop_exit_fore(c3_i int_i) +{ + kill(getpid(), SIGTERM); +} + +/* _stop_exit(): exit immediately. +*/ +static void +_stop_exit(c3_i int_i) +{ + // explicit fprintf to avoid allocation in u3l_log + // + fprintf(stderr, "\r\n[received keyboard stop signal, exiting]\r\n"); + u3_king_bail(); +} + +/* _stop_on_boot_completed_cb(): exit gracefully after boot is complete +*/ +static void +_stop_on_boot_completed_cb() +{ + u3_king_exit(); +} + +/* _cw_serf_fail(): failure stub. +*/ +static void +_cw_serf_fail(void* ptr_v, ssize_t err_i, const c3_c* err_c) +{ + if ( UV_EOF == err_i ) { + fprintf(stderr, "serf: pier unexpectedly shut down\r\n"); + } + else { + fprintf(stderr, "serf: pier error: %s\r\n", err_c); + } + + exit(1); +} + +/* _cw_king_fail(): local failure stub. +*/ +static void +_cw_king_fail(void* ptr_v, ssize_t err_i, const c3_c* err_c) +{ + fprintf(stderr, "king: eval error: %s\r\n", err_c); + exit(1); +} + +/* _cw_serf_send(): send plea back to daemon. +*/ +static void +_cw_serf_send(u3_noun pel) +{ + c3_d len_d; + c3_y* byt_y; + +#ifdef SERF_TRACE_JAM + u3t_event_trace("serf ipc jam", 'B'); +#endif + + u3s_jam_xeno(pel, &len_d, &byt_y); + +#ifdef SERF_TRACE_JAM + u3t_event_trace("serf ipc jam", 'E'); +#endif + + u3_newt_send(&out_u, len_d, byt_y); + u3z(pel); +} + +/* _cw_serf_send_slog(): send hint output (hod is [priority tank]). +*/ +static void +_cw_serf_send_slog(u3_noun hod) +{ + _cw_serf_send(u3nc(c3__slog, hod)); +} + +/* _cw_serf_send_stdr(): send stderr output (%flog) +*/ +static void +_cw_serf_send_stdr(c3_c* str_c) +{ + _cw_serf_send(u3nc(c3__flog, u3i_string(str_c))); +} + +/* _cw_serf_step_trace(): initialize or rotate trace file. +*/ +static void +_cw_serf_step_trace(void) +{ + if ( u3C.wag_w & u3o_trace ) { + c3_w trace_cnt_w = u3t_trace_cnt(); + if ( trace_cnt_w == 0 && u3t_file_cnt() == 0 ) { + u3t_trace_open(u3V.dir_c); + } + else if ( trace_cnt_w >= 100000 ) { + u3t_trace_close(); + u3t_trace_open(u3V.dir_c); + } + } +} + +/* _cw_serf_writ(): process a command from the king. +*/ +static void +_cw_serf_writ(void* vod_p, c3_d len_d, c3_y* byt_y) +{ + u3_weak jar; + u3_noun ret; + + _cw_serf_step_trace(); + +#ifdef SERF_TRACE_CUE + u3t_event_trace("serf ipc cue", 'B'); +#endif + + jar = u3s_cue_xeno_with(sil_u, len_d, byt_y); + +#ifdef SERF_TRACE_CUE + u3t_event_trace("serf ipc cue", 'E'); +#endif + + if ( (u3_none == jar) + || (c3n == u3_serf_writ(&u3V, jar, &ret)) ) + { + _cw_serf_fail(0, -1, "bad jar"); + } + else { + _cw_serf_send(ret); + + // all references must now be counted, and all roots recorded + // + u3_serf_post(&u3V); + } +} + +/* _cw_serf_stdio(): fix up std io handles +*/ +static void +_cw_serf_stdio(c3_i* inn_i, c3_i* out_i) +{ + // the serf is spawned with [FD 0] = events and [FD 1] = effects + // we dup [FD 0 & 1] so we don't accidentally use them for something else + // we replace [FD 0] (stdin) with a fd pointing to /dev/null + // we replace [FD 1] (stdout) with a dup of [FD 2] (stderr) + // + c3_i nul_i = c3_open(c3_dev_null, O_RDWR, 0); + + *inn_i = dup(0); + *out_i = dup(1); + + dup2(nul_i, 0); + dup2(2, 1); + + close(nul_i); + + // set stream I/O to unbuffered because it's now a pipe not a console + // + setvbuf(stdout, NULL, _IONBF, 0); + setvbuf(stderr, NULL, _IONBF, 0); +} + +/* _cw_serf_stdio(): cleanup on serf exit. +*/ +static void +_cw_serf_exit(void) +{ + u3s_cue_xeno_done(sil_u); + u3t_trace_close(); + u3m_stop(); +} + +/* _cw_init_io(): initialize i/o streams. +*/ +static void +_cw_init_io(uv_loop_t* lup_u) +{ + // mars is spawned with [FD 0] = events and [FD 1] = effects + // we dup [FD 0 & 1] so we don't accidentally use them for something else + // we replace [FD 0] (stdin) with a fd pointing to /dev/null + // we replace [FD 1] (stdout) with a dup of [FD 2] (stderr) + // + c3_i nul_i = c3_open(c3_dev_null, O_RDWR, 0); + c3_i inn_i = dup(0); + c3_i out_i = dup(1); + + dup2(nul_i, 0); + dup2(2, 1); + + close(nul_i); + + // set stream I/O to unbuffered because it's now a pipe not a console + // + setvbuf(stdout, NULL, _IONBF, 0); + setvbuf(stderr, NULL, _IONBF, 0); + + // Ignore SIGPIPE signals. + // + { + sigset_t set_s; + sigemptyset(&set_s); + sigaddset(&set_s, SIGPIPE); + pthread_sigmask(SIG_BLOCK, &set_s, NULL); + } + + // configure pipe to daemon process + // + { + c3_i err_i; + err_i = uv_timer_init(lup_u, &inn_u.tim_u); + u3_assert(!err_i); + err_i = uv_pipe_init(lup_u, &inn_u.pyp_u, 0); + u3_assert(!err_i); + uv_pipe_open(&inn_u.pyp_u, inn_i); + err_i = uv_pipe_init(lup_u, &out_u.pyp_u, 0); + u3_assert(!err_i); + uv_pipe_open(&out_u.pyp_u, out_i); + + uv_stream_set_blocking((uv_stream_t*)&out_u.pyp_u, 1); + } +} + +/* _cw_serf_commence(): initialize and run serf +*/ +static void +_cw_serf_commence(c3_i argc, c3_c* argv[]) +{ + if ( 9 > argc ) { + fprintf(stderr, "serf: missing args\n"); + exit(1); + } + // XX use named arguments and getopt + + c3_d eve_d = 0; + uv_loop_t* lup_u = u3_Host.lup_u = uv_default_loop(); + c3_c* dir_c = argv[2]; + c3_c* key_c = argv[3]; // XX use passkey + c3_c* wag_c = argv[4]; + c3_c* hap_c = argv[5]; + c3_c* lom_c = argv[6]; + c3_w lom_w; + c3_c* eve_c = argv[7]; + c3_c* eph_c = argv[8]; + c3_c* tos_c = argv[9]; + c3_c* per_c = argv[10]; + c3_w tos_w; + + _cw_init_io(lup_u); + + memset(&u3V, 0, sizeof(u3V)); + + // load passkey + // + // XX and then ... use passkey + // + { + sscanf(key_c, "%" PRIx64 ":%" PRIx64 ":%" PRIx64 ":%" PRIx64, + &u3V.key_d[0], + &u3V.key_d[1], + &u3V.key_d[2], + &u3V.key_d[3]); + } + + // load runtime config + // + { + // XX check return + // + sscanf(wag_c, "%" SCNu32, &u3C.wag_w); + sscanf(hap_c, "%" SCNu32, &u3C.hap_w); + sscanf(per_c, "%" SCNu32, &u3C.per_w); + sscanf(lom_c, "%" SCNu32, &lom_w); + + if ( 1 != sscanf(tos_c, "%" SCNu32, &u3C.tos_w) ) { + fprintf(stderr, "serf: toss: invalid number '%s'\r\n", tos_c); + } + + if ( 1 != sscanf(eve_c, "%" PRIu64, &eve_d) ) { + fprintf(stderr, "serf: rock: invalid number '%s'\r\n", eve_c); + } + } + + sil_u = u3s_cue_xeno_init(); + + // set up writing + // + out_u.ptr_v = &u3V; + out_u.bal_f = _cw_serf_fail; + + // set up reading + // + inn_u.ptr_v = &u3V; + inn_u.pok_f = _cw_serf_writ; + inn_u.bal_f = _cw_serf_fail; + + // setup loom + // + { + u3C.eph_c = (strcmp(eph_c, "0") == 0 ? 0 : strdup(eph_c)); + + u3V.dir_c = strdup(dir_c); + u3V.sen_d = u3V.dun_d = u3m_boot(dir_c, (size_t)1 << lom_w); + + if ( eve_d ) { + // XX need not be fatal, need a u3m_reboot equivalent + // XX can spuriously fail do to corrupt memory-image checkpoint, + // need a u3m_half_boot equivalent + // workaround is to delete/move the checkpoint in case of corruption + // + if ( c3n == u3u_uncram(u3V.dir_c, eve_d) ) { + fprintf(stderr, "serf (%" PRIu64 "): rock load failed\r\n", eve_d); + exit(1); + } + } + } + + // set up logging + // + // XX must be after u3m_boot due to u3l_log + // + { + u3C.stderr_log_f = _cw_serf_send_stdr; + u3C.slog_f = _cw_serf_send_slog; + } + + u3V.xit_f = _cw_serf_exit; + +#if defined(SERF_TRACE_JAM) || defined(SERF_TRACE_CUE) + u3t_trace_open(u3V.dir_c); +#endif + + // start serf + // + { + _cw_serf_send(u3_serf_init(&u3V)); + } + + // start reading + // + u3_newt_read_sync(&inn_u); + + // enter loop + // + uv_run(lup_u, UV_RUN_DEFAULT); + u3m_stop(); +} + +/* _cw_disk_init(): open event log +*/ +static u3_disk* +_cw_disk_init(c3_c* dir_c) +{ + u3_disk_cb cb_u = {0}; + u3_disk* log_u = u3_disk_init(dir_c, cb_u); + + if ( !log_u ) { + fprintf(stderr, "unable to open event log\n"); + exit(1); + } + + return log_u; +} + +/* _cw_dock(): copy binary into pier +*/ +static void +_cw_dock(c3_i argc, c3_c* argv[]) +{ + switch ( argc ) { + case 2: { + if ( !(u3_Host.dir_c = _main_pier_run(argv[0])) ) { + fprintf(stderr, "unable to find pier\r\n"); + exit (1); + } + } break; + + case 3: { + u3_Host.dir_c = argv[2]; + } break; + + default: { + fprintf(stderr, "invalid command\r\n"); + exit(1); + } break; + } + + _main_self_path(); + + u3_king_dock(U3_VERE_PACE); +} + +/* _cw_eval_get_string(): read file til EOF and return a malloc'd string +*/ +c3_c* +_cw_eval_get_string(FILE* fil_u, size_t siz_i) +{ + c3_i car_i; + size_t len_i = 0; + c3_c* str_c = c3_malloc(siz_i); // size is start size + + while( EOF != (car_i = fgetc(fil_u)) ){ + str_c[len_i++] = car_i; + if( len_i == siz_i ){ + siz_i += 16; + str_c = c3_realloc(str_c, siz_i); + } + } + + str_c[len_i++]='\0'; + + return c3_realloc(str_c, len_i); +} + +/* _cw_eval_get_newt(): read a newt-encoded jammed noun from file and return a +** malloc'd byte buffer +*/ +c3_y* +_cw_eval_get_newt(FILE* fil_u, c3_d* len_d) +{ + // TODO: can't reuse u3_newt_decode; coupled to reading from pipe + c3_d i; + c3_y hed_y = sizeof(((u3_mess*)NULL)->hed_u.hed_y); + c3_y* byt_y = c3_malloc(hed_y); + + for ( i = 0; i < hed_y; ++i ) { + byt_y[i] = fgetc(fil_u); + } + + if ( 0x0 != byt_y[0] ) { + fprintf(stderr, "corrupted newt passed to cue\n"); + exit(1); + } + + *len_d = (((c3_d)byt_y[1]) << 0) + | (((c3_d)byt_y[2]) << 8) + | (((c3_d)byt_y[3]) << 16) + | (((c3_d)byt_y[4]) << 24); + byt_y = c3_realloc(byt_y, *len_d); + + for ( i = 0; i < *len_d; ++i ) { + byt_y[i] = fgetc(fil_u); + } + + return byt_y; +} + +/* _cw_eval(): initialize and run the hoon evaluator +*/ +static void +_cw_eval(c3_i argc, c3_c* argv[]) +{ + u3_mojo std_u; + c3_i ch_i, lid_i; + c3_w arg_w; + c3_o cue_o = c3n; + c3_o jam_o = c3n; + c3_o kan_o = c3n; + c3_o new_o = c3n; + + static struct option lop_u[] = { + { "loom", required_argument, NULL, c3__loom }, + { "cue", no_argument, NULL, 'c'}, + { "jam", no_argument, NULL, 'j' }, + { "newt", no_argument, NULL, 'n' }, + // + { NULL, 0, NULL, 0 } + }; + + while ( -1 != (ch_i=getopt_long(argc, argv, "cjkn", lop_u, &lid_i)) ) { + switch ( ch_i ) { + case c3__loom: { + if (_main_readw_loom("loom", &u3_Host.ops_u.lom_y)) { + exit(1); + } + } break; + + case 'c': { + cue_o = c3y; + } break; + + case 'j': { + jam_o = c3y; + } break; + + case 'k': { + kan_o = c3y; + } break; + + case 'n': { + new_o = c3y; + } break; + + case '?': { + fprintf(stderr, "invalid argument\r\n"); + exit(1); + } break; + } + } + + // cannot have both jam and cue set + // + if ( ( c3y == cue_o ) && ( c3y == jam_o ) ) { + fprintf(stderr, "cannot enable both jam and cue\r\n"); + exit(1); + } + // newt meaningless without jam or cue set + // + if ( ( c3y == new_o ) && ( c3n == cue_o ) && ( c3n == jam_o) ) { + fprintf(stderr, "newt meaningless w/o jam or cue; ignoring\r\n"); + new_o = c3n; + } + // argv[optind] is always "eval" + // + if ( optind + 1 != argc ) { + fprintf(stderr, "invalid command\r\n"); + exit(1); + } + + // configure stdout as u3_mojo + // + { + c3_i err_i; + err_i = uv_pipe_init(uv_default_loop(), &std_u.pyp_u, 0); + u3_assert(!err_i); + uv_pipe_open(&std_u.pyp_u, 1); + + std_u.ptr_v = NULL; + std_u.bal_f = _cw_king_fail; + } + + // initialize the Loom and load the Ivory Pill + // + { + c3_d len_d = u3_Ivory_pill_len; + c3_y* byt_y = u3_Ivory_pill; + u3_cue_xeno* sil_u; + u3_weak pil; + + u3C.wag_w |= u3o_hashless; + u3m_boot_lite((size_t)1 << u3_Host.ops_u.lom_y); + sil_u = u3s_cue_xeno_init_with(ur_fib27, ur_fib28); + if ( u3_none == (pil = u3s_cue_xeno_with(sil_u, len_d, byt_y)) ) { + fprintf(stderr, "lite: unable to cue ivory pill\r\n"); + exit(1); + } + u3s_cue_xeno_done(sil_u); + if ( c3n == u3v_boot_lite(pil) ) { + u3l_log("lite: boot failed"); + exit(1); + } + } + + fprintf(stderr, "eval ("); + if ( c3y == cue_o ) { + fprintf(stderr, "cue"); + } else if ( c3y == jam_o ) { + fprintf(stderr, "jam"); + } else { + fprintf(stderr, "run"); + } + if ( c3y == new_o ) { + fprintf(stderr, ", newt"); + } + fprintf(stderr,"):\n"); + + // cue input and pretty-print on stdout + // + if ( c3y == cue_o ) { + c3_d len_d; + c3_y* byt_y; + u3_weak som; + if ( c3n == new_o ) { + fprintf(stderr, "cue only supports newt encoding (for now)\n"); + exit(1); + } + byt_y = _cw_eval_get_newt(stdin, &len_d); + som = u3s_cue_xeno(len_d, byt_y); + if ( u3_none == som ) { + fprintf(stderr, "cue failed\n"); + exit(1); + } + c3_c* pre_c; + u3k(som); + // if input is jammed khan output + if ( c3y == kan_o ) { + u3_noun cop, uid, mar, res, tan; + u3x_qual(som, &uid, &mar, &res, &tan); + // and if result is a goof + if ( c3n == res ) { + // pretty-print tang to stderr and output only header + u3_Host.ops_u.dem = c3y; + u3_pier_punt_goof("eval", tan); + cop = som; + som = u3i_trel(uid, mar, res); + u3k(som); + u3z(cop); + } + } + pre_c = u3m_pretty(som); + fprintf(stdout, "%s\n", pre_c); + c3_free(pre_c); + u3z(som); + free(byt_y); + } + // jam input and return on stdout + // + else if ( c3y == jam_o ) { + c3_d len_d = 0; + c3_c* evl_c = _cw_eval_get_string(stdin, 10); + c3_y* byt_y; + u3_noun sam = u3i_string(evl_c); + u3_noun res = u3m_soft(0, u3v_wish_n, sam); + if ( 0 == u3h(res) ) { // successful execution, print output + u3s_jam_xeno(u3t(res), &len_d, &byt_y); + if ( c3y == new_o ) { + u3_newt_send(&std_u, len_d, byt_y); + } else { + for ( size_t p=0; p < len_d; p++ ) { + fprintf(stdout,"\\x%2x", byt_y[p++]); + } + } + } else { // error, print stack trace + u3_pier_punt_goof("eval", u3k(res)); + } + u3z(res); + free(evl_c); + } + // slam eval gate with input + // + else { + c3_c* evl_c = _cw_eval_get_string(stdin, 10); + // +wish for an eval gate (virtualized twice for pretty-printing) + u3_noun gat = u3v_wish("|=(a=@t (sell (slap !>(+>.$) (rain /eval a))))"); + u3_noun res; + { + u3_noun sam = u3i_string(evl_c); + u3_noun cor = u3nc(u3k(u3h(gat)), u3nc(sam, u3k(u3t(u3t(gat))))); + res = u3m_soft(0, u3n_kick_on, cor); + } + if ( 0 == u3h(res) ) { // successful execution, print output + u3_pier_tank(0, 0, u3k(u3t(res))); + } else { // error, print stack trace + u3_pier_punt_goof("eval", u3k(res)); + } + u3z(res); + u3z(gat); + free(evl_c); + } +} + +/* _cw_info(): print pier info +*/ +static void +_cw_info(c3_i argc, c3_c* argv[]) +{ + c3_i lid_i, ch_i; + c3_w arg_w; + + static struct option lop_u[] = { + { "loom", required_argument, NULL, c3__loom }, + { "no-demand", no_argument, NULL, 6 }, + { "swap", no_argument, NULL, 7 }, + { "swap-to", required_argument, NULL, 8 }, + { "lmdb-map-size", required_argument, NULL, 9 }, + { NULL, 0, NULL, 0 } + }; + + u3_Host.dir_c = _main_pier_run(argv[0]); + + while ( -1 != (ch_i=getopt_long(argc, argv, "", lop_u, &lid_i)) ) { + switch ( ch_i ) { + case c3__loom: { + if (_main_readw_loom("loom", &u3_Host.ops_u.lom_y)) { + exit(1); + } + } break; + + case 6: { // no-demand + u3_Host.ops_u.map = c3n; + u3C.wag_w |= u3o_no_demand; + } break; + + case 7: { // swap + u3_Host.ops_u.eph = c3y; + u3C.wag_w |= u3o_swap; + } break; + + case 8: { // swap-to + u3_Host.ops_u.eph = c3y; + u3C.wag_w |= u3o_swap; + u3C.eph_c = strdup(optarg); + break; + } + + case 9: { // lmdb-map-size + if ( 1 != sscanf(optarg, "%" SCNuMAX, &u3_Host.ops_u.siz_i) ) { + exit(1); + } + break; + } + + case '?': { + fprintf(stderr, "invalid argument\r\n"); + exit(1); + } break; + } + } + + // argv[optind] is always "info" + // + if ( !u3_Host.dir_c ) { + if ( optind + 1 < argc ) { + u3_Host.dir_c = argv[optind + 1]; + } + else { + fprintf(stderr, "invalid command, pier required\r\n"); + exit(1); + } + + optind++; + } + + if ( optind + 1 != argc ) { + fprintf(stderr, "invalid command\r\n"); + exit(1); + } + + u3_Host.eve_d = u3m_boot(u3_Host.dir_c, (size_t)1 << u3_Host.ops_u.lom_y); + u3_disk* log_u = _cw_disk_init(u3_Host.dir_c); + + fprintf(stderr, "\r\nurbit: %s at event %" PRIu64 "\r\n", + u3_Host.dir_c, u3_Host.eve_d); + + u3_disk_slog(log_u); + printf("\n"); + + + { + c3_z len_z = u3_disk_epoc_list(log_u, 0); + c3_d* sot_d = c3_malloc(len_z * sizeof(c3_d)); + u3_disk_epoc_list(log_u, sot_d); + + fprintf(stderr, "epocs:\r\n"); + + while ( len_z-- ) { + fprintf(stderr, " 0i%" PRIu64 "\r\n", sot_d[len_z]); + } + + c3_free(sot_d); + fprintf(stderr, "\r\n"); + } + + u3_lmdb_stat(log_u->mdb_u, stdout); + u3_disk_exit(log_u); + + u3m_stop(); +} + +/* _cw_grab(): gc pier. +*/ +static void +_cw_grab(c3_i argc, c3_c* argv[]) +{ + c3_i lid_i, ch_i; + c3_w arg_w; + + static struct option lop_u[] = { + { "loom", required_argument, NULL, c3__loom }, + { "no-demand", no_argument, NULL, 6 }, + { "swap", no_argument, NULL, 7 }, + { "swap-to", required_argument, NULL, 8 }, + { NULL, 0, NULL, 0 } + }; + + u3_Host.dir_c = _main_pier_run(argv[0]); + + while ( -1 != (ch_i=getopt_long(argc, argv, "", lop_u, &lid_i)) ) { + switch ( ch_i ) { + case c3__loom: { + if (_main_readw_loom("loom", &u3_Host.ops_u.lom_y)) { + exit(1); + } + } break; + + case 6: { // no-demand + u3_Host.ops_u.map = c3n; + u3C.wag_w |= u3o_no_demand; + } break; + + case 7: { // swap + u3_Host.ops_u.eph = c3y; + u3C.wag_w |= u3o_swap; + } break; + + case 8: { // swap-to + u3_Host.ops_u.eph = c3y; + u3C.wag_w |= u3o_swap; + u3C.eph_c = strdup(optarg); + break; + } + + case '?': { + fprintf(stderr, "invalid argument\r\n"); + exit(1); + } break; + } + } + + // argv[optind] is always "grab" + // + if ( !u3_Host.dir_c ) { + if ( optind + 1 < argc ) { + u3_Host.dir_c = argv[optind + 1]; + } + else { + fprintf(stderr, "invalid command, pier required\r\n"); + exit(1); + } + + optind++; + } + + if ( optind + 1 != argc ) { + fprintf(stderr, "invalid command\r\n"); + exit(1); + } + + u3m_boot(u3_Host.dir_c, (size_t)1 << u3_Host.ops_u.lom_y); + u3C.wag_w |= u3o_hashless; + u3z(u3_serf_grab(c3y)); + u3m_stop(); +} + +/* _cw_cram(): jam persistent state (rock), and exit. +*/ +static void +_cw_cram(c3_i argc, c3_c* argv[]) +{ + c3_i ch_i, lid_i; + c3_w arg_w; + + static struct option lop_u[] = { + { "loom", required_argument, NULL, c3__loom }, + { "no-demand", no_argument, NULL, 6 }, + { "swap", no_argument, NULL, 7 }, + { "swap-to", required_argument, NULL, 8 }, + { "lmdb-map-size", required_argument, NULL, 9 }, + { NULL, 0, NULL, 0 } + }; + + u3_Host.dir_c = _main_pier_run(argv[0]); + + while ( -1 != (ch_i=getopt_long(argc, argv, "", lop_u, &lid_i)) ) { + switch ( ch_i ) { + case c3__loom: { + if (_main_readw_loom("loom", &u3_Host.ops_u.lom_y)) { + exit(1); + } + } break; + + case 6: { // no-demand + u3_Host.ops_u.map = c3n; + u3C.wag_w |= u3o_no_demand; + } break; + + case 7: { // swap + u3_Host.ops_u.eph = c3y; + u3C.wag_w |= u3o_swap; + } break; + + case 8: { // swap-to + u3_Host.ops_u.eph = c3y; + u3C.wag_w |= u3o_swap; + u3C.eph_c = strdup(optarg); + break; + } + + case 9: { // lmdb-map-size + if ( 1 != sscanf(optarg, "%" SCNuMAX, &u3_Host.ops_u.siz_i) ) { + exit(1); + } + break; + } + + case '?': { + fprintf(stderr, "invalid argument\r\n"); + exit(1); + } break; + } + } + + // argv[optind] is always "cram" + // + + if ( !u3_Host.dir_c ) { + if ( optind + 1 < argc ) { + u3_Host.dir_c = argv[optind + 1]; + } + else { + fprintf(stderr, "invalid command, pier required\r\n"); + exit(1); + } + + optind++; + } + + if ( optind + 1 != argc ) { + fprintf(stderr, "invalid command\r\n"); + exit(1); + } + + u3_Host.eve_d = u3m_boot(u3_Host.dir_c, (size_t)1 << u3_Host.ops_u.lom_y); + u3_disk* log_u = _cw_disk_init(u3_Host.dir_c); // XX s/b try_aquire lock + c3_o ret_o; + + fprintf(stderr, "urbit: cram: preparing\r\n"); + + if ( c3n == (ret_o = u3u_cram(u3_Host.dir_c, u3_Host.eve_d)) ) { + fprintf(stderr, "urbit: cram: unable to jam state\r\n"); + } + else { + fprintf(stderr, "urbit: cram: rock saved at event %" PRIu64 "\r\n", u3_Host.eve_d); + } + + // save even on failure, as we just did all the work of deduplication + // + u3m_save(); + u3_disk_exit(log_u); + + if ( c3n == ret_o ) { + exit(1); + } + + u3m_stop(); +} + +/* _cw_queu(): cue rock, save, and exit. +*/ +static void +_cw_queu(c3_i argc, c3_c* argv[]) +{ + c3_i lid_i, ch_i; + c3_w arg_w; + c3_c* roc_c = 0; + + static struct option lop_u[] = { + { "loom", required_argument, NULL, c3__loom }, + { "no-demand", no_argument, NULL, 6 }, + { "swap", no_argument, NULL, 7 }, + { "swap-to", required_argument, NULL, 8 }, + { "lmdb-map-size", required_argument, NULL, 9 }, + { "replay-from", required_argument, NULL, 'r' }, + { NULL, 0, NULL, 0 } + }; + + u3_Host.dir_c = _main_pier_run(argv[0]); + + while ( -1 != (ch_i=getopt_long(argc, argv, "r:", lop_u, &lid_i)) ) { + switch ( ch_i ) { + case c3__loom: { + if (_main_readw_loom("loom", &u3_Host.ops_u.lom_y)) { + exit(1); + } + } break; + + case 6: { // no-demand + u3_Host.ops_u.map = c3n; + u3C.wag_w |= u3o_no_demand; + } break; + + case 7: { // swap + u3_Host.ops_u.eph = c3y; + u3C.wag_w |= u3o_swap; + } break; + + case 8: { // swap-to + u3_Host.ops_u.eph = c3y; + u3C.wag_w |= u3o_swap; + u3C.eph_c = strdup(optarg); + break; + } + + case 9: { // lmdb-map-size + if ( 1 != sscanf(optarg, "%" SCNuMAX, &u3_Host.ops_u.siz_i) ) { + exit(1); + } + break; + } + + case 'r': { + roc_c = strdup(optarg); + } break; + + case '?': { + fprintf(stderr, "invalid argument\r\n"); + exit(1); + } break; + } + } + + if ( !roc_c ) { + fprintf(stderr, "invalid command, -r $EVENT required\r\n"); + exit(1); + } + + // argv[optind] is always "queu" + // + if ( !u3_Host.dir_c ) { + if ( optind + 1 < argc ) { + u3_Host.dir_c = argv[optind + 1]; + } + else { + fprintf(stderr, "invalid command, pier required\r\n"); + exit(1); + } + + optind++; + } + + if ( optind + 1 != argc ) { + fprintf(stderr, "invalid command\r\n"); + exit(1); + } + + c3_d eve_d; + + if ( 1 != sscanf(roc_c, "%" PRIu64 "", &eve_d) ) { + fprintf(stderr, "urbit: queu: invalid number '%s'\r\n", roc_c); + exit(1); + } + else { + u3_Host.eve_d = u3m_boot(u3_Host.dir_c, (size_t)1 << u3_Host.ops_u.lom_y); + u3_disk* log_u = _cw_disk_init(u3_Host.dir_c); // XX s/b try_aquire lock + + fprintf(stderr, "urbit: queu: preparing\r\n"); + + // XX can spuriously fail do to corrupt memory-image checkpoint, + // need a u3m_half_boot equivalent + // workaround is to delete/move the checkpoint in case of corruption + // + if ( c3n == u3u_uncram(u3_Host.dir_c, eve_d) ) { + fprintf(stderr, "urbit: queu: failed\r\n"); + exit(1); + } + + u3m_save(); + u3_disk_exit(log_u); + + fprintf(stderr, "urbit: queu: rock loaded at event %" PRIu64 "\r\n", eve_d); + u3m_stop(); + } +} + +/* _cw_meld(): canonicalize persistent nouns and compact state. +*/ +static void +_cw_meld(c3_i argc, c3_c* argv[]) +{ + c3_i ch_i, lid_i; + c3_w arg_w; + + static struct option lop_u[] = { + { "loom", required_argument, NULL, c3__loom }, + { "no-demand", no_argument, NULL, 6 }, + { "swap", no_argument, NULL, 7 }, + { "swap-to", required_argument, NULL, 8 }, + { "gc-early", no_argument, NULL, 9 }, + { "lmdb-map-size", required_argument, NULL, 10 }, + { NULL, 0, NULL, 0 } + }; + + u3_Host.dir_c = _main_pier_run(argv[0]); + + while ( -1 != (ch_i=getopt_long(argc, argv, "", lop_u, &lid_i)) ) { + switch ( ch_i ) { + case c3__loom: { + if (_main_readw_loom("loom", &u3_Host.ops_u.lom_y)) { + exit(1); + } + } break; + + case 6: { // no-demand + u3_Host.ops_u.map = c3n; + u3C.wag_w |= u3o_no_demand; + } break; + + case 7: { // swap + u3_Host.ops_u.eph = c3y; + u3C.wag_w |= u3o_swap; + } break; + + case 8: { // swap-to + u3_Host.ops_u.eph = c3y; + u3C.wag_w |= u3o_swap; + u3C.eph_c = strdup(optarg); + break; + } + + case 9: { // gc-early + u3C.wag_w |= u3o_check_corrupt; + break; + } + + case 10: { // lmdb-map-size + if ( 1 != sscanf(optarg, "%" SCNuMAX, &u3_Host.ops_u.siz_i) ) { + exit(1); + } + break; + } + + case '?': { + fprintf(stderr, "invalid argument\r\n"); + exit(1); + } break; + } + } + + // argv[optind] is always "meld" + // + + if ( !u3_Host.dir_c ) { + if ( optind + 1 < argc ) { + u3_Host.dir_c = argv[optind + 1]; + } + else { + fprintf(stderr, "invalid command, pier required\r\n"); + exit(1); + } + + optind++; + } + + if ( optind + 1 != argc ) { + fprintf(stderr, "invalid command\r\n"); + exit(1); + } + + u3C.wag_w |= u3o_hashless; + + u3_Host.eve_d = u3m_boot(u3_Host.dir_c, (size_t)1 << u3_Host.ops_u.lom_y); + u3_disk* log_u = _cw_disk_init(u3_Host.dir_c); // XX s/b try_aquire lock + + u3a_print_memory(stderr, "urbit: meld: gained", u3_meld_all(stderr)); + + u3m_save(); + u3_disk_exit(log_u); + u3m_stop(); +} + +/* _cw_melt(): canonicalize persistent nouns. +*/ +static void +_cw_melt(c3_i argc, c3_c* argv[]) +{ + c3_i ch_i, lid_i; + c3_w arg_w; + + static struct option lop_u[] = { + { "loom", required_argument, NULL, c3__loom }, + { "no-demand", no_argument, NULL, 6 }, + { "swap", no_argument, NULL, 7 }, + { "swap-to", required_argument, NULL, 8 }, + { "gc-early", no_argument, NULL, 9 }, + { NULL, 0, NULL, 0 } + }; + + u3_Host.dir_c = _main_pier_run(argv[0]); + + while ( -1 != (ch_i=getopt_long(argc, argv, "", lop_u, &lid_i)) ) { + switch ( ch_i ) { + case c3__loom: { + if (_main_readw_loom("loom", &u3_Host.ops_u.lom_y)) { + exit(1); + } + } break; + + case 6: { // no-demand + u3_Host.ops_u.map = c3n; + u3C.wag_w |= u3o_no_demand; + } break; + + case 7: { // swap + u3_Host.ops_u.eph = c3y; + u3C.wag_w |= u3o_swap; + } break; + + case 8: { // swap-to + u3_Host.ops_u.eph = c3y; + u3C.wag_w |= u3o_swap; + u3C.eph_c = strdup(optarg); + break; + } + + case 9: { // gc-early + u3C.wag_w |= u3o_check_corrupt; + break; + } + + case '?': { + fprintf(stderr, "invalid argument\r\n"); + exit(1); + } break; + } + } + + // argv[optind] is always "melt" + // + + if ( !u3_Host.dir_c ) { + if ( optind + 1 < argc ) { + u3_Host.dir_c = argv[optind + 1]; + } + else { + fprintf(stderr, "invalid command, pier required\r\n"); + exit(1); + } + + optind++; + } + + if ( optind + 1 != argc ) { + fprintf(stderr, "invalid command\r\n"); + exit(1); + } + + u3C.wag_w |= u3o_hashless; + + u3_Host.eve_d = u3m_boot(u3_Host.dir_c, (size_t)1 << u3_Host.ops_u.lom_y); + u3_disk* log_u = _cw_disk_init(u3_Host.dir_c); // XX s/b try_aquire lock + + u3a_print_memory(stderr, "urbit: melt: gained", u3_melt_all(stderr)); + + u3m_save(); + u3_disk_exit(log_u); + u3m_stop(); +} + +/* _cw_next(): request upgrade +*/ +static void +_cw_next(c3_i argc, c3_c* argv[]) +{ + c3_i ch_i, lid_i; + c3_w arg_w; + + static struct option lop_u[] = { + { "arch", required_argument, NULL, 'a' }, + { "loom", required_argument, NULL, c3__loom }, + { "no-demand", no_argument, NULL, 6 }, + { "swap", no_argument, NULL, 7 }, + { "swap-to", required_argument, NULL, 8 }, + { NULL, 0, NULL, 0 } + }; + + u3_Host.dir_c = _main_pier_run(argv[0]); + + while ( -1 != (ch_i=getopt_long(argc, argv, "a:", lop_u, &lid_i)) ) { + switch ( ch_i ) { + case 'a': { + u3_Host.arc_c = strdup(optarg); + } break; + + case c3__loom: { + if (_main_readw_loom("loom", &u3_Host.ops_u.lom_y)) { + exit(1); + } + } break; + + case 6: { // no-demand + u3_Host.ops_u.map = c3n; + u3C.wag_w |= u3o_no_demand; + } break; + + case 7: { // swap + u3_Host.ops_u.eph = c3y; + u3C.wag_w |= u3o_swap; + } break; + + case 8: { // swap-to + u3_Host.ops_u.eph = c3y; + u3C.wag_w |= u3o_swap; + u3C.eph_c = strdup(optarg); + break; + } + + case '?': { + fprintf(stderr, "invalid argument\r\n"); + exit(1); + } break; + } + } + + // argv[optind] is always "next" + // + + if ( !u3_Host.dir_c ) { + if ( optind + 1 < argc ) { + u3_Host.dir_c = argv[optind + 1]; + } + else { + fprintf(stderr, "invalid command, pier required\r\n"); + exit(1); + } + + optind++; + } + + if ( optind + 1 != argc ) { + fprintf(stderr, "invalid command\r\n"); + exit(1); + } + + u3_Host.pep_o = c3y; + u3_Host.nex_o = c3y; + u3_Host.ops_u.tem = c3y; +} + +/* _cw_pack(): compact memory, save, and exit. +*/ +static void +_cw_pack(c3_i argc, c3_c* argv[]) +{ + c3_i ch_i, lid_i; + c3_w arg_w; + + static struct option lop_u[] = { + { "loom", required_argument, NULL, c3__loom }, + { "no-demand", no_argument, NULL, 6 }, + { "swap", no_argument, NULL, 7 }, + { "swap-to", required_argument, NULL, 8 }, + { "gc-early", no_argument, NULL, 9 }, + { "lmdb-map-size", required_argument, NULL, 10 }, + { NULL, 0, NULL, 0 } + }; + + u3_Host.dir_c = _main_pier_run(argv[0]); + + while ( -1 != (ch_i=getopt_long(argc, argv, "", lop_u, &lid_i)) ) { + switch ( ch_i ) { + case c3__loom: { + if (_main_readw_loom("loom", &u3_Host.ops_u.lom_y)) { + exit(1); + } + } break; + + case 6: { // no-demand + u3_Host.ops_u.map = c3n; + u3C.wag_w |= u3o_no_demand; + } break; + + case 7: { // swap + u3_Host.ops_u.eph = c3y; + u3C.wag_w |= u3o_swap; + } break; + + case 8: { // swap-to + u3_Host.ops_u.eph = c3y; + u3C.wag_w |= u3o_swap; + u3C.eph_c = strdup(optarg); + break; + } + + case 9: { // gc-early + u3C.wag_w |= u3o_check_corrupt; + break; + } + + case 10: { // lmdb-map-size + if ( 1 != sscanf(optarg, "%" SCNuMAX, &u3_Host.ops_u.siz_i) ) { + exit(1); + } + break; + } + + case '?': { + fprintf(stderr, "invalid argument\r\n"); + exit(1); + } break; + } + } + + // argv[optind] is always "pack" + // + + if ( !u3_Host.dir_c ) { + if ( optind + 1 < argc ) { + u3_Host.dir_c = argv[optind + 1]; + } + else { + fprintf(stderr, "invalid command, pier required\r\n"); + exit(1); + } + + optind++; + } + + if ( optind + 1 != argc ) { + fprintf(stderr, "invalid command\r\n"); + exit(1); + } + + u3_Host.eve_d = u3m_boot(u3_Host.dir_c, (size_t)1 << u3_Host.ops_u.lom_y); + u3_disk* log_u = _cw_disk_init(u3_Host.dir_c); // XX s/b try_aquire lock + + u3a_print_memory(stderr, "urbit: pack: gained", u3m_pack()); + + u3m_save(); + u3_disk_exit(log_u); + u3m_stop(); +} + +/* _cw_play_slog(): print during replay. +*/ +static void +_cw_play_slog(u3_noun hod) +{ + u3_pier_tank(0, 0, u3k(u3t(hod))); + u3z(hod); +} + +/* _cw_play_snap(): prepare snapshot for full replay. +*/ +static void +_cw_play_snap(u3_disk* log_u) +{ + c3_c chk_c[8193], epo_c[8193]; + snprintf(chk_c, 8193, "%s/.urb/chk", u3_Host.dir_c); + snprintf(epo_c, 8192, "%s/0i%" PRIc3_d, log_u->com_u->pax_c, log_u->epo_d); + + if ( 0 == log_u->epo_d ) { + // if epoch 0 is the latest, delete the snapshot files in chk/ + c3_c nor_c[8193], sop_c[8193]; + snprintf(nor_c, 8193, "%s/.urb/chk/north.bin", u3_Host.dir_c); + snprintf(sop_c, 8193, "%s/.urb/chk/south.bin", u3_Host.dir_c); + if ( c3_unlink(nor_c) && (ENOENT != errno) ) { + fprintf(stderr, "mars: failed to unlink %s: %s\r\n", + nor_c, strerror(errno)); + exit(1); + } + if ( c3_unlink(sop_c) && (ENOENT != errno) ) { + fprintf(stderr, "mars: failed to unlink %s: %s\r\n", + sop_c, strerror(errno)); + exit(1); + } + } + else if ( 0 != u3e_backup(epo_c, chk_c, c3y) ) { + // copy the latest epoch's snapshot files into chk/ + fprintf(stderr, "mars: failed to copy snapshot\r\n"); + exit(1); + } +} + +/* _cw_play_exit(): exit immediately. +*/ +static void +_cw_play_exit(c3_i int_i) +{ + kill(getpid(), SIGINT); +} + +/* _cw_play_impl(): replay events, but better. +*/ +static c3_d +_cw_play_impl(c3_d eve_d, c3_d sap_d, c3_o mel_o, c3_o sof_o, c3_o ful_o) +{ + c3_d pay_d; + + // XX handle SIGTSTP so that the lockfile is not orphaned? + // + u3_disk* log_u = _cw_disk_init(u3_Host.dir_c); + + // Handle SIGTSTP as if it was SIGINT. + // + // Configured here using signal() so as to be immediately available. + // + signal(SIGTSTP, _cw_play_exit); + + // XX source these from a shared struct ops_u + if ( c3y == mel_o ) { + u3C.wag_w |= u3o_auto_meld; + } + + if ( c3y == sof_o ) { + u3C.wag_w |= u3o_soft_mugs; + } + + u3C.wag_w |= u3o_hashless; + + if ( c3y == ful_o ) { + u3l_log("mars: preparing for full replay"); + _cw_play_snap(log_u); + } + + u3_Host.eve_d = u3m_boot(u3_Host.dir_c, (size_t)1 << u3_Host.ops_u.lom_y); + + // XX this should load from the epoc snapshot + // but that clobbers chk/ which is risky + // + if ( u3_Host.eve_d < log_u->epo_d ) { + fprintf(stderr, "mars: pier corrupt: " + "snapshot (%" PRIu64 ") out of epoc (%" PRIu64 ")\r\n", + u3_Host.eve_d, log_u->epo_d); + exit(1); + } + + u3C.slog_f = _cw_play_slog; + + { + u3_mars mar_u = { + .log_u = log_u, + .dir_c = u3_Host.dir_c, + .sen_d = u3A->eve_d, + .dun_d = u3A->eve_d, + }; + + pay_d = u3_mars_play(&mar_u, eve_d, sap_d); + u3_Host.eve_d = mar_u.dun_d; + + // migrate or rollover as needed + // + u3_disk_kindly(log_u, u3_Host.eve_d); + } + + u3_disk_exit(log_u); + // NB: loom migrations without replay are not saved + u3m_stop(); + + return pay_d; +} + +/* _cw_play_fork_heed(): wait for EOF on STDIN or until canceled. +*/ +static void* +_cw_play_fork_heed(void* arg) { + // XX + c3_c buf[1]; + c3_zs red; + + sigset_t set; + + sigemptyset(&set); + sigaddset(&set, SIGINT); + sigaddset(&set, SIGTERM); + sigaddset(&set, SIGTSTP); + if ( 0 != pthread_sigmask(SIG_BLOCK, &set, NULL) ) { + fprintf(stderr, "play: watcher failed to block sigs: %s\r\n", strerror(errno)); + exit(1); + } + + do { + pthread_testcancel(); + red = read(STDIN_FILENO, buf, sizeof(buf)); + if ( 0 == red ) { + fprintf(stderr, "play: god save the king! committing sudoku...\r\n"); + kill(getpid(), SIGINT); + return NULL; + } + } while ( 0 < red ); + + return NULL; +} + +/* _cw_play_fork_exit(): exit callback for uv_spawn. +*/ +void +_cw_play_fork_exit(uv_process_t* req_u, c3_ds sat_d, c3_i tem_i) { + if ( sat_d || tem_i ) { + fprintf(stderr, "play: failed: %" PRId64 " signal: %d\r\n", sat_d, tem_i); + exit(1); + } + uv_close((uv_handle_t*)req_u, NULL); +} + +/* _cw_play_fork(): spawn a subprocess for event replay. +*/ +static c3_i +_cw_play_fork(c3_d eve_d, c3_d sap_d, c3_o mel_o, c3_o sof_o, c3_o ful_o) +{ + c3_c *argv[13] = {0}; + c3_c eve_c[21] = {0}; + c3_c sap_c[21] = {0}; + c3_c lom_c[3] = {0}; + c3_i ret_i; + + ret_i = snprintf(eve_c, sizeof(eve_c), "%" PRIu64, eve_d); + u3_assert( ret_i && ret_i < sizeof(eve_c) ); + ret_i = snprintf(sap_c, sizeof(sap_c), "%" PRIu64, sap_d); + u3_assert( ret_i && ret_i < sizeof(sap_c) ); + ret_i = snprintf(lom_c, sizeof(lom_c), "%u", u3_Host.ops_u.lom_y); + u3_assert( ret_i && ret_i < sizeof(lom_c) ); + + { + c3_z i_z = 0; + c3_i run_i = 0; + + c3_c* run_c = _main_pier_run(u3_Host.wrk_c); + if ( run_c ) { + c3_free(run_c); + run_i = 1; + } + + argv[i_z++] = u3_Host.wrk_c; + argv[i_z++] = "play"; + argv[i_z++] = "--watch-replay"; + argv[i_z++] = "--loom"; + argv[i_z++] = lom_c; + argv[i_z++] = "--replay-to"; + argv[i_z++] = eve_c; + argv[i_z++] = "--snap-at"; + argv[i_z++] = sap_c; + + if _(mel_o) { + argv[i_z++] = "--auto-meld"; + } + if _(sof_o) { + argv[i_z++] = "--soft-mugs"; + } + if _(ful_o) { + argv[i_z++] = "--full"; + } + if ( !run_i ) { + argv[i_z++] = u3_Host.dir_c; + } + + argv[i_z] = NULL; + u3_assert( i_z < sizeof(argv) ); + } + + // use uv_spawn to fork a new serf process and call its play subcommand + // + u3L = uv_default_loop(); + + uv_pipe_t stdin_pipe; + uv_pipe_init(u3L, &stdin_pipe, 0); + + uv_process_t child_req = {0}; + uv_process_options_t options = {0}; + uv_stdio_container_t stdio[3]; + stdio[0].data.stream = (uv_stream_t*) &stdin_pipe; + stdio[1].data.fd = STDOUT_FILENO; + stdio[2].data.fd = STDERR_FILENO; + stdio[0].flags = UV_CREATE_PIPE | UV_READABLE_PIPE; // stdin + stdio[1].flags = UV_INHERIT_FD; // stdout + stdio[2].flags = UV_INHERIT_FD; // stderr + options.stdio_count = 3; + options.stdio = stdio; + options.file = argv[0]; + options.args = argv; + options.exit_cb = (uv_exit_cb)_cw_play_fork_exit; + + c3_i sat_i; + if ( 0 != (sat_i = uv_spawn(u3L, &child_req, &options)) ) { + fprintf(stderr, "play: uv_spawn: %s\r\n", uv_strerror(sat_i)); + return 1; + } + + signal(SIGINT, SIG_IGN); + + return uv_run(u3L, UV_RUN_DEFAULT); +} + +/* _cw_play(): replay events, but better. +*/ +static void +_cw_play(c3_i argc, c3_c* argv[]) +{ + c3_i lid_i, ch_i; + c3_w arg_w; + c3_o ful_o = c3n; + c3_o mel_o = c3n; + c3_o sof_o = c3n; + c3_o wat_o = c3n; + c3_d eve_d = 0; + c3_d sap_d = 0; + + static struct option lop_u[] = { + { "loom", required_argument, NULL, c3__loom }, + { "no-demand", no_argument, NULL, 6 }, + { "auto-meld", no_argument, NULL, 7 }, + { "soft-mugs", no_argument, NULL, 8 }, + { "watch-replay", no_argument, NULL, 9 }, + { "full", no_argument, NULL, 'f' }, + { "replay-to", required_argument, NULL, 'n' }, + { "snap-at", required_argument, NULL, 's' }, + { NULL, 0, NULL, 0 } + }; + + u3_Host.dir_c = _main_pier_run(argv[0]); + + while ( -1 != (ch_i=getopt_long(argc, argv, "fn:", lop_u, &lid_i)) ) { + switch ( ch_i ) { + case c3__loom: { + if (_main_readw_loom("loom", &u3_Host.ops_u.lom_y)) { + exit(1); + } + } break; + + case 6: { // no-demand + u3_Host.ops_u.map = c3n; + u3C.wag_w |= u3o_no_demand; + } break; + + case 7: { // auto-meld + mel_o = c3y; + } break; + + case 8: { // soft-mugs + sof_o = c3y; + } break; + + case 9: { // watch-replay + wat_o = c3y; + } break; + + case 'f': { + ful_o = c3y; + } break; + + case 'n': { + if ( 1 != sscanf(optarg, "%" PRIu64 "", &eve_d) ) { + fprintf(stderr, "mars: replay-to invalid: '%s'\r\n", optarg); + exit(1); + } + } break; + + case 's': { + if ( 1 != sscanf(optarg, "%" PRIu64 "", &sap_d) ) { + fprintf(stderr, "mars: snap-at invalid: '%s'\r\n", optarg); + exit(1); + } + } break; + + case '?': { + fprintf(stderr, "invalid argument\r\n"); + exit(1); + } break; + } + } + + // argv[optind] is always "play" + // + + if ( !u3_Host.dir_c ) { + if ( optind + 1 < argc ) { + u3_Host.dir_c = argv[optind + 1]; + } + else { + fprintf(stderr, "invalid command, pier required\r\n"); + exit(1); + } + + optind++; + } + + if ( optind + 1 != argc ) { + fprintf(stderr, "invalid command\r\n"); + exit(1); + } + + if ( _(wat_o) ) { + pthread_t ted; + pthread_create(&ted, NULL, _cw_play_fork_heed, NULL); + + _cw_play_impl(eve_d, sap_d, mel_o, sof_o, ful_o); + + pthread_cancel(ted); + } + else { + _cw_play_impl(eve_d, sap_d, mel_o, sof_o, ful_o); + } +} + +/* _cw_prep(): prepare for upgrade +*/ +static void +_cw_prep(c3_i argc, c3_c* argv[]) +{ + // XX roll with old binary + // check that new epoch is empty, migrate snapshot in-place + c3_i ch_i, lid_i; + c3_w arg_w; + + static struct option lop_u[] = { + { "loom", required_argument, NULL, c3__loom }, + { "no-demand", no_argument, NULL, 6 }, + { "swap", no_argument, NULL, 7 }, + { "swap-to", required_argument, NULL, 8 }, + { NULL, 0, NULL, 0 } + }; + + u3_Host.dir_c = _main_pier_run(argv[0]); + + while ( -1 != (ch_i=getopt_long(argc, argv, "", lop_u, &lid_i)) ) { + switch ( ch_i ) { + case c3__loom: { + if (_main_readw_loom("loom", &u3_Host.ops_u.lom_y)) { + exit(1); + } + } break; + + case 6: { // no-demand + u3_Host.ops_u.map = c3n; + u3C.wag_w |= u3o_no_demand; + } break; + + case 7: { // swap + u3_Host.ops_u.eph = c3y; + u3C.wag_w |= u3o_swap; + } break; + + case 8: { // swap-to + u3_Host.ops_u.eph = c3y; + u3C.wag_w |= u3o_swap; + u3C.eph_c = strdup(optarg); + break; + } + + case '?': { + fprintf(stderr, "invalid argument\r\n"); + exit(1); + } break; + } + } + + // argv[optind] is always "prep" + // + + if ( !u3_Host.dir_c ) { + if ( optind + 1 < argc ) { + u3_Host.dir_c = argv[optind + 1]; + } + else { + fprintf(stderr, "invalid command, pier required\r\n"); + exit(1); + } + + optind++; + } + + if ( optind + 1 != argc ) { + fprintf(stderr, "invalid command\r\n"); + exit(1); + } + + u3_Host.pep_o = c3y; + u3_Host.ops_u.tem = c3y; +} + +/* _cw_chop(): truncate event log +*/ +static void +_cw_chop(c3_i argc, c3_c* argv[]) +{ + c3_i ch_i, lid_i; + c3_w arg_w; + + static struct option lop_u[] = { + { "loom", required_argument, NULL, c3__loom }, + { "no-demand", no_argument, NULL, 6 }, + { "swap", no_argument, NULL, 7 }, + { "swap-to", required_argument, NULL, 8 }, + { "lmdb-map-size", required_argument, NULL, 9 }, + { NULL, 0, NULL, 0 } + }; + + u3_Host.dir_c = _main_pier_run(argv[0]); + + while ( -1 != (ch_i=getopt_long(argc, argv, "", lop_u, &lid_i)) ) { + switch ( ch_i ) { + case c3__loom: { + if (_main_readw_loom("loom", &u3_Host.ops_u.lom_y)) { + exit(1); + } + } break; + + case 6: { // no-demand + u3_Host.ops_u.map = c3n; + u3C.wag_w |= u3o_no_demand; + } break; + + case 7: { // swap + u3_Host.ops_u.eph = c3y; + u3C.wag_w |= u3o_swap; + } break; + + case 8: { // swap-to + u3_Host.ops_u.eph = c3y; + u3C.wag_w |= u3o_swap; + u3C.eph_c = strdup(optarg); + break; + } + + case 9: { // lmdb-map-size + if ( 1 != sscanf(optarg, "%" SCNuMAX, &u3_Host.ops_u.siz_i) ) { + exit(1); + } + break; + } + + case '?': { + fprintf(stderr, "invalid argument\r\n"); + exit(1); + } break; + } + } + + // argv[optind] is always "chop" + // + + if ( !u3_Host.dir_c ) { + if ( optind + 1 < argc ) { + u3_Host.dir_c = argv[optind + 1]; + } + else { + fprintf(stderr, "invalid command, pier required\r\n"); + exit(1); + } + + optind++; + } + + if ( optind + 1 != argc ) { + fprintf(stderr, "invalid command\r\n"); + exit(1); + } + + // gracefully shutdown the pier if it's running + u3_Host.eve_d = u3m_boot(u3_Host.dir_c, (size_t)1 << u3_Host.ops_u.lom_y); + u3_disk* log_u = _cw_disk_init(u3_Host.dir_c); + + u3_disk_kindly(log_u, u3_Host.eve_d); + u3_disk_chop(log_u, u3_Host.eve_d); + + u3_disk_exit(log_u); + u3m_stop(); +} + +/* _cw_roll(): rollover to new epoch + */ +static void +_cw_roll(c3_i argc, c3_c* argv[]) +{ + c3_i ch_i, lid_i; + c3_w arg_w; + + static struct option lop_u[] = { + { "loom", required_argument, NULL, c3__loom }, + { "lmdb-map-size", required_argument, NULL, 6 }, + { NULL, 0, NULL, 0 } + }; + + u3_Host.dir_c = _main_pier_run(argv[0]); + + while ( -1 != (ch_i=getopt_long(argc, argv, "", lop_u, &lid_i)) ) { + switch ( ch_i ) { + case 6: { // lmdb-map-size + if ( 1 != sscanf(optarg, "%" SCNuMAX, &u3_Host.ops_u.siz_i) ) { + exit(1); + } + break; + } + + case c3__loom: { + if (_main_readw_loom("loom", &u3_Host.ops_u.lom_y)) { + exit(1); + } + } break; + + case '?': { + fprintf(stderr, "invalid argument\r\n"); + exit(1); + } break; + } + } + + // argv[optind] is always "roll" + // + + if ( !u3_Host.dir_c ) { + if ( optind + 1 < argc ) { + u3_Host.dir_c = argv[optind + 1]; + } + else { + fprintf(stderr, "invalid command, pier required\r\n"); + exit(1); + } + + optind++; + } + + if ( optind + 1 != argc ) { + fprintf(stderr, "invalid command\r\n"); + exit(1); + } + + // gracefully shutdown the pier if it's running + u3_Host.eve_d = u3m_boot(u3_Host.dir_c, (size_t)1 << u3_Host.ops_u.lom_y); + u3_disk* log_u = _cw_disk_init(u3_Host.dir_c); + + u3_disk_kindly(log_u, u3_Host.eve_d); + u3_disk_roll(log_u, u3_Host.eve_d); + + u3_disk_exit(log_u); + u3m_stop(); +} + +/* _cw_vere(): download vere +*/ +static void +_cw_vere(c3_i argc, c3_c* argv[]) +{ + c3_c* pac_c = "live"; + c3_c* arc_c = 0; + c3_c* ver_c = 0; + c3_c* dir_c; + + c3_i ch_i, lid_i; + c3_w arg_w; + + static struct option lop_u[] = { + { "arch", required_argument, NULL, 'a' }, + { "pace", required_argument, NULL, 'p' }, + { "version", required_argument, NULL, 'v' }, + { NULL, 0, NULL, 0 } + }; + + while ( -1 != (ch_i=getopt_long(argc, argv, "a:p:v:", lop_u, &lid_i)) ) { + switch ( ch_i ) { + case 'a': { + arc_c = strdup(optarg); + } break; + + case 'p': { + pac_c = strdup(optarg); + } break; + + case 'v': { + ver_c = strdup(optarg); + } break; + + case '?': { + exit(1); + } break; + } + } + + // argv[optind] is always "vere"/"fetch-vere" + // + + if ( optind + 1 < argc ) { + dir_c = argv[optind + 1]; + optind++; + } + else { + fprintf(stderr, "invalid command, output directory required\r\n"); + exit(1); + } + + if ( optind + 1 != argc ) { + fprintf(stderr, "invalid command\r\n"); + exit(1); + } + + if ( !arc_c ) { +#ifdef U3_OS_ARCH + arc_c = U3_OS_ARCH; +#else + fprintf(stderr, "unknown architecture, --arch required\r\n"); + exit(1); +#endif + } + + // Initialize OpenSSL for client and server + // + { + SSL_library_init(); + SSL_load_error_strings(); + } + + // initialize curl + // + if ( 0 != curl_global_init(CURL_GLOBAL_DEFAULT) ) { + u3l_log("boot: curl initialization failed"); + exit(1); + } + + _setup_cert_store(); + u3K.ssl_curl_f = _setup_ssl_curl; + u3K.ssl_x509_f = _setup_ssl_x509; + + if ( !ver_c ) { + switch ( u3_king_next(pac_c, &ver_c) ) { + case -2: { + fprintf(stderr, "vere: unable to check for next version\n"); + exit(1); + } break; + + case -1: { + fprintf(stderr, "you're already running it!\n"); + exit(0); + } break; + + case 0: { + fprintf(stderr, "vere: next (%%%s): %s\n", pac_c, ver_c); + } break; + + default: u3_assert(0); + } + } + + + if ( u3_king_vere(pac_c, ver_c, arc_c, dir_c, 0) ) { + u3l_log("vere: download failed"); + exit(1); + } + + u3l_log("vere: download succeeded"); +} + +/* _cw_vile(): generate/print keyfile +*/ +static void +_cw_vile(c3_i argc, c3_c* argv[]) +{ + c3_i ch_i, lid_i; + c3_w arg_w; + + static struct option lop_u[] = { + { "loom", required_argument, NULL, c3__loom }, + { "no-demand", no_argument, NULL, 6 }, + { "swap", no_argument, NULL, 7 }, + { "swap-to", required_argument, NULL, 8 }, + { NULL, 0, NULL, 0 } + }; + + u3_Host.dir_c = _main_pier_run(argv[0]); + + while ( -1 != (ch_i=getopt_long(argc, argv, "", lop_u, &lid_i)) ) { + switch ( ch_i ) { + case c3__loom: { + if (_main_readw_loom("loom", &u3_Host.ops_u.lom_y)) { + exit(1); + } + } break; + + case 6: { // no-demand + u3_Host.ops_u.map = c3n; + u3C.wag_w |= u3o_no_demand; + } break; + + case 7: { // swap + u3_Host.ops_u.eph = c3y; + u3C.wag_w |= u3o_swap; + } break; + + case 8: { // swap-to + u3_Host.ops_u.eph = c3y; + u3C.wag_w |= u3o_swap; + u3C.eph_c = strdup(optarg); + break; + } + + case '?': { + fprintf(stderr, "invalid argument\r\n"); + exit(1); + } break; + } + } + + // argv[optind] is always "vile" + // + + if ( !u3_Host.dir_c ) { + if ( optind + 1 < argc ) { + u3_Host.dir_c = argv[optind + 1]; + } + else { + fprintf(stderr, "invalid command, pier required\r\n"); + exit(1); + } + + optind++; + } + + if ( optind + 1 != argc ) { + fprintf(stderr, "invalid command\r\n"); + exit(1); + } + + // XX check if snapshot is stale? + // + c3_d eve_d = u3m_boot(u3_Host.dir_c, (size_t)1 << u3_Host.ops_u.lom_y); + u3_noun sam = u3nc(u3nc(u3_nul, u3_nul), + u3nc(c3n, u3nq(c3__once, 'j', c3__vile, u3_nul))); + u3_noun res = u3v_soft_peek(0, sam); + + + switch ( u3h(res) ) { + default: u3_assert(0); + + case c3n: { + fprintf(stderr, "vile: unable to retrieve key file\r\n"); + u3_pier_punt_goof("foo", u3k(u3t(res))); + } + case c3y: { + u3_noun dat, vil, out; + c3_c* out_c; + + if ( (u3_nul != u3h(u3t(res))) + || (c3n == u3r_pq(u3t(u3t(res)), c3__omen, 0, &dat)) + || (c3n == u3r_p(dat, c3__atom, &vil)) + || (c3n == u3a_is_atom(vil)) ) + { + fprintf(stderr, "vile: unable to extract key file\r\n"); + u3m_p("vil", res); + } + else { + out = u3dc("scot", c3__uw, u3k(vil)); + out_c = u3r_string(out); + puts(out_c); + c3_free(out_c); + u3z(out); + } + } + } + + u3z(res); +} + +/* _cw_utils(): "worker" utilities and "serf" entrypoint +*/ +static c3_i +_cw_utils(c3_i argc, c3_c* argv[]) +{ + // utility commands and positional arguments, by analogy + // + // $@ ~ :: usage + // $% [%cram dir=@t] :: jam state + // [%dock dir=@t] :: copy binary + // [?(%grab %mass) dir=@t] :: gc + // [%info dir=@t] :: print + // [%meld dir=@t] :: deduplicate + // [?(%next %upgrade) dir=@t] :: upgrade + // [%pack dir=@t] :: defragment + // [%play dir=@t] :: recompute + // [%prep dir=@t] :: prep upgrade + // [%queu dir=@t eve=@ud] :: cue state + // [?(%vere %fetch-vere) dir=@t] :: download vere + // [%vile dir=@t] :: extract keys + // :: :: ipc: + // $: %serf :: compute + // dir=@t key=@t wag=@t hap=@ud :: + // lom=@ud eve=@ud :: + // == == :: + // + // NB: don't print to anything other than stderr; + // other streams may be used for ipc. + // + c3_m mot_m = 0; + + if ( 2 <= argc ) { + if ( 4 == strlen(argv[1]) ) { + c3_c* s = argv[1]; + mot_m = c3_s4(s[0], s[1], s[2], s[3]); + } + else if ( 0 == strcmp(argv[1], "upgrade") ) { + mot_m = c3__next; + } + else if ( 0 == strcmp(argv[1], "fetch-vere") ) { + mot_m = c3__vere; + } + } + + switch ( mot_m ) { + case c3__cram: _cw_cram(argc, argv); return 1; + case c3__dock: _cw_dock(argc, argv); return 1; + case c3__eval: _cw_eval(argc, argv); return 1; + + case c3__mass: + case c3__grab: _cw_grab(argc, argv); return 1; + + case c3__info: _cw_info(argc, argv); return 1; + case c3__meld: _cw_meld(argc, argv); return 1; + case c3__melt: _cw_melt(argc, argv); return 1; + case c3__next: _cw_next(argc, argv); return 2; // continue on + case c3__pack: _cw_pack(argc, argv); return 1; + case c3__play: _cw_play(argc, argv); return 1; + case c3__prep: _cw_prep(argc, argv); return 2; // continue on + case c3__queu: _cw_queu(argc, argv); return 1; + case c3__chop: _cw_chop(argc, argv); return 1; + case c3__roll: _cw_roll(argc, argv); return 1; + case c3__vere: _cw_vere(argc, argv); return 1; + case c3__vile: _cw_vile(argc, argv); return 1; + + case c3__serf: _cw_serf_commence(argc, argv); return 1; + } + + return 0; +} + +c3_i +main(c3_i argc, + c3_c** argv) +{ + if ( argc <= 0 ) { + fprintf(stderr, "nice try, fbi\r\n"); + exit(1); + } + + _main_init(); + +#if defined(U3_OS_osx) + darwin_register_mach_exception_handler(); +#endif + + c3_c* bin_c = strdup(argv[0]); + + // parse for subcommands + // + switch ( _cw_utils(argc, argv) ) { + default: u3_assert(0); + + // no matching subcommand, parse arguments + // + case 0: { + if ( c3n == _main_getopt(argc, argv) ) { + u3_ve_usage(argc, argv); + return 1; + } + } break; + + // ran subcommand + case 1: { + return 0; + } + + // found subcommand, continue + // + case 2: break; + } + + _main_self_path(); + + if ( !u3_Host.wrk_c ) { + u3_Host.wrk_c = bin_c; + } + else { + c3_free(bin_c); + } + + if ( c3y == u3_Host.ops_u.dem ) { + // In daemon mode, run the urbit as a background process, but don't + // exit from the parent process until the ship is finished booting. + // + u3_daemon_init(); + } + + if ( c3y == u3_Host.ops_u.rep ) { + report(); + return 0; + } + + if ( c3y == u3_Host.ops_u.tex ) { + u3_Host.bot_f = _stop_on_boot_completed_cb; + } + +#if 0 + if ( 0 == getuid() ) { + chroot(u3_Host.dir_c); + u3_Host.dir_c = "/"; + } +#endif + + // Block profiling signal, which should be delivered to exactly one thread. + // + // XX review, may be unnecessary due to similar in u3m_init() + // +#if defined(U3_OS_PROF) + if ( _(u3_Host.ops_u.pro) ) { + sigset_t set; + + sigemptyset(&set); + sigaddset(&set, SIGPROF); + if ( 0 != pthread_sigmask(SIG_BLOCK, &set, NULL) ) { + u3l_log("boot: thread mask SIGPROF: %s", strerror(errno)); + exit(1); + } + } +#endif + + // Handle SIGTSTP as if it was SIGTERM. + // + // Configured here using signal() so as to be immediately available. + // + signal(SIGTSTP, _stop_exit_fore); + + printf("~\n"); + // printf("welcome.\n"); + printf("urbit %s\n", URBIT_VERSION); + printf("boot: home is %s\n", u3_Host.dir_c); + // printf("vere: hostname is %s\n", u3_Host.ops_u.nam_c); + + if ( c3y == u3_Host.ops_u.dem ) { + printf("boot: running as daemon\n"); + } + + // Instantiate process globals. + { + /* Boot the image and checkpoint. Set flags. + */ + { + /* Set pier directory. + */ + u3C.dir_c = u3_Host.dir_c; + + /* Logging that doesn't interfere with console output. + */ + u3C.stderr_log_f = u3_term_io_log; + + /* Set GC flag. + */ + if ( _(u3_Host.ops_u.gab) ) { + u3C.wag_w |= u3o_debug_ram; + } + + /* Set no-demand flag. + */ + if ( !_(u3_Host.ops_u.map) ) { + u3C.wag_w |= u3o_no_demand; + } + + /* Set profile flag. + */ + if ( _(u3_Host.ops_u.pro) ) { + u3C.wag_w |= u3o_debug_cpu; + } + + /* Set verbose flag. + */ + if ( _(u3_Host.ops_u.veb) ) { + u3C.wag_w |= u3o_verbose; + } + + /* Set quiet flag. + */ + if ( _(u3_Host.ops_u.qui) ) { + u3C.wag_w |= u3o_quiet; + } + + /* Set dry-run flag. + ** + ** XX also exit immediately? + */ + if ( _(u3_Host.ops_u.dry) ) { + u3C.wag_w |= u3o_dryrun; + } + + /* Set hashboard flag + */ + if ( _(u3_Host.ops_u.has) ) { + u3C.wag_w |= u3o_hashless; + } + + /* Set tracing flag + */ + if ( _(u3_Host.ops_u.tra) ) { + u3C.wag_w |= u3o_trace; + } + + /* Set swap flag + */ + if ( _(u3_Host.ops_u.eph) ) { + u3C.wag_w |= u3o_swap; + } + + /* Set toss flog + */ + if ( _(u3_Host.ops_u.tos) ) { + u3C.wag_w |= u3o_toss; + } + } + + // we need the current snapshot's latest event number to + // validate whether we can execute disk migration + if ( u3_Host.ops_u.nuu == c3n ) { + c3_i sat_i = _cw_play_fork(0, 0, c3n, c3n, c3n); + if ( sat_i ) { + fprintf(stderr, "play: replay failed\r\n"); + exit(sat_i); + } + signal(SIGTSTP, _stop_exit); + // XX unmap loom, else parts of the snapshot could be left in memory + } + + // starting u3m configures OpenSSL memory functions, so we must do it + // before any OpenSSL allocations + // + u3m_boot_lite((size_t)1 << u3_Host.ops_u.lut_y); + + // Initialize OpenSSL for client and server + // + { + SSL_library_init(); + SSL_load_error_strings(); + } + + // initialize curl + // + if ( 0 != curl_global_init(CURL_GLOBAL_DEFAULT) ) { + u3l_log("boot: curl initialization failed"); + exit(1); + } + + _setup_cert_store(); + u3K.ssl_curl_f = _setup_ssl_curl; + u3K.ssl_x509_f = _setup_ssl_x509; + + u3_king_commence(); + + // uninitialize curl + // + curl_global_cleanup(); + + // uninitialize OpenSSL + // + // see https://wiki.openssl.org/index.php/Library_Initialization + // + { + ENGINE_cleanup(); + CONF_modules_unload(1); + EVP_cleanup(); + CRYPTO_cleanup_all_ex_data(); + SSL_COMP_free_compression_methods(); + ERR_free_strings(); + } + } + + return 0; +} diff --git a/vere/pkg/vere/mars.c b/vere/pkg/vere/mars.c new file mode 100644 index 0000000..17588c4 --- /dev/null +++ b/vere/pkg/vere/mars.c @@ -0,0 +1,388 @@ +/* worker/mars.c +** +** the main loop of a mars process. +*/ +#include "c3/c3.h" +#include "noun.h" +#include "types.h" +#include "vere.h" +#include "ivory.h" +#include "ur/ur.h" +#include "db/lmdb.h" +#include +#include + +/* _mars_step_trace(): initialize or rotate trace file. +*/ +static void +_mars_step_trace(const c3_c* dir_c) +{ + if ( u3C.wag_w & u3o_trace ) { + c3_w trace_cnt_w = u3t_trace_cnt(); + if ( trace_cnt_w == 0 && u3t_file_cnt() == 0 ) { + u3t_trace_open(dir_c); + } + else if ( trace_cnt_w >= 100000 ) { + u3t_trace_close(); + u3t_trace_open(dir_c); + } + } +} + +/* _mars_poke_play(): replay an event. +*/ +static u3_weak +_mars_poke_play(u3_mars* mar_u, const u3_fact* tac_u) +{ + u3_noun gon = u3m_soft(0, u3v_poke_raw, tac_u->job); + u3_noun tag, dat; + u3x_cell(gon, &tag, &dat); + + // event failed, produce trace + // + if ( u3_blip != tag ) { + return gon; + } + + // event succeeded, check mug + // + { + u3_noun cor = u3t(dat); + c3_l mug_l; + + if ( tac_u->mug_l && (tac_u->mug_l != (mug_l = u3r_mug(cor))) ) { + fprintf(stderr, "play (%" PRIu64 "): mug mismatch " + "expected %08x, actual %08x\r\n", + tac_u->eve_d, tac_u->mug_l, mug_l); + + if ( !(u3C.wag_w & u3o_soft_mugs) ) { + u3z(gon); + return u3nc(c3__awry, u3_nul); + } + } + + u3z(u3A->roc); + u3A->roc = u3k(cor); + u3A->eve_d++; + } + + u3z(gon); + return u3_none; +} + +/* _mars_show_time(): print date, truncated to seconds. +*/ +static u3_noun +_mars_show_time(u3_noun wen) +{ + return u3dc("scot", c3__da, u3kc_lsh(6, 1, u3kc_rsh(6, 1, wen))); +} + +typedef enum { + _play_yes_e, // success + _play_mem_e, // %meme + _play_int_e, // %intr + _play_log_e, // event log fail + _play_mug_e, // mug mismatch + _play_bad_e // total failure +} _mars_play_e; + +/* _mars_play_batch(): replay a batch of events, return status and batch date. +*/ +static _mars_play_e +_mars_play_batch(u3_mars* mar_u, + c3_o mug_o, + c3_w bat_w, + c3_c** wen_c) +{ + u3_disk* log_u = mar_u->log_u; + u3_disk_walk* wok_u = u3_disk_walk_init(log_u, mar_u->dun_d + 1, bat_w); + u3_fact tac_u; + u3_noun dud; + u3_weak wen = u3_none; + + if ( !wok_u ) { + fprintf(stderr, "play: failed to open event log iterator\r\n"); + return _play_log_e; + } + + while ( c3y == u3_disk_walk_live(wok_u) ) { + if ( c3n == u3_disk_walk_step(wok_u, &tac_u) ) { + u3_disk_walk_done(wok_u); + return _play_log_e; + } + + u3_assert( ++mar_u->sen_d == tac_u.eve_d ); + + if ( u3_none == wen ) { + wen = _mars_show_time(u3k(u3h(tac_u.job))); + } + + if ( u3_none != (dud = _mars_poke_play(mar_u, &tac_u)) ) { + c3_m mot_m; + + mar_u->sen_d = mar_u->dun_d; + u3_disk_walk_done(wok_u); + + u3_assert( c3y == u3r_safe_word(u3h(dud), &mot_m) ); + + switch ( mot_m ) { + case c3__meme: { + fprintf(stderr, "play (%" PRIu64 "): %%meme\r\n", tac_u.eve_d); + u3z(dud); u3z(wen); + return _play_mem_e; + } + + case c3__intr: { + fprintf(stderr, "play (%" PRIu64 "): %%intr\r\n", tac_u.eve_d); + u3z(dud); u3z(wen); + return _play_int_e; + } + + case c3__awry: { + fprintf(stderr, "play (%" PRIu64 "): %%awry\r\n", tac_u.eve_d); + u3z(dud); u3z(wen); + return _play_mug_e; + } + + default: { + fprintf(stderr, "play (%" PRIu64 "): failed\r\n", tac_u.eve_d); + u3_pier_punt_goof("play", dud); + u3z(wen); + // XX say something uplifting + // + return _play_bad_e; + } + } + } + + mar_u->dun_d = mar_u->sen_d; + } + + u3_disk_walk_done(wok_u); + + *wen_c = u3r_string(wen); + u3z(wen); + return _play_yes_e; +} + +static c3_o +_mars_do_boot(u3_disk* log_u, c3_d eve_d) +{ + u3_weak eve; + c3_l mug_l; + + // hack to recover structural sharing + // + u3m_hate(1 << 18); + + if ( u3_none == (eve = u3_disk_read_list(log_u, 1, eve_d, &mug_l)) ) { + fprintf(stderr, "boot: read failed\r\n"); + u3m_love(u3_nul); + return c3n; + } + + // hack to recover structural sharing + // + eve = u3m_love(u3ke_cue(u3ke_jam(eve))); + + // install an ivory pill to support stack traces + // + // XX support -J + // + /* { */ + /* c3_d len_d = u3_Ivory_pill_len; */ + /* c3_y* byt_y = u3_Ivory_pill; */ + /* u3_cue_xeno* sil_u = u3s_cue_xeno_init_with(ur_fib27, ur_fib28); */ + /* u3_weak pil; */ + + /* if ( u3_none == (pil = u3s_cue_xeno_with(sil_u, len_d, byt_y)) ) { */ + /* u3l_log("lite: unable to cue ivory pill"); */ + /* exit(1); */ + /* } */ + + /* u3s_cue_xeno_done(sil_u); */ + + /* if ( c3n == u3v_boot_lite(pil)) { */ + /* u3l_log("lite: boot failed"); */ + /* exit(1); */ + /* } */ + /* } */ + + u3l_log("--------------- bootstrap starting ----------------"); + + u3l_log("boot: 1-%u", u3qb_lent(eve)); + + // XX check mug if available + // + if ( c3n == u3v_boot(eve) ) { + return c3n; + } + + u3l_log("--------------- bootstrap complete ----------------"); + return c3y; +} + +/* u3_mars_play(): replay up to [eve_d], snapshot every [sap_d]. +*/ +c3_d +u3_mars_play(u3_mars* mar_u, c3_d eve_d, c3_d sap_d) +{ + u3_disk* log_u = mar_u->log_u; + c3_d pay_d = 0; + + if ( !eve_d ) { + eve_d = log_u->dun_d; + } + else if ( eve_d <= mar_u->dun_d ) { + u3l_log("mars: already computed %" PRIu64 "", eve_d); + u3l_log(" state=%" PRIu64 ", log=%" PRIu64 "", + mar_u->dun_d, log_u->dun_d); + return pay_d; + } + else { + eve_d = c3_min(eve_d, log_u->dun_d); + } + + if ( mar_u->dun_d == log_u->dun_d ) { + return pay_d; + } + + pay_d = eve_d - mar_u->dun_d; + + if ( !mar_u->dun_d ) { + c3_w lif_w; + + if ( c3n == u3_disk_read_meta(log_u->mdb_u, 0, 0, 0, &lif_w) ) { + fprintf(stderr, "mars: disk read meta fail\r\n"); + // XX exit code, cb + // + exit(1); + } + + if ( c3n == _mars_do_boot(mar_u->log_u, lif_w) ) { + fprintf(stderr, "mars: boot fail\r\n"); + // XX exit code, cb + // + exit(1); + } + + mar_u->sen_d = mar_u->dun_d = lif_w; + u3m_save(); + } + + u3l_log("---------------- playback starting ----------------"); + + if ( (1ULL + eve_d) == log_u->dun_d ) { + u3l_log("play: event %" PRIu64 "", log_u->dun_d); + } + else if ( eve_d != log_u->dun_d ) { + u3l_log("play: events %" PRIu64 "-%" PRIu64 " of %" PRIu64 "", + (c3_d)(1ULL + mar_u->dun_d), + eve_d, + log_u->dun_d); + } + else { + u3l_log("play: events %" PRIu64 "-%" PRIu64 "", + (c3_d)(1ULL + mar_u->dun_d), + eve_d); + } + + { + c3_d pas_d = mar_u->dun_d; // last snapshot + c3_d mem_d = 0; // last event to meme + c3_w try_w = 0; // [mem_d] retry count + c3_c* wen_c; + + while ( mar_u->dun_d < eve_d ) { + _mars_step_trace(mar_u->dir_c); + + // XX get batch from args + // + switch ( _mars_play_batch(mar_u, c3y, 1024, &wen_c) ) { + case _play_yes_e: { + c3_c* now_c; + + { + u3_noun now; + struct timeval tim_u; + gettimeofday(&tim_u, 0); + + now = _mars_show_time(u3_time_in_tv(&tim_u)); + now_c = u3r_string(now); + u3z(now); + } + + u3m_reclaim(); + + if ( sap_d && ((mar_u->dun_d - pas_d) >= sap_d) ) { + u3m_save(); + pas_d = mar_u->dun_d; + u3l_log("play (%" PRIu64 "): save (%s, now=%s)", + mar_u->dun_d, wen_c, now_c); + } + else { + u3l_log("play (%" PRIu64 "): done (%s, now=%s)", + mar_u->dun_d, wen_c, now_c); + } + + c3_free(now_c); + c3_free(wen_c); + } break; + + case _play_mem_e: { + if ( mem_d != mar_u->dun_d ) { + mem_d = mar_u->dun_d; + try_w = 0; + } + else if ( 3 == ++try_w ) { + fprintf(stderr, "play (%" PRIu64 "): failed, out of loom\r\n", + mar_u->dun_d + 1); + u3m_save(); + // XX check loom size, suggest --loom X + // XX exit code, cb + // + u3_disk_exit(log_u); + exit(1); + } + + // XX pack before meld? + // + if ( u3C.wag_w & u3o_auto_meld ) { + u3a_print_memory(stderr, "mars: meld: gained", u3_meld_all(stderr)); + } + else { + u3a_print_memory(stderr, "mars: pack: gained", u3m_pack()); + } + } break; + + case _play_int_e: { + fprintf(stderr, "play (%" PRIu64 "): interrupted\r\n", mar_u->dun_d + 1); + u3m_save(); + // XX exit code, cb + // + u3_disk_exit(log_u); + exit(1); + } break; + + // XX handle any specifically? + // + case _play_log_e: + case _play_mug_e: + case _play_bad_e: { + fprintf(stderr, "play (%" PRIu64 "): failed\r\n", mar_u->dun_d + 1); + u3m_save(); + // XX exit code, cb + // + u3_disk_exit(log_u); + exit(1); + } break; + } + } + } + + u3l_log("---------------- playback complete ----------------"); + u3m_save(); + + return pay_d; +} diff --git a/vere/pkg/vere/mars.h b/vere/pkg/vere/mars.h new file mode 100644 index 0000000..552f1a9 --- /dev/null +++ b/vere/pkg/vere/mars.h @@ -0,0 +1,21 @@ +#ifndef U3_VERE_MARS_H +#define U3_VERE_MARS_H + + /** Data types. + **/ + /* u3_mars: the urbit state machine. + */ + typedef struct _u3_mars { + c3_d key_d[4]; // disk key + u3_disk* log_u; // event log + c3_c* dir_c; // execution directory (pier) + c3_d sen_d; // last event requested + c3_d dun_d; // last event processed + } u3_mars; + + /* u3_mars_play(): replay up to [eve_d], snapshot every [sap_d]. + */ + c3_d + u3_mars_play(u3_mars* mar_u, c3_d eve_d, c3_d sap_d); + +#endif /* ifndef U3_VERE_MARS_H */ diff --git a/vere/pkg/vere/mdns.c b/vere/pkg/vere/mdns.c new file mode 100644 index 0000000..8b18599 --- /dev/null +++ b/vere/pkg/vere/mdns.c @@ -0,0 +1,236 @@ +/// @file + +#include "vere.h" +#include "mdns.h" +#include "dns_sd.h" + +typedef struct _mdns_payload { + mdns_cb* cb; + DNSServiceRef sref; + char who[58]; + bool fake; + uint16_t port; + uv_poll_t poll; + void* context; +} mdns_payload; + +static void close_cb(uv_handle_t* poll) { + mdns_payload* payload = (mdns_payload*)poll->data; + DNSServiceRefDeallocate(payload->sref); + c3_free(payload); +} + +static void getaddrinfo_cb(uv_getaddrinfo_t* req, int status, struct addrinfo* res) { + mdns_payload* payload = (mdns_payload*)req->data; + + if (status < 0) { + u3l_log("mdns: getaddrinfo error: %s", uv_strerror(status)); + } else { + struct sockaddr_in* addr = (struct sockaddr_in*)res->ai_addr; + payload->cb(payload->who, payload->fake, addr->sin_addr.s_addr, payload->port, payload->context); + } + + payload->poll.data = payload; + uv_close((uv_handle_t*)&payload->poll, close_cb); + c3_free(req); + uv_freeaddrinfo(res); +} + +static void resolve_cb(DNSServiceRef sref, + DNSServiceFlags f, + uint32_t interface, + DNSServiceErrorType err, + const char *name, + const char *host, + uint16_t port, + uint16_t tl, + const unsigned char *t, + void *context) +{ + mdns_payload* payload = (mdns_payload*)context; + + uv_poll_stop(&payload->poll); + + if (err != kDNSServiceErr_NoError) { + u3l_log("mdns: dns resolve error %d", err); + payload->poll.data = payload; + uv_close((uv_handle_t*)&payload->poll, close_cb); + return; + } + + payload->sref = sref; + payload->port = port; + + const char *start = name; + if (strncmp(name, "fake-", 4) == 0) { + payload->fake = 1; + start = name + 5; + } else { + payload->fake = 0; + } + + payload->who[0] = '~'; + for (int i = 0; start[i] != '\0' && start[i] != '.' && i < 58; ++i) + { + payload->who[i+1] = start[i]; + } + + struct addrinfo hints; + memset(&hints, 0, sizeof(hints)); + hints.ai_family = AF_INET; // Request only IPv4 addresses + hints.ai_socktype = SOCK_STREAM; // TCP socket + + uv_getaddrinfo_t* req = (uv_getaddrinfo_t*)c3_calloc(sizeof(uv_getaddrinfo_t)); + req->data = (void*)payload; + + uv_loop_t* loop = uv_default_loop(); + + int error = uv_getaddrinfo(loop, req, getaddrinfo_cb, host, NULL, &hints); + + if (error < 0) { + u3l_log("mdns: getaddrinfo error: %s\n", uv_strerror(error)); + payload->poll.data = payload; + uv_close((uv_handle_t*)&payload->poll, close_cb); + c3_free(req); + } +} + +static void poll_cb(uv_poll_t* handle, int status, int events) { + DNSServiceRef sref = (DNSServiceRef) handle->data; + int err = DNSServiceProcessResult(sref); +} + +static void init_sref_poll(DNSServiceRef sref, mdns_payload* payload) { + int fd = DNSServiceRefSockFD(sref); + uv_loop_t* loop = uv_default_loop(); + payload->poll.data = (void*)sref; + uv_poll_init(loop, &payload->poll, fd); + uv_poll_start(&payload->poll, UV_READABLE, poll_cb); +} + +static void browse_cb(DNSServiceRef s, + DNSServiceFlags f, + uint32_t interface, + DNSServiceErrorType err, + const char* name, + const char* type, + const char* domain, + void* context) +{ + if (err != kDNSServiceErr_NoError) { + u3l_log("mdns: service browse error %i", err); + return; + } + + if (f & kDNSServiceFlagsAdd) { // Add + // we are leaking payload because we don't know when we are done + // browsing, luckily we only browse once + mdns_payload* payload = (mdns_payload*)context; + mdns_payload* payload_copy = c3_calloc(sizeof *payload_copy); + + // copy to prevent asynchronous thrashing of payload + memcpy(payload_copy, payload, sizeof(mdns_payload)); + + + DNSServiceErrorType err = + DNSServiceResolve(&payload_copy->sref, 0, interface, + name, type, domain, resolve_cb, + (void*)payload_copy); + + init_sref_poll(payload_copy->sref, payload_copy); + + if (err != kDNSServiceErr_NoError) { + u3l_log("mdns: dns service resolve error %i", err); + payload_copy->poll.data = payload_copy; + uv_close((uv_handle_t*)&payload_copy->poll, close_cb); + } + } +} + +static void register_close_cb(uv_handle_t* poll) { + // not freeing sref with DNSServiceRefDeallocate since that + // deregisters us from mdns + mdns_payload* payload = (mdns_payload*)poll->data; + c3_free(payload); +} + + +static void register_cb(DNSServiceRef sref, + DNSServiceFlags f, + DNSServiceErrorType err, + const char* name, + const char* type, + const char* domain, + void* context) +{ + mdns_payload* payload = (mdns_payload*)context; + + if (err != kDNSServiceErr_NoError) { + u3l_log("mdns: service register error %i", err); + } else { + u3l_log("mdns: %s registered on all interfaces", name); + } + uv_poll_stop(&payload->poll); + uv_close((uv_handle_t*)&payload->poll, register_close_cb); +} + +void mdns_init(uint16_t port, bool fake, char* our, mdns_cb* cb, void* context) +{ + #if defined(U3_OS_linux) + setenv("AVAHI_COMPAT_NOWARN", "1", 0); + setenv("DBUS_SYSTEM_BUS_ADDRESS", "unix:path=/var/run/dbus/system_bus_socket", 0); + # endif + + mdns_payload* register_payload = (mdns_payload*)c3_calloc(sizeof(mdns_payload)); + + DNSServiceRef sref; + DNSServiceErrorType err; + + char* domain; + char s[63] = {0}; + if (fake) { + strcat(s, "fake-"); + strcat(s, our + 1); // certain url parsers don't like the ~ + domain = s; + } else { + domain = our + 1; + } + + err = DNSServiceRegister(&sref, 0, 0, domain, "_ames._udp", + NULL, NULL, htons(port), 0, NULL, register_cb, (void*)register_payload); + + if (err != kDNSServiceErr_NoError) { + if (err == kDNSServiceErr_Unknown) { + #if defined(U3_OS_linux) + u3l_log("mdns: init failed, install avahi on this system for mdns support"); + #else + u3l_log("mdns: service register error %i", err); + # endif + } else { + u3l_log("mdns: service register error %i", err); + } + DNSServiceRefDeallocate(sref); + return; + } + + init_sref_poll(sref, register_payload); + + mdns_payload* browse_payload = (mdns_payload*)c3_calloc(sizeof(mdns_payload)); + + browse_payload->cb = cb; + browse_payload->context = context; + + DNSServiceErrorType dnserr; + DNSServiceRef sref2; + + dnserr = DNSServiceBrowse(&sref2, 0, 0, "_ames._udp", NULL, browse_cb, (void *)browse_payload); + + if (dnserr != kDNSServiceErr_NoError) { + u3l_log("mdns: service browse error %i", dnserr); + DNSServiceRefDeallocate(sref2); + return; + } + + init_sref_poll(sref2, browse_payload); + +} diff --git a/vere/pkg/vere/mdns.h b/vere/pkg/vere/mdns.h new file mode 100644 index 0000000..8ddddd9 --- /dev/null +++ b/vere/pkg/vere/mdns.h @@ -0,0 +1,6 @@ +#include "noun.h" +#include + +typedef void mdns_cb(c3_c* ship, bool fake, c3_w s_addr, c3_s port, void* context); + +void mdns_init(uint16_t port, bool fake, char* our, mdns_cb* cb, void* context); diff --git a/vere/pkg/vere/melt.c b/vere/pkg/vere/melt.c new file mode 100644 index 0000000..113a08c --- /dev/null +++ b/vere/pkg/vere/melt.c @@ -0,0 +1,217 @@ +#include "allocate.h" +#include "hashtable.h" +#include "jets.h" +#include "options.h" +#include "retrieve.h" +#include "vortex.h" + +static c3_d +_melt_hash(u3_noun foo) +{ + return u3r_mug(foo) * 11400714819323198485ULL; +} + +static c3_i +_melt_cmp_atoms(u3_atom a, u3_atom b) +{ + if ( a == b ) return 1; + + // XX assume(c3y == u3a_is_pug(a) && c3y == u3a_is_pug(b)) + u3a_atom *a_u = u3a_to_ptr(a); + u3a_atom *b_u = u3a_to_ptr(b); + + // XX assume( a_u->mug_w && b_u->mug_w ) + if ( a_u->mug_w != b_u->mug_w ) return 0; + + if ( a_u->len_w != b_u->len_w ) return 0; + + return 0 == memcmp(a_u->buf_w, b_u->buf_w, a_u->len_w << 2); +} + +#define NAME _coins +#define KEY_TY u3_atom +#define HASH_FN _melt_hash +#define CMPR_FN _melt_cmp_atoms +#include "verstable.h" + +static c3_i +_melt_cmp_cells(u3_cell a, u3_cell b) +{ + if ( a == b ) return 1; + + u3a_cell *a_u = u3a_to_ptr(a); + u3a_cell *b_u = u3a_to_ptr(b); + + // XX assume( a_u->mug_w && b_u->mug_w ) + if ( a_u->mug_w != b_u->mug_w ) return 0; + + c3_d *a_d = (c3_d*)&(a_u->hed); + c3_d *b_d = (c3_d*)&(b_u->hed); + + return *a_d == *b_d; +} + +#define NAME _cells +#define KEY_TY u3_cell +#define HASH_FN _melt_hash +#define CMPR_FN _melt_cmp_cells +#include "verstable.h" + +typedef struct { + _coins vat_u; + _cells cel_u; + c3_w len_w; + c3_w siz_w; + u3_noun *tac; +} _melt_ctx; + +static u3_noun +_melt_canon_next(_melt_ctx *can_u, u3_noun som) +{ + _coins_itr vit_u; + _cells_itr cit_u; + + while ( 1 ) { + if ( c3y == u3a_is_cat(som) ) return som; + + if ( c3n == u3a_is_cell(som) ) { + vit_u = vt_get_or_insert(&can_u->vat_u, som); + u3_assert( !vt_is_end(vit_u) ); // OOM + return vit_u.data->key; + } + + cit_u = vt_get(&can_u->cel_u, som); + if ( !vt_is_end(cit_u) ) return cit_u.data->key; + + if ( can_u->len_w == can_u->siz_w ) { + can_u->siz_w += c3_min(can_u->siz_w, 1024); + can_u->tac = c3_realloc(can_u->tac, sizeof(*can_u->tac) * can_u->siz_w); + } + + can_u->tac[can_u->len_w++] = u3a_to_off(som) >> u3a_vits; + som = u3h(som); + continue; + } +} + +static inline void __attribute__((always_inline)) +_melt_xchange(u3_noun new, u3_noun *som) +{ + u3_noun old = *som; + + if ( old != new ) { + *som = u3k(new); + u3z(old); + } +} + +static u3_noun +_melt_canon(_melt_ctx *can_u, u3_noun can) +{ + _cells_itr cit_u; + u3a_cell *cel_u; + u3_noun *top; + + can_u->len_w = 0; + + can = _melt_canon_next(can_u, can); + + while ( can_u->len_w ) { + top = &(can_u->tac[can_u->len_w - 1]); + + if ( !(*top >> 31) ) { // head frame + cel_u = u3to(u3a_cell, *top << u3a_vits); + _melt_xchange(can, &cel_u->hed); + *top |= 1U << 31; // tail frame + can = _melt_canon_next(can_u, cel_u->tel); + } + else { + *top &= (1U << 31) - 1; + *top <<= u3a_vits; + cel_u = u3to(u3a_cell, *top); + _melt_xchange(can, &cel_u->tel); + cit_u = vt_get_or_insert(&can_u->cel_u, u3a_to_pom(*top)); + u3_assert( !vt_is_end(cit_u) ); // OOM + can = cit_u.data->key; + + can_u->len_w--; + } + } + + return can; +} + +static void +_melt_canon_ptr(_melt_ctx *can_u, u3_noun *som) +{ + u3_noun can = _melt_canon(can_u, *som); + _melt_xchange(can, som); +} + +static void +_melt_walk_hamt(u3_noun kev, void* ptr_v) +{ + _melt_ctx *can_u = ptr_v; + (void)_melt_canon(can_u, kev); +} + +c3_w +u3_melt_all(FILE *fil_u) +{ + c3_w pre_w = u3a_idle(u3R); + _melt_ctx can_u = {0}; + + // Verify that we're on the main road. + // + u3_assert( &(u3H->rod_u) == u3R ); + + can_u.siz_w = 32; + can_u.tac = c3_malloc(sizeof(*can_u.tac) * can_u.siz_w); + + vt_init(&can_u.vat_u); + vt_init(&can_u.cel_u); + + u3m_reclaim(); + + // XX packed struct + // + { + u3_noun roc = u3A->roc; + _melt_canon_ptr(&can_u, &roc); + u3A->roc = roc; + } + + u3h_walk_with(u3R->jed.cod_p, _melt_walk_hamt, &can_u); + u3h_walk_with(u3R->cax.per_p, _melt_walk_hamt, &can_u); + + u3j_boot(c3n); + u3j_ream(); + + if ( fil_u ) { + fprintf(fil_u, "atoms (%zu)", vt_size(&can_u.vat_u)); + u3a_print_memory(fil_u, "", (c3_w)vt_bucket_count(&can_u.vat_u)); + fprintf(fil_u, "cells (%zu)", vt_size(&can_u.cel_u)); + u3a_print_memory(fil_u, "", (c3_w)vt_bucket_count(&can_u.cel_u)); + } + + vt_cleanup(&can_u.vat_u); + vt_cleanup(&can_u.cel_u); + + c3_free(can_u.tac); + + return u3a_idle(u3R) - pre_w; +} + +c3_w +u3_meld_all(FILE *fil_u) +{ + c3_w pre_w = u3a_open(u3R); + + u3h_free(u3R->cax.per_p); + u3R->cax.per_p = u3h_new_cache(u3C.per_w); + + (void)u3_melt_all(fil_u); + (void)u3m_pack(); + + return u3a_open(u3R) - pre_w; +} diff --git a/vere/pkg/vere/newt.c b/vere/pkg/vere/newt.c new file mode 100644 index 0000000..acc4166 --- /dev/null +++ b/vere/pkg/vere/newt.c @@ -0,0 +1,483 @@ +/// @file + +/* +** implements noun blob messages with trivial framing. +** +** framing is 5 bytes long. first byte is a version tag; a +** character that should never otherwise appear in a message +** intended for urbit. right now we use 0x0. next 32 bits are +** little-endian byte count. after that is the indicated number +** of bytes, which are the +jam of a noun. +** +** the implementation is relatively inefficient and could +** lose a few copies, mallocs, etc. +*/ + +#include "vere.h" + +#include "noun.h" + +/* _newt_mess_head(): await next msg header. +*/ +static void +_newt_mess_head(u3_mess* mes_u) +{ + mes_u->sat_e = u3_mess_head; + mes_u->hed_u.has_y = 0; +} + +/* _newt_mess_tail(): await msg body. +*/ +static void +_newt_mess_tail(u3_mess* mes_u, c3_d len_d) +{ + u3_meat* met_u = c3_malloc(len_d + sizeof(*met_u)); + met_u->nex_u = 0; + met_u->len_d = len_d; + + mes_u->sat_e = u3_mess_tail; + mes_u->tal_u.has_d = 0; + mes_u->tal_u.met_u = met_u; +} + +/* _newt_meat_plan(): enqueue complete msg. +*/ +static void +_newt_meat_plan(u3_moat* mot_u, u3_meat* met_u) +{ + if ( mot_u->ent_u ) { + mot_u->ent_u->nex_u = met_u; + mot_u->ent_u = met_u; + } + else { + mot_u->ent_u = mot_u->ext_u = met_u; + } +} + +/* _newt_meat_poke(): deliver completed msg. +*/ +static void +_newt_meat_poke(u3_moat* mot_u, u3_meat* met_u) +{ + mot_u->pok_f(mot_u->ptr_v, met_u->len_d, met_u->hun_y); + c3_free(met_u); +} + +/* _newt_meat_next_sync(): deliver completed msgs, synchronously. +*/ +static void +_newt_meat_next_sync(u3_moat* mot_u) +{ + u3_meat* met_u = mot_u->ext_u; + + while ( met_u ) { + u3_meat* nex_u = met_u->nex_u; + _newt_meat_poke(mot_u, met_u); + met_u = nex_u; + } + + mot_u->ent_u = mot_u->ext_u = 0; +} + +static void +_newt_meat_next_cb(uv_timer_t* tim_u); + +/* _newt_meat_next(): deliver completed msgs, asynchronously. +*/ +static void +_newt_meat_next(u3_moat* mot_u) +{ + u3_meat* met_u = mot_u->ext_u; + + if ( met_u ) { + mot_u->ext_u = met_u->nex_u; + + if ( mot_u->ext_u ) { + uv_timer_start(&mot_u->tim_u, _newt_meat_next_cb, 0, 0); + } + else { + mot_u->ent_u = 0; + } + + _newt_meat_poke(mot_u, met_u); + } +} + +/* _newt_meat_next_cb(): handle next msg after timer. +*/ +static void +_newt_meat_next_cb(uv_timer_t* tim_u) +{ + u3_moat* mot_u = tim_u->data; + _newt_meat_next(mot_u); +} + +/* u3_newt_decode(): decode a (partial) length-prefixed byte buffer +*/ +c3_o +u3_newt_decode(u3_moat* mot_u, c3_y* buf_y, c3_d len_d) +{ + u3_mess* mes_u = &mot_u->mes_u; + + while ( len_d ) { + switch( mes_u->sat_e ) { + + // read up to 5 bytes as needed + // + case u3_mess_head: { + c3_y* hed_y = mes_u->hed_u.hed_y; + c3_y has_y = mes_u->hed_u.has_y; + c3_y ned_y = sizeof(mes_u->hed_u.hed_y) - has_y; + c3_y cop_y = c3_min(ned_y, len_d); + + memcpy(hed_y + has_y, buf_y, cop_y); + buf_y += cop_y; + len_d -= cop_y; + ned_y -= cop_y; + + // moar bytes needed, yield + // + if ( ned_y ) { + mes_u->hed_u.has_y = (has_y + cop_y); + } + // length known, allocate message + // + else { + c3_d met_d = (((c3_d)hed_y[1]) << 0) + | (((c3_d)hed_y[2]) << 8) + | (((c3_d)hed_y[3]) << 16) + | (((c3_d)hed_y[4]) << 24); + + // check for version tag and nonzero length + // + if ( 0x0 != hed_y[0] || !met_d ) { + return c3n; + } + + // await body + // + _newt_mess_tail(mes_u, met_d); + } + } break; + + case u3_mess_tail: { + u3_meat* met_u = mes_u->tal_u.met_u; + c3_d has_d = mes_u->tal_u.has_d; + c3_d ned_d = met_u->len_d - has_d; + c3_d cop_d = c3_min(ned_d, len_d); + + memcpy(met_u->hun_y + has_d, buf_y, cop_d); + buf_y += cop_d; + len_d -= cop_d; + ned_d -= cop_d; + + // moar bytes needed, yield + // + if ( ned_d ) { + mes_u->tal_u.has_d = (has_d + cop_d); + } + // message completed, enqueue and await next header + // + else { + _newt_meat_plan(mot_u, met_u); + _newt_mess_head(mes_u); + } + } break; + } + } + return c3y; +} + +/* _newt_read(): handle async read result. +*/ +static c3_o +_newt_read(u3_moat* mot_u, + ssize_t len_i, + const uv_buf_t* buf_u) +{ + if ( 0 > len_i ) { + c3_free(buf_u->base); + uv_read_stop((uv_stream_t*)&mot_u->pyp_u); + + if ( UV_EOF != len_i ) { + fprintf(stderr, "newt: read failed %s\r\n", uv_strerror(len_i)); + } + + mot_u->bal_f(mot_u->ptr_v, len_i, uv_strerror(len_i)); + return c3n; + } + // EAGAIN/EWOULDBLOCK + // + else if ( 0 == len_i ) { + c3_free(buf_u->base); + return c3n; + } + else { + if ( c3n == u3_newt_decode(mot_u, (c3_y*)buf_u->base, (c3_d)len_i) ) { + mot_u->bal_f(mot_u->ptr_v, -1, "newt-decode"); + c3_free(buf_u->base); + return c3n; + } + c3_free(buf_u->base); + return c3y; + } +} + +/* _newt_read_sync_cb(): async read callback, sync msg delivery. +*/ +static void +_newt_read_sync_cb(uv_stream_t* str_u, + ssize_t len_i, + const uv_buf_t* buf_u) +{ + u3_moat* mot_u = (void *)str_u; + + if ( c3y == _newt_read(mot_u, len_i, buf_u) ) { + _newt_meat_next_sync(mot_u); + } +} + +/* _newt_read_cb(): async read callback, async msg delivery. +*/ +static void +_newt_read_cb(uv_stream_t* str_u, + ssize_t len_i, + const uv_buf_t* buf_u) +{ + u3_moat* mot_u = (void *)str_u; + + if ( c3y == _newt_read(mot_u, len_i, buf_u) ) { + _newt_meat_next(mot_u); + } +} + +/* _newt_alloc(): libuv-style allocator. +*/ +static void +_newt_alloc(uv_handle_t* had_u, + size_t len_i, + uv_buf_t* buf_u) +{ + // XX pick an appropriate size + // + void* ptr_v = c3_malloc(len_i); + + *buf_u = uv_buf_init(ptr_v, len_i); +} + +static void +_newt_read_init(u3_moat* mot_u, uv_read_cb read_cb_f) +{ + // zero-initialize completed msg queue + // + mot_u->ent_u = mot_u->ext_u = 0; + + // store pointer for libuv handle callback + // + mot_u->pyp_u.data = mot_u; + mot_u->tim_u.data = mot_u; + + // await next msg header + // + _newt_mess_head(&mot_u->mes_u); + + { + c3_i sas_i; + + if ( 0 != (sas_i = uv_read_start((uv_stream_t*)&mot_u->pyp_u, + _newt_alloc, + read_cb_f)) ) + { + fprintf(stderr, "newt: read failed %s\r\n", uv_strerror(sas_i)); + mot_u->bal_f(mot_u->ptr_v, sas_i, uv_strerror(sas_i)); + } + } +} + +/* _moat_stop_cb(): finalize stop/close input stream.. +*/ +static void +_moat_stop_cb(uv_handle_t* han_u) +{ + u3_moat* mot_u = han_u->data; + mot_u->bal_f(mot_u->ptr_v, -1, ""); +} + +/* u3_newt_moat_stop(); newt stop/close input stream. +*/ +void +u3_newt_moat_stop(u3_moat* mot_u, u3_moor_bail bal_f) +{ + mot_u->pyp_u.data = mot_u; + + if ( bal_f ) { + mot_u->bal_f = bal_f; + } + + uv_close((uv_handle_t*)&mot_u->pyp_u, _moat_stop_cb); + uv_close((uv_handle_t*)&mot_u->tim_u, 0); + + // dispose in-process message + // + if ( u3_mess_tail == mot_u->mes_u.sat_e ) { + c3_free(mot_u->mes_u.tal_u.met_u); + _newt_mess_head(&mot_u->mes_u); + } + + // dispose pending messages + { + u3_meat* met_u = mot_u->ext_u; + u3_meat* nex_u; + + while ( met_u ) { + nex_u = met_u->nex_u; + c3_free(met_u); + met_u = nex_u; + } + + mot_u->ent_u = mot_u->ext_u = 0; + } +} + +/* u3_newt_read_sync(): start reading; multiple msgs synchronous. +*/ +void +u3_newt_read_sync(u3_moat* mot_u) +{ + _newt_read_init(mot_u, _newt_read_sync_cb); +} + +/* u3_newt_read(): start reading; each msg asynchronous. +*/ +void +u3_newt_read(u3_moat* mot_u) +{ + _newt_read_init(mot_u, _newt_read_cb); +} + +/* u3_newt_moat_info(): status info as $mass. +*/ +u3_noun +u3_newt_moat_info(u3_moat* mot_u) +{ + u3_meat* met_u = mot_u->ext_u; + c3_w len_w = 0; + + while ( met_u ) { + len_w++; + met_u = met_u->nex_u; + } + return u3_pier_mass( + c3__moat, + u3i_list(u3_pier_mase("pending-inbound", u3i_word(len_w)), + u3_none)); +} + +/* u3_newt_moat_slog(); print status info. +*/ +void +u3_newt_moat_slog(u3_moat* mot_u) +{ + u3_meat* met_u = mot_u->ext_u; + c3_w len_w = 0; + + while ( met_u ) { + len_w++; + met_u = met_u->nex_u; + } + + if ( len_w ) { + u3l_log(" newt: %u inbound ipc messages pending", len_w); + } +} + +/* n_req: write request for newt +*/ +typedef struct _n_req { + uv_write_t wri_u; + u3_mojo* moj_u; + c3_y* buf_y; + c3_y hed_y[5]; +} n_req; + +/* _newt_write_cb(): generic write callback. +*/ +static void +_newt_write_cb(uv_write_t* wri_u, c3_i sas_i) +{ + n_req* req_u = (n_req*)wri_u; + u3_mojo* moj_u = req_u->moj_u; + + c3_free(req_u->buf_y); + c3_free(req_u); + + if ( 0 != sas_i ) { + if ( UV_ECANCELED == sas_i ) { + fprintf(stderr, "newt: write canceled\r\n"); + } + else { + fprintf(stderr, "newt: write failed %s\r\n", uv_strerror(sas_i)); + moj_u->bal_f(moj_u->ptr_v, sas_i, uv_strerror(sas_i)); + } + } +} + +/* _mojo_stop_cb(): finalize stop/close output stream.. +*/ +static void +_mojo_stop_cb(uv_handle_t* han_u) +{ + u3_mojo* moj_u = han_u->data; + moj_u->bal_f(moj_u->ptr_v, -1, ""); +} + +/* u3_newt_mojo_stop(); newt stop/close output stream. +*/ +void +u3_newt_mojo_stop(u3_mojo* moj_u, u3_moor_bail bal_f) +{ + moj_u->pyp_u.data = moj_u; + + if ( bal_f ) { + moj_u->bal_f = bal_f; + } + + uv_close((uv_handle_t*)&moj_u->pyp_u, _mojo_stop_cb); +} + +/* u3_newt_send(): write buffer to stream. +*/ +void +u3_newt_send(u3_mojo* moj_u, c3_d len_d, c3_y* byt_y) +{ + n_req* req_u = c3_malloc(sizeof(*req_u)); + req_u->moj_u = moj_u; + req_u->buf_y = byt_y; + + // write header + // + req_u->hed_y[0] = 0x0; + req_u->hed_y[1] = ( len_d & 0xff); + req_u->hed_y[2] = ((len_d >> 8) & 0xff); + req_u->hed_y[3] = ((len_d >> 16) & 0xff); + req_u->hed_y[4] = ((len_d >> 24) & 0xff); + + { + uv_buf_t buf_u[2] = { + uv_buf_init((c3_c*)req_u->hed_y, sizeof(req_u->hed_y)), + uv_buf_init((c3_c*)req_u->buf_y, len_d) + }; + + c3_i sas_i; + + if ( 0 != (sas_i = uv_write(&req_u->wri_u, + (uv_stream_t*)&moj_u->pyp_u, + buf_u, 2, + _newt_write_cb)) ) + { + c3_free(req_u); + fprintf(stderr, "newt: write failed %s\r\n", uv_strerror(sas_i)); + moj_u->bal_f(moj_u->ptr_v, sas_i, uv_strerror(sas_i)); + } + } +} diff --git a/vere/pkg/vere/newt_tests.c b/vere/pkg/vere/newt_tests.c new file mode 100644 index 0000000..f8c5d4d --- /dev/null +++ b/vere/pkg/vere/newt_tests.c @@ -0,0 +1,355 @@ +/// @file + +#include "noun.h" +#include "vere.h" + +/* _setup(): prepare for tests. +*/ +static void +_setup(void) +{ + u3m_init(1 << 20); + u3m_pave(c3y); +} + +/* _newt_encode(): synchronous serialization into a single buffer, for test purposes +*/ +static c3_y* +_newt_encode(u3_atom mat, c3_w* len_w) +{ + c3_w met_w = u3r_met(3, mat); + c3_y* buf_y; + + *len_w = 5 + met_w; + buf_y = c3_malloc(*len_w); + + // write header + // + buf_y[0] = 0x0; + buf_y[1] = ( met_w & 0xff); + buf_y[2] = ((met_w >> 8) & 0xff); + buf_y[3] = ((met_w >> 16) & 0xff); + buf_y[4] = ((met_w >> 24) & 0xff); + + u3r_bytes(0, met_w, buf_y + 5, mat); + u3z(mat); + + return buf_y; +} + +static c3_w +_moat_length(u3_moat* mot_u) +{ + u3_meat* met_u = mot_u->ext_u; + c3_w len_w = 0; + + while ( met_u ) { + met_u = met_u->nex_u; + len_w++; + } + + return len_w; +} + +/* _test_newt_smol(): various scenarios with small messages +*/ +static void +_test_newt_smol(void) +{ + // =(2 (jam 0)) + // + u3_atom a = u3ke_jam(0); + u3_moat mot_u; + c3_w len_w; + c3_y* buf_y; + + memset(&mot_u, 0, sizeof(u3_moat)); + + // one message one buffer + // + { + mot_u.ent_u = mot_u.ext_u = 0; + + buf_y = _newt_encode(u3k(a), &len_w); + u3_newt_decode(&mot_u, buf_y, len_w); + + if ( 1 != _moat_length(&mot_u) ) { + fprintf(stderr, "newt smol fail (a)\n"); + exit(1); + } + } + + // two messages one buffer + // + { + mot_u.ent_u = mot_u.ext_u = 0; + + buf_y = _newt_encode(u3k(a), &len_w); + + buf_y = c3_realloc(buf_y, 2 * len_w); + memcpy(buf_y + len_w, buf_y, len_w); + len_w = 2 * len_w; + + u3_newt_decode(&mot_u, buf_y, len_w); + + if ( 2 != _moat_length(&mot_u) ) { + fprintf(stderr, "newt smol fail (b)\n"); + exit(1); + } + } + + // one message two buffers + // + { + c3_y* end_y; + + mot_u.ent_u = mot_u.ext_u = 0; + + buf_y = _newt_encode(u3k(a), &len_w); + + end_y = c3_malloc(1); + end_y[0] = buf_y[len_w - 1]; + + u3_newt_decode(&mot_u, buf_y, len_w - 1); + + if ( 0 != _moat_length(&mot_u) ) { + fprintf(stderr, "newt smol fail (c)\n"); + exit(1); + } + + u3_newt_decode(&mot_u, end_y, 1); + + if ( 1 != _moat_length(&mot_u) ) { + fprintf(stderr, "newt smol fail (d)\n"); + exit(1); + } + } + + // two messages two buffers (overlapping length) + // + { + c3_y* haf_y; + c3_w haf_w, dub_w; + + mot_u.ent_u = mot_u.ext_u = 0; + + buf_y = _newt_encode(u3k(a), &len_w); + + dub_w = 2 * len_w; + haf_w = len_w / 2; + + // buf_y is all of message one, half of message two (not a full length) + // + buf_y = c3_realloc(buf_y, dub_w - haf_w); + memcpy(buf_y + len_w, buf_y, len_w - haf_w); + + // haf_y is the second half of message two + // + haf_y = c3_malloc(haf_w); + memcpy(haf_y, buf_y + (len_w - haf_w), haf_w); + + u3_newt_decode(&mot_u, buf_y, dub_w - haf_w); + + if ( 1 != _moat_length(&mot_u) ) { + fprintf(stderr, "newt smol fail (e)\n"); + exit(1); + } + + u3_newt_decode(&mot_u, haf_y, haf_w); + + if ( 2 != _moat_length(&mot_u) ) { + fprintf(stderr, "newt smol fail (f)\n"); + exit(1); + } + } + + u3z(a); +} + +/* _test_newt_vast(): various scenarios with larger messages +*/ +static void +_test_newt_vast(void) +{ + // =(53 (met 3 (jam "abcdefghijklmnopqrstuvwxyz"))) + // + u3_atom a = u3ke_jam(u3i_tape("abcdefghijklmnopqrstuvwxyz")); + u3_moat mot_u; + c3_w len_w; + c3_y* buf_y; + + memset(&mot_u, 0, sizeof(u3_moat)); + + // one message one buffer + // + { + mot_u.ent_u = mot_u.ext_u = 0; + + buf_y = _newt_encode(u3k(a), &len_w); + u3_newt_decode(&mot_u, buf_y, len_w); + + if ( 1 != _moat_length(&mot_u) ) { + fprintf(stderr, "newt vast fail (a)\n"); + exit(1); + } + } + + // two messages one buffer + // + { + mot_u.ent_u = mot_u.ext_u = 0; + + buf_y = _newt_encode(u3k(a), &len_w); + + buf_y = c3_realloc(buf_y, 2 * len_w); + memcpy(buf_y + len_w, buf_y, len_w); + len_w = 2 * len_w; + + u3_newt_decode(&mot_u, buf_y, len_w); + + if ( 2 != _moat_length(&mot_u) ) { + fprintf(stderr, "newt vast fail (b)\n"); + exit(1); + } + } + + // one message many buffers + // + { + mot_u.ent_u = mot_u.ext_u = 0; + + buf_y = _newt_encode(u3k(a), &len_w); + + { + c3_y* cop_y = c3_malloc(len_w); + c3_w haf_w = len_w / 2; + memcpy(cop_y, buf_y, len_w); + + u3_newt_decode(&mot_u, buf_y, haf_w); + + while ( haf_w < len_w ) { + c3_y* end_y = c3_malloc(1); + end_y[0] = cop_y[haf_w]; + + if ( 0 != _moat_length(&mot_u) ) { + fprintf(stderr, "newt vast fail (c) %u\n", haf_w); + exit(1); + } + + u3_newt_decode(&mot_u, end_y, 1); + haf_w++; + } + + c3_free(cop_y); + } + + if ( 1 != _moat_length(&mot_u) ) { + fprintf(stderr, "newt vast fail (d)\n"); + exit(1); + } + } + + // two messages two buffers + // + { + c3_y* haf_y; + c3_w haf_w, dub_w; + + mot_u.ent_u = mot_u.ext_u = 0; + + buf_y = _newt_encode(u3k(a), &len_w); + + dub_w = 2 * len_w; + haf_w = len_w / 2; + + // buf_y is all of message one, half of message two + // + buf_y = c3_realloc(buf_y, dub_w - haf_w); + memcpy(buf_y + len_w, buf_y, len_w - haf_w); + + // haf_y is the second half of message two + // + haf_y = c3_malloc(haf_w); + memcpy(haf_y, buf_y + (len_w - haf_w), haf_w); + + u3_newt_decode(&mot_u, buf_y, dub_w - haf_w); + + if ( 1 != _moat_length(&mot_u) ) { + fprintf(stderr, "newt vast fail (e)\n"); + exit(1); + } + + u3_newt_decode(&mot_u, haf_y, haf_w); + + if ( 2 != _moat_length(&mot_u) ) { + fprintf(stderr, "newt vast fail (f)\n"); + exit(1); + } + } + + // two messages many buffers + // + { + c3_w dub_w; + + mot_u.ent_u = mot_u.ext_u = 0; + + buf_y = _newt_encode(u3k(a), &len_w); + + dub_w = 2 * len_w; + + // buf_y is two copies of message + // + buf_y = c3_realloc(buf_y, dub_w); + memcpy(buf_y + len_w, buf_y, len_w); + + { + c3_y* cop_y = c3_malloc(dub_w); + c3_w haf_w = len_w + 1; + memcpy(cop_y, buf_y, dub_w); + + u3_newt_decode(&mot_u, buf_y, haf_w); + + while ( haf_w < dub_w ) { + c3_y* end_y = c3_malloc(1); + end_y[0] = cop_y[haf_w]; + + if ( 1 != _moat_length(&mot_u) ) { + fprintf(stderr, "newt vast fail (g) %u\n", haf_w); + exit(1); + } + + u3_newt_decode(&mot_u, end_y, 1); + haf_w++; + } + + c3_free(cop_y); + } + + if ( 2 != _moat_length(&mot_u) ) { + fprintf(stderr, "newt vast fail (h)\n"); + exit(1); + } + } + + u3z(a); +} + +/* main(): run all test cases. +*/ +int +main(int argc, char* argv[]) +{ + _setup(); + + _test_newt_smol(); + _test_newt_vast(); + + // GC + // + u3m_grab(u3_none); + + fprintf(stderr, "test_newt: ok\n"); + + return 0; +} diff --git a/vere/pkg/vere/noun_tests.c b/vere/pkg/vere/noun_tests.c new file mode 100644 index 0000000..f26444f --- /dev/null +++ b/vere/pkg/vere/noun_tests.c @@ -0,0 +1,1789 @@ +/// @file + +#include "noun.h" +#include "ivory.h" +#include "ur/ur.h" +#include "vere.h" + +#define TRUE 1 +#define FALSE 0 + +/* _setup(): prepare for tests. +*/ +static void +_setup(void) +{ + u3m_init(1 << 20); + u3m_pave(c3y); +} + +/* _test_u3r_chop: "extract bit slices from atom" +*/ +static c3_i +_test_u3r_chop() +{ + c3_i ret_i = 1; + c3_w dst_w = 0; + u3_atom src = 0b11011; + + // bloq 0 + // + { + // read 1 bit from pos=0 (far right) + // + dst_w = 0; + u3r_chop(0, 0, 1, 0, &dst_w, src); + if ( 0x1 != dst_w ) { + fprintf(stderr, "test: u3r_chop: bloq 0, 0\r\n"); + ret_i = 0; + } + + // read 1 bit from pos=1 + // + dst_w = 0; + u3r_chop(0, 1, 1, 0, &dst_w, src); + if ( 0x1 != dst_w ) { + fprintf(stderr, "test: u3r_chop: bloq 0, 1\r\n"); + ret_i = 0; + } + + // read 1 bit from pos=2 + // + dst_w = 0; + u3r_chop(0, 2, 1, 0, &dst_w, src); + if ( 0x0 != dst_w ) { + fprintf(stderr, "test: u3r_chop: bloq 0, 2\r\n"); + ret_i = 0; + } + + // read 4 x 1 bit bloq from pos=0 + // + dst_w = 0; + u3r_chop(0, 0, 4, 0, &dst_w, src); + if ( 0b1011 != dst_w ) { + fprintf(stderr, "test: u3r_chop: bloq 0, 3\r\n"); + ret_i = 0; + } + + // read 4 x 1 bit bloq from pos=0 into offset 1 + // + dst_w = 0; + u3r_chop(0, 0, 4, 1, &dst_w, src); + if ( 0b10110 != dst_w ) { + fprintf(stderr, "test: u3r_chop: bloq 0, 4\r\n"); + ret_i = 0; + } + } + + // bloq 1 + // + { + // read 2 bit from pos=0 (far right) + // + dst_w = 0; + u3r_chop(1, 0, 1, 0, &dst_w, src); + if ( 0b11 != dst_w ) { + fprintf(stderr, "test: u3r_chop: bloq 1, 0\r\n"); + ret_i = 0; + } + + // read 2 bit from pos=1 + // + dst_w = 0; + u3r_chop(1, 1, 1, 0, &dst_w, src); + if ( 0b10 != dst_w ) { + fprintf(stderr, "test: u3r_chop: bloq 1, 1\r\n"); + ret_i = 0; + } + + // read 2 bit from pos=2 (2 bloq over) + dst_w = 0; + u3r_chop(1, 2, 1, 0, &dst_w, src); + if ( 0b01 != dst_w ) { + fprintf(stderr, "test: u3r_chop: bloq 1, 2\r\n"); + ret_i = 0; + } + } + + // bloq 3 + { + dst_w = 0; + u3r_chop(3, 0, 1, 0, &dst_w, src); + if ( 0b11011 != dst_w ) { + fprintf(stderr, "test: u3r_chop: bloq 3, 0\r\n"); + ret_i = 0; + } + } + + // read 1,8,16 bit bloqs from an indirect atom + // + { + src = u3i_string("abcdefghij"); + + // 1 bit pos=0 (far right) + // + dst_w = 0; + u3r_chop(0, 0, 1, 0, &dst_w, src); + if ( 0b1 != dst_w ) { + fprintf(stderr, "test: u3r_chop: indirect 0\r\n"); + ret_i = 0; + } + + // 8 bits pos=0 + // + dst_w = 0; + u3r_chop(0, 0, 8, 0, &dst_w, src); + if ( 0b1100001 != dst_w ) { + fprintf(stderr, "test: u3r_chop: indirect 1\r\n"); + ret_i = 0; + } + + // 1 byte pos=0 + // + dst_w = 0; + u3r_chop(3, 0, 1, 0, &dst_w, src); + if ( 0b1100001 != dst_w ) { + fprintf(stderr, "test: u3r_chop: indirect 2\r\n"); + ret_i = 0; + } + + // 1 short pos=0 + // + dst_w = 0; + u3r_chop(4, 0, 1, 0, &dst_w, src); + if ( 0b0110001001100001 != dst_w ) { + fprintf(stderr, "test: u3r_chop: indirect 3\r\n"); + ret_i = 0; + } + + u3z(src); + } + + // read lots of bits from a direct noun which holds 64 bits of data + // makes sure that we handle top 32 / bottom 32 correctly + { + c3_y inp_y[8] = { 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7 }; + src = u3i_bytes(8, inp_y); + + c3_w dst_w[2] = {0}; + u3r_chop(0, 0, 63, 0, dst_w, src); + if ( (0x3020100 != dst_w[0]) || (0x7060504 != dst_w[1]) ) { + fprintf(stderr, "test: u3r_chop: indirect 4\r\n"); + ret_i = 0; + } + + u3z(src); + } + + // as above (read lots of bits from a direct noun which holds 64 bits of data + // makes sure that we handle top 32 / bottom 32 correctly) + // but with a bit more nuance + { + c3_y inp_y[8] = { 0x0, 0x0, 0x0, 0xaa, 0xff, 0x0, 0x0, 0x0 }; + src = u3i_bytes(8, (c3_y*)inp_y); + + dst_w = 0; + u3r_chop(0, 24, 16, 0, &dst_w, src); + if ( 0b1111111110101010 != dst_w ) { + fprintf(stderr, "test: u3r_chop: indirect 5\r\n"); + ret_i = 0; + } + + u3z(src); + } + + return ret_i; +} + +/* _test_chop_slow(): "golden master" for chop tests (formerly u3r_chop()) +*/ +void +_test_chop_slow(c3_g met_g, + c3_w fum_w, + c3_w wid_w, + c3_w tou_w, + c3_w* dst_w, + c3_w len_w, + c3_w* buf_w) +{ + c3_w i_w; + + if ( met_g < 5 ) { + c3_w san_w = (1 << met_g); + c3_w mek_w = ((1 << san_w) - 1); + c3_w baf_w = (fum_w << met_g); + c3_w bat_w = (tou_w << met_g); + + // XX: efficiency: poor. Iterate by words. + // + for ( i_w = 0; i_w < wid_w; i_w++ ) { + c3_w waf_w = (baf_w >> 5); + c3_g raf_g = (baf_w & 31); + c3_w wat_w = (bat_w >> 5); + c3_g rat_g = (bat_w & 31); + c3_w hop_w; + + hop_w = (waf_w >= len_w) ? 0 : buf_w[waf_w]; + hop_w = (hop_w >> raf_g) & mek_w; + + dst_w[wat_w] ^= (hop_w << rat_g); + + baf_w += san_w; + bat_w += san_w; + } + } + else { + c3_g hut_g = (met_g - 5); + c3_w san_w = (1 << hut_g); + c3_w j_w; + + for ( i_w = 0; i_w < wid_w; i_w++ ) { + c3_w wuf_w = (fum_w + i_w) << hut_g; + c3_w wut_w = (tou_w + i_w) << hut_g; + + for ( j_w = 0; j_w < san_w; j_w++ ) { + dst_w[wut_w + j_w] ^= + ((wuf_w + j_w) >= len_w) + ? 0 + : buf_w[wuf_w + j_w]; + } + } + } +} + +/* _test_chop_smol(): test permuations of chop from bloq 0-4 +*/ +static c3_i +_test_chop_smol(c3_c* cap_c, c3_y val_y) +{ + c3_i ret_i = 1; + c3_g met_g; + c3_w fum_w, wid_w, tou_w; + c3_w len_w = 34; // (rsh [0 5] (mul 2 (mul 34 (bex 4)))) + c3_w src_w[len_w]; + c3_w a_w[len_w]; + c3_w b_w[len_w]; + + memset(src_w, val_y, len_w << 2); + + for ( met_g = 0; met_g < 5; met_g++ ) { + for ( fum_w = 0; fum_w <= len_w; fum_w++ ) { + for ( wid_w = 0; wid_w <= len_w; wid_w++ ) { + for ( tou_w = 0; tou_w <= len_w; tou_w++ ) { + memset(a_w, 0, len_w << 2); + memset(b_w, 0, len_w << 2); + u3r_chop_words(met_g, fum_w, wid_w, tou_w, a_w, len_w, src_w); + _test_chop_slow(met_g, fum_w, wid_w, tou_w, b_w, len_w, src_w); + + if ( 0 != memcmp(a_w, b_w, len_w << 2) ) { + c3_g sif_g = 5 - met_g; + c3_w mas_w = (1 << met_g) - 1; + c3_w out_w = tou_w >> sif_g; + c3_w max_w = out_w + !!(fum_w & mas_w) + + (wid_w >> sif_g) + !!(wid_w & mas_w); + + fprintf(stderr, "%s (0x%x): met_g=%u fum_w=%u wid_w=%u tou_w=%u\r\n", + cap_c, val_y, + met_g, fum_w, wid_w, tou_w); + + + fprintf(stderr, "%u-%u: ", out_w, max_w - 1); + for ( ; out_w < max_w; out_w++ ) { + fprintf(stderr, "[0x%x 0x%x] ", a_w[out_w], b_w[out_w]); + } + fprintf(stderr, "\r\n"); + } + } + } + } + } + + return ret_i; +} + +/* _test_chop_huge(): test permuations of chop from bloq 5+ +*/ +static c3_i +_test_chop_huge(c3_c* cap_c, c3_y val_y) +{ + c3_i ret_i = 1; + c3_g met_g; + c3_w fum_w, wid_w, tou_w; + c3_w len_w = 192; // (rsh [0 5] (mul 2 (mul 3 (bex 10)))) + c3_w src_w[len_w]; + c3_w a_w[len_w]; + c3_w b_w[len_w]; + + memset(src_w, val_y, len_w << 2); + + for ( met_g = 5; met_g <= 10; met_g++ ) { + for ( fum_w = 0; fum_w <= 3; fum_w++ ) { + for ( wid_w = 0; wid_w <= 2; wid_w++ ) { + for ( tou_w = 0; tou_w <= 1; tou_w++ ) { + memset(a_w, 0, len_w << 2); + memset(b_w, 0, len_w << 2); + u3r_chop_words(met_g, fum_w, wid_w, tou_w, a_w, len_w, src_w); + _test_chop_slow(met_g, fum_w, wid_w, tou_w, b_w, len_w, src_w); + + if ( 0 != memcmp(a_w, b_w, len_w << 2) ) { + c3_g sif_g = met_g - 5; + c3_w mas_w = (1 << met_g) - 1; + c3_w out_w = tou_w << sif_g; + c3_w max_w = out_w + !!(fum_w & mas_w) + + (wid_w << sif_g) + !!(wid_w & mas_w); + + fprintf(stderr, "%s (0x%x): met_g=%u fum_w=%u wid_w=%u tou_w=%u\r\n", + cap_c, val_y, + met_g, fum_w, wid_w, tou_w); + + + fprintf(stderr, "%u-%u: ", out_w, max_w - 1); + for ( ; out_w < max_w; out_w++ ) { + fprintf(stderr, "[0x%x 0x%x] ", a_w[out_w], b_w[out_w]); + } + fprintf(stderr, "\r\n"); + } + } + } + } + } + + return ret_i; +} + +/* _test_u3r_chop(): bit slice XOR +*/ +static c3_i +_test_chop() +{ + return _test_u3r_chop() + & _test_chop_smol("chop smol zeros", 0x0) + & _test_chop_smol("chop smol ones", 0xff) + & _test_chop_smol("chop smol alt 1", 0xaa) + & _test_chop_smol("chop smol alt 2", 0x55) + & _test_chop_huge("chop huge zeros", 0x0) + & _test_chop_huge("chop huge ones", 0xff) + & _test_chop_huge("chop huge alt 1", 0xaa) + & _test_chop_huge("chop huge alt 2", 0x55); +} + +/* _util_rand_string(): dynamically allocated len_w random string +*/ +static c3_y* +_util_rand_string(c3_w len_w) +{ + c3_c* choice_c = + "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; + c3_w choice_len_w = strlen(choice_c); + + c3_y* out_y = c3_malloc(len_w + 1); + + c3_w i_w; + for (i_w = 0; i_w < len_w; i_w ++){ + out_y[i_w] = choice_c[ (c3_w) rand() % choice_len_w ]; + } + out_y[i_w] = 0; + + return out_y; +} + +/* _test_noun_bits_helper(): +*/ +static void +_test_noun_bits_helper(u3_noun a, int direct_o, + int indirect_o, + int indirect_atom_o, + int cell_o) +{ +#if 0 + printf("=========== %u\n", a); + printf(" 31 bit %u\n", a & ( ((c3_w)1) << 31)); + printf(" 30 bit %u\n", a & ( ((c3_w)1) << 30)); + printf(" dir %x\n", c3y == u3a_is_cat(a)); + printf(" ind %x\n", c3y == u3a_is_dog(a)); + printf(" i cell %x\n", c3y == u3a_is_cell(a)); + printf(" i atom %x\n", c3y == u3a_is_pug(a)); +#endif + + if ( direct_o != (c3y == u3a_is_cat(a)) ) { + printf("*** _test_noun_bits_one() fail: u3a_is_direct\r\n"); + } + + if ( indirect_o != (c3y == u3a_is_dog(a)) ) { + printf("*** fail-2 u3a_is_indirect %d\r\n", c3n == u3a_is_cat(a)); + } + + if ( cell_o != (c3y == u3a_is_cell(a)) ) { + printf("*** fail-4 u3a_is_cell\r\n"); + } + + if ( indirect_atom_o != (c3y == u3a_is_pug(a)) ) { + printf("*** fail-3 u3a_is_indirect_atom\r\n"); + } +} + +/* _test_noun_bits_set(): allocate.h level 1a +*/ +static void +_test_noun_bits_set() +{ + u3_noun a = 1; + + // flip indirect bit on + a |= (1 << 31); + if ( c3n == u3a_is_dog(a) ) { + printf("*** fail-5a turn indirect bit on\r\n"); + } + + if ( c3y == u3a_is_cell(a) ) { + printf("*** fail-5b turn indirect bit on\r\n"); + } + + if ( c3n == u3a_is_pug(a) ) { + printf("*** fail-5c turn indirect bit on\r\n"); + } + + // flip all bits off + a = u3a_to_off(a); + + if ( c3y == u3a_is_dog(a) ) { + printf("*** fail-5d turn indirect bit off\r\n"); + } + + if ( c3y == u3a_is_cell(a) ) { + printf("*** fail-5e turn indirect bit on\r\n"); + } + + if ( c3y == u3a_is_pug(a)) { + printf("*** fail-5f turn indirect bit on\r\n"); + } + + // flip indirect & cell bit on + a = u3a_to_pom(a); + + if ( c3n == u3a_is_dog(a) ) { + printf("*** fail-5g turn indirect bit on\r\n"); + } + + if ( c3n == u3a_is_cell(a) ) { + printf("*** fail-5h turn indirect bit on\r\n"); + } + + if ( c3y == u3a_is_pug(a) ) { + printf("*** fail-5i turn indirect bit on\r\n"); + } +} + +/* _test_noun_bits_read(): allocate.h level 1 +*/ +static void +_test_noun_bits_read() +{ + + u3_noun a = (u3_noun)0x1; // direct atom + u3_noun b = u3a_to_pug(0x2); // indirect atom + u3_noun c = u3a_to_pom(0x3); // indirect cell + + // direct indirect indirect-atom indirect-cell + //---------------------------------------- + _test_noun_bits_helper(a, TRUE, FALSE, FALSE, FALSE); + _test_noun_bits_helper(b, FALSE, TRUE, TRUE, FALSE); + _test_noun_bits_helper(c, FALSE, TRUE, FALSE, TRUE); +} + +/* _test_imprison(): test basic data into / out of nouns +** insert and retrieve bytes with u3i_bytes()/u3r_bytes() +*/ +static void +_test_imprison() +{ + c3_c* input_c = "abcdefghij"; + c3_w out_len_w = 300; + c3_y * output_y = c3_malloc(out_len_w); + u3_noun a; + + // size 1, direct + a = u3i_bytes(1, (c3_y*)input_c); + memset(output_y, 0, out_len_w); + u3r_bytes(0, 1, output_y, a); + if (0 != memcmp(output_y, "a", 1)) { + printf("*** _test_imprison: fail-1\n"); + } + + // size 2, direct + a = u3i_bytes(2, (c3_y*)input_c); + memset(output_y, 0, out_len_w); + u3r_bytes(0, 2, output_y, a); + if (0 != memcmp(output_y, "ab", 2)) { + printf("*** _test_imprison: fail-2\n"); + } + + // size 6, direct (taken from an actual issue) + { + c3_y data_y[] = { 0x1, 0x1f, 0x8e, 0x2d, 0x2c, 0x2f }; + a = u3i_bytes(6, data_y); + memset(output_y, 0, out_len_w); + u3r_bytes(0, 6, output_y, a); + int ret; + ret = memcmp(output_y, data_y, 6); + if (0 != ret) { + printf("*** _test_imprison: fail-2.5 %x\n", ret); + printf(" %x %x %x %x %x %x\n", output_y[0], + output_y[1], + output_y[2], + output_y[3], + output_y[4], + output_y[5]); + } + } + + // size 8, direct + a = u3i_bytes(8, (c3_y*)input_c); + memset(output_y, 0, out_len_w); + u3r_bytes(0, 8, output_y, a); + if (0 != memcmp(output_y, "abcdefgh", 8)) { + printf("*** _test_imprison: fail-3\n"); + } + + // size 10, indirect + a = u3i_bytes(10, (c3_y*)input_c); + memset(output_y, 0, out_len_w); + u3r_bytes(0, 10, output_y, a); + if (0 != memcmp(output_y, "abcdefghij", 10)) { + printf("*** _test_imprison: fail-4\n"); + } + + // size 200, indirect + c3_y * rand_y = _util_rand_string(200); + a = u3i_bytes(200, rand_y); + memset(output_y, 0, out_len_w); + u3r_bytes(0, 200, output_y, a); + if (0 != memcmp(output_y, rand_y, 200)) { + printf("*** _test_imprison: fail-5\n"); + } + + c3_free(rand_y); + c3_free(output_y); +} + +/* _test_cells(): build and inspect cells: u3i_cell(), u3h(), u3t() +*/ +static void +_test_cells() +{ + // very simple cell + { + u3_noun a = (u3_noun) 0x1; + u3_noun b = (u3_noun) 0x2; + u3_noun c = u3i_cell(a, b); + + u3_noun a2 = u3h(c); + if (a2 != a){ + printf("*** _test_cells: fail-1\n"); + } + + u3_noun b2 = u3t(c); + if (b2 != b){ + printf("*** _test_cells: fail-2\n"); + } + } + + // very simple cell with indirect atoms + { + c3_w out_len_w = 200; + c3_y * rand_a = _util_rand_string(out_len_w); + c3_y * rand_b = _util_rand_string(out_len_w); + + u3_noun a = u3i_bytes(200, rand_a); + u3_noun b = u3i_bytes(200, rand_b); + u3_noun c = u3i_cell(a, b); + +#if 0 + printf("a = %x\n", a); + printf("b = %x\n", b); + printf("c = %x\n", c); + printf("a_rand = %s\n", rand_a); + printf("b_rand = %s\n", rand_b); +#endif + + u3_noun a2 = u3h(c); + c3_y * output_y = c3_malloc(out_len_w + 1); + memset(output_y, 0, out_len_w + 1); + u3r_bytes(0, out_len_w, output_y, a); + + if (0 != memcmp(output_y, rand_a, out_len_w)) { + printf("*** _test_imprison: fail-3\n"); + } + + u3_noun b2 = u3h(c); + memset(output_y, 0, out_len_w + 1); + u3r_bytes(0, out_len_w, output_y, b); + + if (0 != memcmp(output_y, rand_b, out_len_w)) { + printf("*** _test_imprison: fail-4\n"); + } + + c3_free(output_y); + c3_free(rand_a); + c3_free(rand_b); + } + + // medium complicated cell + // q + // / \ + // a1 r + // / \ + // b2 s + // / \ + // c3 d4 + { + u3_noun a = (u3_noun) 0x1; + u3_noun b = (u3_noun) 0x2; + u3_noun c = (u3_noun) 0x3; + u3_noun d = (u3_noun) 0x4; + + u3_noun s = u3i_cell(c, d); + u3_noun r = u3i_cell(b, s); + u3_noun q = u3i_cell(a, r); + + u3_noun a2 = u3h(q); + u3_noun r2 = u3t(q); + if (a2 != a){ + printf("*** _test_cells: complicated a\n"); + } + + u3_noun b2 = u3h(r2); + u3_noun s2 = u3t(r2); + if (b2 != b){ + printf("*** _test_cells: complicated b\n"); + } + + + u3_noun c2 = u3h(s2); + u3_noun d2 = u3t(s2); + if (c2 != c){ + printf("*** _test_cells: complicated c\n"); + } + + if (d2 != d){ + printf("*** _test_cells: complicated d\n"); + } + + a2 = 0; + u3r_mean(q, 2, &a2, 0); + if (a2 != a){ + printf("*** _test_cells: complicated (via u3r_mean) a\n"); + } + } + + // trel + { + // q + // / \ + // a ? + // / \ + // b c + + // Produce the triple `[a b c]`. + u3_noun a = (u3_noun) 0x1; + u3_noun b = (u3_noun) 0x2; + u3_noun c = (u3_noun) 0x3; + + u3_noun trel = u3i_trel(a, b, c); + + u3_noun a2 = u3h(trel); + u3_noun b2 = u3h(u3t(trel)); + u3_noun c2 = u3t(u3t(trel)); + + if (a2 != a){ + printf("*** trel: 1 a\n"); + } + if (b2 != b){ + printf("*** trel: 2 a\n"); + } + if (c2 != c){ + printf("*** trel: 3 a\n"); + } + } + + // qual + { + // q + // / \ + // a ? + // / \ + // b ? + // / \ + // c d + // + + // Produce the triple `[a b c]`. + u3_noun a = (u3_noun) 0x1; + u3_noun b = (u3_noun) 0x2; + u3_noun c = (u3_noun) 0x3; + u3_noun d = (u3_noun) 0x4; + + u3_noun qual = u3i_qual(a, b, c, d); + + u3_noun a2 = u3h(qual); + u3_noun b2 = u3h(u3t(qual)); + u3_noun c2 = u3h(u3t(u3t(qual))); + u3_noun d2 = u3t(u3t(u3t(qual))); + + if (a2 != a){ + printf("*** qual: 1 \n"); + } + if (b2 != b){ + printf("*** qual: 2 \n"); + } + if (c2 != c){ + printf("*** qual: 3 \n"); + } + if (d2 != d){ + printf("*** qual: 4 \n"); + } + } +} + +/* _test_cells_complex(): build cells with more complex methods +*/ +static void +_test_cells_complex() +{ + // trel + { + // q + // / \ + // a ? + // / \ + // b c + + // Produce the triple `[a b c]`. + u3_noun a = (u3_noun) 0x1; + u3_noun b = (u3_noun) 0x2; + u3_noun c = (u3_noun) 0x3; + + u3_noun q = u3i_trel(a, b, c); + + u3_noun a2 = 0; + u3_noun b2 = 0; + u3_noun c2 = 0; + + u3x_trel(q, &a2, &b2, &c2); + + if (a2 != a){ + printf("*** _test_cells_complex: trel() 1 a\n"); + } + if (b2 != b){ + printf("*** _test_cells_complex: trel() 2 a\n"); + } + if (c2 != c){ + printf("*** _test_cells_complex: trel() 3 a\n"); + } + } + + // qual + { + // q + // / \ + // a ? + // / \ + // b z + // / \ + // c d + + // Produce the qual `[a b c d]`. + u3_noun a = (u3_noun) 0x1; + u3_noun b = (u3_noun) 0x2; + u3_noun c = (u3_noun) 0x3; + u3_noun d = (u3_noun) 0x4; + + u3_noun z = u3i_cell(c, d); + u3_noun q = u3i_trel(a, b, z); + + u3_noun a2 = 0; + u3_noun b2 = 0; + u3_noun c2 = 0; + u3_noun d2 = 0; + + u3x_qual(q, &a2, &b2, &c2, &d2); + + if (a2 != a){ + printf("*** _test_cells_complex: qual() a\n"); + } + if (b2 != b){ + printf("*** _test_cells_complex: qual() b\n"); + } + if (c2 != c){ + printf("*** _test_cells_complex: qual() c\n"); + } + if (d2 != d){ + printf("*** _test_cells_complex: qual() d\n"); + } + } + + // quil + { + // q + // / \ + // a ? + // / \ + // b z + // / \ + // c ? + // / \ + // d e + + // Produce `[a b c d e]`. + u3_noun a = (u3_noun) 0x1; + u3_noun b = (u3_noun) 0x2; + u3_noun c = (u3_noun) 0x3; + u3_noun d = (u3_noun) 0x4; + u3_noun e = (u3_noun) 0x5; + + u3_noun z = u3i_trel(c, d, e); + u3_noun q = u3i_trel(a, b, z); + + u3_noun a2 = 0; + u3_noun b2 = 0; + u3_noun c2 = 0; + u3_noun d2 = 0; + u3_noun e2 = 0; + + u3x_quil(q, &a2, &b2, &c2, &d2, &e2); + + if (a2 != a){ + printf("*** _test_cells_complex: quil() a\n"); + } + if (b2 != b){ + printf("*** _test_cells_complex: quil() b\n"); + } + if (c2 != c){ + printf("*** _test_cells_complex: quil() c\n"); + } + if (d2 != d){ + printf("*** _test_cells_complex: quil() d\n"); + } + if (e2 != e){ + printf("*** _test_cells_complex: quil() e\n"); + } + } + + // hext + { + // q + // / \ + // a ? + // / \ + // b z + // / \ + // c ? + // / \ + // d . + // / \ + // e f + // + // Produce `[a b c d e f]`. + u3_noun a = (u3_noun) 0x1; + u3_noun b = (u3_noun) 0x2; + u3_noun c = (u3_noun) 0x3; + u3_noun d = (u3_noun) 0x4; + u3_noun e = (u3_noun) 0x5; + u3_noun f = (u3_noun) 0x6; + + u3_noun z = u3i_trel(d, e, f); + u3_noun q = u3i_qual(a, b, c, z); + + u3_noun a2 = 0; + u3_noun b2 = 0; + u3_noun c2 = 0; + u3_noun d2 = 0; + u3_noun e2 = 0; + u3_noun f2 = 0; + + u3x_hext(q, &a2, &b2, &c2, &d2, &e2, &f2); + + if (a2 != a){ + printf("*** _test_cells_complex: hext() a\n"); + } + if (b2 != b){ + printf("*** _test_cells_complex: hext() b\n"); + } + if (c2 != c){ + printf("*** _test_cells_complex: hext() c\n"); + } + if (d2 != d){ + printf("*** _test_cells_complex: hext() d\n"); + } + if (e2 != e){ + printf("*** _test_cells_complex: hext() e - e2 = %i\n", e2); + } + if (f2 != f){ + printf("*** _test_cells_complex: hext() f - f2 = %i\n", f2); + } + } +} + +/* _test_imprison_complex(): more complicated into/out-of nouns +*/ +static void +_test_imprison_complex() +{ + // vint + { + u3_noun a = 1; + + u3_noun b= u3i_vint(a); + if (2 != b){ + printf("*** vint 1\n"); + } + + u3_noun c = u3i_vint(b); + if (3 != c){ + printf("*** vint 2\n"); + } + + // XX disabled, 64-bit + // +#if 0 + { + c3_d d = 1ULL << 50; + a = u3i_chubs(1, &d); + b = u3i_vint(a); + + if ((a + 1) != b){ + printf("*** vint 3\n"); + } + } +#endif + } + + // bytes + { + c3_y in_y[10] = { 10, 20, 0xff}; + u3_noun a = u3i_bytes(3, in_y); + + c3_w out_a = u3r_byte(0, a); + if (10 != out_a ){ + printf("*** u3r_byte 1\n"); + } + + c3_w out_b = u3r_byte(1, a); + if (20 != out_b ){ + printf("*** u3r_byte 2\n"); + } + + c3_w out_c = u3r_byte(2, a); + if (0xff != out_c ){ + printf("*** u3r_byte 3\n"); + } + + c3_y out_y[10]; + memset(out_y, 0, 10 * sizeof(c3_y)); + u3r_bytes(0, 3, out_y, a); + + if (10 != out_y[0] || + 20 != out_y[1] || + 0xff != out_y[2] || + 0 != out_y[3] + ){ + printf("*** u3r_byte 4\n"); + } + } + + // words + { + c3_w in_w[10] = {10, 20, 0xffffffff}; + u3_noun noun = u3i_words(3, in_w); + + + c3_w out_a = u3r_word(0, noun); + if (10 != out_a ){ + printf("*** u3r_word 1\n"); + } + + c3_w out_b = u3r_word(1, noun); + if (20 != out_b ){ + printf("*** u3r_word 2\n"); + } + + c3_w out_c = u3r_word(2, noun); + if (0xffffffff != out_c ){ + printf("*** u3r_word 3\n"); + } + + c3_w out_w[10]; + memset(out_w, 0, 10 * sizeof(c3_w)); + u3r_words(0, 3, out_w, noun); + + if (10 != out_w[0] || + 20 != out_w[1] || + 0xffffffff != out_w[2] || + 0 != out_w[3] + ){ + printf("*** u3r_word 4\n"); + } + } + + // chubs + { + c3_d in_d[10] = {1, 2, 0xffffffffffffffffULL}; + + c3_d out_d[10]; + + u3_noun a = u3i_chubs(1, & in_d[0]); + memset(out_d, 0, sizeof(c3_d) * 10); + u3r_chubs(0, 1, out_d, a); + if (1 != out_d[0] ){ + printf("*** u3r_chubs 1\n"); + } + + + u3_noun b = u3i_chubs(1, & in_d[1]); + memset(out_d, 0, sizeof(c3_d) * 10); + u3r_chubs(0, 1, out_d, b); + if (2 != out_d[0] ){ + printf("*** u3r_chubs 2\n"); + } + + u3_noun c = u3i_chubs(1, & in_d[2]); + memset(out_d, 0, sizeof(c3_d) * 10); + u3r_chubs(0, 1, out_d, c); + if (0xffffffffffffffffULL != out_d[0] ){ + printf("*** u3r_chubs 3\n"); + } + + u3_noun d = u3i_chubs(3, in_d); + memset(out_d, 0, sizeof(c3_d) * 10); + u3r_chubs(0, 3, out_d, d); + if (1 != out_d[0] ){ + printf("*** u3r_chubs 4-a\n"); + } + if (2 != out_d[1] ){ + printf("*** u3r_chubs 4-b\n"); + } + if (0xffffffffffffffffULL != out_d[2] ){ + printf("*** u3r_chubs 4-c\n"); + } + } + + // string + { + c3_c * in_c = "a"; + u3_noun noun = u3i_string(in_c); + c3_c* out_c = u3r_string(noun); + + if (0 != strcmp(in_c, out_c)){ + printf("*** u3r_string: in '%s'; out '%s'\n", in_c, out_c); + } + + c3_free(out_c); + in_c = "ab"; + noun = u3i_string(in_c); + out_c = u3r_string(noun); + + if (0 != strcmp(in_c, out_c)){ + printf("*** u3r_string: in '%s'; out '%s'\n", in_c, out_c); + } + + c3_free(out_c); + in_c = "abcd"; + noun = u3i_string(in_c); + out_c = u3r_string(noun); + + if (0 != strcmp(in_c, out_c)){ + printf("*** u3r_string: in '%s'; out '%s'\n", in_c, out_c); + } + + c3_free(out_c); + in_c = "this is a test"; + noun = u3i_string(in_c); + out_c = u3r_string(noun); + + if (0 != strcmp(in_c, out_c)){ + printf("*** u3r_string: in '%s'; out '%s'\n", in_c, out_c); + } + + c3_free(out_c); + } + + // tape + { + c3_c* in_c = "this is a test"; + u3_noun noun = u3i_tape(in_c); + + c3_y* out_y = u3r_tape(noun); + + if (0 != memcmp(in_c, out_y, strlen(in_c))){ + printf("*** u3r_tape 1\n"); + } + + c3_free(out_y); + + // tape stores each byte in the string as one atom in the tree + u3_noun lent = u3qb_lent(noun); + if ( (c3_w)lent != strlen(in_c) ){ + printf("*** u3r_tape 2\n"); + } + } + + // edit + { + + // q + // / \ + // a1 r + // / \ + // b2 s + // / \ + // c3 d4 + + u3_noun a = (u3_noun) 0x1; + u3_noun b = (u3_noun) 0x2; + u3_noun c = (u3_noun) 0x3; + u3_noun d = (u3_noun) 0x4; + + u3_noun s = u3i_cell(c, d); + u3_noun r = u3i_cell(b, s); + u3_noun q = u3i_cell(a, r); + + u3_noun axis = 2; + u3_noun newval = 99; + u3_noun hacked = u3i_edit(q, axis, newval); + + u3_noun read_1; + u3r_mean(hacked, axis, &read_1, 0); + + if (newval != read_1){ + printf("*** u3i_edit 1\n"); + } + } + + // molt + { + + // q + // / \ + // a1 r + // / \ + // b2 s + // / \ + // c3 d4 + + u3_noun a = (u3_noun) 0x1; + u3_noun b = (u3_noun) 0x2; + u3_noun c = (u3_noun) 0x3; + u3_noun d = (u3_noun) 0x4; + + u3_noun s = u3i_cell(c, d); + u3_noun r = u3i_cell(b, s); + u3_noun q = u3i_cell(a, r); + + u3_noun axis_1 = 2; + u3_noun newval_1 = 99; + + u3_noun axis_2 = 6; + u3_noun newval_2 = 777; + + u3_noun hacked = u3i_molt(q, axis_1, newval_1, axis_2, newval_2, 0); + + u3_noun read_1; + u3_noun read_2; + u3r_mean(hacked, axis_1, &read_1, axis_2, &read_2, 0); + + if (newval_1 != read_1){ + printf("*** u3i_molt 1\n"); + } + + if (newval_2 != read_2){ + printf("*** u3i_molt 2\n"); + } + } +} + +/* _test_sing(): Yes iff (a) and (b) are the same noun. +*/ +static void +_test_sing() +{ + // direct noun + // + { + u3_noun a = (u3_noun) 0x1; + u3_noun b = (u3_noun) 0x1; + u3_noun c = (u3_noun) 0x2; + + if (c3y != u3r_sing(a, a)) { + printf("*** sing direct: 1 \n"); + } + + if (c3y != u3r_sing(a, b)) { + printf("*** sing direct: 2 \n"); + } + + if (c3n != u3r_sing(a, c)) { + printf("*** sing direct: 3 \n"); + } + } + + // indirect + // + { + c3_c* in_alpha_c = "abcdefghijklmnopqrstuvwxyz"; + c3_c* in_numer_c = "0123456789001234567890"; + + + u3_noun a = u3i_string(in_alpha_c); + u3_noun b = u3i_string(in_alpha_c); + u3_noun c = u3i_string(in_numer_c); + + if (c3y != u3r_sing(a, a)) { + printf("*** sing indirect: 1 \n"); + } + + if (c3y != u3r_sing(a, b)) { + printf("*** sing indirect: 2 \n"); + } + + if (c3n != u3r_sing(a, c)) { + printf("*** sing indirect: \n"); + } + } +} + +/* _test_fing(): yes same copy of the same noun (ie, pointer equality) +*/ +static void +_test_fing() +{ + // direct noun + // + { + u3_noun a = (u3_noun) 0x1; + u3_noun b = (u3_noun) 0x1; + u3_noun c = (u3_noun) 0x2; + + if (c3y != u3r_fing(a, a)) { + printf("*** fing direct: 1 \n"); + } + + if (c3y != u3r_fing(a, b)) { + printf("*** fing direct: 2 \n"); + } + + if (c3n != u3r_fing(a, c)) { + printf("*** fing direct: 3 \n"); + } + } + + // indirect + // + { + c3_c* in_alpha_c = "abcdefghijklmnopqrstuvwxyz"; + c3_c* in_numer_c = "0123456789001234567890"; + + + u3_noun a = u3i_string(in_alpha_c); + u3_noun b = u3i_string(in_alpha_c); + u3_noun c = u3i_string(in_numer_c); + + if (c3y != u3r_fing(a, a)) { + printf("*** fing indirect: 1 \n"); + } + + if (c3n != u3r_fing(a, b)) { + printf("*** fing indirect: 2 \n"); + } + + if (c3n != u3r_fing(a, c)) { + printf("*** fing indirect: \n"); + } + } +} + +/* _test_met(): 'met' = measure / take size +*/ +static void +_test_met() +{ + c3_w ret_w; + u3_atom atom; + + // 1 + { + atom = 1; + + ret_w = u3r_met(0, atom); + if (1 != ret_w){ + printf("*** _test_met bit of 1 = %d \n", ret_w); + } + + ret_w = u3r_met(3, atom); + if (1 != ret_w){ + printf("*** _test_met byte of 1 = %d \n", ret_w); + } + + ret_w = u3r_met(4, atom); + if (1 != ret_w){ + printf("*** _test_met _w of 1 = %d \n", ret_w); + } + + ret_w = u3r_met(5, atom); + if (1 != ret_w){ + printf("*** _test_met _d of 1 = %d \n", ret_w); + } + } + + // 2 = 0b10 + { + atom = 2; + + ret_w = u3r_met(0, atom); + if (2 != ret_w){ + printf("*** _test_met bit of 1 = %d \n", ret_w); + } + + ret_w = u3r_met(3, atom); + if (1 != ret_w){ + printf("*** _test_met byte of 1 = %d \n", ret_w); + } + + ret_w = u3r_met(5, atom); + if (1 != ret_w){ + printf("*** _test_met _w of 1 = %d \n", ret_w); + } + + ret_w = u3r_met(6, atom); + if (1 != ret_w){ + printf("*** _test_met _d of 1 = %d \n", ret_w); + } + } + + // 8=0b1000 + { + atom = 8; + + ret_w = u3r_met(0, atom); + if (4 != ret_w){ + printf("*** _test_met bit of 1 = %d \n", ret_w); + } + + ret_w = u3r_met(3, atom); + if (1 != ret_w){ + printf("*** _test_met byte of 1 = %d \n", ret_w); + } + + ret_w = u3r_met(5, atom); + if (1 != ret_w){ + printf("*** _test_met _w of 1 = %d \n", ret_w); + } + + ret_w = u3r_met(6, atom); + if (1 != ret_w){ + printf("*** _test_met _d of 1 = %d \n", ret_w); + } + } + + // 0xff = 255 =0b 1111 1111 + { + atom = 0xff; + + ret_w = u3r_met(0, atom); + if (8 != ret_w){ + printf("*** _test_met bit of 1 = %d \n", ret_w); + } + + ret_w = u3r_met(3, atom); + if (1 != ret_w){ + printf("*** _test_met byte of 1 = %d \n", ret_w); + } + + ret_w = u3r_met(5, atom); + if (1 != ret_w){ + printf("*** _test_met _w of 1 = %d \n", ret_w); + } + + ret_w = u3r_met(6, atom); + if (1 != ret_w){ + printf("*** _test_met _d of 1 = %d \n", ret_w); + } + } + + // 0x100 = 256 =0b 0001 1111 1111 + { + atom = 0x100; + + ret_w = u3r_met(0, atom); + if (9 != ret_w){ + printf("*** _test_met bit of 1 = %d \n", ret_w); + } + + ret_w = u3r_met(3, atom); + if (2 != ret_w){ + printf("*** _test_met byte of 1 = %d \n", ret_w); + } + + ret_w = u3r_met(5, atom); + if (1 != ret_w){ + printf("*** _test_met _w of 1 = %d \n", ret_w); + } + + ret_w = u3r_met(6, atom); + if (1 != ret_w){ + printf("*** _test_met _d of 1 = %d \n", ret_w); + } + } + + // XX disabled, 64-bit + // +#if 0 + // 32 bit direct + // 0x ff ff ff ff + { + atom = 0xffffffffULL; + + ret_w = u3r_met(0, atom); + if (32 != ret_w){ + printf("*** _test_met bit of 1 = %d \n", ret_w); + } + + ret_w = u3r_met(3, atom); + if (4 != ret_w){ + printf("*** _test_met byte of 1 = %d \n", ret_w); + } + + ret_w = u3r_met(5, atom); + if (1 != ret_w){ + printf("*** _test_met _w of 1 = %d \n", ret_w); + } + + ret_w = u3r_met(6, atom); + if (1 != ret_w){ + printf("*** _test_met _d of 1 = %d \n", ret_w); + } + } +#endif + + // 4 words x 32 bits each = 128 bits = 16 bytes = 4 words = 2 doubles + // + { + c3_w data_w[4] = { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }; + atom = u3i_words(4, data_w); + + ret_w = u3r_met(0, atom); + if (128 != ret_w){ + printf("*** _test_met bit of 1 = %d \n", ret_w); + } + + ret_w = u3r_met(3, atom); + if (16 != ret_w){ + printf("*** _test_met byte of 1 = %d \n", ret_w); + } + + ret_w = u3r_met(5, atom); + if (4 != ret_w){ + printf("*** _test_met _w of 1 = %d \n", ret_w); + } + + ret_w = u3r_met(6, atom); + if (2 != ret_w){ + printf("*** _test_met _d of 1 = %d \n", ret_w); + } + } + + // 4 words (top word is '1' ) + // + { + c3_w data_w[4] = { 0xffffffff, 0xffffffff, 0xffffffff, 1 }; + atom = u3i_words(4, data_w); + + ret_w = u3r_met(0, atom); + if (97 != ret_w){ + printf("*** _test_met bit of 1 = %d \n", ret_w); + } + + ret_w = u3r_met(3, atom); + if (13 != ret_w){ + printf("*** _test_met byte of 1 = %d \n", ret_w); + } + + ret_w = u3r_met(5, atom); + if (4 != ret_w){ + printf("*** _test_met _w of 1 = %d \n", ret_w); + } + + ret_w = u3r_met(6, atom); + if (2 != ret_w){ + printf("*** _test_met _d of 1 = %d \n", ret_w); + } + } +} + +/* _test_u3r_at(): inspect cells at arbitrary axis locations +** [ and utility function u3x_dep() ] +*/ +static void +_test_u3r_at() +{ + c3_w a_w = u3x_dep(0); + + if (0xffffffff != a_w) { printf("*** u3x_dep() \n"); } + + a_w = u3x_dep(1); + if (0 != a_w) { printf("*** u3x_dep() \n"); } + + a_w = u3x_dep(0b10); + if (1 != a_w) { printf("*** u3x_dep() \n"); } + + a_w = u3x_dep(0b11); + if (1 != a_w) { printf("*** u3x_dep() \n"); } + + a_w = u3x_dep(0b100); + if (2 != a_w) { printf("*** u3x_dep() \n"); } + + a_w = u3x_dep(0b110); + if (2 != a_w) { printf("*** u3x_dep() \n"); } + + a_w = u3x_dep(0b111); + if (2 != a_w) { printf("*** u3x_dep() \n"); } + + a_w = u3x_dep( ((c3_w) (((c3_d) 1 << 32) - 1)) ); + if (31 != a_w) { printf("*** u3x_dep() \n"); } + + + // XX disabled, 64-bit + // +#if 0 + a_w = u3x_dep_d(0); + a_w = u3x_dep_d(1); + a_w = u3x_dep_d(0b10); + a_w = u3x_dep_d(0b11); + a_w = u3x_dep_d(0b100); + a_w = u3x_dep_d( ((c3_w) (((c3_d) 1 << 32) - 1)) ); + a_w = u3x_dep_d( ((c3_w) (((c3_d) 1 << 33) - 1)) ); + a_w = u3x_dep_d( ((c3_d) (((c3_d) 1 << 64) - 1)) ); +#endif + + u3_weak ret; + + // addr 1 in atom == atom value + u3_noun tree = 1; + ret = u3r_at( 1, tree); + if (1 != ret) { printf("*** u3r_at()\n"); } + + // addr 1 in atom == atom value + tree = 2; + ret = u3r_at( 1, tree); + if (2 != ret) { printf("*** u3r_at \n"); } + + // illegal + ret = u3r_at( 2, tree); + if (u3_none != ret) { printf("*** u3r_at \n"); } + + + // simple tree [ 1 2] + tree = u3i_cell(10, 20); + ret = u3r_at( 1, tree); + if (tree != ret) { printf("*** u3r_at \n"); } + + ret = u3r_at( 2, tree); + if (10 != ret) { printf("*** u3r_at \n"); } + ret = u3r_at( 3, tree); + if (20 != ret) { printf("*** u3r_at \n"); } + + // simple tree [ 1 ] + c3_w in_w[10] = {10, 20, 0xffffffff}; + u3_noun bignum = u3i_words(3, in_w); + + tree = u3i_cell(99, bignum); + ret = u3r_at( 2, tree); + if (99 != ret) { printf("*** u3r_at \n"); } + ret = u3r_at( 3, tree); + if (bignum != ret) { printf("*** u3r_at \n"); } +} + +// XX disabled, static functions +// +#if 0 +void _n_push(c3_ys mov, c3_ys off, u3_noun a); +u3_noun * _n_peek(c3_ys off); +u3_noun* _n_peet(c3_ys mov, c3_ys off); +void _n_pop(c3_ys mov); +u3_noun _n_pep(c3_ys mov, c3_ys off); +void _n_toss(c3_ys mov, c3_ys off); +u3_noun* _n_swap(c3_ys mov, c3_ys off); + +/* _test_nvm_stack_inner(): +*/ +void +_test_nvm_stack_inner(c3_ys mov, c3_ys off) +{ + u3_noun * peek; + + // push 1, peek, pop + if(1) { + _n_push(mov, off, 0x1122334455667788); + peek = _n_peek(off); + if (0x1122334455667788 != *peek) { printf("*** test_nvm_stack 1\n"); } + _n_pop(mov); + } + + // push 2, peek, pop, peek, pop + if(1) { + _n_push(mov, off, 88); + _n_push(mov, off, 99); + peek = _n_peek(off); + if (99 != *peek) { printf("*** test_nvm_stack 2\n"); } + _n_pop(mov); + peek = _n_peek(off); + if (88 != *peek) { printf("*** test_nvm_stack 3\n"); } + _n_pop(mov); + } + + // 100 x (push, peek, pop) + { + int ii; + for (ii=0; ii <= 100; ii++){ + _n_push(mov, off, (u3_noun) ii); + } + for (ii=100; ii >= 0; ii--){ + peek = _n_peek(off); + if (ii != *peek) { printf("*** test_nvm_stack 4\n"); } + _n_pop(mov); + } + } + + // peet() + { + _n_push(mov, off, 333); + _n_push(mov, off, 444); + + peek = _n_peet(mov, off); + if (333 != *peek) { printf("*** test_nvm_stack 5\n"); } + + _n_push(mov, off, 555); + peek = _n_peet(mov, off); + if (444 != *peek) { printf("*** test_nvm_stack 6\n"); } + } + + // pep() + { + _n_push(mov, off, 777); + u3_noun ret = _n_pep(mov, off); + if (777 != ret) { printf("*** test_nvm_stack 7\n"); } + + + _n_push(mov, off, 777); + _n_push(mov, off, 888); + ret = _n_pep(mov, off); + if (888 != ret) { printf("*** test_nvm_stack 8\n"); } + ret = _n_pep(mov, off); + if (777 != ret) { printf("*** test_nvm_stack 9\n"); } + + } + + // toss + { + _n_push(mov, off, 2777); + _n_push(mov, off, 3888); + _n_toss(mov, off); + u3_noun ret = _n_pep(mov, off); + if (2777 != ret) { printf("*** test_nvm_stack 10\n"); } + + } + + // swap + { + _n_push(mov, off, 2002); + _n_push(mov, off, 3003); + _n_swap(mov, off); + u3_noun ret = _n_pep(mov, off); + if (2002 != ret) { printf("*** test_nvm_stack 11\n"); } + ret = _n_pep(mov, off); + if (3003 != ret) { printf("*** test_nvm_stack 12\n"); } + + } +} + +/* _test_nvm_stack_south(): test the stack usage in an inner, south road +*/ +u3_noun +_test_nvm_stack_south(u3_noun arg) +{ + c3_ys mov = 2; + c3_ys off = -2; + + _test_nvm_stack_inner(mov, off); + + return u3_nul; +} +#endif + +/* _test_nvm_stack(): test the stack usage of the bytecode interpreter +** (growing in both directions: N and S) +*/ +static void +_test_nvm_stack() +{ + // XX disabled, static functions + // XX rewrite to use u3a_push/u3a_pop? + // +#if 0 + // north road + c3_ys mov = -2; + c3_ys off = 0; + _test_nvm_stack_inner(mov, off); + + // south road + u3m_soft(100, &_test_nvm_stack_south, 0); +#endif +} + +static c3_i +_test_noun(void) +{ + c3_i ret_i = 1; + + if ( !_test_chop() ) { + fprintf(stderr, "test noun: chop failed\r\n"); + ret_i = 0; + } + + return ret_i; +} + +/* main(): run all test cases. +*/ +int +main(int argc, char* argv[]) +{ + _setup(); + + if ( !_test_noun() ) { + fprintf(stderr, "test noun: failed\r\n"); + exit(1); + } + + // GC + // + u3m_grab(u3_none); + + // XX the following tests leak memory + // fix and move to _test_noun() + // + _test_noun_bits_set(); + _test_noun_bits_read(); + _test_imprison(); + _test_imprison_complex(); + _test_sing(); + _test_fing(); + _test_met(); + _test_cells(); + _test_cells_complex(); + _test_u3r_at(); + _test_nvm_stack(); + + fprintf(stderr, "test_noun: ok\n"); + + return 0; +} diff --git a/vere/pkg/vere/pier.c b/vere/pkg/vere/pier.c new file mode 100644 index 0000000..10b9bae --- /dev/null +++ b/vere/pkg/vere/pier.c @@ -0,0 +1,2747 @@ +/// @file + +#include "db/lmdb.h" +#include "ent/ent.h" +#include "noun.h" +#include "pace.h" +#include "vere.h" +#include "version.h" +#include "curl/curl.h" + +#define PIER_READ_BATCH 1000ULL +#define PIER_PLAY_BATCH 500ULL +#define PIER_WORK_BATCH 10ULL + +#undef VERBOSE_PIER + +/* _pier_peek_plan(): add a u3_pico to the peek queue +*/ +static void +_pier_peek_plan(u3_pier* pir_u, u3_pico* pic_u) +{ + if (!pir_u->pec_u.ent_u) { + u3_assert( !pir_u->pec_u.ext_u ); + pir_u->pec_u.ent_u = pir_u->pec_u.ext_u = pic_u; + } + else { + pir_u->pec_u.ent_u->nex_u = pic_u; + pir_u->pec_u.ent_u = pic_u; + } + + u3_pier_spin(pir_u); +} + +/* _pier_peek_next(): pop u3_pico off of peek queue +*/ +static u3_pico* +_pier_peek_next(u3_pier* pir_u) +{ + u3_pico* pic_u = pir_u->pec_u.ext_u; + + if (pic_u) { + pir_u->pec_u.ext_u = pic_u->nex_u; + if (!pir_u->pec_u.ext_u) { + pir_u->pec_u.ent_u = 0; + } + + pic_u->nex_u = 0; + } + + return pic_u; +} + +/* _pier_work_send(): send new events for processing +*/ +static void +_pier_work_send(u3_work* wok_u) +{ + u3_auto* car_u = wok_u->car_u; + u3_pier* pir_u = wok_u->pir_u; + u3_lord* god_u = pir_u->god_u; + c3_w len_w = 0; + + // calculate work batch size + { + u3_wall* wal_u = wok_u->wal_u; + + if ( !wal_u ) { + // XX work depth, or full lord send-stack depth? + // + if ( PIER_WORK_BATCH > god_u->dep_w ) { + len_w = PIER_WORK_BATCH - god_u->dep_w; + } + } + else { + c3_d sen_d = god_u->eve_d + god_u->dep_w; + if ( wal_u->eve_d > sen_d ) { + len_w = wal_u->eve_d - sen_d; + } + } + } + + // send batch + // + { + u3_ovum* egg_u; + u3_pico* pic_u; + u3_noun ovo, now, bit = u3qc_bex(48); + + { + struct timeval tim_tv; + gettimeofday(&tim_tv, 0); + now = u3_time_in_tv(&tim_tv); + } + + while ( len_w && car_u && (egg_u = u3_auto_next(car_u, &ovo)) ) { + len_w--; + u3_lord_work(god_u, egg_u, u3nc(u3k(now), ovo)); + now = u3ka_add(now, u3k(bit)); + + // queue events depth first + // + car_u = egg_u->car_u; + + // interleave scry requests + // + if ( len_w && (pic_u = _pier_peek_next(pir_u)) ) + { + len_w--; + u3_lord_peek(god_u, pic_u); + u3_pico_free(pic_u); + } + } + + // if there's room left in the batch, fill it up with remaining scries + // + while ( len_w-- && (pic_u = _pier_peek_next(pir_u)) ) + { + u3_lord_peek(god_u, pic_u); + u3_pico_free(pic_u); + } + + u3z(now); u3z(bit); + } +} + +/* _pier_gift_plan(): enqueue effects. +*/ +static void +_pier_gift_plan(u3_work* wok_u, u3_gift* gif_u) +{ + u3_assert( gif_u->eve_d > wok_u->fec_u.rel_d ); + +#ifdef VERBOSE_PIER + fprintf(stderr, "pier: (%" PRIu64 "): compute: complete\r\n", gif_u->eve_d); +#endif + + gif_u->nex_u = 0; + + if ( !wok_u->fec_u.ent_u ) { + u3_assert( !wok_u->fec_u.ext_u ); + wok_u->fec_u.ent_u = wok_u->fec_u.ext_u = gif_u; + } + else { + wok_u->fec_u.ent_u->nex_u = gif_u; + wok_u->fec_u.ent_u = gif_u; + } +} + +/* _pier_gift_next(): dequeue effect. +*/ +static u3_gift* +_pier_gift_next(u3_work* wok_u) +{ + u3_pier* pir_u = wok_u->pir_u; + u3_disk* log_u = pir_u->log_u; + u3_gift* gif_u = wok_u->fec_u.ext_u; + + if ( !gif_u || (gif_u->eve_d > log_u->dun_d) ) { + return 0; + } + else { + wok_u->fec_u.ext_u = gif_u->nex_u; + + if ( !wok_u->fec_u.ext_u ) { + wok_u->fec_u.ent_u = 0; + } + + u3_assert( (1ULL + wok_u->fec_u.rel_d) == gif_u->eve_d ); + wok_u->fec_u.rel_d = gif_u->eve_d; + + return gif_u; + } +} + +/* _pier_gift_kick(): apply effects. +*/ +static void +_pier_gift_kick(u3_work* wok_u) +{ + u3_gift* gif_u; + + while ( (gif_u = _pier_gift_next(wok_u)) ) { +#ifdef VERBOSE_PIER + fprintf(stderr, "pier: (%" PRIu64 "): compute: release\r\n", gif_u->eve_d); +#endif + + u3_auto_kick(wok_u->car_u, gif_u->act); + u3_gift_free(gif_u); + } +} + +/* _pier_wall_plan(): enqueue a barrier. +*/ +static void +_pier_wall_plan(u3_pier* pir_u, c3_d eve_d, + void* ptr_v, void (*wal_f)(void*, c3_d)) +{ + u3_assert( u3_psat_work == pir_u->sat_e ); + + u3_wall* wal_u = c3_malloc(sizeof(*wal_u)); + wal_u->ptr_v = ptr_v; + wal_u->eve_d = eve_d; + wal_u->wal_f = wal_f; + + // insert into [pir_u->wal_u], preserving stable sort by [eve_d] + // + { + u3_wall** las_u = &pir_u->wok_u->wal_u; + + while ( *las_u && (eve_d <= (*las_u)->eve_d) ) { + las_u = &(*las_u)->nex_u; + } + + wal_u->nex_u = *las_u; + *las_u = wal_u; + } +} + +/* _pier_wall(): process a barrier if possible. +*/ +static void +_pier_wall(u3_work* wok_u) +{ + u3_lord* god_u = wok_u->pir_u->god_u; + u3_disk* log_u = wok_u->pir_u->log_u; + + if ( god_u->eve_d == log_u->dun_d ) { + u3_wall* wal_u; + + while ( (wal_u = wok_u->wal_u) + && !god_u->dep_w + && (wal_u->eve_d <= god_u->eve_d) ) + { + wok_u->wal_u = wal_u->nex_u; + wal_u->wal_f(wal_u->ptr_v, god_u->eve_d); + c3_free(wal_u); + } + } +} + +/* _pier_work(): advance event processing. +*/ +static void +_pier_work(u3_work* wok_u) +{ + u3_pier* pir_u = wok_u->pir_u; + + if ( c3n == pir_u->liv_o ) { + pir_u->liv_o = u3_auto_live(wok_u->car_u); + + // all i/o drivers are fully initialized + // + if ( c3y == pir_u->liv_o ) { + // XX this is when "boot" is actually complete + // XX even better would be after neighboring with our sponsor + // + u3l_log("pier (%" PRIu64 "): live", pir_u->god_u->eve_d); + + // XX move callbacking to king + // + if ( u3_Host.bot_f ) { + u3_Host.bot_f(); + } + } + } + + _pier_gift_kick(wok_u); + _pier_wall(wok_u); + + if ( u3_psat_work == pir_u->sat_e ) { + _pier_work_send(wok_u); + } + else { + u3_assert( u3_psat_done == pir_u->sat_e ); + } +} + +/* _pier_on_lord_work_spin(): start spinner +*/ +static void +_pier_on_lord_work_spin(void* ptr_v, u3_atom pin, c3_o del_o) +{ + u3_pier* pir_u = ptr_v; + + u3_assert( (u3_psat_wyrd == pir_u->sat_e) + || (u3_psat_work == pir_u->sat_e) + || (u3_psat_done == pir_u->sat_e) ); + + u3_term_start_spinner(pin, del_o); +} + +/* _pier_on_lord_work_spun(): stop spinner +*/ +static void +_pier_on_lord_work_spun(void* ptr_v) +{ + u3_pier* pir_u = ptr_v; + + u3_assert( (u3_psat_wyrd == pir_u->sat_e) + || (u3_psat_work == pir_u->sat_e) + || (u3_psat_done == pir_u->sat_e) ); + + u3_term_stop_spinner(); +} + +/* _pier_on_lord_work_done(): event completion from worker. +*/ +static void +_pier_on_lord_work_done(void* ptr_v, + u3_ovum* egg_u, + u3_fact* tac_u, + u3_gift* gif_u) +{ + u3_pier* pir_u = ptr_v; + + u3_assert( (u3_psat_work == pir_u->sat_e) + || (u3_psat_done == pir_u->sat_e) ); + +#ifdef VERBOSE_PIER + fprintf(stderr, "pier (%" PRIu64 "): work: done\r\n", tac_u->eve_d); +#endif + + // XX this is a departure from the general organization of this file + // + u3_disk_plan(pir_u->log_u, tac_u); + + u3_auto_done(egg_u); + + _pier_gift_plan(pir_u->wok_u, gif_u); + _pier_work(pir_u->wok_u); +} + +/* _pier_on_lord_work_bail(): event failure from worker. +*/ +static void +_pier_on_lord_work_bail(void* ptr_v, u3_ovum* egg_u, u3_noun lud) +{ + u3_pier* pir_u = ptr_v; + +#ifdef VERBOSE_PIER + fprintf(stderr, "pier: work: bail\r\n"); +#endif + + u3_assert( (u3_psat_work == pir_u->sat_e) + || (u3_psat_done == pir_u->sat_e) ); + + u3_auto_bail(egg_u, lud); + + // XX groace + // + if ( pir_u->wok_u ) { + _pier_work(pir_u->wok_u); + } +} + +/* _pier_work_time(): set time. +*/ +static void +_pier_work_time(u3_pier* pir_u) +{ + struct timeval tim_tv; + gettimeofday(&tim_tv, 0); + + // XX save to pier + // + u3v_time(u3_time_in_tv(&tim_tv)); +} + +/* _pier_work_fore_cb(): run on every loop iteration before i/o polling. +*/ +static void +_pier_work_fore_cb(uv_prepare_t* pep_u) +{ + u3_work* wok_u = pep_u->data; + _pier_work_time(wok_u->pir_u); +} + +/* _pier_work_afte_cb(): run on every loop iteration after i/o polling. +*/ +static void +_pier_work_afte_cb(uv_check_t* cek_u) +{ + u3_work* wok_u = cek_u->data; + _pier_work(wok_u); +} + +/* _pier_work_idle_cb(): run on next loop iteration. +*/ +static void +_pier_work_idle_cb(uv_idle_t* idl_u) +{ + u3_work* wok_u = idl_u->data; + _pier_work(wok_u); + uv_idle_stop(idl_u); +} + +/* u3_pier_spin(): (re-)activate idle handler +*/ +void +u3_pier_spin(u3_pier* pir_u) +{ + // XX return c3n instead? + // + if ( u3_psat_work == pir_u->sat_e + || u3_psat_done == pir_u->sat_e ) + { + u3_work* wok_u = pir_u->wok_u; + + if ( !uv_is_active((uv_handle_t*)&wok_u->idl_u) ) { + uv_idle_start(&wok_u->idl_u, _pier_work_idle_cb); + } + } +} + +/* u3_pier_peek(): read namespace. +*/ +void +u3_pier_peek(u3_pier* pir_u, + u3_noun gan, + u3_noun ful, + void* ptr_v, + u3_peek_cb fun_f) +{ + u3_pico* pic_u = u3_pico_init(); + + pic_u->ptr_v = ptr_v; + pic_u->fun_f = fun_f; + pic_u->gan = gan; + // + pic_u->typ_e = u3_pico_full; + pic_u->ful = ful; + + _pier_peek_plan(pir_u, pic_u); +} + +/* u3_pier_peek_last(): read namespace, injecting ship and case. +*/ +void +u3_pier_peek_last(u3_pier* pir_u, + u3_noun gan, + c3_m car_m, + u3_atom des, + u3_noun pax, + void* ptr_v, + u3_peek_cb fun_f) +{ + u3_pico* pic_u = u3_pico_init(); + + pic_u->ptr_v = ptr_v; + pic_u->fun_f = fun_f; + pic_u->gan = gan; + // + pic_u->typ_e = u3_pico_once; + pic_u->las_u.car_m = car_m; + pic_u->las_u.des = des; + pic_u->las_u.pax = pax; + + _pier_peek_plan(pir_u, pic_u); +} + +/* _pier_stab(): parse path +*/ +static u3_noun +_pier_stab(u3_noun pac) +{ + return u3do("stab", pac); +} + +/* _pier_on_scry_done(): scry callback. +*/ +static void +_pier_on_scry_done(void* ptr_v, u3_noun nun) +{ + u3_pier* pir_u = ptr_v; + u3_weak res = u3r_at(7, nun); + + if (u3_none == res) { + u3l_log("pier: scry failed"); + } + else { + u3_weak out; + c3_c *ext_c, *pac_c; + + u3l_log("pier: scry succeeded"); + + if ( u3_Host.ops_u.puk_c ) { + pac_c = u3_Host.ops_u.puk_c; + } + else { + pac_c = u3_Host.ops_u.pek_c + 1; + } + + // try to serialize as requested + // + { + u3_atom puf = u3i_string(u3_Host.ops_u.puf_c); + if ( c3y == u3r_sing(c3__jam, puf) ) { + c3_d len_d; + c3_y* byt_y; + u3s_jam_xeno(res, &len_d, &byt_y); + out = u3i_bytes(len_d, byt_y); + ext_c = "jam"; + free(byt_y); + } + else if ( c3y == u3a_is_atom(res) ) { + out = u3dc("scot", u3k(puf), u3k(res)); + ext_c = "txt"; + } + else { + u3l_log("pier: cannot export cell as %s", u3_Host.ops_u.puf_c); + out = u3_none; + } + u3z(puf); + } + + // if serialization and export path succeeded, write to disk + // + if ( u3_none != out ) { + c3_c fil_c[256]; + snprintf(fil_c, 256, "%s.%s", pac_c, ext_c); + + u3_unix_save(fil_c, out); + u3l_log("pier: scry result in %s/.urb/put/%s", u3_Host.dir_c, fil_c); + } + } + + u3l_log("pier: exit"); + u3_pier_exit(pir_u); + + u3z(nun); +} + +static c3_c* +_resolve_czar(c3_d chu_d, c3_c* who_c) +{ + u3_noun czar = u3dc("scot", 'p', chu_d & ((1 << 8) - 1)); + c3_c* czar_c = u3r_string(czar); + + c3_c url[256]; + c3_w len_w; + c3_y* hun_y; + + sprintf(url, "https://%s.urbit.org/~/sponsor/%s", czar_c+1, who_c); + + c3_i ret_i = king_curl_bytes(url, &len_w, &hun_y, 1, 1); + if (!ret_i) { + c3_free(czar_c); + czar_c = (c3_c*)hun_y; + } + + u3z(czar); + return czar_c; +} + +static c3_o +_czar_boot_data(c3_c* czar_c, + c3_c* who_c, + c3_w* bone_w, + c3_w* czar_glx_w, + c3_w* czar_ryf_w, + c3_w* czar_lyf_w, + c3_w* czar_bon_w, + c3_w* czar_ack_w) +{ + c3_c url[256]; + c3_w len_w; + c3_y* hun_y = 0; + + if ( bone_w != NULL ) { + sprintf(url, "https://%s.urbit.org/~/boot/%s/%d", + czar_c+1, who_c, *bone_w ); + } else { + sprintf(url, "https://%s.urbit.org/~/boot/%s", czar_c+1, who_c); + } + + c3_o ret_o = c3n; + c3_i ret_i = king_curl_bytes(url, &len_w, &hun_y, 1, 1); + if ( !ret_i ) { + u3_noun jamd = u3i_bytes(len_w, hun_y); + u3_noun cued = u3qe_cue(jamd); + + u3_noun czar_glx, czar_ryf, czar_lyf, czar_bon, czar_ack; + + if ( (c3y == u3r_hext(cued, 0, &czar_glx, &czar_ryf, + &czar_lyf, &czar_bon, &czar_ack)) && + (c3y == u3r_safe_word(czar_glx, czar_glx_w)) && + (c3y == u3r_safe_word(czar_ryf, czar_ryf_w)) && + (c3y == u3r_safe_word(czar_lyf, czar_lyf_w)) ) { + if ( c3y == u3du(czar_bon) ) u3r_safe_word(u3t(czar_bon), czar_bon_w); + if ( c3y == u3du(czar_ack) ) u3r_safe_word(u3t(czar_ack), czar_ack_w); + ret_o = c3y; + } + + u3z(jamd); + u3z(cued); + c3_free(hun_y); + } + + return ret_o; +} + +/* _pier_work_init(): begin processing new events +*/ +static void +_pier_work_init(u3_pier* pir_u) +{ + u3_work* wok_u; + + u3_assert( u3_psat_wyrd == pir_u->sat_e ); + + pir_u->sat_e = u3_psat_work; + pir_u->wok_u = wok_u = c3_calloc(sizeof(*wok_u)); + wok_u->pir_u = pir_u; + wok_u->fec_u.rel_d = pir_u->log_u->dun_d; + + _pier_work_time(pir_u); + + // XX plan kelvin event + // + + // XX snapshot timer + // XX moveme + // + { + c3_l cod_l = u3a_lush(c3__save); + u3_save_io_init(pir_u); + u3a_lop(cod_l); + } + + // initialize pre i/o polling handle + // + uv_prepare_init(u3L, &wok_u->pep_u); + wok_u->pep_u.data = wok_u; + uv_prepare_start(&wok_u->pep_u, _pier_work_fore_cb); + + // initialize post i/o polling handle + // + uv_check_init(u3L, &wok_u->cek_u); + wok_u->cek_u.data = wok_u; + uv_check_start(&wok_u->cek_u, _pier_work_afte_cb); + + // initialize idle i/o polling handle + // + // NB, not started + // + uv_idle_init(u3L, &wok_u->idl_u); + wok_u->idl_u.data = wok_u; + + // // setup u3_lord work callbacks + // // + // u3_lord_work_cb cb_u = { + // .ptr_v = wok_u, + // .spin_f = _pier_on_lord_work_spin, + // .spun_f = _pier_on_lord_work_spun, + // .done_f = _pier_on_lord_work_done, + // .bail_f = _pier_on_lord_work_bail + // }; + // u3_lord_work_init(pir_u->god_u, cb_u); + + // XX this is messy, revise + // + if ( u3_Host.ops_u.pek_c ) { + u3_noun pex = u3do("stab", u3i_string(u3_Host.ops_u.pek_c)); + u3_noun car; + u3_noun dek; + u3_noun pax; + if ( c3n == u3r_trel(pex, &car, &dek, &pax) + || c3n == u3a_is_cat(car) ) + { + u3m_p("pier: invalid scry", pex); + _pier_on_scry_done(pir_u, u3_nul); + } else { + // run the requested scry, jam to disk, then exit + // + u3l_log("pier: scry"); + u3_pier_peek_last(pir_u, u3nc(u3_nul, u3_nul), u3k(car), u3k(dek), + u3k(pax), pir_u, _pier_on_scry_done); + } + u3z(pex); + } + else { + // initialize i/o drivers + // + wok_u->car_u = u3_auto_init(pir_u); + u3_auto_talk(wok_u->car_u); + _pier_work(wok_u); + } +} + +static void _pier_wyrd_init(u3_pier*); + +static void +_boot_scry_cb(void* vod_p, u3_noun nun) +{ + u3_pier* pir_u = (u3_pier*)vod_p; + + u3_atom who = u3dc("scot", c3__p, u3i_chubs(2, pir_u->who_d)); + c3_c* who_c = u3r_string(who); + + u3_noun rem, glx, ryf, bon, cur, nex; + c3_w glx_w, ryf_w, bon_w, cur_w, nex_w; + + c3_w czar_glx_w, czar_ryf_w, czar_lyf_w, czar_bon_w, czar_ack_w; + czar_glx_w = czar_ryf_w = czar_lyf_w = czar_bon_w = czar_ack_w = u3_none; + + if ( (c3y == u3r_qual(nun, 0, 0, 0, &rem)) && + (c3y == u3r_hext(rem, &glx, &ryf, 0, &bon, &cur, &nex)) ) { + /* + * Boot scry succeeded. Proceed to cross reference networking state against + * sponsoring galaxy. + */ + glx_w = u3r_word(0, glx); ryf_w = u3r_word(0, ryf); + bon_w = u3r_word(0, bon); cur_w = u3r_word(0, cur); + nex_w = u3r_word(0, nex); + + u3_atom czar = u3dc("scot", c3__p, glx_w); + c3_c* czar_c = u3r_string(czar); + + if ( c3n == _czar_boot_data(czar_c, who_c, &bon_w, + &czar_glx_w, &czar_ryf_w, + &czar_lyf_w, &czar_bon_w, + &czar_ack_w) ) { + u3l_log("boot: peer-state unvailable on czar, cannot protect from double-boot"); + + _pier_wyrd_init(pir_u); + } else { + if ( czar_ryf_w == ryf_w ) { + c3_w ack_w = cur_w - 1; + if ( czar_ack_w == u3_none ) { + // This codepath should never be hit + u3l_log("boot: message-sink-state unvailable on czar, cannot protect from double-boot"); + _pier_wyrd_init(pir_u); + } else if ( ( nex_w - cur_w ) >= ( czar_ack_w - ack_w ) ) { + _pier_wyrd_init(pir_u); + } else { + u3l_log("boot: failed: double-boot detected, refusing to boot %s\r\n" + "this is an old version of the ship, resume the latest version or breach\r\n" + "see https://docs.urbit.org/user-manual/id/guide-to-resets", + who_c); + u3_king_bail(); + } + } else { + // Trying to boot old ship after breach + u3l_log("boot: failed: double-boot detected, refusing to boot %s\r\n" + "you are trying to boot an existing ship from a keyfile," + "resume the latest version of the ship or breach\r\n" + "see https://docs.urbit.org/user-manual/id/guide-to-resets", + who_c); + u3_king_bail(); + } + } + + u3z(czar); + c3_free(czar_c); + } else if ( c3y == u3r_trel(nun, 0, 0, &rem) && rem == 0 ) { + /* + * Data not available for boot scry. Check against sponsoring galaxy. + * If peer state exists exit(1) unless ship has breached, + * otherwise continue boot. + */ + c3_c* czar_c = _resolve_czar(pir_u->who_d[0], who_c); + + if ( c3n == _czar_boot_data(czar_c, who_c, 0, + &czar_glx_w, &czar_ryf_w, + &czar_lyf_w, &czar_bon_w, 0) ) { + c3_free(czar_c); + _pier_wyrd_init(pir_u); + } else { + // Peer state found under czar + c3_free(czar_c); + u3_weak kf_ryf = pir_u->ryf; + if ( kf_ryf == u3_none ) { + u3l_log("boot: keyfile rift unavailable, cannot protect from double-boot"); + _pier_wyrd_init(pir_u); + } else if ( kf_ryf > czar_ryf_w ) { + // Ship breached, galaxy has not heard about the breach; continue boot + _pier_wyrd_init(pir_u); + } else if ( ( kf_ryf == czar_ryf_w ) && + ( czar_bon_w == u3_none ) ) { + // Ship has breached, continue boot + _pier_wyrd_init(pir_u); + } else { + u3l_log("boot: failed: double-boot detected, refusing to boot %s\r\n" + "this ship has already been booted elsewhere, " + "boot the existing pier or breach\r\n" + "see https://docs.urbit.org/user-manual/id/guide-to-resets", + who_c); + u3_king_bail(); + } + } + } else { + /* + * Boot scry endpoint doesn't exists. Most likely old arvo. + * Continue boot and hope for the best. + */ + u3l_log("boot: %%boot scry endpoint doesn't exist, cannot protect from double-boot"); + _pier_wyrd_init(pir_u); + } + u3z(nun); u3z(who); + c3_free(who_c); +} + + +/* _pier_double_boot_init(): maybe peek for %ax /boot. +*/ +static void +_pier_double_boot_init(u3_pier* pir_u) +{ + pir_u->sat_e = u3_psat_wyrd; + c3_d pi_d = pir_u->who_d[0]; + c3_d pt_d = pir_u->who_d[1]; + + if ( (pi_d < 256 && pt_d == 0) || (c3n == u3_Host.ops_u.net) ) { + // Skip double boot protection for galaxies and local mode ships + // + _pier_wyrd_init(pir_u); + } else { + // Double boot protection + // + u3_pico* pic_u = u3_pico_init(); + + pic_u->ptr_v = pir_u; + pic_u->fun_f = _boot_scry_cb; + pic_u->gan = u3nc(u3_nul, u3_nul); + // + pic_u->typ_e = u3_pico_once; + pic_u->las_u.car_m = c3__ax; + pic_u->las_u.des = u3_nul; + pic_u->las_u.pax = u3nc(u3i_string("boot"), u3_nul); + + u3_lord_peek(pir_u->god_u, pic_u); + u3_pico_free(pic_u); + } +} + +/* _pier_wyrd_good(): %wyrd version negotation succeeded. +*/ +static void +_pier_wyrd_good(u3_pier* pir_u, u3_ovum* egg_u) +{ + // restore event callbacks + // + { + u3_lord* god_u = pir_u->god_u; + god_u->cb_u.work_done_f = _pier_on_lord_work_done; + god_u->cb_u.work_bail_f = _pier_on_lord_work_bail; + } + + // initialize i/o drivers + // + _pier_work_init(pir_u); + + // free %wyrd driver and ovum + // + { + u3_auto* car_u = egg_u->car_u; + u3_auto_done(egg_u); + c3_free(car_u); + } +} + +/* _pier_wyrd_fail(): %wyrd version negotation failed. +*/ +static void +_pier_wyrd_fail(u3_pier* pir_u, u3_ovum* egg_u, u3_noun lud) +{ + // XX version negotiation failed, print upgrade message + // + u3l_log("pier: version negotation failed\n"); + + // XX only print trace with -v ? + // + if ( u3_nul != lud ) { + u3_auto_bail_slog(egg_u, u3k(u3t(lud))); + } + + u3z(lud); + + // free %wyrd driver and ovum + // + { + u3_auto* car_u = egg_u->car_u; + u3_auto_done(egg_u); + c3_free(car_u); + } + + u3_pier_bail(pir_u); +} + +// XX organizing version constants +// +#define VERE_NAME "vere" +#define VERE_ZUSE 410 +#define VERE_LULL 322 + +/* _pier_wyrd_aver(): check for %wend effect and version downgrade. RETAIN +*/ +static c3_o +_pier_wyrd_aver(u3_noun act) +{ + u3_noun fec, kel, ver; + + // XX review, %wend re: %wyrd optional? + // + while ( u3_nul != act ) { + u3x_cell(act, &fec, &act); + + if ( c3__wend == u3h(fec) ) { + kel = u3t(fec); + + // traverse $wynn, check for downgrades + // + while ( u3_nul != kel ) { + u3x_cell(kel, &ver, &kel); + + // check for %zuse downgrade + // + if ( (c3__zuse == u3h(ver)) + && (VERE_ZUSE != u3t(ver)) ) + { + return c3n; + } + + // XX in the future, send %wend to serf + // to also negotiate downgrade of nock/hoon/&c? + // (we don't want to have to filter effects) + // + } + } + } + + return c3y; +} + +/* _pier_on_lord_wyrd_done(): callback for successful %wyrd event. +*/ +static void +_pier_on_lord_wyrd_done(void* ptr_v, + u3_ovum* egg_u, + u3_fact* tac_u, + u3_gift* gif_u) +{ + u3_pier* pir_u = ptr_v; + + u3_assert( u3_psat_wyrd == pir_u->sat_e ); + + // arvo's side of version negotiation succeeded + // traverse [gif_y] and validate + // + if ( c3n == _pier_wyrd_aver(gif_u->act) ) { + u3_fact_free(tac_u); + u3_gift_free(gif_u); + + // XX messaging, cli argument to bypass + // + u3l_log("pier: version negotiation failed; downgrade"); + _pier_wyrd_fail(pir_u, egg_u, u3_nul); + } + else { + // enqueue %wyrd event-log commit + // + u3_disk_plan(pir_u->log_u, tac_u); + + // finalize %wyrd success + // + _pier_wyrd_good(pir_u, egg_u); + + // plan %wyrd effects + // + _pier_gift_plan(pir_u->wok_u, gif_u); + } +} + +/* _pier_on_lord_wyrd_bail(): callback for failed %wyrd event. +*/ +static void +_pier_on_lord_wyrd_bail(void* ptr_v, u3_ovum* egg_u, u3_noun lud) +{ + u3_pier* pir_u = ptr_v; + + u3_assert( u3_psat_wyrd == pir_u->sat_e ); + + // XX add cli argument to bypass negotiation failure + // +#if 1 + // print %wyrd failure and exit + // + // XX check bail mote, retry on %intr, %meme, &c + // + _pier_wyrd_fail(pir_u, egg_u, lud); +#else + // XX temporary hack to fake %wyrd success + // + { + _pier_wyrd_good(pir_u, egg_u); + u3z(lud); + } +#endif +} + +/* _pier_wyrd_card(): construct %wyrd. +*/ +static u3_noun +_pier_wyrd_card(u3_pier* pir_u) +{ + u3_lord* god_u = pir_u->god_u; + u3_noun sen; + + _pier_work_time(pir_u); + + { + c3_l sev_l; + u3_noun now; + struct timeval tim_u; + gettimeofday(&tim_u, 0); + + now = u3_time_in_tv(&tim_u); + sev_l = u3r_mug(now); + sen = u3dc("scot", c3__uv, sev_l); + + u3z(now); + } + + // XX god_u not necessarily available yet, refactor call sites + // + u3_noun ver = u3nq(u3i_string(VERE_NAME), + u3i_string(U3_VERE_PACE), + u3dc("scot", c3__ta, u3i_string(URBIT_VERSION)), + u3_nul); + u3_noun kel = u3nl(u3nc(c3__zuse, VERE_ZUSE), // XX from both king and serf? + u3nc(c3__lull, VERE_LULL), // XX from both king and serf? + u3nc(c3__arvo, 236), // XX from both king and serf? + u3nc(c3__hoon, 137), // god_u->hon_y + u3nc(c3__nock, 4), // god_u->noc_y + u3_none); + u3_noun wir = u3nc(c3__arvo, u3_nul); + return u3nt(c3__wyrd, u3nc(sen, ver), kel); +} + +/* _pier_wyrd_init(): send %wyrd. +*/ +static void +_pier_wyrd_init(u3_pier* pir_u) +{ + u3_noun cad = _pier_wyrd_card(pir_u); + u3_noun wir = u3nc(c3__arvo, u3_nul); + + u3_assert( u3_psat_wyrd == pir_u->sat_e ); + + u3l_log("vere: checking version compatibility"); + + { + u3_lord* god_u = pir_u->god_u; + u3_auto* car_u = c3_calloc(sizeof(*car_u)); + u3_ovum* egg_u = u3_ovum_init(0, u3_blip, wir, cad); + u3_noun ovo; + + car_u->pir_u = pir_u; + car_u->nam_m = c3__wyrd; + + u3_auto_plan(car_u, egg_u); + + // instead of subscribing with u3_auto_peer(), + // we swizzle the [god_u] callbacks for full control + // + god_u->cb_u.work_done_f = _pier_on_lord_wyrd_done; + god_u->cb_u.work_bail_f = _pier_on_lord_wyrd_bail; + + u3_assert( u3_auto_next(car_u, &ovo) == egg_u ); + + { + struct timeval tim_tv; + gettimeofday(&tim_tv, 0); + u3_lord_work(god_u, egg_u, u3nc(u3_time_in_tv(&tim_tv), ovo)); + } + } +} + +/* _pier_play_plan(): enqueue events for replay. +*/ +static void +_pier_play_plan(u3_play* pay_u, u3_info fon_u) +{ + u3_fact** ext_u; + c3_d old_d; + + if ( !pay_u->ext_u ) { + u3_assert( !pay_u->ent_u ); + ext_u = &pay_u->ext_u; + old_d = pay_u->sen_d; + } + else { + ext_u = &pay_u->ent_u->nex_u; + old_d = pay_u->ent_u->eve_d; + } + +#ifdef VERBOSE_PIER + fprintf(stderr, "pier: play plan %" PRIu64 "-%" PRIu64 " at %" PRIu64 "\r\n", + fon_u.ext_u->eve_d, + fon_u.ent_u->eve_d, + old_d); +#endif + + u3_assert( (1ULL + old_d) == fon_u.ext_u->eve_d ); + + *ext_u = fon_u.ext_u; + pay_u->ent_u = fon_u.ent_u; +} + +/* _pier_play_send(): detach a batch of up to [len_w] events from queue. +*/ +static u3_info +_pier_play_next(u3_play* pay_u, c3_w len_w) +{ + u3_fact* tac_u = pay_u->ext_u; + u3_info fon_u; + + // XX just share batch with lord, save last sent to pay_u->sen_u + // + + // set batch entry and exit pointers + // + { + fon_u.ext_u = tac_u; + + while ( len_w-- && tac_u->nex_u ) { + tac_u = tac_u->nex_u; + } + + fon_u.ent_u = tac_u; + } + + // detatch batch from queue + // + if ( tac_u->nex_u ) { + pay_u->ext_u = tac_u->nex_u; + tac_u->nex_u = 0; + } + else { + pay_u->ent_u = pay_u->ext_u = 0; + } + + return fon_u; +} + +/* _pier_play_send(): send a batch of events to the worker for replay. +*/ +static void +_pier_play_send(u3_play* pay_u) +{ + u3_pier* pir_u = pay_u->pir_u; + c3_w len_w; + + // awaiting read + // + if ( !pay_u->ext_u ) { + return; + } + + // XX fill the pipe how much? + // (god_u->dep_w > PIER_WORK_BATCH) ) + // + + // the first batch must be >= the lifecycle barrier + // + if ( !pay_u->sen_d ) { + len_w = c3_max(pir_u->lif_w, PIER_PLAY_BATCH); + } + else { + c3_d lef_d = (pay_u->eve_d - pay_u->sen_d); + len_w = c3_min(lef_d, PIER_PLAY_BATCH); + } + + { + u3_info fon_u = _pier_play_next(pay_u, len_w); + + // bump sent counter + // + pay_u->sen_d = fon_u.ent_u->eve_d; + +#ifdef VERBOSE_PIER + fprintf(stderr, "pier: play send %" PRIu64 "-%" PRIu64 "\r\n", fon_u.ext_u->eve_d, fon_u.ent_u->eve_d); +#endif + + u3_lord_play(pir_u->god_u, fon_u); + } +} + +/* _pier_play_read(): read events from disk for replay. +*/ +static void +_pier_play_read(u3_play* pay_u) +{ + u3_pier* pir_u = pay_u->pir_u; + c3_d las_d; + + if ( pay_u->ent_u ) { + las_d = pay_u->ent_u->eve_d; + + // cap the pir_u->pay_u queue depth + // + if ( (las_d - pay_u->ext_u->eve_d) >= PIER_PLAY_BATCH ) { + return; + } + } + else { + las_d = pay_u->sen_d; + } + + { + c3_d nex_d = (1ULL + las_d); + c3_d len_d = c3_min(pay_u->eve_d - las_d, PIER_READ_BATCH); + + if ( len_d + && (nex_d > pay_u->req_d) ) + { + u3_disk_read(pir_u->log_u, nex_d, len_d); + pay_u->req_d = nex_d; + +#ifdef VERBOSE_PIER + fprintf(stderr, "pier: play read %" PRIu64 " at %" PRIu64 "\r\n", len_d, nex_d); +#endif + } + } +} + +/* _pier_play(): send a batch of events to the worker for log replay. +*/ +static void +_pier_play(u3_play* pay_u) +{ + u3_pier* pir_u = pay_u->pir_u; + u3_lord* god_u = pir_u->god_u; + u3_disk* log_u = pir_u->log_u; + + if ( god_u->eve_d == pay_u->eve_d ) { + // XX should be play_cb + // + u3l_log("---------------- playback complete ----------------"); + u3_term_stop_spinner(); + + if ( pay_u->eve_d < log_u->dun_d ) { + // u3l_log("pier: replay barrier reached, shutting down"); + // // XX graceful shutdown + // // + // u3_lord_save(pir_u->god_u); + // u3_pier_bail(pir_u); + // exit(0); + + // XX temporary hack + // + u3l_log("pier: replay barrier reached, cramming"); + u3_pier_cram(pir_u); + } + else if ( pay_u->eve_d == log_u->dun_d ) { + u3_lord_save(pir_u->god_u); + + // early exit, preparing for upgrade + // + // XX check kelvins? + // + if ( c3y == u3_Host.pep_o ) { + u3_pier_exit(pir_u); + } + else { + _pier_double_boot_init(pir_u); + } + } + } + else { + u3_assert( god_u->eve_d < pay_u->eve_d ); + _pier_play_send(pay_u); + _pier_play_read(pay_u); + } +} + +/* _pier_on_lord_play_done(): log replay batch completion from worker. +*/ +static void +_pier_on_lord_play_done(void* ptr_v, u3_info fon_u, c3_l mug_l) +{ + u3_pier* pir_u = ptr_v; + u3_fact* tac_u = fon_u.ent_u; + u3_fact* nex_u; + + u3_assert( u3_psat_play == pir_u->sat_e ); + + u3l_log("pier: (%" PRIu64 "): play: done", tac_u->eve_d); + + // XX optional + // + if ( tac_u->mug_l && (tac_u->mug_l != mug_l) ) { + u3l_log("pier: (%" PRIu64 "): play: mug mismatch %x %x", + tac_u->eve_d, + tac_u->mug_l, + mug_l); + // u3_pier_bail(pir_u); + } + + // dispose successful + // + { + tac_u = fon_u.ext_u; + + while ( tac_u ) { + nex_u = tac_u->nex_u; + u3_fact_free(tac_u); + tac_u = nex_u; + } + } + + _pier_play(pir_u->pay_u); +} + +/* _pier_on_lord_play_bail(): log replay batch failure from worker. +*/ +static void +_pier_on_lord_play_bail(void* ptr_v, u3_info fon_u, + c3_l mug_l, c3_d eve_d, u3_noun dud) +{ + u3_pier* pir_u = ptr_v; + + u3_assert( u3_psat_play == pir_u->sat_e ); + + { + u3_fact* tac_u = fon_u.ext_u; + u3_fact* nex_u; + c3_l las_l = 0; + + // dispose successful + // + while ( tac_u->eve_d <= eve_d ) { + nex_u = tac_u->nex_u; + las_l = tac_u->mug_l; + u3_fact_free(tac_u); + tac_u = nex_u; + } + + // XX optional + // + if ( las_l && (las_l != mug_l) ) { + u3l_log("pier: (%" PRIu64 "): play bail: mug mismatch %x %x", + (c3_d)(eve_d - 1ULL), + las_l, + mug_l); + // u3_pier_bail(pir_u); + } + + // XX enable to retry + // +#if 0 + { + u3l_log("pier: (%" PRIu64 "): play: retry", eve_d); + + fon_u.ext_u = tac_u; + + // we're enqueuing here directly onto the exit. + // like, _pier_play_plan() in reverse + // + if ( !pay_u->ext_u ) { + pay_u->ext_u = fon_u.ext_u; + pay_u->ent_u = fon_u.ent_u; + } + else { + fon_u.ent_u->nex_u = pay_u->ext_u; + pay_u->ext_u = fon_u.ext_u; + } + + _pier_play(pir_u->pay_u); + u3z(dud); + } +#else + { + u3l_log("pier: (%" PRIu64 "): play: bail", eve_d); + u3_pier_punt_goof("play", dud); + { + u3_noun wir, tag; + u3x_qual(tac_u->job, 0, &wir, &tag, 0); + u3_pier_punt_ovum("play", u3k(wir), u3k(tag)); + } + + u3_pier_bail(pir_u); + exit(1); + } +#endif + } +} + +/* _pier_play_init(): begin boot/replay up to [eve_d]. +*/ +static void +_pier_play_init(u3_pier* pir_u, c3_d eve_d) +{ + u3_lord* god_u = pir_u->god_u; + u3_disk* log_u = pir_u->log_u; + u3_play* pay_u; + + u3_assert( (u3_psat_init == pir_u->sat_e) + || (u3_psat_boot == pir_u->sat_e) ); + + u3_assert( eve_d > god_u->eve_d ); + u3_assert( eve_d <= log_u->dun_d ); + + pir_u->sat_e = u3_psat_play; + pir_u->pay_u = pay_u = c3_calloc(sizeof(*pay_u)); + pay_u->pir_u = pir_u; + pay_u->eve_d = eve_d; + pay_u->sen_d = god_u->eve_d; + + u3l_log("---------------- playback starting ----------------"); + if ( (1ULL + god_u->eve_d) == eve_d ) { + u3l_log("pier: replaying event %" PRIu64, eve_d); + } + else { + u3l_log("pier: replaying events %" PRIu64 "-%" PRIu64, + (c3_d)(1ULL + god_u->eve_d), + eve_d); + } + + u3_term_start_spinner(c3__play, c3n); + + _pier_play(pay_u); +} + +/* _pier_on_disk_read_done(): event log read success. +*/ +static void +_pier_on_disk_read_done(void* ptr_v, u3_info fon_u) +{ + u3_pier* pir_u = ptr_v; + + u3_assert( u3_psat_play == pir_u->sat_e ); + + _pier_play_plan(pir_u->pay_u, fon_u); + _pier_play(pir_u->pay_u); +} + +/* _pier_on_disk_read_bail(): event log read failure. +*/ +static void +_pier_on_disk_read_bail(void* ptr_v, c3_d eve_d) +{ + u3_pier* pir_u = ptr_v; + + u3_assert( u3_psat_play == pir_u->sat_e ); + + // XX s/b play_bail_cb + // + fprintf(stderr, "pier: disk read bail\r\n"); + u3_term_stop_spinner(); + u3_pier_bail(pir_u); +} + +/* _pier_on_disk_write_done(): event log write success. +*/ +static void +_pier_on_disk_write_done(void* ptr_v, c3_d eve_d) +{ + u3_pier* pir_u = ptr_v; + u3_disk* log_u = pir_u->log_u; + +#ifdef VERBOSE_PIER + fprintf(stderr, "pier: (%" PRIu64 "): db commit: complete\r\n", eve_d); +#endif + + if ( u3_psat_boot == pir_u->sat_e ) { + // lord already live + // + if ( c3y == pir_u->god_u->liv_o ) { + // XX print bootstrap commit complete + // XX s/b boot_complete_cb + // + _pier_play_init(pir_u, log_u->dun_d); + } + } + else { + u3_assert( (u3_psat_work == pir_u->sat_e) + || (u3_psat_done == pir_u->sat_e) ); + + _pier_work(pir_u->wok_u); + } +} + +/* _pier_on_disk_write_bail(): event log write failure. +*/ +static void +_pier_on_disk_write_bail(void* ptr_v, c3_d eve_d) +{ + u3_pier* pir_u = ptr_v; + + if ( u3_psat_boot == pir_u->sat_e ) { + // XX nice message + // + } + + // XX + // + fprintf(stderr, "pier: disk write bail\r\n"); + u3_pier_bail(pir_u); +} + +/* _pier_on_lord_slog(): debug printf from worker. +*/ +static void +_pier_on_lord_slog(void* ptr_v, c3_w pri_w, u3_noun tan) +{ + u3_pier* pir_u = ptr_v; + + if ( 0 != pir_u->sog_f ) { + pir_u->sog_f(pir_u->sop_p, pri_w, u3k(tan)); + } + + u3_pier_tank(0, pri_w, tan); +} + +/* _pier_on_lord_save(): worker (non-portable) snapshot complete. +*/ +static void +_pier_on_lord_save(void* ptr_v) +{ + u3_pier* pir_u = ptr_v; + +#ifdef VERBOSE_PIER + fprintf(stderr, "pier: (%" PRIu64 "): lord: save\r\n", pir_u->god_u->eve_d); +#endif + + // _pier_next(pir_u); +} + +/* _pier_on_lord_cram(): worker state-export complete (portable snapshot). +*/ +static void +_pier_on_lord_cram(void* ptr_v) +{ + u3_pier* pir_u = ptr_v; + +#ifdef VERBOSE_PIER + fprintf(stderr, "pier: (%" PRIu64 "): lord: cram\r\n", pir_u->god_u->eve_d); +#endif + + // XX temporary hack + // + if ( u3_psat_play == pir_u->sat_e ) { + u3l_log("pier: cram complete, shutting down"); + u3_pier_bail(pir_u); + exit(0); + } + + // if ( u3_psat_done == pir_u->sat_e ) { + // fprintf(stderr, "snap cb exit\r\n"); + // u3_lord_exit(pir_u->god_u); + // } + // else { + // _pier_next(pir_u); + // } +} + +static void +_pier_done(u3_pier* pir_u); + +/* _pier_on_lord_exit(): worker shutdown. +*/ +static void +_pier_on_lord_exit(void* ptr_v) +{ + u3_pier* pir_u = ptr_v; + + // the lord has already gone + // + pir_u->god_u = 0; + + if ( u3_psat_done != pir_u->sat_e ) { + u3l_log("pier: serf shutdown unexpected"); + u3_pier_bail(pir_u); + } + // if we made it all the way here, it's our jab to wrap up + // + else { + _pier_done(pir_u); + } +} + +/* _pier_on_lord_bail(): worker error. +*/ +static void +_pier_on_lord_bail(void* ptr_v) +{ + u3_pier* pir_u = ptr_v; + + // the lord has already gone + // + pir_u->god_u = 0; + + u3_pier_bail(pir_u); +} + +/* _pier_on_lord_live(): worker is ready. +*/ +static void +_pier_on_lord_live(void* ptr_v) +{ + u3_pier* pir_u = ptr_v; + u3_lord* god_u = pir_u->god_u; + u3_disk* log_u = pir_u->log_u; + +#ifdef VERBOSE_PIER + fprintf(stderr, "pier: (%" PRIu64 "): boot at mug %x\r\n", god_u->eve_d, god_u->mug_l); +#endif + + u3_assert( god_u->eve_d <= log_u->dun_d ); + + if ( u3_psat_boot == pir_u->sat_e ) { + // boot-sequence commit complete + // + if ( log_u->sen_d + && (log_u->sen_d == log_u->dun_d) ) { + // XX print bootstrap commit complete + // XX s/b boot_complete_cb + // + // XX this codepath should never be hit due to sync replay + u3l_log("pier: warning: async replay"); + _pier_play_init(pir_u, log_u->dun_d); + } + } + else { + u3_assert( u3_psat_init == pir_u->sat_e ); + u3_assert( log_u->sen_d == log_u->dun_d ); + + if ( god_u->eve_d < log_u->dun_d ) { + c3_d eve_d; + + // XX revisit + // + if ( u3_Host.ops_u.til_c ) { + if ( 1 == sscanf(u3_Host.ops_u.til_c, "%" PRIu64 "", &eve_d) ) { + u3l_log("pier: replay till %" PRIu64, eve_d); + } + else { + u3l_log("pier: ignoring invalid replay barrier '%s'", + u3_Host.ops_u.til_c); + eve_d = log_u->dun_d; + } + } + else { + eve_d = log_u->dun_d; + } + + _pier_play_init(pir_u, eve_d); + } + else { + // early exit, preparing for upgrade + // + // XX check kelvins? + // + if ( c3y == u3_Host.pep_o ) { + u3_pier_exit(pir_u); + } + else { + _pier_double_boot_init(pir_u); + } + } + } +} + +/* u3_pier_mass(): construct a $mass branch with noun/list. +*/ +u3_noun +u3_pier_mass(u3_atom cod, u3_noun lit) +{ + return u3nt(cod, c3n, lit); +} + +/* u3_pier_mase(): construct a $mass leaf. +*/ +u3_noun +u3_pier_mase(c3_c* cod_c, u3_noun dat) +{ + return u3nt(u3i_string(cod_c), c3y, dat); +} + +/* u3_pier_info(): pier status info as noun. +*/ +u3_noun +u3_pier_info(u3_pier* pir_u) +{ + u3_noun nat; + + switch (pir_u->sat_e) { + default: { + nat = u3_pier_mass(u3i_string("state-unknown"), u3_nul); + } break; + + case u3_psat_init: { + nat = u3_pier_mass(c3__init, u3_nul); + } break; + + case u3_psat_boot: { + nat = u3_pier_mass(c3__boot, u3_nul); + } break; + + case u3_psat_play: { + u3_play* pay_u = pir_u->pay_u; + + nat = u3_pier_mass(c3__play, + u3i_list( + u3_pier_mase("target", u3i_chub(pay_u->eve_d)), + u3_pier_mase("sent", u3i_chub(pay_u->sen_d)), + u3_pier_mase("read", u3i_chub(pay_u->req_d)), + u3_none)); + } break; + + case u3_psat_work: { + u3_work* wok_u = pir_u->wok_u; + + nat = u3_pier_mass(c3__work, + u3i_list( + u3_pier_mase("effects-released", u3i_chub(wok_u->fec_u.rel_d)), + u3_pier_mase("pending-any", __(wok_u->fec_u.ext_u)), + u3_pier_mase("pending-start", + ( wok_u->fec_u.ext_u + ? u3i_chub(wok_u->fec_u.ext_u->eve_d) + : 0 )), + u3_pier_mase("pending-final", + ( wok_u->fec_u.ent_u + ? u3i_chub(wok_u->fec_u.ent_u->eve_d) + : 0 )), + u3_pier_mase("wall-any", __(wok_u->wal_u)), + u3_pier_mase("wall-event", + ( wok_u->wal_u + ? u3i_chub(wok_u->wal_u->eve_d) + : 0)), + u3_pier_mass(c3__auto, u3_auto_info(wok_u->car_u)), + u3_none)); + } break; + + case u3_psat_done: { + nat = u3_pier_mass(c3__done, u3_nul); + } break; + } + + return u3_pier_mass( + c3__pier, + u3i_list( + nat, + u3_disk_info(pir_u->log_u), + u3_lord_info(pir_u->god_u), + u3_none)); +} + +/* u3_pier_slog(): print status info. +*/ +void +u3_pier_slog(u3_pier* pir_u) +{ + switch ( pir_u->sat_e ) { + default: { + u3l_log("pier: unknown state: %u", pir_u->sat_e); + } break; + + case u3_psat_init: { + u3l_log("pier: init"); + } break; + + case u3_psat_boot: { + u3l_log("pier: boot"); + } break; + + case u3_psat_play: { + u3l_log("pier: play"); + + { + u3_play* pay_u = pir_u->pay_u; + + u3l_log(" target: %" PRIu64, pay_u->eve_d); + u3l_log(" sent: %" PRIu64, pay_u->sen_d); + u3l_log(" read: %" PRIu64, pay_u->req_d); + } + } break; + + case u3_psat_work: { + u3l_log("pier: work"); + + { + u3_work* wok_u = pir_u->wok_u; + + u3l_log(" effects: released=%" PRIu64, wok_u->fec_u.rel_d); + + if ( wok_u->fec_u.ext_u ) { + if ( wok_u->fec_u.ext_u != wok_u->fec_u.ent_u ) { + u3l_log(" pending %" PRIu64 "-%" PRIu64, + wok_u->fec_u.ext_u->eve_d, + wok_u->fec_u.ent_u->eve_d); + + } + else { + u3l_log(" pending %" PRIu64, wok_u->fec_u.ext_u->eve_d); + } + } + + if ( wok_u->wal_u ) { + u3l_log(" wall: %" PRIu64, wok_u->wal_u->eve_d); + } + + if ( wok_u->car_u ) { + u3_auto_slog(wok_u->car_u); + } + } + } break; + + case u3_psat_done: { + u3l_log("pier: done"); + } break; + } + + if ( pir_u->log_u ) { + u3_disk_slog(pir_u->log_u); + } + + if ( pir_u->god_u ) { + u3_lord_slog(pir_u->god_u); + } +} + +/* _pier_init(): create a pier, loading existing. +*/ +static u3_pier* +_pier_init(c3_w wag_w, c3_c* pax_c, u3_weak ryf) +{ + // create pier + // + u3_pier* pir_u = c3_calloc(sizeof(*pir_u)); + + pir_u->pax_c = pax_c; + pir_u->sat_e = u3_psat_init; + pir_u->liv_o = c3n; + pir_u->ryf = ryf; + + // XX remove + // + pir_u->per_s = u3_Host.ops_u.per_s; + pir_u->pes_s = u3_Host.ops_u.pes_s; + pir_u->por_s = u3_Host.ops_u.por_s; + pir_u->sav_u = c3_calloc(sizeof(u3_save)); + + // initialize persistence + // + { + // XX load/set secrets + // + u3_disk_cb cb_u = { + .ptr_v = pir_u, + .read_done_f = _pier_on_disk_read_done, + .read_bail_f = _pier_on_disk_read_bail, + .write_done_f = _pier_on_disk_write_done, + .write_bail_f = _pier_on_disk_write_bail + }; + + if ( !(pir_u->log_u = u3_disk_init(pax_c, cb_u)) ) { + c3_free(pir_u); + return 0; + } + + u3_assert( U3D_VERLAT == pir_u->log_u->ver_w ); + } + + // initialize compute + // + { + // XX load/set secrets + // + c3_d tic_d[1]; // ticket (unstretched) + c3_d sec_d[1]; // generator (unstretched) + c3_d key_d[4]; // secret (stretched) + + key_d[0] = key_d[1] = key_d[2] = key_d[3] = 0; + + u3_lord_cb cb_u = { + .ptr_v = pir_u, + .live_f = _pier_on_lord_live, + .spin_f = _pier_on_lord_work_spin, + .spun_f = _pier_on_lord_work_spun, + .slog_f = _pier_on_lord_slog, + .play_done_f = _pier_on_lord_play_done, + .play_bail_f = _pier_on_lord_play_bail, + .work_done_f = _pier_on_lord_work_done, + .work_bail_f = _pier_on_lord_work_bail, + .save_f = _pier_on_lord_save, + .cram_f = _pier_on_lord_cram, + .bail_f = _pier_on_lord_bail, + .exit_f = _pier_on_lord_exit + }; + + if ( !(pir_u->god_u = u3_lord_init(pax_c, wag_w, key_d, cb_u)) ) + { + // u3_disk_exit(pir_u->log_u) + c3_free(pir_u); + return 0; + } + } + + return pir_u; +} + +/* u3_pier_stay(): restart an existing pier. +*/ +u3_pier* +u3_pier_stay(c3_w wag_w, u3_noun pax) +{ + u3_pier* pir_u; + u3_weak rift = u3_none; + + if ( !(pir_u = _pier_init(wag_w, u3r_string(pax), rift)) ) { + fprintf(stderr, "pier: stay: init fail\r\n"); + u3_king_bail(); + return 0; + } + + if ( c3n == u3_disk_read_meta(pir_u->log_u->mdb_u, + &pir_u->log_u->ver_w, pir_u->who_d, + &pir_u->fak_o, &pir_u->lif_w) ) + { + fprintf(stderr, "pier: disk read meta fail\r\n"); + // XX dispose + // + u3_pier_bail(pir_u); + exit(1); + } + + if ( c3y == u3_Host.ops_u.veb ) { + FILE* fil_u = u3_term_io_hija(); + u3_lmdb_stat(pir_u->log_u->mdb_u, fil_u); + u3_term_io_loja(1, fil_u); + } + + u3z(pax); + + return pir_u; +} + +/* _pier_pill_parse(): extract boot formulas and module/userspace ova from pill +*/ +static u3_boot +_pier_pill_parse(u3_noun pil) +{ + u3_boot bot_u; + u3_noun pil_p, pil_q; + + u3_assert( c3y == u3du(pil) ); + u3x_cell(pil, &pil_p, &pil_q); + + { + // XX use faster cue + // + u3_noun pro = u3m_soft(0, u3ke_cue, u3k(pil_p)); + u3_noun mot, tag, dat; + + if ( (c3n == u3r_trel(pro, &mot, &tag, &dat)) + || (u3_blip != mot) ) + { + u3m_p("mot", u3h(pro)); + fprintf(stderr, "boot: failed: unable to parse pill\r\n"); + u3_king_bail(); + exit(1); + } + + if ( c3y == u3r_sing_c("ivory", tag) ) { + fprintf(stderr, "boot: failed: unable to boot from ivory pill\r\n"); + u3_king_bail(); + exit(1); + } + else if ( c3__pill != tag ) { + if ( c3y == u3a_is_atom(tag) ) { + u3m_p("pill", tag); + } + fprintf(stderr, "boot: failed: unrecognized pill\r\n"); + u3_king_bail(); + exit(1); + } + + { + u3_noun typ; + c3_c* typ_c; + + if ( c3n == u3r_qual(dat, &typ, &bot_u.bot, &bot_u.mod, &bot_u.use) ) { + fprintf(stderr, "boot: failed: unable to extract pill\r\n"); + u3_king_bail(); + exit(1); + } + + if ( c3y == u3a_is_atom(typ) ) { + c3_c* typ_c = u3r_string(typ); + fprintf(stderr, "boot: parsing %%%s pill\r\n", typ_c); + c3_free(typ_c); + } + } + + u3k(bot_u.bot); u3k(bot_u.mod); u3k(bot_u.use); + u3z(pro); + } + + // optionally replace filesystem in userspace + // + if ( u3_nul != pil_q ) { + c3_w len_w = 0; + u3_noun ova = bot_u.use; + u3_noun new = u3_nul; + u3_noun ovo; + + while ( u3_nul != ova ) { + ovo = u3h(ova); + + u3_noun tag = u3h(u3t(ovo)); + if ( ( c3__into == tag ) || ( c3__park == tag ) ) { + u3_assert( 0 == len_w ); + len_w++; + ovo = u3t(pil_q); + } + + new = u3nc(u3k(ovo), new); + ova = u3t(ova); + } + + u3_assert( 1 == len_w ); + + u3z(bot_u.use); + bot_u.use = u3kb_flop(new); + } + + u3z(pil); + + return bot_u; +} + +/* _pier_boot_make(): construct boot sequence +*/ +static u3_boot +_pier_boot_make(u3_noun who, + u3_noun wyr, + u3_noun ven, + u3_noun pil, + u3_weak fed, + u3_noun mor) +{ + u3_boot bot_u = _pier_pill_parse(pil); // transfer + + // prepend entropy and identity to the module sequence + // + { + u3_noun cad, wir = u3nt(u3_blip, c3__arvo, u3_nul); + c3_w eny_w[16]; + c3_rand(eny_w); + + cad = u3nt(c3__verb, u3_nul, ( c3y == u3_Host.ops_u.veb ) ? c3n : c3y); + bot_u.mod = u3nc(u3nc(u3k(wir), cad), bot_u.mod); + + cad = u3nc(c3__wack, u3i_words(16, eny_w)); + bot_u.mod = u3nc(u3nc(u3k(wir), cad), bot_u.mod); + + cad = u3nc(c3__whom, who); // transfer [who] + bot_u.mod = u3nc(u3nc(u3k(wir), cad), bot_u.mod); + + wir = u3nt(u3_blip, c3__arvo, u3_nul); + bot_u.mod = u3nc(u3nc(wir, wyr), bot_u.mod); // transfer [wir] and [wyr] + } + + // include additional key configuration events if we have multiple keys + // + if ( (u3_none != fed) && (c3y == u3du(u3h(fed))) && (u3h(u3h(fed))) == 1) { + u3_noun wir = u3nt(c3__j, c3__seed, u3_nul); + u3_noun tag = u3i_string("rekey"); + u3_noun kyz = u3t(u3t(fed)); + while ( u3_nul != kyz ) { + u3_noun cad = u3nc(u3k(tag), u3k(u3h(kyz))); + bot_u.use = u3nc(u3nc(u3k(wir), cad), bot_u.use); + kyz = u3t(kyz); + } + u3z(tag); u3z(wir); + } + + // prepend legacy boot event to the userspace sequence + // + { + // XX do something about this wire + // XX route directly to %jael? + // + u3_assert( c3y == u3a_is_cell(ven) ); + + u3_noun wir = u3nq(c3__d, c3__term, '1', u3_nul); + u3_noun cad = u3nt(c3__boot, u3_Host.ops_u.lit, ven); // transfer + + bot_u.use = u3nc(u3nc(wir, cad), bot_u.use); + } + + // prepend & append additional boot enhancements to the userspace sequence + // + // +$ prop [%prop meta tier (list ovum)] + // +$ meta term + // +$ tier ?(%fore %hind) :: before or after userspace + // + { + u3_noun mos = mor; + u3_noun pre = u3_nul; + u3_noun aft = u3_nul; + while ( u3_nul != mos ) { + u3_noun mot = u3h(mos); + + switch ( u3h(mot) ) { + case c3__prop: { + u3_noun ter, met, ves; + + if ( c3n == u3r_trel(u3t(mot), &met, &ter, &ves) ) { + u3m_p("invalid prop", u3t(mot)); + break; + } + + if ( c3__fore == ter ) { + u3m_p("prop: fore", met); + pre = u3kb_weld(pre, u3k(ves)); + } + else if ( c3__hind == ter ) { + u3m_p("prop: hind", met); + aft = u3kb_weld(aft, u3k(ves)); + } + else { + u3m_p("unrecognized prop tier", ter); + } + } break; + + default: u3m_p("unrecognized boot sequence enhancement", u3h(mot)); + } + + mos = u3t(mos); + } + + bot_u.use = u3kb_weld(pre, u3kb_weld(bot_u.use, aft)); // transfer + } + + u3z(fed); + u3z(mor); + return bot_u; +} + +/* _pier_boot_plan(): construct and commit boot sequence +*/ +static c3_o +_pier_boot_plan(u3_pier* pir_u, + u3_noun who, + u3_noun ven, + u3_noun pil, + u3_weak fed, + u3_noun mor) +{ + u3_boot bot_u; + { + pir_u->sat_e = u3_psat_boot; + pir_u->fak_o = ( c3__fake == u3h(ven) ) ? c3y : c3n; + u3r_chubs(0, 2, pir_u->who_d, who); + + bot_u = _pier_boot_make(who, _pier_wyrd_card(pir_u), ven, pil, fed, mor); + pir_u->lif_w = u3qb_lent(bot_u.bot); + } + + if ( c3n == u3_disk_save_meta(pir_u->log_u->mdb_u, + pir_u->log_u->ver_w, pir_u->who_d, + pir_u->fak_o, pir_u->lif_w) ) + { + // XX dispose bot_u + // + return c3n; + } + + if ( c3n == u3_disk_save_meta_meta(pir_u->log_u->com_u->pax_c, + pir_u->who_d, pir_u->fak_o, pir_u->lif_w) ) + { + fprintf(stderr, "disk: failed to save top-level metadata\r\n"); + return c3n; + } + + // insert boot sequence directly + // + // Note that these are not ovum or (pair @da ovum) events, + // but raw nock formulas to be directly evaluated as the + // subject of the lifecycle formula [%2 [%0 3] %0 2]. + // All subsequent events will be (pair date ovum). + // + { + u3_noun fol = bot_u.bot; + + while ( u3_nul != fol ) { + u3_disk_boot_plan(pir_u->log_u, u3k(u3h(fol))); + fol = u3t(fol); + } + } + + // insert module and userspace events + // + { + u3_noun ova = bot_u.mod; + u3_noun bit = u3qc_bex(48); // 1/2^16 seconds + u3_noun now; + + { + struct timeval tim_tv; + gettimeofday(&tim_tv, 0); + now = u3_time_in_tv(&tim_tv); + } + + + while ( u3_nul != ova ) { + u3_disk_boot_plan(pir_u->log_u, u3nc(u3k(now), u3k(u3h(ova)))); + now = u3ka_add(now, u3k(bit)); + ova = u3t(ova); + } + + ova = bot_u.use; + + while ( u3_nul != ova ) { + u3_disk_boot_plan(pir_u->log_u, u3nc(u3k(now), u3k(u3h(ova)))); + now = u3ka_add(now, u3k(bit)); + ova = u3t(ova); + } + + u3z(bit); u3z(now); + } + + u3_disk_boot_save(pir_u->log_u); + + u3z(bot_u.bot); + u3z(bot_u.mod); + u3z(bot_u.use); + + return c3y; +} + +/* u3_pier_boot(): start a new pier. +*/ +u3_pier* +u3_pier_boot(c3_w wag_w, // config flags + u3_noun who, // identity + u3_noun ven, // boot event + u3_noun pil, // type-of/path-to pill + u3_noun pax, // path to pier + u3_weak fed, // extra private keys + u3_noun mor) // extra boot sequence props +{ + u3_pier* pir_u; + u3_weak rift = u3_none; + if (fed != u3_none && c3y == u3du(u3h(fed)) && u3h(u3h(fed)) == 2) { + rift = u3h(u3t(u3t(fed))); + u3k(rift); + } + + if ( !(pir_u = _pier_init(wag_w, u3r_string(pax), rift)) ) { + fprintf(stderr, "pier: boot: init fail\r\n"); + u3_king_bail(); + return 0; + } + + // XX must be called from on_lord_live + // + if ( c3n == _pier_boot_plan(pir_u, who, ven, pil, fed, mor) ) { + fprintf(stderr, "pier: boot plan fail\r\n"); + // XX dispose + // + u3_pier_bail(pir_u); + exit(1); + } + + u3z(pax); + + return pir_u; +} + +/* _pier_save_cb(): save snapshot upon serf/disk synchronization. +*/ +static void +_pier_save_cb(void* ptr_v, c3_d eve_d) +{ + u3_pier* pir_u = ptr_v; + +#ifdef VERBOSE_PIER + fprintf(stderr, "pier: (%" PRIu64 "): save: send at %" PRIu64 "\r\n", pir_u->god_u->eve_d, eve_d); +#endif + + u3_lord_save(pir_u->god_u); +} + +/* u3_pier_save(): save a non-portable snapshot +*/ +c3_o +u3_pier_save(u3_pier* pir_u) +{ +#ifdef VERBOSE_PIER + fprintf(stderr, "pier: (%" PRIu64 "): save: plan\r\n", pir_u->god_u->eve_d); +#endif + if ( u3_psat_play == pir_u->sat_e ) { + u3_lord_save(pir_u->god_u); + return c3y; + } + + if ( u3_psat_work == pir_u->sat_e ) { + _pier_wall_plan(pir_u, 0, pir_u, _pier_save_cb); + return c3y; + } + + return c3n; +} + +/* _pier_cram_cb(): save snapshot upon serf/disk synchronization. +*/ +static void +_pier_cram_cb(void* ptr_v, c3_d eve_d) +{ + u3_pier* pir_u = ptr_v; + +#ifdef VERBOSE_PIER + fprintf(stderr, "pier: (%" PRIu64 "): cram: send at %" PRIu64 "\r\n", pir_u->god_u->eve_d, eve_d); +#endif + + u3_lord_cram(pir_u->god_u); +} + +/* u3_pier_cram(): save a portable snapshot. +*/ +c3_o +u3_pier_cram(u3_pier* pir_u) +{ +#ifdef VERBOSE_PIER + fprintf(stderr, "pier: (%" PRIu64 "): cram: plan\r\n", pir_u->god_u->eve_d); +#endif + + if ( u3_psat_play == pir_u->sat_e ) { + u3_lord_cram(pir_u->god_u); + return c3y; + } + + if ( u3_psat_work == pir_u->sat_e ) { + _pier_wall_plan(pir_u, 0, pir_u, _pier_cram_cb); + return c3y; + } + + return c3n; +} + +/* u3_pier_meld(): globally deduplicate persistent state. +*/ +void +u3_pier_meld(u3_pier* pir_u) +{ +#ifdef VERBOSE_PIER + fprintf(stderr, "pier: (%" PRIu64 "): meld: plan\r\n", pir_u->god_u->eve_d); +#endif + + u3_lord_meld(pir_u->god_u); +} + +/* u3_pier_pack(): defragment persistent state. +*/ +void +u3_pier_pack(u3_pier* pir_u) +{ +#ifdef VERBOSE_PIER + fprintf(stderr, "pier: (%" PRIu64 "): meld: plan\r\n", pir_u->god_u->eve_d); +#endif + + u3_lord_pack(pir_u->god_u); +} + +/* _pier_work_close_cb(): dispose u3_work after closing handles. +*/ +static void +_pier_work_close_cb(uv_handle_t* idl_u) +{ + u3_work* wok_u = idl_u->data; + c3_free(wok_u); +} + +/* _pier_work_close(): close drivers/handles in the u3_psat_work state. +*/ +static void +_pier_work_close(u3_work* wok_u) +{ + u3_auto_exit(wok_u->car_u); + + // free pending effects + // + { + u3_gift* gif_u = wok_u->fec_u.ext_u; + u3_gift* nex_u; + + while ( gif_u ) { + nex_u = gif_u->nex_u; + u3_gift_free(gif_u); + gif_u = nex_u; + } + } + + uv_close((uv_handle_t*)&wok_u->pep_u, _pier_work_close_cb); + uv_close((uv_handle_t*)&wok_u->cek_u, 0); + uv_close((uv_handle_t*)&wok_u->idl_u, 0); + wok_u->pep_u.data = wok_u; +} + +/* _pier_done(): dispose pier. +*/ +static void +_pier_free(u3_pier* pir_u) +{ + c3_free(pir_u->pax_c); + + // XX remove + // + c3_free(pir_u->sav_u); + + c3_free(pir_u); +} + +/* _pier_done(): graceful shutdown complete, notify king. +*/ +static void +_pier_done(u3_pier* pir_u) +{ + // XX unlink properly + // + u3K.pir_u = 0; + _pier_free(pir_u); + u3_king_done(); +} + +/* _pier_exit(): synchronous shutdown. +*/ +static void +_pier_exit(u3_pier* pir_u) +{ + u3_assert( u3_psat_done == pir_u->sat_e ); + + if ( pir_u->log_u ) { + u3_disk_exit(pir_u->log_u); + pir_u->log_u = 0; + } + + if ( pir_u->god_u ) { + u3_lord_exit(pir_u->god_u); + pir_u->god_u = 0; + } + else { + // otherwise called in _pier_on_lord_exit() + // + _pier_done(pir_u); + } +} + +/* _pier_work_exit(): commence graceful shutdown. +*/ +static void +_pier_work_exit_cb(void* ptr_v, c3_d eve_d) +{ + u3_pier* pir_u = ptr_v; + + _pier_work_close(pir_u->wok_u); + pir_u->wok_u = 0; + + _pier_exit(pir_u); +} + +/* _pier_work_exit(): setup graceful shutdown callbacks. +*/ +static void +_pier_work_exit(u3_pier* pir_u) +{ + _pier_wall_plan(pir_u, 0, pir_u, _pier_save_cb); + _pier_wall_plan(pir_u, 0, pir_u, _pier_work_exit_cb); + + // XX moveme, XX bails if not started + // + { + c3_l cod_l = u3a_lush(c3__save); + u3_save_io_exit(pir_u); + u3a_lop(cod_l); + } + + pir_u->sat_e = u3_psat_done; +} + +/* u3_pier_exit(): graceful shutdown. +*/ +void +u3_pier_exit(u3_pier* pir_u) +{ + switch ( pir_u->sat_e ) { + default: { + fprintf(stderr, "pier: unknown exit: %u\r\n", pir_u->sat_e); + u3_assert(0); + } + + case u3_psat_done: return; + + case u3_psat_work: _pier_work_exit(pir_u); return; + + case u3_psat_init: break; + + case u3_psat_boot: { + // XX properly dispose boot + // XX also on actual boot + // + c3_free(pir_u->bot_u); + pir_u->bot_u = 0; + } break; + + case u3_psat_play: { + // XX dispose play q + // + c3_free(pir_u->pay_u); + pir_u->pay_u = 0; + } break; + } + + pir_u->sat_e = u3_psat_done; + _pier_exit(pir_u); +} + +/* u3_pier_bail(): immediately shutdown due to error. +*/ +void +u3_pier_bail(u3_pier* pir_u) +{ + u3_Host.xit_i = 1; + + // halt serf + // + if ( pir_u->god_u ) { + u3_lord_halt(pir_u->god_u); + pir_u->god_u = 0; + } + + // exig i/o drivers + // + if ( (u3_psat_work == pir_u->sat_e) + && pir_u->wok_u ) + { + _pier_work_close(pir_u->wok_u); + pir_u->wok_u = 0; + } + + // close db + // + if ( pir_u->log_u ) { + u3_disk_exit(pir_u->log_u); + pir_u->log_u = 0; + } + + pir_u->sat_e = u3_psat_done; + + _pier_done(pir_u); +} + +/* c3_rand(): fill a 512-bit (16-word) buffer. +*/ +void +c3_rand(c3_w* rad_w) +{ + if ( 0 != ent_getentropy(rad_w, 64) ) { + fprintf(stderr, "c3_rand getentropy: %s\n", strerror(errno)); + // XX review + // + u3_king_bail(); + } +} + +/* _pier_dump_tape(): dump a tape, old style. Don't do this. +*/ +static void +_pier_dump_tape(FILE* fil_u, u3_noun tep) +{ + u3_noun tap = tep; + + while ( c3y == u3du(tap) ) { + c3_c car_c; + + // XX this utf-8 caution is unwarranted + // + // we already write() utf8 directly to streams in term.c + // + // if ( u3h(tap) >= 127 ) { + // car_c = '?'; + // } else + car_c = u3h(tap); + + putc(car_c, fil_u); + tap = u3t(tap); + } + + u3z(tep); +} + +/* _pier_dump_wall(): dump a wall, old style. Don't do this. +*/ +static void +_pier_dump_wall(FILE* fil_u, u3_noun wol) +{ + u3_noun wal = wol; + + while ( u3_nul != wal ) { + _pier_dump_tape(fil_u, u3k(u3h(wal))); + + wal = u3t(wal); + + if ( u3_nul != wal ) { + putc(13, fil_u); + putc(10, fil_u); + } + } + + u3z(wol); +} + +/* u3_pier_tank(): dump single tank. +*/ +void +u3_pier_tank(c3_l tab_l, c3_w pri_w, u3_noun tac) +{ + u3_noun blu = u3_term_get_blew(0); + c3_l col_l = u3h(blu); + FILE* fil_u = u3_term_io_hija(); + + // XX temporary, for urb.py test runner + // XX eval --cue also using this; + // would be nice to have official way to dump goof to stderr + // + if ( c3y == u3_Host.ops_u.dem ) { + fil_u = stderr; + } + + if ( c3n == u3_Host.ops_u.tem ) { + switch ( pri_w ) { + case 3: fprintf(fil_u, "\033[31m>>> "); break; + case 2: fprintf(fil_u, "\033[33m>> "); break; + case 1: fprintf(fil_u, "\033[32m> "); break; + case 0: fprintf(fil_u, "\033[38;5;244m"); break; + } + } + else { + switch ( pri_w ) { + case 3: fprintf(fil_u, ">>> "); break; + case 2: fprintf(fil_u, ">> "); break; + case 1: fprintf(fil_u, "> "); break; + } + } + + // if we have no arvo kernel and can't evaluate nock + // only print %leaf tanks + // + if ( 0 == u3A->roc ) { + if ( c3__leaf == u3h(tac) ) { + _pier_dump_tape(fil_u, u3k(u3t(tac))); + } + } + // We are calling nock here, but hopefully need no protection. + // + else { + u3_noun wol = u3dc("wash", u3nc(tab_l, col_l), u3k(tac)); + + _pier_dump_wall(fil_u, wol); + } + + if ( c3n == u3_Host.ops_u.tem ) { + fprintf(fil_u, "\033[0m"); + } + + fflush(fil_u); + + u3_term_io_loja(0, fil_u); + u3z(blu); + u3z(tac); +} + +/* u3_pier_punt(): dump tank list. +*/ +void +u3_pier_punt(c3_l tab_l, u3_noun tac) +{ + u3_noun cat = tac; + + while ( c3y == u3du(cat) ) { + u3_pier_tank(tab_l, 0, u3k(u3h(cat))); + cat = u3t(cat); + } + + u3z(tac); +} + +/* u3_pier_punt_goof(): dump a [mote tang] crash report. +*/ +void +u3_pier_punt_goof(const c3_c* cap_c, u3_noun dud) +{ + u3_noun bud = dud; + u3_noun mot, tan; + + u3x_cell(dud, &mot, &tan); + + u3l_log(""); + u3_pier_punt(0, u3qb_flop(tan)); + + { + c3_c* mot_c = u3r_string(mot); + u3l_log("%s: bail: %%%s", cap_c, mot_c); + c3_free(mot_c); + } + + u3z(bud); +} + +/* u3_pier_punt_ovum(): print ovum details. +*/ +void +u3_pier_punt_ovum(const c3_c* cap_c, u3_noun wir, u3_noun tag) +{ + c3_c* tag_c = u3r_string(tag); + u3_noun riw = u3do("spat", wir); + c3_c* wir_c = u3r_string(riw); + + u3l_log("%s: %%%s event on %s failed\n", cap_c, tag_c, wir_c); + + c3_free(tag_c); + c3_free(wir_c); + u3z(riw); +} + +/* u3_pier_sway(): print trace. +*/ +void +u3_pier_sway(c3_l tab_l, u3_noun tax) +{ + u3_noun mok = u3dc("mook", 2, tax); + + u3_pier_punt(tab_l, u3k(u3t(mok))); + u3z(mok); +} + +/* u3_pier_mark(): mark all Loom allocations in all u3_pier structs. +*/ +c3_w +u3_pier_mark(FILE* fil_u) +{ + return 0; +} diff --git a/vere/pkg/vere/platform/darwin/daemon.c b/vere/pkg/vere/platform/darwin/daemon.c new file mode 100644 index 0000000..3310062 --- /dev/null +++ b/vere/pkg/vere/platform/darwin/daemon.c @@ -0,0 +1,93 @@ +/// @file + +#include "noun.h" +#include "vere.h" +#include + +/* + This is set to the the write-end of a pipe when Urbit is started in + daemon mode. It's meant to be used as a signal to the parent process + that the child process has finished booting. +*/ +static c3_i _child_process_booted_signal_fd = -1; + +/* + This should be called whenever the ship has been booted enough to + handle commands from automation code. Specifically, once the Eyre's + `chis` interface is up and running. + + In daemon mode, this signals to the parent process that it can + exit. Otherwise, it does nothing. + + Once we've sent a signal with `write`, we close the file descriptor + and overwrite the global to make it impossible to accidentally do + this twice. +*/ +static void _on_boot_completed_cb() { + c3_c buf[2] = {0,0}; + + if ( -1 == _child_process_booted_signal_fd ) { + return; + } + + if ( 0 == write(_child_process_booted_signal_fd, buf, 1) ) { + u3_assert(!"_on_boot_completed_cb: Can't write to parent FD"); + } + + close(_child_process_booted_signal_fd); + _child_process_booted_signal_fd = -1; +} + +/* u3_daemon_init(): platform-specific daemon mode initialization. + + We use a pipe to communicate between the child and the parent. The + parent waits for the child to write something to the pipe and + then exits. If the pipe is closed with nothing written to it, get + the exit status from the child process and also exit with that status. + + We want the child to write to the pipe once it's booted, so we put + `_on_boot_completed_cb` into `u3_Host.bot_f`, which is NULL in + non-daemon mode. That gets called once the `chis` service is + available. + + In both processes, we are good fork() citizens, and close all unused + file descriptors. Closing `pipefd[1]` in the parent process is + especially important, since the pipe needs to be closed if the child + process dies. When the pipe is closed, the read fails, and that's + how we know that something went wrong. + + There are some edge cases around `WEXITSTATUS` that are not handled + here, but I don't think it matters. +*/ +void +u3_daemon_init() +{ + c3_i pipefd[2]; + + if ( 0 != pipe(pipefd) ) { + u3_assert(!"Failed to create pipe"); + } + + pid_t childpid = fork(); + + if ( 0 == childpid ) { + close(pipefd[0]); + _child_process_booted_signal_fd = pipefd[1]; + u3_Host.bot_f = _on_boot_completed_cb; + return; + } + + close(pipefd[1]); + close(0); + close(1); + close(2); + + c3_c buf[2] = {0,0}; + if ( 1 == read(pipefd[0], buf, 1) ) { + exit(0); + } + + c3_i status; + wait(&status); + exit(WEXITSTATUS(status)); +} diff --git a/vere/pkg/vere/platform/darwin/mach.c b/vere/pkg/vere/platform/darwin/mach.c new file mode 100644 index 0000000..9775882 --- /dev/null +++ b/vere/pkg/vere/platform/darwin/mach.c @@ -0,0 +1,28 @@ +#include "log.h" + +#include +#include +#include +#include + + +// lldb does not listen to BSD signals, it only listens to Mach exceptions. +// The Mach exception EXC_BAD_ACCESS corresponds to SIGSEGV, but lldb has +// problems converting between them because of a longstanding macOS kernel bug. +// This means that without this workaround we cannot debug our binaries with +// lldb. The first segfault we hit causes an infinite loop in lldb no matter +// how many times you try to continue. This workaround is implemented in projects +// such as the Go runtime. +// See https://bugs.llvm.org/show_bug.cgi?id=22868#c1 for more details. + +void darwin_register_mach_exception_handler() { + kern_return_t kr = task_set_exception_ports( + mach_task_self(), + EXC_MASK_BAD_ACCESS, // SIGSEGV + MACH_PORT_NULL, + EXCEPTION_STATE_IDENTITY, + MACHINE_THREAD_STATE); + if ( KERN_SUCCESS != kr) { + u3l_log("mach: unable to register exception handler"); + } +} diff --git a/vere/pkg/vere/platform/darwin/ptty.c b/vere/pkg/vere/platform/darwin/ptty.c new file mode 100644 index 0000000..a1ec334 --- /dev/null +++ b/vere/pkg/vere/platform/darwin/ptty.c @@ -0,0 +1,192 @@ +/// @file + +#include "c3/c3.h" +#include "noun.h" +#include "vere.h" +#include +#include + +/* u3_ptty: POSIX terminal extension to u3_utty. +*/ +typedef struct { + u3_utty tty_u; // common tty structure + c3_i cug_i; // blocking fcntl flags + c3_i nob_i; // nonblocking fcntl flags + struct termios bak_u; // cooked terminal state + struct termios raw_u; // raw terminal state +} u3_ptty; + +/* _term_tcsetattr(): tcsetattr w/retry on EINTR. +*/ +static c3_i +_term_tcsetattr(c3_i fil_i, c3_i act_i, const struct termios* tms_u) +{ + c3_i ret_i = 0; + c3_w len_w = 0; + + do { + // abort pathological retry loop + // + if ( 100 == ++len_w ) { + fprintf(stderr, "term: tcsetattr loop: %s\r\n", strerror(errno)); + return -1; + } + ret_i = tcsetattr(fil_i, act_i, tms_u); + } while ( (-1 == ret_i) && (EINTR == errno) ); + + return ret_i; +} + +/* _ttyf_start_raw_input(): sets the tty to raw input. +*/ +static c3_o +_ttyf_start_raw_input(u3_utty* uty_u) +{ + u3_ptty* pty_u = (u3_ptty*)uty_u; + if ( 0 != _term_tcsetattr(uty_u->fid_i, TCSADRAIN, &pty_u->raw_u) ) { + return c3n; + } + if ( -1 == fcntl(uty_u->fid_i, F_SETFL, pty_u->nob_i) ) { + u3_assert(!"init-fcntl"); + } + return c3y; +} + +/* _ttyf_start_raw_input(): ends raw input on the tty. +*/ +static c3_o +_ttyf_end_raw_input(u3_utty* uty_u) +{ + u3_ptty* pty_u = (u3_ptty*)uty_u; + if ( 0 != _term_tcsetattr(uty_u->fid_i, TCSADRAIN, &pty_u->bak_u) ) { + return c3n; + } + if ( -1 == fcntl(uty_u->fid_i, F_SETFL, pty_u->cug_i) ) { + u3_assert(!"exit-fcntl"); + } + return c3y; +} + +/* _ttyf_hija(): hijacks the tty for cooked output. +*/ +static c3_o +_ttyf_hija(u3_utty* uty_u) +{ + u3_ptty* pty_u = (u3_ptty*)uty_u; + if ( 0 != _term_tcsetattr(1, TCSADRAIN, &pty_u->bak_u) ) { + perror("hija-tcsetattr-1"); + u3_assert(!"hija-tcsetattr"); + } + if ( -1 == fcntl(1, F_SETFL, pty_u->cug_i) ) { + perror("hija-fcntl-1"); + u3_assert(!"hija-fcntl"); + } + if ( 0 != _term_tcsetattr(0, TCSADRAIN, &pty_u->bak_u) ) { + perror("hija-tcsetattr-0"); + u3_assert(!"hija-tcsetattr"); + } + if ( -1 == fcntl(0, F_SETFL, pty_u->cug_i) ) { + perror("hija-fcntl-0"); + u3_assert(!"hija-fcntl"); + } + return c3y; +} + +/* _ttyf_loja(): releases the tty from cooked output. +*/ +static c3_o +_ttyf_loja(u3_utty* uty_u) +{ + u3_ptty* pty_u = (u3_ptty*)uty_u; + if ( 0 != _term_tcsetattr(1, TCSADRAIN, &pty_u->raw_u) ) { + perror("loja-tcsetattr-1"); + u3_assert(!"loja-tcsetattr"); + } + if ( -1 == fcntl(1, F_SETFL, pty_u->nob_i) ) { + perror("hija-fcntl-1"); + u3_assert(!"loja-fcntl"); + } + if ( 0 != _term_tcsetattr(0, TCSADRAIN, &pty_u->raw_u) ) { + perror("loja-tcsetattr-0"); + u3_assert(!"loja-tcsetattr"); + } + if ( -1 == fcntl(0, F_SETFL, pty_u->nob_i) ) { + perror("hija-fcntl-0"); + u3_assert(!"loja-fcntl"); + } + return c3y; +} + +/* _ttyf_get_winsize(): gets the tty window size. +*/ +static c3_o +_ttyf_get_winsize(u3_utty* uty_u, c3_l* col_l, c3_l* row_l) +{ + struct winsize siz_u; + if ( 0 == ioctl(uty_u->fid_i, TIOCGWINSZ, &siz_u) ) + { + *col_l = siz_u.ws_col; + *row_l = siz_u.ws_row; + return c3y; + } else { + return c3n; + } +} + +/* u3_ptty_init(): initialize platform-specific tty. +*/ +u3_utty* +u3_ptty_init(uv_loop_t* lup_u, const c3_c** err_c) +{ + u3_ptty* pty_u = c3_calloc(sizeof(u3_ptty)); + u3_utty* uty_u = &pty_u->tty_u; + + if ( !isatty(0) || !isatty(1) ) { + *err_c = "not a tty"; + c3_free(pty_u); + return NULL; + } + + uv_pipe_init(lup_u, &uty_u->pin_u.pip_u, 0); + uv_pipe_init(lup_u, &uty_u->pop_u.pip_u, 0); + uv_pipe_open(&uty_u->pin_u.pip_u, 0); + uv_pipe_open(&uty_u->pop_u.pip_u, 1); + + // Load old terminal state to restore. + // + { + if ( 0 != tcgetattr(uty_u->fid_i, &pty_u->bak_u) ) { + u3_assert(!"init-tcgetattr"); + } + if ( -1 == fcntl(uty_u->fid_i, F_GETFL, &pty_u->cug_i) ) { + u3_assert(!"init-fcntl"); + } + pty_u->cug_i &= ~O_NONBLOCK; // could fix? + pty_u->nob_i = pty_u->cug_i | O_NONBLOCK; // O_NDELAY on older unix + } + + // Construct raw termios configuration. + // + // makes input available per-character, does not echo input, + // disables special input pre-processing, output post-processing. + // + { + pty_u->raw_u = pty_u->bak_u; + + pty_u->raw_u.c_lflag &= ~(ECHO | ECHONL | ICANON | IEXTEN); + pty_u->raw_u.c_iflag &= ~(ICRNL | INPCK | ISTRIP); + pty_u->raw_u.c_cflag &= ~(CSIZE | PARENB); + pty_u->raw_u.c_cflag |= CS8; + pty_u->raw_u.c_oflag &= ~(OPOST); + pty_u->raw_u.c_cc[VMIN] = 0; + pty_u->raw_u.c_cc[VTIME] = 0; + } + + uty_u->fid_i = 1; + uty_u->sta_f = _ttyf_start_raw_input; + uty_u->sto_f = _ttyf_end_raw_input; + uty_u->hij_f = _ttyf_hija; + uty_u->loj_f = _ttyf_loja; + uty_u->wsz_f = _ttyf_get_winsize; + return uty_u; +} diff --git a/vere/pkg/vere/platform/linux/daemon.c b/vere/pkg/vere/platform/linux/daemon.c new file mode 100644 index 0000000..3310062 --- /dev/null +++ b/vere/pkg/vere/platform/linux/daemon.c @@ -0,0 +1,93 @@ +/// @file + +#include "noun.h" +#include "vere.h" +#include + +/* + This is set to the the write-end of a pipe when Urbit is started in + daemon mode. It's meant to be used as a signal to the parent process + that the child process has finished booting. +*/ +static c3_i _child_process_booted_signal_fd = -1; + +/* + This should be called whenever the ship has been booted enough to + handle commands from automation code. Specifically, once the Eyre's + `chis` interface is up and running. + + In daemon mode, this signals to the parent process that it can + exit. Otherwise, it does nothing. + + Once we've sent a signal with `write`, we close the file descriptor + and overwrite the global to make it impossible to accidentally do + this twice. +*/ +static void _on_boot_completed_cb() { + c3_c buf[2] = {0,0}; + + if ( -1 == _child_process_booted_signal_fd ) { + return; + } + + if ( 0 == write(_child_process_booted_signal_fd, buf, 1) ) { + u3_assert(!"_on_boot_completed_cb: Can't write to parent FD"); + } + + close(_child_process_booted_signal_fd); + _child_process_booted_signal_fd = -1; +} + +/* u3_daemon_init(): platform-specific daemon mode initialization. + + We use a pipe to communicate between the child and the parent. The + parent waits for the child to write something to the pipe and + then exits. If the pipe is closed with nothing written to it, get + the exit status from the child process and also exit with that status. + + We want the child to write to the pipe once it's booted, so we put + `_on_boot_completed_cb` into `u3_Host.bot_f`, which is NULL in + non-daemon mode. That gets called once the `chis` service is + available. + + In both processes, we are good fork() citizens, and close all unused + file descriptors. Closing `pipefd[1]` in the parent process is + especially important, since the pipe needs to be closed if the child + process dies. When the pipe is closed, the read fails, and that's + how we know that something went wrong. + + There are some edge cases around `WEXITSTATUS` that are not handled + here, but I don't think it matters. +*/ +void +u3_daemon_init() +{ + c3_i pipefd[2]; + + if ( 0 != pipe(pipefd) ) { + u3_assert(!"Failed to create pipe"); + } + + pid_t childpid = fork(); + + if ( 0 == childpid ) { + close(pipefd[0]); + _child_process_booted_signal_fd = pipefd[1]; + u3_Host.bot_f = _on_boot_completed_cb; + return; + } + + close(pipefd[1]); + close(0); + close(1); + close(2); + + c3_c buf[2] = {0,0}; + if ( 1 == read(pipefd[0], buf, 1) ) { + exit(0); + } + + c3_i status; + wait(&status); + exit(WEXITSTATUS(status)); +} diff --git a/vere/pkg/vere/platform/linux/ptty.c b/vere/pkg/vere/platform/linux/ptty.c new file mode 100644 index 0000000..a1ec334 --- /dev/null +++ b/vere/pkg/vere/platform/linux/ptty.c @@ -0,0 +1,192 @@ +/// @file + +#include "c3/c3.h" +#include "noun.h" +#include "vere.h" +#include +#include + +/* u3_ptty: POSIX terminal extension to u3_utty. +*/ +typedef struct { + u3_utty tty_u; // common tty structure + c3_i cug_i; // blocking fcntl flags + c3_i nob_i; // nonblocking fcntl flags + struct termios bak_u; // cooked terminal state + struct termios raw_u; // raw terminal state +} u3_ptty; + +/* _term_tcsetattr(): tcsetattr w/retry on EINTR. +*/ +static c3_i +_term_tcsetattr(c3_i fil_i, c3_i act_i, const struct termios* tms_u) +{ + c3_i ret_i = 0; + c3_w len_w = 0; + + do { + // abort pathological retry loop + // + if ( 100 == ++len_w ) { + fprintf(stderr, "term: tcsetattr loop: %s\r\n", strerror(errno)); + return -1; + } + ret_i = tcsetattr(fil_i, act_i, tms_u); + } while ( (-1 == ret_i) && (EINTR == errno) ); + + return ret_i; +} + +/* _ttyf_start_raw_input(): sets the tty to raw input. +*/ +static c3_o +_ttyf_start_raw_input(u3_utty* uty_u) +{ + u3_ptty* pty_u = (u3_ptty*)uty_u; + if ( 0 != _term_tcsetattr(uty_u->fid_i, TCSADRAIN, &pty_u->raw_u) ) { + return c3n; + } + if ( -1 == fcntl(uty_u->fid_i, F_SETFL, pty_u->nob_i) ) { + u3_assert(!"init-fcntl"); + } + return c3y; +} + +/* _ttyf_start_raw_input(): ends raw input on the tty. +*/ +static c3_o +_ttyf_end_raw_input(u3_utty* uty_u) +{ + u3_ptty* pty_u = (u3_ptty*)uty_u; + if ( 0 != _term_tcsetattr(uty_u->fid_i, TCSADRAIN, &pty_u->bak_u) ) { + return c3n; + } + if ( -1 == fcntl(uty_u->fid_i, F_SETFL, pty_u->cug_i) ) { + u3_assert(!"exit-fcntl"); + } + return c3y; +} + +/* _ttyf_hija(): hijacks the tty for cooked output. +*/ +static c3_o +_ttyf_hija(u3_utty* uty_u) +{ + u3_ptty* pty_u = (u3_ptty*)uty_u; + if ( 0 != _term_tcsetattr(1, TCSADRAIN, &pty_u->bak_u) ) { + perror("hija-tcsetattr-1"); + u3_assert(!"hija-tcsetattr"); + } + if ( -1 == fcntl(1, F_SETFL, pty_u->cug_i) ) { + perror("hija-fcntl-1"); + u3_assert(!"hija-fcntl"); + } + if ( 0 != _term_tcsetattr(0, TCSADRAIN, &pty_u->bak_u) ) { + perror("hija-tcsetattr-0"); + u3_assert(!"hija-tcsetattr"); + } + if ( -1 == fcntl(0, F_SETFL, pty_u->cug_i) ) { + perror("hija-fcntl-0"); + u3_assert(!"hija-fcntl"); + } + return c3y; +} + +/* _ttyf_loja(): releases the tty from cooked output. +*/ +static c3_o +_ttyf_loja(u3_utty* uty_u) +{ + u3_ptty* pty_u = (u3_ptty*)uty_u; + if ( 0 != _term_tcsetattr(1, TCSADRAIN, &pty_u->raw_u) ) { + perror("loja-tcsetattr-1"); + u3_assert(!"loja-tcsetattr"); + } + if ( -1 == fcntl(1, F_SETFL, pty_u->nob_i) ) { + perror("hija-fcntl-1"); + u3_assert(!"loja-fcntl"); + } + if ( 0 != _term_tcsetattr(0, TCSADRAIN, &pty_u->raw_u) ) { + perror("loja-tcsetattr-0"); + u3_assert(!"loja-tcsetattr"); + } + if ( -1 == fcntl(0, F_SETFL, pty_u->nob_i) ) { + perror("hija-fcntl-0"); + u3_assert(!"loja-fcntl"); + } + return c3y; +} + +/* _ttyf_get_winsize(): gets the tty window size. +*/ +static c3_o +_ttyf_get_winsize(u3_utty* uty_u, c3_l* col_l, c3_l* row_l) +{ + struct winsize siz_u; + if ( 0 == ioctl(uty_u->fid_i, TIOCGWINSZ, &siz_u) ) + { + *col_l = siz_u.ws_col; + *row_l = siz_u.ws_row; + return c3y; + } else { + return c3n; + } +} + +/* u3_ptty_init(): initialize platform-specific tty. +*/ +u3_utty* +u3_ptty_init(uv_loop_t* lup_u, const c3_c** err_c) +{ + u3_ptty* pty_u = c3_calloc(sizeof(u3_ptty)); + u3_utty* uty_u = &pty_u->tty_u; + + if ( !isatty(0) || !isatty(1) ) { + *err_c = "not a tty"; + c3_free(pty_u); + return NULL; + } + + uv_pipe_init(lup_u, &uty_u->pin_u.pip_u, 0); + uv_pipe_init(lup_u, &uty_u->pop_u.pip_u, 0); + uv_pipe_open(&uty_u->pin_u.pip_u, 0); + uv_pipe_open(&uty_u->pop_u.pip_u, 1); + + // Load old terminal state to restore. + // + { + if ( 0 != tcgetattr(uty_u->fid_i, &pty_u->bak_u) ) { + u3_assert(!"init-tcgetattr"); + } + if ( -1 == fcntl(uty_u->fid_i, F_GETFL, &pty_u->cug_i) ) { + u3_assert(!"init-fcntl"); + } + pty_u->cug_i &= ~O_NONBLOCK; // could fix? + pty_u->nob_i = pty_u->cug_i | O_NONBLOCK; // O_NDELAY on older unix + } + + // Construct raw termios configuration. + // + // makes input available per-character, does not echo input, + // disables special input pre-processing, output post-processing. + // + { + pty_u->raw_u = pty_u->bak_u; + + pty_u->raw_u.c_lflag &= ~(ECHO | ECHONL | ICANON | IEXTEN); + pty_u->raw_u.c_iflag &= ~(ICRNL | INPCK | ISTRIP); + pty_u->raw_u.c_cflag &= ~(CSIZE | PARENB); + pty_u->raw_u.c_cflag |= CS8; + pty_u->raw_u.c_oflag &= ~(OPOST); + pty_u->raw_u.c_cc[VMIN] = 0; + pty_u->raw_u.c_cc[VTIME] = 0; + } + + uty_u->fid_i = 1; + uty_u->sta_f = _ttyf_start_raw_input; + uty_u->sto_f = _ttyf_end_raw_input; + uty_u->hij_f = _ttyf_hija; + uty_u->loj_f = _ttyf_loja; + uty_u->wsz_f = _ttyf_get_winsize; + return uty_u; +} diff --git a/vere/pkg/vere/save.c b/vere/pkg/vere/save.c new file mode 100644 index 0000000..554f962 --- /dev/null +++ b/vere/pkg/vere/save.c @@ -0,0 +1,63 @@ +/// @file + +#include "noun.h" +#include "vere.h" + +/* _save_time_cb(): timer callback. +*/ +static void +_save_time_cb(uv_timer_t* tim_u) +{ + u3_pier *pir_u = tim_u->data; + u3_pier_save(pir_u); +} + +#if 0 +/* u3_save_ef_chld(): report save termination. +*/ +void +u3_save_ef_chld(u3_pier *pir_u) +{ + u3_save* sav_u = pir_u->sav_u; + c3_i loc_i; + c3_w pid_w; + + /* modified for cases with no pid_w + */ + u3l_log("checkpoint: complete %d", sav_u->pid_w); + pid_w = wait(&loc_i); + if (0 != sav_u->pid_w) { + u3_assert(pid_w == sav_u->pid_w); + } + else { + u3_assert(pid_w > 0); + } + sav_u->pid_w = 0; +} +#endif + +/* u3_save_io_init(): initialize autosave. +*/ +void +u3_save_io_init(u3_pier *pir_u) +{ + u3_save* sav_u = pir_u->sav_u; + + sav_u->req_d = 0; + sav_u->dun_d = 0; + sav_u->pid_w = 0; + + sav_u->tim_u.data = pir_u; + uv_timer_init(u3L, &sav_u->tim_u); + uv_timer_start(&sav_u->tim_u, _save_time_cb, u3_Host.ops_u.sap_w * 1000, + u3_Host.ops_u.sap_w * 1000); +} + +/* u3_save_io_exit(): terminate save I/O. +*/ +void +u3_save_io_exit(u3_pier *pir_u) +{ + u3_save* sav_u = pir_u->sav_u; + uv_close((uv_handle_t*)&sav_u->tim_u, 0); +} diff --git a/vere/pkg/vere/serf.c b/vere/pkg/vere/serf.c new file mode 100644 index 0000000..38b5494 --- /dev/null +++ b/vere/pkg/vere/serf.c @@ -0,0 +1,1254 @@ +/// @file + +#include "noun.h" + +#include "vere.h" +#include "ivory.h" +#include "ur/ur.h" +#include + +/* +|% +:: +writ: from king to serf +:: +:: next steps: +:: - %peek persistent dates (in arvo or serf)? +:: - |mass should be a query of the serf directly +:: - add duct or vane stack for spinner +:: ++$ writ + $% $: %live + $% [%cram eve=@] + [%exit cod=@] + [%save eve=@] + [%meld ~] + [%pack ~] + == == + [%peek mil=@ sam=*] :: gang (each path $%([%once @tas @tas path] [beam @tas beam])) + [%play eve=@ lit=(list ?((pair @da ovum) *))] + $: %quiz + $% [%quac ~] + [%quic ~] + == == + [%work mil=@ job=(pair @da ovum)] + == +:: +plea: from serf to king +:: ++$ plea + $% [%live ~] + [%ripe [pro=%1 hon=@ nok=@] eve=@ mug=@] + [%slog pri=@ tank] + [%flog cord] + $: %peek + $% [%done dat=(unit (cask))] + [%bail dud=goof] + == == + $: %play + $% [%done mug=@] + [%bail eve=@ mug=@ dud=goof] + == == + $: %quiz + $% [%quac p=*] + [%quic p=*] + == == + $: %work + $% [%done eve=@ mug=@ fec=(list ovum)] + [%swap eve=@ mug=@ job=(pair @da ovum) fec=(list ovum)] + [%bail lud=(list goof)] + == == + == +-- +*/ + +/* serf memory-threshold levels +*/ +enum { + _serf_mas_init = 0, // initial + _serf_mas_hit1 = 1, // past low threshold + _serf_mas_hit0 = 2 // have high threshold +}; + +/* serf post-op flags +*/ +enum { + _serf_fag_none = 0, // nothing to do + _serf_fag_hit1 = 1 << 0, // hit low threshold + _serf_fag_hit0 = 1 << 1, // hit high threshold + _serf_fag_mute = 1 << 2, // mutated state + _serf_fag_much = 1 << 3, // bytecode hack + _serf_fag_vega = 1 << 4 // kernel reset +}; + +/* _serf_quac: convert a quac to a noun. +*/ +u3_noun +_serf_quac(u3m_quac* mas_u) +{ + u3_noun list = u3_nul; + c3_w i_w = 0; + if ( mas_u->qua_u != NULL ) { + while ( mas_u->qua_u[i_w] != NULL ) { + list = u3nc(_serf_quac(mas_u->qua_u[i_w]), list); + i_w++; + } + } + list = u3kb_flop(list); + + u3_noun mas = u3nt(u3i_string(mas_u->nam_c), u3i_word(mas_u->siz_w), list); + + c3_free(mas_u->nam_c); + c3_free(mas_u->qua_u); + c3_free(mas_u); + + return mas; +} + +/* _serf_quacs: convert an array of quacs to a noun list. +*/ +u3_noun +_serf_quacs(u3m_quac** all_u) +{ + u3_noun list = u3_nul; + c3_w i_w = 0; + while ( all_u[i_w] != NULL ) { + list = u3nc(_serf_quac(all_u[i_w]), list); + i_w++; + } + c3_free(all_u); + return u3kb_flop(list); +} + +/* _serf_print_quacs: print an array of quacs. +*/ +void +_serf_print_quacs(FILE* fil_u, u3m_quac** all_u) +{ + fprintf(fil_u, "\r\n"); + c3_w i_w = 0; + while ( all_u[i_w] != NULL ) { + u3a_print_quac(fil_u, 0, all_u[i_w]); + i_w++; + } +} + +/* _serf_grab(): garbage collect, checking for profiling. RETAIN. +*/ +static u3_noun +_serf_grab(u3_noun sac, c3_o pri_o) +{ + if ( u3_nul == sac) { + if ( u3C.wag_w & (u3o_debug_ram | u3o_check_corrupt) ) { + u3m_grab(sac, u3_none); + } + return u3_nul; + } + else { + FILE* fil_u; + +#ifdef U3_MEMORY_LOG + { + u3_noun wen = u3dc("scot", c3__da, u3k(u3A->now)); + c3_c* wen_c = u3r_string(wen); + + c3_c nam_c[2048]; + snprintf(nam_c, 2048, "%s/.urb/put/mass", u3C.dir_c); + + struct stat st; + if ( -1 == stat(nam_c, &st) ) { + c3_mkdir(nam_c, 0700); + } + + c3_c man_c[2054]; + snprintf(man_c, 2053, "%s/%s-serf.txt", nam_c, wen_c); + + fil_u = c3_fopen(man_c, "w"); + fprintf(fil_u, "%s\r\n", wen_c); + + c3_free(wen_c); + u3z(wen); + } +#else + { + fil_u = stderr; + } +#endif + + u3_assert( u3R == &(u3H->rod_u) ); + + u3m_quac* pro_u = u3a_prof(fil_u, sac); + + if ( NULL == pro_u ) { + fflush(fil_u); + u3z(sac); + return u3_nul; + } else { + u3m_quac** all_u = c3_malloc(sizeof(*all_u) * 11); + all_u[0] = pro_u; + + u3m_quac** var_u = u3m_mark(); + all_u[1] = var_u[0]; + all_u[2] = var_u[1]; + all_u[3] = var_u[2]; + all_u[4] = var_u[3]; + c3_free(var_u); + + c3_w tot_w = all_u[0]->siz_w + all_u[1]->siz_w + all_u[2]->siz_w + + all_u[3]->siz_w + all_u[4]->siz_w; + + all_u[5] = c3_calloc(sizeof(*all_u[5])); + all_u[5]->nam_c = strdup("space profile"); + all_u[5]->siz_w = u3a_mark_noun(sac) * 4; + + tot_w += all_u[5]->siz_w; + + all_u[6] = c3_calloc(sizeof(*all_u[6])); + all_u[6]->nam_c = strdup("total marked"); + all_u[6]->siz_w = tot_w; + + all_u[7] = c3_calloc(sizeof(*all_u[7])); + all_u[7]->nam_c = strdup("free lists"); + all_u[7]->siz_w = u3a_idle(u3R) * 4; + + all_u[8] = c3_calloc(sizeof(*all_u[8])); + all_u[8]->nam_c = strdup("sweep"); + all_u[8]->siz_w = u3a_sweep() * 4; + + all_u[9] = c3_calloc(sizeof(*all_u[9])); + all_u[9]->nam_c = strdup("loom"); + all_u[9]->siz_w = u3C.wor_i * 4; + + all_u[10] = NULL; + + if ( c3y == pri_o ) { + _serf_print_quacs(fil_u, all_u); + } + fflush(fil_u); + +#ifdef U3_MEMORY_LOG + { + fclose(fil_u); + } +#endif + + u3_noun mas = _serf_quacs( all_u); + u3z(sac); + + return mas; + } + } +} + +/* u3_serf_grab(): garbage collect. +*/ +u3_noun +u3_serf_grab(c3_o pri_o) +{ + u3_noun sac = u3_nul; + u3_noun res = u3_nul; + + u3_assert( u3R == &(u3H->rod_u) ); + + { + u3_noun sam, gon; + + { + u3_noun pax = u3nc(c3__whey, u3_nul); + u3_noun lyc = u3nc(u3_nul, u3_nul); + sam = u3nt(lyc, c3n, u3nq(c3__once, u3_blip, u3_blip, pax)); + } + + gon = u3m_soft(0, u3v_peek, sam); + + { + u3_noun tag, dat, val; + u3x_cell(gon, &tag, &dat); + + if ( (u3_blip == tag) + && (u3_nul != dat) + && (c3y == u3r_pq(u3t(dat), c3__omen, 0, &val)) + && (c3y == u3r_p(val, c3__mass, &sac)) ) + { + u3k(sac); + } + } + + u3z(gon); + } + + if ( u3_nul != sac ) { + res = _serf_grab(sac, pri_o); + } + else { + fprintf(stderr, "sac is empty\r\n"); + u3m_quac** var_u = u3m_mark(); + + c3_w tot_w = 0; + c3_w i_w = 0; + while ( var_u[i_w] != NULL ) { + tot_w += var_u[i_w]->siz_w; + u3a_quac_free(var_u[i_w]); + i_w++; + } + c3_free(var_u); + + u3a_print_memory(stderr, "total marked", tot_w / 4); + u3a_print_memory(stderr, "free lists", u3a_idle(u3R)); + u3a_print_memory(stderr, "sweep", u3a_sweep()); + fprintf(stderr, "\r\n"); + } + + fflush(stderr); + + return res; +} + +/* u3_serf_post(): update serf state post-writ. +*/ +void +u3_serf_post(u3_serf* sef_u) +{ + if ( sef_u->fag_w & _serf_fag_hit1 ) { + if ( u3C.wag_w & u3o_verbose ) { + u3l_log("serf: threshold 1: %u", u3h_wyt(u3R->cax.per_p)); + } + u3h_trim_to(u3R->cax.per_p, u3h_wyt(u3R->cax.per_p) / 2); + u3m_reclaim(); + } + + if ( sef_u->fag_w & _serf_fag_much ) { + u3m_reclaim(); + } + + if ( sef_u->fag_w & _serf_fag_vega ) { + u3h_trim_to(u3R->cax.per_p, u3h_wyt(u3R->cax.per_p) / 2); + u3m_reclaim(); + } + + // XX this runs on replay too, |mass s/b elsewhere + // + if ( sef_u->fag_w & _serf_fag_mute ) { + u3z(_serf_grab(sef_u->sac, c3y)); + sef_u->sac = u3_nul; + } + + if ( sef_u->fag_w & _serf_fag_hit0 ) { + if ( u3C.wag_w & u3o_verbose ) { + u3l_log("serf: threshold 0: per_p %u", u3h_wyt(u3R->cax.per_p)); + } + u3h_free(u3R->cax.per_p); + u3R->cax.per_p = u3h_new_cache(u3C.per_w); + u3a_print_memory(stderr, "serf: pack: gained", u3m_pack()); + u3l_log(""); + } + + if ( u3C.wag_w & u3o_toss ) { + u3m_toss(); + } + + sef_u->fag_w = _serf_fag_none; +} + +/* _serf_curb(): check for memory threshold +*/ +static inline c3_t +_serf_curb(c3_w pre_w, c3_w pos_w, c3_w hes_w) +{ + return (pre_w > hes_w) && (pos_w <= hes_w); +} + +/* _serf_sure_feck(): event succeeded, send effects. +*/ +static u3_noun +_serf_sure_feck(u3_serf* sef_u, c3_w pre_w, u3_noun vir) +{ + // intercept |mass, observe |reset + // + { + u3_noun riv = vir; + c3_w i_w = 0; + + while ( u3_nul != riv ) { + u3_noun fec = u3t(u3h(riv)); + + // assumes a max of one %mass effect per event + // + if ( c3__mass == u3h(fec) ) { + // save a copy of the %mass data + // + sef_u->sac = u3k(u3t(fec)); + // replace the %mass data with ~ + // + // For efficient transmission to daemon. + // + riv = u3kb_weld(u3qb_scag(i_w, vir), + u3nc(u3nt(u3k(u3h(u3h(riv))), c3__mass, u3_nul), + u3qb_slag(1 + i_w, vir))); + u3z(vir); + vir = riv; + break; + } + + // reclaim memory from persistent caches on |reset + // + if ( c3__vega == u3h(fec) ) { + sef_u->fag_w |= _serf_fag_vega; + } + + riv = u3t(riv); + i_w++; + } + } + + // after a successful event, we check for memory pressure. + // + // if we've exceeded either of two thresholds, we reclaim + // from our persistent caches, and notify the daemon + // (via a "fake" effect) that arvo should trim state + // (trusting that the daemon will enqueue an appropriate event). + // For future flexibility, the urgency of the notification is represented + // by a *decreasing* number: 0 is maximally urgent, 1 less so, &c. + // + // high-priority: 2^25 contiguous words remaining (~128 MB) + // low-priority: 2^27 contiguous words remaining (~536 MB) + // + // once a threshold is hit, it's not a candidate to be hit again + // until memory usage falls below: + // + // high-priority: 2^26 contiguous words remaining (~256 MB) + // low-priority: 2^26 + 2^27 contiguous words remaining (~768 MB) + // + // XX these thresholds should trigger notifications sent to the king + // instead of directly triggering these remedial actions. + // + { + u3_noun pri = u3_none; + c3_w pos_w = u3a_open(u3R); + + // if contiguous free space shrunk, check thresholds + // (and track state to avoid thrashing) + // + if ( pos_w < pre_w ) { + if ( (_serf_mas_hit0 != sef_u->mas_w) + && _serf_curb(pre_w, pos_w, 1 << 25) ) + { + sef_u->mas_w = _serf_mas_hit0; + sef_u->fag_w |= _serf_fag_hit0; + pri = 0; + } + else if ( (_serf_mas_init == sef_u->mas_w) + && _serf_curb(pre_w, pos_w, 1 << 27) ) + { + sef_u->mas_w = _serf_mas_hit1; + sef_u->fag_w |= _serf_fag_hit1; + pri = 1; + } + } + else if ( _serf_mas_init != sef_u->mas_w ) { + if ( ((1 << 26) + (1 << 27)) < pos_w ) { + sef_u->mas_w = _serf_mas_init; + } + else if ( (_serf_mas_hit0 == sef_u->mas_w) + && ((1 << 26) < pos_w) ) + { + sef_u->mas_w = _serf_mas_hit1; + } + } + + // reclaim memory from persistent caches periodically + // + // XX this is a hack to work two things + // - bytecode caches grow rapidly and can't be simply capped + // - we don't make very effective use of our free lists + // + if ( !(sef_u->dun_d % 1024ULL) ) { + sef_u->fag_w |= _serf_fag_much; + } + + // notify daemon of memory pressure via "fake" effect + // + if ( u3_none != pri ) { + u3_noun cad = u3nc(u3nt(u3_blip, c3__arvo, u3_nul), + u3nc(c3__trim, pri)); + vir = u3nc(cad, vir); + } + } + + return vir; +} + +/* _serf_sure_core(): event succeeded, save state. +*/ +static void +_serf_sure_core(u3_serf* sef_u, u3_noun cor) +{ + sef_u->dun_d = sef_u->sen_d; + + u3z(u3A->roc); + u3A->roc = cor; + u3A->eve_d = sef_u->dun_d; + sef_u->mug_l = u3r_mug(u3A->roc); + sef_u->fag_w |= _serf_fag_mute; +} + +/* _serf_sure(): event succeeded, save state and process effects. +*/ +static u3_noun +_serf_sure(u3_serf* sef_u, c3_w pre_w, u3_noun par) +{ + // vir/(list ovum) list of effects + // cor/arvo arvo core + // + u3_noun vir, cor; + u3x_cell(par, &vir, &cor); + + _serf_sure_core(sef_u, u3k(cor)); + vir = _serf_sure_feck(sef_u, pre_w, u3k(vir)); + + u3z(par); + return vir; +} + +/* _serf_make_crud(): +*/ +static u3_noun +_serf_make_crud(u3_noun job, u3_noun dud) +{ + u3_noun now, ovo, new; + u3x_cell(job, &now, &ovo); + + new = u3nt(u3i_vint(u3k(now)), + u3nt(u3_blip, c3__arvo, u3_nul), + u3nt(c3__crud, dud, u3k(ovo))); + + u3z(job); + return new; +} + +/* _serf_poke(): RETAIN +*/ +static u3_noun +_serf_poke(u3_serf* sef_u, c3_c* cap_c, c3_w mil_w, u3_noun job) +{ + u3_noun now, ovo, wen, gon; + u3x_cell(job, &now, &ovo); + + wen = u3A->now; + u3A->now = u3k(now); + +#ifdef U3_EVENT_TIME_DEBUG + struct timeval b4; + c3_c* txt_c; + + gettimeofday(&b4, 0); + + { + u3_noun tag = u3h(u3t(ovo)); + txt_c = u3r_string(tag); + + if ( (c3__belt != tag) + && (c3__crud != tag) ) + { + u3l_log("serf: %s (%" PRIu64 ") %s", cap_c, sef_u->sen_d, txt_c); + } + } +#endif + + gon = u3m_soft(mil_w, u3v_poke, u3k(ovo)); + +#ifdef U3_EVENT_TIME_DEBUG + { + struct timeval f2, d0; + c3_w ms_w; + c3_w clr_w; + + gettimeofday(&f2, 0); + timersub(&f2, &b4, &d0); + + ms_w = (d0.tv_sec * 1000) + (d0.tv_usec / 1000); + clr_w = ms_w > 1000 ? 1 : ms_w < 100 ? 2 : 3; // red, green, yellow + + if ( clr_w != 2 ) { + u3l_log("\x1b[3%dm%%%s (%" PRIu64 ") %4d.%02dms\x1b[0m", + clr_w, txt_c, sef_u->sen_d, ms_w, + (int) (d0.tv_usec % 1000) / 10); + } + + c3_free(txt_c); + } +#endif + + if ( u3_blip != u3h(gon) ) { + u3z(u3A->now); + u3A->now = wen; + } + else { + u3z(wen); + } + + return gon; +} + +/* _serf_work(): apply event, capture effects. +*/ +static u3_noun +_serf_work(u3_serf* sef_u, c3_w mil_w, u3_noun job) +{ + u3_noun gon; + c3_w pre_w = u3a_open(u3R); + + // event numbers must be continuous + // + u3_assert( sef_u->sen_d == sef_u->dun_d); + sef_u->sen_d++; + + gon = _serf_poke(sef_u, "work", mil_w, job); // retain + + // event accepted + // + if ( u3_blip == u3h(gon) ) { + u3_noun vir = _serf_sure(sef_u, pre_w, u3k(u3t(gon))); + + u3z(gon); u3z(job); + return u3nc(c3__done, u3nt(u3i_chubs(1, &sef_u->dun_d), + sef_u->mug_l, + vir)); + } + // event rejected -- bad ciphertext + // + else if ( c3__evil == u3h(gon) ) { + sef_u->sen_d = sef_u->dun_d; + + u3z(job); + return u3nt(c3__bail, gon, u3_nul); + } + // event rejected + // + else { + // stash $goof from first crash + // + u3_noun dud = u3k(gon); + + // XX reclaim on %meme first? + // + + job = _serf_make_crud(job, dud); + gon = _serf_poke(sef_u, "crud", mil_w, job); // retain + + // error notification accepted + // + if ( u3_blip == u3h(gon) ) { + u3_noun vir = _serf_sure(sef_u, pre_w, u3k(u3t(gon))); + + u3z(gon); u3z(dud); + return u3nc(c3__swap, u3nq(u3i_chubs(1, &sef_u->dun_d), + sef_u->mug_l, + job, + vir)); + } + // error notification rejected + // + else { + sef_u->sen_d = sef_u->dun_d; + + // XX reclaim on %meme ? + // + + u3z(job); + return u3nq(c3__bail, gon, dud, u3_nul); + } + } +} + +/* u3_serf_work(): apply event, producing effects. +*/ +u3_noun +u3_serf_work(u3_serf* sef_u, c3_w mil_w, u3_noun job) +{ + c3_t tac_t = !!( u3C.wag_w & u3o_trace ); + c3_c lab_c[2056]; + u3_noun pro; + + // XX refactor tracing + // + if ( tac_t ) { + u3_noun wir = u3h(u3t(job)); + u3_noun cad = u3h(u3t(u3t(job))); + + { + c3_c* cad_c = u3m_pretty(cad); + c3_c* wir_c = u3m_pretty_path(wir); + snprintf(lab_c, 2056, "work [%s %s]", wir_c, cad_c); + c3_free(cad_c); + c3_free(wir_c); + } + + u3t_event_trace(lab_c, 'B'); + } + + // %work must be performed against an extant kernel + // + u3_assert( 0 != sef_u->mug_l); + + pro = u3nc(c3__work, _serf_work(sef_u, mil_w, job)); + + if ( tac_t ) { + u3t_event_trace(lab_c, 'E'); + } + + return pro; +} + +/* _serf_play_life(): +*/ +static u3_noun +_serf_play_life(u3_serf* sef_u, u3_noun eve) +{ + u3_noun gon; + + u3_assert( 0ULL == sef_u->sen_d ); + + { + u3_noun len = u3qb_lent(eve); + u3_assert( c3y == u3r_safe_chub(len, &sef_u->sen_d) ); + u3z(len); + } + + // install an ivory pill to support stack traces + // + // XX support -J + // +// { +// c3_d len_d = u3_Ivory_pill_len; +// c3_y* byt_y = u3_Ivory_pill; +// u3_cue_xeno* sil_u = u3s_cue_xeno_init_with(ur_fib27, ur_fib28); +// u3_weak pil; +// +// if ( u3_none == (pil = u3s_cue_xeno_with(sil_u, len_d, byt_y)) ) { +// u3l_log("lite: unable to cue ivory pill"); +// exit(1); +// } +// +// u3s_cue_xeno_done(sil_u); +// +// if ( c3n == u3v_boot_lite(pil)) { +// u3l_log("lite: boot failed"); +// exit(1); +// } +// } + + gon = u3m_soft(0, u3v_life, eve); + + // lifecycle sequence succeeded + // + if ( u3_blip == u3h(gon) ) { + // save product as initial arvo kernel + // + _serf_sure_core(sef_u, u3k(u3t(gon))); + + u3z(gon); + return u3nc(c3__done, sef_u->mug_l); + } + // lifecycle sequence failed + // + else { + // send failure message and trace + // + sef_u->dun_d = sef_u->sen_d = 0; + + return u3nq(c3__bail, 0, 0, gon); + } +} + +/* _serf_play_poke(): RETAIN +*/ +static u3_noun +_serf_play_poke(u3_noun job) +{ + u3_noun now, ovo, wen, gon; + u3x_cell(job, &now, &ovo); + + wen = u3A->now; + u3A->now = u3k(now); + gon = u3m_soft(0, u3v_poke, u3k(ovo)); + + if ( u3_blip != u3h(gon) ) { + u3z(u3A->now); + u3A->now = wen; + } + else { + u3z(wen); + } + + return gon; +} + +/* _serf_play_list(): +*/ +static u3_noun +_serf_play_list(u3_serf* sef_u, u3_noun eve) +{ + c3_w pre_w = u3a_open(u3R); + u3_noun vev = eve; + u3_noun job, gon; + + while ( u3_nul != eve ) { + job = u3h(eve); + + // bump sent event counter + // + sef_u->sen_d++; + + gon = _serf_play_poke(job); + + // event succeeded, save and continue + // + if ( u3_blip == u3h(gon) ) { + // vir/(list ovum) list of effects + // cor/arvo arvo core + // + u3_noun vir, cor; + u3x_trel(gon, 0, &vir, &cor); + + _serf_sure_core(sef_u, u3k(cor)); + + // process effects to set u3_serf_post flags + // + u3z(_serf_sure_feck(sef_u, pre_w, u3k(vir))); + + u3z(gon); + + // skip |mass on replay + // + u3z(sef_u->sac); + sef_u->sac = u3_nul; + + eve = u3t(eve); + } + // event failed, stop and send trace + // + else { + // reset sent event counter + // + sef_u->sen_d = sef_u->dun_d; + + // XX reclaim on meme ? + // + + // send failure notification + // + u3z(vev); + return u3nc(c3__bail, u3nt(u3i_chubs(1, &sef_u->dun_d), + sef_u->mug_l, + gon)); + } + } + + u3z(vev); + return u3nc(c3__done, sef_u->mug_l); +} + +/* u3_serf_play(): apply event list, producing status. +*/ +u3_noun +u3_serf_play(u3_serf* sef_u, c3_d eve_d, u3_noun lit) +{ + u3_assert( eve_d == 1ULL + sef_u->sen_d ); + + // XX better condition for no kernel? + // + return u3nc(c3__play, ( 0ULL == sef_u->dun_d ) + ? _serf_play_life(sef_u, lit) + : _serf_play_list(sef_u, lit)); +} + +/* u3_serf_peek(): dereference namespace. +*/ +u3_noun +u3_serf_peek(u3_serf* sef_u, c3_w mil_w, u3_noun sam) +{ + c3_t tac_t = !!( u3C.wag_w & u3o_trace ); + c3_c lab_c[2056]; + + // XX refactor tracing + // + if ( tac_t ) { + c3_c* foo_c = u3m_pretty(u3t(sam)); + + { + snprintf(lab_c, 2056, "peek %s", foo_c); + c3_free(foo_c); + } + + u3t_event_trace(lab_c, 'B'); + } + + + u3_noun gon = u3m_soft(mil_w, u3v_peek, sam); + u3_noun pro; + + if ( tac_t ) { + u3t_event_trace(lab_c, 'E'); + } + + + + { + u3_noun tag, dat; + u3x_cell(gon, &tag, &dat); + + // read succeeded, produce result + // + if ( u3_blip == tag ) { + pro = u3nc(c3__done, u3k(dat)); + u3z(gon); + } + // read failed, produce trace + // + // NB, reads should *not* fail deterministically + // + else { + pro = u3nc(c3__bail, gon); + } + } + + return u3nc(c3__peek, pro); +} + +/* _serf_writ_live_exit(): exit on command. +*/ +static void +_serf_writ_live_exit(u3_serf* sef_u, c3_w cod_w) +{ + if ( u3C.wag_w & u3o_debug_cpu ) { + FILE* fil_u; + + { + u3_noun wen = u3dc("scot", c3__da, u3k(u3A->now)); + c3_c* wen_c = u3r_string(wen); + + c3_c nam_c[2048]; + snprintf(nam_c, 2048, "%s/.urb/put/profile", u3C.dir_c); + + struct stat st; + if ( -1 == stat(nam_c, &st) ) { + c3_mkdir(nam_c, 0700); + } + + c3_c man_c[2054]; + snprintf(man_c, 2053, "%s/%s.txt", nam_c, wen_c); + + fil_u = c3_fopen(man_c, "w"); + + c3_free(wen_c); + u3z(wen); + } + + u3t_damp(fil_u); + + { + fclose(fil_u); + } + } + + // XX move to jets.c + // + c3_free(u3D.ray_u); + + sef_u->xit_f(); + + exit(cod_w); +} + +/* _serf_writ_live_save(): save snapshot. +*/ +static void +_serf_writ_live_save(u3_serf* sef_u, c3_d eve_d) +{ + if( eve_d != sef_u->dun_d ) { + fprintf(stderr, "serf (%" PRIu64 "): save failed: %" PRIu64 "\r\n", + sef_u->dun_d, + eve_d); + exit(1); + } + + u3m_save(); +} + +/* u3_serf_live(): apply %live command [com], producing *ret on c3y. +*/ +c3_o +u3_serf_live(u3_serf* sef_u, u3_noun com, u3_noun* ret) +{ + u3_noun tag, dat; + + // refcounts around snapshots require special handling + // + if ( c3n == u3r_cell(com, &tag, &dat) ) { + u3z(com); + return c3n; + } + + switch ( tag ) { + default: { + u3z(com); + return c3n; + } + + case c3__exit: { + c3_y cod_y; + + if ( c3n == u3r_safe_byte(dat, &cod_y) ) { + u3z(com); + return c3n; + } + + u3z(com); + // NB, doesn't return + // + _serf_writ_live_exit(sef_u, cod_y); + *ret = u3nc(c3__live, u3_nul); + return c3y; + } + + // NB: the %cram $writ only saves the rock, it doesn't load it + // + case c3__cram: { + c3_d eve_d; + + if ( c3n == u3r_safe_chub(dat, &eve_d) ) { + u3z(com); + return c3n; + } + + u3z(com); + + if( eve_d != sef_u->dun_d ) { + fprintf(stderr, "serf (%" PRIu64 "): cram failed: %" PRIu64 "\r\n", + sef_u->dun_d, + eve_d); + return c3n; + } + + u3l_log("serf (%" PRIu64 "): saving rock", sef_u->dun_d); + + if ( c3n == u3u_cram(sef_u->dir_c, eve_d) ) { + fprintf(stderr, "serf (%" PRIu64 "): unable to jam state\r\n", eve_d); + return c3n; + } + + if ( u3r_mug(u3A->roc) != sef_u->mug_l ) { + fprintf(stderr, "serf (%" PRIu64 "): mug mismatch 0x%08x 0x%08x\r\n", + eve_d, sef_u->mug_l, u3r_mug(u3A->roc)); + return c3n; + } + + u3m_save(); + u3_serf_grab(c3y); + + *ret = u3nc(c3__live, u3_nul); + return c3y; + } + + case c3__pack: { + if ( u3_nul != dat ) { + u3z(com); + return c3n; + } + else { + u3z(com); + u3a_print_memory(stderr, "serf: pack: gained", u3m_pack()); + *ret = u3nc(c3__live, u3_nul); + return c3y; + } + } + + case c3__meld: { + if ( u3_nul != dat ) { + u3z(com); + return c3n; + } + else { + u3z(com); + u3a_print_memory(stderr, "serf: meld: gained", u3_meld_all(stderr)); + *ret = u3nc(c3__live, u3_nul); + return c3y; + } + } + + case c3__save: { + c3_d eve_d; + + if ( c3n == u3r_safe_chub(dat, &eve_d) ) { + u3z(com); + return c3n; + } + + u3z(com); + _serf_writ_live_save(sef_u, eve_d); + *ret = u3nc(c3__live, u3_nul); + return c3y; + } + } +} + +/* u3_serf_writ(): apply writ [wit], producing plea [*pel] on c3y. +*/ +c3_o +u3_serf_writ(u3_serf* sef_u, u3_noun wit, u3_noun* pel) +{ + u3_noun tag, com; + c3_o ret_o; + + if ( c3n == u3r_cell(wit, &tag, &com) ) { + ret_o = c3n; + } + else { + switch ( tag ) { + default: { + ret_o = c3n; + } break; + + case c3__live: { + // since %live can take snapshots, it's refcount protocol is unique + // + u3k(com); + u3z(wit); + return u3_serf_live(sef_u, com, pel); + } break; + + case c3__peek: { + u3_noun tim, sam; + c3_w mil_w; + + if ( (c3n == u3r_cell(com, &tim, &sam)) || + (c3n == u3r_safe_word(tim, &mil_w)) ) + { + ret_o = c3n; + } + else { + *pel = u3_serf_peek(sef_u, mil_w, u3k(sam)); + ret_o = c3y; + } + } break; + + case c3__play: { + u3_noun eve, lit; + c3_d eve_d; + + if ( (c3n == u3r_cell(com, &eve, &lit)) || + (c3n == u3a_is_cell(lit)) || + (c3n == u3r_safe_chub(eve, &eve_d)) ) + { + ret_o = c3n; + } + else { + *pel = u3_serf_play(sef_u, eve_d, u3k(lit)); + ret_o = c3y; + } + } break; + + case c3__work: { + u3_noun tim, job; + c3_w mil_w; + + if ( (c3n == u3r_cell(com, &tim, &job)) || + (c3n == u3r_safe_word(tim, &mil_w)) ) + { + ret_o = c3n; + } + else { + *pel = u3_serf_work(sef_u, mil_w, u3k(job)); + ret_o = c3y; + } + } break; + case c3__quiz: { + switch ( u3h(com) ) { + case c3__quac: { + u3z(wit); + u3_noun res = u3_serf_grab(c3n); + if ( u3_none == res ) { + ret_o = c3n; + } else { + *pel = u3nt(c3__quiz, c3__quac, res); + ret_o = c3y; + } + } break; + + case c3__quic: { + u3z(wit); + c3_d pen_d = 4ULL * u3a_open(u3R); + c3_d dil_d = 4ULL * u3a_idle(u3R); + fprintf(stderr, "open: %" PRIu64 "\r\n", pen_d); + fprintf(stderr, "idle: %" PRIu64 "\r\n", dil_d); + + *pel = u3nt(c3__quiz, c3__quic, + u3nt(u3nc(c3__open, u3i_chub(pen_d)), + u3nc(c3__idle, u3i_chub(dil_d)), + u3_nul)); + ret_o = c3y; + } break; + + default: { + u3z(wit); + ret_o = c3n; + } + } + } break; + } + } + + if ( tag != c3__quiz ) { + u3z(wit); + } + return ret_o; +} + +/* _serf_ripe(): produce initial serf state as [eve=@ mug=@] +*/ +static u3_noun +_serf_ripe(u3_serf* sef_u) +{ + // u3l_log("serf: ripe %" PRIu64, sef_u->dun_d); + + sef_u->mug_l = ( 0 == sef_u->dun_d ) + ? 0 + : u3r_mug(u3A->roc); + + return u3nc(u3i_chubs(1, &sef_u->dun_d), sef_u->mug_l); +} + +/* u3_serf_init(): init or restore, producing status. +*/ +u3_noun +u3_serf_init(u3_serf* sef_u) +{ + u3_noun rip; + + { + c3_w pro_w = 1; + c3_y hon_y = 138; + c3_y noc_y = 4; + u3_noun ver = u3nt(pro_w, hon_y, noc_y); + + rip = u3nt(c3__ripe, ver, _serf_ripe(sef_u)); + } + + // XX move to u3_serf_post() + // + // measure/print static memory usage if < 1/2 of the loom is available + // + // { + // c3_w pen_w = u3a_open(u3R); + + // if ( !(pen_w > (1 << 28)) ) { + // fprintf(stderr, "\r\n"); + // u3a_print_memory(stderr, "serf: contiguous free space", pen_w); + // u3_serf_grab(); + // } + // } + + sef_u->fag_w = _serf_fag_none; + sef_u->sac = u3_nul; + + return rip; +} diff --git a/vere/pkg/vere/serf.h b/vere/pkg/vere/serf.h new file mode 100644 index 0000000..0645434 --- /dev/null +++ b/vere/pkg/vere/serf.h @@ -0,0 +1,63 @@ +#ifndef U3_VERE_SERF_H +#define U3_VERE_SERF_H + + /** Data types. + **/ + /* u3_serf: worker-process state + */ + typedef struct _u3_serf { + c3_d key_d[4]; // disk key + c3_c* dir_c; // execution directory (pier) + c3_d sen_d; // last event requested + c3_d dun_d; // last event processed + c3_l mug_l; // hash of state + c3_w mas_w; // memory threshold state + c3_w fag_w; // post-op flags + u3_noun sac; // space measurementl + void (*xit_f)(void); // exit callback + } u3_serf; + + /** Functions. + **/ + /* u3_serf_init(): init or restore, producing status. + */ + u3_noun + u3_serf_init(u3_serf* sef_u); + + /* u3_serf_writ(): apply writ [wit], producing plea [*pel] on c3y. + */ + c3_o + u3_serf_writ(u3_serf* sef_u, u3_noun wit, u3_noun* pel); + + /* u3_serf_live(): apply %live command [com], producing *ret on c3y. + */ + c3_o + u3_serf_live(u3_serf* sef_u, u3_noun com, u3_noun* ret); + + /* u3_serf_peek(): read namespace. + */ + u3_noun + u3_serf_peek(u3_serf* sef_u, c3_w mil_w, u3_noun sam); + + /* u3_serf_play(): apply event list, producing status. + */ + u3_noun + u3_serf_play(u3_serf* sef_u, c3_d eve_d, u3_noun lit); + + /* u3_serf_work(): apply event, producing effects. + */ + u3_noun + u3_serf_work(u3_serf* sef_u, c3_w mil_w, u3_noun job); + + /* u3_serf_post(): update serf state post-writ. + */ + void + u3_serf_post(u3_serf* sef_u); + + /* u3_serf_grab(): garbage collect. + */ + u3_noun + u3_serf_grab(c3_o pri_o); + + +#endif /* ifndef U3_VERE_SERF_H */ diff --git a/vere/pkg/vere/time.c b/vere/pkg/vere/time.c new file mode 100644 index 0000000..19ff435 --- /dev/null +++ b/vere/pkg/vere/time.c @@ -0,0 +1,169 @@ +/// @file + +#include "noun.h" +#include "vere.h" + +/* u3_time_sec_in(): urbit seconds from unix time. +** +** Adjust for future leap secs! +*/ +c3_d +u3_time_sec_in(c3_w unx_w) +{ + return 0x8000000cce9e0d80ULL + (c3_d)unx_w; +} + +/* u3_time_sec_out(): unix time from urbit seconds. +** +** Adjust for future leap secs! +*/ +c3_w +u3_time_sec_out(c3_d urs_d) +{ + c3_d adj_d = (urs_d - 0x8000000cce9e0d80ULL); + + if ( adj_d > 0xffffffffULL ) { + fprintf(stderr, "Agh! It's 2106! And no one's fixed this shite!\n"); + exit(1); + } + return (c3_w)adj_d; +} + +/* u3_time_fsc_in(): urbit fracto-seconds from unix microseconds. +*/ +c3_d +u3_time_fsc_in(c3_w usc_w) +{ + c3_d usc_d = usc_w; + + return ((usc_d * 65536ULL) / 1000000ULL) << 48ULL; +} + +/* u3_time_fsc_out: unix microseconds from urbit fracto-seconds. +*/ +c3_w +u3_time_fsc_out(c3_d ufc_d) +{ + return (c3_w) (((ufc_d >> 48ULL) * 1000000ULL) / 65536ULL); +} + +/* u3_time_msc_out: unix microseconds from urbit fracto-seconds. +*/ +c3_w +u3_time_msc_out(c3_d ufc_d) +{ + return (c3_w) (((ufc_d >> 48ULL) * 1000ULL) / 65536ULL); +} + +/* u3_time_in_tv(): urbit time from struct timeval. +*/ +u3_atom +u3_time_in_tv(struct timeval* tim_tv) +{ + c3_w unx_w = tim_tv->tv_sec; + c3_w usc_w = tim_tv->tv_usec; + c3_d cub_d[2]; + + cub_d[0] = u3_time_fsc_in(usc_w); + cub_d[1] = u3_time_sec_in(unx_w); + + return u3i_chubs(2, cub_d); +} + +/* u3_time_out_tv(): struct timeval from urbit time. +*/ +void +u3_time_out_tv(struct timeval* tim_tv, u3_noun now) +{ + c3_d ufc_d = u3r_chub(0, now); + c3_d urs_d = u3r_chub(1, now); + + tim_tv->tv_sec = u3_time_sec_out(urs_d); + tim_tv->tv_usec = u3_time_fsc_out(ufc_d); + + u3z(now); +} + +/* u3_time_in_ts(): urbit time from struct timespec. +*/ +u3_atom +u3_time_in_ts(struct timespec* tim_ts) +{ + struct timeval tim_tv; + + tim_tv.tv_sec = tim_ts->tv_sec; + tim_tv.tv_usec = (tim_ts->tv_nsec / 1000); + + return u3_time_in_tv(&tim_tv); +} + +#if defined(U3_OS_linux) +/* u3_time_t_in_ts(): urbit time from time_t. +*/ +u3_atom +u3_time_t_in_ts(time_t tim) +{ + struct timeval tim_tv; + + tim_tv.tv_sec = tim; + tim_tv.tv_usec = 0; + + return u3_time_in_tv(&tim_tv); +} +#endif /* defined(U3_OS_linux) */ + +/* u3_time_out_ts(): struct timespec from urbit time. +*/ +void +u3_time_out_ts(struct timespec* tim_ts, u3_noun now) +{ + struct timeval tim_tv; + + u3_time_out_tv(&tim_tv, now); + + tim_ts->tv_sec = tim_tv.tv_sec; + tim_ts->tv_nsec = (tim_tv.tv_usec * 1000); +} + +/* u3_time_gap_ms(): (wen - now) in ms. +*/ +c3_d +u3_time_gap_ms(u3_noun now, u3_noun wen) +{ + if ( c3n == u3ka_gth(u3k(wen), u3k(now)) ) { + u3z(wen); u3z(now); + return 0ULL; + } + else { + u3_noun dif = u3ka_sub(wen, now); + c3_d fsc_d = u3r_chub(0, dif); + c3_d sec_d = u3r_chub(1, dif); + + u3z(dif); + return (sec_d * 1000ULL) + u3_time_msc_out(fsc_d); + } +} + +/* u3_time_gap_double(): (wen - now) in libev resolution. +*/ +double +u3_time_gap_double(u3_noun now, u3_noun wen) +{ + mpz_t now_mp, wen_mp, dif_mp; + double sec_g = (((double)(1ULL << 32ULL)) * ((double)(1ULL << 32ULL))); + double gap_g, dif_g; + + u3r_mp(now_mp, now); + u3r_mp(wen_mp, wen); + mpz_init(dif_mp); + mpz_sub(dif_mp, wen_mp, now_mp); + + u3z(now); + u3z(wen); + + dif_g = mpz_get_d(dif_mp) / sec_g; + gap_g = (dif_g > 0.0) ? dif_g : 0.0; + mpz_clear(dif_mp); mpz_clear(wen_mp); mpz_clear(now_mp); + + return gap_g; +} diff --git a/vere/pkg/vere/unix_tests.c b/vere/pkg/vere/unix_tests.c new file mode 100644 index 0000000..3e2862b --- /dev/null +++ b/vere/pkg/vere/unix_tests.c @@ -0,0 +1,67 @@ +/// @file + +#include "noun.h" +#include "vere.h" + +/* _setup(): prepare for tests. +*/ +static void +_setup(void) +{ +} + +/* _test_safe(): +*/ +static c3_i +_test_safe() +{ + c3_i ret_i = 1; + + if ( !u3_unix_cane("/") || + !u3_unix_cane("~.") || + !u3_unix_cane("a") || + !u3_unix_cane("a/b") || + !u3_unix_cane("a/b/c/defg/h/ijklmnop") ) + { + fprintf(stderr, "_safe fail 1\n"); + ret_i = 0; + } + + if ( u3_unix_cane("") || + u3_unix_cane(".") || + u3_unix_cane("..") || + u3_unix_cane("/.") || + u3_unix_cane("a/b/c//") || + u3_unix_cane("a/b/.") || + u3_unix_cane("/././../.") || + u3_unix_cane("/../etc") ) + { + fprintf(stderr, "_safe fail 2\r\n"); + ret_i = 0; + } + + if ( !u3_unix_cane(".a") || + !u3_unix_cane("/.a.b.c/..c") ) + { + fprintf(stderr, "_safe fail 3\r\n"); + ret_i = 0; + } + + return ret_i; +} + +/* main(): run all test cases. +*/ +int +main(int argc, char* argv[]) +{ + _setup(); + + if ( !_test_safe() ) { + fprintf(stderr, "test unix: failed\r\n"); + exit(1); + } + + fprintf(stderr, "test unix: ok\r\n"); + return 0; +} diff --git a/vere/pkg/vere/vere.h b/vere/pkg/vere/vere.h new file mode 100644 index 0000000..3aced7b --- /dev/null +++ b/vere/pkg/vere/vere.h @@ -0,0 +1,1620 @@ +/// @file + +#ifndef U3_VERE_H +#define U3_VERE_H + +#include "c3/c3.h" +#include "db/lmdb.h" +#include "noun.h" +#include "serf.h" +#include "uv.h" +#include + + /** Quasi-tunable parameters. + **/ + /* First kernel this executable can boot. + */ +# define FirstKernel 164 +# define DefaultKernel 164 + + /** Data types. + **/ + + /* u3_hhed: http header. + */ + typedef struct _u3_hhed { + struct _u3_hhed* nex_u; + c3_w nam_w; + c3_c* nam_c; + c3_w val_w; + c3_c* val_c; + } u3_hhed; + + /* u3_hbod: http body block. Also used for responses. + */ + typedef struct _u3_hbod { + struct _u3_hbod* nex_u; + c3_w len_w; + c3_y hun_y[0]; + } u3_hbod; + + /* u3_lane: ames lane (IP address and port) + */ + typedef struct _u3_lane { + c3_w pip_w; // target IPv4 address + c3_s por_s; // target port + } u3_lane; + + /* u3_moor_poke: poke callback function. + */ + typedef void (*u3_moor_poke)(void*, c3_d, c3_y*); + + /* u3_moor_bail: bailout callback function. + */ + typedef void (*u3_moor_bail)(void*, ssize_t err_i, const c3_c* err_c); + + /* u3_meat: blob message block. + */ + typedef struct _u3_meat { + struct _u3_meat* nex_u; + c3_d len_d; + c3_y hun_y[0]; + } u3_meat; + + /* u3_mess_type: in-process message type. + */ + typedef enum { + u3_mess_head = 0, // awaiting header + u3_mess_tail = 1 // awaiting body + } u3_mess_type; + + /* u3_mess: blob message in process. + */ + typedef struct _u3_mess { + u3_mess_type sat_e; // msg type + union { // + struct { // awaiting header: + c3_y hed_y[5]; // header bytes + c3_y has_y; // length + } hed_u; // + struct { // awaiting body + u3_meat* met_u; // partial message + c3_d has_d; // length + } tal_u; // + }; + } u3_mess; + + /* u3_moat: inbound message stream. + */ + typedef struct _u3_moat { + uv_pipe_t pyp_u; // input stream + u3_moor_bail bal_f; // error response function + void* ptr_v; // callback pointer + u3_moor_poke pok_f; // action function + u3_mess mes_u; // message in progress + uv_timer_t tim_u; // queue timer + u3_meat* ent_u; // entry of message queue + u3_meat* ext_u; // exit of message queue + } u3_moat; + + /* u3_mojo: outbound message stream. + */ + typedef struct _u3_mojo { + uv_pipe_t pyp_u; // output stream + u3_moor_bail bal_f; // error response function + void* ptr_v; // callback pointer + } u3_mojo; + + /* u3_moor: two-way message stream, linked list */ + typedef struct _u3_moor { + uv_pipe_t pyp_u; // duplex stream + u3_moor_bail bal_f; // error response function + void* ptr_v; // callback pointer + u3_moor_poke pok_f; // action function + u3_mess mes_u; // message in progress + uv_timer_t tim_u; // queue timer + u3_meat* ent_u; // entry of message queue + u3_meat* ext_u; // exit of message queue + struct _u3_moor* nex_u; // next in list + } u3_moor; + + /* u3_dent: directory entry. + */ + typedef struct _u3_dent { + c3_c* nam_c; + struct _u3_dent* nex_u; + } u3_dent; + + /* u3_dire: simple directory state. + */ + typedef struct _u3_dire { + c3_c* pax_c; // path of directory + uv_file fil_u; // file, opened read-only to fsync + u3_dent* all_u; // file list + u3_dent* dil_u; // directory list + } u3_dire; + + /* u3_save: checkpoint control. + */ + typedef struct _u3_save { + uv_timer_t tim_u; // checkpoint timer + uv_signal_t sil_u; // child signal + c3_d req_d; // requested at evt_d + c3_d dun_d; // completed at evt_d + c3_w pid_w; // pid of checkpoint process + } u3_save; + + /* u3_utat: unix terminal state. + */ + typedef struct { + struct { + c3_l col_l; // columns + c3_l row_l; // rows + } siz; + + struct { + u3_noun lin; // bottom line (stub) + c3_w rus_w; // cursor position (row) + c3_w cus_w; // cursor position (column) + } mir; + + struct { // escape code control + c3_o ape; // escape received + c3_o bra; // bracket or O received + c3_o mou; // M (for mouse event) received + c3_y ton_y; // mouse button + c3_y col_y; // column coordinate + c3_y seq_y; // vt sequence + } esc; + + struct { // input buffering + c3_y syb_y[5]; // utf8 code buffer + c3_w len_w; // present length + c3_w wid_w; // total width + u3_noun imp; // %txt input buffer + } fut; + + struct { + uv_timer_t tim_u; // spinner timeout + c3_o diz_o; // spinner activated + c3_d eve_d; // spin count + c3_d end_d; // spinner end tick (ms) + c3_c why_c[5]; // spinner label + } sun_u; + } u3_utat; + + /* u3_usig: receive signals. + */ + typedef struct _u3_usig { + uv_signal_t sil_u; + c3_i num_i; + struct _u3_usig* nex_u; + } u3_usig; + + /* u2_utfo: terminal escape sequences + */ + typedef struct { + uv_buf_t reg_u; // restore scroll region + // + uv_buf_t suc_u; // save cursor position + uv_buf_t ruc_u; // restore cursor position + uv_buf_t cub_u; // move cursor left one column + // + uv_buf_t clr_u; // clear screen + uv_buf_t cel_u; // clear to end of line + // + uv_buf_t bel_u; // bel sound bell + } u3_utfo; + +#if 0 + /* u3_uwen: unix alarm. + */ + typedef struct _u3_uwen { + c3_y* pax_y; // printed path + c3_d wen_d[2]; // timer expire + }; + + /* u3_utim: unix timer control. + */ + typedef struct _u3_utim { + uv_timer_t wat_u; // timer control + u3_uwen* wen_u; // timers in ascending order + }; +#endif + + /* u3_utty: unix tty. + */ + struct _u3_utty; + + /* u3_ustm: uv stream. + */ + typedef union _u3_ustm { + uv_pipe_t pip_u; + uv_tty_t tty_u; + } u3_ustm; + + /* u3_ttyf: simple unix tty function. + */ + typedef c3_o (*u3_ttyf)(struct _u3_utty* uty_u); + + /* u3_utty: unix tty. + */ + typedef struct _u3_utty { + u3_ustm pin_u; // input stream + u3_ustm pop_u; // output stream + struct _u3_utty* nex_u; // next in host list + u3_ttyf sta_f; // start tty + u3_ttyf sto_f; // clean up tty + u3_ttyf hij_f; // hijack tty for cooked print + u3_ttyf loj_f; // release tty from cooked print + c3_o (*wsz_f) + (struct _u3_utty* uty_u, + c3_l* col_l, + c3_l* row_l); // return tty window size + c3_i fid_i; // file descriptor + c3_w tid_l; // terminal identity number + u3_utfo ufo_u; // escape sequences + u3_utat tat_u; // control state + struct _u3_auto* car_u; // driver hack + } u3_utty; + + /* u3_even: boot event specifier + */ + typedef struct _u3_even { + c3_i kin_i; + c3_c* loc_c; + struct _u3_even* pre_u; + } u3_even; + + /* u3_opts: command line configuration. + */ + typedef struct _u3_opts { + c3_c* arv_c; // -A, initial sync from + c3_o abo; // -a, abort aggressively + c3_c* pil_c; // -B, bootstrap from + c3_c* bin_c; // -b, http server bind ip + c3_w hap_w; // -C, cap transient memo cache + c3_o dry; // -D, dry compute, no checkpoint + c3_o dem; // -d, daemon + c3_c* eth_c; // -e, ethereum node url + c3_c* fak_c; // -F, fake ship + c3_c* gen_c; // -G, czar generator + c3_o gab; // -g, test garbage collection + c3_c* dns_c; // -H, ames bootstrap domain + c3_c* jin_c; // -I, inject raw event + c3_c* imp_c; // -i, import pier state + c3_c* lit_c; // -J, ivory (fastboot) kernel + c3_o tra; // -j, json trace + c3_w kno_w; // -K, kernel version + c3_c* key_c; // -k, private key file + c3_o net; // -L, local-only networking + c3_o lit; // -l, lite mode + c3_y lom_y; // loom bex + c3_y lut_y; // urth-loom bex + c3_w per_w; // -M, cap persistent memo cache + c3_c* til_c; // -n, play till eve_d + c3_o pro; // -P, profile + c3_s per_s; // http port + c3_s pes_s; // https port + c3_s por_s; // -p, ames port + c3_w sap_w; // Snapshot timer legth (seconds) + c3_o qui; // -q, quiet + c3_o rep; // -R, report build info + c3_c* roc_c; // -r, load rock by eve_d + c3_o has; // -S, Skip battery hashes + c3_o git; // -s, pill url from arvo git hash + c3_o tem; // -t, Disable terminal/tty assumptions + c3_c* url_c; // -u, pill url + c3_o veb; // -v, verbose (inverse of -q) + c3_c* who_c; // -w, begin with ticket + c3_c* pek_c; // -X, scry path (/vc/desk/path) + c3_o tex; // -x, exit after loading + c3_c* puk_c; // -Y, scry result filename + c3_c* puf_c; // -Z, scry result format + c3_o con; // run conn + c3_o doc; // dock binary in pier + c3_o nuu; // new pier + c3_o map; // --no-demand (reversed) + c3_o eph; // --swap, use ephemeral file + c3_o tos; // --toss, discard ephemeral + u3_even* vex_u; // --prop-*, boot enhancements + + c3_o beb; // --behn-allow-blocked + c3_z siz_i; // --lmdb-map-size + c3_y jum_y; // jumbo frame size, TODO parser + } u3_opts; + + /* u3_host: entire host. + */ + typedef struct _u3_host { + c3_w kno_w; // current executing stage + c3_c* dir_c; // pier path (no trailing /) + c3_d eve_d; // initial current snapshot + c3_c* dem_c; // daemon executable path + c3_c* wrk_c; // worker executable path + c3_d now_d; // event tick + uv_loop_t* lup_u; // libuv event loop + u3_usig* sig_u; // signal list + u3_utty* uty_u; // linked terminal list + c3_o nex_o; // upgrade requested + c3_c* arc_c; // upgrade to arch + u3_opts ops_u; // commandline options + c3_o pep_o; // prep for upgrade + c3_i xit_i; // exit code for shutdown + void (*bot_f)(); // call when chis is up + void* sam_u; // old ames, "unified driver" hack + uv_udp_t wax_u; // "unified driver" udp send handle + c3_w* imp_u; // "unified driver" galaxy IP:s + } u3_host; // host == computer == process + + /** Pier system. + **/ + /* u3_ovum_news: u3_ovum lifecycle events + */ + typedef enum { + u3_ovum_drop = 0, // unplanned + u3_ovum_work = 1, // begun + u3_ovum_done = 2 // complete + } u3_ovum_news; + + struct _u3_ovum; + + /* u3_ovum_peer: news callback + */ + typedef void (*u3_ovum_peer)(struct _u3_ovum*, u3_ovum_news); + + /* u3_ovum_bail: failure callback + */ + typedef void (*u3_ovum_bail)(struct _u3_ovum*, u3_noun); + + /* u3_ovum: potential event + */ + typedef struct _u3_ovum { + void* ptr_v; // context + c3_w try_w; // retry count + c3_w mil_w; // timeout ms + u3_noun tar; // target (in arvo) + u3_noun wir; // wire + u3_noun cad; // card + struct { // spinner: + u3_atom lab; // label + c3_o del_o; // delay (c3y) + } pin_u; // + struct { // optional callbacks: + u3_ovum_peer news_f; // progress + u3_ovum_bail bail_f; // failure + } cb_u; // + struct _u3_ovum* pre_u; // previous ovum + struct _u3_ovum* nex_u; // next ovum + struct _u3_auto* car_u; // backpointer to i/o driver + } u3_ovum; + + /* u3_fact: completed event + */ + typedef struct _u3_fact { + c3_d eve_d; // event number + c3_l mug_l; // kernel mug after + u3_noun job; // (pair date ovum) + struct _u3_fact* nex_u; // next in queue + } u3_fact; + + /* u3_gift: effects + */ + typedef struct _u3_gift { + c3_d eve_d; // causal event number + u3_noun act; // (list ovum) + struct _u3_gift* nex_u; // next in queue + } u3_gift; + + /* u3_info: ordered, contiguous slice of facts + */ + typedef struct _u3_info { + u3_fact* ent_u; // queue entry (highest) + u3_fact* ext_u; // queue exit (lowest) + } u3_info; + + /* u3_peek_cb: namespace read response callback. + */ + typedef void (*u3_peek_cb)(void*, u3_noun); + + /* u3_pico_type: kinds of proto-peek + */ + typedef enum { + u3_pico_full = 0, + u3_pico_once = 1 + } u3_pico_type; + + /* u3_pico: proto-peek + */ + typedef struct _u3_pico { + struct _u3_pico* nex_u; // next in queue + void* ptr_v; // context + u3_peek_cb fun_f; // callback + u3_noun gan; // leakset + u3_pico_type typ_e; // type-tagged + union { // + u3_noun ful; // (each path [%beam term beam]) + struct { // once: + c3_m car_m; // care + u3_atom des; // desk + u3_noun pax; // /path + } las_u; + }; + } u3_pico; + + /* u3_peek: namespace read request + */ + typedef struct _u3_peek { + void* ptr_v; // context + u3_peek_cb fun_f; // callback + u3_pico_type typ_e; // type + u3_noun sam; // +peek sample + } u3_peek; + + /* u3_writ_type: king->serf ipc message types + */ + typedef enum { + u3_writ_work = 0, + u3_writ_peek = 1, + u3_writ_play = 2, + u3_writ_save = 3, + u3_writ_cram = 4, + u3_writ_meld = 5, + u3_writ_pack = 6, + u3_writ_exit = 7, + u3_writ_quiz = 8 + } u3_writ_type; + + /* u3_writ: ipc message from king to serf + */ + typedef struct _u3_writ { + struct _u3_writ* nex_u; // next in queue + u3_writ_type typ_e; // type-tagged + union { // + struct { // work: + u3_ovum* egg_u; // origin + u3_noun job; // (pair date ovum) + } wok_u; // + u3_peek* pek_u; // peek + u3_info fon_u; // recompute + c3_d eve_d; // save/pack at + struct { // serf query: + c3_m qiz_m; // %quiz + void* ptr_v; // driver + void (*qiz_f)(c3_m, void*, u3_noun); // callback + } qiz_u; // + }; + } u3_writ; + + /* u3_lord_cb: u3_lord callbacks + */ + typedef struct _u3_lord_cb { + void* ptr_v; + void (*live_f)(void*); + void (*slog_f)(void*, c3_w, u3_noun); + void (*spin_f)(void*, u3_atom, c3_o); + void (*spun_f)(void*); + void (*play_done_f)(void*, u3_info, c3_l mug_l); + void (*play_bail_f)(void*, u3_info, c3_l mug_l, c3_d eve_d, u3_noun dud); + void (*work_done_f)(void*, u3_ovum*, u3_fact*, u3_gift*); + void (*work_bail_f)(void*, u3_ovum*, u3_noun lud); + void (*save_f)(void*); + void (*cram_f)(void*); + void (*bail_f)(void*); + void (*exit_f)(void*); + } u3_lord_cb; + + /* u3_lord: serf controller. + */ + typedef struct _u3_lord { + uv_process_t cub_u; // process handle + uv_process_options_t ops_u; // process configuration + uv_stdio_container_t cod_u[3]; // process options + u3_cue_xeno* sil_u; // cue handle + time_t wen_t; // process creation time + u3_mojo inn_u; // client's stdin + u3_moat out_u; // client's stdout + uv_pipe_t err_u; // client's stderr + c3_w wag_w; // config flags + c3_c* bin_c; // binary path + c3_c* pax_c; // directory + c3_d key_d[4]; // image key + c3_o liv_o; // live + c3_y hon_y; // hoon kelvin + c3_y noc_y; // nock kelvin + c3_d eve_d; // last event completed + c3_l mug_l; // mug at eve_d + u3_lord_cb cb_u; // callbacks + c3_o pin_o; // spinning + c3_w dep_w; // queue depth + struct _u3_writ* ent_u; // queue entry + struct _u3_writ* ext_u; // queue exit + } u3_lord; + + /* u3_read: event log read request + */ + typedef struct _u3_read { + union { // read timer/handle + uv_timer_t tim_u; // + uv_handle_t had_u; // + }; // + c3_d eve_d; // first event + c3_d len_d; // read stride + struct _u3_fact* ent_u; // response entry + struct _u3_fact* ext_u; // response exit + struct _u3_read* nex_u; // next read + struct _u3_read* pre_u; // previous read + struct _u3_disk* log_u; // disk backpointer + } u3_read; + + /* u3_disk_cb: u3_disk callbacks + */ + typedef struct _u3_disk_cb { + void* ptr_v; + void (*read_done_f)(void*, u3_info); + void (*read_bail_f)(void*, c3_d eve_d); + void (*write_done_f)(void*, c3_d eve_d); + void (*write_bail_f)(void*, c3_d eve_d); + } u3_disk_cb; + + /* u3_disk: manage event persistence. + */ + typedef struct _u3_disk { + u3_dire* dir_u; // main pier directory + u3_dire* urb_u; // urbit system data + u3_dire* com_u; // log directory + c3_i lok_i; // lockfile + c3_o liv_o; // live + c3_w ver_w; // version (see version.h) + void* mdb_u; // lmdb env of current epoch + c3_d sen_d; // commit requested + c3_d dun_d; // committed + c3_d epo_d; // current epoch number + u3_disk_cb cb_u; // callbacks + u3_read* red_u; // read requests + union { // write thread/request + uv_work_t ted_u; // + uv_req_t req_u; // + }; // + c3_o ted_o; // c3y == active + u3_info put_u; // write queue + } u3_disk; + + /* u3_disk_walk: opaque event log iterator. + */ + typedef struct _u3_disk_walk u3_disk_walk; + + /* u3_psat: pier state. + */ + typedef enum { + u3_psat_init = 0, // initialized + u3_psat_boot = 1, // bootstrap + u3_psat_play = 2, // replaying + u3_psat_wyrd = 3, // versioning + u3_psat_work = 4, // working + u3_psat_done = 5 // shutting down + } u3_psat; + + /* u3_boot: bootstrap event sequence + */ + typedef struct _u3_boot { + u3_noun bot; // boot formulas + u3_noun mod; // module ova + u3_noun use; // userpace ova + } u3_boot; + + /* u3_play: replay control. + */ + typedef struct _u3_play { + c3_d eve_d; // target + c3_d req_d; // last read requested + c3_d sen_d; // last sent + u3_fact* ent_u; // queue entry + u3_fact* ext_u; // queue exit + struct _u3_pier* pir_u; // pier backpointer + } u3_play; + + /* u3_auto_cb: i/o driver callbacks + */ + typedef struct _u3_auto_cb { + void (*talk_f)(struct _u3_auto*); + u3_noun (*info_f)(struct _u3_auto*); + void (*slog_f)(struct _u3_auto*); + c3_o (*kick_f)(struct _u3_auto*, u3_noun, u3_noun); + void (*exit_f)(struct _u3_auto*); // XX close_cb? + } u3_auto_cb; + + /* u3_auto: abstract i/o driver + */ + typedef struct _u3_auto { + c3_m nam_m; + c3_o liv_o; + u3_auto_cb io; // XX io_u; + c3_w dep_w; + struct _u3_ovum* ent_u; + struct _u3_ovum* ext_u; + struct _u3_auto* nex_u; + struct _u3_pier* pir_u; + } u3_auto; + + /* u3_wall: pier barrier + */ + typedef struct _u3_wall { + void* ptr_v; + c3_d eve_d; + void (*wal_f)(void*, c3_d); + struct _u3_wall* nex_u; + } u3_wall; + + /* u3_work: normal operation. + */ + typedef struct _u3_work { + u3_auto* car_u; // i/o drivers + u3_wall* wal_u; // barriers + struct { // finished event queue: + c3_d rel_d; // last released + u3_gift* ent_u; // entry + u3_gift* ext_u; // exit + } fec_u; // + uv_prepare_t pep_u; // pre-loop + uv_check_t cek_u; // post-loop + uv_idle_t idl_u; // catchall XX uv_async_t? + struct _u3_pier* pir_u; // pier backpointer + } u3_work; + + /* u3_pier: ship controller. + */ + typedef struct _u3_pier { + c3_c* pax_c; // pier directory + c3_w lif_w; // lifecycle barrier + c3_d who_d[2]; // identity + c3_o fak_o; // yes iff fake security + c3_o liv_o; // fully live + u3_disk* log_u; // event log + u3_lord* god_u; // computer + u3_psat sat_e; // type-tagged + u3_weak ryf; // rift + union { // + u3_boot* bot_u; // bootstrap + u3_play* pay_u; // recompute + u3_work* wok_u; // work + }; + struct { + u3_pico* ent_u; + u3_pico* ext_u; + } pec_u; + void* sop_p; // slog stream data + void (*sog_f) // slog stream callback + (void*, c3_w, u3_noun);// + // XX remove + c3_s per_s; // http port + c3_s pes_s; // htls port + c3_s por_s; // ames port + u3_save* sav_u; // autosave + // XX end remove + struct _u3_pier* nex_u; // next in list + } u3_pier; + + /* u3_king: all executing piers. + */ + typedef struct _u3_king { + void (*ssl_curl_f)(void*); // setup ssl CAs in CURL* + void (*ssl_x509_f)(void*); // setup ssl CAs in X509_STORE* + u3_pier* pir_u; // pier list + uv_timer_t tim_u; // gc timer + } u3_king; + + /* u3_pier_spin(): (re-)activate idle handler + */ + void + u3_pier_spin(u3_pier* pir_u); + +# define u3L u3_Host.lup_u // global event loop +# define u3K u3_King + + /** Global variables. + **/ + extern u3_host u3_Host; + extern u3_king u3_King; + + /** Functions. + **/ + /* Urbit time: 128 bits, leap-free. + ** + ** High 64 bits: 0x8000.000c.cea3.5380 + Unix time at leap 25 (Jul 2012) + ** Low 64 bits: 1/2^64 of a second. + ** + ** Seconds per Gregorian 400-block: 12.622.780.800 + ** 400-blocks from 0 to 0AD: 730.692.561 + ** Years from 0 to 0AD: 292.277.024.400 + ** Seconds from 0 to 0AD: 9.223.372.029.693.628.800 + ** Seconds between 0A and Unix epoch: 62.167.219.200 + ** Seconds before Unix epoch: 9.223.372.091.860.848.000 + ** The same, in C hex notation: 0x8000000cce9e0d80ULL + ** + ** XX: needs to be adjusted to implement Google leap-smear time. + */ + /* u3_time_sec_in(): urbit seconds from unix time. + ** + ** Adjust (externally) for future leap secs! + */ + c3_d + u3_time_sec_in(c3_w unx_w); + + /* u3_time_sec_out(): unix time from urbit seconds. + ** + ** Adjust (externally) for future leap secs! + */ + c3_w + u3_time_sec_out(c3_d urs_d); + + /* u3_time_fsc_in(): urbit fracto-seconds from unix microseconds. + */ + c3_d + u3_time_fsc_in(c3_w usc_w); + + /* u3_time_fsc_out: unix microseconds from urbit fracto-seconds. + */ + c3_w + u3_time_fsc_out(c3_d ufc_d); + + /* u3_time_in_tv(): urbit time from struct timeval. + */ + u3_atom + u3_time_in_tv(struct timeval* tim_tv); + + /* u3_time_out_tv(): struct timeval from urbit time. + */ + void + u3_time_out_tv(struct timeval* tim_tv, u3_noun now); + + /* u3_time_in_ts(): urbit time from struct timespec. + */ + u3_atom + u3_time_in_ts(struct timespec* tim_ts); +#if defined(U3_OS_linux) + /* u3_time_t_in_ts(): urbit time from time_t. + */ + u3_atom + u3_time_t_in_ts(time_t tim); +#endif + + /* u3_time_out_ts(): struct timespec from urbit time. + */ + void + u3_time_out_ts(struct timespec* tim_ts, u3_noun now); + + /* u3_time_gap_ms(): (wen - now) in ms. + */ + c3_d + u3_time_gap_ms(u3_noun now, u3_noun wen); + + /** Common structure lifecycle. + **/ + /* u3_dent_init(): initialize file record. + */ + u3_dent* + u3_dent_init(const c3_c* nam_c); + + /* u3_dent_free(): dispose file record. + */ + void + u3_dent_free(u3_dent *det_u); + + /* u3_dire_init(): initialize directory record. + */ + u3_dire* + u3_dire_init(const c3_c* pax_c); + + /* u3_dire_free(): dispose directory record. + */ + void + u3_dire_free(u3_dire *dir_u); + + /* u3_fact_init(): initialize completed event. + */ + u3_fact* + u3_fact_init(c3_d eve_d, c3_l mug_l, u3_noun job); + + /* u3_fact_free(): dispose completed event. + */ + void + u3_fact_free(u3_fact *tac_u); + + /* u3_gift_init(): initialize effect list. + */ + u3_gift* + u3_gift_init(c3_d eve_d, u3_noun act); + + /* u3_gift_free(): dispose effect list. + */ + void + u3_gift_free(u3_gift* gif_u); + + /* u3_ovum_init: initialize an unlinked potential event + */ + u3_ovum* + u3_ovum_init(c3_w mil_w, + u3_noun tar, + u3_noun wir, + u3_noun cad); + + /* u3_ovum_free: dispose an unlinked potential event + */ + void + u3_ovum_free(u3_ovum *egg_u); + + /* u3_pico_init(): initialize a scry request struct + */ + u3_pico* + u3_pico_init(); + + /* u3_pico_free(): dispose a scry request struct + */ + void + u3_pico_free(u3_pico* pic_u); + + /* u3_mcut_char(): measure/cut character. + */ + c3_w + u3_mcut_char(c3_c* buf_c, c3_w len_w, c3_c chr_c); + + /* u3_mcut_cord(): measure/cut cord. + */ + c3_w + u3_mcut_cord(c3_c* buf_c, c3_w len_w, u3_noun san); + + /* u3_mcut_path(): measure/cut cord list. + */ + c3_w + u3_mcut_path(c3_c* buf_c, c3_w len_w, c3_c sep_c, u3_noun pax); + + /* u3_mcut_host(): measure/cut host. + */ + c3_w + u3_mcut_host(c3_c* buf_c, c3_w len_w, u3_noun hot); + + /** IO drivers. + **/ + /* u3_auto_init(): initialize all drivers. + */ + u3_auto* + u3_auto_init(u3_pier* pir_u); + + /* u3_auto_info(): status info as a (list mass), all drivers. + */ + u3_noun + u3_auto_info(u3_auto* car_u); + + /* u3_auto_slog(): print status info. + */ + void + u3_auto_slog(u3_auto* car_u); + + /* u3_auto_exit(): close all drivers. + */ + void + u3_auto_exit(u3_auto* car_u); + + /* u3_auto_talk(): start all drivers. + */ + void + u3_auto_talk(u3_auto* car_u); + + /* u3_auto_live(): check if all drivers are live. + */ + c3_o + u3_auto_live(u3_auto* car_u); + + /* u3_auto_kick(): route effects to a linked driver. RETAIN + */ + void + u3_auto_kick(u3_auto* car_u, u3_noun act); + + /* u3_auto_next(): select an ovum, dequeue and construct. + */ + u3_ovum* + u3_auto_next(u3_auto* car_u, u3_noun* ovo); + + /* u3_auto_drop(): dequeue and dispose an ovum. + */ + void + u3_auto_drop(u3_auto* car_u, u3_ovum* egg_u); + + /* u3_auto_work(): notify driver of [egg_u] commencement. + */ + void + u3_auto_work(u3_ovum* egg_u); + + /* u3_auto_done(): notify driver of [egg_u] completion. + */ + void + u3_auto_done(u3_ovum* egg_u); + + /* u3_auto_bail(): notify driver that [egg_u] crashed. + */ + void + u3_auto_bail(u3_ovum* egg_u, u3_noun lud); + + /* u3_auto_bail_slog(): print a bail notification. + */ + void + u3_auto_bail_slog(u3_ovum* egg_u, u3_noun lud); + + /* u3_auto_plan(): enqueue an ovum. + */ + u3_ovum* + u3_auto_plan(u3_auto* car_u, u3_ovum* egg_u); + + /* u3_auto_redo(): retry an ovum. + */ + u3_ovum* + u3_auto_redo(u3_auto* car_u, u3_ovum* egg_u); + + /* u3_auto_peer(): subscribe to updates. + */ + void + u3_auto_peer(u3_ovum* egg_u, + void* ptr_v, + u3_ovum_peer news_f, + u3_ovum_bail bail_f); + + /* u3_disk_init(): load or create pier directories and event log. + */ + u3_disk* + u3_disk_init(c3_c* pax_c, u3_disk_cb cb_u); + + /* u3_disk_etch(): serialize an event for persistence. RETAIN [eve] + */ + size_t + u3_disk_etch(u3_disk* log_u, + u3_noun eve, + c3_l mug_l, + c3_y** out_y); + + /* u3_disk_sift(): parse a persisted event buffer. + */ + c3_o + u3_disk_sift(u3_disk* log_u, + size_t len_i, + c3_y* dat_y, + c3_l* mug_l, + u3_noun* job); + + /* u3_disk_info(): status info as $mass. + */ + u3_noun + u3_disk_info(u3_disk* log_u); + + /* u3_disk_slog(): print status info. + */ + void + u3_disk_slog(u3_disk* log_u); + + /* u3_disk_exit(): close [log_u] and dispose. + */ + void + u3_disk_exit(u3_disk* log_u); + + /* u3_disk_read_meta(): read metadata. + */ + c3_o + u3_disk_read_meta(MDB_env* mdb_u, + c3_w* ver_w, + c3_d* who_d, + c3_o* fak_o, + c3_w* lif_w); + + /* u3_disk_save_meta(): save metadata. + */ + c3_o + u3_disk_save_meta(MDB_env* mdb_u, + c3_w ver_w, + c3_d who_d[2], + c3_o fak_o, + c3_w lif_w); + + /* u3_disk_save_meta_meta(): save meta metadata. + */ + c3_o + u3_disk_save_meta_meta(c3_c* log_c, + c3_d who_d[2], + c3_o fak_o, + c3_w lif_w); + + /* u3_disk_read(): read [len_d] events starting at [eve_d]. + */ + void + u3_disk_read(u3_disk* log_u, c3_d eve_d, c3_d len_d); + + /* u3_disk_boot_plan(): enqueue boot sequence, without autocommit. + */ + void + u3_disk_boot_plan(u3_disk* log_u, u3_noun job); + + /* u3_disk_boot_save(): commit boot sequence. + */ + void + u3_disk_boot_save(u3_disk* log_u); + + /* u3_disk_plan(): enqueue completed event for persistence. + */ + void + u3_disk_plan(u3_disk* log_u, u3_fact* tac_u); + + /* u3_disk_epoc_last(): get latest epoch number. + */ + c3_o + u3_disk_epoc_last(u3_disk* log_u, c3_d* lat_d); + + /* u3_disk_epoc_list: get descending epoch numbers, "mcut" pattern. + */ + c3_z + u3_disk_epoc_list(u3_disk* log_u, c3_d* sot_d); + + /* u3_disk_kindly(): do the needful. + */ + void + u3_disk_kindly(u3_disk* log_u, c3_d eve_d); + + /* u3_disk_chop(): delete all but the latest 2 epocs. + */ + void + u3_disk_chop(u3_disk* log_u, c3_d epo_d); + + /* u3_disk_roll(): rollover to a new epoc. + */ + void + u3_disk_roll(u3_disk* log_u, c3_d epo_d); + + /* u3_disk_read_list(): synchronously read a cons list of events. + */ + u3_weak + u3_disk_read_list(u3_disk* log_u, c3_d eve_d, c3_d len_d, c3_l* mug_l); + + /* u3_disk_walk_init(): init iterator. + */ + u3_disk_walk* + u3_disk_walk_init(u3_disk* log_u, + c3_d eve_d, + c3_d len_d); + + /* u3_disk_walk_live(): check if live. + */ + c3_o + u3_disk_walk_live(u3_disk_walk* wok_u); + + /* u3_disk_walk_live(): get next fact. + */ + c3_o + u3_disk_walk_step(u3_disk_walk* wok_u, u3_fact* tac_u); + + /* u3_disk_walk_done(): close iterator. + */ + void + u3_disk_walk_done(u3_disk_walk* wok_u); + + /* u3_lord_init(): start serf. + */ + u3_lord* + u3_lord_init(c3_c* pax_c, + c3_w wag_w, + c3_d key_d[4], + u3_lord_cb cb_u); + + /* u3_lord_info(): status info as a $mass. + */ + u3_noun + u3_lord_info(u3_lord* god_u); + + /* u3_lord_slog(): print status info. + */ + void + u3_lord_slog(u3_lord* god_u); + + /* u3_lord_exit(): shutdown gracefully. + */ + void + u3_lord_exit(u3_lord* god_u); + + /* u3_lord_stall(): send SIGINT + */ + void + u3_lord_stall(u3_lord* god_u); + + /* u3_lord_halt(): shutdown immediately + */ + void + u3_lord_halt(u3_lord* god_u); + + /* u3_lord_save(): save a snapshot. + */ + c3_o + u3_lord_save(u3_lord* god_u); + + /* u3_lord_cram(): save portable state. + */ + c3_o + u3_lord_cram(u3_lord* god_u); + + /* u3_lord_meld(): globally deduplicate persistent state. + */ + void + u3_lord_meld(u3_lord* god_u); + + /* u3_lord_pack(): defragment persistent state. + */ + void + u3_lord_pack(u3_lord* god_u); + + /* u3_lord_quiz(): query the serf. + */ + void + u3_lord_quiz(u3_lord* god_u, + c3_m qiz_m, + void* ptr_v, + void (*qiz_f)(c3_m, void*, u3_noun)); + + /* u3_lord_work(): attempt work. + */ + void + u3_lord_work(u3_lord* god_u, u3_ovum* egg_u, u3_noun job); + + /* u3_lord_play(): recompute batch. + */ + void + u3_lord_play(u3_lord* god_u, u3_info fon_u); + + /* u3_lord_peek(): read namespace, injecting what's missing. + */ + void + u3_lord_peek(u3_lord* god_u, u3_pico* pic_u); + + /** Filesystem (async). + **/ + /* u3_foil_folder(): load directory, blockingly. create if nonexistent. + */ + u3_dire* + u3_foil_folder(const c3_c* pax_c); // directory object, or 0 + + /** Terminal. + **/ + /* u3_term_start_spinner(): prepare spinner state. RETAIN. + */ + void + u3_term_start_spinner(u3_noun say, c3_o del_o); + + /* u3_term_stop_spinner(): reset spinner state and restore input line. + */ + void + u3_term_stop_spinner(void); + + /* u3_term_get_blew(): return window size [columns rows]. + */ + u3_noun + u3_term_get_blew(c3_l tid_l); + + /* u3_term_ef_winc(): window change. + */ + void + u3_term_ef_winc(void); + + /* u3_term_ef_ctlc(): send ^C. + */ + void + u3_term_ef_ctlc(void); + + /* u3_term_io_init(): initialize terminal I/O. + */ + u3_auto* + u3_term_io_init(u3_pier* pir_u); + + /* u3_term_io_hija(): hijack console for cooked print. + */ + FILE* + u3_term_io_hija(void); + + /* u3_term_it_log(): writes a log message + */ + void + u3_term_io_log(c3_c* line); + + /* u3_term_io_loja(): release console from cooked print. + */ + void + u3_term_io_loja(int x, FILE* f); + + /* u3_term_log_init(): initialize terminal for logging + */ + void + u3_term_log_init(void); + + /* u3_term_log_exit(): clean up terminal. + */ + void + u3_term_log_exit(void); + + /* u3_ptty_init(): initialize platform-specific tty. + */ + u3_utty* + u3_ptty_init(uv_loop_t* lup_u, const c3_c** err_c); + + + /** Ames, packet networking. + **/ + /* u3_ames_io_init(): initialize ames I/O. + */ + u3_auto* + u3_ames_io_init(u3_pier* pir_u); + + /* u3_ames_decode_lane(): destructure lane from noun + */ + u3_lane + u3_ames_decode_lane(u3_noun); + + /* u3_ames_encode_lane(): encode lane as noun + */ + u3_noun + u3_ames_encode_lane(u3_lane); + + /** mesa + **/ + u3_auto* + u3_mesa_io_init(u3_pier* pir_u); + /** Autosave. + **/ + /* u3_save_ef_chld(): report SIGCHLD. + */ + void + u3_save_ef_chld(u3_pier *pir_u); + + /* u3_save_io_init(): initialize autosave. + */ + void + u3_save_io_init(u3_pier *pir_u); + + /* u3_save_io_exit(): terminate autosave. + */ + void + u3_save_io_exit(u3_pier *pir_u); + + + /** Storage. + **/ + /* u3_unix_save(): save file undir .../.urb/put or bail. + */ + void + u3_unix_save(c3_c* pax_c, u3_atom pad); + + /* u3_unix_cane(): true iff (unix) path is canonical. + */ + c3_t + u3_unix_cane(const c3_c* pax_c); + + /* u3_unix_initial_into_card(): create initial filesystem sync card. + */ + u3_noun + u3_unix_initial_into_card(c3_c* arv_c); + + /* u3_unix_io_init(): initialize storage. + */ + u3_auto* + u3_unix_io_init(u3_pier* pir_u); + + /** behn, just a timer. + **/ + /* u3_behn_io_init(): initialize behn timer. + */ + u3_auto* + u3_behn_io_init(u3_pier* pir_u); + + /** lick, IPC communication. + **/ + /* u3_lick_io_init(): initialize loch vane. + */ + u3_auto* + u3_lick_io_init(u3_pier* pir_u); + + /** HTTP server. + **/ + /* u3_http_io_init(): initialize http I/O. + */ + u3_auto* + u3_http_io_init(u3_pier* pir_u); + + /** HTTP client. + **/ + /* u3_cttp_io_init(): initialize cttp I/O. + */ + u3_auto* + u3_cttp_io_init(u3_pier* pir_u); + + /** Control plane. + **/ + /* u3_conn_io_init(): initialize control plane I/O. + */ + u3_auto* + u3_conn_io_init(u3_pier* pir_u); + + /** fore, first events. + **/ + /* u3_hind_io_init(): initialize fore + */ + u3_auto* + u3_fore_io_init(u3_pier* pir_u); + + /** hind, defaults. + **/ + /* u3_hind_io_init(): initialize hint + */ + u3_auto* + u3_hind_io_init(u3_pier* pir_u); + + /** Stream messages. + **/ + /* u3_newt_decode(): decode a (partial) length-prefixed byte buffer + */ + c3_o + u3_newt_decode(u3_moat* mot_u, c3_y* buf_y, c3_d len_d); + + /* u3_newt_send(): write buffer to stream. + */ + void + u3_newt_send(u3_mojo* moj_u, c3_d len_d, c3_y* byt_y); + + /* u3_newt_read_sync(): start reading; multiple msgs synchronous. + */ + void + u3_newt_read_sync(u3_moat* mot_u); + + /* u3_newt_read(): start reading; each msg asynchronous. + */ + void + u3_newt_read(u3_moat* mot_u); + + /* u3_newt_moat_info(): status info as $mass. + */ + u3_noun + u3_newt_moat_info(u3_moat* mot_u); + + /* u3_newt_moat_slog(); print status info. + */ + void + u3_newt_moat_slog(u3_moat* mot_u); + + /* u3_newt_moat_stop(); newt stop/close input stream. + */ + void + u3_newt_moat_stop(u3_moat* mot_u, u3_moor_bail bal_f); + + /* u3_newt_mojo_stop(); newt stop/close output stream. + */ + void + u3_newt_mojo_stop(u3_mojo* moj_u, u3_moor_bail bal_f); + + /** Pier scries. + **/ + /* u3_pier_peek(): read namespace. + */ + void + u3_pier_peek(u3_pier* pir_u, + u3_noun gan, + u3_noun ful, + void* ptr_v, + u3_peek_cb fun_f); + + /* u3_pier_peek_last(): read namespace, injecting ship and case. + */ + void + u3_pier_peek_last(u3_pier* pir_u, + u3_noun gan, + c3_m car_m, + u3_atom des, + u3_noun pax, + void* ptr_v, + u3_peek_cb fun_f); + + /** Pier control. + **/ + /* u3_pier_exit(): trigger a gentle shutdown. + */ + void + u3_pier_exit(u3_pier* pir_u); + + /* u3_pier_bail(): immediately shutdown.. + */ + void + u3_pier_bail(u3_pier* pir_u); + + /* u3_pier_save(): request checkpoint. + */ + c3_o + u3_pier_save(u3_pier* pir_u); + + /* u3_pier_cram(): save a portable snapshot. + */ + c3_o + u3_pier_cram(u3_pier* pir_u); + + /* u3_pier_meld(): globally deduplicate persistent state. + */ + void + u3_pier_meld(u3_pier* pir_u); + + /* u3_pier_pack(): defragment persistent state. + */ + void + u3_pier_pack(u3_pier* pir_u); + + /* u3_pier_info(): pier status info as $mass. + */ + u3_noun + u3_pier_info(u3_pier* pir_u); + + /* u3_pier_slog(): print pier status info. + */ + void + u3_pier_slog(u3_pier* pir_u); + + /* u3_pier_boot(): start the pier. + */ + u3_pier* + u3_pier_boot(c3_w wag_w, // config flags + u3_noun who, // identity + u3_noun ven, // boot event + u3_noun pil, // type-of/path-to pill + u3_noun pax, // path to pier + u3_weak fed, // extra private keys + u3_noun mor); // extra boot seq props + + /* u3_pier_stay(): restart the pier. + */ + u3_pier* + u3_pier_stay(c3_w wag_w, u3_noun pax); + + /* u3_pier_tank(): dump single tank. + */ + void + u3_pier_tank(c3_l tab_l, c3_w pri_w, u3_noun tac); + + /* u3_pier_punt(): dump tank list. + */ + void + u3_pier_punt(c3_l tab_l, u3_noun tac); + + /* u3_pier_punt_goof(): dump a [mote tang] crash report. + */ + void + u3_pier_punt_goof(const c3_c* cap_c, u3_noun dud); + + /* u3_pier_punt_ovum(): print ovum details. + */ + void + u3_pier_punt_ovum(const c3_c* cap_c, u3_noun wir, u3_noun tag); + + /* u3_pier_sway(): print trace. + */ + void + u3_pier_sway(c3_l tab_l, u3_noun tax); + + /* u3_pier_mark(): mark all Loom allocations in all u3_pier structs. + */ + c3_w + u3_pier_mark(FILE* fil_u); + + /* u3_pier_mase(): construct a $mass leaf. + */ + u3_noun + u3_pier_mase(c3_c* cod_c, u3_noun dat); + + /* u3_pier_mass(): construct a $mass branch with noun/list. + */ + u3_noun + u3_pier_mass(u3_atom cod, u3_noun lit); + + /* u3_dawn_come(): mine a comet + */ + u3_noun + u3_dawn_come(void); + + /* u3_dawn_vent(): validated boot event + */ + u3_noun + u3_dawn_vent(u3_noun ship, u3_noun seed); + + /* u3_king_commence(): start the daemon + */ + void + u3_king_commence(); + + /* u3_king_stub(): get the One Pier for unreconstructed code. + */ + u3_pier* + u3_king_stub(void); + + /* u3_king_slog(): print status info. + */ + void + u3_king_slog(void); + + /* u3_king_dock(): copy binary into pier on boot. + */ + void + u3_king_dock(c3_c* pac_c); + + /* u3_king_done(): all piers closed + */ + void + u3_king_done(void); + + /* u3_king_exit(): shutdown gracefully + */ + void + u3_king_exit(void); + + /* u3_king_bail(): immediately shutdown. + */ + void + u3_king_bail(void); + + /* u3_king_grab(): gc the daemon + */ + void + u3_king_grab(void* ptr_v); + + /* u3_king_next(): get next vere version string, if it exists. + ** return: 0 is success, -1 is no-op (same version), -2 is error + */ + c3_i + u3_king_next(c3_c* pac_c, c3_c** out_c); + + /* u3_king_vere(): download binary as specified. + */ + c3_i + u3_king_vere(c3_c* pac_c, // pace + c3_c* ver_c, // version + c3_c* arc_c, // architecture + c3_c* dir_c, // output directory + c3_t lin_t); // link to $pier/.run + + /* u3_daemon_init(): platform-specific daemon mode initialization. + */ + void + u3_daemon_init(); + +#if defined(U3_OS_osx) + /* darwin_register_mach_exception_handler(): make lldb work + */ + void + darwin_register_mach_exception_handler(); +#endif + + /* king_curl_alloc(): allocate a response buffer for curl + */ + size_t + king_curl_alloc(void* dat_v, size_t uni_t, size_t mem_t, void* buf_v); + + /* king_curl_bytes(): HTTP GET url_c, produce response body bytes. + */ + c3_i + king_curl_bytes(c3_c* url_c, c3_w* len_w, c3_y** hun_y, c3_t veb_t, c3_y tri_y); + + /* u3_write_fd(): retry interrupts, continue partial writes, assert errors. + */ + void + u3_write_fd(c3_i fid_i, const void* buf_v, size_t len_i); + + c3_w + u3_readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result); + + /* u3_melt_all(): canonicalize persistent state + */ + c3_w + u3_melt_all(FILE*); + + /* u3_meld_all(): canonicalize persistent nouns and compact state. + */ + c3_w + u3_meld_all(FILE*); + +#endif /* ifndef U3_VERE_H */ diff --git a/vere/pkg/vere/verstable.h b/vere/pkg/vere/verstable.h new file mode 100644 index 0000000..e34cff0 --- /dev/null +++ b/vere/pkg/vere/verstable.h @@ -0,0 +1,1949 @@ +/*------------------------------------------------- VERSTABLE v2.1.1 --------------------------------------------------- + +Verstable is a C99-compatible, open-addressing hash table using quadratic probing and the following additions: + +* All keys that hash (i.e. "belong") to the same bucket (their "home bucket") are linked together by an 11-bit integer + specifying the quadratic displacement, relative to that bucket, of the next key in the chain. + +* If a chain of keys exists for a given bucket, then it always begins at that bucket. To maintain this policy, a 1-bit + flag is used to mark whether the key occupying a bucket belongs there. When inserting a new key, if the bucket it + belongs to is occupied by a key that does not belong there, then the occupying key is evicted and the new key takes + the bucket. + +* A 4-bit fragment of each key's hash code is also stored. + +* The aforementioned metadata associated with each bucket (the 4-bit hash fragment, the 1-bit flag, and the 11-bit link + to the next key in the chain) are stored together in a uint16_t array rather than in the bucket alongside the key and + (optionally) the value. + +One way to conceptualize this scheme is as a chained hash table in which overflowing keys are stored not in separate +memory allocations but in otherwise unused buckets. In this regard, it shares similarities with Malte Skarupke's Bytell +hash table (https://www.youtube.com/watch?v=M2fKMP47slQ) and traditional "coalesced hashing". + +Advantages of this scheme include: + +* Fast lookups impervious to load factor: If the table contains any key belonging to the lookup key's home bucket, then + that bucket contains the first in a traversable chain of all keys belonging to it. Hence, only the home bucket and + other buckets containing keys belonging to it are ever probed. Moreover, the stored hash fragments allow skipping most + non-matching keys in the chain without accessing the actual buckets array or calling the (potentially expensive) key + comparison function. + +* Fast insertions: Insertions are faster than they are in other schemes that move keys around (e.g. Robin Hood) because + they only move, at most, one existing key. + +* Fast, tombstone-free deletions: Deletions, which usually require tombstones in quadratic-probing hash tables, are + tombstone-free and only move, at most, one existing key. + +* Fast iteration: The separate metadata array allows keys in sparsely populated tables to be found without incurring the + frequent cache misses that would result from traversing the buckets array. + +Usage example: + + +---------------------------------------------------------+----------------------------------------------------------+ + | Using the generic macro API (C11 and later): | Using the prefixed functions API (C99 and later): | + |---------------------------------------------------------+----------------------------------------------------------+ + | #include | #include | + | | | + | // Instantiating a set template. | // Instantiating a set template. | + | #define NAME int_set | #define NAME int_set | + | #define KEY_TY int | #define KEY_TY int | + | #include "verstable.h" | #define HASH_FN vt_hash_integer | + | | #define CMPR_FN vt_cmpr_integer | + | // Instantiating a map template. | #include "verstable.h" | + | #define NAME int_int_map | | + | #define KEY_TY int | // Instantiating a map template. | + | #define VAL_TY int | #define NAME int_int_map | + | #include "verstable.h" | #define KEY_TY int | + | | #define VAL_TY int | + | int main( void ) | #define HASH_FN vt_hash_integer | + | { | #define CMPR_FN vt_cmpr_integer | + | // Set. | #include "verstable.h" | + | | | + | int_set our_set; | int main( void ) | + | vt_init( &our_set ); | { | + | | // Set. | + | // Inserting keys. | | + | for( int i = 0; i < 10; ++i ) | int_set our_set; | + | { | int_set_init( &our_set ); | + | int_set_itr itr = vt_insert( &our_set, i ); | | + | if( vt_is_end( itr ) ) | // Inserting keys. | + | { | for( int i = 0; i < 10; ++i ) | + | // Out of memory, so abort. | { | + | vt_cleanup( &our_set ); | int_set_itr itr = | + | return 1; | int_set_insert( &our_set, i ); | + | } | if( int_set_is_end( itr ) ) | + | } | { | + | | // Out of memory, so abort. | + | // Erasing keys. | int_set_cleanup( &our_set ); | + | for( int i = 0; i < 10; i += 3 ) | return 1; | + | vt_erase( &our_set, i ); | } | + | | } | + | // Retrieving keys. | | + | for( int i = 0; i < 10; ++i ) | // Erasing keys. | + | { | for( int i = 0; i < 10; i += 3 ) | + | int_set_itr itr = vt_get( &our_set, i ); | int_set_erase( &our_set, i ); | + | if( !vt_is_end( itr ) ) | | + | printf( "%d ", itr.data->key ); | // Retrieving keys. | + | } | for( int i = 0; i < 10; ++i ) | + | // Printed: 1 2 4 5 7 8 | { | + | | int_set_itr itr = int_set_get( &our_set, i ); | + | // Iteration. | if( !int_set_is_end( itr ) ) | + | for( | printf( "%d ", itr.data->key ); | + | int_set_itr itr = vt_first( &our_set ); | } | + | !vt_is_end( itr ); | // Printed: 1 2 4 5 7 8 | + | itr = vt_next( itr ) | | + | ) | // Iteration. | + | printf( "%d ", itr.data->key ); | for( | + | // Printed: 2 4 7 1 5 8 | int_set_itr itr = | + | | int_set_first( &our_set ); | + | vt_cleanup( &our_set ); | !int_set_is_end( itr ); | + | | itr = int_set_next( itr ) | + | // Map. | ) | + | | printf( "%d ", itr.data->key ); | + | int_int_map our_map; | // Printed: 2 4 7 1 5 8 | + | vt_init( &our_map ); | | + | | int_set_cleanup( &our_set ); | + | // Inserting keys and values. | | + | for( int i = 0; i < 10; ++i ) | // Map. | + | { | | + | int_int_map_itr itr = | int_int_map our_map; | + | vt_insert( &our_map, i, i + 1 ); | int_int_map_init( &our_map ); | + | if( vt_is_end( itr ) ) | | + | { | // Inserting keys and values. | + | // Out of memory, so abort. | for( int i = 0; i < 10; ++i ) | + | vt_cleanup( &our_map ); | { | + | return 1; | int_int_map_itr itr = | + | } | int_int_map_insert( &our_map, i, i + 1 ); | + | } | if( int_int_map_is_end( itr ) ) | + | | { | + | // Erasing keys and values. | // Out of memory, so abort. | + | for( int i = 0; i < 10; i += 3 ) | int_int_map_cleanup( &our_map ); | + | vt_erase( &our_map, i ); | return 1; | + | | } | + | // Retrieving keys and values. | } | + | for( int i = 0; i < 10; ++i ) | | + | { | // Erasing keys and values. | + | int_int_map_itr itr = vt_get( &our_map, i ); | for( int i = 0; i < 10; i += 3 ) | + | if( !vt_is_end( itr ) ) | int_int_map_erase( &our_map, i ); | + | printf( | | + | "%d:%d ", | // Retrieving keys and values. | + | itr.data->key, | for( int i = 0; i < 10; ++i ) | + | itr.data->val | { | + | ); | int_int_map_itr itr = | + | } | int_int_map_get( &our_map, i ); | + | // Printed: 1:2 2:3 4:5 5:6 7:8 8:9 | if( !int_int_map_is_end( itr ) ) | + | | printf( | + | // Iteration. | "%d:%d ", | + | for( | itr.data->key, | + | int_int_map_itr itr = vt_first( &our_map ); | itr.data->val | + | !vt_is_end( itr ); | ); | + | itr = vt_next( itr ) | } | + | ) | // Printed: 1:2 2:3 4:5 5:6 7:8 8:9 | + | printf( | | + | "%d:%d ", | // Iteration. | + | itr.data->key, | for( | + | itr.data->val | int_int_map_itr itr = | + | ); | int_int_map_first( &our_map ); | + | // Printed: 2:3 4:5 7:8 1:2 5:6 8:9 | !int_int_map_is_end( itr ); | + | | itr = int_int_map_next( itr ) | + | vt_cleanup( &our_map ); | ) | + | } | printf( | + | | "%d:%d ", | + | | itr.data->key, | + | | itr.data->val | + | | ); | + | | // Printed: 2:3 4:5 7:8 1:2 5:6 8:9 | + | | | + | | int_int_map_cleanup( &our_map ); | + | | } | + | | | + +---------------------------------------------------------+----------------------------------------------------------+ + +API: + + Instantiating a hash table template: + + Create a new hash table type in the following manner: + + #define NAME + #define KEY_TY + #include "verstable.h" + + The NAME macro specifies the name of hash table type that the library will declare, the prefix for the functions + associated with it, and the prefix for the associated iterator type. + + The KEY_TY macro specifies the key type. + + In C99, it is also always necessary to define HASH_FN and CMPR_FN (see below) before including the header. + + The following macros may also be defined before including the header: + + #define VAL_TY + + The type of the value associated with each key. + If this macro is defined, the hash table acts as a map associating keys with values. + Otherwise, it acts as a set containing only keys. + + #define HASH_FN + + The name of the existing function used to hash each key. + The function should have the signature uint64_t ( KEY_TY key ) and return a 64-bit hash code. + For best performance, the hash function should provide a high level of entropy across all bits. + There are two default hash functions: vt_hash_integer for all integer types up to 64 bits in size, and + vt_hash_string for NULL-terminated strings (i.e. char *). + When KEY_TY is one of such types and the compiler is in C11 mode or later, HASH_FN may be left undefined, in + which case the appropriate default function is inferred from KEY_TY. + Otherwise, HASH_FN must be defined. + + #define CMPR_FN + + The name of the existing function used to compare two keys. + The function should have the signature bool ( KEY_TY key_1, KEY_TY key_2 ) and return true if the two keys are + equal. + There are two default comparison functions: vt_cmpr_integer for all integer types up to 64 bits in size, and + vt_cmpr_string for NULL-terminated strings (i.e. char *). + As with the default hash functions, in C11 or later the appropriate default comparison function is inferred if + KEY_TY is one of such types and CMPR_FN is left undefined. + Otherwise, CMPR_FN must be defined. + + #define MAX_LOAD + + The floating-point load factor at which the hash table automatically doubles the size of its internal buckets + array. + The default is 0.9, i.e. 90%. + + #define KEY_DTOR_FN + + The name of the existing destructor function, with the signature void ( KEY_TY key ), called on a key when it is + erased from the table or replaced by a newly inserted key. + The API functions that may call the key destructor are NAME_insert, NAME_erase, NAME_erase_itr, NAME_clear, + and NAME_cleanup. + + #define VAL_DTOR_FN + + The name of the existing destructor function, with the signature void ( VAL_TY val ), called on a value when it + is erased from the table or replaced by a newly inserted value. + The API functions that may call the value destructor are NAME_insert, NAME_erase, NAME_erase_itr, NAME_clear, + and NAME_cleanup. + + #define CTX_TY + + The type of the hash table type's ctx (context) member. + This member only exists if CTX_TY was defined. + It is intended to be used in conjunction with MALLOC_FN and FREE_FN (see below). + + #define MALLOC_FN + + The name of the existing function used to allocate memory. + If CTX_TY was defined, the signature should be void *( size_t size, CTX_TY *ctx ), where size is the number of + bytes to allocate and ctx points to the table's ctx member. + Otherwise, the signature should be void *( size_t size ). + The default wraps stdlib.h's malloc. + + #define FREE_FN + + The name of the existing function used to free memory. + If CTX_TY was defined, the signature should be void ( void *ptr, size_t size, CTX_TY *ctx ), where ptr points to + the memory to free, size is the number of bytes that were allocated, and ctx points to the table's ctx member. + Otherwise, the signature should be void ( void *ptr, size_t size ). + The default wraps stdlib.h's free. + + #define HEADER_MODE + #define IMPLEMENTATION_MODE + + By default, all hash table functions are defined as static inline functions, the intent being that a given hash + table template should be instantiated once per translation unit; for best performance, this is the recommended + way to use the library. + However, it is also possible separate the struct definitions and function declarations from the function + definitions such that one implementation can be shared across all translation units (as in a traditional header + and source file pair). + In that case, instantiate a template wherever it is needed by defining HEADER_MODE, along with only NAME, + KEY_TY, and (optionally) VAL_TY, CTX_TY, and header guards, and including the library, e.g.: + + #ifndef INT_INT_MAP_H + #define INT_INT_MAP_H + #define NAME int_int_map + #define KEY_TY int + #define VAL_TY int + #define HEADER_MODE + #include "verstable.h" + #endif + + In one source file, define IMPLEMENTATION_MODE, along with NAME, KEY_TY, and any of the aforementioned optional + macros, and include the library, e.g.: + + #define NAME int_int_map + #define KEY_TY int + #define VAL_TY int + #define HASH_FN vt_hash_integer // C99. + #define CMPR_FN vt_cmpr_integer // C99. + #define MAX_LOAD 0.8 + #define IMPLEMENTATION_MODE + #include "verstable.h" + + Including the library automatically undefines all the aforementioned macros after they have been used to instantiate + the template. + + Functions: + + The functions associated with a hash table type are all prefixed with the name the user supplied via the NAME macro. + In C11 and later, the generic "vt_"-prefixed macros may be used to automatically select the correct version of the + specified function based on the arguments. + + void NAME_init( NAME *table ) + void NAME_init( NAME *table, CTX_TY ctx ) + // C11 generic macro: vt_init. + + Initializes the table for use. + If CTX_TY was defined, ctx sets the table's ctx member. + + bool NAME_init_clone( NAME *table, NAME *source ) + bool NAME_init_clone( NAME *table, NAME *source, CTX_TY ctx ) + // C11 generic macro: vt_init_clone. + + Initializes the table as a shallow copy of the specified source table. + If CTX_TY was defined, ctx sets the table's ctx member. + Returns false in the case of memory allocation failure. + + size_t NAME_size( NAME *table ) // C11 generic macro: vt_size. + + Returns the number of keys currently in the table. + + size_t NAME_bucket_count( NAME *table ) // C11 generic macro: vt_bucket_count. + + Returns the table's current bucket count. + + NAME_itr NAME_insert( NAME *table, KEY_TY key ) + NAME_itr NAME_insert( NAME *table, KEY_TY key, VAL_TY val ) + // C11 generic macro: vt_insert. + + Inserts the specified key (and value, if VAL_TY was defined) into the hash table. + If the same key already exists, then the new key (and value) replaces the existing key (and value). + Returns an iterator to the new key, or an end iterator in the case of memory allocation failure. + + NAME_itr NAME_get_or_insert( NAME *table, KEY_TY key ) + NAME_itr NAME_get_or_insert( NAME *table, KEY_TY key, VAL_TY val ) + // C11 generic macro: vt_get_or_insert. + + Inserts the specified key (and value, if VAL_TY was defined) if it does not already exist in the table. + Returns an iterator to the new key if it was inserted, or an iterator to the existing key, or an end iterator if + the key did not exist but the new key could not be inserted because of memory allocation failure. + Determine whether the key was inserted by comparing the table's size before and after the call. + + NAME_itr NAME_get( NAME *table, KEY_TY key ) // C11 generic macro: vt_get. + + Returns a iterator to the specified key, or an end iterator if no such key exists. + + bool NAME_erase( NAME *table, KEY_TY key ) // C11 generic macro: vt_erase. + + Erases the specified key (and associated value, if VAL_TY was defined), if it exists. + Returns true if a key was erased. + + NAME_itr NAME_erase_itr( NAME *table, NAME_itr itr ) // C11 generic macro: vt_erase_itr. + + Erases the key (and associated value, if VAL_TY was defined) pointed to by the specified iterator. + Returns an iterator to the next key in the table, or an end iterator if the erased key was the last one. + + bool NAME_reserve( NAME *table, size_t size ) // C11 generic macro: vt_reserve. + + Ensures that the bucket count is large enough to support the specified key count (i.e. size) without rehashing. + Returns false if unsuccessful due to memory allocation failure. + + bool NAME_shrink( NAME *table ) // C11 generic macro: vt_shrink. + + Shrinks the bucket count to best accommodate the current size. + Returns false if unsuccessful due to memory allocation failure. + + NAME_itr NAME_first( NAME *table ) // C11 generic macro: vt_first. + + Returns an iterator to the first key in the table, or an end iterator if the table is empty. + + bool NAME_is_end( NAME *table, NAME_itr itr ) // C11 generic macro: vt_is_end. + + Returns true if the iterator is an end iterator. + + NAME_itr NAME_next( NAME_itr itr ) // C11 generic macro: vt_next. + + Returns an iterator to the key after the one pointed to by the specified iterator, or an end iterator if the + specified iterator points to the last key in the table. + + void NAME_clear( NAME *table ) // C11 generic macro: vt_clear. + + Erases all keys (and values, if VAL_TY was defined) in the table. + + void NAME_cleanup( NAME *table ) // C11 generic macro: vt_cleanup. + + Erases all keys (and values, if VAL_TY was defined) in the table, frees all memory associated with it, and + initializes it for reuse. + + Iterators: + + Access the key (and value, if VAL_TY was defined) that an iterator points to using the NAME_itr struct's data + member: + + itr.data->key + itr.data->val + + Functions that may insert new keys (NAME_insert and NAME_get_or_insert), erase keys (NAME_erase and NAME_erase_itr), + or reallocate the internal bucket array (NAME_reserve and NAME_shrink) invalidate all exiting iterators. + To delete keys during iteration and resume iterating, use the return value of NAME_erase_itr. + +Version history: + + 18/06/2024 2.1.1: Fixed a bug affecting iteration on big-endian platforms under MSVC. + 27/05/2024 2.1.0: Replaced the Murmur3 mixer with the fast-hash mixer as the default integer hash function. + Fixed a bug that could theoretically cause a crash on rehash (triggerable in testing using + NAME_shrink with a maximum load factor significantly higher than 1.0). + 06/02/2024 2.0.0: Improved custom allocator support by introducing the CTX_TY option and allowing user-supplied free + functions to receive the allocation size. + Improved documentation. + Introduced various optimizations, including storing the buckets-array size mask instead of the + bucket count, eliminating empty-table checks, combining the buckets memory and metadata memory into + one allocation, and adding branch prediction macros. + Fixed a bug that caused a key to be used after destruction during erasure. + 12/12/2023 1.0.0: Initial release. + +License (MIT): + + Copyright (c) 2023-2024 Jackson L. Allan + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated + documentation files (the "Software"), to deal in the Software without restriction, including without limitation the + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit + persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the + Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE + WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +*/ + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Common header section */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +#ifndef VERSTABLE_H +#define VERSTABLE_H + +#include +#include +#include +#include +#include +#include + +// Two-way concatenation macro. +#define VT_CAT_( a, b ) a##b +#define VT_CAT( a, b ) VT_CAT_( a, b ) + +// Branch optimization macros. +#ifdef __GNUC__ +#define VT_LIKELY( expression ) __builtin_expect( (bool)( expression ), true ) +#define VT_UNLIKELY( expression ) __builtin_expect( (bool)( expression ), false ) +#else +#define VT_LIKELY( expression ) ( expression ) +#define VT_UNLIKELY( expression ) ( expression ) +#endif + +// Masks for manipulating and extracting data from a bucket's uint16_t metadatum. +#define VT_EMPTY 0x0000 +#define VT_HASH_FRAG_MASK 0xF000 // 0b1111000000000000. +#define VT_IN_HOME_BUCKET_MASK 0x0800 // 0b0000100000000000. +#define VT_DISPLACEMENT_MASK 0x07FF // 0b0000011111111111, also denotes the displacement limit. Set to VT_LOAD to 1.0 + // to test proper handling of encroachment on the displacement limit during + // inserts. + +// Extracts a hash fragment from a uint64_t hash code. +// We take the highest four bits so that keys that map (via modulo) to the same bucket have distinct hash fragments. +static inline uint16_t vt_hashfrag( uint64_t hash ) +{ + return ( hash >> 48 ) & VT_HASH_FRAG_MASK; +} + +// Standard quadratic probing formula that guarantees that all buckets are visited when the bucket count is a power of +// two (at least in theory, because the displacement limit could terminate the search early when the bucket count is +// high). +static inline size_t vt_quadratic( uint16_t displacement ) +{ + return ( (size_t)displacement * displacement + displacement ) / 2; +} + +#define VT_MIN_NONZERO_BUCKET_COUNT 8 // Must be a power of two. + +// Function to find the left-most non-zero uint16_t in a uint64_t. +// This function is used when we scan four buckets at a time while iterating and relies on compiler intrinsics wherever +// possible. + +#if defined( __GNUC__ ) && ULLONG_MAX == 0xFFFFFFFFFFFFFFFF + +static inline int vt_first_nonzero_uint16( uint64_t val ) +{ + const uint16_t endian_checker = 0x0001; + if( *(const char *)&endian_checker ) // Little-endian (the compiler will optimize away the check at -O1 and above). + return __builtin_ctzll( val ) / 16; + + return __builtin_clzll( val ) / 16; +} + +#elif defined( _MSC_VER ) && ( defined( _M_X64 ) || defined( _M_ARM64 ) ) + +#include +#pragma intrinsic(_BitScanForward64) +#pragma intrinsic(_BitScanReverse64) + +static inline int vt_first_nonzero_uint16( uint64_t val ) +{ + unsigned long result; + + const uint16_t endian_checker = 0x0001; + if( *(const char *)&endian_checker ) + _BitScanForward64( &result, val ); + else + { + _BitScanReverse64( &result, val ); + result = 63 - result; + } + + return result / 16; +} + +#else + +static inline int vt_first_nonzero_uint16( uint64_t val ) +{ + int result = 0; + + uint32_t half; + memcpy( &half, &val, sizeof( uint32_t ) ); + if( !half ) + result += 2; + + uint16_t quarter; + memcpy( &quarter, (char *)&val + result * sizeof( uint16_t ), sizeof( uint16_t ) ); + if( !quarter ) + result += 1; + + return result; +} + +#endif + +// When the bucket count is zero, setting the metadata pointer to point to a VT_EMPTY placeholder, rather than NULL, +// allows us to avoid checking for a zero bucket count during insertion and lookup. +static const uint16_t vt_empty_placeholder_metadatum = VT_EMPTY; + +// Default hash and comparison functions. + +// Fast-hash, as described by https://jonkagstrom.com/bit-mixer-construction and +// https://code.google.com/archive/p/fast-hash. +// In testing, this hash function provided slightly better performance than the Murmur3 mixer. +static inline uint64_t vt_hash_integer( uint64_t key ) +{ + key ^= key >> 23; + key *= 0x2127599bf4325c37ull; + key ^= key >> 47; + return key; +} + +// FNV-1a. +static inline uint64_t vt_hash_string( char *key ) +{ + uint64_t hash = 0xcbf29ce484222325ull; + while( *key ) + hash = ( (unsigned char)*key++ ^ hash ) * 0x100000001b3ull; + + return hash; +} + +static inline bool vt_cmpr_integer( uint64_t key_1, uint64_t key_2 ) +{ + return key_1 == key_2; +} + +static inline bool vt_cmpr_string( char *key_1, char *key_2 ) +{ + return strcmp( key_1, key_2 ) == 0; +} + +// Default allocation and free functions. + +static inline void *vt_malloc( size_t size ) +{ + return malloc( size ); +} + +static inline void vt_free( void *ptr, size_t size ) +{ + (void)size; + free( ptr ); +} + +static inline void *vt_malloc_with_ctx( size_t size, void *ctx ) +{ + (void)ctx; + return malloc( size ); +} + +static inline void vt_free_with_ctx( void *ptr, size_t size, void *ctx ) +{ + (void)size; + (void)ctx; + free( ptr ); +} + +// The rest of the common header section pertains to the C11 generic macro API. +// This interface is based on the extendible-_Generic mechanism documented in detail at +// https://github.com/JacksonAllan/CC/blob/main/articles/Better_C_Generics_Part_1_The_Extendible_Generic.md. +// In summary, instantiating a template also defines wrappers for the template's types and functions with names in the +// pattern of vt_table_NNNN and vt_init_NNNN, where NNNN is an automatically generated integer unique to the template +// instance in the current translation unit. +// These wrappers plug in to _Generic-based API macros, which use preprocessor magic to automatically generate _Generic +// slots for every existing template instance. +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L && !defined( VT_NO_C11_GENERIC_API ) + +// Octal counter that supports up to 511 hash table templates. +#define VT_TEMPLATE_COUNT_D1 0 // Digit 1, i.e. least significant digit. +#define VT_TEMPLATE_COUNT_D2 0 +#define VT_TEMPLATE_COUNT_D3 0 + +// Four-way concatenation macro. +#define VT_CAT_4_( a, b, c, d ) a##b##c##d +#define VT_CAT_4( a, b, c, d ) VT_CAT_4_( a, b, c, d ) + +// Provides the current value of the counter as a three-digit octal number preceded by 0. +#define VT_TEMPLATE_COUNT VT_CAT_4( 0, VT_TEMPLATE_COUNT_D3, VT_TEMPLATE_COUNT_D2, VT_TEMPLATE_COUNT_D1 ) + +// _Generic-slot generation macros. + +#define VT_GENERIC_SLOT( ty, fn, n ) , VT_CAT( ty, n ): VT_CAT( fn, n ) +#define VT_R1_0( ty, fn, d3, d2 ) +#define VT_R1_1( ty, fn, d3, d2 ) VT_GENERIC_SLOT( ty, fn, VT_CAT_4( 0, d3, d2, 0 ) ) +#define VT_R1_2( ty, fn, d3, d2 ) VT_GENERIC_SLOT( ty, fn, VT_CAT_4( 0, d3, d2, 1 ) ) VT_R1_1( ty, fn, d3, d2 ) +#define VT_R1_3( ty, fn, d3, d2 ) VT_GENERIC_SLOT( ty, fn, VT_CAT_4( 0, d3, d2, 2 ) ) VT_R1_2( ty, fn, d3, d2 ) +#define VT_R1_4( ty, fn, d3, d2 ) VT_GENERIC_SLOT( ty, fn, VT_CAT_4( 0, d3, d2, 3 ) ) VT_R1_3( ty, fn, d3, d2 ) +#define VT_R1_5( ty, fn, d3, d2 ) VT_GENERIC_SLOT( ty, fn, VT_CAT_4( 0, d3, d2, 4 ) ) VT_R1_4( ty, fn, d3, d2 ) +#define VT_R1_6( ty, fn, d3, d2 ) VT_GENERIC_SLOT( ty, fn, VT_CAT_4( 0, d3, d2, 5 ) ) VT_R1_5( ty, fn, d3, d2 ) +#define VT_R1_7( ty, fn, d3, d2 ) VT_GENERIC_SLOT( ty, fn, VT_CAT_4( 0, d3, d2, 6 ) ) VT_R1_6( ty, fn, d3, d2 ) +#define VT_R1_8( ty, fn, d3, d2 ) VT_GENERIC_SLOT( ty, fn, VT_CAT_4( 0, d3, d2, 7 ) ) VT_R1_7( ty, fn, d3, d2 ) +#define VT_R2_0( ty, fn, d3 ) +#define VT_R2_1( ty, fn, d3 ) VT_R1_8( ty, fn, d3, 0 ) +#define VT_R2_2( ty, fn, d3 ) VT_R1_8( ty, fn, d3, 1 ) VT_R2_1( ty, fn, d3 ) +#define VT_R2_3( ty, fn, d3 ) VT_R1_8( ty, fn, d3, 2 ) VT_R2_2( ty, fn, d3 ) +#define VT_R2_4( ty, fn, d3 ) VT_R1_8( ty, fn, d3, 3 ) VT_R2_3( ty, fn, d3 ) +#define VT_R2_5( ty, fn, d3 ) VT_R1_8( ty, fn, d3, 4 ) VT_R2_4( ty, fn, d3 ) +#define VT_R2_6( ty, fn, d3 ) VT_R1_8( ty, fn, d3, 5 ) VT_R2_5( ty, fn, d3 ) +#define VT_R2_7( ty, fn, d3 ) VT_R1_8( ty, fn, d3, 6 ) VT_R2_6( ty, fn, d3 ) +#define VT_R2_8( ty, fn, d3 ) VT_R1_8( ty, fn, d3, 7 ) VT_R2_7( ty, fn, d3 ) +#define VT_R3_0( ty, fn ) +#define VT_R3_1( ty, fn ) VT_R2_8( ty, fn, 0 ) +#define VT_R3_2( ty, fn ) VT_R2_8( ty, fn, 1 ) VT_R3_1( ty, fn ) +#define VT_R3_3( ty, fn ) VT_R2_8( ty, fn, 2 ) VT_R3_2( ty, fn ) +#define VT_R3_4( ty, fn ) VT_R2_8( ty, fn, 3 ) VT_R3_3( ty, fn ) +#define VT_R3_5( ty, fn ) VT_R2_8( ty, fn, 4 ) VT_R3_4( ty, fn ) +#define VT_R3_6( ty, fn ) VT_R2_8( ty, fn, 5 ) VT_R3_5( ty, fn ) +#define VT_R3_7( ty, fn ) VT_R2_8( ty, fn, 6 ) VT_R3_6( ty, fn ) + +#define VT_GENERIC_SLOTS( ty, fn ) \ +VT_CAT( VT_R1_, VT_TEMPLATE_COUNT_D1 )( ty, fn, VT_TEMPLATE_COUNT_D3, VT_TEMPLATE_COUNT_D2 ) \ +VT_CAT( VT_R2_, VT_TEMPLATE_COUNT_D2 )( ty, fn, VT_TEMPLATE_COUNT_D3 ) \ +VT_CAT( VT_R3_, VT_TEMPLATE_COUNT_D3 )( ty, fn ) \ + +// Actual generic API macros. + +// vt_init must be handled as a special case because it could take one or two arguments, depending on whether CTX_TY +// was defined. +#define VT_ARG_3( _1, _2, _3, ... ) _3 +#define vt_init( ... ) VT_ARG_3( __VA_ARGS__, vt_init_with_ctx, vt_init_without_ctx, )( __VA_ARGS__ ) +#define vt_init_without_ctx( table ) _Generic( *( table ) VT_GENERIC_SLOTS( vt_table_, vt_init_ ) )( table ) +#define vt_init_with_ctx( table, ... ) _Generic( *( table ) \ + VT_GENERIC_SLOTS( vt_table_, vt_init_ ) \ +)( table, __VA_ARGS__ ) \ + +#define vt_init_clone( table, ... ) _Generic( *( table ) \ + VT_GENERIC_SLOTS( vt_table_, vt_init_clone_ ) \ +)( table, __VA_ARGS__ ) \ + +#define vt_size( table )_Generic( *( table ) VT_GENERIC_SLOTS( vt_table_, vt_size_ ) )( table ) + +#define vt_bucket_count( table ) _Generic( *( table ) VT_GENERIC_SLOTS( vt_table_, vt_bucket_count_ ) )( table ) + +#define vt_is_end( itr ) _Generic( itr VT_GENERIC_SLOTS( vt_table_itr_, vt_is_end_ ) )( itr ) + +#define vt_insert( table, ... ) _Generic( *( table ) VT_GENERIC_SLOTS( vt_table_, vt_insert_ ) )( table, __VA_ARGS__ ) + +#define vt_get_or_insert( table, ... ) _Generic( *( table ) \ + VT_GENERIC_SLOTS( vt_table_, vt_get_or_insert_ ) \ +)( table, __VA_ARGS__ ) \ + +#define vt_get( table, ... ) _Generic( *( table ) VT_GENERIC_SLOTS( vt_table_, vt_get_ ) )( table, __VA_ARGS__ ) + +#define vt_erase( table, ... ) _Generic( *( table ) VT_GENERIC_SLOTS( vt_table_, vt_erase_ ) )( table, __VA_ARGS__ ) + +#define vt_next( itr ) _Generic( itr VT_GENERIC_SLOTS( vt_table_itr_, vt_next_ ) )( itr ) + +#define vt_erase_itr( table, ... ) _Generic( *( table ) \ + VT_GENERIC_SLOTS( vt_table_, vt_erase_itr_ ) \ +)( table, __VA_ARGS__ ) \ + +#define vt_reserve( table, ... ) _Generic( *( table ) VT_GENERIC_SLOTS( vt_table_, vt_reserve_ ) )( table, __VA_ARGS__ ) + +#define vt_shrink( table ) _Generic( *( table ) VT_GENERIC_SLOTS( vt_table_, vt_shrink_ ) )( table ) + +#define vt_first( table ) _Generic( *( table ) VT_GENERIC_SLOTS( vt_table_, vt_first_ ) )( table ) + +#define vt_clear( table ) _Generic( *( table ) VT_GENERIC_SLOTS( vt_table_, vt_clear_ ) )( table ) + +#define vt_cleanup( table ) _Generic( *( table ) VT_GENERIC_SLOTS( vt_table_, vt_cleanup_ ) )( table ) + +#endif + +#endif + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Prefixed structs */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +#ifndef IMPLEMENTATION_MODE + +typedef struct +{ + KEY_TY key; + #ifdef VAL_TY + VAL_TY val; + #endif +} VT_CAT( NAME, _bucket ); + +typedef struct +{ + VT_CAT( NAME, _bucket ) *data; + uint16_t *metadatum; + uint16_t *metadata_end; // Iterators carry an internal end pointer so that NAME_is_end does not need the table to be + // passed in as an argument. + // This also allows for the zero-bucket-count check to occur once in NAME_first, rather than + // repeatedly in NAME_is_end. + size_t home_bucket; // SIZE_MAX if home bucket is unknown. +} VT_CAT( NAME, _itr ); + +typedef struct +{ + size_t key_count; + size_t buckets_mask; // Rather than storing the bucket count directly, we store the bit mask used to reduce a hash + // code or displacement-derived bucket index to the buckets array, i.e. the bucket count minus + // one. + // Consequently, a zero bucket count (i.e. when .metadata points to the placeholder) constitutes + // a special case, represented by all bits unset (i.e. zero). + VT_CAT( NAME, _bucket ) *buckets; + uint16_t *metadata; // As described above, each metadatum consists of a 4-bit hash-code fragment (X), a 1-bit flag + // indicating whether the key in this bucket begins a chain associated with the bucket (Y), and + // an 11-bit value indicating the quadratic displacement of the next key in the chain (Z): + // XXXXYZZZZZZZZZZZ. + #ifdef CTX_TY + CTX_TY ctx; + #endif +} NAME; + +#endif + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Function prototypes */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +#if defined( HEADER_MODE ) || defined( IMPLEMENTATION_MODE ) +#define VT_API_FN_QUALIFIERS +#else +#define VT_API_FN_QUALIFIERS static inline +#endif + +#ifndef IMPLEMENTATION_MODE + +VT_API_FN_QUALIFIERS void VT_CAT( NAME, _init )( + NAME * + #ifdef CTX_TY + , CTX_TY + #endif +); + +VT_API_FN_QUALIFIERS bool VT_CAT( NAME, _init_clone )( + NAME *, + NAME * + #ifdef CTX_TY + , CTX_TY + #endif +); + +VT_API_FN_QUALIFIERS size_t VT_CAT( NAME, _size )( NAME * ); + +VT_API_FN_QUALIFIERS size_t VT_CAT( NAME, _bucket_count )( NAME * ); + +VT_API_FN_QUALIFIERS bool VT_CAT( NAME, _is_end )( VT_CAT( NAME, _itr ) ); + +VT_API_FN_QUALIFIERS VT_CAT( NAME, _itr ) VT_CAT( NAME, _insert )( + NAME *, + KEY_TY + #ifdef VAL_TY + , VAL_TY + #endif +); + +VT_API_FN_QUALIFIERS VT_CAT( NAME, _itr ) VT_CAT( NAME, _get_or_insert )( + NAME *, + KEY_TY + #ifdef VAL_TY + , VAL_TY + #endif +); + +VT_API_FN_QUALIFIERS VT_CAT( NAME, _itr ) VT_CAT( NAME, _get )( + NAME *table, + KEY_TY key +); + +VT_API_FN_QUALIFIERS bool VT_CAT( NAME, _erase )( NAME *, KEY_TY ); + +VT_API_FN_QUALIFIERS VT_CAT( NAME, _itr ) VT_CAT( NAME, _next )( VT_CAT( NAME, _itr ) ); + +VT_API_FN_QUALIFIERS bool VT_CAT( NAME, _reserve )( NAME *, size_t ); + +VT_API_FN_QUALIFIERS bool VT_CAT( NAME, _shrink )( NAME * ); + +VT_API_FN_QUALIFIERS VT_CAT( NAME, _itr ) VT_CAT( NAME, _first )( NAME * ); + +VT_API_FN_QUALIFIERS void VT_CAT( NAME, _clear )( NAME * ); + +VT_API_FN_QUALIFIERS void VT_CAT( NAME, _cleanup )( NAME * ); + +// Not an API function, but must be prototyped anyway because it is called by the inline NAME_erase_itr below. +VT_API_FN_QUALIFIERS bool VT_CAT( NAME, _erase_itr_raw ) ( NAME *, VT_CAT( NAME, _itr ) ); + +// Erases the key pointed to by itr and returns an iterator to the next key in the table. +// This function must be inlined to ensure that the compiler optimizes away the NAME_fast_forward call if the returned +// iterator is discarded. +#ifdef __GNUC__ +static inline __attribute__((always_inline)) +#elif defined( _MSC_VER ) +static __forceinline +#else +static inline +#endif +VT_CAT( NAME, _itr ) VT_CAT( NAME, _erase_itr )( NAME *table, VT_CAT( NAME, _itr ) itr ) +{ + if( VT_CAT( NAME, _erase_itr_raw )( table, itr ) ) + return VT_CAT( NAME, _next )( itr ); + + return itr; +} + +#endif + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Function implementations */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +#ifndef HEADER_MODE + +// Default settings. + +#ifndef MAX_LOAD +#define MAX_LOAD 0.9 +#endif + +#if !defined( MALLOC ) || !defined( FREE ) +#include +#endif + +#ifndef MALLOC_FN +#ifdef CTX_TY +#define MALLOC_FN vt_malloc_with_ctx +#else +#define MALLOC_FN vt_malloc +#endif +#endif + +#ifndef FREE_FN +#ifdef CTX_TY +#define FREE_FN vt_free_with_ctx +#else +#define FREE_FN vt_free +#endif +#endif + +#ifndef HASH_FN +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L +#ifdef _MSC_VER // In MSVC, the compound literal in the _Generic triggers a warning about unused local variables at /W4. +#define HASH_FN \ +_Pragma( "warning( push )" ) \ +_Pragma( "warning( disable: 4189 )" ) \ +_Generic( ( KEY_TY ){ 0 }, char *: vt_hash_string, default: vt_hash_integer ) \ +_Pragma( "warning( pop )" ) +#else +#define HASH_FN _Generic( ( KEY_TY ){ 0 }, char *: vt_hash_string, default: vt_hash_integer ) +#endif +#else +#error Hash function inference is only available in C11 and later. In C99, you need to define HASH_FN manually to \ +vt_hash_integer, vt_hash_string, or your own custom function with the signature uint64_t ( KEY_TY ). +#endif +#endif + +#ifndef CMPR_FN +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L +#ifdef _MSC_VER +#define CMPR_FN \ +_Pragma( "warning( push )" ) \ +_Pragma( "warning( disable: 4189 )" ) \ +_Generic( ( KEY_TY ){ 0 }, char *: vt_cmpr_string, default: vt_cmpr_integer ) \ +_Pragma( "warning( pop )" ) +#else +#define CMPR_FN _Generic( ( KEY_TY ){ 0 }, char *: vt_cmpr_string, default: vt_cmpr_integer ) +#endif +#else +#error Comparison function inference is only available in C11 and later. In C99, you need to define CMPR_FN manually \ +to vt_cmpr_integer, vt_cmpr_string, or your own custom function with the signature bool ( KEY_TY, KEY_TY ). +#endif +#endif + +VT_API_FN_QUALIFIERS void VT_CAT( NAME, _init )( + NAME *table + #ifdef CTX_TY + , CTX_TY ctx + #endif +) +{ + table->key_count = 0; + table->buckets_mask = 0x0000000000000000ull; + table->buckets = NULL; + table->metadata = (uint16_t *)&vt_empty_placeholder_metadatum; + #ifdef CTX_TY + table->ctx = ctx; + #endif +} + +// For efficiency, especially in the case of a small table, the buckets array and metadata share the same dynamic memory +// allocation: +// +-----------------------------+-----+----------------+--------+ +// | Buckets | Pad | Metadata | Excess | +// +-----------------------------+-----+----------------+--------+ +// Any allocated metadata array requires four excess elements to ensure that iteration functions, which read four +// metadata at a time, never read beyond the end of it. +// This function returns the offset of the beginning of the metadata, i.e. the size of the buckets array plus the +// (usually zero) padding. +// It assumes that the bucket count is not zero. +static inline size_t VT_CAT( NAME, _metadata_offset )( NAME *table ) +{ + // Use sizeof, rather than alignof, for C99 compatibility. + return ( ( ( table->buckets_mask + 1 ) * sizeof( VT_CAT( NAME, _bucket ) ) + sizeof( uint16_t ) - 1 ) / + sizeof( uint16_t ) ) * sizeof( uint16_t ); +} + +// Returns the total allocation size, including the buckets array, padding, metadata, and excess metadata. +// As above, this function assumes that the bucket count is not zero. +static inline size_t VT_CAT( NAME, _total_alloc_size )( NAME *table ) +{ + return VT_CAT( NAME, _metadata_offset )( table ) + ( table->buckets_mask + 1 + 4 ) * sizeof( uint16_t ); +} + +VT_API_FN_QUALIFIERS bool VT_CAT( NAME, _init_clone )( + NAME *table, + NAME *source + #ifdef CTX_TY + , CTX_TY ctx + #endif +) +{ + table->key_count = source->key_count; + table->buckets_mask = source->buckets_mask; + #ifdef CTX_TY + table->ctx = ctx; + #endif + + if( !source->buckets_mask ) + { + table->metadata = (uint16_t *)&vt_empty_placeholder_metadatum; + table->buckets = NULL; + return true; + } + + void *allocation = MALLOC_FN( + VT_CAT( NAME, _total_alloc_size )( table ) + #ifdef CTX_TY + , &table->ctx + #endif + ); + + if( VT_UNLIKELY( !allocation ) ) + return false; + + table->buckets = (VT_CAT( NAME, _bucket ) *)allocation; + table->metadata = (uint16_t *)( (unsigned char *)allocation + VT_CAT( NAME, _metadata_offset )( table ) ); + memcpy( allocation, source->buckets, VT_CAT( NAME, _total_alloc_size )( table ) ); + + return true; +} + +VT_API_FN_QUALIFIERS size_t VT_CAT( NAME, _size )( NAME *table ) +{ + return table->key_count; +} + +VT_API_FN_QUALIFIERS size_t VT_CAT( NAME, _bucket_count )( NAME *table ) +{ + // If the bucket count is zero, buckets_mask will be zero, not the bucket count minus one. + // We account for this special case by adding (bool)buckets_mask rather than one. + return table->buckets_mask + (bool)table->buckets_mask; +} + +VT_API_FN_QUALIFIERS bool VT_CAT( NAME, _is_end )( VT_CAT( NAME, _itr ) itr ) +{ + return itr.metadatum == itr.metadata_end; +} + +// Finds the earliest empty bucket in which a key belonging to home_bucket can be placed, assuming that home_bucket +// is already occupied. +// The reason to begin the search at home_bucket, rather than the end of the existing chain, is that keys deleted from +// other chains might have freed up buckets that could fall in this chain before the final key. +// Returns true if an empty bucket within the range of the displacement limit was found, in which case the final two +// pointer arguments contain the index of the empty bucket and its quadratic displacement from home_bucket. +static inline bool VT_CAT( NAME, _find_first_empty )( + NAME *table, + size_t home_bucket, + size_t *empty, + uint16_t *displacement +) +{ + *displacement = 1; + size_t linear_dispacement = 1; + + while( true ) + { + *empty = ( home_bucket + linear_dispacement ) & table->buckets_mask; + if( table->metadata[ *empty ] == VT_EMPTY ) + return true; + + if( VT_UNLIKELY( ++*displacement == VT_DISPLACEMENT_MASK ) ) + return false; + + linear_dispacement += *displacement; + } +} + +// Finds the key in the chain beginning in home_bucket after which to link a new key with displacement_to_empty +// quadratic displacement and returns the index of the bucket containing that key. +// Although the new key could simply be linked to the end of the chain, keeping the chain ordered by displacement +// theoretically improves cache locality during lookups. +static inline size_t VT_CAT( NAME, _find_insert_location_in_chain )( + NAME *table, + size_t home_bucket, + uint16_t displacement_to_empty +) +{ + size_t candidate = home_bucket; + while( true ) + { + uint16_t displacement = table->metadata[ candidate ] & VT_DISPLACEMENT_MASK; + + if( displacement > displacement_to_empty ) + return candidate; + + candidate = ( home_bucket + vt_quadratic( displacement ) ) & table->buckets_mask; + } +} + +// Frees up a bucket occupied by a key not belonging there so that a new key belonging there can be placed there as the +// beginning of a new chain. +// This requires: +// * Finding the previous key in the chain to which the occupying key belongs by rehashing it and then traversing the +// chain. +// * Disconnecting the key from the chain. +// * Finding the appropriate empty bucket to which to move the key. +// * Moving the key (and value) data to the empty bucket. +// * Re-linking the key to the chain. +// Returns true if the eviction succeeded, or false if no empty bucket to which to evict the occupying key could be +// found within the displacement limit. +static inline bool VT_CAT( NAME, _evict )( NAME *table, size_t bucket ) +{ + // Find the previous key in chain. + size_t home_bucket = HASH_FN( table->buckets[ bucket ].key ) & table->buckets_mask; + size_t prev = home_bucket; + while( true ) + { + size_t next = ( home_bucket + vt_quadratic( table->metadata[ prev ] & VT_DISPLACEMENT_MASK ) ) & + table->buckets_mask; + + if( next == bucket ) + break; + + prev = next; + } + + // Disconnect the key from chain. + table->metadata[ prev ] = ( table->metadata[ prev ] & ~VT_DISPLACEMENT_MASK ) | ( table->metadata[ bucket ] & + VT_DISPLACEMENT_MASK ); + + // Find the empty bucket to which to move the key. + size_t empty; + uint16_t displacement; + if( VT_UNLIKELY( !VT_CAT( NAME, _find_first_empty )( table, home_bucket, &empty, &displacement ) ) ) + return false; + + // Find the key in the chain after which to link the moved key. + prev = VT_CAT( NAME, _find_insert_location_in_chain )( table, home_bucket, displacement ); + + // Move the key (and value) data. + table->buckets[ empty ] = table->buckets[ bucket ]; + + // Re-link the key to the chain from its new bucket. + table->metadata[ empty ] = ( table->metadata[ bucket ] & VT_HASH_FRAG_MASK ) | ( table->metadata[ prev ] & + VT_DISPLACEMENT_MASK ); + table->metadata[ prev ] = ( table->metadata[ prev ] & ~VT_DISPLACEMENT_MASK ) | displacement; + + return true; +} + +// Returns an end iterator, i.e. any iterator for which .metadatum == .metadata_end. +// This function just cleans up the library code in functions that return an end iterator as a failure indicator. +static inline VT_CAT( NAME, _itr ) VT_CAT( NAME, _end_itr )( void ) +{ + VT_CAT( NAME, _itr ) itr = { NULL, NULL, NULL, 0 }; + return itr; +} + +// Inserts a key, optionally replacing the existing key if it already exists. +// There are two main cases that must be handled: +// * If the key's home bucket is empty or occupied by a key that does not belong there, then the key is inserted there, +// evicting the occupying key if there is one. +// * Otherwise, the chain of keys beginning at the home bucket is (if unique is false) traversed in search of a matching +// key. +// If none is found, then the new key is inserted at the earliest available bucket, per quadratic probing from the +// home bucket, and then linked to the chain in a manner that maintains its quadratic order. +// The unique argument tells the function whether to skip searching for the key before inserting it (on rehashing, this +// step is unnecessary). +// The replace argument tells the function whether to replace an existing key. +// If replace is true, the function returns an iterator to the inserted key, or an end iterator if the key was not +// inserted because of the maximum load factor or displacement limit constraints. +// If replace is false, then the return value is as described above, except that if the key already exists, the function +// returns an iterator to the existing key. +static inline VT_CAT( NAME, _itr ) VT_CAT( NAME, _insert_raw )( + NAME *table, + KEY_TY key, + #ifdef VAL_TY + VAL_TY *val, + #endif + bool unique, + bool replace +) +{ + uint64_t hash = HASH_FN( key ); + uint16_t hashfrag = vt_hashfrag( hash ); + size_t home_bucket = hash & table->buckets_mask; + + // Case 1: The home bucket is empty or contains a key that doesn't belong there. + // This case also implicitly handles the case of a zero bucket count, since home_bucket will be zero and metadata[ 0 ] + // will be the empty placeholder. + // In that scenario, the zero buckets_mask triggers the below load-factor check. + if( !( table->metadata[ home_bucket ] & VT_IN_HOME_BUCKET_MASK ) ) + { + if( + // Load-factor check. + VT_UNLIKELY( table->key_count + 1 > VT_CAT( NAME, _bucket_count )( table ) * MAX_LOAD ) || + // Vacate the home bucket if it contains a key. + ( table->metadata[ home_bucket ] != VT_EMPTY && VT_UNLIKELY( !VT_CAT( NAME, _evict )( table, home_bucket ) ) ) + ) + return VT_CAT( NAME, _end_itr )(); + + table->buckets[ home_bucket ].key = key; + #ifdef VAL_TY + table->buckets[ home_bucket ].val = *val; + #endif + table->metadata[ home_bucket ] = hashfrag | VT_IN_HOME_BUCKET_MASK | VT_DISPLACEMENT_MASK; + + ++table->key_count; + + VT_CAT( NAME, _itr ) itr = { + table->buckets + home_bucket, + table->metadata + home_bucket, + table->metadata + table->buckets_mask + 1, // Iteration stopper (i.e. the first of the four excess metadata). + home_bucket + }; + return itr; + } + + // Case 2: The home bucket contains the beginning of a chain. + + // Optionally, check the existing chain. + if( !unique ) + { + size_t bucket = home_bucket; + while( true ) + { + if( + ( table->metadata[ bucket ] & VT_HASH_FRAG_MASK ) == hashfrag && + VT_LIKELY( CMPR_FN( table->buckets[ bucket ].key, key ) ) + ) + { + if( replace ) + { + #ifdef KEY_DTOR_FN + KEY_DTOR_FN( table->buckets[ bucket ].key ); + #endif + table->buckets[ bucket ].key = key; + + #ifdef VAL_TY + #ifdef VAL_DTOR_FN + VAL_DTOR_FN( table->buckets[ bucket ].val ); + #endif + table->buckets[ bucket ].val = *val; + #endif + } + + VT_CAT( NAME, _itr ) itr = { + table->buckets + bucket, + table->metadata + bucket, + table->metadata + table->buckets_mask + 1, + home_bucket + }; + return itr; + } + + uint16_t displacement = table->metadata[ bucket ] & VT_DISPLACEMENT_MASK; + if( displacement == VT_DISPLACEMENT_MASK ) + break; + + bucket = ( home_bucket + vt_quadratic( displacement ) ) & table->buckets_mask; + } + } + + size_t empty; + uint16_t displacement; + if( + VT_UNLIKELY( + // Load-factor check. + table->key_count + 1 > VT_CAT( NAME, _bucket_count )( table ) * MAX_LOAD || + // Find the earliest empty bucket, per quadratic probing. + !VT_CAT( NAME, _find_first_empty )( table, home_bucket, &empty, &displacement ) + ) + ) + return VT_CAT( NAME, _end_itr )(); + + // Insert the new key (and value) in the empty bucket and link it to the chain. + + size_t prev = VT_CAT( NAME, _find_insert_location_in_chain )( table, home_bucket, displacement ); + + table->buckets[ empty ].key = key; + #ifdef VAL_TY + table->buckets[ empty ].val = *val; + #endif + table->metadata[ empty ] = hashfrag | ( table->metadata[ prev ] & VT_DISPLACEMENT_MASK ); + table->metadata[ prev ] = ( table->metadata[ prev ] & ~VT_DISPLACEMENT_MASK ) | displacement; + + ++table->key_count; + + VT_CAT( NAME, _itr ) itr = { + table->buckets + empty, + table->metadata + empty, + table->metadata + table->buckets_mask + 1, + home_bucket + }; + return itr; +} + +// Resizes the bucket array. +// This function assumes that bucket_count is a power of two and large enough to accommodate all keys without violating +// the maximum load factor. +// Returns false in the case of allocation failure. +// As this function is called very rarely in _insert and _get_or_insert, ideally it should not be inlined into those +// functions. +// In testing, the no-inline approach showed a performance benefit when inserting existing keys (i.e. replacing). +#ifdef __GNUC__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wattributes" // Silence warning about combining noinline with static inline. +__attribute__((noinline)) static inline +#elif defined( _MSC_VER ) +__declspec(noinline) static inline +#else +static inline +#endif +bool VT_CAT( NAME, _rehash )( NAME *table, size_t bucket_count ) +{ + // The attempt to resize the bucket array and rehash the keys must occur inside a loop that incrementally doubles the + // target bucket count because a failure could theoretically occur at any load factor due to the displacement limit. + while( true ) + { + NAME new_table = { + 0, + bucket_count - 1, + NULL, + NULL + #ifdef CTX_TY + , table->ctx + #endif + }; + + void *allocation = MALLOC_FN( + VT_CAT( NAME, _total_alloc_size )( &new_table ) + #ifdef CTX_TY + , &new_table.ctx + #endif + ); + + if( VT_UNLIKELY( !allocation ) ) + return false; + + new_table.buckets = (VT_CAT( NAME, _bucket ) *)allocation; + new_table.metadata = (uint16_t *)( (unsigned char *)allocation + VT_CAT( NAME, _metadata_offset )( &new_table ) ); + + memset( new_table.metadata, 0x00, ( bucket_count + 4 ) * sizeof( uint16_t ) ); + + // Iteration stopper at the end of the actual metadata array (i.e. the first of the four excess metadata). + new_table.metadata[ bucket_count ] = 0x01; + + for( size_t bucket = 0; bucket < VT_CAT( NAME, _bucket_count )( table ); ++bucket ) + if( table->metadata[ bucket ] != VT_EMPTY ) + { + VT_CAT( NAME, _itr ) itr = VT_CAT( NAME, _insert_raw )( + &new_table, + table->buckets[ bucket ].key, + #ifdef VAL_TY + &table->buckets[ bucket ].val, + #endif + true, + false + ); + + if( VT_UNLIKELY( VT_CAT( NAME, _is_end )( itr ) ) ) + break; + } + + // If a key could not be reinserted due to the displacement limit, double the bucket count and retry. + if( VT_UNLIKELY( new_table.key_count < table->key_count ) ) + { + FREE_FN( + new_table.buckets, + VT_CAT( NAME, _total_alloc_size )( &new_table ) + #ifdef CTX_TY + , &new_table.ctx + #endif + ); + + bucket_count *= 2; + continue; + } + + if( table->buckets_mask ) + FREE_FN( + table->buckets, + VT_CAT( NAME, _total_alloc_size )( table ) + #ifdef CTX_TY + , &table->ctx + #endif + ); + + *table = new_table; + return true; + } +} +#ifdef __GNUC__ +#pragma GCC diagnostic pop +#endif + +// Inserts a key, replacing the existing key if it already exists. +// This function wraps insert_raw in a loop that handles growing and rehashing the table if a new key cannot be inserted +// because of the maximum load factor or displacement limit constraints. +// Returns an iterator to the inserted key, or an end iterator in the case of allocation failure. +VT_API_FN_QUALIFIERS VT_CAT( NAME, _itr ) VT_CAT( NAME, _insert )( + NAME *table, + KEY_TY key + #ifdef VAL_TY + , VAL_TY val + #endif +) +{ + while( true ) + { + VT_CAT( NAME, _itr ) itr = VT_CAT( NAME, _insert_raw )( + table, + key, + #ifdef VAL_TY + &val, + #endif + false, + true + ); + + if( + // Lookup succeeded, in which case itr points to the found key. + VT_LIKELY( !VT_CAT( NAME, _is_end )( itr ) ) || + // Lookup failed and rehash also fails, in which case itr is an end iterator. + VT_UNLIKELY( + !VT_CAT( NAME, _rehash )( + table, table->buckets_mask ? VT_CAT( NAME, _bucket_count )( table ) * 2 : VT_MIN_NONZERO_BUCKET_COUNT + ) + ) + ) + return itr; + } +} + +// Same as NAME_insert, except that if the key already exists, no insertion occurs and the function returns an iterator +// to the existing key. +VT_API_FN_QUALIFIERS VT_CAT( NAME, _itr ) VT_CAT( NAME, _get_or_insert )( + NAME *table, + KEY_TY key + #ifdef VAL_TY + , VAL_TY val + #endif +) +{ + while( true ) + { + VT_CAT( NAME, _itr ) itr = VT_CAT( NAME, _insert_raw )( + table, + key, + #ifdef VAL_TY + &val, + #endif + false, + false + ); + + if( + // Lookup succeeded, in which case itr points to the found key. + VT_LIKELY( !VT_CAT( NAME, _is_end )( itr ) ) || + // Lookup failed and rehash also fails, in which case itr is an end iterator. + VT_UNLIKELY( + !VT_CAT( NAME, _rehash )( + table, table->buckets_mask ? VT_CAT( NAME, _bucket_count )( table ) * 2 : VT_MIN_NONZERO_BUCKET_COUNT + ) + ) + ) + return itr; + } +} + +// Returns an iterator pointing to the specified key, or an end iterator if the key does not exist. +VT_API_FN_QUALIFIERS VT_CAT( NAME, _itr ) VT_CAT( NAME, _get )( NAME *table, KEY_TY key ) +{ + uint64_t hash = HASH_FN( key ); + size_t home_bucket = hash & table->buckets_mask; + + // If the home bucket is empty or contains a key that does not belong there, then our key does not exist. + // This check also implicitly handles the case of a zero bucket count, since home_bucket will be zero and + // metadata[ 0 ] will be the empty placeholder. + if( !( table->metadata[ home_bucket ] & VT_IN_HOME_BUCKET_MASK ) ) + return VT_CAT( NAME, _end_itr )(); + + // Traverse the chain of keys belonging to the home bucket. + uint16_t hashfrag = vt_hashfrag( hash ); + size_t bucket = home_bucket; + while( true ) + { + if( + ( table->metadata[ bucket ] & VT_HASH_FRAG_MASK ) == hashfrag && + VT_LIKELY( CMPR_FN( table->buckets[ bucket ].key, key ) ) + ) + { + VT_CAT( NAME, _itr ) itr = { + table->buckets + bucket, + table->metadata + bucket, + table->metadata + table->buckets_mask + 1, + home_bucket + }; + return itr; + } + + uint16_t displacement = table->metadata[ bucket ] & VT_DISPLACEMENT_MASK; + if( displacement == VT_DISPLACEMENT_MASK ) + return VT_CAT( NAME, _end_itr )(); + + bucket = ( home_bucket + vt_quadratic( displacement ) ) & table->buckets_mask; + } +} + +// Erases the key pointed to by the specified iterator. +// The erasure always occurs at the end of the chain to which the key belongs. +// If the key to be erased is not the last in the chain, it is swapped with the last so that erasure occurs at the end. +// This helps keep a chain's keys close to their home bucket for the sake of cache locality. +// Returns true if, in the case of iteration from first to end, NAME_next should now be called on the iterator to find +// the next key. +// This return value is necessary because at the iterator location, the erasure could result in an empty bucket, a +// bucket containing a moved key already visited during the iteration, or a bucket containing a moved key not yet +// visited. +VT_API_FN_QUALIFIERS bool VT_CAT( NAME, _erase_itr_raw )( NAME *table, VT_CAT( NAME, _itr ) itr ) +{ + --table->key_count; + size_t itr_bucket = itr.metadatum - table->metadata; + + // Case 1: The key is the only one in its chain, so just remove it. + if( + table->metadata[ itr_bucket ] & VT_IN_HOME_BUCKET_MASK && + ( table->metadata[ itr_bucket ] & VT_DISPLACEMENT_MASK ) == VT_DISPLACEMENT_MASK + ) + { + #ifdef KEY_DTOR_FN + KEY_DTOR_FN( table->buckets[ itr_bucket ].key ); + #endif + + #ifdef VAL_DTOR_FN + VAL_DTOR_FN( table->buckets[ itr_bucket ].val ); + #endif + + table->metadata[ itr_bucket ] = VT_EMPTY; + return true; + } + + // Case 2 and 3 require that we know the key's home bucket, which the iterator may not have recorded. + if( itr.home_bucket == SIZE_MAX ) + { + if( table->metadata[ itr_bucket ] & VT_IN_HOME_BUCKET_MASK ) + itr.home_bucket = itr_bucket; + else + itr.home_bucket = HASH_FN( table->buckets[ itr_bucket ].key ) & table->buckets_mask; + } + + // The key can now be safely destructed for cases 2 and 3. + #ifdef KEY_DTOR_FN + KEY_DTOR_FN( table->buckets[ itr_bucket ].key ); + #endif + + #ifdef VAL_DTOR_FN + VAL_DTOR_FN( table->buckets[ itr_bucket ].val ); + #endif + + // Case 2: The key is the last in a multi-key chain. + // Traverse the chain from the beginning and find the penultimate key. + // Then disconnect the key and erase. + if( ( table->metadata[ itr_bucket ] & VT_DISPLACEMENT_MASK ) == VT_DISPLACEMENT_MASK ) + { + size_t bucket = itr.home_bucket; + while( true ) + { + uint16_t displacement = table->metadata[ bucket ] & VT_DISPLACEMENT_MASK; + size_t next = ( itr.home_bucket + vt_quadratic( displacement ) ) & table->buckets_mask; + if( next == itr_bucket ) + { + table->metadata[ bucket ] |= VT_DISPLACEMENT_MASK; + table->metadata[ itr_bucket ] = VT_EMPTY; + return true; + } + + bucket = next; + } + } + + // Case 3: The chain has multiple keys, and the key is not the last one. + // Traverse the chain from the key to be erased and find the last and penultimate keys. + // Disconnect the last key from the chain, and swap it with the key to erase. + size_t bucket = itr_bucket; + while( true ) + { + size_t prev = bucket; + bucket = ( itr.home_bucket + vt_quadratic( table->metadata[ bucket ] & VT_DISPLACEMENT_MASK ) ) & + table->buckets_mask; + + if( ( table->metadata[ bucket ] & VT_DISPLACEMENT_MASK ) == VT_DISPLACEMENT_MASK ) + { + table->buckets[ itr_bucket ] = table->buckets[ bucket ]; + + table->metadata[ itr_bucket ] = ( table->metadata[ itr_bucket ] & ~VT_HASH_FRAG_MASK ) | ( + table->metadata[ bucket ] & VT_HASH_FRAG_MASK ); + + table->metadata[ prev ] |= VT_DISPLACEMENT_MASK; + table->metadata[ bucket ] = VT_EMPTY; + + // Whether the iterator should be advanced depends on whether the key moved to the iterator bucket came from + // before or after that bucket. + // In the former case, the iteration would already have hit the moved key, so the iterator should still be + // advanced. + if( bucket > itr_bucket ) + return false; + + return true; + } + } +} + +// Erases the specified key, if it exists. +// Returns true if a key was erased. +VT_API_FN_QUALIFIERS bool VT_CAT( NAME, _erase )( NAME *table, KEY_TY key ) +{ + VT_CAT( NAME, _itr ) itr = VT_CAT( NAME, _get)( table, key ); + if( VT_CAT( NAME, _is_end )( itr ) ) + return false; + + VT_CAT( NAME, _erase_itr_raw )( table, itr ); + return true; +} + +// Finds the first occupied bucket at or after the bucket pointed to by itr. +// This function scans four buckets at a time, ideally using intrinsics. +static inline void VT_CAT( NAME, _fast_forward )( VT_CAT( NAME, _itr ) *itr ) +{ + while( true ) + { + uint64_t metadata; + memcpy( &metadata, itr->metadatum, sizeof( uint64_t ) ); + if( metadata ) + { + int offset = vt_first_nonzero_uint16( metadata ); + itr->data += offset; + itr->metadatum += offset; + itr->home_bucket = SIZE_MAX; + return; + } + + itr->data += 4; + itr->metadatum += 4; + } +} + +VT_API_FN_QUALIFIERS VT_CAT( NAME, _itr ) VT_CAT( NAME, _next )( VT_CAT( NAME, _itr ) itr ) +{ + ++itr.data; + ++itr.metadatum; + VT_CAT( NAME, _fast_forward )( &itr ); + return itr; +} + +// Returns the minimum bucket count required to accommodate a certain number of keys, which is governed by the maximum +// load factor. +static inline size_t VT_CAT( NAME, _min_bucket_count_for_size )( size_t size ) +{ + if( size == 0 ) + return 0; + + // Round up to a power of two. + size_t bucket_count = VT_MIN_NONZERO_BUCKET_COUNT; + while( size > bucket_count * MAX_LOAD ) + bucket_count *= 2; + + return bucket_count; +} + +VT_API_FN_QUALIFIERS bool VT_CAT( NAME, _reserve )( NAME *table, size_t size ) +{ + size_t bucket_count = VT_CAT( NAME, _min_bucket_count_for_size )( size ); + + if( bucket_count <= VT_CAT( NAME, _bucket_count )( table ) ) + return true; + + return VT_CAT( NAME, _rehash )( table, bucket_count ); +} + +VT_API_FN_QUALIFIERS bool VT_CAT( NAME, _shrink )( NAME *table ) +{ + size_t bucket_count = VT_CAT( NAME, _min_bucket_count_for_size )( table->key_count ); + + if( bucket_count == VT_CAT( NAME, _bucket_count )( table ) ) // Shrink unnecessary. + return true; + + if( bucket_count == 0 ) + { + FREE_FN( + table->buckets, + VT_CAT( NAME, _total_alloc_size )( table ) + #ifdef CTX_TY + , &table->ctx + #endif + ); + + table->buckets_mask = 0x0000000000000000ull; + table->metadata = (uint16_t *)&vt_empty_placeholder_metadatum; + return true; + } + + return VT_CAT( NAME, _rehash )( table, bucket_count ); +} + +VT_API_FN_QUALIFIERS VT_CAT( NAME, _itr ) VT_CAT( NAME, _first )( NAME *table ) +{ + if( !table->key_count ) + return VT_CAT( NAME, _end_itr )(); + + VT_CAT( NAME, _itr ) itr = { table->buckets, table->metadata, table->metadata + table->buckets_mask + 1, SIZE_MAX }; + VT_CAT( NAME, _fast_forward )( &itr ); + return itr; +} + +VT_API_FN_QUALIFIERS void VT_CAT( NAME, _clear )( NAME *table ) +{ + if( !table->key_count ) + return; + + for( size_t i = 0; i < VT_CAT( NAME, _bucket_count )( table ); ++i ) + { + if( table->metadata[ i ] != VT_EMPTY ) + { + #ifdef KEY_DTOR_FN + KEY_DTOR_FN( table->buckets[ i ].key ); + #endif + #ifdef VAL_DTOR_FN + VAL_DTOR_FN( table->buckets[ i ].val ); + #endif + } + + table->metadata[ i ] = VT_EMPTY; + } + + table->key_count = 0; +} + +VT_API_FN_QUALIFIERS void VT_CAT( NAME, _cleanup )( NAME *table ) +{ + if( !table->buckets_mask ) + return; + + #if defined( KEY_DTOR_FN ) || defined( VAL_DTOR_FN ) + VT_CAT( NAME, _clear )( table ); + #endif + + FREE_FN( + table->buckets, + VT_CAT( NAME, _total_alloc_size )( table ) + #ifdef CTX_TY + , &table->ctx + #endif + ); + + VT_CAT( NAME, _init )( + table + #ifdef CTX_TY + , table->ctx + #endif + ); +} + +#endif + +/*--------------------------------------------------------------------------------------------------------------------*/ +/* Wrapper types and functions for the C11 generic API */ +/*--------------------------------------------------------------------------------------------------------------------*/ + +#if defined(__STDC_VERSION__) && \ + __STDC_VERSION__ >= 201112L && \ + !defined( IMPLEMENTATION_MODE ) && \ + !defined( VT_NO_C11_GENERIC_API ) \ + +typedef NAME VT_CAT( vt_table_, VT_TEMPLATE_COUNT ); +typedef VT_CAT( NAME, _itr ) VT_CAT( vt_table_itr_, VT_TEMPLATE_COUNT ); + +static inline void VT_CAT( vt_init_, VT_TEMPLATE_COUNT )( + NAME *table + #ifdef CTX_TY + , CTX_TY ctx + #endif +) +{ + VT_CAT( NAME, _init )( + table + #ifdef CTX_TY + , ctx + #endif + ); +} + +static inline bool VT_CAT( vt_init_clone_, VT_TEMPLATE_COUNT )( + NAME *table, + NAME* source + #ifdef CTX_TY + , CTX_TY ctx + #endif +) +{ + return VT_CAT( NAME, _init_clone )( + table, + source + #ifdef CTX_TY + , ctx + #endif + ); +} + +static inline size_t VT_CAT( vt_size_, VT_TEMPLATE_COUNT )( NAME *table ) +{ + return VT_CAT( NAME, _size )( table ); +} + +static inline size_t VT_CAT( vt_bucket_count_, VT_TEMPLATE_COUNT )( NAME *table ) +{ + return VT_CAT( NAME, _bucket_count )( table ); +} + +static inline bool VT_CAT( vt_is_end_, VT_TEMPLATE_COUNT )( VT_CAT( NAME, _itr ) itr ) +{ + return VT_CAT( NAME, _is_end )( itr ); +} + +static inline VT_CAT( NAME, _itr ) VT_CAT( vt_insert_, VT_TEMPLATE_COUNT )( + NAME *table, + KEY_TY key + #ifdef VAL_TY + , VAL_TY val + #endif +) +{ + return VT_CAT( NAME, _insert )( + table, + key + #ifdef VAL_TY + , val + #endif + ); +} + +static inline VT_CAT( NAME, _itr ) VT_CAT( vt_get_or_insert_, VT_TEMPLATE_COUNT )( + NAME *table, + KEY_TY key + #ifdef VAL_TY + , VAL_TY val + #endif +) +{ + return VT_CAT( NAME, _get_or_insert )( + table, + key + #ifdef VAL_TY + , val + #endif + ); +} + +static inline VT_CAT( NAME, _itr ) VT_CAT( vt_get_, VT_TEMPLATE_COUNT )( NAME *table, KEY_TY key ) +{ + return VT_CAT( NAME, _get )( table, key ); +} + +static inline bool VT_CAT( vt_erase_, VT_TEMPLATE_COUNT )( NAME *table, KEY_TY key ) +{ + return VT_CAT( NAME, _erase )( table, key ); +} + +static inline VT_CAT( NAME, _itr ) VT_CAT( vt_next_, VT_TEMPLATE_COUNT )( VT_CAT( NAME, _itr ) itr ) +{ + return VT_CAT( NAME, _next )( itr ); +} + +static inline VT_CAT( NAME, _itr ) VT_CAT( vt_erase_itr_, VT_TEMPLATE_COUNT )( NAME *table, VT_CAT( NAME, _itr ) itr ) +{ + return VT_CAT( NAME, _erase_itr )( table, itr ); +} + +static inline bool VT_CAT( vt_reserve_, VT_TEMPLATE_COUNT )( NAME *table, size_t bucket_count ) +{ + return VT_CAT( NAME, _reserve )( table, bucket_count ); +} + +static inline bool VT_CAT( vt_shrink_, VT_TEMPLATE_COUNT )( NAME *table ) +{ + return VT_CAT( NAME, _shrink )( table ); +} + +static inline VT_CAT( NAME, _itr ) VT_CAT( vt_first_, VT_TEMPLATE_COUNT )( NAME *table ) +{ + return VT_CAT( NAME, _first )( table ); +} + +static inline void VT_CAT( vt_clear_, VT_TEMPLATE_COUNT )( NAME *table ) +{ + VT_CAT( NAME, _clear )( table ); +} + +static inline void VT_CAT( vt_cleanup_, VT_TEMPLATE_COUNT )( NAME *table ) +{ + VT_CAT( NAME, _cleanup )( table ); +} + +// Increment the template counter. +#if VT_TEMPLATE_COUNT_D1 == 0 +#undef VT_TEMPLATE_COUNT_D1 +#define VT_TEMPLATE_COUNT_D1 1 +#elif VT_TEMPLATE_COUNT_D1 == 1 +#undef VT_TEMPLATE_COUNT_D1 +#define VT_TEMPLATE_COUNT_D1 2 +#elif VT_TEMPLATE_COUNT_D1 == 2 +#undef VT_TEMPLATE_COUNT_D1 +#define VT_TEMPLATE_COUNT_D1 3 +#elif VT_TEMPLATE_COUNT_D1 == 3 +#undef VT_TEMPLATE_COUNT_D1 +#define VT_TEMPLATE_COUNT_D1 4 +#elif VT_TEMPLATE_COUNT_D1 == 4 +#undef VT_TEMPLATE_COUNT_D1 +#define VT_TEMPLATE_COUNT_D1 5 +#elif VT_TEMPLATE_COUNT_D1 == 5 +#undef VT_TEMPLATE_COUNT_D1 +#define VT_TEMPLATE_COUNT_D1 6 +#elif VT_TEMPLATE_COUNT_D1 == 6 +#undef VT_TEMPLATE_COUNT_D1 +#define VT_TEMPLATE_COUNT_D1 7 +#elif VT_TEMPLATE_COUNT_D1 == 7 +#undef VT_TEMPLATE_COUNT_D1 +#define VT_TEMPLATE_COUNT_D1 0 +#if VT_TEMPLATE_COUNT_D2 == 0 +#undef VT_TEMPLATE_COUNT_D2 +#define VT_TEMPLATE_COUNT_D2 1 +#elif VT_TEMPLATE_COUNT_D2 == 1 +#undef VT_TEMPLATE_COUNT_D2 +#define VT_TEMPLATE_COUNT_D2 2 +#elif VT_TEMPLATE_COUNT_D2 == 2 +#undef VT_TEMPLATE_COUNT_D2 +#define VT_TEMPLATE_COUNT_D2 3 +#elif VT_TEMPLATE_COUNT_D2 == 3 +#undef VT_TEMPLATE_COUNT_D2 +#define VT_TEMPLATE_COUNT_D2 4 +#elif VT_TEMPLATE_COUNT_D2 == 4 +#undef VT_TEMPLATE_COUNT_D2 +#define VT_TEMPLATE_COUNT_D2 5 +#elif VT_TEMPLATE_COUNT_D2 == 5 +#undef VT_TEMPLATE_COUNT_D2 +#define VT_TEMPLATE_COUNT_D2 6 +#elif VT_TEMPLATE_COUNT_D2 == 6 +#undef VT_TEMPLATE_COUNT_D2 +#define VT_TEMPLATE_COUNT_D2 7 +#elif VT_TEMPLATE_COUNT_D2 == 7 +#undef VT_TEMPLATE_COUNT_D2 +#define VT_TEMPLATE_COUNT_D2 0 +#if VT_TEMPLATE_COUNT_D3 == 0 +#undef VT_TEMPLATE_COUNT_D3 +#define VT_TEMPLATE_COUNT_D3 1 +#elif VT_TEMPLATE_COUNT_D3 == 1 +#undef VT_TEMPLATE_COUNT_D3 +#define VT_TEMPLATE_COUNT_D3 2 +#elif VT_TEMPLATE_COUNT_D3 == 2 +#undef VT_TEMPLATE_COUNT_D3 +#define VT_TEMPLATE_COUNT_D3 3 +#elif VT_TEMPLATE_COUNT_D3 == 3 +#undef VT_TEMPLATE_COUNT_D3 +#define VT_TEMPLATE_COUNT_D3 4 +#elif VT_TEMPLATE_COUNT_D3 == 4 +#undef VT_TEMPLATE_COUNT_D3 +#define VT_TEMPLATE_COUNT_D3 5 +#elif VT_TEMPLATE_COUNT_D3 == 5 +#undef VT_TEMPLATE_COUNT_D3 +#define VT_TEMPLATE_COUNT_D3 6 +#elif VT_TEMPLATE_COUNT_D3 == 6 +#undef VT_TEMPLATE_COUNT_D3 +#define VT_TEMPLATE_COUNT_D3 7 +#elif VT_TEMPLATE_COUNT_D3 == 7 +#error Sorry, the number of template instances is limited to 511. Define VT_NO_C11_GENERIC_API globally and use the \ +C99 prefixed function API to circumvent this restriction. +#endif +#endif +#endif + +#endif + +#undef NAME +#undef KEY_TY +#undef VAL_TY +#undef HASH_FN +#undef CMPR_FN +#undef MAX_LOAD +#undef KEY_DTOR_FN +#undef VAL_DTOR_FN +#undef CTX_TY +#undef MALLOC_FN +#undef FREE_FN +#undef HEADER_MODE +#undef IMPLEMENTATION_MODE +#undef VT_API_FN_QUALIFIERS diff --git a/vere/pkg/vere/ward.c b/vere/pkg/vere/ward.c new file mode 100644 index 0000000..9d6c8cb --- /dev/null +++ b/vere/pkg/vere/ward.c @@ -0,0 +1,254 @@ +/// @file + +#include "vere.h" + +#include "noun.h" + +// ward: lifecycle management for common structures +// +// should contain anything allocated in multiple modules, +// or allocated in one and freed in another +// + +/* u3_dent_init(): initialize file record. +*/ +u3_dent* +u3_dent_init(const c3_c* nam_c) +{ + u3_dent *det_u = c3_malloc(sizeof(*det_u)); + det_u->nex_u = 0; + det_u->nam_c = c3_malloc(1 + strlen(nam_c)); + strcpy(det_u->nam_c, nam_c); + + return det_u; +} + +/* u3_dent_free(): dispose file record. +*/ +void +u3_dent_free(u3_dent *det_u) +{ + c3_free(det_u->nam_c); + c3_free(det_u); +} + +/* u3_dire_init(): initialize directory record. +*/ +u3_dire* +u3_dire_init(const c3_c* pax_c) +{ + u3_dire *dir_u = c3_malloc(sizeof *dir_u); + dir_u->all_u = 0; + dir_u->dil_u = 0; + dir_u->pax_c = c3_malloc(1 + strlen(pax_c)); + strcpy(dir_u->pax_c, pax_c); + + return dir_u; +} + +/* u3_dire_free(): dispose directory record. +*/ +void +u3_dire_free(u3_dire *dir_u) +{ + { + u3_dent *det_u = dir_u->all_u; + u3_dent *nex_u; + + while ( det_u ) { + nex_u = det_u->nex_u; + u3_dent_free(det_u); + det_u = nex_u; + } + } + + { + u3_dent *det_u = dir_u->dil_u; + u3_dent *nex_u; + + while ( det_u ) { + nex_u = det_u->nex_u; + u3_dent_free(det_u); + det_u = nex_u; + } + } + + c3_free(dir_u->pax_c); + c3_free(dir_u); +} + +/* u3_fact_init(): initialize completed event. +*/ +u3_fact* +u3_fact_init(c3_d eve_d, c3_l mug_l, u3_noun job) +{ + u3_fact *tac_u = c3_malloc(sizeof(*tac_u)); + tac_u->eve_d = eve_d; + tac_u->mug_l = mug_l; + tac_u->nex_u = 0; + tac_u->job = job; + + return tac_u; +} + +/* u3_fact_free(): dispose completed event. +*/ +void +u3_fact_free(u3_fact *tac_u) +{ + u3z(tac_u->job); + c3_free(tac_u); +} + +/* u3_gift_init(): initialize effect list. +*/ +u3_gift* +u3_gift_init(c3_d eve_d, u3_noun act) +{ + u3_gift *gif_u = c3_malloc(sizeof(*gif_u)); + gif_u->eve_d = eve_d; + gif_u->nex_u = 0; + gif_u->act = act; + + return gif_u; +} + +/* u3_gift_free(): dispose effect list. +*/ +void +u3_gift_free(u3_gift *gif_u) +{ + u3z(gif_u->act); + c3_free(gif_u); +} + +/* u3_ovum_init: initialize an unlinked potential event +*/ +u3_ovum* +u3_ovum_init(c3_w mil_w, + u3_noun tar, + u3_noun wir, + u3_noun cad) +{ + u3_ovum* egg_u = c3_malloc(sizeof(*egg_u)); + egg_u->car_u = 0; + egg_u->try_w = 0; + egg_u->ptr_v = 0; + egg_u->mil_w = mil_w; + egg_u->tar = tar; + egg_u->wir = wir; + egg_u->cad = cad; + + egg_u->pre_u = egg_u->nex_u = 0; + + egg_u->cb_u.news_f = 0; + egg_u->cb_u.bail_f = 0; + + // spinner defaults + // + egg_u->pin_u.lab = u3k(u3h(wir)); + egg_u->pin_u.del_o = c3y; + + return egg_u; +} + +/* u3_ovum_free: dispose an unlinked potential event +*/ +void +u3_ovum_free(u3_ovum *egg_u) +{ + u3z(egg_u->pin_u.lab); + u3z(egg_u->tar); + u3z(egg_u->wir); + u3z(egg_u->cad); + + c3_free(egg_u); +} + +/* u3_pico_init(): initialize a scry request struct +*/ +u3_pico* +u3_pico_init() +{ + u3_pico* pic_u = c3_calloc(sizeof(*pic_u)); + return pic_u; +} + +/* u3_pico_free(): dispose a scry request struct +*/ +void +u3_pico_free(u3_pico* pic_u) +{ + u3z(pic_u->gan); + + switch ( pic_u->typ_e ) { + default: u3_assert(0); + + case u3_pico_full: { + u3z(pic_u->ful); + } break; + + case u3_pico_once: { + u3z(pic_u->las_u.des); + u3z(pic_u->las_u.pax); + } break; + } + + c3_free(pic_u); +} + +/* u3_mcut_char(): measure/cut character. +*/ +c3_w +u3_mcut_char(c3_c* buf_c, c3_w len_w, c3_c chr_c) +{ + if ( buf_c ) { + buf_c[len_w] = chr_c; + } + return len_w + 1; +} + +/* u3_mcut_cord(): measure/cut cord. +*/ +c3_w +u3_mcut_cord(c3_c* buf_c, c3_w len_w, u3_noun san) +{ + c3_w ten_w = u3r_met(3, san); + + if ( buf_c ) { + u3r_bytes(0, ten_w, (c3_y *)(buf_c + len_w), san); + } + u3z(san); + return (len_w + ten_w); +} + +/* u3_mcut_path(): measure/cut cord list. +*/ +c3_w +u3_mcut_path(c3_c* buf_c, c3_w len_w, c3_c sep_c, u3_noun pax) +{ + u3_noun axp = pax; + + while ( u3_nul != axp ) { + u3_noun h_axp = u3h(axp); + + len_w = u3_mcut_cord(buf_c, len_w, u3k(h_axp)); + axp = u3t(axp); + + if ( u3_nul != axp ) { + len_w = u3_mcut_char(buf_c, len_w, sep_c); + } + } + u3z(pax); + return len_w; +} + +/* u3_mcut_host(): measure/cut host. +*/ +c3_w +u3_mcut_host(c3_c* buf_c, c3_w len_w, u3_noun hot) +{ + len_w = u3_mcut_path(buf_c, len_w, '.', u3kb_flop(u3k(hot))); + u3z(hot); + return len_w; +} diff --git a/vere/pkg/vere/xmas_tests.c b/vere/pkg/vere/xmas_tests.c new file mode 100644 index 0000000..58417b9 --- /dev/null +++ b/vere/pkg/vere/xmas_tests.c @@ -0,0 +1,59 @@ +/// @file + +#include "./io/xmas.c" + +/* _setup(): prepare for tests. +*/ +static void +_setup(void) +{ + u3m_init(1 << 22); + u3m_pave(c3y); +} + +/* _test_ames(): spot check ames helpers +*/ +static void +_test_xmas(void) +{ + u3_lane lan_u; + lan_u.pip_w = 0x7f000001; + lan_u.por_s = 12345; + + u3_noun lan = u3_ames_encode_lane(lan_u); + u3_lane nal_u = u3_ames_decode_lane(u3k(lan)); + u3_lane nal_u2 = u3_ames_decode_lane(lan); + + if ( !(lan_u.pip_w == nal_u.pip_w && lan_u.por_s == nal_u.por_s) ) { + fprintf(stderr, "ames: lane fail (a)\r\n"); + fprintf(stderr, "pip: %d, por: %d\r\n", nal_u.pip_w, nal_u.por_s); + exit(1); + } + + + + u3_xmas_name pok_u = (u3_xmas_name) { + .her_d = {43, 0}, + .pat_c = "/foo/bar", + .pat_s = 8, + .boq_s = 13, + .fra_s = 1, + }; +} + +/* main(): run all test cases. +*/ +int +main(int argc, char* argv[]) +{ + _setup(); + + _test_xmas(); + + // GC + // + u3m_grab(u3_none); + + fprintf(stderr, "xmas okeedokee\n"); + return 0; +} diff --git a/vere/test-fake-ship.sh b/vere/test-fake-ship.sh new file mode 100755 index 0000000..912ad7a --- /dev/null +++ b/vere/test-fake-ship.sh @@ -0,0 +1,175 @@ +#!/bin/bash + +set -x + +urbit_binary=$GITHUB_WORKSPACE/$URBIT_BINARY + +$urbit_binary --lite-boot --daemon --gc ./pier 2> urbit-output + +port=$(grep loopback ./pier/.http.ports | awk -F ' ' '{print $1}') + +lensd() { + curl -s \ + --data "{\"source\":{\"dojo\":\"$1\"},\"sink\":{\"stdout\":null}}" \ + "http://localhost:$port" | xargs printf %s | sed 's/\\n/\n/g' +} + +lensa() { + curl -s \ + --data "{\"source\":{\"dojo\":\"$2\"},\"sink\":{\"app\":\"$1\"}}" \ + "http://localhost:$port" | xargs printf %s | sed 's/\\n/\n/g' +} + +tail -F urbit-output >&2 & + +tailproc=$! + +cleanup () { + kill $(cat ./pier/.vere.lock) || true + kill "$tailproc" 2>/dev/null || true + + set +x +} + +trap cleanup EXIT + +# print the arvo version +# +lensd '+vat %base' + +# measure initial memory usage +# +lensd '~& ~ ~& %init-mass-start ~' +lensa hood '+hood/mass' +lensd '~& ~ ~& %init-mass-end ~' + +# run the unit tests +# +lensd '~& ~ ~& %test-unit-start ~' +lensd '-test %/tests ~' +lensd '~& ~ ~& %test-unit-end ~' + +# use the :test app to build all agents, generators, and marks +# +lensa hood '+hood/start %test' + +lensd '~& ~ ~& %test-agents-start ~' +lensa test '%agents' +lensd '~& ~ ~& %test-agents-end ~' + +lensd '~& ~ ~& %test-generators-start ~' +lensa test '%generators' +lensd '~& ~ ~& %test-generators-end ~' + +lensd '~& ~ ~& %test-marks-start ~' +lensa test '%marks' +lensd '~& ~ ~& %test-marks-end ~' + +# measure memory usage post tests +# +lensd '~& ~ ~& %test-mass-start ~' +lensa hood '+hood/mass' +lensd '~& ~ ~& %test-mass-end ~' + +# defragment the loom +# +lensd '~& ~ ~& %pack-start ~' +lensa hood '+hood/pack' +lensd '~& ~ ~& %pack-end ~' + +# reclaim space within arvo +# +lensd '~& ~ ~& %trim-start ~' +lensa hood '+hood/trim' +lensd '~& ~ ~& %trim-end ~' + +# measure memory usage pre |meld +# +lensd '~& ~ ~& %trim-mass-start ~' +lensa hood '+hood/mass' +lensd '~& ~ ~& %trim-mass-end ~' + +# globally deduplicate +# +lensd '~& ~ ~& %meld-start ~' +lensa hood '+hood/meld' +lensd '~& ~ ~& %meld-end ~' + +# measure memory usage post |meld +# +lensd '~& ~ ~& %meld-mass-start ~' +lensa hood '+hood/mass' +lensd '~& ~ ~& %meld-mass-end ~' + +lensa hood '+hood/exit' + +cleanup + +# Collect output +cp urbit-output test-output-unit +cp urbit-output test-output-agents +cp urbit-output test-output-generators +cp urbit-output test-output-marks + +if [[ $URBIT_BINARY == *"macos"* ]]; then + sed -i '' '0,/test-unit-start/d' test-output-unit + sed -i '' '/test-unit-end/,$d' test-output-unit + + sed -i '' '0,/test-agents-start/d' test-output-agents + sed -i '' '/test-agents-end/,$d' test-output-agents + + sed -i '' '0,/test-generators-start/d' test-output-generators + sed -i '' '/test-generators-end/,$d' test-output-generators + + sed -i '' '0,/test-marks-start/d' test-output-marks + sed -i '' '/test-marks-end/,$d' test-output-marks +else + sed -i '0,/test-unit-start/d' test-output-unit + sed -i '/test-unit-end/,$d' test-output-unit + + sed -i '0,/test-agents-start/d' test-output-agents + sed -i '/test-agents-end/,$d' test-output-agents + + sed -i '0,/test-generators-start/d' test-output-generators + sed -i '/test-generators-end/,$d' test-output-generators + + sed -i '0,/test-marks-start/d' test-output-marks + sed -i '/test-marks-end/,$d' test-output-marks +fi + +OUTDIR="$(pwd)/test-fake-ship-output" +mkdir -p $OUTDIR +cp test-output-* $OUTDIR + +set +x + +hdr () { + echo =====$(sed 's/./=/g' <<< "$1")===== + echo ==== $1 ==== + echo =====$(sed 's/./=/g' <<< "$1")===== +} + +for f in $(find "$OUTDIR" -type f); do + hdr "$(basename $f)" + cat "$f" +done + +fail=0 + +for f in $(find "$OUTDIR" -type f); do + if egrep "((FAILED|CRASHED)|warn:) " $f >/dev/null; then + if [[ $fail -eq 0 ]]; then + hdr "Test Failures" + fi + + echo "ERROR Test failure in $(basename $f)" + + ((fail++)) + fi +done + +if [[ $fail -eq 0 ]]; then + hdr "Success" +fi + +exit "$fail" -- cgit v1.2.3